247287456206625307944960201953772956158454722213835108030182324175941098509346606349581324727857300242600992187540227101465647929279714800473755235275434579945703255334997860274980043540310868354751462393308907657372695778963087185806278950850466657347441290120819218697556060614246847004604870147546867181696267015794432302896915048543688763993491300424571176594612731654347692115809242818851595718855879163717107871273790116061062713166387724765306522064587600234532601572063471159362193748542597879748804593183025152111835012135242886863150109390321561813220831730065824113833963408858022808691884794533243647650046189159946701749526155727662374488876079581801178874562704251681950446160152876654611636309241498160776718588321731964271464202607896589831404486629326068750557041342274243680264525379197799111025409976615918506106266315788311361252990373231022068691021359013182483905464488510585562658609594413768366326022226354815697942719073735810408079811916155737499305531908262563616022959312517185281035135240617818797883239143180020262384343246935870146388562895794381235127475434811753137436851875049647778596202737993211214668547757449506459931861513709360135614177758823198169045977545359669469908491188020081083180712262176690210985420841574708865055373308749188479321451147291587879704095903927515177337096367426781817364631518764916265186561613587967415561451702568081079084978008692050801011917480784806182792826455772923067627155586949732001181492797490503807915850377000456057256786013631286052046983049381956009964402170391793337985455240049432215919683854887581932062600711986919949801810620125809067443144973566090643469214380019330016843796026017576035359246475211426999970168024673173028932884819235498328173232601314937980847762750472490432270286290946221117254478439515926801096097108246140595707708868841718700696275289705118683292059153445422697977081282443412290841027067597379799695167090621835482765410255726622032799721353455105470725631030234204186001984603580713862932753637718602313998194712023445354528626588539157414748043662487403655591048835123621819629252217119673713680838058124329794948728012294817286371124339032251488272042353095779164283306794663341992196969810899241997238346595937556452686161879353021810187131387384306345812496899757012173611485608041874270963345379780975076621222430991523776183235807081910253576888741205127941675784586886823794838247677119737285584088015305730174302027884221502415354146256013172725407246471668903422369624620119203169941937799761703694520935548333635621502095914924083764111073201857751226084017044280910548459930057418990533818213547234199029984298231256299198091115741467919106919987733082702445595585384205029216514305200669641964579787551398871689031609947943130379634410501855983693643126058739629172710036485459351419857219266680751249160356923996805700011772071187695048964842255311515097201189515322248800929626571199516477333268482921026997662200912708327315573243808049331292059730083172544863782612806962931959569370895794849282528914392008657331730075564088128775440827693852725174678467206686926885003336416390264955117178443470715573004106501107731856454500304580512499709725480645414459712502553623229038205378386099757529681408798420246322191467458130771403516645948249711190694447747270648800408588353243813243696826625694371600511787825926988061484190817996331644439872584718981893687856986759825591285016396384648623494120554605980050308874417103123408500178885318735815708360197171767483208958855072733573749049800880397753437862150907315170177048883220441790018683517714647753293798817669686346417734170121711474065732532060353931417845299879327210831372061646740036170010158517557698783091442995212102915778535032956676691303678686902566957220587842783678088471809421061311245657152934210946153545176710159694790989087468740700179885599648098248259175671645790353148427693298155407206292025613205610470916163081763800754963242021093987355033069553206659795409415489847168944774185425527948412666685000808312907507432382239277908854573872252677506951678686921987990966719563954990483304430913957791198148424726628740853625029200014126996619654500206639674297496595452962005382128545805529031161029621664654142944960305045375231154670664841145997090148808189421082782928915537957090007278446604619023322117159420414895033750588824946961656917706988770195069394012799799371415314394218926674073272765742019235362405073581376300721254319619830785770832933701598177385354493280587014912406830140116949417560446216460084363873479791858741859708655100002012193924673871454836985330859694229365250473812255881131588079863096470662900900174237040803990276302269632373146199942887247844935932234467186847735727523899245212679502935733618426706092982820546690765952657675566902858194211199980168545926372916807262524189872693419421960068549087752331264169331275474719387762673123228903823473088266631169465335205565845909979075122049049901064923638263144976261041709502846437666786774319183733654768492985724297982082818681721770225413828995059501968556589830649143361015808632293647656275522445730788456888176026643192042867168690444460066605995607459942554990819116129519774581045435110249284367506685472975507394160847226468719226038799873744146883145842825714585635488508146748842560340551485269513254589540272801295279819708077132627626198963965415702845743417862634172186050870270944474717238040861751457022715572937436937891908390376384645203448619281153026586635518306351200744565975447997573156566290045970561616375829362591753688427124975853345560449568827112189493676336242680974240196902409282119588135334461442089426051316587401142164102707342642863180956865405489728016457238817571848874816687803472738687702930459700210902814906902834490896513923189940085079410199703879698397219030238753787919831102745194346862349773813272189264246052402213919669294007762690616146757515450100345234087297808595246534957860066061783568180360777643405684119616899510363486793423964570074708965498491262926353263997331994088151321249448600679392076144696406013602400604894198615802396035634271898577766106778529072183705749248900517902568280996681570019206623233895285386060980768000080151142789557225684751851066436427259884069049626568256613250786678902495327755310420226425878502264951057440245189066743065598185732644613291128703720766276200071572129221585119857048413472506127728461006060492549333207133437640394772456833164447703781751783653215234781554738515784695723900676050856794142622950740732889226843603921353140839404760540642487988955364695264148166439133391816488399460851125671223061574551610833228637077339022817665468840104228060321153668121151262936789207537974250991981248445105503299627561848079799611904425989568035966527890095778853368610716446216721142283395218916060003670161657826464024042505537639007763057176097193408078383200989838988155613094063040058668624933558043146782313628030926167563968154224376593923650450248534860010923899622771298317317798430915536154497873513813132719412359723986772710554146609756373546465048801722832241779481103811053801025208788108030289030486643589075279668891799534992350148373224594823969902957343484926453400004513131719813440186047953104297625836042482176430931376602309536862274405321471877781909460139505254545356881566564001419133677263388638564792008089712503365669703611274709138709469572849898604109074234953787204367513920860666659770300583425223785994596149211791254238885784437144002915392027342781004145669962295848825845066817973848675857872115518135527561199435439805644215444635128139101868312359012296538291850804386889290682990502201404216346370921379477093267518434744894353865304271310637345453400515163861242318588695966720042702605909404585602686457520230508212880673592462092068892762062675018277741537358508408775219812748255904712675608860691556503027420231357192439829926680447666951359641108565271569098910460141922770248648340440131914785422950641449442920910904361732024272166311789426363128048366644445401401276699710751497167255798173457115263067777700877848777400976715137259821716650646727092198796239928794757584567356267814768722040201351120048929867615961395450725642248877008326574704375954785391467674149412254492067015734325574056956095928566026039453019286011516267528876630872973002980265517213909682031637650729283114676615589864311288640456519882631858973584279592514206644120713074248421547964726667617267325843964682890125815563444700783875173285457606096131853913278762349929950155139023230519035192941493979023886305330260300746643953767553144655838320130106428528815074454329296296443964169258730795083819997582468296992101770986311340769781637993556893161086128744522488648405418344871977392686750730867352475010577186082496172297075891359662746538295650759897828964173554010415691331748086475170856929043823730449197750619113915861644370888510800326804675530652008764580357379325274296809808619603737488748647374240352543083446923805507107011903593452495193633471530267487899693702738632395619930651531689878661982755604812768243299501796994666028566152481183374444387314117681128189050351059404957109170514328960419662901918066198880982721573063867553443638978717562659263869004577150869810781813067889771965016318927218158977829097517679924468070555238538911059719766673799984697245742949678929699571582858040449451279539205844480218908571670894608021409961857951654006305674882211568378632702017579004725841490689027525336874458579725090029662744110105214361604280510339333050280591439398450551139544606644208811141315625948282006814075635082251642996368960999855845843148650318635074341544216046064795968556471376036853655920475944772223878047966187539667550759343362243951292699358391175681690456354957579946083223261073007721174630652580437364638620758658346225925528907199606171046865453770523097711801818452078154785344980386867263211119233993051379136722724039922807672722981876762466271648206402776513241301223896474491951719263876484723046889762301245234432768412531378836206650916976228990966652935957058140625379891664190815139276705514308861875538929008748794220347647671919530689196884254572614064779370317367363153673401739123167475177665168575152276583838491582149137381488950517064124291033212044526354505320349478124445909460775453341157692377687341512024644142581861628542450604781050013653742708198442251394410286836720144567262436699223360208610997987426030570942066046195971296748816985293748468159171162175088398372543617218525362410407660386918290840327894607131996522736410330381207798665488275628659846628374000402955752251002920023814356349831455790139881506530000606159330801871324006702310663746732962326830497740175344117541677159032777979180476465247045406801743683162254218115046479464422206236215639602699616371910425277193278915792659676957799730529785889752177771291495452709543041539630229202572230406043421286252321019950383424624835724055708919187749777459897578573009059287997827794234203197024017413523741733012254249111365981241055631518893881020544263967805092607192840020573647644251992993929124551768828276806981791636556335349690741459934942443726907977386789122686266127195516083823433054805338386504842186937433328424955641628398832635287568242396759220181683160076782294478404039134442723652289829872242340733609860701654285597043452933450041072454076268835090689270319138270979120914515776606733231739012474975378652128926062700586862106226391879520122441955607797897157799326645001136668571942157062330144860724772047330390190499001276874946588214952943541990931841418325039517120497913841575575513292279791961776002621486639018400521033023870397450317710566933241396544751369861809626316093633858411793061458609342485427268960938157735218883735107653511245210464664275860717493590397562562442530397136274670021353823045682074333291211220442421793779312555115972241451382892950573713397399473605516793696410263589950750146988801569980442654800895169906754459073465462079693286172657678630032307097778009858582080285250773912378575292842580820138338884143001924733309395596121547406697377830633463609310838156094111794682537358875639322917643136402747782528806058081212521169210685490346740753891553463138049645513864250302824719783128659987453652756929967397462205150317626682666927375955650250707047434680988524463259699837482163858367299898845231717290220799987943134485159022602260336879075502338795604131204710701936274848087836099140205219931082996054617280901705917945695622009213219957566957914089099007817866263639777349067697733416721676944419348419413122620455814699754459615528742122832413377855087865293408413015322913818324756535378805206300940835752925714966868232050466769554823704146929489466041034643659701147945100227503085606082819700548829277274161831100958130063665987326659110580358928677962109363193824325631029385601215322004063280553259138881744055200007702784829638329710478959348563577119178728934439333044711995788474009264593858027495260651796252607787268331620389731735032040677331732564548746569597137345418104671442208710377614052723548397950092204352252640627023409193599820290286188605962905667844051083397601858525059474093735028680889803034397897316540323173175591880703605088661965981067667975322841277147169166818504843282316192993475684837838086647309045205574620046851209596715066453984410893473007473278681257798668621492529560041018754775643359564889460277668575667644791082302822241579959034358293959561832755855070703464036532836310929993058147109379096785041962575412083681260758049534537694907655677914463862653630827735480797262767075603097164533310908916492904879253557500771900294874112277467463625326236200630316313354838467958871345249984526718226134537778148890970305008706725144660047886074835894457168808379899744431286814713023854225752793190400648886801549526807706375016627624501651838559441626033328668725954130405062274658367421166636765765158279198372694814300245432256939209628791290707817252386529562825911434837193463975229067024530329907740979411304751895816085184955390460544225049548332782276065219914212882614905011826449849706361900162831974853708201206896930430605652551727137232838974029111329402207723133246140434846020574257956463593080992782655212722461735206223462403649237398063060085007996560069996457279661632000345882205570271109893693684614885598299500812057139656196000242971331873518378843096710326423945677555598504653573235955600249517702560857435013498567090965373444593494477580663772003614563484414729290786520967528306154192455200858208028449220624092994825903942944716810204143619696771804552277515814130973775186196918915403755709678672292035517995853712382512786203214514812486591234978894903225728389453671974428091273415563236249264987029372745419603098269598384412065225743187078714081096231423960680589900437857551530757265277847231455512239977858879606435613155976012705034932649762130513006434334537684011380974376458859020067520578881103765037456234094859657188282935222687344580774792004849287861161699255967380996802969102873300070082427284288243472731401400155456431498789009964224068535012167353696047840155726254973116066617563032562819213392860701383532997316389460429504424039815668084618481214341894428071533602295694134707572113264063775846623273505694453942420328339698950924153292701040476262355235916258522756844125774957792659920738099311144565215527331840981189747074953918679210671662721575054789429619929619231727851208751409093569098039067700228327266621453689657988462840980130998123684497819979903658239535087848621134931636520829244016717774000337301494868522266758646734056687285410061850322552834117822524601604547787143328348461331883696495318283283820801284658654725989573863341150237344032541244219918372661731172764024306633506660299003584330752754322951886505212271595147134345349726467807425581907163660552812815283926538763036611699259090161133787751401793510680364325790082253493076874407616638648942248937344478202391922768465660443642916461866668738258434266005841699334470579527144700215516680664114518292943047255175319812141857543253656790810503978395862915575806423689926965713194810904529592868895365683204331430524887481211544446483414148390074373151455066208876435096088549574517658562858767239420821436978530288997302469001931972281512984911157803203445714845181856637739342137905891772362951195956629818144468920111160707029362117519079419761051163190941846271986975219680842471213536234533042267665690074898504431952269751576546885645968572629566421341786710197108876430937538687998531123008101850862193119079579822952736039882955842813064947015017703747498344004075273838339160418545118319859585446102841974832892132525108156820774844429699450007206814618149787857876645760698575456292737215206617051514108923211150011177673178759815670071504081817408455923221102929209523199817476959470959841039399824511639676665968988519607152898957170207710144891118245030373141387092919143410994047595942956316088690511357039583304617976565081645380872643633329918471949239441293952235193087169839192899570681980356766048577047143767336214454749690166493718645180962491104197939094580362724431604756956022496269238813763601106547658515226159202645822371099522040117816263805921424369264494985341045191535510566691774902666953253588876552442024025367282878277359315538527376491087108007663361742140425625711259858560207041151033488827900209001321162156894593681942312487263491550957403260137370713211390223014660489815415122457581371960996345316271196530262602837396066744250302852746460530651149410521567134692445335366077405189244046718501395522908792237938185560934422938127716411495707070691246086596156587242932127676542870339228595142822017594208367349907374700126345241244360794380365591257692775947293643195379401683762374536459250131223718463073648700092494330232341885056119770771686699844227349897096918536930586645787458697477939683156647938595991750608740016332815919635177448617353391520722419431543839713417624856301926499702051921103279946213260046637915864067583832644816338291848706024198044572791574052219492460745277194230788788453202085729336210232462395546087807096800421837104489804050430980322761558472567465663711759022882421550230287240330762420714986571203032619478614846983421734479909310306537331858806677054451956444790141072378753341424551346668229392873846875961966793443112751654493857535810655272140612530215268381548149186663051813187043070742404633500628103920511849125044806440928579805283631699756562442444586738572587800253840603519090408761663449810211039214336315625986814776483337845377732878543024327914649067085524445463568119593464543142654709325797615142560980589335300439682451338290488803192662143561319385660756299370366685890065000030664003478113852712814689210649399006624425010130943520403609389759500584394406063519530007209180974670408795844674541967209186346091116811500960112015305248510497383718989394237588856751884069054970657933256886315784490873569192310775396249310529873071630876804862940715785045117406919678842748924651157351289557273414777393197132962976782004394880719942065446615193697288331306309186344767762914766082617383196699526516355682688517605104816987387291863640156421999461124061751753204718424031983446179253147024547007221544707700546065649717132633457258934812081651365244325418978476821338137416775641695030881365681140308630347200557699350143510336493003558049293246504880219336819016351071859071498492325850732465097925485246956924216226212173335368375927291051270056455393986373626469844054831417930266427248693861987530844975761645482673606294787111314882644321082797456481645543778853090699630286149916228179824888583800044492961577319536786536528244258044805745565377204654565292707573961986257501872238376954074156448848386721032558890643464579523339936451338285263138828591466769141236429874307076069929152438953431820029712314067014369389955044161274730290018829986477657814037984257856514105157108579337010754979445119311736980632950333336382947474771416243843088602916845970423021746315899097555648696981266521694226200093979285387348764592461237932085667035374450811995759618626149540294445782875903092284935759865787939286432721347762397483698038003263906978385181651421570847552964237655201555848757165181860513106279653444298065553848108379499433740337856506019928745614156919850150012080654693468679582421974213810929777226723887465883578823938311449084178074923094485627269552064200778859823799483091790700551657705341872485417109440673455393274728752500977691694738615850678172877272771705150836587753528664025527525321318930494855988692239490017201142789753148054683234905665942031041809072454168660234461242917404386101645966758845660500201731236783423134962755661512950387171727707751456027045840478861597084962991614295882880569654049004614375639322310120036801701906711365152615916154415884288547142972451773959521011379937591503874672116263209063361415501614932470438399247870792125512077093642092860750498165232715945291945781338518453110415276100866566227852129324230706981627261844077970633505776694427650313214025947680348963414954234898897326602755068643532265008493311988243316639465250950771875693164424868693345001713279546278946303495420325239674257176188370690317978192390298724383505744732626045546288248324514474254457090262896334178089354346643090357462054188397842722499153354815080524936627084158288395313274780789454568824933616944211224559289436668725495306973193297699715512304091424990294463587870037886633908703579476167522692191389367663212125622930606560568480399192545860991354420630296461496880303194590132943179305485302526108404437788222568332151170964561401834837441115221591460876691596277092097908228743369061775560162559657559369210619444556103840857996033104120108041488655516690612132052498800533361821626624682272092798161308325846914883748263287926057321600572010806321093994314010996962654538330812967983988481147893625524465316228197853991856952068303844329581057758236058461024560786345165353639737777368929357034729303957204177293132471224320713616572191391512885466811424801204393356519763635320850497610337266162611543706933435449360544165339650719647411876075995663771894673920697126731177673715239795645851902318918856614128256123212998444213662536224205995323259901103633319223862793956814167061895182283908324762369527351597051470882128370154751770137910760835368770131408681408657049446537801458439878667640621915845998940607195697099972765143829683855182123843564255687872311158725905924309770599981240128211985971081871091946534595566792028284154498009990268516137731786483320284853988409202750745508638112037908048640557283920746104935674098130787849275509847711654898779656223389237629494968162251243050886504665046862293866151899093045203127795816998923174693051203134756178304729267539273214047605545208378105057724229342701078472058746119860298757386320056284651177079311106362356190335043195328975352143013704986652024989388169604628462403899327261601624560383709038099332652035549199539096187085480056456867844318647333994103765897301939412133235260879277459757352013349014786169601143310687631899058479579279937552535343773103553666020416123995440772738564186602385900654484526496334720552517640177692625622046792445706854423231180844511485836625728469901223343219360749183106855372763490926851754536620280333310541071384730917782465180185594711889256698743054009265023952220689246249772338406780529374267069639120904024673043432986776201068307638094293289952506898195203377491960309014661152297679051265948033909486494980661254603004834822213540640375546447309523294127435062004013430916162868577822871753777534569263750488741460510921009103754706159605669440473827298378385819965420342892290161978512875990887408631949265801489689923761138804259881153594443424187943518096268322492091721646562583796901821226840418133798074620543233777887690889898953921344581543908196123293225843945819038370418867085120066117431448484797139527920444357808882552411296319496366960744244080189295418819107980811043498080828779632626789978403464629122085741746752785397838634358694576956969877420573480710378634314867581720302798547996884684250079710953259295037678922496236955511044599244180935760816244079074574158454582916762798173885783100636925018055543266936462637757467056438928637714273617225160033722401358224779014974831119945959353409412973375934220483996853812526217527920664300483281488907058303212924369007059577715808239223183113161776495287612125628931186518041406710119269285872103482225004587919252913695073796675608734889548262464643373175783191607681708907063752794184120843016349254144836974652504031500881756955505657079648402813907727427627962317684410236269962738816888239949552930156881581680851038417015876002139056069069975611921160889285835833475155395062321173412512491178093869907416027458424303304150878238976965743664761506413439748996901673879490642935833106373786832208586919486134334047916889540938075315580768680117224288621891929058013818809851608265229240431072844559054353492923781068077671921269807840318591188369186680712277850852678042861451877267017595665145959093201433473807470249828001539674459384986008113818572935085835238026615247496568131751602958733787251102995371768754042211580377357724248704790692110785243088729514955438099567521005300531276294962072432877199029101446146903871950009635406684127276525136470725921706495532488332900654989555525066901270396517046391765939762166820846226017319956815411132528609143704550102317551385222216006227397759553091062404405444760943502939553275059896380240363766244156659645939622989704703997170289618308958342206549429703657856405334834870527100945340664852918500457548841717828410879098309141822788169142181897391932199505434741281836266822285569556559939967610511438448514047894916671222469260694037791187940968998488337425281748869384507266596259249533287696980759990188351970360354430097767569553760226725474935746023676995865546009027030295519890939143736460312938688080470868877355947725537307707018510231278287998406409143198439906363571303876038557333735905791781172651148490043200823521426740595106310665605010527372215993168053268549066511348966162723912015197606702858017691029636275634214242077408793112418850065251088939705823301993918526400864269678417559002528615478534262662074541806386679014442350704333287598616392987651437332513274470493087611967401582357777838865808098412110178310073273810197492172894448141994894594024840707836954699833876761686015048362892327524206243008637797733500355627678874900338748839791297769017020172480345928556796163031391374000161387786843148142500700928451251338800735075828263304144123193875680624708070562967034847582723755880219546291384979987929326142482014588993886371920873535443482399494735483103831748065812805610544367047034472330714232474461507362335804883979337071824614177963353956668521754936115010176264228293054831472800788161512674803638532951104185365828783801181976778747270976251322538895895697544938188025091091342488050041670819853980061463852794447006833898455064668670070126619297276406385113464279490518748263309867575703442557524059754101249460177853365149811442173864802510066093618487841161328608003778206827737587858558860457928006412569401160011613303771933546730415076145924542025671821767498185401595016848666128323013011430130119940554667947730982541278426538733381224724709036455592705691852673337363608306777469535351668271676367865378606730807503257890463949190062334728073179592107794221463401982776851876557906415550963172106868046449183217919222456598680462775461940424564809314456129619511330725082060068965677934026751880692207857646090334693245152421171023250672976133616310728045962954244028262878761017732341452201851623173139920052369646000729694614768272961180261453806751043917709162096064567742744973209548838458532914934521593936100152257082810177093148435114419996216704029110622333647496105563591303495102939673269031104514080198671528701282645548875773184484395433299955753426027341426234196702774604864950103561064503226726632389684216479292788398434906037364253998249401621200389407380672875861607337691848858598892572367128477662843091366364303194847543549435265561614428216856375451626623436519946099068830949188215374550442445278476279279662733701776460010099467040807022817732517162088975551814976395483322750351661542742396528023609485451337626357660864467097936558190804130248664734048847329836296015716611849250364225637336971985916798287872084693295000162453090528053884060840358344374567912578399322746248240141858694170650526297137895486515424612343974668825842094570799302788333866578337692533324184467303698715353264333798224541455629636732767589352682716913951005762603243024498601932539454629388821400094645091907012357361661668164563983735670195472685837623277749843024495100281928042006055597766708858760425454104491663496597856908304537414068391150915867252609305773666107997144232655714989000031045855479457587263869546475861085392916777288866108548544924055371124623548612784037464852787235780104867694676655328614867234459479388868635267094811950487166729074749835908829643967360777262382171784944651938191210548209714256730232667702796719501751186589810426739358257524067274911344595434054310160720081001667361947362736920632943111240904175795512484009607155348837086389371675650748083062191736831636212697855356448390580401683808341482782267022335525760695589719923811102168180522001822825730349163742815130081477167628651100576205368018421448046735191724201649676741637274434720085438976404457462668587813089982639749054740221615607620215775622347551578475893588620484944338716155568312153455294228572536748837049616818952196470835661499492090953820893632598825729323000933473448463678288433167673664324837882133960725458327846741431195776189851766068238913470203768226467937260592597215457133927357942285949526180990097882230032005314824778253331570101146221099388790591126488306514105591653152617172476153560414477514235915328078457142607184983390747638649405487432032419804797135903217889283238253870972241346686859977283568383952491172659305611180680922216030410146947398250948723226782151094297912167163957525158872800636119867003936373829704484635612549083002541409627061744765053506318996923864241461814666986904202937401500819938207642827733071821390987953609419231190614919659945903902165180359366177487513161768873696283018802118644999859586567199261687007771795227264914434365496909021287344693193257568631522537869158297121358189701130637569063384177678598944458194080520831585553346324908155082938373276428140854116725284633480360725235015999694444558510150821800276944893575670670390416076044845423678912828297535435099224341403454986557430449351147711726359587122302527962652938430310889592268401280377683629754173833014442714864264356012221539791345615689278880035522165022275045855132024114394594111546791767780591228309353361417499741650938369877580969919558395681676822939000775704882353388557676853730144139260813710361831288921164513386474205574640105165749039335411443483504996982118519800613245415327904857850777071561585373222377900163313537114015116037645145929069870248205923653656833031930522421761368071122833351556118854387002042241808865271168484258773792239488304604850612983668296199197881919670116251234337796836468247070370970022545119082871357630220319406786066090807804079613553839022589115129691334605417999838694510967069649487832355798940652058948704826673773418167786640711969090535175165125523357676996967103380561547954927487671176725430669067345467252844512943595431068115808204614364904142090482779122681070508479032282560246952173902454959792456261631303225105001909147518941842868768284016363143450258846717397303184181408074131094735027512446711301683083507451493878325140464817538567623793026720947503011756870490566177273547611778311882570389315800957692109241869591684029222952673792996157267860923318111013476958438415174523526374669700054325914652281546826969318434357205726797998156744632931878841760554634593360504264727167775416622893266623689701767326628045820939088508869945132474359822222625712986004557819994723970453101261248432723002059692281595839057051992712042804883771557916344135225007815913292204727639453468284523623167172381922877855715324560755089502573162899409342062088554167518085882916469733896585787609392765214189873979637442359826546284759819706145641572525675819710357972238102467330095708546241386074390400592142626087371180168874801184782870034847823893422500489089087517692749596630885685310525511200202937108856645948888565167351147581846938703991020217252944445928374542572525899569369855921384354153027404218135991979003540738256709100374627710119402711349385250140600983068698078090278557209112017432909952241243899478356417431665112749959927691107424889448115940074986917416374097161661209478765473652759931339726736232280926768744374233945954399653369949213881381460924713602283350408730430239183720325674549103421583335411873157587158488416317638029934480635171767928989939250398810209864972773122721818222789069035351851987125300485467938173449193565121054924349382707248512098788468704727671318251389422054274513173989119993249988406789550408372825865586892971512772130077920912429605048314172631997292240173540977486387618605590993900095744554980657334424702936784196369457172312598828685154049112455654191234867952615201515250404823264281801001054527176120944708552130854222309137276813719416686101814834534299264502584098037497463628864548467466754855397248673551669167036241276073435560568346649431901800890489272230540766071818283147127356442793179686065620706270057689815666587896351310073063025881481266098600290709762793351986598973743200919441865697167905044328002401112437229798134648954349609888341026620465529787707148693860498949425270072785809431583364918872202351185602078946957677500207095375416432841613098405891767946138443086619788416407766729615275821535556805250235284076574104782310837031614992532736700444677050677528686344262638992656084979877229393694819503496096177958836293022141467862541868559684379529564576976362043574689335020756140257952898365142554899048014885948161990406536272251451226009899452294009778854666529685072414954219179651456420424089998422817552028939383723417316349549918058397911147149171272837835811241891488773983122072491655038207036751042712956102209720213465976436863883296261619358423456035137338750172221312174722397597354118150581817546113388344650295320064436896887784869714411276178017802811847029464420168208776959469781001415192644440045036783976936612773647323841237049220832631393343060761272145824816577220085074694553013734100316277778182344195751275127986355350838630325497268594994426390338017796457604868987331482992624695735991393580567593102463755762532188795765684187335244694123586257349572597235996902786348081893542136153533384987005148265952550471462640185514736381949868024368334695229891907359233418070154045100952448944563458007626962021234378553876172992765170294433793062426320489218018461527555483134272582690803418690128964072934370117998364819581995255188064795267635565719385273098292937232287099075955692466673187249051944198536734284796071338821339115230201057318552803605381864423749556495671392257002359403166201520288452817590541290592036830020635827782356524030940888853898184906571141884996789350043376843516636552289073056081452489446838875083746724669746390326548365931249200560005604445016215801413167583834657016836822692136772227402221677852217544305613615956966563091942404855022825639185315083305331524531820262797443970327441849613010053103721038555206022511363357250256354518814143625040594163683573808662154078043086255436751419523015083517351645811439143788928704657651488171005693977065353556244270033391122962724802695603558745091092994063055370386893679411392092540384142771522510958742327791261449623579608581091004975416001316762505717205778738415567663758889080275206871507603305766647709578290584164332076405362688678656477550447940230813475206443851625505549245469414281911995833989047285519451483438796963462599169208901076565357046969487602538422337293210887225556297606686281286850311967605585846074194381090752880558832248272905671645886154630354801665128412581097400318515260928527617376876859097026268420537324510524372273434761009897147984961443653325358164152263321630574634190448851189751175029633626844626382553415034452132394709102393281175993651630069821719393171131133231305894405830080081998787255191743049200900411635389100913597418649847629247100933097315707653495889497735039523389311339747353032515880113168080564759108100813101309954738220032289924321028105684512789885866242686406415984101594454937577976952381540378265088589858321311217519152252560044044432664578310175587286102744105356073801552295189802220887043923013601789240451054886737180736357096657677852114048664814334650957769393606814906919213963417871645055967003509662881566440854582475579847560214171989556372162803229795152026575954029810341513515147585988954174425201089448361639637482628444850589208520932479146414735939752741348831858468834878593939869267634073380445550612937481068465885952730993155228008641498343204022876355282899470301784198569689432254082034627989211863799696240465687808848559105514238979835981384045951321411509845637621451575150416402082735062869782930835199408422917505122225595220896639297604296376364567269189159241870837131912023238184608999889199899224743645452822712621968190858813857874237333646772029549385148731974308694017704377725737594303609782175333844768560404956078321557097284150724551947067369432581473968576335157856063392739219877479440929719681495742312536940359303474465331921346114076262482464575116783129301625646112155145490816191746864141796766980689743231231881453708098405032861260306694998812411736181382025027304992961511539410099867871216870629006043436801822293752965357699242389905392499143504915167298021731200002097545523266900278591654724883384062995529383408421171205546904351267004722873724590442645698686115253447088089053161383451279961093671661872866087271683200223551002766288927019153846154071573486020723110430419545677903074123297198041029699964263620676110948562292654039330881810151900683538062985025667402646184253230389059498824028088062387822446694301565756020453669909704715723420171351055120296010740636737191168858732447692139218443878054192486009664610346426706185602272509623836493541133241585941795460158477965315237174487834360675628698624471897343193788611609011965387940420128190574287822772529469758606299579576724209461547970500236316860694222619261293102994585267576490867028820210007121843186897009890799465585072546115657947198885877192095827722537456535219683038355042256799262482873341038352621160513430063681838369185683352615563086521863582791257137124074639495268984362725098927649840649074049076181237913861564634368825065345847686535312432994742945612307490998066875503199817623133675561331648462394058002222085770147640384184841562008723478066036045213521254021967482405262071942297601239490745907923465322409125288255609121518475469102369363365760292619900057393489789931370628026380789320177806869130304235506831881227077822560497711296667645399344784732552858716133058220658393125987305293499150204869471011993525076164544381101949187927550896768817818136348682971509917428014798486146071310187427857478549537673807025628236039773270563597147321254269403848427407382424445109238146913375937897332004202237606832098148386895959721608189099508597695844121867359201281037343823701846152368596054734349078669142487307378391760175256308252365156954883129834558868383297832313719125598920806027634516146478422398179434386143637101241106011548552120547681658051460815270236716454674812384236929256142951144829582168486284883883727796976857392200389321069392727116893523270581879699209076644322445975352468376935445831589211418677513624370471869532357179320176153266510755392226254933332623735677128722039178433669086305289161406486841640470079507236437586378469677400135038886547860516020333985962543752766028693795290997670814037666879061354409336549102961176292078292276936991341888364287510401986632468271989800576007938374763160072621540223320750326340199517926247054159465694956857530216156363678364591632309016150484819512835032642311543498321367026112310539578217404752898726501975694210707337444395803177008805403849781619932156228093027269906065472160718150492246937899246069597224738472356506269773536699833900374631749218825641833424893694221494971011348207819410419968651906663939625318682719732957374441915919292453904737539505348426272057056624841654769908975421150860626273663293650245454570978598380923719432804819119188085915527182616474626796754535853819674884507324152913146854555638922290486554270008277354551271032358292659435021563505973462531847767303601271865852746965188532401109255678700250968137799465258084701874906515247416426730072489283741351468190080226345361029033245649982991852335813802034928103608856914029291548279442611418272928020647459576749754660429771312115175203365350535544202607057376002748837702186290823841134747829975156425225153031473331704889692430620900071236557605017515506790377293112370389165198383064916993038820367741666172222491584323939630346533492047633977672795183425210462061061824842226206045277812412091676315727200438029468247672694924696867223921402417987460454004590111958261927407882118135238208259353263759943832634247318400862955193663222306529051527062103077216429941489629176301496535519872563916729304989846883186240618018808350554899318003473245092774638473409162978548193665504960293129376477513710409208623654567093068490582584143820369633751245195760563530658626155979545322315908127321584243451060252741888118442216403453166042056914522231818013455033044351576407607449101452870171737393393131704147770739260484394410954418321574478811663952701366025012549518288469261366358257069767924520037838726731504283969451734941846706692370108591099606137209495242688297312666260820668649593129372282484400113198975113802336496783436890077308752789755270387591679976568142530423189317630270357085189171492232596953582270155120430298267351168545263618733198663573875188788637784521903459560525234515466394177153900460463916516441087568349545937534687883217865492102690943396446436074836329991870101485802873054390742857170015787504918866296340108800826754427619905097560974768947894326743561621222893400899685496434259156635594198032961746268164709790212630238016895781230315542484454520122076438342487532939273357821493119272525442595857958314259525771972223516967852471212912274837685537197512827672946556400347900256231539697765263934585750739277111676154427234430901627235001536617221542308681221728578484823319759528914287131680861095098968670848424246189301495850791401266546020938585689392936343453645787474030258377645387520081354945397390534986510004286745556436115106449291186229755073695588086603201160290397685715970296822584290167114810854915873933255108980785615193962832991791914328789316222540934352862056754833882587236963962731181744964056838936887826602461190103915991178613232299184852249316641786785766695310705100728878896190222397565553488009817729034862903475523908610600522117064219486883456697114207828112410620431599100715647270365550405837979006182786129951659523021520656470454948448636023377914456036207755905805829914701544297120918278810451867771726255887052559675325313372827400205734290050981070069657377645996284915959101904613781158366888780515306938865465458843873948401501573898277353057965504363668569445798000736804813149361926662775216593473694652332048722200338493603004123847667949268893251165873554522102260408863990132898248345871745506430378375937797236321085910475421243137990462032279950979456636255805682613118282122121322026017717338593051716740277877308637654443216068446950158536860877389953800150283045573568616020404590858973398880785916991319475481604807943296223877151174999800464396866447072892903606691501369375382661796894266520749125888024881758462137365610669537471752776890255382334655320767837814882495729457639358318221373535665099025686916484460019796316762527924796857754277037408339328824026260319576141552170424966151164329322532030773446923933944539037797774265921613581445204485048696170816284179390520947631454815029165817587378302892636671431865953403301990361810751257286109739746330805177508488390339088846494312826380802972766976922961432130160354545242187872621310802533194236598846040906940457813821886126276895525803513591343036187122517642826028367273487709166205684974550673496168537368525774142128016900857646986581118466665221203723485055239007944735613484019191407725707012252634543792253172623687790963406775912430297788410141989129385318335398344990936337561856441758520746858015486001156204758480983434692000223122134125817679927052074623498939533704799449458060090108719035369567366015678068932852706362015219347293866798893259428852490092707097608971811571258530164602449287226226548578596920879264726752014750539817215043006930806892390553270922316108164818134880836181925513796381257425944837594853778962560633878216947635555167656204800588026522089901479265479932925881557357234085859982983698878152787053064948302760606984748765982432066566850463707950410117889988883706281463634871451332741749807671936401695599448126824008484618430611783636659725837908767483408303280415290917111935084214558727566874707660834867323870717492851902034514515224797841811622047602580846502463111576677987707758985909224415048285094250876922222920572879103807844197765073444360946053950661141003372272790437342731232522933436565325190553558599178235948485969673897409550539514604892447419207549825933951445739891077216014623246630879951426465915062006380409795098316982772591627682745449823028446094992820307288230003232730594841308850744601581482410963743936608881299814863220779411798704166699504087089549395466398238325368343668025618932031233133989065724886498703754166934876497231150142907111349038598688488075625129246371296415205672576394342199493962833941159036432585448854409584254352831368402125782827203267756625693744240967828127371965133940598819541980611707660532651841392792645785060180650523953522226115872471363324661313420857666069469468725846307127585526681992615887689452806987165452437243169544745481270573968150219859574045326262479489378471123014116554060614274470642623145444977868130293554991069606421584820665560369356169719380662181613367416542391801056349434942978240039869431625136687622432389473342290703581045806637603334219889991629363397621781348748757271077668307343082762207268945696397537800889005854567437922966800725457426946675299663860448370219142479618349388629531404064342865923285376790643675683591822216896118567697685869508357058893845279631024022566116709154385288351560749492933975342568030403055543282276921556614321717833135268613557328326556908452413176167802280004138638769721736769342030836780108481750176248189737981177903264337253614307380837619029122272950941067800137833626508553481341691852535546109125816020698236620514011713008675334892160038248590371327943549245134451225939015599080729046464994645901428141317743435394797642690493145369480904985008065966985935054382634280953170302176489745411558311520225032963502552273572759380654383357159564701229797043891864833746461226433969121611810635836583952724538607931386838904496162470546052730445222580089397534497856710258236151514881882646408720036337629612964236500192221648661317209138473755138013767354295831499180252914377010372354928408567061442049948991219098350977911833924218515983110164695646961869302102146478882070805326978164310630108237959081517032798854531442987371718708333801055995996185260443912425678804539750200047134582472862338854353302674751959082430301747895449788027768911558023053530770057537045352320892416097752330313253036598024428945064307424964873460680565420147910125824633042004946221475519993392315892330162022784814463879144231110653742334916284648312457165776081503877884728363173698220392692161786084072634855707184699446387753151013965020098222903336297274735417791133437750793130058919716083864092624107226308347219514736054508492883008243060733122254853488269983702237494375611288093189654900519833226544418326136473293617318854679825604376946262441318660637555062610601535941625690065881428510067488450161784933132325513531852219952098628191364842223361676374751392817004128282958666053211600565170525595370363917175286902539477031615703455559926572238032220332315573369845653044381690169971668264339959070777179127373945877924854232243688076376738164044781383661696525715806403850054696606317696239201718161573731585432953529285605007979349006991856862552935422674389676447396270019128536910535767440730853578237365656983409345773490311854543650342510607326930536449769826295901042669844622876833978835690058013055154209366422748042178055466646560626349185488694766010905602399895536222999150178482766546358117834797681747577911370546241022809626913298245180006520834122131661359564699225129668467220590111636478143094096807863179412396100912065906921616114196657977973534418924866182374456709903181269193516499861904927263186212547770967012110721165267956564839529051591417559359484629658211827661348700775442665989421305783478582354406983331038476607049258885382363861904315144048324093104206063375515422287691674062547359565562798807741197853796057545445809727252853690660651537437693929080024452692518847242731510569634658948212085722285114837775202126114449771885705654923658988063944027498033573397071923452249723602471819155633064938886586550862608664711349966313017255535879935830398893303868171570941654242443524554331467748036302007087312160315686285366517847168268366694908545433496098222258985902086374706102485533952644926215711378980873036404567994103339498585217547932532187882490412706662980723096604477414800475152413468094542615781860388896890294384187277353099988980989652269455247006291767717527592725975025536078940099950677006984654735963856531650717348958931805417207615313336979641642444874365122346924461451908405113374890692031211505446594799235143150501694036962637666406846272414606339574576116941562635148311167547024693683684445694133280461992156325399744953505532379746766722368396072444885203673345101601833040203344036063194754103060426845664179285724397394509798050229838746232952607557238586169998108506167212123825990466799728371304535113120539961966638292117640217033390600088392391683875883223947086799196549668542825072682843375892783053892900402792198889707741442960805067101671757635049721085243963911057770580048467229190042781885165060126811357069236014017782028393281112021490131298992255427664899116984949865333263729155490853433835047004058542435460287748941126642593011718530710244961447915058592138393054589869071221034852995944805724610894801552343103438138586029720315486255892480247973398392865975638850298152072859102683257278353008502280988786220507567665944719465800947288051281403745908933552375770232700467037189555759141814851661460025494265955653275497828492610784798720046895301702542581549761244770424029526979709816547661400961840452355147138327745347248204790342851402267559356566399367300509643968952258369022304472127058585375424836517173545827674835539892775435516378047492110459438073162972678963144630951333490480777252020309078080542832884705816166777672708215348946202167494946108806394868705030449096289147432696407433198275840055272685411264305942714768933609585839548546426885836688358814692113082124280184753018248083771378577507432072340236236802362925542575411141258557626579016056066659939376933203200787803204574639902827138950894879806369976505354985132365742844676217326961837750559113501622468415921631394158226276168472006195278086005206257426374683540733867951867295798089525310179445278455002437907560618620921268836320271453660305494147841788594298482958034575483892896606398886533713739137618947733369219639312805125352120928672990153275465715022426640127367962655666322356518359115572013823154235026305467452747618309557241718092814501628546227546733218620721904284461511452566626653135286479944749039373911251671331356637929519392003211396214900108871666088652306360636465697268339645454460130914228213042643986849679851539102794627248965176337291389682448518726277164546347230215333376278264955387472003816761323234354336546270243856475994277637430442612159525550570410394631057291439864645294662216974450785584196038171263897676191555253051336532589671742096913507149669568942763597844066530574062993076085784466510392376253783569802231138491757446575954651412673572919502959432765752668237883985255572248737682303697825150973813433649629029735856991135117847808489305122031495485883258594054422791822728207753574455599745280703699317683816166086210775976841188223656208499824852669116706840980338720135100840961393861919422453395697278104930822640138848570995167297682568488986006999422707305287121117337875376560806639287790855363070191837145093133382887975290447873343435967492810613141696614189537767112968093532897559866743907594094606511822567188700350244228959542195866705194952804021598229412817990638912143239301185755286836251357138251102475783193672407136199291216217221751819331710710958843116570490254043772313293837250450638935259475212720888513077234291484815041898155774195705720530573180254679069774345418267826676077693972037082189283908349391092208578314924449981707705680284427108788504646684509288124233335590824037033348468018495837468853203367956448901155572266575105151586002692473497656193223600930144865985641542329045027755754391535134780185005263162396887845730554300314012866355486391336073495407936993497184738282040387913753430353104762796860076717756460455313874116086055727401730364549224220694237386744282104859550920387625681266234962720069722949452078659817265800029583854749833161693638110577298124348880427523177015024863387623591343973631428950431152335029911194451754615681719534183304735835171351634970238326799303242339775930800460823580522000807876513107059501254084477462392613300209682305219767303003243510127945567047442070582113683687581099160866306320331633116724313133724389503644067723943652665055839173705181829861104089191441159997608199824293214067334242568147274366280529890395861707569511382332463585448961729290865519744789390654084530109828171247789702641406163296126004338376998157150010758169038303486005922402505895659530093889305284794558149615521820744356417025996505827606817199305270636528128747574901650346475827924175529306342757145945926816826147898464280848822853366832065067194110367205880251703061796497183399513260288935236249482239369358016849877027522205855141898784361182874243384266636166214984469411555497143850825563330199967122482235252764930289138724039981150807086773763010831147138186098501879104084747587494199596686971409809814444613958659729168586371020466674904981896990845008724135244732468765811075613067986343544679985123823986887547511227760320251717709222272481697317131169627021124372917068871779486269699917413281748650910810015223216020444960278898066578250117198000829067971325732882333136225242350882840777508470274711890735103500967477870962507994448168944230421706974030648456279741458536370329498141130333409056359430894546966264513165786279047311618729922785375312097760912280557690526684023665594018765380615795830259463672885355374653364982774355889809841086467046659664912172162878017755509303018979274895812425515980120587306128568068438512014904612077252385625444140567580494669825744064017176836217923869716930294664181445807753770509326515806982428424542204444099092117168192062477656589772049787544169986240660188549364755847844607212378463478131333216515987835974996738045384744767137501286467781599710480334275602223040483926891598628455881195078707144764237383581971778168820412918084238746965904176851217071027243787333167752885208998778455917201914007796524169827220692671862726522393351312210569536452748245290280859594784898662746860852305638891665151022935608686487146315447593587143998654628901701372146633220367413660327502183820593423590926426121964034689151650645128266546575777530384957998097178687170597121393117486279301782676232683246037514698432917926781707863789547973036509708767508326115631371643829536262162097247543749872890939250338874361550886132898117718149157838422064687293386029325112759858658341056211083267325372573418999327280027249929640218521461442820573188435731528484882155565228621507046701069115020209164544419861130348672257372398805742717122206808371971841462066918746815595863662835346253637518058988509957267374940502535696239919434562507119333282980116551612395780065056085433734466246426913982461836828296639156874072087832644308511239118376046472001931480066793120677805692183641691020363851729994562253286994636040216195519695203813522936263183188791344578799635057481179833238652877825826957884696604838874377022709550805481716289081642445574926029168109116814837785455921149581352257329116756464727641475316560693819661527968641576255339164774146124427761019555882366313726207330754553664727375891747876711676839310671752227010098718941171502032774253533181528676299025410228923470531767050280418056838263319955735026119166315319674675274539594816830232844545983587968609579729237479235531019962721341402878403836594819495033583394564731207788427749068090612529618916151398892718079671169691937335026704836424083992860910066785955219078211442903548432246722105163210016428500560961547077365880589722727951737271915016836458431950156415181340013665166490419603466651281440833768037652687908132553736768245108296604863956195861156321286045639496609632872464807113908540998207251624193541734811008121083231042258869168092198907592408410833434842634777097800120982766969038627584648950005343868945812746926193771367370494845514813377424326915875518009852969905659875882230828178427209211726523674353523100087987292952709574109286908402729647705142053817200092825580362953274791461142028383142052658782700650488814673938481929095078019631630994502169974699958673500925039453256575186466033061384553924256507156585179140671108647406724219696527893582784703711657734386705140144801880900402539896642630380086069025773200447034421707665092208204970896593469772411634768215922780159212837151014268592407955090137861898068148848055532147332260502037999348794106131349912994931180037640052108104502012758907671623020943751332019473328219146260882247935264163497031288610703162577783714927135139736419300816792286110057763213533867291338631652269151882132178689577283658571399922427451221866696825983442880337187544149420335833383976675822865460132026069712137443577074121373734618350696941276942309688220488214533666725730667508766331073331977713394199759318627228206263709255869937200936852060660085689425719555311217193744959326416280219408497252308928611991634675970515620159021447670965685523863776172795224776201016878758976221019116922295532276201038500724544354345385421762661131268678380933703726737918764102589526933766364496568843925204434966847216963006888171297510549069252051202036734810762516285828658780917942186267647179540332753430893730004988286079753378897616619984182267333472054421707672585978555880005402113571118427495929142410108162134835912779382373827141302618155961046788750131053400851900848354218083380494921415347807901643569804680273182492290886810206068420528571473597521940762347566855363369509404542240765380728973040088223667336650293796121434014290706026482158748347614250611967921403447289142106154461720845588853519190531765836518499648667689857474479002864749698634492670541483445061148167072985567599798084899304524370874309374949352839798066699699969500890923792633857645867647536127669151607405818229569026652614353205284559429397447558767795738307747553520849036009845399812448739871443860195631371697661630808807870578391962471367741103048379207268344552232327065060838476145290672262686673486629842105065472642078877166542308889775130172109032965392029109547856713479503520727913672684055240126855944553110455550491302411737042858108759571364328181655791947555846712673149319436641068582727803738123614990840040174802650976264059617397341588164199344869834702192475343306869158362530984335545760061112191746312690344115532466059065638068261092194294366004806812219368655128882790845490873517637914095643425929423383410667103116038649800671429084774168576572509313606562180229624360172825445009934191653404097027506293693528781054272884515302618400602935142380351074562169863739330111236993418753600542574642084019256076353385659711155350561684406251732761582912519718449940459666638946580504489745126061332835141808487147800054205055657706166060930541163250815939976157711749359077130800917100253725186897273427351708633575393121892813288953788141924548282524511739544847014626803749759426587191763456185965940299759026038723178035570185984760688041476702449841086323435813432135073932222669391226232170987787360542650136114095850038434252592747253368189189959539978540613787700799156361600392391186727991733395346837227864957760189650145249249637610129268018196223033217490064609117669791466105568258877796829112505688738466363540148979669372098611445745096842165224066967594588940470626031890120808226285386235716297880481506784322630380758753056084446511558340375729338185772212800027726776939232783792767699890398145103871996406177564609432242891457823071887708262201624371068497559276762843568365422276555996597353505260192842831392479613116034620890073507490281244077193243006657548566664215210562808133743739770564699524835424715047889262464961346444530133689722049823026586160888123544000704228408470934368781919311975240790017500443203148051928180879290352605387957817944007598174136635654444485416954909703479265545014836681463267940829975931430357685964709253648063034546758781598199545818646237502644791048855676510440182563824978492423090916044044348449385709533252523592078768323596248969358508893698809941566329511122665259050075777754724677435858495385714365244503320767117691387534685152884763640094668397456566635627965536937574896495731066281968208207069199580264733891373199770961145589373738705826225289447991747492502586706133260804747351483514996278717263974687626304235095959398109425154839809701667697022242565627865284354491580820137788988907431342003599341183123169117558987005132455573394975745450939767435547049659103300137277873117604365786277341026465812396356547400253861516782825672424407885675789094673802296639557282195302826875236611309263090295771540573131869951528711903441762719516115615639298049066327496966191658719750787973232225686401820133443523996765449366537447885814661645296539601861586020884171299609079691115309292489488119955389510679133140435152720960942656371399324723067231492653946097436393052124292833553472482787085787109178211333444036722909921818669979679034998266372105364769791051322198079149232763507015004455018416701669487935236305624685520606465105664004026780210195473609946429312682113554593517967287419318355684232441574004840985352225854312334980855741925431789647901856950336636533989888657403236879968710331082866001131210261176576339670751137348918969755716703591902437906989495259164067506959245878013266805353864589436396894667928641561786112989452987859323852541857366998482214639678643956758124010789644428185939131425684239540838466526144120990600336971468044894949782103396169135585912412474974997823851920291972854267854146317361408822558625727383225330128483532704541130133057033976367306191297412858725443062734123723386958193337664112198888456650180994499125385529866559997288399405101894001088757384466755070539674432784148286856180204597186723570213289137079960833946800822294859456068086891063147131727113667476523477065359765194237515127763447737380044538367380557181286995874678653367693408349811706753913568373678686646081994024428918464027266678560348754828698986526781442803069667612212734923853209239315034132450933297473813530472898734630253276377544189855522617471190243640846779919316838759117695964992933192564643559445754449597842913412064383300583798285634461121337344081608175977445443190067619187993912197102423118464684180954571551296565595853879773391600479727845768602758719694395339979098733340998840146040325721075470797154304382185177703339275361700973753540986251218738252430305540679849359107703077865519617126322751312462184228443153594613120925197799544577877951168552961918037680293446392526578144588037616625778583827973573150796187352218829266179697744903345189427990837505612968095555884050680224190924668039519522149395074349569811527948453315665651583698218304910639123505895467205810583634716554563835153809977448387957352788675210755430014483946045261616995682515965217590546090347473390588545217918214869937978084585243879699156300793773855001450505008194608810710416339410864783815875090546401990229271523066427316485786056256433422221298809990433902635018578757708731271497980275513096624727737596094265975084765672555101821856049958452346097751258741666605089359463330436175262214920140697676367752072483289159401680110264268474477447917868803740826818760845698500309095472753039959414338723101487066952769803746623092783688905360582710309343395744898619272857249956876296847073300877276010196709382801337607176845666337336516662324167068285851037989413623364102764564953655878723377066508719559329184267875593102720981654037291228553200297692691905139364332370508781933295997349061568751295677796355873965531485233441757078823167850171446597555928085748437513302663489926663233689082309091312572675306540797459436300050142391175227960720325666904026392893523427521553973959980230350177765939605760994691122940031584146478482770646827445130572405837008530701070643501171148195083142405810615985485072156099994979719995963526468509340480842085285293881236897696534617344546223319442818503716012277632331679919292566373925856842409242369598892410907617932726319660937994188384558837744385158885455709664098827548762146915232529730324004897951257473587010003185029927308709212066808725104828966930216512078739814657345079535853733178532889119273420232606395597041548262586353373284179604868847857811827428701135910542647576692630874333616930024511468452553708400488844590450846401356698854208097543314664284702863162098775006659511281995955969145613387285676457698195211970533761760457806239244560962194049302741403593818547273501291797262414124305502118727377783516529200871710024167700899673116800307885746133921352839772923965223187129803458619775766056060583748565000568403366248296914017611580837160290874304049121953636722941874259395060949238703079152909402744871652838689622416749785926057809519335490631955823550160596182300199636669892454135746333725626342746675214391048507401116134339219197778766225462893882995493095865167593830621549879690501135672421697931873492080173259932717161454217189071838453602798424069319680359233631924754920198126885756682021532946494151068948971083097803298578620344590340206831888171145963300094577587459874886677193730643864131788225703454395299171256450899438190765114866071439171965371513327350542372468645554361545973329145684399382184383183402913397235777105398295071930081160424583682963191926218421214852130972555938069373523514095228952306652780678922715362429746829139487653411190863896434658863053137808392046354494234711618608249941671167626196868472348437977177507928736883491771284405521515121184812895446081670185781240854684179522754134292969397216767871281688420572934541266160421250386471293400382816081190159157166004460073102932290443466129288894445179780714982870441598290469112080234401114831918745669651296779798106742813956335210164157981135856504630083289399179370879631331065553518855061991297740820940538599791116466693368368148527148600023452309890127114618894127968898883137369388491975260328202973268202768690560918063151567800894661422410316696824254367132832925164142883078457090115394105763655744575984605066507620906357824573138958517189640518008465820584077313374511987451763595603802469879159555736575972689203957168374668153094892127055391148547118122419481695255016171929855191504570106304012243567690270125765841874384347734922970398605930486717290477114854189940385074465823263157100392258953626734930503586501114703337156988890928443867726052135517597034883027618965802290550334449661258316105625304896448430665506133137764374273852357111930694764169477244880920856643169920635258728235100230815358029016733800049920028235016468535879537011472868163920233238771840888191494479100761462483917240996939069097775894134434903020214464847645668576554691425877857688749020989446510201138814367863580983158199862010101095203643253249024024246061016599500575516309823246388520968403674953840989775654780288718241698424895348251019004345668193995981456944675824363148566569991656987303232831055584411634798410959135692914179804120570779871902690242951389800580028356518027610094444360143413830373491850804366258793040640724026327874073501045358041647518469645783274918151971430551820070376017676063684392630226357750984193557718366994968375135891733709189827710255886525673006990527060996413770273005019333918277181462610455572100092163357523651224160745316619813280966939417457039028760771209379825845853062753812882231060440601432603558896765627166960652645481915117856497615703960586123822649529829321658690477741241345347316287441252521248310981065669753783851629266619738660022767951550956186728223591762298837157999063661610361537255206780641058674396240949586152880388068702958189013281137555749784314755384999739932559378146665858284536950681025133715322927139632367640944864506036826038770110423339236862694099806573460421530315903842676201745065031731673878649242949801235511338049059218037051268248325105058507880268623376564607570097512855847185530470914172219653743933732751800702000876476859822138191836165570133852481546805545996368131874795069767163150424666556922800288677561308345311000872038314516483719833144527220899743350691628717437042117867090680736085565185409481600644747367208142044585809996752095832701333563860863175433105468117053981698726952174860187078926317457026882009726643445066365783657946709696950860060250499591667864377278125323928004918415988414877152945175970934460460551446075560852206796749170713209985406344094272734162085308561401713858440994018784788676118047806824378909569023535842303705240457211755996755665935122313550675687144919575553801737632969214379409405454973026635429280948445743948618742618953091407615647878851942033473215980787805266039487956714162191556689175423771287037744664471454947513266345736312364660911552782321467357484129275415386261532415033187574237101063629823253439509468261823301301411324969420510469447194309163622791780657350196563734821758691346943694534547607972980020572451083961001095720981168320402986139332602558927517202556574894742650928437026475488909366666306176237311611905157235327796120450888339775748036040392708056377183126506917767891317409894342145323707154091891377152988983526919883159437887144871844348879355679344627277726384325776958281364035005930773877290830602690724381345568391854228807508553397895468698957090294080806438824278046019754423731210841872309540473616885143597349553678244431690116817656266991811342880926769352549924119975379130411149725653445153451271307826216619611515119408446579462974162104906786107019991538118723704861274978082729258583536640267948267469079673245599069402586179705560910640155325654463167283693523857131779334983476175256440753556094093019653769305661196577766011035543407332868622408606582316928040930067015295129822031159846771146769366583116346420018412847012210584231310289629715655188336650997098096337361961554492625503188354543338818944387507180146164027172901796164708679289201160133828520287284901338908458604363068782294138623286622242043636857003954450029263517080997680790591474323173483804133212543958698062991427357804423551811578729055679945814909269388977705489318150512219340559702650750571264193601363738738681449317053316755633092526170591178808251439123883863132884869181560169151430201005160296619182697266586203066364739946434478784462241700581304959927526595279365575515494884927502551053045650083579137123035981514774212371216149479569429835176459573850118528066612158108055789469504712785393495790721931097002904559803736228370324591731007789375013154974596068467243398933013625353226250687985113310256359389612947524660593401717717109337255781942744457066453931834121688796991256871555383591129390787593998606860148136933732208989163204321656576366428824000877743412640907189609142267897283118054162493728932891114200752865524464229185052242461865960727168212123137554588219067237005411244515032298510653562855433437270300539543970433084631959313181328845812712281106967528693947810055579369705244292696322393245345030681510442417313080068231982269519800029623036107484342813619809702714923191047699977062148433217094908681935746282402267105520633628930795798736739441402333541858365146547526143336348107312722465706712546864274237479094819250951960533325862046494512218455664109773420665916695748292219918815017065299336794400339206651718225969135723062607343737348360601626639125509157579217519873733094275724078154885572337650392099575854906250693560057591600659502594989987949121818304722146492519221112967780932139896628307545325008454113325440626458212833356288001600968915091976409920831602611318899414131528052564107937180758051190376149439961684663305738768844456664751997052444388607513754526082455907287831282820629137277380861919016063588800515381662364243971700684566775520328461730184808473852225074682329898621457433239717299270842887227569924910421884597033436175794491992502837195057930439720728902916967388437072300256613722171998707237035216363128070936316259015362374421438595695307946655326361609730365594067468113882893294387308089872395839019449442434037444289843105595898834218489773009563417516068923606976768778543578257081128021957756158131037822482647142460576418179885519298511024933327755379997274136111782564547071358891794286560482930413914664768090928641636252090288017536946246089756818609694979825638174964624325079232437954569069577210632775893820620803189199048587554173832990606663625450085697394847983256670866523910424620552735704767800901689303866908120112348688129724074409228039529749882636224058006949339481717070977049643840201067594650200153708046458658234190506920345173824698973906368384487191074799019409420942660479495603645310998091207043450927510052959683332257472916984788843792466077416471948707639593785707413971656477574441434374495689582368247615625756297682529658967421969722172927269858991655857707915648686807300596213160208992006288101011805203760659650909364912273573116046751347455118348896257363589055131508285995205947012245135214347913068714552793951461248299990036303120588439593568507292122111453733324441551522827959269677373571305793618563053795673938537857820664521234052536342691758771839773265427664055457261999705304275762934766229141416414044739045779742853515779040521741031584620915567725715803579974176357870742257977195929616889683952569032518844586099920585804806088786482483684263388360616286040435577917475111186827372655801404213893887774296446252901213951222209585400200160496258259506498099997551410875215793930583964751233903406869266834590427438642548401567429749912092034749669028792984252348962336781160478176371109515673858549889842624268753485359523492469256548609502346268470513318530263561859700470689782641209407237825744858336753984339890569635337268826269825799581159697145406192639842670778073120303757523558613284394090848562628990934477942137210521820006431895748013885297540440111192335321223101672493037156481386088501821089606404929763761450678823640596313707664046064182774941360358911315495206567788081873294045574042791777619699028246998817000463665538128196173789568977683977708836973087876985573452728391415162834870725002393679771613372277233854523019393840663167045611763374095100640486829125052189224490771942039825925669871120499167994097764506030932796156608437390656596249666236833887403519996797678776943473097436310958969121471548071841826315226344940975539310977373914182738044199683259707347289271696225459695246100005507365387651447650390122899809974818118038953579635853301180001911478651121266503776294881027201197603204441159670489662156117977019172646247168051264433895763442303556884329580415814489249851908789168594249684326125283332911927625791267270545078099511105361737186532094499163713445707116554719846321220700217595240058204246503965902781359045467332720840572141663088552410676009941304222813193506172504656443867685988752939654278899471873650275648073361149955966067741481986911225976647990101037289884205237889215441426397986632123873113721684090317102479326298072510670268809154804959916266838652975703992174732662447729286175815193080762939816821336184214042333161692422736516692682800528154825027380686804471755994370854355825427641677902645354883249103177110477073923705834679603424062072906469799829919734460289948129472746536676661393418851208885176903547008696665220279304365273366139760822035780879347000057709034325371802990127203356634955322835174396836778891438088566499277679807429563504879876036643223331374612805826949226830531055195674504056353700696616470275542306148564234299355090251369151056209913852628450375360082667971709740256474942259027442407898471245145147693523025717261068907802746141280441539257124654474523646808940330721369247166020238831148032678460521529599203145079272733523030739130357419853217116377038812399394034118279067153466543459317009079429263943373528349982256130394718881450382440437919947893488734527411900262762457947125793909573814025052070760504951294723496800426358018840775522201926774806541087337463331526295922187328743030307161718755309902330751112913940728941250524785810144793926637925040056937936022542830756007087830993273774025453778657895614233471761232002885505126842650775466922481948524953727522687551155331140872043693191573999178780624355242847246714014685720341162773963435484134648340871942149195368516801617187607513864053148742647279519361963856288458881505843014174757074511580781992899388944592408474097241283813364788627399860433688929116751570601366135904985385562997847765428185063799359147903467361932565931501816753243466122930086124406561200430716690188026667027911253614043247847427410155579792604836198789639099724241752632765368592634999607493890653858196349326715429544535197423113422676186504060933025589999323974205205021373726639760441974838980201089364513040711710566591305527444618824907657560646092671278670752940309552232436623097321730121950579873199614343864570523165176327035101913889133808508685821985644216472306879313900281881113454160507334189095667538540607753519950772907639147455856584378645421121667209347773874030698253826773332627263917637913867123073100673332826539681495960788431439728146234257182498652533427876440553244970423167612562634406787538157608388523668950840952284919109212870727716415986152989511313999160306274911791188000571498471057554823776713046483331375593069800012567940723455519387752805749061027673229225745068536250352880534656783395260871990972674721003917900829997016496772437504706164205973373654661155609224997750977375418204120552929325210008888540424819900570361045074308018921741859877637134358449906193984615511029426006588796486133866544545648735482673940076733182540246802598863724600906072271071011287447488169806395565849340471293818854046081322952321684200688528290942395392178675460465878168531185396708195142286265909894003049792504502106774941737155455719405864043333873662498242742104501811915006972497910449685538997264042397384977989752030375448428632874962900276581302497980089539176921558805220048075991002566937641937185237622217131430117856015397091965138617646306987532967351047479640526658338543668437181371310436117476568125406217268670913522845510935411919290719452451811831523041056829326131576948809646659651493338261100289576153555931394546293795379834623130720585434229608598151638491595651725985720831673135895212062258631781358124393465912345055561428511900607753734890884893800924027645427633455761247691244143968818562409560178817209687180091101322955539853931333862685197695045783883248828727489358507418037858274396893925336230282008355077649574445728564834645047763040659168719906767771156720545156223632880296630188301708496081597330112272035468047853871037700842321722932656795700791544602743588403057699690844059679538778782795182498057584954639789397390916859508850686729002192516420312951073911575962494896894129528741414384129792691287729075538596588273860631916798663540071733349210905760953072169654191053745253945911419223720663826714073258072497898837944348268968979593394739677642223488776872386949167314400764629262699972026655118580068059496339041685500184787675727169005580220538789224560862711155601007388308681915563574295846523072309899348578152422285190287061416689613235839662987286879654751306363417382943453421277546915047100953675804029450696246054142083300584269358120245693642129566306760993619734697592104463286499158926920463374181991565398689851920050096745340753705187819492444326858390558950801187373920891994245012784665423784847326218422025662980455553087576006955524467143512753009268041733694071562218562045502386399717562532674800043105250489372651176039875502489773673407511392576351656019347052762535202101920285379324542990705604470715254390244416460870270902047135622916552089791247181275630042557278171359880180761170092010623374422630088936583205284526526610944790430550910688158313904107827397325001882165218360642784203450804176152881995287792325355107528387661301347965530855383832757099010125050597317234766662344540663810324853697536888385242822418044681722019455700877255323244253734505139202251069022071765843342872995425846512130299666836518192325442688461402716479079830148682750560049285326960255916341946829138339632613259223363216221872688105393963493593577686635589602819901803966158221190404690151186753458147972267892910433060684716986657702576923096242464083975823918292390355583316645234770859220903033316429999004589265533735968159806820000156146077693820410957777440028671762469870293875095018849151683858306286302972472454933824262576278151381734869456492987305493020738157458904318817748268553210112258982662221795819165380705539975760479007815493287448493359977380068727274458739253159775048189748051258569645121622089846843098830728553438374746658507364535131325802755218845566154246204700695663635126467971486109830677503779476019292486571169937595808313410230940808616409917335115222200996807409256544856819509022120800881051409791983941770091616733693431570033404666006220486183117732202127023565225919221770501751834778624371523412570666188761227784964350770094347233315860045356924021906160570856850214334000693894769684121440637985088853416803779620202318644396148009624475321763592743708365043558186961590605243690697128422580877920937961872479322546854808892344823337196052156209827503044780139952870576325557738464758624398615914763436855204428672265291706418040220095412927866245639334924564068682530666519603308948712076686775645021538151708743993180977387328022038622978035458520836546167353137504861893553391831354340452557841759489543925884790142196826728281439005067131850730736487497333300936562821277828225646875580481134173285537025554512188233428101657734214500781562042213732865864786388415221667930458995227909264434821785175869164612591662519897637646807318754915433958167610095727886970947675428020138447592312204350186670599259873163542731239336069333107975496186765659310093495064336696543772556775619598035082282410265344461199142854410019353313757398258842668107943226866734194498839073849516280078617356662335757454155486245178617434209811260159411930501219944437303236780677032670550410296155322175073937248648522649252875258076563224208906074697072556564752656934719727735569994279446345553114365779938522127612810345590738675496378615225930786506469586513430198356600960142502135479848320245868515587263262662868863193366285281089570332145226231485183795626788228651753852471642453487635555556775990988470533544703538323873488203363498652097804267528958636326131553285596958660736198541636737936384004048547723762087822387968971193069861870997155987593652577344426238092309719152874221509572437018567205897422994968551386663609101935967570668161121616251645400911103295805846296887026712294889489010948412274456178326242098906488743103415042390169060342159908228085274817879480678635637249298707994292883224877483183961653293881225619317115165522908603870482488497364166827547655900337980043824189263695057220507481866434221137442050083277041283339203859391273451961585999053362040269833590259483250279239110211842302596278390217648455993185224439360490035284280154500395344172740839579214057711527878484059478378839273418746592368830767345020874939781336450915324792822010340837198706148667739499473923113430063972985540545035563425162880572266612667188671310417602804307455249069927724702204029465500205588553844731810117512742203265966816609004591934760997294454782585802931974685945742187951093032974825143310899006796042576026242389724209000467735048544757337415296166667919624217833068101248669177627025579412466377752096654034834685627120964973559240612749241847843573396290471221090393376438188144070036512479230784870939661469146335484837535258610653516819614157842025978014975440674105542502978460862228844027885564912590532953398643542122547096120187589874224747469346905609071271835586756924083159866854740593708002753764283852982724935348500995295577019943004629339331786075338069483074119491422494738634194402942194360741274135769360276035356110036452124772427121191261766569256535570873704239457748335761278723643611438606379618491432785438455961432717635060305417457513005983455977329766227225984551102774397743484401391138555325631277369775547024531810039922271411035907970177008307526855347330892215072590380408301795461654333904524413966929130096922362677117614908573880490027569061917425245721998746092031527886651588142498868670021813708756179451333796035237806010571351866766383648021762302150755946672914573451817464111592177031248306427215638254726683253763028355753330673557132050762763270027453390348112322727606355649229173163241740228037700244708108465804825475609957679506112837738703926527477688042996204369254005196763678731573602318467448514792881430230333755949472475015360646669202469804659474218634509958797666613227437972652475908682591280586464945558391933628387378908938082115962058074079676118121512259901007916733933974132635362735437543051092718582305198200834218260001793402483270301967374222960003796188721641881153232451752430009472055090080056909094785616244073035903303622055635828345094282309758129104568626803695055755557394791430705650404099744766886809942049270493112375238979943990361305670847734528457297253213863783256245052452475156624728077661021272161134831269604430333240834293992214092950118484407905428901828809089593725919347848146357021220531688620619837735454409728575664671539200509610252281331560914532425455446197291639016242357993037463666988689818964462665614231029477360691072392224272035198930573536755472726945242812926003448643126658784508761664969828702338345380377801793270971207661225835341822462031810194734328076057900633565399011888947286620723350161377630825889026777535423065426310527817135895523841776602091055934862161644938219735380885515238203293861929767752066314477629579957599314513093941231974980253162501125785466676357703968647494192815482352226872228447587583135753089576870330412083478651293091239553629745097735302887664118259228557644068306724699103950250546832935035374447031923783224084261838003127761341195676731571126255277341980080073358056116089513027566726665256917882267192029120593877704369092531090901299485499267561732303588216960233818354550402363791810536614312183063261040365815962975699936790528185229818791887219217475112183338599887135794103046544203781316187101127314320396628503013873647145286817571976192659629935237110336809717538118799652589596932556275454408210732929805883346318292734745006040966984767520628233525187559315920043951362446516298850720922893851048609152694283082914053371381483461711690837059109730168784877462951249786641123483204434809017973474780834016734073701610252281866789310714628087141525069989124582544735990249216732782975487819563982638233617352893989799295236114285453781303721994568128464113694852676060144608229635946913661099270199413251332069697828645889386260843765263119702149983052240292098035501364595474437540953756577036398954083887902616769053327310568714007376636240409470755871040537233588031609551252642132326804908310218690207045084749341752535632606127472036266208957520829182069292435742512017495819492981460092110476884149439714562000730273898877087752933064133378868115297189964969286089467348113959316120652482116091629966296661259296887714271136027187331203356334670600710091138419280443903114983601293848240486759714684030924470947739026766157364035244704358780039602447687651001665574997267208549916362223249239332899153926536756659533199190460552169082376528642003474428311635853690031369610134237500621584110424405171529125765920798551581011565914511974866265495180410634409508398483957998938025296487372970972492004173534406087569399045927656661178088322647095616577131867008187400756220740071395561630871975015602202420693502680616072065183286111731217391705731534203222222038080378539106258848738588345776816213315460525682167731094317654067473263851265240611936259016779240748338614677350743106250246852778635043106036410830253889117630391331558691792355863844174448146328644752942917880020822040363022105765134068587380961931029321239620205016448649626522732642694433531480838583995192204469645059823964759905191745734866351491042481797602809734832480909258543941037353537687920521902996102671512902562264339793406557856120558704897918197197127354470520386268791728830999803306023617147961080556785984648574385692403139138827458053285327987410630884943684885583467379922927503397673665852951489403879054551100494077049212844424066758436493684405598079791465287276995115301626292433434355255425209015641366969077351442134814997552689334979059709091912364975518214325103991755977339306546838139809998746359334253734460433719774624157059492656843273662760485984744652322128373644003782567206692235768080743641811497104058278707390153812198558018566246187494974747341286221246882163465444847174872066812971176757281079463312259505255555890894710448543084023183146683285362595023291589991441183198178417261284018818146260838725355604637539909579727087357287057954083018177140934022642895326454664933819975155272929654521205248172196959045783337703436116520207309532799451397010636559297794295660181811208712318140098906740406195375844082812702281416621607059890537784269786897768767422328365189057419154980746412697803392849334551234088603192130618863334933209450670023519798562989611250498058356738368199535902774841906372933076777979700560633514720055364377641706024554913348707379659781159900067161723095848059186646530490105185638248112345701929923117138886375235058403401732558977571046147457853539266167907474508280496704870143424785902853086285607335565437657690352033985745474094821564866899351030407673521686450681014685729392474368943745258278750228970419696800376260105035441486780893434450732868670493672616143474283295667340295096690560591792788860992151633713383094153367353053318134957030613699794012183962571933891930216561846513971901592707121132098725445645197113661161926603019572751939461686413206490451124593244903052348984281203717327605982408224272181434102734260961244604930974737566345122268344858073981966446185353969501154128451421336453046179773582485103888398141394652910551526630165317346000043543921175521562343764144665756661089381754736156009008549506213351127768522024129860742007351609141569146134595893932722108681200771230272432521223940169350661159133052255409139585262575685069832426066486172441385272958761703854964364697017199147554959553416752230027936610713745362388146202524979548073288502231300044285255989341677500460794604987812731518480087936433243083855873367738969058169020493276400177432464999309188734294547444206394241056161520071371896608566037452321669648705272717711316893900975477996708835939323929544749301888190763151409504097587397714529925923801202217680316735425163905309552825189922021901769409913823646176642986630262266701995260260281785993400370813369313478721706150414144940967729175516749413555334879664525501495863455051041640845102962118678100396910075438547733029806810437537342045635641840845824403608537741982402683570194829130845317621721093469145553875276088938055768209098576602600439452969573125179975916915785568554908662775841575029747722506280355341756744600218957892549512451546935927622673675598884727863104334048641817660628540481437191640497937781471040328874141297208770307870280191190770271892867001244182268747842544010438430687243724514273633089819419034168921885757304484723740145396030404027205570725243884064164009502190301064440483443802686129193054947163093953520722385290611675526780328672760835051416652069922361055154894984135780919717100803007636407992138986955240248295672199112705712128081855541413199279888215666133246758977336229402378980853103962738306903801556325175656112304576646210308952903259005038735564449566502716713155340486698915344714875566789247955849738624234969902161393032727372179579236222488935718486129170224537844928754803136133412950697660452391842117203117037033368029204140007352158859320149019034958465853444176716879728940123599858252559893241788981899811043222314772139001699271476107635583802048575271782585371621435797420139963309746469510186909164252255929611580584761329914610751559594462727231854755000166087265365556023051990237407504292972141530995157343012709824728103220899991436334333363442532823057682903449975578607582272581255486125693192938343722496575592643619846695600721981514222923613612145694086825849158802709266532991852301113175374239946072443254691208338731550091084898889944567701097448831518721919361086416396185440046297608099577274562075842627763293656485568502410304631800374079547590863824296015083084587921015778121936812723994897738759637151494693153673860227957777906273452494473263740736370315187724847984715134670199156668713693093769240663905247401272409943541361655144290157285185949561687285858910251349919947074133042155696284332975406114343623227632550678773367503587198522623266527078879312671358294930040329217434616546920747679820804789172348879008214473043388938710449062643655459916240252449128315270033673035189554694547305068269968424361397885611751078109207626223138264947970064415934171880774846051178640959442389265992138416396193844402845481856056316399384189013913369559276837142180250806681181543146993380538253885442501972941732410047185534397430759820427877045075280323928673448284118197192089422034119556306536194589670693058466424685910760854481009701994456339987881498481625646755324706789830166551862756297989512371172117491974635445409519555603420969482713341659108485821684425020413325324718515814000441722943245217173334518884395094191594344846817881400075098048017987271747777262703362745010149540965510512107953069370270682878333805317173342197161941947330987935369376243311010897368836009135444670975906215075111037650778227120234757042273356034073779920591055801565231411427626509171301694229548828238618829122957247831034051757083656966483877952664896240718869149161025498996605289720838639238743855171330534767954223043463920510342384654482593400827017203725056221860380609810528641863896075178444885258214554657337685925201133514948536427852493010834008347594301189661621625611501943300671736602230172198466692721153920381563196326388403562939759836166839402392226709642370806336427583302660494698189748371689263374623882075921027812315107269888011240407420078526888792145625445182399904518806849776291374483335603124382226236339015407496596062244320164507427488001265916790803026882329637659437777566628844246760923417734078001073528962948080391635307075655438453313324203523446376419636112466378974730247157258314287006165294985719737801345520191364811127783623532135103381940063419759780663781053885678401734153336776101599481402607313543515017265519836155943842687151517135950655155295851055341843830177292873575998626997868737500192399228570776779568496603118893006607817656807732111697199449012422995788173705006996265080839076046090479933570473351003662731122886380972514493777217190587253603786106796798648608149070323335954820806876495139902124832312755792350412034410631568767976753601885620838714517633378752665795298302048610742516718197279410321071815568042563534609460422555123418148952805772672116225608667966156527161532437206138093738423497970229939252358679043476558861841506658177111815506693989494567779715810689696632015732632523348161510667299438104903291488641287713454928609243623768350003376012186061368599354581938432273443872675431695569651787142638188280075884839685772947528822479979585394161559644665430561192404429219174764732225356139628780296839674461398733780073291094904884082280596357537652900942952307213506651698687090789170950406667498990101909475404370382970386266509562872376872159249083868556334974810588794983954038109188825404756676815798858500064151780777735506049262843092169932262074571266661302410626861578245002217241775535751663506284067704319854678442608968050578726533462476590436344178147010234619739800506483811678041364475601914145101903793800457115014983364598189135051408729935655273188036355466974160359517064929055863872990467178950258496056710609591642048918289164147616426950700742527022753991811407426394170332826802239794989803954742349471939422038776666349301236675903007317067956032396333824774998246479669750054910690619265807838399608572141593807296599518924261621971608714359720254833357427663054629838670042089817086469731563122871917713598089095486853162029550579758692472491454424515642569734364737641299674162707583010041808141189877725426427330939474554602950324295974761079659642884726788510339391329473118332240078187101294358107042413277014807341513280305135833652583299322902740850422794945729087680634565323040201139402131378185692094975282133962678875166962600279403375648000229519648155938960500464584708275389244171105729929489035866315176385448078430421569497475218073267763554959986021261048252981054347240142748536034064553431916289301221677561994865767255100545392322538347796281392948519605413171795617696065158595519836089253015983827697834975997513008054190627097269983675275492665593016668772777220219811347736859029594424974772960273552382124126721190721972760771989121445022723213395481004647058224946664336215745334253385272011989131489181684672490297069327266787720139181956269426778999958598515945573877456023373161029344124911953291202816425641118870390587740915125596365932789514400663393265855482709702181024434050991503032588460466513795293507490696408777752266210716032641227097050923513771247971477770780589719839339703310640027123381960250533155733968347347924105922393880560843613646260757020673439117477122181026620629148546089987990962262048002050761200591495201406862333349959276933260885975589072658153701750101345321935546802101469561763257101945722905745069783760887377045204435688139148444058037801950873043336727957907964644703487987543385077216619265984684630263186283332874682491829961974374537029619166097545057366743802892932579674999846637146975434276243731260498942146106317257311845712175828352952211130347817287198101136689121746660134043307479797768050097167820066635723762720986131958503177831645289303711642310764927426203441741140952126139861512585524344856654581662267376794382307863636762066550526486584799762872375134185203993088311345784041948653709404404622505876375830104062398049307324013014731174698196023682697007002589366501909809319685735958137405923182402954146917229495398912799076586036302950225877997882838287876617466777940879492535879858113349518148081238374282737577106633977163935028370519093954891653294115656155667375344282043597607737153674683462511248324480285089877714158180135083872231728504645489686056447559178960130647751387003966344546181240245389190858058626573748111617686815502213727392036901373231542424943670062613001548269559076690836915489595105116552481557671853777379957106368737921896691288567164601358123394696131403710593190245538970481550328899565020215066347758149201657032900396229291802346642388753103202190985759778773799466724969850960643299408399890796884947304621434933115704042387835845584205115048525339231333706386951153762985463843053077369622475102818510697132050235074921594380484143022217482499712812565308739246782070993469903376857919130097109028305059274324825240728942199612215428465607447805423098556374096139036599016908121969586399323374600654525064009646115352423112734252280734083567393233008820467891376635150334110239530049396902812337977597731241641364979434628874530619750286037555781419099578968495363583948925426622726625265692560362322962024955917362512022823812262767639281196518984866426130542230430503039060373878765306656194169064498700716330938515061995996423741114369109359318707647798764248508878464026107285331085571134697676251712768650051986839720275102448983831027729141197342013117954374002740709674699060293317363098844860756977474937907421083393802197742833187359159554533676368166593789057865579470284858364014868871991554496188685414698039422369347027637946787233578270197139643219949270099633231788376601153459080499663942591661400032717911303162478063015421557246832777255834293470318903796746156180046783219263384196185495282284949741118586250297129016771415432175481183380564081639342296960202734622617319724085237284902648712804692139266032239721664324905024167922263038495037662217329423552984354158920300476761712942483894434220639545639983651766985946933806149855809369960050864913702718150678622791180183455543065865318869668124997720045532885941802321612995926314316052032752347084753198189847839972808537561702040684774301109073814433647922873538665182441369085551125144547799284590898946201409032565068239134642067583320615562136925797226992261055226442567335088418501522381963322555374622283705412179270103181668391126819438927218327321985577738026038998071708427763910230979873813438799298522656403297308855718219378079248930546530753011457332289168830154907153291717516240825648193093324068972807815837805962984077278006581445078600807927622093078012688482134945674254136262491986348073595677081218564716982827134661921508773879305718979704900236535504821926947553561671037568185729879641323500574843538179544469347572893145490729337406588138941773885959190833324340207082506800333729273685610027956058348240912870596066958133669508626353237981469081539440878306878342821495848190821065179951767995247681262609293557636917807449173951660387013018424024914376444146337913064871625165001086964443402276961271415303065408573327515486185926385336825793460638342415518250390283278827989912084445227439202323234295834114353324269083190233227876874749447710729235172104530754402036892570517728467104870640309353548026769604356809351565680886967990012929489419225149003162731776427308079109552044472446366284740784909554377210892068984136364064971956113330849377886868206463170005081105436161628658539219533473682280799042152072520192968688739744918083247036907352057049753545304745241669450148858150725761881604173559304057889404154594755578797371915919563308542679349907680068228478968975749151883786408164508379337958173135852239068602185512806656735536035021347618613484108000252743692033883733651127092834961812711434490984539121271417829115602268574663422368402705615328544952486097354715929374538761499474075252403370656911562144766394411392321594953216246365626805871202262600753292149647336044946349511394997648244817195244437082424815388461935065467211712052148425832038833264431200250103518163779620354413587680687727377568988578075645192997608781960381505523899790166056284288962364795694866780845239246575776958987142415526991956395443541091170885987902565531897196390924456691217008749607183780402197482622796811240790555133533184021209314455015258191790443777075576045086773213341337389094878643474000081260365695227541832234417792331422768675031520982355530572431848070493215361228578972260275686311405557665744874758690916647593792298818941814861784012432084182471458305014079013285850738836798432300851483196201308035236378985407984044959484378623789690843889470142576829293177422484961224430925989072259230580047896235111449905518585903554905328770923814101839228864354571932586827764935397482959520663025947403830851463753620248213752254266143222410034087882613669232878567507561872399859752606388681750086106719247778466491627189861126915895560969929453612769768998490005864871510459261649865624317852960761248170596656789060550846474804245725979813610309020334600016537391953325436056544619674730725205058225464714874693741389703320481537679544620390233400960091223933668825523664212320300083314755100247905454244525427485353388498443943808492575431858262826824688153474836108077892375842356750663153407215360972579678022029919001470635894217854736044999955305175233941004597946319419545875535689229532768035797903088266065358861998802833304117685344291464046150462123446315438239853999745187570204807636520806242728078549908692961380638494978737993496416575491173159294279848137753525076719049863446951997662860831398118602776206124945783205556598835035065225382045456483318371916317275000778521050376326110466103499075337686174331592851443160561291640863767586573832566016333096626185887016110076443784157165458736988287982471254692944179511335357140253942429603687789836959063814013190165552684230092568397889050127742580911686266676968503394252090846747340967720202343858140024214320244194656720741769162875003284488830615895005430931418125673077122518778935043451206191754266532900763525046744070399568101832044646998861065211289246679071561850100344096929420285648716086758153151259956641456258384007434593679629676072774593991255487557144384274033519971803630440910805263757457218211749498171862097190976712194334967698292307863396168884342426209735233081585529722644595164657733597102083260210355581725780706552921455460413328326658246820927961504866034959622555125340483462433929499545076056217406419660096745192444503110572927640566987841809942679200550034345319131553352018044339720794085001607541301333733327047905441629201735976229055084266479870146869857804057134244478023902177922811145031325717010790510309391559589528532744495695853463133912358770643777094932390682617203078022657427271251714947498680195540674312312064115665313824205580128317662567610774002809845349644909896406912429990540336251601055510784451555893519798878635003320838672656529104245377787231892859667155351275443253174293162244415539110895478094901109089771465961933361770939581233469731591151656813667708077239192253053763579077107812801027365755077995063317098886320909255559991212455267678071978533877230141343839273284326333986103012308692731420060057457098320618226299400059601638509494551487076359761190031068975077101248323618404425462425571204471098617597421574417360029649476608456522332088249267302205360973947482519616136592466150491999683657029198265729070050412213243634532961531651468776792728589174073499244379655774213637467400155242234047221599716463007267774590805771739206946922206626488244731672175354079247963921432995645996183412424399965643588499752412178500111890537311940024846584135407645290355601288465114402297648376148796565258391211157920383435889154641827698767309274483505603969694645103075924392316530972085523416221166504425106308286597380097142315756106630408815048868481918759144423505044931178155291077639539316048176382583660591498986653044888974794513451209144169288639122998737502960953860789666490004183630962813862664158044723793588125275953241101981915720232839592462142667941239989251480616117874069499332815433448757415437761222602360303845260562445517524971977500713158798680231324067835669282019672522211149153134363464238153747133199167313782533262592791041142063104727530281913567422609723284406377376995684188849697888774249979052492236581974456319881937843119668667967297453122992702222288139145969790970699500114670124110390433884065190567071828610394293535269252114088172885078890662491846668323900438224187405227030424010738129244988093681948107761611087940060581312588938216892110385737615696756888395610269639574926881467973139594164795087642977204842468529049745336117746498752192956913095265561558950357245272507370469568276865806500176346463228079056328076277775833212728687210479471286390593333908489770999058745783352218275073427099930352478716074845801018031901313918876833445648281139362719385199774982564810895722233957536454719854344023562685983097291774410263515428300078157304380378694832607382478371914975775626765148796140690526820858544729890639784224943499504450985833090960379104026070774506101543450593839460602911731845250689525131664636161556225184336503512478111563405286742357503417688839414126562257437601831879487873537336472198934292763375703281063158271908264092162499900220500371379915808078619372673442992381666842113431363675087015154405724121126713744586980766212599327030797541529940180168540225449964530379175078645216414389029094639307582886342526074180388303933771737241464263958378832530941442655165961088190342916023195375889605076335038051355942525423991616329766583011409042359096693562956427699037092885852619616637148089766553737521548878147965114741086119192264068871293996412145543362261532856668767688643162206401831495785743099217086390308731236187078243681901350831928541767824547647266165873767443865050182598238879015508185312713856510120664546144834880333382658965729975361659359306644843232630252550550804595153028747521924590692681458864814162568055001379819611928317138734113728035720977478823943077863132569575755916856443276649606087780917420262168833551907440175430004536861981656966865335745956357423455006729949601446572404527141626124115454935599699031777155204919112721130767420565330954452209994088669149193961728925262347771191927784720033698219800345902384766566218479424616045406898858547471748150273571333054102669699839815148557942509881764878456513153107979127010266704588844150289206640202045089883747530842809927408836994577488657232552953352086073469758031584583892459537382687257970238351748897704361684393768246347198656675746986651976836084291339008282448579653970798452241014925506613835365902421723293399157614066078558273400443823601673991865165681399403156157950893124117287939172271727124373117641492991465105879657387324618112950907822027166693191894884826076825961877112072249001492186601882861345805061727085992372615199096958871767948007573365148887674636707781698536144726414861106002465923883440430067984742144247182756639366777782372916147813103120094576104867973177291329342216519214994169795940232717151718300228411723885341111794935579823176163163815937187685212048695934752233876780834929748526250651242985980490850445309589823370243298372360249846376935310894623322457473372134256621678870233172811962137107266683352915708444068615751107413754275801388745995277067208104671056271604017659711178212059498368741159137885798952552885958400423619364108908927700780726115036970193603910587432701100507200206927663730217925611523522734585654214427065302963963561041969949580104387128823001727957953277049691458067461674922998289448769088492376692537431299461871585669069263572741972407754601503560053665345466649631691234064133593962565786672213526786577289113192930289359926653602909615928252973363014669118646031775592502346304629061864202318955535118762476911189624845035815204217231778934444042542073136418368719853710556808106068504138450042213447769476240806166795834345542184709839425910681547358470206229254467354602114155526137665632405717627135523526289707641321391652430233773506159506925024596394255625022081214913957768164905836798598375536757263165928636502986294732344128013186279342106883011742934426186729293492973102327923534612663276375045607113321852358077275042300343538925416280520095452007887678476202552853901993023987068617391848371397058107292485846991709756293621329238782626497250659113607603932967505101290959062300753470479830885983582176590041316418981066248861274227159658691681399576043090186991995532026039613771475828572553355189531157178480471339312317375726653313346891400664590606188250242857746769641187251043554308073989085737281435858169231624581878637830032610100136940345573373742247000286543967829919614189317660517796522422663229676903356833936962763537202053206064244362265592301085964597531694980003634703431745724506964658673534440460210586100202343991347226414136620715625934777583304497978014116175546881799525339699232497688792483380856236343019298122154400778651751687050243776699833776319796255826424003815553121887518559893922120817044116255407851981255604886259326583079236475342668854712778715702422933729179115431348893146566641518628072537788843380428654164940390656748277840122869655475216714856049081814965284251915832065049865523959145606114522904638265580580161695418793692288437308090786978248217306197173876866349487616801489070490545986247711689172246944270736605914676458896242293566571537504198523248838951114599078309048220412753139060067212850080541258089994355941097458390858278799681744560264447490506794172819541863325753322845203802910109808726659754869917066945791931411242019572280671152778487277452803577027830560643852645813802458569004244414840561482520422828187103472539614658687798164222710166738558636107031858099515061774285024115288082198970387216517639374218429234669429825962298898683980987469331920213261956877360585463218003027885906633752397792321396062548113168423162124584466193477148784076123364820335955002418455186748167630078554697801539768359223193072638874006621050006489291753573314485079594313065023677162226380105106025200904238376335121539392559594655115080494892395602946501513970857894360232948532808177719842522777154209147011787538692041477908179836902121864883409771893349774476605411843285608694687795895175698362678221045662283406897064606123724273826370310743531001179277131502417266723317906054468603115449746626153426067572992422757132633959448160661510749464323968153817648194128995099784106517597245827756024078736330573572986443938141978657018465763093738811350421051060583074785256643642938954067447453649542588278490115417955193312520272193513632533068565733926086057933272155900580298125314532579976040065475896782003040340569433136316326836234946056489911120533880836720267992998397228689150040815239078194777275276938649351126149930133805793199217325093565486628709454714695027612114172642169709721042388381481316501935651598350846357948799226591112030432323067682388712455626414261347366290930784231949716574070055117024034165885981173832429571539103477129277192923769328937523602836318490345869882690560282098219217210461832930537049517864527582492339386382643660538857421514308465171144875349393851511614029905836998788388770469507508279316607033050258676031454988024206074107129107859729989512907029951093957926299549135028115087330456945188787225139599812388512819423113620014903298228230176822528991156164345666989599719143425265404852399446424865872493497361216205725196360924746026142727037182440209282731534217451171562205885334545677956482987719080187546337482336316657169565285680576057359510094833163616039956164474226939844630446726146397984940792592092995872763195975739727584521437270987029622751302108667891531372313234161530191450930685116037856194454274268321832341550694662281960167308314914494794473418349008009734431393376506797786945461740903084905247990389570801559567899960710878198994029055116827032510223530222801741044072612917751422269700359257110835691834267029899525169499192150022750650292612041991891015155932611314960671641338146426237953423966961063383021063059204406845693648204129650136753131752790949570021320978881334233052079128269377830159162091651552091636998508026809746466312359561645895977164434114875394914621310231930346640576269951689773694422650845654427586811282965054954385532383662777225943803953861439454833601816235261784352728102603074093902513036573780340156461547434848471581455903351278322621066774937197294715610358042214124346028005857889603353484425077171203615095259408899641066149059282608559493299870071525781546724864964963381066146374247453231545080392127984817671260894092818866186896362871872740869641893591048737670187851654468245070701414624493784180226599688209917241672222009869835817096655441998833324202455934268982844348175406556327428845823982750084342730173604518128408403635250023029345543362673551047103279314393960225942567977863509387732325818683627626123089018355966291151778657132858865986316984579364719847859174960649314334246648543456469647074272394421010779949285795948927546554783999855701806826147800915056366718019294657045404657693993894823935023279651417178939175571374176837303457998929849388987112770389338902409297140668411775440723449443130499189217914025215285957793163254909415276774191252209062759224615407267973132581324833111975057864451880821152102318632277418821494085295578972466048167556957454823557980373434272507683392496568311570048078295550976692634145245295899922355374304116020790887034806363530990223204518894296463232381539307620108318988172653941149409797908372262787419272766734352487983899848329667413455330603313372971849710471590110587546965792143195025270186671680595536171086017245395177307774455308897099720446921176241832509448536805953088111111665134238414063988989519987963247558202773069769954523359735542090754510120745967862701957557176526449388728012631894363217786645638056479153470634121145075383296127545579502808943311558359647826081863274452215903643924794651081801868962146599484600319346679612699187126055666944026637371489566735853675705699538691418205557484305653393926876290316013739034502305989751143462608022484232541526410076109940153635389905813761740548386931875794699313626720782529532953579785692656689636891677717286165748151432770993907106700285332368906008099640479863097478074005061374082381081313483006021730884303748427756737499224303197042406232009905815165962328686388530323619586875121685299962581888894527232187834045827581135902104278388864772859679021279840444924387637921361891195229527284553571883939560021376032031100644169307037833616425079089529768270220292368637410203274376247090259931963746066338278297008146627945435078175872109708134870950107701144795877568028135798398097213803010097654553341241837935805925601970113882753535216728114278187382493392922265321546549740886374343622753949658854484534362149936457241750987719480726353259068991155452783333164202962241375959985799443392716254969334018091254108177815566300515262187654963994698785796424261925216310493682229377633959345949183713456285581248312058457727094963782948795959365857540930233089506594432395492177738478045188022517684155887438190450117602562371085102640387138517731849833985007737648337085312739565864207589590482907027408430356043608818172165623006713821564022043188243407393926908828526846657100973899322743167100554537377694979640465641986268317321058335887925188720413789726318386463571038728704599257720077127761298669670912022331913223640372406654539949974114312788714565354176097743250475540556384880018204980720919707519201994716972457629161423830733305136769452353220751215132335578884150945556867928392290519044914025403277477616684907747865111051207350370538868156321795592264686278351456105302576854952409229249762075236622143924733101378966882649618409246504633678897111942967653248037000954700788806733643010809218027138438266961418136231863500708444472334237975491778471806018324087374326850131812266698153620318889491395998422911865258146514575473601132921594021298922197324384887257466965843367169475444833576509922259654737576535353287219755668209786591488083993541204455294238446521557941600011192716238399853587872382154392648148277041610063745317648331588234285799382611078195170890990199134395365566609067828322663735846979829756268899564536574703117392437569126577695771525482081073837189254403904589355147088825713477126540621808857321157755302118017791802262961675228337371775021428662097525932612953417863645733370950744468458359407528174496976342149454600252254133287815986284988932614244507004832036656583740384947903821996887842947280503987157102613069447871395523871604818871377610547009350911865699219992550417081705147664997573301809166675162956283138171417870049939431230937373176442314714371127017230678003409258182385354675321787765510710389037889445651944021371594071977513181784827244323237360373266360581840321954079734772902280277191812798406536790898505105712787284523444958864993980487789626804352202373338376408120857318178812603197787174023995658126137259592839750420293564562657228520942715701338176476979318453296447837023917321647368876726136722440407798950611314923247226871630227237052688547691077335753002887840419397443059725513095532020662645308897135740086012420654515972411831395593536657666899571355165427683475437242373065248189791571211803112987886903345698641955641554323568610893018146156308728021984034352595449525631565646464798144452563236064727687765455748202730953690467825787049566266786573996675691985312920610891481584435111521242551896683896468322920946493260400361188137581256829137489601245840806243773823731534620925754742153627230789169283861234642325411587220770012056996991908554175006096610050174926139595434962813818526781672522310172132030495377361868933975617451525863460797360201964080988538355106134327346823265277648045610161512703768396662620255734293235150379984738607902163103351181905982338669179341542841540818325793354133333403138144621474743022065193311126638192031897366788508498989297089979358252600190789459398328209938356698258978991165206352226986332488911469491822027336592604509200551159647518061393319253072008343180898983058572761963793414914406315861197567879637304059299837072521056936941786814372820495004130751548750958615064469366279084516607628131256918857575858325175204215495626301747236629399981639123361312976794653479575681701241527752320002742994445219984960786394302024960908693683420961116243110597159391508200098275733189627585934301874934517604092868121568127861568445110015979368105035172275397537439519612282178520279268483408188315264271007861191844037272461056770627396346276091146403630692497437264215099726343285958592255533821564746021568271935269619165577573405396578892649558195330357995193055151430848592399635317753360033697435034926829441994134186326019711985997934987346543605093767562126457739889229723815651324380721504156780590099673877737926026927696723214244275992101114653218423100314688104250554128732502191353903160572406835786243901618449769864829886857797142807448699440888359482642714942507667708740917659221055746699756061029523086277067057343288623656914778298463769990197055832858906069111972232852670022763765508424248749784500671653436488420404467272414445219478110753130816936265204470076022705456875725193919024442501562331339096996555468895036342713719227931202141327543686360493273654450694633564503188536423199971371783956726642752194969201707936960337432423824866828756449615748958531189428131830856086990535336433857604844595599066429344576185301963959781389570459984841650936369490358899129115364236712117895030431094030506938003399557312123588036126744908459395011987266308849986785247208439330769078191032319070174617855341936435578803138499077321429997499622486415183880663015399464142813358084644511370223925032476766886574133207959233117761752138757510475523053549627305425282892429419961631117849369395814648249394744168741206404770032483038360419764770305135972601219742406055607053407862401841211738430539978643153732823691709569487438699147789723779981886773159545934182425032271573897102809040884290418058745137669731115171670720243451431431616509647960421151014791500526294086308111042414188286375622495829095911390428278211393272857380836335036439325116128801501274252386151351844966932320936686066754609644956191507541532097872145019504701690483015533842006388421634937550222043717212674467903489777354680116660883699478797116908218585252142977193883093175254278334689177398432724275892145546477230977680301387515075310757951512914609802096550216701565280811093586251991083430380233779379730454089075805197167039407248986395330111291295025843828362025134467670378063889593399498034042261281647547163160940421103215875714046550692182902085709502328367630544786999748666928028521800114843758450732180005772546792439084091165544310712362158841251297194377121701809912900238151761212170772703232667336410922717943827712887739764273674441631114994584569701247855344777160541804492443404328269651779322853756894582909795220561695637902620414616376182390802947379868763577760491366803066413010956963353657067946136295586878929723304979001703495798781687435753286618074182591370053689721149317296711219442207271892404593500782316374555446715775085448142744676493598431701321825363183801706279059810076883707526217799827733493207940629137725215528548461308629238260794337858831772411137655664920361621857156444610648042145003741397123693138071354080034889410751672779629586634730013763313349739510336593086958683649663866276054141298442868354457708624281202134066522063594242400902585763555631502363111554400682097313123628375032803386356531265563402078715586409904416015172431127722880409261246301762733969661984757124941328428098174931586740255874325971821938936944140758387647534254234689899639757363984632005929828022541770688064096426063556481932403421962694423424307880745845238927180134057132340916043166551381279999350333862578369101062996963733020252032253460015966539332347053360290538534205532947574190784923349584849551503003321117998601169701509572132678010843046815021001633714343168513149576743133245932096356656657200059037549510725932629426085623582157567209777527210357496248526429844705956897884427789491777371184859564057883730837595596863027341618849198079933456165053284236020908615201271446349862726067203805340311244878414861296187197524025294951358031697369225354360481582367046072583794571205767243441397553411813923206545266732987302385871012813603594871845938460406543584203349928720105019206662530473881321974230625803301417634644582695593218025212905730755309788896853505845783373254208916416522048228123235476326636799676975156718120617985649129584702018496479195104811045830048616543240442669367694779676097791274176072891308668500112512229858545714824167268257145134622075080442424555975933521431511278152822072521998086858041307540333663234611641805582352433349273396213570915490855975463406169948368280510107274915975679862790127218547286872367097347022236524780425801037770212948545506239168441776284034895062272533110654184700705624803567896121239979807164446556242547172982992694608119788251830010626809682618894260321940068743790477048753161824454807729130123626563770517898072970224193445298879122845990599471704226873437226065227175191658406996715770539373680451717357988371604929905332040099205580839891630610120385438294211362068854314087308030834609042564388951964102582242847806342229827693636833632389535803759636954794122948276634932263819094728196416323147811437200890525613742235206630521926532792732241545301206974870315943842464721375405590820814704269557271887915372864055511890036849133264555736787410003823754503279517374550634714310564317411556795374760595859218515452948168639070718645422162597584129127872699735079614680420766230216932898560855480205977687794502860867804602695682416540238896476579764557536033534688104238286394040158028424475666928618882845931987243396227622504337836359479180283157075876112624329950904281448044900483360473736410825743707432346645047600251506829520735575907843894314934908894453969437519241702495478338440044028232026192099226585462212751717125620223242502406763966072474828064814180841274642731885144004224476726349910949636180477571372138402303656343245425713623018564316479906100301880872827230026458107477395822810374331386615495118941393646798159591322424062694680126949081068655845701253109811938780152492493724922495120190303330206870774059400411711712821070789313813128924364215582157636457813824028975177675013506138182127199625778472873343221469527533831412028622584044673999253044636034129044797621820509403344402244599335481460731398624790858644235191603823009971114567824722933508163388963596044260157410972526422407863610785363167939232975457912909027682066026970284775850732341052038725707288179508583293139675713126779339618818158730368633771474550045597663191968647209320159929785487534693422856286101894915134138213559000274680606540731256717066765176578183370867740052032171928653341435924931453607484755820405955543224492443834514013978429232549788021635555962722355066901909845437322746947722583046762168248229056449358317832756920181066209366604181045084160243540443112644937944937619927527188237190075584747547628509976271390227593738401415808055405490493501218275574142823690147927863296747530586438754302550226291717323273556738817634684100536892569229337151742097489809418590767905338426964792133844115115267367271418368253793181316261225971173359873943694602188928546035991607980457234139514447443279371174480154744451542211267800159570296605154778701282333801788592589200750756092235294312086248339310033547247107410456795561111160939412537639429832870705798938232382180077796096348231144196732490875724912152614072307034992954298039560905986452806986756454617698413777972502835631721659465787209543077308422509811083510796497686997750094980760364702003031170878066078322607499826606833440155614231665101148794636104319156519029457699422180160330707050151003905255136125955937656601442967219232965293573540093461824149833529995365147919398365993144467305966032109894108999467395864893132742737978793604586070540407653979886298728194633405502313685283657214869588257603900362140950222721460970967692203235612555287457872050655661154857123810678828201215875482571119706139809017134232269376198312118194979086005836077747739314141428293145046840727141159389453576480021830018424818840385292497860709846934951823455734937167888200490856519790500309737165239533778457716939760258496269082908412211812922027267529741224307851491144908837801676351174838327235655744318016593165826807515427462611246222913479454118921775538581396826154371109455592450715977849137817472061011149160002025232278557123711693050474946813117345893476838773213848305266644872912875606518220208949491431558409172103673954945055405921436679346361717329579598133335528975949686244043767197924101817438616181766040432595455237934758975303638628417592236348257884263434978013751032586867414725653514097423887120887209679627071557534511636978053729361249985213848139509781274221123484701714042112800397890777695131824316246156930585330540641922002155397037011885746409264269179430000630365981772374585937401842935545099885926207124787966786641309913647945751187154431421444562338980920659927909750844936638730836454031184771594525755253962393153017983061088263410760972219012248242321246322737747494003454041789783881449001513059498590049464841767470191216652628578863853241151635012838702660753815584496383187998155757657753365598300086051128622200094731653909128194819974965698994596570905193192642885611750227039352828016106571002757015372764049808007357232391738001819435048396868067540528033221237725661485660138920212311835222895928634418967963020192703128182116556037721483232089006032356956496830874821078775931611208044935139307764677418905847444323425920592619631978667465737231983561543769247183949154609978031437774900593862957091507350341571887949367921342072046981377787281987877868458877544699481348432979409299414173031573609067036774907665421381019041947218324540864520804800805793635939344244212405493945771051328032431002613041499057350895077269854156812207801677905595588877140981059511541431855259557491011240009783333128677183106998071317550176027729741301987877189995023487540210422284218825633198541007831745365729916889948815975567685892898296931357085112189467373947547429519587941756657321407357907240364625438845341359259436562096706078975255411766611000247955617520236786954063212633985496794936972877534212435625098348375531812853437322495727646785873373407091582159817633324283746253892557719234195007138732836528282457165715224673547415236866812796452422283392919980239271005039119599638051294396161964269010259579885033928718590575731758976276146865201452275881982562447421683858612790583577581615702266732560558935888455879927664391295995722052244426658722199580188608059181424699944707812181958686052982624414986472276577939217913159425016894445570440956397348045587203847361087981640788179275887012106005145540146731337276495915656293494417997515076588673765498025406067968835002908434918594027325161475074223852176284631467180969794249228268878686501870015729531040969382591403575569291945943097485087623784221329426199602325741487075203938867642530555617143836366364475473828006152869791022500819693351353224605193066124146768795791043350398121731768808175474264235672386091344700709323191529465306507700476111221715733094814242580521276181223651719854619023700670137357831158206235940201160201040286728421272237230478615501094029986001324864740689134941227394161721024972037855656257991770516806457782294246675651437961956906954554787060523194664113804984206524081704715518968480014253731673683011447559304229970333403984984221290447609455298417587441040182661480291577996333193039429458156560315298061517904758755241349802178117300315174697945544142427417065071945517711699159834090852324662432170156434526235648002204770994895485394386197951888730391472184277565529913706087403245373352797680679675192982410970017346192676759538013363829949839616869380460619810844144487813907513709094763568180726893417631909816039383974741978205159216824070719274624755223623958867698084409622956834113754485094014695868855502746660992161899370305633568299785289034180488780461246062698735612715764186987766805500201427876662022627212068384544917120891600937554212691189314557318308095169486999731709890800780041261801964015651063686060348066632538582627385473489120219837361168805537940802603297627033367559199861657875817462489883507014349504572544751094548917930185589772443154256068593264682876877810871554401426810151748178874337995915803719299289971207889068761107408385053943851898877547985074251758998553739567225725610027926682503887416884203166795695778318384582434575263109527661764037435447697425322652806568773771222182102022021672978267367770368461683850016880056129436853618526712309212521044023361218054315334603470925508364346781896162008259568864266459400805630507944780166788068685716638402088343978422700574626557088639061322178859734766747974394995620436947695325713143593658744382166137429993176566111868253943999233112617442327901942020297752737155091689425092028797512319862499155629722434049757649939202234616496652972382236338472511771798034779197869409295078229393981581061877871898679342730982941920888557002659448598816404288007454927000239194313238353204123064650587412844880989765069702764714186699275654051069249595570511095662470810296674993599408545841930323284876792310666337893365696590043241216487627060389764404737107525528349360883015886299686513790808061299701832417173104218349863137426222095879865709477922116773426625817683324505914898455292600264553448454609784335350342651763825666439158942217141181194579817389071277706012993109963073228738167561353976209039893512741703649146393226187182787715584493440194765684779961674871348628843569791619525186802979049070383602830644689839266823649398920662433255845099706675111424299703896474084764171171961025912798339528821613957839255394461366588691089657267962196770304039629432859520699590572095602337101119257400959690564801824450962898068866702330644360065636853138242843212742010136822070702272088718601614754601998215373697980141929912311790348002503651821622900447075301918351433332196515270737895818494600037685414028020162028524037577068161037464063053689072153719093966239585702077288710267096468455553988649200551462742722963927673756314529022841449045632620505208022161875035488938571083643393113272308411359642926839110399472785923680371551507002381318211584780175981242931800198744514271867987231130513268307797654376537859467765929970453583404548868537148322433045260307956087407061222073252052222644640977440010177233727043372167801349840542380746792437582132703094442464420241211453579076386423031863622087981985224096916519499820888782643767826514928173089610914670078704247825266972895942477572129840460564866636335705431073484800662565801607982724358190460648853732008856579469701880487758667376440654337032617029886255688481129648153870486318819827668957963392483130646775708380483357550042239190001429480803051002618404635703880557938871369478604207508698876193204413190676102379526542799770130576740653791068689108608337385423256506729120255790008656124507304426303055095391330831699035148958911771483259799738664122918828859681404426578064145578382663944412425647050302203953756413926810679898847411411916145868124071939893937254890620724896194346786977990186030143518642169229599733455478649731970632765149872492766380152841488323064383803984454883929849325791159733468865337643142685750192788162541344694765853766848008523486436166198776412474555888077759692319303945926702650316876331564456858181355107189489196358690867607699705379319311655717510888193135311047316853024350175392767155615970259162128091433231255244586264623944300084501189614376894849541087510506604345758283039963384409379197831977224514562388065652945239526713562141165156625717582687808934801912273601214771996385293072154611917964508957240012756023730208210660039235913633581578054089170850514389211592626521935087981786351979827429307923882086494654105799056524325528359743032170058747471947057847498607050971764682655516482999752737571871822736943178477380276062459073334053807756234287493222560019446532958249899354791977032787895681198010929475445694246637445140592661306189537223041916866818185740441126184584818636506778039104480519340850056487397181891281411805177265448306367859683006542821686724182836527578993846495849992514886277688687296832762373731986266545985788427608086999543292397063155436348544733388667676338734621938741731950313975543630364600026405026765497695246827718005880779054299828864589223025146636469718538801389081099533752703365420801430988521237352340214217392148979465720915207453332347800982616559424929278644614664013752553823506606801847797523113529335568420829720316763917738956405612691293644025732365424181931613781956343492853505190976875032998197003858803798058796162746532763839722253162463791350264576970461836309462678164274081483142995085377233020687406671394885467005056145564629604502889630060478115208989602198696223092872833239000669272512759434644712356164416106500205830662443398417245496476914219235818534120949261661150917242605137264459984472073660673665456253478955107901838207871757067545451624566808544253061844108446100087502404360279809751748527641048322128464244821293303655930572146975241806844277935410055700705836696293298488219706106468119116255841199025052404742920913607685123735112294876273758601913120440217309569445894564203723119796389300346645682708454000797780891926241234073152091777823456236910113123525956596423932797852947083418433060418034410258326525073162668784933964909839112364818883960215540168043253383460867229963732315581268639514647349087472391710984964230415487425070353927347078642511639857976776082880692410418955025189963231200845714629465217593813640192736213877573935497102995503859167858309432312404700893332986369766570666006531916685326250147072097178692225004484709451138097332973739578689823710651024079523109042891981545710828607726257225963864463298471942421952353018722085730428464719778412872953245660884634126979981274108167236584172555960329712978407753606030981713000559401469118836399769717431020566819291497515598291793724569827591125208028444249193530883215672181606328084526003373475539733251624632689159007846504537652052600932413569132276896989302775048715659856784769838266869319938707456697175538566018427512705657248013743629911873352415910759751864003510832389006773092091628142840597734552307725762308416829821601063468157527402369956143823644748531476418930160083216383048627060427440644156884589796214645393272947946104418595187293774289778626638566025507628511501623558698451850467917734161091149903819669685336093569812652560230770649988578814176315828900412838824877497731922861311371008365648841247980766372148927314204230549503544828489507390632327308784297248718200391121036559154297878249351255988578070773439985105419609306781416980888431079872992784308801150724318672356710055717421829540064373001075281243585813944939547037089123029582997206677963450643315381195946863270278147576973068285259504102385091630161523557682730503117161129858865694611607348727990514076745606204460764404242992614295753975982038254846963704668568491015260513050566191216024835054519530676450172404878326405760525268718672329974799940054113145239205159941041874121815501388321787190898380840568469704815394085582435740529480135379838447936031538163698451724503805932109773210134728541770783486493547215083836891930930828997486725851368725660216246868401556690926037405511422068316735218011972987689107800189014185251259308923498176682722490032412801444829625369109548907788016522906391752528335581278378609607584674861627565149462887986120023612072336905491740763257249880183646869384817346795673330193082620871184239424231984865229266804428999322023524235678638177393682310526797494421149532752156591420253115953196117319820149247062890129020547988641049819483455404254068207678546087531823386327838526584363313301091606226700671201854030102962218335750738243125734782073358933031878700106241001055114306006049208074210852328588085601744240080489330372542907430007123763645634019529536477552625434108556173567139735514050605329050123898665941592010104045930800707615154606281749973355435881268164849800898422929053134290362850139498193309232728439958536365712212341563318867314196976868801114107003403708303063029182155837544161739868887739997198257575800731483935488811994300040408797815396337808541783911703989837884445554366876972175760158044866174819256661962818149952498380797887462871016422122053767102151132480114103800854070759794751052865171488281286240263947362853505304825753792171294082848619596143800693208689744196592963483230200977707409194495870307475059025156353428891016349940630915688661495786686038764926597850042741470529347015433699483904317736936447855054099912974713087911401210942406580179456224977844429009325310753741777419069927263692158359019002761504760126829350422914994123287768998168354522354498531722869044275151913156502252646512545735159656109554541862358121369944964421974765617764071010274929325073217743032508191357850767278284009121263410742725988178011402663144187499674276150638592769712148872406920312869594961047058445635387933910364998179775178145550373844669429956743416458432349179006727001123653246694650548155031692070948885156571598892609893434111233597091150597193898997992056209832624635982450127520519225701151699883034078777967086498365593236865558245148756795672852215384100394564195645941010103253717299680911687147048739440919234819966378525656824040822315278723878675828152801141254679680109591733107294688709578863876779048658452564470163624092327046478774001179791154322537044743938574067282545957613221432824239507689264941948275048181817044034383597044328020344973403989361037365680914812264564863767446322569066858662809642304982981362595776084942488370703663704904603605833219636105850210815813660209118476708731754769652763653986548285457895696398559712770656174699563547183194918401922401084969036901893358955543198505679136450927638493706109556205475154198448835342457961244519962108786443589598163399373413693514186351467973945532158093247617225498240074671060598175150111207003464862489371760236048752432975167972894399947210188929673768442584644259176353982405840433713069303600480059950491125812973768469476811331576712147236934285403110926158659680003786980095314380593566914106886894102742623655639437360010665772543694703089550119991156850505294520196600684038922878751412678716932623015877541704372931637129294260662051065335982257146379440212955833753376464167880380745566784219665315474325030649151577305286965721954010473471799144524232659596492526963397858465626638106992235840587652466887956165426967679325885354278493627198482898093515344806305650560519823305962457846534540485095692594298915024772741773164260961813807290272101877886371170278007696089950536409992068538128654043594451039178557503699304041423820753116369668395540000458479135693732001617213091596039953280561207088108971167123651044393388093449540953556550998555220056195479336370758518352817253630482473985158444038583322535479891278380546894606583114238901647622912468335999774958553467916112273434718328223660020034262630231410353651956804456430056395602148411017423875382932758761578243034092316924818764206129840496659358525705710312236034181828777164697110597433354446807168787155298017816616777790810265182655570319721487210897447547313438558885956369104866498129321476706124756375109548312174362493230764821199357183982647700897594238661558272437726752420507745028480931059865013830934535528700902129907279271087682431852154775956195511320001841151296345000936183024066683989267118993566728244495080539696571072273176884566030631206319420278244441307171647734744287620421069186794900827728632933326201416299046099145368598719758791806213455113038184799158954061862736130017334180325107570262954172987751211142745226108093943296528939360986735731204564964149812663115568196123261601069940428918689779593790845445393096086983697679061520774453252932641223148767303580231178079658383750871560252313276496755279005036842511408562132661844794366904284302008896343657246116607361191247277535730477356623481361914089035913612347183688407100108510841150781935838504461166518946068906773112398006244365533038128941861193597196117590107598475264198756554220518034905197323602527755622117013595402755824243925700151971055926013889508470415951019700569743854132081776816656099188707628295819507160739819642992078901887213193983139626615651596972760833433755103610978062735328473858449015392965868125082978642392663347667508978770663096391398229408794304097967130391136353614082426465494938439847742563549750684115440394472326841848860850619711199878609633995831563948477727104757116356707065945490633137291653650720316170887496750244157613530554491838668912227351931929150189817992085743828715732636980418949524567551647091921266692215553280166359401333104183059525268307411000351300227475750973460592575057206234892149229946569249003776150721634036894958149697867490092747285023159329657655308190790470414671072486459366763381043291911441909534455977993079538874149940294292288051594485126098658965337668119631612192721580641464830279818111473769655515388609141139835708484797718304399278460897933891627403666626755094534242919136901506762569695116494050197812238296176927206977533355183518383692636270147931591016404048491554049761525970456319378529672577097128483776271364687549367247433757076661061635777402979816530150733342822714276079309729714386759661485209119499483172705285922361702475035730093198899144543520446982964718138929067439201797978000875659698750930452152211900790144211692807409416338923193573222743554616144770975201648528276591424886341415340046886193513170322136550413039544775229854706596800713438046968252392667996836126975803847420294785564500334127468160911966793997872515384512757577638896610650879248797352837194110421751699420492252089513681631121174516973046993147862464104287113336538957814299024281540658124712379808488093577664107818034875210240920937294432039101862303205379803238740906079066076660991474602579154382603642641652393129716503140231354092193187081072919443998104527887270974792905268915593888106285815173664235383213190325946809779991340472680006057150972519017686799603331941751858814543469030608501421051397984449089049788200471533331390264429680929645643109158850438929822586538059766041826900604402806169170460327356461660275458910882040144938697079137932271759769389215041299844701556033595269237291729639526219488452643469020284906991390634621090716369699405913956490720319134150785754584290755634346765890451553640963390910226432583847750045409475669544463939967168371523263163808442958747430327366259256212187472033316882142543236289364301034260261840029046724482089240203140162442161612071752895054743199653063054769868670756671814661811232260074227538289102240527404270454043027033802176032762518228184773157844350302425840362343122342207610022133340411951171990768448407886520288048700099918976961137526967163447285891127052120836534563329818960517866415128395279947266487892525362802558150898404381671890505911146770351172056731100862788275800885302932433021252081014433583511628764503159094159702990989713234437763881091173131548042777697308584927592232719348436461975087646913795590987794896055345059941307718155598853879530512329171269203640275209223553401017305172147136716409096867479130850525690819674782894995949211792484769851319827766008662090499013566744912667865696974511217457289438883232611873040018028290359321083744497178207912491133638059644816466888177272158473232637180856231804150038655639855217486501176267159926950809571563914474518323798111619094455863201350928718175429444548186860476785221677752370679936259579105959680525401986992503827238994122685604339182906870370070425726903198362123658693464626153305697292100451609083301500657453331297832861703028762622735268780107233212136635829642187941170073981751798475652010506147574296873494983571805071077638694847273809391069797229458645671311172452509723994392175145473884001151093755237753907644697943033482418088972805965539433807771207928108352046905151686286953597998390155242619290565499277582374078668507925377293832697231522437461803372027280793046670288368841067640502370498517986679338492849645542330155721259707023640344444061959474348518157699463679163332527220848890914723444543640941134407498928801722545702001637908344494230151714239776809248875390668920800881911807862395213382724975067683195895773334772314222093477527859830383352127575835915775889298795775438086864183244249141076176700242127600809210481748830740611142911719406404383136219246413407334411238025369282849521736650365631964510204484823504492031616545518224992590069037285447538090496702605359138537287968637988028410178285026695683634127615680090866394230250809104864387352215213271070900182382860622901562267089428320038622527996980369356507768988483231224601684001882228480498600487190149401141493597222526710255520599796056668059693629058457153485148385339739053280270268320457022913383322636088036131199184023298767821065101470128101414718352583412901731744574216081726697286837518955048102826715223607535901512706000900868334779225573342018000489292462606675092606986089144790494035503278016577032321895943477244715012165150796887995680138198463186449499594333047735282028893826502204686108801379439819680292695043064668614869900355390147749635586300404954602421372022735338827020072425413508357405503537540401118302409777871201694081414880277299947377475847681978283563063110553365000805479542833609876406124366868791664908798932356396268292981328003905011895812043626512588187637885456225604861682359613391394803346559169987261054543060578760900971327489203922691721668196961761983043096667488699228940206506348734304295677704182230607183472387124875963225074366467620194138132757835902899470715149925145613932798551082206428811687260321445079641332059352753563474152860697913904167829153516300281780738792657798792246847677049378971534421975871152084465555468733245460516662341826773830101495125580577196147585733685653362044445675570532319522869217485882138106147928341920927610765467741235450421600800606097307784212328305832892658287013296929189888155571943738165829511119536292170864670806392831101548399987152210753206964164576593138354801017148539479964276889969937606936998171171247273369688448257265015728938197096515369361034880763439283215513422480345515576018527884302989818783523071842941608123009160148924266143405462211848892360714427743429933070663956484878124022554768087517802833118413588525359481108064168859549430105634291370953384586486097307888012121343440086199092519697855466375409983448489569479423201357592249367451051157289565468342555531130788956096579144293313974415157219873161528657651411477989667107955180315175910400217582267006423489309783218091206601684368356999966760039078435067167847688308595046348305280583304098694239733409723251890638386812273099527810208332988338381449297306424882894305045071164575295854633889259492353496332863601955979416164489439365463134199954411705733245539149211121833752111221043123611899837375419556706921542818275726357304241936989145756736176000316258587781087911561728885723942691300187570740892714772993700875344150381890933679267098083126290782594360868200018958606926837990830156699055898858669226183875547143866285213304178624178177957455475836202775013654674253234323636123343109847561116696241808487202986624011610214429764977363168607562145023892510773883323978844155666893984391747938500153881213040385191706959735561700295545950572292125063297044786106392741456753135408698171698414792231836451691809758670107220077678539238162298776932139613677762967238549009995187484277321332934773415525389940483272765327918902227143031426231661110966649115370402621797839475036842265091757609463692381967319807221998598508156091248150252374617271555511807636944903513014373320958451312692212723866868891317766505260941500391454991214775389738054341859574882734907177344790229670720311469151752278485352409867646519368626868623019156154392703804831371925209399868663448489366839462758978616771953719581477394546367946956127198940551455645456942464279626446265855689462692802875982153919399216478289613727612109156630051410479086873842970326399366057203508832323396104361732571322202533037116664533209326517446753085922429640769821278971542261650975247389586767425797925593201084291437042420337361658777190840347107824310762582681510284146763385834352222595817081823116951820468344388579337865101211528025968493693834019047260253778927679931001870018171714604445135840164289074298745198438013406878105828957394173612308534594212978857704221070167163707208002327267435377023576873991404847818590741162771715293570378276451401153380863411780350807316053766987350270695710691205269316345774602078242571035686260267632140644567416664034663622472138022405723102667414675227539603142844710396870596452178001792548952522378184343288939571634731536478748907830686447714662204251805518115923628265068941607747314330967155698192856055555574287093856993309315169307695530168009011852226788806260121899074385067064940405043146155311602186621711610444394409373399500736841056670602485527333992518737873451647134126982665938484167443997406149237367171624241558870320752163778605183452722112712039506992354212365991818545601978691535180127514456904817684755327216975795365802507906112576620832386189649284691623195774799374010321648437689059480334196826046613058704045473930209984672878729702594175300152248124590250421135236710334439861509992226822109465501346842179478967068682308724741237881478722246013965052785212642340190071156274592926894455467033685636222504156894681386475840481849516937754647206908388752020074769121616763159357973708536404354548884451604411599318637047992021252203069719866571168663101272442208258148615137381499170096843999590808383502538735520821115082424347302046266647150879183622636253265983410220728429206345185449212962988969439657062098779437707935949156322800539686039249214844248073371961555659490555872883276047492241356519157404812337896669482927781934091919283156961394386867430796901033001334478734108081911313225823719196481797258073276716227700949224870716250584026857789981713253948526461487243032837809736892479139703734219654914337964700936972847093765708054300223136588539785797132734831000075114531503846308514594331103200711288476411230977007621870225255750629528398414195719816029421779189977357936349012774914349201616822328822906991514158041393996252192625303742132932341506112752093980302895821068538073561841929930454989233130472140633927816349522394959390634532920140882362701155522019251401728493211221003097794272734822002896544805447571244330033209373053922307621524819748387142798852616497149785863018702200369005023797222442592131481991452688298502528338406902067792603949864664367698198396572975054243557865933853079829316457445738812976890076001820877005755208420911411630401372251504501178416197938226624118107683322081332362471053290866068715956846943566848239025330982356696484798139028757815563815955969531568783804081791028687164669699828970718352998498288738014075545767108819974838369953049097820554070069434093407263271009368069407629208185552095194685352782925722776593940595993076236035498970324363876024976060626827854439348019906205502013301740567798991319676781798326500219012869483225027349720464770803757174837717451427761220384930453167406551178780281170328284137410179458040062588333330042401072416028851173082670301727177155587392858701844076693976837338436823479865105927601293671128466439288793519205873870684174181776444177262428162963324306730245325432815381056971506969283124916081337736063291534686439673792043532331791023209077094739824936938132799432736230704893891813557656418044919956951806759310347623324468290166467185144382913396315961478881686122837630161315727198012203812933637318457032354288474443158121625506772882137158755243569165128541057623519142942755518135008763881143136505040480480677220615017351487283549819876214313784438124070826804945309705823511141180074689997003304165867432773736470044090731442539956879856464017149407305585047911916322997677847982476657021993362197011730638049601874094710260040308370012943220125327516938482915849396804648879099798308630730575977358986774651679638551007349829335707235832063635340086136777108315464876402368373282390036196213953517743055925735959101149103566660272908184908435072333577051031743124063317502020765918690055809858146204888121980979755508208180773764249870114075268786858473050426881569172353857692325289595980752743908772240557170679450815122686110309411926755233630233708640971115477911403779413085854748745129142220715797835914537278126451732362230426544461399007631989763899086815530449710537773658262686049467114119650090651800452108575145186628741237874887979400264962855864151799028606475925423538698838607785535001601950650117424447124265120675057945715861408778459883536197159182848949473848316177805621387356125414579391065799600853705106411907081373970154867696148082013362480416791610109256297431810215069352607836171799540116327863169867787611762662157858646706725202438253347579635242245259846138849813894879157438916204242900276613982894753601394425726569843512720632897714402049947786200620385550517864877631683824242325031934874045193245795369606178584592585153391872854098592643134085391202228404172562401989985632408068126825538471773420973544707675870807851594626710187094388673604411738857963714074482813338770024750189585658689065603136684473835578845455340673937742012818150124995071278812833988796288593969583205544474771194454241788726314301022408601508332925119525410196896127719981515691513111411674761570564956270580281728478686475533495109700371559883854123562327461389980049876938644965479291632353470553528760822833563811410670467406979769761248551131922564240362066300645137456671856522129665061763811735552583430037864110788373671889931808964081621327356921726680836270157253237072390246601659389599486335265387946725326125234845046039718199914810643966218943142104924804138121722165715906360091025288693207885293113964306710372512755351582880394899390711284700287860513202151411387693486639133276727980207689599850837085318545977638600450705800448094827562779759564046630292698206154735742042006555961691925854746334159684469628151687387622376044319939278804084644193535440148414512176076093172394295846102994067136388457792905744973875089170140714143221249692185829799105034828173695206650395670643059745483704913307481922076024134867734360936538012397394167418047287798658143625827411484047242526172730335068690531396090842648051654068685649325549801438404953835270673474226884664342515252971257425934638625598890992055292338357781290768434181229664208588264914018082593498317465516663968323694038464975933616212493667894949215594105576081106068895562529499207653027027139379366214245620723827365988376185012050850386282332868985058422302652598453555455796788998392986080861961552025838936260070423906776195309922751226561193887965596718974795591818552698605061012704456064580154779827228230425164280102287375162180441307269625029260917746240928704252974594102343499180923650922426140779480760671100447110269947422743459490139995616028249086118470901064369683969543395424737031870620500645060070149023060533211416137256617803285293946260560601301810182481051811572833056480845206103034082716556912659757517273809344001170015182049615806327174153750143170085264035977981173924085937708593244007472692949205713158667129372978031546393841983194922829405903421571307932158860089889736844562359860691374368422753165123148224482619431734690664403630403157512295451243159900931753843796004505774466987191021809582528537517417119767267058494224169323462815026720740841212988271197424471793007907112604190645240400884445607208464020373472218778447255793682464930396331313097172266866007418834193180253738671882049784063644614343302005161267980174508129425461250463279525304474168994743753697408627114103344196831038017304305100524657302775221083131301503039705736000474875077405063507165062322650422433895360048188885354081329175458414501861495181329012203367789251490533592716759700726053006153338081364237596732220665050689047091100444857459545906792001375884261404321860495293123592447447033673700121701894574688791169092422207709402341578496920387263795016464710769668605347100505748224455693173145621259055110668646572205174999475530230534125758985622353054668765380462864523735673632041777712022270405143872114982497674198100258553449104849904144441604290111898593055986087720285612556995593396565435556246045567708177090566707874830928801427829626132814970434020798053775441028401113796696498052454255589988568483761790769949114088552997145898534795083557123345692677401420784295092379727954212362572224153303570589617884763238872237709019319277359791821094855695717878959573349791826701678433432889768345591944284979669853820225904650032243759884468470367185018442085380515014442072764720566458314892791640605852878979870179048840528898497300488133990239127826349254999605485593856272815217213973942163343974961350831961409502041232049579420841036045817159602199804221485934539402174141617141856465855782666784973407297812279223493035703399362304057697352398737338579376204487615610350498050965795137732397677689358217623003149814736255338656646849783189648672689647685262702089687847870074050871598818772641356255752697235351752821055440447371227778653552599047063405866394446403043377423564752534112503191035738526899003335449374807487750500740224497351870339604015843569880707755363374881525055460936527545998876045721218752755585245404863510785566117468493890538612569890238837165015948102705566074547391009282284299632087408188745214428250952509566944812336401331649442235787596872572546722912512545239496163002980804598569765087541386298394656409921275191226935512254542941031533019181803978134750046392748619821455178893363662751087280078246969566473934279251730359207103185252610478661145780967827661433850415956808086796800313846925819267575131795705779215392741795746352720894187888764443739968138003288266730265123896659762104331635713191935927328343258828153669389559341940728658548879268275344273827202549146414995459767704356514839005476814281659336632936286724662233627332553886175239531147186276137432348244628437495141729406041982513769952297303479109977896144408300436186261889273255540180309408263241613037776449120814540225623509396040588057731695878381189120825632939086575703330038148648410333714511316826910545215070517606071842335485274674253501655436504570070598315344460559569296578475965378782288309787027201241213671199751283286058315926832971976746770628763137432387578023006535081782129036478142938682548775385317196959700036342953349919839637180043898706092897321500218528436407608677124440435343210867817071461898369379887629126035682082927012382984976846158435809846451258825098388371142255302667241032617373844568465678869055546673786930566592398016898043304095275628849419225748941856053505872681526324531063153993116949683676692860009590441670686998542828866144546519842549029382961211054344258963995299591858534986110778375557682511397211178354321802729767405843057589504437873370545409780523774986418639674966482657922939732328685439753307876177566254672489225409129886616669959868136387857077884689427754308669967576912781628806877045994458521527336712349718877755290135919550051041010568983379103362090787113077869125394610136769906462385418560379678071712677863613216921393739934876269703067378666802500326003078030603510798380631693879909095152892022969642165852131744695246545574450523502541064273680727793191039607112091053540068776417625904381738131319875290860969390899279496504323886214228806407143568754324966647239541889506266915572150783632108045642128759204731810039033477029056416799828514663390686081362053683630848691417815564198518208158439181725471001370465533434389293251724308973658677180514567772935642053298254780443119134884373427570043310233120449191547922906843581836415896869179619924032763054883653566958713694511832239201966364955224615777834342862130489191027119626413247812560195574621263549615574915033340777489044158908498519864461371833639296900457677563616454621021000765769196148843144972420555563106830163617046813158204586329219450792061471202806714335457068644975561716308356175264071740148471534419537523827001550756594471948972273089901990406426961303872632961428014532436340563190301132725444849213213746789654947511739104054466266378115948138770743240233533570327063747062496622577913721236351964078736212323587705785233916652738150213220169704749411027237670433799517907651232160497910342823006683328332425502704359050815595878090771152696690348095758430096126743036737385767724280239864493212900685787972477447316976879439552194517174039652150806402983159416668397804144375235079498144685762956083606268536430191796122648637619669459233613148561379331133116556265653782907846713172617233637613919021145358348476560456222933865624314665756859264930168496850138644273539692234892367033362950921621255212048855216019127190258570392141011327238800716121101255807079309321948938862608117999939139857731607398729163595738688071343387028377374318624501602521524083811575751826236534648213341209087355876890185641923954024064496143786724486939078503082183278897793584545118828406253226218951036150742546887561109779422466691159492817500982241839074860176519899429307921800276146733960432001434555527266828122791630413995060178092878216591703320152772556846003707363864611715215037485423336714402580328043068557712374012152242097812594888162263690305116678077670244624588265587926339598833213528514748536737507398451408543558380161912997940054772584357130634454224763592715502200155811519647315625841451740326348328015007838266166431369261150778776204610837222447607591060376997702423859505849560882297880270798526664030392732812900708978135632530211617474329102172945631665918346015568120500420229629942176250914296347274896597621386015077274658712083613160543791942222684926401840940039783853867873066038886781778446063813933615361769379580489623273691902487836455354689932887291084506793813892526739929312683394122279146428484537094982016046250627158303940790537246549550344338642944337390302517195260163995409543595938387050914335716433404229403157110833598429080981190409752796525758578296783918968521776466888072107968846767557753573529004619509824410689323729610667255888069857310802173110509819580197521834072966264763805055338582676212758933103168528783599513657258791602675141372326242143685371713151451764287242000026652291438768435686830821244379466236023099081923702486040946624119398012301147499168978870993482237520690067557359033035300150002778276713680610715666236166354491778080321059166585365414403355499006003882573276647921773997688766230110979712424165794683221209766278510567067326797423433545023594211582257152424051925331307817068594157069293490789000252040677723203668919492499221193916716122951160700156333783319055308457404836670171417153838145059848773052603057280170814960537649580200049667983435379078104807108920392330916519266531035868472089403228428501288131660386985898280758381381602952254331555254005814669791701360901672454330377500748819107922859730386416644774665692232358805422554693782401749507034501720502823354562335061175116077298656883220109254896394707265128275119171049482267750565008499653869892309363552483795631457564222770993579074850296909829957849387577283267300443038713065637817047806763564053041256473404341486475777502091684977817985464495170948301656440106099701746548135650613797587322419932008544154836729917996534195508902928987025031693617139493215893072716606230500235356896155357097747754062689718055861816249062623869662445441062518877259744285368890764911273331105103274892186044185592102557348236068643442349400667095661950266391762101318507329160108708023482924186320242077336585442743130073604507324637177346349219537010851560739990454150150738914014846021293245041085440435703816046813417002233039140943114754733323530464885420435916001494332542757329356161287771282959192006301970615623790771586763474332394072027564668376326121409753672765228276872105727683335293764692211444229086597702539514176469605932917332451216411919954833631350055477149011673261858276567814483818838535022344279339589235383385432481557697449370859790419199084628741571729054249276496778720975030396578208659830658617115272310961803080026144928642773894616045660977774635629216101418756079602907521532842308980219493055217346115452086548534236467666013666548368031661870451675275614787510059731739768290558376564462439604126080378969044016040365225484535280527510525760150018823191077499876190378069577747170298224265915550113080917122418516591330832322213639902750178310027932825491518772549139852233452396213072339138092196722234329408810108680977724797809937485698742189149114384571494126334721538186114336658009803106307130468268645644740929813359780368412692276494768007400398639448190270281098993922461575698837045105733226692706555832428188448267225381541612245938951353969521012184945084191632606689105710605788923823445523634243490231715102812137086151708859174230902624078896540068944936287051895800534148724849003864290760604816058649261781978778451831052476570477423984756345758389886454509176782122918201384557345702775055842686802742455379534523385769781032606301600628322897669470853988773933382794095549739429729060346436421252186622147130724286757125399214356299729019256430225969052017094003330155863789061487747150830046388853222482875900171119928301889197659964881392930411361629413642490976971892317095288113938443776697480848308540863782795072798697529051286339704669878960800747043093730366016962409719945960844589562254161303498216580848212802121229327440369168166051086526516464493045260785349309697340313171634361425912310831639271831630455552952281095154134571878780731229923458868750616538853709380352518566386879447386130019636407166844315744735140509879686615934313714686591808490646110499602370790613000071204971269575976971344968747747332019922935932747119930961874482337073762033498213370732567553519380736157007945327671384301098007137467211983403356775258963353898958599200549838996976661169547570423219527506113522104159392224863378401329869643234957430817833435882268001762958580976841372157755585094671784068191714565788971100289607858478608989300945412235342592779989635395144603550326931935584629134176675019681705092148208011850889853108944476269076404726759066206057291372910852446683741048716116934557472766025817624080602589998477369626371145579250661948432230586882249002595878905302476443260337723131639422788224945139641204454114352468346559879284881987918026778249932285543623072251233596199465689289954279537963633555463702380360424473293772044540197587187578428398521717467829310735450787508592909543687597742455522933152002325532293197430757999238699517108821767995695310863057605330562004854150704600068910057447010752469247494314762331709406104495238188773788920322012733873045544669178361883263928083720556947490436549035731168213671527893095713028467797292825234902416597175025495686991183116456503032162691546703391601688467686080982977994175727451187567995642985609601019906398864359940634979651198251168645461128487982189896805240043926009367353973606482413962285721796135933572463480738230765760540267936863315032087757479523562848996894612303357101000937480428541863651435428462148966068618350258803481633201394581393130089895708705892700004643735932711596173646294288174475848514138962535821449435474822128080840561075516691711649597692681813814680847024634266911718296119501142068230873547126480999997952170775048857490982678052076408852059401855640748418309424717676873198685815697770101046921263674452756989835683210723476693343421303276939069736814300649227727089932182718173220902807966187235226018561971539497950486420718714641831315752711539791321739872964806567536785925222385782787608992891543173503927413819217491675229688161842188056466702390441311092739729936564920788859698629694853223914405219579812490196776875865680131637697350979303852510022781720532449938526978207014466701339357322412095484744595274321425728169523473556015092309583299986219265932114573043895307999689747728031468764494107507834836430377223965810630755041082556611404768033538391581131003436905398000795718491100790679807067880656452519973867733778444437281679291879120107015731400984547053918087674483313010076701310472007056825650818394835175701009540891607034611907359000508594434693721084241843772553102248364518897952392874479933420650907254882608417119226785285856979771003922730513068433302839851696378332360154693081964794700327214533009479808643353404462506598579946024139700546923872659990634553998604600921903041185093903349859415032913058933728247094754337437642543740492880457845612419325466110021959482336275618343999760811165538558284169568671291031166848526804910773777838145479677506718576670976949081386809290956664805704020504304752669911041233580707787724528692567348363712577287659848365249824285669135159659201897075279251761295727662526290307097872708074823556334970255456381998367854939064618011296343389886962165971807673867156512775378202304395523851047893481434083605742864341749055021538279408343152468209591342337121803679777814310398082896889223298188819052065238868844393606527033802398363035023378139343125987662973964648705232040178164460733505158157602224931490991988663037612165773788271999984122144956526015115971305622973585042841206553755480775834654199216645652873877780592469169832501917309237348555267157349326758202058812497032568309445498555108542350887708519536847923511868064473809676018801078903764015319770930092040425552313251084834169246816285111235833117194900369077671093478946481298869544920360706014558636056683820237149820056975643946922047575385261047675924236279579556298106978005777952462989017673884763519855202050563543868854955201178761581392968303067246213591033529627119684364453962513472529899932388002414533100501748547609928012475583911337680417612831813035896297513315908619992953572660696069104274594960257923457180001409390039047154414861190499094633663435279857695838530147233767863466975900134765625124687284360939415399695706675683723578421289427684431073775787954687285286447375941768107437398251103831196891841681232601009128009140079106119568223803380994869153500895998145487807505612909153636000506741749040174217725434549687874395821014186271577340534735984214951325850258130678359446272212098279849845608058507687181236722195115476179199398028493892544522786014280263375594512031949845662637194916131651254633347068400561438231985861679314181184063790336406852086009645035944018870051388850252973751917815603888719150878639054177420693727600338394575166224837034359348646544962741737620386929812258776290160405931161018875177511321552491614809936991994639770389425112452094713752431566137716397088556505648508769839092043241902692740718240277705125217864493209054380148872835226069670452975744109393685924126158833557628015953027990023496291194114107494770216163649648682731847345213754458085126883208467359068023966747202218677966003661159432579210561669769747170098418096360633982805422242954343839982844424215893602122136826395085452876850470559934307622729599642420268083474192286791044130332939869915619360394165630686273514526795806926167458572191165820080105163805405779261503285138454543778291637763284729562215701130758129763170063043263362325190223238653418846725734942032561573229695184596420371148693884129630265990739613521463590991707799124757872043322493788319926757826563719181238294042695768591130164964540013566016201455050924614738043023313477433231215647802456574656090617648343762865542481680806605690319096373716128965057111516087348373956943861315928085611961758678246718143351457464790574991772223881131399421455720796286863503138292977514395615067657775184634038962458860025860153174936073987393070559048449167905560104918168316905280697016430873428170587452369786430603043496789216782925651875367455363664823212739600300370286339903289278683001555819929774975190135413159490629726106146809248157001401528958925099947314521671920639715858709553620175792020753078773101143742654362745326237240076658523646845906504552202900058290980283634065939455357064171204367724407314078814973740759315254900425788793338052261459039319791035134881251520491408165319771315792971347273500224902754198958215406801918195573953296471273270241908724189509909921185444089678534051383407046762262319870190245552522134708045117287117016986687523651303231133673358250343288844640287706772299678394784781119761740950258625073725943089706015978535648808592704055325084954082797218090709411167181042353469001826611697427684603394833880000884616186427900066453146435909134688700449488348167517392764495913833053313399862527035733664762146009671264634241981609808583369119098276008214083209335418257227908155768001183598114121572059286441109944156618038301147474016770447285423693861772477845004462356262441720294699380313273801559655299098649390423671918383060286965655776696849390563223233096917012075560116186603009633000027994553536756536525851345441855812290179686519839854487877498171222636519106748940209906037180497868558432543787852213749122991142434386738369487875455550810413944047139428931639236888246996898273844111459160145124592705322037149760686467720772600610031429126541894041714839952487687055378539323304442387869469382599245024581812514523758793991983513775906250547307619678755526086174286411051351246510935909649799180267398852867971015852011276640672763345884399976430310751207040683569209661944809407907110308226843449276097063448678420071061010216438781840573513311423047025116406801110773603911435321788515707847702395880645212547529258377112149848444310867174479783817990330921988975885847551712413308482568041555508625780255276640771455877224318734499895073857655277618698770114549984039584630881846071220061009165685935650528310793475815200810553469919489345954659774776477401645133389912662084657556145961000736971107329346011755474406038372577315549676605101492797397117745633919062959214927718177022886944423551982297512684793899947474889384945295514607060975010506811790917337761198275658296433243974433398577434828667466195212222812635674003786420581911939651787648053519990584347219269627357969923917889491327045131243817049308079879509338648358655237987932331270019436314535026541450511113991612505044182975510754125274163362068303726766397505912352125622649576335542676058168649631655014791697046231901318118402020913066667055696919754994725935949402995817737091536549801584247836035553151862308153304822621294248577628277729005240444985487459569565527042614393987385802604611850756366973815809333664698513340037548480903128584930103383531445313273763901797455215841751728110465647959489212163692349732690255658464446833728817610416199151656339004507149206209256799740678758427138156283809012608308880444769755324489408942025614797360070414910716893459565655314171546782701993769640583360991222043418365178981090232277199121027187327472648007892432123847963493064260846394362413486084405203128030875245411911610542112517269319332888020621949349358032974541070169733478891934921419403623105033607738926391679016291337564924061521331006807688940953091583581362285544764710825872013873695520151829270790156640038487968676234705849267014910285048586524787580307894651391322737951838556762689926073891012242541421096696846138716302600258539194430330072027968942668436991653449345821110583861394155974146453718323972257930521890859229957124452130775711208001773293318306076727837815255092012299252252137330980832662410368122351753746354487032484060016911018735512015444834497595924317997702945875548374033485766681623990209861560171021032289869646264530802487138414737260366507006013003461246571204434784134022007263844474921510131812696912555887422789017111223484852094856402065623008041704653814176604380285951812185731297226835444551877047876993322653919130069142348601289965780830186806453695204584096511298178897413927812761194190281619888621458669388080739289322424176255805222081974602115332386201321625975103858359146671100897836674148951485253325745156065733516378662221090146646277258769474875017671220774740912419086974338350466033102088956828375721563768263943480264819890161398846201381681911712423298250107797779821872470245818850217549193844117575697337215093718615657229679878861204759605521032712575996741018299343943954829736437619803717111283999580140330729497069137603693690670574780549019144066999226884491256005906944492951099484741602006498156395291444755804341049565126039268610832943859836863038549604302794492446688707486940195147693221183400206400120717858984779786974220381886483787762540331491681290851233287905204356522155791727085907480784990913459129521309411379790248881310153185563041944746008750637652613420606815939306346227145402300904406932565859743214129859946716849878882076055639980172532972447557644408855630732936045147518757911551461170189814217795601534990300198567384898415101146748091270220909248275136411257939403467020409211371750657221528130876651649622432121594975654896130008893902656223327349935676756564620159898161989307571987411355221254505675144229690133130689044616357412549062783746942018504970255754264903017993381098186908881670863210522992316473850562900336004752651553409794290457273177248763233942303759535425594372017380128930307699856739956560759098743196327089801732720376939543345157600215894898619697101218551345376337275980830663773466699054686895954519710851969144159343510761700326637329121516929212217177100194429992141196477779717445724237800913009487794663422159022746228600941800831848736005631382184993720354662046842510205210271609681705276113455673350044750426129927574858047644907178667063331106504316604184799343705573397646983432450214749105187926917010711218994908617447614301322138525484755610743081926476391096294381692088817235067308643619790095042810217725402558087702093411758875035358909836189533843558021074650278068517444809708197319679373985842493397546784621137342943166549006886607163188055600606071292702649898212625607824241905870171645508369269862693081887205431849808421815262389573884785059942914586063151974581696620654267374061521114599113346813320373883887119034149268393343642578790734180888025629135592231660361771221178271971085146472546879181225476557040295899016790611793695477025334279952728737792131367472414972631121758062383012261518472548095873508261997405214785107297374693372311269071897073897163321405524250423401371459506905651947295497598003079566295672745015581266864148958503582127207983321065647551151319560304339384601899243568983755246432122542005020564834533127878372504841582037047741795979132655604598052766763655170970509415266173314529864945245219245658122984666094093203414290193469386772755846429684590505293011396740264773116556294727579805079255958435308758244479607825519935538977535087020550863713212199442642460013243656852561173883169950002769411197315230961966182309173898596443849639377594375853668342459308387841091318297553704099732108015384733426125071446151317701365486181305730861425481956413950148444681812219856227632577164868839523358035878914327283063550355576951935864375638584912893665711798877436466990872647682401448028776787470463084922436398119377237385527060817974337139625009011897879391363064587906593819069215347213602147729557447156046889804125770947532360684041350308633853663392514823254041730496374032885286147309820771272352610335953442966401720951465290337002085005044849725600278037012534801730323111805585453778124296538528525493688554523249625661050450376983709189290169234295717480295549438775213428279621561662100236018598228564269309660488467723075111528623329288280521291862647560673214355419336175072962234755687076465274316118259071181064905714775199145741243753074696522167382294452103148365846636477985302425268478039422344351271417865009676109800215590688548633014131064704244619283575813195941493684667135342888475848489037019681642259417536622874599113829064611268755489097403474129104345031900147188900354993202054712610600221652294871429334348867568835936167797796236079915847825152834410755166774530388880971878704493247596962786242563312859737290783009787787143463786955567110284901959055854914248932432896896798523621908274440082222995843698913104505819695479839755810022454278545677414091728067803806831287627864910208596449371251660554020651665827051423469992335981120754740759719408280040708888383348691762216512739923788624218107979264028455651418200166954588675186545744236034648423315229548990926285406402779547432706026926078475073130179327935547683800482360087417244813245224863250076420774413611764323902279371627933557882212191560358573403197266661326238472491002840013478642991703006750874271226975054835292481849527616617038437050440897096620006893963323369471964705731486441119230420527800444472354523445267660651698344370806600003933605494287316223350773345735875166028733782159898433663425638478352120528270647510122584889543559867043013203304001625653713126777603608057949512393651241637326618245960160431945421136544353699881983877636175550833365280474549657926445739535982222418118416824173362989194093535401542493642765108579491201130445512616509080560865128479487672767099146656794621650008038871376291163229341572399715599105136026072659695008905875534384454804126487769668107872719173708788901657417834730373754852544975616225357915972119498689914577623833162276318206552325453960490777529727385468337339625982368136762959874883733272332431880201002395882631681015152546696299819020882229844505384872931162182831558102543090217344901499639547170162927703323018160477752821570215161611082603019131501793572316714082085346085522503773889781788106746666845847627716036623390597728637178513813691839209094645172302803349456363571782049771895681049566148664335797728668006619495316256757449970488283332231573248716704635270407960506092145143536277808228878107251923932153458756139945441714143494389870621876312381145631543515458101881525841916944352521744818711264071503250481760430278716223265194263534516266299456069090774138305013576887510709197024871781699185466149010307577026326474110248023671153793933592284139817469319779533733537710567422506216795303350135617514776093191829649439076646364689734661777676393523089014692710338955857484798707603560039006649468259323832239958604129637222092793837426665583997066463106316328866268449990520049363056689375277852022006482946964017690165627525998607065497836602418186324319274091079319871349121118163427741873078272079711387918077794142943161927461299660989438729196719841336268264317490858647350926268215052193172088203797425814016391258910814027618041308839664581964311127593597738886468489443516730628107763173111269860969160054680154789214480861236573579462413258169901270888330298273293318139203307317885464044094770721087200859977041219037852186626576431357593103580978849636053355874158487585522064410512520921234286699905273854236755217930254267327676827963753015239083404079587705080754382405140866915154382604014570396692832392320185793097212253727272045541971308130194748332188366860058995178886200982910749485148464508623253537486383239047349428383387217613160502250978812497718769826563384651992053563966205722017349902038398242042482327514498106008016871660820659065953424781856614522464063328312922150843807864304055458805713107292140364814815178404244973668802178776947472453481573097418257965295407031556848736119137282839366510457512227349579983293651290397899846838644418673380091541478748345585847317050943779105596181373432285933983558606425585611745781052610819872886032493628734767703826739576357649565678200542303487941446385107166065245300306468812515798851528437992428237015996125105822275865247063465280029922750564055297817042271750693139297714758124872887886753915136168133726210964878423456438133192117301656475612695668892988169621517062555079057996933629646825187216172044524343007002813984524572052749783491172987770293989302652222151438159739252181845691236669497616058688773103567719636386137236284228580358067636015120397203656328526716084564694379533091811444934998532891590857182515409154253400175112163615036236816498536398984808919531429304651169381463877691980582712708978738154866643510449433610224647311918896471200035816195823092485887857969716077274020049711816822380297541202698380105385612137253917631820463899846374801643507400374475502485640218862224287379989798881148731654913410977518401576716324279068244444094620265273162504328707240439591771206073394920784786844980727147219049958699165572276952845994397493760629029269946909717480336960033109513313092476560636884655740268241666512980922402869189566060372492194152751886472722154332449132867663597180531794190869549551275902470219217449295919683570651240964921325906084633374637245927820294247825487138799449500148958451474765919412212210245553100514562652274026600129415905308546875501910541944681181332212027085336615175463300569213423378018963446166046692354518451782767818565643894983147775449222725045789723479518447662954290388036231754968061351090979613789434820177000906338501890414233254378575167205967316167824911545751845764717835473113910645072542237530522168112575494637162095810646674540668580346686777268706190430612571663865919447251628782177899786277786421546981568068423756914474991999288442605515558207270673843227682087201391054035506146454729304421130681000378263529799531261746707866442523057289415632564243093151988825543128758322885208932442383096268479321951096016926031478569573928638184320933381544082223552218669845530010526226099795271790980854954703909910731953738238814326723296584747988834627145622492380031192735200958993708141931644536751011958099406521727237014739919359484730853281529668377038252659999155383949809919060098762660802742080921683142272063202007637977889430939042888328297442259225747655065473493218332364503655558385275575939631948581060086138276466666569939059769777107214266655519148417291195725998071219483649341097603634354947173463633926475177469692334371437157092169187773413051090806528019826669742331223450924764359754569078752626784841890041677702058347020484935015590299282784356744938033548343209195335946221887251663276604098555112073173101251597132096734045123475992203579917952471953886546066231470471688543460849948343636283670261739146742185277887948074887968701702745720840006272289824458987059589061204020483136370258583553178655764023140503781295137170481416976817007561813138662970252868033653312915007514056353217377008440694730628844728536279849413755372280270925298295059740253376209579582468102228328340133172868281119292797967546553073749462851219255129636471036966642294667656277066856400827430019680028491880161682525097435458075750890332302613852830701810408675735470960414558729982132067121154961477626282010080918170165132864283608209325991290419915908931220115928130545475705408464337054619831408024568896219922798555029737347618072641627857637632417096290038088862249497370950321688042583179939304529328064742921480578284922739964955573190242376350761097412341308349861608023460236566565114067624375535660142391157849531051943241163487545593180629958729277196831576263392858795541694729668821343628528063789551993165746000681621526978661863213719344944773407386243193257286127513782980227325715727824185187748184331786177642176791245336858610405975571880672825949905148920650488103677143997371121053664698342069979751784649389751459704709609821932622421393102878144125527672208193575444535211398965944575685900935008715580853738816561029234409052677433659847840762367084095385100163660464999220727293826794113776127354715284062467504272615976669129387429374851532857740831711238774746473801135760982174374245074799344221741904450810306794527925884873346802944576573856661732314019538785926127862369667681723895043586016335792380179873913452424818130744932420229851715268439806933518312598328553099504196262339768220325945430962418675456547558889978184392655173219021315978813422260794428569346115608582481178339213845490941341583866613615788275879110086292453105994903035344130378338421984641893165143637258826279681599608909591120083187092454098631833275732824407795435545220760827865034485769506546474239189262226175357676306378015430532483520082595813888736128209747673416994011025068572089678683261498324717431903076544532648624217989513597977424593299609338572501616301475714297775527542044985560767932522510619891343224250736762242049726517867295716711595393810759889279009436002315577184322046196274748121956929940615597192262669728484640827534184404752279953551549711263153182755240148141506501259758526414365709670562937024896104570591538735833265796131851595024048943046997160496035266173075467612882529265818058042774464530577407104035253057661106116886468012429032685409773700330738342257774190722546067647632511673055458144186767834970093588034588361512427117348922217859396541035458503184723087451081968081688752707764235736495640547084556461140489736963464377174841396670563464566938663413805368076756763078807587197305731176511540253282837819471798671603347718665577721478392511761731432386083120904518753108072198197874633701769358206300617114901280190766468581678478304733298425773159317198081119291316737802870037891157357142994472392907666689220458526431222147592641976403876602901027008558369152950588781428889016522719771595018303923880563295137853587040995545754631628637965718605716962378611595073208773862977716252557104635135521713364988371475914726810507433156996713952191371611889112749443185799258908859080375381298378588366783774403876627839525433019445057540584749867373018640768122426747195944330811914129836625593310236322797350130318651122673055559035567995284398817077468426059410573777131449047174969516654424778178250638089899985158293549018178859999687775241777895615634599974297513414160321977151477541807498852820520790604752222488329936969560162797383758892180448354935071195417056863853600958816198584995253056463949917827306407270872694651592708822646673568880510476052472321662628519585512719444220695527947664401609253943646727456170825851733281062896200756558555419396459356075206662839432612308439130028858946041301896714711234281983539216142649973837327410799358948113571508926424643634896585527604204752194665004135134112297243321888853208924834181856176729229111709640996024103209208452933176330851679457941565012083182870708943595216121559172402219730449938078670648492630827650047780300648109853182584683660220148901950939322781324866708171576120306372978359696134551814338403039935919495429106365919997952783252025795892617075571721211708491018060635689733743655529788733095914958319893320103064679401388720226259440978341074536423592801462474769470102425231207905681604068061364208614447289349060649947187637839469844024077857233006435644265301295216089913697710217705204760652810041267708643798204027375980995609066873035283837892794535627160802477537434356376547691606993048064639543691170108573346128742955443413489270601590526812634493840026785183525625485476246912841670596316193440589629392606828727085951127399847635016717708225569573029230953029162221736161117338542950094914459541019042072921501913880631210121228854513750217079479176422231285455574287923683025885302811544694527772916649380357078821281577571848407759741851175538357666145407798440941178305620936280462362612637773763405762024939091086039712269850832072469893684071457438485913535570773229971471781193985308627561489475850097519603176575143201877863540038614735215114833293753119447673886841413993862938055979920112954027401854644949096443952776316471853510580522760251116014622580281960424152553659733958777596086846680784668562541238756051316443557260555394903184586749482481073929103130452998574514734716991418474555032361055357893337084309121974694551735539957572343611230030471052734966803472609997393705628890356614980397885122746034454636335966261262051387007318220456184933532042830947362490462965380324772795314315887414043019455333716944226718601591034701779750557928010092614255767804245152966756839512128844496846092125196728810174870189119361656757411702914261504796456530123251991122876853523309285858072282328528798343612000887494333033808127553308493791834040652192677227042510683533206952809334917970201171750164404971119253458835502635547890761326615213444071746708817781521196739732658440515853791370043439896923069469238364686465280359887365226309169153588375013833894588335532221135457353521814710429476958429875928271777644215229889486320343432977645533588409217956443905686654477312166568695889768586308738269878036489485564354770152606532093330314085468808337805711912172403629484882376473120789921918263803503058250615532923424130786476139429326035297901828434074741439589131215760391650503985211729398471834077938013351725943802183711917879449566198770631878831369106947913954850510797791840008712617691977714805760426222453607621836073490218792256517223135833512572978294665123833793441296383924766420445532683934033312109202326873441047164069967376045678656565027379106857212675317159624531792261215484919655314996859017899860245700112046556243025386802058680256343444658600184087188532689378917466023637900790068182556266322500548055799471043855646771285847161731758356180155786057376008748129870805676008301162089730674370220721578118380656710586626538948750458769315841620848355006196339772272901570575640816799012842837024306033716603745451114188186312891128813875579141781767701887489394655590477115867093398458642892811278501616229523891925544723828625195528506396207113217658386267990128908516087711051130618196436044767998278548182996520406617304101328385609523895879030123688922660575895046453155823696233027195735142719512807121095305988027444168463237997763558396082270062395354221629825525717410546237447007639211611801817247665487502961611051490684788530583926757032285179618252539029641141130203995931547958200972097856389578357962896756230702757865987774040487678707695813242669980938424196477603469889125797265874973789653983595918881008406213923325744746823118220844936969545164630838127681670601956711105260803307831673243483171418444844072013006251444350849268585021922662639346321122205927887289145989385573582375403311167746934329749571268024511148985442431354557334579934365191168163788187863420695538090680980029811080097612095758700974719005050635098199741414726904311719085142620090189125022554953365518315339714566606987934199384561055287740162781408306741976351079521269308965331246408315466953202916612825114205645475587020291921222137315838503625483773835682234973798176507533573407722760636704218066606272582164506343866568229540484301586569892525955571855568997581222214867174777845899762319657751683393606185735841543927335389262092923636242933785043102827485223839574448912568129573073093632611048941655074605191931214422418984820853959931854889460500640600547914512379501622806120440134184698612401577261496293126804050854134558672515856084350208707630310622342358438888338772625070788686343758054640719384906606964127877161256032602429535140705829076449315477631539986832183332491190023434265161366318951711712114350039285156673784080596263941771176389037835928599239361446200271311657417948132299905604652885441807086008986097954681896036459459465975543125811174378747238034546992846991982044587368800861144965551386889314419611177205064963029952540419411294498803491530756748826121967948774791116451064277355688194885624513089448736340958088520615503282789061960757277895625418370407567247145726849030986570535103525934810747125643681728001015500854592157007485301653175769888772865985502322731078094235115931928981064642827896869607287550203212330283056703224538138718308480056135088824090515423414782680648840563011266961960164708899162864627510243622812269073573044519526257467329410978590619322408163550000744629803943632280902938598904149107428893654064485624129635635420155390996822100605498940618672409001939975747235742738795777924756009999805034538946469422313232690536793658790640000322826203478354520869533035177828803914645882979792815950245914001779318186811175179441231227200684345859150877265464229471611870813466686268705237590269715284010221036948990669339726639571355234271569051056316367972056128834705488608835487141259411200935234454226199081049190969511650329688934603777848406284047349006051999048029179479778583058290031470075605899781754753551427728895798742895197375444760700089680617252010805941097219326627160971903381683309270249843474551845861502381314264895982270792830517768928205269996529726657160679859780005349399908220333270011532486337469058168958331791664643013689742050367754465926063218226717647399739287729683603359554174040887325318666540307231486698913780305385901604365952650896344707500291640006512618094567553956055172764787325074393752792317814696535128747401079768834409843662786962984533892849464356778308053495255610627569317313523859770224617874020973382718211772456958291767172841472008988497462769785222597936929291887088424342514305853587324391802949989088935147999495904632025036508041414821064043877117077500844678273384501635323092041903376749437073875259663517518924923054079104491081072528389709364369098923586832594395783744566833443505947191035328194332121248666546483371045303911760938364353938869899378787780895680367305026264207183295707121642843329240060831978704053886277732601213494567374971450599180896338547195508270585345721888942658904692672941233119357977130329859045172475788042144842055309142893543431370555862170779006457247807959445386602317553280591431289744544331352237666392583155771450224196068681202332007133974077396105236421995959912701729276934498900792810249193089991181044284364528056097162795755135574039735873617323881732184989314153296345869727751683722070665941862392229580530504748260485303893585200113331758138098989821647739234777583721427976264338927887790247995034479133808692982612726918315810663507097094890123242520496518652113171005429661973225382809444526134116264192897801568328681340112739257590684803787752781299755472245556871175139369976375300274569393493073813211578788851526151659492920017067588334862699899825838845525083354185911680876424490350121648523322048977726020176804506285579903287790302274925763572074495012428162879681142139214512072624000186663605831571617557898777307638032900545795487696692685005070353911813938290884948342584454832387730169800505536483637846192705255103053808679822075211702153221798016542998740793758199733383713040004551477327830934294040794807393969844103024161969444556959761616840503568018956219063154405481872401547094700993229619889200305685661458206143558936137236862805021313773757446273230292451355117451186212962797787938785569158519964652843774942550915025170077042458652038024719725026632826810333829438515281831380129477125361962027514975045401843307564790340315600109733167273122647878477023051225061599748620192764358147787408938278482555238883976986793636235563986989739838131042519556393375055725754997319610252492716174352342364799259513090678590884964640075545796487080971986023924992027802199226290865982908788146126060829697836925809145165967487707428281402077893080604529988433343720569601301490407131308519411222641987299127893822433297501839907572785325976496252513091719897384493698289422742106618623134856284163794620785893155472786908643212731719598695104750673485054576318740250077645743161251510247922322484726405919939125112735178301275657142614827181704726434225495322784714588902851960304173423223443690510332516764807833541311194242632425741970275147811150507040268548121942749110803267067916546214539504173571013480326323203394290906385566467766517300382166163858707648401826138217466688901985984296504217974089484310384327107023718489317344322627591929547936049025846028170840433229703784298538873628521990599797802224674968593749352126383545457583457284118447416503739882789857166648863583029678130068045859113286481052913169168937738385931921035298668818475987916281190710087416997399397738372137587231566062441371529430052223463710447181172721784003891646285697909532282237568220901336337839418595939680010590295077141718601379953155247670346521066757584144437865651136124417095021338522183406995044998777318600653679051372452223436956685430826037366499018187961402890710200353305441405815384336514538927294589272638006991317076923917338196516623049643279382068674984464966528335460718447510837605986131185275051554715368303200528892383564195690183890561928638789329634002204026297479554100388955921924157856652488261296460077031592606369321250515172397333071771828764708037136201424567306796842415461345129880262495209444999071677968906500779597634173643177040262860077919206938169979301897708790183184130951138261277732584311148708716527760313305609446856411671864658822764022147639864780343122509217898744749591733353408468860318689156487510087368766518966819560947019454229104190185720694953441530279902555311490575165676278516868275916912292372986518529797088427923803284342000922632367185891142297438994911353652581635924646418767896640414870679495384496025166359759460054911331466550922026586429225433590740487105638815121480099645153478972958295582159904294822998091656761647182473522139418254710664489666156641994322099415062964862072260712494718566288364891401679609320782390173703999074318599093814911444906835010113873964102487258014838910920287032642410578871951770824473826021596582687221016838863695999592664535723482837713254258471195378923259238076485560861063993335439175957490161397685940715847247001537930274340434516382950327062417230596765348190438632648444554092353403974259401578770045515853733147976485587532774584107867706831699965875270554130540993571970293173901449553385632129969515022131648885149696172718397482422597027326027961119241406965081918171246988734193278353646151379943466397105727091710895972237880409612593619143371366038396341632233783340620436503769671860875840143555131039073587542074250180490887996497894652258903436350952515625282030125012954048047979781941100735451085116672079761500025551441663619678698500654126361815874142820740521012936750060557860822449376707482293140680952264196964303158961294014421834979120932870256463111015530866495830713461194819548764065403139270660536720649061910924617977750891935472490052873917060200186961720422429614794676722286566345672187992113186253099136938584465380750655066836541933349446951611986538252710492185256278243107853148730404029181601281989166899790587063218266752501972504238325893751565323821183894955266954851469852692163688942080346068097952706362959955738521660491335411385165358891789428402190625945032148028459711814099159034211386212164278517559945052898040406230072146254864618878095921923333159981643170873880927375114585513472278547050868170030747220645366873336993914171970640924409803078624296848420596173396639407221999725121675989019704397996763240263503165840476526985490710246550669252618154634439450293293351240571405739745820040963806221619224680077376562462150866082375210603312923123824432628989191046773774378540061007826882550414451933271457297268032760386763260034869756826406045430281288103784296363313977443695310963837854848962749465629892399048886696099439967593144021419368727777234303195871818773315542510075667624186266646529662470540629062464713578446498052100167463752560034108109639945314583879743659912615041784184898238262906199820694968001433281870222590095437731336363014750409926304304981880221964965273247512540194138943100046489579991746224868093631889286738429765471894893359444828002534565546768266923936172060232612807353617519201679045895600563854406950280676112872157678996909394719371472994460747188733246600890044070440380225043237660962530451296558513550237401405291566646337247114232033405347549514614595303007196614706074499040908365777432620468792182951690898331885274343907719079604774540292710551163077700151316075544418257886274439710363621678018598099327684662948735051779202404370744303865301373308878882510924857981904662284698008913771148595199974266085145362503548282377590522729750878465774754929351943608100125870375855896991238777789417610891753379811418390208519114168684114825790346649191187331632487342431588171502796504740211405303815600403908613587786715412370542116282760119346072583305168827329156747518089686588619111816853426235361563915143347181429751926193349021480831383518602241972890675898845037368009574500609050024222059459337952749893383296141731277424214988237337976627255603387647048048568518344620111252722881691411940650235811124977341897107024962076056822849066750195743942178385632569306996478319357833875527671881016903831819544150772737874079167907769005430660897038507788752767382291432789179504146890367759627002083669217846628311693398745579772365622303976764037140809665702659836456613823642782850009899393298993929633127532260636498132256498175536019837486059265591297831136041038114297803442502298875269678774069052415093774268283960936681399498505993102090211610254272726268360834232712953046195564871921081578345347440682260424683221418695202426329979698223170549414149701871280715560114652012892051966403469071978341935182002494806993746280963623273894045058948214728922041283826366112263816959830644391102711645181873432446137236502775476955705913574099908356769122894331141858956081563583755328944777916670285173964591796765122810998085616831329154697440528028051081934892313311713874433983508363108173802272374397739231715633556642282839791847281594042122234377532359380534149214577056405503691134793187193823898500941165520632647883469112485256145517518408781018041897493412972057093791220634441534202320261924927346974953653236044505316852017409852686719915213799662243779001998264323088522516673743247521674855007135197930396759391193486349844579478415820359607348780134525764011162346226734577447470284234569745971549599852225667515032248876613427889201979143269796447882397110786474438997181946166463349813782486414915593625371918346995983849257146753568894587662299008025619908867969404005341320037368943311374350797857980545810781532924134620424111087139136022970267993470451894854578790153374306782695041797595744625509650964174344271838924790831890512030366220096167591984492877008110478196601817248139540309303370950268129967027509533105400584805589995646315422932042473791884102147244780002016425842940411142440085873006339318112741464609988337376445171912259761883296375944844303126983736433400271007252011793358328218848372509260892888805969305378171660996313012269548184142890783643969749004712163248131068083774865852838853086962042488736934300440945013188345421345079861198550301951146175500181791795226076468141836976020316440064291501274784710197220775650858781890900385796986225977965226011048519189820413546915019596792330233446138318491981590011479157725557684639171787421786282972607706805977263711761586783137503544993758650659703030211819904489990349851867386201541787864284195073523489680305529988220012066419972175074124106387482437913137436835502935501008904593015061460808662508061763305807038459317787360556993882881627214694882547884087275915109102749635675541644766092354984158798190116463898124474325363125952207888391657890876098934822064491727547816334199739376662111788978861667863633913995799536167006820461757968174667762987521232760546540996129893637426051574755502065740563501241162110727674544231006900222750571534771567623433338476961161189910127421618257984613255399341699370169332800043189743829152747006894034100903250174271245679742359189616957929171239452857609641802765364477403305818869056236195816065863730061438984613127717785301201848790427959848789610152526412502754658239479609158392214021134939685728194153503489762200507527058116475908877429229426476011997627685928091037922735210258581662163551724083785735028963906880415671039660104542190872166217359740094584835958244418129910155257233713518346874741787634023050464442315484418410730896712497424046844542141048826508482654658516342574285395829865460869739357401974737605765253301881930395188610133094589271074388660821510745627791255276790168584275854607224718889949192453653603405326890768888639071991663768529298380966416516516042599985231638444863509860801509784762751667972017718841622128824098546918378043832882263131663317403095567415051006773359455715215493687358682760292476902553350097609742271247431452738840511225803974113517808268611383141754714605054127411232217077470819330064160471527269391236788846553155237018319330921803809821494493012984657939835192434683676071742259071793627256504741721576393630744808506012515486054298830370259828920726291972726676038896725128561699684729310897051733093371484424176799286902790122381891275037538601485371663012732794937138361093860977984663580797249058994549367388258910967250642751774829140326060819719641938197272184345423393270324001170051301288910368497251486783532600458097698748938853341291727096914043290500941686869043652924997772618263056906675865073927977780730058050434115627990444643450477323336328151894032408550154100883328986285610684761038339217178904300797543515007250351409962480022462775689174297029479914237124527527315352550189348382463191587722947726052592244785448070566898623119499967312168142406961249038664320644153460964517805520516975545795896841813675541053793839991741572193805471319418571306745540484014556865540853093269218250799820956658126030320104218451270838596645751772726289216755899550913590057726574290543522014907695896895326650191375002582078343656298383819461889098668558128722059295905121739539413450275216139180870505642795435093849868605708121812304231431814439785329153993054268838186580906833777769909822043810473089960157433755523301934020610147695759122771112691726764760302102606303029380320377240348081303222049493507693821308095601912407996072889869133196991442903496366053862948042333415505233113054356681833153251648565482562667270811889167943812491626975167852330026038335104607560266616846746016685645100135605999710611123596503114223843724971725579392909021507406667046439454346441194398316106881812200305311544849828918867721453325580757305955535145424379131679976675289407053999414645346471400201200970653811013182859256496267543799304780764497764336041366225181005595948299338874424707028855879015274600214387637697013984964276062482700430567825872494357989514471232552410834626394380307558216204200125203782327571644261334497244149895761715656314285515917172627960593046486653764170108700502098152199951051185618524198056558873222519829559174948224106205225850519691897666823759818588108978060009144859753541347951655958966296438065203329531010178362662387545702793719547953005915359347879199114208481317367541935392422637372334237930465841397725200879487927287541660543449886724823568953756917235314063923342352791837301781053657243998894746347738028912333981649349885582972673990238096484505700114976126380079459411944432464975557821382384637497496876077676337389434658760495560980428394242800155746173527617504326595123857554262676273360364993048446112150314810227992011368366354577767882509683522520082442463346854725069409501030571341905651574811337120521781883696531350565633502470532083420084692288414083445107040107208574867896976509904265022893478561584112220477081761927637658325949125286992918339805509191755439337371008221021023460595898259918022650686228749249693717920606541017257162447975001228638159824229883595543183551149745465177726591754062599854842364643211765032271205134219043906681183334014714757129062300850604093826734597741608501240146852089769844226451161623820344420697356142899406160892683207099033778413904170907620587626905762039871439623899400498911596163354983500445028657872904178834857295244455810732047289456130709568663106754557027988664582844913353481677632593199353143687258736436965379718935440817214799775909637852695488694446479918902287209522711389355185575577912980359661557039263087135710949678636310613475650612180433772601106710763340980228747114904076987628930952433244772493286887961184344158510489501259689982077043018401905762547184740531843636109522411133332740979678793202723828005957999458484078571284245099100876844892068705066904692416066530456399095601161813401435484522713970112966883368779645612703194938127809688750756133642909343374222292642403191179012826752287883143172258649747223290711014140984064330097654179899058785240575563962671417064005083940303418491746238283901605787326180572464254388884218419697572740406759542863492275536385751812211654590676937235545054778932589174296927771631265216381650202454386575944734957029769360760074377409043626003863697343338800005181034085864192843813371459428080819175664928581736437119732978936910892133729903654700423266259617500692697161322675570853507293241067856971948816022973687645854187754310472787165724986286702446104790805128309813250178154731927270526947087440301982867320142692145286141702686221856688818068968924214099194713314680229868940570765895934420093081552703695308988300070931903073163424293356673831306846747420710097823028990553312037109145234185049626759199148461827713118655194720159742497110147374188580954526034192724178569487338674157847760850750940297773897770271353768003375937552048682393720622873717568903186544231989242638475376877178606683357549913098093270719159236342742189259899081953067752983037804102155977779642412779729616150709126667707605168889415473193234558938527066369765836367030485715792795313273567249241861731745779668268635591739980801802193957243609465761484074247254553804851014889651739757071028450966679861616756227780140384287214459151120485620558995656271492412562612575892026928495765610346716389792349594180685260435159591999520219430655698494153817233485111953586276487140884276081846271671145933579886193204075086540132871410262817148612570472628363933469571578346631555424328717033822133966843230035467291474202738287259221716378961476643721175287841274678233943941178527040789346153006289174265782328075685016233443792848226898566797455967657559915571304036024387775302740351618708797555618691708772871438644825232065862701498088488876960366859135969829730859930941321576675372893364990194766465074983298438280076131008913812745712071130213174818455116751594740388832151168247344686397245532991803692487601901549638460617574422339061587924067444539129807950592368068472231194882746236176804344390488681194587279363430269892418766385829574892941268602095132351569306908864540799754254028846698147749930412172324032732642293062209004375715318154622980107099425276287585727432654149764426587213758230797934624582286384861394092527247168463090057422220728616141638332593533288368207235049768400848310335717558472876230462947231410800386955222495327225433052872874368236808937962216702860979274492634535847456627539898783519933547829803008152335397995760242910499834396266961230705471838263440258982546857269588231495846194635456979833607205734904986741869921455580369666374330860806870166911424819763031209057471540271912931549567202336144644574555151264637696072526592781364853493921565778332837297874323875245860854236853888318438597794791462951811682800367253259698540051091198764495566047727024947001006390590763094645559034043685063036538088275530690695194370572251349195751500040878128539754351348160616761979344175980757170945577330772464159090435344016532300552435657921833265240719195365796627685183022610444343872777168128846011271310439343026885629564379778344166105523071613999171243110171973499694964332923710281884418421745693582295147674420646125010020519355349555235721356852262434587505894189109547998342152765136158849782541850279732022742505354031166717051969304418138416873709219510285543447507333380725306747599287595957097451424536408084143815859779842848817413630366610525096174654707947801899524890747003546868121740057398874382080299663036132571011945512233619377822347499045711163598255931566309422841272526217560454998283773231323659449886142627598587231018007004556511406247526257623562317140786984133558845976135195315932868814058664361549571964852519875822800646441100046621449105934832498480416099009661604742330381722470240490050173152801215640214212276847343387323246410816280794466509728051170949771123330885754742451290676985137988304828876995809534564492065449940571009416083342754810474715600292082700856427484229750992606031221076141380868829722439143478067800892859448478281801742891689592110801876016532993678051511675703235782579794380204308582132436071460565034149543188155188467525054087042281610389132653311126700119348589647957403112765864359804006398738938856669574714146874174689252314710933937665937415583200940208540825743953929037312948794752571455023601043725430830667407407843099501765357232776108734729721369202968321138179012150812605826979462646751819449685592460120529319996783554599183962466886124558841064890488001304636533783823352774229775494979932598725435688250773478527283509558193403802395120523809375548004159573663876569664368723164072996179670534705177192382067304767499310707262067264983011258075605021103809828190936292787322598416924278049735175304750772270886023826637514180036413647820144898050314545949671938899978449750877616836277675323017012180482264645373305570271285335118643769743792599536279217172200640072344420851126029541349317533185944911204174226836163416549197079688401623549006577331810888854100438693757890148995400224808763836224210869992902106671155757893365350812585051255997195482298699271955218963290361774188134747379408978536589410676667330027477091874459864223298050250015044989480300062077477882234495456097928227368545133169359731607569542152140012959041088703650956260795827603628462822891336057199386858027815708963629112051024314329333983131673688332261704289069513488476164779338158068360781403778091463223453018755705359111201941498984674421132352687499244252802675584987167071671979480463361970005164139772761643086934878606509809407016832398942449269836204864690032726916992816453737326388229271381513027975025637320950574789141963092362283298909215708857439606911682347767218579451188296798930918821645986084219480563020852413344764275749584433692332862334608300407903450558905414668343427133611890559058671312122962407702777673179241917204405786202872476695662990221800610934637091918440949464748400845783368748488122591603225351850546092476299437964295563718351822215896871345922223450744697821913592000007444627924357284289757086167612346888691452277503710120434958465556303237782280565111469411054827555104499006832427369436036766716168885985597856109914775961277563926274048907735206012321483240413302789452655383532589395336740055310923677836754326071012059370778119139027309695240154938643938006945064500602423807885134904578472762938317649802154532751565926829023259348715969006955555693199344472202429672843413284946013738474746111526046453406262787097064874614916635539039907324650045257611372698455111973548565255589541933601961123396659882321354078521566566217582608973050984188724458832229161613727441279817595291019358816887151328160093092979971298080595755899731794554835666720153928159966060408348706918364555341532879268681961855943587148792107894366276844928353527833394253282295553044618779173785076198208463941216383561917631799154138937004298807495141631502407884471263728621772545623337342201811268587784396832218023081289914090669825610759798702963796116461733594188247775714389372204742835609708714664356946654100177969925567811400923732361055094218424017153288325206555707709315836374736051721522016954294695868857546608044624160089728064775112939621463650051910403082503322863522444402827193179437151566464313563946683376776902277465024998389670640495940254889505885474745685817016185356689500169443892704581620527393927684306178397522637595752666749214785424053682446884632801805660750366958370157624299668286246063992018852951569310787725124536781291454180791755886144563648064813918469591541086700482103389858511991458019689634760183000233279580768115410508482483678781120012687245035972213620339433950606363289118012753605054374167448016880803319679279220510426782784913758553278936087863491532164624607621704526238958628216250745391106900023600191383569593035095464453987603478644173828731471292783746938386120772129415132611468035232476754905930969065187243970987970883622637823293918673775507621880553251160834632597235045102971272168321569252172002364152321443337720554436313650254665095096730787921655368853574319108573724351780848967920157324710432141098551290686796218581482941093138572558319202386594626437587941991795971081179254581435378608493421522107687935358301439688792824288296067347651971462531766755372160415710505433318750760159447104928844597132005095184025010945216876960873780426955120189368214442765120174431551245904190434480046762759778882293444895139030410682015192652842871762432011920489550763994244570866882308663934417153454120583526806790361521745231291672873209661239492350220651990569755053968091863842074332406757212753038742913148017148900654765027718087754792852156543371233267941384745250913297760535587495564804794993215653617445022662310252476756702361255950115054686378000510221908797585649984187665669832131167557279686819565760321677299127237100441587522868226421029584570371795073420256158047541018653037650958651164759386009064223405344636791546735382597397667093995457334622659374842640029913883753734813465765182375408169631832719996778946029872451936981541483662089727175437648759475096270064371489024153865788078816547090196673067146591521245221930323775387664898094173191196146293210451342028158470304233241407188976933793212954693675117240967871015906688881309333000989137200821657828220677247995044408370796704090908746606308323657730243551989302663288983314675101754210435356635073406619016254169654918714388676636290040152543675923068808220400164594190221052861859751255620029387604382564031252585405717743344384290745648751861965713524429487679029181621508325303462575705685851572779161992118189939530056525309216903797041741987294661440844219884565882855350119379013038771659377992371707568445850070280291473142199383098435731630850186679163041196613742606322480747608488070581215250892347119510121521234025515504483485446396716101963907111747834727865241148321374193280190244657157034429446248328529457190069054280416353164126970142199019621209391352428243911287172788580051915789450041608554805296370710468388724639683168545282089304322022940401779228103578701820327243284716828661342717241072969258279078866717176408655639072544299501370765267334905986706665409717194241480743692516460368028007428172598533300932052884501896947926799228206929837382593640458327495696043329036387625770836515619214769374357512307701287515371941685447522481847402408122387754611075488408636826175255436515827013392148601441316376373529260808760820749494593035708454299056099259258680260489796239337141606423575390454787320264021106479443602941444478083123164413193935343426948430449636210675719875296726691522274893992525272430995694281625119969637330698354664588141455175481441751072955972817068565977869947256066315771893990805164429893251714103622224194980177921661266211639589425682035390211347897742906344114253863832100317160696251625647068642739699649420121433524970381865565658784901725647739103838313337579994852516185693167933700009511947197932421486939394753427389024558235318189716805637687575039764065444730144851977069755831611335321356082758728716134148805585270427102459631400009196734865347777070763892042506072881749368882650657544571144208927354900777924451306332391627839814257270638010090170412264838878660888920951290890143913500596918541145900176649266147862129241916978593331749650899790251767683999291451828297103908869012306617342942736247417030085272233705732497218408836858671215965809326935062913625477602417228473009299688571524386604951679733656883950668917209251103979087237362715534988790074991326786525731791683337373053886499492856942269180277905728746195153283768418823818495216075152253172612859841892602215840989049951279931364931441445270215912295856733157041004724048881604880236685782305079099262335984152952666804788317041661482072471170711729902486160132923679873359506567945218972505457426674583181790595403057628325142451201139761450706137926971396299209931660075289143925677348272559915158149370749483949740219005736666455510624968225686437652651115170445474849091953306272233823797210165330652590340835751182802796491578935254710832786013663861638516683723517047792068814122240099130643096520604642807911185148122142284793441989101304155508892653149766791770101256048703932933550500439621863424870602670108696930320291053857234995638754662727471814042317273172478836373497582706968288155484149368234970646139224922881280416859859135343982104446798968035549744053847130618998218848366221614584744504279827820975579546180022571908862249636701256661726634169469658804418378826030504964570484375716641738155864355072549341930957909591799651888901829127752460523044928494517951323469248755609182181237434638807414538099616233257900489427162435203014626593220483770909917790490021316061898599527852985582619612954341152183256936975035032482172208894689245746025708630420967334626146741014025621850477583486474042531288918533196722247004425389179258318337573151124240010585401590657467118534124864321131742379362460913932296031651657492013087040415903462157547637390471757204448496877027767979199745216592496035655100750794765839515239338461788270635131830903567333533087802456023220148542060537831956725651285850467522166884351044256581005046786068261215922851543300218901178121388711527229942271293100980950583844474908358594659526578048478882497613002573969412293215495374293326010719994451088266469693141130867800952955344718813150231468364020621434391128492776965387315025126616740311081616788042051629344517082207833715662491039530099792436210833348257695428242023230950294872043404324945128231769094159390812363979312099488830804484717143395736035016371321707812882778215302500407784963868239938332690558100485082688043017404787034169172295949158368917044446618863988276924316517146904955371411185470903235965659979742865685390292928474693711661571300894994217878492016612604560506692778033494838197150533999824996741735692498428452123750483658876468473429860182904901357253658170003002055783051834710343851921179738698990840269307217278940783938040103226741288894445030693674023487680607205112048800879934509769546238613317045582498061226276714140000836803679376457983713643078393415537706734329081832385299787594259175540269393244893331556821702288901804779850209508562366840025407542589078093591167988711728321388055814923635470364143905970916349523591617300499589021987537643184470567510524690985708587093414886221214347202923900987339678281911416674817930218360436963465381880809523988155858831602041465018898451477404278914667435057657840811906626953453736866028115431131949745196955291396339327222757685681505681506920789415132324984622065643570235648262552514167280731641365071813511225655597110956299717355428478302715017875308551917367793448378727067994192704445307409337702574933365875808972400518742224828740314817358174871422424766525542782132366412325453003217416114143416028708420886361205201312300547060418860806937891807821416426388791549135188456901049926124867401860752018005738644201691211918613340390935024348170021309299552505219716544294513103574150996710047644975433530279874917174928433007970495692286925110124137083090601225095167750054558717060988581840256065793822999199155712154309887972317036488764314971215981767559832135208297059603083798303980201636019878950381731736423759079878048700266075833511137841380431715873993314339539193679226684238492317162165155118852312972321704145385246266393062357441954867983998809709728240437891504931974554737628623430881153943386958180997877748894329644624433143760150785710399042652638669747130257690872108188593866326963223098714181946880202647498704404833120268197030195387764725573780275352350579556943583413045096317487085223766765739384941761450273727142898992522432800019747907436622276095372008549544806738186055680342189086514596809808292086001857016243744755844624042898717301634726173114696289857290787596483505361449033018039843834942333374443807001177397491918048073022987105102893928295695263846491948191876053239985756719604600399634110928971577590097196570329864475444122696872404531790632885655892042817079553148193052727901011547211411247762851978586224299145903851361378481558810946182171619233002748441720204132883919151264691808273352105278869790365005844701250699990951756060325789898846368553651646851682151212046862692539241994406886878055766271877473474051016111983981639185035658767053537038862326032476699298032825905495624896445786209174533201133891997711666025997699449901897807662769488209362613001716333672725122735961935241897546478288809526810791678230268956255855559290958277126373821434425612211636974704844826602035134029160353418692797379335282234753047198280259429000428866708647807036030498937448169962184256939540190467998487056120417645151420869490901236234217764864243690406830571348421580453153446959079257617368749895858450465040531816877544563520962597241472163189510735470594511847992227535736272547196365366045133475310281036331795503536692331195404857940228902587938826168850737537218659114934268554106044433076017232847128127936626478547372092383098682280816154451422333167507095273382332439299270345333414599801206407887498362287377208230621871057291803499711083119453913981308323073807462785741978243950890048020776782183943285997146453927450215613729962149597363690938016657522072049935902672829065611793565097666320812424613454555665152834893277205265647890176345941905606808340036293437976683231530607887789427007557131296632760374873243154369190926009249087777047136826371073612846757815159585250776237280968033619217580240986719943111763574680296775372570180059638828534880609569361643339448330755004326140514009161220539864760924522252935693292040220526719948456440238885353236813464752092583666754299183871355303231652626683210857535575374040803111196501258257554493976729609422549943642554465808807287991988341317474432803017125088062435375191330288202266495201886739934868995928477960457996274649085870057586697030845709798996885307499593337582881674528009364805715580879625808890420453717902118547159811325085376375234983265104002937118213040117464974539354303417872467862967733176593510589793027123636109452973351346443601283114365895642015374679768197609902964223523578098302482875786748662007291451208223641467255790307153437565436616633475678636287264298982885808766349005364730651520117780256805624495565953511831923465505264719240188687560222613489605320602017907113482993585923854410510040221114157192138305116887894058961867004046310140630192274541545254035190985378137078681811744980857840391785182024724658038607526899594613873123227806656521391350028026003041886583043220925601825146559523214030342613426251362832969323619201813443367405850337889485568374209353314920481070489931164787756358754443001648801843638373936242864654173361394275800314567124491893166201772098342481525196076920602708033381558739235509230698338333926564943340297782295070060305189877376457775556316401471631558682183968944374715200206394637562581833923830084752780542833588989578150523443930319803918397425958676298496698633730211833603019164526398647451351314535389703717713101655241656442256132755708840715840081497342653164572756126813926477212591126645688577801031659964144674821331327304532871291113308732359435243215192052041542946670654517887298298185794733796443217977343289857428922641763296555488543025332833051027719577487821338075420148807385336689169233218097322421927545886976388925509815596052776537167386324198557674327641055805876858509967476416063342963079612790628810132955826557890309007384699376581115959707278308857184031591617567262973247822349534620754879104256069159445594542151628337050526571204514716562620654957784124391862630408549724807961838843276363370471780356414107793109643249101495401392967557518533406058686872923858024132668142216506935368452099418988818264739626768092320154862344742755931589829109568776468487469496044896633932600841663136542762628898419582321633691312872028713712830285328245372084567132434381850939960478882113264228054221706990699149526938130967636807176904390851215818848314024092637823298694079706128841246441498966274725842788180962496017933012378994288395795283872645702168400647745755345130709604570456132428780438172333729248239672130436711117145462797127266287786339855632096757698499473049479326347527366064393646012404092561851887073479993255825160069856267989553090543790942537391113104234598857988893859983803883851321753849199554636826985129766650916525634353563734386946317308193250040422188826435064434690456600025621218234918016521912119881971071236744246556404605677430142742387742504006180623751246763456131977584082184905771398232390680230870780435152137467189319441697983919715051437490973244661154578096796307939851783031891567753514583793158100707703949993657594262190702748067506418000515423797945882088998417813984244662028294346589493099032099154208898020117248036836673400085786830712462444494788665755582439095389006822178765364494324063160845168152644186897380391988563082806893771589597393095923566898542253687598227149316175373388916063353853234167099482258045429053329611550184494284768561307560559869185017302876438591485926213945389169703546410787412782375797993632804550000179755181265117225068752018795187796964897502547820840854969096092214212979851601889124819074132658838132624544070296905604590521012720827839261794203586525330669408830178589181172458956810385291452865216343331884896982551948388949285343978778521323362037930731104835637602230177486211065233397168306230235182004314624711797023248642857439132224836169191423377758864249899505643073338168162615882780388227798654543402133390530320539445653018153964112930838034338304109146324848597043741738504235657557569886825143279509538954081462093148991318690174303220495783227446182640599647392062131268340213051493312782366764875655263091609693113759881933478835193360296576235200899765171224448892575292831159906490862241265483387807393068234605750038450955022568241421006290388863727649970119146162093052071715987188232358903462896021620835102812521101447292976221401871444583854881145839221079784742112892596863347220381325827923577862836376163892294355620513600030635704503448964613584791031891872154733307720703925261805947280197042139127141857491764730162070271703153664246694374992185632368323234082828205352121374952671250035647987625438146529574390163172040900192154788203343891828101858629905117286549622733644242985209872888224258513621832011455918343222602772663052972852119737366346239805806955386138312934425426659076362461618837788877605625705974509713383613585555281805070927520178811176874796277027135543669743970752589925533612291696686553548414013748034839336968102436282191390619994382903107080747951479666062295829028581514134895211262895765209501615819949024746002290171984989400989169262463971011720905681264768629898646091230013323296261581869368348124041549751298824542867097922187206096373966214706273815691721700109889490079978254732643974267942402607644541323401970883310546390595516022293238710174141731187248030968828090889477456955461967466637052222054668995248052697296853190490192267989881106200982356231257344256585213538658678878954882165081833675901489637075064181184280702645006618935661867654396107191914177404432929194891732518990664999994174172709281377426515059352407293449437021030842391179139338647023728825409328239087756295381872065654011665422474744007291002404572374240765800059023013894107429313489009698330273042098767965438458009636160579819182975259293479180002937818566165221725452539793300886964660114403613910165805512861808729018936886133411241626631965252613972485891159970435950485085435363087081899816536579470525172776862296630674227467082404012130367374886108796416650692496876208490352169319688717416658757613680280504871811226620188369138563948714792976584239939910587156990475826789737121436781162430459419347998958177983465496129687687997869086866233598893225236241245743106400350109057132629372615131882873760308198634604941127311812544699427724529161143788906159244897973850166387770873613987693096698376460757531775375668988649023733149222975895496235760935364770712013666151400619996618924370303440308121271238703219076995415515609733940732146187692269588368043787990900482262382292804708098920184784607912731731150184074667188890650128138619564846284557310617831180665244274622497722236027409747539549594987530523812155270921738968504258199232057667165748444997938911290036331737277232734789966742939306759303692629283328593283223886238930776919921585067695805795675120679784679903368675888493098978170629359866341298618257997615877096036010562306462709018264158615567349066497456397192206829749883577034031222190928122636905936117294171205830491348551435832195886641424365643188931867994814408507327854331709964269871017899537883772809128524724686606408533543326183979455101148178871072157519745299790146629083549433125813013582052122618717744527980993096847383413100425310997719226228944002073236149253537639409221977098807425553821419491157993751078795390917254580307651665526805332904689961555994769759179455620873099993989645085826241965586730251102164653051411249660868106895899376536292591884601976527089722295768789802869368239137997151508312536244720388958788536159280338234319597039752383778353699869288287000635251638467466021245543842520364680019463767514649965906469433094983738732720309948454499554475140179483201754252083692202554269012049088497036902233500013729782055241226073881878967376404175171592153474904819417349088516209465154205792766415523150771306784841481741667408037277440302987203511343434146550636108154262358611459104830974413430059379164069514097324654656781103318995561292806638281411909226952172717716202587298806792298529233145637438396219851664204228745195703393779990756209445846552980716212058819297289780971436249437870330877371742246300512972982583070572145111580602438730011963913123702421570850106588228029239735646204480379599643964974745042467210912757886479560032147960551156074324325356750180459707103744524515738192176507326079590664127405366819383094637452143038171585240085362615505056719436717834828112742621543460702099157356156127220653416279965480718351232939911159506438884348816851870520174304217944619049773210103740520073104837055467044071096296947822074815768693905932054345059378450414272286887369478624506067828088678517411998703220253173107162535362803922328544996840885835949657018526631541057000826148831970626687788275697001231917881791993517624009124934462337842171387683733750333056798042714582273565849434550618623529792565553702656615873385308876774721926210978458097474193689850231206350935878332307579302661705586608907069325715203827770225220826297225656154081825890658572648015967664562815797598262492576329495222060373035245977403549013907872635624199038690064866354198600410111341395645426607287237950515939463927435103217838920414184657587799735494283173813120927075843159819218356548954586675242258496633167805657433427684363553077412139970811169900830390795719806954264777500116519056448553006962737285864680864166251934655401675086721581491371960087560612376939134466757185560938819111355143158725534299343961584367835895035271001857151933662973446501432700203440998138281679887074404451557683095319993385722028976658297810137572146049212576391672537026658864969699196307752415510724432655099864064298823387101014433822221784177519434020580434645809993278372301781637353790846046996657011362435820107741541841815866644910410577921580840767184473644799018915560156349653941701666759460118645274647876994541279844984020511926401351991939265375432052580818153164510883372416838441667462563008129358009299261513166679091360402910131253152221893368970473027388237938707043176553595747284679111874260448925544712662896993710070650325403650695805006364342942018831182674219065400628203633461860395286813097470217962511796955184316245656821819271403196741694529573428596471780498597015891822268264795081586647481818474917976088428782734242935598356279236710617988781565950769930719827388689913678027003616205446854965639789144505902243759509545184125900224971792876650111015912917274084730535628213060286148029794019544239535624312726496881963343033150629804740954447261065168945831251298105576259652757296593626792492397718826162482533336733552677449736607483727318186883735237490710993219681567990455601095171164580450269762050287573882364881599741215375720880903466616954425956691208018124304449315450334356382765319382221835588749369769186947194585883059739040327721301258048274216674452168169798709794004115734128266999687174598396233828443663829360886661274308615549189181510368686207518683844324157251043718094497481756306173568217301817871029753090266187313707227246190200129675211778206525824433395250060459652706288428190291985093550404592122281098024241299427393657498729170296002230788404352383587404308708378112212788151847943673037205791916340579449106263290637976836876868431048517908150170267905195351385143770318442766169340007964035617352810026669030793211230108140298142775812561447279319815479299093903205622003056594288153387061006029273984589203714330442638220830802729758457698288020841071433436196614152590469705583611083642631948013095838090597933808530695871102059958974228941244681465511486653098588305273117205965769229964219138616121419811038217528156767232673710152859077696968021100307727513887048685471931872855200748732582779829974045840412178283757880791527365689770517889895603122897181530951730689077471800536037825978091450189641582975014651415148797721019288730850455851908325440249908606742080340692267775990768872994001783182978202150105379795233839184564035751107695344852457409948444353320619358587710399838424430023648341318782185772036790027045352833480867287842240836310970801191342362636907159328154467262935960562978116418113301529771236915802005224607400723973221712659158683261208199089617082978419743277063141275711809067447600809191909241190579466494366088441565036186526849415726833373104753824686721356607091687606555315451067850600727841892042724727275550352935466012709697857448144478365884094599482880368973370034664874863057774168108695391377371561688403032015285363093615785869016754601459572908827477678503472410121294890259368132355187984840731535525170325167161469446383742460426279468497890104753649298302819347139547782916974945048551501853665589977699464710994228734563830631525487744599552758688105460007104475374485491683118454790754265173879826516439631828057992658133752713258146396430432528153394222020280408034396462323872688284836920977394663945399107904684285607000942165119339100764369733563356149087330957684215190116892290713728895988679290213027450382738706302342374885828821966356456843172224308794931759212067404919415136082677427202729311244198840210257145047226939921366371961111289603888177112877175932577685515872650789562565533580668657407138086440035808549071403808346837680982354056419371120583168461967378995840372684302095106666372531001375438532008754290670484695006007815891696793074284058791200453919867287664696334949845561333082248799146005158456481283887397274651362097132558064753728904312403083643972426001705341876357277403737803985889678048612427748897837362505204197283385614044804329521680006239667063288530611119331366768104206034839321408453369698661851480187894672498104102199756050802301206140393549955396103352055299941434941971390525191149785126909311743777113698917798608317334560216863343778713775460708916367355448519653483517010782927699502982670144812351067421144124294853323760075330867431562071003063787222655316323771213012102839284927463900096805006314520801083978649714495375295998805808930190858035963175534465596610953157016538657706179229346046983398957717106927931128293303814274415755788178244838153582744941228079220876780659487865297472811193438858238470439128646148211524968588606598702123916564336720132814373669598669482497927115613402634009889424966389636164899610017905946658242747608776775579757139744840502702618003786879431816368383067756653347361767600389398288692307371021060116487913216173349483313720781248661459730949954600402326483802364609100960305374908497556411134516262118015064002793453943192097482214973039821069415762075396349429783529287834073814943129496623935184221841712267774554737732836078137521607512186018171764241535721622245629048085594462793456659814946416104797620725365585147906305203450245161946649101683736426698750919259283302027898182834137594733133243681174520025956348781765658979605399371138243810534733662957124087143807211565399066294723259526372659824915961075915890188350992313902695914285006333396951891467172257219265133504538920425621610765762755163048195245441411069530894058122245270325928886238359356605765848082535348216271655994458946359900803808058020158192201949606216706145904527415002545770327098284113672673880339442016500609990403626196650718325646682473030350406978049433452183068524266598168006371756571784690569783218441939515364146683249045508419458187611921521740038598748610789762442707963244901538045069380877590521906083383661443589797267168222052176421795203449696999874312264467110675048945682474730834042604543319260184991631486988283564977100032475258966188180564517846723690080442312156893782980770757561095617063966853512929379048800013252354729942243879838372525037922421551960055069555699872858572266770062523065708464518550204817610525004668916143414073414420524137671985737606604917082135513140839906046006685113146400286510044890910813889329386637684553531258525231615736112187580978691989428004798888130431786675744469578806959934128667836697324497599669098993772645867144688748923332385076798767050126447420179372049986150766425004395208632951914370028643157216006727878102973956557143402032481964586034936260309319407565144790589245943413242302789608687568800137330891923933397241421274884578196490593265827189991912468244307775847530586731903271102433399967088585960885124394726597786612430884418146945240720003677714016228322812471133426344046717942455358159067732607381326474365817387219494047664004573350044659615629286047485119555412002657961188635372419051936281812282874542396505707001445453533096971033407070046124482419697573705011067936456862305929206819762947552863041046142761561266765862350043054031848595498665455082820617592581569774661651522268639235526622228238713438913442115904066166970254998557838468188886782453260033436352708631160185558049870438232923416285191802477272420315585114048686377531767033497388937139666504000094777356674272037657176589095868719447678921777190254986940117641742304362213801747956204339439970188224975601657336236600315636374339047171406308200765588283962613118240862891439578806106377020559969603619931276458362536932919697209961676241693327453533222593831559716018244596886993369487518112474524929455113619807290356732681548835047288478041112856780142552550642844972683434066190140711110943138066099450333728616885670197376809387785902036326314169643184613911212383344251511237455449293450460642466642977774455476113248159747992684872078407405492542269112189691280950856267009775441424692376822399567147233455400469940263098603238672975558815271915484845807869415540589163347919603023533715019351401340097309861693142542789680496370223534875098407716442123123190702662792289823822145009097493046455810218437253947396411245249411509483290400955901906486480463644312644673298579430925907922186201901738571847805242325395088485067495719525411990969027877773727591966131890293480969312033809925124589837240112297168072989701191252797704698545593566853774233644613722475194151599841227325942529053049496487135026435299857069601158120590372733388945294686965056775538352192483999638736744034557456095700218338355866643674990179051026504922871730272705843734476374414562031870864574037807630954570993588710348687883311965512634367653120400183412798848710886494524771778939052314432286838678911598584193024952793688666539463028762529705696818490741662044539198361967307852038785006523798528095835334712467222509172180097405748126303581472046528485686681772206286668743596771353588184614053292975559814192769921914804653870944294804477541980674858753529199721884223087722192898561152265532448256871869004810900369977931002160627287860211298207862394576168194755180730267729029155268549644130297725511263054462760028636103884590482609753617788804180731149113670749654515525653157490973666473182632012173636353718226028166320829393313410463880937311660450775499491842997389373978872538325940472263216621028927942341408521966512739965556249380918049219033527857254349277952052253917639725190251752117507387570380521676470659472977503018703750945237391274216992773311308151370878752698105641339755786673598454576013859947519232262942079852561787892552806249348513390094820385736499679362974362542796461345793157012943151383039317024117063826247216827548117088228449774906925237439758914995702486132475457966024776741460326824968621161884264783653041353164687625080350388465116915303610823136032288920060837309583471882032664140770326096584941821599648481349713884107909188799733089231688688216978369908358976135546217069076526319310066801615836746981734352648678135417440208599094594197393466553126170644548704176211734219613012625667329215612210952393223991097209139421000974629334702902089704899954584192239079196691706347627255124494979205800898676340451835079251073435293977168032219948389260604135974828173580462670093663022525937914077523917755602486923911413629680460747923372683407142606650025320554261484070141495664793545585982585027835695761629500521546695280733641519443228442493772761539304048441774055583657242889664547562347426192534216173457092579698595382383504461594823262787616818571318919216378707746898124273018532284624222137762138391604150138672495928320020700762592856298122287281062909780022264881306102424213868528835337921854240377504968203929720868070096800619750731052860207738601791415152348715438527652630653282641408844388881367456720640406279909281827734739939039769954612965925248993506484938519474230064727207408299136961738262585900743618447616342860309787221653402422044601999165309348271499776702377499331261260998052361152157915039982854946407015220602560010674006351405234885939296706407311369218083523985850651218277951564282425825550592466713619524121566361166316290386828510501000051242541714583652448579789963316184550399751359851559113571464616243155273180859264869719077792029676711543727212444626238430884463036325399021887519865760534439425605943305969999931831827441318095040667701826896147808477590872071733661704648656693760569311230052261842943223855332158742502522115219720937276398079195849252808206292175446516448522519512673355531382793360856627580599237320750780392195221712914040251393646739749025252045904625975118569037794137910878479319472263625107836333398450507803212369740358270094609662704807238360275018922286257357891425545880156661626657782293430902221013702579330688102089201358189335119588372129107939723731278310437187060669466538372621990141701875701810524356675074530559730745868590764660171708637760419380869099797753318891452486162989430454789200207342557093520447696106607375015718295205601880943246359898373769195287162677960149907548085193101873529066004532599639264345515677482216014941849975953816445912976214356177300364335980549397907009756697345878344643412119660253972622182243522646194528407212313227767816376411013688272231083366244786998481863393621608975209674697425358762459611705238241937697552289168330097593909795339605882092766419516687696705250061666590002126493226690287000677743732094326708651898699273014862368444615684590303643624977161268079705824470268921730525755643974587531227419054138083512454120100786000397741669332284288899122465760054690287363771959169423192742458119177102046698042382443278342019736603006187968498240683924048837413231148161219107060487730246684401178154989354926879468838136896814162355681055939489237449767903146156191938897258310183896076441955204013230116643107845170638224969000465189980230091346092411095101314463082083818570592240581558932156963412484580552359370023829475626371443540430140858378234602964147366530187773454824191223062550303200685342629067228742733728238806831767664858708514562862874715820203718443649727596963182889774059868450931609842730869892647167876577469682057751711290083007953387360167439912224099351124629692719741076866927199475303663997581605855595726290497143194099021864115937120153978706475256574178902304750449920844760497048270395201463715973881391617679892313525301981138417680643730934888869807158595274793951986336735261862420915064590314864967133255452274474709126786530940889032901931164177239933509170754027169597147507011230072168910274420580699396435306244263842534302567057196150553482842368518344445309710024845597160230443575017020391191349743089887434476972365497489840672539185157211879223324928314111980617133216116688845064659631371614729070218410990758324502952229747349791612174954388168772837485555543650651974071227248471579140388331722765757229911122111596082973132345191133476368846633810438574573926794090610634199296741746916607353816703734445750725347170019851519094758652960116005533619676236864880897427681358969096929675717278507498351576424440304533267045562695662656541649764721001679818144313806239855664440355428993541865051229042943908410893288032266499013694896014890788237929199354138966228117016074751110588207763959369450661801021693420923451107560315231150901573817942715157369519747872661810011251270865800467547164114597580940528338544665861368835515365133619988897959160657437846888709784419023954505422100806876603607278646011076125198001051309075590735672204146822892259556865386127579035400329364416264509452660919319531821482584962362168092066048302238076868687810916208597461276447328266229679823349592606128558185189537612790907835428367632419141506255935054849648589674260231557271446457700938151061455290607549180296282273171593558549915340678847126569449295576395536366722374320090202965908465603196826145123066605776907143366350261089867684553626726231336614036325614418849861281749072512001229871516908026649079719328771983033531322885054979647831687819822123816810827314991863104599575988939545025875467598926354194226035178433684454603031707218614135761213553148057989325401841664331298117297934116054131617599861278511402925725732197430282058586399526647756051422452637272519146144245893293911740040763422126050256866482747664635872809970621230325498816842645351064421290939371771694928140422313976378113268305180299407307490145956344213216052751331970897818217356305829728914620952131164146105879014447200331846955511741814107139670851599278347005484132031223780237243326969701498862134834704226587302239547603110254790857108674624835099461787762286464788798369751519839642382548772759132469118370380234747856730115579135653140774699381294404517966433780646781534780030138682236126912242112128523651332326737187757957742389568702912656925065931966912823661036079842303916784195274869219664266119184169740722636788807080102992825459446403674003434197936154491673219813064222698141927191164580771073373953435710066710275648993145650701714613808424905515680594004134920594089241953304823952517707359898119873083645260581867040951277051653781178627631469020528396494255601274348885919817493174185978588541506855550883186276138397407104800755017364634820669259458219923726609920775827415192984768469838782471608111937138718747960372228154554309003020140479016756042805647483123472018607006837496499030136059115293723708731905655503555323572906852328756057454027022385250103445086877912535423338225117735923212875481478450917434570947170590399387884372617967228554279559599186195516941673916149669564661208237720487465504401654714963174132043713517635687209903815739526499719211704901229294788753384803692139603013613782833818303389061775914406589208285742388780151574724158120677119243993634469115786703374701640013222660689214874922941642550310190683848371272894598993189135228153866050794902617698101937070992873750510752759359624281942733170178452109760134857020525161204394026085765705759502593597875049532735593414472127192757215195568644382456160715431074754178384008256738211775665479777515002101244770656910201563810104239084438685424602478204770408187459916345278246862411533337515560906248010554675229359476661536554679356693082798586997394851425833872175415547409489471557324794307417380645447702192410834039098925954745435015059966898039701429843885645962958848091264233368793435102658710446546795423798387711119400440562480996838858761769637079390559053228195494244386688801456019182239701659950191451280473122428815978489772953671935937446880905796620558412785340500451382182574443999322918616740250862561978903652484432279093904137620817369702844927199480838000747228128425597547353264678143852477380444499449540865900636245916070255359448192655531778564575002554813570192613521432967137491897645676248810812064250958484885707476079359648787039843826347748413891417016914436851298954484308717295669371722295803921253609067928698430192242435232882397129117575113588031879917716632675944606643986603483748131747047198256177515133319697472492433394678187477425311790251146334599890886616856204797469603783960852995979721554176628419447823352012330234797748240976725414637517346678998676849258473572658590434147546856714256264797017404446638933492647375354355183188669060430818373511958245648537002117853592977947706375944737960997460409456172825226091666064629267711574340629170068671819680537142933827743503357734851081525138778274849116706827157210395093514872559007227020210500413356481946743090708047366101397089263785372835215523295413617059095784174388337422336455110676646220850297814314469569533863652734039993032633574490663552167348331464808270533133148260071224657291904823121246971534424764891227543996384264605859228118150788033196020901822761938986342534150258380781771189820998757912870965591158625724713113541102766174936554471576788775723544892992300074166362062817661455415005425098738740099717151324820952598614209954443326503001659425170511839960531498100916266378590144963975329156127573380374526572844389067205618757360140881590600709771235115963268637651376932367879792918863830175366249554816558992573298585399864745711310942763882429081474694629296196269295469624473842668392020926490198567969622925295171292001193782245756951613751424454294099036953875595587090756311752074786800474186753536849599756929873319365401517934737600831925158741764467002469193463806121351375410264013630281087131926830158697964597031601164034084014242874356759992739448414262642148480010297883015492770949670123817584520558372603704005525452458075138149096843124606330921200836190168921485843281431178498827341323530153977869379327179712350064162281041882991454342191910307282799040608580815056038416562993916670340479565598275864962261706497807173721343298820749159550463741696197449551409029020141851221860825213797435186320469151398527746443216342405937956108823377988469187408620725822193770094417341856347834996827727414607250957427401866254313826651020343962690087057934283818334253861696489034756248505662383422973650976181645834883664472393042390534619945957897613623555788550641971959376564296757768631041470108442330414532614447601440199326928551785449336137799835101081823825654524211301185269986408194807815031139996301212060069280244122966771595864878490329697539635518094642221450832725173555240581892957271166042425686831367268311715251643305987644473294919436867700179355528237041249278414597661287515229554082917694012003956721631368573331726185473410922715123111874693564772080540811845286388494216116930086312350743571500651373621222931869737581830479897506033996502837153782372795684513159838525191245949527959395264515001508168373385360338111667205403964618565511582360373422613393995205487941430154265728142082122718861281458962556984439521024299743019428789714485357388745955545603945851990165272970065079575710470156721959622280754280395928140326937144764108316312954197857539844105742645183797205351545755570173575911610176088906281036937914720187701609959050439027233900197163110384159726804805899070320487303836776152374849696292135521447924787713629286090044647399594969373714505345152525722165730380975647351871679102124183659645911750301337428934237718282139904695419877937658524012503708068285620564066697505932441307691178706145145660199998152339993045750801683925702128560219973683793440697884321263835488148659788905264259126199817749208882246718329482620195859386593658031416016999007269634230033988666698572213072454655883782302872533339461003731804655236817802181641166931239489306233930904903048642197311250439896833954476745352467752907361800715855288085364876488134968329703420675801799082204664384599081492131503756079199304361969067647229416279709329578165894164340625361739141791984655571699899382861107690530604942851506616158140026086334318199606191595040202174688671735151930178998020808371396585808293104418439160033406518013345173237936609687229138959725925153184178429332567331712177136940970204770884023262796493636616889894044037481121034486531855689720305690055223081608076492455104465385509871797093971078040082574947187884271659470304655963112617668199470847894437882430600006442009739220528644564235095781134814812611415841732732595724204945168575309933579448212679842656825334367697260560278866740701431245341060352023880194804595716425550274823142435750550964655040398042488349865205416806782969213423226164005152721972876968970636725121183011021674653578069389572362324309553596901631104609561818779753358450545272288513359162851074587770303301221486536575938867802050318310601274765290079402830008283751751059497762764592762210464948222794977478343970967396267686320613574985106900085492660273474665361633687802510168216609752666492329925067106861282935053042984756843680846115139940881504714967005618312848737803161541932373919579885234234255690441603845287829013017829138523841826900377477494071325836264563385461965596794869562366870146274936899340182155283755434183811147694511985130652289788258366756495235562214463939378886926071969093804177505112521662085880024723990259182364815124988518776224076331281448056587241839685826530757563377852664986289999998563241646874808892639878451554238962586094007637940231692657658828706187699485713439330000718256322578926564230768825657250249640717520580689785815371144520862950712177120790670361809003098857143197714517895268687359796633142076120054858780472492437601370624855001308302705210187336907227915728829136433493030981371231388941921640172854719998744994636597818705807273226022970645618721452544615383638255111944426804529938236541385133187166680364625522197945001836670936247312027225987640587128256454724385226106194805156415722662549868295864085146188972794661281939260224330962585565674656930927036685612473781984560042456476468941649443468217456645125785195252243020339399335247800638105708082135275125293808761344022084660826967489582786044285506131195587514476550854073404860905579955519602965335757641468102789816602869237245949318687543711972132283422942767851721284096252488406069812244425141272883161093769960340743179605870091881810687688361064286874382619696273718372498302782093709983287389939527559832044016076092658813179168860396536289833870249060803666637546614987160664077202040125748319830996844551428006096945756802383776136876142973355030264781164023177830166200559736618729854699223734904349059151073391702281577105264119927767100495600400308804877303292673536422098408981287148442877684191868978261921230588956183691411001826541060688471472137917921110512844667645947955103080472020506259376122312093889984996024347480602574761666154944061949762413876876956023630718270593749624072528884013053691022231738541297397390531773794520652426855696863308814062724241527251487877809220387570368601678712255385260235385998486322431684387689261994088516656859938343261289930386893906165226375655047607661731509573095817164371725131452048044809764732004395979866191343255446072680974803623356926301605179372235751578326951844587900328566947548766831561300581173784809151651614331378636843101587643287336715807437363732907835932928137830440114286626541766713266908291214859791447612441619117163993057599370299239950069230379956489452841039389844767598830608177121500035834072147882068836192813824744680564973233090125532453783681046057200131414358187445245376651319074656014796354869808725934093628050913570812304061591567879008138393096149449211594030628498445270444548655233865106247136618048974163970359389571161446271511011430183680888409082539630450080673463243686446317382429323726670922331898450950370273809571909167764195718389375539229758496551206219333394040655253188303964332432591449299203559582940805704079293498423290154490150658761188920422083040676629695447428418495502202330531465797376588538308489547011844748462349396785183536205597000115032530285560340786103996121853307464342590435027151424088924119360680373881934505237091766148861798920865336728869385662674578078687375480200275346130922627097189890314953118902229739900983259895048615338112114093950782603833865215503199233630571686951330648302645988649100768025784865863529872353279017093078016820477432600291086779524881048513228467840944210678822318756475254124487411531597095006958403815032088231630763658760295842432104839369444775558761343436046470553884314717209304389960294627029403735177601363540841818748001423514916585345580218892764537161361802603769567304314575309598218376957775330276698446382350781788890060664150781489413908396119342996647718752241297393721636834559419406698239804147124974503138496584204673340156910576747203361599661483301782369247759630886992182798885695560497766627853660536166727749280296212277633433430665171764574365906520578389964738269095736381804990078421567080819955845143367238514894088484898890093348268310899985792763910276769424793349069367739605877692961201993027411411748673921363089744712591334060539472647726471759505234245655740175850568751937162185627366032539810280391631243808318150192826916630574199884187457451644023241695955440296633452100093819439024429175850449561297491256621019754661822001479091606605891246492004867410930018045059289286671732748000054276085672869956909860495890206927453556393608135291463138190648722334408752003006452348939433090499006920021247361903594734617480011494561536817721131672595531620798269268722801861705588877597065372358225083331364945535419523515225244423254090256038581168897466003917174005188318942889504236395724055387069036632858910924708798149233003405478468057985368983278037094016163336508318234535150081362433655917833281850779937880016870719438538256556303819607461818083586660021129603455355468871453317308310687845169194550303478700029247053394455408098326003299036342725231119229042045202785772868190367243999226347367716606521904247124224436808616174438692584164929626749927718604231052964246974787815698477351968790467839829316937729650968736908719250496167347230411006673149836628425275846073789376712615029111287333230310320218285755344971090617344060780073892299953088584166627767956899255164716000424333501213585742613158344346062069468633095848316316952629875361175787990796929831303534062584289487182590529062512348777875776896154591717135816196482670937960127309054896195510674431903479186011592510100930702877370595552317678589476079128490429971701808589782347951383741590225793078908760283910120264380735908520619013660158254601883103253581405488111171710788924881337396897667138446975773547718263688144459963242361580881259792978495304190893537877752339544605970210032245537028085401861459148688355316541597474942617427876469486247158862640654331810908502169665921358622089378926952939495893203460825450387599323927816070494779190743704987623005932714436678425906988575494139969896946294100604060626604672921536852998057245050605752503513407483062655776121119742592113359838402476371639084039442003407716850020465100159390596247720708210543983541990256363433701888455552497134137842823594437037565410434102646141366989824968110144302966791383066731473736233189988806679821652416414758834141853532724999644536281582292946949266771045993773411289350015953629638976691461232344051872279571002506799515328705020011134050959813344093602147946852509141246742038449655113172330929473762501574239286154718262752017041553923860079248310372849090675898073607466128866232468039412919381680266573349805344306782716722855395479012201715702650188835042256205613734761380067847122356044726603585889850053733019096894178826299507429216217560391223892866291356888045491074171710362666231212499971024917575966403802619969337263068572773003585758815694366715762778997257406137884533964654061188115228942142014304899963017477888642996610510044383276105451362445070801874141881200215807564018131332770176663670927999570784831407299978335045172153350330872679226917735469810158855880762374031063551618542916086815499834346661366079781120868100420881548570625253213165848916498608587228313187352534099199382480270946446284780969558251402825423367561678521845156686693071507081269809674927186645706180763444950649392360426129612693345494680531840949903922883455759944362887963167923774582429315700509158566769882431008868462122691980070961161025351621732542293619398638233107150536867983458465738999528106695342715332900078657819283289530018896182651283867493684201020678104849227366800106638787106477481217904195860121771915921907671176515135350245766943840150462514542242214088201909344147552566304811929860436354409793233511492851992992546628482727381044077023137118266745791249856537613849401910517260080355820007101051386975165187321132481771029980955315960356708074266635636996095977271791747895062543475452968820353685311483883944790420781440671079003169438804272467801936330215715425380494397385865672346205600492623300867362022440881610053126494889749001873010452625783371300775048602409290083367909206983151127160480379980948866290428730810760081653899534931385970531333059737577742434380024791396039430712529144195458707953940247356297873051197065022173462256679027511955193851044869135796241212432069942324931482663308105489385674044855863909784517123874091562818964477819949062169744075092200955598700818739398155360469791878042109852254681066925770453281860114135698513106772702187641155279539358000760535828522865310512550066762342301570451360882000172185193104188446613736600799963230240220865081059425599938930431669333694317491816633715380841524924627796056224693095571985597342187281137817712377379301162167289935337502147561863037158498339905723140697333971068150002088751137733359387962572341552326496708202887733292342650094248967919861152315982100786505163210523208225360533429639874590699871472781943737171278461376796102763581367451370098797618419376390211979520278684914917039376921931104939819111840685829659867248903631887290466036719324467927377186141506630713405905604095597473924760422203257224837283643599265547729561611652077735491666863495271728290066343846821942748596654024217062019899534581189967918589846341191748156077711631828708668547103693515991660398752542684834118275474844421241473511800395172930310622384896294453611904900953492208543274711632030084105783538671730372685740806721348305697934258765641906517524508471629784122683714145744641151543749694154820140140784462738700382873928656666592744370146161342748885745675970234704237968342364122091069142154501587557167832775434441036412472964403802864743521139103528766970706732146668638996440885904055664722485430319607391553788905984358885683489546112030349789440440098346356030449780438873813566279378475493016702389657109165183502341774179599009845022144237351758180839139690014786780706276906162453941022665192792274640397213174603724039984910534164972509901794879739972972069048244395109191194410498880754242420884375385987820173911383178333829385426951606820006076904301197376239583720326411417419737573724302391752429286447378015059337167755548251863035324287013449973461551201765862504558583493240366803833180419601559641314562916241768409561126251068786930928654120225030623122255771659209518462571125770657306417519413973938704134644717964018085414870385191568012852329319316791060276306276287079632367838093445777407058760641834450484181702333998369048571225549327295759239011913835686798663944107378714678530147656976967592926417589837474956619232082274119152692212552987868196232815854756681450509273731571315561858249711629190187360034925646680904991782253110830642337717159342082988562935698808254708041698607673870671122664062764711712389876592929659895752952601421669274009908415024509775125893049683575431920755233916263503658129229344292295313953128062876893875429349098216419259637153257531535681768756034646041870939936504057990633717829246262696543614851194506775126387088348617774433488102302677335830203674215457131336761593973377912163143609024030864997663470409718286081739895245924972891113293763663011223492133014369302427826117523471246286734856381625539924765009151849491501345597414392617600454293228224749790903513456888729224027873636332983576313484847330991206898216244393224601001895062140562120732918660825643303336701872803886505407810906353759413939710353624708952408765897232150061310347226557968775669525439341581832181871355130249982200940725320340213050129517574073004477374124332852552364996745439254937041125155341078201224240385045381419054730019920853542571020033410462316715103801080297089637767057182482884933193552770135264715317493318803933119220934654377556522337755753926898186194993311217852022350266273439758135290140687869356249884454724235927205175600916633817577990629240313090194890636340842088154070128304161197097023052877005348462404591398136293744435934981482745909521813181348660171971664074277530983951698259902922463011205127165968183946561652483858881796859327129956049548207195342906225805412605899171044164676831486662958886377961783069722741643692443663446253132717838814862683498060829450397207770239652362536473155899821494570978780504765943236995444106925202306962887851103032143019055694344419141892931063638828699356023672965194565315275763180107399214467721919737980966388168218069760601087216219494576025640286834188000800103562217033692962708291294806097067721009687309341863898307500932295277836371390066823083998447685853455219873841068381443813705201183216918131972059909081646267980106730507114528058695441092412036814035918495413410896265708404705826547750762522514262286220817708364070136236920299014538122086202900859927349484527353916148763728942290676357953971922051277472671735420845734550278428309116739643832937252194845845377090823409273836195996070080122760187455883936473143121610169793589056842532634197566808268539228931010265626166476356829209948712037085616565221690158667208911887887513315548110947807853302078034649636312189411512931301403290515878378000866688434065745196215723258955677529283371731446336014654593386674599166830049804531248506131505235144088679283223443238685852279630455365664080855099879808054132504471322545334395992870691694849376490624375993199704764808245973352653993394489676158757003697292863183438597019057462603695112159797318685256101808890399841052461954633916022970772737680912714895859646003811181799844112757580023711229848251720479358523789847697850593219189308912220050085963451101930945585215653445503509041538221765258933644620103367494405977287719119910304320747832419499809689913545890693108716569861501593803794364997581918777252857323825169748280657926621034614272700667198362290823388838154827047469758534924719045609279798765676094024560496825552096741671320419229940458101475209079727945819995567719980836035267988577857544227570188828072767587902829378646458756866521957352427362802443541974752862270897385155553399293897526527447419400359062120992980493214124921002077321115767361876978931975506716468130826194468879511097605800420631121129556372635619376735805859710356711971181945998430577814784300345946094389719684988643521575894227494820707525853946453226888857474055864405112788630248943979301816806348034792220278108286125655357546612616938509577583765746896272524004638768490473511407149055445300258499081945860910293939239244506445258427298429534971052669255089837023662732054963413798065884417129852402630706433381362991250768061977269904731339510456167105286101190427511351711750502762445555434161071833947782431715830941149954693687177332345766003564408398500521827602989055125349592420538520116119450551900321329482551936501168416280274892495716129448920209864720673086842425246916877371460861665497196063398267596213323425225504990515655645893592288961831470977709576463382896303685675855973090830623433775298747585415800604508434252610114209880284904827934397756064508469201759000714317467580962027587210303311162601321065083870451001947238058966904766703186661953081515849817789098370958960866000009017659001387255664864783656374169576441725226406512507377852810582718079238453702842387554375001799262086975672100523843532875194512832861781366015742738959049919095084075801846954162399409122150990507327963884353973756152728048318232262633738124177326473593871498806009249617710338376257056261139617845745482221636006050169339971607179704359341197373156470688068292597297875103875408579643511056533107797827605744092542623152515946313087949808062730062694477410537508680692207036466744828376731798723032244449198342196360472124778363148154447073472379230413947583838376775721322371571824380257752146077414868865307821923491950640092494213101138691262644744742069263958226569204359391977614210025652957780792553819990170496838395198451999513743364938513795609307476025858864457567931829401971689783004199115153995687514234670233092197770948538598643354080909368289651315000085664954984848902633700421099146840280407723486401301346075658755276055242038542008317023191696369065513391870945750313876329183409980271539545377607113469369948781731737377639387413290428027204098798112546306182884724854354576122660048747441955018861411249214141345405217225501730832653708407795455667211659995892818216223390069834436447050703508202074680138616507388814861048220675519124102951739324728393006138094359440191698106155614737392406108759396999471046041237289568608457751662446530751185338633798042099410187020944881219308519237533932573925344381720756621923658938771982027233343404433038786111798270092596294765728500789697538952877202028378722095991503399686120561586661548809387495644636720476357252294721362637015661611310647424410953531160636302268704462426263974428463103200282596039605868734706071415851719188554666628637644308218582795194221014280564120045249356680784870772621166093140673278181690193071892424811080755952344622142435945257704309006822870721743958291345381677717049928061495061621029639400649528371092821967525919242801237370130518434711445774046219410808138974334215624122965951527351315623223101052970637714618871072602326357179473077752345673362823426779801317874431242650439051335884821721702279746808550458604248672194839068108200914958736159845334323817219689834412634711109060254869439394208937513310211026793774925792267794780025171195262183637524231345437199512288190236443164794767465384012211510895392390680841224848132135404676440241444702238150585067667560712982311337909596333433967706605893341964326950644812674599968491186238013643966137951468452450195623278865972718107618924667652426698769057136021270780685154132816365238602063932939070931052125856695556808135055803061157141269853865908656491917740270747508701466201249334234399240453359892299842921354804353358980031013373436324787159179449292522130681851284269158896030729176828666881359057477389550409047826298284018542443303401437836704641471351488495547898136314674363809960461895297046096069666654358342003432009853249735438460563558732679205967417739829018345403652198147506747054373429131444081553621328210754733921588812607382007234884896440231264634648226159974693694173679163427134772149674912979867224442393070185423880483195182390401217852142822989750104871997699523434984544590673641293382499945258581148407652055575819559753513324281440053208260588523845848336441447130616322032121679742898451216833325439837769260002915105940634053791220595919882149280928213613687007014323375032693652868236646128983269170939439206361297722882935102623945497441012037798354959631011180377393399748905955478962139236712977138812884375743189148882067987098315848501813014528440315466110289731833927650427501770885417649889123037917937988091707443678999210661196657637871400907772790919192074518812235073659454126180170262683442538787136676998467700726835194069425700064479029157547689698139813223501987471959379225161225787671169821452785730052490311099737766106362412765538499109893017892443012232539015318964777976194398054119024885420895264344138376166396364214451135052393395302445227034121322902292702498945225107250147511284901384369408217042981152861971316788841362186758933188545407133480533119451413717152710928033707728557718247737092684451293038481624550467018830677989444911049708504656153217643291668423970008048127592642388390539848960408526117066938897938855124131692028022961136343340248453548111840615002619879068326716177724595662871747847992021598921184778594336576017230145884773443158638171827921472871305883603539469812191600379893287505343370177761462618537131145086016849571493310287145462783433247995052571147359575691375494869121389362144621712573322778016206635970558960241424443897921941022769868438947866316322252945695196030739932146152313275598139251446651815886617258549485854692558239490898214833110398495371999414243085661448541668034235687533799392336445166976533431717100834985047142469854628897984251451802711351639345006962944914313296795591461273271023879491072789433292930412948238401772036106780983771700879003851418747948644616715212725008749002720805280411893665655705024739101361872296836303994382580364541507614457305138187885154265196423276786201171143061207055660439833031271386048881531996320788448912720859721089264003122668726573738432221776813081141992496683028876466249742353009112935334022770521821778791923006280369396966413195983123009676359431975048532166503397511586133511072281647577751588134796840229235652823346629240991727517433140451110951963532950473022566856236304549630124137233263187917801479993005684328649715138736298999397522528691484024153839700836203120023320520519805804451304242035216205162945390799457006494363799642592988721988659705343789226237123203197945187141243100514459961399569585697807670039780670840119773933968564457680466484016963350630120674664213791679361242410270727958444290953859936991320121919824828128936102908000714122203127759904405186377941204086280437717589780929867582668675068182163596277451044363627430163668896387733476256437633462463252456549608786998224087075350089485727100867540241972259778951784593595887646873743330581794973091438154395172145874299258439624132086783175034316090956713965913776652311056736852540011167111486359857590705415511372832254677898715660504590057089810292838777370320207395951979989142845222313136972084737210979689371183220327026768717544766256950547873239894259173629633044400124777043378366277785712332737601070559736154889301981397767092194412284151453262668626448206556556360423969409144363402759002858643556773785033790537155867396671306311840365148798362639524924567681807197117741952333488698306640479297461954645411776956400957978864349258494665702194216095766010356284057580939208613291180458864100992266897970866190557604866282876360566597135123070904657385592988162851085645206382738699433659055610178004503401995611562087507513190042609588905330936819934746576088551708199024446658089655093553584465878361318603818907613877607124290579144148079022398626132465920592970318994881765319925192721165273054975937845063162763327582135595849108631395258064235900186912356159286079165897445928033681549535597884206998941163019496043544908476130235448374259684479383885172916762145229924714941020631265965466798260596657526170262434183827745417746968535752415241667674574677885003369436647500916172996532679810787114192937136359300403266238888450696618449380041193371461886122241119376949017977728692427354499057389629307648083584505558141198557520279740430892508086816876156396650588198010269562134913706947849664138606462740980476517388486445728843719592154963133241395491784260726637281325240419712099409156303285891565180292870107157311043502117333702931571792988916616098920202743363813044484796334380905924793110532410192030133149956794914843741961208492874317870012305620462560101352243083311186866907253937469416877635810317396995922378002840099363311231483318823107919408232428162598599775794161349720744847037987417374626199009864572383600241782916751804098954726337143874460922969023021566326545434557009210120452306293819390679189382964029130181207375752916043654077692737856622158627419330679321621919655298269524448606939920078986306811862197736451404079814267128558605668726030921130568942653639523949501488017766133532866454116158028751834142272961693125124316985339673997076621839870607299882033068117898806791416520910845065357211599950507805125403291091034840387459923430891728808007589684024533003969060157512353162264832937959731172405534821429781387868775358080950546756828118375110843620375787136523463179305009070441511378154109083338744220842117489731778151438105511622329942898999411894895416212256812059690828960211433181977958836807107484050904417390540886457022083153287177546391642996988959017466638780128549707258591303217625992957410995688969467478390210820598982760074330184139923625483370612146352838863597569332162743650948852021809230646487115654809016165551954021149533880605086354885665194870606431621449765826472854794208893362152671315619370598158167567891261832673467204686898659626742201883407438058624580839759969656323187600199973285088753099437149524620026664167189567039210799048428863436357807757347744290555069283112576273542635557612653563112811340428424575509882709793447145292175482969758901996753409168729171680655698767296993938711087780357914143613159513702421786917531963395012515104106075218185365912907581798997903466456861236069164479389285730482423535821837477962568673017177832357834177248164151849641107521897077771866617487071666283012179434882276700994851951354210312921040883286663934286475955721474883314128388761815203298845956401149376319976857439687172515870021285537434760725157494651834570548888266027476272726404490997481733847959152479894983933768393290453387244212935168196672373515966393048198620119566620006300466625895149755507033539622804704424099960141182875254529683101682479103627223901908888199929380434348816737689159373822992875070129972954299089805237927503083814490099484481331323244965100888304269944976471852809991953498091996019428337316668277369795362082507274632849473896259577748882970611577185775445999126985682916231364945714225855105669471209637249002701333237934244523872154523986476970220955655279139734320505942656975452749175640935633217051680904832844379222166638837260588941092149351021993902204881208302258651871206434316455796743924080710821869423251172972571863486104465607398117466074188405773157813464863917834756736900875619087092222741705631240204216936130065418412686304529243425264702278878227315800276040566737542257811943140766212849863932789650782809071093730955779221456555865732942870073456266378644444717243715929752068475648897057749337746840298087110826803607350744583597280562197194047989884290354834469467444653955140818393812661902067993217213534183998872336414003562958059285108589641522459476385616164810485501657504361874646838951880614745463642143089247097047852725663860646717991449332869332344040351631979240196229877404151687746933758870918216262029954430798468162489848270449546518694073131317538497970092599532902717816642122488180058175773547621761087350937534164027329191890926504677490464450270549705910556656676781059989629924936221493443898963503284164782275972427811702866064359328875024483177876052956207201556460008814515996918549608577409668578020841568126641582375205826490621026220549059425892162460099329568551434279034535446500499597940450787051035053060435679458049574557799730531267483977048155189383376648982082168588991977341987638122079976717327709713436507188073924187729374949494481526938127204551652322174917220468454471560255213706627124677056877082027177988019423789820053999744814796097063355376615544330272817045251952974474231398105967423248489428768949049929484153494152410359825805238621352984829131018089289640322794385170011553903076090577092753831296024215147257779210934346416803690945131434193511082969534945553224425595689622511122936848127652098600218900297101269201548183675784336753980918354952871973575336320359656028048321427543009621717817349543703223887248953793210464057577334123015025825529564458337136346401337090900478347398629655817138033852580043014829137842767659793805738417411523255930445362279742342694989633306736470409802591861000186495350484209552368371346437655689974602937923825771653860337000709805436562396993276923572353692643588319087911583835731032999846923444759689427622639432586860238194524553023567734453384793951009480714233430586948910490666587009360361191390734949776849339587978430745237964584966468871289908662259078323284257698576782281070194547308963247697012081822708235383491909106182947288819815337769863579564405482978517532869619508430045008874091643459614179558945861229049396765572280052046495052941619470107520421838414800564879085393452236440061094338549393623240851291540334454183055882787746070439121453005176333663991436000041593966168628311325796535685723780587515765861890543560727703224386116487343764312861799898222662995732783929838747187730913251468247806077225639696283653111143644159559383278991263105360539905447429787418220166944129173395196601760148262535063635806914651730634204000696762201822627938007613222577490047421339879362182452345186996947930827209331139054038130229514026739641226523680762441729445234526241241681356080421431869062194177653078924184606011226621791673578775210616586736995478467541147979374737023795740531876429911045886127481765172209249717674721143355680083381727941050796467870493190432680170793063814056131336912250483530850313303141283718228909553545297466626934437389401130595371774901735610698570189376275143851977836188071722913356442329496000147290172506263062965832162183946380423138129682356474129137189610323250599370509759610371922401605767483663841339392805898039191673946855409661190603795399444849801401199974030748293317746378443780939568979078622506345185887024505842914981259191198358395529560761307123558682492491816250162987627794920524511609043345527157399540248923052727387641116102698290349033209486286481890281410599457270848118826075152223764214579654237298986722174594774820781535384647976546127774625331470678380037700082963098041298048198173525875726912326051368391021386363266217268781741059844898435896668218269331866206290663187994558265262627020015072068663924085121552399861413257375048739445362029007234887120625861111068173741087128913513275189884971411058807446153758631403825832986610283620876456281464852248600071444643400065262347214272297047768094953539480089696569026380238804548655232629776342225644311559971687911622366828063778191673960734754545762411972082734641086343196559427428192417058394406523994538721029156414230476543898381630988836986854747584853113890291119612832957031571073611573358480439616049296493545027018771278251771174482698901807242377858939953714378510117073175056771208294907133638774493395055646459069606839249230454087846835879660668852446559999020810367990439784268624932766199914427530830001900984360523909858557727093906937867416612080205162735128578106343463900863778279866278228995718385125772539965179207629434709734476810757188592725938177249981708773752946230140290665790088650130591650089396327240748206468320679083571525343337426662327270655705496186049112327760388194316221320550451437606902771481250027762483813562749368505711407257249402414564565150232083660676599447922499853974175045257783649885904912815727009295167186084970075860792349983393478071013980854889708633348445530190228349861693895301345715882197812292257857555984604870691796048055614042258417386378817660158622371303997480026143435475749152088672825962157014690125412336088469196458172623329505376062646135480965086597665747689514905107311710744009542253582276527649936809231013129018281516994712445936639530906184488909359538706429635510709288500490283639063488027645606894212187671711162658624938150687349764306227249876852340385411179688386013071255983017955143127209165207374286263552023539984762461199989293905037292367786047725153690059262854220251724610289156259913089983099681379375451623877738478964632720740884700644746074543929482154765822818637214179900718250319269308851399528893695752234135704430884941507825952033189020887347891647478125586356667047594665091856953095495103433413056011987686192599874020649500933521608994145343543325637347862832497902656432907418998023241366742530466176513261274725797505731832316478536457951875660381548609018749876757951392015443767569224459510287353610769833988267757879843916728724346174077535091025521691038872501230733626273253819031046255068102256227880714353310575296424841120581250811289573558132964535541550760616767425837375895438182496726693049069556935430846379262048603787830832862448201206258691208031058107800688663721090760600155448017826542472452106314831019868103797605609475096733423838166185730979505141530669899542469022797957191882374369276841986505492890007349705093877486382702967193821099656637216745648351730479034997931915448172014921065229816609884622934864407299516726680189418849377662834278123731216263417820741882174497255708925273027898390004477671155767778453496681230124747634318137609410172206652836701843353937913777405278443978218844221756608209975010102087680019980779493288115150837271924172480608201576038994972108311176664509850240530169635691377084751807766849487116582953701728433823023949572546528535890546782257087178211643125874220909156787284426953848600940196935206782278953508837560102515457630674925862767911774060550523147878818470025005054925659498429963530739920015931201680167626450237318431753285124376478059764435136361610228885800073439777987931765118893205986006911495604938344116040472092033059974152765689964769014068047644968954614746438798215006087974985513076907516139623440774866187339393730554244434923047698419582833848916147584037301114933995603936571925188703478510310556244264080721742366321511782190790978151745443722549444311228514514974887154435877703068533367496931772342669640478330374832798616610131485891600176172435794048721519044463940866865697467013097773379005585074233739348186839101385244192106028908340358778506612900388938867427801661002328213690547556393060870858403995190065204177689554709448588340798809287313988872060159508096248436307581503880317350994901548506306983188142191153845502388416527167255724961885319890273981486905535023605971133795274325636432230603227576580720846054994815494863742934501179956190114445317910664012909072025377307204758832854427111218848852217218772729343227930218387200483688005099484079029473789842350236589401893732091694111680510209258327233120816605078240275999750931852851077035487139109131714320723050152565711726405440873165750130511899928225222148346017589019501298348215187964104806576262230010449399570426849429213014800399803288997110128122271597621474984603367943816831590590562620439637923097943197914053075374767859179125310473315698990034411113207667061145881577078012279421589254628203649741087959676864201334314305841604682108050846903923786677687192637763453676948225387315072087987413307575368666372296553402870671674518683169301977878986814368184028406888660970501181320349902775898452655873497638404506511764873730451874737455521383725457278271973715256974434241223933476028418903602125461668261643883677530469126410052544010442548640713149388601935553980597079907341813983976746050410606499782190022469090867450333982117524055922279464465510216724519603585472951199669677297544147858875468104099065309268607536315647071096454516669250790972255716060223989284159375639012613650095746205648812994366678283065550240887378569661221070319178963682674478247601727241859928035295859601700000833460156082224636052739238654053722084975159044779105148062583972115228344657863033979491323785278699456783512413134627351281286995571535084632867579610028466490615385888287418360215359040385270226465501175105263950183162880475069063580128061888457083224431827054127021725782670808701434457532422065384428370263569973834000215452702132642869954350637385153627716536278536624292010608659725294115716522498725748870557585797262559876040092049828075557905702302529726840454126344176558473325056040340506952411430355646195076018011623633550342439978580332538092545603804901790536519340055727828487165818852217806433039119715035253627780096943173768192828599858057771728127832333396446762147638512944955403655175651984098878584923524646434780186534846907097736755316161550961306424330002238676904055950962375720759313815680035710718304475776716307660826207054053093658029085064616399461580528605913935694511369339810459656175173497482798302290304247518232993396276120870800762130545487097007896605849211941279029135473202994902131446940998308336397685815399674224915581579090370049366907129468299385573035269419074152633843670370825115260866624927668999409015240990691860253094155641912658899796303455400165021213236125670759732520009943331419419783186380330610424471748934320381432387697420338126163118440626904946176126473755681971742208077154990410464933953789769306433674094369711333710863838899051706980987068637051530062539477154891775174611221916766909457388003977928038254150340160562138964705666437851861564480293876868398934927608626647957616927506882128995813774261995973844360041842374593056042259587462741334689761638352415910511362007402669291915889482132281690089424728574414831191352002636887849555348105999514660193720996785209235868777078567478015264417891569257489353862896597012749652898456311399241582191267963450562618320181495888136278671612154481522303444474035513190457141801443231238153039207696951629485494087222901993094391916744282925399484890634166470869608516998642352295039844387415435200048649029414612047066502841458766512864111918578800193578116899528976657997223051625654103219957327822946533067911014932288277924054142007816203141817497951765845452621448651258593052323937888328235125608522691749032391184582330010219764042152736772989160076009799964712650416846533468625766881517625026946967194062088160993719715989153933201038366168266198639800642965599903582870433547397945268202602001079886315683473581378609280193393549150183489900218918590619136891584445420132631178211351955685450891104589559358193183690053346650650625091021722341986154473259275239367659466809246857609985796489453319011962867838070493443018004958131098214790180819245030156837821209963575073021241899599976852197310630805647814226559787909895754402868053389674257876444099871206236183800150086376166665093766371558265679163883929199402424268167022362974427255427473336115632642723714079918823872360497272644903139844275959035549571574157034275206005423281348781588524345660249641015531912845795269170167955109153753261753849635011369662140699442996018219584493280587035218466170351731092809427973702895987399656405453965124258776389288039213942396449833933243960453221841518414261350680519727765962542066458474906107020902009418270708473092734240066903645921533348774494840186220256897614051509341413886164181944007439781382859046959061874190853443600188229361292716677110801669198048650663876521271992839063472814235785370837977820852911837743264789034599663135174569233827166927631218621913503310618366346051155817052694806418898230170957915148716138611597475306768362108132244135076345577416952705019574560864806140181544043865774821380963091663043192894667650361961232817260845558082848326150890105526260213419397385969888249445844284846994780357757376561966995618028214634127399982259378582810325782281035968353762359757739122602028043415895280114101515463791811968960039064530656353589515878171194200187200437183628688872233885589731964664913468774087912888080690016193027353247174247416494081787646259678757970593381271851205245446204076635284386113987521781078585038389250196915645406393228731607091842017133063152103268928386545824108758935419743664067276317924389172693832037778890760075367148740101751729184845986078033735513810014803673978189639775810276930409612766013222406856186924827831610993148332630820834899106757494023139468056528523373955510053435854131191605136227943355781009747438986710064777282082246464819919179457722423449026463233223294922860076685402612794052512909508123143519222533841524752308763412926665302792972816325686543258678416030827990427079898645791273565995408459666967898737521656340383740135961960777208024857338573142041126660633985265912551500360556784598613479050593625035668878310530846415917766217121802603545425117617571357632721461580400552280385710042984617560330031300278426490691459401151499355287468881245900584355162337943127681615893314561014795240470113973184368878786283441758585103612261259849287177450428827178036788567316851583583429954911515359502143153088587192686180106299140354820629607304041571149003877831054739836995240065494250426360633921137906322261175064648802429620476584180641501446391815282245970375316833381150629886015585717463644651583293456168009991791632940883433177346885999854730355651664536281283556109832341686623979241122826128600455468026840250523138688368407366206369892484131498032231050639592964661056170762404623600411865813325589461505666497636022662687434556370139611702381218447738697387820028719534284058579996702058041880564511116666130212292055174323695508736333607901481954030811991284753813820471553338863812569884559374852151010870228463473914752977265849497086737711015218542030775292391449534001583724399935612364631868757392498871467602024637099042637085217109147282191407580122106027938265024483116612421511336973078239941962443004186513407383786757851122531966031291843086360019664971992176224456429925364525996795250686786686855034008659127725514191239982023937269688491459639942845573874292008720733204986461436872491682822331481374533256287957624369954721270842809460811568714892797900918108725420753530278398184829330051257698363879052252177226019815706901463267871848168973220472721818509756982586228693849117927306465798726898662590852556118655082746418661944191350963061321377269805465528559363329516479413581081288095500720188948220852287863217852442713779306509875780324087747548777134842548962208095739965989633160171077409816129350569744143534420643576492085396817762704006873431561248540015700588249799809426527535718829502040855484761273971797358452922326531513526073132422502393052015649858689625989218666250831740488287070154433017395042682239129117875374791322009918568824730528555715736312136009505291085050082975525257717789627655703805514457500903943206254311738939819119126597744049571741903165972167347241309444847363526019284706218046709955188746182524707534261184523744236687151071315002638799632560600004571523379722495081752188453253560317374153883881360127433278353083718385703521521448402719910084054123224874631255231126554888955214092803604452235215981331679405025496070417812687384568822685923108256500161637472126765858018151103788167416498406921375939992924556148014180926188670323018294492771413901060445311835963279150401677585838470720940598716614400560255872055175970700591766517844518805291499334041676450891040818642425363035823097989023400295227209188119068187939378475643529016506256570746944208565940375078918525829389423187384928615614527508469553059531214250345920112780027604610169552337679711656508609958692578431905488814143059140336023042799902676170715161215361555707122155374700552555134015041779330878429014465181852080091340381872914687873021675875702009228420405232019096386954219078169415685437217502298344069685662482481008367497400325604445249595944216519565481069878991391996636606925555228187234301381921746994896497367733993096234711815934576204806635645137932174726546771251881143299170416513088279655822842395515911056967823814484723145848788644831781038818311201631407079119075072525917765289872092977872125657878028803034034816238924258036000610084264729780852625308400887381489489568874113705883072805918198696614754543344834606069199979025246708247199991946632847843568895154524783755280164397199946470909908410710656452321298444313503657449040334060369408399772132795025024427657805975494659271827792882608014377976475013493232252995146384844169408900327502814234813027579760261631631638638006123282692243033552394557070813087637692793838849808122162546937554161905426410102389839121138075167842111987830545013630856594842367684310112070247558875898761089215659558413349509243347721308232744537859983576470995769465698999987554418283788243156455824796972235412077022401321026928926209018979972997326859908212044213834630669023826756967528461444422960900103807317586607624504061105627915806092575727797713467011416608113204025252150366314506045221114694671844918533691329861186693436643053248977390692171215070956417891209884751027849337931337399198974515976092128115201240235007900821844218173629624243770914978216849637681376261833253111326056344148310001002382664101221735378207064655331103251011869290925902206463845933736826963438169045298250735899440780374570509054671089500442789823074413041931211441373241295422507724967037538780003389141747775558415643313437833528128708802213600068667294290348156978903446863133434383747314733877947028848304539104090077769736576728495834159633867180923027707851723502462346226889203092627119026101789067203043882275886658709932010861293420269205842398267672985496437954014420078376029710725513478718478585010998380231132668188206599043617876360989923566170713600809481148667310174401943523863091698545463034662711460274509710177310448811013147666705709967220914213659027238545664190277625807546489490215828794775671663710538597675007898329674383143727827029235155945771240626198096743527173486923843747611022579780953759712703670918041642827158905973415089078179648579108914066198183012876282585628088648387771619442822933176694105053483077708162486767808272884522144400126854167086304445421156929831907897210374720173829245855443789476876490719174665179307965363838219713074239454015391168196816100757329107846618671509832267029400634947866762160132048870346634720181186273537846213721999522595097435149857865469728860976069003746976815113763346080579555367138770274879504314170737307036076911531545744481569084187839745442255858574157208042693586592459640128605829617206641961462585065256573377792673476415764105290625119826992010024808445335437918583778656818440145833830786839238963728870415525442641649403451191269145948369182943628214636701857505122510639628878291920426287831235361929307489538398446231809317410232743366647620357130700795610835591390029001227736159464177678279137521448619463479401444516679817115584034254045041374150271102720002902033329830718153759296516069998189034444553808553727329548351301131652262190818186528892501524889596609966849118143997149602928983657411636683416547728017250062084197407007876736261568223639339631174920287401539222208682152414844443137460601848334129472982909803334212046482665216535574293625321163694000044496632080807384723740592013961440883017181746986796704714207732217930978780069623321684957721549993763393149156071724605636123677870818333112059195435876393750585635455770099263078026376027401782407729538903652211425322805535931779495863866928345796941200448333620432382514354874830001818401339356111194697643951551050676508437104840799749427341329186484129599184590208234876280248436955160844637215995853963018959205434268632204042103815775726439733144603724212562871520638447352718564684709922602963215858855532046247095943453729636370431278940117003344233874669302894191793759649267460480893278105845095185038322964366841390918100967748466721732843909362233793358578755880039718651682800508890856463228962205478458919000209247957145062039627893430925374482801608553602862967387274478677596028526055362887731901412495844774546661126468824457731640865018598249679773426316119675794500884007940329352187173822691471913485029585286847904168389767740559957367462415537630146404139490862576225594964422664380154232737804878154020974657946317812148577300162350071474237029412568807311765739926921573028582345790423009146681900668335821089311197595898688472685693650950006849934205996999648425917125145129624989329936331864305490664930790739068343402378900994317259386396319924646619357335711276483459914575746656159352499999569276617988836981303444172496930487835018354970676339507921880966509915702429666975304976736464445056063234172360713754181576437855376711306402188313952513965120912588995097010474629797017679540929594361508635274622075776298184437885587540899729549381189590191973231094332059296616560708121640961047259255585629245340112051018238621002548349239090770641713441261385998599172120026937652818182128798584420997601588080790584292107012363672894464350885024172434044946105705302886682120716354037145223361571451164080425624324035999214477268262922027471941559471300246765034307594204827541589214828714087246552636080889380268377674734781612746595867169016194242228465030043971202595801301576693595881967614294332211646554029111799052166476406855231023925419859986224236206074678574203895260122163346301927434536946364380814939071992827176763915400860744120826652220796145551464382668859314248677097622086837868949082988643759622537716741761778118673420579610486519697934955686587886972613821220027811851668873700643594497131753433889505234486709611758094648185460679506582124220704925588209977630373040761091938861688856874875544449124998335241368826545754393104049720214697677214866072242322266003537356011153104260305708968650527829029666612801519089570694947453609052035256874564241011941612892848021449904207043447827828529450532038859268408768578075670011153533868297875859020802829049162958111372039455572355323309527276900302955028041832830693218073920010481742935872821918678616694676611557999289258135116544486506434860661929269114631731024228618441217069473767531424077431943571802616137420910029173393446774798852415112368563634268471848165283213562808307686897806077240880898882571115739449191192198497349174388967043252000846263382985556492793053805251412311798071516580077428275871027080674351011908651936437550894004272369798090410762849874767613069753939080643096638276962683835293580287861685731611260342142223624930929618978730302576902102185928039112057118191904898572861842945706869954500737038832719244875249974216288236638375140711948300679910847013121323332596067784423693117305679682296816092634995407352079221919289331747646883765787611194036852262294340086958348160711013638505930051800619062502095165398654256321538207813872151778760575780795068999502041303592740982867914089327390756404758115305104652537372616712757386285208403511114315422917343193483522798769690918775330804277792415231091904738332997962422659894271937042665943966395188408355188622018942627881302430578876013002274112501637723150986335738512064293686322303401041318877706124175669677529697501077450548962293200929029720968717383441340161438324709188621086229152664642525015592667540987757579176955235455071750184358548639187392559314948709517235570726139375365580641783221978287133963609537748920638134328409232545827278517043873356651857417273871926134553354138174040592697294599577141337631093571657872068428616395426043855738213855497228321582574461474365404014098076915564893601002735612636241469759503159495556181301078296634920045483806199358608374915486290471204409214293420289135293636458685420114158137640901653409094078948243373574670234204137266279391438379888282334765441965675490548790701248511126659593984040860688266456085243991602033037800903587273311459530397550900558905004146939747197196627886563019944083344723238061733823608642344777545611375810042092969093817326045904789592166350043197027045504401647187801528723071690335322856826553576308959768535603313390801228383462144404587323084867122758881519402636720809579641630032733533658441397569375926530483084205988367471543242646962056124610666042288407495395299064846256130648010450089907696936943219586737322345850366637865944784094800833197810233436652591000731539298915958809462932769904396987784699691206977305879311906393807405601256728981989155436412547414729868858416695087814962637222093581904816847184715582940808826636601648118959072235471497995859499394814282529294392184379143536810212619923109124792376962170872003779516400671799599363677625308033666563463342610838404259288994702477777517943239004950191599693646910513813618259214981353208503469874760218707238620404074759655389395430906590657171333187258200034896158556229826059267844279596648794913179618166232126592996750329450060394838531213563960794132928513593160027589143988252517097400839930907436965422345339711654011834360660705190508221406181102102574678921924802482710448924679292807158877876243223161653933821362782009760629302217306255479314527401789248194135099157986581930872464972153945944915970393329948950396023614906565117835829283135896737593631708025700661902051793762004319075597720851594749274859091995055300604793245567170039177208248547783560138858213036900029649414804878701303020571051847980167600093628831103927793730172644914284282898746911450097710982483586614643249235572753885691645396904064508567719124580854919470313359130562278846060480822449619172362947131855316637212253041408883426785977007564562232126406754268309306486275359600230274991151141486121534800578716242287676642867790335009905847173202774055447342913921556240158202608375761765212310110627171012323416440513586398349038802830311944119012120767795995533630658046296206734039235255649428254916870968631941251994966757040196850993426612483087145483772250276242176539060689097864932702997633185356679693309277647324462503871204233134660756574940168302981063671704080338378107719352236785134203744970849154118745839257521224559093587002674400496136358181420325752893810112528904898618386665046799463117104802255814639707734290379647570839191772919633082061514104505807847990368945488596329665727451571947469827986091251211435632573675964540983262666832798190953671756776958055527324233689697717360308278400775297328951218664768285397892877529880202182120948437001876158681417395092280711662121691384743571193397044525511171871436418058719157800891104695911260159317428198992918307365585725767514652530599672385487066992961244262133165089885782016260041563848220963096801257147280073434822379225978538711169744064201432337943374232453575419666840456079726044320184579380219918334753848677975548065188843462487978632843852703113539604256724310684200192809816064014623466772430509914428789634330343553254502498565759846477779837654335577047919264677701641222975249681077585983412822512488534439078198588900674883909271170050356919553137344012505580852236894570036994206923760200555496488758855183789199258124886846717127843100046119459591663975616816828810776236338213824152717372481447476657126593494345225139107169027096250864986966226159735112840948701130643965921980984465261723654526650166271622754721288758101499177061058469657924491235935001122153491482694138283098204862384493951644539863947666021791122135519496482634691490365281831784748281744252116257743156854781164429308934968802171804588228877001888013888020520114732330111176432459621070888251742728083955781746371562592183465135343520290907588076663166055899678804371083033592917515800674726865717654345251574484730582106413726073777166681906811677746521473300491114286228389534283781643689510979566011077713759044406786656134580327981945872349345905105960007184122681147751813451362120557818855676536129115756639772375447430129741127241933352133955436579443507802707209856438550905647045192494868543571362513007663422162012508400031622311236510477500397608812768967195752781478888684577938635096118499513426388624842795152155105831466130270083775558849819695644719273359383052886744226176911742155998392427760955971726431249236641705370471769834282284154283378521153975245119439450018184547038443315042914724496074111779785388873980747246531588872301090412127697918382659362549911728158768667206262271207746939638643752313475347857931692675314474571992808216533183812098246615814415346801971905369958351975842332136437137431129663794730838803979353064621237076616504422355544367943724132002490871495894773084284865376679760589540506091883844311157182927545847979460160302748544177167008251871397914707068316236918752143229814467221642017521125934754054900013946035771059466187481453080713923445771768695956086590608630073311274234620413419988336863474292570347438678225780858474663623059690227514912722587408091954849213812961471029425821155570380329392588188891784839973569688270152097510790221145322578498359584068611825068114921013790317282046866501237827360416726237439032271776673267833721397275246321806825711440726432875818109493435067562394564990721082868364721055580655956146501103007385266737995719905127548214240014747522522410469029123680149106375160543864991690897014295763405810783369249066162954926221219981852038475577423522005661674039248787205414654429090365621473679450742810457493308817694826957089728192713948116443467848393161575041501534036167610334846226116969609022038181700189155588579482672886571887075653966594686060234426085607936125772369199345100339237815364053948413838925151451026384583528008135333168295969294337463025125796266273027396463727446251507835497748043100294400381862729834422410701212333066192140567733289153552305015156258948909607231314988767174328517236616672698971268720516481784210030704907895571419126201183839289790998639072317420494618240778583197114929431651391399802437476838662358474273293316240104653769004701016913373784789214143063479415580898909447419773076322382189679944448451780403552300422084426914353417217079357719253193033433093732616535362390918378092842392518984649844329531918612931173212768950092589172587690994141471889092852251457079367187092678401475415429422962441625240187654258349313139965462943801995014979265490540123850367307958727445488375194311796601055557487561030632834675603919959703827275304161615892024224416968081412690883406489904759914094680377686559328579450413345396190030176478002117386650156363143033824527427583874840953264817831299159143473242749482997998914646191130954793199504545813420200217716343671091945962593821218961303060074543773467306758461282063537975816559605598463462332292391196565660468753165883066675900548789397174203437301686936284453242133717162002239235636549989127418858905514461564865117259313384598819715793221326636783788563631026094149869548858382294759379346333320058037497555647647252130978336908319161986744110007365958711777272473407422396878873635371227373554195940276122319888572648623510928291096336424962741908982088296547775187986298723161113055410896387111634561672985750128980839585734582760243823381709410570734562469018046532097101999351258306718082240788061772374104886246781572645405685316705993575933236082028000935738467637066738771735025091003747099224334791518692710943272362260365731116860002723186576667126496457927336976849963044205297686100596849641694758497024389002804575404260943839587332476516583462361110980763983767591421818245048939329383669126085256511979030181787056889321399623151200585000787485884887032708929179479980563119843532685266541995167856570809325855650113985328849326383470081585048533626157902367101708648613786596797943879223456102140677869689110514527839408916333563389410073819017964900520009765559884031686695908681882491425002759130178818209179991849250317826975679063659049327968011976103102111474864877621712932983222339341307958293587781836604385018588456355107198029599761085976240413332323327620579977647757656561079349709003799857001379081055945634631740145283340830913423642237054342253621135917461694211197886773367251442250177605009955775666438347252721104647163650727806088578721226791146733469955169287295561393434627005653306109426850535960037540610611621816959382549146792024071887644616640206818749652448492371230588469418719900829546816133274126359677577123825849539175473775398278678082643252102490525804218010318862674087089305346058167094064921962634597749299952635540864345987554992015132106904686055414864782494068839640275047305962441581730313796725768751231050503403676061251910335628553689027304490999247892787819974879794017084310607982120582563449221230360605674545969265964751944298714828289950929198503356624097798335650346642899837759451578410322904437595572755885876326945471126534841797521936048078290977247683288199425589140754499088813288428622066772854811489364252890097001924649275577883525022673989460541484097033033536890027381027972705997862351686394482174670912584549000403874602041563633444677570111634062030159128562715418578547868166966916733152721752786318137483317418989725202343159332882290982046539937773842624378575614583290428376751723879467135668399549949360355373369124113694583471782235467012916976292965326060073069570190585485108033339762419289793120924019475756218184963972204837340537897623827832342051738806427915900649198102041973351025177131836488853702703975256703198787768392465625168166148647011310859880223205026589908273938591715068145155745216384103173938891037772766745681829737311690296760506346510861944845012347051540405332254354806208858264797602470618285451514371417040450217579825879012727895783937861669980103864409720982355032324549723854850962900490506455652216561603455539395954584420444681875404564404099752186302078763477394670010316687401973622539155183772565790289015144081763748559199953499172533589316517693552297349761582907206620012560510643196497255359087715492208324041005203407995886148815674085161515146629475895454531358268310672686006661128401762392200776273465309453059967730376298254667932505720092508127856953563003828494045142476319697389859117438956242747754443738874331994526703785144635683732829934858781145143593638149490091359258900942009344453448551700008366908255882816560242943853817676376999521207643159316655012200536732574399242627995383610615238442110851276547504469974338398696515447887010931435770702908278961212704923377197386702001057636483152046810778310932630208798432572643801503659183369274471869459538075711863262260255962065857062793478268521738832165689032534599134898662932880637191246403325866746322735498081674021946658998593052118913191051219008104519865348101332836441544045884806645770182420902427234510191992858179374055483629415055732553842211163113699055615574886115500178979867860685614482350358613339772057455149385370270954027762880888852656864730031733882364472427348756109150682682045635744721560336149086936881712491826139658024475679710705028872526703986956636800006256921770392611522558726992738593191085745262561124693573167286357328521038949841265009087747356365628003220090867790020398333404639167233778664747731648388903955571418711066990749319392488957485118026188548392852240432337548983406800803532674022273400090686286535321400427814441027041159913066350970826709729024621242987914313300139922295838891029941001320833443045513151429767369837269794199993255839050962845009886826476672333345617326434033477729282849373981839622093302785976968173973066967787113945180028112906198450327107508380768728164162498257411500393059909830924142358646920021865133328738562467854036706534154305703695547115226094076972574777165791999351440641641014896503581467867765969122297994057665774751552176612031863188296450641942059719857592947988501136889338490088926911876363021596868730674713861831043199074141673853447511093403543323675277034742295504308539589754557408662473278720505918641448220712579698926394722645700143898615390256469155726439822105653454605841479618612820575316228593140151025764185260891733143416494810616174065064568177828482302475141601385487304162279966953627040877989206523172917724584227956759835083564420614654071307280494346837349862526571795114555447942112962422386729999209589055791434107597825509783553210605858609656910896106849395623628656349226381984865074215370319430553777662344869142966571263202388953235452846294338264654270686993845286894729240408058847861292153417706190711694093399009337276374498740148966820904118501500643173448755402832730981941628395329412001158486509787560927515923153446245248786615852734238898519975800148363985502576919860151227016895986776743546815333039001567290047654741615209005129347486699846245120155430743006453355393375844122437981002431803973139042955996718365259640845275379552755098443855359218789844589102270878610564319009578179311541220422487221112590193772388099483998689795975917378752812015398007633215940890768026508728312987560246526352530361286346965476218846171071654721628334808961790349930305206364224831839447924418393386175519711924764189085041700184061344634370696991753310615256816734001035933772356904514167483571637019826139240820568085482129955249708033291730912114855294981707305912094529422990013245977108978021298977087917863740207324293140505092844218427990427656511858953178342097498636345051859489006862519318036035670916702591347648792578722632819612758925009712262657672789883953861817644147860871069056290583257035381571677207192213762353160321702561467315735235166996157692396199934055243338366964401695794042389251865380822571248060342837257243467336752944051138961955067034758015204047450315397222845936801987467854821483915389733284675460129232306206638495279591718576209771304359728959111643689416778048028445462530979354343360044807305973122008805806870954414374658698966151862424579721366717240591632386329569304058254327140940344464452160351409317258575630351405735197271628357143430600156849648180559573239062548383081083241617894822145972380514068599402379878338315879129518402911152033909006423060204702408862190222832880179793968009566186418698973461379401659171661260021286561804067920558264262779615828106297366486419862789566909237751000147376037478898792241965248220606126823631349236589555203217593276285044238300370477812522161190804286434190939388168905826912709243038543067289258464567968786465663159871824055953209699137082062829911047283531836986901961098025547610026985936125060566104805709570321454331024623172357476665137217359828087886529808094240548536890675499663091157462953987584211149779190275424485218357512048394448848158516247192941283324681478128504566129843241369476914967598077602522410912223302523780852450703955125398295644854559105426478867480104326791332763600524426950294040301495936312763946196176933502388730246478423035399782875069400093091988635649979742764998224783218592204721798149843757531931302600201969301294004975316153768463061887529836495183140163597973665027376210094366089499003439776449632367107677628958183194185424535796114553234827338637346333293173266907534209801017883728926463525383173211117172915691909726670960830011327313824069068032901892660153280496225195386188206824983662811291069722983184893955294298411657447529364019183373158191029239815463895851934769077420048347110739618470299155275891167784348453514970343146564072135890311508751167800914914205636931889175311016073398245822780108366621819777631502515650717441814126594716599721356943939061479082662536572983453530329362093605737898959019363172680419925636135181610238640693789109358560626003511406495617354754302083714621350592514923609112162940553588371056668391890919888351219193558628578994874422481227714610159177346461733068589369883765197897396843446229604307184309641027284646356023210337507736045557938280046310334940853990263302599167829576371604669495449083564128205626509014369437690766472279018069846262247402330046212214635331491620468515709091606079778893635632804984146251093212562189971231422937680685608765796938381154178810100247043515842097216827368024759456426963246429594022278660103825167891088099025900389105956432790738728371698901473156037992298750106635222055446198077867310464465628334480462212090550022695870654381964219254706602784628976329165089475724480294014127065655276192456361480041000543242707972614768134272334580134037398142968283987868484829627667490245195040840387991354690671164767489540808585295548371726185657851721308836318010978830328990471289775071416142629640953470323735002990006210023532875130909024175189113735311845245743170202143476117538808260408608454860994228119154499439031392349310513469366925300540342912406187091344544920730697849891322601155293080668752031825602281299971651915195000575934624945859708877342894629471802206982978120062379967141991120295278884122654541527925666705971985891200467426408815619510724896179113103224964839244369735801619828743527728196693012334012649530055600043987419173783912806714513200273895331353272659400807522033881119717319119311208503558516354320937027224988816655703165075751428206929910849003224549599251314083702524508564572844289636960168618393590521799601951370267566098406658352510112368253495397119577478439320242740271555708255340476782770853803922361125728059535365333306097424781384799611927277256074272532988144761951294891113908697236523518250324325612924304049414955990551593487812019813459146245848468347804093030085108787798732744789625917285835917766906433891204151566393371987763213278256840501620655414658943025390664480239463824677909689847424382195430869010563434686816959357486148669378104739231374365632894168162383740758263994757042826206596259378516045252474084907969474297262323464393818945700370081353215271965874581560943893001378970485438573567806275491102974035766611722076193224469915791549870900176852667169178193464384763373430304538497601660842337804269178288087864128877141643296252488133236115572025019961626343873793483145966691341366672751085327957143794861930634839174103593865541968726866385082219587080105124442004983252564516742669917989602042702504700090228786483048251563751239479144695797696360553185461317495519471850699942139094568797515333842924426053237931472623266229656090307438725050561193788150067626313703105191954597054112730017314445089704491879791886535221262895701068820365942475343385606503356429581024403558856348167246573637528356365443886605506391308871833678944890657605333822684837176439107215145541570621087211817488691908134297953448890802966621366031358542557460518646441380212725503586455873398539734089765779907258972603056131776662730557713554286459608812782564993100310770833458670841377982811052050374791582846598823902317159444627751325801118608683104720137752339739022232391573626184001566325612088369938666892566649839291546503136097911184775011360444858622125992427578394525053799303376149255406575083743289931506515319825788572771276414135552020019641774087053952502747821166329814817111915694025244107874248642299483441206364118805302153231292182770251585835444401712647645852908194628064619558359106589713500582916468147693292467154578095000944465479747300095088996923916209398251819121863235660290079895502139760818728672529214356021356633967550100016818550790707940524156081885044136663731612798296549383675351392767666368368391197148621431494228701846317915535439460390143110764313755328380616347122170860430011884997025815681942914372094200764470231534901741886470176463184751400137803420696249481252079430004425382526025525926027700257816823774907528052129474089756531786916372067776010147581829197660432176220587389287676701174693267061607320160242341685238365170449936940980167298449127304707060058616331817298456319755673059461038058027917445077445094702139885299929743713964863478605054700874523775780614136533402737444007781570928634819803937786827173434101066428180187882506647690566078014533148094912753478266852453909164773728345131979557562646898762325560062146245341725014389635567206156714720104849621385317312560952198538124506583746798621611134461913964474660772836860279085355313378709282733665432922098140548901888608122012080668242338610688086582951648507004069566612492820363887759537599823798063071875580173488604699312700331043605923190814877585009871891238822465153504674151571266739933196296418470177480271364690913863639305909769330778718216471432933007643677823500899341105368145516424134552656780338739910245446359635941370623529297042589581092256657950915354228049360368460182633853083658654498345917962668233157529622014513898659085919650826104204844243379215178556303716296482044685939084581308036729071244379265940942117893836317070906802485720883158739933677670943129763908467583815897498902772432322466680672737368472318471389658451180663183039447073771554586637730884593375257504426742311370445821652374436919063505234060102503412982094885476165270106805136080176594043563073902702158012821514906558682726917173508586827139729193775212383915423812976842663446131584629011853143308784819072225708321003770341019389423214628811738546459647407360740272726719730511504221474637973036677166707138793022097361352370336766025193871650111216763566121062368675494230240215803684833272469388347862162850937183350369262983391860731421222848004684934454956322362991956489649108352590003885875319863229262703172575120827521521955267307476564417554387873792219346563846915214927317262183092424972288023038319571911189686164902801045392121823907186622776707209312312244325413335333635679854694832253681291831493316349043429697072140207238440915723450130060963529891281233513001590572368538679819721119666957886460147727022062613005500497281869709584589455641239743742772091663599044354286708306890176072870503006390442996652701768889738717269761003486561794927077763090657052658259052652817083637228607557036675351795051611865467301376961919558079669383747113820902105058094406384440113675907051447994042608617172995877481519100151984253073196151786001623413624911957885614683156188124711447439922640073048554640513364215383880884682520930580312222385124428878975689834575970856552621570334531440985454297187348562842206346284915288884961013763765055205709909696241614521892480791304333862936829933150745176071788584200096503148414832736136122692790667146860557663347161400283123934421796365411828401913540427602229936101457323487330910443361194078934220542145384525801907282972114557518695333703204659391454076703090688429784848098321266649618890398906794335010008382881998653884622710424517700447242398064119981772282283903591415492700400549412359180394041835194285798009370975164538056612508482130546225166842008555042264392725198772658317599810427918021216378462531845665760128936084105401128340321215473993292041565008812590995612103261474280765389962290959987781859598355925522756946957119909664292750993309097093130174330964586426021009172127630243017541444995854645411992617801466764199276083247419644809201180695663799169090968735962622377013141737443035208808504818324708924859685776360575481558358852716881415510443611366532968049389058791140454005842420016947514272754050852391928108568545719426365079662468663675692284243808405030390848703476587468522739684368436792369616397575855322069772357515156147791544897514457075025697287048748009864643956328629238823243737811838557909705620359592197773132417696443125859150760015676323314383504549819935870881157056179791941843391932975121417481550128356322128782612907770516927676347468229245195786903858823973986518868261110672389365859866928351120329869736661077504817001070064678710109892140196074079236402661014118032479746177124904634736454218096623790858759177528258592748031644948099773523745285843835512822954460007593992606458565566202219944035036287911383436574546173330440571114813060911972624907860807625818330275805571090482858700066453327955468796905310469290753590247607003537277611626512082180724960730122463036205022905363317663411304230668384134177487244269121003654096501954748300784483517825746313618008373705548157801994879761948925773512809668762864601686846983923113865329883402823073148552360286827454606845508050750605606439659786085626877157331950536263376830551441202168104643833123250726269762120208763120004934618069572768274171362635770099852121966781588707138199420605232162205405385580300605013455108237393933940633357711345014341888901649916508251754550211621565795901328651972097942875782290252253500519231008076633032096329486509498299100310422040531884869279568938855049009001876035499492416227161261248678803491679310163060883557315168831083045716052234926984287792835947683201159699058143930990726241497312661402682532215741272480703658994463503410210734441618583771668429472923946510399388603810045326514351873094931063574214677259406530719407539330107897957150296296546893107679197133762897163764665460544635918106393553121034908284829713659710136116965744781608406673988849648778314893439438034049145235880168506350069549105821058274946949516713195989853638770822855168668143269056856544715957956368292754527331184438030114920642049823284571236848561977881715673220185305012439277285412855417207013970390089721367318229046202139304081031881570186066365250398906225774624032745601994019228818888202514988083168205623608114582479773849718753983804196179342578104404787911259079316777122347270644932715891493883539055013911119323697982824462396224093327213381007863271036621274022228352594823463829514464693549807055943691394038047261528273822406509130537695006047559990158655167802598046288894876240533182046702514415157357206561032807133134229121205929115421095675892484211562742632489560994412462567222655151693772569504551081945378731605233341710566578407460178815037086465678372577858088074613828212529452255988174308055389483860700809660938880853666607968347312868610406241796452536743605164781428543734095137141490025432011252482103554522533817990108125996118331988108256277640682672260271002640702239294086460709976668606761544918549844062431740387733157176133848344018053318409112529319285188464480243719936784464887255468842174229755459699290494342960491206311213245306753101296244129830610947164924069066039722981056726803632952957322799219163282417017364516908916694440588445033067935696452317555974847754483568185778236538092423632139159825848535343296221826589688444797282953007509426090021103011947910360742279629251116421552820719372340687428921445468602864939534356232914950758011242350522374221425313546590076974764680197063653432257510944526665312627781319764514786947551835912913503055187831920686311890074776175995460367241490506853803792309411347612020873196516316079859626457224969123855458468703897902457097221575727373802250681775260926009427430448567640835193732724713409049152707465227297896111405983856836040707186777276860327993871999937628858824626511772931356857265904521680027901400721765827932430419246404229973880844827278687457784581411303500623598554082351927966843892743403455274589404685568906850762640159337878579973355031524373241652526095941740824705218794375244838640807098344388741655466806693800760201109625693633504724252064441538630059814370007209070688958916299698506655329436803555799519007099221341649327466268993431593087903527403452932823015594696733231436795643793907677428925588810172984131361969232433708900048746404430007592756747381565802886991813628193837806641051919721756115324901648531028242873409605147864928338258255409493843146166234838532476140984624463481518342995924413273907544399018411624300417894923148996002639156869468827491572723797261797591941278623918609133011132415487622887535802345316053305800036164933104696782009174934058821760475034996310955261456660689658314878695020362560312056037658316670205672909585164952452850852448690907387124943063395971029384979301450929391198593711629912673447644169158467647284097249661680549869464435757004375952787210412604512126265893844622783656453649556619931500585363889497362096758886969802032883766274875836743212398660023619407806170295648555870532759343679289135117355443381517036130137094580492167771251924863168680827915758198892697678789615692405682605463546407103470753739125805301863354169971513902748684609229090104429011518875204841579110440523054857639516147422427334909661637537731818377527489341013610015555229583159266983136109454749444263320036962079480953208721507204664181890281369917855461074907674507351995271611121930000625136741700463317960682951727669949133990124347122600111348931283973448523766184467733749321705010498577016368767348518693902083831256369698583644876649858818837270507580510562968812607803251274310701846106428420190971641025578611165207374275332313073335015304929346477463490740113220285600237824754777029031076668830530754627997801103576630869805677104675314261163606655123491763350370692512896436683499328367354213632797428384063697942562663849228956816622274028077432248864461731196709603439877516063497283865637413112931193468078468505936565528309571604445027312590867849179903396578850186630072198518295245613295420271584611465290919490244529179204977834022881003278900613907652823298194072684183791524596518376677955807257974516033187897593438241773923162290602106062732760142910037655189505908869667465614400566137638779234430743082159406629576422824544029186676811394571589623013176770823338597665095879972483681318203247401861100354421541801699759434510948193171209875574438518121334373885352504184282260524442067328688341939643044830956042908997706570754710676253990091200912099533056235367726756704847116355466980522397898503891139378643419107603035586306302307039716452222322241499723111812970184132951955539102732532949989110820997369433079906878938854482344011544074624089049537841496647382302181347562433243789636752036131295179857946108268543669184805950857147804075514045029278399639304792457322053209250345313083787585686913220652120242883394780118641212152786213928097937842537893437176913468476401484067950140089492571153730868630706675317839697137438685833341884532254618998317610574264718651351223076331753862481651775085542439406596277748080963232311689590554535657976271302145750605415603779571665062706396592927457998427582144146648561061903319080052833001839578310227037304013932935910244319419669416668851334192709104287107727278821629588468312017236387291825874804458262154001876653494362443556875217297576437275987155135857223249207318268888996037198992623435500276570847307316282231001027377940899481419465217862376591477189162366007916371738620696360263108243273353871926345528173525421638319304630253968880529019714334527196986343078866033812893998485074950798368572861076906464827696397031546806910006596041955276812378500724469617382412783152530312368225952694729849500295937776520012400101260025285756254970329928007198604066268851595563867734892130077528898701989557181645778506330545630345403371069222713021046315603983153766991281587840646832767105675900296215856074331713658659693344398546508114046573154463262980494549315669535056000429248576459362608572486777566702446018800053793285225864714062840326596799673381837508703744021270370283535185467877675931950732276802512607529034899833845577632193512201409940444425304468468136254604959113685559367131830349183089365996966429435436226278235850633305591735774267185091078052117714477928586436278863339089460641837549248902052513244484228009824725701024737433831654383726962727681686330723116700045337970777553118246056307497602023923369464366466489683580593398440306141674445569595976564408954648035589272890123760296030965388444920577044660960991693308361319664262698912393244559833908559032278423143382272611400137283647504829482469474993819808832938210793332819442632029927327259240603291743801736152041484568579858488348702617612373301562560469061703193825687048018555997482877929070230003207132545872041888715584504089418774607754784387423054108032473137208949993203185314862581231662341769556419356686136884430440022641885298798239687548561800560219711456211201305994827753147235421010856694223586187947460210360837007876571787347476219270668318674809751923827890308165693631132518719030220157884820300019734557725893149687830535529765412371298945093273867434794627419017346296946541643522115142096010896365147300018431491853443530125144057000034860525669792673322046560473793226821548438947905411304507681607477261522150615277518489402687025483082630448609003269094687189891183809663792508347520967884781917822654070809608964828866978783112597374592793280115218028055587236464835799705532594045111572489845036876751072501320801964012115514466885260268539929613283332825841515451329407557513725761535907858051429429600456554659368683919543874161947933462325959671684906889579025984486387380258545848130959464815855289152250486348115604496927132854019138290185490842217848074759758765587755784495949838343363633886318326887535021675559610493393283269082132289196401333969756789892443934693721714326455828706344430007711203311567844535202722779599296904884501808510205077296028090953690825449246151516851220129666401592952510405515731931950778328507919352482941679069660467020087368813345889333233079877729859076048512234399621912586581206940500901005208299227788456011799124293503624455793352319066972720209998391042793335144308475129976233635412003835173796169648709036143923664285579970091441155408391904182834316663321757814449329313408443855170759480357846206675141786790863857478169915135589764907049604638820816634846089853932597237669102767459080154858614374195538967464855303414502477421730745850328578361738109770579681772808736239719684299584520371826988748119888286977169557815324283242489026883143463035975211306325358323165811481179982581220168425775319909288677696178625578347498956232102898469654261672378732754076090106746604720996673366818630572606684070304508072358003207777795708862551078163860448412617812215735373089089779096851613771668699634625646173576924214807992087701411015251907002806790839464869456675802691057254608531654869233376997303205320804515050666364388343744259343366063816249665046756583800858855064392012661885228503229196503400423409228109403022974206839092169090257733015282226968210992341604640755219731487914886274829240080244738384020073851433458434261733672504334720697237894601434879840782151796283418828322879799185149064130471190983747348641652277807495444360732330741566061368014176915541543434703670945904236394655443909736940825639615942406912041925057884781486661124947112790438802546919919250768027763597079585786614674104722838565899933879413426553179067964369999782128342966242099368778308827267507231885836101510590432370258144977330469497772786337400705117487212686933868509495172217528332932050738876392215241728001254614202264339185216703585285754649928111217698427964336603021970327830131290521638084202457384073620584100620026082429549183906054402504109022103610015873682039319003064047500184755183865683524369329940562788801738934599571746476867339354095431729915668148753007544581477913446369070436431160507603133106243932543468896941798188500997850993905895729349333531576414519012295206255810154633073277386741783731154076568318434848069870818760574551412513804231693056978291027486503522704956587738478530147055975668134349364679921651731655393958721602509920061685879044161879646537725011097207642689759333105131060397857153235294224170816243397453983052672912477826055523292171091330208520796133382342942857020510280438141458502341973861752701424508998743107281519343988274547912738740513396042312722617303253988528348481511773471436044091942393277617172375146194038644055365475449554710148171881727891997095928348260486935507025110649870281508222005867574211282337850305535635780768998559219850284196109538478834703274491144880704719909053695721167769840670242561919146454562163815960042561933406854778142885579219580958775128949499782741878780513784759900808962735011250177771513332779892593858736860526611545058932683760400455316152380916120803007836924211321477385478699040102930520374157358870505737086484025621909233874888951618165193160160930683984222164618751383031255856089570967032741525238282205177821024108398008405010506477791946132703859917786735520911911566714786803402231130369548088147607760760595011856282569845984232402381243928881971092045430954657686373824215326839077080898630220500966240207579993114660668829519139463071659866722567464388046730069336006485362367276431238511210845674881500333696527813951576505715668383594976619281792962022222301517088231215627976559732858783446479855813505542955862200738161051530797206418338936361312879767317672003184831018675157399127032648653059051094194632069874764705233611350174058505436504183941138872434819856957258035514853466740754267370627019836207978066353186705780689094234608721163538212036461955530913271671357438788408514039621633341613150119500680003739308413464851291229933150623323145716222891687407651928776900811768404754601923856068951550157367252261640795819144296910223028592412981923112541325462629937498814521861169408158540275490460178221019696233570139554865460467990071730337090591433444615336069154645025528194784188684530333696763926830378553427320392493117583319213650821930762231925231984056224489333428723114584971007351735936715472059444120499626043228038525428144752800712287591520536007561462885274244274027808011479561764561965006718079009542627578422343858028940570957797427726646263898437759439924354271361299624902403465536313592762323242201127133591131443609193497689422242328283607036210602566206972392321904949653699269958400018611504837184771711270214071780036254928780471919155021580572705108192367064012869858049374251747739773973084216014234896197370856547347695390727754104485672246557640177441223049627827273208473045216361408643729279086100636726491867021701483030521036679074095269468571787952798075601115429569850916407718322903615538149427593068312080085824290540133905050412879768242041752330716158959286805869637935767945375946763737010689448487540929649021818665248207937731564149737137623214511955243158768051440820233070815180889734492155955794146168885430984490581908170447894152693036084729925156015619070441533463339602733891189118689007352625440855687928079343060461301580623279058998048099364808680689724369937382095653224708080954590978299937201885165196413949115164235627256379849438270103474311609097933753425740200563648883906235457776618317558527924118565729147940689323583657145222888989052025220810412107633697875813577800666122539132474992202696013249365795002679291212732100031735608047270915618343902630017591056067464839326838745393663072206314367811166192247690797608836695556972683408593608426279243573937648806021576659836566077843416731038356009555383113978056205871650865942961129798585233065017378947695820004464951665686083945003577646414652744654618565041607152320764214268328954405326843592813487389667407352395561166352889632897429213538936446706453322350072074343381823461248320737101639894785395028558270959873274625918256638532733268879519144553658037797410599103671166687692975354933050392223467630545737672105282713633329851749095027523636760154279911904235674705232670649167662327065051238550984918226055296228358121245744711183100050690711503276397317718222656359205486637256429936045133834366790023958426363758613937850629892619222831891310411471705385240517945268549350756982603604190368567100335064332916917122681520979462243433824466503606222299250258496194012951483364316630518619983371941997100009134316907299147893560059344057301351753038065686036183265614210740585441076988603036894106136186701606292102233815773489634430933473639331651440567506229147550458963450183931392161273262596253546701080992203469266872868289542010474003330857643825211629997148989354347300152889785082658243325631164122120124419613916596558181200954771003206665678014342936534393889569981394785323640839060595081101244159954797038411429178090812957955952133492219084889426436528089203849588740473783900084389567401179104317704937876416691212108181783688812553445553281302962254243805353080227089695650064368061918764243119115495995627060218048814427762135827889726710553831975320589599468986353796960322152106110561828682409089345503297755960202439165808907251056480498570382408232093660755505783380856581707637849368147819998900246369174003797318749270598210679060083680773526838537564590520750722456026786398716680514290734356058912793695290924018201736224171034162547214891890457983239687362777235973368685205647786142212037912552964888395951030411883915101468590270237982387288681965913414088006475253658128677127889506631547432721891801858641968252882225451322321854675256422838549626834219375274600973824177536445794591221097564418240965259507209784378996236109688680810456646258404845396743775292914428261157087676645073645101499158881119290539235745400162255777388208755384009835891363826308264995212715885692441226564780293050598275021640391345575568460433549419497070615380873646668722825000825109088310902714135935718261094194701713296500860366439619471995489952766741575353727088870607952868008642900688194481192016320662669567612527418431509796204864380338997043057006008783477241074802559514483813477358595221591125573524831266151878599347151373643858560262439204528188362878813379666816352636924682762358647995139045824859733977401749570836614999968983853023577912375759983089519087815480047121953836488434276363494149470474301552027635293380651960136529919097933180772467552969955485329658621095990404542345569551153655863181970053626586930860401685680469400264992596368530439059932999731994275113064111437931616846216829952359656757148543638573234203201774789048648265391487909365301238420047434306912554794195914125414812593924286645092894531831698207896081013144093072450283639978441846835468663667443972249664736172884035723590482365419312127169527315531162468797252862503498252294222894006173841018610586224974009342368815787944700277254029415088265161347558341710635803739046844676324905609623701365133479581703866717320297505776637805287018736569395724097892973127586430959753673479167977406709174201714307683264759549079732209999622153337831346767930735070894805986137211056764693800150439336789834240566275403540013201931757690813521669325870722256308834885935991426194454816940840351182277896722267763315866991369584110096561068614357770426839314729265957444710394840587416345123587271144412668631257384598968954462387260975819712043348867458524678561223650846452402436362804464712232972042017446031404234241115721882084829721470022468537675993024858488985480025652896361290736098146844127390416127383314817946354374942514160116868290252541021992218118384227633440380787584612422369476022995390046382530097432607724050457018038946085233602514267246815720355434960216193583823373179158658686821185942693163158130969807395663173596140097959496572280159887200265895160787150310282418259851875344741190434950041798358666880817188521718352807338504337007723450687337462100375287656933527806223468079846155175783777046746606283100251754032441911114973366488143339042640919245304058871162811216984510291873197288577865321235205902680156062234514825038476591090258696934685626094352394529826278815457824212732352757663172010565928504007535658904460695295144250052595484311953247487818925005436895028335440921839154904356620020047438661557061665282569520207686728236213583005337674207598972982594639830101121809612050457932945032924379266655423062310557274046094420938930445483625222633779295811532849246786485958207102236280127516208022826202973865283031203345104755669942085778903867995172852915596113427252260957510389521911677513130728661948557027778649135242990828320903482061560304423319471514695483183124461183317069329068473486434121568852467257140425210806296160864562296996217515912943948731369293803742813208231042924688592461429898653288148353899530886802349099933826243924252284072469706287442727755930656475863216797399163196059477439137584324642682133872313308706247268533537431847435201399012548276695373417040903090572244542440051531126158028593068313123420347149941184193486742409163774720254863524128514201277104028421288874662335293857549635480884093842967537505925064091173115189846667613074756246114775167662156896163210186175501848237288583543210053209968797339411805231552497484794178142381973737878264583102867142953634326851581355425358586255370274597757015752687802745436272755096459813976069985855230429970478642401862384232965116432241912799107679386579202477568831202415272300393127429286036871461965909771390655213489213612307986011857739256871877791791883535715713520645607311654069568109624174347780994018433912242680003567739796292677245688641452019335529552852322964642913685006551472361933040452761779478666806650776030151958857231087201852479898913451282394759587460348469561817892430759828365637225141000691659259930497317121257057333056447968500291785939973062726592411159898395303378779294970569995838666222238240185090444723391966820677927376644436475976389741400168416908833846010249336490550599776815903289648476429272360834996466097597713616386733469734230857474655271049820457914506807650511708154673587483800594022324038096226865914054646928248719245291744502057314651215107913634406632913803346129423403764952661643150295865594125398704632862510084846158134122461500503743297743708540173737697800158717641761928818619337402055914079840774116476704385254660613860947335755513750975685040536143716691509057415367635588251624370429401081516271567497009296068973654462190368377431592603395748447945866098299659877761460847172882943184536187006192408868496614431415795952489166956263154428922996168863047810204255204838071724473745655494705871193565305179611878808363638830371849903300254912867222609279027480646979587106057022236584174548790756034062925569354665024213172047491341865550202776555382152313649957067218135072711149906414134475092955970037388710132016689183645238494543968418682413105378608531693746335380380533923767513208124596083338798561414323831577392635061058279523329869130459653744386178009274031405109894721445326064524549350116362183522524535120820227503598453425378515188781906275160499821981763162511560525894631507375084832741386748310425559409969192131329353960551820026958363159194126873605686126257631475154061085719778080328183091971542783929860846646031171986687176371177705482697382226913276592715784867683356954372271907238382664107077725590177689739864814764523586506960085673242751703338231902931985501612222250901626263703658836218207042743538970274462364299195049454820031815493424952785075683374623729548260969242188082789085530069461651757369887412939872529340822915090105749868147378394725560912311243405124899671861799418178474122022222181257699872880098952373019133079100263599159741119638681942606517855361901409291179536311467201523797552971880826221211908491801909959116832862089744356572324376428414400645600208425859253349608867929647087082159066970820998968730175937573650894654078937276983894566246529724381339213592795464925432615888564192500522952768352326438268885891919952329058689064445493644111103022810804091437820488789843962420665504131207427911520153744764342995691397930487124232665115131205439597718834014399002417442616400678628206893694912095181113319827531446328422921777250643769117223505994418177362993862333201898013809136393083640785890231461730682269307550244825770517364891478039706923573288548062053270777572971474293304827096889986887135110622627475893012637516918637115107557094934570235370626673962207662628623479750334666268166429765899298964233706528082378948156271976225732082978843960140184045296239785032988290006453691706575756790253607130811975914357048620989187091427769295346374482275506471715933332259803612912933470985167081388182924740340090577805618976717554287825169539963796307861200529299011805211533346328405572589153936135398350642743117795058280152172553552075090854456331793263866834852982690348587687703443785872256096841724494871588767512719375745011619991935769519221906324379836855264106164774773651519662431203712507693408061654130638106113451171529840830908184252066408809577697190970644845230765408166119807390461728757938471489624660066555808607134697216090287733955503581638118881423045996182045227874371635644617006694567290686553143234360656983452494828199361509425395054955524365607914373283148414543222523082173006472864002248792457043014707887133319969795139758189176024378979074816964746327468480173092968912956370669828367162200702028910679210222043419605048661269824032353299729828354754303655127888288357720243994906044730829441828442834569086864642754916039480881901906827063062535895253277606808883106545585184754179603086375728063973481628590632969011970243409459923659612342994449866994997796372009113506468581634004630294490730554613925847463457199486895480822372597380766178197225926486584183502837908810234407599992702121510820687220803586641648176567054158131968103558165527288979634850226835671352278736798465558571222110051237498952472566314003404521009645288550201397257529418398946940595108789310646061346829045894584261203851442571152108000105567237609498968019564025529722329673487352263959777990838653374632076656267599250756099521019881998219193555965971976352627397916066376477906411253250457784729414915085402931165849687542440312981285396791672186643357371921582240393176170082393938079548165815594432402544499537480826018944386350239246607873145360259490225859719621610932326914808125762511604729747608903804195632516366560284763246025568941098525862073988227669756742328844351592387776365993699237617536271297959049285705514002092594364672739441456149792211777973458760950326273797786523066239161702996196452826539321120335308606797739427881477950099649396632935295082031632821666104290591885632640339590840631984190890149224110523171399337202297185723100949097028187179160652827569089353569264845116258084874634025677592029744651533716370727961148682246678057047083710654904328446911074874818820723994768070387778993614326704013052220449981034605751615957452763955432279822729729466879344407519895467108706446847648704198753553600457898608766802841798611992410080540700890724664178630690050559095648580771020106717508326812011703583662455219914655389724993268787847498097577223006283969934926615728620309024479397240433597104213156892128028837968262548847747890583838417381115707973417383821875730119398277688172272268032113484411304454884067315198640942196971967893347779538620029624971469135059704921877259146294983561205566694204925491366314245333962364712879506980913897798416409782584692576253645166159897683319602844371878182414634318446459026684169670522203794966727534672860304293384854075135762488003127115892900078865516308800008190042783463582942190120266589104723136802292676498127749791957420419347775198635183922286770785361606295675826545543529793051171714122716322236136164056051384250766470327505039916497417399988602454531981005605367934781459883351035320041383948317898526846789014462365084510195932265668164011138690187522407919075882239807290586490305038332457783269059914261020756398013540973489626771424978264554470065203107157300535941853375401251002561898135629091416229534031072202254378062917698428016639833010516303011556269147632660335550359322843263441579197244696733750775043449830447647894181358486384854874021539692517641578698714305377408385330505112762512577721003256813589928491972229839701817950756284957520263573144957457302213879267692909220899266710178920370269115638002990246494908478458438836032463155997267370110013627647422189233239584205068223586470320093095531384600281069315680518412756277280561648616597852794151139016098083332758691079021617506628047119364207675488261333271152362226275872620455012469700334445615538704285654341985510343150606612225296793810278527470152768306803417155954522114468342262170236742345711701021652397500136059355681070429383832271125317944528317654009584875934839505341684147821334994284969198484359307324269029757157120706801201248619547432732262082218863562807263821219195233283475556127343502273196279557328353761922002671032882091304010698818351257688347703911473253294746847200605521223946960001831078925452762526505719193035303512370240425026745282355358435016867125296093385155782118771435285283677947583596856777944265346336634050671438127089332406224199078239905610650573877523914794016237817496872758214324513845253090973045638755492752658315143654837547828229703641310963296462283048510060045464555201484674765691420663468254163361767773572864112447726929976560031990005496973066520801732928695700608752516599205724381982286995347473677138262380751198225611920434500583099126759254728472289398441791354868589260465287485607896738563726580631333707491699185311296308485535380188149119543234359247395595351886944420611528423968098636345706534827685310263859977988287436910068798128459440458847914755016300928451063556208654691685200299308260172896076752164726750316337551740594936682541494310537240396328001395878505338936850542162853617974843690170181398339982784049221067683297618649977314142280673416655565421622661589904884968477493883116479067562203910679002694071841404155639176744834180571735918635455730501742125507537808301337210572916156641117610427470428675121918001983145833018296579971673926489272284935017286212818443414292248379233252797099797988829963856076132286282465806204345406008337951486224860813335015838500163130588629922217610451233722951939642010258659052742524525742239119827200307049874754559160880037332675762166264753786341942102514548941415931180208370433735812843405000661909858459212161245905761785796720503250827534465043440724876391851791933121963552392974950746683638613605328484696835090815027316232828661305783938707477765841633865340607767406778061552168055179534748497322464588922798328136759606477115345883197822627504512791902576283183693795117080247597358898398091709000659647391930766273002926972792073016989620946376655509086216471057785240260992870790361988772579068089571597321256524376712825401004172062551676846698959118381492715652516097214022545370143794843409995110883699356420730571319791923712038421493511798518454506360679233149683099862960596997071440322817466397409805204180795319198162458707555651956777464239068704009707218798779932302782046146822937354470497674911360708964234744772391246730299825956621814820255752397245099800727729278248390305726880793433053546756098343135832697682918806883627409582550137291691556194387188796648789774485227111485771330228473176169058208806810049171831473827725796339214575618296312409758079455793940676785545873608833081208300259694375768741549000900197420721632707128381424973338919182203954346065692864575075359421009549268778087111346204584496199150128839815380103601208992216708406478553677150292383984396892050317307426958260997679777948379338783111853271550573988112770039130689167115407992958560893055274282882715961432105930262717472106503960062269562366455945852606441096116162992861394862265258935519543321331748591771865012346879183542062362803097868939807187773105064132683099542694048194569425536587996891499091788065348962856551484154008579571990703897903951412803314975658287945895601056211681826409358261566903861688108456446272960876949748049519339659975981637439576101075712507167820792221323206576942524116663026199476667387352865012050413135380948924695282558600964953282076099597160928486305350026806485086964753668876429767157110554162029748814415498436628114545190008647869262200570311955514299777515986066450676354616412695048256705596812229134081226665667217430826034995791061894300318023203286371227843148201262602943680072935063056565531526470932673920895693327506389370440376269214382007274747918431784149547850195043374317611368090048039772889739762939389322620148384870075287648496587822777626793983162835347108600201314925515427361864872624903527352112842978582237972909842247781904381339821269082964646594869778466838373412992384814173612523508884116908087637587268170830367142695830699395521134198599212887305780061655168649334289059787177855596098128027134639414797793484062448749330717135844773423402975310692095069937840119928461760715451419004679526350496747110277448122574871074419538705059140782192006426364110302961925925968479347388869879171799129299249014496154959954770179575016624163731013366509104500692442805513471417781881569856203922520846734926841405110559081202099313684439974329474069919497217253224005561364456241362239453790693635500134929932512534164174168422173588575601447042172023565228188448222913757143315273561739689170019907504021990168548240946904192860327382061192022356387976283792763071980771382500318593545021040436580300691556190463013019351978472283872516861955638626996590219451189516657546459902706802458185791421541965058767764409431235024696989480554997027229900536421909972371043555510151248327655561557757202833206325068640161525839986368422363332969012531445183067382577371378900829315373520071429405631104404616753271196400306892250587421481053348551863559035139408059825082709795762244034745863260936366909614989075712225317977659659756157342017632643518727289264493764314516534604176090128839209043132884783094129828858341422500018934687878292569402613010191313390053337795640088536386606229853638944224444610105410870359697410529046429796269171653112783735109984545802897227238049454173724358523756580577925261889620384836977367069847540908265601588914759882339812194995045645325474467774127544986405991804129848921429874290651076823271595557289215136157536794786432782245858099635353524312747296810818000911179227532448948733722784678866507468808376309697546364739672254305566185077589580284713228734637413606059353093993340716510287152273229095008454859557774415210625474829453326917953299657847284912533918978041440944392225676073335920419308690317288105268030391864566024572458674622060442524373947686525413393107999547010265105964802750978425290357346966875311416727266527711807960762531536343082919378342192965596710050684723058153677165380902569440820431925118317201094943932040295733347505836137972441217857699309080939113887363404691177974820193573759392787228868348362682025246128004189671805871970790119838226740510488773221344752880559416065065680500078259242577485778261385848090019634872538834049089455048083007893662146179246285170179865193152051495097239759046282601454638122309311031604127741384284822022435665207752087441351465352278452908618177598424254470254598566236205477300002197621782337589844204080692376260814587802539607550200504679106013847715337748635292794832220390047844071616089253631540409300138637973445206316638695533485853229481260977356965629308484923447454943646960432970021579671426496900380515519813562766598858724694671495713869818862860470818736927089223477898688348975718011071147377131435159212013422588206700300832337840920832992607297244085033841709070416076102724707603952397565389988541019437775154127067908914277858271276762650164449393237340842795999701984843242084805429576954213019188298278428091424232168541775852864911444989601886694670391765649493632366086359475714297443350165979094102206832393383264630345571723763565207812657621604249047451367336550604526277401427735173767230452101073985769986326264342378063028773554167347991587656983576495664069948924278028672770570935518554699788935713129801831463450443867638436470875578022315577092419023747263438417048410684653252086988774770801836988045848768629743388933529905819564844521602515322312291811583018093411215006571002847200311590420680308531501502652029734401735927362289557802909009556222409678528344132445329611098319211246532708118966167783776983689764125185312027001001159599835408072967262076751242439684473130857386706755705060188157311156427190548245788419037037861569043448979611340626010472593452753389251394413055186400470488429371061465745429663544857687218752131988597399669716750310047606504266893160691317164148362919192177550639172746120804084230307100374210224730724306744122681757720323826427106643861516269729242014505467363802975021004267577578341966314562014935556092402377646562310783907412691117084110378980141770523879329101962862449383608726561391274471861479971421484096235779303596890190121270782961645395686761637478444183268992722607056197732026179108641136571434562564202031837571695437764099294680072604613684519747777545881427107264092916570949905073814614297864111894710731859427900966715916305944813678596384465890437445706492584743538572396018535540539420280545391454054809132735887699170242833788716417685338712512272658744642692104525762549839273919578134080336070208934654503076701020616821735153073201292832860153107458808853799950119685917308382808498698032615178214322694862190761149661782961603321236400231725097726145182339632271694024868476973643987248442523040544561996646374974437670731638196581758903076100537363803354652926999977923504105095477302238920017470581266535985793178710729189281857584837829822256597797052967030893000713483341622614455864580261810243429275837299613536117320543067027174728423871182899507689044590947015708515721947772916698079935824189823514077112305849147748949691504010154630862158379459348592420202059470303381316405948437234400378153902008111572822239600203169158504824328033023362931340994376064834666868532024146061640809164887040814283623796932860437352246021458447597828857853009626791624238028060552335710516028053025440686304691563855506361705230644230801728694194027902062631503340102681797061575699279217073380092802166968773487927261347191908269860974567355854002499813349335248131442110924001109979934622087152789990933141974084928755738310503305844734715189075625472066221779255803739760253853469821437106564053998395926142013844654044963878277448769541092939068770475996241978965922388242800006257487595567174853354815700460795200758133614341624647129247447947173885924907145737801865683517604336007780147159859084046852019372664659407789612991643578589699832630591603831595239125408439138204422397708595692538995459211577844770103137428959111917517679503976108214986626536071373408657246601372791733549059529709925582638762939866048642560190623101528715235281041166558824509638306918493308068832625288356874434771425394303946313938629838593155380654174532900518024922342341776985982299648150392461603570184435822791761174618209150628933397298691320712610961836982444645073054542272898310082726129329715270548088708879596223968797969481077636912416376223361712361087652843886638854822440740837928887626935479548958469124701949606725806606451986877736938184163678196719686989702907047311631765618798009714687140360678757119097691163699615036147253415270945046527361381876626348058433647460944911674369626054877402712972446271246907853685961436364479759936573197138051285063910076192087302055896825860920685505157092559766419782308447172757460632582396925666473243779873207091173747688652395715120837335416473472045514154107877659643847658719071016199191822354625744850445273690377622139973624607748014551664265407499498747330001181570404889686818581766376852668819914215977219424016620926412538652250569378578893681465852072330680004016024314342307089335952607220278667246321056935572660346809875417940066138547548863926770863044831464784557889817787805604242053347939113362766988282478132746982672049273081200446706727570979690546853348679713674143438667234852527410964141229111530824069326240814519487543069701863811595045106735138102323491407387759801770719274425451797778584615174309268167248064088037270200422327157617302184027235030760493908063405460432987816041500983031049120292280480532562295578069347043962520232676558801219918325761599160321887826040440909994345805515892351717359569472549317790120279316844572021843573046875114450359608234621840278130229338381690355944036920501474699748560407575396344544699890148008737328254976983125389401302676116671564089923036572903442913109551132632476306517503802790865190615273243688901606975114375470940303705099026742805535937613551686931882809223908019161790172142926351025062441567850181212229517968036405204827880314932780928558488268440316774214488377718674369198627420626856743344145689027602504273859258164892927041004278341240092014562312037577261078758977309031895704607542504467852551346484727035027250970003743895667257068728186843618502722071835856856419310965855572012786435059494078647866144012315661926213062387734776865530684138080838771849049042019659669645944530577480821785673271222906483366952318554589885688490761186525526089833811825813524015613606036043427028514209970200835463894991470237343484283159388197938287580682804603436778753416444126312138834170779185826345600890089220120456089070427990891568402531367124963878459399290542445439746106821974724644631393815431569077757691573819283646054176103869257899368755461139990201066882556042256392532658194052435400306743158260097780388039177154949998562392971900247507304463065533475497044649999614986728559397975888231725869756398338156428168450602858646602658209624747788254446208554251075762392769426165929725119148533419204629437884770424365443546119327762007688096917231582459962144816926595584906244325655284800756373507751466980430035009009653781511407753458063622000998774323738597901318931821626740501502304918183472835979473866701008314525857381346209591403644910942674742395426829353594403869740077321209768720408051973721324072252855653458422430370577141258973801074477957652614664890127200070151289414478737452522446275279016761071915877356083153589884240519897788735277121498889987461553255701284085055981555513848286356830503773468938813657541040550422491644566527913566242650173597817660357740501019977634525422663726021184433255642783229497150593055694764933924415957520019354877566072596149866380445148549712550991097493260085791684277007058525105960404032871865906455206066512658037115512256461583087007426798110925417347542799834495368645068073753816208207180959536729883442457045834935143444586551868010912210675974607420106583497496777044224791791805583685089378975677972649163103402799281769767052035744269164121680719487776640592351348283824344390285970327340888986342696513537512463177021190605450363196888727720445641802264258031152324215938346749219345221806796192191129233445757517654309895676024828065518925305159157603653334528957458604918301049391933690471428528339469672079790652962976106645258909097104976185225870074350039289307926951133072462216569947890137749919458846738335405769615824518403262576886819301579935568419046930046832261134973330194249453463123339532177282546924260339021896949782443947769248235771824514991473945088148410237186354277049238213580196665424865340501292146857413435255996130705439042834304341092118570529644712462051157754437163190600291016985737359075839458412040612283752685808748102354640518043713601310692043065270610878768633824806334825061106312076422661891035501134611895329207880763579344735568896696866727141028131834130588729825238094583129545591441563625100943358790534536616142863062878525564123802780885335708656885179378664888147486493207366572342164269417168926772180763367605168749597314789468052248307757814238743487179653752126300711047367252275952257901078613494630966210135168210643472685734490162115455727569143481116731295753640599544033589176323323253331374112361280822420734223826294673379079498208193378589737767253136747989140630391525942140319061650884379213960296843215756279198186584619432748205376591962806158337261546632982915960084770542734931079167378905988042069941554287053364341800193877219899094732472215495636293514350831609648896410384516503023527572187553836487141023679143205541625138632039634254970618259739305781347595646182916591129855186698527743987073207850567027490411558907349519327602651259336830032799707889622295185673495970948685997901997179259096807734146263717647437553612558796516958849185511534454352439484332927734043564481144918650835779848322608578009615417674606230219520531283313075301791657266866136474872598734815599209363664860692326629072944756792816288745509452849561553774306418516430098105252836156220233944278688843188453527555901341586870297573679729679262403370993096883478641051927698563410063053387803236856354150380319583124662628624018482965548095342021973926247914307741710265080728613645862130468740524386493884382557446544443630500573756723423602196585992038840274114763126450610448995076174725675790391638983848980721901254120777793355284452758782224863101415443859872219822210195669935836111336099048743312977780516225702415391468672978236575575130828319453513344356653617730436198413615858197881948947429954062006142107046010268072264100776976972203758061005092338492624301899627211319723630365063706102826281507044256958617981378549741295545460880552268540757943942642959675855574751450422575783664651061037832565832533468673927829912210842284130405068824525834735214723325069846616276673120211750228880585176491343156126998631464406364928368080493963977451409487600686152683492848420535215959269199062889272301492307006936429962792066133263738654261894028809182895720518573920934723353187857132778089858669317399510326015767950213392229345431433623873948112336309451769640605394776415000924201196139221139246744554688431991544086875476881176197989444078360442360978039047736980248987008071257696174462243425266759751429693849686112471116198928612022838742970794115606112430895854854663673324366150089038078462375901482719726063861252883064032246469386438343430271162178458454934471118976796508355508199100004654036520859008271231031653738319501628408038758252998966675445973932637363699242054022298905254049419916852342108935445440030983646321611306984987753453467284719617538516563161247564645499670359520771098415391854384822322310883146399601999235991531703508040941261618354371851215445131086652432321040403249675706209448503530494111593020667669646845897205381603488157966256845312213891759024269496748554757778383742552359604482055015458307632392796012662510425029389484445493416804730720846575236063574672723231782841679797328974525804349577028379997142087709192693264038364370221945659126157209269873121469213675036111639573694320953952744782928256521350439069121346672760414633609458366784965579369485804227130832237490989048746399458603206860724602455796113929210770988038605746751613403977963732681042839607396171087628940550814012773941298413833833903289290383551015127239043358146199264281456132146469724999652631156388372724146080124797997017158696133734476007105125830919621709556681604360917849160665568204279451242455847460546489879856669426104282905410097299736471460268740774291509432910644916289417367840384547168526941038916100277835486979611880364199990453269695962785199737107282762380268588043711886011518431953388348108654846851003400884517640071993407314824622121935711451842818437818785312059836485527038632829316278526915221917990101307086820184432441275370042811429079849458924748361585048953039982522488642135466306207803663408372235729209804322194361140897897201523712012425242765682768667251616387567615861331255578396848854828228161193427230656796401146819192142964478671165213754818715132377107388220277645363210784076807715801590644474821238946007375311461651235945002576990043502590011800199010143568407909777068088022224831846994360495314418550754237401941056437983698895262255990131662207496244801539466054967782020726137391778648598946711813393664052831217855762404594738281758751834714357377660665345414272493546936955854067100039694229317846373808195187549234172244652580202284074649856634272518146089658905348962142645901941250264133095185536757583492368447547778911966033157834278707798432624000164368985851778707382351159196739130723958722122141852128400265717267375561042064783898130746908957367540058614010916841819360858575971285733442725716179327892467590106124148812996514403077124651455144248638832699143897028333756143390404852614504522897870815524885805703184295410321143152155708419689433889201390200931054660501897050451418958915881776677628439741959428399861009200657445094749796291771995968597254420851539817054417959837606150447927882369922273064221198947830466159205539523843898795404821281431178938228197203067541303052598530116877707320748354716186844730889078945357083421949730362148840861687541934043689983211436236919787583397203577043062842368535429593189349708536073476694528581822153192128173658589434193503257702181933527227278084578381504290626607184334006700413014557288412893548314491243824360834209071562296320662885320072378594148136743321292018038199843002878335516596779376238612348218545855654232227361523574123360158098979591528873925377801601132666716932028867054936815918566900880256031468061162881266856704140950780952892249623269862526379409290982207906286438483302727498262538893706660019196361793450635188021697635275098181626602235327278437920510986253588707885173722859375072965494706728906486820967342492481088322043770849566339652887721612664765911350493483417775008750201374321826010803683783285811439552562880447982543509983478780132877806382936206030327665560660219129575503392578350551949147664600298185396448743807756445652854093239627978550219373285220944510863524373314896467161451569187076740696303520369503329542238559915308621005307244709170497290795776786369217507801332947561784427449562260182440375928607897987766178421757982881098535981788902281666440661550596750703191584907655634510399890198968603925596210266335834630065723242343719084775240219548917108781230783919545313062432922139918169556448044611582078401809846336077336688424232480137866211541057320514168542911359059263402955502600288454434719512091367492462571208921708071193894044038904811053616423746067767310376299916703467363883814598296335491441807676285032203662681083528218572552384685996977013574444475470633930088252955004656456655877903611450247746503002575918402198872607466490392545277937123818774772016223363708973794962330707545351247796399542034825497918861803356970846475298028406901614183076648074383896501224552742789335521651360621168820870269153592227954144969426759089814516921884621087761157612584196459711236987702671762485796895296622899987719598032033370568163161014142507961129240268056060680254771473493356655723250498937728663698212115057396099855574661225359884877888036933942930295943157386169022734116052475863995223288389043219761079581681123016435925881714714568671897202128815322671797969824972679820994001380682041401553822520929091031110134843286261659827517245177576184885913975908924032878226590373734981988226010886493146620075323320356878456627183824886707530753416841536885464146408802175821306202164195349998964318605896947560810005928870228437129616014241356235555982505164861901342911930250793367552028762041048727298644055929125746962524325693523190269335715642135276107016917677907163812158822196416668443946779104378751394125896407778913281920832421765019119752451797852116156467097008294314716840462070642654499546900733597279189877779296860230051872915686776115352423642226380441315109572457233200315222715059624935353454335035702101700977366791818428822212290151603520896022610602542219864686944506312838298689773649177958370429735979864628799152593240923021166123036807417760393354100172920876407503125521295150907049949689731249396093278961327759553716422078937058149863615949668409985691296470458215451725221633638214387027392489238145175636288600144985016760495681242791087308201485677527705541386058505968924958621024783214654491057890519996527706427626054991247616267461588907483222881214841899483581119617379392855123342066268371325098380494464510913261456746278687270129991065548650568020705413135993534220293494322130793197774182869666412862740480136972351985282859220301932873338737305002507403169149590546318163314700257667242484491860289877852533047925857254228521835067037469437277291183299105000419921717154725779163212830527654419111808615435978220392514979728523661894246607365268502663489604378560072259842575699951257489594840803719864312727440128941000166217241125490800851971772208426391554515844193520691275234236219532284250435101350029276299595420757144605612471626009117419818519562703496712584961384196336407392979262893377000225427510824835693771334880354341021207833875189470041500223446317138194155896534128723287896905489640890609256416253761908860069947188599242996315943555100455767758266089787748368751037697503208531600208840336829212673528360636491991492007792746581618225160472726555075904510041309947967647956864300155539525098763005007465206759654785130783328125241708613934872430207937374799537614481275794187748851074140670924454452938548311388134464775457183574241449959032855990901918037506364875351602555433367998544301832839765720351385058602090759887364326526343174544010972131836820067333710433821467500235401704495196949060429634392418622525288262567920789044147359339706974245177416188994969551915575252793619093483845004633019993620671479680038364488914989466088563310722878430328972217344905411183976185366197136963602706036000309544057794791378662084191080174670801774632553848494178110260619259312968400302483276008654246905204405246045284524847519728628991518018491366290413141017643540765260223199027673346025961655151287942141589648517769974199989637703623389857114967866283860874707737028114259001461320609469547000949863555321925325084040502247973946120915727061405843079288516015386587870367585936892785431625625743439708229398781871238139789824709395564770192570442407135741144674577354492587795980538675888666812260929402056339978947549131408926707820634481037023511274223364115160577585616822122133649986199879560896469137956515547185116328404894083829876018363881441414645186395614904985582242163336321438475684586691565834930810082312833299475451474512263049002332685269252224405136601641664542751845468184173799448667895231557749531354989086287643404154944863831588421452529191379581727226619594719495487539103837276519351142492454070892326152254507095976315691746214064602217149052352904562690391593684870162771909229472991790078774882333192229371355439109944867672814738772539871906772477433329704954227327166837937638722272816061228808225234253280760423623848829745965152214716364012584453876722549918938845146553253441113127079253311939437322192523869145738095508709583373054314832508496065943122416414066235118420253344418843463541925523116019584959383661754980727120730644823753078324370367187261051469964787068411080209548264649293028153348559082179558121914488680981653863146786808753429285999142165335854849857587959902310433275710884682715837526069228916351468581302099717438357937297798538055137372338871762523498779546939105879611227960736282398969506731139645392429284840619489801911647007516562323075945787501430384566530015023682555267204590606129975592917871722163435917473529086378332111150648694034344955340037917892476331736150389827542370921026581593541578653038736198846861376959056433739596073608297127424477898867537765278968077903441989718081541935413041551301799504741541186032352138549323031324146359760875735243271435463516811300853234775281952935514762950650642065475555585344798574942142138159388587604192092663992520103952521785469337896987314445127874071266534155475927561664417478383437077651719533073598016497649422227069848480163054528380175314903866973293980787881568233180983421397635666702814679263914181017545188542698993392109341095233368217764187695705287833955376363082656033438200856470528630424452979386873941043815510102336647430096224478188392086187269262145927351554496793714155207295533166356325612045609616352183818715454306406357303269096191724444680165664794451652065378854526066934662129690231634606967318977307542556236689154815172237540844171086144259614075798065004327104169078736590314711234178324752266023358793204840454381347584592599488802105507742527417877331126029318222318274613655259887946620883690549948840762562671712505086549213901891189616489795270167388407999265756514087016925242819271005587557151229326994931225990590785207113206276386542598989772197223772446274063553388915732252835266953951601188822668957885311406027433008142134938181545461202007720885609393573592142433511794197231768067785525223433933958575050218628065998961622156038294229279104870953711717146706777200484116837448479393026881165749392801372577075906090009063277754655564393690991913549521154401558874285013492685973000646701791248613466660736334640717230676601368844094533363941051862354315277779270330059869457064654818129778761284998472406874022381241224280571020057878150191324689889579377618149072053802804610998744085031447336129099637662764735604187310865643647409958021817495569113386558809226562619237081094549622638782840453542406593838643129797540229987895355254268794691713752070765086071279683494523641936271937622884753845150620890536971177568524007944916622176798626719538013540318538797768646067474485949777983793934127512024815202371988338059643416136978253046326567793393988303147603729501617989602681285787120085305582082403758333716968545289072880543377967874840542144999938486311717867956958113751305930415832483830745267515498282252041405436466933533619778252029835064726838083265517700574713993949726038315431449944520124902555848495197198819865547487366992536251206125920872595189911752697388672939896949638088627736274187204543878426401049821552949464928622004677910315296101243634227678052522715404331139723809849240623466792200092209734803705926476582068999214512552922621245090830436060990441974428049573322672479960703406412831928665597925263551436222710768444713981492679171735479862481881130879230703881261651453212670466851321496226261671181790751640758972718951444704580485151363364011194835833484570798213996049898423862452436082663883652260156995469448054563691007408576946585341791867533165953890363230610060115462803409435921252063137613169264893271439219369973622685983724151213472720813433652306637778244699819994100779616251345009951161172017073062429010859665990736135795790156304558556930280312817527408594579961077273645279367879431928077397449220013481654311068423225635401414282611202890972697267595343904258397919109622236510212514744113275800187144304590917268695686322967962228644913852082227373489230921970653869039491607108021582434369593473138499733699654640238143171469811939699639849486235275965706850348953752807689082227739650325278069321163383399871803543935416234755889457908740578486296125113311272388848115837077606556723598926694747781040874037438662302098506638144365245352443370356193561948966039839413980874943737080406941007774723020385812317515850925198785496006428703691580927123881889702486417276523851364956030439072258854242720755317562196678975953197753482650763891152681774012990280133500173159774123643049799982530543861789560454068323022845476119164648814611027416766238675993540101173162436270552461288080073098898455051838093151415792745941455037072636295046819655661712644819224197527787431397412514887775353412420920264844718684543585604971370944207251971673422340162706854090318349527551936560717355563611985490166044164381468946267015463824780749853076103601638283022820773160928291061964548676873045120001899284028344429409356236748229554615934771810433366004842291773113045209350530364959430072836844060742809488430005434370884941098599557728410703127489945666729889997100429163117092699582008252728273856785867264919592499329818111388948572594916445298138078287812491647305694990021254626654358236778595329378960355298136653761114980447640087355471165647746464190154869669043119342796094652260669972466626074286913619409199882370036943157899970999802280866769161911338606446718071077116892521512145550744730431627817987086423154126146317576279802655052942713566958347646447652772855045313572149016175321727415865443973697206955525026558287403579953533832916308012811676577400429181946693630973418931554760814115712031350206144451551713907732743454397619159072013677679632277223823117628174240814047980409912289369279617820171855192111071774880310667251123183227193226090655087992111842523702513747210570488202279725666879645171677789875202270670582967783988268243541097701648984343392064053967020538550049339926995743341949288695942999106289544557437093157350554013524048950810366307775663874293453976774536870099466748781779150920405663137096299530414647628623329555194706473439217273326216085370700683592367638590735546682126950711319124747076112872897985298078896448248261470248090181520058728859405492024950482237975793856335615904927946462321765221083529084395194113665887904552012586491895949698185210707366233522927243382146561167233621883735066844993567089562653046779163249941696100050232548387275144482723073321659287275859302543733159981582743851936672349423349523811771586418183980372195877233465854268110559924732983066666533623655545921504636241723378431845620333300481278344530997831974850101318036205298658837215182737533219593222090151883625798824751580327094435794015776888795685175716185778919765122427312983728744156547187194527318405334702906689297762333998919364893404366598375030091485901526164898423876232540942425310238792866624512261784601742807047936269773669793560472594728765119197699791624475762751552843056963660227344611040486958799430675380804923527282155281424808508878411901714085703689357886832205699809208872653481061881140620680724378177358946050760477432227413165162346018051522268608341027047254333789276578877294007796392080106842239840676892915999396465049442801625422728885834832585476241696479828284168175325854495248539437923698586495097201907851721110486826864235918097499507294694884814547006617276713855027205427571356532462131733110089462107885325029664471990773469778542107569284942369529910533188917929576857582036346603658262192583266814349683907569382693577163954688841253803719268647397524612744957715717545251098883598714353040074822414616925329621918204927151816475473502517483477769032671478172421378326310411511540919224053407716029419627402505063644748636011888801411443112674800278128845689563696792999224147562560682985866807440879915903497269371023954041664995342608055311961453198537952963576500432748362616308478658944080302527948268663306358171731749657118146154746448816141207680473278884601852280196805014815790728234691431680793721188261793850389080412755438442406538972519042218009254774136339571205870622619295608741165458539708347208935686029143943926527567908090744557542835042220706681929548571341797517499346702758961555496611644484134686081475813482883353645014117110473678734279345669982801265102665487174091261760284833911071726064330675420724023307851155072250568241837311737271394978514293550418095016878569631565565885318570218721996186469901111442445628943963931063584806190320408074138912504460921873408809404383194673425668337771526968364744416024499588545731635316694258693216878685686520157825520946089736329184012579641736697390589597673884218010503649680350828649597811060588842545030166755840848013247678623536041386738618809730579594271725889675186544633467480634584295411870720932133300624621453468713088650786091251509111167492903536747622114697608099575259214904455230918061495152884637027510165789228307544841362117359284903944136717233980248120246649233795690975099177299554682371399398214176468602024885780934413148378525512893461811376073352262436153440870907250874756186856807213273694613063011245826688130828966284148189470796464651290132790532723899255375376949388697102948674418671568718575201104047163591930110359112844728647499125851662558217132194819784239831562768541577037459923766412234227511603071470816314345756319061956998894211113762999343356019208755645708877905255263722460024675871519761649679441342517541761955958683147153882235203752999583749553435528180178437786639110288197946068731752927879967700725790738721718351574088739375936861931975266711096932744740111316068403200242986403998753707026841882833935061072690757093215707891685738671254030878909199073173102626135379879671658377378867001570414965712074618611768415622165654256579155309773197496093433705170573208153823774694221113214203466873335372700926681602723175844448302263033224543256580780010170435633323503107464713973151294625346952155873280673250960410661155956956733122195090791609437468731284135021530884443616460548404824221760812416170798418353389773414909237615290452539762098615080169639221260310551510667773843477809348029459386266681768058022516057529909753853427118732485844155774753369936000764108157358157161882571278590564920319742529910411825717144993954632705911663554638082166480798356197654032435155970072358033408929322620287105127537435641607474880922969943298175859093229389431618664638080935068703167982246941583567160771246640708424836349266409457652712104377264538940273503461809025766121934194086303333542763559141635437873629102680377681932356352105631332171569169857923671169103827313389381100855120119418064595369471955135168443318240190643444017051811406824754756942771873325854873931492902593958239708254674813054521831717911338366923490852442822692643323235349470910394208995724052566256637926556001673275910758243186113864376008630198454166843857464100475614743604114589184836226652600873086827230702173854203802592166896566135005655980703078160678031173934537945911379462773336303897723480894562029042327218318656521924014466966410069846673248061637870234541975790725474337162037696544683141844131263601426851124063873896656761073392020697995165194568389593569510135058361489196911240273251245307907317904488854621393087248303545472891641068174954081861967007421099596445779760025724661713874022748906597216564757356220626813301414166446900619278556509910124367368579398730153344298036710771901861874246574814840274957633930427889166995904369546685837913461736727230915795125235870470258762205868396978794832055970633948850855649805388304852248699534463720340413580580252833966372726495652095591332829454335979117582888764354874454656104067806366208205898757771205595350881717427331270428401365824798059840303223296743631537702898387246304876110368870141858850810668418350930979115341243359225713440327289450213398417412319862413542608098425963719484060991544237836157665480276786106803562098322347229022859888605710128134750451525257131968202408353712692861746207284150996196360905918372564598209598016989508919022040895725178479895287481032239702509291070977653274169363323716014406017293043340119476694991684452904296518181960069000258683562162220021237887016029111133122693608035327325202035870894588122161223100026337518001576116986027829482596335004049207854763324109650465049740276096922524458018003027222583083253802525913133121238069626731955284105097485880280549286832546294532128786795001447494915596038182822540050786224157227498942690884784757458123791084901888667339828019640956690410682367487758111090824686748127964326630738641051589419814975727196855807605668274824577569146364844992637117455209886189846190256527794624374437076783188988974204258016634027640049764988112088715176499516873183359433812111724854706116740726142391455760102523824597538150228610695326596581566799164258842162132174565171256977759604602083168858998511291328504760842853562186703172433625909635652795269309505874137496667394334858725998379918577264478018394395799931322870890122303665564052933789618950927777316946555492281799745739137558317086291737393067742525384190514854915658446219797999211656542421030468564146216545026006709256726257871426169871076870741033595709819063228954398342017735868522998873212562400685435596683255189145771673879686299628679127664418064665182097652387405972011509734235510577372355712696329745343665056092787637670311864191972717897647882634447240235309259892692868998665303287766137662368938912888285978648039822350349695423566901633474422684008101138903999635264361606543934235768604986771159034203768612441616391517861245901086315903550714886584642898280950445499206768270527609303573627061030273921984624862526272893902298941917877952439770836773559551174267178851235684751649550516509869949347791216606837431748796692628442659350950694387193348012142437494115806778460070812557594068998584772504310127111772617967485321892090412802043325003428783988996551673937367849845153578857701496493668504939009345886855460622828496767784748527278774082311497409972716418432940471935098479535569423393463075796630136604792706159531171063587008844173234936857125971424775661350617616830820399889791367224812573050087265371318171034985250576958686966228177609799355001399968222981760541828398030511288836394334266964264729719996151002944528268738583043877621861860179459102801633349199885145393825125617768859937113132371099590172839924849703623600422985460269965801629974754862688274895896184475094014584597582904046969290427876775311908471769536557740686531736196961989667984666824844874203353031346183704436192666687318695792054225775923757393773878634863765628888296330239978167773827729844295044697518673865761522485967216844954998404608941717520031497123543603711957153372250006113482360915356261093766059680739600137764066563244538414348893487130475435822479523925966247716112656555784950082915027525426348532908234169064594919070137201275434433681454379446620938514435424028096626005466523380807943802200803451568621739059527923504557969084814405292932407304114464180063076221668328973284711216036391824632202580745060032615868529691148690728288654515143718314173241401384880139188502075460265641387550173383923307553256869184964027865536516760451936563755690750241233039753902106420200037534769078215729075770843431078397731428902606952860143533875962445964444043868530936368710693557568675005726874472183231029601249008877153884351515720083317908472054625107091960196749019495640927830959895078676783010046606442177998559215453243635493325774411190664221449902521589500791597916363473927099585686973143322730970103047545779091327352821291631164724997216553342193678053710807696576209341796772999840442786912666522128619167730628486745173525606433396232871525653761197181415056325585518136857664552048532587506705045734360627496631027600092575249674465561641800274884698630467927987064769495536128394579891103204758694250022158964147471793732302716678016103031255266601663109853219223862876604979901505763439800226988547831897175575628162984109371543551298291676179344039642744163724522489819633061599713370181193956663526281541794006951645548329296024319833202081782021783972032881340784326288763702929649293743838099198990696358595349956085857504314397836734490678560386394008930398186771243626954120490970426538556639580519151614112490422475432693488532197059142375347830623908574539971666650457595264523732967476842590998068812874306140387169471523622527165139588383651103592433110394821540145666425010268124418436164432913823643700903606025357506664205437194479084639665110426935438606792422588478198620199397717190184811989367309568168801875346172352160417038527519037725948832900055528362920717637163342104919060070347059677162877381885898295394856280788969521289872572079538707918464861388651468491369732786944957725162378955927986320018824531984694947827836387009943531553612792413563705286438402551779934235074467583768834907886682038235293814083370977213290019213456839087730362525750788618449434577518510540343897689629155861981585724407738578346490133116926402923164853664186940336174807821490081974768247078972230350993691287206788636822405788891347068742920604589008911901739927612809296290927663752672335566577792507980301006521023878100773614843738230686403427562288836350688049033160372617652624824737474493634149833124076301673099933517958086057128048815459748480856760997056459713610455687375248046498235122249770203322267827055718711303816421558756362287463831292689567700670300913702095538017726630971175365221614797500315377825857072625327452900350515372956146889071811566085676699194136609759715097119995372296099050503179591121443169290231308859013532812402827457165238658973563981790232711581281250753939725811017574361070271487871372194289854812948178234054924265856871308169200180729931740939841234354954851733313009315894023908660169192198584975293053979655659237413116777432856134307387004884189961457263908625495374935680664865213733133590105170117693761807595032324728035586943226176308802386486011030749677906248351795722887509649160154853780543181074140499375432448556958780340493082959467729234361651669087316418131310126950790449647505663175143634071576202680798055070658746882636519340996883083016233211058705094012104674044276685259521748597700309884736404982969587161092309738540549006585970604519035251475096639302998283439495767272552596377254658016081213131601479740940719027095615875908022688014165175119518659141156281303958379859970712450636478397069145588545235866225921115364095842948057928970120754633483387793652675185753886002536455741075721936537486546089014653351269481425531357890524614620862843478051891507186262371789842571376128119727877584384604586212959190451569846285457267265773000420815452528403976569191131751703291239598917051577275852454200836316228088468051728606863737262414249253049214418178862697719381063068399710736668315542660527791026254294985379767241007132231569226856281418276083207498999413524928662992563189681640069698947849357281094616855398525065545334941098222019136031121401060720220568910409520877208820738151489080048262338550868309400370643058595975341812457442769247673528573387291403258382264613568647297915149173967223295025691952207698579349517185601474618795143605605664201968453025640889234912182070237062034480088027970003953005462640663082600854195288941590983495957731160593345074674516496832173444216756176379342976489031266562014499798071563099497825832187315212516539292017784152016355267895373927978227514697299752863363565280957204992210758339346201951486026496370784337581484784694866304435416284276214626538873837459825851915800261597266826848299311161540638503375512194354466717495117504099072535952645428363085016065538821542670339374950344277208264542966203037081217620854306082956616639202731031775248445032997394694914190503992437655097516920350786593154860683671825279767489983652992432282520928531934878410189165071963629184730773259777651998076798995646647139544558853337024367819797755563347509385467361545779173634909631564314535669967688673919120167596397094888697715552248522376335028004787991965909991567696545401915360321937148200755525575402041834753586460553676981541086095613341010366899719848730565373238121717097585177378265072515462038403015966692036233462666253870177705323143392757315934748286566983663073788944782120612235865218740307397458868420346222152158970183682725369568203771310266506049902035317775929620006055774048167339232210630755474858266234171300813604681827957370333627271239968433364816117622589140421910909286415176759043550220456802900570393343228670531704242339971729053862130662031221324488724583248972078721505727077876133920776983787532811847591634788237448461361121071196268023309491252927686326207346370692108658647037946765047385932692647710945055337701551176797622876816307616097777282192198440129961516544228583720525140472360952355467606228004845947167387466593494790392874342504071071925947605374128082677001060888467118787818775956356881411052595144622134676164314348100961147932865133484044614772395841036684286639750483229075738916893701411785591121244889470981017145054842528908038786970978630214071789017231936375092744682367025713948755341527811866279632778214991193387875680789085735827572939898078177725570041940191695306867470366121152679330631411775733997240729701943941274409101503717992826831415980024981213694453352061603828971794508162905781995483040188272366762031422649385001464309290279880803314495196626448919671271499862144077587452018049632170602663771300116234264454815271640839618953008422148108010610435885485919981143183060994561526761395709048373006875166946682426535638766148973639117015697950240862609685087551033839120472678701482750559213885333282075983601734784971101943818362920346007245920976409627590682668887871208378162254504158903845285001143644191289840458806326057223996396421603238045152377582745117280286345584976863546353698240921110952246273136279461211267275202777801538314128941344401881956819440268602839512536979656179159217458581383721238334275291567636344391625023337471279314753006617193844219360140693869681010600833295371835169007374302053922902205812931413847266235183738060970032949818967351538426460225714554748897260256752550314059359173009972268132802028527031501896844009924285739429934897773317923021456438287414157245885267317088769645692452481781469435136166065695621800624637802372545845779731115975925501926366431900213879703970070443206721847122177631091599454294111725989436918184378541102344622755943210043754513753681548924185127569759601466539429505994622171608455158521213062738198554299833981364800208933072779689021582254480184661258627543601618845270954882917961218257534553001362548116964081868248923948151440267496557745464199804404822295046967793659072968722335243357356271864997999221797102481114027146598372319757682579386371718093051193607268896519519917269641555294621964053854091349184039560028437055231406395282494710088964576255961884779884706450193851166344622060179543182168900304015457988534184346163373116245608419406861861129935232478058938306109627033919356010970917327547255190076555190646535095984041627655333196778493557874464618719734583856694916985924670048432395563887470472429836950617604191694831691737621771684680299784907770988130383135734711522588829174611417080025186744463797110160385054143257204106168951070046526342197048098001449919875802202685149224102168511292468571510360536013585675555828187483836856607370937087726197660107852669992335877084867273252120686259919068949719376854812399557804791827507783424146520253419805593417428541924468161404197822763864850162932285972849099092291196595077113885139079839617596330724589037155471201770711627610764194807087655009381323501001172943545001649652247575689131800704452842515953847284109182770738148942340214573212135819622808332805306222435741075564381796887124751285914320829701334367841671105689495438598454681386417697213393552760658430405509160359233645460346262883669172258037168850159673857420185145908681108030510055733764115465152528463045639019581244008508988504359452130098223098210483232349444322138927822912955445190025953470550880054845697421058525600330081714747320005194937490898358635219783278459153391375676099944234768526462725193939915380780121920509724853896617708905966279195270365296544938464421749370436071501623077974408888266320671611061215785483288637066752862361222247663697655197632367235173807446365915925858232087505248984976728847632785917870499945494272897576290271577421429996011598217949146970149037961907082945395289027977029297330329841668515848393281075427237736957452265804689709563922739530487637877379510119254637804202386533074817550044126706626601267048934633489975016661386497946640071384344453599059467612459429105189700686559779724560785909750936291906670788748633366285587109804642047779688017129553613902102267981944659645127653932995892936397715413594475952507829894926602943784171441309247847229407392225912131979473665376757613965318221852189052043535804593841170726770943575995280942809656624116693076570526411745883714408600002024308715676169864068357727664164894694019504062052217088626874845360934600121906775360031451276302139610783000105145998277728073811409339502654826662506337196834143407440397130157910565047916805597422913449806801051974884446857036943178218401052416742592735070672213107415315523741181572389313221958786933185257967144606581687678514477532216742834628798418964587239595579099341228266449898149769255221164326779688534993343548303564018104971144896181094059398932351139370913987825272224021484475193847420203662221832073001568015402247060448792894981948338479145867634928183647931224299006644780028492499735853909863506430864479294792436523055954961906853951239565646114304375099972759685221102896029424306408596026192432292701402082987633216506630987270879612940679768938495006114178447953077182862850368819358538175093450472307405051977463415893834699973658314985505111172430103735933602231938150812383761283278873720048012317124721242571641221281954528441394421890017532351174399439853901144788407530119008300575633331574750994321917945338998581349749194440021515059141019857676281393069006225636392455045409606704000124167103031365982755064623890120101669329063923081375114259629940697203895760523296134108907355926463611369562804244109192151468362274133513585745495286622733652548625888192072066329231264579752319234305031727082502288923942452515277443733132168901875816744056544138875863651328064077967471740779504263194118688236609699443370724481852415596844907593866508120157612987090210048306117161406774474868972795145035541307576113568167140804003835475296998888643884932425727711233198963788325982922125363901138781468311545853530696942440445538209503125971708330204758088444737467875964168104930824310107099838536130926903053056730838762554331591091098334104117970158123634282321193185064556641659415832036599066793934023695903198941512430651298116899854221196763076948651955031830022367001790937595572679598170956486465765118225850741814166293969126521043841869529369415711460666610489913080811473264541036898080421093946561952682908937916439030607555388836991825603380218478359876304515734950647399402054284055973697021201380278380202940594943453722635823161284578203079651181838230608390447187779477220005159421001280032330896975788999955475791021138905785459496659855045454984936092289047405949038563288637357057835376852004973313058864719194800844748968534026774102767092111320708184310249412283384085008234963631198556046924327134428488364503430158691562708221120529312619874192076304198044561904135448035118872323993895075060858601919310620649408143180576745616094331564343245917083274095731763904674945681311505664746993827832995147490431032397534545297865567300183854381953518133227436138820326495480030421583977286688452131504867666342820464515353760556391961487404876100130965969728476958032673383182957929562221964805723437141030730882238115615883713262594305526814198860404854605951765278312077306960220461899937396867368199930200821574937471288120326426937096031356540601034762164242156939823605621578676785261330494394254472556491808613086354269265309408448562967426620622059474843396077512105087047313297425600415807991832899190910417725648369250857330130430754764694675421947326053777971396590115044148815265903818180801904125377006532756443933338475500078236235424452601462297455379080048202970076687110282106814683607588248151187965338191114945844177208335701674417039239828884024827605619991551405212618206541559383470612557192483510125802239721238188315059870957310911023027490362238318150805136996280868552694612945554300902588926909486355043789356405849710618421506383381654140163903202151321971050546065918775920404066693953875257928901169398584700067694322971870247633445616091268470670452166124271550242411068003448887774787885253512614871010816988604440595738522712120451785900520504573953894068492355290107442069627663985812834945552118705314866148558404039405732191695606973736284184519380911242988534155744608150277260874987187652426932957230183598343741242270402497963928616373022180132485658725498846111239245874644898148442401328602851045994628644672340063142440814912146433727873119495844311642014277025570323506793494766325129451781525191767294580271408702180064285001317495590683092311947788933055631205201951432751481641321274481959044202136093774709091037503843461731701571741466713708460408821124415002574938645178284517224610500634365317025673149420228221184721188037135645635982899823464801921292298076004735679097398240356035476223700377496297153518384782167191595371907903003871331758213709772321504307821788256327132669440343117383133962778548342349396348650035666474327645638279384884649837980220519466296512845945849436778078353589089322152354598747870280986648851878736350685826673804571294638579269036756116879731231108309174294685199460521272402364532292945587164322207603953277219362437854876341008463011752812984446859601961333279408807175722844012846598219016542430551829672389896424389131140122247349855083653336441678786530227107002773711464776759181404774558409798132098424103114643729992409866427812475051379172739840644186192157446737084748231745000087106091128713321800427429192595791476390669882160327887753119476169076899425817084283677173211624932392840332675386213244505115069296414781666542590585820699528731187299361904385082087457313367980829169413468570570886441729142837319350425147523356161099513276590854627590643954069243694991161298059264490420976116333064533230785774835902791645481285943429342873087969913884572431843285645914779958841832045299470734139549105511953648472924513700883429991123787629361557702646066681819409498467909595648966363337262987312220904064881677024590206683611777510489323176088309378656260483016938344819022654125335167371041216140755569159176723785361680033065352571719486797060868498087275782456382573569696632556578165960107316357154410153540823592644213124436095205222736806813165783134267730241137399107526087817819299128551394941213464189907874575615435020332961854122571526853142291802430722545228829027561277771562962616996811941025287057674361026988952635229592307054826324483086556906670854009661837769381152950062913058167522909000626885618971147905075667028777534307437233415444732956535268731258435546789913628851809199836664409526508935548739414384783109743824466845849201394293550305792779363454712689881463960667919184301130163831732276453884276899783578101341295886384942626942090609857495105272669128995872278257483046600060382111809227662477555977989259499526093779829351761751892391544486383866056851337707243546389366563888654708913472480933558614591012157796616548408627542395437313297423965240241541940265776006449179228145683659406536586445916506985615399925659810154257888506766552574254651155715558312129597080374201217114964000787559953475513812783801614559784399294595966654473260622489968718872852983329324011768435576427735051184030175062586660038750068248797031387757918406471546209084373983570657375837873919828783573787466392402996979430396466670845284611745228118959277435064866658193198867467500905780682558916744031769574999324010024497074592206663901274320899676939627323849073194939215302783676178817671024149067122431977494483412790331386903801540210896310356862360804592742169681888575781940145951659823476955417067976929965373123311338419494467611861726717043402931784232407896281995413322922993234256218368451277641004362719601394189125945106576300380955800833688414095188466262802108677539509923808635612304413919415501354974938735557623163397852583683130473171903418522484182409177715417195930770293625643161117455674880513428634167234016255455228173134403310446096460112305367284546205991418581068764781204519733506436699346728612628955165088003686667672439250447867366932514710513282709633253575694088726747305585276207063649939770718638033174531343788388327259095064049762177144438570258959939513801902171108560965464549676924915952435643726073283380369029410691087467425828509694013935981896801884053397383265898234663560661380395089576605618932718056684813115034054254416177991488746786118579567273334463243401744932479367940547503864966037295759302195918804438473775949308945296327878004936904161899344924073208396914534278196176917755285105680394629830435299263299235373973783348765207927336781941800361291079934587730435549776521102479690329652519334827174720290650521520533635198931790520244150774885106511404324273483214084051695608679089080066369155957930217999422379590510289995324331686734716080521249018873296059969578083233527557407705419970210200268658056639237524355423414421141768997310069699944717242200653738652555661047379046543439074746316127359631990126171895609147105960409654328927360054403097767514956037510820686410341581518618175608237267564399231523540872950100387161959055855178723933661424892902492242307959853006133146923353050391339759267207610307942452638386357104451482627236491696289509791851975188742605065538560952256424264043003130457487619034023785197668076755544813136835670084439483065808426857285272532105809116219614967718824146887833003874069920203075609139348372684564159435161538779255067928749240067925631096703013952290927530108942259089547196020165131058906810250837176543231443859257120659692353598256084259061306139425070071918535258207649835549953488808237803601718626324490706168038329523877757521266588429337704018240391152903132004855643464305166296516094825048540521391111371621348846012770048643215866012543226141465612070310145469263239318951141333219267005961788553568132877360091454577769500458217174807835838196952749888484668778983574749027441324158340599293027242586096859021405153023994048691181359328633466730792697926289449308219493733043064533326026242346557861494668583631658385809095679995116928967202218570696469387131981693268852010879265900413295493573863770359680934241168262324769357192596304232662110731316331039647347681227868898920948881431250984839057109755124791544228678266902578047412870419358363289837556259918854514729710922149063976859132203203629601100198080471498814637498374676551268484401928316372342817443080996493230357078408071494353796850793139818759049401721700275482867382721453296370479005518269663657456643818716592534687292022698042123592851075477055142803622851380180392967634099320217898757983752125637506025282113025414552394293242547080063686417682453938651126883740499594369729798959051196213270411173953322827619457508427683622145039367332500775382552663241820556822099115780353800150706799480648618502345420073261076958876256369172431947642752929302503718363317772204604094516602836772682316895511762543458843045285581730704848955481009258641409460765700210069994060095969911451364418882378667957762439840150352322758932066094718857154693558227006675985581755081566751130280439325503123236899914191996542505107874269366668565192215147764233429584093316077310846938695084972875719088025149895783260026462016055069860281634180828751987124901000601633210624357973322601063594744855060062379073693732646154022422447510636908142655240489387778352190929118217742103400604425521989351343588223190850670279787508596869423683390354431221911049516852789548865791983223856122674410202547937109547880548372670174806177847545770275610426116980225159177155543869084098671142245242157881860510686516631732770625402237749656843363489468313778812058561457165871989260809550477262876197946778057538253693941515587051189480554986893753184923455919471598681338100963080968403358076070088832618962798986429413948514047716152389110023544189647828347228709710880303498765483934364850867045542763985806590035809119550378846412620334262552911964241156285456998083128640695105568094783539528675093572724803951779646928735061055683617067480913924204863216869684092621624297782146230660844456462028591566110763824269394069895338121991655384749639556059867453346186084593640682720672551218867873481487824721062207850572136789783845605565020189982693243528168038961617722354611471272503238575387384204531649608894223418682752116853892120101907956369191689421887804245587335931036965858169935113498558934167923824962306810124429931343377877613498432615386663427508266453931085066300614003465735472689759217207446384075992399601773186157631872644102034186473447166655521281388577478521725648869328819684181061786467345579843713352579334571096409619340413926176239735821586021657817873040282868603097232425238362491798038013265075496730352894580860907255876230040184531058135880766372087391065955614638436195453021082119939611466588354771071824368334370407705030085022020606233152426944285757734316262720320520450556498836592534522738467032791627779539863620448903962181940262703482448372295467770663695549161891255731900614945976909936001334693369322201842062031153513086686169827325269324241899157710439910126899133799486842416054279801838744863204311207910611223803710222092644207135789775344570363225525205499164478135625687311369875630551115746139895503945626644686106742608887929627864824380338403247333271769458865922948951640736915508737285245781521292366887969829989539999119665805671270807627225203336033208716539792462608838999639549000667328451708154848187500161946893688895920552634617267532627882880940051321683869048106228376171690623347697199917428338092289660157575436272489540318244224773441350418857529806776266514163761779015565171398520739012712077073136972447216167197212925772396200007720044737249069990697989622796483128317299070546551485017602614236537166836820322760580752173232202798739874995052181162578919692786968371056825010614235680659094096186318809575238387823005523328330520076969258570516091864698308755998794169986684914000114905202819965993987023884667875933329859950027869570684110089705395353578614802758310100105378181268334042349299921465740493940005893321921962612943877405541426052296871052938710120061326710792611820471675358768244651986907367057354891061247785390970586562169981320203889598874811298539123524202950360019705676163679037518326300969788022961191870359641460323726772453863257058561876850030507054810520622769568145770509423739133705705788506384295233285506951547098707542696761022276969746363945483666042183678804834162995126771922622053900553855700885258840502881775105219733075643584567287972957725224828036775437057637783022792350646865311281982052001866593359314727700868414058545306006610868340161373096919409297635475500579329422830480254756607578009766379942848516358983342403421900086190468720873658965312679020038283867191296354519122461049823653457170668494175375582299773237818069616344431295573760169709253276977506861563972574348611622551267985562449713046892206514869166567359855007395448965071149410811564061794359876739507841357932101150658567131221041161365134778001604825962695393845150728880964570330633462492261078102168990912060747545804490280951530733958886246764410388880702063419812838719808922595476530512508379829000126011739238429090819066205972669695314648236041417083420148481207422356727074205170174279688005306993526679649685783533795117961109947200863783453520136719127306994976451001796219136179345009441592887219701307681961427629389284020076817822583155733510731657241714226931673213372424532208025723569994211340850239131757341846746378087808221590698092264440968917220279294357534584855839849865479390192940564314246741133317803966902166534453255051519937768352018872216301593622825186411585323765588213125247506391698377937233869828074894614818868728706214280634382938989384578831638138007416372641682071587974394628257804167243351588176354547336980501382456006928003118909981705718894663053401470458533335820943970137915455798963333576581360977931667157390328255390482242934034280640462564005343088998756049048881404133799227062073081636183389581224592280315456737377296729683173976395460495527443937219599548982209709509708174214249725164042501264151638774268998363954622004570449747346576444895686562871135990231926463525006494688574580305194902927424611869643981086635269615496725262917284536786731049584328904325475135025547489311053522798904469751936330700918033055017996109346298295217007531467498232722496882912769013338009041010089882759399558053016228189390631189310852649941261657948179276363963470054716766509990858884459566439333972238218635070228466546106590434548281710084479214823789349549665053145543401055434234251561509784898993273633782812557477623167490249504357817534449535154598329795236355128076846352037467125732994018038981492950696074023653138208978431681739924856013093708411111216380103874575452955390915654156442468361877254983495991690056040577837911114062087965863759019928069222774986507223108382363702305054224450320997751975863820944633775034637890055235849736823546550345584740026792552394287900061267994272844760946740652385779029384852782396201460933572476178540352517582266598095434272189788147622523721867447278778800638146323387544589739588586026047775976014595413761063993027241593602195222390508891561604787655891706008137617898887927650030173809716851261185394830388743597216798484949072763953843618823174848160402664258909432843665014834608502365732648578384161119874016330137885433929336429884321706349191802578818782574321923742276948684840425511440830400035056386600143818052856887332574350737522424536122733481356426860556605341965510014518412513954730191944979526233179968627354138884688677419706598850079236707969835706616684267093140443473128037708733966978552426347774387241177613917188797365452026629750399486935728446362587435470399950147439562589126406139286069986781120727989023601584989561563473842433877538935374483684976644099059075204245634856270734617631798772654599336051135855182326051755029188081471533366223338728287514395594437877221870982705643538980205205811546646616293391199390419707615866845860114115568086418320855445365973371560656922039464746391839003054986075302361210140519506587202639082364254015169863042611907545913526877043429605432846146693071290235552031537414487331387336614822420590343839889360555680894426984610771949368733484712826225306351034450122482304291639197026672247061074777814054840728399856953586459474432717572337827032914583481311252116721217169339123934049548315028378323491136401926868392931354547847188298673219996455369878276234969639698237862276103263367883508152072659639756821368908163491292777499526506122577230964234912661742336379304668245775567008798122006157822716919918598766203116726460734436617346680665894841787124128909170703583251360730593714280322621049784770438185057827907676660662944029791102268112709531550232319297957213327624023765179102799217013021509242185626272479988005575373515482915071624550267396659143235244726171193617883901062443778048516246091294838276796463708895842889085388152270968324857547534549853919188776509537291924699479393939515867430557359494731202906987104603550903610146173561927979160593814490634727709525429262557778502473795788094674746181216255603582043347395722998482946330914698934443913521111660398732410844120299933950714867760144095381797451960899047103989807495434683012486157553354260392834765265779237288385290478056278671798372692217674956197384941805875296323237080505532900822405149170211372856458347029125034600098947693269780500433320291253092019144944774634895226699686397901925852888154129156022651648544924706109445860207559329001451541147637028246051883904820065102153224170246867324119706260657719296066727334910675937841033384268432532752182121603697671505204883674897420589511697392361123765101665551257481448557318917336880807191891396952026365828839816361434680754593576658000513156349120172041814554440733074453102092391993724526614756011835943427735041947922159011813249581846483119751508879150144702537306981834186437492427677629713618097495960348853212081839050375455258712861284616701053817864454263991564728743467855643329511391638513517378380370634502319264683610342237440405533051028966478332012700540386882098589844676086907704715897300700133898078840603135577705888814921392760079252354975562177201637443331231588506708645870812111345385422764805554606576168858845511810266005742329513776030436963689319725233131901326496465982568088656280285403031011434262748986377989424253017418148570082765023101089014482891773650528991406625556909461992217063783356322078096888054135414968722718831956183973267048762351368380609930451215065140602183570337958324073934708776412383346364988168100745180893865650013000501540084403288766964298152444586658151681819753488379067156775988450440654927469507995983096967838506967106066205920374472704745726206469514318295688765117319091347539836842018330558467752696250201486671230681970266856883986676931803209675366849734055324664252569806318385723750233965725596740199341641425328922417486353957227651254579150248228467455755577473376607819311441463545633636976428378607494421600648328517940226874200358565731309029351727268244224938571556271426884162254226381117805314864932494613136124786473837597388123441269915563747966146954577451653942425209602783068690810272931491248842492578386788081784313156714401492380223793107380582783572911966169923443875578050849950402947990270733078050320120586116361247458803728092816087481882771909510718199326688244379623658599421899565890042998474990001594591790919507142212742878256538368014656917846700768356815043059947898818833870391258036249951252473478228063610832709066127886813570416068264404240958223445621270007824896040872292040251113106607826808643352104864913071336877127654980216712142427216300642438176756725093475517191406013210761115234370766639973017606492753176871699183630530660122626337477483367883607637793686789382912669829542839330899915898221806968240779529146339313769966726354029361007155160810179138704545264990101704378770479996878930517764981541970182853227101923744227426035354412480143202828070070104137016338487602784933317542796605311129899781581895275110266616964074528238799135845376164066947275454798470229806733949384945430621236030396130291835831249266787384345948398702504678387904100761865847929600340456721417437257151945300128965965866056140221507700448036733023378621857237163778150163554081780621615149524833783034539414211672482380319216268105083418560231864973477875365246421094775328561354814057445492205165965914030997187313906881658971441044911804803969868385223358937955542070793669635070422670825345797627059350027026135645818456565689203246198438841886281036723662419696167349077688660952043213550196606719178926571739324085955109046594722439114842703068008838461784122528549578177752742578354718966755764532533142661932402317746964309823143345004081327724890986315114674935082184051902787152545197595329860089969726953029151930889402416897963145225706759424161378203057107880957591077869074527171152127378058635875822450807255202235391915923802624516889216440874976239632263995620306543941178442892246431120131489074079419088472857745587867153744363451510850805332599736237702423410438723084589606397337275981528623557090983175489967220509628966525787382856394064441447845583941624085738850700128823775970061468950350656036831273727429985111216189627574953984666970440319395182535563050285197283166340614871655486274718359203332210190425844315688378489693261030364715952062587878768143772081081247181336553230209471588912203667902795838562027780074897772270580140359786753368375997480823480349384794759633307561164976030120395170083545477408441812864959666530145236325160129702345645087504266970173726081935550038079854427172573536182324421128743427582157074470721934671519472872014625683189405824862527603014520569595018362912255663829468216390500802120067070294678000728881099045328675047275196674099918206268552155373481899450514085498670315136772522368954446560559210487647923308719914562800509920135412114454821852426268761648924264404993149311786583508931122437797150500651311865207525157176347311063048304817141963252608314410870503474630382768205264354594687745449211670604846142427081872285909682300999403656257655210162627370541323833346030622311797503241486835033252603376118139885299288455859053564690191033690097781835437852792052927007185380959036838385192502978850247574734279094094682795532734342261590423609677966406379311575927726506622469259915193494188399249236582866397086870509022816000278479135200416419651304118528242975796908818080532974021452511650007160098838819346786391731774362228052791882075831762567231396628921331441795693310721921170019232711942874460604903420101682160790014972475266552455846835996940008373711603178232611077629246977593742816660067760058221859737021877188645957770923615488076349657773615452756852857929387993220882988548160963616371926364883813481278116620856846759900897645955296037199564451507900821816754459450841655107957880329319818552060285601019729578674280192477557765000084389936484175330507362569755605921114257083146662060752722575162732396590484029592770099680952577878456318693508372051208520694128350401127836069292230433076483162246873398729125440736792394819322664533587514913224535527419317453987574169339830689307749504697190710302835247689208740866568536597380424352915042238234279929784041204135553852307991513660261546221870894409674051509866452246533733577229579334096753213924375976529605775648824939706037993378352423368719077035083184127877569312706344652271171904634953988909809983132491862751302210457681663132005623093453739232739293395994976413105879987691208637783250580109923713132343740592375062078145880434595316779384085458730347980798716278517732431438723155201430743599191110575077846573921295493087388774277182574576222938860119098293629343620487388434169180357723844792545556016154455985381941498378353209720562278953628085982985411827984279191885199283937771127779057656135795150047658820830965555254686946131754329840440086031327346672795037609938257328490041628244690477236661370693953139610098304656550143921998189853616040995618536192694170604316236191733974520293198495711698943128727311760580969127780272795456798854313799968230913893544309865019884587296453608456973735452452919217047870144612595429719382937415487912941635499483340780401536559607089869311326926881126265483205440302336120998445411230768615134000829096638912744479641807825754434852528341532556459691283083978518108761866145779387566119281326515807732737972499357450882268137115316582224939856464000667118332028659876515097464881420326217006808019358535604708640516718128051296545398233141360259791828299781586962491997142195537312226954919781856983711470127596822433808416335368207654985009144173509535413292569361531640055265673312687371533740228397550646147948404404662433182870485570990779894845009045047463354020200252459195510207917741358514986290649891768709617384478269382819419259295620489557313485626083092741628277108301454605974071583817004300321584363486627113266250638696270690704899997925402781434267889603455061081156038455800469975875331907182588406318104200226813417955736453419330668613289116908261354058614118436094952987004518462106803482930042125869996293656800194070118994089363896482886571817214150414185550662488798834513371177220904618846033112383230161889845850139872855936733845153550613243300159142135179846376800462566380763039030976325062203989758704539624305164488331274014482012952053372376637222901806229201549360467537891017663468931724184576352803519447739243458412173374872866022906799148619769054121035852490199119775792553009356229146359850334050032956855066203744737589645229831038557105773075371314447518852786914790458259998484318974933078810533267149753075353186685057636844943386113428023378054729670594491033913057164754208545860015138057811954765039986905037799064230620692564050201057094987909619287065543308181511903532240032176855343661798658739702615241975720279335105941051204338903510163498237060826839456690521301739774813597395241244936503170353647083153457043949966602798895741243989254302092803269455859550873256850476223357992814487084759637492927980826636282912862909119202696443727619405860804307281059312370547419772884300156591600365355540864045333111055456593501688224364650892870221151220360172053505584981046629212484777379869265896083132114855562548092824264431124974683898730579538231874381881903004838231627802061931071506406735814495437471278180700985140057396531576256612521988028692339256983055373573265942336943646521430388552849325228302814963107804023833917332778665189184470537190428418924691325906165232000769053569353377208027691727709987643848735019214231247610896857077141092381220120190964292344205934732527742415890423638935956696369977132009263862888780475009716598224898856858633424367698052660613308941492568570637584141767993840621367384698410745958351345577659193519405211274299424886474304951524216537515975505249675562353257681360993595495888524237323150847700429758249328700504199373644928465130764883025973757247544692104037308189693512841593852378281455455220828329148046578231844955017465782129474023673515649850778153176807421176224354115425539952344656217212744660664906224704156759058800076784117657498988104041456859990972743133964999406068530679515290282967902651986312080213505239998553796330414138594619629542378724405436315227872552327803724977180440307314053301265233248818790710886624222141778805114342408725874011982060023004808909547088753948768605957423491795223317395820115430550567271592608100856616796486077416381312357204491964551556639120789877608041316549924124551467212657614952623228793992627926195364347920585945313148596781839411826139693416962352318827272973197184259168044488887724745396218545976218670418845409752398787942244346751465390761098603034427300283701624532919033862834820090521330512175355343797492424021871799586702781690771445822621211478431576356864086297279526375551501279109775574369284907821982616372343550068850520885300291536043155848062673063017219700376204908187896553358344135060407076915106398739030588294600007001934943378562397429449332621406212590559344903667320285698615781591521166337632812747407621786475380690508857364845461229349902524268854612089982932298518840051531859362824625305920291649705189722328735680697893088743297125340824923899698926219240512115300094221242335881305859921801182917280554913364768935161284027335915869142578503323542511214742824993203161297439231451752079938879677954806306262595725060440348918074584500153751124287323269308751924739920415252213450121171728689307559455128310170418698390487914154117633108462500520380067133051556762891245176460203964274586168200153711766003156858210866285194003296517504433317581722776571701811945924558955485273734375961244555984771353005873567721592299696075809079557722556457172796190843853363574606901853473848815150777774243373234955660676386295235629191234235948064459027450839594743073884576547030797955454794174401667984138015374075439198390987928207237500092667673809689798621201748912319622327063677016151558226565105618002091435624458530613035723066600133697575285195504135231784156959505569478493798004276611467043057840712850971517872143480101658727835240281963959863694884958829889327006049027875681409677067303904159965521314585345747666641990350646162547290991566967973973999455320986490059059529872792780034340827947767700652245367181567022915276538294192189486811348645074237912131780235544530488174968041124615605204102607148279872497502263573213605209107602255888629216234381260717484994855643219304070616921292178604211945335715381256183703599655446153226228262064227573028135130396117970705338516135544857387994196886466371915568034695762434263472686210533181589074364744980850968941637715531591709258230040090830265474627726493237862986297856087146621767216147572447541756163613433367597004798701093754813799901610918981530946029550996593499120126001684571430084292941310153320964386164319095557907150558980539521842146427532952782081163268351692494102091241789546500841123317232330683700815732375968825358926030406052838148125858180910098714699070084504652906447008426910396004283706869257664605740164807812443711866022763091879320616829975203130779878086423298452509043270695445873751869232727250466854396677888562365285778304653907930663196478319922049479057227085456453284348868134894770463797374293502923523226785426019638176032076267997790672627593353793039041622482629397146676121512289086740420720836371848758337290836321922748289134306134961914306880178133561373989626533892829626891194815533554090547181551961491440257715531328776593503657666921284556252608256056943798389467559571106916330611375453419883619575736301338492727949133329226016991095993496112076336960087353219548189241078740122560276812553616924172302714109977791062064018963912133997740477621402185008891723592496148369967081706067717337806439391415522882877518284135633168659815151895996716565285439667220503402139155104482291755632621150380051520895807000631631742707932935736451815303386803729185653679928705197123996138806619955487040252639516343716225315495351123517849970629159103083233888844515762944844215098106867583308934877965119437500960164603946645603848614609700718768582721047511413944054040657140372028939895218869121768173130001318264996435246801052649916883232329075578644030028473661334667765314288946382632508799469219415380426290291799118057420505356856757184331703813093539956877496818941374790627234598815251186946388915731544373523281131503012620096410684747004837582514809837452712724488569209921111751523286967219283041080068657146492729535582311073709719170891001569759035743243448149980068857776503334708937926834593329265745573859125734012503299243006842572018346009677047538945140132706915987559096929305214509929754775497043055953584973894353478594225423286938604320773713540908939972151354931996211450351271638745694846591268543874496868727531506344425513337360886064088612569612522634464558937334768609912866362651229442768801948830246171180897482205886544628528190044108211872039045646856729781837412274081186776218805092532873156325161020045025322350801975123848372715435346350196942687629627569303020951843240213905977114332608483731318414928505624360880741740343915243498374181655896245444667064361672473726772939687949468961304367506102453735496963445732266756387605409820527075159724448429902670003943806579385971163328041896025205466894420045586410632016031067759890377699861806957148277108600181151527989277704791039806107593390843692484371452433011282821161804681147981889519433854002454489370610318979856966339832626537385240785500567686191884531409414562387196482115511777493217140628721325748291496814865050079812656852359232147248436171675375770647808519726111835556432404812626617864870242323677139609667681573231025997683551286526854204772543082399908534369267888980461759283200300068762039760355142356036622536355747278187561049301548377962590652276005514201866414986977788913749624497573153364025111662420775413752261855792559879141556735212574288939332204821765622824485655259937233852502439580482090730642835049570438822571686347149024702385251857063953773319942348771434457884737924259598137558090926637174235461947545803866972433004368095011390365116394373578776729162488110956749655641192572262101081029776261979011675628462855599406184175178373720999986441791380186524034046171616388923075633344961670928943437063242255632170498581202178400860821773235050298063352770382744791845314658144953938083874465241121872217522136760758216640898053847205676913170458721993223739104435276254592184735416654624218445633372741227471540482174125102227579351690608269357446233730104514939310949957862791577857835461417902458536334189944031906368778304779243533709964233503149600161191617680797067438013485891305095807357782071827735926355335627718240296577907127463921993545865561795610726492299427827875687323892006512834411560983743417924722773057109423121493350789808217939384054465722407380500103215659701294838846060858563375964385313289202855895828643563383134682477625678589529232761025004976098252574175254405586424524393383504895177779633070455064349340509700745763328265087588328310636900019594903946442342814965170279884976969662128326371970693732763026802617813531869301962601501363296416877747834267799808063121405421208221506563325505464362706985175996445226901513175442783271754714688359099914904831077946094399256668375968915725715917627451649175748945686071457350384176494108691369151065066315679293865007959052570343654911385591925872875286834394116496999198311315232548357806497292186868075029405620712127961291012417747773423694472598908903704728463548978147632092927232169614312959305535199069920276134800896547224368206261368954615255289165465834873029179612229920230549492697292672675885301104553940287901334185365817602812715405030184842110029484511247912786538208500307166887719952920614494434453994471793745194974051454336394483927337421512347581097299203537943145871296310553590922245802305049032712025779195813215251310748261356464464146747604608911923378790433571990480130021672226648586590588652447131708408847302563081412262626526397691866171120293045087009082745848989999936220307703493202732445827732880441519514990176437599002002161335690173166708150883134136853217977182544693549292683614861354284197336843226062064449162945360390928720266881193149813372042195018668163978155630647770309988696725760606814929699623793508570630940712917052371686045867287437998700891794577903746520429137366824775803668493224471949675003891393761569590958809580345379326420427657084161845821355559273409123948999665799939595253105529316684412815689230733769499406241614015425415333439136567366952441075829612126609094089836552177538688016084698387691885780444804289299140373673551843765316966350383470038636371261655073642817639433707648285993564532458522963453051435899318931659129835630377572777682228293282715212859202342946448981527171694501104635692982343378371289847468453266468211486776662133143673604326661679337093381111091024127365428212661745822015819897529371258657003709731625492696582797717991823432385177673703145729880427771183747569979076706312550047723369543113794677852442451310423402662289741881122815609446052189295126378369598297454353306519943506567226249632821995503629352357162157796521418699801601162544699788234767065071212720042395672876708598735149145939223627451557055363299672970013148943710965291755390200213241562777370298765036695621153465755685852800376026862406080356242339027429153324908052871316391322133265327449404913281547171562849131907146430311263755591202992098043942771149118176065953592784853114328242866034800749551322685802715692270682260469479720102104386124957109465279320279703981196730217573749519506473353030717283684001524124432539958655349818669295491545545585830090432535591245434133884226727148460013447619198882870960023089945780683163874124774087929275235373714207170995925502981003426127230941827447376594679759239425223922880669990202420632959070066636490258749354129585778081359765547259505834239192061872153512811819949855552724090903430421767533027529712868604082499161132298026900585088486261202661867163352166689097452615265784620693142279653920263951006586052462717935882798954441421026800386100003699715093886512581580198510947398188538075080081983613742504898560332773148760983660070200380226773334745285785455451699081625265319636511203755232826392113811251337835872110033572377663679816356713194836369052423320055285849308918309792253772663121708027976400744079759569112961768318173116363742351744494534979839730221953920195634364693828927194380863624476195091179141855721276701601490880893818700058735810783847634495893843073536785246188083257781392004122413892314503450607417695386115029424698387984424989305857149545172911307859269443355753279127093956666353518432005438948836378983662670821618537238873662478873768978934164442098075413918600461071862984969444900668092194938448398452170038475219259302321868854519610363845136879543407265780918810909514486294833106708188105788392063105991234528420498333567116373695344023547835520532477792359740999368397558319755872746271753938510299357446911806268699700115577858855910410469999347643007013955282346009749478491099332860812431047063075959339496119397004308069839622871329097880225973512431184725738766925218048417612381682094328325110909513769670631458040332805883875166221326810243146402605032028172710924259517153265998865178730613853541769306618968517943565306519526921696913030603522441607742586797090397864857709341983386361567819565017105855492882013596726746324434961096371267176742415326660581614734571519679457130952927762090742519435642926452974575160398578172822750588201237535628387915763673885270357840353025344396627764841966611455478210123758860504187066890070733681493187452877819288167939050228390380338589036819014452532195489062856082697826070270197734234079176310735764525072801901518800726049394636834742449445511364955282545217472079939633794170958609117507033794983409839578426541917586819168294961011642995972687180433698773410690946044769849593013957806187844555789197509150599963391309332949849906172814981454421485765332649540603840251848137021757272445925636622618584722617668349072120177505959702763130984275192415015254939011842164625297277941406827357777102617731602960323987780759468594197840859001035336338140363554308247838656853790317040018144960172341461857686487000044878158000586683872407194580486925335341084104503149409660542945231121440574118261533936757516347662068017465873309125362402106961278105387860125372395994426621343774366060324042074860004310038722846185454753766150855150040317944275844245538140523385735264612893058885217300064744443493037268736508145148330725589787771702035559199549551366230657791927979215840648053726903756954319785067904976295134021050152654758519501851790561728013435899199715260940078577349278239387758012305292525261663344350322233865742974670602355444741856520036306678265984336694006437431960317655837110771576419595334159026837036737190955031647536149419125252890667254115177129870146561884031346451231909468034556532775270620764850131334799016841741379249784237695016253136760710120656322045663180945799455849821053872996426623241777221211183328493362312598541615119150379745051880625486991707901452808495364288455727755836484085252332484123552863558568131169541340129392623251616420952637831772057240203938929076320624680979854612649125767081125301404325485020052219836021844071582156972804559967220048550235847034384930275636808203222624204294558973918119062296640163304794138312366532469190939391378928048910634300571754883406556494905810768054695791144192495719539464497830384729592044035367563036636356043563220458148255060500753398556290702170614964566587031305451372733140343356091073077724253653477237247420056819278981090874421343402640158945962896298439120390359634966256553092337212350775262580798477828608952617558273232226264836465539047393908937006192872174413618144549050253328168222646742539957563087718555484423079357358139549218137225857017394378633176920384601813113191425399228390982230735644115669009244409235342453754720762317561116836036181815721136698302313450836993686811268600377895550579288317530198850461201851599684860107153951179720824919796146543581541970175276587148553117759857151783743676523200534749733270412504669991013467926211452229336110481200836314506952671171983415261034829670813275034056461197819744241527108455580138475990601124270181633946532815359077167638161528914993497416374274944948900364369753337738831465620055929616761706947929746355710916190546798709994166162673586916378689936326928812824894926171735415179439441354479781180519592947142969513670765376069991907666587255933448050092245590607840575624373666841433685840172193552989075561501756870471390829632816674236763007718501390883605368416452692216601075901733233448844246154622335414279878527299226574166443685191744540908525496176033138196354031451936573045263617090938080639702721675445573446046319289694456168219013082208738413950961898835696710339755101335247320267364256593126447904209174310933311173107636214489028782464060338316782128207860961767933814724365430160420434632078181547980247534783262682356816784743801470288241010400005417160920722270531114867974703394888210196866922986460294991666426248307982541519645653083906142486999345140979645082206276878030504234574700588730065650093459151096375836235602482658733142180289146920520664562868294236834805078943340061675466618938091972952498874834000975588857411219956974479007275475788126567065682100674998316486065905121868170454414728280883089216382802092197429570567670813275136440655083737302643688337346672145160137313234696306448359021430643504940074996961888141575010899168005992051848692083305730724578281269359858147340958172953461026185094165773891005204370429015491559551375907539686097590944856548097587798453867921476589056350779272679863249175633615696461968088533745140888483451136666105967005729878536194034927865493952416806647233567726215821523815843373932997608965622554117422205339343932036505800322044425289306980612546179911674749978442548102912086341731214483087974225887507127027989508499450155434234300479275773143745012003908854565946028182109416454460738198414594038569689005936285058234813895778094938060209632177962646055849099338885514368323933190848554719661397796065668554148626937254339020390895458056545838911899189129256306380130385931685442796723064088298219289331560359783432722892424106191107471683491045907160344770469830496551723165588352638865788615482096025774475942264281993346147301247283418814901363915217606460194353311295569416055364609030790914126763301019306041215708057859626030599950501335525551252553064841163859331692455429819350821814504331864387828068247978648547201147602952094132276379422633319441780166061656790939561223171236168851897667781728051351142460912771398982466402671125007838892476961817228256470672409275551123876387382117090376038631991670066664677097949966342407711102370284325316669193439807750634327435217932961713336543122384722840456277596402192732258910771906148428592341578145774639968441857071924910747832294218375350948467591884055777166905747979396407319830702564841184512333492195533539185193089513318285092256020016020284383871897191772072840876727656513445001560125539623368417587484522783982083457005599716803772859267197341176569254507405335475923763705718159921708161043954058181816545638663801299572314581677960963604582418738950102474251771849904010267612450094251691058080591731772982318275626030856067780393448115616537714699480797242851877649274620408506599952137901325065434974279328868838949441851998017406780745508969145462703931080489280655334132034007113651826213719253554710683359476106167806522778185421609738772542852074265865445197376101566231578904759542470357108222778941918266772134148346234591360452918174279695017590083301143209097292304313294730517343690418794548342762689273703852031304977486947627424732939811353945188153425481599352555101615670561171834477559878011470281519415640573609185728437222821228826849232154652762584760835212072391356724486621842653948328533129842645040831713130188387940422439230081339978838683515013495258352394131475420475662544315134574103991592430947207849943944355879955144621962668381970273418605369305491495756178881535863645180518202618844186877801918681522031554381041454547152922328316923271827195137202315977232854528046301376845640778191449438403888655156282909604129868903786741241389098980589585957476598308989795320047395950482276037175289258737242167753737375890775491740099916164478900745087168311929882548657768574528511279572040861275592245282506665103900026138118513197830057629750283422347636701267433196596572533440013419656933679195697462379312706709813084371851313130509643716936101475042809244463403528710768672347104327688597681120741969554873022201495392208356705057770500862382179411008576591575729272896904433865344854353420145684093949902501484884213468294006819083088467367377805531064488588947436074504678781659816409826107694250572003356291692357672557547645690265984274204109941201872712716657143312382396749867773973898772351878936858555806457608746462437884363669547227714360631420223003231819130075992007912631578126573474097759666550599188294439413440542758054929499220841271369552185773718446779308963014417247735725993788489574596622965901368629538889618186709341012646366090762236924455075244692237091278328901996884207646884331841129449676942928384534069109426356669314986693807451766145569625508351219231234860335132651850229843343823752530646989471856984014724778062452370994979085999242026206520373280005105916170504381184153333189455141417572996217235323357186794795393801849024658012702160993268136394144984324442306293648454588636429454047750911004169043522582083765714299805902135052779887418749913482813524012677382689068237103029505432447239956122866862799171205341069751857631361323713743388729342579004383351383312619505078803363084382357068806478512137143927475775392726499870033340959938552729322760852128475833942576306493023223676524832643771119019262782000431687127142148067253123153226532514343722064407023162584662189510204296085152489111783910602459661648061075768159081342932516351693315306170857299698453389744325176331739413167783666496121762588197851869459698719831062879393849467861904872232590585426853731722979233118674673270651523442050617030686221622331469249808364595709260167012250584631961959643322579547103470659650777256243375872715870600520939840971429585651024968313199248798723942914131551305290548665183601427634240587977742615544281231182643250542123209507267498687334574660609121523599573333444839127034134250422927311744947794940936902935364454140964173985240824576600382296693978954030129327352101489057683788616780277365103190377254842059023988187922570338073732838500860149031343651575975034635379244947545988500467321297042541082651177472187340083876133896809558740865671391957599301385509632924227730627140187647904507739806377405811791579431631492406860240318260756720596526101391171389886892535780929654802459677360999920236818381442786289799162900686555565115286020866214610870735778028385562528991313419628925670294156632047468811777229504972766164756613064393681229513875592709814424683183116537945293564916184130013955219090691944766508510978517056936078039675070501970659166416731801940822165467594984067668388974331730791753643410643163800047918325308308148311426905054670682783297134708615167909572359555145508158629629406969609955367620988945893801057211352997057908790792414439848625307411812335782712819983659717029150922540543097386745242253361273523863883324166775623524295941639788458166353280148238022629295588485744935519363694999439405818594295960144456397341057018734709527089615040241276658267355774656287448136494185989628152864554593890017638393471546653430367063051720155950670525862498121332379187385027155184188665206476753555433082649898321316434666490684795130245800967081044804801190743261909468299357265187113329370478346276418657575988070497433736106319001966701971501360895540248116521524617884661522525037189501761283134896663039176132308540191099351442001055774134818838674473972553003770434087826128045181309399577434035311391892373408753825976433562404512933734109647036186179194708111388786823851965270943960546747756889993574219385024928457089891008648168718989926527147543662141291179324717630956041673716595219403410653706345901116595014487189429014386591525541414878323521217002342902994450493804205625145258793456275147276932307339746626233951747104287136291069366692323979876406652518435716603780218594278582936115116656352197696166447254544438050782470139895231717380121011578193372534796824269357913572132764674467336291579952451340556005184938244859639644720845597128970895962521610459268196286024140127154204008589169537341568496716616718915926962800658912031351407505193058175257793898080191463484978270998746211224915875416218920626021312524501810437905051469359767815517471591422447812742008217117206379526050076096147419540581452871491857941254258353414896672652865475813499876661172885682473366270062669213383620842772282791055799021563669216653344670374364035822114056928632151104350096349409763358652638660279261035003296131038126815181644258789879806242156486571734380053537038876237050310201885984075339478557479096465338880427342435943106717348673805468998543202088637918150707046848256362538090753981099304236314699081755921969505850916074863574830404815285069551726555375434061389845036101622887805510515325499255294977025841159494928307624145077953273002306637537680121486270389513675704735849858915269218946322582301507837771740703683450016167753693949691574487707499450820733701984597241808011215410312317728248768976906144629542947524663870935484155475791751613573899201449629106295203016449848466211754345975725734234451068949715077286165370587207587839444491550682427386529701100344524973942059809286459376022952879995573895466786744706213273539964870867827014909878061136223017912947404669188896500087270193901206645051614205013309643841094569684447586425495687711728469469591489524744894036023199480471870153091536994873551491439222244825274525631302087746618107374018031377794269646949647361529370488263436084413298116486344291782640841596243113010328171487930383580807365492062501583665769930060089653109118326993422024986911415790739721429123575591064094740909910668274654059494995031707680720498024422074868759435548451583039328345784242258886446015566506018585387517493561230124167091183687785176043287517530575436233270868695352930715669789953182660189678488897125946297314289433412046377849201846998292242663825736344297394132149926425467035275901747800615045415131981516917206073905603504285219034571659570514842328410268193435235840590803377184892960550509717828089257586415165520839134006401422694865766046443122426040137247426956871501736396966156608644582866339805571797421956657358494018542399186356062751870583000093229609223129533422655304494494325732960740254285802401717503249606957832620508913140712363134030272133609468404494264578839427716499103947620132758937038150031995940620263233973903805247204303359297746372085747555720250744962014049091514900927498427888075337794367780168774729686183601060452054212366183884370728117641795760639948870390579746572475799657911197125600225879082932736443280554613044532258410614192459345674648420802670157466308472869896505252420318324868212751072590678491645171483915603660305627793402656120999782278767866522730814323730783635764655184570033150346150208125880179074570142188418451609448327867862434046881072868250032926371589245055290451308136024153361520686328750803100623367977332644735866947912744325801804289822538131032370152349375571227285041768754690076416251934978868677817696369384146795814075603863280293110018302509724696381289567824623218232111510513302542401036097383800513860001902361411570949034239922091982024968973430344507583733466927833582218621224157795724370878523442028165068513000547399977743151194567109365743432540762379426550763634522709443799292044885645448158630902561901645278291193070439784994471243428195562415207674198651654922576517947413491584325154652932787363548358374476707309705169874676294267775672225748894405840361057759490372384875585741977577819261009013132378655780188165772982145657690914191551074715776132026615477886391656600435184819703096513247505923498091060789865295633287214761718830740003859379581912579025692349215130500694849423236411148762379353288534521091710091520384787730666568126802858882935252948437216951593342469329632953615047086062322619214866887541668260102169761076818551050101920806770082488060396137278939445218589985356154094132947720536785476964822972973697799814489016557490687112594778308019123755216805674633246014673311143540936709863144131130108964866823574446155978200392239107616306716806754260642044872865623848314697329298804502928580281501224286307132177459406100758522081982045478189664459617341683311444205588748228867667211750746565382088630718121204781515634719964614747166657857540181073990818992997011927416689408043960017228578785415854156525786935893537850089820435405710496432152280239514573202674651388596832545516781576920974894458459276808331275867300618620231050870940532929487767412497090425103455169145362851024361903111737909567055450089280377759921852070316595395439645950267037548371621683831425839196018180267930121820304882656022310119439181830224059720655371337634451117735682450464281839629155435573892757025416766841820038279647012558387954028906133558802007474332763233142347532956363357470105127863758283534880805182817041801595110727737267817014123870032679282125711972287495804328540483683310254170307586599032298432410128668000906186793201048940514094516392943447527358242053978085902597220783779974517741289282815735473709954055728473454582845349985509289674539100801818163530109890688322752105825923272680369314478798606310391522493008707987493801079523926510115596721821460940172152381174354633540837909180373379959514937162910531640354304071312111642661940162926120251639130512431689943843294589759348019510607094016233847617514559140217366601548725103496187652390349885510600516720135414060638591270154011488051949618256936938259659493907929829203894237448573672872087291090503053386577994581406426712125894628945812290605268475680399126058089796167177057754879526307731954181552794753389060161771274113082327577562428487702941062658129371009764721694942813776577876505634371848846620423097136565108024476017116846758214903393402521044905998040709968251903198955481912070610533246714247006875579908975720840600568828445136065085979581758521837354560004073631413381056007605229982107692595283568490507287898252131621229191504182384319235077530742244161692746126583667238086676205518065805368773893265257223904908643335087538515543798214694197650949736021118038299509904867027381268880522746246976181968623409889863610281460438028095659792475710209429684852571025741434127477813152776049649905707356091411408076479956331103417759062972767735503294923130002573431564485861448947031703193505309463136181720815229950706696362724029232346429228008427332587719053533801974253718784297238150733958245424178531397831996686933979535919731200057152310813723237953300498250262545151265657814032528359130595102488699752385226661817531258577575046465677966199706235841321696577575824244964581932908830407974653417944468546049466727424991851910667043716839727662945995410308698977495105273385402513031536072734002269512992887833541739992131369845573093253736600063492644932939257432439979830893378061938372473198821638954477799912270695664757905683825087851283316729669084521272411381964707837305910514070231871705920676692958760745622821459893079952395756740608172931156450929593370491902217804778472234658774444434193334491240110546387690127267117572714823183966413610149582616653374774199714199657579399381510551023758505050747868008395224863614760233167969582470689054394667435514283879736141928958933032711186260399590449791082773974595266822966535040372313940067050121931766226186833514383938066722833145100159955309192430431946573464062856424456038604611507298809220992405498703829505127932298440432270079737170914329996735399512251586686786827443133455699763179849707914203821539295982605765704542595591484138018189691169387656967371399267043276586836690564760051673505884232975644526628040819427692869683638215582638641665671866410110630395363354873043193062420235175346800857117648132931150196640286300028789870748033891688082058868039681461395166963729529852301735426895525230426730287252951041320441592323553793466672294190980516890302192516269166828775540609222376856735884467045462299453626071021594172532664249966416978391947744201361248475377158548957196626136876896970362849207423947916558609458027849079188860679505308445400494286507968990220552798357263566928235583351110396611209185970054174826291695261292476841689926090519059821981130015884620899089140017653053444528354030496629989251349281203686705327266658788615981984257818760388602045126412635521078463187835127033950210413904818259910787972132848195089453808853683317279633607526222696296430128019280113884380091580876300342719204191866178109221639851117981425012295211130234637991175918262788809217485999038395350497688671509267893589315438123036606013343631701275213683625973825871178368649816522917170185874573938736336369484208763158227038484306275739958643289748882948050628021619723429260505653767113001871164523412266376350217144642846488356120673277241398112524819380556871885276988726948186059358841778509314481367191648105183042933014402032948234615756350000275878483191026224074099932782083314185786922494359045272959761086251504816487499505376514471132381287279598444124068940584931654644954451475755614904026475965009394944043460603829918305773656649747306926384218321333563439468398848561477663102766324028878128734170867436778666473369829297148551150427907855324496012596935259047897180306681357147687785475077351666076413700683451181966087668090970526643565331568105948290242359756376668992774461696350438112439479785115132666855674249998175167925559296706520068954110860810036860254798377624614699514989469427302796811794415074914554790722966273586009743577815607596828732159353735609882370560369149327403745067886927194589911129974886840674395620487110073036030105435097635429917920171529270684637603431264166265769486206410562492096481164644127272198230972803635262375677168165592560780204350727615381788106831588223071364724894826121027105540737085539616275661719857828848626553143774661361667029268475677857014735209513707044571517834775536119502595775019432836615243609161038008697949893794807581052972243569903538314177562511639369410162567675384938500518237636120339553041579207385524151749318726751951649116554171459328957212596744065646681784850869957433583853122902753059646280396890384707106071622336162223233768038510333386674678685645817365908551891418382902785255905040817920254501960655857258942602921248189684011768902885616518848837209962587219299420598383380246547845215816450568325085802662531571565934147456482270872240583778227679574406045323818085734337452749508508295162446420299371982696399080701088350664576215878934718291695196073920855021131679789473216659983114618920330131672214903307835129360526998446838716854306919557664847904482400760132898334483335676879154178292648587449977383477231548509484036402565422925526018322558025671403654502101469264821840737886779021280755955392871396284498099082963650405974837961938652049642323436998172337090893853549159624993105551624132767299192230801413492312422537387023647950066806428502971120579715284316558432203641506533352340063543125499084598892698837966267908120080239803019786117060121753631074553608676110702879212366965323169576252812624615918796426610060021353289170498140653522323240035824111010092919713588400454507404248689680859490072815797840876274222451426934496605173025525687169913756787697613078307159448244304720401806775926346224769378336897808953826294522873351350375874773438338454588008048564185786729742366596263080523635311843531852003721957385212481060058261412836457035998368767012397258608830209864551612512046204846579859309279096937399144597045548423796807166047530138924457142399887075621260752495951666975313766908271244814679239754630606761443963514166698843595609052403790985681323447327222058355142642849412326006559008639955374079834704754247848105122097133669028967729863984568548944028872496022629714274178996120888949565675404493174219693856956305794886632334051586485097590679819425826417592505283895935006999613492448155625911496653486114080986470534219882256087224807161947213609490506799944931183261453888532594121398286116984703671700623657254449286941264353656671552297064402000684526561643371645403349231950359227121409470913458403072363317159989912838201414402272205668490816319943988163361494513916172757277119730499986986972540287662412969167850845660485986218667301301308861919695867077084258583638117988176796851351445923230777075597601626735952320041722680693488376335959344564169013217754759011136509742546808640741117524600381386786812685810576518951180903289945904229314715540209285666785223000063715044979947441564265902512478858886154116776872282866016285881850893616195160609831149403269891974222152957599745409899094842323125609638500641893980034374402265983085719518014291116186202413252465316153721875401176667476891436608311478072282101954625430150074460111041655345089336948854697526283499577086312870713714164092833549379345893972673958999821637414732783483898633439274557810662468493176931927748203016812088531735325392924639175500799049381854090280476816457983151918540776436803107158038301773998597221974245953424193421506477128973668202435313551777596290444547489719864404632876697875904779781926861023636823118127413686110440040791474947120051185558533482998797873015352361958444130555084835886201584414493287064015871723610510634123372671742377487704719984051526429512375195412802798309808451356688035408409182823191084639436094285441353550615269402136817039654155186851716872746546775721465159948674981015110224265883789725360250237771201073517724947084727774452912782389705164080488571422534029241635459173631691234896353695327554375021400191477031254602735623909981650299784120408575654599494840697177985084865917584465998810111868564441318094737110203696299315923555307265437308177922210845170611708868801339834030938110430589223118472472365489476371289432570539110599815042495424778006434193701683702979440065529083148224817643063835804157109308632025737206344698556610690349319006703737977450492389542458772256752994479108158437168608317594401990335744139068697943506574104949015860646997157030380821495419943819445375291107653877263512104339067128604576290296190882083705315853155269389004974951612818006546979316596623265047490366010057775130646327817948704266773548659747452649354108981993591250552991089806837210761216146628520402996650922036440481973482336409263385518439139902034883969454098297650309921838424428836171667584692997928431512901116281285704577174569353860227586977100650272435627827924010160886348559882542878346445603072236372135957312635901983456086900438764187603132602369512218695383534912679103165251929013618946619705706315968826520834943372748572631506290537055162216935003815428183488643854314470354631516382219823165361648124500386639167160495654112212370026648362728786104233366481475387854932640989509738216304602105564286049320359451401307164512490353341751471685847352613822076628529517216188380988886695295379928727308077852622497019055265913949605084819437226004616728743710651293024711996269104658925613916760570004979813679480832420107565634441223702533510851887042262603509461288131532236971469327713743841144710621953972122289565731119250206021077230765904569191695926933992729657931432159887365123664667762337298313960213318473248199575194115013857025773841116584316631468650420920506608628067856857141884420198842762496186870187662298473233361945763033023513680667767548740479819388997493978647977902034805698196130914665239820561061277701528757409771322691768518808014312529192089560574022044629114661653417706596917829645527806808384993717411764855994552542675293947572904126264737641831924042193736887827630821877359410300142024717106317161887519102402088980619326729883076192523467569629419297041835574813862323608133680276281008526817900681796103825885974572669613626935135014966639813881507419560462653312107510298396964238103833940857007341409227768950694311130816340565698828553680296566502805384616006540802065403582899311792118718392465329607164119912644277747563591569862293038444733156345965102023077980675878443049194180079433741497459582943103040706319443735026465464908151015499640399181611699741229842181081357873173541967690195281574667524175521569199359377271974710159765943971934429870933849315371117167175092562568169505544187058740011327835606672134178507419343511037042322061970574738678103074639708760515899936234810661158358438851239158287161585362935123511973721265956089228702142720128855747148362374321132032717131126530453494657662719257589574417370405872729009499244382084335146235881175335495252897073396181629552121459254537759289970309298119994080784708782011650475391956703550096488953674733213338159317623260106784126650386089673716548728343393730522128140436188971018762105360836367455004740266647172281724572177909094248040077412041750484734864528353851171088955183573905243687817918571588202397723949145019424016621959063572144605336382225650455647539080583611999229175131415118257137811847961185531310680884311202520291308653911948712470950591648647935349334047572344448252274758600700267118740531477366817435275527853518789520837799014757364273411351440447464211948785888692432783428204223350676536186525711453004376441608385757831849029836241645137315089544256799435054498770402660299576246196412896439821643249719537275720554252423081928937162309146923804652224214473543087269300125535055808788649228322481721344782928995600396866160857790369278201063712389777403648253865725939688943156309488720959116666480090298922570025113110811600675428156810968650654040900864351141908272075532813907627137633982023533871328350252078351494761645258048188854721280484269200318776538590656822628326239702656907300488840213786201431516573375598156966736669958858893003046987531827082034413396872810108752357428970017232150288607183605127555401716734180534803979198522278999447750761619380294327384726477824883192114931932490439455835218061272362761779069762686271176139739020151557321733158823512645238234506347758177064779272997909863708305981860650522895650019164807812497234116186459674175515309898803583293621940625122894096294286846151723312239480274207998886320144031610381807633186211139724389301298492548232167188714026330873528637903112729660325868110854830379831224420357119087765986767744902767984414454397295457894096551778630470848142101081217122584676305587269966420864797890354137077807593966688866413377368615994072288271641821164312282288236736869898844013546826439955244470456864351552847184018180932304032807362234139975075020292231966459030531576594713488906730958907931604678174469580367362176899905187209743731149672698380552343349393686984918493119097736117475465059650664828715127144338250361935902821691429931579443102965741176119285522164229565025841621884019527052059075700996780085935803655427929683343314826243341461537032889787679513126934348384740207488165968673804491728712043503002014240227392718728014338567292625501179519439965819530746387982354270596292362865195218513506831336596041522892799267269357037522647762976900417556238962603623049313654230317642819875042582295790638789901217624306622809924843236857940606961142391266743252749862656247836446209729110490195019819309372094571930821884103604603771542093044661544871166036478064251671403461623219286218996001940100629344714699510653832517283447078692260516570268575250226023230228519870713489433666092022379575171037242044592503653724326702767433077707794060686401370063360184766764086600871335023524016230719398549433496012634966428308736298509892438814627513507120290748670702363814986212901412396591045137428539202665727226044650103982615969830816395981847199118849980277539409824968451563670396476027967717227502268815230048999366810652392208934689998795413057535239614942004084343840515319398764728625642125732761649779158277029724922917542017633047826408299718902417191863558875010832069255373398045922132334401827425480765376972885314592498485768941129120719842630311996356058551802500722991631671206183221621680055342661839933237484550163345883319302151101203693309919492058400285378906904540423822397888958491036883531291718455560981321249121841466819471370664345296640883700035056278585699001084587164526851464635829558217038509779165703680174345471642491061532206139941776454819290169194935042107039204213112796969996427142894607174458098188098527150996554818222928405360447784871314898969155081313155303277433534129366671874370755338232014411604996145015908287338604339012853831269221013747581655245720971480240298315638110052700015071938083805721380114139269364350123850707830010295436383834822540851361035320318810713795261357979322050804158659669910447202671048142816844444862498886276753963555765741937644743566977474863177856639419545306132007476029840901872912137992872383533059779561968224596760099439597433578237825813859339888001398317554121816055286081972206855688904500344587139278960577033150826549807354340750128345566206956670640295455012790874485867000332239472133769979981612437663587175653447862945546826461118961420947300249860843494911115185294023059032889068795571290228819017244980408002772821704826705018397279345124179281602012125439285371931153757947301219565719551203435735563309235393520231240591131240043720816070246084456506577329833397977092687352821731948383582674689953302134307687465708802775210588538429073236484903746867797290589025110669326069102465761114165777058445488034824576549555682107962072376180156547675065314368597668162187071054741737294836019801440232564577805463807151730418132919022635319511375617940618940011255919187445005898744116056400520985178486322159727788464699988861267260485638686444779590415205869797830345024692095322491943947791548067235257072563706051288090392727752634828287705139419801529049223910397642823558613172435683086469417081208876541883860545736403842625250113792579927058886625946038471788103993698574366144782799533133306523021936528042272605036585440900142974166871530066511550994462862500203803286974498588408378275772247608775274968549450855795493095806178832291428382101117250982651732100197067784981713458529679506933746588935490999469848134039069507054909868247484304261285343249989208365556488835250523926033162210204590489790721908759442572978832563549286405236334579742035134547198343505233359276875227864280287725405980701822129952111417579999155106339498187187784013430798636721768295594602091924527505085743322697388784198520209617999807543462408329309039618324802055197374334453174430090532011677919336142879644069149565975068084283956069705762466715672602322246532905276742146315972871856494520942857918793710762771390269688916284306592643665262486312267830091911209565766880804110656032601314180231854465029350936561032755611301679137492809409328932495140365666508261307552952594324807086273955159304557249155900011985777728248829317552268597043964385565557622701472760734322391668297019656179597256151893274551551673867383981446430156051319625551012124207896738043809291171741101305467437309745317958283451602161748537332296849482583489555860253629239817815152888643770556265609912637536109193970869166395989198809844222859138205520843668318440521554021726538193526858200133678052141021408242004770666125697040395068345124114504305075121043094985071525267397837045937405745337410251589182950795445990803270130042691139760860476466193078038699108455489112648544072493021120171308787210439609438125770186926857380392754330575660136212135414100354825380187349615965156150129325588017506074756089415884667779162784289812628655667045718618224843974008748269927803517478916824735793807989560684040316311366274897633296393851072109293582936736355212705954943541535186864284421217849830309057529306730579133945582782872564647528091849065339420228394790286016853459495663144481549722013928428373238821648785086428662755408159105544220362063361656041155935707166613893066635329553049207977856524257406488133829943094402223049634716528843900216341557372853580088554416069287231868046971393028656523273141857452763128151619022191803705314759037621564341488752189960430697567764748524179272352327284211108259278529319276319304689382099064905201437796305271012275215658868704009259983938661871178729909771927582118479668581733982806704753377389179587522263543316567187338464774197570378261823319704553762804211004494000528709904183541956511530103836219948183179340379789033221038710668265418815347044841895121024806495220530378751470737639181354036399170336515687621651340252646011413109386969261780122167889410292791614985317733625648182245986151292271667321928736293622046109755993707907840467880843085998189010805422292336066509807370784090698582730666376429635608323313917872616035893084774877054307015707956663622340074002807221484092272317664428780844232050123682772179098407778240249206020827421194880511328443660984920752890891977492437124970879431847850423300809110225381405612073806935596445709488324866237706477339252118830355749734440379697858018344078137830533098327014993971122871872057822905111134833827921100208853278534209047078232510145903255375812000581136897102104185407321298037876972590631598771602049431953824398217714958815628516567184201160913638855805841598951639115913793459150348710174016469711121660339592458684789904580734475442872378472051620436101583362342339906779010251990391612700791211913134935572353467752820882289888871912873172501563519971434413596901132062423664901342469786680057087998674297932505835841542067896837477305933602089103340691861603179183247573259238961270806506702767191685162680931593799768455444863474518205729362837659402811612895270175214684827009311740710554769652826388364614601177441931957850720951483188229781784856318374684392059803092799252171700557703492935419946436768907989850384595540841553815576189088606004925888881847659867887578947806425693354435530772711025379405971992363428200551636017773757021549047240990852062675401146752835752394362321877153598327654425553285968094171252971763568362714289636920806743294084971359491878693021813781527331968898904965067156532093830498042610713760359171955838035391469442171602759167321781615024436370181008287736141306187063643905852399002749879396383029930392917997377123189294769321520637964209726386437745351008047131139419122757598168644481992946376099552574229070677290900044425193493006186025666262835411816423595527211724764117445931436457228287242067881601778085830570301870998340892936386325584119264545270967001633916142774854590915090756386354747236563810401259106873416878521467266358523852954488954845938515848343092864906495452813001986165499342833082469117534662937334440223753246395270497220598513802460993358899534935270034932768974237327371839605753323865152347154147712908624789253608105410575098295633344652213454474300579265112496578668242649360689423339218611997922979391755628511385237386866343335509424477802477981845939248142656527100299119284896995596673341093568978210855201732536183945772660629929810936369786298132547202482347332527661534676580699736008415303322557235982972848787651907633733899119544558336609218991942374836150137891746187827142221019046259322832900756408656652012334940731485997175564057425223397858091618448958697917182011663409575918848896621623668417753523722590455209011349702847524754921982953633692878967444767160663406484642407357897689967232381603355777962052250610073482364880782852961870772091423929009671060211411720909352664803492821906177673098330975383829606669593754788069052411931994524118307598172317184033274901820238681920233014185666872452298839314873763893442507169927655240396722304819507347646846884748675076002261227051836541406377220786974675660122875091198978716215017610192109845448059864390576650952969335534855461450534595151746023118720246674585821950013224466184413180651796808130345524761039639666172901062303847359795153569917902716400087021510197983132348652285400418648826970422686645755487050082342616490957211188375810285486761165032571438388120854901447667334389192122120401927803892870581376974426396313180686044799856211479010468235400801964254566463110282287456406609807912631844352058698273926185627915832866727680527049752906104521199953179665230761716317871683677120244774186209327328949232741782713930929971368548193590389903621856402688256835087417567641914177597231237381116001165828325042734827576801143147456704122592546415972975471774759510859728750454815187273448850798818818881065177454102754532053573034426994338821608708225678592485900825348375377090021826386466709885629646628408315393830359876596778173323192824940670528425247017733171899431548774946539737117152486292734187406329465106012199662406197288405556737082717667212952460282056575470291941878811798794060019397517311915158363280852421517821209742636786248484090370937776402973564350114277896006222428479559635456659889740602334748279603161769019766888912195474090131497537000635635981152384830070028353993565055137073101280268861615730876691716050624164676219802422102626961987252282562622149476902538369751197271598679089940756620613013244034630718036085869069016575142220607760626632952209855744122538999159132831143797389985490291298517698123513688426487398424245786146661018685634794906807722540238537124049841225423445522742770228389143756891998149444107990207824770980239479633662577889475405106047980992281777528721306324770723097013120130283569735935149042644246617047173390596695883971486054114570702433583888200418020501357167563077843070169486385723730293413509725856776189920184261868141822341555139928129588228524678226354459156089579219798968600919516595962350408887927424609686049818962295094054518352728520564655442231433698202723983659661418075479593425997442472846345194514246396073612916009875400434781800278782398008947092625101902147835675920285495419985937948180699579817601657612648211524947771817311268110181449273204236564282830758301586244077340625370496899299685711051313914143684539876825977679084949644384918221582642032173082351855021563105482335568018327904812142981597175408972729205615336515090511028205441775228273347296849985800616906330072006566467949735914620139187288301727737063824131331918489667729709068261382376929276735181359832089229959166145794932043163072909688068063934831020287981911578103718224256945730514710179826069300080486782509461220029690117494801317955595653991748941082779876720879281144800242960704992738604119282624963041761754144343641652995648839125228755438941560604409172064385307505783815057069192497859190473834780030057946490145761923720737030163865157566455171219935184561923490233574434319890967826655595437031434500812338897624366573262625458283935193470895491845499613299703052501792500945194642875369890380705952635430835100919852624601311496804198531668897594831359429320441883825283471932979523955910896690171145792036003910509207303462297141594392404073279884492624389681694622851818682156371199551910079540495993888689992221992543398093455934691991301958464212411446668076013298703571144870203279615978251378715865862669532601471952966817921308861177386917145995547135882404908172550472385176532276602289117777899031468782829168966898641069028032961228980238645305335104153472466431454348890836507174030851249897899396760015045569330165520289054419016659509523914431535281492288139185254265068508968733954296185986821665622069734191722961635774558940821143320655056852366914833828707115707398916620801783768166734388883440931095290220463347897279147813351345191449706929318458310317040153168804193050120340403676888823546771094049222099209731409356541635752391648723716150862604445333752067877291737792424996182746337838725638524144119015709459784071205255256503008071708238876437652277423524365146170487711861610746911671869743127025427169663415976718626285916114054305002285620608095651609436676227834419832455319420461209517386372338375027360741498070466789742841536949941278837236660849651273226237473800965843155804267355518082774503625492913576960872970058674086622140114698721231211946599237127787140698887517919444519815875093569884604304978211972077428131326501554406728731077646810514647967881450957097954214711921452984724883580669692873111051065454217545596507618687240309226781202236879738230302452260394082373206793613490847452403298474222904135586339394040306808574491982359079719198412144077371811720646373425749065395054433445340539092384642089886639619753479850150008528835008415178323342300733789201781635644611912168415086453368892094212717712203008027968721042947740145433236196185180642749882663465285003800361883143348406140136207035908342275330218365436333538502442062565947168401971263540343147939935637233017385588649082505476980818549996687017661360648187772417009326383570485053757422259581313090269980519293550790381570788666684904473239679062098989241573225048529916090825503122492634345965372162106959322336566650128413328433633498079659755579555692442363271863518202230773889645638732761347966772390579004138167933631831921535771384308368791632318277952892537275374405493038217163786197736327519044169129813348887217503569223144175053259010660136273689201168293858036459350601009276696486588371663624751036412765826886438941454587950983105926899445032814547882963863954079859301742782019596062978119633662235757238040079490578538606290210686788340951640404649014549300525738052818147027328499303561221114443678045751187049116373272554051862446230691518461876408143833542749985169400358887299815845558392417443015728780047494868432229586803272321717841892555239939302814534872063065637505423545659307475412508788503742009038616449472887820987605069387315886771092275659915203055921825292519488745434166614631997752050800094198741246968550475903818317937941647011857226619910682192403131371760905656668317758650902844847059508188132839815466251671473623267486059057467692487520019732979472430187506007948036135502267354299659891035055997655090684532049016089360168321288552266211669909245208200508923367474326581887140134525010062123923553441812486397052861056318823356769063362595105645440775084680119164311219800206651158298479937322529813954344364369491068640169327089198386442716028522759086454834244389190218366839957505212508544795353198030820808618063887483825925863174911863487859612631723845530299218883143479618019141537694459433025713081231407042788115840247224848250031236456748501447650932191631045783876651115981211626891852259179669770903017323572435650552673693270597972183192604736487891522736480097766933492216128858004765247624147369624778005536216410024168606622156046441613186620169184793916077505055125084501006655414039829135433112278951957820626920557211927985996672504759560104237006607181276028656264870558985754028708982305845940095359347344206403001802864520736099630911678258135269868677132666375215103010308311373128515960899305418172158249646632752172842763224928219517210658093453961056133298781606825496329619043965808929191734227314084698519423314390257841395712221557633670713173138803942110342749003723841210788168323736252159897520158278248482756747837358472077293816746151357963017094815772239200409945780149820095671655707682586119081746704056941237715647314496907513720786992505070088226357332949774461733179359208673648722469435980036672624730739476930431876003950901079267452595835960371951722357078094437151870478477237698567773698853007749946750821476877368846430162455848828289891875486898180324481991031831493809392471154513872737924425166605977147171574605357122495158593081146669283141028030997270752374141234794610529337415343616129471218606368737489632495804117125414130850528351409364396253662252224213407586640017568588312625900124002661452791905289340349331391521784459144972706126246649142796882463740249253968803875741162787698765944798279851814709863138349161919392039608806458651008891591337617568278622228865254453225356914761512477410610917976838396638967900955960442930294354080134384350889321374794041120051661724995149262831648383914274909019465767896764573401731530266621756140265119180529834108534739260210194885650583420117527266101390694052130029411288279898000286929118360955205799774646578085363803920190186636683123547091849592163145293819780611183450656688473325185017816561909831128684684963123425040089195480970276003318805437941228321416497124871415332168759346203339422416273835740665667692987075461219243042209251907825856288936719010457080912305023182461126054279755255968184850935578461017616108918572996581871378762723197039002901162414063930372449043305770427604088417699102546142702045129864698249114575846838202471856127182700316564934628436998617797896802091504447439299784725454765017442300487580967475357652501253513364190562165468870894192259816405757915479203965162923024384482173752390661664124636469544914177690157408514156847518554066647465755283776420522681221947829542928147251625750878654741359782996955701025107364592108182451739029992643603862332141934295626427885833309069718481146347264353596903115545149291204516739307033631641589009196580724186591810716028664655596667761608699302304868125776220057866296287365917217963555040218946388656793536769379002583607021443706813342426270232279222384308820642750056048172947042336930048891810314058611009407968037259579588412045358131018710899377941676750756935512633994124577901210941665120534885181773076390011883664283665326203137235139659575701263536664448427538760473005699794224633636790139048751448750303887610879359168401989666468883046489699386781083696518502860797065288832958484191395712221023867824584483954936619308533804228513913345707451714425130764095031496836275897938142277417060221954537855543772633474039550268792961358271457381589217924655386440910506924636111077536632270986966419440624251022709578617747767687989239681361289712633835176287159480650505303805613128076190086186944152575026829714265590209089869713616730564588415081888652790418015294929741771063974660156970529510050414665753818598136715875053650628316494609768663080646860121920268166343880105921863192225468006598439463938289466948421184350379484920293221520062663912287855066970515602520014105770151895150259045089985989924261042138785096591185288678356065106677898172848748570773985556050664412223745454998286615530039063127803339893611733967485531911180681675368778456633314312152427390799161405197882001059333126112403968566199844997253544729620939515398355669716853179706162160409130074581107310609534273143256381455796110638705656386304102581485878541712860208685503036291729117196357629683303617297552873572662485286766985170915831656799651164914185573542835839636646843600231202039737752085268707632311811433429297698870866979528633971003288178799562956045200653722295299721998320163915315614113463220573381831624366994768353905587315276170571094890821873610037530041850015511852898198279961719921303940077406698114882345056550850163701343687851971209171316678326268700916012710111268777198948471757457245279996736866823616217803416250950537715593778870142715049967727278431251972747396486235365043042875712048135384633794813704602789578760588950644438610010807734552916003611841835006955635367159467154269998236560634083208555476284540659998753012998772621072596946544340844215934411442222771071438529430881913492053856390160560670208950614181852591636768696727191025652544854926720634776219306280526680971766454436896559747613101779267373002627514168343045063282952428534836438327732822755132145137012440743879852235926627375465457145125395669401879667417409932573016301166040837610725526230074482362520835203936273193330049911224046583509200416750993581237060290626236863885303728553468892188990067535168635488412953551830110472473891529796552105236354535422345340668888374484029153159689007131267758154432727541975225120733591774068096959702499279945576928457832007615134930561880693708537072373668180883178481128021410420588546203627112834790229287931314790654504153557925221418796409221027840838509909348068650205109188994996079730801968783065168910081956686511146380715582089016880837031767401912072419747357883614080904291074853161376648552585581482432786185586041826389004505753731754184942041591257376308315658644444497132082631481819015573014577642779104104402159797379655834205459122669199632983489963985971582605187306248576018948015821818931152149942265080892270983845107400133023991162821198373710192488872722350731496950034593801739121992353335786634307438326114198419311603777888797212826592679958555366599110953383670392410888205226744868307583437771049673361222838399651290735394455183700921343280688105085948155265208720646506539733555049965596849126312261637975442716696242559395161531601251144619275772326411605705772140454078389668420997666330286271525609880839611504530791618207184725404559856551052756116944370704465867308797156842827090006684488932856950963659327767672789090766949057108058805371588473813215999081919184220708396151868393099535742164051915879082652152935465948806751216503398459806800150991351203976214907925627252865922379035046069930009585715040861128642514590769113390993249370618175149920267616144594148906475428461110971059229025882012155800555689564963829425836576389849188780733120654538757590945301622445916178171879764184179735258237365427159097007983985741887332732213955958070952574314478753231000226818853525257235003166566791957666564564675277653691463631323543563090521113343875356594114010429487187497017617328168365204521951858271874487147817957004986195153688890882230225092163229439518162137845471473905559153542112213032759696013583591989572047554095509716985480072367882359985397475764784189108893678507131486804573315740305282303879945012540438053278834843606434647457343153819854914583055484165529480559534738499162099617327639497164684810499272541593871367434452818054975321740390962217454587108326183285394261566155924481190796204781377622642895918859257671907808521540022030322364437471258623755712240888712864458211033139031702936404555001189412534465368602747150073614013450415546614946582170574864718032375528204053718763207232444326972175474473998182461289288115207196297603347479294587870037711459502821110106161967835778316902030960164118184607881648259722535528749142117313620306793095758646857689687383440567128664966949110375029277539343817105704229225422093625460023940663566557854118916842924044507568991775526504060802466877341603663668431085302926130209377391982413346942592947076737660239836412570074742722561770761609711543474070403352877566978376619301562495138960989921266481293156470592404302380017119569198601998653656059232089270288076213487185790440419021796817419286196434538499813411166922115481379586983642409218312239133903038854014831122488422024791334581914124112060263897646474372555423355119462145382453846220767100126220109549105699362258352861940409000641891425805420018755974115958417268792199601388320912456441522235182905396755521340371223248684682931072241499683623046269343280224430836210496698691938290719302209554631346321268832402226663620723374548535555617423310727125594720484618633398052875888834893969060909188462864939502991278378386879282179708562743201200986322440986079702253904906532515453738346848741548520227519866122231612889686012893017314737693277482465868122868496455520727824473387169282312027729040694459628789774342009980386244966603532710067159571415188777474767113342829854087778125253849696266792014380465601090812192907675721492183342305512491876970299467582364942475746070011093356750591927820817315797238708731453686474339908810729632645977340831753418942463573556350809981557508775473249724831275433124783649790056757007759556950933604614445082935581978643888532193994734208000083159798434243949439897162630479339132803881653024047666279323902499085159960617655467606747822636741229392348928719939290116398672356975318826001900420660709569328948332216695057457267958571958711381227289102252239730332105235251104642623064493597150192234777321266034691107189408897138819730117433054951712084031068813028161196386139908922826468746633019079250349447274486522807997221126678452587507556807520766889140977096548022575584248782352688263786686335978496274349172132585611144565722466560373098276248235325226026879411403369972459700125536005426601946915149872443927538895534032238252745579609866033061106851106948808210755052055747860766421817090303620452172397698510821136738523986774158723033092852581929858641544665926014405093326121178361217697543202796799223830086734370576600578723102728584257433554793605232494384293838787385785369232103850103903159040901633425920746871148160993667982382695468513653577786469686724466184981123663453097148686414613814606185551358987454829047269245521588705798156101826198955704917699451318770530292861895601856923738029847860153897467968114130689076667575558251710688832886039380094299569335491282726596628015820794882616199533863264749195583722743142675790137628994639336725671432667394831210576790126839308506438971401876852121061930039518903625019956036246642175513579601176159834349222880427328714277112285888891587373517345969165743482214080735201936503740016381685124087437241113086372252957798233497826925815379035205768140413005764908957572743525259397520369414027431002639545780763309289215516033244254531007243104458810051990161986992714506306064675953660714195891194561754801617675657812216623196823823946525515233609392237474926415518896614857801352017701734134917154927758084941016505916044573017586477573190829971332128703041746629816159366166852956620504927228658384668980713974709707888053503964401157757855735724982168509133033894843269534275556306296505958697129103648714606370526244199224856263208238271373205870697375760394369873977856611179249773513807210888089733580644460707914572151537152312321223374896298588336509611918965582568067632870607530298410053568590462231800633718908845141595100414031897947441111283477189475684312595194799459161636054802195631403630374591676718102008115251786536606533874163952409561264361932697373880694328829035092230515339330215826918972907709618510812987511912862019471354515556949628681724908900894725332546114395795971824175169015669655914938016349887682765030741421287444414994555844088206529304253380233418152136071894367972760681973021189712927181980711757252551121270003535313054485915359308257705743647488665025600205713976204468438037175960859296253566970554550324138840144648509474598508684848121246174556848891815217137409279119048182855488294473171004744503152495679429060383110287177325534590535639863579563571262855160263268351454273820577842985647764153612342289126159333626511560936338164042182496366645955181427888071414157334003164080370558565560465673481308640324293435010197361400701729457669649097348864000703375764161931127319299641669893778637572985022799405362373500074453157515142271762414400683198676119564026095257590709561613292438432478148166928805989980040166347314264540381584295356207769652332684714073008100158667116803066143992968790746430973908477044912112484451587439459499538992336316272833001487284283675784969886070007900759914456514577517477207088677278761514875327776073847656492301263015715758624837081992188529518999352543125778440256486574737817548275041530138000581855599422753703482543932870281062578437569185420187798537585509934433319126597808550785432784592664941609178659962268430789452328795544974729688138351595481061145437431803123040713309434360688864799933154899116387107389598233760689912644312109901147007552172553365491160767136995790439232679862154484180679000629935392662756038072305097537790470932332993488361281058090762624351692541979591248982736935780410131556091395767445604773891378687297314914021819720284635780604897134303932954049804561397789608339863920210182987607728500996940307891566991004471311186269537857160750071504927566069003513110539393543158850624693919547774992456143792796614938252428368279159036196819304587867197885731477286964395649173680260590180879986748095851580581033147162441111233071621802918420134359018229290660294955590955297503259444035528469616224966205642245626371982316360677344595012406858558894673740733382480029678114278177142614502127719563476399935777830248217055289660952065867801073901696943215846348132800167227189105086015061447210402362203883859928246762314551806319274259986142678661592053543961264288580222360250613789487534437253782626005558370485143842894172226851225559441955010246694568931014052491533166832340724148812888823228722694891273307628176356814095895734811848154154498652692507916002650932660389860438672377720649855321705332412687595817513565093221017789077712388987213803422310296469846849444679696476794164626072741587615419213216274900712752245293277825692703090306434290582391768836828011603685024635043916117435785032881099103222503446140322440402902960571024060490039039088789503716745044281434313419885380312358907607885441558468197025478502739014473994369820869229815811468578704122749063732896468912207447461865587941672401513712940521475665453462178149731070469607995131143701424559033850030837853729308728036463499442959436127679124896091586831434488004485797687458710677984224165118440225329478845407384269218235233745152667572121535511413766092512825945317177537527318977900764173703560292393931149307875300176981191387913966310914360876096525337336631904809623007527571622658276051280432409718092700057418849298290838116897495323276881349347368327550674816042259925738587468675762898686815799247231321074763034885925274901264129705099520871808080786598046830694385996243277322047804680839449929572450817922068217168775785378406743560960490522388485128601008133672449386937067076516815969591990316763538557116639501273393930662415748715365544898895627797033616867101680908094280125355511437765395242709561240212419752438030125374062753258026077810465871810112925357882261843779183661360648570707072435791868603950996956790050130816968835729254498681208774665429284564089729124677357856825830751055625560343826534060166645350288324764898203331738718518821323093247287467446440520541121276778202999136996029738667250458321034082661952761034968098683597687607577913457886662448676159906579847067066745971868731941998865592394296498571850625744881068570487849968677908942763584103476340403835309965493329958762678834736916957374946660609131362124180143028506767820634198989008320575120549674310422066360261059325963411055464222252107218832039555711956062768817997921423464610771144686950605014811548142025164427279717979751901093042468994673879393709255037999044206417829576396474273744944446158578127831673432844314549282001611986348837368480147099880876092855572917996277793271225777614711206275278921572159574795444269256883336146683268069431174516980594570033925358653774380375586834795987630955589783621927339716151628155781458578602209314733923185743002303302082792433620444241089962084651010550442432413924223755483582918151971889323011672034680448362469070474251467585442311957365080700198398198743656331780163065926107522042642096891546047563553083603745838012174625796012468623780117777296041416477879932705543254947291814920003563218138603503074681459551459278410164500291140701899096908569446244148930055817945947777818678771889914073994759068402333918865035928849168924699242617299179430478599343374155559921009369937937862661092362951618575899082604858933339924500872643564964223911418987882780384889834143135116448222016825388820615021631534855264342293336499983318824729345604986137053500936515319078854112680244040702875934687815449565950685678741547038688716763370757690570502914797859061734844038384196755614166913855596878795717686997543874106862909151706437136019139136040630788819523758995270171510353994061181236746323153403411627194134292507523731990471621535513139831409519937901277777992504689587608094013124691247002598495034597600052898261306430235132448585807421437923231652445792120140406958002552927428820091124662618363266306799027053016298928472676362993331901373700065102415447604852614996906916961848670864718725098997588173559030083840043651948924739100986652393474833582895453940410593124691929884172509426711061564652402280474801228553551105781904576836267324384842832523213556617088959968790010407492791607427548991531496618760348611180752305416890559130108409799656725716205261692570368092501262233781488499219453636927316507606827069750798720264786918341277275232038003202407122730170112878031056486794645172972075915411108850635074467076908425882516799250869717840641096394049900387041153317947703887127985354072781312240222258573819718808923858926071324876116049279673280307689156609599263161400649693903248172000383337571735156519323543833939903692492304773893929269292904859547303784872338302682846487569581198170592598991337474232308506684158341290949199069469740394917216067007339157047207533696780246920348371392835311167747163479353983635793420170572200523400442110222608174465488467263092664419705740898820298903612608841211050984024020908463734009873575982689010346850609556840149017302873534980958767136433118239725069062139393717714932293259347946486073230606036854380179124291962020083413877963175351183464103427190169575540403832888809114243956470886992925562919320515047478964968927438913854143144588029711757743083411530424637828448535513969504309389802689235147421220175645234377915196993616229496148664632283693730401622541077638138688021654745021161056606308295635061152398663075959918473103917273693166840449456661166450901722666536341337042470440116171419324335703804340580864768439239881381678533394866904739524903569639211579601334751307020341773261136576424914249826753986966287151542922953985544962907750761084338097128480721536499766389661456387112084524978191768322259936367699908968951801851865761823774075807880113380431326827721079347614246377859165949081518956086110124732274226708057018940194070040151004549683935670090003180148734817581434416887410973018263985871291286233546093883171459443142176767277790444753696643665992440980416621390328881697034901940171166552064217541251903655687100545262941941973851612742808847282276733877792776240000565869334099302384937479790821636514832783603194548013522302812835219414843790050339740220655816648509382754358818316454328288600028235202971403501910848738451766226303847556502349336490289827432592396014956147018146048488706003662723980346800039733685685226483800072439640516263839830252572802127933528756527129124945139934427523158048787441286418401861939903492650617087522948214848159290779465256774095232252377146494871242584757212058192977669197285433954638866508238233697774274053335014424021586501381624606349751149085605573392258240649035289877053035291595835466558110846546299915641271917821827326745619137013287951050125417155736542424706822407311501411144897886804179765339614405701407564054166248573005633477356418181991898891531673536797791518601342002332391504817051472583318948711859269680925963631632213338805780095349006943706965079699287098080070956062984677370417664452726332885451466936033934565153205628622111916678737347591870820239654454163023089970367648344810194472325042782688263230003893058626545175362977199340466332185806219152515544366562320208948551247628113858041599622258385111134994196475083379084614102579491833300627748775298416420422422968498650058318226040205010927054615787681149506421251779082839423699637800004765234128388087575723492047796810155843727335520920507418871103109192421377697854246120825527224857359805545800361102303999281273853368237486576456856992619972137309019107302380712947232186375043311658004957176502818777322613176592975663076725738094622372382828532082792082704322276740693122542933932239076449469082594289952764527859693604978004065457512101092992184852841891733840958419794942673067126757567383081800100005284234721614349910763085979753404204237672241386417369757951784555445192219324225120351609255144056502344907126009041656645943634078830774568000355310030108921763911140957288110878032468043341119223795161503560372009463273441508354420218756650684090208444931249535594382555553982023648632154893355639235924307498194687534607488294589240913937508410189729830535898596317687050945363602403089558112015287820284682592935704632843020015100222662413094499980258511930747234324829260397174338598672139293281531999734601863760871259618036631066423393230365284548220272985075771702357293695194082420817094387151017508789693018174192842111285565307648741690113950492384738952730625317920207149426096825419104253265005698014903762276149945627424322449701557267486621312422436501413207335154695958786133557443586082047204006188451682605177952318806407427164061495050926070213170897323019696027319801521469694314220014569941494451602526339544036397574871246918889255843320120573677977147935327803247646723438773649702056288808331328297085014754152608712715325737759255994042596944173425696155482584796847468947250848561371958680965025518201106440646207687526499723764775804432903187050346343394255734470140107605008221077402522868697445815893913293435942949258381026545249607372751688237638204487640362400897295860252008066985306716943320643457179396770061466862186386559277019578800672030180980680198817458535238006488672743081241958376823772163071917551432761942661200059181536482744826813032133098600249129653214292743472969614891912641291128802451129928235618598041986612760607591286435415706325627478858564986264061893874952686299654801358289638909845207450403895243465002217884919200635575745800235862031558224176915664205663657658821002416091892655782982332962399753482156017685489364253121750465238201970297514422284525900937744759250909291016781433652513242747384606019580143403617017406169553323899625312454205984715887344906859317019661917640567533698315087043506554960173412698217155089947935411114612274165034443547590151514785491494795315921328629041145834661327630790946154154953145036478591855325861375620259323078014781174248798288431424958251696124197353686859485998439992433759132120848334797860213172390696385577010403231833927622966891651596381673198543192727001633365744632714845218066779502727301187252070106299610071220431252118003165549954889560057599556124787438655813362268725519892166085590758608399468442978524797394191547396153736606059982142312213883680163526531039093384107615644581151095773142020162015360390791574062565301659169327229814637831227312412530016086389451561657251133280748627792213699221876887989983574788274267950697468031647305240372235168619973294507429193248059218850466348491466023996233688095213015561491693857046958617914200465451675352384221169348282322161675880136779068928187244393768750599438565019384475436552860229594271369209151409244120258527516910398593256855034003509711415581609989082846772234769265473761614014150443117437373011852366541358496852008141321741665415666005351120725899601030411160369378116041589163385931391790601739022689472837908922811005126150517348480368488977859932467759344688139358395558479656748303041338461671935168386327495853840192426663023053242459585808010070747659755438269341894423298356933631705934108283730654652590821703809885795496511289409783754558049393445110045926378185555867551447101885062721376903748084736899353205101265563777112039945754774635048882559148162400501533966853250006435192220594304433499474256149113410362498797107386772681627748031080964466760027348640251411733537518856907353909466322133977451850717420933694376066338626971927479651455497176212604358972896397080268404810667234599059882006807960557480716682044943421792452021784669373533080590368392701857711095598861664244405091135689466779328209079487332958619839254209199618396519706762934531177089479252377511694322409334983524961547475616295470600223867894256737252066508054334620705316241647869871647071985566543957375344792444158904224904187835674424762319364171463129863281234033737806375495217082225702042343865065447936875095108943809918306098956727611281075022704653073805810864326138119432313880986688019510249506706265039794701647090272527401359892518857178149853793315416102024908475956180839267411389545322819431438215974596478779993164155560773904387257102302361568563693115608899633873833869921282536105352404967926908207774492652264309782769287203797424981171879341210809561568260597803390615723736184604240819187643276336245952304496258247677440420419798813721565439972300223549054325997460376116922287337063175861518098372533121370487263527227647474817716524090372832851471093724973129811067926949317392644942439996759828516049352893355487321278263107822587021456714212488841092859709872720231900438855493558824792303556641240817813367834518364972946796798758593204626769423351013298827808981859572426926334034733051026884703916215524578591906921521603653237474987717448162710581849116091819496841921389975146356969199891116345050719778478606515746524988099896441308420295278414936296764053301917192680989926366145451789328926114410929000360568399894055942595844256393259596146751052711768357284117961377948557234833088337656313942636646647173263014584459890456861163564258031244774584526256263243862564136225997831087179002226745407249381549986317895760775537622858302980576993303118759522425378597835809722374296198273256771881880039514990852398095405424269477350709372049688147529993445141885920951652686906527758418362423943990599464547943657142384045226512212715006425834558056829766459254017458368970728112358421081805447153557738261907382564782640917075101708819351277201184146697222499885315968769785776696546997988238680101362557256461012860753957991220669790280156170242871824949567035058696732806584554237650642052200262616033502047833211111407435503542101111967993013367768892965600704440175845012068711086323651186065776144235607675696736770452438959272227314174851482163516616596759356703016153138704364499711550821982397418016174872359244207365242276342336358484943066690312076055924070795707606060524847993449889654845793324528030137187402146274984021116723679086785003248902666661999946206543312147126852091569112284109718960705364733463325681206996987061238826656851064129915945614257712405616397055831746058696881672671551333674335514464729470632031915330448969591393992359418435532146265788483335638349776661967306484480119026687337868231283547415601882738872014521107427769214504708080868530550847572193531362666393626990066107714283380020539404641942575454820848980452747520546140302884371698343437213822097014167562766964651402360029766173710560861570038377069524439286576558709718152753793818713963929231043431799761124963489592493574306279277004834000141041124794775355690004762126631222630862755652284683246333002840971052553718525062843835798816018910846997246935811307534839038757513600705213319978630074490931225490270626149899387675406905936250374698257852346292321027690474026332715883656063773332792681565708244656726866483663025253562704965327865967789440793729770958710067534209619928823271967860769681405081189740024465355986063801809860137101307217783962433762380174665537111739058927571428395088523369512185249579614897875320778573689051854290328479686002361634265647244284814080938628524553382034418808906482819587801052507094382485512963004132297055528634575603598420369787859733185200504172121967657737025493900741995738182832631910678735399548568821076067509564075041804728403736601898797330193711401053549931586431198723986834029072596571063053919231582303221871793844835991697735311638446348057358389966839677895805052559840388108776169017400029154723984941612665672241423498164480110224265380228204533910359583441587896027994289501194381509384489536408852811193050668608142831107885691150287738442977674491282160039279120819804626181183173874009611519255158082235054291248491082205359451693672551435738791601721324117022831624470812241655782717735784321655241893333812273472070603681486602663504108969516718744129861547014106650050907969913797296775169635280026956078044625888571640406947735380002157344476187916793932500823057429092760274919130504343790013258478400562939463401698836789416158210483480482679134392253585012471794226766764396706374057699548520600894154419108778962792173850766907464523196868357785131221898466450316752346925390222792242931912651172163376091919466739516217402878368346732611484786173782049158947446230522618294213605021400163429472532021541807497011480389271675264881772337787135870438384287914814578930135326255920723182269271731458434586924009439954902407362826344083533455845638396371811959364587711489310264565671026859932428106717498130396712010346925534681676162296332449168230574691466718333541359596562370883815936642400718197585550697893351903338132620798243807396066504811573195590331277956711172398748453613345661872922608295723171427367950421120773149347639625398108557622000147040980960914262842882765770127960150361891922718458536802676805238523664756120393914483631072763868772794223172133307806013082449128776529798550056601030572554516512123172742387435123348909567684905027544473373836507014792180850061061463866355694470094982811981413248038007018716145432508726718280100955265899835695751713060658827465721286195061593546843334796797083344854357829466017103545131586164151011385648971956947077270906308739840036152454408373982924582373716686145167178873072891551899428786086540457997868107098220956082557409123432678963948010589194219694272199504987374316811568501680451080618525288565355585699321770750651759292206822803937328632951239507400508324428183236730469481805469564817924999320353098482768536871124366128943043635718515760746645555980456690095319560902199009618647948549616489205890242319815804823529450796056059117157165037550251074500617189382928873939524020332069007923689071972867269934795096024764081573955921983208512429743887950476358756216713307691626791244843735989219052024586107945622931908213107510970368089155511716575298273797240060642062450128019112066057114722160669019471338761013737027052344283874474045530775628475065260171524401971725972423929528002437082303675875905548522485349810091647040801879376610107762809896909285391687904172149142946827157300529413336868939879806351231444478786947241942304287415771728345838542401293095399360291623402474759203177023705545300609938068292916678143226405754287419341668701908760287890694850299549937179864651574842192887222690083560570325180439152033073929056004025023515707958828692497912685330809598535416025662146539629971888693302009248335821805942518455891543096840977743997191862161651235843213781828949425451232505710969217006350841147377199409357310827166183269429942434950785332721368618369502843331416469162648030202507456995013482394381766140842148769972683249288568363369008966544008376086728015864002516201067106824439649996923245924498588997444746412578608963825752078553525084509470473164174491978620305420662439571010458221332108063417327401049868816608118800882804996371720529226363533217025637975557583978481339794599470144232389307245017730753187207100386376835966023563146014500132858594799603491099350756752173398537727126974530797611688336884181676284218767771929807120621364762082428325670692893271630530312782326251717604166996313540739366000956722373956114683082563024544738650794838939357105042686513052240687493093560498142414056513206720778295362247065590446343120839068261789005046965922433028057515991790867926940128611809399818400468907857137608952452360551209595504586588754642687034034325206090599278751530527407911347433556804944331562799533617504885397858455921463101555070814515756860996128442682152801357618297321186484097021021498711951728031277922723329045332821362464042204737398427555625176278380871994682760512773185124394299218873411920947367786055059833719799122532452963665903391762503768028619721046442166233512266001739663088201069860087425960963031167499318434733972263153857071995187800038723721318285894570322431753201681585323100473928270335004012957302794228880361906723996297578303550132912062642791677858195525801442513808497880625292419767515023922231947891009955334426685414934701767487166583644625007968865496945586899907589060549123672058561679863468091015889955396060239954318045873847031238823932332205553036888512545898462189169685272049332482710352094985847234429595529453204829164837609292100865602952253421154422988923186692883851098412097547612952560287759763804100495651204352530415664339032664685275483463778988991999970144032722029957220822271475102518244267317228168378166607148676929840022361803930869900930782239015813822988901849792433406993150152809539728890703830992316155543261954045839199882027728222973379795024376246956292471079651725873578750004883178226569663651813123306091602420877999399120681384035063257846124610621820301926223881760399398169022503850516342061348305861716283034234403749352322704610061947373130184541035586968697209347302806017212053989072808369577030353140028101445486081808281731310057365806496970762809287406383390900887771643566448473102236283042789216307861957455698111442350933264201931309365272220848856851154174160806051441495209038093731575962081501267161315363007292590608611163847158109511295507344855656435074152066795410701521943697099836993603769482431863325626236454704096615516712054111230814088600463602497129494750222409211786913148769898462510319229407663479356989573192978445769136664289048197993507476980095168651229178573497902700471226470439483628856139620246772649636756540175450455789924755772806262996703627475819630331910488263225934747254277571409594288326222544870460981140587930747824314637480604890711199487497534955207687949489372511755185176217832581548707126934007980702427734156281586782098739719372347516761449322748798821853643285109943093332638279685105244445316606499089837638225115577743064279586577206720610896717518255979122169894414766458163176247537156113838577885111090833645795783477505233587042152749886467199849366651835873387656031549382208705124987776477370599447212851376711117076443630272084956137768547992195212266410666229969234884202472570031870271488752063589538356008895402227952395811674344255508831720043158223951680941301601318559078652170292108531159365061170072019622837603911194246641453051504430439876539160718894449646905968440318261521109756035261155518490229362349594872862483525900240946416261134072901800383728269042585775522235151177214505930620952330812285182279024250086305034563262648034375518108655833544892260452517582412046259515214782607703576721045656038030925068504682333394551364170262612794582945153965029447431991461623167695256767011278378079172423420496309855264121104730806307961699331637164128871557918270029890372048715099979957320083859277999288699185806691783373474667351378981573497713668722635989281365604598528696046676878426844534330941816770406647091541930067112008830495277107144200528895340042707396128290913016765053805486440820967306824480488706174832023795623963744087884716579250039512658157635942269546758898163263245026218951890091157264245125163986668050233408737460704783933319391619785075870308498251187084967463374501173705998802709970386514281982694888355639267938570710130651350354254514271987000504674506206811035853879937906319641980735393610497807864738352320289768745618511240078085789977606497753069476337712683238750272042625491212346868093118473982119589373321585128771469418665375535382362181862593446934282254985372721308870171448728614517649579147752173984450232431209773712511088435974946524664078830142771183853485174140236694068619462331569001006934680322371763853649615122714336054215971894097759426664389483195968087558396995393671846602625039517042358916681638292689291906102567663700008897979858885749712104136151146943014289659569184676261296607877020509743374266194741037370403104348091936146343144041792124408272475717089944637173578397707767469012495994752665355513314305143064709916248206363030887274427697595687535749530538666323260785534668086695246947370093127870239153243394026451631379280249675113406762843467619236078120096373247783059083007279559685142350213790264040765764511263470741779756220723391769420729688003247030037166910576466529552984758845951467840603359810976138674354886229449680778314313545972694866501490718870840481984918902593735328349116666100624385329528766373922985497165915719031913295754817287267957048669162501000913611320671838743359438693275240596953297943079665825355830005979210704257864092640938803018160503852031579558383946530568742654329168681626545758692282871830083007804719178855951059999873519748558031299683434437006805792746533543323600394599210004195114759404015874879020100968836300809061436835633748954285452219899206307422429353284053555222100266572817234863490528454035651440518595481363431308930732630010632556374630421139332588090101483477975993694226664676803613774557923108142438015524871426845838272476900067370235390321148629638343939546797438856944067100298743907546353519797442122248365698693717028449099236551389719675670227113977243894654199411275733544821658700820899626318944911268739847337887273883835691293669815669454376836853611691502975868386643857715209453536508472688045199965634943578841746477217123886223633649696083227898062567148583562477233149340333420227204842726107236829762625147390934886818016177746228442372387234269715161617690757476942977640875701863253449545179340186994681287571567159533244390333325413671992070318362638119508305807571194983608297747322882596847010005361510718360610987190766575591071077596968815306712742569579244080365560939070327077446533194289522595153544168535070881861041661730095995904917059791650994847008331019047977401797298363107766726081988013816988240413589077454013327872040277321309827562968896502805044794396978185984634523143813624917942048504676125759813501929379602421966349389171023572433110965665020124792254142912672727340976491078361672925710610051348698960709723683106398813705158512424477780571071277857547255738692737466589652040712335327821152705547467228257704167553284565054243228423447517759266277464943074672054506729797143042905892583069687315828403435349345877915314477954584483074220536206918472360269263160534551954032848460370568334568508481059180637458001213163599199421240920149501689474984224479413334606176088735081502756718385821029957193141451080395686594153441781312694156769966595629515750651677640536306566665017405153268636615338391626889835004278869962195426449207923949307767345099814350509793153737247721005164227763413585155701172321891364787972685981762814032315603527281535921255658451520302140947033264597149889547868110403488929695856927103875463765730761668018541978989388401755052250925384219938218556104400683467565518270159153836659412270455584192735865050989977205528540049506331714701444730075527251694186968302757384043230917444813722358635060446632433862260636846183218470447694901327347069668002095000146159996303635783649155562521051429900233857085678315056283289311481094145749483946212147070757795037835799562518812159854437850531729296699923336114765905097628742387803414532323187040923588511425548374320817177031455540978459941842345732452451232943772846508234118124443354772492108926294170578166087835194327058468823195264538736172325020688557913007242670844602159081557484691278146399438727950300463837979392239335085209631062281940649678978501264913310086303213955646675722518377275436287964534846572830444719361302033952718943471619572364847669164824648953179726739119520434667949682847439119080231129784495939435115680870172455572893209268305067901920345861171237631638790700878907080961826760892495064295232510658246362021755682186825004476979838582052027480127527237252962345974291861288632461493325070925563457816315810126608044067681413525686993724503058281722424862153933526094606273667543869584637414198387469334602016687187221341371946902510264478596843417435495488052010613805566115115274102422441933053747601530345252204826611820541007899090151577128884622669715726071148298437302624584726477542927694979870620923371827326012353482902266175077536341315934330595648373919452855534065445907920187336074393830064504704398847006867635736435746422686331417756404439844342976342877211627310682412127025552513163189914086007021278885514128620350294971140308008562677551295170748358869702709455404737734451138315387380299051895773686091159844412917665701554409315988417384820550081366148763307480668133697663668078625968101322991026548828803620870765228122000434712509303387645814212062634008460490072669135125338130885781968492133675184251884438447363617670683190130549322614049131527872957480613305413705682397350746496000260443319674310456931113084276346501200860337614618676153862778813504034774129253911858952142725533848783318038202580224909377812047500802972498961340859156530029084576103892692571570308283296968612407881021807507128273963064038458121891557996361008689160193873452880567919177041976531448871401697852406990249957477531933126245535465891094778600041797920837184405992708544015677246774186142628909786459415594926288348047408513446504324758097204772108677590937648999668646040044797383489862009943409760254617877899215109912731357845473580968591682143442757778079507528312821243584660091002746861236188207056253107495686669463984634898215959212481899328381912711793968416087791976036176704492968272814053201298018530981172332056770906102730373534921364980157436439785937709311722347969309816425607860621758504248279336042288725096458330368102817028301274549276542236553480534005788050515910377720798993182224016779338147597914194832909528789305992277270313786567672191603930713837619718769060345981195708905258890980425233010880468315055145524196275285872155564404745423014230595002072636429275875979251972608493073661814858178285058266607027098852538212516363207429588878378252351798023533507573549920298473378600179808778678184628854303383835544982047992515729240822212350019468197842255439590746592403291891719655825443484466451606069724082497612853632345260954325267156989897285537928703914698830410535017939802059501110783320757093337877383465162200157587600066995604477908489969588379099227944621884356156254285126085552511820019300539538737565951538808390961014024772299164852259078014424148785553731936813223909336425706886047771725455088841535829522330085412871661754149602291104048421742387921220566301322695279535656948385556114584442590333155308956309682370087228141492979982741634000143862026065171297487161831477297355686538049127894035745361419987307698563076970491401970360925816790299596061158336025413667902083145226526328464034956263428651613223747365008991809893559666473105872193427961444429389345785396311485708379053977437437355484580400036083796034182171677506944552859194034445112722112797766555445490133695028923345986837688992361982755366188607473774596031981934717564583430739125051108788045232420822472837428347537055696906545925077673456895079097397727661288079202157779102486151701466051372101575836067479703417276867939682294503317110262628554924667352894972267600781734083870458634624643940925176605191142403931521342890275070691725642695831404166230009790228171087364091522267670295869377863437364919425276793561412270633727651406330216581802163112816198081677195569763593575800123607204256800189433130312035246669391713219659847573241464449674310322884274107499673148745561066245197134513445299398965202314476885648935344599068932262477094320623451541820015644384172277801022361192288388347232309699839099338509634872238578049277664885927574808614169355937821939314470923332388937977497329252197336633847646052808218895320157372226293938996749079767321748071566534832512199680514266544209432737199196751312291173169009181023351691859368045474522919361296824471408824680968135311026918874449734788113223916006761093229922624989551928977828177417389048849139923959461366012611278060826694256834111539375747243191728133556328039691114922594021236639166601106467175196852606320541893326192755487595656721444000875309979838084272398416475095950614607455652343641704890266616947455087888931577840222963039743834944262625817824133953767542748346204663418542354881894392249911144316385540347836753766430858796142531722684062882165780532033618642519994186767043664973052453828623800047443551638712382641814219912020723610185534381027633632814633402140268615282492421782675969100367000086394353706843655786907980210581934440930853324563672909576796388847631277151715206034371590642097230029591765257206957489242321389508103903676548910868280791133589433772445752095414565989628588060135698410531493095453920759704763933598897538863554750077568627995471498494140433236786900261982762080379407998758368634491619946505444996609596469211387276785407429388185487052877501884590608338388085880314887343152442596011226171301134860311271894545563182317410447991155418198114942135920692787987463996492540566207799335714013951927303990730104300234102130518066829809887065442186472822358764123510188789077824100707397892969592105448005894448076207901091778854972203558334640652571578392736247333590884516926415608097607239814768721585090009741695927683968361825989356403417318398743426332382660571453273415348305682272876233017367454504527830403680536102873869118897781570157197267244087710538679281122274499638438265867825860349380199138713398698515620269233271744895997958444771775057364968154080308743644983302355765883789302671338759244195663971617187816939547034948400029574554938572561529661926498412071863399468635706381756622467108110355067404340249880369863727819387125843023949118688080527626657337343928878897811080486711598832316731722696306381074254860251825873701914336114468813860175758000786399935358653922901277517512657219105006371377563138525408598176072247964258176088902064883860635557388537610544439631564290779071797229905485113524686732766619161711548738941410363577883090603195836716430131847964782674205394925228576928051052911096528596716355581057065165845265773967506234680526345652518159632205377760268699835268713848799595501138934203373885011874910935362962104538355211742550848248802131407698511285387860953506963596204610928020968171735820111521142558799116512832140294271434698472316314310984496286788245417206347345197597822062992302783049544040628987340847456237146872498782220151920310423091754037410159849253054007619670191504849299985681688418193487685513565800147525727394366422039110160702832939177149252168563651950554890037993452268336246276004885502886417877629773867376300374426398793159177040931071807686839712618981302063487649744225451589520442142288552765623686989658042322610979289457235190056910002099146408540179218068315011968624093311036963413939242384940154633608903670114514054921745912492444351270176589860333478966910844988345673590971283776419707945613783071708919563788775725478975183796065205788111039641036014335812978021332285259875029008526467031985330675321956668904786421898142697534981481578443973584014836894832532785625094745892242220404060942115633435314129053215885611791502980691875379290975399498183338481969088599853452614295975247596471820881946458394349097552163666037882773177304262138361313958390698719275965490635767064241207755074469491888005609144903816025554795015996071242660291817769735679911533649343765546066470557920312787462242021913138679143803653284285800407515333946512300997074160972071515227067860941673290729776534474013604696779927121182527776430313723830948250632381846106184797965126735563583865422011588889497225453236042464023729135716277793179692289110038114958557964822262393389529645839139276211483802532374934309036941777083526008281578762405897081856642795800867681588088209385337450115770967346576809331449110256925811336006792073366532399633895523024890907522869306406500590527575181640713272188565548043394973838138506009394129304677994694446232293282952514505877577034742020613517553454521394488212887401363087554443039304317375677041081569975992700535556706725282094523236446911829611680591489671405595688703538621577549629082828808798297325922409523501092699256775348751210146070766624121198524852092647876478019830782510231327596189363817994018578923263802482129844661771603265287973854656509697998472252860895794112066054842585523937369753522648556574941019895054681999950848127985606439150230518565748591110808611177856996470758391392898869761066216303444091816115486533705565363563622081054889999810278448281137866917383070242186760266837502515130111680029473462303374501472691838895212276856730453382546754850640047417632641375327939911441909153129679396051579349399084682782996598997001732969092854181441034044692578617719071049184549944463117803899649452334149047178247074238738264133010277075151855726720381595852518430165393183824655070182928928533078191770911076401707651931581068926051234195304652556239030029687626867736160920014286430746537021691006099602957621665494252530974500699614006098747221215885529217675482124688382556425242328974884390666764087998067952195078814210406482805491484012213271855200913866120927290114122804844877320181436204318869746257369042600242800803638739236959303403989226452639091043794983124782099499666495901325527127503428876178117578763589734259661122020675891205063316615064643608045578754739499000273585895933627947520274104152021768796576713075204151045291169170244024442498046912801877699244620199632868662195364047182311475530843637427253709099738073003452727302086173500992068865048301457650549357905876533800241264948371434121308008064083541364520821763841913531454045839409252658587507526144192091444239428548285302876278497314315428069575963663676315486210084550184347009109099990661251705588565923264694512148018039343458210439909849666261524845981906892379030937813767233086335067769411654850112662335703361800177491842991841820619834851128780677735399095773459561175023023006329810861021449357955187395462792835979985129891094414691173010370633598762227309752379037538788417484281888822085979820421244061321901020497524468142143912640411541172277513977122576312759545288559851000101938047334983654918607468160975052644169138758063705479520331780248404776118029266631160032201484790316459083129463267395822190170901346355805570601799944853311615718792725328042168371899061134735408241244214656895981810378598836287290251501440833862291314817081647083423313510058260400299965348597624169945656696027263704465158615465104898957713550500015327062583188446631276458392918057545986812516605012888603668335075403008191588081161212112084533229856569549668314900852291223035494995888447782774300634502668659043617929136431987211793282549756105666875288644928208538198555322293647003106769843314972620979615437378417275361433857901264697958813367559959250813399738939670845929773817822739244190654724529283114810937600807004226959981997234317438919173787310938398875711752655894685454245399297763863694597731477220243352517446880209826898350138360490699933103112898094197414766584460668111110315063822960481103574378439012762525087700142166410940741218162065169145019420674521533408692697461632301338104212276691784847376666362802994030419919192285423956528527261783436452918006204037172029432203107497203558561399348354341857597497413201033087773741072868556840711631849959437369014088435850477182246178455639135403375449593039019912797714585290473985956612967044799878693165332293658205883273979464002025087837220425319529263586119520349809063996705777207947402817757851145163390946888636503756332926065258063110858876521873211063162488493354186169800298866877531981925765594598013607026197394281146825662692831360388152322615207624466814023581026536614003435461085814613536738294067648817088411884150299951534472998473570800128060349565309201018612353793212405822065218830080637343438628108443512481966420822307699006474852987640194919828945755665939577668232157750892887768186824746040184754824262227399616575407979963323402972549925640530036677176708044558250788125782950024347914844841362907372184183228981816251275996487095635529555948731217631131022149606052073630056088203474018796323367285780621304231073988122565322145308295128986437810424518245022585791657281806021167529880056746452043880887433262446080022780614683867149981518267651389339718153064505098841622065408944343107645123663443179242087895931739100039937861016121074893626391589230128261313215511433393479067903666859230637410228295689184365153709285382176309840690969019256927753832916161158450757682744433811262729493118500697429412512365540529562233918770127154703223546469128685409775228287826937639445094379723021034469387730862253283183702863869003931355398696993810202119035729073145215708785263578978599128896156353039900230152847239812782653099381289027481849613957775135959439806117925379563313780859093110558554850528013865731382908824277799547899589404346751832001762937774003356254191640172724640518534456746877206060190323106048486673339050035645284530926501422233675297709490247187874819397650498580810182301533964848224506440195253762896594546991778856687575360450290878131676026815857075926652599598624566608950245121222014348684074673746406027011639361662323356088059013658113420481970604433281570633213648758466688338640443631476317683298146854362296043448262718325984902599394396241240219336255655959283570924723343097702105803046786898081467598024817443546241964364417004735807041601988602956905296725934184372806771334906377314876544436004715227992808335061929415309259586395060118889227988049323079200168631281239760042719694707810133462738196055880590010291554500128891356699016016848950877578765916870173866163495881818985516338977267638336935653785192468884605659784680201726978689181216440766170961869793161741616441054017321396345135977272600741572758539624198299714964378980581206647038420935718954354490235352802771052928614905836358592135174063877376480718461662775185795331539453909258986013769901318150541217450696875606720484765834817484263807621564861502660206424174813202322049667697831466518510081196626027542634435604298049127990945281532558530461061507110275267057583634273924965655582851422293391387376136753397122179812239662638728118244009306104070799917364610564988344883373244304550748062745257715711311716107269937245323134637407003575950515294484093848236820598508211803475123381198499279299224813280040979527060837561189310415100887605862318803574778547737709470249995056321806664504191447242759951495825383432415408193478301728265767983132301411061762772843457786082212685378829027752721895413485578337088524370082652299759179899144366278272231123500774814310107343163432211231088555528055937372164668606749088854323857424695522333067727149422246304735904386112536413638765270418551110983385005866583158306406122300747361896078394941856505447791543739977367537215242719518436352679609878292535113605685203843881162129450794581270032930106602752329673814397284327533521360669713548862613193330035062129567118333493363524300066313456955998126186913717317071295115995551122682341897072010900155544339063159235920069536333303708467954039376875668970588308841652016843678784797209959093603810735437513909391505584902063598323644077429845662383072451507541405603107191621631069710564595624125227238360171867967052232261535816276656005437028206600293936760300050767851835946372564122443445781016174705558661669319883456235149527537788013129277370153304797666571595210176834589644033688911292971961928913421737838210204748977115106733001202267046430145963941146378711390671688974936402189859429290392996518875186580574893682443610955151152860811852354225337129353783585052244550658357751942432378586840609676122292804580840582468541684798772424761213276495504247584712173185778760180923097750320308813166860834714522369989671226722953057153952917244702571711907885092415130904389736118492082292215099108522524727700179990213086895625999729788326799379267285991765636967063392515690590134974316480223443854153611465119159246815823600049460329736492916662308841339668488338884622220384591688705511883685725689830384905874630282594808350359453428164198368754868384993879268687234553758559135771934694823552573402134612911156057645017990163303036888736885770187048820226128758075492169772467677464967901534526403621396022763583845995882035103659463767065625875903432463224370437142358660402395227838799271253967367522484507071376796486788653506303470225010390068461537680606850730253164460926769171817502794141626200696896557417679885542965727165098737669157535176868746156007683109148622305305079011282035914144745395213652193195843554544447117638209357960505714138603974819640758151511575325474461611682284255169646261325109762468994399714569684275251576897229880406404918815743648659934848466320865955104514970089931679307277108860066855734115733026825346633458668733450276344208558461257102268359574252045920340842034438061142098622948699334818806366566326362042112407095052988242564794421609925940063342342879922207913262154787202274490665574757978273672681157517620327122728221629971292764230101802553014192553883203876451783630317739871628946016274074947176162356408567540811391479233119609571866557671894331828141274908595669198828604966030023357293397821235189714325444614254054119214404720636636780452298639026667758575568425905162499079525205129341907080378150457657326867396549349735037268036155155016144935484089677763909099447486651450031784912825383823622496634603512543839439833828382811686627434966953424333152064634779767422771237302938963262290031003520301410584270886072102028349768927961044702269273542627928755773515358509319956560894340972907609080447994086522431829659384393553598594605182122816528500126527250092245938843667420787045138072014821962114839745167111274926002838345925483034299118820892156602850464452313483937722130052870438298826222488215370607292142644946151252166458066596345648137538504362907773156855136510335028287643133630528566631072370245408220953676884581108687756363953015521994436236186175877860707785106192852237346091845417143344093927123202598814467225781164352895932220782170616659384213991883767153094532879426972368078593791706675530221162492477801113461672267208065852148440150767849310896251183876023809177110119419176092056000161398205069542158768350892158120084576975596757994507821214030258692980363461369929487302001117403561615333443044444704839005090128009128881854057529191619439455105206025089348043584334638351337248604033184800178084705725319882414131040816946122704161951320642003079736596555432117421103865687425250523408543631203106372616350130306382805383535420612684584958358234722501971598333560969317112851137114404271201820525564644472570483930749617302264760401809860561868696609600537855021156043025541422658360454420421281403809037925482772330135475704560109476442357588594408232647648570486902346762541729183332186064522401493801650005316608902192775588342876712392041841410711729154951033399885470773909949039388928610024628368358908734847802201686211024390145301576791051097262510941330092573368310599435269174394236192905516206416242962076012511302065921195888088932563730817781690862852353672938795990628781562379487012317963911827708635391306873159466416001577042162516930846906084091623088216619217349069612030251427638921930646717740951057887738573867279485732603524064626815615266656331481488041638997963465133946968485849488878366891410708126315904367279181509380088534200494977877093554586108071533157303999202671721613768168634350916405154347197522929783116182284229346115491776948207375863501923957473321622609279289190390353760388708584042810278120509831984161987673102121972748963259074092400016950703511341427616792168862397842624512931992138560857764915849639301469187858715129134880309309429992811927504085665296657483254561852698940008881910601409066264747092101960615599512310199271689922221107366455818534405865832000463689953839378765431914734332332653345491201506955343458489994966885696833467679173482969639273842501992511940352998872166292459435892088256219702453430135162868965469916230753946304358341089130718390537938523511824452850293521408917182064346927713769248516909982423167787919670770898758247801244522545972875538731142300027697896941769949347172406907753560467325678463692767613717623971701461408087864132756518379142850799238611960706461748740492289047757074207095743637608679917051561240830355047304059619463234578764919471309456337454818630193944223372647423159585976655396726702324528701702567807979974603455844371445271772728619217561181120976482832987522140346694041371257974476798494678971466157990891923091074867736995390602792730257530211242197540483128595757562648153257699772521171948665212978422071726388259915669094773942484994784661755033615961531795154376927329592096032446518914232715732741481941748523458437527833801749088291836033551395914969143342583963519455946848472300498351092898982716625117714415282212142872080694171549653968561463063430641991335236853438979214540090499194444111144938417088882386146426464320510063377620691116860029976918640355361536126422168999917426923737564693861804285901591465048669034037289392144901493310582222838804231673745338586472707355166319627034634901945827179802257870644336954784545255349082784542783520536769355799708209017005344315660978520391441861063545611324462513679389506667463496852032203887075335470810473302095034095780544246005997994631966077374738624456280788816895896754714021036786011526625963736203308871586715670670078444927747913416387160045852248711615767188294495551161854281777841165285632543026901516909615060264304934468021454565348966880679630667153031283183222422544675705029937342702535885303371949127771840093985094224916129812971507845557961870882627699526151930491177684006978171716774664692571524526710661494374475503499586746804896270166363302688539708524390925194557201220439243129455322501835388771722367077345375571627559937025636882507462114975797506770102033577923608410392656141676951254996025011269896528575812002493987136384696395344118316121294680211549195292215870137961971589975780582525011166246399626228471755206048617259182171917290668371782261346786731476469293581115746158085466340106618573155583499489907306422120612957744563871918481683325634650306225820166886369801990567887322034907403854366214300628934413503196297554795309740644315607040334483273032510764494674626311023771752281464733215426246287093236302780355721812228173053498168999636623101217338681298824933368515257345427092731350051097128110572198505052796531890687769401454046536346689682267497381880964698727751263305776688353561565497719760496031875486529869278377388246690246644172286246976650345653660690190622208544209012450863779584193375995267179688634383811906077511532748873296016543112423188124199599240248880738709374065840275944265848829840394069592161569101518439507375886869536558506639449968342815377558048793306763180785344028791998545745204038681136196558849902358729405595471266075886241282833809420103825841527527693866356841107201456467540129170915858563272319292264082262956388401929888685711745085252960442004537799267364098125995970809840218583882818858778873819949618967455316760701373145103249764673853983832806079725418139247708763414608527958679945691302772934995286773310914774356098166585945166543170607586061468336492445414581976759132585124073090687774573149676191318194120474251047368470304739121664790821684997466200565616967634777220487069664146900565187637392349319034576199412786840186822195051814626311772210703791832230383935730550708136870751059335272900176099998549940732133590585967319131250951721240364913146558897938066400103225180679996254778681908633731142448009155266962824947149004101418560947452702993381818997871098332822761336299270140351064848581926400184657784743113071910233062104684077515705104962541454200272427073702880429795383065989066595727372582595405977429880969871901200336837521461593162154928447237230480854505792962444099125594426632775841088309940900486485207015834879298768484749862358711233195450001616375419464074091311023544275731308869571879460181705202794840746432104373725426079925607491534919137480412053823462847287246122909904197350578640571480046850226890454089699545668766920163667580509488750018753511106595595003342825754626225686227184074763306242487629981027927569202173218548325955083124338649816679074404017184271372314354347469690815250536205320241441628141202247401245422388636088185760868402321496496599458072296061054480625978651324930832140861259704652270497884790934407916707603592533212975807717489472941374561516174020790863746680303076176173114598252001144564636511194679090390688966823567636369905988447306258685291738764777798652757341207737557319173490694346896116754758321784912397965894089209552387602474713898580827231179211723079642134072832848895739087204716421563218478369776108047941620928535803278352002522378999200836775068579499166191992975280306189811774035334336638515184054884871629191713393316946929669778076930686080289220989938487836710146742024423914251937558828245498850119542905556773371571387279973632515840354706723485354348112120117372326329026632512556972476704098998838576872594002182857728741294485716271952473886744978940221242019011187814213118276971865024065664079205370782681427787680887633087051580528279854065232729607569113928981476286741454011112647398226916773134455391741608860480092585806977427686438474291570602273301771520444935620318950646941467789198604494240889187781322825315345159458697906655320321776065184386237014132917204772228079108007513063413085217271422613268228430344974646165003542146175384760221807593302061957994631679340247857109246797015327240272209401897998741867773949901765266882501354959583342293581601517375528820366974099370257502570254636611088202773047132708064437580625157447755960670706183888318107342314375039454242642987973864485881476370342712242889713742802830923617862209472070818848650716705184010064641485969342112180410098113862129501661407203776029861759189394231450389084529853228743373531640507442147579291409525486332151618941458663935908402595521208958411135598102213885483327130151607200235917132244950371268032666373364936781572078149319097478807398933415229128915538732237777433972348361721661935215222635988731761383947302233278283984558469091427920968408277932083782013691841642205804529667148894466278143580219976762467499948502306126896410037375120961844733696926421223232321004479991036403710680638805000432131446309572759173690202991361383869250365010493839319773609845388153688807248431893008549065021240238746581622406854925981065998748866365410774322039336520926740502873951091352916315655913247016602323445783173208871266123118778205995115819406086167476231420085061893763652252322258557242798339760828914036771957349714530399462292235648629618841910193520748302689113953729935106081051628088613296226160795738621774955031380025977826265264061931631503052532458374154807201164675042580714733994559475908693430522211979448111978764693411143792599715351155168054074953910176701431889539075057349468175145175089036569523360489612373467609868439020835268155569813405000068786471811059159585842940257516289954332439666259365395875960873530963834947079362882530452051849612282153101532393011608275735461920834534877900160582099726668348243217278703775054130073548497851585962622357742309229843021450240819481565204871673608007832039928039883259576726434246519969551377576254924490211307678534485218355931221552940041147514589841888874497517395462472473206011984180889755301610190251773629440979482224621690525937996263940670949272503667792528072943062972341593959129413226792936811473616462469729686197481226251472583490287569754320494367679240445183111606398519331953771538321225053211306964918891813420583433395879119619485725987592513982801985235758846985561615315996855644472716458314873483972460704596915926391800325183348207745916643549663964159975636619305743793543505040696147571034752059165592570891307095516682530565455827832318231329225407854606488377225606261500162621899177306176559164473337196086405155722372557959303926882911709860236591493027061197001544841636484940749660426146516452860194834774029845373735192828200523953700632263023227076375557776386063922935138208186322755953734310831217108890297264658054678169801223659302486287764275530037547294626707881701496396857340922165014041574575084631840213249044081467434808836865608493938657931226109315090179210747627553800911147124852336671451338567385502416896558767596461730726336567106065708192151370687889291501984895736519988122920544119425510756530115719416497196798964581194996819108722654786849896519758355168201139939759001872354372053265377997540812016184448308601938167529764335153665964278502548171410732418686914264870110262455995707301200603362294132880322052118269213367749882605156770055766356987628608401760881595544678881878239498898120751438657144366535145279007260154906818679076293077163904452445823595568397850147984645620297208675863889468474530169009028283171495352612078606740850235147411423400279781624815269430766258093809799187001319917098914871079258049315784783615930913372249971482761965779936064314980063083897112399269070142563520545562425873398502336838274481899285593358511166758645321048197334137333470986542001739453412269509491573958601073042677398453085012028596105511366065800718852587412956225996532994244678221574161137564291281890803103352548727355004327467549489371064627793237761267192148964891109054062121502334826652924842040645066217006909085722712817344245416989415255984193522714180101717607971352188607754832191849419590286165983069251575316631303890811024341406497940581602884112971486548103667193352721322068352694442864357571557921277660121493413333768776346025895180550593959887104218805010572027191041873717653692804778080630526068287959353108019237823578944466534643997160956786784706382024455277268858061526791195291269779539776692081606398978556316682191920828105051158787821830110458972345520017281344789655788362097296450766747470758633604307929359866796052567682830210871214416056966671022708921757544131466768161309515454661620923743474789983025521466286013808034170345530059079923655984777296796070958917282213451869275922401005459369390314330816582620228807255168376377498761364384422888762173119149745003209411456438594535274574222685193680616849906782712132071398925461960581240217211957397779497911583854599897779224398612318791638122002464094232987687956393112979891013688769606408896148639449648911542310824575982131332735727058215857848531142020659031873026428498712745080010650091236117637803897279726969901601159206253678176167977256823531905784032139615845725476352995922635086218054042697858915419168904091332614697688562908382248735833850431046056845081004963921994495918052270758758546019469268829301565467385092570714371346174720429991194252623287507980454190381366327511165230723979717338220982028268586603474305575033907203957028356570194308133802744486998995624990266251686733745227951789511627102948232801752588543531147417292346768900468645521582505496308888323649085456241567899561915363066506381872732971352679015483821856946019673796357848630083224221677834898843243023844305717974355638957556580815935217139513647278004579772946891159286819263969782336999390789394104145214377676076273880072574649540682975264024334622543266236230480620880793193220567896414649125391963043486110259190418021044397783339205207693983982234935352921232786829878550871072773562654242982730484141546934879455039640141877777004271295952401234369511144277948961629679083525198454567349199249037050632076040145378936783254051830282876240706647026909120197328055331387813022854308598929831186561703807550412086330473752782897922726423231253112669283245383862439473933355991652444262745395613891862280242971287510317325135574509240391710545029909702243789161154842580937638493292024871655320633362056876906611299976574022829307107645910142051495203987743909627721765488385650070979596475856253546465399622671620070773531586404574112927637852927458466750957992552953013968291987986255894957693755149702448190856789174720297801868493402668944404249019390290839673980093267648547936401685038075584700430075018064029613532183226843016588611163346372206645062383830160224090580960899611074493881550965820800259787358824995134458220583710312750417239396400299869783425255274860669846583708100935986551282158502519491215813003714262913501379909730546723343412779804852672713889090377561473204733754665207022366992464887016984273785480808246571465265534968046914935205877273523118658470584747597255543378727981619923424322432063306432768537732784387034613684301512786722417639726674644641543899030109414190466418983041890045615446442806420766354828903342458051210067710317307138695571213797849025044743124409665523691137416695578661097400576260596219263623587746432607825638462860805607940080611204072966061932417422347949918635071779671556326559586106931111734025778739622496244214860228552159060611316161228641423139006721592514201201158592218851945540787684001805728637359019475783168301471030662441837493233051563301730766438804233798742996987763963939656171508816991365697401065196276671602130991615895519897425809732184289306666082102240264994869677486784715978879888575180359612037867577097620938643967832607046969619284211703936608118680832946989473224980608672527639819808123175085140753567789672903423168747852541324602503901506021994582296123043921622834848128382544531755964891465147169811608848519702277573431004758330986141169738228485483201037508524791397017266006486917588272072698153692560212738096556719882818898813904342167404192185685649033641014821930556305097124407899115883257633415650674190340831985756496501347157595446629222046805296066395256761788436696553302067796532624567739461251110438654628524256318010338158928417332603943750694632139556519747950146423074032359882996656246227483460944572392205490056349089191163781094639040611762087970835445462989815061705429582355513496279141585256754106917238280873831667860628401622887995126273166996799658195344018918653862174565812169431636793238035562670743795953293410795885479251508557672799581889387566271329113567539816722570378144025654530841298762678152216688339363599309848556290816488814305689117835629351426479134433842931681095262839339314936700664491176077887141072561401315670508713354862425948031062387367476021906174088901765127357930399143943614017897453523356923392832853635246462355203410527635227789942304962782074926937440915634117461117661269572388002897222551628597864065917143452656466864518467940264850507435449931743906190929407794201929111610442433230889639438012582286953314451239521077550508418650244659735159286204462592133012539452347519056432390759842680342349306132795199385206151297011947179228986305235055952268444925822515702094435249468899587951568930917394361500577606147314005091406287105000956637673753757308430504957013990827888749235347427464274965073348734157497082803627872488781236664762842811373797549843864260441761023073221903432666613926393815823099775875949879166678611110226966912788607093563335237223183471560440108602866649480452809720762542989586637682888495135729650709779730988229918139889995378100947002883900805394795443159852642694363321802161328219593973561399048224536262343781609903658395669536147405775932762754872115913042890432664415227210857496982815579294232128429194395665423478799252452013831517803713285353144448117265187681510124295873191491899750338532288894420209365782456629499810157708522671927910130151500223791043978362276132216350909622683316178535466185969824415350532236838638214180007357510612393029652857597556835389030367510479477136652299243521991796818682516589390337452862234394172932515782932300445379355857526764187962611296048513695522206037421813420076708946290813196758012344098326684835152079310968016192341390820928297024927703051852101864262114775533558731323852783573880815107250605125718133510059985982523207959992262882640921615624729880530827375416282537642418133002026091789680634066751826837917323064858992861256235342181827202138258356940391249100216924356168537971999159500134121824072052636991523094913637813321736788452733863807744971077280040562108091745403922455495980211974967883596960907694551493457837541484267854652270855036505179166319996743103020255037483232574838253033801770648361365914934902196666381254463296060991262809471030711248029693745218464283791776833604302573864604232340779466724727236485999532441371637472122155389698231954884047987373066913624580062400892512084966665347942865836556111475017131759961159040877666441020185734398737844621849884965635283143712220593608895210985704539226296437312941432101133489831778579125705985400827124637335633124326383762037668918020063596256917531005484681354508949702974469865813108054136572417233583090532506041497806218176989016421964042760751081763325778362504689020894329483834141096494293448048803161653464328535585868809797521319212454944061386850481159859092927658235205153925372250527339518662984734745767487896492672509712739047594321065432215410499584726927397980157820748694354632546627189075310131166830168997900957291765140223660144552647156495317965546773427935570240323424218892835168747972429675444695072658726873312883323411919375402953252380757332495436747750930821304169612110202893615943435669115430393090455183663075056680234184314241806051496080174907407465160314335167443455510990906129380479002336759804949598133075665526994993574853768089681586329028871390882062992000476026067046674046102241901221711642401025147300443752423673213694301143912488411894238744482756005884992264661854316271446135276967970557956621029193732653682805178865979970081756838951641826063293121782955355041680502241788689036651965380361908830379101447986605467792354601930370405604760733985437400406501106799255596592210264067686547460144385240864749412265679089528027336629422215674698653776129853212766286961661211219562972457168330011422065507026961892833821186021225536917100586222795341233111311623100115548756709529370599333533085313165331287091000202605408569326466720944648198797103561559105210138568408213074117978464012148126623584387064551368787118415620809900315752996360028773963642462867865227473338059394060355061230068223408075726641625564497747049367102757405036542382221865163593947279995169425906937166997135019715528508925054444501882454147174187728583016787547618721275783302454370448054355999469336161099591515346636096838395663569332501161820705712839616797222546005872099403174927387511899640752395129122503215874870111225498359411227011537030092311126760152540662963465327643500838501699897706599323575640979765206753754011135275881959817371429296086481614576009612239903228440497920955087914032533472363339941128253099797824491128924678582677665887393990189794672599782472636348057668110312659851618857711503546227417548628300360588696612485178566845093973416428063592743669905603496880480227153978849124739271685666163331716419218353729826432682725726564664058112681314917087016827738152191224238943239813834517222391464891882661306527806707883613166941788261936560531301749314200672995576642001002597664535506464288322522852636843785547548810225371789723615087162807191716762064989349374550478556584046989571411608243133553124039902333530270091600102969503305315573723385412188555580628944996033775158641086469099862727888613100102703593086992319968342609093685385934123397952634590791521478940577957379643453565706300931300192493526473196685797988181265145272978135455197510892943381430431462172796659357261970280694418992064798580594947566015968478480964071322574406012663493241163855406231877866004390793350394630124651977441892054925421968936097575117441400798572361917284916771000561903909615035169821292310625120107676248414292481312539718162346879009550243311894685282008502503578829512925358870728302347674861397687882502594398961659767760984017234135615970291618426723970900960180803153394016896714126968752650948068749824089574653064602335826688014544856170819930803542968668191929870455041282280299729791405689024578205203871368617877235601918308428775751799554497967073715824365329550907969925545574656636554098580647939579232285781754842250932008883627427230139468024229304300326566696408234563916580410318019617121066705530723269637893087704760742036413155169759381691861326886535071367303186354765993877674906422540979422761845340254842786570190147129382047276719488198035668513064373907035842256797980548089350712433382743267704069179907303567523211801673436104812065243938763966934230264020795476286624882212285898870940188113803752723399729222460970398178057250455547806953382533946451877641481340251259607455911829211799514131946394762996141819592106480447325312875226097086790741404359664034790469083592585845441873006561870289316329676306042943294348740653132555909854800527051665409995739073623126445941828711915519911803861414290103570479260431225077571977277362364977525522800955875561042699623340538980494288209408446311586451994273069081941105031119016909564401838613161678898655567223885996627363709143462038296188370528668089291693666781364379823648755155511807921049222505416660114761699845600472904302139046842764365240751236803762631361779795906614069930625632737010614828845747514968085526011280194812460082440701362644455497629939846386304684791442582467654200457439354682566196449519036827432293770214098193373207778417095153121269044750075117706439058491246159958014581934245292125218458652712480129147270083655546860844030453132741248765541766589844164849846352368113843026317253328677030855599331843489122476034753780606968562527960061380411574536633406185383893077044797629638793345072879423577836504283014212365751327582465296467085643166976326077021916237025528182108579801947881521712087206037717824222429371933902483125653265416778255101947546249796674486699550902983023791444098496107768764756309217897862773514014315713652316605192228855842309374154876378659791092496396034778681827535368852147238932356441973145971499044206683668579840346374876122657045197572687145709117216852996874980070680245125704027729005788883381232568008269982753756652805700407458736975859288117935001732769510287873375761305696242744371893105418401976414851364080666087474999876511511992633547607531255250524461313574630426249101897783790482539803408016939886886692060168228685417609020064072578220959180823802811940911265787963629484876443595412192285346091786326058630316490713685899725161671276507390612426290301116709242929429173763551385056684702749513056920401772182635313187092627902080403712440579023299661383317375911662201596067559451954680609801518481552679236074670672452918343850089952769132950134491397779297842860610267468381846557626587228077381146399469586172839109277474929090117873152020996952914601055327340006284457391136810525147330173302721330318665231414344842195778216104705274573923110226967518920143651013188616588987317616040767702010249068034475923251029103324828838898019496851218872387139238614287889660767625602241083679773106351893901147854276443269578890433063268821610606305768220392958596084701553209181738487702009851437042115007995954178831753443238523632245272565381117493027700317872114116588939933986070926594054158257601277860157616373182015402145363100128866625733230161063121004079140166042920230794160661173242458928652338268906380791937188053743995733361094017345247009254563157338748156883095481260982069320428794156082989177930570174268069582097125551810157908942893852524272465937585637049684046159491944308550501944058074391467295453779837548017534841282884773559291943677225976747586640268237186566007175979315645703729218139816755157768624051869861736596593326547227744639444456650324781896937960857603838415097972868637453502892816952133360418421749612487609933834224479727307013903333936536931765826630975825143626396645028928102369049548443777702386258437720047099650515458137038100887076493323098897193429069540026418339794023893684306127142584907971953157376152863068778961432013751771482172262670322533009280883066776770937278036632792068612344189935687125451161122112788864827235825791654169190055299081470315056125060809716088428994562856773602416457933905801601824939814845472904843549311357725679944884286783024652408934403526555357201646989902487488429966405702077085078784142276553203904370657619298933780005042049407160324906786635215264356401582737085973779881651369313665339563191805138544440955006500603283578690839156996077344811167332125891237432613065572406307687597882580738891047683780857712634351343099147473767427037126724290014327170006288084037855710688830168900864801168645302573898233769485656260643874951326410889003170474514804627683440165034576464733985678441788910941608486665290965217570015444587655771198502730115858282627544421340961979093536719654830022484663269549779062916043769734489598738779283806850925339992110367856657329008143080430227796251823786892289158849115436545364882781732155018686193700383368843933910798045408562677136810451147872730670825416833994116279640241501350559690527386678603445131712019847062551512690389435012929947175232730218689411147406960035053548102723233489976580477069717519066946772060252730522308954291010853283520964893643125191631663251837858145008958641473940059151364316109302286756969414776208690329339050478842957645159775173828995838971759399722964394028250258188059324467482621189547747378104259341790930307878940727219858697268898967407609509350318457014373500182854046112857428034525339007781060872244036599060953921331265097966335458362930973039907837243134212169307889552062542058999761283203996178324318847120503106781769967301472251286227687040891605833833119991668460179353553046608000411244474937053657902178579121747459659527085074362620552019762889841863222094746777325953308064886738876459827617169006840675145202267862930297704270142963184909400285283687488439127398046589334477520232713177530842020366614321159377227854398311032902498149884878873860174904823299973318021818884036738125489588847973557997124357086833371313297418088367753085425661622486091596376380040509244207081171029487327589929036877403803175357153038382847171593066455356892676399786162198612050096584141231545778416890022287214246472192970602272097625313449646830042803898877759019626884510003915737177670872468167298698643395075903627173599474354566327437623691022579900000019175427900281018754069570036646916765919718495956771706578160473146700667236512337424885675477070349183705004351069211438418728881451415914793756073247420994288362380313498128365815979333455168728239897653059457956415470820475710686227988116373406572609951349002126187664865858439295566970108745259986703560454612763153839896107452071557985550374823160203128813509684924650128628969313468782515748043559224519300916368097385027768487408077227450670176840177675507211051068244540786623951521577190327264082276372366785019702744315023695153877145635134066540242236927742529390152719672314285426133898681967987068657283082830413100177843481138680757919865351541253210198496192650722353649868517099970147128660674646840784610832842549511429007561033657729566531696144098229792445952870471436943363410185633030247059580653664529526766350728938104602286288486059782025202338170812064478084420893122103704732990083080339000715895764356612787171699940897615232846275025771514991426412575994814895503788226303642065785993778158966641228167102917851428867721500011437597465143873272603202540639463083484212624204923033986030192750939544390731170443545009946458300574072232703556868208193405857429713758430639893024287795489062781985964341373214986908631223007171136777077808144062315614780145160545702885878240078310240181422874628244046025973664584899985829631431546499054886054170134298035123035076758259551566666790873937082265729223896979786269322332954556039552469636953811025012970527560803856442984295645416602812128251040511153629094284668895599878089337616183008301720955513651757704761844793041731637974910516622848860098470760115736380824949322482485690384079480444386871034992775882121506652175605716448640088749866405763990295193308094931841895989912805386139840791232370906579647366361660479975466528325948537292956085943502223095945640749758093561350999439552006999435739513539541236467408833685008571167808173801828051373552432434705325244023798157343617075050812442339663236156507923623880309784787618204659171489990390273091484553471559741560127119307734052556466408844854628446605042662244869891627299828427247250957390204565457170005976925953627790451717846563732770896710149713788620438824873014343490055301710463714620087746102480838628731148264629565337112577749927831483843389209248109568912678970168520567022250340737504556908081447033469676386860298174499911155068129146313852531288651916030137400410246678055521194283737028696863655182677937129542698338737215744794467480329906327266913380874152359575927808868872212377932969530993332431877168458376046681798909825196275211886398360361692951677762538846700735661937716371737437331504814770610669188295589963154140239467940515736048967343616444950954271374582664731687238372225096578307585302620054023529388306381974410078883532281699429362466966814269194896005537555217225639635535542205231084024588132165182419575890740189877671746169742154541133702551110091786179234045248190925980024527367167887115418976888130474874531831560534701965926538514277704024106049878706686230199011474144196055506662586367884088234026165623233260542064717219217386523184470955308696923512181717054707000593813753130697602011766306303730206057986164523649928006987117147363885381059365675852331719457055881151592940426639005764225172028041353304482231547187421239553732833336155846572677379712503362203570988260254393818048343027801549880315277071388095976066348231089710940146981715050384544647851111002756057660073004795048089183718655877794881584421354832487592277140154767279538566283468554009713317898074920365825461030652900947005901509555640304258464507196483034407103425116726983152985303283341635138691402431395342168192012230837442249177041398898556093018788704395561329990360161494235154783461489869313662568204285717761125334466160655626648508613457637920559652990578971970545983328369300631459262166882206959234290117886479492581965750943282991159195162229430601851559514023890729226394367157690359432772197475607400913796138667841340856182172154036469216068155380883626183836378209167339423147280753518813926100332867024615618636609885596225832990274740045724868652302655896194615769310360499238310277279089402776186409845540019219942709913383797477460940880582610740328865835289389657735554840336080149331596013188246944940648569821459686391497040143247387785733682248537926904891466528222002254044483373345858434120020996723008670186755395088021481040442138796317473457462193311138332122619104761912962606289184290523241718929881898690962582365195770882413505596184250296178838696536870968571022975700530626777188097139856079329683823627185257536395701789533239298441420137762190093697636798797772302068229093209461918933885051068073027648482522611408539276767378955978715409238091751231270778373296611004436467402065527211624979470919307654482399723553858951224565324501180403136427528746689701311797020667872127556893064285080758843629579629449681883223751021124408067474690197667864426379813581206619938248398314177719632978954005189110600254695289451435367204692178880109493719547571668077141727320949482783783486494375338108699694145104531476325662178917730678509448722444136288113595895601803631232803539874841903156651907763799290272092181942853525371752553337228441541472233893201265885947299987994350349339462832699958987721384213998814673034201776998150902563574092073482357728191417362633932607192561324251331631688741161406869890743370121376503097611822252129795263367350236801543539444054137087488077651031366626468469062970182242025354897538015952258477488972923284318790392234155582417077574417387610153903149964932210296061086454758053834993470504672313433450596979902998130744863721623576498897605333142410436184702028789368428254815721210480745900637171351733907281309537081187248320359821736182735922237012532401430608818576718962223868753322639459105125340795450698337332298017728640561159158546192542789019426376601177185954242259285048842627616095706469717536842281550732741588568043069682363513150405318006072627177253440066176481591872593263992361657813586844392668671845295293280362256923544623246878413651429762090752989613038716649880280281523840757287172981076915883526262884241482018403950303270801210884403909987592771999090054620167343598407843985322396680148217835286632213845169400570492308525827536111477733597572844206547730375430975950880654102965757553744624954165691256576590272409554608302474537855613814432268958516963965167909956548897530521037003621590252401442150154798083641431289478864323522263742423509723312821108248430833787977767842252442057871493028222978615719540734713441890583957527185977046124816838316327448105127095141748515614359037297653463835882038117596688854681137544474855803419951986550414233913224375317426235773972698320955253622135925711113715151882309149721444150054494092237180496692619706228486128555173753797616078668310747660181716297706652489027034014051596139559633793088597691552545151381285843940972462046762705265946416583168874872187918986964410969228135542067018125705702642928243418148642406968158771634424204245908957051419759574350769565655886180003978282916589527835422117228058390169006231759985217360890428582192348475557034284996076927441331330488257465291143078269140776030389341122043973771619332182251501839830893005118150238227251036203313454887363433483760268376806982741627031921420396168006825533324988766583011591925364293055653898449235366157656188106133204781372633024204030012402103670768455789081460576839195037122550295107939590742638928003305898777273467683702254447651757797028261101882407887809475743842714376849393969996326262794672010039157525792597963704561492612451037094379870641433467707245829407982070475917453231615577221512002803979666459362010868322650487499285602025340224186415641516961076435204873878514919006197749896639684003953242593112453192209344740277586452057865239333920834672838873426251068106152658114869005918095231737939696217802027685438590672947223187642943693261425300242417669673753625859111733559600777868046399451079467017255865567669785423607777558541908576059458542462832563079413883921298753520741345157390067062987746081835607201407426155186107537389448458449847603554691771384737453266548722567791022986175255884521926753360854997612109702260296894326949932510305171315743496567042419519976666786629540294342271807642996786731864457931504058256153530448523658645177535773778717599544060610229060191828147454404454129154752524870766149945655333723858227516320139661802620915962223026331590397209691030386121903590901777389982222212307681981914527689069996667808654548644470141995410684169999658897847043158627777108775522480557063674952571870487904264486431899062295997022325795903326322343137336413883678217475275036434249908152359780731820396221980001822943886922580876470360242940540536781538096488507415245893008876810064218670997282604227618225417702382813128267836522852317865885942923893777364272409290102115579871154790965661001956843187193266425372129799738609803710434913612272277496087292307382819575597121083206395715741929925285634526763544888368105832993174591999579091741166100125726775559335952756857159783615722729737944883495875675180723678278698907862742866760471912458127705720783083683212394138757510338657768802623183343575594019953448106777106852481084997232171110161376334999258762559440959130437967663413792562276105844057506235773399453964971242471123918365292235869186148137989586294525814119184029725405702489988561588809332058668589250327258296007400365646352253907347883024953006956738811670658512025502035879069997071823788710177828715897683630989253172562709585988031018157385062888969376812143559927143916272830388109176462044420384349180801185780549851984858167444755968171894295285602035221946816054396515475355004065735467855762149022603060929338240186145152058813590117088516424970504442421768303216810170457507026725787976384843684916575437455160348562320668930567333961150590938384268390438580498780225646259942634079145850038755907655765146940798480915756258513156578582264913986778546508298128360923376585638700339982046975910435759419503369490330265352279218675341371307962027476115194589747189010222967408207277851695775304392719871482693223626511441747170286631028819852893035670107831777535958374057669962468152750691467687636107965781284266177316727844731008730540048231525513727146936099676118484392952185141581839999629869603229189331920461299454866098520686665683836738014018530568316742162258037874551666142234930681577054471270826861850814550852763383899832111641555125642625077272895630728084053348797579609413357647656130832754861685334445615670289247136640325050477546464386338006791815712355199897994313033660927969181296689623829344583318626384963140207835997525142963910388695283231003488083998783745855544333358819289616181450995732826706689642999122774735354340128208536659566305070723839658609933683390966568677209715409938864829549487628556012596868776365663318901864468532622355614216260620020787266628242350843217178415763342194883159311118473351696522450128987425080333153335449250206748639361146495457507258063057708466008201536298915368126902643655521812929867412770987658539584085487461572167960328971604614233169387078586772647086168493054327227841047816800142858723620649876016469517496873458522275888635370638007578539173600181976738248510596441603534347394287785275445408328173244355826597595891372513185662543006262217808845129133229649607627577483517832017071844817612426980422734038067109157590565660498434033277828526823733454223475290742289447691743836728011731303729060984288505877019921036268686449642067503727670778514110757339495911456374620957659277984985998091447544026334126827326368157932716346495319511452695120640429249511882186289213215265704242715844477346334604700978674805997859577877998957952621516726203598743299646086516092657375709536115662839793197873414937986550479027404155677532955698419308553742520566935368094563853756085545885149266596972473010380687710409404433474159583388373575487220647766584766927434795149210153701177366457494036339007222839501691583956283891085102698497380702853914937653692572727673372353718363908469161740159132632216678624346454383977077346117667671315199918459119228665994276984433970744105230168005027606268542497016477437731857650817754845971086782496113401511953015208007212659562466714009551901128789580183922328202776144753690962902428505272280428190135288310859035988865791458818355259552760166925666992416050607573908752697005848489528873917443539535438877815643981229682678880011222417046736629598818297912940755819557058185738361541209930304484734040951234247600716846461203203147389418735167761286751618759026955323026779533431207275215187820578650906875041709374751621471242258186682817839464091084906729061081661211220070028201428823496792202241510981183574678980885802821942094380373866277275628145696160793471159081119846576666540337711501533636850808605508751552455763582002113759268916913512436478766399867746148204554994083747756465706119444769214750303420689412295495285135558682082402523517645087083071019865093313920399898375480853379610758309775481699605265431830079793472581722748882973232725101068489122117628209245618574659146272574500632877436538894619948469906234777903597644002504870173337720559066504165702696377061844940627270096035739882314007770352220764974850124487132044348462460753923758758951473911737210038204295655130592774590520366859823934121415532509680064298227746521601382559487162189464075273118498102103898593898062887922673353931822056635778456997601040574257378685326079910651417771109842862901465552284527334137987757470777195478919980887871241301749269374231745996765641155154279888372002228450321639519168587159858939035126935399241980766608036859952920068404581723707480620526631789578394263441690224167451289786825657210667111877066050630585109029831709797087859256244833834613563342851264615587411062601397095239497948868189040514011537115578129790996893974900574991488484590499088325803692001276808521501437601724563951877047193468023640460780607916887608243692601410023257947432673517178602026880738413645997933397256737313371973223662788895837791117405736330996333729464430400235923576797675205487219598960688044374318163508703023143973459487869371821927419053538297862377298252222211282542131865790579833145746427236750242811255590545053713895132440251943712874541788938121551183699328473987781334526066822914839116642443093116625162801061404418495012500855853965212800799717564809430627503678485193328898304020057353005105562175273254602585538375784653197118786418876634328180207617863357943323019180480335380103650087387969166292500156501880559366099220922839251316224994351885001156835989361642549915928260952853045248972373391731821543221416714031588540185860287217139773837568988926442070630267935978057364000607402721350289431163095030715972725246182849604714839688984859292170696008267119246014717221001877515818844022666101961019261190980751090056669730642226804393709698912776202321824220715690118303384784067013532139792105451667169086303254217812806268289880215404623930402785212368773329036551548852306085153662877918244764943909128072697004155683639258464059841704164513572830707678968831132168175510031357940147988895605314370322520509400842218296358098440386866397321340498174278720562185081216053169324092597251823688804600748664744771289634643796219794356263674850205809596658090040835410654075231415508713335155515264034755824435270826852388785275397998345496747122622582325936350583164697217481839988286048147595897182188262389862650875939618672051118061226645914705293541186166200355324727511505351393211029127697630932543175610625166403397364964407078032786599742787003151009376307797134633971112523492711825456819653378519821462062424180756799026179251036909157263529452346601122572610622119739273222937777545222708759615789533111966392221967134383449940004404792306301196082040577781164508217274427480774884341243181639883114863114051508403717748976553408576474628904638130842531452057362753522819161111278409346068637917916868679802792775270369784353348677652929758561937537493591085207120526162666323613329832515734724885516544315546819554543552913711334046006085202210643555153572258906523437030931995180462102513689753144835646358592683735163344795282501909751044129885501836925859116592013261154030020173495654685217287905106445117422597638087395137029091597642755587140754411950352706166513180245393126300466449531732544814084112592832668811660083910158536305314637345053880090269342370428948094244532931893650425140467383640297629067209190698159938593568112599202544032590324830339279505919885618545919662771258269174768704801312518794082731427822777719504377733119865385479759746225982703009915037874355922764113457049716892695539410309355635840294064009935743285842964985109961911923104513068049267557458764279861537678230558620245411564173586428940511849923905710417850917550043823890509695034031959010627840000311478042573019232908112438888443472333375823612752504880705430078978014328817025375866427139080769914005684424109477216067146733287373118424205550806929225615430545011153824343477948162702781203167887148242105196784179685484534441360657647667783419764287530091789226468592724977931304167580026217758092418791119419226290324840902201329933477208763630599515208982128415915876259389885366758329998098147625121646578697968001748098013536063830126311649379408617572766724237759986682419841823025821097794790752491281793577097512301289338770627728259245827221026793519936374254108380912180783134315343389823339539390680025586618468443004649076337128641292858373128165865607358496968243054459894594350284126899773889125496049952048706511243160413795807518221084346294431100538022878889163207112976570012234969193090814614385531182041768329283837161375566072405797197313060724079971839000939750144795921530938048486018851379639802283690601873423694623228844464037550487417947221450387403083153283819847824029403394200633927281576374396854556208450695691314424168110608496100727605984390166221063140337238268530762969494629660018216866978911874648664879731808429332369930405228544668120079810388076730778768023627406967004963905652636453579713244562094418264114635499413524758985557895659490070416862789985128211352678065296064484060162673750628024840332026670410715750606007270158670498548412445372553012032036127074513301482254231968795146976048201737088464064453361145711075056070319518033754832781426804914950634842749590090975564290649332758509602402748934878115601767137585759085731430283355408476887323727843891998183003480691846256778866139771230621238181794688522873683345854593653233889641048858609177389210777991670288313842502514391306097962042184157860394500101187209288206310117235492831021644658232695740960089883144634121681755627316936645404242850423724649825281383345037878769111950245224407160594797699821915807733134948131275422885887809032072396367577083989206672687206860551310637223920943890788849326432677344659268103464706101817407426580114735677644900225106099381370105916669386310234746700743333473346401768271155394766765194051787826455945981449584702844420418140102395694502120896854661355334692445582713735739046378948028896991460989596590858822093868773236427291540947663873196967699055975549928621065949779050868102212951980626320528420457249496046919383408879616895783708114445339224828280602517177385408849183483036615065342973554273872025900908927372999307978612348482235788530038301057956826292430758768400355880003523540470053785425003961616364756112628761821613306241579994439086742420284121707623391853097436644259453268080021953510928682396096839199751860392307129703565193116959504391828531231317501260525369284169596851162530054938033670676748623123940159484706494041855305411917098183015515054162553420509120874040309529683222251216627239943575310950288978218436311342904092396935144150256028318770872687012905514416204460946370443562021279438651583329280298144831185563086670958547644612663834514105979926204413539081257036029639211513033222513188496814352803255945161620076581933164747836575276465717267398152821168730419538813755638910892247202606534523522884869499894591256768890604308742613652106946476973125737249449712898018519925006369390501789898866692403158984493682319476713634964951070394446698689513153592039993872452254906103055290601104614129283051722642142809977274486238993273628524124562511345529593809964261919911941273704801095950909630290024527116897143316659645098067143521748416482999249257521384430725315151539048336808782563645404114520067889969167654756460214560742418609914322832491377974239157507591403645609093230597444935002489978268268979040566609982888756405413860931229726350651472981863988693795017195255071486086636501077303317783485316495177023581070997999362301109837576084922309474125485885381743764731296815835503082643819732544588431350743740716958887901350805822332164803447198210129701147017474076083540111480343061580699493881268159027210151440621740188759715365004953644169377624570123735099606381469683034897420727907578110384109064716010398100369709489314624928314870982659530366370870833246493450225873239771438348225146487788641256702634421193507967309779530870410302898142672602773743832457315738539013442991904889701085966372784635615109736888288043466857401105084904878215363285008720336679532509921316257229304651845258635350101586392596501126774762342853639867917435565871491988875150299874049480878620569844762937886300857975466815174433612308984782130482927311427636087508380327993318144713425816219526669904337704720413306015572007213390380031324764238466290770197305284077969658666252758129518968939176611747521624033899718044098000693665634182285866167295613798929208548558968850895976060807628646810845539431954893730798450205804207779767172970198593776705712026935228759791199076666634550277196891754465070226287682891200258297384473614167893748032089567624700566150606748019448241259264982988140105203817446419534121434838463183287338958037889807953215706513423165937899587645906474080777790110113261454309839993156572821413668310142656537169685232952599997421398873104957442131643648524396983643916963811581051193473634596118532775521536844654815245907813892025695058958522366176574748617985012222444400109443764815535512150776059556471581964748092562401261032046652116393980760075053350416648668069375595629008084309173910087174403295326022766487883043738879812784706249831995148922284339039212842372774576548861650732016542803088177753956146363799300234076127595991069599603032575180005530687530141766769151887873903046036350182216485910628990544590497170063954161776659029342634527506338583635789405083871431966073540790539383157931882928554576377453853673950079238389660862943248122888612770256010436878353439951773693805070559112910740165344532332410552241095214721367656936662367414702696203591526111649937343896195917682504525871395001486961939819313615229054814646285753359724143641334137799915046498367204484113254505833436528218426001953137944419450680708849960767301939752229635043298809572137396098584367217421307424710809119020004234324951361969861826714959041852064444308626305698086309073144985086381745829993251169592993930030349663130460748128029234250878105356145709162603664869955399729444152049987760601413171832999195865719246070081796957461859128534683712338725871423787945119754200480748833750568260289198783590423572469193455361212655747376428332766274278945453759398103143254536483979077348131169007558740287081915077985505177167139523867003435516872957279222605422870448284131930463688136405425949058664883570188865388951599740081486171638044747815108882747260656372377867813625163478137166616950201839705953435293236517397747428270941022622895329564950529296030254481320741360985594293875529212397077941743604781363577283296078744900683950226188750957814966174626549589910271089201025428339855046384457755099728376650777887801509399099474649060058709654508286695446046289573993206558909362953748423193895341894721240648115163710374930288313026302750340804202630176810552529002411149315303210275726696503961245460082725673506979855871001655499014245419380313385513384175907445756605560158411607900463841371250633222853133571664985228724002622604962759650794437916885628061193041885177278003075118757186631629786707717563334901956114110464977995271304983834700230673445873885902062937134255369772701159296914037732506379559420128820818982971726437556016545534516401403547950145373403655957306505907445252722180485188610405503081803463303888772425265038905432643229939400016061363547000326277567095412607679096770483933114969523968750341445008774397724657163256888813205945857552864878505467372197353113523537761328361637377237697920371079448763508421485208411956904586604495728573403726891334484283330476940831352935134411459399855315206034037311538180467773209065453708085471462384952597297135712960290332851135764541074835361607334502586061800058449165880838809173825894713279729628756211275088543538531823617656155416580282679949570670575417689429523924041963201672170102026828901821477946692680180170735316899939586627096272609323049961887129773903313955015792609530032726540229434534489490155194300716004792824972873225590523349259878405350623212369621612962869773834631403532116187213248393918246047103518177812467942121066538463790036374382164557531649810016901427314633592211465570390992994286441738245291122064682140342116441620661681690384273029851413046594241291503212954192789914237727451203288231049220276421867741980878623341778541489192452918919933455476160155100202686205074036379030040890812410305736342878755649047692480188719722357422471766310107022528010072761958249628147214218597988085112514353857181285116339961956508495462320188684786582792278214597869047066306395914345723708560107921235153596185022576714973194934758426756361652923164371336233608547096374444235552925228460768651934921318784665109838581253909886150226232652892038140976894778055305729686608711020971065761079029029227576009894734704357235162480138793322676841288185420458395432836281189750299234788193529885296022526100766822369231034609057988385498163246813715806948232122340370887503544280720916114879973984935597610552858482297635066692381138559702525964132222103803927225129460318052941675050453519488136392185795652185906422969652757294351264282446886875105457082121151610859061116817008812168474061166910345002603994508535302121968241289418508908743328910493487207057121365716387645396551268330348881719532034766802276376212548963903371161569320653247113670221744370649365841534142242893919023066291535506543933564116682721671572905244972543570327748151201594743191267972309323560545952187144813511564693236819372064335803348297683352716790397738307195581350169939852005610795445412537294180084844539993063961886070759428539569834094629999052941537855365752238789503734515950575837745899272209484712696852669295408962005248787203829045041259722670379430408848497301252714791108050269233409652453197210662552313884268796501773053061201998423038414073232423261873346566132441977044811240039108500573954096732501757782223905296734983303417081790607589754403009742761761474612629246237269779674869847964997157832065772656566725943990093283096678622197490103443401599875265022327344846307183035755193938813697131403557067412924313292938524497477431886138691723051007993779269107055729714102034409943893031328866195524438509760001198239773809405176223413579350865598261403754522389666060731064028328644514713069716471822113013929102286896584605804402597308147413848686411939057231690852969799379650652340075914627360058783856103200606835896407148578256275619853179121234082823588044750684468786583499426376859785512680463034835234133821763415815570888972414161898802830992842874888288057875656557661662798641769146382623475481521925056352050763705348700638477025697264493273792781843367154791382894301693949667508353515920037036229168148092478721951906050866439537675864766243216739232709209007479982480145123656436081907464126657612046084690246129897439785027245854771329379749583056036046629611182065361212814962484465358572019210556701986436282000591007605129412877996034094813324098348968160203396415536715236993272301845701497238750337130000978417123620343487880489307634631868997050880857429988979739682869216003850758432238790642825338248542443552732585877454963205853171850411941522644217769660809167948734581299735752183536558229114142932163612901490880892829347466024022229310008900246233278656950547781376868763249302501862231801378315324258008842778259783235307767878139155377738402383517957524671921190936923107758764018565731757553023843780347513163013426784857023759414303573476697031463512497798602180668202827304271525441966874995583716836374415082245424212588107592914007415116251320730304226674562732584023399213075603570454859710115469035941075287659625498468063439133238056563766802803961162460104739777951077343333504266230065084827084815381717112804548877776051689120723178013669953689517514518689380893160783164982720024733894071141807567458533510965097489814544900670672683938158395254811543426830610637539628983506126003097706347449255039543856887785163075849248857851897646618607514324355164679659302818868415118360553503606595736578536835851990099819259059247491740234509774099975921701875866434111917812158950754707593062918090886243428312100172103195530200662366724275643109606587172697545769575306930131031101550413592196610751040379634884724658121976266385462093074221924254181869249880861280851666370013825011300239991314135266427662864187545837858148256707049394788553234450631541349291845871670621124496691639467448895935916940986995107841766140340030563098952020761657845658403106100448134613539392870979694593707735251109835152627190640786034646516228124012649363333103484054270516247338667500949896184672655680110212106435410140822711331233708107262728808277413031968094575677820245283329947119722630804491039601676868783761614043043869514885162819123550389384732057398101270001064622071332788508990143523513252201824589765245825284599146109701589420990415782124454417004432806926270711856289237937678177065483769236177653290928446198147054189170515502897664898281491442469717874185641006672675078213210954164395727637683403746125388263290799847431144017820752902212003806487066079645629397417116067944799546319373982599603731375652343087645745422012884228058941233925147527193433580327062336583331646415594955229242359514119698122542831311175951379049214202002016825291480093590284545064645768529754059401088113735335239520977304143081069335492290445455444607801600481276923363209634371462549636315025020379755064850053753600307096300321136380482337102675768639874836216204432684077278521792748441389308974314635823203009302844094510907835849080129768019367458152119784984075419062837815829231075269584127864317356327519552881112747848275562829645671524835252203030671227841964324968126144979206207407435052132352227267910491188697617614146973357751176537358293484799915344389981366159840157959735312088132750637423967027070644808452375157807819391942537920162669970488253025923280526163930117084148221206086860551879414142233638164089817965489799872046564560743888030920151430139026591500992163987396626921467378132817259478666619339076140390625797308450354392513086106552215531848063779001542412842525382242583669410578557954503247279793772360326191620075153892855443532657385484593980528865933400872861285116575997285597625768437682008766465175458914693622109798187705124570773001009489480297789635498215396976084122960617805046654322603413040499869005693412515170762828056127374237581305056305789840366480188921770517829984748389514780704524594688291258614036396211224485326153677267235758792903405396196882250493979700530819902178549896987654968671940549282544295307740671363281939912892831518727071715490605499351588616637529071970295048644634968530154697475141827988348444029531217994399630426708580365934438150631942781971312366248134304004183696972266708058979472289976890874094728548460736233223818554922153819239271701826424505075555813034981664311680388364149622866385295480558248676852097198365458116431981624885326861529750961086545196025741869187466302522574204368998456533215725530087726874817440626230605440875175210009061186696859281264272703803284059031326854931657495623180688051522599355900653967015053499543121176642442339385804152056590340981143755935692448974790745941755435310658801141027732669651255023076278228239405299958901387217019576738301654792438899356751392814585959221264991036343302983434505379791438184644749909138665656590177401882905129608160492664379886949202940771965617562839966203016343346023759738535462308206776310327433559216540730314808976913905597078362742830314719880792279417556002392291901130995384400965116317977788336918663578238331136886997018074003279009084335278027248877526495437844982488151374770983441710652776952447664224755619732222475029595496275770641303933127375926514884121405028036444340926912993848991851847853542516224101974698512700570363823257238259083890450985255534790104068875252885018592093969581082928699914551195990073403328772798091921048699354486635041994238320100732270470144518718299645355393306432949565397880153319483060031675606828774488858189610069625537888339055306779342236028069016427570095052805167427613994308073709071736413551824714516775990888844640833436258044053896429298381753937286531764054743175679805105798640138694058754986139921770508867284547618952578232076004661362522386772806722112054920685022293190436954450921101222617002622571004141500098762502123647333750903924347817289258742038802456673456301317664646801243292825397986970921802392687573476972787440984432359997916817082879998175399118644169902854855948742330824950707064737550068074316639199232775182587230354669674586687289163585519697474668288266234618946505691273878088693931628942009044224869993902102777809017576412651978111893690691942926105196738330093538319986977823851258657289753487222015007733572537057985435186482054317179376794458014865314509806455714299227671956737197048317395462227597343309177097878719974140516430409100824358121823133765419027132210481489863933903209996442174834252742126817819110264194601186653467029072289937158533677678476393734922138459162035494234842218932291134699534548721631667514858272630686317722651468583064217380471250893406343367245893138362190961800259632997530753708314040102893750106260260603182373035902912156036235455705622276150907346011996600931743361463261856288538785087700676463356641304686025946130600667400889897405330462642305013676609318345864115002952068792308491866875517277316205643311792898037392272512249913987768338118104317178671527774751418806752813620441051902860247672564348006708783985655892742653781269742566285264421010649673160749028248392656954301235521615879217055457061164163128313314209107670550651420505153519479922109892777841959727386623881976376457901130495716787640553258484632174316011417254993377141509751476579187756548899276990540020415540945086541653684735689637000711096393786892328033473122610250109796283069731511230093319214147229644541947093960685554703062949311080836375592252777669481485158178918755240090951661156142988703727738898486962144586962296655050009757135847682738999401081259299402148992792937826314513327878076782609003126033252857643971963110765358027672711658127414442781420707656721874997380878036255948988248178317602769126903236874953129749084756882378308093420839144606334362407054305821842284862846471266027382948982287475388182537671196465519207218271396862088508836522392652613043228546241747577246754833791408973712638037903136893960688984749499537788700086875105658993084028785578106314801621490613581865635859447616501098159987413089318414778198647902366309980632886009235583251677240092536981815303748375175523049813903893640759016047963627015796605794521295574903322574825061299455614626628987735631262771875468515999518689450967575192955597726902651443811139970986295053096990733960116643572105795194572704648748237624887707937070761230459254553124764835159800646964732359794354427908080896956250834503416715851348672981818416473003403491796015725875007042049496344732645988540436315431665231660746963045258792112939440631093741797653750135054768894822213657988929561719207953057752143463358662212788197516994761212568753217207922990572355557968089773540242501817254622560850127417267949310026915282576739671369712915401214871533522175291164601593254851889749560020358468196223374401421653189857674824036942387652198662890523789371151184672962859076583266906497480559470590021690396669599542150243557872212819800586590539404356371475037055369417991869244419203470793629287203218318059566696349337098669262394775239717299261263519369090517800351411539247047536547791489272710714894662272001537588194421348765637683057896389337377338051145568698392894634313704586774202850379568745717474668042817270814498512283957998024611496905042165653543075674763526171708936953997056963395898190972839931671975000054390245699074055413514806893284891598741727202600688924359126906375488916332841896444128457426728074988424920208344726723672213295633586173538156492726626330695704706987791367179632911885681643666456799253549777575970878284240985798448719808046842468100530663679134545068820274736773977713617626237730497748445158797956973499723104668700751441538815937839256645537253186818184164987930035970050776446186445929390608381209539939205682197093779022475849331887175481098129621643245650069578830026274178576781981591266907529619460052966683843026328707101482381611455049286721524673020335869685855708215112028317277979157236391954444894375707411572182974948069845328491658087887408154371126872659584791921891711181497686380747812719955164657345498891487957568174124240585205461440482599821879648465801440295592778125077406900230492134570750221045520894902442623303303107878476428722028963944506224808138264502706347547041554019478164879542250914990128773318137070871954353252360807923327052466224283256512018118283439811833890894327407232089164470887957189894580103160750389819181303889751416453650527118674679173352192043579472108395856519375551280420501104805245770997476004454093986401038091151116685849858848113328130876986390026829413607229014528348266413158811341107848655557106402766922420925208999983883734257328307913893914517720634509108517318811014652628096929859840697867498798365609959058006692516998799363553641101212266286851075347991139474258945017062965179859612177562890998316560647709568792133428219154550044225084429973351282066043742546195625373878328006461855401784267140616297795995560617545926216532363005181394399328005338980008296451655502241623230680150612399575203888757357443785506834479702970885312556295018464920217267383268783731229209153098390037168521047193023962165487241314603555660098335647676145256803045643215305472143338244111253726740528209525334578361603414984388753294835806927130702140866271606219401560122741282403394417528530813623946556331077752469269514195676050813126415827246168035087213664310837024553017153544339913869250602212243249783497992352585495695960108461880684947291299104748032410037159317922359761050242299946349481498572320788222085948338415288376739515571155527648632501170604143455687565173715082731147648539929870335479348816841217069483997449764972373291412001615897592814751729335572861387885120618527851289080803447202671393018593068100397396900437707746332584220769579768707910892353365829061964389896759487218584968392788025828695978393946434948806427855967360128565202783030378167524156203931215307534133474890641144314008945922830869328329117126897576107906341472080405251736931412769035524275094434553015028528731065675776919700815530665403109397980886231681166642300407445593369871469604662486087694687604828276948906167538457671687314911647115938762212797504194694467530120691265851267388019357902763751577601420689882804313758514415392031565410131379148387908656700098926772235182952717764450960601339592380118144857895907014638444875211454446747708580727310790413706344206839646282425217602334649679671341597721401687435842828991075729620817606196746890665866201661112163017693234750197208867822978565991629702624270975193312779730976188914753969451652353940509488614406666312848371016531733218593333147257575834221601645517808515848931570256415179337722013804194282819073053104468407773849490903717334920402416818023467984998397160877117051451172071613515109036295345672931047261336571935028378988903688158557655504494157423556757693837478350637009756917753473492930837600644943645131843038034548273204727035884372712488545015950770345727010078316070094146385634748084576010489369198484488605766741109082286376928390893028114352875814208633781690351724480287003851099860238433814815053126716528904816099761012494121465862872401974107799338912107849340526955402779908878369119785388853845166615225893224696457699915258266884991188383519309406075726438403929165540445343543604255825185844777553999263532780606025346119703937944568660020614250283532698302990296454874309577456718708368255905393493458924590602128045648078849964056589167981392594395922004843890929430162949368998895375194273544945371550967655844778509725877607396259071419225292911172653772524185007580630148678190340904605063004992923794351708934606950912113127095903684824660672379084570234034797865043226569917306971083280119333937429436202163307763256461689454644528738357995926042378554480823471403872666803533290821905503256976290441329670132411965267654822297687068836184194925594588501265686037172163970552798080366613453470834535661963790819557398175470835448869894976291301130060636283522484042840925407718848524523982090005362414486412892922581105564982959297635985554498119145984234463470137903631434893489461450197394838329803200211960327469557737114571869005666667159120858682227333458533501305306233940736131544906982135282684897229264072178239645639773416443009329522911857835594957989497717959500507035389249701356228390523953006846396802988906329142825961380301415409886596793209448488843535885579516555825962544335230845730677959691587805491171142726686286836072396531811934224538107123340143830502495474867430525311119230829818746464741691206068165719387119264510261408417053262987255029229394246223604952633621050847891010474363748238103802899525827737967791816009230028690291251581064888728621549148323739771578401869290041169758416243299204547908293766310708857046885764691936322476450911845308080386448669601492486288695214974261545237783612129226893926464447582283517723770088361093256726058838865211065232250355608825236100059505032960863415188086936588170408179852821924100056303165215341144000077261849902954651525530201565518132014513971002659165105717821579482980894388631449470993998729599885831771722529056690265644970604887618457175401708430226667208441908368349262951288747821060493850709065632591787881774974496327148948456762059987153201613832681525813105532552720276549041309297322005796328357407642027731210035479718015132544393537990129549516938293070362911131037821083002796598161463247530444134166178656390356960001378986357196598210982484098235992323286029576525357600989788028325630837807403629274454076379450716265978814539411512790001101506773064320617194008476771102016215263540581408864431212488693064939135071861905223472481602784007872951161111265435380990752136619437322761674341774030759373737048460756768434516110263958309678956511401049214544010888744007703477750303540621271179323172904394993709702030478384624011167355272486104231659112695510662998986973715565283571371510322109403802670023239395803972247568582461797274496813686027081537328122379528956496329370926269242226992451520304270898588733611368947961509338766528387502742216885948294707108517234980715972864230310646849009777523934519583895655387488238731061784380927861089736748173673206192372200739512250762696037495360605767040383936937053561910479079138045971329900776787864784081212378834068141787854356777434881837360759348356573878166691061834839443295027894426168576390624360649953513725560364546612435531184367860001174378410030191287354918295711873754797885881959676990996904067823458560509067509758920790075580711516028707793102488161872350416441732138374081708005108504171594835284244341417140601885233348891018834764064574197665319292356886231212447395328404681576352814260840564643092400572914180040207596029380182379138055998256465243603777475075667788300195611768098793494153501685480221638660453782661422928683145100175966564928553802319299503825954042027276024833772432093027698104866234657792197038508251282723268450079118052199229985305596743162766929788428983259555104761331750851089088660986162592239873524586503312985840013953415501010043497947035440112410792094030996552656122655948284156121373715567806340058561334249280830473208027305830566899033056216052250343410633331171195439017072837230864985245252545800138510689100916272425219330134790191100599110138528105351671264919007147625173330750273357555264921996276728788696838452392498692406036188297996315411453233678756719611014370771456492405813640477364396340535451873002217408596746132347277134889999413111142381339484695494184547893186954542760627592270154699868252276239154099253475710811876914485361808091713752041836107089550383885003014680728949606219620332919657901272648531815854824748874578157451653940322771369035660066258210019369180669674220319456581080346361159772779595678997542975962102198895440769681691336444228714438656670963136985799498794823317169643884492050829131267849453041170643980323881572071492504554880720965035426536509121766600028467204720357209415949966564313140982229470270886696382836044408036462170355362212863299727132099951210026642314435448253089032857929235438258879835929126647210963396724923688186189267507855019774177939990100708033907577473272359834945669412186573867706971614795966088205955566426890937081921819616722397211923455790339530726159645738514697428868000831837908909327490910930292117491022683218763346744883836295104341752524578404235873641307431912330580548338222655899191327268837442203520618783140385392999375895165120546041866868400313275168540901838987596204212881583844779696807502148185596785835750550832791728788758989307046433801276729298706860305485585126757847536827829788720497066450381462197952050102825566307644002107731783513309452558762305549871808042020668469891152589731975921292458866443397839868968801679098067380933452889643910608004117371114938856613486666242415136119014872460848289748745776775712852489147479817101579149912045630189199283766820530853158537749671852079782896783452129807185492161213155025574569616843249932750785883175497180171002031333054106271001751206931447732444405069763696895764792508476042467037969787941760426927540869123919974111781612109424612999474348174411223079984137796985701626309955332546507176408355818476008457922859685825701646979316455319446232165081712590149172682793788012156207021929974479324216058871338425547252951525569792165214061845262737381807397753957779942506541894691592501582250286502117324217104617479849067134253562086954743706387038580180742826252705201253336244206583019413299440827419607529928649102531612340080455830328023961411851663661827980390456045668304064130322043381897945067045455595924204762115183212125412494528188722105125868227631715657885561382279326961874436373249950283616258081942568635179161707483466933601708860633852312886972849858335311156635397078469479777754505684399444067013329506056158445915252038969299573709333184992219267229821530706916300127893112460678339326844335080505632558326370648454055624063934204365925445267608887854288011261926171888706914380662052181436975189389387966304521270180120384564227916449432974030559818941653699938569912909407168324818460280374790368267473735529010646113555700744952211482016660257828059209536633290287780331480653896677539061046627572701595322054157271476199133987750527586497737869053691402665584938107036440661947228835240611416253808190962668022552638390047067365956723077588962279207864563286429621907837557850821482325885041324083000952778372597665034635422247840052470617044319227204846688405551538087556961202667565675220304881051875051393346341937200562945143533073176407436149263461252237003932564955793607948181700504687521396466721139125763681264016137872640897598495395134927340534233113525497327703496558449802480342078089198348184310758532540209591936332515792683590834803709270856954807566119518905573956961356173452025947860290554523077756655793026000955140255913067590034016704244063867491643597691146373689299094717883135871499348212653478476736368893600475059606194623493002531587790195118048312390957539883250783296269587675803802302270793855949993129640360769789912671265781496717506827922653740575710171950964790390498581670775906570502879424772980465519967623669297530796715734470984186940241116012350372405098509129764965858960214477127576010315457672041600055872128196724156716244883007950838065155672395807469697479256857165942351563139864200922097890472220650734436068702145843795051653648267084678560886744264349792812424666192673915771999906959013419233698871361452461086712324864989605528566312605421127440545269098266509664576851235357239389599477215976363764939231265498160880148581587813645367754196176445616866778690563366524748627502724696931025180002337784199178275736754574277408303803645413395936330481485633754558851409045108886137417543548784756522038658955370107478939993246474817386608008262044914456280851641789628686718872422087662506065850569819852271463404846027788058642181350048593422407440937912599265238451604955239184073428639299483902827536307903877460241178454404217871220792049328751594172413674028393034331891987134619348443152469907129704065041404238501666323491458401871635358380008680905849154216649030189340252030761369486121762723971438077214404516191178486560715152042598937309455300850951512389444913879029275518476003181335844342608688917663926940174155888953291593227309180994425752461991724076104325349183560663120090683590879867600908455107008684495254658378155756723555185629582852124657452017463283542870041246614949649904379249541670566653561731235631611411380586136582143325460854733042943227049482029422520263855197034417118932921480742732552899908737428300915414124642452666770512996185593211563200335334481306249077196831326206983289637617995079873233143291988057142731050995382467827298796213672709243632124263812336026268673212196058041084294473177841109844756555067429925200133853910241156836318795197681956003856398808790180684064230907669259311482726290073164611367897183563168513070872431795602968328107590872254890863269397566362980413809973046215869781645712246373391510297345492491527372873249868756731226186230224439447274459442109464249747351194952603272981265265191224342889337354243342327857858073578499709135443006666706664906987782758786994433026024154651678977588629944677525681018837855968769327741536064104427759044294622087827453082636572921260446974862153564920801846930314509880744809867295875355627436209007470894252084045761581271231292875354282448983517703688551513925515241871101670109726439187394264150341138234615439698521498900073777518049761363591977920140460353137714576202704993933548947479701556091470492413935804781144758522867137378301611961479102690023310243743838816039134345982809097105429123252173561970444649794416397359832541936505390776627425268318132101784314839995726992334749683372041553075291087304553584680852261859421795634847126387224245646473616553290415698039317217635703298700694039319478906357472054331657921158517640601079082707777466085248107310256419082426024988147511667688449357258152910423082196011242806865360302490563881857343042523332408232750462549278434889056415557640527847944052132194481468743989109681712394821479173482342897936479061266006651409501108012782031393954971317525199969991836470153925135807629544431907259272626912491176935260679008239510499487570475913176705377470734048751422288363927008157245427405582815158467893582735059766207857949186554569051002604407103104213313034594160624194163718392509309364177110404848102479833397561889113812308221842401466139789294987108933603667456964554277386092262636763340078255234770200147246262966044013842227294297382312072898170797643160208428362092008033904761907484197599777971691343528564294598744659694945844085162035112820875045004759657674998339543398198966205073722817647577860197773686809039811783154447722798705140273952973564624861182721876268761580910384806915425521855449434730263263006307508920337357180092670244393820288127538289624348628172359134998781860424923634414438865397860831103820780327915718750031890173867767884071824153953803425268177771941566576702514143486758280867072897188425997691546677070069398942691123079319675277487536120449411935482610879404289367534084763917882363236481055994032167838411628856425434784375275656885492341829726261467890929258321018630955107199492189828192583884844827938127456480657306761069670027975206161577422055121427860428458373281751850579739673961649916893052666647786546520411501858448169282194418560482605198460452599209593797664266868238708174982777178592192579497448053985874117928284877146457768297092675978384064035407327017112759635019221695611248917971984285214643214033850933595467508606885124117842233539256328903900439381584888556911155508289102236304007984529477145763945987471459004991009485804252381994487568687488172954741733510833290368626417102366671887371535454388172216548088843723232044238995146994611787895538583084205486106368363361522353800336516182502019793405888331220901880524253274913232043828187905458876970983930859485700362973280837197023391324839143112345668061104183415688162663662215814793283373416894149901555250943336244609229061287369514364339546755657473705435522230022051594371348169171191640124252106333142620438101599825778803769845254673340712536182395471459657758118475380732908714186197766720608009055238874240990053052108640545328274946820440113773871933126436700226628444262006738090537357589329499349929582632931839786799505614766177675157706776635723010731882141773472019683781600087501582601734811085298544251132258098437396497078444362855100001208816057175732369892451317176812823640911867545538963103490619526882622431593946894880214409779925185429778583153764909772462308480567662424632354914212301781367222716480342616069483344130460448213165412901588509936464560946496579346604900973680666871980522589428611369200019110242967448971512738494863948844391746345361674103655311648961919401071218940555535492170673684754497926430907097918382716173088642633269788985614352700385252521849204456226503832032877755701474343187753775079352035917875953792970351645257440688868186193133155880966284377740880557396378405894114428548134838040604029379222632738248374833199766913251123506484392831534493500249921181460477866301191488562956621667713154944625775464334350211856641677780363631166885154120403728820875596824993006517740159093560845817981360640165591694394635616364724638548716654243736399543764652698112988991913413045844919412377966974412281203241183710195424249146816352997729468394837878388627514893916953915430657608097906113385938893380060089546042361559475550917666805345873732120755962140845807182263541799805338525083444071130968931795519134567298495754316782566675660437310753849837303199198679373690263771811614186049285453093755240288952331055168157776771835005593845078905013423617528848420653005900480043301275054190671800528579299035493411099797908907014991563771014261767806020459633047696561286695430113126749524552619157468810208525355989798927690409509327731360656129979961772887241883849454745235359483405233984452350908146064235331643788355116265855941913809013149506806963394960351309390961283499013701678222013680011696530613221995590542165290793004645723798914212632181251644037685891981892617249004470456307842732391559572034883675244402989164904317468324641071080810603908310862609565934756788566487148218428194038355129687071736276888335228129686571946690374727534144747439786231102905364813940387658332186421331502481320230941611910573312972182594764945699122139746869431493360901366733769375194850841562525245821403385778806662511666741498295822298638950966195887777967393193580818549765418262988789081675376680317391579722235943548838294065216191114239838727511153390457719890601624494646507944412413588568213561929894760110200187394161241001674887008722424949492393919368763864703301622099153720844514945595372030946542451455753536223221069747054893316487345964721860867531286139093904717198153736347815350204444645857102593996530432663354322952588692701829286286846349423147293609548521556551954572285227573001249092854665653634415106481791691940273013858936245942825455846900039550031207797729541359655145594415016105251266544570891960906910178371987781983762366934121359962907388291013614277557766221188365543781999479536741410117331533872718326533151163603110135691615788315590454759292191710598390655740321821331054691607914566218011088389161876447995303589668465583894207959410697109626179343321865413352786029496388857463371123478185890451784382318884320989468438831676002904767217715890345917984169793053384646087797560080166495040984152873979204307728113445398209473700170510430465052789081094277709766139867067212053723307303645561016786708650412076312747435561801885251803942958165643285886475356553533711636352330403310946372965504905995446561062882956854513191288820966307231470308266559047173809915380868987089077231128186580704263245663358739933242515172388945172184728825141619245887083190239445322643153066417787947795733976936140214268625460647518869880667350673396166917919327688935230297126931888392986170958708373795124976890154582023912327872114530196965616320648372133676752172272873505693527684389042148739749345656305397908795183956414324146456856007503278148286700695749763299132920068547255549830817253934015550855292006299467692504839895355623640971836966682125928878015467564932112082272915538811036255958210982482621181755728832098132674732484612364569574864698234613544449593994939163641892155628196451705503840594012110290036176789087085832153579255742375513081329715563319168326743834286149945390093455736523335827915782215372497731056781613724137859170158179203626642310344560601004862310607653266696233678486853993523306732616912262871025911255712133126413281569828002934153449304248870542237615571803647799585110612611226567952759221951709561125667695926483168642007517385091672438677675685833746168627095625341787671237280687651105612667638079808709364949228797289767898657509270236921010947623475842302278279090011453564063228259492496428632816514573404610582904841450417999631007360577334541471756370991993716784926399073077648898182843854633802711947741046195308860338854653237657413190285169252463613906484481192077252911731630333163066091226540981567360098864564651602259618946211969187320267664233775318203667590691735714885754822424743121921925676844869336766316495392687050456720964676858660784666297391155482374048574219584701365949300801139719145236760148911614704576191991029512631064036515369790401098823254818606163771262198485259926910062955551827718239480517766136152762727847204859098517346553786682221940352494117654559023766637541287270142141817217946856510432922852153557781159666273933320886864513934677308704541574258710478178486108329449420842595651796593301345687145630542863745666116046115954829923917351919296390017939959160493152724666706466673290764306593800335564652344104243461368536242253077336765441121134309823941213296125837183483584020258095657669287278522893849854608888238223765538096741684022528962655508534160442529196494683113317750415772842677225279724426632477868148252657224906053771872240885975035366229197671545309196329379217922467721320938590678481112701972213281210279700421887428088649954654797813262368089461619950100766930629667865068292559258488363791794049573300936969286183179722516709115148517443932446929926374607667354692004392938835694445207706502480082196129713158169718981805932589948534060473153139014268211705107836409291312862330927106757328986066045445043367976734124384823339107056059582921052758802878944833936808483912125246285662057516311716213523812141926064539087752891435840040711356883631826252388791791907792637413644312930511746269007050391021188271564389082548181751928379171212323267496673233900226929818526654539942493366638806738104867158626900571660377988908563763614613480272309610692620615078376428807626108839194902208380158299965391781651157140182695158648725921389254287450180017654272761643747802118207546923989733854303816520815259416123119624990907626185719533299039993968344485305498233317611989630575800460589282237397502733887882826652071517279062118264235425970983212318277381710682158273823571727986430486327036510491005664055271255967580512930542020837736787490155459604844733585796924525924536556196457274165231031610300441269440057419315580628160851251563124557645681112050073186047452317140534997851560080635891467185219986303175380737622929587376734458211855538890126525272104379771893607306519787799797165833253740846924552563044476012738776999508025308611401210235630392408016003581141205151062939113685900875050398650716073582035977833427147768866274123511048230244679227602634352292604425905632035381858601128983830020951554223345997865154938729327780017455364640709653332746539840290665259388471559502799910321645441687668137035557014944315854222913126488064844554178581652235444568826503996523595196512215663004244785146428847101739128498674140497388150334340900397289795602976373723976013168200348875679837777450318705804591351374261469723691578138915639555572262891808297964254965860668739618111748499583953277511777419278006434862296933422000507063735979770246510056532042479840950350145362059940061656782372307235925999950089378747070622825301050845867839916859058579755671658842342981120972485316096048110939403045924252809849934498032785163682903058235365012819410222674541368159182114793342463568958398443145628444116041217011811214816392246387664837268504807551060528042081466787884150091799643924384756227185797072911607171130783592509447073312387235069120037203194128008702437493760371170455614683646397089797916743865400124484591305109452969866882443038361324102018788617910224203245579367689225964083382385555210252189661405817724842157928632546800877112366591145973761572479785557395197438842333031524726776363800410970250584421453584643843127258639538493990833993104918216655004543593268293563357273648740881849533467565508164806987890417128244519308273853696573560159915602610799208157367607472938229824907951801368133399166724843651418978527157354509101046959732734397459227521096591797487044666506784906286650738863407717835518878783655255921983434520639938192038210995600147866220387798775065546457332908787436235334419270277918921724852712979044549593109716871488325342483824476957734484586125429899082424930417416183818496002820732951629629178360843642873794963124904483588858146932871313896519988331935483427512957625379355685072885495075399307242674827147269175111384127141513297348785623316689065358846851807916359128677040177535036779598093835101968028954966390720230920101359912325016222895611917360759500738759512723896480142620649657363779446757892107651470726500596782177322330825363843701105604799565903142039259458303272704484465004720869283512214616305605175477014880857264195504992765652646360041171266391966604245098394128529824871465014148738713668990454436745376820871219280647672783123559465200249352666401888517333984608379659182559815573951886557946382193101311481281011400047777535764542277270963384973911852145607273390743704619909910609708784565380120606753281009378732598034497637572755659731719319947467791206943714553973000453664312602053388936030060204937151288489756225010053925171704870938005959825730722739191226601993026423154006658923223239715725710113295710185038991149348574535561109707369250642654334613320147820111765768047829995501904531200698780035084091324097175099633055807455522011414661793027542181713030419950220788202410522285677544176840308653446924552495093174320432163776063168786574026410157384839750422603718817273626068135389806166959871002566861998626838725030157217035584459366455899846931857704383916799552325316967291541214627340060861205310070740226522395905970709161554547773648887271663077231916448462988313156719828429508038100915855734352589882883995377620813987580903177567157305131886773359112615507844043118986453486773933051396355050640891868763840074279979118350015951872813402929698890566170193754682036473499893756316536935370780641423446833111886236960226128627231124394024716313881474221665901677005614496073889905135217509720860254387952234597130578361978332809523847303787606316742209128430553341475933996848139010229664029668862778824764050802030983260621092346456387403772727626503353437772035142674159827309838772986178171728228729856664109351895177876982591932560128734915755327651153855322992091054682470536536449935421871843842534208866378311319589757673974202510202418715037352902579498914347623134574328128820909624968968888852166773025853961989068199009419816697608141273387244782524627584395672724703754420832709071754918770183882325282773649388933943528525771777586848020665964754773286915772469562875168079204101861547364393986306515472961801216385365956160759450573114407389348719007713391884155687385807849862062034019921785490455852132535568126150654784550217904024302454407732041693937420846067356911623772875912445618173830257662853978754036566342871812772430473389334150339077800389428010701200441468029909334314842860812580129751039647466174197340155610561195469838989624380245119274684815658076415238544913722805731973183494395584811629352253211133995811692042835047465852998517286348692706154770675301583488376990670062576276798207291351187399977082161997002015701086926382432176279920258436292512387824525252535902152445245079485073078532748577478450844685514217041510853434822453572642067873119175933814827281822955440645985315396366897405027127783520293620867802499716989573261748913325219708601507793471609578052967739649467380868448377966315030633168904578532180348641969466874258432036670696810842604055561618575089441827187363304564498628650103697044149789754882491010586313448010857579299305463694231970741856844556556377716209694941161104652510507318338548672054313695155884264959386719533072432849481751522877511374093167233218536363629627730358283894571931088567847269271334752581464222839159372502311374288712222882716929155267754671004601567402036251093053040153106325351159201899235634187508367770640117748019916808930671446487057794658804739099141455634766442711498606364366804739841118299604459130930562546678737788515894039852779016980385796617351846743004170549499820009135221203115528526192852545373438807009808118886724042006015517109475578398705059706099903172992969834746502671138420300145809426679997919852068246669650841954691158264325846443752285431283486201688277467512170323595820134481232226309078580618480456193532513564422137899400732828111040222517769157106029385549169397558066761921070443292926650623745140727278449570639860568405629984300835392537370356012962959917281557553205621617116957165985080969267751096427056068595728038913510275992181117625607689010555038946441815332837535049542274435449155678604087018934071190951690123686904011279576376858901070074187087576263737218966637651126377385572659065717313664647919438608646386957098717292093197832388607369808768904498543864058436550230142588315393877114640831982344073433946466694914747008177360237550153797851236419454132859090732785359783974113143957838584686912759014715068109259304872590772856741704153106950164987228962878334307869744260801878123672048222407788807320610928568521993218991474407767841656817551366110097045446916245911408070852528046155083084569658935302592160971265235818173419390133547751812493986022424073423495856661275043615274789251581505428175328499134256804173582237363982519481382483007207632146027860867727812674096445756096154811196769234253488413446595250614289135403963044176715505355946825563526293292892067702136352039921010799756888052904960295621517427793906847667320970908696203066037940525463489302022918186481558615025153546205118545821438577307107383075775555764659605282195963377423239563870732667773448691299823095973583292812674905228240679881312980667491819585840524400971336944022462474718960777437410526870884449526825330493388994076845546210016585725491510957976088757842146354615754522365798649388121843304198360561834760619535165208562825922486102440337794522713868495057317008072317734069243396890151129856525590396658042515155202327685020486483745218759992339089560559748340704618189673622660844837744684888669566422800272595405045210488151892270350653030842681020879370972592533710044596033737534467219647343160397882479772140669627575464955707714964944472346432104946828874478793593140029432278463135932693275904872332762858862765172318049287592414260907860470510040520239529044758036345313276896207538830117862810299563983862840480783509350912138762203735718662680600894341658145267474990954392368193213965326631588603037292734546664248549255791086323874373071935999714546076637206292520316025106477493054820152232937654011324446933708687659398581399974699794005918360280142951181638450713490682014655398767837767457133362357874198746249396307095310362439879717139492142741752152434129763397792307294578221560341728448592608457698164835978352115216954797127448966725358785111911963760240566993059882969792432354149406937629435259464458857722363088001537111465437117927075317944346393657585802216722219646630147503856162456734381570625303223592903039732730158267764675439387003232205662295842860917359780613908881148700058883547267514721095759684110181779010286992232217209277710868336551324646035103479835448643327362032197410767511517192364217319490533447053470877836306206081633662079686192688709880798086494769908227235426855207400700055639321206595442600726135199568527248720060811064228617898690734864488063148628592954740224493133619137920057395313899622965377881762178334139564902538538201205584523124493405739785436741325906805387949156701494561778370648583881468349668450135814216923386255095187926159700432309566367658500804544959692871340416897516094829296062609204465366137351874222049405925611330795002975735688686586405038942399714916861953137374753609850490692253528135250595683051410791190394327618662529839299392886505314010287184876079544181880663099420360014183019764083604310358256413568957009028496666417759131870281911135617296862372911217944812716816835005588893451409169527618957306020796049298225069478180684871909477228869183010717026349258452406995108437711614908180489814485160475320242827878839743581220219573220721412322161963430580339764999703657492374466884303505481718243836131773315391409002318402544299042787119788567707454986794242557507869857207126742172620279675673539280670508601256823947732990390781198274861550455642095053933098956179288682036535138049909472421225847121169166107520671982650026371690886910498430093006997704988135152238477183773359992608436663798801374182871938749807977079896642497199853709657701120313650570313092302564537199157552128123317240226995923541010411391174074706569864141549601868245544014840461791195861519173334499949054097376363192589888367715685654191887678340642107359105961033948614067710067449943025161362234935852474351853295169652190820518934929642764717129780305926073831184058842589557463194154776654278135221174786966117164715546796103703339067694728750446203853984785767754207472285929967554173176712262432439390532697786229508252619114358016008445561010777942133174962914545717298858411567506411702457799821824328407484471764565063424880456659140169114682937857984818559743919199231454379198583605490792419322603739827514139368691826392576416273741381889179805743776944460940013453169797742898663725205682681600514653137006630331626540754940309308922806133578444958341026868394098718666879262278384714755169130666898952187301862211274111359366920388796350751208319039734346117274887779130259270021661101656386558619791393333815392867766754480133819832191545530317075436050792084912041265810029643852756969273331279495165064208755704292041921695413477566779492401687453532459812920229130315425536589151674940791521292114097237174136291579007358183270218302649120000061567672550780647927928118860622474151942773443085654603344359690365773200265942786937661850421837492597418552484398787538232630674420719353204205703074635238611118986705545767415540723090090534419004168183683418874359269996611724770761191208139041027079481153209934191592450215064788924978978159610439076906635801624796479982467803679766135044536902123757021178662613532074635805027214181533377989165231636414921753074218092696179893501087804871357986402871857777741959799133564928774632679866979822003608704849493008825434142962423447959239363742728649121098524390436595564375043753844667327761104914716891175342884280570569725892639335164187386036987042137915331526724836939364115187625142354100168480606594202519675356673082877630475058252723113859273611790020144238608849261551780062156099665392640772509192423002301866868353410557917551363596833676693777563316508913630500432344809270949914901507583023220811892720551724766396057927469665681862396682871814227544129034987871263669374853156726802543525056522530903085790195278788219751690549714967100297127688994453796156922624646070036856227444466699759876605019817623108613707902400066939090549821789909925398010251603087103402291139731498773374603185941175694850308191499382391654947203124069769215724039719801011200007093751542591988731252113735236419249485841701482489793483844113431434245635666189058851761583698376827867548393250826222544881394610573916625002431159672535088957630428256355636907949112402459797630069404010380365567788192820325622015314008622386310034465650026598219325301098035168260914560989221559612192984901042960977712702768652343603271952816989109858482482491294060375431124616711408407826571589268013379992404726017125527130261786758802164661454145701959274150440290559660721031658938447742472793034149869856272003240709980947884425162758353684236605977155039318346960981507763851999247567459618857896061160865897574699284844487546779234172924120808217703233718475789927619138919342804011915349392069453041197296780056843143343424714500786308680205488137748268117423560519600051014447237642728158742192283184414389056693580939774979066427176099844702258968407492619271114024581317781747790618150095335940427853421495756047453988394940918871328073345519623414051533227542946134926826363549760385675629740748855660839159802146957227642560148584610615288347100989031517684038637807167970255562496820998291529626330322941009033590446215814327428973444223379066107612458890903479522881869415145493830066976565760229606771668660668874539325116402057243850589274429842066282918622090243597838091882086362359366000862692250978039610056539910332806569018881519296990906221191569747223929556608248360252939698544362978530402679234971576190796232659530344384037334516870351033570776284483209069100802530595496140683744188726558209517373778873247265292288404240630427714023616242755514706027717850711208189014160534851084861020102263314313505838688054076396022912653222817163533145777003708466309374032409329691053562188891297995921682065273016924054729593107037246981556832247216544046862083472711221663362799218256088826349251454228476219002893519674496676605019305914053092631236077898047770081054312488141443217935931107199460667345402959143111250043689263618437812294872588562712783705364813198805562736153470574693377673399162866753406815162950045659501689901505386556742255621646287198971586623335607383260662011033744036228131776284065242818097923976327320008236481344550104930019091376106937774810676943166672517952235014785071707683230139091746388212240803772083860083552115225996282966359265042819908388234908348971958516861285315381442488363158340297338620697673795413188209731719185393994740372102878311824853979707530230184474828059192066760914651968707192142109313192368516030305684163675178115711809262405723283624294230984625786859842455665280292815515885506853486680709699953193729527644824602527784112010332060451144018951974023218784225751056169459751924663891051071150102335519026638284904186664124058546490849321382097000202869763938803296655846364328391175677537135271486221101225141536856845704069375543145502897893232478363379618269341543122485149146699293022495604098850309258591637677468589307187058402801572635158248758644937233075906953454566378775599583531784068753757819160561783699075341397857047900445701967951430731735041318499582323892264799800064465267235495770600801386096164812928390216786243257190231631603373942506106344056769426272908144801693213876428399025550770443446857940132673117459382718175066390105862692085060589399021159658622865559958004861320943587593165185591529781614663663355047806239348084171991297821446534497638602648622084067099316390944251601614072689350272822318648186458107889917112650537079981427073550884645994634115715711877358641932296415385967199198946304919494684899928737103171653701146508189642561236465979857554217056668236265810538754061941005037681618549496556648791681602380696970304435825133554757503037115951127449134842774670632554224315987356965751543192053224063684551365995660071391804352769849567391518260697506548848894478721091018855615514861981483695382680150076240640332098925554049634894964983634727670181750813176789297798276808239085053130550162315490053451987592985947242272321844023378605804012973472421998830667708903275811724327799684570137677710361938251593971124555531514656379513310980431640028528515327141399383553517686364942442201357478389501684235841638978335163911058277548383714202399318619734500675795655729705142631906742511554502465266925646384792995741500435018216805135066376293351105006339362142642791540369448542497510218406806882133778929916834227394676458017399149380808454286798109166088616876043603160187353223570911452085672838119637202465000153474792890059227529574895538735406021854069276899571752643878457472208854914600304504645080887322963742615857104412443810940168090606825574945129634369367965835072538531623487765879736073077523340598474614640540997172988012700127802795580120146213440004774385109425838099778177089771236120341384624426491161342683132135726238376271935784240454538536260881583019856640140672637811216848156500289413923234679076814836985992459324796294864971630867237765890971832257206220980734082091514955161027174807680587518689179634986430729568723653449551000620392948637432334321526837218264999752968686618789826517605583715824405189426867523455560535973117337760892071282958414137083622766307408104192429318998431484805281517766558314659145244037301707828203754452019441822071310491029081584839609095588562706971464962981090473045174310905041861169238259086682169877370113106825584506398054262313348258836596488472426106226936903405287656757987413825790451226105434017097393774828316289045163409836754750582050701691423962015633725119884139169475340779057080392084333408224309207056220368549155614843604842426052094562795540535084626430028449666373917433977807429676470620411668824113252885515706195165950943558759243601389605682004179245124198156430866099056651137496015081739629186757993645287005191371837099515578407937996012559214664794812610662800122950200944056706142638057604825533670841999268648455769885139253736960155096984613348338368483718375617235445249523277079932219231508859768058280177460658152057326197090770244156442528319958770660559483578668426391791148096485829645211470492007933914011327012746826220901912081903840232098104947966411699385008926049604801904364919138972290847172805192883108891845354052684303192293120774362900096108000884166684294570710722506612085775361237410576210412581873812857438459367401289504083978422191496557300386659891676065408547809277314709520527924043907113120910725252335409482602136793032065662294659811722424176096735340270286839199477279587970580382282918437647514687990189877259660843464353858130557891377941900511021045642842009422030166177312750475599518852824677128493124421195325761070125251843957887040942888260655454380995622768169036887937530956127476975379579101830576038037560239658870757969408723072241926801876852198658129020880101705170412511451139984189985375370856078673804411673092476915309076058671740237705911834253758479910428992646282401521396882634638976389085148806997322981272936089925290004747232888396628682980180471743864733420348719115747380078554115292180407666680268752968779555773999440896823704174311060657382857941640511376627528649784520599131188235065614319489668746541855620244903509961255980626067263791553175881455367445211143446339486912423375531316173254792186589215476482128238128930315123662528667275567569262229628631749623240029765605729109587237487814610912541938451576347287861019564079732065181339332196464292304300072295671562345202870987721863922574415503956047943771324713081245228361102549364677318618611084827205764167049473215743634065248632079802556408033040704378261261048817855686973575876898718882531998064340119611245226307413476799706795736955881084051065769604420567978901818875511890075262546652653148478250293799534689410849233945739287721066273768264665153003181351817191366444024937134955490403390741933747218865457806218407947612240951515680189071431800445291912395264027507040817027150639037517823480216763434363182797089965619402541907334108405067950106881798864106662806618259608872275143208052090815541157263739488991239933107896294058551372045435498916326437506727173024644970159130786924768557808533001353506251303180685851334637884696958925982888680781367931181076819817815159366377286501197838837461667454743000017995772151331796677576802511345212245586068903023444616921062076636953798276727394370943792420819875354520793056829037243670471102769750309304863661772575636232612102078406994445787905954123394052276828536086851653000767287562226291339975462854745721863102861599162598174694746647659152227793249426520408027319075012450003998845783461335981694913004207909960854036430835787905935383063730170036637068961485025544698359951625738213032043340435032315302350612185782559586848403585636306122293432621517320895553844973866545352466025799186579805131555960786312924303411064805181933075866422365650581977443271800654188436947677440310211239897017450132085183500125306676357996770507626344018953068102890848312096456470116250313445353378980459191897015618571017342811440756901585045126709436058886410266856889848147958447281695951691159217059666321682069832549170366049101869754639715602515528251432142620866590058312786834993886643885078557441133930837811717436976076421182860325905683578741617353538109800611623743091185866182108562870161834826031012015350726949459103599072981722802363487526011147491177410415160993054910889758453900721369721165321906003860019985210226468884422106294879621024445746028085969231344828243538539986605949840885343204481563699073671194901777779970685368440625732367930313357411084752944245673510137954206497452643481689307758960596533997467288809521998526373652070919283371231123462165960970615486779003346914301746392290210693941560170852503147666176343410535613127101825665151301076804136189681414469843724813641297581698829094211948316715101386795381903555166928371417524721669737399021110493430595443161093721313828021375737666671561934627032352195805108514923377542168291081132460983482551264981536707596268361121578379860117428160560867668418115278972043265538534402461478675284423928677268272540397230185630300904360402398191536225795222640514903164180489774810681865508899929371603418617699447557210519781502653572803450793736823626123617769623846054081171023600810596946304590705641009370722203003949225624688700061763652613359319069100568212801237594988886623389136341613020429721027264545452953680398218323408382756600383911127519453474326547212599540113013827871351123708825996398815057660321273671050313620945887494800219235320799767519573321449056604223027570662929763780435187525094378679864131103856943888871040495740751452018538244301277054267258559232926308373311580930807272183799746137948117872760635038253544706783698173676733034577927722014788214766454515440386116734122107763770446228026914639781664893268628334079839072307755470499706132533963592662862513172685371822510308083040918573611896153898218491538154183220278216128494661169353268724989625094731728118742556471798845635743971508588707311746334920155192863571970546949921755191870145331699513419965504651926489260537590212495609021820351831834296141674115219508027568518951639309800823157978413650319006205831762879072616040437933917215019280831159821858285519144172123807351756091966446227588254844853924912471195781332886542730487791162151353601204010719420240944248425995232795912868339886618926618070083481622492901322657817638427708138989832022793565428033567063603396150690647411810497499641507659862957921805836219028073298549646098382774922485533567619963672608134417631478489854845624243678038881380114965888944581130348951962364549350030100130804239921148151932691126898541570908657827832180080808073398887250476160176426964673045148834070190725796313576422855169079398285964621736485223264190042930240215808463611648486002266057339915909179901671930525718782524031099089046691344403641393397689608584712913110734867611199804691698503247532587842135087825510249743629744755959920412297341625743263547344495773989065544541288067740778340603476413607272758055716006363030539374726206626079096424174414660125074321800786412159365446349985318384486396367139106621437619315143500318351922639631030489570811874695563145818227335789621282104186517982831240685075717035261039245775450100770850290165956177351220848934596890760417305360929989857149672473368837887512504755214034957952905035595354585718063048446642352329334391917636734989498893471960922272537955822188401521980184157746863686300970422620533657717825153321853469532503321451535846778971997318417198068360920337121319996539043630251321801176163728635399026845039398981402995775912033115962013408499137627174787193211341717453650330168125101176076709174412303181170526992626376747190598776475571924510836509223790829746980615495124813570124067366346130048654855640523940996835701424175858567034680078303488206690910573643774622369390800756698838552477157265224704212824812358540570001398439925092799456272022146306143246912245191159421824098550051920755083605370112621350282562890874799171445095304271033755753879060648434521378410895313530237430695142964455047062857693325929586079333343282858904815977895557582391388144805315982237267595949833120810701183707697176813347516943902481554574367530835122261136109011694752100354877992144378588588891889439871763424536843796649659691763201672580899530277656350981153664262291784081303571894006721709893742188584868726595807492972088619070082099503737031126305284626733888590089100977024948900907510655125764284532553001996556455425722007611357981144734452868055340359774190113835089864285058011718312385583343566900057764759789246616285104893514307657523180531742387509514166310422164558840195455007384243697579175586928445887988289376602688262735251796721127347433284792217268246868683698448171666641165905228300327119549473042627831007936054489727192374048348107394063935577340320778799144738591410397305225247673046153963093268748574327632651610187212339001707993932358343092244363050592738030108259153811126287074011117532713764090723213972386667013824726090002353151910099934065541085406080970102512262472419195066724054220790895223198235950179137508643292991502015536173387874073932726125350383823790395752235909693597244472831580741733687302820635120639659846204033182111626852058002999676989135980029987464483588753326557493054653798142652338414170553762002732545665534707825283710654389002590274504231437205573706349608701769239341319602002813941037118420010443082638336449952960672674362563741853836880591478109992635811373157645077860573942786603032034407696885925630280036149865860827480816525759158418068558753070940327469830393562338274560043592668447444374828494754556084638150451476593930283256129154849948605247806297670590504576390771034289904581483377677609766123838260671299160911836551219197594758336994890893963295855258629966586944626378215973112114567563148578369730768887793922906307683486690619866209057488014106596047328375204045693340023876101701877762900376929733217708979228274261229052749956255884756851360476938521299149979600773567794495626057357296089344898612043248807479373817552020437232495720306640958525819540904179958507914647668690211635103225113237981965785962281459747940662579650763713591088510841678577678955292567544897411935497729689104876202595066048646901509674738598802704894142404440625981760415344005309723117253866501852441126525528362346680178584286459175209415929387775604832553549187485746343258931106905485126254174362197286704710315790096041807830195733883993634307984390489328450236163785742458930158353296609601726790688585522275179610716636856592022747501474544449014261030071917766907172700498997406768090663694941066146704181460039153939451379987289116157437950526044336948558330827966059172968358320099688132599706977759142848084117559586101451218619811408960192617675129654932737924250315606236593539216022127199811145385376449709971907667125581581666606638422579154852316607327166774156186866751161070094831780854241150894364463931142350333186749972823561029967954045840280639512092954799330417686918105395693737700533167879944591359408535520906138481714928730312781391568445215939074476513743968383564986470511845658059247950255674678154614759322558120548242823773639034913052988308120619590353768038084953559300031836745305856702736792562764356959697345512555129482512991858423044702995725965980620870733815139807597899288604991102543980015047422596353383583135089012629604166436299516368813071798758691010495153085504325938610271315296582596633793228292600295797859696551521039269136404079056070053408918926230208474597369792758955254426556335326149931004397762563204098478453303820384176137985640008483772395415560727589485829628172823797062825670239644872950255029074193630948986118283134469509311973555604304052785193250828583291847704322229241042828385093111748391431868232868233150970522463458367286299405918404807566601976943677595799338777198606814077025707538874376375907942153021965625779060601379850358096998452463092417835441858840559935138413559787570013572252589098517876014645427204074976600106595121395583027533368304352775745500128677556269153234131431928743262381179566520239062405363607062161383951732374554668124684394953175441692437081563573507073815610174455579693276732711338018089741869434325562509444689982270049573948013626552385198512180852014811186837202983460243168148487859485193481099708822148017457447184307534418633221072639896310520603598205968085929450778843749224263798895397431817900848524428259253574817170390189297130233824735810800360991002670111338557933336499040847924000966753784845541752421827437477028214717642757378353352886045032606002416900136076198319613513752560300836633890410758869475156266871903180736385163252225878595267311169005043195090028034395602656313169571627302971924981820730889100489277562840885171469630117458345420538302259475786643710913671161239397792300515930825458015396918461018458535895338840588153553006882318442861923161912700962266294505610152022440331099323295860220447020604318927005575936736804003230281291367143135832489850501985393158391302675499879143245965299573060504068310004648231929976044612678789542629809066500127620751559649944990994088900163560392101154624716653172119756140489386236644366620399878245644416003148394819921021454590934176742201362369274071232735855840198393677696139384986288922125615236369436463028764909538666676785310949275191903584081084253685274847026724509715102671610529410315037694429210968271611162901246830534388702064542337302305275306864522359620661886438874218901765719820909228744172103971508234978643333656806266032675950421066027633859608502258002430184692497964363108436643050022116935791137083236606932208756081043525825824315408523231244239142971167755533516448098441228639403137144828322146109485773368199972377264116027381106836491828479503019020567420911035670745155107238184657969501789200477758115304075365674246184169624038909471644207087555842246582214085094536125673701451306730333083914347445658719709062174734989644080849066570105309184515252141025124150041316154253763874186518472490641791163642194291056196069792285813447997806661532955295732564203956801102922888011388893843072784568900303231007142665204271771203957693614815755358679719151958959432795129191531820457457018580338046650046643270612555374102238486588533766003527573576753506939421534541450601301126404144086629753729188443969331984438736314231987383570018050383832710776574878328864561826223444783665688888588142051979673637791228219910257256014844411119651309569748782059903147507786371441724761863743555527282527897492105035082140103175665246935919373515198779807714723516024959671780853226734787145652872815204168022545433784430185828448983464895791034836929434531571797579943638630197450734241545553807274201686355873693835718382266532190197249875510187479427687595146894373177896181869722499686014439402133255212729863074065139224337711963982768593749226344192051782596487466624813142349578569851046148052706597161231717289754469290404736549014730269762793842839707925534410575853678066341923683633543558821805464079169248354452774367314083028973679086029558773639055634727487716806849073922480264162604102531311876970892712126900910099765842058359197756131126630840264129460820944057851318931432511060842695682768818527191538526596098897347955080111069184771648091393008044025733659562177809263689070819172091319792359177235316478696934233311501913098402850858385194621651512675855319408132381950878001831661872688880272428446026898866133412589049715497530529006960438860175366540120274368554065290051422364722510468206589740407735907920094871187877290105615215686174975235641490971509688916023291157564554780202730589714873995841126974081306872161200855390028064377082922358850512320356137442935499029331400991206077968834622391240434948062140815434809326581519937586249041308558932724759328419618956404526423633897047799641197913489403966325310179682867330220124798073943818165008413720389394948161810211579560881760827817578480609031163731572859580694971261045506276952178752909995142248078016079027137201422482334681932602478542094304183469658538498446865601229649920972797017401213364373145260943076228367305228579343145728791566549405931320173748765984536708357171534036018237149549776918813433549642215350538692865811535333813379284926627879370512848536876715358410046003679561995736015639577025135273370626428357243358399451936317402103439420009262443351502011216874418675707282184668573083239184030198714500475265574125902962456001366423980148426348970677756099394083106186507398167433940494923919936557852182980605483484227572920944901508751631547776601164361607753811838028392911244315593081372118616113717022608696017575975494086619539950400793192996074502439081062744429516901230302399561633912253290195210770057485989356452809229015466111446558522857742104981481529221918758327031771114536506275264160194397511344042419724136978547995808271379099332703507719819418043554431394999478308042726852508625921701385017009978276489035041116650695249060370044331854061911036699583185287044710137601215308849982486840023074956942848019019094943761644633508010929802001406151997711504070097398296453409974587285197199452073023478043747814867463499592991890002122279335808426102894985136683602943569153681113858362977705776858172582906252111077498429753831208275422821370400564570333046870811203156820723791114378182671246598598988812199834393097215797065418235356486798628656340781746015934359991888397047677600532307240058322256563192729427069063996559126975342089797275001784307100935531833028855325088391670202202952807586380459782912692055214809318053343671959799330151326591764643566630663033003537792802841179612657132079998345386082196306949757107649284375399882281257758306016859272675717438267719049422259122504467189044983330919910668881308848223720544392063838559033072561916651163495471314915687021734099698650654977274456752033493314508412019227869694575969529020693038558505024047822783857405452422922928345532407682144136897072903487837569537147471609260083090562288148179276037261059742612295003245918710206602403454675993270939296010205044065213234788111939205091424854467345340147313278249594841106198033578846458879920844367490484063498049116529003136596401957233492739629093133504354936660502973136422846476383242115379792382563841313170995850108867047070963214881230067266354177118529145381923832929344878163028485642370809566165819205704536902550045264131572920687973626356942747484965112007897411267942107211952388195659518645606818232893658543925060503751680559350813000358662218933901770344435974854650339334760332968792426531295151545223959885303741043403874694267151782673686466975477389627964924773545944368772140347909582297862453890228833821689908721261436321399176619202399510472209582039062591189343749463874550994816372091009537536664769919766866808112006247658381024055303198468876654133369468934528620966131312693294775476123466148056035785227063806267781855050167837107157603436900998593107853342016560509954316085447938207043430770790625234710489451168160516675610150849941951492793019519306376730190254848031857123475350587987253787356800003362959529985344525373421361947417984627707334300650323639767241385407869488292067963872571495511771699778049165747973632511070744772640606402467735762412764259634003938448607739332072437279773291346417272962987756064252746269748017172791172550203324482353623510005325418589536670516771208642749002013379382525001442043763368136424992432956025121627743220431538577113169348286857942261882790945459521375237572304049746739940795162549130402646859306247502018044963121189372275116829784401982724322913345931880781116549983331006153446371328187124257015401188490719148600288706059520179531763373880623345564518100282643879080013668886267589242098998724921839273543942651080559416002190741627921207323661033240922431379600339316395149614585893614411705238146320980978256674290206705327938517490452430105130805166899602810281565555422064690121306539296626990773990601678142711776409657253625314591088351871665152755008944460713869085013178892424963669089638712029001569350045674977409026581591203330273176763403916019273861582291921904577993216433461859803362380133018241059767385332802530046331611918556705534695103134287063609537596838375519597626972330323293150748044522868571610239950650947096546689825959538032345604255550273597580470465707143745501675115463040832304653851408460490511710735910820534748636002383096300247785611255627930566054485320854137892410514121270954872431350257846722575921899926528586039244676859392721654555088770358712326204608488805725916914697826060077383139000870990471318505908066433585209940664826519994573851027995320040532268027251100389069903476456779957590805514058335388959558015203003343677966961810061232769270333256701555961959033888594469634525685786178894649512340482664151123176235468979234374642382873009026541697300297454664347233449352315008708047393190842006206665325385834627107065512309523662918150533355436016357867621308687223262850429598523025845334912428210558763529747210080361029997786770444006380735224787639605878046282446828083386895193085126106869130946731694734517890045058006850627505149607904318260501279542870717808004087784452602625578427194271172633616997263156413088044027488365129684903393016838961807168570880389254162303753338963237721477839063406378442228478397812358028698510211891382443560943842528923670204636421750368707422056353571889263304286120203090724412164323431203461615167544811445477424999311290703610839549861792744207027287566312909912987667173883009550482792341431164408946668247461538135093091773101950256086951535743495664607879022051411262083542288703703542159758927334523117457415953404610040293420677233749240566991048738544054133958518908299569366295412713802876177504627048501292562693535552255544348997754906742508628938308540528530272852688312662408133321943086308343714784761012691953135734691355925176105596773810897045950640034570499920335117008468796648800730736158122942647704302617124380083981328922614092677072713544325772864851650900468699281151235688139106396662247122950957887048860032347603012046190847532612197956868996418765513526060520819712170254700428214885594556228613840796618709491127471542066953947141414953285235578129750280413905767032855760003228193487781687985320225235324766152267341251477773967094203458804885030521079052612730957009695549247501334227458459699527842869239621534997541216629928632107884754945095321842720814078612170634040845680734649633864159784914523287139192985557803135131750668925577284386626861199763203989880335713455492727180418899647104751878720895976946928975911954784831907156784484483468109547531217889885320807209261812628230475016281722542084914506015653197334612113445541950822052616926065876801001236719576571560212514959792776397914214109041161051369647943566829573738035620468930384088882294670258295274135024138389891237491431432260286332545842234149280550455452404041105416205549417647378233021575056225905198906088274522290008173408713959620041714815480325722287092779030434818858847485561233896974821430804617533374774209151406321586574451825228426601284134240684682857790153375739009845894315893829514149576915014565961633250567383836898194940185457085567718221509945021316867588492282050913285183326994021514697426546468946648102419430518141725073473960397876250724102192467441295978696888112159982946489693738017280460046233809624801019068990277860216864993679394820932227644363810706562439626406443380597293588368736038164697593315305968329713949943253191017800452088764206788090655439251771272053464455349418058303868940837965115781590355098535786966399765605222458825913806354614570092850437235409200453479555674167741719073825311613802622970034683734872956455492165075609557013749786284115550956772242262209956505526158149124579936723195073638719644580951544197850761097242502526710871307729766906505563935156591752232448041865123700175650613565257704895612603126688494908669290469296076337987766428696243401653086517433933702021215404806001454646184500862658244242238070610504902639781794129746399366212541080126729705726412597233845690618032698070008197224553772030622016237906564450378373524770510319397820774250769619881613541365858598114315175660690676222007338530267327157683530909939988349612899740306511015757871811705057272553077831573102267969160707915833106256765026497715284634144890648344697052625366487787928265706313423192103999962047328697873857415890059036428361997913776248162563844459576033835542858912418862788398945321232445258822478959796412257569695565221060600648383032213112169379885947256162893610527154412852212365233730658486742774034433307722065391142951915865581844501678570664305225766406663289231194579052965018567435379008154088583287544428421298149215329989726515854470684769441588499166409912268590869976320248776361373773787048661636682132405502336799870218707153606238102104740277007625335173912841596637341974123795733260815543756992612951058320279786581467024222823234858578050919329874868511759700621322960198341458050747423804605289723089003680227949445244977724060345203796733756320804400648537218786451143629812652908570791479550469400956445395031015913277482956485399486115589275587934070477759922920727718627956829008984945916980911371317026761828844986797370968255610428217467970440859766316483248965190034589352938943022891862687249568787560860538103665828779187643134727294410401535131679414888449241388969987632735155236722393222660066044354351207031087811668473876422982173529705219223619081828664206272342516797336741542394793618035932715286967931281621227736760044648535046344928233569723535801175731155149527937147375695783303333586915098244833549889635641784971696465281380472389711315069532746356235802280574953984078192632784870037179333531570941692831250242479884145635991279739121690320289987001752782659808996798511112885993158278894256767202911577927038655173305114601828020574428840816403750138163140148433327898434487921796912055969214550822724640839219678459403264458203634201115174349832374271864013691823230541522081379693835247447716987709319567839393750795801190183998588405463507174388963567828244512636602117405250108955413061819487933945208700344853880494138131830341623169485497604357089662162043110137798348579666253779854193908000843838003680729084157751358758772095811699914464986663218384768277961073929104675275887971794410989014936353312151291775955824222947546326063288246774597667375505980032914580691518253730453904699395530772248749265295128903996899629998563846145050090153767028077152147153537614565298003638767449910418130978393144410473883718947361039916610834570398691892180971271621871942547264657401335533512796158586438417114841503444135171874290869191049083566728408997256466796661006943764385475319639744253842447143090678037416287686255565310220372549090257581146321022217973111654531178309490905070444448289755440985155676615889675257423214066844482157594411435547972959194620085818484408874275084198801234938190107206611345627983424695205823713337268828506144079603542947777779464813398828609694860176751315980480419688811590086450939104762091834319180805813219110786345890666931387881303163696318258251591575057688747605745352146015099430781734773302116295523033253032322066876420538290448297141907012488577688961352744568353762221160324270776306844775567107418459183921737541002788912541279302038280318803696213117553618462458481341524017536587190196899947182049996175060960564999585280738883474657758106489629112052001693794606958254478830642223703119829004748587868489522409249101800664176253581802279681014804423728619364931425084259651940336834252164189159077541948318794036445868640866394631039709983768462028622440544435369078868736171305314824620858704501838190526572984325525196124516481694621540624085841358949810579785912215585614526009727049598822526308627490230683791221494387666574481536021416361532124623005522294317205170322450767672202270470557485208102606792984601171372415280414386129869716622773516103966604640320941255884729076501202523067943848485413634873212443538536998525310280775415131972106204570259356876249087042086242367561669733200243907236080414377164454397144262203160753982374286705023143905604170837218798740916711550808119459578283860588884675141895017342999979546848497353424028488917449687420259557124510540368107058633624326781017124712620090430221797949696972073245286132103890761246022860263631860132574287760811981095776322989038730872788241386161234249177345993625755751722172338512085652243691518283508862193905742375583528942016507812827803130016700403822486897766123211799153954677160713634904438930511800551021381272627009568163556120386963762424635833790420673373559096297926732855336739729428597576831714358606169413026472146846452057432573355935225114464733018560496549563841524553848197492561095224061383701714061369172627369557254214711677366644110886894956389597322518480591462371186017648826878897510006259698159343749973018633856707085006987155869430178473647317026721718495128429965898998507915324113306597268765746161120865488830117623339788482223586306928146610406077622763506509036846661221428133177422888375215197850543563425211413222223624894474053816185519488210085740351195578931659667401050048960864785193720588964285019632008428117986067303610651478075805439385579267532103222077366919072044238718876077544556189494538393945425348969512044559995188334258074205184620277748211703978918045025065763362365656703469337252260008033252128284876408812110563731195558881091477710716566476153856060881650523043732879782201348765832979808265290550689207544398664373157036048868526869883744984692176445638811211778853398099098744286702417148551695693645491446254459743664988720729388497054525347803913107049583725705414739262614849234499604089700183407574982770865070144876314997284301217619675856318343107016626957233985467602097123238544162023489218186357840650913838602092030964342781550523242230991778476929614948981294269949441215335201443410479192990196241054970009202668673919148660051900129355819941771390316749229071873260213132678810999018255839803880142319803074544724925031215883098726638346935336133367552555883385059740898539869131599920327404794242926755447103141735653732431837027247919421935288495771491344161891316867271803281621100368355769005714388023684063139079590446597422216002696335099389374189252745421386748167159067007539632573143265019722681072962599326898576769234626375394153936458731584455707377314445961498409196094862513662734692991510027476540713087032395978898794767891750754641580222070211574114981905320731947678985089379822901763955206806024749141129776244532688352160551842924564725076438662132584014278019638305721774772261390343790043470911826514836806394474717856193414273398626223041817813878819163909730988561410643897900452568382394929681317245487974851503438327331319296830300571143562155470845805813828681055224632529272674975355675795201368254125545431937566924031316261347828662198540330975352620563282683576668614539437963774536610501195285988680045045046345894051222198316160813893229316481215305066602734802907425277950423091745837990989541505901621540626302771773707935160178544882455097054336407192870921353374336111430777374710755964318317548425072920513406019077131231961267730096967460911613193756063553109404175750168069060838678395108035734262327281753482276500087153840472659212215214399617010983322793804455872262586667295483003985006649934512559926624647979857499564673543239589859851487990557713406061048982991093283748100011063242244059042252272816233204648509643118066377718456719455888365379858066628502348582657049846268599558587407757592486711647292528626810169933415396211286112659359065132833263286170206353814891679047125520593837287448277270807937588103830918705013566350593918072196972353941261665202725042061136497250159049365701611448386951642752317423400730241427869708885845230893266778672456068778692130773372662420920899389970966928230718803837821805094572615164218589854246748125090991178080650277486838514466405262969970512854023148136470395405912596857648344574953065864344180606077803612160815053712510902347834776423090346625377687647340116376961023180206179177712103801344099770952705121937471468686235456218688712950341160380684139434561821829855246930185664573020389705309502405684794231933811335603989042767161415934762869763626025777993128378482101638342703993118133177215972797573847438580870267775365046026145199440051246953910914135379513291611812065291853921218430974218395959049036694129326290325708383591799641961766587747743986150962485554239186092699116068702237669916364112730115216110661379630927031235871501426426488322195637291444498097966071204849340186299375789820675583114055856508961794098774679034414446775215415204510685423377760495954666110102376139287664275901355961930030593273458997536398334484604139685891272258256478746849084817477477109445837824300660146863744286752011223851609622749402464431363310338470796377916490078140302240372338904308045883367595366160100749919793661091348473155588853375442541180933138250020971073503513827384490506004504955452070412215345988860413944987595787940465664858400415492341993986590519728422110044700495147246044318652992279915269636187796295020200292481736483235112983145747927797117517735141051807163059362705005437083539634986092471587117011622864370531107153800999812442931849997780254887158817460157528800239952001177233494602464784275582045658769070341763207376379663703694669566285003693166091561698763129813867660733884702471937174953511336622792066481122700381498655439538039955961970099404590734570180469611411806678188967408652933229244308480087630047374752406190974444126094763912937958560461191033900364904047506289322897553622609328161161747503441875597444585449947451978427790977096974440570225570865241295647666205082833291097693004882311751798694270327195911891411914740606680083021452385903525198308004536163773400074318659548493127490738253487333305313994491772126304451161319105848740339360333661145357799511745400173169128192916974981951201078246372844355066457588020049703120179914708804834102167420516427466079115351517805182824944662669703270459570890064837979718623600004692761746435262352861477714594556730130442115856888636566542192443946125180516230395247084053487683198852558629967099597482379431726933789328412813762225708672839551317141731568775548205556859786618272770769018441925796580843902266057038144348324967263812831918955988726970211304648613563176331512846823960677278485172514642659320082487550706873266522682548409789648555908098624777418306111786606744614000717147980686335898872090632197296308921459885885913685148003912468529645903947734549605038441880090504898460788640631516833349827101683613639380195183656405269027212904970947543631887377758729206536165759099578657350727149934313985398788382385216318032815084361760933255094654419568674602791715894245825821952143022893927373535823473395547313530360687247985183180253672226216315392752584104744021665800950342268186230760350427699583535474831710138999904971859841851736576354858704592287668632421470859452223087852187214101613838968719959133974990980949051146548153694512347580909416931036189122535651398458414363954398831783703438409455926139529750218163556279832798294432142282977313586579835595429784987093776962270097449345823040264665582083359978491973074229084016163682249303702107729246546116482890346765375362634477150432914334357650818871886271869096184519620639230138922210793061035678651307399590861703862924607279572539004126798493745196406051852318843079229207921677390777238756018557505328862309392183530872517072243883920386268217966699403909650249855955636985299989958236592439784856582299375024011149247176756326105115639123340135815560119117528724874669668501276713737687266838600117047561536794796863813016050710616654743392299113849478708361984185231788415316035987607509939729088486987286172961438848692450157608028286430007519985261447914552613716870635007205323465599846225155668006565608092684776685935513245516870359514411494698606249504541693625369129319793748097998346852714668948051082102762415627398085106694714684578233247274780384222025397902748358311604101865219686900669098590475683736382570342975433849038051457169719444933616660993403795410581102348347792402835891258503257657640227808455094362960673121608251675207299815407548400072413261184986582628255392849074300098450165033317355289592249714904405930049620149089337367032811094221848243824177168753838965018225952426038168478676345324214971093500027969624814841698986973154093221685725207893375271508753471327901051244156660388066703186225893265816900417549616717962966002228257784062866104240516618837337638937248210115068953639172230266561914876123959969074085275133282166342719189172948445347126352559795934398676083378294964993544263379572236936657998728531962667167442567986184449911369164984200509229133675521832296768533441366688286374067605376804953456652108400675935230296751935872200398100901074414799006199374774022992889646500030298671017283207186603237666901994647009960220511269381397156371692458156555890123558441986116031357486450294904566486652104249910720859374617484937338932929883330175877834299022594097381072108907681849944510405595349991473412003801385119013888220871238293149823000671086807997374163733101317624523345478168145317916893468907008121608322192116678820223029425717796658444987004449059669866911719462481169435863444734226773645680729652482685612291561379908422879998875892357602388935271198287324290156878363728772989051685936924480600508318117367065173256614776591212408827836941200326864971724337414327617486283987126541204321998325319554624329091688740838867701445172303026530045242489584406805950502702740158100243497478766025768018614073148673640449756403481728231529110312355957066246195146484044047233224310666096294835402325582549859843952898994929913054363145141423086995032799810678407436599208235791058432739049597114838320882136376636231569068564657116719311042245497550847530435678448414289769868143295816864070860794374638858726847149294113638618139104802763217922469346968027028234276199899755285433480560392755962071995158843933416383323559650699018020060458739970717289085541769573239315014080255755992791637862009395748212446113787046652754906805320977294899674801594866279905978843799873609444519369826385118762178526058259445193324536953210261258551341624581902040430809869894788998058300592670640811553424408498851812995519390195833433990131283304133114974010581839280116960298839556139649546591277555454708702580085302273362096054057028952402024500090079960032778439210470802303884839525116740328555611574732509665159949258717939410091830875253901815140707687178335315500316505405506228451553995559411843609896498551180885181976496376822758111902376761186804060332435153376514207976587075229612747503015077191049306103058980843513832472483984930354031905319172736773203541723544736533993284874437503263258872275977375503048247814815821214300984898718240456498992755087547836605535173034466865921962367566868264520236082374024614026795526554008974771521008897030837831411989342371669452019968639686925891519049106922071229983253660451701707602726389172143742509872544833891659158322240262244269150273184287924823979352786874292273732555837142381300463531351627335673936382322546149665062006003114214455287623645598946998397502149973116975197113412906422566660687553740839770997575738780339345365610848346344442470821785457683747357520657864651054182139104554820324322205942702313107377238186268194040399965928117864357828874368599111688560360434533668278671123958381326887100845599361090741010317172641570138195721724178430246278268582592568967294956574461975810475627049358130037057270083315394170467950752629399219354302653661667436423280559362660321901905609295752513645363544121253941717826714436310704039262496749344726572327870600731796074601434012295169844014321650511867463188823160213476920962071855178943171661936835570586948571273190889840423337656366650208025860498468005040834587446532675853841738924158474587859260117869170013427538245110935926606173507268334432633552783089056675428971135035613256818817788887569718292888183955715731028231836561231188875791396813215059823177837185371117991503462972939708381788333942982252808255578066052225199658061844121128303333685817744961650610351917491458524108676104607763016022825414408678843997903212277748811372358820274653088171843989958158034803811921007584984602734435941409286032211709746746951501458710820049759933593686188247088749826429809205358716544484393464977560328347251092294779597408788547337357329481468735524440343250022295819387920850164419365780676835392512562007941065342760162810655531412287169547288082007360568626556000888485335047016678529531882678842813213789483149962278982838097273776155700781893423006278135537337330561285544768351976518111306218919280461138530114300769047192014934262547743560459885786269722033071305563836210092908415580768929139592906942882254515942193238409231629686619392162733067683130382852844266084665265376607314974984281281661185577163423095464181224520069408344858287876971893151037313122432047495711277447489606318670337079941549753676133949675519479253058989689906814184068716705403004285242777649274906599672768658794459256788093935259073772337044923640854132739495659221554556866248425186244572503328414938310329189238072999017210062796981687011463048370427840908729614894117024026456660337959584024513032932186943707168773256353407926201164975916459766957419925326100242742061867068490189178178265791136626786122405950945922506344391662908534270857034139451814165616109071265962607952752764760655890408882468731561182869497476197880084248530509318452292503542336223011180305710361976602821254269251422271925364244246228004778962647182535244713455694646494500438939627627362828953445494327540475607820272314197207783305104639116399175570459507240588507090862617745271421081421888814214445563667269008326729387887972033821221846762599036093799856247992821243867718445162437329731813743057043344796466434057029001455680263057190555163594299629291882974383795851374988189943193108936370182235039991756833670664123671043593276778099731242275402004193983006042864792729200773841143031063332896838926800268866317407755502023410775987235374489220299208349040541426037917262710072966341445865024075447466116952363757796399487077842055848925517109455338563555227241063843988180581973620182800995869574869445439829889420879820954261002745444022201475797083078987460622086941963599495748958620533447251401034878688612554281752821303561951159914053443432796285798774450129827823473146050128055866740961116153489974437054839356173723392869736210758067706514448404801288527059962669634940780526988443374199400113499521694921090237879547848038215511552814577926344913592028157515775307495029944736454095177096912746577909486045798387770825954561286575515994098090333785121348842625327816453426787168521149825354327215260481557209940433786183302499849675151088980305362777999984196530870945348240890324667197361830675178593183274725880440401214727519785604961498683630351581955536831078721278256367832704794434974215249242502806903208884279207601546661690772964701668421159179752391258021338401800792239321861657659240953493854857637859429295003434266094895352865843220973824069191709691856485575080223502321672365660130241139897354777711081465245738618473319143781334517329558792211831126521932932186396171633101373820586967131199378615376602507203838999319351700508400186429540109234698154598944959847019345060837741025580633376095931425631937510828280278099693816012636219273276318831113877794406252871193806548365036031097920334464242711126326369293390299775131676464729887308253113472267632916817145819183532381695920320958565230076751195585881097145472216804271321003935375271625476015899470027398755327191501766159079360798087789584151499544548421332756087394280804902979787078272302137499564522690861277649307994797469753838337444506846443933237892117600116350751010262109031308191050446368238154573908934757475694933796731843977517548630700639933404562983405442910318408447992868428052725038475945949946954575501742718977649934828464035156830348850467655919177052417731538092627651309097160531659784335047232859783060976414776794912631030859163088642676654992539683124453167255257534276950292255551490976776910352018758697998012099205890805082975177255748565920940320790631408626750559098417168031768979807062591547948733124546222194081715598284402099580864300859105629654231854333681273341983791859562674102591591595446687475526977527324455540920861962988349201823945066811972819643564038662073036664235716029452193793381050212443585091936807631303267383387333175023143574765852113867236651824144288035526852300037199095040417775889834274577355914237204198206228055715038003057889507779898323893692865159818892127080175185809807211910301933771617901297315729847188862467383940767846132674230487521846257758010795295513506456229407003910861637528367943321360083116324106524914381872403347208913662340354383067390960473607637535206304051635550642933471286693814286894203979204040018308709787597542608685438914542642700497019144575268339718778336456911618701344838914125299192041306947510789886623866144321312281798405044345555180887619360183169874723600197688862835641218104102887450361301657207282604874229596706035781241308163745858328413510337761074304432227261822679005984604671926292966086586985287566326321349975304175509144030150696176939752884197014001812999613825228993709983209271330825791020537839938270219122159902257362237746050457635388890570641713235809037402527704642935634031161919766483051010750040142972810912058994332876962388409018074649702706772588748114477322319227995813898825559614001808473197392170456321388885085467221277483550100233073175990951377907445463748021124218393602075795054579678489919704591307932058225247100450933603280150472686527675043412607693644554615524276311852536824263875014513757613447343288877766940229425169344640478646288253148909269339415233085448591077119348516264574579414225765653194035283769597531937923682328462579672825515010713461043427236463279657639784359396732633072395703429589827216294336456495595778447074797695379941403793231974273258935064005432381243803849070678993390206153763113582605277848801078016449279190205224399449925151450874747601316355731284371742096831032233765366527614853740053534224160121702536158528603223299261192761037502291605148546999215042063320019512241508794221918505995398083812505201079055390408985760486766128972739896447253613666548099484430605913806473263360201046424733338415687630812025266912376608287329430084966385015950774737682976770371791369936627918665627732272160840265600379827799593200734873680472639575955349080317936846962990485975444855604114392260325193413775457566190306155934274192899569889519992598201357968980200473975504124591196378619725250405754699920041033200521672533421816860898034436599384362351080381687924641159165175663389856409185897108478480918906647475209639826771067973972107056141769713954559685960526978658011301049290868977857842906852740637080221463571844183205896067744696704500615451598718927634732036417247238151211478984241466411778254154431851071255028471498993757814873351983484791300326988493217278084685910664374706095558556509245509883344175910839304863772798898201367451174167832559147806581932155930207714026317604628842807681981172849366374280807584780942855717609707697348425079670662567318655039991203280331991128588228933984515256190968032597380118665823605047420708746697496168498083972299531043946179709757075001733379194818994718419213065294146034685754061991251725699448937048765276600926176055695916665917585888882753207601308535225043740858244062887786233573069810366823548039135641191973840760960423221386370929494564303930457404230690320955957380413328288837137736576712433023176969377074980047038854627695858844092238330415866191508748355471874504420269089657488653521499167296459401651614384418323035914817513759704313026851354381837877472745622511963408160625034824371791992327504348616951615747365540560261968901001067032001681407210066978253570549465744790281764655465130078783537891078266356371179497794719898618184264975873926379978254091069564882669496775315330941331446229305973874323933916135895434590073858081680582393609081389721258574876200805512999807019051358121280094647508112524358317616297835469515717855810156412920793991792505174050171931906621408323904653525458135193440165573740474987614115532830890127932103263024162507665054520939725650534520149053844842705543934487222081673925318026820524323990315998411660751612770462304987616061591431791596715950367539519779919037322985145872628331039145517100150683605804936548625174682313698501171620043189057959694108932037244209393058788774499310433473134398991342367659949201798831966172677772051205468528433175167146197882655968855098372292630269047695659877493351455842557148904097117115526140533017456140295489869635399976555968083446401387805401654906847298454841475883501590714551965467331163482488274955576375426388700011223347332936910509626968251618312016631481884244192642156544418435062003994382129090998799004056693471025265188973468750977375148969973262259661925067847010523384504091732797227369784036432975206704068642784658514586061347498319961577973008799780496804136771790933898199253307110172028111615751348458825221277458344090946173029584837826259193053237578273416438154462916485657613072570317696407251871406801826192260108816374212190759832394475401955639065037499574282883106630250651973978410266578720030503694409565199724685957987694104767938691392835194495215790704073930521611830527296298375873187327725551346636642197468536984389385789571741018131920452987280239588902767541493741076917023054037230849050693960497334208128101945419096270360570628891815940837058391907983738987834306236084892829917965122814821729227337166336875857982909242422394156894485762668027861735384549441015373710592783935165783321374309377532342013569145115771837693306155892676268748881309148864748815771077328204769706709765343178161282853079795401566639262605990651145986026247107672045077441189682557052993098177932021180523576265135236215092295970722075003186920080016182181218569019280957989763884340524239582565035647718973137064795585306231323100996786683099360078589650954022775635091301138526483778025710869678299800243588803745267438558008042049347374567352238300175218102529357181546324107633245650561372963771859918738650240316903373480823787733068842889493971712421133100297468599476298759594804386936638815325601811976038118883025896105671738752733739670560242117250126269879045779949525617349294636061038472371604029157129157994856702193075544414498654906149897956532964595352846127567554116971810075771288984878480814429536328721745675384808361834418269074630894162558298807374954999990370675142097545563153985663949909726923684643836501937719578653146889076734269763933785464572234903660551835288812682218435556380660473427909234319186000379506396513361042399581829455092685640425169400754206868075270780162701167335416506515357699170509377291676702924491575749196798298264075091412347241639067010027723978961042274422080323399920206395974279710325036293178949657888928524383093074836317951011098757655362017788071826888681469938646614173045383435275014567465760610838733728216570484843445770754098429877504901279670740084143551562250305520197024304496857789965686971026128396811196391473573590978623718953073085532014922307910211426811741876532187075734783568192560369890225469071716052657548577489024930437311622427726669507301049596964293489039657624394083946437455909706346476711271424799662051900156705970396579873606419324735588708464108361534945576156252350445609713785928649748238334172176771409858779245872249153261357503948894562484315258375586126881489474923546165762814684215445529401374452221095046212043790724069614305455628406687204222515328982447051664290487885380510979584817014249268368731202068910944065810436277637058982900401447617210052755818420033210808000435398635426190316086334452311438871283516582332808933640303679593626380063358255113343276824953788778833793832887859921293462410628708596947318761985014545539980064656277705873268302774963961048612121071703863180002686149109766220926085209630695724592780805625437291756691938711586796095346844751951825562889206826899411360180041271446347456914257966855969675163280177257539444396887266306711274312418874813566548047186079781786359425423270534548902505408430604927094722654522092793034046130598452680179115550398279215958391291167105103314579789086308768200406757301816209915062736187942164266100777151830964425855196478352688965432316403217240062242112986555344811951353415024053881260016367552466105366487254511044195681119311527728426558713386039255772971612947613055812281207011421802218397846990415350152406940484888084574047802728858566114868714173131415649071987544489008788795715444532831239609234591506668201359303472960518344736769003003002727726864091442857201364445947567170330671054522443013431680664831210861958833578391895031040858759610880440482595061868097419895960547265379113368809158668033505193947326665797691850329459998762765763453348162317695430958140800799734011424260835053973548997802371493717948211180919275715913471187976501836978483951146496036801922119235699091437035267672443824680816141750013114128747279676501075322368244338459834547646906748759551701241143280372724096954612145158666352240766858777039047609105656229538334801750833907238078109069654587067350777229754877477961240395982562668450552495625899986199847730507116351035675962096643626452162736750550683758584333354305816019125051644494690016289197834737074449838303631337945812442964728042085753911939862760429983522899819048692929475352053489585750129013527982418275545543679971418903906972911735868806021232826597360237359566950937944767608977095594387525934316054296576384611029393055110775061597885631470222776827601031004795214428453882006601803176750590801574171304954953196049931440790493559741247051011363928504208812441159688974729421650632338070036615130242049802693589472549910163709500618883253932991061294867181600749480582055783279908831584378979871358361170861106999809680428426817996557975893736432113192735949932261075272526089888153315908258796271010603350479445425799132731836229657567951350236027376883584816809679830340993755789765570391891522069651333901649483780858114734482233849899746989322335791794476223815699604537991240102089878345879040851360474644097206137769786266571090817653507131252967786241975700387179587359197674899735752538599684727900376053853987382744475464349751577083410505733100060154649298233251301457673501160934694565822335771596793381056830410928809291277126949700892441776887766483924220928450892620096998117086933416164597190136337579276132767759071947662305824000399300621131299739695895976541845556033031419779239972307091013404735256374488664086781326910452717807208333420169061323199772755233273003784587194154039551528035287039331261264533771084933527879042137529603155534276678621097444415613041942173392256382927956391382025921121782439865312385108168783572510851519434373089127663769475936982298267686794679623806165103532123895446781727565771356489359345359934923444485338700569463226133262393599279445460605321015755621929702479672554493139941655664367721798833649019200426762853457354066182416067470843286547481190534217821658263601662707933658947677180204866161685190758517466733494519270935732601432543811084345856935804567678431349558297904714160330431503844150919008412714452046483517210659914879557863313234754798511690901584559164805548828200119964729374048587315044615378105033317103182273555198013754922412241880242542377190386534717348340716219266177408692625148174792661257836650119446320053078051625190561585765754197546216323030349524274241466183104406962180489566305556937649435798321880202108555757039493940424387471914350390852737224697789648869818009664987508915869832042055920593286586599320901119975946074990599965923056705310887895027717245739241094674432781437890202667088260228787641465339471493598672820928888991894695525650550471786618865028393922026666011156597712074320570203421022428501161130481634170716085192219556541678306818641656996598503691796336324598016435450115197024203681700715082038741914339306707145464690320948264999970522661618525596441658271964589927786231095626359188228970240516631353862152906035266585565885754670420295441762504466582206039360145412780299274496941788313445014926509819646237454322497576418909793844965002557379621812131269705349738476753451474907232837841785419881651032833183765966024835973183798699115662126308677168126768135051056269645696429488632782414827015499990894396162587839408848916095196207515043234388534825868309759527783109226975686026495694332686070591799893214489519892488202718599256958817169041158578327335379817819539033077274579866231176990533064838796627698512780828106982980743378054531332584824290426363511273902938393940332015388970127779936594483361009960469037553249390711741039430831984128410636187723924026190318890327744913519009735367868357807764125622156769823360701340631469437760543196487724825525305762211501433986910454286328185048857374152018798938699104687926972391752921839851695006246758952468396663752451010845711845631280769558649375466301181124363056558117740782262316206398664893818058184880685011513873141485048019003477919287261563918360946224914646925943336524651801450602985461508377173653241252496559717869920826367458463916558846300352332021105530104051744559449094460569851396137075980823507940306809869083948662605436135345041663914602604232252841799445856553051990958381053798830413553563651702066594671799386272547457425311661888037576057783651565506839128310775672673522708443007956827523998909321168848549724967234999187124886311035985334516893044429437240108117652951754230452610700751043937932240103496902586266861606477133380430475105410461449393792523159063270525872122644856866516454866103245733850915199271877854095521815006249736899952896229693372310061705672950429248683486577472186137748624184066438311671535556674723726490415531777856664391440274511737667865935017637458624727618086730276159755088045130602470600448906370022882130952310706489172073896626261231403429742803849456050822938820887599438736561001986541466340072874140662804989003754189182992128684931026438628521717684426639018008405642375602578819001637519301134434821892137208607825132397124369765552595678226920001348549314517547469948762452735863289002377820316656178391989689410137659015673300577475849124058690765200587641868287083740962653795910329179179550712153604487724879464864894107641531212871104942481376602346122605949322241232327600754722567690486217344940675218007585494929096692630422204258343782707682980809450992447240082806267758553819634058553854217307579120860311975683520863016892238706902910729475113020137124332967716563709676151774287844228262724953923605530176084488570692814712080889587126804571467218937720617509564044188148605697123391027757948965103214703771238491543241518074501660339053861184324160920470347575891609997069029400165435910830378905251216196083531843246813077755810780493794172154745797910722685015180881359340935213443111483146681159841345182493607825247775472590564101296659086175079557918169663006324898970370492389644328733604849036218213265500355402562947153599161814237847907371168754635782952730102789821372460197789117416284292341895142039513791515576026240929999933087097297398577730792428264393266907664866643913399000078391575268873299577243227551518982937129461002981733517664886794285436302842274774841227187514287019675187544157969405981832867616695361545259751802857088492319900568408112592675327445890284832628238202689955073714101574740793669425295940680330440015237169176217014200394997263967919446704479527202317949636682621359654957228283424449211528368874181704519497306725151925606152857896858483601983580628905674459829410557123848311083800659805434503630198195246899023863609776756750683005270863376741418205949218442799331859724873839993524215133179519566740531367004444774813590452008032846629425325863646766271034894079736592176948373822944845560388466617626083002162876282053263564069296020656039445661569860808058440349755380588909456723234675188152862436263693976022457451871669416632479075996956508886044299483807117373321738821250177612881573905788003318581529483741132105469297403117579177842971067087491275706080696332196542694282420253219095645787544735388821089097624526239808141681587150126959614346344287890095012864482200271649877608360665933611031799871019420135767020811766734030748033810811824416811211191113190889509479264373645674978995417855238078845860300789327264961387126158846209720173844562795259475379471059226296357381239192483020872973364373825731007074357667690799033019193652226489913767443818196185110912202483386388034424908404049164425233190926424220985880692054301324023555805770319314901757959667321826996413113400571647159610379937109443349819471148224883380602297785506134407967930258766760034664111424551363750968915436567869983018160562029923300147038934535504183166615163269120300540334259886471649576078707262702817779554895635247931968895792549972419335502384198157422601147272144738650384557325123125561114849094672737695278024194118673548342422213450025441089810535296881838735705066092852481420993404977912030177928235650356121134537591419023641033610249840814118120783994857807732979367570115479930465191763007319733984420435188474078746469731922946716757035367748686587651853061025988621406347096019028291359457563244148555954675897178062275686871259712275692595485705319490341983320521788927978916054755801133813236683442772544730241451328348935218069528699060446240129875817014650584262353254050495168016356663171865704020802221218330215827337652201849501694310673507665314958189962563680493760148057360567292047102682136706484192015279862993092235285036934412538240292879315576691845743327508398628339822602023879655692022803657658099395187082547512966977832944479484461136202301965937605817163613833931434432530468955874957158765346438155361614638572312404315015281852911556988383857982472573598235115228748319442701037272587062230118659077493650424976624279315754538871892829261249888194270968736431835981689216096741780010938805179876603193399672439062942423612180917989294562359127405158473662128442355814715174558261053386453749236785621209601575690074985412871869142680543085978652567094872238075569723658327347431222160443226528539777966655368690184904523411194352932183533283802041667580077284905491283578670289603511097865259557962983759759817201832065949204624056181825529784497162557742445241054925830542235607591796503846381757884160781673544671484623771382621899113880891358412511304078106728901603524690369694449297507057704484689849741155662305877595123747178402601487022014146601938760347096754553337697999671570073458417914970743371657167320636051224067695424970755248039984301781539460002385772941797917322708639003588595416685154071331381735478863437149226958319254433146602789411770717979781407923541200600096921243241800440764192307988197976047532352676861214886491121612863847056137773280335990107673186220209561434095682424920608012374051524356779501398151701434345693366009030373570009097026602057631809425199796288575117192845315134012639874900451486853701558444215233319703828963023572256774279401353524349323080111527857199905500215787967785885027372614804818436544779793927393539216778470139355460061597873277686702434748645350236780805973699972733648546578494583063909240706524600372247365536745328796409492847588194444749975983679029420234674125401279613585568336094107073928734924618795361157678451224632870428704595132453229357712231055773357619452677012739204233980681881426185511313599322948525279624783765474104946630990513346888978476416977487030893323479157057121451034130064377479732031632939088923681534178485604872349602112940826455321020776581420644458178868915281334421068655867987789289831179120770622660337712472888420876530977725908350214648568058689404500727051326669264955210785356260883860328398892810575234716558875076787082431751808388329264184057312658989272687240567993011652900629393800571913119295271422585769028493482607016513085309115823070400098711383369584649690978563125179002684962742722140360465454365404077412222101754572426008761252921355071051665877226331164748759923929425569777185749171629512870964054569539198907293105038905863190716501714307399606937160461099316612937336326911253579602438419598596708486430287470003429018496262203500995171977599955195589698567813050380334511354121079111425359422481376062920239232630846730020797190841034743513825130897628483941701956545482279424738907200951984435144344001390558068964491041240352349260945192293873379638692122208024653455874072088499781260181429578337560927563593447528547503327796475546645473355661165716097359107844783552287525943974254311881440037882719697594685741118654282987405342137860262465336355576368417249415221684140665577219229114519608561386554309452849194301496803464030128925184252141145234350698587015439692730286750971674997035364696710067240831960401283596320053755478752850603312587743541077241957766505972648577503493839155693069438930703171369131619873978257987169579883054316441829225265437328124960903099121990437235882767339765935119170423837516170824178995304354343634256020964611037176578909486164181273734049356930130271111801769027686479045569083326733777779798861787686524437547053228818830147536641876794721755437713595156184394978695409309901322183390111541336020000195145882717503280996510589612444881264930927425343556131285268859336231186272165591319452421009748732071723250646222207483627660620012215305386947138074376040309556232929528076109352673057153882872314536180515697936071141991358302671969853475750345156514169339731643148127319391408627081552396323471079684066079419396615829070461772908155476134199463762072935366127848260650728727421202062595515935232517597509848433670446720898016426620425207851992107210645449540004538424229730747169579669481303430652618806304997906744695246444836967012646540049412416874555872702002521164171877350710087808866832378908261668424530180534106750578507166217303650028053587837917918525865032959508271139472756686314359280718298765724471056911714552566522165518270226961259759771913243233010450673127214226563975442359686554866695462587836145594369612156090728248427220061309806897656269653541834335722447759705656075796923084625983517501066526410992419141233405815756122621468298631301832144124770377997473226076726488108110124798735690403415697621303731321677014439272881318112414432036999538775931524401445210330014157437450973243142569511281101875771037371749514298084086340829745228050115888404877316867062653555789573616697530694276348443118498872988679251325272478076873422690195214393486956227897587312587597399006807390166751442834811848340384693155858593593266804907340672402692675014350439938065094659567880926762756035095543628813501833028206650209685237713446235393070872694517718221088868945491097043096541567901637336705037396660810329919915311330624692012524109018345663878115294305931529204293081849067227176571783379315253957890241914913388320013868376841608974057747853909240849637074082136560805049731394610997128277270900965327343509511656001179684902545705605338004480375573690377313355986972097701874507636885883671110608019056902501937898838829949493575508912837331633186508653696513874662320609041856312491561788865250871433563002750607318330349598358368998075637620329164634831197216997716102168171222300829799394928007891630209124901617439841864882570601412079123790746986010204620796542494504006186677610676158724364038109293800896588890223930826150015966173476554827517323975778243149352124753793031374499350419613458510303915670957220255419332380328982016123684876415176566469571020518341839248429545118986740863571823857236755181136576277452160473966493624330634017394285941553323061432903100173400419396324484303747741157096702063700077043420052676549502669968879973501850061834937092009576407435500261594865661466585944813251477186447389711519269074284527075325508271028049543413555918946422027047002360297089623251852749189205717437438004251726292210872166074553627904892521852310137645455220306308757639780798698227358572091425050681280379356309871422167341744710153718731610019273693859271505817756696965451420618538946584164017918796398521418207459762265709796670725787210468314850533201044740637770185212993057483324689268094466842383306261800602588879511458683800111601927619064394147724103555331207195840312310806105015800812046041905408582779169494289362844186693577044198728574874831146279023632236065286516910842961722424538491862637873351729217121333067142188944327767470265378588813540463884791581380470161609752961297148156284435805480975427559140715769615752568855636835294345745209195855701704761914655427263672107354499923510005413806644567331826169539253747466868096944796240023799225976013628776648023172023322778173543073919604838307973973696065409587969794440462686250489735974200074471623822911685185259391163242088520335162688105216266092907776279046338782386914483299620448918634423303567388633175931139955613272464735109034172928735644521086169300175057650642335771162134808643286167335845388729792498183827230918942588384015973213633599694947485500138843736128279240599325218951328415893456194545640100859133505942879671331999519466722559510745540797193939206281168759567072213874765154708320015767082286245642986447820349261299854051665131763511433874008583489567017124306032888117353498355347821208164097510928420224836862668920507865823144733416169058543126019670942806725100591903945057880541737357909684795206699188883062333078713365666360641794142304243883311189044207402347582484175854655295675690195157385241208212529244934809749326018716045018298745189625826582240624772088601581697306466870074110389262603946136070184686762198379926912595241573005178154191757347363506381917500877217015198738639467260384658177549598090883832252627718698108425388626991728427262470869174581208912173865069295713225774213900306043105327188521869343732443855664849213432803924360901900529731375714620517607246652263726938078542121415483709436332372023718457796814569736416207565476002405758891719536621817543156745568343296818730063726469948632308018545030172226904499823261800715023673001301580377748283235999728695266708367329248194691386988470328264455408165509348918136025429982524044692290664677931220257628055971531778254790153434119039552601055162725956857416655109745887185822971739312181222520026792032971813511797082713650528101104487860835826157087375602642566104201690379057708946794906816050606309419895063970345380105531170630548118712816942537122421644738026475812276541240280033881027153511830514464745589458464769694595597068705907046712965464655759084848354992244753444956404552686298711804606822223383730758316045091317213446472464110852179204385708458924864912348118507466383310448380762804654717896315462904424035305676234223771708258312820593681188160118659021235850459533060685805638697586870707215271129863718553527478153107446810222352260180395897741034768460149093111468720723120177867371972365082745847868876929714305480328712815644915481078307948687761798816225104504969441392065917634153207262955857679970795890061706306597967379461173467491251871230610435380388159184542958862933594570468352408140881674499120290300209659076900803841265852184194174743257800881648344279537462955292060515160726663709570719513171045533559391751229307538621931631462610598466862734964740814828039726434975924310831631834795343739943074749948477291028387099711981695510459842754685737972656096729612630181583484196042861307472869228718268458786820399506932892364093211049972712676139837255677792248625984201518513619169290847289075984249570772301475203257487319158833032442517481600579426194888289391262286239397634416748703719529443950697053633337242214739586298783778664079948993698768011213524134912161258030988314148701312923027345373881432298512726824187306877342995805220168332211820956855580211298442098202811249048341097341890728508846724769958909394514774203761895764600633928111332304524854834828077431785094006891065225701091328047386227074457086206446282312250174522482160190133756011372771096164269363392945996259580581640938825818391682303229655158561995582252475323501568663778266917293540945036376110628144315888676557779086646883841905491183916942475818641321899030046070392195484885730857878693584806657939323430647783960314842629098326340346075424738144949191734233839137381577681993534836940602860364513247433547539026950862676882996317099673758843589061506466993939486098105600004198102872220824783818837384567902020591743843324425960530359087626874594117108544059074669532323432851605338666041894074762701720846422649790886642377940637454484886461467766594598472914229669706958646658132843156249546351924135997170425574848300865748193494346996379888300830866629819342174468893488664489786074697500833687876302908009483681770286011698877539269431046695506314327924071690200865146133986685483997369552894706236376770406489552958993540132595979489446964133418475222769861444962862121178721928238011705723868472788768299140318678932290385284984486616000205476613276552203289406521275314502948437616603385976794236344710623020647786555468930832498563399638918599315265909546566494114810285080822648517761969632485022439457671681814844413721920777657157228672229242073589844693277496301603162644676564810940526778343699614279271056007559185359835778732016796262729755742932473242560549524428336780123986252478825951688543893736947701686396828147147792693908267333652547019991437133168979861240276380694538049621039231670036367948264235786095834493775801307738667006953396667260123512933790111450192989965070112802631390237354230025622031835690818358724000139341926885446530660264645465075166643131412459104902579625404018724086092483381760493742982818839492434215668831859151573790253512161902223276195081154571682828691128944061073856845949675202840061880290419652100047023306524895050738261974266569573885672044030672711371273856259655223787206734573490520469426760358933904306190705636848694230406596756269182716078961336266179361343109274638454230331466621932385517156083692175026864728232869552698503938193685893132754707097959057684327909594051261230281906433700056986585149830791360246954260748364845020036886149975890844205677448147949767202066283584967410960038200853008419377197108767414643019471386527813926864835961197464351416291157892186424811627983898947957389679459247229201625513766662632148440685913383903628414356140900367844059775385338694053467201709600893187539148029441076899937901287366000259354273137976297433291707582953558896755157708214069264692898264226183983523817558043751535547236997041700204661402433776234826320894545814249185640793907836671620241000870864212578629883156346940131494408069151523723833344790496850511284092599690063489144447800895420938030474538263219543223128026792673475819796549640885194748281204434628474858117187228734864010907059374733847389282274099919853546653721079675971732456136060895244732036245651930976491776903424667141013321681211364488541898936398588060781547003948579875299391528580816790177591650850626888507508679388650455887537193618726268990186080955749769096377009615470176527211126022960404288845338309761674365781204750472171844589750397729363370267720587384163951683342582680597123254924989765323084582601162320518380597060770151106237726205612195972354016533330384082604056579037596737801163423367498675014434901705429568545570045488442885039436909130738382783877282415176058276449075893701233565214828247185661330405875268068130603439406965205047924979493867354581807671550647221462278954617125392134546087088617580518430406289039107004892077483102122340914657147979570902397808324307540972681137965537548733996536349822253849195988939577677380409137367739391683400227844447309090121904434071261365905519305386135169067422963248749101089179181628768029279326442419357396425141510747546798960028788765475404536497538965047622799261753298795971405357048238670559465414159940356337506739156900501208663024106807320320170930838788824499961981885389043805303897054649727607960635536845989106033512253882997912697739313397637097481162375472284021282318403318244684509402801440543858417008073324643058046997097923834003053717751258374081769525077724991110293567790324836042095945650009796257528359905397109689476049159906700268672429139911213077870337191683525908353752202813612033488741998665646738576082009261628295837557372146482364330823072963441397752202567486992763883825245067633391445258221923676937189421293512388571002760535068151776545805493113417655795427505702868962905768182047287532762769049521070946147013972663391938556024340442211336290836727875074506417342857819862004589131679127925800007296174266275089281847224762128480997361431208736172611345471366696064197663325185897926572069834606618039620123027051416329324669775380568002762661194693473477917330693677208131367729689868598442886991224032707459038066999800286434660799667191918284710775079075544719899626452831073364676737408098533708720464664651780684413746708197772933058776484694265306056875813946243285487449547484502520185971690108239951049054662013980065347303159888650537785570092193792064170570405095032621618768922217654391173614185945676426246515216350882045691835643334505848230123363425348646407251780410283232157588731405397065509415720609845952630518509685957435677555709318641252042320255432914028156198825881407230144224460668218832784978417768074228937352600577975869764422431580020981437046198572353408271889824774842203531986944091019220113225982260849243959195725419537899985345074379297939040206398499076061458277274520269948225451416766066074544574059221467106877803215590407933033042950844546288544221003280681095203689198825923015920464790533638778938771352324200724760360929513259541678608433350273826321908876593119148468571609933763221030061489574387120085223684567263909574158977542290131739246301342424079598814102335530056213771139366271299695246754018060149832416259986254042006784364150394182942628627075300026132609461698991517474885195398958207099162104988425812672997090420469527173856933331866557615968668562915754671857574262434628243917690955453313359354423270544971087906663308764465536401095522469030865123443309165583594574752332795150863581504556687593240822054579008651183534438615157592362865622420582179253703196458640769636371923509237059677238696002495224642875714490364357713962388266188315933255173390370105148846472042825455837576240100478292760697123014201582841501391495071765168504461564442157225242985903139797821553283876576757846341694074449909894577739259631053145757572089604169676290225315255954620452613744648960778441520027019544338655639937154759470192460910093339028711040883885068237941857006689582552693990247603182111515477022137548134164511337212137461894249780980814749578313607547994191808751208892723066912158117023799086611801229986810927708085040951219396711876575653103570962982677887251563160040045779347795095439765793711702320328012560321497129751735059794612263816925824441223430403406511020480935853532838282462998788486357828242102785980929103618595719155181157967592733692887839354568202488041109382135898908979648046030696014534468367445224341272338296669690325762138264282068001630769152484996396893659211633382708315557173031939612201689261053695066209601628620087993478979397844174114435558729506881734046705968012116860960490160508203969269514679722266340671544747253564160946047896549183657754300520536087179286620197310240970345924726018251020342906220587166061090759652113538242699620969011085776630501970313511032260098599359976229033533304964843951657085093586779496413931924903514788945908176272293156165532981464531632799210738845540096317422058827538754873649432059597695266289657377576719538166821876879902567019550318761253237723648631351509304139943398184934083588613577995731743772478350836095632569318111595161453441057260577118779853328647219425507552179450442402278617909526094066161064179059823896930247090220263957416388881420034550801132984002827040167011465680708983960683486322822546320799679221354082283640727343090707611160203517844110162245263578712975641777370796915783537552546773784029691858281200815157327494531806206584171860624233643055813535457147540743992378368084008251750233181056441159171020400430103070188203559706293515148083886521946197002194040936889228402974508826380100831783994865582113530568069547459770303004640069738013402981626643525817908553328361458954694998098581825047191689251789734571605168065497738212412045408449198847313429519043117059558961240208559420996005021942946216021299309803185813909951834381461732799606548933114206220681002244314969462746058100328363323184383057612188683370502843243731030803564044337083724725407115145610247862305104332140860933921440359947105116471452638128958079018423270152190035608898438250678800870552195255569732812660399976496783972121529630519750051195034951593219206950484742490761582630393510237170614686997416940986747284469391368616399027761735780144686394012613892911328534443883631108130576840781090456934396648336085023271637414231835671885951473229391091084528517581745913953720032340432016752389894691078084628033296851283423772830047598698296577883344242440424838828970363396532787424572765646700896735090195802785724060782759002552341118281136626127852014031598834672811685556481071705034185784598525108468666398055009216944528713183132787138609012456577289867392293952072946798926891879151774771238553809207107208150581765868716136357459453545289043312607206679114771288792701908899879323078812928012095328271121455015190769987185243496675957207302063155977275909667126400015974347059933604562582506740371412765465540452330839797955397309378601015086589462507876765545797631107602689179648600822759830426619415277685126576751727699808482900886536976176792890878652047611050989591011697160038066093261177391496786117770606620475301972110027959846080680983860165740642245804782749287702795100873907173654398674405725824403520550587878668422174898333544010904352561987465156860437465613060481392343465890527732785692345925082601723952014603323382452552571155430882824691846114785983988360323753470215680805615957404251714650620471187236999728161870725461514825032474661161851234245935636175774661611545926428233013075190009121983627562370321941506498327548326443245550227910559287768540442464542562162361905639047956795775370062064958282343400699147580744064944831419582307684815220664907699308954242321996116050885406297391786314447895669463478129475802097848263716769403858200991459139444178793998548333497050160488934717675605326628720702934082629984694801286087390204104686890930440237173770264052986102149873256574723728182588436871517556073363156165323232351317343340458007967888068128663785163446680519610385038597474793014642334881929097329840288500142883654213292298621735418933953964449367838656996334183328425794869223731371242907000755421424484861644132173792518742261581526815589208410365180640876641288671065673477624171997602624474055401265464772610435137311944017461995399434184024698656366430172004630538342555786501896039606814925499781783437408155631263804174991412593573479541897754615928664453389654326195740401945561224177352187638841198696156530834085763520221879852289814131446340919114730713999671562983137327650631788842740313618096397245222450098367726450854228582763947211804650732537966097364942050625513972090849720139241953958716330088580515401548952461281754566707529415430573278046581058204349197149263993893873326350431374512820757593474042663063750553462942044578980818009854131916345763530508613503750879710934639523066452080191173846607611111432011705334128014713413777240580816506258932453634450593267524150367041170361393106433471549681150170382204379635182399566637816096213552137150461872122669384592052792450197701497444167413749705983369970818283401446440236893076121340993027510897955578414468406454281725361884147886981338642591220994030044154762934356067135756573365308226013716947289269597621012310532081409517666609114356697495378242111296621616708734366694724102142860241317584509736799820511645622317058310488109731618665187089591159407534845542386968282908880352306450810419919811280153135570748499896260676563094634753518892234314667034645594405700504143776710102277308981860692197059996515946308956041177713162053893515544365600494660064183943657854043130306289349216438563026779097934196076948014798728034009619336181161034154869690982467815821485412204724871372467165971464963287419845106363082004315950823115261236795545032539254818921764670404338438496498964994591016877302846598111217122806318338651201168747368235784587946696339893652816036374497272276303224462533688015051541485129402880075546527396054884241938119773098139645625875934880338724485197823472280773504571996220510204636669217751408061850949925229857915069063938401535435609559476483434191983798744681146783566486376609575248073329209914393588749978688357679908764546996711494397377332094896492956429795534920922691191929590265727616546839001668320068448645241888336453936649521460767251972211233198910155635802449209351173133565144468441087373668295001397862296843632426173451509790476546064475349022520320865107411418331089214022930924749558147538163953371067900091569380008335682506038141117329880191223926187017614389898529676014123030997045880994799890620597623465289947635235080024099741262854961285922410721157555491532251170221716918069044407952279569456442102415365251104540489883650112563207903510682590543558384660063542947750955100144966001298098847602498805710765659249933614965867076252158479365404136671623981044337627986802070111229021537341999889892214008143269912419018545237215025938244387467336719383063613785807309330870171766390005202066097568117466033990768395821116100047290254442374809968175717240465607086635149143734263930957581910630890764079067340958618484265088181562807929804864396042847824678967441280957216127397055054477389403272164909568561453013752130708205035219675075904219582453724718337241965455360867202607955039997945030781947414728095589483139695987673212769657566414869109150467171710678531298850196090565671793442161893699471982090038106310632877283119404651136423353878270556559516808554406076968058862543824849920530118659717716788205378178483766666704620069588406935460497990419040431908634452181529646089825784702220151668441121590509667413571480613350812525412755385139087423477806265792642968417097062838650123772702329741946331836844106109596849347303650375850337113062644273049773958258891004180763272876249989886934601556878003413138830952684278231567693823223579952680502718203675406831468507444065856542609180375198335781544680817978342611862809474569772723367896527872105665227843987115843992517220345868446029198532252503593262083022643398650518854740912420539350433237473417874218665748797463665154524754777345159675682255743324297967983536550851183635421179321351578510855462452697108140462854621188744204177246499290581459651115298118398519036862046311814999731396611969960820388511356157866399143597901691279463822429079814178994655763877798165691042772581082237612122638537338619061381989093572355242693415930380549954140729365393340951984318197112675533793375104381633911220389267512318190129244827922720563573674636282446801033627537846861724420992209454379420474960121529705189038171132565050620810112917239889763080985767866108420728185114659682369318237856450846460170150481288736094684394895408130045671753453193700055327886645676104335406261293689419349724260479643174967581961448338383971188722243127152810512992298149749437880620960822713431436454376954270399868807822911627797000418163066754176244803468433294334406980421568827889853789894785695751458886650825875679487707887199300139703301617467677709411447442970939320029348637050587940341183278868173838258232815353821703302402421010970432283701796095667106735824601550082374682773808480047534779113489775775300219977359325988539875558684276451657224606413754105123952472151381297730697912243775429816149241929740841474342847436979734421820330197812831613631474238947226413332158234211224343916880093079173486875109657793420400396245830497956900165784128814890524007330592814387160088281192192650840851222630062227025942479162295922117302813247834930461637944152826980200046545270964077185692863060940462404566936586830097161022001285880050628860959020434155313667557216866852245366244616271802800373493326510321316195383249318777336821696571536113587681261499322512778866543496663788503111873291178139897740158977123230831019614567729449934331059184161565392670470112946155134333812633861213990612329721822302386171847846385658442359958610343644882332248216998023313941824914356701231743126447601403478882393231439961744396440822881093203112871554609849016922538504851714528605400022795497047495577879345414000685850309897853729099740082416550209590727082988990789155892680568913398854996922166559389373375841060816984782290798849076250305759223193224935563015297748963148796838513635305528602053130879072031460532535358839243977429269552670121377589944018195912627465604167676846442659706061104424913351070980261015217019092489169268969928552525927486397440338307575115141963701793933950517822175864228043229739553562547944762481164387805527183946006843330682093712376486953901999342883525647772069368078193839939792313428922068771671901319761121812803342210968620307449369854093374821289704038004175083412241785630340767910701639242046512131091338357849970751008579266352304488180884922706076151835598221427708026909914194571765813424923435809020433745197042325100250875976432650602636757557505379808142511443326245203127664131435017770291305275213230560072351815584338961604620481006508797470435040462495156851357457457584155512332557253471980693212210917425421012643377247883840834113553718849628828927357838643630048980844632352018653173457445590769716056979458103931459746898697365399221469263826116642934080149930192743487003907584217638254102776176510619732904808265180358434839086322286626303786931154044074471843630570712994623358086779093596942452745694050833319845641733156586244121521511567254010008319299618118145462035773645594892965639591927960689728991563658853002292858979247058769297758015518954173807882340388580267688275625920331749025183935279381237603609293187406208583169508004973976627629195845160253184788829091360989172138642124540820251950911288005984145764349685593945014046932796579662957343223018004093967537652970020764843897783919268864301254367097219714262353189844546274131184621382841453995930981989968748285708254803283853647920652964877692390404787623596704930798075611199152489811784232691046367194034754506758187265391112929252117032701766907137964839165504028844204523884163687426051307521230217448668120904951887709931134680595069933480812957039056986732120353853019236528222199165122089600160214963989012685187821041497512479492916833026339951357505702495213084946444516543990702535947559208050304455987708394118053177170891043458737143636751314021928716888141927410892417910282391220192938902565086586993008279026414587700022749671700524989988604090890758734340305305301164867302700064938294410727820737534723549976452236303197337366912244995450603225443052697927452333681495745212694433708583129309349331895593549352668130429980676696680381100674742029643516564890389340091799218935185851278934147245918413499466166322464251158316442098762958881098021831943639947750211948418811854363221396620111758710027695352531473651091292923449157431566807906995424923391362344685002666002846560611293356455267584374208340979173234401144682438588840277451337028819650238276776210479068784521811566208416774797877877526017431594656282106135177462902940634238172242399034013202417896840615394107920975048391615225225557789011330305183850168573172368646301492085433673828022255269323129712620340344823650169675899567026776180114943413640390252700167867844100527744091241234613672706232101820539181273958905348432387966945784531674252150793132732759739872419869802497279950311565028250246262596881923651010465165043780307456135494477346503463388824261228968329763579998611925511106169773607131934112287140203870411130155498722599735981884412948364479708695156748938509730894157112645318701154491596718179436430194390502145280535333700917317460813061162212097802876064294183799587524373745904197403082756522388707032117335548047384786110982412972185000498404091628024200157123573652527239677856650285270776553691456109193792543018725285985027913313474458061422580042731073596196494429661166840817147221146795988879785540844214213515526250969532769627188500540729212753438854774981879353941175417262463188153589039456535965821441829690133293114516870764649696732831722238843519837899983721661653253870162197431955537731968763056914153128672753564901695500750702165383495834990512031711974365011700682234312197137320734414134575431811511153126081010002952562825303337094666307473598839673180797448813975624486768637075668952570487106809683279101446199741786300941314586965952858545001952357218799583771319635461894729936674025826254798299371806807822486469128569199900241625238834686554076993281806918959509990083270955768553004519849259841493205046284152469939282048750218984612367461072071912077812448093765792998689619274729412715104550070182423466147822205966710934000688214799337737893678501960440610312420050557734705826130225553325326234843002811674486051889861551424454813607118344603205720492960587006281199948066469038260870904866791467518135034723587580701338706677092489641315412621032637989721715120461898308922344731216969653069104592694300252721667937994363930932587063371592822485914832057616583192109174426199302941660391628970498543233605298960722543357707596984796515527245019835905817592232625392865593770121826007928162225067137078999555768482158991861333078245024309587047392792317466474572655296550497903118807882734637285753152630316015809783607750128060456998219095019093678378853690747341963149325671742125383749230466013554949944233199854420307109322883177416592824155512596572945317265149676313080486327679782356442589866742879485008409566094635840301179164642393664533018068313919990718894830041357017533485407776585284618683861925757466574644950717081061262762667557133683245449522828167898906437355007695817484953098842016944084052482527362207194067843702083788517189517507152959571234516025733387847912992361297746713642817434933100513560198003070987790416752270118896194220867184311629178060715338202095805994561611647057681923367196778861377589527740232621566113152672121507041488018268232364571482583692190256534306129837976730310435408688458278721083972266694244294505042942074896720923602705662858297163902753116238423923018849580323449067586973234982092916249931710473464987448575798202065710103777003725662768510737002839840801561567776772331651673251921468329866552660810918424760741250927484385437527172814649053173254361480611200346767423298862744122916864353818653823879901019109526030393330615932496124777856515706858394355399146002321667342448978597625418209204272888948693726999009342301578415728964715999215086198959029003292502612527262385571759321780719809209772619228753442417255795922156128372605188902793904770671964153899739184640625174577202348551645616215926533795336322456377459079083292390490968998147273175892000503739875640254092027095211492848639730738171406212528378741671764711050210673127936608368484168709801268561017969958253193863812098298573816017958511029675509618737001953199360795586315958132568392012690802172265345274518139848525921046365947556396444371003550225208573930280592478476356611706587689277940622481686731657762257123869002360174291131908811123812000541803377743621414516854713038651959242378284290325775376061037727814644864553876633804270625704301563935605314940646828174991010773080962206579730762476168530074612519141424088900183502354113303420804903746363267149461889452290358730700442847777210635105094073986345033959728037702523204819012571195419633780398438025400699651490210218263270175432829716786558813170001055106527709323225238432643724574764549603619175513971023153381513014520291339420343008785413632227374229218948704034422357593046631854348376739556138489376462563697211287261388007088323935544446603883308545574946382881889678453897137488956638858799721993443569369354049402520608880954501542128949231205107639136624225987284949089015266968226647370047821475822213931920076092042233763306092917878845954136084240138114097929279769259332067888094916850081936198998973527423319291556152078237330570017935949471961996670728414806893819539955779753307646657576846760016360891097993833206576483989272950612227896063037687873423097230286903991033710287422927872453096041573190315123808046641790082457768015548859540816709283725828193280655497506304097950287081909964223947417715683040077064979749614346330726149425849182018849786282900285083274660211869881092593067188520724875594464458219038472207188244748525309325980187796580939077097483655360499750537753086941435905463515008391225727923626394194646535060077279594745959794132553524271309949475500861663943392313351451000034029210176175327534383646341846155387997758757101437185643032525167395413739065128748506937903319416747937261421028217630927623041171569616614957042144549188132267037904091941236879676718928265925363384051811214595577672761220459732794327084440269941392306165551927336222101454597138506236979132449958709521610770274704905190132437093118666294579537050130007941568241757340103959659869921774622474809152810210294867909613364909438814637368548093688114737245461366916607305571368843463223695123484202848374164985052882190928892431060489278376530325367593635398538519196355299291951581140522361186044134481568385719717315945642427984824768398680661548147901440538264161706543798982550316862487259809659570019711474750243036204065539583719059899025810574361872559468196762236428079599436080032314388090843966106546193929584104638788305398764424569592552801682629073339946449028596910451773898031812944320055651184096009456305891938809548663202460821035304988618342359144390205477610783954387558424104125682516699140570197239858581988548687037225136629199371711171234770495632481930334885837893759997691622263100120793344067403843032965323949063653863558271868355469333258759031540826638848949245715360006136136094530962844737142301704976966553683452147208358924632347089512476186408025550691895501580243075635529683995248862572784478553770805452731175983008675398181571067780197718197161160558670072152881357767432072588961469897593891984916518066865203320025217092995007648955477416001869661319151585860010298186197004492560982801206280916109770741850991448228154118928321620721055139726471887377051992632797583699351444550008379417121633097269696646170420552229219344551583447985956606499091710109342687784792285059776295038491400425027480167904819565409178153351546651874429197741866159456003013363887497031251940920215117761657987155127238837419954405714747390772747872588258497632411492093189851675249302964100813791756930154304916919113675508271964919334515760781891532713070380277652398320859484054165621840907046891235494485940722212545436804976993388661862167685477276907192979466177850723519067647109344912765787348552177395648784016762341149069322291715308479892407904549492417925788074751297493096908030012501856243364658173395515628656713092379984296681054540180620410848093386468071049122519868529406134444710583323809223771220833156198199695493677171179922557237553654582698591528135722558963528749417715307225673052142128107959263641014915203832834485120923866945678082249337931602664080003748817795483312701329047931161337359952645666188733211193528763461603124399647541115221599042480042841426966531911979486494808089808093016076375992743197231393202167219382958029556822577510915627154493555202520911739797124193116170572769370531830954306855970363854886007150356397719060187808766381233803123549980103472524604191731248912834483367157972660615912485495031710593896894241990581951806114166615770783496692737538610952487397451070904642755013398122422811881972143321324918832436369675311254057035427011778342036189367999605844483441173820992698175944235770728470669297464727056212873147189098074616251471467823132439297216457992869705380378765419103414509784461562744724934882415799609170986235029915806831776751182843608315593390164439288168160752221698624281223694371399840744075236354047485885560027447020733260462711216659381272462761752904171057976990867584137345871326297713697054438538762480675021787924414488306308967802777372865515001742354157091606674456593049247344107623847336821735771766241071774587715727542154467626338905943886517369428155410719946590181845095037097708314886717308949054114111884425431270646683224880700580505806773644855629176242032078269941399725894582502216192066110417569534382085138953644990042673362295160634488136916642948072232730237309433657735604507390965310167808801026743715676801865430271342061428101808197870159057443348049654557973963974431413048608894184563105657371467001992613021075735271785117194512649444305262916700590526830310316907982930545255118127378045245758260374257245725693696209716340163663634307344712026761702552356151182439035505294704353897230437107351161593005323052219155646235116555316661117266353284303590863365289912648674261216230102420051390225586226039263597455091436296828775830658481329660465572067275577892495040965080599242474655141560960888102253801892915249398408285069081220120576182325864575066999960868989209658394845380133178709720866787755086869198092717399099501332795544851354686460397707116080088039990817081101689388859066087319797945700276773777559616952943017823663563806685833026102030763536692195794576808288324585109591219010503572937958716167211943993289976548465688056455230840413483771510064890522392658123733372644157071572141121134677538324038658845920749898969429223963076606814559981940752039086105288204696011750291398898232022437319834585379251779207926560710690373894395162989264214009713640309516712021760344711045078801070058641030446936384247274188470545128850716529631131138779194022328725031206849856302645921758452801613683906105752348867031513275606484951688738765244717538164225441928817824546127180828765044530257684980668198170993350994115304821455938912947403233871270967181917625831664276392130531017410682522827127430406427622608458108105267751479552900503501118152627780917135825682649606173980205151740071072882577403816806231172223816060468498258795457232985242305371497831702753347296079055829934855199647472531873204726254674793572321512037111093177260109597259138317661862338754349491988379201187492460502621508882659314244611413120260756055568913434593578256895342766882060236298136748142643892510392120396219085807598067982681349353407927760587420109858513329301954624876312802244262431297007176253004164159177805632542726503456725998433283999718971890680190672589145496114509124071047180802857709210252506426539129749257075717113920471433297785546480715505236438176278988340080584353737125050237655671391621293826613123223205267687368048387450652971859206024406589212913553618290780744582247699605487681498031510094978420868303702419903553221282011203430907274592788839482496590742506750658785631876554628373155046762139133268682177815233110319111476838244479267370711777521808823850842279830074434183805492389334974997561492418988057783846889103269037209277331645279816676064993286477365546075892066523044693066596956283005159521070993589652636851616675637232768329918690132402061960858912422213152851042603676126147200843956285093033341319005177193003295162608025688653390268156097587197496570905129144739648310999015273531480930836178504898612636735386081926211697633758239835856712028895540622546699479257882969406944374784466592448471687425726547529315740273523146202658144357988518952817512704455552149494940122173196394385624995642268350909658718972159437145840494531279266320710430686851531773385098296213966069828662756325727540735686722907401082748566743151189311213329252169655594803477523875519725883533837774477613777475146848188767425922656422406488825194817296188657602353808472852026779889945981499795556645302026034810786267610269598562734965396169938747598858825591491947943680620929676663759784666507464972809329569039906503421391709666618964922528196413294117121045954031512223626403452895289787123614003844846192018770419063616776665075835964632780212168828928464833021088113904001117434294238000199483591965212211530137633814731806855155549812578441408663549354787285348889120810739469914938587133779712460217331816357274667005970728995193556416613458710116224339873334445465841809764236520212226335003131112615772389461263123753047549768676556547056243552300783904552114397048424591365867791631938008965849429604889661186463654732047634086033551204237325937003386262438805353301999385803774106717484750282214961989261966561006283487279656122958834743539644433364903421731067828801491074205194737194769930564755439402560540711655042354979388271057368277798689868252587114108784242359188364232990697754716590284585562617524219678542191215485910133669732350330783907129412830651472345127262169266183722418826660095674530757227709413759989104919473868985803195703686982928091287486849318141691094786788770577568163068097276975034123427701298053912395875611356573856556555387107169243683825083561170072871299806404466218693519760603676554344267791039874946596477858478972560657935362896028591037351519401261949741595139602793904893115677701815713510150807779116220282929073545211194086910219695588865850358870431348418020312266548887975503827130737038104695170114896359962959627300592552475611669007918969246222773150012365585725672007016833203457240886485293745128692689995773820678317771503733083757792869230576452735911162353512474584983317392354868791489899724168069102640791557754004810143070409925466416649361979382217637827879885327043643974243943439353398440439431812886605182595674075538870418255592811898267525709119254616076026936121795506549167841871320811680422707588865577703417806891574214342136668005533957579674072823890481522181947040996957872033283452239875337005071716460181530236063482016103970502573203338600589305053761383796333751238095782676787485158005935944718479204105342622752868862004676901021527405614131367764443613367609000864749550250879301896479064580379516986479996199204966753939455161391215279774525138560237265477542025302516688019272632163550635297813946529274981248972742842895331616810741107989618321464253451740923130306146982316089481140922646190931501032336079851223668037796773354162556181738112102074230641053397389978342807850426444556871682748336680690837681651807798644945308005749066962119396086209153520717535706480653301217331035742337777067110922751110219479309716343321952761185794756083360116740204953545007916064075196840219719119800020360692762083259912870444554893327124698275768948403054190879000738785142825164412115964323632582468875586515993216936578179112601180851454031437458893644323560256557693831522774020508975859333558913774146252548341144723776685986711915442846668572954355700224105728609199782462407470937167175801313658808992866457002558064274185224712895735485134844917211781693195315645100193723229578061893999185656418781041257090364473808784081587043829284530001496005939161410948095109152216163206363460609102534279810994722293128293355956410694911440511265800696621256952036757825375785350373128166301236666292086971251771713066691979510013863513529349982147127740647462864668382811194692913175921405864962210726592791582204477330648173439599006453581888549740062320417908845752982814186899830603225209333607630531655629982862301663696396082481261522005419793926344836947335180563865341716407235841219618626283726601253550890539969174145199587507082213224477517668009246790320771978149885291544363102224931354900093607832709613922783696027507913333527655123326131862539692701504942809601634318989129631449434098241995014799469983783303096036463496239552538383798062824787213723653659984758129727378860800642588998077634127680322362026993825398843945995276072099554072977698632048907063377898314729335990151882280269610988917617630844209788556343475755068269793341312233846872514419276776296223170648801259007378268978349068444947326168054812527613686760355782272395487010292706309320524555779663883764288920071175412083445768120232709159763433164831695041404721546156899260791015986774946533097898675164867458082193330196920712119101069824733442300877335457000813704326552759265465501178690284166489211623740983620304438670229733591323708522863947353392618495045313559724434279457671019521482532824064245252921951818482933082496373959331445141907875960922497954899155702799145191776621468274321043606885615542612013392705170073501124538217334202304239206175554165440328040122362875153958194831653156619333957579554238914369470594674244367494293814133282419152437116611605834752674898678576585007692506642148615786541275200302027453127026315120016431969176288515804515826327866726994617352792852907736225656604791677979967183699996330574605234489859808528458423652474705178509072826759338717318310458567765766568998287566719565323940260247038555561659988280600530161963717664203488666543889114580846173793674235590820800078609426733757071678902164276185995117029786306781768928226973575323678508775358642070809800878534470057747093606553620092778691057820632830149948639662448527063053926040527751879065583340285242270126121355063341010022166522142210065213978726225133908095791337155097101735038848037550644353286368263183724131321033362384802487413153515466199304443471948796483766613010742829106680798696575452748867664364603249208978536311081593817278138945658310434043983118839484954338171103064028602832669471288811521042499519799902101056471818301178581897417742506091954782894626384871732126285943590628657181179734343314419294054434198168809743840192478190529180301762038648172996806190549562945923000283348688336525607987481617277786557325042986964918930134503770089328994289295539785038600711555207456458972042514120262198891909123539152335982824325197660953464875251557499980064766411429074074163257493166143773319388731357486040729905648970479958708510940178251271788522927298060223129655113366029993903076774168288197456903791494534894789078261417543166372402805701979617101639130999396660906255448946247049309903131772775358114843720209153836668064168091238539638940226618201398591925272338482215599053773334578074451673033242788107690901843576398157996251622292468456124749461557999098570084978536012774228527980757116873196737303292247174512487038467751545216899295394528933497882406544131652215475290918008003380512137800279883787815674894013920302339898115947349561736870901422952197950577237074675266001403591709581113038326272191529328652736034602974636806468523299552078929821401698674110243912104595861833496845169895266625321650026965425863142983398543515012719804233361937086819931749150750595650848336151007560432482914346987906494766384130305582876814580593154599519866484473802408785909273329244074047905354257886088801429352485548276559486571783320554112428753609114739857010189657707342805764815417150431345665537878322324239493258037466428502214025066279392313653689222676406826993241942494774963696754650431547073330621277717741387633196298446293783272849348034909042315072593648894498358282620072293066856570393928588234473730494192682928080251214353036592284406748140716306301828834346291307198433427905182778256558426353497119464676688374169092290116569426598966194893136231310810100379423648891969491421995311409006591592445327152231336815605374785428302498351623455665606241865305460021162081661226462025884814008661023716026173640476836856352828102135189627819703499017746639732097715911832859670682363741402185306249940421963541936170103999683941728942209239857868505170205443935990355945906600316166483140346410134938070709445362796553833561402672056653159930133518893762539382608102120049125013722115849148366727376008829101028631843576703844630651715614534564964107686918429174993893668501946957637147076627498704039158180343165140259196767529864215160692284537177145605601162713323160485672408470694902084078010506590080577110553188824363127868926016436652352722607767510769566081080351489557994038236323042788469057155246787597882762745328252922212995002424327375302771759933067610293670487010603594551266099762193004134984125260286328227718167888459538426277522533494471079950703308564614271720733021535610397531680483611318787168734439796466321135283801276908124929756385221305596472585873926457886721519117954881509688193360379724387483110249140729512321600691076856402110611529799437144997250140766550251037329214556849313932806832167858000894003149761263030605421422069852064238376883836362906044804620326338716855490048302959765025840776181823404661772588605185725572818237759893823695026961633492242899779002772440518204509242158071458424147535212923293207174518307810490962877975405865469807628588244884072075581025008473564706100621147040429588208494935700240854775196314642074454168067823062493682833311228846915299527699089370398312568131259871925442093966715395987826761268579143686334488530862004851953209304288036042892309884818878979288739432605709598225493221380578606378390089173841860584040206252130022907581053351467802165384695659798305106262866626091911446323163311327950445203812520194284866234263322235754840011737295400924633336255373150651688246481740244453692110909136552508437386722594584440977416188917310193755583913472521217100906951369308975785458349971814466724403770503245130801841987987355275356046789227814422683804597977741201341227388216399996706750468131228102786219913703749607842359754141695890537484419675703614028970541758340368050156309219881699467234817248818371381188108415351993190895159483913304533901826665091502918961653189493892243818152930808236547844104145807808860053061536145921972818192354837305391346456531051002161062055798555810851975723938173966590159533887128746286005188456534723648976744779220724121157440439642510763009900962083428818222510655068921885285613077638551902535380861778394861562968880629201519372027055880586235613232634538488560891056136846357075693166231469025483765215755492742446718057289801622611219086544467669687098127102121550162661807457733965883525912929688612937353692890252246158272551025361478953981276604187738869628959066251975366076116056417375758156304750022432188869314950697191666312682634345882478428123579779133202004678809978530480306360220159907393659813231656145016021215368527901154796289242786937469540955801779111514828877194995309067758093065537334293324193739952116023288920442181707471216435721742568641572411502606484182008368694063568318360010054370260431885880808755459156544783226997694791422772704162344950656956996345171855381990402340062453067460418908269086547799429607624912337475042414928155849272851938720332607071786101797943839001374443182774338021716706447408233458257079018454054244889825432992345543928804576021428812380194188669269322991825068720650897574352275874316927231261400473502784249685829011944361463481883370050435391013446715004091856154977579896910629633954201176647352625900000193044886422285699691101692970353003202469935387349267556554869669482245367725913743531718386176560572501635241576319552116164175838379114486280084659065323213135055924097740149340670482141501986178803897286409749323195957594770376048804199592846638193015865883758835319969880763899621511079806246669666208977099889765776613858521757958551630870615281735428576642442562504171374818175734121632318349570807424044099448166116819017880394389392080821393003025573854740909277516212986323056467171747857306560921800370776033973150010990743219147500168613626223215970918647429015644700733344257184922233913024995787088713670563753480584106451832599539939391619763985871883721926183324719235251552194496515182982844544067168980503151328771831556206465312010260306889953227245412595963078940083640158629258039921760909326838450384056796480849983872237259588817495464270263339805330115183361851917096887671514643328629546951745198672907887678060245090609039891897938513349403263202713649390873856330224412793382375399756173032032391142785251493907029724688049584192604265135863100407270509627523341494151828169299830662028426987936116319488237054102627255392518495433594692380791683406435145503159535321682748834865163869030644911824315079995704401160883260951696862792847061716390983876229924954308796779851084903727627265010282581475972203639652203292469860758460715154212487190877404752509982472512282737431595782052040465664891643438591135033514627104838683718521846365680655036384342196144949280877499111449365607482194800869395215437804581145971625027943569042527771172303776785201172516650968840917772101080775546603037898681411859156811801466155453020096982748692158982862943348598583990926049443838248073682791974612107265375595284836613484766613723554326477664285641338650815511370900763037937581595589862864073093753488137055267638472068854680924978852202844818178740296880220098050850899596006574642692785907809094992233926510545382846355015208245277028541215528505987015538103721179626863395772371827446049081966621445456372693100156903555133438623702908257340170770303601972500316276582493569387598381406317908285508954413640533501747442911938012243216924703221566381932441722364286720470037767992618899274805333822750810464286410347627297319396609137578647727577134247008304869860301314347204308963287627355413795805837225867173152361065580998441240751240257700217237075528572118797517159313026610311957609402634869174652584989561999560841923185830645618942086055715505824583711270430118023103542963366312030258277717783209245119755245796134037517143838351184513219715877248414503780711709850909097596452889236936039484756620107099913517402520959454962053302587475483667848286283779881684481598561292592178322677483995629908483365639678502795037181179083421686605074195371695555778066226646061582297832736561607336278333289940430757684240744609389245007508437984081177926395751062835697497536651890154217208730200680519731650692233597314919160877884737098343347816201120818795077249140388016987619032419680218283806401849281933367545130915638339451201294315125755590065915786440579934305241169982908480373606872254167952015463898424297996204415192599960982079889754206057358001466654023555672461052684121148704746572064095787098107595307518061198639422685343962633025654498400064841378653853921140679504224181967649543463817277000897134936806622147320824827598996366737791660818805515157945617541431027185522623469115775542201714496937756779927742013968550273908492347785319329581074756596869396482531534937099723762121034932890856664886780470532999866740861241710086867719276503902093021591478580609080831524626106857806874137003564938988121962308576722065357961968634484308748809265685849468356326341877323722536461125844867763677905247358835031403580226662575730345974172229793357913079580976973005770698859088935513233028468225910751464680528122612048810907148944011618271760235439175751820817910419890054961814573291764216914916302110639491009644798104576649521851119556617350590089551480326886318035930317581605606440892797225250390007788191291668903632504260808394752101896789109437836261627048648322433575277822501833855318961695135322359787116373482356693798485361095062185981026436013625673658190902173295468753667360554644384668177505153755854827311027852504915530254448369544010910201919577830521548839638079368900119627322563530319591763885309287723798793061556370694868163356662983792970115045107737626182923728679968077775417954342684284071044800426563918948747309932733883083877706341689991789598404985608885260334485379900115645056958333151922484272198904209832208859372674709053269698675529795171893991005294772673045371454414863933274335486950745190993364788784360766510346749594418761949645379464394934414723719680884366063036585848850787266339556005561465348663492220881598786257595625238594727939705162074746238092836037994481635437968605301459046804625249657705059594483876095095537005333717842230483104621025164630513314004767533276368550944334632647832679465492407421607533119785731438491936052221767348985840327458825018964957168422422490726986800501826125711018334745944608327648618902314035332906478402532166207517996535793837427915990972209569427290140790499386639382890228649908398666993690988325920905363880880922884273471311977454960484443909399254679291425092493372718260733215873650445567706383526213999718436696582206749328207390741796057293672916975778200234392062739367777260677887930712718571965126102092706443357849320707633969333335925485895725283533544025059692298296104257424594005437587949555688924361780792913734150755354256507607218869873129971962561641124783173997647204457482250110456467364809503571615197579738727835727034188872367166950542942950431379792862361520797897698965618541610930467583407193455380846796669185386205882108824341340279047551811209138836266043139763550290255560355692881275205280098162603201075337495651103490543716977605822046373194403808083086335615975003998778550736812357480540918662333147789653162869955014621485283794826192065375121406748805830679265242637821006570436321310981420857742972632390615940718304156681592042901260256015278411938011068427955752763923401382055580179959655964303187652731066737815697344366717641478410095693668353591370471540894551936736032689864337490253155200689495155985194761531108073394468981362027164591319243907476629125081378442153946241735769503097721256436653451413516154929419941167545883722253065305430971349477640470006138047768063326031430159178390138274516078337176715716784268662475418473994079886082790151970096296213051736947759136833185904012580264737047311233763629870184232701311648236174840794623024615572514779862167302686969747170886484255198687795744991978769478025482485435661727125562797139183765999497166963511341531212982848992544853998259091630225188948454683226724644630857032749377078231552593289732092352383371936637877364088841271960542742641510750027598768688758347785783984956228816378770566697879236492432221122393397278856786046900254685953586114477486176616414109810503041395531788418783945905412023901481792298006000428415150980807389273430892330866730508615364408409121186709700272033478938230340223120450069581832847014063015362984842090730262119403571546216495772778466123121378103112483363441927816743185170112387536066955987614360210736871982192702724867627667505494325836127852541388078192854079298481007797241003002461345296537381752342158042317809963621730606261130929954933292717352317794192174466109047103048413709505261941525305063262351113194221216081298645065291054877363799148642694661611125780097113306153982157412078345607461179590868683292800229371365500560697110051135111699824022205416797716960644993241936258032127938998700257310692945847425110739193816630704582332633799442141987298074882646853852964535180575472616899998725650422120963802803569366750068673303585535927169250471057827665885773681613435932325552708579726863902945369287912770912128996158095723802250798879255833010222610354351292782001296585161067760040574755403421393551599558029947070333830830968318068526686719786822767980987214632052192993781057822259793512025873470095549424387110265372994835962526788513909304814548075433836732894775512370075588207819250664375203440461859758707727231691859280247052046077409542681925952953930638455879767890950212820891252517082723311995248721288483752390258525933529077881599811454631012220666876925957411300958477667589788915928659517833469640738548471666815028805592327086082722777047330680649803571460607214414274579107617235183352015074435848368114765275568658742229554345559200163600774718849260215958450992525215172038592511564461585203086177385326593830074237868776952861062382929688843646751303900764403431890168467701732637152261115392894053677487157202483612010343872119969198627182646026234574753562328571853080406562399841581388608851487108778490403805876254641561955773098670033438564925246539504106512444748753829265133353491001337443348106785431803706431569478980086915713941004680763878250843419481990381209364634500547677374841410555115612932509861735944334644888553015974108515464875438178672946861305441845898991130362632148170750447770287768836315300038325432597712646993985869630585400825884004412796423964635664874403854678693892189668225877997616945846407952483033197481208743784226790203205153969845310134414097936574158706582507035209282217447300542923195995275047549543008429396712255900832730252083082338812584533281157087020615034289835198486423760316891545460729947166412220355293642306038943387049206978741155979326209611414187691835424912551555345655474125885826983233492355150058959306841996279376063954845758289879738925297224109908078920805342019559959417559363681083714296571189792407795933376004828756106944107509001139705745963822936570557075646693464610573611409533658891993030026277573941136439914178995918932611192118131595831987222126735115183913649634508174276754812561227900747959642381180912709520619911436838589050635575154610830174645677544937644564064653468273659693063810628924416800089950718962735830822747023831744401623861681867781922608229978586151830543346912526833679932242465673041329676549492433820853416056511806685771797074723378168742682152287870520215943842203067748576084404242419879117410306795607357211493549363607602109747462554858984901001871094512597686164846417622827093484832619188529029388448761880951512006899444126532825970968884376637128914085047720817915406428501805796391728160699373880040367228482522968212539570348369928650678006276469765703161712339028216306019077121981272266813468054025806956096024150084840544276004238411682149435594052151453771341525596636978154917159451473897203734638867971839992500579046116350502621383418696384079773525800700789526188118494326346009353714601567169741714907851404170263814647099773393175009640245750838181659455942900427735214944174886146861479377331716791858836328284095209415365760504960330096634480603512661794993042072245426305826120322935699139681721945238421931176292179841140819843280403507167506151853997405003838192626757992726846733711363996564216208769829928916168927926454589871222782904550711484747928250601407666093598219102062471124501229034645409443351896500621988848007379870732657202802717475511049996836886601847607580184319186532913135505840805536788452672731848510985963590659641690329931276754629198911868716456647825087519201746403549765353383695014830311673923450021609163571221475818887116660931742685520710970781639581193449528429164119126922506003064623076615697791420591346257269528959057877946381943750008245031203981643183127409160136264793745903503700632262624634732102617621872738335223336291397973160980263264881572164607219690572069063409172038532056677512889550040572157192288463982240218525632655773743334109776672617286867505978844506892114775854416731351376626758060527055047688744342959222834254919509030611969259166203194658673832421654948403061050311117335945803544359799768370794693081595372786417758000696426072150956502161285004154178621101134103913787807375081942072383325333592322541354251200597167114129925683527736667314856517797848743643335902278368696852088408209831035286830796137740263058994928342109605741291551550696951796165017868547280434766186788069813325610079846856467661153766374437400147335758888031765055649971903519885292136718302675059092096429709270898675473368619406499551136303583549340337878031176440373776922200915617844864142721818314414574125867503141876894763830079836006157493219233620991358215089008939013295749064900285036332290184275971954114111840794699890788956169151851389640109134263165872923088573930656216582116145135220768375574895448997380786651183496196847031275199446515799877781812504090554829172716957028875570100781322501495323934445962303700676951446390850138774486542830572907800494277471504853026793890156368916763639306648106836156771640479924004980900754803789271028350729862406958902188487341912263915623573703034918418014022941391924982413295687249498485385220035957126584491761939571870300870852200235794467224107814591775972263117600220047414090327195191336965529948662401857730033950485197504553158505831973460119864620897085245268624386079465371579199941263261341965905980186814833418125628967233070760278057964135286581583212130249800935891482739657368142416799737689162176955073705950884881225534691681975324008210130379945921131705982624576667389115837805991675986652338952124740389026696101569149353519304733284119817721683586121672027958077436905118116968251811294302340702389003356976324881533220028681730457913770396539943631053350254515036312224744024000173147219962359938839016189310892472373377361507892791431535297150612604584819515740206675327041053464136485299313723260354209567073962579424556509820113911399037679755389667913521705370595944444052409291747095834136495864134798476515996580938484122830776552262426168921791004145748986165854882067877794717517001106384478789087914120088709582059930650417523704897685855518585536876721005457034008370830373730027532031153196961021681086792426682720558604531638401206364683048922226132118292675997802813223535939405011636873073268824819517882637431801081531379866751813960100060362271944241810395321266458955028769672388927754187753682460120928336977976036684906984246864067995664104319174710093907629272268083335716983046470058679799668793819039680554485887594475158508877949525348297724899082849969801681025530368783971859669699518665217956159677400261534033641653923852625243539154792471845760828845999548164186044145718818490088398813248502066346230905996998233508604515260940488975549049408458869625781721607058165058451511683425707837112231234113452419880161780002503099629318071597315063143944987027717803667674203215805832777729497082751745390288781755970486654594632394165328144519167997144081160084314007354815247723149080402237686424348228923346453651359985659632487368615439840405917052274478429453369230489671014633409104676181580357691836244938145692617131944594217666280202518978601990551117622612895399406317062200930272337662651155213821932649198457684635790812688133108179499123122096216710933531654781079291441974053035452271394178896991702886901926321571455278908117193948085540405766862481617448435273616906770551226951813988885251123112516728853130009223646739728485699858527295813073931208443095153036892007492216543242248015810904459342191045980715128354318416902349547796968008135684651936968199819480179482677955818410376912963798278150928094804879460308410863666791972570725916356869029320940181342950089019438520170964646031464166967228560040231229751913469528502891413663885295453113712463594611969840051089872460105574928928187885926765128727927914832811571946517555564796221187251207827215201826731205929969028510416996547020132033282318736444011395562659065371175516130580346565004433194795984821212186819785059567335459185235840750093227098819812453738322800454869198878648974478485827460407800409923282748972296720609072948065207076588069653689756922414219340188982632473232267773354420093378536992524743968788450546035830624330411657785748050980057283661704652401772994406495048193154693285706320265738159226773552434684482769864442941803473846941228141600424083868511618745597771210371150190229575297311718163956516861356885074099628740748882742108626781144880672635283460238573561414729724739513241895629605834213675228856070813439137453479890405082928181589595856096050381495931544470549812021285396368599983462919563190308707822863654038552851832746631975305838277700893074578344321124763260869353249328681555572971826393409449777742535479014708442401066675698200700906801232042063500003183443079102725916512456076231836110463303930063044593452341174677186644863302631855896636203986308732843603016682087824864953371668803890521352923457621213288824498651096205570928922301759783647168070143051910121896374353407293904779372091197644966069594507251289542160261368670001655861018968570063397281294159884449599552728318638294090108610691620599656830830198106815967339187751104765856807673791619461791895500171829821702056497690757473505242480948280547281259230963554356968445389881830418768563353284342284292557496886149743694081801214772483659913309332228084069855962795350019634239629310185175272522159341747722000247465738449433554644249904180781968128454595553287413747938654054970257776909177067861402346095965426054033751134160320122735290249370160566989164647664153865007513937583359634023580164635668487326322678978045333982318558262559324046787962326416617377674735779259428866255251115418845733666893649820609507496080500853601476980659686552785048420747890855797006582136483453288296600929583011805171472037758895700986992128401570105870676407345811580642336745541645810646788534996494655444693604575739654876193584556398617328584013916634150697055334479005675847354263447304338863787748135538934833797391148053980342168547816409062948901953258982353577604512519662537142132465130080587014987060638079086617006478644884424668771266205100243184309501907463509417592495188515754745254978577552942507154289634252930039707403608434550676062175344074897952478688535512733701555175385272672179198680946818987110045682466214453453649117006492465992395928313981668070316321427849789436843793333268971849622993868360448566381576174655235652486012976725688889659295274571011664939176934515855809631074344508049190262260356307436616222375677857226513857030742986167844331741485248180556774510280512619897088987233328590914874619858803887004099416183901398277919478992947914592568792625478351053076387077370354804915977494258568970228454236108669043459995946857927587833815212461759961767825679761895731793421765079229823551570986320138190618898896292193235923372358421119006153444741083435741199099907960748163989081360620870734164542680438696243622802064463222013188638625973497798163639097275412989226744919623366843184970393704292026573728694940396496035325203660332390203716170384399920781612296981329883203878424698213370947411023829647792738106253124212726593311365361242587258538933853735394115092868524809941445614262184938554738873012281436048258804456264504420181559528213887841209946382154913103712588042211145140749768660358385180072844101615231129737815690303939414833933972507353427129672612034456850051911718448589471077658625191581659001767526392853601947682438069361634671262839228935708682695274080629059125139341712515904400338368447384079184660336803004677038414234688261566745440709664846650727419812839175883902416184025825812876515730020339706569669660059435399741174078573181268961001839484292820561799638559631581902182314816904132818559674875458653026574848497079621365438555916680637292373169406488204344358350897735273563341899754977103027528918202408392108306482707393819813712753110171489471506918912991184263766241844437120201398739383592826585850071004452769135880859205308138685544029344507776344830345277731026626455138734467368225057965726498543979728515562259449708443175558341951484359304315968921942391464407097425133815114511027008275458097395573577218914937313263195853829668908963004994124962364204345811425293794151071027628000560099407904001608675582931509153628396111104763398102878314591919324941393586791780769649194761748637136671919191644297399117401986104936332593124097918399794281165889457086350519929765362574825512548435692149853438020760707954484848711256501808619237137438326323518956187232673935921278961281939713037608030646145480952247328676628776802834672282970885025938076485470543091156970700661087189752602932659133868738993269530106698257214089156005857062865323842150986924920105902837471070633828409661050206852884859785411560700647366173420282611010852169968003843308501382467687217627038205162786167854615392953153027914720936323841194979025456357127776575376632335508489421079112450211350098845332767292282063599768049589047778083682644066039095933527384054709787845492377021193996543263669823696822867311151803723215158241330070266681488653945157018811635345980312277923204111643844850702223469299005634714695418046373033589722673913712651848359445667801791377858306409340152561845134319514473407110642710251108345801383725589106966048378855595889792105106545671810242209292279757527345945864927060036449310696080627993473071007185756326813542424610876532379003967744972227191484587514245005410882660617927436338074306753611521275044733338221425512100234192821118105230184394066677713940494103998703358558594239042475162350495028013987888620370411961606647898029423093828989527135027525419417587479445783686609732142978523906762935556225605166443864647945170762267562632570120648611302948317149960737485730876422462766305745227372016450937976078793057643775010150518850042930725936673119369781151262475550846216587311697018746241528568542292862136588003823619795870721513697446996982401165606073017328104468773383286953746493656366191418721468034584314932983762090138588723939435126160908649065514959512697141447704232495769644053828397799005170690998826018430499489190940128084721384500575670639961217184610010605054255803431745947678551484589076619325263230636928167242631683117763386466208274103614055014804787969375265245628124001245716406134399721005234297139969308313958985567239218466993126810796555997316395739828871227274333724871320801285580296933358844087436577283263943217285357288575508511304978450055131292045371896890761993934135134517508366782077693655530798000883412651226705036087898645403387243674465202897474737444309201100573658322629752185424472281872936783779340165673760416599472749049114051700035089807147213847261146934035934130320747876683005956013585337885054114702641049878562580804525663921452563650715931868435911179640506692815910992205543846944832188251558816386428387850252691877896698025148242441845566891158098833774137954222552587591772632442384634236962313807747299164244500849250763704679152098730177986224751106751695653524910840526642028311918327470300833109427235771569075008226031195492474067357220129458713222126521520703040227009783046598041998465236255715339651758533543531143009189958776453976803195618747775151274618253935403468966641353657534213804862253879835379595678713542380862959700295181633304462234631863152750932872478144492499876100537171207932269135807135087630673424707113656834153399259780551055197902018212112859615606246696545020673446980685151616770759042967260130639909270380222699964385725369901732297754259106805654671915012473363971436992501955637380338709508060722941185441220846762151912055768032446624441608227783774315129144177146517463715106415401150420436197911110346901759068106853121249254414600609939888093097656624640241642534284904407154954973431080094900153691671918946297694713625252319708694079686269797864755412494520947109771956116838564536513123948674327518570058446666451065719238774926216858880727490647387231896521979116633573917433357151239141897031063064095636236183817658155555561338944633637144935992990713951544633182378195255295805496152585873969538225100270839732817494553132350499325972711003181676280063671848780969117942960008750166020501972091127783775451338830863897121258730677198100836319643072392352057764011921938176260487660896808386410277650402789298710969821684311497622244779786851187014445204280778336398741828016084848057627709872812500821249067135541202573591654932403423080805088403259051300615986651314609535477548507327188053578470423861266870697028064097936500231499649169331021301937522776607867106835181201252081868426561853114139642048459063968010067778596004241280242421187562963425203630882250154005265500371221047577812630478025084695749620825535638574126145313304619397541943760004299432429976273561547999286621565211676283847488079796161273511538014254731093014272358558668408335895009106380200495703746260841058675171748705737777890127063327080404340376445047759253408748830184115913241994290164075763658677966711996075673813743384345960489295872711686517057338518793918407486814589977466132794467755415634812191329607642672268256506031804104668819971875198707017214549465818883214445236830729345353004339394114080604716797431871295442763482373027658604626919900379919777557458398161925135084073987174547391031281478011655297537791457745657949325491282918241430232856539867413832849043473713945890286336778870822370609584520382586753381861795148741514196746144520972365948257694093766177260927776364503345001725557979762538024257547572222425931040380209721244628984251189104234223821995345192083129659105460677940080117509040608964858569405117558104929916723720329337459689872931762131737623172004463682846874092735707990594003786615072215980321968557653482201067494036824992985981680339449532465254788481772232611180756045474375328085281788720335193381340433384640261086475502371391625726208832003748394742090410625166672433277859657483181931340811278486389815045924202969738708450429053475346694462786770091764373761563958162344466536563985277204941471232197231976466826813565617856892327927221436734357576227299693960341190503298680592882579781457700832527409545721869741776416711740529855176969575205281074295096538375493045370803330177800406466808623534797182907503126822623441696264860783866492852537516355945994998065443900179426346257901946290764334708015529465663378030859867735328999354536406680376951749203219186443662398031153778628947252560345404989799601951116118875351045798726542083190078648704779584964798049580202287717874687913751345032143576006624153785360134969641244529058131720880417451736200587560277469575788020181228400121666441554762065844129646349316714678354850561875775463057888238687167300830223978191250419670141740403476485797642920175296499443972504483260083938467021874739890531523074587863726751690828133405251814138967811859695315820370618316187580870880737980577618439658417062658537810552339031088494778538019617534244049526124613427454119967915556240076680457024258977341684407901715229180203521277985752377845000367147248439723330509849850536547881444369706873438959160432769277279490912187414665407169552358558542727006310878843707912682592068822796559734871594883503774328035651228227909395836009134758568394462223249522785830598406172293325860732169796635722882170578407008273742417623678531547592861450006662408705168415702057694327170837367993128683439009128008586008894016139132071175702624427518166548775874784981230584001057853533832973976721187957117756237054819060174018633849718706197398356218554795712827222601052614359581864270918808168218817932037405265830891236293997729161093787849231823085186246660683874421615410751452797028475867901026001940102957433949944370047077294864452496578507806233537755256484507565559775139061774715542993984534125597524323293012821066001155442962054784833289905688202331634090832652865825521876650933034964846179295463976951935945071716189720903606596998251222199853805930015822150833738422906402959483907770064307936984976201465707047898445393448190990021812231973651651500418294432185057213717819420278727888530580226270743904518858740111483627277906944298893879373518577096552308236325152922079054525798599895259026242011364279570355958038601139410623464407652580559663663486931464049028125482124731662072518344892484440773009737245791362075184493219516388842929559313815844145683831383273134024226098335753581347348522412440303283245921466772412675895388934770451622868273392741134297055453140894873875678231657672629240200607161572922521679941180558278970969344508644699385695280265131103970254330961984582131251825440291286306859546797639742541066176181972198181478246045855002469692147030533815059730754615514696127826866262915693178210120923761554854731511049992057155722043875176142390588590816231737300112785914318436953026938197916735681725637122952420475922711295012349267114882839607886466634828220162554000209345263900256803542674271216520973719872242254394395890221003841709396822336230293854385052704030968229208646738101500621681259799101516600923022084882066277464144144092721430542455283049794113314128653936667876437181061036029608465294196390853380214060860275856794717935915425777479225414916094069494960258134526007380486857841564984626086591923608782370887719631449191345092944896080078330466548073732412680696689698288883121945913295292289570023627286818119214295710029140981303813666041424732578117348877461817913452861857731643930754646308910051899779772684722883324952397574973158047923979844367811632594111610778646285073485473176038690094298004224415258980559385256800009713150226322121436115809653453130537087124718870614178581900565345309715994461585888341850908831914070538121071350235398824169685198657677589404910464322136274634495824902439865791946757951742613104837847265036630605145543776777207808660227521946613346089309047365409921947101891317253932493844827676380237002904390645801343781974656138850481297195800709692900557411367240711947083230420755154724789515306803987888175923850396978857786475715346536522139751556673801569973722828760367586473696311301940344582265703999762625150440287324609873228735623960399168928113518899952429332824123499729609060894626511263702585696408984200990496223524531706348204024673147172557291221833396971145902242234413150311904798746036217038991220512786174989378803223120299951585099791788740841016203943838045924981775964439762857344653995805052790663404721447031180373726677854288570435108866418881348845672090285322582116271837867961829775602727696261594784810535694896403773712647103909338990613891963125033501392787428020498636912246886475741805129743192133508394239693325190902337853073928849819689431589982729588751194639241746794164858118057124881143991316239689302890959021605829180470629858275119966667772731359575773506610921244094534610234377867971513430390992728178179653772456950370175438319939182777755754415070049521701899783214811657829844006928550918310829717780787034335291052137457439692136017043760175010530480861830517901946271465660432650447667284785685974886388000825324126159209988311036848898254509990029885793263484652201327683407361978566250138051795881262132639045389398073529288103678970268509504416295622020324462757523692321496663068841352658108371656565995589220666483251070436314522887562203016103269712099241128975583735412834247531600714541775607948663890612516646500563659478563159718050545286810881374847500645045273687492867662048970877725262563781377031495606051500846584865675818672158083653325036850303725656799572556166664425332927014933361504086212355221708188566493873444661761776301967866304350433366860282922943641730474416335464282519753121317564782389893936043097218457046552504971569480652283094268365705731936828668840452360894323987428995872089754057291720690584807950014271432431607485671986090817039521240866620902951961118794537829762790781513414800719251852753630019713515741267727551400742777626204022658567387157525052322930441696283177467400356818633730687246688918692269511579827297028949278943341248579584736111466512587290437014861282792966795788602802002945166564383255769516464400746940631697558056288099205221123231731788234507594076933524287724780255674164151545865643812995181874280645619937070715825762669362947989907576046066707613369815572395279049454793833161025826390250108300997341345947390968723181397988328683668487994774350312695619475312452497181075111000692741901855115654275093941112074918969338088770555044362182050015094407989613255962898781223520043227137678198478113235835756382803999601368185093301893762402178479020392569011691184825638696747633924377466335523755927084733144058577159865340004115473015748044477849944927860120872901607795840369298134084239556154107173121074389046034157876652213638623833143278073643899356064167321770069383888038665862098040227377131038110782072369376533763520030566177951431003071583881768882477223240241734525537928008733777643373153212711402985807659882276407356608793913933270940380339183535420856462262270329435870934967588540074541144123375757162449398198436110988775524872577794201334099269158520770015343723637714189150913224784053311862392635687438447961205925069056154383926329973542672329223438818553496889266946302537698250899051790065807321393115919461534453647324059420891266617272780892374338593718205741988992902575122647627685115537522416019984843338451750999401059629589880550144970014973055567465322052893976557577232681635783950813639045211096562965906203878015887460712831710370390724636407462895553485696687176872346935050350025375809643355251502762460647675513850239996965915736221088941311493204529774798612997624996635188270182027332885117887569114797894908657126685967975392399393271143455799287968671832145820114911219065469561845497156482997872931229657014436630739912294901687528555350579126441060377079971873135248117768449400687635453726261509077509018079881237422460503233589380753584061568086341013675826688244990540755728355206608332547655232157257110500305426191738062093801979748459254740147631838882870768981416249603252733213944410725479309614185137652595629603280016424719308414641758473382082599884419513188137902887877971326681897619386129747966623847812775907044527748921064850966131192734293797872544526242642700933447705250118725368861787587151036616896393052040803314572884030577547590964947483419111293572893038073562302682893191921821976939662407623882631225126598834908929078618023670934908882886318810944756511426213267463693845177965372561674962810223091768938498178917280869140301591441261178325171317289388835618306127006262511889836943662465921189191760393953434552512434459126922747555957836977760616732072985130142141718984443114173184070289785413938478374047976105905489333196284084055686676818044994402327623457964695655438222382383529792382362314637423809396256543447013358438766106499695644104582654609131545496873396876458962627245960999688100932559335551159818847651910936382647131019172242650270756406655920203550540821946861383715862116725956914824015103744898396394067566667573366684850969150056518658044180530790824242146287546397088537622194003281596807581301855240014289459403481495400966218711533066494606622257454148074511111955841613978790564111520294477592005520425422239539774034686026205155130339231868724413438141048201655413620290177684916061444193594474148387204818343713314804009507893033293440596702756095190171464951427955323434270656129471541907052224022541335032776961695146158269523407199464520597287764056098434077256932718071798874381404791691167889241246422064532584100697418132133348020292689572075461414045687338331595194933219740065019177505717064778637923113878629047229781363980270043674133233380414093671375543880753893002619132461760489904994563898306951830048452933576806644729156737772696868286009831694214606828734455391041170440130350758802979686268301653755510727650100132974695855869404701755349835086482648314815948339060845417872462252931218288301942543191852409813935714862096878470700898610904615138203653280063016927527189502471544666959186018209100489529917605922761317204446877180792472036391889055319761673842961999947930072652146803734409208160064260199476784371352462572190885481020057337842100275364754215558754294853242996342604943644343736436215433707918709110203605098977024930784464845648598725960619447138470009134427350867730528892543207967516868430034915221550272239233478894532496451020675131332182834461194691583222471687322204770297804513961232233501221111608397842908136698466461362569299159193228994986113341778644595047825472043834174813523583690821364363215031066818018115639099048673266598175562337983716543848946349633390896419893469570089290937469712774185904213980827736880170760954733943376268167478254138142101228330148184996499944819668003092299417298262987060393347413695395401583754955692208312714120926806846428182185226151164277407860147107308359822739669360301065663479614930547058334492761087703561657213276008016110467303271930680368763595711726837210350254525734029760782331038626813597405524117958130608873651011830043444317748051484637394244889036811956459784251540170824799268432169327486698440164183078131606962554399164136845018007475094365623209854860722227782167828249285146741552797539485832813382929605637788051968100651762748777352187039040989789011735425402598772245299111767155938720404417565880153635320304031422276482967844277760754926906208282879569833994393974889312491104502880329512099147538307908298662977049107229797617633979110068745037880808728740530707562277951744178061166290379827083704334257585291021945319021135815570618611952611034314923650630048740549805938885879023429461263954872010460344656579747522812247089979535992962658468455864277223787851122316318905624581768385661249668604573446612472555249744517595196738604082809364340857596620216397129578958286181180879942766361342596528812136701455242745397965311282983677577210699702371222132621221059429751520619741505116623990467669495522077894363054596424552260907997626993049014642708596778211954385947986197663866516116961536925204308256680486099749018671764586889552274691583263585491121206545342810240873316982359192137271905275001776307358103447179040553509156944620417820765057500493443845825626983445524862194641177844282763045816570627757891197865243010612581709853048969445298731706467911309792636849474565639797254709994672206930997445483853264668464239642177386067229058017865278858943935615585389008359798155655062809199790189248369600940224762813692302439773578387506380792288500118224353429206657030189135234558849629647302058812935961998932403616343822608160966474049159757283456232516786566467416701927045897039562457876186559237163424125221107340799206311886501188274209942903160629399481950884874525525053773418605871237566931091050827869444593978704397322707537605382792359008889326720136396939515670935833523497130665112662869425285493410148628425960985008884644186625065825411610080488537768045598462800359076582640770825247756971279568996109975491865827743314401346652442378307105205266573826499988734332818589057250284256834777191915724160861579132624737261032874375472003462162311541180809878759473116746454101321163379307096998340662597764072313235202011856365262330769814988271088031557538105774163289576722352918213034745271649957663474425465055487043848152755847004077217584476511405902593382886046327127428353968735788524517382632974584405680667433609165350884172224171249169198913036156816651559666698860505133372119090316286661624938286013389968500539406405336923271946501267390067756299368384928164109153199785064285924641408322009001701682103785076566644201657509387228967168923385824198499675575340470017125817141362488386510454072142136079849319188512885147032848884147647670562361559417284427736141833082778162422797424604973634664904329412923109148881306429594470159103904158833952787108192511259245922962865866965868841325553412481127323122185381717668438279804544611698222410574606767213818261756200595140639687376588220236249917108408501753247335352661600632219730438109819585310791279767266303589563327379443033930033253575341533406571421194526448308460694023666530651731108081949663853620032043781712795214414065397194966514124445039604364353070210563229817799177491276666504567013029587274812287655015031196813293109633580105036353449879267379545774311176342229150842276155410714029949967455688939975942176009921248092264476955001632611430579481579284199875772821805500199302806121339838486635459778655058375766115920475867875722296511971115741970158666484333072578885235542022129904658466821556615718515707257944530142915826172785684177196601616852916311967543094910619273877699203683138342473527206157681551342521526460009958375180584800394192051770375291789024597519883508790976652961578093702046344053319692265370663991240256912320201414869665689225136837101644447242288773626252622753059258601613812597353487581935266033115077939459215050039797522471206688948543431314029551666528965368805233912319624736083228854790104269441751257021014326835048549054729447944235538894137628120924248365537165855447100523894461972955896780822053203164282342956295431445768743218146956151633588190561227721680431119631119135764286448479859391629051125698594983812256430129698466449664015826577755224157476840314085161759329219799234178755125403758876343187793662803089936043420137921054467041082118340344923182895301599198011980369872648997028679639529285551419735876044887333579425014263975152175937202671328830481498748403036872595028286840496941728652847797329598424241857682527192091563871439519509809958395890404681563971712078806299476286929826956531347200407106006923546444023645606342894048273462841148483068721964853040154189636090135998771621965312557414291878681731994738958637284341650428849498845782395007403004871800468262867251208970481172197404121979126810385696469524445168069202372035135807137912244307451512995893080162689060686437067283815658941769485988027808854962072588506319766865621629140662989699802457084205380122330909423799632586943478140191079659911638273185670825397743040129419400576274817049260876515382862286033053830905928182611820381184524014010658056204494872993180836764590291785995238825795446586883761442647900633827400977239965856228605616581326727138513142145186296660099599922203946531502940433342532058525989641783956284594845935838645334273039450293726004084490489852165708158414649135019542470582295868155357054725798958937133589609520127731559739498522229345313227788247046244326959709412735186959073036388220764260023654692641030043520795718343717352638530512342064823714802922062297211278675858129481103489696393710296081425600302242537831040388934281822773144216340296659114876321743655902503478307009602273250880402923806793520141163722039053588285183709688691627271301786692353086556528854055363167197314606408113824240318942305692171038144831044401141733633241426299105633387317008461690891982237372568526080555212432939614831270938179945884631305151079084111930322872369450421694128843025130500840542456695550428284787399917930881466240913120578957786897786804166894845770457479985295910531767326467768342979243265908970095600676637460668503488111194255873376351045265705780544701062873908054232748392127245930184077445354501025780658946931644931071981909234791998625091348646172181435031499254774446895924850972904879856629872014484862733284757726477146877450136049585708366974876589565421991977606590179485769336041236716881600815698824975841732677187767466950757644993528770822457794216545889949573961347877132178918302715918094744620621848810440176213964517140123218543801879308581131923448593709611210598305958539773136440792772923059131345584100442425610008820508890327062071572893527917825474343146696368190502581425445555852763271915421535817339570553269692922035649708082665832445635254942958600010442580252195975910763195480176851875007023418709869636013916294999724592716297583611762727996826495790522622987449912223243328898466601099721648167768487926426228490259486026028690203144621526956666853498383139778074381622259721734342833891561842863386558933582629747246880238292978538451002346895883533239851307508151349258168133674114310256858692078846138771312499614216016827947187007780233968947179575844697730845364436212596910837984337226700725978673865351697881406480442955896425773170259152228839513411582890002620476359880052380819664315682394526274900554198934402161807597219939801628545342656623459325727776484959103326857548327333643647319110060710382489386435785076292048129769530999375532017523092508884992744444280670766110252541459602699730293921554216866691224724646052461133946871168479586195875439748380557594019858212982953334929342010664368005062315727056392393433805366086051741459777984696551253743810447986241719929707161170543588404131941973687527563501563960802855066332777372538728727168302670700689602425416753936682513249511427033472840188286553476581652137540456336444886022342206271292121285665144684211400299265975437508593057837577650532301695497982256572303261092657930856721738089149742102772620933671811374288328381019360701717603126923262842188383152099967973927720846511541825789871762981188804836616295467423208603769875381318314839249301976724090457039652673959505948096717191799951730333362972937903315656737580919921924258639862216302527208807427611103307702202955529139627806040112485370411753738789002334717132896916040345025478285372138297609062193724305038091335489137025955633564636648856907871025403479562245853789530267079009758447213867705835462531825347992962418189794981468473409469289548566328242337973064408160333191562857053658608588670852026332552503712475222087640845894204674815167280397523799427113128169460614989505438906003260919866208199563790267794712401940267106997750064764003651703817234213337853813558392268646199730454876536385917774056947852292218874161005476758229204327702866536757091258646483696247182428491578855582710692741541411550202637039348253623412079682898093678852516798782552378677313329602469867423947323658648944081101044714397637333596725402539071023087874366299479631730238840695460379148903760983481135147459882172830694030082586005449949728051190997038983993680529718827376254531618691743561329528253561634054490312725689111362537084335009344920946811079628464876332162216574621665306889695717365084208116895886205855420955475243513495562945457388194846400903619594357627025863936756838502256144118656978324870501388455610569301811789907551103734165305692578056184838231812486560377197400690217741687995097088594749173019403941264215760690935924862345334082340850622002669861280252509621623843676729788205352623289642981906208621419924814793478612660276758880250478163361044782294473246801909908374186376948386426832467874714014207955085204111698004732514918343479411623773941725145847871267787618757873977863502501622316738535989752056228396441275514172884482036309916687633391760764132834238594052036182306543083462910905532205082207717557219731278134627485182461801626982348364779072229190827580847483872355363213797816577167808017690342159423198876741289421731912004773331533434228371006781883912561516391972385474419971355921017379288422818787508338111585624013414055738286125944739118888292225715187338288599313633248195138857504306853898835332786432101886338798628815174203511010357761490434047201814875661608248423614152864208717123411422744847229711226153299343191320021039236442425332682217111382953853659758833077227155830865690544382624535117121847241408886052637816228177734766501368788822461299675737941537262643316754750359441419883756180921033792366706818202522075204878517810820962035868715095098987779459992070137086151301813912981208623293469948814026024450137936408717872041755463923374034197796395549969902166893630173790799537386433492392001567163407817989995911179869269791041282750370382982954538450504798019182498156545649090363537055906110903683609971480636217930217368553625570238527899401782330279333388202382003121760898714006452420452924674239514128268209584262046831874213821600167517371971816131578846875346012399967790697398717637472103750104388215505294602184525561604101975918798540921729456375752705790406237861413915560309920504397450302026275193524640966446004818378079957486201703142120373540818188152256488850227764189189220221907235836848115506965045998710281676765723079209143097595483487616746641620826529743166119445391940805027136376986352387476212516415278911650637303176364165604956674803697944560675165137945591757437983827611894254728128048886770074399414983103669036889355749160053206239338094048127282517041785815316257476899063418167934561232717607231587831684497971304814398661166663577714281871884746205977932671630817297282136141624026362930822405968731318053295216742357226591633903414471590543755048272784214421345795923809452433530529380918111991134958337585984430322271649181649713103532285528623809425129353351782692228406745799619448850075952238816260208218801357407558919324771238318217192118255252217354459738433009779035989655525834845176181358944378055081921585563360908733148909489674845482870091616699717563951376440339617767462112519135534010014024433136569300063160023157351126492971690518493311011618644500120346611827183434248787175487805602815342656925427435450395605323909415527525909870346745107112179880718697468789576862958706719374334728237427004370541181874693273835120209644773881691032913566321200534093109954588353499844095822140829294298249482122596980534062165563284085481246193542396303433863596588546049583798172791688597686712766122486859647036125865611893818192531766654477879664697108975277431438248634777499473604819613113497834650619949532828663980067214240445246402503103194051671251505328073256453199801980965572922734619467293997431189071348725297968731082607781724753165340950037716676248235675659724100155093845409907740591810646891498649215494910676900693737515663912923530790581996805551047415300006345342206673955991039570880875378784776360027250820114053480206737159184567949152237337692032279215854089550079133475694047058952769652957948395777044451471369127534263000022282638082257283157475718512397985084454288373916590632394411632850579810205111596782407412179180668662741920723164325668465185277351868954587435098759355158701221405683820037584876776588711484543934876060065939138180413051604190809447480116221513209140482106943034242535879045861485313078369278558424373549608044015707444804663114684766206234983810838729646015289018756089313608618950228586649707205754373295467120150914599913225343055162495830473264968569923509636976657039746345206923980936963054410288091293441371929113165909858487020359607238300777121722138713929746053371325309802989781169198744158043001369010869576129151123188677680078510628745744609209257167502080632873262774524505194776599413207084628902611812364322569495478720547295577611773576925884972342442307101368016172153825665869388873253177225337779450951338727691252304878358693805322943370675956767258389770345855605878103768192210652006884949663316143323759224588415728471125099543872806080653027734274471002244322399913777005609252683105737482058897159027300703202180294741412119783082744472531783431095166723589311517751206280160504923685021046192006899670292958051362207720735443530926156104910482337899095067657607164629959835729897246846114756233854089898464716487398080070019463542597608199418775798233215705885217817692253005654128554665905254346576098322254042050364037149492566584331514846735521426635889886167660241621393953024418059661247186446659325022039932159939628755755182440388093970520989274851489655556162093972105038762628541157067221156304648092013841602481664490780447195161545466909579128935553373875032189625085122234534106795106102598859191173765312498659507508631613730117272224156984719338935485075506128720401831267144886375050324039472957670808670887055766398102722888416896833098147828280419580038062612467088249773073932986211428460629380638906902953151256119576411085806964585797227786512060521947364910862755871363475067872693123130466303914523792317219828048725804911618587855193261590184681280900746164343982258840281393607542193619821435786723204135318881397827439414849566634953424189520644309816894732582909291013898004514973581721416419383109353661893570113788459363927696857077562369292425465582511355291637138978183261787774750624661677894875076977030103051857144024683426981490329715800965293290607868028090954855928503314826632868452326075097543236469938940327559363596996190607873730096915664140309117847418650337120738206902737871549639090108021490022718077199811886224426290034782255758978961011302008101369992464796617542425873143081045509160911732025582941389343711332852275260680862056656052207525219692488106474611115438948893502346856012236971594120271436468003816717940880939628775323771922301448408554589273708743367097295248039061732603193561234301126391690800494583935686075953038754736707892618436738248397272928166847108107017149478618429864991210413913159708564499571919613875808513519033998001869127467491469279583005899346183874725882393890226982589865288517956260647838785557793735334300643598929317347063445995071695417153878616230163778023954887187240777046862195875089111827832176303444533651337682219892140134954190003165847920103540645284318927844278085946941169945870576299589120572177475341326138013520066452544252166234486522956187155253328836902512011417911247356600651633846304684596504038440299733524696484370684260164703564316418836977621988802181419961859735496490166090011508455540930278103205952745535258277076645478359822143594263514563329127172189150221080415535786115204671670896906449179819001076172236817680219018326604954831242527732038675773680691662187908856640260380426387458368031014483730560643382061236930889163326308284192585690975344102356242115648445271064228507624279981503987933180693160837780319046784846072973253970719295129754133432253311199463663307512021233128727792485124433622008764537795271631269518292350086175600569935385345472674177547116734410142602678827719609526207379923998503698488025716906547188889453014208225464275035712008188860229662095364057978603573131133787448000468762850001428469326002488439248184786059078074362315560021869785378855635516943476606643406919016923295637618075357418760343541879378494054357796682820889115997461508416265562369328369032512856243810215202293627916811579818801728503147773624177289434782798573384913733281448462548315988309358137394206058131140582511440366634472296440104968633558777299376348040791367199871008248893865188477118461503661434918383290844573254668031087714816404063515883120803598541153750032343531370202434781985251203210893789453462828551947070440351951464475302853197123336297478764882492201283035273940655650217748027014974242485977877108030994572089660998150235335717207107033986575787978733833428850669226100730069852964588299108708194371296971733832041898208415347430778415301613161105596038566266914166575818824079862977326886585398314922677930329941607494168382889181795485968171278527893337941005898315401837373867264033466443134060278999333397195109651302918622735887149110692405451183215425818203001102876371436807232317380187638685080862264944069415151973554329928067232990841112877204864977468114569974703456386978842742202158403753157735406031061930315849977300785993164369551816779815000638398613153939778772971980016246318415969114378674610590865410102595695269740522836303141106163532174466448287997035711859353390967802292580592559341588721412263758158525509053322815441211229393185752124005634245186517313174343486183362696558647286996475201635334538348446132845721730549929261507304240708383919999997606461123131028965446649478152686969734186526994872671822103426289667782943416294114795304202333174587389087697704579490453565953318536003121330473941857011183840442924973687118504412908219122964608308892975422208195730551238868273004707023338847018114933670757610804317525301594594038740031765903537445893298654638414755918946253748088413241143914629028279633702430803005943225598200322146058129516596614166625642174848520471270423573766115474652606390888273275595153398694293795883895860076187495942781767102742409833409924061826498579478853694535200506402605220065304360343781917757501092159045560615986552954195092234105161785939690189218228147423121283660844141915577153889247200041015515927844419755862613910304600119578119903593190425501838601944970520037143566688916968270540508335630700105848146513038597636953406612163442935270861484112124611666280700222710016120676040485880267139922619876718069563763290283390890476691678879865907362228242709393309817131223418053842275699026884723773467191741740262825216333648500820414065566230497257478990571131896933598612187061034462891723780785947783760607591123965204580436285218056732487791209833373610685441755497136178778688511175410820055023651905685752302337389800957235802495416113819086357899597324687176131579962226616907907390905137206418982899368096679520954282926537010079273123489038803371870320168891556513727394704504808413380419271503657282985464619936595817562116085680184630747517982001325867948624100834493729498921280397386477548369791064300608675651705085692874034863078760557988747500759041343955708211864435296209482401594453192293038547281802767328647526999837300621515421084116525793275804118537302081919979677628433616506881879334504805675803371904782742320588470241240355622898239780729516806780940266912907048896651870639420026000374280831030844297399947504216370318505593971911310074926795734466067540813392020434567508367324920173435894050649430712601204953566819744671380964862869401257380173318267152839071163797619019544151477020920278500185342251652023298327127367007075343422379414845518521632059823314016235608339749811359766994698183612974199477619912092356714190123970204297705825080270954049441344662586087618361020936854020898740384898050936396016115671274809914407071692472182126879669694018454101269689541990400531496742675228139281320437378329282164841922288959963740024043799450867268345144805232939888043844016037689076887674961940966115264525106153917219988815559145986883886769311726595579715585195143817751274182160387355505351143708412733572440044487521440401008598657267802997066717540309042413264963261702907186555882099408523517432458602555618325343411030439425248337593725724753125519546206087773410241081085924983517907442898297222347036747189269812725441106356397380022535306309122347815955606439788188768278836959470363774157328190514641867945725866027309504712291690585184178649943182397209622564427278555823006026037608258330292059577278298866967894974083156371885382149148204075365240694305382601231720284968952254645862407164089423364368437281228554160359489227325504832287931538899119087880402902293691968001812186599738916092161229218018383398655181685726211065054191375373042265508486535669875308103872733616421975398737657783179663067974910706667533403279371319334669827570549755651073899611699622253289271222757808117542817871708639717383950693812863515163366323230628907313991604004483816743386300127964957340185035859902026032114210304712870606583913875421773154357891142389035187032978204041324179887887942224241049156514655514604354937435905505272102728158296752851194115638880132855338897754134754914953565384579462253221328391233719899206920993195517604788310528134136924442401793124677017436809051277363694193359331079453404670133856521304884902701583824743416762507071654496060469052421613237040417763545699307968975255008310083313639330174583635104297161388036559129112579713311752948577616030761710550083772896392858245390468668487707951066747154272890126036452676362112388755970425815717315434232119139181921193775230081724619639027218843700390788773226719703333369429484888190985979407166905114246142550408536542461811139869429023958224029040700443247212254350565996883773952770816160062483022448311044510402002285137341629556999410159384339375477332909059345704358416003643843145937145261256424172962584750566384493421964978362248577784617948949236589315230950893056947359071077087765478345849724413332333253764277439877538784253798940444635670752918492633315103422735560429422860528815246378285086804937163818761213916335574979790180454092441922505873918236624178943699263469896911912205257853930306911980769615060745537224507663041568082689685705491917377411695784972897266948438565684963047509592020098447135821103416701648120815198071264693690709082482187049178956255553579854703506737415196837331632043271995937148775288125818753559721814996348657532866211032462537608496634158764352235784935454615707048413045278494705450836925959171092385653186811418810805727580028635685571770049424183138341062341237795168114594321028665044148162856816056716371087587619982423716108974368702851586743781008375115337046201079795976237136133511103094041456521228267832501501218568099003889451009682757696989096879063941043986660570158631206989250173967145795151212694676078059390339361995594637582104963322667453090776092947783607985318908728807321852747343553612766956840936724435645492949421254601534416731550439354196251738016992131393934152748274937991565499521417883506104249985588714748656121580523768997126694581645361287275238359518963142486011248433017868410512661520176737412311091515142906522188612772960276620271815348241614753132032007977045434984034120181453266729052047043995117226871133089515488526508270974725302740005047303221588090756240423669050796816746963158212986881153987559475809384324699124282320919035638593821547094898727180040258175968418790213844167224462766202176711169398495923206238378535027256513494704781743720582436832588854292319864845221305865608374099368622276502146032787253807989813113832151860653349979421236536310243687142340687284721835317432279613290943680700180674714816619347401619130058231466802032231908634724234650457827363046190316367030880415165316906961107561823993362067513076700067160216287730739901274203824072389976757264397944329923373490628439967989265355604307325563265741614816151442933057133748383020114548508711379549243752678677094764321678604629451780259668210790377727069463618622264385875475191541197386936526583598449798913131159740862640321279742958847075461749297287489287849855088049711121329127206863953195759575731899097915501062821644155170138100022371991681929224303851862814816796885137765686867775829948344163865434969827489536678972315048209751469805776862704288108491063893444601194561999298629908319704872618957010196813161535883465550429723134724130061396519056797504444766544995994394032628750823606255493523859147997531220813785279798319418549911183404993818321114910522209836535252252217386673723042186070367465030893282573244195005736823205994065172058722112093188798952293749093080662271857558048843570336279115526608818743432931622835338969453458566254384693528082416926586979967902471150121854494523903147069613944623993805901677442950554640531208062310598550214049848243722739384228065234564481460137052194420240559432146774302630131451815201663906149722285958194274130755862204377852367197642090384127464884100412721924800066180031349764343190623522774839702554195741109724953836772652991502259834981067801103979522666565019448210740397405508126463108255998083996341991761139892595755637866270049900248664570378882733215989383938784751790266862914717647724287982230963068040251279887600551884583083277868091657990359395446210705470886587010305716623590087359543907394270146958209222039955864976634809464457400169973888303992098341703556678056303857408012685889445070209035358681113070643660142316059926730753200379638858840697546021789175476473252772970165920023516830800971242064043688023219101050608461461260745261418890350751277514505125479051042249881321744186726035335693156147044030681279130665254641184257783519056161747755058765868124233331149070098397019459179331806097995044562749099493747873162740101555948255563498733279976320450177565390193260675515744397376976502389528664955030326598434068836767075397223386810902890103114755164219863805056188196142081152627500739811950542181446263566372440523526205709458736914167660740781240571604896790680472090974765371456330442883819496756510193387818202096519571744910628635835844434050769504664376156033223488698380242066973706570568466825860968438035671552947100414778292906187716966571412915807022439970473986370994598860933151438330146250190791116814779253216483617317246934481037577687929884845876945690806809962556948470513234433085855441524121658482069056825048735549260802640122504522436612924523792169415111821288646082443557405751942224566567202146915391414909888646901664740203024899228102387299660789754541293129670739309834065797867100338942937395833270605886780643086384752579090788904326709524559052648343772997339830875596843603893128258501717683373287035845927423939011569934165213108300074519661107491502459088766858275732780719446888155653649109079145096944025745243823951270729841378793762239092718205784650196832329458093351161404533623329227518541538278368008396319139817216921340919995242947246062707715633852806748643951706554075066586808222685014220630750201763414386001219999330526962600787773060279993792979590550889395740495816849253306766921892825418657016065419746564666280316752531145204264436744742940577428952085145485345522795853884544426042673153605582150246183959412530484688433732309607590231777531666820489138504986208613789876144369240841334406942532147520380527774474021522946881308567861543938382129243919486224452813588767078962852299408750944856331558012507246185418316488244540155660746649881794322426675815288517661632196549724796678524405345987976359853989626063884776746006560956269264809812552730127202635004878513146071739708152872855861114129380505296325806210125609781078590000959609216278411977376506886448491593173934673266710161472588369945129849470138620366183159891134064409493141791109610884426707117296345386955446623523217799513262501382781043498145295537568319351447507983214526090430305838999010918191766605358958526871733811412355009848225412344785004469802345812763911657194476253555787445651691609295076658773777018497739303885647733323271798660245934344612792642574824469708123141393413419624990829361326228222442694543817534883822379184195912699738597154701297082036765163211114480220787008387036974555624716938594624897080771471856475772100394961440542610485219906873756854125397826794814821949677205325022548638022521182078288758420893325266864922412492496807790433143532457343033260678959295830014543331780924262244227532368487725711274628536138416077475763523381051586225003982100088678783393495311928703806672364987407344449126594682174247339099805639026176146354302073253404088757944187130079280739286871134242273248464991600047817132861388158301157470585150741110586928072261592051824199673181218463062012009824179484650018810730683374920248959010135166244381086113937903705301115344242763436719728494856958899882384151480082186163122586159803751956164347583192655405800321533856422549127455675537404644454105626110547785230992290625160875872037627342236379191995357825640093723751208457493504282812829980935491842354585065497909737860220362109317818858675091368058666478277506592813366422395670775444795984033497941174287542871650386088508743469375114766504284981956510378629846786910665205255521566342384191658225776553864258240829599284481766253310825724903942464282587025580725683724799947419377318888766156608418753525212846788817818203817147404290836250922399592362843195724578927107708456973822686811093275119450106748771821359217236375628163461035315082129211366861739976225872320805017657223159116456575773278412914596910032997975869489132809865796018490398338698881096290981068506338156896300884612894184625973060643042157680825451679436481356968041206765049398438348592157242718780024863997081869485895669505485053731578324405166603705045529717912870690634117607072397537156857631572349378731565238619521441180936094934753967712538411270218059789023947335725032211518867821955423256238219444411636666238517312475151624727765353466625077774249212845910102252684390884576564686311018431896524697610562591569738127011481116122641687783126927879083575545023733873998736429946276399535992136935173811218870038505908984100993606388948379869345628665728999183651307317422207079031617928307993873463919897772192299662379159027431089980066584837242636135792955068538665702682012254311970194821184525618234815370959871418537357994341376075467696010266832729964230766304003750658139770901647594213980864643268218004968814259937842009685949880820251860774150555609432602602160910810120632682977341368153125548687310899323454286627710497819027195099405395930901467382595596652433968188909466911251340521324726198851701322765065385592648382785619993924424539644025823653720554279930698444477287590552962842814731548915255294308965734138683673791156177674059240055417036114968612416742326522393640633680031165859216157394715985315240322228663007979200364922258223583740481082046183392349813884465620760166355942549820452766359170591243761933192846511884157217082978711634381653807038452687241894944975026849726205190026444343567954159243434049306378845503669744836120058864868678540978705862813109362539092632472124931808339505188013478026091076838578833318603733133153065836558549449917467387070520677220309051258657990201685796843155559798755274778545136534740406430812943905721441348290277531280092047463397823075568471118572689349543189611570483500936653463024998284552017547328498504692727456515857162113555143637753030722196262797772018409926179113429771916223068539551569456900072665690570931089874985280985120318851051611950118191184467926718545158741206174099563163297787963977368936900046216298842100236735126406908045117882624690065735447236707476710769763780188391579992542729498032270880894095375668020691551376377941503633769204821410634957681215994637920964199097908344391780282809310827829965450313044805575229082525790619750049274697921985608315631421571339437407932999247606771908334360340361164649052448533131396233323304254864379159609700033193803337223777811867612512246868727979714717127634048427997945155465380659612653151213030433342767887968519384416375810591727334172859110127265855221079154227771079198870575153088405321217704274214539336223368312873746528015477096440941737620222441518102279434578995283276667990110192111204270015187302896520774171051859555824495273169371936641088112771054208140564241951557343274572084887852167953894037448157950989192697817075772540628023872037968619329124520610479596636530896913022932117641017972743236244632538220162282353623720319019440020013459285413303463842594621262448336432550876881166382910807503018492952013400937933888880985841187568259610062102616918925864403426891839126943100279961576548682254926824585024654320693673543624701633083513439511136990252998037129950257871572968344099956212564170098961598010096106119281121335231839539994811534746938791491558598712436517346484184277515318738101036914718918736135831790317296375283408157257956851934542607513501648195165149375533612395377355752524772143964069132830965687255879832696175291727286664486948416898190209598685126600952181303004544426939287191403539531479739172372801929302366569579398825131097597744273357784824852899127140690619803833544470842644236878396214405401640366182917525134547211432738759111188037654201144172201434589286599078362925758496542339652660041801020947318728176193453072715662247160141896145042879275080635460638894657401493299112389140019021576560530659789398997319782546400556576366091722913288176967854237422123925208762727121770343112080105625888340517650019050165825478377711279720476481740418557469226709772625459064823505769819697643331689840836806818115711467263275742803729348359052223412296936406868720483626241324096416794812701549662822602574693298494914995612447104826186106569181303441082828993230741679814384193680414615795937113719485966980858779427076534696866585798685895995261038946280094456967747002568221118757027057023973382868767127195839434565135504013240871787806877941657123082697104208117202402970489662787557909464482074223776336475203871487885379950491093079277223651809911153477396491419149015618001601920685735309228445444430376580376735274872219613742599185858870542055316401598439053884462468879606715149542965662128339417429744724763210591692798703484145845926348498407578426304026998760074682695600496890077681140099409874179328781536224911883950442410547412472245890933429071072282447374266591280284452681538926098308758243597040028320514048856688468727486962814060961180709937625143421249346389887221662185906917094661052685463109719679447121159079742843019794636785020994508326624217998875518673290828766863007151789357001732803643294644840225369393363445470483363256199538590643277336537390812860607629884660228286980534919267887520366137978278807959515797663323406848725039181808019464439173369480442417079743414081457488182600885810699099313952802422845737857502756526957142575616422338182102190729685344423073276399432690699370497774897708479960024446127768866866627457960779058262788796347740254077353794638837079071514429726863456854698655311829449057739939143024228457345280860233838790840865347434182007101424620696154348910978640697832842994538850610463306828180318181010759983927318865645415810038787217924754658154283514801586073250270938590231104047750523431414652137024401218742089938962660984512827572320539178380752024381908827612053359094696193554313653746605661975063551201990762753454942256330361402586143532438773299488024619872403279598550691936171158434438057451975103420827196377109539649053746766849015478193901123791961241716418850202536856662114767058110918208525766016283648875096886645535947583705733728491623735642855177867967768156505662072277292599391963866717883395106866296415060473581518522238199038030181480903086992689132289558075393549398944186718395850741276605097436110318482938701401349505929463710157175753473341451860735069054896720289074366964858790905756993515166987316227136641989930394488422782866082765739478891749526303874342943122047657140812324061224688267096397924604245669914622716453374575346214325586777831507511113019797967156048147872761130067635977402557398886182021928507310284321269480303605228286766551621740452222295385535846483925294926268657149996793274506184337976559190936985718066734264596110583503002450964753915514376141781002439089266421058364040062548337830386220344461994679075006137310667059876630618349374582108355187344918263684780597749240509223824006283949080772115419118168485049830820487237805333761383424700188793603695612004521839841948459448210335490492033067561112256090956142803521746554311958427883407597095171076351573727332564489237554607058399870597748606486932440790317590507827251345656387737130643183875679624584325374959803077146261479355280370432717880616706698845316579557497876283547627439497108204499430558056523030145394480081868582290195213008813239459883624157146450606880548080239970395780712607628784078300538491996281943259158538748631948281368572736059506043989318824992581433167479150245341601830801271825221636434488562173423727398165288530874888837232026871662652335387487359426843161061744665514947484848070623997007411681420738235314974876020774367187164933225329921514076822136597548595132982184342045023253471717866273648790351362427212752677006596781674589113653541937744575850316615008557698147282956107459287709042378864571335592650954001425709020384270244926770549180464679850185436298574644047619231655238627637062184362789444137630005621781317281496306252522267864846132366607822847084126636960220516343709072144158963376670355012913591549221655731134575817752247484352039606445613455404024610897040839556529650009050891051757391969535377458250669256644488654337495002156232839904676310229748648545439985072182953574142362276166425342684326748557804959401520936190270736553941431725537697458107429293259522747386899973209850136118057180101262276216376707013602794908487832678354809584085582895317168138471495368788018634113526345561779521769019605066810617397937601985614881721675411357691305411282933946299785042302752328539950903572738850213519562467935235713413586001061062276109862314846127755890383596675007344084003509277623468997618690952379255555576771439513333613759171627019844155590928750765161232005940520507207825528402517631529018614057632434939595362020174108409615334309675062918142190723788538085128400218155922881927159076510647824796024877240171887750760658082638048846148813818263648221802937213355186514211868812767668290076720177286806390807739369981325071003750637687740923299371819079071845639681532079986316688186440810563866825906956566523823382722263736714321983334614666519500926543433376760222026050494929507351426225915783865270676179516538286707354271414481375977647533081989758009856454288542592785830558823181423937717223540206087886881623540666684616060434725764708011153969583218497522797203371684212698395241245308845620170631174788029371297984736727400746662385396835123898076934980789675407473691008522001845543418983791964577009549769617141225467281538332880074797510912002722853706077740520916163359910792426639340016831246012144117311253435985941572555630501265958642731647159155887992754181234770179353315523369587614136010853292576387079336069946119401480948710024015038749804991786335112843907687966546795460830692535568340896916960194377007870853333453158203372232269278646070938711294821834778127248609239047277964200421259827419022369273657860011184536401943282396435417421469269994368814299867138477358136646805036542566851426234187467978994527374022165667655538615744899677160970478691656145916049009433713982495829578691308685389141743957009687493431706215820414637246911476919538272287872648595590369272592054003181274561042414769214471695833419939790791289041015659873864625902696796404726609436625204714485113354236000824159259871636108457197361081882875967785636444265095390242428852187963218800135544288178029236087042550389447281085768609890026751498720313482740831247935512864122513467473417230724728826993830108946294411923480767726867652319082242366131593488931890363524345770882414707654259449966898337737863239095591367573348842316356390605967613715404827981569451770439056908424239966318263555570862597367054503703694433009842343437806942340493291688635150577572139888418250832145097510242552520718859711814103893153550642074368865384459696454625255680379456045300910029254413384017760696016550327284761104626804729663507942047495863012252195636915665587886326899669500130379750648876322608310564854250656120688564376215423986331249600208240605988587518850023355314324292398567987523637042971676739870089616185235531631986030118165908664343418983880857679656567808969556433380796778075191499817326310527997463642404154150609877194000712107431253283504212898087164433712112010327561043735538819646549907555167038144833961624197129903702680831620853171605521917685926263642550982030774649633933304351050893109524963331535041324468976676593147081772741941510039613129802046696592300601885905238039498866113239867261849730931407933806563227887516027818391930536468327155124457443393798331231511466545130909405293875043327221835035513257976243762933923842073347947648639752495817404351544509781328377057367011641726103484280057900115523887838457072135516371967511558963705488580575706141270115038190663687390779951374144679848500566725599230028196153786287607426113607633735752846435786564724943479235614150604791729638790753857970742666769294738513156486686897882777650582813303889127635177829260821964813801895313171397705544452354076810610272612407479620305886257059912056116229759172941089255599664933373636147190460050751878176589427438958817127535890860712759007002560761201126129405341769044524241064416495924647232272089924163156298534705311714356119278625431717835378432357146299452560880929987254254423472901497463580406073495285554079305619539962700499422233871482649523179648996702112452562095068953102171531518588525225072005827945064823580411300553660751259893712668638094362578770597038463793545776876370319968942247711420944324924808657243728066130122760550214511153969993494601111939320986445412924315142752062471651646403733183961498045556291758639118886773250245595085382376793149129050394520717376172392895591626040666045992046668763291442661562570442124361713758117187135774581194159152477458984602000045841971702134503151144296739717481332315561579136915442163702909743320588421864567379716882323259695842416659354528804796572008639152660085987044996071267620378425103142252950170373958150693364465616290899628029438837831103623587025078507494347813659395941707840549201601374824003169308523469582822117064847187635242653867804978135535040221764548808879165230601007709192169625790916481497882738413551446031018221447559971475221725777238342494426497264564393920980952083090722424411401694805218418049586530442703283829032738200183445293318476682660512396200603822176170604301143691840669362573340689566282796894520826426030987368671790604334876227205884959061873203222592821585833401925993198181515036148382768696184461907325456265486462288233180243328032694344186372225766108274932517352655284637097534444018798797561327351311620935135616820495159841118731780373897812134982532243802361673097199327372862377047584734409654602324788046250570378997796131299562208357850348809035333516065436505582211333587007593063238081143072506509889361242610781073056270354530284301446536548710574259565792963619530058455328638883734527847213001282752280674043298779539490788257200563223496336063538334007027312259924368832328201637532260096621232938563401943709718014915136798707294835739812510946918865476151902375839173522592384317984541266321368062054556832808724997362502984111448931503201906850612035100016568408084524784669179843528983563175506072958370195211167210887063407809933539547271102823202500787682835545212459321211683171183551800889525061321013057960503284085876841962793620688641343101208003062863718625542566239389312885924691042620298476304384760352391952776891073658465622575973077682258679565995198272297357837077104876866031876312297611651497864887341527633253874220854803315102722108506004731352353624417779977761079367671682792360231210997025762784202724552980705240975817642550328370268688937727999754282533140907342871844177084975490719746302215854395592975138819419437416080237543718331538859302182967794590445368847122046843436004421786770315252175223416655645216044380349690518057224788948591132509796377773178316264098948707837468011607272054215789756274116515556882988148193983345846506785941812582860529551249552919573947576230431546199292719910934978300418936853132992036640299745682407749491182313849183457206824869101992186147620680729074817762156288932757838687315015466129716254389605992603797351551707800455955469074701567005968859122442332586844614247547523120151668499308213858644013065999739735326442002910264669204045657249028313049096647893525157823523265786644124204373262765102473190201327277391835998080739304915497856450326791640639718273134995053628481917119825985221574447345699994172426943941609306891059417952232927567701592996278371574878499637017516667445282941512396985042828533097192704507617658095060156898560522152724471007221557831810053876931606612478163098939727529990629915044058962233957491172072774841454027199365203393655491351202739880814917738543700184856174513227510226462669932001840355555664824313070089389190400706226704517523995395804785126553920353402484173141330790465225030680988952795652393894207671991838246267110537060576681612972963661376093272904614031079854162378663115988306762589732722662111170968972809539975832463671170873654977401915022345493493222029975709266077059792166598925700487449311647094675908543640827761317085523499685382890243639781019095301379282211101078708453782527775251606496606824352797253393743225342249091345168492798028774440798837793181201854679664942840166278321236494595808519954953574770985274270548473654667800249710160638393777031857954799161676598275666241261417858009445679813251675664851446320676028124903298600924572064020049620523843845063994338770563520098589797324153104617649263344501594252647980609855806971139534403094115525055603645696439583668978859624598231049104376727658753545468654325162135213642530525710059757946810691632359747668193193959961219514574777139160111387460296006161834951679435728310697482017255120871959142073377485059233973379831926928912067196755987154901934580689922554837066518103591083576004285667045284407891675276115637377851532332889024035622445430475619324345779116163325877803821953837682956332917375109572935227771954768908404445919146551955917167514933385128586860364087329739689558286332110681595693110704922509572316069848379148514503656004768779348864396931057741874495477047395738671731374298237871902780986754000003920182120371494600096922190010575281068250935237136288178277126342547900582038118382187892085853570052308572860946362529531693575728971872732549598894225176684495640663418281298054243940102942641653066058512281777537308890354813284017940684005585519474707033342361191735052319105850832295886655937769768638266711419359912120891436910025977121922032150866253600410739108229577167918066556224397870481948747112975607747547723957033815093849748341675628655674949514022118095126042985559465128714567272945404361727192981903652954976833213609824200887495967990196376121924808562210794925908309184573805347369399824205693411321503933279935258159819028050775692779675857198746125804144333916805147609079339681155948829413852290010527779216658952282201467222306961635819420304837117214119949055960234926645730706783322775343993861036034646675624068176849196060548833503412269430649045029364360704922154240503048089880683061120058612305012881108055295703983367381390807907658214825086894415476122265381813024521799898362951242490522862362665197076381840817904263269826994533645066651932328274340501402050232236728715829812077022307518734088373069479405411459381604077651775569056509395149701546975513489793595793632892370967598043932884825638635107957354105738633484784149336560210238094902951125804023984404141914554435691599053151144902742447785352014654209571178782205535164916088612794504592262759770732608148780920894899630004065122348128441702979369965476148889821644001003133913700640159549363070275371106024293886701913844534429306337383784178151284027411053317924636276185934630277882999626187967065755024219428004793564911478011223883234468376184727670713305326771154581979790121048993219872154140099161599012851551612054069168992302292795749533738779465294537214654942408442687831576535705564966498604428067267213622571903210422532536928349499297398945131979493381434810313422749982470028285428489413593744212170441980621291222422965400684306851921469589840580505393361909540187767758607643341190597964620687262706498651500616074457263112212039048605549945777145728607798848329403319502520851182426673973961841652863510093503549364503790030981590693176590074806707175140426458740684413544387325320403592677193499696251394445994091248777340400888314394323470279128943569940312921155342687593644464651122767676544673173431460484707443849812693762824941438783495901771281493944693260505000425744039962733271231654433166533606691729836728233162576608548698431919244909367341124783078478836573568988264783441362899554300042110948671499814844103645339587055179072044600012940790243593310831272671949472808241477164775083807538565675847909988030124096500875809711937361472682762820325456735580303158409077323014155110171084641593931365998818840282303451101735483348600088328462966111582906513533332982245878277552927409086891233466115418621756547104901740211429552879467410965873967441854745854880368071156981827816451207858598173096366555468029063751294027427029734074561983955192413811976578914072775935297233517601387107829760150066722299892994280840051913879030807036440840732029017918317587670593325104391215677884733849363461864777668772901288521498789694887517095561047089595243312171002021089437977599600658389938367615226739950336877273761489548882465135975530012887404132604436765065135805820454994980426626362814019301551287172485087693427282950034570776548618174726500987089437645693578355528868884557941003830470143201878490347603833625350280906226247733867949417124904286941996892170233847423159895609947971743185588877051438654931656634649095367565381061283782026252303826009784310387109563340585086466861234950023845887976965391132588499456653586537669196057963834673004103535791726459221747831736746100038957272750190793541602282550052936434517501400221014262848927262771678542924652444123316733255280518287899447177748469422265214271094825480379999788970125331288766644188801796210453946838585755577108595721212756717402880585188026268768391785522643008722893768053076049952124292174352782986934516634009663329718097228963624388362699570450092433002843084962812254773184541356444490768812312235368561606573636165833634955940006820512953339386261311337743645505110479363281060487955865247390724411736841158860224746426954360005614318377141361988595021384644198372191644878408511845354097640396330883110954031727809977855528747419923789574069495484882088502253050967179228800313407102280833058904258818129659941782486800515561834882945064130988089548569675049261385224203285366005726179460456929927681124939029113638134175712546692919366824038085501056761833594356774855261051399627997141517560107995275843443461146291930554800791735450840426106758312407901268424259654523953917117642093840464597327653820871177776431406976411344385268880665014668441909652434161171107894931596597179415716423624429329364382565216361447326577867855860111983088336564379932764302242351178798138499444117284944668835067783375475241622615105227819368784093577492697605426763349857888576057506417485354088959050807834753982529533686814186082422364701599563956248881641998001711226220172910832239650481440989631316444073228825221707786959224907998825116578069452513004277613315558198175576315178264588246246478306755279535821633586568411643001092990438706578579630042791779628857284295876959892959635254554443446857019890118077963649529538437042671922406979694972684839607001490202220254467888148251654111774463678891403786514913135781474296982666706877657753938073961870847921867638343150955710601959731406654726047410054676545623398825720221639476687418263872565274488237904216392825448935976347053613742341109797476387731643188912751694395664391185724963470093971072423411449248707185760504996299241336919708497788716107786960457122111450213741121955735082921622016663575562658448624677071652182476304567854295928107312983735199223932751247695910823982606230926386833081718750463935329679326701887054809451710467232503128976571515124411303482456521945308038839591588405034039249402639798483410192827422199361558256335038461516112430975433648566062495789648879966004304097314076578381853671271789545219754297744284185724945043410538528734770799159291104281502047070445032758883062016040680422635582141034219897293493123302276593047256722685916797877835513302205313219742347305128328618430571438107722652919178682322078998435726986861416478548448567523153239550008456806982671416356718624490027750777861898567217136986129125124806070605665002317890142288371293385336495690649217927877436489835564613810400655985964368747055250184701930333937684978716824845007243398922240396616549323779781000396484444889246465381412449292041567847427184726910895547675023105446728304629229454549932509414761186383245323415862342588958054035176710449424114557990152705828403986086037321986332369651709516923596291986397886344312971502352660395204093544395837976074681727197800327072474336074454156430790094205067626905042863228191331692330668131278212281633188751709324854161646083092456619171989553290967616735672937424186102362372459252563131730929320851282363013639013570931926323582454657913183290772956737072195708430977241601610088461667841315909690585991894016323403904768563174078231889949016040038773710040449979364977811726415113652367284492397341822531347505872075851537998162272975129878831185227989124900984100241516730488593752057276715240942625545696469558435841946658498694194618678994384324469273530881442167180786353412241685871795943358652350584003136052250352559707076075067997463475718994728772046603018253858419685999523881437005399017923320566015223322657285998049050797160917696696509775463276517669375125423627106505222570309689358241664151111415854661013692444927491257110082101649426521587629329212750754345659376079625181039119741048799901164720022029267985740491055331990033533351112826446416753750659470883670496039818405031420440516699681844163909331873148805241606851819210406791173771963031528534352927757724202118612452572658953434252006526925868495440536895967379342263907168182728507209881259341975397845954046555914328278070486303208539264670361174060151566768258435937227585577579828510508220503963919401442930860267606651368581158095123069574297615113219384769233202938777801975725760606558406450079612230981650941349578937328992003054578415767383880559927323985218503997185097414083804102701607538151976475453816639491645642118925253293557293182169031873255581508390192449415609695936584099460460192625628257619882722892244386758987218826456703829287074491513644932933274736995122270191853169063334027135812946371367586278124453137399268479870515723771246772331793400978050854160878532945966138317722424047144949760815734846516740232746905431862821248126211622171037555858066647613070480322462187340630640583642230750294332618609673616018623555079122010262404887547929964588789267696716319613223796354823207706643359669426096379533540747558744646305775037727067328628453213510776569685710049861403136324124662421744159148530748489927254132831399485345408604808861165134683880179558165144311977324996318639694195555743868496832670061401748865001960699667761168921955735878217728553581392383432745055264854870113748476553689019063648602989284545435373987141530514456522422309307343313993235659063966623835679512557775174532701552111150069158664201281230170942519236381248996630067176355423739284974129064709855060940090434453907267562298114532563987665831554960732576906623969660836195321333373633984496173219759044267956638299832549702278385372607319635925439414077052877384392603913035710523276592639906004791671915163316575281601482671209035484321066666462001247985548908428799322501674614112454813754787373272985669407371121399256533241418836869041365021247737350101324259558952778979349191664675365326289211835816061550953847861397712768981507934419400404638701403817848934749051101054014449800988025285352568583004626809672836843401072621992952234713075786915131562305131121842487066603120924043790278799428857518343785452194096377551167679207498996141761169570656644640664521674707615728735011115300520912400954908978790300323024202163694960115856597441672312559821478646235977730227107858015507822088748532465796101492169077342498619372884602260460765966597089170957021745975841243661644356093059610952771232756437450729663941283249510536538996077541752836513180890291137978267028112965902579291841829163037034276572223949008998185616316467316941822028668350339691042973206805632890286256246289593126959414947601115024299798167677453741807327572461405874052713120237849891746420030866908361064709747653645817799806017748718866079741372160530751804787623449163777728948540216884624697310802097263962615914322393917184948078262950959806756953433120162392850882124532930925374165643793475454615556719098980219189077535614294945216007005215111405179950290524609826596241077975754063607575469242578276083680840071470659625190531604096671169946056816556701391853423457079420696755205088108880010294466055297667961768049527527053296246123276105129400558860338425502124112931706265728902162960513196857432412961524657185103731887671889698741778577638373349342970797145768332849773881334449549514665820134311679112948921084108048600443989265117386081233305527327071870896385654099322168053863176195808979540027467639840257768958265692313693247602304375965687725414366228566679441410623699317694290220925811514473480257538725033260666409559487888888469707057575267210499168534637416143649839198718794497792375053672158847263163130451146874314885308051348677333001804278041675559304222750504692290767586122581341750797838193305237334087663301107748968056553182198487478489950746440515961752299814062911436838674890646504814085118255979009926876522092292859506707680348834267219241350897425518329710867319265576401958040398242367700180485678145708902834543391006531443838210182920480484839002073772947254457633306480933660596641057855888462345293002844455968319759133037743242073316955751661761066585417889745050684090455252990291999041382313818736692511335253254379100958141274908977919980038261282510626345026484515318218483116479834857117603637916376159947817847782173493250750499312808956494183905822093653384776482356893117621701191594471754255163963719024615727723274531084167653641128002207043578581920958756520102721068165384250090254670443006086861101754818057249661685374793960339125148186428036689140554301923224847329402985151416845348293347110816744321245508264454239464332849992590262638717593569011074957865503817604182887337989400379657647892130085494319689025226400718820350702190969525628640534309715868477255123590847047598527986538054106353464392591935533997309940629054395500914042802556255724512230041289047501175145706545446687040595071172480596704063853903141714850494359428151963443767641055788270529820506219837766108039841000387034148406459319553603361527213344958567115937343401662778863730398384253627366326833983503106249442893297044027664834685975348498467804487405301151143655495053164482695627614048873566950767340893653349671746422836728077875268025413032469099244005426765682203927816865147208093105384507042300018338833115467956626351116317821899208836584290620319537413425844206315110709138356991158432464708695592290664400512021064685335794257440404025345170115861177302559006721231472014548608535858823677660794849000140638267557005684267216195985516471283523208265254668554477268294158679514108820387895992935245331227040801157297416907290638759253856478064621186015657931272131049531607268042298044662402103890547814837863816839037831717803049316773714746490626007097979446116712385840666960136741270616664091250939336692404961084576490649550943027340769853653964304285807139002097719983582234574407815797035450958850187263790875286224841351855141794891205318116284776468517277883246491544930345600960231331834441639852514121026444279972026301554753204312302277157141140392241431493722793484891543206231693279910098591572583091953551944280078619307939873106106240606005034999618941774040017411014159358181533481273250940175095653639631213320990013909183218595729506678840466188967102349033138281635081667405364511197699644798078896811219287995329948242998139461367148345382675108672326553144967292089480821617792139025649942643374445636849999662914857462938359059495270511792451534776043317383192969137844656470216176777483089122514251106462145398726065870150920829154169259497951991914236509900483222449897758152348956610846026940756763402851946855825269335185571203192627230416408751964548529600526135680268282343602097079923993946186467267455084568994187369079723447088043829759199695911083551334914786423068059585121595803369269009488216490150960631862003931218651721740899379827244133706629487594309766274662597433911540973012045914377647371146844892188924609418329364088774927848732854697023484666294007526094868892043966174455510475286660741102436225829870628383057265722841226601527230866065906316319169719636909306597958824408335455386172054912320761292128219772263968008991596750614150321911259508595077042656097928606734479975938161294243946243368712310422113364091424467783801390969202515232238910916815084888369752588482242181690023201557402467367346345969394771053866934346342900350848746851104327832161134174689422700394593319257820963780870996254404304810683345972463211842095696925421256808762810575799005633806022517221327266322866480609830095266666000148263014094763509687704079740763314268901614379413306406117629993452521545928448798337824386677299459213435369516438058322165995274227442076568306761196523827658733089414304300757001805093679621725892544296812327190965222172082531309455477304413094853981123182535443106696891250226034178738171073609739236152844998220094644009463452184981983591211328918810267468400058507407605719801934803328655487741823781401681152898304380243184728219157143707868466032347913579760936742704915447115074784081603274711343430807426825094506831780292626032825916522851274950974956647618988284301109575011509097829513309152230755562537500920704930551476037008707574207437118037262736768630448450967566846845101232410957916651027100945941165671761937751203450925890871651203551748269743678244023504129076240706146586669001514601099255262168130391738907645132494574674930107218886770627370519004813656912862882815077047376317230798829597684723737069641275478239861378185029569132166660895143775193679713955917337105804249724710778462856008478344220736733548863353717608304728229739370072449241524171447469988919311824189429572637477888698924202337156827285791879427401299279128530713127187386656665416595834662788465797521610869204198203520860170783999798677336818638362181704723058917363874823430374484642001105876041863699068762298362026502993921078007630574394524104916937869563261764139374513833169845324297783919419244807829087160345281185941113841385032131739590452547298131234191607111931978290228692742348672956985390191735594416259260000098811819464029595588475572411632294100186312507156637125194880621997080933779036482477406989684461674542533771503259564073240694086962593131970414733404259662712220230441853237797611587053366882290181727918866068296626343934761053975618616570312652301714875849758132443998534930269393316210689269181328784188140381568657086489727519229305614006500534284955114082270370495097732480499351842122170842183215371547169624089613118698942353733674110817704022947028612912004921790418148488059819444112646833591601271941279078767986814370579392741106304047858163531714124277804039109209998520541214263984664865079420647794662953942048213240318505537067960213418210951449593635304021991671379532716683902743352577657347316232395777446637065570394850318175411560840013755781507867478941469639378911093278257779761357023672769466983898511575976930186217227702522620373349319784567588840797188938128067674805025961592607063281107788990512877666837678789863061354907029474957978316536307372485436704120854599167388129047137828270753339037563462290078488679603982728658317139792598014802376825243097129502680425970471239325703692191566676367860288833413056167451865600690986513192645621860246536275278251589104814545628684537986519094185526452002209656300409150217087335522710044056606119477954423963007929780087011278402833178494445557554379935484704471641100786447831146189806603586709308909781539328343765726736303589170090208387516828308617351677739451628284907610078971039065236614301249047871279438408614172354051071408885797329496073063254278781750283145890677743871753362507553890666328037160959845954175294386284283695315319630394287028391223651795680686424953950120171998220954228701376835724961722393204436779279570672022713350460726415117983506026664098268657220207315849683001084532263617792706629023922683690439119552224482345487679151827013480785932544214350250868740507283436953585084850465759942553350308249584238665274734915972132751816550639757510553337089450016704759168176806748171738721477923847720660138245198986752918799517136948883881966142490835801118673188418246473229599347364885771844086246487729616078258736241638034045097757791951828184440494090284156651124904649046562133656339781996640450817924873736275703200142813058946955258296712001261718866022459362777078688123056806597569968478137614112632149856230012942067622720834595526043055758822026310343671645597859251835083097931823180954785478214350673331417529928925809147253730074013861040011102880150673628224391840987854158197150893213222360264942734392342667977642703498523436014490034002386311086369277703006492504765734652295219297007468069596290842860219566349671406548794281254823009848330817448051145561258698789826426871489841499943464434247731163007816641548714127939983400602163779126131152101304637293890428947943939791569611101288767392490083493189452241862103151404436080463917375244471202186519856601605303464360972913880371709114565446500140945854604263982164432681833120479006403028961537139527692328480682039215953919274994530337397129435265923022240015361327222800367538132152985995931768745364143162503664440987823883992196323110604914929237424925400010779193467873810602831001114481132299824156008827883673843567519920104121725662603541202861156396740976943614309786184688276093933601965628551728545464419598554483277910866872935037434085543909730571229881175579507971228153113095953684811349577295653433144313784984680244789800381500276183733768360763758483797875254514760594025202160864436881080192584694691648477785116191399278099895434458073875938460466408349063407849483237758303706468958582780875702356614903858826232730245897293246273518870165220471938856643051785667678110167755237011395365379363601322415536577914510906167372410624033627716207869129666634783304145943263750699724686851398491524458086815044128752413984824395732335991364408923005903055420795003793638429030857089186382669335047157743938635275495608136828901920031988310917398593350897670379580311129407080369931457584067557082702912388553766515480898321075269774082428267427940534055256759763843227008195507461066751525486357425553603753672164853080942104964218811277926075798555024656265757638727473338570807633778350499174120288445014151080239709161256916215875048048382756492860225196175065318074546535581419841349131474738980329284909310088908570656631007489020148144438506131228790846383791428884644115475743853800136887073348539956070218270358437004453060749295155320287052657234504368691710955139857406627742056147975363706549861025485424651925334676702849670578994856719492627453056241124913547018532266818024858202721879707468530632077503239207709261998405054170046397336130629538384693327327404504383133720288775873450938480326536287242549693181058339288847851304161139539170287833181053863368866608978062085326743531974814438067699599632190977229390555729791398112370250100769455033859921928562694946703209112813881392261230547411354348948055920781660031300851371231013806104149203574039920328519869338837992141399608639710814207944933334921861900711263905034039692623786382191721058186996269058643919279186076873619241178824897788139757014320759079638318843993370377203400495034654482970713237702614192513881548768776176474978593545666356674488091537841653164097011178673150850596086144520676759190243619648369983594376289729139850432855275726545093650058325181604562686160410742261755541125623427099085100752771624250897972275532691170828035054374400401042269085923260686603016347137561477806476574308261190160068659252527529684313025561530791284019361262308348479572743746086835086875338380860828448137125068265500786063348746740772345228494439999771149322104516450014211693071167553913071911428350323309272477062112174982023193493508221171573893298692032423429700856033938859885376366626130359224725184717758413201084402217884631698959991241516659387599474687205396898562214381900353865060817466319530651444418136279192780072443062465097406986081343523773492676450903908651660504684786110289635374447008547459670631997391974735506692013683391359413606327096540797212976426800357687083856988000007817061138394548598503490093546939154871928818313545709518022421502049806998682181484111998149760321117267839068731211223181023847477211642216687151077241441511033130282874790155228049852599836241017073665356081335412947960949471979898666363758686696944873683331508580946369619281182390722424076417762536699334575148850951790466389252486673426344774999793560605288074253300782028161451595353121906018639687929153091327773243642618161491099763880083926648168401030428113690796161264361449766910926208035453441810884672365913041990313157042135150595069741851162010455862397470665649965496328229307187208635037989194107669456863773669994794673317258098470477010641668433803401397724301628150306008710436617133652368869689048011441367395487452055184327750956566830173450002307818967662227868100462159306916080830537792400005000828477081267627068730679898886284812887413065671048763252935856228825502510433700416738722101898600579984424344889330523905445029003361418167171836341756837412363936064458389379482104186507369990852174780881275502210440019439028621477823319664165624473199262446353121652496856977117108078266043988085801992105646350089457004488824382288765689016332529646499659131570006781948823154535415417860888270627564600539891456544845605738442587948574785960238737803464796169262605490617584401106595877528338370247505907240611046508406146541861493061519870709284894166122460616604901216838295102027630636580654108057549603087491998342714089195856511820442515219953826515842801760953981836718016542483718771794394621930729289437365135144605042446453439918719352462682838759652937151075991022524594229759639142671865832846674936183114142815932958634031791871076258962282642393332105164710582122177631810886665765551166109722143034948397009104702056230124739680012867813627362599443575002849689316650904455931750140183938170500496131128425881430688732676780858966987441483119774374841536741994715689407271417038294873329414116394495041967940584446766585829063050728543145592991074250186647518606144458614156382004734722386829977942604443496311411837389820381441434081265524699265785655711522884839774061603231345393489970277715515931298903915851049025011947177733332573273268700655015238445369226592419461206067874073556395863943494274695590990365296294341617205952309501823626303501496554944710185321300822783014035592527024376533461667315374381172242337502571161574355936412432044879721355144098667790930223551178094633556700098946597026650230347554453376878423058813727985757570412464532955909429860703278696787336633022834921635618497733323334514495431349249981902995973741943367391756924145123325433180429155083304891230184799752127421456197526231299974910933135020410555568205704357885333037182433003835233947220194386963437622176682099344484593213643910511499724651851938464856591955475767390984993633542697692890250727690951161573389000879039162434915770242857291735163545611181732091434140835965939078596659873098951674570633482388256194511801009070915334700271861266581020397993643061796613954741922477920162101605307751553255147548960075760785896021301576709297615304505573789517129477078691747398338526060161799395781793728295110175383857350515578733558996543165406698754409159159455332986452141857596317336732799549378856790191171341780325062053181711832315927227606780032300698120600006746067926959659348356318683235572102126024890940130530450890189536222811889851519515790249203967451921038532924930313917333147635399097450773500540173957476263767878871917702568935087012501676500959452883810338904374785969441921657063863177452637040907833303145200163164017090337465589669202621721527257514179460934289451816630819173184158899582336884359578684924020228690586127295276309957997855681600611248489789704282204110794879965159776475008794726379155772934407391204309775081978650794989380902146064143736143910336850165969645352792059146311772908968305905327330712654587841158077484513356879088887711947215426240969755151882084848545063566633338895944271515494644701736166307521407378191227981640867611475243295357720665142152276805425886975434782959967231011454827519089705921000991781595061728587281402489257400158435158973707646228511067790982638626068837185957327465514005998760942397649123782601108194134433087991288537582269688428830007433931866107953123060398592913754997187243092815625276771150984879099744016020002764346257185733137035535141855212218133084748795227705916346671825091634338097026908700323421472635973033974575738012881101011615353262496941353360932090490392090155230327420705631720957873664323359223315082748098102627957105449314868205953164986812880243083978879897914136701359718630296405438106783912694035016444584499897721874082429379151323245903877123802800986268645765151697790430135859986899593584378798585434946380544627525960991325001438965153081566228304220136222413107977457993779998604839842547307128526216202419521828172100290081447767348438601011736263581100162478913529673478693273851582791721031642863189604092586920722520076853399634561961399397403660777661684901846362108895086148665195915586765171153759257817623757149637887176832378525734565233651288876888212865444641920350840917234241174991958936318161735633650615350044128747578883433483661362896048033306757214938146234901689777777183240523899369288306991085584456758788503902146728826413031406305596581970231176640229334041546351994868477508242706785298787888499698401613178230045095825313599112425199599236250651087320890212883727717132261070861085167536993657783598245350656320079107946887130945020858765037152125953588197774019371532966905167885278156689833996266264937390569115160463293745676198235020731742494693057803867414179410249975345813848392956197240007097651924176506509431279716133166521160130454181716478018911881899012174332388089988124838299251474104592839615645299774607655015538014800686640616761297189681795932870874813193325176810724037934829410283621717229320356779775417233280734569793365236296706748556549120681808353690420576585258986862553865501565870889212748099883392014478678561183765987623963974414790257245082497746720628105628630128864169487456069554840358510454399766320440545848674840057909234384350061744378889501710776112749046932021204175017083640909732358348988363140044459314357316383007301697453704918689993616988944856047622787952783523059529362064112823081839807240299142109708390115772659751819604022821508715207808974629938557179979440028672356528015229984372247143929424551504223169370122035291686595947669490280636238536772462926710622885630633442888336253133497827677518924904259225821242233197522621759574465583296484493674096001124267504586936978751182993906110764323634047218707998390344500846755438126413926530682786467749294254507960520160255343324742058512380988063262322947304779527386657326441815685822887366447341957285933322348530309460378116088243499494800132416520170349252401174171754187661043195023350386541054663111930627265547728949003779697307037817977241035856779184882029073289988706638634991955085942952022706742841706859334054797704041558366038325690437324217103684293609106353701007625173952693801430521952275649676021408729114333006627156099207759224934889573722134224242953549083915195812288426952410693540675184413429955804406907153216596437677187828065496642646628800509742009592614115099648496427947660862727007631369760828057815108159384439802492584521809815153691705761599887838683483777011154043785186968478579250829654728914144724998492248194183436544487058931982527259108622492324119041171697803617973466219864717210461787553312991694658781033755386234420202372098249841033023188056271779558352296323014643597323774854711163547629992476818144767954244075533018375802763049216586065225199080829616555571109356679362183612130856333965490070023608621200502140927952143894818037177245680223594134490395988586744362632041085034966511700676421477814379483493406894556016729704763102595755368525298295169372201668073467604655308713367342093968787796921764398669367390770039324155894363507847934787281574308659325562476426288963464660504265946441857479132831444607850971467165075947233753364310285329208635320009251892449715239872345649204742808850310285041440334439910721724817428688982950360497925310877928494559954559673637409803156739163229731490261809626066543121291007593826116724139791179377512237103815898116981745181226310407663131749750778650287900321259597659928281575837147228958166928745747946810235413636680388653461877083795486257017701665434106952591891281153355428972813806102707910332911682262059366988327308636318477777426610277109792440397477607990649955846133960239279771609464461751366023716279825673204666940102342339066464757662036294826917671481621533880492949006183372041080930162760487177098175110809880425036121413297594698173370041491059722832881647294166766338110811857536581399797004518654719139299405777397769565094555272887392215393072893036072508920433574177314960844629979227186549116921171837482674167673539235130637556418611114849820771711328056615939492794527381801841951214975770428462240904074187091098521351720255918220519371625930380504463945838568169451393957665961471884826231329385148750583047337835382037644774636911171771449737018656076093509063859559255637368540233605314502526579345103476044588426285033687540010486479278249004527441385120501561555637715809712370279896371809277559440456616081078039292547020459789328195027253298229601646508553993901439926759432709001038272157466176093214878181675072819945392959724945132150449473946140844996574159577137578297105441081207764532164358551767880545180802391838225114263157118772018665223395941044880682699825322039734429575536575413530921295173333134195687894100398119269172647824282831794576538616595537284551193522184970072064888818284032539877811165789299393984372731461574338020946329550356917999638865623328436758884156594817057370990717770790300203490882875415567775444326301395988223501730131438591102044631750160570506832497598859549471889942958809576481350554643916289454075801608584405101915910897175957511516323065353649586095095556992901316577911286045552869975348077394627180013750518132192436067399470836222140098223326619172067685354207575422215725355998629528083937970695288959140570417743081975036768243341118261018176174714159538283476527249325863473486205381498847112935589956396883977774708039874972279875651767396031294041868434444547217070571998995303882484005968027155427887393770310746323310187392823521439615172179215383309910000161849114300662733273856269742837832866074347257281253943555047366915842802011902529816481723726578943693232341737874849627350804059267091342344304464741695545674761383214859090166095869743310563642475250138284346253378514484163967802340718118312457903106228623378566038534168132494070085785498859846556325231180619016349556960951274637196550084103911325359483547990986435094842958751586560676523396074303965611202169128972202696674251249702743238006751446160931548355235700373347178624451043833167131500468061427364476812072071450805514237149533528971992154927084466240704702229824449933878258836337121066844341782814309897715801231501253345231660856505829859324533429924886698886780454500343360699726330329865715608650349364407466264845154177588403288605760172245158144060183760157200317792940440825077743840745219746004427380056597817349650786216927413795631378283896910629994124127189268899153192945779771854722211204430116212770981164422294001666824575994348515309692516633507351241099440829749230271900489175706313133384985300465945416689243371828207731936833741131037458842719652055030323782942329918625356198080022918010274987822886237727324485791074072785631250836660303130608403431296366573584817793040562551098584957169105406721227240898986865973963320629598153162775915458676498861619889027434721972750317177759627924313216843659904218568117014846224943632747198424289613795020145576721422186621403003460739497142855317288655869836984731275598159381577588516830438658988628836417206443091185135140114847332845283460421178095497034918440554647758677210836880414653193558189564460295017547214798817688351741807021586072223482390020686916923181998342026006238957619145607560317973025223940452167704789034402914591262705500050499551952800913814998290257673119891183921865638002506750019186160215806884136495223617499047275713346630752595636990002685491719487130521360021933620670711238449487093466159222640238645043670580750564440251185122868922865202446393961237860312734127680881821814295358194823592357581164440359509794586434138306310873978572338829697421590530426972476676178415359261709954596894873329165460611021368372969339309478745415446074129543382213570277630248474677962379406586167541400541133722430334578138383493066072358863318909435560473983432387122752914299788583987901894025808395572906665455204968498587029709163800147439024183715168851425752770892536774512243865695143694865771348304158130275567188449843720629236048928962188682357774907953038849070132374618890259034830497163014447791364239687994302026680071128388874037493697551456542626179929459048485355064958378091290647223230806718623264607265933530682474114206076695582629218165737464435042958950049596577629514172893447743325059777499166828140031759763227235074110402757998941212948769670290574279499924377150782158252343384893026516711810064896489067588526907188489029916978739140685515291624916385850998557519803847321788717693332327571359904584426322989801817352132572810358003195667195606536743277524234875496880976061225672388898638674202972869212561183501042366074622597052902238837390624751489164599691875225291355923934659005008417015900283343905603566672981999569832350413997549448293824394743887136731264220031835821077175896462738575070357124248619060579725832299560397154314730378542905366513391868166011804391736847986256723956372758983689991098083990144538888514963041241242299793130799530281800342694187278412784734944419165066057446264403214224731060159916850490566523619766049500791036831751086034759318325625028087341081777039525856745073029440052036424572535964329745230521030867561265254836084269278956534610613980651681155434570964389629886464994790454118465636771444852276997592285735960904038730698894238659473285724794755701465172367965798655049998163853553264262171423463681707244735218730578669441581008465365670356124967776744850799935532680961601693715219566024182923021000723955895509901381331545390464542265510461459696533233279934112197405384604511049462029490736681506351220483621177815755907113505924844791746883682528305230652753384901141872572348531070049356686526221565563748288176633341270511401120259311261284361436093151661276949930041383991386961253330706489880386913364040595806512964409538061024443842438774282697638771000548709862290850564515425146436867900843701397337109486775004457949788664874603213706213747629167434812819398368632495516656474079950626362033501495166349730572228415896287399983767300846337602769017420921512812940635361583920458701844893811909223280710216144566351339057949533682272108268497997121477381198677163860842241039981685553537707394104629500328522945817317401362600014534156309458159852582853543451744169682919682206935144782994806592380607613962290650181670525641302506631001043119160499103267550480282843891962708131709911196768198349069914443193148026039367274504867013829661826945670398515939984531407076433500077759874745356709233931477325483606116682564175680996908843569220081931332729530573828326528583665853682950972157758872326816652132017989213257015482030938701760061159993165645543971598004575537402968848238811707746842630096223300250148376895406969053453224909610103477245796655428000976591222216313790421351901580812741344826473947022646174775867149455921329470810895266160815915175276580026631580793844132271130083366972258584230008195213619350793477330232731671344749655713948106625383288722058763559871412412569923288885794996993951555378416858474783224313491232416988546006818842475627234392072536165662188148200051710114946447911060426943250222866307969649317290566984973826140723964494484945466780563074280572945926445203344307199148224832991279722623460214203325838364228790216630582102431924802389978173147533833968869444773700011893235594372198290224356824343040676304511983222798560868653143687657960523740247963174887255372593765076779639404061212556967017036718093741312034742318529357456462953628493551682711603520626166290231402135212838316916162932897763543122720854081475893113724457098276744655093628392493489772577191728401882271253800762119674233178122880937249358874593767648707361460645082318045658669867477446549167588437450692737800765233085537293815994295907630935459280487008543414413788935121636514025279817511887666843839518467299279097990610970313627160987150946217264061856988250743089396606085373149203378432630698326431971940659076110536059853863326360604507773616031584952427208359821114657088707503146238770275984885890545326699829190946484862796363026577292737553112596135392290107859327935145921564701620465853820394593358701888811784980817547916057945847154304643325824695913199341597745627790972357890214166998651053454693161555419337543384039858474113706400450585270337909015892761893728859382467873135596698584468318837587698158373225280556858951740268522615385395312872684968436081449822755833210079455832714157118771873328802392772368985354649646227460534354297218472099728549209292624587147042137533137953178954447542177916640855731419482388057837827525571073018159783519061157400642815563522022227890614730604412215480329871967320099700726199299107913919295662155813181159073076951009248681182479559599465001698512331610943981743645273124827113634469594583968136507087385263958345194416882997753258396210457312942793104154378887117185957303536459601584730401588304279605047760425198528173615213906652889237767286589274938774496033050916966198403671028277568830128880138703922541984896593408383710924792681394321697692601086940583508298931963959591084167423519387728506608047912251551600136064166649583325755458086111957881583104624828314842364732651074156881888860500723406753503720621561412286227557328170003381170725164404343994579961922585467272274658914532786033729990867785770978041808977422191078598713891030878655303806249120013724489318276308519782855333829521668857787106475273406198156724374336442183146230014474867108486019243459621096214230512235520897858832057075239714762881985738980024521842845834428726225106056748047577728854239212970660847223592361524037217019219228203797971027716029057260955247798917442855624945995632570929229192771425854254144845493014828715095898402548785592727486807340436858079039874701088199659870358818634021321870482371143534730085066551168150160631358238576814526790932796428266366628986620527632739739545216898877522176329339198349198591369401544011782617222302087570498194178084191267526532254133341745169140834213717064248299847418731507231206726826667270892454246105587339626811797230631252308393868160667965740320665279417201507288590812123841479857779713816409071773357913911596999695712105769261793151677750295307086121161583085567031135538773789249785549439180021980298755715417939197535428189557744490309896852577465283631850948423090113579956873178216765347991421945039101282067697297995385671287736780833402322679823623839996968749504180104102651403615970066286686148558488266722052335051712495128452140389924469152717038899146174718959598345715849631664731752023821355248476905733327320693155798209812718283126063147043098403829653065914773017662903004984230591118845700397944741932748989761265802567687637861814912614149129035296312889140132907081665324934377056531493466070832773491789580580452812757245267876623367569394958135065946914686331052343771595318665572888933842785261890959067940289496173796125718501098377313830689983243481689746325867266533581099843649674718623364830234372320048265198472808860117807969703462801274415484013471611995914653028982047486689175989009487444301928589666328189072643536742317294905625306346024409847472500790619911011032769015574144245718940336124013138559712128189934200897999809723993750068987115346994725275770087629699713621216406714925914734322869359509196662512279657168110507482218456251030664399947292543449478124150850809468173035614826308328684131566160081906862849008119196625053095292917512364136006059758289893185206450860163531088971722990787634895546867531918061212596135329695217033419125234868318340439602269178024295981059928466230355634928968175141981026360228014611659848348866403548170300190911290893955485233660941544147520897056457573457083007849236947037812037389133004098982692871968395967299245926025342919262793784277006399207851412574361756195024145306190778177803239553221281031749523820113936205418896759270703900514533242790766394222020221122128351993775348830995564296683473519301325060411871301180997104775353259621846932502550119673696590629653527852818202732954683740292184090291643551132390973353814484111958005101519223788686309803929975279443868908576469464239100560468068451244640385645620361198346215490889780493326775974808421872613205143702878770986607364999856217091341392764221876594962892835237306551882623455118981531921046448335646239693590189804973106885455590770395598836979763438568865394515043097614494312686492059357817586654534021317833697089937391117087001803212144242572458438587541545744276677519462004648317357621156789233242787409287051857008558014707202318917282946359009759261382613824989921087506042695139883079642389750119608087216444650564524044230606984117508646037026331867898212691860467058582318477299831775097327217378497439729167931067866584845793513265973249306546570969691829355837007772360412975678259863288400295206600657358784175270913508638327975859438398049878196760596737589676078549274594141954130474733490734214564735964398791505709700390952527422692560534203640934177306867110463264327869264866687417145405075896611841885747905375151332451981022540631019395322398523661355210220575679111201274523105658082056598301300339698411637174201140694680982967124269003420318485671442968312273675597726236250564371548833842014061220076251445209533822025826545551232431965876078964741897316854030633029064768518469936435115136196834220623706091048146910033651181778664042439257667767266642369688499021450570893120792307797296953518156116565037785928919548532524144936035582124546991932110891953882414678178253809661789664730789032393147917676470671256474269378848156838249288067396519023725011179206639052517828544546428358502549727480064320013245472707691318491143799842768919855777825752437039783100849344828344795822108188672313659651121056268378942641394697410117018478791073157646021532250021878100829082709754446458984580577232796410589920668120771396561680341069899402274115718381090264017147385389016000872825446710337928865609428017132515097897344237940338272724810982206686840108912685883252276750860243597512879323205085243475552378822962587686422732241777045043216153235936620059152714993648641481942026770147812159473656470858437913496247020174568517965564187653794551574155305369445627120928575189787105670179341757854184230711081316779034560148619257973315797557712335377562027131500415917490622532208837439684704616331901504710300293659486756695611609933684939158362411770374517192161938268435609537856372057250519187474779553229530496396976386225512352806571420256484664366744879613393344258486293672673167193274865490889131762492876996917684746267046759738614167694073101693717658288701371359043273480045664277511595763694691954897404639413334074380535861436428630282894758322412029260317855343192194729218084899755416955042338267634145630847873869301034954227871791564160059863631145082892295472910932836973447304477483104168490213138149806656055976124828761023543043865187401157051351034045717537844058369971395964782122778293862666939331632012194468435435299466063873904681867552691992559635694986346569469327746531854652416206735751508410468216652113133534972215072257313898488349521675315888580836862662754845856122640439850894814249431897509653999829446878947338515141872659948741996330406990099477908316806644730889640352025276337286656128663819287982592794036185005883392910888769032184554214965807750523826946773778824677686770020168518395000078725487659823432262349836593262706652525699340167232641110926166670625361623611499658038770595159839015780678025211184542352168488589260818359198504307489638835763743154300506290446476040794368233682560661497937469781026596926521296292798190876823662186609241237058446912160486594593572242376847887266726934551294461675665672850009577615889903865947526587958016699121089173305048523448067729633354173350123221501797612830232771381223719722428788748176366815903676369133428786673417204101730347227543646013197232168171261376265501634790463920241578788395233549979089467070529946407580278081473255580354864401682004426886785171861625125518027140553696951689801203442998185550992832478283180797681188829398039540675974496620751335264508448778648087041997571424140529627151561458255112263191261075177351148391062613603808778002012157734355505679049401387041996524465759831786211222517921387422520714519066069637319605423590750165140774409806584363071481803844176608398434216471935631753539521724980151448871104864041398865641154732613540487408680330326033864553774120408437722814332001703472028497394101070563270102408386213890242639728556396767302647603901646452283656989832429313152755150286140205178833012033790194994513220510638245785397781444446338401910561817505123388676252861100201974226588093182305019146230825480940791235444998279240660953894109982941540698287456056443546324505005564327494091612351180209436398778671030663243923177007494108970337523249492012313961989370188379768335736892847569875146440269233183603985521041825081213973763923602967376993200101834269082206965477235501234603500379388288288402035136668689581479277177058478960949166986958400111744279195056764813177547158130616778184676794042334873985224341637916823237862707325885819063465138903411831640264953250152960979705067120993078975236023362065750306001737369072253622635973513374330019931524362767587780160418935267203204982514645400368566795257582662757525460480782298191248675376837374483190567694495714798110763826450237874541046454249245209451024686093476775633295936378222544862347871038605280147866338551215556906937687476324094755093006461884715244021384304984798118573336770088603260206096537312856649594530263340493537546313763998180832262809073778981594832743570576916560557371887963364015532613883937964855991284007808588349941040629724217208108608686020775312730079765629895490422587449279872306723018920058814092874556463133450955584907965412362967381810964025176136279375592072975348874849212273372234066557277357630878018671385762372512557127165344297856478188662700094365464671742721287800876706014215327810599187514748337967637052769493504165631580107838315989613702907278829925595471554548124335958388595147387208403200404766446370921783320531532764106971458458101984956113863192244719990055282150056993792633425337198474282660457331550888429112791677685220370543166870772461794525015094059497664049959077328977395335642434413189700612290034134770762969987174476040623758938493908629028597750583346802987549064385241364936120966312230579372550248066107333019722626254719042330719252820084115009360513262779527703946703532657372137785049063151261238789821303473312530913940702573212676760501420815993830383903935635541461211322078893665411775836527158818813652728927586690664110834808121948341555106800414669948757972684196977118185429275803847717679621152979056121676621921865625629046355926751190683736889347327156100542510063980880498615491763885949398297754974250304635121518924898832069243565027670621270645048105174336692011116683377743307788894558835821652245420579961383594948418160285707391676861898807253600072243674660812101514660054656311687025235702662764973037129844183408851114848263020011085762361866205334951122493538239388573682618197036143210823549913792295955910187852462991811735008471915967401166743557422102208481741672163475748088715404471562028535423186482178210835425989001610773499935125621049103273542989366004250970622141150596924650878612988575595190193987318982175526027219381961034200892604764926058430362019951654328421429133068670882729337324645358995060113986959510405125940781798539808545752546331392974696841289931897685279712579072203976038858146441223082081791228019195333578665755906986289346071555450541620192222370618614559299065025655303310603600443491452676050539404941559904478277122143918311068235539501778891367345275945615426043132711818501723651605521447670385125236221631295509114427037024074452515482995173030499757196553703366946242997327601537631759940395125842068515529655889469785162379817051124700712681869384874393758596032749201612335914940717975192004213279475830628007052512512596338352387107757946421919989373676435923568986606749754441531792010012145849214513027975417640293789496036293949888080746515612575966303050647411943056027993445025016659303077485359370664502619064587790853716569216300806373009591330700241973789542711091333536991953654824858820540642216434060185870986877998383591877059610704174643675290319437522089585283058967716358768510116328060861610457609849441464820391029078412795501277192164727885884202055057292442577487159514875004322430802638441020474918990495423392691436011006956553693994381171979512131428900658519438322999071680143024139499402109827360181638043094723154908512589551434988435882823229338878021388851778624273725009576162212309776751130748026096719638351676898190617066770792096066748120675349015486110375627396618618891044811843221593032620718273928391203277183497290272884351152261074902182780130104971930483767790604771544218502416855848164184551183978048144719000504789201373100475046873385137403027867261177633056430794849498577524552748450275845657463551738287703562894303727015403948964261862638902334554530928336164963458001337492214032731696598959516587894813644673889073746888729004697470156095148772981781952100321395479191289079575533070078577985404434835990321826469165489907505656255028576517786473297286063837727039256488143242034686447688312077916214873331228316624221374747219230142578823520621264532411370985480946779727057384186326282038877249991942779743252875239579408350167298412506945517098714313046916557167191747953107213801492591298505788859628808809567825410909703089714525196676534665095544348365345208550640964697838425562596840874987984635534129076768489765152942335023190320797600022333480062390861705807905969556118124758365274043050141556158335128326755744043430502819211638853181941592651517914122442309607058035347633521810155115833910795480431403068685410653414638433978233935306103872571338565798395103500542756847226627750762226862757210754453557527405134517080396180471209171332038272143138030716267486992842747722383264683933260077880201043226888451289239561096130821682967816980315056422331706287202925307449208424523478585415734452572189268124369262282012810166604320500198059242825693411346512878340523242996206699465271077258334253231678558538325915408932953604417062463918967370826781813580685216953704340073717261800356959236310175818453149125914130465833764312807726457586716577938403738879597386247299278871262612233861556888615401557275090117248602157388683105811951547230913029483051791346039639705367248529702470212122580273380766590826035678114927816864151354318864224795411507091609906642660778359048657334245824207613113961079340337907881848018881766299088675750088911444485590013194517844637233734589946802259980101562859232483217484672407935722106883505084287816691461889702994909636420814612105981608862123758780094432116025549000898142628798297642918289671834657355961250652317144173840679277878797184273750309119061953906813812845336289491917300907365626146257950090249429860340779187146154102913545393998375020373804489840009028422904090334037969130772100718321345613715698510574454262171494113935561089257764574361689080226041451541578070463515228771393315030150984371286474583035917593883760866344655630588839314146845586584872704639471198112803712354996929480107376995494008464914090848720170508406652784978826950407079364388615805297145743117222423354519032385924321816543445916894791958829393449046306286608040282084390709700305851524230770448991814583895386648331324758064637068531579422903269253530979110670137638041019165181361283816029961097200544828924044603993851718471052514641275892326994910280070568052057511746656828997658815012127722313307864503974850274383156835422088075501164234875842249239367931478335219076779242583909206504553246213828248303543132551319537581077136165528201177661559867027234836225677258337903509183678048977327653944507295217315377820899791486717484801109660774550043993700062638505766387045748081499770074740032603242203815282743561963482450368703121368519482030943596247211073669998311268904805436441867807484705311321024777067427455437588118823364065186919487029824551596963660922214276186273401295118587785255866612031269013595453280067294412421194040584540125802398181944773845744832358093071375903716884750350488488569400912682011776404841613539761001378124642459175988142846343683312882059795962302596253809511012148210775180948065947776754248412701821861618365855110282604222153106820183227277770585492653941673014403597722051403640632067685225447039876789547847145984550956710192593660958614757185486107111959866186591538143311453185000169096584187717217996775305413247769457279428484438579701170093397132027108281443629967654741970978755925375248156995919160192683778471605814658565819527611913738297328431287577732631053011124257401902498088351192556866009660620549561076875389554020664975151073849828959425757366093731759500723956740698935356499385502956832855527912211172280885902413559957975579167778966425265018614239018159284338704267109819672636678702430876667155922979772423574261771274936102753265913414427823469648218055998740689750647531011657205204547855354637737605414534916049666906544194246452906279728478995198962185047760636515279980383219089593142336143283496010329576171489037746246480912406084095763538178972898593585082241641139827989679059071747601990229868834285412926640119668110709758554090949651524861828020911363047964427529876035914690798285459322300743141782036980810832511333544897984301317413826104665286437329767608966319426891483480482821218502968398468837087965433238568552264792509262514667931611018952219816019482575538362146502736956663260174212990825740654077621917876041860722183040161026668906582827494864717020609205149367746370267814969894155563136211550221363492345180745151344621168583517459813264147702976621599713995264743904497472796405805952329227575954625494652915814542086511892488636147295461208941619412586664378784448570188308402394058619411063805541439000966160888381839342843265627529711689756013172856465458725871803186047001531702203030156029810772441834472876210176487713917692434635625873644517941964941471742533856882140282728887742992170084436561342752229714063383863570712462043178534242228882091132201194054353272116031903969063728935963381416737929950861964652687251792253968437671721164330298715844879397118669107845863131620011778008492934922428540742798542576304728401373169068343367780770585893259344768345186586654413257530384076465514336828647847522645494390271055250466459920884663754697861447716361667675921300286675704141098072208834693905551239009729252457545904939548857783294102804797192765850259420060799315070185656931675874875310521318352689829722677100443467784552135136841912495994323128706047476266589720291385675792338171002785100105970244529139972954866251178332730510013226515479611577895761104874201272698734382265253338635979400735629370028147779706016785572486834456539731749111256590666809979894462687262696506738803472880835580892114138177141625476414962804331096845060227431048555017229398423204685846666378252693073241450613495188039348989083385685287525285028036600319573571017305170002381857013046320559425945427716239346966569479904689788429687723664839932451534379603937447337085201921669019852847636787247846890868975896053038032634763887692030284176808216006644999610683106054713021523271537417750248010216438869578200048700635509419911643280605254461036640137151321309417001444913889506339552947529863680803284482500970650392128211961095665888127581845900469458818191035685265201241605175232037167735187118872690535561208687225709948350595145856661780663708109976262334823704913497783359386619836209352364009352504306310288674076897643522829410456993097658082503460743011729377644111071136635112309160805395405178936667942616332590632337078853279247665285318735179251194785510566297759536910322313169514533767344452072487634632635277551158459143265736096588549769538848188206976939183619605489282704127291805116046056892273280885098261685952808819990130058833141434471820029021346514521320641956858459950104757908691141160365836170583908578073441607486609749540106834167323637953403833395300655916217475636206133532140833367032418824998129068730197529657249218414001563848466829397520286708018132529595932755521678202047216840320750678753234322023894803721284253783951120165017589076454909256131108437446396085537186508911604158990520638764049609008696230206105248944865649819841693043459497677880881839165364493632373823037375362148334808548051752863563713038288833480590155538423845273532112193736738967284602036906840536930785788624405653627783292558810664015049472291928656825444229533703160357662984215653507882995668980512347567782562896445217233899061383757329578831159972354893192439324853125560016608693124801280399638538455065779208718332552009410024837081344271444983673367747802992579458104527575135189522932417823814506966987520496453168050419434524052677486933878302674358518682420801169843038610439235935400430238624656232361195505149847640275114048251772672470003477848005642892324690773232533124375078091979617978032776883791159025565115557473051169691369955080462897648460413995922933382429813947878942695136587531127285186478240786743524268717415041913195090708466379194974315355614530363202874761279441088113972243030652586270214759644997452594471917363420600984156570505975515530474876356400775982966539805310336917805943250712379023916263852526997538834513123726716982947707189585614337416216432888231361452796653925061997350927878775698535050401858573233732312940790177575271622495517142303954933287342384981540755664056014340749577625237454525607805648613344584258938102028238106513149131989246836113072660102426177339802686109039023590365127796644172770874050740359687980085168306249600966572365359741728202995995663401622889454514817553285379643229183248998515843516125573511110570113046770518911947257075630698771408589064500170990063541513240701441414645520704250534718187947874791622028487764707651330891011052969462023080153999181068048290278908958704756620246003020559982496323042135863990480727364727786457672275269992313636665774616216443317303553799570294909797216884042460061353113652324837022009181587028058286488252115813605256974443574999779793234810336303852993879168861296269881540077824963726164028016082262399017176977134833557067898926635102930902505824073175319528573661693223346439539012279280174970899747927070816873147503457361349472001739032069137951131404147040020703020602521613391983181818745194292679541866477380152396325476665915768767054424576075385043011479824116032771097366017874289113721295340339087600292883718425857546915468632739312485176487911651878819736344068432859300224925612448649176534495022759945079507147076614271743752972956923788724360383094220789047669526613297815010994167723605480811050508502996283516178474607077664259905416842446025604562798689265710127648307718321064343742022802234440310378295432731379745129526842587552749398928530697043184871741218766431260124526768175707919450982647730094296195979653012585032940952779746820283880681710696385734923996315773112530999103287562347230329619710998334931948109552695711350544629749783015922528935096148468172367579695136183985792336840862641481181274290814117299947776172849955573200398996362766197416661053446712380076670527283292017617102566861702476427268790820364456230947249562800906065971376533023068110928487384637387588886743216241616130776614446708291382735965337288622064429851191092992624281002905257899808736629005377893122007015606700814150125636194556036269050221648332406938782705491885856439390172613757405499304931120539147033507960860774717806242553684172110387319385686021534224278382205393330877736138322715564200174183557807237924458025504497307347423202742458293991567353044568774941430041116918310081451167896422709405881650250025476191032022263659544288919723783725960526009831326153925276163469053167220358821126393857647648204520545971870842573914164768717350793313151563310084831936158256950500697959922845098726565898258469170099535155388034277203879001105645943278386625733842890990513277317817778260615584137569333281168520244716907028126666641330420789083132214293468432759498004214344262149973625664742141211560486391503792337810397607667676741392343263915481874348357029415168047778548890931171286613336673286885546788818779465020003983766339086794415258036496748207073684139073051145128350661533346991134718196314297424930403343739276094908137318326284083132581810057392776106544274096445500969977921011591086107904055206698290862747697552077428494700399167237674454638954744479496394669238816719304135149089990730531488753666328499265531876483816639305842511075077086341575988085831745633882693473315378051338427063589679085648940114743459024296637155328940059915035658318614364662909637784862809162222180015035638776247927509497366213054170894965725470217889747144739364808858253265155170636325466008010111361000447844784889689018470102032278109983281752176157524605687989897130425369663595230409653621083223955519764839191781266818488874735999391416230045991531482661775162331585693509682698530824703948792736639685101458096032459514508319000372905621595587338746204635583576843866979241294417056869819427880271813842307147420568028442376626438365620514687965145913000315220525335387741058265683641031511942101292041959069200191412198134378258311443511800184193547532192902310316381723915226993208577377377649775393874851291812774052327867190646047008794123199752903869068164715316443390801910233146459762124386075672441213775708026799443067145757514196450080416768940396865033619301425300884677125111285376955953257742127406612532864517910210366109524335221909969796217944780931437392110522736344258798479070377827671884971626766658424836892826176558394339134201560746145561750618999284591105741712619430161585916815821540169035781818785553967988715327822700025036967631956421901822391971597394544682903519155574823644293363933722086543782423559057491618417861249513426081514777667441454514304023404343768136705501282678586668778303322860662622855235079391939887590201730940142208391433300727047601373399783089019964713715062904708136887469816519856424692726679900081534571095679826619748572188736240067282776062733824086031816422914024495024606043796774203792200439048455072633257500000047072702682501929162543985605835133644720334910607023474354762200022900592656469419981769726978166778779277867715117759364227315032623101116518421923275265008685148911335749672249371489348563380987579444690317641557188005727953077658907493443983813239646719931671947872845095678117803790494158748026016556496077739692015816685574735018718730596917608611787026252454979302018016165294045563053630281457122052747185862301782821748844260517065085491966049039233122805427564599493726834918725502554854087046754785192521648223544677302472379276539815165799859267412834717340898755839118668828423017585034415611021295783121549287189744656693777019863398328359716967115471704808733502399901344455306972087908561152432525725437686966164640640095569740971495902607294611926468672695208147162168822644383657249336829154903039214668278754245027980405313798758405987680020940123203373462054424508210724103288190559494236875388975817492200604027408057816317438941276354164217080812893867861738380667254352229121226248930220431154969599314453108418599695795882090985070308943458997805621775095063474913494142840528156558611588661405776438156985068800803024617890512126809884202771319232611928796648772818904701969573399545502809164703477499601409786894708948906614664522384210314948179955586153463389811625052881190964443941033960564083217601434720554413319720094378334453690805052686715389477903896056386433366388848549130130780588599360389300611219177784052259166025758391348805740116899470070451070469294707420700570714591089019525390258781694856700488742580590866359175389174973896038196279599386484825860088752681976766125723695480073115455408765964444675325786787385896139581559216789517999413869474680037326580827005803896371147907944159850834555312312123938235749999922011023195593351020731112070019563428755494576514859998774100311457038807964524405254565393089867400284018240908755053843914387407223343845276252873464856422618185005524823115031994432468022640598693332037201857878180438052313275896459751982528616650234989424787223290976979132429568621572576463899780712333828716897110170100602840905202251279013463636753066419460231346877991696283830626743964192396505642568219018060271685207497533984836907442271647834120474264362704698230503078051591290828876443011987816607936144409440849236963989125357780353017545277002880271785835520826547679273927265242282363390728111483151908902471383042615408390264996934381317781882283395145642975598958730457561683782343046695789700731124444160702636892322020143961129388578296679343930262313595037331238385188926444698331484908777596694436314537322477168352605262634153116381871131741724844712917591400792269191743407157145690197832727461951551865822226402768519851595895215436280110626379562804904605154570770558185524812339569463647046501536275869384169115441610082643888177589515532327754014634386431176855387817977246855450026764011688330069694505764616131097272979274061958680076261043887364333520726946917147419114910876418616875244760996525474142267351647514158407571542049264928228926894369203223830727166855688386252855880075127243068502259160974652615406776662213051395231577197771444207819932844761206940064051702475899740122500506733399370324336069964113536330374458398480960242195061319203522603989371356836569205014827106685281805961084823830268173618274348260650882222305682093278446470763940405914217387381221254869264780458492952495426923878943016276774200436316731752021399390830268464801089939707435393340584674829850587215495235147457814684680994994004803042625836217585693494962521030959140902124989768011231835038751447377442003958971383106939624267141788000095263363902777063602655450116708951909818791423120146617217091244024081676299271956305805029215123028956038906793601760970689001377889182369216104077374080061484940009210618777933413957256078545868816656060295673707412548748834379701275057613418718037356116993298210977656169757767365222789233138136911210121490722858531032813134086906520251406178805434271293437275219649459212468628824061597108681335584273050522283589944353294258901827763841873933394139342998950636157682039011923243517705328132591718304670428462801801697934712910896577452513641464445048193853281043680722995425734172477314768051457572203287732400927312937656325368915753149997754687606430636034292829484455376102452828814579968595831719708147429631873829990383018123326288389137531910961146344823834653774399795171333987188217337452822214168675983399910022533417125210290903938544517860858217454990684618860049541742313385070942854509134322158525647045055822975582343557329950053106618370280905349777358965086062585306555271021299947269746364130866302864608772700537146692820898272814373469098337150652922852119488664808657141810543027489152930114361401136929906249178048609374756127034515527085407297425746398625659161339510714034727294523535941175709990271062032066755751750109188341421742720750009764388447194794374894109631910671406584761338049290907873149068302370146546656286969923483147452957869411138014117970465026086351178785092041888464934258595643065619791433310721404774348844115834539884780448867919294570253754349741100614959486724442840517057680685514805336029392163897601099941669887361732782525215246730699003147781065925413153326392549892198142505745932109959919640366379682055717442682967019065488154578279560185428747494701059691516813635722228707658873988984662451833365604081685923570190058781059673982088947277514770634577760695224912937664288073977241206054961501667412243129572354744623777340766923672454766344621481559515160717381678314664692509695036523813896211829410609717793670346045350709854684321927259348207367346636252807660661526681101422928470139708731643852093838582257762239746508522881067509565596997036543889610859373902245568736362570717925740031622143616827566653523852072996863982260222806366805151064435469517941264747028216158734813992547207991795093144300044841910101203016298423797654172011843437532173173962229355666161986758968912019912446133454207136613411866254171123740121717356116656834746374723877960557262943636969348831210982480281392625961496682429068868787631535902039006661466955998706786427701147413785850006383717522431204624894353248092057781111536375167656487339753612060276449637115774210776544878346930800462148850461267782194468919498787944529866413165234070949071832714739417664769034217046596777830046844815123936398519209968635078710558396907702428640649275528201481276359056789845710201360771449228399435582511320985662782162422683842657346394917025832321499823216871086925990515371082942284392917755961283950909706184689081733429906457771037841219819007508779347391381933006365687965477295628523799735510040601671332375919487168192720244361203017477814880874898921392514344843492023539526627798122470584895737641858225927361522801368927564816868515205592933847842900081466677144137333837067447060613679734235006895141431243251307645122401764034790069052525482494857296081350677778859767073213464563426608540581668426707062233685448579159215175115165629586579276924659004845099072242534267175869527575866056102452684409685470994489213466311765322277787835585532743905258269152797536600723553899626834910919093001513307214054140739779764036415188838321621044235463791645076141776065139357638263699060247948047631202922812403233570619176649911833449241540431846117115882285712435782638743885956605683711700486956542331901967382187256633881759301999822974968023736544127102257641945854884168339323640683665035218934394458614812254530779747739644415327929614368528826981042259314942753169029321682989292464418887796909188262435827157909383912898640668245272845179647702175518874043892294743551081719197064277617944427221181003152278873015810445203638574108792865539410831807549504102807551144328019607137439842966632055808200793639505794982585932270282659551826167690348688934644464034209782503703137388533196689410608592649329117219451023525795861084200490441861305038986558295140553026281776600740892043440140321774052944904841183390859740610953669455473815005119202784159426130170337656810404304315859157302972952657589777061216599244971295478277376299772539247677979223782376004940627495572558848434721945197375249788587448212652389905518472119419147657842286538978759189448493280100988081808505305523827777997177446109681923461515490798821206321201020293143701809728698501699010429046982201326671565198364997810585166131219601721223257695636754986466689262231052446696165656657529763144484344819828387323050804131365905946861966892028881076704679171936103291124836207799283246073735623689502350640142554167093459044120514735517917346398202138335670619519588101481133024649819874376674932370724483642281106058628489502558064881530437772672163519148217268010966327687544126778122443280609095649404409355248360372052194848012817766183513758873717967483445455356088849171739090933499025830367291569902565651800272136614165898920140179151815841439476842608168841272560349386225314838388497545378510771322254040655593565932414845853514895374812604791769741999778779287614763779293932694423957944185651481297380300967388708579828166763569473350666102348309882017269921715392030085137866899633888929292839197438994179919591833075458586454089444654218663626363406294802488584369789131907272928058495731094221954996985695852577596743052596512558934600025067262951276451594646788346228745951102799551707173002248927632017061164694559593711627460723394864366047178793745017845437264495359726024099669276599228556461843077717159576737607173081888241524975938809762589501533315136749378900427772694553084401975452991721509381558263228699930456176086669035200432340070280581583259881948977482125940615203330866342465400570163121303862176202191161825494507498811312537194733415364564753069578425476071788146490233779131135714922063063731075204182262572533425027612620672000418451765238869474690259430036084098176583046952903570096854183808394922032480955708467975252563223829504788012142947952864306858382122615909312789506809883833928721828895886045252569015227150228510881284427640373293886440356534485799330754466439594840470712897849649301759255438130362460015654110594286791619088778058256373377234501359047789659816531086615680802169486023835482413299878290236038676452597660979819749477334829426950733209162284964514958657868578167728359669961462010607426248894957061020681005542893229079078548781015663360468367767774455215778271274059023132020146780656844315776852374490583991305809883108670791384583163549966692553633014415609412052731668292729153726308919340414837083827044554475671987205666360934051863198214359345679246599407366611750658949054899911583529403427348161082147332408990059669467904796774198116520718130963968257345189180004957428617053771083538935353925235920545063420154946375530471053882755894623154622852096731396201279113834060284734979726324381885892237524933510747247818905399350546174443249643452195171405427067072292518013688868459716063580526890443433379242456394741127040126636032587357527127145665830159221167898308546249980493456443333782760307899620945635980727681437453495398483562632958466819026990117973487501186560870183311259026753893527318723937165384442702898097971355267919257012418407129772142363566978903444819409448347242163079304090925535093322000364881331354786861532909235013096598516225483575452261219336006724887154220316387470436818981351132120820134911512316764043153102207164421137079741100277793588253366433493041904768049111987695103454481226782982998977051525136137670606112364258161730655077393450038421620914704116424027887509777366099196515629767976337800324248359090988437345212403586142901967286420995503652778924844778473403238394933680292780099539493317013349069698770731140319147614480620670319050129366747139181113885838915983921240610146302225725442050821989404268618891776247754730685736666999108076865968836370488951617649635653745132650994242607274600772421976146752991157827098536724829880407245504722041427320870002640586186762145203063884424945971788114442723981624039511475499360116098992636398268150134588484146357869107565415848603645628204836462761272360220143936295271024294741251023580905777460322475342343489918958622814525042414698189860201042613203987204438691894059202440838658839906235366873191080084609380990899306509196810437436948710199220526933218637018484501970560815836414125514989061425425804833924408894279145175392077905334991675277527048195454104708414491690421982021453956451677632692423445474559045873797143574279409745480245806860393284981650802570439790839411224081149863134870286374340264432551424109601765952825039185182549656709117217774712627635559534828948662760420307124559367917616519904337242913026268625272452524262385753549517942404897105048523769179368514764279751811372319832255688969080614459250397057645922302338909678294638077528399385187382842525417103521981302116742570507503181299384320063516977330431058291134951515821146778551067887139478458027286415071741505665968070825530190584526022238100485987830159974317109167714726838718178545836620407697060127677366065427192543157824593728160963924367766405647609652378642600104067142315901055846783151774444758569875841957073461725648403953707157787663262353495806923577600545242955684521885193252122589442531745281251088633733687167097045833637937555688541056193913324144335304062736515943391721624721963547383285202880453115012094063598013804240171623655151755682154457315010623595977466802645745567547136328026042762499411329775993289520263076108147638913306599792217032683435534508398147258644545723262591789576217791003355657521921427323918180332537165760391948699996139454809915450015705298462522073948225510648891474826388110285592866027244629306646964809292355261284149090080715332502128321141522250272171792846200648894231654414171217216815107749244586200408422263576794828256161669342101186807233693998400540189045567929378944837581194939532945130262086853188469792436986707713229026060025193848861990317069558922897289902347120499685689143534159809441115738728792619761060140476304153829749270413458999292577169001239666658547826578927267705216680095787933514135296044505772072916084729185875962372410721819278032945458806486325102562848760669347289824673183058893689260563123815085175407228745249235479524548857115531451344152711104733046630199372138602069268550197340675389955384639765024645839986374431873091138484573708022917330387082537491599871557576029003615231083745699523803496501989376622502666892193568913924035018067916325435584511216514809820604097306411777214732268234746965033200008070660038877778445493774921714022821217552497399589616098299548531715592795441486224206036605577832532342715240823387598792019707423860874308642250927436520578090878201788652644320479842140695422767144997665269065014393309411944693040986339457814580736289868423938068570678019920791632795170774652177808539318977353538995815580534329267336923678120277513900366763495007366540192544534953960473655752020437322306320329399028528523803836033458467359449398990794432091429026646983957295964405115252328722638634817934467614460361544737088212293203816620052859806285901084081050389278718629181604847023086606879437633631873819857758272782164321906706411606468116021863750593271432422238209455736120051799892214469904365328613460483217350228273132520641333401911965204061172644167596203187913242361301933805715402481736106733548041790134169955002756513653174408186319512567736497487585515037886192447661758206730415965905848805804226535432923195860545103331013042171692453208972451793971535485521129984843321186008260739142337213085432440023065871248973303006110368647703279802052113974676191827719968340146586573166905091729008794766959659633918313529143198439382704425793113148800705715264909676239447749174870460556696736897884904094790654789971969028901810726824228673213511436223501310363300758629088092972739327809721164164417641102973913777582554024121484664906685784034406753906805402952330845872995702867079946471936425779611878158841648762249274833749175815743799630309665881529420292165714102694618928249403358780927829712094700439555519299182363135234725654021131163058323803447278744294692692111591905079129201022100513892415704002265974454995255337934262108980315381078196599751597730388746205815843221339608723555531880173201476644831595056396977647176496130365437984164514624323026488337083259695684682816210835735130228518921282502454762628442481241706984717680486239585653217092473275148079402055724944291234368087744275272730672697562475766621451141819605905559212008889440787305260922824023595745841159441256494289239864892004207068860209256233761709067242907054010951548441258150773773921500833425808883448955089304570688389750516514576224440997576536766703661334856249017784057284547698837057384277091076399270431245145437284998081123210364991550210390575631637304597340129386641731169227893720109907223177355717352701735815739882498847832259838085578514125358898935481584584586160111275707567484448537186506111897111996920414999012585540262673302299083808819206894264750792446706582725065710500679281031422372000087670349952732948616033199183240629897791909226470381228354314905066392375116370063317430822798803893423426093436346888789451853085574624618515747005721001903581498178907537317825424150204021893675756383067739091570070058071702907706883164386213082855027935388511915277404309662180976876812563050910145005736794847958662645562747611410904373722987940448135394143578725346606683459514830106919945078269213255872817257494214842494110085609085538367079234265395057164324936618770411452349986151305535490332825104465379106718355624144788111011925246646780261559062535723855513117987721878162385375745492621702179532658055119116062580835023506707943855888580620949146472982083823157436170814101479564989017072350364054037387470962180778890429996984129308610614716422606951101107401266029890520925850032470373559953923103328644405112206389898712982844541029748187550531081018727623254671404633622873913951722354168288628423997093678757933918974733032284555997008233502580702152944561138136782187454943674046663980486399324961735679202515207328504877320909496473247049192672356344989546406441057582573076701515118668343258241935136191331287409487715949038652785902161220736891795424881762318102586177157326532537445171554298744845731184886257376823620467311105080229810033489815610841443676012148258909906884251515319403147485208089645091709836581191489689092193151334696813288100333139710132997423102929489755436422494245505126645352099727969631406786430639700979019401630715102334296179972579498216521830622459502747539943266646288246895871761148267515325089557360565397339403148543959720990626808582210925866881423763016959575996676482364624332075260522990873815540044580263692994040205208360040511986777726912562671395445776507867056677102627051945212628742432728637852035040411929561291948511661553320736861471049978462748458195376239518668447975399114652399321482655628877583028760105582606304481755042499214488289311229592401916892026195806018643228438568353311749804527586869242604567964543127078705801494921661409667478285859426569872280332324294021755741605828527315470929526544762590324929919395406565083823961324989896785445356943246201843294808583720414033203688478087195795715270532071313847211494730807580208057093719141804379136470186487310509367107101049377172582685455189207424818842538450114812786459373358667495922524926088770373408237662177400665430973956280661500164914008610362266558000084461339702930136468035803172676119611695844922995998753287265863138430195548513653053210166772985820794507059117684016942363787572878327166586456450172718181680437489742937752137585475557343045902557938925533054384382444585109542560324467145926618278001793478990020251248035013899955849045262588656734889552790685801709451772844332608454024419601706324271972868699326086342634633164165833590093364428145180621525409499494003425798805968530320868231600139398074715820703107702833410726710014312649352008989307608393983212118714212615803884159317594204276684700267487918349058707646587031592129084651806001306766479782112573852234736754293712073467834050359900976085734789035310199136611443356181556806752160668332745266590121615983722572673849906986575401374133336843918508151862057303270789800081330481099030115393214582764952455442940198344239938401837991824023553124764113608578024710047155484872216286176598197543634629330007820530458063543629757694742307720134065340311700319888194120717069006665098614439968585792097275057231573057641274146901251992280522911383196635260833294184379061640461590165033656404839704128614449222380842820301243585226978602451655162918736601365330127385291667213734214720174749351686539701890800731602483806311487595155366079281909535408158408509289591779324896142355943884778610426742262130740073920979192839133582964700695669360548107928191687108202024333830448003370807966669443843027484495216279707900292860433252392018877655880154386729657726809099875900574189909074835992828200692776527104764948517650408940476452167582904958302126687069272835667801533237728889908992841044818570295227558585788474041447136827433395827999571006464059667896750466920899121928911079951425570776761531395095775747626535120633852485911014511175788103900482409201791996416021438091336743482379835466936373256093674552882472724294821075464058760042251982260832159260224779815604061485005100978534863584469994992336979755752805847453122815569046664931325548841155879651704879489867453691513909804173799649898169269585829087958560191918620225492754731436678148069880004234740627196366560541577308114242220706477322241586883104348386826130075779592779846203586593940639889145253544262919955661093598719408391464210254284138576918893696741705570596487888682223790014469264700786827773317704013650011671837419317503631523435194559596630104569930684913841804583745571562108685121055326288750532722760248616976594733801645191112812621548977111726382353562420352278203444830559155992250533634668689646777971506961617990803915609457035775632800289049442101145353572228366034207323780590123708038310533310884518849844437546824626075868440140845537357489231580907191358735845240716192790895339276757608291375061295971044053862386647338562207970077155702391108920992994981174344328192885335099101636026452727836127879221015386993166772209033550598071962063997339460616490751533756919182666789989116007142557474186892551422812172087152927429724449814374017378501617890978048253470320879923946044250990970633545050395975097226901034997913797063263682656757075661238250945549631375721495844543185400968017132801642301220871540166895567103196784460271496270629601362053129114189717599984945043418523757941166979776386905676685949473922834749303046408990435017259908902716109821630145984926340107054667292455308483739862819779430291698915529813669407208705168597214565799218066539790611263477178957679522418279575205141843993146800933906438332124316771311994877778380113484212606843177396642381674991123317215135288979049711690494307293306271925748741952113343202580735435191125279513169533937506332092291560591636741993544905764851765481943888570412579487314705666525404436471424825864691299894386563973157836141820132482803392347658719277227340209025187818112258875543782845693508125433097578794285782171681657047051478379448505225385385736612021040683925343681465532531445605496217495864630153736591873335665334049123776526732659402230168639456965909717985915252460412432859141503424197969656441878636307336489480782788691819045763969340849945817336753803156434041127189440084439882634384875029624180641119966878985640742106193749361153100778444222522857766034265831016221989164534093542886065021286940976875413575969092870490578335267497707329205797322184585294362035903839372658769840399022639774012031828057321816256293461909297587801536343783925769294445210136926793019596111371768798088973575261731042055553814084331587701263599948470883372235728467157286553739644862910984039885729558346961632756130376845491602721758859009812788786220541457327612300625093229716456337079082641322326354431074231912806623385529260535229432442034208345818802039704878540823667130399863885275861781649572981453342029281307631775752719793231292908602263216208115261035432327903594589709842553850485328484855929639610746814431100669954948275104209661865629674030360563651716461698737070892429207354216272662150343512621275839058702362790545090829348616176365574746501032327277219649973803064657537985814789319433821617584021735069362751454743112115993206384430388158426437445804402418810397068054815457436335369651272445133315216809230166974550972254704212086458003223832034423187032038264744385577796923784720167793252739394502684404730568231797609142114461309314546801488461891540889220219335014752241168010803853749851071947511659722188718082977905933504184451019001290116647522386747472964101339265943478468473352090757530689788080871026975760457607463773361974085593010713293854805937788059445576768735898902248713265142274010315557917506369176213421099849534082784609397489165854532109723790723200138238375626570395837991260231068864858179357868788582783841024748574160625456866127275091394871627745537671828052465837330562350638599600979302513516550752108485238161912354904490592882481188132653414256526597927088892569994128849478462710393438480176985694151482203144325658707140582478382319604466086762697663398095835341010118020380431939232657895136472096776905782231076304055256335661370002825372422531098677798807177252998084947576831733520963308003331901376506163513478111912152476510517906860273819166331785041844772764771809559129366311790739148467375297498311624540499147801458222294103306825853663286763264942753847960646998394766895902586093138392279293623914300084119166926717772956485990393159256550338110987730447004653331955377915755419106874837812147050262526452660048127204627478515089106652491249390332324954808281142647037456687068330580334693472329337571281113876642457055941126811784338503524484827108839985206739654256727292090723324055225639191016427631033833174795110869102450338909241948192507810232130699052977298868643967057125807711706544408049341770699588902343270010459641357516506183457275960242988879375390247799750818964670701431178746902704577333441166994977161416992459937648200601654907377355775756269346506510737058311701331071811849440805520655667646800572449793712487699728584320854627406757485036886706944911983473255414775340204972337036939054455390684564268128771755891463149033754092124326281305381176851251231242710449059814333815408174965312725419629824635523480978099938437364651458346602360134856343690586054053070207008835143863930595822472632799757589617478400350463757004964215483719090550933800977711801652039421672887555124745297724857968091624010811831458738734747667030792537401129455264611485275642920834616124610326484484270566071090873774744935610847680246660044173565204060524405701860994972022509162575613298528040733256684291879387642047440859308312680902610826733657447878322060417858781354295511838341240112896632635701610913675851955815221963422633728738146739699044572568464270719484095393263828477107392642259960672091982039107741932903935421785873063114582514551862070485790701462536468798434495618823121447862713285802404122562466844017925291342914223747688226492427516327326157018194850172891469528394385372989058923569700882810595740451519786445026615548525495680060420327687609518746051482456809961829017264964635132548040116079023466140727088722153593384556794048867794619173267071327551993222323069755099526445407022670516296504238054350328239848828737489060513542296807847136560023548391558522059004594751152714142814453333876975426373749464944168124870050805472374545123561213160459355117537791564816986203237295206029052961455327799247573175664933480101222483425386905258923588674436575248824535403361399888964269084254625435141121849062467553084049755084093838585809665412818642138045026863288171578292396866285988610310310961844076200119490689556676769133818398338659902686519148396169285141491967353749299820081314893071481927666824216744328886000522777084888382206622071576120753039720129517078848394637889511625861608284457053720541595533784735278029492862024478377366450206067411147677972965682603806716685461615328581335452313573816373605751570386545215274896021689739718385943771498905489917874989185000155446770911780191911397294255757830436968143079813353871863545290683049755618875531278302946450040524866941231863643705092289359235555798476716965350431682989376411256545511419959137023697182522594780085380282604301021724000886034717953403135903131587283921047543191571900311969771268780036961354445720854197054740192326978085123778319814530022791879689862817055441870830251159071829974487533149061501932312939399868158193671374791704335462277793717124527277224387217967425048036390696601058547539457604546309471549737987858196753469525985792136371457980532867676075178332501447847387099488271676255386630262017201818254161280241274750036529091039544294745092157891105046527814492058035690639376511595867286176789848704712826409689043340626447740829424138580813395463382393851599715047594552857106908801773574672834013864350559524090792375956732062287280032471583762494151124544986119906637271834244716304860399415967486177090460613356798214651668868296958601190543316961181832452020831757533259757519553162323016547253769448735491080569298132169028867180838743684055357450612181293384980445401752821806247580873993460089089350359271644825392895564238278482500293542689604389734788567086645525804886299032206491592700265019853554940878463881287618302666016995617231520942397319630076221205824381173621964160178965153515629070243834145420057846181928570932309708291068421848941913088932847990551946836223078571100300243856305984714730709493782075542632561086544335622237556835441829508025812794342656490026799432602554013215992414680824060789498536508138860538879942365107971823399339498028591949424678377446964559065073777717622633880557912869019709205231279865658871793404607535094210691038725313486847213707188898368790227669809021891942409143733213277329356058161000356682643115958556622257779327134216612603284707109338038897589118099110259702887814627933087352697408607751662306437665118772693431799517141220322726477548279419191859894507064001222367313367222556831229411349552943752316213060694375142730223312600671353108988833391730614547419260450601052505337511207188623202030328020507724677834040633277138214623896812676638279790254611978379882664729571207641139822369230849433173945678392293477719680427282648006650599346263871091507697680791651770757856782030767017900383157168948807951710818755403196202721424224047890119111331358627349663426741395663370088657080547858905120738126366172131170594561419327054189604952818974995440180870087798743950814071144022510632252444362180069941514166083540771197558262241302648685718964858217739339703928024905101989980614475739861168302241575366834367036245481803554838278233962475336998608841183020936472621897893987123023703370697196714467860745277804046212947732446226428546028096557309897491298952808558090638071197471124255685536505531224175761867622254810282340409208636589601799938957448748237665358431448129953200457945108535060495921959035952639739380356818221249589995710910857993616885812250026124295111915771208906249423955645711567441044662156689136497423066344618212710896603145387789982270281962807418358115830934999901244904044929383042257657957995987067338912830483719193354009476226248629996299490886069807700540304456417599623188271230213734733422260066767845351112254887970260105150909226605122368764025060435374389806836231865578377111105239714953993105019004665781741712128459096678539771430469190912660309289171584702409872974202274877227958964370349951651672364476272630878985162355000288564902422099551769434041129340978657334817926880592741406933110173430875370004458190986676761238009790375966777967567107509783789022955113040019680508136632138504957292721835105945960576392210800053582537529529966326334703349417535649106573399769670871307500002492537799020647942006213808190607579203415168488667338041436359717640749053488924229777378523705052275108022534638720917041590356493972969282055292145446320493986766128878889045868643326674663543777414569448389622914809981286571965313000791430052825123957455012881157491694912347373290470182463299142896026197758906030644433990862937556567943701431450844374020619804024267262213311157123837465332381821877455733109124168076078789631668396426731045922977572119611346591505520037269797130485527762438550126793323394576563902279073547524789510306519483225323090013518944516780548934288497443875752673461161512254852780446153791962432720575129952085319941767008734146676711912342507027704879876082802319819965365415743138497177129890867731136744287323109122208527584396292911944136326361279134429499946138310134090454926313646933468891026633681760184519476108499001589367622238751897165776851348448860125105125288517296992899399899602048063836990608853847669499863388807136025226137233964906984991124500554972814884411857307039329718103649594625593357581303441564140411926654274942318650408964607103622155226099786352850609907887365667109575949260815698053966804695905621954360406183241049761838796002858315300630826913143425682838786280576518699785989075014025076952666094413909193354350626161382559431275209723366775837658680201170718988200160052098529790529483527045749548432210753887016130587046854938131123363759269743203328235521502808439597081656360813947390101551866632771330627596230691918911945761591018092589291673773690915702985818875390466468789854062824347122923764026415608866300348984048125155608030242715057270002873875943303980511212333799920915430779796807944287648760922472421899311575170744006487027855106008714903591351023652122245278220659751428547213832678227961176106694917070886365410474909476727035211392368018046861456108350570019223118995857652533861008179970950562861147208762504703932480936218587137037672200564683662357860311826584092166676326368792223017645822137598895681991684814318337593163800310606070713820085879057472222536360062609525945325472757146803737564968188335950793941340494475725953399351425382448453339418696843749308065748128630578497846139370781844112925094430118699802797921948202200467375926239374545864472921575010502732310815641091316385654099757768616598932562434874007682644837064951005015740577104728397303000619530059900361260890179404385737937795118867953619120028430277936568161515674609243302304240739053190376796117371554753393107474747328712659532428273852558553803379974389600402604962153802408791185948265101410407605490469133754127759118919383207523507269185881671676723983277565376186943218971872113901464942917384940839330808841652573358675971890076772432693147429200798504549617922873740185069308178430379343776190487374551612564365508151315010922746728063194540939626718753306513783525019411212959013767509724282590469622336353083174114918573712430219537096550636107502719173083952291089794650480001272694812223913520193129286477199989658247243889189326640888265618367282052789490712019509298576962520593007212686125626824725015315064642144787707036495000192769548626758920254072324287450918259242991414904311273420592914556327648145881103596823985999378057304050495097850914520864042013846882142041188336150434748732215766632842307958521038760869009354780409236235722619931343264306100473529360929642802247548462952656518909984211369347602699655551521857233431175336080882032236869703408741779237526328269839041763430212959422712330185827840313050319237718808943382700405798598261967224115144836672666895945408507043859648738682471816699384072296856942661566041955259413958931532305150022658047013732502203755754265098099783382887730129355283929422963146241248867982383410743003360570518174699022956454844824255101923408591541456961967098938084347779214949008488025224953062769236605739493541342440776108961222979908750950696297262428745092147871142921930028386340208359214502670582336656984000459542385749854098531938508461005446118180490194171256827530015005389384951543945227487385226293812383796102151370634503141320312547420631978648388022405674802884227042922277211893383687200750074231683323944748867617695694113825205213987562550518704605867758486169274576479779101455959495374904220991567533422501016092963210380101642536484053616020597568796169191609649298811245996035129465249632662467738277188543498576726339049122060445231677890213135155151499661874861304150983056119337884298751593952433867493699736966286855255927223522894513919547913554448843960848056704965432195718393299516155215883367395177467241775249552163533192791995963168353716683326579620080138550756371343661172449982661308113545156831970243716636371176128310768987958616285298309758507860639023532740182952921205792460678291111099099364505434175146368342076175884037904150516379008884927335005692510088415550787610153239702568800638487326725865206566808341789803658716962965669186832172692791124758013374433424979062507160148679821198574529518055967103847285223206077722938021534483520731288418748195725078581025685384328824120066584486088873268139790490008917636222578261026290781290556266387025706599111761135489096136042903019620478018173281164688548634219028557874074865904211045424310405025276063219841442918531143316007478216035434538876843178339426179218880213276104893617564724620235956766497367281136442541644513766629276297918237829617863465527436791434345060434928378878828397231270411216179606190048957260507761816829214301050348246755861322089543927489133006617543690504186208389262298098882880071805291920282727965718298183613160100276545604257480067411333400683823517038423037691240193902047089450706667289283210173721199997607154652639389743069482618930489445703657157333457166438749460854886121817608389382473912170600814056837993009358935929560846142155845417462207575452058047577597594057519189994506890224831032801229286085377208035051744160346941987114976537176395814214495932042988576167668313355326920676512175220991882973760153019035581303065741899992708496253140243452855011214045249285681704988130087543854715528112186347365914347621088671352197036201744835793149487592785253516409013908227271545161468481786056908574043178906599120660385618167860685956082794334655359074694696859489885174931774606555782064047108738567956383368607920620421754098877257094848816013900418374992114219493599023009658502301789396996204257852988230911641323683936646822565139784384351086251560385820572250459989134256486181241470763389378643879334092488424011712802707460602962345295296071827818234429653999165452977268356664025524224325881141840319655052755152866395460984567501874004325831735160432500598777709952124081689634894258418262713620130684471687053920884139194344213853538580618299713192037915532443182441075757052428673574174186838276887047634769001038047202394839649222568288164827183556375999789321566567710471417200136094151078756170086039078113362697639509762210607969072835381795630959375585182725474972822542283714586661830574259041782960638476582045417407058450172309051290190761090249238924627392361244017684777001467615633503481411083033508345378205826916166728684910231826678102093598358798746331195742673628669337931426737557697220432630082650085410899603222899161762205320217635430594245060914546958542261564148605601729056715565965941921048845775357175665366721985260825590912123958555451236343780862310524297721897854820586292661221625605518335121328997771611798919750666847276067632505938892279989638559241080132538872181746354567176160035071032500378707320496099940316818875921343197189222831469258227488179878178581857069204130733587904754264141039688729881578237024046905700067615792867068482590476491087536404860724634901200867562439343163880457752715523440251749227407315442129589109205978103318424595267137918780687718353035118252107432060895784585720877778493176612658533324762302794951395944177859947540162664680393644681303433464702421804721449065356538623279531252506653205804808636351068236120739733400074545347472450945304539421212681799474845688393754367845870101483844039813814190092255270377841674908872707743553270530041122229740259694877010322013326921942323113320674673071119509993540839382786204277525650460214584518977387508390553639165484525968484363992112803259857294889345223133267807253032877567509394869002295111779091921078282015043287928600221291790483436010960260227060664111541339344465791154436550715942029501624375829951495062438241038417882260182009083101471497015222355688497179227040134413997122229151715176250562272001287347404389287007029479933070107337199345261843975355645052781435514782264435786084055123793783530760022785619534165795791585400659566143812259797390164574162366388118816254900332742245632855897002790128601031779842435402581449996151465294730107041632624003607424647873058480309466668450515596953996642530965828928205430838232950707469877403551319769544151039288798307989978531667860225236797806340693565135340239857523677467946733555130501270132998430193569833855154611995473667449659215158519179271528810968493102386830194944613249393273027631310753385851794948868290619686066973944579723999427579424029682855965172930014044855368192806669396036217646470877885316345972789607900537014425994358187587821099495120434755126025787042917829026436841998058355918692817179539934995102225532455912432882875172852829273499768842183775909988419966484628412778172582026655507942092349286802001542432948262340145790557794376838591584442629609564931378475481279492800229183153720997956857297383405784852697919795796389427038161343124454341996616858995295180098965930315431799824634371840746264532877519187907338692999897989717977444492760187735972922706697119437805562252713152235865788452547005826231095099994882803574360400427167166090521442935641180046404671420978490857511602897620831620109942719445465144653933453344551323740525765626219196934735328581200386154775280022005028713175064400466849298693226387104012190570834284974600367069442852212567299487258934409875645984559777704569987205293917404472689610494370741158741750130294302466268508950077562779860702758637985361534941309615906103596851521662125321410691604007913430382782145315816641892143032125842484542505824362477067615743118338645189194648784019076170710531008360839788642706088329881970012585750123138222885341468977826637706867478421781183667701661836710700223055166526455044685792625629794044821338628350485643354029446724313529090997510977733512402666481750026575125582525312967962192598037020869112262950694643384775969707718555034192064006185482805108536800502969744897978375706983324413446980978063665452487864565456937335524833389132927110255498436418081996251839815886598222019831621552069002514286614374719246986845001900182888858192214007885248864583747345507155429701393171518081286903918448946215154368606011763882259438878339805572627291041834055265762136554473364613102277517599301614336870343646178203583652589869250813201963285973474651294353388129465579249163148097408710919105485849171963517476512476031595457400914310334660983171784216442171968657368795597245582443271826248589905900345056397441371862901982720904317425870228990903959779575722578258400258556918787862386763205353468850419899718671497284324225785147724230818751452385733181874282798013397989625912037534068257720737354613871166505014248741315569476256866841505841639283658958579312625528096406674472105827563060949519553854070099175283637814520326351555105383750777355101167548849313112150511668288359866623987266766785137531198792095298460574712160706426982414997111499715877158684054052287138521970382086364210676467339851576418263028439456813515282365477713271609760518668598081855153377933140821657880182498571783504633928571983265637881544811208566441191479539919640212265552011956149218727502707223317951837918635180916810439167713198769481619259764916310858052723082262320764505005820295916038914349755676173937276895385371219359723956674372915447242348818515765768258918890463840624258318822637369334416333968152818563793621634592928863493444060528497196890852178817256256547144142638045303079607314685420820676921375318237251421960210630958301444353709343647782675274456799655917690886637822428535054097695946519297589711862609226886060857813454219522744141310400170120414479858493324562932109457620616157098175751342704138133797633112955298115110546283677291737560760785777664607245664971011481300301274010087497763480604121298422475381111762089778404586431254289571278543766840787359551927208241488927835836096363847695713425269880938576274129298004819294383723011606208885132741454822938253467354379885885197283314071203857170386542131668343309065195730432290937702810926322591093427089495218698607619027908522940409095830909470847875972081912183025986984333337512828570793765860279223550548669464490436042507363959787102359985906493950723401920043134215693801937879349539065608727735592747833699671025752819676840912353666821655621009421457701819033604728394315744297109196409556820652415687163182013728510787448459636079388510910415823921855441317108402601366217096328205071799728644797940398245527776012586555633516695686275588136081890156645200061080167741194384469764381573557829731257284836941996503531195307084069121487359046109085103635642348781514044147490201388384144787215996781886635044721155376999040825526943701080517667477119335635861549597222431377758560857195435970982232123235037810115916883319421044338149845970268287343365722795913261977501179064052650383471663337218861864940177115827587141280115815039132708459132338844870169382648015896679169578924548318685555569779674460239157084750187105649146677753469695774265453710720608253063410420938523662849486799623010882387682835228313865056560843304315138594592242017242979478682862826702984444929024930659574330738075920537380871896405428798280382803368582076713139367988899338574728225871020247024001778526926563141091671787678350330572069230202621664290110326904403768449697710977291459953541424153168407752527108398536150271279027602354766942632443571238287715096346139748649676157774056112060045099483868102629812028174151629365851652579777850519685520198361705743132107635907540115823624170570034127430823727158109045514247601643713597652572123615765162636310688405838349341743384591543054539629678486879867832878288082105575690370248732152678833264560630812342459238321257792386588253678911498485546160416467134160478384874217064327858943318326051458659435435514385321477498104818838421918473982085975894954117048040987105298457516933298273469708880013360788039708191138862288162780994611690981078814264002830405680507804490165263595445045869490015108899277438519587047834749680696891892581346055141033712098913134496809155978061157116102144180418241110377519943205101066460202406976565086818635582719681389106570956911687709363325839941936801609158802430739935527562337513869776316645008802221794083168185241510670441910940900874003611816426089089513080535544192892639601809205243370135117105253057225225575526563675916515188260314364660172149109179810569004606400725414680803644700865694483876487325151657016309603769868562415061410073939137057103879029989800579872657472746911039783373201412692445129891687724442531916478226382279496752544149126008300273886057207644821250982901616981325108276265412181844489760501362906381207950514444059460768480488630159253460675458630394069057241987645301956581884473718078644772577671685721107752332416343095252678576010886275335689563509314985593487141004373115934911149646143140923900181379654266180650628622473148553827862194535942255325949785995274068219478855271238705149298633138702313498771505512405005173774284924513305394084561507486078810271391424382737635555668684397565884494721310328287448652613379177990153443898188728918144608602318091627629702888241922771785701964133252362085023894855591832527267655507334830989005277343556536698025174582362067398134515796638028119521582358571140711948656931498331970523576530290157771869192302511779317949000385041727759746067317753395150224132106992598272846155371979409503157698405324770576596745528480714453628183410065790379680605250925026013155833069911033805759243658417182171161241927817270065677898856627785658955789467518342431404319535448057819515984797071883491202951925566989915800280090702141592983055322965748182587705027192471372649460926332803064158117769021217083976099140521811773112605399653634110317520482327193194694022005427348813251926736320308137174530830839503273619745251771815132712804480315179272205584698574137814575001563791611057184100916286985977623328315383901316834503645519856658744739632770927837306307131628648094021747017735504339524659287270598610412273622478928973815895998058271031326702852785265170858611205651203909876661822166155517927792810354012989741400722618929817256763651164425123376891452933149502395631551000144090778772454547604406334569609912171249680091724257873005873925792955727851286307732855758476791338845671150563664341054565761198973686381682863900526551734709941016080812575967985744089553868213413095110110469249414120527755859335819413949731893994900223861699959744589745071562176191066030376716767978973766158254001263412591081439494137668129526223360382831376092450279690513728035259769050126260278149290156990019576513674810634527945020496902032383182348099885664523634271111816648591001662299749514427918580862025671358212627013265076482882930271174171593475659437446145470741482675214143680304288333265627252543852923863288391541223861069876842339167930962445639524392308365786216788753016749509210040393512388296480077487159737686183985290447367440011847564925429598431998879345990444960445069288615972141134679308061882297251165397206189812754418320953236259363419363475609824330404928818970269324558493331769989879019643844386472102531302874018349392827045827988261236889802712047683621219070378208219457976682341697251420804192518221664501111276867329498837239275828997608082666875670350757992175230317019797456635614631939254399300007560422253252784708003843340055989813103214236632899202855946282155229936398313012852743103590045927971679741134159518020395197420509153006002826118568722318452039348829445489865112955376005368443407527994802916853844161502360591661443276472079880553637172800113655731223520699048053227539258888717890696505069568972717118419098984966290489907587472993194967214870217776834513194342167780648628990176244955282063143805850853440876130980214658787675609968300821648862301561700564164579823098378224961064168920556128273593112178344287757634856021455204396460615965755856006339298124895288702154017281707270768974105683723706036567964556142485002311386007800243245753962930238113101086696183632494718951703469501328420846595685019135524640879736432861825083090865624377043347596808228316423043819314603125338484833698040369042982561882926247637853657460466190016000297945850494926129831605980847970649488217375921183539192110487089340291781755779222719596009755629459258001353447054683978134094261317277846313288010892000961574454582463767877080789773635049607400985128381163125409716815366815607893231951833676728398467366128594458310380779357790736071288095487846067732029659184708257330581542806638967719141914671502726376966424125584384724146321450271535294143498466931543895040455079468581339743108381712911508387592525817514925233009932382345935355977672311617840848478133420908779758655747550884549825088693285067894992289270069570435670133143480787436670704120632754863755625942355170269683346674243908472356291646545459033706384676573739927843801902304061372435246527707698684786173878768775422818076786782785336142778308558695096429493637757907704792829886991843202160415519002828729742660185127509575190795533613145784226752135378402390587030195629631705503570639503473330900562758173956425651759921523231607169335197676307608548960302886231644315888934878056591167774420698213958923254755411006699303211254895466084831232003998738692058280296041078826258465976461638750310103797338714406798928188750118657663302244132734784491894684446253255022223279487086348301943230078744040081942589549698011096346775954239120204393327703133261151301220036482332011579098618348702182473750968268965547151295155855955957859967145352458233980551739125258041024831583287968539771522748155663706923243180611746961821295288582296399859656143883569605212090273047595342034489313976595461844988248493913378854920687360291952521137205125223442193600574407515074552065351378035953795536845313432555409545424926115155408261099798273953175057672691196068045885122196445118837801563926913129063968668154451547480843240625605359749564734919462848526194548955891256032365512688877061939144374582020799646675963210598291479154315206404633575783440960144819852145104802565363176118226087409468646500547613508210017014793625682669100971165477404188476646865303235974176645701359036172427236793952695267620956694857975500084503882541985668559384442207514206791745355298712290349115916207336906317322642315392046258802038836419339962695428738442301924044714105111506153703818618764311640047129219507151100398489225166243390596161400504570095369628694816649867239674171193718309893773913000183299105692501910386974125663000290132703622801713309744257488402091015187411685759455740197368994386036770152489217636362936882872752521791422864346166447870275961989831648505354230185703098331491367125059143571818346931627670512591041752497316634639497093018048040737616010174337985818173178150196487877694477223390262876102437271042170994577431631988307338732897406915350882620716207746948072252544943357850440141013668306381231650070022375558575620298658914894338540304083832412124033787344834487025673230247777201662748201527043168823676609219456747067189269154672013120350148430240260104187581978503231220688803043550787655658911885181545934965546999309394408384743306321607012104264593740435429712800801444112236924166250297540147820269415908896374590120594845711323854764318249413156964312073211057878117344285316212977973643917180744431054997244422215244290288957639374441017571871515470790520590688656477444581776411801897322915238098133564493081818818965922441802165499468183073391533042207501881209062231237933025802277023994579696434182351039805932114933559236686259849075954480100629140005618284135156425397526288338674254710717762021999074332709265243299329972257027414436824819396161689467289119902504390364347637353760927703124321732072989748811099327794500300952921238078238290232336308499640984472085877652379076320247322516532075046106756419301765494225626566701435962262496044819946760935787339222930698373283521463028141741021881702656184922602801023173319804931436560869095985935924073847321292883222659175493214675913379885812453679526960344255214158407699639686933608282115956477441790585114668988620706953535221505182087871208201067564211185747661790212531017248691653651226650687260920687694379122429957152088543866130790099392897069336920806496075700115023870628883468577557282073247586117799059025038017033362864662574653722651806998140210279803948461861480018597317105886415738783983528542192935964990390856023910013976570605512048107266910375630842786218093126117235150002395116462636489418556559551131046134694874757131257978315117445465447692575662614977621359734864299628655516912743529895365375442058090673716337420598638617737848429333251948443483970271664269579678463488185326817400120628351780143714513030993070203872742545931447727975771646196461689638209934752549503069227013242070404545391054025553007040950825503647055234076331611193918501609565589838365445159599981627353175766981530029280254139332501757764234924917493351474760772371473457514517892074388189989116098297546979533329849549621113019909817764969769624975673022498060611700068834464934662359855852505655038078073840188701032287343033313719119168654145636711500168227035629369919406116041333397585727473467859536782943039028691899290155443826469358323616745087666086542149177286433847869857047753942700239020302639635467299376782701984039702296600513570082763518773057178073447758056536853241323694605111128468342158576050711135081439862002406476683804114439410120306680419018176580957490964555952625934335835484579492676742390694858892435329732011667786792832170000684683553096921657698909822573266240837146057721729142767342579093592903589874086377799589926672884947304249285263637923339667074616857304372133186999450356377962270527485057357274888362138846662713108585719157666560556620689956274643608152874593509572399508019652117905510175747793940734684370389295016489969110689632417387912521361642196736209634395975244143422385246940144732157033086325041670092732464821012742747234991193311513607520009978389830694131862374511787453165585742983318567313011243461994597396538578870693526330871438915479081798315039923245298882225985737960201796851619876666760107240692179406272781421329589803340893754954499554317426581110206725071472605019886313390802816340291582096578043137778996488655342090268803283433774095868947043140624115557877129249210398099054105483102265183226990742952399727522858374165180062827121453183437172978662686714131987715179780834415036670254207995253008209020405471937928593910868350315707443567011601362939425969412965267991075495291403828637114680957660764532173291607048166069987656499598529017184396191087965577665558612049022633464736557772793303579712412908280768435560143325082631359203914542570258512147872563496700924004274107507492295917177141578474184964786310384653150573312821968196448735993490598953459458016573504625848699610959192095101670517064165073509409440095003772754275603781310512095715710317880859541139341243350076536460777578650175574604587529044910939075516497537292585744773843104129164778562077511681881136488514806678606351552592902334314014880391137059040665246635480592078813379992401488908334664469273811449562890248034474143097848126985257846839611577405470124017338656460610852443759227996992095866706420888074261149356083491086386725396450188448478923324811701393088673501862399889315297573688705385946796871899073364486132516414911948665210995977643099211473364683925826577006461433548303673329991379134172777237321633900082558657621509074288777447575471080181467434038054042548144277072716515823880881392735915600327191727410529689175848620544468400099019929711673586604117436109012921120866763006023758245459035397614021739225106412230317955595064710118675118421263189641081782059808709884398347636514292224102975597579763666366627852345989414382600451182835018435681899214923209432106842335554955581030208048268099220590560825079117465877092467134597306592485796385009745447673485585688048201114236470789986344378474447316278179289822439803812745872068567289951357610746897938081189418799638947404388210860904256932651889196735491054147161953605852781315372337126360797880290720604743386660536055845177919118355993254342738515499720179943958211046172916963588791965412336136441059824133434703020501119088811682396532824748629115792153949628597771710637125827750748577951577255507661198569535789903328291653273515317380115282654599270729991313048479803322118454209068431681376091101092262533548249459900360687474213900299028274555785288095336128058267705846425437012755199442612452792005052161375380340523381625314572699612738656535905136658032398782747748074047968777111635115394796988957046247756195527230154122056349363182197222548060900018460499210853363793906278415327617653764245379879603874164537379657896717362407125450757099723504235784247977942639688328516319579825917328382525556652198191518638640624634233194495260465572349584939381827226660432155526847300205303542295410417747753907556443727663619047303051024987220113495272112355622501556200543637975422910877619667380712515237172755256291447368975962842828678474845623493344786738968407326877497068957921996746462614306811767780952143543407591343931382837836007052979914053630937382989277733651374949809585543854708043173474878239361528634007826336126683397846744396247002577357647178671417603228952256367510276634057534361639657660326803682037579887910816527667790068823008184471815498897312159104303560735527423107141356616992908681670343257512152172884634552025923081994137974138400227182359007372459701528739739776699061186809651607556383910407488954831016570834919652927516100557255756420911925564054224093356003526861338479154162140516469087434238014556692293215391626327318758498672423226490823296551028466557765185812285648270183847762612864422183839836968469722341784958693101776788407563970130501535589481548236546346075569605235670072125390928101275780276468221667263291270198886825460112732458092002003056762228834525884285870846772875029837489194356653694114553694301426782240291751407961612800379937611707487945725439086812733989506518771647830836108739723961054845795924078756446393182015120506534872012097975823223133626275331505433321498528671449735148565478556372226329100171040984314170526120855248051931781192856273634710941934201523675773079874912596609647324658697441992571699592706070784393678083759976439708785041727229214914927264121331042130667781194664489047467316221294556001516959421000603818802201888403037251564601497206876920738028254460616679560096367497012636653661012519083160893181659961457058043794052740609613916613103849891299442380084420432763899299518790282840462748216184128745263618970070533538911466011027204776630197761512148975206601898508726357073078751883259557774471904139574745124032544701032444608081586284417221298034182683339271842575244312590379701555091223333628009261518700643271400377426772221126637785335870342711035854210378382012822254896623368785914798430560570943879509459723867152163028698219141614708035670734399893080725294909127206762520021489853629276512091089084429248781838888508536329086586798443645695390382884012521810438261326795941344062823316489867263546774751216939359804954953773230972914859302034921091437639353893362156500737335086799452799522389884773238362621995690438477587207555841784948560560279547659995950658765442874349182083661362231836973301878088448846527603237925645667808483323885616820925239928136268871198267403262055998915082614251446628454900214579772321878232042535541393733781389109723389971182685299180297969852065762528377502134132596838491493572062472630752849972960063273903801010249808397102532441208557446036844150768715054960087175152509854525557714765058671618703871922731423211079252691376382824860088798566086559587867381780873904045615585813310193127823190927022999645750375000349769846872307218216290483168068067824005322026174682965449838666116098104066030609156144176450086417661647302931420892772170065018649224503852740284719813888854864246719656934624362770766868181527954066176160138767669454371133588111936769077712448235431476446655802904816959931205981305356120390511990191395983133399996301531714634398214218087476291337028520954412237453182898681676875028499825884326914375133142458332363773676482658630534101115178050287878691090363608277312039076735420095571179026707833388490964058774308614738598172916996361006350326721874793899249704033441238611502742297549306669722102830548602253013144133197953196165614091239132600692441996613161700539381443148664917355851732450539173129530872667899678059191564581652789671502100471730197238226456270690827493138745312206083581415379680812928741431538915242610510016965303158894731728722261736465238695727556074834778161623047137128185183318852327632795365787656916049879994755955608189017542951769437453637046775773310752130002646156431024474296180437987544963124944098007879760067772443002626927605391016163392697400089797847007086436673662378900184819239981834057929998274922725722198976592481683572561658941733019807273060596724537804376758019677820660784790500343769631945470861785999878760744988266702862453182915282659875139669763670456540728153574318733436557008646241928039859788335924957153607084951479285402198009618833073055348396598312334760890638239824000814932475713677198243076468960605479505297633385683656233673281721842571277767222866740642616897211703066966632267170930783895120988894752227400671121701512158135336117943112318894310638398246573004678356419861793272703845631426954246512469128738513272847937749290278858957830690723318692661605245858191923376059996139529997777122065938183076123229864330874379362717048808428254447277164995586154841515562794408505182272770793258903179588603916676868551527359249115801159031899345487880513373309634668926820407525119508429895390903312461700046455152833821850449603541935184488466110370419498549963768809356623573791194522146962155879603799645603230070553895293310799351121294227510860777067449005984352334982866975610227157201421539280567805911692631850590802307457785042184356017633881223320283528300694443508745885117893104495172132859405524094062226668366907312494740348543530685292826792798452486204853357922060386801658252569702781551290288697530438478960930841102844159632460653957775512498687407169190490067758736995084693166082507892228275663744014465932002872541947894625167028831995349138663699222170342312606659977551609167739472016602777532829421861700033030315135808608042516641194738138144048932918193737239561478657081894395468690749066226431595318576664734532360717522815368980885810257801330824603797567384626753992981577021697646443045384435242843231855221982355687457709863921344170001051472165219252506549518821763798629097513276699223939557848766290701739767502883152145360077988869021034885805291504038621065131849066722900310201993293218136292860764985450562480588882997220070400748278538399822553944012598390923763343312623560719930786381920105690012752213092005108694338603611108204963605668959584408386178164390153770468572405383877655724975242709891214162983036708923839114744487608045882532598085996628584228238336122936202097013688651818030815705737120941962270312915498317899399164198773291198578162241573790246403922775844274567267099966398522450447593101629342728822901124727122012618885238879386076053922630225847495384661614982510982065680332872852318510978509240767680970689860344217381498049615221288258924075320077615042227495499927176602319530176644626554834077963237054352550975155576004608280947258165488030524427374234940315343747003602463846329057829237099331312626799064780880600711893422805437114112674057624139099996859123273854525093465610861521547755324315763976576016155272769337375853119900496545028270503208197221320881534638259294574114632008683981382928075991934660795186427307061126463986425317381521205404876697741900708989369220879557385041153398583173022649333777920395627988007969099322883226976324756155623240749179356404188622620612576616122692916361317686734557917279295344480320059470265747630501990815028538656357490834490440067969760940824946734260344931286384082108616621959265607060919761809429760477940355074327793609466215141416369655144405119869188406981177430320307969155392889681602025036207913626791121183676037697342077377293482804791712906376821480208386353033973688446429892124074412975305809194120200878645467497672527090458817665917274164995786003196620592667627998614351852665375086784507274244930187596085448004920904042637339636539728675581635126770758092880405618849749782901036392103455652168878728981377413780111476705503794416115616893593528323661895810465571353317738426608655523777554776408848624095844241335846981257800007127953839763556019925693464443458233002473784535858501106013516898013071986749271194380578917968047245072956299300237440103685098453780467987551735103744207740144742667946823380478728908042867993532399984212308650484642692521801678901665784439309473479310103076807081007714982488124992547019863477941707426953766255158846953625475080945901195291965071784255292601190456166670873442595286701979523812533137400037697809002401314759270801318927492558827135839851909479119850028492812238040803420011275331824712832035954462223387041044009139528441951609114991473753313972777021886099273323233376845484649025259139071757129771681882949464551610703330099646433127236359570149649950506309944009353538582249954177133535712536124811538851995662665197010534960916499141524767452194251469060606765870978883085010134903085192116108339703048807445910393838493344179517888260800663697141748067851382489325767106495306559719523868043072873281384159430014644416690213243113250534170476389890200459661861244230917957399590713523398930897084668292017120548904772252732177328686761862344558062937462934985409634565721285237997066840412907326528525334511526725132781242507993773234627859077093320705933046845634072120932947083199944618785828301334833414404608511426332454932660842787609279095531457210225119880895048543016320745790476835542722855117751932548594497856200487936853931423352103501717073135305628623902183532377997558575422377221238560087912185873749730807752082251137937774301758860373197164780685551853054957687963535043350740534829219262009440913800260744313846836933519578851147316165292116085197308907182990026663146498342055163517472971055397686981446966535455290411502890913318001388320506285684250245207511782533607561852809682053364153862351800213091572226431858776358503594548915925574157778651542076145930865965178619505232732735809541231408749453895424342137546695558406979843903803714105394999399480034171919948684716065362532307324513032821207259857280044535200250697342324260954144651119604370150600723435968060514647142946013726005259904449269509176537174304299505203641274895170977782634480412474489655597754526156110330343311119649610512777955980777260865552378022778404611368668622466684309084374957173493346771801918374148076420928594710982814685419243853303351436334333688834073390192382412889060550381539770827210114940106221038404508814398718703672743030609618582211624066975332504980656636924824517380711086752073107660273649128620453817336392064373340048141874661046313097817078983043295734894983588041404717361969749084795935772504471790956318794161680537802297839966643801167414634605288829956701843389241194408497414007313879112880373087157403120301618626569549149327522570021614379587616362346871065473588146060490505946457340020856395677891036970632278589050511223137353771095629156973027229587575158709965954271267443063578378171468448622291415480728862541078529611197265680948417203190781738611813721612897535562481991781422399909127918769527484402083252954048081853107381606680913263637996663501571892534762753063578350085169105443282797014827119442358387684322582208130718535181295721276261433728172493117988529381517783414146514673605588246864411376498246959518030940350204248437449907568671414583921897426422939438018854449504616941958113460347083115446534215145547155134951770759944858176837110781079155298602226780064268062267872412252900487998584030128927179159562898955691053897313302496170465490652508980245203132201826383846140068998852424359073037389907804713707801066115699185910826269463968046360045228987661825339154800506380267743605840806473277237261694294761678929965285368846116443294530196922728532324846058777288555276607413926690387638236902301373624473282987472499171023836676139281825757016875975934398938927035496652366274351502077259194743257930076276348865202828271108156472991404250604214101808656309811933744237690183275199580936073485417471908383670634807213545437544618037131346063086626421139608705488582086383811593975708990169136579854753344902982641837181026877782406456375665511030375925362163784102455009290107556558401271346495693676822006758588352367294834174078665555131931513637796137511296960433644213590718191196266492142071352316165879382842720425395452991080124813840627390596069040961743837784440743079911553820239439554675953047147976613236106123096707983675937020635765328829979980249420843337651967596606774036996467813245908902992322187428935505414096732434884251011340442580642229026440929983737007819241503048832388186227669559747730464080680171015339468205156813317973079903211707341836788491850440402362909591679687848711170972708884560803833734588464530120923524433786508035144708934326048685027965701288639710583792377882060159917336661664338876621713747659489890104768154858447425511733197030654385757314896139688229112640799572134632340864351826140927874406338838827948013916412256234708545441419452962450456636795684783057560291937027163805960254147053037876744214785701310486171388045454804198934564094948075081687209870035583994522682161633180393914054209746291420117427720745736375442975005977116780327354668027085092947193902074958156211559452324664573514990606620865051834432983570088743586564974323055728000977195948291006059142733639218581222377754990835906833142360756458690545469443010790641245766780452905447610302389066570924981783880725689209651834670366420329784524026581788623680865289605416138980916864041741367035612769570666942070535983439026486255176493083507636420596978217224498034734592036617568382296856402031393946384047018979802052081652509565369259572336598137780697831713456912428218068366021245021020664009795792206172242647618680282789327716257902846903348191064532462904929232107769284191695931600845103328038035409649752830689667989229953079823801972658999700119541497173814970642836978182933082810451983215515707969077055859040580489117937084090455448993185881777485783635618070251113504171132695479104721518028337234731819935626823638266471687961831788125409130370748313026814401963980160709049335221523945777758483980777630292737909036844183835601689417314603701527058544267848282697892937620293002481664891471704417310737268120198335493115861985097150660285962451206461886409878658031188976231773094369458935081800934351570833713245787937970965067111191019269947428192270816850256735346340030451024391740159364547672501549479502120219511861039701803230431240564291862601535527806005687753106317314940261126495394316471275442980707398673895644450727277803623624043359330886776052206965392584124954584883624383591875208380979216971823251663052420666247565707050231515212630154117174036798098619041571396529852973085901849586480436634471941396919943462202516617460422295189557455599546220105048149348959950029432320183435296216129968371998568900194009524913992992783892275431086331530767467100408863989270076982062104724053973803624090870341764256573191961730280666011888501599912885114657514798703109120632892248789282630870742376134591524401464385898205342394585420761371836343334442778053702072919791372170724403316929025908811223065851370143794932055745191038939774882544964366181157734791700891690262253837045657686076043734016820873595899943201759509986270426650478654605192860715544599867481394644677088759818479983080180501220071026656200847556799600354286410087249216431425520878434665956361247813893310512993609103300145673010449176425700485943255064829210343598180143656018827378850826766306080916623781309571098692246856028611831001348219745104224279869223585997754229132246915117065197529260153386540053626717317330679834427096761552387580305927920044153482963214170135658157269159529796372336558434463520448295788951426176583450070443035983067598524194341167442314163347193187577559724661940703321474962146594945100737504220212075632903586471217683563041552832816555600198033780059057163919949005182524614074951291732578893786724871447142791654924739854347455859480873267039460717100137810379420956847233879814129133569160371514001053400571883685015108568152609345637350466238194054799440993218733426225172026304120969048881097766545578204543911104984565242624841164076338567301031460047037178224777858172327468962314637596013080618441785038968793418189831978456708788970437363999967224134264375388089764553904163359636550390049651277503500765408068350726698199500139530764721758600733707531683734152574948447352782423368865799370514724299546232868793294214108617688988508500058738104716613890354995838749318640455128995951418893436834276608068893763930798103451684290491535550638623574509808999166605335529310008434592147177001355915646442579127518008260761836569889318463568740682713177386656646782205191247879409444879270103796202059879758437744747404456726202151222547254676901413308267614688698811044974493071291689406543277009736976419093434461639091827826975607974833740846081094916512956235084050960883723483722483942347169977049200467127933638586742412679160099145072704497091689575769544933542649222919020174726270423792410151815087378637724420526335094016819797342423105959671770151495222747062958473047304391090971791333015541964540923830668017788856326806519715914277916092947637520917894720223782616156060356058598207344698331293120400422417254950951365478040580520697754219183001773494122330319038580938146852390820598812364251244585001563792755799762538008781736656013239578406626101276413575988615615385443841614497173381479628655571180031233750001452795830434793223537555863700666967268325358866146684612438221674360947783613118246810974619314070167897120761311341888189456490037212149924585139669886272620937604183576971819972964196744668152713759819827725100471142888197805251730449306926602317899031121730881035467716503150307909567480388021700956363466373874295027551394911537075334173327519543915502313299073940611694710921538202543648548438881522985614914811515112696355067292680155087428547876133028701928530060646305831403358026591982394865097008924961831894928940634731712889411975818868800069344973001782272636803670464448848782211004859891581159836625588629614615437356327753328622193068555277168161859897897965282001797067417113290466460297512019988626737854248108296198331322244815379275201243896093888180153916902736262577723817296488484488779296758662702252747540465853272587409659743053696435932508920815368174120734030552009608898558260550591484249871670157273233084829923389475463072668365999646810968543953604390676703272977976746516854971228492563811179040933134781637380934028459984644035621201604716792461359970936691867556839645350880048005986819147905935413992434939090634851029347592388623116781513251663474154490950634958900014751755616389238316096399031234995351616421505866171282054611127606960829424552913702221015797402607625666435521191117689705749495577208125357979320724970910060324796314056432563340944106574929568088367877967154818218904211421126671188247031997744220954650150354327329136676146141994393489541496316142233736356208616808461762608324343779412138344592678175072879402714094973908295958770226758888573752478883612213441023186102558619151930128267460595633884013423659079965538255334211036780329189629409613124428968471165907776655636107851091659609107344868501304637677016591456609976566608681550073334857772548380873774829328796541473050702847240297379986226883751658303081400150066054846897068041823577750189754132974157661402677728466395576272557558034709196166554617377250624972557917897331051647115850101852537786216102397286541647499927930976896550153908363611416069763925010600953319782270941180920855405723170276399096372061664671326809233828296115144381774390571348916524947637713909378157072537513436908597936711831977934859134923482894133615203866301929584782429449394960576193949729515007781828857641845277686990485071941675819680840448560933079759946757469751585547621347562753699105036922580425138149181331646591518650837068249473308319560993129255457411116544451684217548978583592360540711901591907451979207217811548994844100228135320271492614513050755329813330361133140133921316702377746894926177920998429381579894044784799002034123444712531803110653838400846503181763385338030955241140872506152922243287109061258990460313030486145780738895537299958812676486961106536571006269742222440287521027346107574621216017904945782335291747207143245481154576245198646002598872580595870721278705421116656051250218025373600430204148025633909867613184974074663953865086597473059393097849869036163658314905656629913052152516840966112124182805416389198251541688392806029164711680911969839347133720755939684488043257783835918648064995220134697623855906196259727754229018054992142111874228026903560640478474376030748896339069264795977778798173396723717803839941484196258859735546292245729008463082653328989713447662356814950855897940105971774063380627084300370988779356852316751626535985198210585647335078133606018490852885988819472419477507863748511614954045010581395541350326244729015488533969925239455555446269521167502993331774405261747457589962311209112467906699498110839054073322435133017702456960506050174625191118462054844068482756464938553314407391197035951438139483492012179362852544002258920608260898279786234895175102753918272188013949745738939634726834741626395148393251114716338177326739335745692037845966039392547123516269984709140365465748079546105898279159514444149970792067101307857355054788744111344874339795225370143211830802360934541972760574437922985451871527624635816386855763618833542859842829532386462294530429569374934536756733415008457716864920942235212519212101366960548366607311212223796401188753837248359180034932379199258250405823137420349745931110709458417927631200871143529557665075496872981201884338838168469574496106256188379059172271472747365677350829953393247728107689792498055198704941849241581894753601001328538749753518283708696437503196798149542824849782480263703283323915838787053979959189537753448590765464339623889040498782904855216365653141439191817703951953402438691569166846765127350303763272594783639928255513693800124895580487982961707937175556384509199422430825586373127309895631228687057517062459869527626303610234282102596512771649185800459797489277337942862746550110992737372760803945464990159713460491171215962544861230925288958019571282324616005051807200182889609163503530942359814324785176150918287857263659892538814781528744210591186024319485580658675212006211358383335913236044580158286098894501407677376235196427226664509992534348308435173382618962502843202143599192313116796968230574207136937382397783682859503401407948445111894172831793654247931713550583641072389287257614871560738901556350634074830860475143540654728378140638902547816412811063350412729787440520455997448803711638513484902371897891198373630584748159085724833152298766652752328239711108559873115402694579750240026506177230223564598619036468941150520958133597440305028278162421254292779459897433058633418698393261690925040893548915763994554465676624045889067922671947527909072798884213986485230535556475223645469323589149143660823968743354598849170677155447903468919833383052906329857596145604954952566450233102110592080294435652633589997176042775241639710541717428604202626362779856539297002414618467370312215128762751751754311678990772476901125485796928545532432732176722073475756911309429310614878408575779784385023798066851102452330333588040093161292604094878571009255058134699128920003381041579338391889604242323091796957093498864299043280807574553204270910324179671816469890463905153558796885208711692615211784057109842744276928478927204136802180407727166403865642178584468180080983245073032160824613060537055454010919366517956443511091278467535390455401814235329163051364269821600123856797319544104320278942783824518098826233535097536181613874650146726518026511725464418945755432559528513024884422112120517035420537348500496175375370932181510326480280641178632702930547724187087883353754663307646791254967234367322116570284197519234323124940453721907340197540515811533373948441418211268892074601791100811547695269599843205814237762556307992378690939236543138889865989287690667005455185129679960263816823571291004285270437683898938288217950683623123749286416358560385831501534442657920824784197620326369187125970544273174531598060604162381627462384285522413484768677174767648573901697476144108662200622891913833398164366426896190749625818473710891593602151519678796231518695878940441662533972113525921955036198518467297664451731289835950999614997231681009355393916773509696530879612954909894195572999886716832928109810047924888517146617062967737697076239782800607508062931689084492727753699547473551739439389646004980550716608027935946930734505299486800859147707976888018878858796303478515150866174699257603248689231010876144497904057382856135974578512633670785449510391314802778176294404331112816198401718175598468421324550915869825983248719414910077786109580063545758962215029498428836146023620916070708840551132838450317721839964968983472768279885642095284485064865362537763473658222238017604046490129536799528471910830742849549639232160157805023332536095922994569136549643170661275398893732081327843425053622172842743420689848855196657699262939807426969729052530735273047844566921068580723719094449920403873432818924046125691420924895982888175170313444279754563685019475690504412728641531597616057815480438515183215338751317696128864487104197145203127100870660014513882952176465095062257653216737586551785046682103589288772280593589855285572175070085928095039937065022372008249808059026601307516531420218616023182130191813774926843238687246254864495897216604612156197508591133558348716987934622108102916392725269412834538439242906947587331665965752362139372265823757756718380105997433077849523189684614376908896533958463737322078447706431570751825882399140391973826333970231211265421196773903179854836885136838733200590708356997684787152142071382278802936539138202393193981455530788522207954139292143329239769192649325830748851921131253828040639719525551417257269997987844875888417352076392361978840994695734749966308306904359673205310437758398258633307558927136341996334616931839046636597606431325353436865916880815598602027523801567107416234823382367193783841619991368298744910115877741866664056987672902395022979079171028651823409245541074251675404555929493249209986629344866715264099947077513733065194366550231887023083094945063476292425724058634529643940749416095232840901997850125137924322577636397536000973780807096491898203584930223136549389209103485893565470797317184984031522475494205182058521422823778948616459397472339818909769370086878652810544470719734654557262023520359378672149740483806209043274096562597290247916620674866496376286599775161834867691818580241380749941382386024054217215461401593158909402152359748024185966244388942611748314766359365675200313562499007287686761851698164254843412832357958003657011254253890486183496136252124097400483370553600866437998228078376078203472837086516495855207544113961895774270953147975869366983691349796537450214084974373668430928478489183988735842402942531306219876470844511987885062461554218041018574559847683211079477914715733684346088461087258675106653539393028217338198485339068721347023316545473220603466964391222120533708823818067674822667765284092507009195743835759696413002411377311874076390041159150220651381248186631386195055600623815533676659233752547727030288377522797931106977933239918435196024283061670559859415922134727667588373885907435087795382391693295636761842436187065073593241629884376237313495182720714133732421514900837952809379677881671870529876721141299880673785359574522932075638307390777116581221853260350392850925957561904101315595722610175890367818597874731313519477838643349524837912653614755288133344719545744353559137599758325357161263276734078791211584094715698291392934564139435119787723535419863956215834623658270564568897665970168984175154408827378753923826425291298661649361924116059203177759011839168867227753698921142845220670563605807578081845093056706200633723458656697375949635915939737937065460047568884522091693471006403374439512642600265266677887623402837688786896985664913011127004325462789371437339295452440835708123945726387341750963203828778060638591692615517924205673229290208658550897149738728064564606295292147333778332342060419304026222519100248868811680258774817575107361781056630937547411372145499632833544579242072935779203941308081000323833983151107681632565695120225768678842095667280127316689729643878508235348222098083271334439059355246656671139720852026909972788799325529800466978313344024483970678070557905260103178002511129781363801196593288627736543304801191158927414225129597964526001460336050000826015579488613185215058589103566235136292566594241910905358667235336843096775508010532129443516619697061996170223260372813642674672392854934256355143950107858343578763549464258732379548013087125345493479077517083780337803213230456133141628414226510591531328780046708577826876764140384782443092895664720550153352251171330924267981968605878115080662104189901099745854677942880639571755184020548038367496845673751789958476821255031482668017722242691558276470012584800076265992684818205316951425442464189211684624656883533623502961584242516163594384462125444299427266033619164341892263133776889524587941858836608692584442880260078613655416768668370341526634349003623919164181056499680133115550017016287625285661707937004889588254680567442942530606069998625715901967388058867520292579452393482634620053012813364206823967849332091326861448993523655764204359563155326191377891274001980884831250176519324409059547554680030050553811596424029234644801902094756761807382732786533378789977579953882861921012744087234189762001113932542267500712128686949585329914729267675584681180579337894817584502844678954349739075110083363689700126571874879261627997624833922397516423587652216590392208859376986556363345235649312275011755878158141846040834119483508834301623771884062943210308255135588376213329155637212969731279701916828561856954961841744309411409631575091467269122500939499351116856029504820006298199081167305127752918470592596873768788069295696262969993491956979167536133936799865497930238422261861768266637601672356501595868690961097065308608859221360549936696673864210688279322495777281582524626783925755725828284375583575642164866907812345113186492702387073632642364621281145327727790575760644367128446225932309309907786536160971531244090109727423405071163798601484168816221676579747488098644209841423058751638401134290637475812398674223209605677672912290981789078169540672545911791965672410579977152450874749521392311189048116615883674426673972398174616238196753888168445391414092095131737245811421132747739149023853999649289138903900767361259688904421305345182889298759306223645909406222648544467612849788398037369688531034651304983273595896657853079285457868451322500418041343413700795325627771444595209513633030802825011308176313755931561788504892311389076712365878543533572975386938521225887640016745625427046366986196179565768662721427208544266988421808803537641505587110002053331381751408832891530486403959158987422010106225248010793159281272378429277523335211108459077392009118491179366321751964391534034374551477786865605860021826523477649933300603599378899534390979534928337108945171340039553605346577320105549140231851866368302295940142728212766667517568266261977076970092469154675168085447857923820892099020971320820154780190800394336133904232630728898053938323805948881000484165600990251631956917477107759608258250406508480009553399378334300871224096825105986081992918066623657138425656515355658843753385789713289257522368801644864749498176194335108392946716811191893265350057636195029706541803760552605186606129034780526228158457179685160969782373548889167864371186303377500108589282317325855968183506988186091358759405335574534408806412927292019314997486435608838702811064941564605272409113167218951680211294197252620053070888015308632017387723875124124657701582456222988003818910712479711580228399095126347158962844654608305755245416376239038676492626611183860361543854343996827584622622162465640208948555919208129137186568000520962846295854943499258941198939529000158749489877613860350573128576287128253694913625688193966610353559986811863133065497191340854443094350117274657583940040108185022319415158837018402271453785407851847715049692074653133601994296627593047086286150866149899458085680531242046357908480108149301784140556619819863336238222233321727857511960378328560356187186141539781845555183675496414499479928338315422542426714022402198711932467952005315177934051281827636391006672842535807353236332695845699230456563214587881193692714352682729968432835766462806030055916301085402735135917925277660403686068167226550669257771899179297445970071074200407621811684336284836573910446251147595646331853867831765383412651219429255875176426923232871585449937248610335049165687277468384002600076219542717537939577755504026719790028344944399859165078434599570782095433026592255988534886027774544858545511639780404028876288511038929136785650899897272484666309362896049092635917287851944348890560738107893907821614533300243338084497923711353190990565990005587111183860745125283172401159341697379440644225184137020492976661060095416414357223090253350798667470857643453022913822627901648331917668574385984184495050076234824272450488362432952274390878486697995659305562508847268195173162238330803758096491042475740178724164048188711940609339316297509321525352956857288005211122771013909368249953898299566703943535199734565626216652742118484296783690367267540579621609831540718772284306700393685639673461895247949451865647519950587826344501137715705728406964289079369752985163264494000077743755479764129074624037103309474269267675657141253529518780252823720512378489075952736776092790821090912893163384669098712650477697899370287987770835175300738374703396412021988988677819072366154990387418384211224488875708648048652265357104809434732909157788980790730610805775243240576110697789094126100698683586626618952530262805557786456344431983727485910918285659584826016259795773595457701990992378151733517127228357749121416930482707009585974748814233035554169350519175701008771963170477404641272878498321534896002257488773380412788154142566648523257954806043584182854334630511002518220579340681369669018941725879575964751442929609724827229284801123937182210000407195104106386951092055176078211040369833874854786910957453319710984793890520033256003027026187767264192818137847095396734825849071140135991794796898073742935613769783338535093626999787575698590043206322026775558569996943290225442005190388654441344183913502968299679830926981991479732865046660699767207692171574558964439030708876440833059283520167378285471041579267644789383551192084234570956331893185141863142762761655882579648448111140759368350921549285937631485769527352889203737492282361020533380632700914108576785391230897094230648865745912080497057652641778364049659838058957750809730753050275511029161247682942857484688338330800874757326568425168768594035123334401044286152255318210637364359237103378281687912142816209864248642005189999396409722850072176496901778495054073791187903351089034222944869427172087893475988420855507697554667927938649334347496107675737867209951266040551199041618644718168992766531180377389016767920622815484243723755179214182779272152261245128361800577489785948267842936452642448775377732358517956521918130293410164098009613531146094361896110747584434328996794961868120726993356642726212973275607662058782361494009533185011421868957543651034670144360843220152864503020104914588134046446858682740568284219587725496770647403407011865642512884384471598806408452336464236680653306869214640324729129514091880068460015374648438868614633689853539308458529852552302271479242820268846717983609997920188057105125747608454752283158133610097523008336450197550828701897384347525739843333830965240169472350393155259822701284076900121632374385974974514230579194403106201982597820117375638675426359525257549919080645216098011867177691781520484821830057838757069241382519074575578877102450836741784609410885560886529777566071357209660810902045924518486278846512741560963174902718337825384160217245927013377330973022459456229140107895395357570888019389709157248119931067179889611745505861018584875217249631223405425245414097822139346250202089998304283660440389913057198684461918183862794803663465098571416085821677345969318671674756846799770811164683124693770688973980844625807607422673474433194988494677504694828957830183397724390376290309024792392011994316895637571657691322930369661027027709726727129515303324601424180261174338650365840853878404555963195205330343824757455513834258191027755636869332611620774359653781777928937950874115108358715024862343824663327236811124510142262855198182366185356620822791362706705292066880582602414901026007716512474850663391568739255862766928782282857670170634352736878733875353830594589856274531580284650334173697576245039600600021538141209805320247124412588694455818631219089334404389766307559520018532261660701739369432339003412115486450363021341844529406747647037429143366364431325767289005999259126863203042136998804131195914300118381571921270650832835338083922143325566280087296176039944472141244017895190450618082114534829099005523804735241191712353453196553352595510000541476740667496909016204484395952236126144218968543446672520213779801077476688480228100861221637122049426733134399562749012848110311076981698660813580733313712778864424472452028235847537789847979789943274519277761778628568932090607230293235207755760593066503550709125778021356439873010451866773513476199800811008814149304191548332469358903137719757559240330453289043337527292360867453493407016978387760983369301505304520186768111836135823710271992629642292856829378729744861917016882371455984416462325183512812841617937092194615677532215043237125723939656420540506644399629816895928589760462559574385775098678064488236276540643997472786756090998563608185717117886699075372259977101520562117598146724583825603176690734958638661959237074116154463413689488604309656570503647106220708322073648605753808907340979720450531024909531324016834393572837912974089954203545716493942677230876865806714360775701212166827766792909589470757079929082093352826472109493498233196987424091295614969070978538798808662408368416505205836114557295066343251903657330167024282907851647541878326078381993088882277233372668585953534386910029764020644069834587210234178854283172100670001104277777754260304291227868738200430946182290925865595964899318795495544239595375019286463372846554080859875622790125204290045848371350859540594940917871597139995820138544446114140692086437391267731292667635674135668320518482523032603611189558954935480556303561088876553639688519084914448881795279161978031234073536085563673372118307423688183369050657910417338696392497371622777592013847886728237727162735778350474476165719418600326615809465012757595958050215160170776319228262668008411968065901098035372498286028342716385921574910268067117077120933964685235989579115282981078307544372123089784602158474319122750318072950395997338551919573237957496318570644285963967204454316694351388430375302469390982275534894267976502567035811222240870391653205089845303101468636419465843469138756025159241873183685781504255023952794899207422741114238263889835257258492721114729028055085395366727772813987672739001416464288932911619439339938517158768519770593405266044471395048803962998160860308828541668644477204211219933830260412601274720996486055026612134261010975922099694177172965821109424888308315070645180747510383416821923597835267163015707121185234188724200703067708563533370853716593865942799814704138437523934340479465508707862443311355028626982301553197619121791983073724053203263318580263468111339951592292423250112410400445203603028329575302434194843500204813770675513199222026900924411156327407858557676140512040032366924771960583060500478077513077794337455930349266655177753869409791531698966432102704445071244173086473403202302609778864891754579370778999606721503842871862706877230260210811704587863628698219243511447008567003320975212492771382786193001211118015027957967216319826221071453450914830178142062590292615734980268536031923858377654830064241084615221263779811556753410395060607013326254438249390489128477163549546643019596564745128239194325527147422715351097756029548669320251888369970528567225634909656877100406860388399691097058042275451162994949862535049558178243571136255218182792400936976414554852265033282833689079377747381121539135723133888484019021848006651855687536826687872202454141002316141354990161249858765624411863839774010496079925447399240557930429246435191157581556077541919371545172573754641953671611968803442644227659711798731492320060697285429906355292077614174541924244827291969266086604138084109871301146103616757390288479123339532552728778542287497241079118314700520798158639926650414447929269384970917860376005193849788105449651597383983385062282139578474929861663907682906895993747395674052333609529115713120294355068570096181460564466783903444617996672214085111781266001659426902226846068109066179443144057580372408114299763610984208308701260788544663369760727662234670931272335328566802606314069068871322363812320114720333537399507431135047618824523999757543443073414389044381194180866809006973426667016647449327429400982685113168556233358539867751253662890264264340027807648411044985311169116440728715953138738590605925861771098498811349867920040385664533987275937347233392015673733187734334163468835321606948411121515887817476198458777973718546387188450584867713292902415068237034584594988523809015922421113086127860608438626014487501397069494271291729774174641377037181154042398080964547416180090819503224474454303308336421776613019662699776701555286066195749084827254075348865959256263525611654268221004549874851326450538432572213092414915678793723353996719305841073261183463051573128599059397170231714656995307667938271992009216784083282799527198111808117057515139887417585708557339098969071496601964736432602116454149994989380545109992010419101084572597499162766215526815882555358143551629057016715289940523586428362754352738412357746707797310224542486800252687819337745831174111153908714118545472362653054474869024871365857898843568266928718008270998498282606425301436974447628389728678310344878666301488578668031853060943024272230663911819822099006375534139884461571909294861543894324129700387760064118130046676030459111880105698437106464912789365212075674694225551992619304294116462428335770083789647403894266565877114063463777333668786707913540555734388400532114495998446504557449850682507607366680934519994224667429492774761860532060150077423326607498581497161031245972451691864535214249773102586295128535577056181576447716771657650948229039152087133602553627240692243724332180536313585282928140625103637032824312701368022728352099905558176014751733265218392032952232998040249074637163678592470462677014368688055202303345530403310878676681353677456367706380571008722202588082778999011860584580210488463941089760549630465098715933020489295473361319149230068304539861123790934155310362433239017160783984513837292023082965141639001805147661064840283838818935104799792020790885611512481228626405782389441089775729070365633005013214922504941567280144233201531978612966005594077364579173928828088660975775445741115642851135204096223956857870114122449429857236417543019720147057555327164539659576892745421648015536294486840366638098457969875337716686210255032379151568499911048105663769117387401732927092832842947558977519470547183817479246827985248421904303843827698821032193098474682258631016264955234476180887562215385886707546669104449223171678341783845462089149900398283513655541168235466984692245673430304641172383894384055438187235177275775146722059395217044736806218188466104197482963825413893716403677101088543823124634060329602624462150443619105618955107380698011780676790456163025985231735268139874794082876474606278771886666908299352886215479451697449382372601768081511150723433429486824096674170109555811815319707923835139324265202254190949220462581394135656713088205780290358523158330710018908750811851243932307672594366439959674992663687229041854524695997683491828034173429577123569604300695801551210682988013257884494299517482416483497537480424741728276782448785470928135489773662746687006832166928330357275070798772010591409119432730328027677546517773693508455861801145479792737629040742892075076802566338174201079018279773852235680056450231825938985548395893227989105839434759336598804205649145383538118063985433880398225097554348684213550344825334046541086037328921766748965944013301467885393557504471142974618808383470844236176344926530608377317982346832710458419209009215010862453915977259495538744011522111837614144862448445580325036500000248223368659241904912553833442826375456240415666316296253041405905086076178184973418923542020631583749201736225101530878490494259402070109226050988783626509494800996761603747964138127048185699512128736372757942471071059809843456639862975937690622611786244070044399552867177512567210510203906193577542094042826597898184381687714407539685279102870838303113137599039816530319594360821511436852875029495014696011190567269557978094576331122253627751638419905901953078856972942903166393929763981938296879451857842815016031936525391465771278177513469351361208389822341552273239803659721229120611758634295613573923643344537206268147958925160118798866577076300548063901204684435687950520116768786795845733925334405410721047478612961209051569854128778717263765866615091856718462578220187811784680717064852689214324128088437768361281737848862325309881465992579095655482799689205156831491985438096646803867371103926370520589425642428352165076137354548758864698712350535403486322340717840072591358153716479916904970905105134163294370443352319410794447610018488245887276191983739310345283204901113374878755480780605909771921545588356042997019348594173541765360135429805454644606568681411992163322018023866203762054568587472791457310109830637626670619976652579147654645105310692595633787815978741191899765275936117600539181218910059577150248356351976451102368903329625054898030695203458804208919293944040647505225006414886983849070163707527367048103185896245520000025480531814041774793703301984157744858354242198140305870973272791155886245076587187111747366272907356461850982660108130897929133214547607585351904038351624266295534275483522810173104692692835868608906689214670131699285408770197129909293139423602577078699285955201583217815125955927566881123685545812670668400907654274038008158550534796739277184595805772580684938151328079215865846772838556910393234196042105007980796807501953763410379690768560636511982391503470031542156448141326257412079825025675434057718311762060129028947553936131178658971398531517943452844429218397856485052191093965083587599516232881641135341042738491216805501875060115357993771717926575533744233793239533606786253942749017090537027433703656008366265392082729021301961886286854031796797428950538307601761793681811892506807737922925803651689967603914678805345168583723331911470948838874636526021878762548198240220444082952908769217495971839719694912901485416575361263421238659340268076526672904350042074483160064180125488038034923499839724673811256625237227908094783392438005318279488105494377740953150522468011638671745927548974100800603414965480352944716951567904405235838404171399531731793469994819719138544483385035699300603518191673609827692988707925461078602596688254374540591437777762691952795008690387894405296277546929840308053533752928000214881180907378679948414684161049199768883385628611839485034617912790232303513785316857459217339755368595455722684777610616723130684293022341077757597010821302246441177240626844943770799374959626321599153898530217705284810344341945701186180772783949913215329346560376929481891411886920884640789440871865974317991422230389438315773279391482072265337578987562111264148197772209827210226585708859211053439791256890810368315862883091067795970634568417858065581532629244528741909594563765107898288991198541021378121056949149248787248581578190438234339258702013111991044576964407855790736016766307098270099999761611468800665948707668547436263845897356440467777639492768295725220697229811293882537769581758790441817525559026654220543226815125080708018195908710817881059988888258364852523768276788740102541804821948534889277110697011467892213155069176713914493580227876559265163937593787324290166786187948361877064795291783000764080023668404885882086651909318309696350777935616324138661604582423381220837627931355322261370991252768577272987911609679756174755317503339433176789727522693373117725346340931671021554966868605535985280434693349547899691432412357420643423384983803873651061825330386221735768109220208289905867036446938497494880906251069562680370553631049026312645651881911773708590904703447623102911642637367844144970413235073947753637270346170217710871989558646269818197739202475477150701478398172906796246734331721937786892078265992469319526020508244858698560182481709566859568717912116415684239301912334706440857164582338149698860790679367693659441030462046760279468346769062357114310038109502499899667124140504291354215429768265472932409764257500809479659598584333911573549996460951439628190564391570131710041595015916622376961907255180829238365958560859221442016247493299153088626585885576813417435821347041105431893882080500274314143421029230523893209526025884089618746295272010000616806374598784188944660627465729720696459379823688197194349878319038948661593702215558797752622425987446248674231799779451633502578890660468738024698626337602802470241801542811087003118112133025953389655960421003642763260871869542874322083488013040743285637491634373294201846452025495976794511053434756142514661021292306495201619689569645608595472120075113929456993914737647296771606284131180703609716320920612351939524533597168510350442023727517527471845192222425127660869402365505521584132812672078736677261022835570822582979580197639309135956142721928948559155673161656866865228789230430964029340506955240140182720141387556938370683275546099440120150854773871147393943782054697175902489268351925646479250430722771982738855749157285707925844608788900670825071451432698235772077819028079208507053862560762162709153224985993526210610052532363607882673768714415262313224626100439423547239649593950223330071244916406047564644896647391763228836969316166257625420721665640026401426297781561689492579207084244425736849084000302583337688868489064107696482502712855529841381114052522435534573722779833756797806811296909816483706879020691040786453449068867639393636219037796380502359150241518222935277531404342444670636968720893646928892751996342529373116205135814257901988243905777825999833795980878545809817457082596830978332074837701879547522268697819533657756585028187440942006817059789726117364006094879868234002166893226282771260911828044562453091453829977503150265852168986941763613071266359545511234151747477746936485024300988604463774152622437934106487247546674942780029451084961011338041306259063376287370888278266072082928651773357614214949371548484499114830761799982583707872569552739366118446776092998272228299035437483543851888706545308351178261142112472283152959444337285366908044574567262516391927712606689225076237481122207152060915331735266312519128077820251447714647562060008878940244164226392514526977050194809273074005890616637301296416645552486693895469653847139167222296701730474913981992954567614195487739447589666136479611911383087594339306247820085779140511067107700548565065206035554923587944609458173463068335561739858887997355088998273906545133548408009559579495213496231248437261994258045645091606332252677576594193561662784353720909710586828988085785460459600715371838252253956036921073445333493757091844051859680432008814046929480172193774945619479477412218090131064386835488524399433807078835614039747221315578899712420923948453385405081712210096480109589681245041487665741493437459720608252213337375719230764311282154741873753617707358938299146839873311613795128705101906434309126569299098381864381935076439913230869780795602305920235350984691501354219169789238462913632955556043929244219763160752726489869972959666989190164547258836771487888149522143659088959645900761415589242875786251877392032805991027179996961561523472754899373733257843937408674790698270312978431492898549096920968599691125395674578293242372769646078512688845927400011043642023905552278487820208273956877747110419055701312525034151403866915590297770926026927906974436058924047987485713089986198171193037507919537075743925180759326301364952149254006257291855976644695006026205796070758684630884740396036621467546989325405149014130728510931965397730438334201783311881165968868185867836926585266483976276496228495485653374790501818671431732063054471772161857366244848904296105327112578242214289301145501456006600525437079946389914291857521175974856529557295969581317596491205684774851689022988729944429106787491210178699171573682273414278573550415389358862511569830002667902212095819281186809161389575259032232838192604220349906270170637160945011670950221343708962583950811919674882210203675835812998866372159399993253248307747369316603039633850462171892081799194091905860038308833410269419647324497061584855930513142937286066609547542899315907740298274518934606700714113742208978615122284206927947672206982302041469802971101688658325146106875155837250734806166310683549028591896745678162611197365087692687189353778369653324763482070219653577520257358740818652132823796867110527908675093624844572427910830236471634343527459733433778218550559803376711735570440591008978227424909696550529314191687918175288812153121147009765325487518181281647080468429007099982386054960892425196270694332160991368402389197485503008410274891087265626661450749318614033486373747195794125096563765481104314953541551674858368417813055389840053495225668981423428574290685106552050064055085552574799579451838969143681543004360170707122831304315650171372877881402619353499357787811185926294235284314152217055579390615387959746277953170880568701976476344533949666227055431305669507326906926537605408463671806794131948100086575784112190406907400067426872059532520872341364315486396118253978496300606661770243022274535268810855657137662207494088325320211970613268511959035222757831135151779195337848686301520174627146881186199587984243292702878834454925102194524170700021095714348243033462848366000599997353614448278018264644609179368455341076633466916195995961150122792700634833252479198447681732287429870355813495801060266319714850148076423716310099410554676421769514689000818687754486348861440056090808176090022109935398048100981487309815888166490692280751271685900386656861611800469416251436908295397664150054699072821852877575041204952913867755166770822624874389643647153357344022093290364867445618633956547327684131549650978434009794718542357486567601006444368498069205669880418369929853096703573549589513820143628287987956350100259989282771626503604206254313300585319251707054960021428576274488773647267734137539398169957765697602191369670712658205938942949964762111121049874296208374538037344860834904763454935308638064706355716439912172449026242664831164652958801187267527748222626940202193684276905702163619746464712180323957727818998209831465135094076734968765622535715109026753519703913245720484786414946224310428792979013289720209338614926817844198664679003271632583170549940837668786090018029228057004330699155205028477934875979571258427047652337466860862091991553534062913746961087545782840723537977803266362519935816336126579338801152412060085857603356973321765799631917691309535414885378845349424084024684657464094918722515269429821859710811130264390237683393917531243384705040393993132788672900618832335781996500680936509651082591581729393027252895488042203368282024118298583824759549526940154267187978728905271890627116711902312576005426517657986738387457449733253208627230122049294159802156193686287017907784963982055369409329980377486703669186488675866080939976513316995520218377912069599045184581649493492280992668503322950054654751190740387869132843874069974409965206500094117055012894880044313825291788244644905928519498428588918266605603381504028901940369850048578962237827757400463191237301734943773623320895256411890510077184147617697733938067374674328853883896871369683351584136067251690055248251298228503436515972996237893637965967586925592129504751212572713763720079466404494956675134747847435112720492125608662274845010888833035720477256937241031742908131702763640646114297967757975493208288778139290860306907644775631009945571965468786940910650248213157229872311667855888242783951282416074818849177439447115892115435002890826888242558733719711599955080465492550199185986395513086690601826495451542133965422204121745397286945753666060850316449467103825115261155563552171521367694339554954934274117381403865215987398154196231402639024839813394898078398977878139730994970628023710400141568038065848798689544036079297274440938603008370010858719934912148262138561764973735332016887160805786796637981421930006857804405036438234236427840468049222341772201318486833606328465772496197118292710382812426335122534793130583326235225046912291675035552522399124784574077437681516571893570516132278120033802342748331568526309097898191245921647210603943012136806136626577188940806298441277364988361959420687308785149144715846237461583654759011961236814823767907220935707539987410725151929752876749522207296326361237833738208893490041770465324541566073440793893331374758025915280574181536498764191578518511126738184043918233291534204678874687198466542411522325605552554881751356229372706390280875846185182019708547073941531558255683975932848951323386147815667684311662319388886654836324165166379958182041149426936553388978598695011143127250396234493590846018443380724151003821007370743993757276414660972201976985413231605897215408666495434491804969549137347542708698553286379037119649606986253404724034685004276705858937626090362650143949627223943574808848322756394793382401336771735226831830090507931388851477641007811025943002349956319726536423630639930142004073397391431632126595415638588997898806080634426438908649224080763139003094256809359788235246479405530757342402319966427810253809141965130674721142833225666448287662112276499810400414394886117363034763851929246228586534206123153475971921771625796619473367848118404532065927146788815699163222773156367977294694589071880889186923500084407036424765875985014355172764663054757775986205551761476517501735440415965809097989536141915619464364150545680305548735456563498901840637054147026567807558835473226117202840259678185662062729082325697854242249685041909781252658457996883937600990745102322082811852343598862164012998599975569308607294561299280291891971153095040664548103999047885241124911823798517846529193375936568198918947185422604071790353619145944268694467983699175537164192645468724363713419299490732119934443210687498308278149755718976232671333583592734213740259107657545290150255010157764267433250473780644026647376468874472602106637837070695363050914094060782305017871743357630650495478488174556156963667488938900355941559881935135796041940737742782823261288447021646271573716212759429294089886206975843864531466404766886306750728248907384910073000036696910349907915269932897609831144455772811793847246755760348329828193380045163805194236444271364449045811566668566066862347378702107302467441987502589940658206564454938005909139992962629404481706231596685212160301787852969553832373804654263984268354296827539080410213509875408631527768731567363071176653092183325872586642524442756294172785863652348262682704332829122732687546418531627224390324846135432384693814177241250993332602951532859747647967180986860488425733290167768090256625356843067145620787239919537118287993299532205311441146773412238004235353884393879988438758626683686534074139246954352865972016338611029994595133298346247852311570848625076023104503304912804975283105948433628186572534011502672169639734416215983158659411245097951057709065271126545572176689481928107832075301274816556688341943862544877963035340741191790927192568075439135851116419047694577690440001237671821804274222681235732386221363817200620587623785060492259437151321884676623209216216147897598718958994895556377800894071039331552987135141346551501277474814405596936826392214213378582438169529646360754390488939401165914100393144016731922683882852020941348101019635367219036587695991728619227123143841525915500699214226299607113815899751864631857890349206497379363570628912248853904727589772117460175992373459581149026885528992975600564551374212243552192112302456996429907623979317201898531407597673854452839226513585162674000249334564585416908893529471735153067920870219542297638824170576431087813106500944935468537196746672194492535294130847632108741323071037701899603782914845141145967385577882851394585223287296669664286683057825137601796482533949736883136255266832431196649931589349026725355814329185900361070276335275698358628377324476208546695357785443131668439271685317616922604491271083066684763543905488830696276771350981019853595214842976209125944180573977037563849217780546088288301530494202717387048930965898490607741709207893738469764446088294503653231733030264924876439530959195963909209250302676984383744995357548436051288012411426452278872516788767369911194643263469386646442219909394741784543511211009162006389993112167843287371231912156290084031805680525894651625392181068415080423582845263513496110741496617290724351256753262848829069222638472644316247912939390430724186056694554950139748202434369831937199771381357519270406093606628090150528968842186762736524988593903840784739998597685529998531291506187675915846139534101309156567578156981696085177858299907710547942014992806428263974749469095662364950762135489165299248919704489608548841557428429613463437055957826572968013754393396304681720848672329274269905362771352776322731699861623486839604400458484272596993822835860991068493086182386859380477342897827191228892533124929606216859334360903459292675261225500201181602519225533605181356725335332042825087542426077457381717814390781408443353711016637496325251423887413315127341963449883157163620337130457953369971706320587038859064725879754287201247970855293035162757655374096237892464378947275246921180283492578924020270057733982098107627116576998851189982484321010373431159721693733942846380545157082378768157004756206175491882712299522606962765267766653689210331046076614927753984934681399277864640597805480338242045241176240453684665599771517267969568017413392522455354182784004793459508537220230998203442914614450851048939630720794118493657178478187293743616758157760752293963107570337929282381049555804074246438505305629268863526381063477680259622347284843212299228863733009386074843548722540578512216182524698510089347303880781505085492822230426824760610013377947606366838106480740693667888942652697502791911236119934698348870164589077720531333362997703905722583700734630338227524735034624981897128445710002888937058192578615735866018135513340459935801925293498479725202422319140439810367092727996684080360961069042382314803881329315825028492739317224785411804410921540295037955174247952504369827285903308035047025605005879581909758300875744830764090155105726410376419348740840777375290357007935119472134147068973584321702807408126323983610807685017294452971628494151844442807715834561429434083943635024437101666041240595348794254669597026169815321510028225932260495055506113756295603116468484511093460118120870401124490648266182101900928105431463802345188901591480276987342675698374442347287979037000005630069616487323743134068388384782565959466160397372300437581334609385763346857958527341636095139645450236517639645964447552217714998559589706533274851405861633774066239649811124216581527356235364838486399394227220917559952127570903857599658810914726536493946999006399409999136513121616912085859764970077267520955618092765028856802524818013608108490715856600119563956281995681533846995469805224328869733471201018394887368817264915228753151753363469411050091400580946173761994899717734648814555631524325185526549172227546935094577089468776774634483210144754138148514876090712123425614123769534094674095752025939913209951791362253134626936448593605512328863603656051807642342166395698789135032030197722107727931192251083243910916330625094093756947122864260061807753772450491259386977163105132061679074720596610306545648015437264693096837096114446625284424255435194431548437335649887510355841263439099953774105415419847611601567780076769496152868284970089323463066220913658506998948345731172045489004244053576402387978396438572464490922771693060496773840413566430763399185618925929017043601206926368387334378368401245357932500373044409263905792149564611379807074546547482859280373044372230796927353429919809380665746134678684346404967107138431808084084378488226849450537337032280106775392615357294007199717208052697636386167174280683711752771130473841473930576068129693358168979102993555646045736106287742557416983364070222048521045144604329351869300460055985940715812328624449070298675140875145202072820820616987915722082623408151792302408582997480487362570994292615785297866123999630223758603409115190885825380025984026842225189078170773873418599201575694315822210479492831887638621518294858651355540064751898195405494152794276355149621130075614073969144931954502870091242421716657441299217529534746931239592890794253320299023424856840574894919694726723079884451219044998109966056938278963867241142495992329661605823729848373183640755929720657557004134969340310135249150978793446986834205711030732319116532167489247053811288016626429428753958114507834691101035371415807938655339153932402797642173816215230970133576072284026347843246103673499843749534985960915938374617443472443315300060257742518771984762853783274401204404480851492265285428367891146915626753077205346675416146954725211010766644489760770576338624669825695075440989890470206954430770551396644186904279207451279851034953822042691420371878741040571165933011455736639758020781675895656185420427196833958249469719089061114415064037001519059773544380114669580684462913645071195103203077368858180046783324341565986093054231541600540602679665917029293400191490819947889997899141736236788191888347673008656238634981306065037597846223607649901254058794440964136614523861674057456932726026505310189665968452917032699648289516472336778820428427156226630150536184494422719277793715501816712443823467566769910137052244090725408105959109518137207119973398338074412534145373083157487681163409403784397159283004250865215161548510231091976717468922571066851332824993032195295815473461591918682802097924412594952091178120749014530915970443665212087677004541334064173520932734984690774634162362893153134695754630971983936453761580294063062622460323596343874691429084915302729875641034962059150669775562637612521717656185577974495155895415990676141286531295470181226392847705062674421757958518029860238236840340509876110226151538585592116978484239864564041775840025290419747633141453416783270919380599390364519173985206823367736035813350721170823442125471893807417769238464060904106012017393169268478240690996356180657841629243838640552153848956871694277145550388754180466770547545555163770063698072102128713256848901350600138017646052108728740656021456631033610093240751555170612687436687660605060040265510582057021633345648724676690653915793793654608901536381403722314435994146558206763315810554031993498286540893074361572447399212279005912865383849176882653905240264220838324392397764501489708917372484018078929080473139928304584797501851098390548154947064162998422272536650438404215821969607601543362818069895692702793508673178658321816668444505056641572393565417323247209607232712255696773353046249884168450268292135391867058561905485448988357249653707248715524562918878793102470964509495881174291324839241082593814679690766355891127824067530180392278510979156498234201413760722659771645522128515725049897524043738588216373975874987328758867468078086111103862987792756770652416904017793462732072779458242635496685931152429636049313594893326908353684666877660118741273102076710649380275797407167753984686959881091846169029810488470678728487375083298972755157529733015870509054246106728172944342082722997907899859641423628185236386594799974407247104094633407900854555856641102404517908063237909562671962261436529741208509739182450094992216300026222185305246430980585994935973023847617575395627306380457509758346933379551468981555162281918148831080857116721945798990463228409488730728344427633937101587109058901098249086887173811841179832466027635451960088855216673520278009578228599944919961831209645061111132078874546392232597859946944219601399494785195769573865037378297164633445725275454909737443927843258207610724155972736635147316774553601766579053573434767522791169795562530180521155641818791420783828933891516051127713044334286190795827347907053223582082940389907237810939883999254112479578881848308644445906153942180434416700825787974566619739930623358180665614415828670957349379858009684004985570733127307216429614509942706576463084392345828382691105191583142071420064267515447288290072611788784853143485330086523768342199212429281332387615473406408565353169025414375054352534998285546003906910752119282020879223926603274873444168935793145836806608059508534133598892941576629501350666043657773029264744762856454663687271070104735679551674087053175174002387862447642963182135379560001099625334932213081121193514885692647450649067923308331278489338167221798560988109003831889537654730690670931622108354782253736739265545918184259935818306677651973141825947970795015475329299116541440344522679996527020486220317595104862396648654788397575919584516058121054767193013037293449932249327629392325506494795922381759814966129002350031892694513923492633290431033000140310229080053680350790273154061947769469823304689477999928411924460972759888106255846084899607929966262537703163831380336984403036335037674697599735195237964854350834811553954405976349386579763096826848614315905987539135845355166177484926591271032217146287689675664553819163753743924767797449609238917895144456882225228976295048098291007475490693384739220158425434251525897228985055691309700564655544337946882086276606540559833358195771242607724109100602194117188245125084835180450567923188737510448428424592739737805377767849826554935266066400578172746408602020709902612446632762772893056146135740248207049502704316914320224114415409660109722252895118138188654944327240564532019802896939023490598848980634057254680706227827497356880093126616429836608908093423760322656195266891068077890804428480857826465247192631670633361920886113738861352811407664111355521798410474024276802705568243479467484767723012708063669428822555792872746971262706299191713775149939822589862359067284287267318246656459681403918563017562526900396076734944600956502489573659366583547341280272827411410514424603902868548101282093332950706497697340548356925523396178535247125886904344817590562456102260988952783567559195052329131408151857596525431011295946462334069126836801402423141395861730878950411305591813707033544305014610872201001511287535849518101153183553772401511239760327432055173025798912060494748015429406369423800612075706087320528664819381005305457280355254427220842700266987970572064844041491320973270475656224194810045907896101263699039590588631433693139403702091725662344318629080045008394371820569814727505093127086901263696881233488904539350795335816878121140997600441949515254352153036514324542743505901187666185098589241499393682811311592972686847365108042371870962670265153844165596615143996560212838351190294377063751869525994405059668764166102160607796484143872930290750224095798710639670165197220528329817732501429875399042933744676365119945869825068971192517942297000112201589984064848893869775410916615797725740678852467023313633717030299367994333816745929479004008851041508554376933023256669254285188081237125662997294900174492718308340124593926052363006776349030807199652751357976045729466633015700828188059317931731754205821913832072421990579705176432874841112506362683473379499324020290926746040238193717587631831661836038291938027673081741750481897376775960415429297958482360301662795681771156648150621967935874281438683329638294243814403389609797556410002058396612696623422614845573354937249734966729235835602858893512774800961682668471278266610435741541951127899575906343033673224192676750732503925434958402176089718860122185567806807986478604877221772302554276587277659756076652324228640925649435974264475128826867592091817278983665420878223390733725281380604637899667392370287848782677661841780899876421693645120742248446384777793261732168083145448422217807846707993303140180686977097846890169690058802237645834201070669255008245605486156745082697974308237959885461444438140253965455327681673188860198169414619511090285246907903772824672455427497809732164540624679493734503326919628361057804466853464643971390225028521733768328854275696495154663525904993569674285325862637048807839609795350342545359053271582021295048335903366250857683905322657798041879020456179043203621040857473980419639105853593476384253979816399774256317360886642168356833989824333513978017244528381741072454943720930656398854605143812226159043504991984274464126139708765940758274278041905713391027772998133542520461692687171460004664329086645484738294522547576574277121508941622692329168284472805469567796330573915761358789056479088132539080937004183963068870859503695033669194942206488283993582989639126676471042473875903657318625022315715965501257502153758584780369494498872845837176615811702430278618540599501596522666437478846565174624379113603717429114320585740994686826360566382248719292706242199725632215210100178668594307554366489438274547115883441272983768741300915081546254394705034848324251794799386878254534179836195999359885655728401488940698311079207970071577075812532933243637969371552380259297629163769431362648616277285599107592016701868815492579093980323252181844641597601348917263802210089799936943357905821045328674961997739834957132536110520651453643340806277656053631838545396555313045941832027860073837714903243740536999030975937895152703106284233743772029915875259291274532053591564689031881701619652967804510818354129256083237420407331931267651347186987752873184566889386496553526853695076267379882645673069518144559087443488996916097372182946575421252060074865602182728616494075623888485335323153265633138951941665926872858626781816444877188075271115295223448534218198919865848583221330784449773753025219239923824806039438923975096379264168142840669992219280854475492244531588872223702910358603610101729805588826232223014754465993139509483485990842026155735203249987775602602583663578900110444953227353609554137004985027946461384450139335431621916643058982509555368364814210594412268273823257705372774873818307194240761886853187264459592153958694972047785069309992688163473853808155696685577027701919619497534497192182583319692486889868353646907539190283716980536353150875268101846587247665013039693044840745527055576559962583900432595212156160009484650546909685340946216286227696250204941711287099785761755276975681340169551946447886513892790471184147837879052269613687952175438834604159181574038724795609962316247159752423529970692679596002612234689309746689842808831580972873409880327425994434386067026975960263571971243346960562937050203668903446825082836807374292242892422655043909905388348283042296570593240975738636697569573939518129565303339576590381955214526291996621786008467711075778739915836195372427268375871987567914935578315213996412764701214002047330527716383699510667601534735536274368035133344026627325139612556527156845456967321022879144495643193466796753671086928741408170055802615859951000707928434450626279460506620161013271965571703251087817685221447222142241898922100205825806993338102607757296255848626963541688952099714714634498311854957734882708738392683936506896188941040066225660557080791874054812713641119916201791394197556156020125289473264671092473251467885011856620784160770282302319257588712326705440756723578663635499647774228522835805591905575566978127233110271469198263753200216891296992919141354539988543153042419763331156742240892840608829232410382705862703678129892583040345948269544355547371569382399184213114647916080941662017954889308018688601664544257207137527060578931537977777879256911326402534525777440781626295235528950781031281476530661762241675132868789714290265836127659726752492605432248752391653593624291577120670297738892631721412235050900374625555755814677683307846965423270265759087586210948484278924735911807384177948543883339149627976182343866430420300480091327150026837303432656038986884093817635304109246599088932024590590021005207958167615397255680135982954669748179446791654237819400165764546381813433504012532632233886958379275880153600823042288600014261580386928512824485880912353887722392897816567618645031512070836351502967154545036652522349047305367751706766614244984435375640913882899743249907541437293917579849832362077890731819685901399446642661800616259135128824049387873051038397966840627743283737765891235537641929868996224621145707572233845610708873596714298932530398416346829024790036844249737512351946187280471122084739085892189434139175095909701139546775562233897738035184434701884601357279690926443036268479521372003495250633015763109276683561136258581354484206224984167231768748139712794262122666173160050985689695140509738517686680570559442507130531222477692363299173061909196082793991796317553653236153350410591318781796750475847766521149687957618942862546106372421081941230894030141044963513523106056471938601901686343690753121517711907430356117092589680400602031993274239326380359004866504574743386456763128466406003458749074883348733815827394678395114179018103725278793882307269811861109228979271881271874464704525246386995094505167700643192280946635013889901245120192446562496351592930404249045981429619524563459506148744580783351468779971545055743046778645555040580557927198890730154163748650978865918176879074888370858201092700913459443528822278645749382363909774258595265159152585654037606186380262902127796297764441195136780501975204587901560888746220239103804090757611445040120858948194456622718318385557799928528395176397704408108484072297713914713600308222161258529190896111060512244194871953379954152778444716979645019488686079295596778050695086537970012948274852336636584888544722141564734358880258837564280127706591024070472714049524605946507256344794061820682212720071794554787209355860760417413630335209097223275145491675360790051591344797984738960951381100858903621080172959161521561561151265132183653703723080711622456018895349428377382543248728332227050952206962543244443237113554217478638800833437442213125308916220155181076364029537866280620340646207993440671051163255523088980646097951885263968251687000242665211201495008482758390135797179821947897754110247532138836105425822079389101834215813269008621495008649697855259304717640915171957222530270451272078647739629402893261557340530314264778309794435556422900022254486729016507041239782639667672532486034415065784150855933541036962543422346084430857519632579954212633917429617430708834066419111146374459717503019359355366691824563892296298262254401400692913830662284694775846303495550094089699389985471964668302209454323373746320322175575819988615494793650614452555146104530975286386723333344681144646174728750643971366042352311023995741532878731026196583774130698291783115022930273509042384342940706389350314089585239919371229474880291759856844194411180800154540616041277232199961210006134220154767407694024067301439416739646943455251728042749790956890428702138967875508240152915523507654541656879250229716157775252468858050323973083246652215671796589904247677401422244949827579863148575952904600930696295273457591115320789310236930762065298431237644784680015219835123163900175261096433157024242443304105896164643190602184968036121561153136154408700740914450866290347614753473973408327691151888444363084389122069611183634293774412904445772746177348930637741032794395904143352209595916061094719348119517809207214897712903464336738910903860577591493665571366405764165270789573802109202622536367827599996727735906802190189517427310016860238709663779682799965189248969570499351945331817785867637271960158865755793587174601235899033015732799977464163605777736152530541072528533390821088140270441213229374779041121577801482283249114385192249506888425615786252425500503526668516675936458875804089842397604740773495217630033585587285957553455674607230567801142855029233419327032039803580452520038901900480435802196748061017791818807637278144114657045183712743378508177659173678156190240960848756587561666020566196422987497112181830653674532783378792325140930341934521074417218751945829719453555253103292525974054329938531398078892907022721210649380340429119312000998278107906936277391984321284697623866050803352699312832452454149717513107767324530175912202658651642545550207950863287529725744147349108580985016678065562085676673590350039848201122659211175645754826143070285549568329353468704284127080044293527207204828107607669303778014533124925477498281468775980817833774428280689866060599068449322063863907564037151603667660694893880885255081952687249998445820273823655237443407008974939490926162881153874468896156249114903575940888191534524933547844047228388295060810681780441567499925879564458841277002818391063753549197471114301661852515633474147091159841657205358828182594217860111661261840351579356052605817074730183677449212092167185920437331571301191061251579131283899942113284911038195265929492810944762660838365559434722163246577749270692898143026043947085391729973705986977635441658023438314784656086774457659448227187616128904116283885852830481879661956273122613796376726606140997847781303189038798494761028355742916270598171963007315859302400878454749843398781264543402345254593129256346274296628215799615690252745212305202956541788496977931024359944242200095717572841286771480956396344162683262495789233167492638327425686062883187461483206521838795056668777191455196200304507748262182589462432938930113777571161346764548267171883085741919843250102170156840114462271042939675398608100984839897865089460009819257951503152883812394636711981385615143592707526335641058732265946524106379447215445720685921727575670721305015273411605598016626455268457208256873297513343777647578385177535716997146718632535326329075593488874526626695370947564555933898122433063374725067328176789080155816510641526673465482963179683962875982600957049269073790162988545264149334537873309372062499199831697562716371674519392806013451919219288656562576088626937626775735161426922861041264125924707436642630226763783612064887016384341549382463273914979455880152165459361189589202504998319596905448836466048661511800868400536907362823237379641698795125228115333082225299272173723003054608765384973506974073303307317439202529018669213184375664353736859492393315162082042056909366737853945451462040020731300859469469455760960458054020826183092019810067892312853648200253943397795453074537825173348772955507015824350409244760956837804128611804491302484924951125437024100911814533603448217071703564340169921945182483921256919233043081609923410569464079980752483081585237368679551956203388703173850020551065816383022222850947372985833861682266953257284400402079099025462024847891235878201982301406493474952213007013143418468145495257125746125597240206570058040898278340453457989249452382492878108480758482816710102208137368320205714438300598028051124254743389389808124684811964481697838323057495856786649844955038376489388071411355578006520413737474267110186031082342949721380950004013793659877264110389262288098461369955736598091778866759445881198561475802660384939592496175292548929153148406337245998030115157797228532260322770411914864712099998836161860147264132527980405552556539429010328070741802007654066645156315697627933292010491484970747091881276932461513883573815020271698157180072707738652326216748923447926594846988460586973385333928019037089999240372481896623530439697776586581011817481298764276906371124430472361310339967458697169350190198619880324972367882294145745720416018259229000399085458565391093148887817943784941736270713699137254914347592643472168278920964916428851547465256298312686806171812834592507221394549041995930816598420864928968869585273680731574017571635747785339523184169484794577889270548134618606036286335541556716706346624478708950466061360444879641411617940881561774941539217854616499853976959145799767064922812616759177350759592240820766950675325954134562355891156048794995373445975936185329623346581663088942566938497015489271258894613912106728843039815556528147076201532950288107357515571766595573589518350966831816074104079409448078019141843397141277359317036843699813796305816063315517632256074171416519546212575097811715366507554588786308565549797969048310059068711773073252339455290402841697386327212815765173531798097098599022731560854165411544647552003611829547137097842769144099571565765103273822257190749955346162180208811961551054112474768861982479751123358018239386131425621983346473947981659717561469058982869879584490766974789343959936513095230427506296966397079269706848969666846301608435990695010226971632408684501811674076322683644448428601625289104758052860618166884342254146920480080070081449493205261289262657815924685593925651896938265795758084635057920897285197709775312417514777730031175643310541354414428911008221537983816840177039783431061913736075985112563556016128393907639658126379047796005978317677084960617923327927623949510989025748025184798577104070967348782439915951562500140890372996313034528290562208751085726299703890733418293093400931607856876306619203055329059266739629522028802905979934426106469928724193984863980941436032697750494649495307835777313232081383028026313498281522995036002617517653314900650489777754340708990895739695549511508484657701008069263830124901584463262251812732307012894024638692960165617851275018057319290544738265496426561742677343291731887100728140648950867842465580943287817649136574077828019276382904030375643050465265494713801611489455491364793701121181417071849373200561779948220916954971876554845048585128843596197782373010987035893653059299435665914925008348668771093716265731748086372072259903934163010246504184216385211434250387748236395835763913853793964432804293391523114957923417051817330578581662593030071366780218242943465937476304917435534593535942997974970592535043519885373382504254478049718621994961217657348940977085975978512906367354434601063213254922635640659844900247548371913058227874463343086942087203983944236595025393914163959719301372319252767587104427596174534332044052099769803583720506439276099164911635310731660180556974565321452510189901156091790801938688125737826581247894567265416793623783179462138683673829017663900082777471591477821588702700328874917155043476473349395429040909294261523064331119076036785184089743496520444650249919719992800092980892568304677319300828592567066271218343332981196056757062821427180652308349884721094736452445739838324825070277849822752429786826703897681251654808691020958944533558398287622980232338032764828229401325059785941420214738882439553784701305172052725770380565702302630880371416100408553560811075021701350814514180917140283735817212133788679262546782230938103765532288985468829285105576454405960610329033651347944562588438201128741792241855259861587523283742344861459506965617662977693137582772043272366795372279195566070691992319653973791944729011379974426327276925811868155522589687089003504975817534051085024534621003052433827794458526287857301086151304259783394333042602589856128844011984303985644772348479223956470124076976346242201382126855305726450562875399453153945023783743446617627751617216510251599538426527746780704604074366755774207059437704544448519537924089669677949296476132485128293692592133822752216791358970872547240696317572701884417134213771966925138255365608110115759413705117787135963579088858404489421078160707280506096274211281293788610754706109005123034469393397970229852592754951173746442429225444469807348282612827368779292083460306091224790332790606263733766268995669271805017353669350156583600326081079944195186385229122974107039946978108281501703981993307347474228471139412082267271895525604478007496710475245774670580989656864387236853006805205070872194104052739327486351749791308604589010020231574012566595291939723804951662670206895383427287770347624587337797810593544940460650596245149892189148805345361943567018569807794228477720043881078318029704041740630142308446080830679870035133665592619598610942651155125780560470027258239725616168044147452951984818905557312366125985240533626583718332070826108484912022384308986583348937286058580989028387470353983619148200887042287113650468207585553110531345867156775414175254597263642071413348807841757869809627515963036289931214794278345571460374011046937068206119715420322819308088463680160370598505129306448112537610465467079845071053825502930735007502931694462643031652791772613998523802928435355410500107597630331557348647095991621031153896862589967768788401995415307447191289536686775930490878903279701930842580478598567113415602147127889370506173376502805203459692356799346145036143866086009985215738946344263955718390572041005219254333725732864232406419325401534143266236758836136421514344971408925866127210754009665573859228446799412438878408310399209748389032712742195924319091528182398518714172939727525156614922995273553287073991493862191278418854939487632270314900673919569017523776321255379723941043674536442340213820962206864219034019290854440179108108863327927867444638372156295179406453829008089299162220428413907186717238270734852232097238371695168139895497424075121745009068099899767674022783862077723404216338289922074977454367516521311890693295590964260676034778759239946386738340992018912420586891199836254447563345624462584776716180233722607038763660105986339360100249367928537442964279243753950264670204638323460149179056606521902024507244104704534454155069719557671664603428452998475532697358705415388327754777812062695451580687974113385049308613536216061810961354559930222302972697190684745106416277149099552826764729172147290620977787704126037890946920459069650358326104030531996709617660049631147218079026420626399144843031778883172150717866184694277549783604371012036280854118071946962493341292798885269422423323854044319339208182307667475321047580741173204562791286495449576536699116600996752098917790084327110672293424741513167015254174275003628430717015210498027192415751486129894637733537253049498493372812972595461051300749769391436226204333160774465178063704042876401314894743991231667485566945831711743049754706613088472898357182971730919149370332278633943508340591184254216459600454760875802894134884136214329627058098681625609541740845656030429437396237158996342594582852780748234505391554893486548716170898268553268519761742813291149323561891227521267311496615366304454196095965451286175528522076127186574907110796845856167520195926848602232088456415438046721633559236151594107559513833914663297525696221308335859016338394245672191956905365843068394278684697462945507371727063992733947035612219385834937095936962776094110515613368183680580239284133609389721227649197994537826105570259242843046451928897865831319383327437617518068906940416831525213424211494617775982864250305567719666179794631104354772018466442043612410505881818845059632333929405372550066052111873229301987846004757351766731021415081493927124876033527003478628112019420957613496019212159911665756644917776250831220041972731551298451752976425536165183024282223691413548397783926667522630896045264822547822045669162466170688540253330858113106861473714341031547947356631689646803574219191771579090980630662217073462701993166424938654955061815377529090778572710607330962967885928663572356683553234961292630876686806203159800693249626068651080216611515737300547116240116329064335866404744925316222345140641801120520839631104363881360212694674318123582262573626562057365023362917241397844860206721576189177321777346537382594411586651082419475892319624440148497152632565080583131002985928861970964578142947987048525415055992631993529782968836999627359913997148797090115120415542499716987337764196592103193351444211763386750965118953925540980472275071627971067947861710355437899538143454795967174888668957371826825103721899116515867507452513442578510503997098212611799738335497758203817474985918661369784981177802555589863899802971365370145043431286787085182459372475756305805102472627008425895177034773842124117115615633389800458254864478825646135215067132169011672235530769804585344581139748513869586724734911179087987077205860494327110494806072745770710969960650899672269362980595754912127444505825555569089397694880576418059444172709292676223991257205397662148853633839967783144947304411582821623112121872429233680780177151895181240463055843777232865470850182245646811901296153632363658939326127737754566988995745680214571316842658760426565822626952668908268717160715199029191524438554669026812095308204665646561971189312810984486574068617844369806676522345704368668354252637343594141173455227112748554279304710297357366022985868528567797589413597292475897999232623038148355985260242629249036611473374180728617628498324255701456077213670686559830460579176569391720746445499713142973625566324985686029076659575160986678657004771076817723857204816918120088045991808375041945154165029267848329963521175604549973297116916725769545827528653857609391673674018608289333865348930028505520868492666576210520658401069825419214259959686478414046264659910682309890119794543284182400749055989665385683050634481729883683654496402887821157651839710250096426050238643031294716889422828382908520607310620488711485677494772839194901896390631292483133913907071410826209894785134081065151164991911649674006990020226170497076204248468589177907226151309870625945278443359131378167139657501648972832805488514222477085848092001731063144580390950488988418761282299320000865004951896018711629460496380041424083970299745187504140030700918712313914808000901665027994898828920903802689049789481753256979692247813902782656219932108258016939165681220554177154160094893220697767727401469102907426969159702008553508741194440030356280199755677023761644365429016016262156356995792614239691864471825831022814290859178180743597597012046651176683002316601272156337795844893128973462140293610643306052020956465895336234615194417560851650382913498499829071178416907093492105523552118515431919722178735783276765981649169924724811341306053047432462739923316315513659787325997021724629157532702221789008474324027010811068066799281362277067757305878831736582760691166976580612774126233809093893636533912164158357865953090044411791913306126426079113823425583865027290942917170073816448993487143925587824667183981614307041047845137026976767950345773900349002518288598295956415224311025360214017017009494854304006689258781498419213324598767178336638833459911810062658922660891260169389242394027246362751157800923877048430261470894247230451905033196717899253568384275714299327130044531229612581278700324122078045664976816874371553201487341626290938972890050092849055504310544583333254403399732582750548508832317387668925980380393353853662048569452200301367801474692947340609839464440019794543495486107461303832656134641682136209134759839765331166502684019609722844185224880144077450066416188666392704761889806503769288196700242501507232154921987642264378464543766334130557143816600985223338912458552789212133480056811210308550049207932422949941892714346482290596371650706119093805344931567663239164811702063512513977350609221619353683212379481119864383611001914634732763893860554369349043366555704869805109160725423475471847484125107050093639651270540579012854067752495438336176731550889054408657039209896378148249262128543544081517474376247570825955957277042753204398642793380333520001221420077175830643130108521268867986799082360339462850498923526364783987634719396625971886760341117602036821250996571391571459111392107264596938145838209782355149277867233158623469813701871988041295765841303725055874497796312979157975631500632814758270511503626119328139508558243565259647827143752977757526986512306552591651822895666018940412234875263488330744047533257889216827757033841070517713502420691718657268839009694412000445599623320283115817599649002872302503029114160954760223688905487500268641040886456510319065864279794987418318044720451188324273204180013283620277320703806779195834983170515141887318653082966102819551842632881931813652153246380945794506491283108967502186260635249576542137370939648736351447703074896238522212401739377057418518906758060705722699218131783799403609386134292916991842038080360947803106221917754166554261886255301392171876941875655132872422941060497998474180230964200710835433611203959188468978130607404737815202711453901370284191128741873410443028258138953958631198253859276059826586121922386593372610665255615580428087060135555524791242234536720884820410930379631918355718698032997269171884575738136421009008657950033024505873094483125252022281440038057606743581330958570490791098664421622675253740541895316360168483392516621099368764173918989210125585599106511305132323053777658052832427773491266278748192805818399996316774224905258707915993379615986331377973674274416139858649800193686681625381929905173983542883209922954782629630888330910189822869063549027736002776851654803394234705809623004092574687029096808503453095804343783415053611646758328144290484858997613331025694075949069018152909774057418917769394015770646239427297610953345209075895170421129682004520753591045903546239000180552798464968253072463093182125217972317984073824290618680579533250570388574126137975750415663343274172034144400665233083178667332137453683401017651280866668400368731887416538247776477381131178566683550923699238902639009485431205493959699882237996738099812466333952758635081387718552657052190641665474639020338776596285966997089660112243726299780351504133366627366422524561439325600635759744472485965379872789504809977037327716966899690336178176230416875444764636964574686497807259019748966561782202015599587657143770927199702432546377520037929539977243496637344621659036390609522848896906750603838482944808838373908474758121438500406251223127793956924510882762380603351814748148877229189299332287554873847751043053998884588810401499430716675210567170421915539758752314666083525885692551852284022686451530924741318493520631130293533811987195529926044461359967305333828968288566229925205401464925521260520283319889673980454124685551361054376066194633972036366090815383142355956545481978465697366270992190748671635515750113036864981575883590429584998082991309724140298353483364481177211309763129169576542535094566690461625920301091411795082754952821214278225513934503518032150172449578059485484039573972002216687730083674852049865513322767188701752681164826053791989877162223139448813849510319587035038486722583994118376306543200925553171696205218578130145476474768140279719615181251978956175756825742596857076625147981338992152503129720509849221149051782107762394374021405592256484728439649073056852566323873234739749865217380851133089861528177173953054246188286019258960352050682974781261382420991508694747261735551094670914274128547694445365763650000376121760077994876946638666384737812673674111583901283141745898471322694326189834293709055184752276458789543732095208936349236843162852039551589011651356961943726542901296524199209274767722897300591504892756244617739957807922475939659999738925624983640907092979766142170189372402256559277648128731139491833887053012536795684907122358812376694976332140388640751388164273382125454741609420235389236334998782784313577286242986312684108168959306325529805722609566297200333344176706057060292793460086910458145191264256005824204476952385572499939211427741594061472683093612549731477473338319204091678396375727502013492605539458507575420385179158498564765181944179484539793310249465819904259857827772448682841592073253562951148448253392425634399645302364129581975941108741976690153170165589561009540467813136154600888498887006493925214267613474401119814904978101311593633096469163279798877925521867628195378090480235376872705909512041836400171772196431498650078047396863042172160137920747074602645959307713712443260296158030511035411558288485327854769203933050563860739934097532666107158654994663469376294516902897710450176814521198286147301555161615320898240530341081906976310250050122593309088923782433568651691139536098758487479990872513815623337438249727511972301739935404387165479747077914746668040256803264871938521536378177188554553267388349528421930664055757758448240286691313749507306849790285665319935697284085537944866837415500953658378281646862820439074551981968325492386545609013979382571377159330138170594272599446525675760463308758960096729744916258575257446220381381436114156802147339678106153761534323051940191172988432937079732139418683957314262453694649506341407024055463651721265849353429884853671408304724225590639417075614969868614968534882246692267488467014162147072716253965003522949821672278058223148223370222279303844106588890823100315804259166665823188745150832247806756291937688901824196387904312372018411631049374756550980448373593890027281774870803993052688894281178214519811857634953285065876164787683003547156542769621134936997092202970641608239595457058681831460425648140371601678147682990900154886419880762304488891761762465147969276070802348872584393355466232416536172667322920568467940817240667461806281618444267128395743382688832770577366232229024848854342675188703471567757166241124420412453861151561490240955664974903810425534968510153455838278680541866657358980590269652856733239256668589644723688430708289712446583399995783132848650132588474596019066535282377416216752049699365102025851994841385362910962580520367043458804596204068229188610748750544824659136943369749055432852043026102329142297185200865302115252817138001656740368792623171444115528069411679137246537993752282945238921964224210090464575771259136629284850043670933790058232238983818710069807234569490760206655238691222216692014046876714486179374083021030206624902288421372078456238186112721143302660257008130492873420509484047815356243331466351388946891731815393355996336835298654694511595138055446215925813520082154156151107105334902365084584525699622352643309131579787184251979223494604578408224122386132599604734209375935698341638773991037732582402332221737196610646255295723875457837799285548574164252991514457504740950462978794601594403111695800230632981120841571901322137094052440420151205033821271721163321027612010503996555353415605637462911698439186125756745599719182992021764619760639185423891714013168811852499750336967164538466757984244382799116365863686465411992568836865127678346826947148832971762025012677791819863341097456831735919740650186525699353528422008957471487360659860807306364243409336669197729359864623649532131901888795511640195044229060808297072290369081366065670345095016800490150718335350901965206636535007651721193225465073667412692174562847599081787549257021969502672285794075094791460432312654991237135283174436111025259156927465609041841111196356362159912491110772757984805771360775077952854229431350625260346206930935434127261392864826607890464400837997096853846009184846737461385331164170775604643133387737833418087439332237597744915361570182550626257089011823985497245240897906316003085731009921036058868098523445040720789755899381602712508828151860247285996001864263934806883020440183156461779017870933908091306312481044425075986639631053821696481178601269498079627928385489831218698664846333493393848395941528778076858819471864216005961426930623357291579202080497324117968684367447879835180631689215858870065433386861762003714554857985974993115891773208575181882516330424790705578573492242191754395637613042795060688621962132530639986101139185361848943134984978222395115695621294393930412889988807114492880909790913286653699571043194212199394638766607185737297972706635436446982597988555963849787127494200313774072591134140442113990506129513323330129229206773392144591442931797115226098560502167071057493733008817383273530494240068544492557896358614233057043142049373020180547564661653795014537880360836269352767625261502837978267426150987813511792819533583174709457097856190686208951408131517800122883351006238660745171457238802539960076893987821545643994549356040771976344007021261456637842470893030869634541987007020551341064231139110975755705041365742676117221412439110488502650385757409612526068656647046346938302337928206637581579505362602137707608933610793170571235640929953067173793150014003372864966646704417185660733949006947692747176491335737387909212010561692857386050455599795989072536708706051929440878797111748960714895167397662018111791838707707220523087084012852178549650278680200911519830749105451670140705563842008477226501334694547412216113760677027053748195010455410904946782571875473935458853420089769776586931449259852739694537845021937344623978763560060976495762331993926484858014803419271130383284166609702136832503122291552712845361009306559997511554752068632401628920890416899294571966376043979338064305330139273721355284403541069048046442139482699483392779111708986739508935423108161310741965401788496037357328411897729106206016892897586541000653685872568040177166534055840314494539219500536052463297557896487191574038075632403717415981598094769478730700649339644334152044397918471377228161523259116730104411703084705447336873685049939985787836807046050924916042050010830007038715157344924316124991336473771829384378144339895521884100753370029657196106267650059290635256122351290848242938865468297698912958406442588405832762649502339261700492712711192825326960765911201673012854443569795877150178475067411065652653264712169262973836610302089743691424863330458907298479525646609352532376398117012630744707542793285107038529278948025389815393798537053355320703964325462127324448351464995973562269965268075967992149703921965529432762485948517100557839475745691218962299310934418375112651966037122864496419712276085976944252279571163491840964764167409964029863284275367039784629599671478548212002254581901558729793820636024492123398364119615210578382204920391117954853337043158764748274752315569946324914604835829255207878183868673565736984079369370837713841446935854725602962060710916241552750537302308819559054992144341074586424518649990185066533485286549257377859610954675340126844455350877391757883371891908216676633183518412611039390356770304221975248278158330654886087502041062966447761815081391847816683698110982777174266765063749689725367978475676706976292013144743802408437742459197407079930812442134072719513627871280227150288286857298339977616841355549046391946803633531149000439328189188977975402352511258346537610048800915071641168222579489375875106876699946494594053527894180754442883776160772163153830105718646171885232228599657829780181646692236600280576293728235495525810359360993365088765826302525523459438324973863880555184866534009816689010305082629499339086113330792136134760359761442695216699724735589039763274938817573694027299140873683311489847280489637610303241856974681235061101160270481461004990509549836374898143107752567958752464878460976861848711098033868162219228973683089870082500550157982212781684464222018390765894742365712012968574260489400255750784059335128552144901721953070328168355321968073708628294381973042297675246045184028880045590228207529183080118163304635377194951443043140849388589078307379682517319396287553535929892191004827636064967555386971596437204604232318237679990174126234995794101575724478419088735952974359774962157124507808868437661945696771519480632591467683649131295181717895825271060793054419015904652850040745121461169657821864872122537772776577955019073472246770861129798757876746638396321743817744950894377556265882074634811592124969829534459196932230775796569349198238160979253069725150319707067057859826695888061933635625597223389675765017265983797803593579621190785655137706067615680600612360748358746166168785037153460704158983134495844700484349170765343316547619669257456540019043900308313922968886962789745523713034776058472987410261738145781627511422783457237790531416368175414592660957702105063545776500539240905338905385660087125891283815126797885456168719869085898998048565455239804374132412456375706656269333500388711389861344548987325707732714312362334430574507945391030569738609737274537100705240137819791196622605162132187378625160477717625665979561540456335750544055221159566054728176309440702654029637575888776683080194369008395855857382666823768464096824120862343773198771289506336651041623391751220540839785557522014261292808750676979042700151828993932702683997778920080073563634111923718248232458514602933896952913418556381137125905368381036260467757734738275811316884472856110138787062233107579667268227297838835922704932265126057124360557204824295815975561619681098104676302273436148348984738098041348871683238447382117083107155601152141877529651088161200113464340504954082233914400917670912182240177378976515649896402420560938553968258898805388330553410229029135167662354712091667753489951685399433255359207653022725970135383425682725559778890461126849116278275293106303335235606715953529340971779427791208130660861300633873355841713314127536134297375560172026532866417003494114929108243977176918189212924157621141211700140040772082962951756908713650066216643737809261065083105471332661546508997177979626746846924968643345863384065241716795338721466250940642139966498347201416329708094117088786923453831937622626094730325382679734149705527373972613740423483421125306832262025390923998367846103072629190966266265272173829976199373108898890662242582017472263017396861639697090714317449171359012034090175147820344041940449705408539236739943087035697715835648563068744640644739658889118115292973132532185165028641658390953590162297796599242210772717690432007582361941574306141964994739541719167146336738891855510222178942161153267308833499096792669067084125512296549476394545100637858162270428578066521005050382389564941937245605851502320024423910437994149200309738629615163626600717175954436702948408465473686265088906822115875018770089708086787227559869891870979059591770959911078687056925484664347264341734288288488384366616669871787887370394753454600451308635213384000380845773851373742923012157572157797546872437242257729321662305685393003363430712443697862334730269614739995350212105292651887535010359482637081495858695540627874115699157415145464483336803517125573571744532370650651970432521004343996394400326397722275074299181581234327782637036667990080613171148732843705396227068773854319951747315515512881827048638516487069825210577084595722448694918349211644207661648376978420288750575241815891255088594039590075262178695586538771008455206459393960819875754729776379715566052322891716420485530290422979318953997730103437190555694206165307752943957791229010102770514669986442154487390063955147951653171897141963966454801416634726243311405176510587227343656781597811250666579892589460640238205583706009318481057415627994805183768760263544926360482987131499890655096208661117240891043507906601090656901790044668615967903262185030367251252629044553999127167537402928073424019327626303059913366297712429806550228022668547367757359925075514218071281052454319832921759944182551774037273623177651906364697222826673603982918497398272907106572963658178161190040647484584828243059654380163906143609047111521262172095663898121981218474497249230909090204271204296859053271312495830630217680970895428279295456452559080593542797005254478249462594328945319497798179533368824030491388551018193612720212815436117217475504389374693675873178317382771021370058219563108349078678701378297889715163840429291279068687690492178849259759549497945725824599796360559702712986621729538059278437722591038206582789067477284166895674471049585609455545903519991525047959784989938066308074156464210350090670201079550567112140197673230097413145550155632948585833121052278770313497234449336069366174490641421744905990802016530147929806420963941102094483019211769212486403864653484785293747180771169624931739295024334510561515657994498230299477415223331499283720756732472306424436525458146257855990813519069329563111428864763421904471614898735973253850758968599857623261328474223023889610614801165370565184735663060785377306516731436553654555283851381141332347688413223104898497577356089669874102500173093600017093212164748648023201412185468022408085783162651958636375473201109139081401195855407947836844491992530285670823828361101939002249724416111670739581856618236105958162952708559561384353153804846652399936574758580140805571388392428762441979277328351328904405978098760943190589217029888659098175715320867420379642468056294166082248404018890492329358513775978368029945206110520202124938586149332123191122464382046988208236459133326710659712347915519076182165819692713981521581828792602340100913938410712643113882956116509646822109294942379551829132105476992467999020956416604490041336721184323098267040817385411239233601751762143716310757201840825273339058760192972345373759753250057205398185742662238787887062160360478313770389318486428353144081880839410675857119229508941429147114143563944192295044466505585038105073443767907830214454569593402936694088574273088282939826387846274625626718444947385165602430443384076150743746141392646101861206997246148528582597790999515089266437378042566080932562489027081797885735041387691694409549601664016684434599684680449205628751185279043458261481661156591609585170397727116954733509642083196726738672985879866869613505491309136322817407704012315386327664951473040188182764346601407378168583992379269000828385381055583563688676525290820927709259476259807935199223000095379333514993040229709124441329067947567968520620119045639303334222529578865788481662272287571611087092568029752169306728510901176476892842115160955338466142458561716082571698549537867458710539219714403804721875001781220639016979867387668186641910414396193192996026183210669027149705600620687757931794225711012774727632889692294723744902261596734929618690729874380622428337687293336184689021250888022495777728694248305084316970601382601504795711644449710163184266656589472924176672921030928747703081135217199942361007479830474178642249251371577793281313689205517406201504557258535823007028038402650207865266950623691519835532896293534524544561599300795043189637197491402884140562625415749187082674557763247161245813257287769871428675434509535502405388755980271346537791375947257053512406540908168726584270097833090957488863839563694269409940643212856499538563736968973496880759586173704344744890532121208070204131398080582509569680589717315702603341295753432548493921333612487870901665417722670968386264323595795632667943802605363852607372803501406305299255604071940540929208177793122072852714459403389089297005506471018909581445383632964329672664457391403021379904022367093596712601988335817167007493933011215047048044182913371275749820903992807833304791068666446691713032213162198308732436658637281513253917691629432177075882109737791669058435715411415873937007960174168966431963890247729730820088701069529417700000401407329596965703333491612623888648940144359410245536885048962301616648667343324360261843420820099316347850356776998940473968261909137168694033260020996872919970733692537767598192570444486457830064671680965636149547328625924930212567539744425310071412638105986688060835996646261992075889431448400169066032637841622675195439258275766439166528700289318006687473371205435281617569815604645509376982892635241836878028467777837596473112616106685003994406294462834577493824614771538103481745218599757239390050426355747800279025379998719577114882447281880766171485544140681019478547007389644132258863079532344438316524513375715049397831941707362544832875661833094484006183804647275535926488658061528956789064991785868953733720801880548936593616363674467033302159217022932782133679437168765329928610902617748122323096628027110749337841938368626845643061170993861129541160484655923359730729166719051173296068783583466501253907745707763218896535631375572050327345715401299405270855159212912463083490306500683214669698162063072635544303909815632573616222220080731734316870960854650055194624387272231037676335198691219004511188268169893319783704890505481864516834656854179461748017037799661942982823048689180514273272093339574078828211064272875766177709255135808209171850276303119972239899700529764278292220663059780058872560817006120868400673460020405630966950788560236955949302692560113561960458526183368708691591414816074038486071876698634839386318710484432452749554796225837704783360011705265329589406427944246210160605079203077640703277400561223473407147745691482728125997625514341320588308141207389940228489590999816340608322872779840971439619077526433367438322806710407556896734797968544018238400883075872823283788019692443277317295852971091630353265343946890043391871516883040364840730769561450479087796300599953190615820922337659001525515164667176359574586406130914724530895166840283105724887376320013051273209139773658876565149635491957469646038199618015057779432586109156936557114964863200458696969926582494245475235349014579251276881688486502359496528379174711276619639401092712769145231594740933002373359319466095145828564443928774106748617578100594372940464319177282200189992519527542163080240797452846431741956757110879791651252855591836241613333140972627860569412449939384054866807462829083216185807010263266469172724788652263569462402720140657585460599001222861744491281165405366937524704228562365620579064832759112521295305599206250589198241947028744047834293663621711887411399815809700605069224649627977215084557658173189850915305042321778691909746891810689156479208779153271208448858353305721909376543903878014250990952925302032748367309279099289124790356284103100796218065463013956872435818361895469725289304138317477490810956570323964342331401398574059889868507770828084485518599312811899471687229292024546038179941412788038347848503353821154122977507758940754424803954060983272715570419422199005449756070907938676743878926115769022416697589439873365463873719417019619843115097919095056093964944857423368920827159587458895031312982222994918289272554415878996226144942938146148159971691716888571816009259658727460876941717590440737165064234121153546398547478062022878043359728171859869702016691994332341214675347237373610156945077013653978576020740029511794319278647592395817487237538651673106742105108583464174040277755251932791035139588777061450367336150792277868195983540068617488987906463623459555994407357868748775742491945923749472566301298093990315165764171251555404868205967365455227042721560305101819702029684482220858686297792242961845704648245826072550995013739462424361779432213213993467560914551195806543938633172827488671645102030659724451923165127062272744514733768347888932162228169105112758628143124542609477460932992744563677915622864404304170262496998790103834431951053646900147449502414076697851912617987982068114409346830794288333141290970518299507154496043380132124868839433985470406981993397535519601379402244629837955506320711972294993461834287233509752158981079722062410263399132230972744309827641006127187809913490809954895343345136124478125523488289305941141605859334940636871096497804577326777591466188407441260622045913089249644218706900169026145565746884878411789391442461541935716317513313603027327994683171994744394371817981782793001124393170800359087879798232114379627143511174298685317490985516391325700910006837043205999498410238730849537436034075842668347470550065748485523535861202836206503491912057778626440878871949005331459400975048981081907008566812221063159957434684161238452819082276246611217228011673791956567153624207821260490821982670726122395479625291066097226899707467748976132840035089516813080143046980952686205039491880308721994849140985022880038405170669488273670924646318308261782500720915588483518557485044412359222225175849310840186436333857927692001788214522107196763783573120051118134346275734963980682636934823028203791397253933800631511625528272379612008202751396580637816001821363163689909557925224328817886207211271773653305618064670452779489422384707741555235315283344090787202397254333793145696476637191046829916819030583430879101579014534216564600571269149576830888365126731783345425474502399892803399186601328600841264128452661553123073983694323800191892932627723882776883979550996523427842922261299572857717629718512567435793548687077329569322213117418051327034761084158387095855128688502725178408001520110627814812786128025856062104238917863262002034559595832462642827094212718219251827499021587227759447127930635703253478295044609047965959189749678652798214335009240844407136404500337214440000259513227833352829110370917665132611231390343580697713827821034687478664942725887869518034054535507651549421365486322905912319455494896178194128418930107576669300313376033301512703942399871604414579733660992136905054047026834866680663069316968114555037539863461705496502240159842172108949490962636432557868963134222569950616348810295221554954247992313455172224044568841816816180012149040307937542696982450234876129402903742165309218760120408319970835021477934011172482226885120973666735933308915457073415155287663413983002982301368662571551538702491667394466882970816527085980848866972223209141125967415289724510903409924259986642076855801332791264281701767847169248300412613916665038021248780676984738618410141133655803225543273205279582615860800180938061795974341339363855632137630384416865209250633743587990060051665647625838155843921652399986788805225410738491118693070747505069589354337282277653478181429442704301991863444949947466293992055772541977531037277711533743535536246380342468362740528753398596365329397367145752963694322723642219927948457565818368219554117062458118666447521707865623237367688941038498287639093583625400088481478057096032733181119637288827502262299523689926229563190405054877079539077414642586812884723079452073865111791775004011783695112842999864678844548616391110199458664265764823925235086081756856412659727950604128537568888901418834577826262306873176848113411155719099671379655553779690723733971120249300581177971712348202902921196217439885833777963354852821096770227515794398714073618490600154831860256381995065765257315200897118626321626975391047274581739896000063273375213292414050658670721255673665496169832925686962749035434568832800758369108228970437175805679558522065171346694741631931293697020386410776948391681071554726836022639457032503341513991221895443408649188160445005767438803927943165378620357292877799316511609965658506290568229606600363204480073492934931285744856191795743060610112569916902402685308877054432902122582582050605488215341589385841520450900972185115082204637685834414607922406158768057507509565564120925847916965790804595767722804219724148538771353296117586433332772997772899283249463263937000071781397234613387285515051911866358327688503601313233805610133038762473456585456898304024474499448791492884413176164371272651217986834704405020074133174745993067915096323034685488235359427577530753190849246345671441625527655893919722987424426789194412186481150158555192374284034349817286208079446949994029952461382450525417770544650894221304901473569145242700122958923857617077407532481727183436647837822529516953127329527159273029070620524780357891683766046658958032450345696214673654844852484941993467665996203170669680718521029450088137288178717058563904188360877184484010070543367385408188465021042640051728791138129172565916747117455632740407173632963484557494573470027142196817948846510211520860275078651833068788941476248597273671732778281534463319947490635326893959842502012190806063877814192851124291489693591097041084341155491324799694952969139431845160446931338496231847352610711208967563280972402728162633905016339985633628556206335335921742320623474929389299985860871387959278991012442969066072352374262549430565594487310589494622744512872673222624177183021323005338502951237200247962025075970557970632889449991353289954997752512127044337511859700685745475466644788046245778040477921118635748693060497793559828666193164649888325616753794619750005556669492348555360546205676469111452179272089031031155752057546357957693563126533254951510505280814749803745483667955041066367399334522639074260871202510211524412578584241937355833486710486590523735364107476784885559368612033736777717218328210564312935960143364716612575564997133647509856298909957047426265304311713420085788225056669517652815360555144792575416618191935096027980472785113134318524372999675367858894846738227552692398740549952102961054357306205820462525634265515361020505337413929790995980222810466818228907857772106060373189224739621790266749617329477957008333003389464672999239441008606000248526613416739973805386456828681546100270999717847544269799521308427069292952833716703483296400120267882759429095833622231288602358282132048295116581883067049322349213855560455673387369854290363012477662380819561144069796206870942387525444080570375126318048374007009887498004046609265940464811584941768913184170693178890715534606602715312088400354108518491005950411510761149574524276385764357369530499463640233440641839003714381069182978846505013240258486561563789328670495873704883462180669448887167096376404839682763147496319259925720032627132209277125420999456796835695505315409770447457826618232569817466094358732479903025625904181537984759988981261532160319883190835466115909048521146380115339693180905781876045280065832401630776117303105731189424416863558962149372315803650566809257434339386899603623268096137015069602994379429200455187365060686136757280919089447076527804202714015121114924997766817692264286316702812243438968632662534403416670234421001810484563422098066827150512985016032908005436262517540782697495324210282257969008442506999962519083778582358751180498262138934249348399273872110913765220405172509231264282730916297902893148341659957958333727046194268200637534485910604742455501817650924552449752743110434480374322239735318743571555965282700965842946979496242578115890638830740134427023421441240089506800246286119476218471676803889510612541130782967471898102480268568808024847884413490064223639717246054548478582349242247224578254788932289149973300140150935416066260132852812014511333401665653905562141838914267389921836350830627955788277516450900351569136126413072540003377385948113240075189962161510060222041520408304352904738311433857110456238779338927877808875939732672588578620302512826716895506825035064409768275828681476006347017377317089165730962924799163118546263554411500023013380455807897948267635431899107400686356561187823040462803677744766638792770318126155274499281675007300799486765038910566844128920657367957349381731001902982327263908076154988634832275506870857468267028474744590518662851540500193304024385126973933993092021231324153634822237042824835376561878603090773580911094553972433403048588585561699114682002237719030678790205673961261218330538313757214469716057215642791144628237929567952141098403861149503398499921467029261180878462998644338914216042781991237417958091715871950224505182196696889843614613883382851386282960270559830086614831980962226793145957501045101033006829516112821617614955913365258048792634077372802089309489205058437125475315875316803046930061650948014023981031232684152007906490091715277154736527300376301375787902438599259570198592554520891350505505980354704469253008218648933524293086201364526820402120124791928207718324861062785336223848134276133557532703710955045405298672467751771835117500152433300288659023709907013500572950414211775196217946036022703830008070405028672608887542489447815069537148274769178444915437193922599888729073774400041773968443405932716313797211013130218250702197466710767949326470945621132835905350053660585879632861725491023199134885897694246842417605865948775532309412827853604688847677718343111250650212642529586953858349393443630531212117288267504196778302814133019241990758651510213356427586497167882787098576265419497422892933113073636988044546966147049514159723158922365563913564119398807763747447837578498736808631735930157862184405047393781634786691821586028452452322308729737405587361664801731846973655353053391117529762849031373721000726128692360272248865344575851876750154996181738939578489559728210721817974779051957971388696274307996079476403890989697545982391284567089682714768922679911771587466430447374526323017865964304169290835318366817485061420985919617126599687402497734081805430914288574460739822858052948418447534338639194740273929062867358837881788788467677988013262750790393536351366182010613492279796287606569368220834970139563776034116128675678666415370617752102559305114756811102280577106039456327683734935989455708735809183978010183344287107639612329399751768758393315871563966234663724586858580582059605084454235468880354120970947358876162401602105397549466460628692054563920597480762265033600993679404469711661774597680713229386316472049410266392403894001506678591918725955255966580295970119152594079483686772731670372183024586028196181247708009720659213565890242309683934207377498459520249779252997050845599861846153921411700266914052859480325634371400660708520995080977484475236329175696154056805576328521049358509156613927484611476767644345741509161443070620291101090839362019822809695928853640276795469095684116963520980962156403495417088973718698458463621594622807978537662634705728683411678651521671678570308555515224630929247519530175471669633569081559302975690807804681388782592181629965972520061573704589810879130791189817616469530696209132485691558463718822226541774115862934039794767599333272945689860325794831687786559494708560373494032559923084012930364668144185531022984240492242583684789149447645191274106191342369212880119247457187805945318797205973470256880647376198639269321224434283911032727428219757469534468169100769749019534826570861844086353603800961160512040416910314422693116651704593537183423675326974631589316052716187292053788333146863608993024791816888651277817099559627235904903148803500437092358498694496900313994984376144609369083521736780361101686922676182067458567899917957670782750590419389092548418639801790035361983398340716387778823229875862179909250410057254027584859062599313950638538385112557824918014450716062697273038577991775670422841571687717473024609539552812618622941241807027976629808145520105224549270898102737150364849082506705998900024854128006866888434872195821679163262856631300993995720480709472318600510836841132171051315312360554549552432419461044800928009794622570844188321417681511911915922206612139526112799235690205001270320984172895713730169334826745915103067555941545939045086843114208543241272601889914078774497934245196595807442526749330292918394293949421384729440968570432305975265823172732945558580908243386009012922426711157646033923680047955315068547077330557629235471389823274913636640072332192053154724904903370282124371416772117820595621814972441887456478513789659054800992282025951080873181772834990696659456709908129394292845735002362339146463483818445750345739806574025407433507659779824517796955016567159548285308245537274844067263027264914007660934092560586670963665813022227299327880203768634064611030468092754061555490180941619686528237568756652121124720757363560347443646634978056899805131645518967615953600567429933994718485312289785979683607073643045270524034588352229500935451092821629413797290637805471152646761439483975942286876314578703514135680827400501648659309655119671001866723644590611917896806461182386745200354188584186513497268851276658474655231426341861142118614666245772794026649951654522622172830880385990493206910812406987915251179369053404395713886772600335632074673611517470060754854367694694607118360281269654280666955423778606569140404607589922909347874839817761642825075302079223248916183610216595269671278562404972570447249290978824312455380575657359519875862384621630116180012823611763883730221785833255661781950857627819697484366154721916235185824727835849895239485566848015390011435178270106765952001837430854874607142320465223473332319470950715163607741094153536473188425130509007117201268416658739949760005693851041452315378736604199067389665863891976014361605462026943123647609501317067774647574264951898697235506589659121611506877941132572478146154809901878435308940364857668917681162501737164022283115759467794903093682083141317106290069267188477751422913573864370383847991379887470292148628913081563516701492440884252010775542547085162139618430927612525419548425961145632673807028734053365605920136366101619669036247868864776559898154706810781549171621101136252673264011037177501936142875796954306964208566177344198469356340160392821822000223308972039450053105296212770436779713216932241560173310985197863227862335791674899570779057608550758480465901808938882937155897424669656150540805079120363483279456329614633822359620020741905772604556794010500185260565513177895261095586111527998597996556676620792691336355412603908729615084779647923688484155797025231509810774330508133603096214058391719333910369900135798266568611235419293484758555007066772559480530100345390796993106274933521524704271574293267296781389506517803327178901676949272599820314437808000212988990392064861952093034915919914317357256727529648205873613464776198795649871675645378659152517567188473703085768734991868820929382145441719017897898404299400250624412060043136862857518273068910304666812757273970270766159935508732311629680146285648118448938058538201333129055030330235869433692151153889047154806010334900059640657269029586624148351432352580840585772842648683281613918349784203836647438990025804497504267461915688083472842641798245195248041738896114873498482740447873967804824330358349467504050000098059985297574067413048702064442044821301850863544201600479936447747012951380734698538866837312436945085511435036313691121312629162635610090716854637717430115296422068036011607630133608514128635536431374223724232866985231587580401151515134160040173730423920158619928073457679705706409239823363178699317797610423817578361750431649925653961877320327075921567490449318421072018564487205897953741599908267538003692795360812624150001106979892427173115816155269196163910775968159939046180484966128238057784495242402409751494593974458188279883488526389577169371052069542656647633155232004892747434112279940304949808063511120377554186849140909718903140277157798032558211328119955403607566145840762792466261646153136380638169658955455746045314119300688277070884820884404709599862939505584980424512939028905712115844617833296187356171342665110792987245610691823762394747027680829325712646339091013678742357779419188382519885218618281339703556018201526666612141970509647583383621602290533786223741216912000497479609763907956050555821827502666056100925940917688194088904660299827998211419650559522426930775758412475562374901350462248473474687112198017365684419964524455245466615124782371025017669398230793263894411269020362275822851605830381654230583858009034290518786154458500783329866445394618974088852951804966502579611028523347345640562041051150189133595748471116509452490681397256655667510759047676698480592384123213974047884188814094394370291632467631991607487879190676575924411341023264691902520769985448028696164994344032118454561244666048771178759980203934548149110348862202232997431835764392245799469800759587760906037212772182457547914183973174953360007673959988564955079226319230321373080687846638525043901489696932585440611414081657912468260421505719646982502669952311516151896950032280010260202419430623084004664369816884252572384195598960650016413026834168468031675432027920069530770382486422942950208757917948731719958013902045119176171419941189706157038831258477429269495002773408820384314940114309083606190012484861332007951483752165132062666247117072976142488821921678970340018216919522063049176774155635055011272100522126472154723197943917599560817200598530674929049620827100291864756583809967257500189936158500588345037890644700813581008991530691571311544214474765242996659547226455699458663689187143991585589346497866501061294557214232544783662075869740659856107145948128142105015319280500192914753119291030529850352145896167691815415361542073358580402115449673225177705264677755753597494453462023855004766794233572176321017099594563787418117367979462401993689537469176482199070840098587041617011261788741285270627858981194149919162455612594174851809111542743505071482555716549529760129071334014352886140299525853917276085821952903218474685731990157876446258464371539021483047522716345899800182584892966458732657141838249884583196275339992386610451220538528031936741264702119458114475298310209065444244940428320918859891612322722826341026491613507597396831754415052341978243106900916957232436141958589893132547618583580857361539740202252389044945885364018890801998644726548132015647988907123984541060983691980404619080690737870321899168204977062056558497703390249019109084523775191947557866332860236500924495561376847350976253893363393636377644266729368476794360942812891670995887823872691714812980771138634588489215301833618590149082809041206785292965509267727075028250062650390669581681985717232908344925848127982601181939120361630588168170097965855745956023969538677571265470038686188852987765476975371767536920454111267752591019507867401929014364813251285559626047065862764301583696771232385168726218583228726309913542002282318684215341120505221300081298737492308248173891225672466841220592526421997440261247931092753674096422170307047914522609832438844606050719718019476403036851099613391624238044631529010547459577398820616971756259750585581295379785714904850369219121432010832954065766317658260020846838235328732724284413447766401073378137816616767188127386171555420965425809727210838088388286646785549537480890664196080441259151388864750690073705479065936956735286621403264871859201488292701151949273271769616786126992471240401586043524749923141814742090293437607672513053852375088182380525235942009157114297516664020321496268538755221949381411920621973133384649710026218410989090564262227262416636945312335879152625216050582976712997037301498841994829084248745107693802446147863841400025383966284524844582701601576057913275771458253698234456578243980579355335745396794885633905164850972867168680065571131260121785613833968891276794839381562727735315640141241139148486086146141958676911164389367858563162085596471083803009488438794786555109215870677375318687614388777121489154765092486974805567048961270628032495010437060596718011553542939169814818777014774143374050577487858445219376672447561381104125755535486543460788749569175462745241633910058350851850901057412431004228958536007057943346234215862600566681480182838103571094838684256525184030567751845270327637733095340653597755282502179410687749831044095595105717503107324414084367601029886610171138907013517652312701367017953032831128685773838465424733685093890802171505386646594818984686800410101397971760575721529669440327196709461077243465987775761490208366716527847931023555588723032451689170813499040404958299299320779143162197742694511679223253075312030459746022730714678857749099453631689469243648773301365498924410726084138589674527024963991778566553258042333451090004886810958085415032537424888304380744126165726492412633488330618344246206994243370887085067519259359304372048147193250548177074340489646045746877886108605675900871201740266776572331144502165030531572835192332586537888737492439460255050770926079003533907197188637379029237900123163605883523339059723509433941834448005533638462596387938283011887708954246453688500025108244281181293966924461992693851491698058466445372972158835191009815038487904645135569561453882978710489356401171196383182944084020469941573466194124165279588897901520354580549868656097392401168312745291601526677658750998053965082510893129777885123931547820762051293853659194304382445731118895048561040180438213823118952620905490719149911306696322497322936132792814879323573425927755919249298956138241967546121465415398846418957110001966873696337309886144614714976655988549812908372461630213970657443473477671707924384931304253752723507038065731199022519334064709860645085581125828821600656279640409292018828288297591653112147928867508981646799286121833214563131089648239462168934694026109816772044811485705735657827987439964988422003944075170477862276282373440665248272393938753027178971721635916706920067335972595523703702643717410208003386938886791833897640831820263370315817004868510709565187628641064557772915202053787786573135212192321089027621801375676686673525045558726823649283617544353952082753084247980530888628492943131106306638325371406346121971786384155039806036463831742734535900069406141856222100228967294838457740617217303414307663536572324308693614100749457214755912143158475199322363179510173496625201342922840853408976171070974548906545290732858836125364693839576162376135303020717274660830922117714550658699330700758547211856080884250887369295085889114598184782206963254205303187255528393983730623660592148580438999827120803391844961039405536456573808163176018008775215865661994048815948254117054778431409047486241126049023053096242292224845528956132343507083008198260222373372500167666548455701586998531584604505092752679180877361098459632364532630724650337210264161027148726402238769498848510861909565843114479398977310278074318566278171697247844668991340112440645142463998660249186434435464941419485347800556373522303406962461219442079886268092191408177690989029365304755806394464236558092279658918086429171937336689338233774079492582187083569619262352987624321206356404774771154600056936094505001337187683096142652835829165956756955195641626995658407143267439013351044638032375989633379130243144293711439929451583960724606019319541122159185880376778523999801921197167037043312286320051343748902680329273795753700937789506848614697728725465521038780843996365242527788711611744371791334321076011896594726727445011274992651627119185596422324426635423371000609860828732254438082167087829894418865365207995074314922918741997438886375870210296406512765654109946499179302989877668339750897122348157794827624927094835362620891372664621319229406577886523874893492970378897059115767843178794906874187499291987534704554038395849362587147305277590028412183175221464753938129053304155913409015758648969366302225148096337755348003240186769914336901764034304595419712842170502251025506313890756818545739041731697923958662376870225141479886507541531594264206781926599075211486530223063554160326262307249129133179233823995015247336446051290429628097652263140797943379066132432748136518860787672202136709763991679867373840048566019924556974374291330004590587288235731151600942234309993666897709950950375939581845502990638181439546018929870542459280436283192217201703530200662200058324593154452371517081833883673845268129721066630702811992346597571884544028318478819048153725957122868952701658742161127324965089434029937336121534768018731697510791029403765511368876009423246300991733166774066142323641917493664836269160786836219804313088883641806062250356255262840439703563578312195488076557870875055544855671648049325724643648623465734202349684509693214792244805980723946916674584079045326564745862665862231633029261737200685228588992957838348352049098480879108088875150676414957342842725110510852053013332274919133560055708008072821342064364685435157850279995404295271009473910958556184609166205224961365498815389202782001443392504068729966865286402415511249864177435243883836557766218637448491889429364390330491348397213507521967835693243432281960477956631224260619504733409439564601147199425708464031871482653384244145795247452178152701383952577489008730725750280800726049132954326373879494253630039475280690261694391954691387089834852364731724966715869246314310927656766008096560271636047573706047252220934516686582340727573177074358349029912888430705437799880973178092098663070564831503906913681592149302572505528788615615000213768989234763159739034443752962217260300849131501943700451495732918152498263789754082787439968429629882278407583124479492574134827678177218182057039551358130279585771556689658110534826693177227696899108286903964954494491039368020369600223576600923609940653914843331119703637045964942102644089919252383453955719748048255731136443544690328200750590398233773927163370559478099914685382823314066723499709008642020826862167862585184670036182488611494009760708862335519309575130319387875932605572298215571524520112144020146249845794202409377966964462654186500533774460240278780195086742735589935875964581603485286763412560495825978898518183308559800518724685895498878548955454234818042545175271585307051034654281667520427544610085154278777068237896638642010572045970868535814622256332141724761472596556434147656634378832610485907738521019909595835476478393295388748242236296432910408697221640513763756379500453200015255076758930768596790503116355705602020998928736988357890290648708136852686735041247085589786884178838386487224269189010939052472258081231242396394727454080172452785574391056641032339388054280209881060639396308794804454491015175942516766459641433096029561660394333694719340998237485552109294559352280677837893941059210426180872334798012752784216297550451091668224249180139614228911068090792807138220288898176030093027852489288673362254352328728955491173265612809578248570092561282554391757092530497287628720966487088679732148528121756983066865940157718681578636273769213218758925831508764696952038795612339692076913533216884906229674616600573019800209817119009262444505325141399199999635885171449277475184221030175247872579042170528984980309279271582029570111450608064934181468441711114407743206435213710912229006487598666124729256552467239480159413417471075527097834651078897218422663860388729598802966931972935110951801565571494109106309278412420090876892773986111367430986577722868468643744139231801126600174498664748862658322816100379271759725012333370270095707688055289057463466517898241888423967895340286404727697337308055147016188014909149872683542998963636719256764173434962332149214399387442693371162639539752266916990103088552320182887920467351410741403854537061706770031368745240176396351836727917960980289213142176017241595558944459695672832675281051250536629241645383906874205733620468146326558319920930913531101432839968631696200553626409750764248891774978470172027813441666304304811962426835582205016117967866812738982746855537639180418829208419751190428296239078108993625357945631615807744075500709831656567878581675441850161858767695943939795985830788189015780591791845140025805755504691808950114621249398502395188794706697350407611741617901612565612225629688174395064354829077383262754563333332162664845188004174772561558454256830929290226049832823091466222775611918773668509966255337151300196109409566429365402483405209187686254780822063082722295557772956337376004502395238737364514495430582460833537390735183940721913919229925592416461314537820849733579723136613725887295774952214269167130219419006932518754245419978404832787028069378993448408016370172208586835549539951695443605524934576133853391375232757017639506284551345001683863353949429805926132988721127143637732723100944105830153285950468780305079447470264245340625534150576422680760054941403397073385286449428298203603362241232857395563401922200147734020046426580896110616403455641143483847241785965418537166926549293218638148061866236666335102051939431605606386302489229410304210637535708103277477161558254588199862171217339891878503192991163551003792681883198332880458895734310499214168437032453357467576730144783765767202557719911220282167926367793347893402476539486491148313416129352007296983328303264410220240596714890316810295512171477626231148455071963844430737805425831891253175649875761979241262484046610462417971199101976382024180891340755493470003331891249409809747549567809439692657573147663713595393928723588704802907591931570921999200223174398469777720994981752817674189408900370051459463711986981434441505288824253234174720482032258219864948259597114194758732321136383173482391932716517790354893569297299675258244284803799147485528434948392311683551514009097029277809263337352390016024030996318997769762668860381450641895806841776808089664675765645306707063225922762047452829585484533471789591077844964741589176895917188145283874098435764624920596559705958310684206469495684724847849986449174160469190980440581989462624272166439288706517971176599147232724907510270506759614894928907715359828551268391581054212856600473425003548554813574034255950617281364359107871016187131161452942088381638005642625874457776322094223160546977892451144218545567632101871827967643542124447502663346601378313689245840007232295338383950682029087881888445889443513311725307526204607700391552065454810070848315008252910203337097608892600284431444109621001924892936029411257183624784321928377811465064127820051507954551641177069027269887402247371581562910896003867509456922433893491054799594414099132766706136658912232554159742291821012676443341463258697582771412103063459017862075671087371543617323019561792147617883641406197758125877098042721415583696637392721896039854041479861551542307824044468626077170725765353413669081341934901626002749247448903283556694372827466260656112957954351784191769630093397755204342769518973909454853797395526071549244874701549440530725970332799339202017715892531184142121060862508238995629542085328984219514284784304232338041555015026145861778220618390059078102005454201143002681369357302939876409647320648217757988580115334960817965183675625605075240106221920618100513675582015335037266520166596033366893755088904862381534077645977027662467644783303307797147280211440046287073902902934584062656110374901832828439418969512426709862110985606418420372376344047559666983624010720989430351745620272121180464450085643011169593913986140930576284405176308147312832037754787607342993561026789520149651837384730097250237091643672998855305910195235686314902754567906715113742006388524959355101257060136593752645339199120121499119818313278401819376192316578475617662427423822041653797294016799647404747956899940761071396461566009380333468335039966698486335294838605331451556170440522069563857660154755073858763054332140489335890874066667014530048683315403644339930969205762985128416366587532910602938396879771175708043418894341567698746902443482655267536337483049496825422002655276661406330558316515942200361909400473062702343872069036373034228900970316789610122503069303566054798092221393581826278236780030201799529224625220175239647191779897247628371729703599509240193546997008365229517897415285663672377601370223614060291129528016693860896811703192676099109986222749415591030691524439083054770748510922629780168423855538059014656275408985937825609629279611958798673621146714413656797016236615482061761686457687561664403987474026622651959938713697611637050907756676981736804527352970152228002996773874166767985174779382504324399264443268259128770604272055879932017646047921414122957158068727822157186532685832843296531352830387167808348109971079151568626220348225077703354289695329788577711127337728796511473535911617753469549435230669525844195507593964946168804204307018582205381884393107072246034253619917237594516743067714056732217900803429861208397988720985278716133662891880618394474134094394030014433609129312339267309049724989619514829679847467977108740248902616869500493246811380982638826750992510081065808251975125817681548860022038784983534334889725682775566548454255179590993937625095711421555988052895403594112488103917486345364515732447044465278363324450694228345325612891610312565557729690467556893633273091407858642375651429099722797821812093342278689641540381480321181174957695757055136995839537286206434921561546177316512575650512783647770100626137617097954287596345402650236052038923986007965919844606144855907666741212530482084632498853556501321520714589208377772771402519831675285200286719677500822702766759223996282525484023820792883552403303156117493612914771215549649838216909301882830577657669066033308062022766240118499733344339608200786432766673817976829472826789209657207608435666085384089436061884895183973325980931096819663312954053548761626464591612597614363763486232742543806826846807615851284765430108445031257928354502098340015356933701428191217980212268556977178591292489472571155270278488325972252548955804681826451691139108498182865805320801992435314181639204351349879815920685029783167468797844649937464585302176489991568391247151932061183085070760614728049059471468181528214786403583048304256082040877924124909824712896487347575627736962393180763189292667680569630197490760549233773859683739562163373065957949410845397767416351207305001473439931320695555726781684522439829514848780551867309339676509429471118503167061691451010206468266019782424652059838211409349969634631686998304882176446513104432797815600792472488361485770681458647941332432953290389174504019595771877943412831382843869413312833956523829884832972430196478794173639674733662419743351018079260993698468242717490871666910284669144833846188491371927526405917910688695193415689539818944711511111827868600347674725262680674994476594724629984226796830069125176346631886789825970126912145665754831450294777460540651965875614323423309559892729367944765884913495951096537426005406168873164769753510789255793575456503045598196132833296351320997322300777602860036355905752215799902848704591867870955818538930829900867351979208794182647078394370799146034723350618565097656359044363397957299085174127662977383457770047485534680689243907631266072341114144495787396978405995980384969698821527972199837113937949613581896825595873839811988839970797176233628305270810749867012394741701231532712588509989384934248633602650286643972585014266066666877775676633878642402785958955176918851960834439106353299655574297649250999825530021157773239460513623999332984910029173828379217877053111853233983209025034381311404523892753664834667786666130589277308469069612751736743033020793050862713054472359371150495615139642431694786688912393847768516543610595177188824748444787107954038437064743457181893510456251143460614718004130990030244650293096482037784144882695741295014327266594856752804847159561189190930091654544854665648422420757199910286908755590174033605901273919172800336357617666816799715795984376100363726545255811125448668900445374996022249246030647285014017310546326773543661676441643948116805477088476683645768328494388863339790525646128433383539207655630271331118045013562722972320131371877364030808124724417808337924150386392966973075982474117789203596531366152953294002529790773905371783996396740807830272552940921734138828733002396786399753780559821720752913619815001526283988187879420120405823294695346830267849323489269603509622527879585425920576050386822597678702005991459180619264391514863176800571528966235259021076957188013544376303161045934605090552719701066909640911516029370973596360509194437808188717372427932943326777575512612426438643174653391354660480967597701861445446684943001470000554144960880934617381347536747145772826133299709732817191361319945996948914457490415061236473921421054068530028582373730145134284490330076866176347003144683727966690678229466749651499059205870390208309813189965296341503865286551660039462709492987817577832651984009995459454285944548231526708330947733448859919472020339873089228762281325393880662173935623282583537238742839779858735253206480531351456531624115398410673109431478388154392431207452276855063086376794546009788303138714704141542445026603954589116544405990761712599580128449689476713895639861486952257493516138401407348902703965433393089690757356257397139390852962635138579199607900981701458010710534173646346153548623519425164801855278871400254040055569104931527607571113837523123876960358972909425122276129626150257186579760442933013981026121795656955323545109990859370701313796019526742680289483148639332989950752861833318472830200150652752689206878258716893067224620581015775384452024253749274424317665875344970511440441989242875462110820529007790392023149797063977633266452075153828647672366003713627731451361141925817406741632412850227187983978562718640653132882359212213087676269963620486736046292316379493144981142252070509236080377314966997763227174783046150856239776140807617787534273107901001314789100545245921797177068464367348103536920742775656873949515178679328241499507348516648387267373095631941622215673098200092194139556884443531468779537182831393207090391786216316765226096325598911636999588107679064835825210059123750651553439609742160875474319651184819236508814553598555258371499948645849353731648260970990127922118184654102991485813214349414046089523018127685212749642432301728363629136977109453792490465580201362095613656446406495725427988377928284046913601372877294649492158729603822195672281439252555024088519011458211415918684285114944895613397109153523103188422654908784529133342635850183135045528651050209695509921513975549915671634021465089927795545272897142084950252096455750861762884348796466345740059218604350879805300373163640392101088240532860429035583610076025178191673040485505066623302076280014975253147811764024323686711369964373278686288403570184353364141805802688790622110402490929026034025163564548895804991173052876091565451032469028231024486214984329343526804382005459045021244004220598336554335844606827316800914954594461875712406355168415543947977600546593395320832554702630177950297306205453366071690379560699113117566738613559759528816366689743847576382568664439711550030778792511285506665851065457923577998349385934096484764068115876317925093346389064571035457652702941649476349187692437507567062145243786358029502683257452209350945931565981128690491064660063776470402613309459460285980775028328835346502116388261096112302454334802881974126793569378277014490817705325027074953194161451522813183477414492075481997162167916535535372793580508044980076666713465052353132739179738714086991017921617820219411023212092924701446433183330320069989691906435265777102473546629490325226513410997843100151526066326395994899562023843458524401433828132316716340455645728788607987832106538699823261105651365477235926082990371590364708114050468872520301025730012980716120694828760243843813740098161586924475597309138607432737041940199075615179130748703866173403005705500124599165034088583602664734577638391937225280759607233790651868195164196597027446847406937374217672145185393166851457801306756842406275244015181438977110979348596918583160599686631867873305671177941773848776348707431460263801953875139985547049721961498962797668270130958119457988741524210612500535962131903015027296062448665390551315449203162950139431272043591454035970951612829756938916917402669400958497870339478725284220188719988460753854257821591071096833927653074550193967696423344894444054123245699534283025044654866896247487431926015124410256390070267903401846197236218154606802307634072243462681121268961528708704622502633501341189065480343771062541872324699569334194618473053835156941710943586996804167382505884124286599508807840398675279606553367246651215675399426960175859599534008331786889801906339984765233563325988753080177743444099049545199847030075701514684126018429147565822794911800302467428634676016684965698284006030391059243632874568046793405109600378672553336714886576643375846488989217984903336870308627717248180144923438817622341443661377532737862839144745538554644210222424988382073985015762121290158698129290299314760733423272346307504764323018058729342122382567518436007429881170116429550632803384138891414546925059588529053848045798148498180611699140096536715155707469318327137565135895740636198286707812777946986255669017320984924479492281199938244848078989420648231439049486101907287354492592923461287449550136055655349518461637212066460751570737963623573293373117953781261976003962218502258981755839671266742625485027245743697430716487988424676304239181165467718730536575700071545840095361639243119752072259603017141029587667434843374954109621870795512572807890174219695723232772779817459678363799114548036796461448599779226047480161091759756155215293570195473977149877199960271718776615380630972805154643077609425795971232478071107909737956973345820996293478417663865116394123796480831551098134125334202846457400642093275033106913693345767382414114960481054278574274784376064243752225869660901862677150270972048642998409106372381260592344716037468282819590491389474726266698405226261002787448544155619828937833063514205274880519607150398316302747938811422633945182933813935169039373564060064547226246214175385886750303232914661192438607237962879131812450060688493668568303096353393017981711302910552597205187655622979521724501215497993184417768270782466529341130488413567366336898686364462544128604854732635863228832958428620468627877648557615602075609954669384524844562443237927861864125723370804174060482649210759116893077451514651670210345422583557144573992844300480250933669078725737946219808963900110176383505142798402743129199942696283942143371442782036239490589363329091712541289382399506517006286054408687999030288896892790690090467301094503013809848545195537101597066655266550516580367037229923046513519771631750676247055455206604109298547766756876494920989166563455841587727445170496118010103462966108483036779104831076517264549632316049413972808647450438267958187937456643284287939613455459592976472088001375416303875927362024955372216837980787057982214574650650013282626267645021107332294553031196892217637049378960294810788908454071246281487695179196111206137903087971572433103262180343547403546999491593227389274987257591855636150452641877121096857286509183700604835121658892141121690308454321942109144622832949590004325914867643377646907908790025360203779172390949675539273388735210285184586474277676243405446087130176808399816240978187377788636132860242476189989382688239343118798484931481834168014416663929949342190920541690626612368058040481559962366435555293063270245429346863486087961969077207660210906910932375517691815043091202389804850300444967773632046624662579537280878913435588325203560713692586976781009141500809629868942089873459061449104607291214718308250461580400739316029893660602127631227149733344377951125504447324200272713845981385295812306727381583113158650696252140290626724941700102126758134144143828115058589138802344122855193409727844266364570519061692302666951126013448200100593400353319360343685480074601262533392348401677598108272888153943242938878878389722228181078412973575635056252804895462338201340668061184737637302029896795133763484583738790612216103018861648976758855295147001333263251853647316556928614136448289622024962939681829367026740371357943332231261028583887157554254017111676399045701806670039183604182152646374424084477313653595105054950017428294219924536873995452258427552312325690199523871228840238908095067870036007675574008448060719340274085228718415704582945566719364032064925547058753391940330406099684631625946642445387730246103887503947753907703941231729390595655664182040588932597093206180368521725148253644908738359492916295835014936651298810662319117921965385802006382528688085210361777136912363028328701793751376958610434482086315250314535021874791068275918200134245683587209280678098237176136012143138043398411107954862687036733254936665628128080237226391981547857463894430068745694273024655799965125453160787989508653916614481991020954351215555986718010943309255118092265682815879641645948326125841365524467229664262485881111906843624756968076512720381016301250094940688813928137801793313328078028921019895338498717310396886086852998173632724290652504810325949701209379074564325152332418745048728358420766566145618117957872849874412886210379506775051251479030450541573490834791875112595881610213328008718953552026515181824209827161272971622938689632070493789565756822428172328793744283025181498605013806983622735215777183629679853318791826050193309455782009351658129308704876330897975679563424444446670685751388068954036317249762783114101747761041424156807535054891306444807984350743158159438319889482043418802513991854658297341196395040248268696781159941694083241964835463414923914917242089320393761098837279901574356421612459303673622832433925859399501756407777488732253093360607647200795882550589692464126192589853060012616505645433490184458151125419434799062218833804750362671862921691308400261278516467734015681325211204931084230896171031687580911383654871825781088871099810658945788202634479696499461690785062448718158480148018246005323906209282615563924090514447259817571752777076510328567476221088961459956114768260858043894276435524479004405604131523546177186684042595939826337507122710537515246834550003864529609974186378024829967799233431500829892376614662284415802725770767688234249575091043996224764503057725627326728250091734478684580812523108736851027947283952987434807607096546494339513155194313934749768765956353894321705570344164532963096119638148202985063142240524522924593756260126661167635807706043781595597837168859643628662159320128590044650264786725772343167064673356640093105288811599454055214182812021989963444990050237667237988007928888333816046476334392713964906041955998748868622488354640946793320331307957045753502887439155206681137015337977621289537823797301943058192406988959748367140235441402202601049899188897710137546071700900755935854343451353137162710774164429126624076102251006478153581284145968060356724161561238120966238822896901843561485419631278808733300826207853484663081837966981891508954642600685561360009318540221761258274106746086827602057050622077264114494501206131311865184862105334669782397868150734446997283964699704782033838342794929872805144203552010454205923175319493207905924648423228359287909232746033852693152911960679549915182625320905471866591137409121110754712078508038772427278562537512875274309115693219031705023843003583613677342123561805073508148978877016966325941041135056418288212464791382381771147100349993313000837712048368904591111375463198876603973419965202021672779516475575609634492611503355146954221748144430888591826312566070141600829387309276823763401105782293406277205442452531419262339703740179813787180247296289986305764396785332837607686425358139120815944570104699725490184661715500418231530589980043027629144637628359216708542481074928218215208670419844432688214814332218004346801066294620103910062937577412571145047445174318516433713039975337359911138890641428966963452933958420912722167842608545775887693648675141811951680537175315621875409882094419473826686525513696975818229691999296497826843218652395001356496701720973707058445376238954295447912394768130571791398957174618865477106853818757309258499327280596167593764726840957807241268101608928433417074244530118908594784485807172761347852174583497884916078365140159732660551935526921703288687830827131647760565624465434263223124669637694461724111043010137006373692833980644351006129675153159788692068299697489721304839741593938299754228347525274854589967771191276902977916680715260356596550281211807991272301425985521743300133510907435147800528572153228670446029954879434800491447731149156376810095843528603830742092309281996573007600342658944972471986303618670100107743765662893942919727994110735908603076932491276733938518667964034169255554455279558414208567828963033584605549681698272452930065382673366328379446812110815942911371304212368300339232993903328941275186180560989415238920467002658984553936005060336826223961654879211889048883000067756998248658399157822118831266980922387794691737827403905771545038352976412397401849729442602724637671454979962334764061609590136942237594689465137795188066979970241520584648380764580751602606543351472069705633257135340831303610415027086072443645637258555560832128999677661002561964546675116526719810276073775999546460693928651814983328825214157734051794943157713358504855694032204359334263862353155796014706740275519367177487958624722526687297235360025172966926131659454603546291761869648291957390938566600468404448194517992815187536930858368803174440616569608698741151872188524862596487954351434368482700112343121883035738757142013805380903493937475540587148587635671994987399807314970119649360873725746181497145341666821774034444257576227859553930575704157595991077105052038900080107505027588411939981092408159513937589840274001475738418847706710975231832746200963952672963139404889925147533247027553337675346711757616224981167163924503925295088186585411040669397141780422963356090909205130259793302180914874086865105766199756369486995195819991759301662457660765810647464274252868068856886942676152870613599431940383262238862305418772615370801628071825156342434549129278720189019145824199332190442575657843048293470287978464148171339870757568564106894006736170613586403396894811146229375187035540135020770590498523975607321215800511118990235854009497493288974963848621524895152272164502226303139279752906913520250739169618708095012144324675322422284298947472034703894372989709810594959814806945299598983890008039299122709030659740868459718360981047471242805581430657981885621147549750116721731311368673585268050323671201879890362591511117464104597495829087634528563080186938342669337288358748999279462286927028758983142069521585454924646691895830788803552087730592895962520951541246702250183870495649108083288090807743484607570190218168125686678962355234815742108121320313598185309330814863332904149976650725054901186912389455208962158298379562498600508056924694681366464169299753250608803265946733257429970675614021752772289638749022384437833436840238815830795492237905891284681423748731740872915934391443733944516101498591892066465266483828364294499144016091869689392473969614779360111072713721693301946138555079671677589139845962384655094265611871166463334215006876358359350467970472794953568764770299298459808393183900187476631656437506329676170250647741123421866209877588000250949874229655706681296468016549896966165017184538444802648379552732783081285088651723532975458293755180523636797364645155202077976459950949294963575433509860414874518755646196232324605913838119589635301050679598120660132036982445354049308537806871693458732391892117439442361866499788067165350195014097780655445019256234577374148575572430727172009832509968215731870627463732417428072775356368166169956604227360008947423123236618907246092606670836589799371993816482876244464202513861611692641153332541855776342210273771256141923402340140026237564692123896413950294115171140737197077041842412675649221011490151767972279678617752109467858566525473815935086797428467051335327428152321749911150444167867082855722839733751063088727413490306562168869392098331613629492219526449155184798982278338763438804551815190351452274680579719283856353578852448387518371297543225167199799950040249938215353863629035251745351459168208542062324333665291424752713082164634094613034645800904129211380202163387733869846847857622819055867792048723825100258588454858939405521449823503900851160703358485490947612454312343602502753820363456664699309436932727096215777446247485117134919791272410952010600243423323818910834962885305375414237839770813939304470911601481796592206614553421564928998612437277489148243364530383815497886156242164596359522694483960762378552780039890545082541203917033031660343499778392350011011899071037512517399625218406943518877865505885672101903240943056548637113719016200739168940257094750126481789370782332662503436214232523180893627999426803885166098954599704535417949307529994398054130195702066713831656261522133313519973815180150810025248981487415452325128239932272755518438484971946791324893778879082709604737196468132529563929781884976863991626880848195942272989876550917898768000025039147174236764526908321732060241231977347150575216720671880731334514655065725996851226054504030858998753619599856315072088554715000109817963650955840944359031576636012598276453312674992997366221792381531663027449942275453626768851159337924035122446018913350461920104891115379150999005386556237698991728577168339458947344274676018859236343825274355054724739267580224198396694033665684293425909724248538885473959793091886547961425835201245454071746627371110781390610157679394513153144208135038419777283627850943523365463292216007082594258140366943537962203490349490069435151724277499934927068433111847569870600856885325596104255143979369479712222136778134165167876872433607203254933626159027785107563839659612550820939604211808816834601030753979152222513365027428668572235105800782004722634239416470034215090905664149523360750752484782151937311940021045358814904682305542469389654035807899644511863237437743212026147824827277548725723316881288667896180433359321426705874248691678217864257803007018992261687467678033320194875827090446942049546917058643034062677557265285680434794398736143487398484329903609319145043835974053080921188175524993616931570466108046615876460329244367287582807438815709537329592838007025254390338133110458575546626926164341709586358818237987153531559434715731644416857746062384870935436758969327609982415855265629440864371482277929068395533877086348512418029040366561435327934573635737454699257787218215137842829529700688767441854852816038199246381037933179474980799178700694536301484072393665797992720625394289473808743752433789156000239347526970389588584585145496591079678186895048276140500321251360353336354139752522867587492693952338213595267704119742855343954469378587781258862602668362248713082788806625261550197871351776887296063398518742788313190528092109187681700051301058826386626126862069153915078031224014582291725812922420718281700339048934907841779404959341619085022071788087818345532919732946115467386625451390953663734517577160105585238902584667535601821710816762165288610274992539791373754907680747766092938400100304158326294407539503376920258256206350706224659017880106866609879035779010517405822113119167888370300546734528172522273451552000242510023482977804856725730861022845836322025337482529562557102270501859265813209382826453186877304963055382281005542385781253208535921872737700877260579758591325945554943820912252558995588440674819498108089156281651768300720970262423969988736212478693400397121356980257823348928530110693596191159008514269451807044519479399272007142908602803096392641801296758470078068059935498738835019066217858044730643525740895872299762698207319927137748703478633351508791460091666931780514805077871291199256343231139765646635751450647683821423153329934214005729456832711947262941804909847356192299227046590940015514341971138600069040927630131061649993958584542983146104904422662808598706052484583252134908283550642610201859356707633015988904286611782074682136328635847442230305193434165714372998584823619804114326351203828540128239751206404210505524558536101395650445736888585309329947333644378908543107670999838124249044010972710189545254054076622647434817373249898158759954371201862915699970200043009995131474544512485743972526117593988466134062888608604197453533032477303870063392787473242669542192676788438225705911944497378326569554289937838409019326994517733786895468170364454655088014054986463972370767944684983585600368891731151945455842455953603767792322397615128558357322882222716203855026721813076878867249600774622249638892765572437395665751587950078875805807982090812177712169984051406591872814553513139134065141663370677735621357744705888502635129680919125134665253219221186336610200166250172579407846218200112512765701366119539333785774453516216065760353728262103451985877735518556450555813738843261671406948886745580872025980763125288788474271092050399026929379738445817499238563563964285941017325038011420249019639518744544009987956934446019318487595422477454121148592901089370889590776619565458186424356643209302396501429374804706022189190118473122810399432879595686467266821308025311214375632117323107974356006474553112156214145079945017048609592958908167023293920909855106338705110470716179049601359558292285533581398643379487199916794474290132252208168698797201378958168129364322453961581809738367812746621530963326565088358107255881548093553557947564018574311699879181702070810479962100053742492410035045983070119708131361910874506169587184345821011760791010269890536800332208055035859666398043419984806170423561132485132997897701285470638464104035304855593092903288527851143448805689870070274361447418643237253601023753036494282324831406890155146094695033047038520742430877425021904383824406231309514808063612510154829704424214977123854348700026683180552950486293174678017578563409992720724989626479844987280443848519615878532117564774059711147702861721860492795886974866813778586403988463923553426067105049090206880517815401805304205291495079368846982638422292802148247134053390766440895903416294605801188659585166634079202168968362548521707965849705862916940748844018966533998746556774828642463509271148284819341550974193376776723911184165144702088297506867872271029839811675091528674718621254859212178328274614958207399919635456726658925486531087303443613647386704869928002521996207192702836178744017479007698810990024468827653396879719276469972745989987325918685712580919201326948927808738079692476282508850096064593982261795844707984318944322845696661520767648670297957190341826127508237404425965213972493147009653221374227382395308821731546945901749254598988881443411216914179436217886944365345293130502742739458268037686840622012094625419742902787848242539253876839045217479270859031486595551405479307392402946202658294194047374122930746513378080403341110760515549263197325991902259770417736039853501772342866839001793094353214481195370527750977103721280859289117922953669048255279757104517973518736534483683419410143636466975469090792220743188293461179595629113870974368523506386572144900320592685805632919444081091291871694144795543015817386033678463515018206456865292266618315249151735193648186930155707058066394860717174156949922943395617322123194420366228165759869796767830129073586972247708854753582316581497676964025110524683079025380183477510271703508093680321168927417685541466518164909893454448118058306475677326599532793089438345890323735456658003423210613258646103924960472012114154843827277221329400003525794034702825063803558277028157351093117256323110118117345666877454189528929599682705445438818431953002753804947176089300482819335731771353821152747494022830085269333419710862126607339444973341416540260232235758569503776452995704239454281169445056171960836828383846266455073025093360298763060562407150606466741353211099135573375492939873907460150945562630149590742281466948074682488773103750309909529081938579848683619885423235468519767935500178110979957973870296652471376281628083266372605177081658641853424932696361562052123926234980651335428142682827754179440342282440097786498551446983761664246398278628796416379188788479065433320797735858369737413889988022035187128889649176429977274539565669197110842503770751057208806788042604607393746286122925414017013648196661271908318686271570647886545860949946300727798120093011685339939005066275773070720766621660296142305530370221469035947885930700221348586567488183876446542839150124938622368402071050316101211727846765990899502612159939665614842090667563807185413400529790939223162961874359534923360091374888268870160812076321273094623912126844045561322172901396910934435316216352841352988617753803134074528793558693952991305462299654164040834289969268871677876734432796527610566779765424367819006901629386974615685832806699760038269277640621959699443176145963448856294123142437079400847144443433533956569580409336838150925953125328171082399148363427478488495024896125968599912835932100153496806107241653632398389751897789045362304614749221000896569153116199018580325621836808443827809718797001830978745495398145200564854871571127989979454532162913396924779500305575135730352826626038266605882190470503070559976234258095552121551964620930675056659773567547564813431253939482712659418904298326268280720786416494255454805317622980100418681224144758625670448685298206556812982661309941507690659636208371020114490452102070350122418401012079513379557149202684373122637644361793299393368655366587542752343922677864666419071173473325167224199087173498984385237431234394923511658082849524814521918851376945971627361845767248082195528423858705465972670601980091794020809434683741782308383411132446330121121403772317747178740177645693024074420448584646076898093239491479442061078038708224471624743233342036238991775231198238608523186990083896419941080005323169226759502153638325626578167895632365467071122191258860449034933092454339694169413315139598306879161391485542241320082043589551528693452507877275801432594158186985157857387852917351656986803269357970414180497162183462114525446022516416373257583195973687846418891216205859351067874405358964299618608001199807293198491408721839865394574149007220370955289303920860156116854861108775629875976633932047681291676168090177946158465999056106379877570604869457139169884965536304784748917073820698051448021749107872636685006878818002273917900036901821633866474827257941572923627302967265561262614083819851866152840731075705475979075074100795337672440344453755426373310770981905583695551440589052077083699804467390142987752111605509249887635132265212751153739157152785893115335654184180210613240148951224465092300696796830286597814359634225740438010394208424569730173315297948210966756187283008602967996052072493605154694243567676162219368674344757484672927877341881737612644292172524922138470747772150565106652220520066358083400739802353374265986724711579215048710209040611088040029497840717133815872838056886599244108663598790668019806646877673518148724395303902673946795597409420327671279690947438838196367547550198610698698318348357796344690661025651206144392411451260255837573458832706731586214302259148589393712225571435415401492485600262355324753152026514026900464440040778705770601674916080380281082105828141796080047646704555735538231594246222579893259906380812094542082015552549807140364824893627463168009839524885931676740172928719104960040692251088002929654500478040999717961080240384961312543206420990402523381962210058360633861716493456878001538355409425555929673701605279448524185736389632101506744437676921648096559421425955249200996127855542539871199813968242579421069668148903100657967771560150699226005275848715441048483302560647970028530444425382702471470550059694398351205579342107519801285931848250233003053902092829829244696927831184790981871138006408329851470290416897318015999190426148223884472656142414741894036515872717586727987183966536362328071652989450603323260574561643718073146541368024502143617576738726214181608253831782943334769079437879911685871479142078538257397637002157981538217078274685728718184459626579100434172010929609005632846391742973560130581914485744945732435626878057284245776722545366777735318885325811898283571167042051284726353049331305564022812626775476710407510611823153998508618226509751713537536917893785449000407777407105416920342350954678227486668969700642916422202506938174104159662797929464007917157343134977606728819563714022259030224042709919278094466569542681980852366259997132145940096673131776837254051305114854384749209077027103115371378242941269219910659403806957636657126331144014999524523017754070289486859553751386167620031218570850569626881081093188241390763458660282046377064358130349459163797719880822539399349361947617777854013218361318733165185555122125692098534521940985873666880175827677008886979686745952151134376512821940313849557440149990205607392145229214409267226932371367981491297513519200200937415428865016496863062340942665106157765078770446192011744319474657578952874729418313535248295532997913480220096924385759937685118873902432539446471199082383019781273199757282504067400347260969172820205710409152701197535098252184447010334775366915631445602384848801062982920478136608953688921677497497515545896791177208334172679941335824522607400069160966580037508428335844360210568352455836271571599289737742158155007479320712305116848121586140463284575007742318408899885393684938247291526893577157722157195014985508137950555844530943437108889844296537311711028212255460827719449567386452288231251951619278956158404160832243224955583095070767370613395220298863900465557265422373108067343909914744416863217725713215155066928958801082143682856304828149213898806497031486583122190830947184022251815282916511510112526226757384610957884375753129781817888254674316017132821747437056572504933572492055242623192754647022258829328849216469839530921792871901801942209683048718563438149649217539410465479423193915019277579352709930188381541310398997586355623896371151464827279557805711505385957242506339496300666580177119797359645081882599293039480401063361148276219964438781189504719310664855125080447227129573527717104452585458002265929266925611922405517842307087869474196379966807348814536699930205412772859272658614089898847681786647894156330386026509556350960361124307768976385939974806374342240494774917611557517110960579475414053957040886228044933581876732196075204941875120988713815681181061471314568991585707761460789814207878293425818042988092274207703140508812151797611407270157777459927759499642269212038966355712393544207552806368898812152318681027006153302995828533023373059979875091501076466126149524254498497296601324265507420610657053875555463003926967061487605442383126294774146231092966977035795888078983547230902536924677162790918937010140289181678972721342189789260184149536130236489517065459785827894718279023207508005197283371430031892079053146607506003566353718892323725231062977912092520000894853291850681296746393952199514055866289314702508110665669519712409909099498200870861832410839913440943774442622466069425874041501968466556825781210769235178125560326690437561996508206348034770171084568843175191095092815265054176761969542771882346888577422967384754506618907587470647522358560943645944060725431464229610328132437759996637194513702151975281437964383871057538063650282670686231303037605671850754968950594975745805181619043382596691543105113632575297244424269582509645144286284192509008363050891040401190960754210396105905691068716896014512934182098264122028269199171434434664134256467120522331898686451367791878182713255381161040217265393940721337721046426088107721013278827323868314315024030924575440557609456049118653658377686862581916773693484260458770062761071502940298120406838670475461836623618750059991484897910557824042909995610356998053245227335209634834528465076085927495420115855412185551168636353686901146343252416066414375830042081861740396996939198983440629828438324007850461507717471611433228151406210658572137699803281114439153435628961366670173279346816757453805192682667247107179508801579839662367175901299665267788200043480929767609579235823340219875312716021317287385902065050456898875899902448281078320963829240130779445832352093728825898463999942287689187119735153187321669046280970165986300118793327864793193188721679528962559993724676560910433421437197589671889390027598273193698311349399945581218264575230017004241004422041525683737428548089040001809453554526161725768676576154236577659418068612898729243441994659177271853934674421448325407800369799817296412901196180563866307178676732915028620512090276345694551756894298489510375857970568522205778179906731397669960741697167900840305016966373760033326447969671238330185221473451954255546266335249011375888437275980740803271813773239954435154357297692894760944939904541077008348753183704883003483667905858607264377389337811421143756267551818655164575803643490869773211733784293066535945859150793372898625137796590699477856163817412842248370445955163877747318548164804131670530740754198088577895676505838094346322333356157427998143585682080498450825887717563437910445764385476851445209895593756670784609635906413909898079701275144189158372201229451546907115596302738134595953497877366307405855421871155990244207701777659338255658069537447000583204695093750323682132396255148953864932886732342611742460364842128616572200884821796026810160125621534734042933601472922590023254614157359448257360630608817361028109946405678418272785304515791692713215169041886833539653775361081956794968284681684477501718444488901323702440839823952132661662236494978220102693385898021867402322272447621932286334589243437575044577619133464982449735635290648862179246979727493167401957531905942883546434808095178938408599740729313996497367750211122295560261807442163128237834044511465987300205088981224842027077269880629943425435359650705094730857088306993379130378648417292352573076065833682605416419736099744986598836023492489862648893286039673715786233791560292135191989892672695867489086769243551925159041874375352640053796995209203017429613375365319016157671916077344659535816364259011352321422622816828892919634307276478836844711273089416543803338502819464406321219199028340305670155692182006618160711079175738062577267532087439930963181113709646365454321707340904255968836258440464507695487972558509535493104314030653693030529707255384319625003297577814137440458837773483831428274778094326528127429986991008786377124130916843559899183740519606111252924627992712492209399178360454345726784787030792426211839698609392150388653547290239329024501544784197504121095589338060753727679878359980182050716280366228225985780440963678780469402991959772187416904786874370214259280358792710378548050331637270674669005951249267660279773210016947784495461052980273607916187889636639544575973002871764189949303561579202820275144045693806899657248857220857691671609574087804319201493460547569863259308797721650997087565506237886912052077740982012422667064127613831500427769524975804228667307482047820847308124160779064430681313919109542608313953210607472723058817173339539069363824750101668513913743756399448435331537375341395638991358714982191164407707981050744519186695021434885482819473564164015829623747973875195053676571808325881037722318824646669377590125597744707632707658788395199133041762102254539091949773629647989807485954552525913738528229190485723719099634044561362455959626350321348306733385914287183627334919145694962556782370485984344937710010099779589989728197136169747346774399490539491162382285017432496048169169897419596110294967153642398037698580358456394146322190139280036383721605989828220268433832575696098033644714585303589172006364186605045423370102143653565868100998123673863755270840842877891390651104051705874571533504793720719227665152376574125006078658214242627037120803369066529040570196837649567209340142694409895209867253087791371118484949342092612924549788079023344685114966529262729673534926607921649485263384595402322247250622364760072374485339327039589511082699548952211225141632961232361412878279708755061403636802491622369405971899175489742950315042023606549397580329663091176306637537757093988409349561206835662252559947779315272113475170540154564216669757683031583081079207795220892994632020130466828544617866903847073279361745162476483289000890747666291122656401189397108566093476195752598930878317532122291299393217219088654941801200993061931043258433332593112770585694529506525888221403319907019556715369080686761438043140184601143631827452102547933188429229144851200818963912905411418833183985010538996864631447432640707173269097010934319826007887367942772883270595244011012831013303373698502969463222411623304440153533067816321673574204717443681716950244016035266916850315891126130121334393745767932363765595034649446945069775875776548113095941777411827784592196588929916953836148580243545658630912477614096303031067765089052281686732229091006063803128864349249630471343221148192172232147939591270546391924493097674507110382104005386450252150638806296383567409372251394044724732743624662720028231998481035549552382866383244363607841051795945914605483218005429045811417794305810077148992065617354573037711551548618764262678542588658242891503867240150776163351681898458591498270523205344685072287960174842500960267152638573600663769349198001832659616647427764672460973748487341527443146902699828851784114978618004499739543288699250368004662568345219079566919388951444772451886786574813025174500876897396446918323571230544153993338250982144465414741163565212710696643340859167837759768247280735136820559367914140551412715314706612975682254089849651485359739826386916341646747127398327513064074908799657282310674867292627873742513887042146812345337378018907385315921883530750595809189397380943433115683999858771700219010054910000135156400940613637276858141439256930243884760185262037572279503065115305491693545996163303781091895145337885401087660627767503218542976698762898942676511398402120427555073930058887734646130282462668311435716254480759795068135696917277423959841812814995424395573332838633109672538672644645275373488675120211181638819584207133623981739322955492492300346868028439940087255780302857047199556307830746654402156061075558935991853864218125577843516983742205661060304550793555246222155506361398890129576745754031912634680466673780675283176074908524749309791955011058489737778740382044861812034366636295964419582777080415850310904957290744255900115643022963763488583152683891373444195691789055051025032512325615966943321215110215415435538277268986516277483340769727675344833253222238641372344017799647931597035797217932836883218225000861948486129421121631985309926465221143272943356886153284672476169061931438209862635663119745663023695024420302686541130275960650794986524066515322890148891525642579809016408291929475250439698675454728412601418658066992703826869021826060404110088373010915112256034450268262477940269616212879840826179538726170395972338478530868626186292979169313303219445028284835014744757417772727226613228316151908306580295148506356785623128347386970220576350969780588805523706647071846276185933648287381428021062255064409401873104404044960257331578516891075043703700800518287611160186755012240195835967699572864267118663149356199688387238762857534743506013624585225934952624135340728834872826044706340649084016198388122824020907689003602705492078765618436592941157440139502211330938465364635361340273419097551686417003905863070506805647258519917408902901669162211440043973577192702677089390884460981480020284492863295315558003742335955181019134657311290608522010715684694078728587858365413128631329467693431448271821995248351960867639069631556909823151620780510008599928483589537508968895651279614229339954235623935189513869729809456257774809680272180726977686193267496531824470076576133445839078478823686306871477321038833032719957620753905884064818683171126929483937047729400120368738192208173773767952941263278382499150948340570912162942404067552900286211871467672771284145868486580960573376194504448010778554118548668783294179235027106487142650248276754631672415238302103648585481885137529797915107750189640385369067192458345540687594150134310981670267492531306976984394981446251609396877532338836446677759568736397170198370443415716165508574885005906383562315933506456071083648904215352929086044870237296615592434778793047403245990611009010059519502686509238732021873631395926178202193702375586883118341069330542480292858480065091246092903189740202496190096364030741937057354124717402609492919919681923921662901426039335144226479590212689056480786978352557330739846696928307013605338473708709509068571736055155556071473757636755177501765111319402245511268677482298467940988234223706207173120409407413407263251285526218308072370107953613983711090013426624009495320953310865569768492979290243946481976125947905983013074177199924631190355945740872206064288382429506069402011585541831687507869908201184745850662454766063241132493953347490593811324302212834209061615313178504952524692754291246070528486025794255095880980783078984796783694299025068871460207191332279120631654403279451987914673069481058757586015620886400323957874803731476182865899087499872495347461828262130602208419309156561309454383156900272464562554394419511775813659017015989875500798783381174096753087417248149003015118079228046164374731250304194283160730467579291479181556486841577544714615749304004535140683558382593067096105033302779355379202198534013818756384552521805899723460977331668208115458533871017368404505683317732581973512766767226427228483849651057767744403935650362885900183381970563633479125275363749388820510477357140390624767249991965093165962941205353337989158112262642272292599325413576225173735352498156099162467580477242130549217990312495968522020711928214652963525734656786702706035599363613960103576485699351442214546232965795386627791426564515272413129777003839075721301011736430183918622364054384632009177978454198549314319734470697617233978365582874898933512617504503922733151633048173825481647928142636631541439352183798051440570804513424664426421850378362995499518907155779186906346540749326148954386363693117341393983861645768880158078700836869300185459770428218283020620263138859600727010248936075613359380052653102916134847823482028446979928751446523307534523753164704843900456845662059703678267196228671090572449874190076250274986643493820653533759420704717101342382390299640804174906006286849777009644767645416351504230682656792872939455219343026972542453867406639021807668004028757133623630751938428575017583459204855249069991297121718665503831723407093150866546268179491599600522922834178136792708588848371996542686949947698118458848490447539439303579434682727851613249876796547185738870068930929351478192593767755107039010743207834826572928728122770263441406221138145597097478274798928479213831554237706193377019583272459608810563421994959656776020570476823879574867692421049318839225381101302778699017616915443633939507312196039850670358912758415419427999471781371877974792112974544943988648024673732801274362579300529886677478249726169324031637981030112103837747243023341471059663943499265689868358850809811615703224821722569827608263313763715408306851660409807330089134713009074110830714873399423593588741715498815582501670396967943451555679427263035857328996219943414545121340222825421471299715282904316511897248105823578429755054141727286014686491502661044150526986661507848933009542848661009277102662783474763876131076315631510756636775864413455478030567744592594897830782238676493314721809416417451423357806691864542408012576352717805184978749591391315338504367526031185028145509897488684543943493251472585927629555442757406917310117625880266199487761164525261845913768897155991884953200281344449417676131358171221213118366438656728041429705591136028635595328823597130302930499849716766383756031311120574259141870205107566928272042913051924167743791196532067969113504424616941022587287406753708949089997134753239235558820954740368234611037993677223380936685513953001607331584164351656675484734309255568190480261540621903430193145044278407274228220309736130152477726425469122787759018398011236158806078107949958488590444286733654040929555900740870116054666978580304506244544976631538319071746119404049257146334161878182113892802984050350441716492517503244085313745439764156140623901851985089231970310624921179512925576771894307429253542231394864737512431315072797750696105144374826581524810680427559553469765766316052982211722599645283826029881280758561722756355562104946125602050564758644664649988273108413811818635964765705211659353593054611636599371943019638751472750597298306402582686229395611717182776061763589155835875945455103079104802751684417398017356803049573908557840971536146487978542352847765505447013944875093659353464788707286885364630967646355734899222070879976644831086156938108688159181935028905013870121436194468860894293719249458557779198704745957330167808318440613447419906054030197261008386924084394623101804800065453310280444048787027487933485704272009160354323503746056494915672215433438630019499184971623388883064579930074306979630250851304371275588625995179385398434751156794697528375298931500802050680651403937904286980146429288591425081118558019105635133407450025018908725685293015063803019640842781759270332962642011333422299204858330446897777131097897668108629680092136893510973530626628011063403402849687796772509872133922095355112945370996109794833339580681445709771123316623581965052809979235108932971279102411707778442371134709619708556604427840454022741176342474608456802384183305120251787484839140237456079672010628011124606124062616505584991580451072946991739788544177754157032563824518525742580503276448690508243862877039491075170350826132249652704127602957561234103139345774630614830029438721566134725267447800314436446609843275157436006625005588797576748307882636095354684311115898282992188111241258792175277310376107622899831479661647326881280851386438971671872186395145139020478630975679704842157156215615915761313419469333644470283909944862951568332735678239781528947567461377459524832610896391530260800118665875471093157933678111806078472674867844193092140377542280079323179619202985847482563021956606789602299161814288878812291199325899205324586964107985143041002302489001897054555642064635339129738745070014151307622014636038004963498631487127849078712453137846402627723761459881544694205287359216355065044551341932240236703005114264919011452768816994286831747243071607754696895029612027240304041146990029364971069872491961337188108050688939978689168228398370290675917752076451610803877419080929130944432105886679604629874011751867782353087321138509247177213877382842051440019914074077562823692868379831475462683886976371212477851185040229775690978349967650517869531091848858702817933456976140773820726123144100362034467611506102444954081410725847751632058530790765388979274002733908123842942454139706472679320966655500418175497998759329022251585769086456172207862242630682489525082069241804359901894212932707694591062881962984223509923441417121952893533962782628758367127136645834947207197392571582674872945731321526818090617321400707024127003200461589338281557770902464731641121159926044769570175765920921081723035182008581934446014190306518966224414095289999368299732527962942618852077024744887102234690099712955256924477567851328617202562874149926808864406096002025819848079967719747718683529913332061281288916476078095239846173167798276066257226426940968965091213620258976210309946589748684836715968624857650832927802691458000352439536639314105119551106671532880605001581743030649473258399984996993982133574068145755108727477546421990456261857577885154126204271972542852287345687044499243019851691588309261025479884567620608413497242203500382113443592752567548842415823811356374080177573766655881154374432900226170679427698592315611558261822436116803619488018996250983667792927081780121239380691019198006079110754674019854478970855016345074629734428979083477248762447892168255676879347189063344053567159318427952292393440664320554130275921491169049990633002756119528816764270892709499372794426334384288627984717011396154194307678981128018678777227864111311470697888255441106046380670010544810556178716989631062230352353470677005769532232043278496753179804046975949434462911756600727041659848624882472039527751811999083470767627941280542093410818882314139237666076813024593989231018751837851781419810411073943480779495266152087852362555690376734210142410085404606865691847579018088840671574672627939574277497540121541929346468320491610041701417407047923485384782361697950354807069062206408186694233836736739465419692975569460706136695648460700969077369034214158926348646942895409568542964545000378605312760755722524066284450390101341767318568881249875101033498918440081942231279456587431282758541774228728103983924095772435619998642148484671060327281793224189026359951067493417865553919261059447155219750278243275226127904652269832675237962359569199562902248059765938744347610636465723749425098926948049357470365186271584192287643097296021317548594389357543449647191060912500010650083553886197148095090313842167972215859197136786975589028149069292312096699952933977610922473665516834703252499011678212004381138486189456331044498092293901123089371408282781403388616072693846840861543064991415713894975890863705820959178210663843731011868243814993870359556221555087682420608538011369402342680723805796920071123216669237626309117007423385772667969515954848687690666860357343237755428890587040009079895914553539829232145736904859675785102796854145450855587647926020863947624701399788375560710775315241808202864287814219430983200020167037644220800195840639425994348550907715031952962403590889242152122057914693500199116043408035779362548011272604886377656588179899181619857778725918945859679667332402127126617073794375588659801337640167626341487250293787602950274430286691611298592735410577212093225814563057952906308402929742436514630736394190018663452025285078582649898839112932958407448744515924236782872166058976568193356729861222952317084712562149193337281723140309919831006685484581027966492851957809452179648754956538925306560167480883893446535367365517066389394165580568634287124184572817374152757542671081075232954649168012770070466865944066328972105443167244064833185949857256087144131100660399837303760989833735343475985907665257434391037680949948584360230862910263251795862004885000578490011215904692643237575706174230436700088936834594476005104227616228201534072641320582939011275920940435947610606750570831017261135879124495839972617709047435773354802940285091989181969601430806752694193704237945541906508823815265518093278523672880761608178330006277180927273214615747910181613648228554867502380470303983032045593321113825069470708598796470263319363728542708177622387695237165840917891428698591976807504682517908317301471683890450261904365119617494063374040029560422527269091400766205973830449864061014804867260634088560629826595183822648014974999148959353563939526520397857391899764103072646362280834318432877280346281784429920360640009164156018533858356529018235462510936523666803199001342150944143220671097126748152889693055889942828624047627421600173438204142788379258253356599256708631328974944050640011302412407739820715380458613066878228664074965238918013318904637457773250257066688703270945147329391929810786910913492412655577447148441961744907174139860012044431519117873262691975515704522996385488922679011213707473711158519273202226417633849715844136074830899838832573091689905054375048043719795280232813659976878037035561910939901857866554934608523342396588479334900144648068990977818016588795214019333480989014973249468263968495515514748840389364450749824551523815359166395553805202834230466582092589117577687523212091051659400807186130518819418195763240005915561213426563866630075344023514495951948534507050479224489465656134281355359753027519969703667547268018841252579778553184064473466462907418938961705752455184012129450552885434116211782009344470286576808934499119985984216454679948876885783243112284202676857419054817846724128401551146177248709050031877696879401453452432083943884660656693461137299014024086123072615601030332613901045930512740120881279851830764844735429436792788475790064660349904632343177208081003699014861464533969987207948195425990873899386215406836316675443776817557000025652205004149949031508155407654816488374115091144999144273352238590800535478751176647909468368574248553398297718909023169568196159840288362059541758674498043074648366891962050207550601497379279668719921939729116303411691570944453431463544901715897894506516699810001562361412335821684403957400171686607022193947499122275618589973555264830949884859810326355400787394587291147165535065195591175235899797530641517937838229228722768363866061690607402522011844748447636826922337835093626068625687936729206476011709142561118645641145178101224546351961128558681576498470154695817287925022161961413049143970020456524543064791247610246041946133820252923670263618985124481957010759220966337448496732439090760133503407756714730678264719163627351809287477675254628225944391742148022419083529957170374054466767078827234849077190260074187201637594582276682628607181101938396934192180959916813508441266527514346290824765396757144295916820380117381606627226048233043730636311084836985528567523359487787570749433774334604231571338484296833371437369142094455095458421584622438300886408301476220638227054795633217238674909619770929323055836032653525350507448841176632137763029732806415797052541249089099092472588609622383823246156778151321115806453738301430694814370638337000092259967039991677017478093634076586254507508927893595249895363829595165018496382356380926176967855399651248456367331126969764125815026441582178220819982714844652302159886407719538723632273164899591981764170495987102073037120492663650036118465243891020157731093089002616217086488966620134935893647976723429264405497611962536692968018925916624937671112502988251142613594574469875790030454677628821877483469722245056700649275792490464254889857156160697893014998365462541612355540928245944234227673928327745148154112786672241249085538340951185456639189878022179831493042703435517450158241627474770473540168251497361572126385897182646150586949574272043256167125584555331074432132197720691276659316994266021218776735092133902617392766666045820953870175469143639378940073725353832564637998133820161356692246924104916827456836626400257630954058712246600680815970867929711677007130129206015939668941255475958756360698493336677819647582937851661363539483421399369527330260588168079454503862462883653655302967257596537540239775282345099774234501716951131260055721868782965189044612942016461754824484133954807877447498911737278937731609781115613438704324128675343734246330514332996299850678860641726289999771413776655659542596454655531894307623189375544104083575556794330603258721749302407001281976197925249062937288238860989580201374058482906784566256252651051375295420019541532746544728079161390323084165060470323356677987963138626796682626689926289852818735480803046375917795730196633143889612654992116318281764929728466231357265838023387642911904913759121734975931886053640927540974943373222225593948939198842597828934453057297722380991931054516762613474091299395985629799861559520634868611197296489348737524490575204441042050525099426851783666540960056414985597329162852562780203329316943902963181468301301842942529587641979733813710058414236536766059337633133970887966174369978842122848461901490517028314593375492736626724158403281219806516682656130684046725769367533875199197493883454994251001107279608474614402292482945105991739794198585842969430777595957868532589938096179086674197485337105943690873729922576106741439985260901868116620326802658297702135315217971748639047501872889560959692909535514354139976866669599107109322217599358531805337182214404415550128406252595665684226734709405378428922578171224061455044148407039556109648266649680704146289144266890651525175123553941529553354978620300534034697794008686675280813771555616829907056067515741492052410843090828015936164288397758569279563764550962186658856787874291043256183368705969040408525428763664229926926661098134488251897701226270213412632015199906685504382922492231903607005079353109662816052224924196051700196345264899262111219698735963397736566717746743028326708488307635633855754347608696166835422183302096856059461843547064906602249308096339384833756411530212632969312349701033665161944158792038931009084116065717582091322553939061849650137163074184742554659119874825949335719700650472534361668444910557847415666491151931891715892202385863068424309577960090414108304395846318903019253239136540753601997445950832273837575191840286789245028945101616297587913003461502317304754654750859106090945137077390731161817399544128959990183632747920774771732148171047224794211544618043121614283396924780551626227632960205885804559712595720543423956322764475070614469903169850729760844387757468909911344729753510120387452623706023371103304120744567963990761564343661521013292399212688616540700300460430223890128859091907434470778529738638109491919382636920685387707235323865258112301115816332301119037662323961863612078065233863699815081277266498508297926787760733200179902568761416578967336765463818028405451132360843559007378344415835628243625206938825790268089617522892725125187208292980631984320652204861054105187461466922204529097642374917078496346691282160268764548187102243045690405249432650528511990812178595060239720601322178573771014884773715072685586720608427766139589049841164558815312879558305869066016241966102875477739458123525493522728190127089330288535729826441012136561150228669137545523932722879210226605121260077277514857734906554492356549233213874591536854676170270715452484196278983768762594676880373780099447491783934728927252557096969716921935551542925148582986280133655334867738366940567149373755885653562028424603815728192456988654975006277905260489079198840368662400111691831739226833696419321387815995959868782874117970724442050123492979884885205804837307492968940163524001119491877576762333310523065197253009584190409943987177233685782441621472277975808358895921205918600283403502398359625491106002582607518097416532505219400803423891701596389042132390268831577137061133656124820278846797256933955082235377359921245961527110921261622653477005972545353071775520379545075009807510909904521726676090782195055877562143088321129128328482932975900030389209846392471758829555962944474875045490283109952786598346166268100179476695621892573852033306613601208348560031072101429737357642713272384153310300863652846086494792996292433067610466298110289472298533798228162057202195705337731776349034728289756784123063687824533188756912713952394084647243042185134204462627872381680724499613946293184537880388438570547914374269980882699148447287734041497155083757531248186976764136050247977551762621400567458910150077942353817622996774424177256710205554183217927304378939449331467525545680194407068438411257188199265844418122112552755158781690811407071713176761520915930327504916033740996213296803209587860367196042113808978697071699414206840057573092421773869797641793614683190828179261397626296784414628248381312207077386020941527249124368859095096204976902178386240919150973345465980073769127919293891843718033863131683708912604541952210340182342610664895343450261143540621613820135133477723772859425877272461966837848064448766460420517738746618074353546718600543691608191854961617794904633529147456858208609369214525775764995237486237801778436701175761133658587292956204045796477336933922276026041663605913383810079599532891328056921954822662070219475127424163834494691412974582292529062289934022900537506549551009601161685324057617922810056692440698680797751232056230233715539583641007236964400781022279021869448881932233992840985573017454688676354268874027744327127661967529889376731302285570869981230373253906713533850682464724035904296726074076239452716128496388481721372782004411183457252609716139750987196735798848254362842256757102239381276803962059446464589857547708554509472510867927908544324112483311247824290551632047868939510225009728278725857821225326986804414425682098233202477963725597511048728049954537190087641797592705961813377069477916291104424948523365985020619709403760051074695442054889800830219487387188280007048472557777248591179444832631963042713172658302247976187015020634849512914599192211791831751992586549401505652045394205716310474652292737851497150178716014328043661623951637659697179924135899833464565002930636534993110711427792268438060439020264829741271664108796825656054249100144422413545147845493805915021613424073513310920627294557977529781020304465635534076305660269955414106897251241215265260868805240899463526337361579684558394211342140487029340131021321764429223601710672839727505564229154862539637115408999513364722394460160365416179634062031066201327142721240490450013554286512054452126819999015564192847395926876851229045017748879235270796918414968191961614874416162047947074656135655353632385683617171204617401715800177719404918618845888866742929888136939033904183515124212336619329462559003066566036539498948240433867401868458382168510960732719693042349657176144554488594148870150719353558593873228673620943838923047806970359773167307232007823149952943121415309691024847782851854532986689753756946355634894296035716234037446431424814544173305116707579573982248275411747110805887795591118066037571100647319096782407875158760606351252204104292394057592933912215399974468245969102330202195961022111415779084290048082291165437723897093251237715598354506681604483042321316464286677362670233989548035669588726531552277769723578752806926265574719733251525891677111681138234470453979847198420965861709738220793374361915511081951276393930136174889725801891530963402990521492617979861175148306278606449137586400467688617703844720813547900052488341767942644991536145541890338175865065189745797563625940150706772133055248191707424638862537099154820194728047738618608478322558228272910006088372471039297623379314655748951874315519464964902825274861718394546856664004750180756434126679648712919504029265756830232691504867536810558607118750076402051871051927470371398268313310387825361743455480122794917481278624783844870359926546148608668460096636042186111056215551460520603918619078440222618773179423920002551780666616558588402340591744763024922620156783296262875715890856000832121083071854667569878156046305917702309446985361785912334047881493320124528018545697433200494023740549605307355610541050781271824936082329618369183301896779308247993156707070562819917620920628999988779526186276095302915212330520983500189993519393224205820505872762384406749558958826150257622250745590636134504557735976342100803848445250621156374414524765708962326983191911769066205007866192127751999835694485497069447237449837771404428092881880353060331621639102706170373674349760492307498676500723286380338909914032126058291023951559828379196961873898744418582255593652799703590878698478579648624840030356732887765772972994907670711206631417454688871277966008890902473174063864354076215152281894390457661930680500255493354967197832888897768038841787076046422953688361599832625211254501856172080776330517979172208583787376496675636205557717026297451602346988550892013492670751776073584517174644658103593908981051103860003334296342843649823360097139612517030553293821356690560933093950780069390482567150359051305320831324689012309916861503267602828067499003068248634928097109899235750989328296498990240625067645846613874066874167759466571072985406605866477091165831435435894082309751964453526186960439834925558191987941240259104527205587524627210893885314337094096094296050000388844548536761869182072794753453336381194542696772188731609064300780023031189423815497128639265592964329456625859307368945242901884473612797717668614528799543693032513349316598607344624141087111901165366872941744413707922022109213332502129627624119150980860227934600898101246796125636026353881971025998396956528765758654471243815207541969355970551799565466755621757769086567371327362653023228809923152879455543222339528343760232894525103421296055732924505322946978659797862855791298799198776115276421923443532737191669828415604537164646597016310094460767772670236563159840671122425272739575154917810319998942472427709945538850888263278688533983994016300544362493476964680821381575490261330050189128557822764999927973844759856532272385848699156767828838284278236004970460110806121939738426687435435225722052568543885997330202506061413154319366144333079029153435242002942539791433321813070754213463687463612880535891783570882059853178682768016431888844755255400464317550859398286953696351726449426130850503636086502146274344946355523769134194932137489463574561114444894887946146350638059246601868319371903919972227808071641321873859314227133021447094679548990909728726829551792579653362166489567955855436853335119905032916307404151308855526956739447319765880391353236483794178946726552204953708246760052740436504799681609106082738827270134298601442010041684984104650398156059667239734902734646333393171725907246438424883029728220369945974204817822539438621657390662953701957894944105172068664119793174198723485598256869806680534662065258518518090214328400192673058649879291360993609473792542266705403564927518876784667370076154165250687569607721355068251195657219400276539936203206704894404424149483382397318159685305935668598559793053057937907708345011764190237490048479407778360581143971704813315938708189391426516284739111304368075797669762718837900500261360910765410366832725761445563950205181808278832217712775458585309198205974258723377516699414653943411949447393784769442045455895751285176021256740383866063555971392519045423052826812011407657456077971668409510779566067283347007012848976990350151422351014058202983378866888619306866919867071188882853082709841667428323654614630956766198635635299735701239680269819575691760591971642811052504131574904016742484379454663970354296133348065346711550326113438848937290824509242872808259863422252838007697487087089673263671217552008039584340891277159981039403795591801861067977021944911994627889365641436403203478522096847963038617555426998803404640206273265969353932625449112741620590524447056359852264899178015963102856391651381060560151924158533823584968483417815145412100606434809989045315204304749795955588333959088037953209149858943141004878827776927636793523228712701550870663398105251684853738085013169818102910013918072176397020054752744339193037852462397624125474686971089676781213400034700298479695900286276572779012538303681511076109621248059260901990115071435115235596026959411564647172913382236671919919145058537169264720054732096759812300138174297915059807257375174185131993602451258024000264148593667140968168684680459932458956044680650310395210905369022573629931106321521789860450215042322423147779082246529243818238343909775788415546575317776432354447965358225184594253992618934426667299897591036249894140202300612603339646155037872897283048772721247744981398688257630394820944634290961289196900393189306869152738587008881139130137864423075806136978190273939700781499053223125784829365449592411035625236016297848350032561653405952102070105871650822959103667403681431568311286340533158878695696985054380498965297390735748450398132008273748072438262303796755302914314676185307438659611463649345185331356941399298243057724874697657087343973978655728362431726585091948189911029056425453608686640594289619203957678738820226563780594839956577546373160552940119812247171826408513865962049448528099549399054277545795707234050086551319963917754380436708375294170494065441282646649729095840419732763802576710434720230520737908501706009461887700317902094171918885634515760127043744755419758498968827170398383601091749249459006004343422852151609734680966392628672987749429018184026816492517100474260451814396269862590687653177022882423876761391735239388282897751345886496756008865608721266490677992495895173895244816320647372440715491938193025655629611338483983237858564410204588848076108155138307715382355856506585009658237223219549854077010617979807256135342183704009868266745657409094341280966205940193879115363820893529305509315784089883674679611480777762453444465884553213095805613025648618244226883424562585115416411624979605055055680864625571564457678006001560339686058075805843891857432183613632810208789336690016784573922947939582764707754947314624721069642160325673141504042497120122581431080666045181845238943398237883726581775949128992202517385531962990949495224772021267198128364086262754162545350425134586853786399812542173516832692480852080533110858445838074533847840304628219131297246440129702104689626606139500829161748668802749292410250024026969326388931924534945464235070733781300891720596676314511380379836864406286501235357488069337698097317452347373453934061410867233364219755152009218764622253992019851847770474739261897662030464271140012389800907425432708268605245187500420399227981664213870792214063140438832007517303427031539637816922486349332338152069875095382134054926181571682468174744289488733079684955420601964813072933107206459943250687187140598684943664098471876955629902100992035409408632563467275004849354624439153714020477078828097510430524915920889049906531581942937626547737698411523246807794224866066599376057352383162077309318717113078090517942704459315139402388704931651470569008319448493653203443913007853561364784175274935860970805066704513802798730883072783212955058139583977597279845532335344041196022932426168017775123478248820500398312338528821681233314803207619138394601402615712549193471290804943047513137441057591199132611420397851844132246052737650300095577446521703963714392528208031322277211076117440537206756159756918194298972849660361186571533933639071662151965560045956409720825094549448177285135506483327070787723950004271306626606193937317960633182901732286066869289581895545975089562972597879387967008767746093857655085230635496734218495998947094947313394908160779074714189816843330806650168779858788201341386381611131246421401252485536351449893758846382018799208783138989512042033230987638216440464677774227652743021481604788949707330066100221069512089413882249391389048679579674100159041510964348161359738171866798715229471090570758752142105643600162684114915458074072367373053388489616420638498505483753005881291084599688095574960111205833524342845692669955035205549800532130316287527423290202216108459256324053637253984482360368231875923885843097567955226562139310968667728633972887004898932265480499553701748346787566561642245817756311715595728537440916062040127583206387663467409959353697927916917635761417394835208618618460748656117734075020141508125058157668985523258983857466700086760713480179723027117429491599085598908332681570817357732020200372725751045508705719824644185452135185070785338877689667121335693307104015642890849934593748054967226776229089246334162933198075995622934274617238178161522697129778868910543262675585991600913807859263827717481534575055513683725763835787437600671722650222402543369367171568544689090993353144892170330593859677733429763730409203225853808924535297717518635600744132548269678232655252321718777329784033698239671288850774845926851953126149554050313215558409159408265919120805374251356707090035711341676741408580693827691642582868330110566156267213317237556184072704564725669718116883801121254778838810476585701198618596224502631864537907782869785203417810268430649601120385866244332153204994089547213094527911431457020216888310218732768951413132222634605818334421081392313480085496635709232350395859316126674012339916706035762351403254743418914591315915039752686877584897151891353027894095949259882467142845191899102738975594873972657377153520131371660145201166200554168956792151707451485948923596235574670600356525156570669639505253724099673401469416821022758787008141901329751257985353499102070625094373370018394212361591439678923373259378863053288368452437118244118649458462090029187826258427266483815359620853275751910516546903129237050726616771551933950777428856363049224559876009855570022661930545067678761378256282555969045665870480562960040453912354969677423087507422786898927358090382068722959747558696459209493231014750643061684490427405836529660045677121475799700654480185209023701798490634957823749002673428602141154410828953362698449200956199145011380962603792199022452353934178127773694668700921634483504898044280432443700338529624727373458286778389115472766888661858258734575509652750178650928204843706043180349633023873578521919957133218142995977512410509582016634495916723147760388500633865457968406285722761487484329986305397624856867222512744138324723052475214275249524891185371056167840004637553086590857586874075269782584681837414277252979783010870514496293479929931831041449613624799692261284504738409213982457177768787200039380607096333384447590781936418396268583805732565833150015796732581663082001186387993658827860527572841708371278962188162120479775314760943877828710266423004588703154445668308199023606621816189809282778133931334351285480451948523487868282476390635630751340809609223367950790775001026696115472811893939086896379916003537049282219163288561299417201663413485765806523820743863621366670935265562692410601120859798172346062544272994295341571580293023785425264605589557381394026489941439479835711612478018588229259989440826495220304420935350237501608496158123917761306890033882161230475266841578371996932660019722321968961117079471531530989222457894251407585034947041165194171519101525841061625808937528706993284540145158396226665264261208211754963910336156289208728795670234208508746168580864156359016673472890619042257154492407532240865443715284074786727943364943542556787274539904225248153329686067859650973841418225560988570262157551372518533671769352462989791049708442539494225538920564023811371085858907351014069290471702438904763766514317682052726822958119504791905045604615476703963193862055404490520311482707258713089661126823005908144330487654682067568926540215511176334309175053670639696941862595400706225453310812718644478519101863995673069185489380877773752499633905363643596798128413208397812101216348940015106839345226042447971639660055440114472503853764323423769579852304284390447973333005103479034002845198809711608742788835320460386065240514199849133154122794815984685859557542255678809121575245293689448859634142742286774117851342449369644520385144144221456594770726979179048812959651538719125429192442190934223683064169058367759848022806146980255155047431031795267505364645765381863387402414142411292848641515522369917806289374878741112127941602281136514584210375214615796706265540196022617667291329036481582776004151372828093520004073777826103695271269513998300063371551195558962253909620725563986906558319309904434053591808892348142951602018781646541045752608270676854473266034308499206539693082667869726596497627004950840206452856654523741120698722487553894530596737606083587255429021684602323486329656061608776465765114016176350119044634629856753226368014467253653732008539670811505282429474504014408927167294427264876618670231526536189401554863938825157907078017711121479667348740945263090672257849462769557675840194058043935234311314994446212258372764496526737401785975830375781141321243337085648847192547777543229626390704850426626170159434333818575781647442900895821955795902304877298665768432325519499700112418101570078506812046723951622989276359087181206324450283290162899163471677671601403208923004714468768799621582679727997662120284649904635995194613191200064923093665059711800589748570431091123287146079675150593613306843618536452160439694792517900754672172055991434010058546220280597706459528743333168277717436216966684892099544902167851517150175905860609507984923289235203314750244036763168637994063097858934077667861268890512179049344751035538396463177333348374553404151623445447382030816202130275793785940795779925221082747612011810321166969838079440826521932692463302356135344057956224139857252973352314424973821559713220451980955159984267561530506265467824516514556074318531868723622664842000200170432104039791986532706074897312256597992177757547491092709612486903951690482489803789776058928461685689237807421241909970698813725835470381233585992569135358540936516483284090832521266471612030142283275860873990243119937132445590068179199521079087802786709601100003698807490330718892486579097034090696542599305049949299476239041634259573482046598053372293778433523112412363231154164162680186188647495481922462351034054325958457226688674776962253730770424390145528985083715507384973118522728158140804174849239559676109706298186077158245717070346650707817796350103808042009979556218173803902627717582098199832977491054469553889885016405331781891815663937554256010724753623766856864078529614839330397865734006069138276767291232735691409832650838517724613870454541088224044125833437849173928434211116280152382575017428629782021910677043533352699102600768161323001717835832434341265858369383015798845823183945302704285826373066399393385270009270827738272428288177363204997718183505803793355861033133288216682410836293176675437608951400978033696990600931874038103358921621465265471328858604276210258256203851735044213213921684379745329167624127132457876568029376671183606349307344133936613872804516320288133118092787036582374021143916670200015418040677643690072053872506661570877757126367120301142438651237451434453529916916764487929889139182098198232642359783279528165045101483057148212286943336449436854120638147166899873964603446737128675592876725244587556842570090136344060987998471364709679750624780727349433624307733384542297487256860753185727942944409744158026709278707530164704428796895465257459255432457819581350625996861904308060125270858329810709891147546698619741247530527360582943901015302270851574267776711467181706930942540147581473338255244298394626672642742640677405855641817951473740800519971968638293336264059702257270450202616216335009276952725742487511380861551940842783431050279426664532709145300343638147488395167951339681020539188293314820179966452363320736147753323501288398429005533033982343142757933576500408242050251192807696262488129884845442083673588008893261459488516838534283405597730237796739670097603388630859444068879227574880399700265316977586153274549290823796488402380728224439668540187974087997690785296937930422701963954656139590760540311603096757747976871507746381078407443029060146044521012036953593639372251963619050681622873271311501120214439090439705117135789186509544029738704479201185295398639075551943663119499077256425839103889043861983106305648554630777015413129119869954962188467141430103501460937422967388623849230349821284281037569037847964211561318924970301447158332356760136305002811124124168855164536146030817954291862226506266638240765396252656037726200910119977974090430024034852188507065593838888584831728218380790931055731943375470095836330174162817971867520939592643316641421005309508503055154994038671223661696029104067584953124704086479940182182302220753209311169563341014751027318227012298266903140339396123153909763060224370653803727093085483355328382844278541853407382501246280139104470735964674466530074509021936790345463567654978677975342170849756476464412439739366733872833409645575641550709829035545082302649397101501087103769369504164758376238650401755964158452208162194440509348850639115691932237649005626074330987699540136091123899260801062025042041515197380215237473964466305744366980765933402087170553342520675039112023658412860956700587665740519180114559541060583915366425931104739341684132733775684021045423654665625616918680577052240394771086193844925486236087757779072286055584205452886998576787460204556221240029459484466703775689771483259467788840199393598333119974104691660228599805838421272833933326473688910856476786108900325824768359474340239494096801698929654125339802743706195717818295623959729840365422491277789800274520471622640007954597305309171842158538317442590440832373469025608215248661979152268105527223739881158788391020634398293699482467114179899444726252653233109845954452115985291420328317844455177819396489975209133272054532456474689120938725874635461500757866365754778541484483179093055727087256882221341634058186264396370342432389433467154063345089896538522570720526151623452788126295458107431305840231925866110126582744564329589179577206283501902628549126813503776590759083186187287006854249499004056394508460289217937389280969533298638362317270319048710076590112219495937917332860591723577131933972626394889672570006796082546935072345367643079922548007105243060236615131510809546695443685136608454214349258754531429744626528179623715705143998600623548996309504855673038022329101737532215596947795171295045173447077263810150437418430563586592706318241637585565315418634430987686760129936815148768836962677748207422871255892688793857578400773116889324032495664278597158122624627273655694706946237492710364594689709230752493359608346746473282460132272576882902807700111687843511032979148713619634274392856268589287243561006556579679795972250080844339529497105707293617363217287423083477756904758677273816208816421139604538625314215607457375431921975812112231635785195315151998982279604430064654961201762994434153831839103729792287064075900211132917644217694147916876645856380267980286907989477546824864302689154381026027480439039483584040752810325513215297774348139466086593546806138352229400082568461283866283512410701575819509467838054226138238013427082641351731988573212036469017137877931085967246073541189735080716643276095437387722778503674734260682928643255692114093098508888485478946299816099500632674838675424184555996259916980567719576860508505022177539243412513838391307317255602234980164164753638536262013591060862458748407220530018124717417603015386961541822093757201352490169009203159595038838796254941782915164376871663496427202298008918520756760493554537967829632673406522036339386562764832622725311332802317484491724015466596558966385143033478835151513590406021430803660463334351964398558765308719700493045289188057554119262627475787996376357788628638436794953197268162284295367415527893359292459142967740843441136946656173667669286765437413934552905862516754479443958146544321516209162731870879642487492095416442544901712511778424591533783391008326932911219456191775226560153071174995198625913638503687698136243166292576410936153785840526775867605176500212889424857713718581888763921363731456197142209149382583553641194473997393512343541835692791986329083568801902479379154656822056493711742942316815789307539863800253284602178199007712225268876855664952037661657874047114611369671098739742762458753591129898952114368507492326229155014122545777060254163710181436425950252418677138907441814067774376915470328395869905635075083306626115099790785416044181173127737172408445323223635389925474066209311762546903855721127290622423457322941126778351382544866340970878887220378194729133476392817937905683167457238937009440131558421129690668047457958323132115439909392867495521874493735138533169860919215415197906062498875361567325021968407639834309043298687224077025636368375707528713386948950070020690419667061144480539286502740111759994985798144671460095534291064103542388473465863810789745399551592824100795866153450892812256051443315792285751421548936990975677572778921870435499694647986890789165061482163613497591393876170673700247402281652038493145928235530636366233726588967709045453151591607133577063105137430095692397215052635617251522584694356021413008381134058908272211096076423377099237871636706034526990337523356787003008061390109860247266552104330194925170990123863514718867464785254818057912466536289134613344128770755113947323030343902813751317219105644913541521676836347878051327876786867348296317562755024606005124818964171064920632334591209806302247830518526487684733309498923772533233602379955854943949862683306839343098480515825275338414372507202647377525242377740046236187958713651974037222800687264675644853919552968859886318886371268071808490878599142013784713396986542246847325551416868413949642695516470671432016919679223493497110648552200422990390045924695182149409026815511496229724244875195676082005714125146849761857657514108223964202670293780328812104206252065173546984386266324580878240004200879722373469875925430947815809388452007541818676043406575865225178227340486232473473670149077483799827699900131273421499955083008070091287263418746929047459659793778658112056202427381036272029278850937052523309531255603097425053872026454767559832018012056940018721378307747889082423992469023843420993182535398395501180344710567573593091150424779014096010007821413293660866070580554744319243232529675138937232006955601577876118507158785497181620468769763725150555413986631586233917439073830819315355826053363882837172937461171218208536853410245335389344466590872681772839167973152494744531868545532751076774863655058687004907713113773887227335236827416959773425381028148202942371608832456763623221726325609621301647241074903966912502761308682119897835896906669498644936758205608580951768097232018378237756474348139420160701626560268475986721703453480627366271207581067825163889758015782498343257908602901658287115695642178058935863044154075361676933171824790504750479363378648895265778189695587083029974968655551218326491232993978239092448092121522496702995576172411720756724905888005346898578797313906647968261902015277216430130167534777885884532546456873375895084699649233572011626571832834834708025819089851127668124813056918551213478369075168061684033057462269276419212497615027267448621713480063664750453326624408000359623554370438481611080068812020350586845462634996966045779469411955829566553737111990303101020060682438578540949115331787018537714263508723164032861114360609903090861863677203800713914131360132012518901149350850503530553251621017107036758180044436582073419184477759521461761277700183904419832032774362518382002794185193630486035837325883607024963351212366216266073835916312092184091503023710727209659735001516470757633996522515927935388198566250189153665430408569445052539221041822867285549294424482503170281012257671894171804162383471811334216250913595524593626591198182497805151096763976364963463730801072656973147639751321261911613342430536539502052359770512677278683531200584768777727873050197304664948091779042806170356848672871422669513257129638169331887881295848448970347001043038221079656937363054993749440087163139767743397072100386165235747004636214391083448302359300599683423792756645714962449216314841391566815301094970619341838199441970561580475894769024429380066007800893362887312666610702245464726794077065133447046923998953431980304940070207400948176250740138194092612606340553419408314286402059465447211626837585423730265912426356857590375803800859102015790866790276198316909347684523270138295785254125519750096663873477919633503125762260243517172384492659847338551434466724025182169370530844353131315253373471120451282179081993353610570684687428693419674658932206313412804189626786921159918787576631039163044426517348717669177465532406161666418346249292864034293412421228851006772062222322225611819800535108133652481246418145493055680418684168695682583985575095473691780914175151997824929019108181106600960757308910955409721868585023676924881208246353934635499202556202327480741914312851219050245768326047993418308519535215980979416206971642725066072141583400169177614770364718736513149102377646109415446920070574661111720411883896680492666431393550277744608573424931566529528230269791323198446217957354542847798232591009110660510952886848968609996141449959673593636883203933884220232296957951868946867653013934745663774470081606336769142749308419135117822958421345752280010806387580846726709090204964385817093964406875836105944737849619729857988753705760560407561964264474426568935883907049234411576371290009954659624583183830534654007158120999108349872684914958403890774938716779171137841701433995188840299326699575651990362594370529955038311707370204795274563588743660689450113192677796918968260710458006418173320302369746488707697970042046207864380614379676760369658776632254543452384918700819467986418846526060595062780070612121490733424457689989845941575192903115485919162711910593583408861569565894349783895517715323992621512259829428864449458851575010930112617736100226084558137690441932470904628339697460887527916232496783760450640676739990045498628113599530495011360823323091168044393016794822871372831414536625732709179070150235707382099608902120575042577621949229417735957706578760652761370340970787097194284561998505586159913516320814084078183525385745742190711145499479777009128451500619655519002919462877374585022041677085361136206229142066231590018318223093169142327912899384262695991690083008399453953228818765140014726709560298468370330348537807289662583471246192718074852210934909483346142393138562816733595188691552448291975313461920760378460829270656305331307974767707247263085143806023294097257794513709831919481953810571152866130131158525145318077411414018801123763409683725961970323945371790736293206505851329936669656442590301553832419865052056357032626235039858116992790977591716841798319980231813349594875946146180424722596821884215271181997613993199535147458686859155758591476480761745616249460687200728484354921489742397672420172448316594049201991411348019537083271698616512670376432497830967559915090213741983387340331676736155498347793632792711522884977014339483017367562771484656817608313005185674415976108881173780574364799712151990139795801295268455202629856880734331550731066699257211420015576276645974134447237474828720014475845852658802019819635956195525579377526046880993186098584340496210268701178513488384890019680498192757238562651389100248867683779901757545747189398014461191292989628216120534819897828955462879173507198625690919180736595358572047205745958165054261743803056059840775119145219532357460646105117530433607833170383241017787649808233454242238005547442050722778065138938389056945574848058948125351559754444153965809764819544460489838565456378084355139435540101817522469756430765616941124521702982592343495553222185520683159477158154578052830935165231332879645317862429731538607658549825861049605170235687747416152454218635390836665055750061687507835603196143663770622574580180811732342002222452199576967065036494055221844418384400039283590472042279270890199347357221233740055627381382252403778357828010658597931659152476686834283733485325390216882924662397240381517047326139276432670633752824302031463173032168863378514211689493845355361697663629671475125337690623875759052135052339314838188756902091051165440851971587093392385297143012116569335159622416883281749683579987204262266042191248401236995013205798920310664346469670692567431509694535796515507951832608100710526468006874044423209326575961661774509736684811061740204683830595718383490495793950480877828920388748819171332616164195317376253982975428069417302444198365582089424435226173883176770518846023413626182352130088091593782898191114376411524987480777677305134421822622708537824130246710002529940268124242422406745972306479422813130288740289889012684508054978588840547243690178803988152594616028632308431802383449464527401164219478955708289127633542961739450550421216999932969760714441652474859590749260512831027306614412229247317006815716138900051725511090361463157831491707868037987211748989777117075512230484995142941457402405511654757241654138643001445158043066491493309055984268886623543082323476679284796189470377146417754640185622448369895977606790171453350692193818365866684383365880208791317961984367649749344521929809054394839516969130241274736289273820259527374738101974422799191905521310480539990746124638943887742183115858301424244509691206898553624653680651997003657405098890850284016902885168069852926360029106342421367794917584778322994456260068991597606043255600223921723902314844304786280521605638958920191874552609413576970563189704244745829739422808196324987351330441696464265125140096572631611343629653091576569104591937709316263663346115303258673064081119460708735498028944349992268162784283023179785708507980308885048853357973937711207303219079467612477564760209269757245489067366756249345258423799521349667041904250931869548309794624531436721646794415094905211069841942370815841530938395201256321668398062223121588034037326130070431370562038722470711021462797476165961383408401147258132462531597593105779616910516852860337697968762407949721356383460439661448469040363109391645344468918316803801353398693245140707916351659022717053795237027332516317009671642466041828926510249503926461559667382961686079841633969429480814774175421416991344735902081955900448312969656509304766921816164560228684161836035624520309292335971439882316736057166503644390743756152236225176507473483642338854727289026416169042137869642494285636329566857177038758392515022279596866061030922060963845236705047912261826103691347790918907495076197067584797647944991965927038115303991339938299482233694435217667861073185650053655010298311592802715822497219428020631902902668305168453618555479945601713004214740885897477845739006558222272005870099955014105239606136150819681473216221235822128993038709181772566130738294153767218692877524788442670755371450546354575298554706145909030083765976428989282855113715775626449469827387882541895453429399292773118492519824265891176521856337273647128017297867672231834912320901697716633092198714605786092085938949541817541646944931125108734356526494226926301469020396827466968127345678465220247699012311213006170656594884037486948711265379037434029249543056647976192208556835072778353750888751816529075097840393170064046905489722801199741520672336348334588451686027809944543057553883086791450561186833537534915631711997691575875837097789515304468139688537094162434215852744532224299964188872152919994765332627478076298387910965684226718915588721624031253525270659920861169267651778285012457945076202097147647651748144818017671630083645386582693487736277293670820826064782365139804396129872066173702091402027234025651358126836732427671639432739338884364802587132241202454526722702878014133908899107681056700626359923022425901798676520113381882822211896033047122469801437947972971077149638370220384791567369190357661730558845103189472144709190606578687501362668930482626919589981514965018836383097459129195026439141469797984167561333602272450214521896396734124048515783361915508520719426378850843452594301589862354639994583488602779333211571084151879900424963019591644888370468556845491878248648451541791926146833078490563435065224337325735666150275694171261060873842816292554843920880980159892455950694398917804624525430770836858929140872593222999527700955744952854194466290139218731897463069043316632256065203438427225472637986666615240769444486077362977303057969689977096845438763256625752936728962027893935379757831767326461011966521519704001992723646149167484901913081407640658659940004996285280856888710039758835728922625018491105518362688442313765099896497193778500940919475936485681311324482868772782590166310503980445934580480034453637353108373193905351464367876356168682536899960248493959775886355907261356704146533159462241969775647981054946550944181826905278306952947724366294583742519103230362317582206668974417774828152850365799928570236793753791043953733866738516608709799256618549356368481303787549608448010560537731289507621180240623215345199164104564491919164516349549356731735143312570016976979742735677977526540785052079729660505847573808635340420683543008769566286747332880533070732091520043415528612496141650384453200947947686123221006245660959803255080561733982434123426014880853356785801036108631212789435378936749648512470734715189985732065499426357529175021218126121604046719770036581706807635097417628718465591189942044691428816880038977428533247900455077892332762716784963631431124644988372134401508767943214043364711518389440743693893571259279920847589574130402702818109955267366197438698339353355328855249243704681496062165631203040573498709831500687278792760578703132088766854160453106816535875623285047266323307834820818055261481296249735822821504509236338864040554531380678263529443315530409592035138856733861207070344812137327046545777267567546232749420931987575845240147446357231160472016028375579291573149629941582350570883745802942180241530224791810275358541135735523297156695601074733126343939828476446457010259494129640265771818268753376427971902007898295210460000917359939972603376401089521121357793896397204522682309450934557147391945094857026472572381136462776415101092061906490326101367238621681521412168271109467588945462126258857230341078572701672986378597258111527902094542567069874082321711542302554806231042408830760733092940657367381267458252911823292809570552026138107431085379424289259326872488884648317344925936045295689696647177829011502949905366986731299654958628790539201214145499395075220088114891872430793675782320697583988349993959874570081421164450403972567961107798058345256364847628156383645961237169493166007450447520063159526601672386455337745300972357350271737998394380468178064029792817284250383515694127227390602239514840582019944368305313065568681273328704312528563354945266804764002639072837927697953963833932051959045549463036002671373011182598782316633306417587368154211242487077132693701103908359307788583767679059109202111902570251886848982469520903558837198762721122182365975978090574165290574707326976810260750016593787642089912946669894559792862387139667943893374495446974076081083662385680125994914436187056545552996906239912767409846090188752728719778286027718409005051705660363087871166069890386222368612678912818811261188307672236759989159076885246398633151225436875003001921641064870297944329543082141899578576084125671438734640219626644447970014451011715931483460000729949261389927487420812373665057450276170863143550426922850515102491610570603565607379406526771177095172620326311644455620092173821460025725603388535183667352525197012792512738204576966428750899587593225295349044718418232366860938884382144265538297196473360637288012611283375418709836364798936983554034573369118272453692473458660926092182907715385902980561219347899909422465979881895003688700424612710019708774989332619016330022189122960252609153273730048964536601693564246800074337211992147280428030012294040671032620063718760799207392692994055410200276410232084184313301504954479172210923934223087098477732114439065313155309149573340649501067684676945966912348266081354455659607298562502500436350210847567415276009453855021986703961216276977080385095946572770040233514755888746891797779117170343922041413572254950364792489343053814265323425754834100802640506577886548671928112499658725952099433764112311062366034462750683377694329987095078168369174116775127173261637362452085029233677047337232711976130718524233758855323495039416383441080792753751954667105880046556435828293759071697617934175792579579396345559796567653725031750410131930337228454681832066254561098656968344951151779375820732456238476984841692337489835514064769945369120894103410423687109107993068984996633819269417007500911927284079635257118632450798110820500294037389052483182096212758912834795210451731085767775275763219544600955942194918365240230159802256462552852960114024178611577682824778340582335367003546092654303286632090658333732883249083476390376389775295362986165772999334467724197294657996757678095019576294105083803109131992967879523816879989947990279593223229517370998200128755353184104909753228194382940650228990216476617167231686151128027138000922230499719523678418213073674947291638558288326574707994088407887025357433765595182269030253870212588418749395977110056409767573709743333708025454404594720392979750986198249632956419167267528732365389617623947295291683605649156665151641556739782030682310811242581162100306770958398477886516302750509129787060725640363018047666429573167295822671265450496881561665379775940084482437898796171375044080659923288497825938241842451797153885260652472604387954070040971083797853534773845856998873288910415860576264044356158763375880220804410131566715602663916837473055718341523497789879324094149267878564737202503498351468936202976318021116454178275630482441528465379684847791190141660227959519031178098100744345300385263957916876248655354532601680896293005164374850974996187741434006316274867519211625339792775442202267260381636222369080979429813892398902511022695868175774886480525897446323042135849202430793052176220533522434805310193269745945802210790203553973754454252345295448204092618268845602680250959043058211469883850258204084302874083610625731884136868454068097661188979971237134505972369073692358740261934487722283672021189615017843486701111052095343224007735975677546074798474243537331099377531028360040131192781867110896264012313472233098513791659804718827583836774223599972002845045898286011943261192186736081320628306585930272986839938749779543537352731553789567330329324959502086827261786306271472815228083811175708871887593363647099828764677786014358050034008819268070758698613703779665133027003206165872168925300044097280742342734969602767090069209778368882037007861624268890336527982698448855543690658681528713672956627996579743820597050068460591324278438488573715320990586959735654351956116413546782466113885419758246358587703795347705684651436623331957823698222484395184154696678971596953066826727562196999828932658347560767943263275942156454587774642424452418241830878159189172103330087685886074839349848521522831147888024230724561029438364832210607779344114877164588033322007416264233686493500300286294281731335954844079394881454738761871151801194888102248448198483439025670513345681817562273586754689216676275799822082341368842897987156883695906010725335577417505110269145518001790231737762580873212320432677656436626004519131221534808003724563389390996870038159440058362287634136051441000893453043549405046954809395907571910368036550172749733925673498594417272203957900112226645115328478534427546530982610894581382497756901772729494973592421592358977590480191999664650341576411679530922425886305160401151267873711572327433188987134958678089150086302782902655441901652747526617799512083510759599740784713481859995866314650054569001423040331888059298646244377302133982059684944444307824440508892095313554616779860323431562288469684168287113929458160841653058682981408454714791234661371822010450100713663752251879403113197888562392877680202851167657385035612006004451971582403309189311386807028761355781493243421773360969420229796348110472295314034174928088471777710245140832966174243817811762004502823099926438154296086569940404779969888388880600684688691178903422265337974312953829555988829235459839751610005628891902728517430276282651532116379080875739349579606198886308955888740842413879629483643809440999353021153268719899237390448467625129119121104928091577900032572520839917403141271180502435693571004014071684558280004599486925012054340537033984264175864871996948297931095349580134851636978431059539546320193341905155098883787439384830765901979101944056692394198993452398703643293917341593291479917427716583356562648269168866245654726096372463162478737124477844318548822115350193149427282722130321373853386732873937474093459082958815223728037701831487067262219970090355960858547668431922345665233106598226263407365707042690556585582955980952150355437501836793413710959911272904269997224718869252959699968032868708999834565532644718955097975164927490473938238075121328692118361529077219437534175461687307260558113120159838885555877922995131557065718757071320516023562496973452716102780817015583763108127315970707584373405470396734942764473057209027241028312707341058953930762313716499984530967023720575134950697129115142507304391632326953681453996745307407749919455913332634013201353482743285924054337111720793712045872969861867834322814769344340186271259141065711862564577996594539062131922541564818758698576586261707886842164616262047581801641987524293017847261417967231605886410225610565396671527375328151341768510216572320176596424611439222729442804632856798897900886591900838602198200534557274442327886543702590262112450790991301496163792659522170037060958954756740914074353022479945087581646134838770690283635743959573331152454380406898760366552337471434455106311833401450312814608388653148943633887086147315540497392730106385340366978782363366305454427337879087964810937282904586077294995027816021887475363965257558813445331076798208506666995791616732555057248828934740176441924359738266213480259516201194974707134093670985470607182228761251237611041244901969530344013362467202988522787154960768075047575050797231399580253386665659358544581120020070491153137636063410338724886409729947349942223000837639996527712234396454052797705913198321312156707974336651318822884577705639072718205808932787212725665993346052101233595279162369883636491457718943604594274597033036104330922832191884655875269233559038029738041445155736994276734834996805352198002535403284747502821685472758305725827935543764396702663007467425926772322082158760722182698565227292984031628643041906899353551258702234041769421354816372593104875321475725267133310035992198315720883918072329041811255340143339128176779907478553557234390582416271428217447907466675772943660575623894055946158860915311352577372252357173430080580951605495346667624909020745165810223224548132896692414710656943959963951559660466348908005930586193556525051078229513297830192612012301537377355728034336458946858445102173190398364494982839714587542079965238081909405999670122829764547335274174329230439285183098400306767702862273714255878684840157420460337858912217002062046263226490503214247562755577432476876322007811993465170629802744574094963770501517621461238807721112462618852485059815064112844706208509780769741526960426472239552434133418048862937054974651827801847321529229370917036611138729641967031383063592544698890499822615670458584798813986188142983135081848080172531484156496043274406496885658451303784624537060950165697376311748783157370661095143512032372674640264413027354307332078911689161423702779284769977525074712964024089950364151163392998334225059787582368277934728870702735566585546005874341661207678984022410040315162419625752530052474249604785551243971260274594172713427886649871057822618961893571223585395859001813692411734599093501298972480094491606296956556116960039806666078916523619121909272561719275602873523676540258354151104447548669310636641487262519800255019522086380173230971085573360792876399745988390940742359976220421499552391026989384977970864726455705138451783586896695212686090630749640215398039937749722859008419459919012311071713246879153286053313681652333998999434517076470564968630418418334970600594518716328901916454823175665707066760963050170942481452494893132242600953716503229697288467131524584034983605862559102915425635782301974777530068782513087473519484278711375408262827397230296864200379811653352944073381936176397759216684293570905488358476925922983153871547108921077243178719940497789190816331154592734121531586159190052560869255036711275031513550991477434475548289549856053663657087682763497762806242884839003781788210261660354572207136457800665719611090299082695814941489245076016422671229429806109234880321068826977603192183248159782049831132919247230122868608474853006803582652991790264852407396971664256543788828776581965312347071483845107423607726521339212035392900867009354914920247885767037468652050680296934142330717041746009824241471731435605682701509689502299917804346941589947138183313770385051607573219749612387438338911834525251317355117161426476691570381099339538827813011912116189078477401518049837213837042976110951651609268866750069785827486026294667722217810332355590788070237471484900095746520260466552123826501365488488902857952782866773319564650610711340041543053915324545057248325437358324581290266491477190695606436351785818621217724821939402847724809167152275207568750766104877931523948267645498349900497429296356812162256177149372420800537579501859026099733021054330257970291355611938637475644779227709855222508025197705480128094811061494076338889441951913446578314483531139992090944566121632226713506197761926071091125050913156808856182132546365642842288191926385209063344777331896230502894138311675197545005406552645418875647304328190885249137499869236603132365689266235507181165233369222867262783515880553029693698048436963620416092151326834246610891222600979969708877556515698277987245648890677651000549606369503336919807572170705954167456633915987335043796706564263716900965549863714469084130112826763194655442678318624176579824027695057893503120490815909933146798094527822675019359169710511560430381350588784716410137388202453489286277527131731776671312185536116617313593983956211058185101140027560071272726096653468318643439520019725710312619627597603347151678869276529434495662657507524700702099921994483938564886523667714848588738986981873663999237510612957446718152456734129533431619145123170745891296316379694872775652767014727226007254218699349734766364791635759455568937603705934336944235256762845744934182896339199840809437652249278975314210480566880552383117553191236149717768457129043097705899898364227828797287020015588906882435843451104264078096580879984383677902620253770824329540803475631322952406307179008792135224812020786758477912495246050447087505058475860349046595136517708867798729867031774850907553035952055186200007017794636771150150192358258416779983401501245575907492802474897008675102279059236782434715403634707086314131292378421438007015633405490571879760610105919105996202358778158230696329414912997859767611326591267475084083169478398904568546401024825107816867550499851532263128302158699438443158813327240771546028012173116913022390801188492019609732937077045084713495879669948369648692832597677241835506018970355051092123042669875424987293218481294337129857478853687702332639013123051132528146833912573754776643081405699666551640844042640461310086626869198823172180912098146560891086048018236927843914180261173945760785125398487835678324740510322402725766586508098025614015876917456452639395580905132524427671656112056393813766095418132150489030513474993345410884076708892001869619948939198690795017869646325745649384490271623735457853201756348863435390334883225877315537198299861522651963806461863540064459388840153919052619696853574669794527464189659475142912699843642296399828544727460223323103543929258410483251494763068245124725009355871452691460848054785107021463378041086820788385362094641034069193127371173253609193371325054499730717712969950624443900125189695650357232605558488896772867766633599737151439041003273095789345021302624165278553725053176161251927790853392456904381948460871133148733754231682942138604168947597026942750204925818683492170712483109221103063636624259816897160372703086145789590163631809286493837987968370158310825560211380544202398135984582101957600696759159046036709065353507099454690862587482309686225957632093818271463819935382686123329657050082190878889041661247807951118284008564920500749023561471499486837872780837449530618889225559045805638319801590029403192971260430057306384511804984383930163203229395351995293439506826672829672445045487963334908823077539484068205874281766237927319757283838316649720453016397324774779892757073054365177675677534708702444722650493463774014006808242191582517122157879940126285837807252990143630449569937275130339610245701871792006218236720883287210187197897565451253256884542265092121237696725652916330423010924087669276877628656474616128218764135546563673070473092018521539687923777287449248895775687400786240294861190537693918022291341244661383584104780995097700696662030500409997361203561773020390700286085623020237189716474416651272164823625738168272744505732146737921836358717456332151751136185962857925745549650113459458904542432184741479324748050356927165715590201354470658146815155622516206251503882205110219015625445271101714249039482138763946476596254659109474727839798123779876701245487960418178844610208982208536822142864917234978606999692983293210630724300536009321753669064111164011167481291791179058244689896207723282321871085213496552773762307968434896862928691671925465691793103846131941263664514024226679425069346068584910995723725033991503911934163400255957360944093893189994519765622429015259924012474403471412820826187269505823283677652035203258166746316576986742677375967186316848308993979827817326456769602468724334557531461805001734765845409455698753544247153752413569262790669691010946847854743088260957235923502358671875025363201384115193699238261749244216633432373388271263836514978145302628853841178092479144753977699709708357777715088136104507429866758877922976116299545066751385477368027281151097094045437897293874642627906124237418966117109245386554127242138879045098054574200047902906279961795735637182459253889282717632443389480724628866303533870927913748581277717501265100305839126641251271951480595056326319183023840533755009269596364929126675496076551672019503352476292901427404615330992366525919617823446127857240286292405263436132342480256902757857516991111736272332664277912376632093018539607021186203069722390918474385456290626575531415346706066646145942135071851937819488819901248993092278057714845117285720458710079750589941337214307650924047418467391894385637923967995743453652945029207789119052516682975513023457188595534803896134038622014820092172412434269785429426426242668924671427206571865808444381490195168834598902521130710345754944315743953254610053912113929996258754851518237978374645807512837598844016479042282217313074109743989914119645286615128785643630322871592406292187177077956068753042548752788631262874811006424285427643284230470447983048422483417975811440653519157291694184380338520289031534292868984305329418081484794983393300552991924699037415146547637699821399323290318504508690959577481296013007187994101997072205780387140775563084630399595812950724838480951477385519277675331424712731924078232336137477835481439074963576333215882552387327831917103246337216328088237101060381582200278026571854569797054000644049334786261097098642271597325471908593402294116775394413865998385559956628475235831318130305257083670294490143246892242498702560019921863380795704025168227548405541345638669834395468703459622271676897113689995700173768771704397458419173841118011107427635650255500108320396002481829494347333290043494165828922698040987833333540459890971909487217682345450815006381075651170444728224580269628557244357811080082126051278613745281642875980629680609608317614434930830248282326613001250810365497921640376815984998559508922229400022438788834328902294119820606065852119477040315367249435507062553994346043682332021761710267103876062062816455039448171097472985071208865153958440650207145162737546554780748688390847884375437905384993896907057859010841935315756001447850738276664259892609205201675885916079323040143349143803707881726058116159473054188733819133004052035071554239132890656461272103600105402418641840785950360037205348062078704099329365776076340627690339701639076475344949025948582004133118845557721787741655998428042054659610511050087529843411615224698197809160230550480283779484746770567619416254983682022390720150151119131017817484335529639000064890078858276347264334646881113274363008996362051672904350218332059146119894424820690300696743189424076352096693386138311911968141231076759415764465325389425929335531723165274550524746569651134009803547214273783974736996963906262882890241451415228294860924040728321249588882079250264358770772023653182989303738110369138846953150876712016871107320546232847752564941459398727076788246167023229470689576267382804752257290953951054614356137802221033961549983539448350127525067605991210981534213805464019229126916099646440572659000783034432113977814522604431060855229404063457445879794098933538431741532129376019811119541395923373031350510592568596530860742159936097117955368212838247143319154943484872499559210019104192449133550735394280928054464303524267009798481831736201097845044202540650871486582170732100667257200274359282677920079016853755670785970251175658622295990902480058089103411944312970721550928024375080988794363648949622736674574944295456111518516739401225581332152210723144301288558964512605372002999202218863641898759348039796566233724372524046154363568729798333089770209676283739226189806437566528817384459990254116732098248036411249628542435183887233815651622634305560185841419891199613476388126530095472217835252061433708040285762910415966755699173642972000657507581825829901855680764864678515469746919856948990272738203762894057566481981848681628549762034434928118470968767194032121416673058540456827640789876758450163403129462847793619666704844425904953461984689429744686096917274029347919940718922813548306460718430040650861618307737326235569846850483559487757472158997303305823123451054461900203566392359877705678510720972798786290219684773133214099246657506432524877989771520362102721414505124798042056547368210619651179926715890368400717785438486536199050799933745576410532969330189272012618244104494423683335979075616217595787173580619999273368510116907906096106160882933227724682301674334329221308643476368603587105610003395300317536018923231217751709684747534359852240994533311043197044101629466139033699859107216620735189870759465266382351748568994672314795892078534522100349865739798722495858743884492893574516440780500251383468116277276197460358791023404132026711683754953354853191332148589665892303463424207764035234471597051304254410891469643603329592076440213615352996948047830505484258732864245265019406252808322935699043901229850656612798921250063371499036207117077907923512778333926862909734064674601742954904875708268652217254338309622123875327683863023290574363313654917838024523020089251593067971479741911410658011267646368958980958454332291031519401654671193451901765590886499461650595832525251847256373883177193001796488290174555557612591746122797539953128132315634288745775665084997519071783936070570119624212041240090536597590941720938444993666965324576931728345772966011630592577593228335729270690248185644993846779823753715907397782866055520870466557325096551251031235112275703383146423472987438199943479283087831498652924400241804716873977930408080355237645137019796293249170620809827592447526580237515179673423240050601469094824953176625902804389678432438444123082155817985096035254152874568666248092178216221146478688125304954966105059293306781826889665875766464733892215548896838986589431692689430503520611787769791457280036603091383983569386238394394856393356566294406616071559859769470804732006416149656326639577472580664285469965867057282766660920714755026645832175737379460228386930554361758640115235272557226802493508552843954256202275347532047991057882520028596236826987850395601495474639912033570539923800703782535162386516648885543009238688307898460072646995439726880110649743745538033680234881956300350331446297979575742494134205115865315908134196182566236825860794440757970463573222324914381455600739435931598730717238856991391868022897397502783238631273104287606224591204563619163876421672216690924727642524594918220993260958360030309605278155441060305252749783912674808828064175254919731598772303793060422174126055989163391428012489747141098539091175575326472553057799752818815569770031681830210375079825042074875803920367080429082528411958769755335014011575005607703451810904360494186606859427915785329475067358925106139397249379950674051841103107443745372046282698384652387925344939542287604960891997779967281947494390688611526871666148256403950898716705467874627441340021170735259416559263537421646675739388451782335203791887637836234964979020226819144657958109892834352662802395605900191959262997926469002541290468870578085452931175566518911562076883677533387082186106621298837081666416270521125952272682937567595840597022232436070218620062057114279714804672974433014011377175072147257923591466769160902728612262006249550675664797788063792154819331900634319931568431958181869694793977630253139923881186376297760614110141732276208952387804548994052831436120820157824819258078587125603908766452060283595483489057985304195198716736758710574336512317038714175462637564232181621224140996635427841255164394098125877478783205036401638284551677081234630440089123103573289219767035801193611519594827729541362344776625454807747053298687667819545444073744061902643965934715727776182776533499874639967867626244552284924153767263754133940250903746312545325984858374612177270657199805454234888458648019103432027142995692862409513953476511619350563488047446111692182169745749267381240260480848740125460114035048791482130325086487663489254792362778654693261853596667585309173211034321444365555685970139931642435214253329051755033494289377458998188940104606451987939320485759415429262808856170648091206143104042035456051996894219354849540379208640577614837814523300058962868405486557652158074398766535241384817847937524375900005922025224024154371745239590461055599191747644676600163235072773826853645014263817876892649741165473882936701640722996852717448607545431895343275434086618765798506314032601911984463031750522746348841797165142679792667998371804035786926344917869509479655601539371185527168633327182492472077139140995950913539872706227084002880110637532317777429989903613034466179915357424473306949448069431480461900553678262477338909673840834456966754432279870407531708113599591711803123902154366025633637510495581764101584498768201948994313974939123055361875692621029804125799646063673807638030496774208318334664865727239120464325435972046572828016620590589260589159661401824531137995409974126735114619031490904610884237816000210295002281664383732433757396359077464327383978472747361097895328732337839479024189058596713111554594557111960161464232051091757505952256101995861909714354976326017315446749757251102249256441816493476112703103536075189451016793589389410026289602914221327355835997674776577015203978969232890210803242054944437074332388412542332541168751094924795782790202829376171286964775786827851502747501027973267691048464110059722834752994456385149380155921958614028220067986430063063577384052740940125635218201899681608629984789301229586536258502296994165431685806971387015923297448917908211022194685464924329971100474930012457855882972420908204651318400635242390576697146112674004321589754873652181891450782250977727957739677767941427550193253339678264637125152619693161751233230647919667904217277171599965192559573901517633187408814037328673118318582607152532838213184984298496573177000971746120588184473079375801682857817810669502323523196273331115261945236198221573174207197494526155310811909392061482501149783653523088649852602066313700177168321348613309458272041521134058302057185193283578815660327626280124978691836363664380691217573193226069671519710180486101158512403671563695264973592242106639193359758216706679242010589394029076821096556914539677650152234004916086164064934945809440047877524668501100514358845246329352750080882926723438394259102104956011920412420638760310712713830077696917626811145397933977290686500565028816396346609828434515478194234058759492686806112273771235547928023521671059996289209971358491953048446276265421452666589602820510253180981300624197022175081187787143832921189668533941328984879423126706860959949445357043074400178107857966526942118909799694947833007652192033993599132477797391259995920743223535136799069747668441858347374198322584658719878493846124102930535614034496544187134359665720987889378454688855356672682921535454166424146892525811854901689887448105079341651624193769729371223071187067315025725636343761608282960980147078720242105232782789476906667913732583411123832914448491542721649861528462604663083421184210479863711075477889346549421305936642361499620769175696508010484970233758093355477745024540364977786627450872528366578807743185198247798522916110963452659600805566074948090737977848878943136142476301074442573357046998177902934785749658166492703640783545422292611843657528554987925516123030740819933328956857546604941730994456096818364577413625683369257712282443385366711232950499200072606803905593296020410703406569148926449264548438669366899879064313642566058963480909162584533305331439293704350507567840946247400242830224562293384202709042703779040735857292644189494340911283317749694795851522855021546037487060907198786753672459778498515736667166285442552870577737784811238353527128243523016866633597325413847663540142585227108599641666749424484891415804022143059201668213221554840988955898132745993361975665635037859008402933056267831029043275076927532886777514837891408353793442589630525136756860556429585105887902187113867377154716383452725193705238228215132077594967835189273551446032362441249126755814126352406437728416595940915695983291051280359594435345120615890042173185319889740481762131057022197247796250798431860941101613829508486366646632081945088646213870478431791451337285972675861721083049621048341670414984737193045239897331527347666627043451112071682677037090845512130147984828881031114688065203420452527166731801774468352903132482037886071471396251379151212872497092271359817109792658352178979316972377644435368037169015739464502909931952529675971287494604317255062959289595698132332206028593232435778598816034031507568858138340387425764775843037536174710308739991641791812373331493576583372235181281900706576466344680631468287698418339170038787057977460271585062367652052236183804825959441522652937419538696592257134355594485272766809487183790589545731775945596984018853376533586487237805896654946373492646758817458454558264651341342147489786700345243947182205907886118983931942053361094225872345175253454623742682339590608685908717523849265660827091587538231464302337871266924678488190924100594380791958095967236634983886844418461703029072787769801732954109332511186255506601809674714842933834870695388332058169400575398534693880932312434029055811171859379327079039479261983928703722693124384545984865370302422651535021997568901405554079755230628583869384876762191052286165213746819028615029477077829119025649821054873057463329657112540912493375287710608294824026541840055366699552201732235431410538956405806486057698592007149410366448210596706457915965124202106395415305155771290189429450722000694737437179184965927988887732476000103058878795075965412325741052801102034409772884987210185736372752836989977612190975019783181837162191349212941803527929881558339881370372604566452261993149194488215908939901210603611918470548284453891566293015927107117587946817327996965417778906296748300115965639058407441068488112592648797243046509898265693344922630354497884614243755598750538201471713059773547525578712951354144286062868887634091282051567642519745332784007715511725678455947509977733616036190740328635138937273563943874643988296120704326830844521331010475586157716634321548694145145531564001684008779396714054887756424687363760155997999387736482776376592707884997831738877698634358155590293926941479119426309392366780933520830713638965027650602359217926505483320838959892516823706567994644484866449225235096606996840824630912181775437845821017341511857996846720718275871835777128919122240227836402029889063116941210508648639448642962251337906427148688758384703777920434696492142209462009379109135826861621558609286543098482592238342433996121874939176249608183409200734879821759746714308081001413781140052060456198240674379707608341049453585965975664895292368153028355043115714666291590474533063928556326772182773931407090454566416545826443773058350444953361236691795811367033918036136398947239959651033141493408403129375392807649790394834018068149156321730772548940017627047741623574995995447283617996502523798236069735552551535537600459085880321950509843277057211193686703797579480316766451509343048217713945099235515883205062615312583737296652352709158994852593513588020991189470829011365609077878515046043064917256454039733174068041483627652625834191329282200181742261112146720407273008148766441816743575695066133699107133414351130681796567859531916376820325703198891666476925402809520431663652966723546149677132805888993834438187204280567105546299469934490036289611136715255082113016050747427103210295870974949571256040171071609100943836553237813937162687106754115373061289412350827168309432039130324564168455930274287099620056796948896469706771081201327947516587789397964663480191205091886310696412880823524938886706075595664104670724694312615722521737022333640313316455187996206912173992155889526497264034825539818640730848022789448657110766562445112153784779431409522960864743287375606960075780746867576915243697013418111608764379439279006481439839576953486677009251070570853538584778271372317421682369497667092474683357422250536004209083246127531631413427518595830051542764157119617628497969098467881415902242480334982336840838794525425292999890536570246080178051147003384502609958661145089189439602025197742466167870765131881285555268848939452156005164197053416507190729544757862767321379806832995643393117206736460822239484974449927444789411024497995120607612693090442744654747413652363782575538665247230835594958321510314976524161076899770272918797710301628223451310350823038940067042134711829446364764143476004859180838711721727404206891368596721324399463200735470723094665234392332961553433596332991069619882274405543244244341495980447198189570306141055667965704250257695306124277237254380094913747003976210480856970799480647347863685286606851625128662002983402521252437079138224280755858592934702507125637929548232584203073809931429907494505058980049167840626492373007148931887237236749797069886952768353129848386416895085713277213368731924922166635856018378166312603390328230702298808516732646333514318667620740878079598740711398348507443399495365289170911218566854225539776577812559195398193762223807430086146929978870816370905932293196335111945850432804163856413484283326203654411974156943796899281431986384921328236897035326726194394435636509208718911822080255075226705429314510720277663152695572359083090442716042197816848634194581889429411228728298717721569919752218834141347590480389478895516573376002689600000030630605665756458728893145731238068535897531887455363343467681025981229291280126751235091676908550617610044989374614337448554273665467030514498769794606634356825114623479967976427554327899788216059246820248991051386233292678544285388294273996092793692824042504755849797885008190098345725720949783054912087732905654244070357987988969721282394527565688732125361216542446237954684017249917460748584446843795544135609535194103974036850056916525302466953115973589668560201926603655600899529818709990612063030550738857489531210217198300702477575387388071088368116442549791913132508837878076608415839332751530203405128001792915238422723291233640438071760834809189445802137945737610104595223510987190368233715961651121475794685865547832302819551244706598977422502434138099640741336185252555791681088790793956465575636405950874320613656768204513713880472142012562208464708440201018993626862845273742151805018920656510403430011152378363246633050673985583857408619911951316325388230817258743833595966514323500445335424880453566080027569440548373106004649870697977471478586010098328844102223575443180261016745820750839802762039423540193586427165381301863620297625198170982199663572041442029175272481340770270032952305261495254417159541025516221293343225982876684518948339672997292996343866262735366722524767423390048961924556399996353693643494311301152843433892016127652198893945699509956612763014090681563056689954858651148077047285906780693241360072116636144762054829305050715728655354760844900601599042760390510301105941369125353327398931585792591657734717341995963839025352412090923248670047508519010703297874754958779946590274965741082808776907518176961532987106825806387896026294479644327293666014023543144152956264007841520989328507858989771656805192087549339209529008675733431607847117735161167901699634304627499192542603673541223927627496769266880776061876811225194622995147411142024521535979070026722368006042508556605249324924672522733639269954649854015287478861297194819941981020402209044170512484354485940482852732576939806508874222094006089785555046188998659404986010548432958842710512035808366192529075457180969789436870781001188635484551006062584349466974714755255649189756103378928953933644000447039081882535058123246606783750559174895436574515959262431867695345389561484076972962212912132420433146171098776370069856815204062920316570149425903552101979775855975861322375201376082594179283591022125490138748884724387131959353693583244318973501861424522318447927606319483850246270236132596756120352854618152607519949822152989600033755323752369247612866351060864066038082264110140507149569127394009071355843620870324282630011736481075700101316601858151870105894387982743075322467935045413228836976444646977826101400811297257051853368170480669352526515696448278585572565563660109419992800452085863124818944271465865344493002746030577869481467120038651912185399820464959734241625764298162964573236349037787154333521599714060877772661709656551393093133950316266583402433689703311592452116467210423575078278027226630305777044460535254208972370689464295725198300310154064457694956647558746748370367497086710622317901469291479954420100947715998608792504645367437346540690115880069188575954366539902431551923427107411372888384610526474600953638593262566819747876128104198746136793811828420569502435735395104143979560009816545429880761414601705070944605599012955655158467223296139360814962453856660555580670604808523476572415970917666615048947160832986182753394135675886474780404175638161034438230117370353093345025667328373830272082121138035044506767810579307913417601941823482731612646621825770658844792179825833764027028068698772402022770733550945748086518161815166990948011708627436473201523627067543954986943292481270606657227318128110573596698586380568467129163481782408830391722361178104373342800387292582561927479008992335597244808346632495501063572170558838779744525666046505985841318427314055655912297523899580571865603062084841517527871212679380958524330071974297666254149248782938792723847379361830635322845736404744692784526270359643431468727807503974135752589766356507379604166339061856943573958220981513738207936479272821633681205387765641574090112623103215062809830879578729326723261163988563285935350339466381437989962136045205705664819839479305466435254950796654098188239063431637922033417584342403455865957895981306639341319487441607580973134412011971882631452558991729751223099720811416075248904866729943193036066271065490208746517121080888659602113368081203222206015244357851245508185550059835703091061227966199029864588337584899982698172921859983963690051099975433059126848799798145901914990304768825041190759369500234614265537096606731678003551441708676964927833349251423491417917316552319477100940087688264435053626099132473023071580985384217152453963690607430862435254387164918903751496562455124793602628249017789201050528483298182336230476058880896656148574842464351063071857344373254633982400797142520398726185784979413392711673169926096713567900243718496518217328447088230143830551871385271601220873861015552062415382120409775778609783420778115439880284943885015053923939615303838285553060192783150702515971073557887305514966873524452704497862034534306356935913112366470238237126257813247297936566859310917831534162508518100793736876814931533279520405871349605884662848219537706213243074649136841929868063057017334591481452246217328854033760230440715228862753364660983838397937933729145764259967707637357894192799832352384185863171224375608416810077795854507729479406412496504765040718649035613878450378307851118707730761095636039871154154998258671442746841455460421802105317534104498111746794950902298577072339116077701771803652962928667630932402963367505188241616056681746048879658926399523435323200048157261339446584148211376554796845941911218869099421731405691830299247574697844728093635341373314095638121746399113331146206116277401160897016440901015472276924084788235174848163459814833114025356990448480339482722928525740257954928928049968180626680110149872766857777240767845332068029400049682352977292154809278562745857293832238599629246530806332042119906780753746872243208732461813816531809413474736965635764194419787094274299773734224856494468273887258773196520712098987627981178207119747307392376862138495889096482689971696048151439364600848327180628135804991414611037143125326662514147498178369156053030058209264799433095585971700846564737202318381366355400805527749403762230733739388325448621085646919532793591555851637561833859054006010340143899948552131517850512246979455825503090839497979783292924802641717124688981870306160511120133469674322729303672760827320576037277073273740775311256717824650551811633185271265590333771210858177661133670516379111089352184651697959588336230157644880108257859566246713192071485359237724230821492472604702789000446093043275585031395041699819725214485611181525141207792259757539114179937442484192845037461555003915555828758729708987040812662335366309003520344720391937972225298733828690034137825326841414272493261453559990441878843565985447311218796074295117751334423607255797289942687303820269008354847098117251481013421266189638653769488328449651978193931789653345131205575090015059721842942578661478944642359998476478594902425362962930577701970817692138918072695813257666346432275618636178607143804113386213592052711954669614632564037068230370704039707766912971029957673159715900896408828246093274850855012659193779718147134682924052889674781137455272379658703237329409996715169126412797150662339386675451477184160922539512776233003815688676074157815818273429439273351561517219393728432286305412542461346649053921044830943913814804356122661846348326234559603000902858331157276061877367153858396124595343906399353163342304253844345527515361686055393867264495751665771767620691406251310145247908027576866611993202496484246953676433754100942936578570975835682560664751689939128643801592109230844356159594118246947728205835882554294906602090142542321154547588918937440874950776136725417214255540131561709535099613885290122371773327550568490208807883949001583777236945955487166544722330222223430822189450767495435896480875334227308399868957782977639068337306725637887926071461246569274397364505586496455964017551806147758595738255987009652771153038947185589701563884540037337474780347860313380063404643733821531510024197304794025090355818098829829169336548815489072603965205617250703529778480070563922820343358232410169018198050708045837044781460966860928226452228547990128388477939377214321798577604952653867158475015174936255969660277024107721530562931340711194285732492159176187128193145134899907844756262737681701982854392703789873158347244976532513426940365645381129560832064149247423024939261345390448338286535935718704833399377593924465032919710078199832452198172242205875733379423897145679956323001942080036265870430050264345227849545355432723254288731303252697365799406626670056525559344294629438367823540006011535142974402125953408912476136590395944470300620183780823966528924989572940240777268889889112555174160528632047601656749830649321957952866752393519968729734986692146513231350438246123789186931777069319764473091460065843041342456912503382342385514108593370628103367734741971755263829321299964247821188870841290052040302894449932782290613714907056887241403300299075051435530525586063997353020875583457877691952615749678674122276922489884998591396784320813991741564337902412652678083817202757143355829330038702794051606530562841684128423676682511332687253271253528126446078865547077217704065484521537690522883023237748786162275852122030865491029274596248151294596225935450991388256012585171927608729474751830527645266240397548970621547039269597244649199051146663161459929191937987689650884606706291929831888691095088699164846840337650597358117260114552876583780048369558999663587061826683825026717934011799873447633071333629422526792082403711100746617109159870385136041045162383879324655584290313756008138246335319366405062178527611317173356270025166274399438420382587869733032514689612536795320556687898536293948305784276310600786321742504292388334298973425667670519338156775316665871881451692330588849496934769580114527111275025262578813880617503324313032790172592343941140686591097666616279596691077236883329264665066464633991135202970654138007945633470643822294185191414255634077995286218865437856171112560038597624030936709509507102399245149945027266827328800200371845796385239622496881683290523454351918369557077868954983224880057238210786353520749334663411980343471838548615637601183967978330464952225710637031877985672250435271252846038337240345230288491607949658179164642944859984737918287092058670069957282934844266279069349179464613583215176467707603192361033191930445930639302350616313403045660687342316592849770164667984056975971677790809547235995751694878473256450491412040046767424810767311892692766361833222384217397865299737013200543876027354691438945350141169734545349307622091869768107248764503338873035835933776450171303277689408565072575799695298030408103314645350780117611110383531598915477729300476959089814960777394229156511148275687503934669055721133804294154816789314444382562120640651965883638686825930309535597459056045135116680079913616085929800138824948804443876822179473264396430462093770727252174790616478209633977250663825584941818244750400030339515774714315813147742443989138905216109972362868081056216551745442548759707402467011101507207036355729736928659636237895751731173021312141474511990740793291179686841143352658165045472401644268843741203723517117378690337241494088401218056429908443620707212790614952756646605450162814041552976663726083193533045669625532981632361599773807264477804638078029328187165592641129286447880653223824556447989451701895669122138804707001171156921483675751210248585844426332530951158419608437678833786120573770366340081909452688923329223576950627420480943838894357571547323770512994040436439729274042843247041988115390568762710227995207436747661824435337621216595188265650661788252632979624415080414668751573281533864898835025564481556614374905424179020277902763218439352653478900416211639272249084694916012246629302364929762933947131699500901281895001732259029101442267021543586007330580417966876088639902748502455746112341680832130570218591792330280964189402016684510339269908170119895456013515963112399019449899966632704655798093380340047562115359434286556990502175744744388985163767388650561125294045176820436259781738835351831342357972855372533511347575709818285222583951928222562173174824420644143895722930940857834015502493813158585235079146534919346475542015153497216125607975300140097997920575098021050580534864165824278483485825865105148308232182550908627520160129309341871953291348397420606613886625004191003799493639268254026844258980941586111926982290151787425876267390773405215266419626888296063201852178913871854512606168294333416667291464786614274643055178194417280671550175689425953140748638915240004587804985401796808697922879137179332153685447019483986670699198404719227163118885950133282844923117320258760743849976699022424057222923411107608584071046233057216623342807313811226810522983599298888777828169242545859429817388755529934745501950373557943177527721770076804789513685997535233853271414425607518142491214828585346019058137092623596244183690097014892436644875427487760369440051153358795293580617433097004106187006960770634417637986027656574951803684139773363353043026194771973203766478683963878736485775561497440433268652453199536785512662296710953948597408535360788850287890510784109704050394162428921642616742935943353624048892637444952073832356000845951735592704967184808057973458159995262723319466840013039555469510169876933793977723718434715839178599966698472433178575193081388992500527741853393039716428436126808263852221358608189987687944521972467383015652728832387136013453576169326869751734050071749288982027677303687130150462538021554141086367823481965670022306736016004808954256185267064180324189933943052212668379770770369037282378662858987266525921179066722599182331426258290774434766763309702664431556863601790490067079470672265617686474359376805154767150478470513315820117931119549183493960073149548856077477980841767368006070954979857969733788915945758107584924117746406855283846951666266207141138880982949172024434577432073915137109756639399913755338493288630804749373881855328691156731750066131199728471451788663702672548172621712045916164998412847346942864319942795243055001112701459884016421818790177072859617493676494488801725739909664405080497041071041404077344602581512636027878271671386124506069115745525764566324308235961839641661212380573760550360214873986517070497669880858294941188692195973985314184198414154850097614117868903525685142023632368341926024244524178108218450860501200632440924813536363606414323493698933044846672563931096310662192083185915642301536314663738109756455853754217593147110392464864792263679336125170847440738748259258115100891157371623333258559732372751580505319916908247063365878302043320566619368314230113858684893276502722862714072728106095420513679272602554101194176167574857107932325782789796643063960870278935625321095392514078936612096137244512290741460263850438265354159777915153313205236049382160107442642359227380562972335945999267596036843085831098787147740723176719766771070619671529524448203128105863752252171649430529620315303529522939254271080348549391982081328149625468406473513803404080584946877335663447674979087105765230152684209808865904762774188699943284562599415782699359058571396180394246816012166687094044689697726959350309412767838842413686015947560921955016078788333011438671891246846863043715507881236279490423408487662691142296534729678809712605450602046481392180082726151300264860885478202286285180553922748023255462450838916136552274715459114807275449346890746020945923837290386889689455233133978023543022825544428624834811221949422587537690118345812246084133695732063521159105251189524604597251038737819881614836624947948484441998916293941368006221715149054221672387316472784661577256238352039035645430066151113187936257573130191611219293470012079968930683195492117115046382057465396283466545023455461182652800285664809574957759693136998342733827103324116055386649230125728743603378398437971050680051329329035794179929016397434191687749963974823688594285093479452218329089998344956502444454453942541579193830298218587468034424938667239394194913590310676241407941435660148016830524345374971941572639501046558414683462215557067850607660426191904010336616852268139326118907517131122699689581476821236086166419545893093054404827678628343362910201475961616019980273989477930629032780661923135819732655322660699839883513464253990308183230771128306471292268866667150999270694113879782295315827614972112366188564977078319513662673512035020510074979799493307216200582844223746165297060807506622812452554716280109874601559935667000910152435016505810769286141415451907612240584364637997808025625059114068532766892985014306894715149872142210951324367126306272266224177817626513753308669161986258347254428157643790000590901648069653052430357850401885760362350313855467587598069560324741372876858559220404389249180560317858375651260277380837905608110788208621689115366933332203996718588760668374168615151835845467796738320268935903919607016969916338406406356798298914626534630558926676180498630262756182173606301683022296936152527223564785594999978905901570276746650594741615468080736804440540679998700985085135101344315049479721121930592638242179476978412966323425023089642263876749209295785666743964794058322941495873225630750241760958241889300427125499186550758404432300472130156193262105711020740912131281135922491336589641938229744758108309743048387991364065897562981346891456178435121660428003198250050078644474476604458780105957079770310244882357789859979900107401537533912734882223947045030378673555487722885556192158189781758765967499272668160588334494867931147622831630468609048300156106650214114096007594321141177734361041075530048206499341997773337038166003145433206062508695329605241204373682914817074088114809475685532339620970121356309110215550469747051785318139341315528879092623683035626385571829860510717767977128552296549635931038881465216098133152054763128247394597437007315732980378963463870494085158883985783625660065395245131147174302709614817013010925249666564145912895394788890597242592511096083552388557920024827497535675255793962305337419278393603443501587225073221759950990497704516892826159079452848732142927279512318446703570184435136863707863732352831089827733478648350107779849799499898721014486419766965245076911329907815706028620623176231670727830373696604424214997415764206518675614748296762334194076210637547447428744907345785183571704563758189373506855564677529371504810496433860150553981779730194797513779296869720755553077966788530392375114163361012093684657338446178657782052932593469589475799827206523057024968530491693300360393968322874863797697674344152115525513980805472645741748132921819275891741482393961082140208283036601282737724112516404825690951733652996212333275475542369089229471862125318261024063114607302623121725876393117060578859394963780364574291664695120012863144900133743658861773253379397518667510435432606205279808639173012089954003451955113779107566415462926662077762041504546459898842721022431961415676474767874426689615082641072750040369583252711991167254031384523267899693630976501240228864171983849731713658186909686242681002060047117340327933099904352229899126796472616467442765276875791934152659359350614012876512543840864408871785542654245593263483550954219773527714057680969047297084523728118648942822967211165051313362816386566491946073926053511429700108741908952537328570252557440554877182630287720189301762668957329271520377329290442489165391729393333204420860834416921473983877151108478833543271839520716126859850189785531990157315670872220000274452865051286405590934473333697333109726967787526327439753122258435790833962300650528954750738422085526399152598095874349753592303397154126209722749916433294771874145870688038613597496614538191368664884309290949433486784554467840879482245236638825450056518649276137088038621886759206513978689285007779804184962083654042483717059603898568671810112075766233846790085814483443903254141685529269627981694361596513974447260211999709593438869520588290958086403928285369192351543945528507358336388311485827373785108771186730346949874616400428431840298968822285166529753201982681427541840599560765065629600411985513356379898439833906523254571665412098320202112717116359947369657514131101765915190602266655315559101931608540529221200316086462512855667509332703593183730521324345105848284033751597960873003658996118406889636912898317661538197426458414013000894396248974446842211258696138720879740115547014169592742748465462589262123596549766122318891092625292589300868239027073347960908083701652911169938893393220104129750597627013583877470059513750915901580371002653235400546675336051808270384197125124641398413807790881827300779597532577664607722625051790281095405580754101129794302150777174256090902658232636334082731126858511357378439587642907972390875389827186720945375069799977037376007907206709071471526958467462142097841377418621417885490164199464817898733600446946634873573488115287095700673795331707767297543858595911773961878675097318464660052810346942093393623074233090778782200848291534946712253369043645802431250598192324190225388086695779373244356576763185673989549645630718852703915658985956914224599193118350446680587112216159498255314906440789053001262180923894800630466832750745044232607463206161413434250640705905725288844708815889102874652730090633876248986686828266763760182135763581959858906020309974998743623930283469700333696691731483597533498657740665208283376450282656754496453095840984854658899404789788270073816436738178771635780490316382780621231510987032958180705044645271463091070106190290853824885592227017880383964619246314352820462877536297252200191211783458437588005509457536056357022404510665311160473370833343950368985731347184292459448977820172560709921085749231920751839077527460702715775373465715379859682647547789592203414640772990132743499640551039377262820829210402070343355091906225566548578495020713848215324659257867437003498218355328061999407113722913787075770657202633820334465661649192360955652928714211357014071540103071659504058574819670814252997445004794545750508324824467505487643857333277328009903369070266549526206294462830554745959950104716891738483072513266379764595760463477481754711423789474898655038864824908288532780565810296591643141983576136201139933545089153470244780890753621778946212517396444655902999871823526455691253024528428045787691852185004653893669806107714111289269820857158075934528009281356167637451702198184485755837342654849712243647162259869116145470906851417185552453852464894174986472998819268611677646677577622524367710191684860049205228944696434717101814155483534902116312206409005989774191945562594560692755591908991372033618596574319185926828281267583541291904307642513473802113558086710516469923723036800837817153036238888915833735837221397836287888115534833952512687110812986031822995376072990287967606787295324552482187400240579202749048979462430360597162207285197695401840819819759886185087746897344022663035263542370366973504753081624326277072324205288677972774926898204556207098607155283996498396069482953624928813069032194746812602654567566929307972003175415824905874970888905182521129743226873263188742589175222809098888562581818006358294929507532447750712187015321819819053212864950003750298716053974086682519104567626320681940244853722246483248397530189908913794139527088070802406544039139199697385302233391207484398906882224011999026267757637015101536993705684477534510555767142793830254233481662654770984965115800663545825355864807557428162421286372467347824134341949488085081200799897921053879702675864554489773437812936740634113342863975979970055706458974758823660137231985960628025216217169314997855489323790719723813807813204474107198458801742733552048070133139238361545466910779136204864508277776491270842387367773281697062143274522906470022935401579688082120311824465611886690586583770217273692891679227143691312229955393147448392144356089139071588113577866319066022071608165954197377528229232615907992007722575185323255258649600135089763233833359670376905195037051974016434128173380843698825367839281722770779102872790432959177930114581530780303431519514569339271006592720180915486355364213706517559161202090119817938260569432872063900133300914903418520985217391234773058531620183352736652496506596981042308057363453309389366404443976352432903088789138838299800284792490609396873067605998248178473657636548234175991387730169008037064727907415879997087603376389140644731764953057266836561221487393795093929961782399863677719462450521299929974473160209447839354658622195133321374330129059867646000686998308585992537176799083171504017006457016447874400231040291174938745181291675388200706551858537574963420037583560786918094573213156855448499082580664059398233372476737097130052066300731666432491834936374345258530759620385123027906707138382557396571511110551686562589767588309723809670941700677852135516564595004835571072959175684238477445936807405827767716374711989325375359501307942570924568218730074515282361628725486066368313249775121260499770221598391196167638115834616599170737275695391565486940264269133830238990098886176101675163532582643779707262395797924646714814064710836798964011891408668396342497484885430384901680353079087563317242745870938781073867978633527344083393389305783587562447160947120817109156690756066033660157225213719209169457310058194264312181049449860929003248681642502776675434517780527719362845739256907183601877968256453651269358543216645753568414036130037343108382695768660532078446321083473591389440825058806434147766614430835745928224220614736305740192174034017165800656932201134599297618649965447621601650269767353003457464409859351616789836319297077934091688906615278015714518088398323205640747562506218027335754546058932971839327187808608212727363624163288780106067931478902136791379139051682876645547218973453542838091160942737670517656753523702504956436977675458666178474182671857751604643938611396150180392689934440773311360830225601109511455490539464133545002258870481615409623311381174979966874769288440467143411164913969620746308211952691408223544288580291889229182104412552981599829069608333198891869484097693637683392136352670507588922533989392587378137493669375956054247841096276902849285400657624115412767617583837528425016384159675604104591018914206188024626633043844037649727784574332229819536214010423888652819738432222902729555954624583867459946684893944937884841918815180951060234867676517774674025102162838683831961592907802769562427202069226505255562751564395723893638852143289077975112376019006107556872771806472852837409996152742650166488934811295713556984025464265112495250242845671072260551761652294643846783739075245842701471247942141537144221337929906651780431456058600592331155000897068423071256553210919800589190467928146931269701909150960150516101192336750461329196534599772072203696605964868175022591984823509193810104875770202854806314056496022126223558662853555656227335578238015946531540047965839226299797145302954217789116651532135903913852453125841226853563211683747436582608868106753040430239006333165874873324613716907211849760078252348615427014906347802153142594698868869156298263845236409472649398043180954344727539470160708172440016636070875469706120126685397740228712788282648416654562712729059401066611347496784753086433139709241686944735118010434875677976162995067550413597638400443326150982557758388267560742694750610025771015959370882238109685422260084633068345690458708046217499207670831443137596356717508415740133871468253418128724459134118642572021622386372770402169753788897524198455987709696952411856470762063611155694544186568750359341898582923765786065274188173563720278419292816322896128445854470486101174564597597582848987890310393187792162825226468416702237032216246479623311031860009032477091915695071476122402686616853572029586907472880952856762552777134335590113614447343634597571147259547490423150788095236063480397414351779456596088532523550437589837070721475995177173943604560732839877305113575456731623560708674034156869992082553503456941309914044174831988587234080550179773933238467306559221402785164884494810975073027822709019381726684907110117667420585506433622167825194400802958045234005215416036677376154341896947712743795190650089308668695806737850719453554636294620162099290347945330448911600577132688219741188600206558645541865404769813598807323652791106980996393340738249621111955978822572015591533865982756516522300048439742376482497590664293885083610251398887439044821084239663291493857122270255343351246833796867999797583029308695213199579743618518792369431603254289740558496242910954078679086939949080735907573443108063628090077416726716832264738364700561230570487376310730422884927044249344687115715208492985705000256400242565611739912532486711382532962556408310231827774995669767212582514929687816787602321104845971464458690548528631302513833657329265007050253063724981618953137552552285043987742776497135051207990172753895195138511556677049954789955409126947633878547232099938166842361928906864728891089689967379651385699538833600706175062502955571899659225751585505945891694920131611305177029497806146141676404012782093464639968616648053799292312552553736545244655910045788051855210317888381480826152828690879570327089110669056739687633222680817468222613088875516195839641744602023546322288590503721869031582083212833987116190346192348752652872318528196965347646062109992818961186003865676193678297824410066518717001542966251884601709172708323134130196804608410967395689202863764565924794577926445483383523341161809734577574526941309972987351439654737023566762626413653703075282399785514766366277815113819604655997021915404515433199769834017085945331607432614478461611700086108888759670957709497346521408061358329831778176317301283538578929864250857959813445093973317414426541288759811296347914213970676731755879561699527827397189180499604445426137900792727128573775706801323036742267879647430187023922582123735705512554942789655553831221721024699956951018241524494456314266859992691342184154567829022239339314733598709514676577551193706868926034898080420513675236259560855483804843448220230119562523860776775092604007742958946708486347691577541477575948172762871664888016151646649594443466113242753819570748436077687511442758842847514688143117729289111176002059070094697574339440861495029321919823547255166885575915657940712413248108041714890043766323524750646418354871094456124263919749230177938661499459842829708111306662798835578082530716724656376456346751079962532383485518334856279935086219180542260144561885438451649493844295105040502989456099413638506544875005376337031149834793611431432217673836266047421981864270279433878788728793686602284650500094643889785533347017445190182013566349018176052972863131179775672381598060186176687101641809776955475777710756583946351882318761508275091086282634353163116867581843006937829539528428570058060509283992827522014236807063575795042224014973252585103775091009910190589490558692157862057737943770553775914672452526321426951649769071411606282145576226846730496807333406581044242780168544888181804129601102349640843841643814635021779552892781734902259569208759092030528822075049286379076133618384367295910740858638260403655559921890309299987548927686606710800781104190020190907429303998393922801798901288364817295842483120251807561977440061297209356151036082813704840198812793727275665938780241263468898441238314800908429856669562200635471875485105980095292305279961962757679863043990315446550153366169669471227105851831359467817868296582632877205496802217293426209567241467399335453768859771855540496095463652709338465878253157431021295597761826822412214140295910081026243251523205670124171460118109774488587410589446841459733271635933533918352441518262864776855566997005289336923381280500380016994842480033587443719804072016624121561601266658740663866286001265503991534195917104470906010898853119251679328274950786009468520976999362369693430586246358459650273726555019603735888891526935885110487299951983421319954608885763751023082856758304727500704855942125888508759457510269620397279133009602955907377188898519895824655550728112174160710868368751040750115878482839412178732114227955652540411141038864521610131794011036175197092239997870737259885012138406314647716621676957638604615265917699284359136822969638171842910872502919866286519814732230888856414694469581563720094537707952135803523256798075154724078167325209267057224947039486722393245670661283970349553824684337260427883005129418692596166596837517665924356564114165497525741799450558291704442508840869661291581315960066645901342118620727679339542665269705909354668277569623871371074345789736431142574105669801043977743961566417818329813025247498805920568365403236228800322051602390715851253684962995951467610423577606309071960893966561188842766467640229739535505217248969805046471047795561407310305696231530452067477645034504875066500818610373857116291549568838490455266751195023860051206278806739783507593668958399737347637314729892569107921422742023335255284938329211027219686746613099521486762012220303726652817537665830680882893208080163078847604872826331904412130494617344014266517450843598723023891727309478986677974442669158773258814679921006046807690049542578892124884093063354181729023337662415526110335258898673545950139678842253496886618177041911283700291823195193602353224952216254764468989667979786901317792073101584508740323304254489917947792476828740042201565473060995334863782518864493161882981786280292912589269211659785719878351225026300446280767091859913750958121294063891256016723948469066811755721203020897864240164537898351416799910350523205997572833974987782121780976112390637151525270436966601676656192928917463506525804163896835400881541993409875385121419209832584413844845296604541390635428453028857224894017911544832221502955606761622186908166435797835816978491739294372773635086432565739934984753048271226065783917706945513632144412871264061351665129296143347437132968266689342570841705533333529178570232823083193950406718669700103026919175686431405903025979221304800280004755185450976009453982430233606224553977530374430309801993949090454571874849147766662992145170365589684606750639049481768142118667078665071911672628509225957206769575648234717217546251252920049772182334269266365280390423045645334520141295063961591796747376816310211850477989778260757308501161963098590894696138545160948687569087716467411633179673524889825749014992199069038493754327403299129766100756542010015037859245775098606645738657316752422622140448498066516597858916320555737206232868061125259577022366278389770520963459741294707430876957004873404907577087627822614953999583869066024286033370532188248500533379712321700325401500118785639117608378313279450539127548646676400348634783184181637082982544149274868420528664302768460140118433527762686038146709764077409360443058679654379188577883015576611925835763775634733255404931507580645957204813082603876121078363713143214848460254915994188243641710148305991648846297129717997311242814714326083952231991632576244955226017729331328846665636858271949505720094552694645812305626635150598545143657732613843041578580106911103167101617406175729833695806747430397894932680033223526541374073669813192294409449856191022611430074590263037544541435509678604991805032142475279564370359276794302925262822664236394919391069906442762577509476778693663220625777242998215643602704382406384411301209369731931628337300567533417528935844391474483591667235358236465754877043013178803720300494171125274143906406396118096788302145506037009145457961455616109378069745158981068006801033905585159294389371551202185850792362979265104437707901312184985904595842139845714503316406875364318396230192322953591734160867011296372697593089338037010240591054387220389752414230201638197407919079335090864706630236000459305785359455783232677245203104650468511399217789283370136401204350423425463341321598943665241829873448548906093046161951275986561206677448576857207558337333178490269435525580847999232555241602051957603602136560111015076658877250264583026671056541971814750208846188847085775010453015090555729995396617410321458561066267092241005724591384015853501488618648971229417135696876106216221828627134114901680655539502173528267059532326986962054203388049250519212851974076362757787528724713457391912186068391812810494019676727146893415033861902903125749871786825031798982234479341622336216920878130427174155735588422883302288113972480890372536626968248836311810283287077136011628932496422949762236688280208130061845022612132933356244503341508345756805074144500505983308586105816106014912371725703802089094926373555349337615340276208064352214084387232893259790321225595348700498891666959496069563253218917588319430907952941761042148197588411873452778255025983860354681858408266541995313916545758208332592239591613544561298052609783886045020817361000715718122926823766494495737635184469408146272931397532459881613031608481627774937824532812737404053165557010548503873182323423165867135991855080024419320921000029502383014274758118383814123171857003058690249023940129582604977011115445219290115765059586578584725486603114918391852822059068292442552197048809671758811006671197965624084583357056870348283690138848119287103273091345242179460235382561307143444733974395474343720114264646618576660102217211218342885973240655456707197150401196214013845182619367350067693764227047102838149495467731881182052340259263993265074034524368961951194298666038744274677581482429534579913967492313799408420986859316079483452163101529090189884709107659263745931305752820103694346534390998167228528358800273975106951148832017899212348024445621868694690450355415688784788551363020813623433569337195443220405538643187628550062335014385932955767553454166817639899566412042010906699774448773782485826892847374250726020600406831048878794114844663869957031160807537074197086873541209193115509107188753052697260706917121548649927727251990379712831948004793426011458566982008586863656211723005842143662234617019134171687718262875494414517507459611479446013766686370692104724842371003793576464639272400325186436500734648553251723526381205105332353261883421871041971941456909754349377316912672610361217354033829232902863029685631188310327785068917342262352399195656829214458227936303292539161328580364082380262021367135037588186120565891808437551618407140493404968237316790723981673941034882028864779408220784836137811150906318774329909901471837159323972667267959730707349902134598970749126907444789083590788869164772619056493769524729600193711098390747489675499771524381140805977315280908218701551144058083667822543546258337764959121701502210509244019726991577402955448919038450896585002810379236500990396493494394259904171911531396832200043565328935702152898785887006297880811997717085467095744164430134183327212378788137686962071874796641855535589851508539868924756782695337838550849706353155231057482316584112277691554818184131165090556922803211195265778346094728472966919124517293632226681003346934738701686337779042817210228700938430204583126322004954813901288399309702288439430101134831332198304416810266815059534169998036958356878153879753532329117287980572724511118318592003930062674137307545581677111391916513874623384795237004980670048521460984934374746950595952388106451216792129982858256583551434115762830120941163567802703359754081589625503744168798953012030903254592773752963052306524946625588217393034344998109452352148926878608765495311549275183218855022325399789088260782322633751601888213117261037667551110710304508659010610336842221005535640071149864392042241593397685148236648530783638844212908250724369656153903663872138873330798701152597195318290209803250413118480146235506246596521518676940553374296889933237521891889779251998552764671936111277383889740952558467867995321091042943872792205444987798594036398284974264413967252801094296670708800730232078725276196827529228297028225638795996920996433886586471511533289500580991750458780677025656681708550607165296056788865695071319610398316460529552603278450083836971030669626335135713598995385681619679791330974885862152729131489870438539213686642136825223640428505535390253721075618413763715934737349302564310288311015338654214289560109000752302609833737411681397819284061287510721666787507026133217114009920228459928062406791333658294749451425275346347157211726664449703384670311041338691835182976012049624108520999364406985266034043669753665838005594692236343888129608213088477495455775095903153419767877045004596268019030518092945031236012480637389894568736553726718866074787551517859197398343382901685041697498813643607790198333664615662918275749724936352779430638784060213171539222639310080483670227510720740662777434292253738658420173261153313775349421595800838871748493721315064115904284824728413296547517813561274964324727105418567096765798142897402085191625290052783469376229783454314235925951401623812628670887037262256000321988555980299840543227353711940338100954121009421508343062135244536360576308746763092708561638406097146483251895574400425469697139289793930038923573933215944685119973903618845529907386939618748855338717185793814487686988166997726134779054132431973289405750732133743596828410995611840517101645459789309010548193902853202160803808228813701035975033838754070656018171268447366318464731506111222229696313044300130288001537131191826013508740147926354127006063693304063135664354219145733310913849014940160191196331394786364523930927665701945728666754133788647437951577901289144178755037625442427723976748751012667356846690682679666661610877031723912009218694294961232955732450848517541406946475488435794148403593039016682576487051554174127654961204657089426273806623706762618083253150507233738374733162445150645724665166954020395297271053569069644671226452333472608018292615137664705759264342329315114453228457351196861812162403526029464411054689672186011111404276629647010350490588253477448300681494793394016816377472908142074175112370048527826716741411039480683530047209855978939802113418449721677678290175254407182924886767198210753613398848887813148590458791605328476860859124666397264405792408857281290289986688448562995219029892320943836592269708618108789434618958312642119677214226447192725947820902402120888413539204673687913315745553583803838601528588827335305956512656154107182814500636366559746065619643332187476692499002681016982717978587154681203116525717400612675573778597684220643254784568871763725406773556439688397464627116215598703669759504470108198482116394910314943165893221016975276420550453103378518297646723873824629135905477556179650581156054370445514120234020959306040590602477019806949458636552256092514620187084052299881564844298193525701214883947847071088888819454866061982522171864178172231324487901080246715896571080192031368449943369157149956175301154316836643587655700359162145994512455437171808620615661866382243821141228933436233837472405432096545259842338923899651966865834913261285729041694772772013527904997749694509575830186984405624340456452929237415949132146857090585279225972247503462441794608799162099438966731852192188129460946791022345072232425148157524151346981173809471544400802990497058731393860074847254464989603306535328478325616931612682717121494701532986757517242506103136284197609227743166313439590995413990381021802127691274687979918668701838175672533603565851230862031206064702684020043528823241044459848648181498844888365611631217656795884272687749155201029943866080405756132421498542479043608962950177831380870133804595086224402815944532525383854299850917356696610287722779611218541217354148339982622564632747809488722793424485589656184176341722452263066261937948433914919226258001822900415127667361154519197562378304831858561581245067808869844218137677542207987461722384358014354127001791914299495288541796226957890455463199137367666550985811201141497539761707656448893948355319733446976450179367187542790217410687091988330548953571678669783448037246118427417699654810672627618333136264506061525115892116211608499452761969683709337109199036569221188415300215245986776591332034691214205853696508519214294306553823638694343152478278519512433469004828632787162690572588290984241658371472885432510776096376205893912080781335539818988086698387059854743018389692075338771573373118165941184020323035794921362156566496195825719504522658118246197701876010080279201657251252478235323533646293498211814387410066283015406009612567883701205961841873273371512718693064535765797656100740950782716968727932650887438461044239832152419186962849594142258777494648200076266095343471140216857300226364807210892736091133710305164184926916227331866922846237157917035901464653245844882185075138264781684517849735217717378071027060104377500298424819899436568198793612773026024188952773794113780078865417328094339809921710210214759641804666806580814707260014966603120494472137690419003559099248001172626419781321903209960565750679870877939231726374276051773622837748595548544416876104412725655159874173661613739009481174860050483526474351889436031862550140691843612188963752956035518905862369582017629222213345314809459011958856677074385896000880363661342477148385272084097595706662410535416469855524489394981992441997030520364357993987321325315584200858095785330529155539468243788903891709680019693147348840031325701541375377703673117091798451415243187389291154498073920922322167153749878008537952372912368721351414749978024400987565537113103170457685040984183729196468611820772543916862591144465575560841292149425959408371433179600434192676192095160056338850786432568335605168322209750141838523335357288497561613499438792598446658003617246300798526802130675992530948450630503139071645394343189899130869303506123422540168142964724014140024892051741448003524499110011654416310522629104410195920924060681637806754566111548514142901636544205749377842019853316438563446376258118004939826645495488806189227971657839474739160586468404825554330923575522556867097517348367394825005810194733553301399083710993976287168370273475959774784865999863697542861526819221440967454065183452404795550461238715323377063635873318244993929311408060082059612014170929517377149536261908623096642691129491584099550074042720918872185817471959192244843402971406307187291283489692021459305598019993380957513408031754008588097388937191382192175188637747531691923565482036130512811298403641534412584790773702292407253094617874939261604682112714276417016235862922626598292146947155911606874332725577669070838865755264260960888997858759578501121611432451388189109512531281750641792938777030990120294863413530130120268257366688358111236737881497413061868075540224880341715872065411653363415723410786503511196099989872133035040684433349772240690696998787450264059380657646328748716237060579036359116138576155694358018603118396075140031574614744109750207147279062433940040330531673678175204513996971742629569435041007477004404073460240867057929904142092668959762853862452762301031096232270627331138073161845523015497100950942255692638412089662737104631981726561914633499177650650811528061399582247337324143338022697307319338320339929105244049126751931134255355313918024621911449533378077643845320734945461179188630864317556714728847599948693659809816957965059824702136311472618454716712840815719193594322451766678162021378282008317186415073423230935969785096735375355754567969394331676870049441654969541367606858694851618030832207829510918709795253534356785744162913406438335285559191740892495546143077928708215859405352100947857072844583419399099987768338486466269828380521276069624568969958414474183657378656539979444879591279661128920958445894564297061160303770115556799682027053870646979425963676682704610800733222848433664945584994396031392872050648585745172359868182814725364658053363651990234412127718100276025638950741239245292432741392969728268093030272313350031665304006698389566164737720654640273162329991300779869221609322097675648430092111352364933504777996666017671741641421265286929203468023431934206107518179262621963521826931707522720988581668508404617353582377097112239520862377735047906352224639025658800649632512448167700058977486692209193037916358448039268388913155805171483102492868340847225974778946809178534979807503674946915504927640124623636191993606762974663144081913306628075073946412039797057175320881202192894370792503545977396606867653352796147498507596873193933975099553265709137151365738540433948404222762985087900058519386130905734725682283773498442348634627359584234865454130954286008709117527989793471952633747344211309333201035605919629317343118036442713949808022354463247962985637534486775993612191270429551276745311614415154574688213943305546821324509163040380882335375881395756630017606204023551777491197944430890410008124368562750574195241218502456075342250796891874997047105480419400320366076436676919887911263758469842406917894883173199068295851195772510038547105848126321191070114640420560483200555652567040166339441112488275191794663876351706896377488662753106544902818991303536276187954707277432908363919347664097382356201278423096862297478336099416198831830288595563957037545071332174814792128432222798785522205233483278725064099032887415190254261130076371416176829611901270396044736774342782522079728127222642238233252383698228699155459784781908122223455149063924544295249219847935940159218859872432696560842112911154636986125578212663559060364311088699152486957606490257854999338572711572671049949367351723179974236514504143223731015929366980801151421169614443550818979352290487035372688532232877309725095757612152989959612344211502026120335772833476777218548199061766043267530356510449671698728704092372529278551238922981736105894956909034807313294524372140520558127514723724893677763872963987261379977535133304621429650465486055400812921693478120696924368776074626861478088482363441887101671936044247007920893823234974470998127934022961238512696692389811488655530033706380160954106145853007419367630000690965732846654950065724573061564564333205699658968471253023968946381523049185527951314963138575843685805371342304804135792044851795022978701961830596223191897992463367930177749074125618257638622584652284759469985696359785632350484906147023849113836762017102543318411859422410598613784280323650428675505012830091437760219259410183603867352261083979881818553597662379783037618735533147086375036855798506318969464917685399114399800344214576110375404710278408772839581341749806829222297008146205123778753761267940921030277653042771997089348478121562196766850306338420705116578401747032457798578784506684891810129951188400372247627700009190286713534778412179246569796494533982490170934330775081574921950819551104148215385336148712488273390177351002470984667171975190167747467032691073245694733637193257702522706213989008566619141133584504352099030183795569429012875368973904788822990400712150559225127387989339097400904400679499118518130499133653099501516760873892976404800637923985799407506547557931740099516351261607019621368582928047708313070125247700377125668260094357149890012157873975033056422779166249004365930115690519572443664137376099432501556104267003610633604478161912269224103741378513328417018106086967839574306808006555575789494598871421374526894709872909351858366144149178328635591274024120315541888115876492164970302124443853973388418574671032675789352654556621769742917253347363044755094195348401603427330956163795069594801216497467889558868639964666773174677175993653125740558531680659147643362746118863646912839668258540316169236731039791961100534357782651871805909442580487630229894609606733404041769335734094202385277124050773392897648597157210438240396760479178744213261917065817809007300305240625290595935154698611212825708536424690801888418887693203602950959721115233109846665177475627003931466977766162400809975843017649360893642553493721290707797179274747114427157915003832250898780370266445816895966006117953054603939619367743570456727482521898949508460545994292077968419890566199396303833051815006433303485396351960738267642665025135960456652820632355887582946195453130732083569965467462978039320309529712468634867238341178195496295683872480472685760606366538660396117201670482318156554287084460555461990202708032597291439037546330295191827487044500246084065241240034896943889893646882480537015993880084690303756939016071006103281487074920967422162960698370382922156160879015371427030145954878992226910956735911218553411654477866279420649305354130116921168374381605816799704605695327336947430774522829081416791382088924765140884201071877988941151824146638250825552267989833953068655195792047239427179326280715197695979604534082742975920055473839568990645353819738708991472388423477660110045790652392859883930141146045608751248397941062462294624817785639268208982258567167356691461314924268695097904262764633643204372683132541220429209805983397847726412608969843017049440994353766379208813660451609172435711764629102842744454379447630056037530165027658055270238677483344849458219319722978779737790157190800323132136329379433356522738191183731277287226781659429526191117447679627498051949022137574037948654297809519041893521257671289562002865931573613886139301970655463349413089626929188808269675985420008708940182451928844387770099273534477299992325491336213707539223016215019623459022553187543795772784362169258096401141664577573357638986012878462641996099110044390760346403063849507886505671286609299146952319846148394900427329101374219837696327413460844590402564695952158732155769073953064822287810375548320978147223015797964308351876803644415901238923299890785363561250608671624061846357892036557986970233180274929750167012710814392835372161616540634405336366702006133432522470642428685656978053068546231469752022534452062670255099738564096532894088738988178360241114477439056467801006096384671656211201551592148737883489240907895709749554887750202034029752916531939633487580136919261260822121310315479686082823604610813515441069261680718757640942599821189293212290576091969642242706883748896098999314422511144637294089543654692578066531093444860434954652608064385786535634325535631848458675501655332246939079814411536675422076853656401151850088985099867663579658463960916460259133534716972189331320969967287780797111526636294941158677582518370890507209399958411973727193056335020401478627528190652952292113163690012813020070080701082064013793646434980598319553887134723113750599062095911289766316011742800817782590992844081450763287132933504673330273159512218277303887035541693323429476746274663444600181564852623742122067179491059491312356983600038710594798707902538861529908375571856780073852641775776136587045062458608256345132928653015500458977587813228255761275700556012313188608552879680265712822876310683252247595021297219808636628667140345916560921971783246047719079099883200358145417381608206892191122310719863711861688666549749088328698630776269320993659000880316679444438260554284840494371000414027949919228712026445637421394562607478947966456279132939619886666525848961402794665180090375248726792649336520500239567368646114065929897380073642418033541488503510427909405482519730996585998912447973531175321693119735802533529979098306130407531208383406532113093599100481800877515504251002536499442584411352796495055162311455766170499659058435473281615046954801540818783794410853824005067786948230792666745863088936180170349346210708426778774281740310051072946915992323812258689647114326748618434134290218073401029412301225699929483286483148142905842960325820055146038382952826938304842202187104194425018307274700873572595932135752979019675480577618116457286147732954895928454020345981946964873768819600422318011872505801287428118812758985054520385904615123131103778382544588030561726301668486945839732895964104514987499249004358086267281533889944949200693674435303081587166701864323630025761312645543043372051993934541258058408093543290266100452230673078206272831255321015722221014883520857997952700215951839198431343986084968112315500990502158133208257065399940441143444698518263220268737845051349751655870586678107244051407769620188770002094248499926012121854510325675157770352340059635313912639693743543246354517229062673063857528064808424122858488633198300100872951097255824057317756602211643631537705306535928716653958649578543215140405133883689352132968412859367909075527824534342356758040473820492769601518476438877908490938788107382357613133668699459287356185180773805031366006526281105946153218945241424167721581601365043018891250064487957522808608543524191070291058570426594129533066534286775587292329319811984348277731414705679036895958087637705073737859822395892537696010575206722533119166341798452377859801403971361352013174624866021694247276655245216494954148710163503123879171293160142918898421254788697004530162235232005563254546433326254719207589813845595578391083701067471654453666148389597912173978459304521623461067282965557307609713880017507917006310208140512123322179936624398092176483657472678496755305669596974416193126434155846019710946898131070659628966889524822109299576766198534325681745031046410189453508317234752244533573391274357988838451762493661440209645982840042067965189504327638641688216475432193579371305354949474036642528094718794320391746200765991370358929096893711413901290651327229500724139485882269551782764274032154213265188138887612022199342751723576125020804603858451461131035820474513378392167604344988812334213591530111103339273071100960586814837871369114979538429419484789692143159581063747466984406659291741045208555533954856150501700331973148536202669404559845248623610855410762781268107211564869522112024880437897211055884610722015750237808796339401799751144976009923620940724265605897696463131648086960742664145135531739198398018790965365393445232115879661203264249121089661345573498686118097869878009267271333569554018581781050059076160506903684848376273069697713707596348449776675165252454634363685551496406998883330644512825179032516631561064900640200264599609492432013764743121979748789463860281965871574444424703875848613567787614232203808769734193456532443430575386612215830914544489660118664083349365700914221499493126669743887636593405984475347732445512650321757769426985192783309981466384731213206584216021495176337719425039179102480651132587041755315435846750898636492724746516576142855022202057948458183548464552990466776104319521179974546743968464270408086435494692517704982141986648779011899716783102517545152739414509187502765325199124661476229791533959830247442614542856369901274518834728678223308748447189511182723106578764060615672667236793959401972354049448800499855653235818477709603795571099656762820407323994704759792519459281067564462709550022074033123315562927118591751480351384960787835249885536773262292025942120083911139822731425008811421401411780002071659908127066327053703670383442116834420299036099457532001778215857623355638948644961403022743381870737470021523640176028398003395209022997507060325850124448783037594499748048635398243845257701876206184489310686037536854996313694824101141100995818413223295229140560482677889354509451882416344501502130703884867381842516364305125134296474609693732707390063303726726794276298706456896478970085869600442350201047750719945847761983775326383780779110782295050117313028529393252874768768031918970869026848168643417646598801172818388655991958714223897504150672057409746110827987235711340734626745219875768921275976156270789124332326730972588819546793947056421394748707644897535725634220392983250580401574576937017328718990672118875770071973760746540784915486614422057037099628992102183269578622081579548453541207811697261161485797771984989987325746708713412157884863814215678408258773403426867239757343618977913283634844685754679166946503115723799314600641495419668351958213012837584401449070372115674788331213023324776847306901982766442696220861384720617541698473620553443361131507117905438426126285752982735636108270704643718094912570255792405467856527794953204134306994426175289350550275419393511478403727233592903280028586596604580660251525853653344305828542816019991803114940350167236329385640499755333148991073990911631446727212375885819876948715792933482881225653999369603021785472395804452182257214112964402146950407594271230674876062271877193094117541061685321172465801515362886313588503869679668502531316440862694044626087358304225126758850340891911686555994750537318521773757336127079960109701920334628990891990275912155883011096419524017168977830247641853354633881364544939109327651771658422505982245313689580710494918217917773363986900171834210602008626443775217532781418076139919686025837589874653990255244749619465269764754598893465370701472792360194233910304572425672345127313133392063170547869406736218420017348051305931181197447962679079854684474903653150509481142707461917442367596884566851012308707891912162702901475745893283379312493041736962895961873229144481538864226892286750895853562476798906014277732305375060627741629120683463079816104722652528143715594559448439639607642711289008476615421894357778085416654214723848483038798733903316400954191868971293331196870360036966110747060855417717957503714287304371192864608785753071500092440746843713394541614787205053461373266849351581763098059934686808112717882749763034326864948995954283586207799334875226330058179361056054773866277377574590224834483774935809428054279385099105303905723293236547425807298537053518859027542394407796739284792913151552488019134513916009757566431043121476514472369278518223646534824607397538906386818004525750462214528398428422319194546995135061313779716148245250484243444689145345949492234158707002670175074549655918267488084090223099283803615734112403082900431592165222021273634480850431889003869771328205644299735686102599697507026732169413820180342585353144097834084085914967125696958024540903727152010532518354321781538927551551018357200865722408068436582733863075157476886743720689323459945333303469691617543166031581657350300807367257554261192346861672543796779259169818163333897060399374716491196197178669844917978448881542269903180203663358089025978757932643333043431864196111414681759729386691050180570333390902417250270871646685752701061317797197178016581494476111338694336224905943692337134825094636975947423597549942200078493857489428074542484932590611678733996507159447634520094628211518662685863150069157524610692503950321970084793421667687930012383654890710954182591589478659460927429246331430887513761749314495432040879447408798092823456199728578254467611363261664223232032564281563711699565891614295308867419634738396255700494314365041587548397346885146967124542980690190361433904961496051348437288760117470129640992786608633701909404211338012752358668179977398237606245951586135505034546496954321133839837468131277360780042084448621463467724345735270425628215054691599310957031744301547268992966307698536264479015708882834521331936811283833084312988018753563342227358385734041308528473814457092375894612523543807161946847877201591662439021985520815637580755166329029633345317343897678536589869479977342508945428422462680303909745995686000305619138458029957800397695630280518376795348807486873097043016387663951336402123169137119943612074954426251007130454195838813119301407083770023931005213003535022380470211949989390972478642300988759984389620727504283957164929931945386914908438398653816173912989547414100557878454723528786907068971304429179890647913158045629066316868035444824090616578595234136436617761104639803295103573780862315172614907679846075376119524181618147883958395300836587354223578550205638967761124171360502510805822842018182055665310056929153635844993477184255838519674397044445461584989366428167045592391896715795552442494100572722695630341020905838238749317939883279608384139838434101350250368048596791980819989441088026883381220991709710076908879864759622810654119109760577862302879833642532807560107774313888490464922925468471111476490323039385878906858595795119332537564511625002478510948106122299160323738167732700754769093653533347694746864364306590332884783516339208089511506039805030203664158769330136442022600267417446550000147615481693632255661084638005374458912575866666682728500046329029383348804871922826292791973425775342196932758980729303508626248328396013565785979794444437038879533015462970660258515805229032048265405631128584590539764220776158903746314655569842204808259327728235071434280652429523589660643548801752645951317536820628671630153248158466656783877134836085418715157630539222619866221140179729422936410675774204914121802873646125526928103627643807576520515026696705981249178996611394920070293288309884192690577509888008904407575621156467234470277540605920870792268347533289985376542844840396962515178920473230929072359140875974768311606721165597445748505047795014483322453249925490463853206619283617127588586976133627068883260485895773841796292349049919192251516633064653189958711049436828585511580319355323557523764274295347382091663397052276264802891148531842149941079535685436871033067517383650247806575424818758075389246368312184605319412299936054252084100946732588651681999599920793866711521524328141619895325285082688687250730584266346977472066645357938542846405833893899171147991511906981956470350821472715921855213645339897798861794990293401458180437556982777163402354286661571276631159078507266517630305690423374776610767680710151702415639390037502417303766855861635065037117332901410974345279374732432295816300954420147881751276639834811778018481201918956131080454879526292548530164137228998176054517753163238408627003131933504209156204368472610963870838343695129103235365267532503333892071159671247748470626814295845983252482732170532334651837092318185375628565442850891553566945387402262324747490899876412703102871623173089316544253289541287736716164553352421320242817951465024931314966068697262229006037628130004086844387088470926098614688753365325849414496360976007980647493195506890720491619388426490132819941544040920850233680062382445236634889960256163047639284584507976472093277234009487121854784166714982471856169268402472142206553096277132586543199769756058302666320717476411877557103471570887074290991117296323940355449012518259595386613309900151556021135981297666428816918392709647991541242976329784343004258556190494373774163438668149603155256763598387640708661829679107011391647035367549098492788335460051744491541863236842118689021961673630070466848820093888207304335181534898936244161204642150763016103876695165948210809502908744644489189583347293621672771887141803736234613161190857769590943003406927864730784600131153541967242552075111434805269702464346195498848426073457664005825127574019995570354144199982945977435692115192645179018405721242633967105853604985085262885115893941571416208806120272019307047333777957827243544717298740239627597195818383790599422309459051769869988534029604640466818809837701535909028362357666324041009705655376697308149610852064029031255725976120651998890514849683566250707080641582364996756566448281892603398745514543116302259712392176451006081815946462916077557026157554483219929906919928875577637660839091386991392158366822367894574472514708588447400769416203302494353663493886240148797642003041464844865129410800500524486065621959696613666909961758600190956023822295411324270377443285358667241384126487674775319570640349432640057905758760752629798070342436315790111240272254919459181911408553414486866054768353013174406460222121962780199933851422796592020904215645651104341937226239678176605416326877593159582904425929557482315034478012144403957465588576207106430167933534758480202128545127933091428095458349827388805953335616194600983197114501140118154548261917072687345553132280008236141478871549307306880931181111566268948357037761893077567852439897167832991730277124433163582067799298113892567317378945999080645477274853358292005100594318243010715268006156534116949254360857540671231132081156086390708077668012383084164733654813426180750100574060477321415432507936445105864983477846000959812246176327199381030940965356605461502486215021658455647615364113086810475412971183824688770600548997370696273052627224749715837775584777516460722396229276597704872534027657032438173102202842100742301556236381522655883596526087062451599853989732184956756381611927660610489793729826756205722130154112681129138343538985735494100291112490795073734660732709929219864794822414668414252769964506497058804894367842914445628103773098348521236383093487610137767338373408790786575588965896156427783211545333818505380676725480895249867108085649320343280457981295222132795792366656199207691867949129466866982280029792098746764219063842228093238189204141447147221135632580332891283470380504936196590907741751744401033847224651803634863525273628789203581184243024486026278425895852139287576341916199007665370761807706568752688753316779594730478624690926753433472065487324548256776703331292587999073363159816201169946953642967113087801765471804144157462222014244518117885518927619809520036713956188119680311642249186587210227365710878132126222843274385000303843404781233495025960041537380379344379020078448940671749966481734383939015095626077945449761863821704792160983036373019248604561416819342441627635856793710255200888015155524732383070284516521501651440748643873129131479252425760149378493282800792346061726964515157307521433926807092910000320277498809539257761174772521269360639831858099028593921388570974296158883970950207048383170184509422273985807844136789833975138328417057795408400252002782686087001620613632880883772246798965357156358556889293627361624645712937936194624476885675656700857775687848821766722921924037391605575456784164292594108699726484013677558292815799361985958899997827234474128547768121780076233778386536835146340829683021486067003374863022983713001398917986758391975068512846525607782359375771581115806813643341023532548742163856739828066100977748296479094854664825904785361853625771656069183050947577845767250616069141556040734124373801974863265738212318979114122990984438865678353627780037444850928894398254070866891057184456224118564694411753752772316714155969575954607372930291292707505334685142902947260141239432714163858037442028182582338741679794740244445288137702936627878557535220199794433332116981344716548046182138704122717272697816214431416669357355983600690019810149339896403268643648762672161418774329337019314725089993972453621507567402152939414266199857841843581854656543983105825616541791153247145349965852763876923725947949245167011952350094865109574920935657596180843596172521903332310785663604208539548212350482145606140751747736212760120020200453599814868975723799080284952902272776533043872476246259350328044046336463433958960353430926000374490455007967962148058111536007211046667111997904860607188625669938393958228834390882471713941168931671422161612827121541810817974449629051303428302260241544540076977628563505056112257552595819362372056974175854380120397660081315526449115262261218523590834310218526799159085996404523641456992521827091804522767292967159080007307693195051046944610108856145981845637710331299613269543483197389495982884049288121225449406442962998935967844360762376308698692443399359865473535848388148404417238623378955961228899403509881269490599103447444450915935742493967634403769786032015852086200228550332598883572456972693773391710478876992541388498529971282892733464292024318874967548928740729937221941286547495837993225959379552516190435394152388501626227529871791842632352492049932243084702807483985517232473715556672112769543544339514527170645923084923605845746198521181633791682478557146823211278052890105306410954147488728610018256167399291916470989751075904060571991387291157517146401470696723428953202799248636908634869393409736003925358988649420501749276986975621832346795412663626220175150872320808546556379048429423100669339718429867361098685761112603026497633342647142222162811719759925441144291471070832417597198046728565020534984833949075126106600359632752504112468799083162864918218909492541779663673238584835475909916039678640668046320686830809629918521452682736281287441248047804338090856854347306687966254873115991842010937802386366800547103076400002061646724650524026880247950573737539371527935294857473121126206443200785572018191921882592029002251636490765589011792230552779535444368873456696013205562674604581877785269397409224259513709567789034933664863048807850229858721338487481481187340238269407974040835502139078631890291492418221995625254728919239064452998673162648083659320839920208408679956709851612458816622460714443875700141956284179590443163165427255735594798009592062141540141994387380444535078333997537613452739081924100971860532689806910183844944889079793492901166351703154997233563685831189685436903992452659340142951904066276268852268380073233684944957782032939062790704551888258791191304702527772911608257165810666008159943485777751987492509322787369441260582817113763876728329709247984550621829593254683823391817661330630016763525226706281133528898614823023133799588938604635841572569964410894939581866237753978442976346470751173727953270219860276621550769833898868495604286341562059873200944541059828003602327740107721376248208186893512576576369041003947841506752676558794924783892963024327067161051808321058591263845326263150286293332921291188927294652273870789380839323809248407410143298359418864389658625147542486552229136448002055710303069842841153836359891211956432721618348145581152397558867249010396355343268850023425854529571317613845699855805883962438288240947917725304433790313158586181578113595745368061974706993792447662918401324361468723041780148302742560045556112483819997457689415772374482197507084840200426344807928464943335365150922838754610533299038148659363566123806412487209172931309168142476338691441270232590368028322533521680975848097069590868402870264324642267524358259504212732397599295064489549952312123150393786796947580657149400060011611896409163823259125208280725719776052163367258693823947708737894379081430532855159780651702787747589990755981764336524778803827771041669382585568322475368920257217811233455774379066480407811202123055254189026672457159421860845526682762982408121932714194081096496902076380897743270453324976901396363175190494523933813145195704317431860416102941809228137812166038104907063247765902740158343287439283338612686197019903835693666687837598832071569487757259002440544012243307733649338343479288604217582085396068013991278251658321865683703027375552722351737673420262869239234283323265367510611928959900316185959796864319646009006386798933798187575765305834873150601306161888029012309649944678533155372509199959231991616882051517884848240719015897947751070234554662419928254641069047563751253322776379837086637947859642260738367470332889997698275558252687647098311510459975666456058984507718425617401179438234772887281038291214605592111359740829330203545835579477378444953892193798685189269203483583255870798601412493523908863796373166064465809278551589250770462816126986200219152682880846324067112561436551595146449805680939806448585793531719558715528339656172199063413912837750250092606386602852909337733070421464637185043198978965243792666524806000153070935964724087853994051114151419834813076033016283509007436873890631908513305934368953605708774433811482264462593855715873246369633237077507258602867617963409244268991657728944569490778954368173354136687726405711491324303956395214587242842835144937833174880364201700276430549727543300756706339930255514315644677836911117240734166991925204491117872091509421161892807086161379537697033526937852549374313122030380437472349383271132345649256814165471258330116020822451288782499927881802024995246018296783449445320239378131013045802030595708283065969798146147079037729828313805465348715463358844474822001584847340295253723487950663837198704990497299150625006288578164351844552541625630677170503083311224252864416300106813705157919352307819822027645587453874400744156986833198588711174795192226740588230304665879887520106049565979271621936242463776923510133063405651899414931909225479298693687660035845032348224787162253780153116545184815888210600953589755692470860989859907510295658777755182431461095264614362661573583551642287614273407498249500655043544311956196353041958609125057622472821328801463636359458717399454890961934743555685839231833881856880830236844676538853237865447385821615993386682963123408258984267585990513569596661952665791003480766363966733910960236437217501423464166118642738122912976749449026218356758534305437262464896421056259636058471303024786743001368392485430286587989594298774133789715521884423148533123801478690705814774379447395639402583404761065859549161012853622034145945808735196580650815769304699687059727748002586104311124630137006239667652374277832190522210639435248735376286739836842940393812419210984133468279285051220396861722990156256713790783807047007402755501439762382656093892754917754390828798233639054676921847697228297676628103382517232523088525205245264088143239056914867555689541831057893490234928025437772857208858831799318405591978986735535037241825617991221273184992841197160028634257176717324315138213797422294465164724235143215700950677952616756257292322900757598675907854121517383822753611935685429597212479027838764021000238090245104945236465857047363942484341437474629038794063492407363076764721635176562267430567904513699374246780744825776732412788971144397380288516079801149912930360091345278043389646396352072128535295568731049970498895024659046101156657061479190687174350439616982045254737014244834391743759559538555337483007182980231274846906568977961994295668861551621876193470890103594478494678587166220612210769006448833142004564674415314202941644277046823099979397658575395756319805676667545970498384712463162688315707355539719428940428246293748519709435526128327428020574551732624363988104404479418684330783143654337026445287933721973372993324071426037255621605809573146521178062555127234844192570164325314563256870646712286864987260481654595489302617106337922947495657109690649360551083265940027132761106921792608430927436485583570087506245461208202370421517589464909237535836657731048261136367612960788352509742987249433649421584896443662628976182191989748871357969466275090631773391093746288824734431325410763139501879540559958218835514801271417842475947690421246256152576444228813609399633402543699404389352287406744135777584876655282406730313835091653104845591535314992136686045299379909153449984450365643156363329100659601666962412676821891583699407278940466640910442380462573472051944138119137662740090666501818191081756231117479845990121168463924069668849258984696015417275468948666962759414293940834295315417647668819154679138383798165652749909909948700741224681390971779531792741408926334943449915172532055686486579172793247443717215081516051807360827540482404162538691333465189945325048123879736865770951864262070324911035285647927760664251445575180526642039620528628475448408356268340482074912316103340106940611752079821339368385290672296879992403760718337947439632730539640039394153495659933481524258123612957631595948333667788046675744658033165719785964329109084831134274513400231510524245562128395932047991603061156434325874928680996668509831561544960981918458963263722913828800014387410724991630441243341131216123283764408217269097477217045676245353223182115322856089990497023710433857956244979872767576584147675413765000496687185483077300471982935518880776460512138984527715429421354395760077772498222351020743751373550945975650022413180535014633299581988408892044865106459240360009995634636825507513579947062355926712015726113956916172080728833876941602422042729764715469286716499050246993750208139777031837248651589346701532405756929011389472832631041980213587187223542790389822317322572561985816502668942947370093131155884158554357707748839401916826891249663858253940580593217672655314402879644307489380834561293451228743980397537752333808978509367084215027458465400383725340883617962992078071627222220194148649860532014147568935460152757837949260093942828402517161927742673006150801288558543957201177239894754154174646739352385351757837412120902348574255085133159673965049513941916527701353571844226362569232577106853384057289505966023083773787668226805050421141408279775589979546557401618842188473999759152052078442406255889768734145309111481978033721225502255033093783141516138092901468261381625112437144610336416666407886999913764419309509624350637349524717678306101442602740607602360947792746549748569356875119213958979466323112544458668352689248844449111935131895309681067499832144149385129157690343600493440659904316705036873535037405082984624557129663983481625890520525580568613203190979275395241080003825801950626297313876626558017901289814587298026460113070216220428567403088134373976774318714867108697127424572253306440317387607134555027927666618201986695737176417244224932655347739161173489318844974361303730687547303391731033567531415067321290434362658316217308120193428826470082676902776563585787981467850430144518016363667422047331502122658194243483259052814179294272056350493427683363486255357117106788882001823345622281125437471734789648929130779546560688516917470051528929269710720367127959405038908325373114279884141891764625945569994227547027474988400580347043217828679966772672993221765335163423075473081743426738982091790018531503779363609647095022310659343294149002368039002660430385562527552913295073500577170224380319219027370991967161965638421314676269988153647206562027362799644151979375643571961694817728924650861030922133665042722570356626123089152529295090499522126114645868881639301023280386403157715419765558149066973698564693162588908000696146352921427278663753518110697442462356565624400019306638997113722037363820479265137792363500719059238641551909708104709510815762500397693320653251752953480291578413291140247537174822907862657069662560033120751180641185944044278551941221291749455546305530706465218143537239048698682382743071646292282244130178247445414929484699004221146114976436828928302896293459230906752402507016672290083127845597357213232218520277129335359754976918818084973695388519079033769393725762044555985562669698795266728089983806152092262007037458781710422593399411664212778593648756058957921253415595455551614404749680751929942491022716961380331351423855888558885456427389162561226770517607881437399648753167818184736499691663282415502973870605098275681985666474170354752319185920457232054610619671235781181584786732084666690298588101583928851932744149154417837872008197312572360626003435838321841210238053140580231704467066638323768029239834971783717514297187406344904529415510410580376091758418474515922816892152876743311431111977300688796230011239187780872177089897393108013275211701355514854222661568669582403175387522556476046737398063777064262164782150752443751397393134027105038340844956781701396264969999446890422118666651954095509632253010288417376983734520144053320172982062404597760175064274967649560038970697468675301732189341419461370572537750906123663565092647346188499421665117488233163117679109670252435077044825656753849459693679483262205537477539405385539793631082966316972284078479768514989856856529678608234452648468790601661392215169034220622774496486671992890845361727387974362477481189082974234344056566917700221343503896737580193294072638832616087004972533480434489791117973595141439608608993972768890626435224588231354779541856730177850471284376028355991064968865062776786988294304478846738514252066634699691634286963922259533839492073121533347683394310838483736317191965711858249302518714736897109531247569738849221515004776602310821270277044204461807107022717631671159667223119067455042963995570489426321806626256116019871308475319006597864309283148580518950353384157091419166535885200644503121475339687756950750740295081676238583926886925424418980310391522065224502616531413935746222944824847831152156404328894747473971588916231547283902613916270313183865882546406917924516229900872766784503968865045315411436840751281803375081880566764526537952090200406183572198272286723830499440255783763396476819184237096150053815457752629773178864415810787657630844899139002908692856104702238417409865712279385414366515439724875979991699505355780393513307355434946236079571126369748480729169416802404610698165330969931785033722119307955706843426294402364210629097837204070812273401128899679848228346542376032561408675603579762608134632181802142905277327699552471271647826790471827271162659663757086035063593972614363293422341089051574335169831259963498011956330408382429053425865875684684202400621338271706959151774494578703755488308142313255948310575458710945863603761792476481051618027806068709892596182403533126823577815772994997731933022330266464346959705027667990047560586324865228966591780136878653848978587742275176393033314935798847585388902378663975513671641755729264048988790814591351603515274947277221775969285572163199424938461871751573355255337719239317198902483876394983429972018423669236085800863305427932698808151324215349942644854598685666101424039560109453762449159149226814289643526438556391088553910585924719130993816894581556390417079883369976183101868743708514451852253589972009532197563498496249368522195092911510770466367811066058399011912491433440539974123006665623885310578865157402593371532136968347800875287002800195027374679435261881821508221616542111786190592620669448219460602354718252791474773991955788059921143728479089689213359187837409261324494988347471124039940334741503183728119732415024178131192731992971019387551636388658975962597080964215135174374925343002582113333578963721530724328050288715467036665100889253679301569118367670803588904794908210419977575991378044144247704840786137491538835992565857947741487916755538036777110899251095142430197338948269403731598838349026228678245545009456460826955341570027700879920444328760260499337276809296772253144642782032930170096795653126628308200231545128586690432244118692322603911411650443146548400953703746346386145297890387707141669912951628580604927484471476616745925540342197389050800097685298631951938178113576637643354947641852390337082143222130180731481536816331784044102497084209367393355870458458912356797044944612161703390945626146850916001150021235541593350377211147234068025037227234582886921941458165489170952897921515783223834878431722836222673336342225985584912803104077028670123062098945171938361021326296546995195882206690133886419738162883362963547852913978242117853185834170921113821372189726638764416140892354474033568680777562173498520991984953887622581504695333223256150652518531782323882697852635167966201526266607191178009156886629117538724878166182207529367724589237173815043479570652955817579175536079891198780124582871431686293781254671110536024206946776780732667659918044397544010520651590363729485840958043153030868499877582174737008740904105261415547588321634523872456147318901174039515985075265989842331090978285167634090085034701796918477036892581477524362289905500774636059205758391191948980829982939255925018813740264103772077143459825145001668028791371010158259915607936021520929971119627869053880954026359113130482377884704493929052712634423957615190333172386888827738968249676915744415723042495413771478301629714271238020887697880963671010974624185488982346153194068450605592726589663502819587009627282861399672164131372330498530401334517257409709206374227823338485223650875927160298803809802138979659865440789921549765917950430456461656283601246415673590984837757277507865805583539186563239561347832527049320975658125516263282365311932739980184076024104609407431789991363352212987902216006191821865169321611769140692504767635445480782771648631647491535683343551347444636768146264130689737662037502959087195454613604878649825153164199793106152456445524580405370613442791551437180790945809749106250169200267517458246736164024540245314243229799341765963823593972054060088943748232156596364163539565844993488307940118459697517377055280095016470927690779372471018350081640963173320861042006828594819031856221372596226938801580270513776226678319744670778614658403510310454931588207911269844238561659825002242561093038112793251075384080011488021837490971006969200463781606683706098173028840350336127107366061040363607559648972247407704031911765620436322847666141507637105287315588730877957355750842765378921621822944245262312768121092635568982792926544627833762618059128727305726275053056287366679779625147097954870478294384802818835716747386372876453066040514704775098483392441355985484997361283895664763563083935836731502263703077918528644746120120091876372149157324370321960099076348329853282940871243566258647681857750320223618366664208237205866311138007116564343412548174701579155456585485323299810724497108636305374574097848122852987618743533731229692582256654550877708869281919926643381788446651923122629992716490401481065736288971656077295140599304958040704498098024125400594500863560448959551904529567676202573009673579120558417028139467119544016226199822328749882030572573121567685877603611415480001542058711659044957653407450014405010441973987255907632894864563319243527595752742184663804409763390420320739214387089119127060139053426798345406381261715867309458512908404816825844197932660476861309668407963678911093406617240418336800463382583862293428076221806081607111604497788869364441039454241827746344357127837104596803407365172677026007608667980848426230841107918524647963450745747666313287188030883500431797223309743323533743694802044249790016950199574134221866276154521138444001780839282586697053436232147246957161441862071913845771435258006297322543590385205805794058507356859588604583943336197014058575503500236902594541304616385909355093704532995371223346480313645925102509813560866432242325406886379681999292520264682737620985304886575855760270475249616783942481051927126015858698593784139856553460820190740031876665021337036139628928451693791930562452809441451024959007676033663798944027348518628289998754131644274830652211093452964304421387290249377356045407319652795127487709711731009744661275648942697931429498690921612187092119740454049918712997680689371254513750486408408480502255925330258157997315033676474536414167031826100197386360901753738990312094222501269665194812406488409286518644533442825934724403636850131325567419697578099181742514502217879908116630817273895694714623548226952431603770607883127492142300325939281582850793133874362935191640057935549814385411552500450605963371624475355765509390354763127503690875206892717115933534699486773643373605945304510919457168307307860820159762995081316514074195567405052952763547715592054298946567169832490015700347994870570095838564080775918201790246802104916985322485371234655657640209193415797915850024322254796608373232165122970675667047951519698097214973327607146454597109997868052607442486274626049610526530047089368391194509820359116306618215445479346302568364285014307432020789617367600122896228020167463905313475390807805098995979725410553634856266647402319201202724946807317689351159449782493246061656976196730480546808804451409298437360374806114525450380800793054972486628708852706639492287195242591239250164192897228093698871575484297147623234565394079196473168574591115373027808522044926324504030262142868215371455685746692012589913725365806221765206096828560870777400091437080945188697526249093070709274634413139843822623754983656935017190040296316766383311780140169942075266528980674571541028467719837538580403486054340427712426321367717618900793593425296587299711219070282109625592529631244214197229946344708681476610646548382358274062435974684466959209163491631497023937154383551688617505865769120704887700422057441399332977767392040220416236226454638657111293175528877661751982717135068203616666042518497391445101793643998999244405543813628152747258231371603600710085312515486234884431501225891987448583972488118963824046337698031675060103638120498525426044321619686251646359944254568338088656688621514392212908630643734963835156239666389847968732091480347757786592653872493838958710028370407281957527076638710357176641189883232556908408153472488662315524799113486243882050705189540137338550583119448266316516926752675396850641341607630457017638306047277178099642272688880480527780501613110184652811838210421547360823318682408013223842091253456461585530029884712968645175181464921617810594162398294493998090376458847410816004514040900887868366317477959917029539341340121868558977856656281043688016797703024152865220379781446059055467416769481521235069539540394546480986257393522430362933568369397600635242702618076961593942359650698776015305535812986209075495829941260864082655405812557495041165600928365065310336837552072502638663127032494008354723251153499625539156476076686808709161106596490571441690765676272369995899751635071886297045605342708299745532001243038282434501913515566458617242119007934166128391373519154373827314216116935944865918862872733768657670436116438737581784225459934575672014192865469700348037546184156180317027422082215177920085687209136448353839270800222337643778924420345227755726403759737575557249901962563236808049346269934916139104352637328221923353182055487692657378547512511673687193394868308527088334390643019018708665709680843429258862974570626319575151243715820458410464650912667420496013557699837725507171003420307442738729112001895607066324410350372240668277161836448446363038329719290375832885626733538662860877647269033436114005225922095587498528118954654168274493077208798938891918740049009512376506449092537622001625203046659003360866746118204836805868529336136849725230205384374624980734521904451558633123527374571039523329221352658286134848779234881147193656557355818526470758760781346570161510315919999164925031678054907779421315696804809359452658821471938073507590059130219100643981073523105756464720439215189271631094597687207875586530867253359096671375346540744483364337636574324912539069633905612207618819655430793481971445636889907856724265999861245135487724537600210482978057551980087592444488837553870450869297269724260225509327236969042439635276346724751804405198265386970601971156528567663685162707373870134896016312229662674193858771504362312793250916282553680818341820460889666535200520594499903715450833024979147610897782119144969543214456323981583640953568710101847179234787323577792963440150698244619135466933792439226279213996081751833581730296358288475866963044282734733322141952366094289300342685703257389930139153314131490104786728757271324794530599075585708810696342340407463555039902848389580053004525332562388815815837455300829736900527186059216237400135858789477212623529716037664245463633310163476382574751237220906530325465331258031184960154618812730807719200126828312985201583134897766694606767641059392669413115863156732355989675237038147110333679938180671819832351780973221671769684444292156048380865955910594501397102885082789079599297582839909586796730445286738432204532820742789225976232843967285670188281334277319601026288104041709876884005476557589053655053741059564836958786180664565550366073796937229135359754603061991256241524951500389521676672143591864592448592394565001103832871843948239828516217183671644567003659000891515255478170411159710778483237003540370716523339119114378141458353560093567663743457220835047415660481047673707280861735393259154559301030556690768334933639270536733588969680365392083774435389825401640384999454940950877865929814781744114032660046895557340287687420359881737301200611252180475201838680000383500385773706087787898369468505914262464962463283817322877867693880877160608025622983360277991858380138244455188234399009881563823193471087368576062132338447387996393347685044671200673779324005732222071210846050652257090748466286953523242256691581487090851215042243993618105504470606528920162918892426239355846032895849948404045252959938449842623711449791587273471036732111294899091732104740941426835355374270914387525570173941727474796850247528883553370798265066628648590269484272770455621313692845883379441404342346725322685490788390956240115637439351703431299263414730673744539437730892528187871094788124190565743027571032797472907226071055097800220103491017177124633478834899348128579781846060621478617370608797351154715696383515603093367505588201590311529578534087755781060541955119123869661175057307025587487212976675351552083957100752609842031045444995553723467881058404271399264197476486097176776314417028212947078979110602504174795259422030269146936586476567645021579707518301274440822501001955828344785057551067443804116403721538633177421058351719047397328265241500107455863540070354587982288660387524964725374730217919939785923683611048154596556997395173007039461404473078049163989053943341520171320589127674922425907394863592823222791332876832139381589944211878050777945114285873066487715087456177640000275403785496752489296702939737399351884629426480544173976122362874341496364201810233622605875287094925832669877776038593413058522687955742843518618964686420463773445182942866978773289755708880541316015413087508682047299098291257361583446847342239162046030187903419627248077255059749442257033366235624212805166659420194175108886768800377534557498958090854226149492921351051243334507812723697704168763478987560664943087046662723419698250479019617406118585498773810709939827779997064309831865699736504171041775166484044822362115637842308394544586698369953378621984582501485219707778568027210341284457121725112075906427631227109421678825292057602423111892673224748705971558036304587025061174999168082632508439692230835270645926624351374585454946798772837778543729560727990045026594190582101797555714119461004146050300275530710247546873247593204818648334317594088160505829639662709878201010951982288337902837241309784176042124914006777184238216692678995328597566254712250700104247400314287025824261787321267804054037349899829931181443669863531556559576170774835085213390972602806121982817590835336814792615848925307524069246255950974795721613065887776445450229017121979759682650554596410503112046456564100248327789930735729106015612648051548789890781024906844951947536079015900423260312339766349622322616590969196743568212733360165782768629819200497363510727243382602435791084702826232328736323376502051419179570537126644780506264527305109879775598953675328447677303418025484589128013181599559984988443079029155882925844258960257569181175230290531615085958564807664866076577240864531505306229505079219114211019379966788963752791363817715116739144953829767721466964781890276897198627254399144120844692489702499634452619632346129048106059896579377762145690109252575852638211285308495501696508494413069665221475335625875929981024706009297004851799039516566812114980645745681788724922105477440141212226949971621391177620419256998934669608809215994199373572787985674645810535045566513938316975710510862819914389222863806997573211503655737180480574725952861981726181716062907069643345070729076756116116394327691271992049338200083296445775070866878663592658890806694253239233527034282394088328533636764600364417745542376434623420803535825346522967062469281294637279875360602823059899194743044156867719262409813394098176084752490649152577931355998851963146339919113929689942225528969973388733753991964196589116702183232289007167185343012783996796943217408609189270729520941003404041246783223345151370382174949386423697342186404492262489759626450372275305308584466567212717907816100131231808431150591176837704533088495892582552406803798721288684226830217759369178186289633370402021058913180800780508184600241859723010625310187959081027317496843311997845673270089270132962836571240074043759122724263322698408707967535795875169556833691860925812672973187304594185973997406619791088410353745705794344821480496274240520837003220968680470389866378507739640822448259601534833402608117784644747544496834712976349785392908406963391454159741053237675082219396699744791042475941872653228504927489709534981165402057761094187108354143447444870954124598689245342306787044096718966461444746437590672948453045054971176432974675261613077032442902773091010948257879597028683907802719727243992088351339829533555153111255352325863755433426612362642599337859516019105307458299997426119391296420502486461508376529382531402797765854155370089166875323426511358766057995476703130664633941104407586349231242253545945887695637417305837418556144708501008061463204942248302807551789156013986224048386180770702628774990939715437893044977304103123469434943839585710944331401785660863935232275352929244066102228549019947074022880582923851168122123411662450806954156289672417552113882321086659946616283944441614889439577442759771981027219330243898742796782646356259012491488904630577628797909232939015459635474770946775813078705866525371834352541156191545972322035186814443127648321189772360322396463138870873336149195581993113086088562321053850575546157462125242320826966805396564516743824077845516067810200418583577272753528514050567381295462365401644219224657124352795825999469666469368643295392951606419122903955874754970395539736459694150328827585640097906809100304361518330913284194582043873211565409423085763121036980720824842626245000620059591489803386986463547684725148786887279547470999601608677075968099264220149500437176274822819434838934663842493306051884785315855805376299521658563055173209665364342579010388734781697511368245703360956192424695273675580207919973854232054413048303531263543982425783628136862005973505758504578057069395196365977405171163207097145874570122241293336274506734630583227560098031286364224172557705042460549166108172351338418606443970505152392813890508746424327307683524114419589004734536858265588890884745496522413327830190017860781079323176638051537657512040619950654940095571532653559211125880319892947862599190813090841530860547724915837084082977138316589259329713874407247893523846882039635173775806938724538603191570404030982607550186678219816176106541357023610818330144076748806426824357408222555729475631265000576554289003484324212856399398454342501955103248045598816521997256977466947986722585217481016950515578356556717815570884565609548314957207336715164189716298862133544439762288763449991688880631191041756974345914509629453172561229988359652878710062783774384225829766338292255225134358457194088809876406049168034828531306179359503513061622047667798526850667126230592357623154487015246944639642544870074176295618414181827780996821604592127322999437143743082444466025052778664948039843846748514794450058685169396853552600823169990652314058321373704191399035166418946597104891147197118187538437159720637765629552654413928192811514712360925985185494284297414695806397940940593748474410554643923004331844747653005883894535497456231325305265316518520773512523899801436090421662325645015664363351467701145085680529041526129483395437928975649695119361451631478540229706127633707783374176756986559616078116749216623292929991903890959578593190173166723822139555526594732456300222687149628560809947542763524258584651516826631574948416834438613117235900538014115329216720066370128818334873791803422259894209784908211282145135165025563067352197126821903347739048441565296271885140582629539495752329845249488011448686911323929960087413833302522102672469557223639069032830064280391305230054658447258760368763154724728854073969974966173949105696300934449738526059031024544571852350752808128933129426147010983728011106984893265683426180503618828805415054969973933223364501311741377500293351024777009057329935724321630608004483377876486403341259097025840949515447771478799128783876087755652837615034671489415982238075286680219618099009901758190195091171168589048272202759476500354132328629834276332083213043090070140420337881032612332889076190401159556949919122306587357123827954592396858838700724745485672829474140029675011529554806738423229780506120684453441150684354977633413220277793338006386851121395460384671940017941288054220789281852407444356671103249504482449985843834161152373391452388013655276718960356343930440720381995817051334825124403756328230089133630214129556032844451094303103538460624886170316225664057926558437140360401574684583992503130861545768319237434287351508035375357908693624392752347986498750620341869221992516894402375750202168957222319665079113206817675507130678066759521923167164175958149681433066122311941437718763694248995519047188842950495327693585413374068047755611619314132776018772391409341928718910555515815689957288961460637720848252844601219519093170610487913962648568340892437598379867823851643910644863546375152126200664847885175563425532056018333197662103884841841455082647376489997821782850740529521148441200536621606702158139579252190244144332145679250384786723246032795116253321226055082063662271755980898813539197951461944275479795591859530970753358915693514504321564065947368328689748503128513166804031122014853861269542872568780208131613839247457522825600144896785841465181827148568417529237631139100952529450709512317053933429046580465680417018685428032112007797743871564214966684795699369854071582420926893103175329267049992408607083069662901968027662372842842411130225548157843315484448614841643775835326340031694710651528353652579807502661411186565015259480237043739364701060570485870492323734832273705492330726299486218683440254526073669776387329398502571351721676060006015133996929355649326322418462628833999612438419210153163501230770540330821627358270536304797561037294349962030770669867414564369843991451747204296785851436378248550201813299319308539383303516809127207210694169406250183242046339071395696362993081338888911509932901818648613549208644163221078191484729892476718605332826332567480796840267788486353191315258867896318783712883217277013431076555063815949505915040205115992187300610274445827011302113794658632750509382323029352300964576477549437730985886011213100272348154742605006939674954976088100496561548239557740064875871673856861624450189865093886391371631820122222294738318175746557127548034025839712048492599388730691540379858970763993147817190534190886433145266739363455168687243839763914193023584807567727971456430574556371125892525568024593021281376245356166680631449550730585440595463293417690320926720889699819328096038837798927876238874962765812492398678107830247416410875574470165262632065656735988673960069973359935474525780914119572550897697517753780575865578372400052470859359414287982394097651541323559194214355963241161016052128112368899291864132933965898802580179267755857239759392143712961301868401715411975409287102087986898154474565534754448751034334790369360961042676608625223359863444372818565283181098063837635365476732132911278277259973858241420593858803364730110265694416442210369234217952253287556086575124920255247642767004704974247478891804836847063047258244655758570980826732814316760424391738665265753234092063059222717339733196174725545689617274513223893896694350174678833383291022971172406676439855299636172494309356600784077814690268170228010150020792627329869258597439333200983997185402212816998137889496688602316010133326391129147788936679775141234966427812439634990969301980425790160262974934789448932438643501318737887942898911563464508980866548764662312051396863365637459922426871431562622757834750670961553374312532147973022029838085811876525756037297124945618581514109989225917470926035915694382423319971789626370093931586788971185281723805953533541508468246931116604186608505741238900363461135361091148607413674556383230728581039189726967032028248756734917305955131786807222357319368150393442653415535158522777376453250807211713994376728210297428495528368642086802075932170121118746302853636580380620631849351251347954275974385409664455504346197705776778699442603764329770985281975922500663825667572105499330237530464869316241989947087972765569413566323926937809432102762033266815884837676019755361821816364578707040700375588083299316233735187430383339770767255734489469625286372843890447947463425758364341763672913568737760252177310848829405105133563897987266735543604482327640435807484340577455673330082841803455448680589155146807336324823794262590509489041531850439311959672392268790208157161965345479381081877737286569923549445422306784207763708338583429882872940414557896838263463263930694932986690520227094393246024159357363686825295280860724085068580372264763851946175159772712855675295521131510360343342273238367305667610292439576454769149890641808938074983121225794170160633766080318021800798891482627422825934982967441616622815700452685920912420675143159249856012861419500558611262775208147801613438730910137482469410570095947612209277142092118520151366839158558279225744908647916001748464174675887849605742315406331138157204754146996641736793109643922284681687447951919365665371682165152965555467661988970144537113250232156063878892799227037664216778126130289774038794805329914069327585099891568720184417794705876445094281522503420795098877344637504704215969325135122431807806056212279354277398279630032343640900963293308943081560618130952622998870200962293679808614793402426350725042735985491698539322052642608895341172536681220955794437843574855468240503162918755415110251772892927628653974758199063272976354840002564352389819991234639221792622698036167555221223550066906275852478194677845414745975915474758136129127236065617870607154684707483963137288172360044639342078100921516195077849286188966446671613497146372780466029398582781901763153047215280151520376467971293737564205945465965881681956938870478101531865654773953829078256228875636467454909180782581697788768247107609202214737373230346032059390169223642929549787071767763800707198164177936194622703779354678451818851265053919939543970896518032472343894500227287167239617381744032625593999604873249803080081938923051158162332595202296594584567440937488458961662695875933556008787437590374508439667762678834658598653826555160098465537128849094978289197782855647489700065231417687480344117817561287466674858918686857997220327841440328363434187537571377819313498407815995607960780519203888113360861258914711539146160488014842965468747986707286609614783166768866872972972217282229004013478861884015804765007283844282189583843677171046124116974588721712842001954093080182142361004807544688199059965734088107379627084086807503731146946321234316268977811759163905315437075995541129369114594803372994058893764552424424284939949079190163338736176226802545183873286932591397041884258443800253353317608666469509712500033124365548453102898213818236528383266428193552678286016798926435968371578335788486187220007291273255158657725475778400517327733052710378802095581434495353964191692731735141861052888019894939526225943876825285887521049716943587387805846981080682629254232723261190693931575541988889364332198851962921682583040586720641679280296038971444590334316775720283204698729378524169618638346865767883383120792127916056453727406950468853903811534438714345901217553848118948199616029670556299916328311677974566729357855017274644493860704799538499062167774356349262415602172580989063235390289217700353181186925362306758227178346518541593116332184602988978796756953087606868137148010120023256716733884285537242643390818787577341691285480912833549117264257498755922873979342952593161927988075031895869098251443700587234138834557308882738639876941929208255370807714272560427613312154866819810631403751180693895665596411448244712273889685488383879882049723231989318250873801132105586865654531642557167629376728571464991426542603742371636314561317958682271373103097253703972587315399557099025131972786861169887481232516024572454639558582005176182206586530323405104063176158644811267129687677217933728289673417049503696602737400943567376194256453665026085711820721975956017401767938814584319633997667677151467947908613846571390321245501372687686223773701929630327462083356022084666364935256793791608786558939537527356066382993735238467377527993495577723218590347946601238709102171383464992903356027375263135310227222240518126862847061187929681228684336471939024562306431190408808984642997793679141668462203760185897967149705085521951097967292644756641085685745173465866845797471257880647278897328490555114743934155836801445695677609877859020878758189547186634519503420949323999158188011995999138924997206367719109739923091160921988678450196525398630642320463244311022789016032646678090992964063879210056359630899586359357294314880399780129751758984856472598654792700171898581683779283195286484949981516205786173392356171775762246786520867018713919380262805706112952238701176135299478433800494461228483169285405457081005881782330828222429905001189274190592224785221962063917288262460905557391804437132852520932708669062831451107084468059752839000035784834962909717207342523564618235492603343917042551606892973035172385762376140559003588930528433560726088149407853380014036996498292815633260382728432893882897787200796138413426934854596780515672418649398155868372262175379105682191136613597307454483378772298279383591789456533621073455898050920146345794966777971665663894451661643798083762447273086854618191429473769346519957142025738780833621458394960869975574044216916299885796278560982317439362179048291082669687528727202211092534599817085285202797975849223828146945516447759167972447468026742064936228190460623934111490902790247700966013977065896738212306200628633501141017507698706121177032364587496446786256479397142531123505542519616902290801985668894313023086697353617994430307924245832416971802049683309286655470992899870765354379224594087665135106845453550335747561773365645547163519096587339149351475079360013744012365659001122703694001073764783018538618948064546255012550840063596125245050463080776066301005379206321215201775346638139274768880309912597676731845722837493750178161338733829762277012055219839368015208512195579032909156587394622848066340732226317480837371145256678356073141796237537761560280743507298239655377513648416726389332950347310527545133971745983751563958839728266375846082739845697556517592437629177536018602862480373053739591257324206895628045099416666819598456253531069825644163523703213326213987099346665702840367923624647931538952845807893555238918411709044399064588837240229184740696674056877991610075866909217908255197447877888140386695045161584345528593999794798941616409494680442894207094084162652747387280985786625545752522720228660744880712375155193916961596981695366501625595497798784282875400068331194742820864878769814316678069319285007597100790294480273699181889553199256177257912625715593365119281663980086413529416444868955340681300349978975266017767388341632488559156901582027784860700323797051624693166729909097347875454308531018048576839161020791194845089994793942284398283533148832450439623035795234978653651462842057477301640760313799635796176632300676181186367867466520763678960498705701368622386857039832436230690585095303537525230705815125290222919345758159624006924370120424003928578590574778666516588318178207327748512807016695336938008789108466034841683334291963678658453655259364384812282486491449453489048120103704716491500024538150543022049419642558129742562415671561349196951633138931988485616353417580502939339501261463072286008766214530586438871161204369815908727183706656332432032809075032141277660552203383264518951317470611444886624674867293093620401518522338073516721224174096043001281970248998909279768029327993924461584372464515490719704236266122591217825311019331803683739863202877854340873389268893844674538767311756913335167349458318160697099573988027352275810665450177285533684916455459338881522210818193419762846871456163838791750231855793014561260823982161043215495585233449530797912346964800227888867591767295250588637268433954111060691695574631818295794210699659909944428216486977788934908421807464208935326450321676450620664465994292389880454018988613472613100685649594069073587580595277674806969954798456427475755209033504768269934272207216358265560405963288769336757678611982098312622763787794983496406006436785059935116401930177176087656074757463744522305246424255777898414176642725416730239573121069137927648068734276574229721471451531477631099893788852693917843880087935210278473589578050197396688969586087201977532492114961110955213004393983643377703796643872993624275906866872780991819386591114559752772046173343936940231003038141924398712792409980275228674055955061343347978630716638950453122433043112838251627996710338652145929233603586327977699245799059160433488618309847212354199167719754768893434902446503544866514559446068570637220290339391748176141435065375097891234373982384085440975768622887162427151134828667652014280433719908819851864606318003655134912052937410740292406416826687663431787087194718098716080050628885546468467353862244221856401074328358735947978916899147084348252460646205101663622819210040392619153591927269574679920708694227011777152255155712378701539354637351633150285505455502425060885569866159970269770129207220302432133028805717710482278963157649415247065669754750151590290715758596524113873766494728496049268658877854072372749745094216274423283245816087258591876584440315859674846657982839679425512986758585171129627241783192698214931867962544902833062747300526265186792668051131803755644495693203596547200202550690174690005056222979134419551285937096568530361601275899642947874773489397931279049747304072089283556985691176561962780546396800741172192678338251651571071061176389275820139086316053047090487740307752791289754661618073034171606372418530321272104928785482795432885528360520594421190948410806834910174040123123848990831981675246998766782555360450594061788753745853218682644949347495057731377689067516564969033387575157246090775427624226948565771677373074131247777293748958763860369992563577211957529071322938651443682531756272132274528364670175322236521735453626205991067039225508562169350565522692332216588471393828122087172760072083998296740001840539117629751008538185144169041049831073932380259603418223719284138599898788387991623743084395642248911992950695482728564272373092170512796476460201694875460255973093224645448547342581656757511692249238569247352873815874665238537899152713481281499041526975284057533267811079490881415104635936465343527395692183309527461284723172622231311478733979014219439932292857621347402538271240373020594665426124184735673603120512939498530853580702451766084182863099319316319727586652325969855834655277117987126248154361642353453841164457031834456738450766452376311851254990415015131732928816465779075281509470700362183076185822537197193655658533245370128066407001346897165499498482082236817387306039036969084921301953631136863947445847279370059876378903003255366483607147179840520760036363027262321525323604460942619135334816933344099205829718919361280531772034839396220083137557642759729033273492667070239466592981762519393889969909421886902014539763742777246838441146323189198948275695187491252791052099701205122824609456714537451512256928930594597912467928744822176060265882231523345369264280350363258247123257070274650976377348295569225471311049224695716624028525222371160230652245064177322268145881321315025962128387746463983172205061605611064670742137442247983297417399113900795554647442674357179964538676125111892205244281478327134289694318277228743642004610870458004987312035042645012854580319674082078223030790159548449392768004543976370513481513009613294175600923307695264963432412282268785338043412334400699731938641809631740680221528180643350650967161500526404093986077585890115893273948878086406672927174891574846152039514131493759539205903357525748856523471516241467657107695991030556074539484088724086593829084852056962410294247804310038841366133684549838151650575544707717184567060447858383723393601281312532203437411694567041006985412509253562948044062814956194264628051929517046571160926013426306108415072808311548202847442736187219898791201337789488777069859690829248360467920276416230299290328448821935846025956271276826485591667369078857415495994026058796984714074240312580444724969654505076869598316088594290131941779608984084041308342464220149443924194011194338206101509434345052843985452297661209362889553808829121249747958366876374659257262621089399960612448589990872686853831441476341041879994409745967532525836771600603743713487346689323527608454996200570400263354111085449730827181497426078164213927958728452898186231190961786609273176289072542797838675166148167882426618151713417327460078543384394476459775068814819383201093112601741523832150165143657261400513920746091315625539297049817169330374554052556464312709077130124568156619860764203899477647052108032927776899650951690609500463199330987258391461644623894375389615458456729210630628805555164701348711882620032764265814082647710278908221260425688633339596760434206801293771501316443852739448506023531823558343651561754291490894947700438623447846382681574811447121105088047852226796044467197745597415887631591883147896808827808368306794235805469854947229420947659264740274252307190415882781900186527089230513221286271730261705383828608002035959785849962399130721003246686001833751504458321042500552639894973052328917787917574934961382320402426546876927801332845405300636358066799315254393701200611374391673916437624593323189541700256272473185448144485444873018846856539895431577044427219207359447425545930000935838273240363920447754754045750065516128103649620960503036518993624506839583233359086821615454831034562125591920473481452647004270153164287815249785948497483695199441855691441927511263630185327636155543212980593095781510757105261140216141042626482488584402448003324870830532280652612561442859449781116992247948952710541527149964832033272079602430530347621195606066218674544748286158808259251920846072167991902196128046156377098952504603050221807528391903843778450894899311923158401236134983257126578569945565712565263461079720637841401131196038053543818509312015500909063929030125829288427895197475146404505680160229864646263750678152577940322414590850477944860662258034711667046406534406187028768513593790854714432261783206155267170139672209993441803737044856873396142344477729953200544828809579480913128437139131351927244032629719570849107477506727427486898863107663068139095785569364871758288500418195180558448926099654764765703078501069952886654710347713837261505930971461027228869766826208115882580283788556492426558188486792047951899934430606562411694840530518193066845549039248140924798752279096121482288835164181918977518974922893998913968114464779272078809130424444288492605188267715068874348952668325981209145608155273028317507271291290110105269582839819512673741959088264832760996533194603131967102801964560134174121656344279417346895713992582374056955981711395326255284091039304670818219231564765168214599262871512229257036643275741333059609102738592411258145042668597742079406103702757962810196247717614389901625474865719136521288019718246071175344586966847664807630077921490430846449193344942364193894671604006961759933708114203738079885616442695384688233821661593742071514205818583006925225553690288228999774330894513619085165494381561977295788769754039430519048454600573916970633956971109441153322210111779488364368902273886447944578622584982274659572424699828113436938800757486905262062006197799260045820598871820192177903183057459029143322230738689779885149622033753748288530267194137683616059210438559272063865021947362694917138140802120943010567356876819613607851693629951244698307647658596714363034859118529811642617175540615104929017055924023702757603891353026483060569852837072650489674805119698795527574335794481465441446354464514055660612416502693691915637899352248824838593171161704028669712290436207077805358464621366768587807375678917024753550320690889822792793211149729763531693807328933627815048449571957550194531342794677667213974715786405463288466207424240131952817634718170497886111725052953041827736161486050386380227257929473165350214308191707919622830221616062409211043129788018710136333189350366614378668725778180448097744923823674142100408132770819875653121933631210694708831408949392779187641079750040817845699108050769386568211857434364199191681961638427544483037571677432425252377342356775312999795690821234940451828541927687281806217166603026539507050419267503127520131298671459544615422211037895069478083643800556447726928377878802043831259071249278986472063769593944852174727415186534401081974665663417021672303927210872111809533399043883362357158818781882189409246550591650753411547817043675209662127154320195741462746852913317400772122584700780998762787067438480555777836692357958129314479068964859181512818203732678914114316627417373758736562609922310608534236333468332592004793335203214942070211895175333831841004003348094913138854646112766979532359170323679184977406430540586987153821002257391646952823918856098642507994393563584003448392321718569602869118999096082517989052052738604389583584197325857207188197966556622321583257406418453779529200633226007523119998548199574530795626177951302254969438474249247537277676631951214178950129565562021311632563720217466179862484600565458324668442922577152753403710362921013150341501308248043241824666348965562865171388061169205564157941667320046667140231344115681244890395668931761781275074396944236793636154852372991588634019096402216090377052825741202324715261377554237042397443796051676280559370375989179903401167919045042101473679214166119945243400615218859521609847838302328673053631341409604208089106035515222114613793775080721482293215326075435991064560880701764982902879956838573494251230053227148290630518468583365194227905613101106007003555499135020331085544944734724303431537282991697587857820666734252774840492006552799324821869266926487587867375210979960371113299419452213033743739724871176212812022949814144213109776679117763240154503208109418364917667382021278722447089830992577875918093614607918391783681570853563265868353312382268484529730811813131867228649678957884288475529158398226615679840190192512748867995345031281039037578430900639095516278675025650960071931533831432197678094912805952172167040746458355482347782455154945822752286441956216643291804877921891565866053918427013813152287866711371643218146934518616194134864200413119379620993799757356746215565598245251818868110546540531016975946106384651046037158985317353547670502462774450801051938900193138444041475235761306431201614454343608292850223687662246890516471081202811910749770480936568195548859801523911727669262726492818907598288808898101643538695638851091393924696048100401813203249945869456546468858415315562697544202964899607108279992175642564378952044247335995200755453087698231810732858248246603170224881624211570034148185262209865979941236390449069814499638764625306213535246363522209841911996675015542842090466867142702090712998674501129248627174670405957398056624139420059368649861000552305371722399811599890302001406848388450844910745029097657741344730588814504502939208629232747673708610955516954030653639474788524059518588088833658677260063169593938294997659304708121216346766217966953738657492113817932026822517594264046226482903916833655916097939010997182277295483010443059410365973992520669114402777700521219850608653333430506560015036922555733473816615337739990688840876354220213310732065514185212998836544452557054957623255701166908313142003535466814485608580029751219123933398708647503826841727696638005288179490629479930309447953549274226187314354975968404248998629579460797748616430114229477522091277658399570479882403042340872290360958197584327370852289951940677791113155095093852233109470874781750743396356503440310983957704187632816777413837612312811221458856561267050876929408030390699175574063493738182402003046704346808860642363833316937105782613298586636884490857366106663308991651355950667569816694128892305608536386821225458770412547420773753988684330505952508042903726741821523780450616013686493809288080122754479025105800569936616765361896473516913263561026694833093179499974687823013964295141759808265507940956305094074367496802931887437020196250445747546543267210131573796308219990943173165932661612187716315668097285918772187234667075206507175244058624970619769962078389542110221723221030032272503758832876195024609370483947664273985859418938506694730197143813965458520063234443087051711622990754515319915218522608156482284279650340338758785589069481967443089175750283724363713164054010559754145040925254511091386386176076840102121452802703962516898363857944481956404086800030914612535490359713739849084433951187931822628991040395338600598523992735406730645121734985516798668634780484243216168007837683936778608650764552819183549298746589544033328791990478487876776383931540084833159015965797061798811000161182855696793841065312088306788809026079854969384266055449144191813526511113069282456423191206228764641613223368824149561955352096532103601303222996102854251762291215660782138989017456404482254879510475726340201229978565205213026481062715858412258305572469715498746236016647671347421094732168514609288346983504599582311799358558487203791658356163977339887286248745869503618815394977724468296915190185644594352482433409974600349496028068483088920606975916539159783588244461251459115664806638761075046139045478411814063441188002493050702110732920763703245832352038534713189302866317526986381435604253181369911096558351640186956252081503600133394126380689337680866403424151470056440463508975252123125488012607625147142752657149682646792037934317958787820175325494570448327559225605756429139095228375638677894303191154859385920945322220904263283849541120415196675613498815023000124304781967911053248759151696122432885714613493683144899720903772347631380203163650470933650876772930134742577386658617316082132318951339404380515774783092548344906322716576298627029200521379457719157071343032830178313292951055593696689689336070642418672127336695498888664564995953263770999651271331688585912589891963916307804883649418408105800868978734196457274807319584221852462957037378567762625824532251967828035958125501871512712323221345237481877607555726009026682158977118827032332995406520409220782802796222384157499436047522330492869774634262844799864956011149537017640932015447212993186208671344315247257846834693941483290776538195717158208190662473919518653313014669896882652353755411243728869024690690157523973488291416428343048821703551354800954175573168817135452368436580604718324546845689294088374385455771728655007090501376275654672058723776852433114025629296510162881575940338556324772494716054599971386986527443052220554191715789957735588550026872237879307606350595728050737883259382958267425310334997710876577824791648951345165055975402679797912303383817462543973135295200590243751196992761894783471967277314794348992289460806951787761549078512866925233961635066953172087572015051232896021622778023793183137245889802060087635861716282767895878952750733552146695857233533931309853648644560176933891725278817711267294875343876673528843160196699314959792202648717131140420886487599808431058780743065471072130471701265898758609544553465286421859554612388504250942222221862396534194262514155681179529825060741925162636218513750493333220699879319613785661672375433567499392067810095018158175714515084757210554838961797485728292592019373613522453044895235190424533272388785303891679942361618926092739526463502113485336761538655489763775367592833041476428030509417785347187272491947813456912308595278249313439987864811469342246763800867184645400460261383379759772381761166832661924318813543777527520563684801874252472117522294510465375670630917800277663816244252577368639698588577113208832635075266966852806349077427378978481842611345844191903609967834335127843633771434310871495280820304361958505061213636535917985841941672070969567176618182834111137670504279345493555144530005929805827895210549033393066234365662673557432501126538619861943042439224223244470572253073878861858009326607839500160113231989026246107841975844773495471586159164693061907240121420551360504489938038328421557572744791645595199079880889312388812569542428647917417684555553567893085171150463197245431176168625389270604008795677819438214414340238243804248422191877714452332371009007731914836044005573690556475294738747104424618179733589921918018214992458349703425815057141794390728103386435525310314964882810547745560257711922313905951622602626530360266892068718590336869547386364282887424070030761799641893076373603580429859367875593135719458786806824411948973557856587389094559086816733121102983711858953923864083598645365703452815418919135037864216132510734441383626664644913763434271645549580094476398460974124506045194557824115590139564963658414784371402785277702986694422865841363453121516358837645029825443545884996841772771195186401058289255128734189541097853560682504937361853623424666820510013357667475508936685286448670913417391946134519687117005386485390873261547162179537933131003271154813508165440223556805125400479759918809498236182607303919070482512258768352062817391002097638530653934934918353969281080330599773800302237132180529404361904763427301218611533857080020220295750194941548821782727199984596983014954262237099707103249075668634777914796867492682820390492410761597809937632122225723880887092756637525291275636141502611675704753661474320719380390080362554262921709473717086455353420451709854695868827556067143523498643989844482884828660587717810034823927871292160889064607326980810203719444191352266375944119434085926148706184952025397362977241967965015885986176812964381977322587162704880702140108809596065139086256041308001108468026611400811104330629621953452440570469692858030679800993706401185239393198301146127779056526601111390683336991199232264742952410699418196979549658303440722451662114981346033438211420258419083219959878995811487918694424894130945098015998285718443405775915433125587401110809138316043337622200137933404099472685522915177622703117038606705093822536203198532557966402716795611179500113017741884545976778522476435997500055766601569179940426411724615251008393373807500525882854242466608921659836761006579874174214460707221417695526580282895964204454142593660942359079339075108237561005810159844372501198585135399095470091667539651735651425408427208624601374873722998956347683491820703923333166790961929785784271406276912765116451920154882860747256285056246801201641785916570110159472417268580256399477051580460848568413134005214056090382574613906062698367931344272102884606044416911648278587587967921667334654860320181252183700251021114579234152337923253048318941020507385567281779046377550542395136559068948713380214709511412819917196772828479759368964216035362266411747098252389184503906111707966898607377616185157200098856672068856828323931974537744007195164472970219067000697316107786765340354447007120271778929783964074957108392173437249573939747118322737548110754433200334086278182151239006625313936377136013268068509137378920074536315006927065968951468695043720138242687944164520947063618824201071967041831932275549411651867491017895577630842639938590737297689678057153768985841598628602800647237028444195650194133283715609402543403571757298842936580730240042188928055800763210739895608125298196734477461276294339245574847927611144679208096983223614006618295187072619102206377642591007675813427198158923009063555383208603273813859008351251622811497293536493809138750308013674298337885410078534294270621030365341219998496729075111240408989417691469762933748751730978447529081113193776253337029570752409679383787651857954968420111294503265864670342730415521506289062509829144698114350887433033191501669621528903206212610593337830017249839634841096166988639254881708127329427712208083156673194464279297034163304130312803826704913084694564535875385432063831344988219237576274089924196228225867236737902954782069271150940707929164063429506237733114112741937427797535086965389814790077792917748148146958368917857026451172412916801607142887108038996180189634611721417481263064569704236054148440355066763892473989937811505552402359054572575599554518807275114487021142862743809146631986405674042301193411150406456705658541898035503017700583060591372488953155854009960442097235291571326101554338461832967126122971047719974702737561236138304834736982500027682969198538844708183857356926654816006294918976683098224367556715414684328741226453941392364774822799366649004294927367857416732030706203069354028378305141779019135540589901461105656786190274690605722641601315689180631686960612177278227989252203765654160564237025302550174307028732997071163488000324661810606258259996492230448119949786905177975781571882350660531291013462197029414275524470641938190545148038549842836984605726554643140084855291881748397404614128701667373950398128177705255947141223842924844387508251956009216568926386495761637161707154625062530965395986229980308471261232020321339138844681077202449363590493571057322330125864901044986060759842349162956260080852724428597080894864323485283649472895106327571622154295369038641757154522291872340160713912479525798358368235455297915851307851297649233753275638174568987338750861852135872829374440273287038787827607584801685646773320289784532461562866899575752798259606454130014349540740067571398404653581811506383217264275015075845802566639309389140918963131921926812245870462176855104562471086626008047592974085326813953149293654540535800980459558197000489972536478387090586465340682708126270672516192641795678345809893309003164045457333640134014765983983478962620416302833928263390648039517989153310787224302033626992663964104641863009179585472023609736514692187522841012307842988219064024861926868336564164568899399165981219284786916350768073562771448177333326421406294500537002258901293512225403923629161626399099164099249267711509639394612576702218650825333961820415492731841374949978999435928454052799540458661754564548592065003551546482139696346069924830024181761597614001142714752745625367948554470521947190868968155299237832374621334103622457056569766633864962339172264454450390442008624679294288035110482239172750132294470147329923068001292713653440894613960852055621782519751663328920976215729187417772495953070972724775079864355907075933835052598636412485915597506128320061438000369171133503217500705427773104990574136784372556969126229040266821926061303022991057014403287838785345271666311105862880353324324526709399280439228711173635526286235249164467700767958394191626345186408627385328054646626977091480647723579834370059788963291943663278487865833706328056849427490658480775686187112398554115526249925989997985909334992106315968141841558087916226005903243017463581649447633947492258233600980588999279214385062552877146649025506991438662286301612351375898090278932683000051417296496634147146944871312177447616900789100552423581711108529280649675394432217773087268522785977018874177115155784392295514121344900707709840609395550129894697770574061731861598288788490332310100639863336869417137983964365444343940438377448367417752842673254335392592294287925110498085415285954117704610867381578049198562620892928180797178316487438576420506041794325379539754533795707677912458137386064033866014319377500698078830390353904225910887811180000694626443437018895818567190798126255222355033588744920206150704818381720166904735934914814778844661837581473616553559738279611753811666486094745213673840836940813965916669583020235095577726291074697633658453102371085346983310747267955062575215963168017886896741475304395420644526556290019801419331706002988872267648402842242959846608859619594828697814789429942854828667141030838900282442047546015032614833594842621786837796086789948417223382293412735596714776703871008572377985477033357857656026792372640978262162064952367146053522307664149611492814591071306698514421489766612807541925819872490426209762096570947415385756068009528478950360254756480346083833479937024280597998864789033135842300892630190498724963545240326121860667693808725170484704525648665786766850569867810749710640433548845436987967716950123301234889621982668678165313740065099271386281887637450289289180787955475745315884475156463148096843963387630084093236360562036106345488210844070976958539451099568891647757933147404816402470372151069945853853110550297328229567785713143940599814476271697192953082692851111972142227970613466233934769252623839877396675066702395626944606077349835285028750727900458993251389613412451522256507334122389337100296324770061883862148319086844059278885374166543202835333556079371582365874102980286356543457987577189963800879912489436611714866836313761568867950186881611150604566417562877213467111895943648998170218265896274832728631044407971311006958033995790175332693116315072867166998996642000229217566789415978927224454203398848784233008214054892110343981838191669133419969267642671080386615630639417531826104313789432030856627341137131470108893990473898289784870951059207387300434534883844326388420578616880520832344731393042996881325185684364562724334610703731082381104447918797074360525571669211594110592209632018161804627716439514660591537231801111462585830855095995875227886210284636679425268088141564036452041536478910107727928846406353393731997502321121620752949864959790682392753159522341258268560704366109055979668911273644752925122772489630773278618836274003080425442148488033646008279375921813069376872457597033054420332337816824939171920307810407839796632232540824506716638344128275422237639057010080947818804571248433607719036100787854926726758124506135872585080001660003447997055341653807925285756991840995061543342834372146881994386535502791372514780329907226863913310854297634778361002966155365442644377958351637362009253891120541245430956532294269321111460962731293832738354536495725102574440332339738156305139483327281180481101544180289710150619423237976785616767580016875800151527440334328560361026619063006848697903217319658503076663675958552270004669753738550168364197386601111183198105823903779770850633752460441875028202764362873800397761847684720101597910808775551100758421070901885799873914227389294594444681210723715539882467911466992106722061093201477228735870290868066486687285043018285148224480367124110503958403312224033830296199519674329213896399619544748604886673820108900460933941285481303774222018397264770779613210688835929197760764774564737122590556676283204714648374333104503498067036499981034202107686608472571879923049017873348131169971823214410269000703175678210537057972358086661415374088279022054613264838754931795178616229943743645222737833589062391725709493144052018659785980164682251366707047283514283524505615669075085844046503516336235041182457389328236677708986884176940590714950194277512990529981141934751428449221257489925963880797709214785595665065988555144356786238319226265489455418657126487112115958184882880539955360710212028992731459691142537640263782129621005811991070240907658886330475875456491675571448548928043716329103118629862261572136448450932620283758361854682339901693630224245026051680054037441259228537003787218901181132547781335004701519239717306347062022807499635054245539346113881231474047445820922487713345957590045603825986076264676626379688304446782788689304239058720580207855919583351983684894566227419064667440671649852727315209719250124515458121232599262467283113623503254928775923603305169625447642354967887662380520751467339758485909576200447541975711785350869004116257836000781381747535065747947998353334594524724323419034087197385355580201797513502356137275960260475317511261657867560398822835916378241880564338153776482436356871959401505951348585572109658802884639266699804693401141826635583806461596803257397202869996969013711753800157804325120758350045428315490486688894223017670148746626492285605660105140335260162709985170201636935378636216924260075835132247321650810452729931233306506115474011893276730089833864319305151901150614427122772230633752459702668386813792987310893065498768384027537719609909990532706116676726844397041366648833416954999373702443170263269106463154820345264361491178744178552832161432412152203946446078892266727282808836118802133147029762844736895477710394809458218043208027024547869055813892877515689118196488372132364508385475568533846835413688848859819097841590548777425350507721094126048943452657336479524049975085140108857926279707355050934314083761193354323990784316057232608027557150474523292470089845348386813449437610962427295570799970388297031306550061188544648992936569534826937278506061515689050951187451511186224246861671813594081606905469726258118135159243643598272601730970255134061138591400310118842495282129593630255313028303503470975541941699175864905569406667854138113177639378640971651214906879234672831582868128172512659751015265010884449245568093149214250537210570627256746918457592106140050729511781433076544182787202752484137145019609160512062681147010402733214496573501745860970859081450217217701298083451731924951350980018612032967258490936356525012603540842126231467625832036597645284707479312651112981037840421074709648828913619335703653099916956252713452428747167398226409058240985238041213075534966282918101706096817003021313522823731418116334406084953868852195030256569106576321023384570941264665702201840724721743814391514569976110373077522979500923907290621725990321223578734731009555993004745901478316301764979855633856605724020796249080571419198388524562846242369495624103072653318309375372830655086844336598705711294931172969253798753444387345304023507815514791345996296475637341611414994738741545783215460862367449896989730572271652772324309877682533979535645625703236552554902318109290427658214318295969542044510940191202047498371479971392640047416988510271203473620486868840864390456854084118839556125824438629623429372984250617086131222566999782888254147660243661756333268511372635825449642568997438323208500091634702222259042288138296356288173276040086163594074041510073060757664427768519245716262790338602340872515561291144421462347427713662899501023041899025561145444361422461739471529869260865036428866749309870177983979746963638308895204188800231839828666889830133483229107436558099047065858633668291917064218118586428854589721318037612665935102955487534921466630729947786365402409291802651344845641614245490611418520193989770695738012127189488700162768924917175287109873881535653035847039156993740633990293860807362997977844794009856431035232424549232472019517838239136564981653835770882000750948783696678021356930442781313759417688805041433496764591834773451840280650290356485459042544669203903660736899732881105427984519607867559150878138054173152593436328462014100908355675808651565046138428067598928300590548576039627459304428773290730481713647264964813976626944942939554486809374903466007980119202413391534841889651373040743660270986178649556360021585064292002241664968374034342062806583388395479941114595534090370490252095308224829818104173106179459799436836871796117390798457126966887274349758744006824926012086421066871432141939437763642890563956492993707058685045654362704450569786414060639482852255214282800807035556232060772371056107311784667562099332141314248893177391650317105243329642955116211117640930945684196340431663918694451426735213112229158302750892913689302845686808875472630419216911020887500307997129906270885918362594385744059430294360664728291232218427986160492317769596881935256308055255277383988504131862708766135198876020578861862811066521130150499221388215269821186802206655101646617636980463757418907166574544261049796941441872404977988589923911718943652946170554160326530368172930108363871502193524491106972261579074469437259217145580496420254418042054581360845649517716581895206578158768882304678957980235588587841657779259760697207831812376108661195857866033396354470390735634941997719798638100051545665254464908145458061930139210434381267288679246728908722994516773955930121510897813791164078384099863308814607876858179022174491251643800426324968971771285230971751035343597994493437316514410948667198447043764704265338773070621692079216640778685080618590386887194432019107573813223650966904843269201264842809879820892406718764916316994611316779964996626901768291079533133971167226731668954616811199308246976788681593079424375102586084163021612286489790982613621671846470596712189294031549882259902624511907713737365710357907764374243712997532630213231479743190960199937602182966266094516953303867214310365447386317352490337101418748226281857592621921037396527544488738691021818853436924693645444093512507822074325113868912372754811545417174614329318625202630495303961740181677475662152596917996921628986649917520586918580263734644249064587762400881752283612270222220803132622449536707266034496608843752068354667652115737170738171853346002929523736436516976917527923916451683339990229753009786572754902475220456139887178783601576171286144575137242313233969895320400964396571372896726558916437661059124366619088780452949570951100189063084748271696878694384868915287506521445088526913447121140809582117156009948452836609317206356386665093152497226660940552047314174112083185005816941380391826918748829910641473529753955451005364857881599520728970405805764468511821252534038238214418982153143859269034540607848054729405947080211890594512831095756726928847439978953204238367797367200550980999771893018239976602527311819128737974354317889696185679206388499564954949918478115768633110586744903141149763214627329764313949366750270902718462019924534915864260390962291334647112745273209403430964685697624424392310233092008974570109801997265891455328534522289831136162037405506823966821232054672012723098454179249316755816961241990574189916992408582310330102358108067545470945257186755849782830020390858413213530134076220209606475134986013168937095653366671618890480328275319518159181352231771469459716433607694730233184133115334891640136122503439603092637844298519591884849615411691869457742674431340618233696799583995567747517011200394112193869387132464328527652046626946644206140025199239655038421328653738238394923862736157488573597923624412436191122268322315998261277344457125286971118780156412582328059779265553612786305000555366769062727468919421688184248691457196250444125865627249511070469696331943897426437798661997366460401215098491341005693625462593378162374987957420167902701723689187529158520558092019609624379941576828436361700571853671522098734243841813040079657544007994713465731759199166099875312458829380926050567533531769602443773670030232336307092912226035350907475081714891712513474163001399059742607582555771913301748900588266102980526578280617042436359830259559411871252866196493263508736663934161749752923646000589766926583110317013228247736685464038785444972186322369858314453717927815280865175267376956949249029531905680685926114517682912736963802145715668341998449151232217332223556732007600335284850250431692778811553116649652274810501321278843728584423302793375232690048043813240674202093586446417926772127550276528374044204072719297063737498624298427706910779998532017335665187285269490284921291835204472638742721257678316431348118373528945180597468384927160509629436810932487284238583227372277160590598809761599656051619060972210855956251292922738842065244423907950867958216076732371937852729436334170401543094105293378130137205122532592098071598938725652092292660854200077517097889992624120056482000169479778906847060754964617044815236980229318469304079781876017743467348692542429543725775476075744342644925684858006443133037702936620052268334298292519023583672784008573936532656983838958251323932937032760988573455656539841860231537594013317820395937702946528782164153094489557599288153822436620188190189312796495974046438967121266805385047884613021396566687688011709704513506826554854783426748535237558479981891900835015949887994717857609127832456146230402474818995459148128237073606113683121719088440018195431627506167995034474254341570219692469805536918192624297511274121924607450311791503275056317641716179102951983228081282545380055552357668451353782520280435145601767167765987247192796880675021339922195759599224074379231052504966805800155068396620264657956738789788780031972704978592370868253551572195017972683313915310252653867809799601110041896960485265390520484328967519646273060161459487355221576602052315778178200565485336277596186024251890557191282450034633740091685757625583530783324473209057448220461811279373434654023242202232635592395477585938331621614238100072174437011680774206962660162333812160438713369845688829751457737748277112935066669647631914342657575443339885768623828488889044153146167697681225613552911970146922781197375805367354769601467870775100716581398800616344414665979267519535105794380258537457763549519297097849626032398667338307575189208751457988523377649806915487875062453730932639889621118613107170098525626077466725836232533045107017811346547038696065197003719574689934859539798921499895344915718561710136855209721907232436766674495747685589433889408238059486166267381062721005411805786376491772588736307125241601475602945526530396257349583566365200448851391411940233432467660053740790937724398183570121182907676513493340355629733615775576330565403083859763493472737770708642334781512743157993928253232006264336863553333606034854649553479287964483586585875011279893107378110980074092458520838617818799899011532566245796555934591511414985579847024783343299316092021576871111988329020283580724719500392240549877997581561753412836288324594797397411832348689862809187603282637969581737245454669964637529488099145539737725171042999851268616821597630897679731764843748768502572437483211722501022974150914596219066213511294882078611511098354150388896728540931504153048943268893873278509134701590810021039991252168652763189025107858836286743226109517498977026586068110997543807972967089807312390988161865583939337004330637952688980217798874530594073826917994476599158880594878749267458444589907317665155329059423947565291092609939079183900909426529243651355682293977565662249108986900858758499631965259160840650184799617329871608738888627054754970424251857627503172185926234948488172595458627210386467316475518405316407782093138929712823906789692232764348949836352359935217548043246654865212805436246173504107993023111729791011500360020080702745877664789518503537378473175358174136143907522362608055976137133306102734392640424548007552826911797242309278368510657807999790045792574364871687288754631479282770666995426794089711957214558274993120757902344780613253500567450694859274411348307062957505514305002807176323321205642453192077020975222395377363407720310550732039096975860462168774660575806107448670878152583631601999208784239721985077439509651948066175567591984931591577413427054076404836917281685728028828861366316218492426156477219462320342470639493874365513191018483276223837854445379895008459667154947756242597116108170815169254466478377276479575267882430418059980417224779287470805708441126285815758488153594969799105328398996705390192443769706869419005409130983485804693923083595719510224650445644789900245794080755184767127038118293898926052486548348404428983883161298347309268071621392611320253633323971265058979255380064744617518070517497817647489789852861043062437979528315735470597279937394814626627896924514293610112091902906655089466449913583535506733234428669336154569093046938113106206838484222758302222093089010989279341397975851181907023385609564662956078709955243664752065199481654561980814015578436985109239420570103495622160620964757097351915533603362156793256698966627564599848541193439471102653607733130418301486092893643275011197932225664273726874871282878451673763178696774189022383409590159719959092806028306202369975849107012388035525078978794840658555609393010797560371147330001625328964169406542441597853497947616138269834749565940639002671528461384917047178189273601639137585746986677363731085549557048163844292510695308442179283188666821452863938031522144312046738449223533375119783852570697153866601737858590431048927397341897183300250423309466741527990312523091296749086922206655401810955606287887707780302615952521815623751998701821459721567779300419485383891580515285904960309505685063801084855216246337614232911934752993908260629217685664987955079959646940696588718923749292517530266240693264045969238331697801083838236085541775858608692066151557406666551525357932799921467254858492616776261571245514890527728010894426638317903323091708107767495517757132125319816524915432090867592917796845461498766351534503995997476712531591707390221832949755259144655130830573815115865606807728088149551363699311106508781459212520653888693931733776569968292898107431241915650708276305860638876626565223253699055901233609235279463430270298633680552763518140870645531800936279938862878473540946203137712176599164059586292946290742818824417648911277228022990323735476330325815794517932988083171532815253239212021922141427701658489075676969355935741453471502600110241661329952040460985105744612461728887620158594324893439317894470399542301523073609268949362563312840394733110619160749672059511218043125838347055398918451134489841528141907753647513522268942328925103858018423108015248779967254713514705988863495032732487365586831765088389993403335461258223190477913234934608847786890908035102551805632789675517270596195485711477410590142692003975831946986445565636252483648923660919586142328234439461784502828129473131670107135708588717970044786722645401657149487596405973686986836279067004293779932085245218997522478951066423083218309103756162117416949457902528896705902807808901678655523193043523786227195941750290605867903443841638825169577135282235409584920342102848296781757571496047780243340568973996301034337051748676606105875431878242125172123765245335876892816967433381300441912173924100627196701652552408960277160048953107959720831516573922743749333802687964336376446403280132962012813367039965334403171631167121736465616255025168527335636239126586401642520329856867124999699678727882116702386634772480019239615962157258089550813025219444719989031390337529291967137402838763970121535010232053931926961041561054363549386475404064007004729030156167513862112413784636616213691021747841945771218820684663064832223569519786367395889880409086680146728393405734362411062813592705185114082515686236969988760709429483450744109183728412680782359557321364987589216096626946925699139913794019277699912604166963043427855540638084633388323682669867503465219924613776740295268513146041485329494018338997523769418484413702346653333234457313768160196853008029963585547639299644514051382764761637365357522629115717064003039380755801140721069097818088610339852785196947150257996843968800590769946930846350194096564460518799648016686041510744196426228260311640566605088862281692704241122185470446263903716249592527439107026929041654728452954221550068064360058712367997938513454797607077761213003533959948899177317477589628621753470082639305480863850606906638254034412224606669763667144514878435389430906456158594295961173100365207808497441869028618046557918185998721622818715326884069794244536613472167474196602880168392317917565175580026552130426763184100563037537180485349337381934745667848903529369843394941665706882339876210112366926255219048297099337289794679293249963065562853033431637608075373811385198603630368080762407247929421884328677789311203602188496005832883257073425093267683076576739468591240546545265848550439847251860227244305773902613972857888360442730355334318192556173874637948074486915160214832741696337443834501009230499401012729259935279059137926328285484783392575599064313594446566090650622499890170091053188803128277899274733360915134281466086596238711972336949018861942843159911540662253974009709509562028666215901492155589259212852927660102893818908752361712786097059666665348481554322835299319348729845939328696606186241698800503594496066068703243893289099517456468458147559226484530954536729322330624640104491679885643330447231616911453896666677995919932722909737020310444346160543557238851970882147695776179997931491723957470348780418882313416071478593533705448858844354458091091635186300577632627169257939488827357308085123603598167079150873751290724012199997032258930569470404059198504496432691345381206516778234965277217887965719554221056891516929242131195832043539105199694596455743915308160132137553458944947917650489762923174457170798330837775874150202677180500141183832217909989963200879157798145459864069099858077281210207725780183152316670525296822883155326377191360620687482517560060912377606940967532233399938644405360931285012626650645524262182270092042470875649267981301302242965466331124242238936356134423908791489245561418657347813643069712247954836248553994165122277235919935471775841631309912654548257408894679510364228739072022191734613040078983274235931038655412446374277008405816780902309602503937423864046766535187838936282757349242128083127380343710219801291468187513051816503966085865700337857400757472484349999194307333999978828486716968400705163971453290715307078179347142043200906448408374217558507100591098171933191261424236833970017004443026136793690007935617842619266266684836564773636744443342239524300466417856534522295809165454081471659773110479356983581640644974724307624671488660379983939348479926253526451440700802763985299961239919316970596399114152190975721683291662591651111989824833393305418389417349362212945857622879020876714837925405484802364556538039364683755847479183400215984719149083650523487714568748685678004018172228256546728010793070237640510916213017192001497176680083304148793217386453096385905010331885645858190121354697499651721289829643469311317605428743325990513942061764654945771828114875469031365642849933469145257589899493282453380833247333893895325846354237321569426340384708796963616369660856242403009722861949198480013767411636231222346326451073978112018839702507960010199745722384248263737284924412149561955207467150848703275491752658898975804367711556793354334045268624917417335532348161580565983232214210324926939682509519349673819427524290794444211706736661223041013247609464927432152248622082068755500966630478242809910908208045212777314099132818010191759559178076244376620244967384867558898369380348177258536542139371463867780055960407193696505036987282354163342736257740506434564303438427758488571843442686104994042868713482583265119989850020259537113579114337301396503318222371107584615088936243093680117930135788260926141898263187872302681154172988282045458751756796147362656152774885099643885383512340369170965033882144150489751750765451044217289290626059152245921047480831167374201002498681447303544623586985040397215274088725687433729475442176569848808790981471150495990861786303781042962316563067214030811128367130557819561501923973942612155395199617897291982483910616660924487437252462940074599082622844908019009161641147887829232309697854598738096289182840193741420316865496240299045852632635227250773981218243248203369507926407311047801029030672989472284963312703077076884204813510169470357977030684334647289401527737663816253410005375690378110412852885079922348301363907038747132349344500175164866192061831247667167538879384345455793033837956624497190183530070109740954535536728389961521571895127671640354367652539375881599748808349038813518265020212544735959065533062786691739780816292166700649429199421164769607196518973471861395162950363937770085858929006010138532489520241208552064368664491319565625683679161275759224584250175039883348509942659123838192151723873944953681914383148131387245133932594065798925445405961761820730633898454179689899981494004487316341437965743557743738461612752408001365142217580739070769710039464976660014577852216308290404294581129369018308730969802891907081019625250968278277080331455968819933411282765963203332884060913919385839115495976223156584006568592923748125244765634423299948248948084443396872729875526984191794136142178954487194728341756973573265098871582268686012856375307303788542626893137408153921829914508116403391506990340788636172608159131589811984656238261526006318559326632605378055210724903891479611788766436490647947476905109023124011278729284362886463327121040892309123063020875464389106800211156693943239208404032030265242230369590316382829744289249135495881292988594407915573018213917657658628030752857540906737973506116194673316980047153585780160807916295508928906130235156485731139904842319384160312072670880729722511597939318854189426483674851228211416842671052131145109935060782330038529745905582738831349496207519333860745004572982016601066934863782996830716833180571873276605356734623892361659325522337695479279430969454377734160560030203242113377754649347278005384119108756756899732631609487941703133497590893334756751431941004874692292302675082389750211898460900564484827499787221132325990505641723168253808264589187609932295487932477003564952918576397997041243206213831513045522223518296120386325609104969659090634491455396721116296525923683285513237551537159843982332938899090912559239431035732281860332347507387084748125115176843382381467818961349626907475932672527658500464927506194758924112231108756871052569425486298390043303647628638564098167610534058366950086786058968551771082472734774358833900756061251852856524850437133946671450153760719789132608993361231462096135416237512479101573591814775504520005755278455196880960903829278179231692353817374989269826430693828366638123252874571843180657221173049805807208837786016012345396876282796558192571341740481441356387978153060718600476807674784717363975266679724525845365448376470574077044767458696790416971820078808768837232040167399268163429489180234374479496322025524699326671901161014502250053090301744260125824407891849857307365347764109577879332815826459742144340127384042620826748695943345496782641087038048955327089583557519214726937091104892097974469905473914565633040346082445759916456875519602455425571859157560558850798780797210111465607547220059408907504057478725219365530284440675955022671010445050272507122727210889231136184098316395619351108369104950427286854728562253014624464436361960350656498334483917301609715617145904008080754771390210455493152709127597570282382406607352024292831738504318710906738271852202849799875135846488600694901615636025167526846096708419860194358782841343741444877686990353534188547482421598066668137978976546440464309677712437824852679415840052972101129836421371622340583692396338810659890334691923777704648932858483161504962316338626461820004762306236818076222190445465311674558185195621629832742247944445396378899239327347556444404316880643946078307507739602995769728712069604608316126779628507594417251754412597551741593767918719760964526138811760699570046008954629783955212764383339878844371945062758879893983452372301091049930654708190712925514303100886263018538106548100184563422464618866318119319461945980432604538170052201788555340277179518876631611544463692903026282568538001598712883383244378536221601645302649192020604804454566579499415611932670774114523435341339435888918688994582782103768955594315818214700534982240682375920365288756480947574988346090301161024116336416684387200471104626984007910491457762162306989495327470741948527451948420320352884149692589771402629883988423184677096271021048419950731745991555066679703191128484774229700735976836406780130881106853432165954116533995955083374237022565464370353035425097450159876444404036698122293425896935005222145335365082428345109002461283238335500925999086459228937714226725985306154842167192425630110659236979849189695036032928927538606383993018343380818680862954803259124373122778538685898267572511146530074834631935552130010108254458830672709367347552473276978982158479654615432463984993455093624351104390933902989617065218101697812169599084696734928015928595286305448550615116604871922832983075144226776999371454670622959431645580208531085392980617399832912249148710358956274254594901722111968425359443157522007252957388740800060686267840230129941815956934448186703174033484311000645563972670375186319487013359073184324542201169997409515654531286981452748312673146511811237575186248874775333105827352734808063181041563641227066748014518545940969656301898643774904227507202782349987030189550126928760355002118822087655083200770950990853240385833226724843861188768897641737531014999500922232566620244411192987655916990253311769093631122768126477268280696275844208647314851340921128726171386418932054216069921143813705359515132165503851233275020459505766203660912516269023494419581439150626925001892520886732332869824998749649478637529409683298220377388954655244858457367649447497692327127558798696275554156735559740136566839210895622245913025304219193683864903243873178744915890960293068686908727239534774766543341062826435179000413561735224114103400905552349737845288972568207136877679699895151330089293975036245980916364563560256798474340640929936030156686916478599171984508871017999886563326624781208545394502452754169810728516121808787834855518028433535200615371656633190041119233779753643539327480355934410108670889467009393479044523574621267623286547347411936048837485616620830079622984385287981377883797846636511015572910900985923881714866950264629778861229897269124609274348027072239150213985154675854759630014694514670014300886726912387333706164449880209346341487545744351943084443479793574376987108902266819632112297998722572377964612168851988463769722637977998034519483667762373694142597837971119700356076438425898445256952089122996375380130034027307694421467460463551523847006098489221178240233271305261529658825369488474236885159156647197929591510480053001175004850584411947883631519786966468508397642265023828412730940875908496134050644236016261147923988881495189326760096955654888064569465061456672409873321066357937971580265842675444504957599966894702036866732188072995954791215709886197287255884816014809873027585060489892728160042302429454889402279582824696405968857752911029731288176421716457754147576021182077615765841599782479243366697788203824273830508409321659211595879715481038992725949277561856303305692767550047969157661484696078557978943063871774865927865271003609548689023134269720795643859090921894017112845745329353476026559493961868353973209106765532523091086160126640894419091086404680507345802698315456008527762463135998088076305481917418114131384817759942405818733395299458845120809349182520530010964016578707554754758115732021059425535056380224003203840449653196106875496424187675628392574173986440676541126485398944182381636290271273754445049114834030164176098748810736267615533889773441377478805419863760120488663535727208185962955239144960703431878676174714432952263967735738725902673068131873719714926039058376088821680705284268581049376281328550168030083650793407766522201806055202714164442300990198145074365983155058757521223666798275663110321703328627458258243991694446526400998204022808499006964327659860212847687707881101215220348605280621301457424131635950007584327671828552106765676879290283504961575834731194572809469519809397637655314444795592195910016355823820021475475218384872596681539423733754518013300144493363543461226015592467585693090857389371287779702530997121317237362948790533897493574720479908489976377103031787671119408156399982326433422921538652732986136599698924829458089808318210319710680600991941062152087659847510054756174237997431331383243491426164866416525542214155440916614668049767001354216810774193357366990453467944068075673892548900628210417183161071843641841034662884635056043279379824790068679408657766069002055012550077760767304107504468105065528108691627439906776571632571043926668007003482060560818226051710396260421352433026529135796361688161515096325351404409550990396683235969427460488453497474363872827667393828688177779460838166104250842489375222306469908560411552545631203080370168502854628702097591105302590843313628987967535118647019495739778311270778752081909189280941302233757620156755090241007419364775258625365041823269061644651137458441006687886412002905757007694322794417621502567710721636865447951190229337098781527516869850054637716492330017430603165398242140828694627385399500492429922808877544176979059505862193206977570445597381070647539537980318463805710969671289139682055662868519088113786310248373971027173001242825747774708317056087343430277909348752725144677517661986969261099674656725214584461021861790260807154887818323249252255363331177543780445592202152221825405078169957534662382056262972105028073716268058199349510195762739594741111155207176196789468908209393283011719506634887404018197766091743681333232051445916554485528455881171928404773775695665073702937508188694747388410852752829579136680519786274068045509015851088521630284018832238180548548916785718595357205941021792763129979822162203681918405711485536371852473175264246581407854717083609640878054044473164011425184367823803637796182884225767851628476308033083284368322551011087911657664485729250405890496679926501759442406387499829836103716130171083403016107000756915531939061314659593605124809622189113477520048807087087126936917201795568827816324242435436405974443914314318293612597385544242697602232591931069134394212509205955127788076863689425619131217833806121693799971972365266375447901426113383155609051350093374450382389505010168613246662610651738814865197017105389028606262141957635424576968908927329186226378004480360601290696514182239208637071494430282026875325552086899762752634388775896891455032334528011434557457268434295913806922687535213447626109816971527735871145223826700584664952432464796310579296623826856820739565116976404608323673059175387617794700960559336418941778915239689235772361818577046763634182193180470169536220123127363101732196111660014729020487601795587626554109328059281363798225382139389310010172847101834881524015725073584538318921844868251731521139418553381388768554000404188911882440028058308616391145868340096947721672307795317017614853040293165414189343346239133977226551292236342715251126048612822593527523679700248475371372283714849421516924253607825748658841501685251533817242850996238738882507175968418266294497566904638074374472137000518768761283824630068457183131576683915318527250780488310424057533993198459315029448308554407263724421431361073280390931768772857746409947597832432162982917834775034006262089415766073717272792532957638939007052324815343783202774642378527627239535819102920865743672652113810305774840134193218770192833233472908693708972820197940110229204104247480857625920749828898044101814339618440808800104739960645393917552153886505213463996102580398394522783701530879669099462184917423511560247498724178666276387540122920263953168674107035377469504324710186219254305262901926214356424909690443492336556072152591998815118081110343929037967658624406430832272066702304318257865819584706137096159827319158374189046840974278355626029370492099636826384906336984845488199814108734414483986203030208272726719018170718049056537522712020878009645843703614179357397889690521122233024589032249832644157100506741830161937983211140320895975818966229331006422504850981789436417273878407538170521886879457997907323648931000297972607685919635270606469030624168231267823740495227926923377767001951510118882248743459546569222036314674459125465851828827045929746235773990783057441158931745115012598739552307297021477018193015211856425106241746705659254552017775377068980486517176064619267805901750353421994054916963241710512135690187588614455636919108500338656466699037316792534106085559812803360529233167470958869891491436672215246583073398602698150724247386775744930139849855132777570303242459977872973477781758860144126204643034224653413940982792443036124340823044660775651832877237273660365861695880162607225744747196002872186742573897597276872750068546048151943286183892090223031489157292252924076764083629739153613867334395617845190342004524438860712830952904711433519760418803519287442066374510633567918492507382114288087506522936457600397196579735723948203781699563945658998374543148882585476776674344014130239826190906333738613484945538648171665305613607043829976215809651982690589888952401286674166597343731773716559115806403290671551022453010796080247971958895551101318869185816047284647171559543708297843456004253231315811698635261223197889577594079221696820072724428809481844794102358408552803281742962783653161822940164036946090407882567873416350786044184841784074213678980750791168559851334280629965035419939909861384140331287968596065388119082212879168860901496416914702709474296450765534258607089597913892231949835300654334479804908397029808790544530029969429063998621086629114455388842852205182086213711475160259840287559657859320399191514088279440991210248266260302866066122839785591428827013331911029028443866569537511311072645036665455999840331012009122980759315465949261968184064563166284718089099370371108666039838429227234362966615050644579522839593469311460059984073603606020938769198894607749223332319055280055906108325440526738906449615926078488856354801070278120954503823036141942093010723239765635677643260481025375602623551674868257770958359550023406034750853064723928998162659699720075453673015664109463860801712882277690266666053186379739242287048912654071190749773806560114285965876667616792959359557074353607671793221696022761434198460665210321995770559258424044064487323976798843197233771941374749564352149909711995869174769769733713679609782107932793677207937518324801872705456183287329220468545752228055431021143492032589047860457735084198100744926632987899211641211764611953509533402018744294166611435719228213044406997741908197592211385974547607151819079720892300209950274111598983679291996567201554533915280422966452639106239472626173545019331609533031835483368468303057433323668220022787745771235042705072358668024811706228081104516675633207420194219572213329962689123104995231015675679185804997990591341961237696853164736279259204814078614435843903809921510061961087777066773939312831647254142646231626612017894935893549378422693429428221788174288686372763209561918881099799429809600212112928448366563881332500011260610397933834860542991110389331733937680454347177721530555702494399406893497951022988888283920285961723894485845619526813678813580648298758249358720399561320202317560384060253005576733915826010319995114658380138849001028442730504161687184493714845630642899908523385930293343417494479004057132344798965849207405425358294312155171349093924305811295097363958558974399378566299250168045572078439371810877409148546254539966517510522972117187533578585379088438965315703285123903691238238738230027350134521458233435064573898512553476654012630473860482909252538303148764853948432630087328545236431289649034391231850880829082722167557344506509774541666819259575367269308854063250055081151584159706146236631520166862554330948948275009755040304063531446141419105852397372082367057634147616523441802494937964301611305222976320964261975407486497627389281829374353293970169765039042352831529567431359996072366350037356080200288692166263593989220021442629612356115389634247404182385850142738446350832228013824894394912225972686461945866945038385601488811317452398657546540439350545201224894985485065608210566683914458679255050236214816515745816111226060748438841805047802839077409816200304127364434004560264975062846480055453201314335389246531790697757229806185002691654812426121758521925573949730358590930477290376628249543037193883009393920349214818380859683420524992072286040178814379882149313908221860855870666530526772783034707109542881827709806435057725674557017699485070851900434493125104878879428823252501842622130864442721609738299911676814286035783018665887429417047556884048413703557972487705965843206726861384527721874029667137885766640555387001570552718223457749774966834166970055030801633655691709797272512480210782002276553925190226522976603703319301235080157503783695687519219861693365789405567079128025290522485044498973670443294174824906257231599618453425714344843184751386521890627336589467903660106656667444079709520825074146466862621301320042358917501205340764411446177115650342831409969763321938337221695890120546863050794014682540554624485810422696647564468430160853068474951707259384599824941689733384027292860875872656590307717917903582991174848680450648856513321175338465941791761100401125364693748167982502968287689293217784435525767933088859454963419626780933446188746700029292625457016546462092453239223700762018163703141835406733771755129142219254951926506360446398316380960328171756498125816798867804885479305077166524600411233769900486615827966072527402588805466628465405388845983760048938309997207911175610280742721524575622110492924476548276225224754332096417234752586493158584144334732614034739728476496743354339827910065993094289702149995993001676286218829289130212955322731363423598711143624391133060439627899413632713695335378460401241425119179204586689123948610976478710854659969312480521901704201163372322419538301572035498177318022439142693213554938999884021264903123658169892005051442051046706716324818506498358946875420781249005842093733656713018913444047034556072450059456628120640404842695849174833848661052909718446728418084385970721653950782649918382724385495310493961770090478216434107719514875813358670490989137498583801100594308708450457544574483559751560170851323658469250470645930310401116539258770562089330922023216718146628946234778922915065216871819155536501463894192493336722846647264143758857014106562594285559319456030980074044850204322967221698107087498832844204265461418116964232906242243253267524123280932992223589430186066190821757595399938475985988687221840296745349878006841655824543471924203839184044564293277087398051515363247805736127031107510595005123061796731655651871037674216985277353423186439929774854584087352722641522614949689242128431434915938813809230448554603671804863889890415678546157029776738427243768075519593472646730417930336190108173792541116318239087507351588961579484648404051165146784260431641027077018968249218113445950653067846694024946373975963762018946421423380022481885798504259105788760720164323327140028340955543667424362830092728386596468620538153309169157439432988327885800689943227300627078671482570680307536888200704606939375569338383497633368333534657613926750429794666655167782066771287377114415146021461891972410418426185006791280606424805776242291498520963832599594383217452846514793038400352266859846233155060734554373921942823923690870637986496029624957038340594320801245338203640043954040326484348816951017799337427716807610498496649431889438950420731149312521026344114977972951573319243234344583915106944036597619304819115499088778891436171455512197269961400081696534128181479069514087610841228225519055950978938351003697874563267023171511039758511244447678613289725229948069255331490290573863388264664719411229546270588349717421504686511319150549894678604366316965120573584648357217036790263187310580576975573670884397038956967519825682569583813083532834984873076738845171519947855533371797162018453933748812563984327964713501225475166156087502943541795493922236634442398916494854564643976852356267939995119500152245381261048576491414073637310871108388242549085052521237881874464211451983372351295876612636866913479171816863234178283233441130342388442211965159421090940014842364513061450820778623615017984938381635531268490142455771502575874536629139560637364943158693176853584651984025019620108729905139175716405687345224796634649190817050294715587938892813523234571064605506295814796056112843837512598373614824714916525514145095542840185112117201531054789621012000225655870762627051356483644284534508544098591352605531069509869031274428128254953411396319614474008218961602484223842168950530785864885969148306032326163399769859665152783333643723523986775225462158709946096445260943009130767489833310239822121164981348103564458691035461112367523476511724953606318324987615876207195928864131348204251584144699536126959864795186779589321031311204363737591180248762254994288532202378036822815048184154089586859515007798381806372460952046015166963574498564468313399923595476678645827420960918528145822826776461937309253316187851295103134781415953565471924705199337947827959117321773725613485370605755787515555628083628120366595618423451972079587123135096893874423838573311690800885112199709438778600478650729280095794705213156190323308696288058134726324863388954401307928328509114106342422231294293990586752387901584375910116390831423305853273976740452360457190761864119026068161554948242201185808790156099365260317914071717606790808506347512532871618512416591046621061643216941274306563690770015615873517206571037352022921710444593633465702495164515673149502686918049990649180420253623425189750831371533669266648727181434570468391876729933856188156242019731411362687374194079569662694331267401048445946035072935972771838053228024269031087222350872003960052645539744503464761047768953158735886904769904465272567616199465445489936774657904970934300967220203031265820338916103247872136088551407775962350290185404110017797061436835420457762707275835659096755030195694481555650809970418474194422387639862944388802761981864040073400992467787607319340363956149146570621401271014880685545066326140162853443115610842315617926776224759374645489817461821553136082079244524473193431444927737483806590679533730727838614894797439270259754815285409380842150821536959376104783979121065532504802960556429426430710247995901135696061940922341144721775607135842343388635662515908055145404370020543307570016940406113435688551497693208657512812614882185708330840517631392834527402156176674975563366025257973546347753664940220145209473120894587939723626631566944886203632925828541024775949362610907959168347703227374999539140500906111706134734341223002870843064257263443851324188445710889996412932717457047138696717251661787868578812734850680155032785532197817858234723769703605719112737010796342687274143423718621226460174850990381572413834127566484814898498670350897554517283109286891662514743337662940676814975109003272206619837098624448047019707146205219568933533911464807121635974237887762068905967568242662472804119061561679398122664644662714615999713136065572774838829383754502530680037234251642498470917170168705340542321236047553590364335328935922828098602533712085824287190267848026752601934405929420029209230566993093216456736405884113108256654934012958433747093354815510912937655474250165913711794265487245436367088191782317790331121895276513575244396899361687427771374891472241648626003012222721286518591289185456224357203595607333530538962226864911787570832977486505745802241984653220012508431923406723761724591175121590260568570297522542981413500284724276576836678443834649723570745302587638101207897011360008438226992372995309301791946791622129892497209270683547419705989372451493258769224577383830669143286997896281691334614882038923532183816225110676983763863540900860108025735538742079566294935211952824233907892905691106253280816427471180844113775685561646116118196720279637802153092647826453048003576081596646633971427867161801386938195049122885520210258105788954231389062452972462837904470441518173495326015748565036675243996463821562072566456621043319332228182177244251923698676926069627819200181882160663646706289719925705629764388060936343066821226165162680723769329952390055284288314641124692105594480866770465465484139945533616987531149225753186053206453910037914043620481338994800623603889439791569935837215798099512747971382812366448428324090836291393107973051851771197981732857124252136528406072468241726595264080449373371955677362587502806619275972352757720086176883285129578923315251529639043562800618582744789058979656749216011751262564655386960891427593207221784159454359390322099168787138362685131332035782450723862892772152881354738260397767716422673082981676275020100742016561653762359419540526534611907627554246897474419075740709477425930373554296756386706272377766045292293180584648678258598535662686891992900273704748655642847779453891788981330874343139777511123862526649298530503620390711840572648551517088851153939947520211919421502397788774388627847727569801807557618410922056277576081005068355088159858255876737299542136186580077827498851134589869088216798658109429827845667724211879000253183857093982305474351763131103683400302108938789812217546176070816120820744305183342942391879620951867648007715035469721586671628291892265894042757917882950298594887795062765690680704179002783860306786131441500885336456333337488211381092593523724250184274281558144797148132751363988762750587703126360931957660097982987440353595094175030753815962350091412734065854868683225592483949278606488298379804235560916065565480884807409172051986896861805190542205283844189268582308011264098823843384273236999522123692560646822056628548671942877075270180177146823286290544466392834028874072389768657920071060065890287183812836847352125204465766827093005739262894002552612200158712698563324208620244056186091965473785123059333630598463884718395582204358390253534770375492225378245101151364072711654410875656243042761832766925636455880492567650353036268182498581836392803117518988521807946274322441529832248719140390468277319067638068645690603458128460517780844977300442676599029870901951275996680658743180438767329233437202745102634416591793044238480698234588029525520467096789510163738848363807494915796890385879804396482881596733585033044345725577779413925621778544145815282701509611772104698119328674000444345905900420543988867309401488750282805605317597660053010154352619893373768287201652848580698517111925609148033803622334784538536027500633147114610990818712434546370853872206840817704341155191897930378495408946511079529862286857580448505724455584434523454219613423051014682895184791812251993882959360407062885752216356497161427484475402337422451946381930667187678339171779647966171211251998781431482911455722481492962673213659519895689254275620259874068425480779438931092532723753790388520456387139429533029831501889805269317949394684015618787187823712421051675594460478403261735094960765243540510721546305388634270430611240642683918499204072973846616591991786445846881257189681412847088221460954535825260318090293308612574872549696243230867150918891622703007013501367929826996299740674486233952630344249577119365493634551779947018922698054241535339864927354750494417506048017776286256520717173790624157844232861399341506086555579415634378705044416894592906319897686425394076411816447518404213766946667536193957730908892289380000427989240175642599012323359014813465889695916425363048681099394541253201065380748084133231815453325128739859116397497209766019333177985362186761275991442283013876476999396349201563305608472675337120188293614750363369918247054113878759694743007395981502802566647178483683633626814126975142089562053934282856337997998457440161933382035789087711707030253222329810102798714652615849825390081346494827616689318777062465945194811566037810838222591518564938590585190710873972749078725082159188921329018508800105898585338159530563572369613247905874588015366777510102349560419101373211618139607934306396873736741078563453017412124630997342521050625909657056638627116764094697634449748780262704136538763024953509251161520083532925246579772607500406692926446282999995312530030503928020227918268541072885526635104140532117306232013408813878490398080492294478379485526449048741814991050124835324561467274510269969012159624788327775302406397975287691565611498087393122207904625399692827988455810409045669582949431338353507619342790072751780726850676977206676871872888870588094321067126775276207062712740614463406585404134162297163471064324772198464020190139978609808978857540475885147781029380960569289128730068537974766356364565859966923477758247921734176866180696144651997724526297079474240137085391388360555576767397280869947796088976865787817586059003163983956393587408728177647745267582637659988988262300990546337937257393357810635040325583403415525579227702673982760389253611565313192353628131881296545341910075361931551922408881066430867882813260419731612198159046312434353780856813525887935221020904293600194343671100829111503549970988818932299079172728182317778387741347756485271762882272204971392080209124964372088833015448080795095399183388270948485113922773142341470496120000212705429122450472563560663248134629994990463563535371982231374174778312286751112577674532217137217488188098295121280897703357507754201102507395740583107478982054373461640413747884615516852161069085152798682794680003342741105020222353212868431262815753330842179567616227602854303623291046597048497974528367180877888843451349748632865801499091468619556506461536450488779526693469615674077117347476519948579239529314984361413554863042813069866748731081493401785425573233937646920261019714914644480994944569862896868643872518663968335212211647610073404646437003685011198077798822420777334379541708480905226021354735134223044213629551214469830655522416402599033071691114585026254071717791656501272129273318770234900414004664784448832021291410933112877230996002081096724333618545518065081492222148654982255768738150169664241109010316205675655528621721324756486933321360701906824273471873621868421254675850561617532663111832812874657862039287174608283984203814185383077466874909741333615533766822391646459106341871822927361009797545851257856423428047078345098637365653562083475388552884152885681662077637112387519885530413706744655108033328428871393062700791753763020879619568531253915977256972325424988383010656976335242770328815147344054695920877699396551951038980619030263281857530490878269246593421449381308946261698313045667390375477141971053756937904507692584862119091245362011435033562798658347210467330884040709987536650205252654513782271397520070869348541326717354935947743336180813536022886027128049499365004347700421235336493102084006732431920752765654332101354336989799356848802981161486180696408934440547905219961762410429440382861269335060629011917829692533150788527142914133634160833832755128887256751025417712587948221728526203235837108154843656948421640485935839315362838801147880272143515320442517643659456109832306898705208770527462417837179901311276110825134592189178155744979006722881147320355152626609989945505452359641726443319922883993524478781992939517268433015613440703622720108654236462276347884311418780495837491582758648191812754373259072501780418130227516548991296480050102834980711613503627393437993252004108304644448502663716108319372704340727921819715096401610275434632374695301951527771091454077902403349295406696009865678851897918995996560466106252577878601161889565288822185939028412514442971497592258077172881622654504581712050747933922619821527947600189965698707780642789434705513201136334485183549757305520004855833975121181197747986215478215489462137803303374617780890745054614526762753502471661477764929131964660114433320392475226638016306153053325480523916780072132717862848438793277454748929653391983291564439723841011700333877887688738408202562481786159440717830949332842346419027228605629391529029806626993811926093427062253525506146211161762699830554250732039868820888547846851351233676904561642539743204381408377667539112638311126941233221190635636899205219508295679485080633962752146703131129461278974617160071370391408073813042305872110477528877554349991944225596441443245930041813280797801838980951981338459759256736281332431782634879906554295006298943915212453292515384172193591424463380052490489427647145312791434372368400864444584462267566763536502890918587918685419865141883073560170826954771733263376359981354099753046123815810739835564160376975516334113147938838665957253996939585956885412742693976641469406108975198143425646210778480222055229256742528626885860405357787812781171098890001447032356146692030606924962248335158088325297824962585036885073775944872373681582074431774418378217476745748926808986977728685220536585446917528138283360609035333349642906759906435342345761269111424404973858887079647743402419764585279301101926207397113840223799245676967481729713173604800095072769765712386518052510710987260496565134078420273787274347072321680282503828544345513269405844417445938629662719500810435758171214952916719215364910744041182312725181801248475733448013861459936194063265176879584528985299354118506794291749258528992129993684006988197529254005963237043994770009859780186748991212783911166153825171945386124844907630059435115780406747392417879463729513308695324731996507513987172422964694358606382882027448026380325179815386102288150390379890919011791699754617169898802508388185924625187234287897268731999688425209725575946651983520515544293855344118675880644687520845096724030641764795538040710900285711276909841377421533920210352824601890314611040094470366080628788595849359961900803122126950728205465570962794371504114930513239187345129673761702047775567621783620021419991658528161031877904447035545598412638002666352086682655167148659078120834727253591723802523870409308527670298954085086646045812996839445188941445648340181030301802779741897951679881356328717472299606776685785141608093189640794159239794441480508836648696547306442324417463933524766722550337700814583959608166253074952643699725807740326113176077518668089985912370465639720521120293473277192476506755061301330983164532467297066077249459061560322389613582581587692477860984351005579167173469141378362350023818182022093292919753069602793043346907341844298656789052275343962907906802235442185070583509662573963910979084528068166658768466435741704434849395395762321846093240650358927665387761659806532104088112448338137957900551903450237012133080133126287023940113297774263615432632038743357454833018222542989957773876168669429990045219336703735179332341465527827189778846388866744851491309194992127125814710547836727331158607678014130005281886206921109815432608623947376332237347308320787414751153844451949768442122028082150184449018289142690960074623770676857883578234350122491272156797910756705188069364974069167458795817988639747347020072019068932249855853183911653204810787044468309834044736316620284823617904037612391863584268409005286136005883392319728546366729038797763012945435812588291640801500151763969170671246157514472005223381750423542249136455152325874644848260774475777903850543687272889832683615558301452262041812303794039707673477641513820238336023392672567160603756999607894816490924705049538171119344625655466313705507236271010423595467088224315226197418138148971044829956250429725147207655644739405197629246415576977376475469194023915114679093714203522398186479085667907700732562078613741519122867267468897495505309405008649291456779128259571937915469650994810413578767057354828185897535331214668455325404503499155017192932174834174700778556194455891330792018372069077596798910440564684307371865599400754080005215026865786209721464013854548389926412702743809891132268920072996484475999570879599694699847751954072703197131087923607358855624885537963158405230953430482621931431996468364518445320065841635559640085333735693036848428390695692905800103979195881176810987516717695755990783707371905499759975546324459131925228812764343536963005443629877997784944857956866193385963371890508928462789288493649847011919844055122179285291013275506445365805581634996751285662858173594094322970114363661270211570186953651784730676133340956809194463796355815156785531104738355088178862120357481764363771067268297059890457013987918445003394670984063445172644536448107671426850435478741196084627961258727827341009973998848425154430712410421490759468784593015823822071157377140698794005617297935683378117682885134117321756226047970841868438177673075280248019257913005810546012128455187296378564879259211811835263843887514196848063896233527056544829534672488734312248834745213263613567731809664612921362735913481509175790185358185808703298816231773069640205831522770486179788135835977423029263430169458823632505843031058214539025939436128175773742792309880912453240260498080435035281326577383173758957788009372357177524851166741080426241949650753321378214197902252515973747628616114701856921406232922932069100832958504136929898746044090199213124765347533551202978262771003507516377470972176988462519950913468579962765722722528212311596861916126733917006304223335681347636367972540547800500018249567507846812174877153760445090331164649367699053326237769295528779341576377253446308963729085473375593391851101907467633185577940396218510455567127723910936448992375140516006578683130963207341284054831694096929821062796983765684872876389395583893642105068390608780621141807225792276446308902258687790481058416383481548333537019109835920468055991822090597354075806691768338415176260846842824610015581207203677672152573788065098314350324782606936382831606082713528985028576052798462728355173551206030548143365087834735071832963735775592177851222007270755006934107163009182158436864778819274050651172801136565669325951880218225903594763519373621517584285936025335487617049875379816425475339233329880484801205429114417346582459279789190947259933329307121741597364523776142288535494967913639030548576604109329523367504749604193748564517717206758698281134177113018366464648793464958894841411539520991629932999555157857245919402842894232133792761942644273912229855180582507553165549258671436877440265801597843355917979766097690479937450508332040460781192228495030583894912671199516680541755976426945561544301475157800047567466712356229778854883677292201910127236141279167443410380252365011218125454231496213072793125734315557589288843954135723194797936361829517744965204051898375994265213849228964704622062587268853741113803644805211621128907650462610697544362995342058883885337354484809870555113461756443012891444862752738266451746928596787245674541747180405623436062912447893587472688686884049104524030397237574427771464069710608807780027649948224377893221887619860152372912358511260522201288149097991274380449475690137342114883555810450684116867882806051477700056579710564959465569695278317776429829940934691716103167786468800845771621165692732543346219236348053123696559148694136942788644719432519944804600402654785018982518070451151645468614951361296626610566022741091427823379665409581255274476220682112643321450955898268480954363594075739503363205470390748136063129955556328008755201323738853237912861936467888255687940629794942567322986787513422962935870626566735235432036086525617310110062759461420081833194201342672217234720364424262011651221943706002731526004474035357892733986943813755283035395826050809367771091771433208659445948821057083064806608820844943874600602186476672084620598604192273530775709480277559965059045512652141051924904773587873362244483792121113152399340725721194042256545250496021351447493553629239016295832586078340229214637755800212328405045270880848021258518075427535869793553061682079009689703721130583723877262104357372454004864234493426743892544830395031190237275310607646051865344846443548645086010201100447646714713889373627631744514383770308967150630797600623665927864280941165775001881229504178306449488831515905948800183757688493382132253223025130269377023232816511461021581507823470946331435677873040634121994887110180460338172216295670742181581392301418814130393159569501363536255302148130018759696499004817094488227397096311679465510915679732162078155077977797661638570043387560766021489931982596345308474654117580950776356384812809451098631799635526566608892078298901370354776977415390486694627008948549352253726084087033574969686725804685035131109905065992721008143608552089223431005778765349085692722686501729044883238887178379997062562150400881650468570539370054024317347465998175657057163249011567209541648937000452475327003083302635818952710886088509023618008945999987246191531063638282918092257327637502529849348541881084896195240127995090171684391576620524540597742189342190054127940533025515725099416389621644559151698967190143079356336486505612781473655761375421421624863580883567708676827540439540355268459929850785578020508256767759256734266398452939673609189924907657137660216558388523759878667358508149158215331493437183654946768996491011920606017401711205364798679302622314382706311105843224171231202049800084940202979534130758330320073393966960018606316869443761986409335771156908642489789672632613389417841347889115270817994963299632950937435970056680043040610891447441320138794468281168758514273917803546562039001730105662720915001660935071914010818517599528522677537003784327307474399546199599831607707097430069209111561889698042451028712182947110753440298172021312305917572913716016797599108448173017134145412566723774171289150840813109794242723186875644074235701971324876928062401498469209389643737132819094858709533631406503251976604519812207655454296900862874098179042184794394108755822870696984433049687024607132859619569856361385716853516820542803149314074509225034749117365990956673272916533253596750149694027666571285194578393741172025162091015308712943854046157186726145645373571813639216514489292798536787197958998600615745116633187737913010647768096643232224795533289863289919289592982647894309254926187175355511888438530457804919792229697233626041390913207856900664461118753710577297889556395715013768820764864593951753984021908211395283792788319759056770480176142019100822381634534251889635832955087732576388268255568147694935600954601617090948883867855793283693412556376822977477022286646781108222292427736033529690129431997907959252498642707290953360384492002156281487489777107675115802542754186194820360696110060349633174688019793381727751692653276415772002266948386164760348244918557587939561296698488742975039362070586183449385155296741173816271709999680741556394724652387420937025357647572782275446193811265957015544170044421358573148533595449733523017537539489297532575608289186695443133141859677217942190319502959713704133230294211486393362327175709535200285501521228248856000452167184739176355702560050834340988489760889737130817360905139895684512498262337269747484609083768855767451697762664580458584388345457716208475830975784488623823041759351627369305207186003681809826385144572720542944897006592362883771292622869284650058766498520653486658335453652364365701804789131096599325941636010845090336636625781431313057745644047862848622946168609667302810993860650346361341888044934362892276630706604121035702577437047752794995822199065724334129540343178361694684589444314222319650244632334030652082791259197833576644000007975891037627177264775779139681482309660277212875635101602342532429622928807964723962495232422619056324494613761516313767696634512896639376039115659327873516436706520294954768902412033110588017439245699845273813398477312392311775588369429980286485390492736009757106451894573942594725418152919125772714800740660648979548424389142321015803677335250658114801523853210703127734354375745254931297287259614026348887349401055780139502379943095600870260081864992277842673883435247810416304559353219164092266175585287013165637802475679250561778706740860230504876293181268508183436427164991518918531385822271128074889678501727636968484021439901350882444730428581234515112293302761289816391582267636018565001870716878508217235519294562546164906061205249345064766969717436642147066921148747984051872512133044879097239727367384745850002514951443850275107717535974353182720320460303978259812144062321483018468092435652063494879792556313655345546879457924326621987323388344398884528587230889736258084779335039828040346404501396302702988837855343434243851974821668456763477747202894427457635312970934228525251898089827688431580251853626281357195988857396619729426366017671952835767401621186788579232628395104643554869989340416389230040020671283392143330631565422728257413856957539126234405857254679406716364808700465973887185221688591006287103663440984993097156566464137657724131324975615681882631364810705313660506090415238742106527312157905500826218484733412834081745194801875980233141053703657719286888588604726466110962606105928526642434388525967613132063209105920676001998587184701856552894131552252186316633253003077425670796677277612396630964732357277598825279189418531425248518684790650908969777061278656286421102340109251665543296504752705788416206363124067598451795253109259641220876278123829857928633636713106964155464885711044913915141012671176681782439839421523326450739038435488252471563506240223904982847055023735045372113291545947087126920024060936974175447375642816293384637659548212396538472251502344032852929826777514136273012174937207859748888957690790007061544532603924992387639611191356075491328336089928695365111204323451072342942173140880604429845203118363722343242938742416848723166271443832087795583368359186640602210519975495422711865874881516902543636991929176014152987226621090119096803575351070212579024400572671339484467975366177195041952377816428770238633762046378854226849043728277593742200517597647693648758677103702656288051908906290569009231279549699781361827690558576257857859109882081660429828408094434162619972030759939234227498469218291084853357494530298874086177381118922753677017908034984091427003008002078676847395437895644987442947913877481895397260157145373516966174469934751099335900154776044745392656873266231723153949813235527744655045617930295372080973066710462089974990660484264137788860099396910939395801789145878620880526927277646030834856479066546705693905766232109359073274810125123615109607660800495297220016778890575891882006871460422942781925672574709872004165008863085008604793790927592261534562803781584139218966757049996273706864144369664646153283961347061538842980153192733253731477704569501257205859016009701893924975437733515659354276840744795583726072054234718060471275516940312676977614764637738653485862184327920679932874788300882450330481440257183513336622180459672974392171263491660175361274254825951158922047960397357568177307792748312112945910125534076124693115102019190245929635414002021691505594364404236626239245937134987214329701507717412663220864525964697385124905348983340533715355040662076147342183802036045357002562336400003880741329909325686486808319371944596768170604191173846600152599822090427748686130010071317863799440226787935639075080605594235093999866981603298455924107581275247481490616296793297724063310796362832764497758566717435422768302787296732469250511161150302116301782029289964062472872424058697330035948032413335879006813279986288881863774587708494941429450069915930502257554942198166266837969936584654086075450721211535579251417338093578267990464837599076817960354790325545308692023679481171152067711445354479465290146556871496427111906199555766030669204357458526249532908191516149308956978379041955780600852433760752508390826850537108200823991981586101746303203861417262044618217507390002490871756506205516249765438855456538129874204922804666236805379473478351031675887781622243205668611076625992328810188073571258434523031443809003730072242234974437643707790065175288475348833333446216043785473513780253935297879912154134524954002291797432719346408168057421397404241884366325583704540639279603541549121239065826331634301995594355299527659670603799461036634885896104566926556163322452966529890075702064046467972115888595741121407003309480294471167245577458404885088423736387770475306694034501767847796597437657090559873982633807151682914864848528713947777206522749369468727075809265349535752510285465236381824134017428826459628630663161812982253643895231328842245348884824859959538360111316335944398035490906041630205786828333372280435017834851609922547134335171978387644526138901260398662668747355578151161739633701043424404676008755877463879764154451092812803173496612956905092625984316629075404631520226816694908550769681607289374857218262689847678828178787020028166205513276351911866862488883312843229825493956486432264441477006094488118446891090691070823263521871212040078385124030012723439848521444794924822596058343891801887527570991853745814333376565717724059409964609533949525623972816744464348232270422769443469185595306167433172591433027453076291108041126199935439803179924754672055445424535478738444774711364500398506724668440616877916770651223381487262440590687286545472637602547974589520943359947242811692012113711508752171121174578047907727131304530585575614312672228516957373144367180324536857486614805226344685036341599076731464094025594390524609865322802298938957352301990708022038118097895649512714165413809121885742792299604366232968496555190029016697350823086479067214963385540569905322864462186252414268884015928959500637604614876808555951648322251708588648030276453567924533482051969486351456123330338190666631615000143970167542536963651415628434572632047870433846792637778617117355767699153011759181847848999970957214163314468018595019606493152260824750846709887882813844765229748664542919877486574153278423617209770990850393500989795546710052030928481597637799065798767414583959068987345477241309779932722910060629054051022397146548787855871320589193097276149351444786735741439527560808555634302190194822545660292151794921236674365568104686336730574378539566912848070167815597928045560564669745028191439505735904421037811213767966221205341563555712038395481457442164432657529387025571219684077147533352091839994065588075206313259808525011580818909734324042457698849980505835502325938510260776207586610864255880742231449572265683772114600583503565013740806070922495525789003377998537294449052627398903736034776710905873773718109288334346353163825717074116891201212154206844368692626015168464005085350118011466028057404847477253873263599137964590892443545910662369602351563835433383691098449008881106218547867657505715668971539185888515753786303122220393472565625584046572498571627365160424298640744248012272535123082375093864908941626177424824306916798216879525328885900312617477542023817814721626187521211457478605891544328552872897599810997664596980882356814883395258534122369326046580716905523077968082757753254183176843746069369478894343000443860105936332873674992831334083650469950055213900079977065886863404724419063334855459403627505197217402130818542746111469067145369345560501879035181529776517694690777161901803059325875486965583905705127094932110722518496370880420196528521177230244599880182729884181029922107226627160435530514218334196870142818037716867796929986820814271387131720472783774789076477398332873975932157336528891617036870880667194267753585519205481290196859557071545763401251385432712732404503171049631562016614022889350781194102932612543922290994105175462599094179230488139026253807464776734242140996724973937669281702215712727248037538500677528863666973046067966255723735934189425476620041480195088672670002749988516429315082030475608128091840994576007729029806492690599453033874183237621446746009195386506199318758920994657353088988007247255612537922232552393024169907752061144742321107449500534208890327705088985830210677704057605011363489878719475219641164090453116247249825537490628118247544669063147094597998310645607353366343036892949706987430694191818331927230236451914705799670548289450454641042844790547595876412741086668006560883555046079153880012167751596205720389244634294725742675216365561854037725510872697440714212288008437929322037225748045116892539371287358979743841874454699321599548745767723687151337895715426099557291690324734279156202427520867350191647291940444541906815727336691270365054105552350182251860066858503840894973803373161484817042644655292829985301711837001773022673935425056567474954739705578593816636097765171604038618342640831330848791467290053415262636398001372395838248643346091813124045781063161830259514823496274175738809347145990950379057494173174959388648497123451705698067920509165796513039819913339120494402846208115956448680740227326408307170661566085606754065533073969641677864566303392566669009215259595612465217843942035117981529344950602728706207487037107114817209451812617750828250621916125022795039185422500205459265957744928079931020158685326817970799306053090479595058915538423022968979252426926497872605219977689594369066524306753269641149942618604416508429735880931345490338644857314404432810769407406333896599452009373743400876569150354883568593410389385814567680730012673701024486268499769799410418204173268309818280875698052559837641660181477074628751398817684543070057575380835265045652816166849440697525292873318767374855831593782464109584642917039455334144088387686804478625798380168401978123612714642764264831288137970360583799220132394339835654887865819274213883892082275766181494517097759515075092174747759256201259445517657971082041662455367148870864341839587538858713756064451974444696050208369488049721822268307306231433442484010709720167318162185199394147309020177762899147482107266178519506065343183524227778374147906089657555250501799960123928658868276675333564813588382152944990039480773695264738305108370739045453252530493482671293977359561639272581178317127339053948113917171060862087917948496655924799069629507913583710325850604593438913974417074204697411838100712835298702682621473784324453845687020760217812593937199430379722285826730090067437587128016165574772118920574567423491927110342546163566338244485113332198303690079916199603910767398463864668313659329942895068661759005199494653390269201999167053841364424448970706756749521562226341255857589982533661065782037320870404189655989872827984790168265705400276060732021624352871302665236389362947423167560648883731154672187220855537757176594558961238654500032327299401901905402329693620899985768533442588827181459840055109976649723690074938231622982954302299369139761005395095460173981586689692588849566852162610140259344244371398056105542469367077722956506404159348358737420474972248551481631275007495826011614676824683511047149904950300384424812427688643940953423575392869889621012760872481445350907457685979122381927698494106984202463873784771280203476671197683040871599210354375834146343927340263679775833891224350461453812910231720823520863107788411441664169313006206377747579478384248959687952863857123866988612052364469946433565926564888071583240730384263972190792187028648564110075131190885692044469310576912650867695875117383246294973964531137746197745412677314993194643698340639593467180531653878110537356129762596679402260450307562566811039930349787248323297496629033480069982289909490749324444231682574402516751745744484384266284918170483823394952614172284363821442966456949150357693614988985335986764318884015216447670212802757209233089647661460563439452196269029605619642481692083743070515898630648707100336187085724371923590892174092727270794864907191527999082949485697826855794176889283532694015525114540352256610995822651999625681159462160734937129246416026345927837139620963604828435565316166885009897959326404292307256585305992705791496177182738921718392099487027798873582071534189340460988621430264167531740214605121783970029028185646081647693813302773080655988734918774327342375649998948686206681314444505259031043871973975522326588287607516614561541981464287976742393843282520656976020630507870814422227050600767027990585312289145321754705733130182081533984427362779487757980611325580259424435763056595488115548298210745342573084854245753737372841035449958087844721805438477632415961865613129484023835817258763111362120628342729487150682544651056898222290506505067131012860781819303796683551365372322868789267077557820739665966196960445896012798969400170293032356060273250948194638221226844237095947520212669331966441394611643823038770066053269910558626032384923849712330978796256990235743694440367560762195783470814877127504601657945130851605892001793115181440827562694280739375237981454157956793927746715353908477631344724555196566840566307656689668957233745900854616425759757430756136114336399212097261209642434192388732847689020839105466200809327659966300494746126456916820910851978307192587560746255702490077042674184789132323625755932060354036229422428565227278135872342637103403189842404154163093040935070620394425648698399040355024800669700139521555311569795738542418606799249027953063912347185038685969025557312319979862124724250997238049539869905193780275199211728236625321733797923167398055978133608743196417400611777116326541258806901995228924185973253716324909240914396049173654166402387440780553246871042960985934731690750372173476322831065724030387715774959864074412984613170919055558040299513286479424014120117630557270576576674089292568672337354377455436346699694288338761409410756581400150371397056565626147207979195209732525527948794771667608425383505410718243934646695266781924183755420769242981901299934050475470344630457141835629947004356701585250209606088240325788714551299725954813578815616085335828244600974925408830500399921050375554455142632209863566392681043117801186902271871840014333094976812922103118205303735938413496196704286208713251422483959882411378519017551117118300556741650669676243030284842561907243614132567580418542630459325370377341409847256725380117509222164888413230458302920273753581955716605470008269369208728784894598730944989279518516901304198014685168907320485228560650549338393345185796998461528522450249318809483731546003108755606839821867521951185735574972849322339646204169448772805321737242110252295030000282628877042990243533559022440451734912104944865858246773970082545933296342422746209824601755109216515578975192677271946765158931319512031279665884030955575053874806519880817692965683790237859503150825525976294336925606227105797243558481331127635782754333615296711825550557218277829410258872178093117961758369054762967449663331268944645359175137349641752439650713234346402702850027697875298126023878163691591861871031889321285659814106695319089250384046480753155851543376995219486250447820401110295487765303132277364524708716129251375382096603335351264778525537687598637660364182765670031277394351937360771504921877917105367853708845232297079817856322434922166590217143409183187024955210865073357227456257847862087079736658964363815061196731920773646069349842001633648039030228237566772026100336850186599743980546321383609491105554907102246886993971478892825891054532169815274889729254280524094708171595069821777637863488322659263424735746936887885092581515511964687361388976030402967281728325228457329687010272082157335900762550988294238813202410202858154968922186757326932449031219553058821745449870409991308089199054284204277610154594205588479718483727812431697598620828361087173286220712483263176594907362369535017250570647689941021439280507809451502644048093598849960109354744679293076819574218978113135224704757203490541192470171307315546915583674801576661385174951028581292569632036618619934701928650189497407458470611075287309263617123933131482091699055176259078043866992927532909065214068330954194576281029928445236155839011225291140756415417422702562775226999624861737287255277593055354843847574250942688402107725736495859544860768611378211547098185139962116277870575928859083706952779588430274612262531402477356692135491218601684538178705432786617134372890715804409212560424971736011087362315915415067276268333082719582443273347122529129452526037021194304116300506853135115754063913326630277906821749586455952976881210723380958033008208885090700498796247382972179947392785837209824305496315607534766249846698872321336540992213183031301423573523089433810861869693948594330569580230248102172939935398691898012247126252439566141818483070559881655831917834966598401386943402804341365911370372077795402843895291305571215342701733859799780221856396087190241007571749190677590439766834577014616688605209329630109832242861762960372292617453724049119903400117377782013021423497530183136628002265500413611959505709930332772072835696385884920263824460328405503436280730616495526581995365469108953987062041978061116642771500270229004342914623530669701886136129954912539873476641770230816427739385313148543176978282387051892024340289071615949128378767980274325318314352705548834844435949801944416572158552478472008453979321354134900749803064927702030175384299014380973493987147538915536487180742203916555766070693469290084516920770575114302221560223939560479211210057627125060945986609523549832000284265155113896568271086973479815581080711679491414303576863758695367266588565868088232803117730878818343187813903729920564932265840173141477220205191842805743810382596461063844344367738095024191540435172872233506572651212810061035985033430594890023938302566512424852898936216710683180482698882596017610909271577849385000462353482636559842521163066956716549400347777588355619932655988358692022964286006388066596062826325331059360893286454324162944826795678358614476531678573817997514721663513586316804524519468498830163675730333568575130215605526271090584546980238340048715998946925703344726894808198417469971469586870918113186305136914687897967814857562663326933364122347271419862016626162575900006729879058361498913933532685356910063007380887101198640677675435355121977355754860299574396896457118930139287073463593767204189149446190130051682858771959719623966234994652467948743575856937860239367628128022561631696390916035611912597751809289275973430534661408477082617468281554125005815134187039307088343856799942273462335676929496860853419082939906935339184715404593863688985722865041440381486393719654937515683461783041171231816985192289592041898758424848922430370016440996571512546719141852183321021153271307506617983384303105216142439380815463095488927452544002166771783877477006169769653762305958192500185004098627011333597445531039830270149645757810255964517921634954711567520030077261682360406775556439370863168288823942327120523017132202662526990646801257269348695108916768073529992166084242426454980380279639523206589304009416886375811529873270336722221209042523300379025619860671700690714610773119565900055880388733740277609494420612095400709274241276739932086749008790096390245320234580990089762843933432499744054911338988880416193085199568729948500094615709774707472388862184547448061195522016741877104590918527011835733667915680542640844805354882296078766012917069248823268712560229118584722617682430605567405490729212637869130797903295180204150372064390776473522232554770611859866491960882008095643873931068944933358463354841967532384801472498196898266785011320353807182661228183466181160433718951425970227799218041141482708047681815300640814582442339827359053585417125283932090005105120957328924669276852305390857684817650400541327040438944431836904187460005569107442367517639777241662374114201333703314280511958965195305526433498235778095526867501431131216221153547576603301335221110606770085721636887700075188782714021002581814676609342336394821743411207660217293249112662803914604182698527664515680773461130723128334876921829918933870754230872949222670839891713803067557979390665292186049721143493801738111613244593848227629552484879721212940553323929855390922083885861895222107666443036184608040591199502906149746721308385355040618502613233271140751400108412937058498308713532938802880416963780435439506190229504806039746042812759039811532125061015831565267930856196804636493481284246399475467793983475600445588779182355223445596771318828195023811203723486386642415219121448703912506569585720260162124026479319395211591036123256460999371116573170793133907766425814000403562913552320167165362236720898472573293005338371310744451253214418488472196206817237091978354098498588648020339072037240893600902698847836327831006140124994214847756934075488129236326847866411731529495549669551449695751073263941684833859965229381388334312603140434804450071626882134925744559484063879817803250324495617638144870127845572927494005616780624854261752979728493741592022800480623189045038091525306432023933560000312504589250171560322420872215644279206024884795884772026821566820961255069825628044316978713515464453441699326923055318367616971265587921722888056900313887641530043959912043644874964456331150707190529630761694953964850669485456761450814164016538847287154517018834978167633388936762021609739585369913364268051913732042848215238117157411014718013823345502022819132147029915460907789949325303776204804132041604261948695619774899533081729857547775147831209713030903376265767058176404548156169327393773902793318895466598971829371661565617302203472730922129716598264974722535233674737521064888333281280509813286603737678411551959246950826629835127545184779381410217335916362140751306427878706208219313122131866360298835585265496326819246412421257233262103455407022640420342255755953947586147010665566915345470875592163963857739456241949721937187019124176562733877549558100631222743544157791360543043511987166182960551424360081354878282163202450197811752080884312167052441650005110868115530862069591391960891323995308065528271478122532563517917750999353033452521917732963993378326244414566070476153222568824255260305571273447812115433650929438277640363615080120340064653426685192234843377151586747815362310215450297134204035190439006707758842078960180193789958596842095352888865106373646837567563557427955010293477338991143039431569794717272733993318362254295493436451015874653887174868306229744689247850276791541009021318366724690051315054099369720464101891073156367069749299032720551078742620574007949265230491771874572949056463124635444389466621826577363857836586297111608374461751268426106782245421985252565215932244964604269507501454945800769469125370697957278638819894445545512474674320365309548641352734193841929311260093712473404936354883446215240134190812076095271978238942741463834960656406779607185707440940346639113124631020425416687435378331279499295136092885114921166701421430760307565309484165195850697425308097686251953886869789646234556478303043085166658368959415121390381610538003366774610986571371974722018062173829011272852770939016551784474050513187766950751600841860936565257951082206401652629800395939617805156466516369461538526023626119234533938265261995304808432040989726203954482461477512116166498181804474731030641115832698358923717723188989219309201033309424608163060136442246262855317301660877928493752501716278542955700242350655420056487409977999733227854652937622383845090121370794797781245615772431422600188552590585688453104186208734952805522114356697185264640554394282411257780197713525355020905897088419071647604044129517924348889460253383081225197076206327547904358503693874719352694650470460909480397116485534781272124681045834612352781185957361005228771878008128146463691234601099985952620219566711339571517873403920724964118075729483019907608148077093259064865648258705941338938446727103344310294968156625072728334555337022718632574945919328429831693646551663472761656589813216726426651749652967135135655564564106746712484216141352501834977193364167680671181338279763850235302323912597239880307453491561683851598758384448962096385258219073932818780104496840977191347822240715587485830852097673315163525271411481022831729806479973863929381110140955485767164325622345242434741007867671491070910206126213324837765078447792870710187429273448897674858011275133734877866369529460532120792265520053906294922148289307892822491077954705195504093503686272547980384103165576088131625805988416949061460586691686532810843268289974323974808434824759443817931704808210372975493413929132636921797507726196329769305640553214702732530306937498741083632416086320944464412801666138870694211834946391887808420845326569989930732018353288429115817034382380326934370530643213054690091172743717274346870647212718642311717537453061357144327541852374125602812051244221613491463422153351490181858367873793755817006709464120476248559836927582342862312120564478517043142503762657286829267451741942444091909955181054920576782278638977394111612702822164105245948192332777175510571649742320467921750500262729924487063054513085775684702550390943557459062354861377517420918235331158221919131365498553448327138855980178316530348493601511966482541168709004811381300529332857543007476097599781224599107486891466611067576881137372514059315245597888837718133037675018635591593737325697791757706243792431068003098580731178330342369966158574672350919868906871644104637118913087688396331012643009321457305862008980366052892098934518636206552419940309668165432483886090131646336987243591523176367261066030399084517325948677550479766613619792108918185618507826716643426849210948589621113766801138169587463816901972820550511456659017528418491340366761031575523247420817365386338460944920188959220585732363560591827000764186247503732531849142930146953381887968583040310568838125790771724373762192723289489540347418882884962962367854204839293140033331815470956779817765437431089885699382668022444439708891746373939118017907922096954648552697139231027998085167950183004746908570902969293269624292906141459970449448123599999441422485696233029003760186387559610038501229525214252991030383425313694537908727229011514123432630605070064167136569995676871773509462142250276071648083644583509730618494427211793238420572650806072936852719285388387766710666276307266450965136315807032496320307291653110404943646093159992239746003774522769717919396387106805303917427683063736919121840359129291412361181880249415542345147000471835651055710057685161100748063984908434653874282714923162752313887692258052493151397100210021292646110674722673280766670785908574025322107379781258567338527792593765128281652084102073605183063919288736822855152680831239542053073668530652335360496622803853011166217487266132807695856831363792661403843062084926006163460541258857453963441407400102817667199027719856796234755491047525920382316770587651454705059574861632425601779990004129329652228490325045717481052198546144830030312366903761444246915010101258175973060654466463364678930297637633863824093190825998556542661291215900458542334421294503293536621087067587066128300982853700636251112155793642443677503500532315812823926307219459632504480855558454361268806265212978585113969752302488237857393283894273205649816025713075832120115657734250345759095610424229886818376639683650859906424492804922011107991840849649101305738404545901372696872341535450438454304840823785953389465230399089963313033473323886845453714706823092472441165922395726049846808291599966987731294008095135552753492045044131941077766014851757233041288816484502988529535692789527959192802758650576241815277402400410911764955258146610645078275201189548773333238864452905160121583377215747626746911514670884296246892077068578489045750096541701239086304694957485369924054394649545363793984116225442122682806612735252640109743807007484212352262541788867272560787131981682760417044859188443237268825192536906001312541118264808725221870507319355170719845861987698119603501298410946155457642425208287594903960487510962975400561680308705607529983623893112667948197923983730679852884096829491238886870603028090251862549840128605541443413083770237640510266711725314009499007939557164066513567671466428015539891849362900670855757510718084958355384536105336658841767566822438896793173268082524462677197078175546941244370800582717974831686284490633923810078486215194333550282475137524856306789722915900479812594663077521525065981813498843316740925675392193775695927992677860529263112884564537105079635198832172193987641529123043212516639872622372328398107672896017565369191321601979710177942549618785595292384294965280343697356252945336480216585770808163072301858070774785870968800877069429744310852470229377833683454628511352233747336134413417044034696714567007096363521351321604853550279345036344448996426966812074343726081042892497028582498598556558379891466570835208613087787673251409343476150502701413523383022690323697280852585793947132394830188307882672906783893660714417613574377320016071875862003802587787682683340023761884481496248725153386431185212832529398766987670329559193697466506924509873000133514164125451741557966087099684642440824728891759656612003404731063007334977736062979062824988299222623612331909615413392380549819971060207576761494573641911768154381642415571615699992434786257182991260519505097958864011226477857515741435562662979179565512084959983453373615247614607717811797683338747699421944554528741855297182959960809771534533601925257440571415181614853480996579738124006244937404703469366101803902582125814283637213460351395393880877410386546980296541312735494036132675933428268363236416293275936126533297972457908760604949023036709073622241047744856832966620179942200033264199447337085280302648019107612156874550182444633728770796436363915149491460738444585257150048652750760503952384122699412504914652721326727178283879780248313642259158315185211338420756209727736106203475510943188005121362916682774537873210988597154918934605772606857161060340711955274078201312111735680095763676873827756434144570775746539777284845383790843512333507519281128188967125420166529748311769407604821597321278790444893715491173126006089382250430288814268487954161738774703932687417195883434358423804432107022272171320783737763940091202769182064927849891660857243949387727149326013935892299872359241508210138964808919552279344704764731048013246754850920809009464193806651132946440814092478035678356303517574454602639702621562976573777464296650150652504902949282425447386113239769913741127010664103508210864237630319874522899315235029307338744020070163784003362254218322027786406373752360709751066882374514719945866828340507438750856139627570280417740549857713466311541631882465251184944592965519166541150773228775484798270356625257820393373949544847840248205707008393563507447262809935006779822646816441818254601154141578521642935262074651454217780626595124730949092864697399654324240466765378768877567347439176481985727276172120970537840272526317928747421869027855874115956853625737834380020195295314152422509134693513778250919365742712576693202757535251344768338196076670733197467871009891368200479598037318347771159689158484696130925807720077754347073678110146423027987062267703680609041034410865389092591260659482589395285661970291436825646488598366535934281674691503162147020510728818733577565545134777585836002920657108049721094601395492058385235963821786347058319829406692259810761024286443096318921182798009879690419041392134606008154048475214349768005649086959153320240261480686546324206621100170921958724255237712565546566301184325165816967112785165447104961634928800318768987255419575147737908989450480086766938898655735292966409079172476118265166472503062485070078960270859227076748656672363114585419136845021800157765848947177260124859477873344183704455971077411912980609803257361139192480085213749913388451208220950746595467341163780060508831889783772702657864831210640188067618494519096895587145722519152068524490169165362464351146364421158955847388611499621336552473778310504017117044858092026416894565645209517256823031293817551242000361111044959791804928169259253392898167472575312945208185991132945645109951630057547401839501645613696276880961052975768206102645408748969427748552406353357794860570214081517884090893690742634567597443958038680742407571354371061853045359734716096179405095411091384916801540975316842985188116639736694146605755483906751139345367335753515437993528651299400341977676043141065291513989477057734262909902836858483066033435555842084272781560633101117939674855276976799442400745746850007888413837204260946439807562174554994261412919489105252083717505630942172094886125722211441353349539915992536412106089913676451796691365863903951264466931205839010755775417415137393957072290707907321709949435654806515935811328162712949157997336192073866001403885728407495741528012961775845268433600966916658694686478309151058414344881845133313485994340963763897159062982718591229254192335728998889841018834493418950021189955897884782889540922944215608026635970005554933457840768559884546682874740388958096810098079718955450738969071208128034191784318021351286413529311482559755434593372716524075078925390935214094747825678923285935702364388374101402732354074335172764730738389673031376313348860155752453387189300574242642134625056280664000764258704523557113613072107750365844255207812755286058522316950358380025085677308798224196363143268901323514029037958094113196705737121887080468972445000736376123088452252107231960096293587794690365986293995776246607627176124202080385612921631138151710625918859737206343654784415057436129895334189788964896488561830664051002742132905171499753240805352887621140599319330300369023705415222166688768657320427809592096523075439379093440647212290641290251411163849366840076688495005255863121341008405276194958707876917019359437296138393062732252358065378583688410743749685283867535885382876714392091266741375853577482628551031204204781494069064166815093344782605029940052707885497854167784762621873866277283620996389650932540728161241245707397022948385162640799234377868526712295776894016760579611374575582016696354967957923373729944295137939016294413761778788496264138560007844993513481755247739264080047877173532370320533600137998987348115073782302368393265800660284064539650741800710241962732693227925283501206306027608563185820217525362806733752864035665283012256512900155046800215776714912808807253120104844357675852974622073359340120971370077543609329410561612070465766288969677776695709761654707657755543795023546561674793543662866589353484380863231113539330858252256696851621449351863973229009437097764429433470476005359305140274129773303726898371366411873489322855519954288617453336456504498571266423983922940652876461975827094874091376319227004845381310190570475366013983279763505280340656615277469450206805456863654017087574398558608332950499687121446265960200296669428128384218164871599245283145188526072726601323626173335753304081399734634154478936777842342760480511670944386901928972698097565439722303505674893367451140868512093631054710704487271666472455921594277182020005979652364940271961876048632712360464387401023276893689166804595277029474452418346873706670088639487413300460811864932062820711107701242558155786218180550539834389961653693640741811821962169016082487436376138970505037897927919578150108150159188825742174449406953142697669077816595895299806644863688992143566139900144740673976095011703458309748001740235888944698571341520698360958353973315113024636598028269625153633038849782833325541764756192693129183943389738139902633089960226340093745292472383081708983933209459604358729058467899967093707294218606648791311832964133918954958260453342677140084254576730807888467488081340600638613681489011115662683883607248362209930250131570629842090718817055872740522741822403363341570506451954935787152626943507572128784111546787588928740263682976341731600185722647347765074993032257292218116942442535551561727388762605609993461847754821092795127835835017488227288347199497399693396901102632330646917798081016595408498199378497182492849031369196767086212986755712208856584237132986015996134122428586232657347846103616707499424003776042919947510931073035319203805275891895868880827710135838412700731812496771624878648747959924790097749466815666989664048346410576680729778597781899286810496065948852036317763273217308304209766259678393668084411019481014321873919272031681756358422498672092266250355809580263399705759084668703773780344566942727935105446788097302122834508082274549994905745485416505765009222214287033727803050646493389271692697572496353255710719368823782626966867389692235832739451290537465602490559607089565676487486251824909707731484308841740301111531818871721150531274930514876060173084631893690498782384371616077359765986370689122946282510602612344946947236886181924391457111403250943608813102213791016810480419648985068035766481465857568939788390552414580701470661322676019162502655044770834517821570349448954068843520540413779747919272874416851669204306893281577373684794648855021546722032035356941728436775585091537302475124332015803882681478944347578333963137810034264913628177222357641816403337249887084873849963280370068226272704052519270451178926690393010329120845961162071872746969732228381925200174554052518279233142341873714330156499923564402147310328654872741006679083419637506026234747947919690251438639760276242029008617918885707239190494352960384285868296351010815878965030208157109732587346315519883981716908228739262053597588577760937032597764367400009268863890792169892296624883442415516938224024408134622373442673101057797910228474962016719874147816979218665347872948745201189591837226326398100307776054706748556513236036802067988424865085844842812194097866073882972462324054619240745658199559880518250168041481977968281682867164533719910418963477433868496821789572681013484724284204968731265204153153174393687926245986395729519813147894652081970703211377361011664893967622232363898946627138726469756693399387866787150550323947901990950358847143147200971014366026783633903702570479438743394214242934296037101447480019271833806110724161162503430428987666327312146303099698244312064315164323903295096534011508454238319466343075242213137313628141995524389128886637025375753633795174231804765364209853627716979334056543601071983438438046070937778214416300445649587114948370521829607938508076383454681088173428558285291582853323724373124423664909736435672186292886000283591814771987852956337299924820101755903168167740250237115434210926977473962698671466433573454081842739220410371492711152567504830263783588284280547770725413927978910951206909224057523392726252132155411418193466019719248301072340743780886302674272134969242197708004898471671375635469164616051324207540735649763408741386990470712225961232316904723646768772566034060052812819840229105185346316682563262418003957085827079664007959471151675143026320748363761965326092197706521135084703257850345669503023985799751575524086263497956450158526369589777335491058122377746566831731978812821460036958164559080696872227126325958734110006054430844618664167227109238785740860271418330567526238524917653150046247493471461038958117327987367496335468581107194043240815850073114963012919974933949623605282594509700476565723783369199703403419361491214271679840351489611827872118697044061806442595054839223093379089133587801806197591430684183462465452369040811140483956762168038770821941924301978322711478520520964032601837487947234141923393145747696771514608645099273159837585134806299776070946732795068506024198967343692590555009692579751465793859855630772746957122708444381302387797396902790673664942983202586320162369701228588531419539722726778223460249336080751856412538106554646596104558313639295880730256506803191445317481768622105816220707869319167567259550452090112134630767390936258437249315570624500423176306621641586948526247504823769144991488237574569318664326536933050080859783179943144261463161694215934675744941041155826435402026433435496437682693765398857473135639927457905270112229789358225072665804058866884582550519165275006201898331137824406850253727673664130128479519213882849596060807715112266584821454559602980237648724458047388989822596079623497589901744513344158429252628783130569084745110433355386663412914892765257382633824876356480805351725345064568839719001971529214674483754909145968529617388541221928227344413033009735226545541378190090879840493543448862478491348945385094668710762872928992262005932194317433255984721118143984499313530287426588700558486202385319559742099137753755839157882350910993930240603030700998593026081992593540019019189853093821061783510086105171825455686762121961476719372247504969272467463994150248238976568912478854771944267261658607024905607688704528752748943056635043279540380106333405185674153014211160897472528950769065322830522789956280958186052166552218235752774334449509434505471742917260568344077776101435999586294315553156697215206396927042470743807279275653763375416250463625340314943578099195389238875718323106722148712841891943132947771094164289401725489168118947605785987666020917882347470177745870366451841219935605755386330922214136509942290697393795409815192373439634386323225543948194302817461807368965041550871247151098986313083618993920805379420174104438772962717419526728760132251065886262193323038595232273924402377001265014664083688889161906231537137351572833536001592037605679148788950753635979731575848339751352667295753717170451433521931632990864019390388876116048649584389345136112790207758311731194970580890944989966848023347575788438852236738062165759808359333829437767867318541797565862402558744731938940649810643635730057582459111610858488833931209086466575009981088973991629756221209664308134408152170993370077231854433692823849558359752243575906706837181855503246545801432313177738185550612673555092260284981137573312509826259682681601155118340929653067307656748698754532810995270657439836029981153405796598160979817083813810755530944167128600864159052036359194101292560711755241829786025056685531669081978196712150037072474359854830873412190472271362862793592620013750118174508149596303394896387897373148547588414070050683144001490761336138902873140196205335000479465242047747499659078117365645025371860737777873471321816766779142622300724393364219121250465234603318541435654588099249658150671715149507418113546012767300505458343100207589998663032740503198570960707232642477115984605335386965569976494417587226092371040834501343963657349567995849637594967242007293228890074409024298675396165598740762173187143912549874880906921154161718244165594881392845318276948373109621540577551818650932960598960531810536569246287473585532100271912282668392678088017463202087835032639867441302240101051450946475214180637782994337371751172747601055807938870292630018813577145007721268625640898981380499282616253559925269261497542823110793578971231654560656139342351615996435070602503485155356195033196676223888906360346724452176040427341445596440362028543654472497100160777910246870164423802157104497939241980075652040755604391055221761308889362118560815731239000508772061351555713212889033271956010419002665255928042592863320013848582801783016864385184779125379668597988196529836300237014038712285896273287485621360539638277977034768435678120054400805653728209383569269151084350949314543813936792995001678117788406500714595216943676162208402346651233663090730803181298825587289883670154403603903452526206146866691780744908345795266314689274912291613398736585409175336077345560969833746691303900383393807978067736642275705044994554953096267913254963794313765146859723393039966848374116358498873949167689463123563134626355785339867282370306276648191341574250323329285962606451488238521398049243916280631581024460937688019902823899577102392385916346503734058325876794988050955918957393175003718602680311219330124777143687810594269090664158707524130457756712357863710394992904507304813924829039011813164811967830878839275439140348457157093302927244366695305676271657037918511850461195876308062097252238338679935756344043071398762636943961408898344816870215660446900856648596285791927314585008945390156079153258909971864724844560839295546658237036740374354463609938967602468026768655614203074397553307075630336431182770432983260915384530521974139288114291745824643627530648856940040096110548355367043260435965418716314500975737474321137688095910089104571203807980871105622821573397519580951352074591440814882712533459556601569894075312643028725657913053539451876188337026425104382994141967351763135561368686939283692833552734478934384458815230003824344866248766293114753067448386303448634284508083587784999534216391077628003366333910698150721236370489397924629460853064537001519445652086208036587892519852939035158743849837043991069478399671848184496415441623012657403983856486250664927271274153936371125125706973732384809970586100760841148858067630519290578224463624924929716697727165417068009883875651540530719041723865766463694518647178661214251386976389489054620688500528641047909068167946287463764494066184032948785206760657533336615479507411625871040567942856495554991051118217985305156718692285882523782069475500894075702294958897573433204160018016793800030538499835959339720206382677729042421539185022261045311117579675450004679309964628225065724358790208558279228563260963164598484022913613467904723276709476760121822017195175948763716036100528155023549984583778075709937415520369309077753110683021138078336151292764445416814874085009345189626592899396261302692034858286952794318741906521296056817334377444528196959768627309940191028780439852182053734286165268962477275097654292187946045126256673358442542191877652336105866380382860326774751613521259880818418420661636354228812981881084406673198926537248904839336367330372243001007557037954843243740700844996588453963571908005982518897868537869205095526844076946644614543809817366848812334277314806901862234220645327666989645576429656394440637871873477605763995548667885284533711497535102654743165288032579169331302759544596682733952433777781753251745745825637361017831578383871383729064755294877932245090362670541913675750569249144460667296408439055099034235807948398069690133735015846558550937008993614273504137661437800309587067200438949272646292992699385143117619043453058466973733356678447780417490993288410450811030179057111625801442771894351192490178421024513194338437753815222876569013808837850001023223579175982460527322833757491331437235223232699206444474604572044931601840912843491891208400035282857482310607812517598269249813985698280996670906109678304089100605849151240957492312543212600517610458046535522277289683996091139823196378109874324009438462771172022755727590377987851956001015125628130625651018296095097590164106619668313607734537615729819968473750667297217155746686819814683347165642433247574257809222204544334605064477800424365258765694287583009302617169765255552385324237714471362337643079245313586352981401918828205335994889250051259965747742269474528132348935654111702221812934419829661848262181115583569190752506803444036592079346032968247112340299919232273966539007043226843349047094951528162533459006094832853525839401512454471101782796339554863172812292387021887641799150822046920840771816127860210338423992389078011903307543795340087984127232589263319423752106587145189704127951497876885613206296606964005244752772200167335459415823956030116149895901525536198352525790800673562850032285665974015565824247149058940455571183506816054979635975096864416019005955019741522768067298044067550133483015005093367498763870328297452954400977488167068859063960687718488943438529666764393880653841382239792904131292581721441163209923623389850055564862789520081553600879783630154256870652384730094975485055596661568013606568847689100757943139543637794486535766169323235925908714681659912670199672024689156198281609741783051889588515791054269686818782263601066427372166696035368474188947482648846655951004139425449728350703499017244270061800426325219951976136060136327709024464303561506635705706545353894267795487550152762677204773373204179162812823321836495900322763805894094099840717270000489470064436317079928954473979034386054155906748384296337632117835363815472003478707783042929678756615219126706829415630425424483419953094881197073026860093158052510656727645095155823456572447935603715159355886229906743046803193952731127474955139242220270031243177575953942520919572933756114869687147152511164032883859481318760718109521737032148594673875118837812290152478742115369825525285919442364538466018431657768251257758067534092953724161497964743665781289980959575769683771435500260404635299078771647651471806726594002945730372049216809809908488671775614494243021418586582429529561129703605659027647454552139520898407497228610379935699647221812066542419968088620637204530879109539993558076031470228261388656477699797427662308747358569571101334234592863062686850490694684174718086756096761664586425968098692504925759236413215819736358919818143732996959765590223767311980301921916394502530916560370524959072464161246034072566874759891014775596222722134863164184627968286623230516092940146768632796915592654858352302369363235158430284115146778411040540742035868303821737608175637964308158082024636260132114329415815215674470322779322522871216557156943528732213879472930755962157762205894031442826876819450139193411499711960481217642058640550553562429416577377791968728214534498494170674575973782121618514851066205289213010325363645172004943045901538051482231410669498117577847472988169791941885894157351647027978818256895587223431249049823419204164537180325638449460498736053833944468594960260674301739981107730541267988744982189518625885569462903021645513612617799711634683685552454872596291386397989593636603949700066375857528972224690283528465709038445656962084754626178918561279171336987688763530231355066382281996146744538699697977498929603199393543438162552640206689860357443577539588107556829689506653956367868399843764246999676673938382455406270809206590690829430235497879998587281626834294957272786499335828755215334216845744511980492005350777604600067004836440141993119776289839016236315987388060741026587181681751804283386298270632407023720298551046563245889654720540941566736880192593700190022228076082860925459158723413708367311369254069887698082094979924297186410513253433124687365826306681831777544652928329612878394873506284050420034720693702099209005708714829261618534425276598647846330756164814372167026366929086998529594224035489938961324119151815454368526263113616987222140413575942908487990583445677536064287820506301517803348824112518564667105114187531493749667240662049802621827675221054344254309105464108281089672383993894740951204485579338435217464537396536927431849361842556346624523855578475212089812579338460789775328487745405406250424249787862740548515312925870170224837008466220165446633497768632486658493583949825527586570693472372359060155536441391901072798875249999830232250056785158919570864652800715769040828832067383342134458289269948097659607527342832019644761149442710715224319745369546286925675118418288967399179105016839497814303267888217746376049053385611225585261234176299458519677009702256437323878086346175660491009220180603034572174092542233792008369490659569851069007902063164909257610147692988872189545650890304396682933342573920276058047911077252522856884476606699187841974143781698714249243188790027321795898091169631196929633199344053598853288480987214523018342508510213815386665316473830035546044900487514203877072653334611781329043966862083542138539939712040567576775833463579041199815977159794799818309984174048565502979103350367198991430386160019513566632966119454136339767463541042494291617184099576510299835342298055818552074899913813348551414023819396598288151806135186166603454019843955554953633013071640966976775698558996765608782327170498897538739402519930631203111753365704295689479690062479256463605288088453575771179075562098881371128218655356648679408721755364418332699971222930385638237132273666937982572442993965767429306261357667816994465024577412848041352183634381828565941087692406409263905901966668986330095179278675313751602789252689264627035050695855886629360348092158567376915585385429974920605654284927177567590218109647134618949148929625263714619046806633023777664563596273845961987995000949017781747451713484765942279629531415348246141041401060372560270888706559797534140773861593112740344398632368666526471301895448077403266316793114918339774343803928049810633108576183896570206843983361815515699993544525944231728476882462030848703608260403531808909171096961173785758393392483277221414614515891716626769116892316411503682525325821611844637787059370785671889761942028839251681509335787772645581173594388776027195716348955993808990222282298468711322829874084200464081512465159473824898716498735433201888602416931027934075551471517726290261787295433648634838110798829923265381279216075030759870053563999744773285700938372041063664220785840690619416503041198354457635925168360517263239366954485313562867036736092386487076629112786224722812001672555884550323772387570349751909667411204977220430756334484956449897993053648420089858655559500928428299305049952085514377787470480897998858638467715914344506115051169724968757971453878808901802194192044770160519717165605401939576097062269929593233943680167877719068755440812313574923108510717215954228529680494852793572713333758466889085067800512499967936304509768357860840194241125003121244411741737824589864012125495463245239926714750827376757535920862251483602774396541156159721451543552836219144925614065673807109747985161819115728931970511203435947462132163727542519194703079489334309516696202903474991341932884368131992749061440301285431633309115425149322116789030047448031284341285782828914637803687538513949481943156693321736340636287282464961657733331754690030712128632256216853331460305860870124317747358215383144606209952975103430708035017373974861862633309197621129935085615612332992026780568203115200675513397582878286965878220586135179182837874770110810736831253331736916868091613744372867531818545490228658304733035477158792575180566403994169113483563508949858742133970918436859356782288021689827526603704969928577517343526525895281626712052780138945463401149574094896278934187616673968566122443145674565637505998135005641355273987304413376683893267191198080724329186225952645591698944900932307899034576003351676707650798949334371856119006120735901796784907731684512424861627937103184594787302135324204581062969719671160817998823793110159844426123552052605099805469823247888579196354941148302374162898585961702508277662525340328713630396605443761801000602798526845691463716794123900138719944561217559128641310003297696063842569493543217195934349259357053991500880991140501884693606902631115207576462214754229044487952627542592927230727777631995930318511709323817448507982151733626831234123996857341601342021958081547217828688930778596492726839627662391990506538145304754879617993814859802018411658325367859236932946193939813550540161063595854954841517782391075963458876155098140817313229890491171082058598729499561288954555610157632191356862296386621094770159684559199644166905741471556394268436123001980924757767890064449747859706408940334955892444512622783646728206416548550461950294474504890043165607737863065635476150480903126464009679996083657797367890555119994956518445685004547231088825267752771221315697851812785140499667769377731817462185253502960926031844935413209608138509402056747089510494098962175333677464042246927988678936032591788959968070488653410605730237159732591751690062926209619182425438089238172499951446535599209027838146465732939825124628511144026313733736413818024396846399442794768460046879025661517822007858914567191326998315180658687647262627401651543986881688268931188628182004835635016633401145790693576082147017588271440388253811943733818104758678626245608167187891856246454689744662162928970882443110361368265243724604704507931016867676989373735829855278701665585181333521669499465457305085169573885580723927973722371787105066806948376111785916831986851783497595113755740225721070881862877454166923249550452759386452584453561672307063043837184566401623733621469849387328593077845495974535712863580174646031918535095835690494656062264507116109085897887130333028507032173758607037413180438532658060462459921823185667762616591712214340132215671575871180465860546013240865785855089392449169898707631433479564759709854744386011581501360688678548692599439840062558107413089756543842351731916732127485561667037462997864692674056463283163407616246969549634626769161610754885118215643625259445866504372345958068725029232889730623019048309587274253378373515884480198322496821513588272406743459111282452299812482736445015127277163925154006355586814092880089660958321621722558408688646686596107741580437729115677154714600296033120579533742561199834870586487406762083244336004015127826196335041326664503800904698202505907967290404993606283417034005441017668211819258431232066044850958165643306063189510002467330779417104054450445018920584497094367538632839069721824681436210448046818681489938977498486591354195275933534856083854096682903890232181116750224415002356067049667705979251389167162697393717815892850818911209834499709923609595757796287904074334200188456997520243865999255120021618310956615251898953027055168291761412816799182385436251290610961546706658573523090613521251980992024244760531886037867564747673417340478624339488962236453387776805359957938624346863482756112958611641015538718831590036729726497172179357446593026094633719022758735308338390156655480538884257628775120635757837224112144156119570701098874895578422712575098321562005823699284264154576423759772766814084916207081352576426071505203340947930510772444102939975289805949560197623070933784923616036358037551389020519127206252039987427387652413708770618632297450403484607803853391671397609537833452661238642285627876533013692092756101905554729178211865218952397563564547726738333663873603428206318997157796932909305772838437160532168365934939315428568044355256305741318791176019060829604234121383097972684117615904197866897854484212281324386088998849067920735196627864919884363149631891565768730343091339399762338160316164986166626915867147662532088882208277906073212281568475824920706679237012307286621344957024064538690207667852555093238174877625123870753700669675853908402029390529447112837630600948775234018186825145016247946092909875949277041496453544973035303402653275322750969861507973303408374758707901578487533831009903255733236026707144460066525938161200067096559020923384477558256237349125444430303487975932720276778609771060674027528933026808094055381647582934972581262227588251564652708946764690131038031809169736504433342410680208644582712037607445516177077885847744565276162333321138588774023362646041130097500375113676213456883740633261525275668632055073743187440467579115066238442536969991129712619205089896271700639880975395833779239631382583895327727296200416630969388583034936911048234170476022543795428394757191079981580895527255576061274826907266721661558412560708517322330849771363867865465053546410068609173266877707989031765236784150428749835094781536625623288194263691047743637766988946756557884930026643677098579815766973245204811881271716580018112578464504108684863731777400188266805358246874526098637843716141629694251761585984715654732533877028066270172332863571843823863842381602438379855836610099402982783741257564056627929219444123798441699940721899767861283591081723774210086608118840691191388338893648496819039887465585161896025115596520902485624902192860343915747939627239678909185134547255763717450232576421415095793648273239251343875965413330211410622696546503206052574532943520085185944821024675179900749404479882681822960535560603139565013513712713686608125296237782764489821275525801782139827838493672453809123265470670401081102879157531729337665164883479334201750282114161872017654502468486711663230108288913032550825800494398208077713774914192107344074569627653382915647983171349530428881722588236880752333103798382623542040410143717846072785425013757436220304767996932444866245157936462567488333584569295557039062859795056310712778714888674766290549461733093884441896337267849126095162074460315398817218187372821074911821943799977669480436168951918960824177098180614847134806164905235015162430819059454880167394284654255427957414132295091282388947579714570241551586886665453816175901354927567615591561894516527369559113646573534419735763377296776641332672304328369844543406495257235971571130583155184515512823759559358622343620025312672426485218496519880029478543625942820682532399006728273746324295747556028796943392526698259783212266206203061004485758971866901376182092162407717103244873257845989888180801582885195229071625621479809158883473589698599361060354515496379172270902924475931479130078975287547896688325219444467578320191544954716931128615399817165070994909762455694835544842064121451321968419282134559706993222478685414691335475992667122458012206128137327281272223161472503637811696466535086351542323593795610410314628219882336491218661438231317808878831464223741643056534566620558934429159538315381100907391677589204588828315112766061917950969111016702596471005740426237694787606908313343885442573655204216146542271437359364012063904518111690099089340164528768594454302762535855487845711841504927687869455873013250021863749125119009146280175118306973289280641211637854715998122515686399812673945986632835921457293276955385029192536610519699824635945491106056787167390402221818705445535014281598179478320427232232883894848925960224602512816926096312967414016204527357575884837968375907330630735214443562721999121010262873585647474317458167640396082309866559109772400758334870300970581297893987044288454140574608303532957496967359762565629824027246931712248465581403862273754996118277184360074981999688484060652943876957991901284544937243675528676989891706112527280966295728093157483591746797999804489472532435747750182349077615859769315455387230868572475842942011189529204715999948923440165289221388317945207274169040593200773026871593851324237153280654809242602696331651386919711831832597977523146286715068985179399411452559316093435518657386948372302174733796889942049394134588910786715831359528085209609204115988320964926519041199988230544808644487783303296694343521685523779503575209218207948914004762551639083750635170892295336127784747508813768097232961372834392570991853957628951484245493830744642446867025691480930621192434460525808583056507100687516781287549822063562721011056998699177953996026641428796034739466693229252970250049375691116604756171297486469328360090340059402412040747420197826025041241896032607284521525930143174541643513292913336468063054599658373046579594725256930974640613778456780279686670458383128750693559461405423016600210407780259118338331432089993552573297955429078324873162804410739417117228833141720811907748841649373957596356225859026983496520611796692770867226534416165993244111838074203944249964520042705717792746378944599077755890801311043049106500205190384818423005297419601160155845226333788229840012280658877709002954041541724218136011861254992919825575733755994842699104912143793237432772250941058801141469071757015614563575726660991904185728153789964760370077138576234275498671762888303199526229208563215492490851599991854206335630240961042667837801795988975147904892055675457684220368084680524867179274743538795240443899827673428566585734821234532039751126893597288398783270539326287387519923810371602274075601567345144767519624062585389447297178775628489763029101691356082697246924131592032631093752933312386852227843323559378557370301390129624178073872304156756612887783033900343083733406856871895397806157054643359791463560368724368696203001809567887017808190512430105848042205633974181480530271737076497252911218437577667919695656114549203425646304148810471706217303522941224467545595471534672042829560999384084282101113001378571854040173815406457459823039042395325927878805723564795729198446903288075871906574936002322936694644157424264054059366073357239887212809963182240469462596636419443301905457543775091272777090756770092164832447716050506631221383685753780205742085630373423791878037401233971888179764202593330202849533227155059650156441250344945457308409803746480936418967760125222302418177413804621134776188116358169297824049918706804314427324996160103786169838063259860957447207682941047537539828921056144438797417942043780591408780117376268508900679013082525920572172338795339352041315086781550587491731732254381964897127191244592171803344319468593181283582460554654859577479318957818380772062231287320427884007739782324911958576753327490438787986241109860862692595475748867792990966346170720234068477916418203636740325129899914097131686402424331354569886626824648938412034453938487062027853470517467205076438255251827485318187312468188512860010136604106051160703786580031340309126639141108549001175043997073014231836542575883536719799370732847331734410662569484999344895569985963819618991438711575511035248040271986958173442207521773923212060226026517752104138630892272324569106236378799560305353883665448601542798310875805639741080663932664184364147004352483728508872742529116304129876321474712393389091029992712409414405680088891877241571497891905017198415850038528678536208669378970916619917874977503976291535400593292695973032621627021128599592759157005973107204817374834376745988089537366037940709449868847262357051543092064808128702103861364144843685485792448416355606841845258786142374721093347200498467987600419220012652523376490427682405570530615252228114277557937265578148474291243094342103038570568801137665894642308208422974475793655519196316808444840409497148549417293463264078991270274030326987250045794744565945594009996533657167968437874755560376836236351856916165017560906062258910723738205895443474964541056688590057010776320942169338070591504912603066251100070013999186104599074761704970140842530250303400272278769634486570877052054664393958191230250273545207587092610789849201220946008584485786301501323115348528730954785904814618259459839632278839674493874735477209505927691161908759476079780781481673740093302754186128140309009954450540329295577289146148104421436243518291492411081358125514246381004155109127604125149624221539293286876401564616732027265446130760136168257712025676793390699723221031448014961221495654067393675551663196913161538689615243191775600696057841560814922494766030524139752350280386531064729420994175166737036027431155912643606440622062617299151626669539322045460368912812765820013084342760029426559834795690019879160355856050898604031783381387296709003780994507064055149438132729864559127859376037844267227758352708425616882480024449357281358007758295637696683722992767354534329112881865857784660044986723273883852872845115671275592931140391082285835910552313131101840412740043555293376536825876648946676144694409981211112744639342100156054685981928616242461687978608246893301612896811566719373275476096673381955445550543970943926160714515758895533227304837426269123740793915660403182549313316763804556670610557837672097165485853990084388219427934760147539319471239650744842887254457581346908034846815388821741333710518552864346682930048349822577060307725464716973152465322626910377676119233800784270420024222324047587125842663309891072165080299469008149791302716312835745235327024245026824451972209249823686874503820202299710285476923828568447170539558713393480635066874171286234737631640939208596071365908405233094373524097440850760750440910680897737106958501063503296658355382099828183759431682479100393574290246328979631967045277697748050734333990594848100019571285792927912566877603541204518574738590781582319147816349872453360771177568418281194310485619267276199756109473258408584796373541776832590516556548271305694519496667739208465771056234952726333780140904848637143283223251440989274404108480839162641717307665961570774757229597588543123127592687216321463973657550808258998429166239531298056691237551679231878643545252728686461220297690783294705282746991135304448619737073586378876503759939031586119818869019347881081228696265379175147636610493349602186886093475572728630894193025718155478275415538467229085030411900253745641849480815938020557532742263070928210430669039228459303085552145489358055783842133533064333811658607863892518497119907410464178463035932468778725246303761025390293364431913863355639637818143967122971412723956510850753521675273319841745439201280044841628850954622819489882509649695752957573588572179500283569812604042335871657259298950359664002612789595863814371013833454723119254699372989498245090448654973414238244105867032184244936606955408281978255165470194509224728381396252937338545096264572896035806783148150608375002690446242967172166175684835733235341109925707970883377608318186540142849412926530987384313338330172485042502087246348982436006681790428738010684011651695588149687379411045789114635577388045594481945272905189850816909133337131125373175439761887594411860046189005227445270915760478671544923307766936056510535978215881152321855505905642793525819142317190189616203800000524841008990654100757905212201703386528398055441037844545679691539459345530594967834581899215911331717256962241020941741204255404453607916094838514382313071369214401349587716141328777477431779316265834390018010087375388193422657196221910900196801394008805751852046092510594045801198599346348654844016974643288026240018456594193381467352938755944864379448623655509660513072786942001846748894338904881230150102503173477728698399435343312575714103781921413234107091444443314403162735634273403090823406680680182939912334521195247847273108231080282175029978150543020665852269410562794013546226552104612027612661951777159702213839187095848975160814037319687206884026916571602665975091836331184801103140888709161862874463066620890756129204392108077938056324246624543619690687280512443889898368839086568333101983490739171480061644484664679898235008487286542511840646149402619930029263353954648218214722874822382950189944299843060540727690534276548030242787516967215363755046099105850129734159522275797915537522084404792608915508353535418309724107767053060126344011437010817523266547989773129345358668123399766167061415369881434430027017895528975360497089832074615789857196767984247765314573761902904303069502761394521105247475222804960943538604586431414277613408800894141745450823488795640440263445780683084569350626323267720390466297273105853361437913614187576711849087507445022665865450961036831676407573137901676634297701460826234342837441936772226773333449826092120961558082501636358854551293885989932744365409947140694873176893883405592920756663470314539364742642678509244708744513235715262637944228946728990950078529705815596760305738719859618964908531437063774118638055723733856400277239831026662881788207725518752328670986157428741980285039971860826014970138105095046388425509014550442222339896182569497504633555849524468484232854461192949216858767174448916412114181364775721570944943749048477447676655765681499821650594485162401897125545572553638481986842352247053001053142519367767756177090320911960870991622754699044812542132256921820306963989148667564723460531360931387485310622528996736332014606852709648613349128486918478006556095210576223924654665494623786671042564677695250593084984603831722617217287662384721074308451266484521914424094672993456494245061024128039199738572182620833795251855409167925999112905001109574133358394614772005464110028272589106825699504597993602336561123165302260873347088573900769348917693575583572904887332434700307963265574061401849403732340923537352859784572429717550382735571525731466742016620430578084953169088242485316203571122134078492978519590451784959059053728141404747063402587335420712332040356010661810392744437498319876059099497172234644629335960639128902661241530457359843619045906048050816991073977070376988622055934587077945464477711437916944807130389798110698862183663912860162610384702859076909017396344113208876933517748766525938327034653844666426591809049773636601973478277074464514334165860744923256221437006334241105415483572436831854656999520923120090551932485286975246007647448682807328848413042792958624638401349413881005762269521044992237628940131063558405570889654569085841733928178817263471702546690040280879446600219769153429498794102487721047237378989905398037343966135756415250871702694471107731878465145089240523176866884830199304670156374798404209727368793192648308954500504678478748303592699176140909003223495554889068154585127037395369852072661897928657592812417820822104356289449644968582286125564799834665543126304953373322959414471265272059751361735696023630958633565629961275120169897076451313691821817182510238132755727964001849602502716133704041212282028422652135328295040107265994849230355063022876232835806352780862125423922422544786529136530301957798902499787866877756522467857252488563843182669008661614316782130974042245115848248031021446419806090413597090654665460740391288193315471087665291444202002479995240510069908774996268713423310924478854881551529258182921086202061451866345668406535447034412795003435529287475431509802151565694809573051798234709567313035621591561511012684636845587588833779171961424283398189385632604888813024873846142704420111337884876645512253139762463204787228401730360013916445112422385464234969901568578686119324839408878272863717957662018138033367789146811697667137653416280804713787650856027879999849645997597051217861766995655044410158422050523488524906181144841978791633002414012716385541804981071200782808437822150854600431342835362333394088767954620106978491321702518841123288524115495364704022304198867605525602847917715597943831475080706170050850045191123901923073642011173778702537492877235870347286654395013981992864422793012909684274691549465919079648737114278630460674632161321143721050017428660960173055559967282737648812579825961408742327737615674661548772569224787684514402828607041186488015614878525082772029330610261817312039047567908461496356177006753941254518695584479620907128584581657286290007528358215285103824636367358333180555412008979850194073749917334425816538942636834333679190293069340506456880439648509982899683284524944695492519980590671955137494383462104901078935689975346110919051526699885498629388790495700843337829659596804106982355615304156606272063906490192029837499293028679360448890411833110112608985832712490668918075315673804345518661987558936998945460288322673689921542584334796500198382543191776632430403088526000154733945273256783788324493594250000551358700592422011094460186526815472719828888545463005141950693995395570291808930249031614679281046443164726518988730716445337358337764183466373571045082693311992404655781258061597559767908252284704421645149468594538021488305128879306698815063165343424489553710126951349750252254669756904956888529150413947620555520284760406226330141475527976646829999751319562392395342236716174912487051612136396492147370774602240418792595985904332907916260241771107765204338304441893619574165403659463698413294812849982205962657705744754561065717591088124391772048485691212034827315236941305428826189909873789853733289212057761686253737947432632784647108317792138227633619694065301843661326828106955810874757179651225563979570556293730907595539673688749110315770568205000738155934325731978512261771170877814089594558482520880969065779494622096120645835802438569947521211312994075028151098252095391484409026306632307725706007450177600843418586408164654799760028423812592801475619329667968502838225141352589020745475906253666393608938899080409044601240377943403820471784354466721649926338022177625248768934124486507655168289815060004781990187008518128246513639796183073588091407443542400740884533618911314022700411196928702128666906361030571259249333353893864595201949954325929380434278292757263534170926221949615827629193359058040988674176479317671082520259537270123794675302314066945634109729276726099933709162028556598900975392492076874946526992141161070083156296121461358590394330070731106415940806150986495400819433019058761883114664338226267283854764044840459924620680971498627470096301796764636911105699894587688582950628034138790409283299007417148335524911528502837769502428523678411706028239185445687443244166733457921676293700560250227549613568437033859341909911695845184608175021849919882942490222905053391580902694306276460473340894828414066509568862990498376433780501442447134800839773135286177585707431113552068359739969929141928498837559248630053411311890859974192955998163612730679409349209222488406494656396745703150332412566621067773775701824357033902339118749412863778890644636170240353883384130036417852046617339223733461223136636943086457269692507483735190583505214253256870240398187700322591523950512858392467077302803240055752962795496637562959781061058996926685837511078062681459220300882997940494083552396167227534824659549044815710062949743335980840248646760859780271388939515368076899461856846320862445218161227967535064697435763151457452504114192376964482197227057215222250527210699704249398661301196021850787018711607094128826943773025002254184389696376027352229260121915954765138036895463307803485702369199592759960135372335531087260353189649680508058792640346897668473503621318208986354439572616036006700428805362579110589513428438400148961893980360492518326376276504106008814337650927892277540735123336277795402838856444479184246376016249002647975971221802806552919884426325207020290552949032964401274475252262082442624801108369455899048403025502233320284572043023337008067962327190772916294640978053137913307409315751400778432461115996319563639412659084340929148830737282534244340519397635533119747020760102978335326342445197122492221441541809942419933168955852506884407597642771996755474725821802366703829951075862743261678031572980733386371415013622431995578795161718697707390200835050515336927407051817395041196106110670365488260777990078797642130331024905075486423275399690493375390286727120964721614096860198260442965884126384162366387108270704460570624743170740635437074950455230671043063835181622358156741599866956653749652448381006860481127165167623017042389115417666072112527343567340731376801012064936793992786276457213760227792605952882638473468138882630524124417100370698437352949248400144053464965400020186360397029005728116508347657796838811716378336838014580454429849625393178011043202029460144958913539489153949517611896338185575931406861673515746802714645200640487969546170725566052185243172839310223957953549728212637415043690708072550703078610690757672019186298255145588452616072384797937733618129062296000361042811023405167199149887302765720917077151599900395771150566779431479471882614036714568159152270870020403421127918043388927754321545252034644149740796078808642071867137446437085365677333286408632250764499814448846301249660531999884612428794025118808765647638283727078462311027795038356646045700408704870936882898733864746173051543614342589782577825836639103647832366047038601351337657523476302496806642321620697029252046699581481716730989530973179944052118540010560689914792133101888684019716728719859760388432378353367524192337925604179156518979000563238875982245837045999930851039145032253907792831619414676971047440032918446607618952193668673786567995174923496833579868416212371009164589158105273135878914703209341814053202123862278718744799985205057235570554535236317514823356886993840151713300749825335107499764335788856736825902654978523200390156343812596429140485923281112003304739750092474808325389204378762062314964839476974728772274599224312329024066924418449923304342742167295043018814149916928173236402836794794787952197412983797328333552881947861908359974172145215160927544003288991842642567687723780044143299983622605700548219861056013954403555516842716257780137917346368552814429397901990529232554217730848091042477236097429017957275957311278142384138534814324502798825566692313423067520485757744511144307259956301237736410944756452908251567655376175544525801834106152043890192060604980122281797119816639404704781678984984676097591882261635584845431991163493708378507273852606742469270277841433034716364535252077339068448757450959735706547192122161096999523922377257973895948121816033216758318090306182555878893525140777534551050752973572102389595263257671916550883193375204048458470936879977264299431638011080063346803891649372075321911752407843968246958854422280159885272903693719413487237744209675433560102191877743756221221284752969571874619623476841341977109963779996687804384614789256146815418714495859341462283063261125201671909204981694229384103040645850912381626910089705864895926590905998631180363411855808721757305914728535421609052959153861697561644945071413524808051695570979977111512579069116512441704278606219916447162158914405988855090690130755176572964011801958501606632541473451509786664548746946656970837459919705407364506836939220442249639432272991613091675226404165904309565985398469694558899881038383268372597140348183151485267666777116350084591012291049574693473946717206379776302141602439659282306208731813670784327475203379933443714965520080744035046241705242349096292298466374291792290228770405219797482614251073972663854618032239454403785399250647103444053948149593054728215949562790837086606223353668911460258760447814298657708995962020653234618875326501046273017501599778888736640281735014353190364244627872174795958986107813931984735924908873434633679735520118856301764131451388818786253327933508009455555651603064017131674021694372229147102088781016048197255854458951391028033166738760362245972854065682330574628753103695807139301772631877327778546100443387701684077807084927455169668675027954605020704426997107019485104774376770123938038394807723516365174786768641473050541305898140246426990673345073317196239431426673588229965774966872836766306126005362217452562567347152626921564454164199803149307084461944701657044693836943447511335989147606125718310744833635759028511522977675427634232834237337274418707793847784678198122145956335828878751717593845622096795376139608119006463019865464968955596250965136017685291651344104780643305625361651295009466625235843937477113445729578616311860692314917469103545622672693815048709019210966539831825700405891729860908568215824820493247942915293196893138996761651743331633916444792218387995986549500515739980397579379829817484092775434876997372753482759351159590734230783157584775768898716444320523573495997417631313114797503941747054970787070532933249298276476309728045005064008638571482578025936380165624956118163970111587045645469853276981072896256495791194949923014949995700137201854363976929279229877871161988741079398403907570690082433642964774028102244413638313207099177026722998657956615422875720608745187480821855244171005044663480452891272053462028262649906884670655618089630664502242144427466580078494948130676910899817687387715188096876524726721563559030735761648972211257582678915119417613032197024089015987723516726634628750768825037980486645003028138056176687581771026362745569899278733176302040598257117728650139725385287757967956699137910425157937053481899219186287259241372818578460366792958938416308077133268189095294217587446924175673428292676836829840542894443266349034586618079803118202223352983968985088958648686454393246295374266909335022469886183970317147333115815372857880079671064259714961835591860421411113368769595555942403269839486762023425005258055880012614893474828356834324339576985563945264617537877613959040388428150786130852622349613942333375431190091484174120677583741696801738597955258371749520471061182428780240298394779163931729575363669641358871518219035168624336484469674679462200599837930639875443304759026997082712065279701005721694412210810876207151118878285168830024585012498950102540390594886131603369543468152236499667366038814288983087505682451450948817278766753496223541872429156624422613903770164356146084100592395941957542767240844180419691595083292535768836567799153553289150070950423869508913973973796898810562993069303362989747774463263165396012981143554474232911333745295274558532894390042678782379680121516305835557488104517993105458345010300522510360933987128838063745406984090254909532226603574330962315496970829170599439149403995726841114349517461666011273918335545475373884550892239808074299358064744273059073166958837139918214892252317848052615200597194843112277113057527848889009620413074763141330567233649328005721534541167371683871863735032376123922157507255181967574495894193256499431425906565444152483445930940416351223523642514209856738740092230381567007747748250006025845774140096545398472776509701622192068384535677410271295667381425314519619084621419367181735159724884669034349254773519290223566137923583923150242854056433675533535222192666923492078799815890187963941145185391652443291953132624543847134252119747270595720617643606480724702074951100806025219498219643041446128488478096199151933753948033119826298039097283147860510177167721422473130288156580056954058460584742668496886608969377268202908727181483967788560314041816987938030750429504894259755320968748222948528573708667592880343877833501248398288889592722346198987492398660033510286699332094435107570711526386028216125236278505990392251795275765402077250780764566841735942923180567642203327897967162772590610732034419480179126090220183466170101295853667456126846775054945165828758549834328166845249474671902863547685963382960731755609819602491042065114799527744056329098882804009608432253203082454955358505252423460131179715651250626904363467384829465606726935213359373034482936880387451557698860291072887866218091084765957971127996043756450328556249508516365035468985502176040489450661348250782264447201925990907029877712668220946553168257499622284279173791831523528577954190167187911042906641153854337179022885049937249823904652108816865872524786340695799401402621764652022191386174165449337675620619486069548098828485025622279254936705828082655482941859858611786078513442228612093609048075053545282978567818313651812540209266263379306157116047009274417926696656009729104662066524483280803256756362129119325855970264731226027542982057896615898707968685755525254188067794007508587439810389396783210837865942169364573950954427336103247668368495414399046065356624829403990361474627186773570534573230406470383744869485766732720683244115451140428686840947536050959055173852665509208492880988329243350781357397321929208278091221676584755347048171306793030966029012356903416618896746460275233849138668336118296957260933345339228649415059966858282713872042277119333996704377682549980633412788893284719809974634097934928415401404305979966748059208685953613362671873263496358947518739356720931696186001192820162008264750028355082385809594923771589981983583326680075979839071508514761993888747313303002935689176381989769617267201530804152792366336485279348710180165093335455625680886224342151639697744678896235967026625645971075756511317701071878269815790754598601109656682717738906507045676511782950020529268708848630213140244632261685328171195726121610231212710729526936594905964242568700547696230151413866606393537116984533443258528894437588751836331197750484256828045900081100244801170595782084987095507938226732599505836849637503988103735702016218860679997747577276186494024344981064461633772164670407783040039738948062776994008695348993369576468339418347025895786567624526730032540041547393733098203998527360605629153793004218179538967577280729075418063641628208117917651563868093714164069953480455190825024613624260856434296556433142989194058110434949343906561152466864393071901411255716238991953218244247438192249866680076352441661793972794894011407506950233532637736109015468897862473480395279825620954153890603156940224744115466394861710960240783003870443311652910959513457256842223011713910453275832446990613832851973062135576844763299346678195942111324293018284345649995154308996630582643833558875987746347432842739454817370730549852016390487403763008532940132016475427216848109709691139851974216740746683685118838723627001260694554340032509419228882554396341025624709922533431944016521060851036927624312027172813849107533956776269736854095100178938547921481213457767457149948504193296091367504860509460725158843114812145246631981027320045671443335744953695871913117715715208567383856172401789946933919718926018513616742041724775765910530466384879569239829620077634520744765858326343260676413051394845923455877497645157640273877804555736686206679419358558886067875095294157147183842144640638760090360326127543470563357637456534515845248693250260507863108646942329009605172669182350227219591598878308301764437887653447412120844219820242186165593545554933694509473359023520117930139121289899311096565406462433435479109390124934260388646701662032315019191943491192140046445813279445656468464549041827585517947835358223657557871172752316276702325423802286727406513649709091467020235138150831505248299300386387990535384905363695652983281258233439706569160566636108778919234939012744655982651436746596542318961464429760039408088251002452105319072201716130820165205674290280067360418496669659035399318933277548772673963402568198729660162508563992469585077598871282419268232052074480310701555806868561611484201713649253110484923419750344804833910513461111334600911399941154580604627266316361697914651190087068767207266084227482972431756436612672760014637542937197446061844567210998267689636690788820699251286209603372559692691797845552901533381317165417698419279974237156959394327783976537227611560938037885471851097104085372917690140329642459930362742566521423689370854575601510845511064933208056612306720285604549907932527693485523012997518551063902704684676548631585720340839748269975782292154277425482871992000967975903982626039709447964436220519882553414739293257854112055542793487441473295417899033818198291830208181792141048459224875183402951052495809761305307866648694213733038926014802709003760437914999123788490318866334822875305352315423726507485253548626292610889001418301878918469017503344378208006699426858048102171308611476048810661656066454725834658450313118702439253734401039808330487977732674428431326780237550618861885295396141000418475471655884262680290594270023156057389572843714070151647640902541802320637227743747570033690121409253540148249366241061077725740734450106446783605399716236795618940128757808456691926558033749534533380855293871315018498316473229056970603531855771029924457557073939307513832048594537929584734843461395091308948888116208045295927133852058683947555449853636957078132611761350891196791398459149431826997924426852453482417052866577514849548602338888861591759931217877783275187700062264688137505116390419938053195535034568625484236233773155760118035381818287779315624013131413684817907679727274987195978757810471667260687620485486990396547229628045054141270954031179502111708986097337005588328297457988335836627497138542253225672317871869439125703582242122819009263931407295232866377921737488868406964200336236607407701490022874732472368618949378079856153456484399656570580698302046542227200705563999780592982584890058506211077699747815912006582049526936375522485013890671160984249599088788512259875821551680517024245755112918175660486791205250391166268222498502684018289694156456013328461997561292517405857175606979033013323514519299796936267233995652515154332710994205227502381091915645904099855467446288314779133469559134654463013659542908293467139860761888071018711941497008464646466363847780693120979728389114083207589768171237835770623825671421386798416470619769406916534349494660200893990759495980312661731075527534498437724340806973891511524220666030400154384980738339939796378998848309723886706109200644460982861732274105049106590561060466906215294514130580079701992761788765695477597400685842783001441262591147933004642904844277342185824330973176185686925881263423289323769057516118834289356214490352686481215879302742508338649406647708857082391477878309381924515033628349290979327892329581828714263117966711026717631770516304165911455910249664878120889237728531183315967627596076239564665168133756321090667599140119572839536230915764138240554402147433016133250447619444079501429534205523332873447597060658746561250693471770840599171508427113026948536920126514470962669865605724291075250633638849444849979237076200531779347246164019747553044326192596597143800667089965109187389568648991483649773675454263984043661474237815644033347239460228728360959532536707760145741507712335800843284940310301872160395817927838600992428227626487139527014371905893671542202519933150747949370832371658997647375731623160198573187608165675124359477239465568397631906600104743507820618370264187155537036644967049654691587529316474256247640189500270728924024404813069439548299298446934318066960537899499588350717369437687431000199800406004139461360835612968891101918918459814122482864142170682969332759563578502597103201992156925799157076536186416042343016076954946263383665364613147272153360338601907753309234484869223633765138970572485704560376299226614558475545935592964955982344210768510178110014848750619197200324774553543844620943310283340804122120386334926719483407569397570916857495466386786794436121900973634021152401447951560355312163564562938777485650768198023417233868056428742854117371909965179107241443153080124664435011827589685010823142079627535150392275541932017172060419189959148323313969852518577104844754783092766339136264607224157860420419821772092895714668107883548316322248234403845346264545628925774334478633239509759191561060372884004744112856156012626788132998263294191624282132531686933314410317660933022244031310233062485598356958841968936446701119860835000430423220276848262011819649046553508784226876271582644260026929035944465993916438000545848386849076806901716764037063433460896601969467211906273312419367082526820465465310184707804964309782796693764308720416124549634971980457814072722769226741531380974756375420695020035837992654376485423299102732644256352609935138032156000425060520271685812699503002934637993619135460026625635810321486347996757458338958686722357272234536425084641792208715020733054746524983480897015275717569907933781408996343524620725996869823247560006246091064959169375864856029960293367295292760331329810398465450233324920033114751775455817580461837288418015281320741488362017044010364293165921290368488970398382036854735943323516293033173836110099947793666084753274156779038319176119405760946077759049830637578878021583672295544112013796087455879006444486323876080354077511510643790044396636967122380840838886272623960667605968250526641924818977230630832106695179674615299701899764201276543220795776254363514278967814384272370272113050034547009050507967625139249434484046659436869266189653197841737274485886651894064529836112478624346060176049765230435357262635048411687462940708491056437121753370320854660378334492162274083441388057138270667334139003637093539849032071936549429458353075194807203510098736349696532777441466079555631153746298873589770270178050364631360773079118219160283734873347837311779659310277966419349036004590455769235833369359940276527859380721833410339417793846866086219195367373427837868818146319630374024985541778967455151439904211709694687925899854057147743036557586996428805316633611089240452142337671354311461465054276678455259657930393802283994550753759781459735526081935522958210605154560297024670012085445870574619786557138631188581049689117473223087935296765590196548398456420789582310826092765239538725333541434872236619228816931310013403042249079517363952178211066916390420924696105705282782044313645933619039613969642562929981281061352662432391177022879119153975031542798306126806023310284766992169646310371483873456208037094335508972220894529261442864089600305712857363770886705776137169952083113773955847296617484500134148338814736351412803674292076461610574559337429679357243009473046549846688401477844752830277120819464613090443401477696752943252294082302543008486856707207911610508786379282338955150277803396372217567459871082208592159945114718940895823589058654278287567250095790990355444872223478389566064517314102586598264531025198554184159910569280551817423422221841255328649705380214811821985886935524671307713924893226067240624929181314668899287961763605647302883000619993649375892621452758017319856050079561881929855383884527094145060977489113987725091148769041222353621543937405706704846862913771781002884634843275137348817725313920171405549087223686073213827522093430379038993386066348205882099109830822382619617158437716811108537243358859394482804597545011847888171985713250304127967436165300670897980760993854160420670339079489347500988519994145573202974175109340386088351527584224436567992359537711112986829166063862279830633598863661578140653110630673748205241389553744773110582189361439299720226736528741159097397547840086393203966942182663373327014246973314670915600292660613332520775535335029299125524900597850165764622615325578367636299946499303291988209305804478780744390339153066620729424924970312494752181976940716777807214322964485932029564010430438589028307967843521696383019134295991786840011714605696755611721526256843263796322800311609082515007518524897187369348938975346997070394435095008267709579084825306478238971776334940430790501968274554220994613781701961826475156824064420771240456796305425444580447548647433150702086707496301392311719994083711374509784262025779276473710078196763113746117511687076111769281407159666712890543518130044698065403083281639900896125383890906670683834340789901134047876393064513657165500938635747167146751318700294175322331866611346356713306785443054992144392048690585809492187591464897892845760331880365091650755757924767598238280505896202777696503752408889686102819466597367193688774093691168535324018646802664061097383563131321237463986601360462236376914755805203909026468628198719446599828205522768213915508814597135164349557949001947792187506903699809980448021478180343640955131692949885092318392656790933581704300915835772309107693409514500885966139885281220243765148844142639246535502989909296662647959349914874822693549309015355176869065087486726946277522213679399177380752207578737867206057317348409769978967129267215056129050421269871533197606213904475462299622207235862254027723693879838973290534260610874705037690924713814321683309411005461904687235965459435271886300771192546267227635312990363967485307048945760162775008305690261558350559842942694114052821877308361194626779426284871857448738221579743106884521987636352459851471657674334383433492595601031553063254038966214815070386111403178997166981627115733357489911474895963217214519637423805583018967200619375602050616453024398007187734072314034024458316096182690295531249473754017601475797326999067710680593740804617107466600708700512335670166438585380009006871085729961003028925879902040244972434475600858429867424617611052371359383768329783601203761467236951403754759901837244799231203544446336820295522837439350787315475269394884530127201314146152669074080090538626871417533562422338174943281960302262714920450759120228478846541034621168143853555143012503423763539595447028334785693190562842947639963056987804852574463050888049015809684631930543561796915047177780726213955346891019208136944754821624772643889497599357202792831038102910895106475514148773957017176282290796826480297967319887259674554934314266469801144805391371559381108226732637669871960500836021671963030018507039258154704821287746350131509744987420347958356394589092883320626364702574512328573083561309453378560443900227764467655699381634634454202011535528127321970639638669070099920178535616217677639376830783175842316209942926800870110438370252153687847447009300565361461780184137575067173126806950424949451022420056348325078138552156258379205139260347315182265660995833227423035281642464440687816242095661991023441245028648322509578687202359133462450217047256516343329672404234502486781686656021714535602605997004380298958696799658088391284029578735197891662772727602781163298315592858765584870394110466017392088665616756809207377588785420755477545021962034949187234151841996478432169268639125856076632945332502963394493619148353590589450120188802973295222331378385164083674834013830355090638370888669879242415281887815223140147255573848773318291124812584134945310717985285203185331894070752839830492448029149523224766623789576730880689193264466342047323777092371002116892567262027990672130509145713278446310557411171734144521168451298516243114601912439386941802233201782769770457494487663503803290294265931209227970893373883075901007549266831562588689045523761354268799691676047727069498305474187890015101635305824649960170452209072833599130693011516939424442843455814013049202430819253296995349880422612615798655276602669836935230082992060738319302419411801206943919885102801487110420049702611877308242107524397329175293007154133705329892333790913917865790706149954691491362358817462444033101316031328407471005996073621123580627095121149341855390581302105641720404572523418261682576600105354835090774327604806230153070405513172554160153083677971537741289965408794816435671494076090344211112889727563622488398416911585937772329183231861670927394600257482948804740031769424239587689015216627644623617751882174330383466447822904747970912764873152336714561006451498841003850824665009749855281413435397993135548442481237664409417703957170591186377772318380610350009152604268463861673976902774868199356895869670945918889470168924975022356334505791485769600655869820927739270572187671400329254782624879560103581640132288843236848019202595503983807501906268024080740784077487170438674608917587172854684215030850682742554577342506182805242605799766010918624458332570877299791311317565124543058409155151819931038643011647689323221136852746318273704463792445310111074643500664358421978124923068053130845643170436781469314305826545137974697542269280372657898283271673662705223183557431076142863079265642825708788408409569481711459101639384485935127664879611426801504937788842599158387000976777576614474378662131704881542062923290004760642165970196324614555548729725415857208193139667703277794614413685922881889097894968967363370696852983895326996718007423174831706496389178097671656608918499156288544448695499991167945873149964656194802278440672269101990402954434968280420533293801266631345894115683865192150021733623850009437015540452598088858569887359036886834574934928234447413573700961063734352029853394128954783622635644318977231548448860312891215118828356060782205878832088376864944992310863007625356616823911722806921874048995282720082751614947366596692856867310521439035648256775478046486251923202494265709346610758500854347809477738828210888443267458759839984555998972192582990126694921324746003530879081932472383295432996070226014710532673216167167224259705146609368532684339493237033696932001239546129571094886154384362885145932742767518499694370644955503588850314263674997393494541032724403600844822688180196512182803760105777449840577858698997235925224788132465427782551507153564123629220907554443014433656025609472273270731443404220620986424838281071305440228616850524334067385495242879903102630839560806536980374805610379927824980094951193889728228834178592950060834680364077957368829053666039945181166888529082974993976235596122069028842513689245180241824977404884035099451081973800302220721065197044847798552310341140401270570829440871372408762598475659112634912351212943176765224532081995640161483405948377223561838669167504173171365679249165376601390907132756240998060379537690622099836483200920129040691777255245944829202533216594536923773102093747832936802319845993771214680623266330868743915315332428610605494263078895201769234202229193202285756608725972395236913277877892321965802459122740296042927981161817302486698593179172517724873998485342653783834308856916235598749796661860000049397121915570346612383213991131693938182472899849454370931274235024066536498406746183902498508857327510790301666412656386789325936712756009898297363801513132660683547837808175300596630353169403579206904590879095569779850738160282701440362256272598674880751864645279953588119199307414623071999826233771962985424380860945582757171524472398132245920766963229280752790588534888903117893528810494260889083356561579165916916260126886725898706628313793071090750304596138788947752887659643232141305524950037393922929008871082223436217594981682663734258530922043234078590885399084235816554904725225886188400127105276051889079715477786905934891540647723041316316554607401011229278096591488971339983346979628565955536898212824143540853710461281076329893058864153910437488628204776916813566331715796683717671073353845366866767688328251941588517790656131193664216075051967215765489976744291162164303986895756563122669207811323542137426637963394935701782139911646780947107795449490739111876568176610942104857921535936540112851039507699408481890269270692731913046831624925878184851715979264461253904835180366932646800561200127326314597095632160404638234687198932423739142796003659057386746774359219317341639008973024000559808163132473489236955298053888019796465249626827096010887409197581071084823945596905961102915709887805461418801891748914538625197916781839761706698548482913170463320401906857245253871781952520125558966443230529255741671548531354058904611417632763587445466754242062944909451612607468409478066620640651710629094379773147946644283837175165574875409245978694145612267185678998108704942341621953214643250242846814856273256296075783773200471425113203365868554534817899689038424010054821773212309455121570741544745083416409020229916767775254732389652469176182715624472222207719466183842776179775040186688835204700082638373572153084502080071787873389847473722539128641040870321948058097576385648892168936855120375812606488406119630790831552976527587664959470690041719224088955844198646832873767885461088489790936819383477730725534093829077928546463183245420332983303477313061864817091845736512434932619460154259499675206320860020763592638916731054936112566274305073193652861310959244248919645271179157687998161601194813453331869030173453330461022328321583225099292582584772435476031431394783446031861830078898768604352968793050423959833389587133936892253754057420511391066381235988974831396384749832528812893350455510291559252262059899353851512336412286346791664445372969517547962849467570865888563523461725671424641942549260170146627205785962880294125988010001813774040319020206283803178298865069978573473045347170746315884463186646195837216587258686018133754353080870549696612705127812858346506156076807629676252517220913189330490941179879512647916110202111257493969214335184966082143711671848703147602176938526378435186134534295712098713325436233236820644417694686711879497572361579752589389534967905939479049927539574538025619707385808124519740829108228200664680636106025830369224244689410439509308128663841225485615604013667621081269019716788312036762361859715694367240835085956898602939528890826696529698010706692007559877233218321235140329884003978985946158065939439834696116816674974555552348233906822402493903234394843414341640765294755231421643959595490366742429491619576609883229949264393095867492700515743634574936256268243411243982579313882732997344822650448252521084841142751854895592458840929443102170234494762635907747057940545589375897548847122910857036607921544436752688063691593336795813142471692085012161975150382838201041818586319713402651832980166524892530303193933192781175124208172481212070783932947054022898796702580156836421679556487471551054313734180602028124731737260269635601786898695075040300652714653429982088050781912736325808537242242928887735895386717682854757214657647234092730656807208388570835019141434987520077648916797861326044616921983153902678398201997387691207256414514124273057605370359360168300596181961551277356114319864124508833330831030873014927845589208061204802753198282577748533244906566695556343373658979651434346251092291725980223492357756738048679322803736124009394725398090902508620482674312860505615391351536732372059255811558707380766434203432806140494648679224469170123694416247807963459723676323013351059972073113954850502914602966506738188028001847368535828242311290959651838627844581779218554367603629352048261254731997538230997347564430401270553822577214285887554420483558099538838920087187305363056805114125278412622105994606163373508519756740175049858256367794470021827641404056811634532102318153138670694591526146750482291590183730188764282012921028006352876680044241740697131327069526257846024442969262429084643897574581397537720613000554844994709847268476786985874278836067786129296082454838286814730429362706097779997211314452262847871400454513794210509606825065888429007961220620076435860620486685107532689371592627586073402227848056797564585479754777527840701772220836519580377644444159443583423479250483314367055120115648595551231743173513597940314920941603054527054249896967579682821875695339841786357082536620460902567289876987501556299360075685984006984053638684120403888448466838870901600915842709020957942608189905299422861622161705402618424071169361834550564531756623600891423879504925165419707865528593758077900535911331873524122794050074921014589081617480543391155634384029020097944188039263845980086848474485008004453878394735141345465187545894455347297259936059900094854694921588034380512835272575639899656056334125185084233006777053120984938841654341261251016664007993922983121074044639107163015313930843479796624882909999579128030214247923441842336421273001095461098293899518739068069958963793814794975072606973228916797002450674656121902534804180621602915984431105916360750867339081688947322170177417998064644925595524761041757808837986943097420198143190288281392531716584838581839715405551021077572333304317491433832666160615279756193996365793383526729255755309166833480208560862753565454108801873839768560993323629905587043124694912556305977172460927930541057827683299146182026517143756503448125411375881141974038119649272607399825105658856890574701821900995999267610188042202702684261992115395893957792970700154085997724925789669601815465963975329733744492036985257421180478050207708811892532005032666557877370762539657388793110617094952029728895349229128121106221849700427675076019528148855930458474390641809504229082230014919040047799064322228315134106754709759578082720518522843704090627858360235861944097103017848827784367760899341059856440461847428299287599194260945214882698242285924312026202150491630443595483897550529947415645450554968310870182854555968073235044377875263665088420147034782496551953203424937919487556202144266581749786419888675285452950931334138966970115232905785849890716554349546970995198375148777649261833336418791283599866719870954787882343860082520810940433461160296823333637763950500990272032908363506480572604274644111535751344397666763922030931206049436836251923358593476299749580822050375592863478831940488448668241747448068775339797936440402386496356863647830894384262328007668324204425974784620847904920979880035903820193919671108790727017467166119813778826380728038226620110091396816651100261512865549480686108941576938028847871680128377517376577228148776804013892332330563431781644706197727347688538506450981787884249728419113316267351081335284799633803876873869169857358419379755467800650203718748104935621885016245695371002984015622030828420198664307075881804350796772679506733852587503665632752531962678111481082485037681071611536586770752605829660803976857420597196553874127273367877896345853061040904003606444770080846092647489261644968440780608854765355125907115809157409815256558994592919724772575791765137031296758904395371260558936614004027881910773306930190019901111418615657475415888929401612167851819910980960871014290635949008209786392462269882001795160281675884285414161589288444843979802543747119520144312797112326522988346641950987150639035216306804050847803770384630374766824850091029327194604684211741075533303229860350082542779819050236382636623385590479068265501833923010479821399122774610231827867342949872196472311950558229607948877512333328875210580168911760669578165911610959145479015772199960135646942745684996925101402824957030292572957173523942775987607234551879321327351042546290896966626757629232372649666104083827571136413809546013256649801594678684299123705761701470964767476872647932364782481112803057137857063906861751229690477890243460293296094040192104755425166984319111711528141238920685383140619124834785761675217969526149373083045509456765800902618068836134599064879250148825660482881293320239665785803256207626836159065459263316058496070734269943512905871821297599032626012900562542366766705571047143335470235063381951614623044776864752567161372603007395577828365456392361705373363987053736787192405875179166168366202615656498885194077801232453987062506158248330100175424799195105746301693911342250116048514861038344732752043050394592997437116477582064506207606413098856412661769516817696268220370662386082677328006018576122117813817724909571797041825978377855526019177241209550484784171126803115196328326472331034603338390300060276636056959951055917515774133955903514147779017284664932063021579560101509311180376667229462140976452458392416834169697698716359505095295958535609190191482252946345276089439545604085663256620367859882699903940910125091647115851827201489080754516364798969613659907149128451970452452138192316223476046412283216236717284117552169018494994495346958049583474332420454709826829800227946838555477043395816109742423178951359304841803068702961003872998448532641137070537415353860061169997939065951695405068941942727215117639216780566586269631149486261129779546403655492487070957433336875350178083227486358479757501208850613534471209014125529941965088052130400238658776766429234011312633813392733195901395520613431669370004338081644366784743830018610447439790741193761193356246272394244802874554634954851474876267599824268056771038903229850082870639919319662216904271457239810895184871237303590202329986883341515475793491927015008862617185451995870588612632234971302287879015937463251048533292040678303999135838265227362282401316463782523008836871101330020802313531149757094531135086387519747916004772360337831321584056423855757986425871818522896327916616546800561809047478141669443482366056104170015429689619665619720292274921237036489263524088129830484798459481823902428422609255539032301029695810740437687272209277693284731859783824352720665957067492221601286279727366847312719056624139267182091258721565834356062441299521926206786181724570772102239490844834650005471349551987202392137395364824289048321796592666706316834551941162859787594766609083409944726226366107694068353094640649739114182833897154759121689382041576975028460883260659631498207287205095804072973559492759874527886449883099033882854778267585268749368826315878896355780603815143192387545153033184537822261945595116222429733162349149007900357983820063210620613513704806825277496188495374956133566964349272659538587590678255582556525905911754939612911412499682939835558071500265628014576025518699727037028510649234735031260006095704293213479067088575882758162384620099096689714480563653527419661870078419537030629118222902671967365247103858624523940891112625684343532213340126913828359165563066080063061876746296317526190809483815048561331835960372601610626367358769138901459149654778864769833800871307852411519340114913461946664051210423013264680511241924296704629444100788306214100325543519636974494455138033927097059709183967981754208295049866752432684109099627168157151696780478120714496783863841246125156156827488788758974317250554073325123465846320030786498424176464882819217620256431547510135246305196377532660270298656384275289414513213516240525586845471795770491467616823597562241761180297204713648328244459009502654129142888170562533854041796729530630424471923094212885784083555192565682820130538635998220799530734233981583260924685837414649394342578540671351014147831654840078935886855393094433146420047914235005098279592964194771246727488285192623609446932850194391576083484416696510119489160002994061849680070224148134405723489862619565835114998901403758763602268560614649070781826994126837351892580405181323598098233213290147311438811786292879934500493674380060385419693812948779046411278908148370493195191535603977381336248569665944822087028508894815010286126511154427131251584193812260388560118500460810908218582524060196348050016786104678652747854649506941694399697454235291139995211865323970200130786005407769378204058339944707051052122255302860877410010448612489879519626084007983309150924473670670009296827501539411161635069023436039033558507771363877895987666560452187188935679689876024512353873188011174094155843584365800507098919683335409584805668668883129745959303862908543134832795520648159401639556752722335957689413135992727996425406765160080113363960156137086301335589577766524983091314158946397258131800534066114038199992322871393331151313146098513678552269705910298633952796234562073265346056573144493014737305228917379921943440726364423092519004093936105709918823543837215088200846004822777899009637645351833175717406532933076323216056750446220164929775902412165418325474336964669441216579562837044071806663403759975314952762838630833235782514529047207705086947835993460869885410703394022684633403127137736718743213950012267886431661728413975889935337661469537666372533508538021022077539650395791679351887949600869279602220086603938833432584942233521514440725736315421447541008296534779534609274963079577501999761757855411713355703309352428473335424345888530028526618412566300351164282932768561961931320317542354396145368890961500260258819256095944131625875730975062138377545095138245144847328237573128459225218882121587325621164337894752951871425544601372484940382326210772306381515872441648913821549984963500424782654192877853734051973176096295836467441891528690299764631907765339221785167235435595968724314710517390433164183826375041968759171261502500900961283845764506621320860801763779094206535003352142076143054008007733730647470475083927988362950908315093437918586545777739789275660969216211588475892486854768630639956146546353606128097870894881818710507353039719785833493903359820841031951764148621950963513967788866316620966338923696611790424287094268058142144882706541774648924418403113754741344932018099545442209457999402622556989702431113322086088092262170089837533266855956344565141368676089427835125392915199675748974951769823282035901673708851231501940213630526600171975129960895741215104769022579710216072923376487404274820245333370319095047630022034439519290736963512619112650279067857652065668659414306076515686070611744419439224027398760474772934917244445289408125153667664742996211757144114728808663305908718788582119732821268552703928020710697008187113834110662049002821679008234285194399307959472026005970452114635717047138751236436940851871292044876316397889097834559210403089102619691064679836763317246333412314377271625711193200191227251372796684996648639340403325625808609579262297040290087142179968848559347815376855065749681446015734946918706801285770979632596449722593125084854036685790544827763064126997660951718166271735668636360258305882542347034188798776807064564109898358226954593600078622380960030693993279016724935452858207122280880433564170321339433487600208941102883547964761169918322206963601251161136791706259993085300648318282649109034138738496972557848576250697508238285122409333105367425434838596664273890414869762568777688654885265309828358533146609348018405787480493626117308810672598646550734263652363529207466380528068031095144952726897772147683599824128695861860694839347560240031827889394011006910257140205791013466485588416414382651608191006632395588700107915257154036721210933946523378661836193038211364737857790814632470285002526688833440179529807702713842996038738113454810890463165212980238027207798109286244994660308042651929883978650662954209108683707336818714103508167036194472322137516553984376056047200621294971593065641091829997108276320375677875083130429962378000626687403540390762907194079793390855903880572239898646979478742409944109101793914977395067807786327932776412413709247996750873003051422329499241133695293526468893771798170169962039374805788093793229997673238527086883539721135366021123847212153761038915193016487947577585797226718574569535978296035493438426862819449065299693296023493693832786977960850341297781956004284620034522285011950376904259098668876603582064986524165998872783700133663329973987636368858238701563440571311735204131727788675625840884943833648628263687131652061831262036898195090262692175808142446039793771295212800864555290921717218398466104792251897235921611700602448122794903717452052151465244454802504902097838876598990179606574407835624572312705734325070748393938837674595171808796616643117023806792807974957553913251334393828674413723056191493663545615233667714630340615885978644543849965417586953336695789865984435589075942876471632676266606140204318029385114879870396614158857759166140811600805113240830687715255449856573452187633685284408429547961862240287387607520544670199034784019194014897705474091029747754576989557643717148353095794814010857900953005137060418288694377207719572046219531287332914083100638220938991328535293878493722114510947721061207899143601928225299967039267453925476685045008857372320241580231439254841029164991154935617878825167640131272864047894002895163513217074261512639328802125729687567659921006892761733688053298003022941956407855944249657746519530443035583095543110473283716210313104752446728957835182311895635979407958516680645119083718119942556727012290229703859483586821865085307564375197160019052687483263004611690121267426400788759447043820487893785366846877541819720450763426857165891915593593903217771795077494144973041482627007718318150152222741230289824800056805120180852756132264860197452785530838832970300561900020667916775199198180779149340005031070950740836420678065071127159614826928737338167971997763053107822358412347984384352690922248124970899787319494248432651045639989225439469131592342873294105821792748310196076239099409853434244295649490421418005002343788784509226508538334496124405396389461267192250722085020690245844649591734315945672787387035805209239701293450900971330583910962001626729415349586116847939371974688896215932235749495312498342601409991879972536426353189593310318525045024787756863324136591491183259349557140457517758647798038082741308384987030335314979217217862480224667043644604894851482595344466335959218516550709695407270961519908916656063162128329163675518513127950021983974675170261985119699972476208006297368370661498351958665774896398498529578724724081793887654586703517763046772365586736956080924752593593340703632069273879957101100378633759510981236404777941348047794141717691701484784670350612597881164809389867423329678498654317208403621185605977870175924562692796974204975191272609464541070024433333307084299981431813309220375632993183523448146889516399920390376202245943865123441669147000195520325378172643715369396654075638996348475402606571879862467980862539569711156451975524467579334828119130686287895850911986965113908012233030485722309811268610084615567106638646092004411196137351545588506069294722673394759736326223502888815908118714499005239477704349931820576673904500248927134672596889148969848544568240225547793396615455437812370968436840001486970554972370517954578210380559480008632594380031418667046515718053599450536579417785961974781378467066086320472166002102649591161293311887956424126480971897016314453762900551378435804271356273940821440152217824525451661661589554042046904910907918982558893352647413935266890438803183209627905206073674809625269553467950540233608114331362076956171585362402568713539419432021877439192152998314356282756965868057938741451779081633544287812454394435912993019138657024543065296436985132377133812251384049500476412683539071882065911284637073776550985289749140550631588969641041013356682536501576342981867204498978360307760371673257905451868401056729559769236909079034508947726495064490160655313029334400109186683394167999745454504097690906041309799756685745169959048272529369548579282016849515483184660549622059810534850492807634585321812064868770512352171670972951003875883576748407749738732110657199696776474877889076773817467832941933267542799678033529127666061346622367082490663252257375230861405436208958056396458873985067034166887614423357248465633861449950332818699086577807609389118854472569181421395971533614206744487820405014354738766023604763086073575669833836278431259199473120339240626204081529369594654311734171117771731004034731384626333036575475523955550748600207328096846572938689035736538987797794720827966527621135776575816800699415353947937828581799259243428799077898502265277443332721913222148859607853829610514031979948541361752408038567538858321164144324619469432009117515613959386304713933966533759843770481522562159236885247746664495846634575388550663439123922632028057520394065980208412180059647389039310400292498573663974016619758074836458480900968932985959133257039834150416964830800088760477166447971676647586088114611530470024878894667244771119481874523594548129182379183332157546403487891127938973429971225392521165770493652955457001585414340990167437236106506110610704835802473452239350539478307562001273989055514362669414776229262287385630528812761641387675373634714562240853529946723824437492639972111299700780199372527710621404442588591020354400650762551084516200264330562338179671862400329500067556832076710188196869134107043821439681614635498660905154298988995810825080784514066122638496275882692106015767579750321472347509538668993882733157077743192237468507684099019999074009083842734011247681333088127207549782738303829093695628644412601636703610857402369629085573109865193061340988948305278336188822706825076192196658674325857848155937606166244841101750293040419487775505828913002332163986626353813569729458295155619708412845719849507454150812979723157924105483470919624628294200674889907957283634337423508964250321755039156674093590593557803997452689898451555954238912828730876871099966009110018886168197101420063346692449116159810116178723960058301957580700580128599199543090900160155215952911335550225125573188993275122200031806256757539665788577312473921916679195172479975173150139758362710660165552100822682375781830412918879763883313697194722525391529608494303042377260876928641235405994960288057743625963072483813567875305210507367139208650743198498319731010335775700674287116307154087835782624519479756932458655208599355647723580522447837198011225156968601449736009147302534531234750811387739063410667859118603740792911676925081628542222971636483831099150770093616434860340899633606315811608713289945140384371263445980560388050303159057799345760196774492294828687201157228450540918178423023850768438085857331271622538858524295346728185673467793586805023710045875119145815863440493492376667613271007040612336110402689073435803789760890617147496857598299385589647759677219463255657893855560920693820832832774912579981329258521676819427876406573477176470120292524279796315076777622744495236074518536059210193866673138446102250386723922092473389782974757609799532512070293480421014612667739259185346438740912720214567181047516124699826499865567031602798905315637503968125146610843760765834479909767658706490535965625879054972215532864190801721435278885568470502848994099212397537993529255080257735334173891938190127866789413000642905298109236772698306252715305178602719579201225229361443669119139944322162264618414081041894312910721205334306780257878095260680293705026456473947242187041210449478487142266662965835332786598968113598545053494325991387556217165567305957666789923201749366216115093152728630469733502267691938767267858422405208158792212689654637062514384269784017388784547686915274185254801173700555739418453896752284227137846086489873567111677378297934014028985700119901248380231616898366901961327345219963095793105543833682088053584041791263604564121563181680080370182519975555678392052693424220830329683237073332799989980388722296102876911923873805210342934935783118753465721650896952981733875161099228028603505828245673161273048608776507193842104032097284532501993026937061031625476925383496683724411016067307002191612669652721389301636702995851066049957072495879958156433321275448262597873279045468706227677551485543188788124194007664813338617801774749655908274370320013661767603410265615224382616122985315383283486601717827002864379628839550413225563953092605511963478780173129116723465527913603966872013488226748390875582111142636270431586670893265072801461312777700426264840882524081242276365594662997854306364265892658307123387005734177971159402331220261742814918262796311779325027522112467215611905338167824230556206596463156391993416610372743673843455533310779099704175717309361541210623456515881106233582352780190769364192568486876985352406331281668300978960083311608028045047763899320821104971758135449260014527890943304395839244724823941168288975857529793697421542204501701396363321894136335451592882384893547152965463319735948705111471742213407458795851284478653688372487674138054888463019608104694976150988459933517158991057479936696038512840565621066799530681344035294450254814462007012229741902966072663796086051508067451802368086695870180816799336361468284062079454715081050839458662997585918641176100003927910449112346992230382899309818784512490506597555216096196260270342763313794673907984218795066413000852638928634846533164040956975915432252376760715888733382606402654600184096883639982399382660425652098027557055967692082940693945043183274848078384132149274321642380615816294808855312133200834710437031318576160182495097877956281713077937398368127726874439047702853366399251919051241308751070406975509646472083224066587174428912860650102575660445522997351219393624028976547371734536605419149754162586385878258549397809501533939421333275615177496491434623822542916684913843175915555122896543170958270906083140134405112485686728629316784993314068021894017272348754475557662930720084492080997930500183210961431288122180478581210383260270966596391203911198454701388995199374542045215976682743554490085958185387104429474640890165307448779701326480250837944112592425549026457424722470025900626653621630264106831857558389661920746831169358222198092778228736778449238317557680586545721382601005484009175734642200747536364127550406775681337544369066485703275260768262724057930762110483725570847066214823656552046140824808277207955903009841761889469860275074073449216255994031201762134777597349922572953549520693441825077289697366246109236324524679256488854208186435731236349808747134229095795257918071795786600623757025208151299017383401669630519011598410609171951865151244209581823491406188251553138400738589070934636898979272157573846300466441969311344543291703501450626581348103953197369425378233376212480516381698283932456890476814054361383477942160314112517651177845329858054657612231522458624321456829577259514648735762317888597551597438232945271675354596124471205326296270710695217408793494953374037030735437262598324561933239256085555236577409117832098094763709152882875305047494128494768051896194261543930932298203598913003959753402348011553031778317803986304304718907334484575304445523552745250722843611542145584834359228235755840791159959818375812239869941362938705642286151449325608568590097721214006220009713762605935693301266116835263218776045575675509360543484943824638594482674389284129819869381709335829745360014412691019219560407676597587987826628335934609880332842882161010243519899781345395987451340413098504105856382630955627250368073421474269800760920552189489278072664093499107390067194541966934444734901463251419513638170279406703039817935430427770298742748221983759746909557246297855131570783096129068627244984455679063355044800014732293644864149627395054881021709784228844567053988784202249220456379288361142884072027921700420836662061374270762857938314546212535489147697846305160559531326514229626405992493560343244363449053891755225543843686315122514229624380205018210856560120790082609351945830024601734826594341501752807065968588901389239480387964132362512077950581093967767608483834636833519875064700975646426518524953233841531564777675033217778250761595596463995389511374965467195899728017830845053869182848074456168246138354212120638998830270317287733021203820194903284164955100096704498953062385237303963502533808120052159006066195308675430163869820933225328067675969089937558320968133717840536591706381373960801529228062000477105567849346301541016972676703365095495775626638755030772979326008507170893591199209117763309480555308187434844420453871108611261995630348106948502414321039199990039832907238714367608027828378146503575233179372242312962783599366384427481449657684617623520361653885058052180498786287490616083478907288573318236808449354110261065404798509107451164825990354305144170410266358892757820710116688897236748389752339885226841954383111645641812344110211582958419498123940407698352692975824904142175554931086362974965880180063949745531701952764372907516764714168197239388062223026902058400942277497030575149120137880901402043840906465009770327749188841455658895876109683724423589784674738094775935111484311337359869839769061439234399295284498052529048024861007893285215219833142769905830910257791613580704412147705696153379555284133280380196991480572564439578470598749087731008973601700778284592789630036779219910666179514700454721012783133609290062803305020128514970789263490672242000546469893088056967104679712663183432620724131404206701163118540166941470817531253862696444734121645322663741944393757406496344593337761077154239587679613380214475809881209098339572241439264346691425569312024569346539116215389832470003353282735381979039507924407577176882251297831797678777715495282476906572436635699011888888414909993781076065403627172139942557197079477783078968712414048375781274553243784536600429276675249278862117997596577485379321800164503305214233326049231205274010936214309889706561878572159193985683716495688222928161991640397568033247108557200575676780555882896005401795677181608990699469861162691429579631049982168997111096548726676619864959929407122290693879394643792519302165099330816099196200745040183945369636076489687117725689306336429626588517433383996645575049250148905037087584727030828603315638795244425229408245085645856162010960298100561136561084385382384934988840229545691817678397800504082875097230000611462427203950500556748745865575714260629667111271276384843795894163986846307271365788856266955120271580959961641244996030453483765007330499918355461779498118515651608890830768246579243346680377693929706377223774287409770773806702810421284361302168210432523410395392834825972085854264583701467317182629705657171607284198364496452418506125967513988518169716583920762973175386288299383793833194371615831925272476559617371885903144141071217314304375149481480645029468267885419004769345669949698774153567335553000124101023408299403965572985878738037887742001300207182900309632728021675942931838577347161558602083913417253242862049941517852640588637764821155798873468148408236637102475194458445276101360288381713960918559500392976802694023440060840388510118657561892631755738847311774324408265587480086080340630847636766003410359043813734770027109492573693777231164195171820517241377079967743069597069080595450959012402776822219748390127176877790256200518106659831882179355179719758593449313510145453126536599095171888904699024404255537938909715861340599608633538697053383478784382838113669148008238499574967227456370250007148735549060297285022042288670602132838321682623723771483977953801874866543502442491522958851829253467479853643910718286501193972659839391449467301298824457231554204509985632287339434532947157073016947176720340287875154310195433191486564786631339384153697771082417446781390316813914092885299205670421364627693222310842371362391741238967689483347559365365028999823356116291958021849266509999457143402905723425553653939679371718077536335917417575875262286927792097907022478184421356922993599383925936043743596752050944316517586049161093425920995342205138006554977783544805196122202642275565625035272709737458192179450819444053428213107040955212106283155309935982227100573148800409639511560158918937151218046387987310303624401521126104101891035904705369991447381655226866695994379038459403272865201588777367927443147851703084824239889482107123713033568441238198554050447252611064339034960012266906998437938179027837841719322693019416004021816793834289036689130131177330356369575980843433110232756654797561175549919721460926199213679160317936002633180323366199841303282059480002905331349778203526253223149789904491537359904013291017823502796290649322534876830146508892716920745552699022437489436643070459898024881354089230028951400799499646350072419852653252369592101280058207896447364984363170694674863077335987793566774578380887538873821954521916365845736698471073950650462596826332824230018954875798382916513292972362343806551947408524209562057040992447923153129813973229875434959201663922737384098454313961359564781075734166648688744725193749934872263130092123896850239104813347479491486052740720268488210693814723575009467905847211207206486751158063310406998271360169898474601172281678479930959150278389487859006596800627281364504567265379710485405124402005823665781579081588303601382642164157130353140062444424464468982319156018435616012963144309168106625245535322932373118529295277465581769712415466166486856932764315104499037445246868005334511041419078421308614520377187005849130292704625726258198390614602541048044815083233428816499938099649951693337136455484495701462759455102992961059198265052738152320250172724464375537195544667716598015719434177944489021708688585122608252968256088692208731503770708022086663648982490001802772728331760473603665491989267593619504136829308279001181391063550722753932719507905593770385455606369531268174554961424794951177449690634069255671706815151418578553542481168436821730389972202215063079174762981953883306589999202623803168903783256561172326468253144981154980755528003522718956835089394173406827575443571193810151278285614077300736986774997935536755595044912010002045009707676406787977734511940362232827144727258571309878016587508667956944463697759633255730859431149280840153241523244691717914926898997287420983617609380457896920392309494454136077928163834757842885122426261156072782419436587386764802315991701349503647815851503555564445482163468284230005681449096496994648352957024700769088694758593783299623509470634568111644906037803872659518857984927200711299687435680331679662699739631265505933784999981991640449347578389256984213921307354218516336696033186487872523366853088219797977315638563546110534191001580683982353771199382902995432611346191732960450910792690779199492356620114610315238882903607312703681238980603574285577213247896247347922108481284107551346017521860780889402156056372064405183108076689894303075402352781481806419579903791158078621672528884594429177637435695888897253081740929005441388468640762800147785710789894577363220186377340630008461365414214649086843000663731880429501698379870331785614455634931342357946129012721493946909664747648016413855606593641412732463980044760482324597699331402499063004780813556934527055019958895128656140393114574369137859418663980212290213810796531449057038888647154920050631326655947528304913984455579625623808227287011234196086207019450064878350489368807390934562036436029895210677968155085331383345546713963988286508079799557094739348139392099353890222958931703897655598651950527409267155307189947229929130124785755949431512609847759364552461798056899664893532308392050575953428088536873564768288191121430021272618791614360553556364670245397003106529985462632777480648308336132210240570932075212582227269024595528666378471843102192574532023349565880318018779080222371959192444077478938987616650518954038154842310797281807249587964118421304582928339004907561856056968125514737226662808211013050769418722391257141619832006555156680726590047666931666308915847041237164468470503802854887098372364281493330339747200069568595935671795511039665122279390068948208504894602359877966947322463206331852040758364789709281511634002207592378856788492663330386062791174761216099155131918071624922533989256272309517602022368978371569846242180486202618583087748024542336090730577205409355230148063919236349369409920887379283664646053303702882842676571287246324848798104062397470167574279540950261470522611062063802333796048419253862021424979977349852611590216902664799242977907352388802151015675844739372606573323679574541595115854206118281210535753463939753616207435711628405756329341838135043489226812626365070307072181515074731024970449485614148211757868323454451009036253535331476876097678483184584265659622800498433476115915520479960284684206234628524789190583315089687891263955044903037962422619498662086952116410199538013523486737484270462856200248400985114160568989602959091807442039605181702996890244916119720209863342031308189100566888859422829102341318282182275631242462888781829258861887354600234412765186884830434346988174244486058913071111145083165670269071219772892412902042992296970861259723026441319218738651990560248288930584350281020959715792653837358174623510409712266205818859853656426332897523067669297655502925856441607890025084903157735035352764386784932222389802723982702315490162070385596197342611830414841760269916871145567719346052447610274670178641617220304977531880700601735503708195203934244816578850646086622345921769110165667059454198747289899057225128353899055727829552092393232422914260391480853607561303949695277662965987020073499162604847518381717916498459639791045460105571357898843915738652668956943762577587430083708527235009295321432964350427290831034800642542567414362149547292804877173457538471032522391917375026711740825119408634672131822498481165119746541827844511317665486738498889310919029283929901011591177672994299953204064673253781083648154662096331109556752458596224633216844794778197880832440452388634625465628197627168161793738873995140216599521532949557835863804083802348197591856097079310614247694643299504393516138484066728231727757911696514648856886138700504723614489319235467416842300028649082183081200771930805991316376319890622443290469543908883223392919165434973325475289681350311517079604071432537609391945485965560930228705160326819681519946908309174331095546199858769255033239419570526000030615752997253743173902779935265438492305404682712599273513677513725358771338750468166985618343532159149482223362572467419313753923396384376008102321313624868498064810831821612310494836710261529025720467555203422625626817939590467260803078156277535933731137966801094720864239980163334988543881460160978795812307314829922247682102001057685493209610207196741730025174694089546970338866468056382242682897364207290302142191850980162993125933008908563198986768985631423449048700232901187608592284853676369264033361766191354880071770930601383525119334648839085723375805499228660385020205322680506456257742668234873937564778672076480030743546639342623467598177558547766417824008650550113043220640983242313199300938405425694548055396923200884699304927283411543607943414532899665530634308126702114320813922438515615286698060861691645380758517884651343373215965938480633909857939609146509372954864029409869140919837482273873365459270906124592094860099019658015394047896815989133761407687270157551977156160729658751606572962958617792526551147026811344324862805460636839612953455771144546785554468880507035090375124346106903886987211111414529465010576911965161479360771477327995827065966972879208128038446321214762004530144159984121115966778243126786594907879716043626945201933202044096463464251727175848625364146846299925886960800293251493197346877701996491478373043016773899537038465046515992857120269248973134208954355403407187318148537005242357358341788015359138402304056331329997191851917897342123346115486078448135597653660012389094525950175143894435711797261046903664304882373053296698806663201361212713519153495018216739461924199888640050249239483505790980398106794153374959470973238165192505606597397853465125058387317463983040708860353631402665068711227548549465567318001265926539553827432869610274423412125216172257252290829421711396436980532963404765543359141165342742009431400047923046024259112570087762170002102454881897724799303565515465495400495544700561228389824124441245243628192482288361385278804556979294640091800036789812805382360457401344800064985786117283983268107603276215005048633960786240643731989354420733609996398160990429640845625839729735044168133332352510787489157912512080865514687846166236043146468789238255308986314002422205260330798814956564384526713600599633930415454338569087874329928607636843707134125747841310669293617682094970105637103182773060456626681162140565100073486684761517468919912525337495097326661190974404516354817324507189266153422119314028649328653294145517882740023190237893036865061550537267577046153291112647214542581669154470061496759905474958744122325409938123600119303709971487549936829003325762953409277712422789345791564542487774811619735084631183951536970694167461427172469287615162143531614917184016939121957536943787885406926053360439108492040963961045649362791796092843450554651239785702087704401701602820097216031243056761805538488583135763161386415627134015329077279148917153013082862445679767867477965266893469479881939657720117276732550778408903728810596070046882611006969485653705592732365349465488343730111174521493937425890503367047258404786682394060569818694620508075287836914155202253197967487455978476942570768347165821547384667614043678791622708851075292699997882128932324555000340944432898543475618828435294891386771403711449782718159995269743891199951153320228238142395691084367804975751709392092688904811172436505126672355929438954333614501994411427347585958264382715617373661558289080927668119367981072436414206974959599530239106732663895210224887985968387513526131279114117954213438912112995057778761417311319552734412993552130071615415398356866425127860241212995261955401542273241844430802412843968091642448686579906026097599156958971740451247962162851529633117787917481493402665736550332740021691026895990334541688233864696054524003118105184080931776025527709388393361041520566806498341925248427255693614032007596686451974286318820177325857337076556502809510593089786852013825418794657589510077982411643170063622409466776220826960254417886327688481370581513940269078416334353658341168492871972044543687162939476859374280334983003091041545654223061988282100604647262549865521014935045874378215180085898556842780163732380273923309498857202300960122577078217180111317265025260993993557506885802572904434264414126557050136061999072397214780828111000205616765184238274274380273280200453013362959716093651870073372691023019524249184371811216598793899298784132960857800838076034278792360091978080114729121837660663162790813612377459046821385246076034106138017652968787705022550860652055820259551689542952782456893655704697451428102716184870438714873030040637742251730908816070944186400911441416900907516282549181760522365680794272514364609515892984672545297208940626730755695070935628265366833246245908320061803534322701866267873186412680764546107980083487512308933476625797222362886775746318049446454479102655311714558956482347076950103179298969834350177274642197326492173692072460667391825720574161259789960504121356711021091394264400133033671802985784946817492590503687663465514705228338101157025095002690310860723048402034969475663037345831598800466868782394358084800033745969771552981554204579229079566608248191488157338444731920062474290082997004306529750353220238795580902034249364764712117639471155608645922221464820200914876740831112624491087347668338597960566555441580108254323783652166494831581252436464266975415169907555949017285433178001001669466074558953518525230384991537621417440124272012944083083221077965337894232637038594077057766558531810193449753049979009030833156948261009238437418463572689176225711732585332536808624792917937270418035366284652049203744801270515683824364346682443661793830925916767387271195856196932677167551828753289189414012283791292481601296206281640319981715948430676015364410186249190801339687850439236039345026311198258049117274824382568050564970215703662291914193687524326050196122142218518692072272620170509082887945696000489500394831661377735833740500238503111960767788815025604595564207259492709848667470305507120081393271004750556065344553969050544556081538809958394996397288709632541112506554553815422665867062357664012177019688158824875740813738844120735190668841965903261964496405932951153776027921406045991561267970624730133718617838055927005922591363375353032159602368634370462950234167564698194336175049968119392890761731042653376634588026730905500370521943938634237840659213512318222895024835807058833064660363047858279193125157465425127183346978139476018138905622695319308306434041895128925581353194495417765748723098534892929209572663771297893951301374211032174144673988170511532545498710076431492785916887275175244734620668213840873330043732784475412619675092411544112567856779698561177783454737676073030829406460844798721510291654471328900519093266310186649487702402275485106089517352596690963537920701682026781330039428752562157257170892471587773514276850594465503754457874694382528583714671536014004288904649824166394780358355385473374770305976819114666555019902422847755784916091380766954824070481066997679471661235672373937532999744871038606000356485323399231461115553107075692016284872508517299946449753363811265966120162820812484351189233506084899520879180778784188125541056418747372247892869361614964556211861757110868006986144083534030456011804297646308075735136985237061434390303019608956215187950932588788037914252336265718364434136682278919692279798292678542129312592672921541687908263281280891145062548833136874473548514211387567223334058735441920742656465660327568232450567163969068296243193342016844313705471282951432841003258049830639011607230242039129430012509109837715288974829909476519154309302214471561238519852368267806470965432276093286006706864727134425697565101611610243997215403983425969894625119489222605864970824630446746438721714153752518155485269975818406876784537019048800381952855549587759930053601992242210506254891882536351197978236351646305702612951303439446613308073825757228260222378893397705819755401266908994645730288650522339579897728257901951328095249846547431209972488980460124368167085070881127378456760269213620287522047257356588269919491516476676555729947034826192814708945550238298780645642027737040188252046008244801501619003895067037572784570893982379513097625921279833235422326338819718074128951127220807832875531658008493584208266830728792267584851105032562355002454379938902017432270898720073901224080088216881950799046544268318238635194329966907136983187312966713607405147165421400984758605704933103770193160049337875947096592815002851275016891280335091400248388658335728047626627111596222810007253170045205299436097409703761496062811361827573518551584451459281717993998839199770419858542471347035809215374190476499798018202327645835330721845584367080015425679668557361816927184077294605197297261751735690255451518295884828432980398619563418260103027270096323196989294066871638227271223870129838064116961808647585675786753286432471339997507058874909736319972789076746914707795211923155480433433026727511041204402698917491320348701518898682579669889700005469546743957879741417141053319201279443933904901580095579359376147451852197664278449343784196729659958551916624999928413837348686091822086278901476168098051781730237436565288523573982895610499713325202386425892246302646350280384477811306138790036721001857731995254596994872091169889768512847246312131649411159196462321785467488205991881153670753254684075849823732562082952887641366570963795451201189844218294000949274138827443786486097717488099026347092345275997167676435620410979852000076205340399476016217849492821950373214970007450770695335552012990765244034902221651610996214130919869770415311171443361592135777356991400867358240011625535409221780601192062043586668109883599602913756138937510464759608001280807249404119681795142825951628857520982936224186557067534157244189375699526131798950362321812305707217155160704168445756427868462976297124551774715736113968202616041193439127736193069553230146606823243689738592595758078954837152302757474868934809274405549910243207411901371283833987545064115238731829895408937492405507749456469803785447585315444153771948028864568652660424694395749801650778420131489628091457266421184243501756056017213354127331129293776495693115400865363865492652436577877886322011867515560603972371688273823489716988291435286120824993316288145828325382133351150228499810800483207285765716143218460480473095466000404497829609610447666974993913884841022668581249527955366157264417544584333235262862649156200878050555864281837516216072116571511073061975413679115699621893990693548342445399403203246960603073846284297869351298031866176559584368686860529309362678341155922184138388303957953752377105919932587839632111486394873416724637627660492084513827692468304443457458927368272294129915019393306871090196621443799501529689254700499646987885530679584555204940282380049158132418432357776476425347706726626378345271296103803373484632071804007391057883175777386356384188927696474221411050152873522264276461993014534011497079187369783684301080589023544810755507548306878065610703015095691545373441440785045756644716259559725916659770012689010728717829579331546597049682172039533100303809966625878642099321770162100415975028220530092978653574412146138992675258905001914639572654011655781316131694155950982367901364773891391537934032627278767612230918647266684511711679956162318706965507149567574726418687599335992698149223698435315558890453065794350886974425103938738063373046664132554098777473124770425355858209489862976307585525970752667717903723695484690612618419516435486311705381693103546008738705411706594712944814031053576093002863840638838504204869285585540252176096873932619632265212380376820284466701809958524141515711677771261563604835935789535491110660029451683705681782330984781289795812722136770152483125281030934402941764078114208018152308954077621395986717726490865195325901428265186215910872170257291868960780808913867892621333866207993130154920156031080649214826409792069992732235345937486509405875958733542514259093253783627651267261067180781672682820790828990954540209743925063024784424555617713658753249462355642633128491477674160917266155818060524351838909196653014528060745529887062806151885446639262041971207707674808816776275361661769488327406641375880213260208873649411303325508421778209584113463651741722758398024808218109628814217652818683631392820297465784844140254597619743588356933695127032545768152157195009395431613624443995824695470687517337619981400071096283425832746689759864955190290178581135264812694783417466519456148379848914905558200874562212028900948393230630719979462402042795149995807946241253227031265847368094397888987569781385248607401025888689231641213348576682886890363576271753938741238995656896251976805245249989400427128279333327810184923575341080755313202778814971435397652084338790439363104688420924656239886578559665664506359412692438516620076563311158079225829033756011342133590517079675981709416174494324228630843093303918488030448543680883085657019930114229224072738602744555477888364063428358814230010454550595073694665088674891852373108347095314205777332397075880380186288534673620233852003261799383925126339044534755330605050659861349009261911162715597756851879996916523081818172631337875429815054923063090372002846234661936734731833619559894905649269039372897787259647034514181254311938728483867155196672272768689420027992848705617878351464763557890533258337329763858595615378173203596897195091305836730896705234787900827284224287094710155221098679239257609141827248388362241809484369257980556016459906009226503819853394226256025587241890422364635865083082148810142602798203454001979345581922975216916526913509548422566156003217220170297283276739915947141431080018744582749279412161475769392401825995293490484461718967005726582269383245778835835710587685221835983902032403787793571988947428379624255478822290263974713192848582546180777066091967387674295746232642141526803126169559047455523647722385783640156578718154293440018837825626187421426207694265499391909024534733471424807091479687937262967021978668580478672181390468202558894255007263348842760538060549869476326145728085629526841354902293121060682030849823436347442289377475145992289569894350877523541602742836051399236789010392222689097536492257001228347347249119119491249673288007365119988577146489745090557363797193460898811618605309781307564870723847119212940430094751807573382032305523825561776108705555041727169369635603729011916116640730526827997333044719098907410446215958230061337420249135488461638004728874563351517733529005404431693549876249271052163940469959514311778532403033597969528376078515800360392845914063956652510846812538574049080971230721510313175945355980705471300010200214781658997940072161562193099158739764216340496733907883597808436272303461756444193173164039445958058496483847796570988138725523604190143887597431955395484997939003679222793850753874065345008128882442710883683497878977524091947964982460033252672923664920714124665284158190534852160010576402121736840855413016313681867013373994038620440127224415570575302931557626807912204306519467885891284153521652910357856477447787259603830156792506644333353703709590985106932533640973298191100082655268918727827333680150172954890619691458853295435534240212984225559246310777137922778073721234281516184478067761902247872632540927201628841051468278931082583334396948056413104502595878291120073647441176198889894219594893620957111599610339120644109415251207317136946805173856396228448231898581714682524284852477511502631295928543210170374530343077725062056413148519317825824375374991748674017614126033105464663470546899790705608373142271462960778903082173368444123658278527903910488956632630911808255988952394053450569560599986003837975921541901095957726834781283797425274731876109194333228269035956273680754853777175563509518941080673124077460496615214729989118209313064015809673718243064593954371434022030310668240046629404182615423595642390240964158228077798391870038485442901578708751618834689046440814613693421764243060052035873646872396905839486108943729962859630810084157375327551970441465111142628630584470435684461703176108534925606063494341336379457948065985737939312551765215350411735821855829524083343276504000343902674744376254157813583116264632583067450653828430579016485713188106184539828340411662697545132047661224105276961484531555146913950589939116696234629070636224019643403815189765064140398222882611652016369905453563871371868536570753352314138757881815899944810575118384580357914487670670180613302927580402323963736797718351677168787865927478948953317856111784673191447124846902298035204390033339529155835533359057452220932698040133521229943696478703308666712206409047705045680254196408275786167883393582672778312222698522810173557123868323006078067050751458687975669986538813610680524730096646403676587714296026717221501858366428872291128432553516102140993553049650922334917709711271979229783605301397589942599651963905106908198738578048682588017972264058735692061083141629800124760560648072200365322718152679162572042842644355849417539716376094797135517800961384711498900486258503280447512456968632382583854454378680627664914646048349214710634150885782834760238230148294105478515687666189858623292971776058948744161605542456486154644393246433489375725283012278905731183629757547915617709245867851094768403913393755280116250958764081735759413690529077587385199716476695990459573087461492570295937442538336920786435378103585158792526075273735443652174254878581189618823808366414841130896265843225519452344383153062803033442250732313924933726659312720184720986688877142130029877396732628142595715257606148763748539844608523084578115520136305363113862680573199134588216853485298457604391767423350072820981275485459530940919173192382906828741463500182214592191820538644429137120888402923498948246478108145162522520845279773083506988692393483434022534546192192436248712407132590578245315271251327785660953165239718442256000217804991751554024258185596721070038446349939084213689260473981290053207258013637115815820504009222138950990766290803695028967853606579410136854123891257600911159791337636729427041389809051827529867652782379362562370967341642537068024942313651590464864948086437858799699050286357355554943071766175000408100321241752673835604625961144459263976916046572819842027471863518885978221450128871325803098602456405733689099085789899642006569823028428740948536465887952862099073002665608136946277954210927787239644930849255637274559470565712164170469429095980900014663115282025609537259741799424413051936763504793641506341488199941048035483607662632237864572943376361747036887210961881020486519847012610818879429183058426580101801495662056851361918964377130383641511195565978997652380229336098372689599446562640343345564953226628284472862083064630239839987018217024092807710549830069348476520832188404502055484149684919893379489329453229581649211468377210593146708885213857636528203021298924937847558129531598401893678025368316107514432801020279191276058751426454667165831753157363879836122742100089025997928235506490760117651123282857980751209640035500172794567434784240715331255106642436218133088964917317176875856927798706755397630182000642987858617996494899452902868262125771321152264564323257594144521750810882670799841733225346398875269267074565492521599529129065808233362122305228680588869803132217541339628645385375018898970654077891506069743336701725015068793909108826228055108230808907254717126348163699481095980594024326235321063567249345245969347554554336623010490719831751057622509178857694993213165387759193037658653025843381275394335632968092737196400196709484350368202109812458437131142231322383414319276649468682378707984075106630819191442222547831427456527373592708273319171382127471810915086094710387066833051656005835213320987593309229602620889706475342704355394054455526518522859456483983190052845525048622999447315349156870930720993620002354977582150330522812436924529044463641414620329723449472601685122756635867755599117140534573516608564683116500209658418899609563085899711956154593707748747422947684574550115137823952291463935428872938572423293052262370925044558406663885661715838413348587224907937565141667671192374420509501767428735745611357491688612370835340817145918667657358826315396656925438049038871774225896938399933519519155381335630541290747395946897894143350579733639678803569593926564805919183751578594908470124383290533925037639975016380590842088136725272912986882895369787788226206876883113741678649089864721430724492829439260771489796934615372483348628384727826651754540480655981661397539261982166987289781651366247066229305566073353025518505363372267892058526119990269441113876199815563177610515686676566113790173645575795981288123820930795831917980591821263630160597388240048091573297864264120677553093650164009561007951079240076560567765650381659052447486961646593732551614167079005161709677852697294949672609633971913466049968686127511829485260587057912918569163723067060640052420397965933934684062966338056324015510648470477980815574458900762824425573677960268155374251431928267690398978545160745007134685430316551276261770923620870060533431456011937719094406743959844842677101927450855746064019823857062263816146170651443484995773613643645484665083499473192912930813963157312167702285238576187797369702896451295139963756388378433641212049079856170015888953911447450953561689145790450816546950570296093096339791687267732626663911537414100048584481474077251670914851485894097742245093991599512003092183178447741761813295972793861605210109430604873225164626926351604252068151801002546200186355352793671501031002934864487965095981461509568987068641111914109004545582506644017251754705304330978186678066517255445818788202365133360312051102646368534911560656850135870275853109626149849763746021793885669422964537179336040267283498409623307227309345004779102933424568297151934674519900012240085688726974628744076710408551555714875795533303908987588748087235838123112764134669218297228568070181453299826804586483224127090208382967224221384610140386677549860363913898302251244661142270613565612695092246459041647829710448910416040407854921726365713357771107379366283777942435185527739137342127721338727869301653555711335435104464058810466216003163803435117968096887530293940650122638784610065153160816484190214880787250288103571345924065928924312046629992689441217871553886746036183290588086384703103367170072292709567930969003504838238747158894004380894260412927196725287087170138567294346947508698439204328419345762684776429957857848345002122311384108620619176439095738445638539790983939133217236950318962938856708387664706536338308061364085962342475148081670496862882983045818794124806462936176408158507010685467227368728562143303195512242200716724513733632025813140409195779972800729596175734477111361092149726737452080895283983156503973895222417074689771826869698357105866789565822861480622696654076436719950385764614111817803847242801802081572494048330641034803435028227595250861812411331776538270399757889135994470276447346647475384446950779679369772709407939011137851165483358916102154145536169890131617227015447268294020237633578980776528145647999132618310148521951834892236430622510832556524979399085617405789029964020325099813318804051785193808911871060922330930508152670585640613664157556765665613601634699859726812261100757428506042964143490125515968665249421359429796144205710155916144677857335012619495004368592475076113292044915399376904067866627312031595754128351255637511382716636887825098160020010266315815616673830623645136279580439641007107034122165976209415994332233444519169888276759932075712895226595284409001024757103832508842242038106970188539230266568863448561994461786881203983418811542872779081194765002352981249017544150867044884920727453912692424901253772927819911346063790890492948734008624630729055029200213793996072265109896957535102203459684931810741854924006009414355055847369349623225871266268171505452423822180339034884284690933879764571600951572587592848518573374109113877592091026515012765078431958600627601285779266289370108082117683657141554057623666091437085874793041594058551670452290630805309547928363901396703099470601473930858591670555906213647928279307758770125003098664121642678281738661579775044216192217780882584356813462619249483601327154835859596492868157599530358495212020120975788168724964285274436295221900620703831678128431995962973682823379134894390776212037427270763368361035929922268052927320842404548236951346365384530311120959144150046192066103631433288215633565257960219927953878768213936859205662330784377194119907066804048942527222908823900648343799956807580241029652006382835799248516283933676414221646883368414414237226776840488433897746818727310614087460694894590132441614103648723255940875661709672318902423611227201822565030086089243148395701567489688667209803845793421244679308603316990441160997247147144379147024223425519510138781417455061544788623929847614317336965718317106816364963815416260515394630527859598368774164601812044198584936863502243632631533645487378205553508804845489427898646188997405734003581307540312224079540160221704892676254723330127445314028804970447075087089921849584514555717261378703779936553125026435776997689566180104107499370832140499725730525571824221801110819850609310424170080149900369271006748865535934249617323915424599961045345216894469300106772710238622480455215012148001094817136353592213694835376090078598004267562447499035876703663797926869665471253481765219233382457853638509274487560773817617492762447191427174732382422236262485078240497336098361643609979137174911977036964337030161639056394495675390519217648909547810810387568426644329192538896861114792561519119961241376594070266374530295325739445234048525558203090365688617589680884507489837830806804010719486384522301371073214986035973156069291209747211137859146229613690615663259769859758956327240505721793945350194481717355819954302163221841135798375781770898803839689886525850898588699893364746501647910011651611084925381494348755673049292284859275063923194832259729062322879199705639525382077426061839370468285794707821686155057680373499443213454893323167016265219285886506504892398917277513740724358181593117217021885333966055611223953103925273091280542235672872532463132431081011029771236098575878625584810538925924163242259540198860814027660636828402317200564606323088298866919036688541730447940939965554543491253937980589143916871572363410554107409952732338535216253276874950079221634861553047655988948793123256159840835409791450212035196968782204072872073939010824336701446097255078524062733205718604504837650649648994198083023166849707790783183481335249092056307130197851479479218775844579053321065340796184574581937279621161521572517869302304473055650339400526902174575991534198858378632392740916869527708225380107267449049620987972683380573200970251792317076271058082324119214306011608091806553587661654025874808481964391789271072464635657025058242299852987477532103093002867331237229951183162436378955583217518522480618959066351779811388740193875697047527514271590881946292376452264812019851677733570431692004881769190869870547374894814585950696276703506839513262413160900380305298583314542485858941804365960220478406804222307423860787682303706639943353682222238030290497906555404301080487407201603000667365028675353713394002756762007744750167413567560371257199067289085202473654556051608491188713395189319452121897591274853460062309974504159923616172214041660088232647969388538745072941400214558077164804474186242289056739447169128588663149372636200563293403416582691690613657952595786346882482323491199782722358366470049108396355830100171130022047177096089073601441090981288753931621067362393143088937260379955031920568881463048849845179269910400650919798599921715042992424921089911264624742616801699201638609637284622895884543629684361855319349241684663527120276513792479379008582555030948450855062055208537878508297649770687260190278522546843429376610027070895493676830926145708390872132743272440538291798042220951027917427281681154417953196851239915324332928260483331017534786543717822790863921614612758795055732587793395571397003697813836148524768465302484430600286395325042541754681972037284119666017569590108852801217312761263943309086313387910914022777388059074018385156631609917098136834382855547360924247934615719136130166071463896365797036870328780801058631271251938609190817966818317374275135642784573864400010032527685894609919983854909942743659563189587055684781594805792213602147766104770115593017863524670156291085267301058667371713087430624065717253391236891508315677572532118058225753107427967133547346443493031341766829642573005711209955504784389549283980899507366277069288549007861618132008527349794098600435130848647424235961337412689488239765951750245693742027941360999982369424893108403119013189216426409693774008232769193420190917664565446477299953478005800849165739720802216829821947496465576003941635240784724359473088147254934848090865169130396905553548886202573160606970841420054559254305480155411075085705571854862688007540304067054636189117941408845319124346244692005543950736703737550804655262365363255699114884946744979441893189925975411882606906990325666787445813010695497229921100956802883226681487296760711422988243471549524170975614231084591522524847101433943628461992286274339808333034297463490157864981344462965532155722842344856491924238130386964561920524070839815546426228715106423770232434810621003781958905228288828987286386228834892429272298521085864175733574047423973631154031748255757864999064401269748646641852678660150195942525292870852689353421067838161785190403656201353924906220876681733616839030538893935611548302941862016828207819714408577708975550998549512774865006645483012648156508904999937457991583073176404957135961154018801897309795576128411116089125014352100824079622776334281318226445898266177318140103257511483179912788741470921528503582531889224824003741991007357749742461850530247099886499462570016213263690640791607234045312724179165568751127884601405157685015200277138362556332390381273066605062152722007405901906794845977241216611820222403931477042613883930726463344709337202435682473152244304147101183310997269379532963542962515380002287820743877771442333170137190803095365596576363992972641733775488758489399059923040705580654686553475253034568876163419384677365448253806922866881786111828352447767950760324143707507117604179284157072531380552777221037151898825783676218494161072206487015907003313643055186562141995113545582644671734421799831460206437786511653678989001513490567320516102457414671077881562998224325215338462888745783619187988057551089735374304842745846806112904105880589673152541263341537532905561296302193648494562843960129086787749955221823516941414112384265471749035065785074798018568355535865630480691604618301931576028306323778192989965375653015390633167592204952621286236412658625314281667861176892894829467613330681265515862307854470358454369340383876775283784866932495484412643132880039984656510557573737170598374186061195223526471763498535884432263923117883253552114615226237054179321323745848129707532553001076058468505093953764243468848448427829628684519619585966768727626046278713384830655273403489351475243523877104461942620236591684636316969867011405563598375720282131387272716938610694530355951079420497840081609709080925571804219579191859856484391386945816900481051015623244463502273781480879317255763305093711638510422738624261890351263968750177982522348170377420812364843034488753893317815620986504931210642981734188048277524259767503605533029079032918945604974146881568762916305826048299796248185170589709649136612495271118926665999500457716179166773433277161411656613943113400469961018391100076433977012624981007431926713930947307253284621118965138330053700975555635146036545100393208827943904953728562523053205967247028193396216253569142865314307723447492484092117984449033176684380603859834526540308821448827245297410969949820452424019006758703051556301824364430189409489722015912818570378156885859290281070202731738461466371608498337425836723070561556031625057012027724365582808324215178224432982318809824632090479814089502948668801219991806472505765686311765698895098636780225095635557436670702551084059226658386228162690665027257165709883717275847545681705263159936901389773218365694846605615058817619308202092596204051261692235492010856910564756478355533392501706175539106220184971846843761495956440715474641405415483430574515183168732372134285182350919667478904281573779482078824638305492100124449444307361254279657830721176516683942827754431811956665895010863980407337611730400407175601986947331912893900580209967370333762847726012789324906338664481076676937389173448741736959575589509738277438369316278170769554795787576052042496593896121838015925245410920442675758821798587033083046839066133397724660563800803429195552746743167629336869796728709883161231628668498271824896503906243643785932094015184164085663437683406003447529610756686233108913738514909741107833428758161416783619725348016369184873832796461046805131374445763568584115951832364662308992023854828974985249512176061781802729841816792068922008185746197610708335492964807063027928147386813828320636322248201812334269323044383385966705054445036050011945570794249115636372285773203528292945350423770469142677562566510856365326202116252164043769541971828577217636337229412426975681278031650679153009182125138153851139297884235114970894511290211031496943501838194329627385096803460756936556615113476702066576014672552969661695660595894247429804983208737523144501371193722545092671936862010714569103087634693526078376749640171544638174125778433410008347903127319471447714794877835558566816884350838566214384190494013475695624251377481642258057058900621617651078789011699398542984972407973621429332001691992002500322080855297402714931915409188234310409534976657543774683008885816532613931984014815083982619336446017794326938087066097436829995919964899114217085464572982995286174105415233261799906660180581884702822415134610398358223791035780928596928260730437108180144646387034136640921573142694108937679805048384457095201216820498093256506824589314333335233149169906729506602391824707238679107405734947805503443860785075377570203936225686715761576901481036208502876528156659106079133168728817113617524199062830569227189943522599837387032156981291321326770241028299877552534372994293169855115215491675472757228441398377654149198697117493265018265738676870986567125273358107370145497084496820914207135313777752323870281037920666765130762015617872556227110202817954370533824705919928546606185234889875492180226935262597388868217931992215027864035970193638791516878791679571682681380453792693305723872328620867279742892301655931072092329407184818835688567349269045810553002654902105727310102194210101301372841353422562449852313976032956365606360249151256152547739348816431371657504434023408725810770607171302569195403762327684718734796379580133940264707805479531537334100642063647609864549657956415738869315416737805308885307082916591006889846460420295472466164740420349284898977107292203207477236308651687674158629811105054276877132014499360196743607348586182223621059113606016687953372838733735297097772827245450920298139507460134734789157358760027292981553723549181457038362771808521347872147697803301184076957476270533412938839540395884129425430781665208852852145002287829379602799127613361640533766420752013095949484812853643262765418759865477304003752859171763873216965687723949850027760101279851191379252709210370683237897284059962050624762677668180438370039511936935550986964579707241063249269052652833556045803013677669053912548146966046110612265145813086608959902063286885899580689105554600060624378089888548034506023487661213012524075678904310505088438118088640840192851724051685568014600760630127746813094665031045686499900364469644201658685594355429084666493619265776235694626619411419431627105634485974277698769662666083959154105596424124684828825983866083833208832597794405755443830108972630425780043956792109175424176864496592737606525100994811645470196762304654540892416735048487018679189677229115631301006803502620579919349627706120530851183352842141390481790201871420984139273991284290289575871748147125664147690135493906354346442499351402816141974619405809390173889163156169487442100138868994575539750153612065281606009314041505370204031589168359640488505049220626040878484001757020300223018912100202106057400500110367474185084623971471486779686713472194039983350391948036195469984870580836699316757809378039892800708573493578670746421881842006646920417238135339720950347201814155189127731548947506640532235253635598340885916595647866324897357313013182594254541736759064748825112858077585188675717369496220088177044426024681153439013805005906662479563214597384495938236764406588874992534837869674129432973736088862790179508672855100000877686231192946013375325586919744764451809508897386760825935955531656031717785659339829495358580517878680886383402661767019029714358771844191604014692042402437265307212274911406582831656457957688203912309899094148256048207830535867206862819133943455873748099580625811624858407835190251579709786641115720938854123568445258037125747754819797171878372088535851505057807795375181494478637729119020412512608279897689025049688112929852639025043976259065226078859046822009913947915946947340599645452284202730792640199340283239009916377269788550087332392022283638787249254342193898446564848734088184611489852430754066287214520539903943740556783666373946401749061614588382612147901346938027164508040022902049709866173385925055620573447680144578632015508286008646149751551376272612389307924615415137933972313919023885742582653894130722266179345821282129549976581315336030501722076240563067134696434027989015553093260304639201765300154202723334396331022053913234034153018821283067432808570304065940941219620430835253095780972699019584197603380157605392503792633665554035060049653828440052686748348624577697216066793795843483538523201806583117962253068568646530777871592608108293381988700841287087257064018053885733704785287354409147112133859714005253368484590865475724066388525753962325828151473292849234268494335986437086796179147640487440391078212049481322096867792563355972425528500565319928323879976298848298163180316414943526339629603615065578224027099575230530384217808638533121347730336020546669336163196087764422651255552689090612584340162163631535215727963164055111427474031386521559186889966900729318084763005555169349708200793076661330245003264534428408669522884903018418266565062253303853543398343870319967352065655249708113133071348471175297208251961531652601914129632970841848417865804303154336484421810854041638568822524636868795663790757853154532120375979359369055327210884669671127622837051731742365797724632152567583579407622410591149221767865445397372316617553568084392731213230848624908555319959545042364907934423866703637292102449606443505406623401916183125901982961082664494925728812733678876046333333113306420520010504571724095434848229349881376618636388238619936470068981012850798811829837491591359826280218311591582915685197733427706068601865089547109517314023482834399440661518402982442391404839730845353341494998999947211179545220406651239581209767265953291117268754749299713125662033616850871572284230859039090228930075784945625044284558797132253317981091476707465650214286663194339361675686614800086814023984558343952109462909131588605821415487153447361037900910618894986754573448208628804672886434470358474720606573261074240265364214659268323458638213097433569239770104009772145981973922878196657629775662661685034753347574699056753040564603365148194317253355567162816632181739447683475875185444073387729344032992451990411878138538489296437846741915312519886768910160704787267067926654584474463282060487858707484442475137652626876556329318035823645663270607264068827576915863883977424243540763338711718629359838861103917938839290401725390793417459932963474002667274520942515241930490345277774670734025690053568593398490033710412521453448110805056656973481668441855164365919197682853978622981807515189529440477430160464728003740681635238492603057206622200657437785048558697991089872771793477319598918794892241194358423664840668485947409368200718276100795647313494887470126400406537262475045380522272676301107421028182843861809587655276456752854723761007288407449641488994447152323294053551437255858618623437896649492396890614133903596683139426210383828820079226424523612388934670900619298947470993126659027870916540103787573811175579560439145511033866803938649840763335257745048378796584111546478948464301309663246285595094784643821401596532843505341283582126033086103789955424825813478369065650099620536506130447303570488315885780726147324889055517459526447289871152944918945685319549699657450302607172031776862572546172747586551232971944788249670854584075046901138872434196207340697708326077113056824324345794242055992307096222160607788635440669418636123280016565763271308166669190417559212701301821476524917720205957433711378447649722758534716084979267013738684776823283691990242107048201239097515801089721359423982146420666570334942796727532968651987833941268053815356255582240814697615371316419210653830808293018864845622942476572727741088126883436884992607833749176428201473818872791927167109234834430088697271146789083499724973178598905850994391268226018286300352149145614686981708548566144045908820278555418598766005293778199581736605019852319636954853705783171277970195239008866161230249240670754743666162281718722192777121157342575087055752330918610180064935124173511188027754120994879229420674486136938636822643481770632923341991948059043212468633354903691190675967178683203500244843232555923138758639778875686396798423381099189243031515368332685288582454824337036551213017612706447091412374162035415348026084555211521679334370791417296651019736217963917031114751315288680965955675611915295774730989829386866461375280305046693319790661619792005850663398465163217856122519645392188087560137531270695083454696149669053618548524870111389562479723774860052085803984747389158605347350631895896574901715055831315083147798273604824706742215240227982996955260631372458227206615817578964415980392636757126126956543954488489693098867037151496948143731063911334602029617026274519112219380315607549257561206146551510340690668824451595347079206386929532597751112024715419708124095879670955343933571717160546028481839866617610504051395806194531326333068485424694550987741282341251782997942240587342001680004598117843347829977871639595269771169484285367077632122200767594424739733375933288683672287935974722953282893880463795410824730240750936340753319540161213431700626281472586808508796142470975145779847384190003544128286219584608479721266120401410352110666562551221111197343729373226251468070392437321199037776822714416096650060634467193317225474265568601899614751029433326037696162140930628433256676447714703656061807207358962891498144844130522817700383071532714945371685289644713247304108501639455040617991328085423119410240354080901653479650420922512467889134118207707142300401030530474819351169903158013532588372805935717525256109908949438818746694754893666094745582534989207192624204741256857120233006942507018395332214047380440699217957390120978236881076652072963923067548431015748937614636856050846639330976745897541425194684228613725992011212233002425672075785042350231420877567787638697456608987172041394008913321381862974138747863730889687547183795435401815640960373472009780550393642992470743440564525607422842129070127914001577750025546106156328766335744099414295322529106219428476057573675367564643286662392775160367809679680969123294633606829808483847616051579656312412834718801835682313552791426914713373105624737918701487177865811712493581223392590937492713456047771276765603406402546430902619229492210904429187877196418070406675013699250715453486418839589787913259596601679002486387806714747771258358190560002019440120163747463972394425382429019538463181715935648261081852390622253584790484511844933584955786613574991260344859839098398667908899635304501132778541259521120676952478538279722877683929383718588331150565754716241088916115013724946789327684636160713908958811276735593629399102480058463256790285893653252436138990786426225161182607527573020324667883629077932759368290390786971458994401613654939953761755965310903522581439269354618877313692894264190816524300886375355603145405107139159259834252566125457128554855455580879551228528183883442942159856981794985837356124332333958445856499485174523734563135001004689318088442034782615820053551138644007979467418243572857199969273718836719136535705131832022411740703420267523790052164991479331412697063751901263843905798083273887536930230735629474113061807046418920364740169918589331429928488964791341929523261509130079549458601708382309992972218032301003673082214729354690452119605996562855399281715703283474528664064535261367585992118951053539308663311147108476733925875350985095306961326155636665294922032224011444497445356890248277300202100064148230755614467581279825227332868268601404761104424189427521514259438025227099403279134740202115154145924682776224335198305456847416696268887781556790769042312518697735998828092628485974927162668975376161087405455652671172266480275962940753283706995391875488803030529224243151139111564199740213357517195088828841575027591741238018460154915804916799580884792734330401143628643487865894772177795008546900990358874292365244436905196562568874904522152113955633923239174968795268879431073014760556343702216881231360207327339797120921858559825126344551735691930111610880800758459454275936172541042905368572266399993339015716772474316276291279033457385461909122796498257235187018979867089678752898886794528803992860043104223419397728183977595584494289312335200932347274279233373480221124141884177099529348898700355389246303349335256716929734928103831348148266521569269720876369433945181116370599338505507762724123944350927875360517463544930283832760320275697181208163505607992979898495382311063181840424164299693667769927142466377207226120393845186657260064845452201771385306794906151795597316103112306429406618455752033898010220615522961768086950125218558626515434886121384860422323361792096901809168108157783497983919643522257313813400509312908890476509727452551372995483327916998463546719600192363852190079191684359987515820221111286911964054580984759965267338309553906748267336327558619954416338948240381960426594454304437450298554247582888038715867616786722383698704113613738481562107145800217432824704724347496792728535857456640838345563492102677902910399931515293954644446729160971439453090685146504969374753620371815193269929881991172917307367913302373276435601970661026196964162606328543454831980662019254439070133949858799002127890386402805412129313830532977368316367095014998730924186052752325634076692070055585560222286493941219111969568405696621165995831357337246944539247483094402895850666669333326184944394142494402795730896153087926176959457050787980941207800969568376221800989884173343784449940924844855259990700419821602276260702914412539347652193013521026961096363472846276550565868039444083329759540089102084372821951864634200193298545223344988743892108002130368494612708612031760831793724899331726154228523380994723966187243350151650399814079316000014163696479362528189387163500151387749085476768725157813303814078137296007360609112346021590526142828087135109596834788148902388120993841659579437855559819885080198713661938823703200211079208824578097213731766464982653824255143472457773437956010761855111760120959169881458557444349343155590303294125750023008043099999021992469867918951954887808854938293400077560362906210819058187434887979531953246283306967320093496419428433462375952864097227486463693344253586873893289459835582712569884442656111849620403618495997105599131057854653877764086608211730421074197055685214206602022484164810327298492182368989048596535008920416644175129785158152959960774472170220808715908645034555822310266136177588498976538127061663988690128786806306655090193628016146180090331529490089201860407263382360526026604977020753542260505968291968694507825285788094466820697554424566161022861447814816755822115047927399931508283363347376101422550441018027091706486818171422246180383841839475561151465788533192435196730346360681768142670426411370317442728391454526096558393097774557680367068666821744382947443944785808212082452653022690174906274660117096150209066594672936648839201542583841362614998328776866386509231250204639676050704163420780397669721761067355956146289757609992768032480547604180269951893398180441763041929944140828877584494759493371383709919706015742936436904309361695879100155435822103832550662754470083224069804555098196623304482947830158861369653859300815871580342362731367105120490858393974598503271263662012441625679762654349553077420907020164152207968533150128427335529468628024217688411243136919193663069462404857661829185441710093201840051774622745020768543205365562521056817071327566291569922979589994432105557466397342887529381828697542666433418833755176583033251212355280277478729487159611041384788505626855850318322993247628905134357171977916024156463699872265947718336866123246098516182899806799295459805163481330784489782265410728860687562362495330462311000119480647395524054054369759272477255501134163265068199415580142520233125908871129171703321672590575149388667059878617965196816775844603697057488629930700987386652343592664883235047849898704254486277352330136389379055446731069803456309183420845065889094860864313423216964428279835026105677161249172623594378322725778172060381729661459139347731754758314906515105929639195808109737836070795945042658122451407136944050692607561358142115663945773884989309941981491905175926326209833239486843188677805351693296446762334809699780521810898118303873273797828220804004814430654360431233847949887195900735569682514153157627481509146774657638263732410667026425583205373107677430021525409578559700746993175375123532501938712411744427974005037940161169968530074033617364908470672643815439150217335762017365617247097369477554549230642716662605053239413216735212877464199574943078130779309004847590114858577451596180704609444743070898327138317341061818607920885075363954234614837373506217401612745640618361797874644149879558790074510111474453071072025728957141745099649257668081264829469365038596971573055976526981231044952970182663357164478269177224413371209329780304945016914636865058743957509216566898218235411465838159417950156911401490928531697279910285607985691971260617997618682728258059316763948396774996468612376248427819714071088845555001058804790644880276127181210889686785283518774895743249869276067358723151160424475131506676697794056974735923142548637911064000953891377646440040627384795312321147750440796001850488325938343426255674351208826556604425264420721457167993239573434920091592798627645885433491664936135137411669206065231637504962836940244579349334928673667126551276216858044268864308032870981933929165986711870203778645157710680939805171836537186755557569703609197221465141429900168681379626676526064641116564245600196755539962887126507484907867917202157369996133813559119550218436111468981157324433305558033065429517396247163131187971387928289781941652279274030104713479312675100131387267532633463139926238951453637566182437336126097517002008217288545790810506054111411729867984556065261026729573538924534900334605841833650440399275143803251511085473093974668521639612285445015714519282360530313166031819601445509329557015158034952018170658458576339848437647929842163982757618141298080985470442658826929563420052195265461556341862306350884868043292951584812310446958453182255857758538474981836866791593513617089710642307973113586262162227556090827121913280487326639815759610880116691428875382414069629848523218144238635400124338304789350095522528564921762526337061153883957172553441554783555021184000194593667371353606336437473630084899721549568353445880457400372266365619193076661368747405112211772616221236922791226978862035731112697488258373677109519114931484964602044910443543886090341968487162639978226907346635679695204649758224427913074056617853969724682949095907653305149463807397001067798992720230297513199254720793440703361186939198376751322370446468232370241824795697650390645160599248771760711334132378640394166888953931606301648826105470909629577123912721534418412421906222668658064215731594498002332572951446502365513097351938064533389535076601774847359335429955569884107190706349601922301909768296301719740848895218489956908940029461426115410602237806510037955258202247855566137751562963011418437498810597316035231185075026354354199338964729239665849003119088002489793719879620910896778794364295279674689865904271569134742754163538027105528087051513855031293172809877538889412434783433738513323835926410648181039576838991420774335903259808330917868406291719794732066236567667119598868639056176316311365404371453918541224476638156644165004477271850563404540881117808046976347114879604958573682243895224163704750155696710914100694650499625243476604737390260020465902410306845063262803363641276021352053342022823605019071048336146577138396005626657781132231770418049090900131646635258071377550086755417223610373414218811064245493173345653271035393176184323175567555780892850224819620269132034742518380622022384898585904564311211347984745028273273083921546769648756670191772103597777224055359937043514573614916261859819476310635964914551367366070192128417700279677097922900166237998172185019602625093895169221831768919946285901602770195441576857427425405622930615486075583073829331334204996546178946372772833396528277333569593665332382625581498848213017591107357451858331015996391362733893061186593064999130546403326024051437684143056583192465660949514591852374819296764403260445154227191789097207259921421643233037390874657888565138027815960533995626616987808414118713642511598404934318322378722849407689772578740486046666831108578035360197737696669264146363432033866081516603450867231010781001545292709421151015270674856130171465439458305087456977996133685254145162365516775016763503958264021198854875331685776393867502986981740582638345159458214565847398082573881932174937288993629281045016943410831683035301057230869853809748435581060122604427546783365677787711672830167076400847998007713128362820313075287500134027521593765600825901039413131337963690268877509855128458802040794044780501871875565500991538282989927575755125073112234871665925307695107727646292925767984778912431697865728552568605119914638561581225665128198099153883558791223991464373697703557407759017146670438561479465415768098763947421294105386596474164629925572387675926977747189817437783290744847198135736676785103807238777621963383096112932020961964664404930171632783386045030101420470590310676762127478659055653223982552241474575684021951980456141539278728819696566479867801681223788478131964848332940860902555702420458237247461698126615493761954715428040856333616933347370450942110674180156465828891831373464570694479109600625065264620751740974341393158121462613417566203274735092606380099480508446319177220393089483116590089089475466520456636041742881415635779917620936664303464480979978390776842740297937813142429993915985410620891095379924148275795694087174198352941598045681569969522496955377356641741017206800888576313407151441235533529922180554264365233153155707718056174729982646937670044042383781664889785408643346308409996312010380321315901773449857110182631636676477508269276343106655724964530810995012838248663235009209019250439347664151284191540590576724726262663966336715980309303196724200565001130822158493562972365160817200359491355399211391503718262867994876548015378333770927236550948489624421485553294206258513866157968394326253894575422752640994160277330801852974731943771054562626938012036739891846238523788699104265650763180883271902604472355110323052005009177119180678816635536084862093387307230704826087805421233547318069574573118450916575480550007649756533534377352584683978237655899845967102515181846685651390268513109929607292119164476710571957935190204906304194206603888506959246254448743560733555371319249737327309670756613398498340699006331854996735670208076649762084581640538562345855660043835532691001590618725760344425239237933143113970292705586484657003440437833115868380026888956165507901646364646489165956637214831821728064599338526177245827558881646711231982818907306537498261979170102481781354653423355275213995755046587194869610808914406313869337908913103038401722975590182238281121598424144958447333334960472946599023875521813718518802380735840309643099370856568274782171104644345309895070809095624364467408425012973040022757866838543221030059095698339342324022391055729055761159415756629136242026572267319170383940204447619704105958462745510316458528320883408483625440837542170824289980735251674635203620371336345309557178907239783248780701230214918179513267373514869487279954307327469010721578397112545415561768109707678546659736297870631756514123369774232919830520440913160691092237845490978179348975434223899200994555773787300610325331891909136630611513100554803966132931675479040445948611359816025073146178095799340989603544914007129100468445285985535602421964625762455204163022023916534599177689870198899267576924769001282850186818271068122631439432743889210885993491846901419450862365388803474493636576296573962811411579985706162571155962601751534444709306006469564790215621905174427341121391474301023973455201824431949124945208829805929404536360906070048027011991172010365681083962491868488003027137593419394907751706599768415869475176265557746302539033125103046255100500464506894460979698381891741586334832112577454281797074209440438022478014093581084403617961351319867207756824652115500685052811443969300515799936547054834052239230142230801629695050402031752286317254612621665821162006750375079743425175770196555842914964813775922106995875696562765332835419396226611714374289889650256999880050531621462830201446326892084843853554172218940918410596353761223282343327519115236784003499767388641542703069636424470838623476008037885058355147680237163849076148299347907221632361717153777581784905605824140388580157516562877385278252754434755049678278425433879526418928097262936678310452304583745958584706286916260591412372204797955933439186563271572983368586889262446804484860223640140800620862323200052375123870072606420665213247770888605386473885538689067536657870496135888368363435143190463402992032702347843158585128889768045900049383068380961321094982338535260428029923813028904079046288085071500233075784224149718716628182806309640239298681723767358308089497232628663990523694961934648409171165638890634996781527984460709836705177428940322875573243380801715615280792115077868923329124372288562674701774760096913655874782329498652670190258928060817344596997863832828805818272776507434165269461238375186165007987657199055760961200788816788524833632051870573287320949426819363930635273920208822104928136466668142786627075678083922607850998945681722796916184757944917572486121099660024449965404370414084835009425464989115711011708706125175457090393197995264029428291251439946927059476542142595497281178637065429840529922802873033517329771298033339100022447134748829982057502919776119525793513053313319793753906732955754249600792695252102140618756278617365563234327421313507526894874711526754854386881201614026160387197099117563872826116537772679427776489644259148380264915679430689303927793834531237522111059158543069863123437898357964469126449586082006847671858598245096581558272545954436167666268334544720928545308216775656037457401705236956246483687866205939532484447980795418522895619515678032799956336580450367367426127177131456479126557101270157430547048642717253199849680073168516428931059054018068800193964506964221776234221248098299746215408704254155280062650473393809205834088634424931352472710722087990808009647297468024058646373245999566992161616310255513168981855787207529377750381756986433535238564000521387052010816142066698184475064903612965834553903540709376952125977219083222880619349521038702160891155146148987112527709032983743737277511463986533068853747727320702216165663243329023108189592430961911063101929712731938274408988967121874167978957644324739161061186775974192425109535064969484387049375469537508637568370689940561594875222915014325096132404030697885137405175511905677269654460787503961292939292177720381967626919983769445970099261754804373141806905147619798780114914021079195960763990078556198981050242031676003024163414112817111895599225497490588666506469580494106655683345323505561908315448824259305595237625031798397615679958243146020749477590165980773592387414662893781759449218819428500337162273685410410064787529515126934137861393345684624193012933380869735574748547802551699898200130677536147932537367405902033205940673877391826070993032573839393000822115313000099873169281188834781370454923039115109879385342147756971169840349740607459310780173260747040827691691489330090434587999162977903623457641514181465511435005859418510029165745638310518834143793419604917352878563779310196865337707149186846652263555075771924824055601800530012064404694732161479437519333452053990926070417013598216044947959197196530841895925079776343564097148539123041913691730829492168395138810287530925884864251552599390389109807913399927719894411597801333321881513406360686180288741172631383098271727095824188188372946925929091032281307440246223006875115424778831107640102581285767301235617123461281850947094279328336348930669964727288277150945860339790224409914386422050862308529008529214343285010803979539531255880605348878256582212200918244251710051669243745096759353401576803301479344406862633086015251988839898910887634030519249063571897042460530308616226587186499769128029263255069870240656305645568001764052184434332515502864593297295997076177832670443292430468616063774505242064419250028904819711980530273541736965351424885999268833449550594583350843858468748110221881361792655460481530028141285426603585083746963603031574971437480993244156914451171309908003225382737269965483439272964099561946930973429252889961018496190192312678821442340887109379588907722180637610562162949509589150645102630205092405359541566032264451720611667385125733491058845180297409604287900212499893080620357320902410112529888602206290602999211866910393374009708801214643283372845983139210747539147498813992744772994725878673810751652786045723159215741918504957863387438293303522060921869902934921883412076019748624780472181534748316202023811311083008072095014763182656878141767521416962957212010888585894188327505713595444182562785053446281401668645611200781411910185636863700374119264865475010024747270200745012084602653385206753611368173652466915668074036125965030430942151118028706304231668673351578892188948300495864665953084749756567846271237765901476268399309794668391239504363986720209978434879809291410152374517326959372018198096619107012888624408602130034235747938245270481928312496367581305837416504562222401235811030744521614779295141134618472473744074060537780870946027179311652517474942290487336930507864485477739769560136310619877912684441148538441816752000728923332336279595016939314942844513774641344105864045898374794402636477920225069188502529307166097866285900066629518935188727513293599029631726043710262332466983237323099376978779548796222640681275663061289415224453649490111295182266190301852175928366838967623307722459405208635928397028580004015280039003202610877377514013975552489326405946747298604814862927440739554678656715925001359447667493681841124646038230285463758313743654049278669164246801562406948240587020622452674747380299798351684256001153126742603433369877266598872076434825596086381986057880541095459637097948025952331654577785115592311426655550740382759485459634362217168165077934626177812963104381382287248939304686926663543586397798507476007430543966715218570580505561781086776274090727624594675093823315538588536926854071195739727846947802305308104725711666809404450757967585651477133897266334634281775041705823790086291584505921247189376378425550878243739420733205808168981764353816065167960215439711107053144214899898619419493049579161927660509655120985869502057240017385522349547457593750568206869470391389498119921747931020964856955980828133157138035483569280446409447014111333759722924443756390698827980705131970778111004132782282932535452572535673910279819415092231518546692212139856056714805838957793596164743906218484270118283014590894375163040628457223920961855065989438089084905483112044816653731542197058415743756887537198881519095280125267202930649748191967610268671235484644173615120291929188852058484131845411895101731261783008752429072607320587210375504921610519339568044089041971139588097108335138501584949193466861232812873197753219496347416744879123196997011987995145652333961710280968185784650938905025351749749299541529258555412730477254938571008779286440577752183395753118028382132314971676312151761984456939741903406481058729669109237791391068134439698895651884454585186875995315372480399395608181054703783086323910891123885546504281723105703836347201180567386260240627651024543781323229131683245891062127961057846592914143093689384428737457705408589886683574946515599069208447116981029697074391175974897377620844059323490713433513526983185013983005423873495819155030023450490786256148870287326360619026239117889791226251565492710593907162751468022647592345917312115452903962537231494434158912179543584389503252728190614125452630892890984294421684136596291607388515133396915949296429981120087962461218460496667498063997313824304981289190356583968728364772862017742309928652460318696134207922993348736778218676545729105976209277929251968167316784177538895009257806688499159496616540201810926652882434855600359414265901566829576192319724156062358787670191286683359548295025963840604922590320493956081787827091363933624611940358185641688793481972962083593009135077120375094113000840502488678800105262785484499698203756935733798932935188709542397781654477111644317632812814303001048971418140553206167001730278204278542970043786327226238539522719087104579709877624568085339143561186412988125536212909372225410975175481238935616435391273901282222778911522948788164701602964820799741856542847508175291873135251732924531277655936199673325102566341785465676587194327650537271921804603025212070832938209959730495189869245830824767661156999810947861691369532104274188371026122831112499986267031220383132920550888399277390545732622171185935722176334593990491585801306246547116651749780400651989935679147489731145672591391727026826483594751707716357027947423800353393612170832271244756591662272604045004401609045540545854233401630044105404961254113574923362421863720893520509084083239799911524036083880878149192229637168065362105900905943646276156796184389203889112320979617509925588014335666527757673167045079143337824300779183956144236815864468669411084740695422205211288798816167170291193521174792093531712445024251823195233770570802821872250819876182866677415482179070272415208114091660408240671116470979010281685668131023288975362297894754723243672490940127489933008818081784941207844285869163963540401082289197269258857713405434979506346074729170259508400334236030881504389617770664611858659984498215189221170381070925380111852951056961381088858957754171972103887199725569989774934123586565504079276455752955684043114081514275365131453889157610543341608042280961515889300518892248811991249103499200101824894658954799287365028475425509559583344516782060745356839244720135949993477893214553328771870685131333683214770833428711022231337380831482625524092037200647075623596708082219458164762073180611717061968750082282652495467437286529723392741308850679252319368157417481299357182704446031210082187441273751416027415432878753523846309617760449580742486298925506293226332925139270127758922302425854815366764216451552534646750197281215243517495058720489350210896641569165056686504531787443276658842597246507036497281913364454810784393445687799377932394802790974455166712894669352681692335019147716442521868086770152993934395912665634571275812323960249452080262417915940302694005308354550764999868245001649464201004331727657410405785891097432907206870292946522208846102310188888043335883131546830300789790078012318610592870500351727853388648242040539631025684650434855545411852181229189156827532717521765860327155306242858230704739401794171467697221630413622014505115309230791195027073702920097313506682705338783105402109335068042961009591384184082359064711185340086792715403271831850569266537189579985854233554073005394367984777895584731919496976589340277775491888851075881037126110792958139248313693275871042025237595398151381843200693661720081889891849109226138704678569621132125235509775153498676971249065852303917147016472264112896870000927494453913188198877838808259652287612213237134521460718223614043839165838722012208033644263117304234945804511772384179736342691495475804009311333498265972347784141836501077226034861756580332695219752864073046547939548515336610140240471898362771245083274545117801125684627675223677973420233992739315998040002647723033076382101419009449687406408868401840421138877664931396762239839222937863228695548809417921054975646704720582002535844834503799089110664245681137606280344182280483417953732736525368903589573988265903409728019491295894936526498673865016925380301038473012043916008111959973961831816147178432462427104433760129869658385650566284047588082586890481865636507674299274963563995577632473385215588550772705652023230998364846640909124996154535005946491631976901830630527978576683661843510981515969986079639280193135748003333597040203589017353171097385540482092764813263041407883439079820537303312942116705870377126400250439333491493645367697427303528663030826780167984829494134721353389412839750074003082442997737485780378589898554664240247039470689622370246665436427622594018391946840127723508386683514342285457319069370409484813652435023410936929650129536201157542864716288474027151731343172188451893958772977201039277285831935866026632060879200091657318040494842111477264458457377719623491070903828149131449488926828733811567940427469982926963776263844280255604307653373488815803128216471172262443410797262658863494502755539894199255093891715702755215151974095945359482345157430726695865582116028814653562616873668263772092113598294212332559780362193635458916638197895478027527162241957797986872537444182472975411405042487714278381846659744080210243598506335826811804960031165807939136587670039846431666490097401955415358251075197889303774928682923475890869151494047309080324898670852070109840352406177324214864677234931905130694374464782854228744230886624334781279006453509271714095672634292938910281297151021804754554147916077171854558166263788133201069032008588705659590580613266360459797890113205148937902023308070433891984807094937437603408039212320383007916216241310672759924255937102756930786841797377433837345130412845825340110844326081520653454892207782599662945359080160146833338234784110530705670288023318633248559609252788312406655015406485604557568744605214798794355783922761984156306287351642237565992004496667453909117408749662461624961473305165539856475031910299192252839257306667175025556154854220559822677946527975095746547730667681010719154341817390820152071887169589090708904389435666262365954356621405333848420634477094265233606969945481543230669788974002849178693689401285541714887424953696377164891901720293931172839639533178891979086789118006601791470727230752634721136495465618965324799872453011053979562037075709559771952033020294566592535873178439647314325698594050829946011397161045882170377627967693825658639161218915162674858327911689327365397980207590899870327187188162694664018474459249418378428550566030728561935901183333209618985514301456034794566953139211350544981361258513062922303495660286026095717317320792505304145106216453961329871772206958788946992407699093550632110165503966619304185328954856980094817450453940121714034856017834273920216753589075518104254970511696572883609382049047802522992539113050849117992953714238384079469289364523415952397569053854473981231042862364578645693870760138559941035650561208503645384115289067595601144476061860462664255823856172460499101918981694388260272043276569432096135130337757009736457515355441961532471297067567549713833487924745188994794470920702970493919738710780039217637953805645665796476562163703017936871403882371743267768068373453042719987144144351989595706265957693397071255213607851456588049078088135532012894934476726529271889642905237790345340661513657947216755858772207132765852960341502686785751787983180183156783613320024983951584573544373770230634367073755436405544385899077890832796137547454946822309195407068944454907572779205530862844531987051330708770522331340738498927182589043599865595395711342522879456666615415498197162591134798349740494717619006553289667294898107022453906709670118942169204860488677173535835428828130355817943593694951325774532543836219455216161154499043543222072377168690585567880680833675259917191054120328279913474661536261018314198716988059900364197252491512228589117206340158453080302168256119088038667726711731101631591961922519008096486569153015376208567544902290126636249184265996563381693650273400229441748042603271271729808833700722406384163882510364753076775853348477301997809511139568061594733029080405233984774451951747454365657974293589396559674300585696576759534004441270483477875741576904475212606121436291930740142416644802703604669375238822634155893903766585838777937183849796707654705887174774816055932542266417865096068935944264508559420444600675549631783231693369290234297242189940648870960909864305843766461483095427462287953699354834651830151974625954555758385959258873085674444033458587730723867510985497435079182846353232096344153517939821250794495755455135098825024121673976536211303673608896324795742073391285262094334638112531594692625837882395533550672892844235527282316205390620575218743633902807700083230117078165731063977388801579840026253445259808542683611183112683369401939158481615892085804156322457449293614988976391185355366523859793844272381340682947545194061218908575271265759956562453557178028843105667452997754405602698094765049682730998313181568590922124856072980237971180030330716018553096994606929899519228678399505291612522581211962854677789631885923081003403214251964675560714557101018072910017264451691564517932599257536706060515693982063766902646811241536730973148171618863552400540586445025096646851326468794082771729277052597401905473927547237523722716165544112892890688150028160740213936910908387151086094517293845309586182559825740438339874840922104803005104124692267534262535044799289528707201565304412474268010259882804156994513684933601822590133929407471656761231507688331317562900261092504572217484685932476467054031880122985150358675340207225020470302280220748579349286310849672332524311137259799313365647209229797049811670551802510464371532136311507778071787001222749927863763608811239009202818995234886430683537825463940318111407738563743370685543912352264330271121012976629232314953431607580108442171006167471679167082619404635737902069264153957725382309269555033372316919215446826356527234048324175400141720911707711997480942704674260134302328159766089858112628610950762295539757831461065436315101380216395723878857419960373564640417273785836469438593417043645989542846231973751566482383534782662527525719471241446185997161605477059067548706085573476117003690405385217164398327770450889044583726344408445569655863565784622539638944075529973239993300513859513987580252983472848852150980299101135378423732812122971628742651875355266681611586309071805253418597280560534014785206023880740540600427158052076635745882853974713227468374783267836312011298679461942880901028727005199428308448570581177122187263894416531711662981460235492548380736768116143868609335569426661772760030254733178223644929547006733842884946505275828761105755322570435113875378379219463939901956134486168925738722311398130187303568494873916496571253395825338711523010292060608641275846635411995325047814674859188806871724805259087920411491284514513067601620286508814945760448710831573693729185299524985189620085121749678248307248478982761957654153107256809013209425638976427150950281962264316714558725275855319096984299241002509014343474727682218604481186221177969718750707057141234729996833566985227899618922174725942142319184249926579626745943969091660935388067268008588149694768814693111968049487701402441965613416274041244110813052064134575897597678594048077234122523871276646817733400726589453537262427032799245682393833631362405931722597103517010080155270150762449241973324972065718186129422138428745781543198905702385810173907614530306243948129815901494680694117106178924379332797247634641134233194602595427326125579672173752913185731914022316477076888754962466457470110975721492814781913331175429369340566853730271879246550648056583595480562115038311009835461014926533974642788929314662903670682225213805738218127442736448569386283405239283461837515392483376208278579218417793218329502056356536078043166151592280601746099539202839348211436929347240182685481632481659211373480028228106761518445246657437892615831613097617556383918927057262008157120113570336440756005321467944876809182667170488273081158053791503828033940614050122291300446379415849533446650803684801874151031139130027874604804778739140530906791314117738475820881353477465381875579872152614233079572790804826684506178597103647377490454271785878818639242770405206077161053576735472629312205554575567655059855726543013784928326868159313742012149224526896171636151256757057545123239541966004343830160901881816448874124607579035513950202194192173042136199572082110198681405138801697322187137031919960820474132891611699641294227271111302453532570868376263211909864530556436758359720724056931449373481990212613343175881133187915872143274300244309359408503241836009886928954583001781280626182065343557302134275762778632244182313870585099837247057915460614075149692366802227217268206165022587126352360120216446601014131149383882833202956797222586495754799519325894290181436661857622910789297752347450517974447400900376051370492878727549868145193675021040456059570341331729150613834545156995943840627159394366528872208978190066587907048371597450747689027686143865646228302576115935507818940554767851792132508237186127204928664364443241503042352385358268274394464412907239901056638044505465556887803482074683483685101024372516629611230452124897827159622685860395065817157624557378483331276734161810867761897661800068036221737885503253690721276706532043647362650978728396214108637526668111973692065126802071889358673957112148176078680882954888278120123092241278645639392185463782181766962921612708213561633546717608928402749158723897964828817630399574153788652519595924788295374283386604741146456865436464323219530200782504163028325165276450313420204246736090618641864689022841184493687585122860797689501385245085201351835621470701818224235317787083444103271895774676790819571960198221200900796029067078504861136491391139659761252560187169448633757431901364124999256622436947222524481869841961982305340148427781631794132193968584073675481870037004480473965878206317365427068005028886632787329205205756980011801602482548300627735103813858902885891822048110180874619067243976806480209542465944121307466430843782263517449899382614198480635263980533325270395411837652160818850513137657387597080457840576819342096018948366449008220798076683811564807299840791432934145360248494459255450618150922937608352186058995451687588310046744635449662635960821834842456780127857752912967740026468596597248682004386116929203264538856774395273582058037395239157364965765877167799899644142662144961105078667117567732210559818324990838776225493114868682404189858828605357638693247797447025748514589438086715621131738216648025501444952454817496562991986629370136374718082796114006496606198303995489725976315317137236229050908035741897311454972680838377022347747261286315421866674221033601113330054675066664406195798737983710300007436198244529115965893639908706779269757276423150577531264227041054054968560170162087383643966083491325495885434047692054632187476572274285998837565337372066368933203058261673453580951166988693799506712525060741997558210612397832570644403694366952870613466801957927462131806119238254942180539499186459613551545137051636087168071720856238196798273259225755016747857523883482739061803395753431517838429992675913467116802245342785400509051930717411752922479500705324427460014040958850361019755371973990729720230629736250998463671325136038939705419017402583289148842092007838267668797885374602672635296920975720252626631806878712736877140145324535430234725456128758748669341047350589970417020955063991791887156460016310008297917645978513953582962064089779616066204123526904511267635452493922767607210207618261190935362036969501355293840484817648976945337726666485151345682936046258399261088457484167728173786101877015665934028022977358120558607098609784024424701777561025091197940781909730082361426895237110802854488794215226939776508258824319159179505764760406411525895916915221460346310560085983711436323766766963503358262039785337572338142288835405753669213749187365497291999152502135649345869733230924673419243957065160820092504935236543947371704028644177976137079900209627279854812253198316650238010555076894130133731051307634105313140151506894072146124459200089299723443940119920713914848547215204377776566635657611316252574555517333799168590229544281135287994963469857353881845490998184963785805824252397678433754747990248536402374237673287211664517090730450294394404798857178898704061539599284481513776667762360057021487586426180898169051488024695569089828768422220248860215864187145419158302411856047274501536534238677512782388912455873167797737481868582274394507439544453155247071706787393211486362014866752972683521455750781921506113667031755964267835384956128495843530791321840934378164921702423352184572398467955792476710749583436683870107306770252807436298664023649810904558089867015677353689790199483009048321278505924906064455471879328369518247013118553628573431820560508904644900874890290424747374639606487333231670274683725556860980937551645641073157380725241510078692090033199836269110309794695791483662497151008928672025890940500568779231805698134377494401001932170552890694156431210109144554493995852453145879010174447098533381670373047310928062862420122135079975495197517469246282270578642869529646075680311685784734537050941928477632447989272855059396192784485930566118264149891118367279112402293655997677568202759015459143002863993749997877617434253009153509041962320780782594772237734488448236041842000834467045962830113119741744931746417698125244065191872022371474655977732659208440533047697869290837859756454915003263699071016226972584841476282451405086831671582788837093273490055101556307234384651112105946270784837313815576441978206910077757182991680015951733140667654496674311437442952820670645172292741701626740931282991822766005182768243746935888557833128652924237630648070404976776274918155329003202550103346037708925581117390705344715045151212714443208554880450621178679415506453922199197953147538493644753604167607150218150932069769151515053778779355596185568616201169635873871422201241901329738432226268681229346777607956940121054434022546178635412603178702915779736292293666614134233625113740948341598720836821215340207752737786328423772643946353444333008318986237848022015063758096540672020755076400323261981000287711807657004721878207841778333590326236052715282277935059505723854098572729367675857536544065986888046166784311991783501171366353272259625655216197143605126792063407320984512668148014922887135532087347639091512909318487909242450599415318208779056368120310876992595635415957959331667757474112239182531315655487956874041625469082604749441871059908637839700565723953390992900875996963204052493213612444875200731307356973146171155794170284799776551732206715332564581721845876881141856990957766835759334585994377214604160493904019451878565719897267872256114995397442286076374955399706204667771876582971640123546202310425396930624522520215585935515848349472766689451286480299320023655365534548653744117445300729840324986875875354074112555017770947445508066498536622424018503689248840412204981422205103742909907531997751802378478117255640217539010132289484398552686058989824398462316083127838411425490674282018634573080859776875182606355192507438372892493334177216355207559917772517818656117222132340939737935322877085782483599602956359460340976627800435856262527417487703752674758813039881730368256665163400405596588114092798681443444860671175012894342960544668250543025722787888772358742366420719555787866352890319648932345557023099105444983034586893008074201417786055526651850743546721109072243858646599110821166943256554095203536210986941659500810176759556215426319465828442558428310950846027017884780781146736513422816000380367698771047301967398389219418019947074096028889090355365832396232574548899878666002419125093287105371823241402591888803825699004248732882290169941691363913943187446316123921498099166947278711608643488199268336445083698738810511482281232471905016786095884130567325161988806149333816357157294555636324190000035431690611429551338881328798300426465534319580659042579367458609199339552695848692938492883477107145262108488763727564588925502653040100904150419757815437771806865091134801711576243878011428095234883944892289082387422918706031495765741672043230238899268594215060200983494477764448509467173457453833921604775526613238605938699582445977515181940512125659170642019087269210351371021924434945178276871771557945474595917000225571368456171644453489937878658078982090890544105859067541719009978725610685705070733206160153570278526113052663363625655257292271337116053883076433649527505789564493841486091617787563894546236684973234428162503504951359856867173146084630257510847543551314083706521931233237246579607831338223329425646070790903781591521477843564229585421236621628522939939356477849660603065818947315347965272190107431278023942194210033444817159870755082817933163458747813121085389735810459921770860752228548105374357598032199905376376071741874886150841222496265776097394448569848305843117740973668634418323690187971365922332938639685377977520756639056690447099072817142279775954123630138116973387022085523479582537011490103218778966052649102778296866025362023155761259698610753361652910884964704381157105022659578468983023523124419031201355482722291988687424108637977467068630820078878057978278847376427985790120662187236935829064953775096215447768213540298534829822684787049871745226784989718256829078108216285748243770653466280145366885004213123052118183382418283413535033751132844285500117338741497142135712117361188949383347424809999659975730897934770610996807177414888725488049156574991775618624537112223228305202909260966272400146747463650227141059967746965469066985849870251099620046539945872558819507324755720143309819697221200471604252027508835869978748606131792621688104239263314346359218467737023720437424149847810570828638001284040021964929797308574252330317709956465735219169544676835653485543384766445127797549407163411596666903592925529258687898488911545699313190299847642091990548317679147852001185588938314904929195933363139680813824671533949177891994904787562189953290665704699294403200611475723673968502468462546065640364138693477173557407621466402288993851925520480538854938557239042438106943315370027488148138136762920303509753004683007343822761172066422697323820259571272016323815239917943472302726848239926128320471117287742217705131902992825876949252301998514780968970123593139620845358135552841401949330000439703989068589230993330343459037613314869411427080169719734149152798038901583969069605324263220074346718387553878942557564032314218072370232289289211293474071662935989244493192698163050238544339462396644684624777468251685630324418961849441505891687158730748140891371336022677828200986097972882699295199703890544828089173340333171916500908263135259851946248215136281494378526828135342544255483476272159426241818640687895355261416856350983013275874197063352029706544860322675043744338549074752805478932386247721094474327229301834319487262842086477658158108876530975377406826936182182796393575130849458744480910129933231080049832354066982659959568616023970572960639509535526967435708656707584756618834001713435495001782948863054486502536854590061651285618025890518060973261965378927147798467348631578131942776145631705592191172826225507490336618642460354196795392343617397815945795193124517728837539320954841169743765113496311522845961774636749850874143155411392967700789953758671311037495146616746314455881735236956716206419265800973811229722357249160391791228011317496296134566742716098349409681326866561672189377691444342615160322648176228651522289432975090344168240298109677072773741169031088019603968551526686171604658099258626816341460777447558251518935741423821946921562462821037981031084864694960737056390006603028334534548404635418308111932123435522922321485111210510887936741335406801690119555916798950819190722597012464198575527062873799525627961140266441327440645799813751863290712753082124400191328410014240891498811287612818820624555906036494331121783505670760970055575151564816307683102474004069969352384307197777329181711802876632434684615886993686892470916790748679125842649186796962433985917975983596495876162825918311076466860942403466315971206809112772671023747009582331978573809103036649145903594845308891559199963467664432019150817327382106625851649828363553241032083324443231737972645593467888834691424071921404051193872787926456365605721814308825622284720398753932554651936610223613241574262498052989838133689992307723679245887264949777985135583551594374982233139697174174366799590531120719480627388764672957799300971278220070035504336222670345167724633279972880673622717506246129109021135414002324441562383666702987540600328033350337461349124005813665725776877712151298358540172034204174766623852809727227939978658256525673239257593757460914723109912968236315731139966672168339408811306136452329746644750324902075610325320022788435757426540527292126188089109736901220931617624232195303853290496850741228868656481119010424516898988990632603149747867460362138739051102025211636462227027738705326060123309905102294566138916752905005016995937515778722004368103534060312079071073029309159631918218871228165060012185997196127533224606654631890805158923734083917678504695751187754676655100027112413275453229743429621599810014224728272362450827063246793484673024691049097204782599150266549486600074931798124219098180736611452092371212897427227080956228594448714883603881690521893880287175095937747854502971152786833144010984951491543514881632491854749879926309507723232573644251507509625191939467150982562470093576378491799551353053342336125676337883335333813449442902000454028690342564677298068282108036556784737005686217185740948211701864313185697046518023355560357024996137712792914198526030576898189119875331336227095553651172832225834309122519224522640165837124148255429864384285108610316221090150356864484120968611770372796579616114316125220827944279018718470243665017628477297123512503953683500398089507092614446622782088384081597253436464833469357690900145357888310573845215548130232105504767696490958695108350177116745567238225322681993006229261670348565268685140370254286190733042215678435990706542069109422350184481528012641720385950221658696330949860476939148128377130243131589948600630566218950641565606463264623870670737745416357012879368329187577694200364290952637696591657807523266066863555834724450189364739847546748330003147514549696493933833830391671424882434523661275280101876221833293364489223370492055272516695227113746837655581614467091064471961536005670198728351875482641384182637459142097598965140121403199634136532963286350977943105269101021684249195693294755438039796825307303176714163843062696089244086186506232690240301851672490567729744335104894506429469125617655870604512237631929853529347703606543872644917210390755966887326368699394913534189217110000849852611238963256626811250610141907129377158454401823583367972782762303792434806505501215022636038111383107109926577409603412576601397086916206415814220371658168304272293568198283289700641568299556284286226454028118109363102610139118858833349755866023376282431929564141954141264800140222586969678926983624368332755127094533967872606110588871851738835304549134003381359905409491823710857427341233738510042020274276562894920901731215498304421413661684299858291884024415560042635855184247885221034772047814516513635781339402017157919030069177235766772766326310646688467493044684865946035669230939590740585965677086001405941232182743323010636139263381266036195923555062333386412513468808031413415570693047893666838417398427525396122006689284601802132151221199332460883850476160078470793355362575351351036072959574488866345693305120211414351959481181622729927828363486273813055809872649126358373546627501382100607397468307209246446632448684812507963392291165953672720959390954813731979757247008609678801846141646649665965789483755578069998351306488773984087558436430126112255213770401249945549962725982831126467312029651521410714796663339226079805679881043905580240714184962974218210470537694035131913280575867370729831972732067927521270756189500693112252421925107764545880028826666516354378746281443032694876923669260338035785959667159048192112149266997394072092234306882163401138731540616130955986880785807268832795002993656321102390337340753967351979043123472066226728308549659611321331986603537869772529352954614165879149495292481544244833502349381070891378017036021397166808282594344723438726690997737650307334837212243422126691584721260089157229583645404983696848030034145472472533896054263213061573392402841697447513103698714926202119404495328392901486626215643974613612828966180857217438675091206182933329986217061236892864958085003512864916539879393515972070171711092065856812419696863412622974707690133040584946668441294461280492736786423465035990055470526062464037807017800244827549104931549896231272399916513211806355725732987703677674745522374099436705693970907156636925833959326983062329896110113562266851483792814974859996963924814803287265927553954550798149014919574508818383015669839122795715556021636625881566917035790775703138154003161739279414148239832089889023245007053632662071312293071284832424903269514646785125850079351562944497827619139161226438394716923671157355034455379182891244056883825597936869189943982451514312751813110297145572978295155267863755360186317616478696899799626691543269092272154525428933953282632010039563009256995666343195095696478590111967787335558317088117153515450463695643678471208537142363169635236448393433839149333762116012777731973873350594652443837328325034067028775004108949944462087817217658881581886409971288409049856464286405353372315607803132422503414293262707030415981671168680116085803960570070833936600840633337119169363338427098680437243213140641640774126165895524129721683607041620255745273883343837881924459426856023592572128007058558380184330983695057649312270551428448419421256444772975248819525297628939700839934308160303273712241630952906960277572797245880319643361336809184691740206676920847134487130865412546994737240349699094543236315581820225951040840852550509618561891115263630947884476822631999305134197945744202256398690044124288229606463667204991826193735616568713395440687612881563375775925503277750612990662576835348039171499283177133646082141335369132668379014950718745760036859076738598629635243971955802686122561378057723535923256974450283449878876724832609204543942179123430566928579043462359074188996521481010178651523487162701981976112291644725120546575524975097504923537929379788089963702685229266318845563954687513884038827064469918688543162022673461117649060420409609388251628495229968559722827469931080678802544821791971061641642457067369964979804898023071366267706319800808001624265579032564380490049371538520862600391952662290428423926943369126551618983026844908399502094566341189305856818072133759513797213970718113321477249038631514081802984797677227157592020783874085963524925651484781981376819271212940330693559259576666460330368584119238139972851989021278837824711791124833035611138149881898538814258545116792378642685285408016333941154263993930330724047841676618061288663392637147363365175253214824986092951807382743474731905138735277074133542868143141753551246541907157124996697762697700832797258595101996256563174305963839549783122120358829492937640341023120946700200937003584679543098450867075099349761672059744572587908771073458227286081769959521865819516715536678536465689586296483607058193204848843564067465635172459376012617090634129912859552976835617655279863238034019630444996217066002089094446382360718803178515659454035961589900537698349389427842638182232584253586933735114096226859681037544003478911709434653913962920138559645265143036966162577017441931545908436816862878039717214218023092334182859556814333837295878240207836009544706363952189666964349469458078373128685250260100689674308423617045985917994724816901956558562463277803728628815689418837002175999262112362482304357920085042830907321224516448885427627790739914672930100678076424384611358668861190325520123493116466279534271185963381618009187521883233387016959072915430016032569489375350681751431524638315464958597525185925062030137685468193079125745957413964722208856504085110864018230202287282600960108230484365932369302945853736076537936031001224132753664831324255390220470806290453274159182719431059164294331140716539841737283191695010475896578935541466735126038482630749306768849487223664639906411606666809997568859632089602376657958656586413064422468219540093898274324210425274112511776044144660400511190293474114423839608307703337829781278246960353753077576142266551555875134098416731510314467384756733911246579484131603713325923270193124776712960617519914744968421449452813560619004830015112065774958186281941952716776202076572484642208608082730999021736620206707335526294733432515581796344893205326328714811722834403572449291674140830786955905105755916200662950828229393269471659178388652982397756075681726607664802890971547032775063599955868141677966768081777398195964838253368385447886208536273649680047472681394912608746605894625546354093757596806036666255494848987432616233264228731335945211900772384053857458935878382878597774268524071996132249661609726941668009845335930043007147289319538134092593890690132364435589439013750029360917801914741835145429967778675934174816797545737614199963390736614894184341275013000869402738338787847163108425394991817824641073738393576263186155020814658820464310380431756750885057558060747266813016041300973314588132061139884666278443697153873750093161981075036059282597701264621584219408241384446462614619120084188147692520657993943476606438308179066451364133319405224066428587368805423057345077996244216240365795980820327620948662495059188914102839004609277334642469961481546329906641658005779510214345578159828153804706356241538825822599305192232861387581188898328415805173995984130513440673997894674010382056111819923929255803797648062501545249080144892546984302575778766079368136357190204033851313006793066688089238066637243872316498903986438084073663745406184282482274585882109693099687452174931213140693382564664564359773747101142419019394146635426834638266574551041206021813870716139651896271497959650848824815043625836731053717074689482871146773295875135911236128632756521141661105509940946977807487483297691272015516375037553770830137066813284425118481840578218205398734885587654154945499198172126556839690743734817285053493042428172602833578973401504514008802944799512364920120105564113897549969728617048017929196955259562250819911883898269269023956159081095368993118986708714339151550601342848811453513414181475901712955219871738096990224534806685153656240372228739514695506096485025627469667644006693415076489746950572252735184057317558496816730012518387279063787665693961658412139249367347268967521011319562388107761674550891977155473948108074066006973122116289409031345984915898865524443778741370465007284313748627017401145416457514632353579528763767293967648480766231353428320450143903158186017256877496798558485398385149065957100896160836355888632236490705239266512728121006916021048231160115965757917319361293850118883856909418429346483811807412629739628085639865479379841474818558310449737496393708178761168994250295339213011307701272606292989510753988044647363216247150715485907956952858016040180707683888322190243091135280020065936686824484360917853223917612696556830747581955554675257724273965796564940046733060193857497585387351836980856837608153975366381857080417987828533599300461216009414135925423687259750767002425832580610232459583128476219779077150161276684285846847245096037684828375348498023163590421271668473613418396034141066688927818123472592862681375053505991482904299500787967146777620889501038596049672193407879802726653008283755105462351039216468328243698267482419153974389498641854331292275331111811236129078144229448136067625911941361990802236630486482420361079463876876457449242174594882786449385580647083204828161369170522556737253575292014770457349746589690757693693568461768141492068772666426801407399053962852293783809839836697994993736272227679423909124125207917559672552627104626857369102232616977275564875747526565886069742935490000245996786082951149385857063016126861088625700342994050934214944618888875476199641916195581733310658988525880519811687067451756551121261548947417033613803546164263935278387972561335685007131968762497460070411080842585315136039996848651816436708035057156424293896231018957970132453713584349107718605026406754282043663862619164972740905728443842412057176018291391465779911451294287449261144675535805721096232720209567744546952907047078685257442336797090970037973031042859956093979100278145523975359240559874630582500761410180360693290187872616917051070770316978286719316203135585496725541227245136634599468646322425392704463831763873412188574020314523529642465582446363263436048871954503339827153625194656126364847707934881104946407814458068359370961936478336003061768421289340720203938381354309906436171894907657965222566256368946493623420087897898004607688490094902773231628147857554842165791748338775243048874591974234273838634346272479386698013643226284784867950520907858567006996323477076112228735734829279416085223436291001042074538773006449393335809940729032614824577459809870654864819212357445446612620213796176137934415133180185251214953353703282088116623492919672572539147062710289271913379388040133753202759276220075424998407355930692228733840125090497973495125131822504091211636794781271609326320768166512587621015166737352218556217896488503261358825111466751785600355042089895634902008390193079324416352702581183304979194470203955707428267583106463491189619606640236612504227088509655425051449663573403250233039705654623349258256939926494996868378795972572899456008180765768210373079048182106101258233033415321817151457996402779909285072956945936328361018417735742588689927926114283966609293342270101281528935269562682934736104084627428584193299581847145608031502740096826439378559238988308653326806436438058868280488714112887993008289749120518730113014719280774438134427208482537856024030009714231932888457390681359980081341089831580716875117724782803158410447726240196572986561838616317408641940080195838506336863359582125880578778982051681325122518690209998948088611528496683132139629884482780354485833882546010897414865880582140754570861258454384718231008470400503276674767193165836454399277000784248805807126321311212519506335926702991232770801927869739205006810221332994684993078046706313414311408232136012849087710621596335490711768138425543896723179270900567892267545523439540658300926266630636171246934779662072929972187721659589956852907387917635490527919555720865550684346359743309565224312806573740691480598175649644353353745829295898682392643274316009177691249265627228332433242345516601044349429790197928917407441261906857416226326329424070351945350766765546817453122296971930507089050389715368548020526621636897069968939354445816370218728695942934407592260958928926022457145147965278383714502042725162882383974403064088490635806479178190683605373644173459469928580884829923517469638288832926442334503899768679659749111982623093156050816482152255428193950693450222739444962347404397240075823070124761132887502687928800053370918234835264370276142176261977533191264089902778093245310152818961678658603209113323045728936536478876009479442137000976938087983940697314516033150981755564384454338531386726099493157969552875634210460883023480637186624697678584524957647672151054393539017287997830055168993199264148984181471610300216716626559610871126693411804640545479510262505419015734216641711822800204481123874349648774625836630495973995674729552298712501818520704979648790475360948063652631448593277724193347888006885942103814459057616772843223377355905010784283154525689640913001655889781189045482461919472455231638736681015929195419415680556735224169746740908611574029323722949902805722071916540486610146939672475567939938801513685689719011488139831098908016288553721772174205963039168424132297202287676352057359754612295815926688222127511372382908861828768165463293284257751057625037651339007344240022533009994217532197517952188336628256041675358686475140240640205503924863931258373204092294990937114075512213489109403655907885171069788052057682212186764051421004338636165268506347125575860928196775624714626847313887475918941398313786077170298560839524020579403303496543130006131214010476147079567906030323859929531106750651097916955308542306380066336169739041393994328939642365737806583855860799325212228827735709914120558954300634860294785448815206968005058430199748924581936508262635284830933222780919595661649012465258016742276740999809232578519144998404947539895162293507256590573079128719871957928575590470755610864114130227408359962250171325822527445236331466655743187642510649240413632706662960366805910441200317047495556277767813872620972447300985597817454454273096525237721362866716162424911796675928549036543832346867742066387460337205081767436750528619388794343327440215731458646751613544317235684388384889935480323018924497919909966305156094075344919325147902866922044018712653652830514252495770182168922774660151014891308088817188413310169491443884581893567934627497444995237586358746623963743701913141426963594460931512596793132895100720594785007186080712921901347288970737239244379182073706708066194985801909515161030980134873863983952742433912365135419413849316595991131287049449253112385694770689165272746769646365865420751209178587602975069560774040468182333801320403318261342971053727363673375643076007057981815142229344659768347894443659319315623086474086435306768072985968180678872938911157955810923211100614646234192942827080903065376906178265555491858193927850244673241412147175209427317449807445205761057929129264466076855051191759550851639186776041222190713539647122504806530412925914658856047541490684744307225862419836791341596483330747996153582256903606810209213371750572842671885049187673498087889928412513453612891539965198655673436494614950105357285558424076040417526002928126423213973145327365271075660081843599438683417979559276492523277595803780697257899089801756674907466952972439671543563468062461343819579916634757461022082273142273588448740440178515401835492120014634239961314956739480194695553786476100625156624111358459134914079075585334890940547178990548808054804481384964233658464416055740776658416704527533266815715156082482425634402442814410589322185883061472515396892401697595649918798995616602585703238169662727247824814434265490288896591669562298083489499315666692407226390276637460040399629486648885994898776917672440180601478896334769865174245099766305044514691583186118266270083396162690663974234061214516856034643835810483535620257823864281854739463631479874176805178187650608532190472162752535965299862720029069840403802957746986917110035536215390835944247174516799148669608118831415107710519106437806833225659217920056901402897578129658869192471159675751162463349350367042256107902532335676525180073645637998402209205091260285428547919645393540814848188981020135714929963866278091449434673206051631027536580354689158995435941248430246578095735896623516085428221688850596609107384345943470199210045696843990961937360417739494643618963367482886415299973341454568016671044142726064449897716438732392333851609156587916357031529394698798934366760509440589988672517875506935655615750289980904617008838734677337157417585375248074434968741482030039751131259643127848759197906161105092317913657306119383400867876918948962110284746384899954131350448379337518839894695350057713691954460401022827785046763426963531833736985623823473964914252673340245402926994030500399914446733319913337124199141522827349558293676929374358841277493358313297052442323257571772946909151495181280815087078827709004820807546618752687130092265994753335759812470901908313466507125564150019633242909526158816030326388659233134283629764741699988572102491822898879528015300054076556618303877555660265023507451179436882890331316298167592217399198628316492642860572207721281082931361821208220250341027705818126626623099205409879644868347804985944528355972607616747970743419595232984456318798017057153226464410742556905082152049219547650176964868897844221087728946739343483341055597634896901630938442137035348137355108991531425829462237922731201307762533660021535576139156762379615959653983519444874998267230965137754065540771946622618643694714583242517773644122717718274345289967445769168911600801044626550750257212330100251072858500039006210323587165561802839555946073519194136403911376355129058738065341937814633162285923643499772638857973899232701708489300196371950367918879779188397407712503685875262160978910314118326781884444141863052027642948164478089102056906286668287106279479236515461620420865713278981064905449756629071725696588991023755736642918914933146723296541267641721333145222202718885880171820813038048403059832316971512653395028888615051886528858413314841614986806113117138552498426223089186133347613976016660687443547196631844302904851917957899771400278621161683058628469053310652526973016600441199205212493036887035056448912314102822272678250288050239011157178316214342110546630324278392300768218096385646892576943569507976241002086608081147198310377842818258519030036660426293047624663941060993892185341543840665860447455216499552908084974000483699107339502532291237971193081266482853953401602465399667520677790389980001799844405787215827038228224012463047365456634806533032238568469197960918126390462570580200323645636207316649503334395756368308467952336961792366002851865303726814043898418500109697215922007590961445014457371936129028754428201685194720235020517225691674662306458529079656697194103932692522445502624598910440996524384507750147905913706842177715121343274031461277742629837984598128526258425646262496216481122962636768836588688041501201284965727450867080157247488390098218956836230568287238224337463668855634553100854741327255000830663929246000232011349036911158730117136399665081604222925978038517596514185231422916654092879859155674158798855479001629778808734174616911597873224264668876317385620212088209499368166089779940941633967153401344925564904620937580884966627768485181752849640351546143847789662527226645923055862395666005099509801148869934181688884755947911172606982116554027888021203194837591518381481354301908581405217474253458302917368966977577972537719314150061595439019807967897665650574742414153435913040270455464158172746194556946769708399512737547993944971000854882431023160756007132217861053394672646904173636450019112057306103039428264429683931122072842935065680643314026316279828762487776060750454132783267427656217223249477692134645244797260655433362069557718313215519887775726664632236028696618753993962685516851321776919899830380994837542732487720826273204998149488760358438062804426844823588699175266498716408235924715254532752514180412089495201406098154130153487676585897339309121308523833683146277016118038659240975676049285447307994202502407072415546746233573526504333701863649176452581849350569972260776265903557552354863615114732841778517928736438704361201075791962353401483947144805970378448769164270106131205173434753668404429609332263230837092733255373594624670621378271013115898144217835505026177726821030204997531801206095675993339696947150014962821945492702434662979536413300872026371332521160716202328037915666890344799286133378569676296252690372390243983259530674943986135470642292160431327918064758210343911007033085364089730859547316252905946160956908179564173330910971007189528979889763039381382708299169809562984397042785760725680431838191525908212316239159636474087688062165804141744486758229590121398177114415771936294776769475165957887869109367966156935024365238269661502363363804225317936705077696724901887065330689207037743441446978720900891812010769832936496825539229830334833446175439557755292518172827129085724169989067454407412417405986360646014877431438994083925934009182001354547973433718879970295718161798424897006832778256384284225911476208168855078548778686303571469443197231274653952806538463644005431072615123408563055427450784991994180369461570872881698175599622341027188965457592726927510156180403671372245277907965359685238935091048298095342646978248314117163634842180005713899303268402195240587288073227515553716879763306374605562807693855988166132369978406656126296724234085306733634791942705137107957221899116594665814839917049752448530106385138288135161573810141524470806719300293061352429561036057199646694446411887143318837479994837022015201633549390101658242505922514000673306994256636264123927893050816461048368334910974876345260285872862551360897964498254295338984072893936422782822669318043259924338459151594904220395435142218139272773326643853406740625166592057409870319681766243383659579072345610394808403775117574646870582255130926420838097145310976708666829652975569311470733625473187898069128146823780404688013479214311587374542004136017362796921184316819325571013106468965908545021854072153601598209725096323664872237031962822239763814074551769337344550828655583498441330642416882875278025656476651889380674500880952674359030615653508650362922473490421794895969345631835316738570569288264073052553900243502664723578907204172670022572815976897869714792010362664176277159951179858518757636892976880605070052560835061406492216010021086874302746456246084756163166681035940396764580863248982310754343426610131601463628992639776527058136407473786399200099445634750396973957198188162132308284028140996893920244147358987095365684085223822997714653524654865212054826380761006622309550597976324064836706553248521947452386776475400332883288322976384216667186452131463329204806086266173630324560042888850107136782651624280528290048808379655066518948330018926132427083467695758830857148056067755924700541911024225983519615219790730032805213579987125046246690335335850787062058177779456389770434596349923031121877120507291829626149039601243375035035537103762600926324793255311274137573621735756802250034462579052156525068580382933189324493979555593687598841531228002134943995729213542863143690926379495498844400521726428604907663523273022433944895987365203730884087056663117607555045950066395109032077023505307214552787013118855299508132821098278276052737597712554639518646624751612161244990406804164473447803941889266161589723764938271662180345850097931947756008540853135631643132693168897328103870077460405085058786250929665198293004391214854533670533700666168340081810795109935420597622403528040621535104081205964234759460142599390533822775016409545800614352017698451082355792690396054862851992478615178693117553015353627957620621124861420822311188601410352866729102358329996037616833729000637513316534781054509078852997874377797675408975054829785221235409838364676082672364342373531374953465402160797755516914271344543244823512860532630669911433126524057995370655479473660245132993891238526312033805936935154050920852774359227213135909815529892249742761942443098829822327701264223075142173379547489080011346922954274478347942397508068785343946610656964668831900882843973467643782065353811415538221479558679999137650095454892680732226079831754441932462932162364858381845202619259620444259066099651850655199977454361181731531682156981435361896212000847784258923720540818041258981175178463344424139586389627168266757846748963851293022161908257233382671181205737545133656077186245826937414571508992601404849064140999015706644552795499213378429932335760521080878349590500968255747232766533000218171102464762600830075602624841422978170952498124737958100539088890165987518298599969456501273346469965339846933223745492527303872238670823945097612349844705411167587877556496324862872496379982197797138429184859276220727257520300911118825210115219381400900404319933490161332018459930683298561749291291892438963571749962425925953767342268480251678010864783679057454440305293300929709555575644961145131548357299511375566969046267075678378555116916949521246381834295072526922319468832709908378448480096657841747684847943084554756944127279148099936270241502950789532694293623916579955179241033284674819536935192233562697327583604596993313763384596685895960032531850441235790289192559952167690871702510062391273149986851637944122925394529617104801473342705741587003846701096910557788809523331676719886552608021741535020940518840858023533827557431743017619723838774434667785367545910462386333080280637131200885287466287719194062150718871131392659800109879943386617767681246062546710810819900416888578881979648388746841644307090403355319051347930552878396597466695006507538987350278331966466665314295586352011323730179145206631593310545624448970685874475952242962423576614866566185788702375232891540480799456311071995962620095272141148925256450729430496232303797463317701360401380656493880826113489451613280774178120350918218509556929992498509430776225583094401041104652829008750190306348460276693574025764976576988941026912877054488692021116008442060653751846347552039897058982392059295793148700012515890394783018542157071591314780386176436370508595747798794426594790151020833858528736354113405454657011462617792800122854898242732579737589215775465014239894708921298665336564579632640266782900919260178754928795944978083464256550248464068982142866427016589669285870584989027394847839330962969705237779047072762180438866593912722165472851386571517667877005472232863307249860584955431641546236219716790938158291051391852119352924453587916653353700628733895202602416026409129168538168864486142583717915605506214657315089267403703983773364033746675112537438742164050599831017997690716281875843491808448840223430920164540334902957761563130957997360773269739686400836685807420400823869516465062981756316428851027142635856399522877850655370477716029484224062906413303884791690343097308378929027638201497880969297931311285345614633698211458289337036202455878135285107723522742216108759646720019604279175153490672174092657714230525315991380738738215852803347782845434552861423195937267632519370670640329240049057682813309405065966094637945044167265949961397044569199207658270582853811947200373187194607180479173850276066250919661992734738525165540947122425488948723357659721247223350981753350202319248028239022452845684338264825920466726749957803703028257981836992942159642181595937347736844557262122088135976396951282481008249181611611540109015886741926926167032891035074261674835947216738369954771937390952149565871139472935894916471516273763323658395955487945441895199110795637383822564079016243133882708087748050773924151554407171500098677365343717833525835076225038495268338336229750476727475991487631465288085280764049433420490443104300322367813384331260329458230383441940002280086557697597059965896446159734004398949640801730620489615689845862774050653380969342337830961850407234832506399555120673940302638509483618535311326379193552232501800881788541806058482004590249434414327795660437883081867712117742718277284163209451867665412175551282458835105471270037187457854794815750165781200763450167439966110768834408878790479270469119591797152469607901290785770048793053057162413567106561259264491961437968047887092452416350326619757884371280219523642698384342221557126643895648318304579160156230495725467095962542359641141645659658773495133435790293305144231769718344892032387773235225515081516717319319002195508545899392971565063037116700004731308912300122743268968216839121057353122232951967190194086047454263075761208038828984040921235303094292349908758017323952220325630532502902977862251462971896242170319094551964895651090698360084444068041162898552117401753343838690736618289081597701125815897028940018210114820796220205046345957234405279781010118781296912217068057719033367662655172300551447660729019527364025655949637048003339581386675751677815692089283265515789048761589878657949352141321911400598002320901308066386163676588209232145840324899228221789579009804960799106817843819023244428720020634150154407631012281606798624992230594190809564431604019600293818703382065397339089528108571743608976525699664488875448553759242518821327594211634221327656402938835942120009127776205259570853569773742923070072783008035120535181503871409360195655941251955304056303950570801206037408483630750294804580056926228416504190641432195885634011230254059158609572707535985168615736766417962867217976926957613123955369688246132506912858260054163081331424096354467435760827393552882211107314501140215276833029251790339210816986634414588633641607001756965662540493945820156671969157010504283829788344454245378202258419445871759274601035339476757290165003241414876401322947138547279833965918032859859428289012804032796864200530746773842151110887684956871885668985656728866515790552812186571124228075478766753239228464099090264179739231596058779532316841539793481553102166773324607833484054174276262585146456089760677680832126554627486950878935696267190619716247555486930876355436548899025351364133164698991491450504407349808731816756805764194798759092750466577679764143740253009662531703032247888445705707837044649077202291072370004133020317082331214080030913137289307587004487663700743588496251187565988749526652257353737649213790256832230211731406026345040529731721839281705453071329941561367348008071208586600042988005265485250221669795238560208678731992461356032562299624617890340114308931059471268690522432719990418727351851395587256189134356777976696562115854758841455602030477831413023342819340203654502751367537529607055275546016149653907168905135568637756412985357338930123336491564320093950501818533641679493996419599986764156160725973230454862373125135768701875449256706973436949431220715595567045396394802927117657560961258702688895108102115554966309755276260597589617036708074027603729233848466575839952771336394060965523020281643794081149037966748046279721581119079419243151653869144421456059267820509605723013093443881019881923479280289222273184118655522024496869987106948942205782355751737612383362244748307610271471532574611795632060805232716997151883975052001085737829788432765524250468343229787951736156694501061662622382903083749322333665334668008237099974490224829532711854727649470050503123921157695670937385560239881740236191250924641613098675094546843066434599777501521181667017724071059884409645751227010637066936533296311535631553355639952937107257574504914578476000476451899974499998164583110478932463320854571536063339209067384860334154366097370462908725230577631001725702296192158653647769591088253384948932928916288309775651878736972678018298022976723896403846498627691985401055361535561062592329646444022186844868283329178183992143473780891604244957294669720779331866334581287328458440953809949169600912064623044424105438275873250910389674946857418483301511179973662089688616247808899368406994106731132564128968516987552807624828531361337829926580147155565445405084285404662732083552157674319415803047295254387908281995692414190231276475762529676436598979033744547270890513825376014358066302392875594190926194819606881803234152956767420251767105598649450493471216862456894348381509194229095942598975600013027177343177069108806697624455946480604272168753835757747261469652290705957665724308173107113598519462085484650394906703458391087961001785531186797918980691864077482951308206038091197400500586475959138930652401461815083462222637748277134926393406933214129256783724984235466890025569866230469069052809515180368111516275931699484916229176402073472147272293903934579364147454477485377522608154758870101352441642762254943241903861586064206577713024016061153032559186592385169335540304536581213071918866427697224935871224734584519629254422034327360635256126157442328889997620454065794695644680227103708394237528492494638686592571509867227071183698308647131443147024369313675711184537343500817359236557663887981544950866918260319858825387710939715959004828259478386058556866426943772547844670654018353954159878702299741207833816260929072412990123270005301178991457687267789130093802752851929797441572430582066719889844439117952769683648736494094328650002143333273276653874706996785599501942916142090439978565274578995835682840975955879849266951092086505604630475568611438309789149505766807464521999539051720276634443263741150241770303278835592049298424348229944627383383213542830359614883563291967378008727356640272353695557191219523433854092058662812352890245077687786896836055848469015310209906925445148683502536973466805702800888937942001705155443777962571601210449001548697862721429988840925625789499598661368323245242419587364505741489444320111504280516071958496158306363798282176259202482937401935183281593889648903191747554821429232550600614866016288659484010565630381367741173687113305749930201016748855906206829659449009897562176086354374016755186483579673246798073430080450906133630776232688703424881822340414511180924482217961581963442411885206101770712684384418557675170419786573222376879086934813551730606514469003843352975788323150505323434706603028010317186424383977230968170169122655211455218041970986296015718136733300063887173754434490137615074003207403727438099665995373099404465449978161715809042225260263996500370763273649225025861583583374076643474299801769838562737521060408945338379959099671919268544608016142341576688658679655904395575138827838327254995261398464331026221135751178738090866011690782322055202735554398771007559232864607364810017460721907203315040564260952635233997988793973582179860418219454435324470149128554629875095379232441202879015331600709856065448703961716173378025339121274904249647301764786389500111367517723765696605472641865984963255996465910492423838667964269014399893562512340866532945289652614938255637185534737558500520734594676422352653348537131812692767162764032832039485464778993986703704412739530114675459387741706758291913455930720085641933937216942792297044287866033488863103327268435041449035339259763354840580109410676442340512692383574106999605312035959807822804616452036000407709546906820762921311334494693108012502486947580105165751709515732505963763630180750315520458218904012346502159180557276650311050948099854129634985532750880111514378690780688351356853359384360015252714347406691229644944192319051790461219754262539890655409085788423479536296104316175787416901506544985404784497510745074225462660922599485752046350326091305773023753807377221140742078270216215494039051324543912096458525409832671156894544131739928483156384350977616299714177969914904991118318953711439428571307511814413249282106439236012100215123645907059435915157812933986788007277145156106305400594690253156163593916797567680285839608284377689017407244813452270788255491847010450346064486323413262653343162473886214361933134788852617642282061540674466150037990330417739419364187169323988925732615748494472692733056589542127526436413607299802765940262080663332985695841201096091344266861569599405763967844587819810311696275575614094929105174254306170254339035580344954689462858035142488935179285655604437662915018367874558450826271224110192367599945364229852950005295542282760351783641275648623413712176215749914055388950061699456230089733259134566449176144958901680801377175532282598656634981471616300962852565256294417300867500024564349763060221688827149674271295561282429083220615169181938612996828694556648550397891788012889393928147163246425161493798813202175027458886036608098762596840804932203320395633708475763103698627837424416545865954722705059171758470798660309889742066020918131753921474219889948359573134438618963627150066434384208693765417615523577784295729435998003787332272336846090359804538287262938710183919090207507579811131889280528464024546875728943371731305240283855801512880497205292381920177160800191583618982829531279437233738713584717207928339510802424907035666499392408467013940807803267687353981351978938684584149456519877783445089030020966730740890717500221642303844190751468251827636271492518342911674381628176475644543358007796810890876137185298377549969816999136541288592599034292945600681007478499920411590906733716764510909651885846295841919105677288475092792528698809305259226858270974011893602219970323855659623025282878361040884884083158627581305622434124439573620615422549425517977720916033648660608072330489828722646650711374445627455077588421802883433179289041783328096423781033645902384670637351312459176910755818812347130266687504490435694637575429774598928254223282794590014884958379361720877970424489873046002721345251523454688062580156571634098291070486109267554696344384412786439533353452995162793969585506553274636907167630882095535818571818182873790097755210023760911001399551009158323233409548221615890272437365143417967905964079256032654506653985735541758649549205203142729315310548138226488630985352602304995624216813882252219852578939213211231412932006569215917447017937919830439051579171448066098751995738259994507970760512789233817853628049320155645077115186499961863356700861569319614780836851396604495452362444220403559193733487521870403750644701341214655304715403605034095733795896767234002789769054951524142643985989709663062002125607280645380574697050921398069055356687689797305072755157881297782823199290973859773798248749350264559218982434785533258502794858007137240599336208797604031775073387425472084269426920630270849003096360815146573464078930764891160599190794622948348612894569731510175889558745830401805520729571718209967050975599272938522193765315750199261942668503493941236937864669550354896258682984908397498410110457377976592761630372241007483957390852301337574351176200281126226031881901702370513553075936234315239452332761008843740427116138036370193520514113953634988174634712718223965603156023940334017240062749828248535083570670635192240202373161325251370442101905853334236254690019430345118307022391000756311766390250397232661364746583566720797766630667888068363870761600345127591340703918769612208556796828039878812807343718181974438480037156162376877511970974528848392451995200598495539045837500234148852606637446934678561136553675379719049723931699445448888451082629502954385648853650867406024006979438331434072880545120662760550182513946384978651298523120531268368006935829688893359545146225815905537831147356186852506786782837150246103828601189088172447441906136794904735740526962653760900297555456454874444547331945163374812586927206267574284634969841505930641329245546344026364576510882615358947948249940439065412572390252979154969550641194434763600239706324311529981159448378948400582930362046060502688276596241949052283948200395009879730101827664797096596327017459905760019172710978318180919499415235989765735929661365307162549592882481030866225825934209240571921455799243806538953601392433255770320175813368295629443789777188756343957684331108607061421007270525571717509958825910414347046088659984272460849193957631308399367740509724924437548319798434194605263155803421515593797362002001652533865914724537749758919682781534682495667233034834465927224290862422415800265395138370317875246622961951419761521618893423594054527413166668052949296994857512828060224951204968405974885863501103564838565356956369562216867440364989171546173119539168296745758834807300066652707542445519779596210672312458618682223715949324347177431711021233291771795648430897237625200598674683408997950555407667218307614258312803763848380679527809296433271257379904693120490354200716383112787541193274361388115215062758512536530654640797203627983836298319227803627925379520581929195576675339463926295453384500997869426423763494053602236519400699080234264774464876248365414073416557209540784628016126403967300111723762695219202420863014035488386551252402487379499705140520902321199554754328364571743567321681212295430182911404918724265636366264455733472105711982363053883751376541655937280297392252602884234434353809310727925417084185450335543880679259977306656522034834074271567176980637908406090956130518726872983146187605583883965263522577668073514822950824327417595563739088861823964738860624630528949839890545431874978507740260604958420357829490015282694342926811802466640219578405035089764714141768857940906775451797098221066954076417375585095303303731324318516248988773818754760440748643967438773242774727875344070733329917336823565566513162872626193703027517699553332611301361827087886372564302696195722689232414596482738810332978517602135168091325167362407892845955363985275539263029022444153989113592906182090914486774217955197757768871008579246186521746822585235329845945676218499997104136911809531240435182107929211975402997195454238361808174758433273173679446492707114120644297455868766408210467418981003217588050835373647741475444558670978819197720332706959921872640538871768449365701755466059495117213972409176959235622199543826714286600226363048994528660078975846875068804870801526435820076492326369048011355414294844357756989954981979458871520199425812015341185816048136301971390225863833650358828030517018004735230567426478995746163011692801616333097836130105075341750707876029451107291182648000067077755798531904551781210252376357618472958713764195496439336506886736209357231892209193882049288745756403701411347694431369130530431926359253131458470284678770177747793093320192012887111864232849342545764383041695110293531925511493520285200896465460307859605731159159381093257318403959084366411805343887466992101129141518742601767301793629988586198192244052189550501931316035452435139516718554845739483829885104505528170245822156747806623291229732376347146224336241811416859837264098350327282970300567201482312767855418695601729541758322550963424933184260926779899198614804216819379097326190816225072400285232453706897078337003894459759441332851620345570375879446721564621736114714425905195122765675036906607934803602880937523247341491604423813573690770569163972852696672878729126892952243838515992519697693744223930252044185216161024289908412595520189822449439587570687722850546725068639006903244912016488628675069569828146914662833820010871571240259466963714181441171464227861289550542332336059096793509397199203024387261260383899068927174642731395306299092729871500488906699775450136105613274843880815501260922134356555802132636010902751813185181612760513684207375595490283568395614542707768254080670044772910856665419067088823369125721361324365974992744155337779399797347723081648808960671448110911072948402288922905332302006644969527639401212800345044702031916175053775613264126168691275535222725630478498346046634686347133239936579762945396214913220204065521466778540576365116852841993494442504192666710048417372460591695799923014584824999046526810840458182238477495229682363634058484879203888439196204848710085239281951479312008725968222305552623257241111891048450829649002726820606965802960772562595296706896002235799895328767596432242306339778219472754223383451171324890034063573989962015784221852389628923990421916475443032848294340891482919110908704221425504511310037043233834201622323614586167570376467192276425003302515632050605467073528718913984359990228383449459322972297690438051432880516742464570011811795389311781662323079395568472267316917760074251213210065427991938065277153842433349800053290133216816600088550567711608876301176543979383637351953824237085078319037432783184086461444073971285642925436875066569147331919477335350670444272051661683328709037698187809894430100191137688607864537263731977698117553130566913152172899259954451824330138342620020377140207697340506805186271611523102486243001182055936805119227383039951109545206137662870392172280508427035897887482822540267359461350787303572740659326329455480519366903334047374959225124039784939445207905060038095407217408274469453538677745024598375648651333223328854340530896269511959276452780300423968118276682650613892977108531284969742958871018589145669632101973099256518709537866650747954667234390749167935123370109970432019476273891831391092392756516223341076153326467919150822086990682448203504757372960645275062576703745569116879894329343565278375837620927841616378384314581491757858537199611197211472640380466115208604707121803171964929116382578081019235551576023045888424965843469261192840399493502651496212456252123165702236069153115898755087708212814168434266816121826645764601320937976027665697602667130117071371082791184319859117285410660885747164791726684927343429261964804478830002407621139646878481750014982574935023629512737254081943849218736335687669121795114092759681717359512870922472436382468703025898504420118039539344782972919445079685928161338570634798497775870329130162350969711311553485546703495976399055593270528873267367952105261001699695133814874617823676170977728957773423651300976215252690996321120573493186666769911397442694604331727798010527898244393317128817976589207256873672311408960680767854914775043042684333725543601683051559102979410965749105587235104047921879339835874430833797864946949979874661155865622336118134291706316600161440205095401294002339836873903604216214899597225369921092619138342479645903849725944861815103593992550462736208055926649686593486729506528486351698472752750020644607853242970262969278755663746664229017691733102874403119383026752227081398387636118509488365402076581597581450411173338973928274769225773495904832073816079042919089333669562333269403627703496928699266673594169373040137532594242487381347327143653073495401049065389564278591684586026987591413047447170375303731633579749758350289753936871956169137099094592453456237950315608957238035902185121933346397400574506782553038394530683980256089594950318708295245756304154093207565339814111351605055104655425025357773105521089352131053745818447395141460585716844839079012090777710273614587372238513188028078808547670914829335143212947547891244461694395099121965836333792526553610910811379926190666619722197217762874621581277213760846543900060254515842533923346241614879866919600349633140754935517770593041511819395690498188779063774642799615159566789776518886541625226726276391039282920918120439007711106513594773600644052869770712683119515845583504095257066075357123238613940925323836565894867667264181253052400672836401985657295014737617085144930851938721206334277657964854681416510919610397433961285991059150008802340557061700014274388795518841701887646855414057625526765140363021945611278347477677786984725592045913276048797508218114558974893656355974102225447057962385082232136242150142066612314354684702467658312568202800367641582520466812981634389876313409754131512695739317160453652376672926414612578686625479301013562022300017018148050591731407893901517733992824112081625936315882411749757782976021654239013772845528127062660516437769616258517516568764123512674919034821033007712694653487016367257887690593983320606914513568876687962625520885505704776385738959220204914835301715971144727145240752022317284621756440213871205534179526022036214182203887070962711340472355798435448325301283327162625652337136756402339590166719662381981586754536874314915011913819134344059094886494684367500962320209676824001772520495368317459285131775507337112893301887563649594017433105865107217721819520480804698641053965297156557601126498413977729539501118294637436418767633930873667866179842403590850248264247790060970542381599370467423980847577494560565358751493527561232849262734502960818980705471412348830501070657112595252136943097246236615870096857165630696445103815116823377548710221277791037260455773006186534330316214909918866711905674389386572595826317115718736265601132819122042142585400900426951194895273016806042772123333357440942737794739288104488649624818095274390879460979933787908163817204799771906099531064449494699309350662205039912277524999821358443233136018716780361696374433847370160572616232608934257465011906956564603183837628976067112518275831812655387234372747421604141612295780404395819824700149694726115068613333708790728528296354604875604482059839793190800007325965412837274878754321979407447596969046686215625578309120804216887586797160776841110441650533541181986684554702119724075664895870894595878153730038081209897224002376206809909086577492296063780561848985880299003654098656864456856902866842948870086371888408294894676213042948912545132528832095124714409689233743185242278165196677587098737089298373766610058738637397590864461128057861040696329294646356334365563246875395186791081410759942037518147521510040877288787787834398460554214522502789705069904883465220026019417529798091348282824871395018482655083122579850653878216990910794599086280421808789776449916593816180519146299395994681975294131775774462403705504816035158997816824508507561670072368557121716169984010609514414025461004490778579916188991254305353736268439207992901979253004150459451347603101501453193132111544963577782164811807586381148302678985498062086839855309381970434152321684153886237834002964809591251461978372957594614995207232846644436762201293607760431903961697252122673398988669373328011937756633168834430274256219166562000208269453519050179061951372499805784701040661742628146670228707858639498937997394365962482219640239440209657484235717404270644343092097949018749341930245500605688717303716338011247643107336100755845887881921347726004365829275680997467871876672173113649913655974894023477867085159196507426129173426119709522556465404266509112919031505080541991167139469469186878559975820324260069295721210638113757714478682617708431267486783489195055366993586369114680754391652920887553620827816880459118062580746578906478753932126715662982931074961520607532444359312363760386110265055979336920322090674382720340658001862554734487449747710369236525957019827435482310976304176501597805085530434775698169483230311597092458661715699802121222444007250146590237926963432373623258125147413187701565684720465527256518398779158183851667445283837841028150964565646960754487158470592355537789087824455949058572108453237107350880563822858933702592198950080521984698857502162727005928274028937534291233457522423055380215454911677067122391462237015314337499027029577113905411718756835535152644753130547548243614009929563749980981717215301660149342905154888792712235413498083297928235551327572656540272663247414701139010118723677798732917147343600670179352531729394799891247801553733043780939246396144061993750586014266616576188280860686253534098947149709014623246292696816264295080454448663259697509970799036228874405692151708480787413292002859040516223696246982198735301612416787112536763945267662092663226705504495127501520872570917402696947637970524077058932382161634985684078307158318702111970397098903619885196921186416041871098922262688551947093583678971415742555063217425338448693126473793547334009842324736013702318835929104999880761827646699751711872305745051665791344920842921409807463372944508344869685516779114853721545014728169610085862540293380043129459245270729281939498478151382144988495160628841661795479146087066481571366031289474956783958489676441725755943999532417078564588402114663997912914498777527421484017773528735324292742695031549902337565822808418043975247854067864710418486979906541190687673299223662808045545190758064042755185642872130044952098058287642762412252703443031825354193977091847968121600300075545651154201220249681336522950578875502504449355239069966425426262580629820544576721248444120734789747286549550680519064555636581107953777250046554356207889230892830622266473932105604500584590677037890413519996430933093284118656848418872676859391823216247150639789579037569262725563241514746416031589885728152287303984616563123240677202035747216405381004313151724459067429763426176649625951906872074630110965607638276304442055246486115854262401029084237867640908662666234656350752302913231227428668670043668145099734380361918221338310502117512994837584151087686883748420310867096001261765142147892618098640367660106299721519247371303402604793934072090101084357382698581415608908109875373090542841535234351350243091817094154298783295080834285092070029589565614401772528412408000777171482894833851725422671947395010098830668081905004628874410572490279235691966553909993485808202249363273532935635888089120626670579260315963025585795267794756697013765684328752432242970058000219733223236834297493881120165429731671878087389906299721453742311632063620755190326953055341565677750977026872814633264871258800856498233411691245058668921586830060781257920038555954946429273992315615084245676765491578052909482306404619318858240767143241621014917469826539979080673922771014452965754383564401892317147769847210911272393971431794986918047626759753671339192467483622872583406412125288070423997430602715057428795487466115217983457430850708741575277856353162823581876229997114446023382428096346612653664658031539544802053201238242981011592837688233513113179819572699933516704385118266589742890926293809464608812490162837146360805774840755741183095688322751772612657194729890715738840215876611844921136558377676787877476102847502199591734528868827799551615837110086580778274866596276457333969529103301479856529624507954428160167805885880631199776101685490632184315766941567826819677094528769342658416651788159748057949704836044282100785601430796670873701117491431691854609965667760054309067864770807407762545955630273771629162983955363003809561223421517525274829964032538202833280286800573160148088021831192654794255448301918332536446358577414318569510102539182071995730822196236759119275308543264421230220965880955953423203952440923360068503618695153442438891949483125807324527672983648413058900919056673832103158046899370910595555285812930030061591218686773864574716329160205251532076374813337335845909440109116886163498753454665982398238092631802731921793672092595262397349288376364666630384086487803912322462341628643524616638113478135993584524821976972593999742021901865164453558147135747086406642321453442633728090948025561887789346034981060175461391333477635739048644244195083558743390287095836148512257935069774485455378413919673105291761457514671450904648087916220196130934033824747445052381742099375786693188833679455734820648023623773907108447786270719693759998214701821756957534755750769723640749083100856535318364487385684461667734080529607250792676843394006786785493783936594485990819438787581402620199209916631772347383914990752953083949110635284018600866308502474088540594556296319239180716131323156556100311582836438294146178351764956051379407798658711277410481458102568511645199073516266404614700582334733121282371769617196881197791638178940260992442286407950077608866541909032687003381948854470545047026959394418997160079445208161877071509369868694237332209185828639490535284340734033535764648504529846991849611786816498030363484818794228410032649287678316926420761754016368537435556033149492360802575739429158398734397417477165005433338202549694712641549748252782514185607913657604832898497346441183505617760049065384182191419756810448280885037059619967226566552104286229204483609660129704008254981436199959402078806133165011961243581735068803767730534892139292858803706552969661684480269889725577103021815860314412161030180187771360268332428556994609920557707128988056569455929927567950649406012492142490576970339539064226306216382195377209164131925176784642130173261124026698717295549101375966668472757733051665860319117417731990552364081221438462904270990580692379721519601398841837056354465663887678062838441688904037412635475950764647740762369710360749634480737302195282886869128285824426777812216334033900090901393269379671671744771813479148228889644021475980950938140672592294345941027412484210896259370975321685887306678892399649015970860584919062616126074032012900914642109067770851575804212112197507046996145288002424109237419890329117746766622062372481592404200472085254176837285904116467851422978119588496752096700536711634306699196942941948653858744287742812715796659907337848817820776619899032165135134456053334092459996800910054895407244005517902182764160989253154063997900430262684124171499624569716470860652356741024872628651494805480089845217997823171730493217069535611311873280847076410591493900526195844407525740749888347865657170932984248046340674608999039041712194006026804976640158385282391787348983565547092880124978171645049999338060554810391878324501262959373986089403689621218125696231228064998175056394775267549165573722359390850489455319291683065328006721310777784611207544407930038391974025967013685445610777650110755361534245707601887813955076755746524885675303048825077241722047985303580543299274939476846425901705232709021227710423517229341246746778230733017162842651460786773358531122660392815246356026882321080504815812711967800051644597260559008995738253606742463202129842675931954074967253145686303731272444929834849809407703363438381771232463162973330335345861292222677871663647496495616265509947361743025658766881480874691075146916943288888028382262823876152624507069771852590856906998481247730355562160591173015550431248803609178692994626177469636497336692795298669911776465926934873968259546626317742334453470695563971611743938865966391331667402592903201774972069636009349285745153301103606018929848475281563113275865829124395472432356215324175082556759197914517752180401845022019102344464424320948937941785509151091991385827149767442875949025032382222663261374959388468896485895543549072017853249890291845836611061110079729201600885105493339438157484085397855041141824946381682818076572912089137804117865099428811110297812715750599632180389767384522499385806192024100772531921366045493939141375906472561568828241291555042548062032191080538180728002811292936146306336925423673904761804892005873109959379706409282261103744979692174221341873240179230180025283816703211283618656968803955184709853586904842392725314904081700410279285730931584434732054560669961311558344321472633126196099621278037958666188566091592564218011071383053582014471319771603351120209199320663188908273345696413651620413807351011457541692494759024042697892538896638170764417707997308704071697628359546329235035642186174080259120870298374659293409024795316379897295450113628065556744467608682489635361835360545637506701847685780455089284785278004806479099683746725960652899191761699277940710066234306090339964871775766029842825920530592239162066193825401642438489687397194406101490357621377107155510529512822346698400600254563161002933851876357593225577176144691740282976190236348559865870384593931569968367301038170467137687664105026767527565158618747445838959768639562546934693027527666754212992187899461787440807726445930939999545562500407134918009723773942200046795209837104571383964246664301146656134887565983160993884035209579390650004477281140911328444711318598024037175320245426205344227229216362229250612602353065887679126177703372040306790015017043455065991786561501453345050828848571793007103343579216968220429885063822393359668789403045358918665386032145841494424044150601332219576767569173768787832628820103201342457856057508970621876041910339943258770938608517041178745355262961945353620942903605261171907975426450063464877939496144220447298437320129849740292145920929623972282464680340214847649632433126162115335337763793935876338410350559376972075238660982123712275498350853808635664130962131113089875300508333584220149495577920265168760303956134648758834722436366097999614788719202219107250787276675630189605598157592958129021119592422259416026784541845067836382827223304491036412270289450463055114542471464875179689744341238865502140615770575089557662883847592345975399254740588992397096490846928706388192747326429016854082369814151185518947978084357617934571925977338382133120451516096882114616813070670336264139877659848941743850147915532326268336424462440963045210583886235393304469732342324311618248835189419571297822346904800640244202304015791494554082081115581974316269536339468994967939343034819933122301453555191489360230186150514624639843153649582375666581567648438805521747360373348785437125233867341961017330393371850782994458339496433955058393488678196377395406597591442593416777772893497198467306365561597111392100077071981889213729769289662597002820247374386853036348694398842565124959369312756549883734233313431542851012154526064802655333116645238400833517582922744126156919052076969475246258906408358210475997957340159404860299271770603988831719632163321683617412421387159174419829267791462180921579388803430559341344759477911335997983857727081841852488634381786924332489874215659561537698593758752870053317842685265918878306667929792548707187622515879699513978066004422537177463307427676470375752780004335687360951489188876206068301387195335134938366008606828588310807711935306915322716743949061347982989523060829663237899232019942690093680408173040616860695842942774503678887707584019319953639282409115675785326948118918117730375076680763086001379767438314432542182936170169772813744689582987000973317163968483227904513880613980483109195200504420449526030312620122250026840864650687841621923735120045655789265683377681754380706184654458423148788715598097122547994757836326496929042963543406385875835026522524878718235165037775217499990909342292520530006848841935349411958684348719291842127670065164733291622817863944243682628824005410601204912024012458038879494150974558775620803954356831999311562116277981976092079123374544517988990583906118470159107051182796156451892748303517775616673982401000610612203420231372087427698448839962481489374242938106725128144172855808590924261997085459670554294068769979317322958853912217053802811037329714487714956588503215880327945915393436591245828829597456389467375842030446995907698750727510975103233857213859856491522164525454560898936988980408982980300878432098834052703025082625226854637574761469423878678761051101888920692510837548571026152835531594948570994118752893803692408187609246237032332127997664422847649128457225658730011734852920055999631489457765086898212797895126930265896661379355114892469350362196620033877989225499710119001684408916491970874866999826096299687914636389182950494487392730514059993354702408282099405176850559133085576350575137201804148824735278788773197702129855969474584171447639176240869084637974560116797179128168727505024077370309582458782126557434167729274325425361519287884858370531371756663386171841096747172315932716807118143004818052691202066590976636057733411156825279294688522113191213618361658863685604807305747253723637582200814604285483903792242369385959097962440746254905001152260108154830732259667820719516618965457288256285123637838923372179615956515028207906615358519484184895317721122708150229650830097735097020786053464837670908702981498368127445510107986198173601292924947597334546721320753569264289453880902374437091295435447966247889829881079885541889406604426036805671390468137661911256226001147478448665649123349120937781713977593628134619945033234700149372713976365912248064402015437131099094204265467209257938130832309056138326541364100611099406159003104767345749455686183099521696636763975297087491304516932894178951306607047235895520741685364253524415603349862708433335614086576613039249159844759928412799127083374147956517962041022600357414298474260216430487594373711850280491771507736230584376879491157249647882473860860745610705753673515001691792251749208254192983283369241286283500106717973945092684597922667867488641420158515210459462516528247045730422085335870077964783552875842696566276244491761547450372141903325798615897745351550820674944319010576140618341195716057749718916221381937649179331170519888269481536093487613905014615934202912971823914478070063312699982294043092479651669910057050351683490201465460434500567642872771849961916517658519988927062354942795055013895664136597937683764033114058613740639045382100798779482559950788356996482179238642106117874593040008998282178046314427690542269137571779187091404284961109601382687703480983357794208786238816628631357226687368575640161709141755088823337520692659884080139410875413049758708421638413247031515808437010729092783082452412276620906674602684525292990011877773950286582234771488041798598402856639870645558357217405533736802694204784290245777872072218243091536915946308780030527257876506001666709304666705922120378375521822999941536802282102602228829489748920924421770142612826945814020967605823221317536831897222541854248201102843682328243435099750944124564880082808870520675441675016978031891988563551804312562895871814520704300388672208703516148945130261328175345016099238948381657299478462039486574967732914185267207887817049657461954628927053017639130127740796677179483935497027829795473692142899958951629534978805641257770382742417914382350346526521299974960761237815914030850727825584122143319117795045608898297496976604869912892582708688476662424444032762156901368785417322066896295509978124836178603089603560957782835454801671819158726369265573683718641132992321634112518207716922438112886506451464514292523595168204506334908796344796641980415095486334548633638066804454332184811424940784833710988222311551618833860065162337408028490874860502964747328345496788399691902747108479871595929211677721225503581419280770766650585974919322225389680113926704613112018788698890525572489067148424510943367786622084384522626093759674665688755629711188738627581488233657536063190522503174695669928742183944153989721065671691427419153041562643997115230656083274869985600174484077947064904749757117074924839210474814542236671367020104521558339778553140241761507994041145033515617949550105994365378939103950770308981964853739788796919482554570708811037211797603679796270184864458964084768775390620008370389180113368864165135967319260417535685991256763537439766459124298944348129416543876503335853925297141917653538912545428069483322869546278654777275241490947189564553819599913852584956178467554392133540761239859891767339575864069769028607554564051682647592208031811303130320396166613315623501002158084555428826361577519605917738361898023925242602447147074056524266357379270990334842518978431053047810189182355484247021115545242232006752139114221360835378917478468519609746027746003973460254672519987580056032937398055692026670620830605982113303830550726421874939398372471795690707542470173696921130566782943398975196054502394726279090592497218243595036751249880030469679836495227434404455602354176945131552867235473860568710113420860217564991261541899361421379262703829233421079452533023949348501651382624487129222686385275610041847717894973643254219164720636109701778267008678325688644920774732738035774654720128054497266991963825293600026962145318214198897230912534054607890648223644953440113110969647478751270809091592371308431270424200741851020234615606375154902624391744838803446241920106654734032872181095794886464335333113026989996976040881739126517629429996219971138729845154949233052690623296206469805791486725324239308085767524692172993503640464373135884547672771806763636144927641216667728725306412632706520958303650373337728635271146086841784219308789637304291474249138056629110552424812015090506964271574001454672885584823434184494022592092311129349587462993381081239640699260868150916218752004780003868196591615337836058481604957579386281466259189344692770592815573138670186533674574593823815528333290307569633869207243990432509984211712527718524838856293187129485052079626638605569097074296489480841043369482076512581334160272682643091393661059684432756521570704861828551997076589029813856870278297213347709066332556424636534215149071410975167110103899282521002822766145840056867629235470421007921848165993683073457153147096234164847313439280970034297958782007913542424385358934443116233585559914041090312901314520891179674680087768469818628960442226408271933355581887260164642406437845673825337739949247627636050418026618677118078397804574360322052334245125686612803920060454360293634282779662176226772597473728377288136877721703066404207894172561674954779096769622072323976923890903172423048069558396974732639575722774477171692747273495819074381510656500138780681366745643894906673603093364588831351198980105982436271798787274926201798725604125224558214328109087962537280566482127897485863599844840112542224266119374658159107859640965282755837035226302352628160630127715079982951110629498812830801148256672392932611901678974774191465633707989713777200773409284908632655949742552828224042406364492265545254441634684905760179824500610121438353595019530255491262006646881210086201036979407546480481423258207782496154901484964335767677009650618226704718810565914107907782844511486123817607396134758979538709269554198049674462260203712003329692722987236182650620233954797741861598277640592822299810837036843872271305389694705751466655546018046892605108717951587365111435156222515366054222357343657102128112550483431666903442736168366114917623875570242713957504540547666834200809606264857752295609524428617740599127375000712000851221470559066657737796673523515011960957640190814285177852921724557654643967343588564820284559667333866127963528872969212001394823750894783215918916516381728226342005480883488944482345318788512149800392949152563332728694482656146025072445292389206318631694818545010044189780788964681160677543139247236308645121245546703355664932613111451909109582714941871402139962561367297659291650316778097256107270574985709148115972919430854408748214672251548497878086833801690774677478163558770699482906693588862808126776943646537370599133579120405904735372768665444418138703131877977489260037740090448163261359228910159887431429754981549448751967382457605360850228091741464744546108372486711561736796128044271665092890233306947213555787317629500280629118020039271280096444441197745495063540694075319270096063673638237033582683106641433714575157091603815399120845406636707966866453937268562905097541238684757990055483822608321532208526853115952906928788934291132025235475384827585814298768909216144305769350538757468637024975490764916823159961017311453189494797023203633296926609248423431520607607967580260113091012481069717566302560614484936806503850829736873664789466043679075884091711767437787609324103905749138556194433882926141241584518268411488496717730246471608182455352598097999137897574087280690662846254223107340473047483086890819323622290896439489945005121736794210953904871106872639579159383185485273101037800874730198466253389383049577183063043741865156660733990208458358067303932132810073987646926691691154542830710228860026423132678315627846713436323088535873566916217359933489044062508384785343537040774144664746862201948141195058997988851486471435936007201380089387639561944916622903519038318174769785480033804811885292743686634165295251118511944415896863449261714882521014236781034067175519568992465152905284014583653137442780292273992747575670827023676170415144563422121032936911542041676491606903767041935357725162836477717106673968668471125617803019763653593562228461748250106156481459964504074024347198664357156564994245909676276716818510369217586476587331066590612891812153858971887324077150553889530568563592085920947246640222934946701531940206826739874357891389111905627108662807896280253596264656315080476338407134641409453136510641028282141624079175160241854840355905235809079096973572357708809396526195619326822450170908379131165318318116433794698346948276314271095267518734147907055439865525507250594869932916221404327732900420484265663012202988165062812431049448664762240825519942818458732384353164510768192306661595060770801051668032858521906244388632604266191761669247921060689962328612242818861007665722726720462632230979826229166399630380407773044421939791838423480702343302673940528355067879315267113186315714045061020007535858767959635706968971035550886844637052916316252803800698464861279499786675513970978731552235204238022397698450604247170378926136091672226574398317271489739351574389756913603699633408141683708986928269784280162483171722297619519141166605367238699170926733565411693538074251119383455064400722459320496655736422137569960753646285442333600807613353125163120649728899908385384357365706234259965913872496714255369362332806812506423122328856211705808094437894651933361395180688093184121572798156417810797104324121033102607472899618465612404397741906125270647498961544194078605559743067990229883850321560354379950857383411152048079118237350976358945202975846116361450825495668206644893129037831602198261229373134193500916271699475672229669975690611885014502579410391005719903252484821230653476177542898037510483020884635958280085944406505375077674965478630935980199837382909705034779499304726889086817147887438804678986359748212200652972653093551273355067201423278908485559539659595860855270973514004103346845037815662874907740930198207942753946602253420199417169369462837329178980532369957947685072913789729313625942458010758946808087834449312898317833106306108248067376663246779860383556220274943763898185842936509161334391544261973211264624081728331271141337985065729288540923172582084126775532919801247743678123643709606691093736652521620874156876549916855501410229285704442748416695692320478537497353580605014186814613166416456845132555831807253921188109110473090894724578717090959162545986950432683210601150968912014388835371516758015717852049169698252519963301318429656122352982560042067436898793530223017279936823348371952470638360379760952511349977518365536935758575529095765556385116848189301131158508912827358478700274624484112527148993567271604169632899286136429466292338996870924106641564534464108244134089418959744678734604690091111382277819862889511245782182873981193387996097316266024321395660943747223532888185469197041625066326523256835204911668796687630190486496866929458078635992162008168744962965582083633533777284507504958023140138986772226581243337519092111944973726954168368244094070461878039968162462701574583591336308725018907413713228625265720899433564057089740906673616055793389027214308039812345833536046640132272627679803348825188651651087261599819446499979868927382581967700199199521033979441456636669044359340279699728540493043171385821519042742987046299246130415554815482409527895869706247953131410174632589393061252611245121115001028659777023766579188838253410252605551019215933467245712441963617284495130079762614421209484941252466373877142013748390216313483719821366936565408735171378620190594405217960534620613100771389205075768931934071376825641638157724052387071991428516155436288377124871280832170283821155675424067958264751210673046645837677217576391678214316317550650477909525506013887126811181802684776897113039667880267414171090872605906057735346802893207786509162083159481414957298551132744717318042406194866670627356542685602204362562906987947110952726974639651324580781559456236820649353652293749205280163460047870274570993458457061675526110339791699567886159499282476541035371794386839537703115247415941876562569110919605119776478154333841954213900205388322522089735527851432084504091380787670175127727317965720159613080091180970995369803022776085328176270522629416861692051205316691146191265418741012603116123404128959705035758713169783543739367533473853421113040576889450516189142209687538960876833557268542746932441265556513743695713343700245085015709885247034764615183700135864453990618364567533191134839604712605234987469989751702006867480446662566526122993567885437499771292018779969840073902292205376550586317612378296522018426660194227575359650510390213024957943284393523184363618182084093038298962478634154623307458010856060049527496722716659184181621110301477122774850369005551795177150505901653843394038355765097697369077952338428114583499605969143040877236093860665172259908491657532723311304205993300613351347803360077716916563526953292652418777790621065759066246081700943252886759962969267329855285947923951884449161403807852434454738913270982373593716441444429540658391595698406272248747688923625510421649152276437211790188895324572140042438696658544958957698346885928506505607406621536203421743523645478067103397122634966637031967201434972768108555727850807224280052066040080583523265672781981025753075625387608681922347892357217488767631111806446103475398684126593015798673313054979758348157088805342304494271242027409774983241894772487427148603598237006593035460957806244700547258122499737561934442824491985713564083031161925955770889720163951143146628099967016487212066679753398814152996095756687943863238676859111813578341667949302616476914244108153650122195610714092898899461787343636959792398771323885049019704140301523892718091173965127210287479122690803824859560370735351516799147097472748466569697420370035916355146166678532042599481598899470185291705845374774931173705596709247493940748680979228323124702120914229560101099637670817442099031716385345060388902750287804368789080429802707241410378108054372402638685638639855657656754789440175274085898666686265714306654876191288076099696053543707816838892257357748621410006182222902246768356665296937368697216654537785682835391441999117588280009672244407258677109809538496353106829734880086013115944046408374550610659065887314394601150987391783983129453972998562411574020138420165070932218698936453170294415446584071690636153694453819608318540725614804630072753848586243407865220777318724826985537574983398318916548572712484245750903548373698667390730513104490652444325569929469592078881720753793971770850973648434273388147332701701268792053000244335773071869786134496307067843618618803223000850962449612222253772144223212781241588502845684744721755715749611859017462005553551676180001147131347423953224083116166087237826507085694904914078043787506975481062047972600735976613910062107645887847974936957920994694427507229727723339223789206912890046390919694298711716746284323190402087361870892679007880747087495559427918040969742963898405371252343021281203000728785426277155661251942728863861366358925482697048721043073066699361374770488871533670762139994877499473308680453758752981884837125747062350067207421367604541151442687509119788905397784458820206728341652570712747858520602919548999368851158627880161047978103473170904698901331877156584311617936620581218605586735374505222513948053422704254223387266703936706900122259896468716251432350009909122219992370823750951675440025952555992915450870897766994261045619782387243050686802500876475218066889691050808852849189054963963883039003359383124761489874032605272086079687680824885932605661317633092737080024352500330255213786024919689820408448683176045680301979155032102730094631084907510028352917312631612922937405706582975349142124432234438242549339203575934637369117199281407026183730839266518448155715222843614179742882544892280765316171842087913356875701322799711422385575976615944671055675321105472316031533519654876536285826651613063085046409377905043362185467026794893296531603786633329933035794540126338757080900688741876941540149469088305078217565601346102846013921943935377336541537918577044622163753602711316194031961949499754926032125053992234488790884961237346094839251951116268361801921759540883494898250883039211028639997508486591966341860187916918193663137452957890269690940501692091387234124658731000729209110168646309607679400885885934388198022747515182339746792758872417065849044321458747550555708066741939728715764794190508004757820487087977230325459796812799369688646238298164403705134729455782662567767724402737295739208320400765618705979431596981752162558619870548687640773813322171273767136860631077893118052483416162069986483447667132299869693872504336325625331051823596941736836048613085431107384939952835690421894967476893080490902576943799485114138573607956444697687523352049650551027038742059738246639079180358584408714237510232125389391917811736155949536810262969038305413729961637202812698942949115174101033851740996544968645703287788175226329452110130866951009679538105296811925596915206146346966062743351994852151120749910477513045539085241707420459985647461770965883366017950561777656921310632376784232013154810978684585054614854602589284676853303000101118543512698015715653120392934572166385089424345884547167250278639824616197702571661484703219073148591414089032411512789372887114068045206738869124644025998590343520500353271099063202134297909201644576057857393679836102666570866995091723116366594377751370248631808062572354443847083166368460418071502197967559963551877867712243678555846039921629000200702910008152223533410382238681619714760588903898847115495990681331854623858162293784620222533980356327540219650806623033708566047182059619003416309832257425424357082177326485248592891905019065877684794070930645425330455281455029785833733631170406738728187033745638259102613564471802157099359021578395912304434843161555256428962558798420949577598707281027339545771321464141121586032551121757847953991186136927033955683247890756199521463396145267061863494936217543088476736173299387491197956546784527879576598300483461062438491387418345813925518669893558740301634408774220464221747603875358873878616638061464425540750842582664637201416434910338388920554050543571695338560405814358757667118233984502502810226912974729755538931572003359188553039570733080425792734937763071349243101061044564165877084244438407742542325296086329903653936604115907965965244735618354593123516543924251590424713213147838425343516040846645510115060884359260289595598096705452639896300694255475280791847435261136445575201913637860547969136150062732631916950228093684780734485581236810433499472712746042462349800471698829947932334187376559800336467143988765822950674499905598875002135082026930724565471591892062289012681612292421124064245620009585684327282704263102926127183059213604087665320284221381497724820900411441229768437721804239409523405801293404563553552227820503045127596479016322999723434671015594553178326477622744667317216672557965977793653328431070669256769360257077251445804544677440166295462180886495743618157710993657015428740782745040548647575466962559993212903121792699607352622602129941799397292431676387162355237617128618649550005209824813784557179953674996646098522130934387843824043301352174758471051873762984966506079014548222144274720343650687284590029371456971213052184368832537679789391703485931431894187493915551272158038667097455011733648635159507358426171607412027684594971244008486234436699309734718534414523213029047088189078829466856207685055630663940502117444225105606699414842392431143912537748462716264635444424399091875180548169202418937953649170040364409027067946289127358284999811342740570137818143046608489825787319744417533924705820508524390325880841600119109013749299414630602984922057795259333297011324568927680050516657817389565285280055318014961195320266023842122677902151157930405425395016166893989387331316741660307161203182161359507984869283344582569037381227807298875144660348013212557764182976001298491499327534622628390174782211770619861979436696408270985149977060373287127162129214868882828348141316045032007081315379824138833360328176367862786442466325075034897051462454150076040531636060578867943250677433069772423628396449557229879690587495462638593721042943952942661354069122614965058105049779265409512351788737507914470150298656138106512167010271883048018902209466383578651700288679759451605557356371321555815423564532992652325006404775212918899205382208686334442299857973874007634139829155241888903193916260441984105796111694603579021521142056546995141322125421739876173150164469342089634629033391293893174119574071928151697318727074738180857717838430171446712407513920345097770175551969343215631946757894192937704300817454508595152920208512377710064497894165710020929623008734699400131853449546984252189784898068301457753761482713722834718079855966510722645235071981640822108052699994127822439391013047065060664675207407421887187827794369420500818076818153508103767881492697554548087658458472067859430691511807266161467499460173132950598884734894858529792302810406662297325033875464694021641000325726099823129102508975014557345697984117439433072564520229513469649990157309699429978501238039819710706186357241567110997022233799837366867873245424110826823140175324342829827649858750223387627520948875165645019763492949637568237354844245953549060914574513992586633155449865176081788139668910034071985980193123477510878474948901309250075930507800088765049696819701162185085413394070969293651319711621410038777707791892464945511232456253572833530564506586013308910147215663984308424323353465706729465918098489336592662674329868398206726198741327913824358934737730241377844109033823340032731432683920072173549894502972620876844040851153952854686367734350411774282487087993784915049208589265961919900399596939013707618949277749693330579971345972427087191795874343040780658487988383142364865800329828945019351685901777519472019306056431301472487206959668484497783556772021496493722506993920572290264177412137545693991498415887382224859728895039724772279979616826639701163265598733474207299755198879701622566977230279040040794050087575095760525340893416634462889395592721957260419796553457410953191047620218405891312700627664559074527152752474322292032780370365866676960010725854932266700192256440311046729126012057074010933103282496082508247983485147902413778316496148512018473195411893597719332564030701809524478398780997917816769979271881209210725082984222816260018047727941426447405430432592163331833505833633815251667124343749638625972151817539823657094983838069228821228070332812132602346981953567298689288966631297885127400975211553571572820239394491540916791837071051394280402968072169173946084122791330201791613978777530601344461440825691027600602356909113391037798299499444663733189358083781836519241906140587820265251096447127324725747435449029971894638139659282678778009681281619610152096987923344150847894660424177225086788044324450902013124062703030822668496590880483179286183000998182441182210088376948774487033839555477496053340443981821922972305054309517831866706823430021230923512514732320378893915470257254069701137720680891139817682443080753922238864377652225138164894659607886345413035600245272570390998598146837440387771602110894437786096790547019069998754994533784376118623185267064883972281248482022180947612802618244833135858822583863395102582302029930327498758473307325984265347600706791078183030472542123383736428755476336653466461070887779168206980282548122496738803043964858460093643639816561511832717980872929926167797941138210175113788393060145626793090543508271025823522993042460064077811994462764606670568632969019191184845335461511396544682615483902083486018635988120810752990803849206106295427085068249341397485655192698453694618630694354059756683473003426398129659490998172552914189650755553002705464203081595260785192403585278913647094649259102405302447855225289562492954455543406417291210181519247919014134531889511525724128353555198961432053527776465839119953274187381739578688643832279586132805223033120865587058920483705036451817591163710541422409167032961109355529437040272701006200679528428424284022256818485639316248357612479990028315712157103561169104859909838599296029026967838367438285954083305876981109466148216377298608452455779840211103196910472687308477412009808028716826019680667624375365459966403826096459746171520312053176973257623397740382627764719212383137123692851394437016796064704027332992726033515742667471767853382780564612865497935622272856299787469267050733965286343509279152370296862522282060805821201329208070441179760686301914091721394792987163803420267999454060612658627370678749927505635294938475671674488375536195489877734228479024132167628453510448553657919822587107249398880188193173123133351834058162507220903623500536940039635489996724637937155642159950952929075753395011556258069686528435884041928762185392634681928434494626876422046480875580491121907960526798225516762836015166102973307274438026317308523712522641839216443765539286409933639418544032571637732700715728048698897580269633942286968333045670489013136822787341580241926525122333806768008588414100271397503833752550157546065544366809229017337291493511321277272598487542925269102435128081846835558025933389308904605642032668945949873354218021087042761276101670609740425426221005828974214124882947516377550165263777842743625626554664159651629317121344415598626667821544015647274266960632503248543313495665025899732225265603810182863503002209098198372963452828080396923914144154521069706244257311130004597916783088820555426293266477117035247018538700411490494929921008269771501946850909453529526439636702110248454450741098670770238943714819549872708666088831494240255902714019766806851918225377297664091918800614090982899348934128257883006117152471499945036073620668523790068179173679403671664441333171508551023486521455806989754041619534203749380064724525645977428009825035385618835885485171308066492376568406490061237944138643601524365528771357717203478021758031947139983743024385047988101563135742045692386227298926045042199672471369647981709842392709140805887287708193547594391079132783705760106543776192319307869733651802044364651180739120901171658639171479551948449178258718385294173525127862470888783565663759309587351430392413012734040672059862259949211937298556595881766322683432863279776083474054167592550032466798056416042683685441618729059921449686673531171159383146829043183077184182275172025688037330787133702489106819410214437342098830629559529008494569038309829101211887127872719334114263864499365074631946385541115969082004690607919640430311761528456494365966544731555316546616776512484591419741801936740306910070656827467752782120266441370145302523000851354479312465519697170065273181691010600184769306765496890026910125840294723648435378514450750379582662326261438839728309796783995413627407754231507172526943956676553776377315758636286853134561859478331187725540841362586453269038647677460874655112365167372836624391263968052610712213650693906314827722213059002496398000526851993120990939014792892566825177646025522838529780952916814148936059540093811981026818368584230028094902758109270349214657908894140982216485516828558591746292815922480805824059106469981632428334524608721829872978774044875112677951711272271839942870488519961120815181642598771382883680106702085940639565435712501113373212897043676288815751147900670748560880584150173771690005453047525863270660038389398347092932475646366405633308549073263739798817741067362474812505422776788761985851687656369028261874759706432463182240916218921786061119025014193740730343290904633807972335450616674729225163741756944654355824458616674610186778908944494532693410774692375555441719906562442605672811048825567465380489155910214646356474299151651947022920734248089688441422750352631314286969201546608560843007521358443181177930009914151752416494683806609186983510614869577854458591396026245124696287894975180261380235450707292790540855863523296887567284713992898823941594448846838385683482290751946485842924905675173516537817954165860005832865659963867516934983506571212268899616111377600961733108604465891004277979107594343322508691270596382907157137180725907543917182604638133008994328330222010751962875835857196130812274796854801656158664473653031482685009015887628160951200157539068250201464602841000055077576867085603698134562674811891540754722484950951342962476862917617936112268315340052668946506974866650023175122064189763668855985420056290112375866261877747636365584696017764831203271580234608725886241413935883205626730341710106579910866710732104495613608143463763808674525985592049180894959314333932131391547263522809306433582289659684748916009517629761593387082722015267870285473124301099256098793274452038898190097751781365937433647113868857253431151137009539818028246402846044375396298708805566842449484058533803603517182107130820810340496711993158894652097099248164800144025903412044758948771679097744169480271210683427284616276207423246200549113136414771862329172417374256942636490142173562466890580305123920851824315096952937296014614023034006771006435817912100119404563756034591870254864466511512270984482151032037278197145548482733100502926216592133422374883405563170629614208972046881819353933684659197160831586264131242450728658022805590383846542246764454546967275475849845063058199118549621078425295394747580967727562249781778228733113835407312103964777029441537025347175818522758787307019574927729021327978282288441439514524296673700270640191098475510381498269523729619141509133136371903141121951768715284141943837587542497254651282113998578592561300610375707010544788819684310471711811077743972425312909896063338299785332184764074131568164213035508484928828450202694555931798710051157013460529893292898368965979937090147880546979594024240635111029998796275691511147455915294259101355595196237441044990635101034337419785827450422786968929062653493601967473811207870550656358180443422435746031592676535397247371896740618531472110549185390343017392050994647557705413941426001283229726397845624449333586804743437263253782266052580830717274881731367556221576856516972018082832024311832647854384115399594110016886035690602479930172459115352920355702017724642708073493311032966490093710207875637432806507478453059684911647609015657649057961318991736012828700530767056803322477179117355384629283540073911437413078983191922664949350492498443837054264328027465128106359781900758364501235057410564653329411441188031779804439110159576194431090948610413121409933748600025459130897114441949445419083596571499920193752640028751794230834214567544720819198002232491700442579756868413628871906299770561615059052541721021951677831456286485550301528501073366695349567587013318324952045044060537169607556399362963093320595076501000582520086531835960199979969982886128715715284933355993769546904233680198032674460375954018610454502717795863803481426046027668171095937071631142423691253532957855786440657473464253072139999712357867059530709116874533938921252244748650569736247223419576016314063017991589163647337642435474590099434243767164293646190931579699848919692829071252757963934342801800194618787343823208807083955994659489985884972884860525658196087318306402432064963625859129838800001423728925829326136056997879975051024877725350340037709218818509190867165741179551200481215821962207631783881411018385805974462769941680197945521420147904714922264191389473924133313985085633449943468683272540920304296157048090340350396138248526723490046124174130793188204669936541134096038964281664811623624085565819645450743883140050468581875678837608611958287739421533458575648908382948076270956816157251292090180231822171930660572379207562159654476998937537659154685025660061608842507483071326910219666471545128598442936239677165360804461436317962703476176978507584710673577966363851390718866768647634016204666546662107042045286047340530258534847766672251686870965497041061566222121116618370411975182904526110144836303304435117118206966419245887328281830282648903777295536569877160020637492072003853865974042241610037755112080773463915508699428056838171803877598428746127998757015387310135080351920998337680781852840141525191843540724864249613037328170101213772712675382006947540152818376340532131943241997534015676275993160220428522012010625174351915296458992824217665366548033230912351946010710303350475582418530987233135272251979970712270980612883825821965089759511072456772816244070997853132492070383654722879113040651923897285393983913203830694243265133590304832936178509144362963299278549698631106196670726449464551706737301899589331156940104048698812864299250994547659074892634476754741855469410577808705894552269368478111802848965010740290510299438813284971577363536323336597845495101252594840057117737751708342424846548283987804025214404968213436982326519063244903869331065898987194001820833622081314899987026066210472002953688193439792759466985496918938206257170114796789180277694469016520628576899811570950895070376488577181434434693959845029089212325730823624572128722189055441640966301473337971054300001548812984601647421192222559143220691778743874371566776245879870487385223649239058825212785892766412561361765253734453567420446627499717768072109767984580578471451287820216226527206848512400540672225264546618697898961174700577768271082319386872145033538266921889081180019545505241531015453985683125286222476912484390209114632014378026476178260037800495751861096895217182121164593848346712620595981564939302611583017257749192947676271533627972770461873153230169482628635357386319862301072272250303706550506038690608758028441436929874018571234518290507552235385198783939936370836029792786681085122308245132743798047304206915142071983271080207401253810082302040020829000785580210474462846579588069004388368981422589459827899972958162024431617989626556347062929531791268371141126156966537894078778945793058277080701131644862304024532189639586458170480446682463168378134672074427753141661695250091453470344117397233465002148797573331135787386467076311994938922661799878865831782231732829085931890353670589782760879451098692386143464239496473456033135315269522110145749608978164523968831702089956574301805044134655017601644346658786094459060536012776496118513142470195343652964505062825984247036593765110082149858894879853893372838603309931915053779643371743475205984743511694485317427563927821997248760034888026504569278200585122282961415329212652276214278241939573160723546443834139386083637795198605725823543933805106995079950903548433599685242953555276276148588871298366243298967705294969018147590374106959554834303626452580801209947788187863849176098918943062529699337687590410983676595863553678988339293862461055665819676329243666276314151981282766505343677229617521770646632924282615823294044323585421599781756713971659020634448589512811847661217647770490268624342978634952017548982170169627025892990964727741939141523211323376873756704989946429316019854401482592222120596047237912128011705057495486905593009135075711432548358817662489830065703931640934644420693283593209207852692420565568476542884744109493257943664615460374928281406893553064532453576643568903448743935459630290900908942641828318552071398758857602757605617889589765120441766238112388080435588018374994229162570371255661360875941088847341011168191210440422857357498881085523625496423952875669448110474195106009144226877908459000214478205302128009474032647009955446783286950372464917664319026211077564633380605986213814032072653094859213390125999137563452450476407243716346555350293420920020431296030367312290503601500986934342900531314976208434148171805752585710499146677669856239568368332751824047210433062221001537298965346780887832628066736174411951391565084445700448842863230353044026148202218892009074546000252466535463449451281092880786514806960265093342531570416512429295987574837361461048540903096500238130673005150517350898024457531112803717130418412691348384185918498907782610209542506298306087858476321654135199185179466436285377143972221448063983377218961314463065960679007626504594250993064772545483705312903798805038165807072650227441613889545013992282050371197760358131458109204177950697235815566795646073910928848438105651908794863250023114275728634255405593715959293248921656256416126086021428754646622239584597611372322441133274684178420122664797927300196999258382984546186319477637091790864275003079459754784447699826317307863483015104027637926809569878607870871799796130895840887605906548311092114596339158629928022451843374317508786735119768227547105234058725391021139508538095206380291427596213985377975696630140650625258063911032253269833167799396394153580841490937104947078381925571589741769139889784880158679223855622305099915856036456810422033371748694043351210434658739112530598847712627969441437689162492060161158682723248294261120394559776679364556697952878805405488834430270358552117845751823431121551691469311231795418894932528651521031328120528770341555102413715396277886904964762545242760651310065619265912199949606939972636600227464219693037848861462526447024389775971383803318494486690708612687416480524296975222369158872591869632406596980689657092288480031603242567599478911841940090496226007370134361282645167606349404055247232135431383355532564370591050282659475303970488161951226796260611311044452962234582769767537703919221279663562496463922291502957553269957059901663588030438298944056671504522159030301702330738525004099976097091102795823724049371914859826206541976954838484017398232047615312484688225294231148151852531317630900115622402438844086158511817518318221121477061674305373568080479179167795713364217406200602541681798081475111281899461057163211410419810278502432702823192743626286178442233669400973290152147227372936618924964712271865737499539170426318489114840223321254026859570484209327212584458245627670359716807863881443916954055710957807095049382020085936228335204131115232933164657024430620248995110675167174939635799083451941988605553995655085674477615952803751767835145329549476823471468658353589443907138068658818389864555950801587773548117493752817219952265862557500048997538807524989388008655599773384456467449403317269718145791153642893764700284400285848669725226326008944019666063916334132371463158577792032352595602329013576668194841980240160384621664491940290865004995539142958506484825851745133200981794389238216624775815883724166409886402648515871222783299845147701126502974971096094479478585714488866325081950199084243481811085064922100433129860832202072595156210567499795388630616183134053573327713456029438778686361343138405111447452803338126870401898698439267472596699990226655211747859952780388227525018020788173028048163674978975087767469764109504543851863814724537787851605674805834896254617412731348705426812026886920103498251677840616907215868834546952576947120749101857888798926433448583858647189343220767692051762139678517014729390640177940312262579144937922794315359173090017328765459943752345727494962613449594186605840296005641685826229153345944060077230079289964816895615480895122851753326965194292496287664470311304447231351370409080837146788630403528427577829252492271758950263074011938559335366775316166243511849170389816588847649835996027481242374614833285901060666272796323113730895537156740317362940827832148147482840517762360156469597813950730196646111287066276052898774728016396491540070688588046209830006742863619232324511695906391444699639423764642069036150869411099343936307997624866787090253315973429266959500220921036401087252546606241292676898026190928845052505147337697854973525233631666058026695532982263767370916859935985694951208143519624213462023298167308662074591417302066005743073471426805477441877663376091014944096996886808332498074278553067968313451241948975273301931910381345063977966238732977085448703049399456819449912858618789377464857447684129842586871173365819583368698273101239839363927520534224767274850702332460603253916237063269345625253830851092478926346518350074785903403054879726208496170179857514842862242521958506051337855731906452223480624681220567330217790285025384852451212557601754973409537786096514089167930831952246357793891924014152911378649909971719224492178446028400527135042110816989921151337622159511315924059952547613382938656288718021388203078597853050833989573393140355804563499533973189028391956580043464146776855704767001282724092483015412681675769007542993033162054492498437999613317839737035468737060667899630724833551920661780027488114891401309008959373896366824915084089492863650837729368023806192541578160154647922377641227126831735653933097813477557114116283336496338571976559443840548057798619472393981937700654285570503555535899428575911211030397032681926908131239185410556775103147343240701207061221908703011306008979681892534966760868165717545403154581789925641310799586368369849238776446458590824178111673990846693047519754472430320616480898068998017737825647622070338532572379453914864336571014703211625322099019991697043311952162147214245097127870585224297278998767951929921505279221684127439428880526521406960193634132463621319920890334753304289417812179686575500072750450960734191478959229991483464235818729774645730781625098459825588341529001716506857277824379072839676500672379003093068104353098690706689869135431913700985484852981777575589860708746359539145776629098117293516737348545938774834327071827025935589769629293963510333631227987984658463409412185935506118591907486746605669034350153620850224026280986783799231120662631763986365178582265308545834669582339883958804080918630370907953761472409119716062332737888241438094284337288612551275591905936261501172914338203606863408115101444542125815581037957691426085464100857864096026210036281592181103505056924644742517998042679940569620385897222361096528137427021813819776809097024660362921158078411192075409933205924340344838427710864932333266372303715377956340578331969797818573001983225169395928696721191279540129268242402492182286442762316891601632969832586385990073518185340144587384168953333215140387133573879789575717751786543472426107846793187135556637552085231768571524696730374083141551654017704498579408432383399209259382546639975090204335065890533299247535981933036018162072155590690101487400682283447902950991450211607594027606905873177405488780230893102244915837489726544098478455164093446817059448688468601915490352635156543772100663091291610347316143271125435725174031912597021878008012668494513186568870101453455066108228750250502636710336437841512918504897459544146575868901346880374608878553809474875899384509366366410451247365619105426056630440774299476363248403171329215507530599546208109897737168794498590723176841482371906804432149454726200497370399971120479822716569941965494798040105350687420289533048359861605792182820641319676062422006175973860834847469554974053062171227376370355382768604838740722054927910112379078721480295632667494522798176830075991562444092323748299530400819087056404534150097727096076253186818170361453669948123987636771509874917212837116401093186811711127344533489718441012058109072346709537524763671015365387637954548738028772667367955806627657060894373859245399575738234792838340365613214372248078868039811130067195126552828846239694888831817735499946455195520775871781030934417175349757609960325900450530078670220128230145034329302845079650987768773734911381232992538125985529403582262083603749633311195762090896465327494062202771837773529122432087575009843213389420619790868989300808390821317540229316213987097463364196314115887943617182055820153113588201739685359705255860448088078808951491241779446242063665151671661883864023314081564898221725619213715456351244594270735697287463336700651759667828481629592568725885383870594079581606685814925835192687578705502512417656242962633760319182889060542382654477540981981922507013359736342803780160773589419951279917311409266785888968344380900646531213908107985107551685460240952152051084158074403185531490022490185617050377433492475362427293524390243739082005673735044061076084882622426879392709374398203033083597575955635904944041746802695343008695106999363447280023465086658036112558398333010846279523977144007316091640015704824060334728872034561565517251721849492474395009367068514499759652310886456803891323718418238579716929436490991058124402837110009897716401435993173778106108138778740038307529986328213214964451048218069863400510298063752779267033675020364172185121227450524374424563062376636106632650198123053588676308359201865925063586258414316677034866624379452429460376074595821773511580428198785017904191857222300733520861658517543995984943157314069029667226490246963370323506441672405261279986215271817971784423695172534288735473143621463324657463280549734419484862754754254443440020818777745730007784073261738589033192171582297999889945975604047837627554560539719243660148142023050765536571578340995677732746500320449012253673328571344603131606599415764678362280672336601665997757970601949499196422077489026413113560982188296364694459558451262106750667959161839119352376828749162154538106467916128397989913281539282995252386437703059905897632945508555499486838174878447649322124279541752176126878754260668920937512972162878847037281598935601287493165073781804285983742886958113724049937916695814215722300900864707482731931980242103613585924005373914688619983834762517719498542425667397791970948176573385006904912835178239133318224028034568111903173418732809005930312828342658896220226766474242641593034805749575857423879682420582689536201124601951923796926361366943701627121377637144360015288340622771277562648047243220533614372851682788442851098168433891216165685548170190516809176940802340139121385133475952792812036429053752243951101746567898054613162049384838543057408260982820159962469467145807370109540557476119391044642295208307581006258359023962963765424740250382664326330080597082268742631768891192679538461799503347713403629528055198473642278883184861750025800305064925650550160214617372960336115356356849370179521884264478635646726028146131875721005356661741087963024434248917202225644447828134443357749472177908098890421271912054723739499447786534122124876385770606957317787235533933419591064573954419735222116027918227994395850243132470831293291275976441037980266220055226951736395797829398604028621805338948549592867904068844339974691912684675877621515375007788118009353629553837269723898843266076381520410687146493681338405466319825382779265630012098369870834683140467512620015165416694037120011810177739116555159850251336402468659328148251324990389375757110382297568258480850438222029573531535312381352128101555092039173527444829353954309952430471163853966406414060114494002338082996156224928280046540203138133370546349827827781459465073130888558984924771476805453917067207263507287194253622657964460693355154092197027064571393180480673254515362593988256976262742983166776788246054531212249259654988678500939975952706851792584239630877697617083609287157049385240509434349106438587516933597102969438770871775047757522331288350998449370714883676337009986263390390602563341168772124026995571231192676690085519340164243282087330660483504655401510631675940818361074357841230646278653257971948987353830140710442841552891469914533647186587624704465261815107930326014611932931612655928857580989256788112864291083762748156908231179678248833025761653894665679575855226581046128925117760667408956825447464973484249289480067930939239879390605636166936171809900985773580223309711262911315945173409461062692018953043476903396483304433897487329100305771191632831991430264187839943332497823891539551893181052845661785520839580903852740222869718462431686454401187719094511456225446642108152145616910851603723272542321700274016773400161734313212752448403994591857801933965880146104535424159846024082913673304519699734591648254902485686441958739195431425142600292260868036073075125233077352502512315451192828337456353263408834628673257760926935086179510351200544757723705605017892988833448653149697789434308281209154557492570354797671990573112702783064154863009975775586402899482155583234051962897568089069179170776680418217636999846138997089774439581889582996975747303736303804361512175849997963128808270432705643835922574469507158300082684418009374178371595465255212536697353954507844179538885458238531145069735235172121811280964339470017132895453935351473939294511125483332538191823232782178649697047842814056885394546894464743157033826137718979564472394731605246474868288782725306082456224479715001665293417221039157731316879022164552907883290862694039561195037914190453616290226768297833611290125695409827915916142361960484900741205462318166834911742810479275110347991085696165483779481031056066260533524959153936243702925741059032737371767964674149687554404185864326343404661824614325979534014461271226203246730140483640113287030995934253511294811420368480564885308373660371214181142355247127536524727401147881818666061900867061201499474511071371884479663485274585717810706994525672064988612781557928470528882138319194968565149482620261675163924227947323023031331876722959001244920494180132580685440613672861617041879751872302244112961776567648719878208372059450853446795350314105708317160609763526654956614948204921131223057248715612353083211931846640717394241022849263733339024787996824908266502981759151070200956191370814534751272971102464781337347983352570239291674248294669159630192838580832951912298581873382185650141820528619447657218549037315071970695062054334045138519528480463454205467991236312776768960644510494032436185948025431659972961997246155347067902684934775951636920312519451469681942749359794731181078562958391887517561015571621648850270448995761478442873767991345157600531689545181016098071651231222748804768777520642555014355316433672022946606484868844836416765882660100957581650446360413603875694379145276381715403865978109466529173441961239601003921035685293837086161062506275653985167743900380713851245375883895620085443311793140725476112602955212754136803765113182804716552699082750755340163779622611072110809116438130706297849470202877741932037231480008187233278409615620494022099268738088843659859668900423634984719660436306101433090010076867437783232315481812649727373084678070867913097562821085260461762741578578608144630842661184537027330301397535759280794454270313637845132455671523066653536893360799062841015529119331787176349152929236336926184746188733008948022214048820912116298036114579239711862512800085154133765657766259815245931374266900464876152549364754678104547157449447195687543022855684668441904876845916609160140336391482335099053628277258077472189725465993498180707211877832690818736577127610036224774612809150630128213087147816917292663186589966858326092175722452965181157127546155665283807948320926059057083774996493404185021648668229267505380416790516914291563985946266209902141095743008084468711637441351948600585733563648247835810816756700462354729963913505164576847870971382313189172141242026323340837893786026597321431892735130172379561405682090743304500504859077927237179052773720483111775214094587709580798078593211101045676259155886630832604714173250581007563492571099228353418532028116110493909376410809231786418075954698113637122146294321683081538846841781010425278190837857668000104452167808642930891649351653046391325114765044135753551937915968317114336362319490949014873524697866644559658819455313080998054836396045612741789767020170130041013753561032079860792150150506183495382777929933018067180316066292165658686017192195466444316441442159377560111864275229598510381246151667953599015659472308151933469337615269293348465924852136527775438046738235529673863114368408039091009800246584005790238538063282965797747814267209506383863860522073600620593133309693469628093038234746912853624596854477884284999886356686425454781080904412306339692246296251751410924923889496393280755923006053166726525678909588357516937576390785236176361137544821778086991969095454230029168023352610697137925552488652993234582866103815513259241180947201355540696945095531912091057738778244531176060572226940558377221284136302489121214992556859666297068125115555090675257792802463843248924607487847565588262851619713398823560484136772374107532110865268486326731098586244682032856134621182500497975909773003063482657964217869546920566070657451600259791588374363316698739137853479273224817299850618503248202724288863365218983074543692096240660358243350944143357668033471873880387773867532060640290724375832827569497204534435766315569935039589899718546567845910913992509643782518423841909941692063891542191348861422357285401973985329980357887844078384977890870794258420220538292537992828581813919895580926798846746298295979276562916597722552616086660389376169800387571882337770495772476742931760361462462123489480371007741627951202431214983890046434065965396470221056549749719443515602408989665166892991505014618016497284637324642106596579844312596754124870637073814564588954118440212407176277333990487608854240757369278589779959470905874711680533367495282523201054210365174980731646415357016876654927997739230319082893960965065055684664931618549149098806195823991082740637027617046675796421170036864095255241856285491530767209268964923225911448890161316543536695430484836992813477613095350248042579267427461973891503492961609813735005788062835807775768997269267643578252018065178230381129497683215851299355536078997993029406421179509372830262458424342539738715571703821898676304526518358501617204210485601865471868078925482688560631996339823273216882842534833258772482119645288675494376488937048556261558397537815120625201400651502214341324410044019083402785251237338568329839441283767837356275575588198514857558659894885222908883174722170925317255543921841845229968609277988001576911277531627668831102359639610587819861447076750532240852128339201850630313428750531962529551363119391092716311187938032904569171791037262924122345734452742256136300205313498718752353418291551196135996695600624816479326416996720697085128598075713960194946979872981223696021676647720428642562642391285050001589538781734495726711779370016897424382495436895263805801050742859603883380911627830606011196223714463079229234372668878712311928359216277778682658347544813387431707625182344233609734879651424460052489200176677906896063341725423401391217736259609548779463074778329764254603672150737002574881124687075778258121446232968068988197137480120982893382642778689972286883518778226082552391885029840712500363501071271229133954631024285379993052507085449121288941164958369223526361229248893820185733750568031660546521005809651090529761417687874930553355608390433810742573597529791044577707854353663726143686342062113657985026139252957274785967763449981120898764739599796883532379528152125982775144127194216875944473308804347961242093242154754647653420714332435472827746209615750075831049053235476676141831162700647559056127597103800229337060372970844211821016166154909540073847366014662233843015747887676530953232029385281320586864185402944268588925578706277425479565187082006583685287864706353171372141422248888080105457834269743804197227723294894876790666385625715633465183868172747060272108995660872945369374734862191681551034163414229065624452772590032487367554391281008951687150721506954636796997735762010041310766650964569543073533334987384515221963566313212672319711636234497612497728689599896924139101624547890984533608142063409958895273682935415206560166716808048626948107225819620658867785471428360221548189314110088025281418160125212668808553421854366986184045157500495260893077088627653272373808145776964476901654877120597124264944689725644315919178753548278936072684369691475838260032037080239014479484640415534500420127099311585156342888459017303321888630772469953325908644458712655084421816035475039932027558519323063477198593895810388973488109142131081911424107796386179441872673635439504821293452424903248687583042920611311452047502586690081074776766703250190341328644934374819543982031264404106584763786901153595588843747275645206547159513771685951352682078685037809974790067321930422885857792088323019163799567828452293821033815018125533602938486939096193887652776380158797972829941881404931841825828617833086287239312597050299413514734808453236616832623579870386029709310695455454091492971480211284723234356201534096631164159118260273979998960368739101836557006316325206798717532409903407612943190052734755852333365724339316672136808964661429508165496692406458777994313630940215797937842133116268269124383029387909720752103015744420502672400012520459043304973936850412885117276475498105926454313114060637088985640475962032774992872165397322008650216125804218575232973880301335518242240874258106439938425855303969100884866152716549982114483172584697990564815817861676003192590454472961537028523967796349429889957826907949025048179078447684280307022502588157293590456575399587189127033302180311118080366911114977694736135163704559881734972214121679665980439954790386205403371225832848141565915065657337341453211661208265571891016537699723126859200171173236567640606280759264826051034980614711505678837283400034381448524724668502914730633153632843201538269724977103037764644450979728834323309904495995636769899064962799170904977285400056148294793725016129866641470336614481474387864014456625608983284920671761265798435818042951793830730289963824919971569572365273939618721239284250800671672868938310447740509039888134504315045116543063613212883873466959088261944176736746883404792886553921431548295101215326529349658614334221369616911143089446321695595950808643922485332864374257706180099711202437484065627206880037645015752434661339177790491663037896695516472096150202936715793881349061784361423577365872441434509719484116730173846246974788935679420037488400512578843270948661411796651367010952737998027917840931008380216617437660250446466970946561732466392230776551375231494617122963413649575268147708719332828889106927907307961847836480310394402216208915546483994358672265136612053374850691824673302680623086508695615021365263725315332034106648247763107111410629443783770599801046496139103723153610677436281135413488972135518660730813982248166605685205051953945974345642606826976727158418317733433648449582387444456402221251457751555207800292240044662444524443454051513336587169876064798793906735711901653600347114020066857696881929000990326006920495435508270553969380488018896237362456045019482987661802686185520282451409278002940331621597237164943455430091288574916749312808382704210837861041433348710267274568554396169717245548901470972327719332373993647122391718888994609087222211511625087383753464359080299532614531743211376750209246416798986833494790150413954703399845408250730829244197219622755293972174894268326090333898260281927957336229017740607691819985415620795437071008654330151026054986830382508042430282500489138551146359224104988658799131561767780587940563524995922901017480152690355067213777577449873354578560016329438198246644866181477257471064784180249372521379286100764010287458492221495811406994670147792136872581967000190403425608776953196625722682241205395586084135717424247250332852534165733024906934559104285987279439011840058490843074380754829694843327248648449378805014377308331594041490560546354428913131598785983292930345543369427516793364241525648844649142211117474155755225988082943418839898596606597957147791644322743534548597268058809172966408780784432793498074753634064318708556116563587734525081085713210933430402810293484430072443794640130106344423935825896051783467579512266605562351122802548345602214481011728999697486371282941864263969337891494458997934008163929421870077926926481911020814353410593617366780453417126960141466199641994600456227620859619598516725366810892029808389319494416083614539198421477712745124822091524968741641609687629711943606804662160014836226735396601425548156400592665505364221574066035085561183519925417209717824699728626036960410204766201161846650296717803358897217475838138169769549650934825745087371100444569022464676481934357894409382325119711954793573618859783284357419136264861789490188393785365959716333763474189410777225393780284890278589265088832394330822677306173074030480345978210977602142437107987813703130178486873096954304235176961653398632718913432549749609831679423499930978001471332641020917868888079248113873777241508573309276479460789786313338827643051011805715591130123114773319816054456914287891463645376834410151720706006750212767139204008143630271580280495916466656881584361039210282756908487458966963307615385599125581590685209611870246304767092938440877874385209756414586121699421227781892685780162673287491502154894989572381229603330729272061963116081593005730618635852266223192873572775910768303258156308098133017362362718050766261804793149667162462250576359134733901317003082558576960253069878733605855312477150106093460013236713151185513287916070866318612617777919212986416439139614923861341352623662524492363387379974166995123275136123311586787228990955729115679800418548747935236776474421479909093394022686137840337514629975835365589149050300754981498345376984060328549440953051934738198152139350115971218208024065740993508741039112016790702403325740213722416123087089623777245684699541125867569073316059768264534512548933872354639618759003362533455900676539719243103694372883150997958227897744011369768891644434969249428898158210175126868728542106286408495134071206612710337276707317660194831844187726002044551974974671729472125822849706755186214490296856918383751664492146388162208193404303631723164471997666998515552707686914947070961952817543408212551544136428754198715482612976769676723851180437972039970326102380330516205406976315923444472419493780597737325009475031805277145580611516517905587820227110358044322417774883364625156345558057484003177129241104965939188810116954614044422873080171669667404884784384171972572105605039445436574053055403875113119771744090605148094786987202124453849126226498314069527677972858347311280582274356388620193566482064164367540218183523263512324593662752018943317489159725475257591421646589784686066055895461354484201596524751803117380035370781620143499071393031621389002507387489811909673787398237234363899340458343016065637679298169482019209627333333306377421812278846330944868987023231987124922447414763037199747571451674226096052840626888971331951059512790822263169870861059726348456714419647085625116786704944516739698955793667445676686261169619994266532521367198783802337183922976341570891393757035493006423771073987842279379111228987133493094429522811400164175432331554183181718125921500006172477998755880530055776827099848521329919428711013445843450107222792863291962150826012493746693707438374871818379981347751073383801491983331972869038471845735243680822213927885646084989821319568684813603777409554246879354712493707227419738027431317542500777073047014345904606374341978963562860275836740060775658226892122405501629159019540016352819224339909172106663334933920977000602706195622799078317892183182890070412464727110594932839746445917553172258434841107139479905443949060069137484423105120863535102605479262084293209379834637464036353765401106745431337057850607744872694097920803502387772618878558668601863544213128836499725953935460197956814647855405668710759600412213508278671590029381253855880504043061994454357529310360942075059594349383524801738806619524102546917743401463502885669913532879305260020168461491399247963949987949340583601383013932193307514945282403064480178219271616070579261657799111235618225990039628738249362024207388713973972733052887558937046166974634544118734165961920846110585990276587338914648742065843887576365383124614965211002652879112575228108995447746045050640203522848378861133037594667087347561725762132700388471617282043492750297313933681037837609835341915511009840023845991138685273454050463046455902359464933371561487569597265724762355217456578098312376005028697737944495853736851773574633367327931675151099127521646502135214254140072013248113208084789960710754282883337713174693883774583397697016089881355768603610055728446953754945675889153321355724014231841916693682089554236550382332660520582254390289703448359405800977182909671359890531291225607087592467832987915918335373896014885787063154874943047727956071482552714993251984941230436568609802190924500072102941888279473574752405991634613122697660801911356143460474567499268667199152188942581017248841801389238842725756227048465880639614102886051358265996412495237715414717135605841625352491235608663313446223848346131560710344507779121106199419641785368753937544045010936144225858341582224885698185240267491928022019573156809777431377036559104217869298651870749243498312421440163506069895249845390520587270990554136361258922031261380587432595557474429064145181577068898764121527261376874914582261036912558653886021155242974935799825216451313639010375150185515576965449816750748084816018796119573036064483095068301943379700613038206951974958393072900449249414188415611765203454405677034878773789755229648738194219106455703889366679657405289967617289100733169444981859428421583726302452025391847284946980677844564382266668982260729449056224675750594326866200035442666597183844927648706485805610799416011474673531681512629772399786505378181729180108882965590205988993695674532122570562106252205973159112406769672895792124664266597910858866827970422981428693595125235488603912337806585899917038280274297428715945370830571001286179017257960765496792201728696635803278381555808434947157349571192018324985026490479549203074495196105582513222818433042484407055527962416180709008909371866556913680182163773612278338458495766242240363187416854470043070634564911800233979224383951349160917737450703321784874276721006121977155268922010959864745100528994523172863563299655705508382763603757562497958869409759016947051682108698913800802597911891213810268332024113893529869306788314414051153905850428504748134401940809416957819151960694612610091496492615813760096939016951598628452948732163577429325321698416096607704474516049874332001556256039976331104310380882353500429876133173618724016241263183710020676684007527010828473024415800150037177168453226721341660174316691538292412921237661009305917352726370869148651896706382084682454791854620297397514433327230860669102215292705361604054761224958642689127312057655225538329229309081917719806160040038779733514243655910733063578880262061337221241381332279954590107526710998913908886773431375057974448054842492893288291589224322570386182247033813327640250972915298405589306904849878318594795682329437309416774815661857540825754728174693480291902357283103675332534055420146756867731166369713256756926638349460751212433499539233640593787505410921516332811045813170186108517132932604894528933713065524053929698870846882272222325072795371660331387072923065314890404607527496404377142416697153185744970214428569077618915058776270245267426750910859656711486122851609207894565141840716086931847905352915282553550649891080833528335585901400636672215457148399419443471551654357138320849016532921123165550560277778818635766430302368232206433121033404610275590101923270183447529326630387596792229699109189965844497655782178990165069494694126607766958022445325607835197528242326106636976508524106898154216132558588473114926432334925301778087493378187063490517211674999262020666477961233319328513793175335086145387614727490661982398065388560541909578714735282515045651872324631545057900520179514760911423263864563197844537101262460758640275725523329650784313532036599841606968389673312727708474777047476871756475234760799011630249142888523266623678245837919607988621193847567948968564225385235205397279055561132232388772965816284648222058879538564119564686546041475722068212639270888489870870772237595232783551862752447376484781994640090792861299109126743028403689436273520550424886818987392963039437948492819685344810558943025020424941270862184092805045344369797940194355686993564095914801427961794669080189782653383108143104821538816755925863560780790621612667740530375106393389089506414395080842573227439583436112232186334942995458044039544717020280452647257444859596723030164746862290357957241058570715454500135991477773525179755486996015109575831921522402256731409539168959161020553493181892511545826644783901629865198850710852160554469247550741060144988465628821385742627322154447709886359592590282891844427834531541908521873869618034579629980862694714575787118128821819614642296667956599047694388605543453366499275064954310206861946631234072941731026664969086487939585862468020899225422875562782812402173644051958377261732251188895429029985763949041976786371053135331188061562466989592327895320822655592224551238410396087177710032291462009893805456318857228184149286227687958452981728829120213374096406960055685834740182022240398807633565086173845943124760906172706575263051163776580478160419847280135229165995643227907923681223538573505605774938450956310605005762416616334167377059142641095316760406871593918378645153311211917981583701774152050347345224573094635572948903313385195890830744829970457137894798757454692534048358396722539451192292518433981874798459976617287862186804737330805525973300975280509140191576022077609256897966257136297917468021548394323210094852753915449569276092370626667950555564230127858794626200571293881240617053126328612555786909205519221149889281067170396198527798190672980630363776227986731822889454735370500877246626754634034468013419862907497115512307955959334756431416266783866486379185514259852698058801134198233821482709604946745221971699293353262751493605244085868262536689262691918360227413739112119643428506232414367721256438639630941498993504987962248036909638818442186782929359530791073205980680297640373602645679187403290627015849706535189707393159414035894225684734621152047815404075411870750793316631473950856651134132318477356706489939965159542147150924332252315535771985157556055655349791501764365722910665226728719880722212014556495206471194051661115564739797195537010163991385602066882569089479653580079716004050371165624868699868783355212111958034755748647723088507824247532687279372240418847179544668008081083173076321584070292380708374035311349457738381994048720813035836665537802281747590025334381064432887952260607811154657007624737857126139105457283450523191224759075181417424435005643845769005346693826203277924306480854300681227910661599122387689791189987776376758702464686280973888919291619970284921501582915979062972827826398644166616081214862220110387620834139649229742941100744556634947302362038839604312002356155427848303113016496343686839158220626927374108509248533500461023897017816436193753411291793775563177376439834203789441989625862399205573854993279474090680142080566796124220413846476254932938259824735011411120452945031763129626753122545736762836379946259157419082859050303169571177170873538099111781357535667404048537182301912483520466827830768014776434397029969182654624570612179140654030697525386392304178106597641812073002703688810540785288438196135088531461906680496806189650328110127824004335717495256478039997596863537205798609404733774944537160768344284780833231488463622289972730559065826634195693747333855897917184947938345705246951961126835654173503230899384029686345175904818531564331120318763613967640579823396333906443736228150594801668603806467764185593453227260208621859017657021497300092078513435047664234562144627738771178057527356373467204325275522080657124910894424219279215313707093125347172180889566758130608621289283757897970235814868777642775897455963641712842094237643609382063910886054029412543307805868214493220774024664727121360785683958177149155462997565452666600226911632598118287084748036045591282600090311426471927519234852743793971405684551643532366222896447190077097282361168388904246039732949814103202809677854879550326145989978116080711409109514133986963582031980947936898289928599490809997432336279993451721146431232093849832049170488388644322326050676151633276603265810578102855711182108891743249882278166737562587600246975487766191074930715721157986519372272638357570631129002696849018005801811691501160489988707451653612528076075028156840623352146840767042798429152545460079960010866540330748426601130731635474059296672151600243705229158020404741414032376186282657128568430328400514304907702265753942043944983502841499567307771065264884329026146590288771289395220482800978694713755868899980157037364488327568289752956953347264647963198675238105477570084481991018238599094272096013451502407742437044002415513359541671881587422083086905226650106367504032474098049462464597284066444349746057025732043424117413860354972902075576534009775215801699514057379623215561987256363036937961100952520081953689684324997296323694535917677874540243600772766392601659192890818903791838413874000636677843074006468707558436280026081858254896366839970193351183400677014416887510949333498297393473954822274031876478504034893347188375929851246499204612141180956594089390197572892228293254486605406426171977117649328506241861828934550146940139697479260733430538017818463324731613731396322346848035023580912983929150465507351067593529559487491827722500009750642226933567632439775793830781189993728962726332671196354497578970408934949270510476473873142069472524270974922643058049637440532648034184148366279029579716420950047779416560521147011333320831654305711427099177463460365180180732644344309421891536812739186713812650106884022461222955884293326065912106965103993409190204332524492826977945162270778604596333656274583469538837987355167572945819841692902995892199540689613122415743783018086657920935019488824360709978743376345761061875049061514424589257192194617375429646619928692632076813768242244658289040697163324846845565662306154826261785330188983618233259127761589907000411676413850629497698262043982846619250473604944642262345575509513265403408885280808170216757264175424413589991752855422178786256999170790326107239633319409776086974442749792038748297013195463980608145469799647633434890587933470151941905005822345260986428001178318376896466730322705371552314684092493306522591395865750254896268740570016482152864172275839110753984447443277265352045316571738938138791648146051867714394438330197487769374535522152469386411537841368683670787202108499567863154038289565874792827370104047581481693120420486590442443674973245120751131577930718981089645866117154838505932907857705409236003810950822130295375833310358600494148179007044775530261906245401348684866305080684798958335827976685817890810142951658879948241021549947270194140227677570532900494256900610147857511216908686247601437830245597689477801443009935350377181678881051239050290844119408890030196001437145096734240525554273121448724218680741588621912633398178161822070547689670607101132260655457812082843171213392411991924237304263139696417567379414647962197808972076078550490752730037314623791573122889650442143013537996629922570485697045608651071518141822064115076687474867253116630382882915973826117776217642654750264869368461482869518994329278752017383014010469477057211799615390539873429746916037883895270579211285950853932305572923568551081690205088792169837765764768444861426459477182715276078673669982873431021985173591004947747297086822098445381651671404920455547882655299804997371203302767209177596209316219600216437522185284902771660675091972803912316175747415142870356665657303748826470056704916009817629804686684241856217654887712627060361240245219297116364137265571170922613480690331909675293761387131331256674851861296226897307663122697671175670623473711218097138282760560742174352972358181984628930573104587755541278238770008442459691508993718648316692036764022389991664272629403716072087412421568281580921852053753239551843693411943484438587438149313624453109738376602314890617296492269555211929945380539932212415045427072204152541660152207951252326117765841386440062179033028652026178105755459451307949980013270647522627043385397688520432471507179493631531695997567671142557150712525244826549809554700946748911266635087959836520394156005947184880901795255465772107272569462805036351067961307881185020012071668693855998106192813616383541479922470519884061578279815517472965590807793849092218583112345912402025920796425803630687217424729037551866202292613442586970150075811610784207789425026139941983533926661126457997592873978276964211670369587593723113667664145991399754811586035156806054440581915903736706782136652954322583625038804483743480599016648629598934598100159763256006361876551400175538545517933273827924678777220628130718277715264918027003508214032313528026760317787178682285672835613387497795812842004531738440441455474474455136225146167781191213732799870941383488273116318822151762400672899566531499358473458753865283826602171017244395716502166664594229032838585752848258324652799305928281578136239540802098542376208154218209647878994713909998832010550780520923172725730220831728314134324339417104329424928527939301581389539168205396599240524705639314398506558695829348163505536218423200775051384560152376969179862003332704051472142930215472006466992553354980009330556909401934464105659149016243957433847746159208328992375115556376136981624991412019035436337763377301589140977469022146705257468403709402806772494455742971274800924898783095940742905665872458894977927509283645418550258079173775258905149000969197265310126567211729121386436135414020441742610116805533870175705776676446331177375651239940900024197789965632254056604521779913493325820820180934548543450908127187221639301226516501394997864896125070058424690144562076238904943851301686757455205223795578925757182054938834483055331906766695985106168355117203996605789996232601962997763823628700829709836279052443569055152573428987333629126435707986209125228733250426239697953483231740297485638261585854358570317107335091895733764582121817491534412958287851073537608975137069323464466030163840250095700022835544380022319766397566853383947682156173666754037657063798086798066032554585952064427847170373112648401762499945491540568246726488807928551951046181066611042195001870376940111736549180324478896324720828915574589115294920709092755879839603664472538408019000259592781739842229339823122901732884655188180277372347996439700730279914965323986076615041863934962667134491084841280540679288212590215373296873113722590344739671615916426507045993145069881271713421495269706628772058737844528951519816672322326566254322239296360207643901925094733824368202447143022043861937215798168209247243341683501434044936995376461153992693240923791472308196712605764829876553317272932214194236480429873350038792156779648830745758380175297998508318692600521021331904754984418285208764534328247001929461057588181011828915386902567188631058398054536246084763654547489830761538813818911675172897891028565979844341404833613347966813671536297784391189649550428599748491599740785932115900964442474730663255726624130290628438938426313327458767193207848291286277389693611567897536524410869003910884182714508614151322025188951679168052577424913708786234676539368861118548006531051428076558518657338111732991724411758148446734971786187447901207137008647324094415804426049906926803804383881516208977420401705759864205650093741035741676104715979520915537016253542844134222416539057181952901443017066116656732931545668381968015782304061255584789925081984083682535369906484660055974189324262921891616867792891073442245708214944857479453370497256409965698332093489975964072360190975010237523322674497242331252344443704250735748048491466323641878387110194467934986310779187065187561045347571871995810641700610513976278556863313663403450657055874358109808319292196784662601117393878071630682204555893036710703037563632210037471092407950579865908190007994511668767799627224683294066260862056758219935700793226076733750536549313533870412587837421707788078777979029605857246063976579436861654777577380960232980451840370446831370573703677689299653780029463072988333677013238212528390009687333550528334003063477910275024876425313666909807555983951890311776179873569507407202814940157796044799205789587486986278171041809813615448804870412285694669279437245843133339019796663528730829823786076068712242462477833454518183976832829038332143437643362842916297887167151769795242415787586502250599303734277384049546897765160944396410853567440424196262128064611765627832666397399313758159592759997801409577371130170673853338558434458272498741272080694007286448867845918609518455557746881701137901887907057043107416366776070525007501272602606096535707336616230232865167002972258329661619561690606544597145324233193834796106363351230762336684925770123481607100461449622303965255728131577524957433532238994075601882435669040634506049734149549119208200628151769901147359808446482054775809616977310613708957677109774226987033904649672690720781673717750038213204711468928710112664042455847596605175033103967253151840305422600894614377092421865214213400293512138728240960059921653781657120782693528455726299338947226146392141096390235170284587384895096988031293798827280770202690095530253685910597831130077380535623111701264035873727546129326819399760311909203908449702023284027473136370948820169379894363397943963554409685562685717402188442509929773035548052543298368269309414152739753352471758184390376905399435853756169757620884848894669691472209996809434660051563610119723594328624975086830177865781128319067157831782065395402229341415478316082358730016454489468680404543806512213908071539926866306174710675222779124233842383127964716209757057088211597559852664310947272425722472235578172291823373542616321149618128398411896790971602449945699893733731213176835472697486013175355996083268238750831457938318751416543309808304178786632974727880318784252685401838536338144899991719391775443322698395080733849986788015785042192231267640424094186120390934762995019006987355727453943430787620248471577956901152653275886937455909598709090673137322034620394920498509859286024162734272989541757826278016001801554263148050748869985844229295333623495781377554973643854008281170522871081657808706875604047852714026048253937097731573576633491709886201557839774244112243175425320160308338649178931273598193517328822233415979613413350444302403164912623117127692980511635222954154876716200303076088061102400771236270312640635452115793271558437506168531209943610296355577884078697338270676150619641332197308378119490308877255781613243196514615456267497575718671084660190550647520548683469283972052694191644274960598229766235580072652024560194328602547667412618643217749482529680253261578444931946846653631836467056417237299703597341478381089349720902493305600967294225981121525915285018044554345481605298890435800920825711070686826716827469860369222214577972809955381836258184399402824811350052640784079088055611588723591225060586081808012536040043146691236206791213019194715913964504061089483540475631668074060250574208796424543888049593828196495752761565130698152721423036097731650239401633912168686415054190338732372244149248935459432273536199791201820096251592860722186907560815993047916530968361743567385926293741781281425786716439365185568367755947066558332932819193495972040952709893232187629417525303905396272424035389248781798820582889170605205298164342903235270042457319444996964689125795862248125304642437640836259228712415985396934523343166930899250488578395555176501015042108388534203695359045723536560784574435202711465937588115668413346648826119940325137370985075424460921776073492996818349045077615279631073908361776754159725650882006561099353772772274092232037044034570338110807744579264432143114956181386966100608548306579453077976116201881181566896820749746494730136891857610763926724236853203495635970707394301042418302285675358770851536857437980549127325809820394876225740036951312244671720989979150768312352699071459709893781123447865029907990161134904694153564715559976428891459536187621330221154759280761018966150425642239884212682526216789962971687504619878351046916801952722314440563946827011056212979166948755249242809690772157170588880127746344323606062264709639089144847870502030756045088358175755806770854532995074421215494963405270995506601802361044972258957998613205280103022493548769582575925696209876851241853719571530247296814544878531233675056295245847722080846593258568325966059144534536301715770411198390798023512280618168021690903929406590635975204282225097892245626160356138062551053548900478510037268078782267836601884858166183737614199513640949451903567824824472614315921870322509022368788364928007584452543850886718425252263246648199003947781925525311893086857556924734955775478303070507128781340015404772867098707885640027421555178446845072408058242409207920766847851755450039088585095700564978263841902072180179206767979162612848515258886081047041690434891175833351076260274697001794654359140558981592890902209124945856444430500737242111444101116672395426999204800310216487745570034992700546909329217434915017935942856128767903488711249703421683078231596160810707474138420149889640223932488794625533844951142204083853059238706887683259672816945066679613994815601469358592806550843826093161611989526943880871545080668994687193878690861692069780396280536628964898372429249152156572682609484629827493402474142284548771789821013164389775444432449088369841059884488615274629402879714664121921577518990720070954099590351641537640274128343876851316079360710821295640707593164318698448203217284414994589819378418044257282510898319157863917096216108603866629584494103400919653145591441054068215091788945103464904327172528952758138407582392527332432274860064744235754680650833362448455921382252967497580052271753600070360223315848802680406513756413648355935584476743993220967987263519582228786029099837294493048798493897900315587298830809281111950026547738940079149993901031193247054105271422574221201934976565438923433969496295107576150167994702481971866046499294791688770516164615029833306228273540321223003926456636508450201399420667321475266878987778522875515581956838983284611937286029347674876355508232581295656322445616384642872115362930974121634550538908131537583632904291622788679207603366762475489431992041443764194271255582522120774989953819808758912170086815093928876744730178758752120517959776120325132217264916179762062438055002105958265074991078282739356562813727685988937742928289546602403919005567759960830310832765048393351219132691949141983780537199626375716939792919025585053757249724043715961276893911204585487382471537372318046505577300197046539057320182718070593567119268843600806961544494191910047235073234840582182501179025421921018931567476887263583572557535343438636041428699390629671800890375739570493245040790435576258801569158558532127050341778825336866373209897686035523873792881995430748994755184367061975929609445439085690888955382897596823135018649918274383640623090431243714527203492620857751057245206250540693349213375275276044159040167667771609238181545952473959725217748014137291189307782473775766938045041490386030074266464430008038609010896321997922387917199353849903264734367650399470263765335725003839739759259430611720476787153287935256309651276839396609553649659489519008609157732705082767100574380089629443715049408806575767360081203670472588932743580949871913760471363780021062656166141813013545038443409344291747425465212526693268681864165211202061801210888946511409799026110022432874843334336912623515124207438536976053530159098533622425789911722431994897846999213398952930790607175130200126984639861619958291004323955903347714157930213975340181219220855254684051461214794635941291955725478438466241855574939274428662758516327867119587298168131842792740830288868089490651624318641849240374513674880531123949571562726712738913493015568876925928842376726819384001041980601051155298409763927948167459220740461110848990750849615702397091210907273718794457196893061026781706722535046586509161820086274443387921643795693387685888854744511713677243785610139687787888692231222729550836134508421416292287799585173926704601072719346418126154193370856936099555714255647879540973784952289658483823905277503348733127966048435156696157220904965261426601784075474497001168614933639748157169483083087664549121023519499590683529995870987736845113715175916375630377336606732550012052142612985190752516756591071924828328653696385262990456582023791386735381769667010283440244455158452006994196565706305196438754575202115561206559397824801052906497533975850128820940168168138579910893062619549709859949149357552452912649038572637746813353414998245706416503408419073843845846514493454745626438718835512027611594303694683072347148899366482064018735370506205264701853891767349630248447674557403332456597188558070607738107909578935608839251950728156158250919664693544589985183241391824394670873368891125004579691948934295330908978970338387957230081902794106150942584636620211418698770725626947887223712742672952336755886782984868309705414813106252271239086961768015051799118454282086482394970900167923191474018897297127599956784978381448009256206065672308692204681962448822989426119134773418775756457844730249632625037853856535402628503878011416073272855475146237036550018085404160881609786527913230204250893822125162520274645633427915903898971505090309558623845229640395904740582581908806753511502802094623142785858797308864944056476420950222383844703794942021085612461557991587749909456858718007477359439423488094028626195915795149780806966150975778490009660433727287907231489700110050864529499045338198369381778439247511092901792505105716682430596182315688369314646561293728966410165269691601666136420125030689114558175852508871282417429784914338010965829290230324739499580517596118115536598045046527781873392127893908042942249165184574767929650278182911735440664065436180444585987105662841302068799113946270778850918807292198220845720762755761673424312838070998067748220487884184108410255016451467109919519986394651326403413806128078718935721150337010328652084711626060448111888664552765309030218613949703750438181899791646504278223995203213837485727798584914310790760798348461855732651626901276073312942191063112593484811424240542620709407834612711596686517091867003800729956088511194095248309868124347304928401405931938177407435089888424327896885089918192699458914825291169161336090415655981922859318848882648033554025413799189693150896681788936982414816236116471162851373255477948943968129119760195877906377944176337487684487605092307678540376592407339730888202344250560356432559436567274021385461111167068261682109622859019675979164936381764642639589284592067619374421032204702216526036195084781959520541811207926688028217794815744461599530396960919200468042333624107409331184823810605210448334307616645042976203558451178762359244151870812363117351491290260406103935431303979926002428379112207186714577954390758853740295601338992292057027035340848803032644342022483967973088986393276142260852475453944344422415670939629124771761219488155361432538512065583148042330022048024816947297958009532014255980680154347976514152063098641898679344669724364555734009888461513152354661818467871303609034403664512825069069443803195148491250937213617531657549115795813717915980688349423358552689729824597250888551033890227050504260230795551632401115535103401767728690036197834358340701610171571087868008277735207767292995546136469122275923734427752968863325000025250202823112115379609635372513415873022479923245189420995831517709682639414499405925975785315200725145386570183230563812434259540355402491970777627938821397631889288213593786449012525408435996463526339996151717650488341386152543135129321275503621177814738709279161106777612300463270651627287027997703399500320646926181098295422514421405849078582384308608492488997990790526856429081904407942384629346897867692098654256767164197605994047396950199905641201705309521377042157935630601372654067802856994839341491477464525330797286066084727779180644958782301990788994757430774293811392645026027005091631694374439175473327903005129163172032895817052046490188221421337001235072046098463332290263947779511343077648132033814311092061866516699862284695726199257806017612657771803907533119712137207700762364823887506404636660405724579725781640157470919198664439615215803381774525259907347902164340938531841548488482797671470506541702745344000153369773958942159400962566098055151859090132049012474999903687466600584425639405977187599307449714048296723299543742443454489464588591974010418344312187831642890068682952023487532925800505379314380400757657425581680398584910868731923492657921697707823253341971959275758249070674324488035775721981799162511828092686859166235688275848983654433542857134445884567354050332381757244097736776243807070752809932423122081398024056149848250724188820289194485446599669379448373111041983746077627974951276490498210166876684372865634986659089344749242003434994685904701706947269191477945584603507952384836202587981916962971296091427182464819257973313269671173383393534137679911758830075878653326163996655170349805108291102512274877490560068328048372826957435436334466765770976253653271200448651997167619904021093223079931243659430743340732151151201253319811579591622862888113058855112434927020703941068675140701011416970798491894671471953002478509767176629570047411551149641067780648887283588387698264768722946064948819348123560021248081845302163939175724488402300099213991130979737559183311625774263467627085103852096118562871223540591792471132767246321917736724014149775800840234114512341911587722680759215214010313669545090372157539470107209641011997138042557717218404362459295002137332435332094947227556756893183254565082200012298187962376871042009394185257822421019378821427053401528419260762264467553416708158927104977789081289904231103788966784716767418418822072869156743761921971753593629165778994915059035142125052388830447810654591571513255077900049426132465995040349724772081408714954380212086285384586936945112278310562881880278588038360129829512715465225109278319756201902606148405249354808606685005910299845152861618917309952397096182179325020516139596233535515933058079213619308026170397902229448923643272364298325000492853956240829999544725411748641995463255268691497824992240694286668077872074905135730745435848157903747998890821075162271815967621122049914034363268276698351323448744563427968703032255492533178357860274716860219664341496265146862296998056857313572011856180433249336336185101321267384706647577326473291347984998165706344976882639885427342969180566894322684947703275604333851315652032979004687276781257716314442763773984279639178840859715085141052306981832681713421612463026667068163512074376222496556481752273186861076934363468026823866339357928500024937308105139810091177712726223509740600896805440122165543922017850600378177781451622122987024795500913537470443956844293080911226957444029786500738051774107643840872580156278594139139946479191262215851282610520197023626475724608601555057650254008805737717091956985200831154468539947268222311165706239885153805898446701734947683429038930846461725337985075692263896658126850901884156114281848764477414927499367014614478966279484855432909697323977488310095356073518957307847346038297200742399315242910725580384100176067251498599861693119881866575766533961928594719888161578999730387635565322889788853568921630416370168869618128721859541039811119826030087182320398069090994274609216009357708241925967555421210479249420039043901629042571481178315693304152922784266309054019798853621944679034453769244589306915285016931750241503159951238857253909810131914649063543511690812946130364360819487570622997653021152481196088661968884882379510021692329530311484199214579816973100913897769104757040086668748681395453549709102068272124864691126919022245797848013796715019627939722930691526363631712996369040273307008416046742881400454773483538189718220389268340964160608560293941389543869919885884494775767716568442272731281935540664148063308210143343656145069117960278834387819693303583379260198059771458777600408534014959013791315959531465742799711015601709995367099047074019888763509345575273514548638355171380831927316602951356087707621885994717171407642393943342424165882798951250500253571392697140528976590067386121796362736397448725083504037655213016086349947612760032832019970185790060938173105236346872578647244726952400779097274859385780847695197830872409177240899193413171702575442950821248819656256705253836785673293089586191441838912445487239708671166284547781941458741461335758950550014190686837808710092763501954347788095736176933742274006779261206407869626011983196030785553023307095086126543940948938076750021899631285185963688187280173741929836684685361240741128450862863708737853845713144919868595644353646941561643041358924093148468344012802420178087281256365293009432857495538196500170810497560039207816665637933867361330725790812770824030648176732573451691856264803065215119490493705925970584950697288058049943135197765723177920088276444935981070436629884973471452834586425948008389921331983486577193492496102420556307503952245991136872387077949697893037436913138613661440639055461465221977527048188318276258555941522228807820622079155548726355718762198641381471290672578108084642063742077863096835318456059558889159917646471228069210778018634677935596656626658294370658607950832888607779316797257414934947876439692866912449659696417367557283801019225349797223282952719171767112352641189979905473290526599917292183739284313035723400063834150684886324599528240760698457954828940413010844867703864166981559471050965979070267129872679986126271095995067828218442639619336789556005892554569966063686837754467489605709183316143779585156473966598678209677576081847877182377917335866585125152762043101708751951247688225323266641754804398388037573869942821832124238102133495266030479837959497725227507906487526647987254894656478227602961841525104930542089818224987019597214687863404075563455044658799234270338454083092305764745259239878933806599376635691993829731871429756932575932961986632402943002751319956479173611524558317356390539141559582910063295197252594687365009106826424833476985766368979085604321696418084383642524187337984084121815842546528363904641911008354179444729113214045539099895115319494440638134430078174915891033463518863592409423547081249687445683956017666652999983428586548370672118888292248328893534867743673669547028175614785041903507758372956213263583126923096734524894361040921138900865053809785881910577825580923973007389766825855002100756625135977527372692244360092474620604418061814820833697809985742923970797123580884640260098221979432142354333799932017350949629614739388141978751202581948715135713670992330803994215067676010939793330067318882399405138367784611303582437723890121588737260273784383131781210054043353986746093816689128166154496095989944606690145874863139769628220419505041394618407386411716488681091595767355467472632049910413256835455640872243482598447942921847042375110129114800869294204801028941101316339833519412422382729827114873001117548899772360181330173753227451622072100468595046047300455625120202926759036347483792681647286472161359675329188628850927027913447915098741057313016570050070401415248828672940992615757525081646915206460810449333873510874155384217543689368256813419100881264321861243528700939999822477046347478354915417931660865787664164543952713187914171026717878267630552881966328840246992366945229934721471785373010923420712479970491834847384150516688230841988713215314457869144694981359403832335497685020348805905092460789641691768014284709542035387255472562197360381947528032172431266989217411066417110448608244483515261650611576121201873516761194417887710434998810903058005764090307771637241573781591289779105522249545036971052763231222626927433458077998825962154214108376396795091931216883190744654104044809257336078157464953599525070077530579421744815222971971263895241698977181842739067162943014546765465201875126610672625234221820695075987375255288991912456699612743420738246248248815950429022047043411873107748864803687597136334763400103577957994265871654575455448199102776020325401252472908369043049079025466510801048933854442376213606450290445648584700313889832471783208510632425776774820261362557588776209898584857860486135545802699051468748240607728891160980667109852795808961510660373428225745660826566230471488205609966934548955970191023400198951549524151835148885694090751635087255941373488529598399306887763363922550982296201740561449811447981294319785349465334142004097532273476276396270536139503386644070037625679213095243069846813969084025811193263098516944979302178177418326377983032714087375472827681005671030980510360680872993277251258783630019839383171988514909502799679341060890423387158707196395670957690934143075004098005377766981083997575322654258716808375377025419415534776483978654775633955044519005935459607791627279775555925854761015542637345271487585516900040654120547808345621543475408009409469965825199729296521592310206189235462084468379933819976131597247555473579314467620649195029065756271015472035145322076203817650705219984334221916791916910379780555810028550691427537346076109040185793123915251146100774658036301400069780226317292648009224044371571719929290219714031925348770514418385939513235368208716740452478406612283295587763884401476649066453761941783507871268362079238402127761495444175310132725963957264032509027791212873689693929496188126387819732348563499585197452924304415026077346930028641264702703151034818645415610597838537309938469432539225395546799768022071747139571901213134955535557667661130475376358325637251574700643814989426072978982009473140585796055416688496735674942064265049468723809686049113433790857746992431190117964517692429953491709532774631477465145823744772379997889479962124493774147626102129071268689607717372869990528234480560444287898601508860031717245869008538574131801336286363805726212534264543658022160979702623901136400132892224472928038782980969562931259046636467349623147986941230939162411780143450467853676367484626462239814463869081004130223153355812523174040421562259224113008919256667231578486961057579817379409807047673894253839794458004871095968864661234668891004831549616736593423636945400134000135753711922865674290800591108430791801401318729191560742399862105981122453306222964478389722014491535328522122789346915447037562421936240197030903157526263458544105644448918897396707490857485827524070566055370558975741033055243220499991354581489992306040520327205250146537651090891495201516335512513538861756190353845639778637391607133640019318065812611949050929684121346064631046945634508716609766893194461475165917990205696387986722221148659237916682928325427286127474277723028664845873129578447989095622446022083015327986594214597375793719926078105345964254452327938184796579587607815031791837469337759054027901518191403617133199520521502801196215780772620257207572679582381069891980824535180358909943793555640126817632154222466678090186022526915036590889614609681431753405639069862561274407172791930543151105200580565838618841881306068520321456262021568411869828948852644829627155116373590182821633252927360113873583932369016521072105954315705634092143381045401545646960887862809317748740154163001899349503986822091757471832163587524512419251100436531200155733594013845935945060181146792999031888474720708069602434370289083491843615494878830864828728249586483858219733621920272037703560811801094683612078571906223274285511743157219566415040113151027530722102464530924578076969580675547376381346098797772152879952765632876917864241620413732637623593654589784396894192236455864830498938852530465094618397538557220330060566787403689777206008803928703637259500054845019373227697303869704167129551048913435977121972236635845868848807397983780547097049371469066778731284976686303731616517654121585576227648252492193819736931684846524127495899974375160815101476375015676749591902786256293546472959272097037254155591437640982443969789097425355726743095021117481636339749421178588124070291781997683521888976732288264939563392430289164722329555602125429019212070292997048372601754463085020487026755334224481310480594451415806367931563068087559021836876996491807046976766141656615302166943291282549866909814401209439203341506825047523851762996289417958209391338654655308705841489225729246414017100044716646494751596789341647749884159724636107315600493848670860239674007337348109485712126793058776557376333175935283524906621159365730696015691260462155633131462175826829742540849674532762848841913768623766029121663634541238430616954718659676261787034960980012964958017330317254855918950221057704722724840473976704334343671622220913599170873955873733527915092962840125062786223773748456852881521056585166814156684003589724740811403182061780381601791850688388419302747976695764237543142688905789438523382160128953611237742912425131155264202965432417785832535778824349432605928858053315932579238665786922196503471860805751212698357253505254027114157355511837918784020543339611241101053806622440587064689300740079234526350071729296129327656837141932264438982737159382187207663884484664130513775681562586820943216165316489137805660635715357182010902456920404274062803755722698782431990855482170463348623508871552899461909314618337814737951614939337740058221825353474595391414480567690995493971473296075750720201594054835979039604864884491367007691582688404133358196632386142959663130273528120864506686046220052801185150521754892224852898640175312679380094262636156902228082487413830667913796394529781239942617952628032606908920410779416545384792533382924152097551008868497100566643014173056322596251210729575378725687642890747072315135799988358607766976226710909380501899410401768395547606383484788857145623376476983348658266563890835227644268997790384106117299147263090174026003994824491741217308911309381452391102837076514438388800089103038675422566056039384440387288399698802806645520242596818443168631295558356768474843352995859408572025907401972627385511111357699036242571887014918467210334412560725237238059490471510500585756094085332039401553207893298180930152702260958234047474103584349054583845739421227920790569179695719938430219527278341201711970372628978730548674335804646902553319229517341065349564539895512400588741390301125054866987550827328900356629072276570081126751960168144186931304369334628151984765958402640385052522988366384142797403673560860892663512284097810496523329639960380731472149069688376905180243468559896760562548820201633800335752457060131543144587576103533500876039934863384720816787833494462293577377209310172654594899891218494808943278650650557991066976864359264608834926513285629514799604401123338748116347125644036752244282340582602553891907125258657096364093382206672248996469535204762906786312122230770691803708452985106135035333114496092749772581099537036524142309274946965726613999479536258043274517705106844141718785141231498280871289013874381139264731015220855689788175182328757323966989143836792649091968989013637441035253692011797564152552394641331431867768913926037317560920984238974471191765008573503831964933640519077339629463499212115194235450636426147461436501802980102971316875864274010435864956265666195377820289298185984602216798194521228695808171430379445870177551037306780708502260957551079104987331165611357262806677753729014359981804793351969774844664790629104540114580139750256128207980906107082829382132188765512124643192178714757932270729331726255040560188699781529626121449765877625662437775219643350523884945121810692068092976887577089488364081106724436385329841784272581932503163516561026771926339875047249350391597248025290771772030462895048959753226235031754237533325994434941565167219833305081955077496493112555858020407000686393594392365081997046602163867449569121474538518430244308725909072406110465730688624499964983280852878989150978932249192983694592095099425299744515355910157611923429823814900740879102562994583797871541369303981551287873099233437305711484848561377258545924257898767954227140760686634185167994275704194491085343043844538908813543419916802341779591540327861919526851205393310650328825914485732475152974340710709797082711277102842491544996792943840658757873308566394039189332833967163301023040413684934208605557706224070878637367632202916535913227849794624699053848069295191838794556073162845474413427750066117684619015268480272173516244386289287113540599225267221809361575484307966823143460909592129361551122941706405949816117674808844193760943060622682649003750784179386579771671605500398669253972110214253342526955787796266557371677453653983097344706494331662116777390890805676735869689476287989982471221338829097582420098943518935771897839997712673639992368022139306565949637116545271532951081130033397141704568222511336326104232144820113753047545779332469121864231716263144785751210828946577355094275741499241074981423025636454758266458207684360479538975575954360652097112215665495853852266274280447770917308817546145205102575802124562709879498425027549834607112267038092027548461728209226694324215552731477742485810002185403697105468397461355723778255681874439293032572710507809440903026751693119300180611382437055918347641223095080341687866470449319330640553118821962898736097525338279067194947621687950031510736217111130637067463948585055174380719336092048137490376167441085123281799500093014078109531548399077869880534104002164264167145997361899809720397469709810475480655534135538957794480543746229525714734502117650251345176480204473115008082747253552404060490113608435003040669700790842480025795762285040763808070100208040858011890527714777015060847792105406334054190920253180637078408728391723161329289360804942107344364615875161303495464491540768540096493539496201809771016434905179635617365450584303404822614628082301641646387975366918133175594062159058954221433231730345079395954109624767303545599187178696701192595267028086380725550580843143411217212498812919767202044612073052964473640194091734911806687326939355175569954386686744382203956608275391793643172064756518372242579930579859881652088035089217353830237246149677411269044197326319228401285835668395909112878719406296976066041184650108395265840640091257689965610425662857050526021981047410534218130026193784515689243356359967998796520668966400679261972774123529266546807258105305560717649373690225481818174782923721204966866594891251557466008465473694911767632576965446605598212807068546426912010045705143205810387248513994282152734476419661913900468854051616428847058117456911100428002527340328918470459897231140185903281311024108977671636835778815421929479268434195528990243386884920232005092845159677522234309926650052943809279310031178768715543290147084546180047674468971637874429196468672778351985648151254746506110689198687738699809389093712536941548800137913472746268101062293535671871308244830170703837968863099645458724178264678988651464997593325425787748987744445892578880480053527191340156941179198644096480053903589290129149893298951671399445408013292910130288123158744970037960234065333930090717418192982298784546242597184120100582004974610775164485162132796945226358136598015329442015740201529649721884256680375321605765047246738435136430136529766762400207589598508947024377945420817721090608918763360227328375197792816961467918018739213202163802274964663275794691395398394163389967400351004378816875636228156051631738974650677020628911170941596424339741072829703075747163104267634844979412315485447014041400449223837684857051639186177577674450129528546462668589120242527272541009852708432325244613673976787256168932724624964796719805802586439450097359502330302659439251063104890179479389515652990164197290097481359487332311721021027797161984607450874744391781190600084047251585811443144236989987409734779368386473361365825516500335129339305592435029626554680871557212972729599628705216336652907433010072608393569606311869216588370306103550888360430914885811905365631462043251882688248674003953177065883384419832072704757970934963071519741915088215792106145442244563353634157669356374475968678236325806972645544654707648222817063898757101124747929718896837275810668129694538027000072987914259722074911865331979555322926757950926277472266533275184561213566386725437520458470022844214247760169202108931327919349835616789336162315231324411667377665642635846095540663923673342300074625762715135185940002967984003684075392800181469822451096062167556023661426940591547385942255073450040773325623453761783067424955571218951761180837475564195251284182619835033286561757292989210870969862511223378891108639671982705866038285809238729477264861199461301674200683432520365805525520651034793487110161775290676874099652254561731085609359326943124616083432058383999123962038189600935248506781587485390413876193476554692260462948932860524816849233094708601839243179089933177927263676197141313681290927163202538341752219011533825190707922572603750681432750880606438870864711894933214399767047728567499352799297832603636387882754564793470837968602454859168932359470202073846047519419100203744314640093811462667467570232616388834111593164301434607971575982847989455899307045273157365610248977804894711806210060881429591954826430665383115502130898097516961605835454358681334170270837263726816321568000366761882933364983583228847744930628837771150830956224993146532655397847211950549704866965735258770282725008569683452136084856900366907358650620813738061730616094178258839711852837818656829229920956901655164494266585818248131824629949456124689994893176862353562097925253627936506721351578060488465727622538402558049002569194827984717057245077520054146775660790749209766465669425852188247850698959518007626359944679034427297782771588342324822085131916534315962707515461614072812660244383423479986014806249286569622508141129801664748143100562736735312145367276268192065661223741172832592022054137324660686684367010637595740361984691465914830460420335911634664574468162377707744912274617639999335846706851995197132961662074841612069142615167467686192102781151764196606849582591440783937586217797297535334022257984916473702969405442852957097314152162856177749512469649073392158506570473458673531623219659264028178966239719248194376772248690560368441749908011792931409845589663906543666676377128457797998784676427089180898904860968320232587780046811399512445277518362994166530049388787491146335413532614285392701382301501251855186260533783774416783383177279912616790725594275758590916231598255225107623844866214709709952922802756912966403666344348022241063082364039931871749940685783229561452112020425137184992027734124054756246042416009155371678881898079980095158382700437990314979674122216666834670072871793158058822646440269058710631188336612772462445232380682567779199865344915660111408641442358167172885923206516839919706642899784099060428054009872221886262256035916447487822001979370710055997064024652919842796223685856657906167113860105540092418662663918875064427707505947884515577630215075563804006750644967871867328070446622232397574066657927645405296606101044111795282009644494022270510701191229597780662752091186274793424702624209044713488709147069309494073501153988070060476332123628789122959759466698383418231521808477864962487373814456135829734706272091324849759294254950337473839855132720503718875575630085565760851860588338719779265647368426664396642456068480850287080799993442093889607583027000735926525371864569688481948350394152284450733942704137375708414155519335979947171764434614206247171959331916559056563352863248260860499146975540755009304150931819681865430841661442802427698990256202301470465368049648453610964069203140652614335749496354001263741464010811637703330334174892744295173322707306361327582269841685856007881667600340598013287708113736456474265150716734210112345052068141489577372192107195212725074157065595836647504844777654347183365533519023192082167513071026416084965472236618106180762216542275856565014761608300728697565316215741193725066540699698295514263649088778438625503930973353745210197303883119849603700270359249692174217172409366287932805488513504155922733097096439908916341488884069940286369793873574063759738377475532091581176697835710921215681846582973427424321526163468167716061824139947690779650502326827131036053241371688270572686728429339302448312327116868606901077578930148321686577101215844926744958491228935915123509479777931494068188293559722221559047875733710645368197852190240699500746690930743949807793471472565021290699854003653298931434827277245810795073587484961199172281336738119504428646660045145135591934232040135668250967315564150264915811539731213633861923640928445912443244828295738731368080943285182240988694948587545541218704045016932540971215604311063757059847439256971662091963692718923716670400259457370716858929190752188066675908405742959660325151415206194742141002356707252014748767540412719383782227724386816441063819346170993701789146419624648264829590967050505395868140145418415834119379521073155709812046073444862752189276977538218505737476398337213582962282156288829937114561130829486331757631291972896331241296193212738804330649309295040975193317903097294451361948718391471755222651776946985992899953512319645147704936246732749212927267382303779051069194738111073640855354716411332557619059349316698787175625496381476493107329977298612990186825067542529160601022523135194530313395182330777995222010767330809186318206657578755753325638117896174522143033925228840355549160089103394605284862750731204118792714106220089883795359310418105299863093424383072933090598800454993909396564986869378919850718984429848661369209396441230045103045132663776622495913421043021894002192684347642450012604733055246335387708858602056302537222636486237499611229444523388360126161164112823010734418144749799738403639412651710096515888355623034581267042047822313151795897577729612074593368757697565183274116798606040873428427445362126244236729049344956800075441354718638279659266155432109944463706843694853326081968180598602289227476200281410967672310119040656354523239410226837753558201963823679965129180823069315630594996507462937179579182241011494806635848698905442886666972504243938708680429460803721973701777746274761457210017492980015697399244413988980356962343905268832647650881863183635917398259452967131035938441270627656585361600235416836619559405575983844372787058956827049944725249529690558053778192774377630582010732487900250765624928652527567146501848080359807675179330951907604428650066427523703325938487703365205325535305845826687627828917931840528382620052924800590084338918134505405343698853192273734153751017093745259978573909758196453148889710088389722889887895048428626944279662288415819549794691785122590169822622086003744674929273773936027685119633363196337262037206432294649310117298446907640943136431040154850962727584331082826886109486401334802197001001023401973695969757911412278321020176917045695131923616907634157289278428793234583492880563548232154722425637816081348407771105707259654718067613720850080809348733216604234710117424110128211769915874237519761103996397549341670662368287148972073678903446115171928389248339241695861522205009383985743009191692123291187740691563245616460453706944807401323707603779823522863796012918656245433946711833890312266097448895071047787576751042767194505379450876835508390482748265673509679470339729027978311609444791933953057535189005063797844975517578474445074854231768888969585422662674565233363914933425964395326698029758011269348275714364549010496201838420404207231534971224713788947039274943398592703578544247013531914669628819762538064237042045752146640418903457753046682732802194540592644440303880120310974204980344056438226080700556717953833711972605584919056878683806196034428508642268154198539309604734906447361753605463531151011206149964091392691040000292638160208615778196592197563753995568619164238552673006059774023264970358253283483995810362028278797832401803233919445903029847288507810058530418738071848735520046527650193985729587285930974607422202762214480569995933721485976151019215363225264150312570966152925961562907038705296669936988145254920274710982801570023933455003020848244778962255629464784870153358638932257690716789311896190493734103047836329418625122693906790823367988651656226189862456801205475015712156955407315674660624840315838369855974160246733487800087027192940691670945809146259330409616686668678564095302648008437861102534372831850800256508039928020708611319481376616985707228722407930405239449320439383989510126608423732510858899817397410715448310372654376815228655038462047639661822527602310594134830653136229868822770080136804814453884711221572839275527324915544929570383120088381147002986455657551269649673350426527786860497250122886878739612620272194557177561747450211330376462827381839668901423023042126355776718806158677062190551943081760099443745086517867894410079177904730909396674262025240522392086406512345126686333834112625095564248027449696877502532808444013930989744658822576692258620520895195063775043670407340848478843350960953587871698737416970407183936363595350060611652090604537607499111489930167435866770043873525168280907558443823193412894224565489263216266200938573517713190065033247511785956389129644406127909167187188060058604854289214951626995375409761465000866982785401976953645781836313554019705207607257618292627531547971188116599500198244435674741042044383005309308947790899252342449450572071858999302570633891055261754506870552079523196637250122486948530135837032362171739387412871884246618730956540810093589794659426581019190582334001309483108277692671968669556213315738138697631372296376724674444143298916264032504478786406854979603745978616287030011490446011960168605157334924210796035203788110228171276214759164572886820974321856822234980522283048987104865851276667172652791959612130125861230840487483963946699408061870093631240897434880056866672821318431303117611547858279031619376695745805221861788434047106736521422504566187663689221183021261615025446864262916567172183192528364425443377284887388400535608030831519407246645189266989787564508242389745237520714258365299413199387699027015851860253910974962226888421442359442717986992338545287180318071339949234733836371839059604987939498123755641927379492254561815810475136893365328024517606073048691995212887358646978546908012238136951751915550701858136820359225736105716939287684419838225709682666764810788736504462734283658029726957428553547284827188155783320388274626426531783640973814153391232551981243705051232742002477131154794285421627328565072308980111760859934398320925645945513476781504392988127281340469553569411900787639056725342214415951658992401528973176093071494678071614319648475443494889880454079130727855312380537438175645029565832368556380327199801183638025657769208797598385333786851406850315554717097725735130641464778635733673260737779438680811783056387286627822210962056414855231533825630384864395998602510428095072998021975228649509794730879010390455885100427518763685803372819103807068293965767141257708355814284277498893998354754245023340567286088802164042547273477428670362210289918796784325527078715662024605718908281996262148672943499152410337796692116380276396676970560517985475410863705813878915493786894433207000348361133226007837656023269191120063714966940019072488266390585494847415849722407998342345688128035065321972099875641015231150425214901313026799390623349721294649859988645580012095292291138216350775471557962711632597460794608602484664509783347549832322865204442487624498308543216956093856766004738676080528438715859249720109625718489456048036536772760968437298198541614104110718043364770043564903860573143426675732237837920471513780007280914046863312877570646400125937549657691100406525874489880590493599806791444074740882957492741238181898616516257084735714136946991158176350780679015515902357682422281673986521130134776409777484684551698686920813161685056816298626766956888568020144294143862598044860810788884634072627319933084561296514397220758934755807427980112737967830167538717909652260891155614570986158264957820938699463419519093997937071951360957604763047768736046914479715998530148942317408670226459649779837870593970266688842156964511432034711709121504376630043431969345188006182537100553751973097158033614027673226523775946223229591799288398803907879790603988311905942231989476419118527274294033237270426542151503131649002136731563265793100187105415926333618072464217704584159301993448616856280582119156086140249317960064284721590427624609392487672458191521926899003701229268466458702619878678114135537942130365583080784463035175826042354399896252566783041011335846550246192353944541999871256470718650177964724150036288144188603560419754770528328243275317023418362969918616782748684968446000005606503097522615153152374411950080109352265460114624135386939500162432938056101274048831053405560600046953002604943708968320718088711313468429527049642956121911338917318714196890994979454071798139329228676779301284427371014943023106691926548405924589079287801234469327557649681622558876741690360322409192234103747606413996352203723947864912722212125426596310291548544888233773667028899006164320169705212235511392912977037745067419672130237672735947669326394314144979023522588175903648572216510677189328166941633830862100229671168561263042394361498637606772590564292933494571601018612854051079573405607537224272747836183648308219706050991189184130561613391570439933919344681888198963892026899808651879081512465181306041223442496480236856712497152185096347441366393767906377448916643694158083451526145678259936037893579788706417600163836381303122777523128804549372788408896540454757010487268968485602450490643958225302166471597114854511034123680597580860026182156506342788143381128166337250141389146557155278556646112727196510109442055305424780329341932609214307248913378456188679047783227804573186273648549686605365604017728644066491522647145032306476164450562934235652601400229962149713587526659791745008828992533178200189228113769466450425973283845356855938461457538593378830961555795704756843335805704617174908565298344011868217035811816396709273838371582532084597514577217895731406307075660445310938339276861320473710677063964061483702557499613251784707585317500546910938030133096047035258979243380272937068233409033732078849639455265410854948971826061941863482486932789490556048004467780587828153189440645772271977326775492423441852850622931215340876985314844905659559118787309297935391974346993328710918900675758290601527525087695078567753819509493771047092814077944427251834061226734290433574688919629178471523299441209883296201823227751112073096308480832335754991838651767088649229086570147634777298928513591666084057513353712555583625193446022572583252079483271443808302645496320331121962561778695893471423699745161325557703687796479354205673905497202860744981614681792430310329126598316456730656721528592417154699199154676128911901873621183215086059446755098932341601553780331028455187667771339494139848797394195134579846226128705345216786256791825669627994678454901062764609089533949091504515454238191901799552617477599803135362626722817435523831776549502198110128956062348415559732774875853847798147740718881598841586072007445308905731861372372144825624838599269160385580054481028785913458252109558211817579631057806833834018284337442193308281313803146042974572824290264991840546311219977788108193929736448996362844457149686702978626331539272765038243804879419689150775411568931462556355605810406762324225361648917943608710028028559268877763223008486894181818382023555536235523282392384414656352121458180771222034618035033295520517921149368874937353490758098846297158692295967566899046338523213332814940384141728695860760186797248974773023479517678977454430288403790710485941809544368056773030400385511265362350855826287206402624858438383054960438320029017070947034792256714878047941684241664508517638364610766163930967737096400028267887009035309866139486121503176533151493892913375319386050788977010185520635355676147702346818331959803723832857823395519477330358310997104045010903197714223152161415755007177574337807786740215345756269004716372663141097560033666948827454276328184880926648647349438505133480051997263079598008848484419547670058148203558301505138397942979672450911722831938683403327515606656820097212216981137345095438762013984730675224471231383004236806691967178899203131686427249499191558772134647680382845651772166656162502890168614359574712984130926798326012364068416449277480970499913486171729979461432433639017504391438864488864348920461998322663847804516801802064965070396595688567865091888918917292238146051900298973957610672890499946967841233152582564637946384945213244439136860097738134656768314128365113956619929907045959661205564055748728512318135082391276640881039877448325207896219475474649981415013156882716394215039807656233677976659128869520154674443617203884806143395363640606354784366498718814269402473953681767769279134556308305742731856611196634941458221022555571178118949014627063462859290600175869129063552908751585056809161431400668928168927809713234047724463731334226671111904161212589271521666218797027525515571632886913667327417260306969778598446235458781219442698396931998719670713617985757712702252717638469764475918180916000216884522257600409227576334829623764013473545402649875766149487968665708174065819936842883676055386018696774136171168794975158776358784519377730242602546005074937796814193590790930732517128582474919639465670827983384539297848590352410878457204132935069925594867845737006134527457222195018593130776232311384303265837677858730742368145315046812759982520652729924109306380418275811412596735235200667076885729460446464826035060525411054041505214251043661823670701915958450269689791729300916779897987939193919691058118409942461552252162509877954105440022728650322495937710469608498049672575942887688450259962025452216672572136101551863697461840214106933480549808627382560624703859408732376825928565147600550579400618804372270311257177452665333284507078120249086285730797887867337031455118080770406260558341243540298274753793079001001184006937303604220739420041655816909870554017298821257903691448768687660372644713506239826738336217106782298134949079193771323376421319484147260605609315613425301204887635322373823554037117126440465940626737675305542021547051722189170078030158184808773137081476812382327243916932491850200481989985765621145516223781906533734873172183920874373099405435914315946314683340843928691296837608980346240382351051108470553615995529706298532211176599314196486118306447042739645539822655892483210112511221898111776332750870295727752338440218752919064047406767907821047830290757264359809308999236019457745332922132504125622068038194635502571377150681716617477538933429220603527196478829179658254891082905720119457886731996357695037995359334163450476255465485923296720288514686166541921411155952365808982789445444435974812424681123642706455664584459563238199551645553745389035063902551789862746013114130254845359834514813200722871991309850296222060949999580248410686303015277604394532960965147268853798516641619004166845115759620840777273874205275549799461500538261205965042169445047804769381070111862756106829040846172236635088126437080896153221508888550715766529940519257185155136781040675304697659677530620768427313804168859815686605069658391100222316730570734273478199378551165752887009371876054353538642520097188616433854790846490200486902510920048734612295228565203478927821094597698018709701357708964148274708148787289275527024368268814312842698003665363709122668792114621478937752330270750678141805266725293126830630291272822358771189455927215209392361659593362572786624088952142422310954314305403626777823226052076476772698671842347071711190344458633092371199411207156076573731947970286410930124548412277059261074864871205655549814810550359826240666125364929100202796547844185887230287092035870884829591630808128025355837505978890927375971933735838418446016730765395365349165558478839685521379035103437295067942378673663769658842979315073181185688302892787285558922197169063263653476350724740866891792752399400744969959572525563025211149372794880360276100186927618762544207366102987224066013969449348303116007603350067384502501266433643753751455091392548723580360745672411585805597557590678534736790424475856625769105683102850009561777197548760474530580215257368259639313347180413312480260294247973095410759752184034355822271650654357120484153996385873518517309061300307870738439792820364729878424355177229413641426403098591873944466384683175204697974618552070898095021821516918107184904017987837432965011950139008945157126737405699337365241253839499002002489107412157212697244180863538690988948220812055484128067147626181225726477743868891006705730257337430847228189511804517845572866850055146737302529170471634330679515431640360941874255578897064268892567396816657511080701180085837984416532525698506388717235252527081312026900594075114411938866611090622365103530098394963522721732891192168230948512124926517377138278943385276121773416604763609513223934159966787429218557928147042366363008240221798949776995471590444295480541534953754215274739653288215998709421713720238757123644297662464132953917783407199121713558960246434374268836314511464731625569583632633591125978790757776658689898493319338438385924028852407698922846526010538328604080622577535070480865709458823588677403459771690306671531272141817042815348341641002450247163557940227008460004602328959979444711588205486305681597557670684603074080453989501925363646666909128252226439600236787459325202760099311551485519822044953280595222038623110777771068768974200903076969492237809470798317825277375402570332655349552724555594952932788260840270608607115663920425906752197408444778001727415257570180080522038702211410025873595166495362934189508028454547201497189013772114461254911221664380541821957583656669894662597110912520825988891547671052498135780707578885216106213999079928117772916520212040962267895750218434148168510516923695091138353815506230205849128956251961630475027695941583105591890712003119331406062703459820947540178731324744146235262049093050302928196092832566414754942731493953716807084299698615750659734699478349908221634162429878889727336936972835702765417785876762677428682182580312732946968612592326648919000961133863867090202469830981773718308516615860503984619724574847379496505085973181134767224891384168389322470481241082084787058372493325348512390423358911060859523711355470856220463258763071345402326337247403522461744148700256710655083094083895499055078498922064098374030965290526497642998532486978053071524324510598665510498162574989987703178019670615220317399953062590147515854393127056144417477397941633011035721970422977573405734053105952552532096543785752568563660955467172831030729057617761809517534250469748410516892962621987378649767863809956790467563273147463188477141141260679926542935621149846454607769899980930957066522116685697191192621289345035020902346812972341970585079961241236558225863467156655780707694041824608094366896671485175860299157145007056262919181553525366315583456274451785852359210385455535860179825655715872817850604837752075940375834904438937449238883700421785668741995944375880887631304738349787342906338230666076146729690676486864351969366237350370914219319555142174718267817362902088021148833437267663026140074075821481899155713614539812295063589842328651092546449310514599891488157416332798293233607309935850550247418195392296665123356268230068082370076075827844142152629173667978435113476581808892622367283132991383742193434361681605953439857145401713286479579645406156542232597027623314764265436818364793549459331236760762933913587883413634777385805657367224092931499347585626733685735943563407725972044985795911503048877937258314272899828768021513372583866145119553475851742661273640200294692172549413158485674344083062753414005844701309239599049650788317845783686286709193928659345620545456129074364746520647068078481752340550359878050679774675638244981291337274724695233432330903997271130633367886013829569359652303460392444736294463287115533255114589710155209788127121693309481330338861230532612259267185477600952958228166247415116417907314589933499043972921737426710764609905740203879475845169453532048941323560704632386978129493512633252246790110183018846124572245109428360190427929216728268755834975985741503149618657057253236856708375142769467165922769860399096923406487789058317007434825939511501052775773552271278701372938935848484960409086392085549890471712345982148884671633582917743241987317335945366976776350373088168330582693033320312781073111844862259208276322330357716044454248252328550141527265149934676413573637509968331348690942838276817704805171879130369530094640523116087935436838126438997138210156127713360848448464382835847960486054761986190204825076833791187441767412014043873841215726845933043274581828493597915890892798487550326972393198602995799398463640196155240024986796669685711454230585785472120133999532053581767090113992403192394606077799674541869192804029234842608697843540484628388480480054044804979500669508330286362590752218283464228459881140904492164930190398346593461416369932734401095410193863615304732433458135577314864302335715159452038806214543205815490955534764215467489008084882610742987891341121138823155002748009860058863235678535638135803800402023939420714991005921840269693543365145001036027782013218965450555057868581305762977807654734396594653167427711136836125049079593514899572389190059834525085215408332382763490362441335209650645170422718817728830048053026250507579503209528286222208297406848065355158734286435141129665858343957109369775647428861061854660986352945916600273212531254612512878009703980719972698609626810422785433044012149004360850991439278095049692322007464382931899556363711960510045078619610786808540124915476339841233376151226704132897606825500600422126043894408731101184759002876801572273276402482773846759194472862931707584403405526493223697661599900891311672766477458561780593090923332113788700125729814823368493252801299202241069737508938335907504353840312235026450838076797109509594439379835811525011071109837608242816365729971903227275589385263269803043171584075514279864064851221973868135697236400381650870481289174075237259451648331193655484620647020350452100046777372208678501036805475897560509371194031554412759918774009244276415288177519744076706782114004183928658729047472546061783601554472965348053169332666159879164226379731988944903771907119145619562861090272498563246857878524229309864818210197986804187007764326869352796454860884280086187234338919792883655455046026661108520746014556067490404221484297918115088299293151716845579353550031297585457538791854615822128736488490015030555798729053055448345994890468595420461715217588143343670484552519933555958870937771785217649318706592136204952053975099955665458790350120483006769909058242166317944083499729375605301309905185789771300934864985602965603665693770943406680899210685761774093707162971866894792967845784640791952179900116055952890909824357186253457574884987726775515979930261206260377732283888205896402059985010127661305271285928498363682589891602581318191690952059128736859159810767285804828898637804239161038533446593895463412569617813272667110786363414354031615274679877437817465470113899307566062539294932999203416648559721660607259865665992452346871183722140613090627106702360017915319634703052825699374392476604229382594320341271951624768115752529767320917408269110469151398954006016298261691454647076953379146183311527513788659058097247105645644841381041747409114512027443424895474146796069090374682873718847758083510052475503379486927769100398363584688589111761417925102035196868517051824908655692866080353769737714327914392485939051841485535579555693924097800844725111582311578487174226275074487291437727906085572502648053659201071528632519006703886345331826310772178511067782577303747906135817478309830089665517661862836764098431586442304604413912913669000024154065445099083112572606887097834053976048937606204436652873559917468383182908412212556600339840364976583465248388023372104304617359032398883291669112131165805290193926229986566685617302591142271092287042690514687983019656096816592375811810738971810698118667902476943720976852550970424956731936911849621893687490699819864428052130235762320791494517874837809027630403609076222173140001876993038653645492788839647889103873290947300082446990454515593917542234699929604600223330070074713507257360332969879016312791602202752369008430883084788001760751449481828482750619561697121169120998942459308739998918474438035396877062012463629123204019368491552163176203798966751243083845242662170508560397857487810027590420820654661629062740226397902294453374031831698958213240175594158201905431054547840786244826709590743537670006406541660224970041384010025725015850587701900858553840307289816451629404389615066410662024068349643624223973466863719402423136198333921460729282859196107989290542047882445626149851944953952887498403035834854415841648631957947327419220866177835746160590666247643725081623265370434911841865254398061448506422985068599418765188365739941419759285136506096301168725344750736039873411353322423582145398355622047293520571583062823223172916213915453345739912942670756552307532109067883649688829346465237725856966734981557423557612012916504416217083289119878116069699318232151070017967107423720403733431104726826008717502908362645322861868032212913625775056243849374614758285673414554385036409243286237821081477604526410957996874384298415436743326719521538289246969305766029651518809819325570000239881855527121036414513372339462539179141902924185872575938471488754726466648060452375045727686260638472219964925205788062467726621693130446006033917755988919474440139810821190911653705186623771369794784389427116840223464765881505534211020376479488911148254084598536189765519170670228797934446848815450458101704934903623075088881489513354752422611991686791634064177741083249514708643195478135448252693433747875069749176946808943886574936527391532590584974182096163551536868413272282225733062858427527167277636583011795598093556586733580784659311909606384212986272529830643256958880365409977368382879844146650901337004475943975072417713178506698247636128903734093780788651808291646508891811592310944952091175394382453773446418000095780750637686049512146619985476146588496590355515448570121006957256677450739077167040927799494561499968110508218941351594222113548599534045935064714322070189851504162524456318922313659018080604320952071602806559574045785657043330782760535039304520750683423549360994502861603803247731612230378235628771080584889292919024867723733032206279254486071533411197939829554270638651700116115817198825422363741030423599241738302951469743354673778633491103161790988224298069009324822293562976314828001975355007728638495325902253637380557280202582722985424097739785189965451959019508564889491987551337650761509156619667229925965481308041863393109816125240168956170045572482200056094050962953798713660093879686979813266780808812795322478803025574904346496805591078120575028436765120456508467756081298335219412423859947132554286480398376240004256636552821916492396637891652090609609311308433364272848067357761270068448741250969468882451016915783433973734195135695512350464401680392903196210880181547612351244770729051243439963480713529984843982791883704454573895504647513037992793096178163058042035599507202479597765630248805671924225286286165301230149885489160208447968046230684298149890635900232322404906453976947678494783229931374014370684202664991776927331605055467094640231898189480993323990191702941531053432841932658562764116176868609021486565323737712268251167848111672333717024509882698716661222868732022187032988178048637243404772972095760940662549182164246634404245231901747259551281582259134670085318719662042692842380566553387985164616636876912810634806456722027917755771857915193840143912530146523899532454538090336259603735270832567755859230117009480032374614420144938856563849269156957451404479759479108447668774565575360115993632145129070835372687383178701305694049424876826991977907671956455686004302600957310280556865777418818514575466363060914049856003442938099706103590111722982792321017828035707066538252448895742497921711277556880589178593291564498361542639208505669874558395682099098566628271366051301584546912357547478277225765754866017447025093089485637691908214533046878047956806737323998718796122181974377161186957975401306191190935459664698495294713967822918498513925547607024390148270443150547310285143471400678591191841212836586209915293185408503216096240195110688815909211247343440009278181508043050436640470603456758134403141478182987129755956681581949461701447271739224562266860032522451155522570834247381243894409569499756441710054718359286125837096456978091324186968592368087874039629670060870984593432559713918399657183151752057808313935920639747056762658910163026079079570145809830525636964740724549693241769780768906099066205768667272713408859783095320083954981015526949700440028817753207403917675555808558157734929173026470543152010778833041593678833710350724093309676158350141587247300487959904013892380332919974299790996335424465351209144052065404288467352944551837689579376982528819055623962470702151672359751460913814534538206797079520805770873460869018877553943666008938159318270656623510584010786754399956826913534918987982685022504282610842209334087543301168341622464004622143753298745571666529744956260533949210144722071959160523198871316290992893623340658117502843139643238778751635345232527741494118946808186180982620336286533946912043966664831179272318528587961491608559563400358388106313098291808639395451395820177273244939135834924343601742863064817542626240940427082150623046404630190638023684761450196664581258146525688532956761760631499330624610620971340669343163734244101614206333185019601924327937622886751326699464448664689785145503954019748468281418784054367965063486005958194818531681889433577307003019530675522914537702598420482963689925090934351168437112852543731667807404616979156638709546561961632582017598941493313226670496321652483374601491893595224435546046052729497400320596753334353320285401426919141659697191665113932612493611336579806270791408599535291604166686289266488431553305258807578033443675440010724124557487946730949284544617712833733869279484703632072866160335686101301185720719522955277198551747921124168341087688945594445669785938845776851243117119221749515668198097592126136357530064497023245058168323650309767396792920738711007183517147717773848384942257261507287900661636889958423961554531956042049137574595843514937613153739773309209554523342807953454494373672107855439465533785374464558754231816349913789112063248648659835555915328754003133601036169635651216895793547229037038831296072083674847619005002023016696895782125865197405253249910206900561661007279629866124008463031395383002122386887010928520740239096872866697219862628058910640317407628636825887486338312642866417455460918626633491754475044288764636784864568537524256020197673206339348407141875488104543383188181863676106928320317197269363052061575073027936813440519276777289400744195690845626402716705838448803760742607090167208438245320507034318373973979638647936764309086108441978922128242081337607517022326568075804940181314673445838983796231020521582014741980345803309206637477012397181337988078599459592868179074027677917047657674907194032176408519774694674715065871108899158574916706226917621500607431786476945565034050153872355658400111577623257445121880682535635104375431218628155189502272944427858230515869704958369624774600265619019989384469427188644437599665599909947979440392304992426994231193763613504111758973175977436075219799020369629661085492960652100136667613368168385069087692742635131563315150457767502480203674001179219105519514421672696972611232044383875377039820778153585620105053608241007919468006632905309178624027602415182171398647337101853121917873885840453811068794010043890539507341557654955593548280905360232351333569104437272551733749024912439273999286367305417801788373744967836164498075870246571831447794365794343567059852908526559665236104002194714314994270846551455556340294137397703812003365752895112046194839572575425520706124175047452171028984185631913311447743592866929439307822735036246932763360221730791115515799401739259409069394879369067447730335156656853578736120223649191738337784205022572931154532757860726766758880746960815998782324499952970088662600185919719675502145928727626329623502170795279726546135373115909220066973331497992445360815366712259588479424841838706086264124513939479547847751203576228967771020093232877796026800244566569323756451957010636099889068505629745638936527994906935529642398981108420631763567141652560658345447908392943134062921221370123570424681400845745509434645137089356815699490655646705525478258445570005614133752454828556091682174749539847014114140151062480110790329580113665169650285094129676326587818073262261061423329304172190672336911793961660423282574831109192708077864197190746340591150898542902770249888354785974724018466265227559746682302983736270422018518338057425064081045513647541405648970230524364323349747976568627709687612067836796392126815370299312276582968850170769000011140419752901842808235294787873943341185889383729557127483244607169965868369841482876954366530539019003464040452470068851717025557363693620820229649401835530626775336971439018110480438464255274373123889210029089271121687605464882852686796334739578148826265121386378068184918900136628943879400956960115325951643474658129226036704911107325107063161202565064765447115398712016313695945765928522968749604678543618585733148247123805538220907288563446955534883522648608522381818870807927211986426277445913061919938057263665320054491985928870279346545847494270084007628419865572973195339493802985291866113332633451603542913202381546324494723485199627770468410130073388054774635357784670938087111908343785113506119236438848445835585934982344387900421659774401614631331172552382162797376144583136476785851862141246621956166231910452655556200054455979368052866446895863877946963984556490122303733466023353444824394144736535093122790866706074267110054774370383973902372693868710629347519449465522922143543781553283800377897605630712190808524719882571390345338140022087681249495826948136468440309343311906499498765504481992873365854495985377761476840586313183489700873222367432900961260780550282846386731945176163808415230833771572876262367256462134751237433107006142847732965802298244062180507355367449965623986467214915453894371072428210309422689005218027743361901616030386184351650671276284910769838928591261656992441325821077816739671964137168379953392144371934159255572148467604593855185960597285924774210842877796903725021168562643325370873575756952646808810194631742177135238707798556230426970141402468941927352103330341359439799981516253560869778532873537500311420573421296710196974436108410611856231780846855158200182953247007965239519563414486981669428519841643638436177574435548965398564001392538053411696619391480633721125111019918320092072452139896066701553794850812316579793706716873529316992544710992883928547388301977811809402337936566029517925393971608546227547296512312641110682430188633284155997186846105163999688401368574775667551641997791003261589400537769969841467327450382698562543616176043983748897462050983048772685507340935813886612087724620130935896144534015131689183435298335763036973135330231371298473942243978602167602769292678502328781069490964710805093785288031055328952174465799560204338509058851351183013192130672314615877209260873474263432403622450675964457954505377759992396436895688930567560272034271441093985446964828326787689434180126149532727496493883081572802881813082607511766484825083370554203723545358156308121234455953218680081535952472404795824435508153028736301827784883644673936448078378693045994150797392049380608719375196548179169561035556811922853662235673604707463148213883980152039426648049029502849962131309358916197099103752359429776555233419007852084681442322254675787349692057062953921171970981781595860257381858834364367065327797857531000227446456912750510422260760229354127660727529221108399257318273348779143434046632217620368937649229318056705922458279061287627163609037371418422620314624374275104575733990249396791374885291540316536879608665973349527840854469884996440742094461666593339573171804202394659828852847441474455706270442340372316563781781950473248712797785068900388818241458875591292946851139578270064899285924477365648228797003106045095716706133300992737238510736558269385253849959777349857515140821335058119494894071605834334257022865867389157264636164490588032849293432088065771766744869403059113177139227328615967883695942290225473643926144066782584719940644486948505789054169818478554427955287792656012465053721849150604891125766011215137585858128433711192774499790019826866083443668881142614023521002568961282502116940949910389076327937663696778394049735697087736299097921244797475705520708007013060628438754029963238506433825672082969954832886285948982300665002507410720356629554816739011267665861534321758632726020832273522956458873642563007011701888283985169768029065853500796456249011144771860096398232283085231589908482161197273159008500183858838821676648448393552243999844595458438436421287724093285842503597316856369031360518997723386414060301655746807802360477025866287439980812469022548807419268603479702074085973317006054537496514904941975790370409285075959288548383513664023189234095292427805790122192869120418885911787555068216809693445185672117948411778930688768992788777705483464025864649827004626084184332144709808948798873993459828927610193426513666379028695153163611600593857609452559650992255077579041477661420355497551617352418319166746002062847268046066247213243226003819341632061418475480874561983979743772364124677436265786840576514732331433237343290545752339055704035484092095648165808884936543544287989793413280185996164603297721035771688926747796381574867905559035405820834393387198923091544993241242908170853466965298022361341421498304192612849200313440013846641503108059096684409690745397415565968627059897172635160223523726930630455965441618917804668454856445891138427228312675035301266175779172217450169343025149353829923031461046978123928317612915505617138559381640901842781280040304110958798335290714187978848968442566997217210779494481787661076766190871930766491372703511190626547768395209077987733341102374903190260329071390327909887833414774310468023845926480315348112858276371997791363699874964191683930241208595585978095720831436626942493065709034706839798468911541594139503849517822695746291809319506816487976952845903399112191030347352352873496941402910425862660102028414873832529410363357672971902560078168122314583081165035988402220327351641732894740547229257747713402526713495803353663006596469098427797033049702421089270584131583854247929813275769117505795006701265647409488376273717649085937795671619334947641266408056608440832999611931894250040295850461820307051299392050625912712690635757050682882059382784231208911930961272945436731644446686126185623647542206722554072018358307930933833547192912568397602356517323497509122293595075948026040123894895952537173614346667416744376408444623385109132785799885400042904604356927529195447990362687361230502087963675624681132711358926056092401449513223947103818902249757336423173614921272063268294386078319275327247344727497455783447838006404216673652130400728302041948806392907435376682566666486852718081483177442659493983539291424687129697161568117646138537760642052001087266051910766871447840286014065240583760075889895127305059826158577197967100185162398830032354760348981037341920635468255456151122067754611711785453158043506048709452586613632885605682850656958052201334952807753852047089984211305591239334614796796257445032543031256535792964156614362861385161127676473945775397476680739383636453655367634618264453107760761519849029711432885368799022533469033831750618494133889402524738353570169864004425357911204723904304253986464719328435806624876984096435986239689208900428698416063780686929304128835994618906459068688374376368575174233109248806837427253094548058508914294435799502217779977059819792519979380647264735192928564689093204308224123885859548292751612333030076091592704988533957245773623938987736946119789534399356531952786164323469556113208883999948779506252252624793521484340279482621185041153685238998787031076255705669397023605040768004144660104962376855327198541438676405106765027686277999372003532749450590680740947005526411197364209993870444007682145477308975491113315882844033695226169259424893690266610878247746596105112099766455477675128154553644051854489937188541578344030882362837870204383980357855798684284493855016285610337826579416877896470078572796734127900881374123794859534626754481366131043687987008293625552568885433256238508827957120067750365300438317168042332363449120367096222782503749288909353165962103198834477813669615525110848826177685347593432568989839100970076205628024413009310314998345574526278872252400968348977918684277551601731811121855072914677865269293346111953906154862187178097168042433566245908003689186021119305940844198558811656849638121318192395533887037750923626116621852964362236449198550023411674859061375970445114087226723311252163693544358147760788369110141656130972089766750420116714304253150006403026147624373667179958363525631782448684377334901035163202739404711816261870348228628024803849574372989084336965604628442665226572812972719352131261533273992496357920235081849116928543520416957985046194823626338737459723120064600108401546738380445782572171230074617736611937394445459305285616804759345140643598754056923271215488371351205173864257509576053203351968800780127151329427493804473876103634338539604103873448887460480406178436139449718643405870988013888372893283936497574790119691855745583385769184731939151695391583452433746038455604061928908476747500842434306399090529740208033943663199270987611672877957983088816207482618927621964780969765906037220332213544574719248354473011960650673639276361680246180385646694661481782511846313225830994492965227341856009048681866124679889918851932391113233343242326800087094970448548937266887338468653252709723514991162156273479677365701170472916373195428914449608513046366137467441650782069994228992232273945679932617259946153565740904703895498397220008747520784430592196907554223861251984783918768217882585430392381178574272989047216181668107556328708037709789826453723969757846517167649890615112101433773184487735850055162568990153119943697750722223446451864863771295503439504186205829633194594733030055986497865756094435992738913469791204063851802231269006373226014315970269246651237748257136057537274312110939142980377524301364606459046619184615149353488721514836683981177079110243330773287149008171191628346784481617290458051776366065804638144906277045793292387608564238341349466236004234541981064584169053580976359257139335842615653850932119716174025100097515108511089856315028229644740276973459132626386763346270687202748022470648010324358372970460488970588917760821104604409273802833350998123335349029754996611235209362988894090017640373312051929333810722584884149195993604010601445990929015648935929003192148743766826015888205021628833011958873873946399789327254791733727498287502827818693261330178539975813977767625716721830340916728464184956708954607496788053928624875231524681202299545060923984110061286524298440439733136316396734680564726905055263696122545402462468684841939679483512493329969275487470878574647206549370713239770948473675114694587021195346702038136525203388016072000596884165162281875869535523489708977491606930706344110789173085298776043729454554788043322392715233446738136210292607743423949134524624088800640546827689885443081125180649556539752212785064035816675105631802981092567968940858904484257530966979283055789878307092208463682858638678735318744635324776566593809155414629700633851800981414440515835925013370663659230990367462219842658722780157087503586657386302336835323306649764425128864353729609462978148922571171584143701003451683082957226723365808770028908357680550905944925349267367613309899865379875496426143156039677423921111919344625117626974478263678164441346352527051576886097535080146089120088238630956289912684698107879978922996364995973387077371144445112883115940161965359710866438275403804274253429745067507306981761746002268507567573787851289818784383554112635894552565389537871503758182287668500538548157832757450033218676615408611912040912889530525140823395401469694658577701954862887808673622917731758989131779335416061250458071904430173303643742698786099971608789329229136533600115287100418105656251616031090753889641546582878121628298376387381369926449554131177268586676000869681504941015049018325553292156443333177078361628265823669444997352434106337187944332736401681495854608726014600129517839128923062436170100350304065000307733980118290664416154304275122096363667319195558722619720833344959385862630824401259867469995132693376267385695513781283126632820886250895902705679142856046162630333557985624484376425553143394313954215174940735459334216495784424354449073546754188395818065425012407038454217919223904184854280202449984775659121492413937422153990597851664817448028737660293037018835227085515235926622774240253912374454318059356389488806600308998972644856778663324350251111464655723852290387393374421950918916794843507948561428282232766542521690643109130023628893204768148642239226267028497707657031123974931908419001576199152159656309630480207460444213706133517063822717803032667695846880944056507167419475198797337568871050869501375801628876280644800920384245312422090438893101980674836271823702568194158001426808521146634747866883428345007273330924199365466847258483437407349468232361979994494696140476654973211940940555941847348817155399891172648023227368551130303643270309537520799503636758426031849031849996690762603840005660899722867670049771998169824162075081548484444641563317850165314663793951796605758090518896272400845749427611059705982115642982460014979280793877867577377925385811593045233951434817687898710087616266513444190686520024444137004509738140731213588579152270677580916252056472393466428076549764302201302688238002845178461375508243266415952277476758621702285750454258101879006478113427829275894109298003902185883297990992482530554199845980624477169932690628004939114680562851931966952165319079505075347414456651962570591385955713585089062179436722797253501401864613837833048565950468865186718081691078831280238886490452762028949005055584387197923727781046642941541499100826770236716436363559425596867482914262301662832310816498267307696670521240632711950458045659358362168670910285838051540258685592094104182205806451002967386844554410196691849650551349324781720553838946193767820272286088221588670701954130032486708610878793729862803785172732089999779788810850167844596992669012444159892545060786598100419180728376843976188217333556300342770260867121398345091525613670212809245304460267863470061295717399386347268878326115645846647763432447022228667124354480374952482701019746760797437197638917931095800657774262289790714690285063312024168923368984225803257475877310001691741996614134450407336643910434845374257696733535350191581225903700043483108979380074322024139759640954337871361554376330586538827824406074617084995376975124732830304185249753523362631113594640340049586685428413103728514767206743229719461933052424729289775796464327629626886835678607961904402477269340512863904147747180081326692890739215536528726463218199971389096228763678554594561334985611182901559087800406530116782604273003107931188604887222338171778195535194023686941312607030193377049693850959450128097463892430243486983463498199978924687463969037293128483554613330069837253667685358572252932623467689115798060192144298441134555535017593298843058479524846284820280270729777643971780294756406252693949962135187987440316310182936594400816160662387074891349381336220538710465566744504105096801507640083042182777918334198298466224591409336745728510408309289509422070751414077738591230836973549126357121090983298485969407345274906767296586468959530551776583804455530078245921527532515436015055541749639831204668768225118554306888280246547921187374494135488768459321595085515844566747657418715342994645361349143172424967289288086825583861790132873052180839370305900944806424184705862302899061210098254237913905515015171455760124572955243353883673115249501962083581223061678433370857420155308239992958805744133390845683043328057444758254108424578144662404736981966091553599032651845335750740472586223726856593441258919073537143495254287612056383018391886180359086119551312760625531814807002420579566368265434976073051362773587343671372819149966468990804519396512888332582153320359657022355560833282787108894796173060315242891753283752973708565740830372346993047936738308702156938301309708386941529710151931472886264939126869261375803019242450043810181941787295912282503771673014328189719253668836225556572686559350087739152940882981393078640372535786721806673278703517748863330678920789757739323877613125670977617289649416235627795826636904160460115117799634082729512467760621232572414806850946799974344025380454942946730941802633849333825170066110384655934091376794686530739536762742502049427170576160816911463386887596753029511248602457732409852349729466184977316929718346056791289186923970226995759627111289802952615820502551575771261631653981086423125888701480716949375417022333340599924408128816413286393619703932242175346387438212374325244920688843185973593937920949346326404375168709611588380894630124761571395136373275605164492527178314010887179440146222047036353329243243904785032022311157134149777857272356106469313162016640737954134001750100953183114540695388327247505213691156921983490439052684348054674567414532597674615068544178311565698490959942596899675300451529217291568553207472375459820295159946473514304542489123459980499468234939005714360123527378038802729813943168366622279466348704146191196812927098527819200533502455463905812459694283602138383446727670272192883439695027351515030935067855640162083941218423835193088967409223212202935486724339225405547720239536290967672323041859999660335317977500258945670413003504031729784808047495964748740669355708104281690325668682998918490418402659830009225616444603518889839997921573991101808645789162387263099664958412618216935368173261889846468161605457694812903691445694435158360524613952814114282540050660469882813790450378888217278878967246521840806695314207439293396558424386174596367337754825494690791348845499274110784394318637962418586619653678785674284489493268093266450263280735358496646134869684316177525123387631860172090437596623425756179090492111495126374219942746024533076888140156171013516384104690948190100012836076037795464794703982513009233603202538003380962925009226960776526370473959861721856037515104624949691298287940738199288129725461581572177414839534119043137287849720500955186312468213217011321184561504139100957486479593812238229058323689467035783856941884462201705506299223658270970249975392117345177047192327999406890861963239692746378615056831382113266344600015412098656317130202870312843576865888298448198833972533009102151153126555438925234885884636789779497673530249994964932446930258872115707542774199749111399334481942552777327717872901237844017444542621190456516361664127902398797809065792879919119990976739136249223952912887710776385901354366265763109223160022692521421701334436186097533669316902056235229281032519576197400518173552389626486932343674647920264443877521565773057221767563724947786701303010285411538404671164736920668976548284006985381489856649254838662101639023760304741991393466911420939594279655216766152636750130908076723587245038878082369044926153681174754644110350433618683609297804289237460468252918784239199658668862368867204584107862484333839128131596037014738223607462418004298493022305576532139495576470845596098573884720008753556861992374791516872354974322043587682556757646128001928650644576953788017360683111594881997242805565864723857190366905085961229753546441455170983239597410815093580602631447983971978914742812102001448442737244974508876971652215250142002651475459235943665651127963318105276489073529851304504624686079917016458572360020036448023937658430799886684847864914576462754494669049343767101970504517392478770974007284051646369445734176199428469414697380301309667596136205395908756179309447581646513372237321599802745059358375880235329628648161126137548479989292967306098472271784687223359669450987821531130328879503614408459233419005419441827417498152477796994157760734467821391191146598796544573297954904743166045245010588351435354172612872143508097784319989401449064299830541680601877979313386862074259212265648868018326721720304079873273012629530767187133289295859381944216759855859296259362012897415781676731045617722149012337155345016331812952655571811094337225786460635190086514953083454743374607922995276681434822160004202956611926602043740158309019368016274158527897658586701438318978870213305532242806751217158347255440439948639221471458629288013188367632297951227045519947891700635563112964368591781844542221044537929798937677697690935664482672856583237630026858672016025102563096168468105363443434980639102136593759040423550026254367190557505712348047023193237766745186729747715708568057527081454181809512695377386915476097240988667482257658079889818099846789679923876031838614283656289173420276439323057884964535206827589925663871433650416812749529900775806171353828906473513099339571138376415546168193528400793007463337253520614433254840337022754937551781761256441902645863831034526812065369627328825516291765445922746191271687397523538630528996575514345058603226294924870346896167707006412969897508655184456381582710674178259357812580283288345864415310086838884699084678408626371574429578234351316601147309230843894680786064357621935756088984885828896123400841890226523953648678607001329376282934133500078552623113800977021420596297978235468387909009031731853252066815393064023241678310863056356324989820595232666584668463443735370469997445947106985172077338883287409765435080002733696247429292011935518548971323834761586523401856936843559061506086337175675846880076636533197554908202343029864494376802267197735587249768465709675325893219492656010168433097894416163689796308364655750288132875319388155797392123441760167960287074824882456324640146344159571940733065600776552135480215173373059779548899369667899239156629291281761838054129680996627794882165042508818403860983277649202425377372859482659000737865492000246874968360846145862884026865625865649463781258136164801035900208753475724032416895625524533807583809424592375778639396219834455780836795660204928700913033009704580157252917829917776261949846895768030258423214324917835147194316539816396570530502835165679608810296972981513214677779413732226330220192642746550456108267644700191961578856971013999096659742866119774354278219987617279221296191613660878616237588021061730990643430949005736457434641018351278502170835254998217592000323862336991536338876945088020833895294860857242574783110650814024964395806001176560722822096138752392512563553583928259301433390838458817182809103327387350695793228359064104574365167068814302060758159683097841435778740339592217863798351238232256387755604923611702044171232307529770491223911528926843553130845565671695405233686955106624854063903666926824404215612528338964897270772152328295333655996782516215921092211580862346741907471552954128286925797907286958577679776344690220008865828177501628943806518145497528401004786678847706878757702164767520354401922115154041775691078989599386567185248975233739501766147544026184321818662074519298697172443982961712313128422225886353977569237519722242084916859900907941296148898781827183485850831892905140042604207070081566431534580139475903008215172917966269987278761623607873085919275913290861788858370748085272455467306229486617458592138709413048930003456286327911424236097951788143737082388937169097624606919393289017554218413453777872460460196100127706513554584218747822632150136637867188778675701706401548727976471893460494287533294934576811403149350998982798841998401544153212379022430077325974956836289619463886483988323524885242158564387368589685650310416244524433439400055657102770937573307649650988209549157455169034821544699993011361545681600945497244733509435070435619397369361746806369046797950383976336281340378294046611514804249092117541044973865696235877324571383228546632881905960045549616516595516369614430319837391706222377640224188293440585021576543399284347643543026967694506787482482773472292731381672485592969950295320254534541927729170040458222680888736134213107622917882903284461916816198337458110358180650997831986520243957706842004833157302436629463130597313438031584736453793854394049732150091509788513717051537913411386902050226067954580820118450956643701008617480870792650705260749767201733188924648484861262537430619938428429283964222127169168590305899403459062626423001552961182762001446360659731502083073685310172632256719515876240690016053825319766955850368250676756977446587401672502876781639889629088962870348388389096092872736938657996040691831616802921877809729970376846534300076275112536492457326973334736053659278688573288265541047257874609951720508098952154454756725816926023439356132960729536828090608730880185776207048937525744264943671929693386339472578148102426431662531025672555380953434631190688933678988527804587725800126050384658169824712373946417572674540458874763384971837924299194732184452322248105957190758577107039608313726640729380660630599741864765410490807138756543346614682253061913553291598254768672332582754317860969867468292631523390031865233678490480052972509782558184620484730746569978149370001682870643019670548974270447156027098297229862892247757291004963297719215532364297256010129974248998046933581905625387289373329716774583082707561512533201881579997977869446414987513585207813127321991443479819880369234648322438160468191805298664298879133245531860523531697644910573825896090187888946484251608729647872819149414373526087822157113087912919698241617610716269840961514884639151595650354521615574395118772251213954000507509222706922324663880047642288553512012097801629123631107859719674036514739886905031276762019467391357289058245017215431023020932346842346366431777692808542994552854132887674776615059875375399536353035007267338103365748106849421806054428275005557968219933524403482479147135245235399588418077581551913642671151655139563300867421924793440108300511078894902743864345641123085282874561905866658840115824396974594813223199679569555552838777516786491440751230487044044374631624408877406016147745165890627749187012606038962393005764017023100413562881287982620941593046736658739422996487226192145356805680572732212777509700228923642342041938623028779305721972954054573628716269034265984774299361150612144828034711270152535063794515430416677931897367459315615032775640280069862286085861350767134081135221200120295374720324600284984241376310923674859337098936348383408289091043515925871449012236932259260053399763710368490381284417475706812346967921177134691820245881513127594677551139275519640562978163154714540537557327431980120925167593298108755700610319428605733420213012718416002669835489326170964804591663489688295958878576272645380829413729020739835385360240608651716740388663750548133956437631778405441225165536010219140865798675139638584536056429271454182311194333071805642968649085825187660296489469965296838909686261478264926854186102568656820076039767983053105354976951118044163326623239802233624783686774346894198449936851483879886384049677921396325936668359765599056193279382012805061122718028518991991765974524793515635097281542520094528442251915954400511770607506908597788418337942654179280579918389859452098897424021172043946391200876228542029082189285345753802971369885748238746817827060223724233625207551005206367730026789169943574915773074858433491107536918319949494775251672129308199884574997308575317585822075322039216097398381541137765380714926163888660449273123658487317503632612322720233123381871708593710577809820049134127187927053757711148492699586251966371517877774528685957338339526786841593574073383802565344742436017985606657850360551398677497108930496320316790440262101713024611345893041594630408475544277441812003234916603201284951473685217296784799359434443020220825240403202418721797819508681283997633097361851950813013110375571356665950886245383351998593679400873798135015145436001132853858084895277597384105148404391900856027462545304906331624177051386034356978063890863678685689244053551383213390652469157459194436845738514390597671508869852903090511248149112713242855806213319300535836640282272793381516863458720949029550978573230733447886039739339138209912658634076686655578088657554486582348394174555951678406365481510451419104738590806925592901321580933319535965383593709895138706211613480863649215257683465005273655258099159002498735938512864975406932711553861651494322870001682235955407379530282058061786002283103530760425645252890853549149699525921338106669842332207293073569503760183244689034770882281290274948797947411771871988627605485284977432516618789552378951606692962955285994419926563652443490484141225998859483826417308810162477718010507310857273200273807744932943164734898653363814961249608936454542763605599325619990145632512709770024330535610318954378986947267546534675809007000990390018547901833332396635952311783325137602714485140647683524021717028418865439197858047119083740850687980424207072645495117945645903904744642423532829325216139184066339459643953927831400611607364358167760200388831083537977525719099271873844818865823999378640754715299836442298925785040310505216676750596892727254850900618759255394878200023320700950975369987190330582260437404648181161448489237342736009253651839491897713853125268483827519357241142158807776485939225049767031173690999917460809539227755166769876943634616785651795755947577784054359269116723815423486791564841690355443964616239862429061949895121444375287517803016387896187682465197136404297235536700755998628975307839474504908153511755791805187584950743127709746697995283898506970278916850489406104315107973332098209610833161982875679431408917305784714267547565574404629240539204030205404405058316226702619245265243903070430971929883390955534135380238368444476966844539031725834327041710430942634430445108867304472372746558709271633008365833263862341247305871661460305950811609794857173799944197416805407765998594635289668906607810716943884027760053611392647947350706396888330877480553110657761928433779571572807393860394760390441026711381301101771550723204278526418478710866959032338308836611041689536999286836459612198986474080878524173205135703617811533559941515852456258529102479957502483367542792776140551508945918719435871712262800909010789742927391259329753641884841651292137047661263473912185403192792399446707606549556877051718965479794873843909999792022070970188189718231704175175056416372927176250773645481199120829301545532175304026300672719716535214156773776224014413936197448959110647521157341318948925928643292088433743455064318987255025282693005700537462758631727834172147467833920826613829262533955153729208918891736139276527747397018815814099014862565823596866052749259485196308004519473451684351639664339922884601449204727843604167138041253856257903795440277487334145769124135855400938588795282917835711992768968039094582640421050664375180373023002663948466414161705905368562672735315724620483093816001698275634740634076716251195721385619375634726862089819312863545210703244107062038866667427967158903520175931915948011322617170328904775150273395761334420496262608525888968918385658102871674575437565494547728656600122965314786872863710397105269958415840719353453641834211440039807623315151175977586311497989570473118394123823440501805228175344184629854790165342510914310037762316816698350179089451099636967079712562899521921744947018132000410767167418316740329828391601782822711429414230181872976553892781971161229920398072974882767756408784204469427450932144563882707867228680236574640747518135735652889982581360908796435669301643826736472504324609202501630798182459789198640465559286841951202779039751035187824874628462223602062385513493569665236823708080377405391016932928174904956606404584555071365378458531536356540956557072162882441645995455491355765775189683183224932421164300798023346457447805590518657997831407705969165427834416597260502248188768846489825652376790193219518982947651352585632126016467801844832251215760967011019503825638019245219732442240904797885365190981981899477346346178509248394261232940803944201419932043952682979791086828095501507481010312884557129471686073942250698249585379355639982496062222208168512116078953022397942515397441518072094964689905086572798411900828141963255261846687031117895410578504497014154091312945711495597383959529445831860666219002206088770461436262737026937393300902647788687213971644379380421969655490421248241581190689167501512118116343193795567475264434350898448604204669268458209119247942821107297817825817982227289614667333811853573733311632152776306497963015604232175485928408939928139489967407974310465944987944040730727509786795561272246018654463496957049030411122874767902413403902372995163860016357895215390948865923848652034410456590447761476612996485822479783153853622551972554001754112805370348663748029105245429274782017043785818019026346108732927324157791415934927475114258983245607076720768100215478016836742897253992303513756292468097303285628505566569098701440980085536145176859351444630178204197926256405685978847625439376537996658124962082726786152854859283478379494196565824202016780809912617172886301788615580014825555107793414805212066636914465382230331188517731260553743276989491385703627855555275286976379936210345012032125297280721560330707036282399626014247029186260292352118405374612423756786031505845504899717188362669636431579367411896234912026183596061666130159595922903310158777330166351190456943993927767067882851242200627231559940088768251529111137866473158290023479167259455714957286078269958449332714017160686876363707643512002113138362781382840291186751384606057564257524554736861187600870424216695210978663494050851417799322117414356905813633878926903552746169484634085343155726826345061936164048158165501212440239964479441712432526784981017780224329621355246499062375321496492039248482291886230164872366438153165651936663602087313621929325446724741285141148964210108024252215103107908598227537238709778892791547056573972277093076113486025622372055420475080317466013243071213127256302043048796505175308328343394082407911122993546773120027224055865474094905977045185731798667167789027857396846373928216725654360660791926677716093445246949032607452742193466026326764192491227511218670401986663316139232785133715294471581701439473537559092686472689392481103908734919916954267526513812428105542891920039222720650308780512179824358585032250779194715125895824898985130218614203254171684976395478893044871044921209686052006818225501980437990235822562045690284727366871644682150477709090731923905189040079727051600310310314459109060703905595236154098343017679397416689598929970254872371063584228669298206687375885346985485065560338627610252451348162607262145135820924736109742064043328045590581875489020262147202444270570031733442372567383514680948678806058357307274813913557640521524235985949203602379706750608084840714777817646311678815444767861152319296805381907406878271902761879826270702739904319246340691273582403710103426327493904551451497866422066358543960050985809979293926990919649282136301915797047328346294964487954744196796395328261054832455523238842623198736393745863331572722120025598628585452582389255850941026296778844484390506759405134205942110585455183592437290628259187917591446100682461986987262558665256425102899153362930991726936656259820636038776114032989381180523374498490153008829316279075684791012402130029928955436677733440337841939611987846315049053110536969088440793215410363190039999646231218100329944201448253102149785386056874303240334350132188559598776255975736003796375564860033722299709673439036023088310174723848799522136477193765901452605814047617579156425542104123195775013863165375317063824113077058190819160712561798056658802888385158229281668626854957791880359775799042348109771597061740441900187180453562273247404419394506064898952281912182775590252078143334155909977637752961466249957244558281190756167010624830355004545915023374273446178246217914807329351361077713467785927757216175379974745353264447788419100136970739944529527666557165600834256930420173851658832189813290651146471365418128814141084876829540102539487166994084074889347285025772487282788839710260571799003076367270218140505028884516346518147377064556115970824742378635000622422379983374837361916348413664453756860480080870156530778436634865172179252615988898024473850234730652857929605523929723048832642359291183783216593066217194654235447250407699278243993629818277922389929305554433034818644218882164117104905280508058080938382653249998143167985807048823970936997076106674901835284777712475441477809252902563865117695033338766270083888129139063287374103076163152781347975611665450985525450568951585537387211620769730018846075893568980696436121843963453959412860382440960594176783826266499624322191775813071300989567391705325028424718851385428918804556771266547470064633830813382429707158489722092793911362277382323905497182767494340431985891038709492520645811400397513692241601868076023517697533234919177430171729423583351403313794806343500702775006319050405208572479392022557171491521807869096749574347149436264065377383707018917764147444764214740482555762524366792569797678594304289554880891337161696453873943014121515721579422302347211133076359884447170464470279571687663239344517646456316103071125703619545598258553609564699858619354353740569654340203004499478573691962641631206072055496733388520708906820770621455478428829684825574271114072841678617751544096052334021682808248672966011911928199781851381520257970563130205031012451666628057356390978901993853802206361364021212722898905155197511387285576317218461926731367365237720740011914129002947157306380766237670373420532053734216488828841832264142829810481456137262414317287032830208677974658311040520194808824845813122299949187360564197805041920448943427695927519024520906500286653950512897956879179784945323563263504317390376147776649137118936193907208910866874892636944791506430452515643415471691095329134404384889541280033182563317626318359589244794983808477404212351356275511257298270723797315816324420478375135008576715995023125375921651904759426476474827826152177191489884541221501798445158987105341837940474341845950085517183053767280847321146310859697448963985415363132811387193498043387295731057622798871423615918542016014106044384426409408612473326289847889109204467110898916878638719653624870863130765442589578040532294403657113842335153236498111381601583592406576909167510526095317061289437893338645237291908858015073448970157649755155091224626044389572846098682612240825744608343512102151638723911331185798934829473767054192447881029996498116926133027561805828904365195198187238544983402351720393292322303144110051813897843421349794110950403809482494896086240443353621038522348943462297377116763294141327958707513092422204159548253576838168156735161735710298136490163104556728135907777645517897733738307477543255072099159127760425512265173222079077291575389069968326072098621188351103502329106956460510020090457058441734730347412551440117921750633754488860034225955260051087166604199244573511726337334083334769666723149179430055868558113319930640504906975804346567680209066239307162337053064756117616895377456994352578878596569306395643263834276675896507407440628597809266552155627805798637621879682563607323859884418465788825186885312761957491625260948035462846922425895142270605799499857398450763013785029098710069671243542471532163343092097579335115219782006807657763559350555312853484768156022712764314118421028696740907704270396334785296455868679854320386188709355455240356301905432326363855263795116372640069995341714197743573176448302178108906700409739867763205002136095827078842248337662375962816603328082933640950982854076413622972040774186222695654632504477725877156822083682757978593951290778074546407529685041104454013585133477777584144929605484681588065923841499425692860496605294869298749454401128639358822898169679212616753070613380062638930565491561290502984789475050951699066079819165472105973305675630322800886595996287312788847070539240143400239765450425037325671610453286531772904529700513218106264585975134151420949534234115018374162526482776921015755695572106310362386585429302674162993380881892593625500268374330034473155166659050552364872694305172444712451617969248881609010161039147836898057642380890129775499047335343706575178598033895470469968248764656675938766715947440934966232226322693669488788845491512891287368947559039543364801174412399388328124929882603397004557671545435518214173886336644088205040609660493265804090421075285210706484996214113446657388126978750946025750022230335679199816232186328238171098960359957120529762948079578224093662166291157990172780214595220313070404237175436400981877832275287951749373343320114049707535665665745466181707716967071251962807092454151408958887824067862682356135083898796135491882911275216872459529837858920643716222843253652268555765278207280602069961922377311701329695117117844170737565369097145458931369747104446355930772492044522508269307251578655469717549190272739091649237318841080662723665479056486013646349288970253431310799586163148787608239174083690687754206138426112760683315784379684902956970212392544208538599558594905528583031216546183725786079442807429364685076072535536129923788434558983711244901295541736676693468745151877307113003278626832194069327765689449957992306426997004233561387307374283680000655477637393928613005843062525716391811159922931555097258680808369129920274488436443132304197665739158830587653070341067020425033370104131609875050663924681442975691922670097905595937010181885187487947874133322322027217146002602362289628990122597994604095591330366440485679134334430157089399596828790978059856681923984547424114386598923992094490254437909190388071938426621737736214218186443295484348463167533881033416955287775275125545964113780875981957781859044485043585215603189751916497318563587297947001379457555045183744141447150245672336134955569572270500073607220170561640587499843960204291912545994665470168757623067111099560502271726903872131032849370037721043270454366917974217922693106614442585407734977487834075591904573786089852071065967958262843539282924795996242414558653541097330001949199533830927147480152457369730276041769805065801438923567759373564270153591213554963175330407944797552953422732629858049609935167980429543144618234153430594210698063748656658825592191611444953935168476636623178843512093890140008350660363171753047072917117092603699236209606302979487535086819105677764898016172779811252957855247916178181732851383469946158750888891035318558788539243244941572996770417939608992197813502565173525746845317625612880081228077143447395157705075955843375287383023557931302002064486109365219149453099322117226359464308045963605177208916383104528333172303469207671823645966261257337780500437045561670386634746799103751972794769792602501504232491645894776477034539575140114179416488185479538134401645088890418496879805648816819788610986474633329603447835091548992212141885913347039970810006310411777675853378323520561977203284416922048723530043784118197074926701960637375629575013120941323896009641028457861824883832605375458735807484117866779152594289184725882026969495285886709724266588614066445016234511197848649295615211364317926917385610290100403794354361368230205842867023703566446066355435100193491307873047603944271338125890232006144116903752443393525576739047631569634547996250555236358803564736486185665342139821660614404166418551924948364639231195145694580659666356473438939030691889972118891232150284238355722067328108917470117124958917334194860267846912117874620661619761790012902863738148971065442161475171972560502843984045835644838577198222945615751583667820814557941001653725951637058863325868037342133649808887485400907636537810444255155103001544374122462146394205714395123915591230700741342123148292631175269995515562537186596745477527209553942658373830210140974912690669096076540009839779700263194260160980401671693389101110186187514921896080618151921839925231220623227273026804878172872909306573488274620168073928208960266982563749264377809024001985487156088689484877470718926407569028583683001387582438829904312815511656037377225654787375302274447311253920306375298416714310676597627579590901619720545149850509550986301359073226964523329996201528804319169262414249418189027111763711477827674246369875270924258158041245557949470791321278001931594725193223943628378815748355537673207917450013177045876474348416032373688636500532336430327169568103477871540239601276192765069802521141611128986394328853130594683169810472515563322186981464692930866930717434625043890412578395404737416544025656363361969149813723951410910943782474414462736337950876222884432868341312450246612595914331999811605270756216429600501358316036632114406821102527249087824513075371667908827951569621387771120610037670250396899423613155344604908106608239974202671127371951931143347602093942510335292747661454477662042397036092699517653647770691620682422692336543808088529073038329631078146268089338084665557765697282116984642206555485751872594472094389755455405983136809087846243643356015182823248294151115301132139612532411370923988148976258988682499100770056375397888325162186865724584304094693922155537959511341303568184701807718048516220202158598574273504939580182329515641348258249991354637511253740156235068697079664232225057205714122868805507097853712089308500170484477699849865417483558073080639814793409205685703406777039966744844888612534259544933658870835230780957833743665828579861728352466877772664880585521970503507199754696417281097323249506835623838284764003935185509613655268670825200313972930736983176555957298917055902379293573424688242248877933515209974500371236568882591459400147494336098333284188192371601894862133344041475343434885628035826846257716051238006170433462878629455806851322342238941289705461300272257471838879130173704309938758158559329705408308266045713953891667817949316626263099989092815521743775052295007995463929208783708175467972369989862446716814810439095811677431628690698318298555548527027421252108196442526113373995803853103551629370332309458316144222001634239091962231886370278401095455988577064850072459856764285431526835926127651821076794107999404587859349579848128801221170587118473701212047908019265182454948451750530870025712015958784776905719040272544787675012081856890379122588710025298524000774479118291643845391715048263399383403594000268629388870532436734863642178533766547350420474573025950484864701503435841868030338991548323792834106900571905031270730347099510884522886280300158909664549502126231243061737072987020265089380727184294688476341166705727818632334536411094286527315245941891940835067081546115488307887767949453924717634968980235746375538453020837620250278097815451105549526634732630646856079907398119336933823599300222080053248879909055919968594198632778447618264779042313128523432501916336065461351545801916856278688153741455619700943010244182843360313029387900407807512966375688438767854027118492481919112301197989081339906533735248702927210817415445069518166089511928776264241918969016087088062956518319813722114965234792167384976645654262109478653411370812352560595151058169779847456641380080871710748260369443612293332536483577152686894958311790679823723533397673826867524052711384966986215666150179455078423793137602166039294646743913181153731785403568829240260026913249278660781691019059571089144157575644656315158380960683443415372278546234710238448622706400454685759577379854802016571719047029721295535908583270532464183365691629803981934478184181852959607441862777473132243241067157901460455126949422026561112431435763345024179185647975736377603849111707597428174150956696154579473794544087130804810966755549851885266273814152156978378090646198640584972936554215464219931420168346619554556326555285901635421306654506450392049158449954758491310056821616395402999887789444452985605341992441056056749834182246971722456203641149709874664793053388711283079095095962292475520495676261749548942256818613512826521216112611460975227714108189034421931538791371154890253164519460894082285869915537683572660509198271646939127447491392610701904809955115639702981168340542955564297887740419590921799690328188052808214649549961643195705845597667356665948849256465597450000216749911146390248533794995007766879115586355461591160453167925528978128000715896931510108270303824720423486410512506086746011892608591962835937015633391800171864969573036411235620006632568611774915851816277002664428987727024659851084143997761031395873655119375904722381132952398056388010734610123146169029019804619271845916037733856698726080460590678805115310972047682340444268789738040030187833120238723887619458528571315295964567044683995846223559931572279577357595691304687877597505654434535383225508145853662882575508573820296377110273361036697402187213271227558006498176727502887800924662875371964240751382421187163628164617935121536531490145693718691706510325110217935116746020398625075820773231159980149039007104530396858775173513581901790359847205544694370877624043106789076030337803029175143431107144974891948077207105725721871191995178906685684592712857195916467101448648861676121779569605944124559317899676481220815836807937192747536839150866295054953844089930285317910331252746132439650829365373037941521026436225044847775641586798912941456413745262088386208207924229259779120577320824977022273885104866873794710918618127256716104741377415588930577039189207311121171258549956804316032640432542990244788449615415928871862320207222558782857303856863532438963924144105983463531767869733975381497821479551992139233812659273812225029362314045578323050536535169134260153650290078735922866763753610473798935133128804860914692655228552231073382263507444691226865590783375587801561966049559978071718340632585897938543278294770572034737975517832931828097966376162324368272131276950370160180030631656467873796970858635976133110614785379345511224838824851049863811090838221357244525354280272497261310352991199803700141754661699424686303239285080686839629816794963571202211312075360454173211762623635317051695574779801120990346354729919382168847995749141379862049613557113153594547592739513134263885781614620459165159536832868002845862445066791324888586910191001817684736825298058330133606611577448447125549180287478892796635809883737675663872021050635612664039113102665317130879882806909776478498616357949226393730144852690270996785572189831970328980030969629888376695332678980153203176702331375691367388870941813680319923113708298688345629727730814388165472327879892611617365552411304708885312741777221857497983380455792892113606975377835406434819347198643171598313852803947823312830579234186887141185916628680466590692566233336021808670565928276054083171381716432448653381786140210149100892257478857072083826321964041083876284212852472564081294871195931325371480963138171730517340397997551528838501556606792894484392104300313376073575223087832721708372441127579181896716189904378203439523241027935744746547959731381508671085444655308855692128055721957444851340990066401256942584089238181092450395131448675152927445185920545497617779783815136538102591884221696210800572223434028139216955193409430600445576087286966951292925453311627635925782083209085345999586947538397094534641390256618805434327193787197963986724223624643430108285206234113495336426952610067175718951994464276975845112533848538052184724033328256907140247565670913640538288127366925049347814915903856438286588119769084935852859832914743473434242858364323868345049533964422737755353902964807446010418481929677664337614008916954482592112469794091665695706139376250577798262255741100741672621793351272905701690281632401870263427781657946518652809325690811055783128378670024615393888720557655753366805193140922781881170049945605464575625566805729581433686927899508358357292909257105801657913101407576644276024662437760191850604979626663439818385957624393639744749216308166121761734903018825107302950308801290558657350535943093964327724700090282370057470721494562546779086935170292480362666999598563595477845240317558465272680766350337475220749371754567925510742338921526524914878517297089811510444868082227255108501511900930399388652469426688369990412201861757840092138285964571459567018456677359271945377537031905263105072256330511130819115784074351894127947851720775090192196894254306398136134319049741405932120840933059657930685104687546532643613392686409484875589315116156991931079012839596312846475059310452249423379531674409540965052375891322410482386926993147610778830929731836302255901603052461698362732377740298017267762216842857925223339279261211695721500737030919397989007536061579396818172098751524983062497980996581774874712844893130221870980554122802132128312036023424556526312463852265494608012970024531806842715017476442400161558733621765643266953086452027472989052249979431237656682723802010508232274804489167334575855443074830014207698908784991990223280114905999101691795906284938987914222700381539396739878230488592657619099452308114320346383735565836120132967731004434718868408942073862932490969250352083009599881984962355092025710810247382986796737046302342519531606091101595162440765037740519983188526565123059930249671012781849320814048223416706510082722433289506158552712300744611436675925698619284214945869504553291252319875526538335164411927747692666357950484798384739718240500436387901123472175294080266642282634345394626882820495716795421192401810869942652296173484139871403153516840710781678504246613026522029348579437521269527353194296853770414856228738318529976893262410187826893522076167188950745146993009856899181268801890419045984950007682456362286145475014818481616967754100048829538171011214653021948888187166630388988920502463881624573143298528672939208264624078356866017481364406818919322360555664219457809838441137987930384670237403331602524838221198227845490626495211076289271217121761935467327496062755488941471979196244341983234348041456927866448117951225296164723447388972242132258838762365797142424761911135891384739642690358608746450112531959305945233316009802407830373075692408586681890057619609500094776292223866139665640061173853163000269583380263547703278649758784097122920834598927739338066997278301694376307764480539290832606123460905264929283147200838540665503534161778329318689113639659422004786588031127859529548660766602211945639696812412492935845161868501007652619793711103657613263826934379257218051261156832922207853723602644905486084021621142590234365233477932653399431568232775498254167036077584779862855583066969262120538546187849731600046202020262521560410128796299233080926354994827343374173196099796512043102557114519668973148281227920488308956831318137425738069724412639104049741639894500270578163256300060082067267314340866951311947035144344737405875390874089799196918245733681304182135706567224137631187597341153109093108316518766315167532620818235190958336100814240619357149104485586909844497605968695964320727668836105712949617855733261223478762088641448558276922051829945567617845491019237732154090314598311731888022990829028146455345184478697666787183782657149224721244417533769162467383527141325879660274046169056291476529569774357684329607491230711847414927132192170334858230344643235029933916149656578608278793665640780095433614577629692046916066685913622007035267504428881953036977584138330882623770773653689978953475862419419500596735567875320998494584922206123565443376005743006593394057105856259199341175935738375550497258879826726467938615107129105453253818563635396753632348718847880309365927144451287414597528749944623158997011154149793363147071296602936448059059944669264549642501894430745934892704358807593974024690915566633577391974829517166413352714706104838930221530198139215921714885174232236497300310024741304146095572145369834604910537405192464394738939570380819732519553495269011051146518922689464746215113211900794308886291481874161108249780412644738378089537285158498612920445883143041320987270805213033136384517637251889069616015447064728066201016868808648056334608118739859925704919307768204475877565437869518301755126846340614204070421698976034630075203104491972082198759555926321526122475814949103060412035479258021257122562658928275347918645205211628181196332697971839320459120709572692376144536959338960096405288765360409494857845911703136815506294415291182498059083430836944918875489462378182172388561737421597554279448830361865092097366879044955977552195088544405132858232818317226753320726137446889293636541958340720086905041775226995607038515354551911613866193823473040275079572959275102795244831091595330438559168307782914639991916444116515867011399624876631452780647745549176458001884301137235555548260134852539619995524052245296286398712320573571800417897121845399085458906979374558828322358674090475675884953973684758380359026521526428580330196978424104445780441534682285021088678345149843624927836523461469081998055763371217250093890356062601604612597040242947964581099187101726211633907139246673567054232573301470830014875286943172373461771297527090641337609821351071347572014172086552971221745061184798755888207201605020754764598838052165840883355857997721754874621983037713683295346503194959432266052029930672224968890524445880013673554163026124566401130956901764041265043352046080320877281865444510415429222567686214960662420723602331623148284991767855371092789330134432449498602647418464459188195521252804653822200759353726113346110478296689919554787707707935976193842001329445636263714362255590180339997199965446539229365116865912135808844114664472199890276316994894722745908217692220005066127229588840005591209250408847123380293964373178157525225457014738459437789135835621901455478018387221214694270064769787306138327859248155904602776508791867920887181508205929834478595400327612247527081770843316747917036934019804054295125658133147096778082099939009158891072575246212387366219124285107880143897372991004824039964571117909793225167726444726076046454711007021928112503343082686621761235880080444246345767508203215473997368323795672895941067615523210361812827607655231667705364759362435065878831854120603199856030015250815552468282404005822038679800903521754403383369787797099035505302785466575327471208669571599919209871210922580451989012853681978006188358636283055736094947373119789248688697561416346222682788132738076537832238955958548241079522230350026719808552870027380300622924082456756315642986661251604401575084118104298904715587000810425644358239776520326505653023612151304843777702269908866811268169290454528581186078288541356975488508191521897912812494628311129433454328820399472526505534551733435592596724552046146215600730768273206154096038855107883717610618993448001124902070091259922645941681303745345939852857834575589615268388574654461118400224010441300489846628296466099158234704591164763619639967519645882278553594824650585421281591862022516513843311374408842930627770970520119297517160749313440195906968843252467086384163622565159576570134954316325717202332333397456043146419835182495936125501376380677419354946898079368968977482350453228014973981708868470083428222478788181708486761778579749634407303556574194343177523323742589097730293654064720171417279198934203207849170578675203335538302679369165367941540971361048242536947453952240520953197977397974315360524377872906950589456930450283988625851599676461621153701816422322088091437187727263924253926992045931334274932540289555321093287903995217883391651518076727388838544051103883546813975467328475523586805643085462480946997930315798556048444819149971756620695921976362837210921683729950663557387960258673263079367970864076745335643011095358670896083544858208991594779299907515324969899330903775081470529491618536872001158693165092318791488022563520582328634959264943880172989175936755981267050573447227200501731258823801310220258857353701821498652932996313719774108258226993992073424073868448890879297472383516819441824855965862817569162334458541946773895198365960907617578774713263972188931027536126260981535291643535329832326816311546609801189361306471002584303928183527175813389858780031287593364113161653279094988808618940506635755961058927516568295057226093508520481126739383705307505729911392667037786529555247497672904742780448815844329771559303436116306155235724308153157250062815711250159383065696910020440054456464368713689977157933628668961152938878397418437265645286742842279255703299502984837121657713148231201609297773857319597148213675834049819565159371885215290701584166384762288019870856946119869724669792375580403367422788508521929819549056939878745434890335843081071239917122738227836373438418581211350728203451840851826230718761988465627731829450310407279608566883397091840178470574068891602319775992032517414700979474648967651448729613012399890850497132295185507255208018840051431807448243077549891886919093652449474097837349118085188040697146405288848479316530028858581702099757077372050912698362027110917118830562205489971779285002453396049761323792040387567968952624532030705678524438088666203124278212818702242393747485563931450470062388178171649973143269360193066687858164279950269532157530038659870211063298792333933176159239555499907356806395944866682563603060507865331787318594277203295420463976561177872351329238883377179825778014235156886327882343405995676070775144184826305472999097025122576259909732976394047497999618963218122095972890804748699435765310036046513974083556617810749803523451451892947619656255504212866533151358478625531833169484701025455559842862412367520062727209671406004279100874548993751912815810752205781669293230102919939021390090665443847550843124898208582055335962157040783853959692947771264547596761670834115119619335304210473974738606785371300845286249423827842256672910787647973339144429795648917126637415439338527087967666343502663338628479582319256122274460108678489026325697396733248123228260287302587825485290454469695383508204623072923624912454556862938315781070396518650646847519298449431898672118754561799629090227549701186079512893663319560139895738994385592483421022156163591484841435670343677869255107052823889578002836652447734619032611022470466499188740289867237329877153849314352864250186065767475267382087107334351626956289640573181789379024856657946002265034861990636746953897967210434981432531178293524009661018121208626897005143940793757468280786249533406798811605436948312677213514013994596222384294854862831480296048967933385896339163870864670536096455477830133280962359084810656258743110573842618073199781008502855157267676734142330823316201124300183554007217207100673271356959367181932381571176543765963771162765450244784198517262116535009500793054002157418618510885175735117468823275674372352913211455875175411529895271284975513409312427778188091312197552116668695238468757713754953427095224855413309640714839605902484813060032388256653777378687710456774544293359898511634075436141769690263139194157541120947358255342504485098956085884743216936726321139333907990357649364434754711438897140445970569231360677221970913193806756779675308919235003255282244367252025304964106125439961021221309620529678763045134507258077180903479561868560417830145861621375781274625612653017539331926382466779158609219140796548740219248180705392400171196044803181147079783409179379131032180259446517141981707945895853450335398424385070057740007064658093109027421166325606320877944618321746598638497951483182550028163164930143325116729450538111168748083965352146970208908092558162861143564505463297375285070516472119145922287229862592853834410189712778530559487714370751801783210239189397697085023523659986622123141122428267235930327529150304187569141028693884614550621962384441832724923775361445964812283115355335533811956452474838562964080442380324467861780644044928790357061057050203175485335013503909842810248892265065418176236450147252603913470554420222366493809225211095088796145223223148753478281519326663112559677003486492955003512165872741983165302832414008807356632927651766854989270636518405501690108742315474123309689433306396984817196397064207754887197619441739608470134976873108237663877115238107622121397376422980166956991524307844962947983992129340083797784582048780065819315252296943217098633940719474254289293245137177857868453086244822343607320672861554664886763290001414549522502776526805125147957790829330133087180939007795353461841809859142555373870330196758797213697685666202535763364829085708559222281145286306829657244606129010262568946939046484462687543107581931801293417783561918297968413312276741363955691797986293635044047123470051578649619837320708635974858941444309777428417722709518087667313250974564700978697789885193924945269905612101485376651621754798475992106594053683217903181961315559578329171303254671428115705204195137427259583146033172520010920621963560130175554364858776016409205854569806244937015047512866194297842512709206021970399718068605000343642044302047691256269218919453236088619187514087393076505116668722648344290920612401346535895468893587519276352184442763131375043956960931703803536440236306355523945506076321446810301525883721614936796330999476815786726950615964610383410129799319783761061997343997372592010288619706754587361775660275207139427504685262016005484666896606621121366299228518332522536886652979427417180815229295258599031744127542049456533879920607995291220711437983600121669539059352589241143238259145895757324638642759879462071206622155168345303911762604943889584670019258311523461719849102657214146348209715375236538071917267563542635850780615998002501435373470250323000905818680628822522642283435603483370985512554294071458285090705001566302514428631779851023541983576048868171403167144361498200180346944563217241115470419748601619064942756753442002599264474553029696598109637339100646295992243156313453131860646171375877870646863791107717495321234088805867780622862284386588246551770525747321721639372700178597141036206720082114706101541699836267002617468501022536334184056163542191888579248118186090192255641768614157223102436551049365751907979466476177131183210169008398426480607839357920584040710728533042299540097970975344112348540416174341511013433468890211182610384726742090874609678733861572606511680460996364923589502797360475231993316369279657247939020119248671686518092778149550012434044645307689317975528029155917013085804208387295881866285509248193465963259727119439966825959974110112642595494374768659925722408061120653586056509745372512960055688101156156570691768880031790889300693315511284541309786038362426609286671239663628977863059236697572109363225422182419703292002908764108433648545998936389432695840297043848818313215457946006264499489294813180932873940433213912370260397403539381296639169990023633791440380456657087081577230664295846774372373495170446644313041203315340070079439329597552304078618059578191223133477655722406191153649717651718043735165662830645114574857541189866143297314734619571006137375112910488475444878856987964224459920620131355389211373328280213622171311696997843547799788516292245587163329997842480376353788090109589895939790344126507093300895391462948461000855656464260327813570170232350112093370678566598007397892717642145192221715738210202714455577581856734757270110332102023714547066677558305073688377933725258975966575929766465092222122021794271634860522703905328199439511189086070820496317307852255389666131298337106665217892246486450921763589801184023435187644136823388141384951854279823774073003019057410145350105791633012008532202070280810240577497985703345223611823708000519202587297890056719358193424757186722944488156640552592566404322449971073835139759278635592244706031101431654537942045401760204286241706058479772409566238771131595292291353974678520180570884983540810374461835750009599918927403811259211542920397166954188709234918684791716083739442698712891288085286047234049638711595850562592222429513864404987341054095074994054787710584191605808030767833746809429765310783889477571270347696557355702250890951438070237499637348161757031762382772038900225633244623878770698226672847929855133373725732726768967999859442061612671873131439848539905866871492227488280287191325001957497111247922990931526783879445658105173206047898217280661988123845075812971447795159233789208749542164974609368619678937775696140171136228672272826600098319906466154795471180139130040432235822018929196445892177037278800828400024536455325834467569017460540865138347361475222174547023360474544616872645283467117313822519240072220214366705862253231886597094364111797241541649311264433980399524434463563148889612021928766259212822970461821612406147536011827521271895577486903874006951870485141434773446961069805327785519506129236546853148337440623488207112859804091995026205806043450902954187253260009231944155665724497548203606402042245653060526689232994085722313813894529437669782875678128214442548180927758220117768465638404408778405506434907503889050631857160638562013949751828134149670500670538262330500209042838127336699376449248715036242316792700300993731546996530030865826629481867595490356810791501521552108736185159957051321763615722464694523259346954059956338439023406666542248089836407344434409503540953280351208221568344446028438647793992967738656473889595345689361921001030633898894831883432886997898830639260252612555941449202005411357416433745257712950622089405422779066478155669730130758861807801260330525297704783414418500525321117282464087405417753923385721985251685367781006838966419861312878491342788669531301846222671034345933211673183164856709324360885834825434442898746506605842679691793995225227320680409287012603562376822727350206922537579583907262518519190065784079840670569555387992818083247858132674843005715471817844579729112812252881604420838826708259564693973975800004693300568113366579978189393341506649619151217928264174732956440272594913066780045716847622780324883933622582739726667183172931696712427859406467007344349022278361760484872287016324194691204357892646015644148496286848274637630787951076215240650662979745736164545724792139671697711255301310369461227954943471251524189470632521506282259517470406773966986581279260546146818498127216142966130699051712954823291505475235797924404001317602019506995601949937245051082150658038874944113378088041658801234265733174750162392648064945443780459108814458246526634823922038935648423131569336383538632589744305954417885473032146329547411244223465642150059194732427784633016684934686486589432447180897603088569352970645302615073818367071182770007425801747969520737969665442689136263626133252856738787133174951577996201657657670146515316209656118714150367315784228424704429370039935533509630224277732420913131670151786745539492242149360834985782486543084466574861229785698456715778336904841964638322128134640910815602926734322663744524559524081235824369652052616242559635036389062947700501597873223384889516003624193380408511202676425430381281148540630483591473088759579684534279907352215593309493027448966930528772279885901135360281501745129348300209811731344251578104519032726261927030940518482740085426274551006936879347406426407398257240395956504427520236565649471847317426488611198729892200424426166295341731745324131029096597653702903198971678217820479407227641104669848066482601916898881191005269120661857296788155005286012966019487074438282821450212539859067511315524723095951063400736875965002697283507498066347175630530645834731276243684800318514881974969429916478977420237592332243546901013545712310481261190898201837331101569644303516086283125701740473609117373523133615180197608473321437066174011172252872935318177238839191516139750324617393831865230586305399545832037043212255186400400765698951402836584734796227472257345107532394172218963682541099904424002082728691189826752605388441739210119346652065876779155597728986574447412620116123196855283638214179595568446239794072859113065734856481697250879285353530185645255645816731236358986894787120945010752211696427125533483347546293346828219998064670285249035165226922421200797603199385666658096755500307087127779949487298735657720138812085938580072751015160296846924821945763572355708970035356332286453444009521782730802611173006736036924700678617948977262061460902989548418731816025360384907183076362062223529896887373452012098272574735944402291186150279313161606478563615299052751703481653859859498789266656982433265787239593265382793741944648890665868877850358267271330059363357267674863607258278291061697050643583383357557574151022256143467398150641378627875896429630956263864881361360274477454415968336700056160057701164695208196430821080326955526928517501715186785702978604232566084272025811663943183450142129229182897120138588355175836983118241091137596470506295331636582554997299257967001301331700034254677308678260608297964634068512060934933338251367133652127667014267117848693480733002319111121032120638134753772424431758109612013843667483240862130071360199019386745643406908130359836684423040223196399974538633627116971577220802252176254800617468288055860830101041542591592733938395919631143771240814691054535496846650913877454235009190325872201054062373900369152121373706067446031211806469210486932442697256314937219722111827576779915186720817435826051007079085035536869633922749736252152826396765766430692331648486825012938852631454882176528557557812182359884457575271330352645037964457065964006241317313232087215407749512142976520015216131330332712053702455096497896444156104667457997741649035942154436620467548325318119304612660131188314486805429854651113807855342758473297252772911567343985741067105820308822566833023558956792735611430878510798532295310457951127458762890255155666272146235706800095348746440209948437739995675321930302546342395178335362563251439929037776106374394209583600494155133996410780086848544496676045935892746986571057284440462753247785895540375639805257142794459711306335286058853617400597208348205159171801563381516506929788436550698484142749006348810572462824687106331213692276880865165383736533668739590472536461921251946606112202963701095858359858131941089517528768447375012614152463199024138295951876494730521160487964910899085136271745299597274442288939669532068955865544924729217954972002872393359593669631556026611837791975320689072585566299187067656833812443392374935535047892094995115877480422510920612409753545053827317041191196539738290212762125040215751670568066721474396190057030411633219376179219054396646778848499400808450013954971920329584203347382889067927722194315109971036906937584247027082824457159588961498210705455233996181782181602718311457645072499478517461731053539534282693572368166465896901651155134808664148316003959154485326873051276860708209185306417339129383163217679166457216561778918706764621470705544731482263461741049477953081028466677425397545484996177987450175663276878064155617528865707843075454656297918601855117339971433112495251185769109432417279862320857292519930175534478552356592003235910121473226839663133545361179968551094106686109708536992223418181844286854451564032494846512525707891464078284278616937595992341127918567484314790970749767879636199860503438452935951095692611061431354363745802362751609401190269923301426571381671917035724778238601029692136808547856858915171278798221490816058456603655958074557813865227011524153819074655978770274569144721362704499303776957273741800523748807997319217774820167924882453283000064433792480420409683695448121198519489416559036653456303481010229527050808483433842239268571259573646816938424425985001339896089871463076376633032546356679756887372389320590110127065938724403211731785459346490597683019547656989056511250509656019907753903688648289861264304937122214564530424457665217471264839913543321900289059129089681708373527817530787778645317022420886249396082733686288213204728712716888639074766002855248490999316333312719331074907860347663894829544629835180841764869525748947297312362705076478455415269952454369929457499605681083976882152515407074211130500354789969457141019656164512531267161313377084165987524768730642404416372595764451044630529432346679192624479218130544283119917127313311509132959259303942454951952442009912522422565499989148344687292317575574716162414254188692346940444856623143816254409297006206394125235793177474039825689498436336510370635618475758480419562068022668274088324375960148877254958970404038257842080144756356556033409594438709812035173554098163941919685666617169996122388157864661647837724713326271054726267493888702709718501381844861425382168523621922844703772490024941273374378764660353414222898352890003948007887458508044155274318116967101723970588174653355674895058901321067783493189256829067242708465676894252146654618049404815498400978321945353152286182118806523337073334162854963043906395363166537958501363603208062699409644560980561202569155214415911259806464588189767024426619182898848138173061141031648519479455119370971871646072646330262631128558907557249415359849260151034557505561812899355450763452292358785857350311286790710621900092107428052907974755901602294661641032498606203619067213744353622237228545582372733387303962378138800647019008256129064996525319176283105031279640753655083013055958293284524532063905018450641692840466522647016855385655684417786636942649746153775562476475950114066200919695263531928362221184567106968106210049180053262509831473853778341273328111531783580515376484353666044015982162850977141022412541936394635536648142084709601131144232760150592140346075758106465231338671657119420247864440174464024338668684458347547689228099920842156889874378147052643135356535642155421749733165240819930861440929864879121968473947473633275541192649623855220316151297509948700231674327130620159459330812690581210174591922467630046870979302936006216340656934140831822991986318987643626888658631379481705699581181954071191503234395360860411735897841413085585033790802772650660287955522204682891568689042413954782266774421525858741111526952129123656938672141728532746571268977366283689020958792713688731432018512254383392649268725551204417586599466861088876596167866867940899766801839566447895964022067379998757671417137999081162317499458296055691046092514988069554837635481411217995729897544402665263934771223977589172276435985596598491138573402462933862289739249964870142090978502110450782930222419989462247210526145275227267275122654879965143341940934409799557353309979344473515442802247687162530101679367521658245024053460273241702480799533913249907344322774827347053270688003446501218880465474702466555003865182652914524421331415092827721235854870754667545875982644143264582172468762395943358715936151479288196796243079817622430357519078402990231759772860330535316291162745104036678193181192762370277420023259316964076784115672454202922978327220912111570297312606664943512877459330143052841493522377961416536854223998634982914234339442491587640604646052956722535605901528632082158058878265010790310464469789804700948298538944227229064525311279391392691589425636984833460411094735462003287586886801859292323880979115183164784882059117779119343218801682691636870558102040403593927211120056798158127431922801900170433969473045032943040168654953903745356378022156916071364940333737595011261047924477622512487693335229136992464914354425434918546919777808316275990445304386707772406009319735300853905163201151224312291419752448638717615619306536155852582997143818928135190435937916019814616880718462261049722245140147893763455250394036218316744482738423663963656269175163529014687720156971437022657661223458234183430750237596695844234494187516607847565778052375727782619990636387058744694909675219705142555784570900004892797415637594590240277680897524538988594336705737678510013016378576776031279996322835340650979032391338309819629450983645155758397112338904102788216589656038041622187208790572793649431679620230530918549708453769360517558795529651235528590582488555988541004163656267638516768288096692171896746624997867969868751086908156150551351480806575038558038550638485864115839537039344028174435243520945523973975500906191734652434199880324392608023632055498573687288969193331146551854972724245738480790177388514048943870478412075329433531893822116455413167242110420320368021047202222285599613607911720637555863589130159913476150941800251060117221451324869585710099469727913042802788866963500385376149242629314424454951819911842541629960240035656739929085509464522096587013874392697227447877396131640432151946406341929762427153044091434839340690612134964298073195153304519944569247741348955820487497103612548724192947800267169514760047741112156254419022031075946559377619264924525346639849832581284090166390318423791602707241175920039505532098070826990734058718310968743450715540782598795677690355451354734876562662565731598479428964279448642694488910459002515235877166797044212573125575059691834484782315212972438437956176879911743654814692999294488875124655835110558039138601642395843146721427048988093848434695051967450362081797867015476892802408317994926107973564256062011634262930855251380857672835250888457232327535783952263222651537677097119330631088510011675251405144851692772648200358965350306223469719505894032741181743987838012076204376143963099040349809487382969650896019827344747593419577363359335049281219815606265954960849703732762392935095316863144887837473835915571675065141607406477479749946607359618486141273196994117524234024962255095493220523006136919383855194532308910144670577880143273822239337350569516071801666571650372122800376229569954021378512885871126513778945928882459715456638837354652288611392463502649909980016642260129146231019757576581361255939679074408560095131067898718970110276203489874816369939216673126690200502549459001228534986602355337377759848649945225246839713583370941240754545473816897029613882980312788162004805322934091448863598874306901731852308618540215073244791509844083785212380183406040197171666630017322896743729515128761899170377757083338437974868462939853955715964626159970975772623111231097127687551140040998521909288175707624595643301077198893485721948805090874631659331837477867123157582072124914700208575183459352845714262861319906748095590013496186626931903718460973334836966381727729524821470024015102365015853493554871768771796451809946044381186502901338634516503457894633162051519961727313691314840406513472383770388597585681879890578259349384851301450942194003296329607366377016942710217621991734927163179107088953798324065170198550670519529906836733359868878322003448641427958376407152381830689748994505480178556122610613597071986452865720177806236432000189644639067759671711004164227189307128259429360075585668691220811931741396777752562260174753016851080651966516413029798268845128184856304947849570234049736548312392662737047979574336917865285336989848105038271862483708398000631491105700582197780072213846049983949030490970710741846551955120703070201619433937613518601066713219643521491995166932109231677487468591429026011722611055779781055137395590780223706460409011915438446790587483387236436822262021080440777670854327521348072484671335101593272388463369883227248748666987966505687287552927914420330988566207005369809997278986482258613165602683275108260688488362995222313262048241179324887712323997095491161861634185873962918612158651513600199322375817681782021209656272331428945156796615948709315965639903000207768093805987519468173247397080859758710393655076326464595303705019270137093058309016875192637114366797722449093010842516347042428551605697468539527568981343519647938799988437010029947055349016549243937050391330612802714754290795085016168612169518779341182917072321093385346008452855365624747421805497719480168589218483832722120705438272622799494969356548903414494144637981205967517467760072917606507903261132366433091433972231064847498212478565365496270841084789659794991137437596651858860464402279985119746851797189925344929581400770383295972049554649003031508828282323302466998706560428944935125305052086414557418152040214929938687604651419774855248101640508447794027341925707899156340167096915037932903106778999396398295545985724206254491108990061454569287636333039832977591413087783215021284001576734986654483613191316723516355818741198015300337344626357135164451807210784196713337410779240208552836953473917848018484726422027191909242923235981513490899768542658020076789841726809799187149780484036845809306734500353839876659587405272106727442398963726165416915920229179930921809293985453229909450380365777599268482174704682162718252989666296202059869348861887488394342954861932396481930892146130465551970255803089301124822544034217328261857024296432774342439213994509858199777859428160226527408235635241989905637194683152257798478784067816323516296997673102584169863528384773500338253550155503917856049486456273452883624731573958873236300276245577766420803365424389695342159845332006717761825223228290195126631005389238745650505684181402886719479838858954707613484300083565029269700542127280400031496409913653816630205370078078231177730498394525795264170696167958813407546989629791146466314886129256638078890733951644926821096021326715240301445421592494888195038604720088315577214995809735439320019261648359064784294105310919967912502103363141160903869487935234059440805640791627461188994375767272694155146072577026243069663694442628112296325996481846984585703544134905101867665058982996499296742386404950518766489089855000227853065594091015804107848378027600160294738942100220193322014371596578973907532496235248650062847308923246945487652447995158680526726832921183256194108613096184039758032856322372793994976124769466416620046299643903927895366373740920382958749524227217649680370871248395601106734141862104480481596940098646852196910697686058258903442679238309732118851250096296015203475376767311217598522176938066637744948813949372498465271101131377176919635102293190004244860906842792541423023147941462650746983123254589328255062642696371211169176471666596802377776321343863953691811691104115073502238557360863004772423811597190095073892737476232521950066934922326595905466623316244708435675922718760254955611090937797461993033987650268049009848966408479984413506306603999056185741794733703213469098186005034902609879856890714863711771059165667567810139334071855474397694158449290736498647352560586294584861670959167590811313817090585805919157263792240420697147014728770540531639822738914329149631486966902713968946899053956709134227581024203424225906200745133946337819355607050697207601304180035114851204534324607494686396155934037725354255056435551242813174454211130668721192618946664831172935300163152493772788472675853634330796176592007500401724223638376738789529200204915347871607257955175648674387072447311089780236275886854997581801487385468569180924188068068262588450935856350379525523603587992539035335716631919014439029806297690932403257184426755924524272738220164311313116753760154285248519309820737484754617397796957591960305318322312397314408073946635876859268521411405650089849868090003826585176413297472397694041967501418136451999308911756445244417167796322779332288085346001604350240531295969440056040124750262706149112166080603283842694701678472028570725525498200583807153689167299276815558734088052184699291820066394932021016115628433039636068653745780306148183623467862383207096078259646608065454069373868407675618266347102449843707170036804331410839361832667835530636586085448037684154354617005700664590626273431522707115995617213316952577484429820079605170962852916956710768762163468977886837221037629708593058250280459579017837026213794053964387063809531618734763205385344620067270962605814846680403627005441986345153243173397687416398019352451787293995779848682112628216760088724993789303740336640338798548915989980633661196303089837914360332178335052566453076091745498844578366967664642060794056725150287375533494384492969421041969124048448862636701237558544732119125286710314276279507922831633573479963253340009302385115008789579809537369281509847148771794062491418970658263813891901637041927547325875045950587362743483621989192224598832812841021088782755326751160994525922084129765601874843517759830716892390677455871357230131572249287221356684245470604309268749026115157142858045384460033639883715267388185519125194940550583333276058951743984557187219313248087823856103410238737120904860187083574210704811524908674635747442141155450133847696566727998783745881619862147846972658789570345496195050014011952724364777407803912544229919771584367558659403618667256634861354519912824880734939420975025188962320273080997534664778541500289646608143458399763603391606129738705927190928806390697464725433621001708706975328288582672330729459809889866834898723934374914875656428729298150600133006321383037050725176779993205978438199956120827086356353898426059591902158843042799550472944154405508871058634828249825622351529379317547994422659479317978415801811471150559647523081758430676249453565036246929277924220322364178800222008373677728700420125898890628613965887165812935635495356275221522823589938025076319396746150734524390073798668739228898018747401302019422716086633595671271954867061912320018810837927164202932055835063595547010042372043780091838350064119506252432089963381898012438878421959287672924354107591137883357511526732534539366004220992256511995660869018072248555566432024952523275874875773084211264038829924154760976163175606764591724985430669307306074082084170061315711598940022143717007169017670056423180479155743892977775835007246123758675387354691774013632461604141160216171754335514431229230989643464207778946138795425012225321673012327652319762704552606970198380375716953328358824476708029987220226517164931279929427983376898592985225430206386388493229997096953864210853132675813623003871957705975417849241474040485822171054311422916561935084649418572548564898472396226659237488968338636201166719707210400354034753341861447331467550967160221652082692840295785796296545090685369039146228192964023932690632340661095127914075499094022409663662410499918465477248334745664483473105604752243670239744709068911915596866265399387934716499345512538611209765913890715118387953410766890914482921121548790597007194369169587030919966170895249873535563890500708155498490447159248783413187989045701184316068160425012218005564345543112491366992933041448484815916247224855737023682565822626969081501855194688340697331747761955176502722020502883773343651153295215541565210967619942411205583075189561545841890295779037967096115669799703359095232938566449130177371080392665476386983730943433636549908047453748552846836410865064736897797067085005115512834592135923241215887597811220507650565572954923685457430816115905674257814434628904668370741163921234129794757880585133625337013519862521007431768892526018827578153146732324837818488818315788771480161321805380849246270341970645362187142545108426397454916736474124285182500114054883014733606873622558177812755165490892664551016704817337642057302028145197770043191742788055769142189588070881875268207686311805913581835276023379795338842949778334468059826031229000591159392983159131204285279308835311222467648218822825758047518174954182297821449732482649277508197940846427585830896471178671892091898106971353929738218680933740068845203824634006238959822306954467433918335922387521680657561045885481267876588081549125321183675570605847105271585338808485598387065085851889865601329768370229238474894197062453795176037884083470315246500514304199167103040287056564720065923249010273390633898703102538130581134459151322436412038509558580097754489830980276492057487333401727759718538404809856863270893113753707607948908122583760020882257996723441074542531195009685289567409169749777947452255051486734911270024075134677804461418582264435666568176538034643182744022576530159272587262295823296422963705824281761882767438612249413099090118142779769304431262818272557594182974928496612236160180069724037770196850433228713721377281791156784625934634343381355324054973362337797521321803426378150280332744044006053540540764169219836058161264068753589278764266994985416159409933420455403512425295391628137702617415876623726616480158318896337303566499965724136461940278048263028917869976689976299146201133714067694688913502680863352818175007792879777933871267812664964400884856280637818614553598000264948529603296921184219111931539013501374192583150205217735618087374406942876590340190949769660315743572642488265054887038426452245088513724242177554381507947522837422528591760820432570766992425858339756468150534632256876261752110561370506415564320226141742921127455872801670533414869565252369158302027295963083476706449586392793827592333731556541662827206475036606610136172307604212819483875783912403761984675777481210979442180678078075567791157880372387426670374997717763407318209257330553474058682040942267260144325656218217148829495758341649539689913190939435335025038732882842967103330184795758508929851857701560969910455976844930630230413398424302218552140780648704950314993149671569415085051530643800076961428089417660434131403495965853848243003412776868113516621180339687125703424574693219855472120659590969879517614660854829383500413922436440324678657378139596852355121292005367694351768071012710181589003743598423672939107552805746006934811051597239659536192440760972958728848025325629861169495879452800045644206089689957492229711577812517263304356573280864511006464482875122436689270900522280449244632506711945568572686908658222655642787218265047802144095877656604547569707476195315048232246436296531676760858602913363437574465520137091988054802739979655027940148353118388235427603225617663108845884730127721735675548251542858072478633380914869657483336587313282845313145128731006056602882780378380717967735119497953607170000321646606110942029978221320894421549553195517926031232529807132676269584543478104140079771267022500735273238298584843802145198691683664059861440866632555422569388418417552144444210117779738663533220417715347143957580479606465993694053575199043024973882157318751192919629062806675414737942129397791088041144230251927852229989871649872303211848718943661843883005349140635832791659377406272307077585065016625494755232925999590279589015264807691865169190997805543704263268712327206561188527632367398328251475539885743930823658674506837031942698098131733752125362823706350617515456864634659284778530152062609192898548381318997520896941474155113927416659088307850544236266908429197337927749590692927183413359881990299442675055438542280873015248793705600397120960093200319749835759030898990055853338182018658440682448173926705885313879062255204664198772418785723818055275584447545255549638858418347143859140228341546098382501148348858131114480525954683589616941226067279602049170417874812265905513057538191822811982100018921405276020559267367358014536789164270187895127953445175794561381810258696178126270814273974740728947186241691448288516830178996049213266659568114727610832333231760861871208972308483467827908509846265655155942240371244837345306936236777628726092044602088376735462775879015901727439503093312389990549981451975457050182401593819894088134899645129400104139112340076197311934407515923915885453421604136927860121444527311533294248726731730354670997275267757274672422519157680323360243856471149538639758278855262580611395255157058556696401341699227749363890956379761516318389566379274756429610792615598491894488664653049420623907867671991257737446934017850127661866536138549096357595287231975992642083991823057108424366228735129939272221271855994435480931314888817379592658635771017141044150157349839928992835923971264782648026466851600189111528267699365375511768716529085848745914162600822795577494958795418958299605211895526964817993690053314722367837699271134088018396941377524703736043009136973887150027337189417128959531645611157435349189185098602604556809436371135147163675609026523565103111572624792888816898280752018431726353868332229141851707046709126445913378846335829304647290392584141768514880964177598569353429176644736964433746890568636101063451968212681976891008814228081702263404512968364651239696649161046788369336665336301122049354665461406880522619586813685151278874658001585134686474330317596092614857579534550012813310105270840182955463581941388272676178347832870317200412633800448219529036930303391685257469862851883500636228433955943708941656944036415884854497469352030102329089302882479254730146737279577388392513547416062360264947974870215191306326811318233517788825203976918041737364645633463756843003119617005588462562214345666384118403493066694765660491581027794369210969178174911600751769644505586049054936687569729462410684123058576549589758602865684034690613640645001286625533175730650018608687758546160666520823614004529342186660789775896248607283494027523359167422896719000309125437690263320483398461159406846313519441410303454023329675839298740484426044064805950020004269752634157604640959421028021663275226726606090432217281076814050798359693468562414882014621341432759067009145512984904929249684966038887260940564797470026714580655221063700656315252458718851802076961130095299036195859413543558955076850580155359257443505401054496225818105620356155831476489857975351492148844454154317176897341683946585254298549242510861691059323621752115961233381474706945837196768104705769735559887222119023981451789450557915088208993745474596127815257985855953185565648113820481149140951133873127957552686940250929934623280142197911092080946105255461151741943856571708199797859829029891527118550036327776440166751653203720762104183784102245211457824514909145126482859020673441090504905889969093746349777141684042194260936191012633809077603340488875241857894922615954481047070583857626939537480981977242399374900070185820719367790826306681411763300583199815567905111498972375553518442794884266521111656555694282935093814726046651544018760340707590039718015510127568886356102945091926348931353908663246131082602425432248594503848825335030190291576248971188941217399709457749040065777240542490834501768200754205431677345549233427995708606901557381654120223537084644541837349463427156901791049844653744784394857035347667909568118686180529247537062674999331755352055400914595970121483872421701211008056403198931611366650873076689716675764356726183619696738090794489109583236393358860858431755858276161587216406332673333257306573416208119930261580789374019922563068941116472203868735594633647760412352485886699676096832307734256804018050046460814610924446472879302575473086129195709504871330135268588114353524248349815552417010851304926238812335584318638296265299771745715524458230544752685145739031928616588198740922541284447045754134047441783402681663040016397051879099044771993938650107689462625554804282876841454428755310642607198542400519141479565717205914071988304785620010120937207925774666767115702578372190955144165201003787190488091192687416450953093896895146232436267891862278604289792487083799180947993042668767745743003635592312402533325456318232041194674127560120465598010958819309253599846248346582632271763248182092309241730876284497436283669076030386266760848326434846508415434338427910183317494017941990701952965487846832773505522029146196245087306189358497520485117153268243906607924187363230118416675354186234963736722518961621072112208740181068554353133849772778276111166142294193329973701982401139356651788359535146505019361685524163297545929442169351493507151127806473604354748265937166647248534039535944410866136528688028532863322061424194601334779618599728525897078163724625840686171112089666903562798855408397750611800934565860907147823137221718080680437478320305766998749030051929342027504576802019157816360611086734684409842241044001957386130561098417591256715072635940814995969532067210918421120603967523555840997011925452890530831263806754288405911843013471329830005348070906133900997369852151780144702317998251420591109605925013907835565432096227873612619605599730510335865963142250189466916677287019104911868836219224967687680655021604077705155140007489313610901644349632748784452598213134561171018092619917428990257625630512513174261555309312230722911088611418215563292547078306457708891249998515298318689205970666339167241746385783997407262300066076525955835271060143222680219890398859320254415459478191685972845330906877214468137128618746071519786613316790878422966985160290498865736671355342568965390925953607732940915817557903780947229113641004830136302326688056649727063459118187675838199000754612199989162044602748952779924051590594954386420467780425100085878591623983644554557840419017066396922591910282711000684678198672832884089417706448762601727951690861231219639616244701919599635158467843330151000593219953340474609620437034771716212344548869305619935378523865043382305517811107782818555573782344686545027564469398477900055992560562780495210834416529831185899186311022076760794989951849517240735909491591713832278347191717003649715432386685500862632940817860638928503727881069709721177068521425670918026360687737343526512826471546434074859775370068901769605627494674686677027541966799264678861241670038450141296729042142754420348470909131531190740457615058356945072687380934040600415312399580194199632191863780267545823570997161162446138065149810337325969536663094853562651860305410549354103305719558344418547859113850587009754038961172106273339934513608087211713875004968535197081655823021084670824257641312873851153612440567198762563424167895499727049138368126973152618325413928659775859847066186933825171873820898062962000447965466397396127574330657621861999850485552951715753834888578530254877193110692826232340832702387553497918637315047572636748477766020182165028453689885952454765722978286821289947659184971508798825987030670668980469015023722414012908201335660390060532418580701113805728640001433345694210784721027915310170004271463266119799342101045760755132352135994585175450623430883257794701424839819556263259920321610410495043064767180295840851839107847183299325231345910973044052773882609321524070101001400890258108893242749691916725584285114126526327873164717202135247053737009302803438746661899978588673793107281608947079871973184903576898485707662537746594731960443999043141282989577511496940854019587380240379425215542453951452489410997076230727633217293781776145954672212099183342222791557718757170223276567572991910373000589046390088219440236926658513703404413721544379135857178555329200787596107715619582454963487073741793716037703746992812247312484643363368397455952266134160717898701046639814217463939329101233960328072143820474895792497693312425422024876759805926179866704419667484960031021008726536295426052306891689014134408891604909612596882679115910561210697919879210284073385002389832334833369832940530556796173343311393846863640297620983938338654796025516921243426578996396227880876727313667744356781805455914960584293532708589734779527203039388554951195745902533588091160349132057819587909025080721608671630659096283798076065871144066660448640409954284195432290926557024236705394367237994214100791229269842486017072027297285531429117532852593406775875021192196179134530222705670567614699474556123081042977394573629240279938193053936711196940068213275726472523126101769625760834898110987701117213243975139269638054508797819793083708860201664600643085063294720126126070612887756748892735445286110189692029854320382957895858114051361432150239167551648992890804213294794420166716134733095685220250022651430093613321763517089083016224142684793148098978241964578614922671079042806538472608216953131576893471559537677189355861487209103831811519824236359469730224966716903707476498235191647401039978262591626342758905650743393074298801769525208641925453502939228994829056509898256688472158753660190730950476189638658127578600280615745409007132768234088378498381823153134434322197251079879867961624666497089690149609160959027113776313542818581952506930406081173315223804436677264772387284176207346937153289518674887011629506398193315346650267364410616579449857623314276361201101850389650921987497352286045741971836075780637832277301089552996104393074439753497036831644136532090415078721421496672942887875357728007631245686161382362776666999223390408138441592431621807503404467435375910309381590587163506959075090707590675381053316168599679537666309970592202716636895469056133246489052749169851191026926604074902181691036737832802154314081814515733842097809358722992602120147216691241018402418459431554138472957345031960397112038180204319199404057651303642111502013815030082049755555021053032480993782273850853423053260414854660243138361081633905273656902945915397089933217818099791470807169110542789610115226591588831957382107467305555397850227144732087559036805569849652693780816674414211036471207147251676778505066195898562709548758491494955829452750461134706044226770570675822496921556875171177264267722347452573542258981656519831479645226808133305153257874957310934242761300268788076337612747625470570495031433020523912852504145013055209068205520968267470086190015364684971002766999142280430118942694455901129155836784802438868325240783969689695141806405264823090985175959287597955124195720033203271640340994160342075518390963103914302491708674877860243263540695827767581604279686094987309312199188272956180194565125821674897227693504196312429862676436894598000088693166069244140165228869194499045015276988808709356109137000743428334440774008761722995529311486571632005443814163935186321586280463991982759668025518316887707977788560593093436265480632850967498332809119351429105959803683664129148777385212339451084396436880161602726940942653045978675279220657973045925924750176797215386872614278583953989263001130101210896928675376073026538062426533954654499153588415997620695190696653011837728163998988729751818283308853790182155362745614442962536155781460041983055943511805344175834504270654245832093766333278244818110676100619834694934590329452887014115918952711497756608136181974035519480846810369725113571771109473835801278374321903004173114460896911216867271512548535733485553512095602352175824475541903798731449998138756908357876972681362860044877263795472664208097458941197733885950396248485098143793518401474893673939778918529912308070933420505554530178136918225303960048657414573600212705014304429117532859866510872526888504151869841733564151729227877874301855376488223347959540912475298961457572325575239478113943051641193750725807322277158172197073986340937541652004732937159997347172246941897337364051230254904929081819319555521911732533795546493782428589524518002592064352816482580629134347990080831828581075362641903440894786645128877510018931887831918806450946822167640631936085123219816538253977530911061716554812439364470229361421398800731516812868683877612692487361654347030092642115777961728674405504672859209400007343852920095520950666198887637366879147123014592530963381171406476519818081865019105023988916573694368708230703516396588293221540271205879544420282202288392305954437575055412948376109778173797872063375012552177619686664087020643712257540737429964841166066641545447441944646152815620411674085448530807220581306617788053899392473960362630736847134080714566842481028851559639555456323847938587545842969425238655634999504687264214760729921346513658078018199850876187696442001889743018494212617879593153529539583792452447196960111368827789308172836116462026218397211209376091045526933302181534662444615722642861443429964123812601571115093618500248432113390225068818582053397684446500845468976298411823343860687840764555109210269647274791866730578678062539396701023614533267775177962809904918669218765200971576245114669474614197122721580611722234271688500811045483806203961423823043676656199813922703080168296393995453183639647214794935631088638397508068707482511695849697185770299689216889535677393380638543050761461509391220698098156499567116477281401605219772208206847079020778753105476304579970738698788812888660234382218300035993405923847269569992763126657186554753616128403308259818659091313267197539187884483756285757307598586513317990676324213776778840570743037863490627297824984809191141206938168982580445227470427036708906550169826265771744134352639525946312883388614143888047662021617068342163751369279165495788468099124416226511274009748067789593280258358092789170256641449164460045016960806936286565125462043332155480954102228578292686572949318212933726581146301971065781195119584743579927017544250824002643213085536221821339256909760196431163009658515967433853999230284567799503305121067633799140611569070404713562097941340743582919413498845351716130227566471194467476662691361172560504379753780436044915798481272425783660825694115993477798621173890141311075075749717443933038203751123268714775216549715347321676651356612456592386066821082657916281925449125511738144896324137670010142881273422945643790093033372831125497623811969850110731683961532325225211932682269947994147253253812045943397846597680805360000289147385753691442813610041437549089326647999628439073742027255200145998211150202162493921335806327611889368476332214830342346816551711636783647257383080368860058355720867067638017423642376944400545836005646799928481427006537149526114260402686699123188698716987302720065213522848243704456725411505138225376109064648831245181199390208179267326063966465993640349050001511858063429216965322076450303215752561367088527422565698384181646776335624032586980830730795350020861182160557448004840294952901063257735506398820069206208923272258177509704601962895047549463066859480786409562937534031271296624882050872723079397682759697200735222314355889054320862471400170750784954626599666957750229371622580384876168829710483649246404777213046791314557919932880732117913620377179534133883993693979147793637142481136043189421843756400398970972740786081116718977672470660949789461267465769595211779429238619887419436948268943469750524046094489965551790346675363275256920383509270201640634180657912858660947676067678896785917431845901720969776717024461704154484785410270987731137611421273359538617296064963834321380858469386925659855984686578105850333056341725101168294797964155188929310681965834960895172202751404236917589457494397007127383408234891387024750306009871252730617594265068617436400075884392927503588118115054393739811954785740084755907705208636224801313026347058687729457560949121669992279470285249835996748090420747708535149997574953502645160913441946631660949818007604510074738213023687773307698066965044238187235522806446641973264169922848135119619301377424866951511897509328020376462269648032996067936625852791290049406058624183048887729188454042146990915744133695481548803168456493007453082098372435404384567657517072653335627434761232386512129957603073513242180157618036217893437900080127039858190394874194607008135287072837108481708324611537244342371639961688676010024741960690949188495140248387079367524375054561760713730657128724541715913778729279687495118081740618087186400994744437851492927660019570295089811242972749589161490698740174291276665060585120940647155284027370212622810835310671797026410529293164764501435004743763349677885683132902705969559690044181957200938984670630772553120688656116845988168528677574817672288244561530335482922399534462825526991134570282608315520677831822796687019347000515436579444916698168132633255752367150566303466944441108553414410460203995223176092772939092708661245628507198749419556246621155043088072932397247667682924828539405073865921722127151106374943868726016835836103371471030878090560036016351947316077980546320429960395490127035151506952550271771020785808252847999207425247282741291263785834789617679867438647964880384357404786048908874662380459414708925586795321592198733867750776776503817709842475171800632267490640565061502338626613714500228753451526510308470367391196922296060566095584432684130053894230596160993423677471541292237682646490917710461105608065800833399756297203087113630579721683858121995518297402903172626070505808113667573544087458944912189305156137410755922325209201559488347009646656831872432506882059501991754797317266126625134203310059801572590006149451583783235500062268250063629607698925513166685840709252123272175834264730077202068637074698167726733771384899651580068943202934572809006279153538034971193391834549787815304628553484807821917465864590138044581522299259374286829373128218033004929574299572252058707320770737482299756257396522065724135830422311121763399146545043237064816360078517009559385328992875312992984375808390661859819805646179689383388241650283382549713108903074578555443079947507675334879923457184994460022365211349838397063443472451403409720670825874907087114904071799558414389950630544594359590778134985841581647462892781289044470863240386744632454406329255970469555444393339661163597660724120163267419318547755302942052315053157846831790018342249314102086175739668630269328357837374992777169686281823020794726009163318206359100786699520533341749159080532749441325819404947873243553930638388498558558924714841865736729380914367384348055739459926623860792478660313114778106331330382485185218809410611595946559877704030102357745722964089543757802993870943919420084753287260167933168042585458636401030781857957332471069875691268527124208996738274605304342852781054927241560844603202036739598170228581091038590076331824486824525632884478140899072147273048917372750806829279303842328736015456654562206404057156056163486354415170323173314073206035372855826882166974047290177196495347820645103020648971224075285554078836706620483808842696474751006467920165512638819763447958188665712338063258914972626501900166414056350192463418179663281100789137510391421935191530434356364079510253317818793637300657764194060025095529005862816225586713301809509095724000746007495540173822083330679327954522426840727055757590544308662393222451239973985209549385301920482988463944214728660052741616034974010361153074227612040200573942258008070961739342952691581477895548484011337334044313363195651524217668555387214013110142335883731071518156720208208538190159794081660324037113950502867917838951244691771886686649108303232392609548789168729034842302149984110165817461219385916205698245528611763922710767750771887440219125670684524785624001867120494985330576107918364186128954322401972691336540496264764362571965953836766107769356264835783831855153519831860117759080083072721400934955954294584982499053528582192035738294041786460012088724833359944251403644903195889230712026887442824987716834259611033594176177875718636051010984819161777207863885642059181518724718642352459457370114421031778034256536471186288171887579489128346308116676854830660008813986937199622050967335404113820374275997943096974465670787451482475548153484377438999888551848935673450928752622676998924275751619518027851544183759375047600223735220262652249997572041428712477945055155476338283236944052492183567501608136037901009558626898665602543609507089805280039163558358901431479527878294293039635357485123008765184590348987931759764089724297806708964183582590673965778687241037517906275454222181401717639265168361104413918710199781017569112725636224379263036977147164890393356580614233146620497937097519338414986463290781181916655977696652204832740925851888965602741112554310743585017119082871762346148370373338399307933383348694362997910214216059542348510318724239743138077496228806096091626119509746377517315394778533114887425210401619289393692484097904629855917626173208652270606743931203190908930126988742355564504882473321153858935418217411836490214518154566564653421937780908166199274629007953690037451189260004376725822835832187797542211313963845466399829661908086563141291746345455209424465596320347263507903111100864511660096825068259311125427036245725150220035808112318604911830268807060722202174256699110840158194620539939595226703073040939868876726822476598013925229379412371172809198463992410426163937040582283784849154664438865126647458958252563812247997400914371264236537648754872784255025832241564150448301372002872243614777517173305157351276025853025272222891189893555902607544122243014936116780031304759821472453560309560269523493683847552400889922654099863625859335156785061179701888944352227830110413119262512603738260012406930389937929808939351242014546800799874005945456933657862814315149647076739556897815764187892554489224481338488706153780274456428943272636861890491417310242656374596299344416418923926541977545974110233694631307791622314750919478334775247636122679026577230482483263941513076810214647603440796533582357441048916759962521849770129218526777051226082720711482799868367028052176957874560145055054069842419684091189042677165125628775852229509957551335710305832050103318461449586854786857869942623980148993315481657200032193011980641907885448097908153323038906288978855754220721537598018824043199502238008712868484004487892078286529323244423548088157719259489284197431716923279669227895601194176398379706660537499318904556692513161795383239675203795136598548233390381355282755913570956015076667140267873020061795297070598482416065650729392264180490874317153098551644082022591272263907161367804267803238512294915560131577247476724500384877605061351565228545562169754298614332498597428930525006021560443771616630854498832087018099862117106624470853649126247424769433187020506679737333500023556669900468124926518006405530777528323344881462359627337280835829991961098884805657415704596148076978575166038351937775143860289138901835044367553901744650936925313696425707817800386393717342225465378516693301928263934770720876579971091385112852339452587298283775974530452947081362203835040475369689526991273508116185452116311076744214050437963119849948846441733843328859495497734591453701909924333815969951047877772476554167527633457933173131598595871508163243971617586378675363638737204125230934248998209927638507667040251135387354335721198273925502908132790347507350453650082656816973285407699232695740548701279185879055294107955782966740067429874113019973663596631737623439707557821342372202109593130769509225559482156091089019686589945367810974814803247047810235452109557073883174139772583634074383639959800139103497385582765406757616631395313903565797209322117794407922215946141875499114053811843925603491127641857519735640297460224494963642565106828509932298176637740399728502513351633681206653219237003342729705111515739444536490294276181712710075699962087610882983605284590360208135245276263315250694675330916602277167986328661619545589925881069836113593844721074348418082126073009914961814669919136636596223400745520327460135092085123986370312535838386817693623893143939033761281196180711459704957600667289474899493549696275889944703756631800015697486461580357810260733608537136927990395053847840404456332628457420370943303938030727533393178683696772044218742338833428398065011853337559107724452882761793491288102738273767374817113500558511836694368228634229921748832414541005716902261094799670245568170559392526740190701434638455487315627116753154269104902785919611673405655853151466073353800195055294478815314236872682529571990889982051653886789580644218069250978739870622677011746803310201153912648398873712317545406308644283449701113276852414533374440043202844166587460781193265621543372266642645305676786479824037446168641687618498480320844883398358378008528090544206327296476021544336504012719823856829705914771523914072371980604538589348369065051276539053416176855268055416777638707760356933829982262180213810351069670434550388284023978095147199362700722548007101094890609221304220880949498618406279374683341707365832040697277658452376104005254237363262464631495231058240886299080496958430310394304280931199714992154399467585246060847595296364814010550323540583766709743195317807678728222416583228407453455236222358537198204451616402580347804924921238758979858701797448181959198090946255181468210369186754216177784589310902816319278489332492100048549432169699743350966154081737384155343702234931767715706403825999559421422802328479371753128430678831588351749977363552313834214783294349505785970162789231837829716526006050595486643635068234863233184332439416838466376698230031974132311130879819324252477506738388516372069473515839290472525879781821444641318658690183710673855879240887922624353607845037737400736271767412669604725381721354362762575241043733210336282612243873033333600115947063562982719182483474879809248463253659823380168211129963464768281314064385425737008985431896597794971693358530897621755586872327235526459084183611485205626092663132382611571696818860257254353318075155216585431408819019919368443785702052057046549291818829804048126267914159794818720323179570214935605454332773335818912825465680732221155542389086223745849929986577619880504112576092545344673445517373457859572631412613437564795073269515974290909641379189721365852550321927144597277934025012136976927907304805128226292927358733948094429471067864856611457112705568431613116728434704041646349497026404617102735684673706395898311800745921859230960206888197329415178076326235822834380192685466203264124200957107386276967952923027633887522866026080844314868591404629661499978373601231707893826636617792608647941304530884889408656451135096364804164086370354328001718903465290299600712201023344768799456017916094810674492309479285201693990478553062923797752493487924601763193119399088739213454334495650752861289100564354182143763528137087534758089427630210300072359916399720989694626813092461079432281509033993816873923165415771959106292664548131089516645464833726924043259299293806473262599839676923285219924379709771352251693322109187650072260288146136398814742204740535922854932801148760038769148876862149336663297891354048879552087290866914247102970579848554156320755860788740262881807666010444928473056068480945776523836351402894398341561991580746761591191824570520895918939616551820803406701964843420099995381560394807462485829317129400461920723864357466052432952861730431724019530670609306252685397585416924099441652889473353096482402013202418373659911666690069943109805436756971262948209051241357892670340731361608490786351448558242280230989281326581786322266288202863192611092775366942987639426821238471385737278591450532667769751040021311448374441511912510050083837701762813491147988877379918167086223519272931239634502904388622058729717325315521580480354360028670832407369766150376188106319934954355111832097010426152771697865177479852289402473699602530552523657898994512960490070578653194306858526988723932795761515801724751621132182271990617072341032057647673471633514485054169737781623828317334518955404774704665624681688547745982357181142906819585213876178467446000743936485633756044821746377621313414011238035040823934171909955619566727329467183921166116333734547610944672350728814371559444493406264437318248950785950388251645407103086417324883445197607957677001627877119030439081569260360456367374896625513280064401788929095823619840674795059351431930741664788579429691069768875765142970559753797075185699589055315140576864751222427620897467343050522180733560694221735386932777578169585024685646793401460580942813368210748199123478902080580378807733835887780662593137532238394897913596823273644146210100757808814139149351797461664441797693872307272591871246499867297941620850363331425161309385226344386774891005977361672996981485223535836441891813883985085531532492900762507571458830129147127393842282688199616236336639609301719806450059001302164730987590418914768582452457829406203120247143191243827559568087557418629904977838199762741051456001933563607582889302065151874437467249171608570751944073490090100969541333751958571528393088662853519978083549744876916627271448697168637820431338659036529886081857953136403015400980426085302531003389745121253393769184544156198863046770032100659437162899970786644860550186553441235930386547804830570435843994624784299384796790062230480162037119220594971461935023317327421060077209369894024637647415648366276303551702682221336661668132827426270756325170021476019806826312513877003775903147904974221005280487200115056518383895904925704237510915235542832851673153495150329268142298062058612475115279579862384372364528842564900341315656975902618118011575404782377230328695669084199952898738790871667935854190828060424190362988139688576826069449001070709880062743811885472389329003907360543736841505378258459923447668143314917400119487241744445560562124615239227176030576592092990331713515725143486736956353006555060823037057501243255309718749737805729310669352941623357037378582882893140163730821062588966517155266651205469093706761114654912121646462450476234676589549640431307954404316293692506518766088413416317877542713795697869214004898493000686375839266171341274192338456333950592322594423340544219890127006032923597820062333753753374657264925166876426375724224441306371533140783699763718203091799705438890788534784082955726376568344195456380119735818669103339927528005637220174492544696748565302997974515153072943453916191056330743157591019848951143224352698866997083614780643161282561494025022266707293046416994727706442284345810106950679009875512766324645596399587023258757653806880567518658960437288156584087836755702838054114481426337430568544259740300857728102684419318180052775936318275205962592627931202505646254921399034907058493441419197153594320214466690054129404714819042866703165489188694219643228909541837309905260246257792214906138474667155486886934760303819637400728722728679442808753811780603287593625682581239112811054676750766940393682813622871809026085678733045018887769675038246667060254178424389283105858174802836140242031966750610086450725767669066549761273960828665239931447426131108316593535838941387105606519027974990296779131251338062117595769843162606012213103086794737001865261878825439821132197497515564765712464256566242334522779425656308988747712471250442949815114995934940499231140935336069071601524509299974591211992470519861550376781250198951698140788037202899546138250683777649079876861357792392600321333342401868180468055938104626210234747672690859980191022260720877437683267473153771854345871358833214232637167548303313463715512680316470662973532091465787053726660841048617198851697345501599385766311218102735671101636167289510550175791676734627615039499998511566954806869997131749156849517086310555670104666094868939738587957193490793274185360282787812809006116148715265672789233196589468241819701043642957846078997084470385986367312271081292389568510535461231970427874407337826480837886427226368773464068203286876288729036132582877204915513023870939082313417433192880375102346060390305233754999107219181001568895665959985931211299346315193546581552772800169494860125882405640519309161462850248154026921430220501290803978476738671305016226591543519790143447112989368354700792528356707814395894700994387962054634556388491313876249220632108249774394287546451092431681675267528027840600059033275152243670786448640555531861020960080345385557650029860604007027360494444153697663338235313247380476804177327122531186247753138851282772406335829167694329944164714697553058458485924383167640440603978836062046475395724176529806967662258977107871798856443620770905850259795883535299521132356523519195839959401192156805830136135685453308061369541171438284656361853338628469143648983312270108433920576506958952721364621822274833631235200466546228508156101591086064600290434673831469755819528334730201351185456527621644695938277445296577043141693434361056370368334006915665226273749559096863906441603948384686415191175121451016597302371555071393665872349832626616753364931089757647088905231876639698237406032621403426102945378074204720099622043338249252262577982048171931215331776633841934620322473494306614653542173821357680456576487314234774559872076108681766157308012269309034769312089848040213253373781075255582048855166034302591478728232170062359344438375393403752906406674508506100172073105690464816170090885159868146777096426618210145697023782034164514694644801733038736211916804872053809086633067134757895935830223954458065547523282118448249303500042246838334141202580413406932924588979066542052801475651185596761111362987168247417847541347300780671717504876335366759615795796495591753710495160814463320939224167271509686466195729864942021053254058971195811577099128009184218861395732630273893460946137175129871058344718358605728770014245057319765601933615629855218791942976516378902706761286633897648864248723985664045901274518723930303918107654436659680240211242875275017474122759828064043345723429520412880537868670463268744222175983100117455245410233075041204751965711662298024205759081497139454627028400172752487425563765239825634783715054388165574261076964008831119457039648394858394018617670786326907324955593513767585820012987853463559889238288995455272996685614839692433738074407729454757670627730996522465886829152831552736853104550956793781059330984015589358070852380323681599397935897193696491083223779712233286278573137539547248463289979045571105467800374612892371177597733765277765964884261103429183497010397002766894539253571816685243038913361084503073864934670581181643465760715877184262530267017852531499688367743559872711836210202777470033864053736593529618316700200926027715179408853826475652893004113348352164527450832318497391252978673940044345036762118740212988239083712615567499101021385615994894813369169958362190476487723563349963097281067912087743720439564293836125171762188454020671678448356617039419572907491726466921823470205901066176938429154948260783876014359698674617534854425487484160235699096515361161318090396290681937699093015234243858005518719438589989763278945056794215004811815155030713715640966809736286438278199863747041547190870217666391395742287487900888993703535091087706399143805192398598788062232148071928657510447629547921780721957249157187477427463521503541327935157523400592516218666137007408399359343054789704068790274406843798885546121303075494544403666189755854599418407009146995092873448674140506704655464919482990036077364997263432043558800946178287726864850392907635700756745682271962444018167265962218100469137667354481165816875902426947140099328265983004931852078310389745812908561393603840040306795349745700036373644258313712047144645279566518809604986775764199612118572874178617684637062002234498280718875215027474009381893462806138509025572311438197839099323967640063151720919751351203253082829296583527570466445473222528901240024917254825287574456353517072913872540392932316866931891244857353267396619707106351742896337047969208819315912351565375377217864084419196120439964954039011351690216145877641879270672151400651899351201071658957248445414691460784222691508807760738052077066173711878022956527394000440404371005729799362788606173248369364127787495222805487703108690819905873974670283679989382606167449949532069231251353292804380668302866186980553781495837066720824545428831606521890019755082029558610418074861773331317992690621463149332953518178560429215419614718928705030439017049715898641256117672210302397510197034765011475213627982674462385381460733658749714240044819342511049700000840141539244766615204668875287282933657117649952049279534064854927928479875769269686169413181417909969708651746884622953657540051879829268258117418832352074442633288269056666223767076307664012580152433038225581292870725246206485520254960254907912376869423816289856707579236443563478358962097987715550619697911798559023579326693043187373839513999050319313443541440203930509969401232369616454660449851095866657481316728233668010902148332723416627137134760914101699574180932369928785279419130152487651110520815912849352782277907717602843189028045947326320859994313107972090496229696889021455353123357448652830019309215198824608175664220097355094570861343483032664035897853398502968142417268669764504968309060665970166304028566859107197535639528084212139253780892402182280672146527681153454936358335645220880380331011204286639328472343904359981930164600338342833789786704816518376418759811519982527256000218990959647068720250153134438399985483145362397489462234900821812182726053313037328919657382723028659727551803983780573392804366449875762954556430747437963836650863129130790131710904325061997150763409802933076751087661859339702262649488841167223052714058141304287909294943265797596701217985890046395018269289698836310276857750332823341946306416945649721649392640554519507116779549638733684061106818223511770314204481545657604071110034479595809239927461138875054352673428583468349659743504626838685816092647894354775080263338452185194332585398156519641085474896047549073617614177538679691029856831646230030971271506785616260116481629578917710456874832594699062362335598818939460108498092723510108433279613784044251072029579008499978975031409799101708889610360169605206966777330399844003672499520156272680910684670016005771354963469876423597254007424443050252590534492539875643003636868954766646279672624400739106763978695706073730253645345651703075113731473122588809266367999805105601561444206884170959263487265967691813522247299416506554534509516665242677972640989512687639259050895420322156418104419794985544525998083597540573151129094042020205724605885700547274789311164574178109118314087328807402333742496388378141625741919878728408534161806454595538853220543677305658856361638840431575130065123779858134969048023745493820011187464860111241146727148685493150692633180267621575674913256342364962479125638736877098906836543604010113110050349795175485582357584027584274231762156424194918900600498707831997741293991647917746146191771885484639815046665567922098983382515365971273147807070584974862643842643790912062853346466523077586828805597931388735290166524621652644138427959924662436050870210262208988374781809773712405923725259734675321996547490360107705241754096433494678765105346065738140611025928475680941872877992322790297002551111449268476765147025866062105104497539776145941478513314088797882705482986704140772000197872246259731918971337928679404897656864388326254790746197699438822142831714328652722029890279355457562397752201737996294321407465417300265441291511039895109729736826374461682691428513659211711904980862183427722364351361856361361902166667948137582614741271390127447291647764522248687639365935619633935960611367727112557555104361555644315970262536432023742849291313814264673945700830643685614024038511413253694339780966880307447241346010695423863253756869705949463694401840392526737935555126212090092904678197991052747896822045413607816699121886062575830737057446493934838376914927661699726833213340780819089598614468174911666056028471727473563159791411801347429546428125499727722347053270248777563401786864304736113272193184444227311779380253540736875693445033812263328153496894735961436674891235465870367690407029192031359532068775765284164487557782307775434915009972651457007817263166701377220198253455219855854751960895115919186139840133600906105025405759907804493109697031769005622108454958172072521988993534358082664427274668539422205310570872618128795537666059348741769741093807951005525479985618476319790405506981731634600631938383149666798726207051151000958559878704024276656583231539863320101515593243335751338178038563411374970503702870765831726755086759631069523062548125558131862200556627970366587597867348290157347601974076025196885716794092260674165182151550148896336819153892632137042694355207585033087872099042483923079386697934050938599992559088864064162903863639830204274483485959741329614404960444113223468074523855040458565451807597711456533094529422136441126671668063691413176142707679197641031149386589490852662251320288976663954663279128631900152986678011684910207186797120542699959806067619355194284298969179191938171847410625993434441533569190334663682060738518257761836572695939385945042397334651572300952500453702543179027823880746784942298077330498552504737076806372828557355593971932828495204401829573433968242632791035384848797787358779319535647728341715232468335868869484206204621068875190407411322446849242501266326985911023406565676909603009767753723520059458472428783746715585266370404376458138408451798820773068571015847603918738603495385736951200788459641867758610762998117329091865694455733017016443727486616860122768347780429484672739957590334656248527166311152212125339122328111291779503844604292181673309842204072372199291055528874028461543385713883570940773832698095124211834801877173243088216399824545922248891689067454490999292065099594627612586252927854850703012136436868308378126761791339498340008718379059678287185434551099896239728835882762475185148483164823953250192529585267360978563584271371602331696252819062233444818573126902605284097062154253417471606509137945903792230900977586807561582818620713933145992913201777496748815964519854789327278111064281281635438359177752967368237984825540763922836108890638703593293631499438605591539823984599462586449136310771385443708606088808971407310731924845586884003182801851355051728552462871931057236056198124003660279198515023071419231994794406560170289225683400578781848522412486597541403138303559153291356582584189324323714335860736197774883874033472582050345546971861676682141883650870324998476052664355625375208315094204123455807560846485214849985717583083233341229909411729448837618794011484154353131749212515190517394545622093003656791346319420579315485092138811694280218547474320209163589688441824725078591993655048605501604408126100719470186455181311781738662279173614931666803472074360287003257440587628444250846405485178856137961251311000118527207518257725173005970383737942086845202034206392277410163935319310633194281498852953390071502589376156207883827687361602965119744533526791253484859304686410584019095853882275880809116925739885432544321640188422505304118070221983244755036460734884079533034953914606256459631192490570366473531780327525849644096807467734720204148568939025628149637118704044855550823597550999240557439220953496200746348570897567885976557581695101227824839188313587862085080166436092833950819553471025277355350229568370514193654115694661413567028443828795457334452867722787093299465400342659442472118859813525115575726929453414865722039426424514801839442344250012734825435624205480222273442772616655440566219129413511477563188305500384019488252078044795024671766854202889163388304672710362373286546895168714679704147049584764606236398468808313279404738175424251376435026978238172977908274875765115571508907442849658251398079318834686107102329540772759208576324546579590400458181138551315683198064731462192956948575197694435368875841470501623766127779247747958706757418742426871038110900797704391322281349639033601830811435510035430986738736242942522349121359409515012276652602704275273206467460496960883241772899142405403630461823112748565774925683573299458478373815477663839342106128551210473455832854187610579203529561937078283597129143231663077369221915137164336056473275419760332400916110549720740213021056881329913844205711146162911914939436290677842466179471175862454348511503599996682948114408030663192841637937239266171675641052110191122799130035911619904879419264091402267632102839617429841973489329513296155050419338624450841560710087368803132515518155130934592891089015492298636268743375064261840379280119620555628545308673596980673008412046813047805176747032232335069793955207900972176530756953771611307620193238093062819010047159669640954373587490435891807884551567693329939408876334760853655460338412801416819081002964984142318104931454334114290766191590857772579781513327125701956379873947522869197692663504275392250755293888093127683689624564805293532730981570489401323422475262544484041925790802841932580174558291625058453988640109906747220925761902476517075904702918257371417101141157085569512437674071843302037826396388997884359377424069726825950180069366619629841466270608699894194684294015559944265574087102171141494164526850210407906830273976918912009182017264175848939258391108421701149276650547618625966540045388210924417048154204259140556307909008548832777999104345451528134751880746853946241367463410730069112467169720628090785350939217978199888032160406409297290131850648574462368387397064128034834133645637844219055403899219765865889938127335430418031779687927534270204402845339903589036852171797191511291698198060580090210221625122649719585043423035827438198187007027376325712814834203417406621560845738510363662981064693407065092779777557307525607871512960667680001682923698679017953851147510073567364611854067579853088317935857061766602865075615857105896326717725477512889502350819938542239663788079725676628841661929055843309860895933829894914735158094924141413002059742236355905952230698483766894425465572289958660674138777859781395369822449985735042687939324437119528306628777346395050679360491951840692028739304098081783307589846883247698590954816585867939036541318454382981789783746570194214260226373204871476909399819046874409696506283546228134256652415280036935097268571824855031064942543047533421541383433187067006550179442787049258823493060656935741619859435623056279399512457065641564831694398716543959982824909367762570091953253922373112741595463898685704036713341141367041311864365479549404215153033853672747456488650564058467651612207666303443571349304660666683108819207575459058986215248605300197365004043074590575873341796463574684061816186463135098386274271737703470132426325561340997059827567085644430221955742301096985929126229187914509207641919495677531826630031678617256688768034626852769955856109920067082906366948021948558545065959066721650977723148116777151913445583471499733538561144850518158472607722601796061567004519502771181602830503950218506943551009580315269642967481286158946403726648755316729635976444244441181118203357238577941505481526010422411735093005491198747508574127961795320522126617688043239663448416633963369171406056653514028588638267652041311085449506818210303201162425640346217602069857477493386570287457992552858514111456355243510059784195478633634252766663198134870926289413600211261194796455434584659212903406614227137551842534694678842202574981726856096686651722171407531543673644659646662566602926822551433052856000427983789179754889526675144176737544756488467765697763765561123931726213875996853270928154900749466459810682854693270142066521559853865610181096629980437705945109112255318811755573504211583822017353266415383798361579743719120493435725377214628696252524697170815289930308270755004206508311902465735559867255182344171052761990915728746624803212396813539626607229476835338436863543076849374029373456141940616284399791437108483524013850179121247361822538179048723445348769081172084935113136322662958050462845393316423770301546037727752934693243709857952050823623594360567257301086985172284473962029783248559675925728691736567302008920552026509480526505072738365981000535320130238747369239934082458377154720268756006267271733791000089526939580881067582381746641106914775692118366895794307676740662606468203322412116902169843388641247653676732049513547697618237737287651758872307051145427830578315078470120421461293399412743617777446385323310397472191255735113078560933467018205572500955634705145913524237461037377348924552830997049802684060325294368186344519609301262091294045620548384262128975744695006272726058865495757603911355205041449705694338054021422423025894233263839562624227060204833000443723443644132661817919884539474148930583935782977524936106698593768534270303473320469874417325493070411227661054362902150261048139210373847812249149525785761977760181040740902931454044698681102111679092845502848390775881128313897376831126420810116759462152172377280656102638315251307113322987937209654513954088309230236065486451584100265023952903768128948251618708513614692854879398804487459059522791332948961330478792572385446787779020899916580734913457634536284182686280688757358594677300915325089678973860405196223948764338411071527975127310168896904409863024898512788914538758731127574227434943419126661525663775749718324867920500487099290517835676245534512981716013603043692790028005208162979221737972300956314211621877529413320544614504508228962411863213362833605195135640685087749556203278444645157554398540941790861226903141005386576465978389356870924364228771093851500125848367524149618506129860382492559606102449378082352314624611100886486419773414148015950468128558375809723311187407980375257030873029730313647779888799570754499114344436312423418304769424253901560745606811836880513171740298781079632463495693971028512033218466290108915874321658121483091300525003121275317223007893009765327962691838341393749185900729048403250473375605441687416316008823330067404574828218742254177996600845139705531766959445445105903692159324317139055265260883138862049117167397216595946913089153554836129889394340191752975587905740406561241609825097734273827693449935031752412101509818109942910078419261897699765133034282706348809339519238622433863493454884326863656502223337515416076107107551827248546125287757772601516762175063138600450976058545712525424843049112576208773008486415257507437895901130561032043037154277088489937190309272134415842520682184993670666408889523307986535370793604771606524916539098927662882117826308544411459241794051481876328635302747898009609643885354100484232470621666195004455970084991838758276983309427193861036021883371154148843148421766221953023464230466146337426489491365452187439966585639790121817361282018814881179205716337797817472927975638211225728989206428882644313562254664158846132532404687536698342437051533426850221695267860738935526736051927609493624245217257537631063064924031987680384777000427733186488410797677673409885125679081106262361417861973947805995707581019920993939676746066001268175000468843436636184191284428588716950785684110704173547189566331201924504274796346938166609825080739458987828052776825621995247886076152141486280641163782685456381266774168727542705853606197533799523647151638712559264333866338083307556410016018383913627872406989439681922775950251895372355742448998256155538471336558626806496653501044540474160889553647504286379979260227515855014095081047390501067775164201065603649228670641510312173637229544904256092535023577657137107779904387537579314343136197792694919454044836167331205311278442501776669342624592434830088390600542290365815378016572485748090652818161096282828170536980170413465112023210677118804949089934662731453349159261617518116125149503462715032160370039872739236905702169193815655799591370615141276397163940355675906088256816775992962144481331214663062004702111084368856679704362180313511676191500554378516895143897122507421562889764979468547043937617106342163505537638409851681927372557993978946494057608674464060113852491542553422479354797219350847669941832797077499483748283418556741093731790527282216369867537363883256284907968857882577553603515465106986792681655555763228723472657280176331901290924953223540808223954184668942445475017169473076062915141204454951293350060478980801704255849194534836427921157083657309071546445268774647428291482399948455704845740859520703307990933433157289056424460206522379417043829821261099931481291611313136281007300033380506585422692395190642669600604053272352095675838746597100858353329592798924748486907691337333753350980111469847344956202167397731954355028145713445274710685814762925318807364000521256751177734110594427675263806619188611254997036276368146682186787946868136274317550737403443097593553186040175784731429796899506638414563887419181081586338487775578490459828676549181622112302271846635461292444092841725449951081749118446778023784775179712585568291631124563899809865162710094219975510713528195693660983584993492718037171000855697210875680446341677510262022282803450807055374591683025366789644488560383539109113787536365704718279225914636129061263771185979584951875452371615773752495473632247659373646599314719636881187249697046944913819869508547431254669749300240571535076956502821743875180242559507684406140679175143089622790973322585611699009569590015314147010398997260373186682190294424897251554012234908987825301462267036451945522012939085371998186585045417354612732318158813712331161670536515939874316756290427525742137865039032731924225299411733234477512834847731797920573679923999359659321518150780729716644921553043314697157804859774147393890199389021900715891490522326092076799293410194392853581605959403940008603306879935356364439110050558864271259337325892369421172584872778202548128698358927969382761594801982387439522735377121187142099540235604441817433514892646760588731112221864863095117393639066270842034662824178112919836550241969600887868462751740929284314844701763654776365579300147246286907952534733550330928324525490188425952104594564880130492372784739145345318326454830174642006514183360644092188704033273990112259353353574577222065793797094119023382512524944920288853585477077826451523401631085623469587004465926704951513782716258622155364926867157109061315099063944016434836797036612358149301593072710041428033680116130960117000859165797059601499027851800594952950946058891653496890317427253454874308085050999447002069290291642749887450630077763985435001701344546164174028329912919397626628441334587529422902390865943475990573835069816527770666338752788265647703760816855635604631174868446219205963778029777213374256381627953836235692989902128928533211957835380293064052477936247643609020040963787339756904379189005498516251358064720173361258364654684051969492958061385654226344183612287517121965585209436790867799503081050429294201106833600297029961000835184421335299402373898156759640391924308104278920256014815512136134472183029486550533731343595467292887622801567505116005454615288618283774340335123592230032938223890603740226539375211034473230539228755936964473385969835758716985679507621507720319479396061946715030535952398966408736446349105014910696506648042265224914043463939444520993434141155199241385542432004874296188480582715894884738043076705931870900433993749376988819297523046081165580086335617827314085897111178131742567125055711294200883009689409969776903071818849202735329460264039139808191298125036648592683922222319626666730794261999453508414349178154279916865958759038541316764221271272320366189782316338436676730661989459343215369376606327573243622457445871663365630451812658719189575804851855080386297121125749038958652348658514078331436008395729695072754414632307805672054270904496500076145764772199574299151480814965429492689220415621422105178660750511803426085260721252448850318474520048869395744307718111789679919938009671597687029043688753129126103606391895924203290668381679992076951427146151944118469941652998177939012537933483062904371986004546872992545759524752423188627905156320851214683876051703255811656531462176370125497563546852279098713401503120469528961037680555190232689475581681483439530468817061398472277570759964249601142546927611779357287856355271604445877886855520067808343105909141091262515251169854192773248636213066154940181130021191356689587455298062341639977185581598645196368270822864766879800659774381280191928994130420051077760463946383437237100694644229959902089945182112114459443793161029154665967727286324738325008130036503959361134432657864903988619836984795389152838430836589827273488096105146745699911098327598147808532811351266437488364734199277530391087200668048345476777225126839704448606308789739532280079669130135960532041223733233575429650437759040162353196914495914275037543554343188303027508543701643603588194669983266173232323349909594860240257576962478136050292498143443825633780300349702940730436289703962131984436745806786333639676009443573410458939654464325905750204239010450706247277312562312279349320381872017646192492014139491902785868571619282643653057363079952457280007840706549356833465856375091048700799006624224596033611612527950755120335805920451980076398608015291056526459110521150775046425554937334570742298972645001818912547755138796282065069494123510062646796249796692269885023348126253003156000209765934660345834088823810891306210965784487557508744380217934422170619560303775872314673804708753476527297514471247349512449935587033076763224696300875279529989183826654125426403434880600054682436146755904346460345602546128216092052355509322602938064323167282098975353375864515098200355942321610432551206367066568591541324610351870775538146569608691173849734664707170436120128352400029171316077375046142614228623234195006516891662346234930785157991023124025014608292767409596573824209981350216733137110792904745553599434881634668093616207825196822458592786666432905556373037984597051932768842223234460139805253522687035068448315687517278337489252970257444663850481354898135721217698128531235908525311559953802174814969058877692524177668431556520517463688859109104079680024494358658104148016328260806644459171646878689822463577339856859346162539607243736289274137890833161252078661244448729171857116908208980530502821412571170687650747233354557927683086546961913495403323588290803248515061759401175641368977285277515018418439605606137574665495159305661309248516965499211940509804888719954771376442929147945862809086086679377415699348549278276024574487431540850955083277112408525476435839397456548382146809652774371247796501763846290675191542196793541729035779149187211843088447766487986095831628117403794742929224701331711141859371014599121036922822042871669524574775646905631171314520471280522870795360872719995734764562109003559476666598541797247664662941482773534367185505110795757341075422970558986027629905457474838801493213066212183536415608850344897218156319088577036611515317445056455029581045958146074850592991964995767690969148437716235885437583629643950534614945691239212340653705437372726132243545959703258823448415788018458230675800314585668538838524197228702600372533518500861222818657378049970271592064902116693484634945083265902684212361874355977059992054703751993377114940245132284126003122446642997569575668072336198279224851471875138926813020396093749382986876305036293961943400097222617884239881218208898317603462704729822542656611702304017218719788410699282892100784854348744437916811394237387542739190620296981442215972428664269308951434008586091352635184244898901826260501066165561451471717756184657129267593797791534388148610004792113951059671180632021397010988645127448633832311940687183466141882282433689646129579230128896027675967684820739196773473986741793698054373634176875621396513348448261122795443259234215208691417869072786959547831979974346438772538371603369896117313325115319511156453984202149795772259294720894680097329882973273260171282134277190317670589966288582813737550998806641171931938824482682141026654649806745097564712748546167837678652100739956628075153293563470813771461590346046802241933409960209446944564916740302658143827064950860768462976318797355077679753491123798463646620587054715114591747620986465314786012271812031003168164659044035119069005506417668491137319544032015801204218824245729553887746557104740673674611166552575922728542359841730651000920458397079244121281003022876735431854611904194580894464801297929503279873101294314528644353694598782075143194495894722458615500957783635061732639244554091722154867720335727405473646013912387355690696446647545817778111380408985240478346329592179352457675990969845398988236369710903817541042144384926052725355524830555244405437766510721351936189419572421804060266609807110550579330206739141153334383156196138904143686147586575037103631481822673009457540601529236078319867600669104775138432077822203513015473028950680756414889048547476058488442094273125965864659719052511156133814308304777011349679985493682275770103822492455237806326669884188731488280396581061341322459647997468093980855905484875342383570040502528615726057992663563942613474450082230531324504136493948472616130508191039159512054369271935321521250822133042257982697228156172594955662532778208150010738470460738472844251763385350839104795096759502351659550532470704466480975398976996454489518996664282626214227564363207683112053430151448315501493092492413827716662534129739276815584501355058755094303775152620854893448890548955985152512484120365442816755927500341798162890285757824557017891074691236152901201280839857073273019327828225785017455933244246412799738992706425348826397430591969825915049110804515587020946969144816597566233694152166196396865210545978514940401570155842872881850983591995998586638378425237342363477608602228389628106428438861690915965874098966372061296988508480566975263195827810059478574809989031191275943980940637924231986783230768317444020606145280556786110943237083736070059507416029167271829158384555418931487371482743306818893487547291963387349720705215175661850722367823742460003104431490819111370197710164495904484321778180442872615555151994725837060084607804200766587990013215035970419750869553451343176640324649921936087459378394514121058547416965636848099008402340760985923468715665798490268344384361136642337517779360414138160119925418652744730448687633984933142294386433730509573838300281552317819877623681494095139172556204574759198650354654122969863551398875118798802510266386262799135430803254996379619564438545676268320772089909841941385898078373493713410125755553111512784370479208057717356394591407770057341278950485210998821544223848517776100464062666106300733616374300845592745637649641674690104254232091781335178422764191962100547031155883792402348530245678556258698134413747066218322934196210318790350548442348784310378961841187572537899365911928759218763556747787297455237206141703149998380396872243641178362935692359163184002935491594122079752404496887032668865677742042633663314797062909096931112913634627293187099874129923642904286279356114163836659567890749297028762338101857466318178078341449979674013744246914680883497979517906255251213256367370336306562709975992057537734165407246625751396339698281345636475610485452926635629176141863947751859671696090039112078421013958116770263333424469445556587079865585527206264153737073737137038472175888008169348092269261917101276566364229801901853366598953758596901563373810394452360052633200605641155133035125881025182819229107193093186688412528727363038078708900817223980956490859613584540069605190635592454935756429693650384773787012419562277267008529302042610858876752426856654217801398556312135426785379705252740470615729846414051957387729262849799332703048807772402241356259509573332651701753767891996630402397658749955075912450496191309135477176075034877304521013803225721651601491824806817289205306730293884901081382199756555300246706949792408007971840021959015933437793843857436265246786125689776217336255556589130500582012024861591417522045998311074696737595055732478106886076918216914921918110978772924120186531010778024904280816115855987271381748017336903731947983674611725182971329535330795175860146639509147364790648176049375471888763673418524232605595277231243531522676176769505374297677598179565286771802507442418578424239993492026325719213049978920409150665602549937565330684760122675925803152068222869359036939260931038920060598001976764728482163511346111089727023607914554483333487832070658573392808643949569135726493047534985283551126180065468028744427565620080447988795596735188652162776628356504596778141388370010065811530590065128378874338508993928977496587643143822402243417539065117391067088993013591251338108831903469292411262920479778737486790005970605389809936963081423040905980540256891076980907973818437527286367806260987655521726211167113059589764403034402500422294064505810974339454925070885251397392293242217126455104624544034621414468221109988302898040624663090425801640672616118671031792344384788013459037350582214225801058203077802750113671689525666551380765768206412400310728672444290808792877737933509314385254229855414664735582851523204112376969021934004257277263603364432643512648792811766827552167655684910036166866491839106529728293561956424404210770769454408013529147188516029465364118125611709518864501358982635030978375930130981552702111522105508463905008406278778076389770873242243187455940399066049802068645076762024508561803596650735819614275227369981758103297958622954138366992883245762320963487776379026068591019800611150433961988614087267956609741375045784866729927000524798440538314188746257865417662372213114843764908558692806602452188642474719504265762929101389554340773153228701825580354212880379379620883481276234111081131493394850907759188426514996005963436616513204138286039129763432430227708767547587815304230654751551022556357281709485182226153255206005306286553295524340323072057209966067629188651680254946421710716758637599153175276293774438117255176117629351055741798721039332419559636382506209524384779613905599601924285781704906038626938021601920211134628248838080561917632963851049596678517154392488070555199149070770839141793161717905867026539991979723581532547519197508106571163034501152539681226168561954164298608594351279798371946014913265584423491149901771236848652714397071586890906352632093470583501141120563331262773579083146379375724982157340204795047829065360665055171452889335235385163091870673734289752139871500899893325645327892103640691193509496601281377646195619839380279072538076381266163554108131074396753239283304478604169354110495728379068962471458791720434625804381766426082239679093820833373925870960990191685156951053831830453797869188295997601709476333407396169700884611946263009186116902190918219471015257365765289266924523153791191625547711198215671577229026545346744534750270803370204773393533447868660345774118941269513473644080913260082554522387210485567065510564166834703276366389057631837068161707091475921094135185228452645110358980208776558970287196838042344040754331154621378930030254002055620727956857594546372768359967818963301370117960918799910438537589528696469722938153130694806503960780457524614746967873722086985113258408536256300009126988021811701327859318596265130364551911681974476927371945249267474686525614451109547845524852684955626698465429775518462514847248559671239960129212141376533742933931877345597943525770441392394165292951245398467293935739814529454357199672276545072220200466324307378159492435357286510411536644966912787615188229783934347506882200751333555176548771212433068426754313189218750256696248822988669387164884206541345079003260589988336593934716554444167718733781841211515203199032485078583639293367813599617257708798604653505853990377210489289647190960900309344999480275643247953736303711797483428449657736358611877673159136827962508606303255658054241120815101056302759632440544242447641240172360779372895675307496430782657815244205643732746471807780246318086696468274851845065161043985724232152958558629196836032156320019737486570751087025077929625515154495669482115140553206383698766287213939654357053195953732246974183570531673826046238587867472335358793919333444741973045266704754521695817917683695404388993275158819434073881101967533873713543264976552609719229448934885381971996809135504098777449871188229377701877708362296595034487767158172395022975619921244071235311620877595121375048486790182017150557268362189279557894325053225411895403081791072567905257905688750266355552771645288426837222446307915762713545126725066573721993246978337081941940035780693000400198288504159295341759865139916597252151778664100676514661979011458504096340572450606446981697412435091305177341432604909263572437337510871923121348861284609742934239167481648494001631127893696087437243928403369232964924460592295324417360136987704471529665094208717664304264295243004834390934377904597562577848456805861164974196715481479780694337207410959766095730986431622714788495928387241379843737389275923130913224170020528590528331421227785317300888763244986506505156921384789388256765577607478112506550543372739319114943939510773769372712618322915875648266813135624064726072609208204115529851282451113077044124552633535910154220403661925019034836987188363586257098165155887090385955527222489212396735615382346127433004204481594622204768096519800909564694395296575436265812803719198072159158779103859527083321191108110930326582611906112056531865438612610069936296501069174854836579499531205844448363861578085381968657981243248571476533987810147571567655768548315359212777814075112399419094086040346913681369074951647171108080447278825946006759316926758419871054371018563498624711533413260916669396619620385528696945079053584521057749630239140250368793627771257117120008563256182468306230574540626082356819904505285217938461278828359865346085362479487171696760419415832346834676360278656960367236865419716417883836285471747938458876117150324912167348092243281387628935316626016729551490526641235392012185830521161266866361541945184399481505975769802834162829541162433758044061308463617310747946263500477562775163151838583662570135541952079195842507646588831368906125797491586496614759042308449222262935698975949905824492509153979976585018615860765003916743123734456098539937067001214479617461758445984048292939363861991407363943072929134335875062840692349227420909124776072028260656379946796107536792552068044049514516155294337681056508336581354860918426940836522971087522025641387891570313457055068720109456505490895669451197796972980127224219325813264102916744800009552992870318415637585077688623353041388701484557395455222492049734454781780493405801869983461625596320339323991556804377104888364284735090280655745051018534848974944181457042842269636693224203839198304603750146514325364708600055968455772064465227536854103679227166987879894446314319907453730271937870264439276229905624259057893989664682357523677497907614810455317132906562922077933275346493144102659847501647801273634725092128581760498825654604394966982090350114704964398849200793425865848346680124050229903776392620668780210844088125046120994946466217808200294452133251763356859954195543310159850614946454279493639550279032828603052068431019975429375052350194577768839653714411253106119546683430087203794111812626227918803197211503087462550637274724098112912067619372343183504478774779979020552064274686817648401262846110786536479274248504374039942751499161160492887769227380324075596813777220520306109164682768113473457156486675427723097405114823765533581236650551652005101822800597472013323451591682243295972975432872223236601566027217679110053529923459004084866615877887935247783056957724157033118727548198686445444256525895148860199318758610888659601765427908431002625512304981006078687296865117449940490189737642353277067901813210389488761095402253459945252865441587660685252367732941470439350166836857352166439269457594378120430490539915427834221189443918839758297216661425463352035809417849054843748406749791725959968089514078889709455083205569396439508638519163025154021005329567939244475791344306436579836798427818129081652216477401997307448838550481135090477886328098903063032873095319608534516140067955120028148381747416486158444301008560901200454117049558629444345793138683889079942384702488753562672086197993934338201229787712218280231037797044194650194212200615124165019009454429059302259137297447719601977201022175379600923282121642289172395892475466603090416893514609629401540541275015078769391338271481599574211357948302168037517062517381219867698727814264691189802654305096296348540966185833745631341760627148318097454661373295840359714544557075909820870980482261091939645755955432798514000638612853592489207147370923053076844871537603126954549686617904065049897174336678259047815276606069028910518865529075446068710227830617464515449914841932837863677707402024668432211167448285644368386642410269256996095202973589036531312632991964072165107271176719253461726598819398142608933830461690082948881120383428981227362330438005336156296835829104426497379985942674810432753504061732577026519040243965946458088263115997925554220987700712359046646718522031812785638446742469681084926902666726871037211228612262940534553942398928269175618494478624743970426566732580520977652117036845821561140689237847889345753603996862887080321144258298555081237601469260758840234722540340855724666719439981239271218479203361392681773418653275300171490755615833172106323065342224339892519940980675971232205894554055897407263089985252469740913544167004585365453979356711978803724635096385910936173429607340925417973221305875065068874063588784509112531238897980050396813632036358982859178822233883767519675408319319591705194587361969573024476471770274046130847287307454549056387266803579503107341068439898759285760605511419025241235393294455415017701395416465606976756599136338635270349103836996249605318747142130217753399712065657012600805088398489482686214008864692874639806376717085876713347955132484101439396266418909260243952322899064450393725545292542503330924758868576210838563998576770944717912358757234078824989221411569697450459015795463892526044122252817066036222028497845088100937113421047602643951426585956411049069242575445708378784213615095928130918948449607354920559073150256013925925708790127458451757206410076491431567018893820673053025391206410860956646486391618842858991279214515607380483205580424519028440514483849524874541471418203158805345965417440365931643525688381823976420663890380059319095122379455066243765323833138308945901605243095428335997821467177892972089142173791575017441655849204213432550730536107504993214560762926860622636527049336797550351693006343881202981720177132860654621512377418612913140862171394266203901691186997833705052719651289703817578635856556206567023343682085754544371656427738629136864443232907277356464046864848396010387825272481233455301616520785951331213133898305549964597761618121475473622483234810516280916192032874466357071040483457393474890368928316587895264727722112332001136810145099683302022882748459682427930203893880523249284189514942521815683854805258260279664509239255088164425466263399264278266590979528542454224507084589255348548249878062112189620860806763482038809747099023099031474890343713694734337605067486682590511576647296437151770537469275351330618295837960617514412005759303742882380447439914975198830422972803900025354465730158046754240274417413524819387344524534956318174841479420953540348032129358181977420175095492415424642880740573349725909885369223422001797242736856686806358691953374013778401683457539543626168039933431562044297335956256518628146649452211734948713631558349209771682825780821895117125960912217474220258654196989806857074592606134589797940140262266592372531290722923186413288317935965200842321223231965917377842292623157181220556400584187792073005693580138638219217637900038956230149085103255942199386865748515510951603351271868333223884738638524539063788017525784199937161368320316528288074439510256167396426401068416586651454206052322078670638515938873501430244857131950921671809440119355589399748417727360241038066019883543642206059775549529530233257652190545206019429891196109328678051464911071642289302527065632414528123449196520355198188850551438874543187268222779818385002244309544916754403393931665686539671443650582879776635220359791977702364927883932359596767475494023966456318328439514692501829516537338551888140164162951723024174638128074603189905850832660001939909772954580919360914672848978939556850646777803032682507425517881628896449408954283391816901064373705936568607197885522473631920026691436092848496942557052440570369180520377737911184414528550065739429919174867236614901963857752602346944847747454977430502020854980069894118781625567761907349508047099962165579361610003353790407451961437392836740372625005422936480757409323963025071172403626729427712631849835481707525367313375860686930419547179598253598916696776446433013773906802965806100586936710187477064397298482052584803746770785128684992155468584353878036726182230539983654814333727122291536510152988502661596700465860575291366883500012779038682089262250613038463624406814889009712331887075692577746217743781146194907200224771346507303628133737123175621208855496990986751360410924910308810551413052383303544527745497816181767201484375947938146236521593372203946282732806090171070230981033995981036940356218511555769008748990401854714983913859054121202212371043175727973816466313632828023148797756040470010014771983664725241132894148327777044771777309400363783597224587789358146294039693728524670755922134771251282490150767270198857177905020148518933350208691986280765194217748096620328953353264835656964646172546440535707499164548374615417978227057012885109207078758873880539620291032679529591255044578008487590174199401651687067737485560576320468074368638660690201342712778919904852651771462617943102439615415580210219997081227563211479252521079991287075494568002168453034745243822286848652924645510188338272110614040258979396104100344478334657269204862120377095508366936474668744330934531073554175526784677420112103730040456617660146746784611794859653648300823938746730306255774041816488852943106205865955489945281731445978455450896490137205948317747508553469060392806699390572128660694254613336420787660738021035493851968866650578118632979771882293124737414031451087287709207296303005535793292770717894616186894622295746819115429344465966140871050920705029389889251671738801893985198326141797123611657326950546619502752635095305995372894768653303405356813324398170058536719314177786102989184434326620670908463676804560278129600922907035772838123442332358989327093575614122293210112354090020630393830314509607435620257301591436152780513668187989370587394299691713406100633354654145817901359055832022993083960472723976011337255860855982486599265878762587001289901289068920514880241277884906277380790160351140389461136966252338775897587127916827832730096761198764186834021440952223256495208201783618883253423950122057123993785545454104295305505623585232798728505669039037161243105841523785449160111569811086174629548352608953297307127866140951137170201077681720786786285756906514009472357345120635245767273594673453011920407111846512968112403443373841006789461581142540330932454286199674182907400847951192974627210091404175940466245578079545446812195931151421325988577365866377790387218113241907783639462325933706548309176555016986396861236716288930359729128658838642154176104489419886499285885405864300940584542984323217900165902329281721554577028769347253962598531215410433293819846214066064929719713925068679566176244058414663558075066923084755218141723121320949837720416568816557168922789795913630728095839408831932904344358167943948038186031316575087512260646171740817759429512915762225157052652099263376815302169090555333729663134012592650644283555988180399756144710985517050801230182258790442139231777202247889533147721794010907346502134069315509737499233704012751945435616613439678576940592983185779910426784423766533592575362314861579902545479790976804206213402115173049387697492460085713129851013797428577118608726594494594100721980079497309846687407219269796842261396864102633049913506164499091893546824882840375086222476619723988992009415289693879959807576857213846090122924365108811181933803301611325836468816771896429102465255582146854754035106524716452092741388099131710754235590684292048111737079611265910508241332160253834282804039013940142018510536625302067337570278390203793592505485021702814451779989316478119898521317145762380557654169700010464055252855119403462871565033627119173123530198041126484339923109132627606660805651743091652440809756815718897818124070591694077522340638184481586211012523286499592319464696046411854861946240455717821419991991360374072963655201355247882404362041834312125401804858825758438485928138854195301988697027657056493993414749872151276489180761978238406251433056403893132657432262503663408870398700577826942771557875789787080613426930065601778068901714503263478424480809468337182791712232791675161301571518895867277042559371590766391628665756631640221675121039665403990215309914421502484716106354230721469319156269475606145151991123628345251411551451253762560572652652234368330113256658322416563157056477318219219757003538807252636101923747107946301496896570397520213887257511659154783315255699894262547476098362864131777774111692994566932914690017420092042787637117302069221332045228342271554749890402481619364649799726558368369218597505444155505468220875065941498734680121319381246767698754937471379490902139396264938856297135238283736443544410849183051238693099048147367303285389614745158914706144976561879345471593597030218892635749396321305163373126087728346703722298607422625238657963760146177345557874489614611401662871179355314259444740433463407175723410944131785306180919406639454188141596373470541037100621139879588398764547202114799759375353989703442421724573475998669832458486247201029867910193612077414863407196012076132084114706474558675483822805252426685268616347694926875517901325595548854053910286119780122876074790116227206292322519083813620669850997352661948043830124535256633862531292768309369352288586194703365495715847990678565263778543242104885990012711776522462741441092339273983988676087001151780415138703129693168637442479037835601631880165433835006931448449259761831997161280886261725848544837740926266366333010912157003516719878715992887774606512041877817774764263990794187340287193285850067459217803091173810646901135911451636245399024275551028539796687173245082255711249926424977962987794087384912398123002614335149004025944556608392921824945239133285822772949119832258444564070923162050643481990267959964577448926507720047655620406047525987702413917282444948064581823725767061895739092259671574828691034873648360947663387345906224728712170308349936014229501347069804883095307679330909807989034555649367689260891294962958890415125477190421383803779922018691341060715712272301423234127402204098268314149213128487140051660877158030799596708872076869085020515931657579186981802420866691196577133749449512838361971295665537998623587724489031816723100424718887462449101884253684706986795673515234131255715260089377473839758292661681693468552980645137696477263724479538515571749438803158880146935716709400976168748655081336706595536422594306460017747483278973089208359981192858546292962618685770415907161416048099066779960819044118917263765043569904512294506251740698236224218039727643824641516612532524013160475158225831454882296016142972818417261659359870309688993083984469368251352553614281736926232450297120337125669230945893940258353563388582544184218797044381734140176821203063817765128823918649903769470479951024163783250409437406205876326295341577860412656310254706662170735799453744687810739884456354037093304793368766241643663344632117329600020049303142388298003852554395007101301933601557067202240862649994580565507918072406107347110590693224968041108245809413185504963715111823579459703674905279528830490142749945396219910369923158854410161786423354902542165724275937039253380433961160892405225693930026451428744314267248231661294813289114113194453685145566902969371481444730550609304375890464924932766311956588598202858068901377482380379002229579577699371213576736483351962501700561923805299970492521518951279048282338308866318698175263563890026523711443069364683070717613599988200704018757907255578834918128399007925026726990405932210906698284249518740891547392945970449940182731679720172513301720567947750309228531791635577811067528285676929611341893194349635834699945771668643752094336875156317092016741609968643204393083327937102697172754788545049199602858260779074922752830731871079455669580877904064246568705423410276533453107070204318445275537660420985094610180840014426713979950019317480769035074387796998706776704787125911244300403684940633302439967853129462124261865569279027771653201508290544855296985929811942853566032278556214481119472588670666646025162840690599096108760001007377373478992926235253621261393814240406621772784634881677320630859394153116489334906763662647802180388966576442308638123092549665728815513144793881991367504771308063619757234737058849781034049561740850401911522118530121910467434295085030696316425212990099760860714546554095527715837422547568428013669899498019590711338846432550208850578055934059314454489451413010262924439220250817658416472177405079584746266599573565774146444268769885430709462949876078285121918498507036660961220167614890357602792023139565810682261275033809886905347817266198905281295694833858493575000560418970850430732749526961143699322584548446925636196639297296573989794907862413291146163772795149890476861812220378174002801500103515525694552014345345243475280959672973782345744240922098637098167058747147806685928099529938721186910943537231165572119509285946908678185293893799221405763750187200439134266001617771556446574119227920631978576389906617665362140585377586092745826518209585433860877558042091111118102685336021334069790933451845168592244588799134019481211526944307077129592298765469915102890492906092729453646375705809901483763837440004807692563665900302504914591696009870552751163523739810613961146271431956929611945823593306814001483958823225388208477612590597054313174178337308089620592043619825024977494933728597689173614191185500215203123352649261322178987811446841808170575010925580052158176548095929495990658238357294392603757042984641188466835543471370040840662171219026920945203222430801260077273755366259155300639246397007574032458149425502327998607278174569257873889426169099774925469514189253071919564678639774602313530070680518157483989369174723000399233462500227791270049434906435563524056030828643239225294703756953290078981409331703538236688017397442804147620591331119684401529539295098349843854088138194706886199355027339129372411518167041463101775955628208337751396650302771022650937911369186435191985743421283617329543065497946372381206617261775062525857523901792762688920891019492181308778625171781557731211383189394288023014965269201651161898055142221879534755784994856788205698747600302922647834506196303661745691302204757058420969982488023896970551993488354682975807721979820686191116921205167479238884406791179509749969600691572751285255947061803962552073793971665388455565584745175424000277156058449488141236075093177770669384406381346856544953715712218260320267691687833415327623225107750905546224073975915127881715374353813338943834700024447253088857267952509105977504050566000042422329698016948679209489829914345720769792990957891989125652516394202814536261798123355654012685920859388116631547122982148789127815193218011135570780793013323154420693843657065870873188236426757619274575937277245284516182483064683051866109704371791085703569007595283862817875297526711655483880157589225286633897355156017487684553191855943877045883585743255291618030047002941371718199049824331280506342885468530448905162787157419292532061063073136080548975174280914460857564761649247788155529955113433936394681434664587265574862491910549236117227174472393685810612880927274478385638336338574722237467851865597460222612890545717611447166780591042004399709312402739589483642973816155023256625765046674042858798993262937222598107869566376103636113876177846261050062305669680705484826862585613045689688097224898807179166426091489563408732675309882387062571990791706983670037175578867887814917978501130643452308311896811375031472107283870490154746928287097246007032888561705675991227011691726250359970167917627685413859118160009381152568056304862239869938950575301361671218288568911405747682371518542397508962465001231337769230546377730067811212036734140771939881499275554981052013284979709817087316134141195245333049207889219259181943110540815847552008642799077677208840455355051489763584779124848487083825017607304350329015841614540661722888201666953495973832421179068411168799179545690493384651522341554238965549893348556673492040551403950046596201985315502091906488686791550270639546502882305487178449404431882660764008256295628377502583373338953896202868594436216762323313504347913143913848372443449409947432102876143140220338300706455065934852322028110335894291695911021580706999197822770030936456329632888152751369553969943402833921720878389996059281289778127000954848704830701235341860154419178549633932398608238979238204482040008495099081395231539092552001880888814002910677302282733071702477561660783016281564021390536229507506574269089064301807387052540943367353061971156637521716938190985045404384348643618335895335176909675620436075830574374447131529096266283772395752012655218207949167431489924927329127189698372244526087397359195320027395353806007894039350492717286686133200485490656316118611012051339814879372579429883410308476253321963982978172500350454614323977671821233564338524893241478053581399696695116005799162637714948607821681791227078266756838104344238897773621750287701182052100551851160347918617470160894467643176886371264259238394952817389578125050816152335264104032580583484362990992158036062869481811828916662014423870942197426381703453356925099276362179672786410918020839523536854661409607948404551865915331674424577985927346084482998909067467312417047522226366071494062789453620975080112631305317028065575823192836304233336706982206856174124165521439076597689577749799939022813869158424434663170592231970648471477703905430045748643166998692023148132291697062322531070586759736915952320135607389953885651059931602638542235008184759323446197961369968623712997120619174449016890356073736595114131730865021496898868896070214408467477944198859595800964318939363912935928561570547158652260272764570014318341809320580062100600254225678969722689002732888151447189585375928922870272546847422248321009699947930459437182541878868333531992912176380067229823900416202803659192443749281688560353186783254046336165477028938464132483030024916411603357072823938813921856084980374199725569937230123350947825946878089355547020746159662586151026154433090955708658275691725604635823692172229144220241937135857655787157891815724899207293684311435237862124384193013045790830356906011304878991571088241847562399443555827353427400861347811728951268995448331685506816337822211728813802580515533181925620513571597489082473607686013838076616604084752612475280493991251139118358350921239307673405886658639836464203534594876655519959540530580528897040966112640393575947094368797494128289157337357380597855189759489364902273817257126995387329343633080245164976220852441293126483630838555018879170608117950065277812661034208956942152796015429418827116194422945226669868625834714955919186451901094476430795522278358023523387286116434873379179960253007073820064513136237850641202167066710492575608608083581977696593674748434774336833478664943492675688472307295678193281755220514611617610085748763685904505275298398248825301163909131059049942901083608515879653707034770013619614603882747928866613548427372278118613236636663323312576955339893415207693221748880721255686496111033631452769821801013452001032585770722995620743387682705027269792851068447312756892105779337797665758219134803350035523409903287453313519077380112166022279647172760459993082068389200648861349060866294928584373404646786181247977849022163050776724618112721592516504940102762736084045807681379606323288377078457042683236519156631788195250607758288688564979982836409101517482171842892736212178670443172455622797237015331607417934157804476301703973356217309748994416151258128303883520593161370511734722092637437155440352740965561915956663050323151816808067340708258916821342177200631829332320819611177631077681212435502830117901797673186836290217574311747850728700092882644721471301199527315199551231277899241389526286248409592441726347790366537232353699630623455335532138698123634546800195246756252852707930243640029467087132644366490996595141446394245277592869283896827094192160980828170889939590668529241140740286632390201053799239200384110141645245417267623470459605613249831491169283018219801938394931733621324029083915010757391347437707038601133000441060880349168621878237212084183343794575442738400507310789322545913964985541469457573943340687984154290846299732628667614936562918022330989400127288375220495360373095629329060656822002391838702880185868460938104514296103997289004232179910522669070381927649244950095938584956020336242089939524392064185613253283543001945702775740742832611103450482484969497147802557167257860720749224541622584859455644557922634519062389112166614750702896822685961967311768461012733124264735847303193329255472060972740492705243416258488942507075352448620820459823336434070791844782067280885939686240448710051600257906047273581132009942920053447161695595271080064757681938749257585206709931179083267554184808385157377630819608351139008146122583787076899432814846543104293664432349394449746458888776073508821304084914300257302738581283744642821097930407681204164450380475642854896049030050964723620361423020260637824632441802668090605395202447409817847509145444180507503369325009287074466762658618643193404748093227233355196112372241101705003470651264650296216685090706296183572478353551614329969277474822069474967176334652362100052390735031646407199685536481985489350105097147814512880326917155516907287104256646622513066928608760523415953769650949106577372686450195054273264935218695520166390385793175240036265146093681123851670127618104771532373239018012740381969929811477814835224749179555634189860047613873969470522862614507496058831338569663234052902586604854553627914052274787408575449982886671978409783284462186049828653261619119144931989706776607614635896903502189978153137356418953380510098455136699670411611464788459900243931909561763658570167957578700933158735912158541078742909164406596693100371617955916808830716808044623190660927762401970685127170228413732872931472355368673456350674956562895428792473320436644837752540148451659656295760185168651426368903357161990043086925316337701581231783887548360272593072209047250985417481136800455891422261343892557699456598813106866095183585219195259412907998907893094505867475379735678346139048092941607678682810602053332921667942405220233096520107463436038911203261510239030627219237655228457963935040160172059540817682885524888635145628769422762168724510415037634504053776736539750394120484867726816661499288503819629427171726693321664802917101301137388351240038567245011599618794477751346408085650548666071422057689639423431674027136694851996246143418180217702312619332878972808997216945300987763027135190494750010083702625704690599162024838019445575132206254472280111482639143032690602119694844369704302557441477062483166103923836414277906724317134567680888106300713207905785069583152013719463688501860190926389914091563111754316155284589017020057069127117781505280416732326190131071936378136491746675617593158264788895891389672515496430724156538872842394660905965086793474788277583001357399428219989293694036417501825797344717030948697685352703471845687116811306005951506046277215244510485725246512941846156165957387291793267418609038330720993038874942308629776782865933994197877566615230870768692173505944341498620877543014363518083966715655437174425338798038074592527801234223856768054852643687834871233114613189400019284893301487864184012502680545522953804479069701938684247004577615144003611316906235004338773973594373941413760635811039105737666772120941622848050500734195397257266065963542596098055358731915161833890622802083386940308163469266721740977813109623995821082656607132792107809490983696315554093925199625336053546131284163823501722081961071995597347467616885491714521200539131173586481550087861609697509315059232253183343199576062956356996582898263155674294666388296119291701871521381587994536370575998811991085445300397895171389091577809218287890641457008062422251459025374861207793796977135517733164679991677552325011190767910540000699231305915352058159399126766635136352857097717169746312193319405433582644669913435200582998347682865516428684569671981519839040966050767213476517594656911740588106455715384778215568556591229481207309707777161110509871311683951432136167883174517874971536668101354866148808846429466719345421689485788833166076537087985983906790563461985184376737098785032156799727943232220713152328911035296736624262411720972823461521071361539088400904388796643583781600368747912711570180278038517263962600261077799083970580125653628909250569533022158447111207028459172854378756389529443149626652453466235627978509047782084964963799909321012134766169255284106029277207190627525358280113828092401947656515643594730248156584474469848463412307804280511122858491160196977821723564405361491905753681201112200196799183040413036370855190041246299080407994015366837665293931605169348049547670989508846301633600316277670325795463785128981991928946618021633367936605567933379501474005348224827620504645694433351447519505662290664152378159687742573212923025085259028083327868487211226567327171435294987669945987257925241376667139338601569171545698683778866922747593403193409778004334548224350217489434403098082195031730323204514414950307535923688383649119392629781509120669252307834643718933728174185327073042191413468300908304883394939747610210539636666970516491296143177571964243861221966133947722408001824559219338917130079886346126874788734848375738868765053859889826790883955736778882223943378932609513026820325370978151075583030909276694848913803607955084217218673689103418869057508268604898090729514715694906104671143309932070599123919572166839183351376320726291893291520618628773484331016887646227515147080938674423682404079694313472918294942525219718797644753166897260230388884496383103341831950311972609761806286487283417085934760459412653532560523260093888920921262917512999721910649599672661160283573234256707912668061196108394958441683706958408458427577894872726246169899398852279126953179774539720416610973811419190445720576836577342542689180033322801616560298290179895745845529773213434819762689111917211934193439983864129534612990227831183595284859448158584172739694937999332759694972214420182143908008457276099189244106965050677495904130473464225110700665331063333582273123366391094107727256168006570954137461139879477031278548930169940006785367598301425389924657548565193893734386410961860035105396979733350322509172709929810193222039352227100118292394239856590783003995332971199916189272934809044096664179098457277976271322996001143601050944954760739600421142402608839407044927314084385657781830173462346763720637854375405629222122311469718127836291317500281377468307262059323498728308902497789131639285646941871906022801695096921204970920861071167100244831686548617256055477263094479869573400751973400374383101122877067234978192615998310394192858077191053178761607016104117109364938620487932771251343018517134020463672439218953187835725828879741111129592018602385074653394488571916139280848761516308439644391865215871962388948822556322855100888452391754530216433741757133504738744663269975711526423053334088909218136577102091668483751254635531338201054137215391377758913149670596228830394197265987276119567863732438221990628466491901679856585140197599811060894569073372747455437065253449327951352861485566138108286069573628178032537460983523900992785469593840216791222488686217051652033372585916834497291179752942258634194305016978421322749248029222601034166929324014349851132562470287612373720770124896908044137501348824078917390452698559226939615628471958468011993798254879609744639103653557560227070276815054553818924319826369255237209907453487203233514188279973456706799501011294986209531505451927143501045244259529530520539632889070209848376749728429057764351021873163663518890488170069068817022645740562080467988732809467932470535703121430164936705946368618034579792600713303612819527204305379608513839913351018631732185055062270039486660005135896556067610630417735945756730688368523058255804534604584791710346786649708446187022508818207969616197036462709140467730800473623254148908224047234946911917932259032822574472894674113938889442261129607852374181842311941019227291439124904290815654593958049212064318046794261518975814793931419505076839132375566327553459505571636501909334320273956347706936456963908592455489306189717886500137921454954025240399952091381830378558835308912615861515836544664758623816243378329368966753707395519961803302958165874218202289717952482802851314679192264699975236211387292993255064933760548537679364503622284736695748659643434384563140123328327782889751137076933545922731980429510905922988765909648246428732826592858622363227482553313561700725233246992643318319296258626406691436443677868672486143560484176337901186735428864765374401540049885284189040770604148247171307710215466918161159773537232102293913468675987009387215134721026174157805104128844953516502154762822921085002685978857870636975943570108923037066223881314988749461624914690193724955935178834627228657340168439925959608984399802472731393413340350072377253265418550119716322881839069804067193231725951446989440438686574671469441058650723674324446915547106513173641957964622841970137766022384632074023666788373864899084792591892205508599300310275571029543371519615007481838949787925082828641989461031990442011071408615628048637765622756150117148607650132212634742319669577796023128815156601525754375889438599359015940073200700778521586643487748684896354595452097778320915181937545133973701947951933165072583658603147122697258835375170783632184377482260287166200910348684623495925094968508734385619420816225057706098104185697745556553694266365903346168461353601314138345855661880586212363313649321637724152925755682318486780869449966937403667755307695435759963671743707896885771787718252455208988013769779159508982871487540540687049248267518947826437695449202699885163572035165293818275184192637159455098950557179199217431030797286783310384101271922243851029275798970148430864192418406044371030419070032998973665729401631868003083048429993789833742525112079332866391830750874342900789380768760682550876138052249564932871001550760312678214399597170633423511996744406348474067287834718863197369238348499267449611129752484130255351369315931640297509358898436283034803122915399016372869027133423783592023696401804890632086448741092689997080554399729854776547964540826045605002722523543622384933106342060053889631227954219281964633775696993548659560567421736781713071258236473517088863161539468369113226520725165876864040448220698558710516181692708662554529323276274294102510574464349960145002827826385219547418339535796021517778165219967332046518589452090552943276233384784493320823676130017007632302746353697959980467267409714562838835593833064979230150475567129206495143493583938371675208456629036037937820674843351344856496511202372016875340534570290873870604457786461745692898472789069284303406010338606362732771910333023238354402477399890389978563756756382005747741319079645893166154808755579805260448386395751707705862559078318461552819900157039710798327322335644921719845851067984631036414120386771590511993170880270157788569434837163386570932305087707266343497564757622791019358729268532022655861551857051056218709134161783726468359644166827176005313703892962990403620749744156368931628729440447148532791489180372205328172436991397843055594445794362174873406971838590195594411764568600438979086971013422497644232560194545046989795257062288206768985284365465154936025145911706773936999556799437423505011590321573107094496110785865948793575858216298104742728195499266346229796360462429085374585065369289298398867563211761337509258053672370110142823475565434595514352018735557375639901078382753027105241798015822998779463615935427854449414377418566429261113459701821896173143210908425626846661775846026657669503112386474237122005782303929801247091717384247326179956882404786031550769004061874153668182753625391199948398159781234313668436988469230610236361922923071648550167880180631847003178187178226270095689076670951643642736813097656855303873818808370864570669165845051616979568293294411762319530658752145564797622679439533185427467985104199914440876774009053624353745139536538316754127149222402635922057280238898246890808188267761779284360731860226074071858477186229139295628460381246214899279425561680244081398127355748768898743394532706468959350434675392570991036794660841236643833728529491146452147468115440155624873514434564384313689426472013932983666804303478562432617833700728391803998832497088054131588412209634875288826004920013422544874461198681682125083933535369344921735751202635109395494016510971138118053936211910378157895990683127926482672806849432041850819640526152500108226020969712151995264754520009860914563554985307328709876952170167734869718642998894673709027870189029844588453716240844840486122235014905238997802401728071903979401897221122787294952162847056550262489726034716457273801681630475384691052814502412882647347050782276474870657876454026527284714825481025407095780829743635953511434190157856722258908519002157916642941432836609479260874438797479443744101430304152251694391981437733153897730686944219281953829575218432192844977971145234347283501689535100292208479997939799934858270414571064493260223299140225859444452440117803105641029031421368693072548671166486951024796124321104463429047486179196121551609799263163477211639287143064749189309334771273218766009471647882838939128923883284469114590555106292130049842426266150708586141792935733221874974298085495309153927925904060166583848657736486693189976808048815209160553180066553610450050752537378455692559847717061597931458351746652586216285377213643449912802279692940425860057123007881841516596687002800232871789882912185665964033685932749039661441888401935957153924138849805301205519657742505208039123622187348677187306455523029435643971136584201500873114320164537303522055185873036539898970029569169676457872114262261455467256632072958093637793124689755255688710565071425170130601997434810472367833791450827761007344537955196544991489555655136492882234226149483050269720747758037938065026966191973754679431558229809602281002270391381413116517665661557717344108441608549421167586459035975140974836744338173976522090119247676451756124693100931926669268047541750654043441280073249212927775351952143755420819309450983482861527694308795474360860779730618924721634397102310993347793193508510074356088140636801519508886067437842770337144690186081371327590548318131630318327531047616073244530218878324296952244206745678765759088833388259256336669684484546024300201566811906444825653049139948726821701235598334240217002306479345755383089875472773252535914631327108217395040324601811844761510152478844455640672195406241869429613853290563624435332707006200657788576172025121530572135953011107591438745415763619879137014647097797044660168894547591804390907065821782899093221031504606457139579554427581701405400340152315541181361775394548792033020131532149390283888740186073767163704012983301402843191584554816042615503673451021376978797534968766073118348300482523383779780844717370892316927124282205069108089300270093321350766469189826194562347832009158858543203622056508319589350904842712601118449456600846439389490128004237626193484338839272426190563244920204621943913999040530175062166222023108867861138412824418354016821684225131302599523807511780602407035717153716228910230908669278471198741345670714142582707147043222564606470911418975518831612073337364849745743261713225507998380110187023990731443688845780648261247849374427916271557564423513326900150102007167156923881582583007611834436218763862895355921039519907640089139972150516082137978323671116350653070238290723961675586480841085862129038729407479360125333904583528804559124041689309705719402343036301163908250415546020784436690576240039553636053574757486311896361450611707382464778328142223468613421410835093480400819707091618157152158400895341045986747476632565989454818840528843039002756788129178502828935886969649951911233631877522557272621063816475795411525465781816242434540584169285483866333217153051993382105027221381333054904183099857563231750200353204028836173527675993661729465169850304101658189232129924860114573665833951189375828796521341508518087872303707683140489204410558036107866993583330256962872987103820580971721989452153477339214964396426415008148484132484841644565886273143433960436598669575182062582115509923208177636752445753660024434737511776931115647811256908676510958418489636629310176475971483188329279210726003245273386874994614674461404388238395848106856844059312759807393193685511811610372630030210143775770728469292366230768628982274126031062470293712175675341948637002021771232123106281016654486147913375949811163022560410787668482241772795541783152349616667610570501403380171713378950256400447973784701231822426994853691192235993484403977806957137929249895056196344435211859021425549241895579872391530373148832027254517012756688459439959545462979022871176475909006309538802145242292688623608334623301800707617227121844111183072340870568188096252858499725651422317749149255633725107999794275676725144473766766815196384106250655948171105438583015311343428952082783299923585728910530429567387427748557082478298987085697905873076741740163841532581299157771574017500737171119389225067078321039666414161489808019196762978546931998372715020991084349215174177589154839725571562936509052300548394559068515439740108365112991808902991528206860735258803108937392324240814843405765647230220136741411047759972642070433220171262893179089721107814391779879749849216032663200117405320773899775707948823166395313279146110553619516227280879535904437526420164658762308507049964037613671074931235476691589597980802790064643664455078687663004726923809299498468861490693586714500925516286305451133857437515737470087360193555617208608996518048265534000003482107074626604087469076437106147383254179954602224464637959368347824086200712562946426678217363561316023049939271042510032768887271994068773880198600663031273438843498022082546372726284548574785142094834459331903215796348900802324660805201424333528477326474073242077268422801985880013939057959724700462912236677976968120839445203821888178128974760593102663961815891079017491074030356832427955417000301458783424493081083632357411271521345386886554840231884048048232047150562944615118978639511837368032893265092608410590672908581340246187175113474545631760140719025695472973063472306404651760198262917258239143690940669729120824177527657107788290708495595658761473606436364007431607181171592356895207696799965362452891841613616391399744352185341863870639494600290585738832373677480844039848188788352748774258637409780880241006215267218521349802503235497543946118856942358158123683529376157640756360441227376720219897016952174111114007638487951777276378330400693326999990364648074762102068572620980899791204062373567502034814345744727099278424397354052974243012671475108691202272025008156857567648716523107198373452726064653247395760184622533178982965224082749287735539073537770030712890243257181792777637803283006764019764644528977519333425676122505915927670862842560408601831183773328302940548578637577806601149017321238049522629464653815044586176138704818505918321461705578655035910973020969534960592888124904742930694250437007693678443590489094492534228618021881368844167253476845904655779421474120250640818934209343860197670046450892420076874428230041030905832799196018340982014446892715014755802637411320568895056017926173529848534049082845687068299585421404569491424259310112194484229132569983481137827731422690175189110389829358510797289097915435690528343484490692781559093761384162411811458051098947433050180053871262166487655139074800317437861981290865124679317936997011395357320335131885288660698087136421901668821376952306756998049878334612709911757608578159959158099926568302355809764856985890569672417026443038223187494692938567692800754091356080070585501605207188806107785647629295738011781202062044801652126328040338021359659071370789346437603801907552126671121443575837434404238933275427898657687834811580703206273101398664402639194243010475913159141851261007277662272788866419218515042518448157301259021327585288723282445266511683014752745021348700303429569484733704897768361027021704512952754075682106973622979137803433984051309010416376144426445260987919107790610221979323368287651539788002865070906766735608187181817954077331972522814437071120255374625860003858850850288376356073336315173759584485316022764508338590693501622189746993256121152233245309954797736762766066638264713113823062273248217451850092603241089067894189572724859382760864067739613533282006757259615074056871190614566944287996286116162009891391695702487271395494946356512333599149007364536242194097423617675081681230269256013498354214674175784763639821982631424492052887635198085586595956818722305353812023139829597556199949973979806710041891572800330469251865016014604462500458035345944174205765208309052687728613674091420594635505759792889793679584732241503607371483000392767854135926366947518871738406120072163392039010199478097792776373988712860508014491504117937208935152719649440764664847243266921661199635365607583294649912714630857564419353372225239217252866167710108744544177238918912954628019530935222785060819797417623392875023284107085978010517495303147551639887258517383616158641261001632728296009895903562003074557431159616272628899837787729102738648104654180896088417525723883703778088245735912426365365886401667910280091573244283675609569010702886559358456352384075965879901243860968889055194919280736242280017612421254860823894328170667336094994599235609851626558383514127632543169988148798717723601369084690210464875797152924197471229587887344801387441480812944784066736497940836349467009646819975222186577872038484990376805796135129319112064684741541119384240953776729411281940497382360406762553656715671579580075084739854331974819964321739690171335583431544798438528934498097174731968207736146294348240218108690962656365719465177495254062995006771184714987163245184633648024095281300519924763570913505684513282029027091305591146240086133352988294500695706530888859683898411597366414349985382481546488065676540893499174139273618852549579863254936693238178668186024465920578899852399682306756863336146195995408679056080911440286676276234857901029630389875487806599314887355359632082874172920172679546963834320470995408292570320101685383013248257946287607240724351348300010142815100842722987713108697031803601651186061244948513166405539471787048259736597812361350499556564901272830170740160121057108432631407415313214624954976385037951409894279516844336153315487731535795105191273893920183554150112055974315223443090644071496797295483322003360004683011761308022152232050978270626613456325517616688050421075994009470918379863284142500125279019481261046283789866452544015493488724109537439407380315636293095821830530504175166286905645996472459696539690328511639552901204900478810840884524671608594858127897993059711938644373242594799753396482702425857650285375013135739961550419304445179417629656995171713069818845061830738695839974149290438346284111974001341886653880793089739609788689045174187878462014070095155107837591621025845060403171260462802722694627907745898963919958980337057288339663315852419244864520638644408666822061476116918177352102157869342561040981667266914521125134989336547626491063947736031642612488697358782659073227874085447305454216849725162321882116871328431364724376562105518965797651829284855865042487499519198126737980860339396532243298770828726274240842818171365811206394649819077179452265051792680055169680404641838236094108591731569509608092062851766681190019014622743533201354691833606696543857502530526440098918059783440260632937534791936678579213064526344949803894463304995027163240551057058578701534109318170627554614561800283071636557127745508975621177130001024418178904817715587534595070798453041869378133938869214935242838765816394962545469707290182043845113167205809577025021752856090902233387046473962225531344628234283273072139734872884322790596185254368165167334875538840947902761865528259196352429719778822769208783212056682797882161559489031140821223687284758293090404118537513811338836800306685472085453603705750835748838573360256662614601965200074566916842261616541997986423455987162259320555363810631575556731824733543323402981127258959522131798556173443487863776364081936035495549065809923120789608755343077137807714389269985110318095902704501536935200184965206945763711678991762004863385127316819870192676687697949838588065705330594262358326999408555992618966602176221296896041559896647214145024148343186286581022219255720291639166707396735614282824444969588196241450056111025937673549059860529117585799082360739009584289211035648533165149585437426056635300870425166253106616446033940879024191395464600692002828021902108133434218428636281851774400660809081367368823042706237876384574083851751457932304929853469511459427239172400147419846604804405941761236281670130885968926436401627123200062477220280832030789547629695726237457847278099841273589599400367925630392319414804395612836738804001260383526532456252665920904163034351524330422358390772204292823647792102635162087032288179146893953555201607450083529122113088133896098574699885193131153671789801893988312099072627309957483688232216842749188221945760254422752259620365444767463447251204310369508682096763811931966192161305105646910132663223905571390143948702621852471090556050449056289656429093736833604479219652493683620010866641481108453268421886142907835439280142488800669086576485944678030569328182617117585598257566975360131740750348060923551060788465310695228414607312464564164697023458823854548061234748527183198882658752619939336198375213799648721685032351252437270771880390926581254354106150685039535031716524460473845753654096031854058171823042332537111373375144428086726544263884276623208758257872689525833883699934414719295205874956783134193464657373770297377311991751498362943300560184305914006379826391802742154243756152334426639504173052529323163550546488275996564152350314663749622024812805611550213654299327216378322790536137284846875072149197048872994334166615770932847768988617424126650476306357016137942579513233974959315471920171120383958334518974797672745844728427844326824593025116905763168934534434573551098152061051491594317392996993507890336365042625366969673240310593893078683356183901479824611840965420282873186464805778083852069724322719424954550279762959541101716565285021532154124738845362287430906811523458539611053900030493655270685398235415857486071283262238293292840795465698540904059661182653954171702969885239773329086441401894408330588665366333884962321318693570247107268559536889623770432213466305304581584366083975327081378349285777664953646171285919706413866171685225396071405343990643246330246648367578458866592848965177580020699795811626464109051846688189264345817133671775859228643157745710005898043338911067368834677166053394176909017439816544387994993403230926416555050462682361299986382702191392834328432423558028632917294464007459868985866024876984687831206940535280389401220143615591095259428010305618484088371468777249555996453765550456499777799932124457513566606569674273728190712436148339451541020362285468214925930757006836464808903180389484517432984450596887294022401321356814676571437745851417890792582464693110020839342337848851274543560503863380115486986022252483522117370066897116423316190473102023477804878550196864986806941384983690254155063465891236335525001093313583775039898840747787740665497878867915579534652587656092933603698644050689543379610887102333314886893233753382429441384261010853468048438766362170407668525489483527171700673514617608771671970269013930327718001219021974534046811639910917211011608911494555556835404199187200981885906615450092000716280910836148598623003652656674575348618308048670840540757322634258160224020525857520078993782998282386146948476739315456750723193831455818529325991902524813128603881464700844491326367360578421424588248143965714487033927547216388687809096741229676743188920180251742823094766693361627668802373948603749166185714572607709887558145595165154977748965726684898454978744699314466568796850170073527811446551719293550351667072728585912644617762875062580878556592913252028976177565405808086930372398166899228131552688026736275642924681073184983120568847397884895892205072487224791808219238053715841191533574514077913828955857388521939547998073614229174784144132606040638725031433427634461439605290745991521689761061391960832410238699628951981884418652159210709698452774069495406218513925464115973497079002735809555334462237739445786640296472249091452372124844017896701265207462434412193234391463058511379294588025805025128725033041441870666918156960117349543314009865792671629205784502274226220663074323449071554524376929009169345743602804274456204368859811475920499498277858891472294312531952311865758781576422378423171069021300094058074430465568220917979335746904105477366474633016274224617180937006321574601614760868934623038844288684102429206901469436217486806866851321310378477786701419280417299692903113502661362342479297176877974444851569581396599059550891838068145188566574121557355994746413142660693628245286221013218541617699418211059046765489184218803133736010078012086044517734313800889604913986219688420209582759407728467410521913369443961677661471736569434690326087859426492186848783797702076456132046176766311190804541945448332918618054546373129182405710286649953782651215866211399177011129225969872291052722272473798861137076639452727344089305942572034454888284105934866368190207409181100028831018125601078078704632107506422752204590882219687250511590947573031716173733738757694908466361031523334185111414085622821019915949043797847930210918401670305950646531706585146852754627012351103696851777339268410881468384578497858531151359284752655767074490616810250293869246756796533152589111647207623979133142455844364075413616857991241102717619849687877954822477881859206187668235493694302359187716310933583928762546460710564191992444708312136105843187356266249285321095295498423033460848971805701607674979027176937273460290219618555398408633396998919442905797233425659060231014924675251030755420959512599780638238167112279728043764634465947532069771535482812572015199357319237563392539068937264040063546909899177004058259621599772853787127698801424159145848457062957132672515913424625133346325177826063725495516845337530614782183212079038961499171666714533223042593447515207512707644627198692177782405979084745009699545925168323455155193201938174781038733007604860564863310731443159257995301812478509214002156012809597611740971004458058448598743084279436226834264192767148875899901150311848428390951093887662821312611167036001048139506349569270932354232568298198027771527386041372077105908780774730314201009065519777098206789714264469077038244488916839612264637993855569151664298845242907643230909754149304823567126570452785061492783909122993209283362656648431805524374301056375743499757012584722362424260236796177339130527122606303667712529462587550039933218993519271763690009659885686062293880885801602682453783633634256871946609026092351442451208653148953721743209214464155652030502900194974721212474960750372015756792232348775517008300955622315147911839955069979743810671531429885776343279357893483947588878055547947920091047518130192861043766431409970377567145885814437804603288964139764282728343352265166944547271104072954844044756959475904513083497561134698222171409341085958597794610590432924034272136927414369420536790017242125645779122695991832518215887821277765589006620056268758810920012462563286595140133158305449201581137896819351794514691262890016717010043347988355235256415596839389983042909010857776662925091446407928368304594342656179612052942942477576527289646999639396772873527869285036826050325042016791244178140119138345123630501057824752612385095476201951711770646616554362781475795304831639080513809145281275112512780730995302740753480770808370121737620417430985727975661888777010374635185254809043577359630655973293369386668167251627635821584432075423476513871873121764614725311027062269324595329112559380939963516696417670722220501965377126637457775797387686189007647274730496439265912490927557508866197648571480152260871448941789314714208726941002650498919249085727078700328985342188588077735607152945006418873223984712889553240103093454088593191227852126424300750662448287422840134641102281522940421352682744150176803191080276772874252919071051882305911136549398024783948208728269602990323413005305577703388223680975849229082326040410021000673074877999059861346024608443182682896192408727042692105787174370264178740812343206948451604539623957027872494945240396475722560988483705049777316033974877245405376712529951961870929650875671744007484600841405026705058403802343519861149743399188587278638423533384945772876438620842593078432367321335821221870359919062225289379685570706660345770994223022601017578145992432972026370290141839064914056046237336501519785512369277082706611956647246780524323044340698572115360057403618263261070489903116973626863552798493109129353350724084764219757991681586019520104662753157667865700150211432614309686907700321755373718427000525736955792244179737794710226133517992260672992754886402459523982874403714889231835007461054105354288864141206747011837236119312038427066632600580864211368501770338293478861332346447004898433180355201273531068293638597070854366592153804783710013087847231461052134380531177762223257258951813470913334233239801527515321464067243313150390436216436120899799043997997011626324311592799246968715810896505615013642963193901689589368992713934819522329763471557302995388069578493971166910051990514925450295300098531712182617753159007816202543451226294732665570627813737345361263332375911524342588662002102605208406107389744615770127046353812381038503369395809607072257779833070779501034487081816112564489153475768283637774963196122523939473588539237701290142679721340817934588931952102708637351409982558656038502142206759613559263757560491120458900355076542385948598530172911528557622349484330659582232524339268885709704965251223714663632822608556315162892831596122892537104969145577559223708995454093916624934174553347402891266933778922582532273085758282782972883622870284928089679568680173609474747288826629112353673758111994233551165626910665774161954291888005247058287858895986362548631331946129662489921218342732096378888068497346051127666425760619191081014061187150589124841542323444449862154192139580231129566300296150962724025155161686534259203935750580682784160126485783829744621699137380998601090019349593588503198558538620107548648954853147171065196700169204286841941518059820542616285869177130800048321422682233674033183698796158461190146112148284498439315847244084470637479134895877976409122113781186715579954128695785468075405459423476038045580002230605066272454944852407789194497962425318155863336711016078825357987686774029602593754954247388048324003010561966742384503031934118775403087347146773173773269250897613138461816263824896962254197444735104721410330768035015143206145619051560162507698486289787687770301702377004487641664437109871023913220152792974498691966415971372418627200945066409943849184764762370240067261374131658134890711996149589333850014328823287366874755428537883451848080995127280084371466294699166395863997553200362062482712144671427661475938233852422021690316464981296408186238851972140060604671243705355342501179049909275766455624677217384897611535668548022267575848535813512291469068067685112136980138473688681888961604787365919709655185884161026530932286324564844105462422884591936655476544533587231863146973681396469185449583556914709931270184923930042820749732956041002947779547555203206087687589408809305469142202036427969148742111762554524001647028663729337080033803637194897474682206517138099616859071392559602477982967550670698238232300932465153680387218475135434403332918099178173026310141822798979967469701635271127441634460771501931574226169631867877433098649019807092668067475168795538833545129869660597347255691861147694059964826117486489127477658840692096706449936873043761049334953968925650280656418350456231467632590100423809489800474481066298852241445751515105321594810119931168191865265935829935531802104949423398636138566267553042624583021575346665383595458867409427134788206114843786313816058199723265614438565426049913749767734700029425234412252227603162179460328647439342448773148300722911875631032439550565134103347187338924034525762027456599431916592797719803843865482696206556584912468749006081709850396740759415370070245699081327340290656727483704734870822446175596017544102907009522420175529594631707150430453160716741571288344788300203148374663852342972270696185000268406166063346119650540664039535977059113620386929922367879348538140996322725018552732879812990957815442854441803122312478639842005922668843097699318976230636124702508786564753681842440640961980915698707431648257497395279066399030268514370133903606525110327385239738732841708969246661598954502718616577721413248359142854155238048200679625084443637289599721251430656814854576480205045899763168708167865327473922922360185960939245982512114933834435660669311317662509950058212121851325246711244014838403661604827791400011737784236418307121826275973255357624154682271826123067294874164866131653486609431149036362283366565069102382355163661157126356708514342669574819519687377115203312423302658670357146175972769178801328814844133683434647626482663850577251178423716167025524802092769620357160688220127831878871176598814811490722663652338261452726086614417188547060344213896635694993031295713462583063929809750458801904840881274527511530646016988146463643347176342755673901258151581956796945306715904330168502506617759343138563041819754602294264141606420773016064791543982022542244103936629970464670693607888864709606292623455683117891636735237643135843528811420918519185687027064669888163981021844418391435510544589010477452652492017405326796590320669915799722497783275213843634709663780823308371181133676259978379204527778039674002052340517318672929507583297939531439739670873881973784041663123973404515381588583699424577453716273912001102136408670223612729185077074872152889478581458012383191294550569271511887242686141916173849556879933648390284887676165215830246036972146769929951439046515937350469675723117005106686590747294034679067604342324279312713510491213216952682273200452688725480776018907119697080737913439116074504478600089910238831028666043354379872867047103161034859619731910392781544927567741913405511060360848423639342604435323321103790368304639503997454024535816493743716785398337437518472446975822094978920064994141826750883931993853217759781862380272455657126542084551467450832627359755650659764821476253904163272188196879435930097847633034924610157525476727877522035843300560165040007924911372217425981618579635934420582928641928785270628156672294697756906723536995383729174372163954105121010412814401416590856838124200802186355398985455862745537794851909732494754213640904438211268973962792872691333394498815833931407632705406217053453255981060062904385884162708381978526764472622933717268634399287360005630278473672182571668160979430344405186971736256705161556752719635152514597600875232627437422815443527169616504659077173408426690736051281436197674972653586793339262168854635023493783925078934574538575776098735194078450293634183086378115294410986032309718461188607476072462571883555280276080031373283321778682826190363327715586380337329164902185642922526393600391325371964961711617048840942864726196327408528738956445416414824354918813735246698715041599601545559282221932828381505337044939454252684960670934018536738260490879804090511685653265008073763163248788435718918605228733103955512293545727021200103044611597686063707110113843300845940972935329877582661606583641683690685453721360076596006392942100897584818646602322122745317711162059441453061023911742731055136375845595303169155913005580709151672121184674213789666862542508930938311843908773716357477917491618333216838835749396057213050405086822465167228534799505282599092699191420429460465510882350739454719548115049258048732127475512888592243535535890522357502110075218271138530293177006103227737845252157666189690479776829149087988774568598533340352413846145194571426315429147398155688358039629776258677845661982300085832263667678757081944737917879959889656933068641927858758172981297349730649411043664029655545540867773971905666460273416557463902894597889108122742528191584036789297742159079437593190387943814765017314877168186569463557335228975558182209351811301329583405057574226327393397436851194517865448447165170993585802471850510535906644262121910382389130784661343763744944101122236975229885466985456254050444739721736007790187983127121844396661773460707461682470221561535327013946547889366130723277084651297047360240111651725485098485245693314150503241058567194007633149545806439538522731183715722598470138556220439694523586457502106711912167935949833634291475018838781310712487616188416525798239682391416264462279073004766338627556456381340995200976529924867709679981212993064092283691964030567261247522586909923571723403729463537751520237672968470631561512973291666532881117098111070922716986962062436587822034997611167094661043805936326897115366020487701472131894917869163976926843363811612364944400961108597776060427522591609139295818311405594877471702888618363339385568474342429148840196303211843380749856550475746160401847450578033016587948955424773777740731678417224810184198541344786346935372153671235756997930854564897106742156054642266260322780199593790330550317667108985332859943336670004751114749225109285090889303611923981875800873485513776477772922880802687874777541355795507903632706485365846970568229563081846669585069219483577784197786228882484658798373056842642221212934492207880335803221000402991373752274176166144557402081487844462562019446001750683247695135111318239727676522322259342010196885106088173771309888212628120637827406207438663017995457707584756387318828758470155326652857708751878055908716579438345176159287384134524812255603867362940080704448929447369709497559359386852638500827232764003340002949755363478047392497465451384609385531251351231992085639799390566782056811091969891495391367834339826534281744153197892148043909078884373770234965129345230232133440512810169235800857956210886834053059049666538747230035033320875476964781222628014302696690349543504596282699919071168474266509170098882216476303474244404342785312077232963213818565079381236275267588818731690098528063407100310042065989586533396915349679267114282582533390344389273614033154488456975133175290007660214668733076873612446431090230957667943167178997093225569009499116476689299038942967343282347757591429840751648795437646935716862287019395035317405358866322806933856124933260352105779560453073630491406313286587403465511710424441021582797305595391207565091659692189373562963171786157113294760830580115254811164485123358497171539206607735657092698350406569466105025717932620211319416592141313083924422413984963940408914034718359126799021210807801981658962002816491032724408151130374587696866310338252094120274747018137368298941305792557985224618740609606118025475563779282038711159518797706752159938588267181629046125474352895526512504517877293965187584703809602343538266135109889167871823832120357886377044546136181598889827394578371744947983370699470232301808157555662050387915940148657532744381674217675439823826197505888490035003908355507236788853945626308894759591105903414140256738556349868527935956747443633349166117525512143762078221267185160798974713930744027557852317581461926121921423983150787363223019787933809585635169801752624842667704171377506263022877604555939566196701712490932875161093750402704579006259737553519723528826636441658796435688982415414796331715851837611248249370198242674779014348155873490435267323226115508472129477089124559708081642156136399171477326218147410746483161575609542049448579654911145102652384002338819231560854251819010815916356238676076644686420295971381090620473780933590520000958303682297886499008766734397733467723619090057806844637520172938094093403221936944579175780804938799227292207876704914275287802688242092329670609782784769828262933701175197957250131437259322977823331852538634481589476044260688248367359924916194355116083588313887426062582541455094346053162211230317888818059995220773055109899130123556831067379416764470176224663477175889450712909029557415435404591893607564888867626092882169848537261331644053251146447881584474187064717539422703048073424196514199390866709377043633028959824336539238179514592244196141529552707846500254135302274894858329196441900397467193915864308945882214707139542689021695067638523839278827251810932514165568108462508722678290402644878837768221612907001595760719588019122069420313804898380468968045878060688032143379921276728443079102974447724053883281117341377597356176332780055769137874001474693370077666469398292651766391013585656278016765163899939756110974999512296312499537702936032954422209476457255075298247663229946992394152278950953811039109031604118457835396869345551676811103915499621737367377955199849389068517558803225263067085909536548102070118898438378061457384570411074887369406607218423615774319537754051106171251456896350744368483917422175323640049312575958842069258101855830398953856729981078991780382920893374746549867881225343963187943584985352821632209862304078297733761031296526817677835257567576910705986353645706270975981767862996134973200942735099039798199401188185997368618669140842675777520937829187999628393548709265456666423077704197945995136506620285041564498651567190799788365250887448077710185211797013220372830089566959487299677543581711189759804664705412930844743575678564287573081163983828012155267047769387393099393052186292578008910611326022700702383535763514491357532244346723157871371886759671890957348580220712104743621186766130967568025754132233517005408217055140379346842280039774055848016639984027498301015289479982605116147126655479099218661433774525126205740311838204520472382901093334250694668634616916567606077433087333502453249700129641900333474875191876709193394297198653198185552804369234635468005279459814750764084296061123668199817154691119613642074302923395493356288322038181668181951804883734320630756728492199872733554137974928267457423870710446738171872586932635485677668612652916063916176668795444293267790112769912032345701355700569990094866970998836612832021250131130154330573637655253378915249834347235804346345535630736057962244763336018227342308318991567105993274581964320949113211575117799707313560778137514720994813381597552169733455864590380187712574991018932409132705218799138819401224597060206379078471848651639849090063049502495981333031637595816973347390437269432255105974917561457674221959030782065717569332287979967619064983583908462935745480740580305725999291902845561872711434259592001324740255673312034355984883116719784208965031297527377836844073197356752919552441790332745769593511275468315530636871036357892004860000087307751958678399251897065980859349320422807940571912220822016388215229852494129170405143110785958583871240441529718886815884856668200196479793633350346798259519222841114682472601756570589051928375444731572748944309488246831281894333706276297916171378992771258422386855981369675080732139851589977865362835690064321406011672894970616335846137740056495993618856758802886560368528619473692579695672727653878400466201701940293029075189129793580405094863020744976867090235294337023349320185207242945379926579795105346676299442593625447445660650859283163920755632901263350697461932491844233243499952460021603260344840673338266322505947968444643662826082769691622089284097769382653743914433937792773293335307735474779895094979530835193069043417896594083761964874817607326691049136079712294053559517221489481656760920476138928401334913888084926109813552862363807158433411526827624780875056967075402401976540787128500302901049106787123072452465065608779635697639936983045080079618558592009449215964431053520525647022175561090939380880359445556824601182980914836193252171690475111856946365325667972849008801118867019250257573389223364748496701510187906039213258676905862157030861418459206367508264568390287253716867940078478498808797498694490230960704392091209934093472629161317880054784354351916486852175334346111560030518968358617963283310559390635284401986765860973826966933705138017648321584485708000431154472597670514841138210110951134893494712529283055403784145430743472518931129427197252949992190964023553184909472419035759996514841057945620816709919583584625612518698352277595229479613206447102467677493177949093941734625371517765203484822440166986684102366035868743512533133713253674347794324771634478716319879059988322722674289739208074807187731144784663752289514020827672583707116009717970397363654988148220598871153650071930654043898696281688895381735391723156674714953326072562253828484673982983318035253875986998935248574286295301078642720681271239625234884605923947892876957856221840509044113942088417674061318712157473225937770743213346603102506089546026011941316391492676808149270004684442327285165528937086571088515865221289022732114812732982311061196521928844265816641224009085732797435097654177587521212602054686194277363705895151194173367567390477497429371607451643251226174078743327452720285821994970971226346655461351873543162583986115359602617692922548456269801227368809499126997791392506183240007077985990677999651141084106797372479365242922631751833028030693951598687187599109355599515447126167064068174488851836179843042123289376600709607181620928465506733507310822141945994050107503183039384075327997816375582569135745221725886755999059264293903140158958487946860105906316290830514235688462673803471355281151947020639071261720944416221554216348126672786362286030938708113925692724213805563751964084489274443850222985725618429345021838117384754587091499507371534240517829667899876086085375730649792359922965380342233468467011934777825364633778209235853846584654221668673569739361322620044682965323438194591009228003339105140924649652762858558516825631453528850209733055887747304157642399760017643876050704954618820999010279260670673987319812859709068725973707293056421288122698174154443343403875920918524854325331411570649374607973098882087860982031576588016486466776173271524861737469805332518555832828100413291706118156102806483087338638889800447867979402731740173351487843629321020836468888941163290395426151051259901232069161361123427580013624812117073824129709547627322202551994943367211772491920871002337887973188599322106716700760473003182964587238348234404979395204066686875627144563832966247290941291986443109687420968972988494825539435078724409564621442353505345352879804511628990727365134264226629747071042920238517260009100267128506066819159245723673686649188692626468068632580177954596610765699178387631341779442381473947450528291306768484668584087783022201544014467961097272762837384299693287003710436689025738739182202521620979610740156182533177026549650552760652260302043399237960373448269400776541846183540822100483614188337349742335833278164323810642185153986781814548658460658765847612333870519320277057206602624218866149990862877662445748525958827972469456212829713827460204385555030116122694943288146278601659532899411014773573844055640669621326978565741189288337443362244608830036671607665152975652997319672707109687776916524966931021434360739267311221259492913782645595623206887672985883187033767665021965675182834616370921608517664940643152580191647665863245793782746888648566821463173745741927615022192666962114259022148089050945662165615697754297252574304453766714578171488269044641695720393622621409939132387506186908529776463195234845136004378627832400744357574414057883436833352046822579865781095341613531089089999671588740033430831118733656323572993138082478768816795822056669973134703584356231545145913233632687618969619818769529164921119947767124543532868920806470755201250996442056845381562678827010830628979708038966316817973628194111501772475957429878998529928283356941494488106443620857466245681329144688806312442063368021216429544906035021509904326551918698621328582126085860865510313781167162677233873355920249073704162428995122954042619449274279913294303943862442313406297778581141994499536335325370427638125565575379244116159313121142211749351208446829982449120965833528887513778504420942503921507900539557346255072044340110117333145389860082017449684240699398693188697104654405913483827584260885524993231423401157218646178131726365167209767961814837288235581848662236073136100564211819543477830656898038582390725976844297660646725273697697576259757490180211070647532894147612043764284893767217224527224677217154366033021802756288143513427796904974788136775327783684790746992250650078177844044980158361988761844078902528879331925577145979998787013329338674276430715729582601458312280051875035556847738097624035554189912942369824113515621773705109793365875332968981906908700102842605549576282120503541638190502614393140095846699194507036685374082830931118692137225207406988846429892535731467849135574558645742375254099451647898791070230255076924039560919489221891556959047773419668427689207328423637534294605429069784302775990706328285776571504504682829024163855756614708124964364302957432333847361587416584109956322710538246669454496332665111144790584354287925099087350141578522544672344860989121049352688108846547352991902916254490718295224808829927074184841285750140854557646014779315126810956000262227542941559014738782156045527947425054142298596130032433431966205674630867832163111707665270125124092225586691210225817301759594409152742303783276219276058430485424598244070749688211952900263977548252475762289030443181757462663381921993956038814385189427659815181046442360600361775840601970167046248297420564427618665767799625645299137010444966631151491637313190838341579885885944923728365375318403014878417084715086568617963344734761763452562866533269564474093165198593899717734097143974276903351468262683367586391599610226168412442778660452980611730077029110338032292260086400235463078585811272850819016668953835915665757498159936018068757512044778301221544111831657600292220392195195391282944333787561264519643049272992650858216583698508704498225734098790034365563269671378999858438328804449624681359015268217477825962024876581104742240296678720706911469577028194833524102466593787485996386617598870170748554456259392058030849928701086866531433225742777695258175302387809317617095090525129721472410278075344590221145748085920146702364579958492987874059653634724215203525709625904198216039279078445809441368033227419545292989722718756450484892351848349868554401620120605499923179964975687839122259404673598915001950712647010730808089072210825728489469632884372853281445299812535438065791758944144228372277358794392638436660620652102426012722974582556658460022846314954442238223637462510057301980045359934909076950933338591588879211246689522311320145959971031194871853006766216332000117923512638419586163423461552130979591271425116267497908703794173166104345759423461257909439133705167595775429582415521653706254587117575145098655117443222389509139786624818144664876832394179371798566124454881003858217399270622741958151265849685036890715138641178456168930146949857504686831480655826551117662160732804154612144332802213515398270350846740920835879740080649066029918528426451183971464626165018201838574218560587720344033265618189588607817564179162599736055625595255019362031157198539649365492168479295070270082632036094069914882714366785653225582460605306413070561938598942538852403051923246215821027465998199363589274123086247363930882951023831875619062541957415509936504024646929882127194229104011561742645611833183834006220896747556298632889672614244659382667333449773847094639218857940618847154023439568359311062674078843109044768890657682690153998315559270217261398187305351951845606694303753964161113080761213699621026056085478470133884877788301052354206485250674709452258610882700492495489445747135816166793324091233123259625081787849183355967138602393503900297163933429168855988386629082117371618517492032993204939753570974437624486295838452190425551996967509635288409635422048777029548008409533092275959695274350535748057324229916934802108217180887155877465608583590914975431773318941613584874920379168968189730273085262021254998803642833684376555576578631692099941240266669568281234877325981843320302948985794457463220064443156210532060214890255077018262654629452156796564118138805180053522036866872269154949347913701810852025779120077013223614900431114339230932552932035425210882446174470915776064501835280960129344377903145327026693695732696173372921534642642221049351560659325449977652508302449238593496720963554255472371305092817034737490625319047394337590358101982994839008745006312515722230135612097496084521370524100451618717630617922499028830263276774854474052034991078879425108782336232489930600119509298419221981751129135995664774822031118691856660166416586280149759727209320213568033167709613980541710374849975122213179081926963348115281081168332443473505557809779432998033149379234952017430751550443759024668708180925000436190067990638659907744359420779770035259356348708531564439568524797775949544731031730833218229212865866950815663133987863514085326807156557640295345497105202779240165589979230244172498960241517400219860368789704305271283240983027564568683130011932866948453466619319536740481607322639357941214462056236957376312321830534200599183641471115882169238967789611277349288597978240037437403532736459148145295347981335350675502910775086953805190893340004228175337117198287461862093790095171152136028655062118690826255171943077509267985753831008658711805746607575385882085854177853603113216434957134048903531224630115573970238714398037912621265296454410500039889107531928460647878235204738824759608204108574066296962856240927553053072053279247131066548558552851464271529405439298385236432055982662007107497319448648010738079557782902004348935794675415099838686805025601390801655085591483623102591435110061798792952234061408962266426731210124047233843075040904922708328625441600822270516211202673392131548125584824267763804021631247036850620852914734400020806166801765661001694078901696433843830753738400652341850567861610911693301680725932327705688020946449637874233773943476542207653589849939398597565919654501115878585660212803182641582115405273035473720729684083457404606054369188494962470581947191070314143645372760166889208729550276354911933631127325425967009847170381916197466712176996922426909355850940207869211639497456833694176163925098529494060774512601080706966203696920229058641488538723537844434154703800113164648940852094550110069505512773325834008204269888356447078520778367557654481412432150006277699588759078230144567804000821506395302864983510598726714095408967854941130529387062609704726847288713117516968319398294187935872446500715670577545948314670598417729149033234268574931953325258705377936121718165342260759747949522630421330937539320805866185299984187658269595909630366274255674984583047176195710829253207257676944237417653835637749459020396180399754830341392241058626862316791630751221870248053758941318795756934168121420225302552936070098513087364578143306934130917660800987375240603670064429306375478958878657003334189861349960424016861099178470664879736398718934514585754447363473160950376053456034390664621642325449565708410942204053706523770692061437383707932494177606907240202980613311703480323587403432438885139984315532083835855742149618179292226294958361257355251130024414937269427495840602641015545754580383246911167197973173568640569569833082241702105881974898342764804409483247387460234673203286402958494643311556281705965515270520604121121651096041010908226349849435556680414395290609563172041408273181213036908384811881357499772715229057552502886015729760567766445934351439193963787333970258949265961204896798739635573197748675653158324783257850139730007487195237542708408690822284711229602838257838998965481293739228011004499581617986689882429591314420335395523243093092438988042958960484533393044264283756799060024582485005946443249184427788125036871641766277164526477001318797284170993199960470979822081969417937051462247315876962287377807252020608784300551561279041957647096265529877572349683156000115791484582472935311160664414923951677331668888209806628315273558194536148940754780655198799918687382321518617337076882456448230806485581515066312845098968176943753617079039340099412583622099309513027502463930423133650693258412961412446304130272670912810890203485545290961651860232822962222585888295930565708833846868500033897245282616531956626150055392564707193041207117063441274250991544825259397598274779472478928935771584230588137330337845198290132534623345851368072816410151360445883245486572249830188155843314247607410834303404989291644587466988207457171796757837141722409874897821185574686041778660621752710841249444965043774235987820133300053098038834658143526943660187687779623841715849103693088189647925073167108165507175817015454007380385241174319757258953606489614610527745045797841535810986700111395403543339413487603918797898405125419012187309111290764765338253732774108502675258250347412104062312381591220325463972693995751493594607965909926683336953921089083221732191289728100440621903149694783395957576109551581931577925225552694680942889717001467517530940565089071494715409942911744528791671888641027560072768978353046884122941445230065369598074574897311146174450172772743873701745170793314380297541444229127731009929312267364249194757220718874128162185439515927090435601242090418132738087916143115344748410036476729024199303153747347272727428005833794696037398151416035967004162779813864619916406133288996047634192566209308603682433877750770435337384550905745988401054884765913750974791142252131800828845545342315469204397635094270032211391329965044809366728074686523689340868773362341920327654304210323691247601167327905117048424375759708483618743184117424992142008850132069501441676531656531263471685167471300548899247181342339310094919068291665939169348556398250770476886812361180237504507386764466704098489783696645730321262447493953836349773061028489094578694405100754176198849379698191033566171257706187071607577438376678142479170083986551082358427790217059554497126975587530997973517236214309222178104101986044527139283449428931971072351413806363027672532813288574470782531244796902884030703649014466101045671887416248844917473665088265226595273607037128022181882171995359178927110203836845415253761104825186577016105204590007192380555153906235023422416452808339431291885603887779990021989480383446451261054636593188826271042186388085935280924584757981906967173524692857932930317697283337389935250726177252189962595091892111393008375709582163931467966565735738924688765587396912579194183376388846471587256725935371476086653805262561585311560847177181048940021968402113371091817120681561523131444369200395773818100787479608047405012767203979255070317471279027785552084703015120957429538911442209710320022652562404362185770524299690510999587153639753210346089745618137563687806682670975098476007755042801534278635941873215373783989999573137621659441433252505312423775965507347058529899230708987321212168628613588581635079849655658592843272458765445862221409912316109584756948625036049062169166528773510010653980778804430615795755689061028924338806348220884911809080890435231448239621886243191122649897549437290493263417404136687888607503558556850114279488761978748624017013338061096362709921340378837730722629360784295767691385782781921106274841779994266202842540173734700488256678981621717371639847065136329992222579863572151330117389303449596085281988628110315947440261246202889444948465332642569048764522284861809428865285839007705678628983293692309904052753328662839799395954054881559238824587548115081357471467059641038409195875175455525229223610372907980127939484309909235219744905276611448375209144714589480986466854378209813427384403220958732678758817078674982846335456277331353636187444257539643366265769813738321406266476043687345084559996049903666646010479114808155617317817440402914126172024957827721618446067132389156217973093388014035823048120912842251116752576538149413074408706418037033097088363087306766557922759141909614108491552823977139051938849548955362408120090402053721362542339563102728497558968413386673657933378606214768769534836364089595825183945638172257009476316536715359042991465087242190247630774178945355424570396292143053093568169675077435144305198661049419444438639286785521295277034863055608256429559668196013975602570962319686530148254990026755143797592757369892761827655372513917854493460998666553974534815895167345448964501377421055535208209117508491431524347511482908632142314302226337575155354168576213643291696125410887943265051499713852752827198116372691140516048312813828393121024587118220823830890027615810302673551512818988595292464142331930010362146694987362475386201152105181630261793297860859347286368211488718813660854501412062488380277262653394229806090376062425002437554357888836300423497390610448296534322666851213605771387546019711158583064743750865319516310949887861969928129327743693563239157384878112269555661656826383848067500595790377231927742594828160884511677414836636854957548226088162972808175900027231762150467199211145145227844873240800378181665021164864811202684999815800048181141484836179822609242361547674341551717186071861983995851587390623093333686571922916754363371017440740472813414917172565978744070003818401666394514515799011219241670598678839451633238612501917113399167142973750271989458454159751049283149556882644538247367494593454600078392912555900226983465168456418389370150674393730698952239301773650741780854320364430019152369010592888481880981477585450814739536253521959109000161175702492449258644344400985662944841455561470940052220883942291778935004567738898406618111172468631962087681344046957348374573503651406947313842484935807651262147632810839778903332890459048500168010884461953071726820062236667812880040466602115488792450627637386216525794253122682215797504925609433287868682887729856424782510110522120118843562530075609895528971296752986411021907677281839473975310672185940950788954996699665492723219904300074017659320961246914925264133293058338353902415659832641745499873381687962675324580727686535159620907719924419522272599805498018412629540286018407281575641900425763005474445959337265934903631164710500256649194076691417455844568259915920559484002413451945626627786412993875400541366147372697528862089138337054587358123954970939509716011761817065534135905539942526072722157585236910590276956531884880518700004614539005279332510764474231788304344192044122869946877901999145210343421191650253467744192605003313014476979328646843809349529181855978049186099500109004880426279376873639015271534422894051236843021314593468866634014679391436476982530067785061527048811294355288108431295066526845438179012242511087660529372961317155757570086226965604586738317142794182799006192963709240355751241298666700922841434191285988225506997328277772082983150555778029289594429921611900545617036256025583445288415121194032363824092539050279488023850867304233801527351520200517209395147533238989120083201680974833077706517803389219634940613211845163479163192391982984197555424429893393038487543640170265866871186286545194504100185168327422123649200219144677671088887745055166511515902539227782805593310004267998928344474157943944674588042753362700726329566865622833172508509143952999475460663313620709439923304208717177692943406715600139743233297674081890826133075325744748248924219035721662332685314829190878741498694018058578873632605786430241963180262287376007290978313507517863302661479421995336864962369362680181943437744499793707349473746765087502043036203129657554550026247526017925488154405307171982913418284736937419137337052517746097653588163821850053409343102050682390124458903093987208798322911432533207638727225956014448414900455015974645325857578072605813228334632183799512823042701928789778309243264415324242717917516009887528144571750372263862110474125677277333578264967112104834356315314324419656068676574742254333352275655655513434970376354277229232354988529153428342966476787212237909110420138157930391782709224309478283728245702701105149555583391452007953205507154995856257460438598464224759103845981719645424106949051626822761669110663688628395007618579727959786999938036664070559301462565755595103007425665830593129529928888629242255903953069054259731324188421682351802749059668292773531873293562890216997420814272702782734836956086277614068054863528973309642157460260746685453761155192795104043354661882049093388981807608023910207850318061008862924097632004689519240051867008229154493276082972760502277086983606179419374448869812547788479464058466619865972462843733065024752647499887810176186766100646143847656612285355535140837561305411931884278738368926613919113167130911927206475210791198353463403244275584306976597326079052783188092095918633149683622654733676374005540080616844939373777165289445463617473893745891338982774779116338603554475037628494725787483740399042875425593609739460120279169310652564481605960937882162555740724476853888232990519684322700007465002331440258496220776491657908241015268577736429559099197949074361238992917697046458763799158761801180046389207201932244307420100450425019789360375171884244941796910792557328369938884652484113534024879952639449696193698601610033764588567807739205490251697217620322666372420927613313164619120755677553709177145736444709264781022012383519636069068975155127685149157673155493479256636776464956708271803515788414109931711027629548128666160451449022003252557046510101732695091207001054412405769057105579172250908330661080884397492228428639330452087594159372371228061371483412182582622415987553208642727469707366500743031201144138907374875278466158349427795126761115939263688824712998564943504740861426699798486252697828210338745973541786115386063770372767480590524718412129175230749041906485969098829903997874235341109028290156975153033763901038353420276702471584534679740184229261284752794740653257320146183102577436958570114523477066294517363304655619133566074621717050983346057829501113628455706021016891735766158978625396945844711990127267961871263556992163023728339001287236960858054167497099581098732789902278521720058575749885691247150471829678789170355378102586956145716739500818409986480994715555806933159395182264424898199267222826372066778979077170204426186440505778005601687388150440902330577342989733361687234525761752531302477204557607607504917652927397363644985834973439099193579235603896756515269285003561583904233383373451631064267733122526044992560768674919216900509720734101086892367380906690584760229560695476535724754490753424998284822007107118791898285119662151730242130857854781851464199311001107314389922876328418434833114369844412014134160330690862819567289180086134976003619770654125969673325011528527325224528035101155887378256847322548092968963613255425716427753198556845098459818386170421854055226808567910792490397069837967623897954653634289733161764971481537345149955228857797486015504553922744906416762871242299273159623251131732692256014955054517453523235270072194518837818054571669665759833018137442394034324744148810768434236732284726139449223596317140938515678170381638114231562172277076438556201309282838146197377600881638107613167119290716656926140338003022088486894604484432657632417327305657369355372201023719079168069300961452336719799546073894276324605028067366466705982933114859716423163563573241386332075761778950949151374758791566256143842793231047466788697699214363221581799963711287815817649757860738516183755416989284295816752754958181254001217870943338564247430912938983187834861208624529704963136840809027020645004561370631699072547553499726538996401601706822353173903740206426054037295339848522157344852174590659569331703187077153632928133988503156658058514856594092193811031517274444289514729971704790899174783887106656076522798208408458166614596995451303698909567615264451232033047991022116141519062795401673173127508117099689158721718880889929781869821616646938896723555827591868794764272970363797243451105452781489698424490344840050556838967749002231819094260921371786142080186666127524094020414271525900818074967611693865577343352691186119761846621504146703244584115354391801896157281838549538195463944213867546031678415722965023621187316519598590527737203711562773197352710816276793709410511597512878349133622426848423748270686371888691459508429172943150396755293380660471871230771904639847734445937768977465997447545026096662488665497543405604716821032670089106982060701668738204805533065181790775789206531666086057218386450239307989150885174434870529633522743217934813954346222569309504603102302445002329186493772873253071985105418549010769703173528828577098477581252937691624365308734156592560555969759495266462032973769408422553020232336285749040063170794325414127731537551381257190900316434860296777777153049177322414089636957651912915517394061459750598709852663973398801124279461814120695669902634755189014658660902922214526284872983739186932750638405093036583283755192629952223868082211236375229078841926678399815524977428996624953596288226125910068986432835974663397245104654604075221020792368817568001758240625171741975083007642904758001962751734215275145902828996335431841934771778325814437928413910784893067620231724714008969081504373416255644430244018475606493876664198582110048494717254202192133440375166506813214273155682379191740818654949101218565994458776356386018335774320805748244269752921175062615604516485905870841143401215105535372567044133863208303387045664671084586798032950660860234702192220440952880700412908569088949845962908019432374332356119226521885857376774058396138479494006397548185983204754581987261392574924721943518121051399219240516290630262532062800445983415139864016087352907153587059646542245021472093081863364530971971197292628141487894598808699189876802741774830481508045620176937608189830980604732695956649777090048810327406190919249854697581712843719487567525111966890152299422813679769749865121396623156025764708915201349102246619344352717110683848415372401505138201979685854580424833098987933362269543993822857268624657329073251519817534390380356555940384992487697374699088529557785653811512896096882030156105365796253711476375236168663800547788570148404575300771663479995810405999790554795828774982215238447981929376286664755606505311088974064410084201304038564759888979583600895471018292048970438186668520445845934351533545485881656271497013982065430199639584585510090792323004523390036286742753912882295624669446027342620994610354138369556176611502129143713566969555534728328864861671357353615969315221424793117822286975389197576727353479632967047489382541172687733766422133843539460683710778233705681421409983247504319438618705153661642240131147589467774414232266085725717737065153417584015312891402517365195238897653332567683307960161502857289336720303519677234188980430279323138791182840758281452619125444092796752088728360323001848909070720869958539057458025364414186597987485545889971506619016984496406780160164366912924311425789486187499199549604490039749955427205288988436693813013600459774672219716955064404010227168315912564411559518317025729574551413810742133147205829638857935728050822653289646783775793202380174920148301312371752801932661640333280783989382182620328838068141383587251318618119104046335139763235579022960905541369649360965038487292199050284714797500148273055368771032866296878328871142842520636789296193623217104124066272369030711237593378866863797652455002872985232131223392222127739391979842563259472275109490990828104573454629691654386166043792170235321966367219415436347171046766779185447377849644332201157229231971866818364772794638923176127685917716462213132866738050208352205320013314269531113235202958945791707859051273184595913984152759120986629301780785484679674740997692297054318172906041613325071726244360666064510233550274358665149973903751238013354900339374404418460137744746660421598984894983442701004648492679205667125249054993572331448159253155928804476612629440603390436147448348898519969884063202321563458218075657022170906717406277875040505136357808600617864874661560813412066896101040554242989732344002945693317581097162301523745657180227482086398490510545040576119653821566337770558789728071730875436348534995853463808216995793991994634116655605595956195944228671962663208408492384536658617090598774622145439892018826149483182097353395236170633080474966593268926586289642047133785846663056183343509346449400557641532881721452511677306119962585623730746516278091553106975329153010199167477873664868744103412880656947441479869934147524211012542085547756959034413212503502612241368466500236103180833828655326536787182687586349340823644988113111903261982590121631797690845169652041265250625889362064936931551976685225741719680064099032178759908474207005564180425391160785265854031738775191814476252433379641423703979056853115420140295406133088821575829859804952485138321569553557996120407828073214857015670090896521747711541944489361181702667991361769787562975247482272541853960150411368838664218540141177986113342466884418604119202114927086655272995073068951094999143806358711717256744825482148725170516073555336669179655674089678370474499220211404169555619871752807803266242903798379062831716864048789663727264676712479657770185569517721166005282546167262279379436214630915978481849264104111864874374511166213853094720323779013768939439725560304312330585312279387593947435416564007874342514452610330800981971575061744305629359570526675346905906466170575267241791618618384398353590441177942028858295947705834852598238765012480516017172956073523847610910502802288728916545113952031654294113097724199367528943420716247825507000957381675532251876818051748981922759129994853733268768244680885669450573246902207915469911088746917427549351798448756000831050447521010950549101394991377142124465671396910893525825189239608692706914739126687461450535625753449057759637243664485511512209855452658995023192785841225607614285939300533373955874585190566207136865204786060503936676310665205919870667289850000156126442926584114029448744091922147722794294662078103808169014019729613029117318712477135076512092514501282148882764073712928401268186556664951859282695201881220278503752777675381484616646898886866114789209372319400921639919536630833317495504389845197324351649139820997610528294297215181345951822755309892048738642141374858944660375661274735543219519480884610106141044915732017021715256968829154732870653002275707747039949496383970853310097803781148770480450279593475385941920057643389353065997845148084773822548660218063461891978625613296339343077953084865130618348871571873210394848849919645167208590630429530103495580883783681459973771536675906535954971919941600437235584280688032033558439946607825541275673096746136977143166403781629583705877781865996496857203380330447754641256725933716526761769009268896879907153288084933271096866586587020699441662141459003602225164586616969931700397987569367345649056096685207076522484526284565840117620211351227126022433148562358157666722645838786615735582216905189235335860674058059347724786815323387814554968546914569972569099573248606776974893965202021187173531870211120464414525600361306231891146783588863532109735528618414260419476695792988636474790325632168253863594169844937322932320901712613780945361170425515074246213722117478706935954217670438092322036953883777497006476541813731975147233784371917265495340021335911647859942367239404391403393215685012451698829147250527995227004535563476894540888965278538471160246170902082501030163191460423847530980625194228671994395845895241073029293338091934431401678608990163255443857728852041362894269004790283607002227926181816196727392560896352287430746184613111735418599784177840264080991190110424072666034077007103422140996224098782514115915979535288826445598033421879230751054798244560706762254166379891300339900324068055337853752951452021860242436037473778593960953904614092585534231346547767149616800214381009710908604664052820517563357506433303698080742483230806232818816924553160953784661750589020665109774273756628837168235958675683550580423979154434481103518037798931356205603308924818075195928223451482715116155137589893781059421084824555689196360201835521863594645018965949763093990122717953717838749847876044045109864247104304185630523910940633819377923476475162652440842329651110537037277751184581003750123683421811423619206093364725585212013495624004045165705466850353568332479734639755836359162719783926766728810601001946312528576666478809319332785924515240091316253353230063799691943883914527944206049266165566382234023531160991528352313073051458170830221356231631003186189879863540554966998880337142747247669703599560158464206843298025389388700106457116813015891497493552945862104741390119278342211227827863854456474662966510885795555606768201007518388660195844917636617261219879103836292513922909008568458325109680291517386851869934074576429157634164129398457970363177470663278242553152907578498686139297309092328622313995400386224351863636582563829271602949609696457449608266088063409865841236467839348181565596771556114569661329417415284512778018777280156220281437617802137877241057798052956648491741342842456964013914991076112481504825581604876121105174862459790003816258429861113321082381369731096694361955167298511187302799095501843156320682837945387644130944984211686663847872794926027598779602283302078012577148576743728078799463857590106405906220549729922554593999512180894720692876649167321394527556742570528786104786601623730064634286077142750960855065460105510601062688034952201033056586876296550041176108312321485215365727755087358725675316173571690566165640263173055905748591211275274256246612818218276884651967758291938984044178378117469025373148509953795531043181761542901075264051868943702930778108434248504774397204315404306089067930898620167098599683089775351112110126462523309996865758668839989690997186783543799129397734075929877202564955714851927569656931722563065404471824902901192856337792210743379227558763766419839348453325606416790247151191372235939655116647695247146471614889340624654477029244810934630496530835780464004227081393564155885804950588689574025355304520311161515662758491255390833278191171595837509455904588705445389683148884747241230736669065760986438906644050527285297655942812963174152135016549745295642130308237042397765702632476938951139377309724082915435135148839394865594061325571487812416170380191488448945680785304731515543854303436917239952225791915627235075020865456976600220412462777175832805866752004802368412496232136796997738043449897454069163633979739627163461890633641860735333012963117735397117376009200731922574200215475845256799525659843660565988457188238139237360166101389994850207942109772312444737279637335860043286133723404083253483640210323141494138859963655673264582419308353468832124149716014634400694914166531712361061504350041152619700971603641503140212173267082680817029645474464202129362967592360746001354698561656593788316652478055700901509287464652099813183708661818258585974602888151067319532061117709751397282255941269477208577268298996146125657131413525156046321211840818464628979911310010883322269179183117579465683900551035724115707801689126814115784023048164560071406238052344806251382021267152693167145067466487544666467878818211802443077922821073597927657641046058122964225190503846347759938797528236114515282287945261057488050626863485599500534591316089805524575734206878861266399235554402863596174316280800675511600884701598636951920754687531624938124978198853419680919743428426576069018004946676388115049299785907903867211761453761192397819212868422214989476428970852264109209481907090821164247751075969192452479977109222636160566292485384744192086511832605820393102589927808782198014342891255547566861660536120673173313509815020915492554744461793308646907937270350164793934789163192901487616293047030042582007399202795847578783736996558215094590079333867373583244761073928292006090120369373854279035133719209632720747827791178789267109341782840619998334566543481279109316513144729121156048542009822355470306603229019220682002445127887011589396038431942278128389268062096756532483840748977520776535438223196824960890436830303534838244000870522049550757754562181921340986530511453574306917583849681371707760916060084127598668370377475733161183494750869255217718131096038779137269521421885457692914724397362654975265517566319876720812922315550713249971883861310072270384464552730406632624749362813021735278917160403353412232324627638902635255241802548182494175217394215350663241673722722410436020861608379380345711438897524773907261890287105988897698188978781901801706142520401967832085109133667233426413745649699487004299360943847002983534246941303582672996024311133277601534849788360553125737387558708362016770588298246930903331089365723399618018530009310360760898375112167967814622319167851963487669070954812327848659995500702931486956723349440041424699854539544536665022248656471931465133462370327661421103075324633413408916138056095031255532130379991369657190752056772812259613247526185029837363405668908168217022238087953076720628470036962202585481509837317284005847589631952777749076135994476471300461923520556092801856775489295290918401003307049357064575111031194244413634272651784947527036218323462646820235073864560337583394924561979317525980339631863112577786238398738316623234705637356825750227125079393728921054584130207589771276587264459547935237421622263562938255883930283683873824271370264871691928731064159331585980234422011628972686889994898261730118331355827540297995433044069945036738380782056990692890414683362300893114193846299777783704107010847026867320335800451001669186675615287170931034533894449585466312039816212217653224353875276651700066545912756289545617247027763386633437234041914964977402413502993355037907086163875260978812041484596802264544371716617718065217742152360254426006327803529791585548037308893684331480746117011440587823265612436803977027739909947387763307038562323339986472951488671938548328473449487287682710406230112391204628245430264331362010579867870053846763058506443901916966375624036726526560317578141239935558690093752683113986213739911529679252407057341666731467498757198451453056846571013665711331284113525021522369049773559752666487375363874277258677444376377904411915704752798353118605400342018363674328018424515370544332602897924117211187239115432792240413680904119927965983309307250891510933582354475498958417812542379518566563277130286942896335554355422973724422986262990327057497157228780278171989670151792957286505382592048885053115298205087756354518664390237720819319174046153690212199203662367910488897093089547204511291058198695162242315969331706003265195630261604430883353791515822860658049543923533685496263773366455016195502350437656521170905360814317856925281269637322695147560010548223259054605930363497854004549327872365934573719896831987985584565698777588527485627537441658509895824676950571553873205520339989660054020383772050531644088166933228552929126130352362189625245982066430340162096759509319243383377572696406371911513871030310222280756866211842076526435181329571280801911914074691850422679123995984587973597735901728770025264308040973544024355396492402675645742177745795479472163012437768899661979040749726571177172192895269955088074537823498684045426278746911147448313449075333248919165316816447882342352792110729213546477678028424512906511049913751427600549735553349747891567311470136906635734567085291549800661319975542437149497933708301248627724579961399892997646181375162255529636150953080246122986243176079820232497516008595014648853745427414139248826265360339503009161445553987099859093889618107179992408127946691598235142611840733565831337306905179292658128321029463052141787635659626813269514091052926813379121682823559234606299363027177374220099363760271432883377787121498798980065243828610815825188222549903420833987893671097293200424165078790625625613467261135813118512077203882256728415970760252064802125031726217439478034522055930407809679688820888500747622355642084020555337635907783677310385717035017185127513439296573595659202552736778248662544034315491162269472281695126514366516993603310352142398998876274563330050470635782991502142870855699264839083581092346168298327532917465931396737059098119458648156270988760831240555738983274954409008114560003777025713668301235353978245166569594973464062511284541376353707796864865098133503757569581055043892909367223400130576292296893580085245112331164407616143186031902971105730022236276092140646596322404433875545306812521209628846934115872005320347881676914422407783984234883684658876549040622596185662178217121919690717440197048200599482993163207159732838096072447852167791751928012499123291760341165357190388317697291855321311676588950767464037831400885602585261507142671079423124359747149189060228174646822993414080968172535261318323164711711802875823799468651424336142356221290296985075570091066156340710775688037066251406391515350010589248879676721290184308539863267890057131919368530583732174929283887005186613499163156714095432821180085789696639965461620108784310834791244349278034096860695176623054364379721533511364855625853635650367693355278752166086645979999670540215207172350994194415354217507609933876200345693186153551911476016963755582411077398627813156533002171117658690251930798586575559359543330386851917230913761940704456531977827892976718912966123429780425230135394603894664792935332031241387619912036328301205142954131005192302638986228851269270467018609468156256933713385667058727315350008036270401726911973635878094359686168102192733165337484798481615666396690999173679054531043588412561167689172303260225638570317985903490977142999787246535699965437709613448266374106220976563555736880254874148796331951554060204065572096067441980373123327092510412966150583175076027892442030587676144497302020210906665043786007297972760433948999730503017280322393124041912936896202761925568579205483460257182382854095395653372041583689357986601652801239670050997619700983643191510169350170491592023278189387806152095890423826886143317657676156909138891173790317024653583765538190507378029566142171100152904722403782874774137331022271252285866054736330452552463932353672595053992606475491711661642418267121715074745493729245927746954032762066133671443470407278196474040838189410031344716443495329491573807708093534087651235340456046804216170719364740370895505368600152620134983262480134178147725274829377696656794924681091417413620201067769710676212179860212015935513415160156607320924280602602684888731132746408868116573717919297284600997723369664983858477866679685471968293154129059626992889404331309884228475808857179598380405755206886579599837036935170935039945416358731124567915047331083926441290575510010971538870293667875983621691970231722716056278520535947225747834305986588294341345869831863404535209181150004574261559425631979636385527889728845323313171553530217782328369598237630718328442394047725325381191596325925433555249022754255096203768221329630446826775942253808589756964723272173820721046722838582355825631408080810215038805621095000863881713925300885414394726845274313390903056700560839846168383306069830078888719928917990628101361834356576075292076350236074565215133498261406304203893272427732113876791819988149422540677699037392748328823234500091613816660088822463986053189783369272031295054362074657372343947915778094212826049570051282848457417107274366495792003024482237018891810704938020883007405846387278251572767474149627468781520520866350684997139098221874519670536733880768461380713023361124411655297570873828767388547700393936455918003406215965119577782123581272989300945098513210440886921969840427014562645044681088935653713737522232035258430506032926202183063018300790122426323341417036604920549074007986676124341525397641959075699889699901546517262336627276882998336846722580742831235801702669701813240373927453086671249700011732406491643829880165030423475263227677607567397994350218324642356360329981691632078458533231167257584852254760431264097692344858605341721454704193837515550565268603589174315659262259606006828858203381051948341071039786638229005875636465764121233370654550174149879705390313612953689032771877138639889871815899547948793506799339985713652754320115145852389105038171381912610857741119692659505252817854754281526632575291759154048505334018552919787999195789054258926879309610551777495330800143701666753119722932710632085559228502518538875823992303602596081307382020345590615647755963584298950212650731489617377458098675204440784820471413647860158335395875582773583963349223267866517043296037937924597212894173882387202645447173073689000824678053330978500145880477139495871604073584574381328969260587229358031056291231234351867105046570112575110143206986336762859811810718529248652240434964124723948301144793409922992459631092827833710884638106834677042426939385174032286928012616596207235689562095048834344817602079149964265678932756968856897170701609433495642003211103169790453040908303165718516650646863314476866076221716993974955262652428452140882003455053204133365864590506101568947890285185803579913938761660757038710282184772703233463137838726607882440617456451887414153155042450338930274229832596136852672576218574126843774775600630042854374437225355775042329815231070829795627660767947899975885358072071559051466950149072962745429671160397813112210963002241110261578198695785692177030337623813228411984099626088412705478404244219359136743015268348624211014046728551713350366343401011775597063779555768510668405637041251359325954515308320474671812405686386602090114778655850762654252790448466555995556500314673591534756456826348458798327454617209965874403425201342024840130955071904940111633778153301907050661566105071119532840909797757001918667055553552283836073428246345403534834990454281743045061601478805374687082139318174539013793686152634395208711012977045961760135400715098123164458385880342069718403929451626608487207802551605286949514534416105391983841063982233230043707032434731443503375164762923238451568095229786689951438599483183196246987431127963657845799191649634221729959546536085932497830547398984396093159937402779380590511091457219719785625734036696158977054952999691227797545834000351116674092012705578584356256335204826611154212269814134246365432735937115743695681544349860950143813147282533531419488776891302840839465581464508698089112837846638490429769552999503579276267933733208061991306917523374445272413317533186952369390850736007232473263668940790536331894860463622648860425212885859945500516972464067714785375337803891598965018202692276537317316059944236157558949498474718695895229824818258794771818319868138932529264659470925177561685852635552720087141489427010094689218501278878933693623956262620327300883765721590029537486777160934201433171828116420671649377597436190098885580027223825524870255553791457616918009120509093663314722677484302637774828167963640320343807097112062031836059764374082283251126964428281277865060036827591583544624029528389006387107783421290109539224204491591707626117284985923199786123574764221719985137419969812954130426972375565054024539050069467669545350533679987016920211910630792723629152110439663844029332900953437733217642467452373814416220769365501845064069362871801131864596861032934351229123021178117229300620690945086882622799510279926203855000544173825839119145057341950909590186482418477495553003836044293311704274612883981096589570536528183067697178538837545104473822528240533159353497922673668006715040352257304942673224352193674123195135069976849758185112600060256016518152257893493569933602119287486295808131496584368620270237844221190352935731146195823538242504745083537014289198800257865369600993863910533178837141326275456305390253912994380610150142591464806596806188001928195212202856118473027655956323702493479794771279611723838683717855799167309667831265814984908096827424467474012226969952324199562530337790139064027895013970392943963358727787995850705913085532676968635928247332561135345146504569487099895744919185792044412604402997238782948111310341209214392043803227061246199851441102699194206899090672198688814446638390565978956221289054721105219646786878867209376840993761668956841726218898890417826227054622216509746642749523886103749795603788955435318502351019658990878221431670267409052502321297061447375494315095680660687348090774054412653985144365876479201984994038820225666531683059392841859347276042438225506817786206040931945734582628700913674396814706008180834217383672594627220193888941537493445339781836151153257379250908874900292562465104293379332098236657907463536083067220650063474961740382164819529842713549209046225944275416553268186319263628739919621177159191462353304891834906592301377469478624403982264981130225803703887584495520591403878783326235606585974599350566074926682515648891360860724979297948887774723132009745440016455967385298465633422991353196883482550447276509038455079847726905608111341441745372931223938793998076209106525255849311079407757673966418757644056430684616134560832075145688964320706407343533820338253955381439635727279587811465990409700535830868125457953519288100728331492964645563851095672095174125168287477955369933348798550331776372452213175520903751176477674296846059567675553323589542622907578539230704616025937729193488371933383998200135787840405223277645130000659504066734123106219482643137629084358646381956134631441568496488831561757982733773871905947096998556685272511835627716208315187623548027235829319480398710480923836750085718024859102707019175239756918596844959981222091719144315952894329427186194552111144716028095297075286053716032990293558005968899367727870416984020226421388892774770691272440662262113953383989361102740639604450061736574495969364179310035107281606746779950249781699374197763756093025339628780040354785975427398896376017413983406366910164705800422696202644846889044226220972239521735486947572108277369074825251874183788729866803502177014682434734103833200483290531323677398694136869183093343613520755485997360833000536724049833536215016851618595910361940684251998615152217773450433186560553651689558105067038505860043936670677359573374957489099669499793061068566553942060208046221737966576390005698761948397129833596322118246251024490029723292576589363569437512282633636420198765767460188160168154292517629332580116650027397489452389492331428363331892752465790549678438038250607200779860028725300820416619419614592651585396641493501524299828690702223852429332877478931557015375529682345366915272083847098663151562196636342368790112556069734498321919700084506993560362878171638792016853020275220042091670930567709856656960302507719280106783387096217791901125065629534155091184837224990371358527088533572468079449207018150892336116580713678708388635580616826410397238254738821228503893144553536625494618107673737128078069219063731367859725912087945767110058632087371001174741833216863680700654483307993030723376618210892300890777852327081652019262283154634734662441738919709554058434308863905733581157915796554502954708233359258927289490698971961799818903666638945145291113745803429058766526916980363574515301741151687140721582610817250972001802102570641058970781684381402875830249912662272657362942982155210853927726791943894969699485397928561100569987347025838913686469400345749257849800664369951178185812108501352822879544889207638793188456769916043997440665636686316586617070304392949641762129469361948575838157452402451227332087762671129928617461776129591579506379610938282113588560148786098071215259778272736533429290492662268936483106735888711550566972296377680821618359153971650199980426785370189022812315738281531512559969598607584069171725749823303125457472576364369817723564017753456769245165804507514962149538058388187960748214116691031115567483635921996251772647357062424382867883456976698888173589248208281613383556792131599847761807356066565016122632763419182235298536920145928698689000839721627075554704831635114916266545598917409892292737157657065557725884080381140239654964969102872463753548327441891989306390505031418723788360012094977529681627244684107569019142203610148514632826540664266902449172285687514825880238993972731401419414750014262704048871414361070375514349356034977965258881952129525733617143210561741876655545450106778198357272576644120473754710905433250257281994438551914962785802179040108565918067560484534731486973248765025394262841266930798675102660698046926081101534205713817970115369562550465248493731053450567634880224289123167275566596122249267073598005765701614157811057465305466851641718343456594376972516344016730026231077538180818141588002706224208085822821762037985308631891272146694204752819357951240749633332393969594560935206101536195637217700826389645544507139942283810740155141527729322043824337940157856981681458225587185083187757562657967649756165022977606919047240053261303951861768423162343049521538405823648656405782496045495436140047892605650098397370070281983438400132570984539137124862001858411136601838416289761376506001097596145368431892444517686745723103766082700840790349008672203854950194036273620392661448789162157332344559717268642443606844600862070388083372680430018388292210964189489005805521175485581081841532232731919143254387215984027376647447766711278861749981801415563345357562256827885128045890615479526180318496311984314984501399303905042218910796573038353711831724854475661620474037022341244358155494424569928631334164710431413643960751052733955123642263290204845612937341675207468754059569059282634726509323072620957013928164970536553616137021957489128861506941321988543882991870087896919443591035772024960773041622474691873421739193066297501185678818998375412482182704754337598682197385482070924486963443268088505673243353279815760672034883330839381031064322505885293939953047233789788767343270503849630665784409322323667512666626701058083394271591154452881471441466309745053649838060457506986261195731593986749323299157504484169477678338308375619276204000350306030534688879600114234295492807208084778217931669038889531303954810662245623425884580245530068481057364865560958793334312640262667600737453370738922798147352558091248368259234209840972712467275563171741114208398390436216141957662766335903105985111290770802602205547292438110803047541765356234128878983223808461712829103961059843316766302726669745257292430684093988554142414592323237791985906273109056569893863269668294278134701989041719806030328850164051235534317610377900062313069637670177378033531553264615870094006150250709741314536560432670291592484727555050813026282605440544138906254408898876180534300409367726144381110633781968250454431384103114253528515887958050424483081578902389031617069626003002956973239667319969681162980991833098194290193328130142795753964245056052903676533782893282394563744766177961898531796941633085135310397642353002957443340757187004422697057276895891989673444214473410476120400646556371630201022587765507388869235086488740191828928722435031920547277751877023010699940466170819422081816049768559479122860762812278635620650004327477506607571292370747359727055672477958226063520847028932478566238035829808198255389501677749514902878864461359718764187871419696563520194451204062849209717668268503329604916343687520828595278086617515756354560309752604522988140296826689485844270878644367077906272049163997955487685871407717089705965695286592850343173844410404290825547321196512645313221837224274781212611147172698314876708542052670310827875045364371545453552285376228588365677801610537923557291991909393080753479422487824353428306916755114519490871862726623850399622808786224980269199628897430410525855128770742974788819427860379625357318351128125980381434308877695730675450552018680697475213085778560554688479906824671564542189525187692389939960072106090308778618721912732011985940065464764411133691567242705929883876988116945620570661937532952689498962770577432012673666492214784111518583799949593776366203783725887805476681205678595312952529449046388927786595349074088538706506459063155592179575124789397074495366649170181251618779181133672308526279911925788310933804331499881045235734310589296563483315074254237310005891304593267395144230950622516965094938813896297287042421623927549632622909406410670119535478563013268880279603399795316254042643583898473010642547257615043774056391917233607805541967217740733449886758632613382299124456393732200983861776801385072622391503104417056309470128656476409534673717052847708222576314934668686444303081138958502388811585574412119098626759234510917614649064531004738688336045629043110891768707963047660910138339939548470284022972866394146066260213948295037802699609778204404476723592924643777540572342747610809347278946030790017645318128516328508950209557524181564372802210312285085108746074072882802845186565708991838386763484034561637895157107439471695520892622706061719918299898074659083450690603512953621490952697395391102016510890377084309591037643514543905073031940753294473347422288231191571616787603343259346587394331543566367637643139597223186577661243878299868360034494441414362177846793673175883279398160376602145835355828582211704910933799138824121620476254450118341301437100197292193762099036077418792674097802293174335989035470004103050430965276880928538573824470114577532117235709586496216164535926127764574196011108552587212212430359225995087706027757984931305616627373714316493328763211097436866791019303527041795384925620592172355328551745211858581974632526498738274896345367589194553415529801659474833854775760898425837580023185762883977710038648605074050486938858069244992503541299868557257535946200534563102900968464967059388390521924492384234337519876030414208779072968316591452344709825848846859454935159791805863564517325102292689816600966814464537852493858083665341985884373045839120306747073978750737296391903545271321481251382213768980439130227955596733311575130019511683019242977284248994608399845273298519784539065529806052068837192838805919825864798929964208509877333410635866933601524769090146989838057088878288377164909620873747207593403086972154982772782539234095500965740439015149642773724841847711372944985344967789340232373839582998970487536290634661179400123589130860186336633125103657994218194588392104270542456719735728447566792556172836458747897147605890846958429631685731577604296430315555442550825990775577940306631884672256899406789185980538123761814556242672072942971956086296552555548281136490468480577708089976018047296164511768868139307104106984575640345851677541220307759757150629821742021669808622704292012090596485749001272319213945760108327944997448434096937288877850396771310754508746804315974452219221581766918931063713245229085883313179986028526583440943402420019718352387477897763617092913191089122711079382992900600768957752311722483398018417504259698895123525111342506500326963598859306642113120054237512274256638760748108479444026114766721753875154186483786130008456166768790804700786274872301009514292778339154009115719785522924108806257449012351727262631622620974626210870025575004996029526690314467577260747677384188813661804905925057358177420756871900845509784325040687027532195373232644763957632715546353488547995339627611511250321814325767796819150336761562890834518083152066864859588328719565681084214448018010284172917813468707364550591396579412426581777808569610807847528010650308041751167248194971578180064337851168095365070756464733565594902168035263758722650742983410628062922234372159582845906333064221854308147185726693519052584478863149046221293049918311649645096670096014615115981596667160521478324268401730659910034613524039357057813127129752058482491118241569991127545045410493088439784781180394369857054119011303729823842722169747567436211480541065158943921997375520984618858623053318260577240634196314282291205856677100810856587520940618043026357620398603627873064064374061605652556626003879063527123072408742943721083969107912612650579972887420953302790101429414872616981058150434939443789057470974054309576820825512362826004928634241798708367689919275318443343244799375549804718810089647889436847781443042385899582337122142780431124463532169336466372951708055932859646752439818589070219653123062997719628170869838600771114547230983030100536582789309275970104066196191711607859640349526919787069743592220696660488580080878444319029310362611922562397613784199378083707167848495070504735910677112494700079161277265520291846811810669440522643214546048248934163043527881227187507987576481106423724536926191260535479475114130258396806345701632513370863538653199948166654946340582744246643105648011811232690945989206225720237125696142686077072773230610373113654846719518101362807101851468763083229604010800262848466124055632361634201706440974863013107366710585014512424521134272752902516286478262252108845285908848412706984069125760363592863297062620884485320707131080995450149154366252084964764652747800731972219990028535286958213160980190725593462169948881936416340746112854673892076673698769306021523484358669475191547730716835471363124554314216583176903249404921788720947151877751521964702079825157484218104820382086320358049030077796978260023513370823638329957558148848000707852232804695830393256250924709035878548940785093191747420537453457750237902647040228910787908765570739653355580106508049809598746187290287286403024393097476085832432715379097555057009914000607600352205709195596451266454228304182235140968523972369532871527438806081072270754762486121721737264324235559913709637118595593170865100743013912781983964936968589173142601339441457246308426224893721969032950229079337247871633029218801835921616065089184811178925761920194377139307399534930467396336460736270666260480978930021426730844399749958900309083187577260613274155798243248970442970414100934630213442542939447657771896989771620780687238798672420775708656953189066989183720299257631944957746466190090286618833403975384207490855134715055155001401584606433667004926025182936832830870303784461744049021968732264372551459391855407138664629819680637446006128577173259604715402000592536241928129623434746451573003619433561322141471498286789267243282587095063795910064644962314294910237818918624147405592214449854743074303017213523151714480369924528429577621873776988054364162509512799886734839890387606836738854113487583189197308829594148040727230719656600547026568418968619335781933446884623383475866435593510517588168263654677073193878067824811171581519372506129130771519962386835575500417134676693328830898963340643481414690433814910337066319177309680369677743876119998769933473376085190489976837273513750557968290843067246190105658879667261281206484956278403062789080468012880368854965895425797978416112669794228476504536398849972274979347506176100915818498293507089991004534245289446085114044515364047017440587875568519276683921371877997797057729444998152905477399503374076066090308469985497527045914837074821390913110551965461911914913639875560000238814427911558261005784322461490940484181487429328187917862554440514352919243992739629860089183224393171237364156043701694651666000499345960819440688652075155396686434659541527459659039642876597505565508968549779050396393395256229740281139667935179855603458396516903541808416454720767331892234705340070145719085758778640854576972229996742480222104843695775638856377254237765892818298136435293712265562044014587893007596458715290646949213277423393665732403982094737378402434004942330843357893632579867764813391657700225498653308332592087908774237035138581331402721034473320671186947175875897141675508211606592437993242994129822851443598749614594700748243129880045056943199800039177195912991811650936139023252684128766018469643872852060910562661621753316848504357343936999095015946694568624044727536975033253290186224628060878003510942405371159996630398921371810302449527643916846671660468489344355252267164998618772021984523268204502413175331392040888400680111305029183921689350587715867925741314644621147691066093842053275377000388203754579254639598470230443748187775187760766372617569944234752149434542244038617152614143526577911709093856259903859975115797672534873319599379401993037812022387446847472670705969782629976288719604791357563501170667396715518414199727278084049261309699985044497715462490026827048789271486225871927389736761387870811411938925153084235513437123323071574131540466493678337899709406843270216704013637029264928125958912986181462058413179641002344179958915017706878474956323397399757393600790525929708285198772452625489599697725082213465322166857944796511901649567258087450852645266109843381292406548901611226233128419225232042686754919748223289645860768427527331725240033080659626180872038779606171734325264321244574133694176013531132972972797769984967739544956777593229752570484229620417531977770894898835523894604536685764714408041422837914909999675547220336394395444709714168628002858949913024724230106706283180180652781995009055064164111505629505082342606487436487841752040837071372495378190889457155298202198206122039044408633625233259519661236498125862218064066514458891743007930013347110632151239068473166205346891373998917682889399702792634818081456392093377428316693168925553137599326141862594532381455753716042908398690792791797817605356670775133842371545022622925646349506119157206642181066112790157497444883254109892222738841918053712898610431972144648614004235524177135407052883082931927970272333791574737561829991447613202216150076553324671484902878142442527311184880524840222120774244887529434493030184542014664071709332988565631300812928899656891230798836169399417904495369612525790264611997591199264754265396474916996001499530649653296923894499319378508558366752521522379339400789211210180755105614031145235895857357618571068201039599102834955080686324751569087385418459127063975176950018451086615844952391233872095278947911475407107865880770701918363229587560841211255268443357723308240062537411614122711304707722043943872975887779991775181810382417934255514960023694691073287330919399432270251443510877607813778867320746107960621083156565835662463367584674396497091969953942237342828882655993076617564281557731421138368977619826355943259495255358992951757888259027306238911327360543028366335983080941670767739545613115710741097071635010021866151688850338213318038781047317887403622252032301193765111505881072689050134177049775414310094967913805516303573718790918835587811135454817807495438238148637826128661629193222550864287156249467575820325138082317585037930517695159602092579013775680012579047251328569623579886082011237752712647669546005731836128059999860088961681606840253196695436238254167124569537233714614932133484495861991497591813827782326074182133739469186669107478972462693360440467747221469891750473468691604217016802200689164782722399533247224725995198115957774020546758541200587747568632722238218869403184140465440611297791994691531779180387215053504631174213091863236075059479575332773177580239895903293263041615399011470804293224461360299689328373234683890081481127891066771062719138310312842972440911522790320042482323825004490116555879079759011155668234082653669417665697640755122960148609717581615612481706479618160924285548233014471279725082320144700793950951794302816386857485305490203929443558877083415567310223663268284951896858141339577569352267570139234183156902551512269055679374396346351888359628489718002185622177719491545863984381698790350184882605522967627139841847047609817348893943792542017284014614877133024618395017281304605809357583149069350880404334299771971516839932293455117775422902742633060519233409207897203695988285974210898701792258752235946171407095031015461159403736853328920905024524226120128580896367766881497230319994737885183905863862096327043259675992825684744571490030413050615499237539700707840101844501361397498116903425438070734259267223915335881340364645111898008582484490789056367863083907201737573763619704549676196298202407152734108432303711688340651151232290093992147259583891193926917279867629567141101913616195887086711113801841407428105108444145768124710084709997551900170853173755060092682319831520457115468302100177394158120865319489623096462453793369091736186683810794121188489114675438351791191905776383083430454007496958680136286505048917496825481338525019834286276934568474951395438926780058704528680940564121469522536870795696502233538418984905391263089581026298626165730551549164936033748030997409468618438264993236572321005735797487695757972243323224590383758429664617801644860851616205306870610283754492687241365661346111167954168273117589364380335721646833649120707367301986878484589551349316474803523239577842431901155431175347171301470834700539474443285329929411408101318757448590137289011988848616129075584233352405487223222783052830228839655247440180417567103572042600555637706776242766240531941233837092829831882546402164759462491421200545952770392490106061973078497447702031500415775002217769642742814545474441557564043416787448056623529712525604974249481955923185325799298602504519245510430252482297179586925953792397658121701329333226984134322922681336414243767493062060726387961149888918067793227133886564207460637953557251907330282847532692606022848320678325721545225079167855075230653603208869804196674055822230080777224923278231553330293107620762083588047012299291230539799371557016277426174522568732335205567495334967328970266433348780373374400935261439958791962410373855713072837547471945504889335852294716016252613388503958573109741096488107430658835590888393518779693501806466043128463584912561492294060396760828404139571885822856225225625108018087603842519819695720607904094608304584793845787093130228600367181102351521440266302465330266305373077559559829790082298303480455039832295137925214449773021037415517662897514273426591567252217530181887199154149185677870161890655671343385771274316424964957354197724937846402521306658878784292584745354227397060234929086381269639398952281804982526130727280675200054180217569319166279322396353400039923832944871979784439176995170727243984710610312757755074916592643005094819723105062874878897834194053164012243075068357972158273821365839231624240410288381098598727423912984147115000060989174004395928041009377331320565608974700037470696670824525462736525354230827996520236853697382487700947846288040647037218179828670353341737932049046095447414278126948514909242698044389195875461182862191590487044624385075840717346295046328589077457895754839200734104131646910676140557042377946129746772661802887949930131781294567809077094239886714583676542937789174244917118618562246821731067635293859949005422644721974991281233483404922286925992899430120096900365471215596805522064072611352759891873842420058509231758510350937872670709119554328306411870389234798854988169594310532459133473948362409911005381435625252150627348366497890776565047745764925482053892353552774324666496790007125537002892462266471724437916267872991766931097855897549577800454772861338401364183970071888146666371854958457782274747804045186717698635492070080445656108546700948847329571326195301544405781002076096935494871990419736943581684945321057646146247518461185701673842423277107597477251018901352123426138200589799216504616327758672281034565427053478285420309051608201170234391040059585980352187136974299266269243346243186063884706222681215866316888343111802248092754329747552980342312687303267854784976057286211331177809544641209519147613453786223007917460935105585334691964996702564979391365015760205534160311152091579467891062757409456538315091012261201427696012677903857222959003427246265979952038561471175802400566394090440830633072029890456243337762642169754173640120506705522437885245208411470597425353159728673654477939380560659413149901322831936124561771871470903891473059124261218655402950341622169856215932142518115591739222669106091727838360530096234153244629976606294610814525951176374810424447658409557843396681998701490308296548229214589709130814234273169567402836241992129488951880527022765092839463237957473454264994524279784829263245105940039742544136702536629328546342806201196481489597775222252144890342809719480528423520148259181372909154444820984212519994492681143638238641340002788366718831058906105308576889353130823088223249781046967969305999970673648184700460934135753890754051206074814972465827517854471380140402828114403441717655348605786446881106459541976977388534957099225264442327054286764296384702901435219349703158211105817338297489489582459493866034140087908156397215049587575189530371650491971154572779788535179451476632467997170608478801550677144924003444312641632671521884473040182232985774796124227498390087910749205053999680476365474056942801840100665919367370365427872158676160661696360432449994203272193775312234888596703940245706228095194934885168001147011148784431514907790821977066504825934626051888817854175339359943184898270195483567460856113999502750399842394088360531762338399935386159068264486674785399946928188658420133713387498892047132053530822963474662768073857442982127210507276735012618227849762949947591884784188715862279891469438266938462049618578449498457378394911070554859421948938954934518561157193562472901053356937578988377172175630291953677351735130906205244089292552247065633133932865470936599650360277310672943322593095016732535573808264669991536754786651544453737931612439492426202682118264495406576711660184681423981554972281568812922964608324182814308800268811962414573223203928108314915067327338200755912240196529739980302489530431591369330380714187528928981126822011044793821830884829567935077271570808119082264561919811379794182395919796803597513236481178668813413124897017534768263236351583288528864505784423328785557489921230244673476779562307152588948708285965833514565605731984245943089676582228114618902273064405788872541365116901016706540108454224281542757243713218801001081406235718228092658844099087889008531575228368123589356444004105259250308769146461139745028133579985798585634933580839202272641748771142259487942284825000451630228457074120001248854009686667591688183791754051834487755362945353833732222909832094388617225979163339578774041914100014937783172666540024600876578217918044124148149932857294291011407924752373867758096852267036851658911699233089519323822448723226370150268698166958138412549658793244335753246024408679932291448446960806105246525323046524345160365928451689191641592233042545329077161643200382324634897671613879044494694974488989432050222727361300583128354173718685963112333398836831499648079519939437284934735961067576402386380677417505507569531344973201400477397394445693703725155955865878224351367971612758531583579912821684964719967922191667401723949391960203008673126702558337047072601353144460419495639217521369912043984711677771933686927347068556879013683767869992636470689344788241286280097447297064828010168208604995097438273300889574451452889405512644242227067045144670590825729109757952009444589370528720279353092149020927603388451138074295994800069623179727902804516586104605978427225762397662930764863387552603033718896734716357491892817583373326883503587611803361750466922254750373632870492075736398236129401750125824236503848789993183339067238137273828163966554956469821900900775173708907923982195494217846512287447364469752617962682478547011791014687976827882265635549514596162181610441829599417438525374122867321257142385816629859054778824855519305897714583811600098876089713688428602026415762934771920521632694091680153389245836442639342197461646738813564369372104642945872972937352915916704970375380070215933908741038105655783916776997899161409936884287398216827790834426544172878449976458712597623221506379274982081700649064043952247927674583049661502918409917289004289262631580142863546588911678154692927748871258336832141433429517900012701191126619515761156815667011806798666925069244746825679010420289918370795819204885678254010708356468381392968447263749591501562682588202363962351308192738429575180312892866204294914375016790961261716149529640938914362893060454204142902430504189246017999091928012641316121868828390739748457315256327094455098412487808890040570922510614281784663082284433983164785979327629374539666826945306062210736007367233051141146071513637498736289912962525799545570852359038625369281821617253985679251108604669940043182704549926458514820576475114951057380294896166469916488986279255345591950677129653832893028245373449654521534119929225454151067728574133842240122852693190012916293076834093560136432660675816095747902397447867376787516176195660807654749874150045421837087140347561450153829152912892845896614724352604262198194171390268377184817764222353446128412624302991370569194760320461487236774588782650144287368802108127807225563848108607629033260491697618302119821207365161157951630560554344568172514333447218981083808635933217162368457095344480725168150275465775960466519649683219817672893014193849006572717804704876950309817381642344606245994201971551971858913482013625665621482375526141497272811396950395073291607129571577821102006552641023889293596937197896249196103915324922976874196998662458326331868426896282701381150520258604346366509464608925906090191546088563700216293971566026534720940709941133679449482852355181633311546522973210455623168616887177001777744602672736708281563895147399155426045897461283465395602882510107074753089419755825876118573624741829114655133953986068256249352970481381741585794068246939845454369037387060734910277642402883402853623173249320180665632437654810904308166601048872676885186054091869312970799754471004747599046102494460091224147988948646451380041563704554830907618580487253091945913204962761773135264466817991085715225774613588854469722160732459980488957589041935272713859615578868602515851193322289870113514656059106246302461147190936610864933110777650643634737733100431892053676774982122869654519913450739185613571455033176914530301499934950663711655609186188827607162722268007850796274630003026816027151074519020184079897081289431824071229500632686246686610899928856531061015052450214567328542749819891981027984292228533159968834859690794023745952221068236351295764758636498684647016146211659112318807226482525336900624465434957869379866750614202017110059269960630245259757945712846152031740027844287700790731148313290276092941954682721603931136938546093132696603364946640396120146427565816089062951875114418543942000620613010168153035724082552368755001403437443958816483319720279483576084888855245389253758545742253707784286331860923040011910415772789788273918416210815402653660392202770044740293854387779273845208304486851575538033821904513722572195723341395164766366057967711699470922084986070246190536468476381071589492219384140112617987026440568546288662182294013792257994635362995973253571496920030545280973155513669170795382103772137092666817432840484369637416118896889355929966928397628595346273300467078405402990019444788026408443811511507588452392774986731853872189634683551388823238990603871746459278310916871937827486943495296451369092132765071315400403856148190190697533720491383039276966109799351259805082972543270048343993349609875901203658275049764148293353026383351162983175668207569505257609052777750377639710601822625674403930279754537526853026411450499573278121334844400922528270489291416343842746452462944519782429986659961506987186066663206754819513644037757800180052243452942959379461449658253793793893627127337994025808672650924617397996948372602968598723164028693081458044810489392339127021940434497726903369119680048044070234706424178178956751440559474437436044861162984668532618274911363453857081352418060884992762430151163918662885632461465685731347360312512550178015147436203328101119441888958268526995869516090466779919296188105385023780233100116338531449279547417934441330795770515797188773579782754173051012967914590024866403047461380993027969563023140083201502461286141516655144532649242447682455809228255865523950394912256432720689038640817132703812864991928428467482895917541052497303687161011277910962697232130059054868065092966004480232758309361303717093875151321623235680901252593501688133973472653759270018947302950442507609384405669253748098864558370580047666755430567524170657171567651706465667902377955891084842180173459329021329081573641248240876501753146958031332260589369278798950479247546260877077192371051622844136696132266859076160754592475114421713222236388509430435625747442532343986963418874643409443195506516342956972087348974801735213140642040224236804714684956859901702790939165765388517163893606569669590906189726300451955477795194886786071614994744726220657841055430774932292625721151096520118874583931964621975616766185286074001775850847016168624107132485366843728313118590691391893634217779648922928867529601656213747986341424282399175284825236948250782305688025758688200319533272790770637528524572991858632238996126608559087594376643736587595604269240217232731412622358848340051195255712166004091342127103708899423760422125183816389618201130791777098437930726799850669457575770664608208107300075624685828590178122481246488394951604296661366630311038293778797035801162766333292226143470642498383587906633808187020537070588580444606320985545934119792743054496493406229939176888784552996198202180498297651666951952985586834624930973264085600406699110500352420262623135683532483230742414268917111710846118569027322736835366828806631917335955776823087358337078690752246822986565965748370341072447635764396173192270575601273052451331357468220577845585968184698462830599160985252992044582748557015058810322237964214579717341823333410816530339578888703841685039836595677204851406834038172264575981566497345212247739424749765544042730248363993962392889576502458684151883143893369485782690745182749268995765323896140483707851841335578674558385161356382555771329273678950740851675486933174928654737010370991081175851394404218166592915202950265947059413705033589899041755415291634771665932768024352388253117985879574189038525596719662845240062872028860141967406314201518732169791865990059573145810666593748679211057105057038275915986091426038084843968976519468835747065162610610487576026737530197727734016593205873689767937904421632490121262414506338068131778503724617218051975061951124521603915731916404114496792288761356273303758764831380528352224620507873705660962823570500469904146893414479204428575977785478145766475526089011340004429621315553653726705545546918491470721549523118170011927940382854797151365733296014489841037185319607803803677155826487286917084885216092097236962184988374149060404533074158439023486914745280578466739685305777544781238142644499854229919670197213918413263849476897187586658118355811716741824259785707802769066240199925049639990404542276996991990688036540910407835147210525185717069423778719479540363572111931355339466537231814755871464585777921036408860060500493442440325662416799440651935667346043079308077049089113803794145320194806042353312513321139520524842064434496990102210300114891695109363629137609930615141489339742810977726024453301876976044281801709960122067349675505144038852219649335740979869158021272865708531846738657424489542257066455952510703797974114217657711749743947353777528005078712552908238674002363949098922534617932137982687278370871135313894733081537763677854281530843440209685232370744116341634891840398793125698756881388565063674964907998518100213443534480573807966065611971513232260907382542210413044904290954203146744764893611764160277203594038891341955852545979033366603383118347318665538071098234913736115978446494460014301742754877116702190991528935656797959824632597347062124262069697469866019943432809868359093798232937399996089592309546167867796677687856978112385736637363496012559391877665578983173464061473355568608862092757232979331249963219927203284782138475794713644319690903280595285860334506473078402906762578665473841171517998278820319133198947778049495865429194216705815846427119204223766811151078614311773632327431838082270892499045747208488717274533919067324397789804695870785393030571513119971190168865087054082797443989176362685194582450267005127264734663286603625772013261045048709881128700810278567835262118969514883262449322595260997477382354278265114298460138153274125159925325479265850226061387247096736014029366062675774587407198675190138130707703931096478495472679560264498734621692944229511565165024024284341777353486454836196152635399193775933805437774235166829594681955629490973045927348123875851517993996729604936698335262708738358859209456786944397088731667717506399389359956297161606086421711859172406844058655855378933029869206568329847295825993575338841199767196252731768140108493564401766848830661176446868317968753604375537949968984500006581868034285446833103893988498232838377858294171019633857211411587729209167035711838461317479668942933895383762572647233412054053852661209305168406693801089364232412917292872242296339714137966825528870943591824998965392206124559780555350725594071019407016486028040019730519262560825488708679642129752081797120910018755669690008958977462928026777573235356622816651158460937165369872809545356395699871301068432464038765102516195803356114485464614343829752797383995138176976276103456817121453039414205848480414532314251064319327042782803486978978736817467946588997529705111229816971621363738508232029087362105003708684614848709826860492462721544132773301628325327198630675833687948828934138268580768030867755604737011495162213599916635088274360988923434430734631813298184677045277698054636802291021574732648244242800593085720785456730785490680536013479336134233954716247486272462926094471269688565856027300804596084656669936432874473278234432719286845543254646606364695987945910950989649327819250468512603254361316871911515423901703854439257468166879808607507190700755395512394293545782536412383132004837689365055917481620904234604639814268775281674322671605510792805511363584158432242132724835123192524144297610220594028803019190901999246625509323058229556271153487742930186479775626059184941204791115599010561660151193031961195235685398981850501281078974331150852839549438860707449560483618915912821436334667250598613399521940576500324172469382809092447579119916725112183950144034816992469614532069519489683012183125643167169581676207290544276679189696523794009428340414363221247707169090862572317986102135124157910513821942680599360924169720471390417114136256342957326948739654553340030596205417747269001372898875754038621765659647946970323134788411223536061887435667216523920080535476160702334161442322705745418053366012206259020180034035837601399258994369947444038880010787525813174337673743889857078386460870521194106645658560043909266675394939645471416248913062362098731093437372408288772132989859732774499576400256142827383168545446626886653771329332761975798108060212036733957364449099914958552497247970492225805707621378431818732033290599267518978609649650593938286860489214942948279293598242644952607523912984577351913013745109360833788560034907899636851203749968266722738334711743015707144502902466983207672237889944534691144088130840516380627898454555223285067892919265505140794924193206317544760568927237430121235171088752640700545004358424231342810823403863023668704653827476484575915644257618421545569215365341568528246163752607396185858510437126698767934343982164288206570665478124527909717643378537694673235697946146081492526105457418834099997174610938892396246222832169283043185394529594924101056257828278597835509467572113100883446007697321637271674901551565965748913049538488763224332075972769859883696016969393044181231078542363279309341324387336134021004606188400029668231092524800944488074236131852151360505060782152253819981044154934008079415932526131156887431617647293088920644421840740759624228155212506320220294576929805295077970053921863288936271221976358142261176749954249906339835796397840886315741130010460153920924826388893118042083085094097083406122876862544638339984866972271468597088433489404923844060721736705058096064530752744801327591346654987767911444166701197272139746002114263920229031572462434202909972772503423106373723091309119473407763829849086536033152440027461077225551304815700942311984884069802440827863328107519360056828487173170643483021624583052318342239498149052616197796144629854823024358199905665895574999866074664621117901713618642716604713202552565700483387779641621501908623924666909349254647464223253578542059051183323233703233230506350763809123263066668028218818644419337119883645771445900709956947811877090771604329266041366524922601836791186180409791856581205524056336138508236899812550531043717772786783898865512438426114259872322746807945099647522916733190689707064340111966020074349144423765387655594228919389245436909409178938943087602460741695434157111562700609337686397860809196793589207760090317491742659936206052579646162858396035360047432049759690311841233695337822260259590822801809431246249480487809410218951245901244512006549026143847044687740685395352777896685360957567631674539027627591429585616595246034190476326342127144349096179806552259128422645625215671578838458688175647897983965380651568129673719962352048076283257778659857816984674695839019432400980557063592834604933995700888725370709022029206512767939920967066955013495373243756049701876824964189595247779472017719144006872428937345033138727656995554361045196070048686748522874532781425175951420952975033126773778242054402345881151270652848618281212902642425557273692354803724351025602981814900710371975093811838539672594390788863933344402454443829804727746591453232935066581124459263706222459293711121197080900257045866297299807638014086977249637981448643036989591051788356616099980780397848847868494336986577320430545696760728731562955206175847581168467314060462162944522016911220665149865287468520466071807614942407425016809909960638541537492960640096322009268828440013134877346155268489362465712124713622819491290613014901217372092158729423299420820225439412632513064085945557968035410479932686584535088586140841687822153376354474920538224938453078345073040553036642588337997332543962966254774817321543334102964211163350261564595227599374309156056017179746435866496215018044438963136522547453159515796458558691303011602356414565077072910847673101802852429990391947472542287421121010788144425526184603096418932778761897763359294411647928584758154087865052554796543677717965259885734385802164112790420689453819198823620553858582164195599318030164640514481140204034747298908747367605789387575304943536744762080154159358427524903163548321209752526785346177763873475412049945968419088544140904358725883804154600335827230368073881278582566806166639127549398328316513877946885975349331260633375193869352344426249214426806873623053391731480974463177733455547208816823701589147743249805077659064881809778082094168631944459059199495594524410353698644462672602113709744281993984948055138470325632640965928138882996865995132434645270258859712245526181229409011675180101842132570711713613888344977520512243881739104068773090984230352855670119897575630851086951326236185863268451210285926079069825267925571473955354676362029039023725159949652725911823102499567176030948545716038516059974568630367734153214076716833133318684406007834541343305193163319316630200834711480722465525371358523933906981329796207453141985429005626657758413223650732875427914292588900466502689103840581216861825540795300995106535636468069100682747645420904037287634888839851163060353426610328382930569776728139054304467324923529451482361288762265204124105285458609273289784777291652325165175482958515184505546653499550885998755634901894723718212067480447121343228437463391517751888937565401848124518136897009731942734719312583515706492303349795564843250373479986024611790261885186315851201644950100172811678665150414955233251075249716322358030676756032341845637410050902202083444424174874953383390068181602747285373684470865094959759079327575202871705547124337343379163076164082818169500801850841499676651991289749285432880008866531960817536876501305508633805027318520641251597578882964598140540949387395536072530765405421721798899102227196663526685841535818145303226503812444975633546094331512968806034807820543530717987201988499961851918704830465841111475878482367301974015474835816597462697568199654410856969058854049698720516564015390575702700284297058273532812266614831007344014440815966975568995199751518353402213716140459167053524438128616897200692357627315592930415312516072496705489856972228272808684332183871543100730137012838120816316102634084434012796379480029620272296677625312020319248576690753812635429507557685159020398993802245509374173521161025624072885898678904793499010767120740066301542505505029650689501245584314596590613614885968930820108613495985240236440415725317040736220290269605906505881503085944751254931762572499415628980716508659702370757425879987015357994516876067323747359081176424293201370738403961414891790553710256946000390129282766754463031446325424030823960147972887238393366957638209725535750157307234345737353938537452611815996260029926752152836363268195871032646783891614407812127501106976094944081763149793207395700944524835259725688094538792989098420061216874946848620467262043760648624782691083006660894078133207757978677466771829576544552468998509385073486306683678441820299765387056536748965464919070403371195403867325603669497416220334695644547563775735066202624404364952054307024584298059040037054041456855216569496734828287607569509033800889143918739869135627369516123123658691226702643438203107297050376403019769440379983263256413405943611991520282552087410377106076147023875421634038313973586575638177717018306396856852012138130871297787737153982412699226240282244100436076434318604421567152118775817557188448888088617405001769758876021018400294942387413835001990659554571689333509410215566788287553799721123755316510454980221127172189900640754774020022750029728280287681943762874300058600255566481398590962454891809563573192617066085173040559051176845797313715093481118331969514647478883309514514715065706888714448700635632739073040526742064734471016756507171713767375152067464201902246405604744464577272037481414141776907278910167789732920525456037516190287219159626380564033106181895216830826662528765079248467799647187417695584917106828802385168076467020746799304053733430817192675016054147517220977680295859311845045323062404091524648706207429862816147437254389975695233620924269589456709011727376215544325810581346005753106219863904804645247374367043917220920911450177383612424796493912805109200423526524764590037387602371613003836936006638036582655858351431992022496026638718069451331357659401799122266124101403860498639173567822569659128582955662154343105648679593905841163124742401206786078937389609989732059747062301827432522464161793825146207807243378755552742601544929951320830450843486163957286781752180171375029543306003137175993954902887226022157137550169141939523121543741743073836152002125549593956603089375343275670204834049274653850415265962194791910947158478060015212720577728961086047303210914424487411292973903898434644450640198510123269933157345810302246771813348706472190255886898531266470354336223273275857350880681385116500199006348587475033318880567521688278448268728400685440011598784488510175661464786348798359923801911084509580432180439801116168853017808049000576861649549435774635895255720254593907713197773755243811776843694634232195940269575017830254363801582011476623082724410061499039262029502247707891347279889486449549927604263057837531721589040364950766265399601037269915002241153536487249112496273491556379913652674844585080006997237927817666302454103848357738522139927424487532814575031507196611794386730956188503375182673074772110224517232831060826034246172258033038794838821473129895318492460665899021838329459076348788838508691229319729846837477455855652403756617261092987153054245486336139608227401037840377762668707094805923921719096573663791119386630812785657881507603321860788391986707409920106993155618647553301082581398271315239817919670855856825112199938074983762254635579691241024529817646934084147521956808538743835175279476663425086109663533834717341354122515687832165586634501987603713022164276565313441535566762709943417241619501773923581167134302314267083215322715073251903466895840063859382385907831299518607618701236846531914087227084334357727046817988365707438303232854858028073922623275839286201367507443616589100889008415487204133494773457182602906309052926053351188924373517010303500033882710204926126647850985098568130625675162651472922156528086310122406884663765679166334426155213689431827926782551321563757450242594287929121090739590642472439030186386676382678348187553497031779522525439395140832938043759084097308643028381903035431649583647782834906235385708571273087448778139203670962113296569005591846037461041713757788968079860106254219945697933638546287396644941723555339848489388218333444493926134685949296699391953214475801349570623177670803705399061987817882535781237823917547370516437208544316544419857529856724334824191754674821269596102977554229512778623666612459052478117724554973679314784559138911238602309853457317656616664314918559042817974332144320773781919405599716161627998435111363797985368446941514388181885792846926400009127722785027337801884485795328151432651702144805425593086833902784011544719083020916306476248290998132741739455712801917398616266503695273395283950996207258955584533747565143503796295138746004700230743673981696705356582453571291793846460571300739376102479837591709990132362915415869669554491324748089702243318360816580489299449929744628387946349672145543738465676319285682488008376133042140017487552283343986074311879068425638292725105140283855530012107545003518176725977944176679935090128343908964984349510753549508207869196707228509192078470099555903460051098634559329483992378420387771578354055866450345801842803213175162226310507292977598937137006855946915241783851349159498565189924420028560058516567695339526808739667497896401327912799982992360737339038906630815592327488992114829547641526212141271405578763969947602154607811551975546765074044056270212929187132973262380752852937483985429220202248088937938787667569295754748976918924907420822194765684235691940650448709004157989724792275736724207381961329424576209713816350558380222300320900796833105476211766470181648641764694415042320704422144503251777096577579163303894230623171027494789058248413072639923296220936796056339436602089834834588804908322959596351099064251863005443542715105244065076541122762950569602945859922610581815564695030290975455571128309830111632279393567936290306358501642498889695168410442305390805456544351389957422126127326022301180834974648408282652315720949213150508208407032100302041190499168630542098250629025176443486994902315276894385030282202207386600128875820011853539449437111331158223630407496962304736384417942350327256984576673519214150639136762742779229346539238371691174121086097119068166419935521331725112847616080866944498399625865120259064768948140474157520228207188177133377225967156853374941753124410230260863296760620014427306945451209977765897860364898534979722771569345836090945688620191899096870915425089485889571404468022566470384006091835330308375994645524532822304553732550899716671116392810133217712596353561056558372316503114365778160690997606710543141229476239809180995391170823340412063802506322835984924828673140394837195194023626987397517642848747453255459180151709337785140385243098862488240048026915077740862358302075277532375334904000318623033325040280083881226768443278784439770713408159573882402552800800666096935116677090793979105051039716100195026865719419122013811271020418838630756843174540841176138746037820614640033544656653517512633244940942976050219731275130672327416368833941802361448217611257356212978042415970900851501023138179363064969419923456489729452465003513896239974276002162307014406839641531244278489145823890040382930547275788905385552571696047350839136980851469671468710623270142026373036022043586418088615938372291397475160025873057263574111142246085875689328750184067971964970795562880987562669331256012271826647919520328767175867285510778628568720708476462320721544914406621877209838403269932480690345223864962336865652138229328656499698176044083227172564721104412513767563043947991310760470572144318758832130223640054168394561278343347616019229804026073453943572753671154427063987545993085882604623540754448319035292775757543126309369253991510475155351647615000556720153596124947752647695678824681196246999847694376090812452810444167556906736162017694588075669557796150712215611753042032637979450899551022478549017312854342724692363535702775205190199653294237759376879468964063810579235778071548739935825557178527260800333839317972240587302433519952833127335134512103061233046567700235926282931485282370833565685892729232712036663290441436994713984664453661462731553878623224375391440403049573722431843635620962887963188768660227397548540522658706097581042665671341716230480451723220793089844638817839775492619595247740532344598267945678035257939460039820381992769059240864509263461629704699084796660567923169452454522148911682247855081278528474312175972184818871904321073593121577218556930971602098935623983718147217166150946849274431624041560336603985240591000546436651239514287292182798967985040262026369654664230635724117911530247904950030847420019705497713875661829034260151747835136141483468467554873420508336600526658159025496014327076310447605084595452979345269890488421569416426531387231207739007248475134155708814566518825605563230588194389348873423985258737488949316112879747884199571930679858986608347724982648001305491617591032066023363879851354598566186684729698733115002157405621962583502635218534635352753804514296303644233495044092423917928748216746722424254240025816492462641172971196268525076589161278320214547392718806218877383991641326696518841220458075149873776833541500694662529867247327375216165340059220631172913657892611715954253409056904275310368819114288696778874229997457693679122505579281165202336849560013389659105600979976947348434226271037443523810982258931915384616793380954409866264320325904809511563463492447306426871316176690119390752483668033446128429966469280021104661994007097379506630622390909211529180231113234121616799433389595140332194085129721618643614057157209873830917721793653558990424556530484495434335360468427369635287315895483875313430213611847645474756985695073740884170620406278500603021255984063568416289787132510210768495524170625251010743283656000704294161889424086775892624080489863099629626896298360403672773765211600085416229563278414958325116993479588048891941781846918501148878925991390179946912147713290707132588692951084026876198465752989922763640986000124660482657022457248760442948980180286701685497016060238953934889555933637024120308082540622839530582621030240023712317711217710559306076211807590857110373863290318451650991571396063116835067940291492603418636683412648233577153972728350801052784383682908532244872276098484150982751160181566183970091566758973723706868794879961278618731471788697490220929167399434692592359958828054962864968993170480872443066295982600696987360741596472832546832541099680551944354817957342342692053010212584974406991566433502560746225458618799188432935697685484474778047885122719442631795079423422905253343021415046007518637900907127399716788658648534025977730415427710562148997122051712856969248998662574265787951640228649410184390595025175769369311537735160525423679300438865331622033659992650970830360824570905570510763586773796524702855771720505311607418660824681665040822770046529972470455618912070003008229138460938586786879624219807362539955918648648966970749647863763629948140832680399567000656637930285718829202930470462297511539132230190326217062203835218872933643114541448202813481647602346370100072417912730890449983432605618949937102415321982833550941669510326228227382861115476723283995947313485849020727862960983325967879461647093199992021836082569823981377298308557424248749730134208533358941368908422648015930565826160598103253092350920679924183518234574165283759316768548480853928167274731905670176607269664555408204332056976813074680310711255057967433434507866108005731606991987610197022891745128591586265498919149579014678765042359798031530468414012886966529232888158685045750964091781752203815014495919233166744294524015505695360799297316286904677867733980115761946954378497352182568322690721907689942480698187498445414704288977801192279436247661737371790693093792194360436399341417018562310913086603876923195143013210591215898929900550891934430005365003367615735823235018856197225204787582382366923676982483949945582030633814561548273190305176893604514952352432409208485170716973188297335854737049578555857003940399660534527226048078190520273234734192704977200794841948519522649542369150401001366751691343381842457505346044424084992703182133075156978993207299635792249447988657993021290041833463501738815302101536667306668759906877144695281061835101237114428232770377285635454736779961779285606829741507983681850688876400833344271248127054522567250400033880370209418982314433446350584416759731387109869407022535027035395571916171141316625107233220876683946137610481878202730922685282403250012069231065488042673645815969633225212084445991184319116549433156632270233836535652510217765004477023233152687023473578030721177841298255225812925040716871154175390016785901298409670330519020248471560988299125838346548615812995684787025287101367555042820905192966173050862914302305689487091983391199292479443291153253801208210400826589432364593069917096539425847646497858200144609907977862328923495131694126008156058824931937001144236121965836967518158483208472759576277101588760977663858927427687244508750346693074036080944775880682483442866059429660472997434500892593958989490378399364295829202599633012579028294168251772174151393136415656943708648520323313886362336104466414508907576303666346067839086714349571645800695252339020388653399737072016144929849096678955348398189948711374870653907068052109790595832856144648457141162723613125318905791438028374520503267978577339758961031544070397547588339932811506240337775418338896801057667148905056542754855747909629752285457583772854444117037417621837969369705412031371758127185460692640792056146389431913798717343026055960209994314559357002242967155448703282855709045336400618174124404493199325160632783353252295540107713381646626777060387901162863298903015351431210882921675469141040751666662270379919630686837572451424553378849194813311708801514499973243043467363121231801069973331171334425859015794093903973597988002345537118317710790086842944775014828710900092088454459899998670267468927762703142334111645260931995037237509526852346442874761166771879039662812260398066954564756688423870702224094718816141773355244363359968051900731454874394214073997832973212822159616739700243050724093220551659876230640436670877111154483431073954684558097617076506594031512020942089505193922530552194094209811365666696564487237756208529471220452234658428096186771093671022136489636342438770363377358089098870746832413314579496524294404925213312031148876758857582488682478837722874300657314388848746411074008552867646859658371359386026515155558762478451378121198893919439074662678887602143231357818540299460310306559628805008457902800138372806094799550768437433099295346204056945243731140705911035134779761076314428394876664323171841477664075986275148482429429611598693866027567609281023681971027869344954329124561368011512331978455456285082177829019877279285374960720312118348206092994502283997706478471527493665884099332032830369190290768352207332128678592616537912108562535353325709943891716436708076714729923467515129503369589982116035294440354109720361695120573690435738304547355226701006880795777687696459417941544511673369431724176058546251170938667481556433607936548416133262891830096823008247418585996703111680902243534697768435269996919563168341174280972852780026283543603514113288654522646650416881469840023412078419933341409058940556388636301451849798653399539931382526928343068780479479932443635941505659263377473101771174311723285520735202747334794064231525505592366038138250961284832907877123949570892363126632997875947468669832071719542874797888667161575858134010525383677363229929900560345609234510953880484412906020596693667384240792879619742951347898841242577341978433030459694902337547011813286558514078915205093961454862755139435499404255892361259536473128384975700412664324552278816139141793514605674428614502152277877221533004763006612966799665178253129256202115961050707356854339959564227267461918916499297902120819498047018641925628529441372814184919516984506321746063283875589697459959043502539068560562204626915174245822913660612690716799620172073448068389315455776009858878362325840011848387421916595675132227749372579444872341966709839857137483174030320440487365604396628218126508315680354003793130489245159006868115284312346443766588911827901893978172463508043837667374944402728647451241191056824602205004161106483585572479388160896627804954440488862680534370774000351500922655868003314236919211009198346548286799158275386684002783824620399404301890118719170334636121046281418543731586771207100439600736390898168750877259159761549648919583792948151170449861663778729528033793923769377495428308726173083140197816307206503411656047658506475568358016288180772695532633374010215982398375499093976269723278919194665796479297810586166006682288244152540597560460014425445862342926395785892959666243986444309623474848671017306009383874860835470144890150323983427310122543835821945384361112411560267855230344586918597118298762401047573210869876002558875133964642097063184347079189457780967910313134707693032961459964012617916110084048832639903771988206760638774058111844994852231929364474590221120722147121057137130331721927672233893221987201733219948835284031166164655804106605599162594919383248165784294283016744782957486367072692361308251937550651323342498878120760768946567212477271250710007247491824069651149090146628794591738913282941815840199647128888911178552315587371079634980630445242157174561994751677155567987252436052650888646930127113069355052922542553339639939890611437396864230715294492792510293396239567271214993963130740886335093596796741683512137848897397009109537133163778784225759689064119581132238199909377607994114815001160759049685421849317107628502275725149729247759872008172221473396303040474423910647876038376217811820675195868258589676986847938166652729901294468163757758349416952921597428728523376992938377806780546156315595592620089026366829124439656972884292428213726255447268418329903914427707086145837469600078145512784156369802985496735532444104452313949278561306996758444189027961190362861891607568401874995714320421561310593592102033956217020676104831388622954923014921526003500642415619323250879562207904873293670445731738895936596786609258525042058938233894884971445744812221535466500865877574665209290942230837014280840044076362383669718281096976301380428596080152074030103580800679030060111602227335477379078190810597101543124976111711768740948109765739308788428503202890347817581056563637824537900460868724841148739566299515259209236842251467860262633759808285537412280742633760713455675427054790545974059467290413475465361263592321941840479967257576190625477075306219680051132580768994638042224499375441632159929906522473407108504671173976885531566272567575714267778325205595907446476724973364266616236208285707892990804760974271489741287150375295917419810435840870329465679270712539236721365444024540304011243367312575141160144997331177081906863057305914846873538834045819234915662224908576348369120277520252765801634996665545737823934564118443720132354848743493975222350253365431915039565954884774030937462086345735177232209112744868660737994856935255057156844839948168193296537178320280226389836383696996025025185949858846024766622211197181973942009315980066421829769984717477507778091245208999411614340759633225255703507308167279459072729716326706863945852964558541152339167854993510553792604280634207595095294694058351193635591086787415733352724588513554551990406014984839947627654799693651394995114324368344364638882856081229703481869531097385477987939399149632322073935082321788998733480745090776546172362579942080519087949943811078464475637534806347563660384469721202981667676957390293036543951233668396981991601414398596671180403153592012433006912628605072576187504280008255135345537109516788420352140945790218438708351776909935445695151742601144873680240536155698699108949026116118659721646010651815381542095161339793300482429871125315023323718338061317371475342276505750385033831275104602842268478965323942443663331753511000515366976597913017162781042801267070948543315397226696825427172761453483482763667862901065387656867177689404587296704578733245275519165694083567379864346706402744206011994995338310637615594087794044373720400757602254743620458018373954515721877963703208579868145684822217102509475151743892007320178590503000767501654073093877774354535602798600380820259981602820779411894431111556988848226307589817191321556774190385512331880107685136480675885549966302075955258809923361028802509851329164498153273145277167942948869092151920223995682964900859199870822970732085907094771192200807217264254952900302980277633661100997567585293216000214454111727244816834920491670643327429787953564451536598194156796128391079208960286535740901557342516100398544850198617982726005420680762458937785932622980923152841028954011523123888696073156858192429635156674701074959578641902700808508520172404840981383019645687486794385669455288878132173790139792309904349925126708489869308783376238218487628760396240285768414691014452498798426174717538035511157475246580720128756736163145125446516991559479814257631200241328924166476346672512081752911986910262821384401034594382008379357954528409875745669214844742849392783577604237170070329928079728568626882295694115484983354708818764703953374301896387488392296784148059374521250768885322942194024713410399326916763938135474053707042402498854703448473198250501546315386318752558312723365152507815396762094638185947889769337124769566229438911126230071984560934379731087766284611039968340245960176655550529983833756603433273134989865298730090782263697295600455711866443826733152759589364541757349975343058619287215823478264354705450998316946115235487773433682380323310398160927085787307173660377888205275054325129824237429297028094059007728095056860465866059109834444265673749912894803983516068906096787071542269068355740825023044915835468018434022909051215678530870610117423866880325028607864093074927313785006186739318485134402901502378115981625383326908711652889494701352696391335733955996142620267023636370808027916105289293898293203954275484643340740639310498646775822170116087971156419906929710986833354524673085565759716203466853400308594798518344223353736860487737783751966990818508183753278447968967654836162196905061718888072109588852170594835031352911793362457240412036144480334379999948433678827759466942595812629495999471470934442392099958554181499180580754489901510266702399518713943021952301254861742563900741496432166528500741777757945790813739788964151299930265786922107549029438544044762731598705348523436788839543539132837059413807718038854908568259403297242241165087964476633841908811519677289563022371566181632886676057941341098759602432588124537419721679055446856911991957597340541777644486474109874369451620305254184274848750610302694958276792614031926826225682116132280241051044923774214953806147351769721743926057649632046285986429091632558200754077903053658215974688050772352355076065430985208877836318897091728442850880976521909794605451942452854186150234116195865402332508369046883766123826553663023086390300142830928969673656269289530204881254087321706820311489526219069937374760432635392898486015808515298342536479193109902128664376597411470673352008264023592060076058340463115454738207343374250380246263192295832812300505138101456197262773617881847458038776207877508359668210391984978484914183351166858965512901845109588306632321252827392872538037854406481706822894665421219064811329011365534146333098915596403592066231869505176622712167875529041753190389008803143399540795698268254335989970397357738918225149325852366159776043949187192352686048663866198723260150633535582990265927604446849267523366940332727015666980408034551466782007297233958380122272478978483329690704721031802074867629750673222031908113144179269046687145816604708689541350731094289017491737906566093380353256538133280328982170644560950049763512331341925405150427381397593705733893471932018718172572390703369496663809056920168648909889589717825210030575341428810109311934723580895424316491656130307616335274884395129159929956113455043072166440259744352095540025176134676523459557112885982068223686201968884208642094801947780079824632206350705801061222604255634148224703354931313101574761705656803633148845510124935535152212012298915748507133718130485465941661132851166551000072765366007546157621184339153971184219791169573098914317161493323613853628495216042909911245682324157019409394815139870339596763756232240683866642480552702116296131452691739168818826311120097302779148740921321642607705977139616148126872394143275493229454743574470463585703186351646472270070901580766713700473697942290397064756222966252201507371307236470037005670031884785251335177863646100105701161407460131272983224840930196926769179430408030263171728614282044910211265894455926921431113246624813493375797309220693698529125778895862184825670458877749892426829517839023317353366820528077254187002577128267163843492546636894339592399802900098664608923567679570670109334840016824119692293848493375043677932507815725513931700975510754044329269593573705875371371511660165343307791213442885789919081042289437259982438876855955662608064033925831310910683864183085701038929799374340320806202594223380411714925677815398791464588188568005159231210908845508638814842352270220820356326640365930324861262353046908185703723463828448049315806425520258606216239357462429534931417309046920807391263371009355383949683981391037342904673860361331409470455439949547519924460619926710372016665104161388719348429386022977255966008869011563845893998169024885813994820799717471720382531172181114087152337931455687731697871034168323238860615877706048010291925702696598329002979493966198132323797501340212228589645245389732041648709978674124991321861852646935041045847211587501849045662497977470518948373976064943417704432236133880580203804422924463456358547793494521100269238401035161797314169804001786439985737430869914841846940216359716140462472880248383225656186441864078724448698676568606126558837542753812446225783104393056375328444553637536787889432729035158418583545172591244236822058389779064920592450168328008040116422925959337272430933337448611724174974204634720091529107233390686996176560305724332949979040381156753412606747603854461714531747269228251464654171551815110726758637859929265931578946188379213325937176669712415538787095999631784765673451061878850764455454803135478044706912071749223596333954744873359772647307321563882952527407050515901988244602342855676017378708012120075385144561743811112426323091844753173052671963809475042254073050172017978635027729062476424015571548326220763455184383480330483182694144745557240791796327554034098455096765823688164621468673428501369606334655004336125160893519712926031436390108326864904445589286803103949966043978976415403284472212315455884183641786211186776603235635396467785639304050438393407468779856341679154238607901321729353191771975325521637897350021045669798343151265940218670690847794073377991702142656776737256277035591584516516650491353129226034168587125009940188678359360942426783618694713461537279048084753467813036920745325875755272570033276202449258808765834968372368510586895986193114502511758709538069172213992969453963794821819442093360484131148479501395855263124331687313504658225317673126971088116244632816361629247859802934246585365003096222759575295444973761014533717927806866804547303153152217327696508875621785362882644975388178285183890614013997815707236753733070083662607171800962199053465524664993199430617496531243200993607755086579896457118154146136063749868924517186081806148397479377685238339569225688902134794852408786781608845502191068938937001785991595479010951658038614341174337070569509358784587320739758899210218373895549818559473717799272905389770653994133591149580921957031323060618831306519660727298776831401295718721001189844189418202658312189321727271249929860128313809368414080252666449993901840601880377452423852816829326817583784169051689745869885395217729453910217213919190512620335429175835843478913443141414634442903494624326784818384241035168740956543472851108780128926940113483325052368636634081892368491078711277805692096579806640494417026685681546348298688359448257497375953938126507993682635260942568867305830233204649503202145224977048071244330681462250769396046691976092128953690732394398744070575377808835905203425914344495656337604776271222343588335299982927020620840619716985500907650355826205453552787192243705536389103703210122751019926897498671341838299098238055754573796969956892242841959727193657454865017098473436412072553900222053028685582090088795339556837931512928183287901931064882591413655246311373344709412348577524834374779819668108746347608517547096823620830605531092485636837901941743142742703267468081553666141332258120207534206139668305568394120161524736546796540392856100332865746581365970229259069179096463246776990719725152453368869140199611781782125869618429627255490110337578907167860037654404907225054776650742634656541295416018251173452444907290116032363061600203666232308006826536529550769548018267629580280533411585025389394605177615885878957184763103274082377889726620971346295282350333167458552925113521861586622408865421419243810991482984530386268633631587752511175621237280148595870286404612546547293042481159243698388068411954954585917545439869720856318519007084862028564943109084838199083367552153708177086030115730792315050199535020601745992525823031652721208330713217645263714423915978206272588313775260867327596750400578567724710544917619026119620521518615101063571567433719016847073048427418466763063241260922519229462044560827363219663180075032275850882166843735990555373995383404805333067072880392532485115202852238965712010661909105226633224983297404368130082848777689896580801156138847171652014993040558204962941109214993529499251972136751907450420696505738760751478290636678362688121986131893260221390900933249824872970579877930601060025153221275919193915223097379308142410779909259847788466639161293126520554867023405436063648285336256194472486830009108998459292470146904488838369465456189175180077574687804095489747782547553289677440819080796656654388486865112352217653498187931141301622455020993630628304288929427874422657896387160352078840992044592635514246499974388332734563049076294158245876341795370257446675986742865939670097634400973712829107254952670383588677623799072941557378136564898524136293514778858157343822899935550130266923558428304411540981733421274612760751872038007397851460291738430943402277452851568739234586550564173832060678411503092255260695129475670155134843766259337712241971316489023596967613165172123307239882465598714740802675094291375729194953253130175004225532167567749701032894978982586275025463708894181219666017525317460211423266471837552891730826851583580547670749725465539430988381100384317204339766439781618834276236161294219487034494485676384281358796287804496207790504598050125546001988217889071087733882537455869981030039688783189995485576432880635895344653857285131173788731893283756771144173054839758532544823567434238851522806841733038943158907484154917522814303032593046460262569699041635099433455090010476498608648349363975797431707519196620086474325448484716633795231342206680431184735021603788442856836849170078646450083389816142626654859418267071966823938902779689549146838918733922808623590757158867082773802608109589993646211098412114991778897548179291436664252494429527148124891883829389747343583937533430759947814506290205644408083144994053677754121561276147624740773990580490582447905783384787722986391650890819190600691269118291281081990829942652103893423711153249930125648825446091210518763348401051744889471636545683559588356868144277150039252758858512034707295634560312685342777341135196308225600449487754648591673153643779593029700046871810181043901570768941637777130558240620992487721185707656464292968077395314265761759079435513201430956063603954003124457037254887828456294962616001556290636516687699847237262878183225615440512979743562046952124966190306959910703459711936507245305522449990009607375488658900596827930520471119704104697512351004119344242189612097158729435427007417348254929217817267949163412939255332477765249178210852318854380951121840219100332470084813665103637674558963256258892322937369828542773700619141504722611096152758047925699692259433301330872716396698064005413844168476085924652952853335616653798589826541781600905075847120242389365984102779903087579074257153331830814547473167493343627869303363960178282805847234519908374787906009318180302192992006071577084524816280555869929462639756115877383264291303559001892326095299850683456095227883396103577172083121102657099587643531587532340456790336218478365948249462522232199938695292935861593761928429780982976469481693472889218148321820829969174275813968430386282135837919316255325428211916350959671462390505438186447260963314774400656744519073872440185188735506415766491626465236084200903761105321334391973573801914384121462099966815738016665243631559931957929438075144011235790354766912051234581650750635335586799277044091106405931879939272455169635902635659195770306677874973096073470523354520672052847491017303865758983344173245452968310977778718744542330463013911486205427791872560451470090152058455174810872657502596931095411093937619967714363980703740062302158613007979726605566010090012350620218274132515400183074759259243458081661018833416753236847305865094010140839667059995154545247419647774114484564366064906510269945043798448947560434780744622539675988453233260128627580150292833406506480906516838739266115687937042071273705119179100416157455265959099178819763378421195323061367010001155208634605058146190982167710790972052157138711438848095817197795051619367156138967126151139858985126128224235227302881621243018875897136036896044531278101524655532434893656192859693132177087074909408806686094249988150633873183575584062379201360694967658086892613078055776135110721725003353931771910694158795910706314302272010572373049039583766917953691300579733456756197998188790908580357906340990512406272622343336006946955754297532430653893439768744836964941268859211893440137272426862641153926400872240265719759094217299327161198211584112383007929907482249937689445115939610505235730741525081624196786214751547232230681561995752747252464104167051049977733617584516827764912473900315180196928899028481803065488916412150613706097856037897551056359834352982033186540395986235019246480195697933846158882536707151234843215805920445749683736716660509747383050825885765335162183243258197708323399207790265062915450182999253428135435390100651240418763311004743762697969065013851746254683997849112638063849658200015160296114775570813608228591473525204553244547474256644000557498413875852839507320624508267760610430310203941513227159347824153593736630582341498879962855566905016157896118778137964745602626326086534117505681068978066399268728030521583804919358854946170540596820442908673096554679637801948661356132102058141148192086973789195472082693646498707506037747606163600211550043163781063820587034242526267248478384206790604131901643688699142694018957158927540051767900656368807321036384871670247698393961139230169002995238839058696697292252963336510534941558531802421941149718794043447510415309748846168476587646949839204667551802470661772205436729403781055931701172707653987647589364965787871609843678269779040805634269054032802928289534982717124773728550624780789331666339809184570043826212406646623390212057855719964257172412935115832498760607569564270432508938694758961644540026133142451450743562951647547209666052875738955108845954554595984755828996820868601329783436446837693903617471590736144415645319826207796402833751305241511664375146901740530366323142345944147797292603643471649881711141736000977151804003734119184759120779625621433227241238300936486889688187411354253458909321091407047218423108513379997547343779281379956714745042741807473894069033500808186046593502374169654308301720343310399106247223977324674228959025027473373162433141567760858604818153252070101458658747611883334200941969234393381399314665868756891748656702251682469655477598920559797807965868144418794231663309693761931667741804237134579993357214616904886939190368555645646975965024408489737969679545788397907277012429352559476836209325156298796250772107596318383843634909478163852873955601556811754231700970184199993001280375235079670075370421735007024354368399331112332714612440158925212027967927760717559436432835892488046385486993162440352583573300831835869695514077134858173169968624142569010871763167579853145903133102010311139007758017218304593962455693038638502381761129520554000340630884727713649846810335804002923322757877709429463060259557205377008735029953589888439979596481981121744157340410520161989149350697958714944132889118112325100723089818196545342583228700791354479665463090394605553580791997189505639250282902031301746138349402338920385870181750848943616768018871369415657662549158517229838522261886731404137871499430087600568668020958871714026890463118953535514468969880581508653418704812041610439062344881017636312044375918373795040927497165599428161768498291553520313986055474003349783388083759091434494555217881114923903502123234123505478159417994476182925833780563425747347973551109303566595633310386099913850066626156604919937384152054471107980825561063640118379174655369226531274668700329651180785607947019209197094570248342348638294615683959558048691804330614948799968938652524067775713228874348644569158879307115755964151429402412252072208112003368509827655164530120618800045294627487979467100093217476071750870696972077963736064557342453837497396593131403719729316067011352949765010276614252928567793704204340944359128582185093041466323578268481439763479689685106848510131143723392393869910714451180852635070062549127250799655851296540907037573124201043845122137624351239711698103063067716445737892041050119354482039304886995755815933973022462382011436787100020314292891340059825002338136918497471835162862951351278614582751327447036243005773274069489743855780126042523192591837026614006693698520916646299330915683748473310693255675283376746006392057572014395604733120301396750320203376502463878475248885082569420902726638179980179439829911844751175945663272453760659222449888340184223150811894479465531145083768784030628365503081282412888080743254998865292944481111724703568702356443533128121188675148022024347181697258918245596213837928977862831829920642608894289900711265329413516946713454736125146613253307460883913618755623292635595490862770109201105099759447341110800203571378422407196645506580089406040328240321828107973384252786373465974757063293814149908908872042009736256263602837194849997644947120951787786483404531877350480533497955200719215546462634765432412587517452989310737453749937013970447954334078305959705374253920610374707976949530535130227557842102079228917564847770926795098101454324679938158970809125942445805656012529061741866864492209210407839341754275245781588625000146408043215073921332345048326434390515203975466925636577472636976307716227904665929182930076729627751925324239717841864449058639571575041531948666510671013553113670827647660638804092264843843476322368817221948188134244179420791729091064153627873150252763737390039451671837394891789676309709194230932201090824682967465883144141498664496639676396330015531461485374913377215144966501696852806194320169129415208294036993861475602766858502913657377415238006636449807223646056557188268878096032582496344916957840590311075814659073301480805315666499060581185398036178277594039626843885615720148452297186318296228436990017217114286261521110791756255824085153339242995239661195100373489780755482419657055930361286098498769557388926105781038751023159139810306118724346372996614735680356266739326869485666531231867709754797511826906302294045509098453728012972712531035402149480098852805487235244945551360966042504716884925082782275700614185918082715331740287294685643633434529821290617869944879073685451572473820657800993233124569631147429118525888892609035663488229382658317132131381119625660387985936782744996133538765457197544440072119225294968898252283227423863696617709389359758478143274225629772942150751084866112711317283903832147463193001024891445361247513732582916698338833836409767807584018226357676930136309106393804613162347757861623399428991414760617137356102299971895362157667205545711078492361961277135199666367926839354123680712442594624902176226463155007174355351939757237438559054639040954059011567059212324665041774463691230210104963941439516128590854995140876451602752846282422423956840292204709374115875839439879774603294508780782920439853220546339758808675580413343460388170777490254281326672557300433027368351755407033065239541542224698542737322340703812746565344580449998947745299533622576748215372871509892807158475057353054958880312758347117786418751037225517124097029926557063953588470031735504910262594807935578454130488084298429640774991176306042806736331103953747306253730566157618260541067997519314206297478743202184581912692349750977358245176861069382393992246911236167392603650156306137925860913632420191635276231929209177684850345272238272802467630356157659224477396399244600065550520838670730158815137994362454214565798539815408619005877396928793181103964562538733818932367428605739483698884820480991549800244064044651172582545626611556580213992958511585730632072801164338382072680333642934804926073708666047118748806535255020188760444185958842401178717845870951258904545763911964427977059238072753482863742715668504625938032718688641067916585392738630618406259473467526008583574956765662237249593874589885414234836832373984703461319080961650239937806333956705475832034652612786383971079893656294063390739264082916116181051246994515617304884647862125515434222377761357791191543852736728558626796901800185395023564765269159551267217525433114829369183017151550222665841034442910831090814050378365100774344393033147284014646244180425280147364174075771833789482127577697165188179655554648053159538963899563142533098167536446875316387105378379565275980336638999529660892798165664335791692643995735517144204349102198577648087109588188574970995133076873853869522452773090131598116843648723943406348721383861069063539304127950188755819141237186897306224022891834790358458733803897093515912136258441701654150462570893693067471017694380997924486131869966669288451570963364861578912475103821239378126261531763702074772420064603128095022429169082184814639455901971349367601001279671846163757941023910316425273961672780631107577311352824781216669570848164422362191219742097164257458868602154690203107036595539062265915407033741967540565398716611706291708405572601025399245133819754640969492830213002946919516905917724642137174717002435009155588886692836366609060927315934778578311427983990733302466136392342729478714484474204718255010660893841762000433725625094169067317819283484644799177254736740003846872916036365414235687766856162590354454867079370769361903228039070317462059816394006037971104586392712400574121358949829980770902511378882597851858201627007276828345916302965745079763814631099506260875109806223914145859031228418584543182223844358406351873733094263314512420497187088595260772613858603706333014277303635440318009010774971935384203367781414497996844877080416342721298129615009500320530018340578520804567840035940205064855719698717368363124172548435349159601526816529896246733662791203038358946007784860861004091201340131596367527492302053843705848191963285544675285335906229858605007170780059517411501033475887463902808922684746700773858527082855105877839288976146113875367907625994157558911397875501902190414228557603975003726084282617508837017199032920273017018659263244055527884685593379309141755424209886289636528618194645370229088410984326167091351512200221211487602352526014901021221411601483139186535129069853971677897635947158247104011902214855155257265579552793404239044492358065274092451403828106929520502217473541962213531503852968434429098971672900692532994647528072429187554177512097851651870248132360163963612854469998957373271519375355676270944148560482601999031571009517886250716761575177451068401304767425755984767408193500584728943196344309189548871631126787484918563502922569320687090027851556581150089865427200092207132882382161316248189165436382119300058005265328978871246743108173260719526448659696625192858431311620311266682728385007078509836963589466474373138414361951583733369407881883439219412766369818057310699271889516686138661185761452630876209349364052551810992381211146245259066743831197910633779389029744366951924938651361685745997955642626591000073620815644576483919371851539596887653513398432643951833979133171409418122795613654822211527006889655757007343484451557275040861023963968160082962001939871711904178786352751532422956993241963667740718747658064125935332593670642989343472196966706212402214214886756472807797306361231424563570159224663537020781643761812099233203865431674264089201816165384850213552112846207719522607119261778482053450234921760219861444265820902203277902967313961619137383071896873950870792742800495355349488724801775575426383231944168845217256123762361677575699628514896877417665805267599862767904305665006237822480133204710660129402898143537062824363105108982966475626487409809050482718562141894043309507457366391502145289091968040330160113415109968606528684041510413434404492772159878382495498264893214505941531730164027988379186040780516805070791261227403943518256411117738516650400336417705039412798119092405171200893088365181932759214980343640189877409111410274663609996606240051651098192518715048488507254617868262330696343062925945729020763771465584568514057200170446540458748170907852163800162855734570827294288296826014381174866500078707401149884539552851142518808731814230673001537339755412387311531317822209914002084734932094931728310492318937463288114646369477122401273295862950957038432972368210824014301371087905110513959823045752795841206685399514074854435306574078533619049887588537267968084618861591782595532097912376285264309769270298160679638821843486971490682585583281967992916750562945921194402166996187229055936575112845307891589365073587024797901641663677902858212298341906984650521247885718994423210956221276650439941452251065610022906115346896177538734061081160642247678544795051428855948981170261939265080123389868560455553717266617870832128689985595055786981144019534946513934447538208728226999366172771169512648410823315318566969350804716930892902161029678757587285382816832987086565454145662621451162943218258631896172843326926544488966487142084270224404393336743645354219430084453608274438801015364436491827841239627136736970103673275266502641628701850683654583494707565401107290133939035910289660595784752561953526620565825970880921679072401627078614992837791979025251963472032351191357862268738414340992051124728874493212460685090411738038645927362122086836776252046517126793383991497931351867036443810401736352967260212236386516111524216817782745829512752588760714991325143610337128548157097554599262951460207689604549843241051754265321106623578569055312745489902482655344774362765433978505799670431493012218473275641821982573865736051783036197592592722448088747593856100719401790942723999917593889607185197651207701077764940616470234927978642597687393084889229182277243884080921464137050692758496205348238667861571818579118271834763876250799493082276881433083166104155328480445204968675710326641475056235716213555148728829221222176460689142733305695533987645946984078140234621558069635669954173822256611916658659216603766094749084793600817195763318757373004914116744520949550947895556499583488559935049087935800950392470974758531638503051517040545032524031363341896616798872140958740890929570268556979041807315624417763110510153936974978441948082763880273593093564517035629589702794644257885775621498232271003853134818237744076947340402348262896799293925196091881994760096190880286330953206292717482156761150736464417136974731658664649004997389332130630176360769528133132925999523669919754983017782116528762167516805802245603877020983261062758708543863436942994664079299210197346878109043028623171756606696720745144384719319153297134181729861797378350335867089846045105776409204768543894774239170206511335811106461670322256835292475045212990927865336128276607515269945560001729198830507749637555332151181927844527517945001929735583826623193022640603653447697798063034320107122296714224776734226439011222160907455307475466494819506688633244103413015793485470518003760152832755384257213516668585081132367400433232600752974191956352499070953550557007692601261128409271123489449861710926146708042739429497365842647646664363275341175165545305778411270414500292490255404364316584162569415998662154174781254094986545457995192927105688984213905483801079603546570690149190443684495221552888355970210790807564185613014891408133135764923126461171483924887469870422385432227024971947094589281090668460497344368170795232866364498563163716250656377830380923828603805857713434846475939092002898685804538758348855401056773424048566759526205232601495439553057891344225095142786222700965710100357330046547383444982536451374355190284664411936319715462748551608165780414409935929426941190399045532282907947096162869906209850908965568412116585153286404169001712819467585211403609581535063990504647719153205863072072603461496144750450610550394311536419771482334465328252125493667321265055716358032555740147286436882063417947944424205891720887586475911143900151710110435291674545071393528165333213286087575737944663427608628197457097781905160580120014497166889574608169066507506585706382325406786790847650583997876394017753215636379366994996601558057376341104093931669193988030214785733591622103983291930141664136427800079638950179141042907965033063622359352459867493714153057853472062933661420758395668060515171224879510037343911730105949468146232922816386997005991733523767130478786221969879789035993134659099982670356066094949069001672645023062278262731443914385423852599603693024646105526586553143686863044497919137566650068094997492637931031534551264583358182066133793953523451915865267136800022350246866106353070669870764355186078393836473250581916703109622648647570437416334149914186876557465045009470205048249061973937875302631630460519157970823546618248915012723319190242109325402229731229412153825015415715296960044529150485676878683729348631811185752999923962753355715384550157699529033641466210160010185048187577069613803306420096354162950572249426648737490757330083941382734013507608437185982862449890698548190372554985645346174181150465702210533598620601238990864835129722225951857172003551535277446236775652784675505531208590094849294906077825922301114667455869234568389773053590566357700326824240345731955732045611297194131575428868184808744035903889996709440797692461156726966873091712516928890782814318284292236625410759089729998532248035964427698432241948977401507247548743431408716313017720198374555765932036136191054709806888191807221061793491797165819658289750129170658119170174812359062377569718535547935509490502163152732356905745870017316924169148110241675852910654834783372644778446769744934621553984630206373088192401830426290410600115895658622457685571136897647775225511939332687187314652151809532030471427988399064508759692656487027472035157800949174131304879611639470882474824604184344214852459660831977244147146187574653377250406290811483596718028002996289064144113956765783704642028545976939036810056552678567505014713767481353049676639808425603545233938375530547559572292565716988192190675371276380897157323564789160014631928647887853112894606326530719899938521250217186734601388389911835028036420153204474866813340499883216223365252471382644918501509144803670910771554166724132481138501126712627080543084818022693813643653499934624379376508489655160250686015759416655538352394628076856761432835316467742671613601579960322483750281266085826533696683520210587104649007842493760952798275121933526698382736241819017847772972574079947664922463877776947149615811078251483730817583445772681082497052080880838082899751596820849234161904494565317320473678297175259472411529206147186390065254785423928000328979734636578536361990412180886572445630469233224565490227050318885941857402543524074030440935336141528801749232772948170780400210234975831866380506707392369764487264402644312286489611382407344218383407787198248232614619131139785038388091671490852989977909294321941399306724475752056758480033339233145169410026762687987036783348206670406340562824673941905646386146360888513783964273772474376428596716483977529590140701677785130478173740388051579155661946530425043183520685615273114592193891395232668016279655343508321956041741563755963527193021840210252907274604570747531389573864986896045017252500166093431243689775673793952896208691736475282182016234028386798829186082313177978186509047301704069698705496267227264039789999923379689557081365107240217355101941736292187205228291401546189697891288436665509529458069535116052530395843037990306173395137525235002140288737491216583190389509682561276453546152698089895668236636746903758248714569915006674894586249418680657485756152776633067799006202547325611573908220729080257588538041739904193263420670093503339523920102805691799229705890851467395116049317292523287422077733341711647748198675046216865554754164234479943481903878516442183944693430629343987340086753417969183818823091337426729893107346720505071824658690670670245104150487799288164870703907352849821313181300481526850651542726377509505121079375575698370352498819352010947571320933464985625998126395049105304988466467676842075460745061964546596964878451275227581630529745542485024627596350833625655258262686937962255660597317106989953599351537785560793247139648871511495761875317594950715187297846528065409358654535932075002625834426079685960020225364730396325330302542735011213471358892220901718312729016868695266602789966165366523285789953939949139124146953852185983415367446131064967025901177672393922351478725076707163212336341149336212573417745440405035874083709054916697448568907198821560685344160778980577197675110974551416255345763993871956958705477700248091946343733340656485792115989497406190617193308846126244298879416122023555365506230454222966679735819632312375836085360302679265196644569824574054914823131835768963131272295867035668966807648269391390127803935635883911223921428842136254609597663706724298579814275109362434198806873040319222330512016160083920241557694956579464543971758914028670296499156021542658696152729368591964573341632590392677269337113289546983868580660705661154957861001251834927945086535424592635659611382216099531419150876937515739238777126015952007665351093359993110946732314140379217565060322263852818896557635384898418896338124645044631920704624995705758640436327742008819486469306889383427336301607295066594986213565289974054238714555191695152297257839848183688956443237171672750763827272468951040693782996660488063461781250442966235265785146105401847137665655071314154404433096940707996141126552566163645498999554062426536303298320752263985059213031146515675200469307236414650408982769803137482359331326084545652751991059415257201907289138437616615388080095216385933083652291759277895882062272066358024497720329435732053889299829178216848640625691914115809476469928484395728394795128702149524961598707388036007268664892712962627176362984230374168023128410693619972261377755088328336628554780109697893223674291106676540408195851946572764625696670496281047621658583018203823459179345646692578624773798897961401581396497216963975153714763442348607958083352349695121648337519215697050498314484438080858974314610652524860874684758035183894935255544249198784694081674705729125604348442299843376153376305098619414332471325684622595592612899149092060443718081015146800839270041262237504165029445199926954508330501239536087359435540407634791098070614740464998140282131482090903193407250316197201189862620337081668891471573919349770300902854732521355455870547005814426764293376634379550511312281343373320864937284106969494632279163239304505918341196397454371343008442751031720340037909553121855879865400081370842434664475243479184216357141942650793290757144872439884249529687382301062845449658933748562019717663460044001022314744492792463612881289773031378967767677074579888121782275367826560991608882104959113873637924095542266525429562306171771673676535080466918606406254959177257526128734280698801961289314271476777312966571997486765166625093247565159461389209894760328042076832838835112780301190881613374077415969514472847264393275413957946573791010975367870418879531241143105342348818769596522144336918103774665129442843422942871796710407898292506486430595548037673893569362555861852272510672424903118091717348919893516412906509977396316499761940960886984598854457929687301710143737815431856634838800054458463800211448660031496147033225116973787789425357140132772282310513613071168296793915021343869751979607593043927397723021657565863938767788490394148505016360659701937419807670404687517573645879477070828845492635450875234390858252160749685082164962485162675931346350716198508651489243816017562654651006689847685546987014081474351378130563277316718737170345453289657132113038756812610908772259869550144864003536280547912224146188429375232988839482856020104525567634442769068125156252422285810290147187141367765806039865559306620361739852509738320426302150739680708017652331554485570522123641836029665695304651299215117419983462366688243347148953536416337766852650670632211326096039093635058674493202256543995191115464306495778592211185863105861786379858497835474045896520258856354152797192092583231536888518271858705638650739486251641663785506056902688034636465269717789199325346761667594616298782420115724034864432682168902234821601422421704507644795411630928271592077036002721373237814178690073216835478816863540183470215239336848791993428938444694621361543389329911336112881930001727720626189537823078920214430812273963851017766769779387669956828810299905749025782161328464195607281324857940599387043503759937211717603198638610228666209154322608334504519904452706001316726964684229437904230258643592738586754295848819474939111738529399715222396934857574717376650382809245450886890197826912186812082555116937606709562233195614015057861064516315290459206861636239262022168550956529460965743126389016508708812266326292246960890472035654690331712462577921032248434396463488696224856951780560346729135581275937505815302260284237806382339979763476152641073341340602878840014849121534765622414820471761120079660958530517460574791523076256301316970586422309337482592298712920359110109286452287945187172605242210710614233570862306894891444614595237815872710263825948854911704170978657739932114763561384239238037379435916555759347216309495932175991335030189869665256294316869506268989589681213900850392913627379304134238508597758266341569041446252690231871802051697168945662261051744752031332541221699484778724169428233172800260481308930535709311986998224619235453447939544271866707053838279065455070227896095897795203314655284732204654545870525109379082688436181233381551000644502905219634474208711785693869776849402017522261693686913086138603389239897251961240254927903703362321031765429510551197689482435235366829972206928624793246683148203927607314527857990440711586167380912392624007388797093571691159543013598127928930372378625767012776979291137811071428257354921282809355711736670705421125674749892450892251860203788873181828848489123288982937430087795892088286404634684701701660152307465472899382888689881724986599861843116757602279755175356861126045706626290984754508618910403267370153093000943512843573429070189597142039066177183674321000893070319529590730282718780589111004760125443804927429411568734744100266433440467530374604403128269934238297664454450304253671465949956866427205463433037114766926444452916522021440973590885810324523111265995910314549043448025041165588745183539659339558016441589567768150281889225862287226652116389181785807804458972176142912028224977385546675964867975762205604333532248708464911235254607677085208222324313783916291168271465153836199510880929670492204422498973869993368915330805203252686090408352966500743898246608556236683169818588565596473246459680998550700493057632548519231785322759075745748702253932604976569399993131822713732541274434145359856594250561247200972869994452446057582213437178236367586780819623705418503953874884306142351009948083058114555084675245081865081541810915544172735644334408522710371617790860053763980458559421184391877583804544083089963904091903918805621573034767971186989037101085873640629763190368333116781572262637164028537163607049765440683207705788195389704618519610733836178911413330866537301164451780776628916140742966693504346953183260078451643789881052812549777206744588664432333291149301539372319567720496521641907308100865586115763060453978433038508878735193597592680485960324732027362940433020348998735413187800567866525538397068093855503020185929163498952322544931649031648802530977555646360854533903883381984340560093939982577004530123044149242607410683142391960193624592206038529103161357686346860791635786748449700226417745819597890825143432157295035019154401794109353087722553386101395267468126917592988023774273062566748234854498814356028961394521268685850313705901526400419435229517186160696738744675841861207891114547601655924315129248438682109443888399185041850586865575653779778043559257105988635344063533666386481382939662081940798772421826713480879108970176861824916235310650252571990286746952401943872678935061295101962088321859151913990768571354842544935430750960311638287008822548797224410189754807234017949371567420143928556676380533990129009640891739824706670405910472043082493397182999923571434787165700016800712460914844616158111259557541205942707706899682080306731467528725351567295709183897190796587452213194473608112445817282506489820197575059139533119337745585412504958389339953118759134641632511497970374855614195733484215227876454460786572236138203858987531781090221981695998655111203914434394765282920168016993899956430999526189422627027222497991524302869562570306996496855939899019998905643552739106013194653665775869684808103178371143184986345941350290071391437405480268480580472820775766880220465806422824149612524703187568727966585409580512819935234269948862166891370882503147471237251755919038965159001735184354444673099533479495006895721937883512265522698015715712780744379841434164107426655544488643917517449653474479631262748604205330531309756324086955046319663559646960532500614940436568113947455098116886275893706335049438485462878341972566657782447393184323233685598157001181923990829234529894686283350097442337318457891975330841615096749807262578702272636362530797458065199734711408824320939979051570394333052518559380022003905722744020971909936637714166018486222933590343335002260664265045288323021758560847902216965554210978767315052029187255640437417691129700213306771387871888843740007989448473470153287748577120324494870844541174507054520610607413470292741073017140704234128709388889176861153124857063414903649110556484663257035558718595993507110677270562481710590427164075474327573440903677094189752061795826140125310711370752000479319881518194222069642501135052936029133455233269393855954160927202150507733623228947370630642051490457401669408956999593067775325134144215611352190053073342463354598299977087997002303793084548078267084828285069349678163395459793769047023526109681417916726476972295513563804572962148431820829628509630730311700125005553277202983714797115667854723926976665140335415853783544024606552015238115927825451236843426017328447202741471747158467614952590473396106353940390573607706780280549860427494961314615781362517174098144562717500653050420367016709935063693367062330045377927573910463811522448897978944291303381936437691064786103790565680877114069895302305279961182276873996167600583242098990496933398201763688082867120884555687626911729536921973312723426460636166432469566486698603196715901359573068969425602648334258728010805023177268732975169088258471740645898779622120544160728648658229471581294770786253704661764987252435899874780390392316911749085152964979434956889714119092992502621180315995128068129050889494848607430192223964095532923421227208024448270540438766258676175319291489071203638412947148053239207828585439385236500600877987645428940731811780767488421703187188752950311895626838911659871424754215267146347334604422897711977453538643437728292982334149926319876300721361399451488943792334922167373706918139181819084642767919734875374749761430178719401182812387006537245817588899086474134994803766242583942559375006891650306739444522396467645028146970736131780657806398779538300029221761537225453837128494711752644823000956477268231565485571300415994126610929656485306316470624777085576708253997637315933010759224623789026791149937399563983833204309940717532600836218546447461383091651598081136885330040028720492228291847054561036734237788820736001126479598396113958731861046950726423854341458029286555334257215901228840968026792327849296269162908891901448890062235485781778425806432659808217822877465051413267023580146404332058951091053839978373211003698189364227801172018225779086020605801702365665091199319171498174599537283052767414126643056644588775247684799274341292892623759917830543614597363142404032304487592189510099888012303305699757878064287734824890401550499669624883998231299693253548358150863856110345209753286861167124061970535921359000951443284576915188532260846035057658302924517659206056982641694399356351640364899383664748322271840197451441361996148707005557347714111066049133417783725440964284476418453793253821767831259706820508702318996909859103876813913016481318828222089192862558683550485543329401417640069581928795735636652298651337224221014253045525034545300060903646300689851575717349910709625161448061551534236216590790335576766222953466446853883950677092476471865864335921335690392012518312864143407497962488599642858411314871414150537192607666615061071802693390024663183236207921680032123043342560100918706360351079820708695024988656412438379258360475007269970399334024813358283438142259589492261992760559869858552612167934544100569967331244115949862780228965413870006825337886169845498026248581771974359717180158936141286651446027573996180624464043923155531160655404306008164941027222502439327662395842136429897167191461676828212562319313965209265546370509920923965312530486959057176276595589820806963599739353160792086032334638008602309914688009753673023337857640798555854445360136084293135752426636379099305021363955216078586278759341205358171985961536997629279899930301647324918102540213638519134920439610804906203441082903539246374935309456954962606807246789310821810226382223140778000227013838244069755358515930017891426756198102334687794355035143924445714049205857690095011562935953019984224580823953250251755684206383385571425779094003661146952131859078925116938204806295655242125723437839773520215622264746893586596462816598800679104467836477194858968323927751651256551263666289224560497279911835771393252377723625484831904474254017214088898672129635840763645299352581691830938246213370641028759234144779676088788610853574719626661758796333269655757185917112016456300417849318156434399792703966109339937416831874979328743670605552310527641753281424346415047889187510640191829794946146847779151808786237806066586503039085705381797659782429997324983770663225609373684030963359046677390388648436570540743603943259834204293387192638497409815584269082170829126029936579321159332731544220506841976191887119613313939374259196329287034277307018242492430978785396221139684453085309282742634862581878519368950515873089298533663145658219619584530582502787479865442080956892902913097776898909915558884387951523418975357348235223197250100346443556864814241033804013160352469011476687687857536671650311998976289220329322075518400577106971627993430938700175450909033819970564778871487503136834393962025305114956614127218128294016287647426625186901334092644051225851937099729894910319395760351206249562304517023389093393056669932426257416238385403081241921182788905093147106962667175053696389462083939397391187380354697219298079869708159995933722628547331346026654244465215707502869145802612431019641483249576744133938520821343166471026742585195168937166137958092173605825647052579419802646175042966870140515769450066851352730512528249283172134238902456057726885297036479101504622971014262754069071333518045926138753749552016907392928496990763953547083986297801727991415280326952755859521834693477271057348878902187454036105552021808607668023335782316642245669773258360532895520344191027443152568359769105382325483133489868937695192685897044692648265794068180038682555072631849585831013008165009553507840227225904323447134302543316847255954241325773069446828574454205347147361114228827497571053720842620732700781106830652567970139198164044052206775431061215795771871124443680245483247087759221569393356388786188789739089067428403255503558635937076760416500355861810830572612763739680401735005753696758540899628370488651003346350352341583716558704882847739044960832260944562592665565425803388841360179990985309679223089736224418496113913338271082119187853645181319585215639761507198311602579569967170807309573282856087491108434530507772807148608477958393807989896021834581144282682080498391790373205201834793111995296332572308076213259583434236498368604065660815621335427031587465254651256324996048987776706336353894527322428310410310725879682174368355142290460650500778073573839607139822399342020261065803436729280707835225525480489628468910417741239540059378139279574559852647023109787046191638038355271014223647259883769467180610585957990126411400330763599535457006674344698393096410436382533292459856814752528930619978123945282948872120660610847815520325364787254230249019190154860163862046470474619301548107951303402565892977871398360148917407378905732890610865172184107985781263697022286665969247951060077097128733505464160315996606682169911522333121085463397995625101829914347803722052268075139437886509667140009528414595146123722969975801876406407602116140305504571003931053067850588420114983150155005032037071963186366026690012831629184555015665013131460515581058574980530064385333782717157761687978197500914616606308663323571415378448312127482091603208312377742502855834638249314378588615547086420628156936525877713867689054110641448478235516055242233872374064841480485492993291009802666809064392684512870507328697332294130441283035338989504614599661628023566144330649129822748837185572428393019636513384736719742153962553108125907136506714350208770479883221678411215636364539402398120404916827883057639152121413437651250798328688217571650610810905348988373276661147510053345134240042557286168316355085965060703297004739834754139363285714715652104093271715491884041644674765207110107483837450768420178454010130697214615690234338196861652776411764750114651985299619289717661352018636112995555742046608684984636894656482839909023953053869104046748335531956644790022777371517301022474369768701924196288438371034326249436992069427569448325994553400350533435946000805881302137202378905402557926435732024848141255800270678813685548455421230989923181121434161221668509607776383135158368638668991314560663132088895411344200241351923355588271932751834611234708455944509058742224960962554897718407070213696578411639476036955229926777894614798497153356704124735577436418704523288006506085893739058459396462635044675462090387081558097881353774247591625286721072742609529586112003329187072912187968004932788691703474552205222180181563555879846751437999852954022136655441670646541958889162131869368537987217610737587966861823459150425855540133612704991200036199196215949041710634994538676588691702762483379562001763746937860427172043066527124045972790179791570988462140671802375364623182815517402912213958446749933182571056842451056770995209112430801192636157514778660940561246543863211205644992594123753728091660033216725904606942899936822025020812079007033015187317456414402062163680888761039211604896587455150757039029417396233671842285924831446450771514217173593419168404819537678552769510060713376619380918020422388619989050817663072038485905755504036337375514020412871812502320139623833101798897330283888456125811711649518552147388414166773846682592256688103528305309072243496153377646834601670265509557230544117473677583988487759903453770061316069780807732833155391600798226848939477040983026908501300741158892457113594720986271170101757590810112392752763716065336985347786747267698495232981012508685138661454161554130843871102826498645891365075971623238527627895271412601277791934255382147175614961875278386168415813705643889294946582731882865456858101286731500719484527566529020311357272980296567443032029406740503862939530112081179388278658570583270054425595309117483696298392659627555403392939029405149984457568988982467022161933871021953745277706535028217322196829031400493617981725019332412384447454918045172744273446239307761631075910331074635722283266387146398064716105813868750627762614495804195455436138547895100910512591236816808011478511890013196300955590369673653960736886637636863356751572016678983715917316697914429350753059443669030537084981569306504238496197733765803552503733926752788428231922484322363868556037768079028257385266042298691395337032218865896192747157389105017899031722694052331934888076946220535310223127006852131450754187839055705768187292802805956868462907700148263121385406989059349309536390088094924599671941585244902041559377145007586852140375693053881397164947059785383768495204081015909677761635044309693940872641969877738265223337664651524736165865881902779665355641174539428837208245975427327160096326896337246170225527189038908643652625828446773748412260949124888581953400512859463859477176230519389966512152633168203592726063414204246057949166450006150327429829074051651521682032016051755194611618438395353797618322887531014904263495862652749456808661889819416916684578908567517983960371305213000391964437250083075564270200515272710054494951487979057503289330815077288368188877216700377837346304434132099543253534700181561080566288268115520451884042045724633209661992366798136460104287959339788094637696748696458957728598184523453058329524319832000961607243102753651059569913097524325377050264835459342088761013245775379773723523787706608394100543474480571380036580376084272005735814643564377790783490321415186781119743725975852167775504579023672100980567471239429290670981599817242853049699807542487832945742027761079422256088283912939545771078068211964787008091461313714114822375085716331732744148219028653543105763384352504875721420459764539387671597852504327382388490737831514012521315322492524906296662791630040241579045763068016364768276306664036488793209505100826559164782753270444171289418642498428024068467964214994942078772847483629883777224088918362681730798011786181006760500211168477161274776729391953575966572586222054598555262737493061931717901626836134366526612786841941074275161829289614358248110021388899940665369603302715480387647676838867539010472080042496065141192214468104638096124141374742231941806067470953068303750940102799502011582453441875786091195094194446264579384225926998380028361589667260006854986116796233814835626193765855766055549957392249587076943556861899670894017281812660404050406562837184408962937348489789416201548350924813281914663213567279634045269069593440920814198319960143097388490745230577332619962621856150307646322665435443515557325864609677181569734521648286885848126822238380835863814356756188772536017018208760819365209826016240087223035762945418970839143940072790434659296732983549132505536875619806091088244300274008829346583646131968944859077115620639422602209683475027577421337081261948528923982062679338368791279204291741089012370770949024825833673463939922596568060507467502892175598182105891088687886579789283807731267232259323346853737742775240823170945417609637406103510966987426529245748704915116702323247330219819323748054336481003290626502871069077265640060244714448104039639719966749229147690002400936142020141526379954222551739097885824964310589661576054411202355469236334982166161482729331490657344770780352736762257404671396319551341091131641722546207641355532118124791094785642281179280316378159204593416171881371392539988114594128389566046398954646781825799719048868167398415260043847653177881685858041321110868333845827178323755926179076734738424841656800274628334108579746938692942999377685657588512426614127111901228948128371843405455887619312200673000944119847403808198377156951442013125542902471897049812294307999806519186183374511331001986751509348168225178786835306859865474446775695750423156998646231359303853559113933214306424948870305243188978380501430182451100831654630001792191520911231389939503425561547787620917310129776680112048441913787493421980110286138729328637070271203132668470232511931640071575638083689017415041506550252765606839250454360141327248192658790493147184239793254587325240475191332488968678229345038533273417808834353185692356788441115834919314323818416113456882586570050280542139420371307277009482862599444925000346805240890095895524510742774703835935981956652225527557656077781418349728569442068310589470795926800865936685981113744456138757134447943443074774334342606275099244703009781571087512981398157937308696658887750432822995481196340665652394896490733825665921352428271309358383404570424767560354604220910065566920676959411045987106749287507394661576014508180968909656845637778646439256049634263493656447558063667436409467898752651087406561026681049789788768119725893377532761781331817125065313823161436063454521392331722676352678546105802094068992027240697950664822631559213107246299382543810201289769895785617584564559168528652454713841880053469805468512485551002326178191713049880438693703723273567707593063402509076724217015729477324462882134628735857938566711867472357276100181971742550138224739306922506530114093287116745996536000950649017071043142321865997836239934023452543200833892940120009342976618209606306566643812813392381251191604264998192307502606661200501207350783462164621981919627404207867771640236421048923392648943984088394067008685802272644389181440406323687847935758980227094344207644714844844113382821390227860396319041820439051992490998152336899478653864519183702064500738486911069617641484237778323708627721496304898200084492430855474216071133298917507972697575101409784336563689986563699080086793281040127810790818722258232103722591717309967368282966921377639371486721103158225726975166115908925330140478988806679515268060475369066198883703102285265773132198122899301642896493496715467044371304475076090910255646373441990974680589275864799372303460301478426247464210640757453816857373088433827252654408356023272320555512092920897559927352939857401993137642756625496261942515599392901254096383477860723541529673517553248964464373521062240968378105101733564701625036325736391610794927357630549918074627157686992849823961484172423400679595047664522680564311062565592461855376132053199926291577614765488369461274074893808098138149365142168166313023754895925348087358777350458230843182738491637288115840975189355797404101775199217158996716107962127282354595863281299619852093574099312891776522876985640293596931000810180829339481715541784164308805876668837851410218563954252623932249780360210608458781775788842167005782704505730381647946304306197190989746243412298345239140275075117224759797417750743765171502526622474010682067845237531192466484155678789023950343742188188004605531566496344592373259366811328455881057694794317107161747696953008588120573572773213800376436005973474629851218672895511653225137813989431135658947581713723715307155973948269418486506606810298972920100644176028078221519057171185022693920950074220956996196161228190028894676106604328569030354344962362100827310561821224184007752471355600913723675686882859333321717620011018458471835444214181858030307833740814804449134517535768853025819005556519885769671542635541270281482611909515585433036428574953593654175684745183508433016285645235671691576258383463963901279369146870233342400916259950966151885459935034514057357304899027474169176551789983738185689127294355421036747887825322724038384688198916387212616799286066383756218089139641830870472908815844583971995439639618311985335800348329020006142692929291294961643810617963505328797223038664733681578204461630775636807645673090387471368821824504559038707286680003242004758128074779668454259629613277314228298817914262281888282262202390399426554444042201920233092701148187274251639504641772049723286815214859965407204873722023418175113839094209856469523918028958466286151789914962707596591086459872190176268165894762335450188788153790531176176032729613795147035334322477107804717509535372837355976984722088371641028958055025212442557240892402499144917988386858498785266106012142200691314002541340643785667091695025243476996195973973866685001289197819878375656573049231190881600730401125511137676387754795807096588779284354883961982797399850855321228839333228464848464197396501664140484585932022284241358786346191287687701595001099893298745545746087898349890962296425697203963149813016083398218019401564063835912661719967325231551247680134230932468660384195332941137025640077938741582110674273560761712046268923664716312062260401880779975932066261428762422812468091790417899797516891823111034114466771312869669692562849168316065368394725882302236569848234043950075132959268457466792621887294519107016913431502202929598578259479638162114557460143547714272394037522542764459087846501346333998608134506652655245745347002077342454218498094238553259400100999443289151852125667087499980956726652892752201183920309529211480071199291487644262824307870905176284011944039645732045081299542926532120779162959541043648925978492642745531685208201391110229749035370578433785521144539645628894730454479847466507725761348952753817510394813580954416599845931366714808740009058452595236691073783729500857339846287831854191790369785203885532826693945852891667844916527069847941068491616407328134243407493049474732580208997688701922456845168130514302860395726049705937250755297907973874880209730443393021088622579419364944500998414921955959829550429758555177187484177361387710347414789287599097675989844584312301422332064625600891078284050643080212085213441979596662484041174459408317851057295218898160898761198968509420698869915511364089339604022984926893214540191305988776251938864453824277635370309250132499682627205276967236000432419564055715327938259383296755302537152988334669180486462313079920474826782327683454149284497984921085466212830244923824813682662971236347684840425951846595057031934829483570671161349265796035920936225179875753572122359956561445650177476611395520114419235242939306941190268594612344728130318430777757760371449884552554606632958848856307919732276579187095385234886378292913986289122798016728379039455688794006853153810911813192761234203697738427487191994684413618621177933018362296523190088323191070258700450662018699053186482958594736797165299688235035592615993579158421924729708999974553210478652165336318696424196690800753187322369409192544331129683374499153583527145992628753758121745815866593057456189321796805019855158986851475672412498391456616757258774703817902547080484789179990003588961156492593522969515853877468604343417424997198886194664026576736116766573749412614529270438118678295639889629853490074231153125266059206558055463865621175212900100757921660429600300221991928259529832920754621691325550638241988541130338168289339716026275551978245823298790743010209998485146802482011736579381478289428757736765440012465069835111629236597054207092432638381374233021336113593927593225266699309363688649514912604159532690399261341157807821273214359027587961299527784983341924245548880368616444296608965256352682935518013618890341404646874056236335963284745860462489932609558883713579877596934892237634895478280892235431354232076955404001929690195278027292825095817685614146187994417610391249358682016444289747945034926905763494077239510353281447563476143246389540124854746286867353603103786585000545254345857552654156759613598678371915966999512284690731451573772205598887464925153713259845639924807716967759220341544123029518504255587219726919073168514475078307399640542911315977298624466725721256940994986934797771710410676281924549503440282826616460864811252386682443765085158782291410733498437599221521066722915270323366721883716021882465193296642930165002028904158074502723317457169923477112688620009215984822842273877783595502753894435483291492840080590770869237114731521638572948787752532878651949105097283072622887816402188038744041760805051715903297709819369886160929890406833279405747801012736521563201911123061535466294578266450778507250282322796631066638880318016079994293431624283902286107266984089700402805829542608341474035824984117360731452271018902937853103755292024225760202268907397346010234225320265025016147240386982354858244637125858606723672551648616615840125787923437586798312575465768983486551886075910877638357886290376022920110689770392383362852736270952047927185655418172986280035215533222354097061662866531290943796960698911864970551557482171647020889585978314344766394818547371575358147372321444880088251215968095625772944767646643629989943115577213993013729357711404870229579998155633294529281904906155403718468980300928740780119255327153426718665841339542474114190931640326224820292880278607664158989466235665926099234299282052617356915601274958941986655785069159361949977006768592301549375129989777501319668166625658308266073669127752102180447194582525032576576625702894996439105905436653649974083002143337318452289422534179876103684399626928012481476744952338374031416881566314798056148159283148197769331971642539666065157272896098922402791790562728753213257341599332498291781206996332992170321902826709132240125912180211974627312520979130256083001037805724282533997429000768925578150507122223482163580226363884043950204067103536977119773259590369602987016138200953330919709975506069174684950479103041140954952757388370901455636719275596072212479999843143147615320057381741877543947013979378097961154460281522788076973011615934315784543344762297811795228036762710886674049832817209474759444557407900531319873594811529399940173658184358459555060812679607975382411359283541084768372015083554371275652623068118697219216976724973434470253583268699192701669156500666346728213333031822189373933891480990767345889735042444586729656151595650042216255806632745231882254440047370345543849034399679606213450096731805570577581770107018870558964011995911565332331693295564686430868199872031444433233706351044200176447358217360960196612847097312783723036465985894813774548869138627390838795228961219579708411885045855049238648906763695216288870365475750922876809978675982506590614373869333393292783929949106145480372751465600515723199415681121800983999297992328583070075456307057351495975326089670785846389238188451635932390140849185687427426589011098302232331692906475223753024820739343210924913994436751883889344531064561807778400401827589690313373806735584800968818168431294554579366031262424709539116231851461468220481433415510387113559845946321059793933048155840816489198040918619135263071475363348530606649630322474270200469284498899254922144370897621672273825841438571476933995646217631541229298741737239534787983714119288280108817077873352027882260248704787496129437835240732885254361922847453546820507957210064649458007356087254377371183546187517424479064984607695688305873668737094641008183795705166899603810685274252903748090824391188783142842161130047796208743667134231331214581736757538824111899669409033015072389272116780909722990503867112045685663558724017974443487793293120004640265433158501754278477642819801618408435846941765393445445554422793444881471939375515131671072530819773909390066875163141094549175747402268594612244776245019727777056828609672427375122454329362741877964287621976956888445254959688736038899255839739646305365126769632997486610716307705809495896637759595346087604255024145970753790629192733804943841757494605398957347253036372144174304738500830032994339950036578671989746478958839689472380737557321799906033060061415470706615312571291525478987716297859483450734809768524339415369992107222070965319525043959315111559603070980370856130773809814688540936949939342573127028353108283278556376890195150400446856258610832060855462387105209360502296727799932309488997384636496157180984580236170934450419189601028678288989454398479511793294270846438506548254718508991608270994822168912593143118633659381717717911038361872868397276190866276353492422616929492807976359767104539225131846925522111549945864497385245327938467133155252764094809772327551819189536822350989130093952280969274381865123077116768301631440452599864636694304975310735004902663275792985581567352212623499648375091637456576057240087452854919907159775575280008383213948816132731116561738847395757593814834153490987001320942298123238673075389375114707836969161066342714076965016457408580808797677627156250131881788404738971829744024580110690370849182508638090237557257381245840950432847375886353081790789837732109276549517747174525824306323554799526920778949636993024341264738345239503047863883579535053487149123012968120002302319813297481320736808088242879307466823181814210851542951163172359784849431829688263401935815560480340266806538811459035282617512075193893091700615067539682836624034030411352091395860422707035462481546962744725383610074201674783540124987736877139704258741555913142032009223849165595561409303590909204126297712457870259944209833552837475552780421648702553998739142684506572035339623743535484832373205058373973266343182552672351598360484927315510068700524435666704039887289254170619364773247436751076135190917668360288278603173721169634372096657181125226458624729161606799806724336831221608633191231006227702009697230625836419195797619914145830356812845259670962052163277921238541095280064170747673907591968770753486311925009328711450921902012943981131034509841448942971576275206657084144629941814559429923413570603229928672264777745992335824191858236261191637620311425735879718792423569444139878890584383346339138134457545388089903860956123373590276241667469528741444504136945865011580702614742474195125911709553682239312729607038063657015571685828218146819887251553979524416086259694869525228524525328845943085210979416265805209695557463694012439194582708159341852437771798424859797802881788516383197269038814911856189755675107754984591371870159345634733450676584151473930515202336724409468886026449327306502597108222264770319243871307994493248562902696627822434642722002418494759627034836903700592409419857750328440277252822086357927211324637674452436290564432195620618512197075120112859071177374266115098967757425582647486285977546802391946228287637378637685727183897986752207080293208767730248700006131824570057859192622051882833654732812360724255012454675854222763503405297877804853572410592988682194545706547360537496700138230224147633412938569663132784754016071263634125072909771994571646026597212817591122438541601707009330461836770708026278864276800661131961757054803575884633953579699239323089043621992661764590688518904698567206640664192080340664565577379404087834793198091032079423246313396666525807281293373114293783084573598078026468079022933514127589884817995939721369470184188822574136996344158416840865183779801154517169732288124150940032092920004700480442158133207997604212340692183701252734943881420474445970370333672253821364135248621808417486602094443782631812619352906544427687967997196642658653307901459073239324168459338853219107648275872065676564761756793634012348399007572650628595171561905167183215038667692385300456267411785332977816725319840030031581813750223828001254220456430164948967631083050207456352266222376008200734816397104678820060356093213822763354453076508189015505726793477331349561714522739039608271116797025973062829672119387621272274384331940725728278051306888525641850484412675899640384948731786177631731890441785570447431105750192126836294085669370465465062046193303402215632043983304081581783689097690018971963887746438867573938895074288741379973063723751685854323740803677515954703111484406750985922222623513748347462613358881225530343652795518966912085471323756339580767331438843310170276365726915433544111091585066243146355629110349475060573592794746434490456447499442249335731661379842707748321312275631417347332208760252093379749060409108681393381507762168775022160545581373451068931063813222182917633700161879312076166090732921157779310179612853593147349731041578560105749529582015963935439957957633028030305688511014415926605350219386933218877628250826284457499613906158550636644804053278838764338805055466267757090936925618807918140748243140320080450903124344008559758424734457637790636791363193428869648157305034217667915170862415256301986540505052241678570156822586371673365745790461680203199652322981772396682541517344041894108741484679594446071501894175001452686401371376988265143955371037741004134304301674953805960628030936974565161276697006615508915477908508959727217620377324538884118301024131757021723601336268726794263803671478598433997574879198599209941560174939409659916673897829984534704283137329390455698244697163651284047678981422437849776476803063454436093505360857934131020635587633662919785036442887845995199819286093721017630294969521380648599081381047872764540186863404346192235770642035761333435260595003526431665360980419634804613062859369558096607462268654591293207687771190532063516748341691014112510544879537919835974555415813406216786203088412354566837180402018670613086461961935689148149825238718423556268217966071276226874318010007182225034542680604619834686290745109501080670859790544981087927575312296487376818612276132231089954484533185978241944565362516909754556273763800789601202801817441486299032725836197861927478466607652114193369427954287033680122297908328773493436165321273380353064801326803266858212231781871453641713716930754701811913690334194040461617782396695822651017375154403447803901886107907527034244774838469444866770547279308277982542163362596635014018184773574884539171529166204504116801665957928098511666023544157759251503723150375359883304330879892288853171199490130016018875615246054146840828622667916315606042589538406474299274053252689055309018254992451971664336901392961047836255144967107996438846798650705744040357297978747268969804660497202907809668280751120955229791914572987431941416253537502867635077072854260491501611902102473695248012075197994401004051674859994924082228212836023215237978249995941428267174473889425744930647757607463098426265727169492166367949971525067435454154093867785134365278966509049374898480170318777065865258019798980639096232365104032684253139933818801074102117604272925494070432605382267585074956033453694211049495108592003934238131471848776271694713805274298147662889202434565310438853591141502222081348464659044585676991414731044087643319570248413000727028162747553222192460841749361953518346831851570993239307974656843373133189906720153874618835942574009780314472744783024170887298506143769377835983683250668507167211848458600979864449796642070029501834825431678413817222447139976578223925929988979554955062213807394937551755844866165081298631454453250530053401693869123952203037779107004367004572794442960077881566901426864130523196871706855293683300272605705381994557192323951653376586286540822403283994254914667420979526359192296642931397826573462173749201014570494962575494694454011427264000913972630338690112649543307211610095199644325039034249891504882539546969213593851240509229778844930969242547092859577227147050665308573386331386284056758781273079929169176840286743508846077573323564547409972895567167823317378352965370677349018137890129854818290215954494747316805904019749610035469163255041029007838840384892445118965435276610483196724011950965728196836089411723018895620980368121914032984621383576992649174216355958951017953994046965118587659529437160669737918343301591462817486821908039866535553302538700314605192488772089462658204010691409496147640581234114231590456506420269977214598945259262212202740902443424547953677835176501490534095610501642585171583343914250606891090083200041224615758659292670139917781604039294654499030199989513444211358219669661156715358345002619120668936987882549240021978978341559008203234273489178479703128192514337284815143810197995646830434503384321344722539066346959995798455317940976124685999603109941795100493620269925086619038136095863294735772668869074298704414611393679325776535036814965893647159079665924097701186281045375319373124312219669026501984206129887524829644989728922378344002153820483085868831631870582926883431451910988764207066497272114757101250933520803115775534231339466969682646391919047414431505311505999030239324182015920057920232377766116709853298100295501036500612921861054582995351712406765871018354132780086326473955456056577618078638594220980636991964794980635540892874721992579673576208133357722337313911684995032495702606114362310642400247812115799744626514248935119763837653702149634048160562563136254170877906973487161571992646043508063903716886131899522730333412968123043101922236316137101457110371026865381600534590853401261585625597942963908407612549736963043349263271270861068160483170561497030860825335454700455021915759144058411840898369400608746825382647079324190021478120422632338057938052201794408845222495261791517133872926168436178891147563114893873784934041286863599387459093081193210267679848203972905012315336101911267993540485431168180144592434428309022416817634456373842192775515536185346523570828282172132399685967808207950724865729489144643610294618044690376769888434955135288955933801689696409013045930824268150680037150053587771288370552064508673302489082988271853999726087612993257253797502074924168475781655323694296718810298910357205650189540589940166737432536161516587784493989863358927666776295653871298550034866412728157763055230299323060525424749148540175770143072910317554054408380017662052415528258956255340220303478853894560659050179075262516504422238964406158838587405122610999637439932864611064273231797307327849601573885059029538374528214161085424673531748897749993391347378550633842200757948355324025562805316003669918717732952165065807035418942972009426052549629928876507107122357348650333573198436033733891668746937072223161035838969897019544507631501613391347075626209115825095262873799399991596542608298350489502864714969627624709707938339050858159534174153058585870907670556949388926613487109847555486385173163818309017213472809517484363687524069816879980923634002583258522323905481788567250342726532895708668994129733188928355887498618150558065036068072921503832571252780589232111031379483327372108520423064683866677847917043491550607560248400732164476094300293556607495821275476768305283241065127666990782978413533470293588523625841241263930157817611897834377554001220049021048083380727936003811211268376583382766551110237231097161579321053613069751113346552935593504315436215652819709495506904798208534964013078120841900280812744783577928887667670433858204825952728839819605187575235056610581035666201353691035647890119774351260712283294894445565135482465175385709647961896952989031607763315231101719631009845361265496413581426123764872021720058533710571067028906876646081448680402483385858672358037466507324079808709117362870022363564298124555767322504690905128268705111473171058636554949876879996663320959268500100071701748604025252776811468889514171739113118385639043335348266474031777890171343773926291099100578747785589340815225546621838745575729839612849765741403643153811732765902868516543699738839891074312303103232445351587671662711407864325227381765523973016393549853203642575351845698583602881756298214981432229714312709900040693987312327170154237550649547215551286345346521452642451809200943228987809154404886574965429412355306710401230365585176291976167904680613380287569541942889677108455510756891398247695333217528856342694501649300300480703741177872648351955641995930819780742321635500916018838843921245945919982520230530111724904564829933822119847357951590927527704592893487494162401211210759686057734032425959470279082815006961832722150335975199050761037496288063940658313906856857958031760585728476657433801724962187368257426857597868884367482226315035050273230809686060762706721308282628273286626034004083654928267534209084491373108227492786257855543144096770825880963173685491847854899308771522890463276117293588827371082439602476662294801155273330218802156081581252895125596209004543553042133675580103108971468991839676649812553613492270619523330736193141368570373634204378810634844221421034277758328656860524071662861282531023816425989012457561519911897194958764852797126953673719987177366919604149275724851283097308109378836627547789615724757500214266983791702245531379305503764870064327759472323511707241945735327720223433761457794549320989569928517405459029617318548912021521284288527840185191448042456524185625340690164400773017042206799118947463846535785572311100089404590204139737377128183485930421133170459815843110979071465373082989695716334882119549076464836515875706732937239177345821771652239907798076962962790594594122234943281335938724950371717579112242140967213974461549399697526637177103655632677414014426760457160138629908216543334923584539244336162598102250800196733529713792696849856234320027372435076123970800237537887761591850310017848028074174617088078125473246283474333548413290627554862661125658786727195918161385894649079308694980351545928507372256963822024673409010723411819754952517085221380957484145085606062773169303265514897977442254455552984696257594706795923250328895258975525302007321187320585849509692205095761005119841544478486279275243548816403096214047334247201824134716191958000572128437291287113435309195705640501714507404350939574103088848364757577061384319115622098419090305255199634183793673198674135779395906766569962458478702364582424895584316021172390082034934654973491760938537492123915798775642179851376228964826724688949688060108586611231048752866520001263269534097399485360529788677195924961360844310196670131418388041377127451629961598894613824709897021673747453357744133300271981698810948413122760299160764964794459131753820071710204158451860841614824642252406928929760433111547079566722658005743782572949169019494017033502040119656917540812618326229846608045903932258298958253948203881524941961244640973174620097621620850008820899000151910384761837896597121533720860883261753663347878122565839163665237685460613410496585167531799162881591502977446120910392177610336648099670259999989705877432647588513161167904854767192163716982542618758281606015717088594814643778283683536067648923924083083944646768893614848787945751607996113989868005723177342578312383711953444088410373153897584823533178237700386742813174693220131881184531032674555000457911529374937586608954121239381184779879615638359717583189738293779680772669412955643366758985439655005219321731794066687125753075627128031286360579193145772018747480631722907571710874270742643275837523963415064815278823291616023278119309312672187013599390691406690191908370027861079620642588679437321788575632683921193853449423468088268187605801674326637055207201621926422282738100938490373487494269171208790956832580926183913335843574957599877068590741175200367221744672414395450649902109586981823372508102997603858133624987511023351532868992367675082878557392133971566638153842598168967757512133095027861974652869587305233200358027359773662024438021760133310911988811979242114397183473553399956614074937927008554453051620506383744563564946921458100957905364709720772372937625843066390904029971630184358610649927282508504537259457703528587341846319287357580110499032454792884571741609145870740646743525917230291277991454611364265073970181257509868265434058280587201403922140217704118331715515822603853325517095889362083636173784389438042127165888213650759815907331167219265925951474434990805301930543253062616272714173336092603357736505502326581032460061665997198271247611697297930518032846002231364946115744458479264360073647444991223577497768055387256958377372778274770361921405044649193653809407026897099477595039488909305467974201872555833425707685222978200641361155798687498490898604971288124583297437036293669019417443248219869096807794398650300821594071555566165003544884585682669604422715477269843302968423241535865874448669033757705302606991895647264368120579827473917233753308556489423649510736778547105497574148252562370815265089778506689698143085180542328946060204219356118991142272640515039478233582281529587134274284561617561499915594903876759969153565663270682692505740841065570595517479281498995991064411973050987889948756442007669249776373289568859670405039041020606620507591052175737489209127907096957191327941802021521424798695546850911216195034763321587272531057480728828018556461018054788037782817311679600817978071224575625948102763046026675455874457802071482652427498527357441160616006769753841093542397217438193523607265077636948498786268753597173092047771558175620914208586166657198384953999291009391649276434123212279451375984707852724555108962348104709621602150340096564115935763078552126997309593667017342854909193418085807147164789639354228744957433372786132043172570878298636658484463072139170236251981418182863776375859883996239559009978607054405433957312465809096299693059430232579915809225909656145714809041190374304851230203905095187183194009983692239010760244014007334871401692006093297191648121924172781837544280118117278436134875331086142257226390471788784442615979729627604243379907761641761312359439311712694509800832762182139316747552172410986912464949313523688304759749433621720710493507759625115222437109640997420020470757370888622104711613070096867289980878016423881751621880221814067553312740465265191611480237123964290449638293889638197820942920845912282120246813834047058268636783910607941111036576518690500414513930894064040812132829194369442660473525255788097181702534063629452300071995335991615052539848952054325351934745441476339060350503397214757815411197063276678122698208906256951040238747305664304878903337697124821468689491759645444528695891271237281287587018230160202451795088385536089634451191276789326090771808210283556412139816733756195645283958222082681387021854958655980390076174053231142768783142606831423380802930202777179864309341332233517347848222548248357342120257407449550406736805231858221677984225698251021035604103680601977171591624788316389082438209645727786840514742330931433922632872585968656772660343498582272696781461568150858005595863141958241448866061223524492238595848804405500761102013703712382816139077640155285727016401894523486544546861577437318082980517652161239273178892445029427567773849285366686039315266800945529303004383439718169409804021299288666485802126350267273570525807229162991841376035914684412066535690112723719542296597107532919945732180066628870435035897843760031678452434387428949761944347825215210085408328680784677198829457412365704859800219522238926148269935976416976863744423472893761786171606476958993058828667862469787501555344581901890499700230129472056795647763409845894354158629139579973067790257757816667293864265698849524310040123117310733794113284304202773635438851049314777336325346965225889813378704350022216682134425915153547389201868916661545796983837735640890759790693140620735414657511076477335186407839149004058842513105743648407255157908737151785662633536434378001012184852502405300263527402297165483378891046992582613554262737545957913474144414082970460611420581136961387848490684230023980974444568212097575245951450682934376636810776466558503703988852240476201925950368607517497771859636837432573850559362403935977202851323944928368368389583682090009181058780292344401313928220220358696638469576855461949573667347258806574091511085769075262736597542051898312566982729740644714760820699375456594467845693820435964089987103284769651507843576058948194308872658569036551456835970192880713388607138996475015733279165750181660483657822874183738717001598534281323784010662680930502520595215339007874413450127609516728215957608123143686964327268797242616699134954036490611238662839858665100380275045944713599357329163808610091130626842075321241522892823845983860917823080691772539286513373459944970347641925281881412306145563840473357241829904453090008787779777130238652849930418303621136796204384415263398229229875970477569618942823338442728952518436793366367520796761294170671333256927356180718315535483369691090842619627133117393221462568931301442301699334445948261064147203572058932724652770398659165429843564144446912527748528959534864598883319352735899203955265242876926308490358168106500399954708809620975027441597636484781070143722730055275081222582777374703491444581112175312120772277318563797810496734075636075722579909199640088716261650446138662244321180408909647052221200435920374331966031517070348482457042917973708569451169924310141900012442140021760565714679569195251637388935287104153060795433310539397411929632662013372509496179441549708240581235671557400399016773716985168332281930914658010424235032743302058173447241279228589098730294142167080844957013547370590541023438824068083903201576109099771478192563239726141404422536940134435024392637667699138720363790228476559180768553740960046924492386991977660818743403748733172035399579926845566838158348641785460506873402497313194829738974685410324150250666354309501871898812499127558162494586425955709101028151501680153524771948472722764472751128994168792228669647422951035076793260399465450056424624070628936947243308687632957774255041802488381382307119091597978753966550848892557386857473945337289373139514636112945907935104015304388512336197622521088648134931560614455523637466649216277746832867505895911596444114035589008471317746223887959377657301631354010812967207620403369866165924850404462971053731418678594378877237335325356174027046071299394583473433589099940865162477447626244643584890807146006163293422881162657045345497825681941546493239221730460121323277404055868415601869700164298052867917219240625988501209750944877295034690760525314215157476729594634977761652664498954577326908374504696902005259082858390657152421126298615382471274024171832101884115744923070837586801311438712020887678414851377428900611158709295508744990990461390663408934845923511389415090906580667133900161642913795580456709267060111250593214602763598899592920657130754016690886625650139664332161272210883416342411276311739046887467717162876494551603938407677633727959460057409979201864894479224791255287044000139698302266530827829575356198449131580644276177817410191814004991205550178438382991606476068764272120741563081304733339422965482230664578541676789215658784370115989342838041745344814320039702935942632211569680092342125208472478518534103761184590969293106744543062938905824130140071326303939288923493310567530654473530033710824182257410151259408868626248008927750586867585788402749346612110528443148705001768379770870152484818682761700579712854051442112890977138424009919511406846428133868007480919419922255499729826546075827286177614670805076173727066115359264028117809231051802468298549519550619798918024515972884307881855472791797232058258391634577308283163663792335356620051767502264799698924437372344302829294182795252641554538735518215309618696660324687856943568454400464002291322450354905508574112942265628586469479749757733822391873546499191205104596002881974370907162520067540936186616823505563727942024486743811289740454146751206085551304387421023438077753474609182513556745792988611754461710993811483732046113421923617293249050554233519237691233637310372982136022825163817319472313880493387291825115404984988457784764469184626124748018422763669450654082331442012196461476432572338180380494723520471607040429119087179225145578046836275765823002016055230240486793765002017228841408463938737690912894526561837831359867664669139198904780528319260627324684616627759387015204371294180436933378632271797184420562369818506433701141671205384496043947270185139633627158228825552234997002869862174083654879202227237515596489590489449371424915062011648278398673186760117757213752418596258122640761830584239135344206071066575858044970122519345901683848633440011343269958374875443066086314489237283194310211687856292910779308648689774083051462188938593534295565910871177514975849528925561494143354784054086299941735165907488123117108194088487701088765371041319964083340731417345092568992970602734235900384050228699596090946955302303940532091077344411401578061406183191424616228756819415906759666932478637910999751718335088610686889229206847149838727861685133604233616514778457609594825655747724097121770902903677054988673791995071922199273470184579728070021419899074428178410385191556935943662213543325007173112575936231282287994705747966201798535587507308592090573312361253602739094397428116379504017115783174754256851012878477986429385552881171255587196646308863725427058489261333777320694346827459300432972644302020466247580416883164365147723100778579400574840812678094394025738069551875471526311623056673778710932565310023181996477313625892592264643859298748688822386239010019200363201701314038461320446397536531588089394346830318274742135985548017800318806748273736056252438256853315454854237878304835461725919290642477389266098210135895011167887265222782073262053196869610276763330317071716868774664161508005421576907314488667084792090068450115285696987202257209305266002339186970445340678640557947767745936951631887755101288705407516011274813147618405723392276944308705502631991473989050601271356304901945685354978473223364698545013474188061350766912902457414022468707544481138451173744169179709040863933220439454463693238505906759476244033790259039987089577609208234162031196217002049401295549283936048908393784271830496819823624596189050199153645186041073203343273337096942513906086129820969239711642969021609560540940891796399442596418310245148853112858379109624210462743579042163032125224724977711557581227742525771908188805871654335933353222245525316343398345926288093719675958824617960346124307355356887554348219618321750626010269467823912952242682676295804694348039865728933302770898724522060156502358154077371989199210985106568844286510075254045461828283425187051637041801120059127706645956190023983056321490851288436674554853867647739894478538702661886003945735512303465936842689967102713563549448328653665558563611932801899220000232149447783964391805422239283179257973803736050684747943040103808036375030087185797167255450657744799429493880998552699205623131478935285471395842328673580809288260389034302522390312338694439487770927824451455978371755149746353024233816384153469706042284835458296997555626679975078436697014253981279361359860458027661300724222816430475720223696972516997596741081971575365576835589943921212103757608481372617551567547121532383758157397431599290715952659451777683062855471545867699450365399587111796426524475188057173271027840349371554461084892207457319042826828587722123355078680386363903598624117736274107095465645031590009527353591964340961626706222368345816477588333042521003631662564197600615849067966857369023406332610910677118616327308113566348059231163768153654358765876575058664585381023233783625993730714870617766555440499899108969010219674737362650008066732335677006943197783080769319070824214910605887693085530107085784553952950937926867493336266454483816066300156234312472956062934461013055422414147949034655852075915578923380929950916446249351926408933387291445872436097843842503883175034524386863961372093729373001027427258181758597015527626296291763715397525817684979582872025215191251455132615515140009330427218476840138504999156540668803749746198699084172298932968875077491575758359835152946901585606924324534756351501509716378558877724791805080120820681933303201375891190248857185580769918258952202143787314353954667555299689334646821125575961568008141998478242515023054360409738851452094905836046488783441191750260591486286094629820378346699213642226715755477551116106693569919604609562252839650665306297216361047301811226563791050427428568631022785411298836571354335230411791781010470989021539850857833743477848455127510772924447785639680454758875300110531608665474269500936286652959326066631090492950373443462999335185931717400858325477435894328592921392767185377781479968326938138831741462448841148376508788602627434319050699698132628779718671485228928283356233770367458805920223866955903478956172040046622521346191596156802020909354562890231666309288846555447015631228866399022158657648137604192581836029617307908502320390870608627626337814096167556461891282724458521916034923523499262108230000702658017611517316354376605836204528631148400731468404786169773131972191943075149907228223908726740977399670211239621447419926795047610585434064633223204236824931540028363775319075134962831597163001393008622486645137400432385960062818868461239538253810542742041011298173536422634442189870762760470656847922717300850915195782187802880784078858903038743904940062395177003258445229760684144355312363893761798317673859614065188733033933094288156171117818102231380395633812743732138213503825738749759470921300487010266385889780096897439918617593525930324165540884121729614982249315529703587073409061629295079040990064067025122897775108735694752037380815128193805284732056247914265944064801288545236806928459804497270025417422055837392197259995606155873463598175903545237361936272714738962411742101786327868810027880917904642244166611720427117223718329877082657377300963780293585064079903077485469289036293738324504432326002772058120555111672969903626121761002421278718021544917363778847873678903908971223622815915183676975253412422141014386098126399191571648594793941750675472827485938774481078441179812316821608046283297643524077404661625031427882370350272107309471167425645011479110523048020527835084697738915419826568214621295539844143709583403785993878280772723878101373948404881233915328249187424018036837024199213930629430027449135365547376347664857800940865734575234820984476430377283404811743418183362960190629187890772909961203335291953064227466486878726823960009752937078386677726507449749331529225634426285598265585647719048731221038773195292198348276144700049505013178842215672349564735298267764947330275216832266378719062840022880030766346960180601784618812967574344162379029196120937623027882765310527611321014146381715943734495552927855129136662928567553163736280312645750483057213845373007890122733659503407648758117284052048732962684017784302867384655888504493251609274091356679056201301904616026921702203419491923008376613066370315126817542979998520694485513615164021530386615032789068452007439745403320005030737503314842174041188194330062417847830752721135480670785464884720499105990400692674285832931314810382936070407685398852465493457058967538583791986159871514624681915131574440506253424284742990408110273610705101487592424227259762972270367544540248707649313066619486713028149131530940144921239906239256757680021749536347684407005756865531601483028280154018656711508937326619906998034467671567567219012596084119527781191519413300871868477919968341702518021808595067885956822942024021189516836148278238798998178018217205126370502077552963926676279999864084933770730828886845157696595001570887553036176089634179251384348081785229172420131385280591121350384567849259680127115417146991711780956739840440891028036631325447858878637117145111577065070247679068218824370980322548307430253450200968881136212264603738126842748771067611918415803533581488808101630866794388468802678475070019016923060873242573499758749460557246562658213757354289062496909244487331731512959273704706167020790286171587149439957247838469432585902731340838968942652241261572506810379400161169888019033493533222555697407216408395124687602329568439003678386927936571427691653297726311317299450750615519762689866180007322583363947137616207564536715406483507344875888528886588655066971564486281308826417874511093113462487359908637124205597542542596593040667614852369687240026451025832895812911737659657192043963534016549149974525688785507257075042378193190117568023147948358512108820725440743440778508314276836843149082944874031407948350984768878387689020857005901470620264646093977554104423302031400973321074387680276093422323141900322369877051237996905151151947972426929396706086002111006860830312952107923371568817813892021159119647020589735788893011935858206657051572063377242122132138109598299490853324943972435123205625859222278533880339558269176196326306594448228243839456663835815792287985952047349544696417473349438992307062608557591773554890223593205171937013890830744910163091460312413883460043807271966761495361403097494693969125653019704839673351961106292149455211739034133937094551419668248557383914763631146914440717183975082800165132676715435081817684160533273624675779041410355759859474790741286062584137875315433440598425206798480968044772577887059059300174915623724902692027560858063370485110396061822818470855242892427878859722412418232541325123986298783568872097539351541769141102934368116732751432409964596715549119250306076004014300228195922043557331818628537521998928255481364754772304443891961128657728499321186127801981209630138974888777161570816583894407018040027673566126687726132615902989612256542036240273975479615894155404102715804031483564393696564957013789645145959193966799448546352856030320213943125603645102275699513243212437773167404165631694899675394897510157970991481340332419609036704847124285758294776444742610739147165225415751740143150414168556709638692389285491080332983286381802038108171707010474064995268049855690603445500956190054415717839764435859924679812094109365905800788066882127904446609561300962553441565928166883179783184632126401941963637302359464768642534822956406382048277884158109974497836052058243192477185539598129136942238055064933400598947940770545616055582294271969378831482624289286357325030138758785529522887086163137291416240329145924523713542534233354575472601605762563154352881037657562965780312551106949706686282310440142283516258467134747336483689489769716648364368459413917334955551897122885808546397514252502240298695970583488579298071151156622363321018925618230046095707862435571225277074311308453709597499889370726102455501072586461858934538751442969665023915121841598080827622291913589048768665935981070408206326571226569222558334795944228132287473754802469832284847333223975182182927425788558162649666683248723461334803867085708021201054504782527327734154432765153277509412931725809416812653612999148873090079022916656110982772261446829491726713213471541336448529691154209203074932429749297596555654527345723995977664848714208066567545439810623738724675441010508339343762537133762126743906917794877726494101421906052269908028101815432698748057493800443101043459128541324680612381373446368249389977958658557723015410848217114121006884176933592018214142414104590476567931817441455380458031009944952203024420692250459424982981939433059652417784620798477355101877507086763450144811823989602470247466189962602738456606939244633556623987022258100374424132636770244160981208963644068186327481059742150768315588689341088368002997731155615896936192054581756207473343462166973712247339143584742947833108582873560231266321872814908414290519818853736367814961205828450339179178070267123807531420187022562135138966484907496838408022750150674167289848089973003797067549744458715165635061047292795231071546053082842034961293913804227800367778820168887377764112038845358785719590251678756146109787485604461712338191790595806246523586629299044923711903557192762821924569535444856514077156045051084001044382769180378070419194110895306526689958839950360203171558542211394613436300583995301752779522338642384284945705011770936610411928607791799653965196085517533320787769981215807500297169248254148863299066453855512475593128014185174021362094828164068318891995549229080425748000349838531004399137121621992934095732653898998607347513336477582578990798210299209794947125205122068791029461646141300255743190082947352740837962654646982921278629096571239496769497048458415791185031138052363679178841539661089684882113406726074531027537460601099526403901636509679090884689516479295760726733532030851382974137022620439290867323982077707099123718619918243251247348685225282355673530821334970348964381924289458220505679659481203356028892952880504179307494350617912760965940985815390738444218958215646361862040412698108133897770390187454977667472710443941110658458187702184133828428340916754195801050371108396278889348446833853786830948104888080763122530965493178187377450090051351979339546491170939177097350409222667951428604053859166815922872808506115482736294772652905363263904566608642154844948945003340816207605847608662036543248819329423902431940100052361022584072604386352050777950334016669715187383518240605967054397605577897706976148606770366473554636047356323809209854953025580836357524945963751591664511806428469765201227355163561211442666714213884301531618414167755434305747896396898793237678686955802329009053312265879921127881472924858678573266838442767175938651415095608301713071471094452063694177026934108027812077623242219106683157246445592433213968090278725111840652149295286579303809655898711094611545825464304741273471867471578835646917544412313573774854295378387008197808186355699767319233668606245493605666885449647479516828317699277330659620009160187923585218932423290096143324305609575684287388971783319300005502272263161728169933317567790550166511858992414711020758643764959931957930001697278324495941205047550403053831208608285565301144960247370030993172405827671051859214606196692041045657626228269263538570833507062483303101732534652748024428166454994500080346941194388500835456401969973885611160344846364453152394128251854916783459553052001826643623427416834315464129370124213926738409262074768793537308595924837224485220686322915591873294957366838645695363883405739884341342620922033119247397056497013819993061496973718812233040964625045587519575946548194691859376881756787929902014317397456604765112075210300117239483446081614826521920806762341497490887333514128213717914210599772778277479175192448840082982861327200454963844332254006236820170489942434467499301772691773676639703218535605339523935832060340205220395005623221341119332372234101692995703533817302011440546274081774102608801252930519838961074113040061252213980792765780776886099824654369834413110426523893205661725353262595393179522683933178936681245740592096753092735331463585174046981870489171903822096449094827999402197901080037608573392670479351927747906320054137654448491007548691936180855612552452019944275265884689488539906633329491345494820122899708864967786565838229285682493624083538748854567804968989150933322740476313824030105408069152864874574582970066561448284940199638434554424581036186208020734925371789441172382417688136516307348440686275301393653411740530855082489596201706324550906678195598729527335200239062570684328288510967670139874739329111323327938452869543930125363149690384949890771264830369877783447374947899930360735235992182188526969143636759331613118410808756977966038082155485492852352573373022684815073930423018456453634742907614089107086381138678174780399029591546515736700290740166695295766069100774686140795183801269784603548572385579866933814269514947773870988716447269715545762852281871548606223444564090770897862130388304440974846478061311445458205020835943002009437791489148331743279052011550859242391734286846216597830692893840575805871262650298605053448240633219294004576568518875758924891061757104977169819269145627344773293054006183011420966981561012369698872030358097455247745204987295089405886987513798121820482349668499030923754742783485292152737789065346066616170104595447667980689330498190908041721747849967651066254736332107568753063400046011860937508778071760457176639092921023509493112531310512491771975636570429067841021042555654135230598354366354105920759604383193156572900502093652607359384423171093935701255099591082872401448721485210094865004987757949348181708582869682993214653924399666403906002660801795301326812774283626325282053581544939901457683208609860677690444705863504930051790127425912566780553090497352102446255392294977582371844483034692026052344151629863771473988214630304279879762634808057056927307112807225601940947114666798113406967000426503305709309818829470914410112118539898105815303135029912085216192317139287126986680742079865343819586503324978438845176928173366046404129235830470119562946120053239176266374735516884050091707417298269466184711125896143656270075164150346068342346066123960681685732039320636843092551561544115779845865740930499116434458456742874099649850646900525605158457751321439825051961169850247260614475685006134004369661412968208085127868632237747160186674758820283275691512965616785700002803685052370254935169706289865235508796609187333650031964218960320723960146312896970512445664051265467224965509884335671999831442356012373346001663014347532421338307709588265768056997229003286987665942087801785581460239271294286031926145168664528400672271049620627899354512760042138744639858639578712796697709493700458357295214469505240242433307038710865256530319134201690129411478979282249512106772786583495372870949230333570305638834093915571740686810999145390603198688665461008164047745281522208191959574177339181146208601604507058592366127130126227703476334385919274071885411076103835585899247290095207542760989778347076478258960703116187406211826249220159103710314003580224278064670483908404119856621263342558884291151036849583438047646068499788179778458428238412482387924623764048534866008060971076272267476222964838043731746838685099456380573007080037998144026395052777263167425896444314172972659536729159391665958430778355774271606484769862282945112854748610091832660025757668868937441785882809940522713887054097626708411938966433385146161284673276979385461887320298183239383925317186053295242047557041077358107440576510005777699424137780930843822374559147461897081442059580508566951641034190996370099306715418811087690771254617260779240735953532288427407564034865305114632369850691329112367779404086737252251773089017494276805131632513907772256325129329202864681015943749569972558426802996986850834091492726773744613293352408758945807585826760035637023163347156255518912349080899387705579657954971735066743669520348382184592183575535015096368912069905863443862173330050354941947453407380039729788964974725977980084587695093124720412317762992307673462616637585518626535212066733508606186543247330794399508839284496526461032296342828921297125696974347732042846199670242403629936904166785890819417246812423140760011573511156034908182598315634007432770032015858872392334527218640684151375567543078834742727191311526951694839408453777466923136326789209883959309503565582743467858506710092119272053076238464743975551815942726403175733802450489361626068450608173669674305908334500701593517766834551083120025958138563932725875449770980917633798851926920785247326987004905304299653411688833451203652189939917500751164940661037129134026745377516161346934669542849663266589456968407875368876553494818183183202390726303932807379779121877817195470070204971262838987772466378010964984548909245285353890478947257798562880660130684755432342638407642002105321426662686009862427642358949926261941595158566592278959173176271767784260806556017983708582113604543027242588925715302700934376569331447089426189579825775419630813072580768531416895097251128829434331263345119008786681531239846216554946309831829413321868367661572407030205876418863062298807592886634931885852676543618833817623988755148069190272827767478103762465471840654297946055385220168833350773385863991783906832858833990987243489120025163027477342745488434878127330644469809131866926603316743586395001273274108234420291076049787991916388657805403722624375617117754057321675570589771356547930828181351689145270614792442682553487204362559749578278013899157065953616878387586329448815493389006328069835860495264943927060353231305481879492117812289669899909320445860249371111851118532296074281452169348467920761693843447408775327225508278245781105895726772202764335393675271182252323284978133643900404172650635463672476818771800250330668746941981415198126933461926389368005951393881511899027436603748336085872031796428903199966131477069256741724185031394127685791727746030699779033858359158212041229875725875830730173342276604438005314675691681855756649166159819015042473682140638924758719946046175567611084437949398886434076328714798363869495567148572568866927791405407025104154062421136114217740766692280040580931104430080160924456153227927732676568942359116242113985905221676959591209956430908002285100532959631443505293394128637022918675688648522727336044098023508580688119463027198653162908717794068673102355459092549915601446565660204456467943236894440027866432599148952580288981833535822121713607039120508102947813962545086632903188113227127722571934667849428685085779344527219898269859527258543319152728843560326373819227595161390474979663626690690903853556791945511744266404288488697101590537140275066808762594186037903724176492954023280647771228425684227693321872651466493143428172350392789593635786628835871136132292068713057102029413295920720905696811454696465968875483890962115764638037754941180784942241015311370287623989372390844159154697148405140577865294362379069257194401493584248635317832310636322523083207934619609979436046294164235727989928559875026658103981247794046027365708355608484874795490643296803968500170135672606004274521055675478812072808121908935367821013646971643329160957626833952087419080050946801997396388078187439473214295809391653429007862937862806594260036119772914468848833776376990521833833434300296671220991247983835090900093427295580251430136011814725955392742143637492377146460145975405239439322228862531428413798125676181330276786406701501805719919353468332231030081933059101247091943211152763717630156774990449286438167964474568574612076187541228072071967495281929268311595331500639921808129642278955532806116397428435676531539033114940546841047109674850289548148923508795067743998762587661843215694355994969748037094186422283785724775453190140639973227474523572289899238431118704393688006785672898537478905433906346882999145245788262748539606865267503064304323963782330588028353266793558064513360284833017823409801881619539002768454665769651417229629242039456192906187087047060431127967344892260282526867921848714088139902181795730224272146278362991804689620546714885772863019297004858033740829248971368420791397241255887204360512210093546717744238462472258208269138111243016496106305074222778410602539019107074462753381406883219674444550000800284887111171614901519528082085817559325456696128306589234821293834896838029044434488653872798215249628468214325150617386869194635477240493699614267355816899080886320450981380752453403397165338411697188099662765052011541747574380427761961988338222268718883997509242714795996045218357786971166989384992742538945655624097166946782351347195207905587934892512666913954816748861677580869426615526955341355257932608675206087453946701124317640263644894730291675255085833385307237672503269501662875069728470680990377585144057938857414923562120830130292163014396639365167969648650797261314266037867207000934282630020623086186896657209718761460167540335451303391946902077681121363205040652781056109044287090696410780219084762273110163863439381900387564048376214030441910973590501800722239686022410717267558958431255955364457071095053723198377198587400199821361224463345443593163398177920963573406969404052752138190533895968541160190624769033714959731116916715331022619996595573396315567127079058230779212729198568957176275153383001217190767422238201429257419611346820451232607078795435866669232783414056847206815825924954665086299533907578251104394382836655297887837371295234709041311089159585550167259542339071075771540762574350503851971300408993155409128279401058160811167592494781058611102335970479330067414090671237839780965122288233450779895246665128914202008191658680204152541256225736773410622661631249555864193029980904870238095628462882570952169421916201645607382051883037006642956696376378762847526941460536145658384361166955522617552324493862014682978412822110960804732936799015725514828771076935671426529417803743961901167831992564657724543545256962084050067642768107993552472299942046417586618449051197157744182198888022190467289436328198020474968015580494132667785547815787159427315435992655350811742060048971276726822650325321666210432255209331934665365587134374776843943113085124018874381111036212074844891190606927404204809528949997473165844589145173658621544206424137821846579708456621579095202273099178243078772886374565976094917079907168628931597178382310357831179904856706828896105625202544675002288755892764310479623876869322672252711679571750252990287021598156684803908021407024016859230978588419871371387125501425851722924897917095046295786737305815870806102373431512831206539378371793015588352287319908936076526977179664818392559377412477970443521506427555415395177770603438982253934457503728774027169961729031726267468554702468326116989076211163718444945889586147397136115084486700952079393223775648617162514885174471405632163672432499586703374873853505238967479201374688450247191062785699551762557295771060308684688459744044625784951324844676753792217337915112497108655784172999260460631533524265088476917688722935265833831679057815499359821826453618075957046741683251467902094404442479875794670113432932206170963339355174864836452029935976486811339138532920229150720031756200134468304200888799029251943418801011880873435431595714338021516196668467065196601246652451492055498780339786285679585282801397725017868777226399439389460321943839441065479958449052361511583123689609947300553735348041946454170153551646935023521201865804090324660030648444182735036302654695508384737647735396788208882749873962764874502427607849200271438967761909144251574695093711442328738425594728988208965469202515512235605994746209157763551708772694256265757480697575472848516599942881137086257283250517416957898759780605306539730948386434152895460666778595377374864709490038459145701022051959363927883618595708709040513410846982069139024935281723306125500670343626504588903560473322095976305899169746805766743339144246074374783026047468947248611342433086694080917968594376161488183959501757482438890519568501161530582049326262772400554612372379567083081685073507623059173433044513056352923649612249027938994534424727883136152671642758310716952193872549161462806092800927347052455907565545934229480337572233666217131597759590419643225818894261758352040129738319050829994452669685428695072709829237371901881177072329832931929666664577214311801806305977922002594353693147713039925110449042886970032010213223044547267071049425606813741141335433240398751527365389383788777199269373628807383777503944021988220871160175394295862887393114407317291983914788475331115254524903628740179987616670884686257021989325426562189674327659984855026596535403458982250883443972384923661735572593791172729632967744998638668886277010374849571034765742540146336342683698421477116912333519752077817817002837099855738990018392254775050260849237132470227240861243648866809392857160943392438586009927650886238866783908620149059006381519791852856029984612919356727418283883326811227845647346560320728809957144303219366783773295076574752398402172083212807899213965264548843332896738608441936699560012293387919687762635262103331899019354435257595626271862695579809825112132461277312806131530142793897694814338862178949405361010233897262383249417492724417853198144557602070206987896775306791031102089393553491922080495486640980593148181729295986754012708945312944026855696611156239898502472690648085695504511471715580872422188480983456681564693564343515167848511773244314130298337204787049867345419804649589379741300642239426778867031280475100322010780975234582186206512770816442984621123587624274978577509211100176154664342434693751546837456800233186413294232640965689835971701661453254829945640027643875043958637381502356071656617376076748007015415766197872831305296552602023154748755654991716112621042592098637985954804224005574379607783891359260515055970099290683973184534746749585669542476747817387580093494912690086372694657148744341044670430701338392031472552027796808306167263908928934853227265881701564275746124308910075754050101911342272022842009716082985416648320013029829869663348863072753912919267478599360691543129100738424550467698481177755995576037456549034878535654983797756738418720859917690605832904229607467118761505255301837774992447752435221830302674353258123968535108594772377926103901956203693882795998041840644226042109440407835666011337267982010841294584983650225527235491327970463316027607440372497974785241376473976248862267583262639128102603284427546599454126553697151310181475969804260677366498898880709299690898080638858957092447592830012171603785721270483559871236272416871752241044664888030487165449650790657712184476350498798614160973234823683277296755644471194313300467893352853061193027802553632146070089460421047709797681969629231676468439185352678081234183970970465286766792676136247479159324210106827077322494227445500899970931306965383828866224871828960910076349703198501961413107925660736267875357204741133996843009117805085981334532739964061017383873092441217409340456953287938844371715480867332127527863401930650777441415434504400404378536158368345124944428810807181984251198444045895870144920969825511202086933864478886382397802965111965902075155810906343967875200343318135555079369505497363434827690370842432348408782792357715725220167448375643146161295054453059258777638259130338279216855481448222379953062709337227504670211857398220650558245999552223984482495822413478315281705028155234250106989733712655058087581688754677562292120168881302570611509067065840424951804115339305949738558540138034776468561792806967908191957677903038726888384910427186566337375189149600881789537702784222424705672817846270763052849382649066748677827041794121279002458346324674050111180910854944345378468706064823635699499022338368799082906724457893710864922133818459986625296856817382447823552869868355892482941908576858891025005876538263121263667887176689255848025672351820624476709708838124692678668185058828534023146184488173368275259281165275992134671580623375396637339728577374331623592277435672178977283188664052911944091000578774715407686001187493669972584914694807682700676876305407409642244386570799103073935101049782609943518296531318638070640681078903635440152236532003620916260551232933509741271378189868656474707193554924808488453869617435813341940978431653650817424365022365730489728431731304434173377439352178426020470478043159887314575633220844647361477341039711566629585032522767766990747426671889926099390466748478841454404912367563616718000789449999611947922106032462575586590880603304634559797736757881522640557900977900826919436925433808846761174542902755664483783537568642336350129055023409785104246083552787149073727923443121430432335828304825083962732060853575089776154504043486107213778144366559368368631397080486312490431542391846891841669233678809252158705049359305330738818046724842348387184992802301498894709396183826471350813761408243342745452592915475895636209851360404872424974099695767638372746035559010631693572641403425542406276490191186961213720630873424632071486522347330076842568639389056615665660002840463821890158684079118448723798649616277414667725755414253482566311668842010402123619069769278648541002555285706518468508426755613015897139538453352557991108922255073349578585981306071271856363383234960348454115129555112254686818333332418257946216689507398722813020251607648107786251904343605768929596284931083883106303593345183328730971675245741388450328816893660052176367300895511001004331785648487973131018459702330963643560803928378506063913095285334695791774341391553141597467935924858121882245900204852395378396412171508152982462556238731007879777089379475067255746856809580369291458089804307953025873976153576951080135105155105363708993395354623888603670490242393244485875840716446891379683126235009704793019173575291835300584634057481640281039602960963764851771934555302680371875818152413640853560528567095728772720421518233007568861842214007100885594338717025431387024117198224073879673676648701775430371563250872807942692562942559671085746827047632024853058380345072578921986684787327717252055216389394110030197061479947276863256032105697711362640839997569406202841352338881819024966214692536798130010876206396315103586224375946133762402216238749251924724495576581557969976423339651462614673041072416814786020356579015555464115618916646532840830559343660728426160670687020244318609369027351037662451842996433964228700026409728573490086365845924170017341383475059458501024554016298393055713297635005445683420531125765952435497814279633410760298219378492950177078474078593098895940754449636443581666812437098414656209163859006431492161694582552218428959726947200163904739204677126417229243264960241929211618932535363302276745544453084846653982568546165546316920126326677957902712800483907936270675845311814326424801434428598129379764261006043955077523633041052736036870415964199295624619695153204899452797019551432361293842590889434350251249987909241238579649251341978844059035921485160394006112433848059117771672197067245118052137255980597738048441632483085062733859768946846825884998609313977453049012364824630088015205333788465710507640880245263618127649954012346769976678580202814814198222804827358918007601180734704667921409970737223911433033234538520705584054664772921172327326343080302918611940943070660958226613936482757035308624993893885701875741735186355671405677737338907120574107456936872796393364020922869742572394498610576750171469813469261673851281564440347162353453568393060148196530772705897156106543969763943652758728879408839813280287013917214829517959005034553155862063713319799585312640104529935015627208811720808982667767959077716113881764333066810184682152154258779393117051525391545257099546583554934133427845662954998462568644429803078546941941559770337547446830763771171051051507878688481732558685197246683465740298137184269171600080114325244226111218742587050855681157725533263519712902570809916409406566304241977830350003747649800623260423997916327988679368815855819032539132260131404322513753673701975864081212235179124090878298577465770536284859880331862149525747635625338503867242281437705017878858232769990548272262083159853418828292096104001185124431053662726871098467083349133557485692795368041116160580193061814124510848674190299457110740333526477809308247182703780639262578285024032093069423591439480992179782759366529448789501913064096460777950066005129221895723577813772991271382543033667284852023854159030202974731625206269962111967165336236603168607647252344372730653511823801832810673945800085113379748588952617841258760215010753060581147682161241738340872421387042499607787224634134419060597910362751008899843870549466636498506268326842373997340674421342640625183747208235908163587283215788267875213537079908538116748733372768628570679524270047890929239122556359026285830905938186301307903834016753146700850916135868519524663355672074829622930296081099727401271162352225949909005322196476359418166806694770573789787487761660425452410565703890051383536907587109711370945967393759743346121313609361560011779576809562956008206112826577462557171817281284850909144756530630744300925770402186659289734471749149847978922143976461302323172596494256446592004428246284573147248100537151508708248946940812826144233502608343146073885506098408663462556914187569912756246602864512274081837334326991009536942441383385919417209410583882517699064808960957153698251598369036394319943073512938781331716136494697131583387941218324845886344305987830486136291149720520141974287944283690330088981448260268277430253518600173422633195188045968446120888462890719183443482847883928283298846768464162484836169505675854844525353171731872736164694272571954444230137055089853148992600225230159401397780611566619736348210732316242092635524937373272530751937243783179308991354482093100068923296657944608463885939496063465542106401629416337408962208422057997859067501595807646910637654111103894269064925247922825327793898384005324907800583875161513465013755923633652374644368547918780692767500712438833601670889112873415807177951242990596297435889606062963975710307131135669292402408776180090319120592084927636010740666395346665694070540852624262480388321943145568429322512228435068661068001848487840842742471400427352037996901682193049157370464305055979017650169795348232445505758572571421164798245446626710477568652566388371156552187707989512281944809323076718437025367117412807447124058992586836823941030419494232204278384396667426967850766437655421087578963817108205963127627122999645058656644490779435183389669675180737227822264210689766109106312145527219897172279328093553681733713435434750483231898460605277392490227807137942040084315412284912728773921805502803898283885829613151291977506249703253632567652229454666155089404951475390559309195422692800850781884931153756426678328907798017652758285695613159149987860708659311807822738740452564087163977318462976139589938246805080754640459078053223838893339575737456719250869931267137700982702037667250433410279518321352346512482863085756047603424509965181986378811084295811829025203942236221329713448096178105488278980413097661728118357940166009656986531535745818986635588737772104679690114778102054575386689063960389909752677827002028033457675302344013844338719438329937214904706742212683300768884159185223312948442985516509010400513334889532073029130891569923526039775645924170154708623749962734541115617427820767911009851922203866839349809279604497287040070799361665250380272994010385966294084223443795852207356689665658937301411501677056014936736802467513907972107885056305511121369420105441243595992770542022157122840151105520843726964382763684902915277622842708765686711318853559857269651513013856738980549954571024543440975906333227607143649191816081231525136054353970566321128805263194006276453906890042073904263127620304339133658060476292164752366120036350575773831433529022686662204202703604203015625711630653113821559244644655183170261865841843705799672925110196358868530494730412867264823108671387515382370008392789217939542293854290090950087003030946814449564700574667863575594304442427222617310154386614377206131721296043685599659058011508802633006126420332006059269790274484632470392520051150258556317234609935453243881720500675546602116259027844846090193988860291950657715664837428845490506327878649292900533605638484319521616535213888639213033281904962216532392025902318591743136830846894610189580542577575378001621929749416055270295108083652207033469922410997720222779768427528755245613059053173073718120913194110295291589996723241742550341500685689820584342178988209988219007960144314945893095305007326602286544198868665374721550400913018713612585747153967506186283283023087428331875914476979895621400897604205049993604090837318152614452605717829118683170753676741359396925651770628574797835033261133369019191758584671233072512984163674222364596810576463322609350972776247812411824315623227828244052057249864083131294068690574101303986467480427554674009689745212504429824605676448630035018690983119065926993748539412475884825775227324936400132887430880679778282117406305021048605554274645961270488443386040028840981895935279067673175436824737168249421474920341059134190772033687243750530917372774468559704493601820797858237752259172291547372926472472847048468146631647210164052910602188293098143087965023793070062044792863332656670054372445317431013954936139970392406339412864035316749213065014504936460759061161147194910038250603211739885311959958956795599116646695444557239029461936167445896751662130023790388522259275408122615762278423198623194585045653434403626666530968533533625298035067562448716051896288623199287624046168443627826036191259792361082615932279669736490843165220495254619241483819398475415680480926698668370160545538941384761593620199591480773202376248670356385804455837534136278234540153378622868485000201003444662858569457800445711875026342500361996201896669334082954181869407812099869831147408961776177834420296610607642533742185031007335673942505459807414734216376653967050047355198776091460178975756168659384334665631294706352600010643690236124139593091697467734689951870685680163079551819870526539559729026507797744919155383589924695096855110585369396916529549684750369769287105088266977377890767684675361133080758848168181987135263149407235394257923834270185290317931620524503127930250516982165811765496941723914863674319972104851868705764126665584262237007460407759854401525556356048298078926897996554928207282131894758087157337017410273522229186426990311783233290447268587513529517306024696836292715214551686953398820872733855717235426711569792679100115956439229966553916193477107971805030513897024805445540699198759317982422866450474703734089692042786681213214342527331474582515497517604450894334202403344044627029347204889452319617655367106484629172734466144815602221163318020478708515111587062025403889200784204594772195178267339378689740990269187058892753758506139698117908946664595627502993330557462116242368022671510322682581832159190572651914103257624633218688458379542727341992835174072942151236600661406049028717063529178086187774794746190884431953311962156793625140339673180811599074123704945921582914905807998087591377034922980705681284663466052853946029908375422592433712015056288815548729918352699797129442078451001873353327657786243264815194571444071344867981825665176745018571961428932849752741429751904449363138258826616210156815492908738456388429841121999555637451805007871607295241668703168892374820459805334366481528356905750852813352202755529249517562366883880969360629681497216360437239923085910919057438782656382108108510767411122542550472003219462775108971000549932392762202250596369440498089613831916576526629055712372512576978760172289996467205768168107177997958038748313823512801221345958217173541753963809670813798550008326041988288937465105713224402499649470653393836460629157198906180698879726983030280050509349889585319996222089602935012521932937487321799825700927960448568872813761789738689360846619455287599785073684784086326600605129832515692614436103777507752919036231307797521374126351395813220951547581620271124958829280933003883116214995917923626970537731025905166938983879101220312079881931452432369475266155422534801848645580973224419788705583282684520658216877147312582666277784696522347087241035425961374200046599018410201790564877990307645271973696195747467812305230228565428483363206456196964823423712775649754133538145717400346139224887670549484868942591908766146043667685655750814959326098944216416625027938064739192239309177084867347794290237192004065493296522567677102742479082649110302428274999452708213983042416077010879150914366089316412848236531040742277643019848993193098855372545807507956537737604268561435656694974062613551669988820336169176230777499362123628079938912740153915149626181073973613311459391848903927463443572155758006606607252824131725689277439312849346317257096772355836363885022372860244130832844406593208949199380444877825215288304457450510738180925565167162880299709140023974542748567886105032695310582680537340025366068705571046318393169167834907103946546758649729252675565764477189791549186708700391303675389688941763129175885897203971822656205549399524081411923040525938458990257004710881371055070241226543551409735945067737333884473713845312971429586552402171677757929302382822536629634915004368318998952223853124310925858706359686932029616019294383009504320281053258997189091348169388378332383280631724424199978271983888029727269795893612050634975498677651583509996734446542682606493566535598466992708170171291078644075588315211940160099065026421053012765096439088415662957450375598535514936644561347626927040850591929595844906280843523274107999933365156939847446272785479473638573690089917626366968271522121786594756183534409138843690326845709217461280595172869808277893319731189473543033649012644799785980291369190936218605894263919425636305291345376165467054534000350183583715099999308975152307518160948861505776243660576166985924855373069262048317706560651039003857441564848244262036450078155009913359463020854901385565831571280813450519365161143594114923269518952718626431335041779159287213374822830258651535638440846503071692375862778666665065970870862741958877795852447042943058884315518161304643128968879160828455667701174070438746718046648636566166512763180831684837602905124307911520628141738892641734998845649593720499712235850832105021558898426259663997899957292418706301808057744986206771514366107592138682910216166833556691541947796212426215318646847743454591789629253836568512483698177830503870973551032940817130619522293901827759839049262783366358637981083245817757399589482327197924897838545070757378859780848877818096741591577896360491355733072870559311679103433164473849170456638837660661735032483045110927734712294095447334276997107955892000585557560946334820529745184834178057288091544592106916781219863933549327286746210852756088953404327028669807363500482336210728750915538103405491673097092616367526355385395516765427292621533721141198233258186394781966871464274795661968588443097125841617100944608863498585581643261833753890582846141616847588842648201470567011426325460994275609005590533157901906220538560016879503415452779696506583519722018733969190354944498333489970321111924051691467887388539921966987548133410359792468514249063029855808299804178726135537276350224781565810086729289957105305169276769566083903847791065776873891724675801887322155494432465955199086336608877711876610469976474933265857702307443866942942314805723229651701048891114277947176408439924394154482376202060174418741351994120299611156432930923761229177768484835190380847330857408565044939299686934278571367145155568616730057621350404503840635947329579515548464369588816281471234449116442420952171790081523863946296278439912890127264234727611159278209172703475821462945532795328531469470386004171414899179132076685514610110378524529843416448030639605237912188231864061346508806368432499178404049619508187546611895216107425795791653028260956265455405513263545358158889433204370106020293971054015081522272724663945621081846882334675762857742122485719254618644522756002157939920607549095173104058616311217328319593277393703649841820500659844117937235946824072224062381259260177959434212832726922243995449356085352904165104057602054038140691562991229242502094258635093494568819222081895832304282738851103574426110524518044871731240736960734752545041000878981267022470821079962266871563515570963728835195264361551875526397981929581390405942203668475068975414045054837803631789954350074697776018084413685082391196948710628848506845177621315346559667484303089651122707274251213721520909462310450646482616154112700201109706260221936439083985517167574222209781536155778035040274772534919265311058721565751161533069966161763691629736071892179350854859281430020356616590260833254268768753113846080975310216218329067364310576481044013463800084707734696841942826827558140655598181476832315329765896061523759022807659935774094871457906187890026331233721873392450278939954231526997420898415899852896256169210379336059849471038196804763767700112805092504634864414867109741484007060745129804304410865301157446066344973079392749464637672339626993948982559567022559276509243117396115414854096941079318483171914816863232080447115814749746878588868253117879497515140824331765457129438987711910647947187799238228513103087381945332005841061009433432540608484936939914279048815218226732253888921333840652714754502386723181325914114038425742338102216682903211863194337455542245184643435397109862251205660368095579111074931539407098641376315345941111791081559246986741764746402762746519675302688259601048452340079794661431384758942712345996879436182447049736753290384581385926262526202413369570556482826684168777829325269449942390256541267850014411795051101688408025175985466004754229851887859353345595988800606938352750013467799600235554158715341172551255755976159650686786238070850465846811151537620649852033661790023451269691775581103350058310493288469103067765296389847374896324818853430477572959613793305657010139784648382761144317452495175038427714283707161970492148319687957384953054246220076683132589492990135351536252324275058944851870203249927326939708905720213587431375993063488276874578591712082310461125759910423371194488309089752131719641647351908123963591794283060478597802816784140964179076146869285099574768639591119178696584572013808087403326487275904829209182005274513630924202758129963278851231086056571748204366149368388795678882567344477441789787925338710894616079856213711215491397145607576163802550468568363478403219262429254398147970491127978034309305169570201272450359646992419055702685513753651118999058438274706360153111714427491293131871439966698510464912206258811452886897155080684328112290174112105051473221538412075354883457660448955709728293458246426779970032146550244038636943534771155267273254528943791033117416665663024060239214631438488899049480082652428332763030027519188657500908294191694074704709112124992647529948794585201988331379041378468931187504467013618147942064372297240118454745299273559303348904386326230553026948786259594569495485233383661241946081601270790378907979570502987768102739380193496521923420497843963957238573604091447656653329837387708243105518829350474337757963326853130411356506932436379330570767774886671735188682002720295106574658638276598632025426510426797753248060838500898109055041993318165987832202212289229627345210050526643271491048078800721525783160142299840309916906987508238191167802102178206784859764714734915433474211652154759140914702670090343822351300360084177544683473304663101384185024172450433742033825561885976028103101819539985850420141056424002513810191996103227550314245691448446876478331850253513384845043536238431201585934450215149733285269383463581320765795160684946969484815523794727763710632573143224984570646007995374228972202692097754966957410467475695951211743608657457876090897790835821044906444815232468237435070569359908565636058878795362719475483020202147273469196312798151002316550114366584957400035899335483446572792663042239891669154407822150019376475581712070170709201245689280866533871866289162098615726721306913430153866079707273625840386472450217844846147874548210852279001842613374242148478996849253324277824906840826187906336875905054868161350342523595665512785933146459974703902714862991885247092561811068625191020372031079746359024655665982918167623399083648870369850255332056507126606949565342896544913461402468668888610368677524170286710644439138683552290045578065682858255298742210343101737975600530723337098143475649203147252236201327006889798836032234772107246895581857224620319206451474263328701977034136020565365302063041987263465548999757308473036850396337074596444524021678521302389588634980034044024574645493777821068075646113884947958030862397115062665429802066279478717528881846500947801492641343619586447941411228155192224725873393972306925773767045787246923261584671903810368331143021269870921882801091977994792190341946134865029792134048452451414863898370371238434499195132361402092987467708634790096655201074527519009068854788534820032463879110038332023052353212877904663327878975826812809837949361618744608336637445603456876076225873013797984495542253870180803225824719408429101923603291566184865567476485192719288852240147316829037622778365503897593446597749507918099315048187014954677201648612526630086636166110713709979372654834503848985026841562725123082236050611300730837957243557641594286565952950869952110521472380902412102910082071071926221918525287449308320079422471361150907756845404621612417239310961793244009201399602572000481417410340579773175055697167133959867331109511213976822654957382870396234103956450654356798366512559271257202056734658876001023824776815127505834263472866427626776938034527951522852389049426809638150614751459436230584511915804369036925476963138039502005769897963497543097795957319028239010196901598481654389731379703340775636184789595447144248094025283003790997304641714195362378386933645383916037320252299007014276690518514946807072520058199208366279738894191561162796730983583100216368324410062979411645903989788816810597260795978014431039669756851928149100896914170675423177898010210997948903749597074870114161912933894191704266096645470582820872493054064785756279278019905383106161268389224502655412302363445861086639492781973659133464147059983037744068340669579667110911267405248210502708796415543641924223185524344210958867780291951514593865293318163846979421008633984190852183728901006950823691450226115650852187650173721847794358726048077622180675016862739411900956262812693779855704157578642940743123660753511540408862677272874997315509334635365100603139753493529401633705531514416412639737034687863936318734315195921037340369667628400012800528982239278620390280343040704555258962947633434847582329772404877498370905775585227696561402885441350179336426886183896480934497297258038360385759696763024289045004238844641292296375075594240823125867601396638813558132738913903664017781047713265151301873042284775623893869496048632925447121266790757701356168668742698554628190575696593684402676069689603023131531809899966331804069378217042310533575340965631839729884578784924837086686679746517610534785724629109506686600390832617424622554022172193317899450178373883844570843071825082120868164125528221226202104699368638211700686807001448882160150942123504455316611934265313605588599901808961425751003554236110460654218664610334209047339490925299251518445431302231456484768973071009015693906131126225844753628129543083472945557981842173358499042224683162748580456371339173419483353242275301564344569539313395564468186184903117070594322028735093531186597873679020656975650108606798462771579016153544232721563591360882276442093330333201631724047139190612131740979493640057386757363074718932618195800254102786874293455158279214436865741769626331399078461739339052496182833430675357631510845215400083300038216103736950741511097062243176576854324922392883088291399033379940417978312590405233134668279089770217804093709975856161068415708568554346400345345516819605397890011889042858106782311510297128748687417287350711166726916646020936456492332196735030804361989252294299655267994897302885555688736460164560451415801996738300056943010086049161453026353268026204328375922778384550738561358122827296262218187116146447023594526511715052873775456942184134225111187238488819127469725521488769725486654063320733722681118568824963167954560293706173301293103574926191560117021167725611832646359919799289854973326247679754796312708202993871200843926744950220776767222347142917783389030217216859121126835074126017128269664394713215045006537175083130890633387182838135846995053371731948873942917568509756897952294548314630702276107758525066552368826750600147956338386090782129239397203901057839258428838136472297196266671901238757817529476390727069115933111022977753884741242335210608179708027246966070356323403562817519718873076349027868016615019768030759312945394762832114953794069117212201556245560790332500145583917668765399285072208473782543600126593750884606990349305202332201644942562693675682911734273851868584317478400276523725239414130654590741677654202371441192346135513098761912732165257069042007870282027153898496083327212078066211348304141580350870310896708688871788662704539218605894842622489229892355417673291864774535380013835247139573684846597017481911226838621965847013064430491703893731473723298250278321803893582880816403467618985149559006985803293640903135617175145910671038055277563144971448276734681843037336994473744053556227252897866795514705808970256244135633368719514926235819717652270333304896774582696178251786771534448454646604479767937891015892886991955415548110320500195105637221058182209337920990404754200753771805731487059465139106349935637838792062229957399557767157720490671538296869507775039334318176849945758918440586147341604356655074857415580289346395774849206747318164826467926722935914823076766653378893623785197617792402953089557117032387303353826192649899993804434281471684146142725650267124800732191184339771545253248585836214152240676553718087307345944909756807704423142639949570275439602329171299979037365923159477008757926018734236614340315201958099627647274140836032066224661305097552756339881273107882858517623489702521811781985605221648192186169837776111001332496023517519815468322415951772766968805676126710331487405071657071914971846100320606008979900834992312711818495579657558711559799698505666413258272779990687774040805263746456271021377778952925532236671661861016292181352413588527408259650626703616389418936770324078013444183579892168596001363762468615078850465323149874789556874654435063300969475130125973281197421242448176771282908566948869656389360296743331360159789663082021536514708325292742822034288654957069353282726578579214752650556178461190065178010755561795314530601380049079176757885663963447381777028813208165048786014961609965464326698568683706243514247897545107538193226585504647213660602511853705376851086870959085742193945655888073578403556572548768059497637291290311488628748553185249934073679147742283795406644462837574827050507578695630390795765269145099181412516378906795042457537165593270596274950821928730661932417756419812959537495823824837868073582470960223418873454717336277485766824308422316188914895249146769112840931754648586829499793339376300148139071331112494976433546214155025936322751919811702288019023468270495236766180745760433730917589329165888285426873807118281801165531126746162046811148535579023576489580765806060313959744781216697735701484341743319165034680494564870488820876452407783886775193638087534276750313843339504965396140731466509373534735693674400780920656703141883664364608761084217429370620170441508653068601836238983230490155104346698188585080207436901954961921992669127848155533100771855491512452788144837028257011239066849189416652339952768922750772366888532418134466578486275291692877219400317441982494672176540406707960209267803921604139370898270717904586299989648194704137125372830858800511362110397589113628824196111385576055394031095541213212656112867283787190154351854470432803802172396323206602582672544055744002560949811311136936169888956876444682386401628667927902453629242447194544446724024659756507045487249035188584889158229252382016752065133665953176268682713392605521064007895857823416772369906798745277975699315064423439008571238467436997382125327189042636534514648726492569539661615405705650844120958365067508049802818573904104182418424985818811491748228808731356464688547584559570773451362485782147109022025201769226535417798482297245695194313105489927975917887148205820001359277795077226656120296684908026461962108691080872174232083266716476835225227634468526306365499972113127449581025552387794550386801975559412864311677041762353796314812398109996517489115422964648181335190538018475961948823125485398059619642063787151838621980695470033651858435408509186473015552330911393508731489859093032860174144246530130097991185459165046042067281524449011699973362013642089288288689473840710539287431163583355991279062758122993646289071665807436474320739659968995845367818885641006908412997265528222554776447247199796790212923330607117345910082141847341220692832134083702416862419056395336454476051081132473723527475471570331765204941279673173261292408233050398608285806654246283525825798920653959260243720558831359803983395711129023573286334033190150106337804860438813014880755070519615494229501497869538198834179759581471564004481736004579055960944344231990073750858153329386366621128092262043837405912414572221162715099913682513823641015293872764034882044913720220593040108157435300379227357345646757734395064891803512112723924023625509636606422046534019504107073221665494345890130592496111597504907844805500322470849149842219704888705686265549417441817219840515614647132785598533219273723598106696791919504949112700562874669660591944239784827233931537818986025939159845522793668830083744311921643808304657717729168742700980412628717335020780813752946215629618917207044847929115281373984753075879688340220181306725528897499121998735555569341822864816606371459562195362946510367948095594861537163065899436633544720117286513994174588084399252072294850006312348264562072536002765039459186947899374036873195500608683297982380663955820138322947329321494218766497740929057712142919488764780996407524272039381665185163034948634275021124862115579095581630369336921131885311910987926079657057533898395216189942689755192870725342283828135546989487784415310981791753107864853704883256703422452044115746730933723971904427078700531499423102191598335731525257173904967303934077984550156468051469693587538711720192843296792961485930893096290685921097960184864219223617791152758862531177894919216110760918046117736279570566311483532541558247847916008807036020279650394659912753981777841740913639466570025548335691357614644239339074846881097352676389121628564845604220764685087356812241320217417921806255206015014083883832922340199817470361667213480692079344656123665299187862279173564821177221500892389063214392213605238917286443943175076011866979289441947476356561237166496383524537311925223500473135198101450152934666225684561605147853833924998344503352985806194595727010933328478853217014667155211128679261729876441261023395504434117440416761694694729266865452201137254136017425437549901725388113929860443950845811535556654977670513774671134154742998024040779240506034946414623295829966758004592992870625247061492535733914539340140386678887030281111911423259882469349556901272793303327069076867683922724115059389003408668440299374102868117362266259849826428180341914204544108928852006074835734776141736725620107608511581183029588890332089114785432845410055024244220266803572887356420503143772287960851016859358584784447998525117667095021549969914427955319240258419889197315314100195072804582240409800378052126071586761502653212163630847828487809053648511629819070657142455409568163220418297839413289221069820664043970191510645017125110679672557745482782251751263655477899005946435284500072636976531216153385034878009545276252309486293440087393479984199076509183172553168929101187327620722253224194888639228748717307998632621498703005888960920878792775825264404588115375269621119367867385036645473536315035655570155076258471470698562743422994581573829558430090446846198200151407954595181694924407008555297414860940274508868689972911849486783040791097826864394261017724322010559912109967859030269347887869283092733733906886398049976970817408384329108524164802888018038520293309040235616105420779126867492996718835910142483613231667586806911101817191923285962135842325370945122025730508456341898620396751947115837556947728115873163141585554731814268035984329461423021997389665145266841346506351335515302197320011007787711719116175965137203302681918467077584206979665471680705187483630452368434988961405887383774846889006580220180953941137751404318786969976486271698139910332846420638261985669819809508327599952931505851070699608653144903291481590711675423721197435404517455680633583612442939159295129402634231069196700925707087441597551708605268515892272673881435913401717649573990215677046193197891329416944489924338574307764036176236532329723854764073550034844882248286758865840615156497921395258995129893043643167051052866148092610804702302628869219531348077104106715599632593729077739648257405180740974047748615778534268997137690768475249583085912218744191621829543992832628858622560281396536737985917312484535679874058969957731403116325630410565417876909950532485877185742187903748697570196399231346093564724969781632684394346771479676918465837509447725014051706715980709721285370797971870567082105837571815306594453979553664656247129684310613406016813250437939764019365802774418869549904062309835933848815884887617217721354228559368759720531750397875129544318570628384366999168842350889064795412256399227525132635482168174220470561816623488681694677834972961630191846153496228853002656621051618626187893896337747210450771022354403807628614658039147993330645752958326517470171416453818518631846883821168865497602842674842589767109136990361515411081472434980878774670054890647363089398983414045208018192551253836695614106404657415836219645551682218002314258490624491501589780031420356790590620461528661499413313913470355658226445149938837488531701282201677937447722236330822097356737361713121263348592420055210305235819847692479944168109927583760864848275849836123934044681343871127329796851985139661860567509921092643833405579341811811102004683959166908927962344658112586949360871885525842952050451489146208490280875025142601319278318799277219028676746802363347347501567065269996991255267441512815889679662410018107739829967865362472377743854833528079243419580137576782629479436184005695853195956724306796566429684479971554514913600059706305492478832144472437380625681062735897278115825154978285824394753507032198442749604400439730834998492489597596545951471108363009114001154666760171250533368815428687766230776930321069084106457621085199714922352512510025067657246733291272168341552703678305196965119272922677133406450571347408135882906059714361964021854626983061775910070089551194743909226807765272918686130934677799601562945823670575562381513514355026516530334295772566118106629520688514113969101654107952922821518429990828687883616373460574223512867543966312891613913682604291457099024992236819798113023077942737458394293180922957017894764461021229307060173083981588211892568672401635624623397350254649271998327162128758475959873270341601757938223661127240361022631131759080194110647253907779272704369236843759909811587102893418374526280656591692576188566349370013487070867981369094360609638747795061347744977440091840725754951685147534693369143017125989725511823487756108556320600787538036481088397806098314540371342848306061389095173496319118913101906455232489433648769862480824654760066482273093448830126949039939883876294394168664367613161500869874113831094572145205262234154951836411091160706171201595006992543149917503680735993681452680552787261800977931498384720963119208147957579627306897842161139208188658748902876495053109106691497082303928367722799314803916874013530259017154160999606806215603280537284138777348881621500104179991635420098285662633634033780085283660006287809022336769936849480467961764355146039294577649406729648432856731300089917210220921394763887175456999257399027397869789384183588616512960497439428550283202303594174356312927745909995838166472707520580532364205697071245507004285449955371500982333166167499662605883842845701057770664526065329297841950620649561479904321015731502331464604671860323000855053631392237880394526155899672360950861031663756535067268798202162691606687275514497866645333501380390457746828212285777978570828876820271808828689850115160119159045849194204429840410377711738547975792628510523206956967822542467745516886627286294309382390669902433952289049128114093036867457174139642401506110152700181557966953878347808386147672802820894715188553148271373650620221786546759991593306061909347494410357696521873377348519588563673777279910627592530271326537850839978865232900597218522780613065924641338983850683786968563812167801935547946940966417107124939494706170383477335667011706438659925182888016440282458326851740399287182419257618629361008727321367659155985075135946090592720485930717780296658919283617794447087236928607814925259061000653863148325874854886415988711852182236334865040334295058718224110634389956455307761089344274265894534842313310724448415041521563370156859923080657439683148989933839012653996532132850959286365219413658004875542745102972775873159918342322344598907362064866951504659377774114250340767765240703687522356022308063303280715754818929129951033113576655609160822674860352827914061082058579732843573663699666438789829877653477207684383271026520141415176174715492444833164508604796452403452111320214212742882748917555441265189833883632620283639677871172096453222957965519343221801204924585356437959180432938180739463038903720560469836531048425687985839086498673031603666997054010851245915655610040706923653419175187022591140728805009464579687503552971111281466596063815375367675430968302814688437787549675965082922012048513874107168209533086287951112837293951262054185421963658037082493421243833191072687898034829234369034046080069077782466821860431374600517106768350375045541253915158480143667285435832334328645347927581487419993370218944916319544671604879282025500774074308611816446304969558918832695102977653765110458488662998638257406694143565836303353583687812752296252332142569807061245128496194649462592150487539190544909597766185877668463364980936172056319674730135677997258512086473053206709979523595540548190495198198552083623335108930899751428395967770372443587689202664250176026339014043410885303541011884762586478221231597716298684320082105772334244801546215436702237567202118319865491811001609655470809414032312223734379274325173449544589475259510855862628943089672023656691779877728733492097982897409396110043623300806442230280875954478916895430049986242525462875599422520788723310744052619811157862915137474186125652648874954312448287298928892469484956013118467421373672216775503676511600561303340219581580319465109427194551639368839597721317219018140053002549426318953009562505835768987762552609229783720593684803149218637794060690458027452466835222173273376676647701061789853938941436214620991434525793283477894921289408604277649868799631707160440920789287206931585934180676122985852624613556860936070572456475092882851109126033286642443410739712708461074674040736000348979792032745136050313729548575141264086434703307760863041278900953895490023159327920941796450228097904302729553338804476618776904215130567201962397285479001225566898124191274063147116996619366976283946691688019584649362313277714883610167525363805354807773863321764659794836500686515900209032765122468878470261858584236879894585766532327740320587209978068721060724533877066619476485288114607267694472676746496999775282232909680984019901587472683941751249829151234912279070214920733267336258005021257332061031213216542611094585659814439331599781199454936184631582261566164480822422914460174206254448971447026009733166396029600956581304792909189032414390820532120854554812178636634857616334981539473668088098207092969557851845960654372011628911925894630524028011077711168475454546940162807606004689703938789571092921197504290857799468200900413215398483705201090701344145800499227225395701920693627994280539192035292913844412500446388164960433683217002374793185909993254683939424724705064121288198855358609013336951535761832727421321552407286678641039169989815881463847621040439417188403280097302339779415448855349731627148253784456305285330228036604648305069105889375183586087757236338650512568526091206902593062930206329625792684864988427571932951426419653008715214142037990020103779208100699274357161396469723534936515638487212999653792481225797585144179289075448686355640221594210742676704618629636909775465275416332751242880834231040966220147983490967581110773568242539291016807794541919193461835444195718770557377213364584924864294096973987830654914497552875508467515906753543799737887203595219439326272053741734346671514437713255966773820219368266227110283798226008543313351505068913949731476271614061282332778728765194990110702883021989912718448921479484258668097697393726807705791407907066953485188080536621705022052729149754764971089820438898111417262987936241888602318290436452934319813264529934603189183114184207747774144248954378074405706911711446436607939754229705008387796399537969128429028348872071244940759881337909825468310671104401068843226748931407779271091783984768125587345303462943399008094990183465152008333210022252185848310178417593525139793204243766519934072344850413064450703289679210455456019582130558443697909440102237601979730624513631321942806391032061644271034928786944466967453531344335827553610329899902994174654535092793893467177405461488106015795658846325453440255501057636859663005593736424669117203715901316607788233808823777503660521696174353280347160742675841466867770297851415125762717819576575841185882146393058162089922661473204513868206542817733142005492174542488463101763912954714196843297282601155967240511573564866141587435787993837627027836208199097394592036983100283570497129660631576727830641873276255610128564071223904398354139200474989476744700224196247392177047288615466075885230962332054293495929799128118290256118661735685565605685772207484047951024357789707253410376064855401586049885265094529139472405736559580774873669447872599787210790262703978810484859672818829472405658161863812784245486276695874971508099727844958484560179404906216416464226629561867449928636481902663967568375530018185595604241207486378320147536260199430801403716315929253327188327379578085322343284794369418268046444814170236210002743408269750665479987457202655602959259280885975256932183970014405692812975209930739386421822549923384375678292992991828175903385322562648861375887677096491407512028353292070676675228071221027413845890352407337588956033590917884723150776333221231570636322014745428140907310118933427487117390144293251052481698481317980295191358785534826501948065271456650689620196484526956656338911564376963831608052696410728869002903316893357109239172272831597749674397452106151600635769209648111716671654897825835061004398947782269980381572297129969734192226974703358529055257451828894713579036010036449572784392437847478820705986434632887539362839251487951169013435609900601754227361147818995924359170680815812803637923154665797329953108537654710526180315265012764876219005164705309008186574686264709412528386468938501517062887000463981998303403093507178416237584815982481392616514713958208182597051358681687509994964313920446773124543381375437622942301499790309530912185571484736029899396034373642850851924741918426198571339469638745673855582502856262515238504131551744572292072797691248508750206471544695653002375254876763575174544821432602742457238325822933713760942751753080388712346483829116514081866628537981589300587078889719996482492674707531003247110921164562385713413659653183319322362562089557409689689562475641934439675646176881769453801519880552183892153440205400601770752831298905304699398025952695495407317879565981540645480711121512405507157431916801921238877083449025655938340460373875550572685679971452656835125853332102187325329486394955117463305707584845365490365326873379753095884056764507901087516998122427147787501933551747662470367291647745543182212867682344977950308086401929821086601844173501591498622240914416995201717349007094095122471617892012834751989156232448220145857096530711830802627027853125501729316583907287669750575508489844924354498209458787739145830631495081446160307177867765128893943833545414897580839279840278437657239645647928432992798216013087425468295390640700581478814202308022681157465349599779345456551590748414888045818001822297460071480885379185575741185088255163595819710060334430875979734005179873105928587565151024588866463710726501695305420149542131254079426519235204361253358946460005862514686938754118787189311773363768204268683951982293768978904829166929621994654065940209601581557819904520956649242676564954158984419813295176168989767990549745668063252139175169422323448643127079102363608154376137813785151130461393522825360721664249755573999642982144222312533309545354568261906528744091060249515924288873903555369876922313123651357765684824758208633892290006944973439141606598407520659894223849564254203953221415080775701313952186369399793767016430890789254852704365610733632783068247360485663430715264523335784632085265705154815363048763787611002139635392595113608056570207336991837172106743299239765132544559053901233089838156090964103438969116825921203772532731159421580834353595073550277266595690415596809382003717066648361584013327226387829938495996746485844595439626074890705577781214454712580983439489618121042839833529565176715844541863080487281429863804282644059634603099973171146456513364477543230641722619613115922549093173803993532984872470596442326889569574500821306666814286857080118902638929790952287313627008733402829480678518402554611694133592811271011141689957227328017294102954587620345230425593864274275757754030372475181671850293345682985562772812620832273033864671520622796111772458477456487793006179787294457429414298954379287933637848851688553608828238071317125032198533526263399586620330625762286323471991259139624412760218020980999183865155404575947059659785924326919376479855747380336995476338724292876276709573233213158586319467735636566703367420729401289423862574897189670435408494705508095911640905154963743195385373633253308199872391713675620048387423042865278384311331996511571965661536099148095005814841795920993319974067129686079699876383306471097690412334579073073787298883504704355046381755143884649300912754864826854608455252600505215698293454463631316940180139771732456635832273242942244503430528603318385746327286814088084427178060280935571956084527331387920478189191734301019840979404401726003582973505603827313126183415335220512864915856116835707275500694909423702523818200243349903422203664421975674357728521914239518719658902956136311957899413228102300982176583211008562106733960114023685841713843735816640448659168219147376176160010501496514933816085496903504108806589425681070601351111110500128774665626740412824780796050968774095907985834098493332797677869827259652451597497901087141720026624236064936894596595619252203781056818480201069781888924437587192965969735844895813960820866622694568346829737103309676434620371310088136363854916022279149044786779264363172387561935441218049069559457991640010188127665703248388229852301924638786873468987926797886798784690617300380849070635161239421714421439022099392401964304925261872075337821472468431570716812090311765554965358359844384888338343480046852067695424418438375146972748786868501638797823246009693481660338857478157472258477399684214645731186335418738198593760127600092566136016341755891416029446979194516812676261967623618697641745364977879938359821089157536408179572535295003237470813596376672583385647952872484505167781380517243202304750915828404935064123906991566806937618132613456815127199584020681030826625733305167143969774365705083057934065019439686819091942336145343989216188257695230971537107751650410867358219308200583611707180397179724540500400281900259883476125772215612635767330540540342896265006269170780229858052308627319111194476613274382140739501286744317859892435828377635355019273426379157135866515335160983655294613655826900604695878631350475520653812816582878472578248112458524678545757238153211323191239403607107813966415293497938361378299530679480520902019805912283143116391302545675574313317003476029704613870165739655098770456118097321357552840131710532141812090120389574061541979842761527267894502558299006281175976091819293548637768879602168541880120299190198480218059135580699552408388465062605821981391853723481249696768563464922316478912890979804344268296293104178249492799349572728777841041204561462685612130234767420653785226495937149236437726877269009460972097109605292922483498872498827450997648768293867708769939759173407092172724856452913537475052891100213883752355012659687757852356378526920144117879095648331965009167889762472673792948953107390580656811085059912400817757751484013703224665994250759342954889712147363073930310697592921450066340945030379273707824107388911315677111493579677922036341641705301969900139832945187378433131082940711985495319257937736085962988283917321464608232204633910370883093724885375078699638783529147765335325412512967067133489526904473469693343559172515537919377445308043796177751749124861825066228389644494866108750260442263532040230035854025074642633844509330506855347388246429831038200321909069096564342387586472950954833386558794753348338598515786983560152682633135300291223423008959618417393428530318577320390917619850930358036432741308610027574620257012689481862940713265570264130630269111024754008593809645614926683634513504074607441539315669861385372962770861464761543078582766046013107321959448829916329752218063498486585888854203831891775261480492574465947501844015086498373182425143544218596350237948486325479608930168444314100473986062237626292106539802974042396661797677159502010736463434761339440123560539580113491017390689574166737005885494512178491947729139680188971972376593822579646087063598378713518392865762154576987679099442655964573976020249056484971179018643255411828285252374115364350022384067134889017949213038645452266555719294118232789200967898627898882427318046231039543537528984094616557451256006763551219007192176395429916534951195922595334842215831504525332626816313133656429390027731481750851742842941501562827966282471813458096310534880097733317486781616110183159743054013255522855724242986847942150262251185925796233297048076991708309704326918208586214194948778623712225168009103845481934275973695602566522710559985201449313386793755078394784478751822815094265958096421182705717378705171377209153127243560882793526482597176518842036042972180319090961440557708590426942674118358049810813480322591781822877324437512972074197594556059151822261284349675848760460329245508652979723043803950218775964485673540459934734637035366198110517561554264603992846193539614584745287503758369414107780491532715471540387519326076430869242752065789764040866503266767400229054838058279690604814879962893512852466582180971648316141270234157681804808017804025682267996282582537150199852135322178797492768265542377654150438481932876271104256928021681128360389041383065528171495497066218808747109803982773324057444672538869161135341019130646931056375577120498088144374858186888060309396098049905969515029265397210385357709805779254939181329147008623560028531269784598626059029132171253926391069705101558743753893374793570173552837675622966216923356599471057462404195154073802331873403380856590136907206700050675834937049258456758468040521669166247491341764024550723210463289029667604057491874993621569124787542310801979402011001136905620945020738626490063292432729025100038083260163031749317150300124518276732543621918309906373243622608802141025038233663089474118551409792469112481448007842298077098325404883826615322334967825650826307652505346681425186555781335274815412311796905911062623214553256644085344330031364681842498528064089658539692531922833389229802156762862820352245788275954653219636567717506625759585937929870848312238151205913683551160374320596030708727035042909122738430695430954411182177561459064415891384966591407259910060831284918415469056959378240173772898762288170613541107570370299929271101880232488779906631550195582007484706387076678385477047503829557236252595184745298091521351625984512878988548561140826596999556162420952206947137818128895305665433086667071980125316456738851348240631997780599661814092679940208557992980405040147998733650467270835657142693939703313905985739622025721327227964577889837087186343791417800485848848126195322151203074943377826750944677077550642299175198962783086589220773387131762027855685211740573458706668180593169136856459266976029454288241661625469339828637595804219465904318355685300189853701916017383009834680057856140771900343984298713805937832457095659884812346179447900736036071886814034019288872227329428538011586813794508579209694572585936075095884708179945881610193090894167162737400116656033045946691435006876915156604037393287688990367527678678247988439337877329155882348446506682451418841777852654356364694035948606623002112927403199863919052563563743400361879441148362763100352003639017219599443860882220480506737206627739985234896591244012298995092126588329975570055872478350884506163307441125133576025505604199054433040818271707426766046733723702515236322486038313460416763967408093202019701273359639381254663266521896351228240129069609684042168388193667009371749148960672730998833134397775950717221824661363254702640439544939287903236675502936963966249271138067714227852274150789320511010585764680200428334763867319582311843360078909052740821357723348918909012936867598261191757806605848590335125400469992745877917709232534566550136192684109665541532148862042119283007119581404273301295705296360735221226164382368232874784258955688644750367340518056889095387575141811576513106099296312295715740659502724506424758526067957303284597630607951273350871288590062949826146977411577949228293708334363106837181690220356112207405724994086235101829425130552809528894282388220966515479927313979685849058379616110204675137336116527570024719279726102983754937419808516382800307932659865330121521244653448802149737533930186557389111958429781256364635232777295683959516513869801055405045046600651363485134550922577303001713243734965496736918096087438588889669826367194996813853512114974617136414905092964814911947796479867251486247817585197197551158733570878777063030315674695187466730794426268023651093788183390413691748362007219094508474534748495103731414166918256725564831558053722954353865752654040348631158836047142732250775214909577943518888960360428591663300002300234853757587984018851570691183796594633738844803268194145249227209386894604848996637490033452979764297611259951301437423308108252813343092150261398157021854798660037579934885853573396732979735740248429009035495203741413468775019470587405478283691570959144963346182782022749546772816501384224370619587839276253724312259196052119547342979798558487827288822841694024790560538003012107177705169032133818507938081788553096571318270164871051160547522352670577308106136331922145996440088238550682968253279253992490252591124458211611686817947949121072659704516502161615952736885319641234327447408753686974613002225417731650229377514473291733431032445420117798545963841421375277942433518976284109778431224154058944409642353643560168884830051660551458965153252312871475425801647898748849777096779104048301470439793425352680519472553872148328890809010264897333536092907971084447896845857809220206503689025847304063335222248651386903887237435970717433796377577560476884213611017918428167792323406621304892477529823597018471344390955144742442753523988093655787099134344504235447566421091814618039382834336815093895500587048931015004760087322468643585419792701876577817830837945840145911957813812766992999937852651870058392137522328106998616544373478253556103088770165472496432299780751234873796443438098554454691461180355515852742047912613758102112076472583972759161747410143700596794531618118900937520324094366518277215442361595562908274388088059308080756330879841195133517631182326688594008626871908300654132731365154863355354223089321566228641858956685350872247248711672901338269954035124972782671303205220693607373439505825738653120615167116017747171704304046355066105088368183238268726999182760059441813612881964325914677740830369079025637476352385703295920723855338290751462016538565711638084719787835963386931205120838521173322435660982954139480467101168976666995725081030014440270734134161164238819342767720045147944941838464249197790000290515048177318665025440638514836599746791857342915264211626688042914502184300555828112196529173449178807695078152815493285752895746803643027024704627495597676926140182388013978364038665286337955755696671281951349049223836938841088628878789809324003169763827855360814495931918979143413961560349725917766631751419720999872492627384314526238165963477026091725238755550315530235721021191711695285718249176929023500025001923221593666438934634111479546388240960353396664287420123560726697546045460702452333835709242852458996530151644281066576797024213692297503679874092286683789864526978433759750927011579857494426069640933728641252662388301963360564332132651124576407513698024732005826450927548121772573535263251958900057921878383760977513278009827836262177878109178221054987978883644184967831167004459132545484901000671919024520789945636043249592130831035777589589631210063320192343344885186644460834938397486515841145122814538650552004800842843623722123685085619755343522484879826672705590023867474228721337615858464880337775494324645143313894369470786393341236577876694308520160297336114179479821778320276993283056899732770505606537499067920683476299947783169045135997444601749947993673676907978037190593769939595632494455556722010344075541948240615621784656051165749942888227302319376967299768178124226097338773260879196789680913484307811973159662373711551343363952218142218772752023912338930709072873237878495434425560597910280605548423921285493748239972737304024336455557046980533843081357070972736065685191160698672309271859093101233930964580505263049323310548701077816714365096713520538438905019658434473149776518944526858103434788503540287803314335665438193965578640607083343467833661813183240126759343260306816647913995299497662522062571615037572085808255681405833430655674646629523541653694172992048118780500904314732615738914067231329621968607136294306065609225222820620046103743681796514783351950407093162207743749380775335486395435694096961323151349726819199769722968696313395387741538606993765075469405028981583375134188606966888692639124399931536549237480592977830451145309882724175527345124567541422099790046251915010985203861520653162562231193471722923381524345846520819111745487941274553504126410300236275018809184674043095809518366523468455582570356536898786743430093661260827571354540526284365649903172197818090839882842809025771898771429411135408694125213631946095525556433679235243844178956664185333218300405903313220132552474395512084954040666200343309699326849052174473064403299553648187917224445843361041088098664770003198182276879728169210055408384785318663848978237257306301000564499163548166850238468610429688486269734379819023040602690579078098946557805614900911537842346374221422750340010843951103040702582034383937445956064964337867935136898085554056264001353080491571154386449353317387380829010494816068559659871964130029682144165283267946793614042939832906915771261419240789782281803313499069355266818385745146917275727966764035493883731540827614647035081737830422038314977475906062307374991954434584547531315528800427319722668228943277847287471619203814173046540770297211820943808092067246188743046374276839092106325745669980258566294174231032521228965224228692784273070416335007843281777376882220684995919969139685385431068824299284578717950766806681355498804003426374567653374099313538033895310028859630192167695994041159443409890253732238473212242159654481224387759093007996521491908070849184033639466740718879080906505647309027207172643129442607180659906170703646362288656163554472472053684903515193378563105947281423232890731984330013339074664738017303600908138277540917579338577464814046982317668175405039587647360650438699647717625556476517434861333323280780753994479303623348176596284167015311911780071734340971465726778211986762916275662805744977687194536882397301468283795061471565391346439988584494208870575740403009732021701518890624197763291990488712883989614232195957903201381340428906203266145620355751911113999088262525217499052601195928229087337017244201260727766852941806316283280714254970403148040931940951553233024195470708677325439808164223704991219004371227604920666559503876290515698092327420904259127802515708589133610936026108457874027156561697238647013775610791688884826231794375186880905404516182516180586921984871260426962936096109725831206977639616417910641382985509681950838416389151765512934155051186605920036748385380375697276288282647942000882207936379705394387135219597678048145136272175362332121832828870727356489128008560031093709964109230366346921508303264647957432808252293339474663163029942573006406221712909868656022708587153132572522249989873977915676285674717316248837100891387882631176915877608632706104803319020286512999425973324612899321847564995722651672121204100949247897880352797848965507090418271404598477609588778554101320486979682745593838734417503020215786255070735085117258527726943471567393480779976837183103182928627946980332996882127552706231349495969354035225364106074884491440532391010969361874025970182286307203426811742483251885998875793431594166669471231835601002700427018198038397001354597061090526902131873781523485790225076173713772884387024326756941587357155977967707802512352527818639565510159667013846629545300403957534720123382057149213780397470598903709874373567875332245110092778703783699190003266549125576577329129138226730528776633320124705291122043263508143105776096226146716279293040988455090342403736889596097690958253249481307358436257089475823432760367472446038953499286589473314208582467856252262906229047470955803942004770597197434366686792056122487548340060683333698864449989546077312761142451379532699521546218721333357545464802214912819978999643387895605564586885983885283446360571632283051977599579652702550540976943979864140205166611463221750273889924035943503519457613931082520050697596350936063520023553863878948022290871754511176820043424456696883463440080548130421610591032003889536848371659977314733444440682631756107715950332960168135294444710932231484502257994625095714825074486011432433792277186840753485223626419413360965402241816114559277430568475200943802099864169901610054526159886867374427106095079034656466583842606807188606611989272973475779744909095321194416640452846721186468934935285823123721970622818957919964160674083020285087193004775542996736878183951840470825214564577144065810644475676553577133423181329191310830747861103767791112421324783632085234157349769296518232385780828863528278491138138696486088437629743969678417404653404448463894558555711044217704962337271036862185922661209938658776205879061560984958099161129998963936467832188560039548490179738196234703940280186143091787229066307841231739426670992719190390090535753609612668163230142437861563962038800648473304758020361345359921841238056273141934978168410282503890522634114631333543002867762228952914735228026604379400384231987500511247655757872258996708344068936857861545519298798299173710630226599610214682651814993324469822485790764177165250601202185146151056761461459918801428533220122355912822950675004883350891452902162697830731937152962964649984237115798534002313190636317278081612509162221789006742762596835483699513756029630610755244875108326542685351435194926423002469552114909237494250222899004502240816298764419734739039064455524192938573015901821031529919179401617096173323609265329422392104877827472908250048416328585712578023056852395335505654834423459740402981798426262956346531087004128402775157737062125260832569667324298964254882292038930345530660600952503326438359256500381367664861377408153475172195941820171038072513652632666562803807620865112199449950025290828719376436607281982911683819142209311334185042398733503863591409499189773109500745551842277283543871939477414474408172942353508555659383831222591784724535100238917273499765009149783906805394500832690896485801732557727438894935296969156572096762518836037034534449105990810757902750787422496202669284329580466934690340005973081118540498673964826425509326567311557466542981606117259095049620370211306750088205756289767881041724668389286416519600464319017000582638033317346875465645352626195612673296687042409603135235481268881106597066409523393540197999533564725788885744660814653717566637796107731768855747025434706248907814676010368460429581354543048825632769635157339952094562030101085204819929135534190995331436804415917841641987628337167577140894332664724689833007489777084483907745125885474439242142368112915560804123447116001052065945384500176744308798094893342505698460187380933680805307851120391732836237489198700814244105585705200819354150650671121142671407788623861249138728612330893821229455932801147017421262113841963366740105584000691530866997007160766371948022418731265792704385071044865341204484028876874204255945937973348611132315094621276903377381894150957871472525801443822874323008902993284391750730545101028929513398949062068697024600832071304799446700904722410831221905004828995673710995825368565824422810828335131030645077120609226042882029639498822470864304200670296509159264087194285586602988056972913547994739680239360433892706968542860309626056321983814123045848356926857401220142586657517248075606589609970913647936377133933831668964858681347841649002880423643756530429628473676521739339174082466349505297324052442552260055438262066163327092535357724581530671097716836574350853498263714842972870890484764408749731860235372094654436013863520575665748271199885026345651238794087703296580378941458390789993694836966453230285057156097330406785584980789233151448435309572873536445111866652947759245004823870270110950340356551970065348260728665869316342350340090628663898651764513657474990134285569032854376852679466453608624136231211814200082067943071650575769729017631816050051346789586548467380839827735408352007821030616343281639927175570483630868832737206211503756185927733686975309632129982300841113597712781382218940732936751129291495898044769032959146914339797971266801175931967068643129864355988047502356627842608446466024448143935588829608103244104881350196698042480585985791700014665131669309766998266723917649732747051133788039167978362519478033317129956595832259433683876433016292417416077730590188630735901923658893898586509290058693363005654233630182578724029864158302790072344891870312562744780903594284429237446231595078744846682810069474296081043099968875671557811365168758797349718042416754539259267454627752126806885465505243502571454935543130545502943634026193862493024246834350751337569372706618494037185865162422132549701425654752652096036080068600407298262766584093205061610979613150678360723846409914488430481255851769632405724017894919774210963113446187686674912847571720776838838213208469849278962135660445146795489959849428639870598964631909159924464482345429165057035375473660223177793479641036142565087648662246867217362680635001622540602099926013497880815688102849416271801671725499103333837412220855327552353182141343262015307272284880080479094537731925449889137039955861528002471144625485719603256064585643116462075058396150450885065339837284973748776433423318881742892930649399408898549203763707806069938643621953452757237341920706011242533700920214916932450728153510461856154274884163038297035339537004794344655655554069070712897725301952344781027237421653523945393298024512065468248441814073781634278080996300198209442542620066568030889902124416885516619411560191824512532177549487639002261014153877226809998921924537574229474293993672287755066942095376067212307294231867996150107631422322012302234505427748183216500999873000718520159255487791934783284681517293179552193293529969970879706194420272926084848636571950258298582765940325151280253298217876444761376518912063005759973547516987551956677555472838136158628765188532985513620916754541056213613713031285952139159689217203735469036610923794942077842294987106473390830448015917660785812391650355385322540499936982229444430471045189586970423459806193574526722880725801510611353386012979272081562602001662494993007805906423600382091195384942361874544339242602682918670095531548871675364234316582662881116050496794504003735819763406885904896723534175882576407485942154113242352613465930178771518727292926436110138402598864350743007145033500989861452789531641541534452802776681535096020360314706607239286784118692980768214432127043596144160604772101680856433482801934269550917294473795822943381310575031791094164068550850131012016916781831741756311221817207180426651299868714384236753230325860525140239839004103921069515619619702063000865946317141983023317252495724487132500836915060116384991049189428059903370358432860392153208468347897811291928887076928865792355766521169588494047514596015580760350986273520396520335822038072081679564040791777936100547267750443026823445914220473611390035422105819394005878538338742284364745512670376617354765794847626679156010215788097094601387258976454839330484973182115509104171530642051865836172551546979247937706258584801517241164245133190506009125926122316506372232073946741376714899733047287635556757925872274476428118081174787643580947589280950493822539843820986161053365642536284585314054175556213732115306529327578335758219384688174272034404089536827373915810069644675504977441437008077546424720782569602069661071130296340492340282470632326473259857814415814184377435832671915414200727339504988248363915556527171570738813961931202471056520729696833075595355189952571359251820612567460673703458606955341232313662272357256174168272692335414172024247395951101652976597862170904430631221068025566536515792867346395861604305585143826009467728986178491390831908507981948303671536906826995255587476389453668026796243403858595377790045081435645383484624044793422048992594143045646664532467739873802330680837778259645476818976899744610252285618845119367403426476786352784784642005196209359577659496706818053001211661034583589549629378244987108887372469918288443890501878522080160597527361043235632448359034374523825865155727569879989234506351861521027325594865336189822318721951736951272150070893313278881142811648274169195220980283162098009460475335449552455657742316959341212117134012542150206453693647538566513810398070205439858732879048082109205352317090200483438730514045050097684750636655932187441568068323982475187732852039385944921767962719686870589453901891516740082729812643071215727503553230807419535379918596452724172030714365594907646904637877490057130869553415369824193551614811299817553842031579325440322877250269221826069126573254209904321314811474185615973536536791211933827832183044407194186701023622104989134757309033345087193445629440160627527460148771556043118100915110215136937743648248597292027220729268218535474240401479616056420312777670295009851582836922990913971496891030244289819340812942649787504936834357724288097363250182137696752653923943343578007118080428524157732872526646664467153854470231446244927921219794542119613681508599703106412029154805935476816580763162151191507965315890711755644805146144464944517121875340137719387351134517434347896529853800569412560924708108090856528441588515993844926126461970725125270466042103934455250747677783759949864628352509539864700695072608937252852127991129367257627447257413539268962751876725427049672394313953837617353431359926620696475193424840794271137189375355364469059387161995510909200075640486246713626367253645626403926310603257956994722219716152520684971430101484002093503267867185649628715202249758305130319327550213823441820640923593761167511094922355227002999559031981131119883386319958387348466922380677838283722083356766711763735056807846650448672504772288801388680768055929389569744041283447964746793833819874399069853466357356053847010319029307461768619236380040911432628449784455494473777139014293011302825734732370395742053110894876757425821268957269853062309521382815040597586308738879263612225260480193900756275902534039897198884977687086616601563196144308571452888207463155363032385007786828582775651092844893498030078791384667063942412554878212899181587016189604752172278173974300592045652085354797003455890633609755997281302660452814628076709014401616425931266918508586093700363201331874375813320020865213710796328141518625520731308952258291727186687588582452975567275114632229435408732530393690797430544694437442856583518284271709557373953098003639695384489090910468630977844115851550502313324340200675344866713359899369126159967317389620011260176934013123482627321111753009683549419827470719505546538556143041432993740227042251427835646679823930693591835888575367127833136648216780408422903575411283127371066937262934003978521623497975114972377491697940527703985741721893586928945941632362809904849068414284581336138610392522011899705349025098733053171544921782693643829226075063938184702563425284122621475756329542714227179360008505551500023014977311260214271473369356410530542925890647890781171343117497415921886026893620789330862818882466692145292680632983760741078051309295642361475494046639160144299891508293820700882321630476055121767414112451795050525691444053947584213525295594292168679414953843474106455158817406574504476316930571549510674512194392251966818844391914825056225929661594562271116441366857746225279675807663011379517241563244974358026712160966475208084724011429834384217341008580965251612167756713707746447595181007652403544703660004344973041347177543154136121252474557237924057814990722112746932314387820823723585458369820874746445132098547734057018517505941830111750435843977027636653814593831522301165568359801675037146277203711866129963971962826793119825464561664447148218630364963757278554973777392447617626718686007719657914651767634415916550985816278518256456630502509756853949300829680877904331442557277384367195056760327498997654701496277638121096180585080952614790436968343745102027472709975382296716848579103483179577035306490388940518490556984788337302969306334268558767042284281611684176610219267055256315448166468868060384083822320627859290065712468629937944992471570436919524818652404259061915399756645525063294614390425462836848296556946883139175072947586502572018701526843814660634270068901679375258057550950423480254446531228359527914206842214003351238901482428051662535717833490681436286151361471430861700268722306041353461930494174331043546575009615879974073391636719013620853171323859747910702267761919352621015923594953537987687002370470220220335733748862412535912538086571611245217900698048147194471619695976345674032143828659651160558901942568917866566216410349866164049367061180734264554569513819225544050126339876255039253332905624401892003202031044372784294818946713025051607325130191854319163552354069679613125104283499722216923011553548462222998716145361876316863062672440588394817556566916183527362721564845517431516660143894816246548211859998733459439846881101126089600822258121923372027774441857443954411726211119616155093721950500959205517783913814147118879512317324557614964225048905469027546239177407508154252810985227666058900437802945564551426894790167486541690636694615446260445974305575704131683664319081540966389108130656881659149258881117203581027792289931056498796954750356984761503029930439714699325667761062400984054731037181244015515330031361062080065229982826173694416129075349575629417456996843203693125783082623968723913554266280644794593975496858310160076377437858887716806285025884372176145610507254347187783248454470953273807593341258981523534881008054858603743350922898109469141214337673153769270216535847780946437433676182451919266324866128483428572730472663743646534157905827369496435763371092578748354316761535886820302011192544478391035796321545449479011385445294713979858240199139138836731054568301204181256808579316414833352616761119276467996337344006580729516795923928502434249769083531039333106415387945313411010513923279259304002155128190401839462234264035581102409259792769814948376413968147372858839450837150556830138890794027223277824396406259427598698275216847267550847716355745759302909978558477661086266197346816586302998165625760957135848308593317387320001669020362967610945153298082180043187193789216750569426963707155850514832977141743024081820420060688045273084401234604560047272830459754026970591060338999725653999831136962514729427182537935236722948595059605850452705661086308520326980392857683616582895219995989162561648879312027450049970990728683766909575603022864590344247943194714504571707147275618096515391850825703697749828698803947261458253990229551572001314454301619680896658774919286803326164414742669366098168676561875117996116586327573321407484998003656608735484897082262531316094119536761964684059126603312833914866353172897766615868126379528493409634691440807464687053391646475139903653364931272007105981146371731179132838411644729092654738958156348513328652556473727883070272603410133500209493118854011977573821727859020044375802633878804138008462937422398221499424397781866060327169947813424253827799023603391904819803292328962307123520480662280851260053109577035766465868280928586845907027511113885786870787242936978759356612251811589165738222336078127668981874678338565857290814514178583998037853287403350054787050401615683328373512580787098128017613519853339752563157697979101730849734619424516698643146215144957344075862686880221430550508625818152881036303448082818185872547590138060569188177756109310030226333105592311837533965421770268322121197269397166413432100017820804930674064466109914079400893259976154160236180340462954630988074552137071064571231995296629776285257203226629679450933354810020860174768684843631216688088220014919296641834063808476147023391173543412038485658780531029680766487076005644729317346862038984237541036493509218539920891839198009163305929452229486562737017838016344799459807418961129910551006199497458405254395988192455010348646025982201347945771844637751520954174161660103781634789462458926014466848483437782574152930507130869880936207075796933554733513035487272933208932379977299163697463452762745662772641776759859178635913100167305276825193501437054311278188321840903324104805425031133711614019058995366390400264643405983644144951291121777350576833784215563068155215027692083049638465464403105154431125218589965561318196119625561064266182211249399955244933743099625979243342357247730567456358169177615598094653059887673309275645875848218117841042187509781224986792577359748082882222109210237863753262550479240937240368111011256298532624405383064550794661140962002717832063989833453941141399792162223431793777475796512044271889638230271484844066763823028852204661017619897073815565347822469766197954341670123644669742871947435704392296318000169357599248920461819931412075301393333560050589419138043400341262330612939119032160834020659119865018442528945427697125536565040508550333476781114379632574677126826156070758181145261986344721595612547996539674002391054326184575635532938650411596541217146214270993247612561079081182485722607723980766821043645635325608352629175448212321654125623045099766912319794988095724043758319273438485354824328024103388872565899452910162712688571848880689538486424765297555050639523487612445719790586801080858144946003463700073816671322491523953400113477459056357571908355481406145571195567966822912268449272667919633224608973492953301662008792121219269573366199393337501855573927922349093967460794537207317338774572524594096131528070580975021004852615369061420808542197090717739348010361655859680595286006955808014093469224709526424946636952321067871886007202834291564816751813153932199992109535248829379425310618415871089428358424135845587081809684671445142229158329653202048415093849512338878580352855236364441944914267639302896519403658447363410837222186879684163295393414020814179451498820257965829583662134460001682141920918888084583586023887474797287381221320239137381101530152491949941727280236766104226698093997237840952104739252978354618918069444504390875773135053795708636952352605852773547896479206032707015836651396903771849368045496310306759429331185241879356785955286072539954264413071726019724016468215366614800092764434538460974700590764844642043113818889055115540467515308655560813673992200231940812493710251747120409733675444190122389416316782850935158174796617085697553732395080872935707425612947940355496003934127207040783558950653709460384191232491119898657457525294700541747242016709678208649813389012772273261069639568689822522623751778266536594253949347923717398158359601037793443112405811768480987282886990967449464875108547561392726712173550071002956105373567931038497258021457421874524701026541081960750840244034554288620890763485324700190810944069934331828333756401454090955689988899901285724859552509391471130331378407772994605253538144816988177142869377578882370181524847579119622124678538771311628284984877493379375502346931051345986027141714797706990186575916824229315274439683180789793731862541895660444279213563592376247771547504794376418237898086683114421210077510403851672216508892900484688712166267714794856926947571147664511101562111306331608055896620482620498550398697122583457183544766745105228269878210350104798834394394452561063798230042592167057373132568840999332336574213527058892987583110050810735534226442467811649459593584658033129033995485890499733256248288309998382054684161322476924274842947977424750532010643142593708538821864098120142812869657314130793960482682236501154278763884051444476583223321437380374747520218041246167078871432416979057353385798094158122468037004732213859542253419516358455706207527575096351914229847921440270739612825199964919070824678090282996640779975820414375189648991940020622718640472231654163779275681179874771695411134474847735689586678021514843057022630388281177594932497769058515764296438697277225475328704860210673043460592890191520443940685896265504020940712611962676291647213317704601274066053573179008023565729421384012895697227280896445680265335409317375292525749475199306232840652391863652528534810891224547256080794515781091112871017221838456185308674500709471745089956898911267327909015873817550486742216687010023570587287448759939391805016428934438333641072030917029036188366167747144307271146789863609229010202230472367715659053592878551382505224138410816558294690240352478559176271652779748676111221257487222731390442730153367471291408583555754181246397003748707813221560684081119064782309426056100910715210956005941900949872228512472449193127456699691860148983321002710515530342294459879421306945529872968677461834848007595828708023718055120946129825861890535257153207925819989322067103002252301375081398669865997886808419746201099632443608741958399094728053558140807132229052344492245575594591627571096329340309338271172325848699256710220087154500379866389081537031949064947563645227120319886834122844265018924984838812960137816180644741050416627262007262674720625595669175663799516970134736360113432125595741616749741032515843007532065977699293136091625189940593781107358771057983122400574291786555222053864483606188694312207600873997462651887386007021184982353318451284819457272986057954645222851110878294289726972796778569496362166855084414001656250622191262845818063336720057894433134599760038525317699228028275760876163780321424738285496413173830984362709290603690121299128907325200064488494280720606498878495623840711957316975277635053109942249677020129366853804603963039943793319138010270783471750800733760558762074729466920942151536659095834944957828122750669621611643183379984975801886925953094483474048830466264970015399804499754285633205474788163264920901859951923803823624496421163143727268869830273271159835251090719078874413238617412194075012565291331262518455970775271729816327979388005565373493482756831721452389714083630729956895266125098350478575616146707461907025265447147099618461283125689018582325676445353882643979651907456712267043074705785668084746285542921712690964217215500256960725027553431841439066906182855554325920183894835257433932351450740541909140483495226545802313417711054596717417017557341441901859910445169953645948352043288932430372778731153360214320583510080267745043748862089058102285184967748204691142844105076269550902790072513240317991938297761030568952602786461251315515203635245236663995007829815116339137141657785318207436199675627522637510945727991140029706644499357350620955899210650425192807888063335650804266896070478833651833370810842574552683716020919918524705869944921480412476439934732092551625172607914520707269379614895414935163927750032332248591999778985669782412870326334041196164146194491735777140366194808275593299478185732067228919910763576872209995593490449547295174597968606593896477969857471308749913907626974953560128328433901638259677930333211424537061225385312629584181076732288459975567138225699685588942916753485975852920733812217680363634658921861160411611414095798641288033827531940593659092780631815487563696118781278072691122498070386980801299116085705315068375742795359674769916900055708793426218914402341213705324542982911449586526352543539820751135749301886847357667758970974042561724118146502056174987247436498631003295337758940036001193101919935984704243782737007080257280884824547729164369807681052862804376021077520914752231156141834426490908435183715403499683043447207510894773506291516652722602710227143631534794820234400241518225519648015789939336947711132403755017772549385066013024948568045102704405728046919540637163744261425290670046962577102406408818423625886675336000592822803478932069052081039119847700900139612395718394116305476468407896848823328877158417366531958774243762843297691176352578127214809523792543840693063466023107215540374814753947423622412339994712611650538036941866611687747439578555086490642702590985400471797056906625533745887526671715459745801625155977813669712580857312782270952981520124834915533745868757014960449561605226038347295393076120642029893432059683405718839465321039876980590502126874128977422260086100016374244559412684669569490462297295433065826192484225394719944414410294602217563624496801261338711073986363447530810021447344361505911662977051892870007173969783043830879953456959461136352507948180976208658094901141615856603441285133040354507602409329464619482768615304941132814090925688488009399043817853852168177660664165374001931560108721297996354695080644329501265587067649385450194587070483086576266542989691487856184667131102797405167483792670633622321070312992635541176497737437551015651466468838041091207929335096847352129220960818688142166728964059868852767844243026856314785294370546596365129808023257116871193480880952057720816370731191742202708552846516834316985004264582035788530715634450153598398929218980875510134955970750450407750284578745444352428436255405645003884795987478459499709812768636579164231910836139909276887257656825640839601608399317840585303183949450642873187174788422930885139502365676439294003809529947234486254058604444579517234847853729494186192852489399513705444498307976205054048442605500272746984382903427696474058075794642691379066398708609593161873303481263219417032668532900302634048021715161861748718870186752970088503599018375424520117820722663376537800822607801970988698374241452529681495785868630932972860420282460881918445656639919251205500198770909896250676610038579312638162717019802988939595151318559313677660232707390890621431313296306453213477333185742913306614240861159577262155958313925125068311538250824711170797729424516423215880676359496835048726507479771498952998420142707551803362706189995205697518225003054564618862271369202890806672275230307235615708582390734097979349133504937289854105269858241459325355544064096937787842780886720111384578081312912505138691818336553685287811822912381936250953517384759164972985321190114076014460104656793338759098838134827706031210565265764773645172708314393623871335478281257411108889286395955684949853193926040940751671444172260166094597127005799509352189008268960818511901382325979748383486448212800747240520394033522111111097234000907929872467572613421939467917508478928521274879579625848292099769887993567204138786610925257544553263362247757509684186687076150694450761962899852224947722083769670952738280129088856375357432362331194383429440985144026905252648068752763560587031311688586947536485530228228052124179081144551143560245807837114965067032384290686058846199308020635938553546717551637781476895509806171866558358124667702601440661038632641407297746959407296918355984016157181985803647073164854705639915201913631028240044647293846324081589881256718344303702601547324991081878312055245928294960458257570461580647713266667591110656025133965427377055663289465798103515465577412976524834707084883800230422704014835618529060504003488504591827649294291252865062454343537721918447763026952432971826761487286882017876962824824609335598068369519368037503475602081248974796915672302008672271770953970423871479163935079876343566333602352573380257450424810633752364601034266460002027832613226861075567163823940940162385065225082519095081072315079741714909424601215637547073401975995874135456818393521473432341307983466301029322556986806476572728156631468164289068965417562072623969000718948945573547506605786740509536518898427450691098962388172177926498665347722991831220442875584346452855008374920668674536245072389455772307271527503813402342002288627323699205682327373444112197988728398286762012425302432202619169071610432581972802302971990533983736452412231458614094250838157628163779251251234714109941057240563337152235374230259327669214482680421740953238293766294081905174724476546951293083290759207136212721224476168405489941224988851486645453980134221233255702534685519288357343982254408864118838666911024776493185807743204151789103039608467645519098959084774487189900292101771011326424137152538623525120819906478863622940053214892192993308219187365751904173934383027045388591766583734018090707203633420937516513477718679284297055037293441049191601587094171909392438585413790765566429738610857762408338121705687057069343928282605421483129472164389211606678513264845221107630614635961209628008826787738697800535714444142520778941340466510630009255924843380652200514620519450564665635701098142788009114455207972273249635196034531028443786838152788459905880265126174985843102627687039973752746154751823124661678260973694415312375276917700919713729033914523491419999503225505192700515342866563575145657955470060452709378971595483913440638757283629924039645909751313109320742842552353360596635596249332831491035100791228632787254819357718169130629535685668271843306642895012074976014501029398360692103975867349205408479563281028386694881828051315121662619873926960342994744181658523303882185689309626673976600845288739487066476814121801879967136750157260130141072195475626534224952975118087031773196902455966315327513649627311607112980886020006702996569636612357961512018372698009549367695127624911941241012434004632828759111923832311818246149370038093781592975059798973489652708998208940695637895894862397191804044926215743334950074114735031229530479266617319672473638745062580070648113960017139491306552248621317702620582845883487816140850009002928387262118857318285425745461789657927442359006506128853168883032097471639258335795131852324375451914012335108718446080456965059216539995636933522662434984916443748387493621795974298323867698323726615176974235088864784188167843044579187168635372050255593172339520422557715205747451295501276913992440773873920409477772392847930749941555059218053749154948016711221316758357256245209514673506480713328333314028819255647033094769929939719529834614704417998310749724077174109618201471846540374399930090581471219043248579060765484953153081341412124536360460213060155704497499232617408477645213052426520744534338635711547265887472705352384604720475938861856701073334736143744447002312738461914629876835351976440391906485223479034282615299897330814022102371877705645860984742352028804240737759189694184679698792250504050693612551880844362524953857856860508949209981267061840436564171472403263259900762781010905354444018505877354234329722858414608129808093984878474094549445849569023555618072592586522890250625463470173543183887811933721026229431317220289313847906878898936111709961643983306887911427894196062471392638183277869121634228094104889577121348613190976076634024084517366466253647583809361421374681659911214822486029229222503958857099700418417367743072224555987997968405614461413839404275328133033783213204162649326836641034833803004921411133776355917427900109387267395137220168514267189219936959293706277017513477264347821797516680833772790678333978971321374373612268605972537525666029569610160038196274096252552341045208424488803981505474599245933426178455775253969135828065999789543703527612030816010900694534831071034346135742202122115626028390995866612983919758596101733768919242986882561541943298320792046543712412879072830020705334651393252554966809092114671438773618567191335205322742791908067973855024371571623788656677451227706171980727013263094665199683557484818953402633520065427143086019769217902163214643934714034677509421097474960969950391771359588408135232487005625214446628385036141120390624599260521457233132842155296900883157351990279286406967018713660159536557121921311110318318022788988535544635099015114134040594616810272164298939675428629434278633822832818752818392755002734820501847824977044050581451821213072037246160568676002976121155772602194612938168717329951301284892855135797408641873836325854840084266614331130647853590959616464446872668005816439358071506999669306254901982098901479991196356461623897615744405022257179102888567793000145758646012695684891918481026641877920296537146714751319452747568546744165388498757251604029953233967277337835982217706032176031417605294307003858951008077357128536117842102267015935068886410696942771751575199502796268030929346254509506969488346841231432090581604986115198238799789009672024877995897901903910055273146547555200965055917133503237229078105094780594731046892031620446984850063720409724284489441112903286670370207656386173239342002229360947425944369293759376759411622417078365462497800370340647371605224164036456957977112665359365183722777980558348201369921397084482024365492194504759251683158866627351153637821206889252955884882565373346842499682640406151498090196934359985203618903192571877080294406843117751726533973369166870038516740009237284737920322550603904913263179421474911933222419120194641378350652291340990827238196326275938791116793305646517208196993490308411701285754594758742506139025266670733326843336014713032332071238281524386287422575041754109748435427553176240758298629743274609774280052283463088238180327631953229944483955343246903508762402509670647932151041657847224293320716733531995726499049423633957960502434049114481996228244981827723180550181241483444715408827742354341947325985405206647196706936560205390626145707912703205505522544230779126055232586909979607659988602224008202755840358828851556821336195040396217681229524850878796898828072514339338178808173495733860204171889671038414159131133022899269434320188695928626874004122232286829525028245618666709827735260295474215833061267734400172257343302233166303884013205051160090171155051966651046808221023024911480810244584246402893556037313589986873703281447171592705018973488137524512134917432801625071607064640714118991028361561298506316538760881596436639729436638814944987225150163310099418217500387082728246689202241426029591816128218953760479635736573158784310106528014428884078503109048486587018780080751798447474791240110764955206714121833971793984947032948656486412590699936358200150130824168220733014780332955669108419141046074275688681278140174425121955677441044197524294074738338682536000201042355897428759858175493374078783025716375074091706210324895029964925066748606201153217233613142195796276976057406930264312423909094607781190126847048389955896607706708657216487297485413236789733996405365241251359441136351970030205045191621596224761804124204391879017946578846720964569508496129757986746309544417617515984488020815314106378270052823535017913538570239984277568560858167152589966004031098159499811311288426689881301604547128797423377447329970709648996700872087947894911760013960557692345894190838254257642324772451378516275596124649319923044375153476304108773406364196215981602402789685651602131701964053321366354008688979118785321850686094688466757083299030014415657572702773886035925259087922070044027338677654027946502976933816358152577524848933981815730658937405106371265615777461090006158575527905192485876605315472517063834834248763140001861954943959830610695244361600868843919263659243126173650073530993132040037584213463542802071606139448893181489879785897153771866653178735284318914012545148831653146239773951002532390319425543256766009851980289450514749390559781493082722240965249261477932965865817152253403111623413327909034555366815709216354698295346013073870777923135337164645661961414511631029091574898114120130548096442313749008850939547232438540179499314525215271373793699138939708763706492893221945399711741200511735035069627834873049099460384594744486159891091468578092899690399919955173261989565490003770504661931284706832861189315776307333535532241675200768509126237559161629239774880554638919553732177387323365984143724812475556814243695048944909046207014942364736283685836907769003772724532655296900631765417203089727600300833321922481271887760772757388671000597424181149935658115550426972045546590558172576113472511761107285580830562105579493412527492243300631539653058531029141573324880416601328515676219694478560652213855212547685798737055896237846893051580775329290497046610053589664583185258801204161276918184431390623152828749119274153214957095179599401387848103886728919985943100771697809511961000063456955414688874303565653298529897130726198906114042579930879425278810047677102202691040928216867948336134855899871426759219218903971868604513904168020490336424319648815662343042312286854861758067192880030705433215799333748955424098964711854793660165068694041673222261746367433798703431211140254047815585758243062725781574650702584804333765954915570966073292933705966617398409526221418807341716323605321040554090192722908774471668647169237039689818131910553237901692357207568986944324456138657589859554344006109496825108812102404243714040039548491668173397530469234841115622782630019679419148279686453930548828908289666976942407029893296612750821885325722837846313626943041376611167851769461896015755236744187319760433990352962539853221741195579562339977636536260028825216286936236039338021977401093475100255400755331115450150834550544733700950702891405698404204311484074796222035104453725408964986071185293587183874073965379512944216472835953720303626162481028467183049584656092652586677257077247455001731949400161984288411239736504589533382488576832600996186067014533225842431444101651162765198955444036955095237831963801423247639076715380949279324911249095856826280394398502851193297175200441943051852732722298097442846225135096708244785055882026757926582016226995283419133769956930172382256229185518784088829366025563176749040968533704530799189112982920110800905425854803453071590738190088935292059371413206173944174928003983775956423235872295326430581323803012772503903453367189707402415810986911150297916200415328982936035863009238387878376921564359312763217262504280734765773531318023179747468850482644976054733443811184224298583819159252775845693442520433318269096916792577743393154034623877829485546764784885419447059990620916396898962619831268516264864163679498529043195642002995501466815233615265320623236963981935171743230843176018675581398326182664318503487374689373060776318186943636640141945660445660644733585199356066258602051262277889856968985005427788005418665303542752717733863561229377081138813038509540067181003571302568743847246940466810299799118988069096036996526485630468281321227269185285263558981047183501014389651007949194315033464274030187438177369884969076667562990345670605749447281072612080928516182746090404785609272822319181150678228830843040258047761472026454525664234767235204779083627660785308566444280624400455782554704367617688311746100639281770984204756324850492273525423944392889518325140864101473026269122571474032234765191377973122592382191261614389440292210647869021337722244291427321439021439889477690902056922067811490973338373091952214910058872271620338553394454575011102963804570566132875885272921923739653689648191517041412364600977083205246972997296101248497189440475461819644888776783696129258728341058222172830893241129835130907002512505602593747541948411710244136285098701309512331116965276524618477091851859185634566354208349766563503621356714718609222934879376478569655245990615839154066896509654255516984917583500982194491412641317655669353721224517333403762191742285916658654362718649961357749206837954158763019047102593780345698976462009616220352918565844294511116213953352467970885593678502912513249877584513635497953556495726306161343955383952782774368533790489092623296130351205921693194953168015709771495618757298292768504784349759468206463293726660601866906221601308392479821080820750667838803921642465222289650752053703326255148568850627021992294099988876101147823786988366621995173867270639959358002841796934927576607007272951432506239050749650951813415684286148695931435368109465287759246722763305685455123844646263327260963373210871064295876820310858387063603361094978158700622694609500817653782596060753251220853087056740082925891563399439331419137348993511003805061082275704531053209137235515551786992195129887202390609989864726727599930996938155456727170879300792820282150668844896484919436478302159315604357627929613721827692520367991163436795898544964363066996588166863418133060103429331800974240497038330376825572217478761909846740956636776898531408099137715390450367742657537143763004684470665604722228053953530174818816305398117962225135773773245651768046304768409736000457179290709747296236977994181942295644401924210144781083810169465123527296884428451411237928622815902768625632935576087598910806849757016158468761282007129493367757253816107794863318861012689629849673306961173139901339740533298404462864675720057523492344180298243039520532100858322862436538704023934378132616347804392286102901679045339188003292389631285845169247420200414937588319622727663219065817206654893084339356381935214209866492607481565098049281214873201780050567156938573506422861547548930165502599957675489172323350675956098064548912857590806285861605302138670126998733858232798351055175321749573281849037482846593448426854222220965668339239485199234367152969522702047896750773774843031314510067275483657684114164855593580335984679822944722196720713885696551876865891118508806238976793245837140779077005406730501874156696314114551504844613548638523541506969831073962749255811448698616699964367377479212615303589139234523997535459288746361499434051044525296127744218232772963810435979417904449908111524178628203935583389691499381177545701567459165021866477965402797918985367440668794416818304154352767654365734744488244718537519068861536401729035021463097481976505840279091299352100093968656793145796346765269651433827879939423152597117018490081161017955377723665528187746534658070572299226012943590916778106083887523179681871061949107418033980839953869130367779931798979077037066441469791210818514157493919567876475321419549182162378311634756878004501537945419122038301046904364733878659353909672379046753616299987306546356819692202174010045612304523811407369141754013069757040673019179367742617431678832527798831248429767279836962254833853987741656272595258845041368650257088629812039140686557473089716229830258005698720922928817581862794123836114270829668108981074654812963145387296947014697065897891654945165129366338537440784074240799865892239904005484002684871370230409666804952299289103392616141096047328669861062145365422072735761445901842825825769123149081827117718196605330348691757695478945613171480728803479137695934990420084154979120018391707567438124023574799763030548507952134761182023336260866784386492020260652561249501583948165611266584831350006224555838849896072379947804359524435992387183763138106379855783470753757466384845756108446793559061395586405698047911903744274827786009040074826885851147083931993258859197284071813042035531894953987930396817816908329693281693353051739998611120919083725004620717406423040299916654321775821721152476837644313415254576645205421065289992336538393515982929685067581429472046079434524182347190680177314392509113888288144489432639987382957527154753086596689418643275563795577533112205025973940848715636914992720072761723982795429687155668888511293341476854003823277925909615238485243833817622031139195438704085102453092675256726013193876658505335369308742973803849851110792473174162646152880770117060738509607903882552245884667039883916122642692581994591490123395160654757353327194235711574768242758732434269770420930212185409751617978278483576857005185525392333137716164499533983283229902265738760485397088611326319449331470777082284956135379795709244247691403608064103705132715338879663235162853861866443427172701234433693053104746145763081139201001042203678243639986805187264711014248828153222334260825637094934527045018903436858116863219471779084372374511637933931872081515238151581820033790241748839821049690534041245771018761397224511287726781123982157953800269929616810059139250013036016863421568700679400154415430606690030777410167050747924827576569276111844553965047429506654192621419141871005418395109247268897081569060201529449104168343369384523608536158120669633561677799539165235362504990628407714138840273955633328102728280837201247334723455423376444378413448879808280928759916303034291325785839910120540370870960143439826713357575967842208850515331664454575180391924962713222297728797063124353114474749422309016875468504803267833164763204748045475167764978649107396426012168548567874121464967699452179420671913944426644433776821898420953048153556286092660842869467188202548830375320221723799442795563166130303344692458906477073966784427302912001240692722680912501778162445397506891007679889828532904665895847241456601219198548907656323211007051926818528969058829968564068721291666735861082727041132715678357749165301261783868268995362325900923041810521230627586535250271157221175353693658128724393728125984387343855450004199904277335776562674245987368640567756368496038896262907289292087528635009911985193742772936982611046137897770497393840623233916583023083545779641434579625828408678573931329377049512510396881768480634836839911901074018080635665605132009585122114299429372026357098754798792068618358020409008383906063517685503268078059929372857716034358738176375563662541531474764227915874131429362900364971207570639314241539230070296405717243017951843303188316933557492786513445348772629346787171410659475313487099135860162610274822734933695867467854592129785141389535971622016521077277971602221153529756847155236934598441332464951669284929114806403528397199477574920506400387609929525661842504296008206680864143878801416616758319047874702348895247347140689603261358324688810354345040408856737425648945573583612891849110886086322663582952658945001851225406876865971378983518144399294750620394683280710466145736290194526366059140757196084833000718820959797222936858131949349396067561910602916350960108381032018903424252230114486881748066430880591906434122899593191727161868916602507886502075493605230734148152471653766171834621263659783896947776655162895847104315329147414921699993781429133936668067468481129789314804332933010187187062331738252755821998031463565815301815870069522021845757437322917279618685572170225994291269307306829317384643284753442359438378271726650015617263429190394621372005145236899914399880546156746187776166566923763808862180231521700264595552640908721692889810721020706225724570998700841985719891136050279585798629810419359305690750414709064416197535000689838398963310628883194302668796881033498894988933641542881619463207628617409621866233466693875249751339938666771000040521264731115156343958627169155420618649946797968284639307771890384267994761675594495121314665163494951545635770275740161075898520747699074388417531842024410837114565482016324456523026197822959404171948522575388230833190781675159443161803063644083471211271096971273446862932053486838889885880786257049509796112938774191227090852837602064109814302627368482754567114659479492609173930007502118840850186762756190696480529754371985786364690632687357201501527152380698424163909580649991666232607099703261146158679449040499062215619298743750284377647534017020738640464051224276661223431379205523501707197485127528622900886000135751469845268875160645701790254248960475294233185341644294689146380183276953740464066970235130901283616091857292626771838257297091974544000195454836641861776561338205765564430028143502151751633848172064139408856505828942299080641607450334814297181144513772839819730397204421095258005243879166444234820314946648511903359237943586810114898032786425416546985736564171633757865646643204876471863460851426415871155507870535748736895805073849936533432118985045242467748864142516512602173643418110444104663542499382417644621654629767507113887389306302844602834740053839672773627469769833474244959175346355350915819190671486713053164919608340154068489793542108555884066630627518069958273554166577665621185143866112202488161206381494501513682740704810841322540999490566253135054271283324443341967896532892529354753238759321313257082448467459403631205813699657085409145631858244053823894986036723518579463423540061837884008184140700471858497990103540785797615385304016103195904886852527303383806463692170976104549395559200618635246342626277611595445362177844455654031540124472096278476720390481672586630574795286547708912169065562136784390913455894300556556247439997764478175919907870322618602461016700281105983323965012615715815780142288397900971411570362390262778297236932647045507856297606662976035324340788101517237322996562538499782610575768372369565719260693598439192026260429519556458945870110955679786692628600267266381634656029640251899190664505949090132620258202552217882120660127866011099510077702180993341493312309483254130256092083132570434080001804403322135319983199201730661992234451328230266693770785135487315339882597075939898116544609293685709873055661764503732781298076059445843880271490913445518656796370374521510314620257799680634618028608315767949972241806974886052545418251398883771902513356920979957930577774834080301654611546289383953503127016667022199259721306480406854644740790663497820835170611649582440319097488161068332265637688264569226458370035888194225195674899906514709012093486715861086236896648974117159064075711407868934325968898053283770209061398720088120326103197594864837987343374362027881604092557032801019291823880613950614907430501463797155675202935741966476326034857841755475812208478761560991441267103398368297482937218245876164030915625018971955903455708519847561853622372726767172181484188260591735794808783471365270211073401170867047139836394130154630856165491418154740399164394974808867769438893921115358436290888275269996188164936476589056777843451290410174171397902699678986718280649087259502273784088482067886690148541858921200936868684266883800316980373478096823072918147333997131225915154017311830623032358946475002873529649175545945927423803575448317452722505031894510773075031117301457203659257801259224552091779108844945084589445151812917662644610534979533721994840344308524305790275800839325656140112105193478963195002720076095351199362978214950068011570970912690256155657777807472739212602616977183787453712045372725976532513825389544799672508350702747971954791196798425130425137292655373765190693182277954868344260288937940445777400348445126342836153175947414886881561972630645514653454368288385334387876974244486372021898889362399545797819820967504316741111550591756493433142930449299893451848086988144144660870550708279207116054301262790352715912978351983894092150121142636477235187180534965710312677954430280256030498578749710901697775131329146353769932634136581351684977392135855679118891011065885744649025902346657337178199738884728081956274844082888436570182938560155595784870298341813400742750078646546799888235023535196266621152912748596592835938201981152623928146662162370938489394963139042488763103543407673107522918254377477821482691041198589628552575981678258212819808845350018865161479381921792542429591132031933566992186209071142039733692709537042676702733620752308559775301689729600186446562482279119983682125434032813995538646848234609548803994917160337816917141369220976952342991389805637232114694603532133381680634379704811529835389191272798517138446037448176510417451416113713868751140922229276519880062227482590668108046563513945911742691731875000662406655117044788090111508065239872708697205779357433172799972091443154547669916060294880361546360632814366954194184541117078067172554204189292834765292469497848859165121218914236803808603816794779861426919484490738492850016916815475512526758923213153000456722785262561149754016153865204070812690621028237520658604559656796114203495322466468713924770633741620010586140796167744577696452311283231005008682662099745138555285568837394890775229096290352417868924581277917717934065671581757855202537550379473403566224673971603415851795670032950939291065789306125802649278111736635825862871454759348311262110752091448405342849415810936424887232126423061006385294411044106194118577220031836956122256129775899542770578669888252954071405736588422901463846094583112635686656409565737200087089692026009269536486917302691384025941651560979936703110832416062019882192716915187690575138894763100335790238476576102801641967706297449512271614069947605364730807546438080948660025137889528645054301913995363320691150420203483276811607860622824279002835006276674411418363715008044789557506187702426746897185454677145402811364768310092030862471318491432132652025680988010604859869772320173091451942136082558630706546989669627278189539170396616280714389259456047280530144912065865124211762152881381203497432696316245716213933698288009590272313892537004719187522306747522599505442129758615342026365526323975247003343026802291178177288310821206862834562634647911636552896510284877831795270792311264828829496498522316291173855217372167446992562694897781684167837237676072247757105038159294965846822779348296930609345443088959475841311926598333753699060442406155233994418562619404804324802737187836011973538535754341156119242976729345751639640776833063503737589600410902225057282678800755973513215808948624118049057428341830578462263254115406379710609736836806841640368265368030211269496378622356169283283149095832894962160662895312625658809043727509754493526109727008904036132428541882104314833894333686031712631069602690312995243189062026493356002636184867432865522272357400842905935080819765471778273294428775594475499215630149575065194672332233411795265023954395754790783082969783391106340865906430626322752392027918026541873278047988227587691014428781800106041583858433766587731107484683030687500283301669586658155519964082971109079856167697784291059857805463427152117996697720930286810002647183163593074872506918274579729180850413265499352432250195347780104424733570096954005496616471076650360901546669637775066590900892536164503829810286943080523223937456051168313023325147942296849933953818136051185225004884327645926142843802880253093531057476476656926964380708131262264259582969795877376181486683489317497820790006150898262522332152070026474261466642450915458023797678712167024777558159789333407384753301959077610492473678348043193306292850348197767287613213054797893114130106745826943356407410466042139551978072243275113815504927532264751068081465437931194631519825477724218948876677963932237899637284479693995659764645114040561850325477095291437338483684887896493192150895852750677988875763024286665965261394462591670083796558352633472700284497536597381444404085354158188748268241775567206317480682417592630666729257472351796333238348150812356476010563734233759368198406515145006985913459937997276493225259096583317300159029284381166417163741239822734261641454973544046325344791960473850283925164544853016057580478655401648239059590388060992277293838704754734761869143616740958376779716614612463010533171521832738599959237190446499229893784254120467304593468706822613230692322650343972509013145892421159566292973682058341141784245574900005780640951368052749946178189692136947272740327506538242329196195633651564365121845798986778378586754383606918576183963242679093401701596848723590849292262818081438770098260306102726308755847982162161840987194136657607973688192891875574825440198945307726923009257568136181627758080283914488576941816069690842656603169213158985564065463196035875497032521035111317065865491096742680161047103385455632838580839341727757329859328538459569761626948408765720782965325725461417492838164694188109461010090179449840928914185153683741812105040051192189998720966488521545844981763132197482242224889289614003539457295553854442276847336346544587061990847941545164199714047160068100405506433184988919970719723966387189301548557698012507990394717826596211804668468400273713754389793129606184663677102261989577834910784896318904959049818758654127188842502604158106056860410713190163533586825146800408575722238236492009069071152844244885367418317316312424458009061293539541404336773297765128894645217003524429327151440464098605964002694115989245156089008662997564621465353526469093154824686614542180684544737636462937290799824071564962711355075303758587452340514319859907090887808972545664736190336194293920819156128611509869858298796921027938788969152687700304742306653335862634244074713160875088150048325333175258356040507346643825584489523439410338073168252814079657440305695463934350369378250661765884480285908878975967090067504485326069505950528268968168764919587094371806529263975238911846671296370930155048144701672946324094318719370259854253449819933623256118135881861454834179880037247714009718638233480659032657133754629882197992861339222158135165025942074903241931833608507198846758147649726677232820090572336251464349690849270833189931401393809104350355109887777981379343739747072359727215274488453891714410744390863120523636723537448215919414386775337144536016962261237100599326131716128796807233458264581650520813413690167003410778999235375013079281802577492979458391858931780949316736263897271163477369799882137636084713205750682676839439844613606281540873077056016955832395690277187169558689344290863500570977179381460441654915250172926237223167686643436660443295591625969161116990665401677550555707163383329798982011227835072739490198920852135509816359649642286936412152892851904919257704649645127464919138443787940800634982407798376170957378451240399243502847585664688028129724320142982093985020472922931054649540688270922459904476242830035423166069180017645331842522641689482732015064430055764970986257979764707033440416454874755668091956908214846016700980516069781609964113412556680686341070843110121650535943363934685344288427376908955510603129825706581098781576756397815991330747592151598739757270064308836682302145225641012824492231072097363100742858897564862385642180797289126617923398060405826726911657405183831915069243864342932436383415884745759420488153351937330139905309300398160773323631211114253024150914675329407656275231336655154402219411021613869158863449507628873151508236390029418996087880626028695930572984510777639011516804845782827896683241921524768513495453481239750650597252263205076882966151537199192697925317497068688908709856115097164494450846269499295943155074040624172474454328698441219519422762979955025858870893776908785228306864405023540572844383123333993055408099412544129007664191334552361361778344718454195629335870967424156801985312585347140518199319157612826597419650208537557340532143515349403618542466469431104122329688495337284431370453547675975897212579881813665772234211985496622238359155276480893002295377375030281918581683301133103143698199498311255622155974023692163821946106837716057997174238424674595021174515694665386072327506505261742107634980335678165287849452320844023411766243576521989526487240348642932755714601628267511907832391861549213253745258829127470713077313395201064320480282635671003278598921362392473611785892258508913375953880289760111366046891465035067274550734481240261747800103254003802936999298211688823649698946069375100607889965481272570153651324819251482125394249606504939003972559487177635443878255100132214788440156579421302880864559998274884501300108241978979035753037366374280862283597593360640932211610073447698889433261134143531693974203898058560650550526476816642761741881366185737328057271171566941870187193216032895887369651986918777720830315793741047637019199202093710212313942976222915554892172888704971201783809897975135214415003288065807433521033701073737815269901421632297686415305145731162208415193492608324184464743320181783135600620517733916082295576346441454240156017478010123995175622414109923632195960103367132373518960920089516696282907818871923660220590433396771949443094283343178064000912262444589908805187586571178608368444376850990870260075699637495897819401117348101576805796607032603555885061269364083409685640046850027512918829577755202179247065860795112470797467099680200560497828693118200691614262848220897680623333882930414383991335042829082879921793158281017233765424541569121721533463930495455151844366680258329409465660910750845306234042001594417764381086826890348174248400313093766095714357470770223505294768651819729730357659695745390281335981430411763738514795500514186817039051027570127777623196621775212082002520704924933704401857090844327924492948904921123902171792752415065227403055523062707717343111160429010279164057315441560582253829081993702183003022115070886305921223545414852619039320040074883024424010789699257153475335213459318325926532836867807744674664868988934634294157423658989995761463634894452479998280778797861239949031166773242717891929366080708086952080091463579531431501631739579394299501523974089880161439778593134165293254692130162287557590505581438268810889256631494795588967842674441374587051844154728329210086260620069209402274455218553702196753977372629854530781107273378866703220407661259206534622163182422814220123625398372152127043100506044939479298626397747642357756203147549130667952029110408332197102302609200466121997716264563973021603485765586116663747469915524158243008812392819803786175945505854065995763952182757981974396818169599298429282464388945481260810582282846279673101796144265196455882205793165595292862588689309887860192076310811005277194505866651425280043560504368271940417801162033071129519840733571119150116868982880537753727538824176391955000701712496609954560351727323206866177316101200302301428464823141865009422803771071706081043677671233329298865299817697626754793222955959405271616057770458156277990580630473584762408266383778027477127076269533065087637545017968259420177480368069200655978036653630703048303255772208032140864686073168547618462585135128862657726611423068128245244942816279374311319049508870068192711774084734169447472303819957481875413523972842902796947312763535823760578913312967236180997528017789417655502957067506010709078686685752611006410281251258590495560439217757600774805517797429831317168479326492194798059099417440560695362874581050824042479908664626907393328562552465063235411021378594546947358188591887216590218345837391880695035637133948240942938036186983722811922599193148804986574744991195838524799088103046402459612622521065786239554872960302151316481924182327742518460862383424054933030976296783456283909328565619465289251180372020233339190314960124549490608557610033634213108017833542267760613506345749143792127548188169503639227622529419315445418592799358181189126876461850332025019671231211002835731721479091141792024785357189378494540232915549675943084653076586317974177758734689201858757243319619095545469919018955769741728403090703516951771866901098061140292993010111414076010172374517543548631037658764412703931096148931922334472503870706871215665048758902627567109290095409147139928330457369180711023864991305089014254307036204822825552213717945010264093622144159388988124216953173532353212076483842971663118244741400506433560711559328401101869344928149776456962010541465582419772302484722975182063120977310764497862730586332515852819035182629784449132079270017382330299820442941276130776231038885025075132555860975511535483381351800858206906228609941358226874962778902657669152574297069364071715155230826433720081533456238176046139777382124144122364935249045462942814990787107351748439646168658411374761143590594631235808053849624090959957303809351310860665906460240962285419157326216515145148906094041470903106055703092340727077929116616601821904657167452167711061878627877862755445477427385933752204289663605345696277397871270921320719279110723666550841958040011345436010391706385501830897628633760680276968555121076661405931765623703086762416669711291652634308175956652647899036287819816685771319089821011555517269588784501674269084653223335887218365016404056858711760160722971199853941907347576345851412100386766549725454490760123997113099458436832356653253919518017835516287137533004571008344582663873689114114631300691519265423321473716919588884825507938924320642530378498689774317828417932354075266820113361535721770885281090543126763237564442501014150933951968332997892152920582570789279605269210371494316435042983164201903906451855879490635095097815989574519252453717686838340593144505090412074816371924728958011303756563230841106778799852412969348883124430380342782078903651080529968779233935403250874589221743082656918068444233793155228867255576246109742030451069384770432701136420117992816970591918871086111133597152434316125164637207455703610218511132433722436799555785754584250811024975191485995911713935217293440525232153443410550916067274380935626620114939849256439390167275224956495653609590400817197841293119917866365487891437888411834694331037607644015373881539719181746259784010332451148125374787111659784212663031302568417499692258299247966983176389174804873112260667373790780472816443397590416552692849702810202025395999795498314193740412166280021192091896441931118396649291672320486874926220235413896424988584224805798781201397539555099057741459808668747406081191376845607223424341472387406235183595258564616813098130318632958849163193685047449017495677797886516957780464474251747034036772950693419358885681550147730933440701279469511524618741473074369853963273102915056961507836710371887508247690515294240386135135469753581673435550569423953713753455988854402887865748049163226643342545349934241756506370202639036830776441117970810004610447647176329138255214066407005993134468166867152276187112227083624436663950752519401336073955517759340612189445245129501544468018871871463355586645149441497398078292634504649028374707165159688354984876405998490924837437314201692262580548049232785734254059792398387467237708028781721653442407890307598266267631954131871975491395197506913318999226345726604194156617847721176479789474961350468103399232763431732172551941192326698544731431040873456439548756809100798703940707672374226599362433655361150274229797178308293872304784899147866616440927146154787160220689330074055903724516847566311170425079839385933228437442924407571666124337216082704582169589092523681403401428278572982375335916723802037725002093129637071173752319456816432205592866218975426524835883468059620500747660644940827162613944906209461221066259606669453736452845052918692613974794592644526034469110284810470913875851618552055365886755932398209078406186219334510402359608644882545546156349349733914422473289402720205892873281467866478965545376337675109416999826074917975465503102118073586166531097704730541916365811663171520552244917742611657431805642058036393544081556617284983939797064059942569959027496091577311582667873649921038358550804650658844804386018902398671969225203414794666982894621510566707281480445321398817951259281191649547172773937617390647078616062821175453344269560662523858149985539437908714615242578811486081163309226025673228119843852662551279996212269156921125764022952282715475293424182037774384310830188049271019816202813780245788704025225400295147815991942054437942058979283577570123527667458409391245886864639554946675420639904333726177750706221449447414524612190496780285167183680876726735977552020143210860695307938183508685506321419322311279005974497127871075291084677701019727235668782950695649297046004432887062523549570844129465545985630565375548906079694782777274053485521113698276604154362141750163499462125320052415728173501070220019011733769414276618020123837736266517617705711482558622253918292986453877473999111179374454145955505773545013509905044629052808804112786276264024488116297474580775191704779193173187926264321905009776721892029647063257039634027529249472990704193599197482149093817333474661423378775293138305587092557524794450598766208523465246037650312033378913121805279904613486025998256734697082610750024292381745058079043258838800587182257104838051915957085683675062215656049768762162639545123556616918680906155942178997658446549807377685683257359176640231486441210152999446553572892614788953479785759870701141833685679828389267504419532213226668424705616019819204205005808612358388466360154990318021044920212216311534975106041001760753953527751225691714146180330105022900638854145385590808746103335998121749956823055370882099143000512646209764865147529750675602555101504864487468931561464691688004825060860324442619073966466929602885773515656325159460429143797550637236468271254110333193667613882420936798651439506850033331773972281410199040331027216825054521884327341974328380823200916533150050408328600813879611148582840296743275251505168694614585359339210283443529421309915400412701761913887945349755725249594088922215733477489963607653272915682526258042803474942107801083902539503808439688557065096148718790842083196896473795236287669039962263710831667336529290311029831242275234059237338161695274583392977431811444187438169022674862501006509083652890409750095069430701491858049457489839837639085667394614581997848877626948874598013341175748229249926382443411686163284386696030309075684813572128908460792382952167080770534205742551591406542265909598203044915629229513093521833785791801922093737396847653165555017691810362943869571491515854549311623344415799546353212592582593276643431218821059660099828994751640795077405786899853623700636591884788590501142029787859209540757544897086491367689875469829288386886523019632431525634094329517644968034466910618011787699738738132051414653060378757631271754478082989188822818361182303464211966018669700586469070735725711962956373914303327192507423944145072343132829121357518233053672341809273018151968505222963669155394587629459861278704389291054093542177794633770409178948974335223033564021801303001209153537564217059720202330834357423357005392362339192029354314172623291965728956893920663524156199973783842879824159078867832641362871259134121512163206293295720280712063457718487821901206249318491150772071078646976563126022179926888914536200826081005195775236651114721581549433303875603067076194717071927393728617158596025343437650486550607749393972689429204797668632332411208984024928779129123643733095230003533518576811000720248263360326439222480083067342743291300563894737445748616697815268866305733351239691437742395089970865283804472882864707818867787443634111287456180604121333338392379667256577524302109332848999515818757838544574891334475867028378205274889310632020113733284573417427623113894711811257077067104430327070057887145747069431260345066099383085732256273782578900817203196711983425561352949133165786096337289159682063786589958238695562080582198570679311620639180163864287981715415649523019571043811169695599726468869984855389342202121156275166078611313222187524268882916369095380783964706110140946537299741254554336045398431810035930330528947869406547615167765859085718844809606529581684303296995166509838868270594153086146055328283102626377737808090931526439106846465642221070667257408734019866998335327112300441557395080394295295013616681418578374437555224147074107091270168465862944319289377178329660357835705311826932744238532297754507127474898166666274693573527972251600467231565828862055112504999560073079953610237748931176025632814324453752552316710673727275552619550868352993032514369086866976036811659742886691162588134810318399785130222117889523320325003105491693446601723745017926464672784542488875840245246760137656143289797234957746384279468190219920533316980587488189626520607070411251956965622158206566006826997373690210027300243472463815183079546889955658718095068873855496421698488724414926778848045006618577816470308059695100327348977992362940697535546559657710896924650473539115647965618309958124789336663343722790243288327144989214201906356749197454309617224089048849004810893159206753616365298761968094781567072071176536627701027373658690068832582298003278193413016215242606726052323973781877900323151295802726167810539741994337143118304687062592152574422321875345341904524714216783257794506418366431409028763849974885838930645273503388191021341922965796836175108400269735091803518137820845678627956267690873429651018826390951309032242250319390674534655411062925699391901219133009901258033037462552336773798550375538301820811334937911031143975205941672072351300516107541161419521533743742003127872617967637809150889070088762187154507395145012389910192452705053343637788023953723592980806512738078547853080904090050409160215525115031501264991442741037732145763258268485123516249195275652430222075508703616676810956973755343314866120281465006019239905412494459360894026930662831935330921841603746397262043812090796363315756879676468708377765393126866770702828274872290536458645379851769794304506125995857166180721912229173612117051307663238432585555720626989881775575764239493352358012459563786870746495018385285051458347461761762044173155261271674259401964480083152037210155261843150151848361220206689794778112882994072449612533949732330605609262868768701048679131412334787702057582031326833803619816089449524707893636411593959546231747898380071523828796567426218983880244419555443223106889906487050303498130597614873965611015523606134619430962640009109829662655749455350817190334862619462772299143176245353772962245097525290785219999398665806276595645652296365958864915983339177976355731700128799187954717626040576098461359703643136980176293673293746386236634383363509865064227828656881439399795111721121062222957216063150896800962010078997769197271514513126637923208475744111617045582313793968843204202217485290281165670897819070458149940486759614291488822285768778375135788260996302687773892746126026052467251389006763815532700161629674516854070714275103326893189775333771780992948222708767369404375357614757046919403278849233898010604968894058271547046740794075989932015752855014688138343624681887965399140274376299905026351115839313915674771916655982795819860265164829022783906573969242397568975426388323717247615513128005350344827016141507622920087295463101022702471583725513253957069956530884838262977678773915142852063916789867223788368621168018620373626439263156694656883770334289925789067200295184539507569437990025396788904754553178688350408985332869653511233392573397802875191179203918555640383407598677690689484461785461909010960521918082827330076460596759601933789442153350658085940073879683007677975378223566621813343115656917669453003854373568558290516812816293346752537499518651860431980527324509126119604272115186210449076682182135646999722015221961751297641862860628921248932045809913229396416682853760487598738928679025153437421454554184504646836636552654855354984345135901755094761820574424670292547582471471422501015658095684661231182692606542839926755000408033503252561518002458147843134752072463861039843392970392199523303255382570138916694188569075173992677019963375304637837156115165475249464364770403049330792604534632357840737191067593555910681458520149221591179953110740525317288559089815676091741683059765133831395836184099309879796037434044179197343040689543641653340970587126458398746095319605535587760022118707414698440345476290949249486607802140106362408991203631887767576799955743778647346124049315579028970572727682944855479870779019941559621989530432611167485022925553424451470614916273134580136183869321259860426237125573218531433196086772806055410432991775768030160511199402458221559776009201255563362556118909195846709615351480322384417384806845207840262377190324722542913557623328737994763495558396111168268617884240945106479383509439574931114237816097200281758993768064923555302866610058672586979953276288562920603870530159257323698066911143535269645326105842255555749570575529621806560170196660730966265743292461390449504406300071520220864166831683533481369421805475215455945881769212379545502681184099924651569182257933633975219991331323874996552851735392264352730256713159391075302196409053291896439788660705949123613427766547087613348888435501238692913584216940437869539161666185286963798371968350121276966419825320099451355187607940945625561445748406414893869347824479054468891126250186005316622693084346431268483487902541883373371751653717329491766657521287894505752952498154578423049838164700587797570381663157341773978494054869645865193117653383683463564244155154965101889900023835917578613897815818455123874149343935976829803206359073322546388120397085841499647439419442934102836847967207473555356542771771087618555411904340184297415337035056664129274165949345248565341041584323538314999390660079440463332131065061147881369131876256060044573339696710401197339601677064494054193840965800039681323532445173717233929283019490770564902517204951580799302607031534812857487881134794947381757481761334955846572742377838724259038200480470084212519041837697710258855010198568215886422135423245783901392679761834849863007251606958127639654675784209198182503957624484023363374609645604233757030289139585589458913016877814038335464897730323617877080602361524330029607694652599117972329351863765479973393456570321090865621896821680723022044022403270586181166804974474058241588750261121581051984652790929684269665299263263847025086375746286960580699434578503853074293231762089014053468921477102065404046569709728006963948118821889536563836325247863466214722547018598245959260817652020338023922164812490640917606374219058218847563132804587545724846409588671843571677565543222935584993480498711490213163304433502822255938437442230935895667898437965718588665392064356028760047211087037984645683687350148851925276480179701609212556139415696738488654359766346916962669358510012755853494923631523364315276079432570626064264891129928961071982610519241689135557242501447421565147196478132414060916033858554868547237315277665897915104386091427357043457697894788175509954275693290219437544862695238208876719244722913479125420812495476898530384477075876929022547151683453773283438326245757855323713496170478236234191717666435842370269519207883375530111555414217123867360708310002856328327986921657120506692960540552826928247450853258787189122536385399746876071257387348001312584993274729787635246488840329550207431073736893169533979963392410702882269346151007019650691119192197702314315307383339969246681768427026327010655351292399341624626566173434238318642518499576039860250951646023735718988405057499821857532016532550960244395538099498978405944487659115664286423548394568579318947627523766828846595524418111966909582324052887130123664852315755983771488200086826510982870976503332159497873417935124708006554007909490045159240286234249076566563960608444884301504006200277938681631783170385739304304685134836956727655312118663164195821074185547859662337250849862471652512399384229123020681165950330117773458823920299974153649642516983853319107331517735256044203912628879962109272086267202946474618854067861884007454980947640720674290975581751551856456010911696710092370867033296144508601563196625644264845907575026295003747114377097327437815288208146477436774226550893993630526400677640604227116219025848699042422587362265758615678106071062276403375004654601204185379675353134673217079279091647593102711801275810032442178293270709399337670695787267916488170140229771909222988631752747951373961626628879073901728270681975209312676948662959301182316284452912013059916500372210755425477036218901921213223682879873525838053557489745718803448799346562646110386439534361664405639514134139172029028007890385212455926204150437401503614088542559875235750384710370201500464534936515462226094393891581574466952982648223688298751786457732608907139876484018535962021597424772963434118355824773248983654953491493064637744262965088434949822088362848947883925355379872876366940131761833318275696682653439893861299786233107200685424618138403549873690656050538052396425942212691687383043647293788346512078040743601339931122351879992546098395418549958107272397143730427977875573072310309644958563655805254045174914951561135487111115009219443915495889095759995924469581952608789261156048952481323705865410662176402527702745608825387140806092872028798374584695359243275695511488655398985944354576806933280850080929330825874068838175898498721202448546962269760504364693667957292346274488138229072249566443513771864027196624705201424412340309353178001121112712424101299251390278660591305311964561221587291199068620249696163266347808889525248497887611472386098351073723426162343112625149777015359274369739208934947453093372815433593594936048706385267561733078454543650227695666121404304302748042637211185784310341399219466690668298757359517957816174626252871441352329610131028037898651353521109555483449194745568519121229984740371216720182001826230962994954042134873324615197799714180774185474465295357557169594703909018135861241821753099113042560408032485632561605504459715057750443853435761985781526986611665238080055242099764076412218619529525280980845245190777854332147684175959496618010528438555612804638991734158304448298968340206539307158547112909888163357667531471884299906250719275422329147988009269090950478066050111325387758361268912866586217652085757240389644160900630786671856201890664074055929036368586844338775439785399444354180854198564019261615354782417897185542281785938104232124794285546579661016588693053382769509259232893564081100314355289287087709575588662456573080490309938959675934481316232263487690829684708929508513227429163868371215109047647222759120224436100711526551904673317319034293445268672241929478300698012095149812204688558599302887513927947365845059376072166399356891584668141372465357695511472652117391394826780028347080932271347086587287430722237751627988904012140172066452245010777019594860455807852919808674298526735691997492758132362408482029181679436716434137350697794523445803246509069525786345524640286876140701754225602323495137404170402724044386030729840636375781902830915589462414480464754289721918557107413932852679800220104895114157927772254142022951751997422335992805934246144706155919552549954819454358639951655034620194116089055508568549543408035086491344772271523747874891345256986431862723069859891584598978260875768669756332645318992679929696330369836026790356697548070642725564986965905452919415374450133422984597383853037325389714453142440503936457961830291634553725474378374930723704992482384448033924708777204835262174076568338585734677700371332662346976075702478862854104533938767991644290588843591481978462660781194155530524198479230466841256821755833829366112375371836127845192162224306920684165384276612714080745216427018427803432315884320474590302525941768058816074855402850306937523200185940534935143064468495967820087225249767800402320857551295595238809349111955846047599354550011156491996146927893008059432329003828350541916014565404934373270063203519056797604333895548751531047742669691337428454881059447657023360528966187144475918582591110249525083200900252451432157921976259699505725624876627326926956116095369839275748208850262393686068241693570447363535395073291352130294843230297201355128532048754615665870876408224254026794798960205214820560714616083894221946017797812943509649116226650319837960721684244001631583068983896630270495668035009740310367687937829598394539303466977375993214486918716652730651313375396336505899561292550292845687463195443080449577474646095860670221504191504853032429121583446446586483383600035028764765737478613297563827944794899289260579587853517409912670946334019662691793481102268797417869551050391377899628679156529226630323985318023338602851929010003931279025740084115272033691790950901672359016785824160627313697606078993026104143133139232855244767779929388349323727894948302576382262851540300637432240489088119804381057808370059780799844876355311217921344529403954747074757546627460775944983868439803312057278318480895306537492280779438217128063717762759811303848542789755803643834100735070081392983950471053782012633383831350752967093740252789197154633316676032243585040579729571670956185278018069884027631364486371443253510196609589075046199668106021334363473755085331905530734888999828826643958684618109247992030809980442428853310779869427762012496074163238452931339246634290494577143255527862977393787660987441573740866980515883407874697746848867894867700841635726062929556625154261525295822727975405460395689379477714227498425205601439226170422340526738144041196442394493926893740561712612311454333883315674020798385104572121138769253349320152075910723141541307259302225544076496432250666703100484378340086169781285818995055051046274491894190036181361689449141992305926612491430454463562335734282971777968022075186881008460302371988684928913632160513210726189548356842503847140840249001258425855472201259224982205614638064501573470444047832424492158237791652033056304614930468882875391819665636806914689431180280055051052305248592419177611393779185024228132626190893035229090889032515437504394471011808951852807640536992901179787095911539208098413349243912523053890682745190693261417401047104224583182518967093910977645771255396425562932288211305406142508805440265119112860289178701901045375683287756202109163534349986070762192419442510961023210821090715117008301635029943381385455033468895777882677939105706040059488198733779696330186218141177038234500193228505237836954097647696522854773276507683682513728355914816769213580272738682695002609849739296205038532465873235088784537184008605749759871490531361427720268135538214693237497057645956254809592650015026438262995871433515856016556454045428646167166418600395589928281300827152306150345558436942873368491572947387116092316402822373679782298663249519385952038622546110564185609270007832748077472432787496273201412995110182411236192258282602115688122409285911224653384882497782242735288001249260503291527665034448481423844443982631907793122355174270325317265511190918329483148774760908783793568226555633248421476970981984049204212033049869107318665344698023174644043055892597416073953306054649799557236361280126596435658839657528496239646340796548667776691362690078847811288564242873577957817892271492779738299128811661225736251622003139309327353501251955286965898021107290014674127789506092748008268584551760209729155727749646689190988565962302490888827761728749894956557261492425052796994971571983027461397806845003593855637715069783697019335278675128051824535392882084046920795608158839275404286076780002406066801168753781721940074185281542490584080592427592674482224936742280683464387851866580433052018615854088338408767598535681176776919244738434212848588203731839671799003707452380903733518517904101577775912666217919594577327801108346886168285697407921490671768718282504031155844235050110161834438098485275028291749723025719764847228288910141683268543394329788665447861346595225819337073275719487817719366402683207814931783849205888605623796812884985115382289902449776651670814700663338653734230098916406724004075776432088624695201085246609999014953801771825183628563298737799348721631064961311744934787067029811373130775315836342973713726456395066508459005099593712793449970634684360964043439721291774844796682101629117888907418183751874845071791118404759033942778679783966620576028472080905466478997406248506649578248579691513890368318368685022020104273653427198459642344115001578945356781919064512516088228749101008149562520066790766567831696547047688186697547098552172765060931521337708824320764901848128301522521882566354999621365333321916863291927961987328736758975109770911764771450505481480595179413871436646171884735626808816621388548866162265813286043020872200079757435250653538147133651381396741746440728380487650386919959049903886719075444156425626849117386107268423320277982195149724915381674586281077456294613795823269135926444494446278221736328014319945109899973184327605244926227307961739175393451792872117845821020589914868181607014117715239424083282362702834489994457174062390900054981849693057979479858809590651007023540555892517593450571571298134202218804190348871426823915139391535573903516151203257759483126231340659207223110226692298985486837118996241736196102175768877954161865913173767999418505996529421831258995651017268923320234289231352913334519149595557616775317759695939582246714355027514111689196883563144675737415915617637465054755058846612594397042173299162282604878354085302680560651353576850183345096549066353904807913216238631298208485650470696045477622068624351887150947753144096193975121689116997624043931830203386387447589789829173371600573309438449862707618555923844562698312735959290093961255521518149595275759059664559058085214213213490705454592742679919616823154906671369974670612964644452885537849886666071607924822159730133794051014199202068360350166467088579940893178355751963561227912148462468378021033984772136438506591191814104657069273057366553852434196315754757749599396220429210375800299295455934684981862277593377376719710959644400158674117951798546181125148399689339397190563751857155478956329204051759141237703402822664485251425544258409645826172787644288144309587625766834301969874417114011488177237648692500213421135240696866445824246578367475429130986851870648234458388934493186516407914915127287791948329074544054505500569255002246158788779042787157926255042850254072178479585830424650935081747723623432027667808745965860852478214412125493037514037492926445450341149447393791878118233025670594975093877745676152330634447853903159448865205203318608071107354783632157011475335894252644654797285432915016621487599419571670405576405176337016894026462396847971187159933463816844696178944394661266588797410049267401710605708839800379609435611759041575373288583584832724300153794861550553749213160398940822053271676979450541668089756646985641608380433597252819032095974230214238445617670856928611936003187546581208626800800465267114172132612951653388447082689251521340974360484660024789167163336125767709086123864147249970736877347744842958862117570348831196060306093427544154455448714683746284165093822916728159005539685138514860141068180707176573104435726834661700596798151412657287433553340438594358115618473817977425090755641181971735152692172015353676101196921071360530271686521263900247150158509814773515297948199075133503343400467696129684696057519811203757439958740775999965324227718890082705534186496722588150019132691228560107331814013552786039119866103658942104458307544171531704733358343664508952894549103093443849049738540556701055523322447213813176480891354839684408552043228014169555019418077195331562810162205918633770235995766510079837109529616921583392757894887069838947029347595630448450309354633736765819784048564832995236769346562422861793758194528389702966354733224786939541731250329724891608117232444609423049581579490046379879503244121190959217961261797451556053833330705357115774255136208086903209906841720410105076230910921499963339310245095556001197965116032764336093250613096500208803298245521764128911678378981036803373283568342799003098852934127617006252187988105351948606927407488145603851820983614671678627793624252160093598233335949750229589857874285158171456571090622924305075312860168473705022670345767409092030950697728177306361154110566743839207067798246144180392866034848695212040511091804062134328265444746473272464519607370115954299190285658304479895368690505319156099806508741610130680620928391950173198984658438288563609717509975481038572013224870226830952192653315702635308618296449136596416817790966490628529725546037449158181229356798810648275532251058342747744106734852624476353958307909438821063044714501991612552618758964052790779916679648782276258369692676623557064671807274609663787741271419507945745477358184076061250118636498773578202578337115740545432294365402142256501663538784495735151696624052036284194363470303929033162700059249380549135590569522075580660742487426822116824981275041617695600148510361057624687428130290649751565471062952933189133095535413930551203546590146815754194006842671503438874077858356752895289492100413980269102257411474896772741003295755700394757052243983519091804557866240302962025057526456537110231076516792316804841911105645595637967679992025250332372856217478898950091372948735756118540493382986067093187095013605964957873023071976928373158937592467679378729743466074669191164225146903050841144075861513291822498496129672800836247248034281743345602168261924927997889860638313185515922756563050519191303716595303636889413748760368946821333149917479048536500659193747640673055010718541102009160038904243885235889062830688649247354940601600821350217010755860705408715974019890969240969633217257696405566040701979782559747291704096997620925200441234045346200897761026440891014581923726355147258151787481445583272032058042771612225266486608081319510826085886915331966108324512474603364019899445482536651902196114316975574787646639047440623735492608716162284089309881611862608783757552314478746321656016546499020307715215946138637100964136946537740730548664800388320390964739836726278060569866293983381055220057744514388271815063410554917880024662070346312158352016277135298924121993088857072715219083578443318551962044274812462183728318556539232731744967870711303653435867298879497741513076045535444510274310258513967111509042104088115696295758170715824578881761465511414853115328875413914968595265016131631568677171471761894568613492922866071176375794992538524036659085987562339761121679771994485683173338802262367928690829051565588170664037199326665380973133076538642013076273936363552889645497591419413081847955903133803146735210508202905164137285059099878640680812485932052016585967775523672787296878490455229047692486473356481563741934833915592138228905417385246990692808755642129281488084261881561329742863371335738389872789593432393294145887449982134147342230641708135116783215157161706836454453779044761388281524916405619566655512969189280974976534654164705496570345565094138413608553678666626296379025274865925450735895513447046017979991964902085156629080265318273036144673184817871378411386976806195335882568291312556736269734970121894961920566087892902191285405704172841949744463936013602008719341236251052622775053846265439957105501344309317212707691057705126670213104945255071775116168330145374475570852495714477647423435530485095402821001778162790613118932926139322206487277961253419663532002758914439207878119005335706164961206692760713477667016144415164124949863571621324765337286143720727301959432915891747921073333577298713449626459361018333085029407165006257751728864471619398074196351830437649690497877752731485427584484815851347577088542213799281951195310052395707893991464234677945188596406091836167769589505138945366204953808472700524041624887532379614929507135740073077820265414681600101696868406585130023370995129924062738372641042861521072040487978219208734315927277409625679624767326956369008035837663832962405722655260176703174222434447950179142110150333899091569334211283030328718203849172397494947574596483422923492626785349475249703132708290689604985325569138239383395148112301513357660077975880741028859043338355448893149319182128141004423169893130754142286308751785608638102315223027555383290049824967786876751997088455275227602234387083303974928213935466283958716801153022406846749281705116396208638924680675640137787818997563719952375979550064958789574459280569566750363942561075247289560314855814927175484829197337831793502317307623314685099040390690229150597211174862823755318068745521900735934065406814952956840653722167566487854572867723972547588816241529182153744604603906055971870420198750968367019958924279849929881631432738815617255757493808643112308680792561592647431601804696146636110673604499164436265474558581232179029211639163858224977645932010936957991778702421794458203924455962148352619477353730852866054034648210338118032921649196459962627877706235364895835890903577812126050569890688879909563028486359091212905303879052500268269740863784486808724587801069495802834638254648239095083162118162642583704324197080998698213116495936490632252006372288088455571283640829666412910211576124486883324369309112726708291289678739803243416602710045088819390702705747189894140437957690569738695328282165653369582179501472471212855261104709492083853555289104158297041370882053755314786014273387471114964571370945026214148856534108765742795348334154305949095877296705843254156047081237478040337211320611051475482024883081261770616023113519842541124674165722342842832606095872149196616347708636693827243410866391532423799582849559858314458558059683763456556243215117891954610594676979680880421971068578182988459397228695532179453492838570870644973969351405012881596413642639614479982342832149792087994272055156492855946107051086652536952394429935077214187163881858515990637173744498987374611739991611040339319113187365815027030751464334735747571531095089679971707672718522090929081884926623960050164712070569412397635185834521628512187275057750334623654347182537055629274347109022425406945684725534357432631113449725961591766059799694347675578603639974746291015290989550657552605694050049840999530882595326415813100505324466877965635267602590843056213045715923658715027158570862092959708810598626730097830606254152768661714344796369266230386094221540329567821937164268422456702449167849066491251696505595160345150773932907486651055738029221242804990280953296403959332349582695997851933432454983849935987774535926673225702414191954271117880831927199211975164668009335946003600886084418868944178215555314448327304544948801447635993378711244950122859634585882716684461798912044862867159393480964650751162446678613914629264014075561325389881898101395286156642436281870832720950317451210226164115212368863010741248744833374801624279269382561845021034407158292519865618872162096086322094236521914696947814420840919140385398036249624498690842023559337688508897074765433063379453710821466356452168076544331306447930408649521309205250727659920969178248065344805734941536007854006943830883541462905380392447038162872653790549005536827594444681061500934817774575603403663907134964456322085974351106676756660097724879310679236125785600505085417601157865195341561746321521673593654765066748571796214268554910750389103095404121390177434445639402887397531193656844416683116456121109637517654601083405862640069290620723942742132779238588142878986875128647404839551922639898698824164158039511578022072990356773508068238667313062516393365652795176703096897849303139843242880467391664145192025562245799653068009339363268147844869359448144754989078548279959776755446630584026930678486047888470859713775803800614474540963760329674480417071127596265225424495199322547651170480054576850860159675322858236193074223210572533270549343339936428260875321832444138918671476188517882067346919797878102805409180931452562977573229666118100934655994072119690192615307521872848489617665352987588499995393786442253337779499264527353402579898362693568230448728042810982339608963380077024210113123845764066932690856144984540021260202497153897723960434761919630725637255325860667053732039595061971882343647225343386365829099974682855713557165704170423492347460731710892413310776695390732347440128698679903865541265137885654225362270229838419937894490441828635929582559304794158134542197458313596502377334702545238757872569778070501582635677998856797859472322989103734090305924293827501872714688538856100300227968256211880675678962154066045794272981201084269895508463434451391856536015781117630875901101613479406391611894053880986783737846837186308195076457406814317380188092616861636549570655113007383465567243582642815050252265248583245616122199517057463732778731141768590978427311262346584052885361083928027282610684605197922343527931519661135666903481402169123617500758421128433841499443158594486066485010417110879311195817490813232372223133219848778951309031233953491819580693048787857875748903605733154541804927255226916646505256546431179974509268982163362940043035529631832190525791449926582103890330840996941093524848747437500999993064589281165124486379007004942824936910686332125154034832994740855728918822379827204582165202190128868419186181143064034908868096794601769681631132691970722718015468926667567969192465487519490568034844478071151963819995206454615336349518933495884461920671929379618567297043763609609201636603360143111081791682334961676674989216406627282939932801058867088003128437460643775698176086287402358908699888924000843410704992756823107304016751421901815969924138914839810486407458631802689845233920727406049995198350571487203228657122526039506666455641330358268343725713037672873608308635231398652103082531463988863888642381051681080145322644385905990558700463608124505742038492835031432516976225393971399668218503557571959082273465024429094478988811796387711088346902646461224051121588533987016643731013404874150411231885867599996583657036661815232053649862967747378029047148039438376058619936133557825883948263710807295516807260712507611294193307864764280824680706174192204249103843459314352919817078578528295075504822860539914727691982668670957190821184590804219226277850079564551544459684549314144370479994949984182934721533768441172770859046691129939791097195651647631785495953599177922828700404109692924917568405684945585265821677394917692476070691567175808405921148532894844071999637029472311248916490413323724505655574306122583771215410529612071422908715041823929180736204008680916164328548451490042879078013388837431032968913402072735193249826256443455385877402030805061889930177339072802874619195266983650765375585759064479569368011774791047568873781512163892894547523546551336230377833729278520416263556751958262927770716448393099679540109433364996313489213599183213607881380448235132227155200345782443237179570181788487521876323027100558998257386419101768089223261207818286707189420711218727947084671743114032714333555982868603966942414102881847683099276235273300562178816405906367938792379480237155907185891895554261239344596636658531771936131978063836830832695647086578117719615214662222645916756295682217504657757364366382046714636884548817578856416005440003071243676028900559938427830817748961184997081382866813430640856743505897514108207213226768422982209080597983891049216043274327705539315976485929447100911199979168860740442314837736541638517185192634194783838455064902827355829992809556317009854632865205053180659614408433433754576779004657075132297823227916429888158832807722236582567121579001828084479065241646927182795727527531874971111405806381537518021119404724077531205874560734049786304979314880238614292310069174573445946851115798289085087080539343585828567882561621066203172346291325837714700232539043994268258119465903821375117861121359838653208511706313076691380824942383968128942772758753139809893661991767561191786455509577998013400206098711109046177924046464035801705831253025193366406856687947086780237862567492529134103811517799487112776693576452808178590936391298351786519687061603594771271452409282519578027958472573881260558180899025205743257590948525035579247020570625759460743689035756038091807787962364341842291763429177238036121099933032997829688881842959648395313098844670153989680095744306126834358756402650733604717619877016972058116940735233929566982560877475923078754838211213065482357383870254690188693219378261351675091516655364513469086400078188978079809721302163408253518859737138092473461802890197848723383069673506894325260076435208365627878043305127990448297861265800462671563545817196684374343109235766427350998734277165012226458060037879825685515206612055101147062845802564469393199783213414843897539694300802637410521262277706283956420098012885628322805036053798237714811016567262294124268751839194454639452485497199969903158678383683527516360131713876835473498025020511765103346218765766898855154769704471510241033304964897543824683200703229641263730958336147503788271300128811491509438681517849247013960711132667685979223021048455217133178012398702740398494421659063451892851346688799962775734951405564159801564515415751552258703335773706531740149379486363972906022402738385004253914251576369498706539249524045585346680445328403100604393090271708927673527219120714030770033560651335319378457952609739385273454785754010519025172852432688614573853515350849778485095823651638644779233291214991679919332757769334458920866563976223639544163798646195791032943857627538739408070449251462470660389022948408007418499294898733907602152912776155697106144330113388966829019402176186789652318214378776029221020181471827387361057417188154332208160815039339846643295000724914404758763990403656649588315832395620217163039371042180092001610672796167668457446289380510406343246303604355223411228899614332165043295165622181589064626280491300261218300738654235974714395287217261043664019181176895342863385656800413493234854320555204985395177118909199411200818100785060264541680382595201393041081538918643172051821999827763445313059228168263969344928257915322208932572742531329962876401541668687100400291307146878321020193671119126717479932090647979824578130794170745847623443900836615432687284864580165034377675466056859689071520991861080978207171729813141111961531340257283876021325601264007140809798111871776996374967665165461427404963013844674131274679370245085210927222019507684288004996078618563080697065168483619325906800492129924756199645024427120689893426175978054447793236721605585949258368969913321629240851031791225792373373412034319102778532471376687483839596836826671011322920109544382474961384854760960110126222792426444503766997695358537010742066055107260900689732714152078134635157824069153707213875809078271367747098092195680829831608476365192733446875978064069671379478625395310641705860391222628457837637716971381431232849837110993465874334648177796937405706834797405215475964478061476907894215629740752951874376802757682705167271023205025711404481682716928187930785712035450419914029542265496033796495123430623608702612356926197632013096271701243398768515923466458166308083959287763957251374653412330704230696065416815711518219202310660965824253839516201843274291704034601392991834676093585912593011684263527203085849235333767315838035397436901949614162272709091071362041202148792767608602798858697467660521386437810656273005731712874773664544484714764781675517959062877194185500845292037734163239155654598212569834032425626180077056132473090440556522330400214393482720011646984573609683853083071778794013881706524930859465499303756199159715309551596977743917088799577622663678286108413317801676501873797140123695007363341197400077067573120245478052125253835053857062974487956915358323579169974847070641087254178365933643457882343246830334442685968876977433009275795410156314637049365289385517385953221753779902700304962389129214374604070178011521661872055648454010815940818487287783993417458531660817826330661475478284977828885985190714297233540987176173825529904039165003990851691769587268332922024113731028010556741768944192616446833419282443059650983184559830855650617975143802277708860727434629050965515708947710797408397146762521475610850155534275627581833110539335855138207063643984117778090127845520104422540124364727522430911963113260877223896602670891466666092272939109892351251502427964742665694525690924497648698172931926953549506343487343085848377757941964568053282806085482677303806684812290032405014871065641353897694764829700538156149134499342716332202936344965515152274109359149386535385039406379785071418164386627256190056676052312102168164186371238617201553230417024047094917211981610036216043330602380726390755147886636341684768932650529652802487817143575122201555260733636699807239446231233420337187666202044861222691666967379258527054047778713463707972025450701746966317301863705985269184901470325347314576193557278336989149665172631167350512258094477062407675357589783127743670088410043889999552000621973342678793536553040698651517743712321106187807375710411884952157215527158338381608601273391009411642912003942093150578216317189767759335917984327596797660301220982713470657249922342776115744853121272490300717636739705642912949937187993424407589465465945738372494044091136276595714596805210186011695011769459447168902502950780802636994012036443251128078358839979136494798225507748396163028667405120244863627850686009662657755426310570796350059173201035275249827056033100988024040389615843092255698578085171683799336671842151519303002794622394627829401225064907420010181261822224607501384575687379681642668275257314652381052839740727340878553035281467663355099994550470021566867149247577975556977212343897386496264608515453117426438368575357391455022505794266229576281376730013486405381969792193001813265106461761173472911412588360435631166521379498299127699072054656676365929904401053091777908279273550632735612242160244600782949964740423348097364599825481447304880468503850234012272065244954236540511137864871251845021617482043288707260192187873136523842672484503048093376061413862590287985655312999044834456982435459415452434628540615658556074233296962058776106474158227591245916077708664025940237957645586774713597583379804580594016778390322285693768584727950596227041887983739145386288039444306251261414554251532305250159635795760733854933153378760893826030343317990206262004788882356230811981839373457522657763495223018851521985141868777675197011275814798263084881418983969732012742092399396880569487608079172546775184812049000217830045661811291601403774603323161721843627921993845523279749637740166087151420343729320982730936072170812046619420319977202530193745551993398617907646711916347149997730350864819199993357833422600016518739117297270707952148469697827051017554769447621625486541164822447593987892360722657495836439070808917738603053820105187871547459779938517258852893692171558179855861351879559839336811904289916132322894899704355798215270798681339577873610952618736206469100078144591677028304004446775763976121389073036910228036662910856959748158148743576364524437436030978041394312865078049954209850764836050799060758472544357802294828110613937445971717973485776110090023335487470710645563677882038591919186285833260771925068778825425255485775103382549864339056185341299356350621471463805097857527297628463676971224007251471847823583053404822517830004721841921590409086433413838495270881191034947819169325031904116639108674781687269354643430636196336153118333053034720622096764772488134334801082314344720510719901311539132322919086150334044639333494323577030164151857162923957330002727691954793424725692831841717928198968037082857551277174110331939110175699257804693103714915784612071499123072265555957434028183193773495478158971765755010270350830508454648612189149301355243978024661312937880311665714450318178235724405173271135108989378193942546228119932628794199245089821328041857659179238142043429887090180977465617395583495531686201023081925484503209375264773819945573072227588418421376815625685023247002005649470921424445922302458406663576878987264912380402486539089486546890401907611564946343945406937524681033024171157979505645648694331992842435705711223546379602752673538401024698268312503110912791378903216401312706115314331663599637464424919883763087749873180881796642963250129480248475800931767134658598051903914277412434213542188122687360409392980754302881018618889035159109193606225503328199038751251357202336847547852502617062946238717677467428424565788822146649187033375703223949657896922746901912947451843542939423636337237785389842617172388494560376240997115046887113902642991417990973803164064962458692145226302171836117536917319132941249951489134381065100272877703537412606762454586954610825398294917422121834280477568700331338549441897187170536667939209031539483212277742784431683610098375571298564247738366999067077034261556121763942246405483700638145460664211829430689630183923761058613393982137308665269123884943591654262742751386925325350249075815832298319561867210246608313294426451632186038328109699599048904528181242125285147392816254042374356247834113088117540209554522715816772272018601523340775588266471985604657358880477677935666213833140927366340911522189868779812924485273666767164543646595413388965189748360882090371710338696617812379574608952066910610819471319513529989684925930042282041226872993937954518022545536390784671112929107109308233528528314898688456273382351422520713450932067283781806802843458662960785463945905830977684074912350474634131517221306573595878518243528067590408475037731097695042107674412710114009481670159559494560814384325527525832231847277740817595328583997864585964938511853055667045803476326409326624556885033848111511925110166665209814316916178440235475270608189586625085581047880781155131247331345361530821741476874418207994779496679559390186809036481078111301342148768833134126602912489614903275557160777119653654817735322168115746192978219944018426558426831376190803851392354171255878217436092568493926036922323544903820807747371823268189929983678830749393935013582046927057375419793865050046565244748912636202266072407300240287440204313728158662213674675134585169580733764846434185989677610260652919430991630818866219248787755256831118101566050664362976801525771395670969761766977134918192996443973657661277386446830896049375971603586962437867368415625542394919841253784505536690317042988001895703851524785504992253337766124457472533016403077481541237566896892021209903606761077450369202044946248000552311864135398733472498928420226328726119112062735425315503621104251196863543869771855301843825757814305984502624770982196003647389195682746819176190638468226988514482264648151147623437488314464960421658221973536828230352885715450090588541797522843061131894762480998149296245692035246143022731779708778493209552229760456334188935643409121123723844757221622766185987776142567424926812789378126437575774370296941110952278673546883559355100903731766768420432635742577150350109892804095500197894226905500699635539501817850727546169841247698448716967478671571802813326311767339461071247889786051618897377390117530432989721560549224492788562448385073704356166031702405982380210918009275374893802554897504880504312957779320633941198168573262100659581165475724565405042796230310801299271910807952854159249404936538311757162255543753212816570700678753333117930907479560345024153696113162422569094770675301631792614803881028734273186715337051533955018567378762953619851067199526866794532469541474063188061561215897611835715886559823626980058125939574397453831576652275756873432958972540190539950647115153209949901676204685399218906255334191093853748266881998034335543169632663346846062936578120339916661003528032890270277152319723919427262915853087710028968010003645651747150619356558754971533388071278754305755610826416349168457842558095568668816486876796360543075194154405348540808155613459774669814534994786981133853016155727402433972211391599959190399115064098137168408473652330893697690942127643007604804258137295472092685792635410950050058382645649346153537480529374227452136109542285559966281646957024246065524762390772655532366313359992047156990239529034780464881412907651662281385200462257394560703800774461515059917339255035435115494083335947739845868309541830721983010491096125621182843232257387224415247046240431156347050983789133111532410565720785073597948245700291775269928106217377308902151969350196289272974631085530564986413529188169534428134768292219405540482656916559383538714695588375079434947167460622025598103686869138570928944444257691847758903045370124021285580460951478458529996162465163450037789734471656954086279959207812013684303558672680925504618604139241069955692191333715914934168399419425344366687021174778264390260116083380615736999636569837550280466822642520160173714937439314217712532552712113310900371265141844980910944461624736759808632238474411154027801317768151116996829103703195331651216406752101096425688042113366321298998359456268669526581424269155184076229223941395347784234218057092981943312215424072679407804299842399315188040703735769741906716799554754765754452658527464210186895321244826187117130524968158790446676138282956869997890776750239441228541984728649403029431895194955450302949431962373575635678808391415416235274868074589786110727049252787446408847750041707114858156436690507904620004388832258271752003026754130665080157531382388407883054196430128890491367622117585827873816869112885117823394919293446076328207038736912170310540126954421754704672676778929520085819143494485626372294769295915835639495509532187723267866297761061268071289565625736207388728969500291221824523878948740251333206019230619149451128794777638150771009009677148646945148396017360276654471385023476850566732792178460159263573218462190477907407038539053589940424873195985813550746719656950279270374062639823192171795137076112204196644609440836581686203394788041047334109627322100364279992153710151762827399204131698780278099796733144107262246417208989246080824392527605906201239243040889873329464360702585726221672115854094298354743394647924385260932534362214103394046855696250176532019621354111579397427922494486941197824017571503153120339989719513304858407073686928503046945677705510872212653792870281002206720589025064612037541621042424224625238694591995721949320283483365912755075883097231554866837719921666348313524956372014219315028196919113239340358865073935375844404126524340433592536414545423996089714635451393097506094608092423678068456605000889461552342102720340756979599420545288075850937711648440150287916571514980704112832944962478446584158950723886182388959158474507931441659161743558460494772975310728349122775937461435285446418611671518324932077143435881615642650069487114119706770859088515723000357153868832550349330354959585384724387002026525600444473528407778602069422505041619544395853355380947676319302162061400030731446745744187471534917863280168613356397281558180634454537098818784508704926975491592357600143043284431406617084742970708946261496293521979540031000040867854970988674820648063134457660085564036887697672967836229080944983098553635498937311726099748723624320071758946794515562060257687854779937172165340793056986432785615161036213594955412309459190760917162555095187711100625786215027091405046939386901643355750269530124012154889363956183709195229197734727102553237098372772439738175769088631276919875330918979085842816456413260862977322031813609200931065705542028769557097186837073180754892455126561352618963894026211803169876414421039183868116716735300302375737919119853202294759708470175837262801969756339651465437367684911219117713572475113447656872697905636670547900173841296119388192350865943122045167003701809823679795968085988510993553837703211149706520361817427127410567701914845045335175206354291792475775729904239665414250299252935727534386299643713284345131982420285679260006076654455716294282290758425978920624936959453348945545471065624962021692260643381165638318003191286917212795924311061133444265445558164397359080689482615573712358316663953139620536818230602227025245546151816177683291817201034536681652843622399336784940434896343196728101050206709588614889763845351790343550788719284127701069161435798927823611379185085066572798388912668786463968480933464023279013243805670715909202603061557790110556624077963255772954666702052146400243733103228708964461744532089214736546499478296625747099901708148968913901049243769694335249203814208102448967445676848113191302609406825738918051042081360035155992369801725674022971750353711701329669236373894154883830795255151033073258044870392534206516214756719968625092308126449276705797167311132779299717958726648427413125699994387071869315204191125457599681777979269924006136281349818584243905267364391569220058547885458484919146614878541864850024606298814097227777640084847139809048434529700042426025117377486919043124593437596257538063986031938335304552491620883811323924209855429049775895014479368503125165932386325835384295355877895722452953446189643397045694695657662262699248213452054253459390725005753867443738040936295044976369099303186549303461052335523451187192946529256712341762990378063672570463610138513731837382775658412670320736422110611623238486438378944792501302372698377852822003228027274528264697073392608369783550797816796433030686923441563955941709659593844509342575414598355849102810988256778201428984814841070887455376865713939377227066757870553319609789424483907893377893729022432791437804462449146235245349309647720111473558548530538821752182445365787639994384495454331840343286880251761668093941719914639209905225569895484106086023362655330413377308404300702120835314434947333129124164354251721888407982533044995583099991966562367447483178116173240657274042108571922694885443344912130973715146936429255653413069447274732765816277535705233163780241536866641516200453314321784213299258987101295105365355813841763479147358074135575911730482825016557730341083138877772305738632080858868980436393280778558911480192226148251949447644487100343195057658256469984994402391895707439890848744834948163510597005895146654983875459237607228021172027396693812657715781632659427968673894501206622794532700528377180245305294551909389243727029424008361316490322378782979032986704768399976526999499732968039014803398708613334248406421120715735210210790252375016918201479056924631782077489752277040362994178582452296902927420279312330523325615337234652707283691008734973764524656061115050678917167712026819684519365155289884057262819486622383764709655401810820060436514746213316506974648134819277470689518522173928158091695791581665540381023543703587230652591061180468486390393805484699136751550774414081839746428996352122690970760236366212856693134267038249462590486537803723821668720555405756202496155828411352871131630111646699428344733262515370636865295536182853856493882990809749535529365748949958191702611922382915377652782189421024705300554753536944758993131023185546490420129380261746342883146178748001793923122542323145916671360050067460450168745639575963474118209958388548042007970706932453209266172055301969790999407188295452094153730026440944197381752262378078211235454797520196402769831593632914002607692656839818855734583339239630478381096488221772814657418641268534109703504427467784329697854650547376762091737582700832768968054182490039018607269512786544404563059163059706031893180058865039694851463406278482018719361076828844037194675060183860960156856465360311673246661021075167017174010066425833429309284702276325472826527806478354560406436182732702233466650145140122546224749907608085247845643828951068573687700790983252452607273065533005037427405323891306838602565684925346009944920576649636785489064671115033605861871775937808843158116316163731523826738555779997061265106999612332228717232249756026791279689336830869290551291614904340145441947856026733453664953937192001550378413186102614365323611153691335369127354727376032400998080168081249188330632667274138799458889597426326669410585600971352063927856768802198205862235667045316471488285141936597028207024714621817526413098127108208503684118637226123050049327717857500887065047100252440280329238633164014199889349761231741374200879749463158388411491372079316291528156005823760711257354719426515075952995995677983459503135566706945237396493581361634788057715070627846819264917357340395793955086965295680926889349139102413955705935631895590339539823995307645007133011917293026547697838594698090358195802035109438777732864088570753195924647671130690954203183637158051677617715856776264933589364780191160540447053829760025904176612590164130431269660227011321953243022831575736445099576237931666711803504911688160582877214194701666507429262782374396879038512583720902489541850008478508817261300048487119177906841444114646941627983638958504731569231783593376008427113267383530261331167810579945506712530341947446577129191145832492249494950450625072211785698326893866970660472511129147812956958819655157179153416133616732785453157942289613563043080170208584140146192082971405383387755135765136673496228158624509295543124573655802162312489248054404813120822616395275952117733667841685224227391476472084678716096317746024218101469666962683151983250126786243542671254613642214078125361175113833684884887901335033652714445847050766168589423322789984806634131009766630782071722151044117491999361230855111834605493688212318665390429358146912459107525879098573563016219961358023484583948045688040332250390008292541405891399824199732388330257087253146170551763845240573214740565141796183499202419617017366793198439117019633671652807723379519010393366346989921088524724131559102986304842737777600085806707017254287584514537117743775038236901677606697521349848317341251056784906040623646664748196651690696585328576844694338908629196105767606994270130395578264176424134920176918201816866604168585541764342644466309272131497944549019112603679969785380588857639543496505211083446416766077940626031024292059927984598691891281465181278116178033811802701593725968271528339727262292476382133432382619455929909151370524862120630122934650941293761986070182997372416668414934919232833579647913843613332276058519266276261853562464218866147472868277256929151955193875033906587002979504695750902584475536388874553480035756982731348110167801199501083856506060203031727294581057561536302867996868235820858533984389954839958601845848992329395259776421209593171664115096020376421108812073672233195849296254339158937530668521717933912150148150601858262262722482656091351936938904445086511497857412020569908682570499229005947223612584824071442652516984163395049059347160416462848071881693836454983670273098167200730500129183870852209434294416707993772251910321496637034811791224970819536887891713482180062636650901289544521346422232141200863402852710678272095577299888108054445508164233412656716295703026691575893970447682549674853983663369874502947992672218518540070380208616575497546056986677128804519789694228331424002672658917128320960021863993681323256865897718102173540651094560280615566294636521396353825436139178254790377558402259705698595973820487909180397842075268222162112739642639863501892714357263506018069557591932012465952993324321072132109568646315252873178465802629915477363409172635781800430787249755712952166703692674543532780099167658792076302801962491816202523541161488304971439204233115604242455820967166398260774105524304283970937224009187395146420845108294666286498912257339355341126719809695369600764442797914296050186453604828904977615919123359393532761764053943583827308511707439729538397391809135481436404580035285581139720449577119939763972161494887571097765854027999093123740496035634000239975599058965456079340381418559703646814433156788554740147026411547970381520782247532368949602387141499087615408143050070872053489100756404996261241779516688768125973335856551307498676406185699639976096748140159720133945820205165198872792124220388073762583337212282222784689705484675464786814952249899290760487085592158992972545383331259018761240790179749638314939923269013226338617160543141378323135711888655543730180406477492057646482260954836217567711688636960837366055534037896627977110861267167673791402382404963135554647430075658463665193320883900008856464642459568978125582347849417889614817632965083674351733145129994637030306122399435725672562504124568544975362585673794836108914306923037427727742289476393628308001997199519404537247744042852847985184897328429859674173263419336028087363381078283159029990570049596220616132636665564393411879293636126038485212772481114421621352921936688987929716797795558597618206355399949869234916986850964367585331515788436129215965876376962906724878285685604818670410181436093666985294725069564386561446201091456315651728809023458905997093045467459878495129377737369135080447176890372217790412613865772034756817885779572765459776910196331491118969623424224740508420151649521707902304238616089821087554083585012656664244368991234318390986443991829544359219454816501838270168620668235876561648567577178838198250018268537976729550126097836940942356400953269318822528312857725521087283258203439289877780154725389328121581697556926337300576148395726117033381794035113010541782427509057198809258271821202850321053327689786673582265326330279948823221317766952545788464490708274548466286801216750906074608638577034833437654055665523429019140877601379699652511840159564539306586756318272653942409648175507594810274969296316789877271688123315951224884034775076464810714404775614525239593130688988903573226152816076777701882382661788098183424183990910893394795193947630248373362229407493923696509747208935984405113548870462623926383030804053005274239436076913070178495254287147542039163236588865105130650095006456386678044370124141278078543407964626731956877538498870738322414336947042001600868749939784900224204995832730383308553852167401702610592714010883869453765964118427019730988339998630232709817696194813458355731058288203351234782474046736418640519728771000531814426381947352890567118617950403589714299780409928863732328090754124272595136053725333164288132399810920128252664637233828957383093881317764334117116500344625227621971878375148221258224759316109280106968331224598709363789626626644244465960431029410137975528590199111747982834628573972405762857342872087488251105229927128905287587888197983862559148228160171458460675974036257750024623268601078254522742737421691143024259076845377881106024148028885369066656665363781401875809239210794640439884269611917204929702554328939151898415886153834611984830516964711071657665158585363703244293909934995366017505346644134479448892663942500766173508716509521275138802399564311557987201517148691143629107469295057092621678356906251219105782640968830431609968944147912667944004722322899042870365295467571204613958454253916930831515739097948876052217538752596590752736951104402847227222626165709923750205138597886273809484165686186939352224610515798520771299416455547888647655959959288607693631443801767575458078257144431098262242193635006290309879762755780827510344606369780312316981813948583261836329131702662365074318810026077353624169394698328642128788279547826630758810597753780986016663982462058666703332998732198717869198938989033535739352462776693925482347805134203201023610689704082609969477443631317667244910334394722180771123129089885090745606028972830417143054519462952995276159850830070020199153869505750842261452763482386112221144739540273378161499639946196720991559557983591584701087423636389893244262944178008328323033185867750767499371289049830564994882213807258137253792772022463753681827378382228858088372229951948533508568259184880219237525986203409494395135457095100691713311418440872971198020115218899311505356492387488405956163083140218170669495275386560149475612947519872749406079069745415271337346766139906074304776827794702099536504310758435207743507661597186726821004463064209359578478253075693848762333474837916798509894789813976278436608978656350188269798197262699238001471185414695424626897985932342158511824994171526167366770418283856775019094243701891606269106142375828374744841842318759138707856660364370246216999167415841616042403089180992757418424011500582196301771657167431820842210070711113246799212025189348703901492741712930664917153999378628499335076875998656391194930087793660773421941907797680841512212527096685820211699864653008885224627342016486899244782843132858471865493028614106277932158006788306068926351017950813679852602728300617118372425874954462197575158462519170926197140475407083975500711984790664541388331103878806950821365708421389352240124855987869111607247023376893615727072547981870731741809153268603581545840415750891525838884850447551975965568738969410480194408846545084831508170406123056281465717033274363319057883684241286985250799351720974256785076096792603495584220976973590800428636192500544701007272713825209507336552751933446357145157041742111610193982232266973622377801897462682358707010550305213156373610978844149419449440380894334999023746627096000926566545620524464164131291177779390112667345881973636451443984576148558008785332165117007887046581615080783841162734675850544714430850905284435557387632290838194051825741327270414684314974261393227459591410283082003049616685758187513990059032186644397649773473967117618980440225864241895722039007400045791983048447568762840251229322626310307410688930361456387064126385837927704394709104574788484812500717653884944298789545137115997638076142304469316709434253630147724879658564692366280629532633560140510689764974612459781300964249723380268118709643000616636436558015901395393171678976333978292327762719905498795554958247131702814148004913198390948782422187238011846830178552860697545491583231275647169171210028596260357688978296611306314824760226433828828349195898028714754131356214997374086087284886685142773561489379948709056995185189243359156403281018496371976453876868780233015010413428574020955171510152031982851765273528030880657676365531022992588025182407980346184632265668623263599948619601700732742353341881259076690472333127552692709927825954661956611186899681440115606814927735264253679186814101647773797810661345751802915794600048067751377073645265388442918906207618674250626329027408076457572095467509179946072741535490516058144758380698547168056778641424175197051097219153510144688463528454184674465399884579474893200029189821018573339320712945466490320778952602794476587665322765988008986492051122584153004548491574315809276592768141952947796221120560494820027497972525404012672059731113518430427305618914202823675190654391347395633638604210593758062496057685693295900857119607456461511511537141045404934123774021937491945065439469776931532229929868636465773330006068822391618987176154894377063459418027443019320763114162980662009381822812500590904156751017350223294552312066391550471192045984909325968853870344995908897912449438211874003419708398897836422858687291983951694045719651714264624763302915803074761037548994382016600300458799429781791505839285574137541347762613657978294412429665819125446198114037598825040282833846847868457016123326722472741818345069868267625613039841286150949028122826056029349691514656884115989025046341726999119122228204709877827012809138325007645986420151998617065558421826073623250074799201904460387188137068577843112364976178704526283113868006115784519497401937967634852125902237312310582707405814508079001339486873468479450377080261993693987702451587618259325231859060396983609397127622128402471149262238299641441397499284258299930320659190955352514845784690504406196085417138246214216226884806952072178622496074471945634363670816045779288949620980332764063766612409864532427049460811180429084182402907601031423745781412193553033064036510432966628347982053333447471019170181349923685057594993393145365610895461255765178295702886651966387590498146740594078331444703890267379092046549008388362132128168097562419834278669501801648678392768402758936463217955568406250719475730498121175935105479277549034635183652691054549380868806552014474241580880506749550761636130347642112105744353284009118627336323619007380322932131669616642093695564323106710894053867898822766984849487031832660406957130020908438271143064249806215286450999356321173282701506127056607522531245702114600036143530417090187486459411493912269462898785374336745890347318858461362455415648720852981558031121131167115520941964948828651276263564637462785899273662761992642873744375737162220550045004707846359047037657243283288289836102041934217032939132234472530849061171851550835114958528385887593671643958676617919491033117872018759606660182310458562831803431775799935804112446119151446095333719647849685556888637379642377369276340363702557926734613669187032004545714643379501104146286950639256872624758849074253574761731414007695508872118992602243668823542157284858166485549653602896145204500722293430415115198983369797038371049900962162547176386103201607960430786196586939716506953342946902702410033344081675683627962247116423099379705244589830630133141466746074264642492318003203509943104213834000744468552742594019745762197897397260978783248543064304156172443961281149775638178076589424838650138941121559830511211383898094300312331453153627511664072997887848185464833219755228762525129792803166143759177364119879452854569340464284286857772969709706205189487777570949454495433674116089478564186006640712922408749433655296010969090097880931557135935385982113267569305346223766973678600376780629406876276846141725526629342121283570959284999931756491898927463937106968895492594934486055942887933966323577829045971079155742698690738668525872281777146169520308736910031604068295321231200898680591534852214905980687889836721430384370545062826357993687559881061075913447967113608524526805411108221823695060587109421480706571717637261186234421319831993587882539722991757451026536575292401483601253900330160769130783339081396177521978294873206020723633956327262093783744996344609520607216984492077250363075856687903276049176275512548951028754267014621052948865622930797851668733173702528445933872212329568890630361676728825601138024861407625869905549830030138292927493259883053087665472909172788574336647464729609051994394112543693935342603896325167114409864049190921619020659829368904570638886146316315327037194545008778665429826498119854087588416788772721060232343682491888968800145291531909084218125164126773162564449376914694774220692939577544849883526930063810651151186698080381531880988646272087094738299939549909406868323658384127125015137179788762135143576373610456084835631280879931869755240060920110659381512279057580294273401991967220744682105981606471981939833261732884040709165430953693904467832920047801845754453326926727741561288744882252347207103404903383083031933760882789171210344897421972226606737187890584236213680962811051514307597850041850556399021895999959665108087125129798563130790382253391968663242889959863430775092143910750974785926891871507416797383716985649302305850331003015811358624048780600033575126986468882554594869588490755122538456641787388608324118340508932343609352457679827855547629149108748300010032130959797255302891054086338506446772896494555721215098799403036765491011930160436150547854671916895426586835716996681402267570659851696253756571023209134880236637382066018983658046588765464513296064809696142591271063969691800951878433463005442231049278994117842849627330313836154347540877792070889464041931049889804180212213077092418967698235462029363622239274714203505578436116502174724485380081807493576154889510393334973471505629425723011371752707967474130253027981072542415245627008802735600487182793901124774347618423521954991704042578020722220118029358256177782432180150844593960373507242733280513934274130157259674899414071804890831003636244731623039543527273398138223010911306158349071679569897019775350413103707906288938965623788342727274707949377091705263097861381121896883409590527098694542360929450511229705333914925024322129823952334615676786546965523870526501583744697354253234518965294124416848612218078507241577681972250657941091152945708886508620256498587523456262186762063581573638712894332170062102399494337000572457566490091295890167777360653198600297641776610228259539290163826381486702293913584868757357006630564220164954455030277696075144004596110815159092595811075700683755065246663926943056088236516152170545371370921742054030904842073799958023045133523606797366101011979208996089658893899016501380225473599884348502860212333023811115696910792008013178048600346711101018731364699381116399700505482800294262951511565518250201391223230555163887818954312064283612728184324982427228069074252158731928111688465905905658752778925787629640143491325083888112824450497626894466724577498991197034432626520576120500824376022270803553352292471764482690400036636883075092611275887495513629626154917255669995490028989609624276249514534831932968254275485069736219926538610527511323204564061638784277771773702892330562809983573648300501806965216990470410595201840615126414742248846772706859088921447001497960533337285933276309206913260440442029923014310822924811096384157769405515287980158377585422388733490456254928276374844525542668401208211911840193609922897194064159621815656895970079372408366808980985836613285640314853132448628291262203990465111364006429739666355403342459416115095819776017315269334423819666727339854169738837228676942132542120398649133547445907633650846153358043460926548403771405379897747509618309662250048498444270568346977827524027299387889351574261091329941705620245564899049583031612978297459420086874399925920954838084826131971736305888734481766018293975412702518227734158816917220224035467837260847825034198137191590527880388230307667487267393275249697866625437064420835374698763355168604987007671261515462330268133807527091854097253398413851596325188289681766606363253263286686300986826415106058757621854929362819487042492705742111037765203057701634997200794833292095676464082528218684515539188257677306876479679882522866443094408710444353905506090475463752848827576152902974159949526086133991057833612689225733398242110576988462830165204872893757540353740949824776863438636825783475349427003964745654804320316066187223158896089957551049240802850189256798317195800148975857063018498298146225823012119757018567063262359269681951487918688749549059540370658156160472033787364086223260672990094217101386488315694866282899135357809526985581789795542336425920026669765958482577948427534581974134356036071854998030485294067335947624413399218341913350285923912947319739848025659326286930735255195059142908539579339629464397046927792053905904308060533273708691197064664271440862572663838691096006861043922980007668911900780782298168598885690064440067208076831662034838308602200334068895874747673142760006457664690454701467521349325405157914016261164402421710341451748293156432755546141176103992990582324898094832723064241021056512003267152315362866412067469388410933692713432281995525822801075256068105327680865203380260980920912444040786330745445735209713100098580403780451197933327305173191754297783580944486328089607140485540837051089589491995459247372878345270844871602291961645770482788268718713004396262693285482889495268392668552925330062160061619965557045275769754986253167182410618623059043439251172068031825334470928335071612781415876880261216792374891897977192736957528832842647614846758875061548571115231995593417933067330078121218841587924469496354589376988164713881171935193849764638971991904324108374992279617141929704107970352145651252893732603591415383504001761178932358822608853865956186593546106159484691745472767460323814075802407306881598080953508898372329972840715722991285984435312167783538653931428357215159945818538565131091813119822657079175992978834360181937626924275247279206387031539888570436732716934207821418633522608276123574815940104833272308582983278718851212931415986255271919747452443802765501533248615060705824007418131302736957221353134508520771487769115510166028474668267380755930226671961283639273490333830683502971228471611003395805670298242813166800649710032080455945377244444223443639995903775350919816627700930941139797368835133049144959343583392620504498548591756484331157953068704248731447388516175600206130046044947061190500062460984228902242068848183346683358933430093987283035532559582887382159117745244176616325400797151858320125154514963016951485458227947759478256842386735613352030913513732733176653333599823797426760948181223278065243444274830559715798721104390872354248093006785984400380751558859125773799161282579500651964798846780246255167876413553855508163384515361891539655893733837442407432792455406632308264581219601031034871190451023705354922198670211616687670283872530287573706880676797217376737422507179222777794789085860970913025656383685998702678216125368251511693336774782384962680694159505170369128107296651099628331265818649059268127684635797521779394448436829142742398493424645135577171367025166767536526959190102702709235498902797428041464483178997960515431662364170220734359913816306052637391748932220527227539099203476283982893779660799314813085960573079147405255597218243651011587337171911612416998096999666247887182402368314597042879427952256586223371269622725949532978691110698855168600995606618012970938445765050970917229528518404350101148227738674287306080369371347859143208905237880200951712706594917041550349017227949125457256023105619456094710890153404550164962025505546368226977007196470723462525477227393121167305002080332693464983938265527513851876006878232197343141670146968887803673291371898767163739204568364718742790114480911695012023470750913771732255076207142143706230610171637849707953069735515154564287587574650712109849266915285628580538815739567532166783638707419057805521964606641121245235013497335175642021876281560026016546986893288616779336328950296427396303633995353213344659289640405929039232529645924494971741097415457001314834750158685038444787141360760524230789266049169411598421507519479858707191044717746385627236683707986040335250473507584086921989673348679827585845611499808161201153928609389638079170025520680148899812438264072001605797705607542436522543977854343888127183384379075796629029044531066277911572075929922002122849049016729800617396843850017884033887884610967910764638826366394096657634872252595280285699274312292608031547340072841470277730485319076395736725891377875375650981244255624709016001451867498118951674205244052474456895092445473535508636947577243577915806600051069867391997185351671064030480154417956331067615165688372473309801081953837174576704470907082307288063159471567307466675877085975424126025245260679527353268502006071850030616484969218414118399954750174348302565086502721768462010563187582155216283595204571199354889953495327125455058346055452122314695212793137984789228658646272251186990485232835542074117317896790823001298717594721919592754695600861482639247549996329981066938356099291449554553893886472971256155731964823887085716664534955953560883980313860339371013790971910311204533677050709596287120228298065809802838569348082451869017676777211721013076707349199271417745178714696857716654555350445050958083148182404675212061373528445735270862913813795432222021991082453946700888940586156222346106034973975212044343560436224505771609129293839973668153722206175642600969354736885279633527750557170440729338126311756805918356418666072340633452757885029238196309486567642997191175141613073706278384792530839250374731617941330217905774268756340245640829951369570740657839150626960334524705529345320918268627474688228762436275496739046506498858869219468905214723568688458521163038340693767197539013917021051728144980003417111413888306153850717169837415730262779458126530803704165370906673202538099727834250738105413486512022452779562288769395163902432819907850917592762948003774085761173931938225428740889508707978360711788729416774640525737777753109706974405841295569714366153809429780703612990793296432697409164894975244401992586872144755089338964991226870094205793077453599939389686670719243759278141181804984216312101465703952841279791130722431685865869735842881777714623443487042539762790232311112124510574361487584294109004103504055750411384872788860124802868580891265547915523713533495828339058619368732866499848978748196793628458678960908502611796336100600669128900663297940747753977316547482098436364771983726093389741959935892660933716115973579798869459162178732594839480447250171485148198443244392061528893681432600823800611832901859469081071637142124653333817728879711762188466101801356965680931501167569905677879325540260927184775866856059681547528313656704654542687803826456749514563911922774125799924534320653999265881346387693965302908182908760997867091291307615274837644108494669067846478581691454278297551459034682883350238774606422865994361666772470312261079069909146886022622933603007528364477493186836682320900622163036997396840813292621632680436811306201835260065413480902819905531421564112382761415278489680647631184280233030224141263832330792700485796068978761562370431890545617289914419442845126902001167871429075410146882455715657655290090228540964778632027787451853542707719949689297086422527524858557848918904968620153883173695336458161397254053185673637919835131177847071332766477413613045208017849724623067887641389788307932156194966446879961805223495009711066899155497437841748035780297663030352462824074128033867779615988809731954493061334670552131880876186622248575385278633506484464788698206729391854984575962457767289684907503633521260661114303637023733798662288637700823027064989595947777166010164696233192413772233150186141254729257435107502666785260365453503863849339147699445882759139286728176370434668383341053753515396856152578229389780122612459345953060170949832171833587229033147691197299016914973543868473265536905966087087686403257326023395359150122865587198629181749798228453664760776476246590795902946470619249070025155670729316504575956714790219357227098738561143121433477317115847363352568892442125336609234267517247648499236246180570958544943316430491311891164344946673776938517285874698808753722971095241484132871809346246144820732896268380477340141609985469645648107769393914016118557378060344997705660169108159829594039711555337817577297091148179978477381507591801794841812026505694406808604425869015506310400404270720695306829927413528602397649605807122161367190005051509726291098290415315243182559574348080929207789130201359576640110441744264068988068996269733391920008007502482718336987604403734971881385425363135284598024485438352240040678384816410866604800799942559712317375110185336090132423184519537792736374238659346981145925865943717439334835525655053432459941601953536466931298124836132611778506383310305448888816714502530107230303329749823830161069895346692015462443263758814749776216973538975179771078776298561957419359820294514784452020550300288847258696475319747312027585523129018872866973528449818672881921042444354351669044676260832800407033819698507691354865299147141297472971737655969496097986338248718422991578228078605408081697830433437196803725280409189932033801646301337351000951563751114753388206519681585160166249071559204376915026584417844618613872969634435823684767163245538741409258933693345412956890205397556307298437667931716808815206891157180875369000442623734342325036228113465355655211678425356770779038171351271844498046291248671869755466987493324513442770052438136408665936945453707971124443769636839430057538228291365408933933148839455529900426174779636166408412004377829494587224133626300552041970932195859698451366920861798220511054470994475667740762343216333641759561003448241036529999639565806199749317465526907311794179444259481035369301490343801787481918811647878925583691365275205786002088109987586078613095868259071914072505295471897337169916784126993083769537617064985500548742042020975598171980269526464863903223414898236459923590113207865684175574075866144124965386583368986836893395109680005898636685460667924294077020011774376397244442945672611398631220159310874371391748609554031445306455546070350633082357507163202128241651624784103953529383307358161943533748220408394793249327804407341125666267936650713877380387427506949195073403146038325693095594877648689021877389743293980079762215130277788546831236089596070387310559712188856813798474685327868411705902033998496710435016284570986164960611078170272371990177101311357358680360193092111661855536135072498896514954118042352786358725739472558570293840152233495517678081057551882444187870104478621480153037691200997569477748222651981241850288361730705011857477974061237605339252954693368942495897337444381992210899394145671441065209153660732993076138811327534702772661027655260014394925016440293595156847707112580251462080023091486493496390139836430251814260045817024084495128469528543658984135166708446296229842878815251914328798096909191691855526505379592576171906108976232885347269336481339224951613382740279998611011774348485439843732718278474791018182128543901013472792347408793899118183595873960214029990489227203206670735636416996548240013024670161642836339999294795539168034790960811820393026680657573472499986024682823461142677891550834826485600694748323633568520475711231689683386475843860598550960448509393787624232923240357464192195753113234962806922009860221876097628559159299790501586671959140666776894331747370796769697325984808368028474394151139911171204813434367315534750319282836128737051784692379031600635001461122178010643325768654102606465088489405911033561661978444323808805142317283238953582130355799778511584995773718533007914842935016978151208779950603224678824067977006637705828876984590843185880967290293129170009352219917160678850538564675948156903607302853640693615790195039242432479876708340068952867907550342280188136087861276275412054208696664272863393953500251175704044330902764766489641101632727329614161928062658704895740006521710994867902421714146372159634775079796749940331442398286233776001319063512568558598493506905850913894190076682277483223620849116088541885172904896934592085319310379341189254232694221815481871654087187623684525023317290698129920240996282553767423371581531048665880095750301918313820284151251509184746810363717080758290968882783975644066990037137918764718818196136030238243022028957614307288630895252055897912939756594213013888088050832218544595658302210162229259854004795835918696358787960303020361191855226635827325077922984136921681523827581044818210149129224564160385066405905274024551033777674603372972741941869118346470345494029089295838227415914459497555329537404131857015995111310651665842859763484948697226742977236639689762941531126420992907106481247805459530493507264116036406981645964105608028900108447447249340516872110406993377509259087944970824910993981520695383594248572827685927286999068157603464990264934800460202125957296441674155034236243123749133978214679750747985844017992753888239228859985219760652279852472155278420700201357860240403597052586311306048194604049551287359485717356185528547928933046616571915307190009479670665725189307395215856151174175439976911657180587100334754024712400116821140047463769631283444359418462013960157532852823885673882155786494297116324856803782646598729609452661796772215137545583753423142579867301826152653937284544250386167574886470902756283878813236553122950087782447914786811285825429586276854485604880303136193214882625345470121288731128444807351793780890489052604581890415415857949989796731731916456632527329886030968234496521178072623885713010804550176430305520356111204198075167797343241159461210392746854780590412771862533283213984212673549910284901142260348598860128536367331919673956216904112713352491232384795235421382462957353254569626503368655221529015071279176627852110069305898229222407515390325614933951051660951834456378683305506391987671614554570163032630772133701751025009536063463923140259695401020825493900693517135030669416408860915413510245031064165325910592265337209705965030408123875172770197475015484687740011101140575556971732288083320837715889983482601775966619379151373862214663454699205095576624541303129330312535018643704581388946304665592052202913753325831773314955074216508250873066854560951000724913052202630525956819431486073561435759636500910548194366458415820058340407300879481535705110873075488742439412821183262684778045862389172464815070821661621849405385810290699954050875203060661294908998586692574020654111072714484922097029067177804489125528962088654263082508381212604378908317838361586367620543304911598412040885899388778907280954197474999671967482660399607692455305318368908360691904442052420075868726642801492710888121902952384343476589833881589573334605721755941815204050311510730005274607529789884270544031556189515371212131761352436847458983433805660767953512616094904223007523548561148081149341873068328764593945311593308521464182025029351376452879163809047557116496741708452344950699681898851542734241363133618562308411835499938666139532496361128153507800192764454038216961027586702148294915828043725261873880414495138185485082673564305584238094642661351892125359101543103108660740913053399845688866691520842026333015022327683334346927212295190549949173672173526332757107138873136516950673150890322968766885652658860727594318798503352028293814640626965133059109433788298230515056124636225312731517096729891985774641931107067113907949286243523882469530109963984844678050739903095653060611048635635294486518318312877710508571505770126741628678441411145095374534741577088072061915381080498746850488108923717705788092844051938862674763475717689841589585280221081958604579794090302366022880404545793366503467242489602210759635329971584055580099510202686413117517725047283976591740179902464416975343942667895347386491207566647376283390976739538896771393263211616486656011926434673724906996863143382264696778404432189503073379420330594731914510396360677015339053354685266744531189065234571194285372507786544390880582682548570823168727305348766160201403768838659786696100696620710215724160281797329541682764829168104478351017811721618920271612234052181206778656318356988820920660854345562444492237812665724493088730045951581452072402983189648398330481035699042625146138082393822974493529517212414529047102650477264817815997119804803652833535535831370855157752251961284539275365314735914391349025066383032537331094621531493323973646373214232777585108311827846954869683217296188884234227559137390777557802242064944224156797312406791976808615800164820831057807492406812188027130609781593941880210716888619063239055397052818031857666342286205618665208252292618981540612606908595558402926039933832573670301091797545895114794425457717244249922909408124433154016653722864531945166332088730921812399241248889873946675835987986556722582874541774217583383496898828179523363759507360102759261721971751689129563105584749085198650450902343750040989087295716238560149636742163592564923095459518700780588375922077118380830468030643017134491779344944940093471384202376857067715667838014951131350005560120351044713751098608399162815810299835426626692196170108492014700134139984733493397710005501025561959817997000635886429877775669122166487803868263778269968660128449750715365107932527228190119045877507823160947792551710306212397352779015941496135535712272510305172885726834465388031279207477744523336255357508287103304982418537294770545738605323773031494241443894477750808127991543371972040428249046519962833696583645289602148438817810168276770147739084247171899235489588190827019521479145294748015286932002959752579295053527565297108059846494645844676772793259443893201992514651789078588037452551075464158669799915640001901061059625097149896528013894011245802560889073105705844302086099039271189864996753452902956605344003846640738600191817079787188227676659539435945043134511874484146182335742912260313456124614104267544126695082470963225583171557475433150322171949926691815518107717759494476512595474622069831055221253839985078385630451753683696058451045375138856925625839924128749588316493010629242848309894350666130986068401346866940183107923567127457073069236063851579490180107076676003475073377885794013079387933578016507627218475498503153052777129778799161406401769976475535671447214531476308244950714058629769890154047927463506798661981292365524067109213790881924055339944504052798243302296168699677547784039029908250891538846167060213250029506167508873854174106675831784693719475723728168774302628603810544315366084016736247654665294173968871856438477125744289243642722182099800989596507313538109817958585258138466432777335590459078426815284109344333801450895109558302734481214889936795260308389297158258545353298276255969832461086390272413792396529208165940704336267817306732571936318421356145761701183854527316683027848726086416119368405842037177341184323672451682198287430106854808194903862091634342766964426830301678830140151595117670543937526603740065756218336057235613657738139302993111085464740000547396665164895463043228684412942802695132366467529212141788673441673909006178842271275417852484783320521758047418595762272137154250665772299790565450480201433662189621522847108103225575045544930021984861878839935271795371424536665936194079513524576457938813222721137508117245936631467255658704574429147712679124008431763168244439257845723708281392097826898041975647723117090385283828167960446885958403583335855844943606465702163807518763875811046340837140278693582333269221710838931835780306065437815848049105924204598095005384726266697807703276273732089435582982337185920749419085326638056730812125243499382871935213724411840270340488994819800751244586983031685984199396569312308038845352275026477764606137149676001774588286014105358489441889010986233914696720654610548287680908495795141684598075095114441709930748762172983092337550345199816007630426098178057610108964095357101456611234231734363371930747384436792004702149698395936004843767116046101707188547713963546938870072502421039157320591252527875449037344830788569784108739049034425187263461946115104884512174004846597316061123414880086958276656463627975292647124065486074358347686886932785515939064371894854798490497975600689339439750101744377508789113985970801576523212678641578563652594333288633147054380779535623821188947037863287523536403732455099135958633419581717343556173121747879333613916850499434302691663118006696098472613293256278697287515507715941077151408040021459180662285434341374739762390005220085514977641513035804857405649118256101216803532756688340801600763585302396589512096971946662639502098462612709534216345331741257023129624596012718581758116931294406682092274840696764786995410969567766446339761093295422618625173118459758078087608820647439510318392230083157963236504230723396193885655034315778001149720124780069391410064127110940174641469032802422569188851436273660607325853788499172172354567578453480354223224565098994750172101565782347020642036038644917370230937606108755879054806303757787696606189049266640869952839205445715186111517906794655969763561324641027076107754321420145731895472840071858512089826779280162649168895162800509278109704615013486411407246535419918074693892491673129858196067346284042488501303431934915666939277841204855633793029378777270751809260674381594695632825076049549322235647165696586658420478676906353645724727499332449645225362369645113030346029235509988564811291951131497646744894312243187805134579191726224488401159091742117207394287367837849895696884198507324840887902418225875783604318745447659060478862603679816502163994495370955709447850941321921041878358497953412846941901290549410444466245894454768081749902887478015070656595311834859360346962785010169826676196175021304714221504711572589526417258696512644678617398419799490896848791119567369485709529627536093635734982428374066500636990454465110557099102331924987959026695274285867115859169029084420141966163001976863976679380439470348655673154419429653607127881597325325282238767288242733253786929715268666988197674702202903574887246008581921074743896981858594140476889013023929277133527621411656193010174444798082128199142202133957827759081227555990088477408923771930404594549480728574021786143944461396054725672156193511623275416752968195887969835966639332417146263963435228196386457711949749583038316319997635557752416107641815285223638275775439209781176287639205443429023230923551371363771368394643871594835117075688706893321411196680883948440879030406391161962718165513131238792128669661445907508056376285613191490044554636121135689105318618312577659893497900329432523709736465467653372456659503314971532062177609841058632472757653749454773874358133257036812729128910659228822460911354444548798678331159583991909583096500600544226593374226471342893508599545856379500879513178829684002469333224546734466169779819387226312394957474167003641226396482467889711441173998104181996381157138227349010969334028741918828486424385929247462925827730101397059640133814293352063844544274731761211495082315813116744564506974692248588935673403719486190863857709370289298736475784523832190844605286987477332832603028034464888344035569537354016324630038855283216885135696493794858892020312149683422411695327786890710141747039248974534843455506209534805009757658979178745132477779754470750585368317178427965556156140089855951524701041185191722782501891315014851942417648564553536194662778055092390078692130630741893499414839558897171284435371832447932676567032693004267894986727057236299635979447413858704824966569899970953907006937729403290052799088010807768622588477170900453137028225902405692870512033951910364601330902765814343576355013764641279375855853305525747852647353858448479207865293397730393783500434612502338019717991141472845092518621815482100571000367060521262948646228032519404729487346667990832361742002400985091571903484015517140929313188196586390915870257161767081142835244983652343443586546449788173576441279914497779941721534520899912870153088322966024350634254112071652542065732614284674815709645629840743529468304564385548009561412973413455803419687856028600512747573252552218038090777710151069563032024037859737148680991049589157026067592026078685026020527178973519209542020105771191503340483071496072605593585077242939860046602657229886493849158568631050837741413612633159427352417469763242486932292270190672262427719319579293385724363206281127499066273197727194388868101524277127542532297308329377531509326945588165237780752974064137454227476050379102313074119822610139236956378290601648736408920969425315319326257153860029880444959430824320384168597097621294607409378927711116012365374389033776102667853932226523559035711397823524383466837139377293169027295234618785310810485351597216669764168547858761787006541872607140360300267471958158357466210685125739040699116462437837112649309995454172477020405699640001128289377763014088995816041617800626169301811599139944722350188506560585054065699992174600468144576005399504381477132773834219452952949370443564147605104699318445051084250887132149742653540483449767891976458920361696451863610090718223435081740847022681357004762845251672692124712559903220663132426879976738478461407069377073609672988143411075205075552872283242035876620569245370534335714750128238989906177193025889324292771829921184623862312042509303376469364876338125775844173422586082091884853198788570125580533551793177395730746198638629844513486708378699256578531852177086740657498758439575005336579342770073105678516533907892059103861479445114517935185651974071027480389849315454093597371721047779873328498412771576825212771948494409066132713195230629486443333677351061216332424778979190695258602969007693190810700336835038189178401385703863748280349414084891962634013045688312093937057571554533132003246748347402313427541445393414131114461760640641050043020734897338743158299307179591866885866079670703102050086957424395538517328839896105221813570556204840347880308506217053149876917430336837692862928228563484134060217940017824879142287170505552282171628420244865938495403808785602512604740054287132463814573177459628808136863948621345138001899535517266268667084370347224805783648473414193361210790353363863787476555982144676402796840216212264696708850942338074498613686580960432090058258556445895039847079760592919833183670084991148463076016549615463393118755235706250952183300764827337860443072809347767399736570337060709223683968777235328014355315180030064554821754176838792774255901284949646582618593503784132321922818643217755305771724051747744706559426368970144201863832818175487786900766196688108189663655500442280158306198440109062330590398897837662172378570409508524781824937213030416801173499237863769225513661807870679539267528708613583400308387292501622067354042420619385167815100890776727498843777139715487244739101535446090043281717281896893304123976902050521275779458654999228126252925054041232332533443513726084581835408883452439417692684505404284790018551601152611614098848620008632069675805599976699278897257960187252710126270619117250227766120193410418292873866772278793417996020265414880377729897578060448949241525329058567358555135183640861271237069266054565397244439091442954333801730867117461331050346039430623536139991833409441812130559454943516218772198254179349218692586037448959742799641930787767961337931229752579801931567420328984043375539779563162943487886415501402539833068072886060415061085124728052801654867058587357964699131924555734631803253525223851369289773317613991021497020179498523569623336134723511553106695072635919441630174140719102671914575830766011233180597865087586360330048736779544670156148491289733853674422069824407056214310731592685287417974509934464898643345867121576908024906096534035800215255968663873177255399242588388490174603761326009796960314799850359789036900332529473484811678613393541713206675685903703612925824805862977999462556184528776980496865808585620222901327062625559268063325259866884228197950640389952117233810101989717665142979538207362443108281551193096008888142223231147442415824047333507150596724158313374353870074257152719299095613313867855306398173601746154621404665171535403308863012681637966933826757811902183312462661413042146163675196210167731025102488894675602179156873795024759189298088663672414674788951729334595080340502531542731466779161701977571775955396941070854145726816869825757419087053503931824037891119156706129920964806927532513085119519822857016706648664531091288792732114077371898361843286392730461773524971116896350780112561405869892240298808584101048538574195828511530973558654957682703097714804469157754211290496623613139774806975168706823143934018672613255608352930306343611436174308837203424943503251406351099993213946399786358491138428481097491889410629030945052299546761666925853642131044230161115240831643545039896170341957173432513810438002809024071571703604448530949688761458286673035341023844116905268167610533463180408728055757145307309860404379909326627401364414502170544615134370745518683303844458176470991590182416135810208202339384366386912479612938815339315930502602993472392821236394356965865458762370885475278494933542704802534805126696458348337762941141962379757484115682249691553118197356044458872810769149591871938351751212264137731931284666201725304328633427120536685699139414564163288221600605358699812214689086721581296119592223278617123110274809937862612798527199637720273091267888291455886604817749273610188204611029033703827220452374605954479680049098696837839124113290987791223769063964487125281907118571753270617152624511137143177540244351167065366690228623102415803397072305618223891949749177580336295328463359950598215254607545437817966968277402882652737992498635621194605942394258140484156927900285350996864736453013000321014909942181842141600355181067076219507782817145369331461850553199377757137909128395348903255322783074483405817287624504043596961007939685842130532757329505640635314747090281407329395735685712816780423842746598789257761700954089825624043810136270659846324599630679522008226029695810774645119940312974409180634437101673242347912982468897284862750522193757451851454814511107999929518265029924678489767041954817415727052327925364715394413496138561634333421646218018427838341533821106097220055307357989109925277791146703987003075210098480055622046664114464850271170670578039893461997885320989506107068895094800474369685900800335749932054105705216850096989835099688119027420982411082860377203800046952528634547037764063536785715207138275743299008487007673231664425953155840100277675680339801239574013637982095361826083627118060344366676335975004683262909373605174806936612992485289329386679932578346151351860443812698084395708051377306681776194327201893829515789083969103720261805741363780048432716816748321519071842272875377427000768049110455128147353918967343189977793540530769053167664728365795851427514150804717506399902923633405665416383759268638977256818246879126201483523819886980992777799445708117452626585029887026507743129624201234058054028630622497976984186009791066565316571306188273667851956217789317806539981021280778582473609661574912377011875748349676468113881505036564995281739311319803259947902710646713566952358630337614016159295198801146257489880688029778427347548632971959186457515281725221024638860128378562818664648149714377427052949875776451639680106699785491064024321734496754510128116129528423943480717041847831077091924164928963306546068687626265451998237233944491343293302389897671593531826827564911218588306429923155465701510942486906466036003172556719795195019587287217321489658802460235906951093030850162465173564363819987301553866725920883764886465551052599065009742647809760538219312273315049218874364794412393822487997045946300993012082357437016329932954825636041161728726389806905667487260522914448347138224082045382164408886639167488307703354602627524563688025315892830199510892578024352110285040370316240178362816256856666038868147484187626710830755606258032338273029155876425946454249494416787628901227760500616983969748681178974821743527588371485225322970453557532814723089519542698999009760027673888449196542516648970271558870875878596169356516560844425293544119443036356522104427306747955996004527259852384278897144193522648819451913291952706072836196866115534811429770049657813139615349235225263398810225516110689275154903687618014057413789506896347583143438752251414747126982986436653544125538218474074144274683149333654543094389762932447871657161605195392013179120163231286638247677395195007299397845391759247716207687437227881933549350209214031409537084873739843571141026357454520231541445624455634225331395057489993523353386132850645894766669424213952262258387815446392860008081612334060221595653302193578312107057971678078346861806842314438551446979237412579699450861026143079171922662485847074067610425720519766676092552327467583586855458234109875369365862390113585610712026023233925113360768370149715989500902357171648790104673482864096185431918830856313414089249983830252077863685838977851979718358225687220102769639697993259848304262213716730555601712755784934584416249784127706720499826954753209243536530020403364100582711785175509146133073271137826181578321176564869501451083462106533452796699375524749043618501031903200187182101216891180633652031544267310453453335668599578151265632027558031283981750950190485757181368767947096878676343465810976619112538214455075117637728628267298966451621451499105829380988834586993180702974375118590130966788701758580861135344168367553526156949865093820150306800356783890635742484789917447898880179467548069734277728609104552287377618473515019011673759636084757437626397732236975719319088842200017114064581488292444084748206983280026174774536416503719368292830937683329381097279882175582679831667604196654859483961719439897594688542795599588008427070268670332689183400402552448279978878371169936828364794273074399809635159792769696119376147438224934759896516735352643032842570422819679523307214795785961264002989726892005346432929098359473303227567095102441670326214609055804048507969026001908108325030626184521697724300664732064933349725121875058916495028822812649043553223306322852634503811488693775893614719441607800343949905726969366385057144273347955753548069131940864190652526006814766908952180969629260747727783293725736810018015418555407012498438237459049999659779423497179421472417077521599781678509322997046277544972239772360382615781983300968523244511302088815927962266141481627664314712607203076176757494994214222255588944415570516322366211306666276232118139343017666325900298946525074580473610256104284903047497239764748863813782244589974753923876338453193644961659775987469568722760222976669491702501814188240322405996905433155469624345328742969818273021701686518888964649326157618970029116843410888641502633851019399752817967220273015851988311615796364676727626075740897650896458800566166008447163827566793073438799160936716543248656548125487845293683336143140746282105238004035721983989383266930188566942033703230984346550805156250654091802032346017142217090052768781813424298460872425646961601600054443180295962167469231147507840845295264358156871529726322475289738235080132246863635518178086429265124360276085546928376869080400140686324160834365892351523935251893888408410802813968288505136074987992933556904655299599470124986843010143608722413702022644625788789603369087182412341076457097919666099946564833477208787515357824882465146353918118947427853443442632030796953373625877503550650446905314405332707359810120940333668870303273701632703368235387249370169596115840905141979337890582765560676748849735881127719614128885208086398232314046007106772027012903607222694734842843976189498893556275277870008239459485214641251097978332462737652764809365311508843373342660253443513985100371216331596977136806716673205079151564777491130313728862487290036997236185916668697587123115007747983900896494547972327967103769327210613692893177415648381472431326597827911248425167154764740473125390415109501932617148660988275854571444614227688184828401180501293033924779821388894895800835019415451901405756295660784836155269984733496148096741330398904312788558880246598397928369057776956475751724060787056595003501035015627821038739955312542211229936776384515042131098562490430261552296972609568564275230214171512880680596245175288103374858080565440592055101120418628235521333742510626185467649580053400541931071228205414048038454595654347917185761704652640005540543664014717249859748394165112698943662794547024063957663558165113908744213694931988526068316719548071506542362644974780267168266419711681736462873203571442613887146511400776655589739729323628512489544776490224992449848890699773249454184712209448810747438767790006666365733676870312644685073780236173018809390839444023835130476647464232180411388747172351148080368340062266644343812003405251128967232489222765097160087728923466786643654403323501209304774134804658367808855302709126515010757872380220347316762660838753572427806825743459168484195109497771854994005127625832404117509959580618553447560389055308407568628935912171317068710904129675420445238183097044044234113841339138301519919339907803189059553403299367389450022497215683059607713524432136079831507670932718607059000686260879317219271768405535106504122358559252482563411197742789622142713560869647541201460242766153120094400697944458491433157516775705524585186967785759586765244680772894700707080126280295489283956572877235453412848845338860478083237036627399775957332285126092476194575164925228566094726746863504755633218231345680228356875353041552141755145071211275950446182252203257401525594575561909519860001507061235312105401443316911878409104667161924815594413291434204021295249350976801907216613522660684789272345430822875599730270073009390666438885766817694278595735610894381898109065930862488545286956580936958537605502386907277270100071773891144073733061311251343688559711690518095462062672563920277114873013219195161019314014295066850092311455991733913516320755145478689649546173208492089727942022967533582587114404376117670468405572217997156362800509829911292624894637510862677284877967538118997726590828391725135049138792419785444398135031372979214358349868517953847776748780045232019590294033419870010198657822936806594194605916338842077879471803302942692176083272723964550682699454435419491617584893994005289612424150463754818463713367517379762658542925561082050524578534307830746933002324922255525459555205793758616981672069672955559944252572031202898701314145476603928790225027996386908893368451189089930149253376893162234663730711348757305340446306095317988599494353443205865804745687449771906972822120093392534303612895767388393548168217005729711495330481396355752630356930981610758617233942463515556477314278661560522446708033701117055066227007164312046519513287946545716845656052394128992175179729386555586387653510577988160975200889543359616163623684066450446327623213360071175149836464122605373248551030016945510843858102075079190326928975806675247041329436317235584558731861307713489514520277102139076593052486364827489644852544144142848258353091478452034612451794433935235237814507071072995147001110646143712858913389384017221487383333192044489982373228620375938158363954195233634497916347455096900902850537324237059769895390856829048938934427212708035461163608615206664724252153738099723802369563593763845292378962552305413570306028781451346689573203909810706949733279893194789776722026558261235280118512312525264293696345414159119351526729012001241768313018209585173712161423061926360202937471079606863416139232456284277100559794810360580511501239710423855122466983333958498430380741655931151358845144623413909020985389219445976975616072862034632052589111898578385468286668251313134123200958266243784630717720356636985305774922335885156161557170544328042213694247992439057168095031448048356423409127825311876169851805879721593130287902989878673077084905345328286679374843827444552701269860050540383592404610981594856960572928114745309435333081312313715887373192684933570311191135721110124052415772566829242183293264088127411290490004708953438605933710560327706431340276843732058768532876802370954981451736136777130774765586474812697733433764992853457898176607358321851279882539942337876547989793375396106214178062891017321553723863049686477806904918295465395900474939576723459290130053865877835341604555602285844563181748503808972925529139706621555759814508907689120884446565634500937543584066069053027236416926984971414973170316935089808497154312827533860013455613242233837893256271457152425458979131123134056436126373712449188240439302158327402622417591425062148460105838210443101296981104683430661080137381774702243362743910938218185257093148045056501996012743195721526303496239171517297407921081638512969831677991305329818213266476042312569398738405664693861267149253284819302153135304183055542130599479145600054090908479423701882866901542447833889772005169100876680266385948758956506477656316467074725385003114781298119247722171375017460739627659768440478100749982828302854594523661973049731478941222357373219040147602446717126468992601113555729369048519648236028577941990088081593708272764429669654239711365480542503262778438687458692693394469350839741306953140491152352062793639384745973368605287794622250578981113278437358461617568342869192543364191525250540264820730522822670598896339595242876508233003994457626306629265607433771816437186161739532345082115276710272698012366373515434181157320443902490720235148926684661655208713543366519898007095986529192674922917378228134803598205927712077414872628298194774890424088369446112831809372748272466375956859897008549392259021371845983569922678570976716044947433687193535628234528144161019508603968839691659107375868622624013207261376190583130910073854981836592213192162848373168040621005386905556888900564947610776946818740558912752607338616727207936417578632019267939195853655192535670108237254344159923997828311021580566914784251879789011373974257380496768088792867651205430126625609211276935834856259097921303957891025958102579364906204584697379810315662356611916879714306017250829744831774465016025958096776918338945439702912529156456732465892957528654739260359647466081184153933867777959427267195421887305879794981788078325535406717608416712147558523325213706327765833505662785708414950020090444601264576351984984957261526668022240895170501045070551723689218055286388079438008871624018584623195060703515987340533816898390125876397614966363847337132192572801666825980798018056988359746168746663719622825306552710841654898089123714379396822497307872847301709143631100915303860484397543449801061956369925979609109189685746631338834028817199766606342687844548174026056814268666308481913303029001930573495923582597177348118992317943042336640119092698192853848844528294261744823121121331511946567938557312683986821793641145350581175956918930138052668164384004978176561421025236066321722302942158641294539520461669132740667464290430057899322678985326124058650306603731992345994212241917894793186781456422961297152862781504361708830122455306844587734715420677546126340619343984492815015543445036004774849878671632545446215133697559890991163957574187222488483165914054945603041493181678167390107250435640099957405969034666184628565614871010505326644969839219118337813017649867182809305023368687846937456577486671264204749210568050316810012197375206746960095952450350867045248799205024318843643061493605768704991816807643170579890450530549800186185407111611586281350208934092234459269489050622012531962382880911341274029470398547651722762648048073295053288583301466194425360351967990606989650338972666968831927882921767812831728701876752873617160649457593208659940059348951238919685611928155078430240346602590909835563935679167104685689791629591168108990256301307098235178723785191882245430205572785942067070812589739449616896603043196597750176925229081178240736621596324200178880967674215351661326045516557265003164402584747960023833899588002256363732719055124440182371736376201144699702333684486970119267183159557732139874897808559639562041677852526068213273172464637382370318435837877670861355395739253493832979223824774076700427068574377560679317307878004052521748166415254355485841236607930124638453748835687483778158826438003339058683175570402208916654508925978238905513870346043800653356323636269023994933738190583350799612228155560584157929584204865557900348936904404153542831313320445980227412145597913028706599569596681787244673440003908652402293307910461827330379438273278696354269600278445368743001001092475116398765177869922400267257294530829578727655229395370422764929976305773995835893837899661256974689457628453739523178573989124001756816293463187977978764681648996849869058953360594566782347447564155581001814160711032874437050650274593898813488418798655851822569807642401326115689639184381029383436720574643970094447709257315233771463035363553013855861017098680797521199673529969406896555289711416276787482485877534601971510195074944336505837760304357559820800355061937862996959671527782843285499688957353647129161185539635884360553480885867377937406264638380928974221096899713065990269477126700995931373982603632606869205073095047966099390862077254699606357777541918192044763006359075189702575659849439684846200251022881155957309574309011365522651879330776749483967096978168891635116770292008229311548846179765662268555810679876714395796515992407905300025090927748176846640627222569102042963946888349266045717388720887504863286141028252581056644203166021960934676866853034707456367347278560679088683441610611600229239083065546109776443992774548882613810897385152329956116749920784850379159294644129533622393252616522265692657816612269234477293297356617085940487313504044583586386428709448392148104018014697671859557966251069903248874544814581083834574114934749845749906970040969375925393870905379260385770841051539353332064861848497465330573555620229315908015943466926059310261220897430624062763595090547172529803736886892442268870394514185611370123532507035794873075177473686707139499267131528988020743681541200135262236499001176622834309549258712469788412028255871580190575235926595717303483095272256272075265434295185302652772320261790430518958760427244267476810052968329723405610371943941627639003229118535659268707764754248591133119474868167236732315285996264818056892320729499401102751086369006795458184810767977472265542552165949764186358311659203327392015597279690591854798484471159805817027195154321565338215161783169975026843095323550160243874275505658718113131244774597601019102210087789957830879520188036168954243469789196017976392158170810201633014522474249973014265140253807864349398900620859974473526681777835334786632899610039531753344806235274247630457125098233473684492282342900886712919203623507749947008311549393292358124181342446431616348661065276219587207684751394402475161217361032625152466358759240845967302858709672584582289022926212871872717292333272783757802766972340025940461682410212707393749314729815200232894363253612781201052319036116591113456216805655047664091693141423401366485812912115382125383161067757037489243293132887406243934226072863418769170865875107807547028413534823601285030119954531834550843059810691953786817121128131947261647589092317768760408068307831378421125505174359167519119742954415714917628638084052063442423012235817104797173487451503299464811967870215969377241425606340860474449742898082333352713175985926735687072625955960907402568703377723251497378700757318396730582575670755859365646639502198626931656705566634622465764105699095312452424080538740197002585270531935997251342610199646571108222929366198126756944969143599714261403581466030672226732316806097880360514897475158095633164142490781856444842869965876805413317006550642429031374362431446181137329507902943509954316989817703481356233163263443021205305478171124061716955196394925752724511544615382685672185862498443411443192579830576233712694516884942763589495959953721947613071061033353503710718680582275017468529147883158992812098812861794982726348161070686378146225276773358015553021426175782258596187704285941549955729691807388471273787240365126212479141832462253157301885181574645987066770726011307692073917644595398395007449475905064678296643303122582240635456070775946978443457434771986459627169123116198497900489626598690802003899059720654496007845921154383509131973802231118380721648445513231628585781278561604193993108404992085453342047699410713270829131306271334880695178427199624090921538031961794489971269603363536569671781789315649777675932649254132286264189629482081090398123093295140812428650063478269403524747904318144322864943555682909451671204687068260249563463252242188371429700149117518268945038998168759120464967499297046725756348314255127258686869691228307137803615590137903986898603033600517844098854988143636708311319303039291497948944199906737686140729689304828899463716543442972001324656264242468056326667127436862813544821880510933711298677235288306684179933288292473232555509588073989244695079794633652552744105300405432389075657941996623932637564219381515135189704718270117969937001875894169901014196527680460686479391371687992386248311230570023182639405790315294774375873314219381534741818666766506051302472738157050394917085868671858693508582486635158257030463371925326025613162351090309452494801919018366176373744893926829445245642568713016615656117386356570751627307338636344147642958021338668263029475956427518487525920373948529022850655941982420207805702826363625764679627260667545063931856240711288051816266680945103257826986847438853744643270686275963937493369948828709408560590660339038654684818710510614201761509262198661653990215019073221226026115148020587861720924531429085880803613093018718752982149083757136608424830139526160929154132521479280917512085488224549614785297850700483790123173541714807904334367779262488442373706095631990222177074687469803926127861858539154118356214664613364632638340519804144752398808794644324935964903434773841325504520059270991821726446619799130180035000347930373433769482660298216034670526014617932790097848243124686214170386591571839548742293378360083347355536558959509121898487894389945963860768879693962711778290926139923715170138265536235727258510347818490814400815557969659726036722694890047390840510617745546850984169842523141293131822115312069221496687559940740000649377129894651904567694298241763557604674834173940186130365367945530402967664300214562659933380217094699550798030338473944889226448289880290567073950897836036340144833203848256777788988740171950115609196283515954748812305586961382614417408843155021895783304019079733373023929728352223974805126859561784922211550127290590404734440475620584048797662769329699514916114552587990663926857552017632798915550232940682616033971723030467303449518006902926963773369211382045830755711873027104074064083381532233543175321392928002513765668274482265417011536341301744912651558534598689632686042732340558696467076388551646003917511635537426064535837060468862686819338246068136678105331793055139412343223397881877366300301239150786231921619706295929932987791808925334036182854493277262333263404509829903762581407854236995064763339675549243627212131693627354900116803955770195564127160726010496720009816835666063027470153884691433245372324795916097975662831216131465694869941814947436085858301191873408574329976392295861911705423901836252206015317888705609489095690621826660242242129476282075816592336861751059833087272222911173988430409019109501446624355134782656044742289639256648250944909710500922922578019951003152835251316709515686461582154264310496386544905466817685974243606809043554814276496228664066234493022017458420607084200559947824002280879732820302049127427910411003790482353756300845733155906132708399374051640200160437039353501562124972467455077997774629653100361743084863892871161927941792797441289537292821728935015669269545672477434199031434773559813109470027530762741574692316027879027027819229615642784221720157245068510197605447705284482240750451253829790999389601964779968348560980442905359177640168589441836646551477139069143439633478525421884473614001255663105920303114916669100265538631813662416163388285886489210068376359249331782973209817205477959936596173146325234202664501567180122340350093410278205228575912256688863179903369357897744471905641392664730890283600312783733466077709828445523839719689646877264624896320155469293291528160379853989382370140400980642809090513701938856519853114379679425296562328226648972112961852044751312866355257114664344217953659440648157576410810394329291357899177547525467652294887646803812305842616393763831718420781948373998290025146238276125239773385670309635624498846532014468786657422049497760683456667888328067294807780295111607475256335623579384317041776217179894400362469183101985799143970179142748758742112117485464406277881395515029396126316641014019409620617227478896064027607237484657889602417858604953176544512539613992708870978422621182813385607841740880667438980448033441395833604012883561785242619855929042392703155938658668345150389368100649740913698377765860437207534891002378708821452087242554393256289145440907855684730572461131898990266553415064572857022993745291487719612458407520958827482553798221519659212377617944262904116475044674241204313528180450990038106556079696517506368041058032120426490483182862386568104017937514342544358169198749615183344267601614802117465774808743833277752538626998954253697699538933828766569577202480153040314913883017885920836819889369425947871743193166395692169696422511627456763565937319321536665902497994052565539907376330632331092314890402640909583037422844849100417764323593602803964622556194651867624326075260750845956244240583890168365775274377053022735474790257107099526516855387403351502249414396514428395927923595403746952075031520220795589049278534560410547901049821627698844309608509930944243179754081458326488959638455015516437988215639542780012978669537389689452495149825223427409224533578865426378454191853325486550062195599594832774825360387358155957070927164482388510703646894209175208515151471291851579473733955062376496967394287614264617562738496721131325441085185031193110784934356166432092496719547929630065028876830243288692812748317911104708894880281713057828845800388221153287029945113637931317756909250567200146924955376901044366147414436863340323281142080956261899341399254201825133826705325823678151699825299560075623801292306464020676454003527442661985493325946099564797744429742693298536309464537773699629792194070077952919534646700082084708878690225356625596507044826737320848999898546495223382503026920266435122031450253616761943660030388257234203932509057491451271318607436389980299530396045411140887611241757894938287784157004215254863973698183412461694216906510802388856012394959509539926821914994235861727377732759257512483431824567298933654081532035158141380870034004869372823696183792105875947216786326136357172062177429890180685933583784870150489479108368143744743689660700695939378726769364676549418634936741004035914897580660446718213129380503935248642528409471422173490688420321580541203829169290921017420134987117300604124901780604697666409158160175073163048356829847778802721516064329472769193676201885221650766811646127000529504549108371213706225596902958425330507101221671050392554816875284326218309473389511296021586854716386439875623017893292725504218144061341981774632458073451984386157733018152983302689756935029623646202353846431905708106824028586262245597854876266070378979468344945004393068232711620511063441450442317962908618827174908449010726945722838213729079212854426235535864555280256206579620916242730406594940632545712800999494428186494291042105175964459346399556167247936933294555376949800306567628420301831504159571321594275708230430464613892042111499636191319675914066768275769664910836264058719190686435368374979376227953191889793263463254673977091548997498141727208207744778441870973151244274072401880826034004290210519177776930916055887306161859209469189863662777159230333431484293962454029771027397698409641353875515629107205927249749440241810142857061236215230389861451061675302693591644513364942955753790533648940642132519421103287531024497528829442397833577154503437263866769743206157800553855559597674449254856818524527457875169513448626278284394456875464674416995793192263411383599775970116099183644850051999967256587588337441146201452441103056854416901495911154390265804202125980990113574923154436050968094957050116139970599783343327670141298803730413097911786389137031117061015117759012939116101966755810962059236258977552612564378313521503848324485182774393294948736178154653387529470656226473874604387117935156972282335518938010595004096603895421955257504868953814699074227555808022845025906464455848682024884890441620964152011213816303784943452185883591568918057476863722759520203519565793518216555193461527845927391709787852603644544486398010488061209638223102793842184751496911139612498781235079834630404631287932049321491359352580906785125759692896617389921369380431005387815744308063067497481271199123966943902672974832829857034429073572941973225830564530191933675434399702623942781316049086681067362316324184608405376294935604650529378778040147975483508786612417710292526938159330601632170353847174670818151518164263233444903824009665011805560082234338543433166600135843494488083884804902399789928978933314011603121603052954054505805551637165021550479686507047535482453879299525204954867778459188192907305113833795062366482484525807140820997539788723370201417872182412175010489374408101509305631132407648514864315067704860792318069705648895422180642792866042654937284720501067724953772825785984004419618075017123300491810241533888320345309899093291554730034013389748946602333417450871573974791515176624015408376698332496060496654651081045429302360764013155214125406855246644232702662477870417491300768310064906852695502465245810009700438371343606438060715984248121387681115897136397334571551149493605711189980286851082803759687559448086917676254917860183626587042533338430473778758797912912804814083729748653566390860905546015012833500988128226481095311124921924844912658440042268257185611671252349975253953396516997949596740663515961156166005555116861578386223200528883947598690738176352500048093837710905686020870726050072189299784295899748243331959144395678348229232141247680185449154056828929483281614860192665873184466037157199651738401064489939594834027563582994793613451314735365284892289319453793643560525613281463237852545106406852420033840178169069161070981500111593095929590393057003979093575221648232079904199586169890721144363238186039009938290276197623298151840680750935188199086129722485579780703889119188587334465833131305701503301350267128134776782819756323057384690297277724160992665778001911423594070646491455775716402048933456277851787467235249719660506847864292320264508317319819807900275507167686075012298489219101860753329630310661180882085923398556562475481076058529351975633872511043112206977148193070360371074340405139933345935038839418186931003714272845640697350641679121528704055634389425421426555866668071514868949110261914438896725957262793393359714862504842034033584139127997037158832578208739548860641020549540689753320722171829481490221066663596329950610074247107412125494094644582355710756472741208649794326455337362047964910747719642239645819628795563538683916475063063829024994989776171582393653099925388686311537462575540598594736116017106132057407568464697210354129917932788085459298789339504914947076497023377817110433156647468288622697195450540718528380428947426114160138027827548060669034026017136876219905348930487553810407383819061441954030639442941374403605997095013678827114268570785356103511554270543536057580793031830100850962939750956712985336880694289626005362428780024266510409394721413887826753349663210959560258920096200663565834282339418314395767119875298490806674493684812694053085758386668546068901831371555364967567204179178095843928215061687995995070377098193303824684926826815737824508833049814952982940070238590300884279622384297551026390828020589785036137195339301501584442282592537775906358851505089120963230568532666977940139572081980314494598294849426685026758549976971976179214462061926294707129936119287927570925671168012789950089182257904434529059340514465073708627593838179484720351581916468060912974228146244221506268838800569172225888555971681426309813489020236165309973821690360427704775650825692996101701410435510140577395837425925102747855079337833297824363318982883283564212846512585433502071578704491832281688069297203234241412645088846525641300516347657752482695436107988511306949574641871073840346524153125276335964846677159323131974086497656285865019788554892221537474703629614288047663800994779406508716423477167648965160511295048127727768369871913151601468259941155056191745267793334496934266194958718849746422260398777555686368305606458860741430065607614263776382503918721359360890745273196957506014473647556327299878022595262330057190245940418769295411473408392305009630455646795486348399531994994365924355341407046131838859409936292721197787372977382835970941717710538217532849095830339571698101318908815912687182662590689366364761989356470162365045643879195283432849361549542637970519704603721961794691774744246261718607081528226691044340544033141185622037571340385317704918716720355067980869376609727513588996520342163489076193347568050655282293485497033560216645847046689976049547075135599992546452452071338084407745844657003924067067610351167729119927898760846202153095971417909678637472598867204100990283947591413385046592161550499287393406357796461462623137914002501177470548229962861829217702957367668830714546824144993013210405185858891726980418646342170418803002056998251647138902401437823530347697091926709306201505775760168340420978640435885491643603694962714782892159231797874712292402159598707678546289483365063269310407848694850837417380325697240179838132344498049525169210497220153772139064069462316195207500497356594524523665008455559089080227524082841506856744265498103743764917016990911725544731549403124310076702397377763210058072577186575004363875132489941030302399037669853249374878396835884720574740451337685686449809722104252463023548501168245802559317461517427104100647454160180063014381579883366973607612324886176555513189547820916851787960562255348608468730345914616404220628064323665486946662570352200432781438445415833401992544187014893888940868845882554353376969752287029190472819859789357274854124349943470766106013825898847063712559038433086153634028595055142309776701098432572253920025044001612860955057508582091926527400724661174804068835397373419057348600525788992047956611870939892546593092563883363935941818922348958208365276124430984182656494245432197814378281416493032015204563190370522012205952240740339835769690234505903977999723857157065095356546658154169289447824266497017030511515134680700733620689823345443103991966617563478947449398886368304719616131455552927684175243457483759372383321283949081854971481569635855619643169564213411320887295187363730033130224952031231770644723554122512196365481252113279046008802470412584436839337795700232669357519891205949147892384098296512430640949745322618264943869692650554620608753142612797384106582567615267728504091192755081825976195782117986859403080436806054541979280295053756735086693305357966296874699244155191103362164875210227676376825457608747471730467076175141809236035451859535269383455246262794835083559953309509125898332863674691382816589193758102029398821068337212364939370742907291702123814221087175725041975272158283177568553400951835653226770153524196332954909957519954225801010564688385960591944707360761724741159715123557735582446778401578451380663940481193248723864200616742430339260760048726207782368263210664750041068599494435117557448469502957977184522463074401816303368729156543334434759143315645009666229950349580774394646774424439301895733790504371842841874548464889100794729375682700620345197371032307837804202734575292142023145448687373507444740820897322449494588061955155172737120417102599259385062941018949031425241945702788787269574252299691825076100351587782681106704071511049492217064257958119611286699006277875822404872919575690345895266890417614479849162053696402885983973604082645059312946211355956321117446903375063769391521468631509625598400459158708996869160379498224169196363914647405753140454153247048257348774432140678059162168620841588117368827200862078068105223525686613102669526685240573605869332236084065213165304678828134124500654304096023199390203366189028124942469169955801931305039619006905095608579452812387531866499593969249916188349479110109585091337406996282230591681544851473929242597209530092834773783699329313226847121938993280169626488946513999184260882923424336993499603538417789847448440163615557545067990048613098886333951788890551974064787276242461634593671111691086873266532152819375562955128743281679800481435488781401253088773687666181009128374620926565082947569352940740482303255668754096388133986051135599509544469009460001113538328906633828571394667791432311684364967224664473622407742041981698750792617100472834883594595540568376519231449654550304365097360636690018539554783812895092945818461356028117949189049924464303390029160697468512964716409381714415699893856431678548721134962558014862875154625372407698260368201156517753226739810199355810799535840145191955034136500965005134607191226018753968248376536342326765331776241239379778694337341809743338691304336908745991450691986379558011300398605346165985120727979125551693389708479203554884576893494010319004601110792782529331410356111347777659418454891332134104690137247567171340999704804955153625075110916821724235099713041664534528733955279994234156299360379009594339410177793008554750293025472310055563010789119866765988232199728777815294451798029107422721954210548275184928062191199297566334615414782200216314310731422626053638562610438525929474719069568275475533472805843329688787137165553045687182193680483980711653016728417821339481267150685289464569488723629185282536669277435099391021277396367387206095737465658783564692845693529894196071732427870241167447872436425415233321047925478608507845186633860762159833236844434019132424547495984733813862901975928877604616533108552900320910104006362652057174986482167729759732486003806034642012814459732487345889712232092084641008644437289407040068291820996272053758082249293560151253422845572155890634975141159564528595936174662839775420739282809059689705238274238581560919096581398287492476048513096044899414939975118588404066685715422480659825436309892240142181845316857788973444257225134407454512017869305447905061669142972519462437720447429559326969965938110278631558029160356083717200561664847293757141466170652003163802114866820867986364021855512260843823471558276662866582858779821418324927276538802665641537381536201332031494304913429140853162616073387152604202169695010408989781325492618686297138791355313096102205551334771944290558369885946014544362030782513272297669465082129318247353029916915230213878621654520517074512470933056686056462099721343966105410120051717593987721080080612103340531631563200536877555326287234435893413679084642816370583380370487031737477705565255219663210776463113534401077849977311911708413971644952858462995087908250844047736167933390847504664670626001859274594015113316705443955168611969770770240214555083040433717560311539525989628457415924765188231839989367763531253301785338002539986243426159937481300777076261602972072960866429340212913446970990905968262600515475607737061385724291697330170156162330910789683184858123434591737120628782133703935286035928355684669204949113140516328100994050476849876436988503350107250395179218413131004733908892496052153769571111603714713140069657201488003255966034248892582815967969869065263097701098140911829648322801992999694727878767546762976245811022276557862105111099232735208246979000518858983876674722992973437504964891769663407516816003993320510679642917787510523724366612247355175359190313882988655196449849500079240535710246255544858261035752581409981360031256074708434259627657763146632909038230488199275856155277269959433530545364553568236999961357844159006009753141332875029519883867641412044622475346352709480855167842447451700451596127903520350474136220825369363448419941181804563747084161486856622111788953647957196859144668895286178157924466268373600087344308061678795349043700947270694973697069788206611060834744876351990379974005636144224048045607006233746436269292193217035024744558094987742723224358207636748365505771566405289809866320655188382385915586683969730395592178440379475903710555379019221165544209640624557784660138811322835145164261742866756322387066383071993788305818917990306916850786999053191667174827549315559578659208815120432194346465265761033902957365927786514011979802157680507987886348191217312340471329157618700624810611045714750744528570449364703465256723798140774454914657705712081878153045719051080806853277188658881419150318000614651093761508569706290865961553010890528157097711423154313922490970083570308878705982611465630463512396372883238482172261079900274997575100143666617169975596182645465601208281309449727146248377315914771623194487112263173602909646955212953665298378567402172973995442085807634820263122792832931037900130522973109629796057464783098435714884803737955513613241919403886911186968005545823755135405781492541821340847621703240823143206589035511098345007994921090160406441200847093421653651641245556767080001390564104163208469378713845076370247165598932547991769671060314203761673663892293642449194653546454415879094054140268396249964268706245336050131408951391360058286576606030936812935132628353287015702780640508704252289801131350666576403783355401490192494166588502141322914431140751489257634970451577855076194724620686212740490481187318130691607407326348067492851995036868019621051746835091248836374752815589650873817234453924923249242375566250622207570735087658091546277305880089701040810772937672351956234066278546461044804699807352566208698657775774214023423106132833900054365459846952616431602654407017472917800271894641458656858115821155573263702787975987990464028653018353526169981503224780512283236270549966905248728616927647753338058524568233540925756893602902140029626490501957032948316987349630082108455301878296014387776104005911197606252091410599363169489200757015047422927322213904051907157039401845156059013789186569017436222200809790259971376168765197233604130357627769420162425936383387928539659546132134221173244500912103645525322457521984926953515491405923202753653322835383481971677604806820615458831343110169927284185901453254696259643299135125549511414554801413018889578580029843141209001640587818532967457711493874993948029150554818665001248117574800947527302075035624143623698501574306176669343144272691056117451324750947218863006408847732602866951395954030876805537577465150186523585481557199786292424664391074921719139996031425715062691406851652838222181097339923391719842913787079607894920683843029052635179404598834511848361556516604201952603639379469275266093440616543218235564678946315580708366888224247155741855843587976866835581878799493128126324127457105004702921330520242393932102231092622512655613745032108452445948386623375468758552611648213313302124019193582825267311431074011556092660838365024617313799000578623846681817005404575000443980132047809653962203496077577452393568366543688385493925914863068660287959166528704678431840600317625757853741312608393765996616723978529149060980580987750441640934006958140876489439091454207587192280210890286339520556891887402086339147258702637119874204582499313466619912797769514018989997912331518316856539024216303133033673108238979160062874104775195299907235216587992896095508857813859927356137884261929102580773580561839919177710205030707205352761946638044095503742971783358431213691819637110604299160654088511291250162621569256101511864803732491614208895192580405501931217920642456758086549122726053617750571355442353947684655751158834786350305917978520004518285630347810777970876408811689928272741176714920051060410350881570550634530687095004772269834144443728529470592916850735896722865580747354065213903808359231825482347759713760250186163732396103102523383767692776073232435913044195225243893551977257426272838963923834536112129895560787460538391718460548729767190605202533829728818814662924249332723837444688676017755629471619238237173535196706265674792514560962023098628943897685151544875803833673368652454753290985644225687678459945424980464813347042186545964202793532918927790120861091172936732079875052417335359924398202867098853308437985287120890457380846645631017380703828272139537982692748629150613697033575035758249132841783655105208256343630801077909940775097321655339550652003783408484531318841890461992765158069005899521858026349538217612367745506083888023756222022694632323581008560384565286719139709315172856107018209499782782589346117214027452327655023313294506623840421349944000517933627962330824515215396580200212614230110863259269887594182015984572135505077834134809859417416832896960571704283833380885382901497439651535676634946854659374164629856994946034601284410597450095273441477349946911760200386861017403200866574512055549297026472654622884578807069204225400013327141688160499887103827714782791566593345037236284715864752471685939551849862113262766729894880555689440316051511338843646253875228801748342233826400888823355430840970692011283796875964008386433784427659316261836951155220757812063508858887433048062155920430963499674553968515962900566565839189692043585615070171751918515792010460197090770166247129362071781984245677741889855997834216283327673156029784816536458954353531411195681324832010681426245732957308582557864774895781494110294917190206298311544802236976348156207559431926946021903563657725950583086743197879371623019573383219940570288274195363350406324384101939621331319314946488992816111529292005569969257560344013915684529042710812495743657321806001719766644299680961385217429641999442717094136135598077506233209684327747438599648936097067020391082745594590822549788083130602722743310693195466135971350673331281825648209161733267374902121012347357922277152717646273869915122448167853751069657033973325892955556000999102980686682753115271041625977939140489051708052960893693991222023803057736095723753815523531901153879960899203359629722675627690836014687691882130406186599810107729437134343292035815775346155342679831764675182623877678311887280965980665904405513965772688096705384855290585735479841972449653273120824913715494443644110378788451508049989917873316248084836059325889606334366572162433263998314504636104456247242567119902468247099847912171444774668342435288973103904834703005313058263182256302875997380631244112529034979841546122028840625471468924555236867999626588973443689125312199212627274995519901913718989435937461594735123019293742796947890887062059761973482121987016355883416683547771971441447151667777138545128105209913348539400855230013470375811260617691579988434410306503293165214641163543153227577842451972340524384316425984540341394082981536561467100646802028509600491408637412152105733504410582999114935316861895572911956005642861283022973348792666702273892119641326484863751155239816870077375144012962887392874160581165711158264268719850385955084612608172173154658579240508559771556337410080776503066002565912534054188102096140913073080072597356205930878031878308880754094962168588559740415194279556672759501255747267956600908232161782425594354422312406409320412109204611538668648340793002875032691879390610031088260858532631773516204274098368078908819415665750151382962132363568225314867038110556249379801537686794280039743168563262668382774917048979565653736016788781036522273648300802441933763567418441335769618702237028584732804259068129447544075837023038548968477852968011388042631299437082342455775511441962070414732339012934286258408386891322361243132604654598160497290074730309357473814005844799761635242099702194109667761482035716717187317063795376461711474069203500087650624356602121752689081954533654138801920750351616516035634301604525043002447143341043475188602924729522687935754827327708445344242212940026669475024638282264892499733259731224840852341761294416634394847462599664768735502401331025502213272337677581633491397652841449886700074535674866683143299555161582040715614329790871270158165613468078160976396118327372656106336099265575441909922441149470209827924591546405912034940341787703950457251422744837679213107815393303902469542959222841632426892836646456897824772227484686169626525353428330711825149766742443719642382589111090868039841949369143550445877613862297371678699530612463501210569318723144635243076561537411585005895193382520719804409477265546966659977212665580646549564830331318163747940878577465527506751454439696870971949165237222509878984111546347660853762536807404162946883768361238488896422542331016799873456181874254824706197962645459323296111245998671633298056869825115624702520418013153392517713098138846674165165118149433523562070891680542261994054943821361235610232979681150064728797270928236512012975328236467589131929404104174342034803141639977333498386710344786197285715237703890831725626202148132667487197197050360482790958997090325553637564574180783854184020136955231303805664198662779719601222756396591594300443063646523268014959535279921546729588159425706216803930430887411505147154125340701246724245003034636321052909450086074411397073332712306082181370339691170591002055160404965781823736613007110055842124594933108612660021435528445804261821865103498964821654565531455704465746401128748235018067588708347286536010258591738408186814103258551639358081146489987317189468991462041674235212670812384959779964993458744799235949303295042936404491116802396484341417909999680921620173431512614940334979888588663406092312585137833464233270975473389953577042828742522210552902392131371157129231460879630062530591342972383103386834748294396126786932618242224051346593145275884582097370904046690829016965216831301750691387196027587884948891757965125853656925853302271412420929563716334229927365738670053248291324733814814027349830139880636980805787126090908540384541613945770736327408483494744680004710802455868812676915337795527219825806264945119170961091225932634187893939200244444241129820792433623754938714802090761712524127118308929538310704506048688346126372986045095951873383584978786012648304014570152078430909871192553720822904542834658285004694025312764614913445156574849496612784106358822944410200028191158379877359540257212642825933462933496619539054896799718255380473266837518234075616088906060646918835009363450928420983335168294154654011590366976634104999413243400684063526420952334318860511680305878937578243177649824297281875878967904682444059291107978351906230345721221997454562033635839585097096100858954625069322384170335948340822487209894070953323336931147858553344471981664673184391008670527594302098265087878737544999534194243066571460245959616168491280766044456743966683502851183300905566479874426215719209296788266719700651055243193544214880980723688900146766163106930563236688591218635644609831887129592556947175429518349132676971509682519285615748814610008323638875713810375327037306597512238068515956055925356751836523192332042754555164007125174417783787880623838617966950333041470533772354415290802330978426447398801031161201014081352950691943955041136356245113939959879269181858988260264197174550441983707504441271390692034445746111700416913978691354575841834765184414419681315315956096880126040829933496902317456082233689190993713600197582462741549504892492509701033079675254016482253619695833381284628368807322655414272104008381254510105471627601032830697288931387905505949342719374400975652975309695396534104282121800383762287673486470117156680412614216606103904442369678027849409362478095619769633523616205924958946521473113111528447743615334572531404001773690659060630142324310237838364934434891521594417860017618337935090585562391067274107382582066789000953231752363556097304443327012905887825098076730122992377405369346758747992302481749218767916347763752146995159371039105609685753100729133168492528529165419448125748888901996456739295384366656274968248525638346799075964887957725358069222658379862450340671612775310193600313293171596824930456294395635387534153972022281094456717227571640091543593907170808101892589982330354470827207431981237407707825144766864264554354965432504740546097812413052902828971610578023348749111179055534376296334452285857918856112386967285206161689654674713010147541428172154867760447538358433927554745060082632940629567244607148058677526343672181731897893981312906739247529205328558158764970760979298817814095112279551534804865246386827207532537668614407335151719375948945196181279736601094577541187289678869465558749470410959071347065203027199096504353915228889540721876500298802874397505719800861642686846570869468583218087270034819667389726299734766440360660902639759588033689652053042063299191312807293948358682558090250256971301127486862048616024687416548694119648884288299818211907047204516881677666415903158197506073620179129594158634706139656959445068210094024019598179968217438566997856371762232387264250200400545046864539644638737106595252851924734027171653783004519908822311251594081124281826866986049621797798207508737365269255870290461742667943383798925920789684026756356245327154505669225632154714616005755800866754278722600874462022461808152370428383530687454319098211156687804794595869471096401417188853805056861840468673726976947665396037830257050953271132294557494785539150939640422550336845589744062724927586255795050400795284974591993799038650801585987758662721416122157547650623095477746532342963605083501329056263471055929321972387130145147290249026008477479982451854871544823168611892794237656964405139643490685038672542540914851085355378547206250225850114267990595636940178844050157214146025924271628411470774907792013991668296808474991808215869026072136833375991577068475679747492287037222375044395113161046804971659908877890543145229581066346724184285347780786317978780692853204083902523325961988969261598413767977234239450282815550355646119506663245258288027172668022659915016003575979103087138925585043876347445348227177512142933758568879343897055022606622304713709233286972400159218535884723871833475350182991054850439624863466560701585323976771964795299963026555050113225590722413003741131724242583790214115804860252172129411357363230480354750546195549163083585327671189922173434811122557239069793199481143729387989381376792568100138213574083306914345763361376802034412371724595975803579854907301571958400904817364575700763466975542145144212208179449156839109520105586374505893228296491410407265888705845808433538045332638521038539446943533206509069710415799392396822433933126433871012610843152605759812401082946824304265618849198459166781293309363273790775414783916528302923567869644932980985726176832579688713938830728198453141463700342896940496972746591419743349170260068374533730607557245966885375212880142573455177074674508182933393709547256564853396195841917007897415926340315621922909835837858956350333728895288015077391438152859566224031767211071129428453919166050882962756922947044847792580152355231632114020093432752353159227715014153516886135039622424445684158777665395981368712364980672274895864069724387487585914815860692984648080102397994816826182549194092128302609561729088515666845961394502824224958686097303721594198540209404176617971515357805355322093344040986366359181094677437588954096966983907888355780958575643564541071511762917201152959857791684323789401771945396596449105668506920070512830232583007238763585294809445675637148528914100311904213167787646464312210023326986919883145539499966864016516054617358076479048695542312325918877842126193513343500053805240562558508342853721460160459479094892907894743247627970898305308297930173559642069924162019258286661476400958533633146089942261820218430027386307479736158656712240860046211254627216363993597704495352584282030137596088401453940436058924834782010387306768124348747760166807307486235883197882985444411132384066435038636181062820722595639817353207780483210462287641887678391423905386635613557633020539617521209169932392683514022195491314781429980924237132876007561311716188046062367327494468026408704425982823824311198869664410299616977597564648237463907920660939101280416809345605905086678739528369826770063213760874052112859472830892007950634051521437148676925449218408170282161534867777372915801186273231176370804398998456046752783680628862481589028008282503837486048559126557407346934817861004935630407239361510752714973393275006620120506102573348862727076637357112502795159281441517114342243473357280183571375164222685898877699959235143308314514624863289313070319020368568651955795504565838532753461396259343147644175082894043841588586022851317227796889808261613468155885252034712617888250306736702123933091347044587568152571040963435830879993609554843920443496494890069494257864776136111617063863205417718875363936627732059469139246535343076851623554102291111204142376377643152822185190183577393544478805224601192665190885426415464062016968035143122595287902972668662061394724414466941583903726462612749918572512914308541790179491582078067630049512953482793722256296377859163463439094323435968749500597058026491366644977544993516919061331172547234232027820641115948450351032465189824963947530637896412279270779454238746264559861197139102498545366555803400569293442619321681779847868675219203991998186354522566768575303894493778331207155910721504349449148074260643485566887376776955574472038099112855394447419320145225318247379694376541471630842064114108125990269718757462437290141343839392148610914871292027979108883035938452186576596587628317744163502369735197449552458791854560852306515884669897234438499527415411321370005593872218507869891807674674398079625357713748025696162371492595093561787698356170506724081426913366752578497950223207299077880661362357983879650466059718908033384796322144289471880451192614694910828849512468301222915732949224578511806936393694098513683949374646897262471943129368393986345983656623210437545714795608930590334053532282237003922729958910150782014099714468947310920097136542042974658493616411185295061331013222755158146192733499921445444029553622406412593435602552081532249904793207293133602036725912105233073524611914223881881362925209827152990364229356189485798134763855170334420710571157239387323201715993106857889010639297931161519505211493049366993674201978053995038435381684181788807558658671603924206391880299282799286899023215365458577346451033084993095312322637881407943000631086029705812714083955407252620380074126278107313495258537074117515972182593014797929623228326762605390034075758219609877587295907439595550877185291575717588991158057279208791335044311939220559985708280273971875654980386363965887550547248210685687798580233170065810191771871549416900521887826070035578363965774841606610084533260820082365812359492551639944628353462118326458685432174813873585404825154116797643141883705826505080036834322540244819039043839553626666312284735675103911632061454995081204783912296854522902886321776699479128063814647215934272415693100881999696730800354912241592469659164574850194420164293174851976375931999112862141146141751850299301686577373389439542447601025213480633154366457452622265123801498641142322598370080187475727293851699303431377879644114608360352946210706308456637737155558433271058901829314491924078243339484876675056750748239758218476157359175747828352719864521270653180001298616638036657892630445442010656521212586663770367626429365094614804706790515347877474512828545144834026472983060419700634710670708825590228966453185226939252123644616132778072823335836669254770927463356345771890461242846581454013837750906516862043123484355494564262587147977160621581142378089227103988288733562188117684328597660958630094405636510386466503956616425189387873272480670315556970231311230566191489790147804317567385086108907327014834259115852193052955049126936378075419449478826279433849065549183444254277054602466513359155593989796229725425515421855090015780063366558642788575129629812227502630968393627120633699333705647098065407984308341843547572020941548305608193389994665587738241238668644408443373807914955404247820716877875790845950305901673032497321885764872517433044321111990018916161474576855611641642768562997428316354789958252287230861683426590151546381381016563898549011187485515522277680656078629467696529190181258387219338433878614591255685054897333102711654529292903225175350182426370090511074391074907228078858848905573752047817599987213152746052502343393232820080829703285875004281784702540012597825977561222183600946809384010917364023516184123473831855192937983471447199411903111319431282235506047543027871089378673869313396264502173999470843599643979938669179207525302785989514247601361813302893072653911028637690254682923715228533970823100161105602678612009719886841186679573121232689968929140136990805871432560843409467248910327469222017716083755144399783129724989894697613362872315773754635964953820449380314570688995483497365134994020646140580870004572781631592354281598444885017939961548858158152695800537267579893854665158232492066118950396597820186864382113425658248418712381624176535286846356016534285887175447382404549572744874067225591807126162243889192340809069690834265311617671196743601321895176654255875261544252884765337667659036906952333464369980596108353679605601473054394293685456983847005164642528031700761939369322140536450537042156948685191728266312997015296146700164539627481122697407075811131814586768000784246639307593983013666877663195141952519110031910920945791333659186566781348824900632631618564606884771618187937018371249887186641247620904560875690825510681315466994472069468523478675286079869823243260686845603390323099596099594707404115500597494906820866311287312428966572216605126444118221081617700750379979429735748662745809003723150325016055091546914782992861088744803734903041740786067681801941749181212079192770067228298913802076824152841529849090033441734813223790878980345131062035997424992985832503931017796996027750174406496916546012319025293725249364445745590531342794471026041978324746688676061497602284684370096330365523511460814467733931988700369891466609202790237288342952695547735674901368402395726614147580468513551796495532436834588419211960622353602203630341362235055711003514402962328149895612966003675017442755759256660428066309595656255477012568141542327244977701433133656104564482824161035082346675082331857924539432886394479145608624670770233611653930778852062881545456210032139750840020880286071855661547745058619971425333855134683002868306327811073219661006376544675183667761474025414212119269835408368391441200262572985544964544028580735191066196939667975149333538560221627301476785596194304686129055798714720824175483476675083058433044818210433190487160425814221611877368082167282054554383130573384571982349965748768988909105986910053058396371412275957139769949344627318433763697654625799740017567197337541455637765787269544776758773827915923033374959366113016195325440360643282084627345127261335052945201026668129793146086138896019418802492798645920357760665292514970946071405077158849422169293586519445259193504536534715573525830320491790692297740021251361370607347987229855103475488268548520356869522409706079193547789535017219861125961465400247916066108928675178276510291882994734709301057876773092923290445539081176187780190268750795210903513811450435425077259913344654151073412302647277205728461155840293175275308552972468519709683082400849953239453596994358390362460141845108243168114346156962166171110154297567991304368802291004408691782220910847847278490481078339836194307269027936110010652939900001023334617744397175196018120373406393297220097082597183580817596780758699695509798518924142144191874247258449861309552902423200119773492027243774116338332350323644918462182095203686859572864843209630997319074454344648864894672375201629880856857920916724742395945093146549719065479343831207873332733482256130236477907021120208375286854705264452913396623472025218739108933687498166984781738708661163882517650020300525263865068917771237131834303821087001417326597337833497145903262715531825171782064522251583627609974808618178518720915546389077384037542468688245387146601466401313096835116906392254941656683476072428088097607727278805564114959764852925582423671628444057221374819364969125323931164881448037110581363777576894984125982022926769939684916540475581536557472242824923570122004631682920571223692996822105983749633271277971312441140692735063228548828706208134070251058890887264750244381980370633586938978620617423346626131682142323466593061151251336711215865328849362729173604077520259065122138328426562628820504490138266333988397061982579454253563140146472508299388752210464052444525685820438223804836354893450253238208858076891427191892778264600185407714671096404654539354675078602314536610460520649274573654068118466721076313360338225489782145302944159186533279119225052089392307244230689745757722967468344993871575809557400150149510791023020489623250748297006296839816561102882900037174602892424961777663746904398348993799675662876364533319128537670300717233459990783131566702624468122794833523229731412434895782607255314013327698112663105529390857747145453131426071531243640544325449911196026323284410248625353990999263096680159815669438167356935286035566529161910044918654108293382809822952475009777219595744334558799137154464604413841820076352349852083905706608887912727527358272127626984621044009947772050073654145711670466090435977675569325952662614264083286003188767671345936675100982161651596351347869864530380526300448799887155240580508296395645015001731517686409638538197431495303172438587547476625153907441296767329926259732352022971588224498101772351566622588051687850899054829118846038060108068605067856914672922864326824538073358892570908709433399990034560778204763630903883935765674780918736933786829496668319453474243710393574153404970727638524312763403828989703002190895649934092232263640036267834583453628830589884823108077366679460189670492826144911600738534960475150773804943895272236426215362263635668934140790084391420072123146100949306688050445750160643626121569723126326606030137688036375749359443408605062817025262156294325691578729689372337158528542445387792879169017635632816300562641351920959103732377568988481115764085419259001494081114447432453759079645765589208753870151146954233689688836998573890185271377374960383255702329660364353848895311685631581863887465210224424344378108979390685923476604495171952070157818430005194455265873863498860305597624727680779756361386046667064242066601643541002272633847182572903900307540015883942097163508436481639360510194796842448674564819044792390075226596276865490010349280204220238407528902195629373817597524843774888331691897750456371072755448886154353167910193825472699199838434966718967038019196077017369950622730503208154615420035168188782084330509504733677389109125649889089757087951689533583321236374858830512501172954293487146477472058098267319660296242044740272824817029142807928827308299119021996537666509969670354068632605708675874577912717539829330768137259450196635841780803450354281016222591097544931625727019495074572135678483964885294857034945272784211408814668804109526015328538018295418393859430161806009117839454891583873007432318232732503210336571268383557552706251823644578903720138473262946984771713822104154762630109154355055789694721800003863381402570910460977277221292864635818896370987423670752498330855030631595314047313728448636673592377141708936386985547375345292531149036780366230533136662190191586340175411408235677607915164968393196446747101937289174498835980956409118740574272288317334560924528685818572758221951744683056152787452688749227027921491896179249841547561320575779483425935265569547953241330207453697066540131013016132599854396142711544995833362775836558356189547989701271509893427290899189798138833736244761708488159968263451807738814611193888211751234569476579071354221590248369142497811375114279052345073421490448697902660149841267743166713791068445855845382911392828828728484223094525166457197272645460340348383911648833057910553564339640020297844355366868195802040924308335700898680059525315860022226997299941739735633396960529710621165365993912226761226347211591052609434647702816438029631144665869538032132824928438360293990807419953625073882189565710016684324092304666557859493226581783494754355470842837165376632150674740168105081520627009003339025189254882212976639806067046702513055993390082963220347718041591121134959749695363655148144349600725336544329455887045627291862472449496812452718299506075056130797328963799267660385847567261304560187866453504050242587167316287375129002053325849237868382478360770329882584491779396811015141950952948545670299094271058856332375836688579910842546613872724423627124977179428261843972553928094182134042184966622956945070514323901511546870343961776317533745498923471506280920444705864293458996757026494589571261351677594428984225056400173568157795135499631256227532053787994740741595695200200037456773722688977700298477653488073070340322496489328804293624688370838157958998456128162359349384755250982319945215155828814510877423166014275952073065242997961560402953952504039138675111151188218476995637506358192507761562409569340216498075751459867720175078432223028606634049608484354556695651073862365955016363818264121986037158340406006174396285635269647080128757557867656697947224198528146154085065957942535291104888602167605627630077464705085883551325984653583613398249082228241249793864746136175549095677245477130882821215759380635773724537316333801837293204207035001349370994437419952645319459317790500626002877429878829264193766985895627466547053468363498325468834632853849067602417410096153093881316100610569959533729622482621432175740411541024860581467079889787979541370179792296807866909258854417281787125649495982523779628478254322926561938459820732336872409997432674606812885742324805309878655458550422196599091988427979824288040366708547260589811910660973766702366831820580668720715050561534150236193923547253411119820614343383487973203735581230092506671768722334591042888388473812015684330848279438452502786853341745397759013340491586008815176149026530461518297658864375102366095376477853525563742230540354812917368059705159566821550625189299689993654668026400395846039613058524076527527979511335540691727083694250241313385617470384687273753903244770461309211157112131950182229998408922177083534086647620206389338063266803745899435459253247217620281521472524757380364499543341824188314408931187609392389460206556901564283620235563944839067292916523020012736128194638829289397868757462800336337637920175210693595730461626314591005391603779984489179404520674137934915704551957733920912660521960696330798577767898687808448997218759148314317193675090077867394236247773747559739524049344929251430660966008745511684138223834950619902427531658880308852943798775900787863880570856683908990105847369425081304466055811364446719906667535915752601568403304125036557919971204392219982468350120044497648717797037041145913298469499384756301767927285876285142346887034595315064655015084519092123398993826977407030241596198393914496885928601490931712800561668744505228636029562941550787459178719050008163087093014835371158955321823979613656438402356885328349678950298892002379829422481218980463849060731992412339678636503888113636027150876340748917550111151378931797169736327115338800075422172999150932022523755780590816954991323847941147728607236822510947660652461863165465549441112063422359612378079620965177445558971008717819468092350187557015410040010261530939189936959375662656940838850011020496201337327935717873393341657981840766861866248378744811465220240874298951355877677386260620995937935499813111202874887036989296280509248305371602623805090998497823214503077344705037406188978428655411606262085756417851489981510440384881795124707129148377095134316858313557216598929677349912045335775176318931338247255035082925151719315235689818243080138418508746096361872028680802250882116304962625831082161477026963595753295069599936929863280448813715039662736421850775987667987965676029514684612058138850018521111140251510979309137424530038857566290577158051218555813080840444365959439099440865291115227334075327471565787492773396205237686234367613899639434716946068995183563416472382495173360584986543571644080347642953846134600555181606428306067581812134575095675867277044076625194586532362996122623687086896416625520754350707556496532000922786461176589653124907745775057003839205118511490769297183721719939671269586304820426736061890127134246288694879538445676991576018639108386996441503855658018835409077232537622268355691377135482539008258030047699942159188474297857045419565127182680762876221216560953127365475683434359587358937548630852471200766059521676590059853941209050167572615849388090856643048497254612610777523461333260270535096908360553245970690308221991187242433134241149252334374598038989755260572570968715596997545316434420030135354216897492937523496525115852288076178836405124253904679218801323687241534731186267185640886858301634902099549723147044727200357514524622709198780946553353930201845863698185030261090875341857852394037525831742771129651033052359478987842758848305787077504152108025298314380419423322317018591598860668700990364127395233680882856504418347384782894164730584026845355095549453288843358298029349813167889027460105903747516428070810084458401801800077523314405103084978334422402530478012131115212098478814108322380483651924107215756033370829393932196779279708627469925859244256071736672670821739579699905333600846854351180918819901484621995688999099653897376134152178008320368497137924100550913544578027831507398907576464088262993438827298995466859829671154536243971291805691467339967904801576490084482561635354577825076838917986191184185391143927602116978584877483100673216778264277652364814371475853516365926607596686124588279655092631352005791848382862650026147458543561894576259027395750255621397165204387621602509122090707178751937029390904168897924483903636390529813843042008924266753861212561760805928845175691072317759379374848507378888512624539464235378482867812735419231025990581067464286704132188719543646743403556588565591380763401436723971440867797676679866628513653869864939023117643480171742351738561118661452063878026099126929375806776130635229022184919236825786371232331073093132659430483513434455176311093488342539424561909790648098111549885494696291896414361011510006263655764284610849018561496941140700151071292846392229893917537841574256914548168315097500081249634883652858530876399542033391230916672166219107762240664636242940711729977754319389827652110048866803878553475294347111552176504755715392391877514171974914728203413210894744186395179784219078055512227806152798997896758117322683431407083485669554783422914638518366252512692543376678452456998579724489218027062851288056740399904271334512953176229079637264595096563602378576557453108427392013832742110771275487226871221229646591858090007407365341553129368003834621972047142174537000866251758922165941256036582273066012475207124423339012570032952706688945743268827732736331920055310357797388879786027549953274220796064052183169406704830903775507641661423265156108869000710803397512696019739636143441021333067686712133927150890818528804095164767510501984973045747163867600288540119317087686490634213044499893095201640038851358537569048069653522627047922697628777732737603187476654098672053234478662771122954968054674700233639426177433432429141870751608913850201684993515088493002117477674603469256455064097481429436612435140491505978171882719801730976358153412030889182406017908124230772978216656865318109340887353705536259643944924246042931800031054731875697726750505351173142107338967483429836930199364125001317774728789994335426857613231054997803084128548285367026797908037583658401552743937544580424696241664590227330933585403775218194817807627753207775663354501347249953415036714641529959890959144230892413256737364449070585376215248106204345414905631240987810886426454440787233502561037748914021470398900108183204126915896696577024644585362827718440863269395264822845334159841244294691939446791410495049415253231115516864440497603283172835430843004757125517012250072736650574077050703334075018107624092503303872604182876558888184025169095192461675335732368245784551447861249902701709491872314155211526785916091660000326222515905640026192818305058772071297699728146309932494028270225125476490733765001802657069881779929528420874170040284388561612639334411464072607972297335604285995819496604568074836966763342041971505742076804729219347182317452034535512854035161314394767747094525477297296317283226101546092994515355779460187753971777746911787653678821970039679787259709522944698635225172795823856898587065639559760274192280309925902802149726355452622743704244009034221903525417555747684115376441973210837748568543192991643634571530011191399856018953617120945126731748175789796269407556796390923018235222401927735121346295491034927605025012494746677973124341098578269250742971787499383220565534969000810294525815710775503630609531677341028405904159162935879803242405604662202329458943930290335217809564017638109326762152467962111657888806385222602094544757433978038452684672024087227370535505629877808987133466714667489926696643068050296635794444376956529351000573505612881964265683220611193805954468525515737314828626581757340254954031350772627372724699009147495356555222837419986954738747423364850804872303255645034230351436703694271649676792398190921626776538970486142778175919466863120715775937624496296137838088264978334851708010075250027014610338478698437475182999395186650637198505428191696974747423745710747647170784839807575863880145591606027908071960699316633452343319686137683498727169879661722418586201245940532885855521452530202703849113571105756586046177643860004333165388676162418564269903088637007144323695464606334885261114299060573742650998946744520680318878473412624218232840414665995398006134776359081487834334681667983495696908787567797427660134847290591195409975966602394545438760754854197052509070082236280412786512830944644517935341612346114216955339676325694522114616272141180196860387414231165862653599398947655232585669684637086164665284168409098952655752114954577605960466611632349335419183547415934893481712374378326902503518958329498008966876316278239594966307172214806082796111210686791539381749755740720634840231289135935348475517539299552969586586410427422252263327883164801392224769284733100333081480056485226450238285041223041974945008650131243996535777991808849971763086243679826990588797928699850773919676855931352821400914364281536781334353121407443573550018025028019527504030669675400055812898147974106081247786383256153601945920286949864885396801864753832108661365374104407147858949906932385305465493750030529775118012846275818791227683147393548379982625132402272299702322809743046889367661362138526359955042290053587748065084038461858392137079285439115796242615084523073926347160852886553401103640271001838654616453860258877342463387938818211088202446211259991952563783837218850684391819658597422038287861511240332026556479756819945458975844770074158716103187462872722561626905034748520495684203465460461102637272606411900685228777173029133328027238105245897139304203498289440672903258340322896899467795785462553322649771196513619584731001245113840038917566950576347038283777862867801600147049202841463428137278379312932080317088327240570092408110192885707728431314382898990418316477478876549641437755927975270384488127661366872892725095237033888333377236090855927878856122518901640419261433285571010346999118772889145254654627115507969071720023198442940066647860863685226880927734240998298734789194352009455569253396475077019043972764309671560431829926662848078922403287699775939910064474991553578284170083276643541772714389758790342574095217868140744393443197648802793725260900657723501519510017832140272865575266402432705033702836132498254052662972580646796782838567348815398567683602176336998654802468924035992389958977811256084932274129048950063539758671268831594393981076775552719585635998481468224893934442608062556362365642818962574249940674205530195413006010229298339875461976010557187503748008923254770533235032277519001588026924982090028195978082767611179759531452378649871073952188249563809035065995699227662252431440414826315873187611588522346054523078756023559863782157487296168567912364742417865335556387860544253823545273486653812341251145768905635191967484462168390335328955472953185729879926840054825882216997096212545897724651870891609218809650940123313484961706319887790456925804541546393265725855559731573666503433429247705575255595992622933660382364580489876639766291992264994266116623537410782206101115205007066299067618517262843315750643332079626796412144102362981662803632107924455581164556688324584980602999292269210264026501230905414014764093280873743524162519827736054214604751945115525255834260325950480873682630667894955539344596997013019227185182430120719712736787087045143827428147781454473096110085572953127963152349712508127326855538919426726237035128155532172000343744249234305863627281502327381483026208283526837265470548972953755950115835541458864853532358936379706487218534730247209343307924094872643518881720170757153885385176221321845139047618127301943818252140932229594331047030928066535027362048156512160582896081288453862432577896220004588947274219669765921672120727969430028072332445820568365794976176785124304237228536485473068951709789534829710275489600423066402381047371367999855225596265660501259273042518001182488424858256770578855689736240855843301483155308818723979417876043684415899213553803662387859371373114473147744968437971236410638181011844699476505681530985561586254166667320171014673997098072893973327380521634624822708519449347592794602594992998302373536385479271410504081414203041733596682084933404359745881614614087954562352582078749775484044367182377227929597995825005853081175547114416294224508185610187253110406286607180439601876787691389164295395363230461512025692951192197677313923690709119701110286578330920323930253367528501066306281806823184629729292321168218076086285740309546450832425224924496975458281350750829058632593259672263656965084603664493754578034772914211118552293536604190164174486921840655230822479474827762585010299909562683572538776297228666154114782174269824131376590264550486641245381038796348172209209000048827074703461203357764236294211337150238627472176761347699686026598926481397563355193917778092254146562865756880624405014561821567716921092585430433043328828529999451554626808863398572993343887279783693412195284596218998225750298396083962868971785317748071024455089505516445100795144169446422941006838187148816344922960628140454502105810949143150049376307955207475379792355440337989692016728417076950907869446985191659990831815806869558743898256931926467908511710944845528186164089943349408840246194255176303078220982300267230660840829345117449408394867360156361273602120731830689158396950471691664310118475341419996498941497135688891903989729283908107602977577528186945547938196969239086430365632063906775288554947320459521475121477891699334945463888856171518425808269875267107306972080370487166416407913806250208885647556323025106713705707525453119638837190387109988204565011065702049198299299812055968853673222144622489183052641126183282957658212271974500251690244994635755222688863637448885187009512298896770859598891935785994092386721809557620887555447525412137317173412176947600145710010769584334697094073574918256883027039359286548725540546635769543502525139890230023066431055961054313384956925461583518498354730685996914622999138497208995610760863029365062764357267755823778794462356595851498536873221850676838652472396392019166521356343361946192410731160917463054616064109652474432787435471220521925397697473284904197191069960828268717176636397582405371350746231016910407552644447026557624383760358374583883742169248541528387808334121289947365759941453529336758599047739158196947218142952653993417416519350460100869492821231853837147565237720288412493273347858559037809656189844161325094249963357981497810886905530661352350432257631625159597746909277504698725147775287457822136983249634425521145391810747649197622818972847958830948383401976551219898668107236727652782307108583944073700768195029434611018998465607977480458085698139345676529923165422760289910319043626547355909515695149940131372367774741286276166394035135017924471486627025957701559419326180832493252148529808042962897026391265677832574476996619903686761125434614758110865563349961186842525961951694943033909328243955160394733730213666222422121076301667906329628382016002823856537541952238750245951352611595600020702979097838743946235387823117523307137325704409916576808712718479948674774191216969148039809392438781512350544942555065895492221978823456783383301566833089304765053663446821888306905042641107296146278764159592091183199359263614470996364740845165133412633605436046857583566559011726030164627387753516101972502811236989324741787818545503561064824645083354004208421044588062408422320077659359811147327680396482290404080226801802888328770502762705046680153324206147937657144799690617109260444898586666108185907855737516611871752045978984982847624514071634613556263498014664011327700661164911908636379487839457220117898204099871869234322712284798977025691899903214016047989389937700399500832936331761350420342739420878266190266050114954333408146844057005692672196521069773850722990606244180322781262583797623891405627462441002120157326756178387900882169712307243653374497789705921288772394429959433336385023788254233089267355462700460252101297402298370778012918811220499975201275726393631867831262732926359004047282511077512345043574206552192095730817841818343595040146415882167311378292038491693296651102084651988856062416548700391749030551914399442582955465727427819426563910245143756270134159777669433928783348112760267960008152381248251815627232051282626551407926373691212398459391037142710407552448160311363314082940071613095855447597164273200600207181798043941693674811098964097104277073049512530542353461512283639713731398477387626516544337986106197650252900901241724849155663650062737156702196729242884692073930920599612686634618376376106161732423447959877068688689835865337903519721000032892772966522859305637425594157270948271132716034530116454117989757527649243321244798256868418754962515031548555982774064491225606423827111657608211923763792125122444249973740065935421632646428833329965787139184143174822085595938657761922262548649242806433681282708995260550395364147095916292381034246259749021412496921481359789832602002695638457740697090806535308606148533642358856776761272875557829733094979289503508146442586959580143920241364170024984736357488126745694998882426561418232024917020284945750967436893765124627497529167825649614554991824785273336186393181328816277205895613424157301555911442217796868553529498922866487324761253635498283656220232817647477685085792463479562154154416381734454487074469309455274532502717206541352863808511354526918669800712347689354940954347463777974239159755609869768019408225455355879632949541169042951285949570767311115474213703502013758118373292135037377722916867417598650622374195807706331094998309273036174918987774660445725932602326116149059933895033821782069895403299092232275135025089977951145503935296983437654578194678777745284884719160493304120323971313622570532314857853565326320373405800406065970876903230689378087858025517769009140167100263285256232476693960677094455965660461167461745361212407968605937183233230587997737675360352463872679955116995774875794171342915819837969903522090368155609670142500038014520678061965144698740561271294507744147577961675128929250115010101485016557363742665833326406499922655589396437476536594437223111267684834042909488535020558400875344909902775248376539961230181168360819320357083494771749500330284064348677495152389671108690376596374527377180490629199911300703279331165154234826369071088991854312771812325494145455068584022324373106432400420557524063590811310641191828856045525986442987937059055626325379793189592484004756455030823004885003210697778588466486988700823562545541670350446998140638608292481146185784636629339382278944045180562616892489939233875925832391123512927134822680821820082096203396041071561570444646886875093763931270062387297710193282455090547177274427487320092914128809293900688580499470604554893084609630264484255404516517926986022274891374005127851645501370761421151024837697234703680836039041828985823083247937656573376124861750832014161136627335936595793875720931033939864037283597140349780795641538038029344817446619223099100714603713009907477694475105620498180346458578615303816947214580760292621038019841644787459228067366982192289475220393129362336145468939629228261391953940116468284649160579823945213655737823423389640886110471824081557581167778501431478969150670007460444955852933368009359437633269274821774717215512117443204899714479262590747062341478013587572387580205188080869276633909586213283539142505075503379172039709477429496764855502778191833358313002687457499174495815376597374114397240550200651872481382471470456574335793356668180888800089950978351617972140558179257056403340700730557060421356055079694031288568048368613352261390650534502743028691793751248310513877191809615926567010211215031946699279363725726419325582268955824425030876074963009835497610489454511720658271918330415774514765293915362003817055260606352856585122937906564811851340177134352331654000967456152332945931115949313161697295017584811435661693297155098720745026104128593259169598585816713264063027915353979404615301872420424232385615860586185897037687339549656179665512697306242835463562078786153342444336917026796691489769558843932305383918649990506281157898816853312663753170693264361163071182685715465278536038870200505766375060644132342520393262888227721153830433653776695602835625768412363858191311743002529893791633663724303239427054305314441845201977583159501838005679796727709937551761338159861307011980601278919306345665303642577116876871541814674299708530083571522179038231711225237235603116885694380264065420951338614676928110599809888510317867725492835757104104431854391147762088080510320925065920652996969299361908332464964780030007949754959627735479832722743534450890711490223185323097709619447400457056954280841761946316831589921006281837681499016338707103788263611206077580258036088063052724062079163218601828366228311317425943648340411317953621281537045996170375591737772586458991836965419909738129561499409875381105419247504586253277241228475181067318541879167582153233447745416890929073240081774672025423991913125117048561828466833863474270533409238572767322101323763673520521967062135455166435498562747545809506455929119220507126323044869831976418182417480190356879760613432029605994663988104108953534666050786034082834231300002001313245402527711452540354579921690621404071700147069337395453149227151188402824379826203661448003714991776370427497811085597690106361893095172181271233388043142172380260487117052829417610783938801136300305260380144076133734745374484446349437094956634292640900027845820167328159454525172675457657161419779707355245411862852314983192522084509890993487603706422119507657150531285154881541688150786225149257966245474022874991871508564470055640053762334755210639000376241397680668177919078238297130349690616821449737341697980834623119851870527219831034679753658519213119815186025433191815701554443992834283729649527339074075894002905227578998905756247691190570785849922696864068408996195735818793766752669575674378781304972841937337076677829353945486348509752233767367765902204664264962280760513234994323519154535467047320735221492287275202316672118911503864807646788544390062179967223958120029051496266021058891695921085489033224140988715798784435962113462492269504942870322442646694901875616486874538942035709053595729074902627130721552518720355162077440669011976995385628961437382665674722229080321321660630095715226776527611268776578970814063335968443292565932670540451025809623657370989479782681875590961230791356028675145953913677402505631997963113481711460247767620034159726797489181141403580302150715685285121336594800353030749621712778328484575169098313474070443833249805494760480761130461063060783449955241205184832004792952980749849496023586475602694650511005861465997847862015183734644994407545208675105460225780132890481737265913825519028312910279634049279701680162252592295999536776026278054848475525144055354208571243617487715309105962803552882275409251044151598658721372361361500726317982260786005473196201918195433451704546781317251110406935932520541169813954453695635341252715301841988028068108332679389793676912402920282529137731410173371214644755266322436962072365687096540131571286741123658685760794309853865089014509041340710136298017380143237996021203516107495420919086731233541998839583106409438466729753931859694756826834486994952611005336430504063492345190308905154823110036715737128668853143755838589383657988270295926392885729862633987210224626158165141862337654201755138607333919140727521534604903070448188541486131383358538097425022587769717845325933191102242773435461193916737802636931117384491786826433310096344342422364004356002379314134532828638183910394346326994639847524563263262448704938647929774071864245477395428173569406877854021846936762933485732310342386394126551359737960756419812524383788392493875216376886486995569531661103190209373543312091805410210227313262590780676513775238819655865786260511033506838191495805059646407623430221025094999710604520159120961257489579479614784006035556888539395395946599630504146600203684281045880480212304822417593810892021609278858309101764857197585698369413686406083406463770403099833030015733389724677909623384428216590150951807847857524407334739611578704564162616642774198549490836080093125982713623459248652772221561577860066646267532247024897835810785570741557350120607713890128244439497292705526005333420011452493184757143368487751605701169493994666419121402266695383950795571445037406981732687718473682073146836105818569065310029854281979042885019235797903289177219777841642530420646572468135279201047564750235299641983677526099566777194659080702542798835399078289629605186745136990717919768926673447936224350271709048888991863783127404779871774161107946393971455466295170554125934286069373561274059016021435792752222170550842239026187828738524742186707129430484834896824750762124795980882261215730856638810303847664023362977663816832882968589334508174706711994778117986761536056034858251646331505847028658000455361294144931592375296098616953834184448159867874088321184953168984124988965107597256053999172123092899381369524952793692518122994226659696632765732863551904085599075626967209000702953884066660756923790604207458844976631037499879089840252665445521826163552447962029054502086752471237103930504302565857075857651815810771592530187270428743482279040225286720208315321879460927639852217573352864418878975628555741472735457143218934353888014451076533952881598116093989905194166790401034636785691779942870689291693603731635993124624890353327751581533921809860466841901284492957626669747988891761181822750483892177756575059985061075543507193505775726493279514196297747843087958615890306569592154762706352938103783255906034003403923211873627297815488653326570432719592658804637611572351141905720979517726391527230831051045161471638408701814528904704072671376831094602447885608075013748790335990872147906635255189629591550944860296844107199706552695152401609389790349747171459430646287128187758191767915040884640523033677009361685430992275005963198861849159363288822975727572389219669614914952096494978177073965015701030024536092827211880842503160102473726589054921152220567430877837989582254783658235062150109738035139142938564794100749498364758641503104723775092574436959762850504719803306529980899746635624352523997106121706686460512106213784699970602046233127337587091343428736421518261375553914733000324005796110619920121862465029614215880260980917445808287392767712209714749382688002478956389339761136928970713808842069415619116443202413835012445565909686991577784698841492032019212725022223455694099844615800390688235360986394315847363434521902943915845780226270187097634592015377018088552266126624051179178220168120848024894612613105991291544430158191003541879228611869687332724995686137452594307066313142993829161422089973634961224625984287776886326192035967604197052695033833652442803917243197916847944381745752407298154808586360792235109926741063977044487366724972904060985071971187412813993367020463854992229786624972487216344956599523065662888187491022970943712816957534581325136973341955106136375762206329308913661656112075703003846743973384798498844397870319508566778777853836490055890140723104703311527070282309015900273165225255234526271626589960382919221372070749217015437951985833316405385626749489429574433674174454968569631149493506422262335234498696872028554324729200697255253539864529399238635848965861418423069489530057078148906031680467229178701954173931807589886085431634058439941162827986811086894853809727943463291260377045388015341615595060950007607221787911157095374771872439002819223782203370300100492508090083687262648985980708386932957002937310779420871484904093105657857730262767571932301731673778619103453633409213724898970490671273319800257754678728500480737243498461386573724267072044680277054202251505333410123083906898291691680862559761656323258361883548222483289680519741419058367069132912317339035600489421858432341305787290701188022332765290084936115846719856257122576133210955681581667944902688082148974898490832231684855096961061847883666486515337444814783127112191350990186928636625185145317770959094746266345397938619011205744110285436764397422072315893453992703544817030613452014425887824457677915667163371144081910572383732734985585685142568930371354267479050466635823838271065602545935517460681870128127106242486691884985261131779179300510660136134198677911513393445949429992647324387848824778968605987517679847028560377145511245681559081140145610527524656927500618063873715981958776975725471372100410794905280938384201397645978917302792732984337432760482205509234256399301505168230611804259040114740068368111919912844683207971113547189526271085236320825732740932512858077882928198788273054014006612477294867551315399469977877859562024888552301425921330397732699615871649316629475239067888438221259390308089798008856252724571816984972177540744337375273725308712258106767266744372155340961404450845972211133004340123728545205779710802559975813288837105362993499054155970961111413161813901889062017054865279208618877329363942776720690490513587057786485101279685221255319448840583142323987405878066994160545229041286523019372749339568836526746898863521269892319002567785865782023204799149937837743551354155293233558176454559739814334007688190183670303204632282885629104899678240888061743352406342758973707783188713081867503481491838429536504511060329519942894523363554520482621131920197431800654248144400307379913514024150989914803860443882631550821794377342497705674032667493425928548096278875181233955874333981812652188511317167299895555933529378029991964604245729911518783050600977678676358630791393378222922077764175109502840441642245482735758133579190491239308398140415524151558321778761059531931531731364695436098437123399968875603265318794467478494100665760024005775238321172820809061545764112258446363651556971172937645388547353363790285703892017417838514410356931446770819590811168332667992049437515933758466749331303703132661018187278016225655942713209682843714005385679791478045358672266837842517128673337751855178132804254006640663366252716452234907373961537759492923552304264890396656054721205821153003363370519251250794739921335426520592582257304083549032361701830762875797647549358444158801745425633319846885295256636458799509277284368904933786800422571771067786398975664168908720670668395361171356135399705339363542046956044317876890208338642149229220544570438548367608128188922569445639076100321740893938930304597764830397398592103409959154795826325030335448346026091887266573975119735761573395421688313358502044896387791901055591130159160054252542771570742706857498046694043436767662405376579437290063720318934344935654642922985807017318592499294070630756653903460352359485273664827456636486390956560656228293586991362601584137551715352993258878210867872660972000375197661079763801515530342756335175096276358649703842803950241681285815677108759680042932934655422803488070401927391176757940903573243134000951354479603676066140830963693878927193783785348675803557017204770955339438619552045885556703540659820502190613259490042484370457711560062383808277055515246654409135266144065975859265268166864442650723874985016221868788189923797859891382762187805928786047330045439073405683068039212417286497670319835902455849595739804011850440582059272832409922773436164635801255606881226445984992580213164191848098144448678258579418009711228291962382469271418527830438277222014905111163650899016546495260166512976944241206640032582458100270186168620827503912020068567509161427253251750723863437124842160352307341004825758681549633059495101785524488196989471034196393470743974642712166722115834214618506253817495455535087759917706308981193157068555091477162987657357834342543658008493195345511181546364393217574470173360573094687091331037478722505362886991366614581115813277700089111342362087554459552140111887338753020694562978476830592238725337730959154567383272818427382868720392230815976041665535562064942497854726463172912019761913440733386025264907754578558624214065259633572541039182522168658562883843030741811132979116799681173205815183335770278497973130790231144591231118323654580664402504171111777516502472672605415915026894704112850025457686405528271634908451248837009626983564849495466400594100937703808925098118102731834098353693111996809126318780246063390945542777283948308092618208834323134698804521981768061774127823518186647480933534522286840744244763719230616908789260259864125575305796323609203453068614174044274897552899630097072546333168171560924319927055330855826634148474518390274053142712282175722350151091183126622733525208953691391555337977785765585877903171968764506404804792543580725583259811723494891007882132183997892660339627544322688555376057979819771043615081313607295977061732994723495724232313662634581854263299152320616901223228272964360113242137594186183535496771690168405281078523795868646302164754501139918014043799843002212228533110894123985150303180626057047836670342113302179841751080134060404322579551460571217750355528207664652705533719901524977740476237516368950665626707200551912732028817125443640249742160078397872898308401635365577733302580761050840083878715681334750819841023949943484850702712156975321272804260383337506607070049984676473334371040467477358232702704473530225137430822413338390732437069753586002977351767452235134779239410914557862075562959697420068058068092026363592443231950752343751934713537214400651899038371462246862556594515281508248543987262329027842405342464861645529869787965949222362157545837433731553897118163807819461950341720342423597010326442672432339921626451481217721505185407840978726090910943090781961603231836923977325630576633496301818507217954949334889439207274464535059467102124512116275438399278017724422979837849285321854293014480704270318861643000675738490497165576737669806251268862674109048835654013606513113822519462373339138623356976810906061144530481246418067414834603019448527787394839165894436028757396016519424527066075274867419648599866051052527718184433220815749343278812074971371002813858135502187351308808605002727000966944718507581575784985004505882509301505847542341887671985149318993354225374533962608102972210831295626536730074487322927298266473606326736148130111863297632705672646617139604288210118406901268205665712720240786032430429699167536096564886797011157730322677423870814066345639800435357268186627079589993103208111726304052961000067446548184809866457544295661759053572561871937215560269774235685087356173887889435863479749063439321821117418747049454877697395025540278499543213432243513917273551231050806636390773620535994649320303347321283807971695051365327502243386466089695693987630091519479593816550061731001600302576779987810091265144352213650594727870277057114566139673118006790571505380546691806000846094785399554629462177456787382725574386369317046374973292862814563099743204874451357768761703600711929395575528140856465115196044800702068789063322762850742751782856295595733825300210875678933952813630432737419587297681838736806225096084425192173105196758123867719121008688234266867052893569652193526638058557735720285132070656328816449888142636076797136376428896425478869409914150800804741137416888581630725155300415502652066984230788532346957205220157789434740876489659080958997558980967058653577545367223197194811848428679726406247294574656890922717788555323684331410964341110973407752335491642047182679981235648824239550335311475269668068032529123692982611570211915348142390382926331341119799764914922518449791622432955396275512385729028168776944599290012657065014787936104515921416200148595291551021927006476354562442708713835914309065513730649433632351023109581808902081188478648727946806864260896182315817551405663900112917792123097442065184942118904970179173291972743222483854447865041873334717558993155294672865135106356908553226639716403951007528346999039639785653863613017954565609182997419972044518146244198101704946775968129185429693037309380800927922723849217593292512376941261827547331574228407735823395142433741924218324161095436406411310014854834395610514118455606876225702461721771698130637098141246248208697953031003745218159131847010397664425404779385616154024105622414285051380316928747353157637539415355561612319023204614622691784143064758168834947803737745453023296771836058144177596160317257860154013490283599053300345568795584257978205429168867110528176746243693168956808560278890616284302807981607577524276662347320621645925424192111616940766824610215994399390908958815629232003804714140538446583399153832768364120444276860244110079493441850675804868548077968212803052835979247910330915113981681317204363227288249686339811497776610101074146009802329466282224855323518469256235235141784688193981989054227233367863758125534942008471684941392356832486261600852422479312662694668190957721650527324929533496976924767052918011481441515241880292411300411105022594848917404688176109754907659330317010407293935864226639268866345352195005948540190200112415148180396739633168114352589479051403065369889906279733537514889459842304167881341221840109478194776937226355834983710100944071600600980873106064543871910955424120833588603685690355771214561055183023931090761191002150000251748264614337059290729590272699224781550931927169873256025909324723797636897708311294626265835429662302730369383300287891786613835601469670363302373518982955024503892512684885666526903103624107012426712825650347056081511507018005356667962519224151998928536838866600682315503913619425971518016058809446505174395052359297730975982577350508568638531678610754234182628396187182272988931485589999057289771763783452476378554694795238978294858250726525947416363764381363715025089707916283796679440279187341564831236168930243840468037875685157085143507672985343842887348179643843553155059703314958839010632142579941790782045216059602770976613259364125297868622470028439362831281033721598272683246548052992097578405619131275767067430125782503378998256058907021722284720835351698750480637393425930866466923395606968896453055732727618861513861750758142158430476225499815124975744048213286805638897268025556314593227158767808139346215709513540041205594657602194054152243299664540221234325499072067698633144094923290507136259427957928760898137646988235242482321262619560722198442879443608634695368353842252088036764540263258640171437166570678631973037682118562753366002999234724212127786612390013938460596568044132615273714447301167152101257537061385793310657262213456201241115271681547503176704393670996526803384635512198464103244149877209582343017342745474287224332299812517005416171008668301777457740457838285326413815305718167438249212559331733966282703356743346747081981993395977287103360588182926445875868914006334731836701085588869411715928129887339415760636041146753932347543603044582608924107426021870859047205614062978378233127439902535959726352970170796669092646741003473334256254926580722139556676914030903155227836687960329947040571042730725382800759131041053786333486951206384585476338660614536683081834472299331546980676204537027864418208727099419176805548332196297475963450171753285981069336139302714635166814642855242865378921357239249435661799602058091930352704970718045726950220492382622617867589754598946241888179890817452275288058451664262909894388033999861650698761993431751552949890460399019663174948357022999780880904644862453283475503992267346831341675960542997706225485794973354262726802212036213950069182868283313406983357859498087756727605803665137866159643251081679219098745804095326016373002904262479127114118372832815985713667411579999354036397043644073856090992363603283605181991909963481520995057759157524702017126477090102732068871167186018282450455309743532092899151375255723699579934257020350501827872130366443766703145973682549590309684599145029733031486184725225745495526016980268048128671134049208506569928981495666430898325405822657962824783351811929542155591092552867966587839395195453386021656449085625627668590370331875541071973029565830434822101587044048225249108480972246618403876155762455960826305114105077881593232053455033655390775041062593462652424382565754989025701098278624840173648544361711125132218240373974407312118411042386505078965982450455469932895412149416283935016065356498810390563999888482483676234488989340081448973486626624090605822095263324149424109782278806168353534083140654797943989752799064966177797369545059462368801166327125522759765509296655613662107855525526098023664914935378760765818722620685373425233889739487203880045944010965514707528218974975391712468229933819429325004490792533893125134129532019433982985047863567154710804725196447200336997628239549127873209371791936499557959371734739531819488745326403368813877839857327407508391242866425835772064089715992974700488536630250395919433287956511142649047572828858813170198240466437770130757592135428607124281638936452783079024857832717622106473071277158946340032638437300729312379570033880608470483609681136715975451590274350706139412531427851105318953565681445093844444665727836670443077311782899209221394594618503170402110267191050438287418079330702710137558224488169635240559964677721359144525369838204279827251624018713529660862615676332141325115796274767420588250500847446521568602079034879061494374312538639392523017232354183684024818490265246614198197289982299189397645203292646211352408006561279187794467454255586297792323585927408022237073656703440363104634071697097698692445516964773531493737863503922159831728078480531316839100261802049810136997942775860893072469869312963759366425566981122228112755615750594243122779535509370251644745584229283118197565988668068158403008667085056785165075424925853465896528347100457946465112725850902077911389538224878468934354383747146917042939740765399860824501795380888062976291477158287454087318980337006120452088430320452098825151627176139186676639771256592472919757993168134442371599932125814861987636635720415941374352105946998682898146623251448068518406872171988604469478036009299074921969375638049976871081289814747979427124074115378053359896307810008608052852410512504734818275542691797193399599040544153336106760008556219369074854905585655569363985412119130001657993645849917360354356515716801143404398927772806000963371822936748041876018705457682151558500874057489819706395012617821087664449545550186035647708604106109354145889301857073881446464284805371108654911970435258252650388785371923912697494902844759192515435565612691500422261856453124999268254605696862590661193447392952258252106686052384719287318995792146102265245588802472315436697897329781368668773856615992904315316149964317178730664850567526290326270923628252188975049583248773820165435241957911851968258980194779335807575275184013133599004464469315020308776679384281939259239290808236484860412369911283583820684286393324707226394792255595051501991141499062459666990406466576405861569220829140867693173666891617826615983433277712539905753646052424205814557836583203268059957654377480578294656163391818476071695228958396950152573715646935926565491877980687639201829446033816324781466399764276615719908864032191227141368458984465753028443172589256146859486088460332681088932951680609381917314944505870752961201931266186543151644652132220641955813657092950597690801984040901175061965514197960367476087033313103396852408590107659994994087843715195463816491059926260780895950486623173825867505190603628947073458208517717543683398270548100236586823224896835004299100351810318950089560033156163614858995185749997769972080699640372345200427454379118085154369161596651273670866870454493564512146708368030419635953851403002377439471713836580138022896008868612289559117513131985041129587595167278427521980246008381126136649095350840393026077460391779681265847763572385825378545826523199992468828131702635348270825422261372856695768537890441837994568466637388508131753111242437901556621843127021923902822423800413437424848138561004984403606142334611983727956903646806307000164294492505137323560088026353956987434007922689247327231046222671515559012588040554072455578041095922935562671163055749298278629322178453524009000771211927047507810166912902177870211179398718889478362221082420991504846768417617138638352559083801760081819834281827172155835756920451191319704337600940923632906558431508225526949341971406849708204524156033271804075734521440294282045848968450971984777916533684207861151999105871116740180743111295767649560747113377393696565468915154414471632758514935591525192552364761941271247071411562948013181095677591272063702407732394683032766989566838091005148186317111178164924103202693806276451025469927675230806745575590669248398818957326683025525639120825403803447050766507919674418380343247145542460512222971811939483852220254194115988960488816779846535025894384201207678681014546447691651123157756230287852612464029490984693629575235834579732151023558093520257150918396835577112980171791822510971212546350623664686581039077700709318014161757714071009539814784298473100107211530168586003860443704691743646122343831475662715009542349442508297682559183977066000133299393000269442408818257507904258113619234947757362128237939262365885699222417683175716916997526829867741361411584208885100896596546994602660809108090261996550481094236556047385682204883842904174466888828943167781860689658640531474914964427421547824102073655567852953607377613460091653154902155873091015296139491423329457758290258273544003769167310911629640029070789953096703587260089426119577430090244186578326130252982588089439777054795234899638093814971715748345342004290942611500309494460449976287489651493702628929165339547897131621607421809872461389208007277881901614340801643158641137107043505248898011125568908535063082599807874754382416786435976680714073870213728041745396954663463929505270964458743327652735433164166651513105812678223473012616857652640860423257381929884750915283263431274086055360125118712805664830394643268095877330503926148815080403392253072602907003665083999505916514627903062894511237386525732666971176968190464282671028168183179500053916961140772919264010586133317928217642947834532792957741365127211367669184374665882398199419534472027832619731498747607272477429744039317865481278941983607699120831888621590101627653930542038858154423449769142983194180141398485503555285958955793498770132307577219238234060235822542040430764988279934887419091391240529970354992729616699611238810579958335311681147759785752890218290329124416761573286868711095715327091691505308994417151774044581071990827389787196234257246811558793245118064077017200174049976100065958847363292128606814504974019246645295983367969471010355918246010772976657349073613498364282589881265024573386893018335170218209332266144911574565929102101164726127485827351658170100951083634773048669056456802451646481314156744432527443235548005936192836119605761480744971196796331129013727583674695056724255398492935340755757340474935613127496459488260580849613482730375747792115507810066943958976710301433189733507740993336682455311349281671963818545108321693433626820338719788896673717205605129079385820365039180170570151999945956491547821538516891460589044223699400091585254911909501206410944825948738200157907458797655853717879605125313837020776721442083221106574775655171995219574493036721688273623853856954207197067883000134286269936576806625202723676102311893524084220731986512225888319807479640170486764203618145847976774650274803740759860463415892845442291387316538674005559412773006893635837130486544664531980040191382432091067610250617316284394811085122161313382548630782180346141127326408732845728253855717004657836035366748088300017121814128661793319325170315531757214050199339723920430707158026736937621464673318565028591591906465182593256265160774114718915202406565889225281807330995937953161692600872468311313344915368183303493098929392463351386083376688452625116905372964065100036762883594406409242462546256502019133016996808277116261939722948600216866094047067622821912366142403184669031047137285782846829666825672588366931429949692127528071714600571477000791923154707694806820846688728410948519736930629795257777242536117961558351790796596825012178572472971346132939402176796887698630031075805832565580789548736254045956047986492525451695667036112412693293474539938726686570412397206441599089570388486234331467604698737154328248427819160678933215886875069324552341666477339969847455659832057479979764670481383369554138821898399070330432287587666498858246401046184034103770794200942623412824048343624894011329535083887853640420023170251168839507625971227208099171782577916879988124025713371700158703345235817898342553790743662720817495391226611272857864303670011186187550051792187867171014743630075006955322372346437707651184124119529992642607419719480353019369953612097245161184622870575836518504971150685101685607170058800750627676067820426134745912314701335227553050901641930029433796284544874156789526717878372901270773452148517221557865445370992289435101409505021506040373327548295485297129671546283804253473800845209325462799045579373322828513643976139037446106749828623514674786425793357748638541540320731628754258583198452450153106462603270605320293281035101314410167002148506272808490584257889072800814693836198865993551366532073849490799648359667818450029975267340652275688578643577391216420858825003777508324946940674123831929129069494055416733697885341130595458779774177684819402231777844050520016935757740803311710708264294622587331847545930894709755413529667011642719774256010499944738334456933024736063532125743599032560733903052632569387585399239199310588520436930207644383349288911831229328489366540695935057604512825175784796975599509125693399578922653223632753751437006938112790652358564402275040867554675504839269815868897884968589564592415966080418619496199339478063567529561456692496634044905571053673549591688212036744450603854657427754166204891088524929007499241042829817749523763478092939452107274817443817957507846060851503305273529621078349238261459034898085468586918298576801895393374647798210400465806336427667026161736396153512940863604557694067463968252970594729157729161956596259365832505765628788941407550006462631304446973741219619017589780370206203201577113444512911960772270081658622033375802191477918220431352007957246119731172754717474162123965137469430125321105682605446757768238837469148683522414718094254099618648349753455449790328191871066463517657217680043875312750472437906630373414692583685516538747165587604093381535062331147791122752882615119619084890486825165325612415322444095686161590889773234447192280429194809988967043548982748088487456137136464376856572628097865155996982307549635352612175046104344104488146751900696367728484910426441639618939007557299891623054209136213122300988392742033270175024005082729501660708407750836804420798052800673779849229327905651957208330179329577514995563068050252517502238874802931797052071428448756083615558203368135581562719952053621056602162570972556665065056984650957138464656913377953012144879523273920070709942075806464742482897897439275042519139588518916478606406679678603113696730089804094873683275061006042491338517637021065158424001637422105995428516505971790516999901481362449483366460460755899001507724727757187996671996367922230880735408145697418151146635126012873702288754240769212089844334491106081363159377349100951062956570080597354595841272525798171090714554246886861758584113868463048841612777893821379415409390821196470284533417686406359045370509848173746836975762276476158190126039385416179493750305777486739473288625138626772928771425742455316675939264417327671543469747313176842827042370016468782336745784492340467629802389606142266465106886304973969929964943465038077865882787891965772797038015320344704198320317767238802536901445204501177545440430605745736034451844260636971876232363001869922998117345653822544631898236005380546647250837844053214439190995623915728876706263530892247917559579939445869766111223525126160897884270279475366330417766492888273598515214938329058971845388585268701377487247066976633725085675506264663127949745161991344309032711653379953470703044561717635250909619964633604263360693375115627056707898939093359179053795771420292714727355323249056089160191465342090733741407505055057258583921127467651151112621390801441579342217115498916028900054086153978698257274132483242772643084542797394578423689450002965110741922741720816146761355169959601255005173085925501092705627338935379540478201191371221296175929975754347015737380339498428078050964450689613441725590526389287389020029914446091816360875918313785634838506365544502154676449116330577118560451575778739516406031021090522365527904468032544658629846944869659260946514127721587574415729450014605845358413605553655946055222259825320531729973283033962465391101409867194212104589504327224013401347939767322318635631475646949766342583039710457236524973871480383918716831023641775077067324321661108251618970166170658861165204713837999633814383850447906224765604357307885297509400224985066161514880879809922699189621383157200507277583222833778821247962126668702650167899730663674413196154644786595066456034626940119552997899432908917261598878141425776903082266014820614370074000471147675050652137732610193312443656909672536054410467611023033441822783737254105376359132860388574769759780062551157877109759545086860787455351783913628390567802145754540537643230698514657540951420740542135844643814800292080564082566478225110360790595430459099020592680407874238551238784545736887501129296692170419192121221001219280630498633784901111899050059064450286626755223445326949930411816030709060633031281830116001588012219973265472140020634986599067713046342696385094858785589652923019858655369268799161110387453602022451758446932775167836206855974377476043749170373327490407058469546252577474242526953895471224554132648786177161057039622468334316063881891313917528643595241832572573216955762584799080824198454903480648162310488426016762910540905699196736405496298763666627518999034756291115131122164360243626549841003415893720571086198278365642077867614139935513727843193432431092877958775472556479929386201789043315474477750342155661828657916313141372077038015443255715357758412859522183814506189333437432754713307260512382443449546671461073513501602586170717219594767676505011342462704836825201510708664881673221240710791351756637575010825644787823440541687187246171070557797246508848527438659051354803711680264786309418619741338488074283728596519025360731311564850435789705364761523677308913914528918722263931373741459461897563793320258383063310597735386756829434894263214551995049514011519392873347504766883089752214483104681189494317839761614921627143924659213469983703211699880892453739918229557478740665586198220269500639958506840619836549341416932374018844407568190586891177446447060223738447242496577124497168810591074340530390270649378281619001559931760035452586188926476896522764531086656842768538208472654500596686460802761662575175464619754717919181787974101020250727739713176157419136745835471198910033056362618432032553643227649996841911112102782032251805406827469745940596226346306811031204140631320204401410093665263680079184304470190669431819337061880529338221662271776304965968603103028147914981670680231568928161181121704075142693254662868472564276918563973539884203894197735145876726797819447557947668803025086442916446569261538795698687209894038655294081844890827160005501985534200382992617934977529783721452605678057226647210750900194613446293045456874072688085984346464164551585822150632031933542940953475672922736768007051977718032254001818704860172019228340012821924546025849175674756860485436686243154837158702564069143110843027044155866164092948117059886258805389641708190882014121438388723933520592768122350499467255189800430900862103070908529387465137497715491107152320301953936425266755849466032917367906879395815086076871070941887176594309922158849762780802367040326693755089985991647651976430434339360310865341539963203470648533261812960192538631254399183044405496715851128052660756155901443716228082904293331284134750242685647486033431705366891794659712486305571061310206729359967605547204490754477348814416817350656950675439930820639144417838284439556020561775021834001539166272047554141419082875648013486452333484806152206432130397596480285798555244599972083593155337975643610004209258601564612217479912816624962005190197333682089107951655183229542492639732366960348369146424052794568027461267741760483346217433257171048117415696937866625900614767329786127340002209016076965486398912602876904939327290818969399643533613314804400498812265112444687264315128974099995173347861241503804494580237127349443552742572640338708376293859596995877492805307328724473253965007071988812194833722780194608175649100955297968938735546367140367634294159313556952538485257109160361626262590673441917011513135142341331598050440999295023780244512053098415476729151076473695595066968443448654844304719833977600043121366998621228936035398029140411427514367859489512150437674212168402481767091863992371007063624151689761285884764484325222332629192846405415683599630691836594967347431026593532796754569794155848749664129261336445328014298119776138547452950788662494989077719413078741708206571731609377519188006567346826366119263050834478160271765417696200654110804755667103146666782398846379527863878739294395281707283201347512803565654208505273661920469852128665203143928004524410535148749752183202389909923493921758038355162612781447283360955179384413757407940487004403406810143990819873566893042711611527253006989021387412566496282854557846376157878418723166479160948110909992509071822563961407098900495257807028089522331634817721255573129921581617663466202000678765414256230374592711195285038878558680876150301618896292257662890327186070820657333070050978919686916920160863207786222749356676520017336227881865371113713012174647828933979776139061882854700594975115175301945188266666949258723373983920371236535358471823280544033494114166812872714819329090630307327251914736342197696083933194074112560639968935334584262307333857921479224190238361034320551276670137244378123228755717216079037380941930704626499825593325741569365170199017382185883109720307135398780037719959762643252084040914522898680084652759270343085058190632311001047403785691160385038555447969124455219491330986918565989821072213947210900573587926410288879436455862178761002009388653173353345761421282718897606801634085942659941913812066970602092128844373568382407095029202788738479134355378180678921904420830023575930049997880520017647947313187519816740298239029930584529907112030988291197701816717936828961643232117693497564029858986608198378413832392513067694480885498521635275366432601627536211934500944213984958744730780770649711158106750129521151056379244212194450312704528140177286082439415459924906502500579775518083983834420542776196378234886505149181765745386209931706770171087741198851005726677505440609366747919552178052821801950754541763371790666760302401150183214979410607421727819312017419219046667680120020243799024879688421991300726602767056913152546931286329860073495445193457796921973323414855471090207820903646234782328261583199254848566940700595840585724234538277982955167316414722117968201427444486899864427351747353793335645691356199757049006066698131763442103144794032778095100876960881717464125232241979362906156180877379997676933765366752217944430199511491790710395665967189768852900060782175987094494126740784536772710824663835269115880342462912970877618211673710031651140282075080386041720232321985172901818272340581015876542697160766299145455678424803030635819979449101601581632232174621435489920599325043032969192867594810024496887396470871005428706596543306317104820869458817628962190708891871698353411093812927237890944327130844398024645137015359111533925388849174033029162979575977437576676053812896377291731994382256845278807369022043863584437457018371599032197032579334277198271812910099125939289009291724925372926730994370038689410870392206223132077721263701823760301040764424072989879155787378986082762477633508816077585960610352013030489029315737627042265612880939850717845034666509626828787682419297793920174108105958061689257456126273361819769880216003154769621573718980736602915574979652447981396863493695591597590345767024296938685531543273313087005758563294154169419689136238392631774411988183685018953242995249029185180845087620404358767796847322266524924030304930218879509889866778647615284676486778381153407106160345514051641705179686475345149257074511833351575189164213796262644865316569086701648520399943599981002672307568664035816761965645915437218271118692145730960825732042477853198300229531511509254661362364110556004514291028867619135588667509076462877368337093145341020671623471242202280440383212954176298009670452190349722313149982675605472667843590110648538220482871561451867788328672482222479534791556650100423450092939691811441463043726334067603702117772349897787945216707890700167767669578437443584367989094450630789309106696881814952360353510794601668963459002745596294676916778791479085460864776756443129189247286968849220709744179168217799298709851282166778962074484172508719513930541060712351398459479547643649368148849674822859128910754367644593592189482072243692730844879032691380216224423224794557769116864912799097851657611004657986603732167358088959104765478741835690862888506498541624687739121547050357872282814608046652284726393703507343485171818787262852599749626054411433501897523125924520777017879103429142486787806142191592949358984431898841755230388007152832487119590038552564883914688260136507322930779635889078303765979001830256419878597997723432642891381599909787944675248687460679207255547716754782738876354018458947980049447882501221360667243970649093768458954024034890745537787920085326274337487022244884144728065246065603465101796874883564826759704179165286823871091730457047085929768100287086345732624672715336566251650637490364906223122484322692794052820672800379231252991639246609484010952153821211456263201554169379543712745675224443399293516650942100710394616468029750294661965771691012440068650662035492234321992080855312356104335610330265324794758080170411039036314928084693062394980532678523097066821538882193865711078795298390662750767125825007625802228129647869113670230336205604874080257941798403026658053394353189539503613600841661077108445238571044458580450736739609338063161173124909988221243001365162391688503802808633616067198835157587957220829855515435750324690550932632010872470711827006910039440757400706061128244641275237162235276777437512976553573053540883328414995280481513427063376022369356494975665498244226265607430537876764009434182507636344267609992543691320542703952372140107675112728923059454781629387591282641291420140428706834091596807629153603137801700305477814106230013134612344384287149020209444376284126723774916612279289617086330608116406476171014093236987008059819360188033359507882418340902610519837284492989139946188722293059279032236405581969339136912066322145664881872648819955820724801432329301018706330168960997125610443890829983854512902131224551660778312408998689961719102577402330973022401763433259168952816415607076149295538672109064584631650251995503485815747385931526344782825997963403750406992977015400585167018085134464897037288785674679499065075150064951179130870533607464492640040789489303083240485737071858319694000887568661957119651151294028297026987447813163044463070838906638180131665911873720151697612109019594738312276984390334812598883395366524314719997910598344832353375177796848813501485930894369910438391159798285416046070232419158258587939719497816256004322551700476806669952944116678357682262378197260951817481329718975650968195066284336289213953843522630524031341891809287681891524184420336420582454269239868740404522135727962513977212210908358755710923039735760455375344421661375622738615776237249246575274219958981941416418951861570791090149221160867913179843986403433305112052335321600816667361199252756705853972521629285527334467928952319910521939424906625783641515602490849479042047378000701562209602326462098466369617162974425076560708008134809531492419025741496587718718301887551395389912644026893229783379281626030826540301659561878042617125386634626541922554148417855395803957030890833862718360970935011400130189280919565005487492906303706402860276476668584861908628389409419262179619853187791878217160395862324141274111897790843641233705448413196158818241620221293122895233736327437426136207649646708833039370302273976901251238017229217378947185366317269101496026011891794484947651167516487062651937697694956860886095803180415967827757357093037601148884838149894910872790326043977747437911659638567320217966085448802326853231511620074561107256602300185329853534199874805049456574111983511180136570089377280884575916016814625444760826768397868392011711601688300549292651543597627381390173424878839000317832671506907407730292794963962049242840929497148541889524215576202074399198072987889626030003120419698077556731440890119280953415306578099760080997612791965102334711724590984659201367875168694224056318076757797606784863769877735656554151518462100929263768832718820712164706751473389905100523878143514724520037378813649704580891174937769484967214421162219949526551917432304911464620968362659788463132694481518118384316712492682876152345379961360843864008742422625587511922441145612582821471342735337351650040526209845632267398071383106025908901056871023153209719912243768025853282633292230023094714247693269600493646683766901230520336406976656212670470803151723571808959553231038709448855269755034627145184952846032033113299987527168123355913447949251408476336867466189145302027726342696689817126341578464388312651143512525040974143113356415248454101601368319344587884738299743094797676146273271112914593765661788830625860720494728639230990521406132676869290032382576898874923491772946147451859999974434305200861005249116159875151404091434742986723487886163255813332741742430509455394776497110672014803550370065657447304896375621235997093902377847342307950583812043439238278936857849271675565159231888711453978218535033488040070228559338667527716389853638187196890439124544276439100920707167730571393361707870862595255306566000006906081363172251541083806892351513524578915049508079922079298989165196202484241788341490816779251809383945557115939873280584799432567653313472610435023721545541092144137515841393746001790216704272531869189592797501635457574591978197831304201625114365109036528327361980626974407170646582439687986207992101501728639502567719662440656087983530613879302403692470447717997765919443328448715144596392577827958746820012265264275041911473500239158613633204785126395201203769744490362205889857495878834326086717473662609297359978410145918994043940197806876760456384601751593227338249749129092796280807647668795059535063915184403063028133231813182939890914711950760955794374559422793087129609588096379330417451790266132594084700981715793996967254612888078376118232262505952042949439153709588030079525584038804496658848285498713710447576590243555130782483551763071073966186137254449970083990042495332039948306770754486333483281683732309307067477661228631715164125928144861098098180366040271975493362256721494036098236100901110225918341246185759750985998221588314991930778202520152686550336434175321080358410945562303429495778902617523806289773101579149614178438932335628026877435531779034316896521118063322994032867222439157769784542461299203181959516242536570427001433804383649783813949994086271440634169713699177531188313558702545303851528797488243461127605576883258897784274565047657724995224088126528472481986563876737937549039564961281212362727632041658670363301280325354941745721571416770842410614889255732435411501487451954369790935964645370084397088956101525812755145875731183705290442843974302229219703503150674296679690073596827291712740117764242563835784518924450127343675082191530129515750103421110865067118245139466557477315502722787499742880893374672556060556489197294930708982394662298292340393556741455642621503885487341275863962520573782685918144829004317592993749530276185352581773503819431894171976191132526462972768801069934062951299272157082900827419002283241286004969891885290004453214230909971891295943669827038832465933026747860178565062221804946535789621601006426533865603607593386924166786435085344412253738875246854664096507923614001319326502126197893966333126260568374320121795021086056419144289350767859900155971307852113889157379050464189737927197469929245184436785693553358866066827654449593305456572520937166582142480133856154633795402432282352492727624931793368167021079352702478581231802597803222381594826883331990491767859129366644715360877169265866386308816232923085732851715471575756869004465893426510902196309591039613850889999190036669582736989699572826756585716521014977699815724024142410145874135925640329993763999255980646081320883863858602436510252002270853505107133473838719882898951186016966775848815534067400117696389103672931608932382015044746430146644466221398661495817228045701159049921622958890827980382686321193024783690464252867261683014441092067414000138059252485187117381538834281595343039862008194632565626992792331464271154038015673989951264065047654284697777536958348773221355682499277208807569903772414827583980172005956712148787442272735151152346724944432963384570774912277341403285417340407950290030251038231860124964728341901420477969659772180838622599551474445665606816883678498396443870871221103776557584665274636961006299652915737918256602020540415706641668549664768741867732115543457271758779813491556238288462023538343924262644113630450145971507788122962912909126106917707742676562581733211505928896459598309690860919509694312335689270117186927209974561695772278367199414216914855172272824411512640899382000802920832927142034565226743346867425576891776919001015417181284209906229440050253806150647451038194514288610806970978809457691511834435488010418447971937606346948062521228928092533567081353154512937512317164958361100283675353932230280834668396756201912631689801875728729322531807785041928394241508425298476036864952606469121078988459478504371496762304956019717640586387702920602328544725014436565878162026620363164396493159718987447364354857946815212700804743449737366406743576095635488943007250263660215935466542858644154965545089875475015792694146039131387728876817631078651109973410110476157785311770545555474950030888503046111366354525568765296206609498413431044717694231303392414532580494733304990439626567681683007805696420298684568707865468271666085827749071163829383040907375042860416185913979231195500291651513556888567181076593819793339447435555424278015452853442418010743679378403934412898152783521553841015247573273878149465778241713859810894917668568649220879069519102012447755729416362151086205980257855626477797742344900245334079758085356763133164124590022608799490273459108104897292460649601022014866263037685977072357573235070586972478321491763089954494655096225258059020386752485375802004953582237124726024026982947147735580554447165856428792308804121855180631410967132200705323200792575263319196809545162130234992311308067004538065186656046628230596917150438244222253013026233387648993208263940924036792686432848945183501962111590364558995832302771277710280549871672058668378732539812036341976220233906894278904294629352001192453577295931563020999190270281550729742048414884262468086461550157430700345359418454146979524062278677504212706276420458733630498287575722441993196100744810278857479579503397268053011510796822581109445954548054044163579478821647769110608617490767407422508482576919882366474028826995549749047130272374094744639260863269229980935209476507276703881703167037647113222566873703561805261976692841253540104270120367937198750868952606196505340646972446930926206509620140143563915021247470325110509537321184458091995352981373928811700327703219265795023308814566406830695509627455944952123192694932426742480888184162766652516750450926950562725178687982056536016050730061155719924706629790784210959569812614952351113482294756678411422376524285656700746931232629525549686013042901008823731349597308272254561487012740893525115586450918372052237803766127937067327569126847925991141285357716365603915296621504002839355855825534790425683044472290047752235411918773277206286160697049767934952852321253722691405489916800408882141350028436100276453783839066656993008405412896062156513503704854650620106657077914178109257030240850416454344283821847441293599751033618046275076280919261837926671234259487247855753104001594547458503272348785815722379332654839231423014543703669002679968876540109444937061705073851281873539379511888433684416139954136584613484111516520538902655018513097209405157965689493082538515554486148528370233455255002137407892572342433894480086854817142722353252960318450005342679256202018088402936418838535760453869654978576188579000889930795270257850689498757624954593927795556018631699696131531341916178488272155099744403078228805213334453810940027515025906140193481963890880130624318443257780024291788695450980069578385753761246386065395178833940660290676229164076503386953769219618935197878175285047955429996560784250230347552653949216666686315567896614787790451992861509200287982637675022507025528220498575686435241262146371320780541173964233389885073859312110279680776062183190833939021026668835074611500764128336462934754430116353523771511993092222256177187346582518973281765569583234640855998082377335228772236391167339831633046347440424239420637751559483189122232300853811232538524190223227906834087346750259513854936329547803716757246724956470797277697558879415552569640534176996875041569542985702838515704130461575159985793799282155392785355332224944692227419470856850520350366108729412211978819236161089779749775399128158403746755826510652456395098097739395867976357897243958746246489280922150428477724670644215754882172115904029225088181979343619809266038890226501344153285408836173831164338146586841626009589200535165049954970855137115050958297681281600918326588658524799888748770307756937031425119402808501102643288201449513119749493564943584967289587880897760279434412138800608250246755087269218123425436332054515663735726328973720770921193235071373665441695983149041384831034845834791902687250101351341841907262076615293101508374073640722173723483784518120352868186397140019999380527929179957689984164199885038760355508633060676179353825828855100151426384878236643860152649518108987238293074204997745162139013192243985396097613972437683496707967395392104424271943986569280923243778422771191752295823043162481818166730891679290840343639587768002795070235890674274315283137295435691514898680888589755169938302695051550537304758470731066665351057464495191881008551664956467617411415170860602568302010819919690990644105026594162618725460916227774870143285975797754979592504376006312244169077082240682347442463499872595173324666580347349548922915062761624750616437165009922842097736031752877500188810134354329138068482162985576190778570569308150217200187909061774774639742084130589846549385698810848400070336546024385133476122113873246078978463699020189761338077149859131132940552665874714853849897707608569236743262691530164735662116903740239636808749546425890314270373450797510059557258437721592397087149740112643307569737560278982122756240904396660517315762307455936046207227699064987633679230238700510166957182548624723783047986867304590862474768136931707847366971817107601826514119512784289527352090662454945372970012557821847699619520246245374791550640964861908392429498707784161793239930097118713200233039305638880732739035612833040742433891442422269566729087643999006015457157043958586971558173880545719605102208766589056720780086673623597143534150924307513831596817439816533989449468034264634972698745036068117492783422921119785883054760766944804125686148770341444138959280068290056807789431139354496152955537786235585866456349556305853054267327407470078806721947445975422703008254595319406932996875664210404154903708268918775456850714218326277855542437277066403635881869534723139682539435719406099315912275573942810775488612360714792077644548761378338220542528967249228224144962571587224942988665060468373553757069809803380804689782503785632395528714203847012496893849083265039449201488537659356314151715266961629587049619557509448094144649388678006640179242068308406876636503066682729551654769519104625733825527992983780004383529128808704183658775543300584793971209439504062247548910496315604098698419680738338568041737225152379927833487583268532189746599386518432030190477450562293175966150168422008021197496875557939252433128485831204904823132124782066260147294052758397617114010921847669999054400526844500808450991213945395109051097439064869599093518483440016271146278512316378256340734678743925919453212171664419405414663174815893499701629289376504270717188340889564556099881255649334729711799007241222320380645902408423120647625741235633532747027981639575284522874826723982177998103830472087224954300387696851373434073144402856480387064483412085401082533574513537576784664465922541151491564438830394385552262063828861701726121006805886387970682356390365566486780886615785300385765096962082939430474430075520382373100932613276436079052839650508676177171590154099230202225776589709040033491526490257340586616531628057590180719930984797703763761118116567228146331638481828642959400117639717117465003666895735792418204366115587640615347632254174625807216152648525915421196495172942114844105557776724245272792635711143400150414123643972578626625962087517886894113537598272826717287122921260627640123797008493360168737111487312989333241096078561293165302854347288689137799442167854150505190899939591169376158426793727427713323675998753937748852194951014436469045087643739598869279240643627347972170151653254673672736229251087341123668531764718487012231591370184073161927866130253751561932873557525069830242751582087359624634069587250704445372531751449858474854439720674539111408022906084790137925653508328582529738104584712471962767814913364252677814212581379639728326243318246426381127081843955903348416264170198343330039742580751545305832082707171988272815666905218510834095520113749790356545137185100284435479675470093453328159073799603900719518908517860399519030826052822915690938607272173436220756018756631482714883783211770576749772030600739291426822862690143973758983792396934277102130421494817797281206421050386567504937745462176649708969242511132607327461711709958029086253746737644131121007735513427517399513524012103081500771097915380143228549412840291173552259049771722236404441799610752460232703522696999144004977392547239259382558295047612261912302302040797086257652798080629208608590774874823517560637300325298699270292226245938933371076616231153619448211424829676222508261722695686111628740787843220048352088816167024082231703444424347335419029625860094105614433412389227629747366330071937549453118240170977096874814312642919948525513808501212901659986762951554202019611865109966731955693403273811580667653656723077319016890092361636311412238921174733368130534829334675618140633265176570183181236950725002580995429910750276424389238089214110504636429252500932953231013131358208977873162454652423147313957644671621165624358528359615188742808800744882036035539647436261396085462999686236284675781071880578724499778673821146817447692109936408933782118472148915809620317138797096506185367676079606680203623353248408466752793836155401185727487448768843608829464666151848471900821277979678707331344717665927084172138215388468326541224865195461351987161447530092367709130269120478456668966112716722032892879984890074218989831534406392414393363409233042761350910983839616986211432934137931277256708644131298573352917172635572630718137638903971982990212215668041733123825122177296915689538930302140009798781082363096335649839207658954672268260995536745692471252045756028161539582571752253257958239782223726108414004612034071405226053163947274166883996993213934422561909622141660708529026227292469685517840949385439088997305352205868140285720849574926351185012051386666043012840477622149934662719221350073920126135745674155242846909904644932506493615699500222120999416911219167272192771387955661041517640244807696276389090130720937122342904654006508853245837143123916988384029895806717710562824640228315880380048824489682855932045126616455605893228561797955267338128599668993690445578587472180128339171896564366465034571678762875431037409552758568358263811395976052090069527659090083605510055889987107085674494127770058544358806969858692344675167513905170379947296991031979251862481158557375537858108220239793046002757344024324727342043014433622950486016389536476467479681361149914397763584941077843751513018234295957554235705827869133425118619626149995561474285478183301847510077256188023244713713331729017916639629084321526387806427985628212532637351238312761718493415866977066105233267586989989780338188200718959649036271495783487540252318055832855885008361003819575258718910842067298941619058871025933784896255980200992156369974604505054620337442700314247398551470419817895513454247949196262650171769580187101785727696081832192221454297914285136029447178325108592194633529026930228813149980119299568289026316191291360763419828754558588627579089602127901352054215633208467220887081817091704853374598701916739796676869303537287033461227691344057928096186406863320547956586100194085972054634079796480987690887299065713363026271680783291787413526420559458408912099650739943496320952831823254344050316316693243464590416805398139502569417845603275145778039232757736459849408193071653674517480251399066764766549757296345634542221202464722194055418415029017966511452548542467187967981431324182944589355065038995763413696760347654977134003038057075273929190808647920310400281764373193511684111402207083915837428537425853003845727482803488955633651807348839117094458550167544327676587413341395840032720572933635068389190926036787563318471331228369899077369494146974493272082496039230490880803469315098192671359778334568113325825191746427745716629903718736868293988605415872305499017254574098622178405539225887436554796220940073594619622590828606711582731857489983438792592884502581896516563076977030990336238417716129997789443959425523045038530342200730407740691231542760237955512281540204061168294896627532933176085755651806157525284762365762356650744642947389288227414291951655617868114448426211448048175223979189506455701293131786639220596973445444119549513180125674059270565781332161905851258579869786580931723553829053204282985584300439518926828455982194853949874582212969602665481713950015538406267517302599601755300417090720569942986435428818857936148446657720228511889255646663149939378994219080347994011894194921548691896736224852408599379106020740438105167564010253255339711661280850619820293062437192356601141396476478839161378008241978005005246830992934419151355407779814101907069949523152021769148426449815352243344011510637512207744520766863443999286087861071666293887862344089115575558997909291321547364378393736179857218541311755343718213109582534299143707728142429007701850635934618154404570639137050641184495429110871682972111517547994712435129512864989073943548275386680548587488677246418641696381663546212645329432109557832657258050456173441262951962910955236760332046701112917391551852570583936562866351996847549001207221094361207257736403561340662402062741846940806063765136433926397827409829178425816074559552179940938907497931231341355782930565201333256507467843723950320922685651109894353753489983897812684993828397083008197902984273416577363317433009942621629708289374949286881920234000404276819735964464661306979102111712235026807653204704274609943828774428182497081667821554313192351926930041075555045772601749109451539665778555033451848889366085600343544190696057231010926282984366613967483107257602183714498283280336755142831454278258317299196030025960043748424187137205600787208656954864569663155789369325021478382838328424659582408574223510102196322211504218701681605404739539249558745101156193325865593922809600361926430272280735158392717524871536314329527856426204417114553475314908217584601517269770905951792672635632430166513930830317876965237857899063224508436932376694674316298958495045897249374786124908464287806351602982223666401116805401668503835463622909115909340810343068446603179692243821208646145307480073789348014953268046752931227021968054681856307202026741203286303118776359379109015869724072825549865136952318885782781404635268085579505432705100049883445191336438465609509116874662133599574153423354005359126935131185215658543725124639605895796631498758691557308759256076652979541665612067872068656065801872273003364560529496506010623340532240503709431622004928591437278423242001196268232387459285485094821192970972127879956996118427544525887793773785500272582723054687590841144500855730279964362973374437724561146798074883709220584217254425677619648674602979090712863487697105523574968929893237675087417266033031456167794661759101095226407722661037925867319905341014327859678914130096041144517899827954796425201061307368848489520982086360895413858825453289454143672509692809857752617639975910124046211151410808572620593820434018633407390477820220791152407346003545876827015573805237014115924163647797056099035953919728366366865735203482049304358090544890432846790285607101398927075458282105985425900932666916032371746629514014076976524479792694588155325369630196521831697249618144589347250553443258161027107429710097220591678849990213107390940709806080970729780032678074383238475311041092603016554867827705390906337781229605923971167622613907980041178780805853808693952464491221432011423492871129670114943498014067040267210568859484316102134451868022610317421341552195747053085812568728306264834347017466756827604791080038114738182881026910037364918762258617076436763077637717586685185143034572740369000343993432257227721115354477043887050346582648556558636141693110610617351367830719351726499010213523858840574365142838997200409880032884980418400586557164321040767244426654298290009471724625935285760826849712802315348504759726291449073705325261344928695896887122516385582519786920730944483314056601384867392762374083168843833924659877884203978696274017183037057629033436770725403496556592519672944538980595164420717539420093599434877037532543424385059460502010993967553816563027155785358610330765712813753429676516307018747705808110602361574526538372350728982891803794229818741591072123792889724480781543673807873392809197482691096310907351849137343068267281291315406822647519549625028647213115187603418589556232547671626978723377112244488793173225428387297700314149202528909202875126095417483263317171766341742535604466193794330851922922375323523264874409915918989226700944972749754463832576571573181955292505575369830559762737813238135849726518020284737781788736878193683187344969306925771625082033598264926288578231690723953112205401893719266402254382553438465639774325576890124277261913816055159409089630543468829127245206513292124926276186130072695883661322935083908337520681878331258997560734304890772250785368671156253694500508358632385747714321371552746122214430381720597139955562198923578251239979356713894227688859560608028313357727086093428185449012305825556877186529875529961890323022936370229749881038303641939320013085109580646035911018096912452786113335408209969520210453869318848020045678812913228682445353067920944882518766782882931860170780969646504599975716020584003901669394353706032684422982557106105529256302385269911983208777645062811552800422972462101487949607708576415522683824202485356332874267732204060474962295747318511621633495227851486047198288912348469073159326356107194366438347866356020984781068223990788815759432901209681988626036047979394849401561768585665212745382540146447039958670447081677224582295317264987342667473510690205542796634971396480469298589492112575086313060904565780447329741016603644442286420416029292953313147592620242748777488524948835484015251459592200602884119143216719395914859494637247881238830027122928565935098614400524560806373864553964371325970954722621823217773048662232808909713645239827773165693884298281017483816662915737229146237269965514168110886263919987714831802443304253455906263087139246339147469589961400231390366111265582858529420794632062536661340146102165982479608544705046310754187574106201823288761104596129743305869030810836618353716725958789416793814039594261272820078301625049875441096283164622766073607490609145975699651048378958365901209056719738885879047533794863612743621233344774934859430758252873665447104203525238725321517440299722172151833594404793390983423210288131321572939203072636639924315521334223002860007091404097614200383220191913946667465048101072196152590401633908337017925129252107852632594568636519987260840544535820712928758617982183673968575555003621224585326475657042438301264673176957523232766836375564044321979545115222029675470605860138000347306052944123046035119696197673150849288901027965185976079413150246539137904618126424424726308378081988022285103765256813577567980595955011320019598646002524850051978518324962424924790354239575785766594666519541376790608697924487563971378714205302974764906736082856627731536560739547265663987586499957055827334501371812669858672531039798268168534798216273100257124393860775543749195296581356658544746960064155223397654935741537502782467901172148572305905426500146444256407142107512542188767531259087159944413487514989092084553076025678691729547453961221724454653379498857329439875387065084988090454387643305742601748207391894767144092364943624044415144417096250801648032856700555580630990427079062306491735342562923588749209465750639934827457586163959488061421499435867407158511171837005215613798937747908977330206658417286285024904526778432211735774874993974085402976758245942063237425480966722883290912583506800338588355236096171496830205529919358069058152717537681034163656840970123312076113973637230656758367465988039625110189725979551327874165995511025396820581185649136440158312052406438249424592519638865788426362339818846236872685262969008511484077375715425567085468399417971033530008001168726851389548463278217412708010169161976518199962399605454853989723141383269860742772335801834491276587858607985404539022111746209250718105612425770450857590664144306473327823971478032058297732227313154190402310318418780479021720232637636483653716326536930446394713441749286282777274089579033331404693349791244024096275539641407950263283659567857843445100326069523191092908710958066676333249770776278944182782072630131956228945660091797555572590811169357353339739440663992274856660441464300058161079062676288024282300658241021146204473751027447481164648412545789028378611897575769420108594275717226799434599371189490555799503352828325549436725678426803303512878134992418168400409385108515309844557936496765955848052146916287474354464016040741867151518737178112477256482087906840490018188799074998694414278796582297803478570912159723938688378838983601640171160644017281323125637990228509960799638154470775143121536858969506578344967614455800530082944775174305413218056204716774721369865579344704549086184731142543990526129366342680170928512186834385447679241936986240771083910434022021854188096985537621248040782797503486664364700694189528694657186771329880283644405476124244493845597780589763989711603875044583347746342964129909625618846921030399021564681963295377111212627423841149191857542117854693557575560775451879165707107097423773194620606742670996347271139134299911752367758848543775640296663238705727824267985712202299563748285727219573535715096191593388555440036879487211991636816911720155468956546702179226294846174443695514828973161975245698877258963951958933511884119956646447531769617499788814073253187293380039545684359946996297392623580299432695371326612930062346904556082463510052934475879129535373653079895979547857742429764984204270563994982432125490595972582067270685465393794293288606360707558658740067504391948940840052354908797696715109626170381264953926902150687240795572827115905046734645035884708684859255884964248120965962750295948977020457506542077255315091612154809878341308064896125809371575003985371302120714617493358081463013901233812454424507141762476446709787298802674837474086702791579361424627683415269708011097125548239342052549462916141706640262703876765509360704566456403494165695124864276653661019817246406521228063897345013505271970633403313426177687740504892387146831240629641087544728494210724807217727530813954075061396339057126395287572292961057131727795636716492299661497211481968647574394501292353178717979513180604648647979629594023781506007319172670446328501812932043293603103674402196187771816358822061321920849642853166957374618207303373477096977215489741067385754171132334149419659894431824197761704230386699713900076876947726017108752221782160789809682397117972208001853078805735347551140129121032447458339856442394301615099311170955722117540590422604828223660522388133274385481345441982623366519240028337191003780665373771594744651942283765556156480785065493955752535892586262233207053182619166572313037967301628199735552681117535663045283186750701150904513383375672418967287783504607183909574264548072882440428465286482817861131098167446013236685938009484016796926357575231256993061697461740580449049738649390602607888682915035806095220101447246587684453299018593122432594988846416547448185482306889091448097633752801932820669898596585849154004152999957907849149607599442239649185044019071118442552030893622086999087478824540541489127670664624265051667291229365561717574005569816119578673595651024999060283379949211779514844575847359640387621386182903192930831696669475850065676402096877788494420741952447565262737655289545178230503693283437635864123100468100242471164972170863399479406690255072921987320507448724658725351072390510645812978379229773517782953619284910490519016684793661415355225608974216498378287743166629181447162328724128577606998907304037220860591354891084408694079812493644899610223270767278141672263859404867654445538300643923811379779150947346375784641015378858381554002085382383091265666826540964315638564398845710259089746531445476008029864849263492925814192065842972856100607309530495443358974899963956041586011590506302080973493694364810122078110406889944443690084606415367835626696400154084693437982545190178466379909219537110949235010540383132338307292302466447690598921340097767070233795690861648273067057977944080645481293026465245616179102493798952936577610511877971084816660746394536401870972370319135421915051083151669570005541965560281279432942481469197897503022009039488990406687591142008267993960087185026705906835244368799011694629012571708429889149594614570104681505455093939923082525509633230987432095447039817785128738155484539805441042280245881885787513195180010404853242326638533059904719607478905787756476380943293843427585122673681603726481607465839805610979424331203871505329211199138914921519599799945221313579847450436857396290370793615169648349607352792598391354665989007353809778268452231573959222774832201848540335557748419961377568469665847066674074277600401359623490287935517665601729184556955347514534988200803281594110384982363237641790400593783110928438335152878018580135021392084965574256783908322281810964231695268278567729142849556236624417175532511610692114788149897169428566023838479582650924373252009549485719497895994601437808627787649632380698231373199873349033083003517544418678150824972400232074161601172674723233984360384037705327662282581538787065010508216490713293219296720194503313749580365860799275031049323523815411518009127422690263091291189384765269439220784983409119331745485127246892179137843772276631617257594843694894198940095333365804127919767143420956305356189995654568357186001716678241919629470479128812669080328624762712570062692035159383450325213343685906321385373555764895556968842406967086113325592971933446258044336953840994913957013285473545587405582221264284113415003770266896176389678915288778625247360117078470294872594621069121025331027724924279342911249552558263968323350131492203284082086997045270254932899864250384830194485275490699627830357253061386153919741234156524952244886258655194995456624033507295648707967299913143304357740616630665959047890616197005161553498506498198303668540909948362606199875591927550743961419344414408479791338928937030101027005152965585686851172392781552692878758930301982229049506336960069311159766913549601852697066337179495743838922818381152858893904499096409568122594233821730690132220029738745093202127990186857226597147300095205382771764979924168762796664644366130124341264757172258419280386463868375255109735151198666492157020607306891610970026023027915092753032255951899446516032706420192042213132131733860584699065990718443888050428488086115357026035037159129476815528389880591950444760674158855065155870817525178998884742544370949229846701676388191933910846434384382140942185651508126445229612820650179514349271857014093362521415375311767074979415142958735221945973677235897916576683720142049034904449684746602812528981686928650841490486131818852874897162504636128784308280372160476228781033658558009319792581800475715851499230746497521498179058515943294312190502232400052531220751964643855016927167888511458909535530779330317987628727049840998442040018991950412273617372001612593855748113616010067721991336856043693989788873857922356094811661374050680926862464143538406455889399300353344144568416324129573009491131464604423508703448235115745215099682084425876458363388077150951392304261319069866375653610238028458404561195960474265220204241611903801929855541215040729064220951060112235235879018117975406328231341162339849331175971798601590541294025223964235426532722410939898024536844972286421150714362787970851490328069972312557215285571669419349855036771439299349506768437713358916054614083096945666713651954408310606384565204454794492556917329109348050659253469117911078157704377493713538956884546994437673244722126675953892942494076479311715107987653602108823770370184413798223018728719367194599682679151732960023627856750920444390382754872615609209305637250001472137949218939661394048652166100415853990262507619116627816034395079486361239694715361447316325688911984172178600970173778104052236936925235701505055300653406177385580516165956726721146590317533973726832114219900447232557380918574164472870205436078684737281313584900604955189163608565463241261745807913333987939350454071081049748088844817049641120364153067321229847974172893546688206097310326127871090417367873346690518462326788617718777972865566482501933037845038655429260654566653166132383979402891158463025920755162057328779003252550567312933819948633331255227585306525193839549369240475237525067908967328635588101722622033271205441951078536395383146162404100514837751865073824221684787747946960490957127813553270877247858207737774277920186248718791567812488150738651540338249651370656392787097992713788345244474876303469400235211631806560768885887401022816095674190013385641308219284423594358920121754107552502548703740565278049317026034468671797242628667411315158989884111786853005603207932384030091934846116498009624501126574162268747742926700935515491235672551919388147149769099560662290599453374333586928142551318306224840467824262572653255311567757612119592014284849544316982481397541991086368065385696590719150144174015746754401241180759214227909656245538194623174744430244993390825913069385256179616126969222084455546854268004537400301819686243801131619357816094299596200052084796994404605285890246834325065623516447404829687284228730925831104394872286542186978036302151357112402632199071015317339545227231146734567851674928517799505922363080417406008394349574350581764856765560168139490453644779889230715714150484775610507754847749772873265265396450407681283113644739521734872740725291950616845696472568266247193097011075978434796754355795849623018567821895167292542390597627687468362312083558313545638021759726508094492051117833141860408227762938049661784451353713899816382026536617789868760592498016860103768398714169308611157277297470077553895329598212047676216288300624799713199396588377826186612570962891149892185726972232079027919857916553736029233001325618234025807520790771967275898533559471984108103558311578239937436418098738043297522249892272401822782024904584711119572025050136967736730372579043023144504260922081351879147901053137085960968443221930115428760307193411831232378663164114669240555956811643624726201452307277584065588304178829404724021074737767050230654788283931538190156327464453248544927443203198678953868363936253687114314096426329057181142015981976259556592563596681284094220457624592538166886744545810956539353911711105967260794933825708327185664481353294603129642238159374703221960312178552725718361533742192968046330855384844445752116032439562201039248352776682329094912488353367112779768733183569056655322774590181960492593909938257544225483495383055317868806764085509057845483895927927727233847490525025949253033272733089371172842709843421454866124051189729866777056747794228524743729036103958013538584265533059013797093140642316686267273815254369681933856141496676376189340828910386898092274343939603166347524628481354352577651322093250814575544638725412914593441593355165627463844441538363896242311864101005308949257621726823098965932848011201095309612979027608023835886391546425885567998380132630318272508840032010979534249806999355570655705785717070790138301836195558972434970248169189278327659485953412458309466270975484086877002408157904526928808764377335989040643436990481082488029405006941452398309562369122336214371494063257311612824197805600792758457188213247463527322529630415741128720481288254587253455428663134721297753413927694022095709449934109143745572906072244569556819439752534019802235558401680607792854148681607130056410002130094639032741950396375937684414727101387422225851859192256914234046559864696494894082097466938210108714131753283133484313340856446148210655291247943159866883515064837311419309890790139510711015049639784676835444130339914304775200890023024128077830844374616182447010997811233731972887095628215869701444208121696235355607464015368770849900352746562068560612858113560157634410894034451363714612825941025036276522430449523961866758122124313714691004743973272394063191856860263533176429418036669997969796034211880538233968003759699915887128170511620568760065030847716418829553029160428820506781516621813828633551053494541300485655374071915479226330601138610400768215844401411314664637879273582017051396435821883935315751702327562283332844333053033901600020939960560580284601018439862963580154340978620362410157428326262112931260416504843512087045617487398284553058465785816447183745270344961828418698329259847761425836143347944867851435033702369562183344316431931999970461622544226931251689618662916143771209413887024068676371179974669074455335668779101474181606635925213621984634321335226792541895619387729162215682190058083478800488193470287879723870799931776902888832295299434338923529547594737105516327844833297940243318546155722143541459315975435478862415362392506572046188985981951767323940511474916176439199500688909409719515713695033743815254677288125523116029163586791981983928618256933752537047355300178633818815712267376004712565594093547496416902763284848615598883023658946229827141003093975009503525312944079430418725515795179847717772975830913964205751883690111130582187898031642726299603060864964134640518789830644693078700814791419431257710811705353103383464353655081942102898894674960587080032441807015202073930654635291122488350651787469850443098152528844185518683545520723874642558411465106510766807761410849548621847150748123269424656077721214424069638371992662587593841765492876179999429857329986836649376288702259615787343406238400580676327412886374738284171389307770393960730311240361583198882481692745149106586594539598319693970969964338976903345186135497459702499486278011886694182198855208146561898117388787128087262357691754802381245381116919504583800821649940578368823043864065918523228583618142634928409083068948956903426297426692138500505932848537254640407742745879244224195278177432876985833327743019088903522237902346705702394485686973788387440813664399414567759659344813740253854715809896532479989638099934044096864297916834816294942469431185492253935884362591398244274673581948597509546455027170092847533267926339777238377623791419577411101033372907176200042482882437456049233576956514230395578009676823415498188233035138499201730011540682978434821855864796741601848254313703216448602562063760678452700111689862605924570046043915637116656212972289429829466690986054937731701391353589111490376563626857944202035471271008580932328211924288644515350762689738313997270509647437588106162679965359241381693512824929856096027099722063441765269826667700258790558543857204466500811602598210663770567772151607354820404718066318204282321392241778338388870254265512657943090480013842563290045261191893218597254819335094470431345315878063072580966498879110071946500568407351874806704554462335229795322094448946319621174145538068282514184950686382828010372703438190519354185626431450512644964869670504186029474626870131398729330214533006629441155069380285124421976837864999317278706497952132504547902304693995002848715333348220464770634792538583982138598969831728476710053974278642463571077477299216483589877429799653576504702569860983868815356281457854400929377035360122948887956907104061462417316512207375306761567140659253485924398220086549331167258513673443792980635274564299652645313342946446585929189465084518273619791034076471852719717554063709580459313770067963937164014277308031682246202018117868574131197943379951438114036998059964351788659310143694991231875098236666034357489918961145448563639190749691727902199911997059706696869408984321838150556762084214522630481988282057936257901041511360816282164771834952454590155220001932987499482440879618677081010299777840962942878942574082755382784828835132587793000883446598594019777201937868728789826537818950851991403822060468630638925202340513299965111655430574268853992571842548957332301058453914562209063431660326161241871829805741145244196374805220485324340831172419170831909622737968562504850913500208579326424798741775368187126485290926190973301027170442764565109226267054293274017038208725197058455824559221503130437660692617291327376952050343522621086178365381166237770479402838906999188932466215390036830876014245478297265904444197945161128627264521139151564251948387521113626131163834060030073883059887485074559243267498281899678703403649769996142794535905662971886337613467279296483773879111437024497056335860423618984620291661685941721817166548246946219368763074936612093248642297898419345887209120042767734700592808100064406106330936513367115048129793285095439971051634747874522815557736583162528526638059874462597127183262107733261858079918723480055864934379512412529951216720016237218624839869981373034434578480418550235411631949588923846343198667371865554570297457652604267068683400529004799356495811926854014482651782340503823611973741582358432515026890714576487672931493542460337361440207304353087616633196798710846949755091900196088986212006144623917729114609009583811743811419360208415353329085138809190615046912460863699116348989878130147011792156527007483411185103918126158207923206945406981585262732229989250032730082967936114317808452395965073656972222227494207446601325049850408276162792686487687788066649377568063777673413398769640692196488777630691692118366047707796300750833773554654663575012848345891757386179099808305477300262810953991673190482959021490351393188762929067222147216057321770880419181970588013422535010552705957123345481517252652661578051066242515185641920327802708428836826630101958250380932196992064406066449319430403996340152071990929327423958055949286762088458682318134488986631270946203154847442429331277573216342969613747186496674915296621155092682230121909827770698899595634837618428791533380335722489898452165145909804658879346120552654369576004779411718700126848151482463304988940419372253604139361229444867032983265344674427236343238947850035723396575959716561306978441443826112452188009747171421307378256337323391350468753470210922351566480676888934006753732459886138611989958470262852467123213775686376739858916748117508377355194750407190757317917157063345060835733054032693642518392336692873581379882387735874401142869507046615836986958045831624362605552400986957298278046045746829234119638237989521298969817489122458426205542965644734308556893609012596883674299375448850513516555231929582723346229224404232230207080869993851214977279651599783473378258518629008903316104433766995390304726272700585254687268809174227734226083127490599930804313689907007277549752406845556300006535067266916726442205195804992583162170008793962783581435938239805928996435562271293555329857535888977834524993527407171987054625315721087488072616039013844945195636539960367229535057182129267664665163892259549329132597724274690363743593864383138427970875958934279737580634178051037251864152317313872273269455144105919281715029468822530090062616966386895936441068959766933904254636086251634937182161051105192199459237558880164028033620370330011465133554587763408339580749536604250103201848885231573787344238478023808659244065525771570220196702882608982688957279984134781430724612751507461676269672850918900004263776411517988868667156026148770129338627950907443680843502153265984844925270825496160815848374466406383019306260742933298225407844477595849798293419060188902418233899864881459703796758059671131837909410689946777335677323541561280884600618064603064663635122926377436667459263730024500481677258911267690385461068703683812135144137053839954432697724004779719231032608217607996572188452885320307522664851946428933858278371546884155432862653831089022288099391161027240848481684027831274244621596618098127378253897385885624468036485146282683644723952182641688414886978471594890396024536071083503850072813874490656120223899033479159080975100339191755861936176088486278804103074714708047090281940730103603067293236349135266318624816646982245887291156040936484868823092999126798587005674987597470247087591626991640055611507725945772840524224170343271450538271002362605565688708612353098144051753130574019255149989528450976590218146360318266499337478521158419805436564560240605987556003646988251838103288741312394209743281891507610839287902414011657174601011424682661796293124199697197147466771242931584377654296017973683894555520833088990130309968831453372677863561939317786034421922753899596705502564178387778946502592379172767185956117024574399758262819796232293696696957189522455063846954649374877519771484897981681727080641075264547130882629049472223309005504156642362187747001422204360353581950192059927506163298936389547481055256006882996493433021693276930897431118211138019213179978256575180708906194697660271139911199158524064009339473140238198207069480581820346800105375096982099777098783645341238066394426402579756873961324719514815824458423523196866487423862451036095755951879325952177838616119035101256709698968517718309549233421851518915997495291114697873113216718812950391079297859309185503982735559784530982998007367805190721577294151113538112864427857982361470570279133211312524806605409602767252515303504821924878693085819577583704691338577169137284288458932648233339381460686994969315039423202186902184332698585255978676216338258715047782791109149292452128465447077811175181716022794737722874590535345054075178104106391770343046045427642198340469028242572497807065294353204441403977998503254132812653630584550416839274165016450958936489202877843486141676402134708013272640237923233109742608083887716686621792267326725819327555765649066643722097492453676034514350901707107034678588985910344332144454982973231565984163786447974230542749710389523553544036814848565421464531274244799198036443082879299801581746446138124103290609429950985543430004781837553123570269462733750513065819879896108454555147460000619311248390172265070963158028607497874974896791600975965522251655988072815821672735405467878250964388328798497458748311181567903468899208505876378555740903178272784211806430976907794405193501417143636846671708159221441783263946450658738139549320748625402260033510416648658449864146939798735137282144791871747659318280062910664431089482676815576112370394949597445594248284238402103632814289439561953636417726846933048557980441919493964558051278597370359408140066052226333632417623843969306704830403992811385741159246266964215232974516852071652645624084203076200689176499367979697724139671600226661992678002532564488975111129575189165467814587111819193145605296169716441252967389538971197223380438481690451312929753956424694588237900298345081920169007678435631852368462505917418487935824538145775422958151396040476910739271777785952877777984292674648417952561256738232002538210722795166325736866126584246509324754759848077143968710476404641557994806336128196695237031372356521926687112170721309645451942378146918445953995185022629182297634073426973260956251701658726722192122504621359612844853232996472516018339612329223979207079417446949652502243634516747842257848020123019638478349939378599285444350435775680361551737143368660015094663497537270290894808261663299924626056763090888680569773791678205318239763058248324790213113237448679077725795426367770604931554359220996736399991804923337218522026009787652174868113759227855266728481306512237053487035068716819714180594115991597470455593966264091155323493190536379014458565633189792445350556681539933478903704836439695177605734142054897005887427893896476883747036107992887402109213844991001398184121386073286183694222597311933538851962074520796840100219133391499528597264605378482839457171672432247780578814401774615164450625658623706023767581069450477862504158134599571291433911504996119149989156116257464193390341697506973613595351623887529037588612470502645464092752466647722425723773374957512227420846049728205341958440865980010864426489729941793191334233597123581775366250959370125611379279180378598925376889093525548204750864362723784807040194410227353074277423633631424400622783505039958542697022522328231818911210385213023614849429229899314414297653695163841498591174633753900261067499355746344374699316200597173596019619236985629064347834847202778288591566769280285133124849055066628805700034002976426312159515297837189662332759086917894752801240207434176812488901486328580550903548502441775524964233271968377678479771157930286608475090880738435814093032699839185762126910912139769192500464205743736231831600651588900048879040671806611625191483786473250622412078848346791925980881531926905538511624472382868861710553553094849372799347289150665691052497068632796353880037798660819181986503685393471345536504271337015401415164957743129483277989375427495555346717222329916740117807120760079748387488423015329713377630829344375317696270013239733278459882174925368450366452148512091348546373335752823082709244228713463796627374968224656273560023304235372740103517832644803422623322996921048679302521615843357435269963473654283391889074401856541671018342259092846321500899870055185298243223143348115423605036787122889179187991808777938356029758542980330178995055897925225658789768932272727349754873116971088894491965129307216355204255187880426489999050800550823326032636889232931044257751490964227397290682214117997679792721547819127763304939321523656123758078833276617097107518830494383792463748478220583738669471368628684813697582838755151502315445294924095558096941370781093599386330982775502362341701560336855448453208130344286107507421679380369135773524100324043038901728360634565321978809259147926653884347186539967863608395551258712160223173377550817906627812578572458834553283493556897222722306799618337452476957389472933072320030639970254474171003645653745813016892992971043981359602695189976480543118951889166248879388621021379466483747715574250801427726084658616392651371555455906289470491496897817783975398712955689877623779736793716847840276730681942520452718864156985098453954575309551519794126519570837675692157814001055871058473954273607602234816883322563334057176695901639934135489270599654443696496078985607044346368892828012963248453735979523227420244049915394095127521963492918955542566634031428052351097473091649880283893699056607815729785268611741922733874616959829833814453635254838903867448696834499462621260655945802291643003557257180031970039219456640476138191530602010493118450152841296936345423185481843975373313908769230594585521199157721616036899610659754757020639088657595390831328355152592721778593047600104259676523790733135912718737794987892433120460712374782095009203884206889846985209537258065554237720251363856589955093514150896159690637395166278200357056715341177243310659258579589982637223502338702802442951110301159340797007515425119398217732201014169448998637828827706173867451301804476038771505152404855882666695915947858716741430422619757922897868118443307746965213758886470444326386202650783502089273180523150054313008749691209778376721777245762341751340202915517250780997055868453418505432107812794176711541964411499223601655352800728175869678904703194117922954071051492529868611446628270722040714280011242019534570613033788427734558067760893681466886148846465072984420772560577194169847291856984469219551139572002569821514554841968639479107292145213011383292508959387553138571781503219308554466079685766600901290540005553956219678627762473896917320838296791418112380365763701349900966693956756787917741383851825513858652669204944212864794137189222651051154072743290107816288059253147484795929727950848424168792935157042690019906237904298849644119513003956682610308640654036745811525898553186259747034293932550017360086934118659207856892062136834204579911989967005210586292964667938220953744659656062029379445960217820515357257047143304114664800167587233521173701036272192267240647778350295547109391453867802070814975947934956570019910268377625906554596119278172223398329012296734095350302071485969535017788179817355539880578996258674318649337940821473255684718958138574351786176208852555262721862453840669689297705997701633198336492628507612871217817808147428621370527547189422717154371800905188470210899862220266594710152752450653734849149177513002590854985678861728572222095169712957063315874956709768063022375821272537620094853215165039377293039078985950704426840206468163031086234862547958386502606272653784040563382774992975362661551110568187186590253801182826194468335818754133488238719632126358839995586623420184388907253424146295865017312404485774572930630049603902593855984580396122052637934393927215575908310344112802417565461325471907400894726305267792165822144565714819021535942171063581326980800257409470358463112593033396091025979794622418966929300918448736816182111477552376065427961404962652552383636685274963541164598109274019676898030334150608018902198025239395794495201408708270696847376172274860629551314795031708853706549150191959539716324335717208473970264354192012786053476226562922036935692891775470138822995621542042638415138158262756999934624857088249810871357366706500716294403024096625647643932681719723094236081115662266123666501311449365995529118156819054698710251082169458614321819675310725788718850461114665641194623707664879236624299753865454402305828955018714690458704387254512395607459297764891664316572710095414612145983856180288716395068805525208893551029426833988098971098167170136949621045897339252162695809459236965685260382687544539033336950758831446889385919835708929973321663568921580620438036827767163164777123877289207942091312015179490510790586331222828467112190097833750259276746818552508038157450848304579410018049842650636957908424779792032692408022285237700161207545964104727795360552875038954622878274556997957954337150369616053733395177764433201304983740439908542772412792775331567611358895713306351066900824899120659775983172558359753025966524611824041612157345277722841630726252814148199968304922711606679392327051532548019563016794611156544809581502307694057595444826354812902254987541989250264102544591364197969762137732146057447425149341263500369601814508363395184183118155095101899929210186165183723613897621637476789091650235187039689793231283480649966508539070143798245654813548581963232601749109732274302062190245206084314891752139971002038109838100419402483059019351634842396526198050699765744870821317834590535863486586538289981354926403532988909872765682544352284275866669096327409317321909557293059618611510799591794028601957876499233663514587836938667401394160863910474705288783634193954244659085641349297815183055006687939281328495306973084487306300731680361300848872526411497687645348437052038677487371501397837043391579126034480762094921631820135064014599835236618025689884871781071637549000620860115486849058920420159841895109306054922677340060958653457752836550763169210788975612701642868096862343805038358520497617347517727366821491843313124583995062507715937523662061252555789562418843326151683024899357231874318251078963879394384534560018011189185038401886460082793014857919913837376672900946631104105624127232657646438821389876619627012621077553511422719446473974472157243802411795046087887191716957944433298849581670049593318139441944491528698923926724881901253506626440563086613975785684062434187707944096038575678778174399933680452504746923615996041515240218504356373184133588511037266218531589446446888981581382729530966193924033197391606003706998894668555400235144040997589578245854968167097738714422634720757456389379805943988594936909152672708877188495229265446440547595211018669665219910070407102918837444197805654745426418712031186492478811722199898023696060114448974663761645937652280427956884608185671202361826680714351703359584987565227035705389707691294431431016656933692485189441377668772298245548915471544863360817714846242070922397370919404923271743559739443536765975421850218629918919796400115950679512493038163083375873907093478456062607937955317595051566902156855483120163776207848538710925418350483178638656354821670430391173835749698989007608109502091550213847139993349756167295762402909651054683011904554695742322104409120355976989520576383780775073923606414277799576863937260480009931634403798809855194284580925309811274998898063369253141869796804885644986319506741920300097056833074876139677378917291241322223115562285397501900125053226338291577156025089812327034418373012991369223842459583097368519160505941148871054005071468633752997124383567498031119737184435598514418949819452764228595516782694752629088756378902893661773865601793651335173639600585347555569505654064062189731762700807885293853466737049803735480715107746555946834720443973467906218371117069951745165337382930556388164946993556737521233607655501220474906206608020309035242617616546684812726083618967302626414573037062703543811649989002783631530774054299497336235764753382721503777536782378227667163725199882863210536910768043820431028982524128211111601398236943190815372241422790137597821507444111900667777064589933631939178507607643354918254288581866688341727710587505065579168712686932161592046265424111537382254051233871113979258986356763644098567166932000275688171855314874996297781546376066659468531032960728540919651542567093958177211682038296108140686045277899622490740236456610668117191421189563942579732824647761627172271328085552706365605936259488201675744142937261132840549144172529456455149782653535619177759775706554300192205069583571247500090676260094611427623695825054051377570818615141017949781471046345993709990291852889498317171896212975509598410844931748644805101739426026368253837403161586151324011472425789072723379967290012510886811565362081211181313977949222314468594089638034437338028005578742444973150181233213193923693812454824896272287460422252993621623058466873271597639714525611557830951802162158848028383262839592769458034069240368093426161592554859790955495180058681779320962959928776290088309948276818552255334656650934280604794704031737947662044109938219312980553416016690234101250109902057836694959268613478592642820075913665922758703288385863861279259027602000706259562901412948498832696726583783859010354581282326337119649003656749312602798981263231705810220387878742200584761601960568807020686849380291263533301923363502918172881885871871363595684382930451932909645043345593261874742296510283443148172277452083616759755108333001786864070372255676868021567058889154618516156184614810576929556073663802873639693463161024748693021881837633768954219661901792129721616927185357941158018906773378768235858785491871894627539864225129234993054225402987202625776140112318778835897006294284521874214464078591564586592145574543043890051904269839633820871733966180812171879592969248610242218655382419044877065479689471663871770044738909032223035351795071422864747263617035564519189167030318249407119518388989464959188858849229860440069926004187074443956306422712133664460418937159228539315322149388790808902407154339667880440311721020250075498132748206228006028254870384487235338983020170126732528649220454954416198013207923072163240518801240639248549008219341451575256202228577696910350338155464436451988540952561708589463429112712256449503453868509351974899064813844691126482882707919220260315196623881132762004820539689493617593377088266022870338489242924991653412752444169984341754167573354852632286571791419627143329089328263028526541718487853348760533996793735767684472903606856628011900452088030445195905392245644038394436342932297016139418083415977791992068197802315537733530490030148468384883582141178062057505180991144532521215894423019263184579676015208187651797951213315468166183090996866752075700720114504734861028767441747143418209570540558455815170340742976239664063464835737213621681495395947669324732897327416991931332779198147492451031380748155457714510856161280682143982588126909534811919139399080771605392122063593139235831050304119632349140121376305791229604330580115574115208199839147333551820485373369749347523261284388245770055612099995634276731786180969329131431163377748243059150964158183819582502688556959860838770325336530689155735816050053829701937127055945729796058334360286538372144056234996172997279749315966721139287086514493302739301776465871474334267242177912955204019843355624183952511302022845793797902515985373676511775428587503501975948846179419086519611634900414384254828202942915479049511698987428170288518756735172439813635698286844640779945643580276939112075582720961182795492758222033900377936058061929916370589486300977710374528905304101872434870513507167511992311047687844052491939130595592504001743213766221564265047802324482605913145042202270280925809643105099372551264624848424038474386354280373568252306427889830870408728376356013487322461853509876087735886172599634887053702164520550587524934418640511715075114422834942584119667601015420960933028626467914973517203818016706905753488284139038695629486370240323675765398677505412608688168819468683518877336817838689830095520411051343325837165991629278493887065491892859682599155961481368484634182768179732201122407958866484314211609250766693696077412601223254452176730732917392732901169130700848623501963583107706072778356036998144132671956732634715555805708154486469139463533093645241679594413129638311485484262282250445835562631080016506508327577355004349034255058250288202571236931946102369408192935454276677674843407740140607861406439648594422775891439738638313248238629312336644878093195152266688005948934636360554417207136178880158210703730543318814256130182066075876930747196687622920543891679796709264743829092260432886692763357874194765674665147974433488640731092318679915617564640723175830897946422514486736156028761530028686348779332727288082875659252697970777559176128347079846216082368027517979088290800860406029237657640170754661135064856504807161596779612552743638113495196576938957240775250471323264083824549247124537377338077614543205072542676660668122720616330904603646308783885435510304354386978884288737642988266846715532244006947318447771100257852027853269121250231399281998933038002104098547216833886891027466588098630040399889622932573781352331161445284003438420554712015883459689842078979168458441144714329552834032724424459521044994974546803784902389487894070421247440833910774346992635356239641329320494940615365868035089775014982612027551866314969158924556681230305158708547589658516912574648278886843241970641601118310035972181378951215598260270955657969383275466664036860525096621310690935373776502000832747170297471136466949836724762686542258782048147754504522415232029476308683169623692801269148388167339194005395042475220579692895454813760278712090429267071069960056115580614588693100129366162164271258730013566486405883862834635252976386433269506714819553603788420042872757534953452282593210138215919052843416741362090954086767055192084709011461808635698948043795268594433646766727400760780644544016130680969222343757141744998504575917304508764472963955775340106846587327296470549924175518631435254153549679775050754842113823584481002026492390806129020449550333653113803882855778207196442889293836519392820622259037313137164939654430361878401747924967099736121501084695686098157648742680669804708963986859293967369337136950412303094157138600986441854159057895510645259947768865970350908299673434560596402135440267316034407377061563855938902126404283220421642564338598016051002625733614974651330361357790030400964055453162353635037431161247791929579456143736310283835114714049732627429871543753130905420563696448368093371833892881332772540634037803803301918666923333045580907938860424203555109622190845516754735775135073494026109257936276865900616452861052989325346321874283836517054683357239384074941175618148386980122336327281874034184778176115447269251075939591779379875344807486590576203049094315031343593000125324298341085224344925976607951316702349345149478555267436261261211342509101393853166285247741705331331138626568057073645592165845897124754638073415255523920036929371122971472663921057746232577042538907296246816760694737440448680773801625980454028854338417275701636448050713344993087798624790973923233975536319751325021927094445175727135913444899288412696930591829883682964508850286383455795258818087366797943825030143860447598006536098887290093279380282840403698299041723275245826594167816183218617009063762568825313368279428288997413306586587897516187436296741512918984361322734434526464833176598350780285673223517746018442468696074735441878061935476619565715445962458617571972870327099210295353315665785917026706287867981419768042750500586895598179935891688702143213038095277923929562031670787132747641061809399818390202821240664362269860435494171830406484770397020522675204914520364565970453939035659799095076122475311326143867499684099281687868912490242296717097086780421077377991548408552932678550837979868618814911803329875628740372762914318575498720518504924803320848712700586234216160781309297829605147115803436185426500826944251972626953362227311082516360299608707296798671629462550718674211667825361989562870585078891624067597488207116406469493373679205234869210727696500263160239190343889917083204816835249314652908940361470526963012884214600200685091871510418846760388343366529173450308202393879498557410659085568666123817639202009889745158326779760724444207196061410154342214549853763181136289247009269813591966870399379683007722673189283064219869804337352661534322178601225431231785765503906400106693844546730215334783803547269189814334643606895579886185087590506282694609841775782533930276883780974078306281624376770772351302347593325809864955071131514110723647286248276888096638495665521406124418858175537859552536988658071689319918953064961856041413504521395532457189210849796409764814663075208677077419341740991695905871188224408773093397053129065599076199259612933651793412136393574489950851793984568637185439036169554403432750575307273595595588272831394894131275425293016744682566662439753290191647343858043259505296516384826523480621966313112865345243909834335185759261706049902148280973055897958134225881907505125264463806643348948510193621499950871755355307834651781635710675402797332547345938187941695880701497373627875691947263139153905778299940731047982894686302896529357306087304511956756702760138459708674873097796012286696930043008725201182835900462008254614473069453612472587585530881282280541468819396793680344871279806230925199338459500011303426437632691367339141685385984952822906129308107445083487208984988589127524263210112734954840081276219972516424759066691929213451964114300402778109605981580894868051132751021322725083965519625557313441943453424852298688383246978069454601130450927607625498906858867107696457950954747495558935256682593681950983567340984697787119182006253460638020767082428761696583127450173795965100613702342978173411327595131358402206714236192072377315464967288309964202319535859060374770577943903982826820675627918438155681337406948045988375465416825515931377657285713517611566216760522618323568717277607252707074872576280193863981320832933804728463411676164106548787557280389449117830261783175119602853210132100906961655593220924231334829240048578466680402818463012624389927338604361761484136457715658899873885270345119314486305838412384973926402015168474912591820249627814456218722939827076324182744754455181512547847617407849935240767781106572649865032102581699778801672279435055624531129320870065604871271984573768208814372324296954832388795035050071977272219497776759853152897103955601241978865289150070015384008929209282572021240096673737693747456711595244569392293286280865314073880606827308206620841014365596416962305643404023925108280042062323521118433710271830131266285972856120517254212204388927816894745665289071158148638466040224982690383126955151972944467380336781118874843309875138570737644433665403754373663232714594433218778309140495188118100693685572200667936401337244150389973952920663243510884037020385273851505262722174540348234430274833648319924143496446216706722280723623898438787347041851139478099256496068382299378003858293214256366296677477272567171298506746514614845224304981900717464435021505768243841682027049953184380400748554448166503470553504864338332411565250912740323890505840711644696698575090784516218502533185889693149127443576920354107188167491211251392577455420537477602245213731359473602971068861267791126970149686827923866843690533625087210045469050086355439342095974632452708029846247165071333222409767294859443811917817179190322490899897750622601176131022283920925153628875855060828109054399250826582741866481056633262512607288003526596216263851835304745523457311514954173693305490121551719085248912690476211366215305782824358638036205125316429690047033179388255981254645446917739337421414739150585887514711644390979529596919938606550432454453876941472764123152965603639984645299210214438119103454286801768831186917855583717818493721365000777492013623519410263058327616236813533605209263821758410690254795201289549468713684341676429223310541993253557150906702016276634493935412828434982924661427255999339646496663899453130940835307598780024885025031474820764367863257211682656771697825106173548312462764272892569078430478899668636411567260017914503926473137245072930279863867717186318251367233133536859878898754664043752210251302001885814119082763390660048908098665595827733702318128728995873843836571266547255330891472605345924435782585888415806384037736072331108444816472910081084021754337615387723959092629796002552441395965241332454583828883130972347394950595531475220716252735170609928778110414308208264398647978716956860879012368601872808370656153409744365908318436329003984596613056311686180709902936506446488840336147325194390025362147911139853211051158559564201676690234538071851112213729642169212191386321069626126464033899956201974237863099736596686119268499006542261806991406902954676376060839066400225886892864954135398176561833851332781832420268118425564903076195916344462201160479106888389416387407562240244483056024593239466252602667391785413817949409987908108963732191386040485782369745432071574543715546019377985864847164127274474500701814634959099004880548224039899680082300764064757499603336190995889252597355124756766800176994751990619901357231951415469156259678857618093248926335554192853196597500564845425015847764900171826600197761722001603209788904948777716399778803539390550136558400516897340534642366469019511111800887162280845006955365261334465143470294041594811965113843266030927047998581895331059882628906776720950937228886300429463706340231631901367603015906361626665165026108293856558953288964709283609048220027192069906808232669338767572295623831202796216241005984829769139533569053603703921961563472032528061705945047974128003869164436057537003980589977532335782693089933700507987206814994371307902137998488211248241887270582131541846810834642733531868955315886221117561717887109139409024723246993100202642540633437320909461433789871084952925406595296111422549567060629047674132050283322778728023423413713379598790720185017608673519593192726505803466870926535808715657772105039729904169497533914321236337253777867688138661687976969068896729092818799137345565854776762335886026024478017300910128049803372526254508463653921047850059983924153561491287572641153027403025954854451295922834615613982219447350259414802538581991718573652037192906026944182601047721777352021705329672477422341040908787017523174604383131364011377922391484988778471050720780055364415798150410890798863344461083267825719066996094297022495292589935043251357060574668159348255157681171000833200560779110008910868169694125194263639528421938122065381067986181131617113470804691363864833216691488069261809521055460624122107060394517762296409049153812339914230680141188788809506423510542087694847376509400529591483691811958153389497906089763656729658390975213398601359497347102906258129942799217289775979448641207351215886364947761957567408835034828991123601175886823969201310986417847383085603088341950864110668410094842444054440833675847125075469319141314595888247140648628854359297659009977046843930386557862128514408809697684729271544908412825221515222167556673912227712902134082294352033017998131135260646820748314699127214648995205981019352719038568086781577811706194726919437184387027542856455052622765991703294377792771973966311215475042720240269897848571255997326537423609937730887525312818181320782374722853363047835739715520307658781427591463455235847268997556662587681182171729459204819951713021620216689991552914357918722740944571586321697395385309192471461823316653524415162753786529966445649932772965092940596571362508381998081270950366826324914909210953756864867506775877814115058419879593670619090491486727370259320263206251276265177979682348061942650840720052227868961886724569865703879406436290954183739411177252530087641541191488731955076492794563384332405512555961215116275950509711722867176869401046418799330546031079875263309188615540480890998831014483971125685755645614091699830444749147112851941542515553071638232364177512775663195068970347282165960174578158811520033559218958540620942761995932459969570088458796751044557653529404506390846947593538821287070568814478034065522809140203539181890241812373166828730762735862094562770791564385700362558220534285258555572200565174532374355544419218670626367880387510960627857281801103888062520583127313187021975060911439532186035629997532160376423011223371162963498622258440718302644038824523515629915615811747573311644729320813013361749206794602202217398033886515502325590597881115153796763224280980275032673911633883793706980104567092664816532359952824299763547985588158625423466445656258465049776680341832251696346940618830031950825376741796028706062063207818351347203599046149510537343118435420187914325500778131886393718176117471963085860803248410160408152933143027130860642752943477634220993964864575590658353173862737514235836750672136134031933783314863911738850419478858894679752040325549776551107710490282831104304508423535548391044883029394958954251010575878954001014280026773411861665985009040678714947843147256080026647300808038044421622172405901200268166940916426469749362179926887038395857964506219235233940430526074218986139197846318935733878841764117981672758832624121103459539342641409000372819848177430738748755714214130299232211701938718787748011062033986489037942843403305599071259410790578681239223646585806167466626966109106145155620084859874395713863468777463992321760498575955535123248898302515810897760708367663095861648587588241481617814586693054996176754519557734474592605173172258451740704821982040036441904849593600114634940084813226648510779052138903224826287707534758516396265798153431573748067373933327096542599174541857910238934061163195958394559724149626458576924045823455437454193464986431978678696275213262860771024827218766221247470559089300947896323462011352999312106589648711826415549809698820200299849192531298196888626757741407774653436643214715770705244059440398942697734484009855020113324945595055147671270211101013389895650143964147520784706926773434988026270476498975812103360193592231349589823865444564336757535368210736716529534095321290189277194387468383950921084964916546754071956457169853802748562688307440748610647429506441304165320035829480538604742582481438851318265409187501244406549339334247635641296861614705372366552987129536428506214196320940438556954547100962313962527979285704909093265759632889942487472715754633937337348109953586385971799071256384864139191656631168548134396085392183150597978980147028321019556120541318700753773738414699973796071883607366173348963716765553244639923210292855901044079842192936985715900741581810722987756312496350409133201147233503372708598326266024492972143432406745340232034016671344469081275069958006401973550291945476212125089101560950228198001155881266694402437437308070989071134939064109286115827512761795062003566743866392842194710849063684935069827525222026806385436520383516560777804533101244881321833261048511227900052888534578200669723714646654275022557271515944930463646459412841931014260118579868331473489718604828624899000159134799651182706324336117540278627730487526751839608356589811039201431551063084492451512311682031353414331222667089145702047422223101320532512145215887732039830882242754821589508259543483709848281570361993469508626795458264653179166142124835064608760066848755563315377121420376169700996703413843002001509334557831249555230378513303487905356848389280545457622245099411562392076232947772717711006551006543020429280456579452786753090271755914070100820407351036656114790743096051683275805383617995048777732767771661617225087801710259348211491866425891594948819682553383969104576572431466941505856677172410142706592405058946246330067874057941201961977556375795102272584787600173430958847290184748411596517914664096607391785108116915196326763846991299101028074959563416764958546186730549672887336540734428612571859674936597720840503949957959595683845292406701216482533643960440213777394215475772503842341824801344544233287348248492123202707052265028697507503876751295437982935678651373921758804029336052301289927125265563995949387003714050702902097164605545723699672471753328110679873092808809346144630983800484360791867980779721145762424310112122363834325493412636897956487885979514363561204707198560147180923132437746718222799861404575796998745716858471242652765085002326961826984138180751680498792995057303023706920243640854958144181255743808332478237446378965284730565965296577027750070722644709080611907919730727657348764980066336800923341432145005609061620753818929462643937298863179150849368709909848055509245803965429632910143946235839696858375361222246422468156354753019792483279842780594936636151676891881543818077051785110658648458809254306872428054697471175479948499025314284236327241426073594292589921319130941126796983125492101299004102429450091876254070721287226546009939092653546726515069122897535566887241174104944016244300542528557845076435722984118417208392091927735509559792881802520111473611210097590849959311079709718418187834775186422786871331037351574115932633927513836393746713539496513768689557575525179412798091011636000923646468028918643221833619475173541092814174671151775917722389137184392507701329078817091097314030859752851964108540766192229068269157167929056598984150596737877451394430316902456851798510087961777386983833228230486832136665134321268410394960962210752253307982753537852714965927681721788788383693842589325572516126170215880201889006589878517365465161258818581703616076632709260568222633110620736003939655303692726555402150242843411895391878164429910207832331493374104657900857829544166664793192248629728734365207992552965338697027416370672915500305677258310421138783514198990454060196553294727502223280201407429076551019482602720826978077745645481987878371359200807827905118283731228170514107898423525984016573487716943213760881333395323327526938208022066331599705966946378116501896277745121265022720231377786597743679158978873089307032907788100059852619098558876270534302861325025013356693317809396532993962180375613747937643236803485728646451541912106786777560696873021667318450253931635393858739626693307827038052880035391341408424983485127615208623192962012904606428885640980385011348339502462527966255260463855776395273661267471599539456377434846985668024945747843213139766515384925572479973852902925046280696820677317932869975980940031409391559912707401134013963014220398405327401015050389281921804318464537383204372072943076961127421347157002016441275385640558463507844075699243246619150580864416926875695380267284245713963256033891197574680089242545933524001130380746131658492730649682432096074704183009447570846697311385857826879897159661227820017456879682126132990291151286275738591729895403935381232751330389665852470360337684851668241631755548676998293498435110145332611101678095087502291819907475683355350457857105442374322793286087689415622309622890506517977312921572278961585279591932492881844129037897199654400645974587454780249863442627725652173657184363821327254194875486205906113045963974410119825707495450353711085436154651882570658419602549744735841868373683642254963503702093809484581051709276702456989468690428310222515052726471084970440026922861971726296693893898901843074963772770535469382354435999735911548371968963371977716553692367094931164683375327910828864091584982430181168314227940590135460351671206030465130467351890151150427408567805510304910954130890910936892444997527390253755456491509959721472801219520763068793422790884825738137005699320731956232383068806720995042115250358303235852226854879716663661922890597652098193397728279547684486864814678995212557051636816916974172064349878050882297523025200020354064620865550346362840132937480522329630798319022912515604754189796669245758429580895739857008919607087372516806754680433403496668773238082538756443009594432140694763620869467912165820925774152226588483623421819184715849503024377535855993654702088531997747221032418270049122797191749913414608239365174248409980546154056549225398036337741640100112102342376419192977743192240835853087917384639296872004058551581339583280997813193324324695836327030024946972044417720086977576138014223977290040182740435850916717052619436238893800129133003671930314806982477270542736289785036259594428658826861957811915848852675051490511319950307488265937606506625663853265628204017370164845520032605710466962162588566113006208186610058202131473234364793861048491047030092303460997269643466308142130286260075221895093801737317123055808741695503118610799938549485290872038779341367771325082395505551606815226824623098501848775004740884872475133879535436414557784458315593451238506774296682136827299666687057144812341926392287735853836353222054768015707586078630123373269433530419056066496867194148006556878032359707590959364459016236389099430235871594169317118376340014426252295028647821868426947054777202524630565120725136274703265679224005756147535213469396826240115289676491762795182964960064749648649078137114108369373986714751439271243847719656516088433847642997331906384503591100679609829296838704562182139839863140324729554700617681647026479485644918761351256517652841693676830902279945069717226368383242245257342016308187911762481005459130184069754444319445341428801472874475852863306985902883766281654284828411122972631525063022374514441016101042769373377813383548844887848223837061002467762525902580224104775053768418355372084333047969964112229219897382531262434135406898206680781515981983935101560807814408800950983065452049057008581121891163601347155146926652134364651242298112674015988888750193127223798708567919523705516524017937277002052287288973004495568818682495044064255165933053415041389518436397152562206950913840145796468194224893004577006946128342374118953473185888073690865960761143096099549328425302065998671864422462037520154611857090614237935975552103892485509554064994705169369103665256187169839191131279308112437684561976868773263193136061542195287868595455400456149252725325054512099727926383391762454235098636141120199548219923109185499705957434567312317081211953712182895439516333834555681566132898298504033760404146875119906523187127837327557377115619584971773930606594965872531859222622673780293946598108132082058939574586172664243118559908473199327157628277604972472317936597103862439142418889079291580230099870202315859187746326412934271523680093974834318327287350246314314653230882075122074820596820636331184787292164881710384419527008849671176221539653364933964538326277763815199513389241819409468784587162025591093221189152804833099224965015749915783252912145959909303742004205217566965947392779592148111921967822322563379035884672031736382178903846341206608834690347445590646025586603964766466916398210618710167845894534441928207599810366743023370206727175310746452247830526028795233036985708650282090300678500083355238380358365291180343884988448325213728261736739041057565330219957465639250910770131673109388933858378042331917032227196595273031229003987732090551601018391847542533578955143438258336649636355148649517606491513829447772999747792731816782792878890294577474225229593686232268666672349614868120866249658734372234882621325201191675208371633220451934320216327048376766605090872056757769672406773610855329779821307799106387051913052863783694464940455401404072713410154783659210732009834950496135579137904673936228892324142803983880486563116346459164479264316875260759764357266924193045039953239706025035285841211636042184820010468378340744192273897870085543851002589286850141045919143907684227709873334339928540870113709271275051285253477483887314819887741802677952659292024131274644877768131194119379020370824996929731679845471429394905251774256719778919663031624919429862741750029825017363955608930642495482979238775227924362136011797460330071447347339914272518704530912184011354539028456072299950255939962197519960059698650831241480638471262488198831683124202612211169773072880105704315315935139229077770652334904089298019673849479522191268988151807405461923178020158123248233612273029647631401551927609389103244301972865609411964019660336289351371410637616864836838962138718652462011968023140600176720223384838748108041479086053403453800569020485936108174731849808430344758741140262101617843030851802469567957250066610980429245301854975321406329194414652930570217338128679389768111426699188496951141407546811069462796555382653994257490580760451035280755673925936331312220622927944520404505298854798183957791937984109836821384628040493766384076214664981506206550055917485745538981575844315133438011257983770264617768136958395287009506194066196248980427539078135347421167780056591947571116777619930860732251395363001970917672457763364575215998917558657341012139982765054893106587883690465421285735145830328461195883436626080795995667030740873456228452994527519006669994630656234397143348387049566599874616339435330662988083445838940681069307510392761715332868102177523116334376894951391968071577606648554949434212688421728617221468465143191670228186533780305993618877380657304220563780542390312552926884959602130251243353145070930159078270015870851263727866988646442018909351171926158310242618094367495290315087947617388817727235411576617752571922548372134053501914505276075552612363081564848512012213511342562662855568265128701433005225740920420205843769985387716476951254122819739625329092251341409805459202952760694777804270512587178684373973223159917598760272675226374528754653320374069513451450759634335080108940765331606767703436841204912672228964152133983763640618918084736617394703380236324132250017341626353696272980723375305466829311326603515283763221180555291611762462610093490057577809175595495711181931543943893004278103655350309364148203834664899088631468647517278792522825862837870220855733445624187516029207748280632483952270276426208895666176416486411570805569067540260362023973450642535790985253446096915082793671573877460707696621571807147583282659200477725470589963085834697112755991057513632774190302674854067456402353199623517260612304793684534879441721527297448129575545229853648123898330870694364806160167735697465175687396587300486634400300253393323226518469048226133181891958402294670111594933047933857810814217486653038855861815249140297864879141402232511862577813574640897160020519598316139692998639232130424791418336574447139352974944105649015217580783740121942555088121227145553427545474898145183005651192075546140943224546774962646127351159815529869760943968821907444236646190248488217374286353651733866702179610668575322341440805563285377056638068484697722200926072100767229960649595137253599448348925311395549807756354436579202386883999058605089464255345968716151865541199236355165675108361656256327101680488111121583566291385735785710709330775361052111077275962524625979018890530149550882572984661284110015759984513552705891968994720713128419550406922084852618934214586057908235125010683783951208402244936653348579388451362552026133692457769949312823041239055325763808599064237206292041165501015647479313226455544618194327793150957287448654110533919162720296827268787609364430673026220429053927656918844212123318591596333958283377785408764012912547396430338959078238443179353669654933010628179552353971694713958550229670159746013526773201536690795482846881086024643187445655164231727196762000476822778113728627247715466146821839039441916936888887512942905004694253206556193123012233788219134086010644616800686402041926168433925846914162063461784836451787825794495457931870833670770456729839921336888263857930279825723069636218219592352788034870541237168575833312139220734179545525445070970267851340055483722015279448572690350266989941071087409902421358067401462758363091962178026663838208877588698989224260877660082381235023871273213524470955036086990932333014503508601499988721733246186276128430891790053774576487480350796638354889230127751402576383642116281240339772553733058565146674802632522122667079890779813759157093906060401208491448928606530219899060617038834304453889350473676030792433840066781163298178777819741028795389317839358116253280687388088544700736189913549613713185753922465129502757026534100874799143526932575660771989788872178404024482624673657410866033059257762101899504453608077343873464480692184405219918026646465552632579718511712457689853706105858585840403982569780827058791036059089208180063961778878657126151205350802511212150664898879181719479344569828807320419949703724309419965583525280823752581694261045677636667336885994254387787088208969649268590364502373866584751462331719325198401245210172182765514182172646528195872202572290057373150936163202004342339052783678180767085373103537824094876666863413181403010284650633807772203395085849085358089509630003757151407663439483809634586621895370142509586362609158049591120307556650680727787255696999185851394360650880406802895863553963486822759935745251186499193266391994446874851398069490699034373658273031019791564645140776924160242571392945612483829761563996710197755759844795755458236340890359677357398816086613407156115394756375671763286866765660307143930031692448149153173610256224744039796702206529446303440684425451993949912266265382172290981376206467112666117826897194149121838861766491063701551684139058261804897897927348935831347806296854585309501838325549539731888176850314180106464126169057317803732451230704998146705574719308653704792886062113067581066715442522695552611616760400841575358726557751066374996837128560634939317674165477977050299795806549221585955247756251735692031730192242547094246248441377735863344024343588988794798554265959946977391986027321652173006483288621599228288381654914347231333343353392843038992540531288313422194882530103517598090030356799362412062376733989023034263120020209906228762830008187197248847658682883305146665688100698767652984519296778857253899430307785853952518331866680416203580726887515764763238725837411737765150776750302604949814920367780560956442170469183314048610136384104818652432478063766038498491310158110372439421116422135831362040406728704870326482652839573475125738914317827635858643704958065033531505761541707106723693632653832812379432825786124837538510019190327932174950588724644978979150660561371545351482488270420786525874777504742200716677021954590160980097111563060118537556386038122637631691667980142232244656155841233745974935955602174710700966893598343240558864229540397817107991330431472920688267951663102573324516173126662590946686368318424938226030605673380840980357783625771334962620180894224525656396630574046878965390201890889910989809674671761698347043383933163506429010645431391433138417079322472405911125147243141254453092124703559273165736921687838599186383778341555167084205589822634957899130504622820010512921882995360720932974962103358336910753510133826171030798336976598289177610554826425985428390065052301180262916556752660429832325825951046756456449784810463254351652483976071208512409137576601643410855981309423918829801985263215329198481423106905782083737374115369430215700867581763343154577323030135132054347651147588987523043225147263478382973512544522751983433687126308003137100756039118905474474591927659704637053192237832732844633579079210783490820332788954296668878909841340776033857078801167730935988424366947246222309950743202334055007988157901521496907023003965289617960965893426812493917679313062500541312970379548335575696015505922383335137112053282239121133025355294473466798412563189365146874179602401233151919452613149543070675611158431418882295415953790680882289943493579595957434905372262124414556509300912870998904453283551609223937921961683984576290075364138583367858769524264764748248775171530517334379945748847517515947896222472388922749533203906962299570284200930683032222191898836663888140460258159156288501343002122257591590179456333734075746349859094981160873009780726087857066228852173426462447363570746286323808556235254540829214787246255397736011576549508453798918327662403908281635655748469039837213565925222543025392691915446833276512476933854040330163647166625803639910475957497485962402021750693239724928131160918340541079030763696960163573012898085859817401362610477908928744429816712235395739378207193022603904577156014717997208439810076074761115251155978512954664866681885482996129273090095780196274992008912068948622158227569008065308516528668107797491805949127321633659561223406834478333272487987214049328015710629471341852293330423581423462894183180579683506577456482542976598155014112942957697175379389423948660488572175516382265850682264937111718085050742718785027274564185162743031876885716922093968712186986887409783489847098429883225421533355539833151801386483403320876501500718051041709332091923284091146018300624124752174505956810954158126633427215558845404421956454280282309963799883276509407454521708172082898314754371285327614684811665970152228979714737238684436981156413090674053650268295898382267633136922264481523626410784702511833403994275487226426236634576813244666324447734297937640479785154765332229283615201321749320366977826235366896340166025028909613939896638752107829826721849452676674467320712749878325410014504568614459521351088145835180067600223383766732928436248701086090552737463526770425213590577328635279313113254626131961283122183354073983406733494499501468916471157609060898721790426609115330149423929991874160083531355078818970122812857512733223523953441873816984014912533485914617412948388962020824834966912112804707277757387953475701845766762584486392981241624793654713146869032443942290785528810705622446437113489753827962302594875272311469806533854268534904355846556821948691037848099069090321759880862849446128476494533286651437209438200613170101303986741117924761732795600487668351141302782481910124011154322957816542369494831927726349980182960051500594751878474823867563756034863745842270382491270968669660898650563354471507666234263193795351774796222070225559397745431338589301771423834232593689334899497264784571852944731602314904503464053722486303339793253325769087057229045279003160278161591749579333051507753428982456564480559965471944371706456594628419852606288207633246215381928048398194385782849119178356349337229472486727290349989901931604039614431662295631779449214109443127364276776067754743085277362078369157397462459302306893659902789298268768109949005185211198421484688586167821351283663616858875813641749625468108562085271417475599826454149820899174461361603908009099173436027523091144812349767094429956977098555320264459784493205807023333978282210326668377917516262088591905780147783590342353583225987756554185584987284858017043809522424185592363601287634815415158500275389009320849574722598793663273741151781161108119521963754940196968500357611538043759031922611507552365490579713715609528208827743199312743623440966669053863103498710256650986025568696436105741378429507715215123259248795292474791013496570823289267184709332469704676508949387572376196902739608655167171572046244678647396408777555057252188331515512302554342614245174688727893947737357777660445050014697976574673835966323203211633325964853223753110809397509736796817790935964363921607459795133948745202388594561523302300816660164462659846847134152059089268734453060942096349938011329283041723058679027131168695740469321324404190150188607352514062422139481112899111356879105274193877670021419280254618689166637293775008482392061845227472470730354632954334338231703130180550076736430395999964512411198817454367415188014085227161538770132806667660632407959703357014359223672862984070934664436516477708880839731384737726835347489109404757938383048332723519891180426013386920911865240084187888684018039571604154245187290131018976703689794801934428186812222462903378385967226786615514958640874344018849771479056251190037167744100953053101601704425448397555183472976715519128467014873828272908521648436489174724166111169391838298968228401795201405732645088489556853938050090642165682441893148835673027324215493286839477181154850608131822240477737426018801892209120049782347550925344529529020922337585347775786377461520134775972973801495343613853008429206103285878346461223539247883119413476865620600267705334764433733186216065611461971280793333485582798377478686360289305311926913416390084650949952906343907047194491929248031199243913851055630129359992373957563902706602001027837987197435695519810584051864929423253274647373296233413880391679350205158385960238813240079547592983425363496625697270701767786562247865844847136498014962566236101571433057522441665979128488687136674506625658420942595795828929656115885428183726259499034874045341806303655111522835120421274676853976269896764567134306902692046125232713601967041708790105423186509635959739283981108318337191882637571515113598554551926390355546102784402607930238859362282455375391600172835553625926959281990109338000874652648709048719711625617458339628200810874866552425266853846018499699905120716347703917713303283428903713132357170515776717238637073042130934011374087061421621275448611198810769432350355949440824723035986755164695917448778441758600469914539751569188031999669146043679975674585715086779268988388719091679543752510864706035311114083014147214152404001948036904489974417476492932052392272246536957264152813688546040420782174520389018177931632655602680598819691437085453900974172124508702612638356491053991310213769177695186351838822877520725527119489944012913817610455287765519442890860779977617107686111726282120547541116071774162395131097902690106145488021720571084815758758072919542984568246434306515930238702688844589379366511085593247741025906402603005415601614422256406836802729769009748164891427578295174722810465165240841808537835804814636330277673533096105422696398823300872402061002503194922223246466905138787020938250398248120747334144438656079576977304480692540135557600947407686727698626338365545147392807874613635729909822796208470566165092859381520072081418956175787834761467800865933896822379696327025940610268349155637111677599591508723257144255113280671474289138535892764378083239121173061222526311594005444702151017647104315227990988654619833216163711144500152110244011447135049118333490006068400230983134274753759035820438955871832430445230193098615408389441655866985659624817597865823105998244471077239910022643094967117322423292136069292899993746881408989649943784340883619922192026093230089484630197616689755457851940877275682396056015481885726519858068478824443675061629064358412470786341685271532824494574338419953183819901373667910449233977368317781192016688864155551867039050558996867594610592782739159262257737008318046781544787821696004751764401879582777849352750178826728530893334864890611011813446623052597075982522336500410617912762252211475016480686917450744371849995703719407830597241573720735125849102572752330184043080847213289435988445629249333976529798902882419585175507681112729258031998360001066310695978739029638379194100959502360087797733509195156793158006638683834235773611145489521920135837765530175050632984347243830779543863836206366324257502033294468075896797706651511405883999136530625255039499477947397918716527945318436632925486942559461774715170612056909903954545786496911690323380533483811523927425389790345147665963419284062670692612002847426221070586432920335415433255929659556600537287892547990108812509145465657498809489037318092338560070148335144810199377040518067930895148352744126219409372161835927334951118732151229010795104385828492562260851624927986700265546617475520507701340828890320547150571591840112462060329308770556464629360847442660812710911824953066918855185039383386288553594351891728526789737971691093289356275189085889605436331020288192811494599074096651774004981660580641050627889085651440020329150392523796193455395459757767672265234252380132301956184444303750878929803383852347393652136208771494969460111112206989814831996698369413633921006697041881782376248833571556821332675641919169206024998931238065829271514959889850091487631016214148302720060161461460135713430108629924842836609717575798716592730962645845009012678542216992518160677144735058336324549463191893059508892220923356870508116912026118446709035821908534160544324984692555935407357916374934275392429549708668090808240766857546103312954862959571247630845089476436655450707564161906496556120341071064747175946716196580854597615311560777162290428839405345733800998259619515834182440110446981347432483719387659590855237912304895712240228880391441795356938074671804954006223572071227531313445574132664366146519295336055013222424471529247254918339982896448220024678180605046462363456306345044736755055201765082479624201074150757175219747637590568459033922771033952549488501940953285026386031445255692443272953321290284593159852757872884463136417552218754558018287563203950777002668222367347963539040795868280841064383117529119366501451009590500788305201633238708031884486561311918438218086993160171443454290580372091663608572036540714519004021042990271956702377142019564600183160542897698782126963940641735564802726847686815859106218256655985100567917059723150923703283194998726090567930229811799954881476261986082252397551270256386905146366044141010669506308342558485578608843076039024977934652869375492311401037674113372986824920953111782462822105230348627892466333086819870590633356709321872623782740981124679192212350689015569130390252752375605440370022630899637291086524617929813520496598506917299801987915559659274805200063929946207565764626623767981886010727143060823480453403025650179885228565120292838582224632671692340427174467254653601897974243064029155678466331765807491882585445659746503354376615821110421491702119627852832539646032766677078183571729057516696970541519044919133305304646471125421742574500437590840487268375669222581568663261818055756919455444119425800753062508818297594580854935843138305730931892548469517345098273946905877224717491983620872536074704936324811590726402521050961956611999930696913940441304115689842542640435154406361695712069681451382168106663314043699908344264185880206971038403128438712227555167159139343594996971566332155851968368507758108229264829294793309861355927978160205654728018651584166001206695045181400454913411739421342735801047370207090255069068996964130212112664121636473048730002014863429373249895284816837145744753299374934750911960557875140188260216666935182337494001855772061599339040061316742249961563144964938620538043228145836455767269681120508350385862126840204931144467978977504150898265686596584860734757046615473747351293214646408405245332381713525360942799632357218877650766818836146080815685318169055974221407469099101172450792978134121131652366774764292582580192941820107056964767355187157175594613937419614370242357309173799144650626308488286228145984185058903409208613471252121496416093149832147484092590815850582354036038264344144848054814914218545478599456763217992129605386248090060738822393716565583667039449401394731094590671140226578138328154095209014039866810332061080495156521040546823288036530722164818306870277664284681050596603043849170212569351618105790307624019632230426798849054935735465465277701136476955702688320103179332731131177206624584412321179672948789700786999763625831337362778021179852878756461092465188614410582315467422536683137269049315787377387167524111722733749296747819657163697264339321636368971913278602362327891872299654273140512631744132418204239303206735918945672985455262633648603728795036783019580237432461362113087220243515323477481015636867592073642192355342739460310820823004513624888274145279024817833267970118766136240131151427621122873595370030101711513182035295872891690719237409481445189007140785446839732801056128054413506368369634435385543670456564971424764103749883154391320967188606347884192241708342737165713641449837898964235686622262493328276175465710309527113860565121058427209809597064104995337695153661440800509650450421534335995650456154487569538944349211554400831155474861024753760218232170525587437911739474584102508518502383431854565230044916104567183021761875885890066161869423151504202895718664510203204225081881975230910793113300772259874086286493849884953631329028271822054734685101677500415728753795359370014479321030653555265270064849949012192669692572153114891713800072298414308260209965449152298540038399142953355300068860391129766565189740465127257209608979745848653867029013801986829581933493918688844691716899869419361468828179190348838216930485039074832994216702957149471440960179380815059097427572115872939577076510945167649405368845062374500779274176648421619884779346926133673139084905419907047637551795666217738701220337681510841677737145992432104816847576013604276184305041464754925409080892066961412949648237044428997623342113274753193217806166617650209651429537422788321125602685842892867449052161825473856593534874782198459872125145212776701545034337505782475162957571853229164123401643205046646547549837985841037715571616617390622974291657550916900143216558054372921550430366205146639271381859473957763009561717469011809936750833725389910613161791146258839335161095108158067324690299352817089156582971302439125352195058110626368935391894479167248776558521005081941201423465261656292657755122900558881619525110864640562841719085809251620900676419929212789029923871844524616909337037185861061472595460541438648629623390691476258692952154607072707186871709157562309973095010819838644542804218285083884754557826555975647858098786699486419426237717568761498318921576926884673065921775770290966516700648517607386996138426360708355257910410975982499511111488086957142372248038509131377565479409343997165439690387322699561681741781230267342855431805346879720577471347585324308064558944262180266723824917888105559837988979865467036688224669986347068867184470363568477738967384951183243756494638133806049341439512860881513969723600279216431691338204946680549227286700935902277122371392514632569364713567372221532485163723245674821744449023714645943252141011132507880705080006314737613364896393254529970273998834251365079326630444679514293656852551663970153571660159554023886565207778057272940996444289249995560849995031967540324805092617216407087394331535081624493795713170876542147024134011624990633379284203679814271516931174195390868157878351574288769498908886277605315065157257641491499082440114978567323046019992658512576873168690204431529899332857626155216408663769693849398513777964553454634333305227738412794751300930743465365064494641249343577870462920408109649788639093452883982706539200819073329596283856178222920970566678670363640300964599405327607923119122546996493857030814723794770613554788664306504516111580382254006413292026957174691677835843434316774734560480216806231577696501726343412769566281380979853127906438343079107770398027588503743527112246884575824186866345219178663192815890635764915018174885451272133189245415583974933558507180951389065480683789048907644575705782928881325380411915999805303773922558203424959032481097030383072063918289780118954983566087989587346450353366259089452025758205465305463941488197343940520815965547185132558619032129125955551830752564818441465731054384134356640216163393023951861498792495090464186314053204057311942394536665188712494520451377020852776466487550706272967117782646488521138282316451316774321383692080430316563464118387621205121171602435863534165307338873469610075645855103880334338077154428472376532370756689329117967810556354746636145823511724458781574017169596376119850805838796761967554158557441466399279145044428974123288374623490639178142868999589406658424847711032061672633529392185273267597574384309260306570836911003440997768151704971482267140610779266390723222737420337356899106492957467733091134660969306129594129616064895784866913556979398129548298649847947749997942753148323185462427147102934659089650746530741738549630259124780898718307673521825833852914187815285927865877329761425270278016545891141796435327613074924118485786634559642040377900039999315008092510785487178778431100549776949450880531718811657327227992517577420571966300393815566458901386505553928823305898033183578548983622658859348583392591564550421922012970457425382708526902795365820518826617099913241457282995964559235657979421536325039143578185159704926635414966461151645250553549173525670901675085041236384307927780582820807476216365676647328537884505684981788959363784399447798087342656377918103566035474043290152268743571163741460242487850475968351363527114452260971760232270740467669146178248299072424976144736936444169856177432863657547557216771750532208517111488033852669473872620198276597178480883374739788910205765023959781455915853787427488169673023724067218549284527778326360433940111160811218627894921783916803712817646860001133875168961553220669468086547741873531556966656208318021350918218939328697913484438897423119275385825678689566232322013649907896341982339957717272513041578744926097269259397131576596032123046826167596646734910262918364832596117303012169432549764588689578988408293270738346218353891465931852968526937849290405406344991737202382636289250165760737107950782154647828832178874501582711505425767229760357892250252222359001990620332333807916264226552189211502344773803015500221310905085353002241808690660987051750298112790481241994789793239665138283346917183876007806005924082057800631797124865035796860811422121693895638408956275375547726688850584665779199809994185334687929656148896394359010465542852490177310199160053875087291888039713879299081790099280493768526268422866579125693694135959167907991102822716756906431405821729576678766147718553978371376630482378225174186267040201841436346300175135524457020844517321167871440780577864401814800182956666089038807991810268377662760400789130607221375119183806759563168912058538986793067307136869085994899913563844929493125242941572124733882996812975362364504284381190753198524450153502422032190284611859611860729790422415623496054316364176161090314163870512878590292788941338116637204343288597728844515173968350347691988085171277759328350917285778313212383965534470545861503283911897319353663911445755233945185023675531371568790353379723927170780256411280905704108709777005258470593665878346770445190593425416394208124050589160209282433720910766248107137741196162730066117122975447205766872298072240678785864799403630146913173958226643106801214316407384739531718098124092616010797644459398380090382482626875298801347937302429276685292310870859481769425928316716966172236407035784417644741483554053453236518928703169025331807354217104344505563932743459376075231717997129646846683479775450665273312213961001518075557343439727446026063860234118754618607691674253686999975845850489452945285719430954304296474996282161005566276477790050703679355437420834313363971894083187225484642131424674471296716493702402342822069183779036905943996862931399693079400098223333069812878915976248800339274381596078197214798119888736479974461766031061100285731841167485347543918650840568336332531734296298559092701920543947371145721048548869014268677091195022538757570717173148173294393861939747039908210906092694423041066037762002277307615704957854871292115907972905590774470495584567465086302181145876554152396844277043722906373354030804505239222819392995918821054250286972921036649161833048082669809485603193791687728448382407055456312032528404185301246469371909335524206979876542772279827837732592614345176214311871796118082364874606982153309882237305169295319775015472212791450267627263108762489777608543104355823790352861128554506562780457051177493941881874714717693576482945522786780383196163774529689566112586204474875848208610331938994198270995140381780464889883900327851954152998475468940903398516662701083004693122994827457773568111715851718643409193473358486583621536946110093445100063512552834003588440489135836439832926133784319743890376978582695164550891224890063485374522359106270526106469522795544317825894388377741215450408214289394340928952322826966810353371407780008013698437379611681944591891084772000744628601906672782312577720812965414336948074847097161826445345896165669298299289778808639325536331125740184496427675385814919057838060986092150476763942119856212037461137252748231661466308337862310558793387677161314425068161199694007355074494771479388469516455585317488289225319699376078251409386320963654936677959673907306449627038719616455941430582729363400310430596674044674426745517923619224465275281196760938053876586198720464979986771584011941195415124836837081241193941512958196772652729903501509610752089057404524798547804480747025122746468527139634833134198845669573522108109185511527626611450579634452503131145655213226015901520135198776649637954671320004343546860230464284423236306815875517857765796528436564249248766229271995789986423344751268791322221919342154390868671884321681680454476330542164088721280132832674074871265868451569640257724145102471406673210561674469054150650909985818304926500456254706053082122402311412813528390941105778871597431921225455274029814045424314850610025101925653347089881876356261146837042503071118132474279902600598727638336994879607532751284494480853860961898586092098544001409165135659992547083150394528792011751079753068530791779121617817761302490628607421035244799059951286828815456645491831110440741919643924093724224650944386369557976179156411759299130731444019425364136202669529384432374503035819291236743273237794048807817594199808906234650111968575151953173686297608912680604349455257567861299065744891546334221518628397391490743914822306490732194396322551224388379734443086222799031491581136814709793543462513374443655285211132572993499763494811469017690438808719722776382203480005695589374274642445273279906364231345022758117025919712866365552884238684195880468521374219968325880385481747812186501418376433338073148342827640671330539525247656571295280355688782569842134229793273227210144383471335826028861976686174172860931701452111022844773818932276574311348165117085974696312326722742344629154794741506556136614732289584252856325208685759845830982749481636504075990531149771904398810957496440738678934685129789154994566946151787554640448613244505417432898285151034653332867791663300330847244927662724320567368506329811713260350563152523346284100046312377504907934350510435609852249208743506262968895398126169392217183570279170159698416756479306400212669375192316221422105323108595793970821533521761958923987582367611452395684949567033148349171349304744028659181941422420467649919670247876912327857253181526185044655982433197644388924239450050380052170172279749548624329845443977822933414010944112197647927198318376167252401886641840504795638366595656681593759454224070226920222774299583197991530342760339236125702956341995935482347923794758456372655718073849490452648724686021069641718707952698060567134469467442014562304650778403284413323281207599981856424984722040714350157095432789257029716047765444679088892510088206613035500264557510685349787298345678208371517668986473203522544141673099048627594698904346951012479240607194338926994349891265633184584304040542798191778164215526186236939977251107123566723978262951858562454187854123909666947447741177698219033684109691195237387660506339758954689994123587502150001314538367697163623568263835853895383275564843177426162522192622253484358549291646036559945599174964992252887575862069800938573468445839199907658994786701441179999010351367553363527462447329583039326168463521703767253758693924735734829036919116541490836645870026755173529026651551261884355961695632362211467954047833216931189575216102256678030607735242001532489542930155909313691234824130737503920285210395892823025823929645093193138533227956103142636143870649944274849175322001194885913610085212039261265652679373464278720724776178026745456465405388786173726656656534235695634086700580032764191875232418733218456929568277203154594716953204259243632213953750819136021693665561425341545673677933491415343680805672206317566590229425636621761955105873771934600762200788522031472801515299020859154244713486096886357222056121456121643906915955725117393626756636417601210648938124859305807718199696201517376103451444513818954426961291274020295844155637791643963688931911657759120821562563163816914756636560768971346389875822968221623562903004533028522751605208870529175215058352098505086544872222880192499053028957061373365932752445768631208382826729339691277962089400281378500563756334285618390818160975026258277069883757691405632420572890312267187433759908272445004958514804209309667278767143736985477980795425384237117589706919504823298298156625919644303324109498257419034534567482055852222387239403378395789137363119344638753425691876555305420377097152233154222459906088412640842710228591074572774807721579099207276896703794466282491565417950534684719950092074868614187761428023455215164297191873805463665641306585933484729433476213079794008881556826857552646818955852250438685128832143504771971549101945744294414289891066462873251457513944598732849074817635342620678940701236140616244220540012953535249972358007699824850455979022651802173601070765139749401112409460773587479494758784594233652349275551806184975890092729378338633764004106927459182620480177508817455594822394042358617081294581973018840924511257795419113732233177272166899064987720064387222129927756925588168292976472231753923577139529936875024104438918935139945220516121985493813344305576731313100006477173888679425751107748981998856343358107858224593236813816887577508438543934595997403577311786399910892467562164405635971681091737440730840890602916827212815703599615282729002892853398006977381024068711437348048532562487347223730505279781344578633733609947137448316695328866734262097953295694389222860433048609046589212136370856434478821754970486897930157070318423072458153944649560640746306546402912650611619663598790957192582464922539461808811164076893451848654919822108975857294415403325061702845027799728480412380458478949640595268415236107271700557394695027150503797094693684722291482860621491385681333632907271283554781294764353625235449247682767697954102806539071850447652240031546198393621705470685370281691065322186672279273263832511140106872417886664059532688072584558737798155334064232990650374995963123948860781940323856861090865757578094579010691304127031236261159471849424032326448913360462700530032101295327484433677665296733308794996088089608959605010952476513268853549798732964704729672062025033222265734653213206121055430177626594234538061265023432670816659212623332817708965239507839832376546125948973349079748884635897386526425524356842294625347138172156832954275098687193539155366066797272519627353594806352333603070647813526106596819401935032432829984960184057777347195849992367791384404654639206755759266060473931894987547409047177750666151741445745858791674695082255976149969960192704900216945871105819977597839227660935111390906118058527177214632087362529989755502434782598589435515970182364722546757914568686485409999072385946602773353759651198675513172440951485988610263376939253971407626091546767941276391179328984031415883605481422166381284218639254169409160392758530752212045430470879362771072345928135103700475588314138196608118830342305049981346195007166181762102959191470345050949968446218673499148089460389487492327135316659676327888827806395915387718549880935831214271862990621424133988053638061792646963955574202707063379298350851990356645322346733854606666137696114399951733775635387626681411628084349536905852129033394363413808824255503772978386036000393970983828180603585534684795585570264596001781881114296591430208526431336303467824713896334380606750642827621679028486345910015077716825731007290436326459938288927898462159355786786199048198987035287383929132272707682355521287690552580559358267831271804611019191597946337486519466579912762730320254327042965492090718649294536815472324591196406772478833929847106982472064980002985184704727864313502925922951742637527713937753530681534074338613068551258769294491893927546516165112729407898259064569982260790089769957597333926025692984700308574370456131387558433485894834945238795986281724131334946416120321684023336328281378016470899422297630899780212032182695254920149302087382150802411459383094407581361879669473897926524297700747316832870056892397829285270584043821384346511250143698338226812034868181010564084401901730611803487538234109008876752687112992057297807836952883521287531982472078310859875163165830058208778566685016020604815284559650976380397759849862821119525204036558469801669053325808123944502352176390476442698368674570610449433953307114561514394036392936517862541685902811477683598505816331333826599129723519956058918085520133499553522030374607104560460495194035770780176205476245143721938431887406370667508410484016373636508454948809940441485910383774100009613699295387684887081341398049275765566527888677978246367193794150036793469403659952456140639068588546833917408743473761844867573722017307726521994542052896036882199438113639338224836249777381801050614671532638209111271412736731595994891536228056188163675756836936801684643745960372120239309145776431997564779866550131814169471258599460018660703677842008957942579399758206265023617592476242277449718879270260014852836364644159651649581033905166799973577932308798137268073351289074030903272122081811034085088406452008711383966214651809899557032376386674972401114406851160921840066219525588738789368212028432389358183188215889887514639775168813524826062017975556162620643401387785772294174194904502984170535853133265158319215484608954755864624881193741027044152132543531911469102979856251273847851767104979303875341056126248491624483856102881792182648784555666156788954222520836723349027072076178831169159502557396911905007704358407169212640313746926987227147126077536123859352252109845825703320690430636566250091998529324909606102088096293674669187917313391064968913506234593823059220685749809193609249814182993693674855596624610435572315083205232677323674545538451225616318693396642466816769038459152253398160695946597219144624139491041111247248214120323392209566134175622894868927451166992436171090684773394742061943208914341064362312413579320208162153352003644736863409161216850677064381870890599672001352244515942365483993462131689158895746603644031799788970628742310342580829838916417027982670762108960082877424202611211949998991792026011948020980091257511552668581633777203323809119955513393448841443683068281091731867571818900525053519517221967683988856356570467207679525396957397326560329746345882402129683128787575121444006448597592593763471866480620216940459305767952957779839027950208927389378831660199810402397934580625886233037854476958466743211065471300104697771233723783375364263252930040692006911883334567583857372855185032866918209496230920658858022831560900977845379764057316242454621977017930503988417743172715231641481551136257840153236764918495559512018359395123836461893045669130504550323506414037062395203273809668335437471765057044764806286335332444233058240796728654417214039293620615713219967105491928434128619338760320934355039036903777648956726686625030455080218755683647677544195382389764119869050199910016865279678599100289704728748712681044493329890281640476153162136440794215606709013614763155239871586338614063701988837200785919561690021829932405577299510475769264922699490391213634419402348000312638301047641762496378767865937063002795005754797642636385991356241426663164222008653330174221175653025773173687866790704880451925392902576505205098763920202630648042830765445238843356299020994843019543533254118171028725902828498460107529840196696758915790262503919205162859143207689503747777979087694814165834444875941621359508288312155429045048917453893701862741527144037722944709763794344016966810669611456709453953458554516919443356119689185166808686791977591832810308032803818172325489382855250822896724329441061790253481405838836396722713747486684920265438191150202508409717384437563542791710180276369709604404636137931079073823458525986821289125746917880057329384116772936360654270073157041834832728248487025066870270211618156188489540230708655131722885108176133931987545706200001198924554546622666885614761499117103470903058700400152819033295794494255845568705908788632967768226097194196242201324339143787939911782294116225734563215706202258120953318033012068277674955060703351016032004636659864549584758322125521190984721115095248170772601583235064845945379564581309606567131468457710208969309566783989244782666759406913527138968757754886424527527001862638280193038704639701278272046171249408287154048340138871698429707172401934521360430025540005230188879702851325829293997963293263132582926312766755885596135568566010940906474704329679551554626445728132931835204296014719529393456903301995931901577124848887116091692878359969574391822991095807990782585115747741845988682423372300530534521746714740904474683208390452863391718166686362832073093853299968911761251769940239475235424721984955446787103365055538693238951151179706117370398545176599412344978131473856429503442720637643164654468550274239520015051923382702016504482213705819417513989816214336538255136376925418805010169459327515448757266934079046417540057449223769394456656271377166772180067884129242195928867147744196351562545976913622587252895845002057768782355583461475904781798003387231196173492767000786717970163752722111621526189018344397232544088756141566797993533857928562424677622362822595072196877278300366888355336951618359324281559668954841028794670286328325013205499168577101634871311210045710736075737000509802957789643154645171386501338104127947671777895518072030279730460449529249933030196217265160661716580543087593413287434645915741841551686622799764544824248280991783827156864441592892279825305129232980339383495753744469262481381938362816040307904679972293920061802038326873164461615174533235035828110745731158322897563277563710693204197842136456226625030445918767576026439660809914319234372629719473833036094590820226796064700071780077867773660595396119125537660625918362694575956878688788915188780683997421152002340591458239422281067302328517711423978198742999954896659865987867148052975777805767791190383175651376416876199401138480130579484849998242116957799910154937163468280007625599784707063160524300024502765474082261772952751889562784316062645511181284316156354101393114022877020779581251848625622122922494518351874009908583298103740166331961027885329028882931460211913714496162762489605612241189073673895899377406587212031716250312633465969299306809736833047490553955980587454475555654056204732621592847017263430817619694083373150863235271864457800458127705220702123628194529671632114554713665836891558444718614273930981277061604151773059730618747229261899611676508345688377424444055452075780875818251067137696238277236154710243551053919921156473890769308473753264438664226157879391593480595213498454725839989146222125049961234741829869167414516433206470400180373794084866171517720740728506163572561726045381204759991870485831141067836409304571818641372605207630259744887187106904851148929972545774306212081470281401187798067113167998435277875025152195463568841399333316996000270805046324579694343336019360075665875516110493417514302096411650784785304256137496180584019704062622289727030861686261887928450698496289989351352026310658297286940041592088903936255498700996860970262972253848668075235529154645406643878574088849669122308071350543626086668238925274692491725541885242531411083220728281188800500925570119137058025863985760232863404580881667888318639075981261674086420208146505961437433018016438553310818786633465404300037389957842064872358564476648570118788000238367530076222243681608493746038538323756900746990117944148422645486563747191028574295422866131943044120319114298878000145490769920339311081809387259951025796937733624298635506315576721580978373180890537838105191363416885206675186384311429111354972011291475677043301251927560833122388672641785650860833873621418722914329646254224174433641613633404941178768259531684597536510219284719860048695600344723471443007498334076985070328088985399172235429638359786258065347773665296893499542394836366975159265257872657328923195132159728828318182831600768691969687395026852755788734258256267964703574835210829723476487006133366624807241419962338619403570295286160460921115384742682090364936723940242164530197521636115289193933151157200077847177270141413152622448936107897753431666163801694020580780487235576832841054281650963624460703643916951419417524580245433342926532077483955718645418080273412372398864660082309428412259641721742345481240267653466899305406606297850684009227605077958530885799513399310515764034466361005096093253372178326001429227163732229710727957783114079144331560986133198154775432676584891022678439018148526244433441496984435527199592474773795038576873940367809255664914619188149227359203143016376316060934489999114608276876701903483968173390560245994641677244305211152396882209623186586842013935418831693122098616953856536507569807110385173029464053081294308732581761965547228281720252663786651045200217617421712744113706259534928069266371450975051453911478312703478060041473353996230096705948521225058524604175139136599052831680968249655588255995628951872880097760115381820423833602465805878262874267718414905101993794799449010348114062367100992016267852428157516141423868380462084896712625560772398078136334630526646613333952240724938037322890666347469823922536763251847439702860309310041967603379970215366861855594311569156513118548655137036549468807464855918340782085263769351256528553983684133496089018842464365707376302968367252916332821040106045115959583331353696405273585866963525754949111638724908204170276820661477894782896534708529105393407750873713424253485624576503420699582378305569684636485943068912184187741093174193335256201955659227807361328834514661161018398206612160783764733905181172090062759395344205804801332371979844190081793984448534508810634234722715304833159093665414717800943498547394172284379752748502701700444087175704194049646297684045818183783530116121093216003063058389057414376628533593977250243823939590659057367584657471921898905972748059913088302790371001865343860865951825033953151646877732243388334496653461778012701369080918102187214058263253528696119663207691145596904641408453509943454722082599157230750637349468172165104199783648619924329451704519762699161011832967756730216928875265684497612861874660481494813820773592818193460784421610144272468080237257917748010571814431637587627555758350233287205203289226436178568727109101064525485673912283592192069972315996928144120350181655663724186552793359904718306579046138580526242571795680268134950614836362882056734919584413529053453138681477469829749398636328115758892152095540855190672582059700150945785537913744611773647775250839622537455780149745137526822923241988994858491209797688737426675496594199813384726206438246294968527175913257550226628878705643817874983196857229307569313408367049302896900013011143974888166498747770272313304306284321281057119434452795114019408543001833910921988284390792010708697606982658214760372417760525616420449018398632748809924074327780619983700942772041902017207467575558471019548808183364012919932236380053511073937499618610516487402517134484068082274107788125912450145800753268789185919290002357298573704984937562214430877083507828257178569221323314551113995646687506134464513564674562466566169351739322726630791609793606951571097548796439756942507254118356730039061587280830264608160235543925835146131755832016941215142306475339082099662479075759648411436304781933451721582043349755842196765258629013082903783116247902133550033066212036600968077607350501111908419089472852560371146222050377820244514466852268615878392003145833126960246988100807385166552528438599617610110800858382926211539408442618116442726836008591555214710019377911725051585706255365980188337449699739019976797359656156263661384636709449918104867119330092446813009595429186864159265039751516590257984278423161627728433034104861421791103030045333933188709261438365773773641055524814467877520764790068387172200757110349596068430965204676712228309880334212376086806732405282478566610261380361428456818251776756308492354526014729315742281932861515034068414084926103811971830925522983201112545474409660956740626202713480635862970333783437677555133349963725924101347116848785483314462750519167368905154998083264992362733815868703224865824720488915313944452326285049011025340490417002921572816447120314776454454920965111928484264628828787295353308214312922417487779542031235528864576540654627021892042801057287769045996097130297358356322998126832814280171710693523432292054736136489001963184969422450588452754896537730972799120314036320153482803123320279915155931055876423789124516098095113708461023976311896208462944480809455871815754741306138987755249216981120280201148891004279031063945364427640022678299038857559917889566939358957038732989985574833337358481945129611513783374166578502299127002543792111438301411815542757217156167645398498256964008062812382359816453707459321551750275204253682938603271284441807402470325360494333969068758587181719388412911097091570285670666514762282198729780865359765147153871737100831986960756760226971229144331348158089656403476453319565284960435045480890459534922405645134936625294857497859122618993587812815203869367261556161649237409286160313226001005981719607306543376608816992747129423929603783970373153766398016819867677825418601049305605301377307122621507241494853659711024678314863425463238671117724789686098143010935994759834100861273637471354532726049705813099261854935171961490886148579890201897931713143118749538391523369022996023914075900983826138243894888978025488901851231059649687058792088453704971155985942180407489604820958120079864476741342727529274642872888230607847824493897365050692665246226701329490912652154121445173545565458230405698524671564838768482175523760043182604188805354417143423009133236070940930549255877718035614120212030305033166867046702520749530596544162515225752462136989494952808520697955060543626004118869386693059015470220209841082879003961984713367642830092565557204696001702998339703921968912438798763530360762932776338901427533093952288465982819234306021215482729391664989686978796778183295578149166776237795648131186819496415872818039856510448235518207020051510869139648423237248935668640457528957105102736864082732552528704851434504584112521153820593689369022020406037968372356769489181018331693818461644469087600421316636354561914962037850565397281311633364218388976332951687290868861527975304806577702894541101263639023488666024238679343363540848412530713670647760243542949110112343231811487939791347203332863893774190955674684553713718732319859056714756945423488099912028657313707025579829457025180047209168238080853642819162329891691933801669294295844653078645694052124199093995470519046935004499428338559710760616920041998534777917556739925170647864760017687142349967350027727129041448234574711151855464850366353843094019305236385833240464854539678061722862632219435436461619477211561801724503449519225453458928366253442082165838117203053876749529823486606611036632587289601339253617203475441767703477283907253414690013141452492630689365503168919595445348066644506304796050145104697928635372095694876237449562005941038316579134560442457987525317828546955895067295326826225002721936926681604628626640415352568874007300072126656292997164695506361198742849695381206329810308155233575832070227160502361600082795114603960039066896643213522011746978198814832286374494951553162211683835877565714520586601668234419536298266514668566124044020269321012362798765796616518644999328430745217939266921931178103644833471551202343128109617215283161697371866240813094049392837425296309784873428121066503847206267435915667038251968894513880129979342886476386040115599186707098760470338894374549233637454797347264880919859935057557666742812369573301566069452900858904034037304122971675630896952377601072431013559107081745770045784527969386499845517362915885143090259205197324160278462782975604879578569614531772915297327428246652092856750124602804470236113349175991564158417976450943097388685707306470002536196476215977000888290443361821130631989663921760029313770764582764936786704037364059025109675180117799605858794897692464460211596154529647821669606714148085929264728709906212885067580735757842974311622250735593142079973850181524594884493909346708924907971195853568142929604975215181075058436485958092614058654848329280267663730338429750622188742374800305931021991368297330388903266354339170207127221129400883187827508451616019441015894555341864447232144652038441347230335901900997516004391212448442875715709488918190322389987726627460921685377501516995245621080527446947671098027602723194455097872532800572816610073150029755243359479412050070096450332781761524679116854067213742158394106378561759817364240157284390622704933735734310180552969561297973455910255302211623209301355272657874862958842016667621682707029102980819459581428874750046157384661152753938082480926058969453774515152180419313029785595603758361304885940393329761202509625008316901730831087808201170323613802583709974359630636945232151770708959084300595827068933786637128992092185686926647030030026534766508941277526560591346589054949187745800799637074940085708072312012547289217139394630245544345541329731817323433603733002207010919461786546066741058807939629815619156073597110861094493605606621326848865458217996637599002239235069163769119805533682964354993752015254350414372731675628587295985880941081445041694984752997948749010524176980086482610680594665826543086543168027022031633261360978816859846362339884684112161288204256102185724183376273433541792335244238555150811193521297216702488726964973932235321816696478760831772509000534448456611415543535708420879703207329445540104591930693737172455730250678714704851142650893083878065715774078589193487757684050348074916321963802626838165446713294827488379363142958215225768818828758331525063328382948920011021363305263739819437523242797714384604900816583799830764847155546016051237913794530174417984468974786948882021838232937347276095715353395073904792022982829260092668980312008437870467234425152430677739928209379774323492856812129640441170070774169839107685301039487503151470474603185989408622746182741694528226262060800817779957019865838764922019362595897322789658411025455820052764515675006668775514444516103588847541641643410374195701983428065093086464954481199021834704336151587552480267385511191502968266709837329206522738690314052289950740875726801322947826821367975428667578060140640032744236225992262330154653915031446685715123886053583743340566605777352254698644821389512312390304000189344213374524270096119719247244259937945343566673773576378566570101614212508106012515013696373847883171770379886800512767100470737410099333289710526830413882546602352840989240459422269234628223835920562368166763178919861541389847565564422641906006666276997189108046731691828686921444075844627034854485168891634376108334024032502682946980868445570895290437684489873398924149517522380253047112747326671795996843953461966774639409337920339606277512875977604477528342177028867201096391467605649376737828265192103258289219564582372307775877655096635408166599387825277019562769927081503929038045886421678839052658476180889841658388904341719017360082526975170765190847798638956676256249732524064804546457353603043276078945770286937995976468667890820386258045945228937639182020779070819877805615134331885045989170154039163240921500348071520307748913631951082918144410660714691442399039774491800214713259279689624212811632423094621068628775303978949347297219343995429146612096556199405481500550025465095352192492803516030005366689301139760244624058649075400905248668453809810803490921280546553446844734293349242042628246702475267870675918484466796797434364048364463875831106186718890253506177600098644996211154883603178948680464751973166194396291135693303909548681284140252793348636996603653612029779982745132583657178260293031500987807637930557441054924574814204268678447354800840734012817775360027756167231719453023216773760028395026776104133582429858788070847207124019802343161695085182817720648165647959289996211962066345001445554937284179984398769421631457721715485759857540015088384738083183458571441063755580149858679499998863627670733344421144818011731218983429832951525820247480662506067815712439512034262835842484059358428339444695103847546883920585763633436809875441868980154642024067004031155724111547304319577201512974309499149569150048538947358960218069508650463281032965398735485759529493865915321324867520102245276454981369242302144546206331791396054203356983716058681779472469581876953941529340862228925045816403701759453023497770595574537783164094532474731743994331369205540359447156165899171434506459279834981504817928580299819601268564198283544095796343118292385923670117851816004489054872752626418855347548889351951892237075722811142861989536305474194095669969843512649208388900878532092900947670436876621359599314268732204088541588506954679015062804475809806057270472338137133031407112872223206908612386507727098656194180026505383860462312528743406146437482984798050879566626024831717048182944394191432293063711228320092016133260664464860885424116842408602260237582060491080722740891703070322322697598723909337246429266438207327638068572312823741709644122995100536678452281293035022453334418980273025288362045894612885953077862543015690021143046537066321700459868788370989893090372993730063333592623322110340758140220697673078294758636247855215966515212184021666640485442560069010304563044876304020971522298030180392470599878321649700220135282891989596166498653983457415477334866026063519496471715362675081347601649476756510630691745414970768767414912754420451930561488310821767712479159955315608186348553316577449387581844322634316294095636644682270360127757240240855313028822070956603590740424731456886683728559391759876401087708105133086810992051277293762093998358700900647349275930782690172114740483751854083536819361891973048205314943351848409171746372652744222378091071833374597047649912290437913507924502011788988781167638899288027836924222230102837331950870074485843126686516802081598709064794423257647194526582157960330293382524496303487882985079428458238584871699969906637382668629317184942267025201830402196773833483086092517389043441769092230040604764981866259764002224637279938226435481355494977458186173408188928450476881851556402941363233498114114761612942945739131819132165321352974611696174747949741978984768508080791008230334627079066849561685357308401762629915381587876294200085366999370646029667425888602882509662124085153315234365595821627147887759379917773706135244531033646210893911013212014787151956317849684642828708816981680926895752482283506226063030607751871016230312939553940846283846881472427827701940118173592321285905668264066334422660784064431543949650167251646604951333182851045877091080748288411251593597527512199441716508992016769592427135388866502830413096836267644774881172289266282524984803830750023763016669955619323573614211363959926945955664848101421832686229454534561139915418761220266942623750052340202076767410806205973394612967163514885883245919408904726225673667454749038484190472197714899966174883209194754422366483397811285325407720733619816445345905953540608584285009640494240165052902231934494027502989821499901478327835849674790661716142390028670692207010760367402048366304779278705847557486441847312094976468741925660440779180716568531772954469664545306739054791065453591212519715310162477528187520174319610871316000170820555098544138595999793375935385116884499298674758193284525809063420424043375014500277211965561266657230863456526465764496427636598542658992366138218828992346268946890834683189483102241655261713237090429125133079666750408941498460581217153483817581092903113370088108500856187311653175643308363024740224674432155320026453844656562591651080791528377227222953266456464687026007391105515575639534098634224202415831387727739610714523252599607482593760738693536202337319381634651660883292941434096960423414437810205840008619578654125980129430110890828543272283818379586976384618577670731748797472333682232427860413668371366345862491747615871263799370235759602106192145629474625963171772965805283628175594359425545890096159979435507039104798996839771166304069579363777119955026569117121825385807875335035051273579249743910432640529594348411054250608217924583172369251768570716661893536544972376483473658564463666614822448611226672617118033469001373769987258159485540053118950097292809028549247448607693106571293795143927398271628202261690543204850557449545422559314919900756432079415621305582611341575578444537201735720731543962281398336956286049100873282236337574305618624614950909855354613204579746861706114465760827228949446433046423802701516938344628108125262485690712470595208837854492269535333885745921613508125347745399049107762882228163549207628843331240481034932369692817127912334287816993884019987585126651374771397460804419287154246710221461993456514279466844693356879895204187872887039993680864369767127461277419407159670828789592840482326579593999416744738057660132352005908982747316876443301538000011718413400469858419251506097521132683945047621553491986288761448265626116473284338378501532110180180858252713447115369492312200134648384257071164695807698018575700341981658127205461147325795732211078595586829250803641889442715861868116815379633794245485490187381534264507926351538879897216935435966184757044925828909447451512848790657776170676021297567543418042900416999407243422312521145892825123016030232857122096815439457337244669311811716059892019879401591189354669613559869885028260554107058419306222559978810985457363813167744058972474637605674374314313039465639739937401913679700216823143754999525671952477619248781442530932028252401694074229227259921300549845743366235548227160004337759971832835092708455918352380513750076035803864482413770500346706254802278997018118505874790002820319247986962341732364894156288984360003698813409905267892463172688553942340697810620682451678592979705810766223841972266183985443844503534772842028159410597987733036497810105958867368425507510352206422684979870090324511994974810489197954630708368554346304080323586127936314987839042348116313306936965146376605500622996101701450277665361698468729420092726213974444573323576924336023157566346360288425598151198533247791470030052816841830252969197904751005885575167945150598240975287719160204125819038207064000957698551975269095762474543551564627174191424366277299726140454115832405410966847087812030160685048065283720815164218688014673497040236807482575198904615175059575846096131588830481207510070263436754454000983708050767510231007965777671851374441057872841807149060391005935544610039933580602306079554983881323295983996650710747725450245392460649945141130532071600389422968363163703207665842888207868261876661872704046623868446963674419946488656829476435969157996871121771622022683186594683424996549674762979449324189834812050859532219986717632719485194286352921859716401822851545419502030473218110131682341496794685581621380443931473235087302080975254587845434326763531806219566724811272299919753391145811597196437672115429984012489130881142567313404680663481135447366376619934202362232206526441732792848812326512247862553667854007348634998212675216409024615397408753371051792819721636739788286399282010330523413927174872803404795623273185790398820546193051720213579154691381919517638245033802914019068628554320745863068435967475615824432834933980723682506041613364413695649497556357320125415161954095195805536725636028673661581885542883252870467670652624696187219229321123578400628945600005815412869361644475414627318155810345528748210450865275387368610853331020695128558445585020360199714962975134876021135863576319862389675478445773850942387720638892493466246393625110039228337972214888061821413483403872767327026283517321864348184282892377546605521834950226217113063154995397188445208030605021633957552987050053952380545378145602565656773924325254436142179648141984878845816654875867778900145612232591042887956388654004786753351139898119357767796837428780701845091498281470305042494498386477688449866543710654272002384997112956544304332065353492771136799067743640477456139923889018709461068413553797205371287182011793506457384608209821327147230349939157023567240300773655552880505611471224690129854909716529328770257443319012410203718787430225757920493978783416876182885515705754926332887423009174849902851809468501930838597660181883990930994884709774631063247307567455867893038922437587274596393379253004579470598542891124612769453516033417991617453448936525551539130771952227360617044279105548196413269022558652183905201675178718333910339052650865082706029026482363302261231169960862430102109479502381366772792136377355712341001642260836087087920735534582189157778904804884394389604658207886394388858560677787812079870788398613011917511356341709287574308709364790464309442562070802770324941771420041384682146376106151930036339540997144043250058215043045433070817922326955122475818655093784096328436730846503942244420277529835779297607648006746894401088795156081822645045075041744514326154866913772377573359073184157332962856412860517944425877937120466462400176008954333462647629889682976460306917578799806481486383859040466516310963520229526631787078685297587446945981397130877782226934964423272334704971289031298707468373311935302232735413791774553323365134562562762546005097855213057823717539761137704655612929857669780420590718642835407698098354880356800423121203131348981760930908807751676998560104753064683358183571605808976330334000655371490043086959228910527655727719482120722212634176837628366025767774468333568741597815083089262910653814116577287761701803324295884470071980386191878125763596162889843761633555883601667615419661945155366886001076672300306015633919784584364610759760807419100335160336864986032019313485194899751892114303725264578306861711654671865129960855452851459544458045231517863155740753455013937319155083284784179337948590261426558593977708727215063761902379809449136164893075285047564590984753226373145002796553302372981470106346452753530329826430136557357624987945424016385649855018212293645046256399626412697899860093446359557799308429059568508799919595785262588649855685574262800745936850383208218885994491097452820087817039527926266412546514610175292431883351289187108153825471479900204095829478246843945510464183360726910956721516847115371622581731679921932582535653092896511790508920301541784928778391954135459740180042660006740597994823240869387759829472612642872358820094995172583679023574398446772635843713659974028248563805565112842043390587886058487758198871991066141487613206472332224658196838618639897907553569815028339374997907227307483048370306065519714381772095907111937438315876353028053192651496506126031085652235352150357667633601487322826026153343137810382251131080208947376415583349714179409665376303104067459562265171814151624054409061064064215751051882452114181181247761313427678163450414062686805450663602469279035966872364159642647240370793884888984764830267402839725681571990607343820275970886382325328044846218472078412773032454811115252583057367731804503278804208254943032770046789961376777678909038304624782692636846799227042605460032455852822236227881547433937979376594611131791387864720527463615486184605598276811678957412094703581802547759341132915026272681968611589111445125787833201369806975524514445608965724124531022719679675679624554377058268402816187388248080507907762624458349284310250564777202473153853123402469318741171356761862725496128936896132812288987497491603776130669840280432701493953073797584336936865699968354457505316860783054183842899020609659124057355783404688824263346841984291886080433884261694852817640376792617030235999386115132475280652276661484092509074549284542526689314583354509735059702592967166645507296615880595206242007365042512885415032818235417325618260593438698409732675091466509984154154679555099579692993942984921687965110408497810097160258074197870709032926194460953619246324139031150425424661771979971387319456533452342756574862834025810805753913743182504071147837107065930847454471630162474858544704666884918258641447610569158713082629429761226715936331939087097617729512273695313784689964927342764462661253177967710190394712423795782571111486745094015450475925878626588429452728092989427293729020379218961631286648652141381530025902689444678632789502190129658585933623352133885202572552585774604088750653377657453977948985436412869294759985599536675457476728882704502938717477118292452758855631166404775373638869458493308981238560302659489379626390828082801101466468341605684110998649318767441687010816565913772654474807037512290412012752924956721261141175911290566451913085720632584848827034005214780942092672429625509413174519711370072524667856586725403257849059376186977108244803440427315931152312535423353518821022396618852555825719450947447927079287526989641475532297393981189211652091213644171728746496857511094438303456190082673393342086871721204357795404475579834251727829671847093627050901786414981612028021377372285698322180394298113219533956265349676923807756372633287459863408712473416940574214982435085660264960109774929394927206516267088984005317678175469031393588604536774269399819891083123509233037299923380005814488343542061566558741923229826833813910693674930066535264745163652291890812887135689152215800760623338123134542655621176502015681474184824418427231066067884809885044651369120588854764183659651236388405570677693075947775253147270235225929866590934679994797383968780505500289036050956611270890553276921552160093257238891917782113971026832794608307093585812763627045964832556448180278581333447320815300732226633521955815731025586452260043510395627543714143152034100676483503820339601013466830271606796323554322703920484398265417552501129594032382369409243165387243304602521656755948038182344878720907629114380079599141942203081754524166319075884798692858537182894860690342736771343713783359598963300086369344458730917049550348303082913062037090638707453527876952087870237359839859971500029253720638076186396278861274378564733785745780467369181383629105144821761422020788149518238078112842574280642214537023959309739643233271376439438744161093926617592467740660071777145998880597249708396319603366560990814663246495752311631874824701261400776190059525610868691540070038774660734657306425411439487104491944461597608493743333234579786979698249343733307506373902269763734997582580912402821027310140231163009876551104868007024057472582614636877543011667975982683210527305183247296297476922476725716504020856660382834621562371342687532991417089816328281721980868962930204410624977714808550241450457188857502372502963880402115970502279501949926749008599368778390642415710126968454981313808288263906999991027751130812365913986500364090594324469339613801943017415446422026704061084380835094659210557198725582258308490006288565732361326534003339567196666971250728804159302430583119413318853375975264806718185673510743412496149645612523647807022113908687548639664249126894891964431854843239560261166588064053045822205609294768773384790139800485878165290170600077760373109153578864802734776219351108597291912292415416442595664256364349364846481888111458323504809440435209473231674117893871833495672614397730618208348279462955371620725529039854570765728270786532869141212292976905572425363153223341306515347287241042891815999382394787963304073626463526829984653583591607410988605147752295394048494874871462689982770713123399783432076285877078017538561579336369564928512017815264507404392858696904962181144966049659121027818057592998309570105051969843813729422553771500367728186762833698713950258054471346908481191704296575074635606742118474396544052299529601429713470362248460027096694124910865236013608145329947955859969825999294248815087554170048887595624949154999743376304426328452221324899456066092132566665204467546874914044677426239473265243560620237037084008891956466289106617755045439813094332311287085060931904259524792668212658025350670446844118024775455475152226816855328402878050924036896162637545124111134061188757520039274919496612365504713772458613571463821274686433194821984051446155631929006328603036367502734891682163179529179335230140403900010056097596306344740211120464586370296472588194114246186544015244474226841446332161478121083026881793250468672747137065738536980998233216240004057029662721009269644105392154023602397975417595548310941427631463489847401957732529794442029422285062898272427468158937581513787120544031287013239145007072953797973234964979993622110601027519673520567207104471646089815937946191034605817308195862885089220354996454269169475035600659647487879457464407408107625122748811314310487229193977887719752225441099974629627721012771027448797055387917465920788400069115252065774225524532823861936314453418035802130016451950742547346163456904157650738099939413673809253678048446461208843882080522480519992564182158359697200953867107609133511295347589006114174561736890956601760831209886259608045681322403853482848038534559185092712028095583070389766745032123352690278842937222327787901028879837133838739675591524667944546397975077709715393526378149133003868856348051736139409415968386789676720237417127724253858234185704240898505448121006443253665184017371309553055916527352726207621113833009332550656751822786731887405454363674473279705867065916679513346532623790311850905035571277912785453780636382840278598714031766998600429625684413920485338773630812461853484191648571637993666522499750103861662318751923941635419523403556699678126635317891157346793212858386541130752398719807771941369936772637373331055599973942505009072491841189033959725513975490255153460436397899316422943344427259551561166833238547230350567943448316536335025065465575729515737242715729594587262103983843897519296227984052292482990237606043563206798646797800922280315548426607509256967750171694283996153212219227140466019160627841016231998196037147240500974679070650731548400239285103273137108272027524841738935395531256712841291474421115924613507356887152429906823974558148150177552921460213402860174780867729571140120154139490709500996770202276500783038657680441682440142056486376762689961751983808073383775235079156268513633375798847516473883921476250215729271424410128986816599344646829520589667065683973888771093152264061847702929483055802205775986191884910326767460489439766481381021223464556696022677078850017059934290641805495507441414579857879796035901585151247509165292715396534228675181568305698809263313809296094388969207105713554181703540510125209647945652684853812660126072225174556901974036941211297659282158150893280740638964808792117784079854573838194703240756370584763665303105777680274852157994620142876002031707535402797921249341332338317288398750171295790365826043429720057875925539608383902123790707452387814898648611663607291679892236738077871672507491044401745642052631324646825670934754176695449669021224796368176557752438520062216046629700305623940535832852391557450138361971102532377844560582315232840908303054811813211912000422580504083067557994951419418304428766764364518691484515433982033579150657171234316455391511725399994768459388130253826302331015355595535007389756114721448883146492932838145114290446967697380046709086523563830866947601193507825706230746165384866363313505147858868055425476278258231352146072671780494299114693051474439886892011122851012175438799216314785104826260613688064578224601662632655981200659684028858436128457214128291855395276501759431461070607801247145077777156086797435529120888562137187694155323922997906637594937833303538710910957079355961518659535550009471291642139956249697561493323657257199313589264892732419637053747540662105264326872340783562595092678780688772780878753084706464466353165216681092391224910522668861011260682439682834283342206380775260703067959236156691977707141592502108249777996801972412613372459851185997057491625326208007205123555585307536523621420643808194524171725664240458632981865161543440428726077621025052232686360522239725944512599022571181803416411342288278071816957221899371498619579369036942502387737900895355938964482210007933511050998811297006584638259649833877587188414300871777331300880913365140956384369897003166068478997132242411633147837901117801099438580735171659739289677120888522124950419029662442196443356188187377336466967310729813434546453175986189626955698293305869544572338027367898825656736223306454484168150621482151460306314523555308769399751200522727731628772556341709886841192255897755948165989393194454304621146941887909748583167223567129842628580058830802085543803069275539144292968291725724502945853077592626470630018662022119742898076117430345901552801682044361952214171714718855336792461781227441870617679462284743165685394668212154665269010178741458340129443561399756912915013130302735661285965515226437041969974829335852138234509699025219800494972556864532885430533817641242871461397881246011487163516417106091156256799557674155937483704147714693029290799998947963286512518580247064037240793015695618431457538037206066323177760707718471867832421169576729299049432368732732672680852734434186636069976396111662373398521449823820136052545499496107948946488069702900152984613776731094332792522753768267991828730289541923431274786249006057565056894911882063226756553202499991849500317500820574100964732238043556070204177848198673651343176283443734130886740773739303057699905596011637194862625309662492980512333431946146786731257488621449828134597781374776735364881681564360342015611336371721607648542468235959855606152149883144060701006998908191249660180471117049876895754762674315439402786658468748140641244361515383714859204026728286781587255564268064626361862997335028944498025914660697671752469551394586588553233649468640058481768366548792816165949908455244613120449273490665394685072876652174927701279612750031670502290131389490538816947250554538909315374333665539573033482546214306024596926853458940444509945726111873047948123746595837275837022258434012535029416442117438736147215052096276212484573111724113656165663405628997848822245179937784844752705881265252192982983535915049756857842734153620401473140726306629856911694190974423829945454226797924422311098899636503180185643066740384688617103956948027754142641083010147305731968042870860464215964372481136664026384573271571433067246046503179202060136851967422657115496169916336676117773852732934119249736743451672543736347202088623747572149354063284533236730069851084205874834067660179873016750771201856456540041632869206304087769957456975899404883350527794327632114002721241048395874409399982433853902736529078837246303034609601336248477643651494002971669577125351485815302968136384940887882733604836696406578049904123883487364909455679856090818595804627221394780910205161550400540288825321752643094418445153323940363566396836234659650244652480673902056632656554765429808809148512166443197207687250098392397111084245748044466845643011592578218615503216794306546211207984961472659745785201438151859891811689382989871270806197065060977789660763228994167411318047121331519850060052456980501250864103450963385659211387443097721673171503270743741868127833284714620390718244341555404248322538670519618221042786746521247257268687615821644066480159035014518596430868332674906595162515002031129744995055346857676522261041818187091677737243603049962559173575039455468164138720113013407248437998172506983097654396659696426674991508090512444062651200799267397861572379531880386782044119077698640211802477266548005540062248844045367798180208899056968202276532987629287820895900287198822173321366045369914504251975129009334742356861401213034860382345808360478556866397835471432569928839341407326177890510634685524709013306958290557509194897994879823764064562559400565020495168583665180246297981355334466890958101161127918836537229188612159995419012920747831296903202911982567167653980200371359057122106838498408654587014228489268160926185807750359823365006052466014708496748288043798542072709385958399508045756997719200380667868501342844897521707259137559434080711526623770822786269234483202105836556622881431863325005113917471950925613148978778220169401998718700267766838561907250622915751556868591594205829779015989775882573477625849673669320828424063295062087348528999688396322215428565442758702521087631334509907780741655170990883625281646382422025954246844265840574792549747248420622989770458276101397178900803763424206969510745841594083165345585430860394144428435490332347110273600111894853790533711242938128155473640576174544602841927376081643954031559794629606414331486400674979458680478426383374537820991111650267584704026159537612933869129653633415613110535759524355757951089715066556430444798024247095888922202504377974308754750231679104857566817367844435577385263398658300586553181534691161311463218113935439619859675180738877286231767280120888322471707065201482152382780667966464677420739663884153162851903578750728262877362306508675513338643121652772773630394071835202396283873949551432008776255194948543624899833609230488706481121559979706590855010127468866001217752824743290336651511938817023583655686452548227263910008701282266976415296799699292878542841993848047743981858694022027207026380992323476704295305751842749508087343963953331245746164085122963306534073504416202812660749731424660380663346135105741486772971661767103488658167762140102911861058642580114789195359048496828064661557140373486185668021165549880161627605981592873605092897812524065808122609815741706542043163920817468742564086250194751394481481662518967291966978318346779013855720197915778589673683314620317942481242778401916918973278736346991580321074398425359224260004662240955183571779741318719241597316813860232753782957308820733123556334901518320537927593966495494915285103891136537783276079107181039804517839677745783742016650511042697983012574724139366297248890144170022269353929606587419496725308132245669337598942890745389263031003002343278315583071879777654267806065983998281244326958318282328754194262691366089592659915042510680881540278246467869001452158862446659432083404990563032000554671050027270393166190366823785930294536660777746644481695884370961793057276371697626146843354196918558899779867504812261372628898330729862080033932334502440753707682247179761912534280163802478037623365847221425428381202954230332318917104404652366330934470219454326658617014944853138371002926531938351539495993687125466311877291465525836678151382474786024986777775555263267592257230614583919208456285888323875184484926199017096412190377379024855655113978943844581125219041254146848146826180562052944747066486597228424835688948662168458421228093837543298467014332656948809632682777829052341148287125270884236401759421429891100900378236235737836910414405854697315274018647430615287515146400371249218889256835241238139133038558333077740979141718275571401606013428179693754404978420974500658528829804212251385203541138715548121449942241471422287437973100349748723380663119205212247084666254320770707667475287391795267081132305936560579728483047878212417972222810346526397437284334102180482468531131367259070553702539796132291025446412591647762189318835019976406480193728895998025708362575649584483807880995197341610188797388649512471873708959234872815860213776961415353584243899080602020281016964739659104085192936451532915057273771666059000010179868459502734025128395049927601265347064402237206431869165263802166188489475316033273652262955590599717471174613834068156814688546193434464044763185735824794449693694993999070600295842670108876203953031400986866241260483993105820218076491933401262142741115011787468863453436869302421860344174533534651553239652763276861854603427573305973435908235433036669197813184307174377017477188309571175518996205394096580074864042966351234242072891448808057987849737251546980082389181656585703159190451286042619597240209273035798720608431617351175778584629838196878799113605251139203317001357767152053631530827533913570538348169208486347181687998891102983861323457695670664331694353358045777810022818214580570036623543728688622059966785896546759937011554649680474185331922930672824290465040810240847085152733100638794477712744030076029045016041340236404048263765925752309080713209022760635890885491987508784280950817082824852707085955353357476416580442344792761975166722590485027274957329440855038634970558248104191335571826668753258721732006783826966369643359545606777822278699122823013614082666210473458019837973166121783453303465885823097749769872779705497019520378562579691188347585297970104219157715286758127409194971334806059195096914658851776466904361749229991569023368632294988887713822114098121526941859310710498511720444060024834362890773897843956767024992238943710569406879030580478901304745214668268238814171867131541801738194700876728651902886376181477206881239839856531502030073441704046589224708460453616964644493984420302770733785248488424668280320247994530944948803162591149601272033893487158133262690618295307433943893343140015703113237521289613283479621307004375216149579640098333174770988487386144252344478169930642456498444834632146724700920343957385915764828637879411450098364129442495684567668499404995097176923492735951027071138515922460717484520245541574412371033943254362452711339691678416064612158237355840058287900697987501141825454248666845602289012739481063989641526903629999162108422239330089403578594016234240269171875541035286688398319629344199541744724727980053759105633584970700156150402644531312081602974940554400989215674590601323582391118014703956397046361565933004113664802486990077753143305271801340039839995117591683829004033601969060113160213950470308962613466294886731133282649458870741200280902388733196019392773741272377779085531386055275823721942715316153045485136906745675364660618253981505048440093705811082942815973663568341286506023964900803628233746634438233539833654565618427394998474419481255852744832745109775065983138339800369316671890024850700635609462353950693558677422596645525039105606154449277877718158192944449019441970790301235460266233294206006076452746765495722783121487654334488409706383963241873794288124966534571927599303452978325650978366109224599739572105469644539366255863033070919267975709251498116484935226091539325317166992376956382033284871934553302243141531701995534422293602926505901700198190095925796597993208989752501166590993404651629305097517934231380318203706460503827408321538404590291414358695946483105123762718682368502648852266569276725806021213331779925330133127690101237183949985200504912719679692889592074843482401818823404476587489233317585312589790221263804838183258607660036324560521009710085922201823112804816038233178858270120421291164775342916280108071800983431727977387958858837464233811779114923319882495597090384993030294465977476005133670032458840970658693692241598615253708708534328740856893461971850333130378370284734742280187370281035612210920881626451106058408573773973077171222778126844365519491328778971217812952509883381765634636753809274435723227248210646926791837518487185585698297181298192081863837743185094371524784291359695098346243641431257713399886365783856825525284560391156184057608870632778715397732515821103864084721508633342211394047924309284317522203699096761720117509252536537854751149781412641193355731856027300315983401030734423233876665206398607410074762276947217183100206079586796776541998800137021829031555488728476714814596845618958602027208475241754602140462433594192985494075333799140707974530876059886600733019480064734457925116521469180215347638360701272548760452284510499434246238099809638968964204059335290840849738233873020937782000333604777384042017422824808112560643383249858377304553080084590036918370873150512749787945811507475315400266992754883622494130307021949907800883622592770134761087759300377934340778693718917738624267548780041421960712687279922758924526791553581099773619171972640651071283616554354965348383928395851292763080886709339662180383047840979220608451338610777906152346619478532233151688670215088655757383571137499922245942432217121587627129520814383439766293567329417967796414355962201574335712721635753976987294736679375276845879992558153178886710394731724236172833880505280007331605829392056140475645192842429466942564201271380980967356253980227032032529998450282025985117288817911547563005583511309933765865445851208520059396822642580183541358843474078084294406837354434520669473198534054916299239707956717832566223340364754684993828454621810626525061639294915813097548724352187247217959794155845064680373339631329803159177624369353747961867380019959255851289104743475921013770610928638469179052523736964937654368132621997897106403902435536235853863566964523515382800453229078600745245393184669504076171585761857775231628917100905506900926457375601379106967289814320145862148355363048940501808192227971164333854015938089623800130905209935872753840567105259725449184802487867511355259549429647712334868834066941247251977275077921347684993533125770695518579574088265892387457683897831468205386360453769517796902663327032952334134434748727411709982795539475089442394785325226266405461487049502290076890444849229675191616177673563887451501191578480347531859599322999324239960786412380197813267913055827834902397903626372426496297226263327076066523039256243576583074472831273418097246730393456591943219062136079719172910077919631475448390299306844136803441816331375274529117072205907001918208456826842944650652536859542944342920273439950549310561105819781800880777129070578460022691395277196554299410036279160154934569040198208632569677081857766248323762249760682527753832009779432490360381421746201916329080842141555371865778237060580661569401995292460099031158648346253091286308689253745689404925817777850603921805983771996961166071913058396584149216817455440110556048150727278308006150426233870927157712286927874912676240540239720717832885016444074878651217170716707258936695166188794271722474079948665253825460553408151469432881231849626051604790947052552144907746030808036950996613632367234929802377123830441074639865389482709455157728670836495468112868351259129362731428150127653470540366549883370161636696248252192870420545885665069343425080823541799618904048301466021908920626480978134110336221347470251238764414858396477545625073430210181946651917163638696841641333067464269725315127182576642590145592473796083384372067805043221412953954295983327150974316890891527938512347680663026926746254770568597125596441019377724061626625572811811776365804566434914498973806138081286786885871969082279699542216107015418333928766485354871320821160693080247052344900954373972174672901082373605484563381065083753970418973838595717659363843819520228563489059750018757409529900274242732155732610888044868250440526120952935342548810913957566564207508953418023082445346904723807496282620680347381085602237228328054405226990071996247531886169749906474057777906685041983053707284307846146373716947785161767491589161632624445431121086128103790707570286464247282087179762517662755834089012338117715832231495536526399060122898705600807181390405763540639266637295448675009875004254777541046235208542937259659284150694993917946075666717030123214722908097379828309365175304522905125574733522278152481315035624519579028864976330248536954266158543261656215786416043687191142116352641225241941115333073620448134634885311012535459374627769231794576953011370676986169450055135198367277144943996500717701869928946522454283116957692487300204546390575651882629533636445810935740473286584082286626958667249995726118687138225844998589292766135102176405080929914098963662866328307826366816427338118859833571428014800574372956167444046536828516639805235757257918711331003679566313981921258302184436778700020595743490298600453342441988165715809953121161074899975273149881500721411918931935520737747992436318497767136628702003487223280487515050836652107528100333851257456986451527059470540283216197672439933654851625041616813360464912054844082530196704594491602379873924679314096798223557164455312558957512136999486746397892609115457216805090805042582220102550636063445493848325732129891551260173568476666215405012987244578725494392336388236151298493324932486919019675646245026558301771896016885516810137676001542021943459483547528568460308499341105973332256910209012071900910053616058290508365889084384819811062879225998151720567453996329821372342307909459845669654376335070067793222087842996535771575720815789743804453790586918007902443114756380566752849129384587403824096851777548267825022137739181981891129487131826526792428838716366357952252784777171948119274188242867959231063885717132305606560123510185032960256908706919268405986871201552116612029302128155019330108919922038673584987154400926338169853559240716894449652267747649487123248030995907680502355950247951331512237560846552921018761106007386228446326022882969684727625735766660425867200322878072147543098406544706629018522316436301894306459810862266405526956603883940930408684953937678151307761920774396306812638621969658999930675539919894887693523160490590128065378491002513816100012178836994319492811427189550328544218643371609072897530034439106062000400167315038772381914110020880585580489071296990500156387308415237327215791834191390944108134078442578162471420294911322287537630677998141506522338119845033148037403406938977171102720108030852748686806553835752859585269483295492439022539204839163545342110863997035059845610368727251660178013482082219044226281399235353351310392662529997064110178536495369701405426266333618104908543173327573267278599337676724439226987748269403168650193572371498960459917156656129629837060446716322720017975099383583969393096816245534421285746558810306346820072763214802184505008604753663321801980641703650120279836054891184531620275504814407383594853181815264962040899220278092733574142579258430087989714107797591607789292497890767873620058723403253670010552133905348599199968205983314390801083223197182390788814407780152945353114119183459990521609791093418499184933441615685721968121185563816221643870317537298429383648345369420659133712778814186838525477340373606024302681625412096193286510154925128986443617301347493308814541348612896289581220674561463491567490174088077443318028170955356057333242803133307502803564591609128813455504606812846506158318165436870984098348822890047993460587623908258221502363671141916751780876351200419629891087927908734656672618870493824706440674546644780655603136372871534058897574063620394911794596169237951636793874552783615694257409702186774431449414242420179838010212585195108254151786258233900196819840691809910786064023453166645993646317950563487252925475657330931323382816109677403421790811621262292410636102973690848541608086290018282867052676996013380058988547692942366578069359593117565721093712025941818515620596978250010189090846617447781859090376692776565464444262001662954472133006118747381031660865749869316723538795626159302581644662402357443389378955526427681900092937655624094414676016170508867322349629445821029691915333286221707455688007004761669432099508726915773789400639387120904620666857979571393073511379820595876024519654318568932335979611506811967159366291675140298962435434132519921225458499677353761299666210924279475449141330041354662556076581397286033732127080278491346637378568450474751297408142501430841980954909026517307622747729563977011586202605661078178449897551367140676483136574800768208310410058748203611116453043571953813430118354319724492764863164442061536042184056653344319124959564443652506078853310185082189438228864627503470550661025077821629858534486280675504647386823785656034833835443866314648511352830528503747649853700744228098992079380933264516468536674851414053563452218996146492400570515394272932864632300685554783727877971894553826803341705954038301659382432267835195031927387193711928435643658180926933849935819301807862495983784805716976731679579420596551045043417985155952478451238969918360565362546449045661145306712436577763193501129635620073404521641935499285790737514290411288797399019674986980845753415658188734233708827686856188057582462141740420831962021190338565028021887143604135522408964132250728975646747832509100309209958640246570379392200024991215234912560318357829080657250187415089583102953026312564985214681553272486687949037015183662872474401942209640409049577400167687991335425908626472708431532957167707211875475150031630853237551848322814507273398495552297092314849104694001963851166598291982049908783863513900671078229097589322562489199586301234451326921037923845040560993120825284828535014705289552381454703449508212849558321122644127109536674784031923504626593377651841250156316757360746468100263045764503943751171441322244765720391282900788857806170568557904194212527736045143350415139479846503806816085579229517648780045541330075378839748362101943255522710855381229329371966299924364981746979975118210563891664976958165587605167506808552311722021400150847143075773239543072777449948090473925525790960625079911555902409344604081481259412657155282771740763797592073568566423092866833941825124396213180821608217205021395477237642974606586219797538874197190272168300566137962440784757010328197105097108663989659221551648563033530599096740504407641868888373566876866419279905490706275159048986455970806186982896448725010262744390772590596029173566189400095601677459367013988533667670886195921897812872982973723243307440662352106085420093821741798626482045219042746537704051411837372824839203732693520086273093294070962898244685370721769709672306288546067179892248205997026661273463111306115842757313963288351711657857500541712740536260716075544293608676182193671648938779030339984861455082240965824445228668387585221510946868208293690967670390332416215811408643613827802950872534748859503391604566851141971755669234483345728742673380103356533042296874303293660731459975016395296326262821046704712771521171089924524086928245526554257025623343501435969817807552291286965306437759362248267084697872819905606482791984764757488586675149833285010988824777384445435635816438567025354526945994303861379823225312110742844432006989236969011401949076872823890000581762463365957255989517332764732412942026362440367849535991617987376986033874586560940471410026911950840048539660360967798857529511522231771686602013391737588933909785363579272863819922024663932505656286062585268437177993069282204533813052919165455602274141257764922733463716340409196654859069806741559918693248095203595859740248267006265254872605842322468903637189766852012807093617700131309531863441956724537037733406535712258323669850547869769632247992713857312711785597074531311752971326439093661664866767976447965157423028934553413009091547406344956763305955371223682526567556030776927413809971906835861183237647734067970357243956370579947269939142775737201106513126333947452594697783125261971000068760468582144517387661072410604994113850804100595244884259501799403699889093825764256813758068781452802492533039197752890341535775453660481203458556209998231687385768003551567484471690848260598549711940224795831743441360679824817015168009400478130711578312173091693709793569220289777106074735133964864074738882707084695017673533036579033942960253457936118825766376660164479478560210208009411007856461718055507821501464992777762921065740502669985559281676002820807760123943151136841766014726580163466974660836047833726783077038899866876333253025570904082794054138571439446158577592681619337917829292852189706857128581285786599035114822406520528404596749341105167776016154418524783379442168090057768174973605309275001649053611784477130517938271948624743475744858401029352548353536604909249280648912550457334649536067614930612958205903622266887512639591493352723329674399168632417880457138081959228892110742260447237866945183899020757517144666486725594272264656050683767718126000558840805160213875655272176122727140189498997943718230007654997762665775224824697119237934901380606971075008556677986309912195377644079218312628542319498032485161920902860627193290694056643094722325954183437211178366502591107828447666752954690622806119672773800491490469794540437162333811468470444697861048182093702857343709916641476905167629734379294365993421387717635397589689428261135199130368666362705820239524192649853258009748390993644350233651495548681834630302022493308782674679449087574564414369748701121757584910777433489656195856696082243850863620315117271991236065418817578277945453166563907251663229077067739150058741743923842953633656574767822617017002379180520272353564265711498867177959546986441154500060428368926019581926107821459929562757691620847648001253832468241920125756877929805864517128941087924543461163258238757186767734835512154273254003765698849078817506885935307352474802038074276798971875841713536811916777492026823557252803686207276545682556475400968381761074152824177755809556875848654453041475020944607035539225598668523722752716098087502460644708352386470111497432137377516323322207264452820637317438145513174984917371709337650492990301986449709985099964268412252366416291644869963122824385592235439113757106963224295621733321646423242871933034258208940071695933258156007763113032440586176882446033140835438694108786794324798092231229134494691183431216312282492677838945512617146216164810100721253635073707786145437154896260240532119494872479740054161424490171770367225747817817180091345560483427984187208273305039348620217098874588350813673162408659161150497997875261595744179720350345864654850766182744480086678404077360096420107804099612279378555997904592977564574732594905707180570429449195968823348445557847967617458904594700811405807654079657444945580423268136192087046100809265591265558673111842866913105272118118519697728500300611580464750885987501285764709771819808469303806001864992624974342221412951976568528733046997797294463988465654495520285252910337516516810830561080189784144569172353763610103622970490506963590458596946661782882542487689265918135131630645207866791295741132170227306828451754110074014879291270675961598236106575038492885187718748538858082179705688908708991597713001768154353138132572394552422678468519043749317128104920786583222787981641412894455066610728923976227639014707448417105065257454828923847459363223484461874815620724721543050146838449448112584599612548116083961737181478087011482595717662594556600431480942578492445110836437234814998311006551664839303488745994516791292030532616480399404382826380892614486233953737198537339860830490225468962187439253182197055128896037904467123118590566539326084306652463051780790644518917010058555593768715846580295095819757753590174634379234092783091326858944679626217550931042043560882879287150518441471014687081221372604005350136749539122780628123423888395359357903666995162809202685261486366950015682118468477783322278053510175447510869378968341353385350997673203918005237862505494175790936258917625904120199198196802876382046581748312384149977589014160472205325259158106020024877693714673575709570444369393085812311646391349220510066640895353105031020165152777657752920316062213817914373766569281335214831791851986024548411406385496536016204750475453608492258668550447791312715695750850958931903313592195987822203122459126829898386336782666960456005626217672748779929565198126076728945644937839405862259037762033759748536538015678403436536251521026702316450631489582930020267691894095235554840611453562359249968171373499841194021856042725187238095185348665219579814169841366188759990701357537593088274367168308975074654388411268552138640670464548751917768371136423393694323022071724259074389632664284048015224336704725735686261264580551711607333284577271532225160889223432783598404142656260648925741512357539870098899622151087805881820354210337220088734121871092655338172456273333535762482649322359226730982165659454066484631058709889538425833729469835785124401288739698181960376178137762337785206524185817288913716359445917547201642506539015042696567547498166188388115788157921006891852262792495504685016155701168563987714688392649898014271716264314838052883431518691668935948549642131488133428281438800967657287473081081805831816450894916784307473758405361577001685215263394936034027362650987578999049047850048115434747511515520828123141531039314122803660873746815267314395387133700027087673744804639368816079323587150273426130570017331566218978099690914119937999993336273092370613043630419201946960044509597545223495103995423607165503188930157670408671340373394162223843913969540563645510326448974976212652848729314315936661172213141925151477310793407171655057691378017827194404840753516212320611486102424589294598069535919374206988804645402104479543863447477284438984642847707595005230230476660470370134807443550070782258878859078189606233926456592867578633554904419340807494118446898343737401193272397757510576640541574053293478715499925211718298013175233533380140544872271040372342483742089013285284080480608394421946609155873235210499985331548116804647709144422594118165202016725125945448704271472057595516411089181345446036319759091340648463997836388167470139393541560624146538720526721397335119833257919346314840049907747774300089826509753681406441515252755999210138174378092878342922295619770703133764523394891229691297817269277913441754472668059730518634764978768229852121953213205290253319928920922444145287646580216874162825791996027173780494711189932465066642929217467143168976712307908458730845759662600982438226485952620866484791458371940304117761987219334347064233905690521244159183399234708262778435462211137227347458353258547386737690710545392834647898042116775892134306689492296943952087005263795618173027410203539457530245262194211232080912928099144772167522182796044072232800473537568928264188905483840423503953060592459545327500401775588734859853978267431195395280135368419728424101295654777246533430083992253193995008740009744753073227808426703218532094429595796011537330248384737144483652676116370713990002393608132167110822331274500627987617447877263499973002109713916382456575676885019560421386514545977486150350929516749126905320139639053803204538578251431505889857994655344743493936313671302834628392898810241572680480771736795233503730978878174613113179150130931407373080826984641396095155711963591783711834577146238793868969875093913648388777473819724125296095772702319049818730355399360428332772573227379663881123874692262859651482723863239785374389162968609563150480713258211434562342334823114154564719183413256537382206495423032045278093243880458175603069056914391299983287599817583984283180726001554826692055369158038781565580513726336624322123768779717343621345002003663939639998889056581251501824329804403457590872585289523348055308437326904484273007621255827380815680885912760661196034328288108649953028168716205020588423944974109020717397505638636680883150250619448584191699801229481887012603206178980533139152846102622333590817421362587285981918747925932268665913396263169798834224513743255458607462471124548285545030969847877749377668123032588699048248791739913048353445513422922984294857424993973242856571383683221836629576777796239974355205296898432347809741679171049460072643434336290490736746989727046439534797953771585239328136087363810091869487619656166860404610141574809348807321799693885373760707601576057918101148689093091836146657234827616026160361508942866286284209649974077467175703603372827735499617977718591827883725746771562471467132312602254592788116715997955367957411960557556118424392647646852758574408810942966867837781559730602997095050836578854607460718344097439816208221452157231379051562247293973102849105125885018654221604415941058454764216363969550039671038288860110574899865214724105757820460633771832728317201682849845491713046706283934488891341443559278260430440053762530738497669396397333633775506655498633360828763945172380603496564123072793521680246900645632235135901874005102441409258558388978255861996156453243037377449974385358011977687039968178921269890633920525306679862014996701870116874055539917786980274863075009990178284416290029795288657667411586079277226939132152339221151325015966038044540799840789944848423642678859901368371282443944807364056819216089823299192677423476996466507340502770097062810930597858685445062055275150494660451947515043645785874542576904780920820794979323197218757903466949395605018299243640324565572103360950855198685677669837611989668918603602656960235445076924385652084703799851150389278897376118522129391160588104051951396097776850800921968755215891634216477476217067640067845451058549189766512381632235718270287493465575947689675792169890720447427581669980648241884607951087515526011755376973971521925898978651181341728209764891693625316001327903206294691700469558058724997623892995386965884961451004155539837776296830955160345221007369489516917803731739393143520920435014488249323333639802837422649342547685482812313201455460345945613113353579805118387091839444741602161995321185324513147428684188563379526368797894171762478331949774051315441464015942236577207984410749889781837787745783214800096433503398046803572069836395762413964846537260352656468027695323487347569244982129845391744814069787713542187810801729192100025971436571059437852394848641424464182846816372459640975551163678493669164494103061871398322378169976370157841498026040949135614766782141486570134888912324690888552399459448459909954020532825730281953393346354470388618872834725349777575204521654747238634406390082183347737880708910295228307338322539355331153152806035702692389138482969692936629514523094642089585596186228061283090887057617265773530809131184405760381026900579532595075797722471318280642048899273438822126706193723233236919849982601279756677431278588249922576967388050825341256475048787180176850466757203674379137869580555530149493712558799762050993191745759870518153435457080024908075009356910730099470707501559836077663208612525508578624747437000692055765434058406407708174690614850536116580458650218599617864413556766423375901243803358901311053434335221249150591769158825816635389230785080137108910144071213879296258207864117542363410028210888421278709798991683739082323486121928301460456579196324113255853139826882155494977907709558931226067727636347714135711966099947639654746845004679047132075844025944805350445601652834510384121716606106245298390446116824487079784835700377401234963495517982188597921227037195025989124961613190107738935378109910323789052609274327837696277339635800425922683936452892032616208009686127910071121734675553794776009712452039483735647541238191614664518578135516073290270371849747191551994591305302703056461709634423976623687708924208817565381340523864469214020957357082922902123889333828070063359738260081584179202826677625797430384744114775259131778616557479911089902235119615957340420233512642832144522394532036639350105787888358569751282500743912755054609197702661038539500612279496300147525776089902957058683379467684528605351108033375940086194861230312027370885868488245638240886131747010882359683883745361221944504733738269647237433257482637393357213988816093484137450864161224017152969971381827018536520272797405246717095158530200735222001229508181507020666541505706153907628464200114044689070373641445218240086525239830702926277779112340881239938331584430347429335037005989950601687908615961525332751186438690034607812686552515223819671953035732950965899706816841347241967321899629867838201605930600590476896381084472436286885360448477433542362435987341912800118243012732305080700494398008247394312564937941754743462564186816088812974796751490711464050027759588221775564775022920603444802186000791709189708882600828058920051738026561303252417414307230004552716104773162315862271201264989961001475624381052279582757012684115535737009105158073413281185783218816339723881649306926360668312739321733672910523293802645038337534957538545299530566287057264672012260197860289666618138804094454593924861723318571771637309913691024900345947853487885219137759177670618329940122750748440573447171551634514810931887288642207308824348183793512807016965986785681749610343192162758918950539005227767677769100822668881135091247447283924441001341531197792060591316166443480401199346350315271711017842293422053255395580597385366972993619160582943562210797460689460236889446105328999408949634326538515286021604792499868553402274645430709173452202569910087220724263803225855483006784115823679187774051012807421631069634943054684403436549528534493852055433930465380724854478195232950004055498698641232642387234552851817554293197395471376894435569409063022732877813718054563631081650243887432640507139836862991339526731761295455692730475094291733076447361733095952163045916463742027992176855325263517816275481924156433968748935968163293415551599523647782970668481951447523752977964330528378131310000765283595929122102659918498574253792770124929387387829574242863492975029022580825179841031149640328462080668719737409193965988511727072241878047695218580159262177470659460826248093978574097776609764740213473692532736963493575946398771730088124645033688317653380436901228737087033319518150507522725537042987644752782421252169149531321616283840613721757750106553446010698533829095176112890442432060531173022373866925257023433845064640182024287038354041458321186394038981598993901643364144393819247511556660035701862704882132568301541644327362320711099069791270844221296844587743952390661493685878860987994019568450731740900248980210660139841553747991584831586310912957751198654971380990683536288360710359724233459210152643309700670421019637966010763103681965357479429409315021642757106904420927502068297897273900277958233945378317080727101173989754803005414860295939226151730465606880159890634536336569829752779454711156842347366880080171547113443137179148416912588908395796023237297878668735391209850437446087116597224135428736659465199030230385618430701096419154706791387570378382524195947924080704814316143884722590114141114106591288297773685682014364008109383123623438826992697150170830659102153322902148522847475449971118590877350175094757050021982712138274366628608837487904347480431385382930430262996931671294676235364621037199075190829570110839424028798581319657451112913260517525855348946831648182019821446883672243290030677096516549591335259109626174305049735824689163791113774802642868698317744074418254964014033266969653234897097467277954476979428532516729270443521259424526198117063682182566492491717698672764427303405785200651981850124021922404882257252734208193256569354430028857853168078697371139413181756191199427519531064421867269200944246672075443060413247256261737977202042670654661966585193428145267856557124322595428611957608200088248144883620572859149266751809063144776286275341126381690464527696478375754007412237192964591065344720355112450068547730343947010833223559630820589673083931617718888575023261443725422971534361821680864931696128422002000969372704593919404750507649964909937468911456485374747526619450183252401120807409784519586804869023721865352772194292881078746772611654512301760292720427232801851874119314612679577982126018412105588627791724175930808819417008345039404472890571320947367983447855758664390380754846950799375202863009559891919541620296042140810933196273647084877996907327552860320214600060248414791044848813035131726632565268678883836855822741586326168999271038302008911240986640325228585396326983456029082101564217029024684092875054986897711836224288892365948151821464167672249324763431392161262602669979042790463269133866715672318761606439025350222808655116239000181278501857770275594687951318203542690320000577008196033751236563478783354247264421206185062189530082936554957803958764437053576642254831509324408593178183588680558857521410209094760052985515266556507496820051704147523346627484264134625807463519494391204731122708787210203357101439647784618543405138676014488678151250036816320436440426785306678239783317815901121394388197611923710131909795334763970859914740217105865879741660395289677022904641858716514331210572347199356536093873685132695819747373252452812323349666507171904715444227477058120212534254038667904561910725818489701769971538297099462559605235085074462593630527437551539389052054332308824639170836670945979046144497158330565827168707758271627933217059373807443992143218028981839292310806008845012848699196803976502364150723313590478087244670061968342407928984828855780899656495275527782492702077016045475653069552047841907322751974351103778800045001489002037822852747628147047193905544197398379728276086634385787605465372866152664261345422847233244868965958080220421006223100316921055201273503578259526695734070097178024235598687656163225864769824892663685973744249400522434300085951883878062004532408939598580724045214508593357309254609663695531282536182367778844032144464273314540884417064894229785177706153392013200880428772363284078990721195556477769644654780358141751955674055891624096746873814212324133352730318336387848842181650760059399958100189171728430787208660082103324219236257606887635114319531521348884954740288501404662775071651115102546985763193507241002517680772741071374599030294978715252135580157442782855581146893824049077322676697079623767182554552455097148267450392723117253456215237885348336591488878357046396857878615157271211396804669396072094349498664860418707740788926908483382066152000440945771242882464550466132456595607611027071914994440064994164523591299245443046949904869030254401958304300919841339681913229723940176782721635076043166699937695608215746880181181749572533060254891909508466940084540221319041768756725330266962682797426752037073667678236380584499792012896396026364710439274214183151597639000609778742108795047520149244154028664566216517656689465302373034358331916734149539974865100797651047127436707552156191543750294779539601750673240412820950590794312143390685998768086526366033713163783342550629767809692036581860980487351091858379983868790888631655912611207761650222968829536459976672798608001009174433778634939227193851219598610089261691250019772892846895655365003488310576122663067035490883293848485585063705888089467370161782131068076774606947000414194946804227783916753353765820953771398225658328778888251273250077546882949604950160449774816735066087712388013220758233837508618339840097661218087207763103005879723713642629155204025003989167450166041624950796892258347811532652818601140820712683181686799477709975922961333583674054454527647098784738257782056977686763448157020198324207323254852451540545301876189578838357384680836826752227282735939783363611218466428638921519668659166350422873067575446442839680889981857423833030966662982117041843835112277738306853211906377246357292621157289853030372772944145990072381024413399761367960643992997066322225907679631133690101049825664149420181383812291677824412486078760579075043535981924903745975435572284148297841121165319174452044915743914288632076391746700567268510711746319866928781241229747000527034284570034530912389650274653341204905680115011121333086853152231923962841759348939885570120417611276120433953729499261011538939041728725756650963804099222685969601453978378983345712565148284518277561400218075958368586772686847429959826087043760687665476756789155240744994431759189543782259359941966831536450107611124421563862096627190381851901269771704165055212193822309746223667114423658168229576455262566631532999065112688283356969792394197751064934327948528133028717601740513653150600849216970576177415367185451053480666565245862141134203753766884042802143357966276853763484718810146741932656629324627550081208595497852496429467000612430697225181351673396095329121176749136706089237873251949595028004591722452372898620042035010517410911426683740925188750523994589023966926271818468692407322157744128826978568973049602240199992567509699868456678714152924355529001488552581844751547639016260152433978120800029093538246980889663793453594973072973212895062429662038672620317052447132253618858521854030443309308312168158613806668134311167459013854655414023453541739002970208450936962158842008630623809814791818451891854299087909100452920569521610197808940021547043643095228689658087962725719675237382803315993511450190799717555141232732258953247327280282033196018817997911914826083354053149269398668292428947842730598702631691103916837705001399468687225297640553752609905165192281071084604193586368215245256925330058373742699413985006687348836847838609166123146472591252992874010490101787765285780055724543578875002830043525955971023598687311809040151543183694493028743547272537598990671642112939914871911343028192606129815152782356084670869332243459936638749559009350293490301658281221253218934359473874463781559892920924058292263947065014863759425198594393917662030822613722710802595421874520470838362887221425711615307182174348593225967565005840736373930374474526256700788701105212685263745962944126773462816275212388186900328783758651970798298545283797356246144481235864324025758007950016753301526795872566851602520784639823205501765496022378940454201055645476575226500585136020844037251567961591226868121902802949638589065918412824904662809322678960730252211627567432956017854321932411633226452535466458244834872701547115305407798950065156133699588501919018526877670908298642182560433734194102799523388617193401608331905901015351314575881474827166494822347835357191953170246554099952654493701428287882322554357724158205973213229934456426284331139997382741650660842702274630068318648573611420713123382076861898936102242466752501701658186361326669077144684233218782668067814272641544070078947402271713988727646754778087135357134468035568433386062574731888498245719513782705182857153818200310273877094045291411317698898165866785516981128990358451685071977079170544016475435691661258834968912755054231220392729425392851180759033352220407575927936475750535074787355489908941246612455227292924763776436582929665817840549202265760203597487520728444559911731026643616220094688661491291806297956157281332854965111245843028523536500078186558100022550815497921107685807758515133892719821035474948083015895089987377152689775700186086859046814910590063616815914093109889577364290142761815326390521121923452995153128862885577088099789509213758076074988209489145003635406557335591024112208396772735844821055052020435433094814039162060880316814816142673814770639689778247120687451544071233745072398388805433524261181380512788170440139806537414821539095091204347830088954624742013069623654647537395912542240350272879805305428592772687834808864647491374690074651154295801324652913523975479987808663988011051532528406704659100225534470246899311132125668397465513975190387793678673911954473232706393884331273395892101074981410865077145002263392872370769726711142421586032895089373950434631362075626478835635204928689969222762928550482995888757030398923752806781462688210543686553133948043297123474883034987112364904227374723632941702757628536264588050906825265137008621535062542256469302428581025599937715655708116440091760144324894790323547673020867979923131190480834773794406063005480663414809258244778055324204704586859917194669495562360335980404051732655019944917517459453987527956364227298091271549208601904621864155662709897109622474759964146287330875012310893048130337287141620951525327290465105023707968359674547314575769198407658294904972391192210688013309602796584218070072598075473320685261296830113658913784887414771093730616617272621899319168392461860143866812320761839413425532428592646106292803385588584585863014534478459261851668932422416991328086460073272414952854042962019383275744844939984629647285740633807359709107901041654547476819823818505912248318673501351496862854533881734046766253459981242525218815126905770897828005274648038840310149666506653497435157330484626881067307572670843200656435734689497922786977268012410525656636155695606140920966323244793094480209337963919758218094030646693019300267677095822424401160740701864349334994234300565286658539478385915038419697566093301914619530022394574246493515573936252440056903411248173478735731364926876919992872203113621769519777140545484911131129102461438830026471666769607353333929242581209685586316007819098143227029952430156373449464143595960044745472963358652512588242440114188658609776312671949662729018814371644475206424798633907130527270843098483526281186844937133901612576135431644887162570231551929300140900186025197208120736905577262214033190769531128606920757377760524167816355953299813823915774822894943704010908819985551651194296580666625093455858439338123551676514925685687659484017641560422826758606944532700437149235457365232219523954084473543867981850240327828477849982753990253551261850719768154009393937163045824802334029590575960590676682059807147116860272094889987980818174326808210821456741188039531508210366609817748137275057352741569135123091766210055374664825455213099061287251560809656097039487750006876036529975188030722627929184496315967003972150651858041931445033332931367336844943684671305827032201016596465482124931162108391310518786655207810094694869781762089985669570313095057774157720836330711251355054976812053478595439387374638366205149291729859342082537379703024954422753808891592295530123721918397787006129658624796589122838789229244952722198219272654953173913286405233423069045501969772657398821392956280747479341072926941514413242078181319295992828764383848945495120329727502360442460701827027907393608427454326385263328934746590881080895261594447070785753549019842972968976924984865905284416752769367828176112598205922194126240422460515874132124001164660841623994549197537052144163057503422262224848465174281648772667919369934575538939169466082788039782249874044854569483219652023627939602031957020928001206518875421549552569283546854597227359486035422006677728255558215693168029752910726006460227327465910780105811735610568343462465843439405296522346467197259978241977354132939591075258533404296477275088766597023784755293167765857740301425308984897304284948446265371038440522852000405192870808663796821867109490244756437000441567915713065230492412475926613588963090881817153723501829668974556348822744918048550335535244002688349148650854872445172341351526180242469984361935067749909754840892124221543919248042998208216893886627694292015738268130214009481439747032543977776688408841173703269624033461673918669057333282574422622705317443299357651953205558347426976126340471887860506425332290594299882520679294550524803743381129477970680564273654382442223259734845824849956565470105429856200356863705405957734335973497456377578228325393278568691261407123695512942146538996037094476901924658433508401023266910865569793571634463434656759704746736571012928507413438510455566464646166540305793808208412726690935656000849515202374751134444576167103351602565004153199469848902334570388829028578213258664138856655398170872206769648875673668857915204302704175156382071171924179607670437705974011588947772517013423468456507253264675443596599031948086562010885515498618309678419491866009252143093558821255440152789593665599627389184379702892491705088167698907091901421648132199721345969309376651751562530509609244111182622822532383640156494803657236093573902501098489525734462526845623110936320804459364283727475813893983115524923394073359000301291893503601059074099460308000614627585190995168944281658103531587690646646257626497715819459718373995269286898604289485088451238104642007998534967902963111651559936058987637937046737463307454670091108583325808893766137859757379560795176215830896671166924499704710163420239348666542798927223949291554639920746590382799302042254556078591011088748076018155167313679788660259931598212801646730592842108761089987908124649623594545350391149183825038424838997713401161142367218414530874999584647754318307436530359058383786757868972661615714778560163093018988130406588859012940757171411812686725660342690405387371908811265586854621854994400536641960190060116412940325572540621755776996649969124301240534099662040952229977031747825362762871191809710698264266491795102080544463013221187743344961923157572990290115200697016166189473672493668412574775889718098851577541792693138732376735976978161694513558123905569970943285702608280446322323651103986783699080603096767075503122476968382917505286831503300234347878321117862282636939571407989720535070295129078213595376591032287810136158202714151537696865492058756045115899214535809378318645156331366598778763571834942647936813532339216767423571295041210344510332151207465045336612536317050498361647179904412834205273795317069158143063493118658202001210547877098536581318257392091921702273688710321284939298003771393387139855793093077580158296082652068593423460373862884598737628775355657308363757649499630365018085897054474311052061405572936039765099920222344715127185615150638384056442624158696629545406596892808237383715006152792175047407421301515841649151662401759892575506833038762511107828960278643172129314888224943614155013648404353329858604151330472505730131272180914494385277193597604278699936181994664723634740499083131261247443120730336392959901871381807332539801150114631997583783193142672435943567769826742544801024116674721993122041234400177247802235690584674321464948155353488786162385918609262714600625866416441592115552899990093922015902019383582714780107159064501410006421555280991860963570756666055915903719987957409414434191249679807539534657814722423410372050923197499916579928055597641816787948523465746224483495050498736675111231278795567332052531213135126901892361600166092143262456824539317828042664177051187196085070895390242770549056926449145200586754099176307429868514921907398681951844201787423948844687892992862283483295153395593712022883215931526079684648886076256067601175310577147188056440113164620564282601313298399780724933290990743867230391556407969319096324829583653197825353152288395729686246419899059531538515510071809600559844361859097713925849328559142861535398630279281782394426075755260268714152276911923978256183180967327383916759443202338980858142273663433271304796993811194020844384576297099558572634058911572819359459228932160365495382679162151852145577477894168142853676391059042133823569230752795714522907279080283026393039335909744552166811611191889824259598387914760348022696434447206034421849793626077746874156930677798357259629289519795613799117088771210439495707555165398622634945199416763314099921551233221199453020562164709551317884544776670861473471069407116763692681878111320990724130600702829365370177386849623341959595716516935850505876574780308819666357097741807416999106438823117370804361035657675083750219712541153429846282272652829542256503746234980034901780452965063525626610950835870987639831392866384910402021510303013182388888723563011893233937387434720918399405917124172876187983443631965583649648985019477010856294877690069253773522531400048713572392028908834058354330734698934656780324378251511931783267174078448046343795338778937372604488163874314751537499894748178244394638583668183045292107512487784891044683912681956052522845026117963088273122040581456556022368006328840092405618777786340603310695760499764743166598914322393616283814690454857103359343758967071204669767908903632828934963818806342616774537484190546734795746241748758648273927953235059326629586421470651774782368645626906386670518030665188093411707074673473941223021016339579635735557568982626372428327961782337501616738296891332683599131867270451293762167804985563611670938443700523954072937756149017087236068855235125488695025045357351200218519733414156791892391356912089490649292912680290363609435222376791190003432467128279879920548977311277920109116568762059373943782638452755347339263746414288050592468873501892078406990561564791356528508618654897377023918166932906265545495555778200474517033307291012514436861791230557831464080770360722869187895012159626445884065071848770641471201727278821168549384280127271620229612047089449079766675017264705378311528210957762539358128878102860404300454583873023292573614323915571270878299415868500186942418212473047133212651069531361406454074709697903750299492201589747100419091206693867224168867109857246310537176778944970723022249126729134024383844335642619595273408600634875250163258797152106409072346771312653862269455477862221432073478948220360401209321682385976386240111071851155693685035172142845153538998628979241358183251850630276528059295627002894880001747492592754084883636112438492264146209090259821223845829750393723469491457918820956378936339707434334807719832370336929729776233759861583793178281296887500077391800274023495907444681978488472231010889219159545805229018822272935088199916016474377766578602006748890956205243078981706937186988348276671105598470364265935462058453137943963917402414659068851753644767911974663624849875268695885649795930720942032860263565552105846138054888445150063254611972432436198034737949390413869601867782783140319421293526569456166806054525978172649508194340575619308085901116455332265872320764623479211559327180100326548686820375363178222917954803483986774829822000434339257324791296770780567027338890270785387986865600016027177166068604718000604228547228185516940568596559602393201911556535211333473909401940250558896849220220034125134697871123360513220396674290285700990639723371967430268905712282008247392261481145417976888434469796812566779892163912968588585543684002448204413580697142349747818674831539392106371457710667325780043481899424909279745082712688835192415160156437961821048845983245671990092378248744990440281213006371232592594896831075952315908444581845744345843999257726288631612719810226460623812880496431045611535531469705039107838696199374891210782113597569146023549277982155891037210011706149171438242095542552987565335754512875402739870394821846715521132457512474373228247711403851858516389518488657345476628703598628450923239291131418589425664612913186188714753698429028039741319645020775770948754283231991297024372249960211342912990630286922231253566650589979614135701065714947631160527636657806561732606645121703879886658593000259917427180376690208049606113323040507216344408117296156857191517067993415616919292937126040420358617692009910074341379595856621331991924219297293608518167743210837246996342050345716251007270090837303405541794616486049031444633245821835833002032519720216861170401468739551576299728194126959931792647068661145499353237356085667196881041431759159124503033989416249831677678299597961009335993873548135965262011543469517108412867894656762561903814175546857320759152021898056549056028539615708237354080590393224042533441299815576388529844915336847979629605886434397691487824934796216666260929602271731979896319583620613918492170280486642394631925224973882354071825526906374880572544675836068588750375943375505914383464016290760941311638598413375562429714451330479222341427721917631983299995086486061384993384359257097662472972081936555142375552309347694915960244382409053639940624101366851088417377974564854342466584715956911049352113918527159922192820422075128988335352103480418936540965528201561018225256598012714652992405382207648750568522717136991603289272343764738062797443399177252675628036635336732635380116325311305619160737156314303413518396842297576610426094491125579191669727648461581782600029437772295286471718614465744120262551402419492570480510792728506300086912857795803693434991562995507100109923365281152041999536550803603951463211639866589002620089951130624889339090643520520034285263261009061878017850650896487519680184763325864744763353874436002310051772394364699771849561746577913323696883871209393065742169010461989822497622632161922869138176397843531069550400425485651550054583412208927152387879824621134693129253564746439906327595193500703290707472931985568206381082824578227524873119142831974721237192736967424129361258423309095480938608698827408521058221943644496139878423299435805601635857851137294817062103873741760678640039025397306436648796438494026013202208559597992948575350751099578035390591472031094383578664783398837033269772278844481320700142514663655513979959818896077331944689904859203973848013670331664706271442217992353834750016231115274618641275090035028128989921070286189044095304819205401288951919076321112098478483362463170528118216554434818627673744668984034219892743256904823064326911513585887041489980453158848222803933403954218964172948028177876509344444909832175183872993405158351299404816778783338498995212097916929329396770186790423744587177359438581446332441846814867734386493889648564719222976609911147118207095039971859367915989280872202111099003006727344482899529569391476570426545424741793597479708412981944495942097076770468837720353345418471477853870961042698796211655904198596276345946266334602670737712748786204068836670371885590935398342143456739145069135793855193118898036901051962104807189044153154416265092457433434454136205164815868606958781347859804148094737057749591804445133261772707984327450506875275462186877668835092982669063126407282365446116837705628302842145084250973621216273247541523428858690775040691403391000807093627747117660730044778622381516565392550991730801175578987827780902383229355497210801222391202716346296814122019065524325373062343152060749794348492892633986865320413618910299682444172413295486456452900693364256961737601972087757468049394932504694073871135611765110624089919244972950424567218436142389207049757907076018114306325806249604162009611511744680449136041153595248853687919926810185309995159429512571274453712654050251891081211061966837016493130736462785448689803581391626139806830367602512925291312441397300241181092829938807569472613113135030431931143384970443249752870829066519863445688304204365499583284971525365976408030969541486386367761778184713549228590143614959779807652543072529713549731264228573843898086021586813894686301033309262713511432637825917295210142765313992035626706495012716123396429195444366568240128855685738570402397786480445827065783799266815501479775668737887782956685695485987385521853319300376087102287193624082822262073450034273728451378018576665488576659694237791229338598775086254810858984556427110923233811524150438913244083490562576309067968969390544095640226357846187512304800433138983287799276474485446105318722540034601647913464662957515351606278781146852146004198082292411846707754501005292853365876165726470446660293128595781381897914669290834264462996107385176258811048816058663559933514268019920128095514225974838975906171725559402315611154205560106007801596864282557127681391059976073066931308141357077546779091648647688574638106053377489483073670226086485092571098180134967638212569209992944848515620929433258981340057676923013740612361377547741125771852821596523160282015447556059074361417133649773514403485023547783528985179946667744855362807822227193963967890739581528887490869585018939729050599942923079015540860167113549286713395839462951684528042774372370643500269094919317776177600642354611820307846273751359370020247832419038552402993703601688752865331379657154253892461770326335098898951503882162991303080301374094650338075353858778467322044845707833510664858313024318004228317732688123105618806972014089640409120274085079611894658075037669036047181433399422846843800717512351151688347835241770640275874416082176217215115766954495748980223707253048397675634471808794607015822561155418885522016201847906867740988154485868007824887852183881843464825334339024078837798362729368363401270468564176987426368817928309312100476810390510210050206807042105746933994265566164140544115803483980231638884030135685050398782070138368411906965530505384757755930221649905160970457284665565170231170014444899356922238272682527218937926900415313316861960684953112476842723142440632075028680010622798649626669775467326345923174834178911087507609278960836058501597081998404580595428497974329882205664409791236592069408545656384859658670036953176014197107099091881147982783901124797103531445249313774470969340360326474887754911781046194056754195556263754166971866736180972470615180329416087953822840199620946724324813718758459676805747336446131542871668129124896179491590344406358785927231290791672759926260546580654366207181525603685592081503111265189624788323694438849027579228722385049635832913422832543516542667526128511510284866776778422571960124952265472431587803773975861890673333930454814631889646017781829294469867358520795026505472500801048177871295686469204408478674402149348081325511924234507456185529139968621523548915644645154441251777407556664858794215354742700374179525044581451200570989346799481572512943932138392084703605105588835684002205253023471141115652355641912661863482933458605195078959543377963634091606954823283657212055025653815945980165589704784584767366642007498228066942885045642779874543330766372668082174191390380978731295274378615898971098134543886187231600201466668188434818898462549126328778818881795472834959573298962665338817447680884627794624443385423724344676400701970673863687858025780251468683794066980161569529695505638965797242820303219370820432303245178118585990431194943603649583055805621630616503595329867161770880137099903761446170839500915525357657814011515641175697367600335772252421289335554869294907482872170736776352011946424010354313693872019910144601679072523327500853645253159784826377868005982452321019377619929569042927574262557440619333766758510344903386717682106876547032579198787460775974813053635822363402225437092560624315754172085223695269523447724956856147069679425113749655177051955409290983761284012127977853897048672418117318023944671749289706178024144339047803338085893074334345002763993441567983093895455672514252066034113707392118101044572920355306394055865453576436465843312756345170698682650259689813704761971522260601891529362018904880564554809920872108253083927490655492156839937671439072132143145825822265079123236050943529258296513581375639725891360433066009883196134018551043626806649028648217908093858779384859254264005111137118265725450759640926657946597951241735343733991149549378128654869394892401686140435236513099809974417473363352725108853069068684132466683060050704670669426258381267587467069253492495763936913380775281843494502984535379654510497632031272888232083938509752074508393895094202719329183292443830226454271997528933452481234806956008115900651472518042990725828371898442140186393377826127013295152751124298384551960625259943850109165062113679865479192509448047381786169960472464847615144038866069008374097852523892076046531414969944699634258334010740475608202172000775518188539722138635295962767391829553195001006137296886337537295845361814396116938720427090293236229396171800975219155140462527092888138908739537829056749031980411587379552964885286341110298217297845712665061218603230802716423085960616057633673173765396543300915581837813526002705497279325551162329527916882219879227814826834690487006188121647669783524338780397536823329975934897313208576591188711933240148510838203316164947055650482569765575565282155201633594873668251924652903589423523896953289295811395423536412445721873242468853899244545740889050725842788044357181028326370552425113533490462600556752347891685980534225096767407684811492102241486281599481955568251386690617360930998931535103844149047316283437483221974827251199627320426059343746161014985058470366004295850029755747288569660478619122705844922141126812651130968030914229394472171652427490192389409447558553750436260735273016347600343565733445857771639883581341579166615264185848328459092962889804329949709652301214251554370794036791035824384249051542219622480388717949788743050739816548922092691076641987159448226223281513434155704671703224050989538670185219168235729688352620210297696348174521260708665696812852021579404168248453829881758194104447007468574374855792627934692666218394058350722843538182702838175028906764797625808502760154569660858781218650477852850954192665060252544167367344755596591442954539277310655221090638188647636074183933362214114529205038099294576958608516594816146081433641519077418919588558659353761975214471650440385840282836790641491592510793256829233108275822003311311520617952326850191058129794768736992207594594138337500200092454636792712811772903151683311736585554715252572282387233037092907901390687448605557567798857129971387479683402660661887289213522431263050148576428774539943570846237412995843806728222207583004133873717452680798330246967443252705167449856386637001218746316933028870338795439611219263466442676057416545708693268560687320245861031400080552503438379480847599706554767814311623578755815892302916064543450218048491061782405926249790614511238386765658349822406898261616301548783222071783327169162221788949511005701904889639816306774267502476938272872872802772636769183017812556667738909141409737962872158697540811065249587924333987261511018692819446017910313218562027588829069785784426721558695663846737912435807263847245200527126902495157136147978109520909888025133209595448681130186801589363113490893431917106529545495456402429916264426234789061740142394541213509741876670911325694914885803610623684967865332053690621789100852064629123973337508535578514316484794978670245769299611562828411633631488915038975232146970941786481314812591552508696628510163074596776507109510370010595967035045356556214143560811957396613288552579172722039459783267805016092055677843741459958379074159176109557702151515609078676665872343685414269400469091177277800015741604971313910698582089469163186616868916071186905116031468838035420328100649873058503680897852319167852758460920675391382578818458859151662444128840998914651797200711531043865179247481604254800393112416080113695404479932850163330874384501633203032031731535274110055505742169891013576919267779568609881696582735373579577509951524757962291643923537484008531687409249985100765373412392548658288333553495242374495066768708095308277813508160322623534505029432456772536865106874303573909501215535730646249583795422133990325131998044306485474066031673600206333867395356157357580095736306376536815468024477641189951466631802349003255746788021989165223465573927674012737682717623519197496957418635108777165448905427815566611374298755938896669929712344594533934522160930607623285028699875516316754775317165416736976062727881117419004077911650487981338167411207972919716856437734827802401758432487384979602813639180694298876664146717483268899374702214760319975360346781682131035477029910928438070544130413392617599615058782303884503712442120739757926128531080878680759002263311553914811392908405341243092454576637722336210142767255149211950237403986273207258676150842671589762184460411359959890280090741668299848743608703701287166244515008738749371422452561210371006685215721745040879379463033481056287542679135213186698846166892975038536075637812976501067885591913901180225198969364747645677081599045199591701159855239219360528693452723710523095523271114992405411746286917412985436704284735172755700655595991914581104056195754817633759247877487541660524698204766141914362928720955114674614366515836927125878298396954394658176178060596555391352996058249893011808515415334949834310040507469813158603376030194152238300024879606041903052834197035693028782697082552393235391202876909819278577118264484363383598466747440683668077079544603373752242731804325962809066617646181226293261579280233982622930213581773192275939078280619893513223524114999741465244067662576719758094523097755380639119570614241208145312261973665972092270846974191516563310984546912518358753957439655866633583157620246325566735798857403517017095124168467256500943491211362448650545080476400855132563629687007446673875580057319356779954231306339189411382010383884854540011186622033574584165139495377940689150586399533810486951037659789486560646529197188522589085189516126321283763323403960917755690847831090496698260581269949671774705095286464605870191949456424965269159602961651686722481091859995646428298436563703811303806394181840380768812365439908478755374613700857751707758677221913144856979361783572595867018208113034729557337945169381142417057926640650072691345636384177851493208516733474016387095614666786826774772234610431214853050719480372247106437916826295110351636276495829460869338453333130110407016495378013510388530297290909000515435793811748506613847471081815978836017619037332752657372987318263302204331177320413638444819792133375634152627330885605534077812541534707935917924398055268531753549866698589336306857834843905951897996600676303939055411368785380059095246242748158580419585169066539484401896361552425611263246561390102998590335148869513048131614843706204023044135530575084165629069706881574102613935783588050936930509716394881745321141539710479142174836200664451443863656491947796152702067164069917021333025952351862357143109118093019090202500944570282967950598659276689377703491439317876561423985514418979729292814927896807403141929940143743153550453111948109934136146318818961018968844236868012831445306125853188844537953090097684912854033614348964859539615292906104907785151183618644212690337317725278630264175934393691589770490410738819591560897348934936311612554667724049878137196701461874369160890467340595818652865288178238769035828640662525783418057466024462175317318205065232552404441671512271781195843049182579817965602471500692886714956198905638325155566284495645416450972980944210163013487556467801037947753914740109051599806628787379748760983988211906531778090946703308136686059111410898522747063295912088895172011861444970758805020207764546278992489444529673584596215423173268705291527207584235222624344503468269102390880434015774728756780697492581254887378531120201089075697206853907284139787270547030343205930421204982250207899127482696276267909557997228725531157758339201550126965533653990834395452903809731588553851577386866851716434802968962094347625123808353982453685571733311266129672224484383640556487593316646530281364712060811346629137690462532378908646208559236713298410616128827537472007103871618919780767066149385758173350662923223604501371050187111494851934293983943670336318435290249127175910474284678828565325174618369841646254417565193818772369115746141312334566536100902825460565142492951338490143613817802932205269728857384439965837138528005018812698436531248905773827988354939050643090040083399299595057967850545985366802308475322777489436632951063145724070273615937123804102085119067456036136877481109587926222495154214260354968958494128936303596727131801305234940535748075375445412945686352125563089269892312184457969482867552427001472371526998662263218228560040609088656049456672109845171965009953133536606730632897491680291037404209128769606472834313590598944739298989914214925637638942964518196371618681832608748150868457412260002984103906680869395687038529614658216347666617576563628693326032719653537788832291528207356342836501039525080354065956920562351750479015990913943762573357276584687242266857615117976433455425583023964968378444676193699323719129238046662955633100986763465561487596554249935948240111647821841417215456665538144099628698276149685930240966649453623029003525295718492278565467449492394205918976982398500163344956082907538094830797591725411362741288965626952780252089849942003791076192975713589646079700959178561191755560842706635119915516848792079276311397501039384433115212679527191566802468639277870348965899853426445086411634112314057197216444046094962009598730633935229941333833314961915221864652711839988191790929106182138372838172994550139101641562877545350229826493209552159010125826346623914551519231538073404492370371393965046159580480924244787862985664654648426445312921854017332183875760657370073777371193402485276040508843005419040537109522131529850370672364395682345780072932303648387878060171489999015324415416712092192093396857142795955550716687103028977284964319412642649318367251027303333610905951035980596444026530758829464398375114294295545049788752023958525061077900862040636436805840212968656551928213719977634022936271306685890282059766255728688276265688010121398630279750191326123415362310981774213527939007192672281389202204294173927976151127221991540566671995894506671454116818105644506746306661726367700236080222852808567359855658476309409198021933047394272248831488744804842794721835365704371926351406107330500110227463285449071249337370000701283125245283410160660810024743504683969419519656374312932714311045722798990035144651693711690385848026146525202453016293838304487154070374887686656492607250628438991876220723747368199089043773163914848024562680360428543278478437328714580071592175820611776146155747414012273826414347256864093192816022771547931372331724670110960796412524187480341978904098526216316463045068459808032325636814173811457924839253746948631060409325700234838342803953860320315664677845738959215619842264194159673502314304852999890776715174303379316417149286330203753181286729707213206650371081853726420306519406547571395976929726059033057023925186026438515656068263503432875428278958163967898205649286275409489933915235515967927260689904615177126808686794306727616830620982320220300555276112056219279186436134046712364710909913892938469051813347860212959701307604568442455392229115863878708556850925413131786203324831155454691553231165516244843376642395072821653853229250415318647604166176673037207794611859430582834746768630119216372943463461139626199559065208529741793645481134234091256669780168013077276075978836727652916962479135240686535534504226417819886643438870598445130192269300660515280708032698850596620291022339248455969422876053668269423564810479992224359671196194009270276911348561316933919843590354276141554645750705400509301625175586083057072135307820769968161484800793828184814662199349015495753098707660659721912079684998794492316403044258400370023542886974907750743929736339314937242364981654071247726903221070728801069863989355811121587580792000304827580300680637877836555953169280873102495838987487102524864420303845600484652842079207773439478448287756645941659078578307670382570069046058897178054908675076067095241034730107104930893551855915315756027332451702263105483380076156928949134273255926126680482699250642215394175417624002549958242450453604669199685780952795896611148201043434523891365508532881220321856676669063542607649434731943492285148972665557932940808244105285104988269018380877597378630738752396652477974749448729339273333291701077986625241340670337065990454457742938068988010199008352819287137502811956624930215751027866482108646009568110643269435499022616317602713558729057682390035722900387022118163793323979435374020031812783418818166441395625069074566457424914321996785463751308598400356724835092926593641218694310629511394813459780860265316398818265607674474867962256891859600414014383884620429463573700275572054464951717310223660174262625912422205937102329996931362780264218863103711083585636216755701220877668729530075046920017917863596522350928047462253423447087765318672150553491253070196407517824081717373816225139140906899135314723513091752142399698195976807264775800072206501070436550534932759959861657010345472712528978530165548715274175563857183424958764950042396504634053508510174721373374570846231648525191402404138418399342963263811993218716692504347264678271933421061320331460405434293097406406885478178438217409785999911539442726277341184658131756896960010282572637240942854339772600377139403334404820624272939178853338807347930494248832459530018633078772581370398287063325383716199196010609673086156429853029928148511201565402377525414805682010767820729335573130669241647911497515561576235827252145513050920245240540398562472059471695981141335439054876264502747296153740574376956210875951884670210821519388260804601269145578355966409854551582508819290051001309312734066652995233507961417644953383014567779711450875585118889574993189926780800964171278335109572375261237927850630193606727400748909227107245823266913693659615450996052373649112232064303532129498955457266249111159643919040929614086307151796860406570479155839083869178822163275989016890957142172135542093057665672080386708796287593206530502728289706362249188699819722728765155133252660209764405269435831883784992642887001874604922725245512981412548816852895943460664006698042505523043047494318273437865959656220512240571159492324442856161028821477208828634751582399674646136369373888542540673111942395360340927884162705427261210126636220508244586702921588310932909489835348063233437212797719249593696406460705094572007467641349369936856587323283864651182539824400564282617165130728826513086968321986931870351597113361613026172631033924822635684878156994740507650686135471712847110872768093925132589175074941541894220826902270780574779659784002451427487312528861349730184024994137739262201731057862915096986467175957732822330192602403190225821308609055749290685459078090345689704955177418820458114041844183615116896881553802659965821331870919651123928227026971084182206179079172664404196469035554207350603950755805006974907501855007098420345468919722458648081352349521504694982036725172603437402588414770334194108561871859224890719224022314889555887454383877979578052765610893666064342259765452750278405331088404311658202520591355142188015095702202798787244248100365139891847649451641924979636514794067911354095222159070238752977572769821640028617563543577489856935975311263312884173953071621132122407079803886921980796054562563414787806193424918719802810802733607774985749363270070534212173067462411663042374265025164041275484268567785370837630998274726212763186301556630086199977677775351737525006037912137167196252453128050300698113472114031935291514970286337143571225279352312746290059067167124887457860290643777510354548718627423222955216506264158864393522568475592178093014739702672650897803524651813635001723166021237860614340718795187260525665964004814333023655630077309135628707066925744258717564981293496746224814683373439563771663080038372782230431756337245804917869860533951675979029614647098839623139189913580057740586287702191010479380232988203677811333079037041634046224589632860537624533821228140460433176370737673848505126688629966628462866900381828706254847652800195188755799430630204533696296340740055092083569499645891625891875378403110865947783276089384854035463761636471718682724421874712352321150056791102227109441559018261346535679941807282222576797743697998066092045411438357687331842354795785850894684223368003591819588144586472967257150003906799776504105414233493240317180416482767353943233406127286374529413774683642797483860562541542335161409955738342848450591995670997146854198144269814439985908636847393865595629889296032600704080503007666096535939386841323987514829700617040206373931743343717583858000471942478858264212471159175206200486215447841812827165491880095839045841532166712147651561608569437672491071998133666342213560817185423549161000760657747016225540835913606001316561153647166858684966129467833348258811255992223397209987031960391907556113902740676033298453935121570036859726253419320717885625219573609801426199686236334282739369071793249793247958023316540109837684362246832192751900836757709831720724745024514412236823960738254417978280252864006799992063492649309894385179115624217805811505499167682552873899654586242757359665118137022349459653669120547514561878477295835758613398488618489307411971628401668162398982358653249844882526873676373560219504731275845547080759828169485405303808890488392564544004760443198330436894913247755642271084347667506092009277586972864868428864483928007265622491057249359699877770920348428191414891165193080096977922506977912074418703306352785666352021652658725196862237460862112022206686925048626610907921474207183788796220207305376743166114516031761300028824325736613606026636680084820387973228847970744155765912076110814333062996479313972267160152716231563432587171595231755378387935706368022385101350456042739156043924702353608240725901600558704646595687350608094366982399224570665209365140692238306797451053227700612534653944885031262383737982384548422574788240180485480387179783228508232872243810958421744774573450345758585647520641383116610355723007853302433575739729705757696940492167955509620798990027444432817659628146374264819135995797956095006009189887065823510779722119763908557619820084124009102900887525737149550663221490322033529393087944861136471572442271910485878246216528968387313775382061864809073725232179153879853132270581103680078073009465411629000254746193508337350669199234254142702013105737339179552922728853073185578737873888358417106378041323659833354375145858678624838324462238164363431332318376705557476742522829415076193921498827207294323009767508267812560873760612329825428433927866040516963944714926214635669911525974115638571143847170266148150251433016526070715689503378204423482702891171611458901123122720561052145286524793732477444669642122137404851041220164012656059652325205374408665034021458734758981515498371300788548639735451960965372795751299772655517160401405150211720033548196725740298546589427709232021802401690383178169355345397545923280560816583406165660916989637389681915064180158223058462091667529195967222455255110789493739039091943804373203095547405989237134202139843426408435017732611072919039988480010121630011365720022661286755139108140197042851912534862656615467039223352923207231212756931822454549094251568222398649851052578948805561541742541355694974878690122799409986351356180830942107467682655956249752409008947136243566116233417126219907924552711780659816717875845057714512242967778347074703780542476073474340238111405641229954015734720737284959762496957975441701074001207669199047371591815347848834332599015849006588422700736495711468848074185134216258665913057449444987078651100454272442312885755628063177293891641810952900331740094214491508076732583178616200587178608773933295502423060411346050411474189310918457751283717155128272537417771711783974315847327916458226870090762202730591115600495957581146012689105028031503394041880477690509288085444614851720707450027647531872393672958267043839113990215647069385291869220269445529686492978806163712102832233641000965505346602561983603553096107441503667286932582813435605313394595265109116002398773847960205588611921938845474935342910354227272741068338186169649561233835801594299286980236141839706736724802923599392702480259372825640121039587264585028115871728051137123851496073471032440483435201293944004180162889628980579806995692317493857562343281096564417358270766247538256830798684773197969691707563166368951892645590250116836778817028556396752170997709868158724100943877821395511887526927718979976157769899008153529659057911512969479797716186275053399564500853917422542956648124726923653663304015079976906429037992331912435023143268096697544902927735360822199089761657459739249196863888259668575752261270343335294314434074824695801351296945537482179704387623825861563078622205998546117381620385830217955024419254963944533774875928633641040033465121731799479909973242646134010604134537455169905235107484648239160711737565407202881405458955619889085042988357787762955774441524026911226694283864692173010435661399098131866647752334828404691183558105549021901905056723254073294258060542587659561246084613969008845143992200879683072733832175551986116894762292960253991585934451581801902370726300239890435959878645327594620089914083924556127992462945221822183375311324978459412583564055121268142312026976605636093590816396307858803856253212936227001440980638066876991708473863928237953238215745256689212426732620190964701861325305611606389213544698872813360875514972249624400747117761472238650477994128675096059234613495334405405676633309544833771131185489019056632752132692075601085143208178093203762804080565003697036890483288349557645731729786039551288249073186912164520530171808994518421740844947251228203440250100904880528965676067341472820816467130372338814828715232292170593026272294977803969805033109611823716218474120179294428882643985658801804259632007997340480308215424558506411548715194915995899447077632913027871560165096321809004845445673866099324488888824330739653651406170622416882772304568816771854576307000179218164631043181720013768067116280730184924602505405284454525616259530488206496598432688010723425179856296797912750646754643210540786260396154499918017829042373891836469201236325352826972982269820665423416369168107782812047958641937490737452297266903803208094460897067213485122853672217552468491765670828127478952716482154050028714011690837385790796050015497228325803647257639758331837690998469870278753246690484358691411843259103764955246984241551118561533598027353377600568127004574843271525461492500261507007553190502323195257177691094618835324995972049158316443549699994041098485695100251083695552225382566310873036032390033562531801191255648847862357423710404667918366333365483620802164909581315150117411982118897793131760731187977010509293316829057433770728605420192707478899079102011923812228335305973370979497414191047277199337664343619947854756418941907175374754290183958067103226100085798507027632114845260864943129529332600779101647252159513951991708612178926311529086304983279876231746116560956428226588803423955714223628479717887180895171434028392681666067286937185280432580978682611451750248452557756766268380190536906773534870730822898414806232644289441101943657244294111130194633445854183849009118098733333999794100115057712562119497702089986441569104677337159217639098908726711174966562971262910007140927258801470252065513417430256772296484763092490193466981527231001693298451310086555897767454673137240893542067390211646763908648373344648060560661820324469309261346655402249824206595194385896690179311675301883478503802916377755965804095099446458593091263562419135025122813668026258724753476937496993624344588035202522074126054720783181739389653576754384148609694322998074712156650121647152180068263401311254749883049484516266286676861676734580322632101900052886647880185546536418463174339643475784521783192658842846017386084288963309166294087698028584688021329057413106751249417560754897474242824828041684724754215322382470637695453014007796785654557379054512509898537498851176336919738979870246977208394708520818804646919107394243818099163608095512911219177950196436902726059844975597762061359953396315159024176812882181045565981528278955420467576617002747458629258089227881503233691308165916483276588560529006190209255168140031156905518610371222254014627203688474442476427078713881184148206280568572999687334287002014295252703491451360781835955514160536825327584582018291210162310446343910058060543945041409331347988739794148301085187212889977559298954882385223828308197378974793688039191781304671656059404569518400363580423751423607658930889139633265133002765461595771726171285344940261844082805148047176285429836309337111167945988264594301919698743645532793236112112816365618740335474811632532376565419795484850014068701690453224667139552965572412262568462148966838778494211514482692167315227120936319709612517747249332500612335163583069241310111220369825651286489728196617564369149674217031904202717938686341499149388358192578869630627741933979309847211857190536327841490299717442724841047702755625107350379966255487172053389556016088240860343424914874286157339945846055130288604856203699670347039076845842752986664190254766865770717860482491252291574306020717814492790815249500951405706036328786038814027749908054044994194499779471359149303907967043215166519213753350481559866332532320810181072576078086702986860182774303125445129539299189339666673866576243177499613051120151580964376436763200955656969667088467064683274819785319030936093818693144419946803868231033543701583207927408543060218370250142665912936821309249579806774846328295819726137105125559172785411224109784345125154784087233034429747315632087026710293756998518688943176024712279515306220051831005609629788009892233207903509564659189940990009535667835318998368200199954487883526240339835174686842638673287621346954827154190445099613993868076733002700599153029810784867539688054147027642840819892629469523188133401571391111467942330213919311196238834163452699123680085902198049385566141310369683214447988653974538957596361302345352005510728231276510455973464198203729978034404317536036190738314383659719517420987743357044996210735024929410116021675822266545838311903424862392471519894611046654736183523277851744838411976911000538188799948769569572212892153002754204508761630810674466918148511484666204991011119751536161815459346265493516904265844900622356437687382545185185162485702759299850352726596273242964544690075323629610860367787674353745365441471121402370402901066113471728358885987113693187376833531672375154194479933052041749625417523322265156007564194238827946152588925320191504447431436362253517712517509314116420096155531902710813802664717093054253294438312232275470945202488205898941534327879048064076793324783088876266290658443296619736837617676975793809043268454965103305438761878233824166204817344244557522397722086627018691315718467845963299442810830309338303709245046765216069634961632193089504099186445553915836891850136029308682507004783128293983227585997846043359979768532464405898875267996923488686898253666318520235093236270981561094392568489113458432864136410813394475601071267654413792166479187805249926894837084627845608427067012469916421341650195809644953286075160672481582339640025020554909494614935717659991024963484278356122682941085800128462481115513514561298020052046919636977269806797774168887507005258052300223767196992147682074624848478027344007601459170766285907677450547363755382972053567281380952181781465755493773081114194665090267146203320034047337958440074446788249277233081077705433993704273373951576018949415672661456189650691081917000646943511849314175634773769843567253621444819080409649761834459415080172926254139186125903092652569650099063601437494255171120730058033880852063946704726493421579344339790488609112078128176090702726585690421616567355115741618047806726672228069678856161271771743145689681238436436899314176595248922315605127114082065161382251115757123186467072413660043985652935797632233165411773070530508058001262072302511320914942014515715848880550305264520369148635242739348482295193330764008732914441748845389221560116980246398775507830047904239272530570594479617696449841732800549754248939666638063952020284981733805221526538958056857505950935666713434054883228236587759767154015555190848845437836522061093234792651533868288587115672995111721851824643157416846626159985126172997947003442639513078480052488315673119140491798947985792820120675325057396758181299185703992416299410580162593125618574439416651219590463343422069510375986547389542910001525802400573505687194895219378051327538148043916822268381606518014511649693113861626276192607679657682711365457664901222330362544473891465351826720833963668935076692752882395824059393758974572329103428482991440861779342494969965178919318869122517458125565922765321757842896696066011384727430753319390033868483756216721322340184837129324080398979290394698658159777855030534185770293181926294018808366734634970228588071341837309254016161952717794377250548516191191362270121221328410204557036333524646160618308965712675125603228648774097229779654607525159168001946449863522757487750612801104954257167468583072996275872562046117513432456189905456671776469759167648382320743854371589438056105717177363119525571499567874202936614625280073241245416576485435387971722843556901597309842229198608740468454425652810915002452365859201173283436875177888846430771431538930218111139349695425140333210939560737549545749384746668059070500555267295466678718435182283386611866151840194071634120138745291769229595210995462556894259697272202510650458725860944396085088689722027291026021919840565213037807222461919140379690644072908187288715580569672333426171679511196817999300927374812662754888014534483593754351771850335510395052099222506220415474816866387405465073906397506449664884758586664714837535122694761164970140784570598389064108880240355771241251397363334311899813327991787737650155061716183235996372367967528747058147268068930422209983124020147898774755446809741015655473442589710476383503627157201438458939106136869987953847879612376780092995730356568019858443080917969309357529047503000096781211657729308923285296186435200512391066427921825093453185058572195757031483013086914237969893430610380869006562929539060401549011774418036044405167768589264097978997181328427130577777616232114540540578208480675710453823902326283030726245174814745387854509425182145243370425281752923808217946037848239154043730650965788449016454701734159139497567298427780380322973994226353953919918119249378418093851333131465917789030242593918491804238618886897454855061365943043729031519198059048649062736545692550873769548199536212252529253138698224922916133479626770628645810531138574818158510028886688639269251365638906023943207782597167140259645330760841208320571767348790756403742713986432003069404837898899121302836847530847134909158184371812194012719647547975576977432958765773046175356500426104471677169338696117107805162913314319863974927323202560448672100120213889941159496941422201584900237054883326567755355536902677736671215479443035545941106403506987755140721924458662414568127669229115622352377165995870887234622251065341292233419135769059689276731582418835429002442937179382638829245907684881309489787757411589951027855010782177681100690930524108981123224692854729468231079289843133019811096312342656547823103498211240356914982299563923523025757539527426391058006710098841641364928164362850677903410802142798476843004760590783736610847293888857300553012798307136698435715727500716610934630847747773576885584646699356797104176652369995860941595629056106078798718074228853160860289661184657916583145619746226475705428652859845340931849744975155117639244863148053888623344756568086876153529139680609527242786188461327605774705728786141891296107432415903729671427625150872276978967820165532384272402811608339752648625655204872373116518882464835171808240076926407472263511453117589058378231979634145481654312468574634906301710904210004992694956768574571748370368853198759239321911475348756171479667187655417359071562405466594566399867240141899629810235621736656971310991826176008423277691807663624606679921331664464356356895301626190549097539176363869256812671572667786708140412530210829000354513994785486550528441816978321127393427152848962162327001006714179349304687095048532412855337547894991757809401634107955713634668892311724676085655730733773385118020980050193774158969017020026491224164890229560343152164747177628602641039651636037456153194106185406280417065599288900497248864760219897980125270441084913083041931643249756877624934457799855532494008922495613351574527479227681264898897947856346186940325045485881632278085141467965042025768451418112660496489078653051198402140731521482843322415979279513495592481855386821939807760013401123547645128718767699618455648089703973496684353262121143411292120023218982194153051697854370368191444646748436606432324485163099541552940021043125190657346529885106245028583982785975904326674948375816097699408398499581149357844253230371968545059011491154725866770303449441170801612308553148751589392178126019003820661982306039660624638966200828382196962063538001326317983592609070540497930338681896061540552765066947483087717109472060729422267054699510374879219561921822275497303726100189001863512197918873980101072178676281592858060016092157197260884366244432562889423696084553332944854957797653617195844727175573623728794760703951475119255824323669104218730951880569348680286551406348293093215110812929658825367947776812448727030465780537517039973113558377284004798115971569853980504055473873599264075384003088154139738625849083853113851356935475144383726805910909054103143157429762518944462792077443765469195148028189167491698432844799339235348590456061591014296999631931401170997322692483371098192208848727091142440380715730886882208984084267873402401590204182764498857997032833622772274289005211741565127817227430767505782231343024843584906833258239640082990974024043225672861389621462948122973147348249396428519422158944539031691935111451107104349552978196311584835059582320148354424400334946443205672456286314005158706466046084253714040206984382183236232989191253540429036596587149824038896310048914718995969724615762270812756738071284982624784184960718512188777396187254215676134129383022378188676485569488236972226072762290553679639958229050702758543248369779727365570343206827677971849043307583737950253937795901879107967661116709969643450021014127159414517705855823464604833408594073321900048979659852942039594878992077752449166050905335710686214908544429061516732019170544010490613801903049760952897404747534038866937875533015262650508007635996579535305997398676258229676453852115856338805653334115936859472855177765018420031689098503629698563483845735975831896309150177610106220652326020049124945206908832614679705813598378582156883153168078129917108111850771772678582866607201536646067622246101899939915563548792630714441010596878916309938999516791425381144595855783120807200997347588302602649806177885455481304180956361056367675640876944121176820059004457118430536678354429661651779993075147842429629633527691545028197063249574376305192366456173068740525703668498840159510407826258249545038948536148659899196412301900178690432517618824058985289230106585875365446150443107026871230262730643179277061861717792483866039554545841827323289851882637496511248247077388585364324946799519493552614062483716576027840198402688911324867072710126088177520793350822115109470398127800855404021202392106313687650196090703025845991688063447061966016694616295036403558429576158277928478717730151062461794349154504447150614557348756332497675934832790610242216596879854512207426867705168075557641985997542468274890242065019133685393245833133249724791250754031719107784852677063638492838964632452013174642094307515897829212569430338326483991041374907731270972928675010855886149841536182528916475982023627974760286842938356945761330931554497145745386097417758846967483897560177713687921070661766681597507041594729466799899284356847042924275700192935254663067713834731534697310823318554469183980008273381947392793538510476105472583800487915341582511814460113143112508610667103711121917976731842168799084756012876142279449747173321670882319863594141885514938156677947767163864781334169650077183036062604594212932345945908402548761550396567339495956172876468044945238559929496024424506832516200595907809243366746944837886206696384056250916062458802575929412787000618072883682907319810216833456580838143369566491859460600269304797966293100659648330899887957058590135733224201591819556276739415218817072006227597590877580815527781851268419757206355078815110623179516510685229948258581528383546988464866061322783793279847949245939668215327612598457862482323532408561763766927930703610993402431139708166271498540622044478034871549113539920227076840451526751763862281835951785885278596180858606635629297602823868377023156791727131913703145416621368386780769626069513011163511152588905696874610311035093748342014537080006388696182222596184724342082100732613543616384787248919762204113742559978840790634611641618396408790916782861243299778111224254299951910611846490084594237319732272079223769998913382801253211495260904103199327694976234646151391717268330458337831697275357334541363543639764528479282861020429028890752862178349555818202000500767251920537435947383162672138524922342119817383433812863736713904679039948743462197063522939344104593425572246667434386544565052994582243311114889698002936466872182381093003830828104799068883171872584279593532584501470801627974527215138054832074069028191108607277901233256387389432310097986474506595778469157780219309440692247713037335131658093268090941691293922376571785426916150976457577798570655967649665718589046562635313936522107404772635614562606459092578928976500405268802285724483517966854571058998405926927368773274516518974412423291154464119666424152133514770068131996439562621465144146856928383346991501215333434797406331318861936258699334304560819022777637246174402623559966369157198732303388826541659473887215401899081091132631283094263738063585399988771540307986104495206154000524743342824415444339456453690902276649412076348855620684129881079903267573532543838963343653096870978661271519486904687066700720519647728330035979420678800598752968657828260012665262297599852330425243383564564658005925043496980550395211162192389620042244546457796545178303272251892605268678160445181681325053564544819300528577103437641548619420086158526234412397419399259062776094025059296544394690559603131280422557431406598908763888012455411390315019117668169562775214689700789307629852704956259666954112879220756952803546303822535988120724722330897260430466464638657500426904684091536744991204853278424740833808134497488629153430669263817766254465493118614932696779815030654594692295999716129089054390700230717620679880924233775395483509414767965183125393985313334158079651898850071077176016451846640795492891910037470188183838415069052004206956672936036706491804363120869132674223360683434754133093357933717843190934482131264755151070028599610636031753590064833067998995742193964464582181703900403153175687214274035957708613152058094430108145657166151423742444951160385181423992625675074961736429779915900018690729861264453630244396428111524823867030337117333292101818385679844863951357316120328178523005622991648530369337640835482175415694323034233528663875511322756414936527665196195861097624371427244931918625212240230314309028103303736346498643569490423934549838330753431974815202333104038624049203724911078520459304081885554327378750137244303952002678130809736636422417459290636900640343670158903725678331421422871056143882099886850056538056632842684005972947326968743134207840986379564398731692733584695604769813267222218069037568335047833242147673907919043781302109289489981966466616079620567847572910812055286911412669654148734022275231997351108250040265883895739009899106217324612776292715438390010241038225941762052954938868402511523975991229093966497051247121892466780741831608520610699645478049490700475399542812597568083917048388909662544078759966630010898711277328169783421422775039917076217644152619607935825079820475227814517570136913616158279164975803864360313176167981764345222802227354260739184924590582986113500837793841686421224715599255871059131383507667044649387719083187114326565035166668628245685018665650361811523002853628293593032760746722395675504103427048784901591345920704405214010165038856110822537723086797275821536267611257808627617040647240097945732844840767524218969748541712725913449473283407240391330967556965846516443923358582899289702792839266380719462259293616485673209740193473621034494538876170185224518101351781027509864605803833241079631666619013598210249293991225763372025115237748375093820303643619761796143269459569763686789117617053712937733493058870068556290235599237019862993628189401465713587745160471695707059871774167995446114177592875239788133818655355623165176192689136780161006309538227253433866807874894491108582567272895790955637331223850245479200061568525037788181915330454587169262095069934285011101005426166077614438219497189859411816553792929475609111299811194427136238256898893632874832844085426040633805437860016748827486332804970727347081376076850219264106430954228846471633687124468452049562320675795137541324388257485292207539819072906203657434329959885202517652341380658405738587088705763519230528122147314258364795005043030975806063568053076014546953508964959347658653723762603546277836458647641904290313183878428960998424081514781850472637538160664185411803588410717708397230046135650147444748712740513588078484129870348432924487829750800193420670937784467674816436144811613387942588307058940092050377929408758913408283790534057350221563355515498429793524525436230394244514141685119458907952914198096910597336301351986371406693501817950984640599116863985837208264643322855202926182173266144358864953359043205106007996728042123762115535093569090479389480766282056845627815856840928727534828512122787325280644347135172062755871113997290346743741566453303879969455103087387222622125068627980903287397676407598368104520590349437327920208470824114397487656390219784463495588114853675685767678982200508143443318886771148316854316967673422591190883261016536667062303646437978362441558458423095088088654356874781434442667747835357923445632271179351626851201408352815911570831123880672924303477878981391384892207333081355301112479309816822228832810860171878262449791760093819156974346717768312290998787610240929406768750698795254241253134349368187594732136474883859016522477935923876515946469996385442103219058487285323321933104512527057158340148736150135355082067860675858845217891335278399560386186961859337138847925042569147424335465473040292070479963150958087061601552039006601824987296180176743327242852130850559667939364013150489162277299748031209759674658339525514534822717194992336224184102023449826425846008415711447812722787195894423275675353203750389228006864582247601664628552356141493760140043760063951652741418505456107921349412556272242151019568250752759772773194797071607060793350898784349103294965231557981031568400707257898661402307263863616318704126921393264165686762170459005864821310639231645295601254464112156587071064634719912679937315973834667682355183526568055997944949518633487114868070555176108294641698339853809792559927135891599723474500062820860908457935039733083422719529859001040808416202079149945176724056188297111422516982926940199644984172000815042443767081258079178595068201564595325135207590042792071564273948011648767947396687482007578067666316198092025919279778584540112570579047434313652710605811866551959993860416969645813346691308154538651132959097219854724371913968301161004883525560509435412466806382000522407448470210508900765092019293014172859544576971047344608007266291158331260421806652135043444623212150755079703819605633879907551922221022398029875981911088205521608180065262715029860384444173310306448684769059034613907933418715145121668762412624208248416986357412176204638209173306720051123571474391767652319357381433209020220748507087741301612213704279354274946648198225955611545914555704261154495240357777650412515236807383658929550987873895882736187747227195069438221440771166764603197047699343779159778785795313546009057453128726185485814101678364772452899267469510715545797942631066633395898310046927913605516095425061985870174098295004100401553872152403101094222515275900815828323668151889004053649016474337380087711225219350469398339373000229949083146184902424247167766849642380417733922417030890339419648170385245911652294649543871142094646209750216418821899547818936853848536051404378910504283784040505306226722931176653785449907739402195503703986817247905005876323317137569641680848897683855983780937951314807119589272263534337154566764312093373951543039872837756043170958440586010080356863307485166548798157666739933441794080215984625284780284108670881754282963632725612913224471756857558687419707369908369122090244177518548107861834375438495688681407425616387828875114916888825715678968944313079095152343943225290787616638997667929825552028757039546469854256861033614996243942667217891352787200266362265766187626256524240619298124290654097386856527528736543427774125686521633252258084043534269039746780276539306232348428084103880895139846903218697259315555846755275687911409915392733158479010085101937325641736079087888502955897024459248312339290136973148458157158847998464999815577418840769230645468662329002768721402385720548178104170581070845021455639519861463547988868994655289000271847500418495341869344729120325291043411382025768398185456136642419426236008488068697485958836583596276186014955828217638836401041605216523659328547707264991033973095058639607133907224329409319606572149351951236885958965434527731139595475506606440223886568404626473176763751294508831981471587544295913293034384001447590111938072876637232300617405302340508796308490579573182037093574404696352795082227168784183776655237828297757167998013085585209108429985446756558680385841327020867374246228390277413228178142953229752446755770765684798775247004223919453094894769426056231763483210622587035169750940216725185616459271868183837040177489810066500574053959329306911544275296678481964166898164424032474943132846993022425713675203388300615765103117945804740470323441219707850328199007234027719811101927069838716700851299095213049446753513563324552325899049980078028843003816262893230523031436266001435983143745937285516442388547459717535425139856539360670858228598469043176926688286559576059550709086346017280519868771360664144485294299585750224420965459131387918700132314279013447804907715245156428509138448431648904408359638195730581142332609009277058800370776590732293200214820262595356825717920870954771508292484282382229388550486592107162874116858946781657934037798906443039887823361608698341763649670006330535058835384342373017297132424925114972744375353044152189156727615393276406658177045378868395958682958068849626811413215675389353234493682190089283598602124630091345071862864278445364253051653997109777909263102899863178943312566128094817330806937409317345270871662010260705741383879515192332161805863460203156808598197977775512800880612857240846904750313636656210785307711165916425932158716810430981859432318634302853020637850324787683458506087666466681430455801681046324044589299781936872315025556781622081815831704067442764078772875364975316549888017811176164489816696944536196436164518294089620388444764611230301970758841927486457948924504370760080573293280079640127468420009726170384689956034744183934346059395805680863150714837599351845332288195180821266447269058794172428862235508931856600978432202546798074041998192675917603050515020282198637847508588188519527936295135624402046327393597974901341139353083029794828263263883053271887343124280457205039328904534205314572910815200341611746948491864238663861463369639217423642379260384503293024565613528984940130205921203336391940633376449307478370598925907554196372097263404283877418181622602520967402237466285510865267499113580304804156581851771665816980674753701292878398259988478113494092705687902848961149034884485030720365052484427878505477883256702922931144237052790679073592913061898522978779408823803670349200082857864759361717619201070770437830903060693221578227485063349736489818941205161610026657521505487904025400136440896646753415113858884592622852987404482358389410577543518806053758649650567940348750808591643863500677396513056340354441156273682089439383740766637702700466444581292263159106624091539142484825100218922423060061120088906631012086958967539574919262712585484001356289488963038429645761699995223312916181341633712472828852824519414338936919488229013902072581180569376494198530050414775115943307723746478356196206847083503130851795901429253281506547200013931525646061000068932326024067228399611142686165796911330139271999195546083864068576824429464536979907100610500791108194361308579125048764278433061168594562391570638091393773871999249035420133123212387678999580764494673523419129174569495734906075952295765333423096163175105461361435001511287814182495260976635899659312890189475846752728776888348026377442796277761065809149183423834660044708429516867505031452076863201822403781639225208796857223808511554018158592881345877176502383759201991785683433948056225825919156896547442195937834003954500928327613108467287219624204600520817936913543191279197962320568827788889939313586782882338212326679480454443260469410843149935766717942047886589551468939624138150082578494310506203068027983261801454714584509691963468884505183310935918768564486949604361883773315643560579976939419818388278959158243423059566184138008673138018027052023267466010323317435114606668121038913823251629814656873739077885784553647109027871956818315753226873756612875337456776658108129033815791417197030304359443580675033339942200286866003810100726917529029407371625471404407108580283928075740444740783972228270819988389107577306828798134978243733961462258150851373275441035594409618174133523131512024929108079206781120970174725478080217750491542626943766091373263974817013650854913699909049403682415672662722966187103566440992184974354148232081590617307611902389645859288112484298671977957070818497283603948716052907093069440407003061774703932272910786856387159749107051863016372195218711943063163927445509253176834489050750355201456729825195006598222386927524915204757337508984133127101209470674743063879931367336021517731835302045308778142347418970617535994867863632889371699508369687038640313086974819999548067017218901567876903785548914459471244482598032628600729721369650338970907186094651052776133375619576152541499555543921433463350693926848685647375077058113861356171489056821128271275132620941833255460993553167213470565030382511149652846374194569555460138835620322769324617551172924935854407551730889471320061323544535317011186900915178391949554738415061885671742682530608824470555646181576737434124895795293667925159384191552726087865050820442894948407399641042650940017444269425724945551112205814808344533170533243402588758762594288160484457536689674583525319144275449328731076275975948361092510758445487370703796544632554263927482522761856838473372556130041914028499210432323840589466673613973935107756210369971917078113550319402099172930330815092314958318111420416635038221397114564681788909702778800400905618710303198677302284079106181296939513422345259993242432788705145685704837368994997860438577165036631953929157134380628410156931958484892578917354256796363105532011329749976075384694401522406063942100169964863121927495689535332334523934410865172061923764536004103517488408760870058287608842466804631405777646582781144272319313886773967231075668524770863938514430608940826327838070905492561814896626467920460042334716114363384496646093513488310191603832680490015607999883227019130086502765415250465025840848735998283486922795099417506308969472981712941357832104041897291067821997476077339565647488922927733818737293883433841322943455694984283530784871257227220229524765093005757259625799724331544912159469885991333895021925168206759537944389281924172317227561207196216835410441010521253433539143194398986927534188364948031153345627728444937585173499576606638006875486469980814092864749291925307975890991021087541470088158668043178220409381165569682995114561464978791733361967487995618149385239775653772979321008121461005493446884295657865356071331715769172280072842461311632211076422093572178492062512395113709123640549536028639235942163000536883297809294007773411194418001405129043928446474014055657399887607899530023021298335438412554584936807896163608267684384174364201428779788541616886011373229888530576067691187830969140862502261189004383343186624296253627624529161292516275540995588318782719171264712767184431872606921420976548403289795606763292216627658005624881795420972104142063230562436372980414608430837140269404572480892600809041330679913123104660072888572182370257875561046865057579077853321868411272053236039656648378086870497693555464984754875405800176241289535675154634950643921592799503048490619654741296866940629299092176111918737092929781019604566966817084159984978548021804213570354555446237696569400975003651418405734081754072750150279534189435066732387211271860846591507529860671790049204019614898475399910707050457815314786233852871420280210465575915503201548820210618040436441051771651539087629689651904399070190430637289152020947076658475263589731710582543086644420795147511928257834724213871902641113204880913563363934307018799225027616179848977415908775010010117723634423569429785669543290906816209518560553803135868846821205553050708460129837139494708384325790809551024361917824570133818541940794738008423326427224647050213206385380000171240327788396106964969037460893651017468639928235613754546633507559623674753212620563862400978211992135944307289839994848244433677727499850559364127534885069741198430054648413754446965828950262822767272668447741753344058749052494034210950001671605250507863958852814959139100054068380769226433355053292491749277664305319918032311826902100381522533333908405097369219637373615689600002286028318228338620594377519197742519927438954302399250000137313271615619682971153230397872158862962141488589889720042657255284234534291968853022547364971874285461177177378305049179908238113489536570822777661022864488880209304711040460556909478108895751819764736352553451848406865089934686905996063393658457517745841941965887446641049359150384916201269663809167279289855557898585299885219996777745397761689021108083876228430206774267290240117769603053665747824380353967860713591240730307975623541412825304293688457587307559722916930845341329198019187104082157488581328922099388864434986515063538280791122085683120642240158157270561769738911182751141579440316140598289580779021257734469241817056408143973958637925095014050096265280458206599990034379180806491511951734635837114613276474342317156525888338084097549551707894720783386182583673679697934578896225286016218087190998504312778310483163336677272858567933537307795734097240573550437409864507251787561600767664532768787065531596188542196320132906554650311522266415479643622476325714358327144958567208168918195470809576106599102350843550062382687554368824882811594179915872080836019989800313857489883878138291025292370894159928266926870576099276405746164359379396985922074897107953525081048400041438418938483444579093873759623149593989716645819260512462461525963511463139141249355294953819209767723139711675804289528275463398400748882968064403054397544929947257566749350504417298671495353554877883845626199756156261384355486256999515957617196615679824433539311389543669887795458184052360254294377822140489966690974197469708908827233086777173778737854427613854743823061634007479390684383454579515133534668534244108244496343764101807537118932637362706656953936358685293559098323690412734669731564151971674816339123542273152293681574714483502783268565696322662112022863556597977448233412837234263142649346666248014338996982296877505576589296837083271259976006631950728620313233460474010480559935703707606724935536137284045754891548618231661686994547243410349853008503795799411548320216534977196449971415075514161637181148113229241189287154918550989768399317246694231174859555230898376186167057415341831129177955626688571502914756482166386986332840422258821359557871765940577735604063761566867203878456401552349233209088406990857902530710893234046836765712488776327709344712530661280534086632668257863975161260288037034017083843807693391717568780334237382704352509245223784178616797795388680865991003750635158734117169605038230459492037193687375664562921466693519411236063675617816058325215576917631168890771378778612956743024087515144482558786173368538945390073663414780898040510081934353299363387839599479372342206536203474104342362969455002147344242440239505361653100886964365772165254163659806620157261732683364682560624147401584581766825574964474418054991407357801820345936252681006385336772892120679006059776168125298842677300315469103462510762360854986532248878341423490171688092147237260029706801015380460859552877561146019707303324143649254421474121318710715194181238641667447803488179111864454165946723028206990070024954919514930202772528535330627047157962111943373938291468956967657219203885119158839869596103019397004225512969590688719755484113435211457039228283576118686826432155765452506634604704598709839495927076278419638298903727559877394751046833215446611826935432479129894227409904104881819404803028531312797543678375313198142416398379922404062047114493253083974864560146073556611719692661290431633864682214965114496883929396537148875773872798092643304715914569152886572383718970702964515746541536743219914460293906662277777869206010553067191205522153420860502926369352694610884149440846629873047688488456207538403571591853968448535656559606893788424830862792361643875605597219738323841988956259317763751316990786834810487941480286452989561176106721269924863268874039560753991640509235330713311764247481616658879888580404945754770127239663308355275447469848156521041518486335895262412069575937980370390332813773029525166484061380440046267726203369026582275162175771706783545090543329798181119224867106749456397455623415839826537177815098211347829152441314968344400521644782108699913659161141038485354654743689732241515497763354492956200998405555399318218398099907540768144521585060301405288417548709889811065477529688639912896340358918871735864211145842993943898915985657498843787722877639662594875710903384022189740597880228923463727642516356638609429723638268219111104076588781548137553572228767266593630564113884316212142197001628868025997658529127611230846026427778725024333656744193254166977878652017418329062815440481024951197159325088088802033258668327529719905427547640234146729320834746063520962272239734490324749555945308427004746775486479329855575695425162490523647233967771294515371062263681320081776982553629074825767163653699922041351830663220306983218801059792305381240726703583642267668069861901894751481755512698778636349397773441625366055669451657097211230275300553402872194353874189982169706854046639021331488229931921504516900741909873309105809421864881953129623763688764182175603006424751618998431182600761483801681260259951685843062722311513567702802887865267196232113930628958803444794491003625412400379918679593229563792137814668114433608562577805584273611330635798741093283216028195200288810889909659584902664300451613169340463783501953239235047675865873031037004506900868590967684278430490417650049827741059614127942125111510441663307555049355563106217708948795942146358428735610555093211119806655102495236981871028200974107420933214399265613467959879198941846975099567515815505588001968031445160100272783416532592839976952821039777561714913286462381723303382745444847748892026306249944006712044064208985823703105215188237293233101025355689134159672962714883456069035188106467810905879435457741493981229499078600984789280487594932721459164222435826612279768524220673493900794346453648832874392273104109609875214658371690152986712039860342774359893818675268584249703195443258418771523743915031488991123435997121535300090271581170030981025971602969226199577390547860747795310408117609249506474139250774430460682601074801304400912900518648752900223551103464844878034905218178925321272130276291674373503786365232682596086849649958085832677664786280877179594921567495517804754206869844820767540970292806633389426503422836295083841100621570413203683576541296428540509313302881708441059553025866726460979195609182495066834898932238670803073885061880204263623409964969874347609339166277778476893847624814010900227136698077232404977726236729709736373109437027846659958392555901380132443452739788320752724087816562451981340499618524575716852093503549506080592174335186423802576172345975713379622596381064228995827207019083225234792465190634252931431671663358036282786496297626863388457017864758280922388034795708388825108993368057612390477455988422691207469711104730747110298212731606819118915669601648754239980906071142474244729516397497622299579789900647661779917720536925858329285661204814971109523521750856405435112157368082088792983084684304917797537248524939725011766400025821017520896671173460175308374588056953520135598764589829326781687607813823288461538821947304246566871829480110672010764676592860927107019272961918818543060351459859528639103939886698378963500977042602232720656043983607297921266464332207929298978449310467962470413532372543033586211061868267685503471112056046092196794666469564160666474305014428702005845592390099410689462018196944740905833162327530981880863305353958100014202874917851297580164618196921609386915810825423962064612454684873468424229781939510541467542734545676411948634327097833918174565422787235929455123372041514871686851628255851398876648035917267949626995714077945654999591887919941303242437170556196933563654970855474299045553484416331384277073550151515912010853344507537163192343417706937921702039556594899547871509386915179404780147884849946407806834004088914540284833346305099109966719019630333875901744575805562481953826060814011477928629391940223626969382374565787116911428320789978948982864359625464137800465590982337718649082530873800954118517565026173710565846076191897851960853902917380767426818426216541161867386621908447203029090806877504995705152913632366432507849372177616815943078746629858787686999242735208406139149499070861838181686302989287772422828556065165964524529814414522465354144806557696369801497652756309512167891062192286237296425177232463839240668450651115246707151268320275160105152217438817363394323966525004552716272216640358978670566537183705241465574224256167213678596159578200900941683218878915041319004222501026164226607057952360205879943431932271743960924543028454336431374560043969378148275521355602750146509382658541089124839190985729905004597345261813295997729612234205906845447065328299991643781554774481604551500692082281261824623699564478974823594998824283568664068821006655707218698648936798914479768532716723472990115484889599476374112580652014162002340481644205361962078138420472529304652437365585182819979239802473922591577997249902943633911293973636169037768851439211341346455775877282082184050087692821132862486331576229028516127589902289820878525980287398697994637077260460582225125237897872171473081567418885289619489552962224231118190303192674217058661635029276672596043343103969688165785526339074691908895764507732550838425363821431986895206666335500176524909046425572657103383450149611407639794138282237934113895850653740917071638716367388542541647543893330432765381360178834794559022195845790412089119943588531644529295340095561932513506976284901336450829208869916310215177995018656273636596231340619528018676386815706535174312260143440430850562116181614097044254986307327506112370762509716301660400852899557259384650768991749109422786753770161672232530109544071990533195009812609848955475729989197517771824506548443646552688386012273278630250422897987686384751225442720362647642327430260774706798531045913561036110269811951740914922122258362316771631727623174868753362907828331644864984262108332404424073553954495762139420577121673172352563064726559050686679298753186770905872289098574828439777975531706006522660944558958087710588441255142411175538565548189738844401131355545698797021340619461151625748975138295185999174897598777454044133567515592539120684099495337753340682396166169487142606574712610161784117130983643690405492274943930942774933218719389721197217039888448747089833444782531980305360754134820784324926058036352825464088852928514207877943211339931633478347927417388039659963797645331598664089668869195441710285637199519290369771095439766679099892688248080061790370284664177422076352390432568689380684602923689824984163384559152076031070437843439486779004743743448314178617456690748989162720102161785145363855559318839096750154448225381916862545696639102302022353077310342371160236458766762080937583274998222250711652732285682992307852718790945664936451545090585811781028204547879453327508804217475045405507002446074093249019476350467606235113076487435292121879369336438532727186785775542135656898373245236199298660305672866269307449601136182716366466532145412822658515797740929650574369484131688012816331211414500821293931691568041615560761503762788979509802872100724922901294957804395722017026507760587504348363770002281861660070705619599171567251072297241621850499359245968302795897515837997176564562682589423893435577829535242460726706085629377862301001010129015957644524843981576202161476040066363161820734518865123517216206029211630625905234231969315926104606392983425698173516653322682554818114084815049512165977132155407020595843554410077517966798407767517562476480234808989597042989252781788901848060003149855441137039276991330433072093049705825933974969939832735649326430292480583770611018170758076127261168585662231788207735213280831839223824277554861088604124212976197537795303350360009193844027806375484081579436711158405602143014624564183416779860071593075361816455216836578287533878016681544992257525099345692191489987709647335743955980346091282971231529496075151608132420833492124858162305693632440452205341880279889902961044442290840290917780035524670846041610208809186217466235264656973636267454530246261091867504045694491615885788496653591629571037661227042461974419097709835206008652410678846918118455461908439308434314057979243726322732987665297675640003341962609615867654801195343836566294066923576958761286996694926527616443704018755537240295025895170394819962917281459367319252689711353164596495771458055369355819037951894316495362389646378225943341659971364673213490842687336223898933741014757429739151386705755938701567744721124441476603171297321290250054700905843034554428346203043630335018201050752843616160705395196387613448488784956438675271142219450221281718533577225563058352319403692961986883987580964036062403181567604248001753445428062773247654112467617907302931727268509382840847483114836316200384746664297761631000972540400672620878477391290288127383689191661105375984999759729624275931975467369428859552565867846671385076049891427808012183860044479817315642213939108029235183531563074543694093673029999035688702300124388416697075932057386747304747584368446957642497194809708787402927791203801219553899567437799845314078820606188649417619448819740372474361910967814628934396104267383973411354093457416517118120603905456161546649877221060798585025437542132087210387417811523741308751624652101464406979398833631326023598390828457777174498296443851067404312561753695662610214910710753040231715447324306118340546069750954164596246003375813958225210647481345484954323906739747263014050784407542152724758402771354237413324811391604949814951018573529872240149117256427076751315771871273779004234883493275819238372855731212124091461959502590818300812745347671203751732123632285523518182781112128508112778502854740685119667774734480119532251913971934767274925603786591375623789773642490992235549797591430681391474112825850858021167360691366885004932473134573503106395122409826973049406180429427061583073284390605279577732502293245115110826455984077798241939865944486861723769927381046573239865337022326941359038806310809666106950025470427438471970418664462905626478675601074469992670570727781224715582904126112463380045038866939634243150903443344002894130765967708930804458701370299840218922186053737915752187071581286718040306904077504481782091787644405616462908405570121932392782074345066363612530835741315128162909772149920914325718693732674932376909058594863297414133220446148530724831196113814650079711917002268305026618991558692472148870211141754806891439043248769856923528925388989172404765716839328825677959249571828165107366119281117549759034441270972139239998448475899185500413847291482514305585975397847589896666572553221612058192521080465428390820576536344627957881426255091423929001052149151906606316710017189219380654204571500028654840701793987423795540654136712479891063739351434179083680524923917139679309523525855044407442960622607079453398806868427244742949148989865584617305390177119821109103062342255227861509264845866298316331981909235624692978554625446531724210860329785964828466052462126874419516017311555826219282333912053836967105695611493832847236420731486592009812106563897257323593456781199038595954068807827964784515063680051136321094929488742543937601258676337506842479711773125693486169040110831651749642055170289249933362712413476647373677908958942734120920178753688922142593273430547195242498463855760053324149347055972629725216425855625132255204609831980528813082965829333309783392067651188739211072088339169943020024349651335290338860180249058016530592739130982674959984767541372963710571809169684585837994237963656949780162110867713794049865108243180596084052295836613397363642688183388045234462364846224913148243405208740599152095372391856226396218084519361492835876977318519952153845564776443418355456083865591153797281682642128808268577595818940085779958492178275159608072360528984496597591305358189317481044584928815315446833846211322356927824874329470893346903424506574488283601747548709236086706461645034642185798391120644505270707655493686407420928527118015263763832496320116706882797386084527160059150129513082372427716200215803160373280004279687018801321195144370458755980030537912995046337808283455641106033088470605840883157630879038933920432119027237077018604181828774928854298816562641375747206747475412519002535701953451959659382630402880297279734051255407576889099675593136744702419219236593795778056496885358020878637802077773976793630724666439947976757049962277666234508385169765556051982339131712352942973797130627443310583957863563273699511906210732861924485120492311405018107526336253023890280244463047543035120458575544133455751004047956060467826587501858962393608950000000761118844576137223692247842661449433491059169598956566287255264596808379148906112397352790902377465596533993740025047539136687590471471127165061635058711047689488869567281313100158477989309323325925507274744687793674943562609879193433162059691587231336755976434522966610316340015116187886087416769348939266670667763697501072845502496309519821011575878179709057536695243011156047753651795472340015978995990784315124713009828507016675482068082566193739399306346777604468478611582125606059774793901602805977704212259463176307595441391998958633447876765774135378872937231231055722715452019632181577970302576813067449448550905458914458754014606589030057812438790856094640143899389948794164984578052555634173858805191874131959247713965571900729902196389224606571086079409781149922081583149158371733053593585046115160299171449211218076328958254038821381136611983050692581243972153839292012693356325829124573749879586391137964558287004535686253058363516700109940166148661389145315172138730738023837700325388708335317227779933260402575638920881950335773825247554951491743772420879918334606293896188688682678294750266483712741779943942469902781149860275524272899961353782031203292058455795962116674490769594417989663792741397767496929988030936766405830735551218346233560400363196422013887156637341287833304829637381250724144926710093624308358653180436512952612335819362168509967663088550151145266639387411168404314461479314304448972323480852255597317367772060592671667942353699883197226613098634486409894490797420618080137225040020396886510672071379634241007388809530759598424218113182518274992364043928481192504972079430551400641026834319521342925057060933838723771776374630986976634887851285199720912143503935897573421672003967470922567142877999378947149979952176264384041491964657381795742232829866143286095843487700417195862467746001008606631685346774187327007548831684120601391314949630598157930194388091483336091496872317685141405115179508774890499471908290940572945971389107955428972827005912276013076519315470578080435743983581257795295027646600756628419886942268432293337464497848720169672575187195798358382393514614339105196158475788321622340431674997352683943082311005772566472975218034904586519802612208232150680228887395626130162265765517044069527688717211693169204433159155226434333719476202971885782389754694351870559334989709594798367166971948679066715416519279113501915418644146950021673190619879251090231909532930281324521271120706219752070302912873199384097008573258797687321443107059434629423716447429181924369171174465058259146534081649477656597124843463853465571457736707690833621514411876606441212989676035594575871183882088567543238410890652084820651764790563520300499291578347319901081769776539422461856568729193198609790564198003844872373046899392932966786739358670487901058134490414224311456177003313492611844247389115523544497895547417642456243426747251240085267937438872907465817000846656696268242669543834154635580808552146529020149144476584547222404435721538663434006227356236740248236416326317470641392686104583936715737257923603687689472452663823967439021430777881870120678060505930139396336631408178188952747820654082011962535612963158185743544213799004715021262885714256990533517921658745806940276243498038003479838222720051266774891854307331197877351889165036633307072481881405698606175535911490732000311987314811269613635834093350809428595485910158438245462859325351026902975051040825314659881806109526440959585518245458005417050789659352257082374654508500281019924283179269344912827628332423884732098584713892402554166990201662191610782442574271245121798513080555112222249231091381038044289092164219549962731240104007679805297278979746736955728687755071976768270309664322183959390699474154955780263861656844670073498438622749068653073438741716098919407890362019788019379426270260947669106768591321862015442637130542542268572132051327277712933323595249367539398985171591911079875700286158330810969179283166976769832462170020006249263192258152560400979087543381908180046098356849231780518896452948562182103323467589141249104467794898194435224034453877535864952514583715422288746979948849024324806613502383311966961705660195282541706237046286695101011271602854227786802560339238161882937915226319241779611519299228170242165421244132639509752887312648342870287471231924194731283057268920945145044498395446637732326658824015690163589962010897010298241614493825672979584213127101454812651965800634985695576806444831523640245123663020641895062700635818404677394787767817551767287530547388154016828333309816774598350234103761325732349451529491519646671955638896006936942262501330959017983916786507877496564674986636501389400268850027943492975082507477235344899894249460221028669596546739087872909043695332267968326904637913302094171254205392870333205191563782838544476567021857853333101357703058233998115164501538544366406697297115478706386478765062693080367656885375077519648979462816087005023466988863408296004652633648957005837318199690405565790041018507595398403501833392342065859389096920577996690469176401031584709993822894915493210116848640404828580996862713016670677136918995794645769842926068987201779072957978787003822505410897230794509779267399071330477548459328460679265282952582615089048319086913826810953593441220407303325864270287319481368403428123358873344082761745661516912229242072661284983436476014065993567658275921512223165930129191192960196520661699766816327883498228659454436601857527377091213238338253040960555370572732542680325431302785857139749291603024761034374756847910169310937468071469901139776976286377374830729920447181746973963234143494703677844056997160244252466223536587963558938539253899570191219603268347841495023227169836452441261270037143815801926218178239971623333346001382092732646626968835796225236460798394795797933603776638468409991115950630583324500587016714151558896980863775225454547295599739822337731612834817126248613849938342241580104477676190779445369361988619904339150003789433698782134920432549472733317296383982550520395719843986038526261122660765488289162813223759391213274965324322268799939777249276342372095994940756433050625073853638606465271650142595566878578491002406750601872224247561439108188398727859302081679472789534015934738453347242069114843956071084708869576936350653600850397865983558756723180193494696081830203245879756492310564671259916089939420794634002693321779939884693567735169811624253927009298445818188944242729553191580586810647968564055207610672205175824578961499002719942410766234031925679960680764101541694609919788663301324552150478262843141124598501475723748599700950966531344703166381946404036131183801048903165307489526856166257679216146286103358887666127612448782897958810855259733753351815191351422722406576739940960503119401314241813670282129388182553671101561188227067558906575458632642369635255850550379527643630248899000674173727589032719589363426951231245918927984745423881246933278133827210137773339136863228067010763171671578169292534425517917958789615092540539579466324695335899919137675141062252322662292882224520403481566164214439526066755473876350728453845683853766234562548283976305963750627647574348609943343483233972016782648705933661058095176634219245040878391277693306760846579205496118601258301621810930431224883042238182179394748845380558525148903889090823346259798006225678812584587237271207785305011921357496412993826752051049302683487932756355494777308911163430232489572307934872815265913726159193029837814718295719255724174781187650192017619115485286496522089240498755064237856427628016397992934422598893309516819599647528377065708985410797693883962256763683273238637719991709526453760627904449087198376406886012406227913527174212543897892387593601142205339220943589109350491977018923062961680425618650297100385781254894365139180435039890179270039558308953855007985635864519466396120479084822452571552006592385155740129758313793926648527169279793315344079063435541771434135618901841259399336166443694268594852761008870223267799194250254893756405164293910015154875476531034895988519587244330017555605312668568313658253291772415209407198597217704168811312666967579348768009404221665285447897751529988262845575097173534508992936998455322514512058442951827535632990122848338861927769343692242680622738296835121575552172211355292525178239811188026197322921861307025127103648264022138262949280366174386432180756843597674975575265481726162591830690806480478008154833536754325689284707908965158041037321237609691177033026189426384578933528860932033374619770281088345768724734630491399868787650838326862122748355823238769839823259338060600215160928607496118184894511199846129275813833941575329853793695521046270873508265042410460296296930314753638230408079651458011996223967769164025921323422374135895182037887014731219995231605121435518820675140524900931984128212349586215782361827543503244713610517439341399842977342536247772965653074898687182854503330730262514592164052276673601947082065817576176746089005296294322560948087919975934718191141867582145647140594281170696932974683779565560070508299780827835227477982329697898171546171685284074435449093209608574108423732763795146725488331636349867741952909432601482441515926023068461232881318303147458493970534533595396457872325475079635869694597462729501001840318909526317501900036850927082415348795857269224880973697496175516895856725489181954314373416741522214746428091380434210114336229618086530529719691343931949915579726706464958294658562404049095169292000304845110278144448286455185852297205027498478020702425279585370401831038569784018148510291644645748102498181784553646061284994723890899946002940453627462016688861016925283099592269377552927754172597095921101851930549407461463670377084457648632646597693756802495821645289791098349942482398444914555808030794458036402596102887882662575285018403242156103395056856336138224540489164673429447961265234613125474583167311853966848691971935118647217306686756782084085800291111837432711648722731582558016522808232139113038484469107864213174731851158294927096616629232005287614314718495445799658952459428942527028591706944310962586391097541399981393242195816823488668469168126217139459561459996905884178828631614245725946786083472611461802951093496948378074308781394818842067836774320936967215782712947840391982062431092760774274684739914285518733900491010135581453307972694995839695245190883590307243077918972267724597140698084982665780647838694374459777980015496234837519906897379183257313712344124862938044006438898433994322684799442054589609672366179086421749082663975009840759265077158309660672090328389045529379517663620753172115253751617078711510830808246387639146069589173953530842541832568679964711497435524228712248101134104171023355590145391001338246562439428742099161964590594941602501852182460494816661507030034243503216436340928915577996325483650416896620331332480834341537696975811126713027005344860876328872572524871128462703541668123875774302623485385654224911180283154132010694631885438547200991894868397208425885386237950143482636221400420004564330265842038888082043691184719865859996017635164895415409145158368036170587933421776077530114260009114536973272803908646202405500497566263517342564482946432118904727162202968588757682558142823379459803741969860123506428576412903299663506505834617879623652627811126179731875724866007345614157932297031603681917310265023845883117079980104811214831616757398091083701550330941136160639029624329064274862053205225136161796186321687363676491309079380036568875315638092910260258816323722238589440985241478704799180214728459057151981651490523925225675900844036568081465567926440404155938147400568400674370032953041645698565145437996920032708545056079614679588459522145471273728440360015914217419168161055653460902902381467505234322489296356106570170905179547434591501254457521747561917586546474734709681861170643267504011747905669023944451776751878297295655967823841932814951604339487344768436299789362540156577994483911416463609675608675476135060299785612717158417979529302176103837811814518223975394406271724442823536556138266397674809947459250261437230623910702195300422534547060575685024374715084587802617803997547758554511871712404886462195409013548141339312774514454079025037786165156481886850929390463452356526469426756822660788488638165693339922885832226788656254998324124334661334148667735772751673534649548001312917916019178984855285026358183657154472034897333291334362652710159547031582027056803142358792561343965967867391640139511518637628496988509224217395972700897251798109613524993308176261249964371567603415957797164456707628997400479371111326932197337268668492555201370202555399924189997569536618609834625001528998978256287290421454950685474381347433769339211793926094674561496671162817025735109328191485247923766128449469233912178270636757303164148131335495282248309088935128878267275328430481525881006701338395908631201412323317460370955445070876850682584142862386098723162466923415451876510483278494849417259416938490693540011948795887463809333885018713617280440815756689919825745453024335642969955503648652796925143886343430704926410011495762490414991859694970891286224879598156683336190881015172700809850112874998852143058184417573327734980820385996270581294391424885422712767738829786940685357807744599620400145414817429283266711477880636228665594029904904494139874599701419662480922944179340419534480796863137726959032073600289391475263365639482228354334105301794894590941559440926211522124595196365251956514055103902084845431827052790942706865459160685324148781069841697965714500674813185960950132765682776125438530064558283915533518308843962260869876303460142544890364343624945570469453151328675130368184886825900463178416161716850270828492507109293472435397473147881677854954706691158520034051605562884388827761190262841834370646818157870657906891236190587981847478124854833220717740217245424256001444260205199105035899163287805060312361481916461491408543559409855093012874410066890016468896097493501774877806356852706619894846071477267839628362012102076028386552260871206655864892737277022396700492019282859305366349806035526954344962315512896005096726030190412124836754431774229935676609471909254652919128203941059712655586972861821709482070171633962885309029688630967357398148555114528761437408687733391187538340812150038332730616193003223558965524871498574619542948453610391471978655492772132333681829516634713696214011082005493944226662461694500957473557242168802482051276202715175868072948061520095170118432520380404913167739905540016096648160573278030154267040950195206448739934317159528885676328672441429613164794170279894197279052154735527725956577209461044980379662552441280951646850930593720562454898949483853128937586658809118511917762838557709791126946735842374938368160017281892144440940444286690415420437382613773844727512582892052017852010988798622185796510881969918788456236012399382370501821199780004181210124494302307576829905626733731539943237877843821155557417524868636347034086283698023287151140371627769556336917462279496443594094414098097982783393939060725164726417577883328597295101515316978388888944962352082236825120968864610998457925295535735752717294555853377702973914110156619325983844384642720365615711900632924810565416527300542373776662406199230257818449408906424106397331920049802620195261662246514260833445359485884434820940837812657310635099879039326999062753290453138814333103032345783428523406023287453209727428829825044641616334832344673920214144376949070715102790127097537800239871531776165847946603029956697408312301863520145810489159883707449154303122475005080526336554988691565385643822688009339072211647879667847295929379469588548818240586156166127242310153130628281597257284674751384781675104792037626936417642158939355873222563494359382920071442114085710498697365669127717756953692913972004864870651574317407162494626491128882483182575056748963213730963129297357792696553314671216467908875918490669057370594188048523969536118767571587501287079899726328735158032037323920073953798780810119891446875076924196716558891049724014753909671666293393772499851838752533119396256865843464096387205139930237932042499587975127533728565975227603195886007712708773423716437123667817967371519473947643933967379630659572591705410416021156344091546176087777930564315419806987013916611316991468267209046338385332307761765175680912463455292177870786142974797333390533671216787205860982655033775214798192577130737988432248702806058727513553459921578464427948732389278748778701157136089320083185301575583715744241126325338806999497106032315375676370988947792515845874953335952943988688366670566327669747948994555545031875485455672994636780115416174967851202664095007084695816217702197184653600229617738406930825320346940407311687861309007920092167733995981768951701839677857459403155677849743726387050793479940391654145908996236311011838451377772015795994856724162062682944839705349022729577745917738863300234601448415630291425606086721365228489586466241996121821049964595168659321049331527285266618190346420671535434069274208641134567574773205484083268519561064597466236312546125856434558709360813226958170366521790614655312305524936745347452076255684955915939700704980491349216418787836853983842766431092585636205787071757808936027488953853870869518913510210700491815063218015268979048540960993158953318917864872927827656606000584185994109355878190262983109428177327254815731290781582279505640784849202524140050964204129335907431608290818547546614124352949817255243600782916731503378226320048515802125503984573475562662769215737666612974542058793883369523534528314017987489568707959355905826397681734984709644967814508789600151635978285288423452716018440613182630461606427247939913814947111323347476976456200351740395826501015561078162474562942521109160698554654236845960309198264110485612151523371313548297421204880449089485570750556884026562777045115646485370381766515134092567973273895673393587617748471169278813775484366756130746572464781171871412056092672959014728660515806165328527026168918968866094766595752182855359081581196611382940110006959040904077605352282322192229011879776262680043893843982969352084964012690150631730529348134647092092637380399565429765581198209737759339918999970855430589749599875644944893670741176319183636864147442122288115786967023421570314593236946040715388867650958264832197332252920940117387194301162850509828731098197127488201180998906129408692274114143732154855966902440999652824774118612194262759378362106408978046983742735416528325713423984296235946080704196752332651102962817568987894263498370708449118096380306602708105052260869825543884225039009961909841328452776248563314419087769772164475521396704766259753907691004812985490169557605640471059544926754676666275137482883141955716643698658024940553693314246748221117884252996549607531367237241267025875017547675181641738153778385766277324603435928655682603203785304090603380319960284938844890098679418537705528309964769398463308756257217593980263480594638197419234895194564981144074357338478056112086673395005350557907468258941800731361382489808243497831393543595560337698138873091727167577716980475213233935517524545753235216687324376862342553463076048778071130320576280011727954187814105108669628707162512222215826395931040281985220677991452354253678399854043096671149118909125674994096278058451608068038336602609074114212804732412089881328909349628937441337422982709638965797320928238988147027473090943384693326694632400194492652381436313097736913809744291399032544900043362948011620574455147703261224289893608610755006505472494421165244366918820388119967645178208415525541459386863980537558225890536548411563190770677823863238797621923066694025727385705370855279929707385249940202834475670936788209208205619190386773805062001241447922024353657297234275889945719742890338345298624672979199404615790751205480726456095851381058184484432954178026196179124551719941746503870806769450092896850224783938165642614635392785743834564983365484414391170828166974123102394635552484053061848097913224696987698307666506406436060504311455641263563126000377336742497301122682731195254391496065555124251008986382610557318268917289089932231671334823493641613424927292534281965972274834890122511866579604141403445959748433809337746530148351781127574283305338249536036777826225886272712303842135711836080767745003843261891887655435024842409187949522646712667531121670027284835992586181605350876076787544434808961674637805013916503750196863106670771503315571377920450927487388066010467850754551270497496741792341967437171135282267471161718086433459920591159821350926288140771561485515592314285946636147329935823288746722941108740807981967548771770876717293920162344481268692212271263889652917242734135378133139898765656832935468430902631030297556902562438935235568534262360651362788824794143187607632214200023035873269462406758531665988255884042496627350066791019786279969659460769237229020726558645152267259873473741087180001808214897271860199832922181249099581058832274798302409316270391160419773406297465536867410126136301136902960132950922102472660267256802750116953075287824868518470118987498981408503536319288483769878413289308667551964833838214608210168869534344398007698150486208578548011725085285996278713353623729630208171742428987002159036520668645395461537005545419212459723250048380609168346017442671413095868318123900701264626188569213059019227787462119482492957849713902542466245263385482320372948779516404347221689610698217731463696043736168403216344085419085973560730092773562113707064961937649794595431433815017356734129961608664750198888111504306314500449986916900447719073594749678093037501276148575094035774749593215820062577027317880127928839817832300829621234449896303524680250556037637297058955826813397812718704568908288869469625943031294235667525037598246743199283406688906941384750417204080677696806412968913225271397816388356691235074273221005213084594905904132599294280303894600098072238925263602117002290663065434844822020668046743637545322141011774613698249935367779074257080794792095663064389534208753823808439182138080344128250316997250655976561094401848634702374151662038694577187791638063672477436967065475347782906670169653406625994038210112690991209446846401894283267693880853674197842247480849008317895897751045349303430085114309756966822692695229532545953887462152218554271478763284168200944920402769544365701123537023192499070274156214165555758911373869430332188651949745291017713036212113771490289923748340949745127013443916080910569393954557445220330056037229397525059355926249899645494881194129025844822694451109720799061357864743931278034941838498774392292565293508455488920013582675964988624405264420028788289665314490610834121119047292737809444386344469833863983476346778364551753764018722729262124291345576546535923812526236347354031537644414222358606615034213959434436513371933225689691517065619433028894742711722447834665365004809877751725244721760291779419657314075771572541522660133242319643618413331247191799061542958178906551939820620397135581581715101122451482148832296763925705656586942500041438198154705252608843192062730593624781047056216528414697158645881239811052215018047973266520228748062258352691636909218614226893496752438230281752456436242842198383587193684092485453784219036494814427362731195641425623073174502657483754903026473013225093076958150707056307664216318172226511204687894774155643116331912352924619964875143990499191299087912776711954063894951103661648230199572041771401365074094492917706461429928071589768086854546869748939166479978140628203265947097406067923678575328288623150040029458722483816060042239722541730905624770970322023638579667175395718529236028831462070416503441197727321422681868543249164597552078252698001878607876315174559467394949092199771816219883735147004716673087765409457344942613975963114561037422914644113289645801584030288039441547966455183852654043339035106227015460009606471077475914283647356010718378630184069217218316619600691767074445547633977107315885350722399430472695532345190490481070284354974485506318844604030949803012091810718846786294768731864749483549972248006547647608133157032357743901695906214684635353303517824951569262634768770885982226478883037411940541806254781389243595811327574532448706907814980369523162042711617755270012283704233005389069104163051780628248945628735833641336878815530928467850254360840776947055895451313661150225902248787634316548324262637900762346376324516384164550158683026463944875477463348302904548852636831976016815663839127879687107187379129327260705032343107464945959458897571050359152102321387858196771906453114094618430004092302719286853526858934190412741594421207328670179712428943854524626201176403821837488063842950472190073695518361242728814561429709945784757157468170381664799859298277219470158076874765107328800089369705837671252248499546385795925055474132047053117196038614955125489498362674203430827933815058053104140948600711988670092547036096501248511357001561637656259386893084846955269598451160361523867157388322010935818299870193532901325718134576000911723422646470899445372915055606628500676813414860068583667577014488961723013599613546064473516766038149284443426811133881835698811516649428189075682570717955362300525432551636164170229940935802414159631137755666932132263027766766770472274072448237908743916781471932765679030689254936968758005556813153279492829782867924865367433262266550624029652289631074634515758722993304126054706534981977882888277434548136586242923846548814945003525283987498774501093812130025165512708405827605842850779992216728086915859021621029507323586630653888936131399661474573692626904348509496300329407582106986968008710611295978569183599990810270097450356728960431877144546915481750839868800969156920421824755283565797445892964864393340308359193863895356032627560251896567121312935834947003379922875485183535775907523976592733084477885259114482685992303724002318717720175555921019223165462036658149161089318740660452737027245860507488837016509757594532241906453860894004804614747938002522278128688870161204737599136378323403512485168099566468925130736740719516530914502406528218378660878766134807248333417627174263434143144609686953694258788390871604706530945936317256425471730848883236474799450489589711067010244187783411350987610611476856852671643459818191576271466006021760054797678075353014603832249544581050738147922306014768180406887456622737543291146683505078721695265763995282234216573336507997047195402021453075202250073763094093806147928724801220042223626235770482151854829225123860916965101251360045198110183332530875406231329154511988980415044062074559746288313316429845960272994953859157145442527404713547052562194116831175069346865504691741910794812813768108282150640671693002620202988503079383536247941050074976603885249960229271964121793951985285937718601998951630701608347533534582198055093595546337667747297950869485145200003551054127173579957344371240000790275108158421571048815467486147339091283846449138505192586362408732649198444839925038403675190668662055255614822130059914859298795601506587869780312341697024754399059134796056311111898554780059873180491250403092416893928204323377505302996802458348780004623212946091183965089456463932158708599413152173665839106738716957895469819450771397961399402241554292901486145941554441429252583391628963050112764081841754500242292336957334787880721433033055018478934559820365303938452991837001340562534496029530462614436872074429358556181501627312204740326224270459100566212229113436529364541771058993437837499200882725701661152296227092913228368975121044615988932614267124660846398242106206346128037003833398854966523808155937661320274430300429261485691422591415725623287779506436441869051835560054305675036731083957256493128162683966674825129966906384876579320765850942928952260559023143495530720678404179395537037604956453396836865141157964654737889293859969236101426542492889321521706039295929564889770618970983166184011497306042298605992760944821006865460338096602335517831422282656679598379146625996349284407112142870316821158219299749619243934465535526304658081108002813586530543284817965288212412318020333676461514406177672545952266616737377799125226729233004172429222246117000447668814468085790039162329454117768123302089093225697487804872200740931974776078643632108876603979110139506849242219341043968579736215815053554638539691195751668751084140817166177776587760568268895886294235402242558517577670370009030464066641962090534772871242050544007784269028593467636735133813619368587303994158103589423268376576847316069145603140521431806550783182201140217123279907196661540585879295404341327066989425923901127065609504086402093937961096578795264053957726990322510996044390715685081771035464007095055902297142650834479148123480743715710865915228363341846953449740854938005021699198970893542724888719085482584936438532154187120429050042729331391451293543901518220000069356862362177024040929730062137905909280718495914094149894878697636484117460063097951174456652296755957663172413389236146752746731596302989674082758676979479652034316161979047200504384035923877509599226591061968263922328820044548556914960288349658584434963908563526998141396571273529642309140199336273206685648612981432542084204933132089512932604237125889809834304809721143812247712211950124426902596194778618859049555401701282705554504540947750038585971346169297975522909005923358994128452269534249376205214874862260739885043475019286539596106086814197852937978763935920160081983243995564265011108885450673901571580995678200483592310295204956571586160843098301673762270937223000478782384489248556166554355079316522341738127554623854186487913979441353475908985132152351952432950330713856614580190087645674009687227269617952821920502385412163482243752153422724859322974127244175748019328984112797933930240380144531814282073291867226793333271958009733898792190077996893187052742092430973335046939086486143281617947600982159808444823293133523436312473329292247747759146969532207464327642178083359991796968225587503903929637323714187470932130973282388614985662651898705393912769187349281742896511008753469721182948136295480068641578111523969531309707832800219975658084506894290759011719093323986010955687917118521713941318667347347454923676421031979853631371361020504766339667026791789231891980584220311622161587917727168953095548824674509455710334299498831141044343805550224108166748931704211408951066820873630162157630076732193650114716715539542099241701152960122220432308027204244605884530273971046027399003046784081771994152284305389641818469642889387548145764480084923409331545265622713149529727297675586417990588143607692547593846549188231474531495938767238561906432652132786937453783569645282221435066354802995776396103971404410734117740395118375019131180789003226918104732630611166844497568926463998625584089221223904549089480996116394427790096665564120150049881505811263386157990819514254046022172062435216672061027893665818353534334596749158994985819801267393779794882267280102314112652860357430973207154341405025780219756764887662465648397346098927406680809378105035351659966812328498039536243993704528787758376508541239485560308743528350363863580914941799993692704675386390619766818800608513272837639237207282654197834476360557657942166398779043726628846523547999625443884875164393381855015440542706979025820895121029091659388387128412361440273907945221553701636141725032138676442325793146615017860426468900668567912269204727931193104061671320728090977058027000785034958579688457897024897800756952013258098161383075751668508583327522421764192188301121041178151655156302250204225574613177602460191870756988182931803513503017642973943870052728374643798798774841996240641838683138036062233939280520593180230950799352094198339558652673445885651654111568976972312997614474265275563589089961307312680809699566552829006878302661304055862311963658330793463445765100467894304060642660717771552101015871889821421812681358934237808835349318336690815009623506928528557603429307025999321412052120030303908998368462137328225644162058538926823901550065716200336947231450746071588245044735512754977322861050879000852887760922050586684786529467706080741070578565573471404075956787773387804658041493800307125068200154528756460427900152722371601822574306301783850086357122245551459181181123718519981838509904762284434274859343862599919505726266489995722974074469359103326575825785141372672153036485208542738557557293616137892232067501990079667948316933368434027980882319880747433146988124110564933321462860530428085061626743274845114108104393886300875652167270275545546848020698730070509509874913822399117674681192202520335569682383053508968218411347252750310396376814176610251432345342270189887916672501623948704613735055261366104653129833833192805150081681457107424082552777168081103130286118689931019086590216271369887933763784602757999569735521315192160955521905414696772384500202631426717454867001154704644223249007346022003766542990790663584984824140375495577699573004087375651293735530432764974204298819968691065973213539779944332337520306434327751766952811542304288119204016562731866449844889244937646608957153935777471425607907469153731392883660696329029559960368721749836170117655634218358756120367777244886556361561962449608004990428331230527099268967492279662123741457535176893137163756500971260452748527817459076430066796938632425604348842697836762136530160323695178885862160159070969054608449649711863220191213368401780053210514037627839567340611166999171435887092797300262179874898098651553802166457433455710950978734771445689098227862284602556069964600542245763404909775447631192462157351892783339864725894496347099996712968015164704963177560013294698601524708970785020842708316171657069791638779489863222169178235737376943700029760314087512451806679451963298363941118754854639863738100048657123048826866507119128714353281750067252846066976699419829388336232084296826711682829374855288414504263710613246706142304463927550378236327280426163450691011956713347600744331416691871802431617809855730001707217865727711888333620139657799146242402062072025690508830730019355614669542805645557660232050837159211172904425703646800453402074808739172861014233618840815343286539515035041537909088474078889728617838633726396856309185646821674593330168197397730976014056010344061253654840086312159246643687632295150854908622965945243686984869109896633103385621884316430384955885421719361283345918453651489165125556112518781908513939712329670564346758702779287435867634539548825177079480622565902604208589387471480661604793218065626684227038844742107104820895253283129441969398514794037664448733262105475066015796791053514663072126092143518735798685835414116342841503270075224925639798902769652524258265113746284425831569312186014148136589713020201118801963158847187159550701174713868358721082882268711583788878016212200526257698757630547561552773283239517504279139023294116417895142344395239923595045078644983562745282964462431052141953230009255360925088930101457993840328396350540423936555601685431230558623961243792721662057228963258038801506618877274938651193992600501811794140262845270960593185689004418293235200640709302832643620019150429315093166930827983852772052749262037623159738962045033922536954039430172458668535690397408451522506156772824815935370299133216133964734300119475806758448520740637910260597229951380505094127229269176007532431978338634456438977702514272422182239720694761177325651761332908230417670362532207061583525214814741726597416007166755432511622167760432882492510463010865378128482101082047636287456404146943480250248026662104158478117324119458545634406748866431312420120748073750977923629363436320681831575741649761805024618996678484982277914299467349536034603039674352421816576141079269211338185192246744000338273176287396526276028163411765282524145154492780893351847450422810345089957837962247326594290428854190011486548216631426049005528345702574572378195961320414105370133075589947475966944863414153306708620683873118701041819426461685613763750716999308297009330329489610957809349809648398118138843182724463201257410035079930234897750244901729874777074222322816299152636812337508794477689724230282374800728574790212862977468399450321863229042822088441343490760059667630858066301510197524631313109639347672844715498811397958722937950597104426492885003842516867248457069266824028740056423808557902797615182749066700197852606998891016546924686202955046923444831905572925943398671919810337823341361060959785726808779328948174935538340196039657954780632205175871678527946654754272604646133146186846477018440049803912869702544585919691336428295005248938250588169349394804072805104912755615880859877883069342565353888265107954658816294847527787253334510390052771290200979671672848042831105003500150251972495407478340586465845496309932559954182664946749917214628787507272530268321548970511657303897336843276949190999974274839292977891175613177389890492045124724563507294479933527159669611001769303767977973450036946023338918112089130300497997281249603308501667741178289504869344452260820256413029702862250764395826808070029198046779339808640074280265064004238062704863274972749070472526832745757455362860998829839904367643204108141756662448869035674231453056851967218664526861391834955829930575920319121730554611855370543943087516770830040285189210911856635704389768723800849398998383568845145004075307488438021899836660945170988979629475033350643577102792527899946183643834334838593630412013026169439291950552175761905174737886502311534412867263717455125642175564341338405457197682948548545669955413595669500365156546318862096818991924351958931874500765491335425489167668582769715497260123366743271709587185544523156106009926822619209010333589269167957834585435541179675138745259285061766089505568759316933618106265079991360013684557404033294820898515938586365621829308177544980676663598927771167890342983070124082686116696567672932133708626394409027196773941084538814573868792280141966210109391574847316430737495812235947268541091911718329456900128830792222210531209901880999861027205008641523250228148822451618315332126838541705221615090335365089657356056528103217166577250354909165444810122959515064287958034772002799280523564983295143307122349061867224778644196309584221686144871398945425791054235847342774046134722401373582646970780515501028419819483694194102148397958671367800921046009385677490238520295850042151439799269599599367790338501665218964215461138620765379364445452081566888585877422864312866920448547413122554436203591706822491318323076271132747501068957289680248638119162900136680201228023760731563387663022558370265712230222217511609823943550059756287096690341485323234050040924110687689443217985902425586313049375967791303186982916596508842871317250839057769518052991755535464220350935442728177291122691318654817134313339007633073321914220051130448424631851328185466642522510240598852603785762843742852247213916470202491132870971278787021376881091149561611747573620479443644910489776394678849062288572886801703854694625547873677954389010325727436923399502354042803115216942003236471390723077837916020425879176875735338537714279981659740431088842453720041652636829893963239394309507973881382429881546091573064130589348106477250515024396435722377707499768863660184025463750427794161599330961966969603002959514087276099719491661418093847977558640917182927972288899311365408331405985756867554628833999953267644396167930443900107095672865868903280802881239687505256626342498457210619637405030978109977589913614301425678876004640675719830040724366663496446702418869344121677686007016236884545541824169425970483283553616211371461095959626983479727857585339352459003483145163661177590934741180661960968503623573866649075832774873042075449244477393075648779065864656503161551454987995402887254483150998402583281406671818175269424341505675584196242517083538821656008461916252182614888120835961301244493268088622104491072398950133800497011199803887048246410250696896157907163385622610850525641913383970313681059395148883599976186641223440132150684080219346278617007266406844803137398014070323046250679164024212431893449924292685061215308868475513608179594007773482199793065266805798283653275556941428199221214573997521223366642996606965724327576835005338324785376299175071483079388637331298544472758654699643890943054518604440124229574727362946610958838444122154800986559944754116805302077276086386906715768633570388103200131886562114789820137349887879449177417910516196599292711783291264398391118389960381098980744578290315242385465429803162745773674339494414727926927715872529441842628006903098324086646064348086614233565426872236322716661083960372952353771662333538475635765440482488165045616081712869697818329700740759609022101140774855430690584647374661522111736190913132848215236538430395200847955723834322562124833978407518947919175018307558591691137781205112181504403123859672939442258595425745053847130097709591922818161119365832879014237560606113914851180925704861660750465449844207655440598204139803766932266710900749810934455197012381231263715054696911969719330097144505669613759444338164787937580405711305364497063731712294083795784118902972688534691350980371634098128336498802885837012807745997869440962010223080918826691061536285358152534020077979959417953726707186055674219408739696155199355626560332949181686636828233098496888515424272974268117470467397834244869168836764705294649390369753859442051287424904776299808142822824645754624502305684929300227814810332158337200900041869349466054941249515299124813011638773206478996063417683415306870500539821051748132206314446192187713768887120736843781914478102580583875043803408838194485801944295748877678417500558921864501552182326608068893877535599004083179548330793129025574199457311023533625736522064586672960690885687509532791484958337798272712678244750381861449896385733437087209238959699297749565670193403598605057948996502155415731074309514571790238308761575811530264873924069950330773067218078388358145229669925659081975631771754450384310778849350554458929699222689626580409319496679187723935534590447213695438754191817900384471190650829135005802892539678197369280981856128783712234922843350607544284984261679147897214742741577231382116524995447455838563569252658021281505994561341454100730672847414862873953656268975302689034120724565242539938264772348029554169187525402331826306520047917322681297129224869468207747511150860320102862428078030841021890752290102283556099334270906883939343250722419078690370367590238331172914434779281096147668770036797394106634341134059452329706846191454371113465502849961843971141271413662464165607935510059865911046691000920417214015624040713419750380374438939869171446880950545271864773814280760247279576180402073150878683376245246718435166806626619636974120716338854108109057649030896871986506828478070790387019196302654790219540616803647562621899223811192624284485335992897963596672890555816318437343859035604861999051306312183038156658369566211659597451765964860079788020897645094190638908855327543777597959937341128780671671932104686368555065068354070616894809532635469192521667414777264171076387782310091478632998502769000560539225887217419067706645416985743993323621310861609737213695628025049828690796691394103485210862220504116762076415347498292424642988952716635125543858070120466390446796103802238546981816259976722521194932806047017577656150649027130800795990027109037072334158196772518166598990926709694185778894597703972589634153642511387855846785664960029893555804821656922176254440232192192067944852034700163111007617422807890882190090222615788379860217124684456510318961441224842917503720282692531568414599529979814713643720589028389232068712878666905582022326607558723805516978929534168441771789997786884259429284747753542917370495523345672644931739467365124184708448790329428785377546976107073781302882950549126759122451882259502842139092011711818799466698852061757617706851530404432036774665642917390613974822428947355831257184296778537701866416945052405648087943439381519475499252304680816883418408084749572188411292976489361125855792654229268607261103358247191692382418024708238695254562926104568386235166529278324277669452790630385381549857813946626929332271075172885091632597527824614056414489552932787244480136699091361310280493136797249796971916960761209049815159827624809703241902225499924316320210371485179479758904907319466224986097118064204560156543155613478762567577841795367943821105167628760968319747304558166839536590203838515995746942656304934376376431064808737885195615154586939449702522991828484510856233789524824358172077918888086502057073980715835434555631943397882124719110712330318956835649063486426009037196142193297198291224922725122538555523716975560784293292738900961941168577405265815486455608622986815606712104231825458480135037852007155358878144002836234231481915495114928601516069393565284874145407234212723273946446826250169981083987837979623684851090468837736722867777593596867685401962570715978123444170771974395365500840483009177247033846036321707760924437831146901304000007157716459467565702091081235898964953745420468923247326957059738234816467380374173429330382074640892551639907712147059827777891033572574509024488327994595793844944879181626954024332516214246847194540170514819929613235589128121092179042988130166960469474276452713661134517373196000303982644691033454007818887423477822435513769992690871704251037756475454393094436594795015325998767738042344679258385692985365123897512488433290076803944237796200074893695821075704592638317717724792519487502531163656935011726967165736196547014377185135696373542003584245339182562713994595417643090750050720644166575398349241192160086865825841205976152488784425995145272267868737558995360810187917779748795337020508604470305227852844815186185812052791444347182166584301508959933863908857301682763702575595500545272818226616396595362151258894611394694641824047100075804664704789847806133744234250572912066710960484972630029727867145738663991443072653146392263654996593163378221472565423142021145329855544708536609005494673482731352343778989190718712525566275153886375707957579962421551339408836774890251585127715904364836592182822150812046469881582704020946925070832968891851789469572076805731769642831247090327698505163271764823551970821819106751553167600409262785303056974937890968112910609733357629312545549671606744110687300530605780662751729867668191979934860482033442327230311891173784937451519038126811646926038329516931053547588452789217381428458699777245982948530271297757159061969565717954713638512737031433238071845306763902263706650679959375529646570718549351684125131447050019879103830368749237014860056586524843273451550449592207762684647717524460955437129810255292877204304357727828476869391505221214350868938999870481867722036394509436293876379425204954774618941535746333223878997916651749799606218267500043947092928915774777711510484505759533783855350947509527681075513117379259600741660921660160382899748373641009359183539435104239561935837515609611479044721388098201366962257768892170075018825519416420424529534215870419754999187700791633432983893236988100207001863751420539360375183201671565614848646488477876992490472382780058620967157192623700537578105643866332626451150656526698094228620575128991596338694985252241664579492784811673020082679715924686219762152707413917749862246498972766071095294996793391329951554528264532903762640170834435839341365233950159258941709478515378523498086621429357751949790540014496174124233966773656993852308004946171053415069922547093980076720503314967760231060345323047564362549432622748734248550694487211459357155763475423193216810881000606085370624624630627151424640249681820517296044717730954571131648721920374832079284806910940115596962330375465838012025850387723843271519318624918974681507160289348709320655917542684902829641914991341937803905704690702585373555080678253886232681571659671510171146997685061512808853848186745767062192963272930425154508547276150223592206038130158830792945816367239007478519275243840402832086809905833258182738939448770766313977585207306733319084175421525189389337468138597328493615004049843839996675637432127636505661408777115479995222206074782825651856457911742549924864997543134698688247158120639634730781141191784217391462541920455013163079640011033980711561835370950976191356290575365432353919685200224525990683857283896380923533799995235560970546014082900159201915152023826221324151587549592389924946892772702496846264116453002181841725940852598905758229108295355529642637568906199382225605121635776974364206861331732176674283800623275801454329325687136338204045551690190853191255422654200361944220871009039921501396566413242316455839219479820109354084064607124740900927091732250921296552084065318478096292279095507810831583390827236435451279328560175238266656135368293689642932680443221873441513202317503124475333624432781133966547928293527882251415784757673308904211378114872982985388630875447757358003533803449939513336905937019480387963489149480259911195284656739866768627335696256787276949188541242759097129630798547214832662915812158896928687250777541776188113457056560240278577409413608024498990074570796716829607225267360323947634962600486563398923788187570704553226238950333690056033302345381979642469692626936539184541398128523760523849011826839021714093060043418206932111546388020835718237710620085024850019466139345965111671158313756396357799273918952966850969259073480533474756069555191226942226699033370609591010819134751628813905488514432286370346405400622511881881692948220580049039978262188295105610673598323731252893484952194566230212543118491164979279433277695145481064737510003368697971617287989015508379785294764613850161466281714542183697536479976409886945326813709692773934671836759296685536194812236415438563947236626075293582515307219932819843877280408553840595439985035880664240347614495953763171304866104612395977080465694405641277989045388961862976183751555926641428280496355058124505180256791116295420611425809709213087410833764570878063756246290411876359909317714581532747002726617954014531838183131848359947966768345158034108973150813913542115144170912400828059213635875946121400096982367448287303859662082159948271496032789264900282696620159563534200366117589237389560367886403995806688872297412462781470404118280818097503248826444287652335533187498668893892630383807105419810098786084941027908205291925880858567220241456928932008044146013185955352083902753757492522604291192073750046084419411780810090110565502598938789405537019844032929008031641197275592676804023080351124760557527703764686768341243827495548025241696730382815598006096648722418792136335762735723527722683095613965239477055846294429591191799648198424009818948683363968457791671389281369282894171462930815865287574027658869017594473615267157771449318940506326261846253759423709725198990700941400394045675284332400516252733858062693569573092147511604027061428014966763017281806580696688817283655594924554512984514800015659883034598027415877374226459792533043686146782617719633425078318108565619371959585575662000033501466024633079883436966218639728391887014239278417709316205029647481313657636579341226790539833804514277843013760698187896162350120521443462498825405147522795135468295076083254477796351087882219423983316383342182961993195658937532706587775372898158684929162223026304622178144374505395852068605974642265267545911135734961491976468225229772319794315813428718774637263598860671886497832868920425252626547787066632783659846669780574547906474714135197212806051739553308493764526570961124120571104524535704644705554041515556234794356609244539271482912361124821732243747181747066638611988117040240202848018796705519815002295825763342100855482798786254517282350556831885583177992586281302940140705912366666551753222554431409488889153385754320848904690078355459339448624281055314130141337265792916338199584138768559396767299652446032474417678599675295684124369825741009187279343969876959569727507922767056416274550419617984377346696372235738012064567950859226178011875539047689625787649083186741060653269379758576020117073860880881033725008132481096169242618321740336003689716460906275566762951878494282997066054087817783787283758088813911564166709823131408646511772929554231095393951317823186425671959973951433564632661011600356344163459158134637879912236375586856972175769721079282324030437284188339255332125602659712518582119243500714001790706439908837284057935608742409489250967836152547158022918065116364493272983320076612318408991595917152617669535707755952281621838867546602723577290785513702096340240973124176392414499462494840765850475527593763433204318010882002770691191876435290970757279567626412811873296244367685674692205042822873614478906827640613432116677466863847524933773264798621808527132706234608999495334123086657821821910288261159619716703066155504235601773759828293774954468669405799697671217737611333245910655191447560603016343855807317794168163078797332632843475386836797854532378239417346330495506715674028442473550473131661954355014016040763972225382140725841417985403687887703530191681131823009309701110418639890427707806945885336561098593163381229690266115403152329675581380431313206951820078108513412039990701191789574691411856572520970741680571104379169960210739819561390388981100234651345084099147193976932319361013813652181785599247884313222598770948461815423998503293763279412039820266481831857224767394594155845270465437903817886560670824741753651478777238206042774223956428489389624640773114976090094195583927750236924805072355388269398505184822827677580980733653080517071373549252391527840568702094117120325315152036735124665826116472086085972299393805757924955129755469062607934477856504133433441626236115313147647612319808267677024203479834980444008021831475777100092489346310515160024507952018110466047668275622188728812912990230549194772007003156517690216783105173377405590092804393417850604254472562832912872856828893096922984528105841115460688415591874833914457955597343248788880722961227408956365971122103869681985735517379577083794393051340704232053176139205396761007733886154229195558504403307998844908238782384512873242500855132983837922078439008864501232593553174336394272230715335636104759365293066692330103610083194274306011734533875018100336524372227098150252320877909628626640572598396599855570010757679691305997395753323909019156682175163841343658997956709073525588170491691522614863248423743686780343724609906254974641414268251046296041663807288861243898090650669731732179957014570387473364662494572825655376455679326358026976491649078860251283998368632161565904464586401901467836784954638616218336539519297005369846693259313647683857793133926092386037144231655915371870977297586194461458508570933871069136985361950099502198828827706296261649517691357221807965854701552086821392642358902607105299743957844573061018401533492735274956878209063684442325747797811492647713968008814198812076729765656301841054489204925537776852139089005509323745906364013461594281803848353646306273336042202207159286147898441305023792034620103471740389244895902601147274961885640818043412706272195470851691152233160334949886357547359363192433892604997614428520939226801600879152337642040482214530720609838814557205223098855105989174984596753302359977883738892815097559012848557751110362749634683934974701036174634552238126758191517674097583788948320071634254449081919812665072856735979401457491836569537698580149817634053874797300452018340925453080853410103783317592887486111809074374071213400929074536845606047167468373249039792645918214848039188666609046853392249672832086353861858100067160739666866391597349444721061909202024560114493477934015847487962208482079290087291198190626149662255032618697956390186360435117732782165352459908966538638217926746584585529341079772510601659486190731399313102650810549328014337769822264805168073953725551106615051687544798289024292629448855845443314610550383636644702774333361653175098589649922685221929108731644111030231676932265857432148565036726439523914851428288318504821248675372308420709540435686671314310199609321985959895426699858908110908059985715078037530450364682450300574638253732148140751445584369161383289314738445650927975257785178479654100793774449934335088014926190541099730323021745588769083306655406783784218238516536775539820839196234460263113740883264837296765122116253416706858992515801009406119890092633666616327260520958335356338938445502033599206795933310540254458733892020584623591375814927772016202190791269680609513223036507819109738580495799680951247445018200859742990425473757988530296220741148089650347187070888860584541647707583312505715853380771422202901952042735658240402822201983164632955994941421933858019329781282781593676443543085098802324673552472107605153459979320221541809171742653202366759396717088396187261143173720121475619511889551291962201881260943343475777904566721474913798719807497796218598565903115710002819468200079446806483488873776983670764106793929361650938652469095187082139512184466839224641638389763389817823507527400663403974141624156113095734376700971140518248544990863192267972987795449256635591180509760165945876261840015821670415233077796795598905125790736884697136829653842045729126314341872586659025237314891003015627136103782586385847787979417879334165644913049607551537275179604880874596773584212624641991007410790725196267423139010347048070163733218282880032676600861901590923335418722927261449489743284064823172804525341997775946516936139319683793617879147771832487724429357184026447736609361070382834975317647846356625895215696790900611005090562752124462235272876482165860107420128190106038081954521170810838990784513425901146793276663064171737415063372989170866213540589935665565046542451553881146232147614952134441341286836570112479844547849700740126732820218030700354403385602860825228945999243702502589919261334722365747466196369537020129113321120582310372440981578417655865959017518527229372840784302295466449410800051350680382929164412553885695140659901775846566661749068327772543153873837744027396963305611628114931357000034302082771433305898180813278190237791812972789743462033613839498033269871973029879383626272759541876426287235653884967770978914638421224183209572411289200338188714232974275201350615174077685799113213418477308564655536954768553471285295045313726636910683475742122556862264690737322727276708677470350742631191238067990635439303045141341083086669777154679154452840318429180072323435150583743329848369293683649352596430487288006417196648204951537522756350355807587932498810877891768344511911238008888770492472160616997690524979755280321182211575625997604655916291440445943521457263838119252724834146112380873438788963839917815740583749456741224744325429541957090691479612335658606777181623802703246483397696364673457849417256586229524693079136714727420777625977863205706005965957126493625001971355078345924766905046959642381193828799841668445107894873729421937072004750670331145391406284350939352548590118502222084251201883879171243218209966495587281681306698141590381295132574250855633692426206364590445247306635700467828399027697794012341622844809790332637168139842731062499125235889516826656107107199344963621858148428276735361594766182772645101758118968273823359992273129908673394774762505935845345932881079538108176898997206484698176696878582623870281152766599051406512569501337794000789521028745816973806017517042553511980942552638211467435519258137888671133729038033312598114213809931906964712668008056323462250606807994964766754739097364837910836812595051393141066823086949443465082608351432074158181330165437351999039014043322399677145067303022980140755859709623148457660672716076396000232836592562987614622098617528829314944972051840590345702806761008475218690397010858613250633376697352070799812924071619985771658235703751020539633490388416908828156925582859265136574581177132574760567253057395995557620472405623571561823412432072824254314358091334529037035376217265781079591552836345116128854178197190126694776971150039767967904905200123979219674884919351579202092426841418015015741590541141620429008354544825865171995819967061295861858852018547450260979400745786499117304933414997295929372910379637166795627954014645375972686029522380675558216942352533281709924357093792542079287315190694602122670381916890208598998745101411027660249579419492682031007919166965397551472465987970956532486280454515110522991016204065948138518597554355388029972871203044913161591062171875697388222067312067007382843998164888035895947818791516401093417874676923811392247463520562521416330570323012486368413855733900261342901378458070792284043161103337818000051076151301015105497120520712036929372091886122138148703544613851085865443331518593611346952669332548489565478205503739168258904017675590155737305146715591861070349835872864622766404880751365046019528166949814449640032224862357824990330656727531941748348817564734675277248848874493447806252195554126596943238416830340190338721004312291292885993432254580537516773122316294429224804516381183687786566659136535715350864092332589791023030515066397162786472141393750743840206403921537007617224413579770880337982572970347281846326074942113458750119220829537037628304469122005815128669108832150534433488395130692695958602176632783831143817054450879016203414913470776652660230738829651739153758801912432397493718341869200661158924397414811529103943967297849682093882610604554228435386829981591150637279357684971298581497270958064339149318480344000499089135219464562633340118109436512257811408885794271986862399925590066232046110422336861915457039135798023228984641403108349901992076093613606803174277396999666955487538464370040407102725417703645349488357948083460360392323255427557308570555495536377735092305636955433054632728436210733634737958782065007185382967465993019015168094384683361427184177543192711096426234996219477629428138800713871039691607939258565391786538382043851097275132931041012723107896557949630189860951764958202598121316117809535334869825852539572727356069474795468135967311649222747116331217412628941303143653091515165011808993345365195228666697616176453488093103572146610558672985999762162242498151089674013426740879218538981631385105834367988481914806619458024801872381778958923763159340185886251717471157629212414927859960611257973091591858192355306387904472237111175621917213490737747331131686382290983091983298260600144272985117488889990487556940504294002096428163189988806933305641404746815102338960209977497186240683317709102236389461481478548203047686281753328596912158933234585377930019839018022955463419391130649970363952214245339893105000663434004410241240083217329790151609950777981463452292048757222820985249559095417848894596147060307013135704188108037678186549985318939617196253050868357059692187284003577171216175888779094046639823461383397246324759147311768115625859411074315874739434526922486822268653694778433283643788881311423628507514065647868779246113346867017414475735303619527621608799076831549733117737302908781218442380266157807549028500955933789232260760706214596553284675214113953701277779926240759942383202638122720497777669052823158343533597401684839894907255792545107557348876659330714611816392372460627836988606449626306609621641960120362124722845378288194874999656459712247360061466126802978631450054654470301510539173930262757458928353042115797647128537466199594283069254379775462931393766254378632894437250725901242763875326705450100663899190048306937530944549825754234041462577541931228596279165512640920655820577285508089839132464782659511979852835239429409693304058806677027111819503324957153731928738116209293902729595468101157795297751663345162471045692106222484873486189658985730806592919296331283356809582146616745315265203236483577124457081989422435035266431574285979592088702499703708518494979543714779499937292190784841897989972585951276613875766881913716773725798315214977338006348827145781795493140003407871281267199635446914388071821990315330365155143213882202991720924719972276870409672950934557160429084920208487768027889796908438023033034766226814232573439641740585833781892891016528941852175873113359971161392294416044727756681054830400917665253498451206654690706634283227850985678972204823128389046750356802724973095393718897143220617068168973689274695996373226816931077793021262821296175390683990440130988123296136655941695430666195683207220955739396504280213073728281575426469668617603215074730259720795512163657350172709335113932934230252093934678905173764789028461022761595350408183909284393294188334981136959029137308354551658135201747926584727850367902294235151788212655157712576769079642888124106421775747277243779554191485251655735466629117612221465453560451391801832145650122473805736135626305977616074271037721625039967363063983933345966193090369825562785897016731781456593962523946288489961258968070863165330701187150316165862870298399056055508618276397038548532491447086344962325906128909164288388935404301871076583920688058489511945016185803879593205082501955520633752536852042572275068789253958833678429273529937444072974046357565115367639909447607883035196218009691528163128494021427287782105383623559748386412397019550183970857558999380660069873562401294999621710424588207627225302003888468792641757135318317269418285218110158353115764994647179543865275287380201958220557565644633866461030024076261761273438561279686362214993631107155815292229115856026076324885167153143919401528947307813812624376542970712286875019622321669629270594632953829871996458240893461598428852168878673259223164615766122849290328185025700479347238783440183752228457733025214400004660384221144407247881993319957340545270737592618836373530758246837267043125868512997377315588409731867832223786398864087852958809585446324006970982293976950917073230119122739366539209286073329833520340589367714951861882947647331612308082402681838687658649147734234417584666759108844447193527941040617297291535006746236833332207203817822252237351215673986346337702724830706390106573444268826637005719144893614161957966815597676055182581593209637010461727708009524566369016273557920799111261339211791655463041002533670074350924344221935266236738816269475310689285964481492096907930250973791835905006133117521747223187737238221896166852612501626496408950603321331511829511537711590636799655509850963764662764088723743717073996747843530497934634415790167106012128505267964966991838974774847331248517700140540080437112640684099753389207452287490779647831439332556649371657502324465586950121985296501407384545137350662183274923982937349900879639004522714963376080350401897560075053798646890657765549750851081854277057279702050993278595142620219487775587923680549749764878630111982850967452262116386475733614759666044888732760935372431116067379941789862921467733484300502666146173470483254674125007717794922828158452217111259363226732557463511742067946935697539806222957898977738508984189186602782446426362655380024822662163659453957896753637924871416802924928654691929057864566962433627296136246127154005089263973145518700693903309668308150073302441402336404564198883114866433931593514221759297404575140866942972715503620005229901086397063035258314038443265308381409931631461673356494628602214467367036960049926141777597549466944487533821948382755628658582449406302419381146423420121807515717385312960344425208326001353402846622822777162326267443430749684807688511692609841305862734529065641472047689661320155734633860327836273074996033529014807711019898229379769986691507149281360940522345685936937285256570531134629862973957454435132030631603346764765244158348769960420696657464911379867939016180303334964339835565233168025986355357904145316119725089684628043387513541413520997470681321268080513724983001364720234566688602771948244089188381556221162242124893453795554198901359544403468748296866146579118801082936997179936353046076496059488451070777958023462123345182856854169802188535901937994205932017018713374242165611332027723051178270451832705180744649991695400520724681773478854130951969583196650960258154728021766184550879786622666498136719198297919777933676933490070216520433669763797237285342958376565590031234236357004084327296478628095053689626871616780145785825352532684065564512223209036899296212697744277403984091398368006625525445554664259315706743001252802234555405280247817141713250507199616694102473640876937605484312199237138836952688183892942974154647766963483415464336284751660482828242129428228506438828404977399733795604101524977740798730327852967475266880606611420108958099797578306433534021397699600255550157840227580940866951301194739941222467583782477251755141613433419735858086460648216777805595033339442757076740060979625887335836298567711681863328913750142987747047106263660183218664525460701825575266568780142839792126892663086261801111334648407225407085123799935244810519853109301219502814671258664794256606888420909814972920864797995160048094636846323969267828489713603498511480033098420239441862845124993964326870624516828594964218570731566431662288155346389900384330041225899120725467192178306386558711101471518719069279266438072246227364128537241527936658314322589690798758027998108817879305756898331557694783686612837370153778408299958135358903514899640038967326792772636988786059845367569397648818498370901676342186172611778140048269397682923556761014753322100687869178212243511947999186868940220318814533725115205600466586023467722848139804535268925820802722689293128433870444062229531047523540236169368380129713801344199131604078202214208382963462199891067817385159531386145083126659305011440567497055642949894482552995753591817359086565694412578457860972146243989903229016507989176940111149776465652639622487110330076435129369047974877160523477367782187870715785068695081781322914222406958663791785886549752596516713783173739772474762917266341254340229988796720670849061986975930697661216353480588471111271136250125613418042350058031492256565268091144374911733720596270642643641990568464376481086577256291486888614247590058605785028264024943984509088465553958976267205336705405027640818593223545938972360326325736599709300490515796715216556012769751083042225334425179547584107917091689905596859026997661028139834334570162599946423538121352497818819116292457808774940731445860996806444725924053902880526013545884850874385244577502620248802317601705955525188110398663518453212023506933927256913408966606910446048786090354097034178684967707543857780793743475284293267557247097912013705667399067333573341526435567456953431077760576189616138093352259909403630879721007668881983884529463651667747731847135345665890419012987498173817444986413233045573454358894896535642073856716752841333444054811413661654014811195913609997388802951166074757859771557951831940028855006098226225663063704693188216758309936314394621104071786538876941477679566708610253123283602915903371631580064467946576923496331671222109230887421480138284317282510012444032465650822459643822668908970623882927367319322902446267325914261956251434348015918899715611846672403212973249925581440072228650174223347341415171036582568179606969439185200615321428374388752032092667770963279546222966625508186173995024314050927588871284147650920501025492416822368144991782936256402522565330462725690773453192859563398251208439716602556374801661713573622157576314242429818486910936568609107667953437538067693893060341175511197385437250399611330737282871747081101934390480974210817976445826905104599500534935379313311347761350674504199860200812206285718681705738238869807297366492082424247057492225129163662884169079662106267324036391123888457772670505581979851637926651331841561393618746407837690079321219940927132842695955290436846311400306349816555449898533471787172132377280675772483322008174482153620755890516057200393118003699445546880844540218744762720289303333779189652037489686129764507740144473041250699120412225673357331612587710713975012210033817588552673637614971373676663985404148838510709680775273399403248189537779256780757782669451942460307872822059616601704451266871455465370529614400318792183362278762142779803561680225818719944243396593651669641512892336298167798768618365732532016824166574584221094535765616666181305132598052954481424216930341190239273864743373141637053341431135335868355397930162834647426110005262690709853761234994693263409948677730596253892266629739955324247169945889904820919431936278126045321546670796406752567618238128787417898852103108575700803411769130156744290974676412964508076801934154282372000483115579336058268324821659693792156340729319129650604553555530212636027694838067980439564570223274461724931860640402365857586927434653965471010838609445871789811273240810686637967071057390462728104360016866210082002369789864913853429373724907352715219940927194480670673903879644922959209950787627189669059119592477000559267354155618584756161602734093315264770691899784771697597053900265827785004592519917401301989680265472539119719323206521080967691070246136201138813721961947769830765748257419906725782047487880621031234842728845877266308627274426773485914532344884627399205343672429667492106363503737976175592899890074292988846186953703282798907342680945965404598393090897387429294580993183102786647474510128099898817522694251374933691566023969044147470197495425903166236227841511604584348548852816620327524267171974684014798331552473878800371898839741926145522203186783388473116362123105039659311505245267082442868410921913524394349694178564241089607058388605233006242650809542752304808837598108966651644191776196808958970142866511649509391483369492913020513904544057741428522362904143897502373474999139058523743107516188663051470487976828969270429044559247300481051794364857845506900351268673925878378227844605188936597816433058272633766156063841220223218800965397038395926400366975458855438212667783502658625457189103412673361778455914377551866000800076169626418342831600995105249352918290135083320687597565695461394843951298873231589865490115823463954481318323453960774460509086473979827166931175118574980533854241507021849371824143800962989465292888172030971875905438500985657501900808090901426333534432225119289836010003192865596986198155365400342611090714082105441955961336981812456132576456513863810652997205659084039312350454514362580666677869005847238342947091958497142728126286399952208675336373441101599297425771306920497282462646508630563396873000730825610337167004578977353352678308265856316935558131805471629087700486228279002085787379444030309122396561159080757793165347489163398516820426497137470258920198178781848733774456866984750125089616650269715179068181268129240738162273401350878325136897729059953440400599521215905526296160136721399179200673737022952798837000524991237240449306842124895394589456255745026423351508508611333648992593696250765858508200153428200072008146683058833862665311534420099504208762337162498267228531867133196829273556698205461140696496801652632015052371077892242390118843519692541686841176138782177063700375028704503160976135654367230786070806382048545433140806358077802502499735341937992851633954741740513376593354056614776740414906940420252253554012361256168933085853838689290673863322366709113886549002299634170988867573894077665000260034129572639193960577591266919093563398229025716458289680959158994223221159470272908793727879626539963186023349988391621404487186730119440756288155551406399841580492046926180915525213304692243530412057153494273435851435539512756392287817339077290790629000858233391191439311077675229364858607752818839273259100326995766215133157055469290539516994007192918459369360843221671635187509100959597711425254992869137874648314621454002705324363040246377183041668139802739609792709473682259439817089218266707561729652565908859734340983864331086999040491300891978319071154630271425479827136701649300680410868769468282678538218085165867074894426016738875066503458079801379242886235414102606186906887776190142280226791194106482464183626892423448312116397830545650667955911669418535392532049366094354318762458699741726976321782840015446250193994217971052682167617028275415401745997918941898950362620076621141732262797661185614834975740052569986522706747911594334030802044429953309432980220077155645139494466374293281883400669004609478159580810975573391491330506016479253162477649058105007885450546485293785492068087503447758528701299798400739192516765629493448819369471335812894306512555586686305212943141668542722340473354855272127543879816926167576240990316916822460091414798179507273997159387849975333010977235657649317190830867047310940208078208401767015883243906015009508883995839970666215424199664293921534217919718342472220473717774043950701303049873161816211486025587399271650930499666564067529269414411670473966584658815425133491950783840898867323063270274662941983001062883545058842730107011961545237512779633027711809314452186840728635727140742372835692100145549878749713838525216399792891014722893287325102655397535857720925322013251720963032039562647437574412666745663105223970269335903707334819868435293914280733395656886194994568651655502669322074825165706739103849897252098998761681297668623685412891942019046315020233941787645350420146824637791212765571366613489635449853241498176630130093566216340844763913504486645708561699060424059066727432572472562362872331349518867971290317851477602000775451912753341760145978134214192559080535133823243477540594905571053290850321918793204481522120535857376156617653489242390393657789461248763521377061431528440993164463620370566963966993440662613861770774595676905013877934558106971133278226138011764422977318708261639726055884296153849822432843380078915333966961760337131262821679572349782687393701918698488923395437403142056839038937988732859923372184112668826761509248946441493538371141831728469504827707604653209941397998194636716021017021788601074013615369141276854600800859612273029392261440040192169309888027678256431984059006086357395621857889398100963923117113218871848593514173419876242034279596555950705980907581376249947741011599975543725758766064355616140311910468938129709768567250212524461280736315104823808466223473652768337401216384385153061576640639965259431112803698478619401601103445283428113945863111126550977073408233555933538191497002582470595860319197361436097900269657412169111311703178177980091176586509698402691280573695280961862988355724339333387845247985347931512240010091026855778686424967455713528436983267568308446924791617319058873220583598817923717877855939667689681018939885388044647023213524944005810925636660082613267014039766839634080506923078319843319197950654899566540588362019028125133093712344495910250865658254020017239779855397553720577593621653147262229262846885082382199794019678983883052359906899882312167782970466470986440207171147647069149712822406872494635449075120570350317461738440984873712470476112119836304516814541440411178292076458290805705007154705854758302319635593231190316171323020027490992512761736431993646176702062194210529133789491417367256824992431710211852957441781403157676370158078786658398368239081821332541730105212688340927102582784316706203357108952887941973133260945377056389921082888850912117444993089104705074494114907900880389684266848977485049179941864571415907355875003376691793782160978142034927352520085174997153384713583905866566354929681105652513745544608832267559214964484606816220343137719368983836337080079909090818557931577716922925317630517756844439049298371003110985922316448162517704989954322748502686169553605669689535885297086781688385938670750903405058745431838474554729413172962332275650133542843574111524239390896134670313890057881836165718572774994663360789337787955861624644198012576628097874227234306167923988314703489021527576062650207774535956339215995159753265700618920438510806081779516477770638212035331789487638669106694521408879871912348852181535939657191999673135336610285881773606445874166504275558695425943985314255684687125980346554439276608911770298180658867243922161948052884708931894431267609706802049135454462046430489938897719758165648954407168627644972771634279069228236681911792396487415704420136972927096932100286407815543992572204744769508123859382927526237572131052504574468991392943762908950031630059346830547225081380958402174470244398701110835446789275011978521480074215683676894859982225703619364429719925378717142555533570128019366721041333328158035579604723287231800386808205094621513679424615386530910889131193563748624355910346004587446024423124682042458261880325841043860772027246310785111599911660554808902589438115088041254841765425981595787775640535360769165389608118161288764305941825310519164639137513024180536231743371645915930583100267629675065228990899126308023285771915424050180371092327175744304870743780422831985649461966278328148685093337383414268625635825762438052647753505290083252598231913236125393401972358194559609710559809271950717985279097453680433747104951470749561052737433282704870550645661648383939063647596268885590304656954531899296399708122259007771465697775945037906346204652795317519727481988142533949742572846913058680266643852906714348095984937186283084871202910793740806751014560835922921767319222214346567010303583689699891851047375520546465249130289839335135506917181454837692620284359378913844318792516317574031562395580944002529704620550266107454513326570764224867641446056191973199392192475650139895211025340739779422266561550606256362257158526819888164621249701246337758940625647871684798568460895140438710555550742611878720555736352158656071655849567463415492373932450607824427942892625792172768266205411570439340885919151416528340035476375361212313957383931376403867610101041394765135253153114074683982469272432657130224796164374772575345103123646845666401935239205967998047440430996783610854873620117580392865155389300401309054954473874558188926546064083770892179870055520004820262371025187532159807404000034932725576768319045757183979900863522050738822576610314819845236286669476061110417882066396134464126908954968166928091354700799627881584504314631836676536753544561299903085847396643589236679353571638013745819883935148882835050686938182006962345204959743434774424173261926152861986942587886533577622575602916526472257594594949001232659221028088348992902764614687174220761113448524902067037123727238568027230876389743102255763603250458639872679949853342616239425765703013358859295507095416755521245063624813105910130348407079372974806453724072378501818802540392012309193815703710436871762615765207480434306502167422830145090370436557504460024553813256707606211961947031812478700295316866193472457215864201835839451814046011903257245357520861980959686060221752867787870319228274359125201472070864142724946266293535091652376968650251748979729281096712606327862671650730293611055184357865915462612592918933913880900387416014760114056358518046775338223997650429113114962281757422970672674248179313322228612435166216741127083260533406455912057635306317499380819786264784607353463019585883468821662007338060177353156912848544372224781990867306585594474805008102535172839947293721420409609892938754849606461211713855874453459578312188858121153320815011343077157163222328133862902836083212541621116951914217386864415451731339960459763666425000799557616500543119943217679697672859800052254145716556565086951729746092876048134653273124508211546911632442278318808789912953138426364577202755365342811040858898748662206745268812758546470182542650785625556958349616225847750185523928907162265102311809383747687244160726822401774962237655570505149534907026557394413280188824404258504994128268827695753052478093896037226826699201971072682381667161633056639106869869578215321547841529838535295424721014744703348405368588120448532722528905321316883802949517709471441461351595692579367343487684201113982045745267780807587785305227685360646793613111998213235431266298819553557704454048296198282228161784983764092876669525475016685025559620708353189607840000859697113503541337128099770859016072598451642479175078477361923538881438896805884716094852023814414118215972116105389903573486360872998432278548585766064186432102178871159894683445229183888324992555124205034002984929738298596202053243872220237493717210518770735368086090840699258604047503569091432555077853114945370902756194692865246196767907635080348505008754384310968748594233170116474571659277675691662304107683079372589663736600920048334837641261969029611528703469269062507841846688703119714315221020490058756066587000323478073673949992376682629405384530630525904810612877958411964271982735585973834824645325956196470491933738823317098298579239036743906698848087742426517494404339210509647387947246339615865758910776087684764358782259054687405299065226309456909176894503465929780495240702175735557910298460433578923187311029315242079939995174191472330689720997794375384285343001696555398683420115190241596850615066111467072217550522333503593331087485537978807522838050363741773767687147618829858003360930884455979152771998244143598108655895214970934974741209621680620954640144780781326351629143419647579588535018343391080218908932077505328159609452621724417351733217896481248947136108933629756788616818423470364718269146471933872120995782542295823488690143541661330959587664916385746085688926285297957744468333279710635037991641750887866046241933975120198366043133413008770482614730974233433665799623361623330339623604662890286974377202565964958963280502384392538616399257765150873623570776076777414240640549239445422383713076624017665160907274364001426798009502477070647537132438363621183598176475533256646649796781083392894391970042579589979836181207376919902297455929091878161492072215984872725929207908050013765529613545540517259408862340075685965816542735212122667006157799720415714715369359381301709049223475454458022522722418670613007535356722814710969889479081897543860458788215277724308915028252907334658997443276061517429563544111866199017680972142352909974894151928664190909441373312390057624098847397163281170341437209968895914943749069058796719735587871927158089428270004589068994800125177206886707468919582019411940302527491441147325146300846358039190191553955279626265565345409056525843805107697411510064035600562149369739841937960739464434374407020472213883976553692811524720685816882937615453916508025155553160250117585199803607134337951104792527466647631844730414876783363520538748028293821550615158164872633945561006872508844473996713105487557047517112897025113571582838528079452147051069700589320163616125306302458968731824680207555337417689449992792751616169317559243062731154296718385258520131982677163993637089027147638071493582672749340385464114184865905154350045146306580602265867618662005609152029737228373259197710775403999521441947231322155360304461660644341091796483138880583781767832325291308298431092796053392682163141432839499885460160803321049758499031797581641313802744941344309121177364039272655030295335029285727064085447060261879965419591902936335562047818623058673570168731574994287556204671377589850248361474686274973205589746220515205696473933708907688357449351853391700879510348333397490769529632401250934478192346124288736979671059439342773280838789680826528914253386568996137067665914602022744300153239466382903547198255270724555430388637132600911444288937900266686032164817554106549068553683604956693415894787827847125716382948792669120933393301031220086481073926633164522293937995538503350244887782139139442754515982049973079956262886041471030189244246139397736151183587984443870476740113698847272242404120318016973739852220085192006425352689000266909781527696690726504307992079375171479953228655376010429470496821425800846947917779118272721942536014185964802720562430925110847793344439920412163982868937794297681396147999304058724650719609304380537701314407189482592807866875562546918775664396942400173005820192940597878961446529481133853310676833803502001511700481825596196943688364169121516657166040447218949294567785910559032868000836655003530948531494391951900434718275606699223668595142344255833871723518803543547680119224033955789482291421073325202821600964136097180220883889189333481783462429704452514821339360282400588079475446828966924573084385053367383875532911571331493541423283233332580099920702798117787997869409326685342502918148761403692587009863595658050731467635385294057353569899026737089714471486633785443187095449316283904243818963948669378698340026850976184075996635432771209816269853264791298524726224462971289474238879858113543099796375182872620748889970851827224754555836117416086002672850143914175340518877581484270666402592452843272293459089713892075379289863228938540090151071113982508431537418785740233367633179654206214306504459870210041309236991261971626802085428236338530640545166523148590432233138487432740008440073407862573491284385710018278702188023173631154854132255177088448004421861458002506441452423151359118474447682841221567529656169554509943386675621092169219232442262496158792013482273318019970773591214934857126827431861939402665446732792531820753000649486740015958646371462118815515585043788658866514348531351782774936511965300677814963568445136577791550382364216759715872955129209887332139642337031097937734388235939646396768265541504195793013024934381001171292924885964030773533503831414807092972855390565799381144238100043030520230247559578121707133431430890653013111503036052993216978482473477225014393568930635693941646556798423100177646903878296931496032859709583376204236242590186105103674949491549769593788839098628938700322173824666402730917654863790204844220143474560013055029981899207339736295187210330757301209163715040767338245951875375103851007776463496246091571457183959613766360207647719110837740458108023135052792291227056290502239289521396644846001042177693996247576580358084393556278484464324116968177974099088642336987038017934198070423631516373107646439109425572203862070941767087842008417219504772194006415392046512449487772778299256675348479420880953564807888433990821613995233428984950091651359759128476190362549286539733384490373962939716925552717460297352348556516247476280758993627125508844579329944003280109599881067790153205389535115935113084723277264415050817172185873573211120202421157657330842990119225871290454113119791914443500948868511030098712072267426965928010462107781738269053908362849653834478689486609299362217147180281534828465390985605631684556424840960806262069251256649092322510854807875389963006161348147958063827895693440875167444384116012637868098176168606551303710257127912566344725629162637071529023552405693237492638604447610224743054313623603127606353840643695331869452356874555555767203610724985897534979362600605977382642179846756080817109981305988308632825558380448674812854480061503867910625973590682649648232437179120080033662899608547503849683298677892003455823590968129445292378267950596893358371930730546832188788213329846950460621300404960282653104741779247747917041067803520815548597798716976305677591927482730016777362657814793482253309090404162481493053342585055639678189408301146170401258646533081425476054949404263695259541606754837150168276455628130186706474729024157114992311414056774244849150790844692699395458784118300856740775033625812114032821594775802093509437970346331642599214376476406055887670690844075305183921870620869799077786471542912869933322414600431684014454239113443006774201454685194821303822460651447342581111768459819849484455534623471477411653446339715460232250673526466884887564740747431678088512038174683470226798736599036101002859615279511928248327377189593154132286540825568632449529041752419783012337536249069869224192990806765312410206427953785527832181490842408254282930791898173403890641863388083606603438888278501609128622444575603465095867009421946432785534848976214041758457470377134975348884046814597128472855953114963275984074812254677185934395484278590443831162664926988398926871893878365065808665429387993738851522919826410140307753901956882695053811545639255245472312070085709043429823816679087421088764321836217955999512422909974285557725747444556779475791813051120380247206188667717366612007349232431896650306046468724997457202151597210221261346472488221411176780835832752995671695313076391254299759001203336966954947566860604441033184503454071935501611252871396392446157772872273733773302418144434687083058538040387672329181352992129628037242566377428876442732522359989364227997392711970402841017760945400874006579431907732926883483013187190031109588294302888763831787081491279519123907097537616046880714313830476025177341742623804350114045016365581294579566919029949437465555936232587280071923934568258842707621631909889105571155043216152329217953173434680939586691573198256678204858406524695606535279879996494286775303414757158910058420124025025041936514023269459535161448770864950997715644218915037400938507406843410242104171332904070012131748683786799150681420967183641591508824661683448259398493819199416920649125725243465060119627617294862610231778301710225216788695021440467922248709610307968855336379568871166742062035814233221537147100778703456413130769320725634989698743422893999698197760123378911792163698716709487258310527019148567411763913870955182432212087214435470334609086210840070839249197984908716213875593744854347626280972610396010967420242708245798534312264833013190305339698813482419311311422735806866937312068387887576400395134823406799256676274491870591305174517831669995797658646799820536368362970051970635288641777296786212963960524017853671675241704494063948014570620478211834434725639504321444272198782236233205688129756464996156635660230647148484398647301207547495119322952868613513407429941809371776584078231664504974209014659246496716681312585178377926193945569544779072127310070275006909551752148588486766478404871403762721741875910390638660974700167853301045217166436904115520922045836163674426785610785625690378891906242555824514352589979133132363326838102054047023542401019924323346964531268609808962853427444054830927476142763353878769193226840879074985989282987172529024395127290779610330713205790165293416146539823078157925863130024119890900646110538641916383413204775881238198684719990714969460968355310378505638827011039629901214465449731717761029881068208061196405104151641349503026974716327703829206209122022475201930875945002796348903783460852455515855500645386013509084720398428444088792334270482794339963457127228404500621761459437214846465033582708867045146623016022872073161486117404615359582246974128966988103403954933127597706846546913035909203276553159540690385524426251744468562515449236440414007289716176039352696101610137701413346770445391573271948101983547305205557813463277269333712418954683306512753242090686395785828937290224768299503085337465739054418592322605458677417756135119987251404944434434111711855207844000612529248061087836383237025741414553285503441802857480299447946990802533239667800902225584563464649462505958246545442877745208664710830860010430361032855264943725610052130784259085430819983063796973979715926553419839848251578939437814186363862625778061708911081903058568331890299057765815609466232497719240643935826699334180310854946464382890076377526253123834549181358846272697394610573834388411320237367780295025814974193780228553438397656727418259706685160809411925582820507655563808795891632925551669504018439138685027032497886154515191559568765650619806967066595332115264326172780687247411203990995266030969595632869512110085208137136589808025808320161049531798460960353320143794070103285092342976402655058627575259037784614594470453263939412776418299166158495119151486982623839351269612213712099832561171739963630093651010107610649197791852982031055735177959645353004971885334134822814709854986945790540876894153354686884822280899156042409306543645649832721215383973660215819961194777924385345348154837227283923122587995624643524013212471187550802484805937932172520536092650572938632181459506310151641553210418275993192760115297886336081206497428515678875511186982247192705697885930076412485969059197775623005781894816196587288851156612537367299795516809667316772185475825685147472610012994324064748917132918562087416942851313418039116409520091237468477641295346600056556849392580614730418383630916983411641817709840938396808923939381930014402438326917118648599841072593943634896965073447168233587319096493657982353668675431160706301972145384945052040549081693324347660991220654189728319285671979596002828868985800941101830528572267810266719603720158744938135483816760194488267128118869437851357674713070879787071768045047554147630461731453644290625751286398545198916495200928081999607895133851487308724124611497219746545512631299173089359647355195774584548661746821968668823159158607794364154305746571281898735430541133558245157000628821166988474814558312710245473400669825777521960553445810214730670252673564601030446057061387125857107525288979314636733757129699764541286761301923567724097365034737593461779637822024796118849200490014788113119644120510394442124405966412056009599717043545952648521160797215366048608384592785687422443056841056920836784834752910304174285118304021929787957106933441505526196994546282784130875830613839884090493300576651474009746490727830772243569943527040715795324192942325407736375889160886876003944537881728539142287783774251939082650830279614569139092068470979855278119113422726200799398933415574043164206437659271193800148584377278698737734103403075794665124576670327829665891408362067440764016157868862402923988117694816719278273179737249106123021356649736784209727587380353814997733702821533080785917274302870920293852449478381353370694271897474408425592740137105530815733260789981709320108555514592709714931265793794657654461647640336728407608191209745976834181107912110602007333565501524048453178649505345794931820824537714609286499733254110343127600277582075677055203066011142093704306975903092260002900612825974357331855677537530791753734847969804845355222844562270375780647233955669853022969638792019635180780683981210255915222494621774566193086468543619674034033121672425004144251285883263897054569376782416050196751053101219041931397322930706246602252237620111276943404458995577258121047569626916882908138277375531322121309345416815525797197028854202309669497179471045685465761884518795902995347202627506542329606960785204050172824692975349539271417534792998408094817920915021536055690806666639448008019336120425881329841301858331040470455290523572765671586699362146015833818881674061702923703249793737392753707416321993625582516724846772907091897116405710899652986036554077381475979193023630001059148120092480087084362217817124957343475767975931722571394302529959477473057820688220604862002513536414868596398299827467845532864028698536370595248374288660858144043374032587558315688268923180662958828750001876663037365883417234718539007744629866121676330448162211415558116128522411806573474083893368028447600735935868414686666714499339180072937594519656891300941613210350384202366632744984415749514713320629619035123579409253400382202846559471982235195250238058256441397537471116626788275496409563113454855506877683816362582142871746591106136924269782975788590937340004912705761749290180054639875745735690467798515479247496600839696476096342013075522129625942323659572510352903367615666631056450026621900764181642842092895441303425906655049046908544255518304188025040755643858521337654265434440144815208759319948622714509363370856263170021409574714444799841581462856369284564673864767572352042505119021951128138746807373733990365261718210776123562837506014868381829404775221597432371433058624713566780214619429400691436156319646762770806790196865197833267089829416356660258596479146919033601959189306218257183009519316312953769717628672421865653377343203733275858769441224895759932202544882081466319207006601422086734919136785731054923843681473978636290056391112913193895360648540140693448770132404201485616608337577777100544383266148882062069354047946410614058672850616992596633674455332536439679838365802587667016210607234964963553722162594772911002170413000810796201247576521543374832759407728353600715196584339692903938040388879890235726097920326528330395540345073068609753358535566500439977303654571032576701968492274840529384591844048963118440588681959627972888426065104213031870586017951248194988860946778542093182895387722688286014720478401354095865697097941917101200224210920300792487002776040099857336487260389055310597538708200262197493300559509006413796559928273452552682759518399897549842459589666322915079253991683411134685809348418629282163850254329779286721657787454752872811934893620410227915534977552559499035770240346522942518843789379396351215843581572517220870998763701875976848786093773457862552084465535705865995668663983719173417580075768627169872697764099392724580840325115257447777825827237149064225574095851393643432223443895084257494797483579892822725259729665649004130703732503528554926277776743811032796516172775980589057112831034867536113224568172748972945826159122290788656069628522471697395740189786426634993473887270346941045433919496017256080760754659618068253928527906919185957822927020396624364324206721257779009309089498337017866001193366555699544376151443366621433332531174286154904937290063168313957198042649449811733342569530944580144899075856186069687944601475065145935790720975535721302871901872634626003612131050009260613584593273445069383939335392667132626562745697186792415877304935029112966765821429722072612886095994696500604450796495641636917247523891054781211007014258086313439725143100615415435182655095462533877398260053733122494212882382153787232665483306871818452344782258532753362570910010125740179972717369214212663105724903867406263767758578894367476484797351696257338211570597201759492885133225329058948303165659361269641044883130368574895192993372309893116205419077681419079954125248849148918997942090780316407893071268418573465811628474373851865050816225991130621064698880966921194017800112829321284168519478373932693749135017278976081039217270550919813889727995561252650540892034371336922754073241036228622559696735097810666825227132929083045882479249930547721849357072381499382286754592034653729470761368822315127778213663338151332131426026297205794626258202720007229745079551003349778468949613810655100108924560121507183663820582734155315384391971711097879646052907931742166668538099388926048967184090826709541949276516295820658085661554233667706184225793938200272020890695174614270375313115530389337148876416136105126399685514854280611344873643477345830284259551282930219524658211367166655093232305385069494144904191667667570438958617805909217486787364215551255860179702402491253838188374325687683633106094237110237084885795169813830100284048111790602731832627601163958896510937088674714092204810420603178606845114652575270165383403974009379387543554431394989229650832134382211489652067570050376801194745995774750047094976772792101596350788012622410756121997035136256707989114655519304812559192679158969491951557598755565643698949107718078943650595551927508696102870323712818344802949906269316271864592138144761703025934929790035518801139375276106343191266015249057013957356828276312015307684963039168231095060434493088993870577721397266277405091274872865083435066628413633660465862907489554083281431791102345425946975864925337804871985743525149709222984670096149632051767508482564918953645524646751519107966780608728458867400659281117742642413055496731231050170381274920022276596312561044242618680022276137913329604744191704439904748829581339043397396881005941344383665228029374179109550990947910811266669923037754309920879577073421640696618930082710751565141116187511798120305732961025942492852034338218371975138374745551935252477229425904945167596607638547480152886749936327240813089253525452057744985528775749350759696177430618257543182454262632397971265134176232504115441546053722515869145591152808945127879741850029921228430640437132994341321833493732233727149773660500381909219966040217398319860626561935203886472855736322064346231454489416287675764767878583512817439929074887293542165961242524745306742282650111528429221725300397580994842064840648554503185440571433733906412763231017904310249442122764148473257861498364138609674635064278376055326577333790084079943977616573717757598453585370231703043428393804014144407548046335044012536166504946181650049935263920950124318455166273969523710681653048881916158036119429152967310518464718476525895505304425855197512105088425708922364012142479027989793493473918961372731660293230420876395427759343472671421336874518149635533257515677190776592947536316645622235588292972995569211864286127436478483905720183529637051292049442532980184104511396110902915674250698775420353798017537391455502890508406549712462887990660407776475074300137859077072114960692232643557901272310432031976792931137933063165491005973223755436785256097389664729795419099622579458432747696444871428354660493180272446187868552901928430708058823117296061626782331777381448440317297747809270171967184281997857266231070413814023183848551261333787215447918490493769258692334187378429409546558582021215748935938127937710869480924787469923529748559324921023032398858283051117564334967656515680613312200329839486469166811149704315282050763095107928266686286807811800667509839932050631606229269385153139335190822163257262637015308945565847166384381791060313279513188480104824046659071955596057801682116758690830071354856033911515674285507391553071327957018100061032118358306325190867521113396393243517828067863688879002959885434534543237142636546526817480737975927050692754902092043976521586013194562227946947717685268130386245409503702550143809639578792767244724703484805761364337361480037917662063781990244156354520575298292897425884211762041516633090333574813460770149737730481829606147314708521079121190500030166764202304116120415244201147161123676503718985425118072801054527962094534903452739481894192777652630379608962973025777705782941582133235013353437166400678495474002856185562974192119343709720678622127746610575999770807330060353642371257855473120110894434606290818986324843249595245475451841343648114864931943230280607088839311708983793280022468955250739700284239034282203833121143723739035112889508666152700134411311907732507593961291508865208402925758303461243708757686452151875904237600496678372090369052690431973095041724958098286666335197538469769492394046214897790716798349604403944561756216374545127312618814941281682016527691145798102245733401093911634230491908901678516429062367037269384618021651112040984723072331103630083268349567251246254449440009037880038714488755024939927855550877378417918403166828330325867903380127896073796164502971356189601261869112656458789993105208092632057887613642685048909791194903659660578146562010886574687008583996007876106511677728275435138219550527501197951623008206515913826617498842279366755787325755916010681430777731618629959932137310717311519437094483610090900791216509653124837525943117092522813936374663935280614163605194036623768068590503395698023110231898670610499114153419675808829073833187678392077201588488825922754208646643215283402138927370297923480231204341287050012799627010310603636253735970564037190158033941054329820212522244847026661140818128214451366396032233197363449170985294204337403450635729013664894902805197924585202978277581157206166133806500804759598192541659139795516528583857335000311355230709791813216975893253283504567512063925905076799777887141380820847641871978309579601798527607546171745441181203504978396527535907574786595464162477475309245629668759058126037244320186617899904274790522272610423568163016157214762037926872883242675755487658429588217936187023099595785775281886141929654429731503365798869328983882203754117550600738338217937343695656027825008497622154633834079480621449846587371689352610065249495348575135034002807044317048970708970017867861230730964388058232987450423496649038763480576596757185386563771974136749041198881944616887016844475213850779014287153576676286722910012444571804041708223245247606980168581728319190771456935599413248891685257868099096894945226425801598532208625124861900016240061770662221804758726023267632644396131858715074919424489421140426406238544151646466831096323693454615118547630276913855068519235880299005961633450066805651636576870380381038840497972574740828834421701819534509068185813944502258435796971313564866827318646072549661063528775469192719807274034780481297826110206397333193003867850195992871630993052322376633716873093695858535421617004626321429105180832553229694255343531760765320935086004256265954738854776785006695920048474623288882689791465678367293019605486306449194826533582206754239905944344336643898207200424131270201822313932045090217218820808763099836452071760894692678184889096108099089928122311437919472155399048104547781932976245438281451076187296442858302121103741993285349781804551310033217239905059156671828707980103379107558938995026143264717430399353623379165910894358737422672637352004082010582749219537565126860105738359421572811133425826924542996495882378852695058705727415952504156528063382311492175735418464276969432447145607407575602576154107832976338915189338018833510751307556351931555001533534423816798443065869038941200386143490835421338080011658518090621382644984050951260181390922851623129119576857898827233750699768771472053121176466497818060556527545763861864616187578101280078940444687313159249205500172863449763094075430725927386457179256213219646205084889171476086692929807720311682112654256450022861890122995290527029500916065042957730562051761578384887025853468893366094319500034123459566660194813025794139674438578988984857627999859416780929771672609179624544027860792296627922023563631077920587781134602275583595123063863882945113400369978046597957549800353988624325537358992172214956235923331165503492060080484735342472543016368567220028081538200595548200798212718089390657330243753302310015558462249053149001094244948080092465732867424861248387666327725643174049907406662150934081993780067459416444866972433493058643039134958215406643981284050700939117949124511062032028033236904288916917883977454461139005686997989419568379382757433764706538664560021889020340488031323927321373361462793312250941063417560707713152307451335428907933374918204142892041115467912395767952864090127808882594101602040474109589971546709530175061710514099560006113389769260508485229250999353727791963217295999453048436507397291533058549882875734634951175586634334431733602609734885827559366692005596007744698881602641522227083452074209739018316754243729061610406622046731072083672247916557203171743480953463990204879067142698709100124818237716401030984257459394149808698569783655733412834863228803690474144454865568401876405723176191760482551770390128542758308978985425176027200487567205181101102038136680216006677983754485568880353092151912860494116110678719796205102230723530021743562171074900409917513436827134097477367272568633652041537437127778320225003208452040301225939180829692870081169054996695167531976961922000559397937518766580567374493268648864379756783831729241395287581487374374494872652688034992330508967598994118318811016392394094253623683136121861930653676603813489095046645310687433013289627129872415297730792949838310911749643420065720129844093394441429762019659633401896694352926788613360203786953226318002535475209560927685574479445325005118872224531551900605199293057978896586396063188047463410144862312383858858618730183992098563047668721768574650882229209296631001482209792981784584241776625006095552616034619312052432104152299610193822136812387553167328124704583288439683191116151924352086751478946930782866751210710894299579241218232272187723868121376025429598739877699952002819270077110530398792286773015509941703681170454977089238892403118144842326567017613173361562352637965688099670841251060295631791387515081194572143187906320869694467978936533691927117251902664251575962984593606457676130249749144126001037703370334267698152899873681410263095242095964262783919401271024828906249253043105590860592607848932126188501903122021143060381106430567267364422837827570975946696089010916929498457818085381710055864404888261567923323655055781094781379838676906065250068044432040770632503724089249107706741686963906084432298056544864284751949508904897549255716186068845195629769894285337325301267694184746453586860278721624847676341038348800169675455181661349462774090726327715322763114994215026372827701042364545296938449573126463682925905061234348347849827906979156161623193814748435733580742128826044083921773664963915995921728004371114608263848926491268503846505297336549459957299216720329861672494283337576365651615132514118750847542651484253383851630377616374092151261763966745917552969989504803506957777709396136487735303263176349784235152385910577072268772073008047588344677066667044808667940130688277220171387918878733721740104695705692016417454059990099367475905516120316614305745051774909242256187387583050888786352157372732274617597791732083678459816173727763064229260165249788233704260615148615636464132884740051824327742234262873188862673532068452224901367897396139809025754119437248638733787339168744318962245022941069318225511619086988583859381250020969651625327873229051699627271647613967017565336730313749062660289149048248267271532050924941452106415484183259245160327065283385042870984976917336106296208771455348930715007760118194020591228066413793046532931021064464059894008034979937088384145021566828773496332070833550768561838139668669367862358122858397411148279042968264277373550483860358698644832903573490188927227945841497035676830208067933775705150071621565733037880171862844545249006020663395616816682360317209527081484192880560738684420221069426062965490727291396714036245105335854553002002518345702182281258125347464827162189626208438876648097700625613070596276034263849251185321185107716832755828667535272027736056908045498722634727475938447491384978204591061832435175331543405855823839042694105258888209855962513700152192544648104179023982823166557061496315087791529986147529771419754717446859145595687582414065541487463173420685048913266149028464434082445550662253596437250000562219278858571324513726812500685380064774987722583131880599770962460479952902523309250754362602132957498035531171717053222295450340458282595463399298672198818798430530869838843592940139843529791326401773345211627952088581754693810288064972541649430127220987624266575256985293570569017834372911605579561437874782785589406615216431751661445279446561136958708265965887473160319378654139623221417882321488212972303668045490583869847724924892319558729594704863590479557510841389591051604052281037807048273740082962702594693854145083086700699706959703379720697516301337253003809183439523214605231879591024691430956572084778499853645516558820994246938335427526325061120784460036679644773254782100805140531700912528880389445106945242740642726837066781335711438471502091149713194527584897712597111553574149828556584540670860653953554107877332713341694021647894794048590525500068986305919142682967328964272907490167943747716220043439997033081691312906023872448660347981701984878951701057629731509363535638198110456245081051672323442723397263210591551222380048673271836895447422196360990533879702406227155796398712707699916259198149913533822722551784236167885337298065015941393134832010792468261484512368040807454753067852715204262211358611519834108319277764890065046411817609633799903540354648350337344936752253775801572031533126079463614538240607749417703388600432399016048665326510926068792154952764908436774317615484870200233808573137831374216009359445219188506008862923482746183558307517410903830167327452148760254165310345318399206223507589212156236549141119412386242435656698767694943277458839406059302237659663669349419597540017067904052231032742344362701497127323019743660055766328419079865796302038084211048431794720953657608210027290246770403695296637413974105529307893467433452500427486598534002207678359710420002097820693960272775071902782251598275409913213539952487258819489922915306179273598261504311048691602895903978227344712075065693453265081747350341125843679690591424090053008085347999763256563361454157863754369073187299771973356161213411108804492968163604523460269258201203971000701347685323426072290837382130380140159902668895332562189060386714993368025388681297267716344866136730351214755785593725614798113372183211615385076582512027997342152782021987631562031373725636638335903085153660418653492934548811915745975303587376031912425100803835903777700102578955024614268328809542546056812401528753806914526751990623516235794137684027301107664857420147175277587815291821836766729928962563703061308043485061903694906730316282585974544069966271383829934909689089616072442784646302818305681850507860801243815278121805292919117028304120007959100417213456393933679890473116187695473191871982488161028502126656987433282470381710872823099070805565951869170028899101085057254954849224736649738575559907970872256993106356925231829592433101013706300947188399657438918581908417902826143675296131561706666829249732828015331948879573109974359714256784615237958539014687489544143211638004736171653388798478388639217948848223905150375815583344776269294548984185919645960293204904445061731384711572383980486189124076421426194822129409401563844585629409217556981423627301294188065492861097676889148888980183710408999695761736149542395259632724240965024627374750588621533972985887791711015838850028356887012029802544242404597577634161036937038807044589858622611951582825045609612561644400409392028019004285704554376944158295772105603665201215816858390908865090730804217751104607403035379032730998902821859761676418955684923986491662830514003532390877668557697018787668249764952694188440363767774008372580050165431827637946127397181249589578075170161818854360663946136054937686295719604435120856899981319643131147241304941200680188236191521636761708086366370680223032769923956345825722402368916913048106990475547049954548521555345257444508481062834996322504783921931886701338121884473542692642955620433783339815491195340446844085863010609511151725407286224418309162049755251528784260415944140404693822924478360338710545030873182079276863617942523310148980869983256855654551012820709218930930617984146708145910006848756565459302455716425167884893574387273639150695362751415756039983629666181703417561431423426849616699571733676695037223785324022016667548680417157890290698271876410256466900500491131763561495758685745903971122968331945002094567924477041424499346499248388609666196733416595864515939061568945637251053163076655413306946084630184117043258291139028811510390005767224547950708179815406849331700057008293862899063723845260755954170015704315546822799912552746103399985307095733716360944456819595831826036527678029419196255621760376178022710310051613960266483167449780016451635586139179130229165436110172859394729411663601686477530380863964074232847900572842290491129590413379526225168670676899695573732056034938341773628897658983253201880453053715492540081902403104342805755892760879995103331329338961041261250082605865404421120821369256723526295270761931715177015109572651892449694904942144791278669124956855552967319817024508646123264161291618696735229392803965730705155715732552837194932526480308931813546010336962440491761529551053902214028187486706714348584084124580760243165405016194208615463257600196979242132988872918857859285263758277541942378788321669047019950039926632290678014568981136986241849229681310508177252274823826524797683779925009832875911351178856247269086222869186407053361165785685567454154560913194490624991935119406217861263452432896090801444764140744540053036871611000230865640551943263494862033896491997615502645965634640581854656688037276236079366724387782986022428203983416055301980553651625292086746595442593775226179131772694004977394630383560086762196983030116989855606626131110458863029929643160508774762405838933395426202712517293039887428860324016431649200835229157971604394733780497505884749176420888589783685157578295789829268552819372483775688041739620308687082793487071563781117085698363833481551897649780610704465083788522942285785275066466372626008632564469753329709462971521952695699505795715875873041785226102489104062263850581649737421822589629412646400870516992769444091642623266764011339746215799517140857770353635045443379189435129350714631367677941657908369961227169690620890228833022819793498762216512324622455698863714529868666270008102402576792551724952610499422002670501360059638098782746565614536672405422126535411978418632796781734192177405850210067334098592643927210787329408862014582254580172020148731027693535607408172883371366932024948172845016199056803479623693943528041171646863180788187133372951837721933205578780293558982370498951601899647035304413685159308317555651258612402179054762274846292351352631483507757105522575652520643460005892156268589239684194225072977800309990319879374307184105283420826374435281536497718027307327415980193137875420702340295160080673813970721370544529085072406884422309442300732436264995092494665189517386495733638989441448912030495714534745042672771385360990344222106734495779399946005475702456796634443655422923448309508518917848475146825975974378554562443886137682639387086877537523366868858854150982476245996360410984022472739454353020887119686901240934783977118158904288749290106600558419631904178435798144742099840109140164807682782053219181263145851736315567175501264650147713246350959841378622861751469626317415481622536543328082132865833656583703217931683302425909142160166865761923197505851225988265912444100352830001506792695757641057487408770882874332639698269624501147962563191220636095794010105376683512797339181587364801262973211462763908908148228048814905489688642828707450887036952794569241872750499974948354379192045749910497271634599811198876622087780950690975590513537473881227089403142348104633299017562140301264668970874575008298689014011893584722738623474944066802482671632765524335039693513683136403020247837771669653770586231037110589436430981425841883972905873982121543473336425974666282878374720166239937651951197957358418564682455926397298083910267110832926333547046689452067542837066784960671750916224773447220631367203960500005411307239715009512592579021071668902709843833239395137985465659193587302253332032359301940104794675329764215207605063777683797569113474967574754561903497573389126203578476047191955291936893528504524009925911926912201893851263944349657856381650711227577249112350272704996499151745416621074030474049998155637761776275688940195087056593481529211872904287728671090540088771607951871169701424590600365283207420162733151567284555359607618303146492375338716602345999337852473899134660934371623515946691401860412185958002752540986039691986063208429955192697169866203435931143469182042057987829030190982524923519871218194947552595761841152815178988038744387559403989248861967131401281784534006126845123957653644253041183438564159980111828352459049594708392660008979812343171716546577823309423349133488978853781058107700460393109380957108868121875406916725257820654072399189701122925720275785760465268851750496477957001732317891877525209219564404387616709156523227999447566410040996813856916576508239477058905751578890120748236878494100733839395670067261059070729251102866118322336702639303175336039904549166987220117467744515350174967944207192328345985597538407821009244039782574756900266104533225664413408014783656106807679038282216278093583635074626297023342062444132227849440365443672248969283974036643965784717489303240647327480456960964847087632745858764730512447201170342981268819747869932286395425588148478012330902250049234041778564836927954211116434886291831673152882362762273242361983453435674160256060621098097091754100939769476790619455931788204002672641469728107541808442224932994094109261058360807761473031718512986776411345603479459133099495245531704708627499102674999735857588341963969924079884441444543769947365696916522480777150526845472548046076999354840071981668814762694328927171786112166333884855243949618610064140869035374091309235094421611442442176963679975495686635454013493627187089482367172469455726494461968080696446443364395857332595986272917822341682968933638432644895840946756197527300304776623418749361445458138813875921974541295084296438989846315100893766686370348542242879256527409823904179895580860826678233453679434832967629353357123177015233663495540572491654276490331724344322705002880569236554566663950990872631515786681016311255099298647456617252064656137430804172584553278771817735809886301329087688275527345642945627684045128249159880088105645291448039134975534615137633341088937409352535973688109588091520135407822264122984458701752056621554764244565216387726164748905023126987076994359880716056293272443119741827075169832259006224596347087314916194406858027693434081252655176795053494803226520506618314659061674379302734129174719718664492088824622872298128314649242967190582214234357253484946940780970618102325488718315340727877939029903622724991889430231254629013073397308214512239133846043161755968797719166714702724892728454424572064167608245507396849391343456861951519831062965177151775382392210991841207512689793405571206368668682370890710774253406081882067173906810280114744252517953868184238994111436800182961823497259295129118893376704630464753837996730863081518331817343797109930955191543147357050944836663473245607950711775081569702623125849578746774910844549878293993329159293114330867310845855921621543745678343370179260119591980867407719093930545689551405634784933087351349927973789653486950628331690395976593716916813030650495734298677591194315449832382162531840866736864530670696350561655305846983099696870716639143588573433382273441310706289910130234581327166268185563103943186783591904626621915730325466153171695415413139845634431215253568713350444845490086558728774212775912405605977612380996333659486054556565803186491267139311556023333255911460777062449379102221933305639299870444333287454394911206999711823650418768950124078614173685129299972065225583839605189896419435469394258554879368744753012902496707716551284094829062482508313835081903669692590640931519261704513273490668632658706869193769641611298576080686014166285823341508646905748942987189781774658290018672379923684744147214097337151674408537786998732734120150470902766348952376937191540530328798854053462323621459794108005144411542740150842198272517173445877914433568170394124240292290014817503015950445360460936574726392008977813282204417781846830749010541464327377033072159885902966091303665076227838321438589512589856155194081761810350327266817962745349645549830162406644869248006034365343530756347827098538522181534604205547707179536639057525773446507274652643137966395372005479932527447588035350942211759686225451904653649121633461892947401041824452319462749123910217355624190984415503442120740687786287238940875283842981201595081398968910329612115777103411855513311874855751783457985010074772655131432852789143349937433170203546986925219090413308582746025610834131288900938627586889808566367072604761992253111910258789521617222324264253059985752975491470026819805503652086598725999711508122966618682044479609843517428252375480129598097269282337765863172438370689455766456767593971315830999846908081057892524948414294620424745826340497718623320730579437593616242584252118813758564125149162782022616400808566166369004152638184452965329496140000329201429490354631214975627782949598372693266532567450761288389442940202198012298678285903153721264989144243812836333728459626051953225998765743177493995760039660363637209380168938779907863188003124366202725217677903795227806845841998496479602482918524974734742648636058419413245927602930164558490362438949099810882080522546877919667926853556459079551468706411721312436220188282292768570476374331620536586365080892170046607664659476153414317556843862056317409553812658892945732972698426188455837438482897534530470271478903984730753455979030639580126905040685789633187819469667062642625722512064186463145139719254351237036500490737796718631134063528944543512648380365216804518623306256335402062021152337316221487461510436747646235138045543831747484580231744349440125407006163433883221264601839111212223991225483012352672290347542711106797376942781219239130556893156650127949455009968961563116735233125655765032612613796950092612780407764755698473864350092090897195376824077639936524452654002428750457092026250659576313608803188752740634427056913256373531215501131420314878282512665748906970096870298965061620441568891586706166638776180389587773489443947543047880342280693309289068362337163533901788051986072797214947984185638724805428253658100298822612962549793628267255897171775377582822673496483772035048220145843815183906291971900917531479249048802060677400608346437038662343660773178041172319062603366753664802692173369827625036456097068837708533214612685765554160022520260236523430037716298784956817747320309712741428382108683811793042420450335457151221556538076935773132565220925878323536765349157614120042834853657501627841668432338006932264283880071854491775806508825017845812799062617759721374779641329190146618941351719995078672509208507507232819678381301441285167582045773451442457185020718934772815237116065243474408585952374407332796767792859317823767749570686765216714367756730447368392791670358352031701592549919312178185332411897616153119077205751446126396042453367566475161659057686037472621597483773363656228393103838561426185132781082815023940450205843209108542815973545463822124979265980286292747601564941590253056447464917249941594561682105016943150915046776831684884155137226683095783316182382645917538179520012114153835536580516379767601746428938420646122423987183091536230337931089035811375445031796789766608447252038955262630602345697823427642179917974388461558149072574654029727014009860005110627184173511437208680152783469125141410904944100736461059737130168878086444902331172877486836523703457841982747187667279592847252631048590278186529824818458103386462946811642332606173651232569082761222764665784955815836072530478342295726077603277300633011443930613625707228191859989211274101814550304682667070202154551249792975777377383049962175417857222223715233474126607272651276951906208780568348954242667331171575000044671576244166015721136045104978129574463772090772130208355379174571811158470371497207439809697441083743298129205428094671940263003945760991448685282461046016407481610373317629352718953316131728818081781713104360696787815186272002781306452188363344774923969769963684259945950502468375006097582737977080902423233961136947109783391426076175191423624835450301692313945756928346696355972388353257798669195116594173845863628365503323436706656277778389881670953518032943935269265812530002488646844405770841910339840114359593466264812120685482507693788223257782870094535400369277389118551965219912915808878214035987717033635950383570922950684820171915368604741604449268747674070417236148401576385996768317697435492540874867295957672644339826031521944282384287406325038934361188328009733500667227821324538563230075654671331540876820859466478597713661531194766957181026762540223674001772326336334309623160951001157983570222383060562198562589465090859926130425299880266657478371073872451490769352128324184571485435093954033606934178056341464045382648084623566238838909280393763789715857825149199005722554205660708874643972168861859038132886863148044400445851412615059337915687034276349106560030096624858089131921120759197142024053730376378224886291259052014563147783534119241873617818101446646945943902870870888409270775637863163913133819571243480885832754574692252467989212497777667074802536356592523279555886358806800847446700869152249578290889515721550844339610900770805705335782235421579196182003370268949587714532939823865979690513707647928771006032501673239854281955672415260998477168155227953082086214481091275754407553528361164329660577080297681840182386840448668352702861867381373755622769406356090189533708918298487588566677948678246448508994514711690641668412417933921543606928634455417953165751208026613659892623302998080574544503443322828671483673197857243901838169975082442663017708383464735753120774991639967466857353194376174344624625876151943591666195779397330824039064292396102469264130275863140046774703527065589070440918480440373759319970182310870152698420762199570580938998985538674253636308202864605778684332722308372599231079053929358151502971399729815731828003757341620422734860281252244394920605145587280179829922802862196501289083473936700689090494446231289114770611046295230797784016816555567259709789281267200387325868674021234703262171614715189558320262384862717255379250513072625100140482344725110067077575930027933516156904526912331585981856670803895167566977276534198527032385939249077378586679618530853997467568475263101868225169720053476946945599663899104146336908352249178463074597503811396206638256191699902058203107155811627027054415090695695167514525172211477188449877118308859180107517542694201489469778030535419851574072471782475256015488209273541347757826658948584444586430302835638887944372533218854405288754868293979911165284906212415571343647451021705029957738708161284531183450304126901091587216051101874098118472769432322471093561408406263882663604408604535843648427834714942328160147183891862644609107740502599450699415100629963564720246349597485406591626430687955249457638330406681481923700406858523466240096375079434948966283451875802480775396668854816058333434403339280275179940831155942156533909952926367220650666663159708238703176357517484277709782794418444471348646343393789157632234915249515970511967526688418821252824386933167455142485332498086071491234668941723592132536217244981375591767440419662259491509509302400473119489221680411163791416808875797478461131433599556701218039421509754948129113007264324862380854509247620096148354600165776536200384007812482806712269296454481079588132927645219875026835328465071026802900736198203571626624121773865225005227370543925005656960831691755852992588814649416090791176551298114705891452328154422497116561379158163744874454131269485210908786073784902903084037108606385885560118455037371754856400308026000873775858624101070028186329505626947297656446290866352360945415896023191927496293233580373980610592686321985166517456492052773158780343440498279840685931964681063284312126377982651985006006336646248578922531570582360638935396483111301363123708756716519278898721736714925027654187032274606609293335133451800700484121506142170640280076808810858684075259263049282520338745196228852294051785601388026449756902190212723833643205563048273892530175245377265048204301492200636864607885271901967198466000680907528315951253765081557097746952629094633478820515797558602277637270171924013880316130084095069604287997088165982200118321170255415726693442612490501745155054963810501512685837703442133968544126424984435623876331227508683086469468383591691978732926510457122280940464065667090102300571236836833949827602773175305150813525161116610385756150169879562541353854922736444318865750797312400377657208607857343113008433333167427857698921712752931162466987042243698631507264624607412744943013947528732466099776621498758213508273957088684651032908053118200073959621575412258702960625750402988216998522665777511741136493345865806095708729321407792370944533186649496865674320266766004857441675490909242116915374258697790661329819411246780356676675568447885401695734559844599529448943746294925251865736891455491953801275857914669550579044687308873654433178296107554061804973864645545875996388229512519604486934299364069042778531895955252822519053609062830014276679157506656614733949578531666681419421745799116081643711361956272126027867004087770047327799155249487037751789549656615071054847337049207247796262649941188838970023439087435518291787454938378354141669231434697225088893919648405936262697568185570491414292434274338945822154096632656370454050348301876962235242872067386788180342862289269979536974089767340259168725358887841345252687021233160869725482751242808909061547218606958135228573332228242624126478926752657124456388654966648649391888948552872119017640182571652799821229814453447663391045600111651700188456840574049782029266032284433548535517981240551027378128747360222207303195686553139793316199798517195363132159695585048735644138012964347872768506032543743196967105663207943799903114920283791401142223932737303251292875371034156449838282485332130035476462033219259264514532996457082531786425860471065004013557250921151304307640891038095345130291980532209265730648934017369759021954872044674570644430011418782354624741130735647930310112289801531374711886940688485270114888441913387615639416404830120633139940621761521176862242647258390665159759207225253556052172276988210237151386953594669784104905896302036045415596282223964236885726522053209378738826968295408416539863203964319538852143175000871710296399617891753109625024732296100393543207342678419771977256312832918872570111398356850673067533406321863830699982808643278817744932564049448935890588997710010488007610274728489513537959336749710507936765390486144391795129969743730060554041401313261058795060575791133012734420148462191878696155611300701210797786182371687602322315654031252143960484281031222045622180020403658564369368387118862506405841861499850100037314290633527014419710813789877822379455331502364368285507390749162830098266359216510933057988457286908280424082973904320205954563692227156731882963592392282353391361445171202117189499730263453406943677653910344123058018555265750167759485311418881145857618141743642370724434387387604588426894710193538140143424196587960066991578520233718915611521974197807656127357000923486109246124078963922989871944705683938416599450336897860414362226423316458892828617557555628370357567564567757061438796859074131616468919920166637454908710827546095757261167560603254668438612017309032126205521996513419510016793705882805345958203137276744260975759035975859617015900212277510421603804645834720217488607526681813480498602012658843538733642631055737764909273044548318533764492210720245161931597827981654482694360327473576678122751786902501594662930688806968192818987438676470311548164350621325719509843702292321550761451880879392650289923206837019383198891757789326402324416158364050776264888435732186257984009181472849449243920840969572623791488607179192810275740312481752428445371990718398857048181918405509149220668634802613520976230117310373365175020754349274921158234804848771797397902604890048306518741908548184632525394796619472224147050587121074768803697580492820208462351140621850810927638868857092029177400246081403813918862066002681348446668901432015119561285959742451886581518682163127134904203222927268476460238948317298678507668488741302744576978319272588820278509619016741429539242304920828677672519354777198999873471721030203058869538270154751513023279214995977300319864877900894857372469024087020156275616318381964902598514159471196924928452236450969029421480515564188814350857367437944254274485119939539690263594915998707064156921535539691971814883969287269911169394155146653255051459749231599709354341550946186931988337781238360150519711707021747115449460467853642882902045344245733311868349853468528081683442689329227320625562648566953853523899738811645705283533961036390906072418335114400589190946055248045535699385003074661081705956652792825422927493048774851586974610668543429560863715657180063791447928271994241710641541304809800689685153512283046562918120809154364557434349749877025071938665288082952472374084033346350329840140262394582633516740643969574552634039449780048131296686067914700584756057872670133719382964687498444237927334059150538612760575692405047479222359160766778972517059374887671957223675003593497767858744221803718558660366376404044118376467111055457878329613208681098581603016621605447574897969160121970130979355858979933754537592365308678219905496202111612353594635072460010707432607800835841713590919323318620768099706885452977114960649573940344451581445492896519435812257219665990090249785226376062824628800895119823003924555133350666979782176964477047799365214797568597187796490693289229427213957475200948357870318420197494794820236209098324093828517041275474299746767723491559310650228017435478024771206779400780440395542074241810041256375767254470618769955426075106768171824342175476375920521982383097279523469501769134623204007541769426573105270379536242996615142940977609839352713945998020819978273296017501475583968226810340059710571964383818609398789883390424003438048882688458525711792958492243727621597417260047086475886321639567422920308345076051876160209718031863328730499514536844921447631468433100531294880215350506561278958486373263369236756871486378755569837845754670060255206392620105453843543305458795937090960416610092781246327704874320296467875286723185760435925103274876103416072173005344616558495247808057384731136552341914845761457466439461649016431598373675128642153258731990119146120772062417970824245764817625963584677929897824067010602050604037870970502747601534059814750240200441753039022617841556524260749258076274662302862685578678175807594567693720616058071640915818108249499847673556218037015627931993165924181924136982284327662987206690096790526140169155174629094367361175482483861252609355062273950076775069073196918318105707663136187385025063727849027035877937291129228115914948148583106573489852555713848661130281237163676384505477719061765178496630574739836606831522899300811809017927604991588257258060823798166076823159419608870848903927157572756669888516578979429642439811326676562442992699995909478410867835882412992288401061526101734818830459987391188011886565162306667356733867849126435479040412174788843854012941336823663928592026375661503474529047295414280119367650029295527676052021651303584356321006802366750598988982842730267729051552461037167091721284075400758375700205846546457719114595850055485702924839155301994270774625331923729662685157362986009208512404814357135042217117010742045551119747387183961280290177323059544775079950259037725040587143593352115084174954616782338348828109472634546569303022641534668220610231426265139513176896072184407000418230891958781317198934083896264121972319451624084599755719811173033886147632328872676384770152625638576464780440281034544955705434825901935668460841398340598565725196196478723640120015556658909267551104170720794067104409933257395893178761227643618205272614715882083401250820868202437324267639633761952689060639164369206592853515398660404843169246295874834643437573544877399022043052278933776061536607048159522391320819188045415826925833935198006455938618193109911201004882492093655587804571086802493999026840302555692165726230781273198385297964934297789109338812483788334835331394206124444717629723080571791696823821573495997947852781949660681283846570978258874903004256102539469897960017648973239687203678591294308700262311343513486043177955621325829418390568040914591115261326527721450537957059116752148393851396797320773914107646896545046662839047774569700523149244307032653373175115091366476848353118261884637052248148643328263236978364099039113657205399743978508755683054722927767138614752326158189809238867279235365720081204196038836947809113209362312346521538809159501932992000679625422503970086142276920623903841008563154053023281197017872545345229678032413835598668036521140288652687867526474545633895889775797217315797460145343492013186588181315718493702945655273130494051828107955934884441285233382058108278592714082650206599041863205361602212456927730784097236834390305342417227974926413826296069185332988046728312058411610255387995047447079035674477222888585408459943930447253379428096194600476926170588802278480508741284751956406133840981032903876149437484246621540616190040098130039652627987582943541218731781985834438495650139972271944967123151322804471143551406805838279540935533181863637466867764376214840786483917522072160840233511740625107675080972689479081045561453047360985276015909558508160328977536619749970174848186509825059308993788496143691876443271236108533544450321572559111242282541543090517520225165900342221103703926566501790530554728280644908357157265492030599028764179071868468146603046582346533636293558344448124028690887003842766026920721238504069072201777973594332426106480695694517837833952690612647463281783733959812603195689222697233992804052717284775950810140582851403339153763546826510491039343015552205993927997452110231553630092730265535597301418833996244809637856516000200439134477764932864742891992928831716664862439856955176257053264633035416827027186186946586460341118443493346733927930489983863366862954301530733914759647540927826307381298071352192103952924107748307626559390919248169882681209415986960021014411511097597029897385366024705757694811295178621509318773594848127874529768660597402628796977633373155571351510556843023339066399913313510764673410236068846525324204073460327732957803607087458706097492021109146641998074343054357953824358347428381072471694694117644903219352585662885442627776811546303440297049163217165119518742102043605473657473585531096117766656105036378822842890914069018818197557753043233297087005808169255331939936776009484113206280741580240142955834846403838628621429197532562852175568838458558195219010759610566985191749714163667090923524390596244078118302881365991048185791824121775200050037257850762945121323558301216177413664795778871834551593990588765474258992285904443815791796875659309671607496172099471691552036145011276188794102506765043658917609217793252995277430343519000895971886196751625054655971618330471339427359533540143045145876576141820409623060821433648116114644580503522626697293685913140736519788486278928800702342099960270033399399833891774512222559679194645721560695530633685922800356395341905486002526544372280863558652015725220437609179805659375159007189082475156938517558140196179282588770661556049094071183288237347253296336787271039813246886455583709884190397419048732793219234101006128925167526740604231587690633782348036763454471276234737833669883112166019966390261589439606980468113578986654245753122357287829535269345501390343710613775042189587236225163454892049944157001665816339850652545270593655837595413287865596708645087175858687942970822722848132581836463250738857313848283688909186100807895745901265414485808754359645369866892913609298050620341845723146823831990569549587118440317428991403721758410890528598188290915056870206957984384908248292580134993285195917621750572598380054643506989142666664735260012904265061443666376048479886933249046256959141451680413301470581108807628675598813021322971143631157633728601860686752532828505867348918632519251025779806968830366983861886227345574762017476673164372105005279453602062423166442258837061468652885629040626433496334768329573182859660922016124155368942561800238594750141219508328580349050136710613507993912903288222415768006634260813940243001462568299395735063412892041927311346385401613670746892819389645899944563145193324066349143991972790397706208896213390298218297763641887971398286795733095006926590655208701534298507535165640690302779626374035194750893687717909968388654866243025169861926271933531745603366966358296026460111205034869585858960435047991450457349735092893699421385100271499286346849139239819129588334313624396941981771235891841443471422213440823699854905031301481933944603443492467419852128565775419000178748252396215632547312428169935797055553780056090019365876671439206990480390202109439161846961249219785836437387593033835037414871827877286358201457998192280081820135538839091423997656375324015797176407618141904338541205905781504290405128979218307137170786774907363396165008888346642212978704912355748534904114691739201181625958115689721054600854977821837067995892171309600000784961056271917904981230203548490945435469637270463240416154316752699170880701015159053830264461103270394649572580402274632217869491897706778486927878272698820162480695020554436249831815795567322538920703081641127673051008861535067451577341080802785465025174609110904993734915143117054511278912654520151630342604453033626211150966816213480942805182853204487942469684724337323396329271872923844010157191564666004948229763949288948722124592353452526142765094183725754137986083114197616209302071862904690849487198783811191154592649317600900032683821335423556061764197015309894960052530699103821022275709442775280130244169002899502217975278266662373436152121942394856517815777073844188900552063701898103353458897054859324477634281708442524124541595133541186488302957787087950963819057054372251204824950673133065534666076824334539034095965441422178334852203093738239388933024922110952866349241757325800319033641685233329737833123422761365870855042206907396805062385394099032972108483458783096001415470386933087857937641619652657922417849404405496223416008906329965931363024807098041109672222566803374589310401358867454657806536426154795729415720306971753577524745248224323889210372481246091202972550498923752202994834269759358831144629960434735251755343419242335183165807456270038558164642807829471943050228461862479566406307546285744564748099352540264119293227696164968486554356103545159510865883379315409902601860185278273550193013931142485557171889220875330359200286819168175127061564064208703133172007191085041806042447720707783030163415830863298949474130834234485524389590853987251445004698503430025127090539870809008330756319865276977296186133370830185646874831061442797776910727476755224021389358790664336659643546899983012531210272103905670247321286024178065813175819366213231963534328889331125275380721682573456737974128129705573802781018134150914669029509227975545923122109095082403113643119788180409704590985579589143483061315688615970677915082120140794514773106305004130415741312642388399887074261425059900386508159303736837823555452089518954459305949503940287782048748716692878368696689906697376121731571698356769602582296776647963745144173763199935563072282491714195359695069589921458496168695153698896908083908238345921244873378362300386675144746982469447006102685178101211232492423351202475611296161507047430833534874708614708225713174102894315522795213566851978891666012910024374391875771618508283106036913038946479853005066966303889344723232142193670382056868752428706983659452372816470379743620537126460962942765079313959409796080021068559202663010084783307380185028812126909854286192098958270050563440828413681302998452086337664650258965233305675995075246892996820914383616727785437191045850457180381265413065932265505763779651412176809287291024756352717159387850174088010293510316616273658264428068216277275118392950797219215291892341037882281757024773511255616810079487216725331487990186761052838447085697030179810349599400279141265191333379298530756504011352351147932527495110858600331690242692897189566112210464864929144121136206346797340515148317227676204056966156131185357685901961271219514959414893399900134313741263862832865080502584462731961765863688313940490956934212698842190966119055026499387187895492333255876033522426987749841154138635511860611671662757778660227185212928193794900132465442045155408765782939389339310361934427088973719998414297980158623790400094663591132830174967110781926544504971283959818501486714187630283494398987100240081234361159697569545334274244950699035381367777098021572161987096917477114328214152507034535788790022387986495339884585744597064300480873740837002310000865096868146569082269706949459833964166437152497459655287637009521930941155351428326310351400065763639096708397490361228818293333141521261706511249363125564157483961367293059433576899543395763923463509234484567657802799152738373788816472014230207219884251047786332482474310768077264947117560912246372867827885543627623648093279683496064741370782661262493678159327032567737516513430801589077935974070700272399500566703795666200452678885796449139746077339789327899309598723902476933437746982941500530232234423483680103960279241053802001588354781670800999220528365193954566315848923771790046644278762159699587242685641043541838266532562338569569261777760540435091427145150074676470719104153373444311766504436818774068924343820191793080139333484556435414161176005953505672236898884069974866374854130852459028217376324458489821799632370256595995411963574162383206418981115884569601236799393251268592169546692509264450991760728749101083661673230155184017170842175166595880757598392589681668261799625286900849004653877863310107626949059156518978527846627923311031341992536254601985830874151663388098645193933631959465050150169947606816577500326157982128974904073052531000662810900292727248101394830878804662651699945390755102118178654936369324646826041268064054606027769609699942511984575238306952713259247814959169822419939056072390999048395857202183872398193944601666571827271545886556728097914971137944241568482472408763513209849692951447326996575496437206990004716590767847846329486363958678526448941578192149151712310220499799856792651187144190088152969177507275948151325571212654301498334778732063173336927034131595392200399420305400132607078036757690061621823972442885016289230777479662281131508540071495571254264711956782785862881092629960056970333864525494690775763741612780809029079296127750066508601485661312907424787569828516862769411252981687263961230652061334872935173766200368973595531024859214511760934355346335181594473965214288949198245526148071255523502703115398864250660907208896394415696240021415529420921255611869758237111306854042465905645904123272487891982621882784943450400778210238348568687588003689534278845239643594558943605279290539514248407138382701942519804393761896284261987271877629009721892433030407372787193492799185054994617736884109864314439782724252069414450748426247965842059171448820878730147201734847852535760013641733669466229642191655167002945676537188132074680149798993172987506682623649633083432227610846941471824128932271235900248872540472424320283031951819048178292480491773700769226082573267068382396635247539074724870905250741894016254823617580644342410636992690332640213022818335459501706115385590405743106809268262411249300706901057026301885617317361390130836581825885107698132267792551626586462895644753963945779787572929726624894637239565305960367185180785794136045116271530593064324903087642568160505948287241632928556534122700608825727339924376971707749958098375120508948214853996091901425801129800150027381246333380451286977986749206922624763095286173777603396676960158389464275115286481291149753957030193638901415522593188009391891748804208735553301121133875832491346249386825508065985568029439177485889130473282269377842664617143867920928005719471984460267953989025268971403041178357656168539967613004999577009655869064692543545747726000669568082264394689570163352986742936893070059981624724530852694531055517619182134195778685100024961141223716456727718502790991457368164888896262774124297373136600796612680018820273065627767595916768834259780661282179966537601462040336484837715731311071237726298543915047366324182199301547492058168917843804686574718777487568045023271143991926394076133165314057460023328518574057732159238787383118826154932142055404199418801431751621826644826243454558023869823566163032938062323644088861119093514010826208600480934968663679545975145109906309203457377888851113398697377509548089581269779545339732432420676908370909117692860631704367957957545510600458867727210244814504935036086951758253603339691176373362026163805689821459987266072242590520762263651619478957893284932130003424295186549105312237290759735295672912530839636158970646273486008357012147646345075811519705408451262677525015470604728501730017634651479478918816446541580604035308698900614681137488295676253041895159978065956660587684638539054037306121001465797173483971733584032359950440714536519208135653890036724097972213714229881463981997967653404970425127577010252840131854436284554621124298523514337445486067456913048417818222856797296821656083751378707255418229508160137508810512892111896589405822250531052610285012334092764275688026881611604380812972956048582187073637330006972724139517865124900318466663407503991601665001671348474582866148899863613644753463063979081516653932049934301109094542689067524774555186688704402791713685125348761444463292077885857926105700077058769408204559057705834511772917946834433582734668594380677543964441547906486504443684097017576362451821522101790857717758684849677374084571822414636313962002104332232139023245926175133393510475635939299080856518236130361085597277341887273784211310352461056189479740585514124282432172703189958367314724987858920191939831084310339029196909356968581928012238193893883036360227555617506230029085077451351726687699976126860898278230419848973819919733079636151011866849073466178239126564956988657440269488613260240711728255319979300323769107478631053872498030133369402289226252885011190453245724758244983382997774996905600538202600277087128177703068009540807560253266766594389881217233440630735424102409609764154076602477263206949377022312038074638979548435247583019303081873664540277943687172846820053980570271920825377424318778968433601145841176906035185552599472292337700556940339870957109597107915824372806412345508661751298559450193838329702339929308068898927948754098810686807088120538235774300564634706538755052960236116561835577974612639488410701917414697876107095574692134134836187709615180340488557357547490412832726265141420710263968832744394840372661530292367811943214595888924494587201283469558679855235756334962246705486754637832371483578195904735476349223056947783623808680118332935724725013553888726935468912872209337165731982642128853111602598529976211957809377257576159164170765034974591722887998953802200132426283625098251981387176977234573648186525409808150989528436610148384583537294111116141811937190778958074954555302144729547374600072043396522051250875475453347180669573119417034059024163678801224560697361100895883810975410735728766724877121079059648399047575828661150814437452803905440088498796298264390453001836324396954208050123692455611153488883717860196493334153422247074067831150618506117685242374085485227942720078718390752106349301816225642105919823005185659846852000218254211962021674141952585298132936919532736910327657777557598004017055885552299788757070098564151921591468753691532548069832596335314759785551794700786078508509166857958532123995197900636813295767146462293892675252732158512648811369798416351071388898588286207042144102913375690227069879420310629161907252609193838206154070062768508665465505641760028971362664960452393644196829150720346072013781602110848811161642510330158163205481103732233802036312882734879632858741413002020088757826625918905607481515259132743815796802721916643750901883930869092895008462298943720416691744936445243586693640578460755528790961488525597940828564750187906845330221812632981463793314283388257064880019781730843376651269205755886549520443091980013761818328544685216685085355824269314425430384033048253350694853883987248183895856709633283849917571603254806429938684245651212937421789398104090827233877084024142013259853280022145143756781449146327682618931911073590103858888036342881180253620653190051643404047393020315404339622730920923503012186616460390305256207678261911852432208846090978427078134981429526786577086383892447747251250302476914266983871994164167987112279092326117733997340390263266219320973454532222236312375408998016719786477903335320378547426144253826560830584746267550591066011027074500348835714444766548042528239825020413065828498047436719206758793355164717697860520643360257384987137921836340938832125605286459409781597787223106331885441219747637941899154703539944889647493307820952378551629243757139272568172353067255735396614851264475742161948803351281492954823490492876174073840609034121685597251131880630188152748519212183991104923487893070867888652740071109445856327617600016816070324379374190203624614316883364763919413529989600009856159389267940006483547554087442042148240509003424382110173101145683526846810797016460810415321514664185170552270291123708613504532429000202319564644282153772754150352553040132834538812065854880272191899577575371567880783018433508064262961628850601927629128688825703969898256589427667860069440749177668239591316816415525699368236243116600783116761125446128572736463349119450972675481570248149804598314209309858438620773473037158259911316706287323491780189190485422281027794626853823206961664846071391401581146549769270446039269928983790686004638758737228925126028466345114012033426233776222880487172632732322852396450066831145468911680814248199478774099497066252684784038403705771087786712959679858082779105635832467533501015069496194939294299343313402240815587718008316619944759344538828137637841594234939204844791305195119983425332165762621898304921938468525006271541235002708407966884982274607768014561666111344698413542858273247225986871212593222191718155232699925064062199412509300928184797496490829744054273223890720173282624554585191829651109734661734475250835006467717378702901159611397913464631641312699719503047698025687721977464187886319532798428214078887329919892307562991502630698923346667560025289546354836436145665271485990685508334801211153379519224249652542821041075376519090334848912748299956065506808287760767740868864140112937497573881421720348659688358930736159772585777552082677677361799185221211853632779018350079009308728569555139776432634006883916622660602411867452027437722599742029028166775701830501865695267458552860949902261100044716359862416762693977423647105870790298963523059678809865175320885371167115480827785029525955331531202930352061504398475784938343521313862013277130652476911579958690594092426750551735399180945522279464275260352438780903402347093510035480400490138533709362057325741810144326339707674309774057431951906269812651144849001018879412960094079806330691134160247044506942076195950617608217043434891603901269666236675106027045368637421986087014376867215536225302828676757120195417872111515788044973834410658631127405469086756405756348174434129275343502771487617925041524417887148991724544493042654048326065423872910732445470576390050464676450409476132798884042034594985422445574648587432443264599549257530725494918660455786769312862547410802828527093625194673104251301888412407274734475047352712000357143926172883312548013303526922690679155883383862865225761635152683849788850125103276811855142338762062244331705983978685465089683837780469608130771048552445755664357658356023094446146457159971177029427826718159801258211870727055792937850893479878949950082558772638523673932616375599420127042509764242052010613823814415213420141142945648941650123827883146192651605277307441299589758864017910403646280760604344319844419301346123559992307988498646011564724179958254984203229609942327696659720130281976765811556688874201994443365582888423950010557455930829156982303400955280772418011434036036514168391050144709792505466292984514312043736393632389742142975865167470128570546301660013186757462104756208614396135022396658165779059728472530300779413372609879420621648467699026115814792325096804432460081799439951293539637223846859256857461050512907378100405985245128406972508543467809548569848243429163244032239729883586125473837103238934751162551972832010360853501984512469650984113504025520702539535465147655165839378396241606545065310407149136222636251589456341303639469513489802198373707961296195680213892054126957022034611713158880007827602805918029239052412742045408259020721783879996154623895491827866138665661344537210686173549493547764440557413646716920515981498042251885019574139730699597805852591202835942998227823824137644793496817942047213983568196767552745897559449751017771380308413524846992195813371157938665020866294825360049320517210064377011846949764915224465171243730989573578919080139852670361389267324283285283595794096246472111017822394070458631808477682419782316668942342676496227368178075585437857783179250824025130219156643069630614282086085994965283649267185401199586741996416412056986547874228635215660859222492243723221938407343874895597962453756944756582459749408972004612774798198852528823830481441256000016510773523436577243434087326998350997978610249476035888405122903414267077174742084149617063214171117826911738000379142652031993868265347332906116382916824326847332368024616075284531751738767681941215419696846655199490496118860160739841300870133434645203005588601471230264421039278493738530411767292208960843150288691721033754347489867678617279980887675838728032919628301287715477781935799895119510907586188242054769377721462899397679839632468495054973987074066382769877684390585076342959776638904130459166948556278480999962263154641580553875143704517901927088802968050443760714682568843898686746335212687977430758136920972536941927654371919513816023986912466480909397208937779056305664063012441774889095613192600164722630552315728789409049105938330826878376657615969338467490902468423785135002030130388450052792447939873154267932380801255496024428062310299057420612824638425205648074269440171166264937242344150810854837758137759296902622071493168619554532627689910045745102179626693125148150808652224807180670965838513257483706664775859773771646018646170239767253489364435887921705922292805411918079999054139493220855643039519868241166896994965072225625351689064183434430422214404082384233389515705528362868971131170551695937656230777625882474973851479022932302450637535957605943222150905608683509195552592697848314377579172426869282027505723379208503758612752206821871541067796081123197191441696352664483815571804094220112053064499862935447844939561058001639220661332811615422896542873231067166452536044215677448603030513303148949312606682631679276118139913148264510858859832568842078338265247502506728682274038847503461941332823727785774884401437140196084501983003681245926141545129102192756391599090346302223310784789699887571326062791325130547317017675088469500056739353849009658351761064146015391307870826674821131779300919454315092258831974686085183636497147448780318153410227250625627371326474640925108522020011684950404796249091528789595391445485495996306864445550548867018670997864002464906945637892599549345362829321581674887338866821171698622867301152899933614959559397118954714284777093808804028939334894004986964271802248060383908118137086859675519359414022608551904507857548102661617092175171611953126495065948693735554689563062977837547942760611071942889433517440413424371619197587642296603482446337705598204177382547262704621368802736297958270185281195227683594323740622211705919702316533297062898863387121238890634727401937811025230280257449811119127982265999770226145094402842847100720907847783245534810099410984389145999722300321524198691081547603962902046904887736802418851177591885569799843768580541331799068410513497696667505785258910883676515037582969668142859755470715789635907344098637951472767431036805783640726217232547689243059574358674655178464148905843247926732196002632219012266457743899830910189909480688384865442377456559796055064233623459205351016410144424244730004312577741517314913026534538191612597837325424186513908022765575510082248371306812918129779652622605774522675973867195282367041050894787038806237405988766760537374584407205235276245632310328789249808032153148923968921715495161539158413530499197941070800324335118007131762597607691804793850115859487012569676137755758657229025836464982927178356489144704611225457864544043084006420761887016361009270551139402943529561578210592705831620989201876328544682517392424314304727861514848453495783459669360807788434522243894529410243978295669978925483184375119681088364067230883473544687801554481475680208904633264483167344326596954969827361283671703601429525463294638178574749572200778511193639063243723042107184179900177972945298754889879333780739364672020127390929809549467714051053001810366811778627035020817312805622487880278196306860494807525856748144072824142362666205112717568807229013535787082945038116913492393257042669613038569766167907729504822565901160386462763449008746767820465603632034102975691602128258066952609766631543954264409973963851946394735287131598561074425544148342876958521560717529821320677286700930655580477585976475329269362709743772153620321650782126587419192904570912913823413193556166100268832396030297403653604599821546772441162819103198514248786955815747213474677238757217736967354112107406999599094862243772177569255782707695903878760453299718770230958324645044010907388434642736175581432221341342879726305579824805174049442191258564718551867114187366385345382653452326410253746641261502878709380600054888067123159059549063465518332774902314194388845431934523034366158599013178192040158027897336129253285890319649574943409966761595219013948343752707918913626068131219642575212711704469690534027115768192871612975566151333047086327040988297753211924345847233329233799856339389998344351422418398238134908335213762282483693711747487273788158086107103227120948744470035796730075964606710012045143115870090298120390042661989539203504789011459466925436924208142228024869370039004618807619242382785087054335724599995931681710125154897847422730804044155423225530409591886514406751398144237327231835916796016855501673392624749528140225458974491577936461548788838576753841981552795948350426874392834778668169328739631629891968518941124299742151792701064551795354288473772867730262899354944147574143849314810274454349547763974516404191803165688160393659062853048998650889837297785390859244100525862458451369009757846535825015580685907900950990045695040480623402232812509778404052303798308091971456683894562041601955831954470988847149623130390261740008035564088984540593737965158573159879156352421299497366543017261681722834341262457472368532876158192153725005081297478932783232683528722520137064386579880705844876309326403533944940522905167638082404223670121409925096344595528583706301387277792666278118730302828680448934199780471873169859070789132376215380366593719420923342367743120862220575189884790968931575038898385909508881422478080798416930989536209773791931739853545798073935562718967946729869697692068901057202098054857859231257898842657676404456520590655156450505589920029824036717670623267273092523299934779283205735541275885287847515100015458982445931511969668314510699638162325739548785082212521205109885747492184192157575885104286553467047142165006079656568833710456910638419076354303481009328824978462761972509107619367629025322085562097197739349523899459951673006776087340099841150350275130745013189555749633248719317127483552079131730377297673690711903973942857669170167694457427473556559689400993003782214174613958599025718454099764395710291340435710807653268438013148405837534385340212312776525720915250367216457700912186894566629084048597757926431645151389080028278646444986266920234000711028111071148244602379840568409292957543599426634479502165896713448061014138757422443663777398619549590237125502376232689288286793761425314103287451515272754468139681375132499160616941835767496115238645422838299669295414159331005877200196810503639601908412485579927880776803611417891953839713546565341123989455990895938623177989486136774362598438539795875752883675128513611148457135095418834987174870417382790275031766339673687636061666428097390986907474270786989919432381585129740188572885523001864589223223932227669863972222759859302423041494956907313443183456779043558379624512975445439989726415568183114539071098431645111110185956781244539713655121357857987363468283538584194866902902731353734456665503121709069944576077642711765917413113157251291875243008805834332943172011996520470565645376075085314428091888884734751586378800333369797990213716872147174472220180093390753840599066211811897473368966471337116271542841511739495634950267989639980750999839003267573362286100740729225142556486250249307175015173732761750795185780712296453379375462287686040510270552508994270911507867711648424008258754354454426066050126743308155657271795663540214570530711871066222227126501982869562973011894400263037685812862313589705975344814964080426770409339895768884988468963710992376439787433589941826627001803929227022703985901393285342994415519367690568671707361491527600305287418149304874157546884772980132539245024328648148669000951455027485330519224031367593397379279572548665054588146049040304308961309140641792317766137754261844243269559813774221779197887666789446014495936000211842306395334890888898762892848823951519192948635555742123883463522938079133519502516137258844175346075379723118189572475339074416542831157610821737669744389009361915066586657073554812127625269075576243505144926359321600390367615921899004183454262034921832345356626810263880648879157085493373052816369989993483089681715916685912416652046528631286846114315696444856555201029856149042166842136662113955892022136910774677740690833470841090959123436469923337635532895299522255330732978307611110807495909275808577465879524297054811217263016319625913327603317486460674018862595297843073046898030948110126295489147295331319720738432717373198507195241357873850437424379164112242685036242524930242064527146184754243813882637818889269946921716298064229912742621487437289465597601521081432223319963324342962294436486526801497338585078353158213418109064540801037197432908726936874912263802177185197425768234403484711968751146302856058620482114560316887286648270554292136800303340911382106811128487999720846076123324830718654039968824086961607325455255648069466303828087759303659008708425581665787574881491257827128314102331651987449876398090323627381528634802272449445277231937420791168472532472983307353342711000854809936787185215840307839081199994458793494692489627000955536781740925024539774749747662576976139077101289108678872644388499239410620521653578077978134957564448852591694889546470677987422533531291929376537504289446056818614047231977363816452791246429110571011312888783079842733593614623299095895914057506948477898855652285124081640770549078759013510333520490515259330630076413896031811709831824792582869217290886528121708067472538891013376170043248281714562087509441681802882339904173965237630184940285767475745379032144162379648801034539982877907188859591575842312587284368488315428383416908653702614330193743002827241254719055163154945338833543421706589282948379931690436185245141796456246686283398303987457007253457812170663385406410396245943341328209494901237844889021095244974850990702753677810136876096270914760291490897390610268683493977222099077450569796300740204470082641140881734185975819577196404286234956831331459434827386088653477640416506050785753666120323365305139203990138152378830962787101847528946694290264714986321482250633702405203344148896994205578016810128477308099887290847935542195556288150025242074208267878178288912242900711142562133430225626807351866661436364738586092499583949136721942759602444436553163219608050305657594053279763402862156163458071259723304947790338293770062905388317838429173008901456976265546127740140148687684779845293978950708482806833735020562163214187134048514956773361939319780038191764008463737037132955572931950844599736658804848152297747874364943229986010626846755719748814376511800275164666970784685436865825616982953736861517997284265241547749984997845474445696086539467800549680713907070276069753829857390054939170842422997629235920307526954379696957952188717542098617025508835588886412758601540266353474157698830717284467424548864255907548246840321242351437078662965169637113230548509048021555876140352782287421139096065730279974128415247467228595591614298217771419919871143774534972535984729342832983674196312400289627652013200146087052628346642299625670525353546452955069378811899179701531532223166952699531337959975056375559969152208949567750249659980693008680943036731443649869544692291583701765580610389873685257551206351049892143892376501700421671951780865116022973509101624662572791141602945470797860592493088665910346786570972218085352609777595152701934982429911179994075971958613524355645537588233332056017750730690155705197261294399881295636470824020208467815793151299545595277645179044032791405929333506671968151905325996035893668399690473720800550419967083292155956309545732427912913070609382008897375751346057770408971104535938820804673027314800441133847366073532105671833952390920609452355506441910056907313971491611028700684288156159269049936720554984367677325380487495151306509902964570660947894109635783678551125042425030100475041178578329397130198657775486005486853272863977374677091831751426643809128266530702284590378623527665422759080706731176950161536647714089901687024242228151883998272131084824568321279873624914621482381112983182923089114436761963073785754208373845116828312203156895715360871370755769888951664346489224401895168739481389172768117924015429129200509365857840758793697699303426578284418980173824973402990943942295041459770457471826050884609802836413523491485410471872390084505330538212587806080710082924659468446285796825303212289165975830345134781242368648131564542404833270297492418066198999961668085412264200692824668970671783192453412205631166003531363941847630007173336120877977114629820346863038605889352163083318437156512979117296721762277801154819670908507289985630456248989014601207427866039075802334302992164879491789863420438161274210731389333070878429148876541462611303320113435566492273205693712830078724092458123777344054328568724585741681658681812312892170191147448336538190292566184134167746189187192219894208717384614607162389132090497401599199820247382499925585914513410917072647288363327691249127786242072994241488398797815182131256395662538621563555247636736286040383751257982179103034360564339562495438366898954715601987435363697824836586591896563915089700746043602425996976041421968803402876386631895881355197908921315387009522191256224400632572490442325683474168492218679418613578783612582407789315013276816749057478077551764930426620425342359586411376886848580098411366573029022164237838564382034057856488604807101308073138877116400476350538666495787478706072512856394533301172957141812391613806857526554420997197300348591051043850593955801294754203980343198756554210527929985846318959785665363903812952852853576115774790399655419595240620194574386886844327773885358764312482825516536442838472821453542596711878546387033172943853452440237233261620662427181854249257134745264091909582333934249215339563763604160536790300620950680564669928901065125501341238604383004156790946089021685313965901049052039543126078922607722320183272433378029280985876474100781215492238619562981955200697685331168081250217162648238824807450290999302799187861396004696582060024758459341053258370590369126470352752356286764044383838288091764449937667274321207090376654019833200687347182789529279060476946047474208273752829952787777779184364010818412204928032122024048484532357632018751407649826742702028490844960127194918194163577730700786569050639149987013083419872948644366929556984523773417869129051670810999613797065503837507865002484325136007643157663065173684894878408152442042014936968407059957363562638001954874728131690129579812945230897060121391730629032876444563393001178043623419269217152750649080951934027821817602874699162186495531890179776813325004903302502971554235539469586423497908419050733792317278017628091196515279608372939816164378466536946158068461761062772312233382909049581042317217920891516273707537986077991013001721804385768321642513899553785181423283359189739094908392980600548659246501150265575355172159953216678587675426196194382629557510068512308105119713461809020125060175140307062296753397772131691027743843930194775312794870985450564579875763345315765949474127756727096359570142169626898051730899272287561049185678284785770809089676560858033011071286238510569522925851566922345326578053260865189251668540949619382247268491005055298230233620982982615325575415892491365036154855932325533626817675778846910050147764352587246160400083511163186396022302500100003236548210466555226089435066901682895836299275892370032677574295418393001938338631120628238460792493124397458352193922046919602770889291720019299555238809824575384080304684107339624921784279048643202158169825894123184608523454063960094576895177919119516177927120966255893250826143017854271802449702201801878803193044751273552319093397047510242191010067410477363058891971380730772399277644394247430526021898433206222685512009474141520499740105401942066885617729136124282561303613857106166469943779101597963490972260522766809159187131012380788364563094955352477548952139938783354538651857840503640157217787622112224601147292635597155433842803959374491983748321410050119706341876599888130492788966641726001282441831969172381099644212056826762560978344382683475874580910874796708197281170710488107303466757194504589043735130668175920133778877844608865777267323390579889549969668159127071352326905114107953442445226169185236684876915603630143954591526167359935322049149258383414807751955671367491315620184742753341720529909946807354970202931386101084820880935192715914709023186167089897923195827520600655789030738442823754057890769024951427920701775219168281204250905986795720316702244123039370773663888298289594453235189939406987536580183465507868351679908348991575543104094424190110089494324597879973981016238173168061594397818667840132652123922287281602815839550258283602115405779963801861061603199894457471854642831357520397804175203655420093166697720501812643632938533893075756920811373879003230081232631885451950787132128939393162156383246963469600685983129446277716140650945527683759986322370184394611769027438036392749179575336302480723588434398767692223942048114111249943052316136418582760907890790096183606005187580554252253913914793948378241076381093509805910215217721555434598679164366576696379985685483310389566946368128423135246803081005048162498452613847165096704124054051792364737394771563354937946738387190857842079590166212482973069683903849346502095287703299672893793287387494292120525262073841101108074892684060828503402529752601898774829083877015749965482717007604621489010799436262342213564881633671937686924316855106019819178028805665782398757497216601646233976237171611797007208544990932347229354719081813829242125311184415835496847961343388466347017212669940765476628412922646000821081018465989694117967499068930404528206725141051266829178068037670027461751960052549103237907695238500740781395258341062765229522108673667715648054619454474259016787520066007605157889542341885723454456434364425923631246397609108291465261830273928127492761106047860459088058770159206193861653748627427374374497035844037785164738214764560304008992509358090411028281516365228910250466744109152767369283531567119041517170811979605298993962787517385431862980277814608407654429848015262843711170592195794165978160582959101993787434531444212447064650039693867439276613065792170054966486685396005683147358270583927687396240137302002058457056764344749965515455448035286658658395632387553747788397664570062097652776316253635383872943925953000331029453961312193908157380540153733220829128716032370300649282519108031395794319413207308049826834781835170278715036812324573139150853603541110691727121372569668737115582697855914699633448092004104682927528895197666674137605312317552893614866062012715287729454482412300248087228829026183872547251762791017243420242146266557365348087736295559074495341264529131306514856936851121240679033327046845996362632274328850300103689067781414461710268940929476990472434409176829976365626228245460244343189869081695120727551697670521020272084734402993383808549053540571079766304034864813809583926284412418703994115409880282513412522364476027185939820302278940441368418453168527510019384785646676469471178815685910535965481414918969273084218111999861030456819129114750262028182004067312343945405408608064810371335694710011201397477598914520133335708281837953891211211116832156137501217755647501992940164730041001045486529796652075000200209916457567566802562629066563323365116037191547382661165877488274057488978405699864362507654917975829413990485783422188103042898325657749491684080287962382608901115885695481909967069186808808496127274108728658057621658517125803121608044764446873047549894078668171170889047041422070555642072162145520083876104209214680550231020613075409639068338311607272043582705231401445166786181301850160734526090448908768235699123731408918409571528180145279243468833579925082641177869932459003295926983813135827165705945847603173822608807497199441239073235270760000323149380697250946146265918313817095185787495437732063387265750273228803258560554374924308919237295120146095056543274633641736115154190941947392166294458450845551766610755441499081766422250397317502132088073928975186391532984182919832567173700692833576994747003462480283195454448962450390861183049224230757455326898767230333444348519884914007690645918971919943888024956059226186940834632387941579585086559602912934247218054057331965259595752890467558617356557162211048290626298409532878893015069125431244382495158174480629282111427980376836661644155683587569072075837931917448481287937755255305085087305519793534900403298753997362972728019397657371618725452051764493503839807989447953217469392742576088909436275062486686190620418711506677149109425977793165471229742713632774445691260140693298774382764065524174487240871743288480044834053424868551265509273028143552924960765341608818657701887114408337753192609792965036687958151912194162485730513151479050787875887603471028564747759388989008972533209952026899114738052334597190042742273186538508288877156513279208933177703538849698608622387115992908414060189459851488079992305466834615755275531502526991327533864797968703402235976061789359373663518596389561153039566143633702384411280115885427984181492228182408138432483153339560954377219977671508101092370986360702362159962467954162429366208752472759246535555461242575691906203722160297901867938845534608405861205755065395828611447918345154002632274901822349222816428776260399996724322462315723026358014918637023479009984153626516020451191151066078560136747889319313960626728838506954294343461242904981777391656097170709174750264196829719693255332040100962280170558118889442260669877212177230830869911667901948333244877503069292777451145282298002312915378030027208777444806759182255071664920788731703118278679787688164748058707638591567361418932182086247335884092286602755369730340075236861466315973600328272750886296017398325162443982038775471202144851445055741808968573279400825362449934737928992533177472078530841713853453613409699170766797900926812466201813737782590661018355045722325273188290244278882626662936910613662128820756313516520510357280262978607636453828331589205440018962955939130196428110882014036711769772123574538587470743527133628731435831413246942654045943842246211252475268353939300510288035466716263280915881208653406467770123913264680601981829211202504501707965422373598991196776754498692309100741718745305687029371528923050584379736831661936396784884287226883678264886629193889751164984682202228974391666945947360651467928557041777004821880986528614772067088896751680229527926528394364096901229414460808469358649922169872574080899055168472325654752278921488726238770553977373449662982978996682754335860757663693949062364887777125969719806050442195438405022239569904698286427993797603082012653721585876503623663479487291867062389457875966994550755446393511597229017455725638670069855169341474572591942809510853009517581088734226144613577714717859432767562907724213879181232275702596859349778221389007180088311297948147633008013774155085097305300559861560060733759025575647892130474501481715020945218584978907796269554571451274272007114815831415866309021127997875769524997125682077904437010920888651433142581545948240711927543995940101212299167632663484013418296390910878376474621908621671627740597935862892051801231144523789528645363294387328190025618691069769395634090186653995702161834271149752988954956945908336671821877295997238072146752416820262358206747477395649682075451284648707486685337949711742037758536706347698813407048407001748081240746188982325476645102086943494952983105772781044840740653791540185230547498699115273292333579604975847728475416091115462243776295728641476213127038132608361735515267478063742823601720490852692770105491823530282896720893369076000172241873046798543784218145085146306375625011747986958305828938484576849132035698536071888305765323386345426936111795471251773218241741583252712190973906299597854832210398649443588502034232238101622386473778913625640715579487678571872634854033619949140293608161710354398381381755499629239870020461366976446267568895015515884605732912649394111706082350681928680621277030086287905766647408021307397436632146698960226293176285993374937395657127997895034704110404497515746999776228989407570437240689993542287425323993802409568703064616403715091175977299466918573437569313671214122675345108161230197792495794348802900521425172603737469303220227600410641560180036807215846466745559117166318917871645978396499023573210245093002783495423918130645981843922211408439763172751438117033892804115200032039426728583738642154216855739619479041253962935699093932945951082960495647259916841014086018653448190889376589627362110204209337887577541041387476432967974601954419100997704327723085275305963501872500011429514577260571716767820955122267197728576449460591943341882074145123850939847298233121841304298184194280170611862454678055065547279217087102975949511273249494342332813725037687508051942765149280628604084191345414190596261711358247579016222351559469039749498107547712031002597346409326830963471183719827722443203963093664377553454522500907637849869777667974448787056053910173648962134090383433649600787348657387367822219511431726929285985771752468542863222884074190327591901368760782636428449029416691737011943716387792740099901534878267763660632660360989228939782120842063343506286877586447618461138515128221298971745707239288407094491597252930814507529140405236359889570537305008600915127218884167255999641662456544082470151667212002777486036856308931819564706704426834901529322937547929962235621512827245073149308378735365056931461574330196683958210228901139563839078133073637131770506164223932084463692797822314200571227085215299656640225204377805384434907031068939215234085276575144758554553758230030803234543612234725146179537280710509367301895395451618989600168490562686039931019429323615673513158453470003443849935789278881869345565443270254052975158759855229093125952150949956453869856260552786898022245125201662156151139695333943765999414488887895664405547326738499863501026865981604065914529548334088350472673127935049411663320987404333484299185704554909044787073555118438573729643828825095303658852120810700218053869255620858752387639864967844053642145722704737341494691016773336110468203236999749496178483023944458411937298537017042399848486507629714190800947511999387600773566983477061575253227102260106449800886941959831242597517562187096765485766319635478302805302675187762378743414376347317992549639427623206374682342627252113418105852859575681112780435418914087816122859363574880874473171324152138967463475456545358976775680614621504975905582545004540552273771954669884879833794722620124365992592026403319037510268082715014902865273358357499861001701455181437861139106808080377598296861257933960215716023229332965110045821481800400215551313054704395176190496265332963913534629644068058937569160492038523379236741883487821709429956618002148511291800270582886083275575817743460449546888163799119803210332911738978808278423079992101275129929450609530942359880177837525385872771250160366583159910582138971733560479303829518340828046854548632055546158246610057743441907700656939571945268798033357720981459268101905197960042133608677186280041419214360198969978480390971754777350958823497337525042385681697707146468549926608579352906019750653821546650308862502026716453336800989626508556336960761156903443999991038158212685777066048993298700539388498422380108083211576137913628768383836717143453187548409180992761687855988498373124875593511263478035675696164068047662464261543516815617065992681492708172044972033386495500060005411326936109089509295317510247484163008683533997530048489712826845976756271410843743897794691628236651069239586959862126970616326576366007933458658281744142897649584389008802987471919195439738994522456814627634118606903306886906743168127968239435838079209924964201984396092864862462320894752865649848033850355528193971003256078198185231674748377830682463656607331694921652166059381644156884818492839777645707367399662895710951360190377016017026171905525067678246305637421950079762343357294713868555845428689466175177661692910324395116469963864349816842382245292285564169902409887096803794314198873228611952131662749994933004316178308165280671238506189498804522505003760270076110601631801703345804823575784878828432489976099842552271706848478163199004431220269026566707529828232577885332224469493026399499357569414895350408675668621953405014865956070005350183423713758872937959260545119618792876301385458244559909193442486257507198879965290016674224479786394210325170437916421521742265643275296368032316519429744450261623776811214863768075106485318311735477529898779634467910460786153898980059119268167873052899678325512556634613126255005029950616677194088874766499471906849357862444797670066756395800804385163661697705515719733221772774468940944109526151276231989848782817647164944013040636338985860025163619603109464642185605948281342014815434610664001187640132540032342803666752820813897093123532278013837754904149873348087002925318712867975604248090254593765916588845953805978871998519507883423614770164128001016614209037313900395477452309397164639713281373343656418596953680834355010511989119142638411884591771927704417691208781643287835447046026826408085283006042837266794159032935439323952738025716364399048745020868498138059940976611742386049368561038826902809825279929088679029152115059423412340348335740501685352218770807207303409501311645673904218725239895835830720521607147320883254970336465253237881945214255890979472936593911979710848048878128405867839213660567313647610465341254307296761259035382027900252256892147373626946744999849439643621574077266919749333785243398151405474914696800805756392512668262500768868478296076245592577172729597430447983529271048874343827827981797902368846466696135457008798437358313496488187926104428607848188113236670841194868471034140365711691245191131970003021854312294960229424918201879403014720218169806517217254626192531849359191351544963410030487337359110392968304713790076050511449593616497901993332728684955567373284012437416466681276706698558037760895289739692740291963298125377715902622158667041827737558034636083150441421152014979801058249132283790223596885818616227175012015828740832632800308003689792049259253880929753671061481354476777501577475653961578670921565829467044053866474316890566038430843358228629645425632957005152355829612369881988416034108039748533132327060269240609451079315971729332672045231667726620407603640066254442782457944360554021680323944794284928898798707676073938090979975104355741173384636428347668849748921036765906029708543660237568129793483314974238070748600943897348172565073948643981938150193465347970543443967891966995812820133723719829392252178849844202309767746717134639207616703276065384767615268771530768595990954747960577850622525425974417357167333653011116423025237545147967156546838414815946569326065083299251157391561849594393362412398782535837292298222994337801514170969135052407024627199443848143150948823353813889376439739704551903251751641049040381837380289587263631768608483360241508938041551851388073591857914191748438004723654427566580064171261296943244669608521160947646014528115075470898889585359940329234830856759863453281638058496629899625839064111148453042620726231536492674398278159245034727228626867320752691581539410199149636228699694060734956447291133898168790304104910739892746876872393780675854267893851172544544434010106825610887435032358911480810603890282863059530098874858847844776366773884709975162709989995629573611026975449338999390432682289164063968545164982949935861448975987974159327605864203023492127231471320575657074513321715439823450617000046784193502655959198948911864127953231760258647810729389271645332189492400582175222775120125694908777529454816817883185142436710478375448825899958700321248439313351046839335941098979956887754817215772198734034302929929597975847938729716737348823816602908840773143326568762656618214194301551053536670248020690043197519654496865799323581059681795752846115599579479861882069389156595113455101222185777406071436409436032562941597540687778630052870983076662945783553480207443051622095482408528082313667341041328609771649896779154394687058584285323978985572821430002689374100568881887645275165905790826209328049743330514812735226722714003787888736113368903188890682498058525728791814437416640308550280750831688662172370619250580764804472014221715529527735280933060533497681333878724812614129513528599083550888530953244963103460022615908550270149188065570404459645565430253495892967898596700962378995305963124940521110785659662299778328329214700224970592501682186440740921990658794613423523892717805321108461417865364259859836621068389912132632928063731395628439543369321875399817684558464532017186079437325789274697041573397137910470765545286348562935087948000838474904127659140403690157105700882121961166768996435014186149666770436882108893948147894323932771196111814648027618990202107104795934899047705589817985562745247297761911386519707910392454130344838750413049751255052144033653906897487649916036137344393353052696681909996957096451243220621961621752228932363789607355955342829712378812376667106477668879855236590776942923673095690740893515133040718207021571372799288087882480004887024752605931487673720794677815501724994597883198831769492143909770182435549452278227015005782253247711012001409442580607846146977461234731075266296694810652158482706716982005481478048729502338728064750470770732633834489227888251582730080258140388670004787456297155894238445965346474653858413822436747917091369928494649049080309626431082517549395668578068072072423696094311039254492285969104733532468275310980467079397218584837725761002145200831275406406780428497420384400474396611938181961001008380119506809759961983875653831800284796721937952157709446651684578679358863166111028066712950488614197399690066127537608740195307116638822055839507752482203414536741627059463900740744321222267931509272124169847482489644145440185140884641987286451706339399320528831761965087340924145710738689576844643052301378708490842507143215205080735479627659339374143437277846162233039581875190864838028560374175272276171718826038008810527875533271792240822824613056532152501769174107911384908770725620275237931824963929281476997095583911803188489978658464816669242546022136100586881894909272805241118503377774470298063948855904354763762318306305931664678345776383080493153413196263061978953345316455911480251244196886937090140717983116633825528459720079980262826535329244338448182942951153306091918888263286775837091309791605949195803981411456370557916123935684406497334873691847898271592118905830520766490894013434651042830085076662110498486446102507067558686123520422283552830532230487392218284399207707445854608943447140615983348443275819721087594954720205316389426458094614077074457770085846129609982883358802451483345682994780553246511795840165105819739064998413560300397067448080347211212635791025217185542034358546932280382325472452397690206945948016314093854786316490440423666493657702759594713843950364545826124252546676451551482273828290035522933718779295921522355837406806418316971094526979771930834757221935763992620043419781899524941331880235995314156658714797345350526691090694596009503017492415149169501199596594485412741385465429287912185934061681209977087612188846177341644372500124765652104897669965795355327365123102319638934601460291231140419023945782463195624220405616851274919206127772530767880243262085956524007019809648102981659819559173008874115137691224259072077817391762009785170471338202286663537324520338107890640951298437735890431449299614047757634354684278759494103700871752803813840162591420218494134000862052423289354746266963583460826913895105764800398529530566227367660779781865100965888348844661406940299092667807662800283304405934393711711929015840514326843860505003213416393677542281269320448300520279036592236746429031119890662167652223134394217560879998892982371742773878150653813862736265555187737153512084704542390072054976765570509376351902302122301742715345507699155415676390280309071122946513705622261119248272312940814870662691269108097939773560636782551429408540203776064842455656500314721266111028454593212971478724271405108607533021362072746806309461551685497739940036290028034985766210077299223210917435900196273662694374103209920144184705760897789650559288863428139626601431295243566810605213343190206021082484655504691191746463763588147302855333138029055216899557960582368158199113901605103447910561351317848521583265298158158714987813982704177856834388480006701936056329493210069301746215162144909251677093085570777540332903640851039734124200278824960907915456593702433246418474194905122847411175738316685692142330141428229879834321403001033767802924185802074933161354917300368921495981930116325224696388102167126999309356764269104647003075181268329430982766970540802153740734987587303060029011574423210232528815173917340109074218498406971838719982495685296656373538820992791728924471448544631104118620557197338151814428357755668907619877867954864867445674028098213168096969989158212154645656471166517391553221100632138799291702195763862014983401936488286268185579418784546746440058000381121953142686360642291871763362677880840335561951835829347892096496848121561321612110445579811288727266464096642724028970643529750035912765125389160915915456744538020505784326505082499960701655801933624359352992719337665827167164075022875133230702880300799209045283700013534776670084701173038990891897317040706318658063903398278359566223109814146240358694375871598278572455343808553366503109992117649348668102112803316917215009554715622166355471941018430613115562564443590784217312260817316044780268981174073116397392710839915508161573632375016465004434371031625160415628134962727950757038914042710782681464625428417383993248714242295664289197448737145561227397568630599335185156307002465082016570138408851583151778676803542731048104816200475699795604868071954959408227154888241913936028555476789456051418337874903934640011974329558797953081843080362574934481630271375843468301980103917224440530324856746424492065650309183577595067855980343316357574526891540148570638612680626870536784447679532713818462951878813220419902209074780154720313810161350279328323989378102652049813465782887097819743053167600638752580885055102142917465512428263940428080677501332829562178921979653093335973946310612507048598776261782106789451554336612063957899526729312241501895562182492700897198496636552563416967328723444623758430635692822846402814087082603712040807876407982779086723810837246328655026897566133075236692177741049924436051356452666652181700647061417333008477908663254803554992683711283618629276483646511876427479548571598580913403971834756715986061212029195188946003319215496305149815162976654741999446581562261760782637690923955671984437560005745580862224835950282491733086344069586318541702732878767964380882037260639184462467049093783789407649513488423739946817283052574245519958962346168262349981234889684195495392175126240803447567465099157662630133856531783980372064819537517157584379504706321241417679572757966731535109852412490730664766579707235550734205368084655842522823212241381796224239497848954221175178319802352733758425889395644628781073847406033354360178899405910187935010312194055517677908636838342038113458976971172853859587811185174867001038604069172576388127174387241697058965590634986857762756636678074206386215971029022142444758944596362863767839178840136570750620035803124338275941039382803582795772422362666578388958179152694850872694706648311358357183156198337830274517832024594796531520650744043924317057001603334342183864298604602846717163630493791771608233197303187159383554280545690888160101551584650132679149137252832183556644837857319408214021949535500102943617666554129696899151907999046484687222584441390611288356252077474047854829671389790835895396532474299388221217575332788140212871201424463364222829156253967310377959588592843111458324402655154108907445696625519511507670498555195630522053574364132533453589213555744251940545572062430784509086884691756146571101166304755026584975214873625931466283070072205375004956735844066974724738518043393632457447382241402990985254498918990258758546400013501790815715275645007525216391405901046334980974743857430260991758272749342605890986536815179359532634867164799248376305947320487422142316244562219838486120259592845066273291841415017528709355115368256061006023983891532228118471902399386976187105305812194736945894111450325194210934270675979973323405961384336700809914642468313789925433225262754749378470817070484875419172442892700180235329020743056568580657834021748514297247478659412206109874118576182679397640205533294021275015915829621725968532281635149393022288948180357008078461551951669560870821809974677041478007448842737322321139800362084414975533340627979517470320376985118487306679120335390671658731925026262482861587342017444836164733412048148154914494242142384389888706681618240530113116792562858970581388369008906598213424520319923922209988296568008593703351240332987228536607628579932792892481106037257560705828239654531260130688622847483905682114793620336008465326361444429730604180353443363923693290065198983946675292276384886681381852395374714912009467642147953936022496212295916281108702927496749831578299072553912205342129786274795456852176905074977103201866384063599415436187459920321566271168907234871833628079016870091420088358964835368305278547548903362812536238851738585266750690682775082423423884083592903819252622703065439830729651489238639187997092951800158262996038338060314295731435616380792365845001716945104231981723338897716849034076400549808273212304648606718750197941116009164424392928561520859821997056208276342900098601620696693711185957879356805676181637193278397334761323675820414298721746115011545479277849256350974619880435745463016062333374839570837774493633532203997568609900671970501052795785115754673498481710894145382034175398369083521102614613668516343241943067362239171917011380123765636346906616139512583916219153165990480547283605740032256577797478617353506047859751523442023514324512643240044013074754337262472714148959914720246817167862797562411793512723765719040671958606516941407068591681812634964036119275804729919480228265327292293142791824661337829808739696613788019198521144318319329524041154392890981851158546825872643803566369338705800807604516041963488769023030706026442601010278850264438563091986500526832927876727314757628219753873430178637996941133935680836681272096225215210196922652136938622621025817705897986819233734407988711592700898335265863614314534741293400901921866116094000968000543998846745778636581713247177263510837691107359255621118950431445448497351588346689306810583712629991397907740876332769896018474736014502187000080855185069182500325097268043394052629585838818561045580675611684475513053292934990675425051657623413343437113475099044690441141316559013984016285023888062208166992161371556739257820735478598962642521113176238440961351285149366447025120048374022546066415453402873171456905113040633236289805295193790255476384685172970418325988855120698508219110282785196076375091372929917413749356152140116228549178645519448369254467502222809586978345625468078125407805267203751266914073357506022971639023166545211828560430055252040283296819123680995492037162121836833422485636735105381058106999701989218002721630396158461246928293195961543338283379161864206043000355099902163449309416567593019215060807624439467261178965156967079315411285636224498762646903822845374308960717962794165168512780111113316010186062572577335444491687948712674437752004461290913340408391194391067085268193446887619102122763098192391060690804865053372467763259459072660471321502859847728353225827287188225930879476632179914169599698811500070466410557686566046898601511485159813857072213932076708364408955071637480172346407981021118802939757537321507401767104372093813814857606850127668311620067758207387401921147984911544600625214151732155299024318181761216817723113096448408945986069291781416651665492870183411334196300631152301417094228420253822717255167820096268082654992854771477031178670961112093097932484172309250026289636225290677541647100514983307128056218626720563909682583101713685029647445940590183018716180899208585152395925198419756087124264864416830977521719714387430846595239169051805079989906345586339384687512180959226183140015989552843494143906279136992446412274667988546719867154606080894532058375362363216889357259128694432834899750236292344279424919224539646000001557340147673317971688444900415690364673564353957608443930857568043402480973670978912159632231056935142754710403855420640860240117184798441928064402695778715576056486004030590373042913661558842024636927617198398999876647513060182604663437480399256023858719020638682653174227507584142386677878469195180236731210204866359828838112488025936162449183006617675115696478862574015971305986453272212409483994270767454360976404233843486544285790948315351914805016797268101248520425230503257550706568245283729316429237231287895791539859693998188163701353237598269201657195951386112803135870289121420632231688617341551170478792723058941776986210551706654152848482473613179435998707802882644717841065416684785826278357885609818539128985058476797866266421635585092828555538089602080316816522561481471118090844223734242752584705141262870331036621786836807556174426620475453677315939832217480408431326670374567935108624480906121814594150594652489471323290671624953919739776645410577628044377850542426362301370163520510596049668246369024690109959531199675390434386539611399275163154477448392746257199107054038726443509320830619083677576550045073941907625551200472745300634061840693853091191918566019392183547829183345817501731165927115166267040593180900093508060775119883363737563486302042680222836753346984557143252785448340225882735699976869430903337125302961304461795021569570730371491613843454163240377260050434694825007170551038737359605218031905218921146192617585609114632943908694770338515610666092585006726791361297226834784771139545437042033886040957987913936510711329863123565660626308652099042539618861965853024356194535773624127856668089607892604237401077823646111352403503563017009334680572023071408317346050534927099483343492372309134545685874965144508425729274679002788867950400008238226563575602747634888158179404238157707677469073445205617016412226696501998444055057508599708117869052789611403988910868291199319778285664730929245409339233416479700995292596652179539721437673763225259478525082787606391015669122712393853893975542860418228564731605067085544718777877137301714693137931680368737551621060112574376484814292147492966976963193517421243889859734379166074421447318995429705044933449096768061191854167984050371950516416582569521971668152212953187218397466262955617249141042816831751231436535508344599302528961218880609156141533593731796797024779005806963604447611110665763624538311089248174430802943957834338788775552557288924162143756069447220798576671093377770273389866170172164306887787405333926687923441562719132778417274320844718658247017830257020118473143456446692785177586954958462518860084837554538066953308626148628154355143797778739481346051915113775348158376986213445042030665797716136354963890753269833584211000322955893561708446805198027416899893593692494364576586227934253679758495711341379605076491145112724769388559516734705751709337097808034413215078774993400748352705804169454222277540609501736677537992521950320337453968053484606960551169601931923335867003692623188566110525103331409745865915657249231172315096795937874464349234152355671339810733807442022500002640040656699637540556177245708569894868421710140791042812251022778495826149345446618059697770409047639145790725993882292966428591278439826566235158321155077496607625117149730532711577290929435362944030449922017231690193686554801788222032792339877450264824583811084086368799124126965165221872177586736725560312042447986219316213532146863111182552727317800892882227282778259225369758466248320919286333713344110787613775892809364045786850556723262704307099142262181118601806951108926245931829867282043825296004065841953358478538242989780675791703212778217000270106715063425318595751818343269649029616759133400443338863963396636604277959067542353457965547612080416032142125298969590736327454022011129948721339202506979663356608359820079532273824265186402483172203272267131356786847467387809164555791801338476230767741405222329446271440145064289176291155121138720086172588805712452788061332461426846376295159795765918519257532761803378915962230285191446206641806084208131865001010032255211748393480710691429424585800364116183133622430044741767097965219132992564946888223739528285952808637132492578286355651083784905360422129916152206062646097863944314470351193544034369381852376749673609936525145351902639140581622775233638379131921392755604630942782751676761174773531529944246826924318812439758972479632010524176281092525524538137060093664283528721477616093368514633671043177870380172467579254706258974086119946709358823628831286877549808065589190006877897261337836383956518719589765050003294231409234604892651216653996725227987333198713381979783132448491461760575642561465508337696681103739715596131388472344272371921326254682336266324127600425576522544726057094307557476922873678960239345507782261978563525021633878490159734411337891232410887040634143625620905384335621647840349656178901902800447552650327877824787778314624099046156302225204889589721348471663550452859249007347600116424953311451900129945232095290399555885821883926983567403159593156524358927604338413007271246610352324670507109734304501900653172837203737311465652862271314911807383526811297042609958767603620540104133187684610904418865643657663461820472374859290316979435165370486285690769687372986842889884555922516069201132691929481019840582767999006861612255863451834296640403352842594058545206654885503901660995263893990065006172735336295853299775591214252257992436037035235631599992143079845227377267008738257395380628304806919380211747610924693702669054394816099701533687967892777284725248319672138976396000823806886847109440513958805077308596235580469449967763475669355547349754940737094084666731261754173227596990395042825024052218592673106873536816023615190048678379925510548496052050952662848114364224576342298490300026943177274866189172728167087249162254045371271727613936867560752475373967044933007598670832433162282298369960402139010695250697871699237773281931099351682649345826182202734822394138334629398972894755888702705555241760131219229481601766523542342395984332508109149099039051092672468053800800353019956400531623176204336978959943440054862674104137800091575508578468732440999656246290841213372928578335870542311050821889669132661053215607784654080193279886494352129989027247095468595860878712928591039393913014495898310525144477976216662514151419530932690250766571173901860326787232006069435096889773544416991313400335294687751591870202739428634114679895334515028101384630449654200396423382788478987635961490190751461334027625985041813196961068282102566458740739543293748357477019778036815078932673033260410375047801697035014589482707828075906518222446141736739492670201641824455876469134278952459202317192931294480568477356644843844046526332986865181264196384411612354982374467523906844060866906711719488392081742751979179138512841447299048055230317751719756569821576872116068615838828404496222757789578762438283538823120944926841439963979210430331064436158682435648214368278868230490855557356962689026631341719964453155694602121699553947770408552944362234189785508981024855338067902464922266424470391450192864212981066321052480665362262242990463609635933237037841661913035345256416111174108729700105099029362761154413270942871767767013721142788635576925070530076815221314928016450803710458467885642968241761620994224909174256121739664253800445494432637217221715150287009238845717217014254524469123511195382898224840664775543830952593512863277185688920244775586532380454480742366849234299870198982320020243637963292281085573763672492176418444332763238995387838222057398757185155600888352807378366658866411641379076704595148115835271787684664636000945819745252492993945784019648738052523673200912430078405883366747971256251806989739531967636058988601023476980757002533936316369965032251336167048609085257623341521984743676603701132686834175575291907972311756599615590234031912944818520302441251188762586362083021919690199118306369700882570553913188995846088534793722927646248061260271610089049065657811533781988381063009398906730215666925084355762498480838607219057969326854086883592311973326934208473048179859874912772088629166456864636447863854611595671412642495142197011852489920129092895454349889188121507047894593155281348452707256820352223881917468280013964467425899257923593811046572112294423103406262295585279530096845569311200225592712044761968638605389871846203086190607941218587382436587095565648683386844122340788206817753207952651774626963928009327842329822078896337382237250649549921514947146613361571732131438061968345406276541085183255240682695406581233088940129896322433722027400997829685292362615829257398250334255358275252915875687996336852024438075835942075643386159517575764247000989124857229808247010892615596806604773562082172109330019707393320679258127687106330142564533876868425669364233844230397483849897941250610028660973057699010093771021920265906392723608657703724525980794052714797956794019282977354545523935132937794167739204570205765511360176041743610054393637929715441996527264963210416560235177521333048296924479465785743506893998479591560064784484522935910924290951956867373489256243565787980878919722260021361814896208954729048649881214566787663739542394204648373577485096523766819138340615336702772059569910817350731147449887259336503359958503341308094463051624460381459933739750501818904872133128646895970748212046449350218256549300167871328472481306951453476341058291008850899964800186836033724916378874755080264884970872388246435236362849338157390510497526528428165762679262448804781863933810163528985054064361887772486305074707470709682980328875816839671353620222802073842663590725040157373564802721362058594392306013111916326864612332749599341733824834432588159760849753481760204211653037882238594377738050852686875857139787494016726182471012725251821016748025033660402042382786084039232514746465845405787357690827068931229153464500841137310031571627392735884855083539066956431392037612823426626148239357569984512177336607678682323751950634372453055692816153494725303658070976090686711745088837022804028270618620113069753222387952400068115627034043844530684364982871229701688448246653700413845208979251440839042614024507381169231731590759337462809529593848361326396577647636317813927053137553293375620330595792160115842980234115465016191337211976845079719736333463078710489942671051951816504727265942876472785371186778897695343497860641742598607600225441288271956791854572728785895192060852924737545711282072322400732992279947760137044648852245010992521328621531753759876812890901867466251966379478765157797236212876707379846065449498904890197489802817775865125744150678970690913290950749098791085762195616442801883327077326164523093628883721325893972458988479346413118307799969752616160785846997155821957839346140363359625613397755043768847321424674511427774133623195300377169803929354773258034589257014203193905257545819620593448918698766272667827753183604379155346713633455618946437657386247445182382692882604023469585986814604663592005666042468170280352472669701446060259770677976070628867033295300353233215298145770674306557800538198946963052098455937307617158516388677347944889111420256470273352940398315103614133994177116037517066863082670655501933598062741124016277824448392214448004596779609198617191041705784173801728873491513533759366633687516752826176504477676536630769857322115935434186498463794846193892020318434438765555892905376887703447093897061055250779005048912134817327035630401834146904077291242745838389269180042220178452193480197130884392319684301339130736577664542428142381608768196161940346146254323411003697055421174089080281352470632301384418290395022287573767011754998414407622365176653930675883303912354633758693678130578039676867192148630177229736902007613333102507867836389646456791928884883638169006749332791270743174741723660375201762272047923780679263020373776738015785058314006015445046314064954342302118479563949047054663780536535992848247169549589773116093883079134977075787377504961366084532943287170542696784510508972754541443677423989287217959878076779330195660564436350305163766121993143201447447111058807249003895535408657610256401804638530593274951126596548727391244693586206409851605490890822362001676473298902119978249755103996963833826367367533244902641860094009280711686008517376068799415341585800384434002815458777242330771406355538075702270193351891722517765229487612992719843090400261909598076969680909979710216687950912406891044629107109665725774148942205028200295724736868392094726940435053544437062671507862298927678811899568587577969018401315768926632696800364944070745745141469755864969311503446739817243975587432647499848021570867215998768669232201999207753840852568695523933031873798547574932346445520677689940062324121628708854671367321207826702882849266866752530453764883045968033835298849495474576624510023535850029913020799452774846495265290422314774125642843911294765433459015961194825261634419601266199044293474123324197063776266216391836318910451120974397658823895123449095401422104075915628042851208628880093280730505138775688263128716644710153669236827727391028770585263354470800983792054370550477310612389011540591861957951293713484355417115105515110802003690975888527636564007141338893929514988535487115839554042234346084019275279136384396243080540526838653123709880260034719618326914907062695409963081601881910489704203814512483926184765989697950588676481790392841074198814652265070959728744264203284114052766951025881429565439946079015125430817287161409011790429415447019569255318526871286413643985524349460368491848908433592334923972034476594471977167293580013252592246420469238826556857890657337675390582274734260916780226998437322508221200576109808484465391252918455425274789952870411792510065038326089627634387200332333354057144021209116386098633291669492053483869879155280093535921363349094444405475114463196625516263361119153769986327407033124180116024859909010086132544208842822161528966758926671000679912686387932920853490348147414364351052864273000456600061872187021498178681487280513107045198104046883379201400694418491753551077742619932171739724274005654234906008221275039326439395746306838616185077078818576747794023409746176324678054101096903443078486548623737730209938400290503889868532217521542877346666347303508914701811078341703784223865579721765284343873175964059113280859006655126161733186193790240596277345641858103377447130079559191042399513616206592871692489368535500618840229529672449231896787486902556627310099315063882273259712184509679293879562851075871878696948907254656079274970489615183485833293874715156470193247572329510510720542985215423581830986678086408495192170595525662797146568027527912259926305475694198868421402502390181031857304916116514382523068317049588219321902606516732038494678342669003023797287517878225087328220801708491634115639763989351421183065972677435069233931709802570747073779043490512203891777407531439286894526082204768068477609226777446137322661008221971599099554273090875944934738156108803645958403976486620191088662200292495480663596331473128829621665828213001594917988477182761407062251064642528391103467466943178078263344492313393407588456002986870310573151986626147929192696633500486481840260631848301223108169385564522233702374976072725787892694091080736693266895534403042703911015571039088417020803617896373707064547161604074538702709587153442308874283488824369803058406117940002728291764735268112884541045784596110498121710224693843200797587919391215119039617200774966086425134870470093100052069443850984991236156542070138847331797079285100446923587201643633245900003461024903566379823484164705076142703390806802345343459742921429280934628823687776797901120223576759748783731433458580506567189778221912674262773341375357107141059093942791002704527020582835255770389815380710331127530578789071595131822748605944939335243128042642752410701638955596552579145892868010949883218794341392411863414464199517969973610147839880437444076564341366068302589925475000841169143968048535827619321242235315160629395962406637191807322198185654902534873016778205616095510667592256199973540847126205907941047914244461282201085632626009143063954171493936011090727937894625705119092453219462793356874800316529042334752403143363835955194957901253164005667192262377995734377250597609047410066924105499096332748803897606476964764472994273151618661202431003802209987063263988287590931927776104466528663015719963743789729696247491360886350348570895401905446191476604394892405752226333617680880183342437054226042373099496672429301379559422749069564909757650410867739221966313202303505123154351081602483714418288580534062490411346417894869308955694731762885831749498737453768237553944943924767402160624717401922826853766211393461781634779701482626196588879076704043329985641271528896550385391691507679198231906660508007681775928220538374978182903834660117802880314131039347874336065272732107287638273145608653307822919559709171832779067111250236295245456835191048595075597091059653186539013695352058182709696756466514595100338375750752056780953908362690561355632226883441398789407770362196742644755987855078204135154059492398919102332226700940325783763070964935577368307900344666806880243608508018143110054047814977724547081708780227915041914257838720387820916203381542019349160215236790311771196080213290205030711159408308873562464194729523579944116635614777578485744622813567700448827694568600068866140359482290867087582075069445582981691599775044056214944335978748826587567550463778595777062768819780365870781868596220679374172667662006227361099067357134419510179353898963349847153652836838790670936416044937453202798010595711619099984468024919684383347966504119996289174658663466137026970177346013171109659073521268236071469177759504273920328581994790215705949567938605329056307405076820248611266782357567727876213985548043107750102391854971617496459754086851732550423997512005133833021884082901587944780274692732046381284090336952893798354323729265844974330973624170450353219181408604510657397383870335821663323215558634437795155459801701677979146506577939237989558336022060051703727052178250717635692998968834072080123849411609815694414038808713466037877985269766981132578003538867866632419279835497746499863456129664293922657934730043255207085923027916123770467862064760351582491368566078228389921532426484579953874971403803754158745393794525188485916925956472260520542880423327505850492549514512392201145422380607060985791848382655781539516662889385964077013728605997979752715834198297087742573616717486754331540090243469992416820347238035723570876249744226116671089838465949610205017430001893748203669549268075441128003744985758172356300463273639203773444661263192424086841224996918176604539488964322534557555335181813438676647438798370942005294751056353433891534848723546366869034885475755249530361098310710155693405627167724206253821095260002695941952750803262950971157146587359592284993459511715132939752358383841993324489476132665712954736178985649049138993541123487571470737134128528343938317141074839352569122891980253912879264449463612930603539355663354707485965481111275726540314620343053093822665030114084313030595607539364521671170542350336995336449936935720530463674893410014228768360663538760499014737629576404209317580208065795405490472577741454419880959210399833902261340862561707929731642088890178356926527019246102054696187153253901556898072594878206452523244611445704975423397772662484524993171653737690153143445762776955660900400542544650351474580562224543112775764598434061213915944019094992243395346719993721794376875174652364394193009793545922689754104088604830667759114223378300118134893398530135646927789871522626616435506006739251857445524679999392778185965285661229393947024456735105326129937353204140126668804267458965326816842710351649740891556850235451598322388145634702692060023431860020984450239641996901696581132068138601552454423806155484473801085054621000848598389514833672516119634524228232240257874215472168856780999981499780752212440256266542533908019805015938522092667414953233202797704444580743888400648651791270639507139804672207668251027187052106268119689071699111009044975900210028172739926827999662633153144498375552366825225528059913770714827097570282775682167621933498447634823057721585759252991671654699502458317982057861968263363779930989032115490383490296396626412487487258726545592844936054431083940759051395261335355891013546677455048915590370365045358134546435023752333466529557559563388540554576658669883124348762202234936981373427619555241761210910273703176790996133544615363723739187415275790362223448087596614915342607540561624832565819279999590392756721403330591430680797921675689823904903653695828964339928168695032961517085848354580029176306921121673381918884284716369248722124708885695611308010279163064895241051562562424674981097813700641755610889766472652345208344704058582270816304013176758944652589173457747673549741532878395767801839546295359338852194605364760278269291822786845863796815650431456654983212710965372385851398699967755942242686494583766305955467138366267343887326441509429782500487290179370828984088575676072410575134875139257918567999898988350507080408561111346010212879056604650914961787448240689359211186397493449707958895650612571313598447071220298253329847330972743871387947514632183342141424465387046975437565317926663821382568586767907947135859306893944576593672932716255509383372476676300068425421055537699321503188855882645207847261602163690340119090408414460857197112773270305046598382972896856083261883533524053451309056276565679792745459755636712740158113306144921034240759336976899689161603673371050786880390878718433677180325977001599527682681778914271406502779257409523854003953605135930901264446279144433787002742012234132497386835082474419897447264331835382376959092727152176888165158003026176328958889532126758552836925406582423665638357409204258769345453546523848125537103138709884036468508773815031145210912991889407985075564653956187699696168430385264442182284756923721798311909663813187357024278048505364036510866664837230729816451913255761594535828618688342463926734632960539020057896393694811831955702830181089999739161657898502672600559103855963165776133177431713773398038205411183609474989677144914710472504656890971608349931746530880149530320032428097874217235881717529637588330266251814722407035991037963045633132742359441151190572800175904672689955866090022942512114517278423559028099246926051211342665186782021933617768995859270949688893027475871569935876953192659710278634028896266677032284442472472504018308075284645454930637089767846118823330126729448426248186951313102306737059287837522868956908505828097732285208709337888938835114535019507080700390862809844128017245618881808527466299632555241417563368773658233815074886007214220774844257944542564782995971061673846329259066052412168498691510913165392254138117081747081511661887444120069446182072033231544626616098624692684212280734749831668743069765695112208713651389915030645926183915448827912768830384229672123031184236932346196865816500812960293801996906273659469613555614909695454594086323764123467478709483111045975504196668285818713363284888488987876442628746719016992886011565444053734380703155119952683337428442933951997370578476184165642688329096223830709702048567413137542439671468822007176391306649563593652561197740872564478586937838237900046606042760595680511635119176397571133490520045720415118827731575208539728696330583463101952596917057198963192186690336097796176347674274386782375506647574836395540096033645252759374160272243733215487305880073854445767145839077207749793918816783290531781532767987326034069931840268262761538557384377564053783859806950402439358195754857659761067228531258580272413821457906704901435349208257475577475600463187225574987002078564663811954218897529575495136682757332818966093247731412197646251546371980919974351829969636295520730255065842422276408205197662781533334643028909097694691066025821357419485979045592807515049084573646194434529550667354736085491131413516782648670642120867000316510036895414351399656852577027375513232926333023042500842734590848200238661327756936964740787048566437524048964718725959760843017536725687567512813567706228284828318055015836615889971524735236229740363238962977047068953195220104409218513766980299253124883432794219985345104433917090129338407480972475703630875037564200187302489285982859910659824709822057331330338122472407512678480512727791552664912210931098113825375972499345880785102877572009920451699934188539148618694559254983355437117676975116400826665353830545881065448549144329475042730049278476676059224520467232522467873988269975037102416593172612550369871921624018075585317395620502327566571298668478449519473631848998549029436222147501289384687076589333845387135793212338026031713007380779311800710059648381612276896860850189861791199010062872136248367398865299439902965423803220130293565006471930251262921032193957140907092148660053841235369620851045631914643987980333598468348425716993029437878352790842885080574030701493745007529213923792487855019121833998804785123830326268339798653669341760723050845235780380466917119553545852236926155175211307296563460294685987914390773100942191251183139518291515726846760084179653831031343102340770401256298572171054536727111596805419250869054726053971503982580700153062071050775852140435149061161926653998541174276350995152841438759726861827021040717804461526215636240036148715212122857233076135294534725240692365678978738631937249352859536070631713783546401355932775829511619248312321806426091178696078627531234458491598391570951279183740048597913873210955108581256125328307756909893218690640214728197782813314193258236835268341694274556465180583461234879555071054798121050947775502162315176820048743552454785845560230757465932145256816561232256563704722198787147807182465436972355249759099043244061753578805955599507778807871580935781162093096479754477974527361525634642148124912677027767062764480294979205754282111453571428732910902770082684031753046703269279820776128109202966198400384979508927844211633021191925285703836942174025755783252461788220711416249950990217701238270818433511392311125297198120606306927807577250050332309765732413889985838306696680680232192306854945889375149912209199960108291799375229048415317283713009491605978422203550101557612215584370210714808049686183459100616673817413145596393351791130596259913840453253745572966618224931435168205440253238986889133616601170612117592686076920181027356047140348910175468216285428760884257178506072065582329501368228617955002712377542520357043628754867899563091514482889790607122426698745052130479360987956652014109056388679883306880175423039069714184338644130799547421209464270347729778029175364874305900512751613393668768717341158296539284022062791412564479994420321996621613718269215551484082491842402042247256912929571215418395269716435396450736352638970288546897924880042332750820373512478461343720952996045083688950675763652698280428294788110612006518547219986847747746885074763752503298997932632151950485568982895524633092616578446161148423710654241814296135854065596891972891150364119719536200564243122911427308429620123181179839474639790436394564155274887711383526248134311317370475541653075201880312375959756266097664459246296039021159422698331880696185693664916634848629059313353021715621264652987316064706052834249965738806041378508175284016723255068134251830852618820779103666464380662358491680413489210753757683325767423131956260190037222003225197165222915941807349919277357494175835003373529986142146541408665732893450114059637483211728138285325467931553642408622930314435934348135778613261479658469848009537983729434709269032743605656340233556937078296976262039832034425083141520539686041754119998524909824397352578735999504786491282238400280826599629065772836380970970899009124244442756311515668446179224310966961743114624972040490137681347281452849880161917940695374492558709020712863699301195141096446402596120362427169528822103966060568203349436471094593620478913454101782221783368710266704932677318500820480542991335798337614016983072402213712486775487867603296776679209152206379685905877640423796339937613755290448048804457041687905819837942626213115982604724445183903375183090495231759816195265168868865083077497639016320453420193549006536339335795092197741431317947799469464240789049212609507247649586291591097613799892758129903942297514683380112402163072084793221052985514578900836560962600873492876162542376078565091928820243446548761451246934206013060391773159609961625688075703544381180807263178983041906331630672743917108595439540993898255198640489709115187208235489018027447471970817599476704570072547872894070383597898926469705220201594405263241901823407975751813887765156230396755577749829698861166530850195684692873258586453040666154028815658391499134145390436886341528258776241295618908019320376055610016657586367196335131603127690738714703127310694403864122036451562851984078176835344446210199393314877424991103313844350695005963605121770992918390888266820351587598510293273888708435350931412691169909693588734129441762004516673430358582421071058169844148839960479364580262765788373965230243851822543629443659420549844314054707364245062707092326076936610861729473853223854562703755348959059147799115946012696411267786308878841625924118849295224033384237925769706313538904390961154505205522411787731586318693607137444639871404940032891202654032124802251320302950892765046158797539408633419979410178821824808264973945378528146998398407709920824902947763655822144795613390923278720622895283293012035952332958132583279581157457724652020462087179530545789914942495218994549071870416244435375677342525328345500536303666089950442258324896925509152975127246286579134809508969658140264064971214692592284612553459328364283514189409071796274070523503072267817594584220961695413876502888630426903232431106959603875884443858723688629828578516376117288889439322847141625950200771584096360311551199043323606065575115301603164162481234683971504595002529363020110203830531888304912761564172478608411870720897147261031662076770037044677174061060504114865412562658961809886787806033066398854711371334612774574725906909255389796473273405831788817234166036033097162477295229251688243239439682612636522771579804813791533087264415443106650258359662569895849096377830531142235298329596411960669817268884146750426414836594220375158981993809063954337106792815939978316014352772697287175013902873650174807996118540482964958526423109220673899814476220130303342483388437859966858533963693050855581601108269807823437588942856313086069617209928342285625268585816001940409192964990383103096769287457040243043247846477667807319200732381071792816998914461879958852473122318370712394963802306576105142258538297363947429998769593834015345878454862411745227472901163648457041809082482176941068120371271056570880323686252427445302295470529695488412906167585926489008649430201213711819378010560623014875594998899931699613733851984885688716359162549648628479122256297870982622127687347552258238193241671120801395457551697458825935073346879912379040306466962874828667720840684711382420318125100153096992226503870374076684629516653050666502220362248891314905353504364445360894948076606733327024818091177714723048526318784301646377429668301483770181498454080621902683943557186714085122626937494327036717102862855453849416018899709725193261398935416707718000135989229025096238780398447153853359118346904206104899015960093878184427717971850791925981951194412649018466156203095949678202564691980937780185978755340467767989881861857828930430515032164871966083249059396827356772914274398343831554479360390318841817292619961875902537438351928495994354673145310155082109561820830771447660916374893837645335731654444563643208885187363514062657864995146220363228404275301589190045819484411386869463736745116257663319892976488800346977995647627466929766334483402569921014005436333412162796468326363692173071021944134641274402510914083749472073831491425521836239328552591031981623252386206049445267240926845011609903480203736262957227683000866735921209541849016312125244254085643843894826040176043188117251606654368140946964448685635974771703525480512243654727855027151145444306085079990961748948898323392386088811886904572396067814592013473093522903147816444461959281664412577919407835025036295532042473179624009295601012045868572635022862193067361267538480220343129646420667637623150816015141092653909596415339587311023468031282280510512061611375437244249527672977466741618274253310678222405853730488112600673720403148506277911971903704779030601779765558256477722782998848878858532374409961813652490221019321026632717632580468532991657555060181182107362831372090020770258589525982940658665858333595160183925678532512698014822835363831152341280472082605575348262107710665246032255075414079773160303698852474267747985565024649371543448016715150811519998708536398719797465714507986165076992763554230018371531487685857578346360417813084620481208777680470383870730278543389233187790019388810467839480719490045618316219227542529909379919815305568311320711282369044183897394623042132651484624836036242860639007241661028783969785272671734532479139402363278943923180158969539077040137994155168074724903253028434937678055741461615547545795242874342893247290879384380982608059435653010129731591309998003185245111494568926470270699832042321132282191584903187733456681500695873438057218587759495141312708452520119260128637811237476136547047768902225234336497672471105274599718154677318838263827180133525145928519214394076353562966068615592591830905988745992257247462240932834586940749446901621922492389734584267530102904285238704202228592740938043404498465449758805876759820175395711897210649413201691746582619829512860507582651720593963846760103152634089515078122890187833881711410905421026408421837844037649352654297200180961693738723681919686551610346178189523005545923649051708269688830605573676138763525916771061986050258040892576945529741762673119521664615976715976478326692183916334596778865507426829931690822782718073417356232357621557352200828054279858627015446312084377929265594064306211641956675394888868453891078960263585915694130093029208695660508648941906683211066588685548658845286463639175414405336314143895921259366660328910919803103348163449906218536380961588876791521791637235690965356968096659347770922391430288379023946922394370657272542852789839639166112329180962579254439254471538557667560582932512358407577824263526941132337586728780176714117691746264274843719214667006483944696526511685731995335118086217214911513063573158455558317294955896087665803559001602240396018216680840532404824741878141854650844028149830676503823298196084547657768167423863714088082886392448885602140517865841920090634666540535534907756721634703396390485717970206958643313992711255437888404836062958179956121115429862467152794084337093743222266520830358409363611224618203882939644415020048782910580726286735059737811357679645832282182036294103464746359783423891247339521999109083938117365777033171139135826220045947585059762685733568205955810984865099916292724687377730291953764112237112417496080594257116253815161016014625329919435114578311471310710979437453907755315820614140514916759479859433895788807206977445616211105947567422336966542169176100924293922506281004625297612870937796067711219922274676956480202105119301716361091598332652581069039253245529080634916023291308582244916700798164885987203896388225839359479251762709644545477432443606236603586026148321181978358461754656193239257357250170227255057610972631992853323592393505556178091664923229666701404677378003751584948896872696223236033883457196885231465126964520127831112308599034448834005557066153804161207666169395106209560589964508509959508342781323690469198822406769663409775408610882001753866453854487403328918943278971462921421195740230442827624785751764895175431682504929386212789809466176319051298374549207006589653852918055551031552901533575323661960029667720683843908060071700699499997080559490282103151643920577364089995719889751141197944684205234411991327088293749359408889007228608828763806639787926133294010653995777698495900472266688067917455817993432096931784557905707343958354701059122943683282047495144056957366724680493159800217765373773522682518859893758426694446816048339090973977680495689739859751700982238956515995964718111366949225372675846523246336471293538298167181450820561852918140629201362976363823441804548592451866981843542941103877262525730987837216667255865071887412323703961239554778115795647669860660047587522119778605215920516269151552263058756710394479220828231390439959365130318812430837783288283692723476760189268057563174480667183489319602047124195505537259685417384580964031173725211743687198909932175240088595208073663416132769486214469743813324633664819037064550026096321519343783061890683750009220953389479589961920215441018529761459085238004155927272554879254896329714561755671025812653358868266567733736894718707526188038416542084056681146152384642112397934860658074532314019686438294329367133999265556843536021202425009037989659735568235572493931128899227931434449713847420972088683485754718433523609199190206267830567184953825962745976610302304053737747719060806115157498824881052062519601334813707334744048222413387999105666391426741303291591078410818132202697940668173883589049480094266003418001638056323650203056326523140696414812490088345174089597135783211157309113320374428529080032289796366771227347970286443495589211519812788671677615805418723985688596875944403758606027174254704252571015574980947176084095637172811250165635737010972841277731412825964856658012152395427206365223781290068350502850842787894054488446903778063473415006669071528708632536202518804811171922453227483158934850280246757246899257462733981853630797251063163590038102184621094352364955995916947317260452220806869177550001220100534274219280807880295470868638093729576701856624008671249772816707761725069840869839622384115654716730498171644598331136456928339635134547582698227512003360395545258477757799658609359138886883108626805161100375484561082003415533916500126933844574592579528958597361415195930234091688484899488116528373292141959388537409793471871347010297954172120114802567237851997208549103585093328929420047096614993701528016402714408726799539692311760620721864856153711923763333221421382633089756098375338926775406605697481036647631588259784207985440464951813239534664102626788573798208979654800782657516875060556829382528314027169419690199723236018151784158311598344780046895484836416326941674878845743921709205728745419124667491132615963004612545449680587574698297080956665292469916332030144974296849617930546412382273590613490348063169792395176560956687760191010326956931310851117841686255971614913920819544020803069177455252264885746415595791024943727610791589609435887338078755657437653262124812930609904521332318862014011847206318021491575508383106161115223901050311538409401879625059035417099479456458161138485306357687961340060915231717609039907863602674459196882164649322318203718155838216998137577858133202602683971469488003183605489335458693962760959092239826594440314090393578411994993726791792796665138758302182481837345522082166579268042076090395391457852689008840099608361250428346781987311677049042486398339573553610418839190728918403531268926227390944045483958229736220563741555455140751263846077926272396872794622583959925004255449438328914463214175154614019385019967824649012839414378270903563093633393357850860449547170327800788248363565248556066440416029207273370157482113916339778559170995312072470730231428951487488111977376872833217267342176555329407537086471152842744182610835010568037330042001908096344820848482445356192360460875970764637451077629793665448422042628920068711358872699348859093352581138681597000194432504880405860296948666340244396686591750254803876989751111171814389730306329019397523022850872687658540190998534181638638706737472116950427042868875510149414410094929183875560866248006547775198963448893876393188637183486679665540595837026718675171288671199621691404126675681787892216779720919710502335082818402884895963415291716956962254755922173637390246396078822149195711631142093648406109643243688251053174031631764854958762255048987291395966456883991544492988142617125040546620257434503445595015842832744122792866515481631235098307311946069819623637245439776474429147062425538342969900701017950452272569513806885143084827915051688379493571330974965222695811694753603501982480197808481939970626231302309051622808252262217273843166787560231748977173949633239228928633788278048490280443932365113595117866571268424107803894557726821211876177686856991906150934374031580176090131103367928687261032163737050148219137173680108476187473049325654196636643587984004575586185738866446847913476870046823984473161460703788018835172563602631101499184995930003907993815365255526542731237237837431983597133874628620081854771666099209523843748278802152127611129331218578124880194539534504430106905100065293273445535799805075147980626653868149900192161173094404941046423525669118010122155020042107264370460689312826607279036273995904906346057247922095466872608359065485814446119537404093713384266331984290572331556182781955963301769596003311182922725619524013895272846190617343396094959513049156154358940142860970931692325251255416515333085042695198318575800833314161328624678338403666266098953953689906281500479615478610313558308001012792482723355360031234646275356624205295356492281191920299659667422352336281057589282273449040728246257983764765714897983392307874298393727514994627541777142666393785508106593600573272335040098387953156294937143954646313456782856683190661933999127959272400366201229944861566790231510698184368759428892531498363504844401300763092830807592120676552631896941455008250736768431951241030101816963020216368605465763242617865539064108136912942679675687338431293768415364429865353254368605207618833131024369868291134282315058263356165157639399948767648753517919178416588972481932010971298846019706213427579480266600923885270954455548710960557058818984632203935087760516535891998946511002235550087131751282839178314373232035690060194995349307704548546684450717185665888589365051202874283073857420217821571893795538197642725582526872098843936977182545233335532113076231717816276219823652241182853200144967375077025620517538569080296273073688245597379544458596143068922279950747707527800642180821901108648541425210877359760586799927358628674447706179330540289448834807023001090077991258007057339985630329657423253020857148411079287660784495976259649999725224714809043749342237704514878364863009621460458427099651825397415453133481664871388528816665416781568107149130222454701066019648040456240455073894069707534892351222886319002222147090113633549653961614076868710131338926606497107776509697478487211237303214152168064565134135603879265319041705893808036771853465091739843659164628732201883737752908243100720113208177649091121707915388410016347530693049954389803092161384308206233820175761382159982077489749426182478365810026789226459090778592825243126070408671345883502516337154296772124284843377688385389059727953600603752611162337242944838750741239144113517255023075375446948417245046700299987175064125126710502612004395961815477343465849581114267004518939449861682864124823145004996853932628583544415136191293448299629600490813618915814789955123607900924376635039103040395445628274899309369103315276178301833670033597594511449227551335995400643810798969870763563877683877320440088486757424599211439938521145535801455108908849921857533879017000565594003920704404764715578755921798972034541914424472248105333342649429947653027062044547428006173909426658401501438471886936075801140838566540113112185434361794825230364443773934951639653901687384672092650749992195936035426853281205893375861087086343575146846743821948101781273357186088319963739648244190249786319008744829187824370953247037214747153686177374264965379889534148535391891989594989837379121511871915337242722475843129314324360424227140563907470397352712776102686006453989416206695975734261210724684584126968537190558490475930408989386698703278188221143901358174536211635625941328136452699784482293271559875593756030463767448573246616333697761158965445960082812255717948238424523405843482493032680921068773620330019638361887391467748428920500314450920975460258421676122504293834144645884522759984594384848246569627565292390420627934313686365566463862430120029613345599999293206079981708732989480955952801033742626441006983917439547037871706131164826044380214305374002567092877443339610672702510306644477927092528568373793252761501835085229024977740723343471320403780158131763593008763982601041296276047675150479623665756380617105193431129308444553108008651321714249982058037043287367208076806097886234546166546202755131691499439411146859852961625696352578303004627094113425382813207940998562005946060214427143547500076749692129182791392597305396197027233608725458797368582300197727142434366833540619691838178152899674259185631676916145566297285031317907544920746560072085229728474758659859877423559517234769623943959221455565235902130620222624691157924721354461867255652910500780734920306035952425021516083778985061270091972541402470668590324866516505802219071186685870044692559411518469969614137909139539008252572952813381022370817435152468014827438100120484893781134310391842520749975648365730428699003614062821309443303993877876915467071899640396559948198245869808148418304515364305978086787778640970394657498856216807829566469872797149944955871101797717675362195484860046174945051572692143310960133657105107320322496629845795736964032884776955762081999044903801532526512688223766033620419334246049619846426018482750077360982859910974556251975087737278750846758648117265355255328950432203870323769601577492333412222167038969758036346738188522351249800664148695659838848423451543913244464051163397674484983511621504419551523003057980339942221455144973365529288258984890605303908429481341650087123269656970617001751381510551130451666630020895552878548112038173335425754573553720767743945173573825086854687427189813024939364762771074706464778441307384883473069156396858103056239353046814922899895241197943970179284447451999694416006061834362652768015384257472707876837289469398740026572406605520099542280283488445702337844525367850363379304004041684389684613221145613791437193277076380364530500578291045323039134211683049871203895117576299612847026581896524038368777388353988118951411178569999829364952587414591831368785648110705704175760751234640141204108302294284515059266175193891571422973160157108357890867797668556771998046039228442831849111537010943878126396468765875428976365264415111038393109323887166191512327077935757435973028752770373471787718740647501706163941272673704706340860145558962296334460037190246271150265508666997273508093861714989828237342109968658471707488915908098839066344306640695537421882227366100927241833437528887001364922165669852660971155988923406887443954808404156405021270726974432892606664593109517036762269516448097231163857170933663012067037701541747444161697388032324023946828595655654713402632990589810200871473550123355873457558554285878077682154649483572476294771131753149391192021903763193837452455184207174205229582568044468000635573730178551327662114811202895097516152093854041960398006409799187459805285543693287604470776668644130182449297924012775366922752516265571726341090405433535806608323384409674390146864676319412178407038554602788947800346545465560532263423168765961557639892744740329076447417242772466422943197889577276046357175322812457781290748880128522357871244431401682981459964108527849080912754768048268133770620239605146836633351644959210880478478117107453833984560039993966572113983263111588915850743892405224648908804719986243765208693465076718431623301996635552790698284254086022146317540500521058632686992809879341963688225445335341913444967137319131496471160039440337702879724065809034411687070020069720967779523037850505476947639462642163502457436120259065648054388177686446760755738018164333135287854011217313688650368277416820737326940018830759537182011806487326659043011712248651302534192268014150944521400697005829253086319182253169381771650975940137567903761417521070825550651399150354722006879734779139219549495773193203476911929636551416936551517951094216380290481731955749652877727197875170642488394085579162221975336360911286735324546694861578977009996289713864126703905518456658037083740189409205583685661622389285879665768457004513533708081455681153619095580609779130304556446557205138548857355383129491765644447448873521692646905307774174627444265710663211605130256057268393840034222562513196159454438079693452222229431329656734161901194017615411217520756037615906529114016717919345003877189492812899744775503844922910509579412114745871627818962352788818563766918366923777425735285245254578256823091460521693444449368915175311014523609427054791410912008673458446849871467382605269708961817196315923855480843275383564401292022523059569416402406343055622376300033480139347251461112034495748434150676864024065239966932598884617110150528538633154898428480950600794639270544987160709558424487291669126854783267892634806815750222550929441958071489112803195652443123385154270959945940778838901636298197337436032505665082601855649497409667860924939273321409728783922952427395365852589735543166459285930655307773817427888877411439507114927587988194255127923514120083523715706496647175266894279032875818664514326463960528947333854487670399601883239336365348368042588398334503435351112358042310042231977927338686073444279821773173289834436247431428881319591396581067643868215948845204329828412695079081493010908057562147870121878710606938208798734292271098120682654077801564111654563421083474312594121626406752986849629003878965282811053009467807286602382849051822342584616725073126805674115356309446059458502618396611396177487729577949201362690724769086759794780515691730842288919578076641547412546307739324762370417514067921013304788844215655994472403848676447062705356121657366552724947654659568582950757214535321380922943469560579012677171979825294755037428996959011344931345688008929830917682535336524505896926188063376936835200762708770464419437242226813539080723654920068090089566530581848555157146274536749971552108004539378373028888920382080467464314768547810080737792633612310571431417897368962949853817199927625598878727251280918019603949063037597828540379617974374239054227977258668267697017239743701949878378236417789137902291890034127996534135737784554014406176149345856198118198698173064756297951316924187072847251380669824847321009809247869462611418884586748616904084856888257008994761004546823943039283428327872090713207152328205399827673628433463374773124693870934022700747193766595843524204534245720869184666380231501397920491852359183856558892716808856943996390770593733214607909343565113617124782219728348609891868441675988543897716917540423651367947286932017348333435038036560107859060487832164620974920913795815208651678551803169041744282024332833735552423192848572690124645940507169179967675415729518416358952647031809332196722262962908651416184219187609703133308454001170770044673754456394085220430921097682343404871997375546859847642693885141665677278345328885990749098137579338362333365021966609976465400616102653538127691552641547271965585797091212086538726435716443208261115696654189702606115124300487365736649946496856530666462253281855859208928098360286672192584666212106170922919392086291456138343089349460988102302365558311281259526986069238648869402801526241272729053382895076089699274937280234941931398338994532347716234065336444791077412888423800346502667503933682822728437029411480527374443295067634417491118057159823862771030560018301382106017317038923451279119240522798900499654428586664367404909180731753394728044548742721904362407046341859013268233685482668036464351573454415065002284572128696804081363209060900987206312843653251469247408956049115730657473571223820022790767929360628529887455630930502354095703342672025968956507769368031775268572970634709594742999468692397301391968104363065699516965269526950724781741584237209950900194553148035581575794106068969640649665797636133524722814603809320779006184812941928535427642583949412710627926860300431210552615755939103752912403174249524602357513836826364071364628204197380418552086532073992187689657414467791009983489033459103689601149520871457873716319747084302691602385220848813264896690582962101269901699587256417809016438453167027433391260940981014840183034529130222864498507639225821592210045753882692436496538947891739390008476660695496057347801872747260624398548162034083448700222203726579005373282278611930283633452004803663186609734426824156119073347602454972438002177168349654671394606704145467196826568880271462994085382363858237671261066199876901038955609590150331250088237140214945601265929658175344287977333460518125510400930526592446838557059737405955221904644053213371105089566386198828111464802155961405256774967617163881853933460923473735804163874044722394609894704879120963849725811501862786422355946843901923424987798420671551257599796254560945907774855149119946777371781369237581446689145175286788376709834361270900163074380621973243769690083413623489767125888646246374158047097349352035766604412281562829358433498894126054556654634071657346088453254882884339413660143519873534259505669136126615376808948149764132752915100200278672328302729149947988201327902828161995917905196810891224508497504458369034634057684033646441660446577488724369072142357890958576969718908377838076128975206952507793371670999317774647810373603746543197319194119339219322408059326345557343736122153671280253761401277509907628373121134980682476395027843479010309655855981397957256432383214738675811768503167721083545698382625876736152235570519243578516147737190048909076427873997574349436783849882587077284010314446169703604741791596762219764977734233814167048016392630701156738453085279850492918547354295597257275558908019341159783560202640630162899677738671393387538738357896473411062600594164358259801394346726044265406400725948946868035039788565889897405865012649343822198925072322103794859229835264321249549102216780056531522066236890576177730543169874184109976519332399756527134521422272553433859735054114107783541816244636979179359378680494984654471335841753005679183141510637721906795971268062375321042096363658092320713215866801565469316868175813249863958732359032365771519821247626604284366269380672308795188210097834762238898212387771388796961161381348446629739037346566245751070391926571463215847194700350936912828674176555553930643871746263473673694758743036883188665983029276892444146152498105964237670435716831460101166394762059551145734113485728585137167038356073431049492772344454998181382553264173074980190532421596500824213949611266691985312114248261410606919431864696794838131797904543796246975095389063619744677840823342599413118149542431471892768880566894704059558722742148642122570193811003618048366535727347322520433931669231363761122480510944974341768444725595969010339007186094935754718212362158398848910316301236228771169219591121375039222175446122960107914188334772847836045019031675134217859967427120324368719916063639174374324198305955346944440152599580459412393658972187610857896701167604955867889753144676165261710745871625763050850841244785397961684138401406248696985464798088228941977820426727505813916311714852121445140812635797174142112490661257159633977440261642468152337933096034229506321691641165624977617049539956613735900347015488041309776066067195060544878363284123265666450099938035213304904330177601798048192372593184398198277509752875520757374890043439536490256754213859963847567646938679040464790343817780264526919801492055785212580283579777698970878754955234184742171653197956905933764355756110940477690712184416826716905694770512403433212181731761074291137142833952061192031246027330203427579843619986005404114450238392632713194866810600830637723256451474751373225856235236037028907085709858518354242221813558495868769126738228536508189549939299782812878664786964430735043404905914229205958546616350029270985220398346409660277816349963202038366029538888497736544967664921378097236479840288730736291498493939936156289354328520736265774957561020042120324686474767184570579547160967976484699307126288961520868482656066681653800779835269982559408817265522455985782973621027150574063906460500142481255731812982013345696032276591146877226483039584024429856976274633562723486487263282615691034084909375991457210320906245498512579171424248699109434131239640922401041959831431300037187070276020545393975584342688722846512162145985506625144519102537926729816918374469091516459000086913003967583061397452828424153502444566028927327185156827888896231820783180027025982130540747713883786987377031811705952593941769164831483538968728580316628126209176711249530188756007024105003511980204457494386647829029525420400891773743548568006103318493010254500320587124422951630136925884213800606782100523935142289932461324244663202420294543479636744589169848662424493254435865184743367105673119437629251166376196169588489088511165330939414734114784141967200237789751403698536534049710511873085598106588038802392488524265084386635885558259993371288110679561372524102045565188221943451626551987372219647802871085505845281364384185317062300895284434145037259323612340804120178819471953238484441134593216376198785977858537567264228794265414682395109144936692746914514490305880342678295433074265776561394015430974693460644758296728718172876126069163387385504816105119769795001333248270039673684613799933398177419774024448595815719496172982504030904035743840996808491784992983533929880012763892731802351583167044637135487121643325747396258492561318170331819130192893143997091890493017624308990002899592783904921236177246541266904768112572942014703291771347880834735204808354057308847506983708454690994270816291043382877234911348320321912272943741355982781315280642821871932628636761379478611199558866922026206180570157407051700327482873011633861110085443858486079812948315250451700643673040417338003107482870771486225112993447936076988944785582485369126923300009743869710540178713718855559075893267509992916593946564320629669756515187724548131179117004457288518435773244163000161078496738585710182267943321558020705645952472564457518017291733919791131825820422964794802663616656578064511466740433601075727511555530497322334291494053264379606037636340971858174408955232812416065199647176824807515693946023511881065020021469683404698913567253847029221457228373849125554196916332744535734121042703543064995328513026410468634741751774463756189663262486119997712553323727951671647283457419575355732713081028354522709771753801257472081828042643123014728530873860512956642221649021373399220823154473790966654015676706601626243725157972115591962575676831582431148323116459334301008204907676373737033609741975283664086620431002083421127937186431960880932465541331248039750541991655475861945458014308695448463147576782829928029812593573459463775937044645796190942555765278991518841462258825124848387119056846203552716754688232346876234434984297157682016684407075298730846324284427291232384037876840301900404819409207022808680364256683056584558403416487923766921787553812821961970614630904474883761396031786183857140610820634035523020326069047437979048125469487500151907809760769106018898687130975557796913940673508246912898788224111424741921101515107344555215765143597050406127919323584880648964328664773894500428615891683090578351104562631549007706153342722805948391804651833287681095111404160368451531419389967165176915845364702031070939634349141636864190752857211168312359144612944603165191346422395312570546357139251561022347674748087238189202060768231461953345283047788983977734484554234916001853476273235343523369325946387493725840083813503686608412452803228741854845391613356774341519844850463240214179264873004601576528306807902528436284478828515108066889523633302266492242985746144571238419228049618556470604866915599489014564107412045627753658339848635947759591964987135629896448723363653493985165594594665318361060279078500776270059495321284246713913243888283137052960468452181234029364728149501640162250113963119679787251391934560335638538481731544897389941152301008736485895669204637336096984168008541684262851814528000584379837431515711790107196232296213122788897327930725031998544599122063453909975335441038866324949392402509401033411454700470044566143648035081546088500895837096692974222539738665444187329700818611412266821863168677364910239297563400914698537514581169385040983276636197170500086364567192459770469514868617104034427568802886788037310235580487130483883887078586576420999837061987176227616829599298856265419028955049943976257001988071412058790726522068417287963752153082009759703441419000217291824798560086581122137272437865797690700059126737831176591693221120376713002817348054118066689055679391267344387510078061437274527646797815039515017253117675350903350913759136780971405753160813609788798013439548652255409330278362874602373619972901126884674444803040837271334930388620540722866177828727536602709247497863326294704340448065030256638929951834493996855303995869327612971567477749294743961920898243165718482809994822918438680492984548709650107339939390572040923064319174883198072979530489326116217057551143139834150137761927882154081963542114644212859864022235306158725751478621802842193986859364929926572111944922678596205032493341786844784745452599457121989490239131207184946388896967476271628202567077260845519718324858639975331089663765676841054657520970500631372830157809005976953083299557484443669246269786099923847153354861910167544777691596069059433695188668626563147710687262177128323092389294398295093898455446311038748940557022595003530733955563763431734240911540047409424444957622777392662127313657496365251452845208401602544087604073672137435296027087619028258314105004708481077997072685508015533500426223818469307100788375235369622612726768390953659441334587982086834926949850849999368767618889213142015328695185196857479542089334868855567097025089909857891412728820731477849366104677772043511627579221702764133640919774407081673696099589426401415512947744998807133739712488819527138944406233719149797662174910675493442112184258758814628788114550332129265474661737308201950438919296436593216112021166286130860029909480296455347747303935237060222141641999852765133286099924364950477723607305091831268005400223282591306467330117109438185740587820378207278781849604731842190035870039118174545721142762828621035850530663082621106285705378381195037727341673794082277919188938989401965972248154112938942042711083065105015736230261504432458980744919723562134252039579373136610441913207108711360304571187892039548968662678200062207314016287585169777701798693555365398783973236157968166468879084342406581101488751526497696281187981264284387134948367650885031538656305698446042187009835276050409768917385230027485299830112262408232478467046613048861955912219394569899095451990228525620770510121618568867904283964160251957186976763519327916968447185186984881789302516594228631045440802242997890791729914555108022234716419177883471502388238646837918608203488485370127360792096413036592503064712250495145860496692328272562516722641894358098671685345296357358206011908316897447860749544968653298241134641815615274897557283087566267143556609773260942046921627224030599107236612470417578030389849014458254498821187151366043312766456520608521573381380109086114605435038343584758293670209719756925044508983481784722218021662919507345145856224518380586582209096608717381834125739500699822565678457378065449007852469685791007661446740738341413164612641910217813770016787124295783226904556629614700731345311204371684632083291204300208650182684369874975145205302760975469750982392722191914127245672789590164130588476387182328798823045816345388933615074075384620860572754113688812984929152962598865980696018091364313971062550301603566091312546047084559192370793974954463552166655034335458697013257025160604440375775298987106957572738950090188571438711356724002589614507702689556041094393183421509026488384218372074572076386609245459916017058435525099719861723900853535566735195613174221708463489831202807275423977650022578370745133472346180584732728684843245058002001347616131582632651214944998504304679197788138181778150626462735481753217483385826531060706683256395881056276827088597137761961954855538266210992696240130702811093564186130774285501503398717154322318752693295288945421130540066703458509400266565895248216040398666668894559405326837189966628152149605860928814893196971756186798751480116727333242979007652648832170340526148831095034161849393873045820727257601975567209625539802274757870627946178127527989435507607710288600969258174840093876232083285573290743337353204089216572735518177094796145511867294793027183873824009878463992109699891588012109998933023124472555291649910319884316721532150713777891628853520157053226388435800849886065013019206587329515125649833908836692377143696182492074553869771574042454061891507793689008803480710051020515757453501073469740912022749696217648064444338387209299116298133033182534898390025239478097862975092940668908276385663175751722428745294379035564667517503089997323173279596259999083669245842276899430083769806207628512733896030188612760928517539425965979174119851729298623152516866277111971175241108922691751410363030007608971250015836974464083470099278655853556806904035080140510506188172787707580323507081683249745744969245005887436129570403086763092242454488653791787688737989952718258271735981249668799020083773301308921476661395439191462612000695697239183364704855766152873665123810630422336416460454572942343493077428752303691342157885336329402780602968972397034258694477804758594896334782500764305229452065901517330110593061916890266045583478682737040878159543838991456452381155919960773428352825657566080000054844486975752493741761604784314980928170498566189058599845736013865907302994491869746015439245559781560227529985336981960934554984698227905975064181643489126336998703196588462513282089910645474915484713619435591020804984566150088042762237744869847780130670227909067720476515899126413600048428304056765028653945991254221457030841743905067832004797415760803276399562119721997362219870395052530383293994110421473578479502789827321740482713780767662472285575415515745112903849626733642068416902974668689471965530070660295694899133896638647669449978111073690630131785276811567646120304076955303441143324532362913172509151566218140539922542261411973313960980272703150344129357478440776962799062415535660738605421883867658052894619382813479747025460527191281685235570067760598060951466465650733853038995057378205301327174127914302156143780769744307565089434270978283142883385548222189294742218838823248963304906726485125669260262501065642856807514033280201511041314726015554645264990796849156261443396534396505486123981675791430770017347751220749739388223811567868533322575684695933614772428351757899004298793682849138826506722367334832893818431613106836800569046649630706281179325874209790103700275097122750128987520647447413763002964950768113141854048798674754735733706662203256294472177559366514928971406807852044477493814834037135919986148745775814873882843379715834468558423401154677811442597527343830149325648421598334781504285893522293373987387589314356689488909927079466812314184573560982080539396728570928576215327782110147695640772591736274830372303853755980318739014855798056225287571227616938639124751132525308757089228197270023391713491825446430252534056105078052399433099013267669365733426621662252430481479660248570604964063487849930100159056892350057257200284567889576433883688025781388514804009737853514799088875310037200932127644667302444698374122748574689410023331494109545051560143339404403947716633566258007037398583814558087234906385383140046206449521280686658871914330015883925880079965983995316733253675488285884889318991256936479055046469839574932664252171224181884080633612188320330705228254923540802061732524414915548712019207817871448416256396723131147074511923545368022053972129619896219446963316143648280919504516175698811288423660913099411119660982935526438300885727514277600390929724355116041937965455414644893289475966998247265294535927190442538102614274964973890278448713218451337429063398485906973111170059200215937178194563395082229754374879962982238782770942040487381733976375529117145358558224862197556454076814270680861949782869229254770758415398111668413035251126627198591081228151645324620993449983383558086778344728112992461349968583051980251470806413318836675979849671871108491120433201518182238395155512709229142410386630017341427762168187683248121544816357047925834987703147322198788033745766256533796503366403053452269501204946921183983905005293159620409922674246423277872180771918527108002898730487239594520480225035832965132294619399683758728632734551285473591984696610043717634721523170489416073738326655988481895759288867228646924782102245168237698928212529384113863066997841520948187605886562233357425798312424901801907475327770289506695148651937399927287331693138051444820687574771077302918786938078827966120266352180684911692851687459573999417008214488710102142447680629496222339386754403180553330454859420344312399731287957134942267821455539836627855064035018368668346629170084000020968131234773987112083385998443450775906407673082715741291397620310091131968860640374119803589082134697935580194406789373529768109748768012945969008090606110337540857646919634340564982100786440582748060689340843381511853745420948975062053130582145877819732185887104854167886846210223368083267065238698572100468868214303292840022679834892936417260299924304250887230703286956017137399418487576175306559722498411865232733752241560352513868754768719477389114953326628853746684308412683976988129235663369531200182373064883918042158944434551146977847998393977689932499383833073799372052475105599721065643704838774248250111061280685478322499947850653005791789451850741312806171026214812935084794143581315786804214745046285692496837691704497750010458675645365868948993144351681567370178013562711534639071054386363355922706318685196184110744694976883442750541528215450677320443370290571621668187679127605654287208198699701418193037720531575618569586265688281663261508969706205679028308042715524298244592668611872221715274787261591731267426532116079659170858156444962186368145880517866803586509260405720358394070069201321452153268783198802363011437618254336977205290154495460740112870486931325433498514038865984962090226528099564598936990604884280484776445158876094180353116160483790386756604617029729720424559665789203202645145821291220776612481329590445892793778884290485165056617160411875527734928102636092786867999370113874562011892481787891627205829424655987412463654207374256138178898258216325328615161226902534580022783138623480222699893960242767344501922101993138548668804566574783984181902715706742010007742143827753438504479712214917146514952982065798955649784762541255548633123269246289389441988811405888882269917239668020285282651244342929847091508237010093573797719067467261091380907693820533836858451149226612028093920242734432327463515309782884750628495405578828853010468631987041445987560530256015334382360520285560394931809321195115760453123622520774107889337572936554336778816009315834105846667702684508656876978936577370813255036702454047956370954556271147175742544304684018071938796446850407976753819933221746354287480538021719031302473619655440823883812440553635971007199229725140069806308713860558306210702006539873611511230935574875349003579133530207574485952054358512715676095306340718288430261381060006630813918456491547448778646572911284104785015931793686972852855829851675755611013096776910952794219812993850438585586387276456071530628059592101687934355774725041941526287091178752324275958329417258550867266256496639806644481356266621357557438515828217224902410408480844841724077780814518836075159462663504331027657054036110049568800475541883066985133885815435891518749466659328637480286914874214597317101240700009992559809292775459055369485796784963379092448935288365880559451503147384923174340622882952926001414853525158293751878146093468899225358214768738964040354943245008178772157783328143649459736859432455118633387815135553148287148518247121487420626609027822198619034355792743722504888177250139257905823409403638274566274158148584747910863018214790027507985980202038002877218246533735972019411723775671804665738083680819027253307187018289529141897080607491255176580996199394219904907116837858281758571383420772241119288773928840320901920357379416431556572849187699143057414275947946388594397126457007124984918624425696758744551307667431518848495165954979140964330638015239503516902372755569119501965580147712693864149819375369404073228104895459582343056124361842309780153131791946802983552090808830006162985305939699690123727991714682381203043255448066301023550854494326749828515227563961253478226103220435288659838991285623531611051644033813526290103289387399307186264801873436746533916255744415091574016127351343886781746362139501198486672114762247764133430647526878067883854933303879643403193237340193532139923737429644056719201098845012271340193071604258168394731503882577072110521303736078798418017113423598794909689998273420256467594820095254886477186478839228507264594778865000234913799474708141359559192001120984684493294740177622600632984739896844020106057869632149357181187620520652148596926848934247651398313500752405827087692089692652958389792331896327039609367942356408111312317629474525210481041996270945093331448691024430380362838595521015968281208114287402222813494943194886653303426661499805821562694089659872128501981162346638072160333422472716248317671307213754393816282182997393372743368714156399875253099652911772430267572743123857481450102429203628898450201032733604019980784409542355597971157251720678096988862948028301455805031235202529073994350260136096877600525846356196619984484412456998506398450205919284445470802668789842758306195364171102460260053276818529567739598004454076588001225265540204048206324890742828993573180030672856415480956478800230394037899195280558830334638535773484377205171194021893557936585344032438930368829108871439651627183644146596904046876710410866944240542999302730084683701684266875590576892019503858986379027885825809528322310191541154794453505795723400820796239138127819194734333632943162935768614302519216698066746344715081518402125299363738072980556692250345099596128637037578883448387057047053970873430065073588458078243553831534273977100393915599101233360606841707163830520024687446821843736056200810722040038608188760117974687609565783500047317544302288102487544881465187625010171232461077979836949033073312681930366757975461595700118839312953605159459437713086198759059937758433484685660766869891508621496535848140044303534349032009611165995134343799472442822607230311215158280707129816522913000539709257413967321190574405083717559971304605967800827851425308842299127877941380243801091456143308935767142726271604229345499848649324343789031993974152063264864678544872249629979404996423867741276300236360184323021661945453132221310501232770578939197829006744538656980687781660447486869259911145843174068309454177825961462558468143563304825304186379072634338853579151047180229018438162017736090286133898183557934086755495772460384694130447960799012743235473093675852352254422512463954887722423051153010458171736525171918009438543473539681545253773455883826354012132881081858428343016345487821569254662801298828748615425090174217324705022245874175456394352602807211147961929056091842927866777051584109891626627531683880766649614330502935981646718426200076062811627675350450705763688116477038916690986314420563988303057585774242809232108686354747619794950349237119123826571679269636630868422046903892891166343448641942524925493607136000630444417523727816492577125221545482219565356718104843918426250948921761508709811893273124992131603468811056765642529381201856026805787007041866715228715672855171378623542633168391747551157162702694518379287209350449319278708951174476793880932958214756227160438057146231758150102103640956703999846854559700752973778918860301959647478821946567857382081994700511988541335391215780041980332101993402822382676564897876810016327164099918790575953735961693655797355091999099991158096765205530288173869947513315772822664641484770107772065462863135421193235255110454279386195203004065374258870794609156827240049413017884847549816798675627858908396826418539336557289895109274380672575192572829484597048655368085301495157966797041768948437520194781377068377105121033636991013508696736928357633865541188600188222099951779028469121527924423625266651094355776466669706307969640354601171827745687662034407054954491667588044188075396300954969714849163370273329524874430210981291307001376175462489630695984807961199294505572741384866370606261167874977881863098525296101266858933279216942353199188193400981537144782545251437205488063989553456644146632988365264582592012489380670314034391455359375941867762870981065711506196113582573598338919928016458778052606972928110115462936270864204649355887258915832683102720689184218772731427222299537704995298307608923978900205542209368600623044690760692646308070803006547191548235695075805874869010501442867344861567281257372738126159435936839097093732861039310724148037595765042989701176476422896241291602295590278111799099414906319052582603092282854920194260224382131793733145362619534259765904720399740333613250444754039855935369993108649510725752254837911883214852513297825945341543845731114880776095116068282239405686064184906134554156506517089087126167719417899520805060416725000909839365321759166964255306274836500052873943738524994184283538040266342967803769452960191610008940629382891025817330674748544143057242191384148191594373220024206909244873847632270088759424749147007884857453710237371828897291899796343432774148418129009694519431935653539959859699774827260880045522630450344282047315820384640703626036498236988602885791726931194700824870462048691646321975289490248400183043059812399524715102530470006711403350122330175198893928201861232882271122978902307232113543315724620027928558690918566843470134543230461420251448568262986596393776430171344759870716612265206962747985162515606574901452038215227424587781076871201149284777950069947941314232375508728717439899046257085835642964954327147627823214013669041524088249300470928115187920063686456426445594257514108983551777319935196819708116383662156579864595529424200328930391838390215272403756292604176925494361756596044770330144311003954600052731985613677618453934094623942266925010358381866797966717862782638890979937997418242943101667768116489559916924585900529110826255491826066380500767078641185135723207850849176108632247571758736812176809672636956110357245242751305637386580787731459475015088244975255550143203012918034896970592782390432454818060130784623428812415362175453297764832003900807284863059287420421763967455681276201428444456227705071596982885400420962891970065107758682341240152493267449943763723139521441685821198657884280955992124429388758305747035118691364051478119733980126385339418495542282523953603075848521457769135450260368722812406676707234341814105318084771544215442544227040217042045629996959740843634688632418930042853730456796371331559554242207569435840677987208731869981045954839515668465184020454389343708881324726232139458638076187591158753570324128567984659225707352258377175079800064755554189024656007938468154550840673839811763575645425942729737000238513994759123647441312172848724772614290097720275962894214326038927125834488944632126919183693189404216467567620874132143883385571460567685606279736620493085884645660272927971651930376252644061738942192993166087504011126210481903457836409644629710711442778049294037571334222710046899456942213426791901118505798488528964139671349845431935270734596116155300113828786520350001008199562003515208387037454572356650573646668262618177243272117247568259960797953825561095148168748093947033041403063947525991875029655308387031452391630232123991193005982901140618646672578771130278612781420901988234350592740087382374322732361711303691252062350426432428990791365330277910833935822102627458755039906086288144121865409860094482903006485179520458447892252350866751834507071265285065605279113206620231392052491527352624845203625288495071792934103662461926737007844980835012217313350985813556744733592119749884311367403204809701119063775029835157515823031050997897564844321211591644170241418492628200735792340845783131267051298066472131694422885637636155906576368103642364762674518845191972262831431290690076097114523509814795947492347121869191028295837868672736396656232858301623382063857925549766547435143714044453308022479227511210312359728181469543447521803136405380052456356009670300777387698229895246410805467910092353812045024901412700198650165145559288682967192580131647564618357349176972291696463174563695173421386332127342908609933858771607695225455407513068220649566191332385447644184826627613795291368660206292983512200644271732046905525343504297243968109818019128093568787036999225995254037339184285984451941145081860991537864719228600788644045846989713585149430577552761678122991034582221980215497825190721639376726030031637548758774683501773637665310450655258508028463159241684694241192716124504739944714953602220983070439218623431234014266676192681849183918235648731932512918348280452344103825955281415344892179037724534684612818425434718678668344520272232573142023758092295258064761264621592331338243371475339213630583977789052611923851122778429755336715650802475508185654340234063395292845865035027239627932670228923781435839756107200777212909235705993720162693614245828381808174739631970808930626788364671665990469538656684581988642181516805027150371809789158156461321700391476590240732467793687297455246273345643361757280104680155830336007494262386764283082450018343094120324482035624838726135372520037090490562153444900081194146878360424079371480225888741804151732609787807720571092183204630569368131481715800345595095474463634649369825953003548608469714261065295527250001770087389685979489330081516443249747781392904548029322342046506243414666772672224327414948964233955167651786393001480494830242837904520704878212913842547161806855981579585923784002635308034098981446565665570282552625773836428544784147054812529247124806128934182095661251378368325349093328356803472051263863170843494373821752609659665849787215230121517671039255198743756530623557622455249682033664389626049524642185098334691114108072011833239370336848149877345527552316663348052735543232498294504677784541659646424275843414773570677774221572867950547168712472439135965412927927119867174796153260112920683816165993129910575392393527885697421894024713657221133249226064565508665220647580262507577691954667517750101715925822259568282518519984698163935257488468599171341163229410306657429983432877334361766392270258564095191843429001267966013318667656069646318810935982511009162510036497270057720137534782571559850619005166543562070578455848507064979636848557863733731666822932385204200579106487403230491549906008072638229483884408144286350509646910222481543840396167214365264849166243517916501406029409808393459718060917344881251353865394787335585419646242863288046020894961609975824579379025856623039217025942276048512393418891350185952620915460194304612271450824210571932475380566785702447706715495793483582599996051766206630785794509494574876953988788884232602669600629553037999808849663237681312827659997060097966387529232214896267478982176992808216778640317392401673872338759166654580187894473861635151715762546420867653510840751963292176412593744506188555606801620844604017088899911592585284212315878374659635582951871331312845727161593520569276571423732032267524968559631352199004762783227640102943161022362801758187626036693555632993874741276302604082381585252008005677403786153087178719810835600466634853043758256979483884796696809964347821764097888842432130748896642007350520012846181613818632795786220956915274176311928447604736898995845918926114395462561305285002823888931583122404037766394067952319528573422704893083493139429895438496727514671710402485616229172578780058554201095045567028992790990564961487246400570461623966443826927664172840699274396903693834718565949704968699526855849623573647392528229179045241063427318127025773683750214276707591939325353027846679322824171185357430873254560393090350927454144614899302886793310583844608991634616126282716559327061485057216312859570237436532979955376663006535527665467676614369210199334985313560258655291718187935549706122981884766392452141013763856090132563695125982772955807360254291247420806709225190253146664341329539003595275074596904979476519344179945868754375328823912158740611566404357926253818167016169679029688829343693297237310245605524454863331242542970699127751755663556565508926337036489129817051877104715303554703122623273459860644349135514864446018050579083067675389396331744383483918359714178922644676923349494993952405401240861792146339184863643712970546049500983396237830414521838612398650138691896897365676516926829842861413684821605917725330017620264774538733151253395438402425596223141238826595111431436598202409609059567717952051004307454386054253787300143462960064874241483905393349630739220314654489104885222597232856482377872322705343894963964097372132894914155108520967056673277582922059672718013691073726705351428891012952885845072937765366432461227394060507710857846505882446135029980838574200444692207523139767510399250919382444936330103887312397149304078525907444598696552246743436716342493068244239642851235182469806970249887656183314404335133643373022267029934565770940399384380022833504353916086193739079226841994226198931347878559107276294400969693445479206417515485823678115375254125251218877404769343553841299217763489581794507163117784284189337672971668530418102001359800521180498762338999108033017438543216950205065298714283881856791302178505189481876075975364040503371511908828728978681701710657676008722777040241652775335204397821724448581403593540460438839057975705501591193384166107372566405712230857459743485408265137597764848411610100330854796287801116961965943643287434008422803140051761306528287336199335693842628301092550153353243460741233788749574815942436083958747216594611453482026566525491564729116317215178048043528316065620383417033400625407838537947984307713177347130149868315231811183054621720422997021823623691689435620903754253649955348359674498989854265431934960121327766026032276782751114033942751353037543877260104300980276146341953348110339895824938473771983327693791629812006459904358536698815214448777831699291252983460622946172927276231479427701325604691940859536659665303311126472572856871481265862251145668241791678300470840866572369511864979135365405518870702801673966638494922032768270835135264323947908525520240398347226642759184728434514652428604313109765094353763432205642619728144184264652402260867414074141033169548964409860021519020777519955361167800944038291742048237973980449349863084480615379746421105163608597210220619050470025913554479902034014703265829624188340250262815365515594671236333766571065053315599946754311921888897631879613286674064468300327540242244828827682277463725776355870591011097606257070481268334531416770657270040244755516082087455682839473767385924255625231875145559706451662385914036811993723215317719879784232962436830936780083139669623460587627869736620904403153937202690825859887583268483502161866980834984540667050133701126609158112987702858616244692293917396015400294261585773503054748488939340917659159701467464937112772218923552226990761339562030602632288710850279182244791610446067734145840427525319944896800735921583280204015443778827020142746291844086774627688869563168653243132828122390111354662680337297815877047019448758074095878613523403595945326715849005891370664079809908493434808360932003762753571553061333031116219304628150820222050048019629059897208382379301813885460960813988066395882206102194798799084750538814402951924803998718136375274117345717984971066407415695922607561282189480565729723297731841826088335668665686936981695864718960731948939028406039963745776198318442466361196297914500821256121047403921218246273208222764030376681234259246366131346555537896837873484820361452434624151634400194239267039854076306875343551517548630472920693131285582295110619863519175814334845796288021961185357643323398852993123898848873270901341117748141790632824928595930515432838632789841478482347925434584014011003360428727732223258192922996642728662857829363241500776645035046758334251319626750886436709958148169821968080404254727526412291492912024915648186777360040707410474661649586328134443718817069948369551018663642939410746427341560485640445614098856049904390960355187148002811988453808932344031840765713364430499959341456539133837365420657458461741665333878624738931937917678778586384792653334431939434996495553844380838858822637139177143883200078585476479846181392347506177395265212491020721936209503653938964112548225653669702919955617839980340894316723445831682998407191661749986455144660019761214740503188620847970088104513033992547512603885812717110455845631639709470676799966934052630668057590854097019772451324730314028160796641437033557195062373423772168437298737060091334744074006867098623576341105636557641819712709785252728777604109060811177992796064892479484330515661279039755667743576802389306624952449759022475621156182238295991137177584368985018547662113111845612730296282547739796803517253229236215755124244785218807052212357732422057239033181432777752386376316844189124188441475481383256846154117860109167706063407886984913386341621891512347279757186461420880596519301383804773903290908823416413909667509545894046505078507343321974452971751514026807722957873851820543778224127626997168547455195162937875420164199587119581753298752175246276546827818680396647466838997588500023812316029610429926062657833621322819385969352509454879545198114335635174542628126669720578244435200635818911922151001332728060789197853232129992566606159158691737148009061544458741615279784735255743277573030051473657528881223311897706840128178562652984088863038643658231836694614704294994097696856096574072557176306961797617194113791694351208245772579207211034489874001045931866041181265025099798573497259781384235872638856289316810621770589746328693721474457615509236642736097955419563112118770327571563928519979543392816219502379173265125972840877098189909781626255553674451324662566367654683656449825150812858465343580607408686122807629716673216754177469638531446892055244018401362274585744805553359783810644207512187976876264456613480238281865134541061370649194532202451724069985174001349191138314138117966803353940831684088735316153913678907602377352877276130650047334462103113700075644178982527371306840045637356919443699983717946899131399330577579287320867100787093601966475723930037628163162409518406009113675083993210705115366631667817794559985376595929848352669568595502936348749439775205621828410116169918315381466435139907567868173998408000476949498899522327386649273364262205198996856586403483148687893312364592018002016441300818651744648981491990517112045447275985034804910861987331160721199787059174226276225026229623214795007323254774418585934176764203495917178191606949248803397395067406573079359778435372653629963854713606671722834558829294775504282501431797317338081028897136525100078362083895687175256752849928129118899791774425970239947083647384133003493426324040462949031336708761207551596908326618516587577927296640089959507832486833982306869908786425601665493297333740154884809846459933782621900659563979351163137247686448818959921516929822837092439497513850705111797879902775246048428139576851593542547929369578193705213156786302023568979631817009432718417818096452163091058498204038976019262755515743373244052472780060966167789595847178470344997732167711961258018660988839453430863868176102104890120648222205380076552504039266549085956942150336680977989818485681738367185644860749392459775184544423239963367192676171700120079025994862616976215841373868960290944008488847576781655157010609194934290540642475517771229264151634290608461392740495061267522365190468010854014783457943687924625744040545780918894493424993555755693200414260573361521115192522180007819130471096436456464642754290249103687979261335535233127957209686589744756316218888607686496494277930792758468558225879948524944971475796867389751634398731606609039779027979079283611501802902333864189656580052338461142873519661776327080454022726291016991496748083977550533837113144548204853343469842840814460838900979090952786134330651206473888914446905406867022585153819480851831286077856891427941247408187141919491647982638519622446589170612927694659624744669168742064051974567035958105197273712445835646134399663098195526999279584063451039483466966798308603847078385017223960475652637153823642508192440576748493316565160167312162359361718603447141230652640151307711800596196763085553663476085415971724248540836816665499940518379144473998013379147427978190789768928172887376648855663823688740374659347455259616463746185127812742828710732588357712075647677915480185310529111856851807898604019065384063854749818647919210985542101718986185271037300643437137984384407150887058174304049179160131804054342135528074857586906449140273818331096813131193157333255462772348382979383453324120684682033083390191595020311209858911166309896345494028114073228019101482832842231621172372509941257709222688960149291030847996619998369225213289850163086164408747125332276536711821359420531633395088578280672414193505629278725665052851672149887573118833755731446983598736979112929692262344355710453761395862616042134589496756702565754913336506483240745476937568265626703946549879284504266094482323337047805886596229431879300051612080525893043392108027307013933377846478782120086425958856496634929321725804066956964200576658569874726181682419176440916373097086723743349052989915339590716307333126892741007627252705244944539720708295293586743122014079719806452236583321454353650401190824326453074354052229873414825593642413902361469296076343220885416949488902325989551662578400138470376857321478362187350412179412771476366721502095468513542566005037734307645386903681254805320590324301072033814829061519657685632214650957420992396404432053261331151515807277740178006157711403637964271180823602888085280128657430941026462326457774591333810628072479930848296526631014127835582443306664384519280491786665378400384895382456016400681933712406512850311688450542833795242092883265675174887374375736009323841592071504253653965640712710540851826513550860106762973294838391444804078108448724761017213874515922665511536215953767038577937660410707883102530349482763117708120577079569554305947903394654289212014349508461973442243081289078994407424264462475896571076918749022241457480202595412037125745235022241794929781004587558860935512379554474010061853934463313107014789857491042496605768465890008305236296289785595424420619553662095635513674216959734192704838906998229215563535223940970739342545663771675146019823996895716145117299543686865815613249251227062967266811532818188193440091424613429447163789794233803805818977756344391200867792487811278227818482607516185538363614913268126122836178158664639815852496771115383031380795016952101845268686857213575433869468593433038269937287774166803413373911758577271995057713261512154537061281477038552835484664931909661198962264788558751131485666340955074268701510453365134920087518368247682448141244906951890125996454099653336590371249069770473761507412118795070168137102023151005370332106766447818394299734569334404270805091892258558658085144763439324220809682204888799973192126600677324210245553865894070047912814057353599048587484374307460141576765617869677700616651183655221484301471177830736154705079789956938109324071580736765255969356447887259595360506039918238873456987455718140204405259490208843962469437916718827132219637434207217222747808482445548051187563374274684042044448709665294590130042444086169785476951868670862372603676337567451560816568353381217873862217630415696421714004098087395219386629951644990066930977087985811182198240853288753647451180380005701277227351493622276902321083351934152434138367418168017662057186224801017153190653697972033398196066360018166525076660412881373093207208396265655546016426810030170834592835354755260084647620762708498485026645496734579351036318790025957610203648526158809359205547483105973152461578248869959139352204763302495969872274788683530830970625253495282572476870840070595072651262725801299663645722287000092932760501090977553000583185021614662999573487973855467353075198334177154221923378269840798959407079284849322066900994413869149397579105786835342879598420611289920454543756051008299839004466520556708906112521731886519271751526677956639871769910779568648501960641362073181137131744998582992346569298059436021588844526672450444394545715666588338242899139327775188128741292538348170344588350577818280706913088557639869812542640187512597164920417751238158137708174817760981729179866374946892291965933150421655696223587225004181477919941688706045036375071273273204177699453173655543263019525647483405072325076932067895893243511244400406196088993916634708074447876580326900350707349805334116672252784676304209578837857645283259050123530823359540784442947590561391850816908239222958070850116314015192004302359512247668825054343278082987579228572390465592826566695208335745183419301835486802610088925488122162659083044768526992146542631391597007966357022532473603695966250691960986163080256722361821596882999529183234093063120191740779909713168127331614791007624693513732540336638222200139461206132897310550974093958429777161373434672987204950929340951210603792132445353561561757423543017922871863994191540603462000608117697492628530909586732555007646421520510765395343345056970390886509313038825853359676323406911286945821353436801972823314001247393953775747857913049580345626593249695716068795173129375023827193464277242117955756773587997638255258728634044526813040515026328169867630959551625601910617389319419487760383430059912315476382728593434307422056099656046887574627636728061216059330545958053689948035306437140097903925640723819179499846025846471187756569629302159968272529902523770149911424638490384712019670226752134235174598681786465554208246812375593242085956422684739731499819849589973916598162155669226942443204262817297862565834243261689224801296280406402979437187143392242672195218654871814972788164979644670385675595440148742852843655322908848535550500459742316819221993924627399067970652329427973680928955862287587426084203944467610756508357727873609198246699632199416743402092910606019504058401980801038259437970270057670950684425667385092115185449353408903346807410028138379259214845157604888904013519868643134870363636500077244896797336998908153231534235579718796823597897458983793638682287807339476185286193362738098650145851693923782101784597998738176054737482437853291926512840413924503029778392563704887496156555292505046560982813035296437175907517145256446806569008601992654188425139913132621915729939867727005305943635120084914542471388517219385566356577958536451196429801779108571004939984063677117632508742334464226647347053460211107196695482484842748497374444504359263430193031072807969825044504610662556912764058950911531089084756814726396376949370891434513279760827120669719421393586407804033537108848973285827035964618311244413789326401236277860056552703259787024481856678767301056029521720825786991679509562149733110476684166567275901768807498948315989981586495605170960812156836428186544817809957605072529087990907342864637684181077029279572644805470378927882600294424392058618062136996742209364876908351692094778407677979420153029998693257038568105518570372606601177103884278207225929882689150481826311334789919036109241055674759951518390361290066535842053974379132702067383713657486450366866262069373505615440051773770302122752614531954960674467811382674712487631785515178752701469409010923448071294820647011502889668960950160745535664579008624342968729006876430429074483453401760483318803039709136772703463373522379621903709962884997963947394709777083072037282187830359761372565470417063968839323524824973738367104256612454062345256492210788792440794191674908050944330812840535968578029414016277912379347614394230817467661612795740042596617056609755943042532199277447490844951784250243377136766921447642714549794858721133533313944099707385600502229713389870833293796324779081202078012410868783771825188777187532731720541583595619033390996159676253476371732429066531163514694548105447692410226335904401110553756333188869238857638627723745860252304169833390449947264505406015764682206994849515993828717260130834581881405188936460195325504995306046820010496808676224010795951514669876775359519406893064469702776461350901692368687040274795164310957391895974993958106106268698108751344834324033915026961033646913675659280557527466461773348874004714580779818903996223395449114463062010047786963600338220904903211728766974510462746762649115996542057377665302392098384631962827769562065796144960111195786380090052325060324460371392703351257977705554389132703538900146795588474194937543456709355958032248466775078933586534376696572869433126775413256228880579882188576756870353569752184905063723946936579458172182329448587061601287560925067525732264998925995757136741831472820924681709460085542374099273649570886519844765622438887233868786744670132317947096357311531387267331960471867119445255806152541527755404102747337888513363231741336380742007171262981280909980192166509855823952537621619877938074366734847054288843930505124862818139067726112649865197978337430490364735213322497660280975995850446405766886502698693342778541897157889016931091520653556321191038190608106622691671114197632601654968174437621536197449758989055680440212211779621395948327847646420230926871136249516502813341751880295348434545467642706728477782914600472915681505381403884792236559469105486648167510225784809749001186558982276236064876579977028811476788772181251476379098473122275525382741805035820318595469733757240424556774509822326956935576097888364846049450512269188979162290510119763646667151841591968722830347829833104186671450834929552725499272404758273132836782744167186242005213078950214208183573616142706904008181425428935475348638456137083830052620244931129122668198409749686566944727628404135769101973234059222219783355729243384775621442576085880571187671011686467695654736644618055543630431729240418736689170511473457809078287774199600704775875495161139899908765169032091716086262795035809125147640418151153916995379407632949518061568054980004820602038280593099359941673962553721591860627098982777891198197984628953111346675615860914133609238249493710844390793624492341456464545216645621285207933065949377147435714541153667996566782099150343955085861305907893213364419503248003691085002854822285221602346116195400804283262142272912463141121841181947646955204295167295336212772811255362512688966383749296593994847745038188830758411327899977430130699175130217749371658464808673794481695349085599039202596396626012682714337358197396614132193488393975834685615025550715151483667835155944153651588304662435693341189455816687127776581207661438751188340140839511008484225515434606781263880232182515165118845445933771899163543590591642649959534404276252121553931056244713321664195004152089755925676470193914043062495503056209307396746242656552592242094569081341064263081239183779134989803108431849921644127151479204504798041385849958178827704138184914821297713934090896370205966284498562973633417819155149129716975822885523805988923609803322022950991780414298624264577878967634631314528779037459796399371720965280696417404611286704611645857868250783695988445195827554833404079660061151581745578710761658695190653999359491964638307590763543403681828194526427029418822910541291817276663455247037832537401987820494153561685073863310429634530915327719256735837921383541669434001962009675543320096132542533043426874468039455865206552204377544307455740027760297156705456274219038105023522406484902572164943463692611619003650605545584322937780037095822240342696779874557083954329763563762409527547391038159137464294499889364110023204978563367103196069673243907656841975723745716663347480292781711157928915493236910287592178025048379859472058777556500737320289987988435827680472330389850581319465681316021391411134673915099313263975590128313500440871929392386247966924723368192199627159539452595101147160837449714516917854052700170501282533197822446813672429623811122671310496221150343805344886594835451598872606968205522253831254120131399002389438781521102075063851997651944114436279222710668205382787760212809936138400646451482872256371559093209776119641262157242091761311178709150673952714729953060960357031560164090822138531485735881858663824445889134167980567905789267682730603750157005399945912435960460104484897896469296674375256154043789699306680313309679261909229018398413999851301932817945647458818356516568232038972081018154628715094046213935480484016184432310421351309310205516566292846542488681541533100464333897623132796042007072159965675246813713776563510493284363975347512683134282923908553033640964777176398270215974075288570155607197278805042566945270551981383412769154516440779543125330942942529856353400180428868788386029719317157682262621203184933698819116426087118458989709817113511365565657238893161676801780023862270643715956327600160783120573458442126345524587919663358046110098152750443591839142749917039361250937249557238593941196936436415214924476311273445402758485977792620275696596746067884088091204116784728821682680894918738710471888481827844449853840556790585737322880635120238886824127889665007951869524257804014387112383503998540552898949166152924003328835533244324979917647409729134337580351566292848306956459276090432236660378206533222838505694666424489517487346416211565728548810470142385968632189666900375423019486832465979108641383053256822823259485759160476799882579478434283993134975074343544875637759563147191451714949396575543998622341993632574352071118471813365976652683685791948991474553209185408819109852867355212099597119822591318599601746637735833496238186021802314421912063756627145914458387475772526859203100039637339546087792096286400019425821569221592575567231325660659932057457545720557322566774210071715114362454019863379830298442123051958336241808470080010302801688647933858885939579135362467132536543455442800129110996084219900527583528943453406688377611759020966692740646661115946592011079201273622939351286883396864948964455820252690957224479494609434363430661034976364067358368869066972938430386967512455304093299862683409562751135045653052888952837233566748544666145141353068308836046880574027425204063191235885057865336312876753121920773349711144593440221688059869104903667408640095042673953631662628641531753289368578909078631453665155416894680999703603361203157411810038456968505155944722623911270593185365471040572086335619579514342152826721155511333989745007644352253495644696160274417021521234807358404648456445251241420596324965130270854145781126753244467146393490445486163283117230189183471138724290152027348367203680746708717998711363174050324535106277598421154352983806189988495104477805586167555684771559145483090530906634932796471839778886605224133855568618594170820795033963769696392836385691411407721722786093383455515818308095844495395693555046134227127836193184467536732218745496433007627125851108816961686892700470837037659742246473163864556795089340091511903186446541652042139697547622425082248235833413063875838638478426315412373412273550106612187828890701507462947695568245004205567341620787370947416870579351332203806659825503958023916395203488590347966826342923975210949287903761784944104068517948608570964111130909358625768698042087771141003134787028681996148528949871030553557309297206300609141190368790340840302684031328482766499952187554990009391865215145202277059279271923947502576760322634174403674083032925597847033888768440729129917172384582497399992482818480960184037070794281765130019537588768660190700263136874099881233835168488506266392488352898560926195798925868028373048828952719945136389899358325536993788540703782958498974400136770232048061799420837166603957460754131071430839022713319974142562072187771392807704273425806717326904331773234664147116915963499151801120428892841407401198273883330017308879310718345781391945626241864265762200097004741897611791554944481791978296170486211209753177906488282613177683698730202990444815379316969160237159269098066788152318604824083227940863228758087382413957292697110354253138910298038665600612723666066247536168002469547685941191018214449682147545737826976556525486073867339234878449860641761902926820716261628299038493261403030292673991287328889077871622958661909390399613024115333531517679135926608885609677642590251100441846215035628075823005505349852655570855647976189096641568950534590690138327024804271855111895861202960098196201035272769251658698841532965139045215358377865024705532074774570278531443625464591616790919261104487096710948255245728970145538984221791205169731460320085067076462718483563946076795125044334277524132622959717352525880720215807824389005091362340455974244965542009470896089253285503230608776891667498272761741190515925356661267278242716228289051544813962269362343177576169618943250800019935438080368977516178201300270020646138830856631385847512913529698702334344104046760388429229558433893742288004220042231067091700433340177892654574309412833841783326810311439258994630647525333346222009988836770453620228701405549152255746165679083258435900265877426435944518571338166629723803640796210786997066140738939253363009674362740572367442213535447940576185923337512357555114140747494733300733045648200714257526553390906053562684896990614397575632832052900551198610622054785807832221265885534319362805615865412202372501224783820262444931978215834198400199229278095198308921417510041164165422741256062327680586941626975558649109712548431751623458096211057448550571232829234091445560122504009780928282838519957449201154381303622833599763608424171965849047809609194597485430542791023744792416836141412722876306111202917632174879549263043748290217952052131190195740340338857387610739476016526223617129730627878500813906416625714532381618705173716761297285859142007389186507291531015859933098311137498771347322449625880072051879333558216482236315295589617048986941354113188241941374602428671874215239017551528147027474873205861454940978451991516459898508313721836970889522611795640573285311356120250531597157365554450340890342608420767173364676200215874121796503427642487924838342357097607861523966822254423521720673812926843783752799348423522013006998324798713702910076380574798133284419105323400382768807300688978053691545856689183430674256259503650712075158966008251361284370232223347495430213910393692000099461368757644952889837487655687142407738425075942849141045036374848291464696475580901238259896389139355234163956422953766939448035751804862768584350999614372115153606704293039425583583925573086230497223409383361153054597509244338151003094052526917233100073307860638304342858550430262667777715740997711875402798289187784531319829726827044212532630074404906645962157054889728714656186439030251454387182869179137383132238617637377585985617320279993921240115894456929942887202298294560856103441652505243668260339568755745569211322861289148256512491840051125709686022154548689867554320582836583869597089418745743984565801323185063819232960249089292183099049041882808136892220357036002274778497001346449117809416110802445259253855569489893038927039535513821895895635690826701634789960069390721021498908509864526447576193056693707161011589900052229604674813772015202156093342304203022047045625246595199726735875244369905563394695248464099096861958251930810069805171029860879297927033812394212643485187748172725559263390825812100657626786948884078628953130908242538262685381209156172700144585684401704516643520709785973180220625157354232852751862927675788151400888790086386410861897534497721913059075582270691896577962174032831177137998956051017738140479747431850906957352018747860222069481754267441326871489400905184606289933957268087550617718451879198160651977399738323601801557155418799164655018499232368242327362266526289556770974386568318157265111901840651948306481820913758495742644986285912722295338384763289002094269402611733747800940775142539794339553710466535506345346232446531314799767411935546637359385526743733281504535359103836596740829884098162467249775400630513528270036466083845783523098811913995864001095442948728148829022331964987142338856271244639629569273638265136862627146926748519737940119913763249312291098262386242956207216511741445487258072663018865443148412019971282322169850816402933243886960364681129393217280504588922863273633713083984850982615247328442019449503615188523291950595758731266484296117107360895267114532968113644581752140811552285911907064433531829221072233451595376029356955702378014247183138206745775104524631903264522733543215089352603452792630810527235888055561748742328063156695790488126620373452984054597604233851723232889679653267650747314480011859546342802897768819506065917812427501806686131111047768849130470762478041542095856777602518659021540062820997978265809350712893785836164325563422744371131546915419423038822845325718438302481240434857536355877561610543723693689820359781003168358876219577323473294290048567433966341561926190430991200108219731522463900732097986840028727371126689625868390427518535839515712335268815430389438934612525710530693389906205217105747607744332970284272479914377448931901699629211076072524178457888253699596366342782827584091228830504310750836403393348717054873028387340837303926874069028727347747919595698785971823021305515139507586283201923649868293525939057195276176202728413036818260731993302410676110803886123448288756038959112863471943654953022332176559530506035757132019917198602205834419213136563804042603207530772507402659069664751011020755827737375559256126364555481195643659757054687988203187777867298055225702452915271457915502234349025734252961231234380581262465854978513766206218024646023094016681821512061232603088608886151808436946475327986714058272282762053201079702270671243803645585261595735015801579858293013532949849262968209931163675288166163332180631794335476863607975862461925201499291576481417680029498621093942235358037563694710198302131258953039731893278369414409563426005384331023997140186545321524223149878173107075488582144317432410846990090809969712954014839986676090499731101351475937972243762835244846336870496582093354219255464517260156618589162042798370712373232291089847578116573667362871010849019786114272483659857187483038962334119633527538693117484868498705143845905235563767341754633120012193483998031371578783232933949343416033631334031410946448585335663762634139185202797649529277070233771637507463679498746808369446844095793536730312082175570624564575933724038630366235381302616696419584678444236390322845800795654108809848830467008221104290340203816313191099475899312566331087165112896837318852264273354358343392030029166106996504219602395376390598368890997740089822735485573601943812199627602507690822996692631169315761576111086839281688679895999013583925491252143445666391153119885911617179729349461022462205532288007752415382949753173137264863190623762799877645540734370208940321363145649460192362405613136538605024481069425511245528778790263889018283095446063187509723118612499544639456303106352968822010015893924835344696812130690949083718820489096326630056536204041303298667345295431691457958633845437131370252494337751059171871517519060100844500353697907805080175750846563050239483645694327057396647917760760099946553985243529752754900462588246939911927475258121466051966253248320286675883175419284118017702943439380136910013016028789874778771212689713318680676868874476917446811903221311014390395808268750348099566608863558083100938603433015847661755196814888522896148504149282374381496307347719572554198573687000791621135627954298093304281230198301555352985476713906416359310591474174064416380308506823306542871339740056686629569467195407221245465067270297077166505186031807032513410489401761450143990947735497506936127706068536142589639239218726887577805253459438491377599034536939467202691393671455447360256112923439845955795157305019397854537237758387716250206944487230924456764201953292085427380566639009550487159976841404503627636749900214603362309005495930371846180962127792866050571039102178678247653067076994227202344982143292010143471790211916187316129880684933253556081211672608903685737218831391131738976959511459947188225343749397161408665874317597171061856105698159489573321418846866194565568948852607071792916759995069051214331692855740812338377007278361412587713616885696319175368141458009979482837344380278268905562358764376894429456330639218003959665022690539444837475259441374972438486224049135157870236592095940559308466356082863404626040040425048771225151430211836457492595597887944089412234397468174575272639053148142309876264793944645172553214292005236915180557126460770794026851774818790670210026648073941299322001401806002227286728735638177097145813511266689235880101622099068008999155740653975054513891511026072726737311726148544928602300416595072006197080328096341077431120458073339941900186441328234986696830438210698708413478816395938613570409941845567239769029559437837648586801536690170153923917970444436450480600347518855028603380596744839954880000707857039134086592916608550337301860007421787678157319946882468532709778296820678596178985184899251793834416623851951102223563433744229725122215993800730954575556688004313518467809922684391144466865534900386096470575160912107811327575560187426182792015751392923201444741325263237142014352182012895872020623548832512181229369856521219576059220644409712296219095629289790689162287001499752388606297539869116160591550929963925239614468049640445553291987371760232617226433869700596310942468353748979168491863651109388201506859677789007397711796923133424752733860087036453075209220744643923854162040858721768624646254788536420475523343386153639829419496389258708733130682935118198128885605162238872933541490799952747542150598689332443669198459061525473113291164642147621630082133276202916365338400241207403201919283631098284507598842611970834667959376754835043079150784292522281102573420744507118491153253093663537480290670392151047188239503461781098829746108507954442709316495862438458904273467991603352125917959087545689307484279768018828300503816308226776705593727323556996262186836956336533687990912844259930876003431609826861092637695038565928857515863765836494584380999264042642634005388963145129757774128006126686769338776555314254944150068237876619912594399782911643837632305193616788372329925528319037180695661057717779923854171668044090015521887168181821666704758733645442918484101665141251802685838444437309126923883367704344271022765409327019327269362571070657419460666375371547773327690715669353707270282540989423652147778633836487935207292898961124710597369938735226696361897900278823019171814247736733021676332394106219565521029275125667281623010151278432520748042679985810016330261611264007048230388276577343686302435562835859971108949329963230904074075352021375348773297676509534828712778462546191279775123821011336013372281411929983293280194222326248075207610833770516390113859091681813344290381654355426038886172690317909936878334520516861000852128540293613629954064339195795086853560267498872680589927956270254880716365663940261460936910939240933920185581675898620088773606851930933660248423580672453764167498818672206135429906661318696075255757104904436090286544991482227154089359132743608408341574350374021156326325606084624583602126296927866664012327685038576739607992226756401477236183473980422684747512631764118869861404418862849559934410670089676434361803695559328353297013899780162886859315282312267093446477118490091432386923751515527897352784630198183622071548702345402104587176749002122464024691709617700777439164166448282022197716431794432486468670258449120587040122443551371405723526147910847896510667234663682217985241780919784339631518826242929281878640065305411359424859679293772352901773787105609090590840616037204924841000220805379695818078506010339666602868225011102955086832411297754279221530884670956994935657185729796105220937081177699250401049454008770006189529371217934485473947358660617787457287796493936608495748825779804001277662228277930235269854027717167941568432880908617763903941330289250525745282185956047433915833499554073878710555756920299526105727694649805413889287522454811215574829117232693399118267932585606175291370598438882496006197767008634322287198052447222359439496130970499879210382473209233415586073442560952865141760481966509787956540744462781956667236887179783509758360313716563901825680612488663389394050149170739550148139579503961174011691788714587174272967230459043482547858906751992806049623256022564485774136417692863939398959318568259192064340458448238526028558603730473906567330283352496639238240818625296140358128448845726547104501664321286059137387494281623534196006351291920896876763824937946021319126318121208574217434855660413184577978046768022579704027839436139217993818428483322291391070046844654331081551646933568088839424525954901112925336563285582139902995840413207184510928358681362721399478967694263829220771964560694038202535902664972948621566830215823786457221080546305263896869059483270685507690661263928917704367836946490231269427736173462302855095485949434534741845431756167132287582431271007271236898840537369254392679073806302183822195381020765162164512491020840143101246758601183038021157038423549801468405672366708365847650424633987244602380846484997071037810976746525044451977763950973329504983347222478144104072578223086660031689447230136175521246369468273126451764830618457810540689555453369118304747694125015295113884307650855480351135642211173967446389944863602453049962623472217585408246075017135461419552851928199924798771890025487438052108962859984632266833604520835175138065014067741378942175751366977888663210789505865119189621061277693437238049020854890513951540030464745285853510671549752047521928795384699027060102707573207227455914912582883905250127005578161248850989270997191723777364784914022110161440634440583665249397779347341338777301340292066036429612702789372171096800922560638315525237702432571296061322120720703119232066161270495279949864801232297223554663419103267117522998854043146888202903048542325433772433428116109832142969507108284687011096436035431273796071912805446327800711389825052105354866673253071886261229226474855746931063914910476209172325389435365363744220931660088276525958990033397242578884651175873017916416112812178192323861363426176422487273870047337145893544971318664101751532280879122856328251567025334624151216478781572310770967564718620489946759050517798280495648617252606328176382309769970399672284519339911336784715967652072357332700996764567287402462850088519586566079031550290077010762892253856668623265408344156876221960693005914051924202731806378794060955456501127782304550247902365969877657224356606919848377820714633556831994484125609603757521897926558987770366849194252862609871942331088912289617411106671776544837998594973834425964128808853627152111296728995109307582295299640262678399789099208566897624172028809821436175901841977563787598665330856236609944264851269614068669158879473435901699075381363706331262137148460510311924337199021901573367089132685736770770971229837521518253239987021089052253901033646815867482333057176273440024761129598412190763672185762178765322532244979482357330276767588831786161471711716073052316561294293616283012551365362805435541529970291338852748158954388915359850352206380173113279881939920802773694579617016862091201897011329248521139131681431031940187382170920012286428649002773918096450436017513955005325087545030102568108346206152707808601598182354361607838243958055052132542346103968700644145297076041928716511078230158575438424920976960158029314181867882678166637846731433559476149988830947305950901250606068459319608829538736469523961009893806267415920715964521056715925801310463634967142309411037650606644017501896110898185464035217885068763793475180334092719863819805701397167422423497895503483264697511472422687361499037015561110514079959634365624484798471122843197432841881819402675068014943083665152454479929571985761066888744005180910208730521401130526237422044247330490332323938286734736347633374619169634484110330706322584018893585359922548290761538806051274685241493933701565939281047066253839164815385842958045944199635452900707232103221020118951307559241866097264569213338349806567484461355779831729900058406337849122663354311511664808782144356874813397399537781740708532545635324844903699620160478299156555030253716219183039205772689189663282174256205940621415465169207944167129860742740407433536958627084941237771319603753277535975537919341098903524395844313087264922036789471939169370639352572650314810011427626883336068597569698751280811439329412953825253151291692332341535775580236986834377697968679171160386255836104629900185364499125304704395534216229651732667398436025033598682705040313536667008918676688888104895469296823339223913332700838482616330798287167242805264461013062675515315467829730580999907692051317694685579130408933496632237424015331272290719799805693217134344538076010641527647252041061510422033629634024220880548278304750561848643217743640250407150274231399894422120854703930779286822126142663064005297557997099333282543408311646432163100450232733055980450986953304348441116352203228984267237401431725473706301262391766689114081102440725267582799258778509779514238850901929417585116296197983584559377931684984180179869893101810914857872408544301185369830733823457245548589092848728405445066307428857864329345289623875655022017838228536476514687182406902196409866959939094727008617409612037980503407639387019155101344742109847485882908713274133400583243646028398115465461194756483259253447129290454072041631214967996887455557791914220678269711597844177940800801771838906648392560147022879923272771082109590734075260778728643193012155825193966554603220339550165798350261033438136027278649468219491987223586935037617050538747373874953619616529785147267194202645642972554902834785496030291185728844753793366154429013806508537941604325082324852305718699223886792170445811669775423837893130504351867981309145658873625152404464725368406862591944609822286222162649934489011925076545043895920991270503168354603216674694252415177769607683117475798036663920035589997397424110882058093727290537011534330481707281720969301549979673132817070534945828475659937019743598721079791612056846728055257523202340869531702558741325202166740704692646536191960054976246993352659258791645955411386628370488713129919012050142481948230960862751846446628408428643856330654537912863079017349511749630985703143565653584545257284180095962084272297019180531359490663775452810167942942734546107220321479031745459100028052920403992037616797353785215377941480779469350364645909282299457463613388728893531772130315508269521164732901145708803602784249506093034186705755474118049932263420885768046260957561655557087217097600411288679358612976337145243760373441155951124026991170435896327218776680116280962132288182743451515858622984009075579215433123202213759966135829870657671459729983698736918957305838522187629951508546533710295142933045518895226796741317521569906134062091986757111653229566732882469355026886785639982625467701672438607585188821959704998266264840458241425494550257031163378089395361466099808162528114272803773832382397880678256456962686934377711809561984262993753402002047952510285937059365692393254407836895648660649632617611445932364322764678693433290241393152112277310543042044512660401471070445820270394879153943513842974005802192323166912828105238074239831253562118149333518691151799360897324048170367954489892769964468310766592338339221632004285352898799376590283187067730068477275197070338663067708886222689346056338842959700962819217021471170629337288081850544713540851560323854599079244774499590765424291232012203112570792812920229281150884348515800508650725428305401692569937535195028575953098113102970267339087201240870224790055186675588372418664651256578944615324263321300007233787491619974960665821891601117678690048968381245250129187221722296009974961247026602792033212806373821650402817030836513757532275312022922830451693291298196501940436965783550973865511206261748824826594484991446332300213784579834834870848986403457290811306737820877026641361002225381258621556213429916513676792235113124026465127630220742247471723921943074712551710807264812683413132650972155175286286304700417700188302252375167774553474558479218468492907522832222820147450077012776072358125629523818807098028132651200433464466632663464392790816154148134426325769522551712250265597122125702043148936382471511369544954300090806798974180101869517563718384020967534944878790510894321826490854978252912343617886062109603341485284841784649594142764344093379922533298548395802879576998574605452646046732855244744275069302354391715677163739478827989174638603271740365617319339671243037208870182309261589572093477490459461191832851448585676840313832446626292106617911912727576632390965757895812654734260545617854802476113488137953107544947641026175573274684304171596374844437689985491878020097530821510650429737784450959053293085089950852270520642231791333781922309231503985663574045577712671923265693135063765439385307546161138070672051924178684548377961001856574623064526320101927515184844211490291670357287129116143782583463071804719855082574668460690225661751049190758545215191650354448121884347554928741144066157664695615190162262460505068591387688076854871872789788137709122457880557123351040374422464771510700181296071891056058885380752389499808782733400083522298485259016238307348613785187094819722101912946624692408219397845388329138929736309570561214143986429966833109176096917327162126454057705125206419901790118303074583324710188997418246428325389413777965798539210452459153404258471471855618198102156936395239024119875436972610609899209349882501055803704753282408642284279127156670746633042109892812588607162066413334750305338492386983522749930435432412429170274371488979187888378115758491360961636939029117212394241274358913880383330053053059574188516761735866562558405728786408407234321008414319533040931112176713020174451098668008443146787818756249007110455677540513737095591044877135007204173948583887170717521297146941331958184669345467409142930681725807383778502006213032581367325589529362574602489231664023133309188129215829270129912484797247182923785583927216030449154059952521643104581293316375926808925170598617812028306691543049442934690714002437999844635188188223716896020291648564693272416309848860921145040746280461650868538469372169787297161306761182116140891070014254262624603299837220169973047737412565564473569424125141049235891871201745430070961197174111693232410544841074143911475034891939121539491820127962995347006992717477445689231366721151790655149216094299287317685645471125808040998740621610538278158222541644930306596708957034084677172023199321838666403486506863459783720335148284196037869843203708037756903410700752738517214386436382075635600470614747947367040955315946299069601144716249299180755818944759573909079001480358260716449028868253251604136750506003524758818536254169369025339394619363040101914508039720699957883437426603968959295478948301765335778314157148358694194071195020265988844749151101047394316554321694716026416569311615988449025740030591077260570985133970382657209352381814517592960046813351685519692101197948685898576393604482166049440275053508166514013317646100133746108561544557291385173815366125625190019133520214512689401238249453527157020625153722713290346461986378111163678295833587023712507437038550855126972970218479248969479471580249012350465441932946645109991348120976280597291226450459266854477120322669194628217276038248844309198855428934832600394879203249818122994838068937549250709547015014560283034522135174839219338734780756408251217882019076500378106995756940346574016712184017016069557722504609445238822343231089423972664814891668652713689683044240598407368383030664733140456366969752948571461420187464907930520451378467562049858399133164867946283439371718316309270564923313571478860656224076969433373524716144027824832369714336289488508528182210915923507307493571322342889770165174361274601419694760683979520915537198123278849151127708512112136227318567764826567828557526505783301105921943699028538716072602351424412635315662216597956495652938901200060821612449825741082842402386469236623579370838053218325010065250184220901379193723326248698244371925991804129328125424605432225370318742446996162208145016646171231136959452958301591791645673342028405585851474170532851580249511026943893439546890999115071591363489812653717885940589733134892287419078573447021215786026638523211005297631477540602961069731283523743327722026454838014004411574111190415266746594856210223206348233264063286929411491333250066701787571953662522932310430677809020546523420357061697940574418472649259183311439837885534185577241322894678177371470223734341277655824869331021557450414893660544106101130820208168148808943201085570609560311976288946303147977580903105849401892752251770080936221436703630365292558986003371628613267280592827122632737580338649435405741025261690482170793040074113417094378985379081292290876143187786701002040833379372018531998849561176443136822636951292394886791903108752484127292721422949559544895266899228401041317677487331898841550080354025712005118221808744687256472578816073715760485556761142856047507389312256338847137603423052616320149359812316945311894094820785184506301909874076272970837610883272654988373647448858962935297602540674259249017933522765715913985035538740786899758883940821986684807958806862627346936576485285212959953732346091162950610443370952883922121843611793414237298321624886698169973443052801304112964390212507108264820550915031502817019516664720196012449251483903835446025662791068906944148733769057003798320128802555605986141351150675838745158534816716407239569806914283725673736174809942526253135148886445036282347799182393471682785788815043305304005401304833797229172690763479970914314680851303243061800225938353735620830642044901986323056678156259668469237439845591441905993536969869505227540897809480700573479132490246336770291511100540531096070433616488225784185829721266264800767596951612711913990795262949274518130227662667026979614858704617779072681772232203866493576033389324849269000741027580175621607792185497450777535001245341326342462928938968333820367936712827264917139484108795623404554744671905662070027642458987087762123293735479582368376695881988116250537375182461619171773187922720932270742298408830469876020973949777136703493263230018025818185674810022044286397177663293437620126774362569389498118201419343030561355406707281591532898667492470014079540095922348765394568597632583103145702795457049419977451141064487518154617991272703705101157849327262430368915339701545910102597026556284765773905529645472732943232362721567665511467048041318743450616314348602372593961755884674588774626050943150654237857749969749726301038126862011856442542557839092565934732874641510522069974762246070843054811482019396168008863218248085967673377637050343928542745824434000907924073493087872585950679667840904324397305793035081070974516964960068139864343393483226593066442743527983599336253768272152676419355268235136372336361715012503763471795449283406310783201700380361503815741784134606466447684581985484826823198917600911044932551508561060209605885563447216803299533421643347054547488326251539504521613212102665069172155326779320808952291313432893404764675648479212754974923970966363763321891079840971523323427725797308817132331744741231311557563803593703033749123475042097472544523949359481186193395960633896668162773638063070493911494317891506122829462269641503021975277078739155240790821202770912822082937306818405262743732420794047299566624781786368886520201331924860791477443896725585209915199684201889645189166980744018721828897669309759648286504289835357997689569292286927034885523364239352992492573411023931472232579812203802947009172848347621003359921565049691910968199604181824385813228110655821058881592717853871914737257865317306366165769543940531407795268362832953683205031265258908674046959894610489744817389235631490073715639442547874350430222083094856508091624453986646043272173732265001991155369353703915373564071476886223437026419384808919763477020510224039490375340148664944269358108590245624523453753573226096797147470927575135011537297941150358119175213569408640614128735529946208397689512100097976448180823459481916941990983455419786740474455740217473550302311839871660402886743843323590454261486555199143578022144460775917916873519670054383055129732715932545653977046079799283011619771538927211123772908417354676353207610154378855819122085049304697602793670923900966807456770170616125881832120992193464513973954769031021218001288112148953324914622539923834344475734422468391650199059680948906851679163996354365903421420435689722994891274264560121183542482567587505325968784852577514266802610201285091515355954494236563851057703873065066809793943261183982903476002815962684740138660445359940998285900537349265353566770644984524164903584107046842981449081501012388730569699305367424682215617792361647631768020121669140711699567053348035067774151092166901448456475154066072249182756698688246470295342704394755327088082768968460480270640479836910711551252560856565205365989764530764804291873952660554811404856865032659202310026505782551870860856381425660279903096763050000851376160208055767933721839011786413977253334409862475382949347028014617881942190066511771787129470111358248149733701642046768001767986376595978640288734413764663094637195290601484471217495028760710678195404884025496215289793527833391839056202257780840168756145314034608548783804950694650342111464491420081520131831757892812331008870359885222114271397319160234652159463245268752501564666573038067881319588623109725536432291119418084089911116497024047015144132890298916415639881303126083989645250322883820305526171834292654025432419649811380437048796098415086983045879459786730662296789753705834530868161265770205028942551909246227707964692253012974700975596927439651474903470532216477557101969196059071144503907603826890028811695824870211263844548423631355746792716206123707520568707401354247759728041289824427246435238627595730954813227135918340146444082088228885753489610283232518493904535173074481387977413713039010158096279699384225945940306916896660418193191973245298048904057509395913792778265439613760169427559886560906750381223816215894637182035746952720861231488888229667312387085881500705840957229040459740498990299058329756101801647075916302279726307513446036868502104754349283751073785297218858553124021799705375671123430129810395253603865850776960305611219177747186933684360586892221352650197614918559230376920048528111950958012867679192168524161127667626598229862938209272898828291491806265589507248747660431435634609639257278481357924340234684017494926358110052907983990757583851187171314251440957604241694555686578317270354182522378897372936541598619613522365294466188591055785127650154574145619793396274869376688365283542451475144605576135234364104308819288610708540570408200313811685992071548631252697099639105568924982083502936753676985280998385936671110951138686041028368052697111255074551878910532917486010625329138011718836575660520261677800394643502734674533785424936492005332643065852989425764368590782488990276878694780666214080193354691215832750717521818615819652512931566075336782520839261522071359858003058285290782294006706660391808254841323977880053692025354000169072405799490503247907449579990006588781150866372795812270199494780494299100901709916841192462720834345080614460265083562044818938051371156332245025412175410282606364474820429024277743568006220412992900790381917468497236428424514765617482465773248595443213706732444148760307928421665538833902622162710298153625176911666465277019915004245378030759823557577097332062869363198339377738912256418234927431192598031734746738845032602372476628138166392697053063328148342035539292005781341586282827269839756497951094683741204291668626637947350274573876764447712202733103016520884775422285216369411394649604586254001688290405586981011547025495117985861341172450748985109809783707520919359434942748970902517341014771005353258895785581186934440924113900982095149785754614895918480201231218839081105036260788475816498376979405367625063211058777476112860766799978431986419412904141572924517393631061253189368747120671849719383971196364961144803269141348494027153962903787423788839825113945568159006638965420292116431650997195780012863996797999170390318437475322570843347518309317609462376694403672007266095993503495301855072318438401218621582540534135162095267862727216851552213584393462657632428064930773596687760607747906180650874123946553587658767669822887801124991281216119057267448640914742066772270326766077866073940838184805977118092895672690243467067831395216950965828617615791773578690057609458159214928760921875888296235880441092356518353715967287426787316489935567654830188369155289847062883372762850871857259133686300106391894622139588235968795662956102077092865532251399122690759175245866765149196111277916553752714118170092056040243510210690168282630289540140904494446425178702093457595459454171588931362829045906633296172720767430943074456032614028584682380291014889014525309387252236277784582435392044475463370723489881468198786384746692783575276884762162313110020314548036590857488691710456567013948905489497665139832341234581530841244936413976119641295410805005694228304898447362882220019703706953805009752281066358870375070225149555804382142386944856784687694604182077165496944781110313510975121737672478518158062629644948305722436522183973481779929414989759925640912468302027822542932175112031337788837512092760011781123356295197013429035816095604339851729598175953475562920160156273100146923381615811485282212161984644739377019636937686416155890061476600663923273591523615153792173558375676354851615981454540701485381812982570921301043914130834084008509706467216749398321775152593533708810074424635260871710258327788114201251342073839157189465027836263402260390765766473914663905124287015362643169815992865427650274514799731570222850545998043668123985592110411540198475005505788153713969629992175438516795535357677444158843775599669948787797009475665030372765702448544988705163810226236346376763117046323132645039700683368483567824974269878779087139047544205058742201630666203452689897985539714582322510555321921694195355763503012635002961836844154694310533053117135848947129944518072304812180129474750771453284686708343155384103642563703033129681970062453274185302796669852740863983506719531924458554080393941705775949491351163956249834059850186453740811565939197598677263106895030147573608293364539783353544059575406015464835374431384647248860563943605415428850760330508914233844521923296614323663769856707969047722414897545537160350849198901917809561214400238065959960960732929852276357110908735771134225295038836274727499486845803414343750079065053480029100226996968322884973909856062766543258596535899098017591322088890108067236595531764495191209913524426631917703517401744083068797812725573430148873064388050041561319620535361930274955874307376101050429341010509741852587421973254065633018669091603235994719144666263380902883304238768245992082721567543130602100179706064290401206071327991318820479491859931561439779092975542563469498468914099044562889522628883728962514052258942232460478150357037628632119949967125963231751147775809450925835642475496207501938611285787844141720866447862259127655138320315156976075318643050424797404433579728491817440026632180107212927879380616213177239404469526987105830183252473659321422376119862900604176927481868013764453287435311939448751399055176168293297583766304813332836365410530647372221377550162561798450776509440177688106051269462800292878328316530597060647601489152533330274217076122715573592629901135851403583789447313723474637995718799916072653926161501465816616608818911605267218848360774311926185655828038723571598617031426188324754698154886547415915799239435759707416375694710244532114476385712332808001696649531189619011452016148939522151059346766022307223151339175606386801847983837429661548174421965068566319620418390138575946536862347104796471832160151135506596528779730360492638908954763723584831057354049155424404638291858083818511103392340489262545192985210675923287305949652787965271462984357660451184694712483439718450392762978861961224130412977995090767334124523789694818703131090109601968738860926828798159195016439201204273593343118519826681112184602291698839031415901724856191273683178272087139221674389274825776238256558822808845936730609699094922810846568532042110652009346275988303735436890718319121219170295503234623992976613778000768048823982302620237498102707217301784900832564171344633235529406661985653920360962777985307971997245093261963558822192507687191567194951774304108540953079445251124913109044129929801560128794406802612075750299119899654101499026918303130332491302389820159397083719459479888187569074489398098264236826573985524834311755635676270482163579564477547955895133754559355543907488415580263493886315601368707209511314518642764771357208745082313241161266562149670532225092739338583821961722597422437671883052990008896585631130144745175353707319386254003096586898243668157818165736322334816155482836778424125363902080357191330678818034185107680825141377849858308517448261338518584445264648031357960185053561259888727729556747408784509266358398710664478659463610129140809516329614655196640178636806479151925726014724346726404386431868661094867221107330976105619355106399732758804793872362462942866761884979454378686093522496170543980299376949554941019380455777322368669737013191861098798884546579951537057060578145921289425180687468281005631896328939436042609387424207909737097174296265169193467408382415445889755772239422418359390425480638337657686766374891431959145697045787973842430977814313972891597959933826302000950998940455450173272869808692991595204782431512462063789057699172881998977676934145690972291968846508461562107398509252698504009464341073559786614790863387860922743709946609102660471211370779851902594545303895123480996054230228952331804851027060152270637828438180261005905579346026084863851492150603185980145984355119253676898328414853943097601611704161121345863531047597185505685270974152383146466765891504338837624910930996096238031667983473019965643272419835442180238781898411429909156582578025272263212492189347731465631299191278773408541296327144900566376534936148400711704610658069204168334727639977243107031683857764751880940786900310802677951084284968169480680236949254659372358501052947369252666385690415139411135420972807619767204245699136272624148528618365559579993192639259325970650197361390639548668063146349324289338159479041974378369258549270726098120111398928918818793253796416810276820620284285619089784876223321936500865123841414587848318725104575488164832971229211956844258816690929845587391777947878656644409667214514720900460516668737877014157647379654525103704243133559995094775820528698385250089206900333015044808065022530653089929950149649371749685471601297470241589699704700000249939493445879603109957212477413820181389170354527249403469818758946562528072856547865857802485911056147031909295411941447540733185444874702977286049299756677274460095347208532173990568824713051380016252915164029300248470879048224166563636111683644427549649301694731866369758994698847170286903245206767787982456486106960510756518826736983543698317885005021538920268662427904615896676606808383976062370568077459738127477663820108629717935554591848194405926959993434656862663491436272999419031640944176799479589189575966183259670741529392413181373241963691673874643485725997625771045961829045625177433094237324839456578529369150837298647712752295252162752266095775310822962640512569970056350333382761809217840733645632543347786380658449622654554868340385519765239447335269963745530334526903427208760746753913767594469014330116357155485586089676148229064870661291089858099451927286163743574048260373308493400030817502458134516442081942692693744409000009288213061849809356228630201507184949445499145536573501617592421239058295641553269409638595533187913025398956418721727689298029017505174636409051709230354313805026583274756030260442973462775851558737014924960705803877642134771602595452089950805786881775267991145264722346579963661897397756846201202612309088520713500283047765761440460809158773603105968532887564595877790001258032734383923312334281660128259872207237595100148857066540747403236029312125953948609933045801855342696973640777577900807592634387255633524173683832819147951176793028685816109371876550986096311442518666772505727862330393701901102777103925989481696229267181457833637683191694106134572360344649428018630732846320632049016700208812307895980424508128137008119744012577538077954853437470334435965911514413143293527126441987431782149641834720868822979352825766277159340380526277463495396030767828135768511601740328583998127827052004637413057952779539963260803486209338572370928058967171720138327985832426593752550337678932745920108008869620851442430109636634738510319792052992344055799357613890278911456165860944618821811310922826149136988514324119874745941293212503621396333748967774686152187869896091356635252486817385263137316725022715075857403156905389273492956669615451680459363667490446530206296469809534821724586939277421207207145952851134014065306830503719118090167227869952209280434642689170462139356220937496438498311651142096115181813906292604266363389129639551820195192277688295535954319901877272651814888401927155558717645773793056777091290436050381767977578276340999011223608006978733147230876901024124975265748168228550041130355283926852673713279579605651831756171274229835733721966088383413170207108881497885526792098791674054991732117011322845914924615990685806375364259720249767550391727045910987318395034250045016024774651374505371924898052745163814454243601295097805862019942000283182094160979852817613399826818351681551763979885866658727210331921804422046449619620609532849729920272229242234133592427727024698350997118898935176216226872286382139803367321024147003824510030461490670051932699835893613848011220870239389163885169474848138005743814766934742018067663331362619759889419157315490729746352321209100305302386786730539552141479698760582720415373401529492238936642845540877530392988619459572390145111779170149276476175470543423843455617687292348192801758325618216599089049037320138949477821874441559583632985865157194836285680169414351455925564121497828077533864458841527390257618170057138364810758605961573681657479408004700029703440396343822888302540899971037474035402947704301803933309475934775806420832457657922541077986332901662443564962657744974514758723156033154474916913476487332907755920377406718024192806211894937147346847268183408239653532170312552720383295771067955642595289905733501037585012045675992905575100642580065728737607766031980915762415747735051541113116520825850106327346730487122382677156757328628138822930984611970506588870195735893010501398056546209571999751034057538842862074830421530049357745504044083126432067001419747613247410545730847353832131016697805177450553654345321330112409730134694951380960886069641639720397986895042943599134483645391951382334863718381231797234774374133780766141834766816982790729389682714070707240893541030264772926470222239606707549802955686504774183954244670472583364646207074740092972570698532745791655705030969744886205875708799431889725712706505724357660970615304322594661551487632314583480837955150956352255516719139757261497695259724615577032857807181445146528114524624171693902343458827925998189492085868990737197970581848074163755241439118526015207092251271248869928342467636044729635595916228994609249239452846726483047373158247460165491907138351139377586692845952050595420246670173504500950940392695318420502189265114709637581313350818112211691455443859335192582413013242389284513057240719918762422959690263914253007093258604153250710376443403842393424845223229907661226929251880700097008805908301939987165226729819648882052883213070770269561926879114272506308492691432145765001023135538462470504700029761763119697254732162247712364067577530047902277923658497352419348851935169785240411290136475617780042417338693526607584802371986601072386226847441344017769892586161768957032477493599260540624807103030102192163329099530113712736502094976910479848809577517439186889690896251808842194422518504265958428982425486829138244728730328881393652120954939981181188310236583405749291184377364619792431928885565228135207744307661055208403008092120262186400456278686060992581653947007132858502580317915823235580094738508220557585351099472367867660647255392404605984026335971455659738605651261231207981172194621801530733278376300457520716814286142941472436180108278291096103662583762015390439225781295935309508832789438861864933689915570325932474635888445073963434476347929460772994371540626277275027296160492984362286510572498529050161137770209418607325702090410923270140535596794370780545442969235871466390087949673944340326981927568934772596511400552470057586258729620953915558396228208543485667786812507021306818933983342465704805386788370772042001564927269462781816159682869168184538556308740162824911084720372486222758866074189539728235003133447639842909924730532838567943379447680686235708067424758127539487976466797751911771200755774845753769222657751494584364103932282790108624587617595568010108231333090849823711846006461131964754205666855865604417464872918775758111825276395015348425667204846610127360220854564497922727343242271724040045821256460385946082124426397553217197093184898882370475015575315860164471078427538010654384243122117958567674215825628465681402319081907651242199054203491280551881206293468141878965110687931700746007323778186758838676654957676321738507286548687169729188310400580993283742240564097589756332024493065144662222485855886764446781002180499251093765473131868428663739342013873605218085556806698792515024877328020956491242349711612340212288506027222220048042977417148307884761647428705639069392557779355419267373963113123007034170830017815385838914228509567709023184877284437717929944990823351742105059423623239241382507097376101910928783375697373837135587712104530115164483718320908958524458070147499484093552101235899698792137484588008201203455869683075563272491471610965608374628698996073511653148361848903217471209060980011143680100895432064543709780018396939160423374255308916113957615181061230854864568019486534197512456599341400812953744884842313222378991746171584765557621817620027706553665358802598484807147383341725808361207034682016855455400898995755238986483369164214603962652895510185882578444964740179059401959528856014687764738574574782480974655313968082609232944816183979085270636340002115648865586481820207931514717576398488644450483849711531257300182672588216866446414937775356378897749165901572092918323958263870045597625480928112502349712156364697793930466362988574818406796717852177035537418329930018859215236614143643108218915051718103742692654277649162337866511470502928014867029965106345654933164104362247437841766562064632051467550872819111420613517982132382577951105128687295618810698690738164455937493348670871057632147004603871046289623079443605306891155175907207490406503959325652293705706829156215315780229680981422459648230960446801588352079153262147797235694193269820904057580361044233869692862514027521735555917928961037256678773769466753048103122966738489812880824779301123859806140831527523951335597051245457015822455152438303166345073754798770896465035298338844133766942570568298664433795085955996688145186836314604733602583388138441195020343660710824128806298393694135703257106543947820674038606690039512201321073827588278132310782507691949005128346447689291919341440753754149984914562067294061281231747327488806348088270920464181892598629840030319282343014327516446851338409777549686733530013903879873242605210970757421720597219865744018781823797426632337091970054458578932442007734021492219325305224847726932797494774818923086833843420518059720205897243125260402365402758275530243264832204198028049004206945092102647925362022555405102795575998735697179231339270323978704830399952353527971422590988456982170161175473374534393490457327370295633857151204159911403640261185800743042440270583819337849236252453892851417230622890670096718718147928361099560064047456771497149383062230014783508071446902093869910344163697179631086849848520109847754665341079202030127476935571091997358175361991568672817120810408510384676512053844922197011314338529382980846286834904605315164372277505851507872088141100835410097870269274332345168802888273044747641587951634392338708972816021029569012376239495120049448035395830093296660018084104405328507980751465253988470016616160821701181198813867255735188027924540483374312797577262034799484673255825889652422639980489738483227507111604395963676095531500442679536120572561860770398703528628090171581159723937098489392528595970148490614165860377158700243480509546713707399290305345753806748918994716585226323922317939599775433748653668109458510633336464945350003558546006965304001796412870103381892587588109867464556972345824006681446329031830450685057506974828519544621521285409497686467580136455803215532505485384379566523260721065908781111473035490241221824403449885448042223485095825947459056537795070881853673885312999342142185093797540225267808342290897832351408551338390389953223558054728129149446311160325591098120767481863153358636657117658639059935694066901588601845478790314855008206652941514479761103592793321255751590119549703115626214705444203450774137974334848692663573161543494165568306191056478298011616436036381869886809540533328644638476691445850649192762767597639678370505582920184187924195577517479563664690790272382576167887998054372673657079037789072827827683784408897316432932265166335210649394509584820767548488618535222432709745310971573172661141888047567948778426022285506350423109586311169794814339476283767846447994120532046582659972219013321853711072025510899166558092717705496052889935646653125931645599056978503370245778293419935904199432077753010658196921187736734357644432839486578049911145466879724194614494034040503619364280721409525397524226242037353490357826900469767970902769904060569295092917745908514382314725936881596715852683174431717063102090122248803573097303921612671409888451274091127243429287940842783826161689911514240380200501114031394735069384975215628034423269953391578768503739685216155560687707326361742328707966457679555181204808189517656490997864118429095885274588835165751855161169924215106163461612583646766757979814439261819267743926309721133115829339391832284025739238546787008189064599121982160358813868274163069364926843639094673368111598980846785822936018753748663797123351211661817822501504748799621894833053215693676182038691455861155505355010811570252178868144505554099571614467863194007240155296118616250625463174833727443384084483434192585400769160325256163373220900836090124660734293398918828145873017955500910114890651062246328777407885083469702703979428470870467329480391930290061053952666734053585817509104384914749620543189633094350063366169151506533817762851408551987932953587134357172182010768923403652085325804176770893205555159421240429908408193745130172391504493339981310264677999590503784157171918255436841190850308856868719244283578965512228117484528295628711545765065994561431635240778049734134297995536570078880463420989889733485920237083516764421366482941176689414655374943809272038474879861179527310106745656727436890346222754924288244968445065131282789231162591370448059932512120476989085889226637911239478307350066025618977443205382805354390661902250789688729595567812271870193728830333576528649757183689107379878154288988004322568441658556288534266579050681466215035458553353277231482855560189048977617645284923132999715853000982606492050221611698404482201920300522500334246337232121781896920638011038652656263083499774855737853579655135922521459894832896195421126242056261090040719425717357999950515600673740391805436230827880041656488528478004121967966420685181512606218056537272951165576044296044601125232927502155417634080075664281656032068363485313273158030729094998057464333261511856279832446401430218542648065329490946300374874169245035240493442935414988415365502278500331361631436291770778540277788199997477297361639705644330185494594599425074707166410305071331035218334457946981355946873191338050689842569711679874098219917690339047839052588483479141312230832399070475894790657912031829375613785263859674388916115054088840719983278598137826496600671089905985002056573760243775784445966947661460226763717176850892680245484804238777344753282968738680647019592330678182004984610121546377027245229105581659308228727361263151708426239237488274560579158839100901829683565342805793497080464072289600221794648403285381844678015270616443273017879841659095554519732205239676567571529495231481125623107458643220277299177830639800162763941377412585193878518053291315019633093392815831184981914678176112595611825155631487813671014314771743168483785879100697893630954233939399441862453187771874020780507844304600301678218375987641543522297426268762870631873981126794603142695024068287538754850736905680633386177207147733086076238577167367904296899777412464554618741221902907072355569265949204579547833093672985833588010802731851247079339733202562152560120933252632391790526799434161121410351933429287331139885108632199254744953756437894916423719833771973538303605124114839919007217484120086478795748539473120708668953522971588095744108852806888798277145101462767372115974590339167340040923748393334122070557993832760643299332450389964061429078250871330870554716326503349489141333796370623216337005554587772327767898545449255034893661389356810034041396539130991815810597649788363960165531316928900307937281845170279925439875712545340658650787108294177600876316130485823058066389082535734116045196406010952302585207298376844253832573478626906033742457368557319801012783229235279342044436258875860038482172443528071930000986280732939497131086453529732588296702299019283703153963246068402336703638994756253709144878181021951160407069690998502725662560654456475009661521825580717187670469307187250258665696678151376673990918909182623359072049197065777937815701324844082826241086144742832796578590765181211977104415786316384148838270215814992517988077774279254179995517056549913367923776042430459622959142449823675237576657962052766221595646043948361328961809295785024075793526708880407975406492544183793306121635019886446911821426733220149971770067679402243460133415189815022538171339632512914024845954866520963705379631603621010506057932405307177696938749804227801647088207876451414043128256346451299967112134459296771655706483857467670995182439752259546771664541833922257355730229345298271416193905936350446080452244997052539734709959894521143341499245334167875487054384739517086873480054792730768515141265575353264290160275572193368876567164726470205017318953894273688268857395320892015438266966441834286751883774196985122558545121272086332903908940193274420112606779361208883211065847540756764817429276102843748801776485809591688886351884095309167539590692452346169064648088273811695237654813533430963075830369466622535590002885504703281442161591272975459763133160765043548022794785695348290021954633153068105150150213057474652637757441026946581737113860699719608080004588059890153350235118715820359055618528089509225363924560585076282068234263600556551257598136975162044889331411074131102707455493156280822423993143119182022021072620673475126046553230889989856200968980771830279817898032793489382170794169307956128073533911324016327858567957609588407303589161047897062477580220015140877626101301342750013999975174023447550268684979584330561096850091695302183600953448219034083373816019357426916617879575140987626402602144453536980819163824116128388818422601848723645880191053550312357363732295532618925139401032346750543261725553474055361204996211058771300225808210228170944500522721794799271493411354814267653995676261092675010586306064915003265731924142183070889773196803470627216535450337616251440820271857394565952805304974971148905928808577892481103487287949190452903436386817487381007983363778603828373236054676200034868928668511643566251170496549491047602499337589351930772061235838027887091082395539347596305914806115923955019446274922674171833783068885354655062646675029247605458606148349917191407036463622440863862067280246601536189981232024254717753186000262382302455879530709387665747532076756107971910591366295947333658118252487460532629752389582300338012036812149465715703168537539689252119878129288409972594935430629579516859639341503393554030914322428357859383127111723830640008577134510877890352069792196563688823904400323980319453084234152873936842593633072740841466789778796337362372060601399740788966363704335172154934830651064375616936816450604211690266041990377857079626692439960515742475032732523213387411600184421221865288850461042090904253278819520540897648808688903303183619353221422092904926512381136771867879445713013317721678312801722016624851454095855772937432065454217041703230436688049549642014168470704427600230549314617665656142499154468651900299374179507528107448384719107181619864179420566863019013897842468334842631512365961752660434216251107415422126751308790500530105907984309135838316975513688635407914014601844808604953202463844496512011974773468141021583324629130390640472091328908525543168065647329003662997588894247134001269621403276874890645034164763487660514694488984375889874371167569922345354318636502730074737653582813843244189781420821905917403611384373083516099910599975692528508380325504494421328899442631599497287997758780168708268215119829843725603404101064618661029518318537310174576545122702292193250141562875794258634619876200375222138613978098014516573023235461543234845145357697981266312080975247115336172467131781491469103651396486137417815660202567120906057167541994268596376953409465671077265831926080154318232753691674351700038314828599637018077352691950107192545073018723268845019530733771401623587008246712592542107089729288935985452860975309014294989971842379511658466881149128983372245591626084317092604102885183706189070880144307671199485126906003589469236310322707697049417973455800657295285741783299156181450058997849127768095959812744285294392183877257995894469669288203309084495421568254073242067188510784281478165736360941091307575276430147531079306608162454322805707586921012549070351225305944082978820106110763050489800378223597195231247879555876434329383314923897741996816419903595248479324829326739391746493587915439751585395523592284456836215509013408642407462118101323278789184598261858925483403187208273818315288481623173689658032224326079506511867743909745328343836027379565852290256820866101289904911320776006674062978366802006356119729435415681612445076160990168831760794316059282095413967027252085449564649209772594339685767516675159780545046488902660867558948723907349558172689962855547319111280981917316757510304930127123296282492088224700983211653302899357850308267180414286567283506022901234363372806839048318062742777248022459641805022758963113359505530772767881433151728593240757795905154152490389215920266509026614332694675736410759995499540477742481375940239979726375095955293639328550913212672412160180187171811606921191851441623302671141583703445994105585599877994105833469933137073526621201163137488259720991951588727117474093885249704502663453704908295682934371859147970913662689270395780984262477797896118009789189093397762319388007265106874731775605900516344711614706416066057564066346349694093120981391586796975747586066181912675423688386422096511156800319358341791347301509702020414238635759485586342523850744178619003850413359494197842849809804785310435020065554467241167024918478622168018042027727065746531020315659423788004310817998022041980448192522867148309845480057934872772538638614844976596407826235857896266076306329823283985606377846415525919747510170087710709413684044543523636363236376082650717794467148271450116301877331885408434794981118226728490647216155848183495323801311076213932877943913546925670821739706067754087958750014884155818963983742007141150664521909703969336233203149812371660576440753080542268135103426718426201185564101455619205261603823909446084397925001587404880874890115537711911028110375149892751683477433658120012661852959132484804699086796784713841234304065479484654347592580330471270779554150375034191205070279880094651519620962343822382899628954726523699761798446441589323544346414177723560042002448632401547596364474339829527426891667164864480791704672403700110278195564304999463106321132223491736051237661465237059537537531121078096824276620352812641389571278608457786832453841205397988185113283060094643107071314400823694886720509638191451228144721842657485206436620049891064031983127525775396365960290696417390610518100900124728378739527829206287650603110316014407777522894917533515818171084117521017408615737550330250358397994299164455866873190452499048941578246494739528082345181562723820778759892701098498091536263426531600458081794346430771889050604410143448144749682985001687801586816488784465165513671863871390147986683117852871653977491442451713520515735998325731320972134371164928142482713764560867715237528559390352541441174065203687772730388256426749480843124807093152947750851588619844893445944760158404458772475955021267188855780184488201075168459317029959194199986921627252595031662091148183289466239132200872716848451790146387667966099134092521230049155546115444582646842016404397608344816168788372992589105577532177360476079696490137582522694993000389441531727642633235715133064513760207823609181952984561439412329595878214112336083073307736023458084491780871458980851101413233191599015924209172770662312315260969780217766140931580770916589600347595635369411789117601792767341106120764046510240857552023087928165856198712992139433015940132321079907089495303144730230718192521422828249765374256058332933259465992630257258582253981714046507049962526579532412824884593517086984806045377301133594355206247087368578136520521688656952277313821980828255148259547726138429970794458775668389836419512144226076923425082980298176794965469140749405413926558484087275989047663458069570305835530508700311571959429965592875762396609804385348312241540786822125080174828609301513026248229882916955691476032249979969224799794528828120625932074171039194399973163719335516133205619893071903366588026594710693887799555289470212198401168743977959824678200848172197508700963065881531829737771609742578840079143837478430581174058732719791046235949209847891598214658614179420896241589232599439109396003713419312746632173579815933158112973309535302420868356631708716373248245796430472447242918758794526794653314328018236362408439609814433899612988740604909406833526485171276247346265491766409693117375294412757944400928925593312487035655907562576417465666962626851382199968775013033329786608570835079901438804161632102438826034157803975364506692085879720081986838937194740111962949290527205442750660037229133657401250605266534935200174140323807774431565633600268032032952000348018124598450143217077121397682613703702527852153205162150915422070388430952307265638667867546657540027869764810994811812576157440153704950823481817929487637057110990891493136839478725743608287626856282640810309066354563957314214338468843735424499094385148036262289217925175508526241554781948978040802885064349650784405980141894220394803400569153251401551426679370879117290389703792962111204377375899077103478363830394749191944875307341104136365132245280847846905513865061851435074958583349927815758620659363626722032897671156865109254761895234926826356363284064736199894525787681951820563093578949751938633876013606899973682986111460375625153487687560907890263726167090224922933039339186167991969241780901460221176019831472462793124143215457042300795461093043415436549749015465722114712697477758820810506201047141472653403034075424934786892726427905842400963187474048168136704390006647227117237038443801630328989380396372439586238311433902389448336429601071558685013737335371952023638458409545030441215164885878858704166330124640855609260090629489692910735735311896174307570805277391403199102782323302537182760605459941230875069097897391870816796068561459031077755830454902869242371785963949433187010235380009812708506077502633649007076136961808743627466610194234960131884639412034689976580174809101698514241078896659490521536699122418542254692367526168278924979330731157336615093097228262675115245541226501124272242528145070159881104867861947908790075880203476380351492236282111737542655073632022560293077805534595950108755031052248325647809943666666262132574130248991755728333942430504733360650018496810257438689883737533248985327820343435639894445258796857481419245275762354421140186405659755982468659922602786106219093839017023984747688790085346805711425001435833453668549600795612407754640461185790693948826840076960041372400443829515635196025940061049859213745062812034261568864732722937138234717585377521788986774522513156684796012400804661106983083515287525038611693756747543689598724160694439628131651689493338863123683549937945398596506435327848626850692438242867176146654462593748934053966390517197945131836089123250293295559012029267386945010953747791937949706981566819993241719456784168713984327078977085402907000275552381640917708789437553724356094321909953578252822753794053914118605968836165523263175274124701030730782258644598405850674280925407803975623672351713581311671648326273892850421456022426072632602135180852678347043528021419934698091297145876246399127860523279444244942760692574572035805248408565131154182217848581512893427549861203899765718867129156821441039961180689848257829224126898173394269826157561651094459785420347810304427949990634024351428303445243617849695603338971088038366302640201586214317292421298818893330179205174963567001351852417063504304587151191439144764373423391105875470811709953465073004633604331697981505000629474749722672127021114572621947123205847224193282851407398007587731663171565264144718129968973260277436802638905213566022330158281965352079551325247574706780068513557671601001825189763599003380571471451641120446696592645979762081693447385916299955830135373476123030179558695331495119123720938864590297899237575894070116148135367434494818563770903457557797483926287235138373570170327510752901895652110228182243052408132514775784388089124339884826070172897003576380259887307105005706763155922106453942398914031611182816913257948667316503532354371608114286247820289379370423199065004126353294168380872364396420313004582382525007432910778377822058914366986770528022215908858328435884679686387136173392093060394910205697547307140847783331572871223832569427999641039599716302681273210440474654646274378424458936750693689550971098510724083791837878928554872035334844350243280498722186132215006464455214450091027787131625385608208146883043446938592433416623004442537288766717167196877431766474590965573429540132474909069015024753059724099577231351246133028548091916093181528659595049036394518880178428690796580777805039459561344193097047429523905155450578548387476822566276724517538578243460592804072007210668499978256156749998653871010177316110994994203042106979342009584159314306733320150540963984103856743766971287849295000212622717604737751391037325711511717946730069283552266073033477227961919891044697514795089968413035679743306604262356542754657229710338458137753511084626895698648861796990212068069424487048891396957861985104819280431031230038688758932865583418696766745760209776256066975608416097250157389122323136162445984757703009641331860624583575202272904400177702641096105728642837019439078505145026364275015234421772650247809901770367857312639486914149106559303155819001079837896628487914569165112275555676727548215549163152230645645258956019852127086663795271475779775751813592267214602252142500270359006025946876367194704406161343238714992848372462306782226688171498859884917281024137585151368334788175808881728499028402354240679639666454415554548466517430859524918684477193869848568497949185135119464352381131140514925140546026737767792693237643459371893738048781604777545930433792635753107605960058165067899187510629384751480634922214385453461719566446218015406118101481843432291542006123110194205924346399674913456033763547996461537645528153359389891826238207003948611970581169584443305904351567740254957022229153266598971335244211806615667454745682431400207110007453048714423512056767124147046407686294729746135547398944185574293630723172924138191926110287707395301320559396065602540747119179719205066198705161794961045671629073535846603166067402934793802967355308297656208864431625053515717106587063631705626752879739508383185837114793501472976086647308518344068557628213553551560850943493425025284517155652880829535020944474245739736050242083821858319886301579081705356002266428950219352032760466069002765119151077276974138729955328628734373441946438204649914317116388866748096803765587635611881052710292715795763886339630768573781789228066003533590018260586948903344956156923186044866981628908775321166607239580137059594058336945563635302628463200659529730579263767367894941420761343246240913977053043578411964052494160765531936696372637441647180336638782303563338840246998478178007922923663165818730280502325525577039536434367533310731748017099443788275648466638247252800520430461081772988108474851104485007942487804078124678075135436962723642996212877761868102190997224393540156163660919206637817276511800023944509165856370375285339161921042827412785764536353118130278857426353008301527543048285116520411275081407921755510923884091801100503618150424884646659110227916217743081662376036492765811020058817842030600347230377979693727843950697768593408596211488093551834382070856004628414632432527787506845024974695147207666816877761837587940924761895123223621790917122159463124513789916005229378335037114902486607123381201829269565181722739381026663833414476514844087710382095267049645119117806827217014065917856034688344565197674107722220343699421923360515521216410504902968592364225375506083100098533624162565191070486683540842083189519964037092409937098206822741567449409445699626685745891857718064030335595358370306600260208548943986135567741555971293305350579305737490403282748980694531818538837042825958823745079592738974099507746350200848587599806194949518373912155794152706353121004038610556755713885242524747412651302856402157684896448740575888124740589659237244679353922936886303573820259681115620849953692666344363476697571915538533057114579229159507690982339375740124067995374024068836368681392490855287471735701169244735092687258190034073058719307982946813841474815854839091600033472965555134049888089137463792188077616246415712810989824393356733335436040799847452615256359563731996959886911009907027631283015417721902470891232699071193194130611779149621630617123221142049328657738417161875577937694378458812010968360478392567100733303551239705219438727425585167132974902406691009070806147000374386742615115404799666027295998207436829052324156709644982068679655621717881842041629811078945372098295897711283873541795183969845801215622709623030647504422776397795111192394668038279941627513705532247153679535553805628449199866019990777685733065944165760175264815290636533152647882942620469587451893051661475039229547940134138910037253279847658589170985335484854628529412799804371702827864510969684742683273325231346899802198052282659894347933752625027762014357238820410092884100451874847053191546740556159071382852493719735452404309977116071586823257103662956478076619532982240113272250455568431568070561023554588379812939611457808724450806470881613411049934080949715564470513495500388623651620679067252613448742134324060884724843852804401759445970100725897528058885958685477443061072785769728060010848037654111769998734442335583424527654042850867306175435712125915014411328206323991949585936009182681595240569004389895594637803109600774637575853788423718080532552382121918469316496009302198648038109266799780211871633433808528378824617202037262193584690480090796098746345134137777160450322255072103314025118227741928525328352668652753075360069711828887021741153610015689645345605750568574109995919088519408015171553964468484871264255881992943266010046867750812547747584135971617512522537897535924513933404199047544551963476748542891578886184698354298293986847590023638842605348669840717237706514095432572689715721885775873853205884327837696051533250535508360401577823087772958137177434509302062177899263494616845156594648801792581255160119966692212822732479244739768359082647120181537917689770235059994256651338178235832083391913546155674687847078591951366912543886359149230596021081306354309250538817567385448418188894731358812935297811737382679830563508918569760345244032132963315815326555275539147797733528385532564013061315874938265832146130602138079217700495814390791985757311707049022261191481545270393152647882720940481757424375834477379518850624231437962326031980560480566272175609507628152768340858894182235575599433750319013499569662891406652055554468706258194853032327949027925684125503303398993585963026202474336029171850961623801820146704192137988152268590908363880568979619398176563708532707566340124661220803532444914728706387804522357738506331557496526125054771067475931181818430302437897642849414319926579512321836545123372026508271015801432585247673727995814128310983155650882795423978748593031711373887295458978888381637905165372652027730888926747198120901157332241148574324485662152728179102132621298658694108358912385475823232972992057600529031168890119744386373393984889838074612095017923668015668940427861699288228581967921308598859301179225120970428897912208461239788725216043382621554097409723852370654598563764008142556607604857571085980056693272899368264912450867267382700467718025955331354741327246991170845075162460621100088842305882378814841314433493446662869196328706992867484828130212970204448842363476479014369362724834268195165829159277158159572633223794622864929211265813262313413005485992873133298483527948379406142504781310389097491693118242073419790517793652910329427583405398514032534617017023270995090342436959361190716286800026658084995916682805889203955249134428414639974809865913426796012481658879955984759077403403391391624426792905460762112160180591420287244547993154618517858551351013858407499989929475534153798046645156262411464584039503035579016040609885516962082439095391522094668607400728419143012429794503196593318177602724667090820691187994067597965230236436434854089616239275276970951628068900355898154320741468294158044851831187806304587389033674137873639085462374686984243454785839784860768956352939753703915029948185062862417036328989728647953477691751260212545366163578176982341099741103507896787337365320713500676827389264655850437324301340495106625068190532304368164770066383144479090085882136203414894974399046743784483020555183348375933648137059357410960225074715585298305128745231092224696434864923603292316966172188518266629263586822996726695709306594262754438721131458496812652605502842054019822491452661366688571899704025368042659901821498918150561104561384469644940787383023892594001738370769789438135382749211155812880756635497950194013397615760432228709394420147946503050364921702131477135987461426996125002956287668970562075058111557822207757110810745640894695868749277452094170464731682088274581037227322300449607943025908118455670021438282874278723051136421043489384209159270422568532399428685848076980024247528578961983682600893328124335656052769957354292526354218639412934738917702355591836868775312755524908796967256554675116310796597795038029053432019010814220549999724196595138286686133216304674233165739831214575698459543506086949863135318167512812085545241438784130044538250052133170680281716100395173905129023793296800278447934172228262496201653575101883545542960941318282447760171427988544294096108225869419944730824242060454019308837282239095236988719744016371347390382275830335942837395251008667568120271250839681806857745020430439038938934603126599024797388219463472783999983634194175760998593392127756065663342970221835935389250550897294223697307678747462864445300149930865435601096732593433002963944514260384899850168839259637854685583314440417218178280127713885880520683646152953347198076559399640843658921504950998448462253077612633723476366464988190767497556258087499341757929728401228630202984432755499279193709336575214251371528039913117950797449342323269707833020624363622201272534490951332953966716385000573185386472150063539882019900549491038431110621651005934483998253563540386601171220966165561756851156058189823910304985124463679562528217442878264954013412924737515389280865294913986950091391392132583548654922540527311806325934303871207713078054146948058848209385166972953964182361364761730655508859024735810490191069561093597999332045110506044168294270905553555114711946144838859272178376196106588732514143625356673256274877872529957517995454681128646893155056302450981097989338025311953673398453733357202730369317310106285263565620762818384076086473767178658076252389035498329938161417418922350041017567166561189963037033391934647818963574866645160116698917523552163430396449308696173322010217936195176151065456804291243480382289737575410860532050219457873722839100868852769657073205582890875814889902267829927888796579203515836810590747501899782165227026107840329092471719301266134528189641428917054181385146198905606054318705159120956799073874230697734633701056664574707923682250539395916403034075893859850236381579845825938516041432101696591484633385002469214105824155566292237912776041849908607891191721998931343994032719718386324692960290775650835284671745391752362653646835163207900882906472872581400190133723097360868043733687387324829509714679788253329409841952832568362124727565560585507946069830355215853554780862340596482835785504514554614041719259055644975196652257095420633965060586478499673447227878603224243082064155388123577825941207901474385970033125152707829188447494255115820270365952352582473305969385981837271746490567759164365375796520093295300036657283827711954009989619177609983578931371972915267750891650558612410109193846316485573133197169580154503143890578399307649215010908380729313601308021499419443882008685794001201597722373713286307983999756930323215485573032196393559745912995327542585408337016940101580771554258922389976502796247682657999909004638246445633971442970651064049958875971879413688291690332017625399067969246002458815410956407846116429400382723032317553667463507460842076629510572523346507341414092910940219478411360116574307164025283148133736082992187808052690667461963350074486954663027170629801225021576892337660633412547604877424421790567039096391592518467953881274193493237117261847155740355359443750758249837908297846492290312391852206768594548590552535834107836303539319421299521227489965090981254926918564340513385241005108848392746385536162186437887366576713239181486403966613311502250418519346566315641848023687738800201689361450470365694511700389741759523440378545961337138498534108698729745608684810172039400941967289773792809655823021065360592864796152633798012659439633923936356221433141667851368811992021120528840406822049866487031032268441005783166802213509904032175168224117846249329144314431325545592504821179736024281630655872433744240562434628455990190349373910336892495479335772683339918976367702864358410062829657303360490711294762996863738475001233724791466916798379926074917590569853878521113982355262176586927891072900307993344646208237289308567424163001314068422750940861131314992612031590099837264261695957094221485354343064514191054461082562942662625599213256630984286243105901831425961438984343082120908845549452954862701284282984343592014778099869034334984521202889668682586923003511918396245218686928909558732248453144479155646650213369889091245008406468045648360809788074537943225308722620088100673873738055936057030199862586963603846138776445343158508183835132995035917682805661154724967044387939078020061757641673690039601757857073480486719944631238919012368029715824562000938782505593907949980352231699404693641876934384439501543819179676819444844408434795513718251238108486053238125927531493990203792321958905570450350346487835692386084634039230519651237616328851635231348631529782161437777757199076195500365807278520393373712342946828756697181051032609057480720235960875768996993144201567449453110482121498192008221705448057498140574724838134656600700062940297188443961970758479452125823156969696790958438142233953410104730979238976271119360045054847602337935691766379998682555996522433744896155204743549952807541533458454183620703033447291057295836792274414947657055655464252586434569601400023675762877270974099361956774938024204983298782026988944921684312636711905043084657166508807927078452142660130959875911842175022250079491400438373319803256841742522454944116213468999173478515366510628412242644436345891934880715189619508824494163552624320969915773676111301034113439953857762015535159222052547348218180500480425616380952523406064233478840643366100514504938153219732710447026163419347784227187325967375416815205789915104798625747512339509254763767831194642183485488114652223619146493231103076685314066289439871461738608303726043980820826258247067306390302197716694909145932872569300940741772090121158975249117803147190280493575351089540172878288835141150841199646253335133260127371658251444982552357589467892995980822637659830049333299122326517845681223597216242928065086146770339839029448528946279736154828799827308883648530602488042851486465731043738984158259128161875671295820987917410484494652958121477764329059666646612870174992990424029985103524285478531948094504391290652422202306603732049455915761965613407158364178831299797480778404485614033741383750640955710816947985922091809374999262504117111845203219552938747184784850142500562718826186014481426958129246956190590794637232474067982560503809518488454514763490107400290354010783940159131419936634113065603683550455628639694416802407805105400721527070399858462245743482884234946502783259152645280797351635180364156857147468944548779422249431485644181450616178947132465802301352664556336576571288722570340470246473378158506022633085888332843137837682445003031784631959254830152630125414604339824177890100501603167500547675254825576414461658520720158929984729617287460158391257283802629014439399095256647735402784449077090184076912765518844637990485992196321069097405840257361596701486854616417210446390726327001696802979204033156340352054748538323250629805665907602735802513586702056037101592784237500848561874978639235554356788474405118546423096007866870140629004564757311509891352368590807414625289415309458716198432726752312035273934298027578832812228912864345783089979130104645556802665715325544541139806398736391425464606335808554933033423537503490410418833816585118062176814802621954719484848432579707810100917574229137212445888244249538919753427658382412372440480055690494490681088189571182220180411041691376498810947398946333874107983397734493531608108547976929073592726244506862715574820291330247771487595708587352753972694182073103696006546900261328038188967260100615693669915668442406422002879514460619645743254198413708878094486078061157600452328436407596505211901220384749674606357743198751960491653189202454747948962908072206298309343584955325115458639932333431776804231643179271980346097724446055458733028447976350329083939404814487610707669357622057299425635538980445806082960906641685100027482661786877901987850414442591272512468328999288251224969951363213292173125605488339639264640298959775705097259712800481505380511292820181947442819772613131423444543586150065336544373193931754101130427678953160575193071540088429648659371316618063126015378469701821747934290499073335835635115293219737356402893065986314351021771061856852614503274068517622697919975108437056521595026885319351112866243733533874009163342541352338532406542125461464756383198566925553811640051038096894217206857290512952537070248406612128108633079589421412528414711712268154121154540794464688040011870824186672497265991458296285983799496788086063835836061236978521453590451870373226615867842043381772310131854005653019965246330041939386700831277297990339989324537892608320639226122841380440202245932848238160041449303644501370395631394362222728698826597114494992015347942290746265353080381916212825536479143737243687218694195377939133329069689472131506203127076614341534445736719592348547061601702718480723325626898696845995878002832639723414684531073662613001265420750114840602546108918503001822919497695658336992225266859705566389389954401321953681448697610050047354772490744495527721114633897060878847306202419814098217959978781890166848184298847562844541247417904491662541356341991709559604702943888529148300223578308087738002548760073221847740949864883794739127241891038118099239835885416243019674992403626147385499975032718636174795480108182890837425103753879529945454266420588255132232485095252054810490880957693953043177351461555446060763555929571622187483895562241478031312816780350078332348448535864236533542584395456190184714702227696431477147902898098723293683661486711875601305631244425763575929189616006114453126985918775088231607960257707352971440923732897048304497206052641409874774836532293312865228954450910868539314295276457187426532934657832652117298447036652346556615934507302907626630890775003873219709879219826843882600312943426640776179314714617328092898991862859821109407170125031486254243746186240447460241188166134540135730911467711819345597938305555444479737884692052050675652608608484309371106437579802499779905704510360085701150809373903170578579470493460203872614890712881269320771127114437173849199444965115968039344016488301856249082678180998828685686204151133271222606145538749065502474831200853152552883421020307814922969424285943315893651819042451524660883870940458510836619056152610386841570287045799219012496517727682164345354471962412083513750047217471527965907954776082576326979042963589572665290173833227969329144392392295139923763777518293653791247393599676405883939590305952562708405006474837860278763447284511718005712836777699552771078357409193490530225997520214032735000000050485198412460998892086097248394677330492458953919105404522944369864752197393329664393662259472734027590747114122525834641890829808054092168283103023639393016129981805021638477783195343807471750068490135578876150097116313168718924987473760324754108286357603921961086967386158299487990356244904340280692424174086803042254336826123675259913884605608425399953279543569461301983223071779066907306995900760490223575256279741469378307146412060837273381638851838681433936808782996363335883830880831115834681578794146965194545827701696568603621583066349108630601145543393553446538351615298164003948133118201644427412958736459673389279425671897421780947701704687893817600042416409122023078888466561105601121781740293873696877452917879734904801528065229023862025031495987528883407894893779380154718409209772551948094826461324406421163440443835366586423294730782111727784468003079819066243544301476358297162458036841533144720808473240471589042113355822026323198429324961438475277879919996557386933340625821038037339142152014459002651907871314744892230390470364129479248116179800760730918256822935366796924116435180614692360430849031070453042398434916973712016984952063161240563598198780496648556942403065470855072334592566110034870579524973926213186658383855993104222293968813212958996298416311047350450593556193978142720024188773233489801218629816959189905179460734321154787179358205239659351816062802453977167084047094027938922702637253222573738915813504252882136667118415328157424860606463506782829300215590370535589576668818916264341626593770331762455123317065292274053750752171963973866799091289901980259501451384740397789716647167494929267555891803558306293384509627259205357797435319863014174926297811377820207466506551871851797413108955322323271027208034255417443728291796447258242244215838762076023109256262722087285798549388037501084343694961044464590542974331868596800017604076742070607970024109065083157996788667287830987008119294609734543528653185172358842045010360322238984095576852146400984907036636242058575618150931317369753697530875732843277296137959506539973636434980727858870176859811084929526834939459790670185806521521435412380506109651453763742895951804609291367233189474655846946451641109736847416548033546954827521448567077281651445390147266121716637457929832087450116942629460722328247089921388847898811951212308650237775345401500343402317151158476610243974776754751904830059609367176945933268475200051391298596394301649204917254121884584522866145998704280318098504752721754409575110942217256694770889451159804755427932886462624128488117109959191180614630260623492212104092698208017772558637213656690287023235815842949647448979420786537186976658497026149859125530738490857441195802380046423433130482218686538883979806603685586145989864989926609365793785293971063855306889730089092226295852136206072545903139501006108078330903522443883553309669913767403917864880005998345134569471452834536642136729531035964180153424224700395513705115435183653551307965690484944503447808866850173887244588102714579710474698021569048033055624671513156281037699165128252965310462649742622454216082527090502790070478556256633356933597120091879901085015450639081699890305166131651681626256156640005444589487446059282395625779278323891547786869817284115125234058286821317546520513404068411586786567683916738925186024095836100403483135404686865866850534559989650725333617666480557577753710994559160688462012407938824325484602332425482481468159535009942934065497327208700904902843722318691499690350292571492406106305427380369018384295942562022369686022762370915765757061023652539049167537947116666881357714136788400367148710107074884888098437804549874585335971479044302245654376428478892796760085793659794035674874180799452526283949059154567883724585493759280482157771402965734595933280816268612657185428422344884937849200738567743398284008348825674164597294040507786174497001554087984688431629211399579696416819472116826285587956770025817211447282438538821305091340032604478025260521687366236579114727396551950127450788716105643496533327995667556339941597726094239967548938501724484927750333158091731559396468751813583729750076256440772108076592465585556439992331794656884223324722831744505069773209593043345808324646845763445895152326125052818049358661627353590951187379474621831816164707945288286801253407185854219771410804281855239109905801419274011147720316749613979929658120343737270846066769748927655963523739309097194298238776777608585565364819884250040824245264030186350842059582186425031128935739357027414274702333266974224899353438355589577718859275883704962729180527152297490326092185690495278630490169393222563174213242827840595407462442571319015332135525867678081505978328613315561885729063927684604406463073288428912764182284822887838332048123076321484296309837220291603577256872592673486733752990268001006633847106026412044382707268207526745125172058294101682218709049143318615241118470849847078155050187859674641665166138885917386405905202392824418358867757952329887050493334736804530997705141977018664366208245820622906694129119540682163372187878141821432267082885207703775132229002166847276143545802791955257838144300111369370002876395631138267673889919726845031852895527967440252883239894392051570881805849084554408982038563717028984378919953109947508021617281549793866141652166807093650045717657084423972075858433020197046946026979509601360751082672195704788224415218154644722623939795522194359155286209971444758289244976046574938042643733014807844194751873858061891960957761225561558996811524357197375130535191403711015168887049629954711889596868967068676455792008563369771500789205221505019434553076220409517587470717185456846198878103346168293369274319545039352301941968492759389500524301659273528090344763056257485683858016623079700247065759770092364723548039460099832309604573346772821133628804137675675890496443334640128458996648432788326565396420191452243688574169124099767660988430649453816777715461000852411013287004201694990917991070251983541671315374690757128480949477786884274601673493474790431514431031284544711673819221982462646765442106477927275391797874355686608098819789351128770796147872823995474841174672754839915205418324636357628411541842260681457133448844718788992714354429982862407069730199530081001023743129820223403191889849583600745046627935607833162262888986442750464842880474472915897609793211218142173925178302318801351555059850089726815026634297524886765136899564500424112677358973163143023739303155124668680649701517628627949819317294395690660517823309954712092283802619236287162928698428863481463557567687385847260825728425259043829581952515020032695911428746500497941017801784501884508804523328642177335669642604804349444378109898929782119671743440083957417597075598871274777169714258055322007103801035043332141919204106392500575014447433755889019842008466889291146783239107095334654348118379809042826087501070538467606463686240280329720761564779184895257560965359607230819786695210141479859618574124068346940097007802813263937653169386592978961526928219146415217716172358324028537524501891058757688878614743777634015991090523896824739850660450588822378022412013777787615309762417359575808018107752253564043937744707881743498738082426889665376945023031907771172478687818475444770232514536939899518241751639206193924254018588965456507204729287782612990814609087116326808312530911264440043082156654063344985936404997773146813457943076516979774084605770722541310079544153079537691684304054025601756481000407128530042336595420163917636735683953797663633792696958641531299670276440670009310022092803114837658600625924945681815343982770262371343683834572274269058734808485223932803905285179985249220283683835284501139524140004839732293797454397819956954358493728865591793369972770544779576809343392608976919769528881905857188716017776566411188411648018026404548330009287968317317335502361273051178177251422731518264253718433201554436323919091121740139621553363809699380288588532528605010200314009072944593855025468153302299185967500950715256678578064190849786450508978401168023093894968214413569805587405905274317778884154802896467783825177678488280266047836586303180878289521379662875866800780907156282008677696482613965061488785803409234579364019009449965869611826586351837818831477135907980733419752500431729757887022575170971618440907374756039820056669386471078836635433774354429267699697999979073219401313313674291651602186327588031096424661672867760706446663806050709352834950966376591004851047761136098626935441072314393615276566388923826557220179193906823964577738058729297203908740781531089351270554595402765502931949395979768716596946271608285100445894092774872934439779641181212602453676460522022039274696826584528406046730367298529261220935928914723177868782411321265155367019510708726618540324701079879396799249866116900663500870065718988484957948621757309645727518685711245459301213954958394651425000093314998099887781145117145318564130580519966029924754102815458120238560112247729744994164990197424680536039064617777004412408743244883112958730171772599471732728621109020608512090241766325922923489141954711498204564788581322915300604087025442988808043226698040987324080571295196099925227029588338567255336187375842548454535288846029117189134979812065444851926005756173381803311115819342695734313108313630418398796200484223243579624699939792235425978404811307605938742389353709691111489542410592380725600476700675796318780749495982317990873628629718637109197835915890791965456643574574722236846965646269285092107499095015560035737350312705010913198641372590852773143831420233427871768975453882615886736906887305346790504425753439584838923136815256161653664803857133435260414337069224384621333893525450408172941177874587100400964816737157693341135597199699343291538134920066051075068264937369768660512853501701498363131456831655983229144717424303375241546575522046459399939029182636364389638317073990894689510847667842662573295152794374880015710466075422269643119669135486309670552105331115006135301899995117790987523377906923337335115660928770235336769667073960282064282369688794701664204862133688191969658671362312484496814949080131949153426484243712915488558683599759710432083567778525559157845973971127288087194380564823412603354481972532393825451871888617336470945611563525602855763537774775031227925996127128462979699783509920542485387143227219292747869821274868590454609060964217097834010259429002508045548546447626384502425850416440856186516146023153998480800636793936152892792429603175980693440389874536058822909420691772303560107376581692108575644036940061202229403526739551265995700427816108029906040122891689188125115480259457469967442846328869526170369526077797175872368378084119260618040046928106832874196049769323179246864581633834459602194142111740101729795893481372707909486895512657738430803171202836482657055026786408337168814200308571579865531265119994943592568942033905778883692272176702594488782395693592567763540990887621410091658009008644938172109762850565000190468746829517748091233909185258028615896865503823254846439536256967423253610161334159904158898928739292580969919212581651550830520944183186923280320825264137475158305787517287153944554300576573694442990720929352991284994662658309178127889555356398848408545468211936826702071838609507383831690577237094370959280692027181723586282757006855088358139820818495216698504679042408204824392232035564947119999532923035012522535960796584492539449657523643439958915958139630799962148212953283719723986869178789088117876877858334479607220325294144311403436201667874184499381259433448300601492509141841833115283545534614183614268611611895215213544886174694579137534501488598490652435452173992926962109881886166401703045402676018547467693094058162998849323108608952257064542241246252068551949449117219265695872717552526728758654893018998032047564415618560675332845092364605264487909412826826534976919325290516783800939625059470048984333131414390162960872891913816587509414606609174400157167661872871017646581480021805032310598368983156466017566265337915525867921349853476109739427619493527390829608736539776059456650455034140229011553264437692256842904440138605192383603526511280252793681111758462806037544464920810204027955779453132089643206286782560306489360128188785603038532202838716046685498168756508485408678161206481183734629811477248883037819755114283618614876357702200980218820645152717915051508120273945859090036496633059562158150487853490832101306269252516579799527133890120320814882554539806097504543582344780404800191801155359159373236493184892137618657675736919344939768538541604544107383768834214257432873648433384085305539499817694620777844494567571898028342019259258898379443704170452004040342481981862924988403168584039545428322693105659936467092124803047664696753754357775976120376091788402139533977329569206444439794197645572447509808319595070567023344652239455127206140695334287812386025841956407961648631297593595753080725216823369632253155638271915154624221023540137586835240824798839753194352252941394681220098359541187104863461314528801238457470535621046482597913349830480673067783957425803897627984317066853965758836357224664865727079921820595999946446882457936786990737887798326658635438052186726976837068992287587004872507196164963262030347717291015632329751458337204505833760997578009453532848705120281232107506824831356020883432731471345776872390144762437791669551077887618774050935614384961579596022294563449097678213955716336856539033294918959137649702261941642183933700846613480978256459152732658360793081630499403615467833507950038127342016165322401108684232187637903199795250981427998287928786591095838433238764720419009027014972787213468118864643849281753544861494011288878667097977778650580509976419892616673945230087051830788610256332740398241692983227297201514941105949769450950330581241854455736267848511059010813245148232749618667913242536838152230324019198644264246101328005856287571749395015157198996514882478301438686081937623248011627964469324707853220640764610869234597922806414366713515150906537139901380003281006953578599083832622607512174906598066246515565031984330006874549334393919203101635179391651524028415144200505239380161610049618217092575881339040951981433996624919136009724221493656186802585429723078541976473743109576665491421013010153929014205443027129749389217610240402463385906927458871610231289145140082967145732545505368226736455815241031285304919894754748855973826342405634479224414820397480591095078069853348683746786186892525881461528402060222941134706867132032634457811136685522399498641659763109748229229888568253947511868623737449102350437774372202595797272027079210205952814232338251540429434507501575155311855437180800147060627347981851171310392282950776798814803234249335150816077231847083435395339440781001169891166279813571249947013451175317294219243948288348298758721170428284167298524998811125333580223184818503497207294034133430848374429747876373121267743466963136929988364192729254196175016839112349123284179255348808461354988868366090965540895814654048770984792134264374626763590952725625236553162413764456773296535396651372496633397302651850602738472606744312624051435272982765301541296189452531886497841802808089900308521616522270374279164314147094080199116130594070776036266333501200081018649796026067438361202066134253373607814658373850090087522498561700056613830396544448464160443031009232598280067024520744995243126823500307134671571679966174806194776861346231675958539711618303471157861161433290035726823976720426752889446823275867805526282760785601521120369354436297998287330590606635001862140319860913352147928424893920102722678707863592587483135826422249480236966170975186738394198692685760184047652299398124079002166745291094442344801665244983200041677129563102579435956861638909702434508226901599491591320256809698678741753731524709811599208656885687167181194097483336646760339234668064794817104799757658273613538095446832049679040187281934185568954575198679446071022324726178895157892124275043572851248351536578899902258339078282422684361630251275962253971021026318677414213594520958477829262202268491554026827750037483708719775019741250079954169487077637087237978937001480210523775361378511160566313818263699604533010294257497104726441152767342902596649493361416551647110314240413742990831381170021151247765869190660989134647629789342770012708156086163734083432381956828882931200352381046479957136900255736469627470547652508593126231018920023721487413793852207340290813176328363541373536150504294661911738386268545363655126846426343400412541963639324980596875935686521163325949705689864423257499614675447470298274244827666815842972807655216776309707729010996382610526538398352157370383412744069514884724296649487784594298936581952342262014766392128195250222578102492019662746422197914266986246058696385089338551064348706052799654790851536621338335129680985937884463271358329165139189825092357735674761669938691480301919633912285454183643847010574792038423431570941917116889031853497983684920568554642148750952825459355468247324123023580680770641694361081094690503297853494971258800830161670346530574582569702025945391878175371263888795527648219144314677770285702659588432640099147744926319705971737092514716015913186346549728799511436280486503767790312172692956825101638621761639599183844394610957508407713121252522806843042651717657387647301830081701620139117302847645128403614556558174953085298208393374009042305252583623263339942942890776761866191002265313705997328873079569104384360722761517130664780605294969724603204020539761910394403382757045469779460366993210785336436731945601414228686164222210142518878493846932654581952976514203803600572561029537750260764443194554422614669442876019449233003329903452436094773056026066269565333764591344114191945814360075142550278651509753586738072066395340643815807366879838096137143458528756081784597247702578425574344610424847454008312075068496157583148236330146618534664513348783663418992280040107970753336420602560337026773255529937023698912715496707080386863733294031928058980904866709036565416819659693875043851139891731477420367912720042642627599549638594999322053791070631561681223938652479899790253046767296410306763231323406373137479080413746930771663824204382744207540107132021906267115568348418046430987017494131653110420015397435646663615386957208625723832452707828662765436562636730785901129826627545006406501843593576667575037807322006989099917673452768392986493719735936432564845274897962834199667780611599088972999549210514745080104291478679183847166169890961636838916988485776325931807663891022435131570326438457938472444483003862647479540451805231824406941549448912036857467616393301591029119686115628784963926124304361724930511252800240907683538972362056345313104174113863355170992861943395148104336003623942100868956424813969057361424007809416652543609809710065277047613925190273195421349050859824640876616182692486242982373586001741961188137787119168086561691004634659448028027523238767916182220377892774365208397017223338193961034178537150662219675900257417638857490432828120225717671779405421969746461428508360235830349963118287868982703553583166734793491005955435563361526116112589275160139259604104815170444193690975703920591295534229955766834953825677666858602393603956104614395979962014164052779682630613341179321367641161464963296254897661717644705597207759647532868710344250560574147342872278725343405045876304126874497097828397215428117805973404567511062664857892614821723687202396514160497825536153869473380798076037853497440286172978855539265418133871249157378098159643701261424754424745297063098145899402531230279377519273909114547359210925632579651272590442397997407714530287500991479358317251220745790081695803259864716648766686635787080380161359757857800611901624381496265290509225022631313145885962409193413467765224234038017388384042379338034321681470500428639409081213142120668183549612602017069075719413147344421977727137105387853145110357639452642590668217870897958963455013371725156828397769397746065402488480235372393170882809510334604926642380989748377225250301519867201080761838345830449079167901160198036991651797417032229846617311180227315950609782986289754174704321072721852548412369882057928726801411962591726241275142105650962242225613345288855312946427239437782799614938527183572338200568907349601402261276426249320239975145522465841101747408000028203641687810699017014587463423343202341427843023389785445105867068173855037816898807162809873354908526243025236687042029500627118196849171878948312396581979719538453201033485915601997129211948418001863467072444855160413150534026781061748666695345208680286395651653499479080868336542496936228919996993447067897744736543329577509503096739230734955998627118791644247990942336174321275471392686010559986839802148127926313131691459557769877317508157358733006925897384978635284756814130471126565806186459283598730845732736753199540979718797767226269557724078762554538869022049858902399448166940787054316488005077656736467355167481010133576524447016981836479981950042916190443281021021113369828053864441039037491686410468570770407286497942396437710872625778630734007128093916421311552176781047316090897822079720956615128566171572616734794636152028266400840506117307900155579997247930741830591235595944469060336555565499693474964016856507444520651271339959512062155530935130866157308900614483589807233251025385602326168178082272595830802153003747577017221108064742748148066765875339480294840617706283863862450081566036892319540377917349070026521251205725889184967927924061423037379774966513561519344743454771371220486741562852263735419278614026696638112446892921345320727688895424500255226754988545233150327041131258572932183607711991370643193403564455860721584477541014240993427130783967850464139333648570825666796868646748073449316189422055548996746020207159675081474666971269035832798796308820055127654134218470112735599802116455510682123724302846127780121251259511825834341457501897238381636222239498712946502428191147387113904981665041169116022424830093428817916337099321272904994539156464657630985519742224034757012052054014644284797816763502285092163031573784334168120452324352916180109442758887927422647999674901743251859026953459548592316238227431241542260228653786375087179905244206615082791292451422088618617912340164530019513818773050059635470420011479026352010030770128182119241626019312312519861832464223000515485404873349673854148990004009905378944499592708029119184919311004992939201824124452666157160948438282342355042845555457043884675406376044664179183181876151050850671969827534883416504800390526291431744369447228879600729597792555577100970569260612706265059388853141928554561770332451039926489812023292062717038488360873238782279337029114608577019486671669678427687998714426365644920541275979983400111129510415395690047034221396171745883708543408420833121409678974525258340681627027781472851234115579160871449213350850604749607965832445481890999389832305196039790949218180789439713810131408231481386637660191500474730202059765821811238934356568544952990457397983586310515278725853279775649725152460288775923714961174304796465694247927634935800369035567887847257398311750286293884497435700202988199511336866999097320449661776723260458669920539877983313272443479455488247233405236622261307625327896637187784770066703993041198559219428061589181305004552022235809514298641686017407182625661919466825865003351576420056574634907601112944554188361349338560498856746582088830988739199154918127857632141446771454295629839046118503199126223791040642142296185440757394824832559104323647053138572942682161340590518364385788355641528714670314292295063130353717533962638989709115686456407511963691564630881905358785997174987197569818181225814631878608636780644956208200791381361482762783356220887512580148157251719463021762911679681979685267377553406897839766586304997114903716816599307171681219405290855358402800720291531665205280760900001471039329016045121546831917292859614794564884809060355404994907492479247593441730140515307201182755473923065672374176149161133898130004178444451200591739719800443869957389261718306255730444844325332714804430577374420360997592430778851136343432862664741337229860606455617969456728073140266510927596973829088980902852810052757753738766325320965656751982496747027352949612580129957001152354052916849994997322844811419662169867159638579029940734978626373939251075174479487418202548495219356117680128267642168077130972957582096810273925644522717833326918152937940167684040621730846922957588325845317460902412976577705121047826919953789502910126960346549748032162013220751928530823733918101677594864225559686640274700078153498530360339997671916693764137628001359838565984891824510624852552347781082584104603279469863925075069849222789356820303942531386496050383244367307438643296838859725362991152222630371217924383182531379333835320447528362754454542954333993552598779510594040990310517530758887622443156331756811442441555103181546457379662620331358586299670275516218688375687104190355603716259044624000054436146386662183564448346645058657506693807208195088117571018598556051511015365029398179263297835899997667864622777632271591496393654029674053604908224000368671231535892866588693224308352166419199147618831677607139256777712747242589089825070131581352617197211212283186904459294008557793210762068130026924085108553149983655260962418639161616219123290032913845910801824571405337409073490766828185436154382515263003164499956556311442684055801773926257668633454612827037353830066352482940812882291328708619859499597175458009227785801211663608207297963073407255463197749877171696989341165599299215757006351303593184990813609501251230461429388413281772963241584136865926938462941716010589755570184877008884472435865715336191720495116248972619102761045366691975088651002403213243955216507668849921243301204166382423985678796099529190693745468660398003207818028666254368075052034971522642351405395075748969223377351060602917912542394778146227211162840751044803272166016745845508241153959452079731596890704113956545756388109123254231882797972368753853079117113300732387460765850569490256561795396115342292542837030245152813359661531846764731185857127592429016456609448932825176887979432181209974453683549819510863208842819464595261524992861567626309327404286187567692796632827469487752616072217901542970315495502261835146333372656385917792471961988694336677213726392865870703581383467081333347984763811572124008517103887214509508234107436450545067903349329617200004286765734340525050340553465965307810445668790122477827842208972513090801344806133518787487039890940714197182441674655444617470228106302053631715861991843206476484339655304576196214119964379596896101714475662752276029335818632453373751074861915445578892214198097392515139169552784397044156741720089875495881320655194369131237485172802156258330385578609689098987308143388657752606161097228174767410299323408345788221026006366352205138350271377512233297530415335529437474650361259785212261444000763030778726257254584290221394568166421071948463669152927402597325501309203950454961400873358924210250805723208009572342736405031719566491395188433037884077801919523763430229155247205062128919612496215121629512742486033835811810264268539332695699153885529423608703998885280602478486324204727005408836115607334599741919645313472889340172035924903084122800820918422930284300648089591120645617807941963936207844492623211217442529359262502675651749421809411566409403654118844414492040484920927314507006302386815921711493088915942956338987447475144612528121550389644184835407422738400482471633686435666495453495206202306709572494318907208022668730253831943129950684801425705773843006108493571738014592780829067301277649708769517628987920642950646125623763142642511193388514626449838063348302317187151169733292341556998333940337158363949649514939003137226823568130359034286023296953218413580796325351837787290756543406299420842710676495243133219061009137483092734501651205944269524471666993618531321341449848030819117109274340161086426155894556834684958845845872807410573268358822470127222110099449109582935088983157546170985475003190911051860705964694663972375452033683092773960579105967891443953480846166206178796858515231196557006187478893246018626464041288157746492174717245862735252422655025895847244280111987821560000801293991873247388397694624786433545154683003396372834770506944017171388810131762681287390171538377780696178181369845895835044868952072963103798168971568027249073898017910931726784256990677491047771501928907892012616000991430825026177758658390536158822836933418893590572572752287971160677999328888170077570013008261736755968430010802923218360427466913756126550120776354453873286111156921597976018477434119967551012154253853340490984733494934220174834355421064709860540166299340189857166698321181256531152809942058467039235486870172605675366049391337542849994374536135337821395170944645679696027134676071236002438891129519025328740076901880055820876000648317908518729720148433889571396921558240240228357047390167769022662364934529343197035972757560279019681166427967007180563806611892365045394647821293648913251952447715347982837191618220400043172355340733403167852681349524132836282971108764664442074484420921130020551329000791247238363754505829199568723616200796354094036742532826927976603596887317416635138565843933112317376401215872646658127513998335015332653354110347296010262462640721192504789530913007117499626107798999821546153227034245342919209466659235444299169694076917156722219005303693977582137772331876176119387422889775972112291392928053887971463217373419069017865225680318236315363333001590748499790156250865219591088040557350699462104978595739365435058139661464827095492312809200701486932748521780174824043980938257290140341431361848340221199902682220052078708121621193901632800902213310810207096739949990323635614776781120091057660488350809048087052246954270582653968704660873881520851498996448485318607457312462524805290608191721898055644597130576333252254581177725127397705237280828563350750738298054346345662281603005799757000818461545848022698075974517814521054498341697165595378483341794141339233321341295486970290775216689505121141835493541348749870816120454200734239691311051279325676251312386101479070082998793460108188506587737214851451758918209957452140314674878070317779898760708835454506739291454686175810746623825572504056702000884412761941486678354837178380511192857060119306693996597893154476087624612865237510619538758548466434438614989417749266929455904373358903068073141721812639313484495708704465462742272824267233871031222105439746335300743456132102031860981265598076372024888172372038288419738859551317159597328127513413400593424998201598101140366876212939280000905665673142492746263285001329648151618519039200036526121796023468551406136779679749535649404515218440910631423472808727667920479105723881506743815210747968772342249354703078076515033703777947933836100425789883819644216203388193894089705375091772246267786933914522906438512401507567478915913163723926873083041109982021919087505489035173327913789242369256012794684336294327655151166955602137342843047700816134076083261651812224266517891384617378194854471083518448103521955598376144111759453957762023610271754106026661414347013522526174857352786994324854354136278963514409328435898828882646119472959878598782422175923756663677323367848805374632086489010978159759652705714076311646574607350569732743101414087468170121718941375553623420742743287782509382636073102214516766863217659352262356440224542353336595274841022133152199843887780141054273630325556246005976780595305774073328854292855767255160653208742273438766878180012715737968750800642359367100347864910977625240201918273280957067806477249001327006852502202285384731144440248166704596373269245497279193219228867629072812616273404054591975746651216877244476960475483923295780077459558705317650395359134847264809759855909591762705593336251818193205722836096923516847561327512111300821993457802931778704119454976367663193494946440964712492087245115071498008162272748747673524491645537427762833538434074916364225595071548010493653942415055822688379048715144987872590058741558527313316496596150184893886227004481260053673288971034556444006086828582117290962421429120511774861691888528070531561644518912368785457993903649367829037611311278222699452640529524558758561399704285927003452346944839847691266047321133754668680390223538360690776308893518108398598484583930960015066945434897280015037628898256741182796807199646250109530630789487280239084926334505640145231212879542350272359172728711124604694260708353203588682497360701071252767941221452389096361970455543252741051659011313298401438468072648863646196191462086481529853345933657648540402686137512336896961316002533560176707074997707545618118821702110852578157131943555738130092205883027113399189357660157269663014330472877548936035609437038668813837993877474895563722942537666471428205396965506824039316713510580636458140228157099020309886587596738645343988474601521584380888830891270335842851608546471430024145620242862701820886584179227614128505417881753644228057270897962268220976834600389834822226599120301832918283311893025732902143636357822142021277574996986758699421395912732638756624341255316572677783161751010385826997090905656142959695628970388030884380885342287048768269434938833893628819004427393234114509456287690732701226983655081076111401838192914824034113651290125327047950445988582235404836858186607399655385573380958329065270700294659564447878984152161148868613728122752425380977685074244565053912144155941941758628741143084217463352019736054256906375751563722521544376916768009106842578947083021515022357027188695519406111609211036112020258928063592258078931037070160314956186561885501267272477612562766288480670757844410881981537773286955618642319719003955874457779291220626030418296154225772021583648704232027987646698499877081426757973084587298147589184700669168739815951200970312933078228998016347923433014197297058755114633267969150007895302286516268728433968794735613751506504651392283038918388594015812047345061717248153030661868607573423269846997746121382089277797144671839225683952674597081817849576181009816111705580182610673780355417643683100920048892041162786810941951634335131243769119378602142853978003648184388950058247597878691401196583625952116736985828617950999066642653059066957961075495377882127474705736496878984429429568580641395299755312882242109591699266038341219320244799408769876804291569251705620334444717637665139374784284503648163446951448563380541476723021951621534653945230787876543069588722932109336373896374981080836711699256926514970168504948936772457833747002723545865964475570025752019891335987213808268410050819472333891257683096767064004264735802382205598424160365687833084576430412484124369610807898786662843696239060290121851160724367110365037797950378957508214948385242487317621000878373395429956479645273463039741732144517471746738410304668385710056887176569696037990755667805522174201866229762488397215738165052317872882035031163213869890146664710221644519720546297609769588515051724860673903668612708779277795489627378216160296950428388394588413483180726845285669715180601087072029226645332045528085598415419339462659668187361408569990830949435705647280870633190930310683643488010540283531795252219042652283653820690201982405897135983710666028539101980297250576221486367433868901796788624475652570732928447133088894057193310160868903931038413599741324285135939694416305294321212324280549331040160113965443054239661526664274015153876182426351758096547987435991775893371466539711829769604071590542322053070879662027195818594263865318872624786426094680689302503478153498529975635947792145397897787092055256966293103485985870517386830491388966557575560483351371277236438307028818078489878298281912225412847955501354098503678053849209733542202445175509239603670845647370667439639715964622387315083346229658598468427003601471724728229748838714547381402250656888367811021799960883638625148038488380654840995622546891511593831134698153732633916918958101668201759253951888823091095782525046218254950640193858620053340317529185845452147841454851454561393201207496935100750335182660826312370275581335607615356229957521826707043547356164690054507845745044609647925327438481406979594398676360946823404257663226875079693011450066125155299946792923046744693227575057312359030844693845242189864057100745888036269827551028059097854615525806169664885596070396911964981773084321316451775286631645059489820162455850696858774934379714199152084142541776354194331550137214910483345449733740646884422305927418276969278276041767377701955608741390765743132902551717247557473639168508861585523403477268251554539601623306089746141619125085936416123670410950860914693238498960661525241870827458061613458144156392199531941615219076787340922402957598264503606729539501682099678178201668275086865358836201792283256787548277210163765228442078041223014190327972174485224167900926701611143470132748140120209674051128650279110258765893036045040378749181914838311655061607876495274891731975406053810333137650638900751034674143807751111245226412563316600413955774096934892562280869247649881445658732927668391773542456770969488101280777670320047073690059771489092799300481702883519842096166316048210309529173308228141054162296935110416980916137353005148635286755616381964371679085423343079926360531302466382204143443714891869157950003763755310067102665400854339432697429548663123490750124219666888050672706264899566683955016192405509106194588729703463209815165849902392692289562774700787852755028667221952747786424194577336741965082522479279813899964214251572060498034482060957820914983539284829873927914061856439569650345740368108015001508316012510807201391957777484152310295380524802576998475272500494198608880488376101371481587920516417943208008348274873053209250187583513038862849227848723820558460967371201026028007139572486755427278193306680271308409819081509897649456307921311345729985938816048298829721395526531086197145958297192703698164698872393117588135886539517631083585516100744906538156993107866957470368415262426332528816405728931561614839703292851779677322652932276658669467889408307879117444156336261381042455278077903348385434985484126672183166269131235610347980937802923629538654756173632580297055451687680477012742674699677069530979993946276462847366057428266706465783376074171840438197612141595019781228391915949761226079391315298430787949572222324056537007519102993145873601107092872809672007839717161542095577753128535518301178328267735195565820668782378807451655605923896919830783974527056664286741132503981959879394457343781421173601111829536352387612635127748473981786185365480918285079642002333868427505063678071684443635801498778370893584330351334135256803950005496798358056960392517525902470556893875358732298702415760319238048692013957061450776657514716570429697242708531304008241865619757933707278545658854643277290284090177125988489818446801587861587321529466752734080609050190995980903699451372763267597221090123041007897113991415680185253428687407606878998951784575210443143327581833898309780547252735662570165031701639135716983110609431724327040564775844793674451886044806680407276660650161130829221280857138978628641119645176761728908578211698991948807570187067989745589287102206279792576978805846730038903922740158786118093898850232401627984272684441299674568960483847334514841898635779628594273105933113267329334869951932272178312403937733161087174632990391296121503462950994447838355234662441257900375611046591358735836199798588389325005951564752653406491239699763526816375312282939832522699504606711693583794664991268183749209120693249054090521234612362530402996363915486030840039227908107764371981048872822358201950351996455984281093672407908592617581410651124825292024384548477833755099370122927924027971885536872885977205967107137546210055237972368283577691865746453642992205269782403549653843902119861106532019393023244886008745167596161754913196137976268377200964553455785989548967233147147453640329750190386635084868862492124057609990915417709857553942398294884819200642114096590233119982194812243201577650846047146218707956646215985122752280386184121840729671716007260483361754927522848457062827171400437141928439981239749855559787539003266563995969599841203874306855040203683903541074651950665161315045080160969131526732901155267595520027071246970700568896407706921675153960254654530787890537594252721981508626356054290163269416113935044695651993377413084240067385027569062967134839806068807636958054492746804008507279128975816165226291130860829978465154248685790981858681372571913632602773373511901135721303920204712211532035636745709082353769269140686226040600184469458240001570174341879252036589173050304433948675472692435500328836241843093299766566914552899798415601313896085506313395006607685881027922243887480142027691763227127960354567423363825409876454550797013924853344675254825587129983772081452171049012443159293761619446399126611946483183832996952430242825269586817224299614731169589642957028453920429803133577741648126424346052488576945856872346485581083678886045722151016391342104088692643077317981799242201632463047070399118432948755677315948088338535982121581094374435539752550816076549282516256496978968768193996889884380112496019869812930456607096186663680830095006488086243280684956867527059142959408908783769179473671721455167286962597777882101711759312850841553261979667910639853770760502457589665257959515400563564095178701144421769095251986680309618228452949555353858115740147137143121847095377575135856865156184723092554981851876272635749310393035422850603815898673832474150518437881011294388853766186042037991959429867533531214244748688723695357885370615218199029459440599570506295727186477754725350577122226485916081716556451736017011882040753506298656299485776304039637205393259959290705096735489379655212976871218779654354481531660043404939259979962258993128168500089267420209111668052441617376434434600762865948721912615818838796082647524873097719238286012330127108538513747611658263334811473616074911226055148241243155131891579613709864379577020585502706703210912855118675842425057318973379107376449850888003947749812771282966462925987207837864586020639903067347159122168877769108447104559731571455145729748979344979143605260380763394159475105307185877198337574831829626574994478551215690845193745766283495343331967340228116336046190182532809141147223958544229519940218682819916901089586855041392006778383266955944745799818863312830879511215111487246149878709558362623903958710132905450911235813304179307027630915524572870373480045782421098271038506533293751527571516641976258291135708750311551174611851763554082324774959106126849453355618210967397634838198260364819409381827039169425536412789139211643116631616558220911719776151579203494022612129336533236019723932468688516362559553877336736412009783676671706144474823830268923541354739173356059940578317888204077067031156391153387683416099235424603940736857838678610308787038861467457213062365920967262417701098889499062383937109295353620115733875394944032775044581605883954878077230619912176708253295987364702570122747929361861349957889488988911257032334783063904632107033083557520207083344752478270003262285031507403955915105537346641967841328534949516305596990823889417575713049669662970229788675855258962193399779757220816055430735317656600679579136753158212781304292719114450672545895154132451833504279566251806223381083149446969029110524270747550082275189502979395798999132537264465614665352976609433153354456518089036620379342667609710643716646693813319591044911060346893820684852630516949845740851918027457859201352680671755430761213937380328153833263800484501868868248528145830514968276990741931405360697118367170816327595751084695050426090174868306342807692190702456648729227878343155141183651227932080341070581222349444250588015200406347618690883261651201623523683949025291316770813355023276275237334367920435389652804011336906590987015258099692499977260161786074538656312190974351277365765370070262892526280505387683418493299371581601202199975666026671389770496610795821605723887594674903000712177367560777475063172148157753701112671500518582685116785767073782028000971152974035749414234328563254630034882969900480249183658540031594542444743637003447220443663151549264776191805154672406051627170174748362390908228432853045452629403679619457244085137612259293583374910536400669684429021623589594234467553873496594477277816078470862465326199149350647745325397693462376612677112673735192990922365414628201608287924683865093753083508343729409713459638561959098525626161155076447445771111781777889654082862832378818402779456132697177041076755788676391647360922605999590929525629546557928659827313211292280413563317785572930965226316442811258000554438935008969947840157289423098437555620842305849914001606086475306169475008545359103944271965037405462347839912314158505134750665222854353011244051727723824707945324911629117665361379803532558427015557152449745499939571911756604254260737976237937696885826007091983559054870133554651890799785229013984830800367870476002035868552122437150005293060953062307069598554696304147944735236766998917349506341047149865061730623345878202477619360008548317820329629191889211204848822019192833764605913973855715592296467381608185619533731844116582505058389117852074114952984031707876510711104646518868131165302550748245375433236658678403601865780180443672555562087436615743844503427814341556477645964954214190500257594378535494940974482848154836101252193300640568749800600794684142254695657437245034698566537653200242505779357887950107839373767509283980809494287089318137832564238730788436797294886934375420555881130019218433236666016779604833486434513988678098249206466755492397600198131088220044047558647052068951282502222753355451270273887052952826477864425414922893411047177110122447700322725200388926579381444494031082824414309064170384231003089646252764039200960830713282620757285723183122541800832001103838518429477702507242025179607070972155129290873909315589096319172652708722039129018045556825993063029127659329526234528536652304420085243406387894206062810988781983779600373385472860484022253842837364560088387164086358266661622239106981464820296910032489575198836775228514221112415333509565059267078308154350624691466373909641254524461035211427831407128325057401619608882035699589329777100272780605035204849500804977632892850404238574187765130998376841531358469155437339619894212849829522390893401164535173168406336818119502918621408807376663504628047689474703721918316674954785752289759222915403547931542422737424139165093543230189851853023899837600124949184217114421877968048033466565940352523172832259871066062535878523089316291299747086862542448237768846156075706581131074767405339362779411352613270557095928606298040052131274536113654871597934462830790319464094694272365730107040837167223042512182332793515231568773334518716547368947120866535288137521793458124740646152998722254589259599776673451255964340906076438798005163122748562790839875821070934339091538524994904523367395648572472091339959494384524201120311751896745165927587511775924236674013448356589703832714847311982290145388501810235446450154225941301612468268842587169037134224310215012847898770479929933375097889598990640757859800515201186377879213901489811603864077006513827962732290724770201866354929920751490338592423162453355611110250545916939898518996588274218760884809951792973922079919248367091838518604686596478789385654276264081788393985140879962284316933988350176926243409801770849176857686360394167766535322772778148510814218337063432741421702409036032888075242961745989493222352419847925697978112228164322722134332359752641436359075454197727664057629853721979064075230521964894927669090289339197366820021632894098880985819049378517484070869207468778232248085547741969404196245583231903977912764063502539398830938752019958747555373225298951553354328195239491455486901377631043871960435180165203886637157002975342327704757908003761747756940357994113036897161987013642808045722467520145487159323888886228057999818608192307652787619420371151804459583941478279635197367422670040859655516467891833600142681030233834284436155815189849414109800016492773211010393340572452116303879823844025649439587432917996868554250157445154999038286546029122866346830229443893650835229048069016820181653611053834548638691498806883977206514712105845913153523983103186360284055410516637058403920312039489241529867300575596370599950838182023333165344538521679603002213837265838013044289074932883573523967048857455120251095845757093175281360264714249137076434201056473960358733937180644163830646502805992908277451905273145758263807949374224228404730892492982419763987625021728228455989304907733592472421182185617003754194897859032560488004643191335336717620584635770741466949385963325526639649405610959603221053416320504932968381464341542856975546692472002533538615010796261623391811886711268763384380026685672975449669405286630251477922194455374720007800391653999416893448078159411236039965616349408353154874769602992227930916850518208018851359247935564852092491620573297473728840621546704271841786100802015425407792001584244850815218305181976811435674560748829318051675761788063051637294045950121316672993884470114484538706230822074703260184449854019930153082333528894721539832999974490426553853986446929243858860625198733574626591639534206528670604460665651800172754056008456175445364355770462444403262072512227688149893967701421917856622191572420579839736480521518732235134599839679658634020373527723893684893234455451036083793660764040687043401422732057693922888045668821256716512048091200812656620135364504327579136461492342323181560221418218070858077641154239480453580752789975000868008970646499990477141970823101980031870202975671679953232690606990051404861755340590082704764141849353990298118790169245031435966240934354073206613454915310544947163003420789582509696038083975324120158658564019367037022536927330518845553279145436390063753683209082118646077526989614459384428505052773452655195446973294146363641522979294037464723946420074268103664477286730451317261377774163405715779967563348479378258377006216322025912886643698571099305388880770029559984844165775887730605329970997668295354465167354796139850927011553157168071098131824776561286389109578111709038793474092123578306368669124906244390126717648905412483815213205874916482612283259399859626335104550884223283750772643901418790446371332366978080599428062583273838253244240735482265766778086206811054497819253480486490935694600586823756763595379353176070236695992571030181056023965384222736645502524381109912051077469126945533935904384589273705363038813399148841353919323809079920934971694879366608170129907523487405738807903200431396539791262083210232949736463604678623680736019117566177511064134367145535385877493770971386589306611433067260163984729095842842184740106344326366410789917276273614203675411382576500223962136152820519315399038559114998194269828872997836938052655608585175770742774432543641614093235783888864776873460901687794371698726917707542755065047468004647064270521654471139257492002012012256745653714518963648428299792974547834774874452860781601297297713431701970356012269950114083531816287646358824537622018040621402436686270657324190492139039561165039682984766571817513200592915324676751132576475343478358727276150520223420516001797651744373994727393472281617697031998464779685022363368239118083364484616984384398124605032232997137254585830499343097922573183227502116099352796762349931159964727788645467144876631003388229360057226614512382129900382959683109609826540194078433269247184814056803745707053566486394598158905501700556596788950202666377794808688071567004037351475047722908866661429616347448305100463284260199277140602922425090671744258598821450727540082093415016092442389639209653613274335152572752482940159503747325496524252557165002562010019321913563249900004983069371490213884562442481838853934788656542458442302481332659317839096391191587084545731020538931675382439166385393048425534953913360312741786496678247763879283911530256216214972807722391184384440606450868363696271746257042143850695939618055836114349639077467677574431982562542695978423429559803592495714193374029990602358139717502745101721686647587861523620746066686564559759141344701164195080302730759223923347473476672540868625135815115223468001430774625282532720876757583653717064689885172573289875286267608546756523139735258918299271563796518089661450207436310357655597753953288963822290381120481856774600521646919055629452891375540715112644082281084813218805114206101640621323174363632788074015891715111306144980316268339940405944185769494975081075770476229260972286966867804088769271200836747005856634848126868764139579146664750642595323648891442191674016291798224127729656005869451925417145224085882715583090452110824905962211227686557522936995636566257096551044965607911182829936273651331351823522976186336215365834953249879558658421674839777863023630475248511881940483411068907540259370948113128673103199472029004641331426900590564011724221194265785879317329087518115576237702257655206582689515861405668087578767632993149571946159238155748513049464001860368327427614278523735788308987893686764714270547662992415904715977176734011421548335361222203031515704242914877039012019433501964766954891248910832976881369459308076526362594080407316646147045451604910715754439331940349389545398357593521626452960670872263466376209560723143674578636311452532018676056241689857331720490589367824016867631340407221502464057481270374621216140657374902186216627029653773791481981053104672025559772585309785832714667933181192959468204216169522145743063924811551945609275348359152548544257817307676412682503378067560140187091203585839387633014718645373884721722835475052257492906718077354574405396501200064745642399156470117932604628495925023524166841089882854758089496283571912809600911406139506907136981061406289168238719115167481704694033965035357219045236292912389454030090325695191089384100745513672437952287910001216328789070402756811867290045163966506644017313954939755241410564113104847909954547270331253144841130862159955263573289256015135096391934915550027915210978219796642076644906990380566203725377746215470974356425881031886970547873773817127336677556089326132675894438471462730865493893509358106287168977048422025077403503386752555321320496420640712306567476989686402556166305155278321472971198853067956609696787938284820317519648078157660095517961468362560605257343151289025468907026082615597208159523486627895873650745909022901525098729996798129909760234252618702103369245100188571986318357321986581339576267806607313119783511550969740917698873731213597433868246584994974105053634366165367203111609569260550927963382826782690084104945366437888804823408624136756239303215358204246995511979284504596871904960788610702309676414532036238862517351548279539788209118958999999320498092069032377019485402496120618783899319495620539165848225177602758890902290498639365253982084373519129174254127653866459541713259189199485175383950233609856251306929003226535791126362605156346537309932144551237928012782487074774243624015345288121284258975812487147906907488739927502220390191788036389570118631418273291326069474981249154543463633268431403793452338187442357769033197665964621509260524339911040537749309665006460196883835315552454502047483799081742051972973888547434368046687461788991146125299460487227966271979156814535201992853339185156728662846310206639833217730795162242441398667045957698805439881783789962971683292515022284901798973018688541122141344042518807102093560334123832137883581363383951108452264118759408238998016191814578609053929882673546669523959868865154452304155553545464473580794318275138236787592425384511119871085116466446382278843755184582458284101455443639756775609545029460291722513949597748846738222642080062073899896129988692207958407528699911079953800454172400963371732243909958932939005550939612369963834054128914931164678368117665748147343401502412010880553746809603234708027267336871456869945886842773440894784803546269842346859948789536974374773218437866265362311486504406441664383713483267674289073537775098383007543933352199731368599317270858526389657742867461153669202166632623610989423306641476321927354018209929542579060431979575342837080456814046596539644114715827021535024973911944695772049084548380641826217150198943916021474929258541079539550880508115715316909031058160843130349632871747005334711277871585738004306005355789253662533904310791151172924667434768667957041102666196328822010140335956176803627291662897555644615484412768921302070127805921824727345173444723264778556870673021615159375661322363481977808373855214370038661197159277210191357358770668435267420810059656202257934930194854093453296354920198849614144602998568092763919879402054904619173126736204077027674988995813417423468842881434416445068489625308268551624572699493042592489003980591424133900138038957732988607150504379464014925773317026709284908610228441971614405482287721815473738162296850388891606534980431843623908510633069265707842177666187731205785181700128403580045405571740086611436852341390652721157585068841154973830581228805824472932669501321840711294512222342960013651602990052113644955940976100259483167156321383603239233011212231892482923092255149928086601796303382133007628917691945161691920008019107306132887662555668638808953413644374034760285009946916490849061847092475547105519606107671802432149999315684236759601778541096821102113569250987949567736384816518427108505162992915335421252366254622002394646765909572688667109839958384836367817468341666751185623689189589018403587249458805585404853737578310822504240148185328056400643103314289811147174003023143188721803078556491002586069900546638193283960229593689847074632652560969946352866019608985862445205334917564027704535357590489321874196233068239240077695110365979826590915935192129201252201225829309242730247638508816122880089962110167014892953636839403203604780702187246223566997992018457755225909175759798310091929031098937779555858589107244400935256218915695915179035070245376573720265528248516860232321186526434925630485660101713592397200267555939941854934625324163576009293180069797257874484107542636369184250687420326286273567121064926299421116723280199271949664246701486712722685562840765031048424582310044099970533370439076569544052413023378401370080237510595619388106901593669489154245320877714119746763630876355264475263257524865070624761895262405053251547566587297097627852103711607679554885302732010272644953765083488333463738682406600162643076703630627412868282337576783520775237744016537547845533412099388292723261447033190379438301847349033370158878908589348907135715604229304689839571960568884226388025913379905514998043756148314437072786168898225118080169278226226429098091149916481854686183925146607093072375810134760515830342946067246273136570476157829033818221660588358539246708519002793349517366335851732506173148049249880520341537794764632422662416589345635877562957152594176283161583627913530023698653125497075035461524641489602069680367353957767514959228801819766362712885070247702232011434739201487568459766841313630465249622808827633971181151964658360695603260811727655647304726223279812903143961310765255467663487858350978959383876465838129891214244282603370999159497518561106384796721569149802239185555052457297774648906856360220380407699929222185232610164149279382871708097568683532003776403827621252056772257450407674779784039703547176600111858508783240178760772213969539493616787563161144236566784900037172850496096457090555945441373494552292098134369209741294513155233508421065386965590811652088234741754032712537585835787571430702257742092429636047690029482589926848152455178435669344650870643820703971219148006873383396012929812126884676341672765636201724708885247743201153029980902496669580303163242701442196675051798823840180363943477987579251977603183017441722291937974259333525234365920484681195791671559085504082201837752862261797562598867409233666760335564619613792589234971029796698170306724415919056580157313314235733876606118850483602829015471876063073024572060463897718117978400662628827247922949742518739096928480522012652072835292985697066264406446630331618504046565169203069328205831349110862087853849978143660611650974562307380257757828292706332553166178833212610001944412643040447061608736091819411167422278548966859743005095664388257944469116092765135118463392004481506772014254991571491940959173091280514401038296930760285475882980688716330349245658952688616227333198632020134797813882191250129837426319685455240475500832642484067797826751181980277348760404293974223062373000627696336189648171560685975263356319588463813918466017695245605985607653994883182401480729035263453406141316253794847958243783196221234999417675587974882749532211723545376741207123011225145298623876742915013167104622168548868952321405670529294764655572082568136397060269980188835263162999499310979851697213177616877870063030462537601935700820723724637602446181403983105726888121002561111642188522072395106630407601669810521271217714491696877013104061848021784442809087094699699368864686972666596106277278254742579629095270481799642236946844081705350782573506222991270114454086458805681913941877886555912049011985532266052824811266409426287873676530901669061854529626110622723977458203835985457344215833066718899098555384609767225921661228284371289633431809398787384711560852270502116847958896751949514154559537878528523013593069231085485865497785878819103069411627746342489290637832741819117989798059058294794641566922854785297105314887939297410919844159565358924748651588233554860577617320643111981018965159615066898310630825120336795502076522174223604757926020365607553774137897101075589607656761563695898085992092566952995497769771137227864330607615796432807049699633143761823977953551360972092669977888664764531859391196130680942009936193004063645746177790095579963425082764454840259425729844775681476229743538648955406611764311735790424717084932246522725674866170106011258761480555859069353263118208019572521427562489086573717045526345552274861635327981118118551096591560481195101791880059022117741258683349217334539760197153425115349100181949597810805212590378056344440914655784407617524558961666827683489907761521330604230406771969467751704259887800980381082853822775792815488379757326887581005056009269592391448035859153223098976888488546131163230562463416162388931499996954361597625876490445362978663320028384629748572722237431912439335537338107784756093337137131923026773164758721455842048282719216400036199330006264077818539287806855106051116809322259881681618872906208812222611791154245873467771025588217539520662340242348405689733481430176538618523269478111428109219066445104112300637842665671070895788197702089501650744777182414474193605224509182328938111491750592625382406653726712470265584472743370943768296167794226048394106988215135222747790051335755246466467824129417430609942362859423531901514152927704692812713158348187093833340582914036893808580827364845788973758484105324414099571163738586778557607264803617675253457798690767241497395724678275829972210386279165466465810397503502607113406058833546313312501496686685179749103673318365344007209462558275583109689230644288836717928434193736594588759836368702377244871303827723539146804098142533347934206956131832315495084297998787280516836781597802444696809384115712470715068385742161477401736450159224525623381977976326676225328421506160431019272893824779598968357147519354493148344986185991407902450391190952375937627168885441362457868030651569999836942633642728742859333687675876806915780478447069941862872642972203479829454636295288520331392475953357950721590492287886960310516872232747372989605619602325650171526207315160631576553440174867469698995152052435230568428889736166266421929389264225734403996533780325176505216321492977207008848567127815745900597534836000122242433304901073897751971590998508836823170233305662136088723109618140300530686159843751230234274801158578097165122891130719348997753360548484957192082902896532054278373856699260729970048737994144784149960279174706850228237860176598980543259581867260032351289821318157124323950633475070593878630748824378574673327224944112670317774155789370182296622906568237860310399745509691819972173059012387528817256762153949685455654997681077916273468722521608652691337523293030670611624518116890327861685840596956323189330989332936768014133804382774837555126282913101006106931347472990744737515612461915167363529289542797260473343708455876986147053511393278178161965496697824339274375134824576048030170291618728113175679909316113664240258876313864706744107709266159860722020384169422985566048358176736176141810065759796353712373382651832343452941959150499606921830220823152749246887305508473042118856558400417589021260985088383547359263595191108032406489620224544648849918745032238935287837772313645426285305759665281596093827023230242488808484889362009020797969038887820104141592739927311084431352033362302736327940872074694327193422387157600419851571407757255266172993237745723672199634751663663501878043475795109264038248280233626014379444996754193317694901895845194181089828496333344175472576628568134515745070345483664280136362650510678351784308477668779219667582309414812248318177469434693826809569325037632580548544606778499744050906437909182910702132880780807095304906999352884539141987078987136193728521150921677436732978215594282708740981342526072849199902856519253495494953091050499287099919751707400083744554344868863443137031389785743555450427036732663523408263911506328817548417015525050624353579601878158887352920611517948080780074283886480798117416645358976977472621673082815764663198736029011932246029284842286527824183730584471838527421148876886469133474899421949971902662646720997746869932216023773745769146901831590062745424233265070324092371842039258947382034768145667654079907215122982687820851849669695402709283028942831152918902767104333659852979232938738032208397437235303488142263711883991850974029013885169328641564630969699992592235952912343459337078172897775647994879113361113524879354958387879839173811775239570804992882975977360777418645726572765201540643611237960719245221994578768581003963759480547351275708015867856147734674366007263395502943018948232870915817149243413725022966584670402503918369351289517197343172049847417632385385008133877913443052609597125337663533074920671159835133821068649655418451176147032062681737656398496237729081233740370815586280724907839837502914218825757869794699042774029450565797333220616869293392604414632766664852510784272146536123750496207941320572254603512203416160817363452015945001545418892048545461676474695930909035697902894946114919077480414371826465821509449984574967677402256641789941180150045279361761861127101754740191672346429282949499445446059227701619709601544795964369133120695181932929643263031684061366803082824456810269868277757569134434443660990871703118729008029108376855853623524783471805997163292767187671459438334033293327723264391999167379620233119451123438240676199378979952225912521738573592028800327807977035110323071467698112359600534082764208344481241580058187378233503498699674544079158365394389544577334122295304717797628934769085222195866433062426885584354978636300205461917339215173358850040574992537433805619076298933762506331307622158245380822570018072954583158825070941195784543176844392185641374739988276062159593989225918192818055298030338229303009877995824312741311399802973123943003337796200642019859447064605251691652742654822901997266731358224410292195457240101337065192524680596183527821584506349139313871545040748074818632075445973400577543176654199224286575060285987460079784873941284560502600259783450918627276628855475499740111298149390510525170962800273114244442166706018491633984902471748793596175906581475085954033295390083902909553564774954386162401307190719260485127546769258303149073882498418059153588949795137480969117882501376727336982008911051272069012170304440131652201966583287421135860324428692885433896009546055677593063048128661401010040431781784497416090128738774345980192992662236795514539455289544949586605666086294604025219981934361847901173402076674638245310399114256930751976732273002467020743418206263907763592846381422924765111120027941620673290727491334327147095593914516668204832020609233976234467485085350463633260724430629835561077931143764203064423090697335253387262448310609130094903886174300468207194578410557404530737407813772104328738134775359315252042603822590354778264499695972060047280659659658621686992605472465074643032394295133361175188672635150254467181724972007266200795811731926992555560668117078300170767302916072176001102375625635729773815441177600188413251383447632483585977764723068622872935327968977604785108222037765556110200903127451760703139496406287611279299141327451828017998588999556721347461316101383411868907786466531404242978886969373636954231631736698152425877863215646393281053997415583865257101825253218123377553526741963280662577900093611518806505214105350700235978792161375644240637424160214287623799326561922217344132338714838536220181628974366212571539323944838617704637122928774949724290716742201765527568200450808391830633389849850246236677248308755897428133687069789439598607397552266225576242095521876855267377735143709386513234314453327307653496140488425740556942204270707281430447487086691024048066864632073451460202366656881065420793102974026672914363884496137001086414760664989069006707415913137679116499721011419905436560892929958975753787624068668826677362702530269292758787847124676920343710185234352202371445445865978861652415619193992146240035360665886931483908057089682637709643790750053083681400593427749166192468438821761211334471909205896663440229352226501728125231770953724405039997338092077751019440466752475794649730807817389520218474173669536251826032246552093903313762618063036047877605771193743563872411232156686104263385063243226202506550360172250448560320042449054267021166883935667248024628732413250070083661958322851026990450968634435979507281149043966883676051283266724690590271990223044603941022564146816828809778753937022363855607470388301927746975883539755121958795504594730593536911103198520723305036456066031036918366526880683195996250668361986434537392096095258872188579533368724136370911980348251677530520707247695498728089541623109808765497818020900466407353311641084339608539761281836601292774071364468330930854887870780642427732347633742636361196653098746147775668174213878167398795721061255315242550029383023779445293214096620668775178760827369858374818247890705419551446380589201645600624318019323536437337188512367782448299706790004939401183875683169704050512387567490503755111089198852061133805941843989587649606353915523839827644306179131714798893554118789514999476707850128304987636860091200629273074670215631166435115098869676165643046279034087612909267720923364906934774686447247569834065041649361415910824109231331764169887128372818788883121755952923763124649305623152696702225724595854893736177247794281906064240418332415004922952333620526992462209934711594583006209179228471502728120839474449252143111329657604329036243824359029200166250954758988349196956872032836374493151877142865776947182846128914589951195373495593145280161110233145442365074448047427360350718833577068736788404808450536050496030039665773304447621850807508806935814265678566516330161286342179939926048188316929906321798667275564366858807025966658971717800212190236220006335637247269721543353820647871489434635293931185682570997155459510436851758778048601162273078586970200344755897862003201066658567293464132310811740119492309377384912532559516353670230898766989146482528380761823944872818317628830702163490758478495183618747697917594105595068000347837131251525442005720455196906401060958219723053672921447222368447093600769450062163825642558364877102894410164640205614389339623922150761901137546736297580767934139800039451146778224122738020010337717662265877626002437526527054787749103406704707557783722483633955496033270738153736953945043514693922978649349145630689107535980784938450884021154933097638242934787787186594199376304073437642731908196245412252366669248318447967765514501110960109020533295923440426650438041850169919850591207356027261703113284374901422582738997871002261794633129170302522705080087039489364041018903573860102192435111202218952414820067598200570869226014266805837006352551886807147349002155174049115403099680736490084151943073461765671419093891225438155120870437158625098468457269418504468245195016028399735037971864327203069938908978664410907867625638296037131358336358758579287388866845837223271802533376542117607381909931775754541400674889119688280423262279646847773397694281113843290295857152449096688920113548666232054808239027532703811266191376899773867278389564031751686768044118966520432287523232159013132752603453967962553300820008407863502994542087313151095405178576007673795308533361659200077669028494621016589463351523003919536119676395555148310773837339190794281539003246128738433633150747597994745796282188392552482881041420920196908345935720119770827230154036350725209579964628925505301542243317101847032647107941493682910847231540359277658619363286533278773527456374288344714067921821700533819046419072760461424564743818232577584399572922300125103198593961134240016474941355131554131119324485849882002423907518216172367286275761527062180899686773224719848013875425857703450749626300591994443923657503424198754571448644795698723849072178564330689586276870530073771610476371376858051478187454757847504048727560583685566211103819172315786968772238049378072846070466643323231859731043731760805591868224413636118426221346330972949908109571924227819861292380668778330655485142610759047524426856795507197432845192427869070966916296371685116484951324500543949090656555773333728289713503531944117967427642349894598475756087187713062332191847857678843803486199837414141502321488528285170178251477612723085512188484164317181467486477029114617129730206405383321854303565996704727674748306387351866014161857946733232172379674401387487064954910421888491104762614415799876512033943041688004698049315210229679300798937512741599225011593605379907010047119068651026378255752472225517228300186815160125118990565927409764413902712753988642658147452809029252053390069758492016332982657072042612414092029567226773653927796670588926588325997257910852575008800186206136532031170305800469991516600434587810839022432982716813221459824577555970218952472147809688601615189382461774907845632749510472354451706124514488262021872992278663811857700152498275481209533087866679614243884189038338993528452021504139886311368779751147682218455850129925901421877903142852411931851635478121826231138904546409896072998296259233232969262912408727158055239654083691693679002776207804749988681299269749214840397639706164825775923658787828521386065616296814849972631836749866741194116480193885544192682211893060368065402376140407933961778599176830397059935344285224717438331298060167748276353776710781144546742746310431626882142818720776099057996779777048429895986665024890364788809348813535386123478997146812250188017645724243920271022070147565667483067583429821436908931530670978994647357198575518804203612133610529841629011476543264401551506765751525859492852726672274733066925513600652689840595502750516969725662181473600716591587602223471404551578759624288806960943162196501506040414210775901689328122357208117446811529514520563163242609052855155874812963600513245648691274786995284919108125243674983415112498751681419837955008943375377924674592200846991603443579557075774242761253381617189150057746790629613602176611957932186008130226188458844256580109309803105001997885008414666255401459517255460474759478837203311723813946196029687080685824111885285861137286619992008644614503322868031102707440119455459217938489740892093019229505043120733839213186369300577793891941075926357095883126928078262198067724683960305902373063705103664337793897957849848409784695585284472703969757696238354437957448209909976712441356623508835921738334516975811285973003729661876878292076951394935388203260242944555220279689100039076051732984316607330923134174046247900724716983893094318891639726547746197235980747511511771038030904449425858860542738845739100068106990021939255480305317230821779393921771939929638927929184677997588427759071711564844501904314603944832706919592628071228743482790976597492777686412607570290149385331988548136308347253438741771440504193063961504559755364973871503765702593326762848070312543137543341140287989606264477573943781911612013311877887672377005181370921791813611457778132891050019809331225979254981320281715742938357170156172216551046221629265954738833556937217484184784392940042644838699632251455676039257569945063438417781071774771032441994508584003013914193467028371795572691700747836623667793453722796781975368261974357718871545046699200854101819070579365998870380828119771341366715440409454749937813479407584947844520435541127710426643037342411190369284235264899710532001711825482396951376536552783752629320224056909700797565900915094765469478874429307982166084594641008504547563555316626776316187349451257635235671674395749886088240182666427462215746754228948527497825627237485842203353736887831894124239047054647329661780082525362424154844278535884071318251835394368183503068776818059432867028643042621290396616522183725894740579185741035514837276147438301856619077785859197979124266599620074247205495916408866149625411154024968445400228795630060341746825486436238026453388229876042928820764831574356555948748980524124625787563625063895310981247645841455812132233310122747780936540555092573097746528033216667155579322987393557665076656219121919700326033410382550221095077631265378333642607805455634760967993218460289339400747974659579599600475601854195514084617105168686168007218223211292440208114007213372054313363706754285429831297480265683747427825975411305776209772915895523548498208659203589564335805567946062937255361998952622418303730946273929358546576794795764602330280217276872567655401913022693744064371606587569520485358330358290921118624668727090028072922245429054471040476398046648331076828618199204929114705291084186263407019979620050279258043124446898889704699112603863719043264414707103236318454268244690987693832318553192002250076646527604114246234996837384455433498931690655024417212225256416670983514909057110797875036075520277604686110092197674170342014013118927435134107948402761636399817963580206087331429072864230842086749176597682315243841110936171570829517163050084629267156176148703010310681780970522880675180134101609221311971513471532220215346558311795226074888940789876313712145219906913613371236574563113718045695184655297269271583320549487265579882126138991806939635154896319411062393265382914959971612333173615679405008274450930822554962143424070515430154463442121005659189187924464582648777108032211002618657859974115920081024483801676664754551484372430376867369986700460469448653294149764339422103568277678279569383983185095675788390213942643866010981729472973594955326861241685739896482347664713573639899618685531689677141291059897430523963319327693281804275732200259844428103444389749254129584360636567692316509312600405884888466505098957839432055499438658009625599412282468563987169065555487685227185853623508974568520295732774537230242565932337179293129173793152260592705038485090071477395466902386188341865733371603209502350536239667399091882333528506356187862613615474856859179783228458120491616353387050182339166583894717627047700771085014107676680947295623124933090719179431549510118572557283039232962233069157611845659930407462508258657647895272309180052560803097856602475987409790035700903670053167683194826397657815931721540382964123992921409750469364768528589899924315106577004089051866576216161619505644053550387321702905890938765933675179333880452800733183602330023625437896745581423105041505094006193391316760841446263493887487539409216062941779839099202050765596917456230970870565993734194853929274952170505068085634694755998280110749433697818592175755163100241010926343354794212761558954723170791294975660293343516278073352562575307429894129932970368842460188099797904916791500887006942080583789947912389868324671336505860842349633374857758801863705267630844056149134253773167351098194833469451154014754651682088925311752797374431514528927330340935072271054070533168875694070928398258242109447113176481830518644190875319439141926073162725516867102707262045011667646995511129646302354187765232476468889043616244006141686933145561471903357665566135474956247744490039077743203674329731315256299157696721349803544627098822132387269453564925546021324019199365395763850538508940278118984640562757305821176126024974028974866665514807896574754853274518922012922238748651581846917116293462721538970674854394681210889187342423995241252605145831835979311727383427724822683172122196903358399849360948222755405548506040428719577075297537411790709238088585798106133473757995815496057659679201360173337738219846728634067522290075254117801000696505603585253409691185086428326595634013425717896209950856688909810723839789836126468791246494316099064554856074763527856968707581275393034523771331819386604459364183924713384767635898277132288078350585512885599560235851750260848010693218447945745347459935907335460369538896479915125859503215368610798975203861442094852388978926827917993315502993689302658234104025490318202028414581671658193494587709256143691574118445558256869430945503032711088447089351359373659989600317758057765136415178377505938970388528235396077756428102953678514196692057831009599821581277033855840873251480142470045282173500862178536222321265373303947647826856889987601094903776516586314436770075677425262882696974034917609703092686993792414005621783051414985284737158773066809414524729363814387779519885507092335104202025776663964588754946054267842916241304149549283180841148610205595317461406369016715244613409876186854448740084779573625542410615204489410571701385853094696370136669148253954900692414543936016219458609729729488213472867388866918310470818120009997812486194930919675140339146777044260016050775005805990049711104846347910504531561919564982438032221130833199784912090279529489516744741136139693070224469684996709344969547925222411500208374873667440671398516428437622751212530119008636403371558061447002306733572458261133935505778414705779362773471481453959685715094712658582342210148916125479982345234143868085800095096127648088947695397271757562242851395740296540187054415889351635402036631823211145079102599936023746411104986838937829490083546363759156387554887650560666976402112349555049084242644678893441485530929267322041511394640590610741114489890920822987674033037495452997696288880710865449469871194749141970544087749578014936567119794613832876988329608692659562134614070659777402775550499309256952202923792797380133627173337801236160761994298034532739329475847168297308750898632038569965760606367103017261348623800388504852929439625058779711501790484991494549433054639974432628428793876177420841212423059931846483578188269568730505998668794943095563938010796495490549168055437572485849308097360091224224312139557561561446537890054746288695518664652269773766131529818207148711908537723680211074391586819781238441438309776144959584614176389604562602506060875272880942855668659348676443160463921719206144544110279373141400788469360590005166533877616161450133000822312319718743317169983332252997587206960979238833300582235232531176583829615758983740484178219076213942846727057282800156006886155566224757238952236646886390988476265662689915840382999644098865690338396167212541495465404239588827285387786826893286138391774603610868369981481170887882742581532422222939206173477782482611033842954785414265292077064676225023445115469934689227787797641869883369267500306261319415198264731606769759233563898761151538216400068384126183057231319959105794557138166606247231291470279864178904646751348997238234243300323775020990622263898302753216842253385683909567942167035374725533166473722728402239634521342189528490292296599641098555509365806711748152041911305188048500984308880880911531137026803450459040430579081022217487998155443765801136229639236179223057301955813587319025540854270073234073397180410102683839869438402792056566511213969026288725661941143148036405188426913446907547047465929659732270441974612975370349905410530732945717177022363471063621251190349819517510434349851772740813706726864647668572823975248477908703651682075936624946002832114976299238538880816743758609144032410670287183135127093961970510947162681167994925338885564203040715375100891030942325043918302993206334727627474665937815832949974616365383201661406452234674095447365178639529992212078887342283936464270263187918583438413084116425409698445073305950290792052824466427793068495994156658039742100001103035512536233392688725114591277793882860903021381172146285819360548005438423720184165882354582367510201826653328954846951701986801215655679024167691641804763481126671939607490413278307285808513615515638286604512462411367621322535851320806592012732172654061726144395416519893769927634893777760286670905522042739966854489228693483979197102179637571794159680731555083924498126060577304355407122271753340624577299578351207217542011751092596421033182892495934232591461424559403084326312299834182417955674064610068525291181183267304446208533823932253912675586088599505918763101824567481449088740812876515224842200600290392958448829236652773577389927550681927989443434110241459359235695356643595085412314135165487105753649498696270232847317606060709678128697817588299249951085521561857084233797146084185387633124621135468681035716456678136737333587856351671083778626771018808900192701402178824637253194587466534737524489316043760693956269116137262943160784698658762042501895189504659319015246152039054138283642467900935458843234712317077392042760275626790154464216330529154502004334555681453949147352885664554071848581100966547325072897225115836621637047632094875984062929256973453697470456467321218801572127682118808830079091477561696294346180347071584013607156518717765288451860418353538815824799917587848890474753687587906826067150655332907104640376252537896129946636910841960479170490881207852381807198283281026178223577654425816839887149039746689580827656751967209942038041917207443974992263960268149114822811543007064166037857727646667158006882971110964730615057259265291383386206201266308177068888176924774278997960960368401184056912573303188160870859392909726160633259231105312077336697474545128125497912371453701619693459726929792741573179933955745665739507116249537475454310491472329873851065053720672063192276403476649508220517926025596483063556662840696715386299432687970548880350446267691866948084727076538700567297979778189708461430957639604151405994288563970383938119226474045907911119748086577674542612427066239760792894047987193218277901441431106686077053376693391040408457116624848129049170136589403676693177720203066200274644833324301799222512545406484240185118298862649087702990967230209114438642803861693213747086045899488986933230618046197977350829641246546196616131106636062269926266209951883781375391720283612697557322653253303210773195866148850918528875109491808775285660598965187666508847548491938704310983295539755642317476931282432347413064370936966734178060592850345382153269733488517646297458899567838549157346082165756075066497549497218127652431059180649309000591319108976887131623672920252264566034555963399617757964368468505503470364253813837020959433691561608314955139665375342714901480455423561767641788582933589097319648191632463501977485358094656930874351006102714015146240217626508606731269329091666083194633871629034358608960315540868109222316615584082707861121755262620884861147177353678546221776864734040324376565570368773115240978316346397134939614262318688173936225691691643092713336645130488780196670392196434936054729233216675058575608119513583424440896437448899731520249785459891713679693877446224542201081084887254564961339343191301511957284657161373521654859443130634381166973922401454724164716352480817808934887586337998689257662745937696009375485933638719417073194580137307053122089739430444891474552405595110784835074005134507658818951466283416796392690249792833616869741569107461461761604815981134851089897580200807801551726038905008995502264370854487441408612074106298691640213181976648069790222668653971492711953521986740423572764770070497313238073781998054798248902458396929663276597622833525347292917828604592253510830937932240919300041791426636514436676822399359473645882571048221592548305032472700435197685162930380135590716718449010605739319846351722190837737402836845306599938995567201387083440320167503701011923994368672646129339614768084451133084149383614350440539192930313068773332072793122064169268889625413958645761429946308817648024911330285561550957918285022584887248443036165173092500092291016607630763172281668472258216173079336972588943097542636097089375098569927393953932984757943470458367680688745425978590149690908914100594184125741978952794376518996750070482378186829291425277064090235504943331980128654765990288571044482937748782127998061950786647413113949839839143240883260113348635049814069025863891369122890863316707581117945364593803780445580130380230746061572476524288826290647329709797146320332819653442626286114878974797296178835623398519595659974105170676641815972303763344737393019051143862524056506986233492127375913867551076839592151849746819600430212196580303391822727838911450578544754616055944447866762198525046020348432652419818087677050895647978355002181555798009782587896398914819531192948831112835397815745721505654646627237663567192448513880274969644358759843971309510544805973842782750788894048710581751653935318359670627359223494440967096769190144640033619742855221208700978935805817953627147096891063881508122974588091101487196776815275367604620698815631890113286979835539466789448349113532817452295625579427731782109682772538943244536474317039020886405027532621466933149737352491827825074347546858874390281007622821284252881309266192586125914064114617674479486043792577093021115464239634418687337727073674984726608198615044940189194600674132312106033322117741297716389460055437800053247550001996685450493228908498474903057684194163020501728992471683090869674720546294610197744678574770299527897045313385214182803506799819822495868937918229409652990946348540300038723976216974971686802245438583652299276951041672895597859436085932867941190234369259259469149670515994649983974572676372123863969300012239055996308026044418782391840705369573320229233438568818332988432145162674537004842105321054571003595314441063706176333421264036963443931991177860313845373643413487239854949870564239831022226666485098111628259961074204713459211966114752634163043889923200751550924661364099917886069756189442956703846088034460216135000665319886661818245836747830203236010790146168658037643579785383761565441847813377437402826210303265415189286214381270033852019978305857231942815665279862570646061833212518339071073859556761425933317311100751647230859953990999915125916820873799777594138792997578947015146422342011949735661155919708523244296977214412138084356592194487398672962752490436040025411540156269224254954052973746133720757278365323347916161643383581241739107181553934531318651910628704952428090352085377727748994017580386413302070103522077695244590802510933314647802205077799308700119684161301461060318364746238799461852354104681919113707328397478332861630523153418760152448871538253975461892751516091123971526017446948269331891837283304136556837838505981810462877900669130579106851348530420920122565602855928446183604820280969329368919315910384624383999099982149248568695031216303754624926856153727841232035737394326907648584893297889448071745438471131114233929497640117396371930589872679835809563396153312727609011983930970253571522626238666214068441410325908852091854989710794681858820837079144667942189334937480182313782718251853352638576147196088938019465248781798408733876662390725070496469490365950216042280239368969218440834414924224383583777893108492693086074290969458480097506005217002758041208059691786859010936480490190007397736270306547041092321822969195468147705571309463932088242482080418611337606225858060232294444347356327963877394165212239247970532828037639967665177415709229429937900663937379230467075878339274725652147644479749749755717528880551846979094020266513215063289303527999885196435093107013230105782594825510847166523416692681274400077194829956005861338187301641416897059643175765174556298216663972265520586762978436496039337452764615585818550065253887756505979737551419296239585355208668382736663997674196714044371760875687601392171768212051014397489555164482470435838113336883500774223337528601885822673408778553070122521466721123066617229341350411674065819544139597839951897581492983673296121660212051353959474247409714646823372608335477733658649618794564999207763700768299487295229095060594255753459844350433150808250606326650858988830956262135706767875064942178265859383438550147683596381184045548627831231936692503737316434286358069269617393980918700664059911758193951813224946117757903168610095598377418014362915113793977445240375930544317817489707668833080268860389667090982143612171873639244910198634499022603443729550269599102060558193574133559588054391337703004053104667965590348792004951840172089536114385659133013689772009715046184502964326333093178612995833576734089036627112075357435778881085450605199177195255152676367759719683068390263827555267163505818475231383661711330149227107967323196183972587611259791300946930203323941439065363118801370051576545435089396463076978532653553975053141896525999483607561905931396613435412397687075294248403671599915948651544547363830769440644532145010639710874436214068398434660461950579399211050479109431255221637761749321256669186596029766442834137780831718801147843735702769511801649030116415437860156827046027811466230298301293942854661117865744207134626301755001282837258244031871806145204763731645408929438682094454587495484249086368590338734003923224495999913250657180077086051069115782636475186833610762657057929983584067262285263944610156487599010985630613476980142635964720592906480551982916236647375797813283816815637559464848763035533987746872843761863685328638815232858930506050575263342003610696137576967685929165173091232002352192118073678351152403095186320659064545529612099660172410024556317299625945563032573986810596141965085099854071729143652324429528998729596333579828606260025970541741878803900506196030361067508546846801288389796706703622176592269514891785874315343473337542699894332076162886428515211840317291219610879309202342588187831454307492785590429568557342179056185175246332898187959203789025370991116334540988777093335436214812100843513764756694190256988425871609390356375705138667914129865807748010297577412751183889921277891130548569127261675509383953389849154021062083609742072128833530718405911985079234812960218744065198836480445421244885309503728300935548605727395646270015899207935393135984903735194859632146879175563497701986005091584298856842081878609306295659934995276035323487839670636475868291715046062197434176210798878529183545289463877437114656819514438937490646121174492665701655926692086135054053899402925062063349899451562337226915654738807844582624489489099210036298580340638046720405622456350772846414592944027675114514090945854275380594958705088618435129204045305913293730803372399902919248148501528030455591895724403757082951243189400712274449647174568728532532226617873199683590568631511242065579969837349413035688730458995081904106346459399265087941130221098665498258541086271621781934420986867509976734554705719333675234445628719300125692594374079302996748557758257823409910757531524165486334210836744869697665782718305699833492734366291772234962916346285633824123030859130140287314903988986146693295093099620180511440947754932323902164096816720653349488593478591399126062745689491976900376561382380379957308230187099905193567186619904278270421348326245851478206775698943693730604269397738402984574306603121673191041233111053279085855353790288009144698718628472244388363809856354124676887655462260766040670438134733828992238991199104786541118930879085938331510887161695370134618685882354379498622370240190490150353676756049573116570127704812763500340483874454657733761127479825576224059290829358413902362972409582724147372815698658835021362426926535866176592254469632843034210824342522994754050511443973626730549603988117780874352915662245166441128178536307556646298954501835845133479592138554090561257383212699364393282291201891222802734848753293317373939468629891495543458065775552525657327823679108276196194723789108355015733027943233077014721675624175276503778680723217918815013825428714325125996736682763888468326498104039202788158205390885742303081373735595755397412206438993930768293789050109904157746268267605303315901140970803787424610591782168038142221434099314804328320337069579875410589427482958622923892608994058158109941125791945790330365673756600144570945794402232057421715567406118925676673176631246986641807750208469047314434958187442954736227469284253100996306588858328797204398370246040508736121063569540043437455966085199140149884934599940089463464835318954932815299438241386243395588128606818570686331613259520689775809893535669208843773064762899776513105356064326897136901416547347368798128096877395205930425162582248060785365574446776806841798315383476768798382379416076282194941395817930500945553247642868663116852497057579642225162990147546466484239190503227482123745575772428431040102935492651132325128767654533228228364328363633105186171783919659090952584652234972722116208820230180135398317972879529953719569991036537016144573340880591857604321404321281061436481087380505032986874813169490684137992633048976034773943966191433699501005334224346040604296657359764415477642949727388737587947266557835296398743708732898567176181732577635620008363677834925125999684275621459709176996341488604662672870411872919738242193508193036168810402486388869744502550927839684540948098855558962374609047137739760436097626927474935244677199404018563140466317888694584230136379445787773429895238672679242154422116675147284454046630547388209524417761571401754869823552283544994189409189231585296784228878167520674660607246116558465112447773452837723750925585646569133013728732826367979302615852267653312569285796241422144781028563149900150242372482342302507640688454436130084048591377768368995529080708399555634072888521800261013370103811207535901620306305624289735153651513105530213417981394060989927447867424567141359181905252440875473533429388567958672050225549520213313283956372459416182985249589035407529127008926224627884194489823759816059826927210948113651241021506547610525834201414611354741599839959666894668288512495113492398107827375777634954850862325922388580604165328938100254318208421363292118117639349908184643565137688706990757930137335646083152686795546494480078007886795240845588915501966522650664935530813202045777407236492383498233043214212496526128519993265055016610314426053603420155592458997993766136066689889312584438111647393649551642238357936398508819352159633750532717681079603004697859917290510430168521188089952760562505284952946194820407045692270289819581755570782875654695697364748252215376857942754300167952793259519237671702755392699235567273479719135697458250853106771608153695004328736752139736717763369273459621498250358352402574208762681711268928923729222650662120222468355576795368596081710927972663574823247634611392454813660109249307865965280289712225572199454617360985492549988771081799652382189823120552778416654956917177563319290448591020483079412238291733264463953898112486335879084304426244757489482917854520234122738569229099876461052965992126248324198045606147799249054632424732650929514792877741948552438817597958195387367739031854839333300352894434945857461135450691598710342401336251619523469048043128094155197013247380790705350637671941619199415640975785880594652750564828041590114713844033277342674048629499804008843195912678846823291011749874279952561416787220475109295782122883388310258739118025104513968431310402496477522465330617037960259387141100878739378492834567362981590872021797940105284049002719620395354430132559385066842439754639451718387675815925930917457923941250808840009823066225969653832267890135553990786469124020985183252853567690744333531537933762210980613060636275494777842519686336540648866108178902343132655935305242031491223669634451961246108112914798131439196923292580374152843141826453078015118966955460650801530137076542995739911615655521686046687639133672825106645714852930535167167373060370332289218112708478222158276954562201287785810915877786448906222356294766603632536235998621068594281952237822400368880763498092467343085215505311125079577611540408619217015521665757472344925663534639571930790745430907708352177650447918351491649799769563790584505169701157160771492368362428778022549961296466568809234671482823209559264932329043368217260292423999107015461751618606538159114163459355057706295687960024800261714202886286604684156859699361166838789605243079258588682438906172101778703646482808857268681149407811538266232292326545480083750296105213017572452747694403865906593350186928634899101195927535263473091405640100641674288890273654961789872191520801155767274215026034317013535539145310078354278126900199851548159036208177667189555037229263125335805080988351913911793014789494538487303339593507417872370346370344436847673310593507360467242235321743746923506412541429383777725596396576726211022836565804771697893711314349787527186854387924863899640423066173727917279360376773265743926876430372461327019408361114675402738117247720390003274111289524752356552087397133508823426996036947415453616466204486344029665960929231259768239021203239298522133989279791127515080712146128718586633075446080031735798536248936466122216477815206091875272120543206598796621435571304576740265618543855671579413918091942243748179164225320103551516090032905429423234611477839146314294364412470337408971033121577825551678925776189988997500450434688596946193696446121411517046863652486626606874889225276580590563111575310465107677398186175199031646516245248902114186896425223153262755637485876205130601492172003004939322514219842674145597526320457132787458941068255872693677559369637086389525362381150632157993860653698128189070093044124037882774449488903332774007999052794903980930066010581148505093457750777405539018208712520447787707921001224857442560018388703380271927716525844484256078801822333731573218926723995964761731128335833416829624447909708072936861423530117918677917259914068417664307865180537057699097429138601830431147489455148386742260411562344491074372002169490140005964573957983279449558910638006461589729646123554837186024910429263644208408037654925530685547536739849436703340534445993929739094768586382483232140561389911516875939062148642068950599093753495910402130386607974967523769924402554099391889916098611757858233952868432615308640856966345348504555714472407111875942632606455212739988279077405919997618793584317589439756534135172196427194218537589970545208291566697685276962749184214175834468292586247297885419618438010047422918375192430754858492774641849397125057720947703370876320742902070208685525667500785208005831049737931987655998141631416182453899673193789385108250481376504816891497633302787867715117810900220970412282488599029078314831905473319178877149662166329304745974207410598253638148744558168274377010804667797658510970222553712240764270708514539696236249429013662352694746023178541742678791444608139444475935340404883631584324271604138446726072393705513415050614450575782505627684477807550335960057845346445964199962296969687262731766799853811604716596943855747883931541543269346337072505837371105158858016229581037293343428161025360149314036873097291555676177602133802619766537907741684379215095869567368676169663711530007017263911323268966764329709986856333545084973030742301474062965015923359446464156493963076326056290880250082052765326228343341800584127905249256654040044753585664895644609589616490191754440933488870902012969004097091200785246308411738972814978422136896336991678484471859279920619993176505885391050178366773491453615937768198411786912285572661677492177637291024468683655143627597391367945522478215830066494346173411624402410487074356721757611268750373293283213831186261056736106004256351763187942803915952542220804976147265121102950674957565966181550006425077313233164028449645411018334195196278886910870680603723626711744179956810060723440621738991182117072408044151749709395027257321693093880171075461414218035064865173798709674498250055848470049273717459400238913637629383255856464797008115072536229683818273363713572142403855608566255493664346277635862194308691557423720311880890339542647530610771105609737208001425900683224911809726604207898398316947039817750707417983859022625688861116602995273508595692101829144641932373827996677375094571713297667001819136117729962141885819308583328349475431350050902727122272456238841068936021429807515659282584258260638984725265303826995401068706891504712282771759443315194769637298598219814142166575906238889793456766390388964920178335456008819102066802550322140973351293531756897815504981469411914367257223390065406149540022131089061951948541981801919813154704180267489108675482440165111888150418434449168441697061864858392082153452505203381121653265160966987535700122519004819019999657081387086759129780144007765547367182906091894563543814951875572428737118045948957902573551598434193590258114989837248293775174642865078263029465721343805893426517136116966028788688681022088869785987445950021588135251646022609903591598608812497099564797635597305971987770299904170694455039016549957112085312099147882790417167070954672352058032686247530640693081421473074582786269585966089427033114670229668798458062480650057955631605521596548644773716920827882522035296759316911803166389023421345229684995334366894036103581337263818645023369762803323004581841985782137568426565966838713854535517279965326027026138157573007664372389961240495601618505482524268904202954953262102973055899704449137606680708645584873372925954122320853545509171606953766342013340758911962206544693754758331987459080688665453136635921092846885144060473621668398990650899867192563696562406635083736228967173167194237681760749818647483757611151476057353621858519020380512955459029252641333942779622817857287966837338837320559673453703967861368950527897298255947558745474957462739594786676021515644510425922975180262612382523737749605266989963745430111574859465020678246275240945279675451113891496564095684859318483196132769942553674667040227937580339557386189386056348623406975234705576763424102430615409306759098547215419501335223738951406322156256210866778922857375659871607470212652410024128006117180348595044429606657893027502927968597880191076430203125536023235291350526854633023021664263196891233246837291962592234350792121773376117536130863362943098793273620036803421465501411457900697142427014387736772140265877319311117923947532749414125254226460899557112943521481462003617585777374895182313845055705477761570521115209388185412544717287207582015393923379634157548688092513520630457715093214863353910039681373944592343138823367038382752600302381507282973446916704343596453165481783005110837518662282327270831287761950578217109692523183799208088966337875480493317549404066257098827016301419898476033267781479153589475346854777451107288143962992288939134747493150751213888557496738467986535504728926874385815451861196504112090040343824885717557924387252841356617208351052785016955420543359650888261299297151485890543885673782461789684691734870649295408199724579013522294485687320872324278535908401628422836967764230354188461134415045684866174292879105423513805844718705243108711140878407170506174250595221316788280734988712089518923397254547179233095932004678438716152139907786098415636605300193304428510453298308841024345361799282275406137306187708130820256213275426842354910178236024900456948743072307748173050557169362538186521728401377725366874225385520730423878549649018716804994219289706419725028975026558880763718664539044542237103266859567109023125292149094403639360334809310179399980766001705302712918268351004189763195651896397184305757742433718316389006812893355581108512824979951784001947339572663796491684645844703940445541807030386468998457774171248204471441671277646625917781254412004528371532365315230196814563092317337127254791271916085903758733167153485316745995054235193869219821168545120480219654923235728983782089008431413773748942639808575947746916225491449791521245749886637454740078250381035550231001609114845333204047061605383237994493824311413617357996279738993800634495037406990942235574709934789206155395022418555604803739041709836281178405111727977812122273300356829891744468287196228917876585605042058034838770687939573845415727435776311757270634516691319911319342240580830620087715493120639551323685027942842850851720516108715385636477480222771783098443699403301223897940555227190093798182441178329779591893254418812691180179478489255878023588832949182558849533311392480582163492564154423148576168688324784902968255466663960235748350427233789849147720187682157894439500584711881049822175340190320635924628445093868218835768053189690846795648840994221573544756613104368783463635247225616043224153136057206525607271078380548862530532786923629375243317511777054076075890603391221742675947317954347368617171475271232849152694469722174506814501439117613246047178182967534338280473990936740245640567911334381179711608430074830351829104066627209741396065241939625194494268314740666021119891157268974826892047426258338907394739489453383795711046293049746673606684916735632961785121049461569359898192812762697120600110394564968604759525521299048714387785191684211989994138920303023516841202062672853060163456377927428801308378007483744175194570441271451409125989608140750384590930625353874985848283329687020985818193589299596165221453466762136072798656423165640798469541391634708633047829638243778055819825909555665661491749056660113998135348077749282503235842310274670995377538611054181896994069421424128390637029016776260051165415768138065270296022423612446428954643797813912493077715980222167210922773446710340490260094202117446099023575548296184952052092775749064956795193943786697978325056204002701834846875089956610436743219221584290758181945226417155015431524094048086853958149950390032207151582133365397841890024597044756685427390382089238259186112517657601191978162749264103422383857153202413837389220584465724917050378504029124280302450742719384775567871225589228993060770116804712273284045048824657566127975944658690834503134851974125268564200596566942815100052697827573815112068668697564356094003008564046241189964718674429298109351375462036048353201213481798356227990926225948054034219526494335826902406041211012618978402856072578587111854486266257963528018723471099982221593113596672053454881859073891544619124219348426877490425007778927254380554733453199401044128222062806195349105091568656414238074143509367432127593353192778341623411974807065312794620113711834166496613307113760398503704720298687154218731915740750679525540843274163917384826497087917130411863091375159286024910794217614227617414323965930949580150738216479776592688057741862434432673269172995892689260784097295272924677239086982619492637974781553492639183769999076337861882613501959120193622543038714220114390705032669382787661837674541432707790628468007995523644848229058951355087879364317279263333285488563258836118985522177645086271952080074054566634551479330728767116199060330408140666187853252654992097309010636926113261918461761293095081124779188811936464882662255197124291658064575165555075974118378385170865864276782119220048933791535919625368288812770034752331232459453248809865430091408860110851881611831765099030369737302287663683525822306117938158854296142116165936421335808866239319713198287193902692185861798641545774577536084702707520321678561715562176915039124045220357175915156776523037440656462149562529758099992883189913034903463232997492310094212591710380374902082635685676408740950764226984395417272236559251737866356582986144609530022420022320956604455865165851804531960096665141772856194811023533317601222175664650318535299426974596855529597895881366801133109040467023511703008886864462470115751031043358113458850947708372477345620421710182151403385358788117775722065383004540975100316629314965896721660864200972873349257738033981424675930988592145211952539768521407757174559203257280393094599727879947607676957315168445332185055654277387058537752470744520264980879935988401052516749412321648998022389021296804695296935503648842222690907423868237764452072665026049729603015163739807715096565603573576218458578046778331974554063073256580734999867839873531977768341614493210363340832909954102328852391892662566968794056409496526038662480465718331454444467922048595552157746371930863658361033088577845455658316821956598317549261809501771943072941563806459777858528991040321411388954952598959815180217906186442080892431228389015724798156105908524160935404947916969490855543441126570370841939039286695153037650089145456560528838470726189269973317753343426191424384535484041279048307363418029154645302548252315856598629416957329346515230964368538895392247675759883717285432750430803623274290041557501915289835944260893926486711602641147638202410537677398387902060902549804475067338308006952536937680744308217416374612343286137507727656433701900025720068212714573251992686075422685011115101563043011965511617029427654699424420274556655352992748637007036395868317087387626827079471327487350116218582861711917838095974195495767320965015809511837222618436863727547544084469732977913990000402208294077109389729216153477516324235349244209882085653404366156917911287251662316423960697466524941790300427656924953086470052511077122030578069195972881295230447478810514928974001328711064162585578927653283580868866655427260566885884632972993409714771557117188679958903184821232150055406364174460189459970873229276373832485024556356113951950177559311541748879088438042883762765033486247509674343551840277255037689825265103291257290964737537822597804464272409316156993352859613235926241051547478306027457297580990133050510000257371710740853045896181627524260128130825376789863836108935951918499673320437760590982423278830537025037614634457067042198788086104373699399317311169699467521520166977205303681583578084090587436871365663013959941787138959295750058000130573466231217387864639962984935057491839920880849336635267018924108889892525737523387976204628182978077229460269774305196876751335242844230788109363071304391300471555084229583905821428254713657028085821294137100883388212472692744957815901806025680656291034004208230959480936623219239154872905856405920929515479744002897109822313127806772197482319413577870244679309394632346918002904348406346834698536826133813549827008072199751785219730864233823223286312577905916231620258679938910639805524010331623866028526807718357940067340421576868754990193082781918427338212619117262564085796540362875737260766910293948924639692800695320546912631969079948648833316015367209172333122281493148900094298386666933912147919475905490468086629789985234223902947958022878112141848433382014811683707257529768513869485388205965007383287312636354831945155189821995201335297629146096827831559679746875670097376194569616896232265116037781543013450793421525024357692460873670894261393103604626308200840555698751291776277452947532425736608559875178938503519680034521267689213427864285508562369560749394117829374528898995031176452466028146790895177937832878987648443142539826986562602714292955531620897585033573449464604871894572764681407811326351485268680069599476438750471071065391761125475602345656423253918130968133600405065358914243249853817428988148189208949477220291335424102520326899108506963863447692026347650160238366156377594163851908764324306333767840500362454280817174767364808775820174598671923786597939935060325906940265389346407974849655146524316629864643629589905676844638353471751489004062649609306843489234192005815592560505950330111777754457711005677203766891446389331123780758045138643320844020091557706897126651997950177092558325835100854515840213638116209978878310074093481019212467236580586551091016048049749232224570747159221808057594020779649070359497830390769681045255597635669795178182473476689538039292619442156763955483275513193074662171592723749251859808890711550146137085917347746917300024205675767577242083470502907826843781964208121292300565930845056366753400002600060058118403889595239151940783084401498290862209649982529067794873189614617895413783241440705165698157333904394108249975986811946523468568907438789423684027866053636178816642075454813417943907987814892768103221107586564266416649445132298337159840285788342600097699625430485923162780040646598197274732090200056301034722498711727883451264921016225088618078693813727584963130875966424647985894019179804761427925041739815686325459214478919316642844349418566976473317449015732202639907236878353241556463254428742553930731363288567619492633544064875888418427604792260195043393322262089413695570788489065960449176602035575496439707780444886570688755460001012293097790563869609778411233690055421240035853754754700793432296613554185984619021333218348616245050221059556107359603121295512487677553165685643702188956988818455053073537288527910133214525412901184759150530274448076463940833648065926092002589639801164609067337840584809192096334819659125940613165994665183525123375979230633623526577409848332229315287744930741761164208228741157140425916593755141996401948124937137394698244923005814528776935190841300729448716365148368654351240329885103396641558507712936631106167133248255770241174235143015295076797146299173636005314156719283678355789678283644367529943741913550920051081481748488594124182515443249531572848927355737410857371758987173272830974669351647744788426353982609291406629606388510641899596090553018981163016368696683749083308095720624364504652102966866134173835780352544706286873390581846873508345358391645090703852798042562851908860694859392262111903013231313619893565585819406619224039770367665249979580485294941580271754645618448650288113621285354396182044534957084663496146007176145244454531994320265451217269321540976468918817957829053893889909230555130018861115663930245929487135653847260114868047458032140708153041208885440481161824377472695506061960427106031233993699944539672189265560209537691039901671352490325605447258342142075364185223589977206788782975954387782969947050150517770815482602925501579808422969355345957227059708384613733997271762612507264136481160995751577251012721499914832412647892819862558186147879710438708919248745731196711427737054328276032680038136558286524997637004015824901998673367273173786371382560642193897984098244890598516518170080849113677903296962859641201439775825308323974280317887728259092890958983210092259921564191939649514398197345744139029262281631163183266411000673708315119272288884520461016421841428993471013811669711473942875276514824674305159120286934375580342366851423429962731531525382001340838895798356296819056228095131533764781280383470911420244100529616764446467028685430008821108111228632016202092151138293830566805994588407426706385746069012994975949707525465551475270661849359098021387472164843730583533899270207746449018720784685485677853554327089541459610871477620438327074143434118504594664885125467608099987375832621440862190120939566825938953675586104753715313619277668631274629602790934463515729809024248237178239918499849954491110439360057417854890164152009204003005096125642014532247316108751943907987984610635415787662472069994993804609908915343454483862204834719344553113193004166177555333441994199052331126077203710355117362667913536736000187762725236448876502637752036196214732014375808175130421886563539113673090651060874957188281439752906336511434835099970504657873182674414766054867054434957610476883576053295224099875828196243149963206252585533179400083832027331592579859156697221922009924488303932756016654270478273410212087050703793221952464741482484739674042067301934653254122522924405959662712940828758307072302930101985258166661325312466927399099553212659470860519100940666263150505201470738647381594501558291624130082615218181939414618494240862681624372745973005925794747607345456713588939761784683700094714411379908216025530310350312720969184167008045403251021681856628257553950152120964435249288999999946474281847817778373091515726643928914547059702793118110927995054227564852686486018256235524738526613050774072741968466040268150520204256229869678761670840907237078985193044361862073668284483001877663070691420427494042015939036331053318406160741805405429983057804813232771088845636232572926573696160955800178037566511051542345672605967304067283682273823030775442328829556195206638175812799711813247968584493137895588661563833052837006670252388976254219739310632757791114714784942446209865213964571169506338461297951997290694291164864033493587605205250981136893307711952461317481190271657934847073527113572522034940214415609897307938733973659091208401115102927096576396279683822436868547874534157357415895903942298293681533538486434038484784346488897041925584409230267606217073654475704428937979201161944086939691357867506862973248934089238714580712456864768184215880400054236229817222126653363184595904174400695878597524549803317037424834734879374666589853130763898623345085695974042908729251549441211300092032561520856874157837727509807267809419581937809870514437466520961177622132452988931583792032937052467220623064498645760871441317723029810424921716619098645784682837791274199235761371686791141168256928478543373164550496994136945441279386323476705616865035199621458715202243149493550912735270477736420294855091143785924408789082138749710926446346592962597325818949787933048634550087374916924095090631369473982605338360090286839206015824986957563759518078953040355258749426961745857259004033914747702530705538429694829071744543088892365562057730859969099099284626761934333093922084121942875078605201534982775794321237224663579000048895250981241952180470900613016115298120495781704612780249531695433186504718889816046499332516360834731669909753999102720892990438800252958804295089887796518466754567245563761198064699018550992779795080379038766864883899714672791135843769671739128439860883318867793208975744011252227669020157825679718169535840953294575729106360478278112702685990712852260391914980748746017588356122645402155173750839434536020138852707515319033602173893201300974654377022936210488716844529274262803555872289833674159031497685830966118313378784252037475009358832708385813279133958862872477053698277206538426361496840269486986559767875340011320185170079730844547499671731123103255047687854733281366220416810404902593002563424434447475129628783087859329667457862291736297667392292228884788636133901265372714905103933221294773106469760122751890228862464540961140502382351056663017691047365721722290054883726701953584186668262895700320399686588356906692512649658339863265144582972911188747787324783753542739856324943888405877482457448294164674021798557929969603551530925713073947973045142747656526760808924526839346807070831334650386395787461575026172744601431051331336746651218485239264142971390390136402235788153153794444256450441638622850246397470003103206767558269796744921058875473638591628068626367621282493065639546751464219738148409290472604172041955673017088148708591005982312982253099619558993735665272898371431042710136348776589219749991199729706769714839241950405764555821031994856501838523286566438967051736767981436566297622129256102837069865680948195152777959504722761289750441856831752439217137666370152363556166265461994954742217354137182219326146545190453672774690933871423922353452411604427936758605406153100947344658890220236996073778835431507533840887665258491496528825058682109039015374429468695378983860516466614273261316521312079348757266774618011197475766696108846924682926187022045546041965142643746759193389035776292066106321199493088853331171214934458267511094259434260503886776245049763802634762431828987094211285993686293406145430973093789537967924779246519959306002623201327953016574843048376385782034300666857744644759785164211717974318091393373626876320509600838107589577204961946223044338161855053307616838220001279072178513688529146227017856242849897823031146512748853964472509118189143459283270767711176924430668079185042316197855732326764281778273058098184903815965140042897800676019956625226494851347463376315746904282391402042916387301480194373510458969712261698665006280102508722608582544964791228551308264907544445957056218770417063075150415883582305895878476005273257950151080397911582031647909787229285039860383140951290253572409930091020497853020782880021929340908746711993526223501337047114465698203212790448477468104817014502021819179479866093291460749281699787540128637866509570864642429960063467043480686488114964462147910373819712852302413187914549214422087663369826413906590409845292928996381579585792915455091370374309601098312007139950784557328234157840716282086095123518968046440992943899816452715627965745181701498879067231131700382895807139036469200132517717012986170244051275650757302442337088730676819148782889862579359420117266386498091828964567239462610031896640358978024900085667721105643198694127066728593913416831578588568659357148638844002682809404561575944939057317275684175608565522889272974404531315306802517128191806113041051802575266140738313693644262175473474781056057065828243797186999247581070464156115383631531915341809518526989313228822420573788766125026650347545276676089607091222996283905468350565811989883702026643846395017559724337468504189587949702645215942922430217703617803897135595764739253351082912339062478669359677572041071449418115868152543579702060247708238511562759673464747724989512696737476838894836765820439021146265461102276831325250456192360194926386062360219112652196548807547963635162222812944368809311215494593826423622958827153035713529072612625253498391505378240693659875734741811852599203685995095417232093925908256259860592992778090981205151334313311728725642991651544722394628500348441441982791444522261636626315787767715008847141862478898556505886562083191238932550888920643375293338519022277995118115713792255471541333554875455856892039546576245848133198113058518078477906166908528293628997270662980422665101934604138657351846301275066312059686611373736427157800597167441406758887231854964288348846494024672728077274992956985617508530913725485835792536405509539118243693357100806024841770167313784049764929415901060601924883819811449110075397845980305363030631693527984275186210926635684706495081728417437764442000291482057279365025671360781180708653786703082726134509832870774017114252213167686521446962420966836859292726870056863782235284441040679001987785822288765269665955274081743640543549220294695708850135661021280773630668094376060590805632311241677641706305752909689479850373557946456752638314552669856053263936500465235068874570824259475293483117733452314630025315927506398405646252539009084997048319332255716541345917790106952633963809123504036548899001861303212335539733345661573939236345056027530943320601955933635137121950602978165532148740188581897799336089458117576747650339100011360993730678043015864265516546234240691776753548315882835642569575242017956117736356583487162840114258777462657178575846971621873412766699059127126669568197199083505872435016038410392540270684266938021952295230055616692957084617506706653030131874311076088902530349169982154543253088476739661090202392708749590878080028618786326561464707772611165899468016327948392536918752722383389726640771605550845066426913251734922921389405926393563424409592151158904787765923896470923532695044054524843162029370613660621316357662524538860924005296602620274160734829412870148141500969913559962341697819745595001233966075365821117479833073618493229659469080126453067570562102527036620375321843106560373161518344256473457550659479082075353140365620840980943893080286983925666517374942361579148408464292096107503898694936508432455776492463029888115516608125728770304685637024101850576409943821130307416662722820041518629761033009526510125229087981347276172589486979933021456409198012853796717649036522009111177807870963859451500692590532738152264399413862322555564045501245532242515749594688242880156405228746907496042698903648711804406421681926773936910940697478385652971950509719981955526849057252142179002737589892871962766090291339717469297207508412825129020216529482597593250139567563517263159995611611046567591988963637260214028355087269895299779437424701932314869969500965738395224790516305501895720494919212150514615368760001162723106336811612497450888426949451373259585561667309310520758792906054640143084487127123865149058810236236971449291403739536694737812413312713814707450515785398870784439010110361004784895851823241246629537095123288245538967313826844259715345830343988698363199318943171790518491724199996778640758410196936782738512262951525764781169002894282221386675064919531832481797546299907673293794398133262561555005725428275018563353646686551572933222553830367504615787379931117267051564434184180474836025383302368040861442931702269067240370306289410222305480844027095260967734335078052537646900826849682948377715707496804836964496614195531791863717450895632446172735886691439098579314918831253223787116486456658334702630036298007107415495348131765937855086281637988227610871227330037781232361904127663105670420729111636172937648612041306441516100994364300996127722376236222798656733813930607189744358068024089925029314342437519000817037248351312892273734762826521530253722263704717466641818491100866287506967095314192963616415919630511550991321094299219565663457458096495501269621360591036980009685678707329841111378966477234076487935077354372389003308832212714116283187233846106031663649476603522851715340472009147192838030167112367987284087637284207694051288613702512769259134444276967702129084307207047037713103286626962054913908294891527602558995524393466642566925913509091316769418741068572776711017968499080442327565420237984473128676509054934550803045996024644498134577204117799322878273897755416791606457947503433303198562307054305896145398329437262016013063909835903607269982351882788057052055269779999951906653080860218900692978547923905924855597937154574412853494242405588636178753818626386257271211666302043087521256381015355550349638071388496815843394357451194810937364933731392667666632489670800201037979528839198932140552320532582520203294680928782563589892819194183695330117622301429522930769328187122442755072385222933286837375428520602506323339653709077205836041912347480812802223305655136509799708677130186170332085004520799666466171194686402931174548652776483885617662339038043222856354128300975456103435029228127571848476817442488592783290364835631147502015900345686276196962119966334186329030222017269974956689795217693424518358036345001932809203040228429850370134965573299632465966222680859985081114868527917892760408893309186305885140641909035975717761842894460047224598598253873764633043723242440354581058915505601642317967513621050159414449588594858942026572770487774258844169625904987019087006207003612818152912849094690083494083979779795689711284035416090627351340480538334336721437747597122753445715816420839961380095308541235734902622703116323903190789220802038210969880462893620526643687164064630400838171785144588637166748886039023969001786389828556577878412062355566310131226425946032756389875361640245294559780614081210043770990821112980093226689977390202176270683772249582591873546251958467212839826662514328532217848070020948577716994718422588004144206447477803190987166713530557789231805426824140671198093946951892426404901793952170911812884959030274134536154120218003057890734489495272681491423692163759275227301284220052731576651239850616391964903572288666103486001749923068012019591728954148073665449112353565771592667288993998568163358935905450399469985601495698812361687619327677130101296602061769547946664145315477645838086273422847160721022746526234832842269145380916449672026876150182149616292170547021495537932265453026609810631262443558037063694802615439852806436156946958641464404108407015128824596279769795406238130646595455166159401190520871026460879189382388749163144654917826661783659908983514748311611528820491042420085786172196820959783122047209973003397370152880040058938683354554237001668503525728501363509935708187424762675202879891159627702699035609992725280013274246584503424265297560435048211611627057964734089092992877417192069794966641598631308508451685681824774359252117512467443353585191403939269689746023950466902471539738435066109165929739778589544706121912906879841290950225633733479679375468305940418765355767123711101926536004522538916557233635396146725714283250824046693640149575744988354588052301773371027697884745266707810486734316075326711631778350658476803588755337392326889125453238623051935335911613847818538580297768799085735399884905163535758827802403746816527998766852939770878565736788112196345515673877136479172820267109523518648040400830374803637166049943403437906565591616691354111868724533392269056586928244331778577256218752920860567738967657711458424866074284369800794294380762712834962489304542966800012450144148584378599557876517592753002873657197521648598803038200565098342119541887487519736337711089601926115252047213325388700594878067833027193922323603885089846789197756672312430646435075958075523124375394276253242101699469173035364079556872003106481291932526120082718884157466819492871748343647295622018249091990252612488232394940478381890979871740335121955580877024762364994632040241363991594046042520734792832325029994396938304524920087176834559576863288519129451130238329884981455058849745426518503349831237709498103168241138429555134954367572319238430103910846295167483472919681135206814368783024955305241918717593067175072705728408565328325810658325022194969345784040584902422430275649312389025038188885911501426605220977823532079777233143032205490373441585539880802777204360072216300422529451883852913141717617678788640464795121798543288409910774011405934874920007303887663038871029343720196146262542683399768998269060139652752067524900902824312770576150536136700850295152767432132604023814243206872692513632523857501498261305659846056294001942240819352496632369451421519289449809001412967398318024713343801916571484936197404156997827011307035393193374559483908545919852393089520575773168572155275977622804431274138683014283989275367007336611922665745784845435643597749554146364184818666067882523760925008142215376175529636620658791196834141864134789498894209823260713608453432080238851604468077187683912079293216476467577011025684344149349829294420241073833636579747750000270048617987198693218843836003497621079499765285452586845318633105855348259703560152850325050045589689615629222715659759669931024323987105701057899989572417527205640460601375465487088462780618907297776178911875311579756095287966325788913163913801091088457425676511034878664993109461071298807162179882416472374540519048532675933664107216975897466106510140444329562758609306411957544630578397356762694715833842162449257832007693645070809511199655130024879068590325190674498171215200494322883211697416319440947541015232230080177306262817758102630659788918341985065142393545326919954059376078839362674915965293413044813461525552403468911924728160827791589988306927907800720754067088289559907115766280215036503008971518128309543483596641880159143081213588153873585188989488197174698199864153618903782214235528390343111709647734323545976018498847520735266292213999636998464520601444855506506436053771045648598922885233692844882608787133766530337825181618186958505222081742832196749681687111478587497762108678600836630413845621500770308523705390656444818286058772442401033432190758844224021262725965313454619344872736408075849829453077872632313482917312970235350355616276417123702020527786008802987892335125453758592610840947621398310289463053204127545369013421782449267597765523963410997241484913056070438031005501773331859214109695705183553715326725565524646789893669232887303795908972948916336632518375322264247409313131056692176444138402142275872012841035687856816963473735297378713333365449060111836022759240977512587838855238344100688003341227729465206757802055740398291869713817234885820329176124595853068959559805149765408617784867112963712843302197503664871944020086377362018705090310868779504740154502053678673908751112261782841847440152378124217246651491678782073134279279238086863877665793742408208698348825410528270997456828902605871737584857094574537821395626379910076941851598431610996137909524103511947149566091702585106659510204161114608519814793925822737125769616414138312629029952655221210369045279759205239833194887493480980440676349434755772318078103075391074224953480773136862735072491923937227196590545762358296212910015296032900297282559465014225242562693413390290899715888102476678945912259387890499856004332431527387027814447814749890198764646635028043325696867392815325470130357843242141803165259650987609129052532724000077921761441716634514483775787977310897813183383074008001001838999768317725868265941733251508848170725944999584716808298798230814695573452607851370237055848380835269395268805585318734346091237301796025646264467674199389743508671981706055805565604520001960144141033768586556710058266330614286210040534369840196450014890943092638583796616101109277342294324869240413731181821713793225613518595000479673930275942997683072503800145056692667291015670518280218735366786780865805785592224337353475966993849790929317098470314334654109190216833079856997029881772362486565851482408973358502518466084899087223671726296043129017904953847202090523171274941420166728217240126587388225849792027252957420118351376118571457373474679415969032548306648987076111521498301494789672692002441696850806071369822561054327031457807930584851525339725036993310138145949397554819313212649130735733460970070938286731448060044037431520636630900885332341481657892661614573410753188496399390923535869025097680981917214969265307617825533244927993043563658712781017813534722313682922535147053614807073658259792551574034338601837873120106090889705676655890916509126415716903352675263336894291816821615411090639236658476180201440015784461920054637795312743555843122076103837568670513984172109041195079334440650566457776412971487220783701569079429207010472714529816352282571520932578965643901848341223504825056074835429253992765380058382025089155231971191407364583608126436943350513701996920691933215584530562915600446476437829684882599171637042245186860974750101647757317931524597722837149955350218197452513937013727252724810065256509828420447595207355083088289690827176876255364519062878967225213225605678196344215411036543317172746659352660070771393424795147481531788479963265133205455647402794837466469049805735080670485750193343997459948862893968445541286083070328894762799114701629882958161984479508929242655802973297662323133809425286702425938493879994885335684046207627527588044891749545212904572501003723996752652153480039534516034848877610431139900906877062153562271002546636447974889159458219952583234702447797643430886844814210312226305155917284015916076524132669455390661111117384653779759822864127873935538845616471007956420906279579564464741527056810450007634912533711264055732667344329234667630320160254667913591864383287499334686046195981822362492210082542190245046976523578916435876757610294451367501296863271428718120858508838910695259839107150007683370274043993173698637996513426500260895039205976742629844033451349725951399550156171906313751071858496150777233341090322879470952080944136844454556387832457455737996487705134985241683697760535109892060309930363814290765187576179593652239297128217446386605967054733085397251597447933997604998912242411607570924544563925775602880741004941510084994199694131962434637506683351543097296692625839497474927787590477925847453976678975183251666585805349428257982105957319765817771184217347890523955896688450604312617345969526060467776495755747809210840911688601324857288709159015672585351622412070025786808106738942015712654066580994046494124530355758903242499208416939788306074884271344199692471859406189575725903774850130373494557750342838694733682433127330718529481685710126588184113297209168709881368666287971085552937570941270353307006797352068074283964422536666190048885285170228489484780278778715895568699011605239173853055081547729772508853277307095412410865108460382351705623296433850687086678815711710886912225747198704965399931361280330357607595871326696609739021190664492952962839114149115059028929115582038608839090984405404081289562811569641058256078656605016582801696581290815305789484208175805099716585422398933594047965821647725799141812407948263798999353618253789715464756642206311763243302781943453241172574469054283287179013101672391420211346295385297956737212278638482972295885029594351399312405183964745683115705739628450172652614530180035513443150085514600702678934047117953318379219714848434807986885743850229520795129043604466970627772363705771283148018308673815913714145888919697052753998797756452747503628786033443654058314639298675002485326787759048359999724452894815153249915992965876514054312294443690392726374383990522616574157370999752886904712441260750958501204325977321384155642444818801653110108664600932436456863942691059121070863983349257857524737738049104295558975111873959702344024353016938665395405465404311465732780352982319664069322194045668553251387963954571778063870859373440454372245448371078407030157130198863395809318994690305652179877937879615547235256089927301294716452946764418794290036955201041598403141299649749976342400044490905515460812758998404472467969729667330672165357537289932656651846307900989224823991609564169767435339194603504941581023465959718602764740368854956154848321144974087294353997652979562900466334140072246838663560361597681856151910754092921171876486002572419594834385981250471331803319436151964700357826854164550710283738214059521429252488029685806289721202545983144684151280008896046108263809361955717021527462852774002520738429369484913939119177820017858529695457949394665920327396529444087820298837773479983673450229838436152188802365995968957170553375135949718911021885854048412652560118143603072080608233976368501215542323829058309287643473062428042895755076570053006313749940316394648313512141905551811917676184801475629155158548308187667734395408652077878028052906242744052184841267321233889221299420932340085343264778967089794418922992923323021375107843400518842666996665262907361322567931953415552579926545439242557264520581965123446357474032800914315216048369120340732565228795633616353503905238372227675629999794912754902603262904017207067474108322196608255418012184824911840770770334500055561078728573416104322956850408821166315365691253730289068930242729484614401777632630351691016351253243247114096373286919939704522140670295361192430912428433656674553810048775637591228515601050679693063091206382231567750708829502373131754844432633520126237917491155607943720576615549801710955125465956101813624007852568295728184224455271959388447295367572090199701518782015503853620327222486463299657702400323283714303351688551560062704553630190631886565555809197083402202765198993387092339324004750648128164770457237460485722923181584804946250673610859817723093539138576615648909551978916369038468802816996080731159340676734956917758557602484061486289955805039373706370347227204402926974156790865424865712980385387184457142484603246218953372513796398197568039122313843862983254621737502344582890612079401973276188991916213577919603396809790132795012355633369383927126181304462938233881603457911880182083841774562334668654285829128446467776841732109504649003884139380361413659898067460898405150400728956973022230972628399044940574852924712208780392550167092291680988884636899871628557373574143855949539770236700461284075156842762071645385296394153845983222547202673252330265183467658569971538921865969769594665094888195064545473945400091396607006220041557960295152198982281818577640258468967490740823417822095838332174954110551800772767652522061289029941171918677200330830400770874941433628762861531775386387528749236668091906230295566255463650325227555335801088812363442933262332553330494864133771493708367876179579035150123506437189020903659978091715857152986979193543870876972569218090061023699401086546619841806191478538626126838058527081732196163190857626599089492175156636068151974628943740240579455778276547454943104975216676353680721970957138777029388894667050816381835579382537134255604681954422568658244686809831455205119701214510063042763268296833233556981167631530184065569300418966803942550463478031833665019002796866577214717693126392185812411250042490783081864461844409327878389834259614736393894695449426069447877676467331295953903258214671621647501046121804636302729506057776663898834068567383791502324819910717847198179701934927379326377839345046827425954805310709926533067630734670832214266865417714503906480034365443115989412907482855919652705245487407769927498089215365083447763050048989393718117903106088091162353854106241010756275018693953883019337269174226776240863581559733549941373694247737911744853952030091304167155609187083980264700522744704499185183096620183832212680358100046689765430118589367856975301489285675647754081995661208592744301349229186881508629796067589302586040931727274332845060359259611929933491676731722832382011165792605716676962858956034062716144285136439091140931303352397435247461376392826297841764458667752445272911568228873791932976258215888706542761852988492716600376235600285259469385902961530633839767266696342561016208481371812717536672148464699111680597456643245421604124079738590809404852410927490276185296640033095658471675415393477167188376194594249536013453868210461311318548558679310810518416631980950872464484081680035057262569316232409719973714923819083489826851945748186523733508060322273815448020585455903940813200842159178493854410568399074549003684999520724274190322521254760271224254796440339205652860705842674333302076198546469093351473999171504144942041823446836008733282645514927508202953206182776281557845183687566889919270093455767378995908930640993459226790816724469193891722198419120680667529579012160913772744117754430488796940285470485220800398115661220165359954706941312259798454851455461073036758556375944321820527791025184665611775843847690527755099220869075867848172469774188484326791814548921116044777712000129650928842165554746283433360168635894383187743153107152471493635979465915259471882164723031416704434807701501861948038190208283092026556215631767669780392512530380507871719141004841529955081848336897299829592820837612220579358233951947950909402319799985332709444795885653477443478366749418583447768490273253177568073594709984804642238735417601603843747022310281275722701750595033751136830753035301994508963892509717523419389088634304707988419645911655369253363994591379043638171154750713103032226245045746046686663265301958034718619437188932696384608938600947054028650967616260334776923949562433739493349205927200820310353777769526649327325911015982619830538506216145939837058588839508780853750850523456260520892914269572649460037341246817329895563335112163681544819564915954606306693841096238208565251577136027746951573871091825616187106830305827301500958935913143821520263773822479684023425933603145413849799370737048325392871347294502305130364929055804634530280369717599081000233900757468099259369621704036924955758207283398919337818007046089647655772707077832895488503221656393008428828581687293538656658678872027936045339910107064844948608894113468123084375132279077979986436323998244350944742037847018054992529336884520727177281114064413588581665632050224190586224410889691817800548343074307702979675163204687918761238551159799915841543361332147427642669926211392040129714855831876732791592016447574273239161930309140806080321861589152297546702073713696449044291764528988864300005318540748856129517572564916107632317943319644862661979841388093219662540061802032859971962894088031005745342850004544280062336688394710251516769408544048159927547959565575941267305547004716073267911813984834621978065030030274689091116941324807733969083259732931971270380296580740808205583974299808816288362179394327500843552859461802583420985187696418797306347104028422349820141718101342344086971426901279474184629282855595565364884184930860275841472895070288570491842395404462679503282851943741395299678305732514620160907502608473086156601935576921122485076779922100377671470692935877046747947057177280328122538017918249250168653953450925477054815173616938672300610278672882816315932927790598423708054908900738854133099467308971433852217437578283845003498187487437571481616462474578950288578763665890315585909884698911542861748643466813258349065713720836247132795176044662141777375725156874274716041052916894474564194509585420478159084582405991635100706085594377716022580132737603854696202817333642643497700804004781423409259461124694903246773715750651770321002581166335691615414939226628263542864606469470799433896253491306210214476489161378253725275824623883147714645573934033864473098312288746268312889544290926977658546077714568926595206069397777653823377909507863252801354445696302897999655516429714393338862626334565857800207309803888749349454424146618548396342858229429654486069997028505275914087567032244447733831078663872590130983927855312996928134749613321397207380566059524773870747069666379948275433126446545294934766549338962168053347020137538208627337407664045433050532986319293557621969362556946073461396713730849410688465615533130079372774635093810685177228452316361146575135437729279663226804396704799461994420250050884461660901425175312443754871203830338613156963711220884437129726728609054093267175659858005849403820557542576317350192046541924884008737703636278393554906559725546855527333654739359732344379760236708011411439482944505391348105102678923575907035334983593962804796937239153264908904300762858682757795654075533863726856985947423599274200655227536360274372685244921386091418300516006914505512667166965597596650387862686087326054570137864367292903474945960693270050758100640680807572687115927316324757220625930973995999006417726646047690495000685509253320122724185265973275893058056008275383621069964240958231263460943966236671968928805848050811375779162461744553614408478393456900038670051364580427646086288038764506863606945121776422478809443063607581003377640764159446947483264671011524371630715634312026814316625680658949454372216601672193999744708784918909344956149536974684555267096951651109701872856241706045498593482956264820049779541026021404830055301656297915602652915632496326270400990283683526627747437202040301946433256569970229786942431050687239023962825635917912639942288922242218990145032160247956191196924446873557516239966859807040169032021041696719960406565550213758483673835467735156250425186058182667628131190661927061831767242593428955027423819021172152414626001894397437572743667242905711968227577741362159285782662728006638954699634106818779937791534533681428532137711023933812718740594177537691275332062412296404155182179477620875477364331857794835054669263914519532339322432602347581968625299020562195983489030184975195430802705121978444926215692859603250551483821684054922315388966276618285507597087017692222437920484384919294000327505681300052080451140592659554156635094552126652780755950967481189111555241810406075163884436358512941349094282452156733190490272431216529630961854338141187651118997644096226851964767407996016899365367980878771356447458987488883065120396738856487722180137820415695451846355780276868362202202904003563675596434868849436354616476111555724198890995773299299008646476669214768366537311258381489468517904235413500638903483545617308246166454524143066108305286019240996008323078633441309637218603391251021232257084322367617630577852845125130469095576666591951444956389603543410871069414380024860932848828457511535993802131817622672592394085524510930551556410089619728999904655961928879969536191016500722121621330450025951185421178765595261960718610290348062642450282727349559168176145380834969738893786802233428380543484156245897966639200217532940861603428741027884772997618828649423737633723893785663160507020158194822720434314496247462485413494141393667347990875031513992525254491920856206677953884943664444933309521592490172163801588033991168464039349166515775271306371884542580150576939169616914633825325351851941177090610342109353397981119708079182224796950745573285406889301531936586467598950824153942240529225232130657148960837816181654412861078684336989215558744680935273252479909372418758820475389489334537368994630472470118381903389912693532945857316386862167415307959983025803273383577975621337193254046603920112513442577175789310328260228316893816421405691880792570608392932883098939496982613771962174631307000450056358745505645792145430171175839423009151645916302516577187360696159907831631903438396101846974441014538779051576429870254338708068490078138381316591785183454595705861261288281283969682632170611056016889671318043716733320624140710490629226528084585364806373740923897243983399556840847755956095683931349398635701876523044971971195818839107809389004987369802915696266258152806873927562119581893280888235702894852101340625346740521250449003876774585645355071254825576883853188750199516039730965361107915923495443839512155316498673967722610423448777946949044086705580053310470211005689253479044599549757796346497549150909803256084181443433354416065266602601949692626687188289161168519165603655497805878392356480293545862947623257450596988618735704585379706194449348572788423613675130563957506099754395128666666523004016545720329021570793981363066725310279588066164083720146464367919170467171691148752088135786117030839365868921136591716966264778990279602621648277006847517136929836786721478138749183937342637457800145307013599776946387774043034755121217107146216690351962527281895350776980485725148965519129421906279030823120427024076747620141017467474826091144081466306477292503326405396013600956586158525679352736284219860369650355881411168462686804542397152368418490816023008962040115561441113197603928042069368439227658339472665928424743835508006576327771118394925166677448990004756932853759359113875884454272809788902554639963294454303055556327991289060964437976590570725498146655759893098303980870867333301704326561985945710888806064515535046341186705575476440120479716074141490111608039764976913684367299307165648365325142343563172563857659865234600113205151529217441596363937267310135726560156321560269560668090629282073021851425011221496155701470396872484192143496753726136154898258254231985284939362493664397998339232348191431290920424816455313873319033392926099506003606070328743617300986185023246075921072409234963970830899514002553286165011958645060800507703415263461063091451174935542887978114108420963563745167185969885152839821733895664571585559685217225128789303039454489933825335855309570490103847498821467049135739574265269442151580349315666114650774660036037075908246440204270900676634666811664714036613998717574094470810821291051519846144914750488919618810214457032461070885906619201550657028606238523616837441489955371648951292487675903878178723176163588202756363750099695293000507289756620443697992129570129434325505119389632902512858379993987893003731432267477597161177721429320310749779057683198576831281544008664597489745912302001410855869289463860805496845937130417844157774734633355236870242646258749232072224346695172196552704897945867850817133521720881589556873304595107233598692553919548783426074104970548261473290756473711638523800937603021277296917788906027493637533181869362257069019094605762229990050123487899016940069933545393106248660965105065764352824243792159731964880993855968776009491534536561749300369915025415993415453067794959488416990180631396452990247694378226121828467380472515683535394137240714826908420070152977460114370805927786203985801270208115473072201184926177763676635934741236091471294685596229940724176339145902046148423281741303380353308389380280542938175817366769395475555239891565657425378347824121170775916981324777369478502672256677790320886590413705996404960212399926694678368823420924655015597085585914178246230526803401204379122004907638077439404057721319096308314777472762481259680086027530260400632339479051941522638404577127455039455320345853015378905437340704847463153304612124435759671043806988781673094900943574189797975332592932046455643089967293403207763978770589260545258403266023962903439065054895403395538352616248426956177531215867218123050413251290112233479613580006854947125505785446155960324644622321335400567915566989748960277443932148158295962274162058859750484326428911020995620597839638710024552111930285924077164821167934801691893575013553193669487697888562522662576983695909835244828365257539845365614445582235481712643545087700636739790856736509500521802374258739787594651390229281651922587087847796850041457871858070868383494989050674354657372231346320272745613745393109230469655709971838686406333580460863665310363964286023834562571103500913256957199829745357391250962676164078955385432894727700475069343090678712937832939941745068156552212287578400033930536878545336849236010323373214991359192722227505469552323920279272370132015027144705511424337636236761978210903105058402512440874085290267393585559189214666581901442686221060519777454633373779951054288152759640387875948700628808401208202727324682159341877333544358441839791133994670608880648957837088053624159996189954025428529722764400777803094372601159434729951576503147865316388877426497937909159928158355465536070770563352323936412986371499873667991451532816727818578529683438698360124060499941581848925435389785771752591097593967411255004501303557635122910751044697113291833380964835375954396727552501286226473124919743530250526748325663261017085803897262515329113868781491848853523299364528678284223312854750395427493301017852708459181116932611881949709682402466925320170747789940240921737045840012567277514591588861914675313097126263130522740691495215138166854512646066677617145283120692446695950925397742453196231624598711459621505468341203103089837800325903564076617290055156034776914699337488427713399208137384612304982094927845617003010904493085410546730846877694091216842945670557829410752630813085651345836592918473402871922526511800685581448525508008834472732943008844767070094737096074836334337129159972497230613536168728653300906223832152046540200825718886415250091776440519840178470394758168245994116231386801754883105640673880245759742965724783315706575610109777859691805368640840612745414440420631407926056671054683152296689119929241513806040379686452889016831984460195618089928889576559453533572028853332905352538973465751697391088074443858408111958383232818936271809148563834367907613874240125375996826546856143116066627875853295370003240698137976800188653932387428403754768769403730612458001736501120881066665762670373449288965018730447170603790788251708987090302500953296052109058350867436219193496700531711371287381366070837444353680844534037538037614827793779347360183547533862324003276451494274208874947221169372404594529607241129890872333261981430465892893479029483429234986285494339074641474439293781168950696977429014517083517124730802414769028447119545300258334192580640020459559897322495773795016617010415629342906068751724355840830807432435213449394005834061318884202013850247486437874682763321078524244605703668968749317280238450715123755957374552111878533194019030327465520815372410311155807376236981562499004754252743324102829530292600602783626803197043689859820385067549355854621225724273817000092085445106628288103986687602174412668953982938423334679604172138537032479694686284919518336417440330703751716709736420779233311224118842344607196465703417580071136021487639413590149258082760607109537394278438089481270834217639364711822898731623841820785300984382780318684493870506401357651187615434397344056762757843622492094127206604207474113980786714909770823585703479245556254304367067246385289231292467579776828581397859051862110513347879681167504817016206090254570940526857815636843541799053612709262175784239107963474950025676397388293659431221825559040518113008520501905393722887253642871465888943639307036916574353176877549249106088968043868352023988452887608701311019332135262389041343603596530797819124962815352032680139272424906347706195911466441935771944081331563790174701520142372980119456096967120135801320846387245242161218811144663627594925717897854604430043566995187350719427036734578504809515918927292387548433156598197786007125935494146308459551947629968687115419518909545710642661505761114253337013360954267362042093581868991263524488320860030555387184605954959824157466428218911525755067193839142252678226570589776252076166166096757129071912207090310108915141888297758517451873602484849335372757907245551185845356410997037616348352443562293432926239350966170471125532297389693802072726274482027941398896771448458401707953235011360396706805976541106293685769678787562108690445355637443209694134776172269395734975417826522726852526819393733768092904536061632104371635055883173487427751938205169531223780838009477108388591269368935002047638222278448148030449081944290003193785114220319718985292364559056620027553620224858806773240651048375468867954988764601000689697028480729464687768970822435471633573539464918227768102501239975202033207078037139626634976278239226740814685062078954249956183689934595795933144994667477519700422442419056874298440225260616691220417830432456562575895211955748871386577235937737486090469623044374823243029662659942378324530099063684268565351932082013781847854881895585568256755133120721137181987431092788723721142539086853048464373587459438260597642890208686330881882032451276173838612222390511551885581608689326530774573635693737886032549420834836186154267992753144126935776428316133741201310344742766771905935547525884182422527613133548388261150273746872346574783010168287540441461864374149016091112901329964404628208059170569836033702183989740610826010799042154964837246868564678019763790137901247848694486010847564274614692127882358494285271866428504681682806213802293388936876573327714943773066830158403177407947575900058509022051682013474922899511198834391713250019948231159158107827292516039437283243652141308663046105931291299851731490255800916926781752421192599630085679671575433913375798228656865779078779760330308100290645092684178190538687412658109153876586899006394246621181796368229078688419901215021465666299475060893959158698143764236636951182133653246496307976009429934402451353003912034592855096556561617213161503197595666905358871872484636517513479504970024786339251260150842573566776800020655476060425077832424043695215690453265657585657531824197416868647024900492558515620631062668085902732103012702483586505009865908004451619767212259238025351821008006755432441530773768847638274319708132881037991763027946807349157809260917186712015313375921631024934378667018272283707065477187666537763580226681732894100657502504107149803422402433978063004784318508693394367707888590607063298300520626495006027374575083723168237566513211015365764494572551133951725242540207638026019753567261682942255671416683376721027585172102673005752590453273533813098046588605549964267456985159193244622637531163217406274822329062310033941892005774079326102402741630920352457335980663055217131846917437971838389475315055824264318701152838069533517840386547968221071110952568446573478512819493160954612831539948382326381037490463251199902636450776772271529449777184411128504269678755390659032744810757609425265291260927097417458746555004813838284141840917607312062979920274214948688668752660490838400957152064993174732274185968810509449309528724422914399876717248662209108699349804177033122487134531462197780593471267577565590981307786705629490474700692953126551919636368340443913748441248543874627809159899191006036869585099092361645620092610922562696755103873004799946649711087240556776085645947506420203349099706047080531940088928036057151360176296790659790769053384025931370844153325319447194031284484289989088397639242032478218233256730517972434237983685188527458100839843927629443266283470788320047369148596986802350710289428518335733365334826383376667772914111664528915509896094689710645437295421512221039056683812639829812380610696125852499855086672000655319264780523444766299600516796261285104278603401650697987970291173417966928228004589060035076691016018203151876906279515361459503143664299568812010906309667363480496522485589771118722870603870439190250480782724932337555611078563078825271168292836998285506999176460967292540682563707545459214853204630470528353707243927210674142655652393944611738638812103220109490340259872447072907105942667201540799830313790194345575061711275248428127224144120380241907863230189972734478806210199081518149639403468162855471917156274290791845639414575796981649340473545288418344899697792791380563648149284851491621068673280868423920661165578614365260827899047444299245260713763044362884447747575339995473102330251263438670510768178667753594612180805380139698397847020535299248173800400051400388150705262761052493455642826614459548649543343169525659047747563960932830920388467699314166247161894127104367452356892598654849420965720972533947278307532740325037136868262177729374651725195468693294310444180736933074559897882004675268855747506573949182396091949737017801539911823253730179577311565111209862899572863955394749825966128736034738956724326410111326333253797605625215937660082660411414784974693645309577591717978792956105850768950678644543376905295640437370270168741132081606689468126867428153501377418821621595920912128580783593885141740921650942092767259145227769988544871491650611459922459855530379244879846188509715543077182836086052732107973395301459379735951978562258885688087736286597268211701616792835071985735899952450926836677142382248797022591389583570639570656433076121076273240444359303922540862941277985494607785483606142933873144280988594789644552625577266461137987105656466985828894228122941718527182856107173102884224047644419685718153389920749569063840230737912405525042520814462043321856908537695010661884067131093398355008010718097886067919742206366978961784765829157431614167129874689933620148188692246697000579405757997926180000598198621392172799838262245184463030199420262120576046772780401662003041729499682151491773362776333382568279814530769881072382542913542977188619244429760448533645981815576323651165399633847985348027986426348035595357630020774456800555991210343884981925155538227819549159984932513628659088335145568318031728225729812588615556056437041030871949193281176231185719401026242324576031200656858793631812658873452871534567389844426156125781259334045347931345424876404602926492724057287481928243237199041801513326680886505765288205875604474461393914252676017191293619290287710622331941627175992986823385558879361622701816945728252637208115274545393113713200979004916703959789359242943791283749037105136829671956762189377459577982261356287432842231326659328424660328833654811431644980880896962652598627691294376847874370998649648128749597996287389435513283985432598927190023526168732307320287850865967915438012191312633864154229359436704447130243792685815826694876099883906137357442534649807926020286281551268313366483313516052845950444887862711869549889452808927495976624577332740425579583387020092233312612539903182071500438943614912557504342155990599023160531387406594392026786071427942355880318916530899777320656228890378027394893827174879976247220854715255972265741687134244050469341674972826236856220411049287318833857920836666275084547022808502542499153616766261522277034850778102476917840095680418225091487647036960165474923899507073645496106293148441090754810666486745642784327937818021326255474735033719759473273239359477277605801948377751070346754151670058238724445651582447722818170222499930005168723808733745975940422968453071726474582960388372542796785351291733448429165730949559590467303023806786188822994360083421995359855032490332949707428718098465362284792445389565720974324050283058449379680441373064364149406771338014469779923346299804588650757226466573864987028299600589761942140777511206675195292464071210048572215679281146332667356662402378324130570455328069265648185286455662068797059382737736490605684622515736781070213619756855498895688965842099297123062327417293182662002806598909531271204689810714612072417622607146801500383526768628218314199810942283883672327865784826161363801753952966433722707776854710688923057937217751928229383208180631779376721348860076476539683442492021981753949205734795698110427112047938504830590871667652764773237855628003204332441613212878351761132127282308126115831936491089103022304075014517366916102784433239374636713267534287696252997892196360366104945789760639390132367032299207618492572377818677061834642732972997523513820343185977528162409568812661550784014053656169842643354512682249105850372847546120265243549760265281847946090432636344861813201992104269669455107664664693874717783763546756754107835172660125728638171106967940935265736612281905885371624416888116731140849849801466887429996001219197469311956181017340599392505117586890066850409382722165076189117644368493895195059512245163499909581841301787115587956129880335708276330903955316613402541632892781823791846102358136279597055230392234258759009474177408388372309989199399337144039422171310420000587429338743734654625619554639901848065007808793826770938323373898243495157873551989354905610518132228100256868869221036770773156690523390484539403584474182651593428372175266454591873715590764735392690664370666743106084370549937638636066295566298253597633452135003263244009175585584104913545902794942308011969416189929484932376779001434260146571725564484484460346203678009516414779408473243464421071818348388553917232546485453151157540361260171537167062315948045030515066299600736078686069010130676735386321187653623813207539836210727929638539744371236672566749915161264314404416543294963377015166440977824148228958021374805074842637385508411027682847616271308592444722662070060288968172920813534271222394598335799347475354948994527181622423050105011021952763297173212302173949208631648433206002822887940197286365646438205726366666799147457669863240828904838097606175085431510237255477460464809754596104895493489833804258846688049018440378992905662923071939203778767798666256586023941213969455099591876922130976936480531109285899979883561858381089457652008262814693917507393814625168368916551913337621293158502481612210106432629514440480394220644930443248214073987638541017773606737399809548687880269209941285656181085993005370581673081654283889604545926965996145679494275822887365994456980588054749885303201658233970658849802148261262141385675277838551247014293507278434682548462645076243705608585639080487753174649317807055272371631131072492632278963215105802663148523019668473917915840223666440262412295947806648015650908803861869566235535839009372796709013609646443991675537461914116504165536700912402564985274719212015700865501514258457922802597974665584850255897891885058910511615792401317792026239075264021622979166709581986513302191392889105317667909659484348934465098000628777574194371809098927016720487800584196018370057357818963957961611494796908150927455280316316439826318854325767219937754013064838244090075101076154992476791365449969031543750809053124341650005830311208203547399376441098933561924746947633521712199848885127209283292150952568947229980024642456876057820478140120479737388581749705601785509714723034739170242707152729996761533007768896489639483054797266786436102070802020955156409539183616080945017700764717785170590448834383648852542477968359356884425409778176409113823378247579318605438357562981042025604351406911587828872790810826274869920316876458142053197084021565754200619192961198993670094109620796105067933981398033400695046832298873348869186992377519927077631663959788099557569744526768023221232647326633881395570369400478903925485655952131776721030085134440545922990339356986145874268820456805005602581143845819772742741249135418693388867322591398182700035459103790079982226046475383217089721607424669130561602929351780452028863836420630501827232235562644434034440151758701368030873252170805450818238656085409281932762955248962680218028672565346364868846676227276371457209039007408403146859966582666641230227172326474371059635953663714978131609404073894460558994767077945815973457414398458554630374489497167353017018164822474032609878831916550746181935359918394986960783986070554238151810086664567619651158163881230489882748624789792433429742199290720510414924085662505126571508413689913441814341074649648175551499295260667036417733517802198036506037241042216240858861788189529715060832740337275621316671937205297233358791389394943134398351748236485060025570661132166460563032582789198151893556214250816662170756975595307427996554583522155226428625915510208205486026675574758497680272482811883391449252891347105231780744672514644653280818559844617293507537043738056646327877186146798342027151980274583990459680146198318867968714490061642575371994079024775982411573316099437227602654784156991594488512747810932014087265804525930411912439016291478477711835217483698821780707505251225798716093594275953856882389499652907482367741719879987312470753138561644562370578245054581747263320987053979691701246193427539610148578803213661737609353241960894045721515281336190696389355359949795970005683837068510391171486032377767175369662596951455063721056478798489686189161385868818269324784050553896674877352135427672573929820101962617779796295733020527640342482455795639360718870881003028007452244418852447165036893683344360843991431239497251575066916410585823868547716858628734597506526394821794296596540077536928184413095333573598515801859147527416467742373453268707884240379814927375468380844670004735095436912252272603395274376932340579275963480119033478740393678900017720229065108988375791673237928205306295703450003446155953971871431143657663973546471803886782741280326705623359433615116283828700609449422587696646336950364874991879234971764720505465605754518857788901070350259925323908051270519269747504743222608355394134795473235508252740544485225935313857099506141350192472341312260287529285453479908444865948403121994469594315071997104851099705046050905653659334608514478033497191503027666052014381084489117555708289641323957840339618360171273630903676921880886726550743448305144654919323316810036805238626779186179545222150205444077550193223101212260776644090650016827944404750959875681231224803549496568564314785506098493946260686771945185513541943091847237589328435789851696028458210883412115027465280459670359651000893685844565646456535031915687842161065942466216705196789154920242426413032761648064955027782167193427433692573306174317218768816126334043111677865704319749053580801917905951849390427863558113943860277744500819420359856748763692528843816532456806053662562544456403286596227473105806207459276851567142454419184623869140267658319121264573341592960916553499313992135503394083935676636430512703334115432653246966928546564494289967839847519174822189693935344663449650576953691369989802688711648624712883273986362433445724725563798017550350216813087101900233293447084067036270263203880520311117283237773064165138027923724157307509521898138497767998729398595749308548367270527841585235537446707797685110373839488459561553090574092724012052304665668795785812895739686894788089676721159804119630042645341072642261732341971008016442764877677906087780183039528067555631337529626843320071028840759477688957533199250927786387025298088116160134627972837468586132465750287638709987815650111387906892751027780892872940061095047950280240666067877034915225473260564325479087109604242759927306750735059143306300721769410755584720340220301145680424965929421321111508193331742089552716806967100725153285443703401834940806903437579937883851913300745631294677956210277642177350909848398934483266990340790597180823871648327596773959019720280041379372519112702575547943558546593825174033855909772669333494908649347379163166725597638954634598814260581620460153900408063765478127053814749987378308967879807892499344272929238122209057063299176436539561740783216982308998403386418096354119198883450463648879860903568873242720352667051245872557424416711950742860061810680658932747080419143692402302449542148753835000011538544968906189788013867171910413299269160310222523030009467751485868689278637483096845734307703468619091193059280087229626136095321170661805309776970489270956666358018261411252414401129415735917207422194103268086802390249198855668721287560961553201901705469381915697894380615965519622291106312357881512036451573578856743050456263161067626872893945394007673887070817491668289182429108481447265819447636016444671435291753819395828890529486001466158368481129806125106120998925619151954982793821896058517095053644797978973842994013959943040367258723429044446165155591166297631937043754465534837609757143316601294194367011364300576172137241165907580435195067069819206213315864997052460882465200690404511209632390733806352247861509671548787953096164712312239662327083507638947710528750002209963661068343058239855526514984107887920518729410089871938856671878035399898196301097806312490635870187703465057086589008766415401013664528794517931055137743736172666972446764248533785508364067813039589874657896673019990167293000913626969223980924644489762000250402137846976402777400722430472319708154432010135788391337566410708290299230692640593274374474660860698526946687650743504067516821393188068983741193600666063506907158437389958207345502147692827509492389492984301059522041087163162955926114443854857615123445374656824127350623942089831177338629460031909795379020491852453455963320567593207164452930969169731936309562674099813814245118976834918182460506135776838954435309283618684034823020663971059840373030273058249366270765266985039634495841086283806826075019517245039699318766532844800745791779269017973216056192973168455575344550742010787701967209731129178621777391651387423866096992797896098833147751009955515869769146591579312528410502754845166145797026066691905793071455869169584910537280543719274904050008020572523320498774090430688194307195078786888270918469351427690284119126165315598686477893731903357696689889360968766783895765111945339618416916413526055325511817222870074970391212254421212300972661351097831656511737472655210537822728164696782293325783417629259249053280044823978417814853543149601537612748398412827206799063059299103451456059829297777507434346320409069833114248174880900423959020258117628860984834331941669994973944551993802364845770473436526786209351103870662350530018083451007651068336289704657821594138187832863479900225457205418613283945176584429495635981832811497593535891251617575789333244735879236780328234580922112712582398505667131055866278831172075812400495791205851718087383404053629248001341650219875784321609643559425572023289289592083041941618118729404292798259301525623716060841938055721289964374160551966135153361512394539156099850932260695055514872454780791349558122714391989264185501610221026202815514270449652335017062131197556310436384119880242362475976435264149347280916673147637494296114087415414411423407144643923114782017139691129205040881267654685691242497864211532147431436378783786723318719799164837586518230670989860058752191853474934952409288595250766485090444438412671659567184837815942198906594049381808603179420048899132917049867949770443802724361856780804086265029210026437518344697639812199472018345658063408657347384655329477256626359043460722022354290755490724203662564484571314514770548823441326206258779539136231957288803280800796393246298720021632174108960347459623269301968365596269783957968484197138804362407591564879287407005146206212987813322887931432139499932783669396104399041831508224671453965252911844619760107643990673890829357386103120863105354796218322069779049778143141905151908336630895102002269709303809359295841522051588684090061710870070199462867380391586228848800226801479666468757531429909671734375197093151076510754234897082976070642761734925466912896976252014834637850208037565980040001904017497800408279897608919461738338237715540035616765762821680264398419029360410278453718110524280921190592861322050929959804953720410179902365149018914769217680429599862545593922133347072643741578745669245757752755027667639069655907329737152462318413380379434405456128555492633292694335602076863356017420133622327848276736616669003764248300540490811419003257816905884515098303787917236970630329914969150886272837940482085926843043169240286547267769371959927800621090305320048790525490612172918611546623486753793177478959845976980876743474792791181086867394379816096417962210043603894761385165249804045903833244639586194451903425591517637405643326540211456761152817312417621374072913719110498762877189816265981178368418637928033229595835987200257324400290269611783145809756112782401503243030687260623691851603817793002212355329282825882191736202287629469930467618508802128340977047334633055249011840878695192014083488786664789544746645209306770977564007352831226183314428220674101450985132680890108663269685171453275783756283577912945376877356837395669318642605965021315163212839334754599028896441847128207222100884675546044395720335514692702363788843216801532557438675560529971119321911325677890384200635586109288284016827098568511739734715857827184290639632097391343449126856060173860607587766004863475782832988334137731879043211212820796018227483791640810330469235181169644481526917190198259771517316437688065912540886512686707885223164851105590509546480810331957053912685467317275350849842749437965588402866364521002427007825844532024653542722750954030323986953589458821703850679744849049123018950119387698212703453281491256199886486047978271395235170845752271701685167716261333282612988139276311196635149980722460585746884491327444965666272814119201892627984768058764908713764491619449721514238161175865903908021678725289914018413098335494731123722394356144638006218551499042349203755889526525561068266368359518607156614427792582415456122126045770506837692420489509674818684285901248158192328426576651190170658106215105897719609711392959306381283734485612068100391269952712753481311197910747578141361741636716587423320636275764800571274903720488009049938923845871353568855579497315625162634510033861865018840832575955842258156923913463325728830465941740758009155806661647895572050252653906362490143482965720490657980293605149895851083436708370208113520796992180270261072854887101090352663818344977745907669153930795122324463179850516896348464844199122712190650442902974001056872336499871049259984829342323569351316511601022078392052609638372162594977902770846850105700361675570321431959767828905652444798542039525683496597551668420878456041924449403879388166791007036490640702692777988231417302908685760196706615650915965799658103576268417444651393979438155942917467227255996776967403531892290531378309452837847555419065297737229811684720521827071588280563127095049201194959352999143059545210806044397233893750903355564164866030713071295907171243039409230816831220564314772263266013220132410384620086570611264116838773822075337231657905275172774696878234176863176813156494120554650906208517873977511351486727094811268780317431192747825896306778033239717702386812464797236602923715376616923147391490484939671523185659153494926942334620545503901289507749640988893645278177707210490392679617690035724194263246492654413255668094900687072220731783054908520118531008735404466596177316370177260228141777732227784796765430486368340602067107730179388398155904018140832539549594680338962142088408987816401067062916383078885561105262392546840928800247544293448457501711863513220208228512676800291744921697927543177399525303292058252624441298405383053423376181917957708453270703361616582980843379610629188070907419926704085739449518608321343390518543152304001864410159898664487589129680862566975424286142343711200788745063279752516717931544940587620207491333325756838559237623876360858869221575578061276078100451619698677826472631710473530362584670546342459853255244874754839945263471781515339814671902347877345200062573787731928661881485212965885458031808037558564556324310846832022116751373995593826862528449667946230218521605884104797506162138420414208854087151640578139533482776259378646467942005150045625930946706223768303006815306328946682803753330943627954737844936442927451119550914891707854067333638807184710696759766195548401504508891602487889395082694965099476299062503992003690681165292367755340762649600496562254273213491403512487696231256178504107601128136876372755309933749195102612030612234157877255954784660681542546531263744446184168775617577994233544366184074350967498167989899607935195798689849704843015575040400753762891755674494125406546150764251890030301645669131655339551056673790298372392387123226088594855758745481794394997241569237648274900129960377384832271490638746571465802951691422212887318672127542450658858090271914465015477211012935093299076385922193097222111777338086475926573131974457877231399155806820117955740737207947812289923986670714860660255331809225876455546844712159997846311313756993797950865991787517797105573052580892647400805728229935620702945908773586623800818802439250066988412791490781613057528965005659480799125373431650276495252250804486301366194548360624745323864017522734110644960244050128684616311663176846453288950026463257233654353495278921051383526151757627741781720195610703814898887072709820502273990553057309310123396538998459214719434611903366758263178904538749336436549519452000770264806684859151749369883318121802559713232588010022133450153217420057796511648900383946874728005737774550630754706845328856454749679134305086719708764045799751301100203015684550174716064780306235021164746943514158827903760403885469746726700466636185267219462777109350734713670773828598539104856537597595804307712816949929090286292491063261976747900165190496798091010275503391426872194173280546484430708510235753014078114271730635654327861705574938540640844933139892510447989673070597141832274363789838290552783526461799931060438555912922882770597990430123594227580590734586571914598005486979007024422081465609789243314460066191952182419335479076783688285114300321717445134295836035487959846837759381509751028239799711881532272256375456763805876689955013420406819902149405599732746556764357052015661455350823382096462517860165331577074769625464392489359212897513312715015729592289217623760175447460471942718681553452640998183308063892020565091646294313676589137569446801673219383388587641919475186865476701464345171137938565809037604829013320609706664565847660212521569837723284502192410844993358038808843509093623119655731808337294806678878137249574707855893111364211187458200615556303436593612848139847166521862311356166320039828463295318460766116986968624248824672623645472352974932702432621627631624658173629858417349656856337646433322446349137902407203873892967309870303537001731069706738833301200359028010742603540691242761601074159674583012053182644640716160619810814354195062146119523272316926334220626659502139810699133671307696972538002596171947561977234336015927677601822431372820846772041783490945724132007216603083304444480961356545074796059215070363147646656366247783103771376144407273008994423649593910505222708000269415121283034815735782816258481809764421833572968025689809601116189146341443477415686993941885690448193958020167905386910501030458237309000997104362973699959973320804858738306772910591637267097964151872278427363385807924156476924509728041774866898404925179222006564934912588799401880737310730276065515531045279556841879229854732233981814871547637665556957638789521009430132434296309945470563514611930674836114919344303067966528022518625517573857589764541566662176842265772954036877154299355118249987094267253481071905116648527307443790195897131125714902075049072424531043098684558084786864761129839571460249361361176230351463301607516936893534688677170681996759004378012519621246942333443393599915740005163236342087119231172558918884414980161115513761687119822544811712317789124806011809077390234552926861857558277773215668615626775914682417766527860757170059919173921411635272706925097267226401306616599344841511013957386775414645141104922765465711895029812020373125599913559692180470610212654914396626308711238793310041206157809985755962525580256747246841159706907465382259306879113909471079874373997973063376112249573189127681432653450531017403527254777640187922346037164417918919879776092178903998447968433970769072176027817339742526189363225345313113987161877469978474282349864493692622301376272969396166432478088814629303305315026706361996198697219861409411233613310267218805731176263024289924355615424299350203240717672240478574142647593383251382507689224428629687669490635488929466009559069878707905756754244622380473012167952398244759991245899518722418912616466304372657113850543846806735689296927967772108896245694682316368104278127760797386651480286101052999833482284511820750559210364284413600583308589091304832844532981665084813457394689080606719492869807692400823641810469871147103760358847905305718290297923551736157385507256712655666856263402773708307199387808648941473414557025453535995797029672771191381642007566748004072915620481764641901400995239068349286327117316260086577048720958403302246925431401631005984926356917771292309375733554909555032995933675514550365485009488725175293919033909491113170975816993620481335874429127109219345136458044035642777272425847454996675370331524193781284001501225422159152730086312016988405878830159498427839031015908291041714005468255550111047795746920829380106700595499224556489954153023415552602017588258991632317649208274812367881369422693554897974159469916654064996897577408451363253830498239530750954969160191314660069591883327087391545662301991349802446499915225120112254882216388391503785672221352792312074525896260391055301463975039760991471714799095736125804562280454738154892093552550231382012977946650403607408001592806636692899041618004718895184290536699600795053093827253539542273506197310996863739248334100725645073822600959218442567012616824462865038679676594288901079133762388425005619943898206180062891377574579260797911545904849949207391621468143135909237693745426442406741190774549023219455729046824493509599084242882321301718614141067155197438858724731681049821075472605092873624628888294331296238275810001735935886824074052575878011079682350159747067157498284491277438841731491016655813849503630117068064531404354035308381635676455601841878483599664154596152606783608878020482128930227665543524092667355297431841848472684150681234818674087910267181321963867323676098815733338357052709719985902900685817983858437762642716875786274650844623551274907853559788550935951724010785995419565242901456367376181495250606668170914457658703961786853764106694071504450640839854213276823812393707924606008868984165142705885342756156582769547865234920208462099505465333368256258189405110705106053797662404314959403191724431855230735665489592211119852283049949152353700339090166106543114465131393061244981345380622314508342263453810598293876616666357600718017827674694616230732560727868496754868340700429146552784761871888378287254834009885257568887042825976516049350470464479003195710895242226252927638405108415166033116436233543283476630402455889990250522989843186593186501675610666644267134863975042166812069437925871417850944514199741376180979573477540232244932908392820453920122224615076658310455998529472136420438256517317455920336914611143975704921892807543486306816867868618099432533477678974287547644156591842142477928017999748655538841324477499373945644589880073118742974862841184804336204204102318173711201819773423218265196031576813490256373049970200225685907886062637944509674762963009226178644616285775485637578187515722046399090372329812457348383859532197745233675572831342449503781116697030697257921085679122523102236487801033785556416858219743074955567409113033245318965175571335996781889925861646730511246141730105958837642758777503645621159696442928486165224174391674571451030977064872628003824962344983459264648924106474588768439323071709097566408019216368614521178287897521204303655066786172748221535479634166998414972904083284772836056022242506925125076318221670455107074400932319761096018001810274567325208230314436028025519677744059216627762384842043336233720879325826004368001897978515475552991856261112274087534310295176726941451883618019909101191461301602699845486817684540727102460090292206932762135014914739673355568471186046175677224472490247228701934489353325456214361688124350347924209512154574777214310623823259286037252712540730033021222811644818429274932188029460738585103596842227537283814267921373238358590084963696528094959845266759737286588998844077156504838398138187670531843120348350524643686006786509201176579441117604224738615149619145800374804589365259553789820265282344494342571783445511297377956419877340279361911171969172710822088035199070394491609898707580335029652304341599001934413934467359217648047186834303844671516958133383527473378594205977347863666972791141927833475044350381555112376437411136238083641635897797658609329239196357398085170181875304556768156970079999099134987760937734837577569743766338513242903658326569846741891677416339526779845072201774487944132266905469181621645352109317297193838143370166078170005498893698563279380845388313387633081461420298053560561099016152012186896527898081275597213622468774209015829884531749214953895233454367999552431823607606382646997612055691596716650777134337009462261237129046217711370991804845011277442968025740576490340500585909479742823989129402360807759395727461336523600762371444882623887325742877349771497082194743965322159304057141366702934070071574155840858201943620221908813977866797527493024511246368593253677664323145689404876599668392984543201059515389609514711080333498040308467103088705389716441678417785744489204282809320247686257557195408443068484186789514980285230108431868825046736021612470207179208363048340595928130547414726420860412126014731910168424612255886714899395378931357860997507481318576786714404287434205307535665030669795404036732291893192975179745461542090896600871845634128798509984124955189341328718077652073379282492240622731331745684417326612100904850040632849240807485608609445645777634441544888902379919085424308751314070747028351835856872709272347392770592902736059962786895993227803667336442301034826704775133223375503410500297692828009660610621642300792466452323248840925113720546378293050763263214412279173761260906285545808997536326827119667114911323452691125764039558991894004403650811880635835523031338742644536627257851252796373931297103872776918729214978306662208134662583463332397351224452491141771987457743808322961912182765398626808083236477954308505319649484069199979236334255746474249865418039870236607993547527099747096941496734431925763752479452079660709302787826035351219878707530934961735086067722377902876868837192950595586755984930242389169874314889363502797831073639553527077570344488334410650471005039734016203361797805510865198989147320413455836860206186551492963027066686706519001251993704639817631163869763202416579552448511500824554768662859599410267384568201232335326718192366715389149919054976280628282289645933786016224376230462379651533655255187904164515152497966871687608276772984760065133720867831025038608004033166248330549074801554668834993028976437411625534027701088823587826079986401097847066242405862897793040447775395588135469259352753309477724253947209382546105302050577027804494913705886772719057150324320144003976200845830991129788056654955155301638243423647612504326117794376856989521053558290378536909031743960060242589092220965984236326660878029670101858996154063205910738582354900024681460647099486803122102301529101173075133965127837651824350407556231302641284896253778513549182010120071872867826156818800446906112754719940661423065731845848597086835391400754501382580164152518566556810598511192137111275474288686484009409082015205289532897916084627918061194060193687611225563037907303219473641639047392394162128378682181099070576861296456691220394959808627654436931740169657119603389317647646894169436121947556704848803526067009804421113179884018997514759658272194885037793668252429377283369471919972306306367743074891937032283580299038937582486444979426660327019845569241824482485706632793712254031481984254286334262349512283175048174648394982752889761322262146995601665049761623282393965280539078952739229207916546228749389168752285783701657687349705706259902140269501594224312053670937897113305109969296567086524170883469890979811752106982334231711510330598982755993925617339146237116614709461974244684616649546545798317106844985237385863695421607994270247105852630660278009847652984619487875145165819335671365003801110160921600263844566063672854346162214613581810897203783013157111611327951783382102376597051327690506855401474214340822944064805342787836771310840707016616582311466748958248211211244449937408437326994854463097944694028263027037042033726478990136682829573907723930928144653253813220644128929120717557727396068640503525866637737472127795946303699452217050188554173439178095053331160293115360481124929219654752158003223149974658342910861496922546486100619228676123674773954758233289468100777758503230023723306348301770072849195391235637259829654200447558299834413325441933140191565782356873720077495170433745023984052144083187502622340288631653142170580573186605394920272399970236768896996848849831456441506091078051530951751350873338944923950724732199099168316585146230099499256879211486016116302428545353469136182581143307377887286649298018594437647211024908061895796264248806795751890355348400795207465759825476787147851589000931739453678005961007459304376312958011244529727070987861201422521755131845547292745014297291873446728422251344376823573743102916102136825001791417790596952160247017393737889519972539467376595123954612689424288592734923311731979074619884308529398265153863140834185241979118966401466703083898048357501291792003385042950891760819469776410679858455913395836395794706032645122772811828722035573075377987819276180646653248492344220214815081324949442921959278370068332282640727414892637977670433446054423181900385457945747046447068975326161344666716004375954643888738798360662964891399532726324291111493013180504677352617953994482016954203012853762340148047716638433568660571223243139132075005338842470821509955249829963890788527293750452571330715078528662380070983792746341963938930643377617375400898602748761671648737867524781762572802697459754715475148603108880948974265983796429178404255959463677926632057762722484438078634017943967868939259425425780688908224679894357463492922098455387833471015682568361214412604424890450680146556735775050012360169667873498939293288430708809386008145730568530059533473926736345377456583745621565181474178903211806146906768942986938900627446281909907240375670548171098058587008163058649513270241741828169870393275669774240512909426654665278762224897303914064133539075119884062392377084021838129907767236875157824877238615263580762821672082551337284254506669949664008125900807419764189477058321478820213328965393750979712301137899648727652549511367056628230102259908723400266992731257083017920006438502311917249979239197648804750155038605026943196847822043722969494610233842460094009582521882830168081458316946328173082848752443843819923218034945107068145007656492518279141885841184882499373156002923978088301584127252851588186684712248167778167758809651570523840549980092310741136190319297089498226960114042931317586465328543081021043820064697283997024813233668235086840206453517816309260191305058499217794724195562293981017169868373921833061432883223874832597265264762578785021496517838370915972314564876099248947424310728460934793465019506453855810786766533799079245460489801974324884729533351294251731041114189305596300265261358670106552285270526633202949829440544681387828960545097796381485011656499873390874463520527841135267246459760236815403304369513433465891143919020410302785958648617466528452075532972233188862814515730633189461066402155054749594902566856327931863765084856526916329578354581896221885092334852411194211944695162881196539203679951278591041104408019314124005106566491662670671051006329137713313064364954639457155188947254877592806048985780205561744909763360173632774444053642004469344811172415127156902357675416804945112263071757004276349549735714149702836014167618837802316463569182834168050562402565557566940156777215096880307019889839640033737375145702194976642321837717495239189227128987350604332769076868371214338032523188980004000014947392120833584506870959594518824751149143332677620615212079627713029169929831249035252653193890541070181094932169620067649726737524810992765532927242431787436270656520645798628208340701826639423812361294334523337491277128972791287255354911311162500364042817531839026083212726092753120566866588073497750333502079646782969528561462310383586621280928989872666684727821830503951517839864642694003234272999630273977924925527025523506193546308896385646281291289219692093927326752801698557083830810575145936542848787543428923732310509986202568889636478702624158075658238431848426856296404242468502750498775644214055489784166401020928354044812887472283521729084897096597514228642067779942025928506928130494779049927614128737526390388806875469844255021136345440193624833371962334196670866933901629590107809041868426788590467791731120582840283965291114953627212473637385140111685464798162304283438471988558721387393417828165857256991943784986668646600126447982681162081777540994186501271517953120178072482465102166488562327844540595791092450585031671402349980575417172584291159294710058762667117726260784923848853022124796248894676762767277543487358693457065249784284789832428857305387442138807956705533389891008596402801999843704524173793591116969935331535240838931983091417283044688181909205881863730715263719467069573021511012898975744427215742697002788710133782207032822621482175259070858560601913253228744895747879956554495752838508532604660485388495605646233632517493825098699846038949701473715336286629172515222537273172925891485635530798111989784250812786217301697492034923864949649860929243192042443736392624277232315156927306662806839225357860284592043068393522182058153885101183256119136020888476353824120329339823956597070260114296320831153761173116873163476795488512832327016505064197535113281363222775101695074876439374371733379805191925229047624454783139767791539333368815568268939266625774160977547602707438027736124525469492059127994684927131990359159280276905386529734255560801839238597054732319299719545060288407456634389348943352380863567339422946493972599019720169145550737521420426711095019106976053006366953414449885502092798492341212571284586565917553489978238332757929989214985501955233361664354910897006274195796675352577570671244295751762514942536591363150866499623559056695840863393945903161244449302985354593707252488901578986376964153677991056657030786519945816700412016308222797120042814236666834339020840206440847592144789752593550088860287920468254408895486363037685239056479186511530784001167258999010218538121019924923442342472124228794574622868460066488755652754596653183823657521811546405305108813229794351274124985051733448446277248461880381623431423665918945665230076796829479361701661739743899700055259211263463138958686536860635174451218056214059647069575725092873862275240526828951159736868049126400796636164190789811363939253212836526529860425848479889824822602141349708772052194109373526864762183806737546184303916318385003371716062762525727556340454458761305464031029849923489038601581039815915909415129962577027361743717915693085947130306189740718096188445887269895550766516868841721424734755132123729926822796264566703009112762665623789503235256370685281388573457770086361814857361543986014924722966383535519486520587273861088311518115346935624041896691361440429244996243460342710550065419674731108191426014287822959314988931510231126690303449916303728993438200832006909345300793479882984798145019819581061829883633733184608377810142670282567107978755731799476518233948237358145734592431625916045857307413075304829297593600813171434835371061190014968183592125586327853994887033505662244286718810650414155654249890648318362335567160786813956498566866559373781147159183659807184500455919079522193396777441385189219350334216956718800133247780083740484273701052052779330772802737141970112001864210972574059283201806423212100248130472764793841198185048647844396278298259072509771430600732178195059098378941556982018538341795122190744013764547836945553858372198207618192038891493973740944351101204183167387350066647436778440975806041332395025003173881693815850881002298446109608833022961882068958685064025368186832149100991073212636738105389789759081489308889492607586967412634799400401866186864918619463504475007469193772450335202095482765410978552482298017960807843414881439595725701950235326458690291700132924921211208743036611385770731308714975692062182032581548866980574465788856172434054455954991201330788133553474693098758337944811088522481719699054403875976828492516795789730167183596463409082065072904154271109297079507526396541861749526025141822034661416651235683225687069490614736285340723126753513199889287612886527803890376231079828544092639018221065345818617864708362547333198703089080980197997041995734598500919832990177315972220904525253000015402212045724179265916497329187353946661926350833383809971116491241435839951126498259384847872768369135335093650223630898634167716105970212449923100519242940778852850003921838442191665836039301743385348957200321532205260846191632156575671120170671044981264133916085804915346896554491108581599412468542329124903920350692847438520516338746183445304215305768241827229958963741738428024281745616900910097934917191759227879825074119035282383334915054797586358588305820084409693287666306707485407900078499770514905566552812680807405310789556198630122922214230429992748449077811019991882586617342122659714122745548444571010626286113847240782376456605957169144044646956255975578669883652878590244557397251209944284166296190579346851823334604321369377742421300453158072952996126738081733085469018063141331871964227579044477274846940796625911076917056434140952051804046278487761263963259325329183895207726445917635427933745764793291571192992114715275321945597792212318976507192003209344331449224661830404023142182611425513020269771078041560026089698231384266835914261988871481947721968097657571642099903821502774674991926623332705201435501955085161888125428245136795255232486529016150308157725857012599559216206020969123632120367785281774198539838107765000798141126901594505926966623984091742802563363915083386388781543832715709859463359489985482587227658914623982661841893393971663945748040876192348418143217779559582152670631201476039597620332592350722092225914332837082011086139326018350614867587299902084147587889812608940084112357561117561752995876574962937030770739730547768469041294345101037495156640874935071104263655791980121264196265518088998325082332784850641850269323615342278341893234374827769797976830364846796582970088449536396981115334902897023166936282530650933196128847261061912831740005525701614547794939435758643486141031387068001534374618258874162065586665188066924280816994807275927232558144898437037581666148931475303536704426386327331768281797869520851479701288937645610424976565822390598826289849934879545234216208105989849676525886079363155344556707582393016515232089913552386775341626617524426075968060622853089117098601223165378806652201941602555685205799890395513888076793831162612699804175667499573660899583982989965206572308374451052729875825038791336639226705045558284119873530308261327185236990112243838158007849851785567594934115275523514481610145347247611731028440837136775056942082512613297409537427674817521527959629727220462814650122009525243945067264617145639403434254235005586427876216103154603182234499315521368113345718652603659744736399789476391866352798450307715683005024521712547186370059993425254472282266668044596424354563794456240659279664412936700883642696736664926582378898556731526778240701021814982712200070887409245159689262329760019957975140374153736068110527348920372961033377234991900535220641901280170592336531968185505383270138072571686008668995999911011217974268229622438497974193807860192829587951521301464161020684538813130921093879395522786535574103815836663327892286082785854503444535098688210238947945791725276246979804696180860044761372426107517392996436586895797905140489327183553010900721920698906677065969173848218291377946297297246875134033743764896669949913394606957899447016316615167809757399912326993856382940630585316462859211928934343239545525731794628083303479300728559462166400744824872636276362852730378159249174599078256740231347704635993951413866628155609616417899262881543731479832207622112497436852997699071845731727694760189472033138223144564951118517133575200122382190108030616736568544580327517026628821906862245365549046682153885338796804225896915769997175401382351159710568239752744234998906625440462991970207266277261403945641990839100233916436100149310285365634625648615817938770510686236212874599978765702437349551084116314356539276403725453259706447190982434407877791907001694948160877931978751397366239394849273772789768920279892325972878692495279261489867140976210274347134245634146661840351322533577720953559827007392787239842925988638104920959972666862679873533792887866279589908660176500040846641196580053907760254648378755931719670035457011491192364798846020168193146363967694391886598408194352793714975713849192675595840858027010140129016455947903103613122072400756132361730752450803324473917007901926651674026811296401815330439477246127105713024343255220943559111936870992325915103127709411752974687712402579122575121043850376888823734532800895472851255248963419849651125126118252326270917487072023287966836563356255408997263797645213551334002135135289441670849281784672289656301701577488554426112339540136136823186083764887726472998917269760556891122414714413800111798254565341838210286525387554050302045370780670677577431482733138619928296446996159159991793220086144038097087608966818704952870637884470368467090244657498114664004784121218637471263949074095602847394598255300907954824772738565680144291130522705173251480595096528225934624116320115024984278622937981729685499215198802766244452677384103673106377598167976920515990142757715738085076439652525037425652261604279092894026120301051794664515462938093088937752139648226543210648074409776893463832678683922751152435963262447286440383328984912062243712388682843706129451799068666554996873458258823101829835918910081209226461340806229350553281468528854470987411904687463498919538866647314016709685346053720361849374965606348179820965412126641245397614071012756131484416795898140604654135510507963113378272606455724706559250409160115388233673362802309726897032867384775470558338003583194655968255866120734819444205253888528326482095827885051680331282217378657893177487877994760027227965774774736777381951148892482459226702521441731002085126690401372299665915048820572757749694027644606826343786999076995974763523176110511491562157285044130831569891794272014410151065029643057434669617219655466527084302980050305337098537575207117457837818562305059490030689372165163589666337405454176019882786340881987309785818350143848092896473226656936182763167992487974165504821707667953008849190418561293171858422092595013523571413689747744757360217007105363006561858651970112846759189168646917400668889588365898687759670285130113796136149961867869941850145664259410425675631331288426806434008060224252845172788757568639659802027523927592018502194099790626149125868462201165869371648878102174702733566412845191335526351480882766250367490232681561942214270910089223007995226729001059650127210773837202278772549254224672964583293991762980595829935784726317635406150852711019010211000267549786932590591597730490993229960020198566389636880544443368764089396855316438081505041442554130073318845652474023956012305128874243420625178476527279458602500543782143642409607866245402239593779717861500002481928977775867078004696406668533437525118326712792416018718705565536222423626556282287936130386873496414675613906190706780128485421270926091539749420834942766767251281030155297171954353789517464511809363166373226612186488321465090294826854491421569579312533275760008874933096223894612806647033192069890255786333094252794721303696747046803216172287040723840841796515775208529891732759475330252193104697471238272538693317432119536657733707062281541713163197705070492100174385761608817717243259417972649723249182930437267290230771835375492530961288525391328700990928543309358079107387437188553246318374732502340952712647255853163441488109730149611716588410197806060388750524249607188150446154766308438299222940409636414714129138664229946384338984455754551417905496614285929727012826518868524041319461358587385316139410159481871655893068825448839253572157556449321668737713975311590551790413745370557427758009109802127655990477224407194214150576123328710703113093761498576904014944357225076715569657241847832950456141483812171231268205544135986898078623005431190667494012077466444658414900439599737771699794533593616302921866171084502071145183493877942357691889419526780068338253911746449264099037423990800274524013956615762813024277074649918657092408457427081728024496415034253573204518704605035938432172853618439614529367290620952905655267370844349531520457296933409231306459241296565668822528910193881560799419122055030751272895262822908819935964658147875176542262402743764969156418577457356711147538147848796212577309397863863770670429292092126468892985893348975428243509749656458793524272897251846132339051359917526086067744465948141621640638040694949401799545965493099011225070098081676118540224924866971536770202093815869091070247469540349437277284322310432420134547957328077158504484228978864945179600428644415119508192955065659722775376056060676450343362435760092982290678253783007555952610542680297708073490408626728516851568516877574602054147247110410962576564078127782631410614302304596336588127812527452574440447432454953647914119776158307480957870346597192673169887663967731425917869120361891474516429531958231491259524364933517742823931557491164458511498370212526147916427127975278426023434348196950467809067306696528409944020147546084178744245056100990697581888595340608356424467611797604468537883566869085523872563384013234921121282740539543941973932359601762604849349238957634168027742675155382310226350972081499095017132496745124383108454296941265598171733621565115586544432475512391385514586041788857389454946507302689909141396817564642240447519522429660124061007218861232730688754250335971820526006390185422081454599696756052474302060436672655046794574919576392271570352289124344956874069702328383381842441771935952442853679881248439353009996125014622974635764629200256258478600515491792481122049832874079502176876669843489411604411341184684044427304682769167652032469784841662940457601167460124791801081113852004215371644727603472483669228899956520400243399675291058569906481450450433355608960049889772452867585643777511551879860030616623134179693393031061083360564223066442817506174722889488399806201856060865029498225597436035519391034637004433698789047419169840051067988279308646005610022633748145845485223495519996004355053085577988908693815251487495337885330188301960915044037565433780677905784943029910367045658467138102157866085659421135364085424595866802028709328738515452566184198496246165428732768286673448417274894962293834044815568831774434787534586015419646746443408422624593370260297919767386557109821781568206683694748720969299630746721376823688976548462183680486467435082812866553841097482951386676911531096704067936974436701504454067162929186783115537635419213020512645935043439602870803277100076084614847560451700239160061256122442505550769701396626525497553416835691862872160119516377266365656428325561716003739729481602987933925782678209820007265569498527208017188387312816790597374907909916796718179639126128425656270027052658046167880273428886089305528770934746119693707752556292693397838272654274784770260812846650196700575266433246699428856821054474323949475230970727942141342322753382981027971858980308871302551682852757492731225768369522772597539527869730860639726534803580253068772878339856048573220962288515346440542298897488955720423416981875519089889730698377974923577311420937653383559062486322938600790008633860700368304880623444223555733172709209046978050386616226100377616979041164821007818511289958763479385160995007116634275374911641875045169832659837032800574440761218374526765279839087059424677078334822524892059563796333752262402910369440375916077427502853596017335582950135512528867770358985228628828049249177804986490480374705683807421148007669595585649868543156947075961327167481740254162887227689575597782479463633219854767826568086828744955260070061375956352041611011494025508610236678655453332499655644828025644825350582802330739916406476860339505969993425728440863210326027117994457076750638507019684104121938581104834944063099647251600827782662636903622792010809588194182288847352507942754173200338219287238277668375612183176889918634029259915460965053803511123033346864148064661038797112923544187467237184398337814113684383811588016537286858915424617766600311243461106760148349283104168951261812180342109658147515286481069773974244071563089969307803463030386682371215015656591518065385997227295958974454779278581372384042006580068718504985365719072554020787146013657915375647182454420283041744720501169396515167908998151396836655020473258236500170892610172100730127521993568056444825265198010978644896010895552984915504121990343621349828062237467600653359252815616618742409709534307470610902653641593844897263731535610297905525677520792007690606082885112718085648855369005802523290592152379606572397182737652134756378140579007858416100515614937022093382374825435104383544147526575154349132040212582215816004850055920058299439578880605468273219197149098522977617392171258539464308650027537310648729043898342876779346768543827859431941092301287260446961017764147700243345212960120059182634346349649897390288573147309740543971078879795524163974613645729570114138275083244231456516916396176324290248449518585414484636173157522835713131899611091634753925240154033708248519804167260187470460268215204627583140049151879708632147944732523551754880810249671317348459978694876973772519229703410022788257359731263001532307937312285388191639016378604311796978406008813857159802713377605528514720651861822526919671036635850117324951236960086555316653412321008758983949843730576180194775841375713113562745787682654252760154456378164113694234126221916738079308686188969500604913857452889212532243338086371238043631130227934377721969223241505651056297255071193444843817731346467943548996782013130151052427764185803808085724232346473447050784346922955365890950825422516801489556444124721594737344901943531865237859425117785007617512801899444416006344268491884188804109938003105108914332717545603564229858235887918950544965109605586015858912586664979025882646630612078860820910168946134918738358458608177194142429798907817975209783513033258492697247153212396236170073581520487888922713459965045522413094058532741117487074353741553154992018075220921870670098877984318432466341102714768208121769669669535416620142590301428950932012929568838423038373150035172325775783036165515483440984122957643602145779981371949612495982782778446119359432222695688803987380737338055712793539455012172374634145898998024183481404158249610759879561563107157267281904327234027674840978070488198459932536520869483606978206100370086830720005668460709080461385245029915318689720087074739507658957715561372102373083780667862591492526189389031493198527466588718945893266937417948587984802339853437676425845230844433141265440179151197011908330551736710850389977199286776122044574185384751267275310963139963138599283337259430859880427717190808245292242780136234433646964360226612847579689612732955710640173386544429219946878216070668019449603926356163608781772916960176067232214775287831350767214074591057021924960166967059333855711969487333405597653142371771573021370558204118242294878963557582030267722679465813686318918668812455765865107731162455030681315749456641459959535604181652164002392933196925773905894640695616436225466354971367193707269686763552705551727157929537002470677503248070407565031355960880759905593054660302901831672625918318418589370923003449245713375705325077974403453046621044581763256387370709321512736791898252896081611883899205636230547356116937105244649832901370913702455791314524658894399825809469052579099673410329331458094412250473355662837645689841317572522703471860575243393176807634062101763417569062285727756197394288332790063379105851929869906296024676934876455216448812208973036620397918365861271682886546898833785437048369801160528472656676547793662397488520048871978722673343378332780328396136933222505451880648280366810102098351600542679546630107340377657973254600290549285585701047182215861441159822356195171517991314380758501990621608401908926619472453540397181499833933057391901250730567254779194761280771409620466528834611169450593802441614221826938455952351603577770231205242995169275035166325383186122866476929906869760851454844505188216165817568140784939102454585086623715558192442000797799851101044046149694893424993499889702256771841077959293468920858954200962336387441061432042655104715620428993694837575781299628881033420310301109419913907462721797731331120329011598189986002867090177701234297017001738919335428397700898742717144290515533752269938118654143176751615285367883630815758995850584703384468667356719704401586410067685036909540138933503313005039329525919240682331974971033016764192272715329268552182735743413626127854352571752004242328435226367042824205135301274188838923800359061535895178852588820740686635057459821740931813134836429353042073616192221448643100397109088487699689937626170569718402754177664378151616899477952612353166478402300512628421539647264602082704265064885145328119504957923828023655256411136736293707369468050337103086764283195975543701649917476777238022284400225482275818281553392660121668894571546533112310327604565534716228707304675555579182969600911118716615161205902961234352383255974709136609748476673772286885098098551936312190539804123592167077035965985001580395246554086173582884059021635185771849020831359892180925297454920138577947190512891253350027908442631052477835631528944118073391694429774685925232327615664778444505661117935460121483366546365757685771834676388530191000955931225644702463927219430582711590844425079371604497378282398557149596370375943779752091144294631573153968868264527237027588324462464240251272288815100635784550859267736372163447265394900527638080501342029507681348842663084461579723279834911171240336902687803885250114150753148503561490844634092553287793001960659549976544371255128219979698032605668787410845144820403337735298380348139191052240406718077745740991053719331106111727035113172130354336561734805565942185938972437756980272054137110294313998661131094762226195996655777410571522988432809830733596129887387882464235860285173717185766723920834952944040544107682605330464234922312046460232454383212530450656453466976864111628962538846053364660886531966789308344705265554534819018947476978049761839205632798391914742707918737353100631252363972489122679066695405622171166689718435087420489048813524829130697501788506616327217118727066381304882457784450146107953740025228285031606017572439135438253277768874419439937581781520563404585300637178620446167977043483562203250830704643235845669652118485217397210937198973806929383813939658458490735322783322626777743717038370332059507912709430783534754144851205029183904577204715631323962715429254295711914119446135146850635296845299528443182926852727095486285962806604928975757233769334923129766966718201134272350993144710595291597021697863204344710812912690950594552455219867411465460396506496304694465684466688136420513053470661482002625292808959468216821085336197925568351848733417707846212488802064561121688987021549880943926925485912435177402042979941891019032947891627191889569825374737105203263550268942101179192832671324109776278121346096115724875911876760367971520201791183715429477835283148098421524291148750370705608499678100188019805938008845755643199135992707987694677859555921806147524917173439756626048146330669688311725954473799828588302489091394817491005789952253500450830013811347317184487507229013505273948819979322929344631746396179442044501116023841759093869319200064537826047643553564589035628560434222681158473951551835132935446053015846043917255920191107089081792500992228191801197096709541678211326534169521576207972608139512284626460734010951305809373705574640866702590015660120338764070085243084181067544979557445253597572493711100304557495916190736691510714439019723387863599463517375676704456210062174312365352121884576876466476271800199636814347710631262344771430810409879237631630332661735913300762126713838896990045273225539571669596767525762487478120010913728954618923927189387213923509337889716771633461887678797849362615341919441353303232957337079147680598600563811576464953260519755144145833262565302845224232273087704292989380469025618579138844179527408068928963157364131440685809874286730954735175300605267337470789603180459546743452428511233687078663086076311643818120932104913693901742502810079646395334959772988063390652663845260801621853618364299503907600871691466758549612702372279504458873259786860586156354615688306116060513791348858153485903984716793089147095090676616499314965056440517671348352865276932031864774636810315901993559715866849782625024461507201258001433407322558382314872014493836802297940811692279778373541748049000770780648211824371878684184368282373908102609373490514294053760340983033100448754335273655635394451556495100905072170349263632450705432707975964609976631934738540101495956042620483511886566309641809409911071879379037678928912066584537272740626462414778144436871647257198479962401596498906866428448600127945606274588717101385360849228874896051559025679153873535266116687344774677234397003325220191628161206915869324442011518393810292203607063875925574112240230287170173079336189261926779148294293554343783968071139474470295759197066163295175916225227983736861229428157504983839894802262727045376655454001158481928780072127846464395439571161288149466994869122639398067123085146993670982536206352768300408886455914838022476411301636943176087075819689777425414293679674952933156277434682062704876298644197727254437602816424658758772443776315467896687733378756310027015674166374378313931139562132905792880463562652559493065003026415632128854964538752131802116343356264503497757871941402861556597751750710349024629241361662493635789751752592867760057146036508239713237071657788296761560892577140125045301579799211392333056145158789184985529064428416701496169124499518637814378825951444399840386398088754180603296934379812256837114260967656174835204667127948517937317806961782173702485796851844418141405531951859531377008140538483516977561327652223459229369626211130144101191343841153805757434553632534526090191752226792796814586048518491022921242297591622644209481933801171100440433053773956162641229586219697227662626998934122433652805016310231473629689787714841027403500196096375822915972176919751637806703492351123355684348396562528048337169187153413772868088533224034786623127239066236128889512987020410278000390282121139579038634854835858776371546399939161980842980699296633914993149544815020164488883367024777197873550357035627046536402578560463022125912825722563120142539861810376423363554836239236359014716287577738505682795979876567218008962929549975588243012202846839971221577707736429985371847604325817475562017087716010402599035587671530300007659162909607158314800757328774115303185351452029248774363073146984156960322586901985462000914937772757793625457315076307565504103994835065949707316330587528950514295551260586633494899502344665336175724636209311781653785609269421375541343958808573916179705345989150108622246643620117067731026224280044698674756105164248018281912763816826206524646893943153498667052835387432274352754336379109721664868049482989207977963109570744636533192882185992203407001620461194985519905080945702375066625384126631979877558403323124165639913950684164031778600078563630369398049237567766837625388292149681676111851458444091617352351897816723382459541261182466527107894386181059363890935141432085369268929548709383006392084641402476163075385305617013223903001383330313191676018205058319310315586706317180901357082493092149972216471783240973196894686282072386849693686770311416162949183802815349432606682266622192956231086609899265121392238230344026951744370252305212577566479984631798190092595094143927545064093952042530111860092524039955240064663315469343871104981461756420672283840315009936648579614107513996463301104679558753818390096552141554058459640254522994430288928974429817714467162650228368275938951968860678648965361871146814787474311841052498085092254672922151893102957926875810320164684240699049038839400112115658224942227568915267510626476403928932978039888104467485223907347030091374058632428824009174671356736492354393611991554493618137276092726122122949474128147008745864470792550329389880389041410162326602750159507854468265320127355444307795828971158029881552244149074101323668073225569840912749944955458787459551161842920875171467305644475227266843399030842767284845023049007908639182777246472735910534940881226873632712411055334458943168196365114039621674047872329994557794886132259375670685421254915721903402367125558621053893141190851315406904576477527555366947127676891691134269535189361385599869604220828886123294455974625802338093856024023181475775228044834019437177569227883454980528525756658673107158057354803377619237633921913353409662514967226272251986077867730974310420616539435579637443858847832915268701376923241452544058415624936545041615433835098439664603466603957466124639099148732967249632497086741009760833065000725713499598196488871077481997869769571322755711576811168785978633763740668288142354137552574590046508381995865150556601182503221010271583423948246592571991399538914001868965422568674010004166687379465982093628748214342674436734120158127061330363499971669063069246876118759737318431403372821059749391855508660879974721105450039023193386312121569982480983853473708876168551395477178941260455560904329357077627056466392046282532755506705972994446508767941843928123199064793259085178584430261237081038913441736392619800852847511062871793013002223842827363033731381773810106031709893288849767642537991446153275173994127213457310679755407743052513270117269957241417757251793274112878359040486977213458976942927476840190308365810381412055970933160335407323641911261361834986562244218174160676059849453037126973440656476445244895364508144612613891476088353404120806061200482572901072199528628093089862718536015014053501508667261470251575956180144701835125987052466670672658821004882616370782084501348503533832059939219804456269795430679506269257330921040179409885806231815676382643132418391996443638213424144207902639498676511663926965399375815571048910357714890388293901460326106796371197994108783031661350303384108273679975699611020526217775591373289588823376793978190951125765130756893479626692302141844054857411592487300284974799504698235425628346195202010656492623158073405722775896536624479591003591711554473113681790741860714528891737757469547081093927466209590170661556131360538829660051477479749222914179573144487304135047556138515329203312281525232914330566946074459828895380149729991648489661519657401633362465664842503450720096796106195568241998738330089263519375835060445049793324445966542300664808858488274943788869869292942191997037324595785985148635002497104851350342980838298183444343811498608234314171648228744233278260420875554209165155132310608413727108487743081223486351623983890308910679614880020510270522815071218443205784252293132301048353183472215422618637402408457623433171523018535625823286278493116985854785035906928028872229494451269050871559635706732990621152111424053128788206236421170187547158908680566517134437565594630487474735543046915526425573854823213029382854038921014444360375089721465408108370495006233685825191289059455917574591270917604934659528622701947567880312327326719730770155563602819640935718364278597756813998766536509306610466599604794167040630506743889748880527940247251055010706134148676986069618854978517750586100382334431234855283575043858931900792017790005687657081766153578537830087040917662312784353888920002366922128170494034686264379377069623331763641522376939640600363511779811173526598508614236805355791163410364250970249317244273675991722697248424735721393156146950543892281770092530561273616556632358222127850378405730245163634097018799147883545504112877731311132571388563915311858950053847714940228969809116888073597546689105524009632349516610762262421844349721445119928430481418020548547349499677805676410437171401072040998208909568708182140162613959788900892496009177413217266282604758936517542159079826499507130831347966274992874450359970027854688754324588763707277228969628309254825646813095760332140943117591510643115924427230660313069569052733077164492875143249571606162725276414021064534355572555953372386861672219531075179310361836302017555529363786575036509985393612076034782809619149333296840288394120774720661239224986552776071245267391569185300197106793336354686315255302735880445488127959190136692781320565328881138976924905941084346575066485942657971778195962739271956554303786279383388312333922805573027199966713975772415692857877495778294961540434912942575387346848223021920943217764487197785538000077889830549048540443970436236294446988780247702648839409641023219076810406808247902730067105041458667824502580776246022935966365769538929277923932642914082300454525588527471929664749202007491183784170937205574706411809728524538320795670407698457786373127168606716303379744982323033682398703599244655506255687447069919562243854710477552436133401969935264412650883109536864030212482905409261117577567144742774724382600549791136166346222199150853923186277065449391739500373145483988299003733880026820067418994406069922403592136960279270694338713933917651730286775560643530822366484284067811894234248526692430881729385181585674743018614390825114224211080053454225053157955686359265402178893973874127344044425990673177930430652814573530619985360124253313858311713905441176530742445071033166635101668123670002649182540613888738238884891827465444051826017784742985513243616189844263399841216750615631603796850579018557487677829058856479018409987989999428447504947357471755647781122491320744506024715730177275482940164765911780697329719492903756460251139214155898730177491625784210643968229353859628049441049756047861018850093888302623431288726426137746857278848132605327656734484943199509794660282496480337503122436070827507335407013279949287762563655018603334467739221748014606447683157646054248535997575391561086400769796773759342182675231389193438912717897478535296151372137438341674053328932312068121665193059652116367897582957092680674140495021200181955831527652019827338922490521109730713212258656776607858520086658534656876675025717360343744031950006563704500695398492547846291492501899968930461199423464555239363105144115884803091111215277741428494094172373931946087957024255495907502946642554392516650261735336181472818999906170681837606137366988368513649010027824981828169620492829292333587965144765280420730603800945647938290336740138090216825286089815526927561810396234952610479529885022979623158146897352517259040779213655637941393739495466583659246804715647943409318285073650842519697684681893412282919936086190681221429819422463650145010398171043534818516020875756750359844830776319092424360848018117120093080006980686717411704432526939699552580904787203868361619114548258811982303037806388979146558529238341825593706724599075739723627865060124522923854855610573441226763541347956856474709576089061157641769767292837162353629815543351792868736016786117870971382375964817313246081313189831017663069655428257616834416837429822447912447482915965487922915749343567055245612757803576997593506591123876372911683580837143263807791468304973428312829126456105080698211976017110436442034231720637440659971499324810622023759209034547831846150137152940140850880626373199210939147610541426947222927644292678708062136291357054254198863486980784739640930565889135016396956489787750931447157615381033125650342696726604019246676419073705969336654983447556338022914813989213960551786038162002363004506713846243541430916840319912580342890969217135463305081693836338671682208764503965944520708474031251142745985049383409912675972409811165949919029843056188868805885011006368912396325996602886547273511835115659688352207959816068734424524204339297197582961084527485648594647567944380716805409332313431043013921043355632257145690703832098255248737512455099322000071333371273872814339524369562321348399411566462294760010188393548650486977272948302745691070727914216425038811741909941198691682129453615293794218159922118340827299617811851308513678970094647122743648995275616358149024019372444197779736337850783140150981278303366165946370056291952305554776088121047361090920422548861337575808032202258662106768640248565936490838736294770359716559979508672410894156869434323562257674604162278097051678785500358587153220592207552722358970276878130979020537715718211744953067214834532832341132173715879031725306931767343132511844143668156339506987164400022317168834823799996995506622622870059422706871267659865140403199622258039013720838114141537961361714131843036505020119184108918978934246764819940183286421178992765145921957391604350724269960446218930003162000682565590919587154141487981025511049348109085137165752663062500475447693752673204830682674779043918304414541154266139384988861674754491306753694607655206267578706874807427314624028519900276106234746168180796447174122074416922992688260585946663614310942819642033403641457880489959466262717541289684327986407603732369949677465191419148231250614345611609259900224211537164670950977474818737446287163581826651514930104422434832802679849880593578916195974307908721561495530951068811084133490251961242996088218130864600692081466345076578819180681069394614523579271834741640683120540822306641214523153922420781161617036318989499271003883979211810379392572779197391244726774620433355261039920130139553251175498446162129789298238023520294683636957260497084705216544758150424696951407044507314053310644753207887973517089790259903777168963167981695625319964818766756069135534449123704856266219167286201989087132196848489010088775229222564865100038668109711988830954257347649274425311911145595253164002891591544908895945220686006228384796300991542310192604442965419113211402044228999428595503501061770303824274219612563103528513663209564273897852197376381845719126804001248955570715250154231502796985192834887773882895800771459742058177777785773402668434995779224133637464221128372637262975543058796612942351085022627734734583158373122604679087060071182336266772168869997179689995653373816096442835317584044755954200056830776607658246867187302673091046796412555463912573680251002965439978042210983570524695307660763267946066850762584485627152943536724625611992261493438805910323639918355025921220919435144045319300634856060062411156075519817578101559714590050090277842572850751390638654381778994233605554774092802343278516283760988651396572348417654979355891725487668632171244000814742793717725412875542496439880116736122674359860952079711163021179318336481654764467285733200149983110517507482169768575117035561578179017675654835147388718949148844624993018631049097133101883809505371346324609644575732291296952194094134925144091421951229462653091074721447157530579420751033282292712675693343560136778459859002314948740444805097782964467515800562412862115375316142715418083448622445414500241430512135002348489640946906876806094994191472246503796639129868826927965129049169459049042909319048377149452699460763645962975633024577716977889105993233393810668853621910061527443720395434318049111054202205614952825732560152593354261048222416850783853874622707481948740822495709968644720382992480339326882729868682974610215441635453449667105709277338732981459630675697186420638629237456152714016873605888618681766187841643076291082485741770865870622676295963401224463071579609482668929572380876080338240861382060821997041866067819071827546798495579065843563618123883941102208610866943284974194427808671465467894309159324127753201701781860628642691432357422712589058709825779853363051971290742295726672485829103837339143433994386517394827124216729515546583341074558361602814822344174552291248897464050233369797920656007781189549501260610137850567392146629003732681064263531397959615396024180025545648509792784515740650162786756968937202995228380441210927357152919865523492972189565344840383134580526050285628380534288143597106967250163689610208031455794998777015887329197538914113714348079198091763932673175088153734645174392356951269661622844435678705955578492670063348265633320456856926900608410625681621657699268595048023233765140280644228030144872789744734775137958695121189451714578852975399177044424235370200543071175917836466761163150810212901803978958266803774397344087100091474509475017676288330491723389574934969626220913693821072166483456690423738991646075495867151825514928159137499725265566995210748065694339389338012974156813904274376757732798106382421588647312323831656740227906339880547393089229059060163026219829899372725743624430127513331970175807406469129946178350726650571840774633696793340454823013534367229238409138198729720722034428271356573007152048901684801307309828922991433466626776346417425100834242284141779966283711166832196941278497768385787320904993912608388335912999463396534433553026527075701631730652583896348768853143075054274435541784038999163392577982931935334071543485540572539761505603212358570106841554176540934142886869764491409619137373697947301074418068012464032549263188190749436711116116924073481302592030604440021124086641735833178093354100175865825520916105480984393320506899701333960227771104594658786791635460876014555617619942631222398496161270281594344377079097682458976192330075250449951879911834037963119585601862833670256218255868655491475603409483226972152732225827854424462332170395660862903535024609708564310353969866461775672938412344659661416289680911028844799203035310463025183642299859245527033149329048574824007543966403827478839148505438573979421725169377103563607314444255452460495747836562288213218487473651727116426180847092712764041780285214485559235597623195015017578816238135232917155399145204098861303216620240206196451720437185085077732818014050177470235205393655635752615634632812765893503170020576845280765545619967484641877031661988272706250000027404571086042635649667161899264815091054123924859827775510846273332778000932397468803132929738343822886250517168111934410176713499891183543056320374286403573277519335374187411716116909693223893433830651268536771167366231745064250242831756201315912897584066737860806357009022150198514469933157679541687760583688937513585061080782909033640135326218125464989416823211776742384448695695723447268924902167883852760927116594919784642054823845186588886124496508736592631935799959464463532844405760925605942119531857380766103812442869034546433299228238014607486699614681382267049188666208238056576954638905077878250020362084508847415782158201395251142324006709499169040079323812982635494810640463677814858257103820085101907943902260045888478727193866389617509212797504883043503635410064162826883525411430190362188907934549326098969065871743519219639165429824711712058117569840820385182279660871385809792060520776530010829968342536395129333695022923655659607612098689544668190564119176596026604745970094336139154414319289958176686880287127323015465784580399319919997468034919147473813973529075117105992809341947009915592681618809464156372837334596439832654679533267514875722482391996581459598114255841951556042365536032742328574376324170616488950253185618722954187623774704557359755059333085281395961251963787738544670502061174334376029692040919524271225676565138823503379001466059817918769858985599499537559236131392318698441084560118252610028277800526862608895880187179612037115301552585877245563638443941455463213513459124558858517815543490595255680947978769697399828485449432346554747220584468019349302672332722409414446643404203715312909982361229799837426938527115506987258747216365846021871374878507336593810447149243696148423303880945287606925782393509258915868986582354713110402402571724983694620729539919532779220253751757301546200218901028179939334129070032363925655216126149960832371378537049702144104295366252021809085766630693516653597281258320220181712257574423261990656727862119707648541940456374986373930629561160994112918362394026407122293314328818025183524673265889756400680659060814040274613770751460900501393487348242604916308427834387798649250077667562461310093604978791039931769066458489454278217686988390094683721646816544665294239586362326226813357821819598138262984974686342477991091608018710435940533125315548762207374311940812662428625851043881138353100162068418022904399261500323689622623423580016847798165286204017346657028799960711751932942080246793768435635477638891404894628002805964542520037039190460433097461101632128057921734620902731015913283614472346487697314589037177212893965776400558039501105459811749599864215238213040975402527913683482472608233418541901023993375959101093425410858661934929089389743342571811661015784357793036341426187955109671680085237244350335576929211803273110904223475686586565003257679340833304962578195473492961756655103913322903519258243625043149610749755697385583046883012901778627655671486553974251430869852204488796688668481494430213383213357700089156110273535830623776202938334494675609210489875120361532910821617470711246851174184021786044466863140442394302829853843991535246002111223089128204297222101450923264009359833559489044833135950058689342315766659287640898561255117273181376611201506956419940689696148607845538619017434259585354727953886342140274826615917273465758259615596692444479605607357951517880776343812320055010350285663035419245853547080253243323156558057682154660818938940548746502315197562367199665645681562702592225985395737061081255155429736997294394359948712867191929608772810210106636758152763057288464991287373136991350048540544752318990799664002677465193601160743427444534700690339303637216949178506443863908614824691961088414506419335636479680588774912562183129911143849715880271858033422502791258665155105708537450440369207968979765250415310028664429406530782280153028535077334264638434001091245412440597645392305548210244027719605290310972085792744784505359791974667403800152553807606288826849895803500013159335889858707203914629850631445875828887550716253510172160766631831092523510204034548365667859010369119908860476195308837001839640819458735016779297666433178611818001393650808600293909331221066368333115956325703233600228020480322337138162227819447275851968760997900554774169273341719837041231965856217958987208749103397388309269190419327889008929473261893439004877479924731416704809575578784622147204872506216818915827095454976541286763150547404964459547590984622070649777934198486274663158897602118498859553232635041515077266979069978675323426150934171944425066303283651309830529836307002588792830622498156486205608435656793498636799510987660872595428574108476390096979941241043175621046869139755512254904433013549116111714218378550427891004402867509407251165047940343316685235417245745704927343787567001089015444091162923837001402694782202603051462000837181236626455152065291242885064030112561622082727423714020506299004052469086765691309585947344495440854607439885439967805199003453185264094739043137804430207610908242933920828185611381139438931242399173647284936753413913918583988072644073880054897478502833341813964458130241457191682982084098232499110767933728458205137038767629261618148318810824029584237685661794456343213792763533506701244694355882282463842358279627500191640940318791665739427527978176375162035462603870025706828719327223236804063845490560932408617239146460047947316136846484516566998995250783932778208011623220232934117761598004354050504173601095404832867164224571916439168521899657901601413459917087316720870518029430215013494874585849777836584933566457462415607893572398161895301101604778813858056477309712010260170717735220144862418176816552693122987948695032291532411099182664337679477121346334387753819171506798662082475798117769566423690346483605310845012991360194755587353996078417868019006591631808432538050374342193444172607779180325832248517322544909356471118953800340462763378021368410522730170462814819807598509046104116227508975956693972580887881082633460543655763155346949483515046008697036916372910018497701330197133516630971479158173010912771847291810778696139654879189187244048556716287093458795168885932603572990001952506423792577220251024959615290890720801532135529067898003730218294884998377223106776969136357110040918201008185644702211332729105865961860969383445907564459398489967037162159322604883023558469192114935679349623343099608344660216661725986263143616660076575986343728300827289965158416946654117644873360378087882836282754285416822499597919414766369654554011380934879842205826425536523568901187181608081108422446182967308515945528301484374260579502442622926120597422690380819814411006717500235504999681269040902121160421852790830081598907985440545208231188985377945598967731120356257693069846345345232202171940800489228926411588907532519298730003107761806711397337000926546421831203704736749234125527518681996921777264950730347801948492305746064936436385157279605897061272168480479100725218567769022711740109148066912172171553975718307215829994648729790784897810622378932357898101682455699252873656833691469025786527163628111627017021032530005865318590272183602011209711456623805573624305500040741083101240839125060725220151497821601454797971484916833229654716432600432411301304695264882572545297890553140865526542019055248311292395024079495234592695894776543890061834562018469854043627771658581388941845224923131982994395105430071510969817598608460671676799487376870200217085377093239213299297219543963299837417617041698348884366512710735152224848606444170418178073662267945283769069829787161302750147454330380694503195764736722351957810905731750871851869893435825216003633266274687607131227177093873007378708555461594541131253440478037996580740643530701049511907163211564366196574173991402981634574755109529899836056631925460355378843850960089286625804615433757291291278556667437975175678332006256988689194389146407082306996843925890553990936860088740035100454957642047523238694362154978110735284698328975530475501061387008627432642408447889676071138022944473463899950585334328042279697277559411390844683808815909231053463852449981160262814883218042143513571534564399749717032425330447284348928832825096255142358338885963733923769114051543146822636758651676877944682059155547456072486271563800179375210739378482481368910275571119640876376979285778950769296477512553672662406214115990995523712051874132890341289704222171327966165581487357218389724531720647314710066916888578756502738562211351425566922102308182120552517273345640655675057556155527445462428538039306376318827271873777320406070451863743611621523659526987244613672245356782828521538059225590575226938064092504155536906488177294493387267333908717918165179633856312965651288609940223331261780525508937650263138005430214189330108155358078220417474086732301566811316543740229783844676811668836351682897229718239472545109209331051365996124210081384811779050995502773237467535096096036110250526221828090492484624793837193246355565401446674105517772371751354649228549554566944845107308118518633879725502644971734006506013516947177650323111991044505984423930921102398344860688821013868451896098026110205728064312622843504218357916823946446540604361660803583558881770876309527881067094727164173239047921243551350790466745712723412874969594589201106574866799940751798313974727864351327995179067537283558558804508377986234031409433266057855691892346145025499208443571978503639348338193236645007287119551280325966048125382859439056813803428703998213973504854674731259873236264685959901024390463194255660158105246133886014148195988097353278867937923531009397195457680830506520843638238344277586575515144796615026369668632541900547348688758716958280176707918424543309651045669937755475465034821376641054842771806108990920925138519878823515581178836650499061062657673085646652408818260087878597130997175981314714547426753803718136646447292239063501880395803151860405547694214901750683143083877909408718867907071994002408069041751402194763542537756652194445025602913020193692157281797932454194088334611174510198456807126068766936936615335333093036497630604140821602662697204958196994285458423972260419551653732291138531804235975644981602316762970614328282087686927209719457563322599593560783324152568860582993657357741015655801227744815695019559494916192034739302817154700576887726382932514330594699032649053520233333156296477521881770949858933183880353244628428446793377289713078591146278280221196861486497249378262956598562909063355818878534302197283979669103675251484705042484031506995607678749185400238649272192405797101743090721520870460425134391951140471728964089838290486910596640642173828695125837501508650754145095019401382925688623623881465293114863908282161046533320638799059129086403602774497482229330108235297770898169541859733683716302695574149707738925044444192456709232146226922425969363784117787332162222390868967433244921166984267302838056784272531180538970450408415467840795472509068226573413728567092391293005742085233343633625418442670623750157012738887018864678511939223609670702447062984109909920601495138080686188502785623908561660126553192549582398129884522805253612180954412991007307184255682381448729549450259991818035051422268715883248058565244981676761348825146285243597659756498225670780859176825065108910503756942638186740552812735434226088304984646216492163016095945554640910355563958274103375579913133113537865084726759496338948895861520255399909761818401441918968243620531487250096718777754936176431756511341256149091340530557909657557290686694289071436542247528554518798948608111516950631719672318834252191798334789249656582279799402756615774485076363248442878731939753187097049190889695899876072634795237510335743147298655557241271690494884179374801115987447185120868336832617969749079516095624152385184740173059204769394976590917101740655422927109305081420646810158897684514376191130304996685902665818903052699423422647638185136664874188200063972389002990659220118385560532169008469743605713975968269521957252564559686319622840701865923038885229930568144055954016320323725303079252192491850054472885474612059582000230077108493195967983082017521561915457500518808002610992867397402426100448462777537666613449227723406474930073564772096601055170950182431168322284485609757522546494553932182354945353426078607805845550161889953866301222531428527995496471888817581651286457999395179737470884665464156444172886363087843756450840533306559266737963293012560279335415018308537391137236184443285598615499325580380511206119130829829957053262795498052445395051677592573597516890799023899768201666354057011414531355509108059549517796971388941781067226862243940443041222857072732730038208390762420118126416989005959642931764131193702591010951815845453381754718296075378135131567572420316727117135167668640019644428576320901327664451929046604305727235042079476920342320225480264301737325904485011059064740101666058047831653690733999991458922095467849174754740199430792730466216778995085928733883221439718123954984583174023617882684765689203031197270262812440415331360981072846218406673818488758430133479021328229405641202097548668860533197062351495206634718944857266131635465673881039569707717000679587864155933439319948178277587666750849755520691377033188990876695606009324103952941543527449773510949668015751979669889007180519837951029822345668171295585640721150092723059220443571435982303160463524854516628641955253606463732560773234715098266701447828639808603607690591297031530492883338940505141576775163293265946222084779713718334116681679654452386246732736344187721082757329650439705521822591817869047988995633211355405208818695719695592243330347029801821654441509383902483950748454720620184490751319177409352452694552683280424540238656540513839725286527354918670326444346118362884884927216768322028643314636046623403348847897508487827841308914852783513532232330886779590609135101162425505849026377871963424340963172426499256002925742559616349646788992439497961679847369633413658730173369779936379856328792154768284882406146658625866386570943268135198354939345128932420917456499923213102285050501418026824597956858308260512160647064002654275630411740780061241934071133835260383853657842680774217787033149981537932225734735793314474547371887983262653569651593209147487606341105947355858843607579352830234083351360904667791025178599139473387674496191028270019751776411995984911675368532968861239900522031606722350826385684334042944084329239434546913986505343813055309446147582140535814105403532050456224385055288729350367394126030732085886000215274192837378074303139907425275617012183525502927568274062031599771423281912301464674319099339132301138378140110621066231785301013575835346126131974005011455140270319228414563011287540846415110048287752144294957699106390274118247835832586509044564655850957889811748498796805171265639109042801023561243848996773398683092187381439347123577420285811768365463482997512597662921399059388536719407450973824830068733692115465633076045876288524978784228347945363863482223884029596567890526024501376355567405346080637064956979836388520114954607024072488631942409298987790642029603820727778798076453893121838010416092587696231731307552506062131375196281419394359898497995767646688016768430667436730500282162871382827281778410896096565175367770412159936944365817944386361735319306864758922302122297317236167384566630241040115761797432825705971909860046921498468839564051631943568907757393526928598031259541537840543250371291014033724935673470560103424416699657180889004491906396518207388395864829842834691242863457903805337236732595370387814675883601200401123796189615309538538637686825674143762432125023842911432180624568810547563391469411141950993766550516606785391023853337904919715751430155665339063956200525590116764870547992626528929327291759975533254010353502665496744606729413455009606037643737003201329023285661011861427370976571821930393500097513306558633628539521178666163641127548038200566093791817745704765345570763805706024397210290097463987726066638054466279303591887187071363747563820965982240148318223411661155907156767160171295208522192713287693560124076573688439741496732553852719533483711249019918580265660089721358628658155842191754586841857230946659108111823175762476996205901423824270774163650835067619546856727805350851469451219441337892997354520056962627248871423974864366907565463089490811299170577194529785190330205564801203569908894329118806335546076544205387104266930838371266607741730852965899999362297292917529758227666481499232508452685527355874288953916271046370184945986737777195481955369467375014164631392977146830152405078744650951165379426219908061606047258941024958595907663021924098111396437182189004658527594787028554381350574462530480257312912725768468607588398460331170158378110261814672748650369692400274534227482673554167040315601409685920859008451501796545925691870942771399276340978563706248445272049340131204169839239140055476681548540651904509587916523829876306023119614963452839236674612268428318363601043700723550996110937791099787217137654209466734477298316915092049355488017342581856859151681430320476199158419190639878528724200141379924534047748875180736295282741139302467714722413329375449195592381628471598679490568016623279871565449123897222391639784531590274975657452963203132415824964435955250588856567167393059560958306259988274718832632883658807007906143622226568465584788221246709225715448330521391660833884629435189977383937785101037848308139181881310310791493675929928411110580088508908882297691194348606611458595499432508046682609040967080317454373222493106584098942945173587882166546959334068921077232094937855226445523524733566651478432891263914688606582010456697404746089408520458199725988351174013412532159737690639211917385804148503912445613623488610470981181082211106485521923501343528632422375666972839585286481015916162497467370254863165643768987597457750120614025616198978738333443515720751482939272868492677152065198716968278532163659731173395466079582937991144765912473154051148530394106420922800404079822225584146878877567834443300458337876416355894235725326654990529126062160225328140445412446646563067964970485371261850334178597099223486227084083654200829219864963955518841232982364874757532153949675365658444682286294174950143837541339987765368424699738738992764064048433859091870699374603816371236069434906079410312193736740701036826545120208484416840856889291768065874224436942606878045456253419673769181126404661497280052578949575973250096457728518556180558114583177344720949517232121823498685882375604386565993325262085208193240920054894657913838792365569426671015662451698688238257167181029412733703155477581495784220187967133232721313783018411528113400747527345389954671415460462293133584519001175464738721345067286603129313953652036513587407754508988242712613189481738281401411875561038619585092346369812366909975418667344812524619104130331587521506784813198657215837531089098938965071766370601868225127393730744295802845276435098605524394450900333125515038018124731140097881746750764254772851298594396054081756754919966066497046372650294523003577606646395149031380819128169677580136639064552519329355709205684409426138957672361934453573429914942823307461531868756895319917341948375520282371511993399462790372787833821543409325394963059854641503632397726075514340157424022007229521070625261046814187996391401933862921950330443546649834578220174552911473226016802916019881415075954428863767981769909406494802441004369894138817431588453602074248356425660445110562395123134406912645184126618703074428991026202567030002662337142406735005842974194664248786861546662683092724999648506796913667993651025245630477777560576833374942701668724333630028388389396579820716139503677771870795092538938545556028827468189812374190200783185253133792335953827807155637522289368742383670926720344384940259521919594171058180385765459663699936902712310417873785090174483401798131361824431848678425842292855982009918564239886493491719251112424587149743298269794711562301683040598632326373218613447766346959961888650574697532155629084890573065832660796966166128765871739709090424351770014030802503087065968339998226110901764406355581766949163451150872925676140376399403287082725303362793478336817916225539140301184024862994555267366595218134050252272655367270081578827551224511158054017196768230462235257767354674879819466060275384510125596849107987458318304463910419738621445614041434176781118166773851878983107618074118505511563787301864550523737211586081936040496656836202254778116075741615469801781689901428899644144439879559831280894801444986678198540145703572040114590644424800091791688283618105584314194769161435202289531032541302602539053817098058222673535262440768247834172044478907544385075280645181377422157027069214089091225879553032372740618021656242059269426656964858313959686317608391918004458867088809292499185186299374872539620152899117620671247554455848836833097460457194277363187971344366236079773965936035763789762268718038435838767523227029350707420306292236842059837787366986263300852556565441787460619998721451868210378998555782847935899478423429338135105735651904518075533914426249458170110253600803332556114983523314917846287498653734424811238730559983167850224666198940232665779595964318368001150627617829633761538164710480396426454378556595819857011608364018680461564348911622856236020790311440649840453862344158790322972917422519717757267527483643226522345867914537216666374320722035683653503800170905532827627090872012368047395684706538836957069403344749512348502576769311601553361097939207344794289339527615707960618462021633700727333713131284255704264074664938701365455427766135231584181437222414780477001365176491258196550429495007128177664722936893198531027525938242720208778095351737370883509543722518407933126769493866733147908319543493848082432001210628807495744908168851545731457424485216321193773706250936529809148385305121700802346956035290707970527904027404289977157306512615569158695165417580013581928153212247204529908294256938216608386151291077094473334734249858867572526581561513614638822375412388225474097662510320842630437588086320263211962377728007259301233242005967570465374812193132901397706474660578365685309859890976492183882431663106780977138651801217322189373011481162379563725797530658326468808590140092183245265626116810577858681527209175725148952934764891877330074510273980170199224876639228764351428270331420634530395526101207718415134798175639313681859237917062640797277271335348124316742094553428705994479310845912942624261526496501709930026986867583715021688575987833526288890925576535559562525866238533699604955326945670154163393300292449899891858872991576945744482045642531826620823569193058781279873179504060022175392552391828571998348842511007586056072807280271968267628635381016260100683310183687458521570608800072492893199874280549487718363284075980973950765369605733241796929223822418007832252535486182625258741843541219757160529522710335000954352027104388105883837099382130149290708510090093268640147173614264759070664073145985134583984659936400902984965814141908149771164545401435327135861539092414608487675238142078818897792081593303362600230721742521049713310882898040727974772235833756106161454136487863896663625968290359961682606933948389773341572890201531593841049272696669189346459798216677264877650590303104179653133273138621501755689557175999638713611850874810111918835646732515713895979725584020671829518875034439778345191142504754552087061775542772033597771703359542768868131637120132660867492833140996070698619167819216035269934037650958809548540214129955320591134764440225769113818436164983561781229780245843882365916117345901135951258689015184817248567301271550330084698120916132429297908105019970109290384983042520614256923963730224694597334501921273242027418675157384304932712000406678355913984959378348366971343842508266121707298339988960646469354878448492759152293691171233049997750344497752151455495274776989380707221472506285105191283643080626391947600758570720955036776173764981918829926438868911222748098601842766317782951069708288403517211929060167504977347183504347081929460430513848385359279609387388924070200384028633698671129176984038837578082673737996747992922891598117441567876081386521260296650514392385148083456878392594319581583399523846344109335237586699898197659442692359971965666324848094014842911709813133528217182379328866411848001097012424909902210113464198225175618721772828468076483015062023238035553161626520324291648548141559110149526549524673405895285064201810076026693331018065891934209083757918585695419756193087887233449579451177693275324261350540967958320127139871682692512240529715085976609783091408135398685052911356310733367951856203283840797448030699258524655356401501402862881579652369448182800505566013362457503340565554135719216972467464232104270602819535935648029494914611874151326400811872774052204436559052330658536421845830224252410797042429621205072040378019964777529664980032784277501157175709756575910878656957619936782013396338930690724092839049358984413636496037033374895423314992473311382590582294725546237963541688662551664477967514721067804255072231594639340202280367170349787377970361137980578261482329664756304851979526813325764572855397204093192789297125976221136841717842175662844836039871730322852402938480623891731120165605396590190784812797675039352047187462599190517700499394240939101372581648441129919473861678428838158747609938958484508266492929854212682117268421043494002937104453488735054919307175592568260505914402243441837088470113853857172086683126025455703322164762980884198470499987776494603582229475628814506995143117409780477592017579040222135485020441174043175901017895159270055911476668195089112328188620590586890375142128326136174875262770619910050868437077072855382627810528852894183221167203641135772202795420621014198968096738879113358419872008325913328688615151547370316500533807117079231443178583855590606985378604720627197943570801481808186338817855637012095707559661003940045641277072642494373957999317378076173267731174337495878810527248505300974064864829775975376967816552368225776396471488544539753855862015410281144282290759681124291264403550698793367861373123498194943818629398966375554449450891129049076658466869021905266795538383201951900809679502910823980456092247281608301503671780266446337553200689521429601350287462386958087664260424000838987316313313432640806064920860486626062007110362021200293270361221775299707946440473875786566225508923148219882070693434156050377716053921763765039515311878581339326445167371501195824049127404891632171816953561881521910493836432304060524595767795788413144862140496324671474609691834410895354326740560258523017698401324902643594689902733839137684427270992475570620097603904566911130815384339838076702655126847967205454649842418127780550090618281362756727719754430721323172546669201112679012973051270498491585885950086956020544137957586827542914047765809861570611738910898223348718046924231325758102346906123419482438812282674276135904474805465601329147468898068391502104094877865845927053277916266269342872424666508128806379451656682943448277016830626371356483566149169756487252562628898049040924999436284494549227668622024910438270934947505879466246973543966785990736625270349424700932581353220749401479091680917087083621416612296271773959339253543018349076916596137631303958150552524901683129198095957089118530443531343782047527975617280563739612900945416288393524466579736803697615000348683047768809760877257735627826390523854498317257249573167756376816833328803431096522036063637304385392649671550921106270563379928732088558246303930470822226071705783956002015781905974945542148249108461170300974568482242217924397167023835768323635768276819308974190036457405561863122849511012277424621965079997792193544102438379577767818853481729798385257163083692516196297257528844216009456107079746391277053034930186693252376133139092053443664427304336556725409191703350251278604623942003387871201192413699928274092292434781084360560146361538807291492901900471162815197669133589440554099081842964317672657105892507575754890409063369821159203403970232887069682294467220775812165294441045577648246814224926130484683106034945674904103456330203234493728660606197734811564365111271930788579503649569957901352966285641035504852719427086979960026302471132587843185792906398060101098090089387645217396768599779019186008239895742655431416674618227022110995614169574501175667302812214098602830288286750695321308558159825712524828425011703585805607021890869998708436098588141290845532708914987166700003877428026802822777165571961521033512798907967548516158124568728999475529435146576125012534280141622371687394312477953242231853984322095436741659580133723701714005189933655705526418261033789446324174874257405383164985932855167060560167379730080512843235184146215626941524911544681259827820554283750010809545142478841477711896578792741566083850119955384036058300861878545494950734730424690543422376615032131428978061359237470864307722445988142411169175006743389265799510533028537233423643681306181635574184020172093681736283359076021319625160483869434689239860436917852225576707568787999011414279595979345456868748261631279547010414187519442088651573867857710815565723532239759747980122106969069047948379348304355057172692770704667959814995539242588369110052883140757560893674460155522449190404788145377111829651912145043148797483393824742358207295570119608355938189264121577621072790626470352487398982198348399889640984692331587693874332411575640804223265442922190921334682064017919722137961103896837983005686480100270962368790340712683312086310647124447853959795783138276744383229446434590371047678536503898166806749573898817553536462980828966754864212971232206425748163928181885323386886200196911027001055368556002256503264380692874783569956100113953727874350074019961053497602972199379601264886279627887916410882469284025736250054708108867334039889002659946749142375953320333932262174979757545115742293110798867727951108470433416279223264749144886508979161636296556233094463892080670530728669195402817538758955355327802049239826006627212898501332388386419308555387548309654054876313593456316096311901465856115604290060064003627327617784415764422837211549123387646387719869595838516966846063149217484750894140286370043037451797584061325767936435686920575288770089425291706711139420961557131843537394981384603771818757019409477205801730804220356616421139191067956422107913144839171177667903127369390789655916896817844113749669989676280902667603187748477572510730027897851133592763056161563457098490978693218410900972112248427642486553714906321152277474814661402668424272133084588636586795858920257398066711357610310871285838192102620704173692212613172013638949832772907217243301540428579114472154008893354265203312513319642235945016891803224259794098462797582139340302093445282515040791663868849522878709891715842422263837464526474441544949715125742869980178279813517612629724810550603526397773144749607519698746274541857094630971307665308009824718259943899143421613800277612910772674951051992448230091359813595846305681155541328242782639442204796784550559593347147970277858920795192220387059037682580986750013617999713472835053692704622258873529035193638340430546824895475311618002389987426535401266110088583821502884687534587763156564646964587852164017020126106050055506517656931765969844574944183375753999071380937018484100045287251818580461572431099168665994024050226553554872536832691073361677166867972563834441034895217848436400604631326361808181310062890373921101423495392075821160998113328616927029643857107540917221377898687653475718085827393526157859783588086630488527676612946439397298604547626908200882668010554121043369938531677134463094809365594797765798885359996088545567351225262862564097985479422737995620587301441829594171012172305167141894040929654446974691859248828626387210647057055743031453922075456313380135660908133456451503658131578038448684750262036477251557590992188729787430314036903417740784115903255678313579946327101893481585385801896296881656001798055657109872598745342774734645486435720559536063303916931891267616892005414006058475146496292626014769804535494620112020327193027596400894946949471686358450850783261405412732225275887132492441447847475906665424302225397346164355213533334720116125813301778498760693837662232683194048429877228091173316958122855596688250673087727731146104108165117884207023518173007676111653311995725707272730063585704576700943188710806243551634684319768822186956553966316973779054987359449121151653141424315168596794525733899275568212721619896331774215779591506409472228736823213162669696740101571590442842004233232181870032768374373942495244141600787517817300854395557767748377664460316504022750684035090834706094080530925550833626898258889777287829297662902549350915121892987578258595907746479629214542237722468356611603621212823164829502019813206582205178028746401383984925841092862574785184817352821018532724609193993833952457883402946563188798260028183462960603782274886906974895325613652712033090651968767313241208905314055796531054600959868861538173113263441925427348250624724465311375268658352295571844072019379377977979835505589664872966340462767960439771728942495771257188389290794571561322702420987205869374833964249150187569003798774755991199427258404240520212645049015361412505936012544419275028085127259044102731015508537462191821485172348234888951622269885072886155780222542438127583553373754139468974478962468870013320676351804274100132348549680062937893889680958509999027182577022615210223368648627106255724247890328816277364974090556016946129307888024014422390423871945800963098862574239679622318565898540958071331026920324114969010461445037674948160580817891537712381563370667559386940454292635595783448632709698717947731057811196718580945491687623110705994177978803546127087131587981839469599566124848978464366310402387053034655610044900665706106540815844024389672455255025307580199881945725881944809480668116022010604824156722516079153807678793843438596711163039166816073360706297299650529166106575491037892449662720248087307652125537513150900830362396939480473864517938790855733961248806104489580232530999294043403534075963392385475568299065245731918931336033145095553667894118077321972754674209193742515441885229448753272170582427852591588467423718836887734173028078069777515770532795871665130726971701688798294860993886190335322702984124356305196725652664300964661366320162602736852371938313940069417265180908043669237137378221767804421862743734512994540783531950441819928557508999939092761372353946106414722812161561452694231227971280262710686084436581579104252238334321943536550605281814377608913965424348060850923732198015590221568173598745005702514625196958749261167607293896189795816321930652465656821228416607042111485448709881865208802742221753314161772638245530549447450077837768598313293449818919568141741055559876957184143816430516567123900829937142899953060698408962313901518913043218107069458657509824793791906301308129696420442027127461676083632937221842406621251076721743306337432612078153201407254154668298401494272780844507309807997467626786646354939986010574531097675144243114386406814804833160599693635411021384834354683047360763820998399341888850908299778109747591364465587965107609033822353685070133759261836270441876781556772978711729882172170850957325155784447816610451097763644831503230078470299376657858590220713415209557060675315638331758792166597639526137998815081755442262092689676620152731754506932846520756928735973069276120272242954096895609637072505339868869450610008723542506078767376030345621677800137746193629012197904489954672376545124636416832751146091360149260143979082266068396790760682467484856178175175250971831609777777019882417590890867828327835013149257627345959229345462333320375325413507376295041073380495932910770454070377570844254906135369491821558370737879895814162540206223206277178009848553362579283289225624076917516443497101746542786239765421000317995292217164361974908786567730863277079174914676017969433157273272190166161493920142416572701161247240038531229349675510197841772811786943964300298722507597085217827986200090095551357169354972900589413154016704063154720061335697020605536928271344810699814213327627771925059907476776003084214030970575372306697478998220878773286899911076729809897566202556490979320779947980583353761538454381546463025235783547702838184591997147031087580791154846765743893711510049510071978103559565543277696232968979259668503148975911192803912272942570219957401855816247163496788662983642044994764912787959419262072498974635153708524928833465901315499358576846429909420064386231663084614788022452832422366480844332771937238475861792361658661030491977486660390652703732949606822907688145271549267395013029819041942146617098408754770008485427770218651473416158110424300544020234330056039565251271772804424071743752698134996374621232701412207856579145954156888109588901911587468841464085913960617555045625773079935231223247792022800933827697993078844464325925641488998721366880485439401570098589302274943592447630997388696712498161070364026471969986530197271146145487038995699683818475290081917367112491624529947947984678916767140846874663976082831027986093652889890668087907090910830189899948029903822661411716554487100644552077408850884062746719300426760073663537054751041975032626706203292854188306715253411641492714303932539117332405590338013182024364274519329936517449064407289708714571888955643033060841713116994773378453413475450867842367089229994131032777669213732119496107608003066420561704570745183114521860087911320233025830867808013206497207295559011450407141867222103871667116789507235972651629196717270467500567890462328559029483733481153172272709620214210584722490269758397444827128958198037404593362987980526518897914588288190610997347153532778429758537784040083289748800264379940628578593154097786719722233871043882962305851530815786464597273355673331351776826460639124495780254495649953005252350099691922850163052620968808387864944638990203915004808038806677483272766891277663000518301256695957142892547562645501902664919053658265230714447872708736958946766797780343880199566374446943846649102357951342280971652020058833499829718925897345440815368119915259890454267973974615586292410014418382483299116271302190928523359081186132969728751030268260619328060454287509994126813371930368223972495736468435748823629009700505996768786616549096379804946898472313653281564630967244650574067121174903951004179523219507985321468396948568999209046756552209463362510857710290977906056281418714133746119110946355427150833979102247694408122281926458617551465969558141182415970184125779903980018944420423807181935541072070299987018073613756524245980109863654755057432835888263483864784647647375149981372263533515742488849078975177243618558169616644350845134818402785853120930481322446895129778258338481087181897505750794606396527054035403190574476439155286382025569922944338027625831527799822154879423364259085071385709997985721713883832591403052715145453395386587101079818408089674179248327474552936887226883640262859991427819409651621311627061427165513395376501737430296753596269515628899504073508774695189127825910470714394190304319280817647604427652341519107582544339042904474265692918944381598425230934668147851405262139453153132795731536166788268304504832711549709997873905346259812254258960609942646382615611915029426914746754175009388188701373854884393700335725917336185020428653985865750469990407648881310140884466645496266745686325408868928619231687686622836494937918865543005861344482348203868485912859429777581627884220854247842053634099119980324070865145575281292338556817171362792024010037058030984317680302894461783828398405015190071227426048770916307579752755102351998964175506229725081518412958031495455755787904435477334745866626044251666107065330474968539080417887116950930066235242268942331259002491987903904063597315147856294746639496374206348708830834671124728740925784215651822459660820767474552947237639791089218411997031204245847963842891063171516003932521527717226242418535690215289312541363747035534083014179404540271680953525145932817237334265249803760822195108449130805736396406331511251927531735781830404138754855935004047958090646478783076811184211310134607835193153764621109662157053886785194463714794145019275778809831477015366313798384102162448004094592288495660015049100851349452703212136616961326187895703944476460697497966108570348773844441521873230222000532883549588747899617215428567566897426451543388076276058392209719606516237934228238762763902660582574666471111168519305770586534937060289604732882791970082869460739886288296726290931172561896001748013093410840600440349366208242427282575944911767331172035514079203554661292863390002523220205236808789191750973233784025422127380646214697449958281573621940836348050856173502023746757450922982692587133350498845438085588298547220013947547026216214204368362728873891850263339178571941228020886803632440134472844048919111024980348859117451280823491636658177256709998940649127224910586591450728184931644053410597561382340735652596214111477961274624258969622109415292206503144395153552600229482161176695356596799907152494742965992904703434387786879543417707894180971784765098028378098984247216995112745987627200929404032304622444206476413339464847706621711156837712227488547156547671970236677662015000226238669950560520230954618151816515865086039572041393370678185401086019815171553864882490742182212437096166633030339606802215259299807899844422648391550990212332378209631438871653671310016356938022380286053526478759074072841109668464287395238051247527856177354105097231724509023723348225390930576574636807490863651838310548638751650020947823326691970105475031393475586463805347215667064033113503904298752899932061354754906073750827762444375455168141500107397440233105410162001446932952455140185617923416421841490392483456211018200178574628446384174007513879689683539822095982714627030377602347040353990678918229670687014695730740365426140225949603566240279355328150295046099446336643008664353894166307268655835718190801968871143328023984149757880941061218620796794458799422968420788224829433159674277503054503346908497312633036400210387788597027772776310403808203872966491667329790422133303751248089978978677367304912473105786659233641699856225359713407496210193467090303946206940182813477517999136892999346668724587463863273126405088153143411918139409857687671018377360798945873736510657981193169491176088319482488809094718132975668679819278074867609523849452786074325582224625487368196592161744896248749126376658820655522826769155423140662886993287019601568140277519573975208872556515716655684063874923199617930612883811739544419491560770197794051966604408284926964060729777493966098221705083304970246477589169494029579488740187477497338622488792125806013309159775984482727379685280335875895432577686769946740731750995781095474079539635693623718726215656228080735286602444425685417881064108570826505740223207504989897133409505394670914925286619396150267648550435171134771114056148581686965563267780451287087816187841594807640390717940597643686130243094006272608164760508455033388990208815528329613408678737477109951855991370767974143388699629406397935167087073996601756432717917134993854831820683519414090662426564589763040737139357254323924435438859548446828633189223780336631627768188731299400383302670650881628675556860660390409819885482359900212474591833805626379044594152141894053052821118571854862172496372720986299692729404635520941313254459205385798299515823156552384012186101789671566867042640412170642483044462707882952075524296883778953376006551770520556213966008596991494145432613420900098822035837843170507175008765783678123762990671329869408213740425166263398663633118787583290716536457322875742953242417392834313272706096309505880459718699378424854465256292424413007003558405852638928432381369974174609644022412071131315889716020845935435964282020770489569930794311116305407115277084697168144622520361410401960060372089382264256819390756577549311003058266532925869972575874145020216518362169307953772168909773017475988950254327305188750027279880287125062714207563544774227571053534920432823967666502027473582951014819568985474165122174964425068513079613650004412646834157331467481023858261651347261236134265321304349508273746284595730154338758653037568741030117541153804611279636865143498065153731220953232034560719932842207409272424162334274510102707598486677572210175758541678368146521527442488441093404029808564822450404736715249243007398616610481690289184447994379101606329575930438688420753585905724578547869097511895486333392500096044255555050295475147715767492551709989889946142014374375762187256990171508884041868429975052714063997870659475284663326248587963933555921640890966541459777654716539293494254943820331163820702502724554671107908760559679443179906862033787516265566211564565696441184187494428248343310579151556633656339532669720310327138637372487718859893267131442215153632736720137422784307152921720928330646888044689734000201466202793282846300568288847615584083469049475319583321747477196625729164642255275465752541103004036846581734201994561289121065951241296098086357072938476500445557604328446025619205364846171295968553229609957677822689823286370066066616142359394406250060852684621942155219027385637571390875998692276848289867028975116461363508869444068625120504969909657384296783481778183345052426831444319283228184199258109218768671835971235371550994096837922734334450260378172096758481840386726752622949109984639332852465983824737792994623753460579775480065588270286314280742427765821115091274664957261630949716147261733149407502960516067027686073082515283257774985500933967386832524915621569342845806760695075858612377170201818694063289360474653799670759244583916137988990549711655349188244826442155491238110716448549276100104810668734707112574613205663175300633280184428819641475764202132504157917831389016272143306310956766954274540663028793158381006492865783322799699374350528115438187079582663315355080236856378509432984278396893470938703894016745539716226572957796072207348426588184619165505127908081971029739133277946808260172605726413794901432659358398217759326758432675900001417660332588828741793214043572608664358276162008782521585469695632974686823330070721635323115934249955998057727197124488850667639439686597509810759333143340904047357114571148688179253646941695660788872683872797524062447275208217785957102257129267478988355772751041499929372513743006213815750223461886410863626487564617444920414972720370704961970958039806134654695497499109812240072707387307749581267809978872032784219150515911038020276116785285590322532489813526444502948573164745453747441721341314954015213317583893626176903433288440041693653871827233416687096065391554411686565068050228144225724798157448382029353212196016971940239899563384924951769151384297864528020731019791605411423366418867890815988452992688735741912343429917758966509608183271504054136886268838546127420608590446265906720142913657237420364914336114827267788500535161828598471731666119445958964989636449840988042395061772264667696293837424228226928941573810771831693688362310219373515232144712014866267373440465538014722465295077250479878273892744868660588138750032708394771499797849579869285267663294591378797155872083683873788467506986036853418366014640648934830981537981933754656980238099917960661418286265015102788301195611303129978362653513718728668587913926965129123684033179479686618552732897559248228468095160251463993480331420821834858892403605934615400782987508125620379334396414880875680555682757803137565538146864785142198576531985344043040531105080463496915619416197625631196676189443201226546565146905400444988318331604353690609947423582750702158798195747835009246389101796804593180322271665934553556470611285463480765016016836950810327254901446114032826760986036992581086055102954433525066413885347541914392531641450956410993133824250354443358863191553883012512957474598115722026570392270627350787771794628236070129456339828257013723852012113917722889263618915618123265482911737052649026803022466608283975363522586725185578744543807648506756866093351373113094201009881045931841896972547073461296219573232545428410789532524924226536535812654583310754762598792341362799440433199127250315804636382727473325914437354055528070697024879777207084966498407536892644414601763436611519716348544641077570658904759243799692111948421334378841947488857164976848071588482945275137429779885898890475016848028190842960437257499269402331099375106365413688649595918857445141836024164741556815492646796431966389249180577098852270062897377383453813784699671575114722613007277001690113290286779555615541976103391861937309445244535239556147402235772905775063555120810926503719788464952236313813005118164513911682236816756504006171126292644926199357959313822602353038392101639065425340191639871090540016987188789578406194532035555857571954079256758918536235077741909294456968031219900466666601770833808134115586718699114141595294319412509614176352075376951490178016219800418493918374820235284601247730234206356591117057109619705858665050155065484587255996738189670082429572478320685934831643304802870444162813959873931119674550297334342204006643211525411475250259058339457700428307449319833157723414986735699536226934540374206487641355908607519472620566116167022200920079928544598566362425645778387552429399896225557860876576571694268435939674817282023303183955401191464635105480462753559231458803315825598159148893634010247239242844420630736851124920635120737378261497358941071365293454138929831812325538321553328996906695847137713245636785183710609493400189445405696453902622496207579240832671527819998670737864739053229495769320948200885312911136396496704647490372899931292569875463179896305712309414998784547217789193961620185944311203401149238368745039355794246900406978990981035318324494374799329572226731534562932380806042068663241010024605490939923821583385915246979680998868614830613231580863084898486414786026186432129952954723614207369145475463631257603029189952569962593492433390641815219524172839509370613921181043969298711893050891834168606442231538086661365545076522470257370736373134197545957843343047536828360422645982998004319664815982838272693722977788278131594573575758342196655219935789288437146921237354759044141390663673374658080607396834414713991857179460224880364904254368041387700676722246993260763628639477262935384513691424775740519120159398596786110719392271859215694650529556161230025346788653947392116919031185205617684423800116423624127105961505225846345871431394154441232836664078431539741657782991942136896635799933457259284028388957332066989215773765403409283339520479900426018156275368193851331328270960972887506108626992454914551630120407129167477059716380432926200797016364305259805434697885715694636732088328724668332385096668763813721438247099794698544902471048014140306558955582309952890216174506624396830829270052595186347704091688221297751262249079945116846085363285836776303100450593382548884875205617647337950139456707465064936200895717459986115182182823277780757520037026036907883830675403937366777453330579107682119549746142714233617003519527977345831042224697082897217114999725976548957843964709228915851708126048374221503622666673857171653592604411066804914954775802084803559472935694221952790510394067920843430358843788099631678735565065098025415866430837523354395832231349793699545613694798747615736558441051911059438342535212720889672699339407567672561219761474083360405184498451110667537891483909994125469340122609960880734448973007978312256158558821817194139503258723832430820399807746366515037509833788628542964454879623420068044041527394469313831112897541407510869745414902376737374128886776282872094480292857994957118677797145150373908442325451989960839630112943340183100013788698936490689652570202859273684560013359890913667983213175637534862442549577221332148837001811284575110607919154906327751607181518065320039555040479757527650048928872098347328095242569109920248277706624587221971054746224646443015132144055463070883174380599548891429403981385303855483157202724727382963139087790468758379104457017932338584109221021102696078570094094460757407004013401998010395205787139067155131633646054386089809242244763166267291261343716838147602579607987291993860979751017860161519804103335045248459049533164744491647189952828392695481302306716258777040433145015051790553192907603739111511946160362043218433329733308978365298262511997425538971322674801454908709645182698604553176659233435021369207300166292050191410473581708055783799572592571840363934245389054388369587228847041885616552644540358929808361069989067342173140470802633351514252254204462738250958119952448723820697814362474488788604997802754424784801919625114963971249073433321434670187741902698084370670372236184319846535811468294579992181687169324084454333274721993937046406713932887119752305677700909557507220338238175094524208114011620275300152573557422266609008076248285204766743587880201235778136777263325922504476812249620673465812246770920461080026590929000350820083930360423320902901598709385025146107651032295415830660960393290006928371407579523335115492698194913627520546982540407983011088046527405537461980853842836561810688519280600199806450615725796451010437660636113963325841313922273966571505127160315249879229238561381989430879881330113475423140982720407971181520136783727708294372050234544019561212784981791023641843589239683214565803815177778552743938597249418992802425132726514197854229844400093978444231649932371481009382597167491541818488363512936111652425869476874134389377810018798627122927409087124812476647776426495690099520157603572782428455275861372482412602543917755270744998685793498378645012095522217372588533047897188510381442105522055117631148809418865721534975186561094089856527446735895661959235985879443546974283633718845514541458918682003479910229593470805445565615753566906575443967559480676778642293863362677167673896785694623424636147475058162811452528648514407658401605222066370083261701283337539603788494472609790979853890974557766941232980417099470220194595778572368003643603740833013022280233871453193271471377462769296538910919865720878213467260086442404848758873137836829096236500860928083394538338280347415290260242962127884644855274780362489748439512992225478331654466501540357262700711566013907110004127696829320875966588950690707810335805557758912618430334042749870016918916996490060895066964164626893967179373024562213453576067840918317249011455667287527950279763951223833302178683272039612924112388424152601422606347648800154182853045535781876647345495250825548789694154280123246373401371025273093224540122988988377325791011978209287981928187012382328492103285885269629903902386817299503450614981290039320420702035554947774012459586703198324237804470102154037381398413559874122984151284538464547206010234983254525021656753863482114312355396784145468200122157209797282691799423428160591428141844941770679690271756180977405069574054003988993346015938473497363995655800450808773362243070090743492335267058618663063146071703853390129754501513160159576452921820208446818332292333726150812585981603024845529230990813142392485248493219601571793790528719657894502485073694666131556097043481385157304219921527542183657802946739289005719850037450239251003615615511852293978721143425828741089967831603688251667941108658897779414940345599011345115888832297031339274807459703160196960496793160239121797551177968557074870219117010603915217930538459341746098497947581214588065046401309461896598933211088298324066270807304304911885641263769191595373145537706644473019738292886238134637949597943561277617154244628469776219156822113297176432162174696514494320565864950261325954388612583586804377897632043521582891650308436602477949633223128483574976116757908140346449826158805808723053611497860763962232169865974414291975176312673459705000507855738787423732874321993222256733383889954528448147541227087164439973360755551499748052129721748274474397883512210646532398973828507337538261229618010587278380926461468429939029428944692399860072261259433497547024690050857965785095065249377126804106910275608139092476711419291247494549270240982688685514354185708214496767073609476216825679028075843198393135479739511711621204592904540036602737475929948655312093442165574281651719901863624651468158125285127517372456787674970604645986726468415207821628128709538353143195140930791515155572230851728885074091793820683378757063355515247726681256223748189947760457209669233969485102194821136566492638044168249785232084521907061067987345310129270318586897189588549554923458614022618811861124367220294982398130134791840501797925969545240469718976801871440669338291093556454822762833179019119171459257229429488347810024041914755272459594863281634807562195525402323706616378506780799650259148530869796966870429677924808160427801953788798855324907995995496841357577712989462651845666564270583243465599255352003401201959526716117662387832174686578777030518489905551856035623740484977420774979491796629770649219728705678314757472032879179683750206051948259313072452798376480433064142073340640110228409788587454078204874336666112651855952846700017228966349123065683031587374703247270015270630191840313193910588865233830758517979373128848180708256617401801048653224893638637123890981817363086471610427932151243413383008394781867325864516269615582457362478444488928057074786723581964384519828191545578495752940089235745778882391052702550393560804688977747399947071658428294950304582750395667421233628675377556111539018803508049951467486433657216688553295153677848625253163562000724960538910056830395365918689577619674097127740770221034977090354944352341016956641210537458352169636061221461450215224393553750911185230024750738435549137066746509572219155418631318751536600440513460932774400737491742022076970101083477133861460941679933602303513661461623363312372253842194485466718397308024122744864677566600372068677545405293755838577972987777805334165200132681731073758963723939383881849251348824925025553496188852094742913147408218108690253953700844691228612843224601978411240309064050478668688632779063659820688105746094391856035742089640591148487997399884485797815835156754465383557311409823342778716565925268046497402035175630045009042021915995566429236094927323471510695324339996768241262229596279588171099838587086999018192435409402700883150622751090819224314916842361627734094519000095804643226242935799088684760988208216612289820493973944701001007966330297973162589176532912368801061036922959406039315546967158132936313967301054837134671896714380667531076241780878018039127222215077775901902548919429047431273047772795997323972966638160832367755738990840667806214129551486080055291995333117410305413763042836526727818523349367659810687693888367623200016012813106765652761084170883956738828409735089390958329994410863701761000276383377138130225430230475871482155505166586059872415990329351633747867261779410119909507489362982154887101432285067203019034088657609729342180647890163464178436378157248482127091871782133624935392401073154798708876231432656206979559936294057348837572121763278728296506004523393169092561174219184193222595420550568603672268261457102530726087603156015075216320649533584543879102684419927761482054539346227190853167784083703529549499136955232913994694540939120395230745841274418238274173549737368860622251865604223475343552607968542059654712422375431710800897615118761208238489824228446803301969667129643588628291637772622827657993419132453314175170122813046744832092909882402121214550200914367309139334365358827335754711384465002733343995506812259178461028195138862441640778809123839237538642168210349876643657109096557284142674303602890331957585384527975503314418343038814506176386824333397717859259905062641356267926407215957326533673751040408779339675732441232248162137678160711827319650236100387952408996242800793391766418591175392516715288654851905067995646719996679888987649591356983013168898114958151291888179664391481040653872593183238617694489911962234858585877665181800491633031212913015089421297417270020866072653053668726376689601994919621361016674040039042036966733095440225586749417895308893558186458306067513059357250863196177768185713759124016437015978382841067120284503192339436305558597402347425430701295446469815582833685457222309437703014277252719447940215802707889786117848506597848799565647741981120506763678142264665006628330650676138156560618383552262709281408777484947296729979806559785202403596848691962648192034029112275661093745594532195941750811456637385805793606008022313427116445894179464206660462753345712267516271960812108134153416754580688853368178854327427857720383055304461499048081261015429632494911911801283675523488346281715566331564963822403839923987081874014305905864006317712171885211378592037601341104577668328018674994764941194497542168626737138824159606851565427646539708174717670775096203534170756626381783153154164516078083118648159996940549516637115567776486437247593723196486645214832292512213503875868059670754115325029674279203486227678411527654579519631804288643997755450075075181070065564517095591430090200552844820722945397540131199936998989621806000760301509261744426101267604521520875877069511639940702291899058156907895202690753928206006727994651415775331940295837292968706658816408148207535852683483383255464724405522525317157618510324890349581554245205711677321740241989609199852400708370595061270142135248213926045751227592120867188946522254844025420416479616406997845767304543992336487158508504558984630593346224399025945641145678609061189531548743430928089397753326846751894680115952762609924537057715310674983449856500294217994874395081540780655163455573233173899952215346949543309695270735358345436643234515507878279663314305929681142691658219853211924379280933026240974090785571550436145775523485415899362028819661551941834611189141370084671112540379586849285414872854553128072690724568386517310652355742364033258004822041048777965394656136536685698863814057585753042270772074955167021917700121253985640068333163143428448900392305913670227193760509102140373467562904869474040286465602701137447539216388015578957171768584519115740485372110154684991057405596655737565577587817985634345554202343447218642869369898658649878023351379559000840146454888455826418449035002696972505639064657098141511614331222837639331614497792097818869371530625332954970540691169426119465371436808294506716551943900844569355873838468456263169513022437141058793227199402834004869259948469248244094176442198931283626386404546868113358655386971686731137196776418354582086544489184540733156837192624692488836824697632972903969287733747861569393916878583756970338844385057673886778790834622100169008671822514112051444393652972838172829975184802868429955079270199899014715054431202945741446707716764765134010151460745751090523996640704428216034502022716275975555300195689928153132319638709867316398342162211673476588091745082600520512434855124193776366012420860347287512071716036064754303586165391723757070255911065747991822471913884750032516696325567461632367580915344739642574485296077435889852470240475037497765353630706771536828840937201280998668899983527347770611855515275160584270665663428082604136269231796160875158367326975498214092228185599760154650328737760671566348560535688506008646196537570657723517935168869336060903011589750107148705361192396870724639477400836566211213096962848616355184716037722991163702965633064882024394553125242543816746005961415157019584250380445882737770869344791773052852682818469247330361042577725679787224509510534075921098397980253832661593980503295749840411589458288591925844217292732107308113842350132473360816211813549837131710253065591637216343226141453018235571789440255888596922716551579146832416306213574021782602255929229245627157120308251592997382155142216145340282794759373511915216229367493656617967796739897785992100839684225863154789466586418973580608643823374624719190999883252200050626335778740591399890331258080044918322260170955199472741085729027759667079529605201791042808064277725793703109587722711277297580264268574656179789985818844691597510460760185231484775010546610098543896391436219676530188155759776877947207479501242744917548254546615434648265365530603581145585492192217812328410029925942602652096956569111709722378682710048467273052026333481813489795601203116963087114646495024942909869809369877379296679125285802476572328084932692574263748110787184011410226122734999246838092993150112585352782800243971932234956431284731119195726644838962694770162847079408663151030902887225498353222226171156333136798149211072896666425700320345339922140037957571729093863480989796616503136364056056544663827967895219950837551579259262894267522766340404989622391230486150234233961806992524106005297997000134790774238515462661778855168739453378401938053033362753471887426599500119339412831349297264857984554966430177667883534607057183932443499443904359591683166408812501930620321038599414812305118525700836722062242155510607462005180994393973148282420655340236487460856851156871782939117425252224678327394609917398226455345329134079121863760675918163296715802370122248720708946904759207810094355260665558523762123918852827813918251741880625623133037180446884320816557118855848674736777226033990305013232215255852248545966899910783280324252973841550582301075041300089563748916318033911490914815046371431718484937948499942052469497292920539896853327331921524320958104435781065869931776962021890179403325087282581414135129834877383064127644701435435910050344497246598949446928087868667349564463672724171200406066401881671409781863891997754981135779267959751917007222220285815615533388293570266158800136533498524901087390828478358283944378960038557382387288367834007648308803524093248688078943408176321542728669439321068539415577107723941047957536425966563784070458441975617471714138905517982150255699603992223846190206142326085551449942224686703197939769062312844334974921351083992769715032502602660120357007571557311758956600339100636798726180623385130075726170079622596318584058094145658093858469279956659698038418479170082150008138897419174139259197199865529522609684058177704968446525494703648805118961949376117788282602826216749568358663587343090769714872663772927335474824327733611664318186686193019389584769660087268656519721618560361160348522137137828879034934949650157097646263901332355463129637976216108281545922356877831764247405496521270300580524973598082440359359291747710479839107928729095305622435001681413355853364428188295231871397541917309913111835569910794229699187147992796023162482517547278304760983806721425429612386823564385632112251373602626423370808880885818626283791514725566051710846132373909710112579991919185881178675587296063624572202216035725599122292594473821081748629067857750007239473548005869316234706052011067025684345474628054937400147201926484890081646372167474897844357703956871610466956517814421656749634034513463919420578598631981061496035943984093062244295186811315295731568556339465340227138719530249526848583719981622556173026250159110983517085537457227421265340290162482113366733443219636332898232041956517659171856396406352522719787793692878396839050461487163103247685040352542621267508913174068015004276488452411403671955642864273876177129427307615581431998484465567054876119540271901484946216365239062933693683458222809894591921517453667905576477892199209309771123054501853934111427586373989694489839978656046314875172029198509214082896859983830744182696413738102272952263947879310958619157775986245206707701759154558471400545556761725435339017253272707467667051432027511969245963044852625640082317922897370342622289522450252492937792408898244510133521727395903968721186771320931032623755926368614566709735141712740196096482830802688141532005969144062229080724077189074348277164788122677626140443787052243254119751372648157907417345708705412338604434335512937824201116794823053461763290051591993620364508858085587901713624299451173236632187699469330888934167233482986084902104390653588950199828684192211179817581579131109510359554073852414324389938895228847358488874619095018611369133817820514407190452598037837296208643796144130530235485653179096155606993060086562136650706769751333375749509409478835905605602413728809280318911023433114139919322581800077912172249705273129600094776773848306057155902004049370020938052364726165559992282694529387329005259458176310572445583128609553918338152169845474623264188819660910290737603615589222558690834499908211953744674014190761715895588049713905247648310462652593689570246506919805372343608046202064982455754777167232555383245731825192332868149810506048635786642342657885348735867131405442950317259313976508536435851364441708053260262059303505610272866085064137990013643195647691932022028227689341853860361719908197880066477453362705963462766067667556130609059077925728172290498451070960383799028163267999836267426223229423170753401048207493370341366662994815472010266258873539920913167280341222828351948218360718268611027649662591173884472221732339423795004415680401832242635690189065966489881145372499306574727450047466408767712214316838915096381700917240253561318878429713617319283468602971921645027902511101933168788062421349232258452776940542422997554122108829031293827268852024271653847554745014659869264436118680413228330848237043520752533302366718204618234851159832707796974951288415218630398893042112496148721304917783319793585828601058117359387645857554745445811330687522812099086519196609228865498141694148494350409108933232221368654941440996859745644272928311873321814110785071979088907462966636095127220756754708717615235234522983704409075034397046384744519557838102784135069967912709726085111635339578543294864264358644324356971924131901210356563955206317533395583518972892474145084487482963506154933775000427864425005617889238864871407148530742928499042631124828027532373062980422622006616731267711617296800818737588544061544181202751270354840085399205764421155046196967497234676400882473204830026580344657194145055799596827067610051997983832125488878225123317962336089720701122079136635787090409089685530856236295119878923806466225769704609510667164678186733204019856597499242704554398345029944237857603721219948677263378165102837823739495506936536099122806030976225216258549140137607076249462987065920826258094659972554078243936192034952475315085396590982020177985270521568718380114803918930780641548353627469031294474905616737000543451253162702307863919704744937498968198257508554207326976872558605563941553489441930164688074686874506436365985765209938074674057959408285103725710603428539082604748896440638758158537935412467698738204891003403568032787770764576884559627933621281047793184673432044711836128724426369842247150550976436506270634262385833026005800240037657284376290558434247408981970852462803063283143322749027154846799242415531921013319842298618061478968835106778798157274011458999023685291632251634538596036635045731576962540669649454086093222791938945372599416684625452588282429646761064404931487268714145589263501233256845059664391506691193795064083033358739511631325181684975922396327470915295922565825516968239614124185115015086756022426024520422324742312799333599211694367704470895044947392836326951914443996826021914736456974937036800701418769091878179470906466783179190400871178954079517160644500640771476408587958778477606164169731617292109787172309258981179105833570284035628352478747026712601413205058014468453313095652315998996787493948278840134558384285160821417282900202326670845058849678716155377581352933506911774797829426927276095095375981161234445004088229492323953615733654618002932662002652144513239822937898422755890925871672797634543814912585628490651841410229013794069013293483234498431614747424294528417090581548023027803063986806733939402421156737606514484652477968725749561923899856125651696275937646100155962269667733377110679517141785043059621296335152844460550434441211301203556619674538712766775271342344065528604583516874205735811929006861409748422054856294819168670177082612296880441542664170889218390098760896267906204405910404362627048576497261990561896260800506256139457276225226653698759667583433746827038531082052481955312447930040605561538034256454304432160598194471654590582083319613939470114186626302192603191101729163199848997092481327548132047593673130020124939867071536174200665235275738821316262035094093594148942402804181780671739504485513054202488538936048283280817123867235002013411613568280402315119424095469219798028720923828869757636519120513654316537329851382485644671087324242335548640226882649361711729137670690909066280429632946782524973801711555449620091851982823210852843677980096061951235517795857243377414646233793729207546960001668591582763315924787505256197410150802521539921613150509028599446426133026095618200599034174137251865913902468041205159387281277523844222321687960273158005620735605502179843601357162211814690153704426732563849003077086930371604305131579426315409613056263819726055005269538406100815784505983655456286077143856840014380383717143677471684642028524913890183973668656784544163982477913869136696569372978841993001255715466966715968932390053534335332936792801981788203366925143455860026363743291276341165949647123750491955183705627747933419717956625989676262858835757523893317072688951229548705106816504060105919887102188259620572282376114318342593813079990177378208601808965723179279011530747011392221891829174769426948968406458419095815430862482479960362622167724880702228595181452766458969117114453723696245983107843567228067749169882710893580648244391635591636923489376321685357261662828353764451883862411170274870713878607603325291192139755255503475539904718037911513856857825235316326935722461043305650076514592740632446887067844487235718937398470320984182242846159076792841553961855689936759415998512436993688532099215166178774725902983834573962990626759425009794273956272157266303102214171320493725359812131219546769963092004476079465870719660330864794807311045788327992432783035564719672450078142306373214566936167355411234859808997737759555096578946500953294926750762267750518329650329963357148369220637104528931448317914562411434616222207081881793021250488923127817677136067525982690199822233005394330747689040045285754142693891713066163463996642125891567276552773817994735238312502707133015671801461167398920886528366398684752784502546523847353986427717465881905372657691400059156010339647730831365950074199033134805416958405084533178322707773247872996305635356987852089584929070357968321636017402724573514160013191589354776665258932997758388125070795667278995300589283805523386394308678169153630863346526685593686961014355008435453520919896600413095141997543641055886269761946979190343313791847048946418367778654077481458107029053514371447940178436273258192579759160551811691494112923044924857436720652989518686184183068987484906875693106442352678640779876588620043374019486718671169864101832214455355794506463952683647869019688882402298735441799846440915985378213354886612211058785342377493458124967726701271216985447153746653925285384740927199717003693880334855615364835134119983978679878385251931070511841613083630583388800553383024216638082579888237742119607707056714645732614582714237039812255741711132830558342411029820964321316376687472614662944279969751189340342549890727695715233360553647675551378231854544632288570526562042399103409034935873960708952942012145758389738017931942421976554923806873907512827629624540289221805695365921580227713456663546533992820569013493640379559900133080227868671687251929931641432480210995212587358937483327269865296411928207792859435137473081428639257695332388687255318963131994622160031136815941902609909028810422567650690612217260670041959548063324052055321067064573257353806709104726988305889161302096834831711810300991785170372269598784773536827622962539180549072259252008036446363559322867181488483804404635210314939625412415559435725992217994557074643561045097377074272196490193417832455821370310353082666760465565385065249307467418214367489230014189052121520052868757506671656853519304746437627061318131445287136806525123649443130130662702318151409219079306502599579312726641085529972966645863793680844018045540109339458302139224768708039493203395392910394165993816824001829412492122159494514692972017485869120262021533527364069001644366946415933305091192217111561743948287766945806861471489455325589785025328362091963048637920129686093355513455790126432590399258696590798440772749817331386712727902270500532151073822526604339479940986537487334358783483004953175798227201446105008559027914138728892361430989480202341928467505884509529034088702148096321247728324592810280774087275104454166570033069349230731706643260248043040695770601836395307879268078024345258427530314620888420535214829204961357635679550903278632298844883510196393472334086139870039658191948020615419233799655940773693447551862892437712783764243376673289180533679349097536302995150592839817033048598182219970825621852832757882967096289233637785347626594869546763012872426531309774593562219723232948306137663225399170072194644488055243754458688312045486078430796891211915633889656396133647696028026782801705862971615326655850774955586823832762004184278369005965416441565612897934841815549524081306253519730362919987696777817259636394011901425472890807142385634881588314535130554369055721034237709592470085214908573518974780092869078927929953566156428186430862090040166625949920691547786076509475570722533044581393069920357377263191429872270253651360960948354486266979009828094121666770856819320778797885804040455167531943113263973116218240931269883045594376533280935662946898541357996773754716849203120612865233986175108706129939712574113378477177393917327781164049147627573561135283690127979421663210917257946248323708947748709067423868220285519864676257151291776652760913633883144640081893806524984158072558274357067149026059458563859065749536995452921176024772614192849179305357054163769848577152961840318190034328616105297000094138657694273736164248923130126604516580583781459965136238325496383583230588042787410873996986735883827674994239471346239586016453887444271265136074744384537882541016408242860360656917535803230228158560288535734000103552647795272418794718829761408488382870411927659397091245147603038006901803038796511586957524119492809973561482460658499650559863116245719857869561068546245251152094230676665036584820884616553685393062863902278150351570814016597139385910254168515062352657542573926705261071088369300384400213775842151035266241273604341062539798977217232629985118044120625434269871473262822537351612867528458109134330470361332951832880546296719627647198600186239334704533135012210634327645781147361139322708107814522975788998327302796861204375431652201556221899755698237854459789250690599829780407532657258820485957292260616152017786561206835845040305290375506702979615027113975267988495675046529910355312223496406209685009453664867947381351411748494236531259359635917632302495214719831099601560096582728032109905201356545937076380007889409176121695187053720787725327248525327635543434991992081536895923742150665414390534808995326402851282202908528288674863540729251803229466160294576083314145933184692633644970812579689196230654812688914101700053840743309143137736578551427755008461530334877283797291073778459155250576493479569865453240885024921637177549881024870083746282437564452101169214105010255337891079936048795446139391811938488920102057011230785900891764416220018809197826972704819712485128922419378412663095558670747659700296432103086058022835863378490874649959092002425743665189738419601941181716481472994176871657814587909241643496788748591976066719430354998464366473672923751328631336371849554679836157945912005411139359307875713979836772740552244126832436974269009168142694945590745194463641211614942104775302319250547492384932352921628916031897602592821473657314176652547495919627614738119828909831151027621319191867200391436738205459557661403773694037257927694445985702553427935668393160673748690751614834425456138350409774036705006684639015383931829378117493069354469968780932124008309720356220910751323732229475801733924552857576866657340106934764129150246329849753196649072714516313152288023130644067425956839026827383488910479150863609271184690521138729473776901715318474309781644891913685310706903292731272500499147027003493577631760331346289096595672887213035742469506822597497361535421556144926170431952767552470812954231756252796043172708496785254170093540476507288434955078779061820561374949844041824653228048982053506556727611813796851600149472129939667846393258006374555086721183297839877007705621360060691373365571082553681570539795170932263525572825258013896413301582247971515813309611383515509305307180513626655650361498153410673789800958474932601848872534730211338989566174104421917433766648614471463374774111182064180387238959046393368059346326120474890820373883976686746877408843901892376234495509670079555408413792960849050380929796430219088856991951915134074203334764202096922338659076446286472960042040719077164512991008421355848795390516199004059142950020739563007723791034634518999249611448750482360120242016759841384850810479416805369837752855441981600176190341572139384739189305552183097949052643647814896506528607820765800422337064467638915139528696469302646785321100023921219773033742500949277693342429315048528064246935666913938962399265295180126119521507642557349027051631061234486512804503524913399395083922914833388432597918247890284518132721356027806680992984586823377639451164737864371801331331969087523279471136982734786421728383027225295656417119122211729710967922829503315563282141046098257164081714175371317687639425075744523544735047459274955626456862723513087534850155901376214462010489709455613192747701622583910375643950037809231755536496439916485085261145157496182780128967926541789867617677660237882107731568835201689803523398487652780756113558649377245789594680380431050151583815010133338204093546651659269452124260938656525142335310586052166975292075532029567543092006673339594729594294528639546866101946528615058478372154507069236740233789193993301947654295369555009395845406183520917177824662055696952185503621698664240216710841680572178497351949561747657954271089841630932001172306043973912376414142162553644620507180397823310334627028477828506255295972738054443955545708896292480079319486603724865878945888433789440949607472735782159696952541016868866740894486661166264751693439609915164605539225647991272302812548085005405917163277275373971221902937466292366467009421251638203164236645261856962143841105971895853292412557035232326367558549518990570864496155584540033820829420264248847565701308979172726572440812197830898697009857685888283867073073014283155832716565248136586903355047531393608127633220503415004310745792209025485661525774973843354744642377426294880545763069599269929532560850857461112694626904060780072284982864629068485790304132705096953005990201428224308297316585468065934147891045817086690814639615733130943763224166904488941464641920129781438787640284307623878199406162767615998649815109095485829831151321455583728114638464379611519353094257548684107534122322425020679955911749767892600015732627346236663218278326564202349359911730266126223025074135786707069430437727532952116475626507143778376861762788167554417455645745848200243963664764634695007468748246963108089503296327262199355517067694158640670879166126758151441080408604786156033507660898659738777071697761030901202695621056869758467954671324997278209768201508005791858561363128766841819589051733337800606570128461965328609984783457657713211574774600055190736961090533417436672866532533137034942777855341642777790549783317221198517682511626590783687120867882997485651578009067187958675065212953281302798535395123020288144019181143221439467083531104171759457599314799133316631725309580102530946867336377320350377712237992717635233305770124470241332336978748711340823287268701336495041626750466315420954103603642863705113413041018433632054345280875157396305294284377011883174894373864711241681335715099488735865805460562300855633443022936404020985288570574990148354095453056932160844874391658963338896397183615059064185983276625519501156378991891237696262102991296302204101062004370533251534594840685021054735541607436917563193247524823265316292878047702667419150973559543189217833484829429498921851944634279969963996001457362701188938342183017700070439611394169006459559264561575226673200493101371189119141586431467289476641393791286335012292222655784592509044994896327271563929963655365610747579001403696863213768631724688602761984806031820850186157095268345463021801413944904119019541506823873969534375295300086283077216639649574382555712035665393960619591749672423530675041568284865297260177844838277210454682465629938431731423592042424162753545769774774266987150514532673182025803534260205908556682736190224527322504042440299624689094896657549124896133605292152896787832785680578010585446002549872797696057261079142815315694575315250680967441461800509422769349672299304697918078021922964064652356610140678045231143199167946564995126226190187533561784260389634090986143548388189544006360839110861638245968725816700011654944805965776803923381077886447153592384610925870131152620283406580117661031107491448874276500959749180710713421929220938070746257299510857703788093100672548564093204588319621202114747590205051503073824294348267400731024755316096256669080512568228790063099481008405618627297295484090228533559533818233040640660385983815662215980053899873540907493546759500671016101942249236527031289087515742030740540321614218225124685764686324084787766476756806393210075115704941484791237960909714038032419958883437108245761380948325273124577811784110222496477048947547469197576202554872308162519974414753588880779075232472893457952721117570008628852777496016211470748038623270204769277157038115480432439529530678785617494205663117927678821184032723811174531571750954429344277568556304138888224875952653702983732261475413152454378099301988630067826917504186198714990080510921230596053721600667229839923721519559716522675570832825757525247299630565063051146158490149797681322236290923543540402373112697736698190908089563051353109587431765708952821334397514539690211819380518873756434388649531722682739532278499513830863120194862049791773161491564185957314410354036673098015964820470073371910377513196628197112097610229853409122120253921944165418267162938058842061396422361734089418645074743717269207347235500962782625598229956166088407384834724753025150766530127036325042115738779171587927207202805253492476181312359394736828605444214828315970715326707063298933019954312431508997541899849505817430159904745050722513729302790246082940489354600561568615334321642417323314412941229999431734501873211238633579376700771502211062657462958411561114143523526192681316958710946013013121449462478730715706892695840609365055554859722851991644200203186320517108180037298079209261756317007789024678245649171221414308330149706800827714781274258175255854459131751170688943985542180961357121875228644407544534547150845898272526710048193755551238878216112443489842662157485283816233491178254524763638635438809137410788874198297098791463990150882970243790330861596077330535434981175205309524210849421171669062756013259203485802973856251934688227527707515669859444208766711169259838858002967398068607900338489392508725019072660832604049092274462426522119922466126565788724906547924517811058320992637137298421666640155664527745744162061836792404746461365092830907482011173034346056606187609041487387647188615553926823332122020527828152774018986944796551465574316753471998658464421447279731598275018516128550625280801048286788661158328014537730839836562048959135463649621678846128886917603030099253420600723784018296838055858149111846619480490251195786231446755796114648356632951232117893344098366762939509705674790227080971477500133310851981015263979553619444774610492495042977876408899283729208504420539083017816199610443453517066048616445051810673459877916203548623994079241615027400648003644007688284082050604264763837021423132416091524924962539467813883139060479716340698161163681347781333045327077359036464095342846689907868887001083557899399873400394098948946258192702833438122188179867400248062577654144936245614220957701113412868506012724255144725550290006627474769999311598954773663887906468807064341377787089981245609702277242214561544042877567956602499176495772682142185490861003177686928903736261426556276292602143841459677232057862844912213257032873451781403060318743200931550962098802776249814178793151432467286953921029081238383475396245884585093940314946638126174880638408310389050353079973269553410129258237638884664958658269276003205522407678845522127024921421376121823083051385684317756523577348228879454666444266258433844600622309148278882082996297909284979348553066027084469339133448988267309652891414771619238102810488853367028945678168105619893159799431418642923390718191234411492118721420463998644219785467727134134231746354827023194458041857981698966311971045296898984307430911135751610951502023221527969922655754714765704028293359084836365538945919591971724867684326998571972289601412432047105012489046786346316004244127793159349915334175451893794622808750908277493488926384775875420962100841483767768475045077368555273049803263849692306925565140039489447748219240174366624768768336870312419966928007304440484239930285015762754689555553908791607185784160049393868226717658869013022420354925239757003901096146254289211643002795696170041324813869093456561894766914739100713876562638730399078423496162232456030621125579510416250502311212555097202706366915108498036075959240018263426278814934515640027810180111578516989304546046965424126035661837511701113875128867740476861079166049259271734801377885341405522794375166981422314880098396780114355376656787831520322459911266014638404512743993988524914122692112744826550995060329680923689682740479392289470093623953040134383469137304905340611436977011758743541820011859070442938999014949730033376474811613367581496505828800928271092400871046093568510956395397852649334289360055906516605262110890552675490778342689127455903252498368285471208664506728373597764300948276309777613221980044148243223713869554311538673845407431087385827516220067638483409543530139894160578563908286388031964429328926762343544020156869493652012568330878855916954545516657249187742009942488666495241755021646661027333779189646496277555526968146661776159141583850834677264445252061641527883800088704679310414416155963129196554695458625320440990984272354824668072204220848085025241714992647665883980168961704466320656000075413934175256474579506115684112941406313627166022530031119359141081827630757884970325995610675085932737391115223820969154360771279034315822124191738219595622231279769450082691675161235056846107948457467550674108525655339473902512008314683476369141932043967734680535457472929635255381768270538076351946293357057749815219235221386670122483272731828705723079770196257132634852889286948702453353397728807396317973523705813846574745851677533057485226559081801672085510935717169921818252358298885954163410290938587698537296085228831628508423751822750762689029247504705824695589925284078172869163288930618739186535317454311442787298045032440638834140193354874265478824566126928984724532330320010259933095380901698006309585585002291660354501426701473208172970009815232157275818274384050044031444189824787609029721589150521021194639838253819538539487979608103071591453284053703048554608465460989454425969610349014983028613026647021638763493448179714240668352079978828668986885616836755291286069791971868570630398824479234326623850011644231091024207960682783735116684814781076227305732524430083747594023131128392671417790515926376366324968449905816706868996190898326628880325773127258408335257259887305566962715183742992542095633678933247917247486149350887511190328009198992690141951796982021883838579202025024904624528399592776610741366648929629604540979576768545846505991367759724078140642916671682211560925831914376757616023091387638433980204377948833086005487656009187489913702732345574252228263282551052867535819243515615221097018492139460742199460963654229758905798233937490980840247643688152269285962462543356726549114495764875541282340829761835780957912182379019417504563113857214582906310090917215345389227883838740098429697332024114427358243266727409734983485080421809164424581297857917613962135806608240893682345583364919800850518416953373109383226767402935554036205931122624093862127296199868117595733068284098632503242225622261502833506134279615482962700996944211149493148938720724484869772627400769853277963184952420591756629102841439598416525563932922051714014371381866595704121710512762719590394860915365839859875063346883558955037523254844388688452887006973221696989051625773667855765861826830102354380041349032632918010806941077291040366430496909287326878848978485256288113764765760835621156050338022048068542110005495642962917830082387512588347335031106240047956068685272207855613584298155519584117237401243361165897134566850261763262879408576523029009426153831470134229864404350803198122869154020981103359380587786182606781859014994543940019248313451024550689767002852389047455891773184861410775396882135889680920638298194591799285554044943941968209136965867872075020021399239434631676087635736005727085343627857509250827030093286201834712448553636364172389358197799067496023768919341206608212511641149269259664847071845303304587034739883450824698918017823717069990887495458361887116286813705464968512924641111029452998495017774831086155437503520914312317308250313008326023475979538462933304065092981786961456811780373677711313923456973893855092423126591155360395058037743752924552427367121385998873104960589831096073614405601051036939672645440122536322296490275170865507061251596959196511620783259828268725623805881105854649110376253467791069616803779800020430278049126037493548995267302659798350129342785947798413350040986818519669837487154122769945453635820532490839710719039625189112014847975995308984461654540226286713463374611658014491821038863849794268039943323071943251732557008464001444868317043879969562047906629283376941015715527460264287089245989586776043672522428474506919929952714373738748309969154153366396500661971305449479842180022916091732600375770256811704632436053297223941217409628740172790080706364322155631460711473926557383212877401998830829033074170564028603571182967446007784216672557014848996679135516068820987651674665348467236053845873830900685357172476118678011289590082623970515382898940133413661421465492341984368640975168210005424199131667577726346110875971878034435452144623777033135902805913594368848488986055024962905265415520029100911987314516121291786802213405897960066678506178990537374566881077222644857622523249496563725333990707899303729151394110739895823907161042621174836469987703369751208988542849070896389199723768133976609199564350833106502004819811511458397354231399738206082186605716929964075799890617663257199181339763590980747601431433968286172262368636334064747629411191543265044961953264850029694709803872397923205049727725172409822908046328228614921468696919203879445066116273521717020810568527321431937722635033894588581466745253555273102909837720543782398290695358639620799770867950436903331539924854673388239047688528782865014629176720748431434616189984364063523810595542867437402796343077109580522725765789931300428042778209287521352890135459862066967914564144346214063033282272696219688312561899852628220241706401649618094412189710614058542081812622529123892858175383068055193673977679662526478653598260710623526128118815842466924596720721233870855673051247477662954587546205639212613486741587725794243749266068938787099419957782643254899833601115866345665088942231642862281440116874105218197222782866948178790877787038568293288231847770162912582358070922166745731925734361132877142086513248566594484132947507072077563749104549526341746902276523600928454278375361593844385554434674024576399616236181465274736535833375230386688677997815935267526527795088502353678537674677152007864119503266194407173244729307078633101511515442566120124878783792967596060305728553271388738571707837844922187243817045090373813596880403179098420277928749525887271447579624924822916007916543559911949360432945315344583848732461262893764563986180421608104709473354235587421475837885690028548273632880479720331846826465559240859874604232932620986585625828445550628944643553701700548938256091505657194082128621645649071891685219977288049055845601850185869609403120775090705105554109320868832215890428412046904761594518403907759120860100170032884808719548457136234688382306086333018028594126317675576209154535202963640143984071914679585790673170969776455035047227745593126032605093150340124543383457932210055896734471376554253603656933009502197389238400786497993261270994080642396880274226112978168660379608887199287242771380463097712381618194184383189650522660422549010547519839439122107410056646620539566154371425389200598182018286470726416348009745326665357834843562751374523573043705539058748106123004770422660467529461040060642098225137012154140390066634362981487953293631605801375652502522598843291285721012999391188367335624887004432035498585096346822114939370923329253034589389887343719356852304665580824477592291135366607119604130191238092812665784860188787450401159721425904664946198267100523895044272259623545821794128248818067807793196972716094802184118824430443737649732638610947844745760372966126550367604131803471124480941744820961027097495930091264384414477162673112000163089290162620588557590495567756532289621811484327988030849359187152545453785400156126075241427950690410019207135951959284137156618804327762600190308005386563079260137860878658535979163406088136986300053069060073698294757737897031974798440884785862855906134877808676489135717836570722813729162272288890327270831174660709716177849655785959371517204662489746563790055443944490552749847741817943358591632049786907084738929975068844606177594300974368556538222877771185498702771136520473970833198871104891940045818357252469911484577884985668341528887072546230364081306019188595047461357846959640574816164977155971125181819981317095049372523450461702384481101599424749819498481622673615948615090871197342888562403798482195700405037546734453602430412486521644606051936981384903490561904904025403919668682645576747607144881515218063698598377023067357949531420757689997193310221689090098953108825556627310563047715213853930548258880903031334255980677814109087357202628411468658868947345724551164010568659435610651770061140644129126135507982696172747597625672568687856457438112068827100210609280888556974605144474987372183431066413026845229416391138555690646123578083744370393966569017636759431614269505729811186882693245386797376615032936237179439296488579091304976392052297726852915823890162018684757080938906854863520950335492337900997630121638087989969146312142003472909405498259108452509381115949503380575700686958412050363063308658490238992710988943421726797738366118600559702584886374145505111080183281690925285303588015433130377616936646578459142537862293310602007640066103988747581167759631201022623770375140900185451547449972825157365018291156605049030586445473706038623927787550265085230144131915220514797670238839841335569985516167392384531136233192692733949988162952208643039109058466796832601428725441403263556032944507995080460109585314184120166425203598938318598203754504534309857552961439029640544508229938261839498919292929958219828390842298582901730738131675001017668163739720376672827363452052138991403782967999780532131482851817650226314470152370027039521373996518006663377520585340880033718250410859471303082355644979670355452800084187984096628964504029969387231501346191362512977275669373634673563848794932814971790487671744789086172401833685075093095846896754417478298976988337762825485890330884970587382725807223905923169330142117949559010744245133775551666393307467259246268769239383421772197002753361809162839779215658614701845161035251966317052478813792011842665874826963969215460143778729580646547629326392611092573660081028902218619209051562638298471905556887119201309682870602876064808062113746160521101390982720834285112999539046832674072353978038895106406186663028341584272845116612598061353733829175978456836367176797787105198859866832395287753812257320673597327282869687791262956133934136275227755953672678105815522075361888839784440483880826110902468257991216605044725222310587697558954504299224938916399838712389996091365024584390093119819016388601066641368824773404146467778163821726816206739376171731511345957053482021698613686803038874636911638065672000067128242963191740961306214429448875942255606425974521450718118847487316374347315090851832817243864029127896856613935525585497128388784356006374316379155561977434415844943958561671573419505628066180938406919693643875754178430151548220545968420393436419799846349920184581717321855392299018577738213180706212571703157530041198447211595179937952311835788299942967759342687216741174417687546635723156339661782704181336794724459070072279834047635450841940556496786745551790273151099743245224898698436757132834161878778167248014604084450530703982609089267381435440884899651478098902052966520015843979740759109081942927858921597532747847765628207141534563466376690805209965821983430198487884785600996733132400124107396350669758815750377784674620765402305378558017805421460094205532737620230646290841510031963342012737247938201412922420049004864678436824734188689618575575215542997358087888529536072776899738733367636872525332417117283094395097706450549340961130728196812039424651007941134123932936906185411438060451464282201009770031704307355990034767266179347045356505999048399189008859213555855413027989850957205665930366440959793333297622581494968369505000799821054776902009500925259221620696456368240979828085280609308109075125698449514296497802330327497333094400560655163211151339850598787940096914117366095197214287793535201126937959075161594022624453377073752810735576974577455823825268163905023542374863421834318107532196031903728377246763941834135062104257450106375560809568277585094956094248537424755757559426329052838201529146148388229263134094987195882581938506455735465802006860010229210857886587166996580499791488197731791645587905776094893205091731630487402141441691230135454342389155316495766668385147011022921524250969265641234229746823415358477478516446831443756525719148639604641077728977220182810374133995170084681743344663397676402055419013254712791813872712486967910135468549940051344362574003946133034205745743659387854368429738522033534957837542974948310341340797080936041837538898376453242744760450260961484018504419364222383722809686199968433866764830054593442974268242378992855008682297709097014528349266709214686126965102673585832570806470695701880642461369235221649288426002285154728825918137051152306273338635286453527220571626134046753229650074741073196267204086953984724175708291317097796961570335330014653218768150412530825935302401475898589021017772205394691815514377594962990928821874234442159922353482346782249990819887832517311694210774410756716426177230617213467035780297957034320986094338280646576217734428826096192999678738232217069688592769113519892007810662128149573879060309043693124584793774527513025328387194444726502899772116182124559217378006979562657986286152923176377676804936884763739285389961899199133105939807047049152352694404991847958808529045298125701223055211379384157882139103524384749384689046874198988567774438839723485591854964734514473865924207996074018177244438100884483560666734627595214170523047922348499937623291515204589152484668932257753643906752288914029457719738839752316417789409265902832356049240034628029183682182343439871521002947313559843799770258552585275834873127227165528333914858292398739325183292985679246850365524165400600668387151336693038979621525414923530748148102769806709185155368199313689448318401848550355639417952658653446283694428340712238702866824647652346234506791080477677351010686705864331846428761573478180457490562099618945875452643553036338114897700871590226753371204459299628637768681065263412042671553454470006994438644195596773640544427906496945281144915540720563147356571300106760874957349565780037790532832030244108833301811561134006596334109076412198200603712706589673658764898682182631265005158718620402071848780707626027905329006802413267382101804971569298355134153437872055236323723878549333003518150992509074433207944932897002802496476392552443938916776210496974536574403891037262278134084191031456229310669131508419665429207778689366444066406373015158562561451113822580896083898345004467436922539508430118271924451164609895904235145593877898521021399317678548105260305694300807665612309694082235055257825015726248237074593156725687645715446331301410663202900097908238778119704981953682146268075500934618587770343599374683151850532865130859433608490602059402174041377788634419355285344703075052591279424481831393947072932030758117585999604720352238006322941716277344749597621716761150201906276428246218085687755525039827341088606497767935639997433038636560035570966183552673434786738807095759203685607857320684871717916405376364004003511983511585486474794715091826039679965373432271765021925815647384264818546664121834878606240732106278856833022963276321477879672183485792178373644658100279595830160801873191080782953222632974131552707317473668038461569382288478828804860504576378390942831608560315203336692726976040971164189561238930674259614211047945404431747800396351347348268279281487541232382998785328191813433154375670697466749805314981338430788683139758230248825027692353802181286583480082054317243943106677570005649086152791959785636748584047686681411274091214843659802841114358874010374005750868655786445963265801419803047738736686560970160934327201349941597106073541587482492614283543785002144638846861673450505377519899430460512375975380515294987802104701258863276058889521210913998576022155093020330366589448657381014183659031270299219384565592342034796389212938310539726350406826053747833451143442149555344634529133660420654246156328389273220297668383070190544727973428886444169287838912689076541675930510318718881740015398301700615739554770118456135737405552545001513746148766976655705835808505716447887120152646547175871573067365637897416071931072762217459666299846496956227823551357415778896136609632408266828174157160421286751566931191804673098024426326721291939815036224370538978120216698281432528763431192987775854219391106822770745717709110676286189452669480648116162188097806829762708711535602390582426437590428631079749611238299819955730167677333748143834699937753822575151896753438906082917031379433948465066010589397428378185276109434060076147171572826662090112528310450266873587597897585358094173822628329210379682433561451059395168188822289073384879919388359890587440535311088432669940297689785311607835824462359526546455243396240594606508419199044391169348961205931115336584418747643684280068126601148679517210190356321182711172662468230870517044667951571103561415767924195491079345480021162205905853921109142668089286599705691804740007638861087433274105825004826265603805577968182962713444456166941013054440991117710025888383348398415469453053275663382828262031108823554810025272361250345115892156987626514433008332558414844202938612320147461419097127881163365163037728012677535916068947552790623169046339693248238343153648922780139606564655225944183245705901719414307969666168454443491486343322094978278750411817786523456060784513719355300000803415465232777689031196230968231378918112266054141248696935257916946822922639819546957932630941824694642613635868220210746297489690312844316580214657459342134160573661615552769694586144979826348735604558483592544159425828756617087882734314271737643426052650248282849877046828533228319742628586392755404993263565843881553897841099587285637631953150914781231419923499006728236315962337382285829977823413561430678301251921519418313468736994032140909137088269613015772100541227663075572929392331924684293576115191549366370902797779210402989139660768332942129540963924457231671759213128693080711537304333986087280149151226368606518245436693545958905217039982867400776468273027537630593139201337152574091539222478118281613593444729370521148487973487222948482828093955413989468045791592704380859797312998098257541642277602080329880620525990123198493622674348081704202170994721021225916344715510677653880386191143376357208868835315664739354562093491513521390399492742068562634079835475428073968357128892403136931126922383411708286275623355967812342425450895643674372184327926964627893706167306981692420614148381352799715862789257929094685985562869977862960094597806237619007461785806243349171893959816725637941420917115424295371997026530721324312557297823807246425751515378228867924569394902317535062292142442703066461331362993854717021587137559265769775499511349753221401834329148954270569396805431351073742131799144731971937656349901102393346431128574380845629143660086893094725704111612301302711522090656226579945720621522981265352632742637271344509473458471353245682540733774113390815578670499597052435712144457287613109008470141399961809048025330897255317110706494124565474643387597133923634689413673003461971254438721871140825396540258036060031507851642767146835855150692795242298472472898881574611749539931024880110939523789921161354691459531765235606889499437711100504353440703904333575697125415306711361977722574624285796023923633319420632231038531832314794737232881947638637833247446004518067865520523636904198339068740264060082790137268511004051102820727114956347800464946191889368352681693843556256171877165807763781483485475035530302527795434416261002111101527030069895169130636420128519300988894701217865526834963982156095383290262890024668828466887171509268564864091719485196464437262686330440278738475016026344057835156335041269195689912398414516256835600137714153223864975264219865836107771737077945296715455599951275413341677137990360098931838688360161625996287962759676834740918772555628838175437274650468583867404383988088416724064781787582671914019100209205772302326750911098743938720018925206375465601613870393560931308450206679349312731437121882937826224956935828960752396054962884371026279210452655658099023173849987491327295989852064656797047827377225421081236088087918190368850827696348519651606939717331455001782249124003339217487055185078682879014037080255260070082196576090557794520880427552615298484783982201342682461726723055054540551949422311540375079748260629633923128153663983158651659486368394138857045147516446847956028852956351440691511223053588064074773921395549730855984506790458919647199994480712253792985628744249123216824660414049235261375601382709325259782489786881426296480026178267849396158197671912646862410703479284327995400156822876991915598791972055743347300406166495616890735655585597244237515645227099768476099859389378888424448400716050579700956698111873881476961368521603288830929965280981493545564758931764408156791811728392086780349597700866018548073876037280715685240662024171356486599648331113101149567211514222233339051632141839821195197906684481028795846886655607379622513824452999206900976885766843359264502023900501399910403498586943113029695019478798491612666653517812521427262850498477732773382810035472034948235768867250040355371676913315678183801274446308923229572165883211636584332083191958387621274006476443567521964395510243098705327301952789603067111935436250602027977251418335230408474318726295352028132598210681166951329904495726820374792505810055685165898989329270875428856456488735988603273059922504105456701273867642316059036554276417292631060182892756908583708367662435565994455071516152461385207897309370868855546109764158184143655664749477217244349148752060532896154971617201779554659154570496900513222729446765195118785967489368071474946156595004088739684313422936477790692532161857394978822562553306543649492112936617106876010205053466955928505781613983398652473509276527569744979863356704906494557397031972633564734720194037759687619649756191367260734784606561900904298129763002661263097792233442097365950911246379822402724320129652637689522165374366526101517388985892014584449434388775728611119721697034784036831777994441282488676414526395783353497516025566043393035422669454945360676799112343763589982167484901894365773051192042163803768925152047232182568956724885788808799564557203713857673061552385966515566948239205752767942819796496825395768463073699671815084243020646080571146954791342080635958610193063616448473301556978340467897503599924429639906109741880036731370682697902093315686169162088190972741553576308495877952893801980265783912989977842707734857527168742579200988774120100879338799942612128025179481583439675467908482348282600948629164807075412795289759322883858102528722072801967223164421752403158269471471128260204146759785093881531315042457796904528823847214350728664658399208428952368251177710874713217869809723115787575536651863673593888582459466405403475128055533235331383379122994179394890100738541911274426974135523834200302489329594901888213899106537231390062846656102911141656611883980892085299755193225025147057063077623387522149268354250639015311651938723812450645546037596624020597013306686196736851158378662407336062732689400147136574885463264714988021416141327099801592717720319437868363772522160941393168220233051462137579475820401374597628904729750052044223295653004291905809520507648201887570471728245939429588832008844507771447488189132922638036827738506841057943142325437735712622796257353017555293128421316410911523848188296786896326446541300549219586783678132109120358871180327096621447107207406112906453370024705074705464422734657226369934295983096360776508633115669364883579799323536252173491496806272875482916282649316735656399799821707057430640931799529244307214091601104588223793646086792657795507564157965342410528812884003883664976986063510102129090674023921606730180217317747387284014715141355695118104340952400415134051657610264806987884779751230933089480985530989193711300726268714360416238585011245248150104555410669968939767568244707950633565727274783475758105052390588707986840394330681262343078890545403480310181438975277190568500075004201576639095152187719902399037748144213449761097310618871312853445773521757545616736311703550775977612924827147767318302925031736137889424247147343183982647473540726395357788608278509181554544422408393230127798615628090655510094893683784459484483480347263152848006354562443769946884766819803914828751090208081509996368885363839909392346063579123457268580285121162907615832944808882437483875064538679806658733468313593194769347988793168229742327393496528603055816227960161044326314613243327034440742160948067152950293666459210325224704748258377067519783316809912422592555999822079750115746259253072852364966281612559079827510230575030890042059408838822111442638806200087936554907612453767164020945036267340246195687345925401724036984422157326205482430057950801772655772475111432638004928784560738311226163790666968785276121607166115154807568922706996027366057726115741484716987944904599588617501867629830877079471673165759453433737854187554482227098142814022979296834229003807356716638698215755959531423196835151935577801209350054526494060479494009522172042510546889827866867881891157029402453746846435779498053715718281031790407045798748259098948463854822148603025089184226946321525900847937234411862324281050367952393128263694933478483486656734707725567149015427676644157281769079800539902690896569735052166686210235471536934396216644610312036658530900343826538804677902799541312736085457250822847869235282380164653467120106722759145416733947500140443214792986873482194034477980576306654502407316485983960431693444166331306211826472020118674918032811938015841381825561406788464815030776845785602381550690961680583566750004335620075839869190341928906952017088111592732632297265698283526877692613914928363178512848487342831273674920428023322019858997695876556839916194874345813774406550986396330041024531171330289778294508257968812538210339558249447784454822273278628282865106558192751151238068735502915393171290231461574063702325291432002390351677313324052353755209109143001075773652698729739993325358124492923473708617909493755348192896184739411847470569210007014241968048525120707112563188437754405287443776444538714128775537277023630410664030215302842131587656933017428475577180783826846230265387919150785020148837480251561017406117870288524768885292515124842219992766136879648859495208336844105861052200549851433730051082269800718170407783759373416426692938976709534112656439425479969704365317130017748156062343278497483845046886073527798631497156578361736189703154212308497160606959275492611124081165913882228035066284310832946061316532027745619857888732368028190440014552981094423005381634488252289418406776072674573487320458354757507548811533591870975619419698774382806461912538558280035038114683841694149204315423116304308813248142805504238801981394626876952340462847349738475135034408742795324256204734521144347709189121227748800334288473155505338455778332640803436892299525894796203855728887615599753597814713538239004404533483685979965710909684836279468601513289450244127378860362584048482660714618774203740417791452398507202235415361957025579741514793544956254208247888253313174540451278585335750733720410283640208189641099304325639255815292713916946178998267973903777756268698900531814486518044052116818677030751863565817884742644784407524425739744298834252596855261993118786375319819021781018444010024822612895097062158931954914503402467478814276481839528286959999043908860175570982742028697414325050035422268598856974159901813950018267900118500398982163568854358583586756890407504931275084766053395663776397324157892245444905667636101020543118163597857701462601946216975171564188079050017946428952450455931914567104722086809208779380225113044153289366717814750357228557239214832860846501061608856146153384038558555522306081798802881263379960545193189049836253334458209972463250111178163791818855815526657329068318061804091328596279216414045089676566356565693155270540226347236242902802126039084238311919739033684046729035292997945101188211511147053974104615534701635452225853931223937359951956615429910619298836937945171622631172228681806053454437670612142835490228073689904801376929092306249270050714592246303392718068740912278412600330467545095407249299466348871564085153374601302121884320916217849857977527311622349283657410962176528458654931167831121550404230166952083330333776127046274471265721016634632422988226488724050908216257145067280511332613202095788263004796750439531587897831061967317160499090328009022563684539961182495135150874564930556324682548298726393096773595011947236819716204240018611131068927253963715212275976727719546599285854114824968744048935564969124966384192126795733961244058015556735043347386938887029432156959096272338483497504520199709519023784259332652065365273190524517152522878788064883132822671454508729219398975467246936792664049922507539703867785432961761367899510908801383420625053352370259082882889389977292300505611315318915661624072915023177900843253380583197169725707216929973938256118745245280681237949219480430276465732596185527306148490034348853180548175114933227140431468722848313459066546307706748395687272984627122689354733199940759377940966846602286458979482542044367107561837749473009608423200450685781403358207384612231699282258537214672871434342710099937336899647343602199682520426033531195572137599262721434583258737079178362209892569817159583616812355574565707490565233781831154454525951793762236628781686955262558212986983032232230632634860591889217293391500557201878588149520379423056342699680102784375601798648817219476797666264725916355478098267641538011113850738476138086726622857884120523366457876773822318020411747381107022059044232380327088275531673759005081339369257503202548814531959734288982009996521576788456667342375478824686389592502695846317414642071067323604540565597978108262146349461477579997239980455702404962702282397773533245085222870647249802251506380623937798649234943041079950789873229441372361844251873628742026882857028632758956048719790648996985339278097330806415911733772327823333424785186217687285189088379000918574926113359746678963027467434413115988064878590712857503269909636290308790474894741550665142409372222172049007989245348869251131174783008877187773692308730657911721538634553375952416839973913765262419639052089355699885765906499830528308545884669003513364338093864841632075097158223161868213473340288137721297343027936167114678815873245198064764381919554898619478352896941361551563242005405546468999655579226352567080258577616530837222159530577198048880688721233307916714767932386134825853082322700277937470511856105735730486937649967835773506202400900711792397109190899195259904404637602127448169620224592454193385513209468027046482626719839678428897538190293446927708348006605974155677999478794815484528932556770226762605420812187728366454169852313180389493665264995641409715656331811772794620592871138486019283940814888617316800595434267471197413292540815305021535941495403990830119199359666821425294476286719341367537209926413160101086912950525752855652678620503769874836335634252129116131825902491298899370785732616811479878986887943841596308605640898885141695782936449818021969901167915620232478242295318367659317623150052387947460857485260364762633599880727119401055576756791282265249076451521304709041621075469298764501601876638287566691704611759174364760684482372936267575317423935888112680195185160952694213592142902672603874944309035432841674469115236161063310023015720294473046715160577423070412355404148282647218552283302847163093052203173162231464083184123090142584324710165557772213357989012943124573946353805886936499990401059785634142364772731840374650334542075119496299445550026931543749715548031620385559068330366577554501135884709303903307470731735401275729435132748075468293646663007935096685787336252175432225644944611834284423937004063997249273795730483358690055881491961972596587095530343623593102464177730331705303083672989026198137593875937724241799841031062883214436642038237668582181605599176616090582020067207658735533534090040144906407075562565625260905436753460935239974053449682731838116176952943027154438727049541953523389093132677983946853425480811807758861039308734594657658048988905149802732539413238347276505388430415331078072349156551664849118071167055790958133137653436619574281083910315399450806506144669077794290865881872083132120696651593123371910979197020258307293413399921567189079560226855390827871861069219864805477967343862469126251078250720263118055869805262896986938491469418065136419786385630022281154234444066851735581423947774532552802451274230672000133307557870763945846498466733763096925038532632205773247664310688444602456772384690734094712950403044405993440628845079917324618197093803984242508993733008119243958945396453277835323991563324087233609413285783935261067426487864589254368265229391228377419631921123913527317243874244731796870639372536882252242720795606818398001759372512140559848795528233372578933300618831905524052645311500348317407192672037567043875681319370019391165536687089143101656294997712827182850573184310819958089542536444884816290755042055122678774348659497649447705483449525920706597337675317781399260359109935015485733280104168435537988566557020554173872024851983807466065555973567092798320467656182212325736260716828569648952816865184724492050825106806651867920753165182461318417522569569194985166513925961097134535799505846322233933668849592595625478442237907561816720397675055669827755968944340400615797444078115591577568342898212200171094671525094423183835628760841698880774995763761607250949587738925545396241016592987109351709446581199594944984415429790428089046767572554178964171409529004747956612353685209030888985393204222079315043923081076277417600188402507363275960527345940546055560434009333545893891716699954100493879765470310638903149265401822095446158284034826063429039230483830270290549051132195808308996944565684225343794936218112487568658877947376968229391391669083058431266869531620508764035811902440095248085179837657975530977264462903718705902560809656023072010702103329888409642006069754095929244898313222919799314855399857080902241265886078819717985658645292916435750083194179204709261935911656243379389035241837270228544303273914823105794823336323999872567530540807051561859995547039630968587520630597503963722239871458755451124488435523768016529748200731223954912691707151960512243554444583752063334902415001765481681667356600923299088285554093762580741053175587885886340783747655293686578535801294103740647041859483498660068791144324425275102191753049218569915945977846062200575245274221655326451401176233409827583374360642870375734330912842177761897343168673104874658997121687027171010104440104038404194446378176076861108563593387459860714731050749723652364680712092000555948900003043313413660835617072006896969305826060692586988471355049435232671265249073148098660849927864629747455079370061827752364443042682931642631388171267007092392043609344543539010564608809870409855748078453442109034642709677708167225539340609747733744139553127315295379307537537606590170265891529091261937855920140075400983775268861844740696638883362235294242317770741441381406913976056010281938245591540100370206882394954780008085142191593673998110368000773631157872571356717128663830801922992678557792873535518777004803893435946725112679523645838090084776941986575889680620971494794818707209905433977957423306225088445201441684735029386937511345900614159338347500394135271346016573815615077597687842219773043845872597063851140434213810769825789142698505629221228162455879414037091432607503169728163914517974550177366561692357881281236756284541123139217813304323610784260897913122100923628808414124811742014587714846448045922751936563406981466403774739440787244997869368338130010645216145245813005893178398011480764907183236571249644832572800463720846367248284868536882897454063387774704189923027721842213754472124860449560363674303726031878585141193576548565056752579092038373544000221953180420864208771311755286530771917427839239475701832721538845722084840201808778878620097351121125391561853129070735662217868391767785617712534340333450929000836096275162617145968172367494259606618472735365814473669317516635806578214621647917129011600025181465242407903701072778244407886932039385184257817440158992918792760986716161005093011217008514676424510406164163951376562440815236274326179028890666325788489090330176169589939835832051328986806734626849961168354354658852103606784797963952588654170161850649832401623837259738185134239518383804898603808158704303930331140976369784572701996843648996988341979152664750055385452563839265794052705721195590860439875281917605247234473663523512114949561195942191980183586209659604162866746571376012066097358811179821264476778161938637922014755971737981600675576102122456873704321966779540781473177760707479015245274852907000071464673111820499473894503266387155776919517849938248910117674490824491674915242408599377583123058582313628971896416821742073096889573280342892629020085577704450199324788938422995483531706611601463974904276896588097677609118073519125726792069220445833409055667110644634129165699007879327436888071707886314451192137474525013321251800936942875156028014785118731802739955440276585437335133697228895104655260207554940071378037751945468271134550415281848719853105498089405959477990309380257860518389090427509511149417888157524213561526081357199719429108763533199468852106090355450193826602709692799455948698037113362360350990304913504976424415116306098790372417087557718648974744573136895078905982525923372707394972045559655550053393392457486501160718097999471034425629580869600977593951781682793541549697323918510833809683842743728532473734425489564679457946143130975371497996082337348187125464853198627995676543304252698623846707743576853580488979381042858002981062227495166425937789436614551092509355650837618609880434064553510911137593023668008412283285542238360683298736674252673672444976446955937664825916310363358350269208644349501212625214116154031616092249427387445709776945759620664182140173059851029156096234321675344262688594657974371108022975414455508681737640964603959278805599022561490703342913113259774124091173755543309874536173112363784581316449914869166257435630689148127386571728390688217681124475046265147236024549987489929795138388193701286082466953037958859791950147682459457871293524158280682372205278881739170605213995418382355022211503956535651327521299857252566121412158980130232139822613756910278448406766604692157200127066621747787677178760520900912820180817041005027852240414953278554889340651406824886198629038504849952584254992704642306973338402182288272385631284885176481641628387579222535052647473271785206289538417040659079962630311984819554572182066769180906144773321967457628142398317773826019326482477829526824341987373594302239054779444886429568386005318636871800241702998726508808141902812338141160346252966119224032169170462739832587028822705778209659260630704131013492170752129672665127594657368035242487708371126700245898044005389773589406510241820677509146164221186411837949619077449915495665184937379281628327917627126178835204764923168962493655635561892655137142155284505330244561552752184115819289500438183508924405882245073381038299678704340749461764653467897126275307430886983910462860405720566640316150237887843541496019182670915977919017616101983409310908937415896672112196710482395944201405032577625402695478850174737610062824512009804318671784585483107034418613106920693702707916839635295967011248284778699797668580845904451789586278490242074826295679223678033248772443452812792070381418424140022295906354561005180580631212682475526266105147070872463670809260513576370416598989451860268292840761658811493775447738832548037854101054743747623624339006816070917245100754139015770717661336771341163348780762986600759627835233743845795890421605391498741118741820334303619806163867898287127983695559016118749374902936365059607236851671952949425332090173284304010231214745596181565329128968684582325317922918882298705560638730605780713189528662041497604046070124468734991770295347589116861866844239871236893113697737869010807195366623982852916597379553734680154485600288801236511798714088717313427174192140660312573856172281395728894316913309323019028248170897878147147783030337787393072488601895679662015423462146858410133477389280927886094580644377469873743462144723686481878375021652621097538369167001476886561596279257724430892675928389190515732485724725578703028093995046150887109248709099324273722008626157339520343544365745590990199685582207724004016321126269446398874104846695807418871274989355648018002156834466007290897128066495267345009637436550199624159314862065911083402171055096700317622755573885605393278694138021216670178229590168834892201028063078995772514158632044999786501508383022592703440650625969201555231885171513138703101950522229671729326275653888790278785348695349635727869558524400422684576907216760977683585548804992411859005267783206775493987901159277954941382436175676952787525278014421821435373038229309725441203420344841531246229232986868971104534123622860106766195004215647436782446338236830749282139611174715299846453523017196993873103380467347724349603916702090636076957780199489626718502165929296320639874185342765891818183859279865211106090244179588043097301806045731755626136492654356894617648390681018631708068429190883390880444220662194611538417072540460284640273356970020361568854160132281777535492554266667900193542262499143122082089177631171496204636429093821622128262986398351537264497133298761327532664134089689841609195955923421164924686328904714010616420270895915811776193247939912103530742738260645944537501752806936965620490524719995461674559196127011995204458972690633619528488380384409064476040064724514067973735189635274020790808900868578735878893323801816804276306454458964794908102066855102920256004284474946167805168027627770000320814505080930732072956042732589688979843120683847047024077868931790827007456605706705906193685690049595441987466925461777084760703075296885418529918658789696874140800469738955518375409925461182491544802168047808015561176535319390478823196003008546006238642150533084622155462135270518152121366593549689016437744629229596432204135957955259616950912946786221928908411156693929836961502380038772352537813956357235646259836911143779145512358829564921709743527501910192284715564452020635221512456472907148664139477051491846232586507816572684419335338512743156325354137397039935011739712613011888075804098031079228672296170844776751213111197226026989785761214066812973202398071117079670716281295076485327729668062084523412051148187889195010581720090461904434758756351888314563419066867975784182842653438626920547436766113642436103080930016602426188438955055993903058887054521115741764754597140616427370398423201106921358798383463795977241944442511271119254825288223204918021959754312938962507095396868878714730466394979728689038147278355443710225223171882688300323750360892524714150761549831081887793146027067381480564845852198737722287022033626014672255895864249486812287248479248427038892192028416669761425876017294193112170735673069199867513767997929078488200508228938849638765649414724386875852506553467422049054703145453242596377954476687582860171551267341897587126679957954204808704988976676493559831200037223582148071145665866361567048672595212786368409421353528326520612711102489452460802273301836513271232500618421744076079473198480332692825775658286304737098787667543691219178041823268387937871966575164639760721937707419208700491694113908078598519434262940892815028326017590403330045679006775982568169483540284194252507418954965121939387816625109402645822541525431352831106327617135883596929327684829772380204225098484456533926817942197040407033199131973553163061014303921893885911093113118063580405970674866240415092109300900146926135439374372946127996120208701413931679542169729191580779363702564907354203503530993505790160937720247058780370660478764537852049539868277609200153284510553044174458176183671887595669264513239559192217242501488589460044286441239218037113426119799962463766442786280120712559706801793522633804107690209211220255126133858023523040207943299709317288366433074536449725635334724122311791212863239439410313356928004444855823840302342699552093190152434734044186894464515661878644943243020128412073751505299979301657035918966213433913593051377464303757403438014153807678852546591834801565930756026427766854691778390859665341954694514499655958393257174717536758426290841270450969379111156454771125654175455178375551291708175959602703792467798362486031346231663573985723943668806395457515363860076667399774591995758449841275143498333667532943314978475186976912344688001186882422908619572294385298048413450996559339262501990855849672272088350094977723527671918676178581340646381359578475229483317387657796274998966520625737585691657317917510429319182762659469093540463355000722368854479028044540848287468758109788713981915398780054205241387785277944834750417034285651521880631328164656023488160910133522620738028630567742853504148332920983235478363309997337626326964600860558855767108709839140182177640975790338953209236754975665991875616846671113083687701913118983018566505085138853026994747342077832664508393452128103314649370874433288778661723449186678301436202992983743361529577815983876796471015045351784503154932495198606609763671774488465201494790529892001320359396653786818681685068845459200990523808154104770381642855576061097976207639923332596377713649173209409159575954433012796221881135374974067312887826916877952932667904947563517710920992501618357498050469525165201658688141944485647305305445998700698082904999146897461979041556173229316845843844049603421351131080727213284723419836237433096400742816963731177280972675699556837647135873164394317868865385271591365124770490655490128960149143555971173309130470833459772736843213956637579761464902872833995483338435628279413562509190055226288571819040301758913574732562937847933017959566888795653962408298825603100806321438445938749890971941862388080495458674050967986015911390126407270757636807842418869765541488566686482297947207783372206567206691995474197771415706135089139238011644554742900754196099090767456896415613636810789099123223788560372791788320505380777205575804810107163104188780036626553785846156932904564724603501161838740132893464893783414957105260516478277308612312846087695843839348332075700254502232594580186053412650200476824223082360691973838954685374536586712424544166856820563854710115899530006888242218169445301529723963350458425507736903996015423476803471471933348854554043028662060295697715371637081323725654164955745072150800906270962150916476393774757516932801947938664929695896157638040217069099989551648389739862867509044705175711911199948774678472203672117959186861100780724007459750831955075092446479788150814152777612504892687504504478607755961089892054201624461596919686774082373805413747432781059468863805142776425057975835039378033001815229387192060184596793470000473565630142851165882009654744723181236303814053298605984670231927011858346299954406105037838457915739411810049160609753405510513454508688303830997640110145753567167143333763550608781706865144022569146535535585949421181518089578040183663151863673404192162774063606389857426870556200528566010134894714206565765245075750871587621342528223693917747406319113990572628610774140233088067780548735580729689173227417152217564200472819567131261017032949195464139544714381753446966792893999330288664693218095090340015213982781597726555939090124309123110188455264705131780462874150947873099439100882582398942153541516705066811475804939908089974942501191512433868910531537809740215206983681394291762183543519765325876617270857665456386643690202719279103396761091566886103684471718034281969253887345525653948042920093648507412512837581279441884616342464820059791274035825171460284935902961545563398701883559078118561178660086336523036783571110852668929485840222995011998229364978174830591294161004823111191747958362520648485135297575688416555614818694762777689832018500739844479032338926618396316296045679074297081556641423747077327104784781289807527081518252111390434961231433915282963217924579558612569002616803450518317201159146027709127539778847333793439744134867824374372516428002223020605426512460581210130938045423611417046696770571655555965866266277970282155249128632564695932840449473541311623574516054575447958502439300364537758375167323320939036229035688657409369394872080172786341424691388656585161101158736028200794221760779618986821644757126702621554219081932198723654684369015153449686980657931224247524928154953026005310603123517327019228545283460880869677553978279591965545882526250191832890127208630367886825959145119615446549710909570145950881803407291579032118984387009578599382271972639631429896313536608343123200958386071964956278941151421821264966664030109363290691978335068032318243137476504596316698569047843005057488570332923432429150078679675427601599866803823162281796890646724372043071163447550266334829200599740026827483856469413835472865183695230067813334238579402698160720176329456693455488421480880375502887894116034019318470064741841553745309984077356377226227936713224031433220001926468038787136038660669990001385177878736047197140913009597334063952984122515524426828549992304663287602208396851508852628271735169576327317655105348495717543497420137918888618444103109925528089649365219710219487738323809013543169065242433193051842782393452023225311432018650411684663402464438873149197219176424257163630581887566967047050742240695350656329921741364680971981008277116479595013360409536166941550126793669782064101992621548664753905387105617124506819027962955340223108694732192575030580068666618440040479728580649298476304430390537208422725529619386161711160531080692525149501033308232405192187327347650376423222278383138864270757325024320821009077505608340275662230497721203282546142282016591988344908020787863171880442339943676096387296746689734739283114180094592743998753274513331757913128934004531310778058591247526205702258541907931580675893945311926160724218646315024099725312525205003894210607001909761000920145954345193648750013226899840745682112990429651666316393426123670968756728516720949339987624699286931790875707388406109294310467939180474032535436918900795255925615850920442564339518165071083428373974618730831768766866972724279291956965416919486064340184762318151681519824845123431593023773412125438936374272259042194312471942821569493937988388499443502006333160510150677482166254007700812173200384288376037114243216062274031630650718651982623623266235809922426117959907492134453915550495298872136104987736294332828339647465530261248076043931921698908205276336523845594654551632262786856263716732764842203305474217935917393378498871739869656618864769086468531923826908850951898495795397437936963056307542610501795961242223633735803909410666705891875221313087133499106512249843846732170261237706943528893796231779039170381537678721496385974367786178400550118563707840684462099269557034671532722636921508258680113219326372136512110722998513587783824267670953102816580046037675039564821235446785614064138998423056360925111998087118008167516252069441004019189339224851989201620647680489785515159864054091338761210462240913381951346227278259883942458648153115627462998369510509838852798931165374109065378494058891446043985432126236416987719316513106765710021488398187573071849977227015789412093130888805123325341670343042132785704028681826102728797877519129127730931344402321582248606573990065329346435094114275332639536204423223229984132217766308414506696065520674681698122242169347233735550327188154636743600233062214339825073478955579222135442596007194437937219219219177550369482565323608854201346091713408361791029803835584745612055562749594060595013654359047517891254399421755892671567852217260656139606749828865969362506249945002957699594671953285452341790134165974185144112735130422945231838696509772189974085582913765121953710586633552976770470455857792748200367054845286540045891798490539294617241663562619215756006884115569310353268022612266159768721400564086966469681910064348601990016547512125736405897422445176327279116583291955857225384380477922309754971984473869290904826746316959162133760321993502590473244878078090094907769211776226645621798357489529164575325188095509756538477397019529035886322833134437721504918506854537049836592864142891082336472247741447258616279189347627624443984788759921937113276978435337183320360175503148201144568392452516313061923342521287638119184119719894092360234347981036301140969978618516639761889039733154001983051578551108229190809931929810618285819107103861823339659794223650661654603393424511441925629120795358734001434375492794092613534751037235201958069156595861089059747674864128672986800624646736835729023743183534340964613416617689696369167183043522354579493600327763329063193800056421604450826642056360768164105270690119527095786552290565502983616619405960987868631573596966456464524181037307144989331645789517279109438785536861651472662219800044654840166288721154196920762524910316885177175170010604242034375715143232885893673122663138262645017301911084099131403387544415148917860517662617462664192852140595138000134341845678263640615759028780483200507107502676774590208964260528840220726487142393885881063445626207575992411356990358178094151233249684840301292442524081115136505102767456716141582827467968870337678231983554945198977066681129302529350850527482328107734148051201322245348493999247850292345463446641963028770547341837657945630386722754843505725909871925301702189101873522539773913047315313189059680614728655257932792775281768798832335041576080884705461917478094359674656781113515382306872239358208259802882596974160847516330480260739770813128445412619725613089780960408856325244811665680037012377758187797006978404703012857008456731927437778420007825552053863655116604662330888251712478129501165504358687815111523259083115607568344663955368183415614246731668257438295985620488233228045603111444733344693250732729094642639946438365701427338316497284003457242223343579760064829253429127158261841639265480805090597985528434415143528388113811494811161822753155813729410263530903846625049727049204112464677905887126856250191082230286363881321738262487367975735829143395063413335013398515467236697348829969916972600508799763656348117461595568542088319742699413248017533961112623456660318212886814065774527952762839835167613948865738323614430630520584529049285025441409860756517598710056900632180889623928289678104384142197005772906689218747143624020011438502041819536709215840292131366324045768894747696214183801892183911175587083792708258031450329267256802809110220745718444500564534104474672134596314670969375321078771880535000040171821906002069879278873103000507807999198093767867258383757954502172408261489512941682268711619341687414361239476237557237199184623218171444408724703593498413368663100984985328538216518567182418301340451013149927941096169518137079370699626910034632764617459021491019479270623664484126275743937275702759249106480609621930787021017882350189910014956847479087103502765328338886208177402835769148708743772271476145867919904135262117883784094510663466619670213891231657588448467994805668530164271435699766879980076115398555358916429478925253731645292657273647972027334500427164148371675778439132899293427267358473838390858951808013099054205623211707528205953679951044552550924503515862702725974655113154043087748849648468826125198934503678436829230013319451810692103979385208190513296275272586567710674702471573615114936923789847554127753443487347294001870764574301942546308416980166474350426090334968826869843119310468303539573979115185276912739795524397989446752637213614168471452469054456588595251458969491079989717263054920967045191659152679038096158046987455440905499628052470265274911753805161491030922137340984987860508524875341716545532990547858788819794722423504725523030973579322380570010483720872786706382452609652549838305621078390531348222732235449781530326715711735988913349280788668987261611898120120448851323090834432837914216789348996834297592056222286697892342995611692533303867876608847032026077747612208551972177181526144497954257807581997089142771928140008546729771103714710468565876765539472540038383068208220885804275978340538502291750121512408899532450389601118441714238569300324081014072027460206473940329767951599548980101107871221840404842929438969017052711432541139518553269743076156096455248423363881941516771962909295881736102822805123917059669169061675422366714570819052563271619675176456118634110058824867306378499373503935278550873437317290522202790163064829440395963577012729361014929933761286036855264421628873157861626732031366904959401749954570139796930478535363856557627073689191923919462799964516936891161697423005407658459600071777840939264866305219405557256926793708015139642562523499485861879935372189924396100152223237599802053131860376384076266842358365936601066517631471334097735251025906276299584826480043466860269012837887989538004209748385454394287481977140530904919767415962698882343432824410348499497290205512467922719690896157373428120878088371794325786843664395456296943297873896604678840331417441923889476268259401400729473856345077094430950466370162649198100573581274318718929749662207204845206860006485632303907120478613916427769185599849009476921344583907928052685092346259207487438726848089568875018587856908791878925436765427401128540434573796084578016828683124581179909161724206792173552089147354546261591101001944155222812329471221643389211639615999561254155670969450448864666946108563696009213323922809530896460576853166064276472587522447822954063609956940724085256115247728377265585270371436995009888069454303281650885886233168452614545976651847735969917274083610129667510684949078818704243545840255229468072661509689148455327005793517734540310427325144317844466042982857802916653341053690188875695105959902855403155182640408674245206049983179637511564090618013070350877064321251774365658016745802626406504161687714181827249125484566143661773126418020591608326058894252067366591060256154187288824985201172296924068168386584705274579879490896251308405776367928243918425210876584133971659965049630232681790162861320975347512403438466814508258903404311219932746643290597399969557032018092146571300527306440223464584841826990134795997939975176205321034981321891361245057555034852080365631130125294299641187571270745752973184934662070096508704652963011971137817987600145445648117298115038651374412881322455114858690825953051961678469972714254722999616350798203089053132609051753378242742916893792169739531682768786895358853194147825466028368334023919931690872357956401060935629202113206635728149203644367326923591080352368496064242742840437153851147779721131701185937861944860554337560697612919495724205352305498777394824162912283307250465094755596027481023653433896409707012803652850010786680447760389557433280504769930941605694959627796514335424278503030792860953958299163759922521662475231198332030274567478021106618782209600212730006276023244451275447273033355185624873011550821156166536202555802618278022358378250426501627559151976818871138782751336166713968615000086522439638999943868755982654100889435431281277981018207265273428116668047389767469722836160272301183704673691292666335417267776684934019841532505447403821813490031964241584615466355990535003929499488977372252494780070715245728671430091800976406077965657506410146980572831180759921565231687989828749501897866736767345775017590503281843715797820166503903650866294845253815818275630695386342323992392897194087398120103862172903393990866952342732892131854593901873704783880487104847278222759262936897539406764814131772118410556287477494956302062032364280889220384885378224051041437511799118290796593900394102271854847666423462940787101895628967159946178960170764437611211613634363327652554358716074505538592938447491999304773316060774211726912586057206752819302584048074271279323915067686540154506385875660698937999394442217243758289240285452416329609325437670574890160881148958067982887957498235300493311980647744831563197254810435354303253771970891101986566440307414367696811376495064392014566215557080387902914568639375185476336448615440558515087500138983592956141092544016916571444231282408123321239196880574115014238384912681100199151464448711031226734775688242737955335400058623945095758151503343212037871013984242001095370431128557529067272566727920542068623725379888630735492527161155120444371762571171015573339730347805199715089080041663954740908335435791003176184745352673003138474846196106622650297044768834768929181984877476680560657635117674651769455693845529559051209133572775489074512383332666848559388729630207057076771098915832460418244484124839578493007199972326737691969041924126185686434443278125190933409671584469269333598171579551310200284556183210399980267489889570057191591702452682698348946496467618456386182948727964469852947807001223287607077267844553927144201810014377114429450896534972569496379076608706819635251773904379899879994555457074325737188164825970545356708773704853282099822529479806147197056359812428310932305653437636097356583696145420729378800717626261433733379327569957899958015008919423359234999269753425963977867898030629558020840464152281553456818135605596885429364159664599374107643002023164577776733027044302671576645574268947801309167516855916523281756590489234090646662424963900650663433151387503180767901518301115329665529717697552980308779824479950487918567285541867800189657800261560543930445440829148470515342069079196929031269510009665670629081826847770655707491595821375305126102557841711954040131942234876580678134830176375010382843935033878040479052909605367932234655411523691260940378824199222699942249731198475517547551073782961557776783166054836947293265391595817093845862085132520735248887310841326983904063349091152894191175121997203938503166251775367532997854693859979755070214222140523931146719660248893106818029580250153480139906897557535973185506729738108095225084355422348172486797568858186602252001222707354656238519306508122309895954854849030177257748795180801669465240781959554025012461172212278635909836822577935803198112654793629899941945117744755786353400194603291423000343478347023066165243899490804042430794274155614519504372483075703752161291111410870391141438857371698935427207192485392425388491368342610077007208903381368794867268992660385716882130304448542837405814174665679609298134175615199286296197732708056197630928578016468976302865511527213598094330649621301290793637383271251593755086308272327540980356861056797284203832363463490629716493500863808547942941009721949981723782396011435921595481783197838903034634682748012837581688867093657262273212080656891995272396056011379348993616400960529877791416508817947112392743273509269050735561270918156981468378166661258840902928781098735983156713016569715863614520063620594552620523725048335539984658480771040813038913550421452299301883304458598265747185019100087262939958981985689144072694618357146881500662732245780970797360782484821005424596995169848963843976055566004005478186532231633342932011738121904445375277706682872990885835711333746486517625833430426642717084499082677319293550604120155128162477463195008146567925449122083945064027432787308940595459655313399861762025412026478202415198054457209782870251937783795743315817328733908899661730466180468246833406486787921270462383364787870570246997389226191698485816540932400080119424407598076901408036520117674273195657195782410744545333986752041263177331429720952225037241270174617344456815677413874369131028436207143074889064139909365036102534130201938282833228959083994027024374194669463765893310404762705562407122989195043044569021112137825431498561594416988208091799597517280245943421825542788059420043262696516478700368535212483064211907294270831054109643884746447764749449617080687599235486916987354774576758590839045238910031571393185406015495095484973835024015561871105718868779645631323563694692532453423900309574293846660545049471603480512209119912749685028278957901587926592250706037699134548014493812851118975846421476012311885000989119237877300263101336145129883567932604765335328107918914239687166179758867601984073333948560674179402328758605609152695972541452924151736405321995788865356536834460105371221573808684656201864833613933673998993615233756767652575658199534611117536304288128372979902584007874057083192688999509043547620937667818962223766831518030527503637334811061276712591519416746502432197306431484896182012598775602550738909191629754204980312664818550786989063217926407614647369088553881320360344473584834166937766730690451018250257938638357053838868397936451928632729228823010438829936713908066372004995793295490185952506493464443777503886616936452044988775857930797689079983527931336240582023990867198944360291313068982980920424602687224652147495286343482462613809864334652411320481750684243894623905258600756179421617900326683327095500864628604139427659469980988344243406110229471737370657121725132242173552715261704046651692846762948167783220271331982430403773584827150018353261801217111165222070612205467159803856789821530955382495660916559976055419685238429069487178707408368880769795738033440302762834212898535693726985672588660140231602047884289217033811321006411734191302296833722275608865726358562265181981102203970313319740433066063168458221488942948281672089261898931478293281225904778325005027320899489603854274031185860802204378590757975482331160456465972494506328069522518105181338595870331716062308551624082970252450497664019274635911556066720157936225169915499004699957298205934690934592611943510381923547115151135150516003112369822513743152281726042583916199187574009644588021558754049177686194354576549120099118628760444065984739373310418853094382192963063985008181550982497985374539863526419289683675507034218696047454813757081604439759840002092175720744777401739320110205046425206220549139294061720775902838198577078504132936547453094671736090979098116154086438244720071808254875021113393193701084060057993131407891706835778794519127512733587475805710643330146399343298005323557687169229613560233095800430281153297593289037144221714391148217592937294815096565529505478809691009726339426223027824734812443934611137120329044987951274544690317607916048249957880542925601430674488591769304219579967040124646783236998374967134655044971252870561116282812912525025250383549533088764546341147679065133307747115140157053333197415577290916252545281914365035985770731967677162968930160791609086080791338370499840623001759840883492851656563794420265722753369181233051107784043779492778649146638934529788638034129766186299762515971637431959225193258864831076202369992283663160997106283792887042787609617953081051556484399796175223813149267419437451108518614607345446009247918575094730308675205832530519801774179229868599893074062399548431836794674707507331248944228286880674936844515837765870171260624767728581390975281553545337884895334673013618587048975180880370915725758028556511155031179967686215633046404706689469950414790533923288703403345370102691249965122708279122219338909754208840739212043782467559247383869284166910905425412054945328877506083378910338958003206388170539860815690709075549743490156042681264915990906150159346676947587693241572255135103750111266828637981476354676431771143449985847402402011859627152652745099922366672173529532115114467849927190509687282362103184434997755089897541400002999136874471536127373411079495142433117582773850993294180868980708946646748556621600241009683784925843298191007153863990192327636300673955293971729108985087786339830707024808974140141002319924794726568315503460579390871321407710771717711377700185467145568719768374381384615761217852029221645815462378714979211786482230174837993985309114528487862677099715810690869343906119874379466782855071478376737524229047330185907468838794384709135654626090281825972434245641063069269185382129449020090397914928511472060923055059399572744655168011492678913467723743675333549777573568672634986963784216715179296017228033729473035359544741455061605333423946067059738271564034225993280808296685274847216932319523822537295500449759351946482401659310064933236700576555584706637974764169091245723419794498557540695909612409703927929171514409989694077091694756240822194378068293371544691540869111130011383308553790292824653176582673573012956059120438868865115461434351631777765538575124766120629616322842742803680383231516683392276051750564060667856005536836483435307501662429083469654571501296291134119527329181182388930485309454348813236546981749505912976543843365548217120191316277368662448664985746858454675988675730133325878397444706173018306796136207508449024155053414229635440712253406301955629508808195049007098943632493620817729136732890141778971014454598247545299196568277853752581355713100278706865223511320033285667278177036334885986564154827309991296340407630513965910005444798422695234594813850554839953891077463796652588221456864789273426627154463434290984700720479219180427529112381941302986533080455651793302485608062276350746341961692858642658594995992050598067945406482146761760581757117104907237964233569673692164024364451282019689960196957706590165680890836257101459882911899560689896272625424778428442600966276922523725340171431445995866221547634418370418627208182746775617346364976231413763958231517313059779975811643030847990542210405143695945800789074919741326240942785195447717603885169563726796380844830993641813731575652960672444699506158462661993033599034909315378073286155369721609017858213397630483411867152851224173511243761415431661287528342313469315382180766709638549236126180346575663466904441699833792148684788017399417002307466419515038885092051058585895116418312708923330007798533663390631737315014625897969174417943170767308260609637495041169804676993500693944559017947674028815332862626583579504248325637111412895610525429039674865117052302308244160712135741459050662510978855937599095225225665881276787253531053381203539155514448567352511512795484461167493650991315507631780651085105091024429568959784145935848132775804113227591618828029746247098666316507727700440255814567118366803911492059036454823086737081468760138869215963254446298776330722613099758478280700984280074308922830505381546457934573267943341116252401252081004512130093519031734583399399637835603457450173343851772164472288965297971252621402564991277461339150736858999960131488990411047658382018280172016735649541199559698835265317325133536785978738433467305686953607164038502282332676642030966944763414902905261760407198370846854255817367333866065668512948784829967047770816341481995577840639642637299285642739639837712536557689366496251762701145169303155550094429896642975624982029538449548990789572369181236471669905186340239289553491415048921891403031596378681032805766195975306707910030545213283158488192709157717910215047218530009973190299074992633291100805941598063657501643043956081768383815772392356001680489887815318562780872212250762808064749783223201532334394736117544968717436889634825330275798456291271986370789118910354942257040019581796957492197797227468511642967084263261508329131125601448302259653486096958057093435098762077196021284129928596648418151122006684155251380197409819974168941096361763163470492521755633738330249476646645283795453376160975242632597968328060275894632024625383154867292924151660773335401028070358918379968472984526625966454517406479150382681121931397942177243490774830718719854000208230184104369738739349593216632454362202243401327127463854854285796689891366344500761661621931760034174203094785027480954381242537654560643478811583989960281337203733636750712297602437560800987090496986426828930518688424971878987929571992959817947059670027674498114346445156142365986478564609876079975186253139775043291419166613210085492781527053402979294724074730957418386053654721066828839126149585363177982391321370625636794264650241716078483932737399296741320856115832124300216493271326162848440347258460136307714707833589846662376881045491056238260362660689471711486211884631003967459200718755398418865548776438180686628560001673445086587909639921112727441442793328378755817307202738113045946504279579064240974949114548629990523580547685995790035027807858693142557673344780933476570060394076692706884223359554940670231405123531441369893236150844983755082069018229070121342238112676786069985424847717354292436661508273154138736174085413885194853882127517321352690213560215491106631534556572746984447195692469528950976834459256972773055167242030302519096115253051215260881266947975182320360055745252075917615984134691376581024382834940658101992514908796298191084208473610126737097059868297581808668256432158813767261892963363382319943132796475206986360709242135866523311824791217157548005584421511175519522127826072859663069119559302674760163807416489145840761503369532501108194664728516850124074824996834583324110115343255346602902754210430160994924925869833568958946680135432481611284092227645030712267565733177470968028693770612343412928473477941955668927495471796938371735829041127060766811314690144025177018368553330460632031062698265019631323241218534797337266654287862263700747671032980441153759051045898418344504258225494490307786876999355985833628205178695027737677665480127554432115951185406947168098196516173894564128121896891557983323197593791680196335639965434731894403822073095621900426673691036205672660988220346292608865256749222864835980444123496703525089058884450997353502195589491834991596770162492973563240533422888135756192998628202625616960865725968448314672807435947114074538379542664148560329565413860760619549393325464404455997968076245489268763188400544971888291141078491616566526289437289121197896547564650116913028473521154556442150045619330357851625436941664831480752933714255132469532252429626364132822285528154740339312106030193927490111991490552053092928557833083357950101081810459746879226159681262343522856884336406747869316133059291485742535843372111432558488733467842330259722781341352925940215922598739277492422481036236714426064554943361027065545299956434958539674551535848801071562021095683012464386995322004538245283223379661193169896582156977037176334765011460853436969370203030373802995810223456818150574172087319150166027963635159816906741036684363915182595231624333583599347915935778917866245710163406833198362771368958011713335857566321870535598941616324020049620265925013796368791447488097974039642189863538513247037293266297822268934517056539461353879599649036886684018343983592121318317674996611478993156348139569113374811241560050033073422185692355686793179223585694247584775830953092999416690755494199572853628131361964308826371313668532292557226982636943296132617322223804283122743232707724212878893445974079747764066547767327135880093236690812162334181557705947084019842477728778862696972703113071282762629617773976588051042849493552044220426474470879277907517402171272443527929130171940217477981704161605691660469694209699193718056468973625153965040642642033672753294556528798836014999198115925055849972347109777330046396379617799251353091800217186337448268916743498641372895130431641694476658012573953125641063814651345108614842867160594328466417736482669423538813503415702364591489286963433058352124644306641873886212182338670566168982144640036685019775861210459942945986089394303562739344215251843667044901040049817359273963020796409505860913449239767446198974297257255498139081865397189401272257972540679879648355343031671634126523583731089628666142000491045973015816222445637994381722047238427691219774130782560861644830473023977049262618593889911315413751435105664417268263185316470626398783969657337698917437518710368549511722734509966174372722004620956450236064461748774387874525930434569272498264386812033366573200399415067109276045261514750629543802616786790243410268469791845450230908725433372587933227819391316816097948505514564539885689359750360456721699573829896758921087804889571905596969283568997506997770191426737442524502339951238310805063921337967737578419944720952107078506089507022205625914083358823868112318959561810212445627804806523721207918952189689061312541099372815139796918056771014258042890926969053213992984175525385004885575903865270455462585014710372880175769781501254782019815107062675503607485248547738645161212555472303812516230336189863452934976978708544465278575203578541717813818834280240025326537463426535026496567401651853746241590067957580815341657416021533991742438419772559611132966390699921197325392475881578104448704016341948234975316282151277959556924191442828712264162709000245165662758748709508219724634402390917564804921171287025559466445730343946819720918216013696406336133118451894493706499394589244714658765385586007484676187568986669806797880916346453838235531172873703788891415261257884883205518034016386077535422611494851006455155693430014453669427267553014608515571399767226735148907902061103293840380103466178142559608335435206658971028035431908857729224239672669752647107472430498366524927683910053606111271323409179876196798444852245451693619262118193468450426503522887928074796345734993437225872485476184191430305942742946560850213206414404070616706786690566891748698946622891979495704703280582679582998001595139440883179343668924670778242749285861720091669036081515995554010826492585874897790774602234563344616273599847686457760459000563705844037572279782058318118023035447179709615319465006249484718473107175325481700151011814881437037931277451926705364363752657877079130130416080431162996417176736183631668327969166091037220098637653178276186624017809968622506724909979299503907908878676620697722590026154063294679572490500016073564584826438048810048248766757314257524478533969225738155561538839857160079181191948894942946587761787292730868748019411075968412968432979158200588570985995092208763837841299898957326818285969745312290809009662396155512731300029800431287753738093994998148709243927579209964902749811835711466280470893286520377037872042938914718143556365753672732368761233086151881401366377366557077500754439708478245773593842893490530934372071011271082112320068568676477396719919560853974536383353502514205448480096368489341542355179346570384079811705004109811677161002346034799133804856766539344602542155065785420556179120558518442578124158832791913435754179154619869134602422320158155447442028593053622194027683789465445080743463289750389011200722663707395734135039885225480580380148953639775563495659593210693479761053464094787449565056180456319533169797762176752871101777471412507603096316227368384862198905010567517921286324100693571851436223421325489465659350380119864509043530139629804234103373766413924534898221335667869813803109114414575803389404089423295017048001571045557701390020648472391402080311442894635957758532486060338927407145172534640538944550937351095025317983466308792176931622833943346501107504654557110806479634834807890387969879123388790026524693733161426518754045300429433640782824217285740388079849723470502279743603461673790135823668893755972707020377627285678093081808855549088308665680034184525297584427041577438852815850290857766188617017973560969636680838135482483654046978307044647638258220920039499399566995896601422995570271077201663484053818747714081748076432727405041164580433414515107604109009523451612580473143962446521067656679337789076081515072673837859495049341412574015600388028584587267811580719160461950531420588736421600623875290969400770975157937381616260451927955213558164622956089193240226935814057554820503365278410221778635323710970001398168877465925638852854517248518607204597914076091426341060776503659004493810007330088887791818933895603373300483422450101942066434084573058451490660656660538182746338460898548214569032174107080982259297202640417182075858463932392515828767319326746358624584547036052056306592750774014569967970770718990378438881019485108984430247552330596077023147639855680465505791499342402572282651103905557124207756685889642842308537048564925668065867674956060483955482721926466984640331332014519822631747273889044689563943634343740698165903423361594884878594510468725678682321499794505841633401394549224640154207930918210569103768430178223834161438102884396840724166539343530536151578709744871066958997813423879757133637159618646737328439320491692221828718027772470466028793734113993449619675526988198907815001823798638732599042762357903846728231312523707019183257777411262349941741796993805416370008947147886921457675026749395338149154639059221746016425307656686338877148278051176046685446428049975575787486984821740310888640404590615614088915218740636328739989163233400056308718916685041815481224825319643197336457964202308691524727412295424440836168867424312100407381255713449086800943065506830007112953863629071934657613478200612978370074575137817969782078360199263128236724472297041752004824638904654628503195771983274273774995220486597555052877679095638819369645597904226060589368099942056008798666165747883667250936209437629164937477699229035842177161564983683506647549706800167226561790611442754256103815018166168677020872566621957874779170166824093824032703992048464949236729690741316768978915824771301387403855317886255891053317948439764565857976428625397501532266915257930804008870892591058243048980859645878117237650118633122489422283732881432416027706157553081100001859639762793225032096645169536075557626250814885635656280669101622888516937169934546239042041724732494513302884489086760456921357821912307686019138010962455184427669123893510021536914992905391838022466498106346218849465782210329389789644626056337237456777233666912395697147627766241402522176015335013594409848067732132640003551331630102976900358291787433504211649113295452717642841182071970644999209709446698550442381454518582244656768646079791335958864825961953081609105540003265241395605006738887139102250574638850143461424517113102158582531740360842394059049749179049724640510113625649999837289099267679797874194495971121435060541033013185094374292991714481715643992886895529762712336455803011976779935036532192757189439085509348738599697155568491616954634969531022972692825556554800355608786399350437036112532610577889212660891382516965650462673619040696663192364638688595468671310044299549093211918322959062425650317125840873567255667709121637405916751972312757590016922198287624538763333803553499652296935376672602982222163809344018461877068884654039051033746236049351514456014917438949061434728518733425867410811444189884209791073304389031457571514176352962471063374543310920902596948669605569822588748136574904026959598065467520004646432391321652847454274854652978220345438164863886487906921151917646827292060658354119348152070821994158493678818540212931542051829744507153043456688225101713113433577637098205833337865861837244066322107245730956467911484831227755627134984487931035115180754684831976115904177462967527410544137807606051451795353365407836482498954960341348284837820978562219923152978292773450241878293288845578623654144230854848165262100383571081511712766414557856078964087843983003560973063877868359839082330864046061900726209654534577355421370228528134927636464530368781643884573071916369367222555061215863467530330591648399902901801240383892498293266064757051160724361167692927423804831359336042932415354726184929910649258580034703092075821140826707049348696327161587609597970434637546628879637579781540808410774532023070112481830675570681186129623221667514988737393501072894123735810184130122335584718890584734454411530553840752282208102686169513444613629095059729828135238864533347412550553004652942617812447353734905458254100996362321076249620477276589842889136686282234409777535029149243745955214624173486499689768318267783678395067281279195693606618987615227618283386790702846724262058033762512197328821648951412491445962858487590919642361416750113994808106931497159415522318028045818421829232303056790698952194859610224011575910057240360837331381860740047444873937960878733430044590076168868860660123223763325140865259802924803875811094011666225070078107087991714827413165692980064500450029832292447936848397730744158836786543523775041570254205176276149009448771558842697309798875646119283245696044094652493091140978966374679229539875762074548869651082874326720726581263799542083098119795406480748928345888615354227842313582590389235254378175250969551174831950508900747815908800700732174368135573354461575793530875966618619171630185195850432771923707646827781006487172554031050316322017248235650023046699409745773779871283838308797855677004955906813155121241877455664706754629658913158991230526937963024456791385846654177025683283507618626009877787487360621822806746381393111769658528983616588543637146031709350899528846814019330252875784479960999644072850151216734759130047259181366485794058707694657797323974599766719209658577708839575985224576328614477577032962928858732605254356493166991803308522217273928604094780458907767009324456048371440194633184334622260294002997860425549251326661829024203204165966596234432682466778754506490640995528887813500522700831185179982261120378470562776130727289762922285512846114941222905759719830464811185125005734198101445358786953210534554501589470135811029139839902128652283670435640462818953845473938634969188648444790551949945294876748825825482410043689038377984429028902609418890234905246479137890546377092381966835776563096433612964661219876704756511785789535427422716249882606747104534033083156847537108812664135297676961448894473234954692910960065398256704120266992911856526580009203705171934919256740712522241544631309031530524594090480094486576772041183019987437514713544357222997126408905229881407152750110567145722221017083462622262563446089817783937127528137075630450396787953493744720587558873932896296023496407973468136039163223931340324412194758903994063402300470608150719998867213426992035170425442498714198052277643388420154305144903645737890896746116559425944912763082322809273820416685916810795123467416314616871535639650271661824879017935668045948442485153362003126953891266404591298934759213812706215528840286703245570324670965304882251178366515792009473420870175969792522903424131385244218239712398734476333754198109297592257149997021169105686251596624184506878532148923789114074099398059725462573717871562518773586406180514311605851701088452180752997919277571722421003394817885967703381014245598860429171737205170814792111857548452413045171807886831104827280817374986622549275199207523331950035335369172759286332865484454263371109118394231507309109963853793507119803764749458942894750007483060353870315049146160323872326742743134492504114858518308825226182886860030467831938929841485254736149388572778948789868227663844041764989667278812941177356614275056935019973503327555308638426578269424248045058494708086312899457516769879778219695750955726651348104644498964969557984390169242749729239096095776747057229287485558566187970561125417140708611445008981912030629088806856367556614212249913524607122148949880996911262849712945199628674459451700435542584764911559888291178709124843239515684862207961098825064407932456577384408104319773810867807577873542075409933541844613333466282854923785270997262976879203695955681911388479841868136400808483663603513934709876778865379184074856683206345201795619022494264345577561965019752181057518712165612431072457957006035488986812921958752117224957151698397105815461223947081810901323779584600739851537855633008900860182521168940161815091549761950511627280151421214875980009365197563631308930429589180151344696096144383577136049337041682013263280672832792744250391089409731148979353410899169395672917213569694531981937094696881279462811707515415192870767014288444864122385322724489073953515729053871385572132025849460431736112976894417380161901494349922194099795635635355313755173529700252835732242478187929848886654161015065887398618990602573051217999881066718448161345319647167795277805778744001218600919475821378223951707075817240941526445907647761478974431428512566331322149932070738462262041873718347205839869094284988053209819406792393425158316713276140151875888519833222129285078508790732875485681121127647074330343812892470128046803524276441781342055918272321543583208288497454959026505704156650220013419614860142196308655754127287686847806000047099471091183113088503808408680023778169120785134409677594609334721125663617578999211896839036198774505385148582422136319715318781858365675425826533493158610550268514480205635744971216686205651529793961239322004506182028081500487660482434899328031118855827801627589970079539405087693172368925667043446252461669406311354375737683534969653657808997986456089248767458163660817388893786031421701247721284015632615477163014578026967995046843943632571423845740737739882257179226311947149817718661582646010478655297230729770423013841748102202762282055510227489815877372986276648969726161765557941252945090222064827341246272516677419720180821694344624127266440855676764447844704571749455463761497227991192549075804200058488521949073831616989285367838473797176415294113750251728954503681404984682081347887121331501582139206148339011566263552407300718981066878282243695558034226279845985955652531284885792863448691349140013938464397933094228739596853537915640001672439299346667365405689098120960944390258688385140892351773393347913805294615586004657657164886795688099116153215997380381217276226931317263229415755863209349212023247775265900931903084247799978037531173835476421626523037341790916019860129647512008876538426342570556011829158909959709868433542990756336432078012552607682433122332470741741196859538403477420343897274195697792193006135220515936637947462102300204325000619180616326245823090051524883616403818574210118506268476939200983610628342182189882978295114982626435003561584802760433756159445177836118729473719596022704288517859050374304926422008030863201509955750911373518210686313411907411140361499020000756375128560588907380556304495403924373590528621019637967304274470766312582714459547282995176170974330152335323419956311627002130732988727270449325747715548107468302211265114965551961855731835755406666143663719197949563109802617673438738807109747005963176426174007494412479134898358241758382453489818495582591701774960371911190508163738092872848181385926922490800984118492366027924756444848465640076621606177023596446599895100862260028928402003188552202665910314756355897421192095150497861627730953697686116882378511968502247087089610743784521453006422412051834178863016912319666912065673403859374298169572783638551985299430932533457703503170868646928327914971130694648573784122752742697328566132253005090784074345645086739520774737131893951120836050788217301919972035767301753274231714183946418012744728901479829700320050972082648101118493394370291867881262792172841251041465908116859972819434629922029006158433767233616121986327347916601516792355170459515219225898359829483649353367160579822080360886852421258873537963993886306553671177665768476067305120873517035755619108908556356762145625672861221522661369617680690801300842301388324772983844754432005299823892505673254452969161539209507689477385830707041982752475002964478090976178288627087710966155532740609576841277104251480317876709736006409236743260804892748677766932050612567293573026699148733899333650414711817078258142779169332427808448570813136648499643419381176234748623676175322965873097893077646553302822785252392945136775315564981585076000390066572832917556847768899273378502618791719152281984819078631360052416627975010797906816119621318304664278897608054509783242424660363375607515882486794253545380692093853229572548996185700812811801605447036605450535772634780644355079761815879819602693643253374544736195607092900784646764497294156637306922759814090443612381548322083239524174983085274755156096608340421291446991079412520195194070072129795529491982871665153882026619850943075163180489080788924139045923106261764633175443085864282034219368539237507903614406088430486533540820409490755781114914202086239495886081701799217953158068841804108845574085920969318704426241169387613592330007652838638006442192901441288374210015623306636872172413571156334749850499441841480857540868412334865741649238521775375998755718623237775730205349066498660851467244854054684413603397769419344561817754057725228488520511331201486752962506732311471396290591581670670244464745259609887148135071236121962317709060979833013953954467408235586223028188334276483047090012159954671784272684125363972469061815094470812403025919257434231768752544972765867947314706438360435567147958799247906991506287355488768833413461614077020903914137333522588989656199681390854543538189493589265808603179435304226765200965313693635461057015302172547184252299360625934313342846094981515464925693251850368471034674177068706425543904535306641275580077739815238205076498302920568158593377385993183538315341985107373812654606224548355116204233673984653692561992247576467046966100920369808661797314608857584636726817697053791722165895929699616702731239879110255661386842750063016671158383692063926192086400455458733706423843224207761273971148616298932141944892358984960468742683151010467609154820273555173268907113275976212363386736347016588518408100229336951191683428335485483515879481495860861958990195075727037123212213791868944949194479166326781400531132241899810065513425737688247228081816308118863428503266534292665949969877004044294977959004684670787460238688922000746678956830384080980509012686818752777829813861419784059522998784092352130176630251789532249347686451860599472051948775726082119487306975024323157603809250247490211196725081037471215421763436318102705817693468557761171312205433844610360370585951312204552411399387846566829904152430668494405908868130170278421726854420817196535270142020858038550657820326898506301138336804543029201386813321627516892651494087710729320376270933501392340813220649884897270734425052242355855289827055634828554833745927840204215138097010927984456800007092344261069045002935690751845892704419885811494238387883490195127880477465710548666065908055371520500815701739795248891936703807562568778620204880441517705375451569976120857960797249641167588504037051248930434835218978375653835130255336329139094199442900415471972652141060679682913468819329182877169057998100608227004973118708642498553026450729105480989088467507403071010474175779935026503663858280179681680385978116473256033812254793928622197807900945807065352324246961496551112217760828996600713128208746576510486063288445117833901854477152416119342158645346314876835771235087587603519578960423309762384737609766946242007146455161960575471500587058708245591723252841590140569789317782192372575985923681022436966005412598161972528066816908913156353315077268487282913542164396862629498177150396367241669987482676982177127206023246757784205425905947119888340175329090810435076464488375135157529854502172673258118590237227096933996757669563432075702310477889912629451421729799835895964168187817089715915576298506968190451820030121992114930832902627607944018944111557768069476119352129948060647262907781824999847119613092406966053199546186632227480331282073064219592608699512861916073695483114096159502615989525947293383795771312820488553027078059890502029658557562483099612992862791088262021702326031389086611874508527685046327733188662086936277098824166381464599821330134878406506923914603610966484324894306201031173218550873464418235962632305328917688718546945938334422393987704715298206305125535234976353329581174605839484295096767407732764107652743000098142480242717022404742443832411913721390203958972178610675095578882591438718800594104297549124536222219409874159306473032045005288401271387165444400668995854386613564085534933740714486659956116276004501449717110788585349763089238263235094650088134477517740151391817038649205192213038308993056242775765946518437216716863105817322479749141199107770080854220943340479329940567528485706027959260175745891245080266723902879248429703333227431170472880132999512771029130548982805209781890556730564784289491214787329639110068839633895151506650091653804673703822547983568773122562375319335792211687850196011810586630651523075160149808593475916271525376251150283242212666682642561197194462502124483754239393816062853016742291061643696300209783646988397445313057336097918388585965028860066333023750025298585279903167510470832092459817604928300863794939771588373403675051885218597256944646244711625977410861102528985052897397312204826501057973672882491842637339555909691283990433105667892229508275164428450572559466861109801559885970720201039623026641075103876269234582758028594147856101279390927352314950550238527066420350627482452112657912022816140001679884257338810604551365055772463335682283919534161296076852989162588156730535554919712972812576160554167462264065382925489023118750037569288473381251671333526830143223290238068208542162400231388216316563417318866926389446517939428979913991181123962866409371769930106122795428039563154113950908174460581414524588137559563995086706091065149972324829933336691041125265111851973373645956426614479010989237156275868759166149193932152387912607739678389437791815132240283240262656495267268781381645611833793162075564720624879268527213507547362898953016629471321292569792286977290538178086729849995096201851233057719526680319362646161131353189717489117717251642702292453589738500190833943927157320921466215903369121614255853066001487856754769540711940079238082212928126514775445938999141612683592690530114761612799505721398780740133052296850300107515727622908020829900617181952933338023626889566455674430463574819771320858365792812138725496292302834435669785280213829898133182115495506621753234982399773627150144843459697254237598245450452726289948742929569423169531868636904685386980746980450308709021749230004378361866143878096371958178534366572596551761860550877782126494775182419247147926397130339790525710815357718835978315815044913384996911170992645610621650989942936863645643267784120582838706536766567889910607952512921723410003941630814386636956327360608817686414599846247240991829909325294974156408752055678424679143910543085368933090278661150881320623884478077836744248393656193010314907774329509289404204021838893280616507303512512669148243641884654719248225899372851000066184902655445224937145474350995432284620151698173642914662408353341071777402585452943729920663400135786572646990637098074059982427427856168187487614904079873439188108061687215256743394096619431197936835697362109316695267776295574759922967974892961732390949490143363920207453623382403231169300657582987608357547421045080151778097181437905923916364820255506345951875748877992488921383264909002693870416656428981368257625021672198202480715175350663842144782956138843789214525209361213953762117788606832161304495777563203928060953084545901458485577427729001688258662960006354630312016842081278053813078268682330887227401122141492286211370742325044620655621845929925856448100710219543343150321109130797964294874432791753396621620558162175804466841943680961939080237513320990897563215999157752057585224002247943684600497992231343504193541390346123917374798835597123219884769884992748543496430765429954508525965593438724474354963080417960803959781991260233187521568324122466280909484674705912497109379096291470347419672748899428827729617940976513898469893406768496160145595637817390137844663494967157321188685882558440206608708651659102952516719784417981800067762962587916894328789000303825521996555511658605872070346288789166971446409727608050798744133613251980917521213811095808588867494562436214775204650405577951324972927584994661547362016909043555685330452370182713106311490672535504785177882610931834612403310310315137889985065634965384696558322007565936011363453879632414291053193386198064826282154662713637185508092571177664391791255153865454598199782616957981437914377494661564371811156351160736174592977982697368905515751175303706707289001841051444195017500186783851294230534115943323149612914543725077234373687685861606831462314152937955763416031016216027740652148038898480539001523146927874749061636158148824040379581161832731542929937213200666720903196979626604234927067284258008808960835975921299090691378536779629968228331625148686736593320251010988606900526213208830616960462213602054247124641346317695452349628705793297255921181366181362560531985901430021412062720614891691988675810747319871585711590686570764146435462728775382209025908534337034783106045962209807712767459816455023828159903001538394311428815841173860158978190495068168644191107045650697915719364978257934651684741366166734254473720565948439656015934128531371002242684845683796039711345713870302592113160363883680595396797133923556763186812555727281643345590555338592136444115931551377576095293496311545406501695290754513834633092224167948567043802234076449737089371845225282059115666006657576890263679440467420031155216224478819554849562212390438994963810312171816424044085110836726355285874369336408800849514442987422192447800378503321344230343134980781087920298730861374817216423408196131124694200335488817498786601601201061756132201375776855255077310371095868754269263069230904907193704483677951887329582207133442702120020316944876965111754211434773988300034354194506433625721522519063078163185661881550418361354482518239169888749609750920440401313610992885620117297621169460305488707308975131247129690025380308722507753681513344890619416769250897581674194180442793323890865218400232831258855997632308397836945329078723004736036133457627883003581106320739202868046586791876797461274097463889950074334696978346009006900395678500974310339697687256571750007616506083750076182149414772669641273253177983765723172675848598254626861888567499537217985818120765310417815353694384009407439565846646246311219353704858613704667110093005919958850981929416484249829378341499855724716863992341776901411726963129812486979465809855820959840731570737684010132508748195729042162588278858087834063840080064937899609909812611117898228178320347111740063444540502758648181347963571279481955255861965537371095201791436900678575945492417859095715877255080349121806390621001098095941085731265603528009129764672119287413254753143416548452290533937935441145786954718384610715639118422244901360689555025134920807792784104093536807042135816963129224754269169032032492481409144446635164268923917019804884381083623367875097889545281403167364705056790397974654879922683192659442448503298750252307640484876961364582095293642821821931469494093407665384581145698819177457631882350376215401070342955644541315028004743845344458733391464935960175293766544276965673603056088897833947636266967192030207584520649024620525979325760505299436750442403578879239347083710203698926305186487503266312121890512502716094112079361752398169072540147771541581388942018445131636777743122855177275237065002126408764296726176727192034667060813673669126557743973110756100267348789739391349666825885204989807621348176224691724803547416244390717442513166430340920750324547368431011350156730949975980913526064927525621707376956924756264382460645448048958267400415060967278089430372329418403369153113189000212685989875038366362283003452788268456707281124931196216415317108472662683864830042102273925005925976802446806735025670233365396676828619883567928054220213682215495677675537294360417745084404982409300433897966922889662312654437068897883625043817278683390992072253332353575223100101408472544515039795669893792475700451352600433644700566652734714575312772192905701472280522652469235889230922872744870756148080505276889573691816539153792249804346757242185399223092787370126139035267057763690459695357710623353106424197621867091469086991467473239319544624475085552173030016854426936605367851326840309385435083070130000720200147924250278508316075176304822331310049698734352518055289979654803642352429832263219827254850473173842950806080289694285784776642997364326277511540533215300410130380464595134588652756985867463082857501288702673771328042973661231684588833187587386209392194191588202805918863857276624845243198923426888392812893100159428411425720910601886286900372848953143828612626702353965490444699507695767581019734000388354843034186675587334448453373942171673951909741992900936854862243000732371338411979597177527064872571866679374457155446074393301222768312133089303013362901913285207117706540622730688534242009671236219726634558193007073207565413619411007623932418599128767280709379970704232827807316093890819495583482141684004866010091370474038554193087704404209452656037046734587339347713003700071308470399578249893909372984353506153165332937397094778161994560352636055983786307491988417454012755797285632817451869407542961841431842577870077988846917929227399341584414050439568766733838141111054080016366094254234140199921504151517011770796933709371150543542068829749778809538763914538109636272091304708253000433499230192355680767782361494141019432294993922921661582802567400683092961246722321662792422750942163909442831343107655780931940402711402615079609519150515462335442600371021606988384961446528140827539111276901335312090916799322069147763190626396577692054298441701053995737586260155080084571616847225854374000367834936908028628457696100531915846338157105845167218801469701236744433555785167114778158603490773613321155921277280559886152011261032050020342701951477226223738746590631350659419082923989173683453152337018419795700793082559178037139139302520789681203490030968348452218104865457750784677645808697373851377215779583209716234687152260344365460937968553325226363588435210773224388373419372001231051929321257510404009870951168304102574901114734456465537403869218832857002898226482783337362363631109745491556012928919246626789417630852442235806220395817950522794579182392018569846276060518793852937294547290243750613971637531612561848951349695107526532879199723766240360663558538231493709272855599491589651394151998686968563844603993724371369659028650587667677618538450399771337856265638579272748845818527943771264847675215745025093230714411810441198424161797804779528245964906580677822789673351546922465127973769691243974667770710047725544059718324951717994729859807560097390661276497444624074599954619014376499765619233537354184350128788423373567465696350166057297476393802674948748739203087642292548162089627460156517649996160404530988885624737307597504531582300703438340739847455723803581603985812462952374529916741361001519142577386267438404796371527042734941476983513098401149536433205451888528462269664045368484313331875416498137729382616623441227984695779725222717609935796181703117123513496474906745433320403760067885540754656097714911374724810528348441326958260759844579697751853327290356330665348009818148868151158142223328276838281763360003147850587221836273095882136167435753764502743156641832698730477736270611358590809569013167971000614512195965451600753582580028987440581268656774997608201117373579379916535928336648880998512195802880408815867117343221212994371316504138359915423054995554483669457509781866480089383625751039087548610481995336244467175345016052384509755212351671811214489088348197872192325485447503314572168705255218386568931306134317451377009965334869327745682870229856305390110088820602263822308478901694589413353453170548816072623875633300999580174756663962109511918270252537894216422593083173018719556683044003841290719824524701445607952025247454491377197582796134973604671527813574995059132981342699217780703983975702155288362836367300598058965189613033182017141226949675549423351138419988861727374703254833709576701942231550971744169940100189517728804354440643804539880490507839864002178601017306901871108162717818384599256517218087931460415131325542454561301852456599599109101772609020515254943653072610648335817339136907334140627025748706404762761694836637687809025819223036748057822748823335907523147680657797944984439961446945447788385115750946600364807275740249159909266299409547411035992200308613392605528870804690051338669378789088752983016652948902167646710506448890162324676510907512826901355595949464030027749713486812858190876353461781334715499353126692752906549539401877017152134625937543703855649188314941464550873364815660505525559772654660868556467840584515580229771170196454399380395099658658309542458013934469959950923498111461668815835212919629446599302125827567988902034458507863265731518975997003522853627940843394029532829713203117633395152777572225472326210372194583836539325910267816223468925881817754707719602972887473812242672758006019664235088251828744416097638132945051094320565764415701260780961287105768821585854854542503610653375207590584219393317992894110310118389491784329483594924868841041814206638264531815872221824030487294283530601730653021835657155904189872318014706361509569161630373790448126565881957644288728202308389696695611591616151548691281529741443721062221045199986696595996595021975933486864937441949803106290392461472550059130324142811940025240464768031573591665508116344726395985838157259403144151279475082472209595837248338259536625574333510925926742830839207354337810752287094650069324858729546329957411597221455511081123851833651266405807311623423074981483048219619751137108255442486092372920684405024226820387949431522579223895847367221364578489353929964450924182349079632648414841905297403399576317712911003878468166898123956079797454323526325744175997025304622148697975627765537723205042544843775586694032269765360442465306730534471888699526785902872125042439098523319579609111473205278882367319377219395234188788243073491707332742239435468393177291772548630838835024412368285093993424750107696505865336558744729243646975176960889273834773355801478081750108728048198743353072493752683644689772237062922872789176131964886635598494844686995528249454205538692824581110899285904735274577102636855936329679500214342094768191330348705357680819688918552465150417704697973081512643845634916084228711015547901739597535565780110278080995975503195790358506791366028612665679320728301655938364407868499133755836472077309260381243115005003876017534594650349759125300722561577296023086959348859892274849266637614392148488369097886926402490881990468186621061476944355493850768117256724778460402271438804224863502529057429337226252723683662277365711700870062514915403218709067686095340893236750680131839423849169157118849233698299694917051177375692303866030920775686930028917759545431075808655954499395610687328214584634813175162012203443848083389069022643258813546098502415395528669638662464757941870671159754104784638951706438985296741843693805642674711608916064557622314172470594199887846296858144433834658042271373819310382727362499720128766584127108896179963454283764288129410381965983314781420197921590759565046707364826188770112642316612755289883351628242344015344041816609192498065441393760553138345870417645185152121932987229840740376571453910965752858394496018523272419561169186024158639425810567600215746578890210292048547381186035805880437749181889661427561736829913377876271679146588797185253105919591007887921012491411007816356713743215148546064923091224293947058787441256712211061445390403671021225264364832640690664859388215063403703254275964051143626910323103991052058777566897671553841560097765553873759601098872687603181220463899770784196097040050361964784329913390231454634027758753751952989843907923365712040881098954294103329454734683083729797397583608986149183785020849155515928501767758861575340191299590610031240339263264607558457678426716497602459874202943088777303665938017057465220567082194491949780966356739149389847543145740375718662757158980921801949527566842718884304400638703641783647576543609805222354413746432936284943446715230893010846986475699001024578977739984661738478387314235569433341920892651811620051886344561209888960336703795004882974055858695594990575586205766122218502718838556312083621617655026306252635752747431193315342005708434633854794849085466855600977245139842125069750503796246013715927801146134342462759564491386551786274473118564186774094643611073171496492436111822073582741761992169236917859461952069028806979641209942961814007510464624965480035440738618372212631396306925769521489964090318174837123791653752861900283967198144346342683182946865589405009139370032273153315777193543406484855288024756941785455491137938568614583540405455652888232163951565880214905719730901572628558719966979731202626187378406154581258654140225849161048573188788056811746016257771354349916040743710648503877294943328012286247425295501460212348223966554390424801777142214961812485288562570598082756579755325353466810060948307570751971538409430231694913712134959734419634843864348004969794591807478032601103815647894149499965232450648628135561508426563235103651716181613505095167401981716445731867498691721109632386513487317777424873890253611065490091739574668574746617617515955613008050373439097882270491015548063654591981798768567801004770798725620564113211971236288527046184033139450798955005099786597085815304416489868177324125812949679025319225353284685837942531370346592304647767150630309176795013420698129693763182020189797365736058515742219370295000654832866639486376544113954781987645759130288521940911711475354036436299583815022595361403107930217285335082338466983079564655652360868089480953749456086924800819866022272284838220482233932945833612906175416223964694356689133484507248990292535701705228979922227799564834594384708358226644603556764080953328726156596295936258588843312288625322847259142962611952596248876734773561445070428999973753581027682802387257175775567422025363099169129850408055908532608708650265820999600787027430748103322318303562592117810092777032957302063996121332282965725556021054774185616765579210161532326886798167704191050958957305435965334944244543317952673123577144970392572526154543938724667872116853543352068021728843013040969299613339221876902034879199757202372331136176348611889472294326144543298189959743425145503069042946682253602659541809782969240963050217956277254055193249327731441246115347341848746345231221201493110543055982780335146162164573427935682436414440228908339053364225043487016603319046223266231027302942632350908614469002899147517676169576819831668625742684041142544802115041508179960068087848466599392341994931314646332445639861513972508381941758547368251929463852903380142466914679491144693710993259908451867953303847479735528875736114162690282522259005951883278391768680166879424853497697155270837396091847081790684150538837751735255174278466769215398848494982201545610538710321244748581480415182847869709988843548054723159611655044460803275983634351953117927488597684934776248793817142239410452186276433372699813497000557866400109542856049533947049985410131545574132159594111822898203797967801553125173245689324097213253710697560200152817554471411734760726342153932887700343912621843169929841060687664779304754797740902151236579094424157737791776062580977955212921371399298657653586520915910426708309129470058111937101570360657373255611883520565981982600149824515424039058400776492537330487992785956080383459365410932520808426134610409720353644877294308893278559060867873000957619149961035233228046140500105856190014262420005056694670149973752051493772383138864402708361162753539856573614151729175482180671708837624780437028220927946094075461156295203439295757004318785490739435066096082918917823031802605334861127591665514295218054757584017747968054669959116747511094613887343735376991544137212137778523156788638664700782242611683611530774709511818405412159992109146094040969458883535730502388565990598732713909004999862049288014364219897477607793034686279673156789299692668738283479310220437395154275102016259694507343934755268535352411874943816549326268230680372088873317526466675686770499802075214103134921280795274169181872204753173287615114192127310734827137729016433909379562780011748229111234750015174613373070032348517329081692706938615299529520752477791142897836785599720802011406852552026393068010344280421326153332993372438994231947091982048929167644756314277495437216903009511143493540861848505170738101375671977790359118340758878765698345423903250753110395873501747256328243763918470768980356243591265389109972418288593116968584276526452309197730833719589692528543444001203659412135067590309834871571617127814306228663110183311554357176043613865584191314612319959619017310074497805335824775341599131745533409001687777486587287168983681799630691699460070150274381782457331718962488120838023628779158866795106622122271523750702385622639001092241405843047745705664647228917956050376748029425328825587951731653945627780252729946787199408257014351776555477789115246804071330337716730540468013446006705919203147842749192577591778786432130334345599578269314235702413499407499612973063056566871500563886613901125555884075674511958853484970209379047226840554049435275791694621409014790857784984828977906458698245082535638005292359750673419714915123261640413503518555188067635716027919649235915522016788281956955734443803735582104583207546826907000911950340037397937686085065756327967592456058356554417822786339070916348238075013461069418849079388129765502909717360114526781780569885925597262651785965218982951803684338552726818496085556388017175555250178941053363531190318009351397151025911051735327043383895432845118831886684840583833194009408708496519064872459286569749695304511208098187784068553153323128154237210332554336425704467376899994367722798877622908661100217459347588226142780723463549366615118063318795698086316066220021988798342051929424672507911992718791566021211131634167634387548405905750521286893585690833762868108388958349519244063666016235712638080739094844939038445661295748097964472968356380482162601556133031586732418632367821765333652577014003388616036940002551445345929825763347686122908176603948869297156115002464390786518341977412116340247495540766224822904466693174018717017905469918783746450047669705531115050890461491429913543336784333309966097595027313864921070186032210613066147343579630468950173065083616205517625476472176423266321263935601369428079240917083383447706445586405011783546136015821632829757033555198370466137019031218579969856682807247081303038000534222629530109802813378616398216885912025461255423429566858603669941701808177927128723682300800350639358387921452067285498767201699619011658086915679602868012427812490465666873840341150510228665842180800366318405343949150569316553643660232199571560776760869337796965903046159806470552340052485066587384498260581977190565913018246856703612976837177696423073534407592208285516720148234559610047934691775741634138074716222376679999222247407665292642369527346139780863953252224415425848412381576748928062517232104713811454397748816340008082974893816462996189752035645984497573008597501027968959744689419799155207657794985044968803719170450697179874986369423432717615301909069193546563928099534776916774299239070225854576262635058719775070527675382285756395932262559286675761706400841183366061679372083507907753518470115669740782183571478105275424158959757108137633663658632718990490510429918969098566613631072406695731733859655474122950309221931012963801883324253827640076575392414527875479445656419452868259259230677778062470669136212347897477912909101933183509623756561698695254428996041357503433217087360593728195294420221996908857285393198714313209958818384400197994187035623287742904109587989283234234600804564779530374646601607290992821543575616352932178488759013075627974501386854630158437647054262665446130183883724700570958001971668086622755831212325587690204749306359285209916133375613353247573768098057354545136137235229402879452417593039592716056134581750282694152719987571485918121013752285687963255120291080458053540696296910456987797249770064380979702212241048702940909401041432486676061922022520790647015049580181145043499588568660271059906241950778933893630268996096564165452566880389280273345485745122167458231842937360720978847751689910376605063300288780290851852921889361762773604323171079788157918276561425446013420501358723909493712289883005710454082670255158571758428508050915467634961770110973424787664167305916572490811980306399236350386389347084289153531467284835656946799402679188373342497287413351417843957075279388645533664464253535024205040126785437535932526324086463580196789428846158563420633602339916783318359145892865976773489955261557986635779137350500076514360606872149975412497717078714489510176727177735406112568058891355708849868877735106492764645274529364217470946369023081117089031815044989042497034467401608013014747469688485556178715259626309403688461670972549969834969649468748424772812247431273746196614763669749393750098919902267908261451815578014812621786645061951535169711731908840574389133964960211226965388246263945910111280270863359555473008257705572358291234927661441191220385761754582166495614394171595990487266347818066993160123669023779959550072112037977706690378759505307388198030768835771597488670666229302183070894271612559714204881483148373515549552041909489898138432985034051064335696863255136453653580401766369420784139067497750439089512675714369565081461976868870912857787139131328633858799418735773506162066308238628938427169954014552584519638858835972056954853476730564469512749240566026571272818706082015453983535317997707858082536303595427044273831502499516386918217244224566022695941969384347910831429729359455659829675216357825246250247322157800836632663297137627462428894957022331449914716494881899748239865178715208265183393484327254890442504375972012388969048356254018136945193325656465598766554578937359365698798977742673375002153465883192902734630917640357282793135578568844595289526439662517975592289624698380150023988625502756571506449013135297704897842631325848901588483294091402502464232951021127827695424579136742664100787606021050212584039878364382859221502161200522783312262498714668561790675174255899479294932716561877002758634832782059511620972681623403491406863589343894270603385536905783829357529763153388423661528598497045377280702355650042487216416608701502008514234232131665350535067839347801954070279118541831759641065678546693586293735710193067468298774942100732470997917961350859245492478029949404360749010202638903044104784552151524431402209108722868030027973118050182584588958655916882320625646575428079325977677747618702544239678394043227571422440801857131630779597974243321854999028336925960716840261897104490597110694177936049186302088847345787920813228104150886480040750475160041017028003816847116111805713783006187056931522422982311524146373719665901343360566726636292360628902446722275814164802268654221072685826383720945393966072923450642249994426463181019127419572298980784148041295817297344495771603212552350350781983005486157349008096337697453987361053448148437031205021919666304301564818303340937165625124873314010559913362862041787805735120903957935867468557715869905526504937671070182059979910181365593438238349395979028211881111824070305879696262347781748383888915156869481743615042108772712533075731542502757071878958209374795075852535003326142608845636517994892428404987899762535694695182598728051654900125896238119209507448047387850795881655552516923147179085107078014224388380073364478753665150179232809216683182328450719729542903255688817566321309851804972684003184545511725182399629729331168178313661325748587755027502898654686647085904284424628857690673146585170146613501923526271768619025980830071560711331958637315892425452938275819416238008574707706452095808117567637396466991486175229107349771278171916500110704936526954532961286457309481954801351812232876903858332384723269684678245148818701238779551959215217914191997880334152521545427010186228451859637355439770496231184698377751434321722824257433136865665257888035669274171065642585572914421902970756745566313367930354182457064788675225405646546540930664306390254841018581523552878519102669299462004765960434475524033256686005049784504054254708628065149784021622234527258792463635503739311899430484789636875106622790070152259224562772759072523450737940855413982989968156709626450705374660389940079816310233770887561963876766671721553179852600043305027633432626200349290805933793117151285912418287515115038193633240600034160542708720588691908668876408603561800658394751960273150002156826110948727309411500298948102583844080776424643667718371168630363272835006085959284184021355472417691398881123363267147757652131805029985001236231498557431940578191553395797104917367152830064566983026684775678684619955282502867212200733769539708216589848437133286592696835778155723002103380233347746512344595583674084126870049016720709328447732017375612918035766398193443594206642604924210271568770275159978126922626167758438974852575969076733723896074452272091342144239400406067530319306091058809439191499058946891696518037452897748490405061598733343970589066053784906990374669374322143618153471920998164396678147631598965813838662627534600923496144605403365460869288150168897883802761817021177831343074211525362920300991752674874562355856053888468632915350924839260532989681839734063449802083478836613436564183844163189823405830469567597547656129506361553217152976916288978256803052007970205168654520115464527579018263063698262963680012313330997768156759144779064961199935875907350704591187145890882273174034146734521041797027256137253565841162033198061650425620330596506799551903354421526119788004150072659046844541775520085903813369378059471048820234639598614365321191958896053975902940834924497751599883793757412343908558546892208639967520658879234220786854133944902382258493106436939164386373831779926486496676724239540860730141128723367135750069128095605874338320806928052633089187235879068463509191023375490516373496876265723320743972382921988262354650587406941060902835013730900320306477751816863511593505126316007556469895597115615373761337658556175541342829837417744137667777894930605337963741354787248635266315912900389805451590152784507234421111798890172494200420706473747111129449391299177227214865062891234300727330316020689222451621138724188858456361308231424698945514854429868179384384461916579051597487176125892760793065069443397706342399843980540270220153228237819945959819282480484105475887230538309972910055578589629850401775287612861776546094536453884680821793118575050279051305335751710078123133589899852515070825497119233924924556778327982880735459075152863765229879942498128866521163683454325464863233157330441436951388138956679861538652536903879906746545344560221834982905252857738764773906070900569888616904764768345562577567194135287795573695349601218765803526307018871443612029559343864983317170953568961468752544428943079107983807982420534494353228702392542684097605892912159886643280089462397132357142299223013585396842762384253833559529107936294408054008323585994025188971640480317980945622377125162900584994224510448893766880627143475702072075243741999354644687502834883117403969458606352287283803226993991932116694835741184918141686992129857269294416901383354847412670986862958287138915246633592139995936085372493734308855294010695691432224163060188682878854898195789084031075433410044249985719376151927562739641729846589476711862005439792791548060834854163607841719295366442274863500618874768889060053055212425914950058027741544200591794522075619164515746098349619183768170398521680401278083303667971751506146846196196589959833695338131666076876855568664692915995592302601360089228217061044437388219029003407875508245453762539219295711765566206433353449387827594337230887543446033604972343339357173277818282243696606087360766119216761824357631456306685226710449292772084134403729869926429589418190345130273160990297263317041200309585276146547624092320346562829797338664264461887448807242489581774577954682409224597449942198572885710408516626009248082917200755975532605447328843186279958714103090234470485158217985999196354487939211989216095643128801852463789088393034284293340193447124046584347452589243466860070824031825422694429352964877168291423836028907573540630757969235940509258173131938990007193090721525261927341246131622005797990946633958924928931616357498963143553392023717999746784575357095223152706623931167205946058765188778965082912678931349126920082186737188347068340660524520358930647597113373385206469760729130040322903907501215830130166079443184089215693669688864677831526432809653796838312159316748560386419319696992955912331831826340448965903979121684788251802049856644056005153144287069306797499748964987721305968174338764425362926609008038782130538879045309244734623127177131884738089435662988628751556532814428052340046490152161795433536444924728625902192875751078780013776858329849441684008862410643192264055410182457845737381167634633505221876032964576736931654437395543836308320874949209088353441319703713671864836262614621502352771270450300988870236868788888538058374433832679711590186813892730586131742888170026079256028857973118613920915802549464723695035197116457693340774813487690892798150917042541402858340711784233438503544468359278896291709003771492842815474255160078042913679514180642275520077560833611282040900898444934725485892010498636698122793594212681448561683298149985789839212666557170418453179112087402515170592040422345658950551194584514928399253801459683402398148280034983429896996981978145658286515900387187423994578559286380519774847121854326318637093486451738484321644773376411985610627810287699156445743894733458755366228303219719797023395471590623152634781217235341730045552891027752170669649742219887417039783595605653003902963303092766723561553436993542812667608970926050835469453253276962804312825600937581303838959572839587483200671413352726882091496894128719566668604882725496312503100845541971904816314813660827689024323705387092881940335709901519701135877284549729865396718803507712328159828976743038320700173608092580493452155454502572147628978846669739563658569926330223972141163550156790614692474838388764719942805626662724345293606936116647534788865986718067842481637579190336474027098973095466594495121650933882014783831410980858713998457307994437171585613750313786392574877241705778553442992315098215551460146151793807199603262987527265189799038570088845735700619308657497891645521964755960929068431723058158434729823768699415004984566695951483765464421052609826726833003546611710585570911248378093038101110647618692210426404910980226494090629212539369039128479781529891845781761303965233902270052274994719017815095493951159168439212248478818550688008351821522321984831179293971423424480282230748457118546411988597114875037524140693720990748894695964127923108019016492947046910063626585022983033991711599640336680490195974872822147738034025256138629974485838585754766199337751299436480016728428475251024262300708854627658081930670970870722374624610946082681542173339133845640998169548821556210863493938044548149696121140792260800245459213203235740811439915217966871368829677207867924248977535799632946881295920517252560272334700409675656260712615616373258310509582194467672286065183296339259505528297890443003546476454460126829355101099304263661289702972229070439288607055095861589411995726524117993287729437727348099118027239771173384177353618809344336461341415095679322718065022742326235864896061617992499089068857324222927736578413026401789182574447316416878213825397627949734765779808990156595033823290770930486150347634570429240504252324335227625577629372347802902463643733773977867999473105713419790338498731819637891343003219063016699686156399159909058084701404221913427161672117900437383116021676100720372183767833316333857493865243666981535388234254068714480473909089289027969157403481794282663600065961267440156435775137219892876816450446196207742835282714032748586368989375688964727858648782713886016447254801876632085826823175824645627755880162507013539961559054455484275901867316246990806658095673194562868564682377016110264365927868261668309970906478140733136379401181936087184142644769299256611209934745905715810767350356246955812580004467537922089487293052059029375686485837100205256695855482729769040069834191173547891709087297816261836922052168182319056058564241415549080563047267808748406332311156993117675923311015905209818076241397578425677223755632984972071878780604654836282097830946418617312555777672018854472349926465984200375253813438998461521229660199140410007225108028266189030437492307052764078821566770237461740620609736758273900054414606623794031203045397437377817807328254518306990593266422317382692058119004934430650940140961466556215177637842598790144292328425905557173925615871414397103111197040584529739045220329198161801206724103312158028369959540457221762734253879632796105754625004065994562646157230000755077772787707921583251851443756766523110036197221860100470852215614468477335230650908373571316763922538509161341800547723213796106125986755386872044812613821710404280576227132468830326973039055169343039971243347740087225411504203061283308001548400584309208257974454747487045024693083856241060301507494641190672318246986656793159635153075202677665692531335586952802972939944605128667527089902205969306487246449649770456835591944818183697590980322983547761938148605715421001595054602950797400483760489982772740948900090834527042436074700632886885059116238259736714283996036781350940417904144084646952002557268305481234660375939589121467835301522133679051235079019258433775875166242468624691029652348654797126828289560876877603668142714035757285192499122850139520145504788494171347586609605320504359560700041017627399826573715737731154182761822968895047892434028680983165444529698713462685494747480058907829219453756455071983248444843439499497616064009707092953005094448417282716888182093852814760434319407068151822652669540924510181011133582848158025249062496282248423936582607608884225220596587413696436534077815639308121815293784084908453336874662348524582720537765905734420603360916589958810269134053707888213365177803631113894858620730406845719789099718222102470295605991263061601141351766425636204040357287873003797023362121543493848153606980715239838400447132473244870982580957082333208890636695010938863629265620521217059564697227343129797453727280075633488961737570675818877244364778166317549697833406360281516905945960712055590499528731461185439853442327526278189375425206691581901373481170735210734599314674701215624466784229820082866898315983238887561320516129294805963161519827079335618652940634303711321034906286509070843158250327500277649039366977430900333953624190645673080922031381671344657455362535225833669009665384029959366615890780512667872723485948001621198888209992940816898220532103477344722301356391567747065799868139112140946897123957165367137985895479699083295629869872443946434163346824792157164552984033418985541762967621069967173075539823433518712556199975672072440943888496618795057455523085407007406686304892486615128732528793009097650645185063995042357262783882391451983124340262563548297778421326107240031827386351753701179320986293986066291803509131341614566407020960758225913005566511799913958552292904036454473111796500330862099051449302532824946150720310951448077473613618621342606331203605723161700090339619613966532258263180378345020356112349826949774864934839425470570227856150214025453491360528613505167864701425474840624361875023711274897692506220448702554397096877529077921915663678880983107871333419163855388476796259069037642151630145575216303829692562596127689596821860681240542482839436141265604996423669041007122107103521044079357696237932455495686137391793291463074861408316902202259021745247644951374217240107928341474453475373838231789542499321096753578440227342445069768450830296801003779544741001742026136920277209347093410653481276923840158323200256658667584753029998964156192463839493377604522538384463600593562245751841978940707429213271341983889178839530956787935328202618101195442335867079929328876142317833779378787151551245876263904491943492545032297696482576700881891362194986273111238331433155542930830124365449357882704850813774853891301686540992746534569783112421596358818800347235445134780329678097056803230883950255291644237304969404320809071399600707172829618652782027661355694230862617389400729155575467720147224140296147311090337172065698875357945491760569656064327721121547204358223673070205575638937054739564149500099288778773030213665216672257798372269570099385288308268146001256806114476489007454321106337531590086437475811377447389006723963386586747915905823685202869984088668674796477298708539812732526836661286658288432453325760588362174702873045878671384894336765624311781587974415921363789102487512528676671541675074321340135321745531802641015656450762001361774133300188334746561652439127835856201613906258849246195179460500869310125751847567009621951553679700411360764665953675333828397462851576068435270709944559496229017117827291615684697086345239445425758600183005732627540736275215544046863743391386681055872815578210069268408413094406606717922025549347993519762866739420614584470701503979316987830853377225916298576372710550714621085595839443563021206577906231494179978523143250005297888516386588971229395024925532816918193002198946415971860389378536562811809559493844493533799054718824972769392558852218388204212653125995656796782295190700386554806647573370082967395117468315139118253351557422661145549543220454364048570630714837242485516148307354114022411533275864654395662455092551713556541043601429918078977903501426793315313073331779452861521296521632700169193547360196690496201529197954522454195274641525208334296882077092163691638175238251952701003422437512910983313286764295950660096470091552036330554083057248357428755076698314626574791991323697318485253275534851045766036827770771985534330951728993579184767645752733967248634974780858511528585090398158282536934826543286839890553923496059262104381618977622600970594836844555774526660459264663538749958149320915104874499192077066344803368706415892056169908333885903116111763572968268318359250925488648021164790093198725262935545531948078582206784663018228298374303633792105441489451079898791816860961596645353530561792485548908133737102444977606951072164587218389700186938857926454501803998448935470327090962484277334952147431514401564594012521389790633885761674896966175554933882072810731087551574228187394159755832095165391271416881737344831863510097400986335048590888518085494129654053549505174566229159091604119038325914261886352351608306725624197818795553211564734968624436335471841538967368251705789563922705214020688825249399888677763560031298715812241407625780142726198161309130262583694816742283454310889835747143321407080439278289179274772045994856787083178482030115857665075857129646600046279363823962158652746196265335193307789832621356568660893091134356673665479725642092437112747426205722146079672005831371896771121647057113726597972234017817815622951306847831500107541143281902678853564924490393109401013698671202741376602208048982752232788789906980639388926190965555592171632458229445138788656963798364396859683467286399546343046072528380696784600805897884358067015332328170657659576281700112607249753525583148757065330375814002040354003816400910529000343331681693363050035843740928869553025325609623485904482508450928519976126152046262921725186529120619815214505745560042485800147709877317462398759161378051949826042523576682084236691912364808678295306153717044071661101567785031497627376111665389501855818546083431588047599895171248735993818913362812512825959253811819863074025672040271430207863915014321495310988131257279108452771735102694238069051505616402441626501806784497095576227420475186792984277412405565598120330326762249768279467799836352138419880972664222084514645890102747793954876892793317021425146766829728438599116291968785826290250322628766644558916772572337004974126686036247183816620373765027887909725020213005484706300102534693563087061435963718852399908550588426935057319562754608203722314755179978570111524732230394854392088683889474130764239465594593336331592443631063274626959254365147380716250778387785552882116480100523478831379971653079055587528023266304283249480731742233725704704671441964860286525707128218401335878428421006925878824976014454128488351515710362648960109238398282071606532027668599032910360428975348319998746628624847898773721027115414618545817001285695796563853062688970846150903548465883139233976068282485605245962436477222389709315984005452837311283396591543824966924458018089829324177587976852463488105996604380592895422059916623617769599422247155094673241785391917112010026307052313473521375931072642094918021804996662206668334028171995957929230397972890565168754443617224342363557813266996934835534404637042153375550949875241615545060121624211970404605276552969782270632682370034380454205099446183140175511065261256292438161493004554772942582193460788654325656266183946294609472806549534624475904250945914116424140869581704229738739971135948589576080402400621564251995124012291244562943708682857998813990161200387587923584335238437523954893020517870576139454727213002643860429739961199735741407035039587559883043462833717423653949049204664204057917991348193515190850000463294005654387560533427791042879246305675618948475055548931693259844650892517432992212581855132792345683110896123244853832067546202898909092905670750335564944251632018609126292887798824062572783607414688530891396971594359476875059040259537928799309668773091786010747318082696669902930794808242792772372707496005166919009167975690821755263460649599871664658608652957562809539606934282573960048675879517829034995619546880222034059364724367342362675431835780661151947903759690627986121439840449541311768850432245559207593970684011620525119510788365771698831136794179222534704452682164324072226801293450091484428521023745804127978663449339147736690523955387934578372985600471389946962488135378431625759465421911296909555744024380615941003643366652706363897891576990240590616263379508666712126557816929239810924881940738725792051119099738367525402782731896359851494347529771974726680210954088436588905286992903800659163226953876921500386754993014757784152035365435564275607881245691214210713645656567786116426898499507767337399837624311093645636809942940117358539241032864246593517306838745060811850669888491215292535609639193450030349996625147127802538522112740870041035890209350512388322076199709906736964930498059798268005402061726828930646142390015079764877273653646957849023700846444796979277322090405014708754507824726390133825242973782494951351915828296217149371626960882324538636259043842201626116696378783103208635300984849195111382742206302183850691468917416196740733321748168089037385296994693910481962505719580401392554926511314165262632346046758725803007347706066833223270430684542618701555980443339642743253876274542993747110983401237644299255752042151098471269053252857851732617211389526452899028907069175999249086050022399767113973635775922365110234908895280779336840522097447788189990745922846551713420768808924519582776815341542055837023648241556231513740457277642870517381090447301092699619290855351367688185628989708827855436621836310889137027711401851778583118094001871113243154127513256509790238882359409501700285147323732975978646244768150926645035180277817623153110647138621047348853926710210877200141680269757657086674657087364147878616644361680657673698415316771518080112409899324854949287223843313841822259251967961779951363543167201907128749884067717170214845309622937404151793588478420964373564338231771546765004953432646492658148112816155171586414244433996640855070181634659230703183053566216566498319592007063959013660188539446332459983972855285929361819313382013934425811746046299695828336747384997998004094299804229929507296744324003527219818214332607790714707472706081695971057017882916185252873951313627565532331042706758050532661285541798075522740904177287415004492265758147789838901502558207263470513462365671288089149527789179912977934695542410683042494420754677822691552664287624064790910554975143114507612946857856857765652965827086404328398476764003920777401008240957121525461147966735876977519561477022572868687923902879307456155601831118278309118765556128552276086421921242377727561928414715897544283192156078357881787660205519498882377114847408227116876055533933375890194580616038796291851878673303070202089396827571319198013096824733821094023078008616725408551467201746847671556732920659065944627917684983439097697104248715314840705281846576913528714996892495192143608310574820060120702744482446710118680178956490465136088060991646040526988804522049334585151672842971187375507551359541209531635024541652134154507060294283222003848438074631984421251573557484165994629048744969738855946289778165079197629101042780824325435642285806962587566681041212711794359577568916120663321322750204800405537867166315139871434156122050627025725642548828964431253932897080830865268659860779811290485422277384725307538347321223871331322673249899597234546979128296815084014991132188983348285563766775174229196277125816553233794943495646517006436426030668967191726113702004426499325626152403069718373492869084826623305769334157115494326554645128995768996748128786466954684955347635982499757171721428421081172752032344189797746305292683447637671625742098643209146127214886223355124430878008426249036850588846832780142407860617231763523756103333509885933651835091227066166660637961317887562753490811400803893974191810552820501718887634521181967498021039408677646367190096674687033190881245704632401988494868426371921642222884594012290067489970382466980530465431238168248952907013102202907768119204228680096541926677362693134500730102307950447493585689251234862973245470030200932705429810626933220400448662413260308974187250104900227010251640481919674469032042683978220752691364448652474176405238503816112358925373889314492068607324230797688933999521994241036206118563429676722192957377647665732961401526889487694930423591296349709401754880667328616320226054137014662601488647891689979500183729738932843731554053341149003371794619414687026453967335083259721799283702587551037011504458209427315404042386866564599741706630912320653180793774980624550541125294424092899680392923065758594607756475173270078420715492237189686869980942520836739983955299201371997331157646607782693283351016676447741453838811046442698250060676670633611703817464111410915896921955342023093265719999875973845508154981374844787191361709170990777285817378053036452253742499322352028755799436603300514491429871193736244599297991244851234944619534814823899363634240339629773248749958903641178647743198604665492548951057790824205799076687931845720717510760644606955656600044950998768862034273747827232118253557530804512638043577882575110985077805721562718741819489367919841980208590191742251006632096180868191011329249701006270573850450928034665344779413310092756544388199013928327178369368668590569821553737083049543905704270935884566653563170054691874625304632835975893449079659597289428923497440290673762987407870579949785766580597066992178233047516202359503618423229717189935612752118806217217307902947754516759389010930605693379912501968464655794182842639035872197371246846884397368488234404954717798160897414852086639361660588699622007682941694322735393450460101036115335797263524397784111069933812486717263388203195940783855978744256758309209634669535645709333127365612838757501842681890221216515013155535487999334413575846888453777235220967236418419526607051740588958481152996058346378140999172262121871838342762830979724009927155845439497693799262227230633230483981940597585165914760104143896907482853973667132888614860588905100390788246215387914475844637330309990921695675098575810931842587051317260282295019192519416768509608845202912876515434260288649535166152294391586244077413469809619221788750003557472390441594698112755374515247101644929411273032436243351200800303246417804268318595727874716821489559718649485701964943030154741932568879345536600371302424470248804751147167187063132265119786844448832187966609388344915521905474579664368513428113942214499066299643405192450380703943012012139256349001148505866719321881175560219575842775214562207355889929579227054269587246648008426187037841060724382414999399260358166908738459011504729769314578025503775067900681023285284139112145862074952217366080438060326634026741007485849426468173249992161243346881097867751802308656329589718986779603239342325974456555672674658065708084567658891189378251676658165140673523355537786173459181235750364524113990205101340131788297351822089044288748938536170687156982603940836889160213145148728162094207963095361275307011660814635829744690538574091801866601464577144194428274983920296888376753941947877043634634376681642766180567169962199242751796581414915588914186491931437446150343946990725789301166511335534501404046320341837707979642402664472571885062730867439538991715190028159870096823114980517634628458541826895764675672844284102985964739766053711436684966064883344541207880897262781490730422768964212061151582163792919237537357873357468273956256015421357312349239827000954782209989794711280277139581579438036435958036534408868099888299543450322250976539402375134075678535495104856872017894050769049258145915025667431613736758508127042075790952579543327795339498559236899162184699846484754389164323665439574637401910161361805914029289066399893456755348830723522544571730767187312812636057597851411301392825852452737802950271430984662169718347842860075241153429007610595397751080150046208175490703349183182958837776782086083389943349909155627083076282995607581194138812324870030085774965756741981800604086183499479769131720316449610063126705100027982654164529906397332901442525373105430376997127236486954823207132622733261494435253500874409031347320103108009580871099894443428731956081648842087042091762229299807827320564713242770411864209001060375649295331381691505967202870017182619637797216340537670696131264736005946596853444304696383793317120581774579429438112633492692920138448350936996641746551040679538375129559081250838115951578658210653162120791532479776397635679884789567528139785375095692033680256415740978742857749887772545498505271884941002250269855581485811660183930767759562700779382985652688903507913494853994924951614722434214668855766424631631066112918678572869424433208939975829987546558258991430574728511185890886926289245093895203340884105305834123022127336546896008374058861038217023860151139628339399262081874121701652063628531597724720733022323830105028951639809246050252978371343509845342811165350921813522058907558385593523894583582879001844789960865752087008331922399407003520750568306691655721028972361478270238415206896040921020991430705291611928923572677685155398865673697586083434055840948112014173335279692290936156079483681255631630300931141491496781101937083778555562159351805124069916438011552339599824204182756817044009205130983675629408460521011951843422685397544990542969782747473969778489524627037214551304037422422247295441942320517486315801004749215747746291136867780222938453381378774467243192969861769612295926367283494412122050566390399756177058180860563747236766762620234514289797580278445995990625732357915629905069178960095112467955943939267439937718977762032433071958612528039531146108762275763514049080949387914941160927147319408363563523974010602527810445791331377513485604851133688403055099005409214649714194848064832722421481747196359318137031447650506236558474120904826520745308424400655726131286226326169116993784010324610293209105591736349805299169128973580473356297175808317589193466110952901970354581639831424239722178828100624445694379944177845967358107991872284584288888407687658692179237280875122216177016928757168644054706003515239056964912555856788545848009021321152281365478089078689012464565182556000499167410144380411219256105881503707799317400457364614741692658417493344209330096742789421388201187826898627066030282941266914493056418567510129662541841582664033211633437335726690791610981101111373456164083404756392458710776903948542233381816384669183310125364153743220972625915939821913982341461421224745542669967594407605733849875347737818930837325995095839998929065558970204228994574499768119793476814150218415427431122290955059184585873465462297841128449170901691500717737593813983519716826775279694016189225673436286225762568263893794498704455463393680988708186777663196459076353821865359548615731731472923598604672996130482164185723255866181838110387407302923349717471857075059707949412105175048751649356603557274835803140355112130575009292958421617667311920736761922295986854645190882108104113490604938568411275589981299657182857912923636208217050685990946714451477097622734372065532037211666836154120327154361399762482322441380263729625757412837647594952989314133154853754008343214693364305211428008981889226003789955537905138471386475297466973459088375090973038744233511030159505261518930197309359321319843784133388018106668636731903934955962435018858643614884727570848421562650703028113812869297967515217061603250272388678619829139098833674070961600120514527677822908664392505322109751718876640182974033347352901367290517911398997405596199745859714206828318732319502841937060916436699796790528519023001053445801497712079503669748502361818330244480373077509403070516376695625914861159435028939591993560289355761476856839890376330004054700897799516096726678828898967156598040376478629641513613965053651782314543961795915555730399674235002373714156965638384200391417770092498451085100097309531893811987905310872956777087762473935719100030264873507095541309501491523881358844022498289270930743559555702699112722229038922396497625306938994288587646107090106171714811659753301710612151971761835631594756623591947250089659591066945995190483943661055059430356125098952237250199903233748114871662195197380773880174385958329878271129118669624573174621398488701094390347481957574215328172065630551392725350443030840180094044506540438844056586689414487647833316124088060290724584480807308190468186210187395879476943648437457040961419553393813040025543007887740351458177405306715827303353698386151316814309584047251682077766461812875909172292574315520921977892505768625271713993008070497912199145760857752723306205159798549903888077066271383816954595268504354425368671405250180371694675021113748881489156043034076901581362990845424434143063101469323655004465659492477799803362943074648109775160005441988590213698301632758492823678953918573080372120609366462560352527652415106693942523502607315273740586220900585593215701558227143506135521052282739296850398273668477373655424696144090459645864190399549186502173006138513180478587277285056368531519305086044235880500519488525787297578458973081921303881104920318120067480372270742471325346513262774498467232838524861665460092748617687145360118156627009012116322301739374261268397989908249798903441649578609854528106080848826550057084380939204923721910463191262698356603416942110493479315068286696019439888262734718475085987277080856645875968423540026302530131790024590519403875079307209207565224836923024225208918580528862205422964668147447717463411805388936966212127639336086531242696889488657707438531628596722520630129892686160386035143638969429924793709988831212565762414708466600364155823098662340608696324035116263643745869991174470290040756838111049034339380666206478619863365797207803558118846839716811986147866948011965661069447931619752972274935718577614401031868474584466121588890174001253237815521625824327278884815827308672049725971924627192996673590522134739121633703227731400355069549961462034550817373306201855461622683946283426553419349049301274928815912693534839621776891188110441236106050427337647739117371478986423753048661625606673576265122911048554434362544412812265605891961303969235534815675522307185644400339140672347886014013389596149413361016971889325521916720653474148990295827665706320329961524980606727198916581789600999608743728742169998528275682986391355986339693988190496647881106099909663019594610476586203076062803984011837159405390673252953773790367077206668549529269126288658327930127459242613322450003149306476931447394039455301869955619384243614383315890805621063874349816354892281995557763137076304918565057306112480426725983374576444116206961726162642480735140918939541300980967687415176772881210630138157785683781323802146654456971661889110934540496087335532917014562014696552246096341674921841633153719213012424012998952955178558203983337952004285627108222601077692763031089453209447894627858321788239981433258049983268403953597178144864601453175506526543165171775993595851971636437263841634932519009602421908021755483012190008791435726591392584103822383349507153698326148350044015934210308705307658840894109939406632813830933418447937998483302513552088428532961077802456877643707292813719210738314417578272137011080030294426198795827413300436765267475023421330400742276602136821065598357022230449179908307448415842432732481733940807607039515705176444683807318035660915475924148918159621350314481520997732700688364654619291255021837782426693864353736705043110488723256595829892941522001387707797137021345451198221157387402189856956026097003339483431760062184993121673638962703218620353940476835287076011674340676226241621841080798133032914499765521555282402331075197639374163028402344785007024316966238870935310986421724070750711305502550333828729149513259503406626694373971446211914334588065695231233649881725847052295236161462993500879780775310283093338817970698282822116361880789017710533554625423501151382058465777839911751497473768712771400723601747912667772724263308503338288262354142114369848005859424640672514112371190607347779071435156589017347124425505511921066848754494441110310015417039971805416199929346569467800722156582087296747688239497686912990736456633931475552605071403463506207000358566163717892430968533747870325257074854255598790103312321471427574225932760800393640818793986473546153153437042736919288819025224619084024892846400036535525546207873520643243289359959213408167825483326730122534430270864679306024925562059575271154210055051276486663597548792630077118120271757103871884297992443344422821606961821400506431419471243250747168102700065886047130555247618878983175683005092895090078202376288017092470114005916731887657105210402102673170139338491265343218332518608311736757863581172284038709961801004677475181959177473854920046823180756814095491165934408201638558618163527136290819801678755643457627930217977552129871919511559349146088410562834587849756628988995082989799893680992754777940223297794829587004589256768477218280352564119397609799805692842792224921130470946949402790741759038657648834650651684236871415807812506269348820384324084005338518243371030625966899907432178536201676849487167924913596015434583328620055599636153404209142475731200596943793342876642835381060440629325728048180495458244284806838819442947524557265338327605447573996043680398821576549856025936985251158688846475365972777579081913418846795174862962065442436715397790750881970231849703186132704593422456186906263901516691730983595759628368291209407636862149809343751367391599133974056634574490201901572352653341246007519978475907663226458691461434771593537106656909048921223244802092272311898665425373691767005430091692993057689225778001354548170055769173842408258111399773039259942773980303110171029494968084267940359946151374015916523223198526668776199050993240919857300752191158188786860744245030426155054827448029997198896413254434663986055116819495039526471407698624182112222586639424863840224194683144742715062228625173247240681082828576112557613067600463131185816535385371817631806942758103000119964027931558198092738500680575534408785366737489676026168729502350868529349930764523900271190365906775350953762453744438891737703110737338347388663094514051734310759403159041822712007939311458551194773965977754974834776231039486633375122547017343871091845418437473475499112889625791561947678654949754987920274623348480609634387079019895620708210897641565479699110867161619113180961553929430289732715279954738178829275036222374982221971461987528211514949107444915472483390256522582171462311037278685550000654877514112824028040160050407303732356727670075726516221215504516562646931695057761137670331086357807779973025309728286605970634889662162468552936769821605509824275852179564519912507546353369709267516606335948257902282821528638522297705343657987820242687035031651382590425977856984306272271110768568460590026443510055854436011486360373379025630447360651798374623184071414652317404464034009070231594493496979488398101063010815225359111228308733790762810108252551014885418205663969238436749000309524074543917772923759035659390515108487627229131681402982650847088946108231727438508156704624173520701961982153642115142734390921736855843400446324790489252724340235894098919867965989535921403957062554136840830402665022263104988736836247727882220084310148481447497105028185617770804806379468839209164939018979971935103374244028526754322898331628320353751843839113011817165046818020377840513152982140235282906443962832455028459553966225874951859476793631146020174710138736553933531837721189792233024939934681953587387760462978295289662421004146401694622182519657847745276581535889690250627126379590245147279110176769703881484884526494288313925024776024016411756053633342821000910470898206896078244888160531776285579816158479747859774591463658789304595126105011887471991635887564054481600611927729705885796311016500480406629122689072545426369039009554614190077883185537430286380036926124851803601958749639011862540201195020169812066436237739655951122458365460543449839184723535387298662517368081343437523773789579612113186121484357889789304733196105920244711196755314221425232766679837702218390027742852520257094468923962948057693060383676362922316807728771802807943455546974691140230290141618660332994890129421987182783258972144911811856865807526376892542504577599197440814358537061532530859531063383700214516505567639308266006038771654674912324256059061334863713988948177086180862687682817587950974557263194529038424125111119827699482021050589327421064938687559001810334229012093280264636328394497338950346080157028265823540041445539915247677382016527378748906872306017201836745982944174428200612463955739319767174283508519100794774384937996488657624541669242678368069340774768074362899242336379995780573642164505096492941325925713638719315998916060130017945692184260670676043424616993073338515594564937663956790215799473033298742719132530723270911342971466061659587567893779855707747462850235726797563784728727075835731528901029813898315298080740154378481854684072310006296646217325458093454224291765151081752621337748313790500810465720974097121098867604842100909421876535481350681678892098984894124860990957848040820031442390621922589766310469409966001555022757917169436692317626461511026764766477707824821015893501916148203089507535820201456944359063832102790045082050388126611811639497954966787538712392233355877400753704790536416348419431721814177102198122944420315124251396978483635114537537207722626799565010291559333170254765438834097870655642879147064432671470731832644719374208269877665038465457759751378693811668749987316791313573061846907437155870170820570300727880924605167350064717361542191312876517626448674460645467305815986577646181121631731771829418719075472455373477703583882014688028535055812593416465106723071389310254488793324054331092596526172241167723615173736675041483114214527209506425501200242077636021626866103466949541119865388693777148078965011663060509139286521834081993073486125723639518262573435503020180641511169186707559578741148147097145149287984552823496019393442386465310351563106624091069558448470426156847084206793443110388025952026385292103507658160900534477402153977559725079003876093900784467954167030643385629492400499307991669236373940675217839768200800234162195093520151895151817263388175774847191695375644973444942533050003852852614066755656111357494939665595111496656011369384877261948821299190677036379651764521004606745602338164766710080126930350126751881846531502618606973899821546727559353435847241951665680977107983146156751123850252985558697805313679313803754543327312488238894900682341570991810577459983083359535903630994923416047745453665195641169493591452647300863153940925972213007361987495282668261147237654274825335992680599398848815653471821047091633122597068900093210861337970123209137084613931872198077788648601518215663998850674679169929029630166983215750193040749304078290632001554943254230422924008451262778577013024216889912426923252770234259748831134918942090187590615861129013392729145895420518684309520740024859051562680179033665835923617811303682494838531746785330108774912956446062455462875967557079570039918460977417912907680256930695670257061466964150283265869841184408494073968199601786442463113389908955628074060616570528668024532862200399157163857765388526042307039940218460371542420900807490519332435014030395729390722284113128342404203136225905122800804703164637267954681704579251817333137494189869255722785806997945057197515208208571217860836618736511656181393359854530382148575076128822348914162739083859052670733940319161732202233425472694656390416045223001503374886005611157615604061575451770022752851490485639794656312606576575223429958797108783628167174413924845101013640206312494586803361319298468553304565782276899783015675782425763479142389263646462771651032515622234892867984327008880200698882293702628736648334181014560563196140964481502964905362139832308738322366298699942050442659613214454134579176447556899229763733973832454610557347664495979009242764351298624154825492808949536394995873423373959999880785249475283257790798224145225060621182193395923712440029223711865173447595968585703645692684305336647311682289129511420781550548451670987348576508085757916191592042958060931603637347473934122045733842235973059807473633047606388915864137315057824566767051279438324747946102586503928954522918512384262334048162910250406182431198535096498912873632292838496926240223220830634578831907443634859611561875419390943385643602713678988694817832731027255400561009541245094961213176097811077531202507550512512671078812767672649254965748807565578945831581874919584174251533820756774871615675427285202832081502268634863239647451267130384416942524387938196897905411474762768642184705700263944715386900666513691230415159349034579092273019953454851302974361277287731532364683777828153826695437012014840436718244710444459067199836146574529653942505580677370629477488079821257585825305381090218941468899828637604880323535146197814505875209760565016154242988512045368865065651080124516347702709523007479106357159997543777632552542769948756592266188572204057748903749150279321126767604556840356382733400093773990182860582047927283423807633336750838854588563494724491495891823072426400693372904635008237080113612303240892911412156071855088980435156465593493545816789539151641186272660882817140724969496636368200418454439545083080191732177487048946178794606537142222077001847133336394821720713505924297846719624797470779085553992719724098397761684763798071096405436651360240214721744633502971455206066966805714393995796762580649007402998053526938161897057408904987710373110804451416044889467120479467308963398442091944647089729286813715148872656906022324599640273433004608368235745526416793889619381089572217652932967087680132011081964904870758932278288532911120495398352534332196001077472790818548842093346036680607787108295508162239799229510500260537711158707889393900905404043237840171159445154420152506214545892689674480715883591517011137162848485037644827817942657854417782351824181217236555124095747253318776677121379604687736100911508559353866703437204148459608482066872621776087837652426293267695981800661865043743985806365571203860139098001201178059232344951254311409572036198652957037379373108371592071260842827881458486718612610127475484553209000869664057633129216858825557531939095680238766970400254000556415267057579746310359873228969351752912166770370780349753692689508042112166912209984877013734154551854293724947563479360700126297791366565033286879101228800533574071839992766211263504541715258347658858914269149675230595370145813720927565144727301326378418729021423057383841128731562079218816075378016487630213251732975381986074174256037872404071152011162397602062689684183268321623480442889784814615108987210158753103373606611575053532049651342160598612042566574820425027219415311078451801042667636141233309852093036987019124427833442320533940472049177526652909409448038357950503225696355314060511047697482793693146236099128034429101367068125966180042807272275683772209316887545646562461874348572482832242468729689080878795609043965280591399251095743744506716912127323625736387265966104674446020224550237675331214844067227177054275150933546338674285105512102342886086915946458080704609638887773755873648009237608758386938505942178322256775314752761967912990046361347390356394848049927773128023520353597526824353691429530791807245988027978038638646792946228996899746548059376754497033736552646922919823672593020619950230967417469951743977986508595269571285827816127698270001432322052997549512884648003130972268844465831947600890382607317019260544490301376510183715316124383592790621628858481712286491165479890684212431060372285414008612555838554088159652880640156459683807483492510015125356809017975016208139578272968798928050259520329380741552630086036363105241102515161156173596306841544682286992363474834639205496419939797184565973873258186960033767867009157955415465696578786858263000503077472520791157186321595919571422054923730839821178227892939055952745846385749026732611801047853167118286278068782338329035004886449886327261984663966271025934322730100653889746529180644618928906807193484500631258681340559038119406096305534170402151708473374728766688230378026620346651111072176465141070867383193964109747282075719678447407764820732311855560272583937910669813665900663481204902706508320791516417171843609100685460970314362879929789094237374096644437920015671606494454247752757341826040427696090791093562704707916508896494671616171519164637496606363751445221053233584640357844981016963033646538977844945600944217754204590104482191692931590089246712864478107823757721995337929265121176999049953382058182149083200516200729468582135131149966854642044106495530230841246652421106465943956125926388294845929339943789616935120071537452193441003069228091237398483224208823848781442819209003620700546715559115897195958621370295350368758532931746057294841677965096459825464420594395974991922429257318970418160769902071827859151854699209848077635092690355297488916013503889332773050470742742355399431498599293337464959260136698725609397033299402192813696835595730634987698759944143069592935214794144092541835083391288204978948421668259187165546972648677739809183637129925343273861030576063887984123063758763687995582632831944513660489411828409076983664052867317847269169978815153717788524303456988013986640394917070876495263907097773322674235537306437470861004256585856474836670985232843859442738903612958730482342163729793153649817311599659515316946642751116997790443499926908674173967970928684910041564569852732772466853503809426885920701918735708277505892758063637380872343063661605137306685208580152022627418189522584626856754310055797949210335300273604982313647619281284099043495397138639387174337067114431964254855699516582691755729758561616942781910345206207577314692906563011544468614277200366718549517706256458828384743116967217916080772785594574004905661075022211892606856199282239835551413791286820899848325052815542074605677541722638685996590913823151469556831946922941336309395348478213357395984819544703019671452441160221322772117723885302686568840318155642013475841354668876834996471058502991312265006116732861209596846222278651699753306110227360160864139604006233496083999540996478548870520984433233914063145975745786193792869950788903180019786750564051930930206814607601942114969817416921314079116548219794797389399170828211989531238459681685946303974229480102865809868579994131206703029129672088367089450292367870492362389468161797882341040787597583385950387275956534757198813681540291493237917026126806701708620624638982377682929963072594558142163941431024879556153507196276128363257902230251516070239963335879827521054584525015412557198498207827118605311018101852355673297637524926472398354593151609208492347417324742997146192132464303321804332392703479277677282537749069373124973205845304541333181661761095914032397390617050907833149445569469981200404123619998907748710567405598637645763888416989893569160702194878738532807866553470183131437200354304712696684353240683125485204979651754813702795248349719887865273483941045236631026922264408641428636679139003662267660237653206215643843146781554724444736700245745942838636373426146388856875636045131687341683374755042179811032617285340758100811753831576701558667481973349340609828776079185911686701580563212487696279879356894398599193760625958279262245016317236403532805105142682896759549541031819559474056680002799938130907590790676646474566120585395245552100742815207701412580438995707259741149210318155563477157462083783767313636341501201387338489854157499308895227492461175328928566237092743975970559151995569493336328278021354690050892684529279136897661441030144853261305751055801302041156073326337720243063446482251741775045588516214825980746622129537633339774604311491847220546581564110567006223769834723629250940016279437375304923188360055528456064990013430671191077225824273300993105469348593016379600098706996351736686116516812975950581268245901826105760653499124774486861531667199912153071145207070156651160476823593516246543702047598139961155729898290283479793826954970705329027618617181312570320890124425566980452306581199974175305132463147074971305440162516164293758080100428622524130584083247619528949001243039445687683817901669865536612249952252472789792914662622221843761630940512396245817787826327876532577444779340064472873030079813679967615743673047278945625270970419623007597966538689422346111981600669497971598726051178671872096167413424289291139274729632655171677591807398900323342067379109210193177787793680506555985671239391039136906404877985317514347406164202237358754837981419477474711625851176301725350262551109601774182788512317757808694919524131142536051785020123789218012888862826577240750823245722675112384025752264071281973115438358477865364547922878112754658407652571823339129411021149973806330205639011262178926695492666818307046034661721984898260428465434803998563453430017443761920876933554798094062706933906805089710979855188706220977704302046040631679871213292644117500535870065972170320439668257701375716886120923400082221853090024554319931433859887901868043024331310976647628688393430637793591573337455888354016226228390366965708566732427665601791200186369882115275769931410242259484685285629675827930935570958411769551569382310025234202941487143850557613282644394188559213548885786789374504837371438092283540987918425390571855317543003835858254131191006889429919537507458355356709072283530289144606348295102803572904644048423968081694262696496511861723592089938986343916061185598205462194700619175126776007967341482175684200577948669444240285626141663267736280655762158380598404631530498435223040942400814541382517801329989021572134954584848531961131190836102824521027111982995905212915429466234293992244114002469131708125743383639812433263461155086185335951417069889273245536353824380428662130956950080370059595637582692470290862474157533582144213186161933731655986132770939958512847284448534099277445755939735541687112514539933395170229129461341707502915586960988808145666739971604737739683726994237950841717599998307550187470237034721855883514291904275735542608500650923122313057247064875181273203712237453153823866970494366490385554108807819290160202767222654673447283602528558274839962927850720387909499205377127346965675252357954401876861001059339803910393824032506704190525165698206949997418187637620917735192253361446024608371316060019884009919087192522240408391988814253619496134062619054658306342680159283435529887888108120363389585378136470575084475557402079834185860472633830150971135867688908933289199957348417138877773672231801488503939009141795875828011276504389241353342418303725095026061600656956410990958874353729413658880701388392511448636916572645432589002905137471384741508453976287489553842915460757210894748551087093408585767327964658993508379818949248273008847290043776079364886553346860372211107242690837806921264447258043780124734741935631908704934293001262527191816856097978619825522272251275915801672416465932330476931142724011889540959376604119816672725637612447478913906474033843696050209504215111144812950696187934885693508058207404687326710385417215286143568258892088942370790919405976050444575672913753195056859289041475832864442051373908454147438334883758738245567400235775730879914061609974327496104341214396991916523851780991766007777930018144566252052132022828331551519408508060860183306496162899434005585904893988050541134657349233486942537611969664511464973999953721527252757613237635913251153348768578113505705763879969126950095868205118632319624881339633536176153104858598218581042494893541298310238908781350204663463646281381293234179769384197983857707203120558155782458592244733807843228062559020502108755310828452159280568566123050603549583078719034461351123114890953139764836281307696872454257361507042405915909052815073548217326736840648203408163903225506434686366071645558156809132567321987547030500459896153209521367893045743881579036020733488940735040481299207355565556150469994796237138832902764116908250837853820085469691678448369654821474032917918258498237062417238633422733338025740945494519977201012282945795535122181291206059555048962023149420804308672520462994294827046488258742729444882892873938725593390332810071967952264004833174184050639029388744135929074021178301018016552777033636940310925273208702282154278488392474716510162222240265465723368233191599769782477810901478489358439899656346088697388027472216209567289176888580869384022160762463355383403233362711294694916625388335502434585766408065485744135745422761830531421277352876197254353880905037553074473847743201678269030388745341110371573485330338016685261361346695735996681099235189938031314641508439981166282862521499554397510696624009878720936196296864629533521494124929646547613392147435727109083360866812542438256352216645234914577653547589614633106507359117152425187314170067127231799590618114039395906542418465128765055383649823920879327716051262818405438198793054458804872255991175614363756756182310171724234696719365756181100978830862874866787776388247099004420204954609129770316428319937607051322165234824401622726204351244322759055998277195428391571715947986901411325563545821746808889375799681691088802631645550509453661857409571028745363334386623815324303844235395043128796404766004364366106891465120058604919041294979498017129940312259574076825374229055431720337476601906832891775728731319577935885226736842341578651333123198336047598686260040672546839858726948197920398960073780762497023511743617479115468231875815229646003050781183497948330591000381738258048615473932379879016662108194274117213979820984768006599881088139234087722346905509161712403205178672262818323181304182042423092787284571149883068319307680145868966221381699397553154780877501944572522374926979428206470627673542238252632994512314567753648988393161606661339836340440687948427301739832522530739274209582073018810432542881007900106124855537400573092152615707726378114326028881670476587872885741735787750623427043299542613380954082359214553382433054232022701220626398669460658712942979082510417969960508429182564355831858616890822728142728931100545687784158650180231180958407774309541904301148535721409639967080841248590185227547985346761672715796227808287211677631113321876474692863456539316020882462960565622578287466700292057566352022158648685268108295613846226604506835083144200484737926902315095357272866102192323162751711553122212179271476981701823951784214959096852061425242022909027368037897932321265322823483289416724435134044695547887954363029799118507588122515811704056190345604955258922929093560493787694144250363990374807451751738631558434238216638826002316140880309337229449260307356070217836389486815936906938931848576788615876946000866355003988588557118472925994418898350175126917772809462434753023930038877938005028951335577510915702857592652557574865208436606136489856367248114593159958732152514993271544607262621604285111861803012395207090430456454215665267384181731590041108039348166541604009291120576723567174339960543979872955018910178221391519614346275406224270575446812263907199451327217748274027971290354655500040602328406365500143327907569525049866213316573754597451869117227914138993941802958413152606848556415683528903467502945381427699377290375960315678127703155911514800966462043254531980800593826094941295662124015338040815316985759686321409784648280662483294298933137769372529786932024590324471922093595307711738972106980721119646062224059591640766187742028567836279938364967441594741124262266058157979460117963072206556097182061367317178461365607278815259146985313420208971690989826491671013975335279375792785364073877955664273269542062489460426656956830723892690178672648623913899301867541548191953068701937004835851192995665975468436202050483889337523425340468524510831329643870436827738890875407458309524944199170088962192497120249633817432219266630067011725720546646096741553544131349787044275599062747328214201974043637870366922872613888243066422594462313444747317700467202813579605947658188720959372525567066895846950467762282485514373486285592448712771183313169959289712950559334663309447663749728199803677646692505387770069821830089572662780124692137100206841548386822652190886825836892729614553729435423238306013281004893090244707190752571063616518258114616189115166768477993382645173039665436957744826249946127761645101554880802859661176630229297079140020650218705321605660712212251742002950223163590383198283581389402171389248349174979701816394687982810055374350330645925183946379414954234517833090460705324013790962419592691244461354267949654464624945361695782119313686680760684218610746803055443437650258230086230839490593260664945240997408356542445597899398051473405457278232733830926576782270185847464665720000203926071200500487673409051862456465856732532534273161881386563156684530055175772984388479086858726458681569926488094995544346699631638683623779838086995611315761068346891609054892526492321761323766424680550968032851815554820723583256517098473924829763784513867049775097049053745679884404591490227662019384186248840046219602066655782601974617072671664400358074074992475001761916996615389327925191338025001033980187681402591012547275189734694927759545803681703327677333534865794874874973657106288484850720759631121045044723615134645260241470420304733680959550462319483399812634625028198129776630314546755523793759577309739019869557890512458274544776705898150375812863976610742540353480217983415604812076667191715157545038189812413078140730390709821697044534747890915208342419768031876880721505892833660528883767902547107380359203027765167247144046267690695874737535330888991193796410508059217441310196422637389314127820436994242860412512617673159507169457499903701365382449930208367831832855226775051818844625982679571170891283984436857387533980736106078021589694323804199758166108519568087819044491776287956589145532633567789916197602937979003725398053820752514272864966038387845030781616039039885759971252750211220227741047708826970182150068707624348461900944163206191788928102657306335358819498839249175808274965230173856736242156419035705865616291703532737251891692511560009790860846805997918809511110824583180477623877258550265423844231968342525164836075988995631884208917758481098526163766157900834810908672472109937367141049077867061464965277990329157811294702805359535299469794020360927032649834482869882296579578796517457973317193566102810793079098938151927567016411595340883326122592094412161855674262485871025049843761585709896240100600640105932799914509794287481423290448924085924292730397795845395437388539415716452835970441528905416451698473468229210319004662292224638738394828493827405922592391175224752286531513912696640164021823024920485010418232096971248894187118691363401240000048967812772498890102084086191153220087533484263046102184734643250120825742653724682961147713206082063025204341529406122311297865993314254706770858319488674742526166788933971594500397639800514333010519915384599884380206589822213128116553815614029838984724436134082519213367992876322678843647280714016296812160684307553937724439812102910286643557548780872877990680950368437593769907694566760312585852207610221914439752407006664918344681283805977601814744457050478412823205599475927140022393692690751997892835317849967570205276122410487097347640267898090532749162381389332149768873918200168825985535061808910679073647259688358784091066010866873733399190761827235855266953077537438743250059882867833276599962598471226124828963426017694079216229997257962107004891592336827487776225180412159425923406170057286162268935149495545220468094573021402409095641586653355202930299376761244078145318521188483690783579695151526264917533796582948278493456108843247152613949670336523369081603716140157700771472896145297907622802359460529520630442268087146067054895104909505025607855356696744597355262697180803409472663474961154594166656027450166867997997549490687031881658843087367898800467705342618188715843026900813241982295837402391849768344341771976033187134742844567625994895097500518534290390227271526727568314128560735982601333196710657104597343019392811550995160172070485944595043302476525341562570676024338507567499800449960608312771801999155086923325338162100778249732724170921418531697582037964819223886417561840254784894990271288060711453180734220584210301817957176114866530695699664776442637600681341188508699261808320813781999379670429077239019842131814933355701372287761664614095332566316782456622926370009467651715349201594135988845313113573054199149877851714301310039175436745003579289628728322996972870920998248194059690887544506807944394587408955225090560733633701318489001392227190038861455373502769522859277589705950310870850560441325553728587747120870288131919573991941754554122105040222163002210947140633908070536861823432720981096789687795682329442493704423549129752337361628994222372198313771623903170502575418549514256163733685020417700702324306556986853234007798650692471295365362701419315139320771843786698766606796227544595748228814562501446174409446811700534025801036437324258072418799154184150315293605620374910093522518898014267089026075218473159689771984816264512292995087242214009789602820582855852918009451525627991026706587950861051840858020821054970603492419848295110742354799615107897814563524327024368704702532851791838051130507453957238220166077767124020228183922270872591422770868269029065660726180936044825807891691646322973109873045385841156893956013429618942341413667511456468880868662464763120728983159126330121380516527069620492097651765905129724152209967037768287286049973129717569986070120676910620341490614790620922438117630536003934791559868411248706954629233027484921201752724173631615799706105660333730764630197228663725147975046475604700985161533505701202404984924839539818656152521128593568296762096065378413689499589190607538259776565524827994704278731324731215475403825334109844952989761649152110353034921789189385437522573028577132872010145935802021467266750488953611900281728074153110572204174147161053462431261476574963483542454594633525168692734721239807006482756348558260721807718752437038892867611790349583838742387590513779762802784925247068637934853023843817621753440971017752030255217324031936944221392007395205008220496910784965943840847880760622665214096977700555697789985503016321726048025686758860906791083487129903765739979841076317479930534829603870422952514759926245721120572467472926803284682420985941054577101802328098000175988524978387444313957039447876684267730481489132574745764267172932106888442549811839009223229741139708768140239629672462482151156923493042132644524376971048380497156837488483866173254444037169887505433129387377128491461391001698096584022088814117863144923889831785346215528615013997224552027239351798927712048824106308039540343263580853960337186843512031581877041316264202612175686386445663988879846687273931027849283466550110412895099276223338464242275000431836703355986721204413264579565681686635417882935245950619777042431491816704721086391163285659282443000311705767574538019891687106552918826147675442109979140051822243450046502521884027603955701341558651471881849301395558636459259098177078098168895439745919619096399381187896846056994380523768202119378795550529473142528623283004201174066094399130834307611987082806827734561780175543635743062067839362935305329639856151846578018169355087612020753831633188951836499888907411759229440708779930701925767791327345572018267379705912653737636537931536377942344408512000727698232141000190563046159156211199328001656130883038532683903441621146509857448121588752518800317181596210046200703794848397384875501670495102876068534400275368756357524827724371330129825926163866164325960112915616043840798087622528616599723400247773831841754614732939696306900584984359585746983567014056317887147576234631201927589303079244033944395533948838672544943267564778799685960805308940266540507095415915160781945404971556352887338315823690563295471705459874254802211161553549163340528202692356485228805081292893478821964807891331423436904902822322185034669100552998483526351778294354931110632568807452144745157492349893790899180858284659763377577352038793512474048619867807887360104740015223217239429010703202169352633289885766716745075313196356556621007233189443431538679299013679497449676429731301277434051701291148882854265697978453875739286989194703888839890056219171902584561326957161491369572122097907730360192100714929182366977432044200040299032233472522577558952659739786197821386672828050393627361196000709891844874810598787094129036970830766650816723634999358657881149241626544483753816057758808785201966631936108435609640402636031922530256630302810306391542161731146993787933093728794550722072769224982232448900470491784534101714442547836834962414330422184008645038081226220938063013430430184591217876417932742146973757049855444611920070132626343851748949235042265338988723483580600846461829379024552005223890651925879222858181969096974870776659463852263371986047588767656071934406025515881565473528847705665586766517275049515202141157893042131817064320677893295495863754462141622474860774511333265220681732982771646898419361670971253968527242383659936851439547591561772391281420821595094384371312441859616210701748490506018644228101113850973548820561421015254179731756350922691065266078183623306469641562583496866032425865495423562540870634199665232131070857804705500168665985479050289467878426863268385007444422801054432017909399096185906248586856760797341343461418899237702890881944853254782900575982996516251952690598435674052103836402933743140139121523451434312302757717825659589826441565112731835701117255320220771923001397861294842386867454645106679626576493703670622510953297347805173002176020002285562840349070863922500889060313483669471724138290686786678577464054628078347182472761287339314082911678658769851531029539266927846602129608796814883468186803697234954899533538057404665386891416094193626016756419953879830737203594774469810981373510445316493821170212279740750691095434495510853327171579431503196799490786165071411642662283226115394971549412132425525659521025559969607316920729793650130775555045259524141914803894618826740765370423761967597203605311114186110218400453953771831186522080013642396686741620235698797809096944910820664609223173821000869198991847407661775005255618435791849561245273448857993755170726696720099433146379702350166886467314156155793492640878185928446354380484771777347038475535413554942363046255908529730771716861083706221131068452031908266699003323376060399354121851253030325012098688013878100092237356026285139154727537583005369281285267587945987802044641026522698295856650130092776855700812507546697263976603864786353175633678353835105985884604562574714940278061962833354838284738311167912818734454897219689049082742361221379639963468370350084463548584858501449165728708491174204512215454924812941350760891865996115100572319323644169157464170973101278525932709692883075944964771947883629263753464683689207126976615474208684683401340626835872527924297799772302036971552460887430977147605202997751567580490378426642511471825969300373919696405830331251283653961699489618350929351164608399869427227750729359115448917976477398687316923565301948745290429343849298010873051527788632239483527115845400462273420301964103417709137007942324943741088243387776556360418442300753000268838467446662300030591875057073274659131809458717860936810358216552226810110688781578286257085044324417700977428751996308348230511399504609881919911546862134771854754069598448227427515233485165758595261955016849236797196678037270143465577170206022592961841907332213674696202941140038987816275445952722545810882489472817752980790916668509235885141910541690450986059996241839494965144187605774968374392072940585383749115179972208103243086996131786963633915634115349375589248438080675369842072575788149451766361350806283494587327886376990421276884677726827722908339607433716038879024358453875532980659665159794770987934831958060798267839938502362458041301766331160576936063554991289443847288914316346086456889262197676505941140630883255628464610807080818164178521209506350921704699693022448716753396545989198863575395515190019886641626235095511083374561959347115497265386384737863191248517120317403603606291192781144675110000782143525495756074501790350865841338128355039822203637180347959677100027123617244563268113635347729086452492015978903973782564276308447396613938695731380303226414820018356999785694883950423300342539045400295530754948822687172674233873764466945350135491873735294030922865884609094473243251293311362961314334180627880321259647942886651315899186796191251493962957418997618962874821924478234120107970666993190108671157346291168115993669380359059724223536531891275151644930661158850772320949885178376259896282251071189023607040336929181507333523611959198823480437667874469749133934810519312253419538034084051887240395711610643746865617371996308143682858147811777097489093030439199007177332779692157561720030033011110631124198288480143805160079788498100677811791144175169555754643825780698195806717871759656844268124625516275032259226762745828813079865305266283107031609730728155058043240660571736332312556937444842270096048568571845176634483349778823005478815396322578911169167280503611357342075165123275004825913413911952280768562888425627112283454656921405985897280741712105030700767872153146545040505411927979959802974919806830354090207214376789740437860523040170162806502760593669675938842477797850493988362749651137231885302173567905836297800132090544014576106679978169217426374753578634588963251594240651883171519229237872878447408362623749838175624338073050563114596351953256256949969795103070179273297803841805390266653550699839491895421299307348884994112347636312946415173646705586102446340275759510776720950653666200795814455437744729879791880318841812915285038281673269312768978181761502926087124793233222277078579666593621230544583592102872684091627275987624127869793739876871173536590794860393952076270895980791386097611766653672798201618330040274655215469869506879023738607294683399215740995790410952636523273338722050462723680047837502002607853662949061546988779438833168330167638086678129193281779984047800065100066833824629765438464832699002974548635130365354293352136830793419179531559296917990661318085866911454102615176898847295592781748665058132041115395933540960604525012228185581567639129018517073684099838536355850074424750561945954358846167212646085314470652537517383187379461157967617843949648200791499595051126413298397537021239443075793481902440937393094805531822019215808394160892757971738493924209986623796220759538390487044010183117087454257832868971426779851740074392653530959313472819894854863567076076302805772292827696344404899369063161466560938074744784251997212114341046651934740804311587986582264130401957654743984494518877154422295284712347541989243472630850332048770445866876642260986525678603203485395418036745669823001282591943290914102211298853745146959520917522986068742994190684240727604722288494337924960893758435557147303079580000973380843368048417485513216812554641954413772899061076939898026638602648053132888172801404307520087182524231315858521051408356666751538359078980757140896559150018349199853994913110412927540385082457874032481831424897070005746755671834631274751626878103692642884267985712728283496417640147410939274390016456326164482223605067682868132488183963643148667028741056680033129241485047761364650262139761707711278377551946734942820329082332222308098213023443817767299362399094603630597951120856061667714636990870107735117384690908052533231870786636716041169446792700636261561452902050503085212211262315636057431769385114294041977267713018921206207312019091031944119983779740027813052430309931906518300268782969198266695178408604942518364748590125576416071300481596176321349409543766604100815161400589378963070307688931205121854056811242770486886017980891589751645263178646780877812461035333715146511705592296163526817063672446769623972958526321057345327584912782025700074462752620187712529694145493173445879613838007536428909780379397101425146923545345528965992915306149332929659982707974808397845112385915355053849761242888099484419795373689983371639769678613771116246283234576205527493794447500778546549301875834569268344882059108059009167483710558079567572731743028781083372602951868342176866682118297402810894331438269707743301720586367319543393887462192478510157998410584635903819368798007204450069404573448008342281903217352284733385355511313864472329702084190114894811689513409131759033799016546217515353796018126742924648429494593091178456244105932375525538204125071046789410647317380953076587438010692713872227235440557159553690798322111950391125878319793655444684828262452255103740493023111794253980376714739399965436988137050593662215562066570294100459847583228735721729866140927639173836899501199688510079879485422146382226202528239155701941844173863016882574304621226106345589300974626233351211226582570740690963777491763209975726140126283927815686225470370679896788445888099960792954183691881672712392800762637536657147907113338423814455002639738883021396139504324842135157118591444235114842151714272612332078085191864345620670298800762561937338925577087422050117019036926447843380361495025519679965455795065510409467582660847982164922558507345717067719893708693961821569882397356331610785247682279649933278814054134595286860066884648687067852653809914562749484827840732069810218898442558810053566148726916254126009643142828294905776549782043715079352568686043296823505380608014816276914514079238778694768241850504611303710841901824552331068482257578579814180660434477381241534688563767106760547895323221220211370523838267428551805672830347255928642136948461081469292055089189147364830479485194777303535575645255251776784858016848118462853595902530818867368795808934579434351561902852895032080954369927005806012397681331713848403187348496603594247919826298091558965496679981665530624115923899604690463418509487432566734812412202674975509597635639976135899469665685707148386608134002472799266210567783642118384581825090698593026504627369829542695018522622446630057661106689514387581283988183521896921579436494885050899065465216210485525343213425900796384696085715493123910199650738902302108739636079601394842790863257956139995425714285098682654857719116385974477472570268081052877494123920025596579334537673567986662086988103210901643072361809461360035229267416405287418055610790918130217064392883340313470605210810727877305536184649906848223072739802528315609539569617681268043338995301187957067601722568192901567273352130005758030347782839578075988064154982538444980949252970989470777968742598450585533680282783697574861785347884233795551518034074230838526302017080035854975688490658838480467504577250859203729050740380732128738754572562300220855597755577840723607402784816264927157253913359474978346466532647415022501462335061209674922382267947547358464024024889342065779415200066814596057835721734014467107416701969559604244581347375916976002798292874078471248589472038949242932989035309519337155984888903066907283375498556366778903779288491201089143330073928654509806954278734467062764682710383645673754709265204468660443042182836568153892978677932847220320138202892437868017403927119781054423853206311601935291738541818382937043988958479254474800072976572947367424575444779134395600063375440516120130638374657018276385825506538463542957193325127313882858847500190482283783283661605655260957508848091854618473321262568418058978176289135324712183882382226520812347252190334677282885320135981591568640477330606958961446542791988099290908866644230229776397426785001400964225224544033084658867451903428740909626741517500693595842625985944241303564168398950035395674988530260437788090781225939844212861708474993241972101892077590461659874145958595281857982358487198176068901491760889910228301971673392126218670300347895070897231847226301130480150112705709559730904708332227116135347576481822025386024142967863393767167282151124907878908001620103910693368112069247058106343979398166016918108912228891080179908716340547889900848945438250070447768477250965897401085236418112812059707029526818873961463769171024944235730355704110388360332920898183208535842600398577740123207663995179715564490217069732920362521763295111129999996473699566769654353353077001077595572512719008666103657491530282907988958306022321934346318236754829932573435261903152239043682711154531568271124505477888508906052101705773369413658945415542912805018654286715559835258007382963812875945936556555852134956002885565599352931007074836517440506442513845113307152978029391556134817885902958970469743855459054132271440779916012827312603777856336743849631969142165738841566140939784109939142303260132931838887630900660148693616658189382262195335949040393267579131498299715316521563279191347016336938445870709066355628243202834372119197719112617984326352584906930545361890128538005570834812785965890709924954482498040343829061477737422755127025489989756733626788887449529183978210823152601546449962788508195027272660783487461470243665038405188668503014327063553361733766801467236208717169631673756465716391431390658092526487756934129923854195332217294978222012860106691747274494568989527553246346421395490012922566226916990775644461102595277729726703202419023067274248919261660465392685641080055822850483145554626435183396097356364572833899891148342608879736083069449137926288804194712783693442156362614098815088913403396608048738718213161249805530805514984971612144468894309707219614993486271839878559354361106678720185611797756010073640360567008663982312321685604398570317888657579198986648863576511806810250033071191599410157941378656172644451628321323124554596672900973980742907054939807203554708078913222869358573715305352094474679786128959150260944821228065773717875364632091444478658385851224554982132900445779022916153377089917210988324668562080948648975281157563857246897619845129346375161756221977860215531047854153125131586074650188455006872384401118417905841770194498563150808948188033267524106644671296134279419261319289162417569588800294027619387308044233810214829468797724298137272167475192047131822124726382386534870862998327418797190717453386303138507400932268834328726008089411399327193737006768392440957809998562140416252843276510842296817367674776084927436689030515185305403316058799783662327395513558018607411376080660879837645516282159429480122228498761698280018527744608499141621055392067037011053149884220167652039612151429030834720866870711430917205658496214791277874074790715209722547004180654395597174657170719006694069238699537324874105153451074393936595787785131805452558445756376484581370996917811952265532431884913009735967090844431027739706168628732636425849351384802256906409437588136376511827995062821241688233983343255554630102489561112583832037741005300059707074359184187353037378501136742548231208525723784871056746616180103073306851621931420173148862944777315235564209540578495649633533621635344665656035236466240174467123988369494862641623651160039156928894369535628363755342918370492121533747381879555263499290520273111000176134629750550119713142063417526516928976046242054541190496094774234327692723945563060411867905649732361654491670074566649435854462921106999073282015549457143632246660831331898217960113761184999479341933144676612895286922730670910471487665466491536471779580123060771134249711816886090245522907861015653192130937544902124562238579317431455538897678929955234644889905311838365691268154102161243711324232795458915918775918905004896721847565932944684403943826038785415482728230754136284869296257293312819447135475423801158319412546283634893049288345917732033654301634744133709293129765468400210173382499488410277673816492605647739999718389035025001069049801447798103810713311490710279010742835315724282771980656662231111393863396608525685494686708248032516244296466880751896316412746039352804707186267870823620580931343514054335150046691941222719061624474802264623164731214397968299976358546461548194410544966879210175342156104897042160568934765256831543396053629743366252352536063086667731523103648855522287777273808790256680553967790014071363702748036356410271287261962380043266150481981063835543446468523309996773971624100115574537787442177934898012720385357113235356921331868134784377089525516619450793474051675387082609682399254113351467308597679970781480207913135398236051680768926143033478470862720997251302123859531434068597698806223830479937089202187681220467056334554931126907289023722812345874249420750794777435256790166292699426962734450721287860810347278710423315535305299305608494700884406223026685028785154540603315778652696727640082634521300300132647955947304279299142542596259274741377792017604945180684687455295040217521190106289245507563040427544343055976036950375658960982461704449158013305331923846597876937750679528485035839210088133205524493529142557223980964358174708869416646101981169380857141908791484704219567762752292223440159848665673599514456529879410113770838905660692748820580444100469941423573984690150510082241350082537582807659018960899935711367668436613865907516183578680844497607207469083946598182518219405953766707593311121906334401672988311919384470779146267552982379811845888033147728818337851927750893745067851132136938006726735764522441731526846606369705128266958370856203992442663779014672477689637267034685236358448695205774588887328394788248615081819719624267358201817496820771318207331791257698395443981032571061409542035093649963150097196242405425118626821946354853496234309048805067619826995144808381592847152048277301196806410291335230819838058185402525642157285285175774237302003791381590217495222968217289413039454783953646994315298300272612541743445455927416387615609621289094527915907782654607753911125671589174022360055588450028040370867077221246020796227081636868098909582138597107519642768683007237016051504402952681712832315873007919558065153006715788579394461345891515289457347162803518021781809930946782658530794431188604132057571670303611084878168543036668897265152782793280902838157329373133716885935914060499000913426172920061607239110994228320137690946445560522608121792157599932439062073696233846661719749770363105242569766743113170608786166335295819431976307156122076670891404329838429677015949488446187833950621590413096349548496489205907558654198450880876011643491630176897559430617432907726623588443331955453369391177146670969099422382304627993893725491009716905414748497013460004285277135632349026380583230815793790340727338329186503588566950723941395243804743317517653386612251633865323468230838834847238071025531267622891080369575936195534756237301981458903782598332438878008347854685761896031868734185820835375419049808340804034573069223692284292305970759602120460542982354828239548600464059248320446830150053517071447469892050532846832968178190912990211125084481745250327251281344275507217090756114271770488393360744478356349244233159954310643903549590032944693480648587972303637039733336325548421747383994662691802587597528943616444030354188004296398888947804959661969706556543461152694799083100703312458854353429650142106591237396074684765717341721577448526614047257648919031632914006545269863090818033310537778620163184329876645672373063332422638767463658567857422686456224412278432530622352423336911649153278506172334822081747392490042798392872995315342388331682405976983837230899736946135460909649516446031218915781380766911299509924649229227445436881608681312198555467365307292322789646081941878039794752417844768446121539137605476448156449456673253465480862386328106190222285829391554762460892568944783369662901446899130931655470957446609571129675284607110040716482451387539209120260435984573403782094427461011695856049510982993875136948314045949068251395400006298150837727714528340098548774062006811093511930170785694822479087578818414290092761518535259708126106713598940309523617548482486494679034729136704710742634025084552123503976687454980213988536159016683061416614559578216966757021490379851333563755568241240610841928519631532228196032324745091367733493809002348949019528067889432485289349832657531350338369160021632420771077162481385752337511605598040470934866423544865426505437537396208363420181219031549086166914286571688469892509555647830332599241385324641167618863863862098590360661336016137664897403131269603754792228892419327827191422545060246722596061027455384295255249281102678181781416485578411816963816252208022407849621256048652429103621588389724408009853258061901629841438473613150427536869018258905412905781279881606521561785741976711439298276603317581709997165298960827675357497362983722862713273592650177348642509090893012590185148855875056476959617277358800211707897069451680175152107285440935127924582699076771728393900149693721917227588238764584716715024370185462360887017750250579820536890712339923590241508280015782610962069775580377080576829172349955686456377200101343251441283744937705012046582456947554237035820685368335151057242284570865694308805413567748418203532857322111520724733768040278437178281782105654370013184167882636044011698257400345058095638478464952787888831609783716844796348465420314664886072282269710270738323738880511393493808603498503095282159090759565067743684938945811826665445261116773058328037253725289272231807292307582581014524719649568426295330229614935646805499097432552318668652915488362249210270803228422834997977938326884360386407899113494154008550011129800882117058091158669308688937066292984007134778979977327441857097959615007186344513955161674588887379904246072373361426771966887555473146437193388417441821230624971508898835231200700452482090372458589061548273880739660804082577303739907053339681855660492769667652266252697879914848981204008631923734980550730529089645430812829452123181343776343224070675834014195403659926502955709776940181896878880213904796828298647184996113786770508233522987440109067409700771446648347591068115000396801998639953910716995129017513173643231244331787592152105977639307024913879095663224162677532580036795871664097032791746521412250225409560904213606640555486478412839425669506019567704158718382454257896510876006931664305416076079256684630451985997595384928404807135545306405380786931220973626128123149615705682149884132203581498918807279310383525943696367610247684465596210120109660400678032564023849554425055289892287638692924064462643119593345557092138478529191752167018047104823128939294424039964946413743146372085924954311553047880082429009503653375319388404317849036544146240388903352245923492472433807129186743818979205683435605260105688552374655542560772657829550997378511998861909792837662191785226590376610086461199741513056765984037628617970732160751804404554722056453218349264160151190503725006827438810556502425087690018072744929154660438044989970492452726274123135044693562899241452796892002666800360004062136270553651884799840577444746814876725227585815025524816329387254093077312921938225146952810224564740383441796707623632078759724815880298736654003725948883098966244958682264148501235960096954475375596009749328159449036996922280016995039070649763153062621554185811851501200393924522948434052756857898142710218835939837367636869146060337705889312969083997477751783113713638889661172329270724454955871567667583936802267037389471278092186238844947665047701776749110961867005299198154415246814282939860646969354317701547252054791499539365920864525519468802810516847978269267679453944108843119796154937417531181795172949682060655051785749699584984261152206635095043548597337776252998376815107981468732873835822962122769506521520907237555891680197205366475546677616992746970345920480160990799235973664465006479933341849912477671799229110870173930770225552552180327554640881952380917233108360571713475782251642915317947300429295953040240154166140684143075517499714772537228993713248012546425791456368141444320526427790648517665130623663980615367993739734920502564498679256798124190384720174236333064134875743069197305679536355311363760508541340337197526323585559360593717177415931536433661205065074775799488702858966615790295363229097521612999420406882861333339235300748800462454275905638184833392868247336571928041756875599398647849566969585366575335916789595339608206443262146272102779669499883200871648803815853282716452129606791710422270749975742483222753696622846803760176594647874242261198740384460260915317991148824214394954728363220430292649216681913956102121492926170263927670337052665893888273345816145876844564345032666464249003015327479562607060179057335140684877888028599794485261081591603525701359245151989147486605803192034679160111604685542987778770172989539114589255974040810188635809783749894933368264767257344603241579857857337361994371641874157125668088523308372328983843457735984029698833548178770197091748546511983057382481860897735840332722042026985743180865988172109168293689607611277287123832394473953227144832464565996119714875326842114174930774232050847659564864427338615750669808381793363710391919007111659582670981804090113589545233650697368981619268764747038254427312195272316851356427135546638783846758826159644823034190095223556047582897869385790392228228199997835842340687462656318469623083015708833445282548534223181962613541460295477855811988351988241921376453980594942232027650023346636670064816310527355523947304066017433843335298815075994751307208406018002034669835311968621248467337456374033555276140028555719013097611877761709487792122957536064773191086714475955434772386141401257789259969968614166007854820920791768244938484095644507634601556127442178210668342922359521538947143713638291406609634126148067570790178209740632133740065083381756086011044041505741086522987816117234560722937723848059928189756295155608411156732876051782056151429764448708081689914331015784302291506365853946459259214993178849461764395984051468359005514573641293246709107972066757747404016128518526284165780617087664029404971306608964483042104221207016081978793703441252254711530630221939939809047261123437278635807416821258969248538662120233935097467829316765883744845642135789874916336598727788420105591454211628673027018531497655557720395946527134842537111821672985947351711118308778305800171730060993087672949446841196892961133572026310304347951648486471609109126904308512371245683784546891382753766861927125327159115859971917678882733882066302985094782127563874843823639634251582628423072220262315449890967237382544057688617719098491480124656079785362650091236128854607676002318429696996117133040658714493548920015920068155223915032182161211043481129893636608720441528782002365692609521535518339183094170510156216850518535380515429935366230802213037385334345018651398635856084667829760173309811803603331758415694855786219967098818446473191611901895347623958221422588409276893853007341833830558316986700814459264955632779148682022132944499755277116019837507963302240356199765886923987325861637314962849042955509385472457777499147154880660311109445865038350600318475297056604907239272027762031945137048909354185356287656384272867674673919111882511386829542518052606820502693490706027777570818817622073220033810840358253277981780498604400006155631572029678485611486829609711739898840255601126126466740243464474733755541019905310371084874358778775467436686123254246744701976047192878091398879513933013483742973113138133106580155841126852655168833675635488261776316930745676808846838213867567885943327667495919263806639589108866209561897216013784836158011107475622172838715726137027002632439809036235374892145083706350088632939715559723705781993401435613741703781188810041126053098599186655840239646344335646447786826358775450686723668308455369488565513981598436654903784303183437819480882023809383470080969990529833399743255221437577001491615122599521310615098209188082919926190051619362287497145851206362052950328707149762500891808858855753244001657209775659209666326820611767031251519298285863886203340828117448692376830243289917835481429162896225473621521055217532474351210912340852455983554740308719683898636425578769099692697359425442295107068408376075115902748291971860174490977067136385763672668619855091563080043490560232811723132123988180035342952790969894710403854361349233058271178137519268555974267212864307098966874429375591429273595448456633828424130936887683105630293953362541061644042543183367915335513150397498859322363882537545160987414863187942593791175687223966952715652740670971234036533882941353556837300569391015628962254557852482031402349246557699439791827819889027210790239688521200386918216356382168234856644119600540791603495773937502228845994389177722391831698991472081702530472158039047915119852236692117698866963251278171080141300354264019338342728406128463287215530860302176028477394451101509573829583712378682593438715473291525171793794401398765785094032334961045553971325882757943249146362638131466309985216290111138732287721517224220966283270218779541283942998148477164678471066654768635638482132810319906805103912324072499026459347378836484127013250889428358631114916425360216884741612004025987865072819630901420416438664354464490971818227992052683127451590476111337983480037261078746691304342950113368225919714065689962545437137511826333750788951371412430217260804199089107992621683927178074730217618946322891254133778946719170501734489737167808470585335559300496216465640376593667141591386901275987187966235429984029127328544018714266688987988845470101263265639162978863686671210920191470149839861058535589880909739376623848708806613461534031576626786311610470088118015670796240298318179605265509770344485349948557785348298826018144722965345711538414671632970590299019970843267205354475713678708573832692734295231263864495806791228166317014709217481156030778913596647562101597386457741365869523779970974338011936895205234786380174396838382061924156302644346031057998558023674195329608598954059750572570593032723962721974541301686308582965133046339265006441112551263778584853309963942372616759403666035489444161423595943783008410813318436925446580845306242432582958453024225772643336596933666262829381431590144255643807968714393737013485373113454542218675836383734066608306378909726829838326095508606584869981425191525612066595945401414499589297976100524320327185668357769853684763400740721280508003825266961413575503574508722794997444271343679823339812059512641530667438296457092231717181507864421766923662861579904997768858080677987455907343914692835485226323176670405628210749717162447590511826088214406591796053321422354912424620541803494632202330736645377964396599640347158507386882945069621841908531479101241947754902284463133766531274256851499378947074983764572844554648522107133022920601028762191507260767587332325448699146672467655553590529815860335123086503312958333555774859838215755189623536037411431278020603820641434670385945080001749415650440166118971184920261388604168162323713100923491177027430738810725580768938090508783097338639946775125034528314841428126895079278335625694135770622099116013759257939244588490765523309679149262239203225989138925535490650475441951059138162743212710544776922827482497196847802727171167094667463178874748963758999734404195441513015206186030092492345214395043882622305724427801628526297175149177445833654938799395298675119765146054527579380170918754920049239706604737831278733007359192236744087202715510291829320673526960976177751791589802488877859922776368854536426466685780972034394559098821048738464565199162962876733258077512916523010542846727058632033020314603503318917401248348200009619090862995544346606926023213294513998497886963898623493173204437257441543750797701802137652604747114145941698808330534585160913442017668729318244877725473851509031768123237458003861818523592549321948764840968898238884516086282655711362719467108352830986757276954024267326658009285345905979641715535221072878218333570651251692078431885733469648554847879206708958887817814496553062152408679137609282409627962686239454723888494349062207227932739999006783073403371333052560645813443527114404495894587531945413595048527882585743376565923364773114146814874722601867258731569528283489587669219565596641341721209557382007013839275809439047637565272032555280195604438717090520944848301877902013950651398058271096654131621947334741230525927378475362683123960147697233911350190305446488592892769012345210548923001972524046823088080023070125078162745443490271383779679440046853817989461243292398501128181331226705809480642417739626750918473183779318618187368215667102337833534809843869350482738752612504094247548288046083369758519402530852062935541066568463156120109486028920466254801465653941384292304820862179435529491189435986658982968884615847129199019643110512836609052855479983945063853850417465032626052025500430999126782673934631026680845080597863722186749922086258744298073892732627951755983279348902196087176504870925734955290321742272569702524317677152511869335777200691198590727095197831685141969588239230386411197683075976942246010852897238889818901658183414031413322184231385641858496929906440800356799050642569616749685265872274761009565080589239886463691984646360041057971649328300833725752174131357609219965070329545532359953632106353031341272785057419708058656957889562596427185396563071773453123915600928808832242801469544714935327027335049915784881682684315713089825351903711189176337859788143628301966483125958080696332783310544051483651703168500348712076962824631921675871606687839800177907811323253636229823301796701647902712941051229280423549323751196691919686239773342475732831167092979647882689554293904704943920275425072557396563697381985707178234264474823347172412559598693742408278771307742500736691402902414427798915218988036768124628264389125023234072813403114043220113246703498140617740124928997172987968604159445617307457627941533528258979687594234893592709112485851417607987365637788594119967024596270357501733649128956174147324420484648846733278019605378860447537469042028767307178962416256949438043931562737448654029102372326598975510235319415456250357721800363996392328262390578088472638661287510641361127959049369578550678315691859344544930536924459658690774977599507659625432051184139295353751757295378099006718135096426272994536459487475430479358664686467735651909449015103690519456872834055554129129129145352418214220863296228961294391089914586354481628181851555379576745770429688243124655922373832796016707177765613661074490869264974479386096497770873404082506706702295436709696115941565544174239377758150398949305922799489235842997259084951166252311520693888797605251436762346555781658202453952523939952846593358111148191106196029553471058073911358013431936091212582232614705808400029523934573873147365348793810263895194127535866670532668784123718700273200119873148371700381013499656518759273848722451220581079750982847356015914899785929831007536754906586679682397994592722942905388676231556565399306396065280325779978661302937755315590818312741447821466940638292311470004016865701044908446159948898165875231044497398776982931839918604537504197484276041858417433132889987455357721224008877389849796959500505345335954545874288766806863397340629146479271808053365852588124279146938322304971145483105531181243436077575124243204868531904059309430294833124873649010368172821383474459277277080314398510335985994908498051910676944310808864626599572233549086912536367312477215828675885611976630609433395323818753790619818693982289186439061187584459056339186849824326796089576417722649849788479563946074840955915092663980429999763732289329375434514278787096988826435160747898943216288329573080874831598818926678391128559156173674159434170641318286535742478622974918756529591785944372110759957138689325077931844816215365134108151701792347272899027355055182768651599704250359017122085765561894088163750980766322361447707621008558475768841971776003612500330279738582549465911737523238770649511280416441803979671011369969297478539367628190579354543992479380607245407321488788800131396798853562779641638331738111179240389499897000224457716922859025183933428834981465500222044862624834057097498448455368056315682369806629672473591858001370751956164704701895271899212558811463491425167907873487573345825040611251516277749901733619770792881253798805615462582767122610787829999558823109019406530293100167042177679034149250145432882285102273465339979720759630388306544351265093381531531948921407750303768802955565910443944377990261671717111606784847265827302295180666312012979417054822214161374510655780588500403729670317286685021175899628328042813598042330221954005310335531795403087814943755652026098798534102611765818930223185851853429791379065308995530415830102940927083609278617579587819236883106557505933382253996822030566780179943186614681589616751384549234581293471982565528123354487202754855314442021428100387652455402754492908828917813174829046666669815816809352884786458981822222024868453789166425213648424430782546485730101285271462276825504810842704713274104844699157089778725433816165341326300899119918713786864390646342124731489295779065491856454092264959849644198089944497877965350927386540314966004015551521846564723906646149374657165589076143611811806446551000059719120140772198894342432488988578435890070102479129133113943827446289581067266035068339103582461430988101065996762216725381083381963571646431324465703046297475366935560421872981379986173542162111459772502691606979765447142534939943967499761691326295339387121252987418008667675759015208117141180879221296242489624497587709060159498160364529533371671531128662021079457179232980123356561585944899902739604763933887789295571847348479304112766666704428924270953668225276886249957619123273567471762097580515243690190679276960305378710189611548086608986742509700231272506348556453612236632578139653663309388575130072680043612785152813281802962754218724228913976755709640199039936574498826569337772614298050464597118401517188463662416165674005232407576050672200490042540637138832393965825633522194784092321891157768293317299154382740797828570546430569411629325217627746940533356578042171692003901364255333136179161086665285823112344547800168238346361129529774344585428859657220315702326951244178508788062636321785529464873114937612985584370551347636032482834355626442366427936272285797887056962440396958626094878853203726753100238888786210848647585291217634808184398711647961654838755566824824878206541345475475131734637702629749839384992449439744789479893189655026704887155504769361582002638770060936089215280706181268377256314526414419490421459536161162362035831171207890739964555488435558677240906823092192336514281473078029831972816374125895967987561613609654691356399762530256603587246825104261120322810789157124988402019040764895577647089710713891829298994524427614684716412995239221685258452214856935417249265933286323824105846009065116315463501913553443812713637730912138506004247222517032529379589755278327893824088451090799596225309499656773372722390965978977390366622104254067532493646611646248765334588378937689888733389559527819037102763273605085577962653061995179321213932085907928767547622068826606331290645332536216353130767306563012142832228713397979309205282605622288876101647540625041573839287604767926065324985430153165801204459517255805258881931974082116334831221271398336792956392378689909656776292800475388203822210980084324889056510481880903546921369476408379061714790643523118542793455869315948499210658561101477905159532305296304332970838293677650027755834359205543701928204386560550207339341143068502115784386490961418297415742755512744593148195604076389123219525443908917831255759172558537464135876357897618597827015066993210966706204250116760772946473626639978544495860325896220748394617177908355651097950986905572399351919138755514638356041045329507174133434675301587183247379281363833668902693718727308316794616111588783908004919226131276715666654783157983075528351021067907428868359475469383048356882139456367335965665558943482505756763297345805870789775969265273730415505015449659972435412424646833802824258874634616938818598075690831176499093118787100733075508239791214539336146150207296918933115499862002264486347035329390322913503355860666937644188908974747912176906345047622491230132086256377071075082826332539826297051016818518864469117096192653921328427234371335644738008719455148781671681919930214693621516231318630001947338923161373981839009386107385636208066857545614124323124899822608451236768180381851938201645274149273598546719663049387243933305838424449091287522574426835367614509327557230636307748406326694518066770230053249166549367413554250365312947983335068529252277688450839685159039828317284325162714315153542776303816901701521299131464418321539513468480210367818983752347644675288720021613715377362062655297019706263912301099133945665445889793081586342631915658211929932975702821016287490841636881660190386920651635362770749850741818559080178520147387411781610700791512432395554910484295362165791427568610036637038349484972891970605787264913162309487406931480149104169418806321320296320885830574545575520871508101779809409598688722136827481670929151031925945368787134541301131771982457568817994868920127376942775608984165638156704666193403509094109027590555112184758967805655395213111054467217894107467687821604294682364891325307540920796281882956719004703270694793141896005325722711377801162259814238038653862553905996816957357155412078774221389619106613516161954488328276590461824035663398957001544991051380441751181557396381269182816439779557156346008831482640849714620392791336729306388392410313467774716699250268133522011571991943660190301493366212009909437119502390139065772572674687968434018346119894993089697661435875407645176187931212447846019259439114998939734494283550122348794027250901899982183572729463289728115663869479259466513317248959649136449055333559727711424273910375534544800029844002027105299463243774139088601138944276445981566633974647582341798566098346864587516480559779912588520305214503893045032011370699588475281867183284156881043454103923109919582413000730744276118295813116278785853446489969251744941412139582116486183367750719297782302961178575900596446293275512460998605843805552021980051548971871114502097613075517660369393295201597208489537028908407301363357686252954760067590821123253094258328411541480772784935928954612634846661379214256287907082410478180293503465929915790397465848622421954338658874635247541813072977493209212652644195651185105229568598157865568568338063296456049684102374377751487054860823002957393147196758085612045051516047533816057125852545983856869705407672742060949390617937862515788687726403682255395429700780261211730661062666690288561997263165654535024018634609985080615008757810402206911470793875575736207409962669778730531293270719589983330274816331493221763250431436274139657499480375829698405299339084701717602190640865834223585932033616240754957536950451835418831713486296458464044445902504743485752216848697293533812729172749774036078870527645649882667597571820282792253139299741962612498849890006966180605564064050194905303345905506038623355148257195829462991163148187017102389068665535726429779335297071506506511771014670231447583290632355119105280466853996238251843095209180758968626134846140163973346253473998517555397542487102726807161720164990892340213410798182782960355910441718203082268535826867886594552109348112244038966044458772694917695198655734028499643414570515873512924615745577269899676908844540840563815420007660371443592169427946734768251281965471200619429265261294150632919556320525962758712902449225567493197634870642727451415529017984169276607888950026136258975691237167350770885423992178779907699318212203031300105144006512367647931042424228747365581799321093342420689325455676364364965912668238809103715303349558982136938202523945412665045974371112496245233577159901541317488011741202493850731011887867061556195094967159010241605796886521906619639849390086625897883285372748383818576344586107308938238145941240695236312457296568249294875938033091278456206624019377097629395152746605761689474886576954008262484069769310110460092371598703313948236464942451269887004441536549154666102756878022638651477561596338149497603737799482113544922648747431002649754606193140129686867227105472022612752322416193313242140518713283178907199343744331684940219591722467758778549470747768922628770194760267977207394140806702875229653238815392596678739328119121514092263187162054278027881268975294608170468161938723853372452780290248178531338559188759485448507742470274074313233715041994011673218781370595234795867655763704293819210180263454711165148496520532276448311240920138921821585014718519946139425562814048078694831236869349684261344393428405290521698015256288014573017208211316225985154315726606072548607291028668223093171388164033691071433320344058556325684860430987140349706110783079684553665487560033842689143477351632747225751674867711212505661491165502475045810434518041971849226352058475362581108824340775273192685828472331031728701368779672726553310817353852896541620619484440962677443742807601505922203285947829309328899738550839772504345099814851553259677295017208094577856884048197626568434621643285806095846835423061626510655020488058085120880045152471811838287171076800628009522493523651884120982823081513829240962744876116267722191703159548721128176255098492048938892122636485274305256264995109950812460951560914116489034705713105401110199222456052640725160662170259503573655499480859394337844633733479386623707948982514119829217738824308104977205469020069409770649648634056862020905464469269199577619550586207819041811102040735647276294961863033769546379724873964174799546148398563686713276998380102794869662972818979091595464679425841294542748692378398521878762876663664756445094972893184081958197845361249461595497938828028036734262060162162870481407841245037874063752841174789408274220521411976155210446665146304974294367457003117683197087554399582168165849132447501865710846852015389085659433753922572020489626775408665285672115500500448426027659600110781797817045635179766351378376337020536733923718366034767493974310415572466339624666707948050860182943830795382176915501557733210477010219747856641509934266369673901025467519124824536873559480788288320612932053854604618014150863470560571837934945944544249149760760479956999681567068036438024351367213449666797793742594177645827829592085276978563814327978232952600092471672155240960581334820306507771988175974104075343684475125218692620073190723673436537799154381826741496536979087507686524725980523593210258561154611763392536124925249418420783246881682389330064062999716092448968042763968050813003274591838857356102135605711248544160885131181609637212993887283266642603530454762837378463843868326096228898185879373702638664688233520702210632463560780781013479348973250577890314113036294341277228428621124487303736694984703185154818805460686600283301700057835812540040619304128023027995824283584710387277159907125374256376826934951713758838342018021577033913511108618947463169540999635241220494217546046403879870024472490484703255977727725182101795386604902630595732688025799980754781127645089316234566296041896479760225376711504690833810637296974398019674747419369626214573992570955515314681634844596087171034216585573978576812366862932919225609548839443818695296450835394985135420629476062372953185607755332762314524432610947146433051004673556690013379827862165369882455803852703792736507867499238720806210934578726538975478822010117673341523413815447927287581724627199542814591242398266384367452734875039674970255148727261707752446390209553502563498735971352813791768141797458283312662307698241405519740217203033040805215701195347655036684316755814261640089395171755927254666257497669058364404326188544971653898765462126234251737685244230562669330693515477235964826686164101548042504333761810157095114131558937784894027564537890695578291180413161191266125267034980752308761486149344333728095523600867365832751562140886290511740692595389777861891326984517202136862485376678258245000337807312944092844482444483902850307091908543886761585194103961238084414355095649458206230938161893486205270046167875693922180783332702883527725467663840921270836463199991061581726541784956003617938576018389079430805080430925752608708270398987204014580739663448215369290474329643207521967171307913064472311124150358784566462429499831671394109493426249003112309494003613291979024557310233597637705378328086564574895962419533109522128851819057026382823052700682531869017005838642310948602148744660425338461644189840573294772527835699519639586183489716679038736269254473916347316536143939838958116989369976812048141094868626301249777692487087953525181825813236834490370070692411945961735296762602365756825711764523190827905556670207080123966442072610207226805123963098060848794758047248351681062349256918208908668957817475209459307845954528017521359784799572961054436071831694182083068059006307750965514950327832470266246104513412990794263670579502186379150303546661683292301146011212730466348347993029479490400447815322196893053977529533223665534919224836881581554213020918284571583420955462967836769643161288750147442226443268420398039078605107463550484455939990687479685088911063792728580601588823364014188074650696643381260676260140012895513756936194325767326419181014327949193304603550981745825352777780274749287201334569567199543801231693676785763770381640491751078150119712572290732058321623497763369373302460465096277014739593571997848862587777103964493136041010519118812274330349353052091406104611667273324836246452369604304757391838873189135125579772608078629224876970191222247824132831986047352713991663316310746646393139571194230738205908961268181248379567189186710533193267020850602568289531074258670582331793407784665006449566561973873632934590483834877124400259172257618187728006104057090268651947839690056121124993526829932878232096132962214372481106260929642380641939090924055397257364503826382354313409364828327553615372730197675707703130815126130223984419154199300543405392182837942604397924553784399667268682215351478905508859255952413076650033641135527128053190921531771242358789397863544417810889790401350236278423470775109654770580719039004311394925368636514272972921343210822955317441430669195459406779728398122259197065420478023456160112298272842205109833759918535931864182058904495709878314263487209239176733890297869157402131850102158500769540111861322914822054595869907498942169199188048717256822396819954093781995703450525927959939911751920772716685044271445174109630230805510554627233092308551246164757377562928704455944359298463810919729360264770267784572843924079574730389718807752418284554059736408325550149817746481436646403232265664416631808374598324805752772392345389244267601776813302839924424690150835319541233118188859583276827083278564534565391166057812464094760133784217006422296457938352034962124155021958693390054250595561296754062733620731353932254404618685793869955484373872797291791704067703786901330573250964517832988247793259981712140863361163113020735867398627593365215710359297656144744966110191862944368972499431910655538064079395401864193518971414788872267363785790954277829371126439456477715905585702534517035900186317237791167698298140854740056072672811899494653524689444553013610719378989761003102082367266064589731063681385433766101158885879718111107081463378954751505946667501153626524594146292658503473170933761833638365242221360119335353738399320920735876903315162709288197118593709512771066852931884596866609564842030226869954379482572366694819301050468677983120637575515146087738410315353133089841074500151083106525635217615593784655616743072313498850459597101563780354943738508114575189481148638533124612930043130690639754620775744222697705790058416212205011542116226494166004889281619464530400265760837246121540635983451216728269791571984424034488317977797211993889097230918533056749761713553180693650656161684680095977338884386718869442626667608677166735437878739785002085781246555247336598680095670831968413539306301428918672671004468670401971792968995752498371062055866575034632438327968019282620366544911049995103648801503291766567812321109739941084632423239528250168469037664045806605216730480029009800712281898270888114747979072762424635651443195821036594021751985765841440440218858312464059909569945265983659616054581899738269977194389303101067718043211892087415710179665968426350347497857867356571107533262325747226904864341823570341895636528440691005114290578638813492778826751149607832409130364031326518106113674658465711709185940205640619312675051598952155802503633764092063111228177117812994580102085470036370759695503118428400362861627592936433904266488873590987152820981451664920238905208951553447130854658630810924385370550425577440943838520492515690630115979640646435454305398199915586413137983980689210936757264216206792307471787999865418417401192608761098979021445882238684338435514050742716953596813893836412227108679612960314579156348468779948241741158197926055565472548439256736427531224432504915003802803515771319580206010268374961655125317135809620004033210923565811655456780033017189236136120628412534200480972655744626772871239384701628762867109459650959837805806973971247604331398258558531208800797665767811209689112386282185413247916367095009282257853668353854192667988302789601273312261400854848797850096582623378643569085716657346533349409623595332441518435010750040860476620216206934142837516762748285623569304737102190712058958598715134148157570539929728493454714546876529317101607753804797802982768824312870912521964008504224978777737549142848955655532256237673129604678565757614552098649577256061140900840988269141617346862655965834967371859849242340673368590862930439161862418660003699745073124728003504008568303414158772850024402679728895237184947004486794682339327194469076034791153552974395934277779235924653757046087865544408386121981886755233136439457943953907796252716790906724776091997522583026051212625669526266285075012493398998947512199138567356658929279917525980358148082770450385284446622241629176992588280170574408884669912555061916017313222126732994871213239443537681628020263102259663000553864644368521935092979513237619256958081140230363481852941664606042981637016914429755704053930307264360288954968772991728627806634388131169270807383953082363928051714001901477678329773114621178417403008388341623920980530002007579584889127563273882700753988536043802710215454897871757529225459996026455933690719856983040136614101088023912357110044497422821470785158135262374601513235555565976014719555608795825163852855306182662409481337183001843553877272221896792236043767638475247742781733392533168909830851820414778676884029873112291931736766590225923438375309977542113275351620511688041184372048095864022802704697176330045008499365866987984896998790679581080782172341436482248576420546844547258766870399012480864115447272601930112772936359228983062040312107456445914753848516778619339451024658334207335569239711819758056190067320154751546132056540121062923525498932111884273069705620620256672965503793031181388620519472649901376250638269919053404412745565318004552476268421609720079166028252663766797539485615886529821935180616741896908624564683152840501293253972792761303907628614493484736028485460069864159882349316099785072305773516382462557533395867401555224113688128115727747715996736586696596078614826397021368697873375179329698587061980687347277562298685018124132979189787496680045897910414048126147042662480810005820985848235718228166697554968063917121287871989117060276264489835207388420369351443637870676078825234342863531818795395566543269130599581207479540875216542790699547630262514368637289806821310184553942473836718392238417368889751557323093373071755426808129876295226489297671119034998688006947121838380391719265694258383838330571956772936595194522384501504318262982534826078938135490277036342011973293737314154656531622806397658611552580620181698869908865099223042944524658465911266084569857138231330435217969955132390813872802467817348138868697596675578669412577984090708229883698046953193195315018804528940611402800612491341177524082393479135880571626014679512128813104981412230153207817766248186549428189737651117807786139871435531829697738437955193593883234119475546899822333642203216235944151366050735849379926060983318663024527043227978214110158728339579787120164212568359775327495276561085431946771932408223641185690685710357445234884731493736863087378538708185087448014171365234252194727123012268129536558947187138783424065003194941330157878635567257498954173918644111396507421461674853942380920925941165462331341041425493493727630412626020616173344626333886845869908464614941533824538563931710614135604932719775492202979069399802393256561078912604030428950169673601803121319812228506455153380839053879586330901169698435675742230591004554164098143814307638954752322318964879911041314569692378996318434655669894765672267567784941740203188235592376159417223788716320589967321715029566258664315672466058087156560474302728068217730584644272978761883623167576570546167897692915326213298994405431969017226457149044111565192128641457508864338986525923220607129041586711931675297575097750805702115120400357765738845879336887400060448039898860879437079050020797373778404259488286500106568184828079803715268624457980439271541417463706939589109308549414183020686813533923617511917570309409255479020235228458026560228201865227974022862998715265950421313262539269798085628332520745123231954349678729833372398682222226889532347527642204510091017486841847002918836221898755825746697028380129296154101026399512749247285336098552848871617477927885875919919987244029653813324174078540510720650891851861202017478481320303865881818109670885204310818924633315756723850375884932935669853790251358555876285720574408959846059701768062388006033026343044650475952947368466458919272943456179317627595141219367069948265051583054893309565165493388329498263828847586868357475065419413272936577449567160735818681598858801772360608451650716531511150663821837792670822098145488541901921953087482816565574547532278758429998599603405491116428316894327738514705590960300103305062426503219208901823056198838762917480254311582290895559825169616043390505432607651948125393015182778635263363725118280511554911973717579611758555832248276828738274760381995441437559091174748692183164298394186451865734300091457176932923231782607009575985066092320599011804201857872242422299590723649922594198546791203598523626158006219685100755504241796222558172646271895460862177465715419022102005067172517187527129195921862089218827855054590516557332442948628071586388955061834113514985659107914362356642133994782763500854185275091103740446989444721767172673307257438819313270738006741607921096773956007268367404485598419927693761607961486119681196612857575048857827357813578295010567407211958570629539741915428675887678694109178408759165790399325713172418481826333626155505247862551122761902023661816124311802545514544494220315184718753632131219940986365481426211247149153520953286351844917426008147102024719445192363990127932898994886949975570984485876329277954453167139008588964690115771377417364155769002347140108889744656146591062317005313548546050716262684032434062075883476092157406809368311442629690279003956096953674680032414281848159335692515113364516635379174030839138301010751968936516033948058744645995996572219291693484432499840460070254803403094578745711156247859912505371525274198272593111734916874932948391609731391334898812599670264754661696975481628516199322677547810046776624392651021889137354154497682646694063198799256874082078618775861790938387671312931676323909248863398323060631992051435417937797974087478639071313654806671939597795148828048563925647550467349725449754409081047093903205329736025140118341821796524277845756073100181811204941865910780027572714552556183313546909299473113053221212277657026126034411349388016470501436478912774536053603170742150263067941996808955806435098857682865147440772462896861181081903880613399739629320757005714366834680727852326900186054098866361664364190388685838597621918763837085741377007118266734662632061637283175248753405049460473387497353475063074438634180958414551925338210813876618082320871807272268363002781433577604812192364551536275033578322538367606372867545580613219350535451847775527552411912247071386444969030664974350779505736224183060231312134656060298619828442697998010220202523651969154447290616232131041841212127095559774878639980342803123623153456531667235114015586832641676397302932522510148199516310963041881844686510195402319649232842882269293684520596753223118054570211955227816367860215730280087814320242388240708240752077220068981143746233770141370060904302155799370078987852318322250053654911086488393961111224183552435798341966278792332204002308030786864267949839028688143201571803029823267869935104434558707882104388851518938637634932139381336263397510593891339361749686250555468379104978541358970583595159910700002819594368367727421083570091156552146564966844574417138683419227789238176141652106444522361042135369001773360770314436047274296736885903686076101252479327897576746850227027135223911907261165409740861607544943318591294901444395391150836027507086240128155584703405130158519108093114718879760723355841657377842740186788557214179027302695792106625424833713115690740744944620426751872513100482084434640604262427714814634584408348052920962966951530549672499339565845712639958108702524256583835744202674797919422307276661323061183161530760047705859890945419929086136956353133337121310900813722959160428554938770079666141179348892490534585604119648414859791484570641253284788462989225828512795880456073967409768348539634893596885752468811943513520333024828304499522616180230417678186822741543240269828042816924938097904771148448178020931349501667043253158551071570773966812202871285065701940112352725670438605721726379665825745260275054574726138409123070939503329432940100512586503733740840088132664420374452981895343998993989698652379636317561432112007950894568112230092533598712993191981249475300569619635372869545594295264406151908647406722010744211472375282620911196155558773589544058503538277308976697892996386695685348834268032369606045833969487865031225974326555248048268575540023880403264520760541511226021161665794521970130201139932234354509275498694304864034010383701278069139101338395848488922526525515187467458926033834108353097857055668157193774205845438697564846285344537861879183155247866511460564010686812033124206724774210224184943641066229022160444493717753530812415003470136798392789152787015067094860956905630735401944441156021581855542380889460937531829330797681894042307720588631266907680739598247668529921535745224135294303869120850266853365266576304620432228965642946252499130246827863317861031286394391655423981093691977207388523260959249738760805521261280506582950009296021817765626449268270150399976308529728718921523340994002247410661615858364856613234323167693995330544661910151548195976859433209095579415859532432181785176636329200402498611126164935387278219193796891364346229152057683041479179078854424012165321012076494465633127712401965628616844290667536134994713532071175211585275569728644218469136703811264599153754219192405133991548117498073210917250613628673085678677026529891100722528853218033949325775473183036603114874909159646917370650843771505018012199406615110745748781084499676778551967449343964127269661037707690026456469920476842897311253372159467848584499461651132612219604891568625521186042035784378022183478334933894633510911866897193013304632765980866626258353937965659616784802148379608609464784746160165461688362678008113808039550604921508615609285443720949475658621077075350650172632707503431591154517810063425744941214022968018818094772707876268739689963405586453942774327928440812135773270977334819528369301706111472918469293364326691861176461397131009363671816236070803626516836469094427780452441455044137417491683310723762721077859791930498774979247194833095268689140015030935815342470028952414860588955697679711946728230945437824538901373818952975791681396406307340226136384605273137054331662439820595168183150331707826583553910182812833462653632995637021218325832028875615873889717444095527659738435081056868403826318162351872542640458074270734608170635211301315833257760377033847231820348406954020702020626681481068454313999266894452340609189971393662652504248627061169081399577048760715362094503501814890506226939823286098784613222221075906079998516626375362520655921148649602916168788031147799931546660554832470923564415884608059459108972886392965133309997653499739360047452116225897426603997804802377146988442429840670887431047848106323160880584123598987392731903225021627288988789640784232117501724759692967782810169752461393565323278530779769370985402535253195170192638834827192682668174962976419842545798001739085957249019742194782558186251197538972581114759477574974920543398477271659871973746034185747924213007250789297345809287144042443556053769967346140321764473580038810031904191266991590071142701324473067525063911180328237519567412832496109432531631195448837656426101904597757027242824815972839234677827111594709957495399065789990732487000941165080686837692600137595317921955835744244960024167194272393469993874477291511129479636647562269415885501788074386845968896844162706341511269016995830730917437980435110493148948685189895732799050962316988713281861540493930598082350083406949646890365679113582247951538691551310492038512471254063505084409840215680823929246060902596682536114712427465856768491984298940496750414633148237506310318506191035464066972148674064905283700222789887810135999414194129967864158958741933562368783577621482160694843146539610020079013775934061450831822897984290036096460030749844073444165721773932688308664000959094318603607500465851663411413649732440800420485396199226166884651320930290477897444403169957979273125310202650703861909017231040625812802840265703671290313938724828913533334108880668869245757214100809761568457394881054018916462888676254728561181159667034513171860666481309627956134013412368526359097901199725632481155930843154939364533593257886493243776756913324574287617613895616974271708918614726803350170105121296187832134663146986064230337060641123679950909771892158894111549983769325184854601773281075474023048733865216074866546459422803404076580858678192062050107402047877875936654980067967165711575353173006077168344449641056027011412687244326380262497416923179427301849311203688408324955249569787099483435000824771357221899234883317663381564999191378666891880497417481173770987471778388950466827404848332347762887262217311170596011005503030691512586230485137756151471946165035921959723797480416616429913069005390240086744155308625232579930295991273008141638604185729329706332207944004424739434984811199066773075441889203051712408849017940562787160153573193163156177573166031245948077084404592836108744994330529810547717231792118309649455572092916353866935435344093353518210051464109430506342645908282902391953609958958184285778570480054949131388943453321031730926119891343121198356367562272126324564112492511403271875129789825048128154761115340635243222980556283999477217021100543045288656800879628138527889728511291499799714440474158989195126032540305955449001071366196268094227738038395748593717429877347427502311569814593386235949509586504153026443472430959963690173782279187416938468768468873052433054875085375293257149076289453197963190354183957420276479960041322220170003727334169535911647870757944796148769284833724862923881286789460938706285716583078525661600054266500849238765039069790209693159126813561245146085832121992416787758527115943893546939450092478842713642298277089151506091364133104355760673858043709070162752291842486472658146915067013515598921282789122252454908000333357332705789895228936471170421123941894502048401062284160752731436813516635351303500518493761348404827784983242507418921748080089235054562194265799028537170399628972915927593682995716143919637642809314739053795426685246178735840337952839531879344597394306509435272699995682104497813517885332005445127912702941352261535902071732557738821145038376495016731459457568823157686618818528119484779384756851131657443769749416662090573539269239948464298103961556786904957277454962673691376560143530561315967710856785622669360126265239615973405255703472333126684497149907754769727569621147122611797759300886410840336864581443886036208236448526600407127016014582968942191409318277693776072183679162364729067946729456921864313605957299721429180779941758823612524461563899136187603265331742199778446807833567799002969391193698068557789032670651324821644646439168478795788253590820598191020082968904764199569156001705933473526619793430212807111908701563937360797307898057117288564435536456618023269337230906364631441962046750265756678024915141715980837996832979565171870220257463345363267982140600815702918172783360707618568862945453030021663214346404362905026290540686543541827742335915035841487255486583019926218824677888058825778186773407109886072697252525699846680563431775763748273823633842047618655521653835222586288065819507979952348643091876201142694762520600732673785337490221666449951710310666605271477777573868904772495518712199148840045194337284512194734266378233161264293053004016999469444474690458352318142411198734413379306002157520017213739701805492046266812567303700664809150049878315454126847445665918056256134470402626395960329073974136200336773697039969642341275749516319173499518819866497306394427777554665389968263906961561112813464763966996750975136253221630570024381483069045211778028923452924072124502252894431281692846882401189383470938847665070100829643974457826842575293242402520908909182591168092108762592739768621346696093306970772455506584378471069950867137377712081156751625204647142274094722033073384175320749448298401865729677412087842966793589821374299505582515590131452894276442189807395386204346589176857233195907510533293413938964999492550824699487765161197008444233387435731858169767722904484625857916808385444709638150367074314745210956077336358043060542726853705867876447499146369395188179521206752308998213401108298144485437876170832210087942198383551057722803803993295216839838897161396939673116820703885343118198816240197177085105752887013984864187218396685235778555959292151029087518792527498982434977995185502297307072103506222781237398068222491837838386702173019540890125712360321511658365424317605543327591088716240335577481187166169400360346519124575698892758080256440575022112903799761294262400695981299537046584120350494645323073723080169845945099278319974176557627894320269354961018394388355530514917111179202546784707425836830712990897242940176069521719168340026813914329472946393303869563332657945275060270989318259249785157619404871171365513752983482290781656562376278890473869339954823224202134126542697551533583503243190796857062013929980954448341289226347402917447358387905241397679543598244428216883622424195684048803028874783275580894906600916279442689322783673975574330644737843680922111799455364597396961468657445394953194431176322174479852751284091931456983291364085717712816070453110081901162401455562637894775961201428652398601758427330794829005687040336226319289531831815568024896710722962804252011981459965027914497859316467986764792049234522754199007473504770894427723882684526991917491045546443918503833686618822576243342457289816917014599944452989514185676589230354023384668219380243888281447933442174566309237277323884262144402029015646039017966240759315766179997164606983766787696263221413839828451212105701912845685975073068212964585481034776713074568439139502787322921989930959068955238720627976970445557027954512029646016845652567571240948203725703588083589921248983952022429764787858161497563022356113206250778198093116134156327716501802521176501471967971133814034869284092577361987462643104183919621195890795472514734802659213910798230769336292900190369225351907389748381541582291327394035154769968671246495721797841231743311706419416019551829467533282654133550823308895691203545941144249657402237008089595611848063290298028683613640344355696142085518838499248620725941824151363938542112548240162024663667809700639016029366195348985141458446052651719552717352521395477890056802205552815478908348880414990573697220726729874653838045943810662143158513049625287315447531810949650880562432591420597378161168403825792527316469318375998910179818959141740513905108178776922587868565075473525824933065360216525692602208342805908987601885699726842858455876515935461600827812151096434734823588117078837370806289028705544490252562379826251424975348436029236715239534760456110363161223296294206796597742000968600352995841873846611222326215874177677117424657545848335708159462076277386128878065642750790718514639878706102806220225372413056080160391504388698913331451941080691505288136124840640488696740136099740226860834923749683282891939131115583277140089349871481369765386907537802975550346361027641599447445153710791733835592851102369279280619060017447280512115530901936647202315368093132217539825860056093741040552951503597035949689672569809114266108434239475033807600480726203791804919649828206855703484666627303789030599864920046653172665074349612958663398586057592356734929508379076397289898050708773793131990881348593979034423414283376592818979140085931304662083534046180658689409558326989941334315950900102384661121055176518240286797717786052793304610024304296565928869822809512722742891772029694262001723019565283941087643525732598545364271131930954989600309993576635710241911875807025635385726374265171010071508792899317448952523781676862447759437778200462188528270694731885340748193161896360180123359631989915344926857071096237002427713793325386411443966897188255107536352315894505765866486130414759309977857797613336928010457846131603156714224370899533948938513483385323192748071340665852155023989359162150050176675499946451556224483053717174481340846281323576960549028738594874798905731943020021410558699378649363580961842451430684662182620698941078247635797441564606015388621922734426066245694638718405799704817865887552625125936967345693992286330938181635296187496080948522789357386193084865373784815982601452473286662973118775192149013932912594702282828739456244296544108207596670660393629917227083739340332222931504304978036924865503942714075185021538902575250818862221384921758979611247802751643978671906298705412258070284871357941638994821453927474352784716078121420763951801823964345610489767169735123535087382767581537644805543614847820259981350437243355902405704435520725862369967847258511299658930344872041816951574633417794595314296509506775940885373331335100937715669109811752949826450406459049793269571800825282984145142101485851003379439640864870882756694709887808895001873876768139389270989839595076091363758650981572951526361122056355953470477481984778129091922076388848764883802800986969369136308919946732595183403442455840683825520608135005445659650326971638378818063221821981501510078822932125503692581368315772241301314709714489159523537956030582438167567892631602634097489127046753440382272048162183211250545290539581267078676892903295761852417322197666069307012028061611011440969635359803156880313962295348674331644542664344257939470193726686029127936247926931564503063859005608513412982306048178202883027745617983930510258499715125470448014778046574072596511810118292658289093008923520638196900410885237884654453350622572868786530759863410864120106678651227906491144488607589038182121376195546319880813869684490470904141484878451636773607863849638788324306363506838225531994663335858218192094697751062780295203020881792871223116065425896981229078402591711271164800045584537160505592363529968596575865083912817965192799769296493546136214080991625523419639022291436013601579985610167833486741714451795651060159649346001272463809586830841446079207365620548441216835132299068401571937531088538443746437359086210546974187476879873386725062096976579746582445744392638688760207943240119039937634105202345901278888524260686069991273207527290964152182250149109685792439635551642738916155321145629336696563720891314132386124715474824707013202123383823689825860101572711941753273527139497282873858202723213512161949686011002815928464707488842191267774064081119060466819764673566315259215142850832279165066950596083432415579999103592597075944719267014612150092610155365881412978171647981057830310015758747922627459548924530407067485175353884809915950920955081656535816802846530223564117555477346357799831498497783573650504995881199749579750103840656790665863716418110117138176953461630254145502268543627613575645349823042283090868992018976131607533179533030008930324549674624969471958022228566652227327037013229465880047934814937167007711632658165237040292592649026257198359414999926212722585596467576543530519595125056307811402405704873983676828888506426323848896179233150055207362904171193930486365457565620119043812872731584576626629492915020678870306745257846833211668997084530979863943016392756755232028841524081283108479244159512916530763848710528352152769178812668272550216761658531416904676355944026899310977716349958030975760018407583120886563665349300779807735114901240057493504805173161563545504824076101955384708133081873895331654624580733602125517023995551019173134897638308443939375905996285972993146487655667628807270384310151940181935422437873751347222582370575474682500201199008415423408303308345650205572450495119623456503362408994827908351924140017378826491507297807250170312108186931319156451027084796041865147820163025464002112498811401727700062818329801864189821821328423952242797021117157681168780595398065852685024244755180370977146709205464857231211593124812967252091710596469470319179583991686972908803628894714790268134620008344948221525237914515103038821317506648339891104938255246474736860316398530377889538186772500694483753367109797864325171597562370032041153295945051986946455555315035801854766025584875393152444504595898347267877328418363633240983088756567127855432754390251952118261098680142895993546793173945880614997643497635089783231480357595692985003434503582451699217545444101138962597776633748491274445773717985703068902563587161775728836666229077652607225717676030301709254800497771059179661371123693600759373936178452827576999904312552829347873743351863114809637018576852784346760818785346360907225286861546396895559616240039710249401397906766751269866118460174946710376886702431482383750590002230380199077081580222562115440264607300224427680072417889184006560077851642582399923403627025990830163573697063024412739293639951424866299672079979383828226100920064025811636857507336964796494986665357192458658765856889638073621930585137617518355857202875411444116607790187178167620896906182518666567598987647330549414189727366309738267770011054464042151093054228698324740600096729799677882415102250112909507826249895037691140483171361183355737896193458927417514380657996646683421787581666771260048590864979385783515891868241305360634470967677154125399538079032047142135972433450713158594183043550652745763250309308807737812358835363901329133705052794547467122656361661983496741497852589198100663772487182105120648855943524000071490580693061977320816164447279149645619346129390317288558458352911749195233831749727111361354683884632804514648334901451881732097485588336420107574722828477396371557300809914544878338320719906880161299650050257255868007099563128555408740112083182842575271920642398955410902630238754578258917364230181743644464768317161912482682837170646038613782945045465144364310475631304895043993847565162592639936728434554612652438221293131294145287473866875895389253913688654489820210379646942915058988397447873878318000065418373221402691697803231963982070838478103935848619813704689463857385312873415222575111582383357578831484386071704959648349966234562906530061695355765035708786054100406418586113062308285616922443231281977066002346120263633552157833643275176332957585028619882546097761443014491909274429544273128714281062204945169033353752664169073936956785947551456132459326681729714780718178308978587783351780951528003055793001314436804939255293961529061069758466824411138305604236356127705574512783565971287886852987469379675036291747816238359825514174799695330889119889134282362226473711030943230560614620971265353959251555381656613517833094095785376666252682782764517516710710943297419709982134744053216015464485732777561988761326382131454583531830176949243571541324774909330808625362382306735214105171434046622855277678763656934303209324822179193495828649983169514652239025803345293345704904113096332322730167635416926457621197252919233734908660342660937177092046338142664927266146165132396414506264458101632398458325092417722846645098301750758323590416730431536094605973772586795173635993747320520581849112589691658939494402083986844888765442490828695887483311634916449471554490403950656248122945999643549858114773335159099355414800325718018521432291137773340865748999162039173437982029318810461348670950281106428710841103644840471481360944399499020002489773829262858403472410944774618433118724361859065373359497011167359446169709469722869993407565985823150442845089655976267604647444726843850732494402560067725915853359286788054271718613335854194712444319183317015044352033292425922576559315647858253279346283567988089373269419714121332758179564390715902433917278069331221446468575997906762976710437660591804931721674817927281425894461777959030625923443559263443943831258090849585075197257459704499788125003229252964450999346252506789887371343579924552767032233567880662591235260367043390761735487478815962761250432988605466508256889243009726559120698663632600107198126354290306416316116390805598414167892880658080477597275568731833525795039104003306657758175179241519417919605222241957484617813943039738316285905045462154887162404477044968818336247107535007489073933572798006129304596436258376438787963838562508193425942782620749145096687484950963512930054121251625895326129016044924701829610274027511292724128308639400546125634480497891873134647060188114946752122757058864273821607857674938710712515720314994770740724271559445860800118713920432094220691320369755055950955306372401197267004826828354915590291235144367579185145487637495029773893009499019829358726418417217356993940146025662379517538547634722277250597392021783746176566758698274105448024018309855219887567395378269009953756614879465082068523440184679200889901626209591789293306108752366459561617363500308435645497421298491683562406304977880575959147498110450365247479473488709972159078783245702085187849059728779515429288145280052227192055985535310193316361367288149599824000021971638881133184809195202467899912412646508274965441023274451470092050531412916671279488729609287528909401461783547218446580579676831832406011410979973054577542277382318302956213066307959175827852232578002764334956233734141319990600539690083130683862195249301272730396906062016058293971271365763382492518521168674156590140660342752584997267499285269878386627175301768377629722887486391251056761612028283787071151736138619801411240383106763492582865146126043794030129081159751470620097961858809838795145454821497200377631410264185731204367644041409951686695637207204063535652686157945046911761995549835335403450764590973543434990184906065855103318418058159207545412086313746404267469158922503649430740374907396475702608585024413801144563037280313610318783894449034849314453924766611313286989297841067874672271949207709971017012037723995394712965788903096780289931039833959450690125072047870314507495472672117838284151205851957332160266779651033993462339117196450081426107333604676092900694055746027036479796697698301696747532141193904504343952665470526301152658961214486211692985997828108307818264536842348864218723987163568807584943873644188994293054910652095137766027814118875947565174922388889757384517833322073414685713539939114247729438032494522738965378506583981275593676956361791264891246828958755524325968008309093831010139597698079640349379523514960505747608769344033225272631025705564687796134443251801652135049475977208697341637151072169657948606847293803398699053106030900118580065431121441564022454278500304919482878631191865686301223696012099740953480876725536404540571254043351686842528054384132726072900706675615574172348765708925588608167588044105129352413418439077765689602569728096566881352514652301183490469780661108184094534222545462638713586873441377701959272888446937348115106959187663646715463420554281110775754766306564490669148800304892477625773612115774446312806783254781696364979099509614425592818231058619238308483529471684733276727064466417790865054078853720578476853064188275661383151437475084663230148779694589275575167469185443179165730443337296604280192484411932508541337099076554613107999032125675520909410947211550099711282553761238311275123302134908816780252640963171275506322022704669066095375590079044007904126480459537540393632164937500908979073580851914287715527342918225396618899925854974004149974518819945494779060221787190219359027774150632212656008485718600228352456382694976896877433254262600858132797964458472915705621474456150349015494321151613699523753462487198464647960005474741626165283479594489148539160840713083313939963778051343736831941735077875173774104063917654450199642519264860844766149037525361222253431304683718892991685050430667877365468941485296250685878466955940089034949669028270354378682435246633887069944929839681874332754232930995111179762030897560960190977904596162882853420851567752886316117806143469361454302795536425875417013406074169603634739848276254077002693847456824633844241212055803292567919880967613503779403156242346927552279638359732258041768572058595059672649784048764014502698322340271308629416047394741850423640308917010596135400919572088458279238012622817291199304111655471699543960094659707560380197327378876666026060318020802638865059657769129529292645845264932566537571110992231511484644444367892415314726179915938759559970419306256154820867130376070448447899192014737963620294803384310212499523629360387261694770645635298724261384133665552666367307720920365572296394570361942161456236174350330507373727077751882956892449935702683847724326794177934420428073924467649787619404338652473502267862389157908249715051905075142358608028196709118655387753344374765988094737274030116330664960316466401391321260445316255999865290356932711803655084973126621718268720905347259495191727683611725507134109200587219413519389531985141564296414527172323998578025021338787256067340078359697778319198489342029527920199440571019276511839404030483023683350377785797853067520212728539433948479988265365074132239620763840801903573062745595076146230847781850778640002517827775940626605785570399964504550699388095765878520068929852379647256393504772957769079609502873886462986770662091654465734155993446772078010328232889323289995004898782527863299015772027040991802085947402779665767883185942529514826620735403161070372257996683646184758731590549958604378970718235541978771938136403012965911926740129001673707829198373961728997245406141301053160838069033173705002027428514995590894595365837482415026397040914082012464669061778799670174815922953234542387149195517100818651698888463105425754811375876351083502412487835289207192759745912109897005954307213610274039015480124014082923694035605897123464220227046645022972454903071646774981806906927222977223032363138101581778999815252728949080263800899124539093556608536840864780430401499959969302151156286623376900878324796794386550655785953165834415868120042728394972466635697239452807677404882838921387636828984405562353714657381791974678689317630592137913480366145837789880027484464235277536263495981301766721645088020017589453995405341408442514923660648172788218383053694770021685550985377418442838458024792202174024417379324689545978715934754385147170230962166689198041841967341918233534980303192148568985616264342146586664034392005572790966017784604325876964379994568508454559536025016957673165404522708609869850297071039145376375265602516407681776308119911971441989053772448464298765353609277004206073462028981584938059176006757720373520960276079611974677096197506653892816216790558579299410447178426386085514455410933135171520421767627806347574581771012998752136660509834049105847805166157381314176191553264135888871842850705476764624665547677742030491879166945043337197207529620994622797924002577844400928475188625021607764409924752178597582901122563584362378268860377849813630681873214336588775831456881274687854921272181517849053241993314287861644621416865238545299520803565143435139264336496675681602824162350210069327067906037822280127348167954718873913674033861523062928910686857069176474217706721690941299921414179031044532095647986062242686189716368783124476750564075208500428738480911725096591075057421932363830207680690170482113121016176388866655436902643444365656289801722868313729882482629543035162983901487686581622093078125776843820266359391514135569281101141201547226243608777068777153825185217456779015725088112944573342017188679307544835987899878921876183782713629587014961901865666030403819595975079637388156773629818629378778182471831923123074453370294529351453288331302084859263003495465228998947695621648207379622621152209934587246833199881875033195080063017698404259082803833939205870538173289587080216147764953295292694165756270148859089554740195598815892410329923046400129317713225349005719695231742875183694173832576152506205054624351516962799465728304333605556619623405958615084868226297151273313415112734813164280024964274107596522750508863166392047663565413219259718907533571567367891115660460010353989525130504628185453039239400774905892703607988639288082967287818724495632653399276964856342125305667975625169676403806623957721165658411293071532401515360629448100063469538836320471548868178678170456214282932592853946176659184393805355290513129913126221298658990732057418001927285960603279232137848176761072465386803686385763493743101713287554313797707451344982702616165111444634101811648301064058864879892936273510022074959596412810874618175439937534686688699078547374063071486597720022362621630494297073048354124423239638750870382581096141172336383862869385278602589359182218403109538053307782812921930119094114220751163623878614338487165490466295299927170001789829048385272471676403375605273672905521645442633191525529642119234717001106746755194173320920431726836627685988277482100677520470236266481736676505665887290302552222465562783726652300072895916890135851613792306959080313658879535274033693581434519903972490613474225561804528895944237339167218821604038072013457810540714572283213218819311443186541243071766099661724970012824431341369367741702832343742328649899505457564612458656029159556775101251752088879505935372734356282156415583273306716907649469360653459589984928525180532612922304495277839336768074245451882156204222904247126757930775289385296831058318740091493611476979826951423332121708157244815552380130074517888115705480762709979643231333111624356493791156533290540730011566811764699464517999043952070174434113023486762268263570519779563125713360589675900265937346539862329778575509393270413517878182099376218633970299683554723841921324053537385985061703029810301485836140647145961214616809736726914326894675427576942894479446156370945473182672819545821372168120624487757272184255162295340520192744898827074640840597815316310147013473205401071442789639546909541273896460276022473326832221971179126303640127630063992191240462947062002847292660582601484420633277137168852935754201364453330311504651792241975449409073071140868823721708087413157520674130183533743124437119100936338769244998783505421497815754782224837765694811430934907605096373189671172676408569981008948490039915826480383627255254032194338861406884834497833698200245109182911797314020177433554079689825722314449933107947779932387130200951895738252350629774972348795254102953403196902349705157900874823358839305129651604693560797462638154779479398252894249796228527507614564348640840535215319598346280206546675097526992736558330666001640982671345093903222807361414387195079026855077069945992368466817840339149720925632444394900483602773826076153853554872701828960755573787876115293851260322107340696733530627143192933323999874507717371855657124233484029658765532603436340318965530504583314494649396807475879297325022907681731831450893272924956726579786914843649759192272547592468024895821320806330434364801288872055280092438791844213617577137339772469268479825201742133027037700948691563280983671690485282749273260312766685288468760374987473167246516711703974175083670572037102951947530025258636374077930602042716865239949230048692377361673262413657983667031027333207637588114652229049577769422152626172668774168994849295012722975725558739159498689813333856420538045336911468137126892699878902874220583432036868704930421496316399621010038361459315908563469168266479256690827210909201548305812182457887000915636332711905837514264240583564035153797046757147731586855845802916739241577913323992600722203250508156429299755858091032901164497108514673582014854065636027755308019987596374126752793375696854059871047691854142984767473633154503261745602869273253551743310599993817593526265640893999457212580394939714410088807841095730618939395853753062485929756016790716907367333972654665001824310818959982150673481906537736862276804866463838714125545627694853610320775386856949013349500905046862308601711555869236253113137466297195490002815079024002015427083109180185414042137299703575040552072293817349858098931975897352955053172567088482073469941197340098423813479045468238453095817259138953250147761513733545260348428172071229255358277069728556580877101722193263687549273376554353103552886138321380758843680612358593342932848149323418910686452038720679277330742869393758122316543063501693860996779757882951547167443765152673690579626626527823513619578327703211519001442865698380828663085598994706880186066898569487057404075296844813806337204327869611765510242686554037053294525560393977841472799168970521596059188015039231117572364996849624695065901297371738932569351491771876377906957228238427271068261767863685001736603582630581248185339268103146438784953503786401808316420595348334083603745553642721921474281002313498112697405035401780813641025691611950358938958104753223170941256470411574088039621329678675174047158451094638757772780842666738415219884224118936102618293635386679097696491186739450073993538722622363045953289748722345485806623996673237246701113286175774365269065844011777808563304947300869912835808665178451243301957099553592072926591715533763411522217669382321198382605046316536890109618821502032948115557841628555629633968330374543755333414160534784255759198158132957856330085843898400635786768849220589709888514011230013187067108076270044529682271503496061348656696805642831596015782097184157767576634846156123775194432143050915510921896555069579900671448628874753330240355930776278497817887839602677583689596468878787606176125204822740888911351934631483128887810243225666588043230039946940137667556446259143869301476732307327174288125829551933013884526558657244401647245675823813275113778082504631801727413458239448389575515182499746306296308618753577399167489106333534173216189313581951633277964383187021725456612103073773262507839139619879947087925517919937268342856898812601655956458258676277596729260757732529853720601543287660740620078304995307852305777303848795326039397538012451950492541101818927215138575758181190603693995771814304845952645659269236664445739880834820303249821136315776535694449429146199444925790320007937625631842894249418329032491376952849203112413902543805013734626077058906590180383297954936005523856640532001591009528880384595004939278394105556669755847523185620157173445127035714658095594710713563901397271985239753393259584948510118674807131547527732020399423677886861438457219212121799197384533038064932723344874478178016533413631215955929919202330404581742014945182560916952450532905473295589857753955378060028405911775803571004763782160184030967547031251735619071986781896047589167263769257052258097814480258929218434244340051436655753374610168608686117864771974305759442312140700332656671167253199477213547569443669720775302520779502972506097896012865114093047011795439378436188270304356224238010524690922680569453640917682141686613727929095166630550274846640972097526657849868450403707296084318937590029288709215120965989062190612915634399219951003051410222780273769798837505124020977681729110047483591590221215324957736863488622266877390967879903527550787458233393364246229461347891702839850186311733979055385137196001180222568009711616436467578459802629872301000918446283422919690952809325721973335589560031574884240539280325414089928555638480476267686262252862336447216643156771890911924989309361357975493742593420981437566753549318829954649692142974357293438131319356539014520615399486933483215103112527376873590403533624106685334805916580370352737382383694849055828562125952468562116990316140488126163394990386070472938659631207767131526322917164741806910851298239966612439903143154972540821183661991810038610789122531385849665761882627592854189319117885302297772807829863882115110326024263884113557024174583648690095859391699288811222510893942603766684110342355297894479884369528158613006632910183149316987655909780540696922561976829044486844977721161279389736638056615215374382435097221021646530353721112391481296426556793467854825660381777912603680041664288583104831908805238232301796494784994691616101532364189970386848712701187946146492380277969255442098703131707838630606384527236071086310438205751658798300390699829621316709602944486819392646570608811550572798720061442447155311795394419426159017342820535769821429368160740303152220481361281929842606917593278061979343381542741143843953059949365094342754710855842683358366829209953435238251902848904342139520020835349534377249169500706800335927396691824074595529442412897807545445639429872203792304016088559068826922867423612469862825445082483608219238673756033390014260076773349088334583898494417920118022710897048736810732505388436130463636568928722017515708236290488418831984601699527177618348927100543543373392393230183099221775112338841197813404036260294453986880104918554952252712329110227110864127678102232639795057740746835795049876886662184463726847917807929301965100959013868451564846883101504974327934965546865491344871154119259846196425945940636085687583584430706182664873699228546149871026772651649922208193380476531439068561017862347244517005051791380415561697466896102656116114188993343190877522745494427759706393878610261147978824239752408018641766359213548190681725177036141742407213201764280978001952312277786641589971482220762020029364979533889705355001966733848624874901193376552481599397112285979927179721786178110690051835179483327872359385386908150623916934096663233245193944223602860893086120076712707780366740744263191635323351517596177738180485691318580284593934711055952893800239299841869743277184839177520359131774323959505187359528617310323154764303434066417667845765672416081955493779796880699624085808205400093567783258893569016464056755292891683775377717628305694505961332990709744410221093581018844674930496656715936538153209876704238707808551412665833601705017817686716209642953062167401118054799170370682363818708528003402987029449330293022567020954626332480948388791217277027953162060776021911466753375009944460191885926838358796336944978887190700176607736219317328168502868725037289530639228813515682110297879444775601993695781744971159559851873601889638122921681545156840115824694181936038914974641857983825090578184466562625438181820094893068945472278170016609905350516780858936628077894688839852959551856344808384084572985767637178662690750910676677184770399844657068672557292409390731812339335867920554600481605317738615820437378436408580482875577648998891298060018719661528534561471777922935395612998251504259095611155591150049638474844480589423851733788324258190934378925148310736138368699960687925467323811757292339312409619811905357046216538805182669291783292314979207007645552365599775380338070004732063206930088652674711474105746895686461591042986937261351659953394720969556398078350681222086950943241284378563805839103873612838545900888980062071442838674616587442937319864815265080277813352364586741929899323752749929723776138503193910606848649484678939883039218351903195157255911611671827704601856211099075311996101723582108342236130428567928559070483180328417353678311425811821410172205866331877310003920712907601886448759804118421171765919671413782442693323906220768300325643994288801159890310668340164980303848306519393457542368925890942621804636429395516720424985994545552669379452239493307612290082618624399062244273232480935019042320898440147026464511534041204870543200804723131622383963180362892187491607609642162377982784978799786233849743615718810422872495283098353436626037056044814305822221964874012621118620297989439216889931834250797388122513663270613230016503003404413189300191806510833883221819550455400441629450642762828736994407541194553132326387258933656771044569088590431962178055890428492390031835576188517430123423609952132238198430950279286332038322041428947324840138006160531465887131026018459619304574447676093937109136955708093488585738533363606357750339480857330398725353721528868550402634493155118155059858205081361400473735262947846856071923982367664214216108216917641902203481695036942303856049247165530148730948168331230468180513838312850740741532653435219127186391784114996536712213238624170232532789617028325914291553574049213853251002462334270990011552919887620464679926575860923381986013595208972721158635690514598017638551983869991142405924050111195764383696017810864354563256619155000000476085328700313898918468777932489782244445267537550280739674653658724667218823222795267163340378959427993545602881180363640106407195413779112763780412169971960395221558289095647727500516780119308938198324457535308911764118926692075463180407228339976262722043474393920869234009871243628220859303507528979025879342772201532086930376170383967318393863611148282423356164992927935208197280487198794435706378735424395035559254516285559816363782004120563776682636085233994776173018017889664124359119366678443768771548103658204166153606711883488986120023502910642033762791265734045345511680246444861953658195396074934126843957183925705031241097640804116171260556645378929436914645032147668726279926465469184473156433631269298189359218567753887881823651734599336138425001334797560632544469459220657789438448533421714777676930070440931053539724899963572510514603503837442229001415883388734459282406294014090171162934409770677865123226276897886970046958247992167012384518364368588244586438476675062930763313093510293171709146127096645042478805055854641591109923787149667421865816799114485183843855610853484127403169328453761977132792995284455507022784751079148584510652468481508280933904265553543720938463694469429593519077680808439826378368844256747278022773313365908488887986348891648967699020770171649213225332274439338182282139187994971802663667051274781123596270784282589677910284376219479632858339293279836896189709555799479340819636051180774157457605009930302110929208714969261350905718605465145532814539227804335389230535898754034165719854454529283217180235081288402958309265850795032244558675485938859086151488318941533427825301606680869422007095000138577442641095208147373077021328531219102456909385014108586595399861283418912278064005414973570947957283690048469233364810702707727254955450528552944249851977288893801329299335155960141484247191704915967512871184983272654538614305186958148911530237955737296836928163387376177075087006510334372641053172105382216823911362686390855022989063226378845602316819548460406037867858820865297943575204374961052019132022590931929772483309000356103611919315757939439598484287260649727232036266257181570267131001000795822128411994389944921466386897691344176294761242956354394300144287649734155377804913312331182667183280337462561582034538804651884594411590187674176845181512390898248927961636072232514220561353217599561300953788013112336616887925924322226998371463229008701278353645363238489195474494104780044596391884769849448758972486463041772624000887168243887829291710374614862196519534663397363026730621417230242932790686898565388265174850160919615564495036720466289139928125748818504261636375831505745403738067355005633979537893702244661319413290696748305888879978259289580462730285508766707490165524272081409154335730237427678388212813285120994239814273085093249079803685171102634778296528080050419598192305431488656859241564047811536164824919648165762756188205981280900750132408437049245714206976322920798298715288318572855052907679683113091847506375282804868769605933718301307209712217238005798092596072367019345529424435690487376024419749924779516926961375372999585451092458122123620009235269976072227719018486427461691742008072606935934724884311545065461536848996599166853170297949342585350768268746751017993006995642174465207999990718994653200156756843151788248251020686922977901133974496253457515585267505066411440006372052572657499544403217962372502108424710779629451404668000924211559422444476841696853239941149490238495158372508332881035036912708933931835706464793973438000443181370742606852268166724268220253275934287648147957372487985367322203211176050691917329665582160662311212380691059948833818254507404612191414153750981067727422476328765129713233081503243386424778326883627276753450465765178008276126220265034907180334228150245019816450428010271503223675945897936237441384693272250782134691314078691210006837659088432710496035089892107537421119014966847474484297159244690996036911623133328322659174322637453926071248845211431019324192231350159375644487654151202038448775793995503489250131601730656471742273041531855734618518382801490027315119687847415342747362017046382423944827405923119998225693112798704598185282092488938225415889135417221869223586268932117605278495641810443987712265523201625184979924239500812416905222197566732680423639091672390245828750194597045260657128282052831447355865318685076283052061715368109967761044661160810862212083290134985376357348132661905551866433522410926063309205149315817863349067688024905173728531357635077072589389000017081696162183083279173528455671240304083271934203288232486082555466874773870738292251900004865515624801038445690356605686161478771470002003408383362197060853665584303225611144962632313452391423370442394357758991691501799115568397586619441025919175745504360064362462023107526250735184501696705719993432655288270951573293286073075917316886089941511194107484305108189531192007526090050589286719260127827432758895978677493744442929436527878541665920995587709929724273328125502726072370898943133719117351259298386293158957653857459333345175902770588304465391022540155730342042524688151264603093277810698518915538326277681929631337267415810688869542940210949784912045622070904890196216411653904597753826774666153499021913557736334930207436722668257585540219603246878623476883338272370371069637035176706930463223292457331547174882949274641073768381926695216469186546940038673816266942754868274481797525203087065512223947873938953133215954099190814182421712874369457221779331870504067914290131215245002030305404426826906891450813467849666346750717467734075609129817829186861548102267871793145836717069531020486188632436968096941614409479273611658964649623666199810971832145757894595129280232386058689416157004117610040261381672949552319930306252639413279588826815363931176667020493925494926984690175396513537636976655529376546884533502979997969272752548001630998418418171931848674450653768351971796594504839026798420588551201306880584944334521503106056715636504235402087887973049224835153234007820698417986740152545110151506168273946060382618564025193830065844797843905504713060184978336620801018633588290720604109853624397203198420981362878566596242210209064573485884616124411024654368585567549285029463742599595063491011469848855671136348258654270425344377125625389734848844361519436581136112487969615765284353902139815792902839199526900838279294950300498903418698092616409875762882670445864613083187904678451196827834981726522336300872724841788649318834643694893029869640482549147693896672263024854146245947638750713769958365374868522345173962383507368861034401332102873319037047393447501154908038515285891964682181278559468443804024998067948387429534740598465672702109445926997209840570097920153488802528058160139787690049321958717334095708133219461330862795764635057062087435418783498825748783729658824162255642179870101794595209012579541264548989709190955833427948708306822735994994583598040874094828222073781661612286962559430914008207092033322998694643589214002163854648913082700143061911640685941124256184511492219505994285092390824335753488135510328763752315875342118756959992865526787017337491456683114806012651488451702557500390451443695744006030729720703740019793458879356102709288425431395264552378594623150105079152959375811539515725251607668656726379730636327297675486468537850811179629987593187536550225636266824206411879121941490863145247475302678125324145180081367719631741503816994677674609080130753080682900815805237135034407137075328261578833085740112096762089090130913250742747365343422662515781439322096379949033182567605472545552789305706108457649634019234638789675119473627614218166192773671708779988219897458741021545430629383357467234472424852827060285410545127424512114097557624239321047723412364872338245768144562813142840536964280292576782605573430695223906920943327250497955818369065166478640275479147861952377624876400323090314341712189259345858014163312616565628199185743609638355373209508287793729101477113261464317344801468544297442904410039791673152572933267131821113623354575416121235909678640440942186902352607760928265335867038160868166166788916019939788954037777907363781658146826681394380115290386310753341928038394232139589086180497396099739264581942534818016249770311468445157286621411721677464898527861685911134625955149725752217570833704006530474909285710084602368067406907296985014746042258285352409046670388613547170685494988379987751226760979075096435213014400212578611897030635552262786516171526631916087019116696654726766883278619323857789650272034554201475880490042873164026883087643104386869005683079378715174822114141841504752733887150913473026260454631692208178057303015969401004687075326766557256824132427581589090917434672386241714712111448347119172357794759665716952181301238015616627344135525241844464624239057896106877754483498705959878261796108780655208343389993678034541528240530569519440976602148752282776486182578916174392815173875745760994659810051357842018761528581029302618115537099578130567135633757983661075341726529331380043100457717912650262551248694012441103500385601031067230831459522593272778640066403164476177938772729617104958810192332713778046568829722808429474339579892702669359576704294859995165633388429375421811174393250086805162206792517845236284368720314398147495213491732146118331741806899066513234933323587279694942937433676392230900312327510180584079790331868083414511408930610832309693836009286306809173908687049009827701716846393769027578067055442783525887845511102612989587970052806974147380490263103947872771678944958644058913083380850175103104640244449470268488645084792748692247321666394900750514941193247607172080068974835042149425444982711711381153736128496502525948057889225748095209560252294173235484571744362242920015944823132964568720488057754966715790765325306417755051659713164521116003435418059213175393533518539499238209442437947630029383870930269154540840375560013164661103650451977781818881000049244443706677551589168320695692066288357419157176153629428440581708642366838717333082106126653722138440526312988394175403363915961849794447376055130688737772321299059302076339707076251573409263215149418336491191124800334558336143938930617426757119308997117173400557191743734396437528434049646510644650422671147681884184102586886464420649838921138732008740141688990414052752391063188264236633924229214172198694903346961197287740881683571931211903756494070277692407495333248393974936873122437539488294056777738106278452117196326214932931435297204815765378912585034188670358173235404080686784097360214312250233993260707827694812259172457429638250785299575286130999038635031075082561020977746570788404516725652250898643899559258071997848174821275076172109959308109871707748012037736675604233379734318334620628990393615496568575603803679231575471989199957798520252650523612447413177982645009832094779850656975091253225769352396951224829235108981094195057876705205454345735142882866878221043411816291324990510784667461872833488762462250565810070218020373169551802896266480497093115449816342172704525542503530783282824222869993871382696514596626801655389423300439687415437140593237892381193937823031917756332155436499130556782760428263233732196380916068288679896363192877560737288043899750123426982528773472498720442099342338967750387762624244219305647024072257868289670711480320639735228679307599837218257674134859996687239231995243256034302199146529586084330916550211448845695157635135174501025402454015232567526353704313246941825458913248047601002148874841187387255923752336542232203953980029617403123079692476457694707253681852233625744170834043184880799136685208513449579335600051942641911323086516695661795588607691716851254368476466897030264113313962687553074259466240609428036964136648763017284414419089734470423711796145267060530626198381532883594058476177983071353545698820014980622361087584321555599898475566522287767896370720310247428104748666611167503032126599667741234990916063439383564314768703854801925069092305150136560746286915356897731358392850913887133489168860537745104926152911882029274347794995555714096290108547473462379770181167122551485710036036612651396346961522520055257253359375887705705491367168983876682847867386428226152957249782991615364932659855033574054703418585462669407697651157083245560164604119661050026061940926507160127059039736436491186081811815316895014403174495048885378252387739170751834167518470242342685610592000119590769557598605817269497636149330544708774567901913746844369317301477368796865478340876201461708246630959220846706094937505995230520943046847362477525823238049609847940099370858517741697992496417536289515462018970649292996615363988405225360913606696908648847875065598015119536359674843026961249614601682408117084913553046529576151959076335389367769645222916474084928267898357004957839940139676638462320062331350667482432356705627996182366401079962840134052338501504566378030101599092819430821711670164393663463723314219331066887213864552318203319585563038811322898898928256288055654693836775019794359908638272543329515332745444835428750007228060602912160849392938312838712366503123346592305081769134956189594324795956117524169519997823063537826465073286815863258374377554290995838659653342424810535290080643537474524377317942155510306800002454491742004234373298319573053431854284502155184173340519404283397114350219659467181060514221149682307657839162496669177148343875872089733573471981689750992657352334330698547939870784855703211039650352672593729309089314740958882016732215943934007022633304214989742085499184587609989300566438730916858220864266629027517380786756022036196411009751874853351033851502860144670872720301224729243590093558076811819722177678712768211607953660561387707609313213585782798244600241041961552097061797924880073605079287835861738506593929949543962563893270041071403254423517941395444961419837776360958890958631883289685966723207566527381293996143147621931101765464456178610256431495422047992139879359025590106279290214357188560972612690220650787388472958417218872054097432594449818253381952323017091455241030855057867565060794138258197821995635705231567220485402010528238152352633788604326173201034503261143896560021120187950771274891635662483139300625289246530764348051969408555842537786450646843217902935804953313853676002798249434225347874850929159687247620945674138305449727836111450315079549816526915462466076440482457811779084806866605470143881765361820660274390627056844234821343719681611138328396301207537991110100452120748757596443478960775060118097445852559504505892863497949161627961582509019958494170959199502929956300745065086340850822853518651307927029180667195083375667217259541964193858925973485943502015410783629878397013660872744993560262156691916223846779165068945329998366391512703593757719254054281861063463394913479829834524021572705592520968908281539419212033289456366083188197439292311830512758569388520839539107832699669202896227065929070949451952123212559524382956264284885823785228065422233371045354407599690304248563020550431605628094986791956741759377035818754589207548685529677709825027030791871189195939145175042447551512575702322900569535540368108320647867139883766429036170738285996761670457927665151906996693750983658552040212933834384907794896715095795623781176198771543265744512230590300763089902003065045878779826376276035726777427314626875664964307194977614316260547955563872591331677693324044768454761007171311684104578617114816663881661646003795328872137492415746186199190121939494861100401268618321844750552506160803384845965513422374849569779146982586876846760641355836452447877749204772915534598689341592615428773336166573098867760491805706560650347716734025270290876807770506680360784644140842900322143356698432099718236262786098869129277213987545845522941228913629227526581980937968233141985813481045354803310934712103669780797690675969789031714727833636692051337124439889731511499002675310208010194402283431021951913467269172620922054790669721135195612964762247372783144067634913286728288729593636267859459635218210061029629220675375829306215179080434379795451831739621428394620183574175552145112634820894735442771983944866574726069857357395992598196010527153799898510241434208670925821593272180376343264474599313011498566014997748110058101771837629062456109132974826079019421863597033610285015686211868211173119163162890764280492948715463079920995900644806592583397921515794641084812719873017527058522051053324050312403037635252362210822582115332725049007702982523051350528876655080123198122353389802056247570468071148184261960167001887645898440784700150533560630568184145966008568267993704926716086761321703545020904905002979028242816593989748230553401512055053473259409081003835113907210805829876936127036610735688230742983119171046690492318171761393125369886714905611245678985733240791930532635930506387678707531035286275706703735256684993916153078324374219706185488181816242587463876244022481480699465662607306990797044267473380323396721276561979613581811488985353500572969508756476095246964585081243836938350290224923126358341490291365894596678207117482941969984991660829137365857823790840242621270567690018132557330832449585912090461815102845354572142710989205479877489117578855012814871456689495419226310365563169148530885579545116659257259903734583445700085736752729316065841340450043053440574021438064021216234671307710526263977679618951613331386571226583512662070610960582276029197837505080136979777070667175662504530951102389768336747672231143277994299507824138878898859967369291428228783102658748471378853449739475726963805583704714777974753950655454443659032950985131824654914696488825743327158416028545781794791790532452102193159981000389764594621714348500742894407059023747850796866530866241181999671417290240684221782010341367086262831990820865847199132750632428555546265581013367423650569810764799783196854420159103194333388425393545174937730941211629002461439022279911266311086253555779968848263193279541605287607087205601422052707965402713719918642313629021398336229054328011382576549624664863925057964781192197979291601947203132857338840060683226759491356430413150593226083156354140182777772941328069615397498697858149242592128520061689774779778345465775014227676116408863341842436584031155986821054068159757377200274521575303136007934718267820403350488435179300528844820292709672971629794778041528033512018365151759761952628218742505029013672984614170890640225665152745880526556781448511943135127667468159152823659397907281461985449364800340111071204387191353145953587368103178666684605778465560877136476305281360377402302141307002169666981716680655169524896437304711144892652486165693855755349177002260494299249443290806511305136869537334807168855940087265071098561639686329435748851964431015411866299031600771996177737544305028179679562511390290909592112700297321898703962677459671029657701889928344013469511450772192091564040937709813650238781899146146163541464730812662633743749114485626736850734296756936091944322178221080059516664167305259391985296663941659484790345030698822236296928402523330718299142832257101585057316081308392520354985214187320703928300196919306798121159948015750368162903159969426898873837284440478132589966367673577351930931703475530673495350027601924145858126463651810472579866157531885976106539769685030494679280544536926969501502578619775762134760292641141808106387990998318317112826416129050609454769035350439153958210633026663520410028216305096282143278645489610051811787952216398964532382885505155213347316441486334418643413692126701036893780175147620811152942281632596189970501599915759319002959832787706003382130512284904827729828023569430131992989412563899157809434593114149449625198423544289239312707577591141937000164863060214630564849912595779930532525272620771717028427898380513573631796985930173966669547180750209576370220015102307779658795947208553853242190628147957655601689999456394367984195566570124105440536753644299643663390375131807547730708114934692491503318918828962217835292743529389613128382442357862211525251752993190364412428520740946621996043725611514220155380842879649167050980672849439444035563322529349174447342565451549478250925109214232361600778808088700178932638118873599907100277248002384252658656905292341857059749948134242253488190876634472478139085439603155000062284290468640110179616429982203666058718137628450616544863626040804041145382092949608086321907797892964081445505085512860044062828285801581120217318214420362004426592348232941339172747818548428368273102136668311195733736011138040145972570067725172740076155686773513833091014399414953980471663529308226653518710945993996225045112432954321728501419304508184590363460914172208095048888447478599321411865201568005239622553056446427186550458302906686038791723453542157274444101489030626156298464695649976936086276551173897469445519622917734433672664301399528458335072219661548772901464371958922800811136697509076596374046872859756078223410903824794322135225633192289381720314121003874633427698459446724522734656326579031617746651517579806401844222669759033275981063657662433747125020086041635515437012474047895631476787448981931674880668386910088140854632222645239510346306155261510084709591712358616018665455818002067381703039587255103111731397299783060998549935799969316770068966807388770205954965175412701714889726950614601771480891667583637305439849548210931085933489176134799453961708664101845543721959180242212696265573924795588202573827898042968217926569734477420958021195374408591507072116686795958919959402466506719466100536689682099344194454165914545989372774282818057200782904922954118368752904413526554172824639295423969347052150531081965846548584761536953133074669217742541923543638839204971944596757336433253803997994738933235314666046355021221751141875540626741435921556808850107919719950200228010099953333890747659288385172556987184728192164338484325638196472337534158785502224526814388107865899927029323162005322146229394134640000368298078666063808235633230646475132876818865146565644066826458812893174647080828634371149166263408125154818385532333576084522563599062660391007018013532092198460407435297643473712238144578791527479720050115946726271235096531774001541394173022283268114509006460670049134573759633749712461494044994251577283175705388468098196818867936652980349752289357133004682892479364900611687082403512855592980468028745672070011189130451882317353144917277517729983558594809227891790219988331082834284840123056483068610625244225509719077846276833721337273953218598713329085627231529820884839392123505104961690571990815360334844273497559416436883787076826597814737412151643770803201245413526371865663555618858503846864946207506731330869911473730559566343693587475366525059641231647740307850593733463600237665389043767730235543069133234459155525149067208417446276254651533171458327363748366772451824424274039317153218594873187447466915433959725224339150783207814294390863905051629587349151741003261478391927942486895294588247264226737126340893631723624963001012569799496874144201780257254268256699373587298567353812752006560640878839350656626944743848502164190877273679483161061093211996933565033544687526887971920734162102483745460181963084575161353950134939900946239335141411226061270645964765311931869502697753751766187030144000790020508038890945307561579709777726946784171142388351088312455710810171859912274278198743213841481904819986025437949603857511880795384494228921818392246330772036649506882680274982318743869051315866236502860157497810561750366294480852468214759326108944964420724683135069041272508579716711654280481724825986283698114312095350727931320183903981798080072278587119685681477313968112198156928077267477053746271317357666569450848913056160126915943318889134799984410096796425545178413708184868530531654217132560126366285372829154904174801118379881830550571449948178990568975683995978918489508828527186341698431805627268737102020768392086228009686948827737626595738333991026538631696781639839911744061424267637598473895193410128549861862241531449311894055542009652129542686637468451415445197895473124652240518638618154186071125492799244606636420244751333100681827551011450937535968864749671604992384995714244914189968246605765645072866788351619300592231741976689702483957699644010973939409614940059930946918908617670169275180277978033279031402385020809953902229832167966403686322388426003515729130709660791844964385905035924974905578264008064603908200757133823868249781612140858766214569615651471404728709062849263541444342492772363277039189352657409355699993124559595166860642995889260688885108787915187818094793781484611451953692137766116015141666112418823485548269829163533229533336652226127526741240251313569363887358977603272902391873881674756163761843082012732935101357974808990905486428365903563784610956143216628167081664638070640794495684872884678963918691835882872841441097570599339855547910610887889414568264460495559953157142989560620542037547275018723952205422485778413705392244058044673163998104023704368682206824681838345666183774144028187990020745202728681551506050097491051229238421424644750378557609292005092956660813533208205867964767820822511611117425423029298473364954861623925066853809625733170192994088940246335211994593268481658384724977938380232858672555931191237473321517774911481337948599683024169112607981483801429438135007894197804249590649553279234865795896430772924270484262507610896797786170317308914386543354732413513122986815753480570477814784201160562758714433365713842585930282395590579278472256767297453219145441987759697171145455740351988358584314240696729052833496289481884209428031167412439619196175320299112533234178551423533510938368890596944812114852503173836317373481318480838554840511685623735751920263649850380602560219633843929879966534398296731494504232940356915599372088688665782984310960713041710829608675082576158546327176591132551339305557460317394179979334697835505707974313130437525003997502973649123904646853921517512771565610801053641989828144422085370881327488869931423842822936705214617347333887760158995901458494336355203426488875277184237447338445902541966583643557702143294585903540400903831709271029076909103945151378815850574820500147518281809900318619520343360084329752873871851379126404284067102389013098824786346715334778553329887861099655729362134018877888456236341187434375635404194012323180135643353092810575470852210473910407789039616160000617009832973092106928572632849162878621540640716530122728269324564059412880057456082377851333921052133476834985099358202964461933163238391539461847059350704295615585507272937981910741736314723912797584239425855479042697962780105158363259026139082114413449907585777062931505114934848512602678461454224533106034892312279157111426374461412568066978138966613954925721271727316496294458233860917954984158359424343096031849361414254420082306729598670369571524276055992157902389594176403466083239510252339675359076935892204616569325961863740033068996524398723218217261674272059051031545737312992871555953734462448548381848018909491889565349795400505335954574679213546732429290456261265770272420836674211708679505127899316787119113941849945873806297848361756766029020943726848681291970850107045198560034535667671130770843574178328031131038783476307960480548228071258191298706572729262520220071551021537096700744868101175730078970799410524761365306870780688994688770933848693520821710285776684902642456340053073487369666413650583013033152546099049100178014608331377912311759206118053672575797246686258443419894593556264945235981896596955258514748988136970338984065858752695606693272498518734163020263826193314268602744505057004152536308592955443382382641023208729466428666634781798096239535321024568759233012506695653735364489833314235427985197272923190627644225868816597781688013427925229408507746774832715938948381754593008369634740669968695224444990928542331585507956409973957971771987220135156541827032213143422774241368247752259608555414270779523435057857073976031630315736069088638868329053007915980617484290612329231365345646781774668631695220792654944539947783022918352520614230390930483599351826256850546774375683959772931925095669504410349542622869476524137343600392323709183108807147790035071818852857904414364791477160142691019175780313647276658969444911953583717272688055193728930384703352092106064973619807800057739919073223534375841076413999904328961095089928130062461532585129115848265560449627550576765219756780120529892867294747213776055913291623267861000951140664776829281458865231918068853779767100170580689223157383371165157284890286092451202322510479572453269880897337043838002174534920074193304876895556544233522981212006637937074744371177571410650533323836291735417310959924622443014540075475056306956436332770117885758917897575532318301053652536043877210382738837870295841996150016688385832248069890816159680664322773996376387409497119009888084473327635638767234787781759105989725080102411145066285087412561721040583525427886084281737143207044751948816491873461841786945434015675645416336325735831656364522350055292993498878410588025925657197879064040166611680784845473975112432929992613205826595703297118854530953640749550353055759017345039783229130986306689425570374574778685834220614743731119460270494513344158295739234763209533870868906383750700884794543396418680315501642064712618858611384811501677263707714542313454820999678344045656045866235207589851998580584315714068018331079673485839326917025082240898667109021345976229945923048294299030288090253614483637193326887663047422173820240846031736031712187324959209264514888422733532429942350381634084903539371297084505401172241651783509786623122507524756353663658357307704116554224383291192555146472709501613075526781182670989748312786316856913810402048219393074382409709082873733909241664944588343280926626181745405023089053365076250756580435315999859115278914135790942644618863723221015621867046975071257182725501757162786234071954435963846978264756211018465395040624376316857990400924989711859164584543261493732908819662722007359682725633749264741101835138558449376164548952589620979482951320084873413278739394657716288516236444463999223061699339505222492260847497505719674429875417130459550313794306744717363499093871556642808086554804017335856870700133448414002435844518516846395127160189091961725286011063101807715801706420382992622040881165228821459847452303088619906906052809902124732106168455614955267379623696854902373548273041907419607985111106523493196966364717018154301796185312776636919190294676676575880719053012169173117472970699929262855366539253448052825391101370072714314823682684868831191522370192382828069969942483911931030351180609303494573248785232699638428855393714580806127343751644460030409570306799460884686537278072721639822957564993847112812487154034719714223582488709265019272597028696479284806665321112530662817934736787653071120219693476516045551192204381690431052664869231734872947756530281242328603959413396645394226185638530392620507870352558917668832867187225377124463198807732938508011193629954093975379125820493993661722723296752935031724088630302888218777829835567672673115461132653269351371594483234056625278113444610751685008505473593754633260695373736612962990230902423610333408460731811894084439268923520533785377722615969002840687697022942310335018250412810179102480748990696123086074573938112702196780409168982492843442218034305329665208962597583467314489956494812603455799292200520472260301099409622832336420589470340330599424365127302392433978468920207708887936471858674425331450253508529642617631034516264951159462384321503784156541777357412923196150992957405697451608760199906308265421485630504917652183105885660990857641709246363098206567364915067497577719188244312012624482163053208605974128757413775048660063902666465018770726597131673433107811124687589981294312029407588950454136746688915588779334233037027716307427802482966318082588815232687540638591849039666899032163102916962418482057439038056067574471985910164399735424558942721561510430774438495921197005487652070409897342036520303454918187644204307036138881145081479497526964262101126988924855967220192766386444905028410053079639687412807514555253754283630677129038605058543167564277612383559576126809143438014629346315903101625876652285579654423331363139093706808007589073692586228950460858956236140181542209931363263325423181187178126020799532849847341296038127197578055251375467801422619238983503982058191933706439292855640742487349256992055998342401289751832232830608906654822115875468259302057874910496235819725058272540277573856051635662777368054901673598808957547231521059251068865161051707718834167254915009081961165544406640957803031479528633913589647317414676056510813638834690607714655779746895175286720179226677490704198747193025867341296556128575530442527221914384479567506866350882631734759958756060511236123455511007633484913082764551949753538600168189555666555950603334089705507835138728986738408582187270048607942896211536833785042143850552820994834226913151864545206228036460933969087458093029096543201348696313368306146459712884637834407205186580272220638962408277743143083748865344451477058190007744510293646386251670092547077514387249484356797235494621541795125387729318290546433561004639356423214099652034953965671435961927254244860503759460112320379577598884092811649169209528391862334013752133391416209732946943662413741176321312105880000910637087142338953852614683658547454293173814101902484555795290088700122378311817854375920861986459039732138046666813329477332742303984583354417329489214656848748390937411351188763994485580237060027855219021095149755491054452390486999194742053108673643098918155746920304785396338506227378073849716290147552061588095182611419151375650436399838578840569761757575397623527645505541566904227286324434535301760981046693204941232220120809009853102875619818999322238429861241604599149449473565417148464637002341295958361992995798395384378704356206038123527573575382404083000612165326176756280045747066989765066279596288129907616945876578420764521726817704981396853672248155023996746520527729272950982911725640302894486368951142710477032851274375739472913876804511381648069537814278001943983723805629744546545932040661649847009483162097324225589900070841865174115296701265537799624572779839093854111387394101511921755023362373532655859475879130615389212673541798562053036707016180076063652152636943612858328013706044695505322328748533940019678655320570827685411730147694369438776045623398434126777107706039356118104302456353886878630356222271614494680657558137791185661886752568224134141927414644210677845021676095477727656104164370141776375895013774309776890332354568328957682288415185406720926902226951834996264296838770495336785131575017697554633901034020310846532915833807956022381367907156738634560583618812226625238906286180470195394132511625204109016748725583630803648296490047670113779809190283421362815532419949700333194168773434732419257642772041669126429134230991603923965825911612144120430196910725139020585433552433297995110397624635294998316758292793086850618948827330645168305847493632386863165741941259824428983074453932294173986220291176490837694574130954518736250747509671899792356160193076086059635555744030945168444428537419132115704885979325218705377441516147745054285685397064210375432357863328292567974300172651495712250997974016328746378240394349032970401668940384357882491730933708302409347791184130152010811594840994890352725620134245521831746346063781132406507065084871568252135415533623238298122209936058880971104778631842317224893580183680386569118785084406958907392729402651017402272251957535405296022530085384073531182241795912829172960245486696997973111266386619023853517094925063174087262820122501397479186717542329256997863188613569912698616702980171286020259008845054249073151059848288355255646247753310499572407098699519396315280670189314251825773298859858242761431673623791949182196672662125185827507262034140290448873325082469456602527731773429301806416426566818260715535597084493040741955665953994047994929506672150892841874074253883105248676607424984595413214817929396894637720569182089801659146127972912180801738860223339929552459103080548505430040616933710956696344567636432130118414390519133976929353797955645114663961366555432803848448369636756584254460700011683867948587470186822581917941224839568436898842470953909992004451056551991086314268871391191012049357061874676241991660953745357258070942977647144474239064393279657906920939992934176382957983165383664586752493292701610055379289607569548006794769707483354320685885718996107812507026102948349900585371439291168944688810473051638927663805619960634867389637915063727274027800417385111991414799738914307688328623334525479648069002874313671366291895926106218382502628439537537796914327637745115531894118565744590266630410325681781730765180490562986947124077109263126882313211327411036748721200770915698159868926650742853622137926357122967958839198037923146662997901111986916114949396381683632339220438241750468965711179491700385803904728922559678586046979483516544470506856324527339916419018569234156272272266126504690898937337068684891740423464997962813188338134456390329521419254786024488255792029937923344020637217897370956662864222646323788310556152510782917295028800362201439725431668287174079831642687999930575990599395399757787055697271451913342043970688198478045718755156805929266605601019284967385036794656289918160041038416278403192332055511659641685457656493448965694816017397318169909604533327435804957954240470960334125034374323656057792285628484658623454136246270412481194915694813480583716905774185060556038155356529677862531462266772753738547566668925757550635971826048194079325033541498931468238080738865347278160395926429065265328842750964547891778018103341178531108237627132404761373186642220319080973951674881385583948348333568578907190545655645346128950398036339288294896563260058706018680286996181295828290707646892512772782902996653200608677252534363876395472059773152634298814203114769651996890657773427342575208605296923320531292175701020241346408976155149141854945499721428683471969765199313148012453387918956907640873123429499282414423933020287616143304782884674065741286698785022551255558763351477936772890520321421127270505829412838964582998957216127263417768621463377772739802810349898591257018299607764600312237828968563212979407432428754063997619647632209836457100270934262159865528702499791591036416156069518317768885190725972829829784470044224201024888824038498589635282283440234824541351749595196986266006462228249216089564255538762858827185579059309964241094731104795851815278608666767417836976258305504744465103557106217392393964394000620935829304582595475209130604123252215855086467512645855169278608821196367125643445388283088375901672075988295689983724623755584334849693997706277658832962796065127516913148481232150002137428066807451272297836707142655052309482422585652102708706536407533959071241995097549313513157368339762604564133777869562900455935668704450881885514610516428540432249946370778817217340409881295441012234093372246107735837439018915397273756938992045674701249102821430399473453193561362793845275033278657030005628150378929516379302317570949990709505103641555551773714920102158681037532408910191543698473971413572456947785728598185019115052885929034969094782094712842986073204289449799725334405611844545332052694741059649596505521065697038163116084781962017019584862322587004186276121112128271008720816907890636917558860540398185501329927811741063265646027372779324243787689457025645622748332069612372853569165762320275327692816694506273042707997803533824730955254955533569370763633726206281892542989543177118705141498822376328153900351245529940687530966144257063947190238781897455888749280892462318734880061633393870750650174450821825950162825067551478264624166887804081492665683792093852697140141486904761852586072826613280345717571494011234930953057255222487294544927698456279600398592865635254569947688269244218423555971242415552838240647697569089059053103123197336394761772438327312264764987334925312734572815834717886116417484753040302765325676392364024666334384445001930427939700499605194251788976432608282654226685023902758427413449236770064444556367256662252398944175387290091556601089069468247861404350836883419585565731698802666598969778998275954860935824937104335064207354170398232907407083309637870914253767021135638202443900356466232101605141941027377037909182470037270918463989512975955832876215672955494709641530905219965812444173399652271548600891458350081507907781245408510310765883766357050665660195977822219194283370737968039260824222128929381920243033468762199320804720821141615726311531669697204679134851670600667331869552531196451400457271886891790651247361838343600118951486586010511239390715516040348719609341692526545541264125749269221160497566218802285890178518313461440994460945391450112928837534401027583806950029843782934350709633839523871298047399544437100183986515483889135567966796176518788079173198923417347996866553104217916897718674394380126938715579828802709089141843321766013711045838107989512299095302270772992154995170409893984899655386767323424644270148298910077684903052460843241955128190238012482551295146235268056498685694772997696670304172631147323799704737435211146264867810912784457084301628142276754266034445416577858230969211791456001179171357856648367992030357228502243942727756030017113354668011380510404076981497219129841334439135374340940155768470994536532088513678471050359863875651464686580578529625620499731434707577444779580473071464151330300712802488548640437610418796787965237829725798759917138272837171284673803038408544694313201232663643144255164163886667047879105907550526466081295579049488056943515481153861171380669173994799379442855446376222067326889791142090181114969339990756991080358024759389761198606120485160059059042170053987743396102339577299279810334680660194898413757982781319913624835984081832713426273965263372731961077947423056932382670617045063821605248173234444804777047651321927974820733660334272531975326812601582528378845412516095461576943297775864152915743409757882785787774324773576174423930960196068468108115625652121522533558175167224389549191725840155164524242865154157896366718519608601419468513847761848053254877895999336136560881233807779530924418595561172184330773038313175643871417508919399630153221386354887741336724874932159770119566441267033382399727951864765819054147044107905369814503756448362726185794518328463808583646646094935808910016284547389575908252301035771511195378804763984992616170249260436623763350968390172720550405745289813345253580109478731300822410947857598180506318443445232438959158014244083507961828975560674951487787834454381810385652613321560895627977564717165574852441961431394197751924501362369970614739325155819184908203786386283009382925424002618766803177139705417747166169339443577717537812228918165491470396494310049258485670760423357221898140316786459836877640269981654006407979322980712691870173971649536493310667220908520978587067810773208959928862497587382075342095935113865550432638734648711574004350802805626856170031776453353274324342502748432243608335365802287570592508332141911125336520543793138610879721353510641774282103222662547762469867465000383486978348359209401521127039209589223968272455364905293140265072861713763052966145930513722829656987320621343253481950724061918742319571464394080801487793622598554484948364644324436833506779039243064458606285567336937579687227746659982566162140902034297093190057888003266504641390838192754787927897953455686359630315418041305010805426549278067195136818962239307123087186611479746702858480092329612044262599105178556136174307521708967661774429275945721954925448707349458225494117571094331560277523107055736006914003587291675534790267020790705368012623929034386310916986647291260902746282148555604903206372217976054477520547947426438311703233002075709563973072589416987279694622529455307184409186071698741380806840269118476154510496820959922953341371581657421800001724343884427502989666866625362770111089059285622965064714741045005015474836906216947520039838282023007066978220567986753119431488155116271063536069463226192745373727754997970685419787229193412376109554076812390678139295429198395590101378865007044123574423960410288994604359372413542726788110193028923175947520920846963391292338479686803441055707146844872373307107750475592975078530952615875258364184524796812882560134384463949776353561324611155898106399634455527824465223403051717562736242177864214250397108228877107119323961329832304450418350257130574972064777342004279531412617243557001162571351609796858961678389948883093477912218366060865979111494775715963072041858758656251275301395527446142462086070880803516701179264174694103029806038950799123031086510170211682078272031595002144892692331100095057795866167757033593276064281915193780717767632330403850245654425336876897687148803898729195049054148241164654669553929221153333249423288082631153329001444333298314308625136327564429289936255090181626472690751715426732376479952695109233273467651919636587297737006202050752801634436936699011782996646361792020808920559095500835063337887719017311006876870782580406910744630557080153147196580250947383423745995244665879753967906628797234320722171007824888931710374434621405241297563177363522018248905748798700780151599724626063077837479970963697700615163323999561895162218072137366751620451732642104663418635690783342456998590843000197171337077770286447911368233511573724632372822849660423149556627244445401000113107580057834273800427371559859723893698172511624604076323654265957007555203790575721895532038564781099727877916848598804323878400538961362741468652068364267725046195770934965614470171615020392031721812987054726946440902216523694023399017968429047111908603308297738992197484383588676572516508438197784047310164482132148272215565223053304271990663654366680693754319221576726718449187672830230928702552833974830724893314977357088165621079883532783271761011063153085952744437542269429179512401749702567446943188061652264741269558799669303439826972240633755010246879750115526942968421339905824643956765421091252746482863631401226646295667528090485270982033791490086841034898148088424970405535200974501399210815193327251118876696653477144341213326751076630235766032269911189646824546061034163390093336161824480172406579648532183044557349002103053910255798421368532695430000162026377286738727489874349902651785368373704951141348104171815723358462800228900078669839023765973476180769869517072778238545433369945205693354861984045537603456914801328599832912431308696106111153578934628164726185620984677824429744388981905943714879569344139243736728028139316241266699958100375846117156761124959719531012314693611087563430351993942220426592621825338533686195015406296440011435492309126691796122457205407723435680084853008786682001443607922567754734842880317248506040638786197429298207677908092091608261104322809110950106975407260071535301793521386089677048871195161942693075290363172363805214882143465921106947589904694964036130885864059340828176740925310058929810199759426300553184885867145079776499202745809750556059429683173377411511240586889342638934671647245223869011943278796135575298679914495459868954225626298250584754161489543548316732718023442440392540673007437798378862986634592168082650144508761531672668981454677759470343527252356764847410718057834563350254972019620792793581147824966515503255039692432726132575590832900354583289235907862661028165401806706215300215684988545170023019709154718098043188800205851999117991849351309445159578241747917819040349578190329675456226585936546771232157258743302817593738628572698030955444055418295184402412957502506048761690109181290847793575889203776115895863860781736493936911337421998940767323634383648651318601988566789749970185051165578567813659205052168614304330701695322834156925619271400554446426702843313289370337384089595162240692522963135452519836981171569467695571611485876085385783853101492582639951242050501972519023914963698624347506333084991321035401433116165014297674715278489219220132674481148312405535620715608024447061766389238617600539735308655300474589911337777624426954071446813167299461110862575658519618206024129223402305489879798473300985914907875347406836805545668246254528925818902930431078790024373236641732330025837310298405903074699661812695579371324967394234610495026656362593389273341409427841307042351985638029893456299848346217305208083581609959990400137628837553153341829057295936920641713330476575711120984523907799714068989677854496856731454979176617435818119207785973766722471613101087592076459944708681916101598189196220804426738714033565426526278541484862284911319924842509164513562704555479637979339803873275218424098031367015019288098450118516852980477889758035612004578406067229207560241718236747665990545377135069280173109257295744243908900104197784052509547437696963965869554286423974923758903418675824053406115888395304996971729739367686227162353329430973792920470536794794326148281366257046872939510135078917880434538776869487245750098718056723081981524502353195209354504051845200488393791770289976449679785144088385642853982453499327713633982132350441736583884078521708607881659408421511831819023891320259502133264366970419437539844512020683759661565193092378273805448604538438519602645711721694135369923341096927248268957093751580130867371870890760927004393035949491639927257198496307035259159739581895059480016932610879041674493272053444429743903292876487276569427496089729895113654080009777853745473877098909370722176847343583351808133154665719189796440974845598977990756752772907093212991386405536314906804832702622161667934058894394260807647895817556463558167415450177961247621162013743691628556813416694447925205285810206067433440269170410833654364971312682051106326082060480789604868440958292171401163769235880667222726820595285106690653353149351796595873475438281415966471956949971670866239941407274261924053497275379121914118253731883848127926623632908621667019077186073843896109192649350780632282828399050943923444220036202246645866142132961552450054723756802282300650917776100521794561066220628125404196335401733942790858558526439918362218889198639135726861735019381986240628939782658788074699755438263109982319261522780373071660885460007747807977630515564517163248844781896310082126507954485965713794397333147428151765950383494914142179417621343627047053206495684084822641554473115563059283761818435410431852331930582726575185810677148178808265402254753546048591735393195497359130077835117782437549357671947011301824064312972683039770996778609736912794402927814016541131274369605360989171584555847725776106121012798261071056064223039883617235254539942407948832293169075819400779843759305515568160925471345776101876491826883431780298429499068971245048994123514122258112597277611460331570343986368255255866330453901239846761312551809215337047202748797506047007153518808023488992270375784825493463730355546210601811443243138927378746458645370322684414287215702746172243244481953483650811057200822834983204596438700244420052400280278415708832012296679462474211970006894455803850156842513761107965086822916004091399186347771612234092494370339379051662572300827285791405168315698253499842368348453165201160108798992894430549542766415894757284682365481857399282284946141316793162466408130551377559749969420484578122942927083224206855045237729009451137507521296786144367958000852576144818399718401121503786711446230239693163257305132116915650169502073187011350307556775241540125699691467190101283764025662285841607048050150779944781517712833303867399177367555687225802924421715600856034637690331049958699906317532156334850227282523018432153790161838469457981869990679704305501039360051681397802916420471245569066433384281471254175057480287249912680619878653230712093608954276401002773199915332335991030229881253150570570840573567507326396768966892452040505755919474279049214546155994931813720324260430031434664848231907103057553887455552266930359111065255364885382835334735452613791768359074430745671712696332331134665669668509792434346047732234778747000804628127726816632643414542140009790456997303167665596548747153189421347770914253624223249845746684614645529372993374745551083683509559009488121301251187377501194930216618956695468744727256589404109721925167256687812663782966405188462837534107073125907038899359738630640088445314975766717977122958292445346689779226095323993207674390763793092455161797970350126527468856824976302166241751087741168220011268743256929760410712162987439437214917981146096309405315054304636748824541361637647148321395753247453422257786287786151279349356499198736591549626814025508899561021483517435305709839336603009644187567892299714427983036181537657109902341402247503190314057262329362820069761658541556444630059363131979001181539774782221350497001260799100256744773074797163759216225385814386018715102792634205767701563984981352593715223157478302472505176430380922870309066873079928669408732429674517507610667078989399487114422822658390914620960562295800543087682221039772513563857451414395164631774280841935260824207976902998841206100295444595072095554321372505233009071107975311187276715190752403292387710913190325198296517260847884325946166904879310714209813626056388226821558426613822261941017984979824594776942642906095924330688080562113141107678028781782625574414869294263341230459917781951225670869935361343218866364028537300692588034075664014126364189475498232413015329051144722008643323160011771538827805078404276576952579268720056037811151514233809539910578769881248849378801329341620755663054107504537961581742777562089151293069493624887686826040213438782365462867471255156194561949565926537652543464852834116898512599414614246071874054059786077809521446639294243253242797299224701968099309744764734298930059550130056400558187642723947136722089337419874511075988087680360125986452542295771408020672636550274517280231947801220414782376843536343032899451501565246443657237715878812112415948732765033890967659438951827030509827727119249774592525594153079269496758494575360962950624702225481431856073566788344980795748791579830718055426810670970730038256133289205037089553135549526298332310445537019704734475642762009239018724763165395161675680901023138019879800856739140647791897779343105516265467988269883503139001762672043484741340851897561082036301347353215914272239570771781646346374182664774562903696410888843663077287517628507603284719167403119321121286245436658171564541854031948991856942780523098302102472775605299588843662489867682097992702272975601286570905342613484812095758977706035186613347612693127839587158896909989129292543022756008385014878510939571618541781154272764160565054044342364268881358735932720708265468213554642323785205378166660184835885879513992150086816976299530030981343114998742750044076974100442816308535761686298411151363626641522270447194071223950149427180959850088911129724584986946098671489040043867851206651114528656820815273321336108121166947276281969208993262611002740538536925671031225259157907551789237814425888058627978719998845167429190073879448567865713757498427580234537596031771808258847615783063782039926382286623016496462481945938406738035922906060483774172529424211451482488050978015748167469853299393516869847656334356187222199795820812454208284373695011762434130171577766290659946119248325948107794707396172183585514897701162089969043881321601001957539979233916283006423020365108491034986818996156306390252556205066672552269684030078675428004738212339565075365676594555494729391211233965691675204943596680232849890482049581606080410718566123600338891389603976915569889391707227210426101874598487673279261740942798943531508689154740983708444940461481663780367225689137110071860085568050482052089600279224207925013533115005066503375332368863216085101654497566487600632613134124888248579754187115791500060055983784799561336106655926628057339367045914534539483410935700229170619431925485541649341197112111379804492489118434346168696796976770669559363595127863194958917640557405922596636952221795382926206857078616220068376235854248412343764978352458802799682774778659349104608471974846025108365205832471958293314602855958669501187196062804459276280133417577079146968324375635994542712183655595651988215471086209498667279392631472480015171157768924633551156607792677036395819678574717133228360959831288665045384062907865658352318880104969833948315734018665414513285698530043318640116627941034594946579610408046403147179487333705022296854865991869156208077908500269963883339481393611743503523231278347523499869100373071466054921957994046290972672804843995018969754772448618139435477605846860697778748234394730533169109714045190185094161641406514774651148339321684262995857683968024674586348337126534395103803802297803149712756026240035241810155244472976069330213779463315466615238805176005667162050038384068316339980926503515022378196483249303152479243856173270434576029913616306710829041381847557097087418108879402016384840061645134241166522176048177096393505462007285878078888605878326586279564592465022084680517325256062087295216818354310131224434130769403076407077233755653383496591924854013744781368237785967338253690455498304551819828313518353644760005853984224023993872394204123442102072802809729957593655770857598063158830960100801589227054466655397510536648344320740278652819610796941956515732467799357392900182759551817149825353042942668405108122608043820893754790426384354734011744199033489437256010693774222352317406986484531598000014188368132192555261842239950031165126936621604484496857074677032662571968022159961547401842603024430889802447398897172675643178830158032570471192374830455486492533598475365695835783949806372531770867626992160188571870015026093159833956545502029881591629525453372564025416351664841476196452901860584787753580025696290351230596769779037763102456572156833994001730282924249739146379939700018079972731968090579861584465893837198913179084863429535317032529509387794987216271238350425832300815623672818566856449238950256991646150397317124649934421260362549227623573191176395505286740226214093764488047428103434185088262934527712076730614490501197243917314879972325300300739715644733314959891509934768315299242023139638998757256919097751027761992033450874297288422786213382694837645184794124706594068581751184053843440542724934712882510354794222246918179783162395098558608017708866261243797714299323296986534313005880650945584495615959184296878225757603733081511996046786877093638098783498902774892467049014300579539295441375064119648346966574939127304984672248565487937118536587172564780845382618123196146352788596185954181977279547582943991556864457518127457784903353907245503225643479667044374172363081121339221933479752935677157671735759293323319772114031345761448356337403403941275368959932663710133826238753691383037949813654751242900212140099659409464015709205445974803871726617677204589102529882875122855261119190074667647257265255049577779091267614631837562947926246249452289022886661289166054697335475214617155463625039961196897599813280551088067801928713498549933265480743713002063074890075107036981939079555089550626913171515012247042379226093451002235997795277068430451873516181429891118898671958621292661664301466624768630557699487001090853016973340109462379874136117579829916485702066180575885422799394880403732672554940837654077817063802246154866962306646771859682556249949952868614742887610200630922077975821186919947086903415653256833779565260219804701892892778878903829232401253971165980751647042057803183269923577036636039726945718254167455944085245939222142636206601707204181978814414310847268462822954943253524959223538155194872002163111246665255445842804431788978359419569341277886277438149310760888472576635495153852409445146795912075413860462763100271047679328992286099320066778599162326785773057501723454966334755762069211036272105142911328390236698113050571748066082039780670847750058387690612889921451626177437549819609551869589771461085834381179076133431159336991188648304798006551910538076523201948472375590945252125062598433751405380512349361389412741250340210173002337547354279749509534236652736566435462199956792753184649733413229516681207653582340316431156653638348236615456802019713983964207809173662550746738142146280650175106754176590640831849585937449412639699818294795872205145385562292448476829706632530693960031038045338972778102110755809022616609873094198018569817148818656647446451078287033408940746646883357581213865500947467365100884884425164525398900281302928994158006007405197406812759969552745098648716492994298678380047892422595936582836192646770311378861086841780397604766819648768247890381238269757423399654364175499879061449404670606260638510392239339748130207629471579773434168954433873833266003015359267241744410219094284058046394707309736808591420771201218030908546096694348174955872940133433975898041197058915268243433744085394787379998476680009431211847347752186950616285688229130559994515039669486567945929053825187465574613251585865649086976425961425904871384600424854381316881464819072339022699193032426786150941108422230544916955090050788008946706099073927295380757011241587514595110742199856056410723374512293429251098218803768420598613052171015875698768021427313012495375903721391219385807464059375458554605566265310817002705426638833114858350463543627278483749724454558254833708798331074632885094626213185245298737691610325935322517943195556287518835075261459575256383986665076874504046243278443130278554064464901611934096433406147666226556618016635597167996156003705936121509972213029194491698197587801681951597197014168359699645621379052264712090886975371329319527578033602867032031394051099379205797014139213416988940207459625980184390779820569171814917099316190780172768326543609571764890685337342369376243011825926120741682679906852978330257564723556924800172064925919674681646098628880348487722742430555089549167230816113063379931284261568505350079259327723902055677874963048865306897591005715433195686770440737298044619201816276041212839968140322495247757484956095713715104010046959334168896239706246416704140927631903931672782196538781155421745334982029110675123701787182785525697759276336670412388729250822167316212155084869817483388860683243725209902833755353587466939042263213265892364041548406775980283678196115104551563749841477991044422964652802877437064079334215154715344859715967516495612733974484174181112536044315533949165922536662890376663019037429610010421349205352274000180681625438109233223643962723294402411337935130641686771668392056339844917418296749865795670669070584668172934941933443434531050864939726694017317506579604275055980304849637632628432754847637420962251769348431515659454209828898583082585516226373791370153999878729269375877371365025180434194128283995261573101436145182449828422594311896728803863325631214406093449160539887819120659690599985486918692978198399764178147543378196006766301849132031030942929386582103449757231334793530725496532133938923676855981100102084546197664749161698836470907611978193737792998187632263748803806298648146140768385803734596156910973239409291585230649735919003507659857584261879729976063350843231106168591115724176421863978815637878519394271809116270710057445603919934321190274383766998663658159011600488509189703122891570099447929204802708596504281339509866791206590875857174680574628965713316150916643247938111171094404562109308750253937632541634346188821708425151123423680211812806284795482918368603817610406024360251626216447816030478388204173655344805759235355404769131783334041820512826781078896295810833497031187857717369055310867084188964736161326076114589070848579236365170871869150482452987026460927272444504548082373020035081555026587717613095884201824860401826754587511311871047405685546911477709602821226974666400129203583971758468143375887525300734960437329855594447435871095460397086204620014004222715831978241744001429567416789204963400602475512852516395916733641122984723430550262507407629352190008016852625284826742921028184136112840218341619787968140390804617188488358055851808328482597621031309073976750578442280541203825829519615105145510407674115286374649494019537115956288797908841115299280144628794739351594282713716558016420008063789083791114697898000322655845485706571554698930257290205118257552153560382667074672099542117240442749590723689626722279916419322308924116356590253976544191400649556835329152221843181145677569444420111320991838916357969157609807095045692865457030558568363396156560138701821114558183576665665287826708245000430190597591666464613815800954807669586628810856683925887844836506539815061182771790500506742190857944395846114374434447575828620191938771147830724401265922816996356704610214728027305466453556095451628466900946004872686707936152666948699055816949199572951286379900015339573735874630419459123100971225276866001978218378561779340378712535664876171008358469463980021877870506059894500308884944819688817808334465592135003231032666531491295331294877771504805152733161484662041772155547938318426077987395809771130204660918089040428862883768785571885250470762608880327762377158037850064117874170483746826361703797110573633410934530030477336399855388865353228387435212257223396755352668416064330920795919107004394847278394251682650129302613661633467235443480520664836271096221061144452021114953400319459727359773304462359315034134889841343289899507260098347138757695183340303195108005004131215652578984141128833250308428995459791552504619552619211673296142462354343766700191450827124263011658327561681460363901197125633841597318352770411156679008900510887142416009454043802070032378290231289708156465223082904458420698355728201070035420840878312752407894807002957696857476199712843223312833369857924438740618871638230228817930329085260128496854119796817407875236643254360156717424457405455321781717333966964868701068355255995185390823061528397490538304645388716832570311016176274462387729107616826606810133777097515642620911939058134040088842730265027271846079660281746007138362854982737479528994586401927794677453719318687623100197937028254575242193217238824914065201795772137957312171068168455993118688681657342719554774460374710635911948400710033429384254127483782598647539073917289629510690666654363722695644166128228660746304353488021355968200411096455782708781993263990395781233538275349154035698138166914109720849693008762470779199422989673412848132250020416221420667006529048228083175200488129942722087736270257792355287901167949645861615620729383681057921133963224563088807277273492633372232010751114812740033605681399038397816449201443133792620845989142717934632094549069179279622677160358673784404461891140612564287574240986232076992446435990878569026331339656912277679561373685888109021345990318416001793416593100622192814934204147708766328596542007971874786831336783633463499093101316030487144630348821586173764843689873699007922039218061975377504455981005552258774223298145103513033336926215236550591535968139302908233184356637556440889633670830445534056476661404995225590705614592890847238438097947996606451357266756767669580110627452542257536363078527832961298955025578485519545802467217322261570424911677026595495183286502717172144103567964270977487225216619944637702649563486294630616757611986019923581588617580356081182240293221440507973604476472304043353834034587805898442425258481546768535029578429509364360176453110385768367888938514561366898391023400696955436341598659082091836827626928009231233766567398016879347752387497456951145851740683094836955758747086953989572816810851857761205585317177863949642039230870455330583978222900961702259513218813688923575922866233374345780345220657822324282059280888715953862240922932253872923245047875916384865386135054193575200133104540603877494508489963436484501717510073848226508757817930832902257245407055572747768388640341528098440985902921670888409808947302162236760787529882386756557900235795291804028272250604577732962006695756280303513330864978094037795357973081790396866708126846842169353563675646855593844985166274291673539306816613614425230896981561643066096232835611407629899667145920116892068795360958591986081054577747403003682046164434057169894755643448805959773726034894342487837772171504337944333343810223852966963863611093168372126970341902462466160081804372938155577102537333129969583215176052872865039584177691162720610156876024009296639966320393101439472818120595173496416041673537622534228514026658299461426337314297605363254068263448408588741875984944788544684364282301692669107412440918263747036262431025862677051951978310242954806162402510201803114399397788341908494890974595791772643258864008258201938293418826854321595186020944813718895409119591445231411310482488742949710124463661182197159158623571997897906658825832903306705557170700497322444788163089623491000338184042819926938949292511108070114055919348723671574971103403456726255058071407073922132034759362056799604024877200602845074427180059350797715423373329078896009362835537661162959984166854874925053750999015082539786179830930294237205095230257632565476987447095617705310270924261691271837349886945709950561535464405073884382157690152535799762064851691134649871544418055558225284644909806500478473346237893948204336954338266802975689701349207674236736539333015118839979156359181272379027864326792179749505156537198145737833973012994179546660461251317258473466726380401274699221178062731802958912896457175892275689091711723118188509363077222571779353232384636632610309346757948724556854810551683068947964930014496058704842249686859682369797946711704572671167679232197705548743649732751366469771226188324955137419749965155432641938077172690758264337378794483176998263063187687035553121644658706871618932855716517188495688425238087784584602986179467194798020497304254325122221026832923310495142068676653412101894652505012043537995511964845813590838641293313050433319489422524356093324742691167587018703087196233232472417802280377452135387976192387785807376198881515130783999064665412233693440428171847602182346254183959739998096243579468140265143828878828882765793012586334555754583086614175021883790673299482632576056307033009555013814450686922478589108083170114097042281624662086574250273781642948446447044188208884919728494468247727771218131644970387004368164696308665309657393973711096724358713630339749165027002585370166798548332506747924182785482105146417755964682671483009840364583342322635835615039265053181920079384309004527002276485972286705898962286162308354755403868055023413515860071454001389690035873153736987206979176855432802493130734210376539279811319701572742289481775861709571820779369855918511843024745795665757140427894342274683890635226933920915008116384731345650561513304481803161465184324190602665679958205581909790935830726377942378548148228484236607650527599170710872617767573382564973259864216596228264770674570002030860392150639072047195783904406104701028315904370709878500819169190140371641136169397367014695551590667266233063709294378150803600893014044867341268584804979472428660177149309766612602270979011825128731563619526288207164355963170412759066506320532747360580282204056368008767075276094106919573724707282575931453376276061190769796314446611680029619966287822795032429836036249811804920856114956813147965692625892854323349082629380462841367532608409859354171967618608874333863439028913941464000836768346256175471548092432351053216412349194679642866612582708458713092065007663724984421326680366001991559230795039883884535403114504831248096777728417926630273541963793216849400014197949409643700103063541205634251168251015117623200873852596910016571909941720293627849389742968899989445507683234092433084150506859452860652446937688715557443579697560281043923655086509186963933003355929247432881438312303703812104362962701765610964854567195227295688107194706377746224294883360940844460909102418452861674983487455771378036464075714158168122384405670509234760118788942884236468018890806282503449229256539113441174948373573136183177234383605469827771272450234478591729529815737526378200330286860240223090900488590233632941407772211020585936151716322277373827556718293378987414810761364915203330787727794186589626909074459464532971945265059650971406650418359981904897803632422425767943500182019754437252271523140147409202554801737164257706762558880167490138348435145181353609450592708922617653983142853226636117133843311936708721062737007497035090247304321062459871673228290646988414290932051146150481541171450184171962413349788530942209607059092492174087480117420119537223533785221544022031068808283524382250009791104150018913603423548957759121805170021932782228840177349341071678624254090535252458748928650921691193225201604041859255896950139771906767401169562694119562248148083231173450936771680624355248554024348234070510190822013731646821546752912359567888282639409483805158997784928855524284785385529186297048791861593637260517909632741651485730979571852052803243122367502859059123806417765925494268927345933835461660101425778048408459368703454777897620478755052083998623800208042057942730145498672096950193781921713413926037533350147322024454196338229077496420000323026131120458439493989992669417166978367582597593483957233659193679124252491859559398929997638362346588273011220994072261686290365508861272098818371158728834320037659511229224475433456061395536538875905247272296652490550330017625919011275447824359773307430831886642828983804456327182078388105011477373019745162750878958145875537746789909955453096412060678227853943610823262826795201791019586368266809880377826108672443848656048675489497532633728825770863102217192467861724562960695134656765473555884350239607048043900866431118269206445501769611122801980904213899066229657471424392439651657779496028006491045136585960124643501528048773912191338298234040567841421802127926005630863032622322179312214211318581719456100756134077677279662099858382560133730986139374709710409686630950066783345943872839783947402643371897701464143634764126243383712982768138751773975500339492803748858297004539145433097283235117770816365937523794322173050251390095093471650302075506105547738928894871871620844346954814395574672352940835583672881472241865418776452898936730597868941370079388401134132688121721580926678579951472269624465884313613954954026487593297451863067773090630683792638162766353360417003858429121295579267645530071337616574348226782032850940015838595989251487782256788551734182429956616506976932118854322680198720342143051872207208001371205052851961906774444430896789032390865557913625265205931003090370494525084035732589321487645332185365946872455988164293110015625122244360977869271793271853607402267922704441019175584499883842146561867425769526393688070934553935867137781394486577269938504248221268487021599627873726127610143878445325491559811691896259746178251893346987221994683842014358443655653186470400002284359419425311961906411594612577733389862090994520992193186398454081438757222583747164261665802164551122221571131702240417051905403026184559908578363039250250161841908344753355012196970932114072603200232516179153360219470833429009549847017442266167823819614392304882087154842352528950210573996702231680841831663580833844540758843592095454291042486244752960175882438125747267545447122066038727367024523602611682518767732713610076453491680421459767305364337227196843836134382433043916432123465399897230683635709665705955225748807741725352878558295304265566386683436657404699904966029893943715925697593899622495733217601592277423614357046951404603494913632956971122150763751896687066071977748072470433363158412898316205436130384473332160786125141295153241466394817305826610783579677590521716043236205617803210264698691609527946664111266079867242580108907682698864929889445472075076586557855473591747308243464160409470835895811632491595424801354806528598074380115811760600546863389275006808058343905078857808636731587381347532353333055484304617501249099955326086103495639106013163462730170791120642012801638121281320450963373413652794417477398389532517100932404349555598541665989994464705691017161368218716343984166333875668579066657049960527378458112770037751391384282153110225277809045497371646052501054562744719882657598247364837541956033261142555655760711561525856821133559513348241253630556260771873556659174032274816787962270436406996812720965022730866589272608011935756978907993825892470804487878082825694841345837427833980117285937240221114996820946542598448924568873745034444743636459041274776368202032907101108550704598270031033588189067494758456862083338287940304370755896888660406847192400027666086942789214108509638144336869251119599807024131627102268484123063567563159491013595355340988669724239352345352656858462598167993257753083741579465548957023841466280199389698327212261478577891626425836799220216420702665508208472041499960634440818354097427985626817294497808810309486668842848209137920613464806407274390143928849416963099675466603039520567551676059137335911026169922714859115666931268622309186879941235858195135570946174259890677923079270109168273786624345482081061840558798253035074186008871563275627236370973499184050712256316015803908327061054075727162757340906120020316978530248310936242838327008922130035414508445502587153631239847177050987926523856146891554893887292218193741065680395107145906011003889234612082255371580813675732594897725855969435176259621526422510357508301991018078663760293567589283630087399428543483858009514427264103421284537195135363404238754520668557614474636969766876670827442052579338968959963635456746764486375296147470054994454126624959949293193188552245229230654591906625924166746091091172099523356174842118843130583242995465717416605164102684803956808705701482674000268244733432853861582381886645523088210037700413139485134773334915602313092486121968561856151755828990982254785418659616673117846912627649850153589898259515348967301940686796164170371873797481920798298523287806707138987703120209611989715966968995222939008204830648679476705990093913181156916238180633991291607190668565395791119092259134813058505435429446875110982537856618597143310774212870883154613094907848141255283899286872569027490811136111993502435169939803670458739960716810776239713327090597309829523366629130195314228600086842787985709994459112136585993689916785366992798065249932600747143386664919253024530818465997366619889668728991064768422515053214424207409001786239548083470283151388562007523484102082190690867292365245769462753394024986029982007545153526639179664705572943115685184228282528214754239359212078397270086812249312567018335710234961753245698849854680313386511804699945977611942335847317324125129958484320603879108950824903983960579254580526012523715413828320163945718025929627306288124717670524514149581159599469034168538028777625883042594734392436138617488542867737580716821039581797867789710329241302174888198611654727241492416338798837046336673158069032473802052714538868722693113259150426279550204692526838160702798888565058445563466066877860529989138149151562279698951863781551379394436829297782652413187018041078296954594658165677982433043245932802469020359098725885052690178211755229683799311051239621647193255552470635581271414027154741478134546577000055459919308572655865393980036739568976011686403980772857559326835751979925578986288512111011061211721768678370541172374843179920001634492203255280605654598731882159364165147911775063709619221946049836552511757199619184599148435759715334639244335895887808621309845414956901913938690315704646132634617044211172476793606412830452371250916038590492608286983296021255064991336054336593489204705064687475620035640549593459021964675886145072643350890662357201861663211345531307702398743883081648878818838624123603890624454019963663350037710745094378331235213784536761714464740801808071452109534580656332344135912190675508094528181042211999813461974602788100569235850647555913974835095959429380347367637390449746473572459800879315926522922314723962440439980494369477915040520569382768215212206530702241349902762621805532361029299643909008386034024593375203169648166589791284040703626926347315789523084906570982685717821225256863376493456989885475929795858375498112874735850499617751952457206825914144599618692683578034790668445188964500264776582012781948697958016829123102600724118211339699168534983388073076208814632906024918522755478309645020711506681513081180854960317231581677681451335533305369505932999168552058848608145977882970313954207257485480166720337492710106955393220503510340130344790115296120035995954171479906128085376256980361811302487133320096630596197281705522311033985066970784386712408717461361580691218975397261303170091025647588010146986248563217712763715408809433415616494462078159159462124656687123668258245430814131773494801951410069440779485116638715963293987003483594947062443966699494317530623743392025309039208532741868689440139248014855218154217875725708936855862814366663114875395241661627256542950774576808181240384809905703426774689028578390986527092910079503050867955474140364671272811906923748329378640876021191877269959627508785134665402566922443991356477853729057057906964236257874935094025976474410591781229558615660975367360410526734397791950571172823347905033860460941503600037828621730405357359004675655905152519249695653168296288144338426040404604531846511304028539776356376415032491669652338407924285119485687486800917659140003921826569113038181369775708169331998096570210291152849914984674185302503131533279207752910352588341674101681765080725778739675536314634387728502500630887756974197942559465101458130424555295780613553869910178443222833763165471947504292375194133021274630666383627013850748696804864845298917348354874848186628456858940696682720289035628605856774549564742709356889932766300601490846452448227165022644227867624639206539640219623938539765926531432912057964653049791997603100463632380143242158423857473628778679981771989354146928554422198301629956053866829915976101891296530747563648863176202307589775637691438167595253968880227177669620021876723837314181006496795302341169940832939180661972400676757793091135796601399970874453090633601864999076643225594495136638418820493342906576282612338113620663612919051696776862085847701426991038561986884865913371722295471023943563715242327741323120706530397180575910037743826902902119194191693501457056640728075292514045643092383002163635915966649919814672978326587200184147306828122596884175627150431564763609423215226992564689595574845872184414510889750622714866127933375205773072086387709138396420939239637805612568838531627817965848838522976021457871744014231158979814377154095440035549533488603352213758526603281710001726842665258948574744954301575180986005049979131323552522578020774337919223924123076346544469589203283665192891765104175520014023674240822262996916156201238497258159442136319667705316499304023346483461974131648720608531126395646221994632149622134222213638977479515002312358666415233339244436802912224686844170707564864556272240912026772611873158401595266355402155272040016957802582444920950283841259081739591680152903811205478427603854324324832019261415960845893978589970417301235738149470757817371534238387894547414234920520480890980842742407654917452978312368821404580410169596472121429820783897182012225727896174914535111908561127046381796322609219919200393858347057881905768436208322918045931024517800478919388527621914933518989372343872035498391962617534385892355773506148865980561924811510881793058511493148520298790791359760847572714200598554435936092239231777657363873432569964662754670042934842382685360686532761165582383376371620082696123177824020019762709020894532814356595369674033719921794888183754373325380583277058623042876051347743366164725029364349949159890115557562024899641560753668739215534601916708187002709305978756142032459335380957819070857059634534595109233531028166305714414033800030245795874818392748957166206355268480826079027962886544538794572086426313510997538127396102962805188339739415234929629888251517099960129630842387003488883064085382675927435427256541620414640916230207889980734505513784797051600746732747151057483220820979897222573027694692228798700769903951287478456370287558332056556789019196153862315546648345449673862407668165972983270545060773184097762741803411430925160671889976236856306703443974306410340960098142611149904601941422969827452087662573454120056163636378971871783542590178163866466464453037821327374898623885541383345964887061892161974955223488838450138939797584123861358181438942510596222050020422173581482039247230511799588657836730974060014242570020930093763110175231721648566262210051462044001478669113495680492189427442988693307713559225044584555015817057636432256883318025288631576249944991456956646155804955961430073921162962550467420051950706136769812763856612883243214534258769378182338435716726723163565429817518381709402407476471996447906898700751718439405168864632583350774191421571100015547622622310875647199153972039614695487270562881251065476141564116672840398579472457259269856855776881822652140810707438236237134327858310260312693482609716752863576839530364813693332415197995664118599193063688017806642899280774445046491083538728620018101598354559523206287127165985577592560198987622025812539002027714622832734390339310626757666078511684207311194003927917240002292670575402866475067612543028943437359500503937286215671130514072931455897636359511970376746853514511576109507685376295641189411873226263650132370048295150656364963782943054930342853719382915767175332643392428625309568807617524800963402021448212835806349624378700730841103937138740042871739937755120661072823519487682294406906099210089092057184908716896793646608053442399366694930739563309918757237490596972545078808807689993992771568302937054216208843202086852003360581947258489320200046711046609387148610033935397728117729566761262498760404462920205127087530264213138509190181743320460708153840138139923025827019023537459633003366758147300800263284833230901752163387496145370593339393851579422102691233913221129886506661941104840853288426079760718387069232215540664911826593764439651253026023659331246326621084714851106312685748985981830012621419056691842049864835610932520415726209315129158287973391760348228428425778193193357474603266131305443983211675918647563842091082957574978843983078175055899461955472432463656591871337410883542580900387730059556889372717775005993660315482035453363903833770689474090107751340824967392238613356753676331538844503548654979912620693374967545218538493019033416478401959582605724856397579654536927217052123506576158498326066671032230058528225674109110665355072955093833896531057511845982954389937493911822483130970954516935299254553436679881654398645774404548387135487964220545551152478863933636633011234608239075089771547804503421196024205889904304735098791972627834528470183443037717688556352392941892732378229918810699859528368611442229826051107272920395991181650910139679064730871629309111614568481791199103265326598995839288717996555508620656385252472161320496085198191133977695663517300091947633263255156608976296497704779490747915064038671447352642091092519090901698005139617686496607498363360362808595783956134731208022857932421073181623832370307978088025651396389300090578986909535625579484911837982161220014607609577286841844649299485109291780057164703267127277983567481061918171344086479974673409407160093206546553690248495871305940189033377440733380914652958331821442166761240785004617873831027237071758789811005808936685441827698815678509032833319209899458823100967711057022017690590739869074343292077490417776029123876835728104181138375098540468837646668447065056459773314593187844006379233227361417174291464269256233916304076836966085561283160562266592957818053801913830223628177257108975909747255051612327843276139857496606050225852381023702116160368774200767515349671262179775896449581133568885250410716873830248503727875271225716717192775662520729092628366362278210257434381809380260853181688598251178873598953782969176244460533690742633660769099203457595108819908762179810388320533358588631418495572798761245473329587688900676306907103119774604794006976072768490219625453949978481016190667690358031662547152478029443247714963726615988779839135678329886718725018864129129801181618106880581653431166266944363725774498553363398983881823661247569540550116062779887385845057560823826837647356165461831933375889657285927454076139115488529362939222702640483806795397074736410481668170795496338803331219094600215532357178800399342160295615165417825700792436180848152285482276126765962777963809401611068958896988360940430300319163101283764361441453699367774668531090695518174418855869263596832368046558969086005011814692351476493160061865907644813649169754136634286357369945209635211860684747418329481016907002344695413723175799945970920996704564057031395711766309361276682244536343702680849367513662063328984044823197456066665807535338841168998698591448298816906052047928702513924903518815317855348989561681169500811230678182108218284811503630915812276425613798542064002407463478318268864831249813659702418863289010388037937952011110412130785124653849776472627473886335731120887656262930271625602386219117901123419611364766388456623273293317223552229602050017417351710348580592824957239679309994696883131001423666365418470433914827421757455615297750556579586977788442461024029722268265042128699598177027344155006269269012559424084108031188849273463826066511434206543019682793613217246630739506740948077581159936193308390627955387087024395755943326145582986035816147967388809825251573440161964014405741898245794214209582596653720560009469109008644908692993987625098333187069344868322661973039936814675062138201241046938270262264377854447569057121750362964934165493584681992991168929599355906671186693203840425057890294003821827469676607432659582324861979971270119410805302393476780136538781957254675495716131379083266604456018791643998665402656686373638124363100074215740171018405785536530634047677401188981239282959899268801375073620912795769467919975977541290866808840229251760568217779786917499024292377048680311798936842171758761472733063745997292778027716526678664329074444409453736725626074353079627414213921899595016685247782736666208700520804029619512786237223780539376586431901242454003022578216359296652319569657136910777983942166721863783669262797836812513789136900674339861759070746974381254379277718552631179096219395254059718374406518888167535892327318629495073518843559907532276973799531964052078705209023838794471729432926320975095297268719318014976491537493980384181057041956559520532347935375836522818440993060292720692099041996855083558214675600477506630383627667689688996250505923614550408061352849441521310972036911187455930180595885012152587122342278810942794178059719857465103568095614944721863197046548058456684843357442042003359164800251931148373613719821886627441264891035373853589187584620564492759987991109171989362264282953535555743556582250002327193280325247218364024974944350684165836354180736842459342852278786941089379535030271406532589831882872225636139592356470434836828394054436379888131506001276177869686171792473207394475782434721668937472261575935268318585163973494208028762562534438987758092367128066431980477515439458041994258062238498552646259003191355634306298514208436556513136580186415258914210898122547142702196293230202611726017380524092825682619228911707080652911478357263152382682194740596867265837921295194985158999855332656919103086777162536555655577262742390056760297124235392924722524767204428068417864292707235188952203412355648673258389401923816350116010347047805203527019601021516833842119404487374957175065171291293913663654042297799731143162676405236985394627543613154581581746596086584990370430387186616806527211043910149989039817012218245498761653866752861304741635132942099809448513662569304471173589426511449804478001082271628202400031131212845965753504807705237156495253147136439594537886640220728559728440068023765206747782946869271948122913446779034804181968064545025704228515032020932267200025466747434804901026083805260044589777695352814478061819411282160334192165307714197663996122657363835062362800491427963027327228177549802563268771398623467875870856624748081887232201264087240760029058195384865855379590626896942843033159656236059400435354210514241346403225286446599667962724248003152623576438326114064871215093165765762276294115495869300426181927594016216345458382041137469451717866585273456289612749698538150375810037573101541437710093649294183151201747123853022447557210427958488057541547780496397790323894662409872828912511022985158154239190919367985153620867056836502245437298015870384871245768255446946460635916901758783341588812631525451458612281307535652312885390105249306085374582160556722126678404827252045060503134765780694263493246281275584599756829653847367323932045766731243456012798343523143791222529535018328707643700500243627843465680344277708020156743111083068411836711026375718204346864015757326257471553102916574807285092795769675267538435736596103672509832000367167285529690472394315473057821840200821662747432554148540987113252082368125935589253414673242776624507184535079435013779277549168726201264400042355591584421061276420743829251130032429648012628648987727928701297585709294055065481651195443040943033992658492580138766863975476565797569856792724117454322688981745892419895095808525906604141875175204347718952072185122981574527680112825245479981890651251935138764253076006373514740209894713185959802954757931038941647381078903285405149032239927807417274913728205683110472821663514223656416427798704170058732729474544071728237282592304123346297971036905787144782602712332691021465159474995052815839525889616999194886789027409705587437610403737707983041404230944143773020772439703061358485336687195222195675768292011887404004894808386734562148438373553036217947413140076742166357020804850899367218167993185388059616061529888996561201266094472930920952455789456406508963545722662338314119676024241031764545822807539514134836613301569073958201512233533075545284710866838561008624341140673685182132137899645651722280312418917710934706830772932243276939373442290898053052145620022541279655825014120123099359875639240130863288355651978061544827185920236126274946335920317957287715537552790288905514960240830363583943417051498393158912720227259647801809340653509622066486714385981782906560010557654691375719866310517823923878659689487560899225224123042819005613926896778224272100821755801459714088567683920574661630981128361980247260919542884181287811258802282428446252741775322164387260051253730524365942509349074749184026486498845063161346228997660999872126042969353195166508994439753845076100127831620645843998420534667726903515959466611074193469253448379276859368012708121589065044873812629476535324310330345246371578861528547227251447291872743645583606886688568906505425787411093564178618519240033076121745952580357073365059096945783005994121594810915835780355434147739902038663844169161215746635283326294758838711364742145608739321153770334658037231650550929879070313671409849117047756999426610192403179396376679678494700067076228153003013398791662675999621334173563658885098853051995853698857021234134291977024399216214735063379518307780194667685840442021466203616460210453479708984044591945342546217018714959212293672748632258908388687613455363382593603737141804321849943635429795684350698592730729823774899625100884761918739881337173156510268489912773270014158969896487255594021759320523019311294256717759775395996624444940247781242645792461154871685221537880204598818868217644675761323605415631636710913655740042486854278129767989970359591900197734501072919844186304152478737296214138388995450783314580812834321074027457622574512326684353503862089891741259795915134310548426514585521956763614428405186716913986809890432460749530486753740723556395430316009320241872811753648860166925977826968941468334758166478905077763813595829905726478040009199768873921267392150625586649441837485982333810818897356069156323610161194317758756767196128553052933518840739443108666890301149965980608431802269285239633415216396956135777044434481041753839455510599032594883498006641944868517776338510544663339335948148966665793491401213553468369356083296064007248056471900087220934083305580566225417655230868269196003944744888006909892044559450375009947606425513437190159383850160370913758221586720795914054730918646096057604396250178288094066181777446790783335524936150297539536442783731147515922066475042730337922597841014476582448287111302489950945525662468072899526361187530661341126279241227750829444331918997134461572712177724459285824619569807557378899151348387901326132587825288506539037428433253976737364252580487688542883151327430150520236579648049121118919331624680688505031348102384814640122713768474365668982135849538812940791811610834975932071890428193508784889906902636090427903535547916315091776723467231246402747067153254034939760648695395421194030929220166667975943487662617126165761341554319186726803943135211568300199609734933206523578209431165202411431101355507177456699068372961742987300105832258485612551779157018640592888825417390255513048710018173745973865888458254112394719361144542773655446628332434494981109354860911892397473981466235339503486189016775289574570659169771488724613102563566950920011632111871344964378202166208332401746184684548839991308535454691141868940273498418493038659169176176519878841429191871349067301009457409910429266420669118765200738570937765257605405813002610933502226182397832876106007064397361631983318418306294725729667228828128693991743629464276878944515121891223224519929466573075189182820280883218123130790249426004906326109081607512039272711231772270146587526094551344270940486929370574911549028510161466270653992611899344286145372075423519159323544250181783516859815732921763514033433549486714019044368455281919337417466859755580119117801836296518825968190970663858782226386319171617331191808626039217375855453318944463399401775849823292232715769892088564013575184647379295003139913891186511079047970398320432555134184506009224765899698213377244054346154076746436046209378850254552382513088847997037987514894955476189770719719148615400332875887218309629008064049327943129968050308982841021640437144511313585582106511137878056212178441610133485765995119055743889802764685305113199175418814158246819964601913016282041568015386025630237787871085383890640158193281375494880466465307328928929315743795848315871940867688937191626480945737052932143960652581963175370390653785564353458830729276028821600297729097631404548251847575251611480323069382948507232120891581578814743782896454803596426369525309931990512578364043358487581548526535392988453913990686283580453638139847019712834711966220611622586733763838894456139501621495325297124008809532337505196124916362106981449768457572424449720406848982881389841865911806122815611923409470729615170316489105245594223492813559606878356670173574229391453469009330293042698714052658039380386300135207760522407787079467513268101331034943515886191978887446390997194504950806790409088055719144404967782478996684938646889242000411528914795084366438579291574918556119329092978530899124567013513174066122613649242896572292449513518577024428119696058482729430788807994711395513609994053511900992426972517631345769684816553695514714352698709263132694859669551326705872678507752625508590946399759778958628508149302802169158796819517194093930157340989169961910792445114744856993137721577277157276397075655704268886606756802725250506276680068979244164314813794971960059512013917632522995113077017549554412947314927749536323442191152591891742534742729004761929635165993151894518940506413071814813489253065893183814409091693428855299009197532380627360886042457023832102798882296833253710754410350455076030014220825383776057462458004271324910357933845434558453510340088020425067356181984783730645066301367478783479098946919514083103921088322609733541285489368003899907475592944390952937304501185683843972636712576701092757015955022839008120320652871638032141249788896085179108979713098624383062981001233583903958696421455215787345083437375521053669438836185009455858226390285377985144419155983961612497461391744666125343598406382644868702217417204853641238136959797348944917223755645243895093870734261338981693762499376347478308847984244885384553749888124133911043481187465252693988484403572882513041882341440034366990742767723659698425350366266177132527674970082368010174773775476996304805089660215969856082525490857000200754449125249621185977984962044432738845912464310310590089103586140393053296089217895871611826115941136036230451827760052347847638522340782131283294861271717434825733048634822899477577443547525211169424380620815135892272480614906616396052631661819109452253766938853159396316959534095265958116485529877911480374888732836706233759544654398550446216856670425838324980254060123547783975350795492561651334426074434153519545180683183399609591150917862741746003896794794789852217516810463032296907830731792822351664588555290148767926930425002190475248029285748981960049725470415670231824818893868918347565470570915945237218265652511221197292679246731006938636609950255204093399331271428050428621647523627482747229028965703709487054784654080816767636092985417001067392246459580412489520993676751209573801967521961895742871410699846597273685068926772767609234150358734495900887878533741840555995545992189449805699369531227518941211123605715596306686622551117459604328919544062479636000876732079581243570183957438901014691826925437817452797797800227095949751305952156567854491319472009627343272049560606045707289322476872648010707176028336502954030367804257891815452584628654864958152964445367168967802806282261195482780221531793237765952613379707256909144084152425073864585543142374373661775977761769115263409803044674266480932929184907359865724447211144658013119134154893495448927547698182803414630765847234804029266693946723533798374117419236373237783341130866541699613075691661422830269263716179890871868437054901470739339833274293903011247509826419658080886299877842360088605976671644428720902898528447717267962733524015715893945926763172210611580907555035634974474876460811729403422451161718198901503472953979601730858174322781646541053552777759716498396626848549167066810749088686856136864150491334337405331061213083633528250529227852429117594623581732968982909592563933014494349695035137919155800059891779274880491234103104238527044944854739992596875010243217495235610023603797698610934767440366509660926173679746003165949591205427954994640155097596604789753585453465131213447658773637272875293813484446675215471721605522340797179160232949361559476251832831785270923487904214507172175872466950195376926497285168534769099606938407932892556894529738229555212777176759547867457701593378171300378925278664277835087325163824494170578921056346480804494087741584363068675557069564755878599908208706741809747963364373937688294301938345892618197896862339553036114970297167161360778556111724208461170180740643860076494034531027023651443254966896299967290983104885397555164238553319309590193293148758146025241129833473635840842307814267753246766543567469979020377856690100244955557600211493158193557905548712622495001409701587902818544125037792630549867578939998300681705480114721522441167530322110288209191401125722279198789059287531595737225707648698918312968568045446499072653535216003125697385350243744697213061720632767767602723813761434960251867304286538735158156261248655367879458043239482602078802497168574127399349790296463049580525126467278246482227205098030332441377320574262263935734609700369916724832317086497366310311014334274855248047087488671807208795137998257868284548393792688423518791022309267018111830397628774090521961467336631770258623440582739978814831241865607097113486440349421496343915132217219080896592145367762880537864118088312739872071159231284078715924468223273660622257532447918490651658835596610658782090821580828919641161171339456123937479136868435927714739419205336311552567987935420665070317160919794975465794530911030332506947785429391230372787688317012570990418307649248541016306638531573892663775580751973196781445333940787829078810518947903529831471554424012292406416198837060486630370415360501714401871188182861136028125940572160062254316872938896558410953540620165724718077420781378015649294914645148561468338901645987398650857379882105372087640509879844310715025251398941342896461665794389520090545116214313952695994166496697033193691900365471845880295011894831871913613475745415420066002444383382469910928260542599447929492052740480826431869864233439830163830977685997204071534525542220139982482798996923023315547091245005734296003590341252520290421170710508943245777206523206320711001597604394207150244459733922997811847767103411747840414412932544752402694606547390222850283893558955480941920505882144784782962683473559191553208654102657291474884228059930476627515050687600873189803170697690954494505079623802172133920157856583216585494214859201674017258544575690932545580973108177096399426282427607825419293234982876440136455489735853055896137781963857337657102441980983176755648632184487880090638484318925901222826066224122857773845715922574876592449547829166559493980320579402233894084817859163282369456130424783446769393700843655989704762650810151886371546396797615959935741097700524261756333309747911058142128543427128816730431373545937648063821828503840608799899123663832998414436583123149035098310785881501002120523111106966654877194513063164911288574585884501491251066344995697547857305884544672983876053672823212449453418794361419883606832234676219369640280111270242663954562187278194610016952981593208708423155485643082840257413934533441768128240509385670818725389441411082768129564625990847696589132678769363720791494593871630259003962431976544759417189877839875727821079837078042419100640627274470947092892694860391254959030969762364169332890118478244750929014206177235891788349515827203167448921974324279005914402719034868990450377318599114843597065205062442051024195530172204532540821195187890708315039642511360433474584993964039753076502008494515749580904504651813805853813789749408375740963192817633888957192434399170942017351570108099921778127183212131753254044938684367943148126874775812719026120453579064865440316660170800385469300695652439843095723195547755591091500534850246432876334414754456461626509100238348786095514412869830026726335165599263810573797858235058761977411413171055705366435684790942059821869441992703977191518326604887869704789455052038218768515292175599671669276662428586565302347161120345894982246757456486762494597100266546598774994533830474003639380638980424530485300792925654042506175055171035338734580919440309395296268278114756004588222416997635618485373292766162031634876353410580408865572542175302064467386472933625158639558921044075853721839412662422827594830519257376956380726185118953378822027110755766653401498534454793256298171660619840554504211370252985436121651813362525197034042268900855896982048973730938972880099336389216975326348169767060653436148319271244161926843437335410137268034848646674976479645948071651031524229219339873277311805444920112704988904156985994823126626503698592565111351306256495801378999646949577251212675945828310913784928750608604722513161279471207718602622631549519279565290107492363543678482848065738376323232991089627935363266557935494103415983661434990589836083453422724980485825290703490363222404256815514721755271119102438090283867567738595477624119558219902593050575057239593680185124449834689347250214777690787979474584091503541446983453399925811353216726546712277935053541354206854357233190391749570885463185372961653068807499592494815625657912445516266046636784518421083743468081776960998499867938194872731668758349639910710164682994907313383863441958923251287270330105167138485778697164801401657841034636109848441512405122180472025205293476055080782587514603529676876937359646079056369987262189622084936435750146583415081032001535204282952232125172687866787175417656929727707328440245115385957772748879691798766776694503308311441707468307415087408410499720807311649314877913493915288400968109516030498364962274416026321536736505805788363183387551733799896613265156923078393698997766181062039814607378219031714170869155297898874899659408413441187904780166699985348758266680605404907101716365400419585022563527089905855063164428947393537468419377001568053474896921418134229776998363427962969032680380250223429469134759319880274686855370333860001535688889312277758304571762439987563236263442439696010387180029977995804760896019463930518568975532625348593484649115320019215952294520708833630991723639362105887262526153850911124342937843381613898956623633744013055480532736472201500346390307373666826655461545695116709706435257367450215501049609853430066709020662179397832000408598897957067068874535148348020633772711592904911599763039847525036842293347236962565997583383861482236331362751079927556037859516504382090554597627045412179006737951460858472347843271873736914556360706241702482025381241272997029507338548942047998430643988640333209571993673999226279954644648694658280293151042782035700413786749919155716070127628567764722647275959569593946458825648039251379983844070398371966008637749901804993749525658644861207269408515040605992787692755078327057465688207808794160930126303758948057458713456056817309392540214956305229274238632125610395309410776679447903833835610892084874794218652702171877200423998051411229661081491145542978824465804349262032469322374713692703763866092860042754741644290920387208058603800637073169750406063822367709085445433814500292801944598870676434960770613851637232011166925445471245982095709850550228913729706220703670804884485940583943310301197827655378108778523206554320551709919406019304081592097434387062558555595175952295344954409611781947148202609737450969279036028756189394063386830755302556786586819516052401353117039569685039996791443488357162549597444927839446584998945369418465096774166539871477695019417811276753002333741488075744290748983481784153256854455720786032374761293567494706590911713567867726264097621918843649313628057569968557670737885492202254248079418519572230933612248962535097249545537630953467955019326449278560329529339543166135870985580151322054920253672415218130968495787220632239492741849653263610523242104438047054934149653353797255237206261135418600162570971814945024023163953690845858996698369585646096712272056194860458913376207343102403044988502735667633253911267895782575175433591317863260753959282548609850315213209897315412046621616549998156167003545682390630632082241876043350217688911729602858413489827854499620299426363777654372359923394011902903158090988194217470296033822208228606897573571642573321660470195189330946395328518192187021963403244842803084876406313176668350797553232435174534366484747811465170958102674290034669447700967940586212568993047627904767327477897619083801096417789949797968490160665914782802493161620820385472713789537606563813288909794071662908571424966796546808374152910269774159224328462232832715947017211822148255646241925327507606969711923787941779196781200549766507791540520975714311722381216916046658389089375169713850744645999961654986347583890991685033784743950851619539395069056472964006314555325151383756038389639611174587328564251880896147135557636194132050317462616572932850397424842677790612344599643688839495795331670375092123998802256571911023684065861643396245192771721131368919247804192852462591220827393763276407513275380855535205305845551300091383090003328248427774644988479758138369163777875086259021741425696203735000551347949582932687193436075469592048362413255893042739608798703535381736888260480950715419716514687060906190504584773401235212436966364679371677962174523083057860717460095088066534262016078334062352151590992466839129088075058423363940476420843152671152879393677110586473811513424254241200664351570137715606743395255950480788390894841294222137760006408894952428292449487476410255333708559235546359206087360164418658001990489620024365106572948500149354300250377659767461542236354051941710556066447620546975039521948795026516213851089532979826546664693713821241699407824420699046250639523213754288356896220659226334698487399187480141334308994307537734635799685786672446665561262260735330573776719904817912517498710990852737657384430974996594602895001782311621022013425896095833537206006163998490074278177580494383898387657665339680734541167820354875078404770224518162768050614970317689579630812992405229847664591993794899963665299161586137461703988883072587588209345660660488584018224520053439205605544195821020091628442842374998625061255944490054975881966906644603207061754185859146471739108977118377670199495515778491773230373349953453016787653935228924611161219963470844237910604963137349957476708467128421871743254522529248353284592602222663821328170149818496189109112086974143031848844937690608004526410866521007199624810723722252743715025693519305419456667517185413955721315029257428926974617391902998776251363675318924263732232811454440097700381176414523124908657366281522327841740300747679839639182418529184325325653862531729248719371006892553552868391594550742252286061708855334211014472467116276844165385333927549666675259333740766950020317357660416349617910196303773682886473540076943215810032761564510103844287792859098711410222702363957113659092580232705663406771336709779606479907678452505858901281404750644581906134006481218962047060281183202501723300675653297376201544650310934201720226622498088465236478804361555303607388246556150876749198286997222693068132342950670986494488602604169665330094688073681056351674804966622811814479820320732711979679153511190929907682227070717353698838951305878721736283753678792058558633451422233368077203171155253129772705329785892885795400601373343204275506876072240814099008723422269910908631925028493958594274862342296902290739319456127766799707813597031187655511501259090693161032888810615452531149316901040921447921962487330193037561019422372502993184586507259627529986677104847477869635621429567639337887162854232884634896417216205700234348542471721401586894333501425172104084510931607696971002022470431821918691655460465267703056278674291453718700682162935750891620386504412797767001958858470121759755980791488126582481053035464947014453931199803936172510617903982107855191970283733797725883926601642489747542855690634485352673890001609771940303222871174482494434765265343903133454248538472147488462043410771857398852611151699894846066715519710667636588530944660706270830989734050840769388472938155345753672228491882037318488195335873538473578346292183227781508617482449759223669329065922653691737354840866153970613563544683133755804178312450987521463598083762395951243525670451861477000109599861427856313969307950083337265496664981387252396386219364929216955748555268217686273008854866916830800599039788003238801153827816530708325091919352099282391895442260099761028390455553902117987522572189385901866632687395387689857216904594937237063649695785265241698103198457157025024749779549874989695814662113500019072121541425343368063599368556126653685146496063595902099303775041806752990873107899066566174812759076402771740510404554335903757969402759416040501289407325735069265133233281261877121003646451833174206650346947882825761257713841934290919629301603396554272592034495463625638140758124402222980927350992089689430668392407618356894328510440547772592641797858346614004621373659746198622806073950310331073521541891549262385296074358448612639649283028482539172618300106326057786361859446417514086669007009423322550885391576672882652660996574703705059151570101621103324142925827148208118095746126367061231696860915454253913868130133284282125611674692227852730997620481595799166230118909872798549551920435336337479595762612673896575499505207759287922046161377870620039570239561372369239330695156487526042186250618645834966964479726033594152242414482304507451374018586093029466763560053832286979660125141189417731360426337644591142459822116996138989958384044469461422101035484502124400346958223942895051242969113430145902506931981303916126716005581977409182548094329482617745239165924976106919359996414362044752010820747686392958081034489816534015511127457980851404636076129183706664138130016998631505688135504520466395845561467027954647966387660300383004170004707157410206217350321318045105230468941542359869912270918417196405050809563841664312705708458762602666527345854108911713194723122789040024162007892389226019796865805104988906508271926768706554047836246788532261559828713385523393535949195840593996263584963034870046272766699437546736311343122690342550864930938664931643601864683421139888806531981804662797204428676792813305889590719654761502430287893082461885560407572748040046292344764811389828474757090670919317230067200946699944595988313826941057984198569331271688697968003029775273788648400030515741583082079275409678428450358646446988652949618572555480437617009660491351042519532058457993967788493667338111693384894775638457432852370362648226328692283064523259910198673657891946704328205840377964771368073499658488181172785947926784362858585007880273623319527908005452367490397855249559302122815631599964782608258497162324395761481563729869209551816219570760536363394423438378349178080738710361509444791084279521717114525387620562853957545019303029795100546186310444581242484624820124047889344205225766710948265421908564259288476891024383664940426244435136702978214103518959232497636497621454959631577547735205632931535214168942798843927903378177134088988322536879533644834129397288796073314598010364304498602805872781960682567355111201125196405261973648295393076015133473992802804523402132080756161765097674099649295517466683676522513631214611555480119688918713862015658277566197139370241135935027422753045667708965912477364637394972958226519186383639416490878799937962075425607610597038627638509254523164432095683843689469070050408936460201101003346864300756314310784942530118837424414880622115980205605572043657202622934002220953506464336741943898994856124599834704043063165506589149620179971782662400023182169951166901239459232812184491585871029880089830337076248417789500516965032542790031965113623258388561033799452454419436893641347183695246609196264856725169240210280741409002876349228679222308126938390521667955339324539195438197051527207516864041333543641076938426674173461714304780807847802185832477718310732346857252829492316707045580902250513455247938897019623435662706606569841927275231103659332863712066249148337998009038107349544899751670934382179509824756398224548424227174823743439117598862802431915712737512752613871387863728413296278257813049909462411928494408089413088020596674391871357619425827130415069125720309903719702073851918717494739852767782795731918741747067368782475993871174919481381643814137842271481840344306942340606139073117037955378178737656877492844365261924009413795173508901351314799029559451865365515695628702287718088841424848277232738663149926000563627037672122236955566516109005106360523747392336604000753667430711788108012675655111384467226057883534910469994666756375352553285973974718337278103591350966983473391186155654135587998015368751121658834702284809359768380549944591312115691180203025723142812920510249320920428409032448739946742024045778541690249162714341393378547717646188933559419840932698645542382799934290426718697692291228026486863062382123869332880906063479294378298477761965283948113261443518479307399882235494798048770104692627744167764600039557826842674853392400877472705211403468152668435774943871652560153865831710714561492221044788653195715241834152319823908296962911707599970797741662052161190490613581817032620185597833964727825951637384744553999114987995681818477980532317907901201366806830916916728916379557713664972198658944723237065023549039399394496446147010593043847110998180564806193124575461605084942116183032182001914327460976743025398031266004559240046015102471238302166105089418220234687043762379846244801046432050425724356263718426816425944344300413230849811359562759965232105819632788858064072875186491057698946520798388743376398607456783835261322756923974273871761549766368828658415438424705606970616889538691129646233941484950519778912932064020039147787711739614558260175148412217932165654024439825476631086253837184964249176932122347243286564708308218800012000702694989939303423575357857399504211448136849452913039044138661372932425547210033559689086411778543701972360430987436265138578465192621346819646012199189568141681249357349661170022143749977029642851820619358132910010546903017568193756591367639380740288639988046329584453225845504986959219096775112061726969845051214273822442463349804933184457042637860426291512030196202376935537519069662792521880924790203142949600450650220866456031070158087879403098305566735164625304398174426793524168064982147473374446457752430477404134132175299968762645778192334660106919062529513601326835195754504456144609637085643022586358656749963758129162889721131901898186056109581832072506444637571907220322655303007301462354805612713734095797044709709767617444209806992525224764670958498530808348847248866351248222590491214208759595727428327548630235783594760906122710748705786596009317323588342622681619556027349198212823779736014396931259451291762820816314819046036470423348586734702585114422316466854752222271200009550197488769658424902159937489284908598301156017995283151397231545970574137166305582221524027538235601365815856614748597431449737277884801582031374521860215934402369137417143646003688385175417079171592584921626292337391280269607587897013128290387438840301119201018906684051868797486808135674769900161702916691537022514126110621740456516168228892603345053415408145555674610854931513184797229797524130643857313461806991280873370614678510975236414090284946807811744686525004654428566592584561063893166243010633883773756721221672255110981533890470042345327691878813308978858435171606743143104774854993474735392090261469453738462390760213476412585108018674040082658623690085344449776694970449769874065765482329865202846135421099267768940471774424431924017871314281395683244949186601856830114445842525644745141351064331830652653887766022172300776610628182432644037311086333335337743497176634562128734340527442457265288296030337939221615302645948296078325142337029841828415335294931060340253044598716013193011561604011853360344836041815026416267205144604722534227651713121052051409989088772518586093420717223662247283777038147050830405216363264210285606216923015198396892260490686880720097351609105901379693491006283590808781432290295759230006896080916674326919669610081319468171052697658010104173985995202107408636027768786498349244163684439335438913924083466141768129931208816238246726381428562237064361245971890011929826081640770627203279218467504480238254489679115020056252940465471139283247616414235224099349393132616833301007041357325143765449994008182242789755189420911013036395013520628633257782447720964925765949011350716877547709959881455730054985961477711828263326243055926064423303927787443624151748749484878558360163882299675466723204320692735484566520787545990341167554870005230855460741387587668650401207852829881450597401157326488308406885724762491262992784352881992100874775064016550262064494572169736868385974756656221865235883421730817532273305213664951543144836475179251752032066136799400248903086029227567528322130912542488706705163413530363708696981118141160271170126260990161187115305501836608795655313110670236899843255477891002715106855678057284542753252891090244559160032508645880030387528391043364831683542904241297259006717813073339318941432465092926021617503484850266175346976800104340796506345149486023511382843766576158994842943370701076045796072396913665961607607501281589934435844113693471115497799945542276212033945104684151162043690971352492664435742023638134243279722859706420406033184300730435451754339465340173076846818742759974845094829751818320462423322539028044154866548848409594116687145205074243704069761904307817107494262896122337286703392511971942348923806352637675049699690034982321165506692196326064697910150884544035476482881230244432791320075321098639642810273477510764656312307665200550953684542379990344909521631572422428820592676858924195879957866546405269535892153990912029717872074768874944735217273574155445863946832705400105781955264095128221490364887216540589651054583345621312173113593689785775664629900874693805388384463973045081194472331241762005362403325503445529345575599982722775184658649669612898929221235444511176596871439743543455615757104398244530380663814812473991132838413182544725083635478657971442379119694336728632248254261180713553150887557785314794278821755455323955877260620557246341455906886271145016070864805023939818473574427876247379275485129722832963434903677753335213300421473187648434984532583595840729486114086112773230171018749329522020425189626318664529645831306701677149233201209924252650782833270064838591669943676014172637131645585240970649453921467596100966048670779792994644903091002871317370270571310033430155215808165579199545230327024001364074838556843950067505725725506163422986535744814346532766813262581997289502231013458679214806737348328816212483546158845230834127619733203034338195370100850802779616657902245598239563686217778219311028213451905493230127796796090127659709833189218700685576460994454313027885431808534957207764560410542758485840116844590208883899869546462303185425904416617515728497667829084942336879799716764897540300183645904307754717964813985583534478807552640584219395310104675493177155512499161369707701895512793554390926519865148394030958965600405730734220995212334902431682185276181910082812151018330437103449162372237330838692311986556248823448051492988605621157883712399113362044643123777727899901797068371468029392039828547111034007498348105454637571490677715896889059741333924977831199267948751628603459379535297245734314670158144188432031750051680331272383450046209941958978810165420962482359099083274817673220851846932953279148504141445570048535150990167299192978191330770302261201378182384496749757794688751144682937157095725618687541307900797688761829798772564717869796648885435685085068453921878200384864084677306924822135587265902077256416026264849206674552674547431025808879464975924776488373623256759806942849247647708374179706326848243096317959632567245666224197401230770243185196211332888001092465323831382334859172879077192157379990884400315271606672891527983308468299402958701362115211888191507775131974511553016924290226966451588946121956700595392317538683697929335952239779388014617258088623681283381148381208925853845387457904141401229310363761427618642839641808994194729964734595514050401405690293205929824054138405791178764145374560232061709452945493733752354496913920270186805115715749618375776444093137696144013918503669142964826239424702169087677942072829484199643875707853737007429269646789639391898691846209076586254026019738158128064242079178862274148951608213916903659117860987447223647014549953074076527835018207660404364807233693605350574584096761418311967974942177371820858832068010428644203273658456393688881048927827765970797929853012336071743842850599463519218896347465407015436004141412599884907257532358057671767477484942307809296732475478486557750647170710733614581542248517742488990723864656868809956535359859087924681948910782339565304673027558537497123322429727228866692010457918436995531621010433960311439885891560380260857015474781220663119061301896894710064096972664970868940955922962447585942203007174796550347530668520681719221123398212529725015560687294541447106258701330513324131638266397971366076761271182409958053935814159395472927077591481441287994911273346714788841672312705385619026386866409593245291391803174269184666178167074585072491372118012182695944019020041120462082921844588614634803279466459598322858990044273348445867347532403656615260768761933203091122681237008058296798255631003287654338467493905748252504556808881826997692968512894607794288392711780849470002770938471425119118187188215870838291076149317264403118195315492143862577013030582422517899580894543047064361214042728570384052023957254212465211006751818898078199692720164842512256192142831896494146156983631324587681127277389138791409479081868894851082238229060267368149719263708955524743973063217254648629299484625013846608598035583111712689729707043400934369680556735838507290735158867142783344132982714444015205739841458358023464533399608507917016408691246471256023365508924135729364857998112541554083455008185753551019145314444051723385375796482072970954007528216150271023645497575420617857359929834438711269646545093174643011242915226317252080730057787094169379163907495011358693024371709139606224374648305575895140226095488266574203442241258717119713397401031264020389992287280071781666900722487805592101374732211036865525518660046550304992265276287329494045978502140664463158224532235319375375694001267447301725982752756732614620201757445791216610073599913516261522231453173837169054376850319054597157732199687333007766277404292576742609316132683908298657488808694057976876333154047282707443890557729905361462641153308735115892833580558789473039916238696069196856070967234374737455870323973395011155466564852228938534324996445469861911672564422579750237172857315669846290305597924690823719480683126393634399585707412909170746243792601614489975162398394117847246192184432395593546219943683615687092626387225127658258610288523937904415902863047599619950815981123535517006524342086970971202339204390736894052912030456183884918382435207884355214462399976850583843314759062872107748727692908405061726058203434217273232243592410152009456815437464333100729120238596361061374043163856946370708540209199072825366760878551269551485103813171008823888188302762001471593213426366189836315694639881798517699213273309653237256411347226205965044653451836366967672126841612846708889979813121795609597605511509082010131548034671277670518805651410626921587077625758795286176177061928046755024652232438690942930901698714931620741147292671365981392232063070943965515316442637103206518906196250200801462268985536839186891983888903093514337342877924059224576431798629465728072030020956250620459170865529034551910412901224994007939105042350714922844876825599512096363867758072436860762858935627274226925830588437883864704370949554990426360375722340588890033055025292412032499960428432225258531742408218027001541902812643130273088909547447396387052935716392592448633481338130866558775011170337901250445432061844417014978924954016564575306410719764911301452777613379501351801523832906223905474729882947318411328588750313957022820861505349844935157068171102430934764329627784288465595389342145421171146737503152751737612622413930545622213724385268853904010633177634908899517401065757746461594288103202988294566782269569358113133199768686822059067301452081482601887029714170403004798846800542844319970223049323007822952850344298482213000415153338689436850197961304138581698769172298298169406454203575425123031393165666069724767276753385959671988035385781008805717984998427158219329073778154276624545061742226873915985493133713826281007537041595027862907587955676109799229756212677001863920216853549125014168887329551696232693191756209875112606416243664572843667732337630521754378602999439425457332908446479097774061913263119532895511474979570923595081462301452211761432129275324273936979119458703461367725948744555107078378594830375135534729759900961456925284010796848351539498071282573390155259932668197282226859524829610463647532750342059651038093249246170715808138876560418123276987276646803943955191734070392468530063450579373745995661960281869845906754260309016180711528862435462524191685657312036847245782571943581695536597295312079271159800383572307012801708783223925554701602913150415234829657140164181720814182778213863309949878725635434789715504335639902698924127284265073329544165102146786643817601189536916597190601690315923667284035642029427705782882819347781357262492835286171002784572905436558498780092642891142548862139557818572777526461908183730956819430699123659898106379448686685201361629120577100593787349929378151091281819016332387398445290996839419953057135576264467355987057052758587888651932301952152397412289033753180785562254737391628691894463891759536716465171249806124700743660807872182282080446329376765593199353403332669989489164621974654580934620025975688849818991400213731395583927323733298022189802084088667316091726979449690763563695388863920042181401662224053017763438620022290717632745619514163957672942650278354594606557054315974126428446923759678894148695811683317990321974346333748720831009865747250104897809557119198712736999730097565468213026494905746564576360932042454040995458459488848628421261931789773532164231373804499656611269246200182602232584899759982676892363299434687073999950482362192894363888488824590704826158771242115535737189608679240512987473271089084272598995190846390280120411377499787414565456222762803785699781369004076634559527718871460368663051970773171335001730922810236036631343478997792449935145717150293228291503624927307557378897506916948658153672093900576133295810888179080141500459541720553972150943504944007487469638539804801244216279926023317989090576982591043700537096028802632025110308438630313048217791402597395991639141068130644550715970019931277734215325638923790315866119127338700587687046773949118223007534486654815592347637892447263045890554634982353707702462834726880019912342124164151227915623494237976107026272884472778645860056847912963044621609048965953871410443365511241782432924904440865377465676814745494224668371447825993917613709302029877580005192657130585328459899579055192055759087098465915518690323925378278431666431363176483984849872433658099824506689765572099169653614160956125864824415484213557594147390020051970557780245671036597057074645454446189599568595118943598407932163709601423400693001321773952369104869398012630345901160130987171154512756763430194294869753121944041509891023418550665676319600093617961393323674243834506523566109398959906714283466442935413660406338437306314638175611652189790560456356314270874369373900409407182689731410320891363154766882657043685004463279810585082527845692709982428263337043976156215638967561391371453903872436096931869444379780886094051586348395858598262886303890689815659119155004011763302740431405798541666786842580994266730909799023005140128805417493402155457184577685683271917899008530073682190832867176778098967022203223774093877125333308896510878913843095709057813376311806076454552010489628534813987740841388716335023952154220770309733363644397536974174054157080623216047435168789452894207268479872698673968406919023968893166975949076028485561554069998386189546418681837504139913496068799438553090346000251960223906394030883958561054578436358914365511778333896742706722724377857795630239687163446258854321414618997718256779520786803422327329217763936670574602691094931146612494956668977606974441978189008109667869934399616891763446667379445487579269940418674228773014080454324918786518950719552686622644684157476166300541522586794811782739218847578963788066527723694376009378148798481377676835910159186380612376217713391609626480385065208892413115114083988286945583055219101018480903739008320147472105296077511952917225927123396756761749402439137666478789010200621600367682727520014011866609633641954500797301923409970135514545822205426635180576173691322672923032931540134545594427649256361914519885212939124463704290315740284833988711316695911686284386220578858740566840103805276009170575543499392401339990480866200047223326131659940962692823310965387574404112638971716411236813856240979665598348074086307691434656640601393334384975077721674348259990533713405464621552493464356020340186687542710339079770166851576709677105902251457783056761111743808834056181229609245342060562705990039274249245254891459139513055556814835339983778215812748766651388530774987972064529042821047483191229250506899316947837425162426034125368136683124029220786452778962067583702005892960614844122944236732917821133554739357847478521874571263310005399464890545803808322955911796522955485429633860454366657474888374057772553397551594870093491218677919634379899445081022023647362700804594911348331025145881378547572765829141393561705160873747729532609911351512185838655740168193878350254826476843191666463041018161630593923488378982524848533647737357379498461365816904187776268652577930220918117728552143924898654354505564002422388690370926279999416210414057346735647236780168444353987083159372772069056915025564502510056753875143566484521227632237568130546332869128880807930542610013793402189147674742941071561725368486918323454718631443711593239653480219216650525720686591368954113475098432281338883315349767263960211042119392086441476893195120847589141667276655094114403515710975390637496940117930213670702655257815098782981525255290505576736854441284751825667030061855912499381836267602000523832170935127404612843025362699187521707682837401329519553008547619651990415096691894932519739021821581735662050211650385889299584375867332721604045742701575886150395685523837135311728469662546827864032651138117090227695067548352877787510753586580229644843814562998670007854516228070902914445446571059059153911248704056583041593922621514017253137040829950962969074416788770249907790282725971850269699846811332600727216726622774151510326679443441725472937489659277343423143908442722417274259927586763884207764001207257765118574360129849784058709289414531067708080597262962434415910092924628278830359965678393853800889902669482113272174148992970748539735750393532000703584647915286796578317831729986360093649895730917455139358195138171937341523194521974889609933186294753601700946981888900094018155714384673512056371751361922268276699639792506296520922400858781615337327988523822539547145747552003342094747226517611830679102578347366151661259461229604771168369588245620345148401490513466186397593023468618777761872292099575207905341798091718544546636925722976792818343966655734023996482514192850326736212246859261994734070167091508719175172775887499519122502259163782576188061657554623553817687005286173229896147110467540557523657940824141668583626236509733250463075063486354107438636114651673233996223363913892989727263744381720076369012233303881951442539591787733376480094018620429321593210316780172369846839108307283182132908993313889753418357712958377099956130413326033340611121867853045241811376245955590577790344174506864706843415534346538104530689890967855790746510364767932684286964830198405527190640355123489649794210879879288892806424509289383599583481857863314150146038038637561972712044035458427011772659345004427398213673716055839978096809859089208722206190392316423251432571732556845688160692779322967690679536940127146656932736959588023761268160872711985760953738374524100266788915563678273877936270004538586034842467145935508660795997010069605074913490057548273222753310650047144309830382061637750386048129624018469961004011102550042013961904133746589047048910793626970204252913548860081473519499632817479736317072036143042960812631925121400678810475490502402847298050266175056261816915397390031674473302148789154401399879596498595491463860974958973451311734187559062873098256894716683459291662683866392931708929031523623654598607023226743359900460701950627890807237449989301813977306146817439588336453233989578924253764707314530325354911761035970504831759124875120252571677176121117756910131228571034266708601081093831113597135350848608532182073177002113642381289067681824589494138441785386532751685425287086429126747413182900909355485943911708989209415206520279725977048632776644725032391166978188427490707615829879985528413455733548117779559918763174621351318021347996122958936505880537647125519179470231464659990114407418986094255890484472545711725791126693893805333651498767415435784485659012151970962504002847888595567799015119738334528304770374277509317539386727340664311455925792632166238947567037476046116661488886556627635286365041561918573905753967349334506475268300675022845032315274009993609478192518584140199147831564880821285297114445093465231708303340956465380912805400995289475336944162005808536509760134473711112526047867953020422731150193108984029902627212732142902200529165854297379021223723723662507125791907120940207292017031906982274292160339522440923078204240695514312420760035505145939621242132271871198287596139389364630503769413446965360470772203127488804238331294985889215896865310150005593991049244494434427297125843556955540066405768106736953811167058596816543855794827987557523357011134190974372894526504022407968737633746204607823270829527097426992652773815891989077754983361995440061981930581899676062936104866798884233077744413046933784840041717627647980494844963421827037711170529165807993635650760999920113348202936915710123433324757232324016774065104117842157261343638021153295869888687927015077496043946874279245915644013938071370981590690001861534075125078900769506638505720634555029681183295753779838336031726245852904531281127261527125172937210137852208601732691656618042210038855793206711607207079311019186613786731584337654946138761764254119293187824180561262541221616589450123140503522601898738900918501192901060309322300825477618024312999859267674465461607872911544749236207628987863606780758479438949396647717832825047286383567443270944992121111408682222720255976315187712235021223050323350159426622368354468654760546405974281388970089069307923671238853025955751441212592756578227568213204703595443039373495160227409366581050528270511235514924106251993262209284426173174614413827515144963745485512365428241233060118335551844747839105381712197795571581206779945772369911627249449780957546438602635509879032825744413778321882852296910109122354043731632271640760682898856877263315182304361056457277252275451957202744894060870239885064444591301986782707667263958455794297367175522037526758031051105690460238648528263679475518492499739153186974342391046013345114933414960458283964419363827091373981023867734332483335040689761026184396552303172987560622138532146290278619892025618145086324902604760142581627069145428756321787579435422128055545492768679199118484981173313399823383648983563168028886669804626703586376332735636387840102127311112572191202417208819082455110885865848134947754727092270344933442406065164725318566277898044273932835957681457040657186638115294921541068112006137605180775728789417136234427158834124828894202427475845957534129584101038549967519651346492149848455176483051300490600580461418017386913386549686037628978674330059789219987079745588156180802307377032879246819472273511749239809045830518584642757465343771891113110395930876314314330120012808698491370951809160235922665759504109029944931568536593422485424284318619290601080728854971732676185974210283583979786800153885319359281710118035469718781685084261659183916034082285637751200265541003549177011579986760662513544585893620950088634227391787406218322429607191458032531102780362277040323730622431466908871301022421915310409290930074971784610446855720530214410722089338774333146954544946807942044806442458403499490379756758614262643353437809039566660253001104664818259174794933845966370248943616282373842775759092437621364331476318784358461766965166135853454214912008086436967725556619240371995977090191788890372475311668207410134318879584665233990223274057487444771635645102404899901416459335015271279592108694429745512732829964222562101950847024123570192119155957007882491262890020353330662407385165949835817253749017114102809395553387775340574250229145578458813748414706070683037618866673496386318183243993028031366320358178618399206543564401563532961231276123561462265875822461605347456493337148191815541613742752765299485635929039317935845691745012246981215152214954830566152451432154635713717086405399179988284764822482852813948756487245266176366620299059973042063725373606357970265884810742181259882814918653278428186270840948852459749183138881215690457653251317110074067430189429130303432728028661166406223353834676149460493427967081638096190139281557567120015864685852799618088371048189672717504939432306821177671589037042594117004628693038530216797815969884526617582163613324380627310265901115495972690273011888442222528211518242581378296758815509157911132842505700473780850304996147204172262325314817785345691758574239375054997631453550519863935805488749243139264422870976128770906088691946576223889108431044238467921298800405383382768379896539977103867914150319812289732042607712540862071211823140304100839919251882244246256580816182636849944622173142076657893324252962641316015153738843829653198477611513669121840256816980509265064452179053144792458080662176034432927657132535376413378726975347002318129904142559222065020277892037820665908066579748226458657631747029095636293572176287448154726724019405615049679256300241027806925993525425503819631090307288491351852487120081912672953670245560974666792307597272417938574229537532462566895077629316759232258891212880301132690069226769120939530311413575318181388710877884300326683763864149508558554389073796690368016181954320474074646563951785024601053410207380018994053860187501657801701383926682751559158159711571953455123255476152857061612726271594932989271608242164794326509738043627733796147967157902222427848521435294172107038404593059499187335630714547151884447116298476735110941726223915713773737237355194812382949801561108255706354638149933726265843673365700823504971115254840707552946938172142750506204828730475307802120629376538767142273362330600741062203384704945307118773494929888155214621444931827346457777923316814645322348628027688525565858358420801769345047937744789855614001778733200260986918880990639527015448167825533344442896806583145335449259463686167614456044647302801165649196169340240541857133274011107343662745359670439857995665072226929988243678713332556290965346688461264342889334890505319745957902412104710393343185573305833261535029373320973095382671771948143142083370323585193083786554294062578404612010381860474602566123559498164049672830830353433756047826237901611332243966542035020070064703790437318908534754941142596277360267951247933399872323744460872703997074544250021340046982707861612476915566939241247309063752190195129192285258620222340964414819286781819220564776212498520402402849682341882765530706552241623532264544008899820999394848568517937826830497936962328025608878978600812866080449947830154871314365830006044766487767394283985676550520658957437595675172664880162631354335353786830411213136610784303611506318121505429485877206631320802800774690326890959022241182976366468751632648330888642943926149227290963867264397250925306822363792058550342197589641611418148248685352235259167568532838721887416643840323757369008532008797480751074693713301853515379779412405710216435163681063640491508051765908056346982411479188471776974308226999045061550832578678907984898902186058640738445116564768366666723071628405427500903650725288610083874211410991551935728951563759879557014408362278949758391191028148939353737432075134152131155970571657593073329291497724601342748197824844290712617369165108171276943471652988205411333355539246188472730447099266348921382057478552682081014191479672713545770659537086170154186452412552903354789539451609079498474712453300227395673599821751252839253929288550154134990804290431530892163325055758957059230956310782485724870839631251372038579052320602712693871095916811054342984744470594750437244236902056736980957134259349355618543355143838217983854190963475992100872982247588776336873223718968653266971904828125699198813674769601983605173631544189324873553112665891658298191264323693140495879297146188401258712123413113682652935273788325456260995476888821186041387003170667307960496548660828995902093260766431789644695056587063096302373434812040809519739952311714158556008107292515213742436973963672033169198410484330620819954850425849208944431288354709581516113403945014464312376568858307241150194405232472746924657242776167176810088269652681177138913415342448742215708333760076841654602374292770573981673801380648043387269478091344348092234867106999009155665559555902937299492310852979175136403986659523843702602789771761941832423515362827845306561447061205681803178110490959357271271371050302099196292264145745743753144671474654105563725546319251702651888393407618700182864266291609385675111417223638939558226413250779169424900255944265842657708670218296478726754598974574519224848841812852162226700744603500294973000616298753267972716727647702032157450328571182835898758654602788967767423198703238587001878106872268125992959271055744339734617054723770011594364250020813101446764706130631937008185488681360072354610597557652687418508047124734776775235718911918674342135964109128968552600094578431132538499903162436436566914162877477586058740986067058190835976870004178544073440369779277708395027253034543453626223359033040641319642332807078135793543205726278461905025858221141240813171777380580074136621551945738581780369912855557317714556125824413891487707611597432114592422705918731642169631498173213556355058839586194168354962232009595558917207214076180722059626141097907243633475780593781981279410421077853367659288673776619704560960188364407222513245072110529219512433338781328856515431834439231582918276965114892881896970714769974726881812686862288000707875886816967854652297169636810849538854919838912842798685966778684412894959473403939342750551820934603479723184444748919304798820553095709230041678103790860465077767552863641796315865866902499070258892858744873751678457496995219213381941495908210858329207218879161415914786441088918180540879801318235847539721727851411428235847190598367793857751708053105786710052651118563889014787137563357302925935661740439251795597281718226868062763949043077699895498531925063373422372820783150073539911832717903153092518731717981500333171154508934942252117075380875662916642812542548416977007476678865287719896846052784746717275112494802760596187072424606948144508018406223755524922230992819322217890725676850968700476136864457050531176991733345008351167321362052612249051861216595162468367227053632506223139261606366412478547199214119500728138804479618941746979194461780244241737169201685587928337411398478447903739242697369957625440657676038613857254645743804998912902125991507323255959360712728451138845676216285625005884227017079724427681707979012757518562951742141181644040593496972744136658063527727899697415162889188241236573896084313282205193717366025111129517333547854462206150370991072759118680286887091508125927440723554701802647508861129563120673671402076297851981913578312602626121046607898770966659965930152806059568114989155250017325410373031520585319811833761292985153738418426300365188107301735568276675169388684597261015010777000900365644100525249155303416077940497422099670585331383373938886696222874466031798044429737014946145080744650943954723911460675776583429977329310861617369599290561100884009279971347953110715614596751326731213185704055442374181313710891471371962331244390272978547680303208446105344569354291069100951178353419911027882112465411042267518138060141777728552410839607268876717200478228774784457829109220761139683260236448826673611360343954799322065737576662333437194270366025711016077287976895123013676096579488395613321582987248125836445647446741880721862091738618368021411428444966165539312262405106194538969713033643022253183084143392112214636198183639735517271056534174867564571161337097476606709858056110670457526242420334829673896951781972338795981141510163573833544233356597045000250210904687654849542867859503893515197993276329361762380531740976672076239524047267956697956078424315243587092522541697934682506700070500401475122669407585485930948788492583168881159096491435136685437669279840351370681404177741889196828950246525047664872012211312354334675617663523462607015125402756016083375387076299808907184770228692449866294994478307757632427472188356012300593724220963223698288004533322409218752962230947199319377424469297379225443333210931121321819823616812558848529403764931544020165331046031431680178226464794747908300632860696861508903673316428201381852495544815019067898067856223282053642507206485323952378219078793840680240822716116779803358654842078812304161264457134548862962468496663999731567379058442115354044427830759985989597743787878419232733676504769637801896821139463778145958302870181037528232541085376465867794021233270208358022742183610907090537804447683627033257072587653017741947021320533370990016852505035105553559126219569326817141400963315810512118993905932214384393702187137569213844138825831574220817903447058730667754542619371283838185995044606885449038395596056114087077629939468311507118340440893697478054161351183051637681378915349963152654440082670042416638273172861745084881873076128447081243112294549321651050352239365434775128485448844552223137279444652402126754955776847494498232994031326886212933722697486450235607802522301788510114615213374675575915203634432929926739729286270849587944632220594996942099659153151813832203893380841777283997195189234620033780997630943311523575800618231729186984252384917240046610560954328976120016516916168335703340384872730899559482802888036133201745163490262960663188071123690301181493678444846277728031665808422330608310313249306982001675758231727789413184509123842008187133714585668143450878246751673743064820432499614475182029451429381449684507252825619175838502517078735091598857840765604783089457977138470678700866200479814672794102208956473561250902071720305460745689025855670192777770545334690783350781674357208262636039516381136026949998056325122200303959461439269935504658549166775231998922268002986429212385925208331465138157913766075040369475821395983112630078587482506142595714886389528250276425598878523080036477186659305430808485535948224321046829620520832784664695124669067827363727447200411803715777419675966313137134531482330891212224648335877566202263686613280391503791713728797556447551533707561482079268010681849037412165143589275269495982389792991438709735971912806799392343926548274429429833584514712319364558160566283239254881062668967355683063525736493972118478676550078410049032197751938161323394565467693848551554006124382349167006199941208980168196993221926704353184569458838998323093900850532547398209820744369723726367093234766545491244360874182935796654114417516701005370652891328960026059683728355771262679305302776509576616308356618844957071521577147736873111930655387513583272018446137138934019155699950244593236348322555053396561513088702219116135208756922938661260394921873587781107901744417005104445208396198937349954475452601056964261068240177901908080547061948299157998418169692970715776815796017036078676566208461820459007531672955922270566750789372629561253276247662618001816880384698152958805553753545247123868701515273565865697913119829794499517038526968677656882615766358965743076723819454822206277649700729971377276122245873538488117935006560859883512236307326246675101328467047261897562535334135196565826378871415849155577958023842600198929128966285893180259842097432681745342283408459547350879311200045400027676464225662182440807008926517271642561399878890136231314654567698902034840131132182227000664039079176613899982145566956913904242172254532654912426993128936903147312700181629782463491121872759721830659662969868311344918976785536844126079746312451410166340384845014640499661161700174174811261307326000026813648461698138618012467380741981728851262821456356555790813752035295769953202441027950206209511771952891036641018425749362767838658074616139434223723362186663093222585996668844322113673023417935822247607778030522595871043140807406636903059999061309729589431436192127159828719558135854071145828402462751146092323425407967992865246345948438579719058875513478238373753827540742442008691855599809070694858892997230988064925128287726978125698745893589966196326598770018640035152858940302413930695234446552989660879583200231685848240936404334721232711507646304075847897418200182133583408938650014397911168586224195206873294515713928320046080051252113706482850024033244020538273445378137762628280209427568370596493736507187623221913617615375734176382672033554074105946778657414982451557738704328576489522412275129654857628530330041168451794169415721170677535123736967561255046236302833389111087134837233053240936215853231483054794036012031853839589156983808263318205777154136758066921269364538018659485641098785311462788341632631830306513419093637096155166917168391052042422569131691168328661928097624692509312084014975474315523425238757821185394362956860478581621806920925524114750070298648579597307840784688267542110353849539804793845130318033604285880878702313180121479287611812798160412506780482213037776558931713989754015128392924395738454013645562183134354786671936702052611125918675787870875644819474741396386833655965526449198286859381324531186369343449980550769106272342572403573681796148064659324431063016263133789608082408605442190704969398676129958337951415785778522010573423582477965153481882803138981542815660639116554169093079930264056519068690861058483918867852978274361461602425052047920221840939607040383838505686973819216201670699617936863182343448567591658865260606720135323070866068336928726448407019493005396778689888967720230333556623035690956652187985081203986991051526976721376574922358547804207876769584344863478787277346989581685884435576160099045859887582274502425013845253185440666795767899387054181998224855335620837484428794183273294736515906233882602582787250698567238723757320199072812281353145889192908634318928929930724850386382721519245935563448854345919553786041641689351810774934897932245829103066544706717469744416417562027569881455359788997988257453852591419182554996684828430166549803024979374919288925139519376804408496901986099311796347404990648172474964813790296759522061959224534036089073997377484690321845167048454447989212696144782978430049391722632917801003917592891865065342201073289680609459654516628652342752134471873580276122695575859193515266780754376769450012910874640128141691560209635111501262106074832732157216083121787166607702683029563131503287410891073306832135286381140076854348574621483702782555188998102752867404917177235067046532606528910511489123233277752369387732974258607887303387644209078683196995901434053627215323488446013767068481477368696014377397051952617174945405445076361011007194655489083181028335866573297449369019785011730254696679136018249468842914062602526206851858673752301017741745072479018263296049434305616515822503540969834906616693432340186590641054903131399884314148822110732852795685117445727934003735822695732720375510005075983383016400524354049046663070641045955808842739181808090931330355881813069232997976570981247019414467460664570846071686784196221293569813288606970258162851159573820069180972171644699421441779257391887043503358214041663290235242575535918265102915633096432196465900648492109138422937571687114882314003087227149066653612826185526158086942747925184659462206465913451177115281075100476297209261746009190514333382572795076330585514554063970734496046197156313671118226246130306535833023664952183379583508974434326836610833117838362173298328245359009454471827508284206890733862085804034060626325753873693680478665540950638884713276945629026617779773149627782158303168978499036503602861861031642210134729148182208310185533270417867968951660685017171461623546461770093567590731129304964905247583953335384967277742831691800317943251471575068954079286830234096913571139990556637380457975252616201452094805405439196656865580017353641425666588069592574389416942213380441110904692117431279655708672829408661602976513307412867957727806846113860965345735148300965257140216108324812047513346153962586057816494595794016701560857858175015114660222289143018350469263267458240818222252088590194977127560511404807105443467982986812421654115881711319787552093753449089086533146001767278323691108791950568058423800692651236130463914010132167423043616641426596983115604366330084694880628037205962078522808380478721167674554986331428906213067592712670159558883332747437764097412744795531379810192244052742315955667266102076252552918329420176008597835361963548568167258627459673106327729230474344671101748880845311487304022040103930675263100399086050541732696729943823076013277350928670981793160334460239203322939146557761671714126047064315009992897525800269467546994440530545494649039449031210786662409645698530072935381250273964958704687943422653044874941498235708382219933973359703988545586307639833234124137288907594413240806355417702264950895301962461141272665470088151428924404337711014510051311447252341479508012306515695882474097964612707903504202282209005347815425199617941918006889808448451129970004235852483857666134383884410129217779958021500635609803633980476675704846623004579960923651040651568012034253037418483842424192328232352472102758152677590041327456115471923858379756392187691960737156842615765068884383003353451214220359011559880243264126039102082968335785326452728898607252539987128749214334884917722615332392972279013503204135273743246930998361389197321348380820531940400850878607959298435482241221392534108603266748826487701291155039798395404520747783041945163706810372847437225576015531166987031601777417196209921348578403723361408530908839235504109692116971710307830543229904786186922277988355595788345443537540501883800168970815198297082207572312348023769145770000649530571675454371204474749962935254431688819706343497013821394307935528604294878041910485546126885228401537577967235736264533917649054725541599458634842537197505008858253882977364688110303574865754901669116027622683701875329783874606197021383234550863404307719297856808378828275219275398125596059369397961895387669185626073734233304645068658483186083893961524538520983435541024183713823145252512850000837684618708001578586930435290569490292661472654081512605399115531221543606595584994374504344586350881488084447319651117565470777243910812254831810337922674319872059362569042921424708724795483737240407052995508055078257654615778070563481864457025168692224300111976391175368736490144543881644285129479755642223079064009871987797361681345929993073930499570047118016341112895945478553709954551203297051411454343841312182776927861617314855784999690583062224134695453522530776371655898449550240847481244630228552179663529407339792053516898800877822388564605065760893202884721090394853112607693089539897371506527297037985311612660472648529551082243354533213581302923860139377830845565621294905664542386443218917666246910084859792927234845812375071194058987373844081048959002989307585213796802406600175904982064908020603574027081399308670577035327730573413555293718215291722839218320302524416221593694188955847419352593215453109851096203899826781606916824169544736337006802875769033875902589533042927227944922716611822544232192769419150567139966385236431873129855748907205553277540308703885497545137422170893216468592566483839307558658548409009098001947831334556155977349253280913776112849994209821207028012688316339544700784501843017268318777519644242151909443741773882743849013261158107008796861187713548100756766813881122529437364909743369080302265407087243936078228071149173913056284297487840371198114272222395315809212544854050451163269522411995209912733097189119988738791565366187896839680476901062587980350147022054581083614554293423020406831648626796955158969373561438075143176443830427388602566923854431863638060189481217237371342127876057406222179541968550211889073929006454539205131916660533098882772675640241057343864444724629471889402425968441193691304855228781798384333804949186852294212477509300683519093726900755165604894869252806744748619325731934738358863935246536681624599041050794730012645414259450906835111382546868934501948461762131759441414879438015196345637952194018668116419093257471157167071700040916190098340064705853194119259156174012342265830452115241257978106907585184401102241605707509421709131550974727992887634958247404811924081215530647418934982125894497964037805187888372950425190199580230734231586783662549085903927425641324266052398019365945931947721127824484339059787376023413274209718201266606770211263839681198504995356372307745303397232103415217302829755727700410057848156972748574874952921649159022385096328189772615301263116567499510836245253487182105236526525917634300194850465439120163150442377696226771095521779481699805593812991607217356478100425858625324695190098173087745822032887601058215790180695637538391324350852121120367184482469906157105837873813423844284918721403928123713038184189737390082065479915133529409459297234178656891796386197486522928238378657694508595134794174175293209820377142674477866390084603801455787318968443801557358405783692566354437862090440234362455741004562992279039068828460888167744143803882116824453781137842618971756564201873657294351634422640924505489532286096454940113537288583977924714634111279211201560173723884893550568691278926877297649392808794382464869063047370816347204417995426597824896786657690012559117122621316792517097878991998873326522762117509253081599112592744757729615349245120464852199371005900643967772553449914640893406322064540980605435732275357986782221905455767043760949123840024820564064780223068848057755958190504021577032583913987451388679659317737228335479503211642397443440132610904377622694134066826930175270867262694588474634880709717547623965103783454533234796528257805809990592471385931836498167003896709406825443443030017622994968610396567328428681850737182449528788911798540266887167805172582259496373090879534646926658280130727712576598948050914487323053749536051376464065930897174040897738095876812802399629656998082808059811950029943865358679942043696802922845562512294122521823752743123656717633131023181167776969914498548074578517213343323243972950967275535064863622834251522070230335227215046325574500380044513086363808114124196207795175730835099186212513566530052808532650084303172903021373022118523334099932781633901322860217905399566183959431307553839002082410539787910344490917158631936705965566754068652762747536933217468992680357424689309984229898509816202447616735934400138812887834889541307741659141073525077349828987850104476455323338194315006612981060550129574031608914608297962708659918681276338480125615135838452027609374703561757535442519710947406699602423034574717623891604130099076578661109083114456116217816233921056133927564220670654392774020865294702742297726052534324413459845816957684708238841383021855824628676339116817123410220874053845048848124960992468105483333652306012983088825395416661118132899060398274484808191258542829055797105341572740649944921815999505150265663903401256419282854036192833126263546344033389650496833162349657449301652548028235608757429688866381887540275247995873183625646828817274316165262242100946539474569257464215675749685756352038419474776608339054537736311248822891033698114391137003800030169971238006222835157584118415922769282181324860393871745942976565599709505568013291739596894905856767819912298855881197462567017323229531420188846516542409356959810297106008983188690293191635390226693167272518343315210811913056625487908391103395851524699385180189945883141746535160826272310961187861642547862906053441816690096178131723108267857889317102342834026897562069562189200827237523738364159331668436266027021025017319542201773518387434396103941122560387765947692217062691866119321509678916163586468638922972653946022240183761744212443187689203218896116012949789499197759829386126418995931191750797543912502949038772386850301316569337874367622108903273606923524782371081959077954725647397291569123662313643361162391386296414291232111949014470659869256417538709100037469242966329121026751664293252038859444072253015143591536669334342287112009133329557062755147310710780303366338542393768406751190241055979695722900579549396494400544637437874451161238549961270517882861110824456300158574144102060551607420125630280238289090592217031044283104616155445200650465000672272500295306203431780691455499321944340885757723372357890699398373927852289708621177840748213847162196902080261515022974923660493409163472603099878891713417054126403967097443119942655597496551495123193425604795268715801612797045203627960316255049597778638232872436481134737763646387139736134666019366102738287312648300562151843867094444229354059276336108249582015909537116191814041263940119853289419576126453777322334601893419273069171242240671025347658846828412646925670942263049722654229580942304117951844513867810573415473789605588115407802409632486786710980931286812225560517456198998918076328186953847581870209658014597655964603792010531698290072442528086886200476028742900781137297183129466934881655392167632176704816723666799691233966791364350743680809767148397039086625461881945051849051961368324287741587800967066454436182235336895007809164965281876178986638964244764624221834542850440026573427683460112440176005165372774727440272857005185991650268790227503641421599555864373740777559690684709877460949691155422667483015098587459329661879085994131056120842862332435069130371064177776517440036678967253015632854819511887445074478267985647670183798904648186840288222504584402416132576835159332943218212116171480309338138372750405444057207920488366157455483820031141153128486550317487709219792189211163465646241745155319949568316714028577300063268716992221668309095540807270139618303556281283774307648242918271905253471966911814264452906437285036456128065350421121825272673620642216857064946330454818123444191412784369852393182447576015530690422799308244563664155911663880074927213034674339416893789047349587706946570559635953209502301426011653344459190474083963830572964712872934249703536615541244751926786927569680914944070475351427854711328442341397921568582874013345433535570180642811202851311486116885830861807585710996720128131215471381250509076949418035224642349455848464144256019755869997517830540560383284567085999836725462466649679448218027598431596309431203975678097535088010611593443319620480987288252541932727635480166572183105615979990763482746299998516865169975093926153685380303793278612688193113095521554561519996218817618854561802538001291132760562508341595649573683009421083128305134600401294667455560661043094303252410840521243546002213477674032150993214460106692681353999791142982100205275753680283799228170090925440570654528636676283082698269494114629654345692284677791778005979709364920302811620544260644157376512296094826763554297971532118683159807878804577929446145446954762408384146774657987331895422960463452460816413760978747688932186244461432477485510673652134392270919220668855854234854470895430786573331000551984225900362452911451030321824805145516491116888972672851641204022334363704486275067997760253182015912665653334583799509676710557382661392128254961774497127204795505993736126389995864194311108245273002400841998044933183085273023489819770741624358340199014984915359890604575709528581560877472069813207000993735376436979090879811607471988959548543827205170052696798887454351115287246931232979718122898941711156241308398502674549087996332605597848909130030091842542120520371653348287250468613215450333662568627423954845634798041404253305345680897307858738065682828649616570791283014889761930342518674668803548987476992994686774015541002875131008400915694650367938404537798338385968261574705879680914477043077312393869219344657328391144721463871526742667909377838790627775038835225594312170807027712972507455653089150913371455603419252681899116420905767565060336813488540183854035465585266253565468710444668139431888074791346886271046713654810584019131654480208065672620861959779096528631733509985739485975286324084825637691348146036442788308665849382374295689128416146198354275659777316320723689199661385882784271356827617107929235690963943205287363107616439885043915345860106308828449707941299101514240360968169805061759811271662819074300021137146272365143430123725549519029649368810972207464024305716917378679700155050001901719651884216132748212452733237809927510037636470208611237597979205373887577826619047480159300018771289705765088754105937927767679588367245756473029910742328025653433566991967663267801425442873090796534770947774133000207701860751490718210476296477439494322574597757269230797865845843559705062002554057619630677691780876905366951021673153089111458879947393681298971961973419113821139506312597819594231212229020524148293582442108778850435654432865125953504638548627377171030022611739597799616588543927916701766161444241192295475987979151080309157528137222782751526479360704329032670761234097314031964339308973633059823096452641199138501302769275732122043657681285464317685373030050460859921560207928804771030194849473735361255888826939148069977926391977962767347220287370231622295333940365612636679473633897925770458759143306377246236393283217602874746639704287685826135524510530490874208071395054402021242724637423063938739457718994833843409352264300542817757546748820974740652271934213989029233896065516633916929049613310394072231002435404423971348671195378442122882394139075976603156459159447670205566049625855629394341642711769447416660345482691782412193391814651366497822851305406805977775551938676609770522675827853075862558322072203823296164692141733659375037435289355030040397404723917102284042367227846205001172784632523898828787390280141483694155374147650113752006488680905204343736138483340949457437184412228583652023370306594813163434674783509874441835295645287207958805997419308629904236175484714139654511296356367536019116921732986954486385517066938899132550915226026814311443687952458906122234335646924458736849709558621247298575452411715602440704450225402687691507183140188550133147381785229286960690703858454677541820841347130886419531686798190750395719344148556928942674556950468582565291698319906562474950794440939151765084649496403104900963673515100476040165772240606369873672030310966435672243585825747553323817155661433024220268225100580815547398568576025764749048537842213666544474423623771235525015149542295973489417436654183885728896475208154800461727818786561790240209297144350806750166956659956422008800323368341011835158216014589256696163135269354921510183336873646132427099526211363940258610608172055054954948547284542402975604721552060337156772928506518213214314152286410960415525676052887632421489076627299342522520860050058142971379911197584172684956435992880038350780220881323544020485712761369443516236976730496759565861324718004892441834957037522110852683946588736024188896340438548072074731501292368522725001524876522335883925280016022634247759945787994214032660924476796022258818718961993702087198326205734929197019811287924088959516700990121251468982216853217020264204386370558855384521447517797477754518800773278596268303639784703983110925057834622194114292622264276222960653483519197102093465096709168607543811805427361300316767667051344879287297868319388206074451014328667400610389071347017303681064965232483105504886116178508605695116400279740744278765520437426032077503896510917759827401173361070762508429323991903630933751234940907008084875155263748029462928582059864023737503149904849614502981665221697229485806970368002605139462473713539862923612660708247231794652370698516193704897402361453903102606839451205643174965754059024084849171778281489274338111439718279250333768091604761623025080944834549017890241923977796945158269409779425383551888560005106795427198896396138821806580997012058383280281661449797538938722886866229594991234348565831395003703674801598228531112266159160597467113334461590287212352767060382611935879411433386010493282770780904880213672510510092286145334568979960439661590981908578718177055391212595269101735287214330563746467331615024668361519419352236759825262608144487461147394841231695584934785227313396973916284212629925371966078777176961488470891113509302147317052145440541179361871157369553097502857313895087252087572549876602833475964163569589307323882584255940082366484990768303704807105675564936846738624113953664847377449024647249669054533156815457587446559869411154898422419898061570010687843195056557003242813852860214483002447866402852355698015831498919599257541358848469346578776844899119685428755720435632734414244843990319398638679585619853124752511675614352433232449122678214530497266884264203291065555926165363764989947079385482683224895764779085146866437867660457980620032353672614391224168119289304916457097170298796000201910655071980753263393829848460798374599675524089606618575892214883863354068525434830652351424408047020079400132813454357940994217469121793594702469160397649564595164164151681400091098896044551825450319717836068835352055569029544852338013149957507776926324409834735847860554745517466958696968382466641315490552033107068382745327325808734538884502460129545974587372223251025410497652402251881593472044476514873075075867414088661122102286631781820674308152326043289596675306908621755606924443832288199980761490742776648538475576329800725949362608825726280873625347022335275209902148357932744792239081894261978068077543659678360547120982271799984709900878707080517223717017796689187579107608699946571060275675484552739996939576049038345565191182475785971450407908469621235817919843225853053475093359515105940981868074108375188239707614303536199564940032453753566765661612562674597253474126997593513555189866548687823212593113842595992073868149763786182044575131969478130466122133299639492192787365442901029947324126543638731952605741667252480070862868011922197670200136580792216698977385787015030672253164780362159138781636584576515173791235129244046009664513256401565411059856378368691450803712078928571072523134282907599421836951934168772113893214398178041040526464094452352824913548278042311206550103492599495723275995976762374994153697414142984528422879219170383810384423239781107618479369880527725292855422801210355042618490984470760567610093016417737328751224776786838965584371126099751589559718512642452955611934688472592115085556012415646733866889777855916975911974554992410638358804873216352870534456979703421092634688876669215033925268637841012563531789821736150901222443729650835102775232495077353412601906521988648643818097399250645498943545348526774011752398593743379556130091167949751691832621165680238031504795114363892388385359123990430433974599487936030281146730062837473848825460756254550056672460383345982925892662638158543402983914711331198701209555610802900731408211142233116765582629997918648929284499979819052531179874996895547995265315019643568158674950805170747998046711421596398361795005672072323623000010833137117334339460261765138526118961268675800432466459431210384243487813593834119164909909825417181297948297761489680797951284470978962664408076210202751624616135029599372906182540013139799307416212031578750897569620775389822336766206867015810491478698130720717908252598300649032575106015771603739198535366057093923714387857272660425233667125122907323198067904241630516653895492723016239961766781510249813563981425923080416789301115671948454928158316929215339783809072463573715569044506528992378971923122704104394772107528845968049655493794826909724043195033566294166243196731771024216559759400423750310228017059886327033474806266486251192461148725072752517491418483306352048571602135642696057579604611943249303897892499061751166842884401258401773790976230656610593110673482969236264979287573281333704372417708219913505698757176577827815508337347898184997275305170942072313059387236287744037110010812720747407439966557694846455119267901210086362622398311091436421023319953959179637533151743008554161796992900988006286100140665128825964109848401338193221445667275584649070778791622284103817185196832684997899122088533258187313602176491933212557228265779417589381969616263336711299248248592566497993330727079967226985621887798118399704061187343703241687686565863814828124821743232670027439792465437167933447811028970823745187136224512296580485868441876084964842537764080933139989876375273040709943698011935246777576050383481478569832442796529640126175327241527988835950838365053238667530721213675532188406290588941965018179632036279908772289575038048175344082547560064776054475801592912999200363815124112005541191471265632451749528158519393884071128426337498593250275698845482442191221918001011672283173214203360777191522299401325208898715493564485830247271650575281891903744427407114208221986205333752561166050101942355219862935176955080014092773014622662981114035888765384563460725527823972424231245189667884457336969721340128883368658781622051886873192915876608254772623022419441122891126881862978461045360010092718061158229245434566585894295565445367950499098845709072292050102602800588778970898990880359940703319620719069325478927801077572994870416249488032156806169211332497101955745739280669780119197240832456726732588786449746365789455804411916385737343508156754844687211507986575937274995950934938372975144342423551488896701683608284378515614935765924181263264871788106409132394674416469755089406470774122559612580211991957096617107847709346352132303894275476008442392297170206332031710788740526522075303597688930705997768053249028048310450028959452493841318026019188192194443450407236744437148625132763283372267984425081514948749562550346316058700920689928634255115173704888768401271898660114633263960377655901370072023461469626498418801644949140252446920637128378559727534465709771144510786109129123320754678781102969102875004973457430377581880108657857278134087078587539034261311579633068655740887368591393518930337392700733655080506132039628912845435317867305069307511464261773382107452662392535263524287161869791791923550393201570824170400493626899966674689619130229946120547053936151556778500969552031920414754415885722108959362881290658088138253442156413658820268443037693149505146359689257099970595310118428750361354779126026388972476423755158826196209382253076569254615828875963730332586440360504794290869315946919703653095417216788342792730402737684037321117711677603318617292385866449623183378604501551900398814293443536783514344530221351320582466785207848638507466139684242978239189305822763236365773939678793782593118618094722833332470198736961255076265412957011884775086709351607452573786621312443630144885146373153266628341962972604014833105104918591256180899070719882927600304942696700261041478793234961709233533465961357370966475551591173243663806203367899629885363837063911758134979951624377835541075387014995591742513053080345923313618853996782098250908371141869666170379926418350257452250460785296235070001087096910271251809600387829440437061345783719484373083507805182202875473659838386682183022829091856512609356682192983818173930476745509702397133770693558563533277325912232208180030917958406859824328439944464838478502945708023640833166390169050305674179013790456790261820551092123245601699318068545661219405189714022462271582166204185670846325002606237970655527718952526967269865434149910156049099191680340796208235884369158844999538775793376484596020141411362871720839718974335708684897406510515029542623892504314833173572293580270748638631241405661326440482900062869926095728621173860849198682054732567179512558142962270930577201274522636280611782666279447566376347699599746145821115735618925740071143520616117049091960170561318422979136046877186061202788860395441117203973329900615814915899816357057623758598785122700897255629361370226370312055610223139087144529547417811963848351842362566767118672990116464555137508287514290052947656794010464185166935352758601080968801707842731240841052249912532463724500358455721354510212564988698644138922713896805031824426119794080743713855769160284776517206727354557742948101792230875161910522282926250851931601828671970953999915284054157495531553511928305013142291581667184573126771315319856522746781795542875134968156803956563327486854730902437841113424698597222847841146153455961019825430073937887936069148991239002068314081255603279443780134747176416412876665539918700287209829383869905258641477559580348281236092374806147802192187974870741791505034355477618286948939041866394259171798896034599230066469115971356439461016219562069287195665935428490072202353558197892584315093966587296874784527682659147703201750271551007349590751259682833643360341432325884894330246120058157320408756821223028184070815056753970001221407159519309693919407825831755964415215769302675285810290240868214941035061733072300877769215456259497632222391042631761279258545703590379606054803750730366088110472204056170745104203802932361368367469035334283875211332052515236410721286783208704677806205871537616428730782412327944416264427727326115631567584310680494497382013935792276743556147043437666713336101773519782719516548471759572316391630676304199804066064234784695647187129936659550030177011050407131399414594850136218683917722225449407755983861985562532706321195604605487638871917727498500571538578311981856051499458287276637981055112709409641036004278978534718293893606312923806650703472022683136270930294597174177695519971012391060630131780307096234435515961307047628947527447965257331437904595962915310423803505941017573184137080714031680767692994156396601811675535314053922727897351601491843755810367747429338384572356425905403748967728023298238047813571759142111857137704962207209053859245052857801891753308173376669303573556107463555342136204645303726952268081179508461242726169200797903764058478299831748870112027907082687928137091154337523214423537174820864772877058783825601865123416336338086077282493939315195062510151261960380907581497018210714128314979415311739120749594191248418204316665139233213501382268752977741249727546966312142574944485130402059221702398754007296589256624936941690339322661258212445548780454916979645818103585559537746178402269180581894397908049029357394656936081717503747373231775603056399476356831514038742317410179543223545163097392968653678835303071067627347008785396701482068946512280214553991852144354745698283819907385869889124542932486123427438432060946836628325185642348106304131706667937053274934182041532638000381678841751504830471460712179778204541269694691020335467420664028730634977080334016527741528818377565120982421365501503298384606220712168709241992070877188454611663873826912098049997902535206419846480793352946258493130455316011927254587317676625184801073639755915802403066592398309642541759505638968655160079374286039602866546207811339284324705390715117010236818205384212564934489670449485818421487525263891647211639172360275200685436521659497589056088855378875714572165884057930901782848049640585949881123581507360304371602500790592263993970142955449052319187036103464071038210834044085457762211078123354718196273815022065271901019323583832862259564312310747504971752698439122664057854555411185373676247013864142265213408349096887548716818719396992316606563048672706983052843203248596547606430989132150133887885112840429419409513150603665381930692681409318320414169905988470490902575966001073560395143598261730678870751374231316768066005225795167903086608179097739431446079073178482528445238024064768036080914141441567040334920092197130994681797587037904498920774529787257216011470320326534279244939464603175606992688056126555319897094543385270991977398935911581879415899380754775097092161070715390320557143299383371436556326708343958616672564167637162106121053398199221844780094128381121616348194022238410746598680010049940023668645104298322941527011216201974479141124790341063105954918571725275995967186314917694437629590205714977065280377250246135735308034482252606701971908612363030935395612289259282695578327757595976873512411412041607526056074413528437209290449855783104536902266963267158953562123850143066043130695524399461564362165568302884254438116653930149859771095292647691843141130574756029064048449064095090566552002975067337148240886522595784707097848619313372386536839392152202714157950423043948876140100835856074456066224916705074436945383929866074641548788748148679870446345941269935837870312615690851827249087613646016409758693283655598453491146047507572873658112238762724417098210096235569796699607156906173600900149713545657387930939176926731476457670416861095830550122037170028857335433394451297251157067455853370765342523159026932554174222361615294286823652679245100513669905922818452426832672234766021838708625685104193847393246993016492103193541575897075217020692133461544913881280421726770954245856461177330426043562401726948209579829217974246851109910035995420681751562619765261953818650665823296703234959040741770562978320919445162732184517982046142333228515269906106857577478767760461959299519554019354838304982738315243226596310333991478856385816578916748205648512237067811887645739292759854914528765097102374547896443649004331864983989234044061928675309478521284900264828179370060438315976724945084086776923054060735282887351509682143857293707700026063378273163161225660820925438760346849402305067506805200497975766810325471031880242677368506685659142392348016888891405070862977841104811957795925684606383928375051509622421608720370440920289868922653820617889868372674719261596511510545568375060840791263691491079063788719735988787015958557559047722630544119644659841464194572566057878828956241037234003464738823902853815281614297329960625342335687669097321869690455093915051308184193840756413503259326802110748599101053474852854530823831478038505780091586247030927856833340890010380219799376113470535801949610935335315667240457323888552722523493831872828578706386671780803771091229768043457020283706711623825090489864717843606738782313127482618268639926905023093359345624499891152466269057451322395864140979216550841514378221761800982473465367620424335874514068375866873868671714336314671711744841493970949258502970413671316995387132556168704824850024260844397595147066722269821046415908960537081403478901202265812645220237841035695188089355886603300889917755175710853359996442615891390595293110869095141082162498339313831810446471650899420365144200126658926640673633456007569699525437715062583564098414454696629119116180803643852313119053381005354934412296945840271069725126030789797376924289624846251189924392994061650162410027484826592485743516727736989634406864233005391288542503275994073199777495682085652377376048321644807290193105981285673493667964085892276168914709948414813924016049457734547511143243916464916497148905442272293520241282801057002157204307348005287786840908460429726712038089842612514225206113016441558263306597059985656482083332813019030010854361975740577399925662810636323261397824155911752794996639960555669834697837112917444054036096807773707276086972812576882492397614644767304764246965506404350384744938920356079047058066989569479263329999496221666465862875658800301161780795083050888101955867477648784246322495744887567236036164802502215314965079283353510466911044089603559705847289167981874505233570826266788462467571908325886609478076893097315888702062711873997487836725165042590484458029476511598692050156858724233081595097990493259708312452199992869353828955638083112339918871366783164247082208097420859085013845937943985592940033864294485717062475903122806526185885202646945142083620683371354652922613129392927904475068957819333132521186857834671476815997841474227949983028114285165420390002350418480354559525405856909434530656667892596091356426391459654989104375512007287229780665911357637125522042499183951272088165644933257805277477127476388946894878169138846098969591508304598652657734327321069673554553750991967960061329386285136116829196641029659776610540268520678499158300463917169852085444522111996476673505162497864406825801906957199513693983907205994161947102007260100646208403647881679828824167644853016461830124379638373855693172959556768863765312167560280299606579553566234888745178529173359508722053199627081828453674685112311970916288053684432175271680417168028211794477153660956200855298645947362346528814957265367027522813904242939722724044274228821460151962155459495514200052926383888700452405292170665830632528312587364976399972808213168814240579872974365430277840518322121889899181367528141137300127893861298328334657639850528418986426867926132706489884296495667677258791381247194824185274631739706955249235114680868080221136484437961192795568489456544373841983198186007649982472942101486172695518184651291422425324563462560906156172517257069141524956966396526402139399213742262181027060412446891486708809060131601874941265506636296503180308819754155268409421900880807961768566761850000362313670589509701311720521618490801059292387366015671666363659932777893896051962674061664352495055658120068537246941730558611260388582638662579215228797686461496169646418786250394828269312345998806760817348644554857535739211196073266428705080626847602880613606480301725822557716919323875618686460621882440281733787586595584106266456883503111775256278003010149357812371542678742076075479371603250436019546536111475708452167588842026216018880045303413131138705975721489054480650148167298272877563825383420833068478642739733156961084381157680593561095051309099811416015901985736561404789047858878012910475610561670092987310072260990689255041762484463614700500209228889734815202537305907924206396263783266659107323637911022524218426482552737854058770027293806149690419438317067604025220528883000211362455555022154072731189601304183773091389700306070457296207742291003380898671920157125584798151001616002686958658975492640916182243694917932768242957287546635464430924180456423883802733019362821293853955188706559345939884565314441549134015620676542133174260332353985041770923038533862248998738213104388427114243410982984792124225626440941692972240173555665676106008909912950485454036449039889278921141236280728965266905467452690753899726294192406608083403275804601210223295928223282072151506551239216144469509433306250680289157393571763860038885302184623288433036344688119242037229715639145139556625668374297174754114534631167756997577638881148253376696941446927510908207794626093292269129195738195222940981592910853267946795037877883718584795006190083214853895830162489801365556162340682647941008929504704224910197013416657524720919438808603565547171035672329305497300528177243041485366640121252238508950688470152422890076727774489364165806595039402147478352407956238941881601447292006467112125565994774004397847463149167094707549788181086508267052506626189216440973305506593288298250991299023139459962722446089666399803344043754389252230625335408977174011698354683656542827234878788259772679308016860890543424255463831386515820742713266401936089917498528537367076942099720734913018408432613596965018123327755766594874639783446449101694335314047004301637395934674196547033807152792595445211371075480761324758475884082711653021422041858298993400462837536382422941591432852147372027537468244034865137659909224075327935922024547264524855542525772225722611550598864838927259818069220901058708987709338975272757155219975043606920577168482457976719685758202689295918183773456590735293004603991267055814892490557673159424934110298430906828421024636329309022336389913609327297877714475266641128041508740276422426072860807519829345900853730338406857175189124246891821786902326920826468908020400231263551901780131350849826010746310435453527484474779181586122728789625051232377888238020053618901709814706700802132686697321772324392130508094519913128206436791777767224208776999820626825650499904139388068762247359120496527297399768107827183289047345569876064723064051066230935479132633787301129343740004378587388208973197018256910959570411751010481213936193487893246025435015566574999807855024287524943575126654476087396319291620646116994250170794387007890187129396625864867857056431854220634022161289168808206498561823048240861046075351443937316021747720045166839419035173600147587268352608514802417143280927524755232302338913028121462713747275074102639314567599287003357250546193127453623799663631639979889459766658367214524494500169469795710222901052543229349629080284886750435595353298121105164097417684616070309876980568050253011220079999225617071513064634936511524718908491449903567520127487093192897523896609698128254084756945378398175978908001773398767094281117832141329146734984840779261949446333014755847110614869436714472941963649235196636552689035647858944674177350840062850244744586614632406526489464998729397610938336442847811987392968278067878439866654514589413394899953739449450666392364478882904940207799357546827674932811230482907690065771122790589901593942295845906783457211868992932124527627833756447127900462482842740310398545771484466217428139899818642990859111908281856686693807770086800300713718396642722336773125860579321759055785718376585398200203934525230534412910600155535265267321114972959053948034509929745574306852513451858207430641377251942643788876901926771537185348423057550198858473965067256662000956836416877680186361398950669113277409710968629031529722711421450916018739433576199841542540732119226051945805013791970449513430666753589961583498789198605317752065939537929802034470648005000723232259500198617885927853763448999580301310041956122069150806871796579144283295615043865923137993536881430311671803456308187325195725404209451857389574410243878604340982989325694368884418145396184642989722321228973983259474013739677507363856657600248259359654959671259163313396935119674475944371261279056864262023063475067138490090925127810264854664934258504006536906408897395976569579466911612916104247034693534159791242809473372064866655671993863763641715316023087793346839669180099249035807899467844632226964199025781739039460784426665102408582307853353031532567392297639761106144833244302013549614828700405009009407147988600221417797072061823802398201691607447741137765283511078111572179327395632255343238939981376866632689956031954065899891939645135901619679613829828889810075196860061443390277138483237933908121140653582267085834680449793464972523889557294032260023848053216473738779217112516153952877007038623757043929637549985029446355025138583193425969483604631101909319592575061126174551326920077776448146305107543109601476432442972796569334085922401300469076378176783561109302571430897366661878059886771584202323557897190769673219571207274556779659626153759579946326085140182514892184789786373043982592535346862562326992443797075797113531619778280976578957630500690484413357815069457234305366813303511526174071835410677735531262476983786931223010132121362492712024561480158966964211680371632808456129730240598015980955013056236203454445000540909155240012562016563077673528482405255841062383377076303183901179291814223545025577959808354423566104558637876057575268792844677672704506567457430595366864395792904607860341451321235289029142154505916741459914592106563632222564013291838657203560513022488143415626646536691843706860406791146484866143171681354558971880058991713140794544134245731456277219588156224428878199794979672060277456259588217836965732031751953119062286017059328384575880034631573756739031477957173856355538002091969071896137121947950950556173302357042329738019318523293438858287874742915161442632594073503526922482417222014539603058227424899356046850314293818246725267763560614401718944102192787167449169226880880941902749920258483219253556027626018287114553119351626400243355801664669602015108522095146192576567684829178408959221069679647472076687807353507643059022555382905976533705862137172914476479842854047119593613666827924951287812604802211643474753054799267928062616814860286941062448953615478874759909327076449897285675222551990204429607806385841566666691988104452879069967802353940961183623389513403141659291552940640812255020525397350480465131065644418056934025699275680244128807728440351050008526781630661703401191050871330466394616251167960906722398497592156317266950818956519351829723768861076396105700018436864147262251968838715419101375868063503754806103507162537097022906044179926213671143708844487061129052041107994727369628843975049504428134976267618946022211071549630416536718017234110307070821690660220147556359078202496201336272589670204185311993467479412565007288317322748854540386958889406330754683424189403164278118125795201087778359833767696385902657720628599284545795657863086483685516538154355703380057383776395539012582701293947670295670282053867699834370512276330579735755744090471236679905943621391623588766122311552213485584646368042039294246810753200415369007751808107808501908917033723510663233206461033826925732924529708382396028783210793897314921675268794935859779948419443421207607804012263846910145130831850144983876204264859487626065422499934101115711259714200366462278300495130384128002994721186053061259665463897851123071664965757779528976665138325540548875321865225510813680917673875017756978789747402644486158477486933217630561633456506341861584610350277069776556891730952427216859511525157500362017781609814623563729651221139482306837244746093672789081472641974126178069573933569165252732185166772532501656148649650301454290456105986090332913630895317922989920330142818180606533626147223405594067993610586238100143030554797747008606417659362035654015591501589892181870258031333214735882108846014817843396131400389919447790403259512794828803937250338396846693063443319056176357667187019305978219158138381580546780858927851645571495211912461177026576392419576285960746886036366788989366069439124552816815410326136811067824343377729547799990096764538336120087621845020376677267006814537794579776524314533446956124217546663270009929149727730641128232115624946064821409213149372875426522536592163533780179465998348698095300661180421729460918824746443111854426522119980519583766968370941567085097358356151877104702714259538640637755338095858627957658936098151638704706204733042950938646529830565605334990647642825578880859855776250663601980102941654629028165966048332777651400842594412954436995237552959117626601196375588952919153727005817228337697022982426148107421126909234257341835959531964410840185710538240790444541043385838282410252241336621497409506875027619523027043593280934598550154264014648494852654945694653672825780832943207034473813959555109119814603603162310631978204374808173784502952454563354574760527475771288384013169744232603732668058196952347396272478791809584095515504576034306870062530274931581764794152537273521245027099735703697183541277203940408965977318958412505163824578735906975693424956772052849711666159530176130957680950166171422928045752821578008716346200890213554529979243335460286479643425860313339062692942617810680298122658401270366317264797203614516756930170458443663334470170425518936277453701655256019186172751620104507783919767047886911458692462772717721620876549763143302025945155197263117019684796917194385833597871179367083633676802588254973313364190388588292923828811771974833340253641632950156049205089243466532185995540291002811379433796888966842361920363338286305933708290755117678071771601125769493331696310956969006953739880183293615683988874251901807455492237985874709061816817095753651572177202100940263139473454587168911015916485040124614645755546994412175423773605956462253258601777176055751036776793971942707266579568838714841204457569208075345931839894014648213751268137793913926257299557403015098463912132488871914430076383016984247462347480387489667648331093095988297684311740337368860257678038817121812550524825100949720430014144561066916519118562724260600284061541437724785506735258917711273575985718011819185475567752653331533176280187343660774180352111731381783247624484029715265883973048865195282217829845378958317711434553673571630443272521226734898588048585083553402595645878338136959681898656185414139928488144008092707353069721145004131968092849108402199002459145973984671695195109630992106912885163715082153151641408187488338480909783830367137218267328523766030732544598055173229172881837903035766862593503806985433027824529006022459670620504987222960975541306263305225335759150787998924994313156654484997954179790545746808909251962085760125722909858308055257221308115971103508729800308979548909757959580669589002624218811061500399987894790399707087076029312608770111771067547690593697800621339816264992178477104934981413916245315516411040499678547072034890522287999724077673712906223662874799796011810907313899123626396563005103202841486021400244573935802344671993375700735311737097682383053096690327520900944153536127472183545007922094957415525715119695714380888034484931468320434667732751711015140816166680875058068970408034154807910498340523748834016249780116725065486315986510517760795964404822401513695002957967331728113292601934026473425694269952979844626055001337292306348151472749712632537904642387322330070300803536424965420551866281474625926673137433057554738640470690745327086481294788388176056919190239000347297799170922876877552395957266227140169013759801147258188765422556924295510603422809833198937995619501230694245616842722063867209691587871974949325447792054510612873920291689103130785992081633935785892046732392309763626498442800843313805229142894496033917143395056533896625056325434725559020687776119548252728141248127363270874646135565801359129737029608586507004258844998349981203818412349329663647854941792957919981069153427978381656593440911615790295882753477025632505134317331309282221256313024657953898782433817435784629489669687613938413148374844330027800770355024740671932617113446055627472809247972154700192506505933908712537238430542688101554053258258889350944906915023393973580409872093585442735038260636798992612885449473255846157267188185039353198369559337215494562117096461224292968917751063535431298942753329953294752210998858727351732999652739856948872688292664772241379084778175921153618720828344849914000630381078181910777229520820894091543009363687636297301971753327831568412715850020060406165292925034903936581619342854569073070508165231113317240823711646445246054616898594216082456940255274889898414320282526229220944645759904330699421929060160015901369584257616249290789137403685260041485893923744451299864649840624773960097055974164819264443081495378360160760129688536878841397132430758314192035319848314661195949770786631713600867619402124425775356645288677681026578569424990094996398929299426972287397640197264566237972207322192412235175765175634323227024722318488688573853593850100493018227782589591862661605338971538361656379569687771924484799378794693639918229130903457268974712810117924704680989408518427922137261063726539484163362033075596567115058979980340900017754724402791293364370279753380092787107534707215902202629499666558972125189525551197771692189531889516670245458180406957005330960127971316917921918597403207216510112434840216481908457061110445632893734404847879521544681826212072327527184952485699109531459820778511641873114309039536027124422018861058857421147165249577340326297925167256998864767047185792999857861022742489001963947784624518970832599424591663511522754765712161366013297243915145219846937209528286100432101774645448078578156446119077131933185323952937118930897544876199477053869263693388178618495038904635900582387415907500141710521718781465639385905743618356758410745571287462131739813097629659910409906271132695745738731600783820748708903359140174408542493516329462001315076322948335129599071867463573179207794144100548868764963191701732578701513432870613385866880560093984604588011882696623513953151186203900651029111044437015819786504579620075170442572145503626503330811370145078755953934805355166912662868320935224081284072830844752582257849876130164086145618267907407934596138722955349042801856809354452076943735392099988014901177807824240834673408078221903887071874192842037628105506984718307379110483457491201443323510531094058072517645233325054486308721195178696767255575698191615729871166146568937480078927625846000870841009267639166251815471105238083100719224167559821533265395561742625302141742736439595228700053329308421900042856037065707222555840767411168645047634182016837961151098327077202315397126143081666463949108727283559186412927977004622801925436764321883015219446568327938467381186778733709706024163673390131875514708665082958203851000483916714823193563670934705954153323488796414461658119391170412322406296825929090343871183299307816902579502654969552242469058587334170600587596656540668483864018402135897348458070164371760618123396958754123905371030466812825652464493576157894482027615141416375770246729209155697187383803126557654583433689233517810469818802603327942897889784019819821434746961627788122270352462183310613464765590011870386348295675642031559507175778922180993758519320997149230773418084611258508513539624398099527050209885159708588772625097699670897738317649339452829514561226658978640250587855695136453644405160451707776970518693349735045526111308069741612678986043671437546586003115015965903373227911446971149249699846857670014325609022734339550322875645642488150262580564528291521596758406931573596427449083760200441224726349783921053545684721521052069280919974255096976203424807610198460084177123408661970549238211421887748706571042141235666565063814007426145200668857323332191554259361969429581890645245400058826075912364679894104001428907904703262033771429819828536426004795246723995472434577241678715012251008645197914670641955178614406187695420782269477302806584206488967938303992275393650772202101704615096047862475865382906197716049632781164669218896061576151016757371221671478751180322839369947639045034447216220303299726276321336614649910071705258270274058334884953948144278873732818372861360835329042123143952938332039069802099235635796675299549278800690296418772114287902010079777353659066888620099691237985245945774319521804853734955415420193715977870782166871921761123898668572297202273750163268826580651194537020348073839944646310817843951701358237040382461194434255681467152785928357112625920232047269872960848012860328111273980255360294960584194114219126033760771463792557279098079260248538410190311731961770303708115249441603828109573917620277673706914040920274958062467602109490116941206524006109214535267028340248327169797815320677233169465473908710073801335457996055727363101221024781516595844627252628475498855723754002620401663312270097189700501250101423407631742152900994462183651267800883989243461897223233540668567829575005550788619389474715657979588215016125135490743578740385366666372321178630395162379224458268449326723714197188405503621451870085862150527426637978090364451846864402539181955574392247439878018927052580109836344727430587566981877272592951682514126158005763512272551623355761413713218540431530006950079077025905759120951298540607060899107618104015960815703110659159127848644119326822801257093090406228761711854672529186889303078642969387859319876464563050378455273576513400241050107008629509861074029792994206615561846621732115870877404260479559980773686473291513086879388113879924365162110308049036515550284954184815760775116831911514660694718389452878868415224372439189916920502988147170542161192385247491587975856636325128432706640434081777214305742501726554159367165770038734659344335997149902918547509615061800844024791302520759181000002636049844657235964444746357522409385709713870193256111009482394667302853909627265488094646722135438387634766187079038546004914362264486906791099906600690786804871006663434711388864557046265778951271680093372715831023355418320963230108597337057823869959925212991396406846537071045432715371334774088432960703523253652975810123316274693699125438847225130102135769938666609305673656757582415591675073020841200891292591811853179846860157725823760384868037855937249198911364705977911163662097133749000580894107979733421252163585270179167638091074775482968818512310997752227762438112210140061297836384308695910394868589011936834683862771754728393315548601016798492716814340032028704762291061308898579330221688026565237666568681101520250895966490778350874751193560508273618223027444163062036625115270815104704144194035306750262007161876754840498847902348237692228769692519201616135401567275877527189734860411467199740153854425818135644704847097193649679507551506447791966224399528391995615621643140729205155040189152248723139501226204347530690049856196516162161410667502420333569561573421178738347048325711186005384957063708170157582207940097537140135831268198901574871580915917340864257786350709553676617586978161196762000877035563976310524545570292132660138536036733224168322672772882159614515529704464861307244605019930225609927294180875937637107131390713576035276175038974277457591406426112801375138319332217810667767559215539624870314898487221477256215096660210066403397275845032312390638547358126022476863910742216354042310241274579904943013265698789275190878761339361064845636527953981404753202889209445679227512636702406753366298634796371312586581862903111503835860329704564105524287666464160309651026998665674888375586752479084005582253911370822439751278472573111410547704784065112769125613342402345297086145455925732129187872142064870252748784297926377190624276882287402574263008820708114567440968947433960534577903345322534030670883842864853158931438764761102258274430812207007898345194041390014117849465802463486375823539563008907190169893216405426041785776888762126986990360491699296744573426901851636177559186791103228069338581033511228209101406873726449543227116807363760936553381191725043476923022743739249873090836802375943706623716204205679282690728741731374817083964120161381738957461312040919685116970409344131205735551521902580404900765337295268787289765411263263146537863139726062291882380905560023438894133827198169187894040726634358517043105627161855036854424236752280235314864755087094351162701014843549544550991826847676274332699056686254038661457567632031489397441218491067061835237428193017702911940693497493596048984170229926621717916255627887405029060897918334031351654981830968948139474859147184595415131603893187917285905545749011816275453191643010004744478558061020418649752967590769246649842202455729978669071950137066658923345096235074684249058310079017101807832568477601155537246856810402129426167087332283632022271164444679449327674098913311170901873559215784627668210363698072777492529202588937981229587857276802045958656236231695302073051980839521118234758546574956322296051446087872021656708686386523649584535800781220935112239156369289732393619497104394478225339071096674781423046020996136504620662694955245170262115227801685105244514836555465997749489937689842890276999695204482901720716943565875742740269943449143083800771388359104615531508692863854467047103906991980558483582490678300218273427648750831338034735216547674569404966916663668839181015927827440123257492303615026805257364658721328008626829297840586733567682951252364653860538148975424434439308291320315452403264796590398303547857140344538484812243976034081855635417485869545309986239337076544385475822103783522600802720443281284235228736670750881791883444378949045967429314540403026417083220253899684868698221577612662852702130228084506959900182695673081316945748910131689155656364254823104103295088099282798996711647242740290993098482694921666627213182828340208662668070563951739650168817626470067420666791353849653415576548749404005599727080579297402919458882279999214030575053297140786078464840534052642659875599798086529474139656655934171403402342132364785556386428391622062661715967739658831975189939008519693135455453603332388169131509598109695334665763683540819004542389078854673420765632859650698848925330365565799959169184136749089350279410702546300454990752564417019791607845590521797337365049084669876278744784968070663139792583004610785873933383132873132423567210913262949846708565974547391689159185699885816254624895261604912260719780727261813266420017289637865882355353240670169909170895545281767091108726945028457343893132251840977661709408035748470633519194693319085357043042355769765526091547526587388007282563672831645539800064978710976759962815648933989715814424222222671314617443323011598818002478054111020414488184818779545524032137360221693366225239641453421071130577060945058337292289919344703628180379263791022112246392102195312357783559015580997689362983516345581961493548670393123960807547584506475155330659577488788264212197802891171672843062756665550863997960991895812018893947601794444913898507865327957898743494688710277021101383442569340186205152802665187479347571304013024439199205566792797146744875761901814176068764904558474321386765041363359826886404421117550897963876103318124968642159195525908404154480746140409894800336264535691930833240783872622869034518060483697863101180768602750590944563328793172504276868344769589141829834442644556645668457515896082749899070583241567955943907155085659673055298248151633303913979390848578250176192148811018722627437859035081847844882792363259604844347260200936093158120545484120175601912193261264306588963796208013606024526010224333674107027008511544179468520790843157139714318837562794741151656408665788058248585917174629031623052692972578061404871385702312172712692912009269215251962780027127978298700387588678725552058506526589926589454206152235653564090262237758892286654476648322823014717442493796416531312956771091092003322573907151966900223010166226367871901653968908274784893062885388729777324373047244090523600705676288091768052488044422048851782333429437867662315573288122836174304436345616619678468666797530143339409492001296082465559304316775290908681549615338527464030699418880810176875379382957484090245952554150710612788460947350271437653741681244690086668156911876689531691640641398486746327534023754402830957471812114033134833596332795540956035236933096722945220699575799075528157313992463426426311693370168085647383620384739161038789319911717753725197299424604322568791762935307204056620591973701948000399845167944247275659900195268393397578653618704808444860281107364227625826110325756316401004373005758329635603367916805108686791694349010353321469019115479154171200268249207428656852052503839093683926554231594051284965552072958174702838774885692659328127939783156076535028437931398216573609581218088867375320063099148955023201207938816589120766379138077328081397163092769232531730254815735653335042901757038857081902261584522322283400135225718862109537586821508913755979060598419299305086669389440969756562288484186389437252582437957532652242213075675526977603357617499892948902829227645606036713155497162138228537890227988536032168526276327828444502710696158479686670594704041286859884510281848983375156372346632142059539952646161217231868597381350936162125488449640191676388077381134560505030611889008007662822699063806929479153124641019209695887132709984539064822904092685065845023319440903171084024570448484905132769560354762190762782278974685614942301165743701551322790494317350454803702785380135828830996246844114586057609451829072416173997930421665592593133264601691850941218094343670266905492814935567786253469552441462239064747937320408630624659331197227717434028692368312696163101638173024957883400506068698258580631427786327319230042477216002866264064484702716383268999279229893934162427915458949787269913115611300285448928916736215199588618462832513365229228627616537127119301948016621305293883412598852768890361195822581972765698339830297058038652703550515093091347303409062794692267211681752685196342951505406712617326619465533163694925480975786030661824839385912186159576729941809496537751887546694117852791359082000570956411448388416858656844760032876867861982615420350717762224870990376204942253145564054457955035779298285403836577783546469428947173503243379632769259446864280875395810428465037254627726678013035971242344212128985149851354422811234475353361512390630227627062435159503260661475684544473757686691834897483507982512624764962153009621456526901468234079959414631865649406779460415371111952672732632111078921691665432741514084059306988573394322446664629445662794344344879024600148631926076889395442074435558866338296124852648460310534992580476804800953280520936481113929372855888237316654004713716602758889244567482718010382382857754025870970771328022115960430203472405286956853203592814231009976276437236010384495571060351883599891016613201157865750734504207607087085741447522567853452551346117185572090893534203667970902910189189351508974881598344043316758991965672514694972363962512722632952417958270324677292249708109147194098192151454029367787733965840254586765159864649803576008694090372480915120729898910807267386123959332331421222250260295417291935469881832275975245160455492830932174736233541953711105857218342740365452084112212380500394736931116154660329186218945455622673071844336518520088924537085585459646979147353573096093269954348764277402940953913534923125230037898566033914019078927810637773960040982848933791834112105581545378804739161842330411862539911677373303403741040686134963445609518599416879188900971227626817507128368251634004969818861532370250175593222593616132037115730361635653485866992251454466245224920941511793102275265063684197588371147190898580114463641447236187528787238500312598778909298277820822233137280178351915977664475625734939676701768231590381105055889719698377449793613209348848436783748551126531243802789591371908001549662290020376026432841531980435896168126272352950145346270423235462252536489621054851574361253745406644641089733517210610716353626050364417335966549531288902116461298281090303633360958082714702949440252093412819266009117109079215076990126008321000973825370948158405927492661340184256096997556818714405859358603447222586772802948181982993394560008671338187578718051339658518444968494379557087490554108976084624906890240574863297917123182649911051549281210760069477709875911831505881546168059380895325142881559397397389800949736998861895402055079487594871108701345217607211572567262489094535126066034468342528345576351062661992867554631768362309863747958876200548662359436926663538614220988147924218029442685420096770575748111985072129767527249833244034167489089408099007384574189982985126952443794877883273871786970320968235901640696951394753455574992611843484002088190803998966717210247233955630124074505188841899811122319740437608941871943712911388125431904279419036307249311527918656140985824700888611221690099352252114090923051797058161100902176078247493171798282041706790652417455899872321559175516589680350092928585887773366997068196579634622798886721087274015947865521474296889119963747146281888330698548412442741706718950852778816984347750243812348028440457069375417580590348192098170225173322826736854244676636035606100095697835180097332137786630080311939155263375907806839187759914924799291118576522107279478427051962971373627003529425518879396183220189176807172453859781539385086336784513640393242567061942023569250873073447995895853690906269960129189429722148778596263444638258109367889315429196593894170151869066127480860201031015551155534132165048861526817653075047695955502119006880760786335017054494177194117758011606782532567061029332378321022621767195121699368956252368226056086455274011445638104714928490826404991528557404953364926653674512378717625943527872377331327096461706100204354139418874708874580741690349898298720182207401262849827462973447538029043396180134854396754882634785309036073051391148140892145035825293428856025076089283484582214573533271138790814343479814008529218966141605658229266233411981077854973759133120456189928061019130644985786017159332302559447661030256057021051747095130119838231621750876583439976239560417071921381860688666296262279858389032863688125211867676053280376599885997722003738486208190179029623226688249419617221202402305991363348382414778811734819958724548962610248712873864865539354011699814579729399521733667074289770586806490084214835534634706814962361679000832278965928686636960985678743157170889390316390766589855941806420640307035240944673865961088996922187353635358415669097573361872422509606467904798362015713323495094482938565452935370640945489676593475365972743029190653857905882962202767923701440886081749328252510987027364840733494258772249184547989237650530640967026143045686941921785324458329947910042270211076314858212786755877026929917226732295187916686391618738717917587050228322400082613490754385549533881989440011818958564012872959538736292928712770045749663020629011962846211061302019414046748224973216263597198182449753586494246929153581289898280015567158740431718445068832726352994399132755861059593726173097919701612320001647963298090460662775273513472880924307988637104192776696969767873547179246613423839877273855202950826293600432900370069565614762460392867148976331935904445842189905980617883928142951645325783034769941587208743792199682613665405046886703338272749996536549048531564647312486834065275802948593827933831086439349437166204782482574279773735133953561679170189707049274934099620291567295414923619020759129265774590048055847833600190042698309885468930577831129795441022826037076355090941024668995822788448429313287959297485416938713164515360683104174674618806742228163278400972333512541149188481007120193107141855055654632978942351671087088940133408929132252185449639763095885855936791500068944368931186421152853094391479513238025530326219541287964953981928873938947033968659095547678489562381304199341748161553032616349679537128986485632872984782588443828835641133341069143711483957893471139634530690429472304033070958603000865279344984295747131582778623335268394783512262142733255670869674549680223954530640540704170898275344954373013234841102918018241301160865186120281421723213335406547144467744907111912551282843278495555099107646757225777439872424654002627460276880299102673132900797528961643857477646418158667778070751905320818937781908164187255511153263573572739307822166023513183234899832343776540572262741285887356529446139373744079555073934523116073468315588476397254447934394373487422452040575068754866778315219018613718059539176676848429549199986055603290260178270915552186046571580065290990010290001602079639958509127626408881291562421212264688787402572660412459923878679701008827210980695023570324826920195532016921917789209612784732527171975777524084692833746472376342115273038949777762391359019918209410072248377082006150055367613337555674547753963545181494623343050222029380423682110306561119988741957872836792818336394378527646464825173323066830679825046979201729380129856858432076908677023275495777720822582782909590284200083971326865638951735778318110123425514878503993122527368980723110916176225991022816177845244022435683221816799729095029752642587116548593198464737791946076331785926953747558101137079896251347324162243335393473792657374453846372039345816356468993307742563240120727507173141150328689263021838496149880339461826669725487061710333109276466855297545335277836373076253620446458814283109710394146531913650682341325943249136687216551619083585041211023063676286359949544989339378261571975359640746393096135749538577326638039359789739232761881917803101696830757454660874238963652499963921023079428140712916257484714242867921493264160860527010817471433367889000487250001800713860138921479551735772474962482793727299475252123963753714990100888220797945095074486009155522219892732371978088933481110179661507085060220187403067012956996066979989638476906375553443863356365629399871581201698288931299627188484827904415429330346862183695683196465129953260058825463509514294157395106487131806510879968217073631795390711916852435830922043706919466304001855909235967816849719384756937039531029393135975499038965996826279257129865061330924626930725197482016812713471544443753026180955848836697730001727597805830091346128615615346729217909040818883942548471040531153206509697516347342559475734129152009569557651399163746852155647444641126332416061539746848148223130445839095843236468408977340949667561200981718241031937273077794985388048920646159710458677547995378137158040369172347717160203071228795456949292043357937875508666843661149589913086880370977227590218087491044174868644715918054558549425930974346728891298296257036302496444309923989353793758988818451413185361357196657435001506141320476219720035688561086530868081086307796654292874919137099136969176800149155693101912293167853532748467803483143414342887389296690400236948074854023166787790748227336757886217134432623156722692603021204259081003259031326199740095119103489300144816669512975141410230609992385997923812453733345038568625970920851871907790771574229141762071089882159780685099137803912152231317929599318270972606405484873591147101893800988498936717849632245889158369452695658005731674752664357644691120350290691780613457269888391445917481836228858667409064722495790664493228207043668561080611005125828456664897072504242046451622035470218686333134247274609917470486360271569744316377963101697972565765788704872762109171732727429775373849783971341687624226370656270894346312813081299975030040913669280884208635514517202003160889182834724514961257842665303213928989899905164473887072285657216777586654251999600824936515901299131738977350485840782450763711030971583633518391994452680081727211438297380023545048636927921695270664522696854181818251233862639208467176755031568025988912144445800717132698185889673954185671224507096521055900476854391540745301580503449346603639331643724072563024631297121463572244850293147270261793425392332991776900293708314316054659795202678576896828973732852398023347474975073412696738851304342821811063124660365454380052830913094368211593946665258842733207777193103533644316275820195461410315670478662329381578428734976526482573134125687901017975327076065912817059771552526807948506339180841851316309444685492951493952586224943833185849244840750402247731517185938446625607439233613811720934791812691430367771411132427549464436622334224470794658864176663805613324383749844401733026484223767035825156234165600980984810548098831483496643942118546536048649433273946865101496777403978614923007926434749222684796707242235001252885950391386311697110176247319837061776906307013608206529488552561179853822662852595852372181754477774323714320411911963622212897224563422309197449755771781325005395576831665783067134677409588461974481691349870393430412440267894053701543701063229196333877898658201639316569782330054877625285694216834677023649239442637885738052587331784798842450247861246432241284797530033590161675603048000873498390530967669358359440569186380087860902511566646962445598182142650993539657830314490052549208927605445955973041782765122568768817131173185344262925240985110340113409466396447181465790623870905557208593667480360266383177629866484665377601779973534706447064752240569845413394968684083204578463787998188817650879202045319293028920803618676205172736034885385065493616900703614795515583232124252324791421701512174177993310238322396777502903142642592538660934577638356562784513506828180114475902834923994739559784630151466066876364687109479662131451489794479726820785539323920267448310935746417964384784428387633219564891016348118676884992817329818845799481289988100747822979964768871030556837234155960791873083987585785633347248044040400197865778820974550837096225319222108785963698247223644297072659882203420917742582340432714203622981602640598178957412854667326678120971287460549946709313915077710449144993758467790782377117956436361918675373284651720142915785358972080218144496177917409489360324293788623624332328285269760498047936987455105901522955372122171927153523839349124870947319955073986125626360204235325901538617685559496240051925613490791078406157420724946655906964229869701031458460174904767596223593065164781596325801034466516712956602026410011371476363523554169944015211612122071488300005046516278583665923614647453117341903900350102932057418701024645501978900883272412094213677612349295017099238922145719802770831558813796862007972545705072826811135684156845094353140853761137260719611042884664291650703896372505268432267116401868613559308485612384555667603099110281106780505925386902963674744212998989133978667148835173925162802373565050982851359825352293635898812111784494934140444380079090883009085885916705531442940162806492644355509874197363917926387093313817898079867479887439508024810369021433970142682775036210396718563923967520912586527188929060046695610986150953250516678913176248279445774951508543830135172533313627080826989235662363449339576288593255233818668730185071381688492098210202460778346504747928811256239575816913577561244814053436921895164720999966171147308512984609058572459329023793758026498341654266829157490790076098560382151265895210612744878729380637392226540897736669100278615306681468175006243514261348076895367010961487097012610434284189394563915405956305229190895178048384101826951157587601040907960890762273072846828363299681667961828851624781975645370729276981044926700363985487834067598907392759238935819812593070476279774133640733259604224831293776805754128001788407463157878149996886346948027374526371359419972496830527935037308582840934360345674568928325476926559567483562803810801969631260693678936242931313177646739777632099183861622709215709176053375693960247233998486664437428933875295240087757959298296396081142347436508056873400282555754361705509603119401391748510346105520914920608944349515685339276204979550365398046722595437518624930645039895748013105990180185845416056668428359936025151639675755460224114277817933322800021362246056598960888617827064111210433412126677754989605655755911156167923316375280849138977328244532314299125923767838472834688876288418442543233918208424254603343418560096300285331255000193713121397184491146594827411960810125303632169810912618798716888173948856288009862733110426007289161352759623843739180846334073182230514379328237660487393982541464659930571769531742579313510769440254233676512090560808133583933401699197394556988883684984159699034994084442184411467264167114372290314051790107403805802426140984492789152777475546401269013027993521712517999127620335125727230171669641234691525612420457449962868966455476452073754015264842458160567656586814324308291646071039698233008260647911917069966510674353619112263075626573742780791408839399852914945286910749623451095761111246771617568047967547701663856428990769631293776956236275737388996790182524084155405339473002540423227466831544168598751874766500310184632807677440580586485189346863983390684877380720720300781782552435733010952887419325706797592774612967078664989361946185659994450313733558204341478869905584084760359615092400786612746747123000111077715176344544758231410101636815868550722624883890983601826264389038943186639904067706134752821199725449261025665083744743827390977374694039562399132355423364104832792728626231794316724303224949524202805660221321267590807658126749810503081105645379432075141567924624963923284229847138244007733807638828028142199103262136106491420311825051199099492275730832889114958939299780086675544219235949058512449543286140605448288695939658885086359712857706724896477739974418895392239560008246106442143432045347076920491206691439862081022978701636065737708167023803182204365771225189685098758756575180533891116767593468658548845886614373683424483669558622166946373550444008631196113852235819619402979568941238164295544166930984601413193826293137722889509577513824713895743956132762094578620844239348117860694265080116755037611796354415315726762090589338989815829090440994400622947174298008437769158686621623624405925310346791870441666470393340217603639090748902108199644406903460835456554780481692575083510584404801092977787502970947242381380808931151944204616929747136370695622486949292351185962804758421701780088302935964052768555585895087812337019565092768121840461381263176910101075252375818008702194741471491478382097226838402312907016168277130654422830316153326542893555904262919632743894305817718942582271663469305660543118369698855113785324903028607034293413031538181678656391315587240986202435741106654634758093979669300905074419683743456367831805263931430677421946424889068691605394793564432543141667865350762756463247675772772862577786503853270737429929472451695052891501890900435228490872923806840196030889529106939883003296846928189675607313586486015165957381079225110738141251419263737321656901912419881575608340902728900922431723258532126761317818892546398069109627233296183902868813304519784409906098473848876762389951199674706180288235358699067031265463329969806235289593847116524100033670301177574857159362188611168092714940396297565033490960958350934242245680780082905253867351881704954141378678082223818930264661686897280062930405789815852038060074263595070148841281484853920929488457292495333348550051267575575720185256465258581320709517533998732766347455549889878335484976485462515915752751306592897537432506188417965020018670746707011726261414085192671859083555389348745237309726326565594266881792779365921138125848877362330640904280247005631067631965829075211318026001405907062600580130032916135886296171236549818870691360661443857822879302947791485679438657032723343013970658598569920375000183853156111214156006904962382613728745340981560782618816487602777638474060423835881627999601039758766658327543329544231125169995924242393699563800287921587117192423575632512119613637643207553087195288444167245894361056626831076914610172386043817433608750080494509531404367866946394382556532791615875478718430927396480346094694020538108416209647999252376622795476719700023032840032187423202342013024834292903422669585172938956718453716876456991975166221677042468007089583887493312330773344578334376478148510276098860817041221809382372588073401363529204052991940357055833411401987646635131282918940064403099639239189036723678720296350036668488868790997500504276796572204581348578331874919390374918333430994251592387467645665685889313814629050714119178510360753489363438450131363670803247658900003083699390750317223476581129403142845164128024697187465273078160658051409551732592157417200725814676279415315401378090754780151174804813703351937930630859046855683161351817112645955487037148019355283533702931397332697375896129456115637397565790040215983978601529710451079724199207053553791246457506254695619104548309694391447817350465926356872696652074319075699983062462497220244160046879403603623285658058563256912023140247054564035419110797729485315861333333944588038751034659072600721707109034068168108232458261721715257141236095705316506056464604061841921502811012976354766329187465327617137546992455385853813596109217874400309143182725904732476909376900977434724874063516329280499566508443655727391371566637714566641460494599108137632509603269717645389266041418123693442573517675576165647666201149114124773701884596288546346339595757793164559969826246938608178417067517237377975002658817716384953261147278166601075500844710886385813664996296416870741349161749738600601964266319934784074805221856237450976164980726773218806291278036431261741169443809874364664253230017573888788236244027886053241137236873850276792767569636761831018066012038845972421799772287778403537638136058904184514940897876216701127547280371952715040170787356194497219377577627581993355586397851110274565753268176277197445012801893154814177677747175064861604921516967660114470930062362732929058154556926704978068407380277783544922389070720064581343164841104568290883042362976993123746790233266274485077616227210076203138928993414739712606718149007053748857844911925276173512012367980717441539196615968420652018337869163514739340818210525973995592041983916557502157081462426692673436355825473798252746434474923246146191721704416214236841869063096006962851687935369485449906672927278965404507075059995700899126648437836009471010211006108579684637073376300521565770914642934433539257719592706560541673165673872422692792488285711847149802218957528871163134228820922550360809937823516513566137605785002294641089580440971867429877393721263724853493377025657090853134493880327056962374361887828829625639043802164432758783000810978973997889570859760614143464070825535167926650120557286713528897640447352831510143500685933078219273075265292315552400152978457847427494267293553549753327875030407375275852419692192978310229430614432053742885488774074208044353165527983238260436767160359210245506306489013780385544069552733522877933360815442156681302021923330360636952606459658378305257946578477506519892692968075689645492417156890466414570699927743987141815426334979482958041277058667376817242084020978503228016529204286644314115308846345497255846485737426957827181241559277547856153421289948638356112855774435412723267767967703424422183091749532044423912256345768408724027629289013074000763227351131721217972850394595896980473891711118288527755264300141963146617010837196120301386262483666631393180918967974593680440649112946160124376793036021112126430380155114680224475734255662621813685518598059158706331714839529090158065012456769205284553298807817306971879539566786503740601647604932209539889068726475703890306827513378391577658940198211315973548975765853480696681271605193416511535908196017065451512994086174706175865141410201167230010861446853515448276823261469152772073684757266431189824574100247573724898981203652756458505608379828141779640218356664130696839218009192483157777489742409647843354769949929278754004900606862684998587786309818835480757331987063964397375734235534347338663179115038160911634019674676858654484436284353246844269106268104636637005763637994484994589381733560750911626242954152970903895855878527826672106805009343170758515899382870208355298513112920603974272961550242687780237418091770639255405379952777145131506493548136201562647920178783441299249485337949890496212430411946324361941321673586220062636752277844162516490645326857006519058746025886296783237194409789447249801157689541023256926414987955655609866747183835660611061216210817726955930906436629140720661595133916321171822033470417470532172894398217009782688182997008241220068326393239788046703723482122765924856244464687287428161199985929802320244046667357513710263007375012418417892944074633494225265118998896454552538021832485011695470826678854766720510562115651975828818982198322424349400918564707099841595952524244042290505628344470871638517708119602033139827341887477046523715599103073612855006829922815534507909119127311253648177210323915193886401193919065212058109403453123138564876495969845753355176888381995058286962690183884382581877085000984173557017786960876496808417249508908604647775259575699746971974056030641202035703095458582633010681122621605433223852875500872215096454570181828673905482959518699121467948251853703354410974207985788399676003864380690521390910321864994830644941412254671439651306271374680351646189117904465596310729836650874995554593343835389484237612595120602175247045674709083880699778671878380006998829272574891040873772686130561938682588337580769801281833862795930603581575859786300231218480668362135599952604087487201868072031462113747719030922580585675726320631261667717779031347507880731037475373787455953231595877908115678435849042147243892206952526401645613550648231395110936329324177102646682500325802081467232869557230247883166798602637211846647734881115553711152390191675223384175138671219866793209896558560783325062896235395829022811840463632143671423996300262783537104331387241238480132655016493046090333879988719214494694948066963466157162277639048184116118602639058741155983819855118280367410970559804168379144009612230582938288085393398585372850646390389349847307353524877155439018799194303731245522153617075399980005120358529516707724011903054929952116511795715869594467786791204350643126075461622247081693384600110655282250715595825800887443755946022826098839506058491276000759756574566715870346712534114245541388017113833027774218366131914592736794358337814587546561633004941462662711964733431315148593788967594079403898362283315505976836260052055269483005721888653406283031769752217391388814318396456238084271833009443208703116235054680594163532461354589061352094372843900639537677834998014144848198374629267677287212416922948460778602281701042611214090333462984456253917278942068737266432931613233024354753548648432438919013088024735138884058138663752757134041269757185562811226949852813223587587105316296411822378090577616571503594153085845289293708391445670793691847306193507401986612734529918253771636500243102672810556155021965047643678076729288617380127905041169836144811077755639009855104914403977171610032790741356014026785689539143505432778147869711971911653902549972247346435188253095871627171618465361691268627389221889432228012830934642645406733851250210316929408118610356223701667072179973969973807094988063151401534275371133901825357359948998203953179111872001523702572118252154406854685623757112535263095037975715275533931318415338218896994774798416871646653097188226324209114398080428962892941545664539506300487934147963182035559362844528789098798185859560011300191676915777378724612165444642246811132002556865413481274197422465774761691898437280854070686987954314274263746770249825165894848306732188758423499679439376741415262143098101434340209937429669154401786912810411568142000380154357185182947249174704383609875645032971380666299018240028812680959848065542089666426593686640765479147939727097050977145891814762183341562126006544512452313969757527084469369502841534436196385052413760691739849244845888020672830122512291351312553040509487271258332698220143558916682257778765508427114298489469175121363754312024797547907265255958837998546482866869697202308646164501859954214772742477578255095131872046678223226965398866113673382998485220515723290655146657677632356761309811460302582791888219990871995388955466007582766761444872479974370822742922971815352833081729069388511791250059883686445852904591813094590962310482096606127744221255025007636798604107418518486221508019254090668719569202494012326966982786867976934933291879277877848768046708262270873781520675042149221959011110176968850718395284012036543511975755265256221135910797494453750443774996657720663243759209205593709489272991829478092657851967650221069405586969402323139615540774756112014418073988975558718878984653787963497622063339460177479474081807408749814595691577352391964806373471545079701859044350185751471027968611090791967604778977301134441739123912578542683741050906461439607123090373648234144400858523801772045194309385449098327743723506526068238014267315616389939838213361830444597120214244995811973353370634510885665553591952897867034206227378125291348864127002228708678262748012815238411904011610414198111333659026182222679133958922104723542031496753733558723568877589511914191894047591829728399907816732456211662924287590663774700008196157759912493791475837283600660623324182721863003999650009444803264250138794942597884552250852508279519798965707047025647217709241557397520632003895372466443724715332841421830833016461544161617945610720978293873448269391336551606566364392992249167361726521584442664865280747542340608044635529063467813334718417712248091007343040198339083819353739981088464226029293651663541525990340428876143198282684646462877117590602689185059753426744984935051723486131419069520448307683571897242767919370591838850149046792808254130725890167989553470588912332851777591623348437607604638751979704135527568704112549585224025729292824088984993058434314020791479576635902201033060504213311555199765911251774884471153396729999766905143074535381667965673863068881598534885252179856206954734163696700092711143635905330300780981102909014018039910727860427209512020297930751829740655251313313312835403280627827041174001938259103921930651847239268106360470305135641637201269447860459521552838023688703833603335635092150748889484212045311616473546478217253503258676335781023494209156407284759746668017164901168806887148288780260322844245377550422758463310358264670009472611937429714323128186013992258020689712809500204056811786811507586278217775207913237972849474441406358674202047274201291366105727198571627491497457630732727594090062360414675020238671150063728633010893177015832761192896401061270324550508407037406183092379206125033588190879558237881570109771724263426338990076370129092857392076353595457931148410002467661583406457265628321979888977816946683302353966076628721064017257329647457823436472197948974306958242028924441724960398674327799587568032781736177994552071134157624913081747551713621334848667248348870974224292324094168890402235899736626517839401787070215392959616865632525090981110421036819961307161574946691354887408628011989409326010983769872879776475813389290093402657150049076196161017292816389152773176907302197284086565943931335064421709387645544104117098567893809066759530566856307228299160599990353053216786345019709153048347574346096611102158659433770500765158041122406651425285755935635441877865778108058878912714667400717992336360123815120196041860735734327783782327588970127751711463075765926239668395994452992081085184085766016862493890319493231583392384522188401856600857246404802185033040363205907241195459390852310765479832461821706487522420297024435178248462870123322437550873598982806281947310359580776483786934995600581181230961141308946527601028551054840211761516165708007657967161693847415800200712273812128022008909579262698121269879496618890451016041926397502221259917952399976530450958196192613936567394301923497094251091069939798698174356814222249063829149853619748118058628840248637251485704586139795241679490102850788109417613294485641295573372041026515156601872465285444290139306696559539281059575276020315352599454066769235898391999464721690272372421598220942105094867640498585162463856790514525017593232218568043973508770224516752862825186388958034467623307966106540580695897102957788303851568890296124312013746032356500245618131024766672851328356104094042148893039979861032643167925394109800381698200770012742092803790734787050345868728500718907511167954077725830118647433004401020954760127578818707828534064926914586799181642103339043348913314525794023132732521941474467067208156918438483329744608317349725642790558037898016031968519108889418105553621340405116377387416200085356279113044339667730355829216048474471699047595470705926288255478937426747121675792810841755554715449487620215992647894787662556514794548593679537345438778826350625483616239318120158526769612659841552587764057714622012751456995130630614275097419369311705261361285698638693443592534111623109988436232363979778049831591003802369617606076120500936092403763689999855851831631757008793758616237715830344605572251169726220070919328207371382948486141585967662148235042323802712093998567294666144094882598980667053395948586661270357128488151455361203755323995329853792517651220023659112920816138583893019929250334935444568735057550674088755245169567320415688369713552389487311734511691055248244079632820839833650102659624543907832209851613468029054065013751672726164081003110682411222275058167793154708313499816827613302192314544353336185919406954068438361361480106056753903862163378564610511914899371693099748827970068271693141843802276245419242781772258078814476221299771274728025564108656341183258520838945621236366999769947001441223686091322761560964773060289940568994272519726916746742018632359765879085862111671753372263948292433920291122882982564962683634488052237935943657316273343092712453072025001733763915327558906729208999389792059404057386516941619620393909876652158976815683776255119361838105795038521092252052398005965283965767984459920445194062835523674849889120183984242212183396398494174733583320118709914298400493470869571902257757331317413106450695656861634775545658923896014869378140545151919852592499189317693002430078755933785884956938906779374118649740511317561713533772852336737981558900637888075415460783102668709348386641593743067117580869482584318531549509558632397115803999403336533546587564079363378710363276337346064506364253897470214580104911363948342224055374368329848960618485102026452908949592871038269801133249536430599187182431794067357170016229991740732704705690340160980393652689645814691667689832914289649885119499966572058379458886794486333097933764714267853266413143577784000813235559762065182284307960212551283441914018694758381401986974756590739593685605537045634341131102014270375144163910082601304076853023829580151866109570825433395096769050028749495668811114318491978792400968241368706177822989907362646690940835902797387627882514531058934852248864760018516462955715727624264552802120294540738726142310890453597847679472338028401937127680486215290193722104372144376178436319247043363992071183113751859132754777456609704219333522239796294519796670530885819521797010924566714531728333182257396422201234101837949064117763098335728709512352828873178594174530150773308107558456091203450168083460361872742082012004501311475724275530188296299718475677620176996693207167478036604938909176244467177596721939773577375373555833619886090200340560506217973600274021530771820290266649142499473549790313749918774487813383057976775871066456270308339128062967318936111615563907070986348206485865232546379577707811983795307747995366167123749983962795811648701492426960939230661577458132025150921660049037154052819564518227424777630570675739751512397744400685694727119151914854967774934662309510390654187421599910690865222236782540402556185768489232788978891396953494031379324874734595190497732939219797900766641715703744938705629690423708735622800403666107920557147649848366225702164684207282734652415451870858543643505209519644216681244176885904463216753483823900472159077149657373569985088129916413583211145141267843255121291365422398913674209595672245315283947194884899780863836762030149400821120782859084052266835514658383849222364761142567826212138888933768775811194463993030090579093861763250983817765021408479716931171692460447107884820926423565606508101694814539769959776285963920742444192584756894082663975710562592840860214923926185610389983049547279174337004926364021722373602439929740730238490959956010659164956457851062474708968452640253485659281336146242550504234715064817941051354444383074083489969150672666421687095654003820152296087433167768214272586320260415317676534822166994278766479820197746990295195895422387246559739516624117496426610310317284736301285937838652982192577676063567617555169371793850136001334808978270219001258727695524881644876526874444280275355973026291707653491560598276663975562026272746241897279544373038940560335135797389789736128625317760874581952810286912033207446512398083886220213831897878592541177137398332079719652256884543217721879364193451506934983471313061900676722126719379623630916249029717520036238362319131571872047381852010503152908552464193759215760775891023090313689331757713474456582344797963605770293833314732457366251168770132399540444551438846872763056714470864393890785733483952715891216584139684343265238102070169369591931234524600636220133226736890364229205216696053370999554353641705618453771304045661571842265461186438204336947726982974453348006814261757930403703032076563383419602576097037663892550550104884217893342223085823961952348220056535669209789828189265015267093174324228407878123154016092836125076677853602375348134979010558782595256770924876984805220603577586447149617350556331187706356866822100409715064959624178447221825865918028714222773050000165599562080946149126093748770227029075903156769390232040621340186207122395317299846305651713352661372869157097672948512361076275088268806878671460301413216200295351130260212402880926302531254710020620862399916794540425324188912556935368468788524505305639904639181767871620612441266710051101708627723083376561827517809684550611036843949380307763732690087110884434195393257569729127165558312950183438280858085986182330210974435957034411105878458077454268258483867036641176947117067736977977444258549636156896809841096175877618541306804588374525262295401327938277493378567065991425885483317948145879304840598151163513905117127096254927942408199420153139418336626228611842548552339690078636317588733049355375118749621601523683952862517071455232830634124590899248884612548626814104077203064272714034737290316155981567705211858218451459924831265472701865404989288663628845147887588367488501857361956282290617509509309811290624374982329472031065153594822423848886328920863217428896434274370137948033891255594054187211925754920327032039081949266055396375730622461278783747954452609609167816650529349325669489202152334488824388100232484357150908214464412822184212083516642759468722601559270530952814005341320352459651934428779899461965907075263668788222678329904949988383012698072856925504773162197619582905870901673573009364911683030047078936456946153908854038112793679683971822995525776889475490351630612165818995201674484936854185824590235332260579976559739290715747976453979940664867712834162877976131068747000446631492344772507011431062145672537591412923699734519574185689433260744652923490923361181588291846712632505860982549613412581105815630462913670845278714239151733004981852868782645984145692660812511097675394721865126775413820508885362532119803581205875475557790625916700993354179982382051417219449585233153976700233276040137556470275565737747825918384987834682102322905389730481008517216493048839100842730119910638278682915270242251292493270331433965801669435640790625263223165357517036228026871191374105190324803920777612597692302777590211842727780353728648631327653531694879490503618007841067673122616680826449869726953721874223117003538293288070490144262133041785828373501635930749654432108413614808580383287231300543298176992896124210916682140146928445119478481401054488318662376933421221450573141746242906811590077512357631791811720669818873110558944378440406150315136521922902748925641623964465652711622421401220331448562923031875428449372574729345274580287040700862328624212306406122492735477930558117745304269634589877492505438197239990149623764577713287575008947196919756899012491877886993918303671864476902946789244424039010978136846786253428511845448431673947552547845099296112054555048679890517527864718493628071553549833058666614224534039942264849879183811117488429667716950892797801334870101478025046811558962344850230649909429149875196507037801464540233643747426336362280641009697952260467085011359112132396160863482935142332741304809671904278982563493404074754671106618359397402314982552605191559164659673802273736105617496992453388580283822476199983490020359125988296198849392062981783232703158676909131286353977251531982521674316554616237360711861419385470963087254425372802028455634818018300750330291628990619943432359639605229762021266223600512547527414811574990672206405211049893091649570349695338300173114058846926368748781530020338035899065069664611973507799865221757754660002159168372280950358755247393032747062274808052477849050345325517687798407396721595882207954673771488146783079611066244481857754466336168192197003251988385529359860014733858330207975531660824316902617422048640111140578355983263238024872702772557503301723203816310498064152696888184071347774429190883148848893595564443053475899602524109955893138506361886641132733919231733895170827932297078856776135332538764937314362896431590480760513224069194267073918129846984626558951437787653866271665449741873083358383243947944496876523908020738228295925003283562893704424731998067104129904213193188781516756693858015276499141267100247550752281036213133342815927892502097757998265377700728659615405189004307398704024486028525519356445503423332649089861610500008761402701327932399384138219361863013965529465359347466197809563302662843142780906472661019237947276135254764005977870061520568270874025279632772686439774958736782572493323097435792150482468624345177433257217358354119377590732290018341412013370477914252125599224191547332738277599931786798788165028555026774147572900167638830137850904323665293280220938525718848748489318196709490649361155049180857732548165767755026029406288733266383690010748919193397105928042453293577922012351672209495462815574237655762064997157796636268362081707057194328874482044693153242186932570543150332824303988317380978514597468754964237450307685034000690103274998447314204592278057791275443937632962154571343055173328126456075451253821025198059648659320119241835797800954749196900161031882379484843797456729417487112750945284591961822282220461182780936384199932802600814235228192580168893017098767028890303951548412361001970766630522251190363513506337372858605227708165019718308723988277769267125120767027294534335209277315506562405018750464897876416075578681068712689700578531761690333063720704829364000640960703629703283296684188889701532071386866286462510108144882950287571809477624223499549584542093539852566698917747910312918412149201827420074687913779199845597116963151310248830443643219661257937803100182276268579944289352098282350962840878249144537869929855067545254472971838868283368842372482665737503450993146037227817460766958927221313955875634977495090790884896968925251120041461502294659137921260768576125857193459735294363484760159326355835748527453444050930484249363121891750903127408129524775347182878715561884266272731401683148109596472629922754047693036944265327638490717537681745185107421677825017944219707193101360312708159440945932118187066714635722419524326132595587153996538605587003555167132229769658059290766533789310475559790560496177669813694939969410925540978782808000510040268051218238369259009251127100179479113361686319470006584466590520096573145917473332074452633821921475094259299239031374059383588282527782261617888769088909423253194347392315373716712981004709007645487818086602738463409134986623501673981854750353901906572043198169263271863880279183246512730349397374467079681660173926785189720751409079437421522255732800434580823621957112313797187753498551446927986513740922783931740638374288450762584091228056778146669041642666887150706404576245027486699196593634233175450100055062994397098892697331645915873947996551007948564246643582374172185909887565328707099913281502797536621283975915400807584637987224631722863346480734558981096811500847749103517867989481835982951499323127445581093781235186714752410546646868680805432053554977829794062401097628632578077160842785162699067634634447427436467957664826087822221811456512924929050802876780550204739335099746800173755351068385959595699857793353707790235936497736301496365712066732795220636088928311679556462805319386917470395895542390628321660475139409561232055962501967542604778647409860829679635245920809019873832972288187850573737129188292976668291949874383697989084950467884334727504488472635370413970836532463599205053082753869416278634162178444770918936336579185698406637005595147859325377098764259285365884881100933048985328248451210514296321760470111402305298457087276473238021541072823346772085854150188213161170483673374928664778334851047330349302839951645674123596847010529688206378921629084105696711926348502486300399011028690280192196020536950631030991100541703465358173561809048101881813483908168156031639940742107665112937880571099158773228483369076540942143000292806450385552734133543443892015945416528594247030355779462969832946533837561177137944967232814648277772655167508272653814393343273338285508423516332148762048398246004199669027552593984051336786682594486854490797116792268791285349765303647653644027206925181255245800722308614238882436372290458242782847708549431696364995594605965281939102898578671275663521491642490299217197165280850600438107863521496325288319382895045308471628566705597018563546638331335099479680805745415081251247385435370306742380741454767956588513947932195550961639343993749367914904234100604442310450717504444865396887016404050355044083548656184591161678762226082101577894598437103068916276693201237493050046615528294636774319694351390377183227640899229787859089315069036542997299709182781879570886589950498394520668319770912780382827172372355321174325313294729410248679409603645782687492400623455793663866108015864608132346257175320671016553536735074556478454815150140375906499439799391484662563167270435101807917470745767355899752094288456977928178650538710958337519043444982019892101334137932552341014639347831118393521532830702654017774752500787247039674677058054986022332673615073557013799196953168442359845355565300830047682917577909577624336365630486725585254031063434148808612431740346982393662254988012688112865440610762607608741362596187271817193637714590377062683456395564524685779768340510433414827938559830403109515601920346553179565763999013937497977614262455759212621300291958204685602992254816791978792601553955081361704365467055475287244605158394116966860968387781120857551403750143578972749494815476540690011923666550759988394913242236447782710601486997777379145884525589389197000005512706514867676343361419582160437439365029137387500715208829774055852812194118635913629684565108352427550639103223536393102957566486587097295916990721244687480357550046875086593124047473778723468151737175451156978375357485236086470037903794384681999945452741294000996753632961823434900540067344433093810686378250119302627710801703633258937868509799861413826535805921361223014598208559601596302298065222034585865959488656892264721047343113295882003234765061330994931967515041784927393672776896091286390663892927925892163426890385378874124204466715942339859541935193254858150449821785984219784796900769024709134652160821553469244870693466778628477208476836002612078415420107577939367433883114944319589997540002852219251541579655020277241719967211217216536757379351568478695445591161257594331371367036728007800854531192605986990322638073345884909278094749899422840126459396828218726973246862420946585526194745026947317503328359922261693605298653658256588676721463487806900341253198941372670192624655791188530152921269929033268346566027137024451163125425798405891231788818109635349097818469933547536052249088720669980543758327175357035679269040110604803415684474310180039894517452140452768597446123694266073984099181975195233075964922933782037581318146386065312142219690682347898252853389665417165965291484363525459585407670422476606637859171560463460967635689096653154199124978630241659797649075754577656061993797045278972596473268518794454069228167957548475276374388857670727340332916635003600023390365984082198579950698530449982341129329352694255615714826835637123167910381303987352050732504202290601748619232475788197863365058584512523012767035307082877085718311375954971449739537522830023086523364840584489914201102364793184563924712298027271129201157600909417247428726906393356321377445052150078215012602235258448003450498240360172553544276704924974260177783176241045716391604001137059428335846512930620867859109965690572941907832365904889107119431536619213055286304653949361505121543578266647919303150642411327662857972303145351413646395908930924922938448438263448640626234412355347324009196447956392797248922797966403707817867330231646997618108650803711116077828651419006535310611964456973371437205374370284794600858804850185737294047093579565971299531968273615951686858739065114174123255535167680223578301352488588308550224277264249976369225589264960249199826105889633025041670259972235928091940375179861024825621111494750953414429731209624441389007581474719672407331238554117864218696799907374837942596920457332455828452865355209878653388419846349462715542104192542968892596422090589728389711563595126846253389349245649161396725039389346979273396061037441229914837930256447956708052162934262630359105849690220557368387323128741657409081346228934137976059031321307072185336753177527857326946204980973019925685348813944401838559566783259567720538162100017188381606417620603081707356722514772200289219366785543154926720303774894756256823757385446215918450013038203596180831824909930111478097350492288234056013968195128557975740829959262374111464209275371945715519022902385920196749165151900272221989964760873199847562495115256878595822870281552677809701330614678199485327750032439330458392335861985781351988722802239613425124340383342725928816772496097082775646724990148409722554605472520012741369139436953545518378927226674904794004029082472105813831840764599657803129733788689429423600892941150513192873261108106242926035087117665183012821207451957765714760538555665200286516531740695767004520903478950197056693281256260411830744339342919965399191615694088180769907275837913704047986923308042770466354646970043828913911049516408913035923680311941979972644159260893906763833301456790282057866867058630376241420338757999739868784304241105800992256384666183501864523578921650949803042697113172787079363427268741006259783124324501458691834792586290675537655863708059508388136393320997825227569824764748733177992350643500904108681394650484417882244357803803573280488155597537700580569615567475878218087226043022517980453593129206488158614942335561863071874020812245039095849668276338828224274727340277757664788973632611254752776869662715077731284295931363181149894210281875857737358258245345199899241465234021771245721007926835849842053793684765632913569511085803322270224137288441967823576276464775273616715827712225640007879561804901522182575404127006840698954070054934966687556288012417583690796601231924908498021850713348352837484995440331719642030014126432329577687340692295704669262577400200889158190905599443775085955902221067826423314296735659631556666817154371492407741226166692246911272922547034654066695269128599594854012793013882052129544370591335507299821034767425567882205703101051581651160931661377673562696505145921416796704082357926133666672317782763128913507423460786264760887558498958090569994900649384319128534581525900116472517674079604635738942946982479478319246091764996869443979101382173718498591907907077393034757125913697496203472863698511974706279448387624500366968638878925236716953589370948576629977640086487326518402782505466682329324580032170054573683745677657395778589231846783929465272391087160847468182899138994939985555723514056799331592281787116530750903102534149269038194624106467425815761524054918224037826208531621907896955492477453641487811508479345596543049797822562626460135596670047200073082033239600390206821264346076554818269311047937650538557375903300993365766948603104597359669707223487976642786185248562172447333153140750234091189664982009135041447085083563771447156325460655224632038217998787257118969616977741182432869311586085619491012617103781790883821783956831118097478579997814000632537671793812639210204338809863580840956284546068619457734515125667387409213847172262441404804548714418595403596656377880810121719451752205834243800255514046855491679354686408824205853378563041307952291611614359259720168750578106745437891004764091202509986721129413512155690333833256496575933795697080819446284872667782387670732263415014510083960614304367574538719485381433797982188544676463504663470967094953789183451874364236277450422979036860129310229478383667126078160607494895740196873953043190331121429601311869930352855550889103574451647901150335692150221364410682017858688704305354673387221183835999953844184287190119273142204876529677434676011697889320315864679745370140653161671035054276283502657871358778944821907525739866801467201054575113565883362931300380279497712745575530046449723446319882985407611022229282309575462483809285976433370930741618318006812420019816895935628482833519753854239942570237189745418297490457267233901375938271767029252406774754527308017572406978451462465462489893629542787714372069124331130908218896912295559614500644607290221288817552471979944843985810407532121483867727161509112600371842356488935220083597750985570205843859697609330090067844001723543794103479512702272986145451925722062680013060506593494810925787218248728556017537428944717543581283603872869444282390080870657828061963788260540713763123024065916107223838043502095058696145766415647893427022442406503074829777651184221490003450712817219344060147885809973230207837471865358247869160350818004537108849969491723007355835042414303123266277842385523238889863692742142377046620352581373752085017656645794509782453677735594312384261450958415516564963813007378196968446602953098222815147542470771696752927285592374708604661573081558502134244303786957225345653767952276908011304854015566712449905171613165367957636248631887730037264416152538625694950071040836433073930768763892398051311531994512050421156472937126050123807014649750612309156324007109944556131724136690002510450176235111960742619339385016727918787161299289560844797812296674171947724064792750511123720074277098827906620677886043384026475878159092120707288230051058517400083105973059896474046857042155907228272389414636929102032507096091353390660040596988824918006930484438719529841129392925473385681980601408357486667279795197975460937743198191879640293818957062256594808418215425293486628287405705458513495501982508727931977729116024170440960826942055009999616993240344444193117979146614190283573581141060419041794987721239950780288649579169957056249624478879406335358313364879141071096689636684051415925144150661558949320391862109114222367210297471385511109517961293816154862720607548758643333701723151023626581240210000057606593279596542442347310043806913788489185466881829539077155431918260635848555115370173118963705792564554717715601377303659495828095200139797917856610731127361229962405236977419959188845088762748601355677901503841492882448938583658402897625940894253241463115871485750336543307630060800551322888162503744008090223552663416480772819967474682241959381921968136977109529552928213183928008828898185768252664969395877846284139443922013667133026439891333789418958226673644196118792999674293125904348768859193182963505923355907015989810599305623092803933295746842066970088485471239904044693942937070626704183269660971391111821016305388633795759965153157098267810460395085792568481512809761215340894303799475790387864321151168355372317612847852582400515906753865463024547590470825205094966179879431010974118686187101574854882715952671894444984488756094421900656853643047184187821846277912548630803307415525618399979332021331655718221107334816369788198000179414429632258633241820705836622288281020903196101109065751616646977750845223261906896316663489313913388037806563965006142946144459187784648106545378902559327560880964941811634285343498380362000913338060103792925270597243339516072551282524806189901489033703949602965819927409870612095387901027565013552971998243918559151081078303146078873875711950844688430642246316426987171447163622289054345109678914444284643843824609773390404072389164085158657875754274081087535437859370087218380049984731416228441685495036338550503636401896199189897112396963382274870173647116882901466353701078366400444925213061627984905045281743561636696966397813827484503503271890405005597385286211123682119700874329370088073596902383454175134206106196338894984681358544880740812674247165780451903459729947688932596980197493715910844316813343925424928630071101154438455157456397773071855229059976702273234523139579184855645946848615494594434731592723799415962660101726575509107053859494364865063828296983541254127338089502728963575148460367380246150665926176522464309322249109316919671287436160736194472445912087944303351401641956989061623437566722329335418307703703584114469414123133870254355973259812658700750881250078263671724021272187065932111677733577020696365290603766541537223941180260573696403622439277628863066335546372353826425849280614036529896324744632021587478243623831396974134067440415829608627233354129638897348619972938916128728062458497924207324420534519685809854751714237237273552583751023349429958920707933105765451970599924877488386621797454862694447051181052263026779928654283965894226253752173143138765997801253086556843871221625195240079705359185922761824509048864965628018533083794277513348146368075463013280416041591476615451424778032096302427098051848367901742238322733073095838232703327155685406029942556996200715365513508308754549057356870399404350573089354035410691217729274309178633355208657258694255480380505015668020306087284810476217449597092817931577898028966916091942611613187065053118188750788955880167207026679335396022088300535245751834810188351821361475231274095302791102952944949260817168329426099341081545751025771059610927311449879847307916626370811421889379994170087860217564578871089997331025089410404145401734491924318131807587665918605029897791400528389981745212776781848575297406720499574552812006221357766854007696927001169742161070111774362119343226708622464345865140028187638074673946315509091421353102243185428841021040761797451989469193583725346202539093521162290914497953091811729469164924591493425029313646391549777979423217439452004699309808357344754070685118136326742924436890433701590520963137143655718886424144822468000665134926675470361904892470275376098869017109205756999154790873333578672119311811036351108760529605707532928373632675295544613292863313509324362097749905889292879430429317750395149942197594340182511432707328663975299095439720298921741317781619627421942929028558825731681920805340392545295232401790865869621395545874455012659552099660642856854106292832378529625135844572762596465714105562617936492524872337481265472274640344213145637984552870133996458143310341964280775340260796191303318292381846207041984241881622796862090347792424786572273620651675456570613356390776861584916328270881532250577316250936117649653092593975598424382729417915507035200991551320411330316332517058630851638647285048911797320122130652969196759093475649628380790268644409724134206688300709681890341770731113994448226503889808464277519098013237456841481136152288462985473188380975605461208279748833320014366909493662206028831685200721183877664858123716196364076094785811432598714532082331836473000892217528719238586134770420966627737207058346515000711273108498624802915047454808862602399863303159807529881255825478387746022182099666853546161438471127594602973111750344183696789396249013902212190496703600685309943474157462679593933007201360694926868370266742454721938046682622430801652341417117924847429084653169000267650274651024786122429506927772086943022919775792349154417579719442897148076702744759463697729400684539382943169009832753681838735237883223743260464524657747130982384169738520782869621689911331938949184214936946097841628071809988116327264279178493552992822251526713530708302175529086032020211305624464582914505120536040760978349678361282973173445069324573264977360896900474361326587868595000711862490345322524027505263217186498843810450131939598700745305053970655602670586293955758382240604372999540740194640903849902276389558685677714523523925897993765097531330450280920326204649652619979168896641675337786528129769458147590085437488116562593374989161145532974106009856627421180270660430068377620207052725992678769869382911950281724258156029117974507339201158206831262425491804988555747252996543776749681857279675707654706678182906813393333803584500811876433053841904919838294232646290073571748803514881562367534176497151311079822400130556044950033048235413808436418384493109353192138422442553969556087811525815029777280063814861344816214925985085874290311449140872533610828046833753070900793015820672046921551672876891615165214069758664352797414410886133241367489914763065082276073596317993409672334129680093507554262959198359925895806383036876200869055757910277049036242304653847715734251738878086343647896140735658529944484233661684496626238241611230286576393258215205324611460037351832658450562274261157277765117595765351367945262275401526244550005044090974356355024812030415886917556891478295930251570328908519805208850244936531470525785527769433171489378299822599118367668558194089921005211944571964540683080752636287646166222012765312601064651253614410430784216477800509026048415671188410864229919982467398806023123208684442263388704178198459905747258281761071292613129764318142787307584246160824928769204113396082703766567859470264965587553424013725131344775431813414412151474420600958062324884725301011467928331772241051776909221676206817427382519018761770135881849251978381892156969795342390154394596185330850246992006883116252131695658123617413766037414976713314259737423085498928640734535923775205571831106951509395415884675661625913928760024666575973181419198762465212835827508862825831288442632327671177278412510820302492646686423700585865772854918932507727109097460134078907932418998647249086148058079697333036327118735661156662157015347015800492110171140626765682964065349538797917980516890653355444268427956772429283599362430999182416932549891457672270432110478511519970837736352727785327674819649768474110478337324748473502464837819930120247662363862743305598608263195116617921676398090515048931656083590933907345451360632267257877776315945277953785487339254775526762160208792391644401639647377622235853336980681522999858761611836004852025507953974323763603859483117255394974888018994706380256601171755706578931829747270118357419088251424559453050034189988342789945752498525463686782677380436524961160696982011237606522854144981838251738882854299942844799311260235879695313937159216002202827161924808021312911832456941007771923528499137438509868274316238825261160992469190050284043708844253385120851410478455727509233375673726828748481425323072878140258276122568290661263357198684010635143395653583263894472235812675686285122881021366844445416739725922015346282527483636991768690068364421862020039389716650851109971051349937146357192901306075001845047592352793892267039644239283985501118172688539755985353949212306651343245746888551217860476484950542294405793545904592957204150405449193725763719677296639608553178706045628322329947478446118542110774635676345770222116732683511318775217374336918842985558517276601074191936522601446401941277570956465968138508267672231948431274280431732707506582786580341136573144694933012398698053848259414704657268013920482239703655388840883734899975790766142903060706097897068235813102408482512068654246991874302961903692737811801453574909606652242839248095372520607864401339626235117687194149477277718143039962553879451190066885494645925909116640335500393864351556115518173091640911350641363536998597911705504037802856661461402376865248726677143283145272725570063981036214905905622581591081819755502430040448198532676505790355241998763384523457987701242353656788492093341011496604264858227459745030392797378901149692079490887295014257724996224097695373987392081303547381410761407046659064838837980243748097686530781350313237110593880966499736236632031605988297968933780556601835341912811674213204002767664692645169003866424405018249798323713216267391946049461998272024667843711524654632789130711784157572141538019741205581566098658241383760783136882352721464170154095596572487277199301407376599899946972288587535729737035484390078658061133166034913820423666442870798877141874596456730513837485656138253679590196308081874081888833187103870417261588122638846999270366616487474535709644833462317586811681835976891226965524041749712503793147613433396357059266034693199623259388103200508161040546308702653504258444936068553403373046894954856090712412795843872314643076880992718718699660231412025263580361623526419276604261719092757683634319773457985466577868062665847535636172613495222400682071181187628677415647092604436061960765534385532640296858635569843744463714914561248683993456382707844118242387663382144751036799656484644365811268743306750210137573802595563917162682901565950573091863171704356626697310120280914960444543640263068979348933328396746438219453019920483585609670229383740667876909922294539228376395296123539498180796441176972874721896859854199394921861936433749055433426570576339799179661931370831395950827109783420298897380568590961967076756613915397311532714723344050519329309305470357637131288680073490484275447403448296893700233538816414511741254521731333627748373616892033096967482942392901507471927196004468213997838255823672899623016070621853164690815804294212931581105434930122679477813884254974460689525139487317920501090112695796684311474086143081198111539917423394367249644619090268762351150871621496291764340068864470845357463571770640858176461854517146993382839940440740247370027691404767897001444212928211816986215339436752730169469978770822839955823020117308587103440376198732381634263553239967275847757873212118462223778783119380038222724992638078756588742814274722753290890367917266958845228101546088860171934079990302374245207515793955961999784345262945623544870754197908465981894547776196783067811831361236071227495961222921917525811301101009041503317674947677497977357808148209571002122432433658647377944237720177308128085196693973534453799839809958382176431558398821889215596584347336376481995784221957181580561755438820656407844362796619727206354524534378952622480167631766790830288017474176557060287112433978298881515602347230587268933747370205556776416139385154702419819221034139486659624320688762382899956444168227213112223303445167863328834637749342944868064111971376073170929770855148042368765609981639818369024517057833154213694428015787294037002021991052150545393842111238171061179977534510311132037498210736056210692958870185648501295864160381495200303981877122167735534623689056534139970088121963210403780447722741516407392329524971669184907760558741447561789231872538775788784026619915180254634216224693899223677567073339397867732556228719845861346510908393659908673561977733431344404848034226673012518162707333756548568720515408979136962589946731802596237954687998171502795614156981570514828971088192089735130344103112359396864309915425138122782792705444017858802488205628985958678912665728649877979566604130611484939592314831460534092641228254962380211057710519795271904281755336706238015222637898778670048734751980015743783448723695133637992610095740600821445814042773077916610593882891545850870419326047922830994008748779805024220315909671545696786099364933815287813651913576676029544028865249760287972791602013650822632999969216442892524064539670112371476301021440569688200073875661045315382452493157571258592318006690557283662978663662273834144423913845909467606934219620464287855728839868041947606907911231543547021195661677031195101128750655136827859275583996169008024362625695610107912524682940958548409693757410304768539371693498192110172670812272489110788267373243429888701888377233340622849708179010740142692612140189534512756342037364849679958038740929736578938953128709903166251556651805735342785158075031379109199122427606164286880933240183075924288261576105918711781383318131279818755916521474738230848164578727896560676546570358599261047022423734745919339789384448937438010725920537752710140007684431896992780291151102894149943253260314998488332728244311404480766316875465412545425552337200394560363493390715351314829268202402444013984516996298871408318029434053764414408089450134478121737741732702614285884921839261576314209782582625926146607476796529634898447466365030625604776637037629770104903990371705456152524768286203334469922607230876896863393120410262199734365177666637224952518572215966339799744012302932310020172449680627175755313646191549230841080608332593856349785836970907230512553731409637790629453269910058488518635181789030502700933816702725423346247637452414743508121851673266971399953514428752719352142619245255424457953734282299608749294541090187021303101203844150326640520094586319989615013796121144470368510876124563072045103073281742374063017231729802608594005284973106914865436992533385544105274909656495154930692886228247940671294969379882300424415095936220125964437642689463712249413171372431408562088518998508981356492721040804273987994845497431093996236248954950941860527133948584432832065241349190646793119945840172778548623122604972527761898316283934032447405380530045411925065697670426873924006817833838696389043025914477111974994503566537452364873504633603857700141648136327890398557724837237854766710621775582597900526110728722398012046125759930173708404741631152151710569070843035211715852778469011589859242769084583212167060512828524331385852285130747595686261521570072385107389185947890569775346808996690778118105564685245548817639047445444459031285253705922257675605261146650805004616753614097002024523914603877911021631922337275999538891977431128277662637909794878339015924921419562232165807756478155296209383561002730178446747986242971297441921595686017967813319845918798914506202527373572040188396113888251666651449818866309918949476641796674449936384923650942873129805603997058708421440975016693722226220507489426430738729222619285388656059456024662794839748761987760554836948759040648201156780611796970728673328823294776533159063201696598177072542299844124155130220821317049630037846564576482940886277417015439542358711818267267707697449224764365439309368374365282375631537955136723191850161984912058060318156253947117114284504988473787993313475351151442888244964748291857268053206301989164135259449214398927615201877021017117051382923543845066841080162339100067420778262557856338028976330440093661856404600651411661750376300591913064539742026317858965941489130021989904453773070830566217337566979120376879554185803282765717851243006682590426649298354741531123081915739335845472104774496188837329166729004975821881811454876461786255313223535860230532254125330111010451232717097970969881422745179874946458588008005228864731821433826512837282890351895956172000311638529548995764457749699579069445325561777078836901258478070399089403371700912065547353552220727442328857062739866467865774703004880563699049004933344670440845717952259070443074139344233380538769238316455471650378167048288568693580611750869285066067929825400207218287049744249657694850743439354713590129711839706905629970034799641935638004928940356921323644335937381020524358304678994922815451764557005998839007664625131680938283232096349881100934673811381533448619048796834734769940179629833302630919160715506101958261448181177707988058254270783558639129811414774332965437789579425625792382331292532423611371338194967717905458867315719264027518513985676219141495719300112654318741456787011997656094917656045949451228317530101762633284365666870464441774145090417481043015369559447642131683019832652714602349062376995453479061506367800975436590021807719007897762989412075438252611812858166278275620366776202480003314226410435154545823283755664235869632339745730633221558423781797514526112795688098542324791032780670310980360071412458810366025564827991052459463424617593960214996576346852420812921614791031309125710426140010923447916186948557612157537371255044696926621808432436879612845790230758921835413770171531798767927378254507901462414918971972984515889254666818498054145678803542573007237274982220730106680386215555931936748653960158639205496977654002992785884376470158550566215556912564085621625241070214213631981266743610589539683860881997567119936404947452809618250314932663311827874757371173049444726504478573027642854826160895451550494325675363292647596964458061843127100726461810739390479659302220702422030709738547419444711733747259140475430331309741693786866410718431491143939572985524765510750013693728969478652223490600348477119069301107168826839651071766871981884300955109131888411427031897636985225069941005471286340012834404764242812665276486233944904070320750492460683238281197218181306244270801174781038244260281507406952144724640212202462026913081323737638747794002991431058681022040934691546514147162613916403903325644527105964063884519779996807408055188842055048461471223682992269712896844640059843320002014799352017388762569516437692726992524932479194976007012845961804754677135545292006014059867264844988083409073253893408206957685246707710673072851516646707395215760929954064991707840867509639533795290293705672333986307513463607225665934272009972642377591345367725912367633784853928997256341352430562913922829685016380956777278618868497374982138991952810954848455619132320146900297694727096284202316195538107043888315082019109318508173520220864837982061197009252621216404606307545482472942601566878301805349821128578096985177997775993201154495705484158332534980425076899114636148026564489219804451789875910603352863130484564154298214147597737533806036151707750513971006618078466603625138647353447556923181586704530464186293551748785622618005930609065969778564931110280961195926710887339831118162166227390893418762774564411678552606027046106172799648849849115296232916112478397960947253262978222303262446910235085364116329557164010425662764269419333460608311293309344914642804945730608954858935687280000171736640788900840039794547790688750600912865731183326247000811926945450346686579586889450937249303784388852476921047476948542597447392565797493249634509130863638614749711792668039136378687646143004982686377382070766546185944572977885906171205979395269915654637138566176343256032277168275633326194830785856327754587025674031152378137197918676542287290927181842820996343188612568409969013311061905927185245361330646691603849420357809975720399893026806925749055571921462812344467093855371020905461366974364050961666875288832032081217788940122466710140498288568960413156492130058523505494092134775491925093011921113652477511992441348305021121732538806285097249023807941271276587967574583865551331871824888038478499025584823323808460054858555961815416215227382427990188485597498099415369892611705090160736348907342433026325236121987387951691437579780907130712438703020928906206493304618578943288414289500509839003892161198083976132078057514828544859563415450693738158360858587684937115337001423522897682827470204197153312149122719677260044029101695560727636370572442523239111720401371074906166208063785796328939124521827785283788092792434315263374500648643680790262811102766430096895662847617921672648811270053904015286267733069083443777585589268908112301368931388926129611894007806996126686585768281093796244141065748907857585881234342072920398981805789998956514103802570380242232890259493024477946049834971888268863250062145140061701128406867275450552495431552029178446140711255915504208500184159086410814618627350297592482586453779654339114775424122283669139855404011076980885449329597317766686512346459932782425523269150192230853094435755559418883381431898709705093732432833945824814302465412295249659859115201361302811026558555217463181906753165219753651678014820649385436628931928589203405349239686731729729757929811113193354526492291261459976296192761734225951431942280575635251778286095518459086422216495272943711400448596281002728226937911686494967126695606428443762395002917870698168969771553668210122004295769910791295219374870036843838697015399435580907359487017882600458937135332775882511387631181283601634415109286173107576396045185225267123453681225073418336513438698419326697085498770973266132374859336388402545170633510266249875200639738042155989979582958059791130306143118723162152223899861072740457595554534488022444743329638202731406542046704284413405040831760359815580765831555880623688307742714721982355161721767556127539852765086198834285990481797430517518884628672943604392608337804741962666867886138406420949057214300293717971290129439595212095213527394879190383962227366535765601115426472808925577618303431371493885260255580790534081930942762992582538644501618799097694828413545096010031624688626467715633382921087613911121137427405947449536422520294990817121701279985062548172629265793317249296319172835170173811134480255961180052102996390396266189850203725682129532987747600268176636927514424348657975970374562465450178305580372326178482143416554947949664565138061472188535618929095913381588781257640922945828118153332947333110339433037843445099634324678438954861637450848269344431433090994395371663321395649119704614538680864151376821715324805346413006356463900456724998160407328414739071139395205207799737725014587028294216178333845740166889793752632175831476993950623012762862761644777730815210421254806567591692622548330232917616590315478472858288585891687772864268297954491024644211667449383824067771602749878897390461772166238110876353668097205086598759306062048220047964267099337215964725520590914419172027396241376963435456694121290139538177377986977556918766508602394356638303382216410136196604514179162705735395352708058876301861794232155413296675393317363642653213368802734504532201013085666925710336455900573278672682384952286224071549880094621734237053617064002728703658172905724377563020572675859166441820023726126056890264396395773949754110746696308897790351193904330708915876743612433701630076175422773536724003865488814028842593542030553039398105032861284501276144508653808357717892643822240169912633379144261132243402597690972594323108251611718425823295214239415910786017596111560615838440343640493905874828410251305650731913210442130889268346550378920048477152447584108352700264109142569124524374859988018514400716022540791299388671114814537949554845867568721820005036469880324055580701622446309528035687307773475146186596705706042273889393600247396123888018814419352688873483721885029037034141780132692283875168729716943423408132599027568250644652434387189598524138869056210238169157851060801077153731275759803538981774854058344032088551442854467688395434537219154524303119596957703368600107743300331864547577994792454871976524645908871732906227038396067746684583969166478711341940570107338918057681665678797794953067556017889722210203066612501872248627249046816911835407217495568938756128041503822016882151775500133863677073090900863805754877743726706336967303021592149112141760492697763236418155361584553262456953360733453077231633897364169623256667261999345182806268806909708183583960992194020616474251720071221725898326567522287362655137937325714830594459137748614649123563109503412842807265580746969753040913687614913678590707525590812844192859199386442598156256617425010283031492306795557351828580418225570576074168821841736475043839488210341290798885199315404690058177807772333419142317099556435417185393856056614657201858888511597808134404810912438806823791409983615069316226684176407046888955097267547257440304633863191841654157750629436202080905720672149445247391198815128686581946464606703814029410458282756186255335789825658467111232382710572020542185313009784833850779307904059378032839885472599891042617197155002952021626119441885321069158738814392401802773088890168421212708689035674116048640389031283948254464016811318709359962552190720047434434427331501839106299111795422980746860530887734334805532908341047342736968713856602167002601408539495207690952282340715642534441450616440567022301437708098261501393708638089190310656912231397361652313897550630754807128296239549164334890448597903472151634770393207553923936074257164234828687985898928238634722239645242919699780395484614523928023807374710839381062400850157522046953598490213690778425250943868299477657588828261591648846565939782702837527677890236692433541496127047917563035253100124370017985733275450920148111112668701849635376575397053676082961043769079409368967628450432522228327942440289551056589810480011374453754937703009660695448333278505391948886644452687928431102283016884386819032299479774102041781246796098827191120708675138191554511884911916660031068824363044895715808765243672184811978072547443441856066513815858684834232095474283179008667414755881430799510914648779003653828519880755872753225899678980448241247287570164895962432484953846113698804367784407573073659977144746548857337733705957826038323734314613406420454054946432463999722711530777587496381595271823297458587667339093984405135582844204769583500321332690795504150879825365065174265330934309001070680033385753329342751648033666247177547632540866486925342795438791705244433906408044110618713193402288450190124254332177209127194036490689085408745727542894634672774916529434090107807864533447803151320643560721394747014447929096896280632371011005105679704612257890787193564275424962926805058158548153723154787234060259666676749640134823928151483993760610495576701862322361415911033072272946591451359807767830799973605943518609363129123996537799601491829333270401847104136129961950789796768492760209242502641696641117632969232018510218971169054406535389580853801585240226303551255860007834686472315020181058390066472176361318731612294786177990244634417234891199031618782054287613666223671588177911413896223925377658433627115575434480045277734182783705832725547844659839468845722122142782547584534728365894459750324219925930241633443824262034878486296283275715831579156750794196865527294321897233299698021907426597162407306148860652833722339111384292255667159274189249503092454839886305933590538270499795845189029429116056543536062968234182891005107886003276484783223213205346171183423004815879458160101747341469166456275369348873896975859465245720841215008950699271851763173672121408921541425126061079694523723879902598864798591272274208102198178407267414763453795198908082907241963249316104231748511955128701808926657914820468587102077486441945648407677923378635764606443856362441714961734233853838329914314022143771499018423685983557334423761556721142598761465512893056644507021923041882982885073586843164820113639174853593899444507939325617105298953565927092604177997659561049585894664659535217235897235989556796485861789761994230098899033225677181050966900779188272025351239764732465124825453467506666554417734859999734480492963530577676289832383399476700179493622928910654346688908254695892677200829550172738239517374065281469877975413485718879673059448118334553998481724352338922170481057245937609962602087703437703069676015581357081774725584238260100220577418989710766689673044551830140776421106641297933620818225178290569781269541701842933663163228590886718749033578209485212024218492458297444595108525991399663332924490988018908237610714575921880919840305797477855508258655938484986561126324635194931083042432320581596024083655001121724934975851601410527314206786564005300058094237367448799757790242026839707556268717838532252241442310879975538227834063662290934690643605776887217348106263786157748325395506924836099424889138556371332927590206882389289835483633812178874793962927226914589738622535326094541181227089877507355877416955594899088438520180705332968303735089372921545562783381252887832024510676937901695087749657513272483913026869768800561938317022338093760265125528644744732462136521939211681531093413739829761936054776352144558168372516181770143399831520952747891800585447344901507245422690069775268642168108653379351020604546313380193860326830976673367928245830688575526542408059081754301010950778756461920495063984059369403957840259418779787574952055822192488820061633690423352619911059101635892002276843903154193035558670355976443253335618143320328118658650732958882703965651949161771994169832395012590567379599394782068264029840778996676888891310089386510759016329026351376518038876581511603179695896524588512155323850809058147512900589910139977140894836820634755568404954653171454553636212911443378188710286531560881641881868385398720627930538777870692965978700352855487633726038825874084474200593791988857646712774632624137176992345239083248532608788325807576356542376474562387144043682151360423664487261364151258327087162652230277516790445277990265685438939449470136152068715600497712716312421362293509054825871594253588242442029364593251194062784436891942495608339514041552057842024768958446547522695013091522226775104216712868382915650162868796601659021639013249578960145884482718519110364064570856821615433303140436571930077141155090867642472318584338719886830713679287755613103817795618539844553433716825027567241379147621718799335879868473537574417139816406937957895120794094294494262913358380662915796460683396354027176452072880223116529708801624062680030168739389270836479539618059431677091466244126175096202100300684107914355007709752312201863696213075617733503697266857481535103368934690866183233355339895851104089772479444993300459547077822022018543812327503861197992207686515328138634094910301422960877590293135136759812046879047630759284976500023157326978149203735685566322424907114618222251189535468631465517771067740410947689321743631440942162553095151977240475066816114753628804829489280367432467887871778224727656370769606908724037070647203153427566609776274734915355882033353468892774689664664765864755453882120177303400325826796665767444508989194288608334922415550285919289205780875524400867604545537615506056968462107427093287199349443575101449499176310516452360048163998292836524467820793948822758135519897844894122006572238910926218980160657126266313678703793598052724207893511157178566391998776462484801294089282716725404573847181654001951595537057900979249609092693769840198782094259914933458199803579356229105570155238669335260333575704969948834303925002326873454539726367003752697730393660170834742710071183049152173357857226940663121317941817119283805210948610466686677749029870581349305552087070243359615144643192935576261706714647170854731799427732896578166108884727466789556974714685894346285312952970237740781976854178699485682654077500697365664699429393739473274624778003279181118924626451466083149171277843866032866073564368945265769123136561100106218057646072928911643363680196380980915963337095547461336519893433990115361064855798055283320436221099827567182352491580169326414621639172236430280016360619280617931197430295567012406444848571667731901370400307982217387045543935459059928303396204277863882551683251484402551819559204263106043234840079656540040115927391061964644221405065225673007134980174153880710896216977627236206963212323709723883617188193950030545774590466356787724263877786982992290844062933917852971965437491846484412704479166562672803867207945506668984386173195266413089164273545038373848405954016976253330836574134704629861314732134111014611646581834546611704825935609487229787863224243280606525750201393220315047996594814343557801022570361369653664217242492983040333613100670868581452402462043633725937119008135132994512594281467650664174719240061188014886979812340730350750440917317709686736782622864206566320150996524945778644032923253947475363847499626625587078997011362649269354948952422696228580790786972875668041121518864921736667014661090130460731373497245629713058715098131965735830951172298608096871501851732352927494657839382605491621205987785978875445625510284372516114606611423488976247512282964657815683319189165303586386785549228121085161594126124329160436354595531811021148115244647219368596235224907919251318006720276113490557102825469831602004927349707124736675019897648136587345059521095802468894535023867812665605139478442242404979945247784991948797156248956553268924444983650648914452060546587917632672386089316219903875646968875577170523664329543488355982003541775326665059422881581203782783631093209237965648719075628440310953950787107090967333573533271035468957474443233797465159053112956857972706497802955629519082489470020677142440908757368043465977221997883757763680608593217085822705877876288945586058675676372337578793047882494027042248134606082108476142566524185035377937034940936585170035230461693096332025918105712244170076023666353283319308918304648087337849129407238012177496448240039629792052573096981212784432606495407715320334880917187901973896534701235125954711823674448903329843106450941851025316284729955922675975989549218567712594843351090797863045940009134823474425688235348011159368882504912699491760920069994386946154013251485209870306331160676825189960958818770660328709485765713177397858597778067391724249197718242220450776771681434902399869425145224390257516091334957801022596473071173120882551523067213470520183717927415321388023195420163328763760237507828386713292267887388082799082601783834846519543071761667838363719794810657576983774766379195922964404683350400391374036487891290479406377210963625651120062128767655862999590406369203146660941944430627843006166095563008757160772354411237530686738319271507787197239763160429998653824071079571202615962514878699820407880209327496154180525605462338643832255544465837287616137786703253777129096506865257149731609455301993881917926301510374109004034294921532602876859251000978453223546929565093730924247716811705388328465422928680022213255457824248919626900191263069395496923601277678696318661507667195918226509323046833151126416497892616657237248464651812251349174031716006703375487353750233634602202928063402543907861612726350079649555505457555850161636158056807969218866684400843956366477127622457770569667183174537985049068097301162880328980609685933543176625254801194161080607296664228215313276042592999018172624576211666056760456642314597049872893078757186702571223456539534052442643845415696351687176166214424782907670486988446058630322241335084776685656045991438745231688951006798169083366274593117848991076246427341609721729193884895092691556745574190386799337421984682246847933532534322704791043776852077565116378293081915979629713906923053195755156983912947230973742409581969665082223318044472772064771035690839362259287517469621155579561422782547776934764834947793964333808680770049600747040475555181540666729211082463091528270830606670478692654742747819441517241149100998871625006710118562291903631146782307138240551425478563429657670879129989610845636272759503245577111780493179093325323113891286206692461057615744774901355678058300181152544056923058079902365443254613509162937823164933039372524474231711151823171603863281308832135677198431998314585963062590341480800818731958085995394317222038905032465349339855392885065930846860867029697384306348745745163224291658870646156349972562302622983967769207324801735469832947217108796675185571586940962784952379153614380327248062088524807278675518212313503243139839305528201068648310047753666913738343013795746945318548342968912731219838920667871596627043257768010601316211924937001093123225704969432166380889480922316086600292236088924642717905794662681082187837280398259201802319060227074848088157210562095876573424717643168996501121759077401274947668935566749422238021572496241339140313337582840453844693402574064011899435620875316293287325232874053146969725606263357970230730986452288588174955144524477972269885420683056638626416072155378903053703602349732732450736300820278791739263563271471776836253785664412973589983530063006382405753474297352787519004622393934057249308237851954899996774361240987871239912219281812119788403991184196366383509629560908056541860760514062919332104096187924991173784716676698979253339208274706153438264266928243567972970560320372573939095939696160626689958260752430084362967768406640621140698498573014951855972078944109003423637530507608045506449464626778006883873194346737254882219648933534770626302160536277510829845009180753552033618151253086996389027372057618970801460073350278323099134820176266372687953351727055003351023093525748828660735072334636659220831889540046258194507647541492369649628974159803238940678940723290571421222885201236478203423375397296871438995020115954380990489977075297982891294417060796890770494912257642791385118660481997600400718559034059027662053447194009844461285631901168515512586503397487499944993420364975019680029767086686938940171086288177312379702318853723585671255459792357115320326139871690626623959332765546959351593721652894829105938913994288216904659953510899852637942340880184654852217851140457313223993251264532352184418441658764831532935620627504298650014445272085958089591606813476436203827412547111567005066377330543824468283265336305691886825325455479937475911862646872465205773487026980810510190444226174074436637032517898389984004751090934863137685900235445393849636755538152323235697669207437736164138422883314981102749021279169984063048742973567686554886284382386653728731243773380512202171804964155919963482019527835594199484460704664980959560277339860572483470522340677940847253883774875714160150109483516780928088645307897412488088202521087940274650746188921522573188875173067324993794835413409884673771798083519826080083861893188755160594387448853849886228737232554381469092307460238385043395057484633830634781436063830560694097875310084475563196458891015504452842198656298590429889731272239074164765090648926057442081117016057335651622342223503754560988750510125822860117126164300725153385384989647346583618610857418830414467330234179090919841699059245327814897842114810171340384931339302019837344840345948396450728913244391537477680109430942214760210887470969010020193897466400043890690697903384943612910383430495319241437206911815655357817652476152892088770294096338420712254481137440569106020297159984580723777927199629410297491999897230732274774268149380085085672549655031901409323324886747264791479185977176393799087134926814797801733202551715481354220039233667803406347127774008833307692805607217344471252682099291999236440597084507983934455007429634270401087307928199637495601339757975651489619610668813235019179758530129593872486692463205157074241937193977002381637956254979124956952369349572803509686474304796862535133064116805933914650577437700554646375625777110603868785790574752208684558834557288522496325942927917685816320183397783106525208322696817024153008495632013125084018340676618354619974079301141212590655383237111398450057599099686604818047192439247693699398898107708059130329443298820413240030470087147355037211035475365852905223973431851301522969567951944001211551999247547271009116620978585639998688115540648918776943513985520182837924484310480490709856852044712467868316298321846490348844156388877147311594184493602439552024347511399604061097313840019881106741147400109688984799406567548079087000591840522271758105980738572625738441744704116744759820774500724396396913795364864858717092033536213005125818133419176771046082155557817099143611503683606122159635653470071684989461229880178831137678904485617671056447489766477993098048087953635841453624523908267615163738243992042424017635127414363723177273424946191959089624470250801375125344624108980505843373040124492600749626240571484634466566959182162266956591145226874057360901575121278250605277583176814682271472580875099320033646209598698588446101888339238593548979984689815181656576878083924782104552663933277960313202772482326127843600510608659897629784086925025334223804831332633520537613096934387784433608683252474166024957026096790175949577034275332798044851115258364111816744369002233790871927900750198645797805131607568567612995013297228394449668909178453289831818818402950795746151071575965187313032058477556690653480935930480276771463190784164611442208139820873987750936988817010732127556069053228720521422927303304681694133025946185938977263228349905797385248397000699005395298902956147371808219064791454749494483884210426725692569245531648542143735825912228245386752508854389711919272389450945666421037220401292657674725327772358288310822636446542861546365744823285671118471426303930318092514522541435896806584086112280777312606892213665212056577902874905712390630238730922378729798021600897049474215102197448871531757729976331733480232222686989113502307023253987034687287138267720490775642848719517369143212080234485581495426451054971957120984600692085495974444241718056467970157228033517428079063601784925273734816303664999601601275145919051054376502835664565111041703467738619812915877220448312208033189754025957942385897684389713722635228637276979678298859252530602681254756556005063040028012748781705439109868698126886643781101700486279167342563050458603414918724702969166631278402562786556461496902666178299483380127166751072656873809834115502489385065511654465831829765728223764769470268252691260935252986231930592134353440713572076913418209285229526913592069459301096597139346374508558515348943005355371281550219224205341602192140543743371687429924227591527260515331191587471425343378504774989164604968993833949863446344926478430083731012843454392967672160453331176388664725042730070084770207757229548095279733900728237006930825945117922858200964450364875773666056506561631798441573604136897006409817166374525980503251108989314312675494317885074677183993156306620755315494493138089733294799383786067573749203244303758032369014878223533195277515578076992356272814655936189717629332008079825435191436514732491867565109211815559391853288194747644173102918220059785596924313816976412059172949450610598683400580997495947423217715051864983423471772151876464510439288787953344546927209000480642479584994758268619241715536588763314242923461973695749434016820682467341036489605107113137032190397451091834313896825840637951349553435572163588753685757829365943139235157116806494622990652695164136557732590884667823410477730862468057545439431134371890687296448795476907203785121207934211783967870095999440251943005812742643613528622258255654556861874679212166521199978559866376219943281622619167749736377512152328711607746693147859858334384911710442601627660643220568194491167314438386852095990977776066559961685692045223150671563933503196128477985555329592041998845211984184578195358992746074523429093039263155201983238113040725899138087398196296834279150706949890691992177827883318331898881301460168430889216347003653695103337066165951679405381260620179343551971291484689599305528616258971203244670823455583645497359448273130025920720506517687141283441875755455521928021159907498209026303649838518383612610342409496509607992770027480155653420815317318978135519205323109775357062812206288575297515946038357463140436922973944566476624103276338116704626346474462380309088379561662381712485092762037386781678250797999864126584780680329782371401833916081161276909596409068487151882728787809548773351252130280400479304177379774131652355523636989317879316108025500470776961730314505140414328081088756749153161868222741628229503542304920799172436586147747804548104627514818967061207678528457853286441843292839898264731127563444469140636320722018669898846547931344360698032358042946238582449581193001205362983263516800283262267836764881095958701524167783229436449872449851247353993413335305619382826088877111332727316809556135310540919769238323281763286678252459303554583312718436351602334193220642042156458097720243358437780316850927118099511848990469966762441411370183696779147992097583221176621390854060838637508664319148814929789018123847480526561774207358870809470187405459112086575273159434875224229963418049019061090912875373440245656368668789377039220098195587151650816021605649411142946947438289332596808290025031274944343792870120302199127793005673972719632944618905108993133404560318154869570818356208469831843077234503995835637733027403142293606170766068285527193681282433211001276461534179039585558574961724966532898132414113425717599667825415206756451359510712244835810920893121439652962474423047848377252544405009649989593275705087480504537228048315928834763986198036654014005505148386479919762079241872076816279400837609013575723184404837696470723841533456601522668215435145090137433457528643961551021630429807107678900020178746273289546757678706334750457094528442846251993493881174268347145990615962251434290743207297109239254786911713793412406532402887178375151326063131132466873675387829269035117821421320535313514019800845434191898606710336658912419032084384852112049676067195848201336849022353150187630776836719654879102944338014011822260638662871408254713663883139927942268134196545739164404002112124749427068295164186995810234493602313840048675792543786513638042714176523559005394027512632575880251917184125684987385805908800883751280787337931769111498399836167655392741640476439485730080856297343316196078986172067628805551681323252594036862687339320017532349944851266785973940068172150430495088963861217566115645217773163549721929350191928901433091620800948108402352082617985095387312580084313672196845426661449781193991826318255349411974038146552963519321911207119879818578799483611581306968927452955432555414629304535005484285869154911706918572763485329554472133911998583924453009117306447451994516274238377729732111826951265725700533377233578420661444662564319819902008621168353246731799162428296330406838095702164057063932967622599236383264162451037085553565491853185331597690972339090121192299941456208341683424834587173000491344214245956392556165829181198740684666982676007088211774342502746886382251470393096970221616817981072104959351111773799550860736524367266843112312600438868092325526622922770646625064735439417654563080568496708539943479457109634658267789145336939751149448509195303920307120796391723940395886499415271199704191109822328766872424288119406500097276551127727376514996489103339121864684666503031022577808019265089864677436108291988066011489824885871720733371587285519916526075673537155515227146637453874396982454537515244024394947424926821189103128369245957631695730225757910412705637332154745159088682422484927341054356074336988985957004281645320863344218963171111561809843867294826020650252279381203337547362545938256642307780530470420051659792837998279146069285178811731093392551259561908282485830225805379981569816445352756053785684143605535440633553092033230411603463332101205100510084567554688859814253234633947123429569582511016206544431458778885543843948498634484158291276642243906320446170805680576033645099701298821616099126914115490821060034334282130989629259318037290385683474353704421326101152601576389232681398771737321380820573586236822796570685888814404309150781715016232777604437378450901494788033978095793821598015921894195544725895210993638360108897838934688179324312618555233324500759700130932711049750601396388073070907166234269999209586797460143102570918422043251729791269782394969818605167869989768057039513363362018557583919468076155745149377271643350292201388313371041716187039797717192633400265286062913271622231146112539692099637046402292955496745956832381850761214892980071963873516981077272427338764262341413477702988384699829206018305257478315000281803456723394481163986493242309570018197228467954623319722626041027938995286112603313371294184000603830095855254069709439409122237399304084041613074291739132034926413067096813711227957038877186193805618814064497344975503935557854154294589025761162198016157537379612437637149350812232705969787388040313588101248543777737098987231371560250107367061286238603207743639382475246325205752958945267726233124845532640675331421555106325708268346457032189259579247808330349215512294725300029665097193766110445763804075166001655149726146350208999743878439094880380716404909571915984330494042741998299481523858472381136796932994126260745027447584654427298547050501760682559920746939222214723105055950058921037154370217502525790070294318623628514970418784396364223175049617581395784356282412931006735083171253796850474188573453771008402314772554396883431769047374436252650031791879832198077594012155706665390353545939147266301662643713576299748834028401296339447941203379795168323250382258835070320584992226950385686897250468917374204750602617720222765985416253290872143659797995065810928686893408352252914827357065237117511137310638844452321227178859838002715710726112189126819789612651381623237940864211121596668273634541453039752705922171627511446297455194552888907324567505384864013162256357570577370197336652945719970774894437520233658967431270655867017274985711559107062515752251299406975690239167189132367328055592058653773316200219314790940774282383237260500364713577707405903726612574068631405390939547609730780839605106819890054525229488748652542702183075359138909451678739475462987262250586785780529074855983926294841093718064038254988724715006082714934666776150103816703353717487378266709202787740381717654000954666829014788268336805525330314543803249759328283810236651963935874556170123111616046696895428619881420013485667885271603656880604607989580722642454254379690074115642328058049261421815520867978270461250367242835397513426783750957340841750761462907584952015961308332227216812075736006623141411970774417534993912304753159355111239815100696806632482051876289601288909263210139920693066257109084458933565204914412392201610660111941886065076464245409189478955240829666709856889981698495029358878598254111050204870792040571543595913802887939268724539236552011294139224843901150005487107777404239459494921721226177161132364144287196712571380492023830460876948375262222086936748721330792971684381602401442731332436467185880881324027639266190175379845330199057212096957029262168744769951678102790826055641447882223974697962874194530698030985825708985652040685989282839167675110904606034061696313504485361579033482344990448510820120644347819382408647194570784977381409568769365737034438106978086180804506798296950577439742784745092592488549490812074311471764073938286471057261021455978773428317895162906710382245739958698393306585346793006220144104956144488419032554454183630767118718051228225925943109172763166106956423748197959729534552791649971408195904142857631978381740757563980563139897059397123133516649399992651340315267102236448884811074277909364075125533523585677879943437194825259174341007813056708485283839662982945494902818458798457022975233183379150952566118186200534204123838816746112773879762140075637213371940921247458559381039464397426636275358096478901103442214662804606943441958955338900649489517926005551426933497076787428029154890944409622577148989013686232711927578236406104486483306482461969872939128083000397338210301280810813271315363216447094571027581738032664239017475055194283756803216880713903730007916406132649398597611106645214094932792901742726009842270908246960436109812508326216702518131295966859638529621968821173760697722663607317662679868361620797656337195654233274545428150384882665441696782634012301202875995683726615249233613995259934069226196737828803636782128941223952664276584566736386306879075627266892968432197234917861792297989223528185313163635143450631010359020686703801779962266608308276341032266806016332866164182829580219814945777774912380828926979452426794348363893513573693302320390470090623001269439072426461748388597235454062349647794196848810343395009499212093823746397322985096900787044166136457704815551362658875964017739242712281845002422006922128114813013258861479209578061556780777766139343047912538710466605391495996077649162044475029522587177928883955844184206481626444114314462133936463082705435601672437814446536906480374278278352508708845416502919091510311987242132603961085907557469767198553052978755234225970130766885571745974892604408080171017765444103086432746918041123290391935835136546785107435982184485162280927196422455270474998025937150785364247819786476921870643288682925642930434229261539453606930328068562954750640641842121064731054782757887686405576737830185901309793707924111008251884913146148348758835119731377031112959007631500790745407044786999223249946704926632000718609519664076188599014829597580703967289616024055304348152272810965000483572378815414084024358215550305678940410999474283032879776746693872978299138467273117145669210625329736748379630370003264773223740562594839482989215338366560326524408957749846926661036625901208883400863767829711717848566200370815419313514386262017760617041121476265925871393006573207632927623209963371347395057715489936720895216211931065050714282690203499134691501409913080137909972496645233756742512325409250547440976515696998406622854820560959390267782758241398668570627884960126273581201705780928267238606055795061192606127943494223739464946520093344227875553886553210055203471939426694751211723187330219498918596673581901203419415821843655904748598337142868623056868594020154459504829504220535991425019418717405378441507402539896369584137111113072829945051400357947379403225255210999478503951893135687540662885816566847346086488362195081588513860549643438302337161073713324231244751373754527474672599603078065883593220880659021572689353899866101179661305963371446343470999001313192875939607898535724537988285594194286045735565392176252905317783144392688663322539561232314743761984251246434208920057215969739012943805516943825863878536383149368541783724865003170571527671628248534126067577062200270440566151600643798869602678814468929349787534276566443462171113984343379920675179735963459529459567418767220365936655105794408787619193995672498200519742990457843822237038693027569247849123391190773656339123278237120558892221018672848879057377390307356128808134594476738759147256784300130494114754817252029820415548482809356518942150262957595407990155083800138318597321596443721490323465587735865401575007885138528825862401809842279101696142467452857920841765709262864192280813286254485874969746085170656436363451175878273640588262968322768025787963583666804922825375403561945687589417000040723279337644076151869246042664615175008748398764340128499490959281183133809689664859285888670797720822102950364488180685983630625627783531319819463495735053048901881593268201652018517765084612712071535769206204241141570288805769188981923938152268235001711281473874330084791995456173416445794798782556148047381118425131334176801131285581652922905677978542037370604531256988381597891768925537797813487465216464537217071661568029576913948329856510610787575147488869750227879147242413913101848910823504176081998594448402370698150220387620884019715000362658045784926510252579591690819116765550791158489056890839688557267744391143667190942660177460621518773186359610187287423536309544230932159368861833559919651811227986847196940311437517831829202259186128424327020309671272576432563508655089940976762581100225620306072745389295244022127618950914826118504713957645539828595067777898203030042245792068523112860303843345201687385355387966159201787581243718645095948370938949948418013721350669354202774890785947639216378618488833466620549169649303802029717263229986442987726145889146518058434806953859210697420012857567755488903367030000122624610278775832180915523052137763825805023393156903261665978576794463244318555566420322737915755044442826152735395008491415184084550769702292993005409982474679141223297334264768023503468559233085394646769542970833304758976486338098289695193088800043651152138971483081288502040188717882331288597312335110609318794948817661944885742645853115229146574383159743259616992474395954069026061328730807714544710600211047027749444430516697285389584966017261644420421758703918602076729596915936808171510401303938597690373977478465086453869973243765155364823169921271453176792989305151121725745212299083488156396576748471821540343884791103527931568101457548193286435572744330670146826152826307722738945285152356814044662080121336405509197529821241284843576960846466277150180612397568781123129577763205634133536966654780580045814430146943622166453491555855363100699549952588172185225895393169254869922639600016284454623635165899503442077663751069938817119996863919624903171337823709213853649048713280236734396545069477909899138759086845438875909127228035914144224145735474964147808560373808289873094385447573256155566243297683123941451438051382906780418955240300545374383595844848692930204129038202855229162346738233583998460074691603121171384504447196685076301313350665555384581252457259803540810827990117288084729115829260517394919071250118580934604529520529946377668363621246130722449907205409862152342773306084917740044746694850472096382408568416440103327158237973944675748321458727352821768269154664719933165399663381682539591851469721080131396228452194717622732620224389886477595193789455041511467035814972313552308628527056401142508028591649943547529748021962143689858592741001414684338317726622874085945706526377298765256630409343523749834809781140150283991203197340021935233817306772196961403267029977685166361708843272709128317442201336035684659695531624252691336811203936195795089877412168859186639143209589883869975402289515982869485976295522867714816089191371552155835873407081548479341838258944173810219774411589700544571466990119547875362359216674130350404401729410148809621889482262806247116064733051740015125729036369366738131765262046040810701884704852351291947537355205694868802820284967824880627044249359489665288071138361088974760217042087627087131526064056590595199122987194735039049746355146430676618511784357969750162480269637100204559789038024334101799569487932239894937167538941011304411663824596937423090434643200347803430251754506306989688458423133768580306358853619674225700534732810420756542609599081005762085200315554043357271212085017816176877734685299247530025120958434555219316061997534019758253303539364098215107897405031622503548663842591121177737884540830531132438851652687466467921498514489151341142560413938982718258124032289708024367091382390345315400770498808009612721879055325947931468334923368283329600057556934596625060231493880848125638511536812531876417771302180596801559991755734159848591212075261825124032142322403497225744661208004858701099407343583017501039463883628942671959872302219094681210184742948711569821763934337650435562547213573778256986749792208465917509040182739349860124179521463921281992320796004332934122447512647316548558113548369019469386145788448802435005645920462144175692565438303630409292896172592663102682029699968137057784548772170655000935795907295149307329881680039842827847672375092117709625649399647280929821839182303104322680688496968698188684994456700887411036073082227412838787764776947585720032166516455546806541175716673162227431760032863996891793566291770098586934876867079054527452575474301662782632072350082212378301085248409970422570181867923853861496389555779354505922462923984204510483322467201515075594578199993722712946098985491612871535599604714512015174463902559594665887870083890510214280325375239560406978789357812498701773881532162057423860160825880222854047168065410926826714521359393584095520828890077814742300250479233552028039888472504942290278085025117020696259145140630145159576744564993713645192487810308816488995318820413004456015091208925466479330883806089901484057045377413643033040838365458260664413876415618289780628527650980648622677675941648509440655957826904269589164034307623850683866514997776615454129326402401757923922886879378134939541801933130413911557043977058298551942453874689741120570686623291993504010667678403956919441788911369411964087959614223019938865801761511896158814488965518547172215336641632831391149855790611447762718993065953288852585772604286275499466176295500912143766175016239876406717633706185517142713577398301404891270856269918383776371845751236704415871385365643589392418960724153810079205919709941057858730300230348307572436735237060791833188788234507508297369485088119490473693885395423024802264332967251763355421798579880805729333261623522347719085931467598900065691087412390869110844303100605037320773190226739660743550937256179992273077086668446669793455493809579529873855649416972216660671886076576800782665621257448607811465941668081239638283792229578273062607431237576983618522659578777912470895691151027795975237174517215196793954305458602869188890076775690253762201636404733692094265387244978542148493694290503449990365613020793158374506828919339652349525135389707259715933489638818608550899804890217082157707756569736023130577903875888934732711235826344221694679123974734550410938489122941700994293706615364922980375897282217539104542130167097241096573765866540477358234278165300573027019623907632396112653723168376786362156456881917613812217678778651595921683847443685168667740764672110544598337630667679925903593732693623087328617149754742130507270395413569168669120767312783246113088546393383542527715411841110358705530565812478565921404698225531838661903818264561461709428070607684163973650316291044372114023240543754999777085423592818251556867068940630456355175513515142654502182136783106577091003349156056379234808713482066215290894011785056328971397338024573820962113399810587406594731363643072725419182044593152222335742001998922728677999265412850485656985054858281045933222119969409573698412245794947359738021700179037021245642568860654551834020444651725938118324916600031696711729368157243203028534253842984439998230466346442831734664342875672701530514417871537567154422217773004931622366740385548209971997102677254331493823856394596467181222588841925805310071956940529169481778065446502492757565808115325955053637558051569781836677637618863590071773298536691951621177906290153935515512380283193852455377605747655155033128889974816475541153326101442601531685101841463487501910882939931546995517934521574226472647936393736234046050424429939661009729445642641821724000830959161318877120253518325476717011927789829290065203749281403934116937194718506483532783954788874595148450155821639964712497614345569489072491151451721116145980900935623960573787053909770965360321878298188034861974313962179016685410626642945559952680498382962799847854239548969368181474477023781041347480585764794988004335702568918191594691314894357258148920722052600684109869323134869071828373527739298353589776539807344221171939066338246608941723038023043775453648601391688400366825891750672329832555599598919546912733995236932639907363629778017271568851720290580566718007653993281124679677668627171934211279026364307186221962674204275238472626092403892772127813008327303854088770522994518996418696175002815036253955373801123887305879237443895188105940065931650162753717968332118596246981003803068596217249726109794035471938884662132621559801279568317357923537153166151423516132430823193385788114547374968605759576237589692828329670196872742607706534134817435208662546743364932936978618611185952367841937321726244471053033720841255200295990179259561266458024615856613696554322330920750990086238231176433144897195422932533776259696924853783670740653709921523117322123230979580101100032376241455110275145367240632675683113549174163188613287360107058887431793435315921596628683207465381424565628775654512503411478895466800016321507295022157289208478895491632763101639237077936367144580370638041143139046752443391536264000663879396656098940429705801905897565552009783175320267552740540808275969728377171995260001843118594513635770781011022336760368099595648445635015951563964747174364793069259241320151400140582824347113121590926689057808034871137426680426926586994245438021606451640446757517595339135602124508082917500473557123651870863910709104349905793020456039975956424735838979125507071939851719949194240108025546335583799434209287485556653289693251616867447181058128848035220204045880698124874201371688840846595702360333518747736366830876509954811783286748573963690668698543161614330057844526653848542555953036346363813907042518791944011031507306802928497159685989888722469535872158345250965806011772725710127667634933235204008966646368050762163459276422361189074615120950001912064896828533867940175708194883672183908558903947668492473949709278386707757067958581004900111347069366415018312397061393978268306111975439599305183643758327450775668029204273635035632078173692246285761305385250835359707821670069891970040628397833309261808121094946900081547532600969944926631139818336957030573064233018811282288812881253950526506119416660179366241559132035325477188736972143230884242777259382855197427573170378759108398886202041017297258172412438719753773979120972998329764039152781609505966246587675519215607443020064972923268151030098814871074412643064495141162534974960007998761479052568776455016018952760534211679357376989303896176066841493775515407354834894485450773582200061072538143853488071870859145496097256205050452930871623992892936216922532121436845599261836488708879494547584683457946862058202269051517913401276264369028051404369575606452361964034159138516885896483023232143704852294441945378027950234023819078580050776781539873662325007294493778059493571861547307446421132932311434519658653763904318188542005235630928198220197856773760647395540314361861578225944127325081338029190415193576687390998967436508280260844026895650433614368520823714802876993325609113249950867311383529983593374621674871581260799379123643412466959281574051538396169445299228467348021569743983323879601487070379049584613931799332159936324072811858407837966749602713666827480747236787547116177718921528717612840274732693899346393226462478357682171395152190204625088746933289461107810688058099258135855114639862955588245484806972164309371732839862777507057437484808055607322857650462244487781555609760910108468639414570065378831875620356497409746160888636254480582210812128192058224908904605705187171805814757274412305049913507447248083876566159840385303293329558815279723694596141199625347323308789514727054770243128290287375375618567685473039739062234102392339602843803655033630576416893148863018857248032989604063528261177447473986075235303936015190009003546170235327222270331834324720566589341402006998429194499004747026138449207193555816044664989993887233371540420207743827668640922910792721933570768411280288565797285609700983867759239589465997167974573512111591948679775121875901351435273039037449004285347543012504018120002565123504997957521341948748843254731299417938582115599457976084402690807194630856080699829707673863688052557083939567384771589840793966182070238135049408543012875434364608028992638088078096895426923353696060649463405491714180863816804896036009027124257700351984980330958323772372997048828969903505515601789773896669858141598297640185059759796794282739662241844339663840533281548773846465648893925230916939304531935577255828303779644396519867337702259028262312060509550138700013818245133432410664784847497511718861703890170266621872230162686813604526342822690442482779375787953140785277917959125462845145711490829602052720947701475569148392532069608735850938920749582044626461674461298788410746311050679886913888924139278675478179020733618561484476319089114002606698354779412864574156164541170885507738013495802413775352663824371874629890173772900155142193264258943015840159620187684584494379248655819530219516153791181735513721554621275070998899502754078289333861975018331879521579521770849996554359123308861616825301649442168708170201919445515464526156446889507912783248033010491831720054900129892042920649655574677971692772260684268188375851509098151588472694737347912222540305129589917473329869089759754622819966518325847151910168015519914735822509757480101645015046665177708015232825304004116008347432377908827296620856278592022546625962048489438971083487584361955605137514058031967944128619078875028211397476135554011208863552989880166662495402059896011632931486788941947940828838845779178997110551942264873305209608899303057023692056366612143873235407406228743644112200862427247748857181796691965895529626270956036850272595557159133813606035737345233043702401070504538125426404635026470558855454517979655719837766616005323069586355678903975938321325987440793055555489830374999554453023222757224186804038946823481463945248858768551076777021058385229315870990312361489251217560774785722752906384007283207280798594633607623369024759414769979706668525525709293445052381760052307237110663357366374499652051719251277344129578056006182387715584709569037574388948850690298062681295036857933094974573557674659970090530113169133180913606837245337888681866017429705485248779738804878342697864962330606340277517653987800055833636362336707378884973290939873687656413951619786690822728339235885547419790916988644970438245553072549126315219642525676439402274798101232826458212477771098862101785393709607375689951445715640718785316630778822819760557236517062365517860514396293254103158806348968883306719550062738613444472381881718206212671580371196229445421591000857899207923880636913460723235611060700047360706536608254360554529201477884714524140724184140780658424527176851110023675540403491343352397650347050338343620271163260843485051927357757739011060614876908788584512535353993380797940172223579324104931154036101287073766341285347087274263325071987283237964639657213410392863807327137515269311881880018193334612956101850232708328502034202047071570129472378134026457269192804670172124672933913096054003243221857179085110783285814827689110102098309859573446285186705716775705200358973890636876515298791695133812173774034596681929883353038152096609494037157547357050560871897880432058141768946774452143593412668518611035967935666959425776692927017230468152155791100244612609642711765022356476944462813122902093968149938180925260864537850539872181454362885443183539507576093674995027234523692138116774828917605463873050455085212563894078073884883896562050921875054381767043015349939071223451451883300311775996488383645621731471192751407503034998829481288279835713506253600283883901481720256300219100234392432192826148447616342021750381500711554527697993021773200552645924313820856957752846080440623446644711521348055695639279773493007822962295297148762754979733451197656124303921421852591645327411177457459994945503591080705202630674128384496298476156128981406817438120899396733331661418619292181969435466361242303124737205166802528659550479150063780167767210748871738785859071264844010389258588207215522767469855197256895984580997352337273349083046230419052763702702467222356295170693459545558386955583008871861585898326805705491413861303849216764470723910894307264959167292564371696810820452919582773266108672119163030988356925641052237764267223843658497571552789115013749906258388128951108446140030244694502667641074499781005930300241034412471869992729563443520864701026192421992520885026114714963227375423721954665242676269629770505694840739162124963776528996612968216233041190518060687929070341256283368430955237919961156477624899984607372224597884272306153440232607721242038712766282569567768788766380697044686868350625952353301055716058226791332260019731375674457156717818305558634830281408538146581254074325612071438623532338060428214379504225550968878355002717492578816713635301420411670391250575001610118132549991899146114609883852202109688958522601149472525289830820548105583299253251951109548760118075623406191981984511399929627720658452179483892011243987134349504620938172864975084600232628287834132744194089913349416040497796085709950855189952415970263765197474588137690088068437906246086541463598483675486198037676647883371923875961542036082482442874861328307096412364203229592755702361758663842065275639008764167350811147628755646441325288389585732101823340052964974553353255963265767065638224742825287912813660948040124493285430916675530795800231594765668246015570473225353338799007065954817147168519548671719064045214987686906638857802466473859486980903689451913171853296207812338679423989885585029126073899737602206405481204631784598428256361278600239274109558990812040727616830521448736679477235622547868981669854964646142563100320387476259464348672777547046196122848186901627830745223495096264375331826732930317985254003052525367057605049901801084777787686555523065937807696253498066390692533109177484048795256221864159253717424261428853266537822303442146167102675971922286681628037490952851531805454769474834842027106712277520888850926984238199723076562916805313006606626708823637795075520144452265079767648134840375157392771025127612418389104172571173920730370727145427950318047095862669736141624846438960028799174547144137174374240516472804756327845738113072721482637473661417710502162985752304944137127399744963551716335775590388739138182560954888282104690380510206278088907991587891630785222483881621757536931764620443289790464766680610412998315704715140525269860394803646648732089565029813858791249051642680163837205511931364937580188202709395124867924184486134991066601630650524699663955964550666124441873166247923991204421079680799300380438751223277432037436333829165994493878163049373963008713818983541602339421448095715146693045456239753759306868183799967778983275344187641784897622361058824827854906580457962889757575746478837448324680623529398664333881348732615897263380973781451158727447921147610601993079717810793292772711422338865646764640828371572946689601010615326861321348744276525845946570324879376514139120493184047808906311802545395498704214103531375724086765372775714476738243005746745621679977454127946675781473303231100284582213218989288356453896689046123870383679421310068754265764398539853112359728398916020642562715592699868183843189680758064983364163443419368402816468562937750836067294614321803298050460784220003625604218218699923662574616522412903040299049086526156737159344391763475889798853942580358665330333099101840337752506277371773441247486072482617015870915496714193893633467441547718662388394587212895168424047138700086241306937986361157842561464935771544089972974312901633873521107582433841963121066566218197617940365431790527476413631861078284396827307390955189402383873584491313290017738431931721595505837575889136744105486131633718180607150056529322073306854091688316043024145422887464503481784584946388318574576065912923604698342868953856143669990820101881225701874628522163368569503115277203854875049142870042521031621119297272141720687234400230510374909291342980322567737589236658808416571305307024625625211126298987549906916658642156997253764055457565320184675718981295891485638093624617606892087904244523153527776074334587509039684519774572559888334004192213234610047861428195819562960772671518164630132007286791913624817488189051590396803293683171022833311597613343592765181767175810692294131701778763660340462651697215008581838170921193862568751925775022462421697529926780665399885655045591760396596578971408530975301939478440673105939544521581669038120467190889387695870724167499440113240159496579767174679675672906848386314667096472701925788581666683023326990089939982574366496051187241751940113983266855991838109843848044999856330747353257726147948041652518116839391326350554698342875233787291236521705222801006471435771476308117897893476204575740771120060398153428857156769253398033988713851117932907418687883422236292212426330499405612566984529938779755662817980733353169382344867415205592558347444986943781579651002899424724884007124159853941055808957159027701874123814916954603429210394157969723932848093566771407426889954554520286788116168321094631167998391161698875726911265095850639087719707293020961898480232434865471574035225774241749434308154103572104851765295388418461457683794447561152138367749517181448844697376143582030014090098585932325132626455957005765513589840517752187690543722707605811546165540208239547712311848923949860819673038507096872170135783708780342487210130757993907990774034512956941342194383504658726179150752152210237963768763242043457810274258988886819481066010988197010509400749173734596358044039616723917908661194280670469754951135165645403011803211089385069383352736615490492655227243656971411767693629744572622195588583014822655712004346809847881671395446121541545508293493787358392267291766896159773306884959042048031646135966689604751835228068265363863691169474681005806233078570713347437431138111980439461939248947453354118347343840781318462469969252034750567297453264695481789876177106826221404445193350867699919567441411018113252453576082795733713072673847673661261967295347288145876092031735854239646954745762917036176383482736774869714583570074492937266980185219281178629494626120336854885678217797244558220306184430941358541756128998020310284333462691191626947729415785223624088063244297145233045151301568300010364131317015479429403921275464912667583653337512538885180440761266526690403271042712728756095470274372734212963553585277215070676079546732500833415553294915410527189094683639329969191231017957341660417228573400531279876205054077897106082059894016582757105770811976484419944145323891994465953313897132359061296770421334618833328615207678047095860169326510966575719812563415867686365177477191975257209593773747341202032506214872775641342552239746128878594123070760418675629209091984584392609857023023397510010508428476361877993547750163786441489551906923568115521371294235544293630270264313204580539679296968488335242326317993752359262093567995926427082012710134155665336383954901327324817208687626687737410752858525649783095021188994782613128190103988650777830503596910672899466263849504357426567789898968673844009226683888579330968776401100858313230076703496661538422528309416172665063005125266559224958184720495025833101879620907314798850585151731450494058484065642465329545770547888417150297214582120162092069885594570206913218480706215546311434710562024173215135702067803672779481845233013604507467331308751630439130834707158851028189504976194000985380674023077107154454946036695410372173802132066023816222235442494956349133174357426111459045400112248227948241509177503555540489080814361860520013570105113232362848684091230415460132196259373820929109616648765065305642667627605295609764680950125178205644329215508857781865185269356316832246925535321351711399486634778924196889795967215609164913858159789886334718377263355918331604283737811490831591781192419969294555839267278112266721809422014810597278195051867455057434100115450688403323684151989310305861619317244501742966494888418073101544647489208178688311506841724077526186057037988129709676871256901428190711019378665695560798582237634124520072341071955468843726551266566509853942073450353895847863096965576064573801771538246589679323905443465116377504928130682757340822415679020262135899391814722233938978804047613412773582182216657972141976932993263673764578827589967256348726679930423470227210324305752149630275303467022983500397872184146239640541557990082759402175335757393943548159103346313011182496808360003924202204370862638109215057501806742091705986148146843376611556309784715969235283284129118644727632922922113446107071729574994104659877979805248547994773192024110072661354902530638125915528223773759816438755971264338885709332646398771260703653887832417575620723630428879399455573658711161515118946657521361907254310527581664455996320618881696745327825073550198321217234655190928131551171634434006556008498013069126047068526653423783563748513472594871390217994969742340019697097621847423349217249959438248283285115833358703525193223825529320133235079395055294103163272128720541424298355444316369669727008551772781433865809018533194646892106235231658286536920492672098283674807457111081394224342573239513583083939408765160024239367836429815966669415077608565762668013254590647422002272020623520951232780891233742757919281881317056332673265998200812455933317334591993648807544885093861744359504596027465072099826557308763570071485933519134852408583644862535114672882103826341826179931955352418380693545585065088492646292794783616455301947888855365796459490024388713315223812324993174955905794937952987805988904904017494271599676346354846580364994402757289209921032766109527646608905028281684994941617479528390773854076242077063280080607031818094384103130468708811788043450156967586282599895368694701812945156599811187828171650420354596339018186407199454494968830588571852374481468571023529487052041632801081939432455579972198347807285642411825681856397283683880500188277184226378033770334631499685279424418026581933739284061100720994172885403762643108041023118804299636508205828156262666850382677181695678119149042859219195368835025156463473922788690123964884231772784490488519422824767190440326166816462483994604733801070305433145325236496257052904053880919394281630367130641537713251419052946235392762478657813582685539986219455230526825447265939853149763293763703577600108839176922713471771625752909746906270922025576657834673844920654507220167995516788615830551382651599920821084249197793455442595814185386738682265540278248881414012109643693421078672146113876890358374886899517778854375587150201956009162339041788205285734662358000719407750115688694893628348182444374498544304664773163846328002057262004709731098045923446565822857395139543641820355172106880825711667819499868873077665096867757133687822084707979996167320496999419562449684610090781677159021296731001832233505121397268200868766859021566773646792469426341974124296252036145024109449799353552525902193736682772346970352113556574844706086661726870022822865008997645248310802901635215405789759434901082074134752434258574728713024481403326753352231608718334114925419767795788652530147131552932697287697864077556300462396902095588998668964439842387548153656027142984940279584894505203448027676313838745663019594735896725106639743477095493542095177065096300608976227930230978110927141562714010713125039491369553488205424200761707901279331282788609402740632418762874477054323390155225057467036438243471973596208635542322424031860265526937371366590404433214667365205334539051066500864037472188709496652113731699348750715662506397369732981020283969593997056139156879214732238040366190787709057634576240324629495192795355548357598375675936357347324890112974160278671545571951911748673032629205093716758623595002365082181497856722561433631212387446691982030396967109310299608398467414621399245967310743057428286125440982306573605392923568341689749790701594178350468174482452966640108296044589827682026913952909322116926611872169422435804133692958221832112060455184842104175622935214589388603940593792451637981768172523107178657748676511989416846146233557731794679016930121080851860856872861636884778211090841406857272254040235364082063946976455588522413124068821574777995918821601445890329963667573188425959194733034209463551318566172175862925544362896879599686614089275711217214796677007817550739554888847991502785967459128385792117202001179505440254365544629087263520119688141219628273087477693998018662151945660171433615183751207524899795002797975980173073397590019175593254095631834625905235643604897378691903993854538583796626137960927784128894078484090020217199541011400722025243482205177988878570144843631630113411104664361884159724951720184155493374179950631947755639439987382266611291585338974390701763094328822481619268355396274578220599910087093822305018798798746430535651372240599260730550726932221630414147649139011932778815385191457622625842407561508727697289985418770682414517027513768761199635073088659218426809063526320157024101496522793800065875790317930365364702879884205372952803998459380748134024123132341147885411434187407679461856383109770905462229613504348863589838171970854168250342036040868631828393475153012126161953438398065280469193667839028275489912479518554104496085379576918433041980994417285579143121883531504899993765324841665956374466703264292324718477371293012264303206203407213804996903555649761689551467514949186580993205905365681330240890813836327245312790492008354967379905457347517962730031229545472976103109944303427702959960672226187693770309117061967036604211751745532277131622458815632249363843127381404335424996963711664868297784697371901084739140408446056467614326921528125232625289317325057529794425033182478021683542952337142181120926937439681069623183890934730262569737954368339038572170416295013306931235732442036282690778553525863548678022294064266724461395935225165102964675931400694982445178257015384206004120734661352227412375998091432708462395164246648307193575909776765022279050543273049020522083461824325126065474053561688025732650418375817214850686989497073605169430513661452002107445893690676761288377948645710579655849252219063835999491569771910758943454536608130663096805817004846743357717473619921081514539671698142239437205291338736188503291473009101827192586722777278110048812811142904069088191863116188176397161954530344939712542968292550303374629827935651025705510165662002132300702797666030218315723149228543209220678495631752810020898434975719006495837954510050146223400386308605299579002084129619803182470605850186699198815833252928892393213000806830363835412808934948428681938702960367940982669436729824816750434446849829414478764802257938016941947496821389942399171767497702102074259103954107858427721661998472010526473191171316544066460999798422006893657340539099198859356830855896636736066102406389867365462541352394650827431005884422110832128599294171092211044833581253186327688940827823394945678947540943508966474072899803741089578405183933273298950910043463884934960093558745556979470146789129514253920242405125394527966703488210914117019934061110636965711967153124342246886403943590176955809381578716706701023984672153470974763392772092978551998390524236984171585438226634749041820565096745598656236137389207273104539192252734177751690557749974178131832649754892542526758047201012738137099102690252240014442270938440102071757303788740426758793996404661369762016124104211255598841505170526076845328806988903396299485577735770029054443982735670022215668918880515297365980080227819760598379614237443655823608575121259635421074556386438088468315073841359830256117913120143596746142206517329958327272725115423553284882515065924245501864382503721887084212850296243064791906953600773952278820392116787132565448297077082851822493702819513413817103155275481216095517585784454337730906069267574067731846801739760033641182130049795219351518185529321959141306568381349342603922196943201706320455842935844600496471415970936963270448571357587261699702472416691627475484746570200954964008751396676326385221645273588714316350664208053991315626852385668274970007490455677501293125193544418515300547414345750098057662243396470099521778510557368256202643504879895907322831663093667479418729660086397042469293921659959625619877476493379959776287152239091217990765419727368784759648402112781452863037240800936089274245040246682197993087348606254239448526215007355479997102607906111014895501296058552348151720306100685214477524062095616623774161754534683598561875492080293202268512379319988788743757963749708765510641463765399937231765728465079119420044137115254571568260357666296898740845408896841718954682590192732353665786762662943644312252226059353120956920089097217259255573425637903062646917594539336495595452500938889814778571314103005477804075600331282355521654767228507908338165719739128379491556900164023647872666552440032733309926213344407547678966609038108456052184739676630192699005727128385568909640801498015273712378662401757137375748312503414753541591975406620769798783005703431271946021879488954161010034957846868143954188239336409973752005174492151307394282567470144233140745111726165383603293049532769416777345210492668285305637082540563341283864296600335952814266982787634972918149834132931942663338468850161607990732166487735605955549997337337127567237398336088839804253854525820909424756653050875047756733770806019289504786944605315810768218359627480850764423935547301271705081451179308541998393494731450484320349138858302745045458180291367873776415134297313669993182616507512874981341882640016283275688403328371537930119572303290478671830386297103314855849473768109901439382443391672242034338976244080788478788316079051782566621293277540814353511670895055634186271352590696343079965297678585135182159518378156787246612712706736319753793647832184939668572502295668592668226667360037113401616011758041718888478497493181695529789719154069262098617301222475950237213815158956752746391815935313820841364923120079240628184309446346736798043634424349974201888521124893025314212267477727322061188807808102102782166026658842625450951794184095185466526144697698271740620599424679442955018876104922820574449396990092740076882985000069608439214206322097531082233561328047325868008722346370633676254729786366459950463827736545594359401124494114354544040370322722501815811574604325441158018443085281822725080175688831275272768131245189197286844644209149569504416612085673647414041087035141795952951420514467573471092060497926142985198551854228059640944208484017745089314392941083019564205402619271070062011210983475693400352939585561343202523844607884632542046457398152939218400183573088126027185839291504335808886558405187982428957277366241028274560431982623266382414668896830957680764425331155600679099813151012490032395955676809683312018821597392635335034067409771326296414356752243751339816534950295996372909385822022460995745829651029880695699272322402497243278032547307206727739368491798546638464847862729140246767661467846920540150603232665658581219828665745711147605546320517654945589490800629669747577471224149560563764481651405767104398304312616082720781110496094255272064978062178032063988788590347056271956033397896561510757093949342894394122788971326841669792486772824904455235687850769685436312480274044640574851134059195143598457741492444757087518459213594437145356513349943941546450331801658613279398061120820846631360292137092085720972283400820023666205636179560335098896463263863781680792492761510508420929769672538117093578925560406403724374351355470675512880182776051324956232635681224517492616550959648665396435777851032658760574961991337495018232751714487485166961173669652757110134672302314836865125629769464953328298992793997361802332907410465269702616260026904498015139370978447301610980434145629178321424148135009355522486249829563941390713975272628343581056950373762194748729575412353892576965247289465158704889229447902637286823438999221214437911742916216754836088533496423734270994531380350238966406833795735020531880301961878472718914557800890670123297420629157023950868678447678312105841321263198288694908657136600683079685665169457953087298396452253551086151128122439900404371693781416720058944325918005947657056378902160358742887141119130427734986328041050866451516790724334961828778307810190302321626822030190760887256722271982369891466907322351359312706028975075758210002975192092423619820917904034308388687910372053050072362725038311977927182965806810329586317607679710827454231531168342183701543826344562447179496554796857419958693071196537715587958869853661778389047724493647666243015796730702467377536193020289601296542979043453378270524041060008912013968229068387684678233369131127697671181004658197637406269711855928298210442815518178936812437709271312552478201884453065795625756805327677740413926403648596510917550569882297222702083797245975460044128732199159876906786217066190382582615914750646332529223596167109746182854892315494184591892275447939156017231938226367772872128787387724564316186813789393081673151911508167872050786688933883818707530381733334329917011909016062315230806182583395360672528170265009567738243430346132051890154161897751562342916595934537144168682357624946830187429977133765398658124410706971157984548411094406102821035311396442534895247300126355930103775381417781591578735159629468257602099438893900981311692641060914392876270577047453446778386592538326763335186298198380450465783247522070407631228549576185415825881318175423101383412061696044650540039434790300759402857652350459310667162459066959553089864547386780644290565785183605906495349332526001057889733624277063283911863861586335136226854061125850169032751005069207653509030285085727453475452167514461967201759594434746315620992992111290706645219495656080768621950580443214012860930868394731435452696984037277358212559697097052264926625161573653400262300161064746013624846361592400581886029772868513957140206089615894633900071477968194259441352361501301219815015095829499320537208281166535828353969529822129031037002691620854454821416292396111623250704068409173779833342576284970474786232625485324834149624457254251234331401855407839392997039169836833024649611620252943517228384952863307143489588212319830412603807314853801274862891706525893071359649781590473246261693280223559181784293035697260419187916813291075034767096784731365612688943147938673810024542784211652991321645726316926496017071961901132758503765546209851454312242771408799263998993903741942292467289546321266305290318593932303556320756260314183708827153178303450408103702206380835330118715295716172986992347896960376444953500961680578292893532301516882985748219550018643977430812454335023462296163942763238921612532890937239939652893032316726261625053339725605424255754348309355799997125557000024583843874598350315522198984439350430395578749931415436560027140081167615677745677848334272685119456895425091373357442100500996124162459309368898683229595094219905513092740739885885343028329499095219870436950325332102684315499168580376420241419055876455926670287644614649236455641714991560434024037785501200832577381012801187497905798402533561590546184202425239637394418210976141599772927663258644256272976040874107642583210687945909252778683082740445003780832890490613364063079728781159905334289181947320263181581397217504938965530023117076740307655672097216529568741043897795855635841774311682206581422429874701949851405128315595172625674154477141619385858339149146703670644900836208040261327343065542740655159630268802232998502463550250722751430683160228165699640170370776729326558264647706286427976969011082304029566798806055724827433779323365086440581005545256906532332417278488256289248988844927419307966040527742172586746510626441323572468174221996946105975244009261200542961746695048272755476023080048051820144197637711667572945273943533534902230153105871822644144646701496239559732529863386086343761378255245421896369365309863298288986067238796972489140571640533662468054080911692755494278323393580576609825648075682549808541574528563976232984465788021736101651134423316557472195182241954444131250355357578890022402675244316139593580797257549824951460719469617504759286227700602907066770775494228460233853156824050266626172786554382358836867382152661884880785812224932966315464718169562004932926821635634406428284679323265557171967337437943790921351014115376603882599318173983283662305566880489493052301623802607655331265624190000117767903622384021912743462404728993066496363065948845329290202886660508265884787458670940378851281990460950242163161159072982620605710319947074728745272041223155151731716770588011255935289843990276796355890354480547676776911306329130054130741061744053019827783994340009599366843641150841142084127249215080710128278670042617521280415876033784696557759427894297577489256141241270113901331816079577716270992621234931910253811881681069064776218198148118413478383727690710844173544029166686929631474149188955375827301087709365684642851142505500349834117743869080387087814875788027176173626655628042097301565567582627514948227454659236313514795559110753800372447341802015470354965293969255006497827438497044987211539710445245472579497785189401971388883759895345014742015234717941283481998244464610323702204464420140964353522217495895217054492261666785155842388415393317468599635113028551231803398644448116546762140211651606295202237115611847832937647042722700868242767173717217298062899175333240990384811900913804999512772195459939047654205931723598729087461919176654461917176875155049218125954505263953461383774267675908035218126359912007931147063065872308061417333543697232822214343174558534973889476718088294958433196691599108091465846318693829346679406195318779360269391928749637497407681181069762228412497355060832020452880976168057010455207911024097597123482544277538452883725326372976880996114882593152395118688579987126330277020325441025998571372462213336047551511182667667071894788263546537153635319818333105499968341441754043221042895416560453339233016964293156456299134215139820812964102024524528765475944670756963257916547251271069942497898501041840292771788491880752978027705770441083949003030209443648768239329998049086044488706518167442137172431173729170538552415905266305095325943673269500756484646488856347296911664927004628760180901925224192672002703458755811495767478464047061380459713731470539976216461380452833026814483642349541387493081879632945928581341727219461847030230604631914141128968221529409987866741405163234366186730182613678565979363994227273716220068275171654270825718406973394395759447103575815364320792409853344742808891411342692504097785667509347457726374189508872206441649045038107144523750012769943969498090926937159255974242149996372670800955183994854131867648125474508295656793351108330591375628429177464426088486173139848479971140130199798508762494650741833577407974392748448205280566172042208541660407510733112608361565100287553869732382255911353192508868458252130477184852677992519390771042581351815245944655079271816878957125757025817773325462743839324392242861124794178272619246473682668454361983961350255687544648513976772777659743267645720754237489534336255320118059859868233127340217395008536598248168945852523012624677719027692768473592180313780701030592216755924353561411641514096746116273635442857659851903493890458783825340757270641438815710473765011964831724817569087656945217791659695372224534044630320728555225445738991892155068321883187969901207997453639240542404706566933261576500756158261632804709819840488111658974393086759035665229646253579380060739513006951684720465104370332436289984280712685170030314400163051477942271088475873355404156014577527746060830504057556598252409961811950109684170688906998553320754854655913204858494834958400269825845483417025880837068730819492001500275600139357106605130604144836818895113856015810036024765664265159843576312377047126767338206715524671532213600167441487248330346097739693812155329357224717678743183391368695268099595826692355156449064374667106135631509316237869169099718371737285642450694872699105212429351440078265792345170878546634044838730035251164592692121565268550473340871407520462370328467958368010742206472409880933676911491746070316404788634050463439336790287953629786703893104761814774473371963627933401502834747859508354453962968194724882679907067097660966885097686561432404973594476026559640266966653469394628025462900350251643745289909758768609596540836279785753564942820490001037961198978971136465901959065696288998248382063368673318148866698379692303932652950963489667364347596538636673469268831056770180938169017059522349426596509107601185989470244479489039842043208890816417083580719219454443701567444947382360504412980596115499628258906868878335365459973802360506928735765420388940658908699457574302931782439306829050665269032781621880407101979905748922433147260109268583971927417572060206212839175789743976683949493784079986407779407189794505933279259045662943543595190277516364587459372750991082576638558919539827288635178179482234158006538290681484933444570051084970767831401904329093294814403452427202040190563573819333562272037092513291345537685921562046898486142261211082313813796369212088465214965953083006503111564680754743800617893664297976411220616041821798871713740507672818187891282125168247303664287454249580246064235050195894590323000883290434139500956486297668985196705702893577180623170477109414406483554182486319306367667838394711915316521365776403286457073093059493149681692538036835529679007715909763922899866437216608111088986510346787711044807521819437710070702662764978667489420564941049713996812305410162679971018528624860949960876688707673279478788703764678242354960202325096965001860001285997883636970604643761891127615061065678320687865370932913749820901716950432047953289565813834674900658232911255568880258138937076049997503035583357738811602938949883073641630808605368799834774438484431549893731640859883382474174187138562289172684843158224701475698574243430372013804100490480306198051144017272722053002631718367447768332941797980492999234597720604899681400417142232825435030347361711399956692252294745851459205898255287617377122768893106190224470293797880822317923461713333132874504837181747831855939372116636697080225737532735836390055150872953445924692748597859330090592176862135713183069979816979633850383635345786082762009386601556687784754154024556548156890177314257771005005932816412002991836940056038581684699311486281204043933781838175577195713109108325307418379055117889596188734438436636008815564163736175715338660353092671682975537518900007578508848413948542431542609780539233445279933645001003324686798004838489706140987646604600850054469522349842619686335352282980543984263745342395341464819542990294908683715018106781187785415202081590845265804490127570050920798914209895274523008592343660794426975109642596864180616269270480330401805291231032075513734070349280190658980247531565301807315288465274394248572601826795652640815250741318387294011701400969498625017860227050112552585164159616351525775588380918554788098814231498820976686058856576460347067754639064365790170107284229881161972922465849050585346758866480902706150150586101345704099322727989574665487094259908074607620626266180321774239891449206180839592524099743369419149522195392129695324709612599235312090045843187964716226255209318220362421620229628558584741173055984061473001925519389642756421876756676698496634617402321211844472586744888431212055881526376762260444086442297838631081948875775820586632140901669617983216322283096014566200545809745439624047638254202818182445738639602254193610168061879125076520859326099771456234013809356030322170309164980865261231411466558266416671170434444814382255345233906183120561787392348265061777188891349623627439021353618362876566936850588568392953358198252921052273983659052578004200758253948301123402467824305283713333303548703493423606097562502337959962561103713727395995549856002832414639798557754770261010873871104891120443817959585281828564308081286295302817858169424739881059191514673261751849566765314905805241301453372291530012299602407892265592067119675061577057573826460321473333984759123440808597936956816133827537868848391750053522837044945926734003975598547552946577293454443393620487613579380922266281133725776574471656796152285373546203283668816514543358726868022988732010997309237134754036661368251686631513202798560100093431143338825001615191624735425725268224022317734705956788092547368825785492483686544406124972656313984448353436715902899726796779703496146164481782203301086244191449452950407122649738919841783309130875581987634476566877946681518389912616001371318883602464784913505231307200715491126549153620061267439222718345446594638419845367194815565700508982464174614723320623814091323694715326472306548991831204907666736232644333517983999094758881544743363473256962084035720354986684642183193129641935817913741961144410548540708238424814867056238682139377775862182996558936447350621539055855174505905307813261700804218208997434252126650714393694754382003094320405053784725607776598504259082782058619868315900307044847788782311952298344415471454671127913742219022200483405486651500482469489648026157698806000468460117866171627930691143022187540895864286668767088225123825228128812199902999600906673940720349649692748002037452335652090987334613401890693683133207249254871573897006913119872113402362840576999518885767991422819540495920613249127609511951116117032615317865796629020882709521036714413069433358976258670852868431885486017828470512356247231715908014537030070533381387747533609796614083236803371635452244880793519251165651891842608862561078017618678482122037326428322878303746411059391571650686165857376213586422517516114685928810584947911452355788707902077490082619868593418800959802041870192077027606978330368339757555705377164573589256607238850057989687577901006694419199200841009609450060140971352014737010651312221419440453197332695860738564138120608089024411658837723095690345799038647253312066248141345887003964179734408887898835212297270146840980878288889474547811166590422965576182307970658630554979561294233143444764759431560479181094687726640103269133813700721073193195678979140913813889213513056253457770044276750504219093550708554887098106189142272380434373816806784668808309099715836412598293017055532787249927162831583241013522441962706850194541441170240438549657375767284075273644198162971579909316946740163112318570401773364256822968097412445731687285622067084011653478623621407325456866430110138206508752283988910643592176076515692367352194457480227660270429036466042821994715846941364230442194314631998471633269963919483908842298791739142019810552822104604382335699934013053512505736747893345217406592225078665333380479120900342172392934025578805619007708030794465034758621970581255117868854400210884427213339726311118431840541474313283259173556371706072390282771533011302097151388923357430820322133611066098485811462404462533475786508528062391491206142365147556234939436755240506806049466886879527249786253799749938819688910602408448518540053791321256239957161582782541616759530788501501051515024308260588920775032825336519313219268102485205191032264088120120151959862741940977119789748771004039510209969481644328861747444308845089721025929985121537322357024622658559985636205782232609824122865093983097222186909033278078848656410987906396588192621656350738631761420953548767546206264707113777980725807925579970091008744554430728480255970140511836774972106610652477054246378808754565665319362724274863190621782993968888555846664413290923841768971438341540715751962986329739512193110878840788077897867822835403271750027580086655587900478623612456508536427493542652167562164925347040981837227306679154371442488651786083726661409075481396972781852495481386766729880387116676594957400106024117469351736159206607891466833027931713970636342707473033191816035736508712662791315093573679422249853536571798871860500940780333940037440093675056296827532962373875902935922022942772442371634818863905962846607687644326063191675397544167114790738019839964828346731365657896580817227273680256297787652205290395848869614168929491178621591839781406630946427416959411196763691623240537683957506613560655356746836983969453582783898485462843702497679281090516514372412529239076438917182390330016806825657529376896274855333878113241999878533534586770774427121073337870755783112429033478015121427018372238909262244785039250857503416076977864585050973051125230844857770498514440953743049720016029879374571678514760004722947094698575349607709613612424966323341381849749507259717228993692501842049334257705227845377013684564468424931681370476192594103189764773778222743627205177258858977127242284775716950660715539534255674945077306746145027306799821879360886678496804880908858488671614283816955183103537301495958749830277647533372731703454472463953357654576048918731421628820431522018880282530894947245069529857594682899414293988207746810990084531012256088706422420071331775332304977586413439047512906482290371256602003298895714938919142344527731341539221102761594828980014990570198437330235580934726871903378178121390004201502036611306960859936268347374315387050282688158197183727802235908563897369274503592574898885528957735318502852259000817644237731508747448861313005654482953825056667925864694507668081695392743805048823730796965639073108061887902753132345176282782183909910851670169173378149477884584695506362362744110913129726535796527066700687128118509842640249012062013327720429373412832925470166983284064765440077903794287375194195707779440016859061759453893256583983632652126844954826017145780388566849287796896947447174436281666672898129572898828627024477550217593680892465450236073908325394469124123020786592350842939962568396989032223678682980577327088014833819320039147705661312581493088613318837634392089184935868524695729270625415855298990054055246169477611587556788759308387714541544631140217672772694967322832182285521821215535441801773431538527426969870172762522945677000571519111624083473721581432059223724892301776043295388532047814097697954289893371697439657010701662105984521635143158585763502592026621029391300360084054177835782446216784098718715132128525913304881068007806513776598870607789371021834193854672409927437008079107465672959254536462267151917720527379513545463074481153393186425487391751572209478353209358413630877754499811733352075698929734316758564242141447658635584957771591627798107902218277875947867992859265282453279934625615126721091246521592217662370724631318613854379872648140466389597512285034597202073688467666804432321698003850388381975659905909759696606018024187345897066938907768176548068720878973813110983316567938440124540194354159896614687142145200062872401558306103477893053554736017560041636815494161072150597423906479823978763822320098880671627815437593302356377337593089416439306183693597911068743557587717721969232478298549783531681983570479686756367097781428499210061266381852603500644859759244702047073265726547644759127776862061155306737627600653518044804240910763291416780116233943009109252188441339501496326060417778562444669917288121459186206942899210920437820033008907761514798644331656269403055702029414787206145155169853371493884474731582380977876693875783496603799140694675593923557493263271871459947651960881132498300858058723403611451240735465746429719171506764173622891640199057763091738331721608697989000921115998868570952375503137679856480450334006184419728088432595892121976557908850881554144141574393413701627067931913306076268182281857161348594869823083765168690856086324606223197375167555798345352258997336612169455913569872550998465151719764865277201175575651253639965375170638856546610622730491953811855097529611369339798453222690115178752788064058104600655725363783703694877509720639221629627202127190157364777907463896633375839114974992329431821450469513728897537408797331184801489265351862343766986526665121693139830352835297831962893630608443025914219188785475391188388665289731257228284520826142921843187115408835472741239956310054868113616305278355657380799235027741416153775953220974810616606638468996808226558432400497709447106255849510395347150699196026700187718588535695742597807326211409883884040028407366347316200098083301289493734860459602278036841858170645438699302925337341201903530514392151565676682067200550116569289164498625560728636906422181013938970189152392154305295914119626512849872334721234985516482196813458894569967783720320779262341388901500513245480296549723618072156698844624645854673053430940697679359031602264346309123925252957900338042875955804002855065059062997952498488425848483659414370891001330916333222191089051210797571962061962569899222644957293070431179330796405692625449946063148972261204370257098950048651074804014136497879222547632550036316952899940900808302164412286127416950688632913154180377827617245922298897192849571742990573272366263871245589127688357556608494184726712558764133963949901570243180586746496957663906235537769353540655502502868181191670083355750735822211434281864612420443553264415529732016440139145549162780816386522789645942449592898907228594557327215265467390505657062144717521350266143545667890234004310123321851551816385120669210769075401914445153816867144822239716980403054272972128242077883300602065493429290426446371755421111985814637838456212093445339967236255226869181930028628990337793503120605352297055030606465628151627025014623022132560185605118680783648508813055868361722348178973466593309423432202290787286808069370668916534172575026027145820788661961588121864480453870000681886074484365361448573911855618108859905379764362294485921954472948062900395009558787924276259783090701647068760373207349402685474495627507897608176185473533765946716816215023595660778721372633482743204250382141594012310784176942996480078848337154389854559682908896494662029649551286221598742151419088748732118981992614396983996449188760855058679412996828337982168457742709352733230752853415569258203942112203636746304262601856235941011165408140748254309481547643681210215055168342053884839388804068508508613991801870267227036074330597429128451513896032241226034474966487496353155349263099445585519037749390988407554098924738818450770768169767476102585248459968283598203203155817457460234514630648279629487894629527601757225937456859724823407157947661243599389899109015143432246462873780453881503331436468226448804111756537787129798646642245191873155338059667612877604968675082297964614517450730124781294632134235714094595656365354243317687616816796150872231388784382042570394818085008586979877109262075566047586709752131619444452888799798161194933578595687276228664493652968223573806829478816741430449315677492384146334991622384849937716375359460722106901599207233448038045415629016139866732720238585271700180260242637400558178803670311794527851365640488924483224826019116451769892149366130992772994940107414726318229512400144240919129502824828412932831262038739824332731448714021990627036657581094263512185497245606392386084173319105899368873124483788130365534963800907674662218982750363532145375040621430876006437163316814885251817810042485571485877408196174118285422667430347861290329574027743854925549700096110775973608047764723333663087430814707007747033594459541150222772832670436701724138048622765689681474823424174084095363244293611101708985837220572683974290104644299470123864969959181422043842849344141939070653345254312827347046629385680444119541122723911559598601822134351861029758302902946667508352849170913515899292980803634128854501951374569643072961836880980078753228017622876816156573592651857782853542518596849359476388812609485719434331416267248193550992262429398861768416933648084696859010320240692841101208391939419725174028636306609663405422492003353738812047341596817055236019680640701561642556236121649586819752945933490795028772978624020983551635199218632075893967034281823010697531908445647523798543991862787783960551980787226524727391725601648670082773133612871143730845165648879644528173757156512888668713368890465286013781709418493219139583415284444441991567841706718108832775353534019742682338589563388103644821480256724089754893299120984509114387634058623905840338818818925708238594486732208762665272244181511208260438398723107224352381912455708933313405192016972062327954550437531349158621396552932834029141244037951838966447673449312287237203910969551142023992350912485409175166967445619894269561584278716266579411857702792914072770936705679722646105598371219774134372609485552225207524072763799500743507882601679439634147187735391371904027895208789239990941695227673202558940119301656313886839324475220526867388266474431114512638209269437977317559609794160667613235107981456538518492019255243409915310815211529409462125157790814427942670601095584223573558524542742784590963373250432367193049086090678943475295433024965847509752794075308604363395850749002053177794107490790154199807857794033679704385239641667117830653517897019616553118827041994366852674377921780160130174150466889628614567393271049382325213315943358725654441764900557516001651546088436027407095210365680069243469414175070805282577417748464778769745755342666381908250678521748228756833501088882498926602228417365745426027995607633322017986546843157645757392600606794049320108428160846893205062540285859010974475617672424066474047880422814644755582542101189873462753706661190800523811376986090340099832622659276645261782260181699138760535770726720589661228552674672598519634886798320996359743631450490346999705280356143152001521708087813612850788384390812339112323575194111497827147963278819856416418277453835526417197909039082535543510526824133659473165991719204139219240481823899051248368984456542317927564208617114318684064301274176483882268799044492819227914668026341098934373815418101762476607557627226566039797488927990989611814997212895897166251743240114638068413001036311387359951395269534181794908601424250669232708434326796146527797105182608551760910619649503325924798112479868145183581705692708646438547103930274571402268388064372094245554912707596898857222369415499136189541976822708627899825290344739432899311610875196858499265842026432547376100151728713026292201204047858877322033542655947255868847687230554937239384530952331985430224349052997154340464144134501523972949090885014345072148505333041128665135186441470470610441833978294364555886529673832936083559829388350692979220815409221840132489302331446686519787685239689266342792329388776113032573634938319293238779232232255005563224393668035694110528335405520088992246402744769635666283562411992153499000786166140966119468267834101113465153652623558609114116548701887222948423420539414142179396478672553973373647822727843644028785004956792719408208404639631347859305937920718157192776241547741091269262273398188198047507932344452562938537275867521146610803725395165491774505408585809687016367869824881322820840872746053754379663091054694002389238518846335172533254934867085751169723778261625646889574579926444701599528053919196953568121374837265034650396474835879540832152745465473351087878977823732185548801969513010954853087550060433398208898094013208357738284031508523873192367313451880028224447355816410432897048350219959806004861430712924772299384878827656922148215053791607495002342642173553752403419160652397609147867583737055984193276609714942816308329918077658602293487480633445523985017942864372871986693981528214931274431195864386284089064388510547332038703647088864353171239609928095263240043049479266097569521587016652671456928876129399498471422533236667014759548230742705251057821921430432942632393603643191496018946662396714374323177153670565376891402420787624427480561217330184781777993686038356059111242238927499985831779742900440600413483057541937769162677190026508024884345299690213588842138696818171434987956606653607100753467260674050999629736076613818809007866865043727741505421948029905166396337785893468757164078358822983197283202021815029881202329487800667904907842243960114100535458049890573423217861963066779942093540104858935841111276695273149652772545932620019975850729388307297850017646594504216775993541588525601664296405754113641040553367854576742235981933968975864165399267419032855312140516473087680084764347727897177207516023903756271071868222453619310846017155664685826999276064228181587387417076841970844744973973493425810270223369234146508662018932989438083748005753470471492977836224033275835338397330549595250038133551218287183482810965350262618891356207443826367530215970425961922633529616330304188020462772570813386063163965500629692355267337456563713149101096335505323527496614512497282145268296072445319639536226146248160039300349911415449247758387813909774242964606829666583414209188760156622131869597154586779366148713931137115177682864712564374694835124595147058485186344659182204903556066584184125398147284618200851341270218666706014535900072414293442618002257671716040737471352914328860105291080002783225232320692630033378594260108399029282198626235768368196133277507657398261448364993796123614940501960185738269037097574119637716155946390821097161348775486585692368375899008579050162707485121283422712055760827582378004658796771191304510277515270905696694140301631716169842225343624744057902430527748909864678478326326940601993176291862722127308586991919671219891653763703667966031440741800033187603838219504133085858074219742842856738531300482779501356461621873732850635564259303964526577601147918077619670997393708772909883675451967893598265402883611273444342594515775635183575593349157796302298772076025504081572306447010535391169376106731378656210476066142734888087634187690383343950019549674940871612650459863250187500983763942766623486757639983364484110808699519244122739843882194711476000698092023858804954194557913178130957921795185760524104445981472503223115733357997950452215935224786135137370099516350462408531694206804762751706481702971852756583789761806933222207295834788956882419885214603046984195757712139562614380964731890875424612341549095563414651734269850388766328667169175472321952582972436249181948902997901593416100575347795468126244732446188561877878687198133263602481477920892138807106990118751126474538591366700859019648089213714639076169371813873861658191773578753500979501077287316836116191936937880387751711551063599352389662207731416368392748235614453322344316680863458235605245353650006679728658882431393112453961536005702674196216400065188426835867424267986001647581034267437376669477870101104967296885555415350589145411168347738272845719070193130724737983841787808497754393264278777694094680048642243790986313542505924924187584330722300451822621556632631050175602498802312270864150305730223294892030990117593088525209897292637587498539030674138262954192543977804903049911976648453831071089472726319442066238455931239690379640549438972582939119653735970859386131283795073854490705018092109966238201188800384423299929079443448517892072207690789102706504747976867321438239354590606262553535096748830769783024653319010880743804084220638291721874312722000957228912037054553091481515344429501345946700150588365161389974675827648190949375317453927238700139653906361195157167103525180530394396164384566937121239958493865568591558700803713356332209166628445210925697054069590487070486711956955680838706768949274955821576133541998609399956818311822436789362057531598284218717252236972303105662977150124279836213939585679879683353863147125094168216397091081834177980690888185985016429921631108289750000456221516281184273917008208071953851447488843132532776497492630779474505922102540209514441087569737707096746111547207303852434295036472269393150791578841390520946852866237115475948654915254765867981502435077651754002101495705695348263435886588779103996768125263246051841681000920728995443221230934727079893616098489955849614306793993904296150741706579098866558773069464993439372137183265579481616389273792996794793424745628261929426196361069887272114746686774795671533670693740599912250488568986213911880613753686163538888697209519361467468218973426964884288335973917954920335682765609598358319235682889785448958500393890227408413410027987729875758487493007337754987343264813353282397335874702239707404391877824459701912223344898131201314453436896448718811424233142456487125705822644360773496242355954207785570589996481393210577695390853110360216754425052760922828237848181990894982989810866628270916274745321586770141587886725003907229304995742080672062897437266463459766449737989483225474507434144910655288318192871512183908810010915719451916951027740902742187892039657044838697177033075131238385101165051600028027923617975256792098721445667152357364800178455669087715542170334419026447267787423498768521316164903579179032720431254991879171976967595718303489915739319565005564326897230179640631234915382830644178895316631660572114157510491906725400451633579757797130411433911612861295354895086706623694578871393172938228238610154857694656095789219757185176238855301199884857034700039361282535657231121044548156265135668608802755610083324602521106683627282551068666267095595997719919489280401384059535457203124206371245473627794870376578697344815568123761825256055679493003620230346948881341523670594126959081394687936507220715140459884052216845735703820728904277973544894770914715108670013292125564766186980635718755982109309139740675052541521255619845727013264751509600226481014427566292836458862007119244137797073272247421532192824539963458626884073433259365902000432127949398764797486442350238782800747204274955543887926773524581185206256671626212805789584332449450609707120113680314108672214850715812187424830049427581776663671144344444657544709297563218608060781163667005422880122899115708809247167664948105816623645778304634451535562169337368970063030141239802673888745849851870309025236624027352015618154793895733907983859250834140486714370955537869025329063485832727515962384465510018552240997643215413587001112806180847755195109276793109713096899326039366538409726755405540852741541272320442955852731835441956829915019959070669921866478015340898906660974020334782547440881594794663607729776407297829593837654399476184680701797703609271193099038299036634332995267963111245453198469055650891344303536868569810974725919983931152968641184082446669882346080972158644020684298081337598262403095703728117212375527823436698233332635425844407655768669893663028646623211216895719299281286548214810947367645411751844766409112090009132307667615515350671277565997548341022586785478034352866588112321421180352755745753737028588944418859611749833473622538325713686647609013353730372628838770309614663513588244361865320273060070769086451552295013248533080692582344464045766167513164627584842863162327137362789226823502926363664987978858009998646194625459986201984804576177214585380596942722043112207508246573661994898896785163070020986025157067375285926352050376732340046745693580443981895112719712841409066434847559650802645960875460998289564523146840252289880040808384680339680145558512603927711639200149558170944722171748631718964378586509973098880379289292953244786014598874128574841842085200137175746526939761120758615925272235426339097300798647787197787929595227283757820374116980871264920593537895956697251803454155797717557138792860071475438648410738229545597637971472202561249129883083782618597925176931106903117278637996045911141826667092577260930907621607906043033135410129542969982428398978894204282641185503879621359810536924096330619256584685339826176673500532497647672239182015389926390936673147295811446524918643064263657181900969422145882886795385351616963329008864123628052314008763092523233812066598923917019218174664121412405348869075865889010597033665651485711018725841560760890659569836170865312681861221796293951365630911896223512924665032854014830934523431460495323917894425809520354080564293627680186593430722921304891384874104633594383820093062609125349995752682022848694130586482438569275939519508730555850492230192671491158967749363511235419860517928263512525849184618206152067800683368667430676697340869065625334541687885271643103470802984081569790404854768493470119408576881482204774075714304010353664199542232460210114119499564135538522913247883274951805854676756846122447019991445351269330173470887668819284565594785721870171636653038664845854480576891217939387392016709678856826202864858176121311071645600945556433366883900567701411933953398040661847692220854343399986328778251463337108110236510250633000090792678284521530843465310888002542890926754778111659957622828047909764992213169719496443960059571333952858434792671942173084607852897206753883731144625088173788587997166784279546112837981010805602876697169159967157282172453929147019643233762941078995138468722747162738390677520077883360978972063606904761853580960821352346677389119544683017955169075758084428870047004752337335030238817168770518786143318297756489967519936863547281337171860960907092057472028179499909853520111214099397620007225103022870307630275989679163726327298661012425551716691780350983890621698828396282749590464478872095359744496646406989931940706105775545801909514642536508149775005648363250581931771693185716923475562937634496429398539937716741673958672284671748564454893274656434136142169005787333601497949159070860223767500729342091125133643624174266513560959193387054752183664869748974167754260365364527523543177777288502988651294345154698086268532814444723160789934664293594528685841354526984763401002594649330944604948185789250383437778493064160530229015168028769922097043217193946743178978603741554522165969946154693084597133308526843990928975075674372575728857191552185162006827695710359341161100195286162457160115022297430074257047633137012345585018439513960381785909410518326277906974530576232935603910785770066976314131574280590119077346021522707371975766148304644945112330838889214239000451939652300744811231598344856668175474244089563070336487104505687878094714146481947040233749662096542620060188157128830958734285527218278792397075371520772504188967299247784330149098062354228253331792192155237005147496589462190893359746640179758296330758190803122649459339367301711750123175212444607541300818436078474009378923988139011323832802362617820007616625446579015149397867486852629123290473832610319684489874202112199338982455594842489623404058474175070219501628517418465566389992626608166864817844785766602153785508377975801211946885021460337882847902334324371269781174647750154036749789891755496992395784306716979347394663833589090856555224749538531885536628661941995244535835660179403244146247547017096132525793428437370988317534769178255370865623743134115297308680909300260875373559129166105609881187574908788888620327150875051802060043611397871447966450187907375309173970764922581219672580691465286339723434672359849768691744348071147243720132682614040704634816613040997489881362756275870780681572256567804954963625228639525923234923185331831090880839915915621102262452381972344635653752640375518291445262102565930768039786276510210891398938078862210781539339684125522500815789361734551335789181962822017038903410125824193444841206695376292896995227412310310395971730270160000838748502048151200126240317457569999482519939290944773689566624485319809498945597700087606025449043437837463193608359007415210833221338646562735933142294485632276647825566688928605121919535036146998385145190892694877441343678251371247895946521260179770670017547411007287897155755980067598947976709279587438970570551466773604593629261599747197350968031832892672606893971634982664205005543255775669114691085778463924907177592876650230925852491753747600650534863369473012386651101155760824244812791406564936147505284569428258738263018581393410637526137960902622197817396023135534390007739306062893894508726058050022626809073140194598852373884424525228827967909745401187992703463359934710899479828691058692155588935901255071133659227061667919544646145408574299774094252653836128511736497352089837159166106374296232777919653162567555852208268307215322516990124071265617242447371416331005904292517594436692123240379594365428827375125416280618044179374673790709816009139861855712682283824553350070207532373082355438007680143629176538843014507711358930648350371247202406349809458194366344331217836770530485984364445139986507197060953966161848464181211129564844840571246185969425661340011420489875744894050617004365709550426564719113919837036652460157478114743298698430471760905292142469576090964139447597080167864376750755288216012037439874324897403104227603606469223093462384779377471435836456541476845870010137049845607570356805771016317779199710950163305454113717186692145697604789663643673983667152218222108642887198491074166654463948359773300479352397131251055149095630807283571736482238252289838150908841655837787000631266768706619204388734543863817620113154817781607981192080256375416315204565595550502337065204643704399019664577326487044758667623869400467699374795414636222032966994201282374326970699527759341884212646181329029081837129879617780192277663942314922510714878640540998430533594134213440771202133699117187994444062019588132924581288491463557743196728560920817594261899611861047804306280531322921535464107764389578274989897123860202711989654328920530657922522150089853618611990062789963892810180269942984566991400337597290608069650678145980638470327896789234479172442185603786115669176286468560706206840091990627353681088478713270123646709060914114320709033732637878359808877434923393442209764744538516263057687561088635394672844400333590851407315031436461757891250753768589123117627207014019623451567064655495158421808771384633762821216066953675018314120893822877989128619225490669080920619255050340630966819548320069371337328447990390315405514174402754007818393712457206627130368450791655018106498498948803555157939731644652680700986791584569631971794482062071979543555160795056218918970541352808458461219250496691688180583883315784496641905883309363675127121450451935645236114127824220545085064516698203931091518019207676777830465050832273818755290394521791508996718393699479289746702146318504565204052364957141806141835217374486694409453644243520377560930609204669972716390722216770489451115851337197266808535635463271710263410594643145338071749237065096433789633543464762051291142749895208235015021699331193011158577150259401766725161945927084302460277485140477214556618186204614181150336701368388478881053419402256350126029780917063857950587497833987234633567014122478802101737101002050042232954494866811058916946221507355163179011846150836273383073332807958981129591045483077050978146440812899746125159161182805119880369598082306851805918589089267827152154902802717914509556434887169012738503702267763891046805847925434100771259078148894465061780835180833125232740884999942214584280328089576123154444064095642928962959694059236523765471457531568205278707169332252253324075346466364728680251470784005328633237147203058869118733633517540904733012797502054827600713855609059875160054076893156897402120864940358044056172100887560271417500619134592484787181472744607212844350023629586007500940333964776097262344984849035330016125627883686224559155742268422180803743019836940996431802431452341406720809233338722741864905218427809470105450688835773919220741837149604102276477069911578139693007186435763372236203569653269865855089320262244818197049096367380729009300377394863914590623595332552415806844859224700391529273569981638424106636741612133456737273608267257658877907120317745770121172195220180834886640635019974728181614301376502975355258183335290333063911215126210976320890160043796669289599929702571989268574463789689159100371987850074209166533331811408385279444567821025048322346985231314172600335647681180665708616452601215226401981343658023016428108646791332708821337275927845231811168480990703480955427468577229939928382549152344327605885022039637331881350367293653911618258876928738466582480656809730187409880899478160946485743933563976989734288535645040137175297825707271719613720064016013483305120904696016096646933435924140363213761833113799116436686524380000060873797776965618115955045644557496650591615780953332954456903316453508021121948271733223625650573552040536108331724564709385449733236202614274601124010534969682494498710188246086883556113147494790859832190507207608726653591837767453342734075644146136188687459602911638022681981037641456250155039469064298963171872069834905364551781890921580712107596198138525723564111519433542345170839314936311233530572508105004905144817449792020212044947703984401580535230957371460210201651247408234996787796366245348728157805183167874807405920200416900843011521652761164393693931769052518847231790552598099345466136366001937449438032380793398719551430460574740333789084546876062743375222914273386608830660405285203091309075335130097755751921557841996047244198945598735811656748589960248317274365351036977957860851974684733157179796351383741871235545781760353515205332847178266748242580701900772937449035674348084764207913199838126190952983597762156922387940861222734194654294297232770918968076355161603775955446348066738156935327545326346447459211231305557747074817911845703614941558742129367181602181864377072710868663302485749651263021624108491873570757360578145051366881271291913727841438243427293615092494032095984509417780053101656132575657727968895821102120824479180783499505605727397028704829755414451856033930822676198318419098765084738550557508908183462465490489004999590137338709008294828815328485749886475620607006939693640559643815663395869809718476922173208480309149550570720951580560357873743664863690345346227087469253330978982098751923995316375194827438113023708888247627196735089828710269098122820873716473692604671844033431355515948048470899983916312684629980597080939553432171785101923056934866357687911100505976186769645278652899691257501687774740922344803317441867674498201310993892356622512783029986589905040848538298708037802462514438525613783519873344718035217092240117870060478191222839288915057417675940766566530320679909590371494442287407746456270159270073527323850207402072698150553904046948711062693772488925584930672925205940628954638131789458531327474216371395287522668021669619219988063886985994950472559758886478759564977758351757298781798803816018413849712921990262249197938812859986511754723886162314961082403009187559002587349785577049968438386111775070686638859071396630193914097925644133624746326895880587497592677615181041824020102304595126134266529831520740559242130041625262125726665020925332918938568301165635937238198755764867942253442415129607570964053472658022502469198127812460150563940533249516297336920828386092525739958784343203256826869812208613069109955413184527509053295836128147079732735055759434733061965158577578562934100336371154728021360736133755698119641483450034936787371377095037199120490382679572594505867473665335962694495264874980321098600055577666303271282983576293368397300743908513057340535889619700296131908327795256021274846355788219595755954423547790187369303700432067131551010983924024345768342191262330325969688040205006474316414598587398501661174745153155224574080375464762649014193556366863663927689662622304832820189486263224290312831710760316729306556372640694285274178016831729949348914167114317321383612984123177551207347273703034053202188116089548467239798196413287294548286518751912661353435279143452364654521536531599634619982448873736368470644627296570404693164410556484791791681257431052384146286879938949965733477650352969154347490755697402811296904438199512335292595110607150628093452017639033420235128830292945939766447975863297093835849318580079686032453240840298477776710008186032579666633152592821651755071860950056129025376846496470535932408290893856268981733909904051383228533497947301777368178014498195613329442438371664650381871226004495871447390576888463209896319382772955192300315863799909222507654465422232306559817560398901164472584091561273073279609706550344376798388485534962757217863403225458809734549511319182886196596689137045108183243352907125536919964227513060937265845356730171731252897265921203146909862063446596031625247467287636873091647555569580898788852323613952041802459134308528586961465819069500226197687945236710126819239736209362302321541652202405981756602567035459509633387521654637805258415429880138327939962262299379379594892827954574156683549354935034747856912776581439488555091454290496571631208543241611170579375283715015166435986898633638408924475187312432601993458122903898081268398755395333807133543950392719973442421443435851771760854618901408686874254092644003995064348477267415314967537860202546518726609643496558780651030877476676952049354946805055712866320396301013367936813351539329246473289942984888351883462841343521780955471370886142542342963714314975107201645989355543538987947786814554225605703166277212963813811696575719220625149405209778839233274047684082677912362015809400222222891907684470457105528667486601706219947503728120181543284663467520594361311552417746081534682253106478082369520500368161239641878349596750045021073506906619769765637483472301161804813750627911939993493197463572339752412460438655956288521568499941211187873323423571587555733848731226582519326454400433325596918530317841795436133829862775597408435482017439611760688825509399384426313618034893347551712216502700039196607477618244565210029071665440055845154914048080725675709612105719206219725943210202597235274205246687739040390209246166885918851662331397678463334819884360162430445010480732690563164979162940496521751145016489409073992795218790135724505228641542783786695865643321077462529757220006758046182190262580292368264207254037393377161648907880579756488834048313125219873310282648910818437477232401960689782443036106220381972248425583377080016324915782137758671924934870234176085373835994942018517440437866888304310951971804057280546084486841746124683561827335221597844274654378909523181900549805555593258879405843103356723214638298138045183723917536037335966653357873958538923241555981694858481492499724677527902318493642791269899815167780911661084419766181603757426597718762174030330740189026595073556944189601671607285400065631754534378824023268374138158762061809046503998245817254653242205754421517258913240154490667127542710975697392180596931273674465409006102485108245105481087657409705468964871839666129086301789361181675315773985347394016678765254237870827492950380934744538355318701127967930539754161674099739223230348529140645790302672983756813364991903999367802331810489201766910166456993481948257203796389736481267074194233383971905924000878329665247623625391841695915031254144702966744282279896783740600223095288469677482182350654193303835496071074071816923716387820443543966618369666327217864722903154130908682018836160873525822841645434392157180629067976800772586293896002574957536268826272172785709092152839594718905761582680680394446427633061662373930780838302427839011698019879217451354687624716173540746922484746896419783491076769199408719015183714159044178142437244550012528801895194011636839925628660556517136840252081029520358266453123336434910670923195555823495046434286541590773852197488866630797724704273404712427511580639925387631502602340312649510766370189221865312585761809768199909397656013932613377489419327666091100784002832033021251866019008723948580308196858153389452363467976729607439212147298087936982585724887299318697826373892251769034399896192751106930854814276974475994660334373846494195257060855643365850097067576186167674405978737425138395784461752178991428002137937203038450614576474953509073799069515130780081796007264240123267137262995523574406182924995595244876905578821346835883894872459874561423207653599571158415007036350446268532747507553527171509564088085040634024433284247630293088981218371555022148884504867525230109781149003252802113715826950615538444120192974996113221536765548959492820503883847940877869590649693799945888839371812383768701099016299400438642388282806524978997097236119440384769527685299513953847069252131389167538045365140342957874820501100528094297937961665282133716198276643973641641830388747520100685273650704198740950803104616953118019152555029217102992870487278959260896170471371640021197461132671199205470813406237564642217536166020873273101091231969176421677358520153242931650490140808678121103327995960500487368201743693250133714369219319841124778913393452046693021582316154388570886819546640784316320946245014597686709047604540060018672378787722071342841844678183579911610453767717503541819008372254193940639998238491318340086955027114430038801820287803813534385571227203223858763801395523367055327927888860176627766177653279951705407533273910419339344277823450933346168090010885202400330826435218048342738708098644764594719859669763686382508848153737147567321575489563084473781197360649563385765956663879940681438080992014584681589882410940402057879959563899563628383077225045919272880961040864536972037102023543781035950387649096276526056325504807178845927152217445865180913632056138157607761352250688987404084755723000089844890034633122795436436508712663431632686586731287210587094103251914121915793433260980656015034349976879734887628113435908408639962406561478997848122471234584523982294551178946666066205938001082947083303485359033797213315451707729013648952955603783292866198810008916469298168938040438404270614624441256117538031932735507756287611663793787752750644945914990423392533934581845737131498538109209157351635632789438586895535802574814349256342831459011825049579901680757251851157714446789945159341514250092408354605614650365292513138706127308684456367090457897258256252911024709942996956543051532645949277142555621339524396308789035243756902769382591178906931410235947854422603568722242182299825899855981547308127493713204322761817196001062645209361374059086250843271629067145604193009308125418296580121559671348978278885596549878175988164271915268436023984640202096101730405185464795131706618118817380563901222425815996076277819975173513456516860034028425419115178004658286613410009354971708320109771972395893957791157537109701237124749312702107558161355840681562158425264525992055698846731144254489595491314090872338601887321109723787363540930798044366722970798731408613335121024063892640303580755047703850223932884025825910574461070221348825139471270076207725038220415262592179018548596514213965626658227204980375922983774094378091997835983146067723346949781750650605529601901450712176116142293876259706617166213896738697370157190502798430988287019986356876310507296549094173887938845939829435208484246808385146136179025064302022398652222395011907935888785882502364736874966182638896137640618006059767703310726360390253495031475822626684495302613161186985657229316356726453587241549785010467914421240061510405981639071635323800773444254603369697200327441048021925503649799707880002337070916532149460459432299263909454183246809150348859234678033291221982119616691354238926423407689674670851187691559967364407789244452997493285169590911602222003647096056725460412291551830291408689163056756129162475661963829598937866551382811960753630513748101061042075200248202464561285654482012125673449634527540554380664507463435842801794394168458538606140257143297769403243619800172022958268192413357181669443573478940488091874178160716314918741996201343140239889436488138448458942255735578129964927013903468557268985778048508400542201884612054665898916294167312880250883195469080148029357056640993654455162307986401420310450937196533434641300192519358983573975679961329414154013770017856642470606234398043229137347255803801004747755944426841048805483276181025339504041117056044700602854523397605235117383736074613092796750393823773599459545286254015812596950902097474159326177347244586610814591834496223101605231556520244781436546904646891453985998568819687854163434745769043608415594058452180041081497135503584561010083657388528362134879811703946049725591079455642513140354762715395207323866941315356270727583351149044855591364357760338430062208921136796615486572919633579838565215600854023462024159631211001135410173752696812026914555832923324536471540716034802822953466828983881105004676122720104143118069035890125792835491924464678112527350631341194266679767127406521580646349027231000071635443571428654764172396259811528844413260496490403302281602943555777443790709771949980236712647367772101954671579456829457950430690770625719855369627633582633843286367129309147718952771207214050838633996936978089398107411037760802485801405782445609176716227022041246403644189092124471828673289150206135566234411791350697167155223281663970163623264923942301213175272081215838436206076270983769456598477570204169427664491037623172022502213834789428877954053966775374710719491677409867818066540941598165762276671261499246963077156851411195977187531679739524279570342604229559868428385753769574490238869740560019174911673227273122759114848598739927025697042233801485169395190309474742770609418497277934595576145732843774081734288533765313078051248992795835342073969192297910981425023623853509783898826135079892204553117790599538390219318240489178737271324789650671829324711438607485374485669304758502408749900848590128105859102500844983771391834800415586728874301381020434711131623873393097074234815159687953447338872888391547427077795203860728599433670405875672111531489246864364702432837653443240113011528023127933158565554603253141005094986468154155425845673845278742680654715023776314752451480178129649139524213009138814762187184676830288363672307492567651025764133620654125971605312787620573960504893543272494054421628068524789065982622039128064469090589090229304909485278041282144849615776727132390425744342596865751212806102471811181773577140121696578123480294261805675634728150038273561509667595733624801699806704934049976514366523209985872083636265405093448428842600019114600489165368664601644057474559285371459350234948464546770984517279164088040989624843870417606244590639662257196868869033674718122216509772521492191220070779080826639761558267122728309530383007928934833094317499619666951035744757294144103445579322802545097198961386540126344551094093226946325896145906421941707817380872986953624876043721888188654911522330464785787525767182705338625827785328493371041089174657178232565841582634586212901576527716047799113534286068863919462155417016335260465788812423406330042998311434966744074490857595807120251254785998561294905088809783436842160640633516121918767853418734334710911289055124824273232927455651737139193204130032261906125184119352616509701625239661054126081688611890760331878965302500131434907379935524913528479041080821620373499963898344653821342891747858131204197794935015047122154051934134147301051284560168440476984857965731658830494171014410829863544274607925297319210805407424718303833483758672144220927018911193432045297443902965060462908327342145673599671118227384035185897809858478246235946671871885358154081348083761235033875152411781789426696418377117211155051998147066562328617520361997403824062802740047547168422078389305915282772012078264376820081553067051908243265825621687884655798498089791230082100933876326516496137143630057349059503140756916282489238983825229322487396072476928131059590389252545326191259657033516204350783179609195996400712312418331714654496250511828035856520040243667551054292476839805203337849920669756299458786053339916791799647296277047682051557318288844433078913377052018481298388604406800553799535896932846061535734311495788596203568948659685987983834180534609941594110718042159809105797739327007541729079859524062526548845604927396172600382901203565615590454779649935194719588121648901053861436231721956667365914801108491563077240091823921470698002952505820526181550945648342747556686690169340494452270505023941375967246247093979177155300885434387907467998500962144611828406392290288615535496269748635980464359297996797951539180534856859445124332144636834403240461232025809522890100675432047767159527752132233001754333331552385061880605238195321905905581558353532384172012694858514385898314167794125324686639369142093539074476557217123389912972948880094101143864241499087103304481748805632596514599267935484411370109525341496553426949405329037091611280754680241018474652769302203164097773215373973102145066900616129059148986145353537343676370637529999860897656633796272556076470894291120362735343653578474394490224577552975861954650178981993677311339909752905129900079332954108316241390601651068622111760846407252760785523335777569463194429979932953393983681353425582910274633592816227279204769962067127690135067460577835194932667569187870850555355166428464613157106856102551139568854643258732812415227549418936674696861436160673534033302703592654551582761564310179097671279130115945310563409529447043273010115473999858344733661253562365689134463917562316862039216843915964352798289443375797521335614820614178204922069600341292181546509652917352220117032839054201938817646530733964543180491709258557987575864538693604075928972424625425122752899791353917776661051399247723026115866609848546187354347539056452365060455966266533152442002137303139896675749091692558299880471010822171619093988204836676725066073187017770240713819459028388910992250866478144171856813407810381281528913753399494312716117730991003846671831453232064992420795849631563629532317151297468711913893706666138490350179136760555674776946799570434926207120116990839645685129868386052349840702508769886442808454880422454413114187715275321844054477756837312331544763293613676284852272794054254584747910333728856528387616208414259932791199569657573765403276337653044281995154471745764886370180130613144712556748229020374101915402643178574059043624984399516829668049705685735638011519878822981175367064965221826482087111760227437600284929836257549079343444348141076174283531819242172180841109857626378336564790959164660848137871047484308113246849342984810239360817196706579230030882365374397825223273841814273898574275978772890150944530052171657909809670414529032432341275693865509475809089333323790443008971918075857812257193902387931918258974211848166195943015754756606821739106937155395309586970218242441984013814474487999809877423693537981753043504935838946752792726147239112863866021486798752853530812705255984475887340451013020430965867689470703728230870091983963889213020188316829256428624016151160841226744343680729642372835668429690542411959198926797656549279272511636370920403438476143489965934865876586316976590699051808468351195685766464396471670988054072943759330941549224055830224500439657486978401309645330741351036272622361416534544175272512538811133969245027117730016895961163988971957595929989324300373092419505224012859661314944019844667054729827845021847613622280680243898424911853814084468327772441198565540729004598167723137286497127762340706613433612054351423724178759019136308326516794203827457702162294979724736028521048575330616914259497661231618704247136862765120387080191072927914114255580508238493680947711849991914802648109861303716338535326990922019745913892828429108033327016540310822243395802766313795812671004693529970352118761548349320747950350814314380978270418023796230430415610631220999162786051898561252986965124698074905657047827308195000547855215375563953626477815812657495413493052502518275869130265487200791091408009322685211494648366219482463946793053825211973287052453723744919801017432268962476775709658563973683815878181664262198159970146448689762496504682962882983468844263496149674400462615372901913261771299704840980353207622839504400446058667236296497792382334083517679191545762095338495273081916004278996621096589823242924618963164512841660303807592037227299506551576221136391115521464211764561422202474975826196282084808544065826748569919135667478655529172294620174604085865994321850172274585919798752289588246478011886327866587394498836118877785348095858851507605519802730588428417161623583119608425481244407237805074239956428184173481264007719209416788083474029574484360790124267180195028893789329999229878451303178450560835498449520247950314447622083757834640164166774381951148634057577303036096525709137564262277962259814126085251958854545828868006396511275954799897697592001131437986609292014426116957271021907736807977191046996772759666102297262094181210549765927187519628876249795235667048141898735568597446770007557990595385126403706709502559540536332029826157266729105743088577708386409135827754541038532701912265439414722454971859312686748962551302577452302784662156230924253424378083495027085745488709945049585788925428905716977745518026794138589833037772797538814952561612643366321281901967749172686880315162907512823519500407089631558664659576302127760527512019012222981158228224124046280915971424437978939300168034200431129772631994884973824256481917620601817833794777823587637466595078617844739978973601444436612538027257700828898260059708563677487211997667831736969343300827348141940534191246492723752428374742691377743012057066224702682982852516007422718080206775065011489645429088625932694590578480449401847576247926124197510602906497321622931904541692255338321662098058402119240350514013559469739742803882408939325131040784205372695852751120655660791614296995393955647197286604146190975342021831553836353249588696856821241175807085561263690237711879475421247704799385026484876089125143253589429471594119181870302900820320703765257204198390281614438103057820222501684738863111021771722744074319737442970088723110433552083612820511917110408299712621703138848215278935373829325839596884731406025754915473244404100680415133245561857899157708175239380464683526868347265425814692797196711942657463735543587987432780045654361911381243918422347628629162866998339806520579078785430364398149389514919488722535812438087823715651473685940606901987754506778946976845379920739599118612511812616411923674055411857926070232963548817866817258182101090944454444899453105112281065634619614735089824112335710612110815106858752519570643099699054585574757593780555615966278422901014698502645637840168898560934295161038481504066097521565954534770885134412241718831735947567485769090026888314369867002446183235901352219381163612599348292583984163433886731295714727845585818729529477334151459793358548225594306174711468086133517716860851943286205278323742730777493856829751390750123515898107878143805326911318969615259585793635615949620894490064426655083846652450967888935532139818240516549420624842578679592627758601720452093010356729628731895969820248446276295968056957839724758228808148091594279670858236991541172079641028759312906045897911690066495160891942611238097500223567386683186490630589118402785647830354882078049241733063688912094648324760115667801120105575028318569767252491594782235581219396188665024616801597185238935415069318215701607141077494423398280298719427115773926172532196133782431873216640190398741404409775111238410797218882205532252748644429611065878550242070946464133063823025788938630731175481107640084984313594117530175942502081208560070339084085661994443722498854753282913418117140918620214079247941877586419480598329242621118214384933927112430983555172712972103626624340044026568842596412216069413795868883663032228689495800340666983076419896718718423500138852224701517590907924080943240422767344229216501906159246648542211051384062305368267344565143191418236354894756310462658173542356918862561665247094896927565935437673646651617220065528441154746717465275795470528998570495875105220397857370398970215316810743843608752549897519626241921726235307691323266219589392292692760541599819290559601947744820796761518182259402130607166350763855771190123658572875760084262061491975534758440239861963271232102067597995108625401405972566292303757787899046065356165253717082185379901030101028565042361846487580229464752907315186962861358388176065385751976276401196124222720765682933714956420702277881475098910251107199737819977597594199376047173789967547044835907102981388993146268724183357081194685276084540528972061453137499717515767786926720692728355896941962526455003887276022423672997878433745263409338724606475723505065233748490955702742399164937675908746661265957966535077760431386169016536459913796906095194596899240095223080926279574534348492948271434553147109095647223685656362189689257746229317301280984410400351383962923228627058714271578069778990905590272160911667139686212816812440742923890739311922924182697615003418325624554193629500812621331520017233409623785740762427472405478453895559872470212285325074871578222793725381457069324812993725731279871581145187810516474899812223962617212567665048988696975945170868148804496836366986353469794212962973603508479669279666002103525374498121237472163863510693592892424035110982065917038438275766753899700770582958906050730530272969696064890188055173505761482650680152997637839662151251983694369323452458474386037650673877096214569549895701162243107385148384916014453307800837844159104101349240289464112867137710426668784629981731828295913646596482620059535091153637375315545222587766597599660260943127121914061421903691397840021949064247716992899861619675310943580652695669146188506901279257176900508919348931047082853187532095694579722367117398149404950385549489885235681791705980349466859633365083929373170808765093499542259029204626488969715806742286126299301460582834527818902948754637667361384820943893136197826252938898862614966191672484884844287854950097961944319736953311530176430996379929434987055497038926933277734461011879981515424033609669860038499461210180784807319673968147977282131638075009930434105349477906958157928577038856951222802676886700690655241050611806076616965688705486212046551409321148683539073033662480733315219312378902632329175039216164195239650360126448217987706932272067898517961119256792745278970249466886666010611909641398719156180115802465745393970943260759986255818946955373264952625733257937042091215901460152066245986566035271334171928470152279822475096895160941777112027521027930815714592920739607329298420783080655715084704856957051275707783096040154639397581068390708530731634668376741624955809329075669942544012760839464692799821778449920394681657290339981180742168013425133945565567630633273067593939983723521716044327984216448348841697458101460503459131169685790831088090806492625176899597131758720033398273338824058427326173996861483286525654396196241382073264575966552110209332677212230261317634071878411626382682058962001063705761709836544734405305493018249925194494325834998878182441645812233163890782664935311154276669705997252470303820923841335622512426199468799786878210325659492303946687943221126049297715775916219505907705089338291860079923504157287575722651469333049059073027454703700347055512700479892786173712459060000348905721050491268725872555375017981123379485405141420166969670368408424875599221177565170421263872850743102976477972894794759233385069133457729355627508780523640117799784969193920449119365996510104234867868245405818012062304153895175553564828121687451693538398339979127535915646521513983476050636322681154935525108631778766100630894990530399136955886710574988194648321919168124732624168219383149952310457089076082551785183770232542588185161153711921770905455219836369214769086392087136054009088410267475104322800926755897504592370521837426228674770333414951200480937756639717814413480165097465779019748347173285503442562745060564300607165820811559094027638592731648313586022078142621816631711795838278806568227337676443373590635215477245395483216515675721886249901975288740300998408503278925646953589039030712347862298122290249203286692565167208845474439470435216915420619612094775429304305699227659634151750832365976105281963686350084732264531029793274054993074416382633307859493745225578483360559731374701018085248227710669153823256966967966940780267399847660059072152412161357650500080663584110909827735826249948312569209464243042435494289745644798372602153341927911820771411745144313140487455135931761992308903902516243623383111316684724781533743754980462525746362752957537610038814080155013079888469248374678114990306989321697254733951259187335545378370535343978865258743215153173628504024812371803650023756732237401146671279006518910499006767581690006039849622951203403240919831406400329923207786023788100495891365395846915712420243280811057230957623663543454181945045662507488347569806340757639755903046066822194560258993672107023860498629272807827816846252189103979215261019910591510413930634428051364055809780223144271397780654667133353977821109185359560433798684081885394133762156340675073536182337128277769355544159440173853809688330702754597196203443345074942244084756290111072067140072020350826428185726253974731038321363135249897308682706453820825852591949459399653901360542644368275441130241630344320760910493872373090820865904107533941725281017596293813570943441197417214191349374892112842970108593036164908438319354364354248140138603488213504711474816792669724088472432696099755722223854658427956641266789226567570496388906151728264872858837659561497224725179670887692549613241836149983931130494984473677782332718292601596341047650050655242787686642725504799476415440652338768532736862894994341103112510846085555038795366363623540651231561162054469009122720229281962609448603534582251025863384324663369429097692973945946973014489449282081315866902579317145755945107544840748561993504167918201412236314641074143986808889582459595270517597258018236690976481536639505132057771916249091879944753919917198886560215159050882815324775578058009717750727758036578982075924164747584813675924475570016022679353013576280900301037875816637542687450425121711438065093719556053831106172483960485458981446382477765522599273078002319365031796029788280790258863942375403946767435742100989719081429311546872717884237285058377182894658692813396877165668712529535495526764377652531142585086965895805679881082102624904633925053938526312843315729861031397164314126239476992061528186829860015118313357546426506215861367442737486614224768538376564125590870099695085682167673830460133909988591664162573052107648398867740967608083999345359468764958524249520967780401112176260213418614938590293262380513637553969067709218968379207302814663297306339447185107116578322906335563372999673924494845996390891448318633424638692674674028320876438699288257125780130500180963087073587851184383801461703977385878750271732900678924357504447871699558830499254385016835456588346466934044397030291649753308898468234238720559468896724237427099533759814018674782126950799961348003534886293028709888861161854951637351805567770685572581251534131008953878695222580457841953971569385430129478784927993568717222214616636284552439332283989451765884279082069418548250108296388186152993782426182750354809906933977966875244503545232781360786918539058562237171011693810011020312450034012989693830599009979546877612215651317125613996355190209296191369021535254459265549132445849858156584160366222925072047587855054252253724889519856585024271708183811308039529439101439659047016049548541119115754757430717090519945574573043041112408968663907996338560152378324582497879894730458151590133379540050292733364405665030202729039101541363364732889494794875706091544476006224995439008978694767710623572598669017797400225483973047261144011906450046416017842020961255756575013115775069857252055407435741162989758928292693652330682547323242194614057756080164202836223770685723424033690178240920317561532012425860761673867215222496822980937760418011591405832824238619250998293045995952095080200322663406129878308934795078131474943888258584138671285617261349101072213058457849258888638051141458595142690461808551864218518472929246277625711484983574984384596058564173589460700198730688920200188812191975624469788936709131905964219284069826242138169986641261902750898987824215308119418093629679562183903503376190086845611559187311417936594714593859709990709535610897809597345971805555358870703086189726176474244714929483301222188685555117833333651246399055122645106887697192434575797507070533478694583889040126701707581437705645324936503430993071922593966502772090592923258936879925001427197668576366280087982996677339709875910530044237049991563924918045711848904787733966226587326551088291393771891961376779626500019032287870106427177347889920567461598407533807313099510969433273278625386325360705037016010091745333600517863338069539371530129350293996783815325479651213792001402304339162778288732210891464444342613568985734726388469836061120932378950376896658421691829895802826262780541843256922526366399731015939720837889275582865245875170621670565933852536059339915084233130952285798667672688698380484801495816245303919199831394667787842242999376403580272123915575394688351549767083340767936990936218598381717642942980131368447746468119145176227825009956191787263556722737520574170563703563176799291892207284893933576654157252647600584796560559849969373483028561234083702118051119841014424118684481144393737627242084931934441371399475344248463971791509251107376060779217410269549176246332180595781547011296579783657724136200903249307622211220011605052652471956875194576266134707101378888235849563397253196271328394722601805242357238416058783449759800182680039935141309384835023060879108127852610988220842319294743678601702342797086529524680217301619356949241549828030177385672712709685205042621749154813333250354177100789577202767229328634665189148085447121442391487315202138426119606277536993834827518817154046722336748090350338698961483648482046481990012963520327043113219439507377067221695581164875166897427744612978015609260826343484594426720747983756076812152936349095033429073721843843944547384027170857666499797387384230015498327857482664875283072829018664408945020847175854208407731521051372429895399263045942615355456157023158265555045167076995168392313163940538939014189517688992474428148640084438234127194595200288155770772128220771783440024933017142219707163048656294343570082411134834259572548604841938514201242018390702616266763530046377002522246101550576637258699627209767581862312609269671617103029156427918643973651015811552747904129299878021339042576776229949262431887802427461356401333171644965145560721605997125525040087679935792339110832286091385804517631005315838860169844902151152049531088646073940716620170427707865101176721276508986635355588028170130173419157899538050976908801870697195168244940145434456264705478332522239508824072288997775301591155087582281378312636048549587520733323190970515826928957031395027511476058141912389601010066499730259263619206087321279521945303770880680520214958213937097327387116685725860250034560250296574121808955218238143295976044593813709333326383308296970755885632459830480501386170184935967922482471361180230068281432780561694650646540709419250941947398290609841013497015944037313058766808481766035265103520068547784641457409463995016362892150553056436146973627282945660918794841470670045043833938815113449305813644439667878923644371495760859798206279077738597121743023160865596035127454977580907290912747718163436341869892021858520916727721167085044391333806677749898055199249773493754803914277778283535852507924507584845853438997676223964592450328594108088703327343961677248462142483274757621292894613692803972728018837526700887912218036969330014157410884376887216642645470595979664011305687134113528422701355790851981929250237354487887138571746626230932110917409187610562758681370513755469011374337541707692631167406585451125399541595114356442245769855068294890525305092369115988971166160614986577839001940097140135569853534892950047303962611851040603844007840748585397655026889037272020842410840704018653392688780494028488754532219329409871888150646947016881998579449818926562511120142702974341645093933752190672631862581364928792922188787733069231246679450277994897827411322682587379461630810386018126520497052754265534510621235388222290310893619625868660008748035268807878190210217207235127340545288758348083447935090196136779201082442453025947185510849772903124809082937779970286819721340265494935908763765244931971818287493483790950187064535372578860014462162489792253226594361132091767880530725097269779780892585898360921363646929603880077636547426315789372808949911753033090458073449790915077200912683524674569623099234687206150952265071969787394531901584800434991402421709504744396991339554082998368902341137898865324736143796506955517787264525922628669862814158216969102441357307329232809573236987358850421361335860148639084826875618427157290308542063549192158484991408325928917458375322046511573465953324951856202531654832764975453173082433285198960697421127321946579031600953013825544940358138585377720777717391732648419286794363098813412634439354739275873690899504274596941616780011186240972810912929172592968955185123397080947654110243752528023264483536103731775197728429018494409315839842284113099001628673242900450058104605793878627271385924748605248149812296004598655788468165724854395943723489641157606996825611528420607007255687604954903223575861322817666267062293152187807820477107078146228447224170700697023783865737272875912173491264456728039583941192728281170091387771238692908971360131511221140002064346127329048765610483102159927604992039246295689177536704981718615362048633089508018578549642020370062969508536618698280693753218035149840336828412738657812101637403063260243107994532267231202571710386962269360099292979300811625124966793568114921578565042234264368743313477586455733444858429901854418099806601736995724513577617184875514055006183089442079813127165423805700248046266959735929842140046021512366237675724225379193496854835027393941505978014144123257101373409635502628509566000354314293907372978707301091252514193571917513447497684408455291036286010736061058968906637820176386262494428165023468971254360897348742418963655719391666490329719375801832711606311050875663533440308659415605448870418599499147041816915168637450960625036539890674375399383696811174654430318948758429445579492810382574503171488480703702786203040906491786154426919381957038454413291174160197582994950770830165692948479117731403599435058077371482239140768217464569463905744711379306353112612458269156782029369879332945336194965184107936097914739564495666488222426870207523295159549866255980979571766455060533084880822311315590176237046738470295717232703450496474657167850074298637400024053966399758205984101647881431071906017822860229240125239558558687734031379791839079250752749579740331540368380375101099575219383429241187084163402120530093069717977845146058983977460198327683164556204140616304053764864353477368175255569110262438795519159213880151323884574070953792421888135840404205481404385348217961838069230605943883270684191652233051824358127916439286653742387993398846261462252171934144155854846449684855302538711590195734743765078746520574077711033637516125568311577544574472936304848740170382371489810273052670628369926668017245740081245322356623403281288417064871158456682553323448158798398006943684400599552143615888987277821279366533739556505539945887686556615675330705572823563387051932225032725258325838526188574877082786823752689772736399580503295572177055831870176556328504955135772796508753846061599391831053905496954184364350423684040229584225107241772087428581904348728063739440236367919316417877844779595922040256157484886510575990228356320710560883694667592888932040988536394232476975733365376922243671955749065844822057923286736846365494080599580280853820671657787470585042093965396923010028052048947416975650662363661563147857654527152654780031416783998241788141599323425882543049225881837596163562414767680767471725842290390241014945664850222458160540340015649885091212376494785632257603694016360917266386628199644743270461361633850966952625442006103600958576282425399625204126799328538772603668614976032112496806237724398859890990729630180921837890802549665279707499566915689987594388602145025260431206566253536350497332222896410406345441225789052772728592086532879046789311385682242687158989454343584928209483346700127665791737364748541843097993277613345991666477722636082191106838866769071179070194552030579612674541469755631410337142361580680372065916789660125556036965693820728184628399353824238964465976560572290206652135719907004087369931524790962206863647509554316661317684952854465307192369764047749558475120215116209549965247038359992600340352478555007426577521367387730272718184215733739123459827126477838387539256193891014788845918652328578845553599316840015494506253605959386875216935678103737400845938536632519504789928314198079339198168270715157962615715842662118658934459157735670491340819555963278558350142333963036435391454343064918160888449132280548392985238918682440332891039912896736918302363342174826645990203698407142250896762044881340038802641056165481436014334185433999015592441082023565715000581406227588587918526699843905501504271062538947522377675867271436019578211185640825598837680997971599690185518397193752698996988555707769624963701108919370881709220014454583950584544236414064855806514518344324384661498211462253081709108244146402609165620733520385393015677919616959269764924008487799218656678112264418747730320204437631854719399762601722944165562257784735054408220502947277276711224035209007061007212110351023334717681122479011575416867479722396316634319369735707869625413759092370750258141157559338485162441442927737603042136780670024670514105755213828022181069007976671300031898321719996957249760463117898914949148339454441397127904748017664332670445271201746516448420130348020705989783648524566889277258861349367328825366468412951141876452523058064928465872406500147215705343008642209187269044084457672013044997998914679614834395015766635103336566865000577957514614103874660939335876167062355897893071300032399330115221542565071696727150266510939617681662603087324552559656129988090736202997974597760605485222121620348936493066553526139876708670735557585663243417016121566301862126728684443401516288065424627025403033747367765281033076042757130014673046274540997248883110715681384873766257804058529671300944923785306579673837231805778534259064506951051771211581851361086207720772447660687426999109849286139004700071531736057433777611613491692369767992288211320794191709501110357411595565083961599651915744217339673915581345897582063266802665277634564958906151057807100348232855945172679765600767657613762397730123417839472260796458656858410793413435282138775574426905844797735787217737159892007506718905512748551908828546450714118773083981085204777447747437023822366380021680351370790581184711875426598397666512084860188151938459257854864898234324646476369277974005007679963483211766467921091967003962687831376769326872705010221052457348222309604793563622919709566606318517957379027858443587745891518503446213534620294818979858654164881477214205864999210473879909764111920108243626839087832033283704505600401964250014613092871349401308965002893576763580008650675751471838122785485218888679263087417312395316749314511071068657626574298676864813799319957229767059390293473783803084408351627107348888901240124704122255428028527642560604461895121296294397649829365156710537927892560530743967668674763564819409051565126351730153429338355147051748870371769635039447977679009639092813924597073357598883419351179150772665800166478522972110615721907337161461158159194804818986787554998522100849789740245229770861864124931859260165582300087956065913088961351153408519162016260874750493633721630574801917198674396384613613911722623382056342068149895839393690920568013005302782675606925858572160464875716468019213221274842359421276701287807425959427260076554184358502077336943257832650404777846521313645747108065149645431269476685756254918791388206452244148769838662772545167419712859095969528578596891635989799690623025233362034698466004792654665043927588818478347940170767197417955921861992742065063735066907559198908221943669755088190450547929456582756512900762787969210401706055468622381931303150360394830255573467246709952473119679212343800659643272587125424874185065923637278295596047721013132941962677659027341142481511220724157558670104022780902272676273513583335601084104409614102334314316056869448373607421833437248927529775390090411209565613326965715709630881352228494647467221201152367938514915875541320628021316775447748440418459712531423178134953246972389990062869935920620696637882677199422219896021120746643384987789469134564513348239574180973274237285211215345391619701999272513976791262318233915697711249488756590210303432116051331887319724300319212268963743799280128807367962054540104919579907567562081996760105596203523621578695841686231514282839992093439299324584920236704758156621397890596195109392587420088514728376120755813232597879374418763488245121935790534684368079538301680404019399985267121417064926151980730086961445991554034622351300795743591351185061843542481017707985539868436352875815073410087134775390790109082882929385265313831403573891614339313772018731840450111932970892882301584314131669787497045383222377268688916524542047493186704667501932407201383630350916292348089630894623493793425350778003008701512787386337957129755596323837998739349995587396973891533280690690338745582140114569713647716933283910485217315458196655079687317088458519758266844835800279647686051827079305355895392867685513477076401626982920530013246704742593871255203718530442066690702405834987022580927545487642588096341301439973218798082917243283609931282091551929985924535307054667359699004969667773422625792340182392049940207649937117796086782411936876929472255982616392354815727056708150750845712148357427559647113326794270865589988899284156937453456062495450610571468181619590689261704699619660979916763053328868274164248565776528211728773121009006315712212135051414797292612763404189158507059210688534680962456367435619909123647085014959230550174354641823468993240744156804303194905587219887073669316275191396368553253809387703036244204984707682916167687060155358315363958898680724184282286481560162695116706603880166443697813293400435784391919724408795458790968913070350303501377113493490763145789211480369221825400049321288664719670322629883769939589614928204673735146572221573325558530610214605729975060106968033034205687989791148137568254010793864841816214653172751348171715401990470458566067324860149044450768579202233186692391776010890177480300956733898592553545688042141984967172466548273776830576611870417903638241716105630200784920026228803163642417126172429439580229590167023556052636789344460681601552580396686565479774609391700130745719834462360438161491299898939044127287198074236614682574531963497632390343705511584274518170968991408792714947698385943613947583028634836784066065511733157357425312349520956210692124150284298626360357943177071018310349948653958125368249769155668599818905660293095149627993186159895175284658973501876643984348061474371057934671322111015594152242670384354532024889201049716497853458471840275934898004566762331252276092904373114238932228572058364668006043030323744566113248748631934805929431057607259329853614556223831475719341047438626643689175249684815443854533677302410922384179187401903147908279339716408247589688341445476987609679295432959901869769180065790373216655911214664993013444491900690057629266206441734855995832772446296840775455163941082665678716242389360196761394870613436886819667733610672155518980434871572973691784817756184148908952735443689523636228528855454404935818259750778153241597931571157394667816867501567323163393320220248242180476484185523145490382987054886474185868580261982643190794986673524779582866720676540403719358503500050419859091849175325642057023011578170344766629646181057443040640177442246027936105503845268099103206893413651968823629768558603139800890697608842668620057798601657270596694049413307582290774561824654424179215942762362508836889236983941921526738990769410250036640789521510537421262991955293090481548482691587646144823362365295580589218962713047564653428707426129469658823849411455019155429419612982768922415374119771975285540611391834019203030884598129095058793039906359994267778672732856945637325199329792407590875347761704805305365186444145566129246623880611392613431473992735162254388042108548091642413927733476882352536448168096983003731226362984424255907029484068659316402266954119952837130458970373950300070012027776594304660072482555325640480231544932601277636802232122619797596594045301947174579074317641247844632664868355515182633174211152363188251176271492802725555526587981099096727318615345471342929542500576425855946274330482916935424967426238683115911126732306159907514043174195463647426994937050685617545867685498635895505369083212005274274392221899331019750608117250146828917040795731567710753885804261996113915122576661599154778531023823765366355362713957729807481361365039920019319278981967160883026966505882034203333961995269817950921990719299270508931101708279049073675354367725213237659126427891199359681908610130675411564716699415736524485308339573505300242281903961450458001757088411036021371414114476408324835337183362203017801471238756720350189325610073835835526899428216942167030254069649387827404915504568098954294632696880846173527311262544998145497044387073944208347468111476589327803628077015893525811787944068317210432018483692788026928722345779470876329329465962320090756290417396096631917432489916127782279846367837623856982718704766024632913012591158491582478817335651131496464025774629645871308377841926755531696371453475424260507113349654050009654052748314187888373546926801171688545768365871235853923305416982169521268162540617140746801841776541319821922829829397272082915931570827162360523672583876363055246471785233188603329330713990420062535316107902465174946036873091967944000554963040611073859745451860892790381156841947247992948988429346079216145499824800206829630873017968457691573634947801055946679725633471397104841421491653724575758979655411677342650884998892997833900934009863490064066792425945093822382729250820723747989222263880552152759953643847661803317366588749521732558985024609442356795214103563371760873143832026402122478089491043247430685847773208478385672342397088292890231840793549586011284195603662601441436085285166545951217484326852192892014471311264777948491318897842252353011954750272700019056169564400093790467285025220787369077231907262386284860504990618172240178282925006565492594510767013326863501183634176077288816748164781534372389272896518923330476757801977096831249866866327898423969941231087387174144718098431579505614631137244339031601931028016063919376785903153478409989715690051256959772721157205516757746717557790692575072872090707360921277208022003797214377041763923361206095010986921421350662473890919310592792826413223360800597447928567262020823910386908475952094349080263394485366633835956060044824333100950314964400022660951542151059702754184841406505701504200189179327409277767471198028871273431837557776573271617050755534117886396056015462027696148310751681531443102858616752623983657150606680472501069222746867116097653947421552205569826691706447047360475192683005951004521100842676659298863013553504170721332450397580029077796850126019062542551986445844603408207510954264143375614893161166318384066063780276385113591918209261850444734648517828545296231267116177887641658774089221919778505489082421189342986538062748108411895453768068388320285238637970339952727447203964951369205537346660485878409012113220552917983679880693127729276228760527992827587953257643721120108982970705792294873663654719095206583667439866505601325368777666136579653715951573005727103416710414565132969280936341746551687484471612089149107757087212256623190590675360991829978554859405470089416918976065309811928020812166800292222080623301410319694898350812314336221363245235410894593984733095011413143588732779928856525923733862260210164470157115715508264969414412147926635637397351677651855104598054524497272284491163910254988718272469704955838321588693944480340482865112402512687798259500474079625624593958587059452447275902036069532925587416663308221812906822093267793893680550039630510631268706642699876756497463120549163782989931485021781288170616820576377457979302852280046555657038375161732045605987249790510133700204891550303260286933689312964212947385521643558556059281065586282390239254203952122134941324413630731157596710158533118693039552475890172601675395278675449787755517023552101266458954654950032385930554486429576992516476290151003080215607198204010598337847249346678472775786745105567595944303684620428387074339364149070500292810253652579949899015703654341061875907129772291493997468632173821824568390175846532923210404579246192237174968307881647735396251261117937731556450306657468486824779069157083272704880517416876145206378756962454245030444641573551426776757731892019923526234658712227647563123487045497300783670287630036246338179233696086679215355107751802330074417281236866578758473105549915764726461560258133861016837098370436989708036984178226211770960271727413822838231919593749701341865477249249330186024695283543861015850631272888868050768323588291318985422667968351260218923126094809569678672672878730885104498022487389270359321880076508813914359747800956921187597538619350051613000138741480923024329866647292468258966615253299667904772866964370604842663534042568102853471189113526697699575847648686899387101255262659461062354006135535850269934821306613612539083580201971626738985428745834639984147720043009084176831325574570996114329015592277261034639986703414014599391381711864924432377302612390565537787378742937549305148312897780801060052260771158995022912033210588242161829693582876041165520566515657554163524833085364550447479104512583510863754585837582092799587591993796211469763503093464157251534085568810711751751021610730332725643130910107503112814210543573781133667386985230733956403697542881915533325146797468164964520776164420517598059727286177258799306054671596075612305054215960699966385016059134950736715324246237078819798994767671182785931896710315446166262805163460570399346742893130069892806454885125225718056544382840760279781185979622622745112673143319595985192153137916106978839040728142492442065099978739852969238679104349929975015076304293035735420640104449651223565065558803091858878718962673039397513987760060580175919801757378887954480588251885139756403549072992402983605042454927851980289873665485725935476895993387092494630058374917452421128934171505769419154159642966643208096084697767193917333929584987583896037789144405963991812176113390967216466407129338168709715901746890585660164739267285807907189110759357985912617101113360487437320444669965721124172437578573976166578603856489762640908891501799142928233079545847461788729768492002507524606974516185841482793443989752103432211551605371400703919245325961183184925338290081895651318517872699443351733530062629715086330618086081100729714089630169753995498159141362826763771867790328676225249445168344623487162282552051969707871004930105312437436698180367145873802343675410012308662665514819630924272255266442451601451609465819630947874004376728997557541172009558045063048558313375941326759217415274002545063898993426754003718026639499867471647820852902097063379795757739001047903909451804180273775207578361890231719246628187587606974579956102506390011291024712687523483920209416248819561911343545894569393454019387231440804263867942909079923063476363262726963514615488426288815111928816026903860910359159013942898340018088311118173745974764633038915494949964498125955008859800772240449663512900856131960214138446616382828883613044607778255608045766670000812321823869484533397726202753750566493758465628183498130399790581443933276152515382273078244796151453937957303966836885106269445802735142384302964248102077574173464830131318343707813623799676443571210063141029315439631671994805716200651939315247617060572564276608631138858564399753578938162182524298137214824809855327458008996849808420108559433981658212284188519371651735611639255373422212878390507607887837696861366623421004554515486727016423217047701581133880395911998913959305620761513857703156984913609180824295072158617238295928568094024106194755514296570226332196509130326856746987867761614687307247430668917630977851506192913457336399109680369876479737199454659431329018531579398022663910180518404122006433724267061230897367094791178781871647387398025314629960708911610440180511216041252806851158147719469679323371093724214879889175952998382304578538713146197639565395600042494236625924604914337058616171479482652102598670715076740022320914303034354482796789181361760886814434265837792871890038489523782749653972942320440794804187994467527695054409241526817504228330173580069027652305945661451873420133720428668858720537048244155660746284707450895075096216456377187221108474254020009911527801912798698660409052887143446872171090124804215987749022572656631562203114717947255002774770155001033359268724576402229263055498219197985940174121159739513105543575763403565956998385087907086402914147709190994959867791364750060237173703857473212859944513052274268290551552474548285374793412206949960374931162517204234120936528799064654462434273011019043701969369761909846359139907678078582399637186459395243443109618981233801684450374615528435045112309101933931519109454063610639172815975298590791774721548515544827445265096516618374116687907515426829456622755079800339804548056466719908565263864433796106620959142858456985184104190905515090207503733934761615199689604969160999014946726919749712884107816369147687398849424569820792684683628498270024186699722010253395330047630563713864913691509237698815197302622624226100282399835793965959117333579055337722208423373185785096693903490570519977283830763315937610256043124829917296792337323341182073392778000773483377291594303754264782728747324226372368085991733650477191239470169964010676227811349952746747585522962715882756750427961984185885266734692837473992487211864588972033585613946451574212146653847524016490934932621774086626623496472197260013227949286037220308077945363537797480142810891059362373838643312407103711420781649426702595488465265685159368583075170205773309376437314615543097134079601858207588710457342006878093291940922102226225307915070696243821066988290868437990148847135942163613216935431967557974695646997478964566266667475572476885996464779841116938122623963827892557825819496570566881054122439494367474625302841584080744629646092085407863101933334652754567017262467301957216099231852915673191168473645857827553221600483002325398131353206287104120581418453448921496845639594923783665558400170686876149772273373768954220985325850204101302186837596519088073704045921362622619988542912763673103091623557877639783058254812612906035332218859441279528023958838438750695274593150788754942004775998500842629384338586789790878803856658583797347140689023275380454491284753544032964269271446870109584514509392302610555388797920486364900561188215859469616213517008956195838206982851113215522646438267573936165704504373467005835625767120351936937023884987893569063608650090748986247606376554672740637019897890646786955979878759410665200676648589131858658845717551526821966353433487155582876204572088799892119561449182313010068582836220236096717984311636715214475059455155099663983323619123721169779354362293938491450967384244493608487908924377493587431584070536031435088333560532746525233203502555895833255469114102638721419632381989882117535604213227621936119778264803718038272707251143793850380398520513437094494806650464542045349674545297892413759448553961606114520211033185319922515025220446451188423892777431025388574907317416437827387739787229577033275627517560977309805325629088456880502493755663267859682984159796739959969087023772434648059409187467350571133628419900373579602338213380520731379742469307578330832551061324693898282671564324100013842532840085720322879829181494565654143346912189871742068505702782162629715821117728117368016889966006111838039790842093269626500735780258858937655627193012993211320265652647575130753981793877480666612422877466151974720940891804499822407068338221837276063567661173975461883624173455265653535329953763709093421273571893380563647771158643045669903814010303637947424699298398745606292951253864541949803516669091130089923758335573462931346262051836210083257388856067438065965615262594636744151067542377886809528890198388397423527264723965952325052985873775375665346560783532126234573573668256811480964073681452646790740904226888384882481458205407149459090525432478018552048021936215866992337637514398196441919036228744062159777856748482962920398973370843437448021732063235510209787174997828460135174551084407660743553864705319539301774473263941960671911356426063810502148927447557423069659482729462159184419981891425835980880925885124571502511603852193484836192122829239000176763968612067739095524510516509488579970519484075984329769424368790741582899568950430498016273592388456510998972999753963026775572105140380514114327664279843385840596225277821688950808801879531096476847064057379761040616480504646201645886479725664295828675659894947854239416018540790853879903785017894640052897562196921784152236917059593930693067100637697543282623114246843640731010570668698406483529500522195791561160133810424991904413338639541479077333060778332034599908107793897597931729080548081886269249299299382455834825503781544341176039587093565513147818649477547388891409210640482276510356480002620238275790173950883568061744839488856730254972626415255261111790409202702846066175684587565708087422697540329672642120902256588460943915082348931213339373322544274358736857246271676474256590516480523441986219447636288328665121788780601611141347107328707202606207032311371873721234527295667747294664327047734455434903066391160200688506558919706858190354470715807894298717915718191237816837326295556668166028605704687566524757183713383378845779224454282396612432075357878532422943584105690239232247103404683648013406909106713693715049059026257741162255073894234412116546353063949731073947181057016180419995324331755529032896056375708701863762981597580516807498447852252460849913058255700855668616055221416134051468617820060607068738010427714791923414683094948041475634106754974831619020570586602369570563158473095716133137674181803830523611005433125063683467132019135601646325769569878072276346407903265236974571956989509842993577032556418664613768899612456409720661570864599782626989341251011355285238263365685595287600991722767663789451124255190518357312998989741445334673613772384457173972078377974653415869100999958811508813732339800022601623948796202668928944176793011377341482817117568574607684196286430634012853234625715801774376290734564791824880942857006008178918669526218312657032437920636860738472702890333571077609173647019961889572226600490298945262508199783616824570850677169621459232375668298173764577259620095945137199851254522528510574064943973991840275945946145686800373837128257715040950885521587951342761655409984465481251782261821955944188379689200688165605062655816363811537618876357553277927683893584356111873046643783841638479438162475606183007046258713394287451850223875633684796936139371823794850367880510066509097512310577667076897550586984379756357521019701560506151561352163264650270947542420184625245955381897303291259596451513909033320493671079730818699275288255496261778385437953646315786731268235604475178403270128979886105928131536522438302203896301771274868453927013400727432454291834826499302456974337692009587892458049362771824435703916531276091268678434068907778662918589937135847771750388812049245348293140725119788704925228901331531956825395157923040173774870262774547780329561379648713587560038445683650233928213917481235812927385140961319067520000035403546083843194933510990531197985158208236240917314000187645804047083327296005041926671388127623863293002801795087660063682725665198118700589463093313127767567335089544828873639588702085978909062047167919617794693022752090176460320636395472482821773907668322703867335871346751488345534131532888167333653570097397591477041562194773990709354538536896849212054025734784111152402042365858717386799288880388390090879607806709944944054572360150792071017623478758597263953091992582032040117796702372856934954753052927836604672442688859731856569859718003045347531818910100269142732988249419106815537849473926549255456140166380199138506803887691231121059659638845515155948160284809493800654119389723745559841717409825059393639827751585223966801740580594721195069729431099724473925230926576019308301886776236493498691751676270866693214201731652013329847090652200563423383240552341778504900240727192767305305480101499637968585524381328129207480142093814214949529270035950130841741607899589673019802855172264948374643923968811545180683708791077014320224186069539873760671496242198702530622098395004812037760826333366381767575102242957314832543300686669584971757734004893049793542561094382046770555776248673395049165992965751556456676870894017742575926773463088278264763484055788071680540776491965943561908696785634358970774694010345818997945310430369612059406093110027401836099224928600984876492030737350704863835430400109055132723035776100352383494898690947775362602320312920959874887490998181940668428335324322459735887718719793320278711108625863805927039207697022909228111965850929370913229676008977897666900785402484668706912044444671631729166460951393620426639538248986163649736206125626911101614442280802213445346054813568103643540677429435317397701702040459793293582649136500673632564257999903121413184493822607495024031165643559854357658812611308918617149107644384092141829295197208866811533104725659483624871858273006043146665885744914703610360460394740328045153382774764101337151798340051592078807877249449115743152913246568504905658947345167997189474429483567972071746261714254217265493066217988263373966480859226382240698243925192800839720858455261623727892533136271630902280520232570164371621715009084669750544025318546941729141896892900647727346172699777099978554166990819244067080915463552054335968221105885187132762325266341984912959458912865823972659424882744165675675814386269701711441694324116165812497174125786968670754245773983758469165002073636025735944790141214808916051570266257855312179897336951416875239943088612382113555518173718767215104309317454424278418056082561828433131428896102216084606515445325688366072483754312802437595562324371173118676667481149106816703605602433375172999352715615626390019568163562594570613667710057542354138270675966347647250291646813848433067344984172118396963238482592253000918961067584800660632659921946019000618795242795925137487382676781943147491577826743324030623583579969710670110054167097730936728598046056581795360752896394562511155424500273540480677671870013227273149935949150157590464053678961681609674093094090539268753065341626722193411644076404325045291578010531051410951418902987479002857852798273299416835461181811264811384324430044924660397892372557621687241029948497548403623690238337232357985460491602257244388271508897266304389908878078778021415321404771516219258688791803428902377559127399783479337065461409838798277567725548369091629076370403219515351109967854291074076260474095623916246384580693032494442308191364171637417772076788437758291092911715007078045648561245748451278399522730943072120833547448695752990421412268006170629612666220749705897295207573954242307013959764288406535631134908645252709712500360753355933786054579193862159679677093903037935018965141273809441622497650181469100173875688832992267553533507924570171629496737161445964742103753526240795577059525631943366452384811410876721077883205428232501469321248666558661317993162146691656570498466846477306883356731195767239383054727857458762852131123861478364062822028177244331168980071561689235326288542143889718686059343672088480719796651375119309469026978240852095459288168325445237958513112889938381704571699288489028755279293889660201575736880559282168643981902490549286544228412190834038697483947116172769185002611854310299063270256351243294308935068287537476421230649637497038660575593860921796039182785871970989606833011588330116158591176577720416398125566407022303498362624330064381707892377690747925283003689654172398346598051442932366292236526834406204376978301328191299230090640807160624362302389204846984161006129837016370084932842214700538280366371818491426789039937348972741854673712890378637666604819437400019718120604067063752846979037116206101674202132756965318006449197186713909733156590075616355999204053790273085604082428403365108135569618313919149918517777171311666547649001460619714634818923785178909848892134665376843657854411444255768149471965605024213610140482960420754107535136982871058830661588192282421820834740055896130559107900568545718829379939739884453352262833577370095207522797828534159907711238599423992480348429604353020898118379888914469970873918679233600008037248821590002349958639519467644938804875231744916443079499236066015535635847921917791127356063035428039642843346462251939548080774685397816337325940869508591988207977356705046889444812354283616293002884202771104672354716065023817118599995831330149072198022047572560340352915247639283659560863932956440789388524721006448657741372105370965023053765317631560031990998648406023623339751173423254930541133394699791482793862489514615408279890981807390187825243331056810406040697412159184837143489350826360247028948404760237677846196193952578589650629440600716042421658358275826116403706307616719307722809857509906588316894547128063727393189036434891646219922984806311404912240350127765914734699980871264867533841512991678873899198537012038836108015949720665771667976189770679800822063174892096958848866310259399284025765172576723765289596269210331903799108783065150862057233580739092173094555922805269351975012471756298330984997582109273438994076150756923873650097965709246422562065676484343701645973655311079664267619895589026397165514593818071411732302628422004235379839324674582845913070233217792469557341940029494647874213333483845482018734350258052625674078658933695295668867878334402530556379531944632411944636743047335939187363624610427275659875388936389688568602843973666300071064100838602006592031298095557243221308511228319711381659824044558360465157927160113789758969551606171586285332115050984940831408827138225848867535759131768177072016969278730283215709557934365287850552008572911757212999831342788570491436563094634351340376053609877551151433741023545297663393629322093552491552313287766920127537994982396880905835066833775253634600877982506242388234194037535838308582102963722570672801461077524811832884917539109652558246247760711122815531111094551455093120100992931252411469231833693605101299751637616607527736054719912239199140020390050144016463101741379868606981948143000081511948042633405317581207463424718966711939569392152362862558857299172679691865928568482618107066280734490768557175967309160336573978882128773173697708969690393195408151862348564280954770420247302519471231950356778957023317179330310523926784666012152193796550686509741515530547124796150706557734581603548438960848046606745163904895139826637708469739612048763802060184496266662786847612822201244869300288512499532944159346604163044786211798213193627072195949454934954627421638405446454957141018850711996970504412427189160580906246450411932147584081441026953600055963739390065016416203145507678112609932357577224326679711250082921375460063121674553597075877482409221435115575892149019872409863585500190499238617856357081351931597607359122696466118040596770830183296790777540183632498467822816585817764186066041107291866988383850108222809453583887845748810187840006764252240046453404467286465525734327320393539341091078754353008239319580068798547594872178074838118716536961367799391975988829513725727528014361979892026971388273808115947161165523128289749279520020978416419033449716269655894716815803129241410081973078087676812460618677066837213423512185093922596118317768260567319911008873597684636338289606624814260198069968350927797414858676323542048723109991563434115177737825912450119235758848413958817188568951886154104513935942837613883609437520048949609464639431786616249243168914214532333831742895079395299004324442290422847481816344862286982866000475757919585183735241793620374947602290865103037289307286633928778705927609393942745772685735569824738668272743248902900173459606806331012535392022322869642357181424211253388141430468981782462203034343360643151511248365245373375029331144461185228025608582322012244486712419450151981155653696078217230887061342917603066428016636631089729974224964617040554225248808106228402814230510107528957886382403516803308326569491622176285774144422956946316320708528919190480817290319695736728679845925413852571873813139606411446096295754173591741007403625729368418224131246126847762420888421080703081586897655967033595775763861049843852603508774440167272032084791368039579178724374862660796542480520502485492265877892370399065473978805240522216786450552832209450671555318272153627171492258717739707834228244942933844674249319078786406633329645419682800167309343843437622379957387718396104434405326077732869565100448312792307530181374230652152368499079147144066246815246215407757536818895543105603475677542595541475995459737835194712714100155505072011842467841497212263270899605171769377125161307444265775491282746094963277866708235715067487989037753629560327158914562872944009276023325166121076120691267483447961790610913979934286857291067971807065715262073466555786310552175815669201111345391445817089923586472711970707996781052023950470067033295681318362769468044974349223287005728497363184879677961651242761594928051871367806635824941328905272045751190775921161266034675108154758356594252544708536278683703985088250432157468933856680307167077697022046764654175181878969281337537832277493044292273790162210291758767433118701675180578200563317044701176321185733701030403975600907729909681758083300794161912175295181828973763048320452640508402811571805926671733320021698906846645160725807348140945880246525605080308149444716960997052965395509571685757443802746848598226984111661729420308040227212411190453585900945138024101305253541008499877636023070202256005997756126975936244478200869109435462414880326107572492875553248606366389925998606780760540965593618022652799828345121048079526082904739265941489752502802603393730098485353135414282185361869666382909485078152915176099085555886117913768574878405005227378610510143471120132258764712097057827112187145586779504972996277995047403018246737398399913300624019766710137467796495431904233555636683741173551503115219726616871650109712029363921425893812340773202979877176893284613034639825443495362896070106539056543338202088501274818646353668486468174013938910145794915655977911730495187071207471009393793039490296370341278525704509987744467995832514873171722545131834187205514103779834650917145884868381227719868889530320033779202295258610194714417271497027266741688482011220963938875828813060450255488583560180827995162504072934352005213125370598919020145138780962638367402070655212117823933062766582745828829720164458110137477159397092799649173914266891097528188794240915148731731977870870536197844170411169297721873530558102316136721773183235974404655219091061915981494535695577928545875128987159863077878327206054577346457173671547881504692063113279988996316459657788763652326628922429794664908100872551969000415357726756147301894314529627610297765106310623183399417310543703925859607499409082448350231250310602703266482085266070963092563843504345135635331990732687526638439361370101775752693057584388197018939445624595674784456537388293729735397005591953692735097443527321554473953005464666224206251841325997555522645364728798669841112440594270560831885689753725645834558386312398137193702063524511458392756939155199771701627264475963429549939446662135571016979958638918395460174351196467902440164211880314438500504612529154143205389639239127003227298950589303014528031085341641141554853409332458293886094886014365250265185322011355635867577204674997030057854364643082788126780994326305458412036940934965362934041444240922812319740533173451116250186370224426142874984998941479048891068154978555163341268029387249898256538645136043179897184297029162253276438419364655999162449697687399520073926796183219535874808984552948595670431085220498264919641912141654932569532044283841614162045902967474597878368710274872373205527871269823327780030071461727350968199711640551096590544274440305674648806388543538610657368452120710489729538837662425081226865040870915195765161035938985938776513460430222464129527512796889199730190740044142390078349946134922076914651147424972593544604518503499018441483563344946487270022108762791468186718046938904101108684644305861660871528343929860991689131857492689948510027859073683013818075175689162154178121993009646765936588777678381966571150563544553846139514575180797041464271539113102137438045708786529917181091622951475013437556684301188272632080956380919595927493481899747341930208997791024569203539204667553036458647815487306257586596410210041137392196740854645130546890713691608601804430877398413437219468139608660507776854468551374939700546434032894326421190875850448903289853297230324225894252240648290195395758286252596017695747139166673551907446008124250213568291907939461886877600490958461110847433255831312144922341524101365070225555359434308415060987620139596156591275861099736134171383494246524066285722046798803589868037717360641072085560933848104608617434603586525176192727633988077370141128423018018236101592893851977383632363934969154244451227154276525472692010153956656991785092269732242741996810339335450886870815995221621170025855386403797798122818346918030014324546271256838458370853114490201762070139477397182914284643863150105662566532739860714118161621345931079425841763212668144169380449426284579544009520900082548472892950185795404928401843818285800913852845915455576044756322425559496988449317273586290402676115829276784867720873872016853041059635242419979011470835230661775732759899860905611325196469371106179784078578022725632912392421262420301075180112057334019664814626568162612738636851517386509202818837546665426305252802957973308769149827637275636749383710970997316641391180891576616253153230584001896688435451789856466978393699335231989283950791091605488602606487306241036407959515002795635066688356433185795755769437668571999646210216350864823079979233645007311168422885394368665005890035528252621025316969301266331137078544710059641730553022498930356046210030809832639009132271192809922725386857200451710932682123000137552190839988396737285427225476052170472072883948736021561651485740556124913474482803652561488232004010894493453620135062744956040351620743775506574092104351295085607192867621759705544778231902130922057980348279016561524886004275024694598541737751563963597191459355653950187416234654056395773760546012170910630800448194463450533890264434195875345953241483044736130369268038182204251514086687485509932283473034553375639430276198616824914313873706499766783430793115726456756597381789072949272952846302801261839399684949815506706337748523026309906163346400032530760857845493981578779267545499688175358995130135518162949284794498323871497204697072594835073507872171539232373864661121313942615169210206608296075886089794136585485588578153351828835277049825078900320190569227795994577519363603569199877924930126462116229893091731814340207252947420225622368615237450769703121976051437781981836506498430031807880276582461546652786724018652354055714569746433296266280162621359692247219383537344111664412860693030927110024804596453295536553976154146480478364871296085079543461319367328181354049035865880487567889742625839128758161699116175113443144574420154242994004299657022766830437163038382293155058793768930489265699530415000950929044107965502861481788988355173323003661458418053291419088965338612522735833325813218061633967850713566376799837110818346122649220762050272851907672030473823390993568911212703607555478984760667163859855130962333932282311491956082716366329779919068216852734371745853068006198482919575888844558433373322415972478292335670079620708158239477109384510515004754508904216869602613348036786197996790291003354577540951035938879373569957874026870032725196925697334911078726402595474024294619437567647748178159331034457883140062422919578149957995917794434433977136257835800997336619519894558895955472428807363722501971235048439929314553619985956361913556027381737993288624834470155516542934773377872610514193680689420704951764808021275554441529767435774170465058656704436746440515166590111967227642818015045497571570683490553747124828962243537049420826219367968136351327513601263688438109604783889275428950293498526707235836734784795163463433962614281024081886916051728487809781780241163302031683189974333785656136156887548571881856807893639038566871526270814227384199811099652984131104883582335297334490217180660767584171950715656131552850960424806327804079825526732187113467459876230516286034230172316357080879597834015149575619444213929487493073710820045227861095597076106904329867776880470977809837654235707062056500878354807231761688734352205329281045599558177658697702074616530866760649989068373733277418657618839303992325587164081516128734120765601754891919209378910322585067253996735531469180286854066404454716980578656059222852766208227174093002140924795905389121274795218436101282919598270113767416988568553876126781549290167819113678557178093030368017243080874582933060085530587603043662692651578047728419869776545761954981757320637081580603303745727136717237068368003051470690175229015727763325998644825005528401079462983461999431007040451498836392004763978988339920646122213448375099035811135871245626303832838022901268097703617415970712423215556337165709106009280356279670658958630484948788507753576524874766204361091956388611457123995592279063664903155755365884729823013800210724944772507127066483757008929706976619714797152552949414194917967531679684355643737505292049109142688940303424479765362920260379043512403854393244142364434692459923986223488084138917753044656674469563769725128174372764060363883627658739023584099879187450605199386910257396779617075078555617881763607181213095167758219396166680697857377233762481936972319039506504566145848037202809143859437101471685143048144814317386219037476243166641240434570621937292377826592643269685971445666323766910652867996263920928486137579584825798116044359312583798735601197101533212330166169985022943557012803887859662475365487715340230633597356867273785594794508793989883526598749130010555251141214605581870004462898381972451412509477781964345252988573643249147509508921667092224709158279032610144626884394153237095107729196907601493002891206680527182529975357595181428928876629786134746956791302243685811814428107935818082426790242515754310720043085489298532424183048792510254397894300405088100940766520429515063041019232078015113182969760553962615544545661209614973884826797093296411717550842143707650564213814047385858127294678905476588755493686187956576346103863795955113431663398629908696865631760186431999472547084003158299519876716480480071058895777000788383601789565179318930021352771868591138123900616638429982876060126582923225489790080866789849677688090702486931244837369181974263395366995185905258584219220254562217886423635630397499957070389218749165298035858098508889984841312885524512703515621364635274711733545833004790060539216332349211796495930741018172005421772497521686839433748904443300824671129132594081451112071320406592561274295759644800960597027006684677534220026996076953150129798103645847730926694507696806529604173396056120810840104411932835831137016547987799856336888885143626040180864617973475663092544924967643962109142099174799334657308012973039599868484822567812515567283947371597650281994509526178028873324037074364800825716773407568249497968020100219710393331140170259795864600553421872522697288623176415882347222441271867468796010102341627412359631562165759100835093877989296801466292145268627895775851803141899756411949706978636599768229857663815256122573772877795648299846094453289675747186046562142937492328252711460592940510449774043309375430099797728014613366621087414870884879400072888082115773157917784928219139822850355037612534197524806876352080038693754895639606572033123477513017033044696212399986554312379862674062512922373524209669591229164250169730728247854903108126197619324554939191516407710406505654414041366558232450941837570012885118998579624329444442261686023223072420973694996420803090581679002397034262783302903539487702790966696027180336649230634346222609011477629467898169875213547781089170391762596766721964307282081956119649510775643048852570622325823005852840996957547694456194888759902705398860648462760917557748290431861185415418022663264468725373784469221882757829766088378597961318606861020988228795568790385653147923653778302200901634991490503056454270438463272184783598726642979751728418910854801674266600180297925960052887371775893431805092265043182675329020903699511094769915362715609573512372862951913669439096561502383906510635382232759092869363585669274097873704709960367727994378327777645822379107353026563512047472745863690855103448099812577862419311399786805419261221199925998209726989657600201252206959209125313033364431120302974148787227431766135126579651200302497353478614607200818673418834159108916632271070370666312319207805934615715041398404856985350255907203119364054869156444026971368778258517482672407035092433930761984641495564460821610145736256959809878045172359157659977870245568824240123664777715280230660522355039705452302785974187380177679405887687404823245109000583186767657320868281629177383379780759754037280221570675147268097082135611845664209629259636990192964193030141392140038663111524872692671951614592266332711667006393623307851777830421783853624276297596664946937028222188502238653253035549965514189604280342048916148445733298021729439651873734528528219327927300220415225302132010869310480410353147886514545073305706819992050133399679798521236006745965579780540668034390801349205836067605846330799345047576546836768897931412659702279059213031079884802372627807283885392758811266846875244177969560363875560983440359404628735096892272203004656217714087916262358446885534307469200313412748182332088402983833528045246843035811615427617138864444530829893358165694236673828486741104092633587033277737597533715223599751443156824090843791157958636682069880026266766925027477166756376090317155380147226166741516625414621109016240819589145952145852037302649040234813189634202924155422948858789974229376144753650303575285473143556495300763100966622483996522392992310397343497214161528375508516436337372747191017558421920224082361969394217288732018645571592050658420260032706510756861166296156940561485228401377565073525204079737355934172950765950400377470053481696412018682315494155369217865411791803439955948723505550706004046018321381691467631874551364779952042774147594683529794132045941958074237630319105337658242273394737095439402797801156329456274766816881076930698523890183949909202135412270341341942808722159272860944001949306462895210720750963560021953744731469240934399050755516139611636123526738307729879741775597620740505761407624719880094274261115228327039401351626766859485736188955052692204847398922252762356481652825700982957967268945414434153285818131670777789013719309591951648401665692128187123964114717900079080624791053646574748494091694281937374647002502597820375410695056537008147100549177375476223250668182673864662120645680089931467319851681826070795880332305886008369152940712325690237234567712476524737578632783169256666958397057314052328121834570593107851440833101982194301951863470829200033643146536786542640577158932595192535079157080900435405402997960538306174130077278517622141798082692536574287226871105480903010409036022392264387185990540825204086673110502954875637776942406134889656119499116427917439982268551997425450758153076998133845797204637179859074902987027764724813510182320886571058348717449651977326449278935338999006488673705112387189619176141642706391724987034190437226988799461608446102464251396734592201429864937520477638596617951057448900179504766883087767656295068760296547467084104530320738067447246678334352032516087341660237473794481389477147594747531039666888428990260721855568478695941023239143760689188969864097033497985390640183355598540563789953866365162950158274658642120944810753144175078968213746113456342472402942518853781586894187187000290690161367394979527736823934460212899984679172256370905040518784522916570569744253267878451374037892251979279799722437384501051155948922570944361424948559020274963957027926679662787142345966397269121158411564248067376313735292271256326541326893177168522195548398036163482196294952427089647678388321337838447161621973509866830585307157327766389809870726028586258999328656775540529481189935092907030994919761341713246695248856569203191694395394419352187069985163405451944088984912737586960308366735781995069229139279205696355771362461718714386979039066814050926740815698092702470593879927673344852393949816242795938743850486686033934757872714524395876327545324551409443318282027499759922507421628386102548609231948261751200586642287605509802567464311668114690716862026684291294804620314805372253490099172409010754377355679416939940540467679916608242779733142796038368737177167364824710784545102156257927123579260636193335632740485068530821756164107114691230559739179343933083026090306772679092517991582154779554746144810617074141400088223108377692620837876234688069671484433986472115212784528471857682986448379970647911266531976047598733322169388287979605301767162109876643740610612479133559112366405123721162474220107651479830120297495347981480523123066344976760654002477944846265968032230237495723437906757515817925154491552516598641162228424597766963411899491885717520162693414808791598211263575857269932346271090731817045352069031292940035408086165082791665523784546070530479563472889013733193566192052197221800588233689380163588604260509014444284335845781919217908084062970069960697707205791433149536052169939967170855551875403742465853299979624080481123628333134640556038409037843533140284458872257954613400733059087880940606515217864215761984466118607881238598177153253889580912125408065892889187675214979979346073066629764223841587792385675181099571833173815350652772209514403987591349488837005448279447386537000437849343252190986930862042771346264698915471657511521230371200971047824334581889678191730191911421455286997833878866769063909723037035218081456305862065361360863261907954926161442300838954540004629131678295957002601155633848676394859058757889345616187288547129039289155962009047703598854750201354142162853691439091558082005199026206552576719235329735608982575774412826689569835827220363945548282948919562760464683710852629883597022640845286022286628505614090992339942345169197853356357794620373849299473039609755782638228856186546096917418391358483992778205209803096559105371152031776644131523274000578007612842554346365272683142563716192569851376624909169052855349603428286533170655906923295704559808132770011087771516323308776522300330498346688276978455691135216447013390067744338050779469238936185800022855304317263215953956318650389363891805658274695014111341997997186520017041356250664131196524429084919265001726297244119297907121367166997801660457953270761097716825714556313009992145812893230716295317638793055474663850191017584014825698968900439279078893158893030657594141316779418989582052380466616957093451422965768423941693200369019764353883542735622545132734171492288308183347313189787338346083276921861580138998727920061106821575668866391826318139659266000010825695012058959497184715970267766836186920628157563900656073578125940181106115602132955595361834347364697916353910529085833332432867495689137687859744326877300148244684555615426727527554634286650093368756664874996337851764397935681286501068363048380285556145202151690736544761598224056325570552791401245242309314698212551427760879263439128211719922146142129838031553855313177661056419870441864772854502202683944857891316147259314461601845633302357658182567277398147225961241037089257620791259465686904326413331331134436489711150034250918255502248577542515651971162631058734479215690893767833704739748335111981046025233028675820419139097301159510047365931156725783906966341281415060959933900037477509764498203803671186875059576087075708080186361003815503631512288252862537468975649343109486147879241836115824159620025243882310498641031631822070655436924401376141273269544127988051826915712449364555061167035671298118243247843075518490762642989125867907521723971732136489360015007288766893759876691194266546355479701560126225996848088091060414857818731448665006952621544165708681637004547400914185357150951402953658450101940836255469135002854712070601558808411230992253544634305843605759465853077795305887387878988703978269376126091773305314343405284557364239027715200961039114244922465305813982706391482021800371808606462528192089374951742225217009125737236125815806231161403633289872882809488517297385596850772635930859207602415859424084427532668272782828151858685402445188470294889220697397538595454992044772665772641954637551709699836181884172392850787407797247080677823857877841547041791127133981358340700901455178141922037357443009991218854374750024178807392918620181494763638266896155761260535251327111765388465220994692085830794539256771031347033364617728598446553956374901019867073189337661161456310383564659900151061533295874990824270316116395820401072294476244417338048335475617894284646035512989892819099960990458491874840075579884039711659699391840511494295783375854194565123027108070949775308652294211026851210847879816986101837094548805240335337631526773926192716272996396105447077199055446135466881925462667635394431320926223411831233227028171253298963574461486716261202916594768971583213209725208777895734018423916981938858221295069074016013710662630975195803173143367108176066047254725855581930501212136006639481368333691775525127470486219712167742876125368732149085841617320868900625527625681128829223094020046494648068413589605418013094374341912120237087312557035640410306459203505105769276713290297370590912850919193762668078923804006947000515162755792298435349657484295561938022653285591649080153179130881092712684716066535316496753556278092272096309723667696814702260204181993504441474862790492058127413279378741183105215467659377076197886754858988996789614001120529243640821015455565873306590740049828773475901650954042242345982513195238315957254775311692266856888153832561729058059006969519750456709516372939744951659718980456285206031079006950378639938960126829706507410503691716773991823793590253825710500909278125144343434117451972164174146293735510268119057198382415177518887101567618639082717183522567175102637093339197118528662975620202476401347935366321736451954597970904494039718450090965257275064881293043588290132566392945485591857887159823802567979075428188689456536057498632065956518731765325114603493597583000271283973513273396957527050529176538054470223021948543349251599969488475738512355953619823863837857811470490908870543928112990545935987267984041373462734445251410883028958620412509601824201222217120119208426495455343683112997956870031415470738168850573149953038101123798044473759313512350705042321891303092656598591411582538074985455645365786075937790304877081512939010643177562374688453088512526699918652387795038748350850665635267307572789166471858601388722832312024320974444997282135178644750666096878273648108334694930965154154767546440313289648877876306780172166294145215942144482313092252647619857981518902722002700944393163307931333548401536208501829029241333116908633513186572220681409811266359477895252089791934169323238025674751969882450615420776625882421722681085917363428089175487254144543305756604927428943977610782870041193768501408046115514025577418894259531561938643973016391140152039034861969012310117550070031664268310527591569593735283724955707999713234333910451324998901650137692236440155377166887581282037127075577624342541236207580679778275889007656102552313240871708459179834190846906880451918682281012992220866947716402489555190761864865984478067874385382259509371730351611782008272522022707508146737672269508262112101960215975300872578133115461511420865855848557509976614987581935520886366574200825908613308074927616509291553355344652196285156525612574893182057262612009524410579155102001388138634062500480698849011321713547671968844562973273145631503935512583266499550751642781371302619321549237759412891196999902337572303269714137848106462565652524773914439213730723052398865130733460241497974186396635784476210201279386827719112257261884851621526917798217315597616832145478017731384994544007734541511792934463182552860656598668764263440217200512356025853857892160267895894013561279318553608431232614802204982643189966524817232980501278726003130615251299858673458658911857033826098113661136023410443411938628872241270130807169735272029463762642095020775366637868317690622377231726290229440166765294719493179008020562264084872273405588036770305128335439440442368197600507125838064766839700490794363769257810893394932352966541552762564564181801560607765082203385587866716780033797135382378926825303584699476668692580662824166524754001517000522012935198738116340479335048678139689014918303800388211079751872612479527141330257166170054766204416678439509591056385048697488354828324958930732461037312275505975704353415318431048422017639653720548112715602026242224939925085476378658116043162896485159849565531596613199211716391083874942733575403851062252219410555372159385841578927502362451780318294648843577747224734709830647542032918855156303246226015980656649970063659736495339178234103393237446242634036693327443062901503943205733262552755570881316983932670318674586663591768433280216329406154838073454922288368581993699636838446004432578723518806082780045934037187088233776906962461710433116062980326495041952964861941167587169892010003708526550930740623136173887689328834237544666056201544276627346967946177462462986494117607467010991413188652869525846072731786868467961190039569137919296535997351084001051019814247406230401421263463238955787626951909238657302889793420765750688834480564495895657958015098744569946995491127086823673615550933350759086441774010429550329478444358358553342835690163960104855344358562257187617717964607773961767498420597827208140140030960266052654149649324412407933921978434794157576505150728041875610225247759725245809242381419910470895626710154555004322024444390848067932138395827014415794413545474314242262305198644109695198878140773196979306623686127810440472527962111680367065725534437146680168211818214356176004142963474046197119347913865079453109094275896575566212068269089025649734250645089659666723423798008590905049520621736626821994956646277472615989013438505678394359281691973761694036822620717299740362930673861823448779156222146462435822044490590981013897542295036998043750561863515753965446738098921950258601934104474818253368558712152392761707585289383059910004346822594053715668157101450100004900256760457587566396986148068617930715905548638330173421695127994132934064974667457842621057465066693353607400203175775362150567814465247813249621935144776339178063348920793047156203658421299157412549156154227490242805583452535328657356031785168899324354558212783165366571299267446730905419840646356416742661467564625809684676572980697708815143085109235634989836471803427695152048721837862687049405045000925453651444769394623495040011237119788591171025745496606857045115081063115102917727432786728643901147258429186467780508406873413195025336187430266085798338247565177363006650754914562005268640032225376353444693783306890736581855939653152078344539529566423878584579186677332871578183598847553043402212440748246967421480692288075673374013789026957832041450335114536571656566644882387389771149476455862067630300724175489082952708106332846962398086767378647525594616533213303405201770306371639986774205229292707931714689161877879021973987081811191792014875854942589876880901920814162303130171172875641053766530424901424445804509221734769560726295081815343241402066787040000916765054444850553195386943686098487174110089635715433712740944356473352064001294950859732536067506058924267984499681969655285173438756201036474562172605636960951173644221071975109832617186389333120156169240614870641344088249787805135720650311002557683960576001062129695780811267294333651504760110752565917814972574606436839081735675818636759154546408110708250163303653667253559492789309863821594872141109449704578044194905401246472490168486482266734404890585814237138875921870184688783772279600886381027559383884245105565807875309156146169207349698256703716377145278729264915938483155837827525459463672056294253510387015282378914776611267116193053014561748315048500290220208311927702592506530896867348594098033102914748073527499461074537402351825496268785373321802479668440495943896222363467341017464814095480469926821233931940120140869633205881808715877023910387487684261041279914293855032858325964741939850574039696865719087252890823858595883241081537089275909687510997110450653296093964742621959031857696246346469298100283052620438248465424772066719896346060233140001031783772690141499921437221450544491252266691147092988316050229057058660242264510418599439109640460853175311674301293673501020984757765234526258614665890592302834574059990959669484074293097620797515850148012032510864371116722313235414257712597024949885750675416855874180693998860481590348545262468722157729808603685492670751092631141636779217333502373303832767807777726921702414204861062060954123030986521382235427877570614405424605350777070912511135884006407154247606136068038204427220969778717950917292210469045222088847530223396186772476526618135470088561333156683729487821916665675051216943411577115800462844458914393890246171797168338577447162211089936620745454463797629933040705889348075142107062523905357265380558033816209842375426348461252869928360196891781937526727658776188782766710548633813270646140961186289457068811714122310941254115470784187337698207833641299679757857819805706070406413246763603508721743628866200714413473302959268528089266983387398661774150642076026957534096433702321336750888489092029895309861370443427430240607985842047639004707508909458871348637733173532281840951278702791202588793416184684736102095681595846100439212642100545248085060049418017026530646520003962271986988719880543030425404987386165481321955326334044265505188764427904598958034204171457389075007210459293611460585753168585154464918771348448941070463189747352491134330533090806402939708893736347131924195437848976794951937410503767109436040949644727988986011575695205324724991959128993602412076717599724346164704489932781216167039602300616708469544783392815125326928812181560676843823217593278721717269336525270498376062060092946047976909358362158137821034559120391263469169208434172642432796663905165334526505641198317176553536722937409012387115129801065181157429686861160479656303164535959522833694046237689700680538919610284546012850850175880978492659495282304598245166359709565684263705080308865871587062775480609767927616113916115320602797286716559746933026317456903715014076792409079115181403945861562859904886954021838165048844114769882289794308805782785771032164244728212562414365235725907265737116432454892020167123801002988424522272056359086939885772240729137828667469839213351906494818880680698303147915002130713921667843526735780151317589327316060291736474669022302207548346031013522808436887700583710390299934545752100354021746233037285242533493952527902177654035605514226926805286878611328760578804691245848686923381676920688482489829580888793892508647364580880123827281631238046323120067444638806007922513408814707003386521098719322151316209087172391313592589924491232789991772795159234562810639389517800097368588227100712925527663838767419846777568009511865442011686572665711805788360867867371386783638294019744302574090049796873225547614047909158319792198222254766665982495658219530109941762902443484181764639526923617317447662079033405537084434428560623067845604828288514823405045468217990748330934181623618994111845199311460377926152267716422781494405939745380319861450495187350644824254405806027375099540615934293266431887011116648179827416935142264473093076178916048053146226760734360723810781315096022844985324692326748648484778294161208360723228880614244458912452872403714054298223181343220228133333780991164958322649440705154093045384514758702689371649628968463620367595400712544772099638467600899716942034808565575623952754838943563881756495776036094326205844071885618981279728225682478348977305387942323909244741771283590331289788588925712242057816878302960829580882855065882886873937009921076783163498604321554149041868492142696135734741733822581482218832405274446422285108320307129118776650485842753578723427961225947151115669941035337811670046143340815399773195884784311731550400693380001310519350690479772428118804741148121256391252264355399842539540800719918148398423647198909059237185999557254329666930721118458887894569808937393006461657595580746226625302355610983937876387300298217100785043983543906346207223796283556173824507113643333686979885004542577671646728637011397411295283040506287416136816425277220251256600272004919466815798547478690009567036066988125578269276822629232117419053251454414770360450837123340586168062047358855774906122476400320181287056848341671297030157376472407475181035598713622638774456856986250574704595198530208442611924458161967580932678067100137290544584617259247531799057995749981551664567959954035661712064881983333814994009510252333057910772324737370371596152892180868768022176069691930568264505233620447511561789664496751466356387109210467164683842663353305301754556465457514049686401215151977312634898968013410801121007827887545729214858312816187249011870247451788036387970139459998476978486241258490484952452395107105231956385886151384607760434719587985270858171997369028662699469209447041793702258437213095878026096818755041848406909861739878986665336323980434018205891744052274413039159306326386952249011308425522958566703118216338254822083969900259853870796907346873320328661475497919567017222956502946213948723651764450926799147685508134591112229596868081898559724831904370239638963606436231041627637473645229363797760530217549502836196502949485589481470630530695159425692288983546589188690974376243317916392374990195487215365114637828538217534695405564572211099284610142935643769611236562561524979586322991877888900469118383940188563820971679551007846785928828935250581497935269483638152557276783151935969963117690554014969803561424772854720712965441030667410131352873221493371884814235117304860803591643780399878089041040121490950958342256416893280532724523387848215929645741801521606936554166281232285963257921838739515207015664576461008815877793074922375019388419935587945735786938935573021355821892924584047210841716723764830038244533090755158852471338153009823221666383103801720561004464265009227567659971744552243123323395851458545365570720209911767311858436867218275754975988863204670968396869112859702643770542240008281154483779398643666763226310128826411075509553810336224232707826408003065919366276393512080640204837728495289005048867665904442450284743381285839887294153133344462952815460567002750031590988040467042965240957268811680349237163081870892909215262311852548114925402517194238761955701388804490323253921406644374661233122040889525635000558014096695494977914072478159776678521867810399876078905130058788976292622904103501816152170918702484206105053044655145269454145321227225807148204271280743757335103533378794426018707653533684601833322007743450508763190659961007733386448026440641569314756896570610125905539688468904736633718959501402753370819098857772319401739959128974065949620119381980814551592111147457492720759371797019754102796975459476479261320335538676337515302305052514075488566210181626066149151636170341405659593065167428725289142574887005613753851633290903643702328088199338713569509281982419562766717974669270380755744065755032217046764557822924870212665531418778536781495417459321115383093653325179694362064539903491489031601951424758161555859338379253428282996239137025610314204382054225769632960018690090406591468805058743164037403777836156256097594210692103234254812106746377381477539487051347949609542796896691308514967247053048050046798123244508901830002122027093916576314806739892698699650845159312458297407639895739959373317380619094163539806373847396508164850540457642030150948920057202257038054883686711195550489303964099831007156607387809433327449665749264206871172585455041139376644655698625036296560606494614675891936928011294714542260503500263257018997438354674093952847856862465731215247421934026379277841181872663694996501811664476940738309537630168962926722010450854632167147396783908393618670089245927990389296313134574129879841509027049968956625285232405258711791392067895483364213879835234938935064116755000655686740065700361718080839682983579457203138239588261257709827918045244516823488666628409196365823188479684248074307483066054750353884773097188605898352472758431664890781159189562317725324179160635806878835434640056198094251101632501157605586436431376817761981201061784420603938423053741532701386362545588720285165658057720734945201667367234388875968811910892880915693768071984827777702133241021457026661747060674579379105631225685451063946903920128943282839412469449778536243450484327848071530286251386189013388276317813724392856675990943319889542384536392875068621005537953156260088267389494582944240361218344861201233729239650391638331903142552761989061918059701419604029447196546684270177844556050544882548056380018788260501574901314559554764852132922532344724880863114106648911182306917699400311402044732782643826878205219837481756043861495449750813783252025547659457731773727069927397176386474889580577244849071277668962574137662157255477907756038688666235512864404809502858960275434303566115182080469038020817602991546999519914197783120391082394320281687080667297271816858098056495580508096632938106396497894813283525404533946498841010398867498812025922138594840506561977733309113524284666115074985191562643816036852228022526333935219951825683497729421673843427890146951993349506947837900541306174805386469345887427113738475578942432819979128580227602001738862057627193118349797914521488543192595730419976465388195834823459504747821412343128984685167392667084415582009355057281662704498363270062698782846194082224475946849331956874837666260908424161544016311793274089728519301083318892728350712008737384938168760128677489180015132811412405840962711726900322636331452141845562414674327140461948753828527523008940716864670969299663287807752436720145282148985361080121508143089419788789410280920810170067738345611461303467325089143088179037864648573938914578454064883955635204223294858129628781798207695779342905164375292071980841575896559407675670766671128610990137163777471119186798549850361094075352931565837541957077253065349136156291497277830108813680885164426331112068769660930239494387514185033677217105696828127535827195378018983238298531254556752461658441494766471354340308376042126280485252958615444863821292022654732731204406293544143890968478844400350245034514573850615389616115290194669514238232653723478898800547284012751288783446501699245835435424179640892469336021653975310735279064676731956501051705089892864093333656555639127060392534555355186229243948050977752347776185365045086587161900310847102339198906841747917754915359743346353145259146273227134755696380456561081762235955551447552560432832356103391906311402900663295248621074162992138303718297325305192054804704537997461959873655003694578021742932759290134823535822342511860956311385622481428905091598370449842601538892643970012014412897998530891656157920164391622444775544452767177869417060542264126567342003630954054573485776863410408821192851285824336912920161398106022758147326458127931361730739190225534799221547114665543674507540314945161520895176222281792801753228469200025038036106241353003968522713501398771445791904993585509644169342769579305232701414613824968983486665534866126840196345944075789471875348845787613921318540867708215109952794138662198931422613620711298933885316746203656571696006795311319343817606395971766209120436004951995883291040238955846323912829101816125511201973456981711313194016852205261905405339342740366111594682557288311713800954063918372010456755208241191016964294160440677705242112724543985402945900312398454529517976481251656293640912553414993775529804867137748016530762006496158208759158517612541501062187104718619703138493098778686535425209389235801026680963096605790634023450200240962614386172685334265275030396909838376227388712594367693779658388927762395398692856163248106573228893963982110706532778660152093452950034805274054514743191993676164848138511613581236704631678618631961007157496381554040847103842879936813877800457248143828865379502810410058527485155933956383254007598706973883269215452750638699226275625039169167183635504450644515540033777545447694995987154276982983527713475187964628545763742567088907804494545729797667202240415269756192804526482719046711068791727759548883997479366829161067655452637323553144670913126411297579742040801751471547980714866852386014972369656661507329595649354956877412154707484722266131189664981623542841510273317059947907909545470353996470102832976371749965286626329912316447200526083240897674061215894855864701580106856957712674341966334574453289332538751980175965020404069746817713373097334278508071172106691601040169084090520932239630600341062625377720121314836267358633418372365431807990898276378781576824001915288190580341733892701300145325440406366696882186698264983174462511532792075202282885967608171953855922901493147103442512408520895914191240904045640728367019335468850888577887120838523898608439985178248427521848485352360871758494671154230681947227499621624587532383658848613070000426177343055368008869332228862491302680393464421006161514800304059653072009326323331109818913954233181675444923873856999401419935543197078916448087882244858568330676918509961524863438045031791857666496558262258505066183255546782432274935568938819506569011490797572157199560500290299691159374362285296535133030786628153247257785057924097494308527942573166408447796659830740617356847007053337156433114478810855476912958203489861107270778787335405385387965651131963029324424546378454057183633376435525386597421986161559701726785380291361697967617408388770022705929207392266061285068075508042300624668175710595617649488946730050022724372344098310860699242417585088522106936073608565255068997349595736009798278826992800717865298874860890392981808851701825874031118590940865165801884544896729036691134619139717007250138556770163574264414702117472692618393997736241298481982778530249659903062499644933399041330405170503672105889034522711357962432183724114917479461981874614847680625365918318446954055407274714313327463549428426555952379527823993609724239077646954233904199960600218524463432260282475431523312997027831238606276543014883693471047472253022618411568783137534792725570864246837793969693322595089155783321432135666661390707819190076182872638228863215503436649073373849570451128735941749592252598440132519690334768791004994586601389699480715399471684024913787923112288022221970070386784109102835516289908300441724376100924995038454459077712780966218626442326212459925394718526369327989809347085307409238240496769456987618580374576302855048695083926484314370653283307946457270597946782220549270231320716931200866282330059512368011092729896994284264682310420268214279849877181448843889420362738733054115272022821537427219919713761660157684629914999488219588796820624743776401081563601287042744763846340140761964223379313574265531460661695475162254977636718734719555446239651648300887304384406786247392172287185966757687774584218663910910498449738421752769717675347769467138110700373548714769964843171141324444758771108984083049233099624397699639647285474444734302521580189933515069290103392801697409682116903560143412631192308645169057980698213951397306684898769299190515444572319691173150987025280276898004163844274739426634687737351307001745573968460587246161251560611558349501411712988786795113936009343907138144847293484572941764202553658943881542207419029245144778894426939838736136951097568837302181499348530661619679883002846791022973949645553740907373688957154012395378541965115472808371948237425481587020107143137915050421446726216298334788052614023278749040839819874768911300583687962592608815101046063302867791451177828483478233710760174641658056775219385137117337033469916249084289004097398166481840694320406402843889221772772251302207317255806031798642074314976939946408994211317108967161488198880700987199306391076741722724628451092029316168972919081618857207531859642167606522926734055736674773596230231784254465663013641510264446926226438690236645967293214880758181456320642079500867902081016038431214682363595906233051945611413415696327052216475281570305120525495453666316338648961436794261364982578283323994001565917557758160052903643474292021292765077100074270832800443574612879152436810268495323607680550247240411198988593599825893318723736298548146690411672492739796527339793701046702818112217301981310248539461213674936461116921948796500270632082315020368306952619415062474844615703396198188513816482189724538041413568023970578589329378182862833886657632301146098573037854833321224544003333710020699010644165599453163287115157387296972796849126071564781693280575311767269293746030747238141034037950272321202692368267113352675248845514176322103054637772358526609270433314741904534761361479347390145546484090821621845302760033899877305103254650885495762221375225099163563906905007324797529402083895166343168177033025741761419250746975847075823821258700347367378166049374919661160996861628218832011759052600218026054935301343479549296691506399630420866262952651777988771088073704751983525129232992254085208074246434389293953374308413954566870992206131078435674978217501514627585721457112046517934472183287426540500681381203614982806119382859914959239604488838012001458804960282879507140184034212959807024034704102413100616578691488100654721814825889776602837412430010035260613185586976898704578225760957868847393833199046553257239387743477489399100904199056813046822708029462298257801376254877369636583017693034815926844718636007528390820203440125492800921824081098288124804315238224740728055293864229217539334734565540422809081057014761479257377812877818764923746258047115394980308284961619548188070830529271307149451033422770450225179214340681298193086141392197848882731785676372114649292144768735852246951281535332111401665691016490196659875215535073109200022113155770711397950183024056834344853748500645816952745569379241142707055376678205148985979922493348925478921009196283063310053285347858152585626798395586758251938666461670662436545001023028549853935919286705266602235206295974006192008148331293752536536229498725029075033632127501611125787485575752222231392185972864322672045117480113383279193170680291130968679647225535114080720105028056011000650853608434398049142607037136559125005315749605549436308843094190732517936021198536705195807259919945226402534177996739754578055805745721816816854092366718130847765377252517124197057064543149807373812453950990529118400120561667921563670202996670978472146604843669922716666933858681985004798038344518307651293152864570179384336097455202643001642054156922455194620906258154178238171162904135568933172127036831664890893093248975529169964022932570617062669052151697958517549610543898706321568078343010385498993276192208211440596265555808989344191066058732284478071111219430802292894969862837239411345086198394121261085049038607186280547840917769433394455881219701871678845856474197839778151862411903747833989791876167204616205879575276645636462736336735916789357738916326818237432787159973689629258087374127808501281582978736307824951666348434966170302730332019536949685281344012785382069780387314637539452588981620954753039946245627987877473872746491825966515969098896925580467191310075301321711640582447860213799962576966200437185616176167226985372253489155203961400180310706364115575529683198361211956722939083524817348261367971905910732642405495174541915407203009582153527783304271277879204167847900052279995756151219589405379135465991731003918588721868903032886526451103310917858065137355363761544757560710183973712166646165989904519032446061080716799468662174238153674897138015413652114918236139745569271891652471846164926298675114093574938436702721732702739197554261668187313352135799176531928307616985956418854338640052056171341778916711291501549139402117291719512114558225034259327160529888154655578821245400146609808261416803314511723621888909277334847170921006689073166818281974153488587225796014400728150062480283891207130741669121765313666541346228692372417417857778344613070747716046533222680238186695493670435626956135954282373824869916646686203220082662869126445269509118433623123105073949940749196278794910365235770200111498416459970915951002879277407835002620115090947497107208740652190156381567848222120963307972024567510275029010201482085358846372103880773319020218543678667789053469070188335778795184413490280090969830546414382201680081103177743587786750866147935326076288870759259898281930849452094494324134770361350640307371004817297868153321751080421918741334634117483899316751738258831443123098599403316588291351205222898504786721342960212806297099475406402772942358721882099455968505673581221890471140265357208847102296444357560843758921912603622689448327136951683233658246435884775280611231467732367692505710141015053585047843048562935672309046075250563608795973276299332312936227773248897873025978570863343583975667467954414539496212089491802956386266287683454029401696548507033738019064089489652078473190611231490192375172414006886000208517618482556990780447438601493053153097812964943611625109794802553289701839359392522324961637456886812933135914031414507969008384941222065646857738294519518245807409128849586828024211990703487654177049075923857995136704517503089468333304620418902511417433577235951983185627677128908838933024295204490301805270722891520701020678180994816065286970617381554106390291599650388779952872102278535738733053788767536015262856029402175932335795119823649167985721531115767981309157623216959923145121939279874566971293024508773390383158700940097551728269156685579039989740194177059145654953249401535036640100228839026793759353220154627130485387777704221802619002725256792675677373440748337377375987415875178890609711391171987166789894808975422603462738107502785740653842776846601151290621813038857661012569366220764012539189757037359014574363157538414347086594842046903446927646102406922626620029937591691260761803628034824302269096721773973136510156908715732398185578572287818618596804328126887775371892315629830617850688811176127492104294775031529287378191608785478207266134751684950527144574923779130173701462591330143171245714045918921397126776506144533501052035971103613345411489385324633629429936395352373745274981532766630513601941031992449472175254426101581932061530318561719111812859853072093319634121533445610952081836682180533652250716165852963075210985518805396612409938123086239825404340892964903428438626067398806865565800283779205456468065909307658182142431669899653717125873652827286253113145636971889408062228830523743515459576328096550404999632006903063633765806332546013434589879948822046385990887451267876781209036442250164939937089565317163281305589668758481119897846948952065345079744900035655916719104182126291488310169899034373131759083855219784921912003856066955600603545180555098033316327443361099681911769152316598989672583682851187860364429206472788216013905866944514056696080901028388942369462847823174887466367661013877747992540396710796189205584091948314281689155834169379916418604255760543988126816266647325987609260058279159887080095603458309433864184802139349707088786514446628607886310931322498455881496748633588098875267537340994366224970652018394137902755284386174699325641211834122955919722904433075605419721630374027270159221569484195487282544333976476726270812288759672221764113688890135681252236863908188724469473902067772633250875936207887605859269750021818837116698940517171663513811555813156911631600891470320985405312403163572294455110046422447415736260407240047821757580266043761906361888025545075470409541849637026658812419255782103404516515976378231480413479603801084124495191372214049781574258926549043184148557612326822043732489047169101789089778331416262470129051871354162202068910784845614966105335632145457727360925037538676196201822220479578926371988669754284681371582828869871870414050548149123098148398488129961548492021611291824749823371191510540458656201643716492827439667266058680600614179785188160260722201018486229155896633258864017018583641717946038664861904576021238918412373553488813758542842256815045408430474001767431048030285497740520978645165794959161296401148741991335281596557028609994923691959269411616822675078849921197936053809697178954752347375754179506766871149050473148735449266107893462902560040447194477619694784773584991755163101931095741540783512711974400870316210120564226561692903630896711504170323693594375370802903467137098429310867864371898966957837712443899844433650430269161069122582070271123208723146995134987886289947686851819301655337061535927917253770162573577665838485340337989104943406295413414261942983735756840591542480222518432344593490171080462916566297013549039729047261298792591033583122026822656584712167046190597743125524337828447831123038226971538460496468027579618129358622462110000581234321593312417500412651251907499552721208546044675716506740750873017644216157492817115310431703499396718236040593487434842216815226310583966310967358133112479411731913467485873231450422626543848848696792998938238207221777233036620939122180030726809341171912390975894109483172940538310582174362555041440630348168158620006481622732647365814360113007893023282133586482424780361788662361306297628984481772376080365939607576565360626757474391573007283179460667044608325425117959191584761774749702354041437514273231510276559434218302754939777523600722918910558889844076179375510631972475917717018893326829201351324877269459041475445951212620024600198008134747386498732423115840258887820125411613941882433391166407295097034316938447524519449611336957642307197705983778835265401586596046553652723464425657661308322119694420403878066961507445294249915898035326320406146744990283561177736741625699032389969046280841035662670276078308602890633594807432820249784278467205328067764609870529681749874483367949932410813623383529295142093007384309139692947922481224572854352872024719207885947132697684679818459040001514300908510946249531674253076028346571957246708944508362742392908771537786302420308752767102727171299508887031849489978990315387705521531716433664875606706421210945122866437194606020287576270885195863352424625397950935750909615183343400749114249772688465913497007966273585735552396796032275801303853701341571580431881998838616472043934448935047296440668149827426947128098941925735656936735656383365879080527379071146443398737948724094513609518615578562161867118152355800163445353287602231838329751238465906616525505872781700824480059644880556719009891334335126315204636196996411404619764620143585423293645090645481204868423391804291380493867388037230029626322078052057794455660506019458297155168876165308270207018999090123556053873558057683681397305690464181725563920981437367559098274504546872793244192212578397734870179296288020841288018695432474855066762593897510441642164841713380376966694594503030790803567110562595855813791859646585993701342881963835218788538052571544361686396890381979125414760239478783937397725969480600809054735436166674122483331623200411525621718372459356836935823276093296680130343663721444198550910147394175920433268659611475300904866489822968918708739499504161259729788799144996922751685545081737532879375682839966120694929458233025543740626982253276068792845395286721633257108268901042563714258331830872831267337271400433029322757289927604853988748539184450516110346976821329114836159524776185796765189510566514069777524260139049718298042859080550413804096739340117513758089509577412800313264139473227440901620461184110662037828192152894141832198014715970598154238516731688154235421276426491303194293874191012038543461622297001035981453913042937515373576492741016790906722028849970657611550645024695665123899670567551142307408629210970937634950055944280969399992738890021304489573525937083919503561367638019506456466883428735848419135517231289195335940793545741595552860101721955274654683273293884320441354809048044732674810283941701771539358656806172126603514285129667224288628022965067598530437639762237198260980953856165786152436900704687332385795497862412125755995566666559681497619442363748925483763125574602929768535646119059093662378149542568977149505218207559448243947639211648953393282955661889998324634514898455992258117804150831089643326983438305902317020932568336071105155638797375953673855992620286235173765230051652164598085266840194768669065695953172333449143892685401442611259472440950838614815510147746746566097969677398138912599615745186759050636472729538254907096965837447606314563044252646825819347347330010555862049945513096439616537208303108742846845451004470574974506255638892339664065961619907752134225070939622445162192826853929536291343260958076426675702390484705617660723109329927238081389919455080889372529493944590131139866077706250420041147219060049667109237856156482696392393474908880725903209725149775991458890945613699781584587254973052701310017360693515914692508754558966913354754387167037893534001664514388089257475420520323601145236082058143267283941259785870780943956326387917691324467267266236699232091490153844475331590638521676594527805047980024162900051336028499933351819715886019897178212857209497666487576275715538458234137427552786064083730168632549254939602484389881658256987468905775489945849980123159267350908788736831697501504162708691631760895132117544939832827189850714490577191018606697783227510324392746755337725869630336736524973745948112069313542741223914713639372895955895261145261978996146856278138834540117141764574457107069950952114371159262865606483341976174075517643241835644816663491679686635049192026422431059488250995250200884547618533345074701782023863140779526142033847757445468427168900229784706181848892337564006348439166162391493910464115639366782551217799723823880829404492562327959210806146748429190999910889116384092610109940034215767530027525627427027946615610180069780659575744488593473393555344534560156272829100314833498727284336051514466206362147318028754409748102784037916406624651313904939781394389468643336022015007920698601821656814938109570608343355019958611105161178771692434974869430727856779676816518215636150042887101638225446165969187884489988386952370677414098252618250123596952364191526153550121669394389597017220553089113505394699034453731409963589715181053586604121988774924365100225241137199201645965288496479722486979733811867308091595839096707090892861361503611563630488844386993236163697803461162273453193013728202780476662589696759707060163685638471394970374768547998001910959803368689730382265247822980522376617787190868264089589750460519495347762511466907383127874639657994221638835290214902077297973524616267114477598649322063812973805279206948221247961734003972460447003166796750002038546577096756207008146424512387692120925423590765376039234845774410145327994534051435523407119756877694400418649239586653365787486719689557983300180792452624998254711720644238318741267023665827527741749945636812976658967464812179834659678710193689859821900099102425032078371175485036182904160683382454143074038818942643632182189350817744624968315586081694572127581064162318619695679569754907669956919703505970523076085268682050303505478445061551150628726657417515137151713609580653292188133170695521106896775899326200523078834361609719099966911550920524122229378682656011018732018460845101081276573823139933419502397829692047677498696324699964046465792767537795174050611147133786421152270273887446005339014849775346211265774132666697473013382874327156936304893852640754938654929475306714704324448701621413995175491875651265446583017994870801787700495901105985968204948473490706371471062525892596330790278622348821924382139908945467670970327832567670423154809499368630019974546294899759447956382468399172637496000974826275761322590204281067296575222411120125524449345724310385799327949848362491780910726592691431129490726302731616163384770523557908721724703324810803059445397439909634078084056424488519054479542422670358964108978550826995532541918140494303134638449514418267473850488123277354878055266354870673122694740568034356406581802421098327323973470309388369525152532894726042115252520862414529466917661695658931354145574269054490635606600785467079235638619371363252233732226656250002918523445433095276417284663055903277174855911672739480467390952561821939696945602535262350324054774313934739596105806030235788787094980740243755919693816591463330981736054067700475553954877777958235776836763493018409631108411950484146669750727409921321878898546898689214344475891985153969988544610655024736556657019517418999444399740776547703816650276044110607262541807549802594608142310436435388200521499597232043546544465556167216871274928942980564536768847697081183338125997468063550751156043462037816267366793148239747803789704607010673220278468135645008319632661186116682227962657137445339504690562925249458322973039691106251714496428055342523879602898938042660311763289141994507615588498171629787193129006614345814917877051075072605618980164249161027982585515832232576337759906563279736788102166175010186026713017309468199611872895263625825498382110623534012547340761047506787076429404318935908701998896320382821584513306274392239359958351711556228198398363638807187149864728368615558798527637860617155598617857094606655028651170748116146603010805863894104065402034306934606790117914716704751754967905047388772795692381318238352151152808140435802660804417786885713325498532497294023825939684689670024344982362486028785649419348035711870797777598193455254451588714539033467808212482653243859416198244926114815820354513840087066546872341386577016006449830504934054205787416934510323744036815590640263827577399645132373490110899519710533548124266775532327594831658313217667242001959957637691542427829620314175345808867456671648716071203082166125576987989464220704283363121389548388518692192263607142562920445244955133703158123308091498092480429613884554106416167013081371598491421035220049381151285780090190123750257322400308307462978617799870127125621348677977321130415978892994980513511345322212798905839777022519277056831898516967551126567537600861689382521712118185854500675037267503151629509730814253155887168407718066047728267513821395940017959229862770625523196448556830636812241828373847110584192458066147613786204805956880050021359174917764195290905302048378879291134078177617557303360425040557679263441422584173516291480308035072046014531209581126805469648370032253157631795646137942456412060631404403705384214807782963388505134560545429376950560918757764570764403378330175466938727952223597637937589956082276081011439122841219246042521708297304409800261549415460467180968222587990734091714016538150282918374739930953824062932526951283373172090049051722619592747834641697309510564839970013931746272607205326599292889805654729494702581262800907889087968864253646103847435505848650381377846471343249427074152498598937069398745165497806959019771845660912187990985776643043079911042431683418478056173755109372063712061090545000843354106417034515352565543207840669808266303025318681983221830888137146976317649063271778214779238068672973251848391543507036428047834331953976671587891827655969484034171289368249931977649442763865640170897005629304190058922249462595777133077251944025086370799471429011249448985292467286933545100938474620819090028670302659162738493199658751411181489223274894495469497902887473284688254316452398252244633762899909262079352634235471533136048166729101820649767434328874813441172050564585523371824994446502389097938742377657619261836668794268588687958763168760446587249119668513438832005055761338387518221662596414957420750542731212409664440134818377459438679925389380419358486523337726675796483979324904408482851492789112099409304601490138802426594585833872780223446821331192161643864331289593052637376128221648714920378892634736553074991468167911144392177352571430420797571690172014142566373086935252762488951242045602690935414873146584786976155824181423210529878337621302384570936059651842603101711321898128000008641888894542610158032315775921025548198885571838797269171065347881453365345327391496775854037035613655713461780976724167500807743258268492854622731242747590283093592840515982493838158761123720913893191726313840811568224972436385614619976636608275641447631234879642062484480774890484358808419615117700858192092832148897320735202188494225933500038395104202814385380182541545715910216410893554590800727437249469033784998743289499789353009930050966822107037791553149036908612570751152520330666775366272574525209541481226844067010173480922009423362453546047460389088181066677067679825938129694597424890280804776992795799532136033546619748685936545891387152816910276915994754473363238581765783363683625934212067050939546006329010879808176013993662273008585519300779448236608104046487290478589557484201035315208867149530658108273590955641329395171458388615489697840810878389762652878918020672437405842393317485138003165603354987991039989026731251391279842890004843116795077569990551769665766805445697908207286170780957481432369073978531049016279017179467229679074347808247432911176039325869376260836281282616396801063042345327458302848635578634616094169445095555482502276046858414924572204873637549545215807288639823190668948600448020524568413476738513562447605944845446844463598904444385217243511531587299416430615574809694839002548750467001100242777303167246637787495822505334536747608814790638376011979758158320389459802112386106494743648870174320175308780844704978029224639241305787259162294568731241444699740163150464033055334492780683734113435342753917085660480909503047236410039034197381053693515215669628254501536901825462367439958408124810312691809563797100562228586222156588924981238780686313985812622463479842404521102485488933264625178918114825855122730782836266675660796354676252293513451915861210343239099011365768124612479636047730933600308179589269255898912981718172464667622158313230353666011704427989672421462717650173277087204514454052190229765777747972762327462229446613298762559244782527910967549076988658794414977181056308135598334677748162665628809141130552212199130761753540273328130972216850108730492524361324922590210480281108752921919259165062843410681825432387588473483253519142844275139892049925437553936854780513930532272143019260661583872965721014002122125019584309330639873239905600110924046921264504391484347988895651565260464085528751653077280824806477398364381417361416877602917733565214323861062261306463101470411895876716476529680246247099279627631716764329112332057528189020143848086448119371601487359892190905560679801147133744270329511808757942642530808262126587056935079346320630769238794134086868686711646662606164581543674510373940833979737137923656749544051497238466305285805430683999721645452301093991178001705844323165624155048048388291891480527048563345000780524099253256497464228381404921140367502907268469175920820160075504871559231593229125673404853664458009164264219903991928364292928859272160540233476022667960653785241936893319042321517705680235552855584530465648753558260907702919273877623752616438210697287182102662045487942063223855150916191412219791852430649256357022956594291805324357531260100631626668069130772684181410433484317675094599064422404861340006451170313644835079206505677414155955605393130252871136481876055547460362428913694599080658250800981309141751081868562680743632977498233827822571663330429299552269063093693012540902074666406313405332071819982630811211409527207764338535715768733422706398953921480774092091718744383376405485341573792281578707438247847091872073550071673409790809992486619508509033592147341315281211868487756934472060800815214159479705668086780617172330343530311894888326851765201388866184177609548019155641150279647768283657899963466598597041640815321099309949158847119608741566906335779033783161503513713840690318803001190885642594251032838217617556123380792053745505214337213848689608950866120236613915005039944387481789889654818862780163941501385367008611072156674079030341951835452393523243062191686027114403572375151709969911474203193698973019010943296037475712160477451675452515507004967348540275675405925563225394665352758279023216856790508706245888518864870041947007373498694278745103628581718575239697569130541786362015834902005947456930026248383575524682543168704511271322021911203991306551395894778669031186535297317923507928754994687779307604532921456825131044492798976428313193737966964887363476844525017597037932012453095588949998005977934239463728545015206973864433354313837731252981901947060210594410701995991442726263554575759545382675471927786377025907185028709904344980067000208090287310273807139569578685548822731467996054783382317698916657246623506441990669050139918109752558248646746818678374113557619593907262069813107427771125183434817702519083642944487965434562938506330839776380828021334668292271358850543619479574318302579418767388749414119964086785941791562115204777227769066397385370726602578175937514199223609617219131703930284117685567630737401056922724519237531869552545729136550964061696132176990092475011472058756473696025146900102354740915453338396894280454794566729240498363740402256666246100688864679374798596605206077192690787457525953374339344373599263575012589509562861512784543700339857052980634940150429617327877478655659613034144905691135184441139307902738362575938338084717466810655729933275623877500664091535196028819521955941443792708816955908091292335019439978614796190879210523809189441408746582816586091948410026573566805163216761603441983169068278213790845744233743051185305761457701249702123086921505824586850040360029428855459628531696494694347608056407196799335561882913899260568646563048881138673490404153014341880484639794190814559180134440722468804937737331990698118225460940031479725110650312429415325823236876707228803767084981142882858426288631224657899621039552553836342565059566342044572267272743596571908571389206197145164362171419688006455593114073206140709079024113179204369422505903894117545059596464032837748316520430351783798215551857370168872626683010457403322881761394208499344381234943725842551369028784915457912290236400201151496235876001967742627154779843553372648489484021808143032556704227010081733650880430828901227603388907694459491992264017051189731129802240833077354177738923498058273334219508261811855517511952501406329315425782878798885829131886706055032034080361550671673713996183955908949553820590646724269539026314867509223273985589044489985500057794405385132344187122356562790777575317215817913205769525479516308426449293011651514659188188241343337218330696170239047302983038378958487609400946470526383206097254674643596002848227788577317113340951052692328467378183014875805824654864670405320222423498301744197094101489651635087831682961736842435429093197034571809427916853964518629014932502756844163829303953862728971253243863961387264976409224320203971255055530102162090316234834898783653093161625643613696427776282365558471462757625425801207870856940301223054361276777875149570795176608066370661565722166040646148059921990269227830899731547386575412360920224903357714370053710485249534054172542095359972868260907439005076003217082172683942424358293097506066166702282283875497733745804329287432889900758885328259422789373170812426034785223043744412804396863740081723042380868324773565957580983698155199615092321319840166811419223871620844566798345373047661457263453533016283852965991642723700144964220468080365329641001871014425151493404547245008388737437054722594429191226870387058411922438389995649207228553465118468557948675487593712413343030689029278069435603778298047943839176449696332187780592234958110041880706184972508796562997458026607996671922372273647758990302240909892906929020414136935767658711824684584119567988968244947541225558924726080200550988381059900103113215934492086836886504073015204769710899530442429822700271460344618806869984242099348154695282559727969492989670109210568653092690800287563858383777724427392428964957196528273584658026221814663121693205951680411644793587574737980115838810474837660606841458878501255363032286766198488588428954704716332595349461791690962459541347763363781234145685193016155070676581831344287185314893198569209647918497910923676744574191149330585155704857549648171606570124586360328369082567843262870449565035250328915126577115172024828424177177571089042521020751577087849664384179086799749841880152399780859931804795297879665038926029061443379218478811804068531053152740552764305178080713521250227958374753258444341823121950124227287862119555768524600934393106688283666840555295061357060145126116734732804932019167103305819583354160457481540312063920366636850842230650390363259669160420313359816905937550610178031290661026599116451882847279012251895339249758436560063873162936203276742288820319542440354683991165277257312608002723981103577075124402871770062398905463930052963636429712283283477637086090610207502686146120767010649647373194625573895825348995091328560514532774849138550049897309012026837560528828445231624688167761793020233413429882163657611152409927448308540861049569669177061758521526323186073533900944367018543094116343909437500482742955342961561446894352960611231421186608616029231144260553895695473900822239795239224263893510786551540916973741445364690882335357380356242446357470652841264601742254359798762722031114213316108091559225522752072666500462189770599963208565329135669035680539791466356168830418555402534656583824382377708724892767248872192361665533065401671084082243782503345806258659769004194683564504580819877380575271143500804799512171194895174029462492808718386930069654606540390166139832486087118515768851842267100167198450050417694095220319206994854826433396727785717747854912816796704952858662110535323176036121722824303171305290811796872038239730163688511452139311824864363128722612037407538774204469605978602468475209863144779553471706057600124466852661146571232119971222407125461013468934435187414710333201788602016679359304903368079630140600351637166214492861523447018893803769958089135643153574353692374513835262047889900317992088396544876932298434126509124179448428388668353205421138538054713787307024706015937685532773746157759271199982712725196939757521594851623563533644027855614411468135130277110311469806972063583322093882441784632109920312560720494938235146414823002998967140156822198722448931093772034791436021697572817387848585597867914667547452471668637453653129778768024307443679299130833154903604411693316941023860173767630008144076969965740520773442566871944341382763323025872563290477644120557551074881522478555710914903460532768418205286487584783696461869468123726116328849848015525202533265980060048585214398416132979746500343083858888847629511755998574173063482444788594003925557420562723286632900992108021259093214369813132184747644233257199481547853700196603313752249430375368908292215672440567357154750615520760000542793390447775721951338624303303700179413626589912935958307126076561035299142918258701480358487753784539632071548520628019492546033539594991306379460991325523599520226197801775148295920683101406856897289023529690033233398951015614611721560261566844538076367775449729973087650891379406688274802972098717125838453211884976541767449584629914322766410737883616558784105035937490016584884181835773908641491214801656347001580482756201308224442747621164381346929863841043224091338539969125370998328742696269175249400791676403075188891030980620315332383247530344329370595862362455196932220435452348946071563790020851442470617556054866501881964433756807332560776294052237147840334006036406986149182099292007120870690130036630215719572825771837638120851087734619143894073312406028211935125554157423505319466122405384711902615734632551494750380305741316708879598374947317990737769724492540779295894092090523265833623436039735642407132693223177542295856197605332427714949207871827325016471044963969519594231158380801345928319402111887504570658434376896151129312890024824957794263021526425790087215775504192296448164043991185816773872743567089052289831774663991683676855313339978664700281781089563649132245061337687771750824046712407406129067172124241815404970913156000880999444563341527909353669496199304864605816825043779603715246935205887137675759716184546400278669627362550358755505659368535248772496406239299185325905167910131688226081551088038030451236492546415685559231623807072342945170633454222104577970934622059754503782042543648784334900812937538043168467281276027333881676214318809976468946096820632706628447568650307136816375399465459118442054803818350835358460483483621979153891647074493802293000712684998442983509495997627372315514257615484883470281278792290943733649539672866807579121950796889161130463965564157909724944919444822991146035964716009863343047992596139632849227960055312977399049186865718351696937935495542450743657530201000604666319949396144744617047091048858823766921384013944364818730359694644582796430544750074770286679443110279164428955716932437295060346675422213490082918810487560980103769962070205616602446006578613560285939947196407751728528543956090768286133043759737704292411244128528110423307282447695556723097382662827051793491104447693463044240732024105887811201000489857548294980118826267292745376652886653608027663633555857080353452872331347994027360213528665667766572258393255894009270403722533887663411093535218915157577315288859760069719759306306799881127376973502229196797619515119415017051030775533481227308255707292695383729124246243480294922072352148078571334848593838364790328462641389009194736553830541048046516385727101868584286910603686563178458995243080805650651368022547643925282269884930579057297739065918842596728715149024462026781060276069854271572171682971633283967642062942068126176858371795349521551525615046892860452185721805442112580504103320822591111138411682078874427480440341212034723331317337347823172743595198838323142144799703705892404186545599380180306486644977760402950253961316180522250166493541813068236918151082073682723275771557665943258730568779144557719091589094780944277740071002720927234506487882251383266151359629927256849959663877676908992529749055084391524956864591315889969075093654353996944770734506249708933835828450354428651906276260296791087947452756109246129575289019695117149001166925514949302872273441807166869261906616748091163623145812021919705148763824706886236008129612952958765879202251330245459864994457657665216754935496430060104837149759359767419736615460256048119889389732730467963935256889917864697208899592483389324525690068246044864679698648776563393015281374422050946169399162563580998805091232411884320650041331403285493979857446306812899052021894787541453153411991606468198736620092113668752621980128612365158758349842328168188465297620105561481810997057061973078254546509438250139498558215342268914943090239321398814894859232009088310856129005205724807579037010445600635245346531621215869571600898702995615034936575936750405620904831204859687673044291170089533058656753132246270803503260324344986936829755481560798864068937487988349995935212079764074720325038795357414745144371299120148426659007395514723379929829670185767833660173442082809309626868322396901002890032591462959000127781816424610027014814613563253900517337888449614603989099888022316214187891080175423605454803970903898827348200008328386820297782116221805401026681476675131956816245213483430676989941372350554050039018525043551386429466926191022202131553534549202380948114225497211672693913692524119434094493863429664195144336165361147504394811165319776464757314896118279136121673361342620811655596416784930405677597122060265477916418452617259310873454237650788215625394746033612199121144949565918852284546124993625352863903740817407390448240644118440185821586736018247270222623274687488308873078867170491700627129846493197086830858975498537419493781243053833586837285712408618081190282275362873960638084694976302598021896834958334739231841448819732939626276197176259272177301876434118326362772590839096280641467534200826537857415302933364473725612730531735868147052030944347600004459869687033299827805592112434549003094326464320053216854786911187831620295931481917863651759763257620350545576262484110612953507061368060165426355775826410745949787515567217386993657292931759522381633625823711786277948097452059679993570486183703921326097820563049829035267900747973974006849589234966578587961627310639653262991247458654784284527719454774910887080194799982687237188985767813839073882653869049018846794529165376010802653296420437933074084745144860389848268771973636620544224918459900494890555137716883350275301087324885174920679080722614479019813390217801291723223584379028773242114675823479220589803268682041599087116533102993336198311776418261124695562668124819325530896054117039251664138812666953430219537922303831507016293467995385953372956025424999008829771395223169089980938328744002751653656041617156359796940450470129297441565463788895799207855869844152023235192613305958766208544330372624373966512555595260295061512345907026132126839567567002164548836611870192271701894844934325613580028305236050601625782664288423508128313102496631790401158993441811714507269791960796313712052852985023111504690554511601637470157882306743631151917049124411030341589690178186688372032326767677759361994887354377409522665759056025945632640191234320450188561498515248351574096448466331722401487202396850617979001244282954559842783165522748925739028859381932018245389163056872890117754629196997184042302996829192852700966072567351031848135008849783449485784169041450855306994939947906371182605886544208923546894276586947420818505144883229789457936463404829622672722509836873166424813406006949587875876857403545677315795598121698734502434086527777546439011059075441361424909620365657359957119233343877074728654513302656828694518029910722486164518451664607895324238198564556784406089206822672474188197375873691970147715877421900570244269990211504995104525543277982495262696072206507276437777393386893885984965790739482022116058989057386804738995101012492748229153355768023097359913888210912316697286572611257593237140420340542315470541890540784715092877406449341663904390242790042261548252990670463903146678056265747818660809839414667536104422878208204700086931714191416658807034890498684572157357328576082586084000805513548645431678506923794849673773073986240508853422598748124247826996901834445234751990704955615717717915850014392761078630576107176707495719148132564822524281323847671294461867308513273350807302061920224501925450175706291130354803504607407885948031975820761892904806656894610327030113957670074299956270990539699392307434851368580897374932303997002303917226240877557091365882206753384365668881391978454639146174412091729906223176281461387193345971058135639424768337542942220733944612738813099758205277618930205780574523242201964864549850722608611686623310328713256789464916759593381802711312400387761634293473153810751813952934151916608458826518859976638543716426245068181608362289521142243267325562759263783376859940264846797675901468159876136569529791767826042412083411892242548633809288502481444152109735677734054176030484189719156869256474719880063247279060711899393041150192674423172509970742836857520602377838760210298341928882332910418056151067775484867676543593774869233546742707550932407691641018370047779052852427150781712450610215349570679580986920192440285483150220335714664615023085464141666659642610228108865371183028196530501258963362196205743157165734355167003239766033739124650375786754095785254986546709996657594850465183496510277464696405462585366545713922291878948660221559637436874316538124882702849105737071847171654447587717985871423581984368444992632244958846535967171324680927999402170559768395879927865727555396684779302494763837630352262480458047704041148610162325777844834974360265742499438957179242528002480784675611319757626112004527971263826688861730222620364846668636760402924220816061317491475008818616869518227521684352129886475170064613973040481966791056841530204062580336763686480480312655570379011189026187864077765960792938204911828179745639909613727190793731403567703829355029536357855125942053661442928078251521580416148531838151505753761211807075597340987060097441086357352344857593796296678216988443238321253442952058453420036073379997756439841316268643548377716353112265321294026021362025583469818577451412268300180819363188423695923936377816633837851423950930391455970877398773110407321885550307010506131700081900488552606329640892789462346829193909070479230421786787656605850312226457295666840342696743090591586383128157254873059326108904698518821684577269256577179976048979025851709026367395120731563258667896946065504689088931233567589815716280330362289105828813714815504760205488545100341202043072853998591191042242121996973505950049595188128348665558341010102141022207122774116261877002869924804874602933853216607201210329286944565474929471766473754133062959131421016974398257243716695683294215053690232222664920046180723298624774552788671825934590670490648408645726802599738881781908423740983122917406104265711334163341622994795164017608359054078154472518937956475033651886499387699258973866967421988990387634101561692884568845073045562222197117096434732646346603842095472827927269150787961395897360321596314969846941393311704716978820462744538095502657183560545249286479118193366494845284637494304575156729647968677136732166859210523852802810947916642783878160859518842001829348328995759133696993429486193337379498465990347543469864361902188962333626990701087446286077828715860257900421541003161811261677975348832391027013562778024369853870887897913778016939494325695894504946310635235962202756930937197546379236264960913265499234512618809293266377847657411819094895928060130334636051183563381073762210008656492458821955162785806200524020104344466403020829614492443754356287838079582343506848341892306187791529593651787204629958266972417724676339706151661936892242239197377572799261350505348967938901352008888834917377759106071814576003811431047672052990448483894008007995696270788218393520799253040340102631502709649070202455066119019182524223392952419979737142801658516677568944098000944311077195020827412664185614885559349476208001002911369402325482242083454183796633654895598045944700811626513938367531609263191449849611416501515316464474150083653138449696856003870337711391732255030098344830739175796370201621699025698929656871197534348770503716904837939108911807570049704761828483302278782075034809918700832319019453719949328038240173661435319144376638279608102803041061325133337713676518486524661982686134043568186200791512392895367764623905840744524512127422705004143079329455524288523137681829885918375957386763514701113004280397295536583229144417436737070422778257583173773624750017098440744775432937737287755699772822650487042801882796645901242407954794174508272643226083396528091220553182709629329128522117418516212834075517354112419937965634354504662600438706395986295212262174052769523856342797176993202190006900203494979540227736866850246909698075870126276614025508225442457442362465500895194134133797864425813335502332995092459447880654314134284371467847526712894882138425418501214089596234883516748623751894278799140924127812319414745893798476754781576460503260310256217941282365649714808744066505828721805536220624198788172784250058700018518036904709100489382257217447521650437183769256829260650152799682653679414750280961938675894200914824389864302874740029085595028895933392759923403661187254892385142518485413932233008600709810401008448325741495918666446359473011886252736607390855636385548287564806026842342333440319338393701794171617950868334376032880337001771513312134603698929774101562844281454639099286562089494051609498386602678206696163931951608126061912757771270121351122640539518518998037546680421692369421547578041968274941341125733555988143637028122488541312263151479552908912919235440810673956392418960324906286436635706428826096960321529805322195189030724189733605957401390720388193652766473859068465981818148299853570382533974653849684224727211754160838262602582114558454155277521011879277333241782930900724890144076380916811297080969557766881899963943383471577482917792193411609093418618781204363051766455387180079982955956529815145142020951765108555419007592202351053649809161525703639290050548837075188423777693616336500617783284267658134534551258890564201742116929202545242851362448254804019672483192563487548267287493587038699086273956214943595090121619422427574843977771671060699155185901839053336943970386112580809975809340598666023918936390624797913545439575400720012164814680159786849555399038955667958402020468271849773454347292414215741965831190187464788689193036080798583187344081808106273694210281701061074150712119441929146951673117187669489514616172044417017366684341855816338392589733717290372823818204407663814275114797173015431038540989183489988846870876020563031131460972400130918481442714658212246014668262294541179357755916135403760892663447800918859342874899237308257933581263544259103023206844569926085792062337135719570035032433127373642532714471236514518348334298426392675791668030926820802678603532491050871054332309355404275046440885035751673305696934979290530126881302539860534318021414772147543150288246967962213541674982695363643085999141536624150262417494958742839623547890739845284001270885663857419604918542489565295217071622404357837283850878975799583682100882754811384534460368909410164835175265165199331594369064443138058346092451028228817375969509617380936339240305743698631460440622293029303740902645029791307360564145416360069284769754158248030711395214900069044288357434175724395379344688729700947621456813650436907635439201958360410297911610753611482743423785272170031537514411022761390527228886519647752643724544665884828010187595145327953110364256376119418023589865909527249151105263717966592738809898675291755716103950503053413252733134361048572761801041793589538583714400594267742050922611029665681766273662591125407157886879925696118519416934218504162299949941486407033701374757374088611010858968852496344963978095304385238492900621135527021462421582738444348005943424444758959361158163711272787771315345610874574297769801907440514671602290642217067313289998674398971909201802563950702477320377901398314790752007764088544647871921923623466827443318678640333940939148359931843623305246841143160180931431114190611252469868375888237006069868335157061599305214264492501629321913603756858941375587088734373295281993342782552468142233639335431552288359525906125058918885187586915970949552476577976572125615190260941349874400474130382496655712195386558594775039823132145392029526218391911172041828861825129890833473402403630714452330848041159368139778779647425157735080593234118363612554660809927028405207711708066492799154637707930987546992377474989911684363969880047372243156622789014879482089884886674517128472562787245917419251623702435687343677569986887869025245369042479811033552980966229800304624014618196252800425488371926355798691714913086338302617152581573620623018977256156926869079754699858115323141303804895071760428252025823773071863979995538702997917197301569920121862166444116572741908807698726985341091422962982508547641610034373642441612509975953841757451516704922975541738614258574101385101496513433280885137101592594423470869505327556102818112699005898940678105100382935372968470308077425821286921656237583877478054569034049323423620719740101027149493402672029732831677530908325530540288404524896767509227578991153245969897198104150772657813961027060197724796732796833305437761639396869016610903867358976052618263665830248839601614213546575930237677840356361116383805081832702853525464693236220757865386214333519016536729157081250368459576869876511833949787101408930357517491614866510165294140516728404497487534327420704313309541723958655796114482123740815690266534154287935595661192966362902326766303986370276774181043886673432477925440611564163647260206095710851178863113793447034295387639840997793380249308157440769263730451125089504601329440617567440801157444847204304521580501305287374471960040590153713288025631015375274801994138304651042676567857243843305805567237024691978296610884176157359697011572675219332286107947181205309872736953564763371302192628828611092143898288615651811892153267717649506934425725896078864462951503253963450893864301536585990410273165421933883833600743587019953071534968262475482699994536663884184390933376027456143139586732476181595108873910837251027482872743345761118036602637599182740951565182765133131959000424743965710644341672237423358331999915459618461761803620464209995874431282067641995848829752223460148229063354362251893762288323181580649521730438037918357591801456967063091526552152033890684308092084153577344455975239512395397996578004184302533766585125743091470437029331737335925221024835803588998334026983821151373816874822290492895107934114535159047089725618228780361214433964480722431817933599428276135339242165663698815384487343403625064937246080488273389509108185160205884335466462480048995724024923209768017352317055181933709695941799450745744901626401561143584246484692173908461895785069197820832274068000721595507494723911592477668452660291810768954414779335389238334621607998106663801436955530117098149235552138935244494747778195520986635242873248151968124007507673016056035474135773439642762811631006701467209621067733095245267138503029127068663379878209110373674592008038657224178436639395491158677465949214859009333264277739154706238861357056396842518280947782921905301118386527496023496904501476002282961277322215503710036391995033589752979914339838666564769502056233737966808075020350700050640770109912677580481694650372359450680906352188632293007258571691377849328306679686855845762797296315541157221001005082533307730520846490875814703708292202799574076520406912146002875385771560798897965255516009515362733081980613306936056963832894253616987431123565731851651122185744392755826174655773441776923150856807966143924165641533660834421683640752148994232161266406276061464309409993881003663168642472539229056984047363943832124721744716824615482306508685743711059281757824640356018608332545385378642136375210433772883430529893679250189723537347651978204565901606472144539482867049997578626683418441739806817240579074695190326686356920720108000076115364620051252068949732351281151557171742792803079060944765023398544193404500719674727453768513830934729732984906970154531601084345273535863813636283832767868425082129533769377234953285386915948454522525778810802419058938835670601212607431235792851195175708941906496460409733662358589831927392991789854252653741698194909091385377304191074876906962694749832626543265588463879749069954857639185840346950722807762638810753704512651089202925060332321969192065254370403277397335954356145618122482487899744544724573510440365092898121131643076627270852032375051617490238617427057478430395807658808359410799187097023122335790194947986425016032157236109266727389319167932609583501619136618554418210237296830349048018132169941307760567879731537451064079709114888155500143654259119493266881826603025696004812215278544189950990873180158960753202113491502545627481128528370271116716626913074945339899556012141204604917994001728689531295204180445731885360392889934522504435272355947166833971656183788421982182048560450530701010170320936716363024341256696251051788478915594471417400257630820802603337835418532589354414982203996062351816576475855487407803978658782225675816310936713986877718412014729404394124453046561155485572616214132116320534282135180969048491906214218168741785875389762742984790472664330183777748498071277529680592858919975520876847234922098715969644133660367273147070613315215682124235830788898437997501148857780903076958991069772005122263806287623556873888045457893083434417816350521989414249158088505613669202264334468707705341471089566711323013919637151082531408133851386339956624962382923621509503245128759603029767032070429492923620967761074871991893181562755881961148827182331883754511624625844463525031396968543504619039306531341178694085837053760273716980579976924536217150963963341623803972755406412771749879302395740573384684838555885378502949915069861422461786794189177205725492503188132316310551364151181000187023024796198032473688228351440719265900248305222706322567967540800498154176545445088798996150007863907503330935142805427388044011815419916437153235516171807358682465188358825856011330153258186491021666198453756365869823980761778513016958220348673992577123712416954758100758566671334730511323588801070761604688500463593456912297413853825348109181002612947972629169290625813597964558333523792684522718701790467551399881942654101213968094062461977942141316331929160127900164651291699164349146864750800828758887364504848020282025029326840722183405699232154805519812946485912273060685631337903991215139548808546302778031537003152581872291550743548921510765841053725304025422651992885056879904441796001448142600017598222364154266606714915098635499204264011717692828344479632626305432540077751289903213991380936933484931453166415163539225108584579214901628248343690648613682995827145470540274631496676044033312876711968229933222131530309400771877996295183468074650473986542442019483927805330530015593478992909892344369248139308165922954326637687573074283161154674238525053593038548212474675240071100586248889740747028644028591100746408144591543703346980133397834092855402055252602509452502128187318556629342262959941079236922985196560005773212747702764223232705937707123188336132919979800489692489442837034243942677756694533622209834842938361499081181029282185492636914759299333079677176855614902037333851064445692478450132226063572594325464616556948101459924657939507389566847375892452795602768523320639206926676675661807874827378443190079416040076135007126134630221616866074687370853868255662370479141894149256774822132805445932598639078688504381703366993894455645516269942951259594915415298434523767229379092068357963253124104436251283651389655535026161600388061090506419684787844898007619003760119381302171213000224476197195404655351948440210417694865385847902509641397289339987897873744576514880042834047215340881655109322974856619135968048222255484784163834619908366311829802873971784739009580360839072624805101659390519991342838215143750695352304739412108396359515996131496270456792891557177499550273826150798609409531844149095828195671999734432918591011690870456013123346925513777642997647235523901305060923629895656018843222068607967856918227859943845036181645154018940408804506429273552283763927969999540748181189813943011008552900032095290978824878285985714277921025293101568921191591609324778194653277631071905144201034026083819719728146058725412786674080773774135549371484827884095571839530784294702315142366279766099473065283211209662725545849674466962744758623190228846976759414981217030012120635930353079748048739639980132603937547836681370404031786966658351717059910475616654373481340720123377521778137215136876340344927823071107577475364826186457892273536628388396445157583971138402640508925353456227791564352485009538290462142021250233051295316868792005647857907065926881172898607999285657671711760273022514290213590439352355353596609018694657935905318678019319046246050886383894403440531183571043152293347112684508001510483200205385782273208361428792819786023421288131686490887257390312361982947979301674947217969009503717475514958864608804980291476671022417951917903115784484080613478388061168218049014292930804776469564233000419800511510489788089077859867539296317849447262829074667204175503205408927378803726610096828664222401738427372038347564125817602104615795500161004784404274204088469631420581107138711716794820441243185470230202200303428215367106485620124514950588283926625391438825229492863428833310577149856534341599234303071988886993525870641446953572010741594497947913669742464643904095920130408146325643805699173893211532110518784916129823949519541704061322162001535017858177563926398106740549743856999887468508291006010093317576207330070757509622768307976001297644304174761832645197088845773615410492782626844185424051351896453672013150000286074844939885912559256814845568301717214359249278916572857122490263547478142442400913943036450405697526069082033931650113861089215234489211270210074348025568668965230739796990660704153489670676291377442085381888034659205468247432377146674642383831493757441712769822006163213799431960139077979086285951327963543935583925839492874820269723052769178405137065978723173720985974106145066882653982570756326415686171776400040132363888049980581863659771477410597428839458396715267394950190621172762849813511065232076385141315583576685657903488752576663447884046142688340245473621205998328892772361792276546486910146601345935777460780760037283870145742406939272372362142442567866405683232528006929109354891859789182846879846087405728373297247134394341331512190443895408735082802945737392357205311320409447395925529818118291904139633930493686785635287965953111458416353211115139089097648800156155360840358347391556008920024553048813134851677638256897062322111152125606566489605208738787263560968454459193550102261472242751251374458613852513688918735256157025423642256517018509856387797723134908738398498105087887235569357883783995953837861394146379301961485710179572367547245056849434293482354512890513222034236734549815737334487212109054385033513740929282880996125029340859237031707288507482286355509924050230368094854335298894456178775987059679692201373851522842488737620322547207190824801893894135823981860924623622662077818915416094946493528594942406646082168491577934781378672950113522937783913903770480197922228863159094251762374808954896817337980841443013398912545392056750949284018804789711586599583427151713542384490395522023114031092322730300506107562996318197825365661949679146580710203359818699359328002772128647213191805364290814805841768937055823586326236944150869705086833769092675524797176420298817860260622160001036383582557638868237682651633704893237994264681724747642882052273648693184501533473227979084230338562310265425145358098602561108044673481858842459911089618382230324915352158808136013485993648961205456973060537110140822573672558887667351080180684539975305168703156237716898049817661639029269200176030739780161496173482029612775571170835546777622787637871625661850709438221021984868704044307870826648734490506716309114346650453964447847016142387699894742910898112694050723086409160080537885360398976288617961269088506349602533936044756883137473581754446083037612236976014221887348052116522649025890223341666585274659142487799963862961452475545754477744011612179566260271806098449855873367575381553735564231422371227826512921766489279377838832281680008705528633126187527942608261492688536309116141718817630722816323266860698277999465185346236667529887816911015772415228965853822165674152211710600036563329581779979544999554226445651500100356017132353642186303589335991571070827108119735571916513862169641182181564973487548417590910631149611009559516902834913587623386002090610201157515958402058335679843582512329876381535882166655433386660095474579271933901735915666230748758191566363973457867847509528284399067626930759242519421703478479491742626484871166922492819691943082880733570264889513400779161242595499719386849847056667383765464802983895695915040937669593292339675964884944022611632748124525971460517077310353113074542646903019486117033076260584100157373311256603966409302067206576649012437912470744586878515637348759626891405386030851034582194897778528655920389935299501448750648243963613572071504426798335563707097648614478918998644534380004709650656077489487318559148303641155860984232163493652555753810292188940154245422091357304087815601573809487062025727216991021109373682128331941232231460666452160185406470214827033444869182187382838464249482034672018309481378565252233655695452116557671943197592561126664596452218516467671511916747951774510962425586378442088219743725525371260195768694453117183785844268431990722813966382809841721854265237191445876248764021598990356263931549107277270848147791075968353690447526244085103094261327259526214003000794011675817481807047199231182892624521418264584153615667820284975288383127992266602124442012935999257976303304047954539968207991116964843759703252770794436973694702131755640926136669528842189245696317992528948014653576453837727132781265813410699511208434670130793754735141923535018990568912438273749456439786166145438480279501618892194835110372981520161198427297308568815932484807713571795808988391134131349766535981156865339110279429952509837520637612004225345896908162386715516984719821861948966379048687532394195328943820144446867434832338275627379717729954757596250189145627029407716280794985987562748801695659540620538019179094841840709577405334139945941622338420541940219926131193176287440297293663342836551706482934483971766440889566575971914989823524322793965570545233668395355657032035237152919779853820206335285978538463804091508511195995923067779300742818160485645024619774786975902671992906455286560027846191849950770013630958793386331176903440170179690525574178597029416586870299728473025927845498688820735982103068757827672995326416356277792370490077291296219880703251661940832835366797690467801222592219229597748626156398763166763961659277706912203547280395104191968996231026777283495437898149852062657951487411130140290359349975640472326678431369314009261855345273468302230933071783151941710392784629622089523804792346574470570600244386140416350659899731872857227141476487459076525060570391420528894623459213937532941046598445815265863541530819582205160412770579049742812867684424396782413735672140435735032415216350117958585682107444793850423942400259360804885325973519948629450156786040458161345449768477319761916367956701594824817461382730026901990541261177569479745731384156534927834865099736084955982662668960271702525974976679232858759694641609293567723254738595499409424201574307928466194138453107230627705037574658500175464280301706702099344363786468033480418727990957169485447581721244751961778151640384093776620536656268101580403432275371950866901038059902632450981685113142969266914658268018302585709104234504116296108413920176904318250729219834900650106796785101621365914496412329974247206745907566950735269268953634655290049672870181454011251780196797276763091557291791060986288994900236674508406153418857080484498635386765468622613948277865027923264025037447163393597491847550882343298966786276579200658294112692961947865818174685934745656098740863882647475728782271987331464299075571178639824198020740210480041486790589834003788957191949382464072854059209014895180925979440981948244485648030639850983700058531511189790781668573981494682668946760196580269795563209543550862335529296986825084905548071218391681305619155702013852943499031269626506965467301431149331999993270732690549731121818600447533251785391451576668068028295191625366221811599118280762065126805825339469937317691311095725901076922104471781818867115000398427863054869199771154238806165734241522251021361943809463978777691358006210553441119960804936020646886981118750388413157349770836876828630241814200777093496176986548984612258856983481852489043893938833084324939256008456165284328196778583964748269264324799431724180498773604457325201557310559534889126094158126016617722567442395986421255008788510160983174985860688238123040353871535919343125873314389742377518475152933116568958368598327933324275832911622857779856835137497231751879202127991626649766807308904671095066816667220422589693367822095428396766283282228858881060350311249937034649247892443847986739197937595530124549927787878300391973928879953708284994174152671670492231844128941579645884632264318902844699296928301416158894924726561427161673097862937049247418821613849282905673295221631271231328171078173388437174998513494181668892963085926094087129109447588850448837605960543349029867611257790601094726331409527203700771144838896728048016704971809960051667751030708733692770559249315853011036798725897473372995670957268396992661230872824226712986386469797789583611466390268939043165046035487451079804168407600148801378073732678788295566724897951242346197378223893076054601959896334101889597990806145881506694114208465841217755999648986588471877937344796546788212227630810889487310664789447323718108071148631787248696390473388650441695976665570669356014976209349456527187523708610657381958222013039202695805778327654254501576161737927433653481200622912933505140321751950134383053537444642386746340709853239141288440105526990571269103062033691416549585727552260620354245774735548598536945310525473618408843224995036272726849041600263250394730494322655536615686605520609692797523059732318542294001912169740167944539596307815801035139784544955131791059115797984463182109621658694981142617519580557572267156927411610805731007657954401946438738613058758284208993561042339190449011665317562148600436535949880933501643934924415256196762315473135298786070157170447860516926772232249079422821699927142657466966209181677948489086089356347669998799819978217531739276754990366014659390826541220705318446455425945028755119973592162525204433742417163114277986032194333804106522903748686598126974343915838547174197835651155690917829500704379362990611480569325304246985910790930217084249710352046998631252439737956343512771923098500248485968336329239946160237421320778122963949932481745106229205572278771500820084473270699470270105608475292206787602249928822764020639237689794306378823414147283879657881220556410505213735563913660426906510377691081899623564098621297324190812583534340733594254737331654542839577226348072786358446808329390431706836861789853027897283018848185068693905354946983051089726770839059630066929204060174958592647345583833514458010689976190476126737336912269750596964882868172507589550478756535211506266631336662539257043278171231511746304025694399342739674814068079852745511604241206338830317935474256366995386278505112765952165560741515928420120825772083648649931051835001500312201377415369959062644060547654516407635012388800370198187107556308835787579372244833936256605400903009139948366087812645026410607359400232055471822466514934353068257414178148498926228551661816549466601770078736730890278522039543529759061198724579903054373247970747464878330029124948819233034652677344321225936695809921656618028129299494035536504161292717804793986951042581476497299810645263284788279146523830362311338464032651199877121124011903998345800544995253280944352136593949622308805051305667617092916407718521877579835093480594372928284940559440531946807367020506696735363610390915707171607655614267223704706981980473459642836017719524178760166101871853758537721050856944008509771821479895592094125560787491568777270641944486366008978234533693806247116076638200798883283031421010211425953345695803505809279838323222647625046527693104742456812658871540222518263733063756562709206400212531286327985038577722314400914210062935423416708481442861380928076555304014912376529309716109124378385716584766007254634154764115055828975790668669108754315483692195265092413769275601296812846599818574579484453824558207303366196727417904495207488823135815618133582690759961136286291042720535648441080064748518192284635014147370862283028405700169464430938372307171508604091921628108589477597708728419960066154895102577295332937576917832847016570961795131642988584926013466190952723010281565405801832114696565986218714664838035712096612092925203757990884301732674797163782235075420246608534679963007269948452382092055755064884801246342621417300418755818140852103778220741121241648293065816341495956278799174586983227199824410976943905323136387962430993158006694341690557235070226785642269828519349696122424604696597491154344424028446384307704743095785997849129758094542104394949174469841494200583585734178126247215718054652525770447989473607668036873670270966267531990863123782831653254522466945882114500352941881954104632717228190057625255862016877175082662415192968748103778006993963586737713328370526130709798426410484651005121546534680595787291500635936768824026941925878355359027224778607988882285218470847878297639976935543376464248724404821254329616635221221844215583738597953216628590002420219350594560258242342593545835527583108671157493468702461813042112029042050286113559780279591749690414834188350281548634794056058799309524972860342153907932402689943042990393864674179058573142957503986952649603446336643645282800371088448838475838354558282810617333513207629813447204189193697101476502245511022487241276531636548372371762748506000786619172416158935663175877518709457329054152459083619145734361108776814542839991268594785086246961412780653189031549039216533012652396099406332636747840771012168950257322909533187654045886457282097075683599041018190786722436202770257125790106812191634859022254460341546789761868328964930994859218329884637185036169336048800339354490552351427390420539885751977396360171611797730137699524143498306023294068852877526239556293775542309934719749303209411410862644514514725027355317813529075239709343673181106232805087451622439507131995067095731508532437963163333451790634666283137100212893327126434630120494693440496809438243880186050069204352237841716924131096372125791090122440526710828156351508037861199013394124088546525954341553435211046855697750800106312295599236886443767051983874062538636942970802615179875208806212724681991850702162984162267380889365857684594346129063798333003492118749384846867871276190027603042196044052231617409637673386514602004887181548150803787704809480510886307358712923567770852474989049295810049341220220875326042704124329392174283760760627721424432472904017462423341208544994348213266416584919685514650082695211374379982284634469863520110709754257895528988925926509415797942457826410868306768318005107648385667968232622682294469043958552454695417130457499141020570951096161817136168258800975786698191647333708575844282964672273167003191823939719072080378207799839921077682754076651658260101022983844243322361121921188711147872967373678159940061105631037747981539230879472304778033962137436499643735299272610758110010022809947879290560884125762657579580036121314406833967815099339662728619558224573808501516000591122459149386591063018589422470760602904081273813913517867825275495607297451802751910456941910514849577551357218844032845457044330898691699246430622789563230188828139953523781725961175383529601656514066667895457031119377747524665552021611070592429170758413185294237241558681850042937772934856335865046612666536484663790036998697734059909403178566711475465708268038926529730518013026753012065597349169166981159490595542401581758690009971968920480068592866520228525973712553910790750301161815172644291624289719402328833119234831040026114902420759642946533685665630503116379149417561821236608077065600337961498856046102217767188659625973276239462605636043692260705992425531166207677893308741127315436250983113390685476819799046747935385572974250380191916969857728353359602445968749304997062578679145911753703022169235880907896113064403451129166387878954822998781788246082290930824190771255016017619503390695987777196957975088203065382523964265708205432244063733067477763233381224338472345923802275010158552068924797631661469478068827833356782852876908370865331807842030005881486392457583332030967895201189146753241955659141234309614198605035798450995551761680090229738373521085515282463858407393733663223937022049761449754583047106713981204104031783270467749157589453258758479873305363397496700676698917581299679697311766357554042393702326659698589123330191410561467443054422450332912614180588472756071675143165285024892689024821518549138341527011629604719795067852166759626015913398114495784484260308095994491306015123910052067169288012430413775272345587050728097276294947045230297763802473340416956228519406050983478844091346804274014352955721383232129633485728280531996898444110285076169203719999654841331897428360930492518449858414962829561618725938387412537537451463837312162265779612027740201580134895611007931484287081972980889066783201834974934177149766856095581026415849326203860530189613713796076477069883803956811322930454566341410723876761995249500248336266800478160174475748702228416759182149973388119422803509922632641586675610933172585097143474333750015616047808412726066205304199507632747920629947395952804209909695403338075058983488496682416744294003910771267442059949293777919414446136870653385019253777939638219013179815459193229543238275811322051458316658062346689845329290293011647469564110688888145182025092708548790647114330999845046042575453912776275785242503352761746889721634228773221303579004646521886965936267374558628467787038367486119524923644901135653106394634932066041199193648943947152586087358148784289035104742660905333259226988253749716794822460422545141263364450884346351302630447917839054107486154723992729160463239343513031316376768215927739573436826344938711276284635211130016031599126083870888108806078087346243994703396337383508238110594445611748675150425984669781070140496643072912842508155004156643632847200647000114055389699474291144348764721202902980351673279922942958535942800168074108151832226494596107129422564191796481797793266892243161092773003841113446618571144324422169540734466530394232115782967053331887158534589898004964005903511530012489868032746610943360000191189828680995573372456060199639248033003357363439960419919465407604919996241432776137821864682336745649735136897407188976358660498637391100204632971675873782114477093188632622844149461359225764762284271577170381098596604701177512816147536645504518680240807678940886860109117269607871979126833141156566483771425766433344020159733416354348488284013248011122895196357289286206810033915829893162609361016223651498973907956853105581056311254949358680875770419009333632707152090935535862420298104265204698456476270115695140176835986379824568837970984203860771712060508349389692672086312114083050334325415018127789382346837685978587184259414968052293182476159675070254068909766393249778378096303504459172240186155372507321538393567898365992371041310057038454640873548764354689036496250285547968966756678819530830128827734984709607463318559133025667542813419569795150949714839677881572134487799093323323463737884536693692645291769472483333742252635947593896938474415182177995108503923037348943710082507615928743465360149482354575887587500292849266627173292423416212503169113704341883971138155017596785959697743028173539135701791837670915217614972621874805662115171623346165013063771848860421951072908866297005657910054183834582339523988805011899332649035343615783170158781123691586723808302162847969594318489799076273289331033703666817726696973848646408282814973384428233400307298105567752210444368555402817172893388558874330021313245661873653180938976319446809751710406705480090846351070822499218519211991638718219599994209118590351841280181211186753788776638467090638371951693468058562391723605956929729816353481565122862210230504199100088006723051811997160027815461717478976191635912607323643381564020479143420996832920221170397386986016741484036886757030259838331828126126991474484929294774563871054687955461096730414426696490008474389909824034419207900025926005036628325308106130490165777385251472263926656126186931340374290557501896443274476458215045137425731826627477069833230260208654323729172573846240747505782188311145204595091184345908248434670061434714047387092340131103604736373500928280145593621599835695875460339737011023827815500261113345192647166475808212221944380395312533534625516369226129841498235670553073546248044494453597400364406106848135098695125719455695416666388872639286522499986573839110367611658733893244098454744571357444967894696885890537261584849236059583041328750060941956703126772630666726332074520447703535336764025104727229620243144045511247275779442265007303300299840159490174542433217039525733737015148044158414025098600204758943206540600458173556160459082127487176972269156514870490000526961035212817750628120619706154608174515573278490718900248979833493161222797640997688240040182594228350567512860131067316711617385077325716840549799676074299382248796330503134903677342467382864597866080055278090786882096526472359366981533499342864603470553007795557922767584411905970428393207128383936595647711471886530317949802310209963502518232520740540404194944371229056763393600008791072981427701604098701447811765158374346786702067563873737207776213320667865429003331538100737121279071903284299830420741982307648376883141578425552547787878508065658930683939783206818100493630358778045538876265604573022282779633533846248902670035156713612250281706495628566874400090102991357396946764315924856540223486611872935211022647071905947313070820535201196136492286782304789230697077151179953498177923107174650545350199895732008426504178042006135620236194507301222658465478384918874711508512237842371749234588203976141824753329238602077818772147677413340620094050063545409507105624189257462957217050756912078483149733095008724109351733848661132605205194429853316025953032032532474936920922845404547606371462044447502933514918739886763178898834543100991547556001892671799020397161032254615827403123373372057334310805263603050650428570081539498968690394676601476686019456998199185649290578684554888573818248409773890775617784185092424812143678737778448853680316924182843571600620280355880808219379200670335913769685330200118468369961958284423693949419875601809324415511982846312687246859779734915943866414468380590496073245277374586033222556949750651174154339647034262027093694594755022812518840171096676769873408672117448499249818952484946801824780256024952949895252846403381392576381893645295914813012811831074670889959500999495424007947463964296101796627719569079097494929984396841306363174051755217308339207726252806007407050976732985787387613922026902857296971559095026199570939109857907663831104183972398975445028661206800693258324912855281132418241018309613788387724211192432094614281371734108435911717659887359070426886307328645703449068429173440542077389082781670530202534861963738031585110718913072398734597559838922154857312791227505531312939834344986147609880986739007726090443538488797528707997707721649583494057213292873723590075522979431055440890605331138740686673923118419442122424167426153970303777365834648997249189153537993799097687761623276900885311533489385714974144837819869853787812065006031460600649157286680081868657671841499797488090787169814748793654013020310223191696557323009807502998280769639128174267058597243022671565033099552235495196159140862609816916101595130030121616265081722568309999769443882057344208017941705134254175168462271133717018949366928540785455014611067633981567118277087462429844627686953813590329242409207512757758584314879286379443236050316390632358011590956568477358476147096846196162807569260473153759037106692658622594420859083732646131109650942400226587184794582515340861244777119136337708547630147053479003580963710864353245022957333083907355731523090454476577308769116643563001901758545786083279417332166891280032709176777188625371485066596447212999518315570052070924704055324922411323818178121275575901027473106690737122810259890122298100346281006477936748928681562254796023755899484762951036998004710867521234299457356911834325345438217057630547749601043337457530770907922691239504038006311628661928733955039251742697860711953281030084010777476138777573846521615040927109577590686748550358234107646683073867959550311627726297553491911935434885723968530046967942417446863339584893505721565985947746614510885688562546284370436357633884144981292761287788341415229705626313944953997164326518321620667927985381877519591119704949560864382584435534819181455265834863220377436060036170978793881156794584091508588297790656294469628670259985208720355509519738325400671233492414560917981429369877813078186579819650161455246917179534223474457470001594186318034030612575725127833806420428603653438310419377650301101375997639798615941483740715468293584455596192037600919566271391193189403312049957619519020687000045637711095886165307907553406844695442611093120504508802118587466915280558820948663145633693654476577634593210966712005964866274046878268644051094668415052157786906187296439303601635288099273341172229005214032579630851139153427928142958638092998066724645009164220613470734018049924734220961075614212244978572006141097748168711487882573397419974648413886089832181098704783558495084759735501145366900969513437400268281425459734611270130836181509608356259115332990024107749619670577071181209433799718794677411383279681860308738560702462488929422178707065823549370792972540434782321944369498525886926482494710063496256324546181550353985556154818220966784598381321265307571538926759681543935215827749014926881669538416159541477738761009082575361215121368910161171731037958728513940917673014387204069250796210343549340282050465973669928232152020522935752775512753048556831215297072672260986750002029178172836413242837691336504164907732638772808347819908318128293444023103483955622395495215792521898491845607961025103406889930466876219011887355185363982900113948554709163120875465417131732963009254730952387654793768545518498979725451182646969904835626739018897872628937431017932807223791626287814097046439698010359181258975448068403367718900948696895075167441602309444676829482796735523161643855269190354042087174372183601121274582821529230983394081278531570256155542896550140180179955760535965031395794183724577531413257673191157604262750848279121832736580429523669849447945472783272442049467335519144611315568928211308156378557941753702376572805398128816030019969955708185992135706163713720070979418576461730156152707125614829319720629004812448265316848280016014789492187919836324728405500528455253910148434305605399616122398513095341229803886745034051467001722994313695459036871407554888261619823265135286717141531262146961515430124285544403056354589340908490469005276658853164838571686792300037082683383655759018206116646638954374536949131619577786018215706446784657026244060937387367083318943369407693290232497926860242332945364081675165265321525941707210719730275405569782659946760950613129023528669290729140068823814224937008188262774975417209795092628000299015615463230054537978140644059801417388800690329782099980106542122039526870307064606811872922749499359157651169487595901142462977501016415942565531899769680279962680981780623329028394562602489651151978520984353563746214027070132604042290833655178534432015625178825066625346036200956755501417324008720552928914263009578732601469567609685161964774383982170865875515488751096716608748232728296438125554072082076487763222898251554341742671991388513473860261174274661614242639793262337986565440741896571059680635092831822112792478074573621314245399510225556838346251643036597082474348598424758014843052919791595943218875169147513534334032343431707165561207486734580503259382886766911167084843934780701812121584726450758524380177453870714650377034356564987546482085804409796928453866802769243620549888067637119844113266324915673268881294852718273797341813554281835852076200353841688473009452541135808223515017899796705050223744220591505810377639659166056160884719150548310980197144267384596671780618267876538604817475621141782796704130595379783344913111290361447299708667766938735973644121685983942132618271625651830132181130691489045529262699785800539948766916999300735733297089414676995176616381657455847273705627752345768080632244403027824832659375103428417433874256953385603749934556554188103238615328814328652419890279734273014504205389421146238424501011706203434181805950628657105375242775277341203540224326034031299959002668500976596274841699959696445087534987062151873214175358296685145475396202853790014673530287523468512719483839393019523088973157644504337401165650771721205715402819122549793724056471969241190011602505491171564781477929675918044991052830969036004224874400180093984387080548026464728170466939617185164193141273851664439766371408160269762096116646609032655606609928837641791321285524873333405584884678823531661149849035250440244767794573075400802682700895830150625180149681031097935110594137157459655150122484174970707630425998162097602327772849546541718738413532879320501670754628833396740453238715058414489737172108910841063899485213735430829689176404111034186813957421647890095756203808329621787593759894056941979173144881886286525345722485205384238593235649829606376576189796992454274285278000095642918109065967561114735539778708162815396167936469054146802173755244283914036636102842858508893051957655955163554491395819065663373735921628414692163592014934099749441567076823510750775855622718207198086286721549777750963148149162935537436732330738554369340426794137836397737054836358168352266065514597397049727626311306212531350661718943165934663898159245543241669082238173033586169730379805727666487631084100719902418156813327489491700833626853758981839306200395671048223833121198791548002566303553765290759968884388933502083427772835407477362227683820304278235135590350946277984074243714215643318561155645498784974025345448206364128324882665297088661378301433990030068082736946393812511376059224407316000675770340285401749971678714233428807747388729329685073657165023430513366351950528174970522799783304750791766151131329622914509801085943052347476142250101234869309454410300947198905169038388219152241708925454382870711538905793334503759237194645379583883518028602267257397137358094896745861723136068717809002785516260384209885075919082186754043702700728276149641396923479955499542959359093392003771142656147257722018527858035469208635304623543071236658595838247334062094356992908258699051194955042418532183930525923196143557986634759173910089952049000621267581158901129944455552368815989806225471952415480101424838396166347729657873304874112536718052840519566488941329757465901725726370981265849199919739025769612766474619607960965188425613767226662960795568889513404945998372914030099317775662571024161213673442481199863318095283670519701159395518545949596683948854671079230440378884173779198515051185675526700205005379835544215609677835837820935965055956715958325306891424662074791898185397499385293733996644491463616909573722421584752702049265552498079307155213593411076732905015937746298135301339582851947838100439582261287840412849767664510592858514726024204568685885641060234756037030209630302121015328335148856577998796521357630174275220240327455755572290276459350488291668416549480884663122969956376686950109063893254743125865930981372862839392153439311706448581203597743142444283044936233417156480167404123372501379608767096881905287902708312864108060206411121172589207633843074345428113674921736274794185569684549894310610827313490647227050019663204411301059796472603133768867293724483020877899495992441068241599585655268903326128066804909984327194055952520532527790994657062586105156755638166011701868755300814460927296888941704982390759843060385106656745386057528493925255164461101821273884227872482645394096713494905819387047810941685608518610954418920967954603141514327903539457673696680381482359773179656206544442235666191844842530949976328672918055869030353242685243419501849009620637739494942336979702012745104267684747820415393075609634635772662084056703679649973703017902864913193079151720139854190279790739451245189108202402777995894128716796281698312802664435021135563725455131745281755364133370401620700358485763881363661690986946849312614834764043287710022455393983458729728509504684224471694920550654198891757564112914814462915969675961265927935309570191963038575806110005957320143560962855133441646189031880430045111785487791676603767100100632267321592342634733341644607500505989003527772213566527763488993505309824798906526932514207423520957756910408183603101487571740444593071753346243899469306221196070562236194390883013331914484952352765723953870706835182918286735586238874610078060065333988673134785223286265195005929060267673679944428234405868331584625619921253548182671022662200063972024412996169719743080394535866143142414456290661060098944114188291532149252357996497282974613657517741185780947514475073238383950475900138036984940761705217259108528992234814753681103989067119550653802989937987757784989303493493991391707122800492109518208266563649518842283114887493205656990188153020672140280892924072899176769644625592140856930072680602638862751811146503264090095597825742652602316399905139397591966267414071034139612424314658968572664062762329644596781873562872709507348597866901971747196699233637651996413969930489819217415902630655696602375818984359327006033636481228253138415132281560574105209900971818820543922760145016143916719931697164785089665673612402076547340535748364967953512819638636157083078393512300457347406039189123201369151524025628059414080695456511376610026884173370655510820890115667241854709609428020109626418282232207536906638711004519488311879367676810398810985630605204900326936732969497094397140945723716964300954670965204639619227911676239939072518752055587631027362999071647743407254992244674278658110189789931163804875732981581960151413220212604841806987759707053882836752356472848375225964800178433728893127053931375292057570576547433211141727967532152076447661649425491046399095673777057594294092258612753105080687480938585752123025445400048590534849985994204168434618210271274217696242723335690857323133148110156496523040227333634761803825069605518752427272823604504589792600542189262839782217139649720441359840049548863419510828186258703937898548624330094541797086305567890274797051171166039806846324198353362490581913984496509502235872902445566510198045038920377004284732321061189604926643035975881012727699506351686939620719535475698605158991631103324661581449927820903667722645743854425988032009525348365226537879617817462458200459260778537995679423547033679915337554042555031070164096518804288426313194794415139299460367876324333805907024227294261829328333520813906167591016328820644128260708296548281696957721980655238603034610112817142281346247389011016134658852193807624164434449784364351567728181975052317036281877013946981079446676334788420862611542574660564238585836451246272196003859644948408833783588975463828421543343845533008186909407971179150929614677460207528572915390333187407514702297936759345597516861577295627225825970643090491078208724784731835917669221746451015410191308322160985961459681101965620664574184072955217437578209296141557072226832073218657432951296208408027008485886056466629812169013598846783494901022497526513592525419578804075467752619349914507816762640506980653795307625091932436239083036601615542547955409967335910757251280117528273656398734443495370447521482978862111222038631337381676957281591806457529812314472520866279889202265115742189188926545037171920678210749722993443173119109769814123500588522146735860874234425021038280271127545957084403052916101765115176466693059530020112551153183881473779251256239480157023387980530696619721110909525214575297752408685032238115396398729510086439587025955559468337043043439525973138374831690797755645672721022316201443244013691457150722322916431207510385026521661458695288623152851639098929545016053481383181287786171963088588392847386460936017965944702953059710824561116464626617008006142957039261141599694163998575373514382865937827413615057519475070256843507133955038619496252475463482624615665232538065430899163884115549337180002008511273981935738099897387026074436512701468991592104204593098699939907921248832415408418004374226863863153204586212612634077032710757086520787841337676137292452017804656767122315086961277661827965913052259390246834771452161110899991297976626142888048431722954768723646143836039199921304163062793764584413228461956833747784159299272398875103724092292191923648782685524312479798267358219285421406185125029689476042964000564235978614420928481691016020821212159746353136414950190023608174396133529953718695426537382759737590930410383906799812830386969672377390742823332148467989397064677017151649876824955920614108163806034259066553938900054189294631516273815912340288010566024398946627133459793617099632019647601772310629095938863940894619050320540341428710865540863994090440290980472687442057776310997119362810290945585287048167699776344577540256782565596829449221635197262185851534332736780533893040249113633313852097604896631807845519550333298425680073149106702094213909282071085431245453528173802471545401493530551560058571053285178568843125438406895838883804624250575720565938287939838012646698880092802572909750464902164979068245562879165488913169721696945173546257075840939533001880638259185736704069640020065359903536032202282282791011257975970474453414926383567030413175309076510017602338495335423725719319296212458886270221857648888062643674635572969245805315733016715540749874668589384650361049160135155091919098762017481769046062630701943496028156239135541291201411129287410858973110872470839138481159613632389395170940708644645761834078992958424969931653035691333029186520546961430453908499046437663372197690837379471413932968791631982524392608250240164628808864308929303216175387236245777919616959048537860926492807061168372936465823520317592964468270527808309424768844306924344854278382797003457926542052211779894771423875261631126816068122162312811600785100674568825564881075598185677235287728787503639291372324320758513676380712891414506013536506105525811412996470873889647815256093229926062617279167691356636713014272738010112312593892652250154279629613873751157490536532717358759608283322961099299818626644876594490025176452290572896262765265853516712104182543965614506858464257064694394796079367243029211651297607685770219837736415248506915080388498978538255660043677922978676123335509797888127134589170677872052017510006856807793597981285776245123700743654405260529494277013143357736165095487511427063282884464090077239505573760964079900204380191108241610412726703743563710125397044820873470994152516167604631666731511696143656436862835411855006414381647680943318135622104454372239779805130633591036513840700967086266634385112170859262664191456675465808270169225049467062008122714973066820318320308668299299763037975219236077522458420633753040935690347793028798612911020685188238861793634442242910991706610480911210217881243944516569176487605662416642978855996214603700114078068327758911276681046783439731903574657475449479444383820336422597032044524661748620838506367329730166298377909454732257949768591039523292157878139993195401829853225852873699159756132251960634744617420745319382314965074574182792434835685565479539853554796707000165372839433285330202719891620347630104681602288097005707944281787150526090945296869025586324559514625742318556471893291457776256637021466644298746417663795549967748036300210173550614965589601465506173222211910824398382518629447460379148662099530164556381540004678372692416230451143052713895725389860173590362855227625150762802271883591143434626501851718958513164200490602535556627108221136407605940418598782262516628354629024075018390526515054474081912843972957962693501273869996817909914290587164055568055122856815729800027596076644534814252122486219940252885550957342450167787811871472913621980725160666515542933617970357619314698294647136706015667340072092586034440696752368174003711866902786207970143962375098574933162573714448569932938447783750581732173793707786978792069854393621006541131677112132414034799788235966382515321060107272167010424636544028838490999106328336698340618061616679431590971574159100126292091199241366554094432890510241126599405912974207629652430104822667440563247746652371913290548358063572503281393735974632959731243209332356605926075858808639625047867105109049744173770031202828659220306282309808611614212457687995398018963469219066050388487326295618665051544187508880237886420969400615781548933682302101135307585154775050417356839465362536441775534658532445170984526152683996372790310134522027375817835932088819248689803697426976809638974257929367292827640798715313853349697909013424449006355282727480304738276446753067597753653331758189613765858923979308884001554513855274016207871250490759938109492430224797853635246780239141124730631643265655645254358212029289522304539434180495723670424722064299030799019686301620884355118552841696588330698227365281921674541940454508703360424229256514841489393016828345068959547465676641817326939546795109448131725557860277069227576693034784994088435682147916078901711307084320419732391504819956223641194777998607065200424233190564213390471664440774928236157034273686678904225122471688097264310725253460514440036503001979242465305343058334000927137816570867122824794263249624917017675382037243152262962893544533117398224052029232201519171522110557493781047165124020393746399240458857312202490590151838755805780840650610515756883795574487447374400304591372979346598399323820830300739932558597879121940465949580048554362279577849665239027936475497487793350662781107090631683186460597134469831114049411568457856192778216709746872548821744986556638294333872918826790890358431192984233895026320412890194695552813553863281153801907948297082392817982574287854250654754386367264329020678147815794684284741100579911312933186257621408136148487585834957589423356017176981412538234884207483796456294264414223185719046161886407075948618436751065883071336724488384897263378935750987919555107880225628256483165637138077339972270288312394026029004821579664668698243460130615203338199203258955682434000792933009007466278850513398626651531765915904132083982346462477085732209230299029258503189287874433166197916593341931514345743809839548339184401019024125921182159818973744903586813439217341446985547212747372582706665150663405668298260590528314811241614967801725249479513018485441823984990705608552236832533865588655304447384942040104258497045648567265048990937866618208764090407196382415767097170651146795083698484738096193679596851634767841234121183145075592596507004698605124521589864099380659333383696733433402057473109814611072707553807506260789524908228405113592032384983050815690845629552150504942521947042810860485883458222828192739849473141290467387292575299809764197919314118459123757118580436602573064493370099602302309529858062754935193262961166056234843517504247078419340295851701983646529168238721539700371324664973480502639085722676465266536967616000481033552718564914697411518339658484483860692625224039188897519992498343358650856666856061495480992285091420803865516853924923161212055423241572318612642263753933806648075182679222647900298126971314247488059005867532361563753666471406382795803258997643624402426923709438342125482693846488483512281382163030708214332244936977669107097875075161752215184817723934176243451365244592916990098159199035116535555694910555558089583040639667084184977587604832233545736669401626708255392135288495631388842895261898040174134879881011626263927788349454049801626570310935584115806923059550246219386134011048311599035462336946377571131535043755346654823742548795693054476692128427310113614762967723595489292046260853928794088369175267264050486554532136636472562503907006548796616329492420425418058875831274714881409289942378652585890579227435788914343102507082977725967659657743970231404564543827676811803680565401089021919128804900961584398187743489612786949542421719262414967196174124124715548545957931506936351681609820927774692098912072635320553076141377967915843892707366666066181377956372748385887460115863044612855754533866875053936675611003823959224421044442823570877736367976639197972301036931372489233470732076760996915740307007929892151574805295950583244791777383513098331868370241186792620155299981873392100286344279834821865751448918168023438329157773504100372938947168975761663615356917046329250586603686866679958557978807873418171919181757211488637716124948862498484173030261186296758848116701532159417148550085879119494988755770950825352008507353339498925021794384607080547591118813340286144238659441139599168965904302184741673844844815845029877256114500934729137467914734619123822530593473899765399682633431575022086238125019698191407743893204492904149900446366412665667641551740624144775464405077452761700680363720497265971766304348178658292145410983750867947020853554076014440428965974713473808655746601823168468328887041601954224779568223566122848804419958938568508973221984243484251690802540933357083542533832345014714745129433319867720565168155101888509558479374411246308007962393390595289031940922193355341369610466512919795720654614996614355578079946922079357541735788338031787335914747096211428640525071385794250719741928499554624399261452426705119251862254384219380432370496859659091272159676570041114510148840338673772962021710181073413164902729286275200579233501647516383110416656391284840883512473954772226471997805715345411917513129983643897842929096315447555552684550099992208686790360677905925674644225759272037509252129254839829358985265502890712008244382951429631847310085574163729236144493999766407400339094562458600200261671048740744302140490363871824379523069894410394007736249045213145542149093348960046207835090208192891005158298880565615915407291461321179665838024600076998671836588025212179844583850401845489006955170590603731319634095905684418770289379088595097646745736779834757907122718846297212120472660912913385015732193423485600880769602187683681413492791592932539356665147004670482542998679498139500442890924057239939572349869332242413070943725106906452740137757354250746051071381122971741338176083987618293109246498250834765467815960818821337574115658359656314996811271513312449314132673970770584967626878374380588098206474301091166698175793459316786842976951530575053917008193342377042192691632083931195255636510696648976090164620635566772966054714416646430668685410994162954985590433370637745489393633792201806339416178320001621088587631263698060972647211581723022746887180114825497194681496957195601991977240031100934682910771844272939288830054097363829607176511921776116253503282303561790710292045383968539526664378397949027069940210242680637581374636456883968718528874433418365942015005336163530546794745328812962070840909016475417604645823793838918118962187495838452355887498056297764885660399675117342397955765117873312555138873251157055160858803713627050401967062552628726822386742454919298144702248990190758446876860484492502053176905778453648578911767795699109945613915097934628139181726576740316301615286720669006439165836267227472500860348510411258032493203248590183582400076363943482310953591082820391918255070562476404840662791620027656597781681064574263991282709144336203656286203724586691797287802088109225135619426612886257532802218645451671884107867477979148799656085259811994103964824321999221515081600705449763602221128263464310510352744695014940134825754807251458373035667812732049316649984646349046533135581575216299764101620832414401210981852296067510073490134208882251102273912600671720661408036047240637542310678769450858682593034452055972977445792839780385363050632135858614641556835053367311268845035450596519149501565739751395053761082547060474267777396931247073167011127758544519215927053626850279187974456555625167555575402254941631681435114637949890298677591897855574769405533038477204252851111067165275815022783379897095651204501381747997218472719050702093162419928672019091742881915935328043165958483822109803030721733744222734348005109426951010604752744912944422868429815626229522345817233986286726183794999310804313386934726452848236218873106346487317775899073505822754080748716662968325818800267277518722478264778513238804084140903173194930182140810048068864351183308566225840950754315996120241189202335452917157005454573909122322333940435405044920950895719242465591258931911869485290827665342659626113657804445612264044250283495677356008737156627823643083866199224411669519331285077758165178434867904669714910270684784960118587328409376872822810576818863768912031931187066902816849749752456378150900568281067499298849841629836956592055347028938675596001324059866262972854820258401726680199917835092201336966419624042083220132378272500849823422996579742982366098673213960286885629132370233011538525135402782862034350006315488865817485768756824397955070809303679270217385273841658121268701621421009013664595241619372246349873775055611703643852693975457551084732597549190246790456482430342732867131846872302067009808563301914404656678015111175345614973804035592023743614404426111857379250564750231473704775159130522817978083294708569263643734412608346915998086461513609028470025984805154891256813522617058012001369722270043298622774093118659717914913679373102526649904979908304795905539913964700605224314311684652365239489799872195918924970944159422180659394510147369409066681204366542166272951520690490339347011212137219058643921071997390177863852257829260367334031964423357382993417355821376638182234938057471776487179173266752294749229194484812504209437153467154286727265793219687931524918205957768120376103118164790025569393539118574856885108908239361202888316931641426246199572374380718006382781432430304809538262331920693986613732613099085146352346351240885436520694366916210225647424320393397386027835364245074786756330864718735090136860458814835107187478510487458775523027415757354620990048831231356011718895820646814298112747327113579972332788075820180615957820773722090063829211323236498848248547337769708266901731781904379392469652732966307921881336907479837196570533400819473401712745234676843503936482553251050146346255782462821385460271538026234041763647143109376901043638484323369776894668869669572844214933555976827987278392890648035851486067359558853566154937943966408258340959625492011010692923935907625891632092383670939493002784380807991340975988252895959805473340317772031001328164201963288846597647995683942154160305822105105133904152614009567063965271427121611792741939096209041150618521561896951914626947784553566951398380528847986083563244679457430841214126468432433698414881445451920467343477646259848870005878007150983439304047949130739312435987467155307943472488392907482674166988779134268600847265360333440629088373531292381859584554479507956715123779311203321128311004267845140215382949783371166372952849260050125867572200366802673587169980626400749302804415594949460752229317802794429637333828073364885286108619491384896065598807717733047538135429338872874811586452053139063735913125323716855527515991063789022616575233997688725384535232285239641147479734636714782943178051730602579759777718370122064491165111000343933586367434741965922820449629817059097487608657507666533512701493791976776349887885289754856664453807616599392364287864328054194067455041938642794602852232518439743032207247306774517885405940585669599379837746699201633989783959456316894199240849850217504026355336208110802118511283899828741514658868128976924206027285350652948216073727568624166231864975514664052794047743034931093862554323058981383859343427847821491315319513073823207035914198532374368733962967268703868326798746157082098100313925771830677114259665480352096898811983826993248044263914930349165049257104296731467629309426048310103864235479587572073632077408390648745754211519545147799083998058219033392639027775664223154120654177952591538389625603611369462770139605281316527376519893319237254340695533592361618311042588259201295521857238140359170194004549419393455775177103312252986012387424573738490139599131555843130684421636653171216315528505897683923114169735456500222065381728989922678789033741636809180366264075390800789553739580571424339258778523099947762086901332193554306000732178876277036146594141941110627043611932713640159358109823569985891905621371911719846794657265892397426227307809867655492482905810745652601993394839777215965713440125807866147548436563693989410078167333047426601799920275035979905395040097795190491793091841222524146135963114467957435649220545690811871728046269769381950227447158042162048056348301978399290008491210889129383408593832353930425502082825077455559007999301769188803334314144472705703159045928495598579363489970722418529855807891739066599005342229866929839262080366314200778279535410958291627114134866451764232827638292588397016168319928273082274618610572717434993318066049201819263146322140238945153735068837658211525946689629541234207422718583625834666191212782568872035452204271503808320992586461015930983142412995663164835844748607561999486188820637270252646359327001166627933767356594800488921897626492580495021130835658695653993628742993746367122815376361318023277091321532527918067815441144265908072337145125694145010320194544891228298396932270554827003923017640199327659622247962983001795245757777720780963876642019442464894300930997371006583205396066406911045138210583355312881977495065306535950916490210478960599858580117783095894773246740885954685897157248194891380398269715078786197262733840324610986166777042089081121007863617330062424475985657106088112722366949936554712891119557113817189197851561960010038809164476736248627691716327448114222367248602683844229499236021628204796933953477299246462919287054801796020326031184678835830067504083257207246175596877533180364540906911430657912327834765339456982080589475048288083331337174183912237136232380024133407830407783181275901884833170753309158324800469339816945080021164313127602919514432047166463221044520774080454858285745610010669777425674265463948355447783704820197226348029568714837473801900361626975212063887513474200511250416625840332976534102404121495437182677676719500656688448736549242935239291745556367879227787128710653892158465892192464278901821932806357271261693868176171780347739979626264072875255736794927588554763865678912895001635830183645215048347614380024394024882677662035939217339413197334843611200555993467069621140667629225197487005295146216103426153730005600848958874003790483362677337030022550343182099338753577460288428144745408251867000686209803652341556567532109809696075278885528994463000658340542955853070890054687781157451726496617497160955638782890007540284591926872244094627491602821051939201941719769760862376098579537946407672406698775032605157819217591665898522612399520279093502638694902388313824261780712685938414652959499689035042653408087642886285252929380019034734790383034909131188261683842703998607847499172988424796652574010798796424008964005501049629351714338732415270097388004895181732691605521310423551748895423499821801577598362677014426185331470414117979269610107025560208175217105660619219504677988163802772221829730560646478603464090347748585722465887339692706945252042432001443774377360376485456000996857675653191343277688716272987814957897243495914131811193223012396109871243655782710771486584765714000573667734694143926739733690616278986102738796781688589867782707293087005015672542286444940757734798530458571235362126165808850822641198426326128227218107236795271969691892682171496007843794520877614928197325291981074995560795840836314054296555032870032980360988740135255568018256604650305842626918877248928934138565220263428843877464249451059521309891943248063988088000183755297378171630512624925523189025519909726665997525793401210691205280859060224694192019091746442694356070656414991953332018485476906728150307180997099275080401611292935461086493336428106595198537092009755471674466074239404674988847037357269884954501313085868114142819936627101712978847470596889489399059047127786392475676108632342655280308868963757921426828641136201916034580129754549948005864267350375398716384286512508276345291082148999451978831010736613375191256191993438720881328224874318496576396296336246996032493727451448751269273994095320393271531822452257947670362246485619874337887268809029797904655666474607227488853744275718483650698191389631411604625316436876189442388435752873206182926972346592510136870792785307909889986358288699084468909693769933660526602046666651198275390527691936661819066748118115049395259529406480516192605141935441394408822602681616355373928495870223823410634736513866561449880569800598608703242505338041672937593404717673502602059549402760232960977135497550717058171753442157498147876650204164757295653894656844877137229240733166014539045184269021120297692785757173780747246146914690087496373601747976685300776654788413907512608256693002169194842056702375771367633372634187253512005638532447006743054991761089352982728210401402512502192069191755712143122896426608950727760107260852135976753156000875019672370307872412841647188996976406039516587653813143355812595273409898735180708877691563798541375075859949276885128869979750190653592344795582571350552450380593714687570816197545390030017730098180659081972848663994037532618825507177651674320368552551834303089865935314858507095171215865914937429052808772891118262354063459273424142763062325934046566239885807171691364763564550100931766075015368129606196423214603494220876676913223495914509236473597719644471114629728727333793993324240531999455465295106120331319711212312225719953841884417839154022400398973189745812565535300967950568854611465046474759297771927401771573998970290354431703439231822784688884030223514781685552966561644665983310434444758855125015264733232551462603631943311990261162579352905534544431051366437418203340280847049215235560226300421364459795277488706697927488250334581357004967016897620125785791136058864675047731780245664739117133161119667551701286081307827652542067589840165832524314154624013775077615782382097872059372856318462473741523928628157424079059865032136234336703760321766720460774583461047188372559580219086483300250157193324577248825319573007305052295752964347299892576586948135059820356713698174777931881959708258473226840410401759169548006190353549519062185688284215624616317369825122923767136495576218346274469068832150608040634402145080938201669691865315011932432221891224199617803710795074191778471308354734947184974710550325005528020749271030291892088706350171126310565229837964250807028294117454461569714380070003035878674775117572348479506202226552811256657075401205752540155915350603824770633636427503949766575065411259640079786887228836668431119558411403921779920710854514541255535126632921963559239019585219215775720183510993327849939948809855929492734653551709646762825318550970197696714850360598907254089112743835578485524557891760006201453388629148479631846329147679862511255124402538271372011228979125026595593940749642983844443896604721502012118847538391696398680371774166318117603097976702782087262630951901856025520319491629355758442885845236136659032809743889069859807352419258439342025102139782112570169730138686031166203393302057097584153766493435841712223843854907940821798493370947678893952767989803943721544509036047720450187069313347215452609441401633641546617413922146412361803585985140093097888513270369594916285261042309162706941061742021133139878225478195791884300477742156076544883474413788579697747354190527594468582936924573295863255269430138405824866819185513861077853703425662292023886009807225921077057935677795734299852117813775414342843810255620973178844524808000953868225522767586917230753983241238397082957392751573494654559371227770787549619049945774691372515179428441218844495782066144425041287537612102088043624906205476345267631112558635780247783232707660196040114376995121279813933194563353209310191832790542280533863833006552266285354544238688449438850710332930020500180017029294244643754999059133219430115450570944410512977425727612817286279520344053136178218932045291563812223079617749120214465663019052223186464477381474323142654134490478464464975389972482604837971702431577623979154495407409969250849485778688319496954421664132668868800478971004952173737447454936874742984391021962731937393587760546909761634334466199864197776427465001197167398910253276035028362227783179528487627697244355420279233729276674294382298166833488153642295546611616694126539912066022224355559687857217639152696574949379167013163181120617179305969337213506351507510394257857687149547386128607768291835556919358312127642243956329343394073595439374627902144183808763954570972639252030339371100786010021857955897646332312201311521243171514736972025595370875145228024893059601238258134464279818820701720500689169144146707200507219029595813552936661356759622445356833347067433414129817714117552535943001600046941681619080775523851527967532068170666659128529068766957285624756691990999218864933979928167571593656490445721112855914782481346437263953642259209809997268093281189647599544731290914568801701651466891754932061122366617241123985942424428484595392284257118579239778603075462252785648159045017945907154179872611023018471279887321193552513775114257303746290521290109076888633496338230552312740310518067521265965123559837582712003805129211903334006168589358549370480188222770748383936473357035131191377239591320980574353791505769128745293671258526954407658471055488779128535879949120332905517039926943233554011215872207725289202659921317280126511747202998213247046385426534980955746777128244914490564477858708148278557475989982977968131935501398287629551964539663010306679535985965238381389356625912944555377607829287598767818995715554622659465261032824616431299750827043913127363810227862188760786703982335726681308547860613163993531964807688520193520537738638772968206673992757573580247619354090278287263557913372404509910801863053507757429682705793121515425179693578589642997719724382480402102943393809140332875931802156020510217273588255519366114953652473723505387869513199720790055521594351315791771038436242513979790650453890857515175797871119986298008775796797343369512078574395096322437320794752588245485225208982691347239201140698960151510980790462000039283212030236263061014635761782908595915015749992908446426038092547631634652310696891539578365965149063152005318075438826801310067504365577373440963838867802337424566638756549937676222567647673750869457235991731201612422249483206960796115499713746928081088498604325266493585047771576615565822303044576867579355550488786332232658500477645773478891729554897249167846485648045082873055213850355147737749471786112725778836686874979609407685286233466280896657203487528910655733486129806738230736063577385605295764269138280519472732941931861135614405971433656994719385726944004468293814516570743915539758003592092071731641954321387778765811096135442935708476454454979818481402593690356329549444201983752392140814652909578700170080234250694530451108929679784270407690706961281765276819219521367161570198692813292699325805650326907872468091478630915080487833972468757582646022312135517670440187569058297336944568218867521135306197882321840345776558620899633107833066872399370274004473238345458968606083429257112166495111540169552304379880611374331080275767364251967576607571701116012568724449436265212982890516713589713628928479529803314799341438095816649617805523624886885177019199446390015858894473910886276120703615682769899320017552391894991001663253116952431021947753655391654976839631928585828261476738397801405587420141073478695305088233336363196298273142080803654795052840854991098842627254902745587500955115310954386450929011059638229821257276708968368819526507283191632190841708473367272430000223411808283697933378187509807498175859629446073123291730821441574388469229582396451414018887494506530962872494153747199386227840483369006159018164090388354054652722108491096181057417932050622602096342983126858814048700221047779748462497619369917483938864587794118743607725620656543103581133183607273432996248050719886211401937444264164122310872935556927164913612315888210030951236769158288031164516407300310443459520391118946641096270818411691248104703916758002423594528173677059688412706608897104817511329709321372213665850177255360159121258466918915020156687392695120997149080718011589375145308731885924684753462331532799608443978234837126315530981089738926792777811496083854209859607168683050888515894656902446205654921345692623923035707903993391899070660861187713521408163471721149881824055103008992996835448363766422051933416083380869614434880613359187658769408257037280395666097202957921054772419201864260697604294567066077419087812963799171558058393129981522120111151096462471595440597591714742377690539954031404769564828414550303872958184836799461633969110033132242776694330801460724821735671317303303181281623448830244569467945927901784797985359997032673179452808756406143370075199117390034098997451543710530683547984597700476591422740316814559474561993375364187502689411534124374495573967713077562485632006836102493088286815767435795524311220232789988829354189765766994030132790699281819536115856756533782289715919264496088192003689971503384369653377553878661260492308754082894612447205198269995539182208323377614510217622745681631411689227210947975811989214560742238860146226710361945347209518395040242649255981844568434512934096446381045778704835804112879567133410703367106612372226279194834902686085924880244103950582479601395329697369729585440211403392410368050131228995044978217639997780644504938564786667236663785351594294011822436598954740768292206458384596679492827088396271499092739582542502052848001987583732766371382080281548376546484642655720493183885613860732676812556214803646989103768208197884945278189277706688893408998318267566427023349205411313782856218408488643277846785417383016489647998418238395904398715920463152982283303026639004131516075366394919502177012831303576842523764121222790990610097707038899854161370774033559083503292002098335859580156026540198379375507037759653422101951058289094288741625436349066173368550980704889370116897158705756721521940574714800239127287203123220905183291583786428087283451838438724094439382746371785116473433696875091390652431228008688923784807380956285357693054384753292849906266630087336320822217071800022328013161898759010428738829336714531240049165040638205544743657837819679683921195542647786245182166149123418949977380225416980485609821142481554703794778841869394195920560151199597136727778823165231306096021432279501286728586490463764940529565864323505411923509395039069034971074446564191414494375266965315360098261260474274345161358400967648926276310287329679620485824704972100457104791213394640039209952733525759644410052634038543496730480311520341354119892801083039771779855778743410843308787055547673078578479308688218521136071184277500154651995255042909715582257401792485066609379771401647469142359753222882927288751307323995627938244585045540760542554751026082323199364634202506548702424103110179572523797694286249870493253060002220941716558698067114538318690901624513639913203286501545466785569787519813019893555945308615053848052944680593748388993865583118540715209590022601154359363106102969191766163320354676925890812682895003485149066853198752702928370419186058313904317686547372675547967193556009305655287094034968438089109520428314441864279921748445943065019489014694189976614922498782225351571970538350249497006024585847484395777229590284426091474342462394007901147291452778742522719552070165465119564800311141566851367760592706397142005492658865703520183178838270228724669429603085032239820780106063584660014191948610949975900876155002319607372963163080388667240513522519084895046429917307862859376519949332138010995794699506688397695584853287119384800623896583663278444821741497298357894421128419361197766887016360662827020104951375755169081444960202429468370692285928334604258574699107088404264721072253152686989571854043885013965264250014008826699466372980434825153320758944531993651032968900065218624660960807107232205661714318030358260953817888078467420481993106276299745820986561393604415812296516289769620590386070912020631973664811042432118485003251292924851104092709688522044724945379715166577681390989036121300884838929673294192580064404354854247679406136320755609354245163696788980136779684342792609209910346164430015408215446218887503590090971114101384040242234506572410411911231054132434788885440205407622642721274462112827117888912016282937938729693901275460373338443117607293116107616632649988584793975106046751895011339892014862059030556126274215568122376781528536572365905426637806999681410678062862553942092997076608689426074809172227507388542452256455319943005843945539746212762928415182140604845337995625867764612422352752717156608197989333857451446457339923062098181772515105144328411934318686437016989398982765648564863679904071666974628364568805852440109731551582437742400937031737168326387087415552006193176595254742917982333115385091030352283151511552197845704815446514809630700597237269659850408498690790804533553531216059298601992838174539513860844005925621635060829113572590552081863251814085877767707936654433679437348995694279183198225515507750447453039363545597372177066435957458226264896477793402894079318001532483461571258117724781281482726792765197995533104169888612116233032990626739540714322674064521261796147111968187170644407993272892184079168790321914717032747202096492453421542048094790257584129682709431588533698894736868891058176919033374400170316394983729727261112135592705929177004495741775959418002033304443933182306115014041968489881971656141336092030770755970832896851717693075699182110257419133980490376831808205266012564717805098790971982138514443991663250803737003828048853194844788690517535350894512558998400927593984783619850267286578280813668473764258883665440416500003853330898421941942692134970082710512180592209589202577902683706485033596397843984341966593378386706141087684146970317706109397438110993079511267882547056352828497051447590565894014172093137891202056249136153797331109481290955555110405010629802315178119350026399522962922085785771150064571580923391570362206059068142205718714264759712272986535632082884840470085378674548434277565850734680865643553543618540117336529623332735905557490588040510365268677754143441673015104559619094149238311916287052959463339985980974709027808848630433439226028797130462949912016763096609350141292135859047520299091273283800937697941290100877652641244658682483419428444551224745241531273964350814590339807791060086626276625916439656926917599835280154144341915844262873476497730312127393088289259709032290494247097999663027403795766914296649131715762076334987004217595149448216967913989174046927667384849723328950826527783668718780769892337092450897805522961054979851060295018737144845828713362691834036065177474758100289992502576158369596976053541266323021665975910029620648023131546877109774443752015055072975736974508985849330129839336066873030046471772902464499917425661583157274721953654716298906225709801498962121644014695192947199486119507423576231360111414834679208268512047217912119283370492832000739904092493528239089677542843262840778298085179056452108282584143339702367257837546700750145221005248652739475403610673221242852422645124236532815241311210470457511316759191820773387491745759450121575464828361975094145986437409429873667474975746577919580108848229015912647301682651229963395824120027614016679420132691988460294193704105721119665538148783486464802230930621447769807795644570557715157813507508383644501079768139356301590691881728783968550986606311758385429662492424143571455118233514371709003680252876130597995737977386355868245839579002395009752140637464260073457131305526610219677026793222495213293918672369875005172637689470707808412647904852088545977126062880076271292102839857953611706377901744495685756882560353301941421744896745619023103661492923955356686279284498867792183052203992625554059164105275588080270587912938812537939957445040752813271849143644554766436689019581423912203142985404035059075009151044139443673114061309772704516591606915528482215479845051679839091673396884467379991934669679225654202082088882794664049963284671435225095057802929641573686416697275176408971596217468172062486937243399842291956786781197760204487442241537062808448328123736006676088713465596985430354469316808166180553704210860345026559680226322898217080704509326859204695268443167667879778534570737200529269541071611296842824814683848147105008061529849267317368178415788910045694379174736480555294213208412710521966770355636852958014265508619711382742355940345685589410964910059893041785562605224309986686385858063260462242873564293044738061635115985105987804851906573553010273666153532920570861724452220522751058907046452006028165021816951764883007629428828021486925487138239783697270341977108224624042920269182930631801431197888799884606939946696202493588734714954942110504454905665517303344041486633081214751077712261381681371329520111576282104516456222748962990653679149091122949808758366674970428574505907216497943846856868311046194137903158391389301239031255201072596115762721319525970271160085449796425158798804591360617807796696144911376785976386402613890227453233210619231984946463320894675524628670118421092546149856692604134196980209473840293839973410054947424620554100539838439493187236557302898247452515367576024943415822793107910387164971198641292050562153986768361646139382145208489662781737269621980536268936073104055744067854297700758745742636579302091956942212930744684189221792938815820889734280423697061635290496624707705674972108816622595199469957809447022876397796297775607840325505291070615413868508564331120854028343465552267701122100801281085851515325448991840573193975047178185319628810073261434551694270455047869038481134454688118624623455192934504707096622202338120286757758974529766916116873265154026399617796580261999713147111952273944100794573490496840753963619579550421779003477798285718842242013485839183458131736940855008455306871082826590754107295138990974242404699811824665407422537187161742061580539824429188580276389155926219757965818702586791155640954051491239369389974658359266120108134845553529139095589567447024038528045975445028682007344360809376375521059999512360502676289409999124832641968593309044924546229468145958724917096937048621141578221215941871162688688355625792172188286591097901874117113576909875019724723838181950886648344597780287053813364780670389477495809897118863198466548107641172570362604550591054529175468697523835448798707239211336095733189521454089382711245996352526426370479399340919509493097880760523793188533415056585362281592994292770847757559060050435996186463296309399498190434281042926946522321013990558776724681350684872727640009872193218916738616325608234934773538013938352464729745094119339346211611895158646650792548232895285907277938915142878017902244374972668028181591768172108738350710468629004583303221446422523105156483791547212352346408249358838547504939267048962452843841938890878535245843328842073446509464361625411696318297059339650328020580402008320568478612750395185337054886781192393178822184517510246312259274642538609349919431331992895007659269443000048573688175324990053427605473930765056354816384002131375349378014789748899196202320244082734223119653425400892453722320942522412575837046419198228806054432550861923100198020919771045894319983156906812784067307821269478203152132830092749973876838467047617939314031947971875303638602262487791751179196486328261952703571731588921704919096460265083794180969690343808083940013092456683333596070756762028332451468241654369114125937084269115412666732313664906522261376287021342086323088207106000981556619233092620073412936653035560464208636673470804815339986366334368811424787771081404842417447044809455636166010737654907830623350891223614992074666565968481883894132832722158202799322607903767552699918069829287208007352482731173169088363433762898869030625586200099452349390901238879355126401216307679517638004382205974923967722041241002854650109509603333859324258074925727302286626294829257758481077555135047343330211866247281199200854733266010175818860845861370174802457827005229593010039585923995808949833371294471184722603419388552173170007656660947580212558487001750238004500110271298837530027787704185897507381805457217380122079805651453029904750562180838797049143786398404409399928189476935604987583170951158614027850722625450914769894550862161527218814652252068971795458321231240760320097170087669612613555514319593425144380910382230451377498041954724088973021096388853581891462994504455565052888145614179478473490511960471604106941314158838951848865934660871882756229101213362072433774757992628942956312147179938270491959654675586098922052498788684741225638687097929499795452518579955668530926559838358244152145774124294007198454692693167326899883310022716703219073957979102677159811227027211651665963422888348413207640792280939692627925080544816664762360840717254186780132058996733345026574133875103112470384819556302312492746110865742467399528968071188082127776309823292126968867290324137065034729453032086232696172215776962496871937636970835172462538349305301746398894629952406117098325204944219223634552235854869957457591087546327820782184156901933682832727970739338940727548271607805865646738872785778786391542404183008631808268845552230937259053288014978429058875227478333826162633370683069822874116185417581062929646719515619216947116085754694971267493331402115431588846095071172589632592385672593032283205399645991985580368604866685453553117190588117879907184031435181931798530543778312351858879593427497749086959466958042868788478044380524147396759908182437183298042990580447226573759632922968692403327807043143896460380260865816497327574274655755844146541226936838268781774848428336316083177655358270752048283657487638894558153116201338733784492673853999601582970653569858659541269020006931646055495905390873777791119626376835072783670810988804204434000224091698232868931192900242926850957806232663352503010599499329220570279261465922872531534380231788065366655836956933600442044762913690673406452325953961743658867254484470616063133698150330492244796811689675200844139374978511637048462194815545756988148525215711747881187676244256510610138229832430114999225721216203524597541015816437385703649392776074148007050491959819648604484267975749266597342521292479908537592451573845643883567294249366440438411124804599608146563748819532415988160645414776949011243352173002820534088895744572710268626276707660422780473274846489037704978829495540196842477489715655159876039290909870676397820027897932170487318567235997547465073246831630436682063825547298688542039414079211912872069502578928970869060611462657783454748044056544804012577476407204324930627036514131192022273026431092502562857480426016717485488800633291164204792335125690946926295732697542693569864721911964393370907837851498442742752909656409485379558665427359883751303675611221656437283805229775437560289244741220201968282920423464745842434321316496621212938569734103852667161492533293018261660664569611585067304382191381556310271691404580449949019972839097614978662940148898930556934782976080415765203635994569125658074815833775591497386565685536474633496852671181093244212401598471909041149834445749751493865925303581577118989244945626806543585770270621179721637108079576837725791924504562080821063874876369739190275953577248780852258667988628276017595372736604888655290055051017923151009680525440715768432927314261468356868012160893032482287287551114601666072147377439126897433665575722327678110057616977368669797330882517114046448821485606647016420278225097962388308494946671495633907102530670974907774975472821134602808446774216466979866243556962484170274358492402628761808083835021926983341223955468866179917824385572242255348840872182397145904221357081977263610871396106564001082756278508222179222383429637569543244961610133373607672664365645425787223632197144779365881492826423421231326884237926692337782309298586250888791401643079889043277430244388350893491761741757939537179484999738955955855847222214999044768634033297078338040670037949889364230417707016374002935291365208784455131409095204387991741192188827811124132923516641462378254723879658972558475282823899736969302391397582561294778559068289873561077432230069194602040170591671287467657987609367211166256312842768026314270724224861274258992816011965941993663441875426715528873684942404811135282227135396191354981042505350356506078964014012812932460962804413463177218268180170353417344613057505550937475092041289993440115713940057797852732308778056726912522214481816568758964196347390885512434584497535709186946209007663544656334870985445777260425987657233239683670624214070428651643249305586615813466509386607758041161395442663183029144654152778472691487393594534060146603044942090582840674312641943015073629833512461300444038561753005758732332172417897453286546583294554462753319465753545689258849839621412639230046451772210074396137312013742069319378382300976034536947621585224254971732971618703780741102968096173779658969084164940142140511914183936183634673606499572111068500422507549692410034397962887656163588899165351773065720295921447041869500992984942277459008913031378962208184290937876088944950634093728922896508641061105105936022350583880196476101046469222831408149549357668437951741734942940028660048294200698233965400825338138455491703391405871042405102713865765758136842643329827624851384343866450263320133632565722364846426372796984168675406627932559526735501140041949074325637756656561184036962411177193498964099852925280931861615045288319623470645665229254943897214045763751051535419525648970542627567315046535326438540556358160448653019685581240833948852468240475615760994922602836895064333745579281067459030756485254877234097549484732615381877099631617755896223692054759382828503893910350028162346207494672197840298882517241949710610025592672660020591724999995193251199925395627416696436295677023630047273891762426565171081895505777144059193767083642274500782751828300364388076823019870568399799702595085875288785869082155429136152774425735162471670673492586884387655262020954099492063337539112586399013989340686122418352023874632506988581806984678094761305836486638697226214431262684706833334900741342376326377296461300644686938314627979557514187725273767557863356441518629746523727262759989633078295473121500320831233995579609572300670572327547789720452201655799189468010926099106819489490731477109075260125640973704847360288713556253255258734488986533217421722655296278983699162271462453632860279050855644764521272087085518359099075638275001369107208649594603050724109424881896447916133028332970582329455538108405402060090721433729115920502945655282722985860019669799499192207996260332240016715957734989883920038999055265119153408256032170748593291144032553183729429047786677366168535898931146591162230184620518585966148833858110936946079685539567227972400076194203770406613314806728610497007406318356568700982199385455665781109912993408619626209085807481497919334893978958127423587944495100658674268507703804602776581410081826497400716900298359891337832033237112934495424925646055548537994160303631784336419355582874380181756194873170384522129471207638042887547371714636646967423612245792359146150600461257251821453759350602103435162709681408783656735308473599307112598012697458327512472138367777225811809334359588059386283772810589737765443993288165586041966971188754590298751880511376204577744602143874093958857822368383755276885199538928965099492880727310016694133412103975842839289435468148549726839913819337271181472644570933795245034661991919881655267903577900175532216001701983602452480264495064913796844896001915941930628070974982433988204410124793904187119891770924428380425438729444432733892463647265786322355578622296352081567192126482820292075125737754752145675828386221276203007776742576964090241451307949252699749429301489589707621048920600018028212154678012567285909555358410364694967805354351551630514960823201078429541504176737082385128309050203403471866860138432054845873871347038835622435686303749449293822818612686215168372354086024815604428853833549106244502183685025198053188621664644567570478926060450143256581588884301042145455797494946690903996368090656033359141893240618960094042346099010520227147203636819832837768120493307160870301140654768603688501910856478316879395788318198679966185401808239030442072809652005669032330350351404854817107560537192157315479150686574588339159796445994423967935751898861294196424987872880400240442942329358846973048450273332142886557034379524851772420542412421166553101123601221789677573495679855970483905160622614351558112265649380089673954246455551130652949494981329219479208214509790297954344484752271606639114692971041045857382825040657843635855781632111527642342837729250518634536368629560478603893217161991190165979446443469139665518391704347075878932257857863094410990150122764103657946132027745974074361146772592023139865227310739003259364584147940557034882190833278488268028737715830816942887167890786363822772397976422393733986376027025666738502227237979290621492726080059313469801322077789519290530733482178054307945887317926728756044408801426699874229088548241209817088933836767705147173989780244588262716363732554084925195612247811309487672192547168469872892933248313039418894848763000019294428348336633169068093593409203680843653001271430046449363930114994996496274898526233412778022267630906881409209135606921183947995898541050608567313122082536491326829446214808808315256349390221302372555766966623411595824267900465484834469078143952617725270597240352413125620970963637318247430370815727340530276290664667014393451723225175161322506925520745306161713008727574236616707710820455040407530673050244552247480217718790335635645567077035485491687989315184874617468783837053575712432105125002897363187653758317946642367958770096446375842683420901461057574933987050871166404960636775701954740078487966477537973791225576714371615379638135679631994247505053023927697596949102164804627214461497728659248483916906506358108370529707700336764511437662040437370286645907397146707640861043017119892080023825187261864011433130793136446760258170979691495782450934353678154691726836616075133668700602672443288241720179482350313990759961174184121701680957608978936322374856569414550024831314490559594251510464921174222797264366991990856271757033633511824208289382727095933706739567028002389335974448753891610783029056730660948503993382457009118411046578847223350259150122554583447878639758900257094895450916553058315216723820979918930539980492236550741769728016329526587739802520336832400907965249173250372493867744238671138002622009272103666752727125292698288653302361744623215404495431172494740970190062753940175812807333103996502158434441714767284720798979107290477017617346573738424060810127363491138458700265308762857908443459751652907270044042816982231669778103532981751481580985773585089224384372576269404586424416612338437933828250890197578404828980683092291794620384244566749739952554596710915417119773234619921875085027996549690543342676445387842830449363120551398819579388287716391855176254924758775596343756154593366268216746738166203682661998897221101105679881678653400952769285240539876212038715468705175016676582229557799367792859868827289277079689941754940486245497542278971891021596199278321610065084130873618867434013393811580913055562382223059610051155679476616491133933130645884937616677786398419236771786628911546510232683942539011754240474455590242507098525750888566095831824442721268468758698216304263997012745963153054167856713873329433217199071183756289339839840856732330691769104434933381487173733877707289625129437553765251562533221454518693187424710205728674422794040909584523352960479931318776593149587619741449733976794869912928720537470680764210632243260174761380446034795795591288734499437093690097094751831021505735278273636708712135338835506519509842327596149880681555208832755927996841554878516588960574092235981187649811625338660360034939636447113889281644484173926547489099389592311416470645437862841910782690104066964939650762068935588894050425738892364273496444515997835983532144271954264269618874676209016663238347668034180337788154697571979450735048753832213221046657390834970066312393184542514599520002221369231279762865845137361779708171726677444785171687192532663187200515775102370518805270945967269431661443651515190651820615182982672090541369740224315714212751257621735128149095878794087310428643288189477316752674636916493999320232130981309067437542415736531650658916087661478688131230277173266019017172960875003460997394502665319990325019530639503189208649002543991551370589963059821485734367382823335962632561709940066192439145815799397967460979209467927263599118135456683348271989962879292712432183692556492563257128592972982884836085357477731005451328477662813290073052749726337532834323125085381311375542080635865541592285947816402899524852132541584480531463488706807412429714121797574958860448702984083813068235030875743700746133693357762275222956263673815181960040331734867001010666778583741307982668942137389259967619862131439140695994220896259126484837446673395626496790638083143279691385644086796371690851326372116127856260732260022438421391062568547902328476296903439043341261042404376794672981200461456421611565959910488104606303936202198795608628529802663276615703225658354723613008510453189384690748414040726411560717548792688358744544851874726396136394579054237493297402813530915030715783768823862750489011329426209805211403637118695701032763039136455085188078505928448400290672526438697865797536614110579923098479474129097938393329168039057222583420459357489616044906488816655141173428767981032852645067750048247698884072306147224285626693731545719516282504716832110206357444863333424900166476249525432344605974135917245905767667929594472023767431728972202663405167125277616224153142042926453502095934220743478970099079039937839571200010072469351378096167850568585521170622838392651102914766455191313939731160708200976464764444199463371813056325552861667746033142587776055636944061029443019781877990678641358678584699096620300085840720679773306169827081038445586923337303035936991101177323241227478151083861119290531016919806486232512835685147774279035704403508160683521886300137238532262009777863830771159853740119338577135992285074623474894225932846577442200125020564202551320929442792197873994551166771967514662410869695614407362356800538680511765765308816143965879819090138703168181381656451184079509638059927985520545634049318460789858481040251819602341802958617872496045607775580036945250608897492318534357406178950878808052961978966001372029360546099750241991204971266542650362136234764369819459219486000546686898384336485889946954710605467440723762502588905622889716515868226871503950891971480392971964069002898619515058353278346839681983846201335079337590182056646451685546024782281130380842230131119980895612547700189892322786375406581884903592837042011223762178400555634277171344460124779167943164423772565347618780060412208732458201128124940192605658134719039289138580038687323197065481398233545278998957951028511142753230240083741655239998559582495813546999117479856164589727197708253880607807894019389925368944871984772479344507373332556435819741424552099914725615038822343331690745478559554587982183232418396410611452641387670583391744863777147067225237048046398079140578747638108256732177106700148977528817912660316241795568979718375621590365474242010114598161595992632792908513755955585820135180453897890847661160836349650781071815623513882519150412337177904008174985652274366537965223905464092672486057399697520248978909110213212937097254055294620134363386427697446983225424274088374816257796349903325519869625677734629922490662834402790570851802006275809825433430791239973141662154317711786212551561281698609429983329545410511418191236523479364723802225078859612408550195817975429264918239962250353685366619394248362860736645360162331401637877784890309955341100626362599783450198005285648840847161933034543512840942976583395070357119385103837975388584065846013614905109410631672504074148933891724643570886100305691784805773141993177550452849090089727274050054955189033835959122573213484791256535100016307586464109794418317037462375533146276593882716518156680631672021290027665590262295677108748711651376247186128546741518690674059739769134081433587997865279199169425724851958744695739102496085306373234770869032265418261539677150195263658004080160250165518639563750962673247654306473770839526675761845662900383858731370660337761670442120466760631119410525879008204758810537496216194578043648525177423365821271029583459083898500399707211358354108733787443816722095509018381397916659577514550215448800165503983656774002238124113783225326863592031798287932750434129808204690893919515186229178263022501519482653684811082158504540677413895906009840677339557165743871243791678649140670658159921871677258258928576073287797518688310979390288494519069043830521463333964229095421427577701762651403486832202309752347336003379083402191877373871128992888347669468065564472209441092685670999747758506116589758586956586653811439077700187078676884232606550239648647097579941193151600474733621408238530148756983883815583545901566618229600432565572847172156411648045062767023776178024614037785908763373228175495116195689143916892477015160356557714261423706831639038439090774852319021587102366269399719100817847278981177746043882976557597637769685151606287126496321952652177258146081801373673999870328325227921203475313384027576772869703185576290254001149279262532661120305640609897260546717956888234594556167984218056737788587930599659096966218903856762638989207556185839533005011758316137600739914057387497999307989676883489919732336575736803342213979333060368666231695426489996721978929972958751310156007069134971162665794438137308152511555770391812532422526099367395264594454839626758451326328874345106819694208260202211802996688712176699922037663426551811042787724627327566418056631811295811844493664898188495958572014852125128280477672211307330282640019656640519577207948623270578865236751939026042341006439713090728079957145154083723962941166779434659592920092407511399849186137328071874696207305491651002644702058225264429804678600980584745226032092805481201702817019599257305999541304435596146922435690727130258097144104129703677534353171976138785173955110436715471579399891095859650384265725798134550945896310340784133920598075692758118611740785387422181758532636593745530351815319784177516559665035147488210943070286158092405259946526222301889775550712497760858368233191073177053183099182526077208033948830010001070150492287414681477216099997404916370867473659340673165342619030427195923195327929756611738547208898274373888539243753165257178784985135637820822563343836068710618991624163781735448443675476397407823368209335412156445964072466132142767114197706038376699667190605903331780618999725482649109227413038636978852542564899455668715458102898449209188472499382188643111884890402928271698358913069997245724991516760699073691474116959636089632040071635324635894357085458323049473623264167267407428258288372622563285970325723511754292099015102863513553808077885994758146126997018546247546565090218382892985792227228981362377355333835026375085890030382899942792301599748634727086053205371596673287331642661997112233128413762967605837227634808379562796809785598648086636333330401500661985032237235441447369702265244374387008899424843909347485973420332207559235694179883812193806769791384593083826559183497915723910447112920844335334820435692443762648069126765590628146737569046749270715156958006115703329091458404676305492460719932097099613748006688595393709703923140622720347675968032918340457605778797174955975328634499185718502333384275302499946892999599279525821618039567805163068953364857243879111445699735669236682218425076170519283676613255586499370674710482201515517559475705532057128664342386505322318759546308237636241579742576811505607461891198992526023932000714114526679541647913393440710426730207874255790294522767253513161751519265524960177126865041295355833791504199070735893514993952591566116004557014712371449685027309050684378559395450512867774744471767196935829299303853348998506965137264687134774170716740037863413708542240388966552820688959347133416132547704517083985965188702188157076414319343339688577372540087503125572965346153480670163233454821202687472259776365875141648742577876383658580246057653308048619261886915168459652212236085902208913485592156237590833558380519208927903710251728863552725161715837108555694514922633632167492585085741341848430480490893794038296781395846854644348987454218731991594422439223046574327818860654137635864241863981259735913852737652002784643208547063150439880072984398276355227407987300298291198042558977869672088787877605733525134069990176108862306027270591539248432823306802971496685051879995948130945721837022810853579996384316408281545469824168048492796916097496395181946209178050678335698088179168792332574276082252330547302747464834013906609475664910774380628854951711326463695974976020537227817461582363141426806690467367544663055204985320265388790106817312818776539498675846025734935707963369160885542468462935535921417483688768859348102958679167678944917240049137924058337945732878202015543644722367849912394430418317607674052378325445061524487895606263181077290735579256678448372157228486513945938980535375272607286103874300608790454743932929269322503011502141833100348178060526517805896422556044959825477991595710832075511583644461344854164619026731875576319558521916713491020053078891162233712856703520059878197884627030218908702746085586796639223069839741803216278896546140917037875184638753441148318941916579730950221049244042678927367688866335555791528651793238736806370292198217258098395367360634231202120398541777114148193933650814458468098791340289324242332165104901894918111683894762565057539534940349595329515248753105704782390327960990046288915448267637613137749722941796622380385505199346231394241720537933736624026933988673179242886903421798771799941593062394105973698888552786544669459989282897562529462444876573059743112695504601720317597952484213965535916306973404548402648094392921112368899947936204636117458279102912083176501964922172946005763149307360564698846441475364207157092809360602106393544372075448940762375965025010154692382342152085964482296873707241785434140900707258055888561080854002612787152961493525575750195878806485557376648874995629251763556732517839854076265833825460351967785422832315703715404288419629493580270452127245506280721053134469828393651080055157542818535137631322195792783633824710811724117027657634311503807249263682213263813178435279346536209126059070135628052063501326340612048554718891391450065980299291976414958889504083256220470459537935190987159852799968728336749609423439903838681993004141994385529584589130455123784092276773485681859756810696783430836488611859591882392914476536300200700551231742591728438227010762544943061340776441757521681700905453652699719009054357649932508685249830617579218384048378780112146566344532955660348477644224492030354695512513158666176848285139145476447989074066170109852481984203178510630469808162976204116360274185152383763050397832019835255556582916885386873379332346671987327585933772308858263911648194107853319280936359296058565131525238875707192327808634135996341332061417413686458924121209931003966683132223280732228688446795481161775219859933922867025015907858286065530108288001819105789381425397376226881627950554143969327319369027552168768822374028656710204958287557329388994532532386603908231707860279975458045656940101909516866251458929851015467967605493249245113827461575957037816198334460748374944180331772254956713020881074059806405994494450005775443412852752062887147460135961306815611896916240211046927726567257225951777094194745844579122410960547659772979281431200213279642544751334363938270374808694405789801927346074606742569856713949489145437613953810484534483151306746063493213867237029144865458241777319405510975188328192698117400915550839566607962272765433584652446582505507272359618598651742994334075037237021051258797894330726481444482306411974449179888188999053006711669290847141320925397583747722731284897283827865508857855870754113945264074949690406207446675501853582686783607552349866900144340273028569960941835242423269134444651810896361341102240814198689122394717249891733136602198272914670076890107972271848849800487156774122150468613846468329714068694912614640969252960705732054520957796565139879463428707137922837265804717165687813299963489997057826983720874791431211627992301827624663282743150001089378991756259357369743674226257480250536006566314493376306316894188172489571685876769958745543745708570381001094790135744773487031428496047276493750663101593237619018856528911687805919228277667197687482322678356841958685886055929729554417055844120725169143392137230671406043139875601118371657605408244966422055531686525222858976801329105325765653377558051369237500167179836539744978650335087536626410332417269919810170548240211627209734889627889372043138359032698482320995894877985955932264970181878161305452755943779461370714606340695329724805860265257924250222572714490662959623113354089502923834165720508748997943781675031866768921567705531646903020340120002915590086598293671717013743503543838107560639842316308474888975919401445790617877090155251313059059676319536690914240515913530695147679142985549744202796338102092573384818096606277355426673405762673238112765228474711175719828005186091811914259761012739018348621231961194509443445080687726408574355664114044600051078691122166801146509761962256194656446971748184431201570782189442171976918437754677904205991688994670085785555554617502721613024766227917743087458615006760355877404716702374779402549591675694440070708169676872628288587848429842458651595124406824077061855333361158620963181117031140003758925257149263233154888363538246153772247891851487706764919392560372420482218566726927658864879165986811307452449001300490584079181511350167160362912058135383408974104069392323922493484749242331634196342310707771706060443608338009295666550072721132603529182613431890038343779869094539853812595339659458091222343597871530241307203204611146290860042387921136894465488498382450319828854519503994381156516798474606391895163078777820521687578187821467984751841065810195905963251419452476844920631104970952347917269807500851045608151297514782459795354084838507153326667601598222797978544228004251730881888221046521055357522850260119384691096342818900557496244630564355941538835744520462618311382786521647510923239198461745678252443491526233012619333471940368814161894513447212537417907114662053515447573614444629241027679051860720518889499998507962144598698284830625182464773156764972899386527181640204432798525306739107410786455197931287707183159833789812097787645217373653258155876153735391436197873560779915860145515319946859827545775842606992495110077455359328444060896269876735248958126306251773533650247956019825247109223766204754936327666216145014635185294673298249845509367429402864566577423163828937358272452842873083609698294331109968098795510202462500813962832687299684198381107243142939569948318350753369544724230620252369898436399116699613187370241758077536547955225447737212166938588652361866096498934484887927862918470591350176040938660453914294100320290280384121605545171374040760434748688378573248627465389222852691920512125821641052693036958517274341228069504332419902760746453823458313117711581752660650908353773150000958172065590465631045847290019638007515123383392135481775513617241936575872824120842564421410163500551603687996593939186353504281771827377845264062399764893724222244955012222391248119451145280571307397485501756438588860752952660408184523703554220970419273665045050814626838706674869986720274181218241916415383863967895699402849661520216382511233399593414078718950865488634750531844579630431564902836413265752843570999920734276560172486264899363823789675717987027029937016339916044282187905636875514626043949682823273171781620209153301228974181490335275608571108610866621124398220301505359662497999059621928373821748397672955698625564066472897120079924319190673367404057279992261379127601925685853415741254678209763277387467595438949347112236640338972493361952273040518606816782719436357947320861957438775916213889459345504699709441500835951269098439442143786068076745492565745231883775463650392551428689827423872362745945744851898037122201440173172659982012681989277517925924523754440606428635970819493629399682248660611790551980244662707861041287851938150049710935107376361698998549432234533181849000232619579345860873119490033916503557318601581750974442555457174588333453212018337966744491441810190928436932537801029515905893572673712053423310209512832277198624805855040635655945233278043782248306573714541252224892440706967831725973868666605385240148230744727880578625306888599152946997819232082498847462745452506734221192058387374389419714625215296948252361346723226407119515303247254934999288876078017574491684702086775689411745224605296560158871227835800785853107898515133601958090268108836526799781767047241202439163113583209728192577303180024011518139911738038400008021100702314954937928738089708595221646007911433877041754202514096349649463270924631408589686026178246163758136539629471520852513647180854410790182676037025243940151350622099292100398545280912272734241525795747814867480990922501827398634730232946952035550508431484326270169197046809232940332568721317598050098779455225142351675390096750703219334679427915468166714674738000484115321457450466344546414070381716481293068637667110429513743089797384944837055528805717668816978508290306421915124861859481881880361301236002041822030992463022729871684760669373592332215480125209450048660398474930413683099880242342487620684177667915350787414244295042085178733906692479819202775651418181427383648801320688444377094492119604212923301046499844427178873015210575587894745925906430836682771378805569771662158959720128675614906658763989953090313913584413386302420985300884667842853371380914118982360794213063215432230356479060158001552530682858042962784915852801469908894494772028304350041296860891725362512251247084203339296330701127380836000776435028223277498420363061517531201409451796959488114425265321441941590738837436812714229463276270802943593561741399126666848132240134233937426956103685074760844873880863729760139495454550591939072639605233098228283736094984056655862299503419066144351231516338775975857377134427812359164604370726186985408095526171393492559911420695979735424096413053995678860857390237238441733809931109812255045184128368957147948935801807678712587928006942065274162957126617843084436980937386394981350912107590149863389565144897671906162267783034065705493734127110800175237328856687794751452818698037761584809207194528454121064148233601693104004397012877256752430050155363830384005943288204969552242761183158022466419947742811792110317359230708052400367896817356831856432716192547913797842928403310549377391706863584316560793290504316296075232134338574698962562592309937870873162485358033914103298230939356343234763922006268908407568440043525473356246097139263478497779706895617663554271547044136211445390045061056016167525394633262876340947490386049475814506802386532322382474069199591977729908915112482038589743632266868728795638526147375991920893864296699855479458076001035536390146472483057579415114382746052543935015274598084650054603308095795224713334466154934987479110990495500227461070120882915871884623636435120970028762840620853418806910737264112972536417361309591497195517131134871015323784605279587806895746847317233376386599625869452170890842683411723376922025145616999138264361269250650343382131401033223485767066835226730832757798365155070888146723177047656848173282828684729631087402584507422481031429694227432011303058913722863306459951408758687798665079991744655331500430102463995967373547499760103231965042258134157681296441707910810369054043002658360621420738616608408041353605089282486836636209558108817740673764077295130018089953608869168821076304840928357359421721570136886872400012295430333782162632607489243251414630749554805896329891882241707172505208586846636629185794460268906713366576504967854020690099029733276510716096392446044927331479055300187023435352875333651688778161315847404551033216934696333945673244687570263109870021737110802445481011218267329027463029769613434254662496508896248181455768783122804364748633569053773557808247522240531741745625006601819266562860527650306429439285712383166260554531900875651338783636586902794505837158890870145595915970761456629033846775781403010018219161504837901646651395176227895781066588343217737883565774901999440401781427683762620341235233213402925003297140197104945599596170360215701798927991693918122683263479476409723054486821211964948325519121408973511192192721761393976219605626381076527666895779693466168587168246075372642493142730305922414744926242778652042317580783442876917549754945586368457495742657138373622746874553912613305053000981886910690241599306038358748333582907106565619718712881473882532868185407057491438074895349693509786083649149491058971574407441965608031978085809849754553260394485674254986432093589290975696808441330312424030063552880616374690873408588548815618536814223773563375628908343360676551930750856816399444513114210894821498977556500930219611007807626175487225890764973017168282405782014575150628396722499315998631356882952217724173565658162218609041225260583069960243923105952039240964660836776588958901778297869990229665620811355801547776126367140902898755342298029565310380425900796752460772223221503204158714932219889609373434764533945801712256111432835825655007095014139459149404527023588076239097878570052876586416872753428862012056749530348037016302815756383351094078371118770643165888996708012707973563056675073431719256879191375269964855848515901427782312364249185157220083230199010129454861064505858435180568729725618707318006753106670357302626642531198433576980518524355265443047678398390507719906716528117276154190718382114949715038054329387712936424509952601572982408610177218288252109027604622970306678270069638529752012554699466679328438884402587704039915181130227135739938323453356218648294752142155312452818165780293300367816681190653940091070196635560721222496664753876636639261700084887104173763588489858443047675403990810049939361961776000853322121998658234666402487634509135226022828149608991259144388804876122293236245091522395408247777746708090079694378842259802404182925867867296780683078093522259427203648798026806772244645793042294907053167842113514420638430244285599566122950909799621662429217744969049191640230287732797039437056498852650544507357298958496659269606444330259471510124778258137427591497293454280107590559316234059570643003440841206688486595793027825938937374560107270145426887901954958736333411147297301630790421447250537823744608974447179201160471280001256957211933809744083755389920414426883124693789623533710424925429408485168191130029746015263640393048909607948753689192704240462627415496327812518027838041603900101159805611044832690864364711208280394845061852132920887719782337260172113364786747590009863249836223716920288216970836866695479132987909488244310452652008033496496287763695577001941952298609395831316582399298085311860147305951856673768455108571610014793265577704918740479089031214059501284902530365425932440913106785027654104466660835147495635312071260553765998922610821533653853708924972930550813301410166352256231187680661576051195043153449347008810184227254311673595939035700407141258287654924374596795298625422869695504542452192152280644902074275201092609605334877733155381202146817107098975255984326846238117755401091045915606903199543413372723767368121299778395491601933718024164911378560476388362456425814050611735691886839393674839757592423160801898749272669334099215759365926295096371886588248747980993878749067473571618578404928017501564137372233362410207055539528183225603906097504030602059966158381725567984244689797386105122736623107792799287346647730192092389153919039961380619430240836860458738823964232830884658484727070892331117266309475515012386317041080663264928149389375258552547480521865450495061491659234142133631897716595396949955401646266737647421253340385909670933984557086715921450588130668811277485328922967639008942086806764541684092024543046085053948933483847152438907522322527267562928180705474308883436358523461789839323546416240361421129245381431071863808519518170899158397658330396051859696224619724629202189717464171319781992120829471497153404098996875569902228256258686987545753406922918165203400777725510382897176257782503586405113835101473061948742403280409012844741308068877298878648748759308104163631053680713757642071326375814189586922630105810247978270892855592122621506592029223110452651094407478081090350278246279967602892128655942686715428751579174741805531492113075231879659415054868799874390674968446168945621298665779981178255014946861435571775685500112453786657532195547697112968889742706489915197995045340829470020937332238802872500445882883425993263030894991787467877970016810314358309457094003351111486142470804751111715377526221704847909536146883336003308064716586720561691954236204546735963466200259360362493673481235719608761860912285126512791077687645638223372349533825989548029301428456902265015370647990439834849007264682900938513146764750394625638180020030421298086942868221971636661674092660524099278277161719808773098093771108268346482511333737972349418977757156868115170740794879927040881882204884189980262863951520035915930477587639968248883331352648298835703293535011925725706638294189759892603328777787165762361528668620096553173605744654583470239589141682213960815367820313220101122084413461531161876172357392330396128479825266672596279591197041732125677473010201468324369198564356084827766472913770322459449471040345318916494241247347497986329977053595420676204587354126841446967251569970675258991804292768406273257291881829711525912288563136864283611180509655415557666002852300521004851413035372045832578185164593179036150040400833682633500156070551121170394583946155918187090001075689139994966935756119006626404247437387566304157839160435874149661134468894474996267293333142548054501066442116763858063139601873077769399105770247979447139114459716343974656397008374731389532888427358211578439595302282565067686630304181175143728204846262135665662331343064208586097637439563758678911763260189675097588179774276822630552841429862144597315712217087805241970690203065709145046845792110520590847900021374287041016767216552149793886356275271812416391901226392053945216341984578713417798052252775624926750191071407081311327133624975126316730435872020808462730136892312094021900362618548401958677859241384770042789946846327394167853116158566565577516028385638712630306584929551523635445993021859890920290672912488420657520986706016554444261011059978460045681933924983601185730436345182233741642776460071676147254317672001866348411413143570719403347194778541867070926557640402264284155972492821569810657075917995503057073937542279799959956180509739939642249618682493036213576456420020430249453485080488577486488176462299074500592192205088703769704528772612838528131808638137387471157049412098112919887173579751530009985750482872388201382180887672100724364032557190538075862416431379799610871686891890020927877516678153047164414031706634316469221645739197338289962670489499930977256108724129929600418883007419018737816451972479381619376369498526392231854576498719607725438069871460430751763913406219497889227786002268468736309447855117297179781301178163216689813097825538980999309685070605570400557281973038062421350440415942597875341696556155702765264472834248038323091279111350737579351043326487037292942458299244643996242423263297016125160197345431936469657629828434039911636777602538570234244000525419184672924078977533891514569144522522203208331342965532431141047036230581777613408719630725041436644818918173090615211622555170932176822768613434474261429531171727989285763237671847173007344131299414293435248113761065324548483285555245365610501050590408689801837691729592813283124017362998097980934240442129496399380501928124871757491702358476643798213649141939684853649739016017271794488228593815872143938031609502400907216681117926203326567825807817719519420909285061691591860762353614464596499525165157530395508287534704816465466537279263964640956581963693763601403864939950398274865912970034322944382980636750232769876325462563154575659962189880710258653618682868396743088914908999559522466804819073527900633187698326861737690498120557878305035025095458458237209575737790751014836192675265622724558649955097554114976905555307301841832014391319225427341957274313717974280177873735372678323758855927487192643790460313025424435969097648069587494388066582096363190427127710503518230039574741794887049196044578904844242822548733662812733332395240785669710817790993863607216384666189998940298466151684221637304025567774448084854483092914546025007397307601428284303032528572985660407017297327144640910454070893623403082608751050645062804769840074271119402107750574582901105513911631335114226225817128087891617079922505327911343986491159848652325428622227735937914781438144646545746675686992229226305528131892448086582082015756344045180898086748460996467640258299909724983924191714710496444316401498148696735884124549476282946537934197832794342216680201403934688707151527887587517530629650555107151031430998490354491744332749459931005041356360211241532805568624879464603652078171693191974178132505141063668765635878855894068156797619581109869179634702885859055028780466726951671335837787386894043325308906668204493486222129797805593485113091040062877231834336311817487715383342402106439044503957061599506689117123522626354673919096196203821338865837453933890443688414009843799670154261179892105043409062615109825706650080195272632008191286744712585248283649382998994318973394200521892971640396791195026822867821087905471154158103306791767801938600678075344843952771696619955495607458454259145390870335834070607748361013236500315960923693258966900382782432669256942971338364437961771213010885809746899321614629661043689595551020999241631243344659688365424220578490434837954897931580868156243045338508683263603593181489426766865742391086698156185122223293012539990954953691507186124668005302496089913732720659749092784744278362496386463247746006803921223106465887078726303107365837962768174919010597071974876690968148878484281456951429016392524048607416202881035229803642693717374381081290342932325332878486340045606924865426801650049981480024552287900588124796764190467644856286716731938220426715596283488471166392355428521933469587127272916460267645012948270250465496280444941844945899593513334180284058957469408451834189270861665149245371914779242593120287870498921708863761847694882608071473444565192244869827662720795727148387622501665289610769341389662560189946228438775552239215266527253436884387196916021644895964377109368681960635878639666666975764393764668867608363204724226337297219218258233941339801481764596106994172556315967222523205217446699915778716620296451465234691751805734625123840162392775647886208728043765163261424248191633951692943117665173885729833517001356604750251202003111488732000268886418877011039548697714040633173597846592483408606060833770604547173647118706158782646915019324044797064661753672344069090585236195884912908038057968339745525712648718450224191961345334670027384109329365574652424176910526261436116220942072807301233512933223487665993590489658668324420963898636511123781091235977476430246644365117840974484251592579918512601272832689830272080661131308539202605695915498256968233433747238858679874062872773057862347418430771587599682508215116492377106777974815700365369936015300117315215972385453391745477458685938311282096253706075176699673047342370721458656297610793671589924041981032067997100120459317424223437821135968646016447817799967875567605910524678819424665656608983312816824483586064478428923322192749789755140528406183156358656115766459529181953162011140965468201747650500904341499765601566803763443966968456892767841941261612070073019633143011700329052789780530195928373079604663844287059730291060135103662011470497988299132779801770433577873067815204476045590605757168509305383535124133712804444098407947256511749861949759410192171744953680318669101729331079760491642671602291447156817026604035305690632887376666944591034735535046197410937628722053497530172845735597197328530772792843168758346612831003721135577850319693574546069255409906110397637473804618663525753503202738406292603090620916516342458713838732132816607592596029365698435308804521257897254437549359195359946456546941602413414404795644311099487435983243085486954866090940422275015341739985120844911108206997857075538241254942792466786200116586798571032087243241027203138570534049200182048269029735259306904283690250924524683365745697373742767038168625256690197929521723526273349895359841803692131679504283403361324247608755054270161177985557811227228587961889934598320919151489633473628882141258024230952963188881990693248282066473205264502583797743913744113039048900625034929193859986437877118823347132376453194021231338815775483576791889739455408416742564279602333702881208505066420677692533871299437837365423809708775088844546075240369494669237380002235176434784451674914336349476137167814879485566154624354336507739488956146373084876835571625312043937735850923264827691938664772238757946786148232513675077633601383285521700331782218908716625795926785900523711307763352698144233398356999265434213233530484388865667000782276094285042924011012268091084725828296314968500732760247216682299433915711258129427414143077592611887049487047483481580267466204742367348993941476969381278743511676780165758541467412612027674094712587144309232589681310144650582749806263377585003726215714690245560864161943443250898936253998549104992348977960739583989360743161441887866378453225967224639214545522042115337820040945333418977472187383827651045901576939442830024082856327427332718611934767993712648357773428696904263711795511392072801451563444222726046114938152471880874684462108364417328431369931221687667596488664840142110483743951723085635825583375614252296101379095983635402374330027654545947179236582541186789589574658130610305866256191461294937393992357440257482181257400048776746961578852244614666299316827765763504110943633335221138235200114025055923252103941046763163667516539280633086867827469684628287111147489899043167358205968147097016350950649621628984203478011402058136485442217499414198831729363369010852950197392459576359774212060359710842771078971615122410936023382818067544472505570101303242265814265659277344725111328972880225317250690944183674586040922263293511951984725671523615278386346618565512818913878314115884419930767827170989735184365865762732865351247649666422538547973871305282136684373304425822238791971480046375899420800754989289503661776671826560172716892340186935205277770509128047712450620446028119729958097228440416362167610882299405153701977090033542215230755841630478978622764479562328358978623722483177571262722264419863559595576143893440281044520116337683612287958420929637917846313162812016341740101888584573138712687158952720730591553394335119939573778988277786120639571327806785063236765912812690620841387420075514067191176216133832705088172386112155236441875606283099489672448805993716267817142371872122357804510693818726903316225804316848375289122456101736524039702261653927855295525392895554531221567416479537640191964447391863752645347128439328437727204471455128737224838393637157246888723701906362286366922022103344963919592692628630981668985404884837271008861481232753115952872893735548712765225002398297800173207735172286278828709527671811376588920212728185233864259658822502208137635844520997749114798887467989342244241550228557916976225432012988621524722361730258692405781586697052663867761504064619022007438220210025365199388909033446824378758199673295562526162398348419168684782702350066905432237859293056583783714973068778806553745505620268957810695601631846466304903864012346879580164656329612362575287590617170364050827547760647290703885258693456826372975940429383033866553422532277613575001147786829505348961491886288782019767082517405055933140636977851358553723786753517075874568075649411086370129603599550168416848749772372324506653779729677992367266238083686095497339080031991574479779932143184405806059656228658637959710213101282221496100197313274383669894590969239519257452716498561383091280548657181793945264036427703301937760518284220555611213506719682995867817412297249615472346418823116292952750131418521104103173826755558864587653952066380350507066295998691418157955798879264215678756319777986991948414581572195983274014233633511659106608627350745476424414067822733061708809460314217428349951338204191224538802452043388663911753831131446617651921734265388114699129826119944496385839516027505595653866651996646091581249527132279732000417011546057093430530504158854780680030405750458891778030799722264066292894949291796878705297203736196562354089452524130495858144323410387650491998763406380256875941287126745702993457373454145032289145953825639254166147430456687980837458861253625358589828884122127622962764812565753066114210988853002222539295745060129664989328336189527115165449908001644072747049202044114951660953888848805055258962145424405805049322881047024755051747253920736177174875648739063801647883780616490926278158718145705427005064279346207921062047375395246234546119953237970946907781381668534178703001811376108860486780098647751215150047732131347444757527497413884628186289359433411884590640338663057818163052630991982046539196219970053766966974919473435494731519889914163775791438698961805448832169659324884385599199478002907812472348876361170064539801656261984049628153326297380557287624316710040177914972244972443391866717607466167747616252130118037109489871163417585452078225099999992150630739514752270542638862768799057435744725728088434280935258422268394015438335152269563614821129041812587242545745609693380515453681946144816756499540170619188981761472585034544578980304400893265451523106601828376963403741017370029702867976369913580000066994382692788466008184872130284253347142725518200637435164922389153658249700620490849500331262701011922085775117536847252278377990042209669081344550316282367710967272385806218968146770661257507956674596799991057149386331439159097817024511476268367275585700266306782912516710147608155777283865677712044478688468321385150000550069373441061957926248157325685404969211113455652886721870539217838707336747988692540472169033396452572041813460643974031902442648225961829160228424275983761765681239627242823907482293078132044199642519657876884513399224560600411590421476786268120087117324123399176004762422263775058405313522058881659244571182523551723184754695377101677259307028006349074210284255317725762377328254609380280795230229729248540828959097297782139335101217714119980895173623575899533951470872674469468017145441638800876469196420180577673704437731431351903671035029214558045286909780510616257412682769617101779646253646837128379963039796881130935403863793896043127637783946454092712669055813691684090714200986039993964464716187199497113045667505313480029050668195350806381010612209124948564260420601195538403732499863207281052646722842040726186670102211348977107440336715092165112375660980483775972414659675139127938648535005525013251403964906548154608123488180371537754492880547389240188372255265116833484549793347843409430109662693540666539172765403673878597118031819222998647066587433567485087546409154598752021397205632769564885381314984773229276241054950054260256869047418436323641303069465885659791953398861227116204477236413230055589018117704512847239826586543799825044668167603849647916437198516478415543694294218089688161990023539609068798809505082516678749839649646087238369965609037960884619165219989995130951641160223166167102322949937712972556056127200956061449274563253464029194911885720007780385351654362152193774280145553672363242412803779662213620290005697134293543701205845173034549976232083383897127033746639385967145833218288693100537813686441357659586640979079717849340574302530736440984581401997515113263898638097442262882643212619976176035834641242320028829792470082681339965086880556692908477605582511490567603167262820052660383923905117204515265011982470903944870241950964706247116209686449787034312335506247434296533203582802820693852125804911677087337315154333653812655022094576679746369969113116919647705187036025200517046763257603501363183538447485892088576425637372427504413801864134355736288067713580553763142712570595294055053661504348015028745543423872662871449761658455913467270537566460789533652778298842992947757548591036353874932271766732453294942206821990348682076087181315884872488989994269948210476451268533762205737692011955789190507650121636446583302890839337777664058618508151980709685338503865923955729505761143241924543804167380294981584912071971554697886948149857979072057911678214053024880907475194560458446255711171860981183175164154533749512549686072476592909498244719339092322686294377123888970886810024065537208958457569298633286565860545398459454685847687619907237636958073600060043458250193267086879450638412584085926814374292006524331027228092874369317295795580995619109821244295594759337093593126122204934537389559596963025133521311912063878177652821224962553852995808986727173733971306665549111216188789341876157187975400355410089968693352854994730593618742115705074449759524700354545563982598535528952102408909412875296405637403739729881881843157287365776811951909923649651302670079880618646846374520645189228290434057854836380852591239431659388852764082697972076286615644806922757427809379690372399326220039230918259880341337495237881002011306194611938909439936640026258487134185735350644951687790576207034555699035670399872623556302999450606994137324355797788299633571712155151351748990617509370915616046065462128662590549546953889287825338600901287997836808671323246493334017559384043737013928484506861975661930351307084445635205828970812712166145649444214942267517355466245597577717321533200987816225442107180488178185451976478375646159729084576987555300028871959361268935710277014525084400790206021371841497239264864254758975700039550117162763469021989604907166154995333857656263371895628839002656563438120889824542947721265727186993294085461713600071762166311355400689319087513968047748857046879089963502405087994605052551067589664985997291547678374044415273414871024006851373442766423266548819052194087702430085667512800680492498032479779068451329132991204848923929356147673487755477186975672758335300670027908683064716184161077690547064522937090197448389370619225651658030591311949751221267591853870200682890243148220239286132268945414733219372933143870840883143924003251525136625729881828129335949435535051938509416013875169655354367431993575061771026045886347346588051500299655509659125088951352713903278447723168596227612966601206741910711324321405847643816638769319185896659007907128356241131226477945187951260929998553755315118265565248812847684374673877156305347968182690895366596290028080268571289431578172459195878695855450063129953635582410567339061680134360678063669430314481311865766789279674026322463261778660838718350353392038149237409066381209450691929422843111138035657662876403468327324918493265744217533587061002226651685426176838299940244756661773072979425500373928655076774770569261242512639150312839125814061792911515009577599989240411454359500871764034790980847988916987123283279928668138527299455763227928625386463465971800708726379628375302258807713117488658995320598780673389461827971335547366660766545014303366125871474176411130612787890310300221603308491661803691288603108038894484237521861148181999616826618461489530741393569707027507297238288926930386730893497909148635661250346412251427098210348757439206190735393998248962363161393715145227713339465179512302128165862658160522163343419610996723265485726688686558248564244574898292591752663935521130713370994423089401593942797130832998333450441229322121769269241140365356199973539128962281964180737120201393894920288441369960701433069588412759898808538704912576749595203359770341690388958297736906163327030350181458971117338019119354631189420929364681686656351848774124027895323263500604372207886721772235650964586498002860517206339058587661035292889526218524169541375716648269359680779525652149206910335677068380204792751165355616607666722317947115594135171328360525800329369840734428636668564451656155767100377585227850808723462004220362434818556920332099652495075255260750176914944464886425550982116140167883852460166695767904053647055029051273566278611008771002521053108601233692965486232443134118589427686681112664548478418959253106780569532554533486878298917494342032958220260156711070352063903085355723937329562350024415115456619977191569537332428093205387907663652776385184208307904658851359759066062492582903259790162968389333455755862497921874255048011507968745450905378876015162309238947103903750420214953959995521102284970206647315384300475852519243247322618300563942914809867868803996102768124966461637188286713087736227431435683641714400614995639211430289718684126121402931261910210652979838654582805474053359065318385347670511142825243528873141909657858788810834973229553562762217103544851984306470010704420935489999579952369909903181163491408389229911736231177694939600238187689203869151277408479343796300840783391035179928486861553222848689457896196637848263506118665947504660873140585796587703776915967485242080741624255213979331025621529958895393523820212224418753632267247694745715915326442496539252143403230974246615194508794056922941382161116988001593397845939161795059937792154469463553336483362809987875085699007971846916534487923184809026542929240860056546723413524957884503561221887034702411171785981878680186053131177004174436946141611676630557867284358894518994860366143951792649387410915173738822496741021066152563480011837604915182788682274383377412956179750801039099576428253525444726330549584797983318801578215081493190811227455382025167269492031087003073998040932405650923244126195620393128266961726712974127413303282712955811578113022151454151882997678366168082875585484374209263172682667805515929924201910121113564004741943220543487131400303993114032715427700878649681759214900043398100372779357912755635069746549148810768374639431076184619688006484772421375122660420008544563044225525822563224052639020813973468026935290968735088688198297943474523591796249671214067130727458250185178555372937589367572039451738625029378559099182005782864358817029278312098385451734506301175607216849924229066694931556163727063829051064852062256290566663108790419407680406932874628383183681421307929057928870889948352090188096387393523895193971706953098627742877312005333402165637490090111448395231776623144510747256410219907395881456727989776974542516002514247076206225308717835618650800974525254749467442034286940817339942137066344973259531693193972784182176345062255943971463739459546422597674729941572842691970195558565860506565699388480283690557162383241890407909670796185594162551983846597724051716108808835167869338052007688918723219815419381383887120283492227273698893959506575236471303645870978090748961656025139367277370179451398170645618168670544576237771463574953168890180812366248649318830529464097882602585657790587817369233693430977787435938512077816110175906303877714888106344211279394568673670474050131749689372037925118898678094895548644754160908713627869144348631397778776459089692862960745034320006017997499333165656942412446348698659649569882938022716721988544759198830011213975963143482147646601506036899383132468302479410299186992044916415362290647058652320040205131691779492136015940265497330177262135065889131612410633458444808503348612767313633866663101877407720233080391489737209582622328009934978831736765125604929949405022276311423968374023427466266418305039069837518301743289386706950727872932047919659331817204471007238616262626554964284005371060902345656423366754939921094070538169593346961798977906567094388857615400626573625062346841022374549944963016606960151617718803511078321163734467535123783506404919282277055320779306509544555829907931855893199948559646359539606678822240777419856005762687332164563116450492764235408384715132023418516094137336781920384487227345233824570131561074067418489040414740937177474101022769373406079147941163668221923281038144928838324520365306574634536294209704829726334794489050512970268214905739971074268295229845869397389578201093791281757172272970578937654776875030598814030676090010181559669774078694913585284185604799187509761486174184202221766010396163445528117450836131723507627689678190746567118696953115673112947265004757597938396914359626171809879863598234261756225696690437799356255110076504100564668650430004704029019220102745938237972137813121271291849354845168106887771122934026361557441608126626909512790296085077527637030802565639892559133564850035314845532378940792754150479885229080677344442577311266839382306947512393261056686425239758968293663049717148648184600429714256579631265933161100739217073545257045101657342636697705822443682222229290822534400356847468626927836930755138487413052513623553345059147457049316887575380186393655334045303668566835891824604380302875979759898031413812509896843773293337370385176110257360777793450952816217604334332645723647351540124753192734596469564503431730517575201372025560837018787149612993078513998351905664518611110741229427443844839961247348792180494439927561357757693951793253052216344953628504605016715206069490844963337652419778279948185933778382240090806205323835950266381594263096711371311305895330683799040682266908725741349940149298502054892425272886932383745413531848995007863253812139685196455071281252169122157226865930298127988591139318408331652715486006344703234299790761060894493371176562450879386436243139314404140905609827885810241941504578435042516813606042763715032175044585153856454957749512183808064183589995083529032525818709605016907496549734430062209498694492510275067087796229668902601058422097567701671574456781778400400132516652755563568626865117141820972959826682976048497407752960874314235505744946672462091404266429912829598765251627542302994970396140374641310493193369927982243475118244116273937423876092619854401388942481756700289430044396546244165147920341961890302262731400119714858714530376717441532973416945071772370512558718900098498553087519202273741182242209250603868645837392089164202899931842460310523018808060576856633546539316103266970313784104602056014012504388067673110616431163827487703346201847104448577426790415491587567433111754962577930133579366304435850506004055437468050736467919422153057401418743549001745355709744717619158055216875384682526750251419870127524773578353622279874261186324369748808514953473937899198491668810919470342420841741244269794571189953664212771267359790200277016377503630596632833097137949754027759284076544775131206519700904965853367942344975796034973353972108875099801623452784454759672445505410830966061502708921786526527853383374006319524415459122206472862473103781477788203636167542438710848746158955481608584613533045909930740439133066613953326855736080612784965803018166475691799098271358488710581800879067603820388796145771126637483251060495326867313735918371919682570066688476366313030256569271704346190216414287365013293271477638377713237678107288931464744833867610855930181936727698392866105081478041138900181840888132562811378661492014270236679923911160661270985557020771220473125824557973815594644361800924874180629608370680344584693699891918715740537381849002971375098783741984413205544630863863250700671653246110918017656179969318378100300103600697889796957807065644051270748133649832578340922965426362180933624933831955169155229072948272121613435723118766617955443912914887633221492343867537063722351706160185476527389168191696778056263736642565408861506697232186691157788389730982047769607048054216886070862519390165297031297351302779543571259599634776271311475055258694469889431110589577327747598689609579229345797297011806247651764560682639588881121149751764582047379251705518872722267439178235716444215969025832893278605845688068183717595192318901110466955640946672607488351752367270101569928945142112840447407869756862939406700889235004283735679967086182978905759186685889841036471903341404673391452619458727858379464363797100418211808807032422091865165091036735703332017451782031587324753100857115949690314857278744170217397461366142149361152328945462300376373529474231423701123016016758444243902218218535609879051115093090999336116142478849566632053994735856379363677163209294428269663176789667568866346659416191219299873308490022398723510637886962704412171983248333556455800317775616432667325931413465600970291477266824894762353462682039721114328743893531486218337842342652972038068726924327361741423575646893666526884757349766840202627040538945608911591678195771060445375864263240643313046539523014934142607605304867912400327029910652898275700018280359006766898010379118690489610286148367592841715310519486280992763085093229650993097997536705914123084702073252437349694461482884586906025881024917187708486148187866985505587879560318109734283851352144269440657415455678338144589657547276877738005118852509234540288080098517707158001037709991729464909917161365435503589697268784194787945034937818729457736529005280742901884302629843166946048286445182078945608682148957005652472988221179739421933613075092577896039807637918556424322474199450754880898020765771710143021544040638671542096175522165462456404987867920034413499314395303882957667961408114975636113626281496932604934976993016354305265344486465583855373686392844713630204280206813074348288752980197077062662633965391081291929650711360015760838282509880568193648147262206712017577449865128034619099516609884821027846948605457163595663412536079835438800599313390493066679908601010761259998691727295835591220583788933669062024682644993320059958372476497824015499661417151726508528635876771751682213390288443238759104742447335371934911661162243953368507481734972780727593633093739608623047109107901692345620812255451745668723364176092153322411362848516389528899289329263592411130798813852950124883774670056769245983070872234739519022394157360801925095255815041058642169864503786841408465097783213714601318632325022807969144507996984553298449657281731442989153836800865074194370905082468983085202372516021377443681256855757734221020566275575683787557962709146181357129632368908435154580731462287015955574874531259827177289784290460784853170990758674982230894963096523781605041841560681234244024070126165396249823378820356430679385460968076973834228217631223336650740000482863762139383790421513435203894709259226047462343848438863773072061155311300335517575738113769024604632262346537235435435090090687947604235147019803915254293553735425033187083425148488970442977534901353969859693112428458524969645185651546777290708912326217920777565960756499842915927860624276993669113812166733359869869707691450875374530302626161775766944950595856515735800037257119101694176624365140419618696744703850390216556876246698188434346530441979441182730156982275600468403785602010238256305856669575820950287917351643056146481349552792006722273897052165494886816696410042490170209071347240099785210316465458397842131738638133523069896293855366044902235929409144250170384839561070862645850747233265462039712755855888602043023147434794837142426451203237967396800470017751747554901753219007455316543981072912933060677941839493571341957604219607922839464384811678439641628138269953994166630920672427706588634335053035021938835567665545701929333808815967247455738569749977968360168245720426123008518126699505052167881374350860393900403455035978231133808689799369317656193330457711067022016039528396452626496892836513565939425036853575393874233898606741411855307841334077232218030906334583924185552966686736464328061512843834826078038118914396604709370374925032303779685516300900018806806515338822431029961680698774515021638058543645854022606256326021089496242517865575129226375209081810893609730890248791896781952600454933130399985100374492868727562285482326702908631822940903732788087892248056627713458909915764976635826890206987648802466650294584393545751288564742146246152799543833481280967132220133956787021447730049281317845677833223248091199322116694813524181953657767998756201316565082461913113844388732173657329275749378143792044192722479450415177183365633487597344017189409911906768396089142072946313856457416011207732856952635850348136632362219936183658795550634041902006121821235508342589997524580378886154674236153274371103231182460417025269379472303774013254685919830546441170458787590717280945880932317975774268919719230570228194616169619700049112596752765797158919152736040979790412904206163698802921401182123116326707331054850798978801502076620740703897510075090145012818739649951123133199144648265630802746861442458187286688945583720832165321872087862771304025990400387945900962049459812501267700767456363590922320545284452215729215524210920788552423858382612673119065200606517551588421987391013600449658726211752297489343656093501338429038330293749729777977320372743058157308642595219995801602302803183730096218905263743085883539602611889530510741932386270413783394413230857741511402017969233446590687472079419672015412049304082911682836182206703861137528734580880412318914379681214436868313078751304692606306915358117389454833953170946087915548513136768985129664393924122001932809846824567885107434973188983105189434554062819951859616293053970888509653572791674638269244293147561824943373624811277630445867971871768714629270853043289115741230306297394523049083797050293579248479431528126066328007482701079554098690735995042759805709061079247358901049762408076442901229272854315094326343723452721864332669953432889306132824758546439654695110911878250523810682510608545106069915170456829148814187485680012671213986158897715469303180179966877643593398757226013596078376018365359897373154307073215357524571261432299066900873244429789066835163258046052984330553617170054288449578323397001023082854640661598969767624264470788412746728041216693149993091311640274776865880953928317787991007267443889200551028951966759571812949014960071566899951334133677791953115024532275184333009626349829410251111940880446885859298757792196764868493983058064413331485440129302266054156878265027767435414667294468846004119151473546607659748676581397161445663946215470336123509689671633238472153376045347157883942194167497353367207550245203136338360063996288949835750083667179011362612236892776185261303237392579695842755222309076695796759690575657361858975616327239560638803201673892004731527356274602379509589779761230252853453026111023187854873740075524695286409620647329351653360356946356711712534968173986087011828547145857819901735225067520459294886036145641701411063004870345256713732333171354313978255137709262984787907211027715518858524542762298860516830156907596238192117917867063869479383557566223344045974721882289180351498038884862099868320829694454740831553066797368982208714968961759046935551375419165696322706705997500075718851313894034341990873134334959055255388286633505013983847279238054457121675471221575296201546000009565846560585404030397775865918506716068536214368678557971628168180170741574626999204534455608526535939828277195806932690863241087825921383570860132647015209077654300028103514317831406055506432866648378948486374737058683134936029734044670212958472724470263983155720961119454173409793331401992542797459747820463598991589785034984876174950153199488982316610479394336842384700328042574610855806857614332313966174394911554451770393325112326054712517906991288296460160624640875892234173424658510980001193989126548926724115050724531621335883305006080265518305743310191336168848275219423294857457901523837544773905076929149660511648439049176307745485798752340166309443255708551060705255547191505489205814756628544333329567962943393335322429373160135683180626297788227488800231442837554562744786779287688973624295026822265901002622498049742173527547930176300883630672214885433041272331821428720188573996848851495332072240565007952773897772292538697296582915840759916540347425125656298533097365314787276662398784949135968051573044821840261204397147938823492810544803441356709955958036864064284702396468042662308836580068962871025559837234683756337639505219912171978272626276487260061070513665881190989975885463734511699787475311485150723430917461758252558100170335169096129763892615897943436388865120451113820453577092452340246131272558366014264174347108847685353735377916504618326676876397748660431944870542467149542524309197683302575241941115868411860363558188193394463501493752805993889758121281452669017231548012163780602692924684676568104067090022711698958102010049537593508601853056938533227014134966868597895122600689539508352838698937365076451349241209620376187327897893244810131737467472308201853330112251125533997027195392978719001452615485385895401833626572185817803838527712112344292409702104779793867167213409771060469470617742083796801179122061724150425607163753098382152644389331148500609704320837780129260229754758872497282231827297424411006234816551734739331271529628314091390667047692222584599102092293894216532874959491910368751280082409118718571861344220144186081290227458314365688358589207614772713999591227012292065896968742133114526316003376440587245284831281386526074300946291736804461658358395751005477419540006535582887883635063759337394383719414329621196407101364172647006180271134747272695942922382885638630159350078304369953859691669605600802475343959723374981260355480581224212274570015368466691490898218856439828230000498319128643026658073754703254823906922567626502503046257751570369594528519692436911896730080774952452322305224052209471027222281658311399727223231414744555449415692928243554678911545636316132688438840273671743400466955806556320836716111804268136940894836378174105123133565164095611997512551343662593748482414056893709641805836899546906864027139369339655730847348843858955789180645421159042892427859652647935374327818827599758709117888324229525409190386982752906263330612255357029000545506317023379358511757585909670974279676570019253937411060319413989900766268710823318236221349546651887273393309711393213167590092061702898793138579689351372208155370821489330246698184173096062159531012595743004987535459802695412830417449708324707562948493652903711331755661199066428681882077351631004664237207218367926077665216315852030445856210742289865483476263313088757137017670781004099941368484436853691857635474017376935984779784778691182307953925468894226840158062453375028555955807175839776882621111631367908275281413321894042189306300968557733529836466392442922779525802105575676653628307377722264984209574931469055335911539166349481125978523151229630394174901833217651812038355146525472777745337599589055932821112530094976447363976262494978351732702418558659585699406422228828943703979816093185847759606817343271469609114683478878551055064294693659918533534477744471933317913180805317542776297817039772040917662260308021230196219521798365656811745867035676202801571635819844581063509395322034678490120021996784675442333549255131427626263035209760972337680629435831677158006265869071765774426412902715420597579088930911462470687977150911302191062185476055295047486562932143561666093213409523979254261639154123482160440095100263516643992492607701897292118528191931152901253093379357914234173390022001827036940066125331902410882810510428305111938207393972512749869805726080873892138218917860259925560318095486409878763677321448110738997876151560990166913137599024340628856179378912446383845943638709328636470592926956987025350256159147729197979904343877517478297250876004778559620204925925079181219166246022559964484962451561208179719226499192707003549188933532369883241987147759239529592146310488957383969874068731453575232737730786679173381645440066671977254991053467052559575637146627108476639111485183478277341695168629736431366309748348431577925703362043986847524281977604085027485446907953316010145064592689998029651372548236573791448496900977970071897398071246041849884262128690846387358938927914819933952593233699641289325817441619335801880108263628631197150204951107573699722804520869244308260804053080760650504295492339480116130333579042513145963126789003550319417874270504047257021270392114854060368336559513337152085241774942728474412791200960743902893124196717318987541118553658973041216554167255779079428787414502114287955513055044632910757810851032015296917121638526395521193105360682637132988527441300498624826443849286837938887702589478347403595469837819832142846942107357487323490834476771441334340796730978154726796503405188054205455208954326830795931213300759502747098087897530813106689978724047270133612745249177020213087586191012738764367586815962333011098141471610720000696268723571657649130557097816566891544893945561071780095383692758658177985879265925232430670031755585383068273348961028045801370540237508297550482844154003448166057576937586641634388653967164271627554460277953604069727250074222737879404226264286224362263962114301759050954521806591137796264460535132034058700781507270685572462281926062216192153649488651710891049891706387817624693527832654991062493460356106606512446955274260752634222483200861504836933762492337769603863834358115730326104946771952906481317342866346533975685319098418657100497091583321078866967390543270284411129296264660594273139613805546205151995585712482667254888186198876159376079142189766438014653765477917297728102020884289243811066522459819537535075545312862962990492559232102331936111912699733717087316058193288988130505615841226466550820951623823931450878020362095478702838509840397080365128213938909764401459296186269404077438445654738909623084571624240313441284653581235446975179050029470778129190729664015749868800086459681988043981676501347213723082595774739325829925007422137016809371313582009144981042841935911740992875988225094365785919853974958315173098703569817519437664521988391432295609621862079450724694852772200522698044112658181497359353585602136520709726983511312241159905078732706048950612266021369533846364556371873291931027434333567180417252683854908571255042494050068242124394480720993173049414716675143581544181872822773110905502966556281815650434383333375516518068294250724662026513979700040384873494537309776215219316876152305310977940368633886137948069884510688383076787755343141087555640225745374740610247111094866255254718050271101798942131530058245141807389521383086032511888116452162252122176386869518061472487904325064035601716392790200967223493724793971153077287528080897170320563063484562932879979422202710600987065737677446292485377231960440111473920118450518921598287860099626839569942277728193722291696412876559420072974897950871730561431927777625522564083524439386026492837895524182958611691818357394241152223632797899333954440414409324032714409657401850503311812159523177351524912775258405989447434291258230349484136976441140848814962981580627027950483103831026373560340719029511076314956344744544861503010500748374450433274590551974659794636833007676152550554847717978654735537151853703107462518232465130775351136743574561130076199270276708535084337551497800127819010276391793987792005331977446474460589728258538217248343918574342025726293800336684034814506471697123988869863293695686056748407138197628249317355751338844679873607255480912605182763897176859103729875591004679011381988374937432615775325316045079137136384939173608068241928992266417145666604745846202775559972247953072731044782354910126077216140564276256511617438382916829045004211429240434840658145774123231796032756271080123125389697884020027933893114453984199504068106617889355783041695536770137755189387918084780373848165771204052312215152209587927113696293347284892284571148702209775278944430921234468920517005946025635262061319560942454978184606611497526571609869358021507617412223877763620591372826544777943130643369168060443360372038334674883336201148744769724672055892102165704590684938353509461277902200190045403719466753504660510035147340212176852629596456976159670877504110796099800808570796346002836781424037692656102125000342910173707433704532549429445334246100438412362031703380597097557878525507398912494327924781155356383418143661944516405731761099700057308938633993468874260323347380839789588849343680496241205086102530127061386277929511913776579524039168182236277034302497069338657548427005712750843827643492140572510442151950823187580023482814655585230613041054495351426470675906390490739063594092310474835003002468001665794870704587006463491438562266298550958816951160512132191855037398947397714584435285142638552557044831064429548472631042337803198366427384853655608575649914609242020429545207906036937139218693226793475130958458192124772088687299597697414147767164974716873571847955538498544857133845594841328422236214484365523613902618707589145363032645460125334229895646041369757439482462063032704789470397348231121359846373867377819551722357645423525744892924333265692691686523381629819102600331986091740495802753770752122294470386993736021139446398313135027069240538556680259281574499528197880138041454443025340047493413494005339466570810598691895990816290341968544276680887970393625539155151688062789894104985689784023620695185033376623035729215175525480135147484574958097758861689161979659768696196324564138564026474379365424288378511935597369829737205328202244743199092443061470582963473537811282912428428864392427518226777383772549412617754040421565064742958486255474384438048271170758068211926490803808725480321284625858167846601385747211901507846162817416581291145738245630333603756566475843509119735400894330973391038061020033655703590756704180860604339104764289226114277725531659193258335507849411346280154195105605158385997923662689150371298324653548162618672165332018710053576705771587384961280828466610902178207560141390186099329778657026017169013155540415827985147152608181390001551643412645666720534645209344769558737913193866079719663099675028823274919920276110242543736173231469240479439097639670980798068649067577935512484481998853711129419494590742766457816937051298402119576212881673755822207391873466059109444775865000619449967446481210966481651254621086970808766958419948880360546670758369201092297690340735594144416087424532425584769874764793957759767704720329522806485196579122999422208670634409882149831888710493140309240139564980865218258931396331098610218668739555175750624869541927889536871591873768937859545766888519093079513675991866875001004355711788766511130194013770735445791079152192055211659533326752829519846792205379383552265570714956530155028501062389228994528571609918209635241527605861572778942897323677520282539062192262171563780976688095316307198118664202196998407528085955764404705528155842056749894507238893385837045444523784997129938694112981296757933763032748566778508995995024583160214303657853884345490941042549203923278211473045953672241968560740889560111084048657404418063155833997795104674231582405017615023061743394235494305641170367056387475010620536918298445945752182675565385175090610846890272298933545357584872009091683852474023494225984239743040755153648433746437985907142682301420247489852071520569565383726272263462761890083313165308102854705051943293107978966449161480367476171509158079960574052595048955147904677940384192456879306545298492118857359674293087120599854487603171832520394729408287804061607863319389647639312281287761174644788291525105414843541115630597182654778824788079197132841399433565177799693416290205626955590232088474330145419572633053360440246327828212266480724959307834689134906134817007502933656876460041636130135110464252851203481788880902757282916577152775456458637143936905487051560603849638355630680754883408639350959132254547312118348320333602906034114247888105946697149156860780342820107677386153110382268834247312555472573820210119147070985407861426558069489581875892886731670541302573642609154363920489611727316273723924891814306974348492483361230319188562898703364798816696394991157001772789230702978513819755084936933156780396068218925726532309313048458749916773217633521403550697951129078027288606663659157260772813839629505856997183492382496296177104672125525350390720422746698514836525459336403937899691143735541093562063485879153671121109537270373749951172163916477342421645812466722475063203397454820673930076407111473349607114311675973165177912643234637483462979891514952318770382238713670707031061619183546734931767498746400218679503118719211572329201494575249335219537857430582045653401811386352205557041575612526641595748609219267731539234481695478138337104045914537783529475655437086498839589357536742481801784675501611272149200101810689272756615104227739846771914643399883241933380304263760225832351035372669593452435882536561690171820160006866698885044873485360465457821569774023192555932278181179655581900998546588956267265919699031272595849155943489384639420319522780563812235888461290004343081149735397447765258298350035202005770051953545940939101480836895938476603235360305937626980857560167882295183962509592752244522626265378524909358695838115580802158795779990560603779958824324560115030029900384577824706950558816196424020992502667577110377908998425701302762819366840517060996407509311621573741754852668970514529268386559731149318605687190981547004781074279208604004251251367082207969877787161092382519553451383259558601814419596551020007517624260936033316785070537573918528654084662343233462807541404297066171492528307553727970638891828610736515695256695001431052391956451933457810061298542356707825418809193339340338490227493671987988296964451767800557839596373660714528480863929664581470173240064741694285590430744247156351753587640041031674131478054632689669160946658629903872619117655941943284737386721642469454405386203422242654065294952079593160189735509788897663458373700440123932015242533499503311280302446617894336622089324984180118777524766924036240361529647797062728833711819766655451409964822517873632464991774253308656491445379355049615394646918982417241173727429934099859450825043832978633364554607732301429350078541594347042351000557466771140916954229370008518641167105790839808206161096588133025088244495579599118629325249853117827526638743470752654105315697853617374226574862100396876888437004574866577901092203394157497426312191254034933219739605473940054042429786963392336969414691126305525172542070945124217810816148254693380939348016625510268570813951229082927483176193833090596986895333840562619514233112542504611730700228157175980362965653841426828787786416961497890472298033134871660900210639419988548799071131057934030085607416642252894101593212332518459510303756243035460157495483634936549247017728966895544537294323742478058948026015440982462917446303917647101568804974403769053005025508037071335352287914030763251839269612787913918130555633083518511292477402181626997925286766467276306230472819943169549055219099369526542446987511842365562233574132276049053314794530573301352869517365129642601011721171581859703469689850356954134671280731991376594511357619360444021274624540711602544601270943820572319243891347327680464780672629880432926862416785638647075259592487864118871807288095910363224993443850906551631586546802596024037773608861026984951821144053700143070886054778519190176029260538094702257588737628346892882923567259670974200958577154104463160955708167218224535341864633046423898834045167753364964331110194038949053632366093059833859405347701676249237677693696482118854636873101801313658822956934055898837333157695445780221405534082205671506299393697267280462220521368578753886151719468844150223630022694289909740928841075479264069388328909746688861456501624814451193981123424345384101524317785809648978802910386148754446102952783561969673295839214263164203314757100377174443709653107657293760126993410642801999103308741201236620270963518499177192465120398391667293605946077602675667138326230730307917375289732498547293330540381992507405535523357147063579288456822365150828943460857923168464747754607747020271672291382232750175093796865025219474235136809687342648072325308952347305483888427447893208693867972966159892055946283389239675398470788255804716631201698262322199043135625792055066653930879625766380337031627527939012287691842682324347095207549476769008037605486906415515920766123376767886981103527304490978725894068261592340131171116990633358590931552239320087421911748431332338417002070555542241244808964749035893615328571989644479371027376557315823705986184934132471494439542447406992420769270620827684276521761057742516651395215702204612815848316913828008242275075222241293845429049784449133740428840256499537592659355773516731727218937642233811632046206441707281402859024044048512746281067182994664325096916730789111078574536942889170175072561653176236498653195905055082412647479706292340237432863613478705689055605864933495885391816128670380999632548615475843987121314898829140793767999644115023737759140123455701312752520815861815085126025665703238450544679230668524076777539636596862463888195765575026272028871805079160659913369264263726111762255031254132644145743186268135870722690719965064404532244497065717148564845529369391187026551051083700413431267576037651371828185502344695489899511798532748542451995021071168057094695104804683380355708789454675231267000502105706388343873710283767464604543068688741455898605208926565161195878154151456277994457821899347165359601544939272166900773344946434823788540305888930509555803725140861403661790300602230003939687876327671294889399658365734498636185775516338687583154663911390844645395971236121090585275226836105936212204328954810284108696408412676473719887915390201808203082645933561081848329673783816178596116374892596517526141238233359125487503701143904656561345483175746887892373582754178924093090866664135383221391601312795150575357984684420026808293676868526662322230811309506250194246408963073158683740672799931197076287858127403138683506066040033007129173100050575649967587395068959336402571335932014795752606577450768367946313322453175299215949382259347382774098788675425324568728217369744482570819142966298944551335548291919575791761923910800711981318828106262375386016375869195419484658016219137632475222993344950804906280457114092567387482132229738207907008172399338259721085749056398195726552265020087538111340018031564407371351622196935429394933626409471056948951348556597065490154250935866719425433507033111374899093176020682178668602157836468067932382320031171035727888914418160719981808611830921859394238275622301553126423490277947875212756069715793011539841834846758359352113154767029462337879193520921190663293110821339518215340002436404825513209918840765087298718940920454282714202674679950515699141221200677409277893330109271269179623887445407455522071117627510397826516877386535001004099958492281385591857897673378431127032929906137969787677102570556450379615954905298402082594713560251498874373478387780476074194473911976878015944932476388219167707169069497462172986770533550201143828437659670281580721399529874054588603203592681877338307726923093155210061931794731349287578458941729193184771175946154598300541729307420061048989048700074764626831739496856123541275203394909656554717496070270450265021131570736258847294296216330611400519325633119577887292027227221309068206778913325001888990638273080074720177581941864376134739966648392154289789169930342798218491085077355924214265040848090789512762480059739620098952469844850751333040803388750586231902905524852916900454163559574334682537018293230469576610820899400121908409224901401439871969328881074414010831325798551466350451754633404377665924579992703601238932488438209936736376763034323009802683855720386767345860297311492372400040625311633630259049235098173670645910185626506985523035046391958339890008190762733603039510028337267721878792872764130004881443586432713936178208844608184382354446340402033030876985582551745717924179527857674870988071051843973579860849945152040892570768258458624134745112518197019487191487852277021589572910622797643622241183556344081424107497668106402169678203988604152854153929342233241607843427419489123214654773942571113006508347152372317405786983786902816934705699267118621546721385744382890859126972846560602397311907567735636539953670584925073192916540331830613262452695538143713747802472056699793130075183672130376997421391940212101766248182173928248654306488322343518292666745535959959119770221197252797166338486898197220508082874354328967042592834901053965268778757035808074677963909171254938089343561317410439643540993748303129826237866163329484613837260583833481939244440376568771288270127334872322388008413116491219956321128583503661011668379904085886294726390544762662742233172521101627546548928855727473660204671016228279240640490847163486130524252851965595583284240773995737437653087391905450556222191628058331138189569344717165500846123830613692896367073678179090203132252809074513023829481751807731968523815772129027267799404547821068608038998566403736486964790907813710383562416611140904308724985032253059240756155261771591624749865875018567116021865539285227469789290619147883620210555826896668385279751948827622716594720914560504039267273567732434276302759772655414655517687633990054767813957039840318551216390606404297462100591554256754396449537056831042074990193718412564402568734546658962928745052454130872306714222075738007705688478746692223128131081094521773244950015034949462558664316951998434115587945633873621745947989925688531574041561776220129477578546115752739044163372853219738698031927263400951514109782899235518865578003907304216655785873229930269973075705538717899141035301456808149166690493362319063830560645876086807478436363441290642279904746856184802308462458990553027414502925884042622208415938245010088077643851135809724758535566911657223510498969985806185634663409946966255558573795449193779911685063588344195849907119897461703172383425410044995105035887232047083503959622656736295699624687814476574342961238379184232977231602062045544425767467576071981490979611955864834689599629368821784179989476444127123915021135555111651864901532892607275377612398204389042719297292118051516884783326890563141572485144808473076835130349053839624158127444469107349307248861493638025321279378619444433503149516886149300519335341467313876877352842774453390075419177471314787336087711792483333753225132445239560204812707110409752132062327803712928405314286152299579168754018959647782712991915263904310987502012482799361518479357281040496140285853597580368066615620126779747243796455784187978376892546928264468906306685223202444258073723503762288080790232762265215491687626475076605822579362507757592723814312644808778628997519162010518597058285367541451349841260671320110668160545256761013945975760524666075025461567958394810225338649641681606171776630087996601622538942989160416165359352552819149418243174642672035795963628195869140375442850737059632486804574075306808541310373571490685111983377975646516260020398670001584663977720293707515655017108742210483546688925481384633119653331705062634536640459503441470245854243340519434801882419343714909878937285315313060564397085589556521617452846492975835815026508046877393003930405209936462948640794746817735851786663592579346653202855097497347525971426780720104087110636178339910647820541961297865450541466140581706385211318659467271075096306921408362486663954839340552221737099864002772876223297093939386935501789765080576745540719840430236760724112721340086990839221878304738557215160477921076527700461442103835854098665954367381822706086707752329497530719415794131771774319490157296043457300960700071983964520955923506599730930339023696082016859856751968709463467709159731546921922058120649931359477435427223750378095372412214673158668625265534612626041622871356432203079800739785732413979403169426556802458871928647373840550919358187663548530550767168561670686475445547237355621655904075932082314768468193531892756020241405821367448432919553850613415618845490027100806130773063760957518651799457677954667161583267152950869542912058162463296435619899865596715144765519188438478071468236600659677344792345642755160121694240869983049637489704312239892026113342443936324918738842106312834980911116860322189988880617468796096123743146493723658178747701292377682724296544809266342924466590644113447057339913894813179932371791203092197750641021625185512549830129673046143824317618897882941383821168208855714846138210844503534129582378359201519880344138366475971891983604700214969835966158649417303913179175561062347616008227032316769329788815370685570436825016756491453289827545331168501419490759613818450634943542362683637382814389803857044013491226135014778743175115048150741398480676123092579325715065246041689315576110707698631417219469146819060166794103335898168024734025035819833787261233869291012978514152298347532504871989886795783310078278401895753015638210914405500529160119609363847063294721598706900839342196059718162257831795267505303064629971467151444519229741897737598125624666490274151255096489283114721228110853192564608162134040486270058351536535898321490884518908059291076344178952932094603248166063253598753643815433707192184789402861493465080291918207671830089953412328914806193239134226452036467980673885612072070114871217974072613454950053805418825042870983267175282140712219639273485162798262359448052230495601552791881879102476836090585317907991155507417118120693233497484281929590365142667151889884524506682294929637113609016698137886666936008585343005745684977705044494758002089726206354128805993772632308953035637830414682832413064699992864405640278240447637149021400965315153703918456034909037383741736489105013710218962062157731313605343616715393539938813105873940646429910804905885783911434462050087161869212475577981412788406497722148594998126213959438225309776040026675237610488365612326903475678058795712041196226457896375320178590295959281712193121264520063720911032522241309267985634073050669753589249492894672166687939292631515065471962104065458764971333044476663145528462084502776353079496539193154254627239721092085391251882979737675895561300403596812475610221165373748594466921654210928497251490992788696974677656411376534985959679174394765091814978487783796449256370158519865054062420457680555640146221460841007296493951154366687769098316524084093171203506950980953190790235733170343032266107485009314256711640334001329433488178383113152525692677285716773687993152119309577615135289302213587218236947517806320052559506369068985927636621406129066185940205985759018635985665743964287320142112420606917818863672685416654688032663411539946020750233594344280918065759180191761545228055443940804714317527119778906386994697517790501811182537159530215806163630222897180108801094135188404788072325228501863669412263617571691472357879043336706251371363189624213015020580158947964260724223198447564711465429326150218738714293078048690627764743333994630953164595102924462540576691426949361517607809542999745993021259512560145591648866429118956187374287952599411321181024051442695724490712289695520926615483893308928361490031345388219959634330921876421241291661066366965294576449707077271391217783972856481924386752398871862340010401036415938885102520102736463268442613616168050878650104586840027514228035130181969524845118455007959776414234777565043228025259944758342262935075452095662506824027893268231390822804917930983611873985458828296485855119405184103922399381445323664004527722388776262209940538500593993159372974228878122914098420980639433340245151309063689288980405853920341001498931397770643739781949218222853843517576526207948670999273995411274318099720938047624352512352151949592710368770032311266678113522329342524005488003235197843585924522734021531220190128281238629119014234019990104346386084741305064781902969135457945364609418109489394728549921971354820597265871392735869465932844741047069107360546723988168425038871176714743305115902269358719915619589565022993588503050072896314129580200968181735770797633754564575539561326322883246698732570981336501947853454799494761644326972941306653287010107254225287835978677662526200477679727473651840354653386583136688073572561081255543337003950466232040444963043320664158692807740740787314794577442487712498601298343520685491586538901829709987512651353864234959165677039653345753843205405441141310330927610234272692947882574307374890179751348729805840650922021908113731367023226128466272537443521557449852660248376744824987467780920730991391856344635577683486844018458344195964013720888272906912462055258428210492806633496006945798211926589164304324818509363522394113266417184873456717483304475965890968441385908625244058652272889400744013117137361738469942570536426890203308395861051318752262158384157612120714206129987266941793325638825375473212488006923108368611680081697373996999196027959350724609688736027390966752227581221547277139121711923272361612579615385879111405744782579157592743351622781672414954318395531958339744380149730274299920836456032236473841513179011128317457879017234392560029168373457891319875924569414011959862579914507059491853252564763867439263875345126898681064777303707275665663798044275163245532864532552491706438777612445966790924760781396216172563030208799335843178598357422665950566502704898584793748281285339052401413558144538683626182626668092592752184468441112372899710573772930627347092792302256627300260148507248550046296869126229636500406312243721482858304090926915001981891261624389191764913115357113740408602184989363105453230700536694307791494743439600735520229881858303876413428671787952017780722588225029025791002250342874923114894829539208775008249890700548660268336463758375531885767042620534526003680593793108592626965789285849992742690796053757926945506841489784504481288470951111469015516728769698026364237614293965214846246285474360126333891278759290225468876169989309462087693918674601711394989795668696247967416214764802303579832616777814923041015919576020246171121543314995198613458768576874235874377855862899114709940126814496176203294758557023886114109180111110104249533852324036748621755682550828305097837956236423870999864246130661839482966586186021782341113312420880683744471963161771024100186951665376645249750488822191041022316489501407829047396381407574881764168071220115903060162957498946043506681394835833445264570573889860801919133427076017010323403942613880299010192746418481578485279161716930893657932188443548712345651224963022308815822895772086518535838307628353262821031325743787820486877659718407531066522877552236384175564156212181936127432498874423852929372279705396045749034072973733376829890719529862906808818106959575981551922883039855251265310152277681485304789966280235275414223839787584948257133079218530623607479364944441188936412773698488940477925647908520526765362553351630214083918158906417999452134484012894175081119979193223641367295300384852061788147321625980612453955161471570746988366164548279832418155279878786472558903006577632057882469511703518142002651174436399349460105587196828557048874858409885405079387752492580972458326970869256986775382328798439306701245108861124062138853773919977085359061716619923172901229817742796867927302053365054371122572886270468947568336494544595535178719990478582381585042775205186570411026996099211968672910025108418742761054007528848456977820190064108352972820734420766625665064129477758326672959688775620857023730218862143284656467386108714317427333848871372143491314418707087623990575450891314419743689616283769901153816278255501790008138438210932673247882532424361721950575127720237327305042933922983699840619077280574145856590728214890027822693293115107474468791340014058359368842317346770799498670064603552016042544347441050740587101758616633999610423562855263111243068103306499600552478218544009982410155841726339152682245089181818634951024624386164277593486058648052300750564761051776676353023328009254240742934605390755926770032775494591835137004413417969987856444791886711413880580241197697204073364579470048077804026725351070428613125076849663295662693445707538950430491482265458193605266050319972584800660695699835809488450762208730222793309893363514249400150576065562814814559854827428061112643593969944466042096272962949713739619227465904033578852974303720373297906830415491803049868573827152875264235262465738325393700134380361441563529907100675177138877519983337416128478154741266601548327901502329349537014839627776435857755597200554084977886216976243156281143583474764029533686402629686647517617318739280262531112952893000604834890836519572226421300254997022672247669649992277161656850764512099280333225866615908810570735371635900667465657497325858022985966113506872821996109423739341698750497950217364863605734469682663186562081211974220305814925060397710480191904418615798419706114856321491679809227628460572880224249935207392378733451775032470980031128580446691472183087819662041523535720268161891720947024328161706082287066076419064157272731546860330136940448646715372874455226219180979135188466097742192623832644378861076746739966660836959130268270040832585398141264924082553688250236249968863542131681300787323637900492361413345148631490898208730392291908872363214420353349803527301202270707333100141393542954157924492361621151017132477189282092792388953216947250844712913789074646833822465052545021647177565488686981439922720879167707538753060230188334650999562456720771418215113575250249785680005198244954151354026184589086491752310676142243541189675443200699419098715130465293111642189338126254266709642813626085930547177611943878582630028630391090873929975848199680743862698947230696718026913294427134301777814220599476222149472339265678918515618060566216430896943585143650976817864139320294360983625719859591932308261774791770316887849614658104985622292878180653092263451523686508376151262952246554895472357528327580338235158390320038318373499058278973010165745486124253916593436460494905901628566152509116396644150143480299343534514405375658933461047721847590617414219433586981720008156288584355098548468899112260775617801516864048436193582355525748459560146981347458206071443740183968582116355660309820679700525302738025834081670524285286004148637843317003772356468986600018805923525489861957510080655993677465987548241669223406963897199993510226472990198468190145403443014294524782373652828632431486362389819752196615174755139776152919690405423140338698109306528337236927088669585998777043604752758569823056951232169820090157613975952993137170981999603318828426285459988785278189104715253305904401316897301258387067626477573075071672726659466015838786425415775464160788439759016947901687619696313920244014170101961643693738658425979389541390341908833249632579798891512771699550227637568927232198698355120756269382292075986051756644840015243551632363606518338712519493980228686443288026859163833221542188189441369716982566888670765769786551580039302670453308374795069775594605896339024076064160450394729493546423091799003100948042971981182060334547746142938174744596805166196488008136746116355411072554477539737071024292322004471193609461805004194937827244112558272952326772240697556247433459671624766558961699185208274317914069914355166402270872456694776124323077621451542694733320103180866955014813739369418210036350122144251635327408498863602409428555484519670978087293185670990899556674568402710379525833505672223342070923938598377454112258843550308378596446840274520011022483003036170463792704431449767670912851588347377664480243319995883583189191048717149187183817835923409418798913790087446198057094880636730760877743472495096233808137387810884448409506626587318455883817338809526335870279574517783431398763831914682552996125786432783536870173773888670233112097604376787436159816483882600289570749297026433373701115649821116427859005425781956812330806952037686114836991050766479631236114576048291386771747862849086150710678278404476588629274879341005143782862946061345759202933329220584460192107419665471129704084042108414270652386545676226028447272500506503851522685056877496486158982269583674274724878418242006156563832813863372230488101907435814805499242417161268241890328640685372290529402945920851968503486693994532417428560157379608010175290382546106631944952141721324692202556432835069555809470071267983816126888119972869867292559942855080440030255188520154564920722630615955362597439608025534580828082292553867403073073302579008889133020943366417426457828947569775277595210979148136869402254621440092594431156733757400736965033397551573479759473476998395906058614712860983124829725927323997475518972459503750045486111525778658520473709050700663226661244368420628765366113358763589405923666694820064073600605425037696998959625414535199275442032616070073862505492539115310020318530608358476138718621147340512755992398963961199163744302847539624088779177008822921875673970095164650014871608654706295617970256781861578909278470488460730632439634695360839192490569720385232236050971847197130774966116247559455142322652347918676110269897351165834476032246410702841731246255386476415698947764803582380992152048264832799219851164315509322668076080142639638998942130800728105361235687529185843800798644341163513239535271713598725841362068035301131803917846889051779209246388300178492298017639966644751415287910617225136572064199311344650143303571942682090956187360101739005290069709244869513979675040134860038630531513507610658278445716927273581671075641806397088954274330636304079996619945489411907845070282897532532917476642453113372664821425800434694027016405603800851626416972006630502977594898415299844067329873380131986697900653894755405451616426876176460571650503765437568516574936981716731213608913057643328886049712292943354521359700667213792467281261891900290118638120280139740064554303928420217280769778531252981601004367485376293523698268993424524442789876534281445812959842880125097865554416046253841426931309801041534377484411976528691592793305605857738832257973322283951353377970621756554637384662166343995406777089582915091132613241688145425648049246235768587120651018857538504907264180848405477669966512642933265750547198660709086101165356538889316799730302139140606633722350717432214312080099895006353345761431464627688028662122632093458273297286648759958398929839361397380956740934667875063859713558700788073546536563413528980979954909332637007469204312809919073623218361815203337012635743955803000539550171504784331080703986222879848326891329776884174442743755532813391701634999350838902071518609354537716933607118494127413412371210959652933394704280948954294367450533911876541933514771884345883888487612563978683442752157714974234583464651324242657298427728252013163320763310703132732501966265308616544985715306177927575480423201990952699300796853759029042498490633276272734461548988231453333055891480329158870735365632660656528478268291001096150641924026284872547630894815022823876779747488330112995696000017762819183418354522336990962213627230163793170694983216045711496726593565545570088956964280761578455635010707091283484238584666524890126829128073981852581165527502427355201499019848904371315831640409070408228640321287154806415595476529196822860710196266856496084506530687685626430661762572708884769139772940465856396126995572257020979088535666708544896722762634591164296739266818259380300536103997557755860761505728269713617298571200911646324724710013608423733034668311324270404992459849356130526101926859441112718238942762340382261134501832222811996852487851921807679024428603769367538543939013997409609774760987813691722181654585125812685063056543465025684070374353247521021037331004561113124983738864440282032616319622940402287163171408989210531862215956187592229432587257954154907033971083411511716545081161503167679888597537938353653355622575793190549084007793723702613891774574214024850850908575177386467871619184273209156410757466048035470716147491750974684138261415092204786089242031971435783828258163312151830056582761938567655829877991268781891890043540610328650973847395502089275653767054788033162378787491011613048104622279069337719287903493068263949253325867345063130550989196596410951073469604742666353107019835859672414887018718672155382647522211444549127364665221995298332989542906925257267153527555122334689182440423699042395859029872755304442574368031080335958610974901426352644360560199531589847019603140587757303106162048619009899327224308927313202535029939729004619216386614554460083192770065230550960230744167855078917316264773265216079819177425224134164353463810248905089484356966167783627870596302611953847141014430499712795959902024959657829576549592999310540249106455887209417622269094892952226505198694588074100840186300699690354434546141525619990100735371291698751070332827165154695356444454590032291456983542149030408096207659791839568081283873666044502912584215784821577266883524378662968168983184084217291514739774276582569525766817262200144027688782602561171370484891296602417875000006239301666361552110007193011908654974663272322350773246852195000469783899419765125714934570653751018072686248651095209112100061579066236438054876367771278293817978438951262393224200227642924489854753869452625238684164145660904549682484366729842628862440672957218392263215443879810484802915987730690647863811709117155064290596476959598288021714622720170065029571340585758140342841780104239501415701872635723046683036996977672419409673644156914017234855450989350725065586444023464030059328710845470484868255507063346459271215666337141803548000296811334794165873390896157422250292028019069502482292536528547545520860353152819360302299220641561524612613137061497808018947736287659501123141475163456870752478424638411024331056836523111124590910708542587417122577033491368749281647023318152394799535671872246138353894949510504522955474238338242439119038248283659021023079406816631135243318033992777976965589730356614051436588667942520112244807475393357663731004799524287959893152237960620405469041925036052928897175626161560931772268744241743065721758935761218767368040130875134605630731310069159150314282246119001828360013586073201218642559145908402811949003664082579977152661890563113976316414461740158296610309122625327692066043887248480489151710799272997916520141143884874848669487664736110626003522954499045117884775405733373962747029632616469039397538316072318604657183936217524053604690071749776193729166062211913874493332953716615952587836968348253055120297915026168690958169724838408368401462072496908343629975378665473278633552629944895286436376888494393783092082682169667186061482339707848256882721022429394866186777395520838503917039194369155576040787897840653041040722215053317496201696857770743254722738263713730190293226680925188831733654360405379783691857513323646318472524056337346411616237714155054252273076279127500937991591937493236771516066279553847383673437774761483016736626024014464182282623917800011809340538768363570684760490821495035247885074973096551269417971888567242129148132008076259303751086504058508555069930852722300902559170525847337849926708827451217085269231210996012360264219336316745344084147107497035323815177783445101475284446081935727691140089085711181844279729486393653353512424756909699882789356711538952393720400989723739664701903597020995399238408538396488997994550088025610093547477789015705769768578586952302765328292134601729432563464868726479183540706017156775694143758585118991490925246978925301262810471758754976328755697765303099432778660698177734041434832694118439252498191306596407063111235421925194845094459304774774987413621181059979417895487112180174300816238199618504564722977575055197875386998865327681994095463178830513475707504678187575531465787499376188860725846802420648938243184350383901295000001686915543042688820595857170436159064273240806832285730148716363400054984839213804777238731961136007050758666413755880025132581984941483875687252179692473046148900872499312373306452766643230861702235359619998071261347837100396880897091932416216100836008818153398114231318343464428411367548146554248441783441358428776357841068360434116899435389040227300351221978341009371686116573452338551784151030318120057083635974837729054632101223765020793998327293252677675779796688698120470206806307071311849445100314703501004881873441543564103013324000933226387665638595476398024537293980264401808905856139471214527095960984453410966765198577083287077352984581497030762917636790426624795717802597723511033588508465227842579474136150327058411206425847359226478313750727262354825353487314666300539588322476185180734911808494531689569036331167826340387827078209631073297649558197648871935405479033420465136069706748589971036187104572077128112607235372435695874274074902560148056474215523816918741663423278215287184621054014482240196025932902532288803873585212077813258401280161939625930545313602414895362224834337270894584327609833695144258881423874201038909444223579507421529419362423867533943961521761861415699093496958577997873720994380775529405987364463408695300089552168184006087601498393008543998557386538470546926361192906386848675364245109439065286202699739324636421357123932752651784040893586294521243224975267657217922434297431961121800476118270319120568129316036257621120418816621355845447925296628366794681044805388804578450975239943630230170774419091396283329214647434004286033283060001048329078158043438588135412664872470559396811000492205688847407546134008358502514260183052882479950388671711519688145009533027393490727710854527973979802221811826118088178148844913576340130489991343449398823284921295242835895835231176873256333209065114109415265796407124486039378248559116870388429385553797359098303002139256250806763469612832524995053107009567120847990507948970096897919200652470152477134290617841585165114644387134414036266141148346611342799621743070449021999192851861504698985804278541572671634141509368026001127307993438627661240583241302706789706620129978456317476601865148394951583914244224176386558248930410722285374928945501275246693774633782331087982955774064330183947813109389571969213875110868761196600799216678817293976266734287756001572970374623915313991297260600762271592379584664011419535548987832999447955709321500460534094220022060476096663929132236299789738590573878460082362087658219792838639814198877348733080606374497386837718249904446037598714143029380233931582223497043006838188856867924310377460046496506098206311510951006256009853023250528547084568253855287123018462701552877589075099589784084277778150796769286739949424512566658440273103822027482038840174331511559598329073927911018714643327650852601005018881109945276273849666566234138617129868344269100108168102491882260416151527674694454323092102097763131234812140553972577194276881673008230806501328179768274169553786927463958939978463910510159527455034608581701491383790427006131202133720043591844571819884784218650622948888863495533884517155480768265470182989273761590796980912806117274646339863648539557832463057261675755552237558928906244241813657959622871795194838048271517922232970734557217491577811108104833687930355268346951500919280027038740259251916098065892953875155544997260549793595703654107671097865079029731304482214314065576256375476098154811307976160643952315991328016733791560850183917503331095573821134959737651310677434568789148980835004159518021653524865850368829393627709159046050769100949564743960158002935132595199146052150894235004621708586470159983879377692816834603890364186153385225114898093034114288770780001625762132914862386568698273928560513985035629998517669278118453804981046182452219577835028147159558285322296594220848685740655441274655328207639196385976588907555851964824618608054400154076071970575103995136108686398371909963245765584479440565202704605620951808310473875625454928589003804970013819040267732449624346792308913094490047189876579857251396769058008457884440304380140650020525792395882624260285071221990171479223499215070355621955290941361375548905081022076389415028949241849643926714542328399751265263884832873303483024463123507812186762092854693127484056936219585920675298613773057454215792160836387585170883479328949543051434062720786814537054395657546473543680529902893515582304545034684255244666425443285230766824911136437929826724762319740203527024483256698998018311596063777636948974315948940609860079022545527426574145386153034720960923618109413634076963407428600710583899928303549453470429183616750850464436807974557319836240313547333109861843127299950475708639246535182681229405005216694856941995960884060668474474188022814586842549745739706612640093048055865669632675589983843367202410666195981755935646920800371211428182315441447819320527922715956297415027998432084513337186564743580176741118544052081308613364606444454380934077171162503004098413111757341116240895147158966061447092534092339505107578146017639346773386004997422822181331112409724625906473017510523732007868182489115233092999770719091114546668387279472455461951783955360876458700414926200097057425003132921864281578804187692263813294921933596246199802953701979780361337641619518023402436772093961508306155953191162928913325119730479394747945168236785250351979097762535526975590402202330975065112417424156620881958428814749138344239247825241964670924523158293852554768013651885327638298685356725011643908972274095144429275437159354909021973689290752045322470170951979619734045481079492061290410849082454360322559075560691261270168740953851692148308578256805177083526844425855949166323679489188596517838285788627237378677181893639926366913031325389906199631551573983867792526781434292517716860774401978145664364891891727616919314333994909449938534713344617008147386584573881770417593780035741001720433969571702060079989228392845581482609181896384266661775840029078073108971890072829896312617787270608173814654674020650227331771351189664073651527377451079180524636086701482794056577250282437056319437069286915850587622873114848457065805236814976108854771687735345316927844394529035198196230568439801036415354024075513849476950731285297885206107179324824846986649044383729955743602874272361540414762246204140772798913086405049439574875539288192276318766253250223900387386199552212038407743759343441086710134051733673241079551455296599795192217796854177891736158963035028213332235869660743524375811930400797358421007971749388628879411041269543733768964187877876019873654131960842260444598759277459703519046212180247107223690453547291951928037425938340248266656117961737003996040270053572929556945633273409060345047180947682828856568871917757732361406553752596705031685016014167508387661996314813806393947781840772147841104877837386712170501003193712789122976281752101689491924302915844053802470532357888921164054051115617605765480417969691677913714678446001384272273431250069946373507231059028087540141052280039009556679950308360973331907617283621446385765639285822563770664977051153157550378871225105208303102493589607225808837812595074515392470221725411054199875509275640945537937457939012487535651435031814394896529401044625213202829692078224435839832046148232811558171497890287832829389913108381054078663686633789145067575095255118746579684798247611401406317250941485513070364000951666304312345935439269623651630090921929703538647640357697592914243315266341293188072352052848766852368974969881078633077105080739169820252553906342109238359895583270074628807968621382014889754527319912839765199443690809106238618057886684286837798355895443871507687278296481557773494691106248654259899597611271176752755484048938153200108018578293043244813398455426004761359516371922214341954983480930223729092412503959811585324198672306304691131229942976346978479260748403954787857944464234177408904889561405464600807815503249456407802890944903451490814477357045437397028410846865827116607066797676536277521307851820645975578155143994651540768951606024633760689413972463372824742878992760966177800642109930539935643541414196750078988733795723042420179928004622407708806301163558158559770065841845541307306498993150193583990058584726252947670682315860201538088285822269743395310302508364697816934612681541022953514310334438749280156020847386617108468633640133943131436800567244264610426147495713511576298497951145276140844088213761626520637641963569997536572063343240862246653992004556803697058204211508366769563515488092532720684068409245697259925327973281335839631397616988476991034678346300887593266652967786751373411352478164934048292180621064397059959779415520680296497495061803869293159340251072613900740845791839259723177026649944069285939894282623706112843710892816781559742605328925570578018304081730693078825549079328968362243112716933524839316764102246491341288004601346668957806395736723751380952693402512301023178418818204057871364322171010588745715206584456300930234761681237779321480023361127119259645881158320034386014903486188186965675910348255561877291042125489531973582731072833795995257720206527195315585028513426833572143988984467623512045912146589270298015263864769488644831670198989897530366329432983733324805660920236957911381831358324301531090267141599830184808017398461034851403995279677333815293501375023165740220965971170687041965156230092901450722815233788526526546346412343070859783933815897447872390935457508000721064469132036227988537632082901912334449081822288487952675471052290796251577294991460607995394732909411783644329123080992200198167127130894803199374383135737744088296634798604691877029540013654611550998001305064654252709119444716740293434144432472756266474416402997755825867574215960465519087058171036295815195014926493227406332730937762184366428326180756757668209199501127937854801195278337200793135862396109545328008540335565806263157069821116281093765648366888272113941701405534642177797662176113886629246141993829480063177348560226213265667410094289462091510199977676532838489408861336589613963135352558427477977808888774615325935079218357397428628425658131213009916083873910309108882229213306977359667826834873308329205326053284576784420526602713638691958441913125376619713337907586202133164302135593436433444563160260206636387553848449121949538118201600888330987080813952217261511486677316289615749649296857585624541100883325357415382287825881290254002105897021202128795578553211999683802894686969156868064505830346743718280761914522011975175783430793655622363973823032552956174234906709937617778217252623652461372728244286190076172977000918332994405512189848429017305342834062966036849115294682322032236734080375222269923972342192913864512385334842103757689915878148700309394514071560992180673272096627812451548613389385962484781391405335973580529407471090571303683710199906523332618446167115567045836364344573659044920429251513299088512518744435203217270371951358007725340415391843100009829666214241142661960733096982398415895717525341414393759301522374677103309303871028010833727365416074526783054891406351647347113619393168472615603933536678415808677071095540907785889605267955411500292179942691022554414409895741772339913328379874422319019658251522844962241452973453516399679832948526886097864458867777933193964188292110415218433835005130270256425185946849137884105860653468781850267313070093576155783079750329345129612422697501147984657086451017456767149090748766106987441248192079938382823843441515805436008086205199454298643217269451909769676614431555073092996728409868490268144857413042363211823392649502465650298074226500446976319412111343752892359986663453470076861233464881931247856785455293769835788989425869543717649332748016253839298852497869335633121853618512216068821916656700457808011885104247324399060109391736085269092150929338506673699296837409343933985141323308371827365098078084598963072054546089043406519038794724974725264343987370899971853027728862347394104678064601356265717993735831474797269150197534550631859244033893522101321630515170464319117791458823286703037296811403322229932926716098816953533968798177339038838300677587740352840110630126299962322387370401711067654662744505648772313884407465310147430705557913602780295818948648175903308726801296142753037791875615735486850988102740806235805524511694220833252278720541073142550863000096324545239368495158129219144908231144570873987983567474153995581160124237058243096817172824316922887396047053257458229690867664876753132084397974931201984275411587821985537806874225308140634513776178962893706750965388399132640284479641150699966727798587033950486721779119855710747477947750537586023139849477431415839438316419963739782962627319284834759369103998265287797715723081277821891429343082313322434204953898219081478029005592346380302440408989270663043092454169413460065300341872405482831892580321639812047904935558447628987103620892994822158922484930044945340177959682800843313685692984112645022133562787199933055841523961967880978252707045109177426306867311902602547653764677361815589553643878326368432848708887660580816099962891601685774933191175766550898649579698292928060010278975114020967025805423730882850075780796512296226000807852909831749443355415384329888629075952813013725382913110150437279548888094067019289451063121621191755266646864581663756328216186355498994821673355851155717432369278298856873348774147255781141594317901499198305449919367573139531296076989817400152516545880260377964592443515770594792989202770816459527941982367925570773129895117087768735356123252928679853344995946244198425734662892317320757137956031573086972389697443415942282753248708768194317913069957198953665807575400792439504590793120391457951544891482809896395380866094381500662836387200011989814143494785629873499960301522778789267258277441843409697464016289011505881635543390838288755668963196670910598326124604681924577408697871796464635688571407996489838250305304136949673606650133567634217376882614878674249555118190217244681794012853066689890083778423975588364420243012666557168129968653032444971861987672514146067087523917438104616987904791392730889206219633987763259439571692215647856823406064368932570191697846078330163648402116523191279310648672481333427577934586085794435518754408530633419455973832419335266659804621399042982385496151598487498618877847122987855760545584949666330624854089048439567060303663192712294683763702263771793019315963277058709934728982082335011549461922735581396381375264894189506435362946578896000480978494581661739559658528637367224991559208153062910482677224468785211285943204770306572110506431985463311018332485520466102590120888714490769907043339756110540932144657930761946170179912131042915043856478951085365064560664094739118353346276953692184272172548652154264642215193535511778839795400803840161479087788517015664162750210751621230300459404653759627071544046525932258073301657925143743403607129714761429325443445054683192271470895919804053293363825145217947233277993530660403841787961655121298263135543331855526107760582633486752723742300423176369481856959759427442375190582870775075437334297171615243734648159923045818871562989332778165806578181251221666583525029091480188111602380273639113312824753361699908950431150814769178884105180023731603843381883224409336591362745907139363773823603319270486428046878874942896787892191172884325425442356205099601062518218251011694206366893430525168058231934208170931717160202747374016153421612347552342675061433435747304958318028026372212442918289710232401992586250262985284239573288935181984652184376731062383633841906192048224483286789711500326117626325911688735842287657560021015390071016621803440246950706909598624208717439189648718859936947942797085755091219249166962829537501802080203644073640983581900575309658042355151597569177223415149007337735722014872010462041382505816045424435558050035538518755502847442319102606550307182004883055172436124305912412196483068431047924248547576585916720646178990984882247644282681546461364681412067608422818166350508106291172825918555210983810212060870370403066113818871543734168968697510341580999813582987663578734476816439626072306768482392641062656303696630956020524873991298346493331894953124681286766333961789913713550852152976556422064925308127203418824085755833962580123038763504359827351054593055988897924605793670091400306911818202927666487807647540399471943399379678823842554426883188717663469927811832293022455118522517140183144159898671295851203922659886602200030247575543268443765172185654169844308533495937382253353203997823188737919006856497646966775074282996906782021457353158682503659874176929120989835519201046781640639891296827527003712246812691950800111251610076479403863465471688680294307700111347577614363679796989185988524894472547906032420863257528295663135623764359683623313776915130506064493701487139811590893891049151611023137204361815722588477200608825779398324812893524919294882893464839990826574467813739957844140958262506581185474875718390304645066898043566251740811084044175926419817133586895811564437067863257838971271011161230531963046520634446792181464177782707521345988746239784077252399450480108635716753537478159188212715257000895742362161485207727887496474834007501885431345304958021345002581535438136182070248332908664329795102501318092776264800908398687142617425434040990496236616494738913858059257130785526516349681407106477835708827553239468659277046585168047036398366317772253981426171767175974349945298874390470109144772761384714975122244742642687524371487003425113387254618058683850472534351174839446668425510064193236338543184017314561225124901694148626056608937259654445096956689983633804068824623754513779802136343651094093725460505720083304343679308236608846715794031567895340257881887503830409913076999822728960640699815095912104606534306409170679690483924461835437709717350033066081208067306265527637900258933115124637729025437256669436605284755099964484812942552207420810568150054782462749581387838281886435551540571696373079188988937876106383434587965468654413750224079021950894944815612019099190601355491232436892811296986624836692321094435082740529312252601685706051832202256757283006316840893890837642857153700200600927927553003601951605155360848427818563501371763641684721574202349979114876016703366418904667796428094953976524580569312189582937798400564512759045190220809374899897836358267730308065753303503535279080586492827444442987176084208643830889142449460548955575784711404627972478995002146459560130276707102967931114600512267872741323680099970193489397900526769132627744374060289980155327445963987033477083185369642596307312208008595583852604999366537508549421259609147249516015326499354812196942557641317762031353237666787182584639705947247048296625964041728314744076743947643257079313692996681099332417797991159464169630828547960280819841062478789730178798356914195005569026932784742719152076129375098027187227000575764122047689591683615060424586806075771844419078612424101412863318968680768800151361809548047932028897762930385463322064422015297359600809517798405193815765911212107360756937883467819392513401748328533475909029136880173432146767519908373411139759559349277356360837924618541178403858231142094583420594242235673684281911087172366861251167307761721557957529638624110296182514213334188952714399549502606850611071681598770597113470527661242801675632601901838760012601432916091238514090965008263289537973402360326294418959260058355758221418605132471279596197005679519471899626206662448802763665764127910407155367440084997275668459566148777273499072380120071874078716035038101250979179930604438524893808760820903029215812380129123529851820241222578639124885753286278557685913891419569986895398586030187864438927252666523050564235379065660554591714433592040981169516340229243237455236632048652632730714626042136505335154439240393371883084490287228463872976797810386918973291738176351074928187137559227866796649163789045297775961484422247801324428754623369972296132422730605825038985494726432905418202427119531088577779629672440149217985267760162769903962476115478790743621581943735573196387822530547782548288732034048977017366598618358191846172147053189634410087399517217800665701304834551246643520889050222559984442897955768339011201368630576815884403148272952796958176195825985513712086367568547225820522567899779698168002210881391768483292590638083079445176671823692174570952374456478031901616447451181508560969116955112786359868632916837785044063290838086736706323821613259258737920626292584787898495395233659687695242318678183155321187915127132857238541692630845804359507333492299722715962387644451706431581991877898163323737243841565211056420858703755570507119799252164167988550605176603160264341186533000524353210855179299972875266391011265027042462764117437658902084057335587563518347011003447390913955586257708465405227048465930734327712119323229049786938715142939572495312188974772286558854081835541304075000237001983115280220066676674039572326440927651948144167729755730007411042087096681613503871195508453143080263560514716036091981772642803951797341465227336060031438259363884301125970198881382641000074953655529144402869380491017356676379928874714804366750499047654354712811957950708033669391980951223234966033841118338361005874618067927345226274632949623358361015163085576085053061992107163102669673270571768691020282628884452059274032357354021134334699910411984201581562614426933701709698285114456551839802390223523815997399937355457288911234285720973390510926870484963586222525320221592911464224344026221913952636160775360405435537955347843885195424281889784262294610301741177613872259837486139560351450148770409389072982446869667776470893440522868074169641606927687784093136546930347461283524655777569161203243169660882050704874418861245635655824157727514987785573778010725139394427975490632955173318601557461536174675902239118078463052679176319599728095064149831947245590147172267243868459835803006518878543267446196250979013731262422748241295588807981806418225290234515086320454520813870969590998006251699123167873624346618806355021953965486894949092366966795775827989466298779660231293735159950418946712758739817221028264466285654147876046833839566959513252924880959388802447819908059290723194186343795555158754461932772095409902504563888520954381742334336689752157853203745231825827703833537830640027045765175334529732525462010016298400930794053458884458426671647543155988732345137322292295709180248986020528534698576448765209944260259641128640465120352147311043396791863500743706940801609479249035970750560735327802190889254198804452922603451270470653152406120624629263905099683612682785188808548092812725969442121951720529921678661780742148466133689389582839812615616969766074285748761323885504932573361917071867289364366208565292856772182150245764062806001939288872762748735143520595529658050227439531258247048582275626320129769901935279281414865051631562508356627335607879403360848618335256521086480604562728678534854160062758749515327668369808270883274857952142211393659033537693878353255791931227447548877636333804718403371012208473000319964036378791836835534027282640197767027723711620368886027639789403018121298397251125638276424937388122222032427126232509898282907800303051353532890031642536251071401028830058084088269556690459173083606129518541851982932762614647106444268534410874452980087773725294458772922252896899148601578087515725386785255514803562188435527247338954216302708538330633350069772595849024782177776749559965459067882652861096183891829176361361765885638856109414724678389708602631502833634283603602405735346896310831052721800521832741839963283725648279969301173861281435977534130799739219645205255764846510255065972913145716624977363252427693821148657308435615062672106136767107699104691254258281796190522018493590157135854542749077034232651108157944941134316631180689358842893157099496324445418147484712583828061638444517175556478460652378000722589621991052961132104936817704942868049308676535930882832006914261970004476969654761398583088926719253890509650693533921372070310169553033983071400951260351464464542313241900640670449638592584900133492188686938875851621939622613856359182017677725990465263283797573075288056332769202125495270822213275578896600815081426266913521114335284091490612074920062783402094952903887732070779920941286807485268725653109040914035252145626336364714777083585577394258111884589045336931940243990496633757948061518289906065807070971111556010660220002031933679549995031730599292753811585146766653337327259694330169408848025618163425949393430671826599443756655053936700381878222058625293452611567550018218731689652856670730062205635713630222579565344245768978114512252946451958642236898819024516484970993327162516826272018518390167640384079525119102790657561503337892894852921365819503717108468706591615953594548346357205436231510387463773503291274079496816685689504360497516922134414896996853048957679015510234031371605012138484122102088493716404644060721093365754252109573983115073652131416422819503865935094377777001723673784777199447820786963378857662142684991222693562275831517657174771970037338159079295334960143815884305269069944760966603742423800338309512041492023161489128004809825487247189188915899077558909147225814123299394524665966517615120610784815426943293357045448186182795016080441061424453264152173472609168270731319846188488956939848589189998592099580066782579749500994581194245081691826941073368366636634474732266639683798650633677509466935479210926794528172163421179251073623157530619148171739680862699709552595286987462795392528671404564864153541536863212570944783569009873017808535069261485659251706360276640262875770369258679683400357137396489205576393089789649927164283196433262622766468338821276731107670895017223984403579358752194630816733549947181398535603895116121727672556941075020527711397817592627394943858701701082576399188277107260470363470619302153505964459679028430840690465271295369444827268791768250460388609474541167517067767479626895570715378001017850098613007107674405483864493875451961829508864858560886589895513919336330277105432787137797408979243923666371434365962638942553513856885664611438291208228185260564204629178320229172873718967467478698121241042216025836675319166080659026855895251364744520987228855024099715334609595844087303569769587450550570542126234521289401065691845245684727749196124997486994816520572092397198924108440347860759200228352627038736078333883256580526055882220575364123267827176292890551248432700557873311639319385066308341864844731677478701393663007483193029524288103936700559703716079802983167588244724868564494511516297242601164096942440091270786051658966160046167262437523334777163084316385649504173664543843790467501690590139467629759357405878397883376114647156194515719533251177434419104415036905339563870057307881911300861201808632136582393688262943367994778555538233649323732071351578905357176069534633786984710693249220997822857541631967103341164936581058236226735047799419445887890916924726594503097105934339916087600981668564806570077615671622925367300800667109799780009893775002166385949356129442261026318676011691016163494059063115953102615685594886298519718262511481086399173706959415552814375686056259623216664037370892954881644310057512194628905129621044563267089052973169628218590007700513669140405287099852266456988956140848174589804141121781991846165918861148650202821306017472045067254427429905425983663280883072854689016023153018957610277298971525191926701935225268593937719001259038486472863485141212048431927754832140211551158168865552462074776408693145939604582445031541434203572947719144077985380103194386590003630991645492914760831178346540874009923825401651573414172940341059001323270547883431226461245212312054646419301221436220128510539924778070800817188294739423920287872639921526038653642618370535394878835308018211294831032228691421803695736708514226536113018270599358542265344736589154366844393979537060349205114310885309249172686634531731937085670594511467002327618496161494252174321783439710237032046570613205204257752729406311903117094015439701915322502377708562570318672906444109841331308309572016321747559923167607988705113668665928045136949012744675492468927707894070320447548276082387916940515375715292451299639114240047159961016267291007987834152747010833715144261709959410996592070365673028012646224971549015788735897030975676091248405384423730527092423499099638183860966394861002969027552828693273505166323722272756670807958592382345366356064963161259597878335475312094454609279791740373938185830760368088937995544330434718094394983856469934933269135585489267658418478639622984759992007043580225314283808730788828459552336506421237594887396734792863488935015530120122274860872347780121883083490111579333086575430939668560804933336004073819663507039892798205911792564930714380734826564078857143810818860306650947755494721796159904354557938286332615976443487496595023051549473770070049762005703581837542483098225367597770524787081637686165698700090284771678888114538732237229972089024821330108620278257711808390752245528802570149053529557459489909748326419069526544970501439986502992930715858870876080945963622910411239538167271014320118737970296666047707301244295646022274648149344281827388817447061768103737800540155513110292673029678096938331544718534305317349169609216978662248675437868197589777001300017253944838354433277005588371775875572906588527752928715732374674173990554441275816946586049404679661645945836015003430389751275488882246480039222466088534077778919304980473368934593319656074775624998156190153546454356111182656096746919157652269192037633670850078468371571446331593321123951143426123910408274189460615648765043577323005604489975314897306949712724244973014523904241290251010539486743646200423972386461480472584507932679589759045641033893035343847954506835772452611354884518478634674754974840533473270949194259341977244393916333435901091316126211196245766989954258541229903904703817756592464689069551123753819385525112379598979300847363873502098730217400910235202227687632001891980818042371385609553044590176537529907755833168342636983498313395768688002205731293708690718467757848378377525079447367701644482470124892011003519490232133047213462889560460771090316949930188493580546290960747553197685729697625622521697762766955362990030098776089851849248949818599106470342456491124640359086873608528303046959532024561715638305610058606027671219413923020999261063518714771823480748504452356987925695786077240813825467481277464322975330115700299877266883242305810472163358849312258291057470946430226714296399384146547764063836379171938479989341609097947474339025264469879505834501675412888946226203141979590808110792780110473187544607648908281649186448912963165046032065310577005601103715090926317761665607809302706337735811059708178475028208154849694968291401097562536222717027485410760729882026585241650176484706827922667827091994871775741279864297483360581538882834403786597812350788692633574562266637016367437978604501843742617702691679773171043486816769091168435880353165848776530673455439305015639142181512926216412339612248334519196741236364049835528159537592838168438998968664288548937343508648889252424154284254686725175942678218760190024624685246081033838252144561553971045824770966917882948053223407404574921151995795750783995716255260956806104757410206932904033159613107946826538873913641912009295178663140378293082987739385382319153853955750951720384552044739626849767730973707461067425888822968210541760343333242226950224566271487176775108767822172268956476410284633430247843197373742814704135598086302047135107717728550023250106979031331977984812954748790148703707467294499691009976203144591843199914556198366328901597558682956179288490087128284203636514076113746651126923052823116443150311344308379003239105045948425385375506730115748859910314737546057937730553058753144888206270344657462799437699723130316412084790873241233085330592868221638523849315007708042580400150021729834955291739905894351046065411935006619693086588262162258750921706421098793958409469328275209188919760991366925297221496213642636017005824591278131756330335852992142877175107476511336398131727160212657116660875525645536719057686554369727116132544087548290259195554485234503062872559073668142672563101406256968562039434635192758414177934688073940339429987736301947054674506423351742558285776110265751949910445737157054757336458539062671119158304156918244938656959147578556254272939373330797490287884274755672015113746631877744467712812109662937835721109072739073900016308585127907326815354181168937135208517263990206424403003327498372096172881968292843031219261165002719044881190473816156437768842249341693080864129666679586696491948357177210657896618964595552215502323536096810744957294828470418315124899457972380347783855105028962399587931923374654711834993984016281699466297473309631146781066904236388925377594364165875414406374577557690095830954842840229993174249364296277478631351467178416012871417733728890225742249155417474615431103700445136011680543600696181523986982547786019599314914789011008501715594799602129499098338462498661037397640908275382666305118473537710492714400091564658639561254697953624670971305630945861854934325289312100651614666766215072065946664727779782515019107343109870257236039340860220037543196314385301080135087594173558224780928618370143262379582105694457537810379819645347432472411159003895921622457542655057286192648690312812539897909373213194718396010740601284416016575403843054015934461261164597666287494964427855006340059956301948279571346558907139534263916346615601953948518654783902681709156726355421449118831844473318155302201257049249665585761634394988041445716781063484053193399668962211478706932774156306391594042255935464192515413947090709050105162347071003654754949527194199120074806672603400995496275250771631057253618180253244854573467393538032857240416753454900601380867085936815003328533020066935004864385713198901972065082891578770005687336281289868258609548024786701015734109882151109947137092728012245949023898597689705123702953753513770923571334207288427042325189697042609117362694928827138543743523416167839448307807036620530829092658586596164358452763829732139303341251702207809475852178301924290181075878290785204603038206966307868637367298315703785252004607537480569140889805270365217000846452325659855934050388779470583323739888837755742444031053990848729971672848001373458679794378036373417807389427318928130188219944267328840801311647760090007369629635521629307560957479384013074940556088009684604100569777345741804133275363565953143209574647919006399955457791371772101623148598965628408814416913995735242438921700827944502793513751373449155154790219298151412419991621083087613081349360318070354615096228874838284391758714585472163247028622025559033703374787622398190592868083488101652481462974395616676626902589152594452121253066785885692734161758493183382601826693957624224780738251493402093103402068403150982097616507580468769368872372910220869175142036118792056934601653270212752878430857665116549773910006499196463014439112997763081167093253200085396413120505924939538762707483361173417494158580208139528647973444782226979117767551626140575249068532301777790810636479449398555260605210108816453373405166958954864894355388294358024583295784814977801870163156216627496848402513838306447002667176371343918179414461210816845079884043511869890420497917082955652818621340034098196716007141526661032405111551296785361420474007230296063790984268938685294479822925116744218126804286751013333695376749532953618740758608764366740854401253226867306184818621967783042251650978777647159246758564428829801692629769865602397883983021404841985627598262696388843615190835529165794414312530068377732132748100772696704580158619815034500342307651620436761180883870504536496895026735918220391693175820684438132130809702544303949583592710449112981200731118829972851783026704815021422881350587358638816367234004263032427409468735912681848782778148326438240130230733555297035008818519857716334284876821642250890447881020860195766273167566417308253899449070362662852084154918889387017604818673264588032552890036328619117108110779797472301278497755649483180739098200498104270275229440049224325838084916243000737255335725478743301710505927739593634544364800256030283710260279459849874132557837561704134751644270390899496172929895555118135302743082786239571178222080163286555730425322210420638326800361244207772322855722531459476036650719419299925128417228324113334857553109655071648045866780915559309843263133632926685014722603813817428087826646444407005694609061860712669416016361381130366519413960951471164266109687828247392575519412254777112880903619424158699541459311671773685667846811479379097049573534052973685312603625353354532413541814985160718849173702359425411181090946049321931899078637297340784360210541927578139328080882407271387593449707005491836410686701364311669876395134093469733325353641523324024528377465221072013910203675958640949120475334693639618214247215234737578784674852515903876500043179543308974559817074160206423453530082430180972112979193792094382406917687405753819276969995776735474983264585163984021665490956620595368582201580143667788551567009412816866126492899878571491333462318194825358208337025688989131246374665258851439082857718320978726130686680121710124407766153992879783715913841748613341482110823983939897398229915108731183141078062231833494382603445794276963226449078304549652284208581784096777665326766015224692698475526021027699340666158883821226772547298235987808591806290637586981840168402966120125448219720168598846576336916765981553594961674234701150391125123570303812589487475063229506664667096481218911630569733031176113207707750067906149455722024232158985116621322749656297281841016798622208285283696585543179988513087806189212872499376102831201176674460877744791076248530178423605529927122344518886810271706200970823307938819454727084034420355747517740882918134321886478674772119315986076671360042312124754399274107620482354635089828965144558628199641448918649092361336157160709039079773794163964331438061996416617183127371799746701914032729005787110794166781616747298203313889630622335613405594779105174733299535039172636230257477313172275161521340213604519684098371693439556251314194530376510547095834408311996061200359393350678198907286427387371367113542492886870819443229408585879364944208400874492432412972569769525970663637159429524625921326504176215048461923519207189124904502602474041002556857728994186326152815580823051540020272628646094449568672734727598122831059312378789408183951552291470710885973123917412705375670298775710100648150291718488496268545682036946649037763384232538744124563586830219429899536397444480423751263165338624842529248240351978726801507253293219423198453186908789557008783831226998672057267013718219632655509370729382738174287202514677734190586386901600964526860691478653604211059642834072665501563913608355346846819486015968800702743197791928372813870912732503477676358775616185363438926226201280670398509376195861332245439940345606401195466071952587741199391580506705398078641130012319872444085728271148722498737879077367466840185712053642980234700437774236511434577491654043859802583982747204987205178701132678423445926848482192871195417143857681218782701773984563398120006149216209478645784797132772262382294256398494839956682716578282363413567364916350882789834124408146103578184858568880949572220834033644566368541722786857473856625665676125263055018259448964593824226262805715712704011287049449488912151553522172854908789392595606848304225250378275287601481428819064047829708254919640556869447261597433910728006121291670279256293927209197397180858238841756604088843092897560915192548671576440257969630361817642999799504552628658541774475130811072960480852932215577432892006766524571285569920605745030109663719948502217443263360945236801158187363222279037648100905397698666773022693307836651519437243611827241796607556049606645380122062922837560418105836910486979803299902750466444801250262269940231737674532388502858904826780102445207844770616494489621055619010208557084869467323814587322405767979254183627189454334422721585478012252430900341003131742291933663388596090129106039054984206963862841368739100748368851204530211564204423308451982173644113969784511495162783767692546029278947879762136302864804417948756353379075057163216108581010365406688785633181922058270407742140655038081540906784068473499593116244592882709376575241917366386536260457553194617552814698893976124900273390724189010074966907273104870572895836254120245975102062868989641010742756791124164194392028324297192656658062680484283198650075925932966394281496441077010720074166270099034418476308605092802888936689159944985611515836777626435888688667241591180662251356513319648747091054146908368325923674528394086328856584768635111123034146347633670982595549627909898406610638866196461566227006059574556733300187496621173521468698433437178867658734537638536824485977742615112643611645086029511727600178353941656447805194677949269976374367501825328297093675346047233839059521040790487795000188462080049816853638753876523218098850307288112205662983953084847453995544109870346113927655893874905094193277847760863758858470821339855701532663477430524501310278599938395007170288664483311970076266608601382742926320417799992901122643926531892603182327356339196139093743843217563695882049971409549144110675945998542424278950379277786349675087715187936842238351970910002359492502816210890313648599541020916285772477709780696125990947555524844216477102469814647504684084910068998587913054627938626406434843047242948894739637947149107409626476892987040856046392172886868798550971314887983921695584770602089006989372854703633602090082826310740888867696142384417210284892772893608298225269318870334402686438655489415233943480934385708542159065805581307573168036079205825580271198184851337470345538605838477187658183326942000620670254678188676228455520861559843399540295252027140065771528160307519595551448996464492005935441794942512758465015662176718404394625944919378025483001344897689751668349363845375406715954522787213653627141781415592071757813261325086682893939784323163664266912646531156692600220643174330396027535625757947286727492352469382859423093208766637483378498632912891321037458451031084195516200703645050185318668796501325323851152611176833907148916360712062275924685239882530044682485393988693305207996709652917608011331202460508301803702961820972306824845195045863158590774417600833558130779212966981971296461520172437767839325854653190409816436014122538512279235320102816769349834724422873714867109261428912440688331372474330481698413268976792617823167483239680037937308658167885360342888965175633484874385431221455166725248981887684818375298369791638700323492560279786711293932261021349891760423086847926471062066346777680092629907619845961845040836507147392085327696036788717418931125027419185130860750001387659781350103167576047100392091762056042502005531854111910800748130441872067133310351972148948359235396081930423700006086277273374067877748521705879757789394329168033481993821420039960247102785855470040117194350893067029959355272703823232603103014363524332079735139531861468091011608752928081078474805979914195217296219270812132233592951875166065199677110476165881995593949571454495870639301256203972013827707658011303141787305798263401885839045437436211686236722956846380823355701826751954068903878630283493680025301891284717648705459989136600967717575524623106213092166111030663136418609496347999426289230387115955451374934344440422754283882212615747954269064410141735744573304384989545289553240807968310158460544965999740164519336553010856161160551019552610531781188526547365856960646622516812665288285251370232786382269146008968048130281251605677961832747145862939079739991001751617731142740742434516236824355494274252782088311616585324191770637309510891519334335113968876052367301150485049260952253257719190560580442305239139998910383227710814896628250261650802454765783825892294538645105632673031592665932133248178671427019311309021240065314276953873588861001314214418597051879881770635310078606574958248716542788838983554675710613364046040364935881978793610837084061243722876720086976628397081462179476334269658846123811301664377689696056972453509141911885066789546538853148516494910017668443713226332852441017869403071786897600587143142774132511389871608314517432337285081435845660777714569626700502158075276024827954306685193709890524209850019543594333308614595470933934243914209724527769188324464643926363502517688598134542402427397272777066196563239753083345477682693148602116110818250943351584406307514043738805642350726374313521398867671026704541240864015214349202566934694185985274413362137900602713041473190142719025922219017518601714192323012319633495618111589192452208554603911853903489403551243259784064749366804496720581760834185708241280105347534550526954550334151885439782062779244543176853762166812594464532297452621135277974500631745482312819616675087235062961926533835999534170998597401173185992925831499978647792982207307475575220093165511764870642208824316055049107338082055891054129753388067554880005218350725535452356528467028119324595185147643894633168368507647785707214836262015408254979951211068239713953326408798138983257216410678733814415924489657321083037696806249138262091850818988989426420965297216793927458918282920886181343218388425206690714188769384412341176456686907518569971554420431662711030291370132321898805605019027745839596488717684599313287601617904269684731664424094575088543389115297452192735131046155287410006479430338256277713098210537857812832013059592916387044158275026333518519801717097629566537874188703332391057833365767955985425220053627524282482493912121980694101904104907088602547876113912421070079013780793036898345505577846449219645280563944983342608449119660009460327020185064131485708881020234841984612190467595665013909554919278461627098292965379505069393951103659187209996016043426709826371921913377061766788461146123040288774208828186456738072682689063052891603928717143436350714276833601776569044929718161849341190798921529333023326418532600939132402311656729671420752665619805755842552311348231006493114236188455072073466422332896674778045657116869922428683776765592501641173320385676224939843729520704669842747375447226291980563324243323463204763627642043422423675004404455949770496019539590204510134372366737442502268032446452846562130614300982470716832937588407696861202720686500467198798630213871943952998861987607368255264265446264948718479029864640052279621895774398991807869393420733285985960026037005686665794772007598412070575240334965484237259735047755552272896014979070950544285001241566561670037934119797140328048605010700723478884347657403326683596924712289364994909940225827468552095732198194779812078832093586060713949125880984505793442947621835587835942813323067912954182550137715848614131745239971697440658417675158824225006440986106333009725036741835468410303528386061277107478279107407883491689435032164305997417503373581616512707327766704789982584140860691224265352015413053012098735106990030402062191292353362999626412000998432963303100887242325909185515500415551759855688648998500101249579652469947024373868947760283145767504333453811847429574240297065965733434833335508104894274580523221242432417916612890844702082436400281213548302769878738489933264984289156671095235070933811385210735442418993389375402275925707471493563292792955726930069708086601306427998008805825280201290350645218752081455546887005848727117164634342212898138989419789751929085660122338695492468322369266759598807393164483910010546580853998512138612165077297114469004325228742951453439050848032288109509477046545429527994428244469884427018101009122193461208942911046926337741525196598003782127220131230974802330406524527656856692054489212513120693702572183933138832161144039724733194550257034695853468009385076345520962148923112570761405181399207107774244582423806327190730248358872262826867145901924445176648996928363021127969896922404248888355132757679790686543423147715014500375322443724678483377235146036042156048591523994770858647560502131928947752706345844291967516216006201639083828440923616618223054227203798311213765483236592517944060247408405612735241706694084911079678411846867549709441212842711863434150441897305175571356047738726462960826471391368315352393561960353114788225623220866146752705748977701884192244483577451698635618767798584927903577171158803298798013038516269139260297864722605280036374186929945949760883179118783699322646010901809261677482214070352293477358433948686144343991822724575394136415383914988011485730436610907019515302647892422492110739777903526563849452671076754911796747268608710712207473492500512311098606653826463597316553115851709609840867753948725731194479178462525549477522729461299541744507216389693344880701834852817948438159931952775423903162102472347701093585561571291750043092977519511627266235563951945245377569775730537821523481980109262877632684151804853409900772899124426794489986089795436135065660934506732957812650444189075158485426841350064420889248189388172920448195450784330228672922754963199053776799295401576707630163458095085023055822823062255331653493203821680905128150610714005689639765398325083214377085599319614990050157922861641055169089353710122076965378512889458224972066140952173729902319052366185362672756279725792697694933840481041493988363974111006501947232942688771757502409284221894542480992779800340642559604945228363430522357555057531122242206885674438292453452326109472168039912966623385530307217455182904286142377859302141684971920539590417340959414670629139034618470476178910068346856021620771867147266487042330426829988672293763429606625701497812409021849200706153615352864897173331010487111361382356927150128284329907928966702216002818400049570945025416121522791974142551065502291827234607990563804484532847739164476602916830205546230174095553920818825064645942915512183347439541909992015423694434557502970208975770304578465011335068787689814741943123849126998187059320940089965927865934521606494411914310632702573698990765452292677611262116962423112138561020200920686860031728769203137626150802341092956000560134171545437940243019296941488861032148090901045938631080631696365003486713002108298450660010671743013378550043772335510358693957961250462678203821427614541980176766939968685203751629055945460685195558661428808448992167849981770497300475996795144285757944832746701520494461424928692232278791392865451351583982345900278323157703374013946141555075749966309651510296298175779630170280748776022089458091606765884135713541669857090767650599804528830153665823538923826079823692801564330249279065299622405536115266560991679825516530604480463222518138557163892458911181059229884851550205149412820776609219430644107486090055682886487771543509263553111379020705993873325823432500478905384132534326446245425158517156142427450313897502616350868413805011523535357107411633120306665173541981370282305783009741483557839528915192637042184340223711282550257252121536343746103926480448981096444984215631505380437692218689144582845242157554507348819743068286857567807044576337090581849504240343709952523321592453231987880301810090763078734841025127603173513964237057205530214479153384898176792139291889883708968867389646959259336412610710850447134518528952746261856884971808155933345125204352037462789803712705705415795384639785578770854506636451392737465754357141129063803003483753644412391813056742985848588994293087346222102755124122090609871386486034960161306350075601553337707333583128859860702774477346902041245370390771524637858151474649934479217969148133637256001105849167374942318892361218125893311632561699310435650504287737103235893966898194944916104629710527612906551810759593761880814525719637857435358384245675629275949096715898440879723694684382973753630231284958630130350197637419146258405930534866400420523540437898117939520044038008625021250558535249724783451471796555615391720826666549794121365268317675973907572739753273824422992319630156725858880004830744867333048122118382943752281083428088313685880296644853524530142060084397401852114535361738557503214854348380910987415656689872387357316081181586934984109075515727556220750194468202516743585177100281861555422364907495281019648990416476741554974252289519416915047387573623037198218351673331585186319713118343694422285957723481378023142619824404321760130164120032999770990055131275377850478549026169811169971525727947620500402409843106769754160982500087599392999823453418307916850996792025609423170032681057703276477093838519401257226417390625834010222284484183241697546484402422853048546040651619374348229084887311317891351579194589962884712880081513458418726538063224145798646965762486109685929055428721445094383875970542574229561038410992668236928715745749222941937962201123685280916178255894631822045161079662443040339771480338185768930960540964918289716574728871289587941379413897659125775162638196600229116524522033930977496729106326315323859869585301643450557991883447498840423828294296789755312789504180300306845746883869899327044530969489834873980349221076650241218458396883745489726582062362393898997227866263598763201686415375124359750671288475813505490574082777416684327695488056796388959094720805847188357825275963656273480865897312206957952497328556396265055636497065153126270946703325666916207276741898698930144789108672611720507407446816808549209119184519816424092457828605970169905948403994711059892378160321666013700629416456780046484828293903950529521666142564213380294200056095803287692438407975305740786564792986125945607634849979730233134982960334069009510770018435517177560311226052223923590728567675793641455561694788745615126657029624146777994174740654775256712018481545829117968430732246749324070357367243530051119700374916769587278706471908118276473459230701196437229909543334561101693979489630530787032646032141249388992263571766984975158956908561710595671516482951361815143796302143805813243090905842460773410144883366601698708424189602317706477430324101291599843105145973187551800793979574526544155860837209799649424783051871340785891126354326011187408194129116455640516340465592752731727178131626231891349275529635739446482502604107445294351324310531284864364525020220181956907399430938909768355918642600043603144712811743694637719669619076685096780254262363089344817212786909883863642166625504161420870372275219488987152622795692663701311817896488415344701940305536211884002046737398858970753286821885512261717421814896085289708424161520413305574002454092973530304615699668031966336808750507292742115378212757765520013720461492216768359742208789062913139127573156564328701337125233470168353150033402513228305418917466293205172360434013524488635316553528828033362589251331947901073701838012243712459774383552537802466619404731942672377777701852669584371933271579397294583901992560639053668125199701681305156703619658868896005262432417871180552564373705887446378086927741511970743110968569013190132540693991625665431501456266255006501047573943799336454404189049239385061088113752597058619349884197085609344192844167820223752239639662552283452219270325187906530808487793750305481017520818113909894813121176860350574639386306662912845034921783686657549790353292541570910322295892743113508516211842214692366404767760644654210086420173113850571711301080204353968719208586369519935686166451759433495886495935305471693622404241683089681225200615799573720308875386241526320010113154801050212956159246749974012648848311644822602856540112888621899602731894016829155047196211900190817807053182334670277814922191088960388417711153358918728117514327335181236738716051456744056816844759135374017180622975889810429402945660284611437395147987947804273666696560570726559006857996741427186761319292876875066421872809269650570983477888560041952123441931874778200412778980681121435799561941241114240471576985471966428432515704053406289913693845896310238690406871305751180242733013722374511327027606870247192195650447603115853916361385143687922380971791535907762298844110775264397140125899492639063217375229935223575414693065637026171515706618284279747647615533521831272210992800033253416146543170980755602646244678657789171897224936219296090649504894811355256652224505824730718571601875342234556229035012396705393567218550884467602353973328228361329668138802735196907366910059240451750768349404189489008033079958841991122168148251850282593683842661725356377155542990913840929088530552288771239944550927807093595655415548517261522710095848831061755985617177824637208221135724666604336209509375794158485837574234073837610679193028547256203832066787072511802541996734206137200096717721376525873981142155463102691843100290474682311398836502582890609455266909061190304020588202222923964402237075291687410384719000123766813173668903043441996048384193119773132939382973505603048807211216719434226676491207216968324864505506120515640542996869003740291753212729436109770891814100888532401528110740311256377326677236468782492221456741122997367710873536928438466685240265119487996550171106390922976170777005321093785053791047444984033638389817360927045627385107323028936548910229796841140662354096905257484585526589856983041028636439112601372550714879007240139307499775808790214383507833389596632535602334422357551387861124193985383707406681025035306742317072383786517115209768774631609804283017622943865221914282250420118152050612414660778903052882393470554242982795781870005780366026935808035894167095814876847067833780462297058040138544533635388282911889130605066662155439960575279215793081414317095521890287174448578369808021285459803334481570888666093288129785857469593067665884506550205929315620401530707704441942636012386915005742275646917941456964442690740542428073810632537997381911741534498486888188303159166399066426225333160411844902437224140145629613205548980037704549759971852925022893066969980233362972860162713025451063516760167514566882671115743557593814759203868910169902439425047738349793736238149775669046844849216324127749977313353754401534890584132441114394049445453171367902090647672941817686373909873255764817097729904205159929201915774273430522269901166140901084259989706434029360433735820305914262521541608763962624329320547948298658224194072000755423955298312127267904110593640448629113809484084619742738941412956685753008909014074924436077233573269618435850228700624687557385450002997155456207933910538110974274652790675930562440005422047209426246572837006083648905025307750592143655202164326301519066760806857850720498121162498169792375584665306787340208761153854135246072656718441059258010651818837826582289010155829448881695934966751914683207083435617366726230617747395606302069473106915983088946884220334407806162555659795295425086018926366305041523346166345702303182097093945938161220215022148052472555805871667114914095380070735833248595549672400205524531222225885816164370080667600037033068397235725127979519305660157274470762732202835040790636721125728042196474572036154078544066524936757587356540761220176906886017892117680631982439579607601845451227751527548793507325095742337363626408044387369360271133817276030153045974065479756528242054679034662378883893265220360274086458325310175381976998079862466073778104982989652100313099927232915223090045636591720650084302523650097569029801969463168527765868481240480039062109688011170108238923933602472626846940297527171873317516836675162830268131189922738496934657043420586405335456990477181520236785258344011830737318693829459722761723956435714354560614089176797806342883631454667011168238332620108391284909808880498731153747776378261800366889187782226286428958282142419434303765304394175511126844170027170802171071654610931944433507537672481154990054146830117985544904982241107728978550474656549012553401133928067933977701647662388834614269794646083380127017089560072730662437742674069213123079336329008433215764350061331252284083181740667994414927917681062151358537726703162204944747825142134765548144289405509138421965152823466028829678290549586112315834818522008058407475677336454326617304545441606851336933329301884457948271064239691546141606411708254016293867063742411646994600758787550115268645090793064412922844630640259023043840843976341910975558917630972817550821062031216592612156043443359036149803470403567222227464588980736740958680977277563667042425290596148237851243158650269588126315576936024370665468104571028553443458103369080105350308840956360689175837433587958999094225962718954504586910266712639461422573410028784226066231699945234181857030694974554606215657641535324988063046546739966245673401584179393870066417799583343676370949432819501317724627135748867240909848893603642497350607090187138760342015118157945698395638582272480191731014102590080146124833182130855623136623617241179092015042872698509391055909727233773540454291509086468458607421406585438100538382921505355519878475198988088852189913478090141570667704215363409010344455617043423220426159633724228472966387230082681687391605347584611273612171039132157724864816919708929207122543537350100433217511623069583304799006632140108039754075687847794869637429548880217387959846064671788961416918178240704553224925000207752358771096549582874213883184682023428810928522276874329882681334518310635295257330419565471493704002712716105959775818808097651895720306100980915478616257065212180303059173820274561606305674159464079085919832052634117606437958054684321060716674094541461556670739768354588558161813116808468734333934906641043178602770294163479971661433384266067825237067566470849192661463332473579161581300662753692792864063588464702258622140992169127581096582379152988013844484020002558538542131181624830251522704301456477953664665861910442864761021436519529943202294533599079501545905538179292934933227303400758732076082716509605689933438433303487623694119608198822262729812138743996924469098225523896631296739850851701641765117698907681643968534383896622928649104411470547142796576678535241027698756583505892647952018208172835658403719825832117332776578642022199813927865967417129885861207370418326244316656338607797853962073118234654053371090213454367436053709512332865383229998524883594434809631031765431075348019124385131862262044551744758655951312253130884963326371987407788143402020036400085185816370163259350140191971545343517652086139962396938422783762184654676383611960093635395113271921096945884230796614948300252821178502222532116000699914384487263035737419830039168091960878219143357056152777649566943720100283645467573222712139057000232435928902809322233616751233409071974642719992506954005644538316752707379613948893092126829394691884905427425477103650822445670182063497962739478191705351327289559842688198662719537622153543987368558314789719121779719811270201333872491483568950130957029605925796972796241782025822211152533866395253373019875174071896363447226930142910069711123378169913206931953334638746723628093061454879109079733413158566791863185693297806810381990869945660082822972949398052246244022893768818483027324199344628040624349870990932852284814032063505610898346914484452217516991750340569155376060923846693380924359291633635189910868565662552671181022282398128619359399372349043634188339625167187862209948961240971133792141665446986811558705905916902570361106101191987334509028302727618152729815154074001511883497022514863974629256955095925335412558790567199542166720529249634044994518543953977242389056665082880941562962891041218441587277306208445374059160361788813134301835247227808732154605372452769332398302886300129380024916674696129226940446208995314443619283786505852991636006822238878742634341272409903314520252475478615354578757189509644527330175606852706897852213437039455909171000161570860292263348933321349750955540235170677852635395049911835949481330686298362565511674727786988288581960258484823562048125940956597589635572272625377146195062744847644803829197956884856745610269268090548114362842677182631660451248529449433262538697303687615279463284986062001178131385389576898653465442613928621541193922941169502248448474887778521720546452410206474886702884840639067758552454802059013977514308106269102923747937198837511624475514562247321902697175005357776405004402042121167881754351813588717777516401870341450193770523938232338421324998769484742556162633581427035924839100520782842226024943247955298755250543113550598937388656226794469701575098688575964421504264049173171156698233893786121305721211974566318599711059625939226161664939212139720979187185450152100671862621247183654800688559574730828342552659466977333947395102464025616522342017203507954753682546208416667093769033177515306445235136381618617331212743338713375911040756249363068361394650915802774537697857565308765105783192470362247782844846814395332710278996095005327145338042937488561690780806705701924095845010365283772101664303674068176933733244352290728392311847839176221218123358921102124127979609762265090511500868762862262890254939007162246079757378936248932047822875245551107839532766625736551115314268649023494911483273591330682030643207549498408570991090869292364524858738269712682297900025054076192402441844885518511686306454220290526599886226709362838039108524923984952450929708388060322079929178391043485253977533679572787824846136497507811851010967620522366935906694029899981103942456254423211188155568440216624589206206356728891907494916389416454821010842616652048961417954668640154568685415092993315811958686869838789500884357695873110356183551207226753164950178513028870445476136510332437630740086526239307679649476375240022075886065864265080344634092896775934891364991155532025194862435944301877958900373289490065310386417732872256523000627976300706668765391039768138482167007652162476917544428010834424744190422792381823912060641808154952736619442087223207927878319068966229313947191640893967397527815628430101430264313921785842057730773696085875898896485980635877508913764267141396456632376591696139521678707106929830488701731452706813580802390036075111434740157450624681762226362828426081045040020118123735760975936536420578878804814208093127061772740794040490561672806610227352820695295305262792042136323291633357007168603982276869185743649426749167505055395198633053291125274116140121409063075925850845723335528887554228585112757140318413282051183610401617917937106790059572495533164369279377545835812297163848915555386546778770496230851792433750074761143637354355289094597379696830951054196995052798951294270590885412105006567969223212978884956661562135176112177765571999907025022724254363093685307219976048856773395642475454253851994630002487913004999257408115427373849823056171159152246797187570704846473080223973198706596632864624888404123104225365334310824077296554148620115937210480886912104332284077284406550066550022006556757763653649403881480662097244694874343484115431468286999367813459956662717224579225185914456071058835943943959318185377661836175879464856992767244869138355974175618424109917238398535884081822872195389807982779203524439865321313023076487875488837952030967217810968236740533005361377485775746240132443594173646619895617116689284420396496428596481585319898452308115162311620318546320734529686970407404292841340411957034935791234691366327198695646194010168591609099124026030244186957653660891436262817578503275732072703422997658849851722864275202143281987385062051990623234073080528551791137703429562196260293768174757350311621476133433312310527026272499948354572476708721361476998428306230741140972511955363008763216324781081639768550994086404352959609551019487116090176020266019756442656984633596180499607135083187040280013789959645124885916707588772026025427702415452363565868749390451295957302515434617521223521710601759569757022017079897412499000876735225743411424336090857833625717288877952609413192124080776932700499027560236980859725713124669654098597934899314233832873644990228581061045871052679326277534798828700002462310717336582049566697489991751588619847846049352173905271050658003912173410033986575756827673567680109423511571374652454497208392009197333332957791841471828285635708736453039010481701338009466616682816043421068416637568899832728113815199764445755048846847798642190063447288739459475615162202061480251719335020230437753862934729923954156991175487909719742134043655805627755114372798206452436967759269201102261129594491187657502100147298911283184617440459883873589777969427224287602972512557549754335340104724934158457032925592468818766879956126531702182602138002650328985534491619625440650624483257439238150635409795800862213909312275986694809673353256073270038499855463945748465849591784237865474786204175711873236990662151130982886689900589660565048329116092698229248733998465559582780468856870039702330163882615054061181382133572654397053193160985711545410289737919026698530096400114706462329628468946847746491557973678600286863804686119255089706768727527882973914798481708740987205430206777681554732345420807904918533068796308214244794737205161230207045309031736019237930856329666090413763819561130920484621384663557674506217405577299592243422010778925753334867325076413766781769864175512045153306160892458077170831856752161317697815697250986289209546127922547645503711475503834092822859921667824676893081293953819966161896383094857297540181117241400302599152322290135320232277510911309887025856992522050600826759041555241428643571723274890662297772215666676910776499210854867714911611095157406647249564087081214485119993251764637210371138871084541256770829989496726018475587408732214750170035905279564334923096646469692070754462435310792474182333421221975244430572673822947010551310089786346899677641593298139157775738981243258122395956530246024012530614405224869582193848858814970105824549010349748403752799549396055575908524468228300543393969350424630286418459283668623664705198886489768979107866205099801962693946663114329051642632076843686079434173659935093965200621157302609955505482157042459491866644092016246507018765729762381948516863515034097432928365661791183807680691225340403868296649115218880780043684830876254886759664464272783581259140371781315926604982651535315503672516817108099405484138135674601352691284607759510716117631426391002906769278729611225200591887829126228308391422868581241281582773071184006582770291037207912201563388555133921198085151705534338983665295860855416790547913057741912332168694376251059194066021757030974364811285588721917685143377561245236280346746425939780191426477399243187171577289639538382757130311246129966508862354669127763550789263764304000630704936524842317293350945356502325654182564833575454835700250728336387897871880359524544740058036547416932346570762501842856085290889217324311980012929967525612190599033640172379755266007113381333289078280906154513494380613257574968133695041471594975228796729115074720644843107635034673430102317836970043865095648789665682471972064216415329952410433087933031900891539722534948034931702642816011047900739292424300615855654229686496210783662483103561815441627631751800705506565173412054894167646261988725208292079667139400628912903390759551700441231915723450415723409933596629878218364372434686013658830090108154930039243321723550495063296016783183264500580032223649926641726792379578991016467390453760661403147380316385761946717253500171194957223243345274541982920652624408227079464389058685279475632308847422674810321562350759271522044534908669470695965391658104522575753362667285335842419538079049986582872768864077614124679500741781278092211116339863640709503183034311435238129319231672324711974374524579940165941254548515004665231624120294662480437074849180174049687504809886542173696756773383947568653067283840757660458072963443152493795263986651875855798563786509801214806311351928887414926654338640744247819082816201035468843938874154958177477879911451018489177632230679031275434421554280451763482357467078734456900080364098260727912193034448605566513309268266667862759356877060117141191866134447461689584750209480928353097000086414416704419549918050700018858681417539360833934705950861121756561190555474617610950492332917314620684457822943093038827656996083233044501299284965727764039784151811861522863408805504748321711301944862134185631478620835532885508329375784276909235710868680747072631777517744279713256508218203220264673446709332152369006380184560227849896740290687824042641042072324746422486146458159401697342199495383477846112588616610565334866653818877721165677125163493627069757582944566594501463036681232416759532769929115269559537370061890738377215575830945890422737768939367137580922766802390993435849170039533033737385742188158482760759788539146295877022865698010994452874488392605266238516685561778642505501227765486491898046148950321261437197805410411171825896117390032768777317652020438956080880631975392575762611825565471405906887432989618778124371701406888788558145128204617619859124174924921471729047127306358999080457555593399397635302818269988495595554699290106881876842961311118517794078118311825483156547740517775841242083072526350365336008755204624521408767887575646356939945277241783807994497217562444646490586786440524722056294396505799296534572969904308269629783629619501859146224988984226565818512567512120930437174297052379111763091442371369298214311185195761757820286249502332642603102780638819950388992502943898944045042803258123896735032173776834111596100210022112272915350390927936569563545491168230109416082299316397375043717908046003948736002229910974228341670392965860619111200682281181683199955730289255150538847207424988182529114754096633438774232187713317926363959356827867862008826970663062273171026840588274464357000523671638949663381425666598272360673180834974921855271161065146301646214039325960835283278548373504543224188428612006311861046031534202264204278128899647946606181001390735508805217146753799979021560960346235359279553822773022720926238330996718995958354153715191577366997054769494823170742775546509497410108845959361516832828453798495472279989071208446227461719278411229484799527609546824423090891105246818004374383758258654022787271049786092578985252171751894407348426477566544430599044165509468807346850503854259094029351763337919664450396513322224625171985921289404403252579421368173671472570515628736042469118727664660751866146539394793314979390190891200531835761713841960490901268910933078270896604548250511850679327591505218489109154887204482571439890345814839738200081365922269748928675679937361383720483866090937484910581760751238992251073590933161860595714896045418441982769134990397676486427335545491523724979801932883037948555350650236500344813550233472740134121923459114716297101088926209840866632448814794740902236153101460932394136146475470132657410424988056643076092129843450390574134472191148125060655896864317758424501550175615999698433372511182090110231153723303976102421988698810518058143498693796891083416160331485640665626594859877348253485907556435461098382766278377316891383847032905045065044763034346775103288445277985994100150667231990678696789626838010048075725003801634615228358649363727733485848949581269069003857087624959015017878340778446655933320913353498867204402432419168939496945797600614820863892303871852179506789045367563688563783181654708451592333207725508802612234006183372486548116296877616403895026039113048507914765102804776526169266895727799222883861482732410196809271355212052724191267103895516985231961885420416568868221476480064915725386097287164757236350613479854983736749823663254932449571202109184578074230194044644456196887102714314635324527098300456710285643114473494284126650731593907521031565346989939982969092558714787724402768105869784095745802028042916354318986662023926979426058964401781085419991245506525550530405451736272979920094097752358994481548223484953677196765671930604779794078422873868134764771841404966418114744951324988071913319075872193989616877389468643618089092114316658639635648877627726219055677422422861807808715686385227985818826919266905421619131830270274076552721676979600126040332410546909286476483246436872124028671175441469887400543358967524395626004246306611068983260546435541838307896556632421300509755900996581387483207642448241382033969908269885483415353119514770450224309028812677281647954776317987639342095298620469005787649395808798364985744159171216689390541681180832934983817556332714863038424166870434041954719558591121481454963350055773208313962642645363396835331766915686021052024325839976479236265373003916968483476053351507433844511416552967678844191234956026871813618235126853244457166273823901954891771309608240639974208673630330910672915209378375737612100391635078441561984200104853711425723173852448965681210761700855010491175964364121986342956661699407852809513867865628450416332275968253227093033442105796967117299728876930884073911502682522472308512792750978967198614675184035809315594537773098890566224900680057463216908979013483539666312967620632679366412044618194064210128512122144139042383335513702127371801286021312871213511381486942148714355237851503362768946044894147519525265671715176313617807242290325696190929476846957283929766696237666145467911481219841719721462446759922382336565803860113768909682511206570267731250676403446341923726876552270977418749426925450650724644772792062401136819351075984284502910425540220190708405203180384133959560980171571969020614755166294093616142455860169636713952464136984000399505982204826627285682111127335209318336392348564082596933778314576413555290737695184451917922159761220187064043500627956567487296139972552965762893172700955645844330494266798396790645508292407866066793927575283219827271193902146216569521241986414496128601464393943960751873384576105608284593292311258666895527273064793510544229819746245599082789228124949987272938313462488157211510584031832267292772139438697325513594428384223318730031028621855659334156582182404901944250919393376849698034852280167674177596186531522668686166943550118905941899070799518006579271300721978465705429116734735283719406193258285311162704779824434587116741737588548424934296623623548548920897692080195852771880505126844602321367382112781228715297735009684910484005657152127054797831282387988307420697073685996771114329020239584221783780107956320113801462163327885927438474429560028214833815520657905189164582460927513024773431076488534770248503601442188841639883119569441847229750137335429899965218628442797738250579666558365410591664649757621666817198959456960145744651977027189095216640162402072084910447004088454598151503049475588934763785662698716090568185522092377823179882508762006086282132344031967610736807820180388329371406039031197928234503189369169895849168464898341870947905980186959562674344205380518347572292557069719597461960442860882617243791880211920449460811588772700072418084755928320978532822367567793389712851034108712888458669995622088448668076692728390647277015530837395858512647552513590835315477697423730701861754607429389119771898494719223268379781230034504558242391468505083120056051755841339916462268898462479527240858770569839143127606499839167223017569896061069376305561620470050335040607199122790947333506313732712563502212636747864813869708502302580121412922727041618709917085848470401986557594408411952017128105301845957381142914437742959294851101170326413045762104508547396021440272421866878644502767131664851232973790162747027591105521207661732328263436488354989705491514012448062117857899018963159721819586586037838705509400290286430684768574901158769170565139974809230138882968250409261200142709598742439865643181731742595638340096553104893496153550095638410612610265548677998930866578468839458222697982819598702966122009258957749136999172431059331045171148238590634633073554203177874786134152753367289990438750776575390483510386274133912673223857879815893463595502392377435890194286644677311527775902590109636208915401080559776464150132360444385317144228713311111625402404154689915747076706978751395375116779512166038679889184915382772781718871933395225028560117540632328627568762078589539784610211487731152414163913746277057828932094296499299044360257980827290911975527747183003780555539468922272504299157726657327528130009689586482803888930396125713735490370788174204752076997377560312272854538054187884589679822026957193838644563505467582409823174718733821364876463516182841013453908950758689126258485534238728878779232000342464094499548010773128171755264100585096602409460012999495432605910644594285277220587493896521463434591583878714099811647972352815245945573261567204114459299664061633081675169701686167780829411072479725261908814421497598087250867765798779281497090434594595268150260247442155582357635461088709802781816715939340744742053296601988841135761854022738439945449460976633332878413364844282488535112888497931908253538715762342406274573305134214395597798482173203162526419371754789508190768527357990816244753910698277055925573600818486284835132252415742332259348430648275764691666898473167669249581453224829256549328152014881228525159711040332957752216010193684801758134441472629519879864079175907753728632172421895348043852948523042325201961186224409415622798151209814402511073869353896829708026919716590469562656589916665631454110629768245904720996747653550126643264916899598366086437086425231013762108238408071690646935148354776604841273553987479264870517532840440752217036092784027160908019075472318277639844256419417895730442558959097198084061506110109972430830264997815860919234125081437628430220366633431294404934893516745454450834431120589763794085634062523088523122904212961438605273708979563378798948785792813679190838501217492198029531560973353645828555657606956606868569479448224167850978292902889465969223712647090454354548424247420041605649453935462208763356260707250702369010431953958442829043386613996596624182453541596108804206288514667380782651997375068022713401797421984956121714976358328214451374702820657008588492669322321938356562275397392078654273156182840988839669987861923871371272705325951951398799109437441395027357724647191078137129479826672957548090424895946825835661683690775935569425094334613332247391341179717542064503150308896995002165743873823594876539036268049606181250156966699483465271631729985331981447816751120082751642409345670370090865499854319036935267673800556020498735145381212928509164365050110507922983399618549437009580826104896664230623462466098282075443998072593336922921105810389387567875271775572128641296142940970349387716962370070612808956209408784743456564006904851660951458554802391211479177372612958848337152040412929027623382498400473830652402184096817326334892602983005656189541583531230210002460299457197005096753735977746500113114768845273130643982823391809649554004239911286372129104978788578059648797621945177966321889364029476748841222513403291444463859712239606151290893896470981416460430324796701701318134884495171118574275093921395202072273101574075587618684516301186115105429446671026644225814690633113767970866055753864862502624335490209823447542306496405859468571932303231790592907439890995407681695498582010231272652160119345069897662526641314237993913838652137918370149344187028789318297135767018450297125652083471797550299884491482628159175126666936932138837049925067451402013995080358308804301144538558167611270151546932503977000025482386294444993435325431742027137648288939281966176550626875226960267737282342381397913789132524453880117913203861544858103764329408469373869164242114009375452746845596085000648816076714141906846712778292147865668857485030313537075574899870765599882020338835145320800075117750246354250630776502094005193976952388594230993943353986598237759848663713986140013762962334858811547881361329041771861023190340185429793815620420476260114202078918796690474984217292477363158501360756925211353515300904150481598877337993430656872938116053955552675976586597825915190334057496877493096908284387815738300106911131514218908774767255579138529743458530463833947130083340181974801375795839440981750092027050001112347619640013734890656950114704406856685954238324961755373840963083893009483613216133997894103093834553289739624946529415118858164625032108090782717149650011412266900607210392184458076831001928497666815962391398725211821944566212346898882038944399445352190024341434900186484388448101693239006037129106390969644218169813316229971831832273781106151915873453532385034497316229564790635782338787931405654157868970736918115581902740121063722909683394319805274335615744562886826553612019291502787935368808418950380207048365412364097510248446698027048350278323472214758350106399133210170102412498484182968002109731567517291587230424578953330457116521628355250986394816333495868256886032974458707563764963824960516495194545309774944720470576424829835975234534001440850472299660832161735468602634953571075553386460642058107463638991114043631708519415565749226960806610618231010829267096968928551252664974075987919630965970022405458785299265626883825771132700593617990155848469833278839988541893704073571598096629722410405582815200259029025530547500752117472559448485134504169831620617111516188075590293568524493196744611638100780779188509968942533536370952488025641563235453367585695911008782382286251068438524068267591345041221400120462380678985145484073180608526723066859763831858257653760853548344081018867946922813857471984567113640181483625895992169686399027584821725227681251112501756317226798419731264071597148669518792399947400044137785417527852895384613841323493626092634886846169259048948487331143569287532668867000666927497552364497422240091987940337154008208787267961504929286136757849851257377155061498064159619387766001712209420383970557688105616772369458007293922070042486730362400764027990449071646509360779991093022980548409992510281833448298828739569590906976094904492141827810378504812647270104751488530866486440051197539956881175067439517202929632137882115645924203570343080838025998846427006137042760710589266942509271246884904388972631340165442025045961734566902654733515213275777469582073735634352979418912478786293070290264437495319399130884614094242571047547139759818544740513640355896793836426665012569372534742398563855922789059298268181804461256656511477625450634460277310363536807085766670798046953740480236481378754721230254867580649447514823999998800600286647956085406277968270995612216753859403284628939981237259808822074213534890210120613110680938250098854081269291492751945008998854257860569805783390057237666551255963185942515590593926225847396599054838229010624836528445494595739727898190296106066948602608767620143400200949390505269906166226735605967644139926716339420912389388176657932253541169220747308306386804986963677433302489712948016098771973751302121244964507245634608050179282232426386106542320218031931926559347563764312912707358566262676804889489642051250005991977414163718756677395818418412126536163514133731523383049646240415708695782502123412100034456147488628433805801686558114489040425502389987522791832737272090981963755738457458762932355535803048750046909898198092804706560052420730835097293711433701506664581921725366047239332309759791365004961937638992129605799031449069155946633169118981117632593154461341470979084700348976330881973280192981740135272127814527222672960748383600086059293282261871809949306164048639410868029205687707736251395065434100819697314083240802291146329230459487784974452032164559732558990880749618786496990946011081954966251822633705596480801922555966107977960414045797000058147229789470911324501043385359608979254081610393044375404169537674535250900345366916369981766102514387287415862128042970763403446637814722622452227838954654630367724978543583822697249860480675642708141561626260138653537607191440312630709924859285103424197299257512725310879751917885643287447811110059245381146292343454246530990057800238182849860402656828981123935192574172683301677135438394972642605331964301921855515162993890680650463422721930689564464466251330322557510075611331039782602223131903373977656758290683183826235931784601398422050335963615564133015785905414943501536708347508236464223912668255916883114132827698773677184419523558691305293220913167023671222087875312351788952921648314365518260148187841459598014506242486396045562748816000950853750041535554085542127826368846274364752951112059715391896247935798324109727735902289672657592839410611939841757816366548140591231941483088441941287355155513549154933137828717008432658278187754343603778263465797877028880388004403610497329795177861999245833692076031920935697707982369277626011360379557847908518309687008618560161027371483934230970520090952359250976528701985026231331077994900977215782469292794946042139111171707448095645387297078937705629655266058813178489464934431303288783193340632252236795518117943399550453369727099052340772539438335271430153968889338106081213864624076599534039061235506916999539178644129006958473674953717579383981120655563649076695012877744089389955514922235194461984990655460944650058829449566847855339861790846527156820443607211747211912803813894835762501807565043917364845880411430648709333918473988386995079186991631466276322093413264863440153782178291609032074506037583939743990338116033237975233040335839129354454546349543790714454120107273378408792559209512539009205929728604761782561615042518530712871289989064673470572177865202316213974280578872641654925451864400120674237038005735774513052930020548908059324337965158780726569905573846737526501104591572863349821849309893793081212944562678672546558444098608441481258882119341790346793297818126983623457876004518433437426383931420140595472761829914780784698755411010006247947943067537685080343077436212794603794801760365617373968039983782468268024101083700025350596485918952235859930627404236778364445698948181384517885349721667678159320469452180051914937530988072928084964823069018419691576524340137096231213445389597022512303159711205398202878087364975619368318563483533472984324886266794943594103858071163373511224400204296027186644165772322260976814644356508532289495344484977705631287510954560856538005653434336744746917844531524609796241177817034251660880958586760942621224659030161065296176499285651213567937615137023982503772008487385534732356136544749161952326969772915486284046898056927937383235402398267219260242997949100064897060484547423866706803691333865546872805556882437301016239901579951268255202313321084916718512894076025686669874319005261814247288739242092019315682866503659549584709900851790128292859414023643574964730724807039404191002592549369976803107737277550170900246718792091813066943868263460334020720464206563894775208382247607220509887656322976096142096795668863458685823691651695977976909046869939369039511441479297066808014167258725556924665125186154572306386798384506045794489455131822241979350853088357602727482112684227250851998665866154108296467614278450625547976258014456207935339317302763974449886943352078477676560698602185345620672365567426890080665859097862721090432875184182066249380379735109623678953023322206472680385280141168091484654837819569541339247248099276555809014340744451802428965096488138502916100422137800479947514903611438895495529914170603514037540471922903809880734750361418043430012580767060973381207122574473618826595317789100457956780712106660069996190745660070021864724372079646397603511440413337066848419674794149535546632122348320231442871786796122881842625242637708809611714654674752900133169218640758201298421358491279709734258998800044697698070696063684498155926766860794248793455647849353605280522253135337585640000728026326455304186373431399491248586935630303919289506930019072054955917889722123994203048332230964548671702292908045460855827590732931254165128797888306453745443870584970847945572855749685246714286915505629240681155112533075364169129123487041727391868731191536883714774031466381040790964039808291061080870411183955605599824388174327356590331996845788235929641274244580466835108297612719509941002019219151129176658359268683557024493586057178796941966202343816728287303956057367562290131221305743543809520483068708952509547506663257852107588045171778075582781259585444052700648440945492777118042885217080440338943127263059873866457954715198795074073719906879067978248278245457711211884898024574240634767148020287037604512970842463766744671455849592753554435446290307472810184237681441877697114398859968544933483664963089920008253199614843401105076271236736479986234647686934442538150791740511242060682516650907169809193843610670934376240434062277946140656646929340590829796110309160318302521819843128312163946537279147524583809079457594778135205925616568104141206489513133964409255175378409156100197773947835669545621411433800284175604265487117685910014876142480170685950761159353524814837595748767625833325583068644298889069858002121295462514596463807121401037990132536705436475736886343332815924453244187158787261590375621903610000750125506314221122201929034610662399923496226760953805346886963173310999654815869385588346702021811827331114115364215295465484079898116748144894420679025069040067653734111922997567902312589805070549355387625179677108291865745987239147536220563922671074977401151761015175977132543467043893571558546602682127167817675993406725090331290052300486756767693511298489246759839129584257468354185712290023811404368614122364314763812431884477731932103824750327222080163761567804824458013691127899907508005249446851165279441708441113439879726942113464260621426101639907437085928358537000305141517602544109091004482272791519554818734633581009154593645689676042982965042788718511323949589131225948047349797351471377444848114852711611273624586503608280853291592540978714493590748186579295230218776722436420473483646741703412034316945821209348965881976709071275823968736983032645681518550928978380650092406887513390143009119821838561018972544160064334819071898012048064996263257676826962184333034480569394405968584117460790489358894108255263607312562295036706257587611463591545006607626672217055758719074051840261544274444643248741031639680458027134450475075611383342207787542610141724767966632197547279768093147825881899041992988914323441902254008901639530663692278057512984168519898614833596202648951878192867829684528714573970743058339280773089197312885213689342846352401116120670491000009980862089626067554734419785263682215731749251440885013275674581672637177115080752541963331729260297930152945524643807696390287919847339298161830522397362020441615989551558109073666286605011552638469414022750466160878692502971885791085469124309013107877570586382000406468730163253074608760118838875655282773744615949160455516023164503598728461193806439220585513613706573769702494867908363830639908670734871089001352190366207068217895990212352818304206472806450532095806947157366908970318334704910577021586341421537632659714455494997298507048610711783644473147231976080137441657475583805493889887244376025446867786019991382684488114638332989760320135063839779695584814052515661916579108704192557565508653297256549902263606013430447880355106635119059065543280193151249104559083680976708079440478085104778781403809965203833346180698376431837486269192066744742478206633448157238821768152762956946921570080228791814388341457324559537012139859520325738522952634538136909919500261851425616571473243366359129251557580922641866651559711090322633590122395734533580454337289586659525863399057101249097947221606788812218501104217306967055091577347651155983356472350979190988867646546442539414012713444112968289542941828332897655019498014141220203346914966500502439474095261024353788204656837615304707987125575253790539221296029754889310011159235698882406329930997407517717622155558600567953722802034232335762975953899262004535574087961270352349480568900431032914704458072043566334597182617709706308061238551490478042129647271536045232432836559858046089181602269944742825143632959376347607448461954789603854862791028148209956346446639507196995251874466401875368024315567380457937366520822087338585093729317033005643784029659212894654328340057880711826074108132576214076538306301660862135274336127257021187528386048751115422295491041396315910122916379918734827117687147629707077177582736054342723094471030251506831495067751256133251544363876857990865492504198088235161923800669065910423222602260277209001100589085598732253975747105890722700636656964352996532587043985962795870724392487129965850223906468706934452963878114519767683966426829086573887913006226942416476953430188486871947168226183890379056412196129541684440347550115693189287493639837858941963926635473795526560007992236049328788573119703635181135588324216830632213748916133617501997791649340950149829567556310513855350534743884052661945996704821415941253535580784142527054820156640137680271511628998867050910129588988485980897794872419889307225272370624679752598225809451472723917546278628248790559186868531735948362726139659435909818200485398694504580787459095544262859540810170998572236381943404188981674136827963652650634813530867827019665851173684600000600617851843149738837574593998440444573344826885399832864253757589515493018492920311012567658926745449116777161204095373693059814969278840637609183703118708207933066187683003359147711881045815934758099875264930561386231585652144084287388524635341490053847676578010193771127733366149506851608028008762659241083566989452446354787579948910817265615025862724805784643311361520523532050628904116446866036815579219194953913792104449863595056054054203061613415036417797418179679277461455164548610522895802875204190189817979809525372041443828102503303028203505386873773838427446645894866697093316054124881671539912154171916456626411014496681183255391094238309310373073267717709356145607333411041362532422494745808660041990854411681901836146338670509807100595466915497029769114896545320302298340989487353191707001421676355373688184494857217469037622930623247215205524375605082698754993981005312540192629433046772540027820264339999292742555069330899908138361706292373947015499037147091148410533545635805978811752386961526742401303233198255984765455933074213326976647075410135079827671415050771452848568930624275564417458574018726111785219694023092416323605776014400442750505372070722355631533829882865883567501105548257601530069591312572450872511311198846279627909839352098341831000422908364805592556057413997563676378230689782852634439328306315314117525528089690175121260266513561997207004109089442480853884060824615545691377074257961029103345404805237235156484892486592468142772030648965025568647170788054783858721146004670857888603776592063993150179261645860273245837817971708771683194216770933668310253770070219383533929085541446336745780065481915360098241793694476864392344911819517891053341954004369186671100757549629751214548608598430154871263043307221542831810020011970522840248608247871053616839590042950654202962582033985790889110740359260959778357932280250302390430554127409825195291523737282614162514837156435704844993070235412266435309596952784492910162429038306884667384401209525238103082862395830956051453114436695591405698664895220202192097574290101056168119781878851917929470612566116625679501192446289209978776770473785353223964006139827479143563012627852014777696210609678517210438248963641031151358535681644316519170151474463548450440159152361922806821172113347067287526720191895762835573446463401208963073905848818139025295292726391872719989705268404346724110548349672891713133709820880762669886614131345996215006237395753338835549293117465683156941837183315376330601275019603008890803670899939192875558975503709242215516025715399352006868548580806142568034028235209606445107502796650371808051802436983704713064202082505870364654844146605453273003737385085500452247931688218844220716448714422111549700245003677715390694850488976419974260451595329698961137018254012623930173026915303751074819237519752234287086703650528377293860786908877426117554550112480271970905907598679195924696273542356117840417769552857158905194432525423710712002415904257531560241141343448862389602049496511389685108002483261548558903397724683185090193455695924531999542931918991056342474999029051491114042837358989927032274559730292589353523997137147277388398368469818538999003693340565951963554626111990038170636448999046993226248317470752639535989083849316701516118104830351073528993991862893989394181376254663644936489832633824069051205340128020435328376766858681876386190930282242482275774036282430343548756952314523920800812624428733892226310555165631120619714548262253094477802596115912690971744775504612453355357277507256941070861313787715436454151809683100780281075318101709326586867953857840086213555822285254482345359967414718758192514729599155849898646791051935796463275600988448496148958255346009256551308317521520182648608393806326382163287554027881652448451860013493556694550883250087356438365909656031291922079196272643487542606560425841125874941653765345186295279637054655999647927700135437878447059338054577563427972346258628248103447109780254445012357386570855169883304161603969313294181409249699212286381089664832294662126458576438326098620051727626411002248531708375845628887850105071454399775106648753043901523675830068290025343998602139362822923474813809835765657010851748995650844844624700044542287807277988606831971629836262873979767413422278316102538610215350213066714794135632072490751951981927028039571349167714824996863310126724030151581735160438440891833743512557997920426178303196298059569572929829351432993767058393883057995221178570258288083487831089562694261098891635340646467657971643040158934417510656842908145583082856901059103183423927475930390388052018334103203143650382029025242920623579942449571232014525276725571720531290526721001475942952476385089047361975578949946452794732411886430583350701567950735253017325421285460498413816533169782106930091934238495219898668983452005406143265872067539688034247254547578977617222526748538034954378929889962853281917618796949273764563961182424475627714740717806538546313411770729026435906146534197313831605897445365423060769456965452386108585307154846992656944788557143091792982793725800137249463576838401288054282520835494461383368243173484060438941893584191003611231681065546935683851552640455004656970985349155039041755695310914699641354890968293083207877905401609822207981122278921374186090109432082152218951518346108137587449611832977920398953440238338484618890401056676906928167567474897508881618132068098042582818358581640734824900866125375131192967685087639593840298633929811488557276815588013200364011883599927132682130641950871694592280246140270572487184110009090740399206461422995010661756502707252962451844870626263011918518911633418999298956302681857410755795759023572134103821023834708175321986733959002969715495659825407422920813664765208213725727648545446831981260322152959324120479219012385618349406560912193129966990757053211555980312569877678990422108713709805733487389442238665861129043933787930665546250519275797579992890546514046188383077827396648345376451850452284110068512449431661433204765440833096042182689688976713625358024109577695459742242849964868248398428799546960040744096440362258168228214803034709506973113398061851045106238726054242530061855161750729902732931310480971204432811109214365781303187024216446024479657208584305044760204078989786391968868024209132797477986057627535660512031701814146751554996959174511313449459877500773367396403095364836445505345450916519662658766355008782915063254135000573076571551570918345755338843657385674802558204834239867828596341452526494284660926673349059306899679468547560156013933683802173416772736969685250817277551194892924359161583138970052482088736449960230182871891647795148356032675457205549491355024769489547077006254016045219873526106684608784853020053119233816037937427721930382249144889801596390011852697033057595837406893203304051727855193150962716431708001545478460547890203586015620017314166412432442979934998793226116139910284562118394294684906204167751419749022021091877497150038687840253519881579564389668381313343439468134634994650123710424949977573331730753405913165648869449558628497362387250759568001350030178623097363247817369741157928109203841659581755547171631723623355344121197080276261444043312354444617981138639573599714975678031994509806274323799969442444256468685312477748988407789233684346026994276508083312844683488113673462280207639242368505072119018975656987777021894923329037554546273664105496917857979894178360747535873241281098749471042723867278641898221307616910756253616556955943411227645360875640797306100051996375937761517575547383458864374074608995998443471296470426481580730247068550143500400889684627522974333149877125775264112463556713772814070300199713200243800188283882037889003915657353552594721018050784788585116381581865279797546237981084872853278852983305519384146605215198549860257764996772489397534747118827721106251204070218100591109348971860957719303676522197078446236472224900869555626057011754531364829373293007851608237870877030343978464922166437961923591855950959592667468942170650870022326239369256373018327863848374356897660496846507375138008551041988154611093777990753104217804619233135191814124974316725117381944430487735859097077572845514958208406605929173256708424209467703922068460162522288785113153132802959925950894302629178973185845092098135668226490840859072318088622106035561637034039426274488717497632723222343330953363979161400187652139977930125185351936589980420247451720075464300200384466715478606588669952972754604007880384629477967538343929279549261430219654866819173441000804110417432523376373191110490103964637144855959662361884505127027428324258712673928071740725816269735424917538300791144448295812864804133918987090650214393271512466305563735677981279663609573389718880722361968734712761083211128432504491190979823657051381050226391150634654000786401146231911863106641522943646195839215558318996966555160300627968214764974978417186812692921465644320490435311409774715372953636374363684688052527881343584324861718545723188255906067307869729923470707635485633270940541767845935597798354023153742410111496502223362638761747934039582094047570432607993395846658897062781387070559552635054704775959415303839884462544142593006790790220145087024855857407021340583890618109824483362991649702993713547907875190800336550695765141127446407109348397366108003773463365154038747594542498240552760462015966089782668074908004029172803577122688429549987237542363368902096600329799769034550086844226739067998606061036934481484775871621353512750139259122619943294562057903405168672731191518014620103502804412903340113236356042919612347059407179458588757014319707178589102900179392831237746747958260318510732608675488278051341302186532599103441342061681181214148232663813116634903140147947203087028731938743143459631232915360105771621825410197508471940264839199072844329872701337690111037607502397770952066832481650376901137318277056845680858563365786016079901945866458901255517547739090267977625232670137729401357453709825108170263676965139313950782436900414215660847533274000744518346494529067789471342138781740512463546549794551437982329994819130053233453672587613341478832831077777871505816320170877733891331632975434494972252567884303491311962119339994542401602148866297903073604004001761865252697003983219652967035114930731195667248958915506239407626362965254518427009016971471041323602516968079679320841410535638672404325237214201206409141354984275857707262216042327135623625419824732949970427057149367984884702068176791266213502628517774915997403517484116370142233620762619195697493728524100730709884972874094893715377362908044279055750481897967749116585979895220693459252606308963956629925994579614447350738964739021992510105301473941297644545860653795487679324239870187217450403418638124512586691841788769487726191881546964849206421406060242749715065668076306456812838566366195493525929013764003928225815859682811216337319252279508995874093629335957076206316468621817903692076673136313958027796997815351833120372798193928946903070286454055773550079345921857210034825435356056438820393801367718011667757368297343928889538022830723240847881188716960246747510660231998029591269876133170374879332482941006169053903890266385948128991410785070514503893050297785553323243531378043871247161961851458063313048215325091934485670026002563309657226250451499686637507264495787314642694701153860127571157948299844097999366198002651012058495983298771204972770821588006206495560136284360691467178968578645264445993236202587655026241044371891240104609882837924311392929757396186406539519736591786309358137713963460214138472015805127728296164447965318545552739520051710435080286577103758669500318790130399789513659941714676383866128245035810679697217375582771001833127718191823893240516911992775125414002075678239404413428066178691912253639137334711246402133525415615701369728322536943387094436475374696195430302239437997574255314860689084523977078863663799874698819505646724767842428717239110452907787718755329637932328654072169858445704750867758266020663946098032272048906638395498654590841926408569936241945940688502441844276217898862004100352438266926955453529319433992775965478397631362789558654955867257217724139999761067347882699993781733980086116996074039027076800025224715738166267955039156207803473186382411456802324369301023092341474024805734624267858401135813491266054355933191235382242669365737524050080929031462092141650344116477819175821811837062463719548254633003964882224527963536318490226336932780267242310278149331484249453781560985194520290935554383012333367300840664486254818182242333840317448070533696619216289972665321992515446213029262846161506755135690858853129800369636534433581071941410799779786812454242461110498856738265406773756512509037827179999556212031836425429431777537281605626734609299927926896183821696415049290350728807513602761205786086064236118089270047744578834196479285319700646192257505856157984035695398889058650672583536662465154104400516013531538554808177447602408964339478089641846318268932361242176418404462199636919692617842473261081399406822701027415635228296822812704886396813846798265305892624927946257050602948476418805585037365388446795860665782833208817383771308885604764611903058604277342604688294151878031561678834544916777971989870332304305901904203873687504374471157429628043776648372647556094839806615660652260913694473337347094498742303091696800321573957862834870781890136473281579880627460448344734314251502135453432107470594324464319076077368145391860735923452249006227256686156203072144025057070261736577797176618031499725592114492537522991381139655808180019147305293072797586880320507039531125811008673040819896686322309140518290515941011813811622094766346526179220466069709670176483985507090668365921186238273224676970600496550811054988986891064129484683409438785397234098224264410746727623895489263233573754269789574314707790387733934309912512532109318802943753981109452375749308009451759957099598465660313427333061369572218146594129746713312696108345934036673052049228132608507661913876645281070609946520592263882414791436000172366050036332167054468755056347436284255460707525729523369127572758284878753466112997920360774258290070602781072100191157258217752127009371058607846029572808498375633383195429473847087103865896773461808432221773017313039456024164245462512928680765710762296951892834974687787564911047301742343179954107780329585075450875486864530764542894904338538208133888608996137277050535576827026856575826406727470284969030016665968356085330224798249192044819955741529099953857562902117959709678653118298147680003584899844959643506415541201053159390295462496545512647411004643124076278480568832393236890981010384703676943368160817259593986336393043640453647596213177548503923788762721127844011545124306249284309560528134195332234906844738026777025037732139239960732193715332656165405621447224736514322869310920616087040570915265588971430382428434189262872358928644001331309034004673206177704701875081803882898347512289761635901821423773130295518473109024647460618375814484330656530918381641564793231368204275857484813747340588812875892000389729632696204189823622045764667568598609768028960035627152705930242145857575714251050078504894602370480502896981342920218581187671097803472437636259131062045482350469823256356176271485264036657173078693951345909406909274845403599913992012040599485827888247087745182074429455220033504776512254333306091393672904525041761372280966033742311407308555475503956190017065390192565972749294194368936779010333216894225709448373458166339021663585367422581766240790539730005819651378293753646799899044911558382623588427616308444101761445785778937528230876112159611989092050402619664964661229088053844082601097284021300802379522641867226053764156436855640142162934997762178194729105401861200827668667906507989138725657879486553973526844838171592681056974063369339926868971582347314425552572511106943410412012004096061491423293751630906939198425187284364832940641669125556401489917391686572713453899976682388852019762634330353944679694044312168923499165517573763787702093487509290018902359577404971588990133115146917212359279871713111280288221591352134023481299383706610567309011281349403177433502284326047157634872858656014678126362456140586231521357541958972202391829061715138330833390877399352580076273071330556606103128042644202655549345197928732671679365876250404915398616523591865995675352411538787431041245539260239778479215702025466092903417202911551069064751812832628299744760476389480527356921463260588255968446545458263638124307462591104335469531244608305333979435638359040540126907648436380273287962121832116817611808696019946181371233943739617278223221907202084288116839437759652896204176928861333601802935364686295192960220681475221441940069755234251529091331788169875034615867559187631298741123439209246283101513877054895643823771938900956867283908402954682600852261741222591505294379253433494958785088757299697944015887372019120520237586937048308665998926558162264679054868958840248054766283377838602576383576902624843849134167311405945962558052511368190357648909208674355289163236003429327763692656866794954421162916050216372599437725580156312292880460092445775356348189413552183799563680358011757332090880927414042762211116620964105378809405832755332532020068665650647288048526260927095300254768221621906380038027290518261433324970492491907093431907718336273803491045967329391039358631279869031455732693933202569076210691984857751727077256826758995998957589807408910998004117375887475495907433795654822246628887996934600943301992350455783156211379961144375952472546794547472339392248696121355098605079525307023438493577954508164014590093114777859278548568335695615917622916377501059547566262395382702601864159539200158879281448077965519893787737670513465265461361744005953721087541419226145354194640828016221003966600070192581014710480954253893294108908844133253178684712831569848260979679938421294568983356934160957713691582294929762173953218427578749145420757950985755634054578267919534484196498429872137546485597103811601401293135501438439046895505122818274495923899741942447128029080826045491511507430254862111606674653682088769665512734882119168979369477026643073387383402032872898426498637239952404879923709526112592824536771316272436860956162943944785258837084408293958918221380886386409639462071863318330980107828821194533730748783045335794853622642125749974190563495429136902554328872313135127297262626475446245688093395903581116134256173313722126493259140911587506082565766805788066923152169530827265567961633805580619651066706594934489679012708259897593303478877285333050076834395121652545767193416424207427293392901570482502414428888574755410318128681927969834608029217204115255618380728653735853750617013860352672416895755839408954134673029751057284964640594625286337270362973091271905542532428917373990059096152025405175365671172863539431109979364895609284125593907047536802744744873105896204463146676489611433822635107631481064338239188285864547267902183289849070035249357874318102208841776628618175589694819570080857672974168804095110304286266161751891019487215068585317930202892835435512598274882458011966132744620445866557127780249059625847303061740278198414428854184961853349458863984911185155663472290620346620664572866307647230599446254740687723293789759901257221801286065404982364475975231757484060263712166936690339062421331258813197135608654951817019679778084380595006265608145720277217609179548379698925405195496825489907705296107596857546934931797123626301078092029508620307984883938513377452334645737352304118811881832418500143183831120878487974916129394696016582660979075699366336194812495603966146326638164536724093184554110011623833685311907052152789601272111518604494329429057761278199490637983245164550886944901957754380704885874016100570459799915096296210199182861233139496375182170604424666639676197192737790873137972112396527014246164736281544526818907140148702799009655360238424285591698329329422568866660803693045664699943390592388188517740927644109257265414469430655343094649983604827207543609103715333571059372081484421166677537848727529559590789457900691910180373759433787997076285914350981657257907398815380823372226439826663876373323126636174855538154908176243625458468056694734151161669206892123253467602026582304609082468600010225877912922601644146576234476533870361729258532671258346471924925084895111982004786937901012136660798954018980606673196237613157300649279722556768320189612749432372868404258790165945081127843283767581476081302472063877433465970168400044559865609051144997858753577131266851079109697411349522723501110672059132351149263933214526511075331808237231554537541826546701956091058693776276249582547370556869593184244941911573284831004959458386910871208692613732512831958893730436687961103755404445499977809980164387683492332542497662782337709180034908798488620392846044370576105515761420416838229986373767732727230905150175594432871189025082828745116405539418177285083262950668427370323601122557085879312464544385185482146517516265020488905113641203676303044311797247499876363485158925403686209431184774118736297405134077500374408963133810090769625474444563393226766026569871228505065768663056424659422592491942215302383732236749318156750980250585892555063770488181874933909557937620257413117817381981546452273754870592625605968469363228753321068055895125195678323082260819669507081969842685656457516715835906713096626413058339728429025028269769172018079117446711132269060645112066208078931726375098797711945615990370672868891040327121212639128019912437429032254473131265783471359601127341514151678853515455322112001592260195328076045991686597483595256197463633678563099316534694399787160073459909932219838722252351323799500081058787395068516708886574373818750759663206688832932336250979223716263885707975398949273135279586286766092546363726999109961772261142822008081838282648585131027705324530244992536008923745130407896846326675683846453303989709153036877896106131941608835197807062964706975374496008438674002145814653407117179515033370477818514196577569698387525905858963764811776569455141389678685094677806951946539397920119558016588365060718500178352074904966841668823290928344228918936667950145777902694574298120845154978138514416002666645200722488425509820731900695057804123626141441244461087544831519763490166725858323828283632104910332073365400120175026399797065275819719143550538864948052941834205220082629557608756428413215883966252186150979790366681536443094694658619292247724689121733356723272330205736457189406720499718911842373858802611749928688601459046682074965847535564469008926229574758129689575717275662219900221018716300018336844684078580289329617394028255717771780540157682978424447904235077766552114495508181550610791588752419733051032956305580100758365782963405009152439015048857431704933312903798316292042072616777595849741403122514161405865934784452448455132260801408721093348896918124826273041909520311677545472165421678128409651256060463965085937773722436014404235449103890623488213283111472838430790794890957384432409954331238154593068519157888922828852787448387520391226648836068361441477194061132337663691329932445247881737074348254289379512148133555869106674609732501418459268676423958422943573151146971720877452844354009305684832069983124839343478888533808972663256128968320118225576705003029597048984639455590052581569454894654544430184749176296749358938383370116134482042525456217662345903513280864160030393446557540572274012344065238870821682152294545592725696589709109528470220151771992951978444468404777498423560424186246151567909229087084378830119779565019717778948054091712958279094692338677341236026402582776269286623777251797598678645370480659880805691945637098276445720110763668336028337040064846626383671684126531205321450977210906716221157576994701383692253736098167759959874219286329637023002131083084651712982802585780227159564433786523333533954324576763907404289894092366194128764933744060903075517689125976358599416500086090526485743908326469837348972460513208898295789468171881995466203758896785022967425128416065867936298139571271201612204832743103704183914143196349921476373906212977081193424666010758644573546643716303833872009497936769634447527882612439735684087484038987616992576786811736960806442164348825609859217812578079340204555822913683772818286100352052389840641981525688365038390394789584426577419562368303212452779663118190180779820916760905931057347561756888918836834561283479768305094833131533421181068334359111441862932489731002824384144964425460341399640034959057349717726058233475867210732960290458065515066564699343248194832913968294199725047175762134778721013837093665050354380872554387328417907080851510880835158919096521303929730221961303530681355409930613536684747308693574397712865145397740624077114464189199350388870813450372802949003637875558268819839679322824207557969945790966922391501860435508019412625651186221424863277449490905392451945793231025313682564091770190374430348422656068976126085945630061058358706953132423907937404207631464047153552698833782340229215034638766869882054895430242012569977575673985840184312160492384677042739141891617181538694612490154442472021946382399771348331596082585195440820858777163636611484476823083605798902066994239739845869885643324677386701308676429310523645983200686708113465563648206376502632975334621918437377721373859062679550913212754599959016001227117442618012148275399570173644630238169059399344461606427119504774751741784276995933796949045699289690337418762284568803034108457776291968845041519616143977386082045320117456499774079583932466325855588984305947590138935838339308952606094962214483762281458803577224028044426752609496641501145168285368211081690342309982246273778243085177617961032339594783202286426895421137808791256670382381247006363159078739034161776112546132465694879625595213914602468052932628348778337465437568024250827337653100406353529852779788259657481342621023336115806142336090917435981306873073895970821034775041715961387582351388416369956377431984167843353837114894821372360684442340921023262383614891402491369159030146597432800924099770348469256095905019422845774803446854614712535942853324759279749577952997022712322283368415799764392111703397516403778031169696732975454000089792595149899038736231783904796480530776812463469735459360183946519531280794033333966953038163945357207100878803578261669011545810897605864518917547038008705655834153156558879956700732203376963139175139057421118867445576909767590176223486782831135236085532017149539226394810943222785879692397114679575048862378995534840679984467712419193312765544092373322008390076784261868368481545368888357053422430539725194314433925191779617766576754603116251516795678540134530441125477766715622548400059983155190392758751847047853136409622215448393819349553526547005582933685557424727901724702945549739247351431460744818538361379914650777316023815626712451354725387815163634423200398167375434885501022545401289193991130463967091133367715474416542095428510557596718347046650838940805797948963280950100540018574436784985126536706833646216818205528403700120006667875955050058423774030755453041104842673467281472084471285111999126110580457204185040635121620352507299616364829013716266694316037384519892423157117366916068244308247725651322232147525545031405942726939494415477912690294071818568528123469067524138782585389673342322307450263993350940819643624226145112837317702996271766773830116543273368294972124849868689812154277928861523762197178281147693945200920016618741441243472885128532065020790837249771857072192943607716910670233629462563372948008542293475065565372009444910555182525322616482231959146983485713138715172363615542603128804937509625914483602962697529075552453118704592986096389783621568207637699956948805931249300904635585981031072934467082959351261947707132596677997128927862452832006541679327393520013559173518705131410082917514819815258970882366533117854008594748438762907746895605218003196601727729623521433409692886584224796416983769915359572590833757115416561740229427299999407439147746515813450117909638495040915989383434372205730039290634528440813360027749249015410612060139958505910070473620517998556690975018857809189266820739155431005538431596921308241673795668197014799582790561696109736569810205232908215594831075221555640008558315658649618029183228332288557945080954478886760107371176428772773006484755168967115233099426543398399597846213708976109231571247051178993765910213017769757080411748331474562236424345623133450934680788216845109683043578693263015216535692521683786225179693454317405887405302402718737100724198966500598277660769245740556424790896274815549583341767524345695233335030550774150738677590132329413327321345633578566316120381028265283448925923636902314246103251509328497471740281773841125277501170568520176896055886053977562237090520630998694862779356354069334814488520298497065963380756586545233954952038716984391562308316296846896489903615409402055534592793523417709877538956708965986597774791669696845958794260297075230979961263140367686057284124065110952526676998749033033642563479309561688108428190528798020460753152742089373959524497363445263703762761568881715100981013625151640161142382629351534766290969735344275177122765061780705136853959281303513659320977220609265522974316300627515196583748035889768709002538194467708457735081873019403015553192164473919603839948669690905784250633996256069586775179615436854758365435477635681711226587686955988136527239594441070105053483123286401562732668021667256120655121028916692888689972227703900743446404349096512329516675493416609450741823370322919259575076483189881097727846214545085356217003748800996126276736078760110578118703229046790396152264421986171615205535043399302447744466370121294795661829759287731896442150060858375534742636732715268183735277846967546950881265406298660031292787037119769918530802598100660285774365090660967929181764317101715452727841521910801902735535515274739083349158972617164269839345583089028593422543719015807761639548091136122996728961524799604659703498969357668047456925049375394744395186001135423236548163194666119101846032529004925603869777694896088925701306963861785722063747825178197541186896689784145513854705693110288642654676431693743164499744176196635266832397225374821066472840688858703618512269076374545567955735659612463162628788021186697308352497929099100641649693416194403407983493426899991433264312405096134300004251812189317264612284987096843157125250694429185843145339926804000885100612783549145363829241573473640387459089598837486639227323855607884599352691115474827575297502175672561522511364842036570286998882555297419042461935790061549525340899420314410804773041663017445560897385946610045710033240070683452158411443576400644590496278591517665316577006742225542462306408289287328355823423774890080980449538686827326532655273946631167193096181743875309340297341071932998003873966163535921603831744293355280205426724482983486441239515306273179683010718344859994435602485595045824690004672981707554714794536269463234557258395783341945553186643887661060548895556906883205520881557793485776929271667128173221233736444428643461869551601157398135706661761254132826970126637658170511971419554960363704633684622609294181612183143460068051207055464269521476529542817344350186421385938024312226979310111696881230365192172167816898152528932158860535523365902764839174129469196972641607834273582244599070593262758942205082803218903117835408839228524786466536842303710729681601588091472646898285027215328015252829375277510474444110590816956191833712572592895165192603881280249248697651451984574657883225000564841902072504066118899104840360973539242191648840945384502407311789472203034765769546062075858585032604286094982503412167107183397591903566503869815122053544573921700596380037281543956825171509581168012378086386866424124911578724843939188045529577878150829429993193192267559662969252447550774676628963422987644034551129362568708985445764915439944607923104687942343160740591134640405057582661800526763649616768377540679245159801946331756358552180196382868602387717434002334938739711570381572655476115035276485780427518843876079372457969598052904687388564337297616928464315456284759320548367971683375686084480121703972120253762348714317627438196811126130461636484385312696442424815945072101247882835794444045250083135305983205644239786374944726831009201009248101987450420551738812622411060826478281833605427550797138990357395566373511623616551118488210937985975964548100052562935863717762243419010354814246053838774570375065756582925762641873564553464912304595452403478618368493697122766119287701856453086516782202376966595859618152193231924939041627915127766547836534342189907867655439281284018208381707620321685240079116939787303481434031495826007878087525163179809073457594025705247949669113442162298155070922682237786336013265032689920364342770072588901796009609023112800476657853271194487284361469021838874788444467142372391961280741927556235782600516037460707403155335644699561487976793855879400985471049550574187114137617217246112404566908152762413229461758504089687190977160425436377524894863133993389268666387476703137405023246861017228835429623230729657711094481539005227786171538574163563878930071081544737533293274016211444695908619962733390524629380271998063271174283600003420576448745264751197958556291600687695916151801510588379982263527951077887010182424330780160186917367043870004658078700287292614699861276613219608223795371184038730169673438757398065642756694535869481958426384196168359154387408951092476270284212892556342838998407458806858897583462138409582258280803866081939290469411546895710225726782849884031893598159527436631527018654026478014355289996194201167917810839005009938411036512625540369843906309999233841965408851861156497615163723280405092128455103756514608332659852817655779044659898960357041688800881958532769862798848454144392241883858739560161312665928399956555491745613563835429772075807851635153217821382532839209202919283448681348268421227122295220224833501382244263743102294875428569846475839991204693553483479101112830357978773015292544961061811952850628440211565092946755869923917067386823111563342338461794743609259048001863106452261465250045486714210147575982520299750156825418585597812404659157467710934271577679628263500402740097736777485831412761410179167568299126416253544172891493121525261548079996620616662535273754187722784535256150803262738945689307821717105209135532711126683802989004475537564303988957286480484089315435454306427731150619568429923800361476286854513420282220628384341070105754149166743692577297559465521054629419565312157151578806029188469658688464742624005418466208480805964051956225835532164504319909730259259233333898374489160994578744149799225058181401691280851552164496973896822126631512450112656398456525649191776460857867770182932842266076644857409704969478101998540249396760738092902485454306357987093531403992987478140690302027301580283195307417203908296816267296285978658143698055049814258771511993899387376760754041015701014983066489682292834956879465402810465048310748171021229777160438219330428657787100471602718184647650088201698704064990407110833523088330738674906701687490237939433188511732423575067815199634147733120019796486395261526392305652882247513013697034206823459763898276035659890694867714300706196111276914839686797930191127925082689407707514278232646324592507292510148898616183361662852451810604785167870944348643504668601534011003973963844566421591134101097623288863573511027652550019674165621032040333103176896115122400816575559507816866243650781760035653920300767317952294094582714098372549106561337825212946588436294937940360208906602934616717858659141238482225199300601923954399072281457776869046889861343613388742782061427002883394286555124268672715576041655153577508478043411465293631410881470803541192516864064818395978203384262098824338905077890623250643824327339685451635055833922959816057172885353046328353541441841180477874654759645397407095067458276364164903404508935699963173007997379800932850892726443208064526486498129795903365752611348431330386857085888928669078582405893223017419557549399486357604000162288732674981665943669614326617013696003174050993388582262325682308780485267860741482869388806028625149612083349370051145605457801792086580573494115535616525774480962594690911426377751320141194839210586038127460453138486034863336937170288443324223677417452883536467059731516350057745961570145737325872059828556387902276517929441417335292937893487717708865833403149772865122988995116928512191664872114513005998633133105779196228340364844053987371484672201288122287360792581774682988055034908366853598312620956702833933246068559907124858609998467367551030535560242108234698618106871152324201193817376646421676228674157262575383233221148288764372635308501453378562895383851613373799155464013114626393261720315100678284688110018171095032288629798809400184600500152854650740213361356566259276093562001671513201788317057912784971836369976202957495371879381252060135234722427427171386231708472855341205364098691559915689480250017774796680441084216414047596012364642256979154640864678542401096576505766138901695378526911604672242135736600997940277363870599059183457024621748180349396939216369472210241626219044344483264406560747246111378648128632641291756699425184288132457542955659710146495169205207592430670081268714045292137029857890031731173070877584101361622355763967812862876736231827473498344238738813963181565234207958473155896212899211716174304595290984467966341212656783213110908961980003197956228625021595439881833523503318469527502913959714220709508428992992298095888151336388102470336671050131294086438666353443069302117421069956780525107936997936679037538684260535253043045792282982542995877030482900890439778560685992313635660720896388680651599806660720320530563755975768069067789125185014231745216228371925753561326801554900312779207331942346589690469875877644699294836643239684615527044765563057708481902853005757875126980914456127220432022236495040913335100429768906358742907653498123809372381651610518114853228632034857048358969879417504904580878746153462105855506512970119426917715344951460391840530676742356683394372530703812514870663117154639872998098122251367150987154855739426129589493961008049183137559503434168030561562721058871417281412084106882841813847858844787979156758009202120462329213268397822068019313211055712444250711063565250429053343464232905481527043772240613607024665122245161412249609399428899598939384659526121489720537555671619750731248194708311503204248956634115391476157983431686687015914214733002011381168435306907082036017477808131136279993466705375445514560045804028439956877035990887176901036339034905096090993331161814390823193090210741007645990557936901944811009983376554923211764513672069683150829672171013066132185764501421538742884995283435283623696578395534929064635041150741503812083549847873357509596426289892419401207655340907167330256161240121407157177236093571797173945215957182513569771282618617037428250478254654023871501016871032968109915397151993795391427673077156437316740049923742167239874839309594514950506011438465378211873773408326207801436055750429999118203059617089367608418108613549026466116975261503424477694300909047672386444259677649790315702514230013393215067893424606994625278072893223982366510643380546852200740340328342744673338325709517455665020060534933690701496051756297817305693097538236173588901252822285843827591172485949144499271875420102884144825391212365699048160094203543986538098966286268758162631311309000224913868750319505196305365247592106949686254909739798565259802658247956582282860465451095096573206595894836681430364513475765533033292952491438987339657221484760833361801204838413587474410617295044902701664310060840945698589071200256398916185928833741228861015193183786874577985267434464990048484268457757071577815580501287482239081254722430828210340665945591126486561943425379062483457811385743304293431526026398834243924028105489218869454707782256377915266197530958696564776473325462806510876825992061420109888814825458721828704113791193464241859868821983309973179872831128611857315747973487301610382395022298452673645599563920692575542698946203334323053791286038318955764200626521158327925163726722736809377262363919456145264927309177316907081521317207576713740912918895689845583112536117270136356630807020663554698053424750578388535471909269329463011622875910554515165361755473232680544056582712835586953916519668996681117584103890410798542527350525011710139185213130736236740406334911444999447195761948878911730720723061947740110122872583859168186771352743950453251847676033167274182823554099953121000331225692304177106350729549496313657996635469970627242350848803733100559862180283043267321707373343891192463876105326781192369328754605399370594032548543684877170654293793899555774478399605919383361220498190935010839905491060971185550737339688339207326829416894628743284431268075868286230761955718919696537494237497631171498315776423006036597060183944115029298788341009824217628251690359993587631292991309491499209846370877841927357183693389727075177800705035862721447901177101876133997166596058595934493590890887313951608955285075141005969651717549712636536213927473528241296841470254455082495801161645124143496994295872574045617540438613574760630423022523591717633629329169766731844628748616169535336302110103458925655961411916154728724693811134578622168980310516889900338690768656526746701117465623753037325234302114012272364929992623186233064086155700758536456759237062473140213842115281834729149394072250654051588651032475176488378756462778247425357992210367566553590197972175351708942293605349102381060773413259828200170194985225873998978980167798456299535764494569815081734489980493816394761628984888180056587901184843142475601079971597353234944828550174248756416149715169484603990061236473089596313639254638224547838145974057525017523580343606173822264717597549500454529931278942989421391895788031596997726677228703824292548469425072530460840905547885773327305115714046204892051606939177197739034663407680219611905812422796969293159589439129462100307931708067528254663608363406800829798150523973279133852039682293918869059047112325755027386810703730317331359572792242719655188681640213336745980049176652860079029355543267048571324598199915037955923722045129960387435698071092202335414800158299179000243453101901328167414169273529520613626432105071516465557917483649686387996944782239520495454004211699902771666338816295397359370867386246706785962029878215882266741329914367357445472299611092388857469492565047871335653082053725349832822670485182036342359650633523728403306614100823166078929126545467139647249376062903164789754635323763997657000028915622809684622864020024786607071421314711903691450113471967062791863467700585175578713242556833127837685099418158418021346467482033927188789667232067464349928714511487680500440862155827365973635059030401853550274745419910289499933924515805332915309099451884752741897538338177872075014370917975214617018455935497899316291538447246565565609683870642176265642361675922732874471575733273679895157033040188172161054202436350748186323188422525800389592771874634999439471039711791512944662478378769040543550369744642803426553343165592979833778374410705018560320925836572313832643635162301245686090058725973693968190078289269618138193329894450552974077851399172325997277413178943431186515257163142180441125780854459989357917904909044008611390794076833377306469700709125739595717130828665361021273880642728797995138250085297475457383812620994189458652683387021105802832013026170257530304362012290437506222422210677245834915215090141949750156730169340696849115433895305569680620621272249343743002602394817305799600806436850295669400428049765720148029497418744597713297038640826235805300091685016322940888316233413470772956626556897816709246503610813512362871017706468998873747558895999740049677132682489901677034842500690015555068703722198863992739305860523509295681062759053872957932232046223963740805023122278583745121714721727999591513968085276036838533609022192706815565843080320069387707997749512132665558081261504925367608170363667734990407787153056295888246794149369054947692159633358691234298854754708876068355308525264985398558882158916590353658231920499809980925892687946509441159418171579470491629994649037844012355034631224025114664835719234175586020227880560494802124982650102956111167558818588797785884385924756685711015912822730429969554383538196552309833345751384201616945503413682047379621362143099776855589944493228094761236772153327934993778513157648838438840598920043825891791197280255845677912821806443597673570932369083693382117262756215546111271157407308123595932920519660105915413946193546443397328679253508834927594339277438621013235635731247830506771502577004003781808870672914401046466339079705780917356080343785305037151256827136910150487481191438761030539648853219168867898002782928487561372482608485667919871058342084765984926038410349266761983621726332747398341588894447097919734899459220468590771406619649774186306664466655670227261441744834174666033478250490952286514739925994983347304522452647178871716485685915812822678381977756223781218453924887763971356646194911234203091051940556141686473474153365967281622773309846815279806144428001970448294219789276127148637241144410503824342726576235083168992819188094841852779682938763415517983313626415271926891854491844202063376169295551503128365334932559413834970505439274016405982305534003092560217649624275724406372376359355546862474343072044390658816547244931827947181952494835172520119691897534291808272988739557733962851879771515144949607910545902314356824727080293048015880558812622439421784126732623106652090037518645884747477713073892450354502027224929280070262808996559268439402524531282380904271972732273951845524100403594400347115578953170251014688054626075067768688112724494043182097346256604227656625456429603538078224287638646293799346134627126314230005214799254594059669892525653150087971830769547084707254822531985255342156632113004631271296304334086759673497827630605663437103305940228834375678982503993593088574541763299818737759929993655408296755524497100328669729255964797698132332177494096692056626391986820067553123935467272469923781649341831452358644182479350647273898206063612948041114185758960753910290609972126595180714262334748606589989943712684237373348407775675286262268699977049475239050584470779271155317031581129254191890272407683990195459687886846271867604411880576425204826955451848308569210473070963171956427461818733126125805847125182263308003430345526905144147111859614225032022315042576680901196049247249110759062564910383514869631052598428824712326590442038623034621707096150284094950812217909687352461725865487730468322455115385771679722344861924796004145527100405964681434857900381594787164930158995586180707279492433196477148732246194969368638838721845323602084313537914963637184235107555009949956411410970823569752384749300625260582355871658371022067756526211666404675188308822964102691527756004362093727509949759489228360472586451622916849644014049617949969795077203841080994944840418556742866650065787620976953934034955135908650905654902787849237894566916048779662540698429124063891738613402947842789052721545251301017159500290943653413927038006259411239456258974351596767416708127774536656685853110451932396757728834367682358421044161279043961041307953021416033374957985895483342639125721864358391768767099426973666261535441487100250089375817602904996068141776677043553055730926217560253895090120945219981357302580095044536610705620223605003936593926243012019447369116293936422120229786299300784141273870597090008704512204771663219276067165698092410091362598564240371521471709884700944557626708318251296803461392144895433253910881496687834150123803839759136630838989159412319013198762376130874649042320301897831972689794877551377800775188946531158803687368520772986963023056443677484715433042928228383594855294571998974492038370928042730311870120005399067038528241402512323492464797741659053310913643392455747159701267184728075712752989018870960267368467545763101495604865849210388763891658454588946826410350964028819695711023873113579030203011790384848666133141940400466202693896462211203663217077188233692879812881739844098573540734048935182462833652422354750368532778559385178020425536437501463448062217877291897107050866516668635667044202046045011519282187121636312645620607931417572113601425528393400600962559308055719826346302961338484868655557752374761116002228741379780496983924925079956221846399169831705117028615305122935409911768349197801792411228484218539665760172173422392762618558988966842374075622706886803334268848235692162962581351630126900082356875321022298894249521184169929433645218561340493308743841876649361592939767524059588295077092184982032839266442318358403850673428732313974858001912137906894962526359464497815950133976631167590938595530813799674275148509209230976188678504761497429906952039297612846644948177235081799965915999577959536731414367960869640986025460741775772756532597152854504166468150879869537023858609008328065197326284934614736956379509458889278770633041983937931432318409107003861840507500415368388544717404037279127739747804019936099076893041823478668028784861031201065888399809486324548865701803656446494735932597619034446380812833979921943934681744661936630394555283171989813574088598660422308964948290750775785508331255331864207888159299372273228563826194153290271008625635091281675720720139587796168000314131774705025321957078690560278737959639533887134665758669355446626292177158697268224936004230417507746129147341114808518810322318331099846468867527852605550330024017845072226003757923978844637676164209426773409585513776239740358205888178123015731754579595668179027266215198415152282126351882175242923313967622004945616287335041220227338300644213549753072324905060672848728316661974517931805556282117959439811887084673555396905176762941165545177349283212850473574808484031380634831695028510229000986679026594866965417545428716733908945962363311406918057016547524310943068872097207329562718278168498974010175531046485463532656564222507172809667790160019565486123204123337721471692849961423980089678852443763058208026786451489462337856394824984582272239061166911227543610290092370799503458708196453320065228828626575981480848213974072813006687911019726074837840813963395307124557716870828526976701792561869675036549333713609076591676983109760983751876290025551852765779476493945574385318013072225284571282292975579027684977623060465925102618819311694480364237545303370194634285954532483343003601514466262688463387643708491090956484491624072016210788821306556145889339170006305022566863219182606915601804747656769540234152759567240382054096020543309496102803239521411733180133923201285292364539230010898299345718593097811757602584022987038814137378281407557495069955812466420735611657055672167548974872077653770094925047937282297256123709175511620396286300609313294452629485617989976004966449812933440570383804272312969678364888615389313378825493716482522311215663720989468106338969982487572687436665852119701345904990725869134823041540018226368318837631777335088322272216032025520762411874843374290820647473538593223194660293062398650167094673191155743106745349898236784073528723618548098628152427176987656425111776471697638166960760287772188701572565897899124590004122575031631878145499051893653290605759615231024970322577286191353773444364755433191316268247911064160052067703984793508403656870788088189778611978672949462648239396672974898772808551835184341711671112881166879877671896212555155478233179167789904768076442583596087138910671546080769870364553981226789586858737471415153012208517175877234878262258572136722042107867141136425244795383241165111233477433997271161568793945820994300014515365717354566135500897188373844448584424510384750531623450217414027971250720451335733149397956881824267176364623523520524296498098148765234170508025928696535845703549170683592620045799293023717163185895714349692319088849126094896369638488342009981287489500047875794556005646521505477182041192487380408612138927575834844509244023163408503276865074647926154306132160953609643856389016380327211764951504733717615642029425818663626215045263165006541810503622530611023429676817369123107850509035761878661339124917655496854568512302527433163913063854765852591687432869979561334422734875422056938732430470276069503385875172480017396434066054858164310727853910931791019316650979451608169090433844616905776097232936109375109083401274319387377022149100334063720823761786899635295154823215423099182395966037906402738782066137785652857644796687418286524280787232483133856869108611141685479372121702573001736809970076571782755302567474770983874815209338469172070169001913879056938264641958769985523216266913254802488615958235145277539207380576353036561751412818642743300860020777898537756805011557113149534901552641041884896340171705685960810124016902161021896269085041005166913670794024503383555458889491252148971616400781735962247641810291608237600148509126869323923708629283014370593017905007951575614278049934368686796563987154456960214691021372218014474184458752312953437975048791094825446192160618828339392321537979914410685456261493861153478150792478145650183571144149150043661157303458933942353633846197140484364049251466133549832749529021050383184483888498884014368106510663639482592556807781927379842525418570147141141991562272169006998066161795611677247824093173139814876167011924466600191887814349805172489450096026769395921422711697049501100840178255473768855579608605993325288719530189587586015326876335684203550391911012924478296165794221576131618436800605214908812795858379845880263079811374672334414937374286654821708073064196946209405854329965372413724046822407837387143390920393692228061170063944343873770494174285583591470617320203648818261418322002615195718474062010475554984523144644420851546085365513770951025064272250479615554557397390362283785622872655491294816508429181610449341061417268495599223733290944554074370621157532806514992640226927532701177861933960268644449042499196949794539921212559565908527434433812907070356113451585185031926306209292234289994233601462232300387536995973173952815116695382156150193288171023338535793834966557384958025738516975921387904242005858846962392360477855177933693771332179631364708789768425585352201971975262818408932851637386749782271542761039784484683752759201865802818007843141122182637522612708903417466760447802426676493896994984920039087178005785809018035966369631145554355696953313484897083065569485586016016978019753238404045449130765958956686495214548284388156198551064670869803682817535968459358197015975324718904072209491589647591041763191344105185043503856269602431980039699317166096938712801832162524837504455520646350823063941294603059186539202405660500927447252024117067450013615606267585457590530270620067435023788799448898558117580716086420932557427846796770292224254915909783437163553630093455289307526904590513244903769712924325983902424725032469125177252680999237354027463562304082289639835094452128696224139581589017989232388575084858987819184789706474343304944671381386915265042666787777155636627299738409815756042442003249293629780684365418979012917175471439224578174562859016587420768809263012847308620723742724077245721238626525586963756835005096126999962130886724503678410874617693283136545782853061593506367710453560019003352887763057938438284175270759642645370902789621615630956124319934218797608926762218238115396067556739862845386802069000426994747943797560181138578572581949410367713830889573215732036052022345326459908749044747139192511171383292847411663145913616289775824595054661648209770773281948201155935139139985929872299830026105397505339341382182362365862912256736261515514485174218236175941304542351653744801153652170629941498040392558699233345217962790648239957042484686725780872303858302199258687804657952805699793565971550827661683736728130363696328330919852907058670377476107621165118771012306857868195770550204296383594815310494336452352666840360099542763745415248776760927936509269616339040109202579075585483625209417277971337547171235861273912215015218454239305806735375055434391358726799319328954159122135819961656890958303532513847369220786482501632044842200693012732809263729862242461075326342355653247754367677192346914629508170901727905559274526193245223848867486153830757786935990182867180434783718289775118697495152081342572936545196535564907490624435352030732893897144381381154890756823231400402864784025904613923167450595583373827993603618955987443796693716960533678878319251356068075791399879213984151703018708981092369414472904124730628059840363956693976857699825473924126224017278342237523247236822544092204803557869514985228247718847253088002700757877544034692553977103171630983703324809077086723742193573691340213424925946545749514172044887865583397987008861315785289912256533560448472358884856279889364394051606388011507851437841451097245198565998081803628321082018022487196674525507713105248326430865102633846273732380162209291016777992839329678882363069537043371872179397885888481662190665301127765262449736013247123014850737227531066901556865426864863004685927236684844954064815263764340577831272425204498567812450972053355171619059714464533567831643971905697484450318880977284178544161333662976950642433942665773607001474129754283251842621753101181118848194743229494539100269189546783419831096716484249381103664425223030450106097480245421011176082294248614741910900580017012940941315182042265695998149246295625382939660080068060880721143496196161729513404122308061074020870279332645205878576390041059991499992785432537892130978919842459909038496497188687970954354038301254571290095720140118064743315912035588835212721854196696560740949817094383182376142984964947874419591541831329714031960509880744856783318958557696317234091745803530038403446913606586109100834184076420362956393422414604054583418052913705522740506425544547452852543658554741143309886785588278480166971168040207949965239901112119226411235891248545044651916197403949836478705805408711982882385240073953191458432045518179839954510564528150482817771291686337218089477085110277552147034243543713528556651613084177150768139660563209538560855163552992155858382309893774663095573221486556690486158103478822759349853765014259843912284888596523221114621996453316800024114049198583614264702224754090567216902294626142991376060606383378663326104311440064254234994429518180237284811718618637421049773340827403842503203195555126690009413167274532500043538341843601180153911312133943816528126962393224392811723694787156558433289506984030393891093265518755601585295789902826726630878617287400269911581359114125161853855716783663277970397160772052914932404662638243316673901650415428795465624342702359964654257797466242282752069748334140609651504371634538311478556857694061325409034334389328712369157093438771932161885733061011949867185471821936559740436280577527347055501129135319535464444107891989609036865439381758917777897555327982732757768040948660676413279111250433239908613844387233270745316413471667791994292192896128086901038928836784123147001729111973817668186436618963857734107318833256845852177350219225490565339764514120664568644381637992487574639919083201537150935733105628712572476656848099864558164147869910620145860341073273691078817786590652548418107133059046645958328580142021106342514931149314592588278363334355154948564628658927770863314915508691017722390930998384537053800792904069532602651845699414068403431617831711543207394036182515103018489841099183294457140655185070115377248685805872903085546396171036621893761232978854635274150687811443671890565656842169126235841134956258706571661150525586862707694259266152831173665271340187742484217558847047224473802669402974462094253331497084860844003609312880277047749363357106955687858963103824239582332519330335907539690654071049838135466154239544423532006606935245845748509732611536828069818575731533041948056938666551433139664698750196683302585067647725578010897750682193781555032111312815163471329658110356298002005618142942543024364161818487177426748966673526379537257670653096811475823125049240709078324388360492677760033213332623034554200739835705858301018386795818095227408103365955926159958068094172156261354623942909427379105476212495746637800671674019322726669617899558237685130982269132699428506168129779886140231710945962432144976015275412430269318140724827418238263612116262769751898663713413268985745818691982286476648933766584993221242208105132145329007618901132926101989022658907079719746636513645314760038618765075093794816357160615856738822443645130011793873328188801631856407401386877339233768355532389354775349236981943711860858175609592753675082383785535107550508923449036040377810456792931186473036133356064152715453313258711923363278303897603960267194735691830187127980815454270507549635514995888561334379450679209382790820173499114390409268291940082497333048076498569911236121345135278268036230784550350485895461832505751618623694537550428085708841783454012592337077831304155748708960598582077107438918001067276855888316968727308904694484687904846706828308444671909995933480838760288152863067880297496359873721811114634628102012319526119683600397046961876602267777096614902969234846677602489418278872447841039117476023862192194365227232286821398735717291445961559339309280043556795394473496823085193471335916260581705203822209619024299066673891296548823171673671105146729098391566165303401828922720597054224885560539145530248727170309687483192249196727674818199642781019665215480818337198191320723404896337306117676467900533413841194013762648629356165519958270466287675711750557186801698527073637458081448130912050672588635353693413497728841794299305431334008691992441310746400360789861291409764436882584755240324925345096695314041920454449832364228304771214694176408275297930194702324957734391941986076764854798302342443802365674016636083345132597204415069723919198416371184658224695637487633413043221078910140273638505782130370454992288746237567547465731234830399305037069975836474122999564785249614402183405471625897885109696493531196674642896767901080957153773060296898257133894472624790055591774833386903853645405663122535257967098691926396464659789445882548543245657535514602395676980221200728575413982406185949593168447473944853357012345574158184544549496290000975506233764527534247813411413967924058911200100747245046658899201401016858236909287954196876035836273133234298502541212767314267307845893554839947319753382641846877170442818800167601561261951753744309761791460459861801065390890321308380950753957825939747157915279101827428860969168307443412400988341272007236345279336982500592228321592374169603241903917504609536931210348149230476085679762244882129216120983365138954278555010600960102138071234739906832680733057318148542886161191499642253670586806109938163026602371148583415639157086457116052122228637623378262715948959695853635045570139382549050422363245071926337869475626822898285958746782787134301016356407102642670400293799144285874235305011550298463876243576243160354168552839804185543279639033093724495152444309849174968480760625246736005157822335350689004493935243720580044814474476315592407523226869606761446540145317611514760779312195872581975627174226740247382745179091685990733816695579073502716997988733644885273088699020495753288795124792396895907515279815545731671024007819239197102617834507526029079843353753784604947077526949186041111212157349426242088942347450623143871516520614929640912105827789127717742051540677947228154378802835990650886429619615774761892720402532084838254059840850044203357751124088761438392358333992089586156304813058665160244682965133856235191787644013112431922479166332183884143267738933890166087747461510978197311685427279658101207978242535045428730489900473872889938969866367101614684046240986099656893622230836661117446407639193585495956767972701572496660250708019967066248006428700390715087518855403650226207063900752729378494575898655846573720265744194551012451502754677609299612287808014165895342386899022047281336054034809144456668172169363621618694864093195326128789944740775276525566166065491410380874506098268446728756519028757397694482601484524835281441454209008078845746260547093879374524859899234317080433938220250841631328958935570366802663847754159611212189800927626364099113863281164302454924118124986023798055917450399319760142850539732027482429696063159990928655035283430449760729848929569598509622607846362011627229376500215920166835130858257520548763699394065336266860993615957455289972001466796861393541374018098617879800062293687228261215032465212246632726187161521778403335474501826329028347829189161056329159468512877945438672610872058888750586785438787948245963140049161030571906526322007332543802706429414676101295348404041336244947269829042840284809582598471398572520765130486577487955041396154416283463613681445027669597911818662048918372937940951923827136758911457365399742929213370513865880670726871499577141625386269311991112460837464807165310211831313393176248672472917078918059798696771071968981713499513357961933628405448708009693171053158413769915149493529283209402381868488252234260115235856724030951600673132204302329965584880280106168626673840403429869298618205932278780592667607591098517627289196357769519053964923976410741690183272062604047604693943749544332952107695775720199307525012204004903894624123910678922703057208921199448745541786208949943416466177565064278244426759509041342989230598699170006672382638802911179171319550403904530584784429491164312555902269034668106395896394301430403361984298431324975192002837696377491766209778164922012141986604744283813150009997295541361550392861842618919792215909048391971891636218204230420865860890937311633265899390783457605625134722641850059797714616721667019669046868377294515159529327315603112720334270305298467991580920678751008505304811565253050090018759303206153734722471374929189910822976343831225320375297380099972723118754455654601672765240701369052331942146081333577924343464786979072934381187546282215270091028620307569620827223961867402823999186102586467623390461840432766200403513945271108659456502712250122753220510062757964670013939812660146932254269137785369009425221035391914422995671626983469027433350954495428497119794298459198381616323295538738363372792452956645982471398176174727889182395343626278836615667025241223689362723460527822931042236857997135660231959416097235152318516406598541051619309378500375845431454139569844920185758905303232343582363430820537720582683069595612900550629008098013224865993671653144543751821206958049229695025948608433078313506760089780037879858892279893719414537312770442859284558206285802992845274834372252452714504410517571777842777958131088867762351566782361364363379748152163074489329339429475541233536974115595640887884719682225476257778422005293998200633830498199673080726878974286023033090028523340248150469924141651961748728442192447969796212085559532346610968216520475717528606979068770217555178759541239595042147813460208657133675786755244553922439730863402876157942165074701925145291043089658831726318058486276832538797376662268958814730983531657591434653278280220398346508903429954878762766111695393053850014467587728949377067768556483841446086325871876571004675563210980963248650669523698494980947182191108767360201108291481456996458356978658601829216804232380076096710606391157729320324089817038897830901026708293681222685122253270309963062061519550267661545428275464124789257423684509824837169487627766428631505852125379515530867607861192766317148971192393768007045704283751470747186988738474884202022013520610606385629155897786619604827196386863801572348290877734554963666870033300740913742786245940987536755172636783533109398843529392546471652658468635935930863956155216380748141281840383922713791326470525337442369115206009719721549070807875794632078057259611551682609438244743954613016259029265201322595440177937045065211360210474734962969114341157965005969569940646429431447985086423308686846559180534979345040892184338329708238129286862439037050550037247463492738619335812390287703453912146853613342224549620197898691176862355964332494398704031236870541951599940591871765273725247811375343473292648072479593361549647260274107508583800009157462923602795332047460010971577567085611276497114853661057454842070492281740423447265930075126198141233889035309446812366560363999264013647510172137360604395891300936463256091044486830232918494282881563764563076037782787117365667582732907907117502656211317752700136117342436997846675712114046399067005009232199122772412535738860563442089136817782451390543969193018411841867370982355794382640538272731650351183662145689336560429460602921344709221538631256998546494275351478760526470240776984835985109536948081834749139961873889924142347757318496557971286332559952337589045153502661586003536447683533489664218708801289934781785126352199778896728320215052832436817246400884450232266885607716286000024692881126227390276824226207112800991387455113049986526470714072220785731247370137380133472318108989430572048901617787819410076080349968740539365840105964118619577981146978365259181983380062991278240638577516795400139644343140992856913024144960512335689105295474373393309950217423254146138228724905342075301530499696067800168395945143121039649667492175728939731435745479938118153977558360219948871544559139997181970345336572235589960428686905901579080452653393345324855598267215393829911803968430532044609636934295660048575067626320998006835502454054103704989805017389562678186643606578342455451584139432811410405790758666407371343159277293603608048850035513743419351429623037759596565438884480617329609969977728294749431258783953876774785050317340940717245735576155007223652035362855167611145340615034057983809123541815708674806434871080391272737538320770013937234931107178941023581916061272450332231096047997646317182208824188279215889879455511886516680319216654264683018261572107586453340337023338586805434925408458934366202444349916927274530668775503888134227280974524332968225970259042375964320283976179637875830308013712471824945773192890490456801924343561388162087605142660411890792768603574624827479064485511578462656036596060693619948951462738526339560023974663198727304541850994619716505971365191349902536129424814409366156319155875524064672039624369031319957753920770582737979202749465468177357386970798924296281649501113604491974088860551237231099785804724654077669244129898110888486675591748619829573464973413784501494733388136294837537754784527101471037635238499668910701876023397850211659389545572404016676537047221083380774164968117580108234699389692615756939742520620254061665777484676945637562273660016966337581803530908842508243836414680515006740559654284303420164721776474125126384780837658574430083062686743223428952735382022000447623326331703356873310584595671344640654926233136916943656041668988026322122326169208325453961637502379107037319201461374587973529861865784177852192771071883886435438104463105144979960263508547996784122407068429745650508241246921292077103494238695275206368798553550237851160172566431609888413230807648509023620532924632936647916875033734365509635664613091321989715760017014654137339947212382700620440964500444214531951244790083042259166736262506606270639976916910100984387966834181498792162702802788776966438802999863136944830854350028390299920139589001476495631463669831232244308669233030700880753202777426620746815345347057713588160191959697196310136729490382648117215637417935786635639684138044277905952253979297565982629205712302023056932090226793538705810030214612145387500728633763488241258037982806312195635314050370739087805083773664706240778829053730902663604790617970221518558062648026419800923498574764963343868730025819215976285273766481146589490030547460716964628935830715877354431830763962645668002178382739923211133140733138537520662073231702593013188618623706155638663794200497514201494358763059905194740375513214208948842566988530883196397436165096518309570169067355957670807069589290208926647539746727083364676714674964370584592912902892597507431432946465325930084055529285903424672598938083669616624537721267315195102978730114241724875527193734187893328760766742275982298944553287333934802844753726183626840755915789731725552278213945167958030103421220622212376436522967137079845284690167767429301384597447035104018136760814532049871676290215737347379073043822019995242838662443457675901687368279627934148241141587086131054183329357532068041585901536339986920370483139753854703433167286729251581479093304910624236619380667418821966599276052243626801163877465109662551007703399195572047090812291863795921799231405402732631113199571216014606532670959470151343679072142005152187839697703598282365770629531970747369955918918672787410413873509475913339690224453217378623562407912133258737456623005830140013586893052059524341425212466113161987063953537643085934331193036501489683931284709791169782852875200062121865861210893525229981578463219975316009793223392840800110253541959135876134178053935394764992465224845039948129105887681908567839607929479595554614069437781890695983349861659381505498927120859968853257058166630697165615741601083519663648366037710653997411656902172497350126333077662151881386851295691238541813284139370178412617779715290946785439034512633796047463545756576751233049615487713929905805779918533050763258813359365581902556633923784089040195393214388084775580185301471061951226542279449741489746647289520245876294984133539671828969525155137500369308887181569303046402505667321369272735617944346035940386574388116019893888380978571151279378819166558195655124243663129995138353954488382956256308971270444220363687712704373233678713668311000556391198475460843767793506168253556911246981593498470122549952739572412309413308700263085830999366990377210942898823915158003593208000912391989632276440534716948196528980363051771730512865494226146828999813159291415157385946161391086107723954060058338852351684956326740799054666725565134641469692705529786972955490358218122880918191889428758801948767083453084248627827114745872015122927603350398483444132511166146879447835783890598501204434821900596266498971179581106311305378015636929550125348710500111059267530042361037764778852274659879687905316142654298020476358878116212985821706332655544566669169261101475019811807779033726266781603317325086801528166787440386758643181256688288156489810277173988604423859637251287379669743485645838410592839908153841849840910500926280352618282931139293989373906964687492827023860408712832755942650592544471381590719843154211062694656593708692302168648743511529467874670587370850426122761810265448129054573712962532009932917737043016180325332364835546294079565580079162608761209876646975396945339853104979833791630105334140061046234054049702325837373160774197207145600770973441438616833102596810462520816995627237749242766235985347409324732941124035796854447240273683093246755954588226830714820257614508554822624220053146593003722309634881739214863912047308886919459681760696331191112226534407203031072772520108631624695625463676503377923316644331619047090580991780464773420369971408413667430059331928417723657743104690423568569235578634131813607292344098570377152355186858270243689946737416169127645945022931467224669681114677628994688074053588620371776396876256855407862447331859683198901556090849942297908085538911448826016674390767976019433849044922417509279904277634790174688270386650456421510111101799766104355781882724797994962498264854665349473777509313142239024908509166103714409286359383621819210312675126767621663082260253755793539322480969890848598933209697707117227426947809117233792850025021460121905683571638203952575755327916740833051481533181052059770188087521405296778069715798650411111581323150398038768862432466195188164449166068774774335689187706307105707476767161994835968915943133719172836502016370020196224046921008849462934360743494729058492561455242200732948888062917773791527086551215634585119603402581230427171055193418395006665778147239451362473793873314620033508904885690494551391201910391081597617840170892712987973624799558930625048707201269263228964274711828935600471946663053833041965402357523339207449418420438186864916175428558595551711781116998355898955532786108793793206142904106043511457179251068196824001203316726538787011200367251452661768412182368713025530167702528853367267086814439028648865714273670481080066778577562184146976923450395442896904926221521555584683038418067428145119077695542806919502758942975710639275398040150461475419707056767799918455516505470222808259918406184934566926036389583898723612614730873665500616610886572370112011799347031640690737734170656870698811979020574385984994250241074322824479355384208020423461420963951332437769308543340352333801367055676536968612916962486343288875821271565547424880936644303167134971616139670669609172310306451577323062870589360173866278063307203496927305881675984622243139627830427826399063122236011811771345303956866116322198100192151292074128635145284818403438794867157410368339824029239712503788674091398871796096690789138380703038089167366643906174272452617198855409023479763640943304284857787489662519652339631922732316995513730349438697023683329079607609131822057939107962190701519415687153854974990741842777852070398538380821620993051528579149213949076959318046430764227214524421450576611826748989345332627185972885159464048409191712169075847806176102369676718825847119055605268880751964311416896728671442511302432788887404235454926900476984912228823273279179857357591480926065887858343103906226203896441559597312621605418053033025654488069340650452693662006918659764545556023164114769627200200253471509558874729473002750538811124866361258219355085745735832058184361674132761983486278738601428128815113015007002686417066510883740100070246931195889765131694735075597113641680320859152193571498679241393592440167716172790336125028007624971853789515892613345921440422447350180618606874648661407423818217443321217394616639066366209483866472833876372410842466923163174700020046736470326967234043838226298473850185654650858542673847331852159702758822025256060615416846970953066856134766312394636786666658804880685694848304743097367373190227513361957988109769268161613012105966637315975137280886321678103947015023226399732348800838918961906812030778747124623660598944746445253559827928107772661210370866028772999243190824221756479394084775979522239161583812647801231347778616698202699935667838821826767820861446529446815892402767152778521280024094211437050941139934099155068346811366421918418229942046218525425600755597197787925950066454702992013852596335020827728012193170746064418996921640449149223498432057252649350811002265214241620070547022013374567581621608143977193924112571166946262436333744835729532715674840382044010821342212233029580231411531220894623578648046877442701210540619215302152598362531802029893479865098757868121313245153707695582830690463174392315926268612451667284380024416991134941065019813082449192611857057513536631390239307815899113004598274162080983328033597437058959798872473739848444834048248505392459238075275853710342312979390491925105407900114643463545552572526744122457371743556607082042849087678793271432076076680334890032162006888443639478853887388505226797662463478758178807828797614351117648199952926971323827416863872883784813309844682751212516255084567889380936024085976796065752113749229230115437605337061258508035985740997437636572571198107457240223927293023652951708157808110814017703137332090093793766428073822300590062263030007292807626428311391011771100917417788181527611071875768717687638576573063199293247710164946647464911322922763429108805360500970374014524682347088305252443079121864272473354384044768949099166942713794764380094137322465429210454647447965783458230960682875290990880983770072523394225418668107937003131723661094361157976077009675125908441484717488233015896778667888470657000309188401702648019882516619032345758342590565388818602663730590527599084584262498162390144444629223244576919044314271421545162626872350426097664578004280868726414858818968140857609249288471840768634134661885053469919401829707804123653927031284446825212364346165583032681350292628722039671741069739159437320394204102230609123750061636707713892474182231064088214277007120054739040975669016030078830789230361090030179092298695601113464770410632361839937595307197279385825716750709392113531320273766874597462068086895936542281295474763581496433805108190929872043348288002285179480585971753051864895444917392595766154941196186335485264607698292714641807145847722977013120930161545924772132468302819882808572235427424210437488847900966350702047289199747142598878511751825285706401456246601265624126878020652711592103633679935787563401157905962287390810696255679978015056666995577213058994697263997475969393604024744292210999313102188051119020168577325854295356973338148319896162160813940310021036139779036286011701874756241684829401524837930031256484460412517757247197699202154257667265959535897634946199842593150206398605700033395808082955896193111711475297126993734460210160386303180210381096025507581963858795041978114325678313805479975894312633604020601757715307679576967818565679243863591443287287647433885600806474191851270566848686526939262813755131419359921092667369193485884360939779675471444488953207821769248486595526189698665739433284830265998461763915319017700897686721853723738000733339122425020653553636163653563585966325774922946755511010835283329770789735766546004444635598363080061782466524640351902573878873876692246367817024246576249745246279557936422044714043562032019859143572584728253474846136223747080236824269334138068041840013341480869543397485418067856718775441113630887885244669557465450066339440006898617179612834475107677037282839609481652953423166790424750900799129486324278683435864389761108817187222639703776996479470931062908845336605029047028759776867926970067763742023256035227500927710335423053996878252368718911840941969412454838898712728626267320823121139530140907151180317992132884034468591810570737838771860771622298043750781058059643718584276772210192213055049670048502214739074904271176884582388477680178284898475472383674896015725279866032516500664814898190610813383646765778429510849812268647371546801256532305258061905563704453067441186541484369693862902741280611891753538309659984392117304340792317080856621775098846624753022797689111687868602624861459913767970783483221847510851414405157838587611625489625881381962741723745758571958848795652579951549637869886534661380620430480347906391779900872300982572989046164236783799966733500597823567129549327684518626088208111875411271847335249137183461809222399703474711275653827778044747370010578633645943467541156172475518428452340130739025329323738291299370693169447639161966440368597976987184206607770942870277756216702766641736554342240660982612362985609807895314681546068197474505076727602041377820815529329897176985204830652869109928437102607332970755138381412807516091855417013160827834166283382087370415395062066721861455968732095299175559969288218239358216980066327169678272195013308535846895137995110244548279659055096031475131427481063369949970218119636222593685116158743185734481149313466514669873172881276979345828092213181209054980708899492688997022826227283420209019160146458259115525848561624171640605260269356750022872453521987741856575824343782926998163435157409729248133197827930133632839893898822499186972400252071428224532247444066261191366557659803235046800524777884776280220256970543099991533555021195948400534502547831420290163364435894141834699374446410823913443662059152792918934736465421776618354298325359297289674463429189584401991089906380327683626832506062339939599625645028425418782885095920672186976742686832695853178039385897105132311663077211673037378100390341191261433670561857106533352423735228076881892916015766957960752361980356974420088520770367851652025441537403853202791487579244122156903223662004737257152703563095826947495892278632431165155982236884900156649063024417772999236528711150088559758663639833774511453413970879674215539503239137480871445528396081815552191532891726225826929768556485065466146928948440948829483663978093257841500453546918481718808065762309433355966419401183327437853617390988218476658192277857488062634690056276524035291599220981675434010322726913198982961661627060223790200127748480732041074743490394869090589209950891786575224238616135945921976114410350348616920129196082556872596230624607712444509648002683185588026708880238544316000059503754388083712925020845321035704951639224224634866309198764833152823840818048349205634421074449371258620422155917715081753591412932750501430565131305774456624938242618901913195080018868299168425574346252957181716851776538277730240123536803445259777107908430176027291882152803717732251963373710161522431952740422624628338835316979762116624981756364171737072720494788104715016687141083534235877159283210676467297414121458643255591598371837665155752864982923291969139974260082278524133176711353514898891866833774704860041337284157408790210935256131415903955569458751369902324541581207765356525199666867521635374413594934831745929768108130077663461990895135388208633145410515550203073993905088016495813906884377795646104246924090851066375200067623861864667904283144286944247897100577693295174354805654682737465714669514903082075708964536266130225259538499831663979856052083341714113772801956220179301164292579531324408336218560145824458024866131021351587106645010267090206624293237013722963471521710065812663177351968981466920978448341412792805181743400132711107703533923375855894973947435740510909416852685886540727234263021499596574733954649670934507364827678754663781411970143004715408932666511490566723298943807414350578156516577030214730719200399859147940360576389646289026543877592339907260175491161903407733209386954173097402210132259486053197022141580237546775401175581217570851612106853547722910008520753987644217161810306321851654066394980670793492869639422048849475964007176640239060924345706268682961428096003928675849051473898831103188818167141426535907916292507466410895644939441075747018633092865874079102693096592822053166818356861924687280421231883716033069918207795533105616998521165724076640726225215435516117198587072347953574890625001765382019363930922420086682474013610768497501957693950451234906710484731460791254925134082755663203684333325824551852462617267503850859929743086295527875372953440974844917048616950660175532409167901205135918163455917715831512064181741481710206777569710597335599417053897637163759736675791598579108071367363480550537904394045572480544672759555910243356851587571695264534668519242783423330622781159271825532446398712149957290345885124375982108284400037008099741737571454379064788431149705522551666751331100250430914793719118886463810488456473575970426438303337782684291020943701353669738399242059963272942166128169295956143664441464942547512834318795615377783094600845747855718105877027705615855279812688774204431023222693742714265478419140766801536485798776339491479788582943417611905503780356408520347885259500983987603995490107118880727242312600525251092277335753018569771957854508155392313996397050386364882947748044770545982249375546413849942998101379790060062456825338003918219898814499481322690604784230796443106271379685815311068463030297273954814030558210071447008958138303610477646979894381393830782032774520149475176759709921713474997859749005032832436195951443742626977149274755521594259792527915062661163521727611761802535975340978409008643841555175570164028485627692497991027513474225255772466994332738906719308941882370025947939609616735169039664192680447288093633041181581866148430112178125540861300988526579578405046386188289168825387354495457566148024169089250466160630500270790148224805034862113828774616096336114141397705741739408347146772834656232625857274598007363256356605187502771978489828347096126646940672775836381368192461235809276943200347256091602405947435115356850401197344745519221266255836742766759810134336008128923768241242691791113470242718731728633791777626621161011641214285960843605071537896762071603265049683315466984205222526371225482899792106384974246589390253695285098038713787254237955410409545813873174917275848332399283839871458452534958795645701807062502094298946532589255782193234949333240571758104209330061146566686280357126571783003723411416134446775353349933586283775056800755328574940257842506434389588745797342307236353334573510942712788730190646086044866240511831638692334712618137527025572387520782940524971763043686999927907564612037174918412994518474660141029780283383518355815282039286810142766396577445578754713952448717463119082352005877730002375220523829028174447923904161369675491162301200202752557727946009320783796338445208304745716990064887957249293617272308800940255333795860023336354972617691230481194249737665562830276476823959598904971887397771110526431384027611425853459557858356737798746155932525055121176906506455104580837718236112410382170912305534251088061374690208981381354465828804055762443600843354920051347805387754488119777436263326651830417735215479020960056992449308006216608533727026950466186420713898600510493843583443142415033126579446928893291789618619550569172003255419983983766999916179129473100699639383592248033069496166488666562638140620276938958353518410001728409374120658560360507636742374499711933133568481550337412110594720100217818875000626756878691816759450796521069808749736423617647513176551324426965054562572123060135481949704461638080081584519934752627219439627986785654472707889684873378933055601004486393354282802994541883381533941573058654208240376321327788121169877992254665074697687774421032918191004766578959391573375163006722781650157982664862073143598810284104444578162556624136870843721081898092687158822584279572488035856658339489901137325906402358371512138351047997682097740205327849388815073932858224456475572104093252914187944435307288144818767765163662821309267019823688786767633431179723276636616902497522667164775023418300618938529354954718925585374635910387293711983987691940863132267970667823852981565879349498743586937026148320143300501851988709519745516331008948676500340791085501587078305905090289617273285401147840863593417861321491519458544646511137478102635565381691753912261908769822855904160654192780747071538790677653426417744512005910192310020543313141257519072451489203019489889752385224885489771741992837839838633468179514572675874443382318488545557815655066710461062719469815210940927599339803287122884693271744676479258356089783175942932207869255789218389065530195141759545052494274122319466827547066625439028967210743505073085821917409627734972899968457003897991831827245552222605573291404198006696529313304432735067740996145107363993751663072873571074677346867446087937387513408281050030526327259511497779405200536416403811149286151675070381533140544351937981457291309711127656458372363862574237824957320406175868699493849631786690955308957702517584480091285166334810468066773594654405958335135965624265564419186073720312534028005954823595760353553360889663831288679202640959503592394824580146249889236404813714489411059172039874491587163508558110361547017264321440766574010155421999752152083094987142635265648544916525430547010879473368819361918926990798693329091380713882214587067781655473707229844821258466253374778950936923832750194416133295715476906844714766257899371279511910755953635904004338741872262211871515345051351544816236152915233269700442261305905653062240400306159103532229164942335617067257009820227790674287131802838983357779165435085819570317861054559183577767417669307993412400781645388713962735053825533881059231240633689092893596835658674225210796920266948589046047441401371967357536513081593450722716277600669369515684694804323682559173170455100026963273701823602826167365520049959268917587913243683016938826295486322414690456520714431536473836755958745027699573812436135133511730856586006994710260159963532881173022337623519110772172038077958873428596228626112533970140703367302993408662872383143377829517366963411173159602436867682792037333960754688232236559792037792285125703185343425307851261334766520881508884386984392244726844522280570442397285441061402939174597447734073357788558321576018810812724861568379229147330371287694361687170427402169078251698611114127827002957019805872712758351922137251673186539214543773488602280789933321737311619905976109040715938501230330420050346235217934508572134233274121151057596680423768530601821239344005878138277773935612020020494931093528177547496131881576074454589392702660633473735179684098457962759240020817207079575251527830358598211713168490864628129475501253529090511585568233406192551936372708566102975419618469310498289999956792022940601956637919502632025212093280566670407760132093522997555969376379038029252089610532502118548461071932207923198421264638614073698042935302418987872589857652174675228884840163252833093577643524490421894798852008511020476174389224243009055291389490760334186322400797897278567488827802064848275490528921299238983606883454470045980706542620454761954369607527358715256902004445619125138298189486547470059863257044486367884065077063163999224935646438224877315547346673393026142171374248909434285609666979477506015169008799538607302491595203026857762040718798171655550823997719976620276411654867288538354692915557081464765410931378016057942936680189503144426200598038199196502289160272225909262864487852009239823381976641567878086603442060444982183394808361148593636784106374014135546911630276610773510831135364613757031453132249300423651634508681889079453190587977280848213865935441353379471113139348836546669948589588579526461260569122455944223599173414809484105774035156902794429538449077397428351332474437764894072227715601267223707767152031272461790662454298795969896538482355623686850557637983173178950240297561680117314890524156554136585247346373562823351108561169466189848202298720951768490661167062206415753061885415275207529132337553477474203906152745614893873605452826687825521065950214342642213435339020551072180347642961397606362805062549273421015779252256384280202574462698065392454392537534483526287293835754184444923872357830802227584503153881105434229399561395167819930294821915990369513080878259047904321405239407713120715048216346100298571657743905577219828577428381967737844181171398340103510790221632923475082294993779007772852702278904338298604493400414613383656680857020817039557437806722308494993628794210349082235015028733159143944151812685935342428498096855731410346637725779425801172218638571084298406940284996631162946755588991836484750385222347488269298480246740018438740960004524547292885114343332081565737873021474144746364096706346381093729428642391687279756957545477592436060485703192268954652243557796360516578352613325138050804894522020165118541529114931696888553664325504240576395184678556340078464739342370126212593596117924658008420611563343911753871501948968115249963466080368594747812490658816029443272734571023520727559211898657578668162981834622040807638308836217252422630888635204270585957221821349278237714704944387742006152566110458217315957835893324530311954222796858065080042792488229378793658463095807217378887948474731597860001072682067208572627568115552653521769188477944521588631190442863535882714293900652502122513118536521516216307566515491013796639766243864592962440730878049199660916754583745852086398518312908508834828839861157946064640988852923668285270720659522641940713570593104566182346140682140451853777920493678009476979994595302836886905233051589758333088129202304595498724259258280639887632798475446852957846805540051174099863348123733205643531508757982282813354079815222529638371589305721716749307512149053753330730825520241863166444641633389518658783342303939903082356952828578920838164158493452772005402489422605225876488247204811162358290833187501313626672372395825341498875292796277549584676392130896673306055690541650504894795243583047177576046929678380723167059368391371683374788554904461537597966126494108585455413101303140898660248196519110876846158424694444143213512305931945832745855267004388840490434421770673857464348761071583100019100365445320795878374168799767805418614922915179646835207037162740406201093634900620988253798437112875065558679323616574432004290088680270714720617270967029762681235860626806436225257104004812694344237677994702127538954532685781986433988835225463689323299261134987277165109284591474936540225690553986034564108149254375186008948040949459801307022721023371717288129711625758965993712594920671039431325811086558196382635834964412629614856255018186717340655008552244369507452743420423820307716164777630445964104281906887501438068335649021186887580807570106561291246138128280624396471361605721591071778610184651672535809831782021394552214740605682068214305870647456753586524851454826752680929475568395930688449754061025038274442634916963928701378705918813876285009039275354103843547432425123407231070445835783560126710305943697203632335319357796285601160256139228687187308150356668501389499562136197360158876594554252504881605745013664353532894161098975067650745201034837209222529247383400375023963133323179258106722137340539408238177345335609951156981267424955386707527350254559734246783999778942229119432059537197513657105517701156689399693213441180584776409461984829960605299979917176500311373253141087024613045513250815661524519299292226903199613724088540969926856850588581481412634250737169621588937641505537533701792272036260789184968703105494688335116872722232731225637189250204864420013447496485835121161367425612476164653023345701552983118565053755360667438825816396151939392182330509022856139992599348695499953979316227265590868622020589458752233747447166535304580498858365598244852768213744346820656950710287560980089666508189832630077304228342975402435195276263136432671207634534228348053196468964112181152588645693914094228400890286864277532491297947276686524544042119632554792781100965662173226864299605344859326871807478699071780594188182627589822984098626289941687830811885439635430663311026914235269120892307611510918030523553438315660272866202469861045795843636176625477499160501578183760520453592843196073857376368529916494712172408343023804158584766436787559139139194782105042973337179247432277215319143475195939263055101652119343696365277524507368493065466204466344702840115726702838838237324390215156811717107251661048407645107933490000634655282024700455108289180579006464599891124685326936552154917853003289012244611484324963835953235409325812475123289117216516589080593180227685758367114174090307255643547883733955114051651382668086678946674762513361058108538495617449877434149329361392501886507822715478505651732824850234014026596979969821960960861416240447537630627778449762130249759878186493650437971065887004222164005224449723400273688040373216620993017212135214004479235962288784722528067921800982339379188253306174179336347246089143614474237238564297780015409898769190300288761504331174011300229494765703339353341581366032283244610188899675466287935707245190051099623757768679066395374815896075155630064261022051187509041232039524619267909387880049488400950533002033914177963304258757729091101402038288660639995599484841855556283790792660178424800158036779549173182804500217128505942896783861991709474740938274348608062567094298740666823152724895840006201841263597799556637445338669528574789915819747769434794959003305064411840529269548754323140338421251148162185427168927995497603998113912240317897953468687010925614763974746781825491338876563903195762050489375409975266486488708635313279163128898655141850083711865380855014162665245938996271281086186976712516741858129578484890501123374250433341100170888387491381358822693033836535352217251307643293144776573902872698654634162474329251498417400804772328801409862104447604964208444205435095552545240959659560725696648997220049396745158686573088909106346903171752967861264882097878079375383203035292202556465804602409701564329977855728594432366306044052290782356178612682307234864786160472735078142334202529527090915901490387691080416610549546524673880451474748559010953625009878292169682083373134006535170254241342264626264112067931063794976693966937269200915230030583660949750041585906140741488284455793385229893917314937255597199750653335584510385322811476373382646983701620465897190933285296825226244109747050229976913146593832836714033627469613717930205461297959089965607482575286110404327772090789886005746559823178294162900951271814020559689739309774017395917926297667291619250515430019084026078757080714329400139307187750055265493950215255490717900249064487556467945237182733863212162199360735264425660677722181836389010912338636834646653429756958288053042836316414216821044481756475176569137749446958216175641989301237812515516140765031227289836603436516941931805776375787798298297396575973307577458089703988287363967381089457052727008383506887759526668324023146653150689928009094322207679697805564139454371779835722187999664324346447912055520026348181247146222678099869801206960278128463182099374130807491561883974552472567567550840136537857528540275944257778460709841903974755414013497149014116334723180933769837124801083610685967328910842911156015876894225142800399590861712118319036770993270883605027569869903391551694377656778770397746948194668295681334694463030845596751515229012182285669902073827122101722070928524229819943740953232910841964834378175087901753547957523421916835973787930415976252232906926017886537577666166018658161521186229894202071747612504997868415524292495775762812489819531981008963646727780828606061260727827806812183023678075942868611257624112147030624919262860373675519674622436265073836182800392344421994820269034418233398639310900106092809343839575230853003577453295553538469861661356053191469881122228906883270312931906657693509811163816863018348791490217857732388878024036568130220337829337466833305699828660109785486465852584741045474479394040013745292705034577737029917427251620101584632468848348621000508630984569575664046179687993962735743747352496526023153163710772487212183116931120632471546482732775448147920038710650145333893795758957900942400637453244200909884938163385131620359321061426626339466009742221216801673040991978151979365023654719142200970651381251054014262270991966612392499903326848812417353521746352377644946019277274508769014003204847938531751319076800839223558424195700891155397447540032192123725925651713464495719582913241459597761449115884652315516743922650742788334749140031739850644988799713161165798609078527456201820784477720405336456133153199036863161175621537277691847958488684043505936047113025856636099076248332835229247016680098553609849170228537423642766516419907830992242888014857993916911618700269656654145284818462612285779987283105443559687413679396263286980303235801921629202580158506084545538065298507603000602741788172254337989919656337369930530256290283385095486096605319708589720181306352530915342314261024688813686907558750496949409788381730194011122296944437385031505544487550461605526904055257641307855773958239609944104800555027965063193010671724595061604885287747251916204173270392640201599412038994861523091330361587272895922611650911238714971820202732371663161805358276965347848341801332995143967773458575387213315253268373346535544823973242689200673283874174991467260193052532291979593475023668746577392565305749033156041919529601932767386272816497024918240878635024902840606575674736692315639748519306459549768390800812921590091477094994401209451095559402705398817373127393667362181306102988271733686211727357343559479840015695360157472547504305489330293498151097323357985651825978276711882480605079123584413897200225053322276947601532683302301096539804536524864583290220292315902510542553476596794271689548830997147643446449982442190401410447671373207367613379333923438133560490026310113625649385888610033564070545077444651955756689476111963023361548496823731010688839161276796248059636186278769722781397744646415598688352684667722540074076278606573175762624962440826480325096484692534983357637468115891517824828948265452302434858223679108970204763613131560426416702318558310980052196340180859683681379891454018816004486410470848827802315939172359875314436226727671678015349883802152340636591215491471023126179127641543857250635820260833309965903256639186928161396089315220527691010981608929576825331238392737106363928784849535144762132131208234649030776372202411681409722420704632552154949075067369189445406901885693268020525887931922211880208796684851572371487457922757729773911401341826210915772638534083136932548663602651583743009948708298881736900727301725828558283335927692885890023884754992872829733981915773155725306087276226904424614147343828877426569233064582777537298316898980632502164271898381920195675103907238111830903962361034915402492079038068074045378749729824896090059896471079168705281418843007185135943583212291224188654684047583023330830759344968790322550498197697957565873274132299153097778250256660847804901951706677823257800899645095398347717501139667387793238798520987137226117625950710747365942306777890657587633743450547748166520499965080648927573472002394921694145706483981170873600455501942954236218406371056111785684896713995191498153161467005992116028081053255215751461522680357873717956787859760799174040598921370511070500969002397979673954318806873875698364052959701894622096097771734007448472713494901424556275462277848464298704374187283787327054479552948489117441105836082193382901426041278167391238321954117233269007013484953444050331405960488898051749966413240081837384871415114384671883264588146454404520216769475469347867444585868247739193468100469909551480044788265186394135285516895045997211341376458841144766901156218051042590870875832221464969372604547595187307818970451065975762655263006583564867159913729602689549969643155274802892325295795546384552965203119404029620602227485385270609255441280084548469196363488432750577640258670201494854514466370681574402230703738999116054459418814378089876159149280137943389570389420659211023819652712271605194075070107656778739060055443176189028125009009115337078829528881519513678089696606124181871964424173268308278708515621481576762256986574428791199120384238164027417947716418269450241210010987051740609713766033963684532073397948800185637905031116137394830637492746548866881792707570221401639523771436530885001384628659407809595879762347009018748539166493920983436007979937856338893167776924778797968177968871566741143852194371135195772043858962655258094569055915116036851479355027181114362564471279242740527181941648651788651117282451951569045813437529041937175939905385255633529220209669172041691673554246915146072281332636182730444733060307483208345129887393748571216909563071576909546672228608250972911925127363039878817143356267081907828416289635314154326927110369036264060257028943528529545786526137260570822820468171902934237488757678133954623141420902405202349397072529684858028263796625807351252058766627505193540301855977883608058326833629115152213787768719965511594086885295574310852789176915859916829651357997542484855395217077421337292755307906930989235232327098169266496652103821367662495608181959845689309920737861467772566103198121885477295337112746975387886340558076368588432250008512213118139962877916134572638374116129401497558353122307256712700060841587156419828989719623380879435005978784464689413248008077056805223387926665334212703818020613041717783642145100238928387519467502796143813185921133786115327289782635472988691791324629529095190997850333345803934255198567044974137461018265553329806400039050570382575274129086661089064133214486858145039548375425158932965528849648631445540803012682266207620744211975105880529531470914834603710473094237172376344513716257007043199432655628828386375451255525489191725927784702531202122798792742676694938211260861675270085134977441355132503036951121846792398053082174663357408312776571879824092713867286592514349526165669591815689916797591639064504975782712265869799070537307807821198013239293686698905459041776620839391808680313696734304669268826156300492656156407634420135880636980682872630042780028794339876083856232694766761849197611106404940218050160839493202204936278451356891234482441738575313057897716651798149623409154713902217622527599280904210617219857122486814060996126005947679459130604776906665748749805786376625767182547580192352642858865139063788509518335863220660884167096608637238769099467201379895392986352712706678985841280250294200571257249979033330067135198368396893960168242270007283135862934996084537422290568844477474699153834656800115617606444175340535893569727177702842877298252125181370409303262185382602651899698690547386079933553112448919078114383816538044176791238051628993833167837817741251490944148336389293446516747614118806688031305717974268645791138123236576984859835453339108449345190104784527633955727262727303699249933663201606836650588268875797301142271357506507564224253557069458466371922559264436753945240469842614645339457224650425405301693506149735871929367201490863475445058189692668758303123518197543799933884637971891137975653426904502989728786473979180876658157455660557371420807618505190583570439424034101949649669828315274527222958017297172497267227955249350295614891207849919535112838283206676230618151669632709843285388954345512344403266634890510414921840506303287364152356380273724601030920278248944812194376005383192446595996372820664246941841825527841878572267471965479675616212477725935991585632059150022700386949525440708287025588205902530713039311630825364782150151093005460650106652570519163743031201482496862216189164661475011315314285925849670721223649700630440560404317231955106551215275687209923038780764419794493077495904429350399982561913529679357668194218999888168733453017201690236576206555556379519831009270114248995059616318011626747317309441731697774764952641006553549414163806940191221157790332992658854805771129842280000953514092306446451645100517264196623348297810290181418104417856226254305213837973018596454846422425636922399441638511888326257360932515719315313793838949908981740355391141435074714298030608922015191934492088143267210016195501135530494782696719430072982560964089251648857892473599871097533411612381534170759073802679440272701523553094071330958466306441833979432447123380684208709732671177673459785297992664880644121500577794773306923723924424906669710413854963225128180502497647038870491552085802587947789365955590277644675560436893425913871071986262400989637148435525608041321849991608943654990592104422838482208368468128686788306758985596171873203800353967127582436459765620840151830724606269107981020564478889501627388846523708321806269360544913842587264749244921333367437735528413377144926839912571429847809889740888264003628636829720508741892344280011034212255916841108379043598214385131672500686303594096616522444208036362025356561238375942384551376236410229411379828732145492159881243758402156496643378574094342759338859432116675338596387442657271807534963714598209133551699376072808265713465408622595262861012993256961108293502724992669412644411381437366611421868467286823058327679534398717168967119986610375523456987846666813147381453088715009098292204612017699705296612518406789976794915634506127484701442143890082365874001372086276683198100050430845521460431414825822675809678961212527206265108784826764026803435627651420601321712634053996588221745159792577070804373220282664910529213014185054168592748623911371509772299675205567787870983218210139574721795390937900417209694869095622940974227395103333659390387004323702138302742617262814482269591805289814763579388678568670434606951041814906707278467725132850927639907803410772934385464624906529544701545131760050644979906292545347264052443673366746219866595744684748892818568728542688298462435581396155604262714600759717550301214918268765894115760436739014435623233213901475950186003322946245401728678584838899379561461214048942069282718670795135579313856396661730190287003487935427155377829790802964847728673693992048974169873908016516506267218931945827137264837010334660216036090796183984309081220527088257144565548277630190164838693806080954738852752619921652163122364583563481214122835793774953617079695710657038773279997369137523426730129336922323461411338906371745114008295169350083609980079266776673732194219264513888272062208206337266843294540325485679081705985713228342374994961963535736820322681411721790893054848187943176211076526131588784283790084568409502098190220080597977423701406991730884153608960537436384411744921603335651494791521336378367402383331810979337137773389102762894300855529500913932931857539688179042753295024649970612111147576975980041323931760801632055402991357605028587245926019021893943830627841692508651765987429555753671252833946044215621831187917006902649465091084023357819447927277318677742377203559760874829352277854540744640680904995622314542220625527343194888636817715088030523323124259432748566564247930545889639486758392817232332295302401003748457042309494027269896509326880414003653991082982653657567756851377714790709174475303285836017768271446453546832667247627319501901650119119504225122924390816578176688016733654391410170800673724225568524052714162543809916511099179949085948849037911718359895572566781453805786865005320620655723250857723584633871818102359640215654579694415719054881452861435671661460117947897475631274198292325398193066408211639313822123006416032398527064281855036178447807333868533425984180627518848529579564665981450010765278097804341973293586081757187517174784871905504285763680356832726834066302855188303677896793234995988522935388053562573818120370601739716726613283225032096380144458872399606056573098530439380411335561353846619596503224063317335876700879800740075038494507516375586286994181482781311179297082451720889185877910218052041662405077788956611766826320293722560395904418251124271262103619830549736101158429152620872252927881842561425997502127036110485466220582181082002528569302260689792281184068530263826825993419970588994060542320444053670121716873030196634431477542366074483745632355895675832870106204520306002016790480947657758658429127362298133933870871271004712231883358445575911860367724552260006019397432683052121567229394579756274911840902637843091417165268585330478702254791425605172121048772025866509225699121602126145014765597491410066484060425785700360430350372439111644232985912816103280475598340896769647783167764797605985932712879520065681795563138436310058776542687045787971721531356585546271573068420422288048161184267172606158056917791084252805671019832595634506084627320163522676509839958938105060756340975391352010817394897046464452279759912111176159195658010882825025494958910118888786478282330282111547319595475359891437349946348851946658919894852347085402156939510433453623911342510270644822911602514003751855213405413311232314031914973442441584637891204491467976959560359848070824920203213462394641323799047129233664505128081779632795668204440693378386943677175718405555364180610353952620338574467263935983980754838189557651473330098298456213168653544583233388292454542953581424717509937973788674258653538695734444545257459886699454281105407907082279145531934429021615997872931107769480682090793890039384964760698370591083303869606908058393613521250473407589713000397309450670169170963840114932303735176521393763370637426628673563188230235376876230891268135026184172966186818333656228847536102801165575467702850416679649871138061272716853320815668961741120083558223414086016098210745892188384963934234824057505857695935977542643112987326516528473322210868534879928874047460175467668891428980319568652299404307166221125195143880149894081497840367762706879420497009130661351170153808314569372690240926829025204800562311155766698127339281833549080346308286651545627444634128636381532677679328200306655904573497732018804339541191399741744838253028492494311910785486807889839190607299493125862273658584602729671207467754739817753123506076792727159303519592005047000575188922312768452328730667316281473833359749928313179655538642005934658704393606236850828083571773323840318981415850652072702161703689461444932385336306698100216585219213045812147162764821129936142915369067292488591731236947711608969188844633530202374137313704085623054780094591540193984799236636179951355791974282146184768332225408441336983232163249982072610236912707243809818008960168157441195904439542607561169260476982501942596051408449177420605963571656389158716384144261299693441980903612366292274090879961106874992606746372015140632897812712498369971000282753081455493617112987931704837402330311777708803972474311318501377461245781269222269957625467366636349602240572095857727401260208629281030022764731303322817705346914360913479253900120406466609263943962713724180902917233525599970804053659447172442347022551689283834865192562871657924679739383078624445118139347140491464493865787538868961077549594464505790993235692291009352136012992410944905886927191115710552865791475713697110266625045002744825757442282669758507990718586624333889904229336917080119697723836950500576926497704199992581209738187678370772268773253549329105032002251907033644303403462227572530013047454701284357271132185353009701577296888904590562130564054347441191186964417006725162873392114076702806056422721559507619610310747992625037801301010554340075827396512975386379307999635904089839164500102881086380851300498725264406184847422426135747457693559202288754328997070346376277606972058246497732830852045699126837801769457327701020699288091683307934393873128584897487675758920439913113552363244255974347106995008869137969734556138599619929457559361483995799509201912918834186510898490814072981347874739726496361209874011528818319415635961723634080160230069772311439184135690879053148378600976541489693247795457560584500782454772546286004677686055548667297983671163852777971224440840879629494422541722022288954144941387460695062171038080929213609311651844490317373245807975285243463025089096704319232554023494025504019080882663620951164851821254774026085112742203751331495132446986058884353081108779457806476872560120136450839706672204653099418422586594025515914685800605171268888574055518564792897016415786035563350760949346656592409873281388363369934497075542388559931049028644379266705700074663808425586334661569330390198109065612911111786721550679605143817715150219616455633306989061014949986796519200700684186370850348577072753376089012047868043940514681084322512324229582524389778791431979789046166460898022251297469928044233125581454355461026175849912343518366148221488532662987534960426271233498883634237574978184963253091448261968355082449364280452516482532353379669485194306035085374064841154014291577088477125342187403768672303210772509180310131603352791993091785789967297666393416452770433535542333654990810503195646419544640477196065108695236632991055912880519161990045296664465695796242498414487265822310380444285308629959678936145158723995277169744750776434564496106588612580131210910902417925877466635531258073198485135855429735494793422755375753953593881486146397823629204898094741133007370014388246845361073036521200705869366694391206883227377048579799584512016996948919898167496566919618453997871778025914888065060705334990388640305284335396125345346648082708630847977907428578894089712549661075846303584823278788678959414380320925299587877817258464146709658300852861236219116224927719935760142357368618243674210956837434257914783411978956193425636542287383298041197400858466954158718208891450645386445275352898469074416645139350083682462630982180526136751924690816614651599630658591683051291278708296280735198862692016680077692405473504421517774687491837025057408411218776204494016873877751450505837778444106733519666491941066551661210085924623877900691983096308664041349850611657185914770573754214346531422385195515739337743469636337141164354035262767919884604536624989558570598407809681465395091687967601191231307043962234628029717859180643677991022785728702910030996711955128218251261831631463554990825028364652503509553043319794195698872501610635425720674883475777199085039140081561144785237560242909106474461536608835912418916280314859184215323734207568922983316519034475247993245466313802007482658963216301669992920972369258898921477219796507184095857925640642522305839139240421632006655307254204852639000997339304355479656049720328308852895097575215963479651971641016880426704630627892281367498228040578518826507969373527744173150753822714685365344600446818981230166080503298655797082765200199912328735423646145805242418388824871529936759203669138942879724481155195160684440740001494367352062382950730726357781915352320081835478968459364208156838716269753653130011977062535222408531889683951635577124421572747704650346924972364406835354448108779336795791262779646004975814766761000237636642276666048391563071574854921935318711181227309602593391556433727765641203950987195352756133925549537097475171531753570480506197354549233275580650339673989284083174786265790087337788330632380206739738294913368348013674732380788133057537130598475675189131725666905494999559897295891436800026176148099364095752801523808435243608111905903645362215405945937097406121248502821694848278417918608393933850794648353659381221661308902951152514282337251507582578591487478032702353819745193091666413288530264981067593587951680671158412234661020029014474721724589011411121155677534308693511833944240620707443566405098149396822114847249211570117440519772000184499693992975331514065050820596888705434900840858320432284437174781664344352210998954570791585162915088540541050549767801330185480432967302404869018133545566396057699316992269544754150267247915289737091431437228123991862872177956111635428035731980859320359952088087934532273039595082134973316704617907355440472282223080815517175773263100394402902526242679266433260129703288516663201012963391247295874614147188861583776893460110662393639059577516491213252027155391408017859644913378674948607955205889618080443328453317295866992766503287110312582221097721863246881435385300063028322074136391503942853130156535677714571867468148029663662712712692289837751025418420675026808281446860219949996561542715752377947191226673519053806374435178778780054716630240287268566560369630530961169133412844538067241488134340998183188900972318733054485127511472986435998377546935964682702497108910230705963044205117828100540554568659253606569912091901654055560133226009956838958295634910804392324313032233887874806997765729291067975239717119954183281498995548291024950787773673095173514002242431598896456408694659841866656908518491939962544693059455162875431053356884648517308651421153224439050180630260714751153005620732071578457764154883003203012556081033476598227430189948951008628697013515212520769397162984246681714236291480430105417816243927423540424229272365743045564085848419013563646791137505202073513719901792831268123513690658623013695638397545295882444744127828419445008296127083597807931522453067018353461772662029390155953444141925667924135631988233012499231396800992484040333661405138485240276206174941594887444546229684443958709553429243967715427813826233492432442413486002534869302498900045595823440012892346936880037312749753525771220565616785563103592035213612652246709429941442287144554996835686562292240678671030017300127344823548058923255455917812466363636533701724299112731515232005560344084576249448413945981317596650599655467382943001766652818061343779356929004836328992891634100135204766473281512797693526015044466007093452275268694786252814771623053404728501341154146149594100693835800055505363150980614968993692674969438316083201616343065964814757043467663871694587533993111877755610578799569559233179711367428198125404530680929930525885610901115431445189081118191624931168375289135357916617689007208166385582484579689011107443677794248365388852992663740257543178679802242923097691570062084810769778354453507192895144399258937387396198588900428625501920500698723087202576797033225911166433002116630717705343038900514616760026601435779335731705706091940745043143067013082304230891257336710857068317586686829063427698611617844849039483984662661837726060816546046430127920758718265576748341207042117204208373908114232523333233081911973573460772598728971628025832533438952255801088567705224877923417991345850447458108406876991634066649567481931501281267146666965061796499450362076665909559899390716540571695619626768829395484130015840486130506153909296127684796820599359288086266362203351736207675151718400619101355448239222255225976845227264228753820260625391773272282300284506991690221173526281490558095751618859648274493294763887446451062960921161658853879570695411523635658709695828084158751091680994101271083873170659062954090173971991171017920738395334759618524755383785482176500776560222214125272154037019725101273436097920032252629434032782608544301743206299136605439355352303945436182474125927678060218440128015829914270515545211710963560645214551744017408837778105764255478114595777176526004399402864319627215071403912045860074911563283548858722411412109968960899267469735437147614679911640934660464565305792221103498875424473932454592375913391027234770824163215050889274385617564144326271012370914377275431927339274035753783042397353556276361632866609842194695036746454596457120236601540042593932490418050624319862427218838409882462320129321456128755642069224735605465342805861421188881668589952014113131779855004641703076533869044426644654416856324565187784714416411389872329535514040555263788462354646563175930630007545175811448576039234187027146718649802815635434334593142718850578813325602975344658639191654267093518739245471512824344764013272193014695700735590716945165196591435318956823101114744362786784718525560052194810996117728633198741990960897782477885667148743266810489975403348936267775398132141368245917194932483990606038224521960582188365717004599638242222895692524454753875350244951663872823939422979957318196970017871259362117445378068074243356952395051785954399540651097154879799432331906970588597455754646235579210488481812515367637171507857101321116855856767487424534532570420441794579745365316266304380999812913779527349490665469587516926293097647409842537512459122711110267626586510334252276335678603039505445727511620791355304858485256387978971984966267566658511593780414477181173220129318125040023094342942740059693632263859095143514544733362785177740133574463912951374114877042486365151569717542774520749547549165961137816054492361343555172330779399540619308696459407964580471405077875044581075060306985034233380208116083521498500376491589272072189297492526454545479282694468244679826767045773326596594340053587937230940488075439626481921274941258410497237453179294072884262693663232337112083534253242423852969987161855613230010974727585298434399556326700343204398409181222501419667765470189099053507476095143563750171252938416200058859204343618375296029668630327643389440383898249016159139019729525725000523611614979589509098678456360332828292164522050167426347150774043946383560604018741040023114338287924588913502663277847542991222959024660239304516938022672084969554737236999220578506623981681981047587630125576113206500416626876574170515446583220913326525224347599201063030782337642195387036291728535991951091788689122873604344436973727934273353831311450688064931366288602924707134128113335316245141417896574263189741294156931054366558261679168178727948889218927921341747854698700873220771463283386740359550753256240224369221254505715124460567813977225077138331756821801486091978837681191509829638453139485540717695303615335432305956479091634578487650598805141391505395859707757718912605158746292281340058441537214942903265985034061688179971029100804746651118891559143099188978581834234398170725680008405703152254284598331211188175384167649353491731136454731332027976430159578081814327042736326243582264150648686960517774859879346489984352257246577602160882780335257245677207389053648255991094041858523180871449251329661262245488236189909580413304806706138828666326122649715066598149599803893471694585802352817966018683752421528474651625724995554851958488651093959534048341067687375833743024787418680852162408460758328452733637157402638682918142679423350096969661332641452109642070369588989266784348549508847137733764736816668516778380243967314625000232486784338053347799708027177514198905124696988375330077748352727330096013057573884730332831409769376530482016283680695153805753913349639802533282725478298578050172984889218422640048048133620846056156659624782986336811553094244290519313820345747291805925242586912032604714281123165064142669774685792082261262357885877181266286142241118632195224100339456466163196901300480039316511400225854113714210373437714589687092266795713755376307640778498338120106957402100357682368905533902629774748545271157734140855536986355044820795316365476337445230926485695915744187656589486764754228734881773890648801900809011612524666330625909521278416907841471755345305360604465346016873174947671711341485048617836081184918030805345162935349068687802517181790914509743438526158056372019833842059407024761847501378251699324404498646680552936676935167691832684454147722545513875014440996181143379380567742056884316633515138235972010320802235434381336647964621462297112609904058489841695702815100657074597775869032970799796904630512289801391539151818879985130203167948805451093287730293044694742894489930535291154388321740808850682368345347139089096340791124880286282797124244973125057189046159680334624121836053499431105296584714656189746841232726145362185285427278335504774381805823350463400961292160929165742509369238302533986286696377181676677392267765223606407874114561298807566523927987362472471628606897931445845340025219865516212919421239170463642446542936425481124832251891245033303967544939315838562543146828061514917550692453900472845154826397449780195509076544717200799710521258811761919096490212483349645566747907083918209081054944930283842787890523182123434907395309765861715323503126467846124188105601422685448946122415687108549670889035230458847328606851535058768372818227511467645486890283155596033139042660844235121496138831206603206280862713835775352855989140221339842620340085762968125857467079797477992362991774317719864159762336609316767651121119044466887786971176160744835392008010646839985991703290316542010173575636998968078245846665125288038825868795985885286756345629256300759347345805213157942861401755136135595977760581993410038596666411442878585773483008333547803761650084162046835450194936281723080229400922479820745332758083654393867371458403843675027182961820557107968149903876858510248685137908045127463417025610157029375444121322742909424634490678025426818033618340482349731320049626921189340809123259785076231513553719965833618273542975811845160831581226726265248375614770554057359063172541388835915388039118496781284038268951627452655710529221706567260376422971753765580601266837989287206940466874673693968931645452385667902008139236280667624363803920923941559172507020814939311547964586727859242168494315508299709708678987993350830920330844280289666061972346371426508671437682761502860602316996727961957240629237650408823872137998101161769303765871426061346051975804564528399918658125561506694885846775110758927719400151483241986480129419670236868198976774644925043541370813395675419061306923618087894856693019972402210084498529075897734032454347796060519760420266545238930081986774086850896514448759317411082570622115551469326526912402013560906446899951151638911431092389770255930768415618266513100554206669576187867771843759306587751398423449278341569201420096059340813290238931645716501532770805883272628903401666289132656528165771392903370813647157325239032660791025734559864391776208942673794474770122572321134364805261724660703571728376697565842286054248259082435255533650250356995662916105468320211553339554848997797222752100593619313011609803786991405560739887294316240930855435057237087379709284190486607137340436598402395857957991008140492906007895521238501941950902091357560297881363715272774252658675543227381230769138102344541006351342292307290152338297150278313477979825858852828244657569431451496331182363983293049093791638129854895687555309681449360453653760730614552266521216797623201981309308335899214569085313988851969539521957825142016705449518214957707549330005528926777460087362578248969240647065259504182553991192320298904786644971625392591113683544737684345109373982297970210809817851253159921200614565188374054705140812837842858996275621278786816965892578815639035322226632392622224991805034795546436428777891898925433235428153875481841834136874822106758410055815782900130060134388364949909378803329300379082906927114470611476322957931246348218474870469354394705901410860182726525228475560263681639411396541758035764838505873781193923873803553389864277727553883103280658709657188277818226012616968618164406051959688513416460605549109694883110523647894338021467861114178019321535016006738552768152039554048620412563926259530064626808399987096334894244280322396431945054225978165029426869399721920947940475930709240392306149256574492116202336676301523605260198499237012213004135286996349877102595153966462654482629445627622772450264455656728325012900125676597528828810277722616106569155430286645646710794707521994397829515905058024218202242777677508059238505982898857068953466594390715414318162808367966853572550573726327684008579772028578630420158514056336535668594235591200336625603993848268600180720798842377156855508945994936093141091694347967919563251793432437560791106445030804735831416872177631289734982689330027438578491571715932435814952954661232082829257364246404291168233780252293811346076402286298946508120357600019748492226982975284935252896790279611789461479949805653727124215273675474801579374081925154016260951380452645370286533144381339435411305394848744239584509952249259616197353300763824346497935998338055801270874857317998511727337019717866768031862925223740475785238757538988503752665586701963057080771368204289046888494336510339947607777340858536070162565427232057393967577166110878763951191045607711148695438496926812967476719010228105625441071243512380454416599903218220344066020736846185155483553628040784609658796848155380685209580292671200765732347955222672863116427217114679543264706007876415110374351578553353776985182919560132734293121997859019690514530905487622112063947161350474016163378679832710517244422309608870050810664729727660002872909416017063400160596585881132781792531006117758132557013722486933560892924801579852044568310010170984952331094590743417771800922368190003142318365079633197284317703827406200440362122690771535459998414315954378217688464931898785245958469830508564409361102937168087306420632478943724986925133240899012180300389664554113216470128489459058437213502128194846135210159563232876322043986476399889300059870445407039134929281650121618556442844161945163891239418107939588879554743461687395799467805987885403373528844833044166009938174515194218254081628144862417323796868626870270565073299531350116536240033193773952679481029891610041105565328693612708386186049692545993937088116783639969579010568893384465618779170015709316347054054441554283190627787682550106311674212243469160078079879857462308376695851702177747308720505268089770793526674153728484221846155752321480750885187799319210610291661682769611091530926374272335099334089268542628042615702663034809676591803155314028696587776191718940071377616208906217780675823673177120270163533873969697922209985270774119243790163558826463206912786354449022450331790804430832297979418029441042777540063849729761325586966184316118439373067725808016542404223930332712370016448446192791718852471130414971595169557922960001458084073829280098957258971776004399500847210309846387588117075322462936463194985817712071787893859172051714399135419620057411992331004572509093347221292077128957415700411683729785226317891169892671923782421174107212245590813422399769999226241633435338286509918269835142100896913432099179587410324165583857573676153720629095231084234372458369196361528559712825472851905453510912032418726591937414775585988967676641162410655899638206221906800770448993752886290790812850475049069732506541525699550947944816004201903091848424804388139624384545098077845581742781712024594374549749370365018626370107833413449718303209901005671004203157655612270915401915019028567861190031075369529232621765752201257549011929782474243547064978759977400129917422590382651873051550583166284117767879192413789193961792223174913603372220494782875592295326347452383271382745219669252662185641765442688290938228539200885705582146320622906344877703257893066081488729931422355054241530148824042433015472144494635789489994751190271908825880623114439585499436401290453698894757476716878989068774059278378102661536342767435530043447272944034684782044222380143046928690341480764787140694927181377056240408084730156158758944377793856010081675921228752039179510537593696186319246474880624178055709387832365500081864980022829549548862278231166418456378326718374566032916877320711173595520377391439091104271818340249403881074016406406077357632423816433431247299001286091683458129387049177302732779757272116697139732593840946080296139471564491583595265787768618788935591694457348430780403387123766435258508807738730376200486229003792617450783716076086221333656213745161840723698221003504585796759611429408216926492824805897470293032127197537662295310969709701115185335606869828006984369456895839275889492442333156534845038436911585281134139133430362552166202703942700950222822780925545352079273948391217198778370902441624323909234106469090292847705099144211267796066469651612190777320157107382427827076237331012253796940600627053967149370020770552485913974109787375406043855977289229893448134846032127175739497418719847024529086604700055613362405054697837570126483724960167655413139947780227884948947035496253671643023726195117168885128108961575938283268330019961525896167812633267538927546775525888896515872224976298404668682709455644254765387993769896138564143743181208738516889457002326146404932835476541910600867641506453318871488790410404983480367160048291414292783113389223963630526456709813205726638507342087469161870334497908347327349572527133340291057862392054028869159146444903142354531960898770201790489475270123793821328172652282877684748079365452841615006244885280840290977323531886855706348243544739443764796927299924087874448649455263974401453982798581702521683467902292765634047582487635963016615197142059189668088887639871396058245964122959965696694831158832480616501487758679618458348386763959711999990839718092480671992926325701316206769698337871414364216480151113453882116714024390054573626202174735726675540560651681041692667215575545774574948700897918897632807300500198019697954918266402004952141106913426587118760131436825935473269223612583234465237659473538196183231332035176750377367618820456670317021147462622964398825464634686642483738243793093582683411912206099690032940563340509061023447016488008262142704073640745348415815454290596741435977726441658435721873359786220495424992693758463708279985247622572641402951244834480072705383572270811685237432680209653153953908178042055113091617232922246512207819502434442503659494646615527321718363949727770194832896969360312337647430980783265302635927345111272687707058535248414446111851600571563014299541490383158111005729858934530749492559925742720878461195517497118119884392109358635325481290508897480504866495300894151109061842625025953259398349792710463030193476164206693478877547365719561931378183800666246137502994233327772437982908796620324284458365581357209990251495941452892331835425312392730366744619055770090550302586130017974048533086915829777419714461927510591685822720242625886092045732500054689728559483360302032228891230422845223840703698557543762499258846975708007614555171769022639270228969499299959599071369109113404471281281007503200681394105958159398306495706204355899447663500130109115129499151033500863191059397785882400076814786050564550987309560927248717812318544118645458430611310453118797880742068298888958043031002102177672071787635979309188514506877239840807039424925338097238017149930292121091517589462212794674969710171576584503003847013874234711495978991839984242294957161527038454554190457511141129761774112904835573954854733825332491477956087864048310278126152535919270295690152270982324722028663539644565058532266681710973282415738132345371963748883366580934249244680711508366264744248542522746860942456474851760134565471768291996275708509900016495048675491214524119491447834668495413774533619781442877142594213677519000715666980019260449484839781171057417803277654876943139877234820266103789941714873843944319194294202332592147248835348101735286779708552425700503205145542580161172853604789572826878979216054960635129409659097615541563152010439859438367128893831629556667561090098940550860757877812384864489312035832956788779629017608629235962199539146369017169905427707203202463903417490256943635917783128514337582385033649207740505132903511165385524160268004024405231275438669000731310755102260628423857043799068881462647526104505347678739257808791712328501828519456132524199008892775157155386120407105250083314288915198059545746409261421468792987543063706136166598212983475014396211766957999552759771635966596252459891402015558821693214312642555996249664214127678651857397620186090837742183104012463800829866842510468201678767917876218858228512023320521620996992880920189252200602344214264317509650144996586326106664647813638525280890303598207484118786307114254289380702520142948416031024692909446068341024369002548327850700886783203911105681897269717174385084059078348065134318950236316718146226889010788530815995425875709619461630458079173712855985606224205141100391471754261433860502683910419216310155137547771121155881464689284657622454207661374489794682665732596499742000079989182462731006050674811119314594204059166850957029586607039447300190776099243089804695652980736762400152205632315473109056864883697951745040781452774820137840302574070224491771607407319394406304329223899225663255213769372282164713520284180838452673572113867997571259131021704529177400875204108582605770845908597057379691376512321371555116981514110595414251200409315341482038617231801014824580385856309223203825128982012247384655096474919978840480475398974974770510334302032626484865013914545774234219095278651134696994142588608316593537121780931416684747629042635974443233072263751608713457038992326941264242304619957879653210116743272548485910348210665898947504848737259956382618808023775461648618378474244963703153482180497859648492758575711679289672093425779703630095449619767979699697954481862006520354598918860299462096672669916264945411338410632853445626348249080104131840924105657363671778414002849435279685729428222939443886267018502814226882637675055599979763841936112350458470170609934811819586033551064355572592248849145619534728034180448547239792647644249921993482692073006175679680738436735248358863594059632224583262261176904197721217372093033772239833405931358184829503686078633154050348170345306716711493957002999087446853794704652022402682615651070009968461890816561330780537444780528581503150398885498731275228361383473930782488166725148384556809041285845962560406483767273667144871839768962816620924943689526836119095608881365789103039031400002480003248297660504044519808844432620075632731804401463037355318304401178490984557247474022441976117799439352022042854020861151410677785263958445860693037263714187651543358662555103117190225286716231420115869712499307428145303357120793694035562745462158861334311594973797495273377617567469005488984724501221325571928005566926983999930532000821242505781591072384969996991578144552094172862548988902019307933272489856523063014427268023361487130188605481074909199144063059565507022382714739497258730793568821590279676188601253308709866611050565464292947808945485762002768280625257068080906383782427288849319240598388206682964561690413938105804161958410171768480408218346750864541216896606158707575929294853920649970238892350387954953768580780256192458501452904151988226726349625680416453473525128734418594851214266137172106379936957291388751873348802766870876101043614023016068710549278641221916327643102754360025994085102893529513892814362227529441245644409044981001798777903644341400486382576004664177703372162499050348144036333544994337710999912023639155249940088158250848387679855730967063408531418440125244469422141409571332452295428223826921119847475225395592793090390412294602613633461971349961000218691895494180650875711612983808548537578396374740257203335194165820309204926049689394810928157908418031887468811667106950501605007311247533108159844494541678971138743104674360870437136470765112245525484564285917479858754252645549951025216420082431482263092171953902956126315957546168800307659571900853570206496833607190438146365541408608020977412611234583111746839279705515377311156155404649274148220328954546448106835845243173884711020784234329964716256821670479295569177176887648716892689165264674984296602582796769905070218745075697989763997032953738074368952609452063024585204881339060734430342424671587967016099458832582019925300975290873073034156401040534307285069292046380234236125319573796626351650473159222253568353307651538330733012643729124161454431421785201856711381605169596403094254396729945498655246093361557020344882863540241464622889125318095661205604963255571341844289530996676827347386846949597160187313229710975356961809637236575506742685601033112671349190085133141795021008763694959159793702667869186733696012884757277447340039748931892307634513156086942373827792567571857595439635138240678402973886225115638784745476029380343526218885593787220507915438991427651624549884127070441445021217308799503140442321230829982188454265739649177322568025870991203009217283262380169474920880516256159480861695774511323054719820545458039724711573348873251035847756496238824953009297717132253135942008679941189763029313600200657090615804062257796370160406883039632590991381878257713366112355800436187214874614547045469686448951444690645144891354286294254750806984293841072181910788651178261007681797264539734840556010839413651501327615850352908827783109362962888330949535798854572070914935623879192586299480978108372039443144583338989870407592600068634824942201828358842010391578069074227985933137524404340814028986783359187163135482396112760620521895155667813084676870704866196783132025321352327108196319435820974043150096853367283775865517908232057055050668929382167010930167719174050762268577576743583057989326239875406919442259422569100039714906316328169567360984834090210066677298777246763680416751765132496824279090326116971436818019898883519927180876283447616839923546801816067510986292716516106555083525924675421338073944738144618082646474131079514297339464612272402581149577153701980360040323351373643099034427569797990777999320300838096291927485378485579308981216095168112021034608579611274893253331384791585896492343590014920097098937655143221654597286695777452683576992808779677276231929435706302639099553099177507634085438420411300910696601401682312951526494275281248603205898413155420916349579753325447186392865790179288127744167082939682348283777504369368046417560235342776775177244638189473722057405059764520829057958891626930662501039970911446115927988337756582287869126351162665331130924157368745245334823689129253170590437390871527835482863330329028236316147501174789475742179314872006225126208838449946626059477660214368666659014775921587724758721854620922429038480002224461310873682133284351822442317557550113182649395934796978665005657637664786779416816750476386885459586806913930326717544113935527749423297511204791097988030058192439503888358177499386692932000693872383447984218963034141505074219704910155149206789475944428713087604259262968657819335877503179881039789437051270468770878793229881897466474989219011579176804486793188767430482547115430349905859913176801282781856229622665325134666129920223935541255485769168852664179861455763976563272579765817157422241238369205704806357853573953088763791492698740582081210192362744050068109151695976099040488587343829483644322085501448762411477931697161960297586291288545432593100980742352677065007165113857108303861200690106717870193378144766779073632528660117845217106851438773482146633404012975229877680641002192822463638390158357823934850095593217719507943061020446307915757954446885214152510985320707128262780321734543550487047889240890768497754872731461879716670467224375548373704272113041385422819926437271455596014053948683646107814901423614585630273602385017803383899466839424306276899100935397233324021431832500695444557411105114597304328065049002076537876589822666764608193073700699855513791542013894726630444479331253254660209634501442325751548921495018648996818820246488976909280344533198933658378945439129087175558691931187662244562723910362145875645473705661542737424944260936512123925490144463665809204550615023687284545896656989380061983241300902640516924080044277485630563024483772926987530733129212035595863311931003980803604758267295458534502542937335010566017458062752003288598648892777521493076334824902562477025354111509078211597616503708876465474852084396549954284632535256337329030065155715720482778956108122448920120054297157798544406241636700906420547988856596938069572405910512516913820181248853257159180125598471582549596081040586569761785741049383084053299956927515206894203089076260604709614074031635715443839104480269671848788380737538951664418129204355493400781002075042585128370058357299013646765681231203343349727636972702193064334743085602130792849709727120908586866782312124531317866886306385529915346287338056625097884117454462775249994691713194549021376094646660322248228347790093439942828299886448101744774898280071218773712510326807188150586458612902568253793545663210330122060424132302240780247328842727362484848358201571444401081733295224698212275170127681464033094972237332010983435990447360762207533338653170981247961058221451064774425843249421474352072363376170084636229193354030758963973032290479072891116308621891269387143597392268265935439091177513381260343849783557407824293224020741507286864776313628815270663204109795676967918600162480713360533256385507761572326333144976190688065964386950525774437462514582745017180208213371399333325539106914663630554563998330932948822733945921684642447072273348419875216198824276907167207788510565840144004822405322364321672274553596434266837566774095135598713807785715353263699772442998235714302897864019837775911490103363339165928832192523250146128910073491941541880908447993954727125320749024585215621479247595406647749623391189003105511093201169731929445685427383136366920892273723389602644168877674411431993235651960922493036975507406716973939999625463039088291529443718039931003304727456386592486010042149921494497930307468640446025809164689793291412521510140979531862714304795322251819369398973598584562091396721900753035455684948770328474653060574409515541024598199563237549711501950251860801915182813325956001672503096263830309353413366244051190112764683469341550419646019977374024567293377569084705919052364938645535314246363106839344040772306153519790089462132664940190621901049385123160672305694658903412690338796078549382914070648758929205822630488202891483953301344116843528959763496805789302882472836301783537342436413722120080883598110966850827673431223399095774227780810834368481965689492722671925254413503706127782821692461508617941648708627370975323650362935267927560063270159948679257968437816243322436027353555171664074162004348227563784070860568434887250042457336947060621003671545185850386687731630946053516501984066358025149311413147958446159294413308840395004307758101100421080371882100416463041092185456277359366317109692448081058423289929181617223604776256402473778591596147482506146340329796456553984841289351018770774619704576997270258727070821995133134849882555453550779118560018094528907699855203587187536317669264263736998566892259361559765119886236232715571235512393377769114982095978343404673187750762773929004547545733676617710207458478620924956271796563651282646537833894464880927772415990307351492507216350535299451584052345496597223230566844907892719770107050526965826472870566011520804732104815579634035070933075340466447959079132500208035554371190982098976016773078219133889357843557408439871841541237662206633880203009670397541666771638811673375602917918029678327642077354546718724728093744934325526052992511469772479164176329985240033933409741801044621816038450188178466605384763527707778441900754045921617713484166119229872076333249260403675089746255365308630410496404163467613413149860714754935684540116135972861525736474280375077464569073218667140179107361697555358337345401859515990656726002099780036539631221763062916392510269137920347948128332089403443326717296487804659647859498597062223099632371181585246866721713783559259009503107217804583307148626964866381197349459706163468170325605594946438330472988209916111967341356235824760742835556708956043145825721858385987742035007893185209190961444362571293253836161400132005029871855900654591489488900365238498257036402098615911463156518393290412221987624002651499495368540556414301755668995431940294038590798117494892397711346675833422436765767548133078387901268726586745637418471271014166763308900045086928761954220417210442710112115991230996252807049637207092360952885336741041349750991878802282294699194162294156417985756087258337973428480243518434677485545460720314189118237159276018242892577762800887380404851577881836661189482700967751513487595561681345667147546263854142194102024261452942014677387358518578472913092290162749562667979973961474180786617330964347582558114344600260454448050059318197579016813854928655345945873000550723075897531718038544100175612375958160694663033028144672075217921046093633458247864533584330177285245274596852437733616568109007970197235699805132874065430306566430343212572391423969110549289206494557808087758352268452801157696030700346948921462219077793163261768701842913306842174924749810143732227728432043036229551207167474343248087570818839842904351976753564492864243894806998255713152767681756998567958411843340736962951992513656616756124886528673860174767320173374425753042720879784364227763175397463324031370917606838704916174398922784874472373622165147419656295111043907239487141991795035930132353303161876344206073643758505445286707328465862843223653719877798242626244731877721030959899338921480306374152973317603580875343426792047863741630966718412905266035029550432085381136109061237604787862009553445277921178190087475306240948707147761188038496109861783153416586982007279061618950150640278550309013720149764453672148723698737578966493516534817245431467475085360577350990423821067302781728715402696991349860136019868653258653513445496661499352670380731938460794827108787089907427111616630991065772174747817948577834792542719894664273227964368103020265593158730454389729681489230687270464853233465323557331445836680869733756519410685578117877214162842156505741257891893286220890241236803186821718824786856684264717461633051847254499833462295915842496597709489619337867217649269863481683429211419592965409549958056970187296443534170222633420042844532763857423533912375769199925316304293750622361926740587679063819097751387716200792915557291569678917252060063258258642649163254363164163016784275708446016033147380452916086220575857713878327045542115284942097174034612773079251638240355270888666087159692817231414870522504612118543337530308710558056740942718318783803877905169763013817839815687848640792951455385908580011669569014952759399510977470845380320721751983868599128644595384381754034122021334610871077602358326010199251461991664831797279094260567318737675725506795720842354092318566164421723567254534769658653164987769014225959941337704827192951537216957074916830503587290727894439570433056161312086443248532619390607193616585864915187130908473875416299265041200555687591790915803462154608798165150114806728558354020527345518129314290056909322845181447328814683437203077925454692934292126653652128338800632733532844117857116868716755804643485166416230050784342333951647292286436828296666506926425110067482405310554408501093044740515753293723669096577776738950207464012400322359133627998239953386677048409523396120708897091347638100049654804497247590254316847548207360696554515188709107699940860246490937707923776655123797352591883664646752817930794946939470903309289563876900209375991982210037496238611458088201271182782719219996121376594569003980065498634977549490470907748203812762665837679745979415448459652564991888298391214697473565622981781818885586174696783190749451560415198626520186441667065104749069341448229401232311410444789225639733627807472922353900276608722966213465001356805999481771943379215129017998994193256034956392636161717117956147686642790692938103050056388288052136357057555966909039102915755840629046619366456276211367300746153026202265673982039549179515462349252401307759085748505811014327268245648918495191710739628399415271759302581642474809966774038558424010581823218225470207951182508039386033123897414023159521612592644918510227897846702280054368681027126879458933562933926252044369925459809020649219912996090410306987558938589714562154044174641067435592355544874967069125596868687884967261508678178880477702223863101644396204777573411374214978838255672448045559645501563851501236682327539435052474603976886881374456973402112263318057228481588550516603998584147064110288021990147063671619715158221109516035487978353760355022822481521537955740057967261977014392969087829792245308924090639810943614702117295392364666592078890975872567566320756079227881847596543320195246845009927470808728470509390090866598633218958051327077079627529467851417933823077222621047720289465182063506644772059782999019930118929670562183471316940187872287513980252045604697272046040242307501597941242623371882944640375193708457187567283215831532493979580562445886187540424547476696506079606965114614975127878792428000970355767173828867007901683036629824815943740881594031298103077262265851755872551628248517469700116684892350973394279970090266185335299898616070314893571354333223335612870806562609302715287033630005232425520956181592362681638306604723256941307985064151355772788214627388835418793679009665701700405658797625176928019951332164986226467361565960114344560149758286630915426255787407147452335663810468217433653427862247916718251723019652751934018967467051271149308431555965023925056682115391329753264122444589608294062812219100345420993169144715835833662389660103192737470071265424343245041507249067508295152957083541306722643586365660737796009988480795316960364297977769528635362094253343317885108246961501668092179718444401686278192188934295324817801229545093116377948441820395167410812319890713418788701544147961606663867858296701639804013238093047624023628771534177048368920505906748455154054105398753238171279033363393554753611085294468601111976346931348003247371411009349242034645362581712732235529014928860599005795562508100278991930066703073636565436341933105559512329877393785463687001115930730699036109669576358583195641526511748621312179116611193804128954622719944306636084619341293434048383152196743850618517254481321060218594476521572783304296968762186099493049545963264542475577151961991968834923722328110377354797030923951585852987753013092724364383533825608000262705060725115965775200257768668178545601753571532563939334834308478300558122910233098988091337053096406805749155356973075470433045647283170309828876253497147322189500389798705719067532395746082815617206063813072217299368497070696302422523915477827180603659697807143143849792451989374551502364123846478179749751972802199460354251530588651228444042198804194107971684871806832342147290220958212093902987396948546913362183111479578997406221262697197201073754522380798998016187949049042365066986556150649264433738499470744796388063314580008730934507413041556969256790895092142970823658941908760617789647030328027564906113364357969761164720759781153467281206315690511005587776370730885980821278330683689936120405056004859154801000041367981597405538874781345518685260757275936309152575248950562539966391326195010640285322085874227923105805677191007828553503230756371178551535363566981809586489160462714599973548987197217178531316590354368618316397731946381587052261016543909649078062028675550640343806765604139104980595667581167180471647429984225797529226441648007799637424070693025485020178143067031286473597474829917700543082369223965250107731627570515255152152166861290696164367759695353139403246159217799340052668008787665491154765267225266560555435216081377871223446989466393178907547260528492868017257697753664569028109156048395961513684753463044295430802268848770619321000820643603829442325556053552588491964743324679517852056059178690106224641328162584282920934540958672187585517997822174478999183738999360035459073932393822579827120347225370605629868884228965766188605666269132001333768698269027206001420857136024996901065134081034256493130781654256978914181585142824589936142336514051457305838124591728932894246980909392594250680767719687852238792766864205608806414809427791105780833714856996942822623668013361178472485419113387043471155444828329347273850038330660079206923266200412855260092590204694395419144809636386402936629326175940229388645109723691197400257265682242989366317030713129846572990403943287182101879606808097600667198801101523096482648358417588609020452283261150937122337552670232160952576832609842221834403940360248691113418687043389506528819504135107465456505622363660412812379305476711494321275787663605129608913151117267085746139277584393354636528954618008879958925442020054093304975941480285845674076363001523647279328748317060119322353891018290567879662839157769399385160685191626117964671107166146032619414107414720961825963024100611635939082783894178764776045605328166484146078225192760560954911746609408597437515309769796679847210463104837864800994485684299934064847057917568666968343130263791495110513670197878100736261320502704431629284193509799051165877515247725159642475547324617148709909229019585304536183485592289499734771371933891835273197600187361324535659348596097047069590726375054470896681334192427796315615956446231170918105759070530872045332194383536137392549924848014570022570283308082324916546449107489986295649671885710482409709640792906406694112730619509953298266300929947891543363562702580198601838649825278342234434251939828156122153471684006779114355916164077956231125955006657571397238843970305615036108394227188246907867844779044938385832357029465496960349472928830272976783407484604783577309060307089452212760927595464058634782424984565716227768306683375577969980455351771765152979617128165615640480106705053108122416016754166121532313785338701324280466358277030838570345200618602756070080107979746717607935448798773585017174992618544949416172690457710220039614361573980264339064742245913992734349011719028553444528600424622531151562674290666007227459919620337597048737575296304252987578362908070473610545455390180663319328505262472923983696888602106551153320039480573791851927206332874921449321663689340055588988038344387732961631310718616707481927723421698032011935119064312690099410221478438182476991921413381577357917746282539585324342712182835338261236904018005347135696479077619494985717780549292699802891643040806763066750097652360824654825885304626962303297241411658639896191142608982010810996430402531163662198381498188467875348855787228589000930418305885451121216723809673146500974632767735570540791574795393864432263693843368312408228573220840171539544196370863564635333524939151269928804235613084517050370249622152092756774073985737334053804115941886366142971774588799457544441601166646056374652970308808987622043265539732631100641174838586860844406370053852107874818053998660047515713266696120370709743227172609473157447965740402437862404100824671995793477150683644674055671479196320071578299378595749031930108373029619231504565600269397559442052411095559882116595559064330147927316983378169452285832410843424834918639019849171935908325006155291333853592477138666839880976843745984081383791213246387816701285345653132920972774760333464238594689135277795497257209799080386663065775792827420899683401247993461079337053546918493171189293184196066008205587526616964090183104481865394269618621857132000063306690082689204438730681192273626226029099643045820241624147602803565286089323672485837271301768767273206756323826201353616606323050318831718123132366514774806322668345160935590271444262439903222701467256397689408907767348181323085874295543201643629907985383500303729015282142006872122223799780900572627687511513566809995450902687661184315685673880911066763967466391624599108218905859459813483064715668010334431576856578967603638763123251975507101978570984005011048501073560278647495341445154328294850765146800761642845605702036346629091906986650342269790936265001348115975465062956771124897867057470549847287476590878477881620714397053621353866696015222662624641293831059732710517249440429934875669454306940218821977956340884131072711971597535755639233480012455287347923839299506795535593260245111289024084516167852951255840196360016428279381986995052156842877976345972632783679795426402681004449670663807758062178729041207892423676064209074986076003913521333426613635600810154889611642645854468041796495604898745753036467209140459253836569960062246412706191619827952722015140024043377356608672834029067903100196601393507560909864213147068728089958244945756458051105251392267426704859914116477385457675013122307519334702544864903828188289156373338785038072593067504541821872408778499740318498499754153971285630542410889844900872424797029726327568017332423013393446961460906607983791857951434151492483150967175842149097858145738080871893856676685084597593777730346351858760616472820406293865424757806768843418898771840482266077181632973871682170538679277451768308042683022891350110312057442470934498992009012859175810394609169572021018141799865683179707902987601909955676597237084379541253004913023867970941767363963231889712714348672689217235955322775070959755347022578421453967402945031804841577046577483872132959196362234518408641785012739502759108691917634835002604145008956094580568186814749684729436260387582304075875231528283450064202733074159181924921021701545119321583906257741615137316405016478843028656879253071549634739213084385383595367937190991562118613702784874458832587499932004471682623824476384648889893508394767085938987533193814630803797521223857944912259441198756276946775640828832451515075527198083852789208050280077606863345686121063465227434183348255745226829368748779497645108730656385519163936188708860149371663979041300923882368404650798590446961236890060838531506082851439282917414780553802594806118543396507565254509960604749072668209355553734190036480198381041423324955642388741807558970304179482368892427904250246210488061166860091430889963306921360410642579888301795869217855395235200537251935004910063514346805602303158982996814096570528636772998789501959916375226432444622534455605722591022085674082913722100554948121765146054175451542938820608669661612415540774752988741454024759972463294457410011491848502176688546659330826493589270667336762302918499654670354678434505814309445003175279689190150474948832619069433658074042103833226458829162381877393130455918060549514827225239295334962355702498148875182402287692092224076099461745424033825258363030207592877064168005928138276742645852987414117923722679008015465756176978876109642199738860607069316880017065658894239525157333081713482898246162561159908688658348106428381778939337345069598150000688073013467618527134944886343755624699405610035876828477594214151430998820851462541055685285904811997031240285039974028455456416532659198551502105057606741970848551489852676200023372510701408271659764883214017268152743070863503599255214362342820956171472580623624506032583121594780581489444749459798611097613845066879636423503329716325229968655039272703097981520767616921501756162340579208658088704159506205762092389319599632012756612137125768080573143451199030225593435106508399234853800790329064129600729712731862700333344771982999700742699600993542890861851179722835003686231623337274296698656885706449570301432458877794026391757075318492912922818813926952987986347938425392319471297421335709996425701524129635085828582636339909570885801496544880631371942408855047601572712910561249837382591140531050926976083241485338500731362823884177632262303953644373729447454171807374878236780516016992704648227528966950879717790708329138279039760143672618917137136577123549614509724045316492806389040496522546775978230860377347438343579763859778080931683640148544510760725322317087001253893588046853114603325635083674647933449539776608262750985362428551468843522868347138518941808671172402773468154609465296476276735747246202396627057644049634618954277745872214000899778490344923844985677410095684326571652331568203686676968109286073790051556628309522645641401382324852700409473751567364419290840680668731037046017139752102091196803639644952594663308725078568081740957310177485629315124694235113182202355950794347228063500589211744692247139082017923965879713334750720940869606403039261645151685603512229325636632797527408253280593572094627026846611080285772562181253785288568857447088755655120634389422131058825657560826748649540805301411399824600353828231320025979250735625862642817048846322471214548716451175849289582878413181556316758638956374448289442793495996278409370269391586562373054877535469731026262568509799589270648376365810772939267336868868715196480449435353262887413270887361696780118584706890328534671330028239722891637801429134021147636280219467916033872381512649949911374712887501590386094371407746960734935911389148730736544127841954607285022817931515260399003306485970162930572154551803422640218857315635472542262003703106396425846832141184461585265124304727584604330092282518075743165681642904818578642799760689169144369037658339454559268806512444980014325227370073450548520809159158123788473197431724472082993343697604430089258941097835256670465565332898928849403096728320968919070414529803684762557342942159919095415405485155838327610535743272729696217877670154696346448781508925586412794363186775347815457004312177569353560761538967260853235298334323266716947451429131388421910402331663979332452764527473441074313826505225350073838575281285152397690825465431035464855550969334620986264009100692607619761857880932903075916475395090156669909509008711243986748771972746867111707400568773038471816892283349925064469634363003009347740335823990177649413229118501797426095742087788874900021250902195580970849084541604019502025663219725499530041442896663809857530634953078020039299090311715428497681365638654635236499382553904565663426435285423098483359121165069928272214460811524000539335164498649427734048244848551043310803923294404427823582970018260661395033779965377931612539403500525252801246248735866116281499601738999866663595492473901667331301703208556454322945278821276901577142171313627214761904594884176297514770348498020330102963405184995574785709913604603358451262980199101313031407925288821351666308193048583477314982356005905674221796074769177199310457220681663935856962706008432273825928116845999637589954206586092621058132774743120065363472337615965619796801716000330453291348221948017823039572102887210654494022472666979698980056770358903929829673820937582809837008064062546076580706610306140742651795196687103461133494385874222818051264315627899382839950211804610679516361798372968374176168267185776150282816620535413873775821248183225102404085170571736590330221567989922781410303186239474783285224176730601345488055870338533299955983432084255224178508147610603082508739330905006763646223384482664724265316250014476292914482528057557295168135775110771383807984638082055055854789104423421591309608084047157588641350804404481336649826700863941709468657978979307482637049628260174395347995559313143295842477626988023277530532364839808648518182325732951967153211027635962881202409206160831830773623214829272225408221145508265411444965138353333131563427020465179792902982678289579016340419897555237851299646657581082582959472941806109469639162268910864879149848391016972503723077572884985117797656259454851856721231013756518991391896475205882629338831210209987461100920185814878918488111344167578546477294579190530244093008777180562720612641221239212078510705688264842605164580949304113048554392907593051958580849185495727576413302620362731071482586366453566383211162304547808734377646554307277670501267114767117692399647706719576238800117103858414578759796504286024434103034520150069316112902499411626209151630285127186712539339358536461454637944385977626564700157086478530560293306185190652294708487948219176578337464984312464363058461715973732993627592637515616477650943092447487010275875758721473787547666450135978862883358921565905169972160840031656318907489966989009934563872585569797244238717408161815870693993891790480796661015855869753441386834468996556626522132260418763592084520131417611183307669914210836709077007867095686853721124484978561682231761986220053266798171925431088579942081013066987455162647724936230782620390716438869547054766451565954910149465625718771059676475414117181870433400623317181981807931748869855071430365309122918528812705082174072970076128601598154149983452059313437754502679902176750470756751511349591763507885101715708877374045533221402740834144597772948340969965768690869744366853360583316241370754945767258148673743220702585727781283142003186706586804207591264186382824574074585883898576171902659421165068403895077124229564324190402629240801952270091316155003514208337280762592315893903705595066831270429854356118878991915966017024861381468354839339283800415831321203118433368281701421685577395639441497987860728865317611386202764423148586063217954506779436463437648841668938841415105675283659810384897237300724956348246980664170505972084383900286384681247004440840143741212224018003301159832739926766733784119082574156004426538284865053884248799492684241241499592380799343911930100742875746179303589284116003900550555520197514952600061249283670454466633815227703557848146555267557360766906428762295973697002179077535814657208665944892158521273593742775109280830268117864139488884052170198838857238680979153252707968978973932342430321516368338339929537702749307998317312004736782919758221164855120837294393683042559924300339643665204225927668394320594820392826576714788622573169697787454276025851596114532624272614533230076821095125624107838866939562118186386669276922287433604887271794257547289997471139818111674928179499220594419137047835938932970000155933271942799838984420739007844665939605178595265773099170075558166381557881362455069750958250265240702281965696374710134306925603381827644177095477587928387702286659227366771864342408942326532671737992363977362105980967812238537248907059781343262256433725206465509940341613896532578940912406604992065243761115353951448716976120583968691112747548772630875276785678519254138813706799469410402235090505085961856662371759331336456645611477571041624802643423460308813022856086868039707674756492631914305233429786036812165747972741017867420618528738436516848433891218674573762369985097381986666844443065276241828065488399182302908766415391069544640173458831055661749155409663073085244105564501107485119223252896181514975970651089994100364796593518273912961950515357513539542601558134344438059057662114878332910521531884780945149782126908014242556067246255142507374497344492179257816881087877738051793019648165760817068819835147076701625107580376466999730421622679392183394403095166401623350736844359512718007348783690049965047407732764868243303632332171133792238054576213565340433419935466673028697905815880098742313394778329379598872915746936146330406909931208933592719824153333621773425059089959886088024092140729967781775125052331898876303033682490870854452098233062022487426942227270040546596983969469117728624371182188618008395672987622096283471059513195717817880748843619865499935093205114667086291746114732915483955047290745037245961614811819761063002524765026677784495318169497761555518129401756661068805040427220040946148971523011402068132638257143044798749194652842522652536658469163836720770868015814513784717966906717001511864284597612529567016069947051018280362207330598499136697093676205230194234370544410777862286814092486177454706919554315090378945519104846532253935665853101059565250733667407513522045137312206107617014589192886001208885563852017075581930478011597534613659366758775033904184920715955243209017810036271489169199535911179486749466831495899896970151587370722810857341039601195560930874916590406825299845185066585736861431430000411101770615647819759734896582879912255722038059084909183602533348698963228873095774451290402996657824326219034274629296176955730572005720183083722063286103312661777848764181442152424594396461105419394010079127477566498222841588240083494945623623251263077802509517436739830764805928862753733436430726695337030210004383257253084284364307370141600828919929486672323479836490741368535165901897793290345346848420259809602355250893806943494126507020860775369078012809732992075193435821195296823875784850061817138760142019651690750326349057247395365357608591887453536802478402065845104401708705136466001675628583487515946825973276336903380274195029323022100411556574321567442852995218513941988268620964720890617818203621999099857569888118124185061834348800043317971815774389412184173926564262935219617721743019222192674179107615966544391156571947500647886607423534727009988065866255409304358125578766345052219457957705384072739858751395006861646550355921306539531094278059069606798299078080749915668547373929262217338581824472104439111444519568200754001339330038743700856059291055849405058018957483577867787550386000361242230026262279243013273198215523400794258535816913136692494195794529488537001562900032848250535078029306832869394925011237551144774514788776409890592422745723942597980681425773224192046505942733390254783882416125263337404034701899904053208121390755065162328398742556875387270233590583885456420269469465671750126554372933505992249210217170568614943322194911710775329263593404197318913924003700205368127174155054857432223680341753738286585887259803369567097852048931699906129324680532903142440228192034997703893307192150867378305048909876143694452157991928180144123308019885571808286306551499141399052779437617737967614724784164587297118462316881791516201239614242939820284091085349713272788542931309500566823964644404897147621160182892867359176520494952490365041797592451098224933633671433952780587709179368959408082251499139311507828303804691296027644255376105770549074048676978525241285702217697050857005094839927179997365355742889698274417096746383835156592771436115671171115238127483438701546886453241266916209509922505096477593954777165584217625989382549745252318839046113963986755647843445342453771779310747303934265264730767161643214578815724255293898567669164306269451111194604104656552690082198444494328198317480340160228304256768759608918974698253271537074426783307791794833921769001144612384885750927821523868602534757806659004352663466144811874065861667132942372483242062158710650786809725632285827067992888707977399859539160840513504387451596332728643377094189242191171466581802072269627905152969939716801535022704953177378277137784113077116673276029104373352936070841686579370561926622998398893034560910110716285300442069874733435591292693407684490171738731986883102588499325499642492017685148172508362385919498595783838232095273943227814598621888920966668771006583334385852817424184637765494553510685872241340115201930290209240859882237867240066921589593240487058030917188033574479313994997205917081253331682021690044638707070548391419389782399957129990191560489050272623938948107074761586260170269401793434275467398666421476276361956664904669752071909565059861917952261946258944596606774453039957578490610998674871635816259613127615464620076291593298590723879850435216956178849819340839206490856902993906889519286683614724113038608269330342350405377287686255803120468448310914967552302163108611907481679370261713519840756560960354054217733147931400560577514384141969212298548930973009697142001582283549369745108631297008477872480828263007261307701227690643264177079354052983821288726363587664411332835312019028865872223259669352068144960316321185988867311774224901473119633432696485941950200005820511612754119195623005218512217020027028718321355801220279731208611120722056218632155155790432560780003986081632632862808221745079395117049754857726324961465179921872986696906423230980237371672834629638216181724940544687649970670251861886874284890370958470841004480533205789461036849670682395271358760066299372455781922668419361635337290155037007055979657262191904888988686678906612852944448154376570167342375695207119556716929279813660381259404211818565815407966628882435182200738552587968990585059078793116213450116535191226164981991185689895321241277250005508971312315406907380221027760612579844996968560564581623137650962735757040063511111257272391233418519466442242378118868167073230232766383117027983156519723773418973714066423260199403349680461677276737468735537225414794874957051687237439800736863694975000443137857212103081969129771930981332216410637278564237425970111652387438895712303211437511297689273974059176525047320512420470891349694409582473752461819189439292786801542453348130333617533826210949080822753639071401471910525712697244581540784024781303545318386134553743827694271783879281472536672329615172672137188148089908411287326073834069687114319308009596328161660628106376657598555717036086439117314252062624330887241403296212531307750645443964865872769684877792572716075522167356664253968376340456614930029094943797831418112128787966274076142688458958124933399143420574824578608659049456859339447835670921013079043566684200853156073467012797425009918267343712986351809967102087902326124277817574187683113554877682107541334841028549482748939132962951610170141914540499396875681971542363707031297562495869246282842691751220126615900517218730545764967762448791080267436459753596478401456950516972943564845033112377459769978783039984600758137600676960485645010168908735552997668298539314973220183708620801188448358071322326994167700409909131004120626878761570926162312595956646806718394045871021093329817404497962503245402304475612936065391074263029553174696453163163695096453618701284368228984576961282871985348101490799325204719056236621499582464979268221392669195706180455497510303491626373706043174226803748863499357788563000083733111597415326035379906750103202162184962816178677877488293450167858321489781262397559661056864357360174438380434737810490930364418724163202946925282710303363994726058405084631502161527494282688733151244515084588150437295902475873501206424995742091305872720893406944113449812106151790522538013482285063495083026523621753770518636333869210711165901090523459653738350698146738714001517494816303512390500080778833489909549154051526581143056583395970366514469294306481230396580235426386034484669174292755245155469121446683062128784760635348249297098011573538103802565157380525280872297578467921560275699252534121431632004402678334410281663657768137815242956028668655171809630337300909379030403840601844611336793345825638692874612609206805881339403927735633161803297506547221535914860844805357070483259642724514281205150412998868824246708979249783889199786581787060142422750485560485798236429808889301321920145933766816901588080046871828017467889398801587282561910554723933076315742306608363143827449481114455900084301697509692903688192497257143271796315479405353418814356716467393927786951700696105672825129726889147399455964173829006091962443270354937689870816810914709532007275177791359082644723185055501186282269783404586481791366657706334959945833931515610319299181569712513575353826131333188403779136873550648951742778163156138246933861686949268127226785521018695381891827684468208834608542200197700717173547208039357234949491256384053844638998089964146764546981816810135348044638520755639824906180531877960108558566988616280849606047220539130173894004869649118662432965380057912591680973516284275863739885534094927194766693092318771115286606345064196174685989033652805821587853192255132979349243454776886579456130095619136845738814168620497578548185222774763848173253606094541948535858089594168546486234876907763842408833470636106296674222473654424517419428507157956423500251971180461422495251616972926090913596535543290023427909821052024551575739454972638919804670407568013152297331175883921483151119770636038762720327202740466026918672240950001941462171162236532661259778911003098877418844711490765169620639852804860515651244061592138198337144049686097092811302772601393573091919241669394488363451692935490438382282011259403185792530784687052854320303040688565054836535149872761243053160114485839517723228029662930558926705731595373722011579256399225078946245177567112701436327854519906815000668010011519157027113522524777836250318554526571330529214290748887008732593095668984864003856634180204101965730559786362525551471241838149696640383397217169644906542733594683478546332648596763311629485086816426947010411768907125546607157932165104769299842218133665807313362114425762678807526865633921612924306397730335215173409667800898144988262938182022409756058063570104487376315772118669653654673527557266709061396297317256036553550855937680079661082592854262889434605009933907769317555892396943669251229357342994106463548564988426698206958644815740243330223877266482048719947965538341645092089665164250849520161736031514053621905780905098020817660316476089636657990320228085791950990665330151882386501873751702853384198587085549094037565666969002704035397852416785279018160923116029822511422620329787038694385507897424767370368789380089013435202611399725632671563318789020989589444180366701614091704054063220881244335809025893931233850656269192526870011352796477079536137159713877165159540241211917731659282521748768992803288902274278482312214237594677120771620064019215561235655586353775912508890372391833748232877745143293163758577940474914118599745701990515557444549498815200821603711414742445999933599521984248583490790569767380525312355222792872107214319887193087949146578273738829716189193017401624031078201289573594459046331499579799948986751515374744986916629277433901895135028789535723737190028899375631404478159189745789186108511552262854206290831204722510832752627325354315025516277193350948034917020577763948059225281612432794231644736251160991804663318231691586511562688884571255398334232510534152372047555679238284704101333231632621523224781494977793702469229586245647167091873941212762282036387400703287055045486223849509837979570861279868163820949575817537165653725450196927627520191303949940840677333961439064831862875376959946909842981124915584361055893989637038640871184088027732870404038402638968258344126847453965911802049018020598299452666581774098260033805380075218786708999959028724525992931863358183117169078307345521036821578453637102914529882522032786040987856858719392773679902507997918979590881899929862817755752431730810269955356328762773617769182875416889337771156268759997300598464085810686533719692268846623815174102799388285006436451599595715430525257560867297507672837728634398695890426515578579527181227350614794319140635884318612113852330802857375188528349737410433668336982281464413946379790488740496788295169647961686925317697329786454185699452751453244915367395723155462361600182570993795247699297178244213605414634282054267970539733832421892046266073026267913889089749017018178133962895946317507722184752441544123847819604646110858718369698383439268576283973518075065416423797206460089338008157464294246864921116004120357762001642610666539530840402966662038407403151854640922453626973880456085501435388568321125482455667337867207861645602262731939806147099707107950907627405763303389046556371214879120140262328745642387592996881947350719277966774448462911392001151435766525979491119693198790849480888713423759699158678737923706491061671428535833520875404804377780727371353988361006812265045438307514979599876140584194415523763024155175143371875218165818990333998439105781526439058479394244999876855829366566444869557619652082919739039493598326029155604720167829652584141716954965353254230169790492727764881591062421987199927492394860933664993634358003875171249696979010293205376826924198552249234862714799386513606379726652312474799803299090803779996249974985940001425485852064060504346889169359632361481849524336484028834974808426787238539658893013056963965949279978410189385991415819040012131113229879592919837316720961074099355255834789778825721146668389852618803090547843042308714238037029737104299613733396150016472706764874559579525331377833438694308612068453898115939669010203095234448246950127527383377814872350378137790615802295846951425931057664455737461460554499168213121041136269298854968160381347027627510982079418464156295590976347473742663098995202108340983123160325277550591681230895082832477975775803367181301300255070698149512068844303565961979632906928587338788152537077367302836867124341068358027099117634445732942952200361837140812545424173243363675897566068951182312435220462397926328785682582659195749184684952727792546618005110855947573122041244641676340952346384864435056878751072904325477414036557745680112995467528852885313407803500561540433570036396802863196657564651628952699546973564353996085054643602757197999511054054958744130313147148329298374000722151763670847923238530887103451167052414713354689477228293038501605568819463889592105560214944737391342735012791445039555171414278219382329229785398889798644726320565481874542676556814374128183664978256668307547583788354927979188681473615656505303074078937823559770962377685577596817195742143605968666232412022968807270625249666597067431008724980593232081103974087462326796257548406106678158300927642460173357509873162033838949447847175279325952914388813607925687795473817055350255084061378502775670882455476611935042707187640239174803006478514081620340938910896256347678172310845621458389766388098180372045762992262460591734060970345857659731738800271803373391716837073789013375627493859765473064394979720777424325808117063843607973818765153326434605927034203486960650076555825610164162437355380810008635074087054827029019193262005980058606655097574836678138926506452766072145030704655750094615599367586928870767593367746111384435373206161302148716379184259653163838394373515062194311036428495316210929195257478725271743289431697975131511651655949681348503585391143411072304333187592102528961829803316387272115359098109713087987240786448684654863611398367524462153717467847940325414202857376984678551596269780788224192901830136944367280806773628826229846825370118065254348475846316149477466808482619046564203111877565153795972740923387297429022556834577713081326104623113061714898720956712898637665058890251675799246446382344629467897567060932940091369821950285649016627475555556584457664651507161023705667683478377214329184483969358380906205000351529093923266721354376111818562439482358081649869504263488527543348031277694279000724765648850562795725511777141521795135307947928321012980367297157382996246985162167840716128652657477970988179476572056385996912342581383520446014018425391882906287688882731734122081142049108578719830778618184180054280473888115686855999034916444947072564004469242167337787975402698161891740008257748630736151816502100388542171465882420083540002962198732768070767509848693489794311245594675386165163057264554978972678521687908984092668010429266883647909931778907264737206632569806424243928068716632638853077160274920657551523988479018685381207002023877352731797586305991744895173938919524104083851604500979873220376586627608926192757777107258066916381948442170600381652622747212217701919927217126494255932738065749445762751187035175180042047658304966214099469224366242045288721799698387197186227688069632478121216707533435016919673679918771891832361999095361329493534313908108022276677118260992385948111047002881439831369047523894131881401404309738703031961918752772603491955653006521927218685479342171195731401696431221211386659799720137717011602449182477224068755198824086564428659477147870932551418889317405414780712391303491923493634375450527433372219768702136230456657005807539653473910338102404949732638966240501330760878595532656708865361516377333315653631698109166167473920215775487311466791433545156791414503013443941132012380400936066674346749710712970560850192203057169474716227111718448847923925746064466266736186445790198042722071053181787695769129620278492686366731660750754947597188812586770825827674678511344477361561003950771539605177638796238613783125190644767096202208508620125752893046357415622110148895663615091719554027342937667698541135897125922885096548063619655857457813962286473182392821484134434288330984869833435361513438895318783910620263012091355117033162520622668467902588680828236813254693594872785338803765837411566283690387585834858073797202231298221052575948162773901120662899522808006426887495503064295249876951588330147619100716199815765271085880887596939771980949780662328690464590069962109644145192531295312068671294708307729667516492841276191130463549448368449987529715014189126600148648718032329262883050297616720464887790715211854461506095739857034458591204875866296412383194392137871888521974451918054471986673905499553380716802405393053708801526646964995907535986462911774188130082917332159394832153538477568331827729893426435578793869911698260687520364997238146415048358409512578909278931167623074139325730798082938635670207332523187789280151515699949911966406889613042777972199469792433925385714205318535538238657440951687596264552918993875913564546103293414293649270314166121530137199284559603831965432368931979769169564106701397571108691145367652951151968950909568296840104744019358109906850642329881752004996735791122234814134013205741573478330824730117172637129547650853830427785922001980334457221392422135788441137882704349759423777001220937822156328762822549701603383872513301748536121016604576743085726484473145260026135393722081929744421094292895364113246497870002502388444711182394674754900261801192857358192033328328564679313979336418486460686183883669682468361329558236326198322071701663687842124857394667742878249440554888534785754314111505530904872909551363018620794890128160951521973875472260827256182926099979463805909369936458442496539539700013016795731305304110527181366409096659674414663119754159302228651297152946924081182595229847382416866356042371106574258210193869585423279101740190202409584740153971988613035833944228367461729722525038867118009904923167124246949802930702813538573601881797551735331888893224359233143891251867915017372564923016893623707760225311270993898083238194676640944894486354549530359384190598509666673270894123003414280364449858947817038337522940699831506513134393895766288369469914990942662052442258226563519898956161589161891470521172737975075860028001931737802537952808930131228247437727479690057012469700366911515712661400763699038838563441668219026297386232907471482663200827991626655831846165250859134396692231266790825736056471726693954449137011030389448841032812008181831050118567700426480322494786116683259069282469067736823185147492491876225661981870137010564133486955969372144560723403736128637378047894351724858655133299618963441400247713101976504690558394484854306956402682659119667435221879335931925402306042959476260534602294638457034454949620509509722897960884014882214331808014304164427728802653771873213010636336200786933288647313554875682712288956155006374021465895609728715194759032409770665116196718845458497760859378457842287063111183032790418922888260697399496339707601099558920381704111968569387926053106175440463412107213449498082822884058924061541381811720405356441877660031314222368133886812514059384810522310553815594016931316222671633169643152499002288978783202907867265331706171897734874516896489479445886300701990355095326056067087254981738606358523958859693104661137436047232111385285886825938297380665397118911795360256663776668362659560669907832188121940100423160658566771261279929249575128790630068653433269297623791168034853506895460487926127573117993849808437219108794708859521582138902027371222573586709852332466745479805917979341580255988403771694907226984754166053526483891774871594830317525529601143938723643195279167187903494890101356554028798418969303098739629889040775295182482068674465354625593697431687417180120434334360338353802921968195311997760144458015151180887594317405539778966719466646779252259993908363240994539038715904951018559915940221797889994993966818919999676059872892258161370930853654254442633769371311586721973901432722372806151537675452006479221268519055779565620417320472338975738050339098392702415426724437524712848819439738123211823259615507479024138065970957308981731134838375606964753573856173964063082831544222243197728311217320778432735867943993005067192439248437209255764435037119607631575687830862578959710191393823873475654061135090257366304992077087831622713182620305769071540097079687094227574699865161065263651789693074336254403084966262303417899147520317057742967013529247323660441212427943615162514653037529307060944446665884793769025391383363776360781351266420026750962316133684221493085317289099455608660850509226291181017617667219534907290759691149303546149416522032989923310130827244816310876627564177498326133857663723934284536754349764513863253670033575134485899002984382716917415254224911448734717364686393441054068030550157938758087138277031247457798813038195268875694455035923878055728775156751187880210003854916309638037907702747221699819968679975983311270726616540576360222542821174027965513021405879191350615642836232781314802729311990484095772624887107844600388007299876969354017877295984385754065147675176243164784477582617203135455533669684019781730490676084526720608507026916444826622996918959813573883489569230166820135185610087428731062637331602468079358768384279454315714027278029050665474859955286298265856159329700112222169744435534617833108247665995743925790988406827651807136775527476689787930546496166312895969623353264544782361397787029007945533485603584842939556447877046727703720122413114695048150779717480380025792536934712685964684629008952995085643682289940150958051776383463509014209296147587668856790607908014363051352049590527562035460028664675299796169256872200042136853856891283041404568916455734618701992301033195787950001652201189851048201861217783277877568798330989372431922484309093368193739877752919068048177696551095335300247461127858973200175555616013640164273732690829396123791729922735034686942018005264387732485754693551321963768901569263721874533723221291867805758407297746048638590397100157236996119679456007586534037379140492446789305823479513268894096487779786485016591826424385165143304466990058867652377112476838428333923112967446094030702925212822438941712189806434549201255611127685148829987934473254135703778087617368113708042094796153758750969138136287672648071938011575163280509711012741327262285236302833561310952500481727004113562146431250187664240586290052902629993454209470429456220834913377098163037559454892154268580032454425449474462440970926656970295968902423020618429403849671490529353801143315415318047957317195250527769629217480724092752111828968941552778636406418459802431870076234430178527099153676270321167400923726409276143291230617619778670845535866581202295957368370844408409165564279378730168552498511900371375548297439367021325102263045268993362669177907933517608890336641017327384268669649905290639825899686746653857155734296021460549746139599958937810401309135987029459380551347927009496611360542250519244345948815691613358694035141391714004129160377000927618829899318384548225192319835791796320908528765819621059828214145427997238971098224738230815558329557318308677283973012306393307497846928005008099106495345030621057071954902363464245640598049353791567749337918422556710826005456277122460287697024648313835492566806624905748984599191014098543997713302190445875445030209817245880618669227581715429975733748156775279904444792312114171510022210099831038554889204587822647195292620416168312953313941317419302047302832243277761615066425589423598689471314937764450658632817028387727174450175727156859364596064513142616337159735596367027174323718011273051519818996143156588177392450670220899257496026520945411459287255227370128607853247336545819198188555422734141647373618926488156428056965038532772773004933182751351610651337699007328918212088876309801619510534391677610404523978981996453706763693032201616808226262407958606848409671589769492849588909647301229764456953808167348492414331773382260608105109550309283921515700586311426888573591536088905687534575429330872147870181696182725773112245235400810684897975358191229863451601887111321935015863177879477142638460935283255298213743662834491055406866191754310910192123960554309071287133550974208043129549338692521494004535619415214404094892894177833386618178825357205190760641696392272691002609218402112315174885250112030195959076904839630625261951947985694749360524423609132890883999352846231137426814607622924981679051603932077425418311486330512739496940871342105553931747779965968370616556631888033289568684991440541575610186770461587887291374773486375525819253221533943539332289811746825990047353669289574585412089637022957587919424284909828135357646774959071664089488739813610075389562119873620811324558562290242126541171702162849488700754516385671339333469519326487641502827949496940955198969417947576571734431593666551907739883754318041476769421033729697927020932461410208759981116918341236107314694758780611982085024661489797953399002594140906638360448157794045476294029822782533662348447983977371915645280865994203155559637847145229620512706586917825499198586802462876951602000691958966163986554044576064607739335055568255748436629058564668445194205993762714882032037653707412266126762957639171124837605532108750118587304927980615218325599190947085045019135929161485407341092822303429254785497708366744030920591435184250802811923070755738090394078846330744875743405243884978539159407116984503437078835774370149526564704313138176887362053235489132132346204224527115196759646277933114131453796629208285488101694754086724247294114333926377544845490493601589524401815797390570012367782389318036626315842782291827912703317595140354437522035289498977763312728893791874838291022472907550293948727142633124411186483408310133222244923930241718878070636213248628336606512588205029546249374534841499483447802069700712743668275658203220137190808124726974302013462112345323623885585607241208116439958102831614639291813980575915074227948689323358927008654128084343296768675431269020092273653387441106759252291480048997018670320170957403856646802550966725722767992524894885278928444932577584111028119297461477270988946064366668242790633044987568425674784761032335777226550285909179331509766683317325763513364572479573418848161421072405215644529895601995790565762395064251872990943101489864611516233794881301347539654262839048377486952072486453689473139007318361141440437124757992546032687473083859806613852945400207969324376652990949151290642252449673547549525724662958234507097664214800240028565833679259490895766524734312849074213898129926943611490752000062454274303058563387118680299674442739255865419152000770991033256556113475120695699148934243950344911190104166114650094679951237994028684345934990850486667673373252930320008856705693136731894276763995808304329358970626596811586685700606205554321064675465693938227350323335651293381413611262525702824569049326331796279024130812647878671374777334740199766313170976202965698809900884919684177666676823929598787115622178023790997722479631361504014729209148591681797377597470022387210460910604557672751085267330967434409143842938111179372027150506075230222344046209255092583667853735221375302320493501711925491360859043718206826392697596869197178252243135633376339505921719739363729575186814843978692615251149998106941069626566656096781431960872935418494396790791631453152700918439451173737483505127541046381591044322704807794670663968078683761492124070023352002630174077346969865788193466984056327274912748892121766588122020944740416453145156397786207918379851134040487167657532118443156726923305664040786637234978989886474013966328903117608024601712483349787418565041427932735347510231645049084495535684150674943494183473348979410356510784323177239258055802825748922950831139490279602460906375267858261575544251694639025215619859944216797820761693817518854956438890366691191183903318860357277143590280565248341378466246250090928172379671937708145694598443274296062862469735095466508597283979606739615478204489388772142135869434148470342684042108988509416796144492137221724222842399466002701223556752118770374617760843016445344646369682047654591428572865174280034998798288282996784429540160922609287732170404644311599281492174301669112482909838125370521535093044290010545688224437924216826063666650343539055017567251199096375242235205032478394031638307762735670468271789150952140962480503237435678629162196782792972312324039626766491070510595115758027934634702804183280668607196773191097665362919327109005593911031551752628212870310426445820420999880678841791751281861005118397533721640367247401899084613506182789893272203264153886535333996066849781206556026919443659792658766262098825613794788675108152844853612442555879138181046315117796637849469340165122058078024368198973774546589240621468909400168475297202984831629379299812994334843698025662813180987462801359813352639333842932713838104478551620112777572601091105121558472931974362566230696661154030578414907373508021457609106562945478260875763464533918617411239484569753048195003202588645006069074359455386722626307747006758804304990376469743233791104878386546414608536310683823016045919010524163941845331189558549246417634475284482418292154787633945966772102417366103306470632636369703072674284842200245095864665507939745060865330290956730019698039506635905530558380868504574839568869166479237851631535664410415446943313231845690846220506021907123395765253010840925432788609143010707863110474731043272332237624959420391229678742909591809360435701042850303787656630725727099247250198796388516585185977003375351218012645151268323378331507464563982393694555344007246958456882875010334302977836984691884784597856370559474865059042022763376492477230254966665311286414436022174898858036964311521726602254957786386358004222572861731185916604796800917496043722497023221243793903382231977675345080723951005598670617419051342959869815166061867890873634016506640550498963521979176590267476987908466367110297674025275637870405674394354938665459476213145692348708308936684529622888819512708308184770261960972927898275510995826616433798443378405077531011524096571770408681541488784885770638750739750039090878610485624345965722255352350767442218940633224812319318041922058709629082918557073522076891190228101453163879316495623903247062576347555736472557305336755848642063486521138961920854955370373858388645686714046581042107454025400765533072402778387038927982141551815041783592326344293683448989993314564100544615718548185310298809742775617581349059579841480692596367078573806176645647377585177759879503275621376398109229920380161394387459866604583403583577256346233776316065471517594717212967872362246565655452398220191487952912138914182087857619712867183385559381045247660088158712521319301867334111937347464894283268859251056573751317355511873796525912522091336080915075743377648735037306875669357523309720828887608636389147583525125601126812763363055880167327238344301263607158854315567944109165848488008248256494023455608805982036698735574106816724654359146597475339359300715012745221256049307970480349423108683043322909044230638007554021176954104567934490031752591554550601793248601324503926503031539175462448990897005569394464823363153713698493703725509334570370926327131854261371734670130255648824159622626281634628042496383408232967258755596345388090933569225749105075016889856641437285614565637996372575649014492201092624477991332785305875906295342942203338132929980077598495617272518719193215790151224503236048712425715809109967957097087279606508106822045564133427292450801329351600307135983722632128577094675080585984057617982758801572442942420773241215148698587698295445460075970887575778829241136714864256537047844483387321082172138421791522787379566105631522234779277635469311674977687617362970971609038055542386782216070908942304675136721243089427421141958941982423348520015851873062532030948612622650585363306477006293895250483385417446133874936094836046165032360761806060790736228449476089774772701285098008072843063927428700447374806152879296300533264236970663554959542462335162722462303543454367276053790960221966361703507393054771605725775767035571172475750843600255912693719670653874482971804882438252564349438113621249678685231093439931935100650026942966662305668431533033069165650352324769316345319967015497056703508131189616687128510439448375362215329858399275468357674793414315878821813058678373897180632664773793258155013575464335199324330725327411097074913242876189674509474037727578082642207888202761631879944707961414361187190572656529303713201994289892375881384733930204836146798293873225736945640473541666588266810038792904306048947182178439346642698564306299980130690035780849125527462174106451682911189866364919153520744270429744054868069143419913153845903134036239924107483571865311656631252748516175193039002500168316730103331300842593915291616080362362491569971071541555277137943919832451564948209411891299620607424371213583996613023145949982056281527031359483686025066403364086431820556746761900628237872436398684123949360141123864216567421535684817422836406200007525200790908403183231716476745307989041947869540464858469801304959899865980572786092526740241083321355859889800079356810756273503870546512211356321838305428101134616133690358844206030039242102512684234193127892535495254937020846243760636159241422488036646152085558176068332302077061546416988070468428241620964529260501568632735306967833163845606156944633281295293025379713095494918612971247168711926361441887763547716719704083232013393847111166642067106983445339876151355131946008216444508199828105726208941557511717220659805228959998952644490560940813589861143708786787259315473511929590745597207920588373111307479364675582719961253781683965238528397099483506107426959389310471478933556033194313891624821127781345104242677879209620296234131641996746584619456515959508089715540122255651484441053062244440308105083853243394492825664042301744346510905688692292482755731696815247351433402719227889795582706305795694673359301335539719351483183538483406923207389350505227005518613975618303090731872240031866516700759462822266276678323512979792448658040935962432439752984469931760643815526541510169200881001710164744193531437416659360040021587236857590048369841815680446009362811545280230571033057714306081953076810884923229108734829252294064630174869958743730897679474893398462978214648584958415534442065110286957251688518945170255373445665431238848667528585467669481266335417533292864379122737844127093944193617518716832780025554828759740992469126664853867144802796740577257277858807021454452400459616165249345606734852500204606161117741504197706013022776292262160597129265805017610505569558125952513628904066321572917658275441016369505094300306450936532551777736435275213425555195341641293410858641385474519119144717416872411803495629601617572316541160622711360773482844305298408900126983115303197820631730578294712981220129178866680278921793944037200643622853025332383420736996854893628288833197614642818413015298685869587338221521805475971461189847433914863953396138579486701698048233014510294521640733957757243954825154192707065116836548377698119670124223676690861973475333108364765391693079926421010218172111445305098416115379894404816178103291555412255800502755547446083942785462512639318528044818137771787095989271296184671609487429945590969049923392880254705305346622627455200448354283424663036087921866191131664818432913306271771498348273176710754879721028555091263816329398899773768360443951085232246399533462938347971815198016178881427065535207634562282910218224962112978082668618821154683574531576980249614812154002534821045140706106790275048803714328343664403662933397340632738630844458146315192303488044768813496381593267060539101209482221033157342251719372860003917428724388573024988131349111628294979517501878896214675414669671518987089350497222281525246337006313572616437267733822669541995131042009324548142459500076724924977826528500489083468334350854807118260927103876392556968729416158433912513276673660772780334965899761988653093743036741950920373535522998069093314871257159719958426768114075255481071245816918877253984094071186701000964092359024706693796363204195687269135304275468953498327878807134206321194650349828295309940440710639953103090849872610650813126416644549145559988635259888189228973208297175804239877997278731163757678187936605868138706988979394200869417286964133046095502944723245477501531908060529503213678745052462675226415544078191403884215795254185965608480376098595568394626310416009143850244789343462089732726936545546088798232523284306223975757581334721550081591083379695529063956618696043067013949848579771377295308263996305816607124295926963640578015376582104498110161281260087540403771598756567100666487360862180067253816295759524756524398940702774124348005105861780300571894418191338065452923048652377794407224971715091365067857649626193839594109518972360945427940860824413005859148109679330559153912767505401929723656207726975709320960655497302232159256733555932372529397900281710518333686078316036172083269708161746012169222986356554961496261679665513175351012643481237426655745452121587907457661032083978873524874900017083597184395195297179247220051920117726716113650395333001864668764131606082136364234853631251513363961606797756542704563564756241811550239283851464332615423982374830403599828661728905604382165214421032058489730598322370021915167528687789868833442482895985124752278387718358594541102722930962304980173258789348215101193646182700557797141086932054730947167380711076195582686204931785670176687617203817513875905167836234036844068628851927562112420312109584020493644558037316028627557082761208039920168416244023222881518759785055243240126652899806793461868587452901169174512900694804256812252323452541783449837783615124153247813186748040548921913250184444536352243613216786437449442987845150832795212791597164126756127576057617868729582541727085722116558950483570338774206695289756353309584249884936994990277251787356144061269291357383417828463159870585908337539419878158903653062184753258284064721770437665604811882474683586015906514987206141207271663514431039449891567845130183587314867877739383191281316447333925215712200227608771064938707722898128563945069177174846013481882816595211639533477041579172831091007676463365704188832084457791100420674529608885740500503781054230991625359008139239107103414183187249238033257688863139433966653651725334014037651514467112544576356747349459940879196683816127979627451385388664373262937432260466642437229650712028809317320033199990252979059782034100842917264642404514179318294914673446897548877580865451679707111897586901335910361518315935188834462165332438077574060092467119559186613822094951876061558411836474945389237971801364766421805787564971511291221322070383089197034420515787847712198606860188937889771079305428032790271682422870965614680756733051157094844207932250555470796111745790835754530217962954525773575290913513319215520521060391170144148923098719510596689061807218497598266368215281849430422163071716275274284771698809340640233998183204716883766280493296671456519797441555310986810900331223933440373040110431741945358863091575348483581617501944352080799593712726986473298918224917689878028019071457153926287776587221376788545693378347861265135395618116784573517561852713876263764188469090458508318084002306700549495844977196165988735830926035338712690683005776209012607395269714987622660178542094546067421324289538899841466451314655869573825563815958385707954778435820519187689305568592195656743551975021685951366010463559247845998054777963414041281913397379567179967974777392204248386079011706694595052141657405699446047675572282640080395341358056477273626854171532947655799906518741038751379540731286904542376642692300825233038397890605122427443796807918416217043485870265914218537701867033720327931415272992391457102188826147574029032888876136112856803886813289432150829893576658883762055867657117280461787161438515425988049831751357259647152120357823622084476513761093238104316179195659522922482337986048455850300429732319031280846241370478166038474822777090471226692004386878713599693668936870596253356096174932221390835935524472741839638355397709624015729000898610437098148994950167513775311931103932478034660179742658214632613112359028542475351267763045990801879696967156475545931896129849290779455671248955989598414304176626004047465307675247924351614293201850922051971591474064700695366958482317882668249355468456454842276309741398945531591048045759661312156425402324986178355874146540982401992697713282188785729880580229245408334306934062058828091556318664114790850465108025508622426038588810805837922133049258355485604853388357816141425137750273576074500407695718616513369043813968882959037672258240349868115869244543794152854311944572234318092238161732211291945642670805430337056966053282432535468223693053984663169195030629556722965834345744979755650970336923752548119949245414624476328495866014921721414133630907412414596966632917386544793465335437240366464433594202167793697535253134393151615649710454918110202718847859717724478622088409993601129705936859050704901220009892333383807699754146978601329841876782034337941313152489829485657709960630519244153625138894732346751812383314338288979754063244395222905789168481451094316670406037043197176278346038523019796036858238790920074588973313951553693172279420703268977198222824336747519789091277729611720277200037601488322207050200157743230045373680980099126155388932229520042272060749896501384716673896951420757848599452309684402059948131965384695300113136765257475234782858972281314427220316367694121667612639736975724166939982580828695604455244468198332817293515811079644880999416432098275880786910962627573089669547367540745339798260839778355000140025556759072248780243974431258492774070493035959678656762275920055355408866599588453582544132123503412981013643990973153776313868034982647634129167671098133235045874016884645326181276994593629987263791505461117826179308150903629713320609413549314642800321161345047585390936485772058624166182587651672082361335655315966561893115318568930409282838545836660709288958147066702223907462605150624219354971031145924890776758516068307794885718203266925310124887148816608040227749687640861665917479368336614185837125317299188706242833854701512232755172008569751904232373341887946023495377514703296788097473977091418069002392001553428191770821932173171122613372570840198010229600520164377992035257513327617305708586742066584988868135298704808327693403113539657223180070407846810623483745103055663873004203718993063020055651385346172836722550003049376127409319818639499090366810556304117789199361925463023323555094126243933896498747913394469382651337128532447083493288909836954969744322319532095160843849358948911912064657128740916909648344366596064110766277122200243300300971622454255096775628910104736450154319926055988097244549186593112808469502334048279720526134924877521628575046829654290083426983087624501114987957257276878238580707947754531567177397397350696675349511263785525514026366970473884576811924362494467211379296279095300111661054049278416134519700867694250840650385238210049273324175493593789926421314182733913658165582904954049455872246448348920892524073116788232169833685497862918834500569191251483173753900321060248774960840793223867409838385125348118988472772964126288068992550994378724183294691205786851774766310153298894434844638236360617929973067083456493729901581863174818524842009505672886525488179083832701577455635579934877801345697699901590688224553054210186520176017044505267719565381345471562857590559910639328445487970099631183048825064725063935028084257582425281321762055059265848194968320412116683703315719494816468473477152994748821886598942813111802990242351289419004919987946526122005763828301961252540231861167784591867710153084863345301699706646336840061095920725031574368922913565145656024951260570791809487680992217413072316475060567122428652974462316415311500992371429344166673503128240139815913933929841958004966094993776776842854370888701482124129890386723983055165239745231493749390236850061219297172521123912377165360035552375519289298583307230087184569754073042317303285245426145718128943670780860277527065203143063282911179165158178104358356730008317109351393786492047314374731562878452371482271840681854107342171218688724670613344594477740855002186330217435843453305066400689294208880229416346635020967989694419021492594201466100000584464920868521202557932630411245289909593276315015355364231676405211265908242812876551234100361865026828148874083767529794182898843454498383523174043228094396768913557657028607210110601215314887170319060714916554544042930776174562123817102960884488267396967845928072990828125979666185798329452499280106481204209714874512285243913449244898797058372351227741048573799560505051848227740188353362309017073235214256870570608023542639435276400795979340491366753978336839054159680428691046154704759897931019493238368187584916438088973644733899746038475394694563358302833703579291122625043134156771185576515208008744863390431609744784625608450635605593220606220057802559936296682747832828463865476441344713791992924012392915330725452018546659581576579656374557949740463396905489176066042487873782057512171434889305897279742105274840325522229925451956496200429223757040003274186810068712630184953271069522056862653790299930993531550201306427322494444703823841089731850319845160561976198438562387594091147032212246586804774157277754037424888978252456162580516263820333359890073703341602580120659054196253995376683794652063361273256911585132402487219120709306999194911965323770946223695301130391696213305453282568952864400893880692539584451013758230508961688344398396321992253863404949538272818483199220070823209688398899279125339041174249767661987076206061500124857608725902477455537439385969337175820981551176189026843072854820346975740041584209824508277094147909915962154272064620982513884637316953743172717105523261086966033305182379646686554358698318302202398409400086366845207168943748172862974231018758382930970398906710319923815296376104700567481655375178718715836939945123453991456440881562460735823980385696934246206403449664604196635012029760552018971547753509442529527687433478512568348655786623990179895078727065242279657914194657499046072535198129768690663179884405160598076930929956762224600022976259160159253751110487291760173863108980953900160365715691222998519669435867081923184139193546858325770638176503494332209449229226996518816142521264381589187534011850676734244165145649416745053718158060952320813082103859499563657942743748199199784480867326151183053395074719400992026983592124101108703111868534408394172437083451015119244033557853585207725492526043485479969583251485934125596003923154901875984207450154965131996643796438949151124355513330570957226946413903383506557844871071382263003312408413062792046330486701299462395947806668465212011061674570514678050425296058708747858871290641942221407875008424986228831290926962967073545376595963536908513018095246870635741788221886109046904854677062750996885441999932522063708820002032830168583369011533164803517051800728714231758961332741285105520766631656819716340738446635657747987151024095793425300192338623973771170830989109175473997639716097755782858571364571040734991032810589916010971375967527300877861087666608477261392883175934633525155582659553800521537830455290101992463721084713016457444241743651745957347152295655124501949567427069952054084392225063821422619071948767102695879878782032648270615025628033709791553222081250058306953916903519157889210636621710930023175908501400483615711029202245135643172335659076857089830075751146241716862708863079317802095664476652540580910335095567515839774295339369608834292595493125307387131374238570656606127318926829706275822338329555862609778258292268975656299879293038018892247972387091052297897518310237953193794821942788431823475578015661129103408974614036094596143707266276046186329934116510446783810007550167426206511642002495339146600940035082362987420143188741241668253938309266743647610844875251926662357858881492517493254992145444337336008593478345226109497626702228275926511359505065187808808349911997582911900737028156110991161979796580400935217348006482631853034398685377828008879160861812770736149583925993420343569306865114810000244286017636766371533764153029592185655054599737387833994646817700846231356943377047528334740905676697268243521935926807973716311870678492121661296338704316885712242332989519535314148068887742651320544804604091680763885069084773875513167980687578927210623019622467966558043162081615701133162691073460968230215913649339982529252173908799725403411916006692802200134920438569712351405860166738787847950713390983251989205004618208336966538360129678519218026274173648273529818176314926549507292117769590583522283245130765391384597195400149712399532960536544677175260301041827289880815005523984863232375301212680964109034129391899779153165466541290726496713414568713014746129784144273029620285571652585975485401620875840895722426356891380958084621264675726850906746595237074980894409332765566426416113302985132301858419189697723290711499990608502914567397455019913904930151660134355859874395763265499215998817993861645292954205718200846560789937456607660499514438277751863876597273441386592138033888696192064186515189625503874709886624110310970117456332657693901105509554927107206476241045866989168931420306471684395458924693915495772240955447776495353097063815282829414536672261491812729004507463912460053167067208323640023670366332185100408696769250959460000449670592582188649631855713015898272307770432521749610359133057441114928358434814897919181715876832470489361217819153555286547809917252537802105386737676096208491516403910717917889225008834487295074168930661117117878602841045454428874087826717196304141002371374780689162655730688511799824095422851180292668670500077341294813902449484523674949283040379965445355069415597683818113234767340101940169769212839234235245887676285200614143988140554252159130472948294528949049585230630211618762539769904124480679247835332585543979799708100098071079874246078961794793468223692392447417997283898318202474550413249148005789599191062787125136784063309220685637050931890391608730137832532249201247919634076676608533343630992534440224708606449748626173809855431187180223020672334641968926340410649930116296488758587026213812794777316691619753167358891896587358227683456875659659155007447531237523006140281750310411714898247318818337704183456875549787137689659118627385976120393945334438615048963858585024851455861213843116783103277323631867735016603807327301023439422486313598124716449341136104193184670210241898504523499122525137100832903736245682588668673739061633027468012895992678014159548076450926823770768501958734595955776398988999317350890709298296753474427687555124926477588590527793338708427389966841099925837479234029127473486643901881376429654863178025612994098604630020934936463679253420029074345066079865480568369574506005801882589350785610473778157475712052190350086779917100447782607269388688365312823370699766463887169579267146943815452733292105545989206856552546223979240089726428455348221112231917016076897442359034218908335610441363670051805840850408939099601927785855318794323303842386408460543908499688229701874371961587427726054407576909566091760971707264503604907609279961401126828278233560490503566732698757933306216938474032775392733427884864277049637072849240354096526999286166769278362483721630711028880199172428642515170135497535449106517934043676913265691804911681506812827605879981297213305799559386830533360446907630937998229438565927170974201738364003256529581625708075027132841557738818952398820993042413022622545135006502777057333251767852360641891361452786561054493947681234142298696987504515280400972936106596740890800981317114112652328266928547692945227413237860103758261634582323266933401953279741696282730242197945217505947687701298726990131859120030567499955845139680552764955368691169780819596603590755383669821529364499826313830363131216597964179869175553478990381159549276137948782187536304519111867085064977726446373191803441418998127870806918429985028010612429969569673503554002156756677024459258884953379355989778560150295483259542190756900565050210574108949503832769115107848459226880326265586179567086247233894720426450522338586623442459555498221014349663418710368691559034760449941920661547224597685461170885351931375868457326165408918837707248376714648836820560401461067603524189241911669165412292572417979935226049732687834956969712585863633720790907662066008025933589226123128745796754038069637093925219666603973824550563664640016839871933439896935255552539288971356226807520506026110396570437728718677507978849451480207896648180218308904456257167612930705246029298077967403115023145287318318709545810411484538227865906848769013490219763106894582603461598346617806402267017846608891830886239513737321762406358651904212257036713490984158085293219558564153709605026069516560309354223921737307666652933125159873488540402005320555632901455877091232270193810194293368386673694090602619209890954063092173673456973751333756247749807153278245148385242346426482883134460344154367261844518858854771383237922538642338058789131231575040826850963167444011442296697701996907595321030869353131947113845748003155554764342137425004956337278549788976344916598355688653468477009897115122962400100781125365397657659836179490727860181080943512503983150580739991764500990536738550496629731326932876688555184649206768569208006573520581072585542769730472825668811759198690289076963656700941128498887145750925332278720424005003357295113061953609069849730609064060730811600224417578425600541106354587415189446151267918779977633665911736123907985855483412434267664532158924674798649481662669717586754197033790467654106102298249396244577469093492914118486783700630113122664851660098143887658423428867459275150133471023647166526298393617221448580113372831529864194928171626111931978700762865342354779311010739651802021658447405314645245699544158424840068927833498775481641450436537938193311434671984162957459942648280792163056779470296412384945765354963096667096191025497589030394470954474566184302575901946549432702345224586499998497595986683783711594274278996505871835531172790540975364862262386884858372843701762921761126100007878313685266474476649921643229940467914231257561222755917662643741173467778713564427017852548037944840859096582569167882841873837637365358994251854507033634094006059268007032910930297582618046120517162125941579622779520183662119527443846800494523320195577537275511460051733594939447855402169076740304520595278123756713831043779333550749182925152832199707736962631604963240254143835404071640515134994783598220153125204576325302016874349876156675687402366447491770126056634967238798501082300431812886568506950659637854740240049483243608579059674048791246260134164466807645261948101999672285712805273597892852306909976744075740309688564349377706767057241833669365763087464528559079296529086944440342842299969709932979927134970215253884985222213800348741836538308022561697168018596971954240543502599574157074113367897167872488852821858542984120909575378410551817427819561011990001326968296513222611367789340188886660016233970968539241562062067265393763873264567633108670009144707825405556792470998882685737985744636605805060872031224075984129495658384808989976470038301978602455056186784518132374515684635835944090210691119671731727038416039741320841990410393639007127095148869333933972969032633549385097859183079420037600946598975248955822458162523618381278398995060761880833254411174459729155348958238811833320492071545616747308449640638175538647647832017769379592222288089189164034527576835546693002452525051906895579690231332466419551491609374286656981473391781550562806588402303339092873557291740759639551167784409075092255834313690959712760441963909293101965608936229738319752562228504898020638816824413385843750791874704487720546074116611283609185982530436244274694577009279534948147609119467324232555383946450959290972046082980194158846435319807005737803283989043573901365659095519142986090250670367034367566211504453098493661960911595189053288564442895995576761629367683368174950670893022512161990720774054831408941235128439306171527732077972494245599620144165947219510842380820014532892493347403212287624617565979809535850826551733629339472308261173320797402614500573280092264997943193929186067590054576394212980885163868987093959954642361907522958462217037789048815331205714357014652326266778677676708998561885913898014466737766694554404301530621920948934010381442796984754349287126583231888868159833592984416104940705778073200153246826520065716435319850204886050258880184984905472190166880482165991937383533133310804921489045524414557985824153904509643524539474967793539909919180083612066512953212669504559390920319737914540678864530351924971532297596599765354609586915980765429325638907503095264661632878984456372201848954515967958789754591654786290882564002485052039398347221241826133832824897503597722698304678797360171594128059315061487028363746163538790873692186394110869583509721198064065122357887493416148307318668944861808868230332232858645331633164603487684253764498780925990647946387270219556700293140940898279565821152895319706160354904685637287165894786150880959035971047449461655798097704471228827171152155537718390660004549117422091032330569429645472529384228271017959318580615987268567018443161922142243478909164768099567472669417147883416830606674416925193223070622929121751466708229228015468088723134124776956632620787333576265974462702239932145889553924413555121802077985628847051672704962701229306919128920271143952424384979145010150527394853422726792740150489190144392028636244205724728300278560271444863802783735520039328999873921915708172437585828744179692840839762427351656617168824223907773524725037704207395203688956432859573380957218969935307583366827611485016053588676611654572918549660016245053656866789884043084507190119034559900065653089296125091642185338017214477687967235212470454445591377156149737630250612813684187427803002874311227419896235800397586563633957225655150647272201042913862115897628587849458341002076374049726010902312530631742855315538443293950048350393577331642738535759015324908462859362931524122863447169398248187423878442111098635836640268186095374851612785586811313447742278434535277285924116075392745955528161658164437023569781039928598775611459655846583242870436754086555120115614677448435238539946206059376219332016809966225958330944672215002416820498143853819395988463506431595315172038825655996866185833386145507829234024301532276309346893760106882126028698357546644371022641510730680116939946827722215958556438888416462563597924314748728339688595209110417836882255232222820394348617675176514360750802431640379133773021493964977993371756813697249595160877246606592386012760867345938566012081049967852971073891963464488869039739798478288189824801233788600075844397035947061465134582592214713718401663114437299926611738360881806760644984761835725043977865840170937885101871118670604667590615251418305939526215239877567683248518686620101556903988938131440416723162997522399906018373281750240883874832180449646914148395104388321206249378205150073114428699933279143043291147169351019257184781552830323908834994133053316462226635776236666966486716211689422050964490387439401100523824087869110167414311132356575402736910221689545313080774172631490272406659657550167235515156438140469844624740445549877105500205179771704639201608761223680375549834300293083508275120563373598698246036354884907129786461994745955368167523450695395207601246129391954485374395925811484358131878697714955081961912046709326160801921890856378349726774501599153033054887529509418535925086607305047794350620954188548853147342794275146981745399139042360156978830738011693658281512135502936413121215343309148635114131845348395301571675878014534916704645931454295695119854286055844272668554473868478039441374410856443849171941875512947862332384983256998080844153246352278595816293876148735791767573504233587370916673757286455671501533150667568045565558663456245531610800427858738719421595862237503336645567130487618439106594281093759554836249699685879395612000069180524911331009563821767385240056841955691556056102199027635752570454326959913809189693673660936700505958955698153996810592753307349078654935098752713294047635653629035158141131141602344031577685645857699892659201127277473856696071336462816212266986119270428052539740647327969256352670417020332048038654463386902174547881144939874478494437490255905901469197460136330678557748658007326791234202309649450069049180078323059627169225803787516309325948339216088938240622111749860942552654634087830887017369050595364951634666963780850740708810310324284575094169371578378061597551960613603180719834160788054131365205837968805148340856163027914054030420662768506944035446276914370168908285851080030155984767882247814430862810046067276406058918153620536493646096183306931542136358250659350330066633666041100399707887104793278772653635293146220630127784285842749551214640349868040109106322796105152190831012209795331366878924066612680190293059114411876779658500575418780597417127092324352366230956383092141603066232885016584219172598196931110419749950955988013704466801405032138276425918849312102388121379360434938077363309316071099892614674756712402596738012129515603888035630731069109619871402834045426453070460672158823387842027028753460864496721884235432081516125793013782702576562960126127439063748531782635605227861044979476973738571749426009419659345374319752165369044778156233434379322421064096394684943445874645322254226620668737927616909316356472371261124244208613451168412635412342130436947860111859160762380230709339625497339484523288984282303151280513529931483972322104421815061028998720440859424669037807054596298947198448954379522853070005577376546707613800746881655026404162866666206902434388918233390325514207412660136302792060250769957626348476705449132392764823847573751003608059380038791271061188792086136944252898699139753423125544523155369044023901745372377489336773859222690818367909363929707730267737388548665331522109234632806385298623139779117469586961936240935034054683896371761391529845791675769361647101546608817771459552757095144784169388567297152702844874580400337023631877607526399791175446821455408114950726139769107902842658240992773817848990009448395860621926262612200424835463683182343087340374690468495831718160417086105600297569817985049678455779423649473587359364872306178597280794622217481387860212508072272938826665159424198975427918858610598760000129422035675857393374884705112614254865532549129704779197900945872943098498364105074225094592068248911219610772324361617545824480422748333730632705271051337382020713355942792064426957815117904405619810337058362427987009750270184564769383895180641420921797202185357947694517178203074786754244872660347930532560456210015393493895117004514831572967865016835532079102499669334213827053858461923467492797328337106323596300416204154264453637709786331828388731513523268309143734238193193193238780885529594564683559104024804939211153955625049840388908337269991042013815335661905480284887514908019126516059857443269622105103368736919235277538904704663213924081275003946415562254754995799496667158852765860590763295298713288449680741859151700503631099280467307186149118909332571681518210096828383480890529239179856258270933365905658855589630033504636695063452223047910974116931961137710518939413333907047361695428405683311185062668380115814297404052722843744577551879733643422916116522339081055066558465966522257987378585473901251602125514081884630698998941828093507070924710547190744388997676151239295611703183489028988642905692034164106482082794762069941143780374540707871490047512729579866209393813900241520681242925814553131987213900249289338990214863954992153300545219980994490403456869683415781643691961753083906392050544714361336835571239943575657585606480627791783697820882853385142989890705925039230068245575082915393892102735214601538334220306436882202468313031650934228454367627546278601211532880771800085144048761376308642379647463480990293609717934924131908184768698708831094065400393754703428208139842764137695098039706918245640532636773747752595976447679259857913392155494589869868075465226293394395469152051074642912344745949295493290087616418165524572752503141996022004064528853441100321463469079082246208222984888702333869857212447741801118330708921369917577135511701304635963998537916572356254333511205264144612900983930087342473489371824819844861540421150237515617836702837007415444484440327446728228076518753460364055083027449960145538274250078331833565175417227554832533218554715555340381711614500011673723453586445581892939057943485712541703803894630374805398310757467602380263210327341146478664405207970826376428077916953496876038933226857510524673229627683086813657194517441865778205647579558520487012458188352023560541380630212047866304418909325913880635461348128405248263087240566187642916018958393759914949297612085626237294477950544975616519791738289394182403075030101459592023048883754882808025712949281278728163515092924513811267876603027773920091470409611683398032940414816513961344249298476808800664772410041426604037434402848365699256818086609497578483505800585154704446570002469763158053676827489428101085828324181567646000207007728990803833374991553660323073182750698166517533423879376202836301756237884826788548690763087005669718032732003955620590767061877543687784790700546920033859127437518605283799968369872310074542593223586186431793454233167313819281436357559930995859918651430950633612144653465947591185903942710871883549571707607903743186112589055293295378788952990902213363367647162108821761934004057266342204107777907757094990376753337939821318497068460339004457291142842957201084628971415667580270597238985129949463595097481318934696401450318476316868795547063248525399216358392633476701854133323379258053599755841776278363111822763844020921851830957606877408326493297093001751671889205883935509649584469076720423631100450873981690037196657966043000965203317052897890247898562345729279313238658473869498174044262374292931622732289053089476611307974609388470633468966764118868179847967599631336656417387471213691033848851094036539729458145615786766606907737173238770930468023895172295982974988189725325591815599570221727164391053930646379799372265176233583694440150277820208647342872728090660895138383087560158826331088925059790066463767203433166652492208517847929069600068839315174746962881561580610349093403237717023426221481414282970211104188449676605110009441364139147082577779461191849565973832877753475938461528236628283051472014190338574196777021889479553107863859941244313259032986683775761131115655420582253762162198257090275562318219965488094377816350546039736510602477115426995701794097163234287419397031092041497895853530267427008100649105239558603162821593816025654763813463430432148484315981866839963860550937098450800115502837067899027608272431548274065488995182885121925327175555138583090127527883545578477525165314482595393573606670702834503672099918478470049031509294662517391540886145456530332199310292263624450784950719605694006953907603480371006364075728347997883252155954542461315778204558884635028324371448688768245588953654566023239909783306151513546633714355440656551825497563619417100877564208675953342273635420818979503914050678469132005084353699151407875580240667466976329163190693967801182072381448641887162328757949449471188111883512284075317764273804851862261963060725089384965973270840555902709832751590421830146774375736557008446061357058584293986742131932359884191036381276719326421214094487233026856314824158020958649508960574975010406113977202323839400405302246750582602470701381845728805525940851266974227434159133165930973853451452964034456883428832655108184828423627938567115629303096200131172723551282987037900093871598292245715414404028098419891854880867273471367776777775192892629267169948517420649372170529063238736056180449938794507757424918515702950059267061914861888833572279450683933037581190270988455457960685761593300453113123486493858064814120511493966503160688412071681593321129011457483054304398823015720941464187224975139393826682925406279994257295178019010822488156344097696329446855231556976615395599970221470403543860610341299069249075052417676829194190339756244954080474915101458818165024538350264655390040330763309655841947912597502470704469263124727825212341218418221840529996547489151474381560350305668342622221991937533059160811828606791735763790223245462075017440891916181782809789379202584533433697468777870895763703841084654940629323408340897238874943557584595309723155166455532750149645282803376085202247653382940740843115423717582344402939874058063255214724066692635139362190847211330845490283002444508272551055426918160706165210845745366486743236298886245276722622361028055396594378604370657686918642540810250812812561200668392946043753498002026608393920808110950959201100700182580735992415637051028904503929307866070920708532403013653745194456755687407419443655985720727837691531535922134656406495785649812438306643115437158150713286265983110018305752977209242011538593234852358264772774925135367855598851672582291846640360949713912501442877026853292504742212693050120682045419179297910737911952804816725087420509054752431705266421868595251219666270607221152886782129637281242835203678658376367929174750830834307470566324447191290143651530072999714265430747245947626803210014601161731507547693034516810434344681765180671130650409513407834425993037063917666026489672436810304314658143648696745472995801250725032271395070119757249180720853132533848573910427727906731641601124717064107475719273929222212186538930048681705437110704865424122509077502808310633747727207908152047870684181120919734563654314518025051741921414251112246638993547782323971652535474458455992851556614031171777710598202407338004638332009736025348736073054288934575320152718935473547061224790921655016048107728138139215439240247035724828300919200926814879742269880382782939402136099139762975021236619251120644555614826166852019946496540205910793594565367919382301651488009614169627853290932022111500820491251199746841726650003085186739437564248101119492732888056108020473741555094506721141153644167239240436403153265959799143246113946738856656204476923318971679967179358474910906531350690636644452756089100205826455438764994425918848509437563127210666012986910636533844830849485263263028050282677361469322614191025725521042974488985621116353447212131057281739029915499310189263346352007739544413284862668080894918879737770632138686525890924832148066056060672252270567816780193169970253691565747327008662305678909825557719955536497568244870052472384060055691568749907229932120308020410044819167236928387991490315621149010972141009497390216596276429415562664839135879037220916085062558911009232230013292313333358446214889323824217663466193731888895833406424715554336849735486607506578509447691732769275309259791062439752409434376150877898253138368806052566025672211973140148537160003674242919100561863127883839971399231113349170816155719600878157547652495950117758381811428810970803936860666247726273395171799399457526028502168062036268929536904742621603597385410594233140710032477321763428419743971167994106736320978101549433887748283496163115664981249370264495627979647973613213696163868170577901276833838177208504077307914006661724871781241078361612589207801769269827237738418319097038693704312269939880199113539144410693376931430765470169660267892205352315021100782754804110545861459932097581042000287939391296891777414490424109809006341550853653351784696419719940941773830343644239912817143914850508339721300666526131606520780976962843210846572862707438868627923141342282538699241370840093573619050610642073585940267175724890476173505503720977259805962110270084635011824098645543195966035207238494019100990810495678049256223727707681371815430262964216141139818551484783539788711377529449067604817885393558849902554785526238577661459097224125038470886819724945591326687673949802240298700711182719258657178621720847974320944729949721124241532615198315275129386540640876847837178844455670762330482324525264674321533147320317699581033122400034769634535953427170882838422238519819653266533117093565389137319586818210418468517409486940677644993780813551114639221795438066979214115847321810780214901177053460527787749298445643911323559879307711471239928023468212420967831442762611873261902972106429964602897445084362005215120678080769071742197427138142994234858129803658285249934556062611683832008315998056202892475248203291116634866423710537331678878619357537837349236535113927058713425980105155232386341505994194581430855645624431741587701271332220580939996104286304356019426533026713920046835568348621473651582957819727169678219505513496774898994473796927355728035078145146261276900205513283781675873670161276389898336967569652599091964461502181192071316036221635798781095559548602846985376557880084414802988052708751848332757701859968163939115726839562947894314794804562575889471092326419081620739183364774598141722782044601149823206925114955332155288785496254668803103620658998609371022885996597929928031940402412781251676678616569287912231330672146393768512350826515080276405186547260174696104423483494937818586553867336650012434811426218082879158314015316701408058173855664340465804990987018420200846939661475622435590087376941188177319990585870818210351570801353414414770300686027816508269224173621419888535787956732261670106686528025221575260058608004538985848757797939752296566455664024215410066543289503126210173846972866432897429606406263166680319878010486699779672261483553829310878058052431432909588960049521278798464724304551017265109541265060471586081143767440536167267421185952114228630102202572770831249641471973539109437220221507002532286859530710318392397998789798179901730022275483704609516047287183851728348900800748612351599032564431226862001384594273142465188694460275155418942740329398714807124753170810323268995930884966281846431464286407196824667946753593646639672874721842970312399641305667680380003475064266359129057368017688926802545322857488202496339666446739530221406695242800896627062361791355807409821715305217046996626052832737509478990222955074809337941185065035301458934050640021533697514960221688744563013735469352272634369363164957438784871900185684072523288950362662043221938194988381908332169136720745694563949893555658805353777605319845233780164989190740752640132776222142349968272999201058009549270529731110863405897847183488479386993447717405896417737837514876528909102095441316907114754944123272844022674499934447593284611685535728425749516278835354349654211730663418295033526962646789453876433579101010254710247090893219824415908306597419824616342798459941966056185420418546084885579437499156647087307981594655419723509445359815321954384056457410231924481922859173156881147089762020337921749785343293435885948016302764065855732742016013414870569078915577799899469335242115870805396383676183773567786689397920237209789079909210621912810689454728311417139844192097127109460089097296720834588236142649666978093670716777756403327405602587110276338599147637930613890318459144743198397344269444463139915143276961726309140516451869639863126056043435231254618382825818105742326792469129218954096851212497200632044039643567320796418514589041161315278813544959167621737209723733126244079829465496177236051604241958619877045816273449974929298722208036926191348446427301406278139377306527960586645384529664431523303718014267652678778032110235343411042581562259940623124463314035248752679193941913818862856099706713729540552865316475273349332445861783224499120232715632011144912555540749391964208481235178979238269459797831471270226807706590791755817058324220181964615186171868946448301257786739548522272066881881823308421081212752596442731801972611457904235469933822003103288073660526343996028649937893711217158119589231568274456812312756612693483144864370330679632208817634427883040708998482437330022268426628027168833106274427347233604025285237274454290610403572705829820108153493281925016844437993947208985702726713572405384917985447126296600081784196275372694769319127833125472330880184329184102106074730943831884825129298740051456696144844869517640522825750585784119649031264531463475925353636223108594086371656293237922647682389393546480050346669840427471246191147807250179477081833652458282988528781883001509903526406518257413035499269187695764155316053945314504455777871140267854367161290596586389597731319404154333218858843800201447637260337563292868029264464646163616378836951779387985317815506422354597127610070511048680891428323768745225561344880737541132521953981235542663321195105453690836441646917404239696242938736376086843847232351503447960694800386350641476875752862656771560332706039574978283901192480852625736988544103996576628741333820335172722835421930915392026870972525297810580716097251142377220484722100721818937685723427248311353279575832960777487588176426419246041001191981418699684060836620640121465865731009395967119476492809219397927250852835601142890702638374748374888600187691819649242808865618625998046267892184337711659257265714315934141266614841494525286230046260038353215648801302309448340553230244575810109728403128928360410846949753505753784456007022162862021087051577182188360793620252033487438801452929014818674496936897938838679748792880685371978119127793623839440028694263870713760374960903833998978398563313569668323831440489287544729163898128402193844607881360511936852609046239103608459126293543336057478506146596864061062141683795949242772338418761191311784461080895365299105513234870628337627172114964475248745192647261742294788924337106010350046737771751967218412634320262475027838266075260054571625654257795852858483191024496746698931471251295192339197374464055872505559043888337419522035077657765459666866514845364802930246055203258096544157064057765250750397151479282421200374200082165148890949405277441706707430556394635500931339129580203556833965170938984641600731158756816385496948977833831015599448299846083956632843248994234154216835622073930688755290884908074676246445274714726914059162229970132244623628987155076184929014850815178490513856272270086808818738020858896236295537719594196994174665290761822074073278904286788837144332020442802487622025151488750358796155091406919390626431299677719181301699258996995599901209996301104615613195908362398788146627790947529872497173668754941340429434036165701829034274291656486222735277240717793197820640345319934149897289320431352590844000512824348156281453265164931122375323001622085182648318117909671329013484788863215150489538921299935982325893130248733194264802094294801043203723797673873877779401455419288883238985157017235393415760630526217139055808696807679939065505560769373490795280348512611693935480687485540236848093452348010299485827323492073037719900058978530928696604187349929172649291207577339205778383407257129121607927297428643609000002152168765291707793661715887403192643888637231753214453464136281071924367425786980114491337407465059875575049677244700113733625416764056853361661356107519255527468482348653169582309056924005012608746060310921276310252820867075733994085312917078882853100506882273764495559931782736442405791171593366572870667592764615446408262754540309375143432960033454069640557537218867370384627475006966033551505315099546411164214403577494060755242380945059913473546927376166221107126716345756527926146274339938064882800261382888678032893773412150203958180111048207233140264443289666889682235501739262594830136696365050550537979433463368161099313174691587192420876318876079283140007793369571625179792280915149733984273269317607946246897237437389156391989306212542713044018846199049622171182033372042802239553552921957975419929361587022534719109281645473235051001439115630598732794011572626625265019618111092090531925191077884857517868915213381116878621624260507650907195749586738959105203791614336864986143379684969595449775096161198915786350133984001300764236623286315081564237236002418548477007043951834834523573885457805794021827830786728631843303193358321296474437717501936977863973572339699042560049908309263886651422855418877395727166563587665923536436397493938000879268275404212027079022187979525380398526805028216941462045248687170159099358899051270979098817134856974319060071399824743065541673575693200201274996374737712643183670653079950800655581851376329147114617917739105387026343207230697289468320632981994224881094722654181787103954129596227273288423689945407379206016456153148188496143224334340094850631507129333471546919530336063857538679674373411982177115089320853081687147003439508436055076927574778590929282855629331492181830603835510296412970144871097860215868217933587014997718489106124517315147968306852458007716832100297301565504332747895964956508019651251164468606079660330108154399155282740660608847443614972311360279343621355665352818390293118282443905533809710385134225939568988178463018932253021382949534148011236324493194430607356379574607721374529801119683255738796548680986645513262231633512538110576618484040218793367288873831951043464010327351407624071924311276598052977814262718977704673082640523559161543616318839939413673963893086150036600311890999855296768130223792612995531584187158288580351435177662684479856767622122873198864581800605105325397159681762361033962790591338573989400154335368780384165195458267327443371818339545369484394522780047623461401863565822869951069715889841452944082613142295651021798791109596953289986603103873246477129556432199137888596370304466661169390175447328071945336199497024363540782275773922528101957300204503268696215777522103233881240286788559304218788425865340426717316172006172657596454156145881256241637146392037690892683636830565280245764888612050310073438697628974993157953938127569284535449608011474749429505703249515267110741976832411049563820949135256137799998211666159951927000290210311751269297997474639977401000205633149650693953607299440477482259110047937409718680182546174015850134452301521792400607770120624222646447463882821504192293296984556743792188015452202877893815726703768681348500212373459668550378205123397877091216739081191543394986964568277919652452402382374743941369104853034005486369917404695650433220700102747847892709268398976516171283398916704703890792683543215734295022681022550751044494126377096169822464841314960980717362781645236198987932405381727658665228724803174578907141733402351701485961598931542087492779729052335559033615961531786434397901819934261509414244684893132863042181027539474788216710675208385534846326750058101695953642827190157244438275166017799483711279716944859577482669622041884173304590087676246776010590393555392754034268301321686013683598993394536087829741187412078560715324143633465780178205095761183564501674489956141237981206026533950903090207733275418652200894053849557099069358768522622692867594633407608617304519337366378524384757121281136841122011907618208457908931917624508044381698503074409035379706782756415906628454470140350972162266613087164791822406731677162865534443794386193128574326389775598777848065100682180298318768791552827642224590588937331733312609210321247066367245664853996716025920286611793305402086620601346956577320363346421976670975114769382432944877749025547379818787711875239246250527854987581311230114768702103778371137713751882487418226587614692683279475317097243082048468729769191745076302485060578973243008110352961291759747501451080594173752862214665382915420192031302940871327796574469214132046998267351826982468590063526879890618140825539018874617975790353717684293471903958064149631164158296418351998346426954408079341682983883074107397827272255741661567809342307985979655385499669630519470000276884804722203470243072779489766630868440373466066915031489074882193905514022310176728534119209466616022987988910953405997978509222529977937723869961784906982442110031690983895263121212687801450842515807487306756633555173693461271832667592565648748296987228044802082871844019636146716368229316857907050620530046579908427463687006798826905080489137239755868786826855772971010401366948619518872924795647412050965439213003259257952946157765378307247172032358253233748328261175349391110707764507352572966442866880225344981861605497783854424646133264153587812071296587679357267839118648489536452010635040760736424954967099091755429786037430649333886280719754007507233127301935687270701694123635249861182988853625310622230497300272972605388409576997901242883690126956096993481598985606476717404231644734891652486671873330708170895789741390976993167417940799395622851819297660540318668493179964667731119430495503431046602585297456642306072090163852774475581251211932651205528475007015241177433984002256066125655550981919270125144783723325963516999704652184301224252678637306738168914391270209275058749473803704866867263578875107448854258524087288109542891305627549581270629530714565444251726028746872679438430230055025450577548182116868238330794801621392520197658017261438090201591988953883062628451709867997284417044932438156412957014934294568190961158510847934548707288189006649463512230547924939667082413721154111115981230829315947996522056092549766234392066492165707917824561258214353809994105706382801597674799693003138379460443150602067189111692889254144900279152482992023569743263426055402979233321953910177955006346097807928505839401413885728453763861969983223881328942472181824590482059304090784934179078422213299858236876612165666071191208495106966801122352085873027875960711849707747652190804313451477125454761480153927852916608133056860297908327122848746454071301137031192397854390506104702532712248323647044724723636304073939250261177730936683531888067803726695837079846658309496611495019679805169306891420122323973034062040628848531532357607541776162489104487493823880741269224197290840736478049745656397961463888511981497986475700435360006774727548662138951297766886349638726373701218052005313755156518066151242516991706370710934726929139200280825442222523895648710363692435129684677533262029557716055245513124833347423530090052804784276631522656058850341239127660309803806889741634001389898619929728225498678814718449085316292645155033324552977295693268398976303544068458300485221108783811435077463782535633222514424357450782136066122991739171827145911296951367999835544473531124728979013430247983158938025997448125704427018255931816653134774185619969390237866148078390413127706419921293056539061324913123633508584776228158403760274467972983286944231934181406568401624587756063324284616085717706242935337641211020067307149780254497425905342162795587221150704589910066134806581815097043541882926150764535923897854099432897744102023149837643323574525947618831672798123976247045146177484855790992759969628395645098183550360481295192377568051841397325054717850507106837735373250063603146672714608411829142112303445427666189769848552770246212897646235010051081242067841441801148200744070137625886489181572195752673203048136513750250996556227159568755860216962744351130150699925075179949947410517778609255480512886248783061372228357004694953644614602368107513074254116612032622174276741794489133231072167068786338549347761670201904259370596380248253218933746087646624318574230149336357889314596810961840948879686410884942722971073031088457976890338453411827006053262057372982819852593174799781638043068016429612304137418096220225099691682027598642068735141893696282451018449543244666899561041011146914954742030607045610203009185967427572196011460648951917415928784332795454642778115857669664065798399985045017143195370730273503756887779050104060054677860840223204781454650316631159040854932034885138136136118774746042976802523438297874042553715018746857433355097744925660233431626925969315188736251192477882265184203404926049090486512012405787149697809046789814435024020832695174399931103284067550632993985330237066179785645048025973819722964546965449370535462333801846195002371671596179766811204266046121910521538805084439900854288062951817876524967074646391786412894437297966398682944386576750083449828987059891858272752419257065552758483617699079602133659313214938699904977613620089136578506327293824320680862487789570181644899837764426863791614319131985168408017038296065619932842335182890514244277262260199392111288748384598535151325577915181588225112324297995123746872141084159439982714297481744209170135367355977959447807629615831285609399846387387186368128356036402618923226608245424882274968312775408112188095095989443615710650180690171656899917088847013672212496855709456614920396126787251011497345471654883829562313914345633907074050191716958301952461889918972672967785496326986930030303976047026141855630743879585993299009377453704725455466339191301952338934021767506004028468335551365840748910934215683748179532245209287480756034322433796024381113830785635156419444512502104370696824944677955908868643097969442401715492633510636642114043181916531750679359011149101660929991878913434271937994953024854691452843261315284381199901660414518282304515328898283773385507579955465578122283274952053405288413137791395666756551847108965930587619951208038516529459570306415029164682272983105385799104739150757808090065844632890665648897180794783693257569796644097139352236559373157084450789394143264372913847642587743581888850080443644967556372697628701094068853193842760742631178891095587488329720262901697840743993028689647361117733595354229312588375199334281891830623546561104448293893843102118055528376825989579113273118347346968577180111988163997947375405294126450775703717586659742136440374419131502685366051832416141919435652766594139146445189947496285653638863511112418885992552831651554385691153620005887043433088386040935770748243144096107088248580978250742482855744030001941057526465027556539921580288798860870057429292194019395846870033489455006253134577259522761782161808674058926108278702960900402525493288082867691304960728032702067737443982383945310244752391280370566860276846415500569036530669229296329563872266802599018248191500424664424244658875311713579762091566514661633684502965130764628312354395201571063487703475575372644970703852612808652888167008621218025964269899215965883072352851158854999567647123567488202200558453298647748164456119275467723082969458326180891723622560830046366063064647350443853468691441584652830489415754310105939936658190632430849564656977765499115556229362152110630713952368372627577195109619158739972383225558069152728166116392347292294582831220943290653452697711391527989325368172193744599964102358159581604626618320049921407468136008779715187277833242435898708617524990500308641112001667051975660242574509163398473829568542673616874004505781349530323323122906997556222827822760887117938660641831318539701016811658983317857252317061821336151487114050617207134083176531221319332892817113934019656808552888172118624538033792980739587109885037390949047208143984735509320826837104175570854994159057963281320737784185812107616406761191377781764313378933189788594677942500180168928118241870638101746324594281980426617329407115168779425062422782421355008409630749300827795921024736752486521251189739841697171743454913822997539225554428903324372771051550906998967275027958743716419307327751169917026049863479844950288982342696922123837693777836247805244320872240031805034269493076203997753056921644287174826495800303275335924902462800532639975827531015187638563916814192871101430928147379877467525492675590607150787381864321224501463736623454793009221663263536448540896732791207790366402919254593490891696943705896939159614712514266377345770357815718826298689290756708517689213408388935198556383790449645912051269978242734099628778772022443021299844412500649139704667580868860329835299271390572629901498231220034868684170724374764014419241969472378372804909518822390971179860428052653353451692462449125380662342688171660577668889191093477651371348179673203377283301437593469335307339992971989337805458924868743094509988213169840458532946856382369909453081850752212702862095740314762716162976719736027747759776493671823003454738470235896292831151198594559536827884492640918248154925193043004436190496188981581020664068390279640080696235239680299277352514167944317903249464511315547739918643995542626267481515860915289135952314334692926621704675741788692591677921316105153243144443794195428957231918250889540694926072044959820368035941807089532221295581324214765941989155219255310249491890875090865937814722444159004440815153215663977392230875217417252577672874778685257293858467447630241526802188927418537827512117808748719683192247628708836690245163130603074691349876892642384868130072548013990585005414671803459412062345562576264327841283409188492580090128548271151103696859738836592950012971063504448607469354885742214027786700902255001837757728134725942677048960505800238839507387281780207971679412842291812972486099795636332564474128703396756657490912653607217899895602607690323332542972650366773660514851067659736861919217944484924424653015127508458230300491898028855065225960029674647286344477114181545496671928849612819796034976255963296011781004757233105657788743182147811743333858884028080822745808480249700675690147862704201404313812318964397669244368229715991887922272256135260050295613874900158212266237792707842191070409319128788936933933807241348889013744414032101793229537450446445612048009084149367587886182000502668432224356093900524846037903490204582615394000950360667485761056378451789069452237419576369882340489505423324660005898103979289014454507821682649905542261812002478305152614972197217886296892877243442388924753112109775652898734473181482378589993209381515634788357703562907206082398881985674040541231146915045053554354343041118425170113903318759072281527594547080464723328090420680308523600619651926508939124744843197487311952449631419235167262551576215236796896576967264064440160432814887799646364841638054505586703855028282951554863027526486679157372958072807815362112877804606467101456177950063647917308407409836940443609178681668093635865281926811928392054202844819136815697562033066552524681761974552615000431082371111496998853820465594488944823231527295744578707531253505174656520243512348442039360490657788408317910990564034671966013828846364642048246836574667789799178562730122104021654521362243960273004009298230389639691589261906950146105609820864625652443244053765159733763832618517368370856253534472803523536093650000532612310105585404615806081057709638554624857977422902635398479817034354389952893206900407790203941190370930303704227429864010117471140641591513963777970018269013825526453158601514567792690167203720132697142267169722887349889224327233335773548940318369952169826126231399754230127717714741044992490283634945934501692235060961672049517951393695356761600605520999594642866822378866442148221431771358643829114503181589552416516222113205181476595268222882504140843219318844068764751230592594262357271359365876404415816168247718941809183345080603954129285173040699619555382638892123524526820804423837798828192149595156236762817586119901337809283311219310559323561701125935636948592502072761116591792991222832737018309438818067079815771021824353186107449262377131553171179071174229974967086778662445067775136626278165395662328909985340896595247362759663081431170560672844459140251045306672985455409709387902625225990532313167631283930798129658915740814457530469947689292614408575576604227282373115769466316224944421731593838091350214303184154151003525914636962045823867862175271192536559701909360415870682828486272929242055335695581758911449595433219645987690992640453746479643253510852130376183108612987986054702044320171665131731195922065014355531012927451274173947698733778127469055813581648221287899912065499494304870158334230245021371744150105135278283123069760614455048141910122372019831812417600522690612483046860655010285029531421618959555094281118410098276180756767985126897594683342447156173949626806087785371122061915741983077401708042956124424762954582057817615037742819207113611456962145224354483919891683620341481310704024918375592666160471422960433697446772761448719564204429551747618305000270261584471944441699511225760226489307329277984436993772579300791828444093995528427699520314040951734405821752993791467117055403165419962049237993227473017117913394008138628181176239414643933235453160858648719013229007146802874766713589934077246248648030075427908569811207861798082084426583839957212400579437817830700435756873931977427659691036010811698106600779030558008517809926197234755972043431222665772442941307117614241637482087884771476279771199926584779343109770108496578270496418212283898378812726725351601184437424432038645768897696356227137825000073266032391540040197297785243176614475167688792121695943864764686706843033696681088540797481598491500854534257126242929811877019523640907529729610772589303797480231198123738774939100708301759509686761372496842336725353439320991502209830242680881776519819773333358319544435022199856546888775805728600468262227381355283494627659473617738119258458361466250532052859242587940754645947082827679268549501179671401250322610747677568183097454517435490813928706651065436886317332911960548927029848106955604845141599953839651081640580987588521641017134369072924651525611256500570311485162701980028732622672369638295316868965696942104359119780241698815486842100070113916079543758552717471802969190717204371703186193081570984421433029213276703341473408011565255447517404875317146511800913168758406978842683606393044795878566475789890775594779740679261218905194774434999782198225663868174975701635065101556089117175901667209081226362334283897075187275296683850304281575484371735908455516988237815998449584128992485366709904891040969264795593630590910811397558103546615258205787111596469700546741939671002377627468452204606126619322653892533639325725184443051894325710788080941658609608596278543975641122023223324456507478490545254365282836263201556953439435040476846739362213364422512107054427457663876663837921791176325008736703424932942422699791234647440045663010418580524379843805844358474988186895453751026293602149576099342836374339817714603520518290854976172633006824497096635650762491006780190741751016982489126733530729534380942889572115842618098097729001188027383528100251727664630493490644002312009413462238179286316729788446446916198152136658152237455755173643920189307298407277767648558643994693761981223528862864051438097712220300306090503330661663317962616512020192470131842962643336480867283245756522386772436624183564251710915800127598011123153953456592255871887933409375593864970109664701512589843750490358353492542158133227226889757605530169127195321850933824990227778913335224812483455252021964160681952342087032488093523265548127833606003459936288946151750059973184538122884370652090769484729032490383111439883552359288480586314646789175101533273953183739187591682288805604263623406097036565518974495286362586048417800746892408002150716128739546051248363345747200712104185925609362633908781322378599578187251173482378652680180139383488439818266533999678481219156440444869792601826536974383049705581317004057593923404172000163647972524847508817103085280113396531360863000395105584253104059362062986766404913658382032525211771944947331708724833339789182399503867853932116007122428304330354955950922614298332374121344687554199714810396651984348979350878323793666788295416864724196203079236188821286450915600736082467645427928142918854992218000582319271211593591351968245176523135248990139973665275473147454191751877498941099569260112554656310766435006282782955181647812833499878046631090061562322215265270023531149944673871083887245841538680845911036679632547263565952549265185793002010666083626871388114880023575082997527897528939806185007635279778278734092033599755676070351908154621628974480884391861753766001638886896561733346289992220428290688300543589086090521650877035494826821176721876564459564833557536021227106649106158530912220062078615211983018612571154181272741066972966862310685183873425567064768879557121897732574236194274011699343187324630759717724162263761863623536030225641499817694309416834956499271013182617012684666048647617001251521905921495519423227669007617483320911361520054904105587568039793991390643672695671657824798797386340150850847053259396391381807021318185537340160158119880312265771260304196507796415501278005786815415884494910829893440418241180779820670895297525995783453138816476311973309451255246044354670523206698908793713675935676473308202909406922531395556896231694670219983342036036700804599084667318191251502381674824949781716616294996989582886712536551723129745081415172769145010803666831743360968498520831125411756301936762850095656645977323695373374031718250670536700286430411356247549757455716774362135379763978023802866968297791779093450970605142249582789523731227903786553366431751813946193451753450487263879475839940382208252395797482327226430001573255411704764788432248153775692864626788882151694302132574703116066288777957542973917854257875547633233855949542433483329702189125137944006323101010122953175288524112661835692669122954312225675256776200927861612163259919439872790147398226836493674514723349578880758527678346695569052700724651653029458448427378505878119098535321840675582534977603996353523977274964511518223500202393030820334339878284354527128196686979971695533052569459541854236573257084122579172302678658869941066675508902776212593969804052789797179069267643396801140646217939279583745021799779153875699120633264774122791995665438156521508622613819894104898380151848512412445900185933797830099261887887911289232609781031456938933149396104900601713239227659595329551661665918065445791151870480984275515972285137531768298903305487772526459392982817462347785803999744975165594041632317618201943838056048150395721283638154772895429004464918156816862734263838195453685275766563851637999795711736216113806585563273490533087442782691212503496340748850384314131196646416096731067363658142204464576917848744593646685100119627845973701198154899029707458590181875410362496020446659910612541972176171806725356776704501194491391117899702532867596714443469568907239816714532109940565720945166172413484060946754391514336284630210490664006760358251554839175762119858679076804422902472337594242804397089377387107415248719906074266143232787999861282324481077470297778350209232659892183601294001321615424901549740880732548801293727809141840937130152729474021800581177001723725666866131848430208032577443412590437020782639733873829477527947538618318624902206753807822123787833755988946996341866513971618699882442658553690921171164049606651639517113695457796494423072582295310643775889415458292035714785829267461158325848178229237227056270802416690610690992728029360763212499106519464527766318804061331584332998879095358165429585310235430876143615926432750016127358256826125853765215622635333551946307478547132950918828887380291517244952110144387549914020417334996228260779907898550888195866909927917176099860336027172871425951953139547682568936232375531798955544153055372915862964040884881296257200981646205880144884685933989097338263110308883361550996328977344263571149512465854664657871833070378729727361018495378941519768829403886372562227193610886608124624249298169467114516889350823005648959049070187344289153810057494080875546956528268674393764640249838798261976530719164232493214807921678196633960989008005545904485743471101604576379002075983603332294907791761498090765141342414571280083054792726961794762819432704261978973119676205565202610491303202469457865741264151619823005176585941576111060463754050511849878886624922501567003114885769282042188747941335142465539835656308826461460376794520865335233363624849293562492152811492262831945622360161608746527167959560034641341503706031222951783466459469980128798914943821287769204841512065237889248637436955013558606302277749633536791957428439836260245224649080167990883068964350862238701948643047744054993976724457762280507594267659194918831816303179586546163323450198588301428387303304392134258813921163579026099011741179126264770489103733438896949675631375767776005607245370149629126264293438981532009760833673014351426213631732067862775510257041328711557527266389707747732381602439610013813597479971994074466169234245894030059901187860166961361027582686384352780977894257393358085640506860939389839227369621316496006339211231711602131180745476722347409743417325582406317830191100258194808214162177362635333542292051912367785257955857991680770046827714505864269980232679560826066141634908542156511214130987695991538571594541734241306578097732948606742964091645000712433641005395947838783978335805860125181186165717793454578833104951934534091859508697322479546438362926205192457702354351709114823605028848801913958024632936601451228223328641820452549510507077489013375220677320181927014689423215416505432542121988934303398392382809484016058979873449797285117665295003775860423168378674789711270359677351595959438860403166198324295650641332479729296940523657101165608244372690201708104890756229400050340152437202556192289789397503898749334309860756719885958236828103575388743093605189071655464449465373824916948849751144153884094356359876275568242262275356782374356968367223139387224226047653590265462301309400672912938037754245904819986456140110798934246853466436371266556677575352612226147792011827203025961109828239001800012442068888923738976423536909884419867804801965610479241551393631830953733526095347514578763413725277120076915105151072762603450686850120596487470742911020964459011291609294831228525511881269173432447172365569915064653162313489817511313505955887106788386581078517526683208208712044263527505443101491424494197498517117950804787768972829067110894888890880224521353090767600540941770186899142022975772834566785822765301975019395564308230297452806169803377905384350807717883277530261952566721849638231596819167462888875510165162178206531341487283773373368066480580333483090973433989432954787109786970734319869918022764759716283217494030866461899034979407600686405129393161580056148847713319454593779625584020681088181721000643173103958060923415516230500270388696650163885933915171637943719641488771256059775470279751169234596100489532842934275516617145980878302477935428878459126747498514581447169369794371174676606775664995535601674543838483286669896993731193194895277515664077226568183171622321079082527139596709569712225574935482633515733902109865152781941289305896598741659303108480325907123076758112683594649486899350648739915824791741419811194435328922742063473863733516729004042010385750243551971094606451146429005259541951876995721308627507427707986190778549975780729171433926687047265784168041902189923704522699298676793226169668936605265553216468507556314421555550333773759703072497073826224435787347004700283654140531736159777729392863201596452157243046727889758801670688822704120296671265372484170297130582463187470525817624280235450117240999086018074823536287539665951727117429872638262249955515856554924991091747820861195127357976322231287169030494857039154069177519815080588772727206909998794503494884364468523696619906816003955265292781061528121551950502591369613958576712933690660407789965753027685017986744609314862805135031786955685043203609970294855612603217840948236835057594346770698149708892836670589072329384081848280238920915947620683883618620971036577692840185054785949220959555121564392072082758222063319225976540819136811121531733874472632325968989792480971423280750935797415935350865700314799909117002049402278367080198947411023821096494798878082582117002350137883137494650140036415691342201321309921562048147235201480160835837226105488815347413056224561075811186767086921258932766357074057271975141666535798050061661847039343922558039788086460190251694964742350809933209699359645365097223983395835178614112750474399970071096752607290190742719355116393855152737608933901341015465976586651525296709460184833908662886268925039668630018999886545293717119995932381156531333102525157230760556569494815700621625295213835808822693783991263049435524371765501432535964139343080309928997734151168569311130370204009085826421768767184585666455549304292040464273779502241894241039765627672647626578561375165361021563832142387720797059641501271110274516987611988502214134503738941366245390804619895905578157908875606155286121363550276744727609639346454437407335284730634209105447820859057560809031228268204091443057318948065978489783200968854154392819386337876660119216179935961818468266223385555770811453143486212930761264994055476347869797457524184741688154460491488756877669612778967079191935950858619535361594978771201967147451924687184229603913830151298717464174023336943012772187441388974995871220267682913498376580535616700756447231361889324855964640771807344973500712958771841597994946893127862724822595465244744400858387205140976283061530923609620145180938250066514901984538647771924502768566577260649248682982461084428500048353087778203927899714771531185811606468714860320369152009298907651356690788012602988444302329329953584436382544212233634342811993649893271247877581712331559523759611490276543894064779084108337419506214552544445323739674641307305491863020787421833818519056832334307411017674351528626213282359748498357113083823052870887744994459500480681488771469855897977390579477266779664212677374598274093614415287564469828116442835655499724334583685158393670795428655655024830609602906629260675555553439958921472972630014421099170977002298067835667092474356741291174564140466839529418072914997061871444045193554702473274767250988853899438912147471629682754230501232330182782376472361695240254739759220288265372672312949347045493424727335130871041537870847324536212117016829975549359152022009321067283053295788547394857655485344852887056024472041786851851559838502162167709539766300649877692708647169401200642830498972696377471550249398400933962856699843638758883913162122365688520739051850599759487301530171189729628246278631944098389297926889781887674811741734533885307984579388684512761623869873422622936696701204389522812000023298636760897875072674910374296287706206579454799600847843966568866166665568625961778257350650590333218769623314219130438439448242050805044003229328372040551356082419273262842437625282690994761720359689862395873456885241908895645980935616563472898240940853487347777229500811561591356325580564286553250190235993741435052242188792238823918525935198231507468075298643153074161881913960112414850549288178640400348507168788927129887916954240621369554013912461457360982791829498323159056572484790058177983233329033473594416591670025158303145832764996271468582002110628175272712858375477690484703267294755798722680016481829472604711806544633515971254242203551555513975913609517897885541028589134365995516603465855349662800625113719334067606476375495846965061001080203022254604199308613148064114293150786435967360589690774053932343028923540077957485548804090701110063205827143995626453392812533433655023920591650320719464088574483386403508553900230077874933481465913729420530865553985500549474450210911924070551621387861929067516643079543922187847886340556237682812594174519347861288801366422322470756393327196414272199021425293964136714778330870507642864429520711084123704380856973624879945457883325266086258613960977088050751362900600790375979038153888805936384659543899256824074977687973992995830553888464101129426369108656067987030117190787115545874949916675945968980520992668063444322938054957677603340972254550465494812189103946621641529148756258878618336040789409719686761304396153886101215996461015465129060318806288852106222325402900580340319566398974737670246637534580621467708722868065339720511119628929658564929486866341543898539595521739409346216806429929475438184961854026697937923842364310607041921466144491019943668308668000855835635064937285732644243785854468182909795445442759273841953630226652263683935045550500285756096437529124288027810379940586106413662955499306738558742196877339621494784617491341549288942583298349994830243190165477335453900909199459507358802747114821517204135634784566337891896257913798343335088551149393286465183887373748227467158572684030073249835952517124214329609914224522795226473387950267351964358960104763975273162092724601430820711474533381516573595220507357279588502661554438920806750467796945902099553148684995484335267833157426549256907726127636129373198500934987054425239945233920760097516730862050392387595677178523658991006566337867798353082229158089129892221948265836849753198968949223518712815833176117575013518564473527054401528847297491518110878857782348004231664156376143968658900929279466013015341671763727865297523889266887633459861859786516366242607458279315239042009585116748098583014472949835834854230262032743346054713960137421350647705665593597949990355043091638742443086259166073626510720550908492239687890055005776634019990407351761708004496641073178343074595600216015708494639063600061527756639045261367062651967090537400855994665063857956742896512293616585010690491394873300937202870634828588214040640375082470058273021198437779491750636929075289953136561649747346389752344186903317854283652262551884054027099352710451863693261655160889959845458579514136093061789439947285093448875067869927277721444159241484590366885970112645125126770335009040816288885337505642577250585855854809019952079027260354257042701950506517801782768766856917663447792995844391296108960598280262604940551861841146200376955538092834754610951388319602358837821506134511818420421705365877745162481356042988074157689802478517683093848551725899300063800261293009333904513941922437086188586973983286476608701418631613856810984218474613051743581027552389161134692912454475442409822479904508600796745079169891060123004094736340744243575988262182746010929220766679288887711646806352835788058063172108995214747827465545505694404766772069122127827718696789394805892375563389408164458763488592670566067064329274608573635698691598070471264910440177527281497012919222915135063829352679515589027091826089040691655511605596415029765610679415521056405070249497910569491714164983039986341668097374496560051676738610336370911183452259702278787896251387893587534570085421426112542952528520830087120043270725518506346707835119756297689254222653048623287880266472715271962152964171079591613864885312536735618146624419202491935062505688316951778670624433801511923487284837908395053162872591747524729662404765512072522421712068166693388587059135672542817032223572895435884107444927627527748129902408805479683762509632844399779877545187338972081490622449188835263169275294166281486343202007813276293183415624509719010713504990526428076303821655917829732434402133999374808692288300883955472664964402118722547074742133032668735567257615614825905072659714780539737837884887921136404312077322347050605682790406344189961493773069734744476123694244908051567954836230398730297193596079570135232268548645337200720141177224320351473722978944750811005357037897423294092680152597757667964211703888094609866195361496006752520697678903431402741597899075169216641677742162111267790960065334598930542184712842301745662145026236409590863785322616138207782767410800130722840052234787872654657394294964423013444153984828253019011511393413619998550206334939034353293477329769167501873279658519941944414232283776300099772333204120916791098370154577609883048366918975876010606311696312072930035046707107212277880060471811763126204167105090665163631151559043117602081262209957613707043531891358888357631337899713209368372870106042197247818465840141934947801536536740666977409358145786891576722521266157436056168354813301548589689800238992016667521608908112451229353628636059248379941674978075847638813063874462518762361018089388278528228701602611501840754096310500481993763600310957293446775121270510999101724009119022856761390005732061617570170018897336753553440205868947505881525236141186574967911629330568855796349188464898077350494429195317470020212738795071012029201252830587553868550435404564175642001103537153635500720246972975418339515509990249471632795975542109378747953323010135342723616897245919276100020463493838559251337937254353684487171987590918894805427774731386321218167981864627040915267498552461059155589939482016196580974129870097631419163338940015193780827352704180019674055665758001710374979564942441034451665369531105838035494515375068076573930189103655494492954675594637643170251076031423283540915851239444664295391935378478340078637834646679077490066785944564250853294649545020257392504652728343299495035549018522166734478949568146429587841786210852648670744262013875664708371575737981149734428210401498545072421134696484238026820932436482167289019459683210374188581088237114055026533969100817658817273579416777502590758763964623791256263816350968291605303240732489841951454294016485179429461033665550416130554219724377550564133823739207956586161274493717263154577075037878220426797470810156258528240726291713680293318840942866134391562655188392277622202552998406841392252781288745610878744353394169017930645581793465358495066799642354821728614894582572226649182062234334756247102578444213359537566518272219920749527659320371631856424787358449839960479928851179993653942195455191840845678772154936919291484779074709243174957802327069239106297757652158028016036240798889242558415869457345705090323423717996349633123437376908129606488932679783976426529487579458710532784113268182105941042991981118701691135901299198194841388015856273601127116755779967496358176314468499282158541310307091152669099227590687995716415913870479442337899051884059440106287395273432229055076447736792193332968487128231372714671827029534279500673739672294157397569669883377334533548187537395339139001793523584285224426564689312459367913252508273667234689171664435623956490372555463202613797472121615028153576866665689491318263301791247050946311232073425997377446505860029019156746445442549142224951451430893928797353505604226921393020440226575234750303132756156717512964965476499236975655568417636121293352362785963553374708305364340351931638501610786263724645743329980810982724485158005692253443637320560045944281907543228386340096377083295746264651727828565067311295820530289819831943558143715644574588880941745459616159253989866463498916108551313610519503857606099949051677665914559045809542663036691463658725363329402191087782924401933777907831403844796384561115226503188454311376256172166203570112130974170626530621210495842524677462257945729582298624384937709304079084905872548147224515305722605765273238223560449737087601319151032745568967593346828477911030688831972153550557872169805959723122493559971257611517234291023111557883144317148215358548191620698890908804278503768244447718182871183000932167024293101024292643913607400817504404422391226172275215525171287356485487459165383447446724450465737968845941287571696484240988809756218188704357657332210111097206315580678131726787495931001126931075075177760370097065318049728137576720093707677485622074654655706245283915886139020486138601968983004395386017388728843747795385895782996603801168798284610328958140401420329558196267954148176001295854145389727240689589111398394712328935581646017064809923635975844467535424409573057258139853542167555871608415096546953451376840788559676779130178794736398626332963010611179977676615935170734309203368781392720407996264109118241070962127408773524509634015085658298756345627858958953958310101950987742194067800676346578407045191608741552938844214726274923213874202366479799925805800515513479708852649154826551427936090839943280934674042076653653140403212176493809002735517961575383632870422828254912577968109889032883513004041806023729645650746272854990135058661164159533135122361463621020585366350313318399253569781597938712258205158051770343516581967047185779637444864261941029806011632971926456230793141560476537963867375922466290488777826031442426898873596034491931471841878480708157089288362250881502958294111159636792017273813074270500378204374111930984351188857418304283513666406074944024378645231260468755581840972626544886834967014633514545001658505718355712505158412541607018478482737503017204277859092398056080239049555286271458513701039493698530754889507117803493558532383634395597709665326818704131291104851906624189440511035838391138890901558386518786216806386302167097892086139787979253290775647309147040985264428163397063171935273132933435637453808618248527103459341497558801818847281151119989479869578844296580390539423879809108396629313120929524632156577473912161997925078260963819840516532024964858916509354692619551817152935057739722851462831254778493442301945904984341946280632802524166628194976552760452751116439338593714074069573402944043942309842118634487736944749072482743767610406799309879475057758308071277802587757075249488747983068448172575148527821586840194568313993448236242593264717048690277872752280996783943807645337143082879065296256560260293113085595993213476305625575929487029211525701413855687791838109874787550602255323778228736497396122275729700739942845637187824267885095293609564061807041372896145388285945124691803246411810413366281156622847512537809781898488465712459884693596021977985412605552735698094652142737992186394762628236834790825881331313594443662775762942906076952458628753462357408018941899209196834483146510690160036041327026186132048548199703193113941491989458392924472839479065183697913253999889382989030989003739817080881012898377580878729606275031939146412329160238448487341929937569343031145081343167770577318620859034474581448833162058522075202443450616310395128350520604474192187167761735092060241995417493840542947563294800987973683732180801123022178443405423016641899757364350092257370379793475717840056230217862300521421092069900866420472243428387909624186841228458777183758848989855610603721635492490023105690906912841381132686486281994016679459533016356525101438693700116649297938529382361483526086739120855683856526367992836307978021345228079974277824015555849575393062445672708333899955589164678604176596640749246034867063226982412045790374556920222108330986192019625957832694915319049641716195966846932655383475652626334804095782201985973177987404050935828974235996755136524743031422806804442171733142004364840099907947742922657009313265718096391217744381394460189011497272553078371766655885100755975099938013458413385674506456827656923900579244106981730028638832826397974609917882412887833812583543987794771402900819165465255638539813690933812709966974992488939876625337540143665605346927870864196165239038673371389818630087085636368254122599336133580340758139763796910203126132773830555928739673539310356567595232008680581108522060128968474152546518107030254496401700474164981366263661515915215138182657383205133563033870620976252524867867339203964079895483989080146220129105964526056423451270220058746590075509558775669737021285631076831610130807150912361662196866801388274908122821269653717050777997453166429101252828760099411576225588378130006147495865098791883978265099848668012757516082447196872539796620083840616710475164632976758323488445054147566748559135545232064082577086307368608168823502940048848919718418660554116843513632704815632072015571058748057718592878957622638084403614479034750405322880373044596906744815162697435017687401369308322268658150248748165653813225558486344086181131657829259207680228060322752703780204806896782236970438338628139366458783906483010638306487084074354299261310184410335215078385698530266734370774472212852679040443168816565830310385774239265721644862434586902989083195379393359177214002418786610958043454173054111578369522985277358256048493882150584136244975177381174232179432071297492448801436061581327588763710857882450610717346010867823014334342140998174116788862373335314141802951984001576537292127049890780769820745405532087571341433444223400292899055315215295691726199822601923607236146370603068899104988037324058562757621422651772912637878387632637208063576711116476709291900585175709858757276055447752862081754607319436843009515974331734583614814233177252232723237870032622721481715051606019207868761175705236435539269242805798843556967172275109569019846580866679819332810410172943339000795531612379542662874632903073741190276041530796010347778268272391266624616440247376193833772267163500486900817771835340635379814403466719321441188692870977169539951645558932227241630316292157438260449624308719284108381896219952572412478053678225157838912416528994919161246772670797219731178814330566804119491755633653683572995963048060492686587117167129154512356020458461163805011297423027577364022067143123256075375809107183202672682335089854574792936413654626835714714334725958315066903456845170818346750979104426221354651473504400123748591754135192185113053433227881155490639154128759466996833519519013211593291448135373757308498249993742571230167107910242051946771865934974452132499886261361091662481002438846184533606631144833360295709781553204957386319347422880275150231477441056932610267493608124786606421365890061817078724144256377598359018888021228362016467771667635257699440236319963258312089820096052482483297398020927720092972976295299507803059728231405259692606136633223957925352571188968885063066180552621954285427219837299926736713045342948976822311009994440989887990188186985306782758548212206247937527108579076934447327730821811355806580300456117984695901493373164742481553506873689828622219753854072196378485046588740616748180542777488191279807347424143582030766667912790531805449394392927051580657949480000802713795915010691369636352892799312266322714361439731380206649773373859453295641610659935592284578754269261188532663753978147609555538256433230691302953485254120678010921149672864815695427880278484661306625059682738168372883374983544554575477335506529438196231747454754961746973291737735670026130993049132250311278891646477229676853315982689996482889236191101521140489967344480725499615480873149181648635994108512668492897467866390706504855396981449523175261736445468028797076925134611189230766866013821989758441551470637786516453324946946002643091474171775280270347625894717446256286155127853409788911616401013016743632087363670907329682538881652906700946175849945991190169238740831196194417715817745409420059195195718068741618051788140788879902219119252727840108438517770653336372702708926013165743341644276455983927430257468225302337843346747237738371669858952149794488894325115106423977006056283624703593863014908561668063200655023405742318931512158721052314707031854332795016893166079239506756294997919255312204472339171662759712492788095659088762213226657608095925178093686356471843502816874489977258295700879627550651816665008412029278388609809713592593623904040240306919237264518511426418816245066519969121716404223609931646971196489659892738026138926206854925801586468738248306507151686016199305416090247409583992894836239257064316650884546287989757982998681533477041742972387495943604670198569829152139325997026058508781435497157369738361449502860953719528171343953679718055440270304272859046979499038769273307037372865146523817357595446643947830451456672221041357064437609933428775399060079224153507818058714005139876327864888822615003732478487669250646872048356228239412353976347458120696944490010793234725951392055289850052465739227582723379334762535310513164427284406708981980333680865276614934177854841842041515908709601970401632567960396758267441872489659428749381266516724577830331969758323327580472098755975833552354169132296140047053481382012554474713382436815688277690176448592974169551986689015036291330522228580394881086298098185910012874967567975967120682089059109579223654816202743920486087516925021694078784052237505634884351095098219354632863215577990003700509041819190928028473702364659597990632863026093792792131126320447916740237922258310189504944081004561365400570361159820269206480544016583558110365648475632845767853633636685857575010477209149552432632017790862816885594748907997800351934008823288415525313309864693013594308314725896455369522916756870659434314905259139664109180613216405579139925906994844222717338564720399675693046614575664469368051076658910074375938251425621765670914450479799536706685724428598747798213200371858510357923476538719357682239429361266438274888114376793480105990109207666740832836565235207164390581294745018860432531007850811033218053045875599729099674692258767421670727141255948815384964257113474272101124117680324816892132524315359332284100160545759002109569104530544927291031429754691568685651937306388518541505714564352191948880712698223014939283271720636955192599389516017921325711986618629303163108998015174813656030954018755469233131791790523350324024046229743780114970277140312536461492934766214315655640135757361776385463079825250034527320543443564556753616277934334574529488028953886644544115685640474802084159201035390524357954378881299663444090711370409945439671507853830457538150167251811291446443043832093160422208061359576273618120021943680215442885440575239518394960235766908783691653050123779843510031240529755771645694599887412026495257810360915588358445743064621127760797376550018432756881032679240867845056872112402552885770503163165208026666348524245386953845134383415662710801152602967010206922606257029765352350550868513699683631278349105311190766429952552059286758210590096165810447980750144832095014896144122849101926620963778722994990333332902627209865361810563368361323190848432777672180815194159537266000774906544224369886594233914140447761541793896122840248053251420194693666907890170213708482570102172785332095717808663562748740449976297372946029831051934282707911742752874900205118077440643051361627706858820664683458710615519756197613818943480265757404158862983882045509887028227791025294100259126499333852183026778616301444079205534547424817660463302585033781518541072786657513883054634458183311382909747750854263166689065735170434167455930287675928609752758874705610031370521130447567087157389501228792348647376312041522070647086916613518361606978218759691109753247346858874734438713181589571563272729842088327089995209599940507813424950873472445199289269852249284893359362109147946308199509971461043271805866670054546783544666816156877176162293456371434842354662369359130730876746232205582705421190993176272731696367464944683213280336244359516927211943051599552059049292591472512887530217976166959695049682371194165520159431333967876586098481968784903006011306043763107111587722184981705633423681559704582416015669749611386046317550279613756096141145716620676138952088656237429135231259578642582175569254134845998536439647383809419858769789225420906668822067917473387667385424525619543399159944615526184718464344882380848369067411299871979340731466494398454790907140005586192189390909384476737154094467160700523776680629503016150689344103305238136245350137770346609306381279634958843645799471503421418507328065015670779593485236649360788875270547556361747064267997335635782124954629258771016528451194861234513899844597629362678172558019040157632879262928978507975303528375084035843308521711034600801236518675953816115259021662215913436012284286756374062069556237735375582837055943203907836192494264007787042679631502106165129782259698021942390471243347875342044889372483632975491971686317134044546392207336761174578634664002689475008184171153280358083709701900354234336634954361231451986662059457711331884947292948939516721394531312359469682931858359186512725930948761173994480491700460728476654574569920489452064788489159227444586790781511095075840837673905122874957301933372814219590620804661538994349108401570250407724065486327137446940788746436894811536186780932164937733039123507234334564825994156243816400847849648833652931911507120197379680191561717404337625622119495598233804349974859296196369621890522316544108053502567860105606899991539249127221682497403403532026973064385210864233975572801453623066077118028397114015533241762272913236512350801781999018009232824977365573686373672609466999306499224379443753998203322595778227005711398162270613048820978056936981757410195717534208900938669978018075662898629765795807825419940363304317495170448505159048209264207503651353027927078303081140237536574977065285915139738197431612521617583258680396374196145480999400408826274030254824754862860008563811984157231057088227452932840765709186006546494131565346919257356162888197137877179349032619061032386469217348838644294799642073025778725946294048575766882982399813188885023199412863734067763507718514701243131279165436757196558987109065034170766031051672807666378552601447168169231060708031970780772800436140400191752752252136457773876439422912399994918332412772298857787252063346920212215622203300684108206448547497801331374535328325466419452039565632862488999290993268185976670692556337921535996421800609104836177208606740384200937731732538985940363049324990027317391097386461236043799787246353046323293698477264562070536651870537852829775732759881815993918120448630875643855180849937282720545006863980313770759148603093627116534379134478804580173617710115281340517011487165665365622548710999178303611087934348274232819127745361175277942612659234362802858237836438597494413427175323971197419384432650661735860643565737176679864781164981156328274247575701624058638326463085766101356539894298215324338451731811728527684920622215351202142412427825102710593032213895510476040910579601043684380283669526497605992310330722085782612561530535192745264232005077395943351786428538734610788598323239718732665862210298128508454312853344822714488664699557713318290742949789113366836640181441160458095090492821601988812337958266279231119285146716766563248154610438419893095958840000538096035049716939633021541572255743740961152748092550600017565795602060894812439323460277919905232316392738307907721473805714416009997646766689911612840462394686697996290555655281255453366128047246029431528346292299903557659898251789124232685554857561671539941883106057021661078519938155017815902762951406604986694466748718852692194428518783183476818532222750130147099047056197717312785483000824121501330798416430375647547114610112132800032650639598785935790666645274641980609098888844638454209281197522201233349025440662000545103324091449280476357612077516646430921695414485680822897101993840507736025445379054661233849723052934068296513427541604406292927261798722972027281235895667899945976351440898091041731168219334365993032422534173120784103611433560375653673652232924031443898477540439710339985223823282898589190951164965241220578909249048547899959162806282328753389552120001147629221979882529255270403500317069420400475680575914112236330765915252792002507621681767893954027405390447016711293870248267649386974066649816395503748952154920759204335017547799288386226157091568412074326496473181494404761015120682171240328212100125871103245912370420653271143491302059929025413142931860436998067740877599489998326227019846243609226546509178540476926876483096892894509947175966082165196983176884765107124233012434061860063082183354439871321151813298655295934904804190710217514363536443526413620818362962871019268182281052023556441594626392031851310802382977278634060782852587097249798455069069999222505579648802185357803987173714478224957146801561664458939225902398371346284501639406266574909797718214060885371657195613996419660943848461380779684792128869641010867275411947534409135371989076061242365433036361534250256303719645827978490966383692663342413077284263025659175050075766288866860290794088240075349602988540750534816685570774900616214776171048192426509693072798992788008201182222949319724407680056003699094830397047994200421104898275471195736585814414215772352928815624558770316814636033425496458881605244110758852581943126956519520650786963250863342261271129729226791921887898466999134207899259083912930678405139734856577951889700782953724681685587124514500265019814647028192527890803709741547948970862970443304490782324899217425009720268233914692869100286036403038152814517112625447748051829028946317515890997407796815231393102965745014542814986740040968385078610096671362649479660687514900385044246705724631895590554335350032480746975687401085522560851610394728546247222000397665742450890066283203631313632684593167561196312543947196283958866241432215565217570796535384131465902524382807429953445071325250721104568742713542922508590334534597901916391476264185996076806924303034950992583201641424118255964737761701528196286616995360067996738506692588652178705176512412200446240013353750433483275850444175066111215200576338931477664737982919180856912304092887955536418659852552918591474797509006845335162524025044435907474062564265484109122440568776281338922376930445634354555472015591454652002625260642750572707290682156849160268424431317614414776868639730402410910822717957695906870294191740044729808683226406730521153068144279477572682481385296066699688386350465022972207603215755206298357842141594004692118567864331771348627263648463651126100363351702492864823079643567669169823026397449150265351571533948558938281574680296065720502754296265697518360506040399264560959991417405229190201693388433727234965526889225942503721084824483067424596834764569396072945655463487975340368785129478844296430544394894521207220036155936147803821057160053676113945849398853377174847510105997781083633309075312920317136448368850459077215622754151376293892348360952783089718617887194460863703469195702589244202385783288470565655155102244630318133086972502803918049703583908969218531232096515335794034276791312506104562563314501806919281997651207147969343388210348626863758827959614357147952371961460540060993514562925350308552962372856769004852637470104762681963744739906212597560642225807602547045570482461055936799888997243298051232481352072267948629024862387205324996803668428447042375659915291922344834828563413491260541204613674894191567041329747926629307946778800280100693267570825236022911464718318332151807065470097935808640934885818336518483471839469520840506521529280216103686947020128041551872014033516714104931397705876603525043858654473140855739122504293588084638612507535376224217857867256027298472722845679750245884369887997702932933826590522209637536063511716853088755847910477324774587625731810783658532853431963413789675614291362402651122909884776899120568981883052981603515690990548529336834516599990529562220333978977190924872728851041075809474219941953242208689139689395909011534701398624524309176054740816383685195428939064082359079996043036612753920252040860487736796833161186704967315266418309348283499317123092872589014407280829746029938010876429822051640869264901639367894618116711234297777975587610840624284366137022922868542091081437648182130545629493494093349932547123800472145491603276892134016400548441693942779480409054961332860046019858588397916991566770733028734073422080106543739273128742384488795286624159414164709941777996694140574160083413997789504875021367482192969533511190326028576901604642365851864494235198822764748736725077797543098945485598187136840672473451676260742197336379729635192658088251861801438557926279821769610583589622229196754477671071960598582338877571733116888736674550619128648485781212205924022262567956890190903655343191166966433541082402669145325596982045627720992747217664139701808070417183587638725579751431015609488698345120178684009683779851328064542405956219654272085704143397216813632878269537906822633700028333670259506703886689610711138727206290112861855852727494196797847777651755834006891759370251395760759176435134341810647014193876389499986316508939394322676003180051149292954983374687603888642718209538932071429312632180113373589892362628380101769304471558474185057066150337636949806304578409149990483597957783483403234291396167229401576005127521010040657634847273729185862236058451099441863732480362393530080331111092676224204240516832887070181023814888499792124300754396970648641429346274045059079729991704770672820635122253614632778638217358350420811776924212450766581850815142595347491351677913062523946390438036763338310395971595258362203946865656764678142653854586084031182580358607988264781222339846232146909211940441709100283022407696061917825625261396144418381053903096193678814830722006099813942986420066803566320726259373493573531274615135273816655247431046273988342175084366305791177175383944575967246115329070077459597407087742725744649920933466638270671561368952595163028140049424430203684014235300754952056269951153919451361621567736772955399806764938193293383569223696502483699179630388077968928984090459835290717985301334036967429412708230576252821219493577803380821821211815504134996710736837942581333144886631707085857529849101582320621952374616578237041259839254670734660567180094137287984733630571440061013582702654507815274839711914986039361880557772147617988893050101602911684430836612424339217602376827309136150626510896760313138277494109803880442888119703886781655356376881903099129113801819516791075331599944882590287949685100279985113726644971254464561386544929068704570092773899600572121996835100619116331746866406148777897456920527380136305295545933424742249379252387816575006724352022476773856198879392156894691966103695635125757045046606514178160556042889340087577007564893376108041904108204727701326506414887673959055565683544784740553662861172345613252040465805569619979588782836305499666526429200946553266794470031937996483509115791741989713601692888946358292900193376345107134760225827748567146348090345664919934490419838184858974404895928271911605568976790320032829210113215070584049888318712461276950043437474074027915684292849239191641305825810002685536931248089434284480053704705826559244865504170312569761713364169824902253057062312424413927287202118336137699048131258408605820096457515746635710695128969615250073305009186092821756516636617933720060029478869781706490543103386686081222433678040549663515898609604898405064941950486734513920500779773736818725060415214477613287250990243987336154646891611278617601043739058497137129666432036078399771085744425594423388197093338214700310742726327996992251189701770859557272914522037669713437570915119198436278588216191854942021473527625083867104379261228340098424364519724943915763203462270564025065605304240260138524728446135859900139670598237884966331953477403322344526120646323583475279996782062480571896034583915304963186151854059916959735211661575060957000059421210610996587958113529135535331682109832515205913114561087493010416850553738841158365666067053895951347475330773157142149021028911341653570410173037312326655267901339967907957371285733906470499109813491904266872232130761656315086156190675114946564185897756914974114039857201875578098821216305884864214825296902611787357553983952427289886923946208321144091206927034847745762540914030156497560862513193318661190422341428132770139436839737834797412106867029217599834876281345398208850019142342210028734353050405282771037298991790088978809654866643414213578460238953962322571591018571322613566717182963807758168887003213145920674920623193332782396441334105416598511755768687274197664056098630728457869670559583338698481011418476997587516559255953968098889118521801013599774314656001533155228235979157804625116175187657933210599274500327259317474765228884699071600572154966870056216868362104709688810759991935105319382931523240319945774267721804133404640970988048004793871466732404610119540839326344441260623098472359026362406731483077113696145596812854357562149141305020812727338863940021071413241550570445125513908427602112647186170316999911974327698759006360313850155417089194164521500612605301303331434412826168568461193022613185573245729247504699002842744283937648052467754156658498816411429513794329855795101042491516368884076802492934296871133388619535639816934579548952083375460951157692815263810532598875665476231849543994456864673198697285618652194268489449491058380698977123339501826831257110698520314210791404178110639854417428035813396105163464641276090558284361132267469569397716696503759203540447156956760974194192339581080278900489299548839804624543096879839792989985318003088824327502273790916194529370368385400990637263730090684342178370522253082964844170072095700470422267104495471520085175706479565772245923715568510889559647796183308577270543452643700208858330050309555774907067872242853178580112475893762502949918474920720341399264354416663060092681049989660672047888762565973485946858714187417588913685878558545369295736233635106583147058729064219827183722829013462300255801159978387536849537642228173611477962447801803864937787701097960608008128298814866214502627820971369112059683575471909838340301407380781100332269214162949465601706027626814429682504764650762888545223126836317692536259338826608133953663762867007803107708507955767423073326926287151570985753192103343679010109195416513328699989290021381148065860740483279335980444710301765383402517425770281228478134186198059135222968489163276379523761874117278091053409766776258683282518754584680785055598057846968648533015780477269354098730065434402467783356689772450175745634419704888563968825074016013624678852667891158650391531562508338697387511843007993991606777069950838623290421158797927447784229979378717054675575432381832520730927515804927568838483766953984160720485980568901597204977582372536292897882044158458876788155941468780875097137261771918215469910658677735644101842082408613140887307006555505969783584208399865312371492715803683280165139588380305240816532798507232360674133546393835084588638949880583346985424982553327722819942485408937998609599044133430865518766691901323384389813458657919492880052658703135307345222034214496251661198199744509914777935414439602172322348035853799836579865652193749777294640047000911685479977623505454593869833335042740894211826801791597128091134812843117716812441977337823772115166766084510491449500792499471112912395039961420426183489603797799236137730976560399894180524246055627464450446226934637132281378664739605333565263118549026194090912092833402853603020497312786582373644600718394594764431249270464523426095827828519649515158580159239920051312685197752923042009818462834567998659898637099967071993175833169070371572674149556141748072786374703134072964644583629756293702456388818284283986709487644741994888398883617846094734136988191743562138242126327894469441646388112725339965340440539963884078235454864242899648724549542370277698025222833594228965631291897459873308744018260926624131381269438010318528208569175569253965162745432749246300184002764668620367480237508537443077132557685506354808493122972558424036107529087040196204979101650172346219569680849638976070117482700340241373046745362758033172210447790888827328257109867019889400026195465077372944029065066576094620895223711345866008420552699944900796981024113189091515047961618718520511744737208749100994208735493555984618722481783600279997772199622278516472426278957257044543467700785134520903568934558895768713033775254839035772748641122385421308217289751456259843976165818837532389646293414324656377711585989446389798074412071078397017945934095547056774301026797240471254847664569518086195219005806125715249783433182850272618567482165763038627405693349403924419748951036717133737506502705187855199618941638070479881322668055220392984939624808826202349673939304959400422241151914593666348824926502346708322622271284929088760186323060016013940044101930748102207489968307629615899482909814611428354960400696332187624332659505216589249287497442911874585690114970631041610437256613764488100161730130606050289461974311893516377855676423866970908975254696271544959195556131567991500999247235620842719156882858906548522381048330807101649948791993720999975866678935089300299752972960011279759865833012285479936599071744605401330049591802242873361491157825399210042839455365376709207946926846144743184766826454294436171489542995806141934291994366596784809069118136406123872044741268808628469645264611640577916310995003607044958395712936071551728542076300631248336106203040817586974612661561725493704219568513695498856807763184676901064843748647824927815027007180632047764419275681679604249119983331499699270592268202510708802100208277439147984623071372974084684627559926180178596718156755285624475922226885518951540141746626856827825894114943705275032387658633444380768554140911558408897743156490005370456781330597377203987918002541580305807507561766243929944119580917474005819300125339951387917850819577154340458918020777418056578341890836048117522467587740243198422000299300284612528925270247501584456371241110710503511933107260998210395161087825125620807426071970075914466049842233269932104909299167110909936982543228226689903739235473652064902017255129750463110182041496302354374066637397387804089678420214054738200347608562041170569139225227538151886936529772657188130905530389322111483336156176689819668739664485414309875121637259319075353156408005054608055630670332400778893742021822309995334422885920701987955530969270298807383414312415726989500318574322623057160798753886967551848781931358045863978901824432288167909350179477036279435998701243797378061849841016977331003430154239572582633366895477599766390995631493620865025957243474345122292337956865017725866083368787717603883313140509429910810841519523206496896265806931215990880079322544134998865536482729937471653494170640129413123490412288635069892733262551035467462578420672765662885264146432628374458881636533769203077211863329926323915992422670205670629134185668895977625570718169336637909938404891534716794436035060766127404142081595300773446051716740770699062351101599495765509456678897308802039923284200377764050165921361796722560046197698538969317240607561030464069767316537073885367800724619594773947931299783038992626743310498697605036228109168357161735070294928698548716021574685002174575846259628146333909187546254014869833175272980244144255665161963550667477490568786163211081482268750013012069642673012008496131994433381091977878572872919834045173126094644676674902805187202206187473816577454802865614692532551576749140724293109118435500151171568535068797840395374613050384932130375521236954411388892489880512752734331875666599806165282585982011075150671374039369821175245749513637749552782256712560491965111231049686415718549867827088876178110808854032130312262869291230692939881844037160035324872136351868333941264887365531391990965845082574199657566640374942970574013453450900749191563276007017059606811939966764007918322078797263294165469740707058314195376558657168395497764022862142455165103311380637708556633642117355414431771760442223307724502841083271347989373549622568158052894835694251583084939762083264911764471137734514111133824355213012150432547591309181915797824559779940348308870773695607520864726918457916543637816641284967986630863040860409092679275486609195984619736886933244776549640275253527537234197246452709148148099731946317344432678551879568535412678243617567103868673793770619136277242926704344513795037570091435149088339794589707301100398782257486202281805464582902886334594244612362766987455208229756006745569219794378962380852232586799239974832608415456163270542707160610549956755277454316463114776332921013512084463741431276219702450477715535343218761033872213959688894700771320119534604862778737147409481577154327289461643913200577441545484848105121412551858606861446044710937942283146607500426823833869158571550525980591642788740584111039874183347542322556822575489658609857160617181963018244784128605814590715667164467024190582703894580131034152546329454415667555989400428135416290448015480191502361047766837076224528444699387176692281497399489781008767863633640969535224573171172189734505894174562991901637692393241308561529225943937337167824946415809882191081849707586321570515592637295189786907256397181233374166312922737392769365557690636432220422585334719754001041451863257160238186917110270749927280032368950186473859102942503006912554700732090596651791195848895463536375935031146853548353189762258944099731106521225336869001217029993628570195889041885830622391778347952568092516143837727215911161222414022316849517859612425995784003262421622203219800278153459329452895203114161499994196837097233706563761046708781712939088276526602539265782676823402523694214576559864634157494014388387310234796831138622816556483778207501620687938094368922512360004999697957942853063741314715184608310077763175697423477784664976231959614276642640201635092722557082319020003539880371137279427124681894765884360544727712812017698173044233558532751167849389241434156158111137417744207439167228195888855389035818811946229182118105176998221849965115276579619576117192103417701640671339476946735368231470180862348904725817613605387323139885312222574918762406674805234662574940406863825221957475152529595381326634444297317051352045610850408177295428293337046970017110533631145848289542229485209266050872494381561490587826037889338619014403833195261950578390607971547980458798863258514104912103326331064178752379884134914559987133113260010288342246327790356843645435193089436346023001560667128610685096211404598313660682535742230516175768511148320878336831809766643023141212291888092758022617815289043842507688890581724177933504994785412536405310270469586439700029525567315031078403166086542770749826612104956092468692774567809183941509645111086617671105235570543949914898159979571615146931967303596244998259196905128819064946653814437172296742279831952931211019427193992740013380935048412522375286297502287149642481544178760113338708276672127613723750402093098379914846300502409282934202112092210042866089224101130860785072988009054169845855231181279609725211662644769795290145000757008749454563121421178404895211776745881149426479379137550973006231106374532006352009911276573564969156063135300140780623582079018757860133534281832987068821182420877974630888422820275449090890926859145040752557779893548071505966691697831143094028647019795388165149012855150726754605904388982475995568722133412822636762003306727043389992744308497751976002238770915026497217031525661831155971314349853397867642379728807182773530792182301318458912658333546045957607428627584383128389775808895238795351242352274119293873672143021018819003809348998679573927393876134778827562715349480548848263898185679786860793863530763569511972361758865342442588456439936291721233575395162599830542799203870837410176681612590671044657103778217592847489615308760382027158925062017367827392094729217839065859561904952354363940434756411876284602643513849601372936857643608249786963712580212657455789208726559568185364105064181842999589319955226100540372056351551097613777121058095590988633909224688704953611633198685498898310819437064425533106319679894025635044374742463018785184931825513114857541966998008308745900550004191775629311899835220856965215431900459044002592715682127811002889564777346043604064011334825964859549000469203853162700315438008807406331311201261674932588110166196718079210058720325733173373093032396013345014356461047533885191599426549098555358495042906943011671537446564194393510790929226599513316730480320035080236739872174805795016730384469502511678344264090111697506221948005890510456882819087759916536443494548721116738133379551812609768886242541628346556333995792737935661937588674527899083052836123625217847868394736695982828025677395791750892408135915949614299587587400318398347022309674570564009997481503555052346355615393357507714085213705647727624030308873026090496678100508493084922908931658335514102739784318712083812132838393337181312759287606965348598645027669075924032452311964438820285466560976975734168383276054279020589338074572798819628103398017894460335980700679021614492753102176829604808377174147282256389632114137933614783223471358127460421086406177080597257292378894149904010681425810916138691172695773550708288357200782465801686845016417101657978634535551171420319757309930453023260946826305136338069909798859340595063778408270589134891379347705008462315874851695349357131113004814236569633790438594697797706389213671866901855013034686157007380783140264932734057751729669336015594160577446878529820230620143652296803997916748336315291665775266406462639745060748698532253097234251803149559054129080049091066284471763759295579191038773508496821190423177127178742185071617326182925524333839479976209715340367762510911338488373677479478913501177624019692234547486396282613991406874391449467495686704804092305396836371169623766025066218650667951162557418548527830196092073386695006285277246323733986177341107267065019894408789742837411614456268141551778692835787489702620532472547625736752346210967715287119047260249269781795045886945528590369661581427565837250806884729823141017474813111914604940683781521648432103491019629722974932007885668915172800085734482182380705271306366082257375860674568218258797031669340599350213658447115495976910033333993705123590517069724786060798151495149938917664020409982949288156177872859155156020174222915470041726895581978120762804664738147068569582814911174847387708564296284320865000616216439992032990005584243769659725964941295772053613136956786384462178472315054367110052638197403010136973132858335650917174751063187796715990102154499507256942276928956401987311380045819546193828254805376448991114131509516599517342074620295363456769619892818836684796350744042289069896251275914969779456129786759398420159259731154964845837220333551963739650117806523237307740163802449417818420205237898886689444318458108172530137028650821294501425608894376780500082641717534023655325012271049646914273956164378476156264999170374310148057740359791071882813030199413315662072141542114277086005461133711130881174056563303349680197326360645954977262022229788085602674347178368966590578971721872478409778672835618101548012936381015503059839875412452938104328249489274545493792987251858627707609769052499116430587441823225727869189222470177320795168695953194140527901086168052371722030396275769323996887015528880299238413643666742970857787163932385840920752282128294594242725507464229273209754929025478814070968883338515624118655710350634195767718673668198468011983421564345391601631881688044511486270932948470088381070418567273132448282829880168301223693445631456926840655617224362607368044538139906974470650912530376584468692593135959385697595261947663576978969359609968498752349382942811631579357255001288945902891758858911637188324957535231849030146067118667027960335010069302508205105868100323454428563552941607713110942138232868231214527792111050567462197614142510431661517484897950822548704455370967134542923130525429862567086289568565644370951421982920932171451794588891360537768551446399524632230337680181866843019564464515266874371439241654739213388150631136308490905381306476917447090746694530374393971043099400105495893954589395142152936644424718142537608303214352623139498674153912104332497561814731622495220185243153646068354141375116653581691959216002286083080781691133663172445724249673276043689817894412120185245609413935440921137034674000662501011678396038379527050446703359458420214544525330928598148533682298464899201183065934395085170620682016087998898159709738899114917323289109489359266226766116695267224260437715149158578921656356590595321200260687952382144869583434832001263699150079423546817502421115882972419086269520480823114865366537034636046493688093755064833648299638319973783031194783472176764929319571243764541408698759838885831127967320197332387693323978685972243217236215783936108072173497978788952618815075372151340690982419690154820589955887324897548278117601083935878702919029186915190888642631910597384336789990254098929594379686446265913234404722671767504399403620080215556254644586652858285551442232028796725548101151820363851494880347196552707085356881994799999201030924033291748025327232027861300503006659923156217302366437137964880581769683732991555696413043914419968034030285960583912579258032961335651352789881512405382541130481913969128055066419347459680206941629512429753075196387341520257617592693025929835283976800580639851003275877065082098845599747136209071827378958267087971674054088906257009288795152515573591005542915020105214649651435681876077702016714610175471574866109520856930735582612665760248019852448651949283543157290207222752926078247124789448653029526614512412849205769310130108029138049413453917936964016597003388507908196245167591599692612539548846735889674084660791334247502364327279102566584431330678745432821286120723481345259467355581589736728156517733106546964766024138755473989911377932525329058775538548685703155276469213869823898780091859524876037833114152296820039077701925784132955630040015274321718117810237420676011003301064117023170633727382023588157472165902065743066539114757946827655146300862840206762790601892532581777804028561715171697782899164387532569365525699378102049989206959326349570740704221722656865509955634821514515153384447997811622161828704984692036899938489573043282507298216090735720997609144917636184371491439442163854330476675537679766847848091255813788556867897130004521219734877888303907572724561714321333170758085516970071979948014235779431949035266214827606275422783831533628208015143303725167615732568489612793329713248568744201329488695403215249812383337748754416955695542211735797328876389385215321364212787013472630050236301531326091136705173957595801760711840891636968591592436662013802830376796603567191269552068593089122563274724744905728161743970065471517606552467938436564177808089349789486646810374777120961326054713110622801297050655021732298892374002911534755622603666081078267715019921721341210939491462751720134989388302121009920539366233575825518394555177502299660522737121409041879003046583352552258866252461314281276237983040618935845790696993656447591700320309505304935497737702189456436320863454634998931694731414752592573381565742059058220095797265453173434512370601016115307542343879826649941229578279123642883779092287951343387860014604080242855789899920840811857409774389381578228687198682762840046354164690663627320756222343405887232865872784982827594890307937264800450965051111253931004452086322081150996968698429619977079181283610775785708647706333190573157047874180853359789130547431041928591487474959979651310569651719196003070377948513461421193843927820594286264954269198397204935492044107530621023445663626642588406391430675055015626381006474509770695747467413848368869387359117163249482132987989824667824442586730958632299016587576989631194067165721912390087647838165011486603586865185806993614701484875003019617187002408308630938051146919503053602378763254396573649195635840277856947317755000402375870009420900937777945396914308979243950149237705664734542828300464293053765794603212991498988557618751235219975333851517292385371418777304377697309514054534156746468463900450723233977452185752125296901673301350331173821832500455294790196704536680834845471647250481797982100395187542810268185612465116983511831069076261484586368280082827538633450314662153573515140201713179847344145800065696389991369376777653717004043445036204636187987849786614989048614142970670430730241923653151088791445788359678355173021280849754406940006497610351154037098134039163531544169805687439141593747286745494415317098682314516104422827081396815675167231810261615109996246462417498280321475033468606489260338731261201293472411844151516451666775215667697428221801858629384938248296498844596321900474390190995386224981464595343568208837290973954103987530150045862540536748851414480310020871489003317447186834476487470342945336861082411900848109339616745572060930426559352769759885202999965100936393125994303999188533913147805718198565190564287192637142181950264844915016711865752730052064181603151622146303653806405399018748419585078243352032828767521147296126531680873987501949942170392015174693014193897660760514525144386422114817114151047518428161192421366068391703309935440028038183129655060522410893366619077717884676490898920752738673655828930299210269757317654629396855140563539821384695003733046426689022180563608916885154991221979023749639623990368041131664994633266974538757079922422653276119191040673045450094342969080880090012033304273631771924903820936480996051466104362738557533666303056918053099526105792763050503864230082207997981223901747264601324427634703172093980790701377720343695633581437674012811714523717916015587218397686631919267378130267787861959965646308571626650347791316964099740263202227246593703908988410409924027077334962883743646762590546504356753786475779312862805465219196017660513080379946200596264627282740845742622815480255806873179115391407890545654786447484313693429255967418699354707740188278730474916599281342679149070447863557481138008467845234996393231924924766460487711327078010086212343968846309038598599845961855094849366530166497124322117849594773874180620378904028932886613227209277009304973625441115588169638058497748728657291370888031320568152677619330988473218595878379174610083759750721388900240051082322832331218185704788370665904285640265804931930909228317008441004707667036824932262481886715058242519361192896137721146656763585211183612206910186916462154423892407838277634166182049619346235473773133160927722063522370857400115776416455338177418087535382143852016850042386295161112952751634539465213938308167931782692949338281659471912277255510417179433947000783526628508652081824593615077627016625486478284890418981884116533569017007877814966708641887396354419619408532086412641123454745942306570247033764168802773664773537839379850070418527265872268661928356175549498364637436601618688072169591924263439305121373638977151504129441296314414839586377413331598344548054436474570427419139901400767671536298614690641571327504622562458983760275681234789497653914725420641411073366654984310186535713651257297766697877235457030988939898099829287044509782355258605345643937231311001552277316237009758210402431290743447154849181690828714481036766100483103781814161257165698893997854559359293785625355488747921599348121379712812526694855172026496569136909690523526616645325266659173836133547284419033324411944543958739355945733211625067758910857396036840191080271375662157057749457164633468193672313264759318612201386556806271995873257163147898252188313477130406995482612276376709811115772867604165844853052610969485333447359795749798244689384987699540549247270223530620070681315588713019430483815228668867890318049686075869806605536311144166333372475865091834619247626660386584081837798872136487162401467968663948911255071428629207309017429728019514813872463390130756663875098817868614526693874440074779036241516437943230571754472349139392771973749013019366387734001094218571580465413777017838037896579140996993306377070231285026659220777024557489803148380075692872197129852386704419385617582068609842253404208652872722582954329668655914396392757996870878702859749104740159410554488407192468280448398992370944600454987683297833364277601221213983134695040355842926621038570887846576970721016338201619744910352646517828338202190732331514357472476431280968068582199594768933086377428293328159931725625795659778052232697394849327988272550717749095281898759563780109972651377853329492675769594804831605346732163995609290026693164110044050336159158399783950338668893014522057249593580106413714896017077999140990297818435041317459284571951174919056523080217018034865838857861232890658825622727679589588785949857327062628891342318019564934892610351116161521992379176819796711086678183716068853177554696734867567882942290669179876816450515676281907403767444618404398734961886981094994073493712982555552989989155257905320585575001390751114480980133554692805842057314926894645199008170247850552255357362530929724753451987984924431673451307122395088708901551297708718627117529538783327783198101750269611634423180177658782022356167553660294005360242647665533271122137186185950022612280181104350763990461553365887321588683635234716011298544613669885479851039682827537707509976315780612058159395685625003333709282606813184529899163429531594336687393152522725994457884073746254571594385724123330282082021310237940221054836318655732741265563796459431658742613152760943225243954275887746800838779062784152326659424094680400091472238847044637170929151411657992923372963721216684200818982395084340848538372552583478720767210696840930284992326458616501427710803630014593629752029015219484330667447673473787278240995588036930238779064069443893200707490629597354723615470681555930384120010496531785277491341439392600736688337205625911933617493425653593273055486128633145893872017077077672733558844482355469925652309444967673736285526298905374995001378024247751067246281127867635500367805856527989811444267316512697090866710896653897816280962120658801487698346839077776832264011199278668414922381979412139693784744692695860250581310733425097572521486162069386805249101355133126996284980816832430848515517423563228718621850184498305595298272024125853046779768581596158920831236011699977043544131285929030452865527823726520518591673004492414191230915819486269817264376761543494622158267486860281614720914480916975578411736917197253965227861221846422816605194968312719944645351989530060232395529592394529756959281849393010309401579450869582156813415376516317862568564959686034931479947040755259024692151582477408500437470010540177611373172543600486254843543158783428144764255429884351744618924577403200297095093407306175447807141640072572287657079053839614556322721278419854560254930530929307998421687605210156265188489615861576321267675809350400930739011684564963005156288384859250553559201766828820713410462297364333406994432522724143651063199273022827637414711713204916079374866961955094144365001288923277838445481429938194873528632157576941233914262091986542046959259411397919786506885230966615102116766346369390261294079975123921756318705473510293521543590344571681872199462899089229875342394937786845450593802945320709990380012062021031882400495950264524027840549323459065209937305636005780282955961493799492750103918497358181130912087734699579207388887410331737829240025252887779809986039465370019424117091659521881219652016406229073248974108643039371447597879111584487001070335015942927748853466474665076060146664130979207934894159231978013633575509119450663344627812347473768233547205375051374382388088884169111943504093676898710005683707693578104736272284859258944116956908850475986343946278686909092151385698499127207676633191680867674335231361298640548531522670111248634616824777352471790376558203811786261719972954317084379221169340293841936189352837420613818935287307438789380830876094156181316213195112354093587410620637809791849199924874165315744421827860896962989669958795919014566575785845209201367794245864988051939763816406643917765826125419374282513650747170163499856437043707774803811206399658449100201562134332447812847539012568826709189405263073626260674480929210940637252125248380490677457462123934637403364565178355183173664205569997489899115466352180589279965351437657532657459296958728222198031115564530878096737203528857019581321014499880996134092724103256138190222032161208584874640585368422458866758376257240713896566949434574688104090340159380168586886807947318833054905883908321860063249993607273041796600837119577580375611299467460267872110424328024583255654330417164638031908446945512771915722545654448370349799234686481093943054955590220039763705716765149169745990507188458663049970280136120382249382112185011851379249788821357807475892127677624447183667117254929895563514016260099912004495068428371180839222476982573232359559528310916605381985731037863013198273524958451419559620300062098450084517569352223133213521016438861756404480195293892354299797535933777535335331444629307486087684213565895105384736848212678386585403004829675515530495930920048313235340660484491341520022843771825784526091154176101419053243367955590606846503786476652205348277343910635707400507075637712936111774845334199831461538266837247305995993049216790777728540056140092803169905032062345858514579289237533891265336982081430750323338225521248608441101532176690804823418135697855085054349788315045463997217612261315760011165368777608376407995401291648055516290147704226553089739626601071720039564789244315191920033461845471536905207108960022792792871287283697138186700266403647883179230598104840320408338326041846544367283694140548474924144123988972593836829823103232454431947990936582323775484293790534220707163849852667061025265942801712872785733902630751510001619479834015000123603807085068189002985077459195680001948633234290287384424442095976301080465731444731278266421612648444916628895499997701009658938271709550357849293933319300418376507984350492173754475516310040542084242140129792063363736723813242267834983372140227455243977415673411882028619910528941740547421397498148899746158188118497558217317910120328837690180479448235844647545498863268377712681536951124827144455798573526399250122105067654728559352905568374932439249854142836744603718191243492836687459596003824850948928769228043575856085075504175472226293733317202343728175581157620742616512923645847296224401800662034058641162454912230537958398146806840199989797431168948034648973217419544537338248074553637843000347331875654585896438680148005680698296221788621266283594070276709479831433966111363846837281210364282622420747030598540552848880275866843090821034518760314162866554998725274363945508799726516292158612579718579221866106797258664380882574244532149852069943691201309114311833920328971775125951496440015264642231242186738511760472586698484776101220325536199807288065388810743865134844109332753719331915603276015635830941262272524476041172665555213573085683210115395801220638189591497225625679609821398260488161476106858181306766916495431045729737197297329924226721462351736729600793261357466708372281975368295554899892722827794134687042575848066236499693241875823776668250855615726793747401729372025045605832800463464095337270997868188487250832627156878244511300067469471691583916491792910731867860622036922741144910643567825744264370575369502848435041643597876788408510759979908231724385230902827595268224867064400351354026870108670758825495075322219335637855567977653138790537666735058889721270368189276459425754998382847360378140457564747914752902903241289060514140958370112257189126247853099795041353343701956811540671337243698983399286979037347427646342344699625867081012447630979102581520226561707424495914039913113910889448046303848631934932663758683278887396292452320082528598809369155105695396766710911204287411467473861869654863490636878320629221145087156208550246615785073279426486538653960166231778126108067919401112819112203906480509986054822060665808708260765618283604210017053692024536566441526340029852791079790004122939170550997694830572780270683810161124930948867245463479533282899525280645820117191596977279224861285640205923763665551473339181382364983492705038861226221583619203688406653393039201136222502143953164957655458043054151806737263676186029957895405706846198046603172768850419949051452428082839345257949823569528833212969461801512475265560861583524711559128918734629398136919323784162991666024507455824727162172730210429357874753813608432032392926024621460393428321608516186819220012108640896211929408549097773881745113311584594456598364532377114993438368483872918973870058416322491925536021617727499456389525142238239602920384341404581493561024115607586574528346626673240572865738302935282291875083171663458555363729792711199253308419467049248205591001812714646340909743656164801151688929142263445451343832973852417201578484643097921345778208383291389666614439482950099838619591609844962195005124650711118991158918640082078833722741475859895647216615647982310473300175429494472731007169768222698994236630842111466217198383184087205154421239699062149173559284969552118942517436018385722013735946917509581304398905255147235222162108468827916036039143999311722392528515526349668832561176921045880292759421879240240026063105023788866582266242772972166264241476834765488455087591009219097773411814408275494516133820575002220367229062965185371427415953387449426290976598183833753119167925216769337058738294141954288474013159816689962710892857615292849994658519296253239684253248028077815170428886465986059809677855050277581420723464862986081478246776231189498654151037205173236829049852593046287667687856503078309499478159639353272217231758825187395803633742413092153957963936178560868050341104039910618433071295122629273949307136201284041352754404669574320280563895595364484851706908777274843807552209056957797054091397909585856980456112598582972436674803196780013051852421357816259506475349115778052797851368740709332331796179613697116701909570360755939459692411259028619885913141419080822408084267676102334960255451235810623193266067220488300656050815889187490089377371194627310683693735347286910553438008204664430821335655254242964500273673605494880988931502165863965185575314082130595491011483588292855641476750901277978197746188482939520828465422558508191135962447913952374515756442898532395912082547673826452442087326990203597048330303143843303702387936844198256643585539049538987057136896111535050555866241585591463289152620620721658005248896117854894602836161532346210893057367393849332728767465523217115245095450223099764699370872699978787086585494139224505130955402280673058313104114440671740952677571484564496152256021663223165642277356637196782492959760646709850052240892161997008194177227000358801543317314228601891999626050655506328377063745274657425784675381613429867226844987394260416872227610847273114631037497325992235775198685995636142741176359984073423959276767306694942726566211271380561874293090223682040450110588945658083179891387018336234234488465834377937468625647639306129584542444957405791500324198698416256279092224654386708476986126592779664581132677368935096989860294733726775279332680009078566645215183570832918340264391771644806323938344237538703561239948062482604522087479033196637298921731708566799855212374979229000821942946657552673782320695386486950844097859164524718445194810309056358232737738870240719243086494811515583358872431624723827620107775132023958887193079700628151624667032490273232366394476512329004544618513395089873360412855255505212614230719261812492506664767073331934416246087280120415397264557975938676534093505522047720057232506780065243251400356820929047750634893782831123372287036591092748891704332573090434801250566466503194435588070673250408773772607713173384029309350234868139801919693524093580721679270980395847055219924978380114584672118537613326598862041225225488213615263100468013954912256792567503909416201532044762599705387574888577859956061230421966582044638361560229716254112173357156823325329119171699210615994971609068376449369928491763241815172585676054245468286809431370236549503735650497880613127628580191726621020516499693422850969581717377109196424030535910520742584043936704179339193748188679478337919018626209603013490846903613062590513342105776197728427884433465029535086697012812871733227326734001540771934365952105040535005845811272441936224349063402137868350389275903567379922999237861813007700560038231395620194256116852695419272621925856796853303251774843343669555549329145991421136334319442987744234376993245959253504760389621891517950989396447128479755848707494026116052628809611363375452197105806450920106452051525310132824027634714539616426759478332654447430703926045006129373946115780919209312202595826353708194265711281778567449194387412808568378659405368476975407729445310413077882493661930307478701605667347277808267487922753022206988515769879334155355823439786492804304301433305861519028967069836498166960955745548144094310700078928088441566154857838670574050753691553415626194058194940455936824103133787783458625503261783452962784617065475149490610945757732674187114122788238615541366830701806014198591491572103065083326753096905081084124436389417256806107722484524952504542623712171347679550349885733441489497665655613889623625046067974964218155581381420885503295109955221193496955731457947819992667286102178848576747583869946322068772501428937382621058250038438769956178097464113741328291116922358878485669983931991279737763411802474288571034409058373073458360288376648300146342938033140406826168741411564433022180292883340824731959616393767905074278848963794010000262355802665417614616187403710851719729554096607073137019361354939916321468234973244538581780941623699346511226771556156656313054794242788189447222638896649616916442606421314165413679998494312880251032935916190709297771272770236189760291512682560506592825288816906246470953026313661312612830491949097013281008021565477801833128081147182412730843050625086924521708627381128616420654590827418680377902187899102976318747211512985476064936842134560295416820722564996102155538949111474021328678368940432438982411869696961883578027051944640573606263376258051846340518185977542897022506185125136829437472893542725121794536615555414973347676346155662232528554490838198039114290081767730931525427639909533062262647542948183748123578049871514535479043674502942635778979983573603077879434024779177285941061990747107367550298374586677471934802683833864427783128669595778691039053689766464178441647712038068474979817189596745170370782401487555331386803248494632209133681071039937284175295927619831651884007568095828634127620506479840268362941699606307761505030653310795170152596881628200276698576041840790736000007086590627478634672114512549530609766158178294201827126625254153398431401370231779424082985683499553877063456479747992347426698906087683369665127004788482253838970734529316205694460370879207425977718152949776281147181706978692636754494641724793235800963997124501963107521914764164136606504411919139260700295334807523044920425735720628221772051702628846165638372319051133546693909628257967609133540019776329426694168977181239631191348852142317435991287502848682791591362686045508053527894530966925891640461163870024929479555837177574303605502882929133128594824030397257987709363134720448939616597880822638273002614419734023277978424927281486408146818607978821102633818370046226193868247370413908779263873725631950405767917347439327772751666781596014340291449535027940785275545265466272947238014442129500770753194780081498544270334499974082006791218971668387705807462102822337486419126819648975484550162133689578350401520252620617576097780588400420188048625921234612968839304927957977078435068030281914413994993666239820362573140142544351486584801686221922200184252940662760502723431619697589136616417729091020613288028579373223967543523481235122948253383177515150872261982801113193940202345366376464303611510809716242633338555924490932341260066143006947405178402761779666459810275676877930209684382720129075657939188559020825791409125284675321875639414624558431972015789842137098684183298091395963610875211593997333745309715078891819376143120704623882539493564834877446528403323063174201667190502547920246305517487236640380745374640524579640360422958853106037945256776142217309107221898835308961276068393252557355639744344266192771376536681756926134658862097209203307237003830502116355543978487155713160144936825073703712852401103521869318358240127237890856660581885274239000949762380471463380019624062172418470782650378444022311675932195641966187406750904005520250696625043939978608297626899112392904449327505030854035900503212575769785901475049081453153584684597287798828155350668883286563229821644195867576210060529387518244243497149397192557999651514134604165531655467357028809199974326020078313305621409915679970403873529317301414035105160642028780871295998365504149978448690542827301565187993820946448324251737117261201736116096941893491961767247449014578454697325895949714057454240613298938495739011975322716147728517853066296376830757391194556961197994837302223215641606809599210139980350829196757458779271365239451288578138643832252243469924016377523049263679863426625485003066448311405796067434604153487924623829767668408910864788217058892576893640627632356847344290517945866653309540350748392523973520917546594391783914501755122789646387205498507674332552876268502344218500735141250808673642780532760346367258582919407192358580093964331478433608177080149690273690586104928839427623427670993620887667806785602655055689019752232222271579306857133726330221186829309842766750933491929424461655813276478491082035080693486859746357555864979307708483011802480801023853062233333120770100776160886081984318341457003319989251359040772742695758720908850958320700589972282892754263557875827501266869004881824994535797981342883603977374847298971926271166552810006129288511981287437959735248317716768479984230026836602222926816465161183343152049038006359375436917931172622016738977806096875501513854914295001429738988808119626610914482845025480100101264733636662430299271487510936313954847827027385752528070981511168857399322234008533479121735270081951697492820540002004343279884867706929552539294948101466430126593210115253366979210867973310534764357310068462612545433366237758701754318758698316072564162908565306405840538234146195398845665043901937539162647684319746032288806589569719615450113098475219946665886480299727414389591289392432665890011945020272436662657199377486925007646318079899351253969465856833664096524169822563525250432876471482837857718078499092353242060546305128475925329337497972748878239947053758214514389530069462937443416566842365507004679297016015532339532611198315123214123000301284493975846877988619266530281778918088710178219468414002797603569929537383528279025440326564109103740417976565010506266171006711000025750373073565613158130582311762040407407209486709832860423678912291489075537022768949678523378848688352472437388038954908668537107565697777861428410522172394429398268259290722574846520310425209804002657895672615949557781939825966976958798659662127513841719506977202206696911467608256077630005643853668633117890516884120379035169748031764257831221691433600377602534437203399106483676586286042271666411792017234708627764690455438226349496516982405516397293637291713804692459579677072544855172903147143792500302453211228542195255029560859496385654842841088509486240885355550228600717912018423456843437723795687704284047575835846204836651195895055650192166525808099537654170555108438905606667811875846803639371015929656848453855098254586941924863750683606003576132714755626453167573705287746917163641505113305762026072677618920846483610956953911687739642286911154137907393972784177542718842091292091937786244398864493282723015214009039489702918235323685273295630229375668661044705400284494987499337753168911320503357407173953408516064971710298283088646024519228765761585450671156128406297593261985125248238021647032382440373567503844488984529408560124589818640080319459676228195360182230117732165229195496762943115951643953700313629413283258228414736160233996232620212372155768007749036886526945191465254598459152381043584854746982609528263412721601959033968909022461983556568770765854957674454548962772334446612213454017781628664696850944679732301095823898427276472924155956398967157101657390327370280700396790651902462178913571971711895027411403323752833777678097775516030125479479282502473141898413810854980199606112969719803398419853767649452478588466929076676126095520752022363911659436159353355366054056248936294536838016460575912133771203127393208127328332560783562349257001374120200212017266445246180603450278351661866969349729761514303334471826249744110440542485680034222854549562272292757624569937167029348507671559713741476948862599720547199834980882966436579732851458951891777942890676449762096986925716198777462731316207331818979124010440997408084242396064796380579540683516803039743084867236553727205556813377130445887254784334780681156088292024180866917188604091766597266644149591032574267331520908091620752533661392580971827699222477386643533708896400307338301519477347531042942065314011914806473535865974751474708175706760156184465286876899209248601498129355311736207102019884663704510294974574850321140582724236107624797020485641164395406219915302848192405196570755196628548955273907542991628559552520712402416177416877956739134332593491630625006823383014367047464493045643683285385425814967719813773440339102618451477895697145739576202426623094289206946483202673802203491498975208822853976046534628635925894002285331036874522042190502348354137775985874255223449944062657027676275534634404325884363932596162093609238082358746086895358925899883160383448918654866277671261179444278149556933358697115488116227649633569313823160684797928003222181224120564655258847717965212512352045410905413418249830054582060172760936691847265621261825924412938586943453809698678344846679852667373214722297841781438539982933132376630878505244746250269659763027709417754274507799636984920994310063363115343452922768961614922408917997471333878535751819740274586586074955772617520605315433314324673495095614445421853348125332508533761247432371348400828544917542963815311209764450857556393826066071562450437661118635508728302153469323213332509689525691204204069822247662380845190220064705303376854223416033409883871301126690181491304068086613678761459192903373091119585063980663636469115839572799245533442601134885076313138169537171465421221219005783242299170681028440503185358775817076550919164330122997796496402370352687870005932415919110432930692789645112899002077221581429214843426554601070294947984897929198351495969651779625154487276448053152718641453798810018300633575681436208282957478764606058650511975455601887494987059643181220836010667293330175473602938891854865577637613236902630332846420164607841904914895925137772417616613388718968176556751808656007603812300735297600045319785927903801995775680570408006635795253173033970715280411724926168706199583515378478691777305295627714055232794544589024979497584583107091752793589450717101818559997820584088804399546655748634921084612661356985826851885398119427860039487427285862940454105667268402335099491540189879807045864763619252452048478087155093114507534264832066147482184447492119476142994358580414869951294737254529056530633859363326889809928738909343845773748565363642059398569031801742308466334906553950980692490419619617496659673707099351510993753946063826272366358290614563876849663769571881712025055692534735869262397723212806965381066128318993477938704271036464874580679732519155001246747667270731356253686072039979160537273458144471222946686476850064860292395356884729058604859074663514268337864712985444771672544618922414776150315405346170794740725485021043167572570151787783600115675660907648933386790172004375219977530859793187528962438937723957619356282054034150096275354079024143891547997836715628810073568043962661263054445546949167139839031095297732558039476404357228024862457451732610597696578390112971073517780316245694305011150255742415910406051973367772260031825555709187426055204464227359299947342796654340924337282639571390254665031490650955427630217339330542855026231914582214450344811433466254082751401124920768648003506504421402779318048090965746743246073551391230563528999978702553577505268501509193942974096317641519399605601921859159124028753979547746911059833868716997364727707608210594044646009669608788988717625375162834584124440608448328030600491956423609361286896471263514480059156628314019183413554917700854756092029666619072292547335732752243063016589587815385414586778710902292876328404045752501814260489656352808481377283473600136293697524124129859108654743852618537441074290546985920021443170124470175969131275757123505749979209667495077105050016633217716449110500974277518176006402196114479616810623754627962652820981938321571849653155896011702485567118796164579419379208910726684074236449770704878245627299393550603557967344286447812952489667094956026792691270601024108427231185597677721768025834805704984224828094529785539514929635255391540101182428706377246790027118907963068085328995477498153066011725180219601138716071679388888689449398390535058729905922464161234113344932284453873130660301063537674226619720017302305934359036451427810352206711139213369477712671998449609519728363840330181579595146006662657334024017283186781197018222401922312622378534761979246533430550243577389767824675924525963201941871920440423643904084157847916939194275778810653724738915646433010420531015613108802219057129378118955925109063714703968875204692964154852489580239266622226027349079441180946149999728264900723238618323535679373075438597804798506751322715738757225540263274097335276145572326897069638519740914528672643017339617316198597840232425378681077883535282196077898138098074222182833202086361115082456443073984895391168057853882604448597182447299024074873972934567597809789442185707359091367421295267360149721133241911238809673430534003565502860903690136548275931446998100525664368275951103387979311227574593971180192049071121764007386511663756167429525797443750909020280548522335499921793943258494314636723498094360814526602551746318889858250821315745146536431587538650913437075678772334001808349831393429696526892193503617879104027168553555893483461975076458723789379540130674085774006672111507713690138604347940306113128879942404160832567635082763766201413598643487601515777565934241222865478125301013788431208151666139409580740398057383694914659138167090425927519909465562223716862102503663348645472463295820632521303656853927068800244773789575320715422872390041998880319565012054777307239229975574727153260322379698187328998324960138759612158649498713103318881489650388819649492133423486692538787993128353464052516816509196068269495578047845869898701245779888581904211404595760518849760722655643299498973044842211953638023809880570883076122315762712971179862125374001760238984875994193069739691647703141070747021192238136005437812267065876581607399613658235869710545452602699842228756871802748172187461078958485183304684174835412927974905596126054190678286126161965279185760099468176272596332372026592234421818685583310102884638121115256478018091322409615786839194992587856131449650903114454512485308930872238490164567176261882339545912984749900790055452644263927257497889221161809223162889986884355523780483457335412753393471721664073943132806567509137400941562512569421049539316557093184711666645807328761626995641769596341172367944202125657163695969132264998449216857685271329513992556869976203438588850673804307642074069433511068253244190384686437812519950495574287842837097705313487033261775023642104123712371802773268231849534473393334926035593342908704692892434445740819155687052085427920463012603587624833187751285550604934605289951105202971708605509993495739431942348603976175934834475478924598626613675964987798201790837382049698864150640918437830149424709756277471579936484054939958151900604460248857224795794921943459133912668485062656928051017385429878595939461149731292826640392839416956602918168228889422824222905632756650742967083510208815421103334331553865331377603076932828494596103498767397478697326831956142314377851940350669053429849506371711818504312159969295519811400396225117551417310874873962098947864034100749654553780192045202208997331996264943465483190352052516743283905854464942811016607574131101997479943453592284429904721508378783951079519680634018368810004143473353889120011356430493261717235032322378656837117153415882684135782785155986149038240409825101613926350073986616703358198372802399045715694753473050590159130199843105604287713588080185744123958114347404438482043491218314443071768857476469673697078058629548367227224554596020591569341040674332828169040401395661116553083049023691156560381307215955283501599205405211424153685952536919238785184578961349150622126864225630061581175985092133683689111627657353236631754220661850680526628494770611625658925896597993085224789383454853690708448140304243156581830887268964518701730583207236299840550277625193165424524037075376207149382879427783337872314800559288923331022288316581973384862691436134004406848894627303510197580452178700976690918588842336008058028316256024299103574522475630096325519829702414862663834700225203755695780359319847220434779205956264794357097212914324532081666490172290759257027653376182867754151707522252063288316092519559611348713913417409822919293490375951668003427571734905602209017344225694431613988565018076585653338799840318036458130542601717467078782096145347150927196235157259896291668467400722518671863229637192201636640762794400062988318771275387860539223958469843938347235467851989652800118078032337519977672740946000482454643723730808429269721833369900013770472026175963802392775366808830539073050687672977789411442958178815979984812885215028705820301503086985367046404588756165281845068244641006944042116168568054293135868461740292224445034769951142880203741202819641185778972142138921960751338635144761039194047321382818996081131061422642392782242091569544449218782851338508668010878592593481951986417976221607644799619920531213111752200947337379676165344970547019926252222028172654402745425784656976629042548485798888928901117530911043265639189387147705039297786547289672295118572430401002249937627414382351477289152226178857463444685882604997656945411115702661881113986866862202174149481905425131925760195158866274759954867237965854039941588212141355177024458144690023514678524189577325962765715754444406538599621658420880532005180308249931796582359233122145056979361579982595288737830715473234934187749505997678554133283502114813502125615151417028571343402187539126387310153830461965937945903902130377261585307092238169359883965908159202914221491910132767506443635425747164872630916152243245737956257357055616544942873195704285757532923281903293682603338149500190939750074535907029407487536427341249633594010402454876183682376084842644462779738639401644521578430957880967068210186507520704460710485572328936757540345960306359436934708739002687239043782838707956130093761962623370378013676992456156345894277654827468736316004854635730772931109410096001370278706293546358374797770460155889880459023376307991812211984838587514973874235330401396649779986298607578235682572510834753872175062965248680512016248272997249190398064979295676968433631290760121787734621806639261162290168959930727668871357669351006611026593532828052733258400946359144389018275427257303843616160233604820751082659094401478792920138308884850082145106514660183583229178942045695476841007317947692609351943989997463605188772957766851131106801340285232706890642054012664773386123040213431716573663973095322721482948138198898170420625300929227015303012133967550114490117902590863844826485047152455460697745165138820617190848103947861725319204108004940074259876856781098170154491319453775846775639726945075649615841061471687354943968818157522940206539967846853005393466804854507197661053977553202695219483861366826572717777914427041796654584282056430268674253173753472421704027072000251132892223671145381217788161718301123583918992881041770430514092042886441745296031573471827832658441854437783394140747813279874493314766934498022035699093315793965894007555356851865446042823434613464559995541069902933241474578808610618212607181195313309900836593646866582219428816007874123272406087167728182792690696168088493510294837994769046655988428410827812761925906021614785306289409527631643752192028325450237422288694762629705916044206076827103513910932069946840547532993230048670487950191334990154343527825502996985075374682160799621646551466699515309390106686080163422846248627238249746152558984282357598409102605123729569093838341931972846673045240033123303425316168624552379247778635792900485539749514206802810453928322726067058102876533846480488998844377002891539811505168221130119654008318576421716045688987634498862426919449061586141278298145862411475838135995541415993536835633305320881484226573051701789615940213435700407967919895682163424267909523634381816014180432296564451535553025939236152262521145489902248211559256102017918272109149939270703330680846168428614023424906977793629341781037192591312682980513902393706262055060219157685281249077355478213943478296154593212267147658754930097194211233868111832849574673313288307764810881912970884270333991915538392669692657720010011956768664150522715269420330158449177973344730186285520244670032058982601301818846017513549990744640202455318180322490219096606404465145064131195834311677564349090957325455040406058831756955017894166098687102027343734391857825770064025206262490550579181359913716543016354523472865374810579980506498364868182611784513190566713419864972690919957542669569172368810754988467724557134497283118788395134198884834811402312400704274418796120795989019230632793102095017750798222770614580496617366517357534830482370261075885031859415098820485656841097158108264071014597318690346065525964904393552372990177153030090721119381761636675538995531918969753765233885957784163794221758034838763467095332232957716837561121135596600066248331712606554620569126671015726247783136487653842394514237732759590097079572867198801353800001737050754157958502121092289098885084599823064218693764229665982350828213380911691499343030621581398759163314117301563999986096289473680971537464194105101217801769316376414656649175676682483685463810364189088775891751041091377909492723042330711475777023710328801714270241999635394944885976065107608171119997783193496160618034584227089906800197652711476162400040017015914957967639179822595736934995899441701457588610796177728985341977183921975972229119697911025432140547817794241480898563363820215447600456505997859233297818630218609681301271313508127488491400062579120149274239203195271781146729686755005515933533895341249737430802965463845656405949028349771173701021766878057033753019343075445189454334665375900938019776519553441799194969101851487021768383088139701282440099175322065756647504612612991984905157325048510272150490860614709338802809764924142045724508363912180374364762919693031240162213843899590195272694216617931432247147255061933306189094050797666746099768853917318203442308117482906215905234213348468338980471478787912468675108251893572210710467684255369156538031016179191948430918487194350385559879378464446066809154199751725690209485323478092424704020055749872087914989172151653551968382628664820170458190479296802500452701573246471329645825447089566428955667829495115915349814552784458982417568191586236978851701383296626782720862247239826952844510789098940022450836623603756128479106137754378628183779608386937716689087372844013847023781732442214605541859376090566238821159825747374382553480010181385417801010919533060933437283702758450256141170885707420739453336210893581379702769831559177409866024302262695542877784234594798424635286228363066047026873774174080203654160875202887860794000534025660481048740793684934782664749531704748917379772400688939707352043687336074675287821759944984050221463267583263349122131161028348554190281200500401420459297034071910503937500389832504185880217675493474224340770081300299242817157246611844846710454329573751993248264397447704774427967489931918803201736784275378952227671548229096920789550993142583832708286592725174584331047826171698273246290570859150190215690191093675113741818438197811612814261202271384254395004018906625873957158498101143305731680851278312610392034151828905034522262445508940145001841741701733247123097107205519062355649940247765430578530310498053034981881399122032794923446311349167832356700575185740722295594140223355916405122429648607748386169404994373321891308966574571484513814279413486056655980080738800238195554289994412739627653020667950151908601858435527695931557838166685313096064887120000840442819215233582999080293349515137398632364667031883413029019173919568136544779221569564277496985749748709047892995593554629670271062027953884793377548839152252599617785887068772825916654677238703977813019310379700871142353510412292389674318267716399658568415589204528937274360303030901168714891336387376920051226100229461571285630415277946097017636009382001440498548948814801961981791241473176074779912961765883644808901776077640958325692260603812569362688924819440803233638357758332188364273177073053899903919164567198724892284229224043074734916580266748231429404516854331062501426819793548328449767480655906833548513127542208152657820302693610775575412396106019418657816694100117816486205231512338339485670528443166278869690939680446579909365585186545581118578642434250809444620903983685283142480287085049688789446465388459701861284247581416246911230515115864839132568380755965945785967783690614831072290831065609714160309178420773466631843846237279810458676960643858196212684913740767431771388064413260239604436350391178020823449427803390680852084470543796244931577410174018685177479250223310480609435766690391056840749387598080178984725839569741604025771943970390481259489256621790837323986512938632099695936495157130997182385749661521339069686850020565695440463222813541111132135970915355199629522171491689121701647097148987041524558730174569946803532059062873944158698361035314722451739329599855982423898463190459147767437707388379569936600018579711405124169013335819440146731749399698664765078825761931218972707819672747097130314687584447093469829475465230030143644061791186820257068803355963923524582565476825005366093293401745579309975645948965655721350141493860620087435635960000821152084141616954460768940745922202584373577733111996289279144564218692857109193033141388278418663638418683190966728593721027558913198449609253916998192984017021839706439284216776983383610697230743959736203885938958764365426491973188598493290018854714158555230197247619654751491828816261951829898509238972382031767117029779390177111255301352580086541818752751494644060573624461057330740133514124452747799575860315494479724386715101194737087488848950163362557167192729195526045971872796222049752420905403333177963188502388422062100097690369116887932510010357770911623539690840933536708617997059322873899215978275254262468761791601998415725515808737365975599505399696852722612591337500787333951745329073472312168111240598872068237965129936175713815777104836482521648712568993785980294570478844063322857258169203074616188416738445514882127368582969105013717282302492042177254758644849649232824839914216079526823882722767251914112276633159632836263709437546125138536095600158518407204686263713715422398253560295620738690108805642509941652065355001829892143597539208871103816036204658563669156635928416253222972215458472227946901553508322090203815307731622424571311005740825910611154860904565114920361666200371424504546055530972965972372032465593252072974897775449316956938143544850605937142532347435218595002186844139829428520873062471043871843146722018381042878504976251202211010814226107008345542932612053025963161280358918272026662956030704685082408399397891645623803428548112138681447037647549788109236123243568199438847139313832473449423157258947442337326139776365583159816373782025354356499426739385808480856327835378248099847437943222008178838968135700074131940876223831855122268318708240123423097506657363390100818539280001969785620578790756549146730617157175049735855749039974051600257588022075533683016653267756249950788292348979592738833498397284620108914044704219002427590920272516637153595727612603690976306265467172738090631380769716471158171999530619419997956901769220241483713737429651120770325661088605543174411952421134286067247582509614082260067833023589291976614359395980342417477069429256119201336797047467110073774987926468163532962274713008282749149046530951015176266046575944248682743905930919998720110986200916857201028505442777517706585151416313076934416374391259265732948187540784952406548310140752736635884313171158438408623606915163162767864619637051328282019906085336114800202458681080844275936872340113542402036302210230800688951309185306689980632788132596248866446286661165169263960930674407335288391348691512843605586946276282403078667553766058431644967454587650564089069991932176738419819731388045454205542041585647774664308867918581202294620549084638613206457221342708352014261002582069939875838599389888451971184763024129413829911459967950939988910701374029633792161653239680620785218132698363066361705619707959567529700497738033225702542266884128668602327528447443349857874388549972273599801790226353983373740352169940062091489484221782753475744510153233774820591384206965813748339851172778847645012934746434485049541466168702391338358018257635434593022485827825535903125685338441485988408568849179531920297254535815962199631163071249116963079748304509600417065640223359995684884631997938209704758093626440953956186082629515234848474941343630051631483266156148850368982713086439074092205163012060728359522561416267918706307395437498220244775978524048930499034990211494102234864271984029438526629172150032825062477372503745365226654467141512752350725375754930310082381395562201756876642349074518173637794874178673807189584733157363750744074725666438437040447803090402133073828522749837019308313772250520900728213478824732903413734605035510224162878798420769318326481849230409588806159610683462581360656108422967121428171643428843039058180097445594745489660467496702640055792605792217960958164293885963039279856402573112336186020774311690507892982362346765706816002248723561257808294770403836340888166087347071693379010013354468324594371555859700015057013071547907028849609348334007770794684412575105420062828976039028915045993674294656206391598680592179923118728104185001773208207976329542789958802152847793923499489890177175118235291399936073563134714543355791905772789893205448650187652490562694658283794746616741117268842011006398220232216993065981556746984336010478386160193626274730219105250068574434842490772475314323212936374877032790447641650763116861942333268503072429027119109606879909629939223131166766252381991246518509375599702073809451993854654486056122135478382033656872782113206499155477441392128178225962208465086911732464276867666135581188059788664132913640484567895075452771529403533077414536558975325731459158239116570732936749920907543698093707229552650161393198294084655724442944379957625701940403063737391793327245572286423871973133838459173394821423571398694842750241577144534861580596116322640003282368616054564666755362780964722816915026807598533864750418634395632392858108433266864328914236285393994321200317021897575376227558246648049756940603819866101126999611305677244651786049678272905361828886770822024763205569020336904260016979086649010478071410169213853704147542127824269303527013876732333547597362079320002824132946519116781632803560133046260421286174138844461032671980862352174546086967637214800609610096730939822188728554900004997602367717687603545187874840706411126050766141282780049199919929037151523570118066513507736956319881741617445677844825045291658303963461231929647983673712699203566058697111246989697065567131940871495341313956165548687006948838331792924062512224930057165527134021958509064873261557373868217348453702908880575157703707932156828137235680378188590940956051730765126185441001248637384936062098698813386108764809450550257965704262347215545030832954780028887891302987020746442971731582267894921246696840940723320149498044506563990695935409106039801551911081212235717235807098934736438011510747567943999367834879836673868732349747351031644431653344370515090122654592425330048890260381698100672213015569351482326316727520304549826496618300617597404683947206928832009442597444329819808282066767943075513509086736397907995418862628078114764201742345702902381403680866471486576831242838412207928126228950313683442318864636635597066223747329060531276249073661023844626408498576738308493118070070238931530467447263213047524175313105761398623516108296103399999473707721570802855363238931364700026292855876570037932805045080740279834317596298913149705600352275839688287202041645750228308418523260184901397463066985196926098862336500627717290489335370431470599839403014549774562324623163778959111169604130251657427791619152782886794617372709447644477143238085512829495297088794276267517358562989996939234086372672685076381845094737479283329885370314117114517725356213437342877433255590920514616395917876600364457354919497045395808529458369487318380608258782600612512813956394935451609843476370138754675257967747419734146231506181600670878222144885916690762515999415270376901036707713266398392567462944379876292144006484575932394465109694438666133818195461279787678801033171049696456738454757515214978087502582347617963053284748036836215924821309564268354505810621598080158218411152203647405510463627271060681976970389674905983351070973569561723201879087698071765727540156516258151672945311936957954720748915818559610519337323245710601802763499972290141072646994966161256026451166667491830212777442049136793396304805051053658056323262303365994301766446650611330241676189944997473918461683028640540648884928231046953659009335524181467994749291193520854807952077687899255402440620312371314508897297588822893468599080094834735482227758614138718921131454323757898529334276396776289655369291006044757801864629155551595970676755314841818599132462714569556770631677051155229972776492129084918677434596945549428898724542904634667170902955961862610053250869341948761328236009078591985612701937957788558817426909901011505217619924538729096732769281867102444658360246632174075459155293902075308114756491694158849714870872731368338290341309173251102523222535897408357767524664932001554927722000695654688133932011093734688285633039375213777648816358021214916070655090535964427618613150041996080418366227790180909480869695811586954702041807722249822899047391432374248721653298105568526947192052312375327013564502774066896352853541851089605661790978635144778740600003489130778096065462136955872843235072537008276385531415121842076596640415995848593326123440557934184339814027927374411261823636326244909018971346221867297475524528352404584152867157914809674100480879062100827452158377025521742602874484741509437764569315133373179875209380697929617037781472629458116557742246818503272595819861948281796645358074943502929721749385625731294302929401735069185098761034956009866846734955317476423334283102622330345239727987813670718673192917858919043646884698287778715489156768746615899934359068460009342109747876591313078874333466829496227335473983735303470701177100780448673163908014111869039604480642685940257123509316175089710739680199132870108472732404700765570887053564077342389845959334942793987337883971655840535440506571608510463241340173668196614337324410418975535414196686280201318530434874137463923495775809658651285167081990884386847873576100669228767206967174116360588767884201047551332076814013134336850381453368518369808607384354292752463689059056284740885447515558602062798400677013223222604031862964658226601586221462488058751910938820508547725132560037554910363358397475586495491188999640676093939778015899582870659643005816265287627342679320095014750846751430681215699528155899994139725018643497030521803913315110326651872904486207178652310545526249453333616965921212560508759099612116629111401550541756726465110472305121120964854148185485553309779962567300866316068131732973838149029444331287904378581741917785678338241919666898507750048393613061934288157081579692636713600863504276489377828440636747188889646864474253382204635734455471248077686522182367728680167134379262728278354171763891042861438807026118598327148143137767016368261426991166594547363768703041532414359280000940229990976397118302855163113016976771869739274997068638881755798429518886049342811649385869029054445546554837993661850359336485211152710772620315513399359221345418605952455997302707847680335019681263188653326956655196460711767742770014088586035494289643235350987798691043160322041637819693394216877161183517764953917175321978991605112941077596117559119263515053745128134077667585379488724210955917961812022929150151421771636244287154107871361935127203338759906726529492956981003127369066859484343423732021127408465205879088751020072089623424691606489824907206161613898838942095441942536370319848917190228545081307826217313413820647829077185819819959525960725777385875581982977815002760257559999700166676493164197602900704020846624840534527107778707942968874205527762484205837133178234884201059862881803690056229880598353340167510487440961323686159545730928606052876751356534893669708487057304486056680577091439131131489489776865764880481782722625852557632193538565397737464378082294672042190468982361780445904950246672639267543503989272790303614378426285875965308428345188392212911402459938967233012660723206145093200336110200246502619895116831835170233757851454569062539953402933723988351563389169569498812015026121675706350377713817812198806014978755415692357040944046490888371153562836227942609133826578036068448389777618294259086871716601356978584828652156052308449022749963664422620588163697091057901328231438020307389965435602941081925143902113050211168124233347038827917446520168593638628426071367030120695854305855118038334317860652030508705624382526793143598987476690522073083858916477941015486190075807226130192271650741159366623077757242273985776061779814034656429861237090108202747525367629171183669697703182721414180529920361180353461804748190349769139963345514673636913007178884601893411398822049084927381555176183879563243895442210975264424267493040482942326375639652080762268838541452555566087303071953144343027909908153473649994043866739153115906514279366331658032073963303306323679707333173614333421641086442817339308832914560372036581190982693526662552950940307465757326999644219478943892620842155294602510550961411484237346955956794677971191338607164073722407013776284327612726341895474680587160021204710248945783204212332673459815723404806783556451884631979679325597365096617594880796075156917225162903737580102820432051318212153308250612546742162437307196378546007418192458532979360163385000006410473663910908984580463556922330772089065054199454060583779039013215426690869144687556466525422090472795558224127069346743878554637260554164731795144283810805344995836504939523386249143946940347764125172974638868868485422288155909817399476012781496269252750901299494655980758139331125777581534032148099017650031033058946473662159780462162331265851548765978764365924748655663527118124645883860490563750366152933026834735931859658868672789350361452614052334851835053859602330154332561552654058861283933479534789015776905698953442873727038228227922808603731446368713384180996380129841063799069699644888565436354991334335311765052011958609477940737724952116039509882173854679351366002828921645377885427842142403322770435162625515441778327999008765150568039642315140508413510173725266907757611124584545030149905668633156791546392942686131321042017677441295918660003731966638524494167532271831697326365049145452019314292459007170073752302370491627815929925971149735695504273337518351454290535116082194868717501765848195961659046184944955784680118505059869516983740766620870042791431920163789989513573945981404116928127080832683021730436137707645326152223983503611220257275085913119195774467466244797246178896080379539642892175413025941536981491466543555870528391875332348733157595695170815864817681196415204231296546330808001290752509969773176413329232575154918418793600355520799365443760132144519729159852589329708265240731858112397044381630900748893387939465790488594617289837644445101461147224677119555439117968766685984237911241070948902045942202934054464822818068999331079085933729954677203049897903026856415231537424028323382531425559656020912460942317998638954626558638362326305470324088472988849239572052863049171130101121796254639381472971280731870344668150479253116811528808269838890000100632508883839988012098564561986019535943650768844099839929926674924702242270720009496693123449829018345522722282347154331122587365844678338608036918813854235916794158986406011169376935181690510435818003360163123561789355842916157068945461100880574259947207809376758279901476445248118148529496405606023775558856913437481440781324460360479426917378439575502885309536932911945554946215345163852218326751912905809768563152463778267360106816896074277203249812692720377991109561389529671630529009493942559925355405015622603585494635033780658718495378339708807239803802257726846282475123955808317994814098721727598551609422102649306365955861397028318789674929907460443087831671758291247909732591274010535206075378349128014017778266716598983988604707220009744514992503271188263415769997518099611797851217405759243647023127899404772219232850112787177635372858500932904340009978809912171290104429124585221349571385199250859971352407148301440034942388489109955456237795801627500503346309213267700727805872478194861738398935885542713463103956492528215088902776420534105071873384561739975394191893133561270349733726767784693445985695463731744559927286604450600153086903837402660071967021236731107288381952325163493988471272422874766803379571182849123518435442390642698601894635936393085994826559066148847243920290395858017201115382263317890852733800066446405227887381864321712971883772763319188440484900861357827844972748383657735378495677970478036375675412588528012350366473981685149530845782580082162572314901871668364318024850796706427391649030586978579304352806751545729475475495154444608965537792393960946297256528270647163176888133940867824674719610444403116468760338096435760202966643731727766743425294546565683319290267815553489821155793365100694259981982636661701639166598674438764591390199964559857846302121515607913565517542149291118529505658284831163215678220726942297630088910421957919087091986972613069580653027584083101995976029367179633868725925627334513654696628105838908884339573704707943629125941502320853453971025635400058852564821578128964757639142435169050301770115519190890244143418570586484318875832566007183868141537156781210285714421278567549473208942166474151297401038594907712265458782152224241451495176435809857900507252387219813419836673146565144532362094657431772157784553456334140670536509128176557691366139803032437332723942936206090626350538656062641965619350408342749904856254624995249908879021184810344608429902931510521824244649719083648721015602876748739008019924762002263548577721461530577384412754310688493982829524242712602065807762648498966456324558402901052294407605240757514642635068840682427355504897008700308854302510284920413603077343196157443039310594405150176072626453056648613273893880043963991287925707333340762431228503199973886638359195277665517955911331927560890922099737170193055557855945293436457039810819356882069434335955328965605880704991136254462349187143100305626981529662365966074945719744027427270872787698107155395937552319834892046950674286539751121515501575276400514397793961673413306380772043236299586997714345605184559055190851251795383224349339883356422289112123512071803765608595316037135441140543745029827684797826184872041141043032819260749853032863128154862186461460761126752141097460800921079924419141702579075131420245151684079972522132200388650726390504589317237650366896147743635401327751598663583895433789493286363851849310448138263116907386684378589420958074856653058895937492572114507030244730984318460528137589456918230718542107901654966498190535559694638496092103684465707402655887223834566500727293406487414594091840444948248537200558313752899101841306205211921601118837273978432664991126577515168503984594270852875114582232946200610616685273537877465351894221498759013180992578884317523000099203639203987654866820348217788108606957124479786179765020448545896504617686070787948130914420402013938999652673205444792963356173285542824540820602950249223203239311694641151726253428025452522740635735122038629181246673115538572444367428092019165219182594783060174772833099970222210598099475538807246806469882248810675876876599842334021655694833204333898032293468898229858583380236133245089330836137410022816628096738354671106383987027904954061665511218244891119088052273171407968331985088415178978445338885444037210120147998907727169741960427654750221689117297550729833683773197766052429567222089047196333939255308174731099167230512185439385090649778341681300739859380096583221669792436288578372741987303563924325885909873665057620759747796475012732340756995874668351961330847173275028994004182882886473039684484906646269724298305132313789425727677214698742520208650845435102309539417978238791009908293693174720661184307790282805119294892642376857107311742490120471788964944479270570841894715402134045750445935611166727473957156403879659259066737779925376515908880368269673233294292928136771309229051028549176560051713380143986060308288252066601110008211042821988535903108565935932081924844525895618412032495269820294407463261604161967721444497974884177617309995617572174886721564514020865351710276053170895549428765343725650637497813961492214850722383768323285644186949830428284927841968139945225941678483530737521580752577773870223605419270858315043657762555726178592733528347290837699961623931805620155197320255157304270423866951772058864077961982452859263864897946021640038409617300862813431357702747212141915943566391256309186100379343407940981089425799464134335305737865511165643843001548086928899807949057086366973275535471849779592166821015319236215744481621679933255669396426183290895200587224384219003697878198411184790432343769427539955018631032232428653104992148679426602402421994336301061163666478880738494373937811375951435636180616520918819343764795746925375250917009699163672777784780794257723955568250132036527333704122226969070467687567289667228738100920926260829653486875082108472007887592924333060145722417773722189419912457918854374859252392523830868301067091794407589396643231746148030087758994236337269839527834392707706039016112205361475241047522582810757647406638268011383903188694226718573439011220929767034460985123202930547710033486864909245875008953777515573657468034491257293279210223112420580143283518014665751393660054025398174181574054209374963750061566088284233671368153896916994541751387359074595531575158950548062542340986320513816070740457620290982266939715477790610451749508518214937804140539917162521548775130316049130323496246217791391051042062690521861293211065590302322920358177962744080523143929997279306668834875069729232934170087755434021931323320990878519202463865424040340767392773233487835735614552224581696148267922286481318011718530997734061270150990344484469776033963813782297031439412717761458136550888494476843634200766141606684497312072418972169271103896419556840229692231674795312316080888562739219148560332920375776748091820786164222654547981647286731462297600366580151771043942184417936736061299924318171356329459019395341409872248028452648127041334163909378946427882724581045179260990533598403107655503722988591831620592961796462146880260461212681390315536311992978646148943894773268606521321301119396330934611497707586420918351814784240802139221196565667199598080003989334389075984017619077628107026878498371174577020003546850821611592535373212421693320858033962585747572107877871349822438261199243274546486443266234060235433436117982964580051381364377507630392043882564562089421865435409065798435217521390547103586823833834424064092070947541653419035274333572773700847819115663789609391351821150453901594687316410276039204846011828118510796617526513859031811415856220683039882715859614702029721915899367796460415149234969616711191221730471060902885179611002774793531054173149701215781267637471834648697437522842063924297242889204060147279686105914534566410857387547292382071626036395863803015901730770036431995788259549615756538136585774354222606072931496778418458865691045243213290919681819441901114612941391957267466219288780289044988365031629447095563548367998197212662110898044730337811523594891614819113829588681226192255917164955670610817982897797542791994672216240434290101078204204121874295790023763499694614289451693380024446709310783904324068510502847137561432589047904144028235369491769159384684396825115878633603986009641799526255425137680892224201714598584546237203922733905721769389229129488913948258930197442485403630828129959804931853171000995899537271732347098677785400536850751874271429323020758733565602919876232833493677164156478108423171202399644208264973150080194154590465666089371725424208482691950968516279937367634403018036381982273315558638681262160847524731100808085527955629895382150916727431826826641625594775903431977295381196573443796254473342880380587386918030009141223743546621860965151113783910243506276218041166369165179716572526225504701363189068458335380879913901718223307581922675692185431772625528236586008049343023833252408854503509793937888145007262433092828500417240717329661776319310702448390279200247043657002515883977408091090704860225222259896816709139309064155957552461748316757249005875499396241692793418053433196774216528828024833977787268739688989697250587423224271311280790984437971568964378717054061097865673270129851193200421581640198693457743555021761657504719800048280747176765411958755523545377289330850586936518147420493512625003086417389514672315457156474547155029010904687789752632637270950689966112184695260240245054156284053297570319171675527855367528369106765799454113711233435014718374564049607544933875035053027831338334198869879259596587825113547093942145337787957430707543822641306375923850793613551081805709238548796744178778644268441380918417908938100353116562221629652860084077427992070939215648939709145250129700021130366519373685034602107578645622594928063174454411717651172108850337065898254474665968337069985546342742106899014919604724889434468751677428459367893026371161257477905512132150428698465759549328222417115852107993793394447147009767549398030220235753590864665252449389681792878892661762311210418955853909881127086927139187257615064895223480202887207965724224838140181320035829956793483415119485669185574179160492162149765061349267138560248612940753252353731068604677104173030592616269506711948203153281598575804426389550625414026970341929055926598873495670514340771902387732384987522178399831978681987894087195013293580311536237917895854973294727265038729630159810403035169099328142610097378959286603380984156299930227378161484374257478277687142361413470929610136621112207304407490675782104560481142631178339971738547357385553109979814841562867336210746842715333795192519772618148913519671793799668414081266968001182561664120895044186357086756078252799821562756097861916032583109647517713343350568417861367697486517207265730233786358927329230872156968304848329705680069926146621916638174517153888399530760767788750201702937056261074652615194172632403024213125700116527692452523108170107498224858854194341642167834997921791064986432121676791200967961616643058390561297658805118606314887705933909595989464687094252576929432209414171733562839605525504200381021861394678923474265788597283182524969424360146597503626232227654931649597673795817702880850560497318110010957649921644557524788055661774842988164154012583632664686019842796878819155487230354485729712604458712973612867485600822043320102607428757899823535130053335164185846725178186455766488992686469526226408257698768947109038612812509450534998358635600373047722500315737373046990336359078633453493501673511499173868796054889023404691471151778435327707041370577506915571567496916810038812078471755637393597334483718425669384996392360112415814232306213223913583548251141370203780329656511376390255485721382784004389292850698587876105608584707244163365626235156638947677706305914740628384225827819547010044015398565646965057447484393337554512575506183590643081719378293508829253746228451649689534872075066023404026612933819058055804074578684394997919352308976937854293681320933501708220920922402116547553308829930550876479883375562708178668845704770942357995770964629895686814680276651577183194469492100703531163454970193546429577302797309517431532178690888739633470170594345078613099960635708004990147998723597590009404403615262141803839262378490289333000608430076373696638548232604870573291024984355363664738686666344089538994280853154806535154377009688807647659384929466873236010295442957179801938026833947944714525280026459969313642512020695611641305950389524504279831466287697872205982930557731293324419640811655922472346983923826453344493682266404497711986035693342290899271560225945594821253613512430771614362332352252463950728814195993406813803214060818475598925138333329953312665313960997929058884214401929024585467055682341610829717436244641169458106445302446451643648578269510537047660986847644737497430189454449564295596474887731510556170372651424159412315447513698077214881349288828451587452197678181182811961150399471184040024769478382840499112654019523294910876325238138798249902412006591603568418791748446475756534958839739439945421960584181377499977853148975111793610919640263130217088313765926500884535785815757820620876034711816539756199742793148051003757033495405967568164832067346947372123979665476057852442179511302273283545653064140784708802426839813546501428155504507513472855846149292619018287494525899939671239283348719000656414551870221427664650240617299814218422942813523130666676620169920625570975570448152063621025828506195864800150313444944622934748497167872647029946658265001754419521368818839601156117670801087726512391555459619276781851586105337917363230323842808039372089943329695105526390614997548969047970820926522037522847724311108592656790591218612955596819473246556592567002844871052683634149456671246039999383722834000012901486652386338869218104123758707735374646884019345520328827058533386115726886750487125979181109144786574312224799836054861749521592754340457286919048334187231094321247206573257840613312026272731974489018053407898313548060236543376916026688564654264887852673506533659003272813700196576328312948533929837051080768132068757518490255180139538342587023500863802085738967340130007919316750417773580141131901314589871654566994183480359205057256754094104899781515135278662721539106334306337162620680223385444120807212530229254887925558540118607490857503131786515272224874012240613151664802106543335284940221067558469566203530442884096316268717194158285837775452496481487481779067531277444684517787558211725006119114998657307146958026344874311534628861959682380609587725398023964638967440468137523990546792627059326065636594238973731886448963462361692039214181707067284820351189512942356422552532131119780716993662851725562386657950371142224089238567364533091523615287100490649595546026056095011237077535667300646449182990476319128309483398475061835133409135031720589121430453409670278952273566732735400792308955976817694786943979735791252358338705582273112212138665145940968923152296221268521964610669428814561470792231376629504995517771700132720192852824577840547944583460463346567452072796061279679606300624645705615608199528951306411816045374275569493217785830260680188677253660897711689384785768539394343454074820003139146840584997172934887077866696068275090010286435113247506960155777268710330311684031289384395630278150961888028307061601115500655687774734533597336308572657694204996799075028235842576380969283635399452625311719780137953321488166728857355094914233375445839614060969351608513526489400294503227792141484144477408796374725025121101372437061241137432782013369423931559656956342965116231889225369912015119166955423067159755654718378513664536393652428406112618997381268738311828183714713759408063104529413049223238254388133234821598675221709492095286923275219128299039188853152329087575830875826285424033806655795944309777462433404037975593388634493151327549116892302635606920932347188761132550960032423754048814090244458095284145191429349550530953522847288486904787508769349068980732068609949816008920241364127838691367042036579002658916948250874951769575987552453624845139145976333975030037322236741899235526130652798598882405429171930754269674446898874018971256179631541762000655579254567960225709655293785818913694466161045768930562076222373916254366881848717877352763650490932207541498501867991520285456222444755918564040615566025991077236047999620222690685045757449110798787692784935599460941937010737032195746696966832815663167299384594816050044645261178327206169901766218792117774891898695014605378146008037107556741364472187290662184290309929539859522002923483262527335203384786047957544287065500931698681803167591628079035858539461850284064198629288620880733237941602404016671776739982213613106970886914056779207510051385917936047025284866625792179772651767057322150277265376224949472772460313781644916102600360948121085167700319473957488370611223957449904081806634251063537576335906269889177368523482075236156475957399610383787242231250326355201488381695802396593214958744028341551399516211616907327973600422859632729993765159723833376258732323147663950671957776145088070410427973402018844635196653994532976829595156749753130757700812806007351423720622941061729387771942988823089779313821530176016357589146138770914005729681498395011079100335398248305095027918156255496343196405878828131763852069984845831252402724193956624487401471501512244397183059024799124033995920629071636972711671613121975475724413976039586015624047856870369615610768146245771149206070915417432201661233872012156535031948256743255080279609735313896059925807340758930845697387335062297838919703705106322063279877016907736908637231218806845075500087430353844656178630577650805442842629379129585377458146764042865683388599966841154526291531274760383174974043025110456133001411007632206120900190714421938404457392213179886082650536484496742638259127448736234162041385146475652373073284340204044386958638120834671417224810183458207883230216554624913604700724472226175664322967588198807374338784409184872347163654643465607285637896409848047298350468143350315646242480135729251409885422110482053998525771301175974227016292964212638609040166542385047255182922280396810357035307603414541365926513481516700080292064851770638428108016653800378815614551200418167916215084368094701421300668277170745149894906647064305552518597290472058891267264349491027681902488549976408919839389704261848684902016074247917519908958610310735066940338567779011535807275302103601940622484777616120044961213413040543950866651901691636703955762105741162302586009517794882935131359739954214884516230103551155549980093276700132997958260744178280095097068054153638175987199679796995608738822344174456496373186977108796433336842072798920785781850979027630886464537907447275438389211848846431679770244914145207234884422094503408549932910760299222037874960371035196955593416820130924613290781341194406259941443057923240259750600892079174335830209117951594645655352519364592142240314213085747817567529566014138061066524627305309000183517773138637337661234691057148143778265311697063988595220764810417296673123863015309434606233352180405879230063337434682074771196563472930079696607445871453191286820746854602157409896211533554829761051133020592403315646464643142942144985530181089653275092163677992753068966166422536754433135012575669312740997452553069796123060555528445963230231108977877082912669453701600900059005368065118170885175521481839197886094918983558847933624522036239970659934874777387282474029122146645641088394303181233231700288726872368857402205679589918433369906033759323293129673645934876693586418740511262366554303955765698365501472536505065154454277518405330030071963477784519361039261422986798723657313023504643419278162552864884708416598683801344882279607728236140139159087990090455266429940757734496624915104147498492172652378780768125199333728059918706584622932030928161371792505533775152352917279135964588500441219150450997446877769612653437560322294096262657424147112230968214279146174805387401944137367113944058211588927706108940321668107889643775720365531715744462551250822343890023390466207589550274299308791945638253387381345914445347749450097786782520122846015428497891245859558960094092413476807061525749338203084100205468970927286583884657762061123964915562513035229188357924505898917866482449766462985291097064825668545243396386754035916749656615333206191012827211947263238770460365784178525847487509073187445751454406825141954770047928307965677463449775239661216655017073179558039921720412727899186385719803922109419477068219497803760070770388602494362697845006274302652895367605168887027814661207473751328522495863184864186661824641437397871654389126904599159701331968980622427876623583763215042399654637965125132774202569165799517666075085562678751448766430682310089236174132230290314628415247338393103150764416984045885800919314182684091550406223259116488898688013664538663548211204935609685300680324426356524219297672178545077365409220367106614427650813137254147817788289607645471939686341027152588395294008129656609486221641669960139889804440003145127639310884927058726356589156868424320989267331202450335021861578847361335597726040184523933282690688581644884380623450880044244545062363918243765887098178465069187356670865530690851496442441909178235954329007129909947011029625744898148572463179646965386842565666969648949579289902238225524696796572664161507523268382828266832895968993598054539591134394158586754662684231009175658964121560338428660135388417990136681574275106284245378897464219280092587223499702944439208784874813576767303754127945567822674433482988447715116478351186475958519596731967018177515461353107938278605208316426828161444107993020633174941547059642393692221338496110160533647542494611696905141514948681970282095187953492429712425647126076965185000812412002754351571834988799133507160845306213576978246952289215541315535328212201153558940014388911524584351490109420289249178626378612946262970016172725646971956169732975772842820864173291489454146366367194412398413413914085723108358904468247321666147808261120756092429936758884302457541594618759656023310616856617867980928801778479592207531275583714361774327873369513250073942755969442156644900738361781371609587472295826817886379294702823940016094465937341195130407230978611782187942014529023395412575735522001971787553683793421497736911853482269514134004075322714256847848071625929452466875402937803782716652682955539191685540523651823757976572459283165708844117412503307000160422908633796690607061598877413629975198355517495492799599502716587283265853068715125020036976214080486628956368722069825108259057707725983980698461015945197086560709154149637427700931108362658878878330780306778623156126326507259890409987221963920123630879328217217617807981797356525282960536474452632758542017970045505441695405943559587720898023141157564301524542935674710157018299415652403100773886235901118482525179329010784185882255541259538235581315274439728757443755032989612888859886903034149912119094679938611760618385811538697311517878783701685476837497222671468630501910793324616808805459809185728133625165048982989038357912664771317324384672155628422152639648916879750326289793180441839638310153109973009532553111501635701050797821513453999656458589821063098271903114829575932122572113702864142550799588240419301839232713884432994791481049564070535400912516572027290148806527712469039789678956199851908585512057363073713674159387940198623401555515854131705772027599510760948092760152056538266014441732509399576448402538491215142593307925513019499662786224338795580421373972765727765237244382141907280671529095567744744249870492620242637472262438884596773796689113575181381536883273240660468601208797616298882872105492990176427538262274523499500958129496606201325831807362269635471245003803945702560106664233382716088255310949359980028047885404309618836808997679429967858153135151444554341464264920357648782337792254112412499597061252638010446706837536716061141018003881711672609124455396476245469088008711600784455731832374286042087864977756170081010196198120208982560042405649749426886942703337420636375154471585312875781833400225509321388810229006874627677590174599568911925334949450522446596586922504158692771188981960560564936539171282784644428172024639544082305290475473748255696043245518295884905655687594002289618048917691741464739273185112354255002509236451571286278145556215923566331793758096159893120370493105905449340750841603744411082897753535006038592074892056806911015151226386158318950636811493717949422817228804906618163697477880425994097186180502589327244502321528906132932727411358891004734012082182504005809848883637458637134531947030628121900550528500814739071258734247947239349992342838596372497315248666494183574014657719542765217967952523504038221016521310340767122150627774472014252720040387542180979853626359594223932010055368537357942197886454246075343983600119907201673331317759826858247766291931199756300975015191812393638699837485636270298339542037158228722538112182025470459850131174274918641698313778828718005970892916241370078648204309694754505075203341987234869262790072722411933894496762136920318991457991176523266214225616155194604484753795694423185091212256112659290873975553422999811094837630531866679254543583093905929208235980175688746398829512873951534999042686306089429976574175540099308530331012086886773122143458352122815655635540189871052001266648818647033930764773752005796604333008143786658054228026157898156065205276916275258886224016257582184440415837862214706718348401884493408002770845037277523506468965382686810050184541397304455892990701679505711367041245095226262811295292239469761853733352671604441410203268294821470325103701799863577294491714126438712320339521751542650944831026557453048763088993202219666366912671578459289039022404312790342761363952433490619329216545010665528988529667686577118107238089230382915891994581809596174388930293676827238432381497208935038670114654587471427935450293785173549094808729023072301441712732671295315006392908051392809875941494058865884635348542522624315195271476191975500938809733362123780321654714437612038150949823259270338654731525571367939806045929756122914722620035225136023702471758986096097742510744490636710560557697598067278198495127869448646927581315491717347317876566847672159561620688444054483987833605875708074102783383058071415604161206030931985095737803572467992201743262571616154464499394245991160360153280683409170097196690872892917166490164967419892710852433313504268584289208789640886750010155279221564371567463481542546896920372667084035221136862968408824358732463690402371532023168325886404800134587637923459355845620192580220459716791201162881026429033191929370229230316683712698983731079835400203156263820415476824304773078449880068629695749241370629508969364579469880430808772147547352153771175848361259751020439637714453258495059470630940874803910618642897330618508001358922936209660603147011244628484864026357972275832423249109750039606052504458892009826038099651002702139553718118416171613904689757163646059804150030099081127723189207568012791370416722877555157188621437565073885320152139644957046971830858079794832794113536116474841052621402669147925336796127119046417228394313148592159819705890939895848021464744808408548545874337388162229565899011657399973204066179086475304920626652925736304777573297273102388794714688566254541402429990120155639785047396297523083018530312361661143017766888404568105560464687314561323546262147777863710682187474701115925568342700455437747255928637908006430608624711580579822464401150513712863813750194581401180450442643244555217954543673602538218047157594471965224681805739781669069747568942130025188179401445488688818697200416016682582537406590826732617508129489223081867329141126766522723034393200709564510903291831157426803287494038140646794277383062565238753206720668033921114662502963912023799362429887303724983684372427262807273134974325191623735430026145266737727007028974424455390427061118072332951330373654311742678127631258182141058688214333947697668998191695067643531022641449036494822629018727290424611841376759490790786902378057836869561524381994023102499822043178946177220935803842093253816858867001671930434740003359745956027091003753546417814537737382284146497853916749581304962043880162252075813884774080493981765296131503168566921510543009353240116622970716424285963605890628962045021082482618826335964779760058206639457783682588920739813861626351226563666171463741375302856565383810547273143601423135376478872350547237927713202053519437378903531033965777487664329603976684332560121727082608261030978014064072972613185862491280010032141206617608770952682102235660843896842356474814896756729839102230733009298687698604008883335730719014213231225617682182873775569176294252164502863888346068834601433653520669195846507865834776936496448191789852945029468448849565307637220130189028423756662759251131140207825079603836078131774167349909960543626176971311192931811574670473815421529362694066807070806493510528295840098785347905385478461370675501850082213549030180659889193010999281471418048860475900942032841529084105399684376244914765208153229117813053360021015460588252673273893993093306881266500822956002628207084052744963223578660536490723336894113216007506912574118237217712707610350799624148101152223284956960909110571748494457070818368934762189583580534058350636850040079421042767257855108985486208586403904151053178374724961283202915923195565662123818378151800576078613195759732526500790812121992174413364972525245980806799678871466661081781183978883552807112670899292708586818966864311434772122684047118163235229402357525310710708248857330567180090855466820969077092981240880314525280378121438995230180724399139229965367762702006550481601944072073953528601553637518900571400212052788692167971177313881303954118215947775203254602140230231914489964490210891669799050120079904898673958077281314856570732817357736181089910282361863997596354236995476484566516529040819841968561831349624311791646530050549807941311821214540640691344681339039107164829299168022076516533853081211287138216185892607613648661556957337381830509321726039091012487540063774607521401501807004807578091966190880823602237938182333921684434910304613499998867768170191977294125051208678873454292877327821166295410426256042991845892372405488332635991225241287717495639354690314147468525554264086188829744084820575305205358374340621022305384084305162256047003330191967739076693167092654298323451427200454420031308052234707613058920595647178318485089819270154567259902251582850807649976444866651492285254110002844803943360788599401739568840354264874052023252528781186260244279973179531861129352534900673414713437445101599548684870100549014646782328644241490798247527311446583528068322814795570387652047694207143397400351261261762655703096447336753166859988630269488843980955171356604167947705778623432844417253697216240924638508411158073224271172303836020233379024968949725092255249156851221516469594175866650972873106251747202844896981028193513718869122738553917169194221435888199413163663630243727233993214954067223044149494008739801649823754202627186179929300526940703377651651869956974234435883781003612690421705191847702018631902138063722566292876588740229613652620322016724149668969537045019326131772005527226414915196883514075943617461784276944469717573634533850195303338439017310348327475065141678178912644249282824401908683819853218622903014446851239613370761409737326156913142967058071866463822297207002176034975206895721094590216472735887182834512533117687669353941631090838567609445344148240134945762060030368132992749871945951724209211482000233975299416474720536949839353990811681296861201896847404598353074826171349871675543576910563130988722811207598809964618119635484999827333982675086195435296738809024036491881842593271245168026280039499646620729689866718964941273198458878714803654903533576419498187403939117360221679827187491585644902506970934633284929379717955057277964761576594733086547427621199082395605847195939896487293241961280888059019311750456703648010620727945656121798740563341555400167918369702999605822355660370813083810526108896111918954312519144006514501793108289072014054294551469405224355982399983022191272652630067198746542730857688868939036368597389824698367357449171104167329698868470057017160343009927625864920520564818438698944511201021965846407366852269893596642808928830043362940736718339404598147613993942308231034713886354662201845263188465865367106909152905489046381859469639494562597984536749955272020677603398808638300968282263044163581143100949129200705679166068851851616655077411219792812871565179672962388294463339739773322609368537922072775060822767480538931914717338049239232523807040436273515544565158424357224515339969680095287514635275416827408511230877919889980542154327593146708622698349896157211239049763859326963939815549872532350659560510178223046327120733842232470326529541794209405792443202515248610640283316211493373510650801539685300741872323194540938965711820470030773547621606753493068534769660877407746336148526177476153393347078054866301849132014479798316979228541070679888317704178651144779635820941296316584462078532387042224532077403163485627920282974260587335442505451137390108635139588659292839775894655655318262787093467018991189287621758381026793934461292088178401606561053904340175935125909422636769891488622011121283952780297524334579762571252463653534392314253966684353774131222713686819048787006883500429234839370266393972511242353454215066129180284470497641930159586497904233149230319118376813167009411742785433472173137506346715807771547502457361426636536614105458243598251551163029498862496288916863000460401485713725918320155283094157872630981993881458665945367487187260139442169027554365487453530208662445980750163872786125578743642800283553938966284969121148071316438160626107937029586622837940647799572533728690055127709005650529642446151996639624019797286164100316389093456334162875227887816809547762911186984214337610883044448853055511230647528246774921402302911589293902286548784957877860936197361994179581241649153541923548363718962309592404127059269638006157857445587287050903068908095928726049788263440109539074948382942394343124790048049115175434629456753633753055504349889968538572979879772222235939463079745160182583227408904492391951113108140664192621887989668914222828962935302439078753687811639598927844015662821422449548330354196997925834849571617622841352650156806798939793233005119157931708560924856268017417381950336041794227759462425204221348389837476271546821742957647999799046080431939216926223973391172846108271307218194263241181573756536885885001369976726836597742459742190117832642060092673910067170262303809055502190736923994244925889999834082410321379154870288983614452458503217377996860843849222351547010899791145678718531639090655266293679500662195718281664781540112602426095663551479658834529429920323092963488046052314562161622304485815037915764428534793843711905860730686652956029347912541003745088666439713287363225797339352030545834735330169117683219731097756595475925945594645779221815426581641837309152247558508450695354857725377483715648764700458371844421077048996236605362529898234170315684163635811549259394630057298892919304737704534881509453228518190909788994886257878062687146934734079854854534959765433414455176023736230476259207864558206109031717125590051369325446086069669685588775014272959717830440902154018174887570490718441696670243835253036491432973870865696667467948335381596773789658033784638534852080139877351018191361169821553863559798479138121602458995314397399928301623032582431686572140839910832639587104114652456131341807019130099029112350604578553986621543546636678129540073964990852787761634286100022941781501166352737131731022166364210421469106256066436588958879797117261147972814881331354480718683249052112798874598933196717725309843925330734739622905239423200785684234132401923458516103725841274211097383353027433527121301838861290291198053782125043233660904736052136311347901403781943414264909151568300327308823132724736893794055299382295148454457985506862213220829089389715324840479310700171545376359770523148391573364596120717640827197975970367406498085977401801343363740389779586905111708481528517012219892391794209561413540071902172999890882000641816110015827676401073418993660527963798873935863755193492614774001263175897443025837201842769306889439627665107139707157835783059692302039102730385064578884660453433582345322812944917383364121903329939920162529358544324035623891328518524058156841758422205112566373671351013989287848832242266737253113547102822925962934812861543892476628862221805127909507771914854824760936838676368357307173494155715383304130637707254069172592113508904749507893353567360885619523003196344661071545866079875299289423017588825427797971851015299138622115927355522268376873792517494312400951266181587335869866742888614774383221234858015017595740372920031459066357981380352934057891684234592414526793737192808223705780192544562887615785974657268691195860643745375744950692487894362697713635629930155661478078953423810152417318068952376697814859542518110334526431143468738941034859479277461519648077335502420228531453836441353001033408862675539095554229020586402214292105297222472928022137744239869781149739448722372299321827310589263445879368573845819063603417376822178394623350649119353636213940491024908308774335456251063611519140490247537205516943959565347508646801490457579681436405284856357170359959303210414984451197801934749410088178695925650909178615595414753497392768208543295975931484061127955475131802136317604481888555117872625889168829997771328518379252545085140857512129775966755142755488978181584293687507096746466379850566521647734604376409427356623902690280659995350753863217224695392116848100173149243644632944882541760537829773193036566151076436438634652767119237224626844220258928263914202324284870527584517223185275360038078619881737974367425232078153346283647925121637520013288103532357660885696508529770246136532735708378063889815299457316092600856526202432781779989701546927640885931319130057297928343872508232031933170158069358295684497027089186901995263020642620282446991148444146154143254550016790187021384485499584012175550684851420189056765094983680911953919468125122687358763491877717132047057534767936143803023889808032028033646040587922095725169987751012220101281230107761832754465464075252641528753187654302533707759796881015691266625625435367016393319897584975849800956619989394372922416045286806156619559286931572316727948033473519335377950315503259405188104989678945889917835633249130035199440927711894188915655115919309883794457191671220437579614954173757393916704590134317872574295202136491717620692097373743027492094150622421407529905879242409764626478871785195068545643803269828608605516010887627838140045302610325335343975173285059006582787449640370387653195020975919881042813838358663726250894318183539796480805312223279931535462681390745174817780780870061109684494687587315534149373221281879993915200648774302985299350925686960733270855369094303081201487744804967292394895948449936499303819364362128314401168647792266191147795709172590778279917843096088340637243499925059833085422258610697101335028216295418744379981773534790507871741767582506977663757337595856750589781580971896647560531179932112820653219963288923096771803136524561993710528796006225211828033955584947768891415854902711442684805418680511360444885045491516944617955730907961777083544146786734855706381123587644018395792338586316843651437692236497144235713988916624586621247465028229536419427937099001754236472418625660988371682145828004024397289099769089557509282700243400397211636939952791403456395289063821199300842804077555197904995679040304605865207671319943895712165749175561807380094891329467382221171881013370366109747452004994105768215589787193230875001676794730352760551233064235097952020722024406412859714446748267440528159425031631774857536536710506237870358515747670537380327299982689279999565761229345799092229855231603821096360299942862008492678834282234559629229960308738955521766476691268259995085553134734994214031897998980676645105156624801374694876900291872269747653714221209422419867795358390321579831492709729355147247526064504485362436220921067172545947398944867116138294437653888337319391409510120014675790712815125679419821893804180366049018254442588179395381323480881390450552509495109792615653403562233773535930440849806291429937689327141900940264371648896637001595681977231507963048220335696770313004538134350622359391241787760352736876190422372859933154097802927169615087760735487528584531901760697915876111202938785043662542910037587395163269932108464333108905716202869193951276295703481774807438732193618769316956871754255565782157594629638394427145287024713126083695019775413704344051986700351762189790580014656637763901157307150760999907740231440438042394577885455646661300488379878900971013205821930496815086429492449632807939253855169370843352972177361411999365362571652021435543596571023252720294177934749928534109280057138730094011059058014385381679103684929071897876286343837084047071826992433202317820821339843299183851100274947271369082665079387155757587031672902141856679402411844828607541266758538841012517362816873268682408412578581499429779568639498144961537267893928427738453955566141609952487950211637795153950836753077965408871476224877551015354726367140718861430260589993444548851543733875488678770133234627352089407669922069348806809014296343179020243651818264954868883039558192673801683637734316371888810986128033158121459984800340844130579415885393003776656104060894458190438782707726818168564509831428807946111263032708564937466936783897150835768709291734969372596750994851958434961033070253063797462000167837564807525982452340731552682127076911725667706123360857698784161438393554342202505362312403066706680306160121040319248421901464187970969289745699339113130226574975495241435053932305519159272655452727778023568801379649209645709588717630201502578650935266403856312801600934113912089533705011250720717524410630503394235546369277469362821832117037161996773281596722207247685443470047700341859832524765686752155157760828487464006726881066391027063049471372003626832224430104186794394234023951100771228892842768338303669745526119503209332493884523534786452223213674666753362486860642460281123522663391245556394175687726094192919040750051294350058521703111108103900286760292647704938946582865886507619192582275134532184589501229858823441951029575393814978614197134747411870946225771238937627394965687641686997583699816641806063304094273574783951390079742971970621106025576924722647014712903549320445097945905762405287334405609984675453500740557440041222571015544370219317114783667694312407652629971949564542699074365322535609667335980545093878270311689798659708433481436611762517486916447230730172818214026891860865106339059216686597752878853533322075637599827540417819527492020935412582123534473891923602669459198094374034283087144491419479593476214638504353375910375327125536449166553716893127882983119525310543451542595609587707854711425981585839972419342944292749354580552117281068621088077647135502692712275099464726602031161652805970921258260478431328880417453654155578147322134800554775461281273198666821739723216635751546631408457201052429312348766838511133999314023078474939758825452655794414305611731939771770173792057847989505845392137218808356533973142664621276434819461417250755834617439771363616104437070625143313451536593600987609582075864801597019957101989817734861323760275809446649297053705931930703013604717230132574579051122401800367584922463880425439039535793109932208428193506554464010381951364127811695235253634170350204881721477468650493058200791454078326024954780204334944810724851357612160872737707669852495585542779056614105688483199828814034125583452164731593115300771367622050476767093089920654825195465017042432064446567117403618324326504787181411353636157068293094544078506641564650629393545351349203997617728784734970409519569782859305735503128714757311728006074460233474052158269681628935667334303803995004611227960436880621688275489479719964701466750460817994181773510591856122243540113686744601172829969209848635430449666866139754557129169119643050751988661672800434698030020580357081124242090445220027762140767773049210114497132465445818743138854941308531686635669074966771234991662928496779562033789507124203890994963654446866161867423434557786184826709932225328542473549205401341254397402989068009150779166134587024480979216312074472759802963725618559701760001939878717618656198242606626427472219213889571289399775413950715711498909293307907257415266164686576688298542894879871728761127308737773367088599613042307829235589889811131318486044896971400415759592357812487563754661005177377582213101718940934177018912714222286033273761942212679413367390328306047821166862853392006900312825889706095029870212812145108006258425084112008668337953217817562219131251548919148061106249079358958587403343989590888409394957931525855727582094748730677544977894591190483019696371442891818919896502378127057310148377703170076498055188935456343468889024430953520536160115257574388681583575589933380035926918182101726413172743198603180232348027946549539164941689204391511142719490117050309555356250385593037742504345882839637785014088491095713089659741346056679487121586470168734742264356326862824868009613486300981481919042121527814232938472225195122900005564628821732403441372768866199676306142763258759805874852325609367261321379613098947840873132421040071539768783434818645928762177144027821933872196392455801552430141755104836660119167650926701541957183144702295851904953483355584061793694996625143475915977597573946293287635004702966881031068760304564561775681530137346202015687485874750026677696215199343114213987501488947865508830158514882620948509782673467653419297625017311009341403130183172760790306042958279837979386485784872734089076783269450547243540276414720103180772366583726139482016439413128299706163857787438146567717001192864701087981240922037500083987465772549517884293231329498718530731991243570975253412421290238023933660302224428143452422918092509110244449925639997245812430593960864139394529359347704353301246828927495410046286896977840112412885845329492984490363604277287302058688664838907472065125588817015186754034580868886322504508975372341258605668504842194640114518077995936382347111569558531423279311598817869883414137086060847192928862435121921873300836657691251475966699625116446723222575251063208643744567149051019852499593244483948443248539253592955752659859649871004757277045601492813309668968090757432035375458886013721332086598551815675666255711376010528601512795861100678934765413336212422607143744985475238157852972311634038099357804359397757228358338191218702948281497403293545837579550635063112684556409897371041535440822580801400847887201341165455354517283447010546078275165295882234853234806666566843948539168412265547777121886737619537780235815799133103951186888348793663918384032448704694563251993843086987780477871952620725637599901729039105178668465424217898291567107650634121229276061076727431919016008209217816384051779096018479043985933611788127402972972189163532573590618873332628908484141284197817780507889184573262537676662671131284554589045216327842448155839092606508778374413143657131778524947734041467859092853375639053408306224106021913817283026403757631419532546945889318520020474984929577222526678074588751471165924225688297797914215358984459826646706066232031661600140638013495324906207556304575267216439863629863359948303406254663493890443538799995661288689783310780815592234265557762424307966004965516700827899235932880019468542803397309079118019998455830696376567359733556159133294787846928031289874847499886565178532566754829775223582346284375886080644846264757415897660420107449987635146497999319815298230838519137175319761160541797776260270970492488963744965208585918215178937932848897028562898575526670103456182762497459032612475001428981790606289219112503282785441074626730315877266976083136536332515759201478429874737269374748383498794333762675550862394728229552707922773592199205173300893947942489072124354381202752985698918192977409624645954695589400016191321090789955449530625102886251203415916980407646651386251476830185256500310250250487938391260592777595046341926902179091276371666640385171284198220361310456674180011183036505187011196736878894190723212843507939789263520369132133348339255389346324701676346391887713944063959073834016409166761833535800957442003032611755156421628219721381960735348526793333304732284785087403039012957889418885489669821135883044765045164838444072665343538089166549038082431260144537837737115642144545369410977707229172960600473968930708438517601385408594542014175613873071786264851286369670325742554105444941709708816078682111777337891072528866203149552407134437962418483113412532032284339785295665381167164304782053630563448292063777384713863293920396956185148875836515612287399577831415063800737166374705382740542441404175130652082384979817485942195196455195213285607645238672022546505140641398808460858395168244719527064321083800932713376394397834741622735390997178286086169508236035379278839577756511850688606481673904993863557209375340217384273887067608273755744100209090469489661927323973916479537460368977290854201423687539554326940361536444424091107151910614584067113771957882579570897939797829736376695637884259605639813261378948731806687947766356918479333110710031927477131589445787946207585930371256570591003902373394355896801313863952760394853324674739815832583046460098991778207224458264964791347338681278019470581482072496188613743339943811858219061083668031294687452355371615498647238890167621621936900186123623171225372101009549266895818516490088758220771790377924691788208249569533910226757289297020734172293506539755305249313359330077847549963192782494473005461569727179980881679981718764029480125626909074831675848544873299009604013633007712511275377354031306872640083963819568983207096219404010632268085618630519741587506981413060743984296447763401339218000714375621267117000513859959036312374758265955869108778400472393544968680271496040030626909564797204170246828058853747802206930798782745721794930796325395445466739225485386825664267569379010754185899011697145291579472195671026595744586417436195248332777163243810400357716971952958308025839393692429591302318061187122296998038407990455321781469274999640537895623693576815974338709633539569988422399271725366363756532560485771149871723057358830379346535078981534064104669971448244343453285251365877384774713222483365559116599031464607045400921565640356766216502883559484408486404620048303325391780103183554380924766508709904916687984414729589898124102986314400642646732110297733613826303175449073606568783224195028822761045066032430737423968571637142166832109739526505955577744267250959372302933603413079643674633425351895179774375561220586785961877176243966512007449134152989536632339530192450097745461936093058353775423457633045455573069049830730263891034392648910657984886368109133052068303498964992876725477664199371702562930498531258370138928587829408312110957722202499307794304239427719765660116287738375347628758918730529348831424260165501823899878609180169759173541443942237587521193022455686335751823240981121683059147794575521293715648476704674252516880246852673022885246581384777225771849628527989691048000702147603051453935739026374368290379773474828132462492603749039176332834939713668294070729759314191590280010391095372523530644689776554141527545046782723451679750681087053612640906361406583974701486394798255313983681089950615767875161305585304259646374964399241619870536938749157837017126421630245912429871210617895551129141738119871414700915215188259605983693673300891747133651096884957930431016520195182996858450650797538294224458202210300244482018035927958559657142206879251502959411912996726388137726276625067848846323859268300157336449469294160018057574628130223959589612905828344805038681779164352683326269412794583280811802514957899886892782604979914751031069857598551414597883759459059546352269400769422402662984381682216449996152561600335183401120455595462569302902550342150878005590520636890171808065269817339406229930935845451631419581091175511087689426665129947015674609257366399127997212902982443111868076341960167060232758969249674613668008313427557680875971237819912623292674025078193060156382112719909039579580688788417701375237176781602383515871288080839887051330331022317528744383758602811202392994415632474300961494913553380417563811257084852962265091488996906699224688846629014571708039891551909981917541017229556263410068174837511379804726572919761477455980903884867476173736973301398504868804959971467599819693288411693446632262104912434055071602314940870453018588620551682892755855803515380505357124159249856827997215390816542569389475616684473923429835237191567201062880132786135432396314385299834160110347027564545081100168763544121399181205269767400184776546057542746341277023630508063154868805676839048342504958675344700979337325783210328441904122994850930139755411022276535783582508219948816868220533795223163926405544047548496866563678691102760502816982719130086745392850888781176705394167368494600732457683537720453438819829220089152328250614957668575086999562840071951512027630653341985143007505554024895007180657893380765500873199127252529620548187655425999727432092081638739193515660295967584613583852781685802382118914264648390493401059507659884910590139865653213097201618095644203575425131351480676578568382399093923360933267217271650822527121199439463218968900042583605121868641841047679655027281185347648384643246058980014245793609103171069408917713243446017633515353646256505511249882338508843964961997675259198835318088421731732205260332095312162743587908527242798523346267773287742471683834904727545348235866320861528235666826917628489276650269707985633192139647443239612488874003714503997159981169987236590713007571286549885347550400883694836628198415696408636986934001055935460035985550152216744395802065972129678269839996077367527190781534884916649176374476339126272644081803005186039595861650174702258087071107464389020713751880539016320702294501656420192381211671647431608405265426942314819829486331754729099972504987828193609206580182117211937685529241047430194722581075691773337306609572101689948732450686895477844470500259315974299158556814013257258173317567120190335994218878043939157271274371683045250609434232075392410735962854463639469529393394335131340831805908056307859059800711380465608594667534745747977523098325652069915877456886541897181199931990851686035599944147728401836377364827591225506011524901389793596101988369139636821919949902421987554713029290061014641318237504438689238639416368463195166000295810174392217660448081958792463441921637338422267782860608518732342813565567035900375826693971822936993109839874781424587428126967000164704225513484591985154672416902983030636030530942103310278063036931728999043226287721851078850421131879190373119390400173666726138170374377027900459117964523619808669047339295563101066158776281881892374953549825623508126514181124133896155907588127145042930555684009381880624530093585174234136683719427788944253950359966025104033447177940370608122425637976506602845147519531771673819056481975684454951860240950126770985777660199289322925467791608838821811711669409712087532962971474707496209263931208497731594328646621307876275146753419855406317776066986221361117545352303282510239079980790621098599999167456641439176238456762081610657346659958205642944120225699941871467051345644065979470283345239436897053261340754523474178529015360280311249467829087562513077570897949898672991809022097831419172557823523973296546973081153130137123930335231831488638724590735967390276715188982112589915136280333129843288357294621504874435658339919571324862193273536153567743087689392611517059901981026733235762295557375786335087704186786536223624093592068459795341559844490443242191272140093492947122677763834549573453853243670845528311659308554236563203350058246821657183177296446900365881891799515881007469160417935399483871322789411710604001746095185267089632287765195311350304734182433799928161366205558434542118645699456410669600342155268011473054984864688476724141634819131078497647246054391713956522779252035727936513196492606385564528076780853214497931899037917713140409065623643907615885240472989421047638373570727022588782639348332755555812994890826350624195033341088694427965411935021157987736110952157759997413260624190753209759572401517992262222296295871114669058393043982287627263268709020147451769302299161982005851609596443581935970276784480283830460383532143538494024857404417256796632279343444614607841982959722833963876039425507076785397323305307893156157833470079569334869261144368578842978029943655182336594355669720142146600797566400769250008762953265499024667832757409280356330426274203916639318141010307176677716205530450810469445587213609812796014814091491954783493894581288198941296346551488958004106364940865448310586913987090882507155026250332145445439518704540737156562301273831383934143786796000965939537945013247905157784989867509819397275006723616905372520512333825068012923084870976372373117205013065880597174013239500389230999881242230072183695932359296495216066407250296937599827429587208069723842962476927320206533471391658855722950878351196163206021183811591104453348380717041630202255558602707852540663613612142265581794758456613548699663252007941785879021370866381477290271971964984944126370795983141785328584656545308137698191834211306183465264199879300480174307767655104587903105914666416662020319279967532152369142756786835527556594469057170397875477935835321244823366569652482484044329590511110255008296569362167232840070890691819652454398274840317952404114473499605199685755399484048321743337973079791613057627212057747262851642824532909268644230376332284744675697592378700288815840195610640497554705326024659453027266566526144669411167056432752030948867733169631908242357214028055877931959843132396754214095461905411986531902699929226278899160546629189079439682743257553426598359811982676438628113787203751011055108636534369519139724372655847770702903681006706098974140220434824402504057345348102185623688835906716301738513421842127155513694839758838626230753580290302721891386987170637324564242544560510595443642973519284160086316938915804187384346887049753454867910674374243048118565781407570349324295953776157023450959255659784425653618772659205701153956629277325003494186456903177781447664490662314758780238347376380917374840322100984226386564553495655233393478761711618811148347598235709249875745185023811382733752925255075746120547019537764097799103467541222817389598905019312748192204296443182791201301628717811419667053839814683992407259487261345029767552079923638834583195938079509152019909932015661550046033471002038462290543206202010471824872441636956530721814641459179526534673929480987032811834365792751497103016175975289187372657920377777132363991707189985708855898044118811056747034457081518391104506294483021316646353765678922398359050688588947630959094600761233374357228767852216466033983116012260998813880789499782450589942135985954362308917617999259193665115641971879350652120329974079189366312339783502070802717503084288861038709563150854585220268675273689815803638815613827445590192517874988068462543821194116200837043668515059853188153374565323676502376006293089967776182765615715521369000178067138980475361900161720553763164076162853064419424437858787950520422101725996491727271973087239430075728746123966354598491073563113051605859464137393976798638091717765031341142835579551837296360533366505306958447666878020771382881387988368770909424066020633570180278311990096423324411855108050920241231165832595927116721516101646403078630293843898649603924870772133453464026251196507651528383193437259952630996970937866001120752719952880861951004748460546495786159063248997056959350775494999290237887371170373934947801437994872428248809717710828729764998245336867946583632342173154079438762723528894547718906100126130839125009984848250721412371715080627438471579566033301650464621794914090997443521598126424959696519403613758303077129552892972978473834567791857095507429493781962090430910901590382370348309847291728551418869790509422035402646202781715810328165168863423458454533252934957032163733951027442634166220301711016728593310209444750537893950703503736275811701773123893332481266783880915920788231446684365207123353334564140945269636669073658880465794299817647947931267592064062279856098768048008852096439275265873065663156316845311492924544307416660090781296295876516200006534913407013686710993894709094750161401535196349576232876469815490069815326039303467299847178280485199915738536387802664576425061189231464168842051787125480094405402411384949975082248374900029176271141117060062834826511979525114577759710728484388731995440157176790412515357687003375354269628833014034829796397517897013228141792066052098485933077701740561667773835083602646251923344728456105764805794601465949168692339232766008120437792889860318715871010366584461229402088544077156658620237917361930493650963659277125263095919869703132807654827993945977984080513647167398945737064319090731746466652909267148158627547395092563305444088035823338662811461364587775562093959013314975563856279014199359461722193860253137057946069536297275200660775906279848173723433162165047533832128121281067336276337692464315044414565090734882123907218939219547869178551174495815836038420004725453338103520011730252992251148977874079555758644891533978920690646213003004129569842259429522601720437273107214307837333475288473385251920390293547128457422639863536778246864835877317569389161039939382040780693219246722779547903896794142423210953364303723415966311098159834994521668330213572600608242849916300859070053156673442260427643153367104459663419204789388323314530195926001733213216491807153913051512674469169707878608249784236259810967039342710999508494065257691611955531134199586529859515734025026536769537499398913429205556934316175635459313529838573753915101814426200003435057737795639322866312810865408314051651236885807710361840098361808600071922139671692312818450478747095505961439072080493249919077526529968238473008036745623861261612091498912376982075462056858527610690334221366356747841137263327962603158977069384942161945857878298519778321819186709386476264192120457749860261398433011474248989753710970500727503161143698401495492370327693604037309342905001281365242499977722867256474321372324674082579009848220982272406238394461504287633467475816723858537230817979496100956631760603695243973491836815511924213269146977958742289781655076299798858156686566996838259503610689762100372590455895300980104150359585735379064092472032679400811831871459093607506697663358512073728939997087790203562391221076596029737652423093394616969365672808361016910025653648167553347671956307227315842623001902092025051663584148760538441089720028911232727792415491783694504005660225466070110536606249103625069643085447105989145869793084816146399947315075424650863637559643183652200824205297572713666715596642067368981796466181302175257039843509288491356240477959821693917404211930762737842533589849328482203256446093888816861205399011416810411858256875435386899563779497494403877376345319763500248920556874078498830456353306472558576162830680991874150200476397410459386193692121353544966090556806971009931112157876068139127354335836569620340562763379905335688611358781317707951963682243525588654423246333185753524571245959829058420407911197158306992803144046391003038539324584872861668451735052272523256379923280629973603209170348840597127456274166248525688013333535954776002395540772627008760485868077280144278059268173626155530413275137061477046476442182317414783128714477062675636312391426745446595784766890438140118167372801836063968797081451759775542165379593066508348671130552839756631722386074685448266141857224846331762364722678701110248480980822348075449664173238078124054993318217022749646101592907805281144120398920955864543646035987795913375162655985123102187780512090521101793415843300660850170328293242349682710200378522162463372768191157891946183465884936480710820642211910970092697206182170821760072031554619764655844080762872744497341274912898674096900257829855993878142587605280454172361596226392465157267978127409044165050141073295040471280875489624631006816242163382432460550802164934287215918848721297634946567312891864189590882007110169975555492244003149558067262894583220093438530444714714826032843106896310249627859415021257127845035327206092262233950001897549557092797399398506481692772699572153771241331499075888127072508822177654008294832077661048066418113080325123307770299799267864567023793852617886848009973190485855124059832020109583691243513761407845543229037705804126666072225673003420979083687172851746958571067914245782410696382227758464800031036459706647149854569058119877763691924929144873989551336545819181659497028978962768626893723494780164874946807917353983160669492619006122259203872531114270329635815819314047734529196600058040179456451791720164974387666221937898679361923073459168646784752325890575250690306764018055227876232199451575589041181554009949058076761953844477296804913628158954396884229024842224839182957014850116574694956984331527401767579641636632098926011497633224522483046167588337546857329137518210192792682771491308240486678571118401899041558122529438076239329726004758032533129703337729249132767136560190198236765556137524551662105818416337165104449801251141049597564623682770432958355584633642852581191281539737430321712891420399697042029470586723746835151325919443392839337201265880571867349533307538306170823418369923535336515383629647597781931006787915076758343026945687293173976094460099387183287507789939256280719938256618955444152943962323168568217273947708073373248886293232375471319645409284584142120852932398872928028110053450107307746600206095390082254543565213103604999076745987254224978333272973071000252003778439590118042083820399021415634490817646925034931813712006819154267596953407850356098876275938558116729566169798280226218782658377685017137664160727732627012048699148731008993640689975300907888257533053259347958358225621387169984938143337003288888165191896978395670329020571126581923772336692482490031769741614490347560018302880392744293090399909180330084946190038934090761795142099229515447795655195613998315096880057343722639514663167781216358702866308294312436654376540340729649327090254468785510378671117347308626914249491909351327653454891059658470839783056593034112178218519244269742071561114327442778484195564762195215426279106430774845257085161602818608439405640906162762862693404268594892533215676681223997207068942401238491636568242657168986648010577418080951200756763085485372837258930312635861003096983507890589155580559313774453278580706289672113930422578476465141076602508171865849155251444484555324165682024572014811004264964693521337522508202040965505107336813982085966580307342757667149440054259804862268765298247090014690348059960790143538613191005556101973684906453814194399401687951571914374347857354745135713000664167072484793076883697920141038172080183799263591532149806521215750174181850846218394123984448389508927783673693896696630414394868370766233149345678376971364199089926295179020497153560256674745595501587011186828080595666900934972622980235722569498219020950560309846612018802961899949907402700497796995476644810536753862023308840703948007707900767941279227944013981561977711162285688358264181359682287361703533301108930591809182307586973080042434499648438549369358779736304043909704936826318683200537248893044759886597480614398714190532109681342651540225403641024257414113365680239876283525890349202945400500795545836347055767187697875996587256251255282311691700987726412507451329756527212272842922302522461614710274639878146430837436731231388431284048713187236129438241748989240846566376796158215842520543179099373168296631559814503287067942870735567952927109797799260002334687534053076561981205034466344805684254335216020719286321329761160725550804913678890034088702355954369230642258009546510936519179913189523940281051457217180298438942624352314823436478803305229835768804884310015027222433128340942549566382580481839309504363177537559516591572696892459203773384121358421075276552970271328008004178180354660046933182426860451717123209435199133161885457331884753941687753544720519775861078449155425413033446675529060678423976637082076588513879483289834575144843965059826724461843160389601351411588883399619440486064168489159873754695082842253996923784418866200494938478400428319409348744823426357400139220085808115265542651345466411271742375121719693963238937580668436830747024789622565862109723675123460679726229753663825883165701291445470519672960265118189029155887995040225524935096584060617463277681657418337533538124633708086212031549279949851696395360966045020134279392210790631807753846659995746659297785456793077560416714357528898115069779776250146505173374040206268866350925263298650711967045472386637743702012039992925875801005585659210097134370072502055298552681477238567665101316176912952956706921097661542654035621201849095447671178996875707789628087626933120434586979513919899216623114761204708202351130352121318213536378805408209579510270636854492445746606668823707780553215816239172569653268360548180587313221781042797240706491088138990693278998639875432974192502162890155579827576350429287163691576421084059923118724869960457483516187447990053766670576715908219587491483125590554029666656044998823432871212813709916489679199550419667459608968735887795280742227967740303667652456997744537571236307601794698398329125844280199388677594716351485516582739759361093240715096953243805324046539382189716819066882816897175695349859541718043159059235067603395492208130386424304635319745473192687128703952467584653000119600144238348452598553793869755266121573274902557178793798201800066628784548136844356113376658704101037104474982621138199677608588968390934220169149116301961527265659864770629756381969264746446331792068178909180931169850855204915961606310159055165114423379701982886098808836341256578505544542389718677093601503947928013256502118953328364474468012025030360766344006610020574087012382502574280562838778703833957663147326460254201674999266232731368626810152483876015444943135675569189493711121291251452984660342927468644093844469876569245178732235300500212466078609026372616656485465604935657982458381845410795490225542049439127175674146837306605041495778925804996140161460009491672866319902491582567585579164838785420577339118948064570099966898778695117145031833839597132639105780470634463908847438385464202322804993573221260789291915297211197958725021509325758633625979821234247089544554023086658765885826069837094500807970455458957959078310429343397759585447799555781416458838863874593989476034256925077235249847570221034595729611694572890710635343777036094257006933204900474508663520689090170153094507017436548382252242620285850732705894211273678885924729492840252563202136670195332658464820081800053286926923781625245212288775335714790043058382704542168328055962814731500952016926777460891289612457234996963153031562753346003169664363983502080117355827795040752020152540325347094446645745349383391482844616097848204691378742505852663307527319734479048200023503952318874334881860299908830379491636905544966163823518673458336278644430762531873324105926587272607673129803063964400092309275272062908774329871476999143676084664364090191901858870758837232618504987953368312125920983328115659882523428843109681297380964659586850008467305152002099262986358811073135883957454083807607595584007675798612582057560667358080853077098619214209176396109435664856460360061586922855770694471376469208579541357529641647128962801471076348420818986605949496513631930021208585468717027963285761294271549309385263891736592309992782484156241081021300862440366244619544025791026642097049175601842884992300067263163545485490864240007436259869576769129819455393383465570430066434673353639980659228385329955212804430163425896370251819320943540289447055628278106969390549859571773706427905491069864629992484515189603496379275398662797388551128854945349123997192425552730027360241698430061843887711822867461055499810042749229351764349574049420095286961283738261491890759302152445391990419924745690549057239708535475010890571249128822008786953583674093776208974012772320106811681022530886678033223206763798158342592746780934662658603214961046500275246506689314737321446545088462499477355096749150275206225297637186407761678471633863750996105363052287197374732845574329240763190392215220808946213967075371004349426527221094579236678417727523229792832751964652016865944324696420471058319854549236056956938629887143085121063904388434407525660698544063837137664825856050002005129947574246042371845681138111929808465250746495077094191247638739764893686108347280553757584638883936576251756042253690956301034402754203332742387560753371451925192281364882242173021387999295155614998453715237313660260420586743632091759274962609126616208233390789487823014825871927955932210611170897858799493957575074493638256484357261400631235551586932983327837002359668208277779703309626326566719896318842357599654710663748465242445543743306138620907893572056751033221938389157406677104016749945391835364581149251877773246928497233024823823447881892035805921954212751849848239401943269233659310531348564343886206706764847786442548955072246384366062513865135991704392082507703394194908916089623848779754040977819855426274014174097122462134258982522298599666076622327456958151770926452596086344760732804206098607079980542856268256543910481638619121171446745290327832994324479631078170009026642319884061373843564230778191742310532005004983191976560151554597228347995622369886930399378083187414467484294499938514384355089601691648141805856620583423450715717521107189077995488014210322626397646695420468478522920538166040893886562301722471940664278634732401269268608876986910160536651253525452238954295412315241894239083625243360093449069341050061744303097351794101804454207083744554692374696310028502887314739691063983727682361181528964916564812769787469691104668056864500992908686241207846751156026457904772815427278481458585676985009987957278730781763950225373484458489964201505289519512815552875660924168515971804288752127215192688017548283972498321386105250018345963801864618554645058215226212679454380287902116222659926681725714718637940593944309419928529646327104471750795314483495295937703830461224169141265650541588908124168297492208512905261122419449595806761129262349531590260598695121672057798774430677382348171311412989014021382099035023568889147427790708604976581595372043529225542485225598544295186997361247297117541327119804564562183476391033891872868709183194309498645523746814431276759507939922496218897634259554735030799437590612610815407911109737411287261147005002555626033026755350966337369433183843668910249957857824748936986380184215435436469398647860162352213126305861627835255263351125192232315746750559749958353252685296729651398502361044112137186745804719570917824097196004014674488078823017658377219002284814196427826755759606765807956700017814304534049921661736614035484832259278814540394110134196255013207965821099376093838205605169038303558415712278302318973751566184922145336430295495463791348849600206181145581692756402034074223445264361655150603011149303989899535888488732154627046069656166157787449610912148619546972207922285521043205235978713013479059223655689648256472890299454286530669557748704531549562455033203278683365686555845990550531742306678194669441444605109455360514895079430198132381533799007868377800945624473563714316494352723813751906171856132292764206614501143373267929726165139350438621142972214475684939564945843917480780771865162640833332310506278859352454840788993651257624490079833343628053662716054309796792158904627885642783621200102196429159098156917693850240969517492177959268731427720673753763878439111898957739200583393230725942828161232766830624508573327982648861205253375821322362861019835657752103660064765153257317133381366687985782528018345456291777216911540214962495247669315252054930745490246532187192453776564864758792910282887431750608458299447118389747728849384855704638490964342253475769256191935636312542092527144632452390963871885816650062253176989902407151398970057174533680259677397471827894391696146441408727483223914497557519120912450931113652714918955948890387762922417275849348372937729885338684765438879162257276409503059731536910065700111075311655192726955608806955956909992502354878558144586635623693628363918671678586973699754454431757182263122526733605685284207346579589419951556667529754484336553570449381955422436858782025515026773695845132087883237290624769553152283844310725774041867492533532007920307745022071425842716486779490218564363027249428169555238661139767021421600206917024906472041585575183877270438818576930015736535897573475059888567038024234382876886031280064352840298570953530758014274206370910514246153781416237910136623790864611256939243030589607985637438104257120631091717852497595753023062022056533666625612013098740271456482573093129595937459482625638048954016037008192902503040686554551869561399150742252985531612897213529375842676221338752694158415788195676489309867294173474739756749575604773892950982424065277621279391410178315105382026514403021724472686569744612609114986441251454421120715152793441107414420784720974562853132747472592526782449605079563495576505410645783959494181842057955824259347374121915832187687250490781074016011828434301139335534136317640636500725213035004811685938283540845991253281088178925689314219414034037159451363431591046871779302969182577643546541199005955196701454790808187955423306284390111975688558251313685109361007643934526128417553671637146184441303639349762702459925284617760675779205985499195306416354569468783830620560775643905735543129345978303765905795333498728873415118340099192119218096954649961146536858283060074637389268663678776725100570455875137552609970906369254566369990959029030367270795645736188874170279621572240167440772524146864880571732975321548553770865082675308293609580913290243384498420009940988667481062428875597631337274071251652641457766045239948477486442750878210408255654216300965331303401995005975786983279879892089376797570795379895935362716975092610526843597957221777828666177384116626919636592183756254291868942291180656277562900821031910727677111177661644518397080413838441727294031622862495476021201827855004486645635170604230695065734486955409397052031743476933245767350153360017272426625803251436680609714983361024591576975519057243648046592722237290663302137395377600794796500099078323408114089882639471122245129679197069605597024561655033913702426018051580792855099293904260623348458233821524662040179606668264189285217084483212333605917611394952868215567711163892244369248515997741507827451260281349833497287944681635051308939368318426645655205379517105971802047591655261294383694875530289819670695239577435963614179789268827422767502477069613684523139520388138716398131079246751914777448177066226181269742556004905258890133401310729651647258491708561710806515246315588583409102574270222142046532528833270500280872822900608542468727378460293602725076956975802142879599188228164635678053086023344933829875556919570360358134764696716787713944040092656979934891676991701689073760960427709166067028321845310783313767117274952431711641671915713057024712013275251987611665998818866114114081592774121674319360349724317153927557212111891426255760911100286308654370417438562208289518137939228333330573827691510221700107409163424248635390722039736064632932968560856833020448075222996630626477982771005360279607265612358387269780384045828822874298118836173969213774122051925841748001270829164275700320660435738234222326584080385861482204765606033812250767137617834611886374535839339780855685407343981972127907062808329608186674498229614378526469927675470894167650902616151634629564633470849149155639430533610439432972841351568110082222904108256602840219023069322872011313691437708586557405776382721993402777497910016737021610875853030454255266749026503112360547983348792296004418117076605763335027791330099969021600850258584850686802626542183748897185862325917509171776661856828162660605400879987224077705982676460374603305304870965725388038620358426552502321695587542530547345145606055045520157388820584280503005717569926256765655759415354348242840630649908375981687388052297221225838657609802680775941775819544322125941649816949860584470736494431348296126059185209213663624673000885552837171520998911819010675581350247426554165687276536997538996007631887284241852480026044928058676525955068903401529476760346556772682704344349012807728444373882624883089472678090170369013945103544488458854180085355278926796101264279071549513356563749828378219175998007066397878594764135337569344600921524199925279867253257098464639199603680450007424983489165273246094967824417017656028140135063186224288047929515526455773401134343062154721028937756810518937057643771930052525835805423129008360926975020222599924168111789693796962938160187620362890108884764287088356925699126973301624890105726215484446923060900889405378300165717273874326821225580778043724966021524037112970892124016599047767635631192205392808821451621384266284024326707523777357373718331026940199547780791601010894205302668492666845978100074333545223828986468289852396413064643528993666938272751374652040239651717337849517648578189746654518735527762232363624239020512994568474288248868028691973866398292582406811744334919059683965407525244014042323965321646185526452927304217429329831057269834752584901564809355546469919184227878084544631754721687580046177475788832306861904945298152380727012708423724135752536909742405923416311759757917526797081685514721604502310912716934808704924145426038223535160791613582952989617896997204799311235657172131756055524558749415388012867240361458462428514297077674801208776942192589245184692647929089422532175225563260255800590458476291653495687256320569182082007924689081944856585530261318121099005077541364840300158275378340958389896799453866342957554139651288764482304681405402592817511972714595712055357112417328618735648599237491289031278466329181933203328355526042524390383834971654200929717552191628979560662703070326194640822841491552321507709234075792138239769130684489726965003960239830059941176933286293276076987396801350146433394580071545368712755633299425015185916335935879756137567633514478051262214327987198623049948315104631729383321513425634811307517895935499692383964002638754263234539763712798225886246016497644583144574010663756632167478895890019124694816264552376746406608843148360775643207049663330307251975517085764172389982416989144513862217466982085833893015926676012140038670132992109417848342239827027336004468926280753363777168862561094431911914157714220915368240096345637647800867028417994513255632013157257879918667364001537134689195477103592206884184090075559136256439900420034683879270383962070183075431307926127183030486793612738773489277741309029561459118292881155233201261221247482159591135573894516520599161029182283594599978344576350004487566651292977002079258457901746992994013919300869601891334750519014034610860347462659516699090151526747688408463223455010387956284777814425524791198585717853889506958344100261372807180468693714512733150403056121987162469874773894105105589341400826972584620171673127360653111050056478715038353472466778892298796342165174616184018273234498372145802839504367427209507127788438132971503591448338861237029797480868387648970987712065465542308315774753929610451056574761999116401165842284417354902529787414081096739755682432466343814057876737427397587419402551838295506659803552547740774747705275938153363766934121532141240882106237564049551346837382663810884249857356973000684349609320216137013073372840711349705031109246951753052694590051332009353679814134656290127321115750212173672848880131082875955454211837183557884912650128853185695395196812349522857698249030149357716375244223178163616962331759798531766686943033880023616980541945798469929544474119962375632391131588851660614592510150036730326233595309664617394873652423441545172090479471634558779936598489121066101873910456823239282975540530663304906524302701245999907078309769403706175774392100616877210091320963075863813967711658209270424142779166330390554773182588907787969938265224117812307071215598414706634080625191770146739246965049543363434316991472169032639261795788597802799162230629840209915139032361150317400729646542155522513377368276766003317035400977064047174758405213231108930043911302904465205690436163632458102153042537786323962001331348081393983662855290069717408790061318552998801902160528811395078610609404810431934597356007652036387478678062113384492486698250379959228311354614027320792956050244482830932821726415547469015204521583761885216614059919804694751837599204744995989583600094943358129433198778911899564667104933838089925001426205189478723222984506903853174110133698518819435841226454523568913756025144481624183314302579869518945320081388218321414937888112178392105738439903427061610589691343847567013157108045733855819761973029399533374144579287842917825667699749237411716428653164740247866366772213942660111427659079116482028100728293554234589986509832449771148915852729599832297121252210340096724943123603155183994243259863151035536542063518317622565394180039508012398715796194838940232852983652896900729788673075648619002796792143648218915221247220778292459681910343628808359781432008928344673332059011829854562434970078037102192028082088451419654363214836336512632670341467274694002035335342027569262519076912503252335414819212726232459473702602319429306104272561751069557953367867186129552796487096547294097334192463163983641885330032325999908743991878778685300544761199919977066290662674239935058254023738759044008452859895316914901818401392483967868790357645272278218077779242892064258310260638867815789655259557502915680214780957327214811469225363685427947536893473480532951209247726738916180114149976968438775247116078969992195595111602243105043672833149082785645701128701204470334823737155014200598291965009851901331045855275775372194692468288579993275266296588599785535359103270375146230945883473142348330466686685204862738822503023769423612413631542971547402038820602279938707886983207615476236937303884442357726469608781449974942551006432561859304001210897154538455418585041459477758822035386576383411525686184908378943194918914276900821884526411037642916023898233459725024687383327746861392199229193631119695504262959874132253872124209029471517717452077909406005872626034558652429326518170066025936300139098123543810272883885837277170394614254125198446527957095036048295653136859796942744488303513133697556069640983581592862114148716235944777057135038088180812678014138636277457421678141644873072601232387920818364944425255552733929400937256907862264343427071643664126555650736003017105646123439920163943636341961639902373079233782315866579632641454502142855197182638274306727432369534295584611857492685430780928461573021968542397620451975543977318292533086590911521646568676382265608027664437501245594184148517935012732757608333290674597728081856994300928165146655137731239991454504323154709521630400392839863862776153175419215406503472382129819711860612321268781251072901329248916237132532773861816576072207820513370031346628643702714195709342422735839853389482481036511893989580156776171952524096365206496228143246670770166141697855506874275258235779440276011746461215171767693866542213123558305510764154967022210448359799416884264845068473495960139701722457290170654812525771178459882614361677868384072846644194529960552415404206189708844947153643867089154638162370091259399147462381715256831911194649495787359526992273748123029033109558794833764529130951709253413023653976841676021321923960827686886579047781560445979584856646605473201503661358970334608504083600051945903146623835637891206537723619885862257130221558838268128706852318028285317364703497402709198510625893950822528819839186824641044201622687411595611989043172358067580160589590025029587754636442467411007405955209327552562518690169477966548849879034474836444899501512826377431308435206383932497458977871854282391592501548746121179796728626358987485248791222870466004966437153768770728397508933019805248643847088678501871946650481277508711451462972382566408039839357105950979626635455235695007378683897563895648139155140449945498465351574976340904634678323584648990661832610844746112457394864420155829249174082659748216791247056450398016979809936060698821513923710710976058995525042153726784112772074741189651581137101621082545740959240610329256942754497311680789925723187600951649549598086704865301236711632907755502729518610724218211610325755238187770322188326544875570028058191105839024516716353549348989681214307725973303045384006802751908297587710322788911155102283826957879784861571723980783097873121194352692771244257071288449570334751419163621092419684697538646656766420047945646719879993375456654365627071159670194864471704620610335604745830220397176899169254567306571937139908892022587791115351269278630337609880149794444297541168436438457638786328118798615316787243089829754115240116606458481161055681471871939341216648041200000674284722150854058054139453598144558377477935962899797084408467161250046136553687421914861286382845899376396989198519986637003644507909496861873457984684872284286858072633819323709176102190393542186873351353563410351299195831352004699140205358337407943855005247008604689783442607734122467690579976604106614436233799160909003121861814295118920602068698285595046900254836691198721913547441074246086266581865160008700075708139754055349661478659711842917750596527545318708768008899264517829249918760542599237503080312892137020997449313130319334208372766731749116470487859449573221644001508505750105025199079854766947702363206053012618168785672243510857989660213941290144648826935485161290145862243128234863057983830400590590213518119449330943778878364892620363063328676541784345847083697186451283761971365212685074979625958957139204630845452403984591426545169505383333844482557642581827285267698228695827983920809880314606542714737146407371543733432610293924561149622189330603335276657204837551478222293777559232462501351908454042154003667528538256698062715411751979752049397716818993234949146728811915413755912422837047724202545829126009946067383160553521430066650953505099139587416779217580615907654891853308574501926058086125634113594175051202524619301341324092170788448636660779429001371534063532427087353256216690156845662046683951947445886420601369814769333348659558155475389044677104778752368763076499808945262695881420082567778589336483739851022998955833644436751062220237346153622658100498167305014186879281291232536571513305480982626379357779541564896662022676866393694962724482474549404662055770970347079358030864186941915748851726890097175674224618221045801779142585229079854260363107114872048951648714461678233339420801214000348810993176265823175244506081725163281601009007817322388473140162063752395387029649330729262622554692181900131151406712724528757671791491538698961430138242226684766384200699945933875879718072652944572525101581338662789795892612699545791153668654370599149641351384753465203419216396925830789419054204483464140140066368335529034116139498669829729737085356036323477249549704217824858614182470574583357645691980571912800928853627732379854709822866864317110507976457309109988856257540801446736347106506921128483022967753506224875136532055947026490246313338489003514759241560370964349596372690117150903846082604541539575856076292965724507281988380420662445938739022373076829675867541320712394996922546794506511291152423599532805579286006699914276256041988970544742042304740903135845103028551749158078736712943428516265238636809379748870508172778486207967162611534028553548402061923920495174713654394743983667850132269143578286057724908604950820904009328491132954177785852000952525466615861140560531007496243711830251767311478260171254738948127715475316252196184629122255648225978174313496315139609247333586325865011585412470822835144789922750959628662139576402043861602887058566998253847065149220955342819292196846279669559646553788304462672516112782209830168493240657306610229992208780636776214924881486808244471378503725363305374354773326544283774481283529554073725007757344585701852874427744003827937417016671079465118981268675801474102257201719286548779853864868894906542669017692723748869208688115527944250413059324555749644950871856748753934901934799847451351918819594398083718969008111665109530021626730231203148277111875413237355177461271584262540799827201532486697927842552079873180793161181979517691151248212378001099134224709351012875817295123083099067401653797020968960877037913422018110066637632318841654764898747386291695873408851129317915837104667877429447679589798945892595851016160911855600403827918556136327279665780508949679575430206657818398768503172478568358326238488890808289263608346244629821132572902358994754556365519846413106136790525901060397552193508715658957136720889085717269665844896513256081493092697960486261692985818296064020661980369517987114094253057750473988701479942997350323550288512471761159250257965693276812142937367695661375404571608251621971001961244453343759159882382218489859888388102561886099401609484102669451224654988957236339066003308196962618949687278004611354618957628588334103580219557245400165485994181655804202041250721729365616127100957937208947731322356914645582342821767945129831247129565775517254823497156339861678246162734492787688068144332014815415332014285864098462737716536031470632650574442550376134264761512346285858814523868380523520756447057657883315370779475973536460324962832766546880040364638716259331151146797889460575751589724945579519277308116069179882286507737677031527890393730622235553932948595792467190639421891982341686392661186108987368312312765253895023902362953509966716668495219696945700243001930558387000439852563962881778881996443118382639134362173489148364889385216344857590763139738392520219556978450164124454242254568300024483557063087283020188078655603708483321425828663746049743953637329871887305165320764522387089254560746397147673344805408438516682763888242315093999308379109990827864055135240454424294525456614952386459365009634381374425796413333312615085905007424339506453318685502149835293440045893339730867082602553828086207045611729565641726439238746218767368363429523828778657609751782718295906342146129700514053171683116257864141188089797285032409949217343394683629249192356862112554422657258173862132105831865090089802905618701190743929497117110562067402254468512208520435922230537510924662623134126799962613359390062437349041421950352523920838861081757876573333253054570781869577273034537972955579467904240321237564706316130191383099407709579915959620750569334802754178062420385119920314771202685989688688172881038721445406912005215162995793907905111851353406855657404689292644309384973409332133539727188193188632474738234953485459072519829781447637374628607852141368347423775991994194612142043020668204842772451193173525956639314835761892786617035321600810485064201515999666267851352303689268886314058667368289000802185152633071840660083651836053344432948430499539688452378553123395687723268143071588707305742797818397623380471462248165738512915149468648784891352598886012464980942914754068889895183544835279339972935762206713872094359101125282868332366796999964686341130894492333566672267118293707517352674754062571992760324585613302732698576936518901335587497236283695619542295421658414129467988769467587092150081931207441758109261552706047401737315055084025727570384391775459410914524609116983482084881303306614244216158932337835660081066785016787452118189266303940472640575290046593125031036062091761395877621958139483393228370156378040937111919487028325429057663807819782101592828116082185455373772650323616258288181721105171873522396084989876055786519753162076420737319406911261940615612295832995679146464893641404342723898968677754041130797336222148526006723880633675951252122301023539444619241725196208056847109706317025829467047820566464664443049054136352199299650027424599959934725518404229639877806575940890467801473359994686564901703872311681800150246708995765647962395445155303864937021932225967414434570289080331125018841548487810791716519838608048484677403536216601710826329461261819547668621064361738129396287226303633913708602821437649557415981711484073597403863183774036601535506416864176282052341378808956819761801323760326438343317454688263276402899561056763305911139963001957152107407327331200230873651536899430437811885688660291110116394874434866165880123660732399169154428454310996290260047503520710894182458913380006838191904874691834005459832057646893364002346487981513991799796049081520385471306007704139718753685892415794091851604244526674623492856420072732701075679128687187980568139290392079110251721409436160096123397227985961956015981636994337435992722024137739209483558310529509090937552216063568618772284681237804911379297643161707351740355028660869073935031595307564833586273234872681623229773077197883251249021030529274448481411435746115766587732408297758684657250826780378067615578638580838050289550507648780705645217904348467426797637703804272762137496552304918909163749987688358212926811346488880062597552485082449396952603834064219550230350058025714268815064446753857259515702860043819658583727161749157789771035382084988662040939313549069575848730339665541420690147610009746997230199379390090233684755077785760522628849467491578955651426301593611155485295703249407162037854049508759589339436575162228450986101360406650246049183249304174311226904266170393907056050514263996254547211708313262874516048969996955088973457738009588467044196823506482271938556388405923714267571429870210887894587195614584806331474095242687410660051308499303333223565499270947060346127479679349014320570248171428858117498249942009469251427239515939698968250163207880576120903703695312924821534278489418574741275870863063163813803941977273948950533311854981069852482685943957879808767935737754242223055699939525737696288519020109572982279853544588126605136853579663999454170872423720644518899623589909906721605390675128324294089310403064206486974581494370045251236027840641761999796235361454175397767805705591126388237954628317992261588473754916593187078246240492459419067071713424442159937669991769559440259538177335151733102289209324528915170105117015387087639459030637470016554477963268222822724545800602416527247479429993233264359539831543452024593078922354936139424364480871798863842126894895465185961222767451249410190813305559400078705590531286714590539652462881913097346853311049039007386159344391348568280884945591499596102178790609445114408475580639644912018672923162331028791337868136051685322360425958828054903784177437292141090945849914998948267067495081260891431947395321574382126921179810580890475277388927837045487361074841739205977303258669666698446949779151781189854325727464293061852340669204055291652980364647011821489715973693355302613063871699947848330882674449075573661805516437133633942434980733001829727290101527726603503056752197452997748692550176867618662699584369371150522476561206402870668156782588378698133244431202020273977473504991066569504280822583259216442703727791899836144276389426013449760474058402299337290914329887632390225827881745978950437713343668497053079074866608988575004868519857496203362545882400126302257259405766453542905871188930109055310304108226772368788786075637756904275464608815944166592257561239090779610281543367138106394784345440468189130964169908299986505089862781554339745800950143059446296891362747742603855598576239940403430401674155205163867498021805030851660951355856351808963538574491278104051287846679577919978138265011255034673181968094265616052477746884782143010166572522829586972915762833591653708124543894659315344976773349020215768934926594066001832044192869629956696004272286047624676507707730187086683371845350172052948717222347818375145080017205322134014593637008748607411496814306580113403422599378713575227624376931021824671538945994509793978602155182244794323879269270612536791445540324823009951618075988641026524921735249524647297559667093763858111783845459985874051576144417168593964779165600583056132719972442858673651787596605769678611183083455884526489504111682091232090939559613047324052614658427917661389324059182535942049326208591215963043247136170595232027578621655475669118412848807195978652502255265823565829325135164600314787660922355305646668881582048066792523423855843269352427925810992074703079213197345736247232939793734990072864099483101898844374352186194135538867167371172018033315248088238942057166847058040712956189304506226923188150884495456350005896456882341248126729180571292954417411298181516150332352447199326187529213048671671846720224767016209826814153042330870102091170464760015039111175853056861763523887507960091780804930468987591315581745624265620650954527087369070304680069293449184714301840801789393067133437246117396033711414222150563282101634524624699454706994769545492066754463357206839445454137089974534224887857965421253631655435544459014642386109780503240078517402498129375958308195713025775288139605816980119330982166985500226815572499240546125895853501821394048396376751719275004149515706469995258072061383982013823620449966622053721332329481307118232756642261620013881277948746978206035238089255611666739409401022755650579254937931261340981191642704538332814510849031226380803737500555867891856764382876723084127202889843483335886496561242488868598998410318566157961010075137210969519609467920601460854749231271165135173482185018175603625221036640545658926494579598564768749217719225804667995252175405335997148722412740039276392597993177864690247210165378259310849068191696652530627030368561091546392694181362142079415658174940543361879138308860218978976867549894485470492444976672887389838277873082869827723619864606256843315177103326021307470272592207109574507374599296745509827209312253392249016904939745936772244611249010188101874844230910540655658898764468968316041803177333950831841322106413841083973456908767477276702554300210104478886262514569548252026706709267453928534318283779533916728697406020395805781747660769692136122388746069147155542749311273953647996316284164934751527007891109742097908672554581129059689808090751586379674238183914974975606994295036066423413779516591728753692786281880226181912457398621081867016786351432337601776920251065087793473338223248559260633856120042377239474723090854431943263951344997094064697753038609838462258136952726966295474478294601835652904590253874809901199268736047375744209696565067423404891214932346931691111400958714167509318112588697164916202299689982689503623061354496454028030685984229538688210633931365853138933791487006307990014270632412448486266647462766112564694243915585801160964844138888967881572274879073372267010461071204964602210831736351689081196090479651252691756688384709127467496651873128002497006768376986446543499093437350870996383386966396577423099670366108929740643157014287453701696775123656529981453076057555838545274450364073655606465933884306952037229763513648986398978786752740024476935017737252551108680654629823802168485687833097810304652767275065043849756120487324274086192658933766889159909226006790395710958767148078407703273386152929542979388910588553484520650988820318028861601112730819667713547932120811368096553521059509168076654375809052139217888045714278131779552478060415821207624102071238772206719837311871470444971840679406319228325997404866399156512596779021325552226695613529498695614513881301083925335136568802264849228929683004623241833475648379353311412833051117549914370916423649649453562142601178735916617942349501650696182687196733420861699950443472922937088907737810190397759157401108795563467856135135521542080057889630936173795069167222520708004002888427275019904371803952216879640758420041306765611530898511169339801603138088020018436857276509651644519766588934522453681403094984475157129498903382425600149164844242171806537260845557010535190767992825416124676239972570216040737161532240606760080181845360809055111443596671552177185393264753413527417038978175190159759659154795625708219356325514475973406953526658439314328194731783345944295103760897223365267913440522427023242432854996994439255693721564935276469326189443836928211542307093347733310753442904193031762111887281599589889316490530994822889826326648658285302655185280475002585248791309244708678462867992799853598646719381050943131776076692246476422972398846201094116050309176068372490315247372873379031548696814145714992487156432675672630989214151833757759895438204654915387230502223859474516886000190001412446956728526790048091248902376609198233449129688699751557427989641781841567130251595294246851238933568951749987856464911333693375585889931609037677003421650961288036755738970071093132546842029910083774622214705535270934459772854743946994386367604587693195125412996164262636037993880600443507148213134491082448487687796655838522082462283299597131675844973459745107547490169371512388852610606899755978008241203207694858457803616778531666793892590427554884948164284336755844180757441101433907428808343964334679087576106701805909168995478157005831555879243604582145408736675729121638988109344653079767341406156821653262865100024219287752439453995458453384639101766442603750091130885648446119961357978828045324228463653388022050505106110979537134682717316636747792727416631379876614207436192442203723781380379805675682119593447931897006484486058291412255602147542113722789588549467792806290341688412842233545811000868412320569510170479578300340009724116852592479771819262120792032822769843141101830454040610593246913647214949168099902842964405807660159066073469721651126650557575674360221879621914278112085446015084298304410374709428693190217941384140241201409557784562590240123101629441527785465030472424706178559696170280596848788029846136286496070830409475860717085944103577924635926837056330594565868941514546035478280932779348082066468210355921540943837672598707230470918437495880978607958913664228184450644346496378732640242929913686088258141044031176683959723027352066603452689518300920941981710816149151219295994450484744610144968724766378013663110401398437178119604894271196759016025570012444074435355088786329314645941428680172158621516673591910828406010175480856573854745423221126327835712896415419481766481152466625487634068167013399815321450577578897162490596362700483923552268349153369547355817551806997191088638322865972851258672891916755073675310196954214092094520845192996708709288563310669523658410667985062842878587461447653919234567834308611120543089155126379048831079037377313310010066840873120936631530002200229566426183106211978487291966700082731560894044455543178981617411720697528764540693290033271785088912183024866342690017078535902404267614484977390269749466822837380112770795725786839406798468497859393988196520961379208135702496245822700465875282002926150560570223739782350922861496132738249626874991052920255433264243870646677773085789634089040722380493562271309779363088030437959854566938008144339223093365804644001817206345407878978464741705026977533388235143755554213147828975772841237146651205373621417199580057920754491287271117391100738699889433577264621712217504564079620484313876766734848350558354319788949685588626740200698623967170510331715249089372017847874723906792494773520812299862330521990834748750853353929360922518012942444796418231280403734464171788172898409390002472951798439076058236149125224044584379882866303935302667055296291704076162256305382643767575757652141418649090820334317436967547590289056727510332001773906082987006690640298223197974149579395020815140490830416913588648232347184831182452870525667466682728820115478853085975237830540266600364031258943315611711725412640832644168360116505465850677305127508218724208099144072340762420421244683528767058360586536510026972057260869127218603009933522952158744936071060318581524185559752951506286666831039578690979313033732575958483942592799414619927876469045446105587531167759052619342264133418295803295022641763611144753658245762051257355802532756782012138404685649823238266411279901679182182373199502462360369622146242465117860161880692655683072878801455616527675546275675859536227055953785888433716936755190506415470326079103100634030491899868056171309499239603487913091967975833894318899062415716912849008628291891264071150867944223062234394902790739987249481305346626848338779559868718221313943486858950859269310454659346891793714308682972387215064252154330487962177318746518584476334309151703823916675918494937618878001366475838691676174733876740907845878005850616539541575156704363103393400953649061049970548586467967034236115194195185661454995938489432390842191176843073928364377123089563300464132235471853709098197612799834042011503383862077043998154858207616641354836711489154430783351904939003271540982308194243622425343883745501986100468142864936793664611086390750157694548226351053941233616302782909905746445776309913315397418139850784871296978886256939097910643412331383692394678880808961242835485146769353190056319467747889580941553446501368310803355737181682917343381840619398763487269351599011892509944919315226893462617924146309533343691721575371907957335627924843758371608555922633380938417536716111266571208997321007500996683018282567535479876152039203180302244939525054201172665090300098058944251408357088930763780494056176725802306028509523010268989103882490752246852319718276375094975996458424027582118019265506432888122208638240758284596179814484664926635538939991506215383699355720421279921695196055962465143339102814550347304192920865163101394654858722566540705912007871574510911953015388052364956716045577899353104528532148617203506924749596058357516794322247254121270813683741158710404058104781144991113529058773010888353308375312910433394058454534933224020338417237514282502689843106816849382419704166787570247992361642703980853160398643027009273198489502824719811583483250010492678371252071352979452203196733182677210933961476211058508769501398147921526378001749126414729063171406883999130724993486568902626129438460996544960999082747824093889384916830762228655528373958399164051390490084414436178728981428504480960094994772822700609092654451072650944919680558380324841958313763189955178298641921780312214177530644664335761593564964559750393384423538082268898283356526486720303526611511170797797047445684261322649237751097083903564070974768165883267105326244136387438286714656046324839823324737317047685611614856082242474186314222273590939690481600082716531384353821598258647068696915516316424621801486348318685644259754950228629054092126123520566514139315045771899456187911221396541964154500106689926182891894235373316976787158186139896462352458513409038789736565906984431119683520871063209145146242634260151872029598051224768156580360915110967750992744978253726997575868519266565164018189841028520262309274326701312436046680502735098029236455000466859533954820974491322941913639644050394663521969680784370455293002978823326025916795381828689559093373708221855334052795377353060384143019418907515299215677237929020990426133333114521492743442470097322562767597401180256193400491995478248378273160144510122267619551338415988878696923750239396360710392302063443416508811833069836393204159576124709649536564133281175367999798866607264030396106844007027283219081406169822981518454274437156709504729834166743758229436967735787102789127055873468463120603274877160557727235067124073537726930965179677268466117761601851818442093685609654812185554985103665794578780178622317963891605092461458007725040859764577494810826735568930754044165283991245349981656353653400629182752343809579366366863541983835809038251463288720361144021081453986377123406142629191110427736306668459429762047436517939013227446683439963626251144871687435150168589401034391710601751840900359254654864299539815200981560740597917638508326286754974109760538761439625599506619381767845641626124876341451963988502797607011695884561940959838010196874373085704136380191971099780753180970133214731973806285839630677257825763888736374979191790099214978705387511872733404668452079343689164430291836386608557728793482960137634466927922728629177671947336600577598401813768866714750143447170599392925470408680178143325154001216873039480002637294743704237559281772077572214909022562782773243889764424117849997734392737800482582817496312468148815947150272314159175192527274715804915384820498585472101747156013988520083916318320048134770020861630008351467485396292320823199615826569535094012589913140527381255471109098492817134156764891123974334609871855132467026560959599347119101656479240422576932519830575660358765199882915548780677234742764557577728563445336120697127674854455410769128704411135824198465412085014391602932994611606835603031496973268872916289046946089417110029569686257365693356424774605715140823384181229083056782166908631673148453781093243498001455163512824161038092863005932200213578675322385905397465855584649087391074933312387109215069027861300512477773259781846750268810682541819973512872516973038882658268082374984152154201511352904432446100665720761939040467721837449562640555434864598924101875278121671024019959765249169561704349701248199460956384515576630819520518156250068247480293765142988295567202035560628130538240230303790965647373759601714509585034980670207408103451886026061684330080553561057770353849343269226693290725032985284722077488914908761052615835054627596219469448864664130767908815278115807168959140544311261327135785531451197323810839278223152983442579653603694223671630364356600856270918670663834112356785256239742033663050888886454608836387598612266779335106846771383277785077688847249963898406104849709400360715840939511609587238709957514890675471990760278733739743763890398365208469983313024024960186679881206079083043211023276371907209624300788836500530818579764722700764202349286880899255004720545680373944571816610170711007635612106499124591186809880537443430612369406107511343436768339396656739536859245988512051775239552818065204573548327525497628837432867266221806889912182275806294167186438737188924136204433055522760358903476752315404915371386136221487661483567567193860402039845975426214572079269260430572253042611271129318142461060722799479801393933858320187209220876846352907657285127653663968297362829815212916658118581367479284230927502174062548720197984679370595052112855367196178966086201212318784694361030534679327428253740136919581824578080173423509544175270792637073034076161969420157303975419381418609228039403784024715575845760213463855014911214146969348399301296768176853132709218273048170082746895700834286461052450198406686161393419767910385059823378217727579829192280149600159876605488380894751614819624535325114831087451248899504155792471097992809490790554194696100026275119281773381946071548317694000546052694290068411335224037916772556949308540479252566711524986208708662839323449086394869711657024388213030096878714587398858899521487855276708877134340325380498076012164452042876828992186607326586185847579158152665097646549162498217188593461062587007321157904356173271406111294024964585744726933622325009380939245527490544416944275934032852204675252804119635663976827718794883406946823368745001174535145670594263080707631903500255647941186082354619649617971599624578732855062202249845156396495921251020356678799318815081755057672730306326637570540191697814404687416703231689197891883043606895532204174076129549201072845651135285237781256529299841412893422326877812220176663478943981883409162657023111313068446178486876950833230619410088685097556553802902003052827489101071770178041561344055533808761126689732554779592850376479137389644418841695971384295646260637069754286058625476152763641930892310992846125432853286107740435605394076728332137745393858632851323354154231093696824214877462264998788405002619207442283645677811231497247808247115426761762995973820306628350854433526854421585142169656418208889382904555626441278936244058496055353587795567256521668610625447103447802726197907130834444763020194506629321212432276239834414822986087919434101139199361085048546679826259905756584438712903314476651482121695891726815746578329632230930397620125149145152706370836626550711145609173918485957990709574786340854734831873282169309143644695514165095538618985529917811811803151593227819745537406697989242926815169395629564921465635632563184016810377148194165005740736396250486919381072042831549655667376971809045465416677288893561576185669341939881902080971201755858793464178131287197952301303982153349166377374631289241767242144065127239309659004319669305341025556372107498478566575220494846873526499659235416851375977713775830416405279554888306372333877353460346450043499858144827950870000151887122049030055702048760320109015526772603522013001553696330948875935952678100507710642590873835731469556453684469173686332728975761461151468943293691733067855414787818989385871154005426248071806206254276388846262914740364598220228201176076204713949713490495377161265297798008094121070593989828210584432067113516526184899344569749670817146179399629296043951799974149702171567765728326371899731310075237307254932482002006418206776934997255644444091057228379654910308732999064383143768226364198228733707873995983807792269598979056649852092078255843816748385849362633785394363611554554704995711098445032759791585446924668823248396628225382633387893900609535872654642741294926232461152009510222747396381640765007791030199707378074534507262944516522082876132622389590355014111645505570469055054654200377875793626431001617664963967480800788531476615285491933292530897815708122958383165217733363518282285942480987632296705483524587590498583114013681422252087694445300987162695698376847658197964444580807317351386945460747610078539463420126538689267620726346994652078323263011531707090694885161398217549643957540552805478824250934013756803560257794613062970743305420359124427256964366802540641363198785274543736851994161823878044121495579247414412946106456564856610435544407266330452121957086114892933584988937424178031652010719842937830835776771518569457850442579744476231385719118291915732915116954008882546609397626179796819151933052988577257021725848035512045580952968381700264075503580227746179355726809756468619279135943613038614838842831519280324288640009752469306605973108588878009099975723733857129641356895814568706407491788514392181751844295199337165065279258990487289817173582585574949335915298579636033937219091056616968985427581075011601824446738336028344291318129625645621581956200775971144788687173510407933995258701708512316886457328741192446553604978779577049474511770132132401584288048134728182723354015576158480209229974262040560550329690055519293256432307818174226302211631118156370511918751445123079849259641310121390988799780302973318503977041045004990145497459996952189551481128562983176162220897678842053522498168184354576003996209144893511563831303019021055056228415796266652101108781344343601349486376607989837130608296258178877609317041677835642968910521192069912133054561854414609333531782565833664193216933081376600434024196819871550118882971471740356430344717405045595475901834398053981754646839862938075490673602022988690009635903046677960993101440963907373053877956085611092942983664579406997154121235276156903202198912676444218700967867437883075017432272661707971825842188363697433845568284868848374499892990878066468015193493895111645954523298528191340252642853523125590435977353282380455642708443379945596574676109203634240131304439460079294902656594717290646657129175268787520937945244780963183459544764368394817253420165845837343221649707003175387004662982257482841237773999797307451768469378054900937348584588837763882652611893680677461340637878257339531321693418136378373299823009167471902141590835283137411944753583611413945061192392421582504790116504903644324389537762090573274315385966374286299455765918544826566038550923408542352999683550515447086820759457231685188420537735909118866527508361443580203818494213784619482857437380541809803207201259254168210126442384245641941021004598860593106003999197680906378728247952704488429529869905897540778973554856282426826423107537951529738639979854913290817785125690843224182023911677434201922833980703336793466716109539006066129395630513735681610715289497226040535538272660936421998382315244016283213729691593625677777873882562865108335982411365770740191062245867934469234613183996262412794259176972811777499558557584006870698387159965341086820256854276383001598542532493039182708464520215257356738414634845793086378245442710226268582422307160812772052520200440825187611856596322313787201286338046417769337093143389500136336034435852270776591923296612425828879710058781607179962902942490660394439771477043595825572977807347347334927523497545226235399883525233356719027550752977806208130765096597862143419219570256215251752100009263135206027657067767231012412840823278995984825603679292108933594749529906828222959730920334697707543077609248031825127028229989587645768202089091990615318900249751044031990100738864319242673321332373358620179405037813212706868775582872605649614950987731814670150394775088492671645707980780404898836260297230144878878879596798801608403809376089425912832896737587694854641496510949159872957879284942152506760572894716912686854113402944209750936634972809405513276285632616696904880906832372605477112144519211402882368274249379716976237065171103513644062213654078579907483270907694896026618500492492204442692370076343808481308395230787718111956560800841326407920504119148242741963474493298352277367966632388821731357732575694629841385013847276542856984634206225679080335436793928276585802924609668529697114881704591863164411529622224977889300499032648364675042757562895774692225134864131107043299771849843336657920879911020745574873088737117237200527151458871460058225563031499402185684604521031018526304379069277617763775577889163634307485265027929354945018799907549198555197060788697180795017774560541049724277075054813633605291896053698464813586187799892501083725815475794282128533042936196450040147865618713076999934001448821800644031954654028105649335552266262861942500429448854136194065031488534190691528828960746232772618036960491476821906994774530379733553455780904744090736642606837718716115215429154168121931946961848855861848532554340709484479913310666278093293806920586871470499743704398922794439485883047229498056953916292680900260288458609116664129142621150778577876458461644201905226306122187761744407976237922588887330049368928062657480235719628644449674394898622410930831172343272820881335473582992097423088931853380551134769793158248448532299906222610416301731704226853468168205201449113060226049686293212832890854230471441973342439984262504922876423600028370871955025165303475623133843032175013756853894246944847359040032963068384056969532295414829991234497364306924246646149672499159073319204465832787654944996654321451302906894506497214919443047424458036741266191725693920226452619570486629758197434210859941722041451939514313948567484734536118000174635207296669632019714466509682723629967153389042272297875201300124221863427663286766192076959315898390745934429507918697250533906413761936401060438782143999286625917647168452710882865141333349941340196414235117456522436898741411057358416619344770696820490464527623037620638876043799581546858419068463153311519631378132645955724861018828422617501726334313175944574052596996870164504161804094187681075757241761341944959066076575902277572375358148025540640353096045564688146282847204311959607839952080370160694120804496225004017063668091321383906787751272230999035857233521893920691033393056555326427360922823237015761903825308019560524089731810985712523896748549621296591590741020239125835494321116537845480934419418288311954864252714169853761222374762086480286563393902464261222626434702939235129964954254510650012652832396724457359571415355846450228842830078160579988111805343305280305751533254490028263599161907507208018868647571507040973722404427958366647304261955227927865065418254261254308574688539657917670664661417612442465445266607694387569638053832215238124900690001487619615691100155355155566677722153779890659198209994452586069338528255703163690525874408461692812535719562887810740910878227706843938207541152686467131817997437947526918945443535431506855562854820382015422828093593413858339512771536356595546459265827058474183150824972986067628170106531235159304130952751267845115754108258626487174498159419384251664690427955489937614561797339748706547874618930013322327878899206322177583046645039239082648381810327407517394592457108938610720851359355924686437565219836175729687275752873718164590005296719043645797431799714595478279698676615230737341040263973269294319653035304832559801960691369664183398179977124354417803983313351037320269704134803846182641360249593132105138702190777968026108224626237537158783712022409888109848022109350275216151048099966125633679203207038137129220690044264121031706518286988643155927387476385959443139078137738764780073403591663880213497546901801495956011419422499569345444517938218428536171599708932370167203496523737526010273063392925470577085941949467076009560587744045380017910409468606951411159585293773911704215784437035503576411119417564362843531834879712328188849244403639228842214178410872013394582043062378274354370827014910253218749502768165981013340951519028773421223044726209826679426522800688606603797181190808445851763580796549003187070298330794723739243025419921792191533874975606014484391036537173913093853408146095825710488297467544827551945208173500759347584548104336987823497809464867081425341798038464910220568447241925688943956716109240725082572347552335349199160163004607805302388473748096369100110836057639639352697180697721268542780646693073690635557761029640631155313238303280926577393300508773537491212876194956119629991541571905133692732017944782789788119861467444022868360066614455098624405200269480085919015836164058227557011852204284193707801466710494005146376313710186837604627661428220356861095782951096721262558209588127815813529487152976042616488344963233379452526797195828912562155782364608337779957798966887360506126019956401566151656490690648018313186652065050435610510266956424553360667578056116576614505937653591430089967172395221066256590222219403243180649559911111693073484292256137996224773807494051308410625453966531528417765708727799685309959143303499690582534034286049638932386103077686846987309977123098950689549801391386263492738164633872668268842543078055597064213467911480977475781150762448109511728612133887988830270484688005086278215138888800071835000542587556472401414256102641555138826554133760664542846380161794608955226482461532433735847597069720492231833176001663845684550270120976936523862952529889807884993553922580009280527048576990408282396812765957564443979227852609972775409012741481478676041283329010706685496364766076908116120447362919862790442981317766886937906850487177339044353975375546503872379922093497367447957941366272622716374619499028550374047646121129274221729837219481587081463382522764168888374776568599055161254800041716907450372299907118634650943418359851050287946381444832515833791232182990280818138901958826501022550604859919785965484942162693960530467874036677179101732094809915899581729236051200265036171859535382586040711094662749410557867284559157024882221539843159848156465292854249099527533020344230090514140756404835289183800999489996662458547254473724785704078902798109138742713371109892150194467822566082616376137633741772504503119123202194130531666240934200553108231919854784062211101550082072937960494355596550932941149798848977090117499451132166668518791760942362714027662528579517227116213612787786870979469953469668731431083682794043899335137388642099874725469726190549368928841000384905863889576272401387752547748671970895331604507847161407377254508776937347394427447451174358534884294794098500374505246741188273853195842886695683632616968427577286304618299368391708477487171326561324797464504871396280806590696981286321067933223755041615552933670727379659259660670113067198859147885538071803289374628191956086558436458646349800902127903641409825242873654836227389211323414837753862734863322078456668547378831136310256171427000633775972663408426654920917622809211067027096087124136586495134633694715590653147639583316798113497564327947035707935814150309190551732959861824601602159742711743398578611074351593243445231611816952435799645533615147323609997233936585900711559321526796484677902149782358763831535542675117416372475576853019130881428081332174653648827128716444498932957750642003245496872784561922151829289765288090619988182781223029417046357306746191035933875841049239788180192068829918232538325820968836798461922946508206397476301307018554849908838196988172189766478447104479876998050845542666395070256954298270180960191431403638808050919826463091512076753620781369574155113842251440089650065124402910693628342901735144487804427068244246975281861624235431025957087285869493680054488199843400214935965324152913162855123032090232818366257056467920070657119601079814807430293456660071430002306491878381429535638456413068014649860286216621375197964178759043305294078984656095555731564932424152266327359745766698698596544109041207947323544421924369689714056426762617329076716602843726648247092495885152869997215986590406760552978671325429439817034228660519425825114032389852544799073756763914706716802686650029844918440037604318497621944943905207866259702511519430950699650410384476985653852087040717392877610237366794113395707204874980554438640872286071049801229645523281573153767601807681672980307136669013334822378783134020176140997901923816807345431982398708470164212816761706717702756423076472810282789717148630369322752656159599558186592612043361276996066920879506653507600629569019941649192946086844051699139454101756482695755989305430031125906525069615689340040971860256157571950939081975267917966513420017503229246312706091492205257449518661702958139410266346010462359288013066688652225227364152392963245319536168182864791608208791758794520567513929202463847381524595281017203612583991038511100552877016615842595886793434338371539539264630968553306444928825133350195767187600366549617254065889160048180776963546256450025720897265955789400541563212556734319237739605289581906486831175272380494828126800196364348674697798101487067397511667127000407501340539812444888242427401742405595666584727221063850756262422932135898988921409270687370262993784105082062956044542901040118113377445118973886293859421307932244285436876232113856636483079781347566122009471893068308546245794852516512089644104324417705170417369145740815062490108394607593511035557980701130641831577616481464095425885059227236621610830343280610648797603533810832355317292088359838281611327536042025832815099766218462164577776052482452242522981331841676113408279124861937715478167046977505365446584475794284531503259764559892336624711971124936972398399991780952221766025214504068223904218583598280214975463038559337623383745669050845671985391253140780227669651084495176019047435743324837149389196639639165015863833305275492337041598882452142584630427124529178216045898818106265936417829889939126334442926770026541536654119694307998927619803839896813976604613414860020123683149319620066779590918639141760802447534215327823082777990713961795321594747929671015335115954771632471728719395628930364373290886072392095335685732800616274453059714908574249325114235741875963007269326532245340908685219840409707052245401536825598314238115215970654485545478966097728046962308029666820833672264683227603408078521560014124643012739543490271818714558663351309419687789018611067583758122683198310729253766727575777119550893399327257039285760268796953774756822095659294242192739515288196037634743344071501331473875547418315767468143773298269177736013204597909377906797702373852125773702616378232635465740122551822366890735846684048025072715500948566901347433979807088984178082010918716120688878819185048048019679815538687183990022256493871346804155710739815992394525859081211494116689647315542703281923793939979298250256966979759975935155410218122960456999957158933920566818304420377997627738264573418439273041810997350180517136175749205912100312699735746871423830807277147191520791232340935008935425133310630440709778166700607408842428377904289363005419414678759124153999805316215703612110009836240968008986009326334618198268315412947338521751179497266453655340361223535996743451856685597602453449835081048888121715825096720536181674630019731754427416403892230744835395021269815830064903807463490663953663105754353972126428571667839030966478254223975413283586669805743728141859760193466066575694300149918481788576057049471409960581379204252714241460932297687509897138376385792226407811096428227828647081395832659837967057159598259090988076045921671829779622556841566346850101712739692137668772087176763196406506898131924348891694502441986660411620518519074386619703172357934768275308496935578934315164685918097709355015476726086920643719009211327494237373462111559607519926722965065245040408573995419383984309402006427289815999071551084268187729314303019721449048713473174199059324520877133446669603831475123059907166674578446474207877241396577193803080056125356251177111789896762067097545168938658124568937002438155353666446199829807356550110058422771970784001373587027691974301133776845214027178784724887998240151608865633795934138096206738588065713628766698392756891310675907826794340124076727508466834595783385967039149008544553851997707588500695424509600006913342085756778839061842092098014423951249712820775069373989662245799887316618950483659362640376455424732840736650376370459835599829120580163785104493554012845785535099389568961728176968070342184375148485195120169575273153322144776716940376261441717284953560990198510508028312029239400033352483113033165407865937336208189876425593050397209907299215448760577650675422474347523263348986327288051874274643892086705641333270192182279463298112194343392564019689410400574842907560570218408696789343716930594383747160599404070011941003704132888656974545444832113803692412326814250751772313468830493485848883076863230470892678108389760044994584028371507548847264226181355025186477020037047674360772313464501863043670254119368391288294425303393670656016270772333807509671772836176914496476918850443008549887588342212311404657322561592805552791947100897843387813241070046476508412512486853485415635791441342025584918203271635669302545235425892350359425561976759580193656986416080387522973681528303023896848283555000978131094101987633625413529857152163497090673286269986314376142160157210443755696891413107207843629058998043281219683451928616086961019088301942978143109992272013201560847405240845365273110623622506076858804252984645027764640024496451003241279739175272737092844047659831553807216144771585432882519786193722943140956774039340355030482037146258443867921756006461131749834191125611357273526237162460585842273873507575258821610590499525862857597797111355755246855995774915063611712505607320544252538883879722774620158191336081031238112745843764382709116454321039136209323945862567540767052781134317452666947402028762426205742421922941094190096437571294220148899351718644392268996796392857806130673302447377995123946706746041611666854285536380054476989065855380733491929191306691569006929301185623648599625171462630276284318763542028904078952509878630661899717956088692801728977745875899956096035307164281830721820983520672926105331404095871407354130201812861281464766778351888793903245799525228060519178667781690964537381176861763838064179210465590810402615114898840676380000393104945605737770555229361767770149668833253103997046292530150674949111068898331196366525724504124463299909196581099863152613418305510434006674901863007311737498683038887170501990461272758818109619631037797999477576698730984904387752759588989127094892412422338773798987191693106766985776507268008110807910802867337108419952817613778955622540938331632275684865615611864344248829745015723016603997445437224412288164308423217583323869205075822279460619549642114759419912996744197643611510030754659307181169154994163135971977772036530249088368681826851941479150715015016860235748729446536228832264246453495069281489880042607969013757588326808525743788884770135249615692852936974830669365040133990056390099214485117826249974183653457695926471524064064151492845444034495241721354453473275114986694186302675004645673730196604279851175344304842781968437665942919458600654691681407132725078470355292678660568235509968101920736939777886420195240942146960489460168684668738102569923062825640548954869323605508590788303312940853855863931083500305258512452416954599937498760315175555395458863913938722980015053697818484058027072723035622619911557680896180247692570884824459322068570345151908900000984742644943179835593196497883301734555126425704908993954575558044197064950642217973849984808537790638478119672240332590297045118552434942597515352138260278978804765244785974551973941056118868629468725613718373677342192379570277899472561372074940527167317370494364078021678330032010703709782159362164700300680633284525741946770835539918869495597057696254412066929445656049627767003137679246633289959813810788572635556836151662703956029086593341772113909882531251727893628116541701006592304131315846451545527828438909030742616225751437907447175127446559579361627578668081657927817937947566366474572549455711034640679078678037893541509972443779229304690657500959326159973896634664944217981567397077667177142590221343996325059040961925470084123099901593310309269051099567679465834955396845447044737760546931604155594963412889637263915787357247514658307203567313083245645600183200824955852786486531066253180298952144952619805032681360015181874428795658622388170740188482534023675828518621751203929980966229097212646747759843135884419716213498303356363387754368143844031551103246428237261810360440167911476460755938457022143985021452165581460403899057646364708597511119202864719754747858758323954781730795092126934889787913286830701853219862490344279825835772771676602192288210569490726771900659745817475915324994389280410826774125826099392934577409836219324620148983330536748681880634463407559079532660812982952097965141946340686741798845487703846621236312909182402914346497027040445633635902698747148650344937468361059484334002684399343188181882925964752637698412247934503091148374126900871931036838529477626517647225389986960900953326501767723769262736346094796968407308283677486567248137737267887500471413514258257192148962807951114477768718055348391785066890154853154107203691155214760057567482052304896239112247808720690894440786097783674940729788624068612614836366741186276875952930209722651102020629530877243586948059242177491915857182277218008291091400669838086469709588088683232457020738346474741520835593018560913403904282350115477430414397759161247566209705107459227892461679451255932902764585767097685645284995845745908849373173086209826201465310792204037121984517578662070933175309050633754525840899908360632065924807622480353111276609660544020911427064389364596260145271847787448286482520301196434997145094543662606510760131173068479876657885119133049229708839134704684139847968868275279926047043230110734475566010916238178182256543034581503516611202873459234599055990613291421134820597073047186669160284040530848881630068689450250138865711112241820167697224854621677210661395801117417436058576205965547750587352433209424328433704908522464823276104426068792886666521261795385583272516350034233469042762091009624942475611098778443860134665669668825683443336930792973928845524528262349376309406316596550801062085155682308191549585484324194554531297820134784181578566159513214445675736234425370944839435669646019032621371042840977306753671694918677389960809029346056051624662409139662448099366647401516208732383417267768080471448402869248068727689493295648092667912182686389403744592876680855028434941892314391466017040790805988793601177335453058656238464659781176572928487705754738459369390982834424839485085164905681693418572159398490646886172626618480876140552194408139062271772475990878657257721547161565830484804617052823615284373709048197736022139563897388330266948764457114380060760827855259497627672184992293501470095202041413616083564852750345077126027257122009230490950982662195722114368657196408461025016053842392401280121990671792904838807263389640591928525718365512188156715064282456542855609514773802492450566558838222466977091730496789441134891115857566635988429225741948335220824939045175323235450040205888011110896675850458220470276971553155338631219624555761760733449898297679126321299446586133601218793997805687906678889374734314879777423513067898540638478883680252067492333194054185886103726820009806628452577799117759484319337186357575150079588566841296493625665310550144201867491408728961707465125001226270203610388852591490881084883647658224452674713936723474274293273382973953352862472496940856689871952587044103929286229405171922554222513171593931736480076247047361247841587715051470882899811811316363043985454795955182178873685729959283249022813819902933216962066250637682883508190867797182411236311613215213608869986530077464693016214707124814177134375708560788435590170833507229725543257801044679935017451124492405790921625673858929991568667875459550070763712089754436450145956275345549326200975346845974494242086785358179552157541023516590797907428170104608069365514942262187372711420124012758842685264916204563170883249753880151817942225257509795233423276878840034301746149830077693799877180947427452773401416585759736479199826597729068146854610065941201723402728067811951481871069298793261724831253256281511434404525857848885586465108865481554464948763784050124982744207325615966002969047481102533276413997417068578474141778601185184247738260510083664142827596933913336184277998527433609654116325918327808618073383332963398280968419283764431418439066900215498461899784157193566971294980923486835831684176409250023653764852223466164961455178349215251457099038560391057639059716456965366463389216535825841815635049311940367026268443715603361539145292850883211042215936199133835440422243376084796724252567126634075626415147508576158250917866305371839259578044968837430120315701057786329011230513224630678326713611009401285591343465148278120628345968548387430872457731456647390252526008674083176392677389657101415673394833000904711912136321393333521639261506831058285630665680691231081618808353193029385327148477817367297136896767068717579775198217290365523482414844185595187426210615117950332458818605818707155401786249863011777796649620692544261479189215959262938580435642823688946788480334878145834806726014490060951089737383441398569107464794192017908476249506519279624683002873629464872851555136339777471731493013169498332127895232734420080098552266402487841093195627467525933200424446734446408966599093467173266090597129068154920336271106232856334719245442589913103101541009890076646024967111427648084777156586560094563462174605726110853584675243771135130486011890537251666752845822338675153760712370276839576469714276868491634350514738099761979497483333009160859343364317396021891271646070786180445313065142731589202437277862749142186651884735934334449112698098575991784892077804166187820787996797004733747165771687881361693188561929506618521880186331684422613861047700945308114541442106685700335296905039751461075350093495249010389911272285130094201025025221574007285208721911670734123267125892683273368392009744095315995108034867350110722751914375441848810402719412724098313630730554259658831133316004026993455805641537264436727628852888625216227081598458324024189204608036777709660273442528962837012502050853159700608379687503728770352056827292246110551462910704609385499646992321199927998485262643427935073785743272594631489229785799966424926953991041809152721665526548145297743275108074654332472424730961953597782401653677351318445655541919351562353326495626971885931521774445019688453795875882784762382959657733405428914712117163209270181008421162745048922329002273761063659079699487363869782433701615864553846558777173211472318828454788282445576676427658308538689541164380336346035212680567201271239512424961469862207856325227785914112123235164190238969505795119366272796511329149449182949726644264378514917008475403092884259997898452650459956257641753494734381707823197463325072159187989548220943679184357177068797123450011267866966083880556321425527462606826980812868697299295232093895904614937773184836328197588929755202083450986813254959241046014951359130512776514146610121064221315701909342469438012048172347230212585317578764801607237947548954538051214099932343356673176370463310944823056447163759311696664552084527502616870213173452144966273692126413451256339213920829799240584465343235771210574813447605134074778130264187227142789108246853837311997288963186611507981137979972440631980728670164131723369775938803594907058603940026379891582882911616162090974174783003283444162490319461148187691740033255899885911490504994858400123096730922301959378125021750780383571760386903237819991912611875324322922309691590677428919102479601021669704974051626583451737351452540885324911916857097106021929294940826818001842709691023193220603656304013317772583067920555696875660380647601108370483660913123219038964751306334039823974157190369002409374117722662423225235047388750846089311245269777932837922814190119360855890122254483812924817806201637698963514849102201594388704611916512547148779905092206163984017664720877086662041830274555563045055141804751305891098023941217472617398459694510513465139676603918821957337559890169448031932393492837349620610487233741064494661123557241192993883435656909971089945736526644347983642084890471491904331140265308065677300613628884251288471543191562084796377990126567840067902389485269635493806727885202004804617914001897701985344049131452595878785615861405124283413451371715324485223544477104796211533236165334483331382285007620391366051695132272857845400885809120896862723636388585299923486683171505727818493577397733381940791696458707692489714624483476886100766223538608587889193028847741460792551324162300450264423227282695097958468620596904110922931908299720361444468456473450830078798041089750007722145558405274574364424792581491365444517410668026114757024053409605506148323022096136753419800605408380893568531440609905110519506884403553815917689184491184715777145352712630692941575139003990027315641085540564175337511021320543260422055606062378987362985598355930846933382371638037667226632099209455688031418101559433703603942012913037717897159477768103548725543750332957336688396358919512448721814156878434270081676824351295393955663376437815010733870874315576156023430981270583368697675122167648602946093442792339922454345291004337470209800972942894666846732123985963837052776009548510226003596113757977215447706714483201748195701861045184203214097683987167460465109586687555913638986542980474316487406170717537066818641172165879064284614769171560273996207048976209516582707716341294415704919362600387326436787531292477749183820424310524182520109671431709015869569507784393430637465878436245207746791899028048241682542758261886522829624731588753247672482264523871267324072303026297410577015675151056931266121601879989417486484934721484548232182267709281616961321127705912009570442198059353107059885081414513452404564506551683455093004616731378075221430652647495922299332961733656228385251751184019525729319549560397171540464194526141612176891130984753039100788191376775120172907032147992306303299308996974511175339243961625085472233113131581318136455056433095797931654806429290351731809705310398745579465888980081242490606831192322975544133526941782831819219930865785966052902328546210860062904244893076345015225503300167714064731814194245269643122725445197236571567255899068644372775898011174141876735196455900690506802778672655825506426658789556328358441553454761194936617493136549406647729132779746205310342225524278083782300795820245541108847298203041507164571901335423746567954766719296124421921604598354614332665344799768920482477152444403111074635591394641136647833979430047288380942151730953428583432933419527337637013043212864934701492905224272714506526746662876581400753154099814385247470747448307877608459054630665756943676940232148135005914124760531552878528675710091348078664714189505613991927320060561876991369245079225566559032924787548627427273486780092553982016060054041662540858015201714988622596301895010839543782408350025624808258228302632965079116038594629411059747121063567221243656351331692222909018156400448706105783359076157844758759474460622995955924630638609022586699444068931309843699221184247149086153628013780182631810660683081129380936595593745689669661873871569381736371042873770752003606283467975171843438068775071464946122372409155017071144002971874117879642488479229884510195962843015428835172752335666992272595364210454122030349514842055481126543589104318659951578542306869054550119972670954047402039495002602081252806946963485693299497079779919549369614397631891105889185477058204795263063058400916428837913184609700189214637550160094953702611569783141492446782245992574179232714740839467504742600539571638139490149210383167684432898393120177081878720876235692465365099088154609197797955570060920431478115960147852444112866612447032344260018509204082553204830206585612052296028497030647294690138246059956733614055644640342258518507296234261839050889021072241329056743982278627669497818876264619743792041079708042707899638418363661400730395798474212342191682249052309271600042597926147402038062918811750266185468194428884557009085615791827208008666983960907238591718507605594866041190939742349382704988469847984957979890586801724352889524570471073051063922846573803809410700326861948338569758181121706793667695576128130507519944857659823855702326836795559183211921214769723410573944646992352632753100895378747254888585534885998185621928212321924340976658898351849868512005657524698413894761683797471132414369738700600316531011767002427176514429439409481004223089589539803829394120261604582621213743362638462318011860249928141143385860730569534017664560565294213491610605319173870256705134451304082816936075672897291792189804221135244677125232458606984272262417638372194725761472103995963277254593122229850452475469097045137419903708083463526310661277404837335060384666870449269107352943341069181230041425857222628736391049192480620568722052064231415168443948582745131630804541014018754410339483555294472139593857784618132837144456803279584915424085323004687406792085799114786020069804385180589172249354088567500295920782292332054516340114355423810678672853288717633650655754274695398084310920904549545361409224241981771396088945969910778840692512357839976092634489335790547953110751872250428220716001218480785242072824730941599683509975279999283911659598722418686449198960061814661173664069289034074373633130272149606262456187083873582481716808739518216995278803696176562533662386081178200312595976584555671256719150184898140802513105959560459409271501554184006578048545944796043660054035899988891234293207020553496279800409448338262580039259911952906748985409821413530621238630728195292122898122895904638890270057113448861382467657254103950419209821957973028045826952120786522278531909999655716135226391768704768526480509817582871816685172402098577582990023786481878714688754326346506534859817791822233291705675111402297782963857092488069586613139091397482794786398830759884228001024175450329606377562096890305677387400978790185591926638878895429324650730935551940689222458182904804788396240817566718638131237758146568628864450968002071992351668615547664950602604696399239312739242294192044018105197237408997501718064854222875785544574250015138271165871933950116353519554316210691171770179548215422002318365887693036846470242761786872254797269219187579598136764247551942668799696926294507316171361593425613241670484881359436434959183862599612419349917890657748740965527299468032552663273281296753424271855243244614570559950313603279574195542204939838557415015139582000209684453182524778691204210186288035930931902037337936354926564563923763974285622510186658492508338077193093203348398443283232786416027168256837633166450688795529200078697124641556004709333873072582558121370643053903544252970958747486399398241093416990327732814083175347016349978078029537827240481648816031642662495040789099354354349269034489694350644116434838629338482945711233225911032061052172832987260354409086108171405332221059438263548029537753601903969870543167826261152768934578376566986447493207267458460972008738125999651887030106906916985292579058398232534707879642935869469770805762709408817948347808082047027804238316338165705587711299454779518076570741576632210485206788506190266561839344363797053225234212217173835088673898761632702522212512521928582193011438770679069930471632980905278682122610790349674639305982642576290268635996646987109694807077885530342380759130575532508443072999925315400836400556305860820981877237384102752321240906003551705073668248704701218187859584124702605213943754885440096358205409751840277408461688565847668190443963150950007366555458239419942573492099929924705637938564433799006075363092324551836297017706777715420541327334146623886482870674220604322963407958018403202628953094665046253986973763230926146694325361034433535383290492889332552936067829361499749158503933264298532289690025535708307461343990163884169313130682204767259290078528207739225658563781923668620947161294395102494341126486082245160330392888407753083212104209223055474297061943198800031836563733726865389521801143261611926738215977604662457166156387180378464551995907557249113644035499683755362492829457755393712670214868976173020595958750892318109391408930791994542684441249173163065170550494586503010755730767982851954103922712804300424265074891809478857038690484341136849985591818557645140580795960834389721025868852967881303482736543121717766476584750789896745339592517757065885429610210239533940314004742929846792571177594700256295405341253042329097045706278808218004590787264153982522487678915986552994271829032150638375565322759785738354535892794693092512164776508476651483251591319480390576325715814465321800045999339440079087586149681820105830092033581672675167613146797284973481023792645713402718068747978536324452492587360767670329103192208654954196528365403231039002046034233201812199581838089971665051635747756683551352925416830606930703259257464586721830084157427993623559159574245223138465416419213136434166005651169311425641712531090775452514277844333494152912415107410113909828692345164347109021657993862990688109431823040958068908260399302652569445478734203080491203836366674412189286384551199051702425147169606533968016568064168521694534389836329440604967290199879514257060820176427452116318311076724796012061884326681591877321347625157285404614411879389145090314720695886314864285263580747233849731498576394007391398001890118235226622826945042588589407247406456579167266431997556226671077564360322497518594935550553883877457174634442694089103685909910670887102309739652484665471302018112101637162720994472540576490057475766975162547099024989766377447465360638396875465328337827182076466790016766277602458291874757630002391182111567950773090104416141451790726892996542597673559034776303949315334361774950006555596561772916395900612847276411502698435431831358268399756199443869414987851810212121033213403963314069257086090998664019077950064129961274402360884039779003067001682614399113136118022019457679632037570100702372903693589150221431274426709650505522421118732488191754294407650096825338346537779648495795473868379820890067205661872507776020284713665403667143686253579708039693060728468525176940283097949964969843006743615155853920661913186962254334277830522113342735944136830844725505962658379641650319363094536279922801367408884234752227139478009034909319789535805244089921331742416882136000157860991585194220756553892281231137597102771747508837610003109948706345419931213128728099161336116492652357488437774129247201054479628707019924743801147068075483805852166179544445638639440841488340699708159787811088580680431013277785069569344500434466989981801937473003748822319020439117469923760973389230848125402188301063365915010209656069157350351584904820225443955610086294046019899554073772170420610074765774656881421009065620593247542985248267600827642593240531723693338672180557408940648237290892155288487116800063765255298571282672679896834867556186455828576471145005223517313128407142299934562965033647937828522153215943434409254203593752141997029428973800594230014899997206620729322420459185790872143405700520474263886837319886784537063868162670737186747596648705389346576628811787057730154625897324799555156306919426331105307461704872904913501205827208586857734374956668929843675987299694395056062094464637272037765442307787952075573035185233074602737928968098987967538259256026692735216401896298261970477202512168432068341330128504365083119486993876614892395220807349892150071443512191001171112262833045095385410483120087850072631142990188965358283723638489001180132838055226659275966916791796131870851010975518693917882073376667862938119010328427177199172261863412500420437077388338337381226979335418979991474928753083868111934130413572396008980828641997315389544598275926310428517079740301095226263103835608794925797055424365628172666722130853160561427616986569995289687594840243583642577214245224314865323871175079489722261315863742596818849046111768993219577230534683322872718480684188321390596572660356822164512287814069084433250476565636859887245953653027979630186523924861548061616596660409735537251976818969643839871928445504751384231627538244159405883473841003318797255939318430775063814505608089154563661135083016321398888007744932568981044093932794369254821212503346529060076224577466515916391060118096306838837817676130289431470647906131422824773133708541058980120331066417633274863042632710410030569781253912827977530526323668867551078959143633555389652224291279676516858302854025802543610739131297785512850727655562873863603366794123869442871972024472961864690231311863670676261987267827642255831786889569582763957789881227489989200237055366646912150548021581152708365970222254652395074132283817485419824109918681968106882800941874079274254262003710412490149986312299637480663668335185953535650780565867969629164939076500723731417570572557969263852343611230847461471444923183928279577931918365220035273785613192210625158575308455189293201288768252079546681893228517897512866035786087830020388464037869914473769809194605676583605904396454782267739127994088117109162618381113040420226160153641793474631012374328121669519975943016988999907170906219196300083723855448891068542167257147107111758170751629161769665348059703290203838152546879113614296735220768534943680290071892365464600700093710912361425083742122102495701672375844126259757258233334565171829720126440718450774105623614435402806772566593785537624009349017292950486135935997812759506447036197454131237036176477892734031863807024165419685844152289816986214368265014271866703157598544273380154296120181889623326164138530406805650764617714601290444326186428926461707408718059155426419428043368714972548434724114548132373469222692670425987491939117086144925904256615556701678589421536400902210485724378963527068025217212610370817483815990740337149365111631706444904956751381185902039498255484907026368113189269193911835297554568812695164831291410997265316153841982462566433772295656156098219488209044574546924096766062295914674005885217183944749393632175318264820935431657616107097149735668691861825267234159273470036416935306672877769927116759042768983895476355169331975311896015571999979933935064002324985089687974309519204914760888031620948165376461485055900289448155111390796410745168317683061582395630454355107925040825152388209178308820896071749149125703810916732084849113411568443569631050515282506592450402741199713816656421242670729173653435952692825583372094087468439908827640549426318830452846481577562037167910837551583255462738204878212256809156884523112083264711008257559365765075470753192230169632016698893453171536282664749122071946756890327064532390746501002476229699165172451383890861086387895851902896957565329273178653659766577446814879554419688294554519027256424232676561140903596994992352830018355932924500579199031615405550644913870431763271894733584555419898989253988623744401372958394562783757482167015133913277973707709366114865506953841977248261730798087596042245718019836533220287356662126342155077730754802803115415477035027187895032323164977188867101363250803838532592303137657467900756128943254226590794655340256327543049410925983596992311151227960189316171077943039850309796835170650180628011975690622995828178058929445742469268247020622117745480046641553183505397495214433163341608518040682235953987608482882593959156450187023577696517020883642470325006947749800399799017939286037757285699940527107903901378706145630408153928449958776580453767382124685191320079815851229085486002012113092486854645221257886980227964489227310945829036789720013517473930157808412451859581161052591419899794372376629211809153682145823485679696781657433639071281019339245643568803207057891958852026511712651494264581762882837015326283886932681744253631630835570917479194386308923877700068266300849165383473635567836707220966806068580835173940386072151764891992171691018837157182235229250065580929814896477642464028108482257959048452529387316434073524991306392029295444250063831554598892002190798926767130017029826707149149804729424014419959388597240265116752753136191893772738568519819929674785624109134514135229416609213309911581983770447332752913325137003174231678650086433336924678932575424024286793663810798200820916340506268365177207678590928280114212123316591540921992918830007420276119395642269679706673091514748858915152091613520383681065771212026176538301617653678477131457590426921962097324156893591280754346866525065851399377635854979519109459221385245775468125650749262330754554767202037358066250002012187793221900806646747703444752537183905057075638274568701936861057987239881158511322942134453997180581253427565739075629669722768516900172776670459124378770937887338304943032770925008153459054353542562839590867264432554443583888622401957726739073237670659035611399316191784714364666955704039055999836200768425080545834462449843618577595846887260045708966109646082082245651150810007131927665108742964076878425395409484893263572166878233075351875311054778802307251731059039343423210317861149743516418827820519034210973899299404273707277149287290290404104300516722472462766733707059874722275420769256349390411177290220069246750807256559303484788870366722223261864810435726080499257700408904920444030498041903523663515515969847132391064684920715538534209492810976421414072058162522674752692227856103160562843505599946662305990509684041699400653840576624972124182020287031485993691866010860575860993741162053846873576956563087076137121334507865829839211583477521500801350684569410478888543333118915315588117294856725045344865536984080712407996279077323645430525769060253402167352059825292477739038790759996194023821952189270446891569775623140408175538034953611074293765365784344538265337120607098827523420381510612967149246075232639765199177499473201986805087358976629129957319966795636818497206488291731213680937867183212442703406348771357093697776484864743022767761396064207748135617987846100710566906146145130081874054716675135103747724561852726839967189370043029770172438631969433653472595696998423617235483271757144178278497114134341808619089379468191372775523448037035784036254784281096996604788490679363084557092854872746193794850541824738086494988189599546767472072725312593485591386544341957685118947609160600233712480390448035487721290605486742126568849026027114599777294649476120080482853329885425631259976385049711082132095919608628295481485632998119138945617317285409466186296998491769971659035066891237862914910463845409159963124062828088770076057037880804628506210936116723573620491800285121043314290312491442250631461071997663798335296019537890824475307396274977741938051940083512758861127828990268433225915318494852482742881526630683405665085890209662678494054040984288809264318122744403014258382446682991964143915716235261328425928881519835055346239261115543517428915636126908636997594560282683484654402814427747880043620308698982307420556165915868611639737768092514354380618305815716171558689261725701568155716066516627785633754710182371457737512309203589363025225435049445724558896275615991030996708712152769661951104107528892881715664098720253423865825483458394162429310841217971538649184974737695466074024139520920092750441444393746220096132403080780117502529293982617958918469420535544086526123433927829570285198563123747628416949809068913888643643336829074757742037801592945754043703908555288660090222970721192392801743508139046614122411321294385574716668743627702404906113439487495110052632300115449179986000652438692970207933108335123698858429612654079007147106604091947991034978927112582204737963572102938830481245813413397817343778461631437649716913850856759017890526207896217204607129196709415385458846474161173427240464807166786875820356738903225695183412967678524962609365719897493808764879388753530030636537799491108406347260695410988730634452459957411610285323191808595699181370444484329782493469246876953102165187513064117319300529673045588331692105955982495056164661353292735187362810813575703516476209813125879854162981654912677147251721803947217262456127420701185332207115034227989665617582725302395318213034320564825968382873587715157080232599133982559632956630122862905997804279498650714060076119508742191130274978872770299421563872805888482260156257010945403028235613607254350503046945566468168309432840645705873656946398862110285435785301124809952533913733042129450086219792525949153947880342913072026570642078210758986335997701139796268706333272094788680128733139848073045594907170583650352499577445909668482376938262031908901096795369137406896978140354032898359212260502100190784787583005672508270780727643294061513598988562234900674443598155579270232858049142823885535385547682253049913665114255381247199498562836957799310664980885036280180663757343348077114056105251327919094906623020911935030185866533408550840370462695111373633367846548883449455357027508448172459841025720471003982803748426629020108629696001410901895706350422673151462740398335352226207921538586745894190287729526583220575911350202008348316812136170074127003262708851181490020518307866484014958568760327298329279964265902509564822393311218290292240726265740386164857773756473110081053789022109999907865198430237428130614741135560598766104340534226010083490061841585525671955226410577158997994572991709918884417581683466155252774973465306531981424504978943585183496566737707308344839477859961533658716464111984602014932338129061967254396219957416667356353085631677181007650853267202455826659678546638389414390504812781536156072199316755039282875557274722548974336942821920900072517418894396733054655092132073104647405029621630095239078125730683137076162633417556292274360973035745712739238235576550980388010145460155851993224519705244647793432978273879870827216033670263709409201713814635988072648406510866800045257650831355687945937741400602007939411904156204792069182641407340860768016106738352116091096841498623569708693825119190710987348779205504507560307844498792437831986258110597825741904909982715130981259289163615423770493822783836638285814239330444307785690559993862617141056880611053391232271021973001572298862803659830977970523704904720259703389743533160183056256297127442410892410823178220099070898515519733884342477976650481341197122893544382224556734985472727494892791781145531941629967090574502238838098941168629634814392079707738938296021729493571183495904927733298690769402390826577669624376929606805605150148907806661122579818963934350875884452803500029952661640857574418876126080101763627703730011958668096824677466033671653551281846049702842454641551373062079385590833812554630811198303319150810923069122070989258368507182077487442274211829040697279043305211902727976506264981163731061254860807612747133879919299040130613977253360215507896735089439799772213412831313769381948153309959458036796382666835887836105206990784299041151566039211618662427996158013574952962351764040751360357935198309432650813977519707298536203758271102923803700772341182634958006856602748838723935002945036692412980381887237341266494647465829018012282631952007473061832184126350695857058031073947052714328126092253796834911232625196444792488973691452183102974794772540165778488877882573623909441585835861259213814683563201908718062918624489370435923732402435905069114958015685336190540874404425379706413192523612575449333757557286506725059744342841202668291900548669379881945287956852471974522654645010513825048450904552182135945405102171401433984771628100995198341137723005069350006814821318262197476422880921808266951079603654943981897343122509107844918146810650523807057294637713401916463239274529936657532070890280338732719140131048712176263234637589383627373904800000348364385323697475189974236309622347779879812065056115605524944905378373481606209070327853679014165664646449107266344154903419299718580774685146957076409100242196065892551100132843613923327308217951686648240124125338806219126932913084362903170220646223697650249036127447623016847342165920560481501050633966986244689363418872184161836960040571045247730606945924004761074706328690737737402867628406981573126278711250576564315319605933054163645648522449838867824518851850498610771110208725414510004881335312913860681364082367215175352549589883724450075020929837091009384328004669031571751565595689196309682239030535691094793767706118308917584812432669300996257514325839925964593857809449006296841665786745777412850955830503242380066251571348046333196276424253596155611165019439773558055206773893003326485780949923163731660109173470831741693058904908198890107288171711018947345231639725755602927019015761003357363116366449157991909420131900425498772377932139484238835392583217849376279074054841470659711529369534475757588933585120749248555178732804303997409797799668000499423203858492037568072150413465629053178178482914439703296825421732430568643214797366899225159319312100391500763248957436865730326549537245991026869346641869166658999988480766985073088619047586023438769188212975734664555529950117667747088918003240705094817089902157753112919273372562103652385681093862848504040602131483083857732619069756814426750081707728784885337057507820494385394750634898169637160303141934164578072750514123701891808947080936947490669728397126477204634560084062613924269021350045598436295795537547247062209678077576301630333679091170238845244467707325952664786856213028316350198654102157607920751702768841165514327378987152360925277572497689883650543487507449551351532413714684556275416481989634077241481114404286279121155130234798237232342315163762522404758932854427077826031627208673221843486524355606784280113563261759043178317856930750959990173651919774063520012796406345732778940426742562021370767241408645761340135724454160666184668179521577057269366058312321579579729905709332668246088752822194681352081746375550943636749470879938180098952107611057782227793379376815757142782604077700142157856030924324863456687198877814199121743438232703628095372748114621971316767310751678287190637972761852798677815576332681789612994566190904242015659861171384246948386377166908221579138720319871095290247574393416448182955316207073826582316481487581816787099630368242150728037427488453457720797251859736602550615592181339064584104226430856081867668022358384767235763751652688670641015801983094779719917611984223829361816198594227395061177162713583199801516870338374584663108445278854833048855963082826869706326297486542178692409258109557365117326798350206472208327896062095685057368897817878755466494097900718428682847549600886307949177144565024899406635790121769780239475632450109272827014706634099813818711755432949502701510822607629282730078827455325050172924822199976989519061024150814415281014148138823764629523841924726707523891247610551540479241897641953021807669399192761287402566808689700230011933584785807592954769308857156516104188484605276471427394270065851373291740400212348520313074808502576936168960741307624661649237398817249284797255781527884321211825554573273513771286428102288598252649392556348709736243960188873524488564253493976759716747592674191988249968470503235718718889001735296848753918497615910534125062667496804945338566165131357511699689888535680256916956092578278420877223775068016470897059417642912707257614278577125797170091414615285586765669597998540398570742685445593887147677647859248952322275352274333528820698984876011348539074561843389973527817163257562238793030189208290637788284308540818195263131573007671640298133277340985175066218344714506761798896199435112894278519684960798400585274766559801396951262476515506151893904583024323419429312653783001879562946349464524293610862085911058220265574336940889891831163925544315165520220892172773423988080498878591662818626310462833965806817348566834092372541584170404088002003557958682799975788596215161765054819829538611513656002258714773570680000008834614673526714851569991574392317356729001491453697598602168010255941442399769312759100935121688068555393798096286113673637749868054183187567827803880670112782841826175329745490109431932809630925043107961710032512714478942025162053368918991729878019627851846106982593774538441226171330591467826625858386963564540261819373428923493232721717036661685090477196550513446637655216272339378596291087481508798507158087721454037623205777045313540304388356122115283547575022003006217072595983987367762571615098193105943719600124631683215791670980929091414587765232395117076088124066546321468293372163633547200575138278076284494294969985566213594101179625171426271747671414215717531331495334412712729459390333582522983803426356139272874782715655774045593694756468912291273879005072244733749195258668436288742447929470676667997526452623880210339619199653712560721614384538808653613953688449323465595993312843533095846098281548929749966753641100772251530784238903695093360677675902745501560738845953552508459999976205359630778347932310598099972541656561175494266585217973040851022967246405281464722238228158894931379579108495926009508459043124898538654514280642374078785587795828280200461726506044045383984303506199878776529937520246036493579768485579927505335325009464450011664351629226569646583254469678900131466231940692924291719101183506804424236275632487315368727420178793771843593059187233245780174853106653009262489912438236136916408544026194186236715042664895132816926341938475335583771325054972798256330288184618906413872420851808082657350776405132964741650740800830082538825682323099063190268143888155436154127599118107226677465475107834665934494051336964401605449988417904149597420099158853515879413713994504685494361054195603540125168821244897924542356064942126563493391389202450811404961202359211122311050544339019474359464085013313216110779387463350283316382095639582902933484158230080451956612942140185476611904459395866675040450581866347920512894736891550989146392037827064580109912364127791341847881824268855046096835214843193704470761510209464848518307972896885459837352467095259263715096806391120272945191268179864230556431948604604847406100125664181391402303207675741758147398748550326940110659958580092824720791801780642612937219764512537014351185941075280954785125604657529478269044549246803959520274062887516573993766918237832168204283928078128754066122197059368277495550104408712663665367162845574324170647936698778194897972969809331062920784066016978920022767786686932608134546508522518864100912855786094086298654861823836785553856827766656331598767278661766510809900713336784141104928905071058282958141851969154878059463906503377889351491475142947497883783379896128576058567817390948554875722856065369258514194548250618221627898755839684134622875036038584704063700175318297664798105034926087533920676222845476120248122958105947216427254699590017957427316095708528482890201750880361270549895528624965707665519430080732281902761391391959183409343946241275849298095264926308922138868840985951723179777175092855547173638546118101470854123086051725029828254827758192669173814069046052577298377994045784568289632022027269264688900574633933860229369583320401764898590241506024235904933451736738168077856421710563310431352565256979615750356355128296918515525023027206969225937790578746802194731729106471273579182384691938771838100197633645575828080902798853656437460965078680492780906424445460260582789776527166111742167427355777886823314705815946087452887379136220193446276728371533555514885161634696348055407176163572535497987666583040017100815844915148792994207045431008445007810319034210876261127860626291904487080732350791839641586699040905231601825276149454017667956391854447466244151086942990773322984424574718725765103477490738814157443698633027097947843756552960456336352884293405409555953597402975249834975357651342909978982117083632736224227460989221121591811508468151182219784681454381601306088204322378448523582103214847662289990906502489630720330520241626443242373577176599421021126832510934201110472881329562940543492036591570804324794507877446678310738740690220318984633348343097117128217584710128982863328728369499417490734142707110108420447925297027098391530590303102809421520719809317490692204924674770248393854427246692382084560733237315927514733753863357797795657857187527701067593780113890033378534682781980747150437220325823693171711341264546312622990739959830633435426074411316042485248455469594383572619557951464151046776480723870673165229867901386421836338969498459150404909602899877179584195857922223087631592358768588055560205619486459998529433094090257205751282319599675595639793138974157934899697686270223735463648784272096182293324838688674945925841388258537432800581779902743169401969119665770848283191062853962876062714224471373715911816738482144981823518503003825965672311968887278192709530679827395835509101719436559890622667362085076799038773848765467032151720230145355543919150920676289102676221154673134884021104073596671858215010815816675772172539261417038900552159416791664262982977639853097640583326356502403034075853888933073596668335684251878294823212109525182020310450066371513021669276868016714919625564186593490629527059402130824020887574963070571977123615484500694271668035548528536667048943271874654402613628691554209116531186462842442413265018836448185284423431997676158625212525803407809201757851820474478910661323166585863404620376467271791598651265523358286647548894178392642424910007577025719485591784589145051464935059567295756402419310168283980296379343607903654718202143217649807884290439220318369663509491211388694817017050672868854337290539907366008297594557469064535317550151523245620873758339710156953980982076912463213853168666779911201862355753681488288570380316503471679749547710985646244820126019323493826915853573210938701801833811511280003286605792659118543372349201786443114922555933551388542624624718808096556632265219766922689636869182553235557030596033988662588669170442082866254489929260254003835507928114844619259495973183508826709635223061807649774915910740122390648133330204724203500964491144138732886469429352554474752313753432928999683762819718811489911476023678033486275334888795819436239943211127832742940289172472017875119420204283232874416426174248790913202117204994080854665271446901141969165887412493384316265849695945513113499598761499895652324316413096171950938544017007849468806958518022077068034563927284933307962328562926105621331056236308655271575522777773688665424835964025845630019191301662513316786262690311807914511481711366437351780090745475044341988721931269074910335361741990869982127780955742789715856003210493434893138140857791229754197686065801506857065439274975059338065229970038753447833691090045667607459333530126158358681462150336868002527443722711236373845817544074899344301860443848755547395085776878363654543621002599636286335486927598048552705230492559880643095183925306317331582985964810622503051638050954259010502540277783660085990551856486094704074089408205656627597469295800998465117070273007926910862216016897987832994704041509765901451724670095126145265378223190098810755625596896059284458224118097527951759082387650149997363150539801852533728312199633193837197519996401930610731980232828689766323986081366073586346846847031942677050135927032669593834180105695003729893845859830332610205179340195971193252122424330754997744800090217770147617621676011846252814323595172814274550632949227364815429226147879159299987106462739330871791763990994322348848708311914919964471927111311688370272619202207881991356791995436557318298671196979600686153886037350259360994147684453621072716259374956670012464027520284718596585888176151929738940403086745483865003494148780079815372160946035042157536550822802156567097821379082091371010898113126312717984271824093095883422683140091397508804377898872395292035230240078526205810992051758655212257154675911856278896193088269274708732448546616058112106292920863549642177949745989675868568309350515949709957254132846141850274583880174536471509951112433590185123771257055740699140585004485862284829596324737416279139380460846613624738593925046289187836354023161194908446478017936399143308635063512768535823047285309807028646874869105785963351670558683197520767729713437072532513057173642096244814732254357512678498524425291177694546340523781911182278557703792870881346647790566670889679193559230136747438932509509016718588563218321375632613170894045131967927194196098366129623086002801640119026302263921243393946464901701412202267460707788856062659917901107602141200270500699745339835832175022575566074334588967467258452952506408578723250824230286602648899618385278825142000721402621297730570453286587837532704601315538828575889495401643149388645104493576112836663881274533165386882341664997883213561994244933046902825793585522626114543788017878080770018845168147100992329394423197927364535450996231396960802091002049661736706800992906782733181153631390676947351498137277588749698197291557127118229608494695909899444412275877813635281620208736757601354106769220858137800956636779728585530710575558381607726407555953687682132409800307188292682715784512824735893972094877144137444308024627183656398475408299971675605173011478500105002886480033251292107465832093844707696925121305413784867139643415250549209235898201502138239788966834967408700024532852424311946547666212284383971434220598511117031868934870976643114229318116368397405219837146428744971015343742034794730683790848654769058944956359601410324516863923316159237707209267168286004757823266929262259859732647932433461983853976531862476991061178900306888839007427648188727178726667603325771867386869004791372121270435922034615328396338381030417322443733303485885844025531321634710639660276397734842603988934999623704827502843015254603270857462753844763679681711984462493645296632150269319048368901321271393228744910772090424410017132014050621413823350853433728848500998493039364159363436071276189994230975223072420828980812391885785976485897909455109647821160301956149772939942315494709728580029061598766657735650605124292173676384510739720347641238138336905077971562232296778315150520830910779794509157023115946360815847692807723152151259436135827142783172333356603887852759837015764145214866252112535970704822293683669884987330685361958979253973514386702986340418922407519166333698176098901519793902837828919186506371021072077586048721295222429653886428681208558659329800040849498542688781642366802861931347668082054788313729029044846561979476913458135873541456592764540606671789745027077256772212829325425820686463832970637817925358943615965613927903670268303932220817459348022789301936758496066943635390591685516992456859286303909183285625765818956134209633058335014824676260014924078518177721032487546807912920648246499931591188357667153060260085029167609954657805481255887766386949374703831751643234561182908640247715430926829526112476077007343812658015563002642429817365155128562736531150976950625673424051476969440611608156911617312311726339214611025544942320790825954512914019314300506603875807715060887052744661464947992667673881040519557419643762891142047449167485637837913565528941120351141681910578148471911331872524023371378693603683059585525768693198069294480856395115547621402620967340679399792596577783641562997167696550293546914703990352632566793091538213942519738067850965601261305634635482547037544834950055104968625489862774240025195896162693807578084147080161261474176772573306546245293164768232512612634476505543163739658827354026897949957620193081868637077574054417514415634444394736988950704442728160237650021546037373467791534521270216307434473701956923732613374903886684760209473900401652146166188962196750274092667552469357236881595113716733155275997647784334916749575797744134958185661477099785094302528050986271011394818815162322790869242340134687367582577670028991417346059643795337316460721026421562152185406552223960261700119335882080055734471615821025945671252052107973891361542635601998312988439506451225645658300944323798876167218773126985322358244421720726884451985242061759832200712622642486792361019566795290161814294651709399694574030016615101272591540401477598902330316923736352827558946404768547136921811124336178143273478572647328923594005504511563750942001272073882954179891710559632738186735646197910366089384645591843110373346922975142315392570018508238429164789236759739241233896855299880790231194542940840000791861848948599711882709377862948618581747421691091550128335248178453260745785299853346742410845693560884375775173215991754184418312340150549204082379768755676420100501895157197853242081647175694880778484504310892426328094521351232822264549387092036032406234395536265219724533111300584200244885276083960094914759680115076055053103165698255613991045145572800029458560225946701821678963491757916131933978062414776507855380995955708090941620155533961509944972703815600860692862305707029031687114965016666883647040413503379159264529174056824126765140155430278676272913999256815498685145618034119902099372794704619006023957799187235224796798560143686301093931055614511101102849203364109054639710521660433337748307736780484854473888011547904800304305623021161629869982167898098647486168424614197587541593143934883509799851546495548845311736207863374834702647101000703776002025381571567234851888957304488145524511054644677758613840337673583574047776850197921130661145213277199327872824914125333386343738502204329547264027350836602873498769341458381063937949059623547084674975515395184942751355298582030257372381112848275438913661241039141849106755029211847562874160800130989642948790113349254265027544344381394500990522080341793396200680233590246822067430182923627274218848034202688893406527247754990192921273874653262166852382878414637256055884938425595900399508148747286642314872509107252877167191456742373189190385462326380952209291866862778336679170822813485643955495274258597938523188766025829941212199286819967399548359446797823538871842514929252755695100357738675419431711046107548465992890146895191702530867234710666337518700223245795378681932680269168949328971854510767224689344831995261945531338070578747648674974589062527451661198587492338579724468464324821769976505727744093396753440643656689865339913087852421549883016449704132943210229750465354245301797710822517788635613406135358266949909546795106020781080576383337489345475718674620381715912690593767310220984562031221293246847151930955217364126859939255588356265503020353054963639123264425058167879968186553342925550162951122714723877142075223200910330548941362699656557672410157243389365877623003999044915829255504034753739789003101552364286232679931374634602223485728114998350072273183664098739738712262057851892164071540937532935399561944517275437665538753902875135019433741063916225176160994122719401521315712999902094687692362409826468741029977311635237823281934215104977568210928486642077201680826822364019858978974100645763800931241378530506356515116638082110603748004087811442525583060390482668863992194613979018855901151631845804923887647572864327628708636674685002005032335171843585125127962980791397931802026669950293913381917974814227363833562779890403351622313849019070309216222706099045301262951803531570642524887473761914622137249087046780801517156945918157990529954429445966744213649766132309106828826795609272369118046055319190074028274591571048666848912783957867517071262612193102961693121696750033866673059497919070588201120700657159898121632015641258536484091209863259454041963141011611582305008321511201621348790981944108045248957033786526322854003252901358972488137156091245127157191688679164293105453328459967570602938093676223971195324311101963408964784576470316776515498422866779875998300680356495152219620810670360080635214913307906236963702977407080084064492977597688336663386698815818274618036531604213861502113816151417669758108587676204849978400970604279345716681748454640781265014272259160251785918194861862963771834954319620105882441746733056924301742536458297763940717168470820732715308306877875598723727608370501439632129984157038574719500919644361243857137498665032528523397341449619905298302221493899387248198829213464702913277401996696497472950559592926644368226094431818640609463397886044889700346969478014496560907315531183699340526557863151390554776735433180222774520644684812030093703920708891117206738163616231562279402362552623611552958247791982581180953759317086234546296017240515840448475607652327422719835793042744935682936758239352914461212253496151541984791830923673826556931373282462535096697214055144684901524409585138715263617169763553437989109939173296504648144644465228900989242613335085115307111912856388586597942067161042621461068584287262252317663500782880718330722915041650319632082190783080529089993405515210929884558903904446460566166061469371742130922264486441208932315186844531966311888394598040305670386547485613278678427737767577686076178080535735417311325255452431402227149340191788342016953180150501066994063363522150091974025911317581747857678648686211544776225524287522949158079865263418744394713788244302499279030172623184061910573475296922998131460277004451679384288837970680398283646112914384453087872469344438485981783285820270940581815016806897802060808024149286046236564883430551195964957172110380470145878167506398032540468735625775165732506181363124592345016261052000205386947691510175763512209596759097711295277887975022850943296896929706179196516086812300426156835593076714666563999264788921105551575634229720747935430523618608653325385941008600049535560025536594507697267850920301042562972145956829850410103653246968430573587129207551862414800327435376416219878362445237295974173201576371717534349101631957680655787279536788684222645033538245038441801030764558281706192323995364629761655044451192750483085255741199306097479115356440782721994038137856327025875817460877367736262565522940886403037581027971875379507524007779047788986760473469737641556926953543477213358123533680236392365714220318338738086535003690390815762257455960676856385121221072544494899814313755129123516549471027896163755195484142862240337521587060053036820385001314077458950264750406153491415202426513054160789938416021640229198844484094668937129232508620303317116808582518926802556883666068158541078064720654009272000208017520083042255479671306544066080017459526251396431175441388273969023482855622809197909086005389328795283640285612832284078553650938038128938033193041291353877751198513772243629463837724478668563474379420320806284666200315064457985181075751900187367090784719130677877420523369289672504200529936272867665646315178218979742699215020962444317005759844436274443116790065061142501024274317219537193344494331622187644574722244469532614780463132113785513096440875749758320829842185155655115838893942025289580192817729218552656887996102256198703747059536196370827805005933592697327405020391845694101525090443603959372770529024675297231445117276244023544786874580998547525673604997789694039350861513221974543964012161433060198824397374329272795100408589256399933679376946458979186010065054068733842549790080247199030834419121790229373810984534751630260120305403184745596603267191186249216690139191568943952860966718025273477049056008733109760568678795882214135940759771638830497220673318073184827252224206979313527363894773360266566951412106951907714268196741549161685816092615359486289912514794428038308955696787218074713532726048230206929000286255565445544115626359769826749120230292867487351355467152966362032069485451891777408401053806763054323142623137906895613815768382076708007957408979820213295282824420318973361928040061129935019478405058962828437479609518250480286385423485855790457628291545505437288106853746093616731978703536503531277715818326323878623205267273749710287787826223988210160436800325802601977731202067639552159687445955918434538184335240887046063055099962679895356381941080235998286674202293491333313468128520054561064659897569961860158817305747887391231587680671868095653857454464400891991227561319514008613186222417494958614336116501967166360672812451754087584018444198247009477676505087231826604245659959349964315111592566758802995991144637839396087213808593066839467079993197481850226692324068892224446174048686338645076225890757196230760358330940117737182960628848913059297830666477801609969348679164886017575932755685354622137831915579374827217548918334717334847638108939307295869415262582865513741020352217840400962172230915510126813255731087011234056503375373049241677529718974750770732012071398218431991696686690260493697160743605568454950729370810637343918517377768755538325595800424759050229015742682773751309207727981013742465966235861131419430451267585302943351936772101335327282446465100010022956949108874521137297765692004420355806627683593894798056330883647019519922020942670334137646761077952380600930410569700528908685155829793876100764841550230870500241857787310128093514246004627743742902221958883147521084269821238864747508107444009729185125322753081412733056984149841168782066057507815465168293026300940156864200709949087334284472042437262657917006982605032606779638328680219160752857544795642075149779285955856825471925030674893339027941169755935407576506457947364423823559592081398208095599904855052345121899743169167790338995076912145784174876746204278066117278681748626528493154061748292432805149435044126503295061242386206114765672190909023993296548018953290509574221499999152629110365821527564648770758110213797860090454674570973521021891720885196132693879661612370780490297628064109174878622440658745746695116307764049747408354334099755622415862936051461619548515022767726310363249180646935192021359751595321825938563662500948884407134107071757164860509647675492687756454374562694979592550708130333268993829166187025575099006933790946469878819259025036361644766819956852695640614295187733573188173981868070412861071292958238743862303778538731171354027814606449450465602848026905144434736696391979095564116676655945897508585899053479697425915181634006397905131149111756059651736264614882383570397038497802904028441798366332723992158960294492455214011398504087140610520034222810289671125531634708393156809056412236644513803562933405312721163493003300564237203083650125766882891127302949555689946869056369239613840631145880009052861102464979341705821155434317266345676812005781571657108894693121799338203425432652022915031020075982287345122189265015199402539253312541677790506092702701895803842406347539630602345012952629623251075943174650252307878216605226481100411048924097119422803934515482565327962878470045309543086574076809037785612941558152205045007149905592664862928502123710549971443369641779800888509636515991068430511746958588060413336953735390529463296125886353424047295422528768472063316734396653307121528216808114436970800416849531536633395035922880412545087663646465334863586397922644677870295897303487783058645767221194221110541620492687453625290357673829137745747177507480867520263774696154585837711753480168145732016786905539411955351608693168940885559967107736176290701139933069970662881222064080172192556619275527167678136320173667728607926578476731647095418580335658002434369905582398090199559315196304566636743379028144658555619658641701333163986433757032913705272553709980462615732867363504063589156600536525964561396721411809521250776629014622299118824991576370838723145101585044106474781718597641539333869364025864422500819042007561542653807336893917555417139937702420625781005914998852846921756044557959383073914864127759326576733331003162589460603042372381847177987069688018303344906681562690561886579032770355487353378133231959788030672375862810404822092893512763253567354440059336888269578904704852957497836906719044952057370454810461916239724182622354574075225243977110161663998025810565142332392701930700859696237707736293968674250588562023548961772541431407278016150320818436628729587150164883112190695409951434302592760196720584760094436870513218486033155620960514422804871604845745200780391557020337953884687537259702539121426711359650561519681530785454675885319217289668273428195675951358842461966589637109675768041657196480775064321087267553949342727014475303391567330919458353746219625918613496027116576121035322266022067271809390326664389018005231557404910084159947492436562590645231677985054352568402729740198800949456086846763266240389635580720220562394921905162089104383530257706259209424349274599161840210332855407870809752920392718067236851111641184059349815492193364711829783920546579161910886745955353623221847362750464565469731656589409527234538022936988903993033598728299787664469155994662945473973401877545376559373993094634145742750559544658576737737106480226788733370687328370334945334283566523906299248050706794742291358864644789375313917383162197824188362668574762564625493250423508420217147148197444229190786393255696732464456774087322286414761443293665160783555847867699199162129957979614013982465417223770768170391878445475135560000785459509111538898020070716971725236151856610811739082518981628953022334762013426468110735988638358260941771832981779330283136291234013498964049528499050291374350526415831767117507988457243578444649499997746238433480691391594166559561253188953669776775903046523345284711336392782583075494520730534566599583333969068362660969636354358278473261418292366331476838738814941801865914623924944461577887843204630252160330509361108710397542553559236151224529113347791933532175082286041248976967471661497471616454471714752414768906344995896934623739826478937778694234098516152652527209083656636911446754753050136549640479756177063822211226908854161938591617763242241496721115017608901223273598165130914329748163931623343292290680873366319616392857381160718461448248136864752496388151849016299036309122320269970372760415643795136691389194488557244426441327490236640488347550687404416958403927652047194170730636578426055260497645743322778381177053662707346421054781392218063199231288212119641795489663711150189524334236561518678690247892972774225551470263763394866928604249709149086123200417791044272782752871401999800855276273194446952290462223046502929617116898131270219509141553126461414878582081391658675511627509439634246440658923301537009928273217253042260816898140593248609609212474326637719081224162551602009939965120712311771924663757596323592607113675103986540921687229260950311638664820603819589496361110852178505784242350862316539539029972440358173022552079064537276007466885430336829920006546796383588268577971375269897963171974420118488751068247003788339435256848285393341778756868481418149170437169944908094943284329230155684689925277903818346923127879049299327546636120350702974629511362006109503925666986679546095694870018985609791590945323696152024053949021015252096232956949075742602953847295656555331812867554768380136926867532472902578117298949395169606837932309090065454909004344265930707177639519664741836538471725120859505878353414811375673722619795837443462396687531380113482130067211265030662033490802079185139519564161573619202466187645274927396853968407528916714756767544757653593257299424360970283857621492213575360695869468439787066652064885082870754006005463834615455484083501204043633323458194797851717184436713661112902412044210663949917756627117015495256448461182504972135974806412140195558344420522169406241926873196322995233757394463529140883664799928344537792184302340110719052732605740949764635873567551433546203071902156529172850086149020167116142629144579953375068184656382296703819745719398587871413766545549837680951706911565758632830235990719730616705963288885345787956433451700835766113244796301996552485849594171177214578605097039967597296864248988964785029829679374685782454012970040339428416163751368687957594275704643393968211274785510740120620779643819202171296414096567432317667292770615121743370993416041373345863455553200810225371506973635702580661015996982431283042660049500950491768821519072374575813078791492223942726569262939487460745397801145092901717612236026266086075465613790466344518510514882066966490699796624542929898406488504645574840843559334536404955818249932983654690322142005102990704411628771552333525636972699713450832715594577309332289687861776482809357537745484438914243242042364606312506732001906126142217224428446268189494323406715228621633776326865265925031389827295440457005732321768444388839665378849143557986903995184572455741839341174989769707038432608747281983979302867715299599982495793484673442601098869803453987416065902575889670836952100187323328668839463653580986689011325805462556552799114060566892408400606328155803432714174311952176360946858272042848468517058052167480544198930986883800599246139166345556516242890700371138348570900168840772293484049448142772276379182388411811801117979364641045391198602718766318978842900541991555350565395817868119773648247094589636514096037909095498737703982525184795069743212630381952679708678047704112212342442493644283003049064994270634384424735859788461070078553120424321048760841444469298083317148297669736346122363135559713446771634025541114928233521005359713442515379643432721487315452593250706063575531882687823099494585138490379286756713811726618848690977347766198551771024836331888211486081809007026142711684006266944167487819606724070727050916570995973706491139366152230326791726666890534685432558483935037317769356446572616918947005893691239331274082416255285495975308391075197527826369527543768607092837796859642125033372997256448298317368558997037069728673558676324634421536887830259772062532584165168610068146798806141084666687126337021379281888556784522540545849769723453401277024286825016846808962468954832183916706351073990208889454682470776760056530726872065668439103522356267658724641930670562882819663823431046564046402787902884381046558715708748163597771944129320549427173448954671072563801744992717115031505461629482805814026975625819489865170136988979831443169166883018667295372139652054323152980570280065442302005767341268746289902953871731741662370665690175551655469481942272770684161832602255120155238805696020641813741771397848119761969444890910552882806305313744018485425690237844550215242396397420124441604058481426423877324548692822477606486640376894699379733243231805010363117151684430145771783592765914582976559588122059453730552679594389320161092492665009046645367455119545129971016032271723161317690874899923002415157547080238474505399185640675823061258348284843834687606638581951114086861217609840850941643557597993548906299736788896649318857345637111855848368776385337461473162263206545325096933990207410076209540420883891131989070021445927986034071800421631129075505385358962322438873127163189601400650028124723153562132299123880311099991823561146489824065334280323812518124946356846739234173419085953981029318128767153117154968324872848713033798445301313461534942179152330471177518708569260135912810520585854254703047407381480429051034916917147346517572702522659822865659416946154564625298754874259723649154360851088529111437217174694095482076888149053817010512383516171257528010562306821015801007767428709107715763393606138533630938119244704516525762603123501226915438099428381614387814536549811516909868076156349701019976395654386489033454581017509482129541691250048466913558606038048248774651515957603176685003532011899713647636429471123942389449362416704021168948617618638116284773008014128089934786658680818696433259954971787115384826823214136030560833718308584641972680614221886259369497913368952170335878702780100943274846790493360549460662725165322424994364913097984763387228543813615512125989261937171819152133678887246451457001009736278878246437805315707562388951230893656549492115132545968804744459942209440271797939679174008815057061988162022611423227670583085810987762020083500179108602865787366621044805133552163517463658416132207153620823424698614961349602877250584777349686350094000652459523380791187712801014739042018040959857000645985431981620012924951049775357311598501067439554176658380412018857696029499551938704479096059906110292036251657444691894085608627521501816688552509162541458809156478396613812567615334567822712689513650318857610791826680007033296691307607259523808236389155480987075914057238927180098120117539142513216664162367746160964136439813128658787453972958649135951670243567481987390664701702027787366570749506808188898142502577524767235460161092762609536313889545545573524177192421826291799072589046576304526390131284497025661153589154813716834252423248564133275856654923337206463174094067478146970464917814518615852589046503321134354539717520708784181803414786687645433199983588338928552445932678874606722928804953417974175232522971404999703836066918932329087224057017960899964160162645044090692846128562667014801073741522624826398710558968993867792424577749210718873630679483067397147218173165407619341701855148638149933800299329311302385238515444252187275605891547174636823152585901478018248662495031413434418491776402649635716107699661981147782930935312937350144687960376057378466284540089482453272252066642500124670562436796822669283063884684888925392545891557436275106402344237768405401123761144919133033479878048975335876163668700980648752585453713579122601295181191158848086453176636135822392378481223857889379769309105840355284605417009211960085007969025154792472170266542300741331481174397712506923295387827253590090401124145786905058865124628531943170839396331758525212118031609773880150268251793437884358518464814437514162766511209381752647659800521694162189975989578633990659441601091050863329272593170205933374855700255879578902008685561716065174102848455316667915533893084400700580413813470377362260320233713721146034530901370731876308713311332393730041087132347890414740604719735455795150917816424626161153946054386027669262900222555057840279892747656900480720861274780095681615305944246575937975425750645187636462573843030013627755190966036422109432665281435516544573301229213371886372479166418577279063891913627343531628353906374167174425669468878861478004312921279243701724388352902185063420811160629577979801747173434825631080655303218793729132145376550514788105557818644130737489434874271641325573524613002883146311881978046634986366603742207224339011647972445229103183381243582563006245668352305669525685221004067986939673213041527524652480811651795273407552402353758965751215291533728534516499575741642170090369776138287577968931354865571743252698192957597954071456246704853624916984040284597798003360311499741922477693086237327857265166349574343924248082026234226991225117448526334473319601653954290816877671841014576781118457806654917669715273504221121217529669208644803914166611665956914320401839681182249875826379842924411909085347706459839889929518622604917404207200632420055472724655208019877713493108852604609315875764930795826162488357886161041458348052661770684040411998871507537695775013994199482958043192428391404057701166384491265183954929546474801987772864761533225502080772039856106188613015502886589071557903270705731800250702664481043775099114537486881050351321117556775675403073133976021013655599460327559557943281470832915592816970052643448680039741757039836289837432425452153579602945020784557946434937476385215346068106288858549418604221321775830401560524517343283869313018409953185042533759680132961408443009942013177133315441702966547638757296393353453160026661660297526294652446931154037350086997478104033348813355621411991772386495814129223923494548780984287771637825275942213564144821079898404937387032568430370955396956131652370130661830164087012613265889111698521625805320668863800563723322429297997020244975221939762420912089435611815133877233191950481368178302191581715632534230263859529650163597155828153216299096967483787173524934613588779054939450899855283269827991938429399175655837472171269604966045475028040655944909207514262451544439342364899369439274776183926061277619635906352279921650251148295354088847596265908487665908470474596685580923371931213019208801966727709749439631129192519532511733534221263901501484902779180682171418854072867346306290342947680916352331318557669299386868776064823787944393330986244222028095225946398866129683804872802943241508527354757512136421487533370183017738503794239010062861783392460954085689751893572862894963062518830827254902239707756337377940980500207779557104136843233473422589038353926419727259728700498702953203341311720082747222793784780625287062564975472563171513013061744516558883657385630285501065739990952326681953058250618121984643933071150740716424918135627502707772213550587991171535433390446356755635336121003362110408988502715344470704801810456125393180459295516290510496769458777548957032024753165802469648244797407518692394525469391435468507286616230770766197674886849525313992365293522753730121019161593910875166105257267877530003690072263205234616135059187894728867906739312768307419934655332012528601058768715615073518432333798099213679939937585340739313974302091926665107775752774240204069009191054509855926274600562045611291711252710962524462594135215224751081278585585475342328246801854500163946592728999153196806969636359925278736779999888413068604348819858689377107142230265324314186702881822057975719159485354861896563285344334342997714811942701567720068247287329817290743734588406300215428638503413398345032231591648491724366867220428394957996867162534273112631938825600109849297634047104775992388093558508458400827237389303972586264228089216724610019180971360528774286051506747176613359700466145856420829039162138845652681257588649480402346048596188779793530043366025724599892987397555241017712814260230669766601549151332306237367342833849236943683487926877827333145993964325759824999015198234896303178817356722282036635683278817671102471319008854054112526952778279568615619995229954665449344576154034059581773927345922678684429026939396848103461188037959674761330612897653605825313648710544942961823708295670758951189553878968249955480964237347789246289303472075858543756678977899648093413987484741550381981081192547233869606332565369077207914646041823446492368095021231983679004885710762161346044675159675278042932995957369406112635159803407577789384477549868694752301881826817678938432254671408900243546221417221084526934041200611732218964894886195979504622063918158753618531714813970162023055099231465306508541554332685480901513845945500736642033847827060873823703711338382247808261677294514153028487015632134194958416405258452334408753581594855492207434851321715441058156391089616571583635775191826054470241479923104167596731176971771011394191741274987903869265468511788914412935237645087672056828273137572441790943401883815581679794795743184611230117261122442597196447039353847091593431118850136446337949996271853822159429751957326680354875802921708755839456412148913992129114553767949028338080977001545895101661475107009311311301801278268833454753548205175723053664966509230279046223729896683403532683437792881411086074839254097062126300384168715601612726870838293451177326599566606600392988238024904798459746978462178122140622086341498358388737136081480192909751714144825018863611690826960220438850371486184496106444403971938220147522052977592818875709252430415917751775554860513590652194927297210525175355153427195430503095288020495145987493952243157261550278717571490463165029820215349368552243192277176897014245915047503990839373754450623706831396405781942283533289171365251531848232550361639922978996759155699146498780256029936433000222609976843541636218851146420097861851889208066057385297831020995678628352682052456378478882719694962899414072014856941868620771596425363983332334641582211734345947564810415688798550244699915949500257614039288921292492768414346380601714153324855524332262620428295018524028510005549073884129682835919958989685529560704299886685948373376619886181837507410276193965531841078157317556952127053219761118008586377860247872566653600852059802669465106059538921106046807460801910220553886985867496438031661900383965563337897130445616629626577251886326358332345956458978727979294141848018339698354049764726369709756966797943556879213297510651563008088603095715229511627889096809855994250208991215475665096427221030688011293914953093009043993427837032644949813715776020315270283817694130847897038712319066899275548080988433066536008945048719377600747782585787175110693235986845169868813542606645432400265759854455500602829235003777916144819750845930225061708893507976622526578154786123233912456560138371958582427280666427640816255530827810988408867843508646052743891226836252996479011366981837204829764030033897044739066698542899163504633401129599975961125748463453613603144247079147138328485182851819166117261662593431744803997867618957313661370259521159582522049237741945324835621051328152089447966233649729127234022730640750947718503643126840261461915029350559010423283063865875516229221459859364013775695814294540792302896755225410972475091161184904512172151776085295588058569223979393022947496434880970008815149921929445263929779208011265753678511709759328823004861574725770679874150646391357349506236976840928976076219004582843916310927895420191275688227224444029382968762042439505102516250162575640900793279185955232197625533759861619172651945803483786658289966273185103886178195128052234199543526169943441012188455975829356945464560504191474097030426420321097850664850921543658891627277311017931464869402208147799533235377660100893172469509060670897331925908898615313479676934067406434249965018458455576679723229710449334902440846771900532429413876680048066454412984530408861421396752841422298407691071156319312396529510462749957507140970658176113460677986548931328846632147914070095433751320676913277041747658129887476424538769714618143784953945066208423199374306731215122647753060090095253952390236962973873148502855175735558159358772777159015488085308751219907950245547609299399313829805551279803839652431874168366714363548787012858691506006892442585110078228511184061729506172267300612190289742330100600857996372784242626524951554722080740546718849113755416525893831395723477925197407297738719966337683254365211728724981374008550413120843752893785243758497277889687380318272599371583079230248689623748416305169922371700255320434831803155225753587439509640798703199032578057369446378398093866664438213410287336605409026743139387928447593310281888895882577744988287289965961088915419173677349260539685672208328826383192454951474361470508458650898224732014221351003135970082146304899139915868574535915529339907040880472584233075668611857043529990869139863484385745038009847787281219223536589929315150828431020811286960113595814473983141899032261646725278417733124520516777893909334198975851621312848506269254287880833870434257509847659211064298044739492859463325846129558899404285228573619474850539282705670230986303669933671763127108695074087367268463596896286106984666400035137827875396656235896087317093229207785197672785745634024085416650801381829319752884564226301010145407273352550847264522114801406072846250596560266695931494927024812118995156883273926691703233661470110854551650228412656643773141569714668549342632781245552921216245745913566473102308250157826452803229671131602208755345956086592399738230288219208494720564978934474872769939593502376424258335851742255840497750352263189806797930250277812628926382449566778328653773449268572492134324281999019039245800249215932946065473581280049882833959090686066687212769398380745224596679392432018022651823508968133046645393509583016739347288963922947133070812852510753037771898374895995060441678102577488106055968735893926019184461889672084876563155890609690783105579307788348121937052728445141405899883568592728484284815163125709270025669261318985680791571008599070270803403767925589215257372291066542716280533870423474495912595360949310066346800727949535260524926838179306286113616762503434334919601941170887272798544747416719977283836988324628089674346422374860409237122738995373548225267374111919283873174762985919201956271376347706318600071487174551904560161864898115276436905609624524226880506740577021957813832184138016522613844610094822367244669556794143351552873522872963376405401724544229881744535553920418500097495009828307931865690031698006831772581333731201861828243517427008995246728219127581670820253103433215502971414589192096046155970612866116564818915871598550585213624819161422345377772724632708913933778208745756699866330304634555224663418525193708736117191529911908370172884492974222891852280531178509559336856267356573696377766643222758818930792607433172334632305493871041159205447517660704569504117760241200113100775581082367677806798396062578428164217643388275173116134948650789160245873240270696858697565097555900750934492272864213569404423645446152619334883734312857788140271653346058509311822189217896700225068078724440577661660751588361074786690044337460067025711233295245412649535555293211280715355796429268983675103680043314099245388009547208166221247930354817690318072479885354897454187784610505443595940194199138235328548845771507287957728478090132822835132599163374084441708483296584178824499118972087160917748670398472490598730645422756791148915189326529354307135455430147288541541035726280764798602487832042304057080739029131636319530893825474854768534999594996045678688114009880698968859541743530316137198454494433980939890496268408021262584936249579172110504497172302665781082598581725189795813370066580324574265649998106182720247823802668340427586307425079727572741587451419717014163168773017199689464074388555381482784709136084786157494246800700903541562288813505522011558902876157097246179052084475781366804175922121592003691330912172610186105817946625079310048413049872986594482288306228207203859851337002497180830851953058780623659181174079873304790547876818120115441688528416003071623510444968115497295867528701901149428338569690144025456017344170797060830146701900632729279544106984240846865039455380252330951698025264034216664427738941350509843815355408292386579948318785657213353802768884901981647453100307765788940769979726989607098616618345384480384058819855123265568165423279281390753030691759849745543016569711737492120113329886008768532912233215261315890824807408993167740776733612082277211831884371271072251251721431608392956119162998434161767155934866496697225609559325506992782971361221838724359188686179068414121376599292078831541230646468762705549577133323564216976019139282796586567067667490623632178570772348478233491602860647567896437901047149746272994804129281852337384703037780174031831323693101746674547983628093006539492654919809876134765248016779772607978195136858282772522454665806200237139063428116604129196585979550042382693079188427658098457274691659529325860205191240985797709068541975099328704802112418975535624501590970897559022255481668839802984086094467004315551264192881647318905194803479033052257245443223644289061396825899580544495030391638913459869326657386330496348889190254218597305842933754585974941682263039742526715952057979749072833485857240862717636109699496570223867305703070742993490236745978537492298589970707168729470763508583304062339526151785765843696858647398641999190460712590367988800735607408692338294762721526298146632656455863606673269745653988648882249519414866647922312385389421362920464324519933057906682237360469442595936500544114195103204544871171442754280183352160036546940511904888668536411220340503225752818843084136323382048180633229261869939776770935776792879795704540690534528733211262548684615308453669101283459611890386112344397860244127760447464992293401800441586858717270378460431451629306744592657554388219001078619606006087044563127080124486040462579657423228166240448844994433413077531474817848900502425776960726281338872190458559707537829228196039537573341623080670602082778512033604215669545231307292015482488312759127804521583557769195026068931683534827860575293718744295772687747505058673615298152661563813409470545898346575098822548483111291327321087590932585388250476685763780657786335282368828238829588450538829543768050644135722517370987102120017984180642771813286369614564453097389893490815405891258629775570099093278983929914618091113330025339586520967306927698665124656377249752987271871259384740962915920631952378911531285010219288204365910370767960880724140868163831809550024466649749676988036235048865962018605744596256115914443041329501180741157391775620993100323115949233247719730168356551077477337618889935643828455214312480510756727047055002963852068141260363350623263787131725668740680561138613298666210089468876872921396672612760253239964176006842485166285304696216513449312681162379157473592156642217586857443795081445401044054285937851739078878873645970446502149077729696154560265163399607935704713900531764291141805363520420039884501554190317105659496622023254487488029307167927978278076752460766480285929564903595791477646177980301897466554768730500857850614746186150620182721983293271613953429104886203938026342538088706515409234841533257540181659807425349598939233098599799367486555800306982917834269460878057753650772693323047579042660355932567689684072322186569348180182384839990241826713580989920986654541570651099690505805678224529906186764687454683983026985769087515236409332523795793071720611879312540372185268192815766989370648254731474067739819504684486486144289646796593003699098128563265324499015399450110032416575544877948447165323249880102323423451889535547906188257480992021789003624819854840949965657418776722924465557094403725428458699773374420616015288532176980271389934649505518403736927239171865508811007834331407038225201015521421030348265448769948737211318904053338827557337920151516226057000271114092430881743308973471471396840454423064457865921542786429346277213266820418855576556044098380363817927392297375457100444103067825783314371314431559987881686546910832981562665452107679122310968156886929554444407132530608978066835986753847221023207823411039295321042278271381278810900140731290009051343505051374443841799003620261305756027434436645019789752826052399995141516982570385483772182785838013283570563073094237852561396013724442088832929988474233576675938090443970586158486041566647693919637182820601958265880646249386441195551604210923318966405850588883229324780801762420780666349075698948060780801937415239982682530573069177982999666089971222095161430213370218578692295677659033594535228259536448760470782539719552731727359816019869016365761288935829256011199257519686319372639686582601341709891893019135662092972335848486014391025761684534953562082947797760799350926593962766881359937465827578330900255045194895397630262975311204273061927937169283592380259666700395893987063930472463473753481754323547759803811693246442290371333573025173602262942509294695430490154248742374725864624215444618301943314732232116717980725518001768673609639862107602132570473495132154186605560490802239188574690893475684882329713886276369826021814736400547305842507971466986300750335159509740690442964360437338515816332858543677861470720044726066118886826131204169110728415979869984868901305488954107384061095811857866937103024247103832912773197457272685021192470131840805499095007922036291552238354014936429718870085339454081401403060280096490953220394453169791893212698137014746120010272098715430298645815418629101375483598864642840780754877195634076734156722341347331287802410957520733458735017080267030980327168527126001961961996705322442534398894342488724664541376481438444350223708525622296400885438125486488873782354498297374460884736993749887476283513304037818137268131487333073187763192178005132005688070395121042974434243090298806927340062619793504225568999627230904940779539299886539012370726521423097862362418783381057624950198467984472410292363051221392542072651626701334750148987952499789473584225221029813034694423493785234955578720783933346065064130179761225440544194919236487236651528779531181937459957659441423851260809725747951132529613226923041107750519612252162628772744783412324879400692499821332829800848911807727305743167520626975888922560957012390505389328576291300632315718406855666330419080305280295103832278346675260850762955645549329417435675219047900112475595952685295701084269793979236098279474651611455716750737590896617453824911357614532875293467456611416462994664335926372351066428258392159329663458106284150069868904457058330408645717432274345179402640765991240152325803244338451934534161930867838341517696529115899839973487725242149084455118367386328561502534575594677969134523353844929388548826618691523604344526156927970887040618044872094759094630988059076732342299694828615909438399161199770429304412749444579814162423844180949135627364962996800584929950968717249447794928678451814933330206331546924806651935989438400223151225892110320954555666879771503384981256144426015314103888666937733766023858701222130892322243607808842517513234345339449955373834160888620477223741557382188140234813950762972804822139584522351938168197314036400642910000995266441003436842277105815868900529730402079081644780720630862039878453574821411978909157452776292239469749586563504903174635518275289577821973963356455836226121546422987611044419077829719032078199902368183478014975467097658938571131139920914741118452091807329212240307913708019464186468142248851106311561105343095909265391352528750021377810674567752772605925587919654242708651587585269175861860869669566825915193762344595577478456847157445368925728813922100000871452570227266236917714442751925884630545737759564233398542077915857447667380059518328024338223346444013951164885471544049738844388655303592574225747014883875933952975833950580181272601879321641428712090173756435004187294718589788473793378783847027058713424418938736483712773666734701223264007526065373634624759218197515294609129685450444878221801704055086672257971601845414622079881857481882925142847755734839165805086498241291876563397508363596926424083304453733817516587224673948102898413386247010533438732832091030009610531102675850544091600636403996579756289880720286302564306907421780258278256550840414414020977452076847318187226913620822332441964921178034715652250998405343798881117435076553266305249797706906515046664869640718364924055571564389793818502845699382241552826708176192893806025695607090851622915371117456628550453559932628944588293517574658305462331495135051722731709305418942093193314831156982288281243971980631014662511432354586185858507862255721712338793089349169338022245315425866631225131156009986662643751323242728107058920449676050171828629612533224393949447023242188686764681763122905428592395001248290961316002146430575241560089944528762388392802824219646909349808617241196027505498340143151080921961378669804373766781713213651256572540349592232418649711874871623005013439708241177730662348733402462371489858825049233940785606657830773898312010664032250967972389920649784492141042804470224535560616575653709595224951221643489910354569545342993121164094373965253934028527056759130347988712014639959846960459165851090520799885394722592079574623347534262804064158906439997826629291251211682196120342948176081367904981072703630629470849957464018890611095352074379204061545494547399257122665129833920253732039694976622467878116029289359300227366855736436796313993581567776054143118260525868607390051878953647897626570928034951786780914146884437751929708463916796906297795951214007841516025536203108366080930924452710550527659643251963983001998407674155672344969518075467891373910326971837006695692617729978319226912538865349314430032778052449445225485225288417588462465803613714875826626688913221101437974578585230693979667245032604940013348194063094562909924299270057631012871131076513976088667666534375192538200290373016986051655627180556199956748931496534555375818160860757501789980155565237936852645057410415828257426141453141962107872900957481477645006781253686347916798377690948944954589882456737932965864597083579978309229245235918359433215419319227631344902709685307769529077329995063031980865140359109476982753754402107087349197631681735133724589853663856731758287914867188707932629840343796404999586164105043407845233601710779055373057900656421946839284720350475408951569758909159486201700208186402709931507928649954718648881965961784017686010715137249775249924043851233283264309539847527762166446103917839180638084043896630499122756023686709017711961956514781955258790515031762015875097458018707917895335180011106549215161090447272057563024307161526340142332436410357446626455538279515494432521914277512306091568397861267798105824694167602984243616239414622291274142767389079504056251494841020670443268312149411932677333503345122403718016280160002643478197533975178051068992983898873508300683763321157640067306668978371287706856575273798662226229923550981869692937579531253904910029089756297920840671746967212152439647355680698218021535183562812398958682559514072617223515686653202556393402066921919348924544532328285767675902944014551495685170346317377907684719339627433177676133561221748619133218914398523750000764574961161935100278989841895072630479241475649923903508747305004859163224948558172170572451125424311575464926175955113194953771851056106808494435322108576532294690555283471680581098490957228163483344445144339585364941842672348959610164577379218660173059328975355917443704321480900791348680125436172597234954561394408485934502468843547693079525403646713766008342637105067185136937281796854443152352075193755506246658304733677606188644312208645416963717408387510148022036198738590879491228865271795518688885478273231134297748564370596574420091092534966252915062170208551223492851475234900556214045766483331902082643597089031741706155057940106089353229462954835503625657497787375874163709468930397610878936094989592833459362808247206055724331791351053628485136533113711838247567317085985012161304779441127971458575802240877133440411639998239249946557661117724140279773512172068432438574285992835366477441410611167678916473932718489872400750874834401714917197924048377530360807272917944175688550391088201630735108565925644717568598200516966850001885813403022642530513976060543070617785428374230108670650770066535330545616304506982426556957612399004106527680387866503150994775393745123425615587658671055444761109792836638218628566393174956505216425808101441173144507844007677564090864184470435962262970946538545022981808573099040925055009424945758012670448612779418570575109771257251308901155736008244656206135353591938924060128563756258943495600731836900136686141401711922007483739954004195025049855697425440084689825479256548898408798514675668537688430592091701688898787735366664571753447270229608367431557034209886408962566138434977750161121620770431423932733924691177044942791072590723220898218879962887534279697442023399995953975330167899947229527585108777689180897349128164654982346229854363716165425775172991075828735182178933835649218095990698355181970403667359562126841816317886775520877126271638867988604769447901222559861504846642187025827285443325515764178170615392558927484078744055319302774703538954845856837283746477459615320652372169536767338285345611586567796300701732501167833939617075610442050750301948641353364698286996138165055149051575344361227165694328370805441485809476922180383463171554354676844924955534170029874578517721179774324676705848678229025236154842678772739958278452607615554671068643514631669705019433402340121069442555264833802468732813406796468904486105340442452543755139406460607644102951671164995285373240140441968210288635276274824042627952897932151479323729041053429200536008151716840438545780760001152369486145881144085984635860969721090120744621659974135750616459084552779712391498793335146873082003067824206594885717723444647767307735577262099377138337308103880718824643598567434014305260065412808514606433980497824766370135775275493292269255204729547360383189384562896429497311846184087499391892901173294229420282613938350112615399899486096637805361948991267426278438119055785269892878535386022214265114601958093964486128882996223135943280755505830259770878768842146203241435493528519264336758294431856845459566844896235491331585187300165623021047325207710617711823858780713607114161560706459461550503697884045902149757490592891461501805783914579890427828529428062105254262081745423251143756848645008190368422422241812848688930320071893886807511212597542862456190183509110697029844743896396393425027739877915896299690785260803432582827715265299623250151629887486835676208024728932672340119030135740245351332157303905055111211948825475369935926250982410133774944236872795291971819283137701637131507723350361255189596183959941566907073470674238016522112757895606039845240492710494667608120977171815373130272677642115975199297217486443154566391406074513811143006455504528694281209791377130743889876871478008127236233507106566755521653415061981879468291331636849401394049684105791780489122904094673915955878042126479197653720387277678064985310621507377889370223721494352765253663083793552004845282429933539220894800542272661051500149438134391946963595213235011043396943581925210594780520182706674916905331974528927657683397323257525193622423781747798326274732127820960736219257566749740797728417582849414764693485463149833707298576604001047198508536577134958831982890122746237912624756929295997425991130099541752871589102942745112236946235547696139338039487071796491626820838884798663408371666480924760715738622305068821235365706735489595292730462864573275992511869967587670310144463411727386958129849783779954347012367841530944635439430547915787797649475763670198402094965426063673111019208070944899924701873701047024671866382775850279079133231058312290008785743353866257980482295380024128656746294012792684939927553340241235311170738707939073803136916875786685948537248514155656222864623277654384960223597362511134599647024409310563514578361843219253789811868926534839669138581137435329790991214059133866004707470010435574096863328056243074384380175253013074605617690442455747689312116258637528019594540482787118884346357911900404886432695856754185317868180141278558467884138599545445533282238022479001520019974575441083543187401460163563544939892212051756310064727497188543437167505445457850109534504324531681378809542455491876518949617798623428483201563506911843497276580309064484432361836968416478303405633580816042795114500004863861742791842354418521099490757463839372864755739093060398930021458101199106329991814530219033141126008309369625624504176558874104686092569480148820809000475427102068404525413041316764412948418513253264252781005624477069688285826691355098423279944263811866456958419467244054681903585300606888388853810832981641653479689552903325086651255170036360764929468000032300872991455805603283203569135427314613554097441065278992364693791421247467185485576884512873061562728172092377997165924480122648661676938781121488732245319587405574963496749718726708008147948442615934645976450327157164759821280440839828931261123775491448459895687765511375366147421222394258989440895524318181276284846474730931981869761712282514765198556282852601470869239793028325997941313299610527234710430124209825742204879993357615474656333529747592741994892281451913264730483305762299445234428601350625826146505076189506634927672140190006789073539239183221857585079019858569991002312394158936074565391034716983708189664278182786734688997270182499319934978987282735416064131096919852764750937384946834463466017952061523019835252814795679665024440773071554397162780224290146919393593354078613649563050169886879376267126168901573371422579343714369109109779849896957911281199246449754217635029790150569927235329248374769237977056926550302642408051729729034553077694088704549103016728565516688952708602289458011209015683298321150858230884505507604189697364533811676668894974775095311368814857587259761404720525645368285325087324229204937152067984856321481170744881004506059426500681535503160348968773950379871388799860577253484998625928866063891442677789709202150214054751543752121111259645104269837618333376648152609126478436598353737359485619220024673434635089867239239871518123108395967679285540043734160511630327931767221101877135700390794854023845331823274331997882629943225621617847194227115004335402435377379353841578571629381333360517902660377690244817519635885860026935220031010971693967259103007956368649659498194278688685698644452893516784645068816817155986341908267439365162332146476937801286381201777572687825027580475324595885664992164688032058976728632459666036383185861658038544064512768466159562513791221548118641241333051422572611264402628769571364811564147133523521485123277016454344014535707294596177248187369904820389012911978256206033177175900409561715326396214611563953912775073629116279305017407521853056756340746055015110523888101002350087139850102235797325493387537683104944525293568800583247536015062698160513926242316219749568554621887536401899533682510110148848449968489462752704870605889372395183997329862680400610700062655303416170558597560027380872268098698150047154334578234615551442791302753118497308161191725007665435442574308960409588687412390301825011833590379142610724834116409849556238207605228123926875293692380128578929717374715726330553385196285808092215714775219517671181508994557639119954717111511051092779575906472915755912050110135879506643086651870222643737935512671377994503308410554256879452287260850009379913592140625387923808731153330248315049180275296420779276169108513092760572222968822856373395277752129932642776648295487119080143867831507678491216688980908766918129543215840316009017854278315792034626847155103699605896109566073121494639366627331381010649759865239604552500739498966451036866733641978077929482781756306299545384574510291835125159485044306072553481525483069646454833736385091986488941650587306209863373799361598608763352644472391457181780627767175645410841112264545749462419601171449660554754479678084458479052875874065537255638230263740529066805632055311933970562160790522470394443477736445377808995622911554469727532165489408563177849505403298793008148698148482198723068194995016705428016233444355283933597788881044846921699344279538109893254149848468861500521714974614402745795207129327431963110954325427238058443356828095088663135692716054614790535034466636930628333453231749307639472665871117341878035840016531280569548338495743974781034131734722495035575583190254274764996533543542247278935541381468447697200528490328376866192197320057168399784483644655015908689102264169568668003298900472685975583082710252507985298107480541799203927648673031894063812218395256006410269318852236282104007508007099328792590105750487677014211272393339400034398416528380437043455525252271282020666700858881237673312359937780332965714779189827913032283145014831500334871257712747307416619923092605089594890706696968160132445714106526901413987968564840253255152259585774375593552580697800529003989750565619866673953565171317163254477811897089529021414775772908795791962961889009894258064179271243209810778822014977220410512068141785600980733364261755735172523861137853345263006737423981428534599314203761109219196611006959136838880660393770143509647790535181628464365494477805870841053569035612304008723266729642952050569830734647512464187004608993836087543317945151921722340279425439471188874695500430232303723694025426279885720237597102848791871713645886241004633554626481663637738764557934068443566296498335383150810678366320282151835979492283209250102145875890358893933535117100962335541195482479723531836077529856578163014851945982189752514235384151013350926532167526848461032880565219601880070132886804473050739790060885146220790048861862691077474704549240507361845169570656008662712253400614924635459163416057846420530517343235068725295354114932367565975647585670275282370957854489810869724720687541476113301278009026393559137377792216274682065947987042904443284492256698260698296541038662582305053022416288568650724997668492162833902103792741629363982838398107122476491143988696334871732158889958734998667951708528631251716680421711276251897490613082413482574426084089181622082787265883981063230599219761185442081777380570684069717768035377590835511144458757940778929099169622785124352352146071600012926483609314190203390795069474402281078783691686358818828380295457152731821498148810448175966282016538098263789129030630647962361088689457519061300925833615823960267864075360907766759236866042223718699769839271844718774829558207302075510017328657755687343821492441391009240653550526695624993633955898006736037011291153172705569694037281423056900294766355876701578409081677391644396180553630273199312135726503789706358043147016334692188861963560772779072496004244533931918984560747414317115342042595267540593270741991445325871213210415355562148014931325792121522741947004197907732661439104771028888789382498972356361377683601347598128756265596492521199540534428768926464714490837042875499238926401999631407405285385412224379897470861520689460946570665685864432689489640621012125017605980209828834899974531531593667776024760511088873993348313803178309426970998764172327341644412329535088968821583734445100732559571448004988286433855599146225515652328817436311463887090110310328168300565105921565831098464775879845590591258028894118545701239121806642452448298013668911215294537954755621864519592782982958049135651241418985511808715605603933949978798321477821861071302331755830819906737060237760287580790869617625681397571878028851897136689703173617290669018463989203415932374702453250402602858095021026615065711082945813499736251617971750401668096749494568175283122636688004063605588151080100666693352431034196585885618080939681000551695463558916230856710002815126056750015480811535070245052629684292193829798200719552809415586869050325483587308148576931345017389746208873840767865341488784338570883388388571208661412342273371895431266302297440288267964487324738840928324971471881993454076920556102831003451808511328297101761364824074241162536338417385459997234149007052175516926109999588090362616159789016912728636801850175464149624702075007801101444701448292295047038026510665044313682901281661065566165990750401218475002214754273002429865707653383321567814019396456078076189156501125346820620302354500476579182246423943831227222777187811884274561076575892671001402065050519859351113108070395974125837422821048978530098004424218200857810215638065564511296802179476560789868878606395793328568131687189847184642368685176203248958690727699168319141041527097024892971254980767001651192082397835678281158269390090010081388465395605885361673921523426103406600190670369723988921711221865880380470886900128760455369592552550113403416202138529865583611692502177444706720253555743273526723292429037158575905738336400071171026930265369872437400948888764039161951664347181361925654944903964516762364959844040292927529919059983722091479200646957471295539098200377915775322048609500187816068925571869810067202586868418399154137574648683081375244749019078612069766660706750812576785393892993618066193691670923472125388190066030553796694255907478770790796251784053961690732897168301598846977161276642558183783248439007977976393992269186689126968829159237183333906087510456144047440698358782973761654004199202751219142298408882537623555185993357522433581886075782020097520757773976561034953744666854865894340409249610235463186310592515331539761938842796197148265541475649499742255458897735480191748849901230587561190234166980527585265915420400001582804775636473236635763077945031190004809652175097834334302083161355200231367140170884831316639767056566064501433601446198393173105813623645617334169948314986617682228760851402680700712750924051651233150013314615303253695051056131492588378630180148432502401421695457165199390879897198146256477606977684213657733523932838206125081510058275896334665552868520529407899790110363555780232697241059550812454015559907254621531000476115945447722401018953386279543701937739624252698535704514963230345308849839611101737252729912117341925748011471392374291851107383086250908232735774838779064615966738631188785390231709701082067521017361797165993837189125615411260050083780708171452571123120775710188469333440352898622896116293255308535937075499980476470220031822172494095965509063178430939206652037986340043376087035894451956718153202925201388403067882609971069038015829396489301004963238882700365801080467049211974020847220670435358749712193000892497723547171483030234273684996594800732758540589599616901266723063047836537010675403895119273506954083571151312258628199522827277718685855005875331133116258857313426212788533092717574681364459796026955875959174343216994110058488755371275900702093459949600608134058022500803387948780954841223201181695932160461589866621717114047521193279835988688408099632262425298779826135422322516411011346690964051184580809897847156865555530787088773635328367348744814255311544185351747871812332991296690425646105035211063040200554408313073761591392688526887400865832264100065350081556143132787638505028082865135638917730511827896275919559622120847853018805217420861771512075017526493568975888970747141768322231550127077191008379903558960745527723482680325861495728751940037896355081752933703423239581797419140654639637977709539696435460232648025074487979909518362333472178980677025608053057624345605928632781342218345798036904415098585696576071893452117327675042974968727894197319898928929348397634591324560590696083004886423066654123076526153343045320189164589167360606322720067230717224535118738153693763543870204068666967020141127066404453048295240289926501310168560301131904067264863734468693371836829188320832250858314314550508934612753267015141837569529785847270878566229194040715702969529710193790725619718292694965989180800938529435745718904837112399647708890820111119915899972117834775755197937616650255612586464511924069564470484022717576692438671204140243371474898068545395907913771349468832054849578669773492902494762317611911056231618584296897750835842676217704571354749867277040238283080216667739109719472056699032196199753557496131782155777328255440926999854050094650754070604366500248849921263626652175668369090430366483163408724244461947186908114153529190156988776965259604296486045041505226258073512785365794393553806757627195702002635787616682707465333403456484215505630090672811701742518967186673819725638674881546925739344037041879042988142456792119809636776858534171061021065490327620985925304082180958442645164490929034402632814386398923597767380997407614242385552352819075656444381983259919626958746414272126698864180326582214766947306629770432406252150603016543378387955033589112978281829995199672833070804894182888868804757351579605272525514022356081855257648527105046220545715360551847758516071343854935409072741747094976776204361645112957663399225890993722889410951926442190836234738416794559407671957489995292485115239181835205561155422257404704443008029383932683229791958004215342849492615619482745223148757357810469196470201555574222120033513247282483162511421135007364034949276159638068688390685807051062627813615882306539070429653595913128240924767698127693240491603941795021691529123980098590901998935959153301991950122319206208850509864143521504840916170637995030348166181051616412807218879204226574281846454661151172899292929675474267370919247883025160714792042464935730008036151182608838292204597397590562444038124821474306370376658221321410469530618610953265521264840630267037322429191423679376540008286253787159594360154135168502894575852468569995693448625380416228323805639848966157486124083488386826448009547220229263193162037342602216924772308645408294072457088458315329424845317111874334422840931615002914688739619581361254274628509008202644414785163504723692606162606622644032118976331641915206634253929081809237837204906519794745755558624489666395091735000926892015996233120842534170017650567030094401446947994681582535317061493074033728687975687665103167011051906168705380065694732489676654192563260794281406933735511798037303379900497527200944983045468500635423636513644617234217289447378316498548510727598408400805811531301055405290190663595915240005827843912638047882007617476811123529429859099098742652262438861843992421405828234248353636697204741392295871042670978674956482940819812145995975956087495299952181355629612553547016498216691805938674600132728720809259142754737984790007814262963175245804127462182054735584091225519602587852796561270630465740627663348250831573571448576971634960630057458891122318718369027490842540584191133308244366389819402900025641859601695937302961371232143564015826176980222053277781762349823486133106102140916477741895470209240784498190650555774461757868807040218800142172775530680176144276116032687831922845166286696863594014552877437586188845078811598710944377663438361515568871568074576611952865672720570685236493129670659859708535557469203002576021958206124175073899381934109617947278248683643130855793171388128107843754602134076266575337351369869434317922353014713742358424377970616275298649590101904322491674829090071123069629675305921505258330051894568703466300142990563189739174823827494056565171081858472737071635454704791393098229109540905371223255724594624746371844227889283266452643105401724800981332922193277197381778595082243950497226216640461435849624129088807381996808839186203382600818798528909475795338343426010863308759073310125670997473731268957537644584238596307848074045585319182868068867446719769497136836702408206496008721324451463818030216782115549547138393067546576375910240125206807182936327203735311733297374664451008891657440849952714808357837403403225180728565335388149245611267470510573952521488474831821712631128475782934832936859535406008497381997883632938764479724567852175150439227498108551443041219722517996553807047299297454286719793171622648679767990052263336750299330617503171575067737011474288365812052570743959715704580594703109156593612969406537498122371205125184203810284238204989783202013559524481363308544844267255269142509033761372540292116319093719859182655294982738266538108797138184365734517138396833302171253812914590086506626476130558702253308526154384142746756246979243239224935858938858679020498230399175340452277388199219836683459221437586436453868699961799925153628057406457548770578459320234021529560732854545636628210938600347807343934939051792751546874609462959733136441833953432377672015966837056305951866081045532439919224870319367090226756112083555089899864333901013949260760782421159312169841637128651097547206975194564577543247249773615235663770205291223391241221060121583550731348717909457147490590201616857550201944733133484578114137768965668103030187464737556135713634198244097475245054112231590585568072294046852501226560822712933258464219743387966344296158137545009496737218601714568421769978436300371830999347471967410348652899241245826526830296486720384278451808633280114631328716724815586008972941389435405864399972283996572299786399691504279510277772036402607927667932390141808350627769113649406957671927082911966842020615486971910563489820683599247021232926227583027018875461352996723361160970835206252326675309754023752645818744913523209517419954441039167433425713690049155071578687460624612373737536882376419359046545308849221677084309890629838363850219934429035203885368807838013998583788803506539331318832621374472980906753126647888168230375002954498177276115022644351445943056795333844227693118413773238505333488596948239329907029279191102404105457192517280724547391324373827060638018897029070010898266166165882435909765451594970610360005932642489074884581944145719214474314171117805586248068462715552032156180584149929090650468168671029996452430514106123144565259486383130921733063369972147459717610071868436704251468812737002297759980998347644541047459526384206210740890561653190537308545732704541169976026623284754790676955438650913187518610736640337722250775342527731414649497550676221019866707329095393333059514200762470505890003446731720514850836904748967692426116011589407363595842931843786374391677172590866497697193796590827860054061836884668029709477911433007128814688101732718277409396880633209013548327285792295208818295939926224195627230499396195619449145229575693412794287940117941574412452000551753305774419230943883265095852531524851068429905344473011152635374988142596087406615297347494361808909070629308321648508605607783766071842103788122805473109468797199059769953257815381623727804799750149037935576334435105366044018518329654559111073621362350783563011062584044047241388457299245724443950845426213915508689538003712369733954740964579757001964002551860334064201772901931024059187314000518923450440760242231363006973264162396867065942099087620182651216682205175870097138766156359020322260768005975069095066111301369186410880285518832990038695515658715408289448528386159447600069035912545514219877359342773593847731316740487622511365958976686677377526324920475666792990815633969663182832233361811524076296851851886677565450938901618593350134958997237186170603057920586732104112508754051751463007421423194620529509100881191165335299030347812055589937852037023664275765130577871762862230941392465956871507689879550734476075728828784444168875579163252318865150989502431572369804862831026327900492470871852168856262516211542950607378081492902757982262647286240139650246334228798513362116189068932177467373934372102901454139453516892036990817877581220734561686277030839736721302405689410774450036327157277009247380315204016104641571494658343204589648093687183336167255880687220376781625270862822658715406515332727531417946272050213884356054197613005399337837931861005571489050313349243903778794561648150211555928392886637405124493398253584294090083155907805014456145117613462957609036372566679378452724590849010924959622254727484498509203613857320314326297855499284364270589763035726268050169710693328669912090268697990594558679159885941072512145905698935347481409083938129678626745304661159765865617458004839063822912691534059940276570306068449422390390422708816938474492963065651230928389514916841327835185620863324630985184956163126208289511083202921256679866146156081832393762554705723673306544292413968858335309288951134870641846214433529916884102728250966709157915991133605756210056902194944140977980142026428345319698806392961148373636816169175170874769006550904427347482813511761586123844814458245139607822744543507079420008601412474803541589207567253292658798104739472269926071490067000333328104724477922915669679205712681103623534538974111604198085520948075264188466870481165842847281261876090910958341579180777410213151520486979070825529517058469732543242279023009164427696901384743851426740667447487943363313562209320772010929614252766560148583564195840514295321788023314554877544591647671390558409001744562944989595576946064971267807914450796047975721048490155834805120343726917939986891110150889703675884746266702451897478462190759870527651403247668433706253674427380861001797708969771875542049228406820450214787818937688950826224292683887234301002291416843603206570026569120925032095571190026722125471714390198381918410817669226862758442847329239093538870561217159209528269770043711415060796291202207500466908057770195007205367699302596983895155028566286649274242929400361562783441368291836834545800346229071043841540300298112915424360264083609382987539731420293181512679112344058511025263323499043970388306549443710359803914149441211265690636552014417191064752452824508003341494702218163235849060544719390655782963317325414369532694824112233008258182790188243406079633223842813195901658713795451099315795230997671187043978484160173270291998114316960196251877072606299139039417385370146490579615645473188339161796420435698557944229498389682682226601945488389726879188975775526450314302573167908269873478378964553333394159302693266286552360938319134099480812977424414239869740693585421940384237910087142675808883170346148361923255768907676070658393629240626761887972104293477866355102884274979630998664501897080053557454730330432905338516584466866729705952641341085193987111988785568189296286595658373683133977931092903200672250405107289690121153601958729665857054228085260374496456310798871491081964393830774122131782598695371227820441626423801886181614042390414170155425830058620430565352690168972620339711906192792177723890603635966792378300533021064709627877126342325083572273575703338485935686807939889167202458534401377214377565439573040340165493736615619058974544074976864167453708980883553681713413331085509139223577063583174812450547789604275324936695867513767111797113526115278265074907445892755088766886808925915492401077844358795872297508675494706048114327465111252846169704488249519030769444125204408715161260993724146858012409006667280875829079492862250969326245931108953454490365686160805576663846100023455763681178014042426984428351703512161544546588890857793939389679771636472098732321884532378879221661851296446228904863943798810978113142277255565171058920440816520452834547323707737845342132509799260679496486495275975890832917066980309962567704316365165396175070805182510344356244480842547314360604177669945216711345460723658940449593822490384002066936871189597684343364105729268608794476038300813322636983721949875615118333486306730979352095893459499646307331849739118982305941789193457724508943185436260711852791445129053378236883715346931700616816413818251506238489519136439445028927582354843476116641178146318232423712578769715002804706348685701036117043633283109662715816762653180787272141556248397041314866359456639118005077161116949690979239802624828778644322731863694541590032972554460351438733957469376503378237088832432008431202355096442133470104589493167097339371081264862178444025823550554812799707390782553102420298057973739132457575244468970536928992461903236686375705603292821646494796632932100561869821621794821364777558951465850233977596232359386845730865475940672688671301642716769173887166210594233093012408667087249557126816087775830104626211140615820754501232892837355945085739662589623884499779203504592445507493585687955874999775269487054572378812921898795612724323726797399701391236005365656415839702494828119322910397624329550670120537370339835285266618698434589654445629598974301108928276130310127071090262892194675812980522496771532226963378381310558554364403651846034723492761933756663013756600921686261660962165133509136860539856297244977931706156493545908063311827330219283340407801384846834024120116618506506006838576282501854860939230530428901070528062864123076247698199369867908220133018370668244037833735283695280205552709371863189581322572646398259724252503432200535186408727426375792926734466573688520842788783542245415859837191405480760629384166272765075771543609050744825935578149759166142841492697117790799153022770246244870367477611695902609985953832367307463488198924819473574571049004665752858465538665025077868804914057661857686968021318510802698674506303870256343849105677791468947116454209351148482905961503315884594538091163004785773173663718776764994330903965334064749866801870881833151275348437637764729661652677217453764780982606577206919541878740438185477263520392940867173014558250126241274168655078655150728469861304731068334233812746959439340501292192328293090522873339600362379386818648668978350434374155623642864217895093399516802791851980872852405490124706062205126661381290707907300288643773909427476278654061483489441034081098825904864508279864239024406622756721144272669615552548189045492482530379987623161834452656981273146024064813187040853680884708121507195295187281193669136212368811020333532513250907629736838221931253048962931549933142475159052456614349666429079073560700019880077998728987630463574742898780923776146229112091521131745871248584747566495436665167622655018421803632579334351252309828201569928251446079591631722850203726091693535905724080176087153266148838230399165008626702843463432486157980079980409336231457582388809385220513429826887418390020484832688572551382253590156400670299528793687459677076383226670713898908841749021068297335832917074158239983832970495257183071478434089925977906079791186449681043776027709703497991145911685233477514352685422690616854357625346451940816761482258289920585372834336145962288640342082561422862344494661448123217274975779868236796213897328328140581021037806537424946094349060462825870382050515910394163244400645222699849567692261348559534143981215975443724917343478860219779111486149357567022870953873952151351215044516596099001869358877026107747694525196342359331169066331683753022630151097057562019918592828899394250859356966572312372979897338664818069991382749908159541205988210664473995982332409312987724924924855587855796445494809503919233488160372273166894288722210151845604633345190376952888463852864083013298045609847046361398091463207852113800068148948177845388796714417571941265740226071360541003540446202590292282155004989497086023360852388320831416808786520925443003069589113081103619919099186134275693436714597604742233049868561001803650288792955752732521094693904994814271976323166348909744332616698754911478190544134710793524177105790633174671585940004108513584257145816030520589126405046931624070587043557948315479408159340167724022968011352154568313906926022664220889522804147073521282556535511838544198534140296307096714899615136635420830316694733162696135682113991147276221050892240143794986493518441524772981008229724303934450515305896375316776932507631765659884125691690333957114458146021599054915248431000671427313916100762648413891454385630360574206714086455764706879843951515644625840601567910078525913266120466907667975280920455796644971380928693190411827265306447861946859768991110368432088346102644983816531717556554948162647809478629245002566222523336190215898763214201163017797940761823794229456032704135844279069755192002843162260084888458038048574144806397893512342432528377863790343604315988076594184799691365219531471039588473202109070714788920873236166879460520140612808216209065422860618385910685945008646510090305260737886259706095681277324451588987632106083049368412405740424032997915207082404087184191765208264171087495827124053736708628779391409045274444376209805484133495293488686849796273419609181548519499496468870250507896508447615138396388535333563357651264291374293679933128252712323903817949428824752652753945179155828034072131734754025616658671269148409666977901622690833496788706912378282219136837370702745497110278277434129096252311414821540466068026171623734504065082894893472022654092057848370817525829136208369152356776351761466274965997595923316127070803191168600040886613394811128470296746315696313730299596022592303783215022251109042894728113212694155980531051856757361364308169929146266579549997120998649237645888432172285406605412032076444305792919918360813611745969126941570834931531247860182163144154458442360734042772582392227544852726789829844855303642609848740775777328521774898101466469450432454769691682240267425592666207735624816029086322067583480465535654850379188563060060283716660887147605464805638127438891652558447091015830358968371735099556287992762179448877061276839925000533116788675737143684191115273438754084411608771102617770571903102675437634012007467133403444394571623375626003429412977755765467429623004698868865603739310321861545370430114129737472861462699584955788631444735633474787554253351433638037973493910875713358052142782617522068678626916991841653958825092042024813959077635910724368029164140047404775557158847797593925319966045945004856194417623110163876156267096150753346361547072276161006243001786415483366703543066155479138619206256782998598143870244894627244771662019478410765214196011928837391941908080720877464623081845649530244304192021190159191444186979103379575908569279425479699816620377228201055298902980817008285212434309689699194247903625545286580347529253348780829113049494206402658766859189478881090857746704181384528795493665996402032150455655366762616527294601879944685041792593380561971069469297168188334101406896989061318196615307054858474785363414075835631392907818997705799682982933926125721437407266977427382833802142388102859249976704370289028819227866813675281304668764973301785945331030527079472892625947924269406058336706040481524147271796207116833130032435654457995303871875729548635328383279473713254122211134139342924637985808997309048302248300084189252074022690399526291426029805699812988732534050975149061876017853831734820134072195378263281627233536247089459249154390939810345833441416746826036673907574738248256391993053562843622226473403263274961987171124734344983837207771502092266452981967988242265823592724864971725286662530837798281468738777964670547977809274304971333187081492186686053342394064775940911123588451702488324729179348806973543561743468710195274029637016322745996828547146720021488503648643130236712661581287520017391647536845654741843778174747709800041149647104887041768831257186191249203031346701951466052241502899099496322078293682647964227283789064650370044931796609929327538785291923581086686012459101689620150127222649665100345395786861606520813136295127804274435890515424388657385711585002807929541896861729406802874528078895968793456801260737672815146487551561816765819952249694022921606777605175617956137505618637878009749749948358445310516435648959316275567183003662548865806448886011636351612002463008915222922391392104257988579906744195133083049984538939363758352654752526411916610966141300157998560037765571475216921166905376167401128639512957965916306408845599382988510342025205835906187905374593102606087265015301252104701048334380341028648113404744059962410207237189766030090128114110239901517440626110950652135305939960580065776479735817456939626303799651128442503834799171684752900723938963201336269924455580071244099349991423872163941417101556715172558708710934202346876268794408353569437350460317113848632727868850412134444249348340333702184899927530731105241664518617834152230984774954083786300180288746686174876186416492719218455169431550038904160888957616255029167890228072936574228261412004402898796670380969838065271927640897901538548135365333401014917039261224149985973643251297573124756038019281974424914754929605592061024214253914361825951067509720702931751912373214933334179358473174948339308326228233624513319990017154051482448973653445940954720652510506732647434692805757349199074805733397725021394524101607599876107888740898987327000642136647493077873747969385399966098516867060173535663467313373753727833123209719833616123439091369407626920592035099476592525306375566755959176303018485377341992852396341836469615053999206466484885223494078957805027521173070711090728767254944137755799736690095127154595265441956525675020552909250457983409592557570735797005576816892927964349530319668769768895520869652342614540568001325409770854332980866555686164520009156760251736024518524659933658708819942200073302300289683585105896921556228795168793803600282870128381697185735878518778655930279014267053123234781222072862818663381187451100222702099838350437791050973503668160514767027275893804437344882234378779325157022916985635388258568584831486221457118751448966709847426953755099525022549141697128702053721882576904528841249210174880680839134100636434471062058096018392301607983917063229897865530047154758117868287432447927169846696232561830861428455666200348100573633966322954668308496680753192668984243136151561435661104826388993652819404028846704147836346320450940844428149169697828206051356179711037133615328532117069423492374512534077972361434794078003281910650108671662060385986334525196343487552634681612227839594442439517882830241235385826205616269274256597974091263889900953075628601158802958571338587080704917853167392288705336571173107667197960843488561310618954283216255300195533611879404354791611730269684499824367764530521945020370047762355468110819279987116979460403624408844366036957853213386138911714248949080177535831596347069603945460813347709634500158489049845213750556791106017924741893913506354985002062901367111531473461943154689566901146109543478548450934463239830111243628783313907599747361295395813012778303637354149930189311767340442012961381860193975469926249984097678838650065024524983230201647095168100179362924396292506583104000795998968531930427994446281394498699744745731258034713559534551400237704891480587808068957115922544372529336226036854077615072565597595937597317618957157070731886905869702471695160433447216736158510824149277509553723292764567138869754819025947024467387179563740174478767462507175819664996780878133638479486446208446256219057343677216245877133748003943478530405312360337230394246121915811917051708356730910821094249845389868132203959629564089319272256295406260588874129348995426350067712649716286848094089146806916343106180076773991599781846147990880580134471438317101066223281595483409177037551791001381711389496611960662013686129327741968922481292835397736340036130988482174691184272648546725286966908592793579697077798683474974148091946020090922211197120769224593145698178925182743205785125813949458732968184048516510566329408747526934402520088048738855333758964668630319221275974525282685610526281543117790915859975016599628711734732631908803334657504644646067046653945094375229229768886883352805922219521912798960758201794871392220306416632639298396009511660241713900638934331405492702160867854059442933689940023338275659398252669588997840106208548190662205098652823982142925210751399052533721466048485263378710896288409522057091048518113793111782940802840318933290223540324363730637371593441856820751198674415368627019701912278655185102659233318239704151085839639103389651338726881428646701974538237529530793361056261510616236942645408117841399691394638863785190322157610235466306730014647532718570332746074578121814446044199979823107339681838445181253246181436124457287671265008695708180903114225569662726667325370745045814225014140128448960464624195095955341447659483815032555297131296282697501905043457697071271682624337531623214289704740146699959117962564108063285206347818085803221084984354148898790508874703182468260026183214499998294572909849194748514043202384941602611800854043286814810803482564116130522410944915784137117107985198827209184383631890084669132440336302655971638639598518014023791119690152707812737832198106634535276303451973936387244160028480281888741074233621470234190711384027972930151978212330284115588353819501384394350109742082692092137877878242822939639612608564742181979091921777291163292899856805874850127444098387664586883787446440855776817970862048609117152108050361460604448838562812963662243868711855928448395613844565415650989473572930796691105969681372118681954171898388821307285580541102797718151373718663281067603192472474222722625364827899416347378430863300951760916718987093241864624480613932418021296305036261919959300384817244496346423247411894196504639609448030006435824260149830564245164572659335975353636411839013899348924019086617648127979014844251221839305637004159684605953109258499501961432510599944984161684645955748244597851551279171908955360544429087266767419642423320986101431218106031827740690116977694779997899070981897283136653108578587927150956205805486368812590045530831456836505341949339174735519425082784554889874094415316045175940229300560913606140758237600338369274336004264315246010311577839684655773650190411097837437957945853857475143516026925670983774072765142211428445503676750303158926681632589107928932262096101675693982799449806093278538300682876698324227758639233289892256002745046816038128586067461236944269949649726862099432847403498137054456470038849860830155942419408055429883606401164890157215188329651373812721865722991835431397391454583464884201659958453865798044891230178421685881800126658923889392328473655618927728868327652601055210470613065168571801749646311069268892066714048515156393269465320908539176411161198348335254116222896974703432826003213551958216139122057137238134632635145973652596780126497653838435695708480353749905769070032867415435928127845412041542505575070609541871460565335119273572816339829540730915482109492623568756277239357684026105908131990270689468026523523241761954905023191708854970394523910391854619449596624800858846391945103636211450919326689437686760419664576619699873131454690202431764818555954459263689547822785061796078115145683863173670994177192865137823673782263074785452178880771450183090795715544441568947075406878927023565451232867422368508564723528951734829440366798555931983429447763801288447137170189254570979408339659447831601110048502264526643571854463542842005897953543261138879711777313167135074567589757572457284017781301517738040827283252250475482143586126995816400527340072548984584515417178884237336637005639201174967385995958049109681973369530266898616031310713536408658325483107488048157233055862484265562186722235663206043232681167229898448873090161557741953809404034740731651854179400309343436672914196854782865335265360498790436485599188190700969603263815322146247950357480872261491579730838009734396490016123842046523340805353973883079117259787910360269265985162466807416889192999156099613015287535180807455735238070088781891741981951889610434188215075044731388346408070824884391416010679084575108415025798809183045550229484244761648598811709312616609321300818878390090651348700827928654059507830322845824130791579518225364613792864365745213231574333514961872185608191980680532802905628915833389711815191098951308287334142313620432427135372988620057565917641086752562654026676573122652187668371590120181272358003595610544402247707853496476516800049494049648642526788693630561710513365304725673150204922331718166496223778776616374604678002238409316842015575766527006755675449484915828948685209989916858390642914058058975947980037076974177561652021694454445038851172159257163165886985030454011919486815602674522692016297229218799781528293885826051249437635549436387464827887633888733112323410205043465254363783091975208468337242025988535498617950404898534746988431463957894881638440403770710772898831637266647180095763922094372679237349937239854145507191842760618089600717776613469359202754562455522857460575244287990619958442105749284009637959691468641088097876928972008589194852521404424884492065274777172797642670148955927242652496244997152521859871220720821849056865569475678266891835610850535243166319176521547877588740239706479749141856180499642294440454300616028926055166319923685438016892415964552990081720045835973932049437735249182058583645702879426623731872000352602322615331831444973026521862273782441686850551907801965432236849253856244507527236383911665506117797742467500063182080950435875587743597130099751465805493955567660608087080733899801622847717311043292095886055465895027342165318811889743426041040963642639941585914181997229846533498906810469474016452896889619234878329513270827434811454573536494558282715113383798064993232114679929275286638613177749076573645848938594968921490816308017062019818444434860739461243101975938951344266241431518017181093555687246817549086601559376784612934341870147324536447437792181952433327810289247604092169640039295701082058010993193198290442917768835420638134677614030856446683519665151177432007874368726367509497334216623796810595074553033108135166277105969115764668154901350187388798036149996896551586821430906142481283151654799256681937874593385207752755095792585831774236849302054415479864404876043124811610964048881241400622311144629238658700111516629367157858488355322942622526875249314313357736757589982709080687795775768240476798595285839322373046668571732135439420505629198310284557512163443011993396549720868493468550540068940905856853586952114091409669415972363416473393121980253165247793189142653526728992787752846489629102181533955928444810189919444153274593879914347803311876796442032063122713964717518877280264903552852910580479241834911457516423432725617772881923617281231898814022684868978563985536786372978504858090796396452180431478435837775965727980425582975659618878136983190118366539257124383233953865091839898730981787723043032511066751678979440835180697371032521251014911116696337433415829318540132868195484614424499451564400125911779032114514927896090382321807172866476494628075334696221729900033344552753885624333097849105728254177071126038147097397490001900326852384404863469721324643927044034490646709282521446590455617820786125695342164196193450516715497387078773048901959291124569377988570410713859324228431473599049147552651727137098062537449670483891227865470724709249348671416215661909431646688059564775627700880068329978093048493228392046191032004026911891632864084416341103521907697747611021103793377307177304626861409602907745220481921928446924796207876956623658308991366544290385963044332594593265827573285844397727864154770834099975135034427156998103115481155018673626090938315232540527329927415094769787488629832069468178561829504812446023724246245374105797293748678847138014593046837678843014000772776124770742755516677950460807431345172838000152035647320908350098253042961889683177429843704298528289855610841657564558068233884977570208170997420655524321168354398012914443212864681584958469930743082665345885532933964740406676054793583561932858583134041856365369783118046755236500945525922384334491751839678207416029613748482147074522839813957726912543832768592579361695380281795374973687668195175424319213776321419549430605932650776591797827595526187982187280877665360239938410347336955053941853613399835864661752677550500977122494071012362660617286261766472834060612539595991564334863992387192938496784589945223548745238750616698361856016404711346862679959155492877291856487270197982078775738980011202716228499530701378474768912059948224183198120056143182982380557003061802758294241147161409632801722785333454802611099395859189480661605761132747315324497412257842358801478676337350415724153446014400413216852017154244620773085495153692452234213623683089270005298401097485101952444881073526722974111704970236413829605473792114856295322129501265582191416250275787279203364414461344793567904477757629713347296799758890934850009905863969864970620017524342459050439204662199884599720843834464621235899839055524530646438768431001670285499119049345171928468310786300956368261100635890648825855207234539658298346107446881620702802073349502617627859590402605226192696150193257637913560874240172774113285172025566743016030452840576173072087166248724459559882602906337082444503216120242817334617889888200642345036770606173011012153764645849594733088218836880905194652231585649286947815724287043787611935122785866336081612954011024956919743300640777811790176574158374898697808877979990783791502715363020857130872087504768031600287251391004368728341216192092239433189495248925136082466108418740830940580287558315263895128498727176501989312048806015460665346830074224616437547296659520448900304661160200199286842901117719845400340591024502934129836918236249024012340315914110141076601989563797073717047631790506096762841931448462539515917091451280497323694350875116556345467132724051646844290022485494053236114459567910329539987882578401306743878941122879721324180208010269566944098411118835561319824551494813423144586216836069682873735475469536109140955629650599216632737507747277253019825838655064980911870227050187114968268811883514960882023911334950608553357112154674002763998997821540938808482963758849580255601749749270581048942063330055211636841390175694011515064640855140189475657049334515688115133591369835453454206146062836082151910102378053196696165900136841879936491578212151019022565225715680013623410758641082207002453953839265659974549172149541621481557226566924972641037932979772972734533977046082901037555677680268151543387378885936857099261790380053919686040507658728049816224484047765424636419455295595678123072536751641463123158430376093241703418670466582344742083229777525379801324944740380186523020658455843652998909206902301729450549108033686876934580824248768038948628032789279699446044245454573469559449665144581030003076568421807954057422976070813358455371058886534694401256068349073666999896418755717464883226129384141117340955139650531651008745412468120493776385366199918793736323820880711481428344314879198351214323133004435478111288118648122225834071931392101063988828710242587885827792637272411587842054429052206608604459939796428404612850528316192749148492867047368740086203652542991075997657391749950823856120845161331340241552007170469316832594765404882808595642618998504629775203652188518229644334193305406881996901153526776505827591992899465246315030529056076371467984008615240326412542733039471516178786265013418974419012357350390541220301473512509860167780721250263414923368089665753954203117904100841179100008884833038356201633991698257396616363708231893480568491838801598966998798380793586085135728733179341531347959252565910455222888107544101044996377665915793118946146288927648389593100665470777295239397773108170109745059265733609010268787388790724270382064129399521482001653330416378462814266834548675204883723804198516111472722100680072174667894782625399941801660260757890957238461893001676218222808285472599329131985884309732600816409163349659492746995368842576229940562715396662156867672004687316489801472920050076616040977877622811968634716585306499408013074345643210774085573132297589431351299151843871365289854293046309749585618156426635586541872644734418889762801472123028813060768561183385762813295789328324244779203557225304938211826334024419105109502273695481313226368818389272404903014485548899326785734597495635637201349286379806883374316086248611041557035732854396094135496075663087431631164028354563960816038132607471121192988897735755875626897979514740609568908283439944363377031241467348091814495846348145525232874675086760353493441484434036629575447703295615227802669835375980340108914290170960200026138910340096914589661892577475322854699919859221616295450918272855916181000476455157611173164920832780977553067714894348065055604078575511978815490769895962280518313700107794140631863903048685201983580572002259357896429268616731470228663502196096564617999789961542305208506765121753669087827580264279435280316064399502907198937479052872344770412215601733740122648988319517233135918523508969459404890392519935882559539485193231018438043216890393666020651615867131670492273859874715441087107018814870724633688212249840871777748522868244317276513597159592559795106031207296977455447988753307019691789088057939012586148359676065449614665005840643681211634339123974379201217184114354153496490658571050570046968474283364635796738164259776527517231955423833135049937996947577448167670278078626092827574175694843886824407134708527189281354974301451015645194069324856428789360914639022932959095410219879982540774809032722358115267590619937297544336385122629425244878223381111696341996877540573311068489759803912200073087245189612111510024205443460668264485214982486907784683030022978348898848129310818753220122955715081779797300697163340507787236941037918508287605447230071913129763693228140937437628075217324778792600943413020439021918389309277821890331458328786031842786924755356751194538933246921668313947586104806860646696870606314927383443888972921131749709971444708301253260700385900323813778474822002101057071540848039542320593558180987220077561473096873199944659567054685945394527533006333100283730440166541231509567590868398848885145049149359274728955415089909159525703485606568090420840631599176740255346510736646577995037287539068844826235769326394040163449176357800121707087134585191714087955907580597767867236788440944026052924830395656195376620842855620737735252347913667400108580217157140628691048623415206897485363898943884984821093491094140926335850147823794878084583519404014169137039202033430176151291522940342302812245704181442557846146879323388866017837999219778127758745766418113645656287231914970131155994885731558660926905363127747834022805633410250858318919981074765246618569047024765255847660501310683957112381165535173731848064894707517282665232860395717389616164547402700642561455916751952088005618758125684063734705196837341463150952852989089976146985299873574913241359363645031410105274648560787336679451143466684251662991156307615681030164326332543045957957709050162342429298380785102532670991993353212071143405367332388617017341198642482381848602190891452143855735916205544237052333092675528679946928073999844548577355903945196539226531832453761346850720227128925710568383338131841067112949210926541665078302415305571678835984544603221156929155368729750502395907901130833425362810478031477330202465818913128766260525746490057297387700841223099525919338526193900006177484201272685701948218951833366494120655798021009751875429456111210107370260633807892797780281527965796448670728813981169099452124387703937105105732951582166461942018010583447292037074706482798969394461787380204418079754559155415392495349789686559247008069729434502264296830201939698038799115431535445359410040266948489945751640348473948816204095007610243594959278853530786595606808682875656004088455179086958074043247629278332189164679715976928560927432501598099186189740510341596952676654053734700780210883862083337498464516537546353777787182645614550876666807277328339080524861062236522972263685367498806826890583585681167192203816592807059757299076830994810189053533333524758798479639788847210320070694932320035019357062105723365234363744837201907913669416607419508931007833153567468067852572482343411525159375443152996774444794449744315832386878823904833236531401880007465796949363050424875842217365462286342201715564692843884896474368813162813083219915603524253592178963106778067938168860546839900070991946416428330478998500841027919195709209623338070998078150011514386118655460514985160028371741098601238809940170031638759014108962145534749596326733210769622157860594524987242556989403938698027050719115627257189079487502612657151123698782334069634505343409863676006030412961789936339154171902197038924921265499453466574022406659987177207086293740383814959623369736863718252719191024500278092040327125894990007596464890603729228500895245540891673288983922847588521816867399583939565384942487618999963887405493252130108823421114681116339109311216780586887971914803188327364816504489087738308923397158364007322422178392741875924803421317096166627183683579232646210143446677009182959648866884040512190516822334108634056227225617533073727480733934922884542893248892786850568313791689346378062798139869174610884260946148240094409139718632833376582996988853209046696335696556175068077937232192292369299739222580977484573700053074890993132856194406486476669745095946561286827684398738603187837353111031930682802175221521601957976896983595976184556889109633282639954027600780926900604007859330924829136415196785593162213566374492023903146404888633333303928197031353769277200580718603723421065353989221662268666092891907709126960277512943644208214508556946652930519488968534768615839833719338217914018641995142034465916747289896502140506820352762399790549773202247518044435736035222356515095031640321423999234314892598582790562260113419828508761020728457718897519122111986050889404031658224066664260338856938390905829245500099301293764034987037606262012579714960273460975654461079813952502958543505469862127049314811774725360137665807562315256482817685299932664109119814300676233004914480145137914365081924818804048562285257753459295034186506237545812426869139394857189663625310625084906635009361101683254771636655605280528217506520429712818050013649485004994967612726741654622203807624024544616896441573803500503693885489522364775741268800034927243427857400809850501232898765962834568401094621239826924860596287771694386014108749237952421462236998778050311486995730270580155379298595976753168689525770629926523290367643168513422474879099844799269328020875077417700471114450856561731155586255791172201321870341928186899406508718099135629073228207733336125967231125494479355958331839430439042517826385228010063753511410128216437304536874815913662907085784417345627887128756480688603714528293352793650517068919760247792255624400851419003051280042321153468502001648194855619720204669127437113837881143482437361608473610010831492776025114058397968685269922833545317052107367251096777318931111813140013028614860125287451604144007035476192757932165216084649758745429216094440069530891161317337182414761400446940588778775647319007198980775416925575962425167948232269263494572834116881525469162555842253321254626480789500465063185482450448468501227207076470383069076593914584699199979751600117010617605080673869593162429488005019065809106527221446622442766136774214481846989662352740343520420333221556794262934924791035976028071039251166076349644759058097436793195576581769224872214331211999463590146929534152629022020691217026832391412990714973904378183600048117356985028447697063317353084803377785550795149040448605320753347246965902508590889370310991896250525220197512854762246251933698257822243516022685655030108590066512871721601526683109648170070116463373762918530402806898332678340526502687116920909977866255142685072396267347995646321523678905505999713634701012349829284855056420831409636090668999241096907231229880569483608545062299419142509898091132021673255134907544782717699352257856022757295571356720913825467555590618286215180270656394078438440946054223776310039746122044462226806468124384413148240496809761138630425847600599482188109062182328338651160872410124290298627761463134066007675622395106430006450466569122968850408808190790688784010571179215535674724957058774293671625508449487461022409053273524454022420411609463618183869312616889658321926365799895775595109826364537719756932874332378009685432135406774980164420626512372765325875401796935342136243658373192261037811763932613994125001528378966377060330175023850836408817631285648392089771488669581525526348338972927227871972232837162228368367423905045478255639185813676962370030030829732981243262407672445016330995674922770143974786265280300664222813049528360333450847221073709387129414046286031881679958577873753702193562382282972926382027707416859771377229228092541855494735206481481552035953332477459490636538845328705359086365162128389826038594161391023319023539281210021731957157980888740556613268256488389136438767140384268398917549020362277404784613103663805829864620629821675279931268400132763374084115332967109459046715533901128676710864882661359446279186496599452427616464555721757930168594306793136513635921465025554007644529978646375051178925095377416717730362937627822737794058214018102174520622000854485874213440905433862975200502199851338575849949732510860348865241458680901483135604042077412941737695676594873715245542200155396614670411381510520309196048688622762757180808175055779081867417570950484975862939006903101742794376895854039443036149902273276410480929067382790277650514162393531850206614831607652135523122780301989020752458049761654380211376619572142995923525846699299561553797978561919662198720630784910082971265508853595930095935475869755404898927301231391335982130179601164383619567482336973285944551111808818677732344047949857820113800286675008888487283216466373786415587407514082002247661656810381507330850830615130289942634875820437592849836517250936318105632529646966061682257820791309822055840644290873510981650669202495794097481360959823170687565795044816077942785120154199411195632213532893146598981633472041944825359910087711050918017867097547980642654848034660213141995895274021315063472643290105326870715174128530574553167589790675046744654645787415772160478488470413357122943713480792172884561395353421995518300920368235428548107835032176089437767207121031756300706233829076982508781356269132294746789679332033049815441119269902352405594666951195822731617175893795227471610579516942449249142814468346079139356107738549087925042266801766115853555750234762737707388268152559857293734064653912464671848001759881495530975991600825182268489259444928428215446801315387488230427926286933397758802567594142497553108083924901515939679812759092852667368615601034382138109962660414014384170297512932915232286938011832307698385947654562467086204991715003856949098511282239778318104835304610724021359134029451701747498297967583919647534101007281013434113710642635481864668295865985536687992935031149092278416184564494497770005332644706141975994097711139908421302604631628096253490734919972865845047536574660704341191228197914394581690208900328445120025796370399311918962448309812587549800952804979932389695506709970069833711616947704191645863904626078150913220380596362212948499096806077652943427940454544893854127549626759902193500013803770777864247506589017236132763737466851488071395238401716466115193656389574272701142814317978352408877635821321507212743688075915862709638265316312923862178154236718717637490737599887737711375053291134369980494206149029941628978458661903816093506221429823611295015677861828602381329692829594412299284058428389681229953736037291403597537046855974595160486179987578386628193043251812535963659163423778864844141273673932574755414574990141970109355976547364776434244127779011046959781554833162507108125606083770663024895035034652189413761999300563959624316041113880469025350122443599594647897812062043216327480940459548095034221907480511942521459061721450516498913784999936406192027235933369917429524285766063628459145190771597234137959861280887955685305356420720278805923103491300803742322435633666555616119644705556957033314550860579346655928699387883405817651327564971987415898693486941393432184661196168233069145491204378839305552422939968105477076904171393717319456818756418037070671054196336042208522786172404369734876421053420328966838441571667813687905709336370173334023266466147445489842428992285051587364337496943503909896608727473488321158101163532083883911678641952304433099198885310469439667541962533118974821080735490816774722117021920997205220060735432944938814571245302689487935443045603858380294843085016317506520075731614378324975214972839553571868527420600667208798007479221818037078086401233106606607289176685898517054472272735776993180068054149861767042216733628690725841533729836755770312023544851714618038317828764401416177823036134577929000435548804432742297235086832706356166450115485264228034146547093514295703374154853727247984266222543361124803036286819084247286708382332963231306985905748404235020356229237250926681165274177552092015670760717907963757091969114924269254370226810804158557450304559156558383587136039537384757201680794904623691296062168697049976627609286393303378967856638714936486347316323626756578287174357442137606303880005903321995447280803719668927338500937278466280972139014550385554564100674717968419122895122457079194694493277565075061807616071195329660839050271387866500036914610034893079360400227661620825387762537103453829302249486350212986836087572925560355739015079237225348869822586884899051399415661622697706675984811982909224493418495773559468622570057522560842799593765332548075641921906895141592966741503491640147481553857685648398036047202586051028049844965290149722684562005915071299932684679965858843946720779257313656207004360591996102152291084843279705933601797600462551678629151564994555144047623079322230844602615125299297040471618306800544627877609262271070197281789237438328506469486963221551546395057926962618177188056438403348172287155465894812175691994734556688656438687789744865015781569159914296267808522252447711254938716954439804783454999839377877992259925155625255711906656102504019127267477911868048178320024336971980689732016022570400530721836750369308122853746788969380977991925931143413813847068269158574673882998074918762486226095738680431554882093808865483918625115107859484159590111537674112212693104534150392241430632966231258712016176582161863646704101735692779099843364112689871484491053841519471792973121071584440520797724335161873665009997828148062105154348329722877294489196914116221996052476954138510762413384338228540550980530728528373532529738657620834475130754734489238834330531927443465359256112940630792369078567930460347324709102313755206699086819482157895841858873796217329618623124576877216095227555217406019264925585181490405524586672842477169581318379114518683779591703640744062152883309406713117516394949924070935122798093879896181547058252877582403043682904112233742616887942109637172670143014832542973545341494569743205723354886573244153763621540444618159895869092640166493556097244337409921139805980738684483524301099509954901596964846435187524366372441335415347657876955513298684812795403249531257853985499907716573901352746254658980933566274609246947622038381546639726226002534601238505201797114741020901959043398145992318251353062271196478190810821155059680502917464096375779878835342176993320060507634204950828086211504601917582820143191287609394504142367613111328417901387181514390747417335910061081541204441469901411296623435735580905275678686001677762527668156886580211643274666349961969855189333145893252130282025482187638113997761972797539228532152683395975249351134676007393162980604847924853967759375473128889421431841747917809150493938269930653461248749683253927149995498665979415506222900990750506658080571486899450488518901178207236605028896808961691313804150244217271701237235157143369856796782039122072001755011761005712512878584888269533427432814903529949903901739911366353161032101350776394651549879402494572649035857326264552284683159293868901699293922514222359951997895223007076825417972873259149333464223631312724113050790624050507112676857401552809272969693375785811793177200040054844176298363220454062109599005355138906857904577647595133825179809638103799963019511975517510710698163284554148507049624175806785012580136997815999829943161973380016895011817029253864929954815713568832799047923162364708940514993844459634061476924034257987961601886047734431104552976873490516659638418894823819530503824411947066458752164859618924879246829578559712850160253791137465525174261197939903184545622403277372646791650369537079726304036647527863247903658795597795885348001003681942938840827625122183286294941893176719612714449268124193481040186406680592993088514540003327396273767368482549512886376400714906474953737263682891868330826721950910900263481983232469268681348627762838942478757036645802561319270378302006786430338822380620470084551971732537568005057723121691541837370328280560258172573263751156385060175320993681028304831176882786574394357756552680989673222117266925814689240423638961716724808456950757417205168166434082559469614767150693292738670223110639306628154216737046671713890588246800582320603476953936758704869179321374194411108195439031398818199859464898989193615132238967400181730215878776882116651515839049141165194368493951887547122737273319632522123670009437367177241416217775364414452133196667029250150310191061751193563666827026892140923459220391904202008898607094401458940775733881544972888623700392470369895887203439909689352505668442226561931525905503886181432913651392654647866431842203059044418394284600140907698706656200507531307248948551274392307675592920736976961649493048108446546153059855493835046117361433923739982303981083329538571799146907114644931086354252770825021323901980077158875740626515326797987075136466428072933953685955452635661000302851861436938811417904979715255487885599621918495705434349644120654382969188692907808840313892183563680645626060555348161095585128624108963127688985046595943546874779666586381105782727755112582557781696420947600525998636709598367074818385429224682285695444341086054583403672952235780873774029154467493801645507726218450913858178715532864318304885846524181377353869649619260711694926911153872560873808934809259531688937495934700086300792792863064958864821420622063181402912383938351034008638685150233814767097601034768790676928713052296574527520159036281810746303624030640405355801933411299822361734625496520080155873589921511335465103858230190740354028639095139838207428140167221483361798915405078468617382204623456155264565498879261467542311421368600696882393686738222708254030596090717648672769610237837344409808102611390534390297030484758524999738923270624110659814530035312003247166243164561473611893870689113526442125249256967149209606953306192587693405033072535718880381181626956765428460606898080650355527648030179886029007845754426837292702816653859012671905107351514413174479695212026964689317117702211741281937245708442626539874732853270875159554870772778130795539795507632183121800913879993911930361806280035596988957490768806775711725131473013913647507756116527155737734825014472028257652874277336094263029850399082088307303968627804238567746806867791987349535978921892548440038561793242118551574775828830231082184151370454039301743612458407120165860883704685875521498472772860538636791420610982325249061990102445715017179326668073726016800836938970609721810239984539235835209291350314797667375598825433417802241299967755452122673960707025768839101261931554960259315746196307762455040379479741345689102712757124158188035826227599996917327865279073289160535973464607692134046429027838037516060853001144811172359238691742852130934154895333150379626978900725696474617462603031648201252838398456077652098402199895160625433222200163212113879116958228910470536135218251414155899212014167941535226162541614150827035134579743263627068647775605190170724194243179752721314522457023738586095401619070639292347248827612710520326835873905389051563961362095738496620776534058052794221951990577760721270329211286174212206671424350955060112320339813246809227587289167193171800952250184678430320725697506953956620426605564976390689999664177956430063533749497409293052137506859024646462705370142496922218830600354520647149703240664275196355390001983440638768352971008294163151569373585448050547976681329228114231530037224278885894025416543764741966997067198047266142331755921946100145801097065715436584926378553106205639403469961414221984672928446426215510275852632899217082782141716548047357644243797910394644205268777605425819720117204219608210474918989309011986573337094521239015147802282970413232226462759196347791142826708601418101533519895583785042281673601617225089287566226472211587949510436560237379316130149472589901865768928958211072966473237049912278518922332353236582789645572057501753652607170846797401193398828534704806501073112808614328725533580615021257940288846470304665076428687013297780502716426028254282298982142437439629512082635127236615286541153337844418972870728597968374021577273030387078593832977268250408065739361641022867796843521980918088872768309269943067170788156549364523850764518514514545253995070076778829677049973765039886829676804281868775343855471388550497323863484797151810524190637149533642628901784125871524396326356124619574402470332797229888950549075481021805869573930023452430700353253696918568425635681574788198460547411120254076002774126262984758029292426760673277928953769120197396558705815225813370983910733888349466957096847827070796274715246955346796294294941463636342703330383655484026412954370605217146614509211535116602482624950719897892863443671083992079108140037751270715312498005412352926939265377088801742346543304923385799328256657853700763538430034426176210066077976633899185414220775781940984565531925791481624971340613203893129670845090322700738398828627741115625642647001118957025704588116918784030265488943569550470219788930720015903011690599327095290320382482579602359981402695571000380692714567702489260169264292185905026797285369082749555014251941811252270307288465994082408211508853246892210087296050704778264464755764082627123520636917597322818630878125757613413590084384221128762006419312877477105696536649421565464539856030572616264530691955896817843545965297633472851727211319487992273755493972476357028503594779566176463377299650953778803073701631041259960422640043664046555800405683411671814355247023477271927212834272206762604393038064065799650730691787926351510851004656911664232443668404156508551542093638677949253015392243660511986257288573034157068633964436677206910635036052652935648530143662920820169887483907390085282807698345521317125889448965615792254881455444959306961629761606939901876437935801525535807201699507200923355222124460070402975154086601378808889735483897131478203540664516617605482123538323646501474337317948821357815952654271650157407623334309276442981161588756466410380099189346835422927203199952095272583523368494811869612249801293886494678359858790456093471114029242080288211815485010647711874517984871291312512797929049900235776111653507090819550075682676473816069297214579669112699126366030546743880936491719666935209379729215481789943022283149997688350922579969095827382131133144019645951170090828667021080900891491567770760088084809983077771764450555152069511274536049292308049524795874234399628002613997050509615212059903068544461538015745235676615301889110721520196927346305767290497365038348164311822343102777391252193499765360491434783741983232337453743523041110124291342683268963307421010600702942518675672010819846250530499574998587381950067097583635210936291325196809527368270693663903773742833910428720608294012625037223079112109096182102522217901528483410211167101947065588776609481321624933064796367638912469355880529954000709806106891885983742430738737553569733170425708802091597189667207722101572157807448953688793963395482065620497808138970304303674230283948241890635412598553081748300636308758184230304202662145016048261622623209069499956422570403128452991645829628401601513892476621571757322057500109000345309071967139253726906056043163068078413032643814188056917333665960323425262622625212728046024216398985507174826429583117814233352805433649830470962214988890798478490642406821589643260104086452648373311950813855556279924790502762430125542346039204540423768523901490417969790390188039000405053784511188689220771817141688915054882551326982776920403852233606174520466946187219604936369808371630960185575634437440321791910562068583284248622263468578060548508493969795626196385382790739038984553926397606759008617256495888361030041277014753498619449329771058671002097181817979798533427852628406203367211180718234319041353364080886374418187085384001050104243699755084417938075356790306545479332842319646114326949611029724306262947022323887074143868697936455856840506053072843530075486021514760658789173336279842681150545562144338376005461260484443184898203463184688451066282264932405315076253883576187661321658541896523697707679670027088887610958027665270607251511578603557626848748459814084408744027354256178406504049287356871864282371135804286537567050313189205062044488882973462397735648800397359319562873425587270626942073396817588456767258194328787458065304265267943927611607818518838630732104760501843816288291872045622890898641611791065387148210931395222092732528581559697018687137374176355117894573673364921606179152396638818945269681905241641884747571840517831697542656798763475632528171103691651549688692707671374679921110483244345134788049118413133866225241660737622859823886755033682244836209397004699314931914922449867305958965791305878144496990240908282544883252977981954884498009674315626240400799503090782303457495840884443913165182076228902851531571364170476386625542245669726264861200599890038012675884291969268837884534340976962812081029859708178971377064423030009482953233744494103566441472160755786353600989032712104486319178965153073033650933061784768336953567021216954836808526195421067110819776787851777462483076120058377115173293689738149981923739768531050287990851795149903647817615625058510431320396452492128817467460121594218330266102340742492016829685051103468985560128587417556581644137224663553151671549010327623088572990659656288110137613802682746162290411668533501087642319772305402577587254026495187660087580575309357350191920301273468451184735788918431057731952225440084437026610191703187237299403487159207105676971867769365867821367397030247953435430382981761160916196289077834681408206060575011560333223812550133198051676853193512027282701897015437485075313562002702781972955857364877036518935677790913333149461053331906478887800716483572010197915832653898495275770263050010211908946790185860858675815625008622642940596611320495660818827054521370011647229565693215958452712367087355769717209112107285710937004814052552906080173363186156012252786445285027391067720825761787099289063030439780455754839212284974932746439841053440989845726868473396519784935578346558666125287741403451750129174600931508062261290700742466232631406213769589881152988548779130374087454411615638028777157594344140249615693562037386265935559363153076196263614490886346264968508886114061412225883236094575339533573845819385750573640478926297990278691574910014242545036008654966749643692382922928173975777691176332968238122567293021453506191041699026974057385980604500650844573149549844915160833198223365662058374240746487199948038725875783259974092423562217135592884775381460296069111989352387490945230262952181254415695326730844071859151859600447253376841581354938803683515168179846770849893736462596881939735419336851969307000084546161980054031506663874086998456587569418914604533764107579447178463739641341688740787110237866482702066830539065343244264590385988144852401242690910749789486989510775622720476525736829170158497353576731599213494287408458898935281422385117217056246063825424061196020561378510949623869626281137764206829817661370257659795040864022546590134477095834460852977655783812325927590805126570158742632063783776177591224956275333435762042851535887002651265052870808941607272008235972550071240246419136818109602223819812719796832418483559203896489586170312015659457757467260286245038562522859384789641283252441337471198804924615038166193770242918329169905823268816532368522947520256858745388453093599598060874471119121167472234623273862636384919960951813640238184410993195710593152403791871532976896436290922079898532863620272182347250275148192503780518043234729312605495770899406743665005142543444819904378266904841480933121892661465183902150275352317294214682293583683398943263175006367588646287931637977781956908965210257336637496060470693575291092580768167765263465112361601530046450067071991913917540911114817428089727302350805126697129041565385959212089982853759654201925086349028758158886631552734516192411737506880075208025724274626339741994547771089163232893492531023852128002785065408634778123966472745456411043459453015469534175396907163393271131297098780277057460163007469720681140732943212681890857533826383344038202866899820450045202081894835451732717456207329562662425116712728473259932384845075676558322583779019909974076054937097053106572620698466238709578312142487898851017088859949829663997369002112949501998276005233236225150175961792006172591878777317542559137447727739290336042552915652996641226333170841544936980063293839091548921835152982200172710543397986025943285044403021686889932439325666978094160140455426780435757962932701354067217166245361026685321151635448164951620039326003047273162043638686795588954546963907326619885180333596436145314739234561841913438306408143341183913910372385132926136320225925749436274235247943019480905615433037352183221493202106614986035991000869932646085823345420818106141963242311991813449423645559686103443105267091874105505155022115171349514428167887865778860422623051222061224193532363459227954790379160253449807069018810621729923004761235521589307541357175889748742746870124908716611533666731831859125053074312081082853644121617869524349127406382703504285379232236845374879249903129234435104989111637400952144734619832671636923891610362407926579276794383677687368812960881119049420897739574451897932001184974063188631757691559067348977074876882896021625624759845119254423189755502137758554023061199680702958392535452207753216805359728009855813080935862794283993897392568586188547638044690115070558479380846803527616152584219009305792738885692692039549025960139376854802361577461466475594275183564401688979428082250391757959773975153179123712015824085521222046814516940964710847661695710245715151399615645034054902650998947630415172370467429719885035318961582729198296783035960575588985696357323216084073056321881733422789790455599908557621616842690073729622156366965076156112534568684966867369223517091088760449388765818727948505013698565335609980205853690141884794634166775697620899881951689741206806264347383770506953777494747745453934272722647634249491650669833480020639730707880989324493986754135615771166529194578581854789416305793962726606816831397927510445001929485171069633584977720837929628389654662257644507405067626387982755351247642323250363949366743328067337700735104295187814284823818202418774335532227105732306892977387683178776076611248963138524802271384125609819845664484460250588265288784273718883031039880152281519044487736177900854009968346580467062070209421218681840357152954750384569692741930838791743679824455131204498451821612661586828295840546896113664217415873228145723434054220320875513732273765650451752108016896420889315421398545550132319433913821371249614345166697813840205098532318045918052689698926599026133020899381413086491660719711790467324873136305633674300870493971505289523598988377828360970773504084765563090167602244307961370636861224994986371041428677079814781409596085083216996149891720904346298299041343635505738419735411556392585297628580910265936992066501863241790254234006235818396269167243608754459607409758863937514828548825291199541464651394550045810820627390442504301760529424012423884881285732452082714004836629478990338613671111438033386609687805324836637540390741938701376706100251165457010699100187784950572527358744214581108100916247617223222989336034535691430692486252325955418729838596638088896272552600211212899227448134771064950981888655489707741459734132459060267579254909769506791935154760731257432274018881674756902758507168856893499700066184862296137397029276872619532373152358346916390570820627866816127550735502522769833304297837923140610596199828020604015264120160908383430898122480587459347267133363348504974775524282070615312550137436618472399905834402797031632941968861882088338718325782564557509039815641334674803740059924720691980012698819435427998197715327357743671789534694615080878419143367051587239880545567004694374615960240961731429264453135260845540749086180387640884709838248062998215664807402584887916354285586808641925589867244492104872725985208397986883421276950128372362007899163971132434524241242580779308937516333969114800419867927743750003525739135304925374501504429348329405146230066149217265303728672259085777303283609787135655673609689944420259798200526120573490088018561858813501204478968963630908309967864951493492933683384066513851548424078928936029631422218514319769340289894359925787715804811045807990286590966643184127885433387003426979551904412193037905276326055618564531212095587387646577925100552235600323189128001123963755611746889359179840077502418781081293498882028941907332297470394578742622444544369303992371139040951875626987943414704643305069004724492205163655962439068188730801920484083297957203883804463563004189014321132574870262773239126223588291371921422254053279378864091713298880793721144847023038144033181961811838478294760551720091072516009326897165262072279825423401111286442101064858994799282513728180062391629947561431456876198347416108722739853885502738807552919461038132198036098659956974238990773502117341432920546440495262418297581729947850034066614894006690908935541207556066981542410831236456581319829249200619228134498754762983915173211461169906058108891311101528959264869793101637789605612344833307876807731405762738406625764065542222622066602334512942342500701342733689248969468633509803891489882032556048059827750657231431175426674707194938129050662073887068439340568221321494366157961000701949131981793774409161895909365237505140421943542626460462653214065331277165687432195062479581302177685286744039132022971156570804753485539953308242391334124194924539971890199145813631647365428162165991206229517400235052301215711502986989201791006217405571178490267069965573098383537720541978819434073094713620344882955130456084671714096867599242890770553265955087693887974037293207759050160483704973662532765525218940180459529109578731193393243797981615981915003252714707523902454078257588499256309899804409040217586788091315335483386853804504390222188698629690546473251211771976605523384423986140820587099086957810320603280940038149401362442431923056188281537858797419831649707991177602804356909526733323906896175732758773044596353828665484716882498159992460787539260154064467321939644144298703402320929367710977047659531771857358461864343103470338683284679785935187085344443826653240843525997180046656216327811174174917132499671287386923512997220211018492826061585559302777267480803988785789875099627860278034932646370636218348235650714541982574586451047620236925401151685312503546637744294058429671540103995944734408049529141703074183817105177505989499569344247482169611823030422457842467314421169182951057088371725064715676186411664887735073342877326613290892056114467224383772410979621003941186239136851334263762460635243534328756014711600628309032838488121203457924599894132907074342625347386598857997742558282587794309267271075817394179038494496021156119611768523991319895969524190302369739579265665650600431321943203086204070413785621592921703423391326528882330166330836056971660894040824312432918910542696168023568596962780879517296624471348338195225516855578840554352959604900815296890274725448255688020569357197662360659594346831383764367442951942765868765649683464419865240086804473820627495878234043504363109107108511777083208215324822186097732463182569706719482187582432322717488928299475389738327348591834773970887781073970428398330386516041891677219027160175648699677087196815890056213124936684222267400458970886045267821455237239791643497268657549345523947500005704043265488095465274676509546647282895618349585759022823978522608335218717368033149854491388085549030399175860463442056246416513045173430817562609506968765750321617835940908451194450708767251508249380123584302420911134003238804379775144933879498640322636877701597901230996741156934997160451758266521652804679942456051023287347652598202290159860166642657851268068582295589905640242280604957064105404048309508294878002864896355804662029385509919100666309454302699866061043269264344394747088264084716633411054549888198594210619685796217398240069834931212116536190472224093228532633144481452271987364925162742081014249788665677854707159042354926135864914927124166702064464197341070193199641557918248022741672493403812992039571713724316636914060186924605266005135829570122290374788036840951871266626552224878339357335452469410415342554222767735644382997477609826224878577462089186722029197411845895194587235163043015629920502881487639691879970401734757786365334700250652844458113205734796505305628400029149764109904525724963595053600292895354875328876253767848035629987908553189824048780570725212731393630265102500269986863524699491769596231142250309656786931784240054470073059863563207291623944534609793899585894470421605400221604382969891006495651933850126562673698461889838887117084889102950269160083248260747175986105630928944535001790392273603944572429737885477919680586134567813289948266821374837360911519917562470009360927217612311619838878283113241733367914298275625587444095064407420418523036111813171941607386986990944266928249232391270723533263016242494370196546216232637376794924265855901777445668756039745540716507081004077433331474137614472026618953458032764822335356819392200403310097489624127408575432155023575950588664055388288057380679722385738553222861705451449301346621124418753685405947031634407692207325829300004137913618262733648802769801259933637348702690937863536844552582657194177017389795843083409175371298143379741625606647520064918992672097723863859417599837912456252348212304016854768068364443362130645405040922175752729653089571047582960450485437832020917120549142394432208397882589791341729371372793260028349643507730603612106807741092142433227273999436950938940765108916928089103728513905514035637485994614842001250140879322159506201195885578761596890731687025820552983187889432458091299752118357045183893385171707652359001388459286126456029833514542961296097623826213722513239503836619203447263496273926192899222280343593302392666146870026576005818641523283913837002698719949478604721831634622548462273866564859656672917361118994111001334864234531470526817187723376825420455153733164061402713931584232902982091689413706379743471868378226020866100524932602692661187284480626413187196100380123443337032327246039948043380105091072943893032425681438835705320365627367954832761031342210046407527882789711014211754773953147886282174610293544082882999899524330996795280316999114774493506262364216384268789874912520990316409673937884179523028284200974925827116926807253803830674921349445913415871987533593661870507216516757680423166168313339758497741864847831364345280748929953227355115554717035114547828552292359461738411243898726888014590873130750832961717704799512442822619728350779657657322838988188468354132572906245732065052893200754773319058348918370830144594117187462357963339931007980770166637233646068803277651053557960855845583782021002849405683637811041077765311798143948195993497588537382026173633677080646606040737752463898309690355115695944480436204188010352686254277667449969765215951618174807673048344334919778336509683873983112014167922045161056436884837933875053246569714500972959380507812787136205072149017313626610996274929515173164882588231552916135727284802469525893142503257241273549340097996997250558789146359734969847447934538643207242624920356096449907441976661051147881003791770263995311494361027525901023838588471314085108774255672972752662262515003245969318765022481435969129152057353959554335160172778060722719866975560786225276679344466044168298106150824966730948932483217215566070800673474771796884391822922328919515220395191365306617092063562267146948660045658269327880530675766705160524301408731327116991662764721751998844319601115378700756270052163794241481272488393562431503196840593954999319311156349870789280359271456363778845617233371334949027878647984962197668395992078497554134937339128301900188626461227648586891352995050132885335995324620534077915126075066479892674846900763220058876118509657769360319648870100915075197360589778240910551122186835078708601655705714542260621303476869602915335711557112160102055951535848569097850624044633067828135803811305820260097579757419633283739729146661922445116422220762051013193584904441068045203959702986267120264827850157460167851531143740834941303332001600728724292335807952153660332543821749616502598619647380072937467836604529625445773191527830896034461805274615357460389578823811374039774838855232420147504699169127930137923036967448380220501042063289276732792745483025387431162785657449139202208504089053830473857864374169208492628859421061906517637537452881674300998563623116165198078896364226310659336441895859400586739016014319174041661388649988194879363335383620129138684610303121271368949993739794500960902021208365302292118058761450881484133325505412766983914999147773510473254512318223954605430151811994010021184050322015592709809009214754160613689023557419651806191816343339768850104466928551667619681986247405767270684213187855087211887703770305679799353854643731774835328466442873960123692961243144475191758320615130208700864231152850899526184657378767409079007822218216287123255743173596428719659739602417326720208732074733029640610711042311689081411442430875301894125571197568380495652837980417118357669347870351853791938989930518833529565697943691287187088740270000346257921269893663054974597320231673736636516272995933137866002110161385169006264223849563694361543875833727125216610646715049849545723300628505077420449901200333600396109386004236405872619044975309210312416023838115300930856049055600902900629871815135706955614912529929240898298146917815699588890343828198009847674075873852553261047578311798164090222035249946727308657291342053440777207816730108402146829071431988413806195105386390390169097476651702196372939974745817743870371346335842447674374082892198538808887059186512475244297858334640894927837773086173750513520053951361233213962963998742957056182696909386278227701494065392261240853993405919301527617847873059705806859479619598688042030821523128712422706006050014701905686529846157788275038097018310470852750341343198479935304382463364127894424299288648410440406076166073395446454277163510610017503885444030913326255071117387629027576368362029456910177055554793932374205508188261702308645976934938576231616582685919599541853797348777110928673550765544233523942462933874933154029387841569793113031922403725778323908497149934015763077090257148481511256729411534855407722965105004976337687501094087573383642171171759663773483889564220521510111825720601192002837635470330996212895434891485629049722261498945486925168988366303518413759696353483068308845580175435535755853011471045207290039209782509299952173980083042733947642927932719062385516897108260372170408194384385343979512208817741507223078145979529134549438611911293214234877330119381224920333037683351783724070679823455919856977172325555527961704046550856712100591924515033028898606187890864482184396935577773133956094111283851489706548731408387907917660596966684473407556993590251805942559913358790235794550105818791636120226593781975313772420020717250457545687002561182587408876517786447937450636311663146461734984180792048225083979311730142200554296989015016000691952156947727810322945612029932170775281645095815727021927748994543199754275978475100749854601606701473557988605979435577214881444133134829064794404744876616146196207676172100866476016536411109945829648117963236825523339078618041339647205410898118470879556333833262500524847068841358876700729112788293362013440349275960660232026430798832252538452486367833858520420266481931848461692828860610929656756896653194472619660438660003251358839707288900136344547738400757608020336816554961267596028678044986075188042274883519125342831969382397136903598927053620012422218522341140808847812917995753871993551931329236956929981993538366709641122682873774673326300668151288476954466245977390837226723137676114957836053333644350576216237407482960685202131961623499862593159367028927529529617888660332751593872804644622977768465950439553050811746650925882339424363017333203140710334852399512678591565988354322039461232316361650945882220641065070484090203612808729351589739239220465187577744935203832872104242777669685444899663861111433081163389262417996732558394209313354918599064874111565206776680597366893093987615235788957616813300963317010105217991222197321816708219195719531821179080653854764731845806045718476659286548076316179144994610534751624967703911854636856629676934527793922856176804237102053969858739118804333820239089637082893672829020276290569560041711269977467173837810599376261815608000445094911834444723610331347325372169062939942102738033277749742739381516903462469369541503165126051194539475393664437025637626024848583838269180235622966896887930965099161492550271192020749996191143481997002510520760663102961428537068366866764697868046710442724631318187236728011045716674671738435840663447788129774187344726331236476103252150121080519319046441250328625935024034121997916124057803546877746984879718585927941285457562463247147575099867437518711419162950106623893786319436463797106295902916619715807414773916526257950392748977030353894982767711424364792341322955598940621000262001551662922414121477948450162529783223561360213669969701042116202797937471522636928098943438334748828892385773876955310730212736969423833401676650955263367909225547748110573108613188099890706714063099832580149713400897946939965802285904727001938796509969966563709446309170081237544409602443995318453096488257580627489055913975780095754130379372154594001834815014250392302384819877219616032582862460381000197444829693347939238100226554741834867932184611249039546824956422744487389133699734817545653451930221375262553798663622036631314030602257593672463209889211346306745958671113650482397018935763919470177283692297444992306043177519316832276143370064181980718787551508623110713367990907681991674803542195818328612666192122976919261800818780508164511032260375526304454616027794698524329729476204078727498198686016540675632847990911430134559205574908552145267906453689645014557484197219274283729986491660292831994808939768792999910196357615276971490093845723804131169981054697175263123076118059037605066118260388043694347169467853094745927692921561089590174315532280224463497054776817168930823511194589226719880726861957928803577735650208974599256934630565129637975671418840889902541053316842239891691540672693725763162530005955315435793071737841104043145169263165246886030699462236534839948870593400395551165658394661761339415709225154995186106364979511320420305281285543585169057126869785009189198321187072356546506316153172590245128644592533356242458422963124475591567809554964964899861275329011796285970912018679978759961885958842804106888518770019046792858012227721543594798540879070747229561939279764330060704526693687566628475319686231027737822014333548463709553985415135834764225636464850806136134697365779229622294652776786233102168614844940559924565889171844019532473517080595535831820014147019578622844073185924410130782107387264700688963597434260397204848149202324945367805306848946147327150311381050236288613976046522028322681545362162067724883835124216277523008765657394609432512414811548205817452169323225362007277995800443056638886603353651391447975477349295063967171604332478189137219002175856539351528389994448025753592948094878401914097022736571203466273761633535012075814526111814366552467839316535698024296268225675162891280899830411518809469140322207346853468805760970433400435945051085532309682459988790546466836820593890704861327656595573348366457183419785277155278833781159114540900711643207735129929830850218242861944051255479896265200598863528682458105000665862641039161935657033534115630612564447003651156128239497996828435311939404338134195496244753072711632951755870766882779958326679899943601313225684653657102002864953921218633231440159925738171955849088310339056343357141206204210002610690857921383518465075868536483468493534716010979630908332880858630313433741201875537499248325645139671840645036410967237088434234549375891443574876644500959320826602894995310763455692506191727575399375232041642592092281237235298818464887445789608968003435816814411885626982647673897515206438734388763324156143153289555991361522988304712421864874380908307858775515055272657192890380945775379028026577355843862360894915111383470459373464669918399995183382537099260353342452942682173287505436307734288715163793268260375785029208540853531091309140605250081294601093870404923443045111933525105892176942364391321836480390615067222149742216821208884660390321086750878806430949885514916938530679310081676335485778334292331218109465750856110689535262696531824708511600220971916082042698662697660566737006889481351467126521000075841227819713311156876425971267497077987188777456347948991419226240388600151244462339372784963417894051528279123048639026461116364172791994564771775386334739284810703195555731083484189766143148315642082473958434713131438157911571403418125985931887656407007340818415592242083810772893814330197275007473059512869911553842645623920211970714626881003649466652702013940202076065662780380331732225381549736813867003548526134308601772568999119427893635806895470448942026791791974596278407605085368865794726913767863698413197825868900194274473276658617968098999748457169121141893870507868200076596707229520763566133221448112365789839554239738199958298155932231962936762953765922607583247159816333228993546371578218294989819853936676520569184531889415565469349992993784072822885413872875324870415514786345842941113801330560520556832762917294130047549281627872161269725098971652459158980727844362271598168583444000606686519954589373381912766287132401139328936707874624090490106332731417351359099651503364740452246216521686348642406331715855289644213191595906562155902142317711327035348271365825962237977799611513238299725717202886044761799069459618855330680109173858916392915503440252547279746798795620282096018991938803492767397047559900270162031815167244025959404492335459048830300298458315720787343176463912851708607812075517333544666423904902863804201493459104901022380448791220085261506137942671389153081657515890489577376553081051491482904398438350357884572138791187471642800311569218901141825156392334594079873128432568960058872561615970520653799159627022205162831400920643141101504353484719120455274394580634654905319175388751247025507540513879723627123350639759243214319187574439712436100148802111505434562117864646369284472988906649405552301772734676230179074280093932403348115513651942800243124753759005414576915065564686777029760071171956799622088769185147734885458435220204474822775898615602145397674869327055017899894389679494598208005428881392312206600021350261971122663386456383558002861720848893966679779567648107035853747421770679270593117178131523940360031732371095163020546938271000506562312197665799596920638160751653175861659877961820425160814550788404209547884607924195914105777841750312481928968293288645571506645710893251359551565687256730859272061327365357120563392259762041661556238184934133438395768260887108778250584044835185135671768354360132856901529284770034408636791039293630599065046791050358995059615433075366302696920205020551822090105796923354981197172837668249507142862298315430463788539938388179418693750792950260275905029213489346883649079238647398862871297385676491559427176476611891684321852288497399827362473682643217060277298255887835636817342824434369735580555640381558628312613347266291016298031648356403707940820861743525596789176913587214502715043365233075877304059023257320857770103796260320290325097762983242366442667085090204696349766879029653025214286537291595181620949809086870378839963222366837247437072005261002640268725370052591512382697089453415013287815210093549710160796827403626318315242830995567850010464011316635978084931972223226818069760135326774256803895616669234453885255693856481044932541864046058199751456691157216610299277035596614653139795754574506442592245509559881946384527583119687902188778049934333508549284963173274100132615406938758483302050781161245965227184461264225043257961838064542537588334309736798705970010197028307648531440902768539663199924845172084031826366553270910952709128866162389165641365038252924198277753796048476211946860472745272097474580801290344516826549157006737519630046032491231701642182432111968246056923567907160948946638792328155346649061387822145395595686810406391918178921959984136407861631650691908539802247790784754213222528785352622336136761530182529111640792848000389621766497756618320205838030402403156797870478472612535217633235959134253179901563701282762932684813101059001188647260607749716262840172227106526047669138899037483427158113389310268850902602498505763584968283448524634241246687930618036887039401101344077106208125683647752371045627312777643900290189889108127501581623213285671636821203229769804041545937033391404078567534493270414043885098916670349716820355695843340890594130061332170311014390333578130659161294989587893514441714275006882717015294131689677948656942064480542888202413710997865657905674246703600846741371737133525201800971617538774570657928404583259506759190728534610384404217283812116364904336773984556864564905084691637849557996331268247390820654607951306413629978361982966276987151738407033496574348662330343163514615014310278575719165513421234245588939754602526613139743762797773359423390060865077332529766717399226492502245392942553855218359550427325522499485347615609877351912222763205709942162093235645163855821666574194204046515691249819489943491800003007201683337588282424569259212007989177940317034541549125234120509723623772375730993021420352108438068595430919080152143809882112776692397049706900741303284443335824552572453429789291805257183524908851701549959569790896707587469651395893221572992892988310287084753825706105692293717611431303052640547418745997733659124085321694077235774507924092060432972327839928658275738289726755357205607533071493602791241284298338123891010783857093470809379992781986130593695980269944124051790256865572362319440993176629768138513211961794483352176196286982369789135624570479071554725382221893690777636693368668778484829236560625384302898706600535609442559789362057588203813923451200911554682957234677231328299498749042119210823144261468262142516541919168626831758135727994082154635037381844374589401011070872915272292973235363724609838098331804639191422003171140692955264250897829237234553597133690296659119832816347861658534184660154648923762453534632459805467310419697288705432528725356067078618409935346101012169615775607399620167089428850839813037730546676510814525863208223418269097743821629249935165374949491998596853419269590956021448691946710422093472450248252572573083609161566265301272345974157498072904899346412610859342211804843497414502497198852146956573347045165400771667756395017041417871632915625629584943894311556180060251984363058616471189187558451842065446811169566263830697133287783001529425675396449558610019304205321176146899225314544411485406665786529104031795877505610563101177890286522384105432503312258477900040455541489996226478557963595724520386405499842964495914857863846467242061991014110951932342136211411494101522322194724941245777679482207797165331700005952094790319997685920259174610873610275615277839312665530748010466828984579196597493159193926517871122012689993733501951009017545889916091885433832358164566604253161118673294122679571007137439882263540936504614982408465151284690823080644261698658462989519404345902464027188425651868300654787629200408495981174167487891996392265449233979955961752926258154335153086960816834150773453299503579116523743110428324673370260584908942419744240400833002794588630258549415947872407857630045437802728837846663435622075743949651817885800620883844013963984533823497371284570301770753446904674916360528243851275896929053303288153094144360312808800141641300309241957381845642029483195124165747686663766059804527368515691914882350405473520212958713525610319846056018914202082746926404110587042509164135765719852510037392311853617958651128624802895815656796456298222625289184877971682662063651629111508247917950636206315994510643487899704497615483809236357113763091716534402903757279119023372028537429926040774371920557146606790352755712912151450611189161473881472987608190624301653134643541602237666339057047766322148855244867596846171052888597980066263498038028136145211896777369275007759443732060494618553305393700947446398422926651515991003944478020965492226991229186357657981810412462771259060754469109663566912136317741950629565708417055256342791905545322487162259486638497713567419950858189088954445283170036812556948968115583321970564287946545531417207348196685487064972833706248186678555139795509569900234824366549853416018918955553847571432599535565087846487352430591055034757765373495934269482230581220210602011692946239383594339329250513247655139195554066324193681347392602509366305122335360193466230309922948262245316587334937660212931420867126090599659078815348370066934316236361017961569520035969584014340865764036808846177519218127460149174117590602168145824216675592671779387885858509939485482031870567307803814621929138224066262502738906029781879450296381829168081216329249641594081468264346859484661570464697423223300647878158933896470874639558127562820601527383806878406268115802964770703441942287194373852549623548240442205959116705893186131626167925563568924582941492745439622965203006116108192141224412722799468591385235155118062549292333201420553004828557499347400603787147778189381905346776477338784509626926722048840156712642482342017443738377714034104316145913398392174691187154304232984308753623540928672481131447009006687380705742027377476219775458803414702041790248327650159231657882750483704280436607679900218956412692444504860607140141402894246266103003151352656124807564276684866954652292476463677823252952558001721180360960794824148405811817484900259100361392896475200526748241977126198930773930362695920381276896428672757772703308449363339045110136267841116704765228254869325346503501547381160431042154795406501341875241864014728456003729953084875521812679597759070307539197385030135900277256058311802856667028809821981268239179758574562149321849241991257938001168365831118526763358474099029204829547924713620497280066347616299443951898804850741811927378829513460248786719590862967940781217187413388907756672095428462306622503786277523584048574503669541668893331287952432294097380371692652359262527228233898694796119705248017309067959676291132546908639939059207319407881637876392707857670630214419583657708226422350362979200743323113814896941927254436452008602923042999913129833087227974860558820504598584158540365260306117842761950862475201852386115534246737976199668155419585229836535692643006998403331494953675693210561593198172502250775008962981547058760518101043186744376429610944331540299926652179048176004600319401869019943627475269172352056763211463102991379716493432771180465621012330143838038893772214290856989364627456833869998423902126675507245364553811894105665000042243090352016024923058027761017025457313445205794198725557574009841240395202049863050150927910849709449148666373782175244918487115554152881812156212611407388857300545860996937902733904779850403551938177394093064347284474275250390984513471627564063070705587123025101820599969360953766574156456957629625597936069234240648637257356275997054064431074174842343036605877926436297456248017185120069552347467404470315071455917888275091915716373803126960335785113947649884314708810651465887891659547547322240361278793888484231041101006754309947880731097743867984324890215516766954404053556685753421031022475471110488273667307544172893372911677390214958237019527337152704953782561066566457505296043211509366646460000788796425133644388798787649134434968798290796257181219437063882209185072928869381073877495834596625672684817156898079401492763821671102151694885799963939574044716002111841319514943708521338031986782287519291710571067979099264975115777801541413026543620017918681114190903451672421179187023056560239164918161474961125792918668393882668940100283456425124939435425131238384883787583884250210820734613637464217786762017290383645206059712480721677189873644304813685681453643701384143740010469284605340748184611162460452249860213567104501072617794045929281994313300250131294505853610877541701383213664849491941936258910492616445347197734956811006852906706167871615753238059744118433797844586721956314612048878868445114481369606420896325846194919102045108317342412675760681036206658995961527856676009093383357480536223615207185272041510877610289372235229108592333607507420807241404631902804740483431044139478467336858408998445152833261038810402025873597115956302405529657174784493196671683435747282770344465221639001269139519660341381146934425400256482243574553856809833818890832368870535678643816679115912448725828825277893522180546776671784794921965861555765252774295397840346163291421933063749593788585835245045822456465226689898812680018195183510107369075441652304911864482550944463990562062443528760166209952707380591862924734791301768030642505534827320910912634222224833896725326975170073126453764678295190572583351182497579887655060935520800487653914558939901990525764566364765854682717441736613404133356851513561411672052826729204698238443888128420307423510512894407904894449003089645105480275941460353424654348165425721703026042285960007626839435207533275737281021778317222999264930839246768781574404662927225650386105028021277084271950560538984300059668437066867254583534866581415550072960457244374501735990852064798512873620147831438265620313977155362554161926152232348533639306768443291239345035592579745546703369256437119204486392558610884517040958323211701773035318081752668277380078584859875561043187721980852969073105225553118106046853488598887570615603890863720210641527573886146255768181966456223827819918201775494595927608153391413315298946669924087696589550934830498963698082719233169445561639057765059204013665257952819777164717812070832203322230249782720253925990222387831211044801325062968845425271873419017607946513458358912733991179228724667254896289263006274393125291997135624651365274905929160916908009689838120104827320303111761305540037047974246071298160335238790522709512813390312295901572653370424597039317959741143236801356929141227130635891933469210799339452632332286259185026132826825002556091779130601567357921781857202502252020986735074831019871826512111252731228947875906090173082083432217129712231982371668798294463542579747835525006581049975140110033672276409612558565690603835509522438146303655624461658780553205216800872864764680036328087286142688001958429103241411774051869923351069082966928473415074330280420075241672809861238725421576955521712387576120181412693620605375020601072287285792100734658128495997832972921530289323451533812874394956568562010576911154812630956972218230101558065279352189895518873029638245682669326568251841167057143100212742397037368335230332356661074476335892763642295657686456427541670171415577530429654647230700833494687763742025632445080516544639833499349774795662992378074302668896463832528253130723164531784960634185492674802381006978019321984916769603322204510024322111467967516729162322593149859889475300617599559755722318702683668041078251049152571101650092857667910227089273172201399005246202236634866038301249157503800327776654068858253215144041114053622742262005571532735309600796899636686691740728553836114264476734453429628017825684572669218207245596494343590799689306870609041374836578267372895115347436634307417787772909701978099006039106906737988353448432835858931639301546510637283475602723895732347712104179542781465869457080874832645496126564659749990663887798007733654938343442859193719525480593954228141950821982325771700276528116289888742909754816865552972874854626515611141959866709005283712427788043167968288532468022105263350803315501107179923053516297694204856546276738427551491628425995447204177336848464353518886678280004560423288228187157352139803884195267528192919683218508543719558933435410025638691510636226197000915089408536626583128783304669604267035253807468927112213119708548817118545470118064377836304439774727652435582204720498086320283499378266354000547012426409597486691394865752051845312984025750206869807616868456764037268982161406795560591026076948484302556210413863608456036407204727340604096617075186929216850858434781171079740816840618017130758204729418593166524609072428117142773044656359102386322862826067254697277322165103479273080435310915220069760420015590415940483319631260101659975228450831809510865608667877386665597117007625354272028877873401598830077805021835131250435800028463263015338856010622995670131188009447202425580556463173074321194647128104806920366282059893405535242730299763396302111175540067500635428057268410215325232424577981853302730922357628432812837794492437160218560194126618324324513976445277715076475089196987860719358604178410168105164332091536326406953861149246223643873982810020034561837260161358000124715725084274138861760931916396775639414885737707314945476210157260270728026250659978780602010464709617230282158045840749563311748390393974482694754034337163352052667637764519265333193847534796747936635879381251676814334063564114964205833933941955213702332818123118470134452026350103489447129315507257618463394778589883048478991786541468810944652088192392457249554697934235818467324634836270965070442975824045138940365013116282661286379397864875798760484220275749466601295229906080739221207551430453557255366348376071712825822343866233762761280609997751212139269853879745434613860659972034694819472979517755582884121825695715617855989805777170755023891889269233485143316563334258421198459761242753589438961530811990709721808214395745879895152614760126685912523147902600662881551571860822746170413833467630768189708317986733904077425559286224467164524407388509776666033709780321369361286858890311681019678267647424831277707161097747615449883214940930604138936384500956076541710335659782207981051329371233056312573339067750610027599466543603860059890619993618386008277565747360269682534845396118451333780237945327113382749440130775243402617754180258936753598585155211268541845311369309472927800788286656844722996633157233428333921587418224290077152171814383902833569054053121703970323230881427427787902147778776181884776861110026656644127490432451923257390957674804560694680099169276246707691350740218158026658546301767194482212675516300988661271517912379315465818650845597260328249494028891757563445786202271261105340408184544247717471947481850500686339959954823244157890139001115126762062808471102786827262387253294026877940739764593160203869695871237596171492084305136238169638088294121314125947000387448904120637397321261187467287262607847825464794909235805504676571394998928280042770224813674020414619214286009441173778123277660545120126267941538007079849976247863897834522923392451981772171742768581465148087151937388056265553369505753189303916903118459127676850610811499176722572710835274646596602965303016089334964071162315090617848680318101114480079407316345220360858954661124221114401709606147438327474527669884816599512606476619225815159318200233237322920767333596597561383817682626600335258663011279222197344874150188031556628516233734721671396228924863857949245681844787748043232959486690117437081135962046548217422553607004456871643899482525388828132293921936107623326335867176025435945794236192752578059626103786744063819339613802261628848896842533033775078290023077323891780056472611217155724590404915169598265590324744910161294969630140858202828931112066343561405793162714639013068486436328318180520883267268628441296617869241954090212350363880442672669328357847556936329446368747444550611057992354060545374387451260009236450445415216204990585789126902469677119220147998120333577040688699862114480843080689173496947881011095245325551860425731705153409511248949558559009474111483374405216137066821460325647296308807476422905839092071698435800321387855625444600233268163145613413417834017926717723025826558241343827729662856823486550361487864930551209929720253802165330019192618171503802830398872511842877740752820466794036124114519015476909083066867382150455701141450175072467790368769862555112564785785253097499545959917685040450378468804316949967242226525313532048110091210292816241557863126876127263481455781293392404724143057326725587063845884500102406269998037795456310250803956032344782263444289619916134030346410702419226154531799827898054477314923686893253630162466672658957502230263300816368221644131881463792532221739956204583282199473134317176067597012997213220069466151701638254551043854111283157740598500120872334405874144073958987658358661613415118802093769858991899831669969215035579400279332209491931374757246877535988710539059108301013654133640163528149648412690740218895031383808053810334959011245337308566853667344501308094841506634674097610930008914782333358066153462678219494564293802314990844847167651635828091840146633592920680445211688620174687725890495426744450950063410297045749122073248374143229425799737896589406349773585815536025449940276727457704405383557485972626403306096454490336679785383584764108286600450414475089914933197274236850132061064668233189244605884524032393177024571769567961384462707270837895270345569508937812828112412918103448170694793879305774874458818120997600617598396413995377568527420807916769325354951897845207454880708707674774356766481798082258623823010816963708636938603775488429605263744743736197047643297928257829810391764671282521314202357134858765464410476694466035800253252690928454874346976012869979730721037292227004919388440426562656770865417067727541929981400854401705154332892276570459938876569664898775567057783960691605207892155417811571176867171313058185559036795025010338932403652784504855896070406130501236095043053730829614001034669907531483785814624335039922140858012590734064316798046097170178658092629200607372765350081868939876561089299618113400265985605731486332616531752447693659111390924068566827537964650425953361342375889662843694749642668511090786039475706980284908765243628339821019473200168504255884325423504856063279518810242101750579709198850250562044007098585385397933429232549566458646308487088575650727575437850610717581941262580842966994190225560500367441989789268293159139820178690210398354377807445094524386646082421053555527289602922970274494006856079942402651315967099567326860353975107899151483696926523104158090135038305126648110212572350588391271726988701894386612891739629324607128787551251580832866454455498405835706704279438349061897143082097317879416313434350507649867412918325524401406770138559205855751571095007826227956558894274528848844642207128829983684231827994739588351705987494416708966725775733162973641991057600758986341048563668401122773245419031717094433157234731406698300528804005268362933444344483721710134090624637885050400783278170899343504175291235081319552665459818125275381450760835569134768334624688636375693396884977211827620499455613879392320404413106076623439221945143850474356979244354388331526156098922260510933246980962403691256578957179488098715341203050823334759362453022375376991922744657158054228502076799875393212013099071210909522473560001878523419250817932052822128316370922479741932667199922338598632747424952585214807524904106543015632057408376552315274697489147713664853848005699160290956387798193292969734271272837642547893101011785946191623992734245205982244902915619403675260730479702327645151633220464133150475981730886285959105846778522344002875171829923098936011455320478628224272784319205338629823398353480708709055043337339202173492512481355501911710254709931360015328693409930069141089601282054520729545947964024325237366832793908015406620544656405259638231655170929579039379149706878978252908127869184229449891781312140533768712307927269968620977952720640071438882302824504786306395314984450349747406610985309630528773962761074344102870623811244325098536202247703323646515459131102476196107524180266508918585295758093680980630138157593412341707867909951893279340727601280255861835047217573498862221059084802155528745517211523154337177261117685341973107018980715235063804377715037187600689538247299313961949652088568485612841629656015771999254867837822235693368037551056964325336975281286235174305077981036902356211861634304949786860380861553530009179767108358992580292596019787132185127207574739004393333011787633970462761675011545501313723349596288566809634732749188289066639155009479642461130645665278087218516092324497279535353009480390596736673251435738425534735415603279407855963087417011360761186332405609954701549053214790210498856453116322222813147437089766254286642068864696553003248139789418114932013400825734163033777562827182688360635462394464138867464082287670699735734314206390061978140351031998311331706266404885453905945572458716707753774962514575515217702887656279465636524652700496872859719574091009178837079935070245077931220502294875379303016947410793738804154319391091305711479847649840151693037446919842541146394845106289039941899470154892491538322720864971382930593976944132874400825020402298287377319353729377953153940264833911545476982522625104523656429005190404191596112946740931673632052952196985278755723076953180231660756308787945407766392775357867444033921354583582721308756462118243525795827217758764186432572669457978796994253556007664826614982080406128578856294391933838506690992679488053984136582410350268414445495036949825495131225693248314643516287439030798035220028949081660236363005311144788160731463964411847119550082553135619249390071469682429198396750400734997436606472265142043094368681482323253347939143424841947317410540127586198143759026574716199651013983724840214183578585577444269910230401276984994142793070740934412030401953095217575133381681676595686616209617282937250884119501797237522539115533185479601361278209655504775164582786570386520940896606831686269625043984926451268651264143782894950747696851171532973614096325893783387998348199600529719934335845885811144080005875387505574817964467927708300392311618664013226430566287383176382330577682488525029834582460883434433289778969716622236102711546626260687133784285425392266588240169290412078446090106378200607289269029324343845218834375682647002833893766152025113608683817727751141443004563011285247203854962679063206569109599342867785766876551117938044495623719421458131154340583924283024055584445285038151322713570338979961480483422001562207738962334711338016144584496264107658025245149349460745553023098828197784887965293813566308570459880650201744026097979618001137222940344149766150160681750031006527917768468534714220433792047568963046013044255345255109709048962595734160430482168138578593797895816497399141947190314661775223373444016187803236676250872023732376131817625693313979913733888527331416275634660163466010094763664575435820344798797262968895911535120485246287441193848855165564046873855949444409659504019775441429332706196571895577060337028548431046640343860394684820381497155485941041430012665409972894421815044724252498938817890279046967830845696343486415607123698055369949019231871126772007262944889953180135814114672019465640716751876266940168462955190415200176526451087114769080907090891145329094465131300504907726783649184425751686375400992033666393194720975502205859121253512275490647885382720014090958315887628486470285954951724512588018005813928736425789217252444601288727083957233097662376987428925864393196277917190270515151602509133826612575471700613133257915596340806130694225577248025132057101443286961488609257235132805692071299119084893314195827485634938274082732567209190671883898352734634679162614068892141424141726364717234542686735209380112340740932818344214565806327290059745344751618055771589808423780549571886402423894308463403770411143359024152288515936063662586233735569729776268142075951031983662935220434663148354294717372969352331629680336791715030968740336649837726754335541991802624533401630104437485414855735867389224686729595563147951549629633191085437857685884296777717204337683248296236639514826921069153062457698734361394662771976038437826896701865900554951013920876653713202850718653375685545078322339145886458552751268513853129910860693311294604342788403832138588271960207527677543180442211441867467875101828327950722882118132754115000485571650316686308866683033350605599510630327417567297298879940429686222842815502352379899758173692008980668410062025379379313357942375650303618585788272363573348490261198042852892996248521993119273075671278350310987221144627153654849894904936819758893831734882597049346441576746782004001421140065498359986726277574136598374517048372297340845634664933061304010373040911120832761545271382236659076431932298683953914778503761116506231691137769859931991882236463195534756254586303246422281423474552064017431899202111455524828760646487327727262462734207432762369089456932450515773767641652608854862263069204887022615956912785166103023187282291400545586778838732756980480274813130114092327470759598626571556112691443482202395296196890417749850389928436994195013035275300510473770012245044671268616917274363135812097508859247036339696404045571084870069116660699385927921839049249740759953036976129872821015944230123963276726543388587090016321953839589425657354808461777994647881233760980617410823706887827942660636897692627537926179670579457804060953068639478630649333422028697086110061769161053894849494189222979590070648335481244991187271203321188281584140095300014712794411637828569756746199773530630646756791870258317905040523253447215162665847058223169106847628317250868818208562416962950990908475731889445044073164663790322055316314155293484756258694542539821852039163969872375697224915672453961488126180744160250464268973847059812028391344457576491904662567249412035502046333825193243390055075466941439455301144869660538334602326557296062149977326191663333911406909342644902824577210341764875263874867274489339374697046388674691773257191331056916228117564887970654531235968470705677841088558242362667669248789284719959324262116118626741711166779572612164843221046006434671336828346800147459461674809822184826634190627601273608278016347793488433482933140017866812164192018691724179632203986677502950301657388685739304336840076197545037582778827866701026726352432110821080768381152334798007287810195972577260787502457943123532420578105442661121163847658602962531747788994149856094493262144480831894676123418934696390706887742519122614823612327032090393667907370754854071880996432058727906444106258080822527268919627742004741480331428998911177663686535015436410091553658680287644553290603500026417549144863293062594602264777735485554946477733756292549744998542569654489189613425484209373938411385767957026740028609745633180264212811327606057737687753607715503630883707867905013148713951307662796545485075169047582065157060340760143064471042896936576728387626932861315861918230031744592399226697363199938008578496898156127689603931341729820518543984546800997963149539239699045344240224499556332347280784943436815019124485807809582931933709027675512609583111577994434650789158964590072748845335004698175138604245649216172781545159609262108412822302977267677845181792273331363372013891051528230935998534978438598346697179382014134000596923027015529346778253859724234239335449818711049132101838125892177503669891541455350829553183617778133192045743916152561868726292217878196999754560480422823553577268548343657058848240552567658085700783703898928908333007875425239895169947299792242190533652108446472242314156941629362151855526958996452591705803699306267929835014323313133992096384900806552180048126537886143300478191354154369677362331661310442388023121908261309444420503329384705341820413319379115253921318585732074591336484368129493390021910411296741347870259919043345422381825497395212490275089556776908565369299413664067030443786279909995685669740678240611117867710098856564906911566798239502547626788740971231797426862873353773329868730245614330201395688069925624048897518089596247198416442301720036064899918299068768108064976792918038232861744975233086034847790968458013958911857156013220722746658123130633720011371764578371294451566169019986525189703623922960707575400097630653275310362377919832962358034608904456389301774956797502833351398891274321801866840564960046871613827010795245705625789222727931396346067230509155747467784619845810572518396914723139608386414436551364727745328534396969760332824949356098060869599925840225135499109200339444151859972193311987699086229025242550877678513248703715567939065941665000258734478916481354834651236241569978761946818066585190040840396024600814787850177650560739908538483400570358663695770879252819525079523801226662462245549382775604962830339706002336296593992512918290329708085242055582216565945443809112792055548271299250638252007181596777366274454472237593248306942017580531376103649150892216561534666739997459785809350076658836998830004677333386176346237197010817322088298464243712278049800771126391349606090780040501124212186010992473395687618038216245950337078478713769529582270064033460262606547587672570433978152150119113400548034770039381391568397177976912215767915053780944468723118635987633104405604963760000549105323002833530552426614476436337952759414894288928862563071858883546470403084762303333760456169365808956310525568798509920946968009943640256282626967761371458858603059916812269702245208892684245679185658276598586528061285247061373672334877168288720943632814538178721425597798814471950873495175420265903236364550194570015657334209038741619135692045017634665395551668352616336365988402763521186593222462404809136300017773548750238527620727997750269193018373797218639692140573467373114113808760182112408698558928312051733069793814406265905001715503816332177740758909071309097869382875215962544656525852136416831153463839838180120718986292550641715281810439143301707093057391226654477907567561443129494707832047081367011011693316582680081196014395961164976715419099982325006889814498727275944611136391492060436726279182113749144970318070261670467416795219765383799945413821074788384149734019732130655203547765379974670443212546496578042644668723343007578056303428701348076046467705545615732522099415797955182515822796982272973898466126419959117699229235877730052981526206743275168637124157239388810460612665230138929763254370525051201450095601320471610706326124594023381054892375442920315467713784367955678270165306545478385533616656353490547027523307582802241469898056067016634366585808349767953662107563919238337841931446031744038365596969644423277446914155884943976191944612153047872571540544091166202608384884932992832346301102831490587918914050180721228335551508611994725916055890151183563726547760470352948254798075841124771695630340667014394288360653171511510164189245435408457304671189578854859920066216686837513902667591094080219006886633262085289775831346359505709324666372580648037383204180936551912330894856852394665174124267527544618666422031765547078725129937216820154804923017029465538566046227298137626386809695623804321816850785514888234697314900785305161299200082345919070776484693785610842092705264106014110274151330613956227339431265245661412932078968906032377343436188908051914245612296648481085940284916472077073078832649508778098663707120152101649426735651334275767399302282108571921339869041986128448574331172347072849636570474693101333846113957957670454604065251443906628911850411905574620436647045951917333319289513819045582049675718762731836429637290570663614765671686038111900152467484564611332050133539831958359982785265220413139312403562838045311045416668093974684371784510590683168823713958090010728122781880048958571352369123207693121560701420040995636746634914779148160400545697735245872058217213510247384767181191142246562956807219925837040232824961628849523262981496909414309152045048021529665834857934316464696473480145670108235906333212643812505218441965594797241567350519575899301807329240889774388776894572115794042626498236305072694972255120340759750507824651515113183785542011522568184095861066479076165972007776493584974989228887643006357878002018614468607102951692931245490157441341485569022081886771600805385629656098195613442165573588894613248073029085580772350375803203421313872364660894668857846947413905951291673177602666325276450623409359101726103032241442583901725968931377381420704004989351330618032107136523187608477785329969814690596439141485888350482035859081932020657951215585422082830870599630379835491374889777149558111905480169008435853649981559577255395104381997947678181700346778737339516692053115783212352946886310259632439645959103325840889669663061910670736286825265341331286749409001993773374598285253003625056579990561989799032640284673501576760405102612858754381506320818514461618570406351208102681438389811459755406073126183010150394474849639874765634504667636091549344869012404882135137053786296796190522160903639065011000912181829244686436551553920156642471955847624780501766750732693058616379502093124003512904612041910733039436737671180985428161297634768744321353299967078149810374851920640432295193833600277689297212814900775388132218205197291198552611601221103119674187681437989278202803887630543111629707289963337919865769355828761525681736920346264007883471198240789614456335807336698689677923954163031293939644121045651154097245123112889540138945656961505658674887720740738935308534371805938850529000142017715086052418271629501587470328572816486093130274824391826161713531227706768650293416197023686547001728751576055195332967833864081104717337350373282090508403339922705627079734391204695035322651064935464367394358700563909812308085517238109072746962937560327555079978435442026622915679484561096507800802719399194257643350833152420780686796454414215499970474708258152977990295426805217065928639636660475302626671138218556375545243829113527046308658287332338629478614323321775470635061283289499222510640740897709464393184316212750865050223317176259165618974618082351997379974732635667755366194346996003236901724967377063279222583670052049034550722441399654324339836113757630433957521458558505234984419355698831162100157348421688160643228840237759487023356189598963833713400193020742290778467749371962441357219241172452530786066536024326009705096436074175382227500922588883701142405734723119737373099718768369013726268400767528894650536083548401259058978182614414843100514566039650973314859399499362704168254489924738699102311286358604427704208355640185470874263779801271057918341099221592327516139993774479165827622762239379315284831878757017680590917140142314696595536519901454663830199177827415553312213560643306769539269229619554391654798410364586491084368883855467062961283329973891404865105669739276385110748573263802873844879510415828962106030045927549319949836862671040379219838007740736331502774541223261482219935437001783744788141787155867756907833273519113829577358383129537848838005726657935529177348437104980788343760845919742741152995255436394917500761701709720595325921721427150919435171505118708848633605617367787566362132945256035079766617964329346117259678216747479640666239441720550684387342675070198452594630447024820216598111893326185414876121508933275957123510326531633427998316665034740671197529842476427895659079188596413690394839356422308863809863070083903863167702298377544807693279194772313215955898780209100979375508891968040374002593257510336640060714977402117962130647270794555280429716193709665971118742468374840202909902444547135326771489301142360736854939222821386894515345547573811378444757109245503759491793696670174804218411202560021129186220691421157940690641300360683065056945195851267202799632889681850880251740253064641323967086178956496880063140569077777278457012479398774179429196560004744088287708020454159540589781296512208898129372233987076583422961825846678491011355148109922449380455515390114309027802798814997847091192613140089127984535935197678447289142496035746894645611688432220346833720011241081094143695581689065705222413613713790612598878385803860362546157204273783173086923596194315599615044300364102209007393609773495619698146869473733617478190405460292526595592266252730341635526319404215906619061245462954157313226841817876417430137676621304059334827708973636935912358773336656241054675803629041910576521742528210658464946524088270203070191150834101445435161195004691593738060888248811977916696427634595299822746031321215953330434738847503052674853919838275283120881094098633824532200644830137655520777011619753702212440760759423935998748742162777467029052457980951931387344509144289468881711600839340442194713318428075670688983783253450785631170190217507043930605824242283159129245019612141770261307485781827732956040988846422730067281170632805628419598876637289209985431867612799430322490516517603305226073821251795994038315221650462862869673405197722646858661913063938301891710708239481763214191868205983758657136495781853594804810468415935621073876271213273530527693305594077824966270052308974910971731787807425815893376369844649326912527950612613673369101574477193297109416889851263380922782314978109274347389853956426319758039605661789159310750870308816579918579473696558693906627283838057596252526501563577921116087964347740396388484505661305409535865846455697130109713816646320472338050816615730498556736689041185552428379681488560363628723168694298405791918061553658842721809064394160311200269850926893747875946420151248017095479346029695216745125833976053581197274491233250252209229257294425028493252942596721598466012992124929652213301212083631181041673004752650066263476584458549732207250009605937027660537659751543799061180353394763142682297772576155300217230651100273579803261679574976986209760874194993557748105441253345084888882190383255675052238579885750834127003279324329492909960551011976851902132172160302520513858029282648506475011574422050268897598666600054684055853193015974717997929170194192336587493302769161452416493373571725620486856386480034324510318184303879237223578332915552291949984929036406616217645068825822028891377639600143238857337546205271821201494000894974002531280562890074702708383334565266514896861139599399299813356515164150589540852896939635209769959432331913174502147242213561664914830332835928878502689674409334082702738406512913216258941771067229953780341226127071902916577068196651156915268070849377278866061302684503537420050208944436254262907450122592981971443656824175858206621462391170247278340697925065060345808842154550437905508036952269723698983592420407862381839048505701881642951981035728509332929666586331680661123513269570922257097995134579373806871492077069023346232463765552459572516520143084741729087905959040022519278101041414488132118344887477177580523497771546807315156670105749110268979665285989998005988103797171592373653532414713741345134280015963203305669276628107797132232373264970513631969469436130249166774082206520871015979368760327548583429880763514072665292668479734296836738357297925149274841381465133237588855644956730476562754775983851461550851094184090373944331162365515927832467845377876989202634156535568944733357043814029630623820894496679617482807185400704277809305840398558058183441105213961361999398984595415697272008697797262000394524094439992326968278420099017624697159982677519396388391052927816896383147507637286268855400522706939103414107148209949973206854651922807689998807070362957898993178988331845221282051021983264516953584711093714283572908428725996570276743417444370951914027975651182973286321959249171805840749941390695394377666262255164920389403052827970851468728356594613078501428996498985985769262729111946477552962686620653423327141672458176482843599510589891161245369303216022764434942608521903804500277739212569177077034309739789580408980631802369621343077822700775466627205181452028464160336445539764058398139468148083689234401427902277475066183002735477909378034644981383890719990451557215539343659966403119320496716897021427116695687963839849311479924117815697800726853735769780024329455918297117953009516077723504400521252700518284304372550974526384407233316729843872579807461853601302962031875656140119986840265247263697677286488154082551912471483467324889967027907704758764486004326548206877319267734735007486688476264249429539244790258373928195166413316664808449789426683007844195607077418642328266353808667365364518492019280324544307170706540574755659014732663726906013481078715702823822119587564158764347611839963081173869022462316035475881619700848474835802676967276197185710909998550094647830643630864161076963048646460257802507916583999135415389210748716526976141093219258380173405715284610193379734426010531315750320840951451710831728142557948876956918750803949319029325814278070008426902899940744134088280926703594992660006871017958062163818884709392166478187241825214998622360215167758582554799320207608056400588882487228352405851887079770015492128000543784966642417223634077153100847677915166458985368204728843945083089533728465657430401325145163202589552024385061999696612637370078199063193838897968049650800179902556817235482253434072996508499420047037580804092316172907092289097088673149552916454697956077444045039180551837712302307544995325502874232059356069536302834298626372399521556343123320198573518076640738887622553223458151732863217137905194347263626229703678664995117860001293458733610520084066374529355650604740825107621242926203809136662030801474061903282057673343966553102229936014287530583252829081766244764140745691362949802244195051540246350423195949476968467614924945396738462769747467152340838599801890052015655781811926500455632410703143854823028771352827980364842262048998529386421546329912183454774522901461389644637548745907303707475532698766301557237648114113036545342386956281924285283526312647386273997716861470315433164466020163743499783236924961763336767839638882753241068749762569748057456048110515791200811008871438036794542375031977457526508253781006352894420395599831312839208867215866516576647548180579132133125748568874250511817878649828005880508929871347802099933250404943570152815720041338403869401641377161555400219276125566693035206440100673966609689769816696974640907216494572601561097007172434810614901266441609672776095635289998139780001508374665927242293942958592833681321232182990044112951681939637616886404667007330068129029710581893522040455802493909417565902843694878802836601214315946582932775198863753017625826917148469992591382644233253112614260088604178075835757300914523123478774194117929942991744021930313504308686452524265536739924301520803101616040713631534763406199473850230141845331034889405647449338979005874933482474143111610555134389419644232509170586016896919393526294941849211880876111375038888270861975834514917938333799658885564222235279798798275680984867841766919066812736251507962279192644904619482286725236617465583226488505943579830933869211187308783990313680286272918075399403690476289350556509788875568066284036542450228489048144654783979483283340390116298107011946978257144387746670386378355183733730427052356689125575082128179957933351197527333819775301560176925712506283053575054167951639516811938834531112208107610126671306214917206591301077537545831553841081610909937752261813347240040144603695581578216218281526119188189831808377456890057947833409584481224359783577499273560803153874127148379860842490607188431584006092295460269912143731382124520287609644452144050912396155819732854397908139978648171566455975121535060027483293696745797609914791557640249469963007625973866432399080059852960718120746879163003995356274580366319463463359963522619578732568673442273521925179978212024588076637315782790369329707584265287554436807498045823921079623411263882249943077342667414806655757470792398161447385976982502949041661986900303918084496370914169357269543182364874679441850183202600061563710559251055543301113812405845361728852477243624143029438259515447991713047431542178307828528818938498724921423748223099365649542767407164833648990892253868670887932234846989411754835506569335152502203193782294946760306938468385854252998351053107617297966387150849986914009816691665375174140037482510252925314284142548331175356245451194730685378575649790487618461489565717757934033068774262623017751975364820889170234419498672729153232871864374819261764674235478664336574945203331226106718904940863489381185875883900346947547156277951882316999988177066591547615941843163391407322098724980557529068303505768822713788902767372938631767527203357002036940311306564151160136483532295072285974837867783581392829688275892586485201195177505201975727197883623136020946707347742116319296786768433260216942963200362290575760156198141990775436168780382074959800620249721446443664538385002632860089859656615454900362701476270163510268663950213910275295679456300843871020670774422042918445549677910338024604085990460979557577001359362568785985491697375155387944117795196720658128421738218138021575683837343555751855415964807206712842135899894083183105518473794998530065791461075966863675659338367777849243315347614968908243799834161132926205534046353524264451513742250966609699816358653393089152120609844770273146597263868618078935684620332875581647901664425734934302146384675467118913849428434291693197066087965826553078182914159621391128769236937661829097091948265347753078660140941650778020909436862934039478100261517720000599407721732835178480855881401636416380132166494925624690512026142459502889783888147393476734092230236818047103649063652722030184359240823051788911072770766965687153242917787528280628242204976738819484573898133720775997077594365495400194125679417078185993900861869038870217721932970061817856037616339636468460708529799721499972659353009909077673892053947851071880790679471056263139534749529007400011663230547789623113443814618529911748839876102714628266464789917957999742942447728758882075101221193149943478905007628061046558147686628499665265165556122480690519840214482501653813738829832601954369816770032691752356404693491738391723083217276463753001652693768138629668124469974522429229537148743601854406051604401230869752936123480313625736548834866008876395225628291089482674977431209094414349910116051190334658660019817638344650685998544137130915289047270485146593054506058455938452948445768287304165208242140109791865761325554146268468035605694382742060537591345608232086943640914119943675980153396622707122501513427596681216033451453507463048348786500388521828252560077985661943748978231574659559029581348872966400754919846280624383648396836191460232097513044584293172391342235447915961919313811588264089716838668450299167683570266060627061775474168194482513203938415616748465511143283163547471540023735324436918101444327392406236475486186329599057878081081967938364953945778985840833999153487028595733679985455099313640864241066721206134238724554295119472303530767827252225304692332527730208550021082386501811254936055769879513520306531064831977179727490330269189253526821722269182888066793703994036958825534490536957782011765842910387660832533930170546120177293369114818337147237680963181944454995429403739316097394686122328396903204393975355181877409677038149304065374618918039924885010668533895700809950640189758860184957362443239673672032591099390506699547453438574707048491245801480744280158655343879973291399866341176808230485108364117577503904349447167789265250089439750968818338193959980417089021375510541785185145458674771163715584376099254897685892839926896276922658460086480181473473305691359588609338726656918453412917398821310078710524201500879565028676232614916984296020482829358343546712541754266789770494963515089382646373296165732627078782393644890198408210253151139731550202434431085159166304438656819626682825349283814371260125944488388019627522739924774405650665038129125973391931835790865624043891522346767684512161419229035862483180595526130448957439569748266386669073011473440879818463840029346086783757890913743728518729598687276871989366760938004575170595938655550561590189863925263351721569491268088173062159482922539284804755949936539517627531675847459109980417491072357614064027219203355759249093505430291867167406382062693593403059159229638831322439589962196146690527929649953803473639163923311045280713734038412216324326023207224062678673101377321618637259538558355194244013210244374218275051260789216151670592331188301477223051823599005594195022256703097579806738188765945761586121756910622203081474671357949479947733378781127235772766545697827843022016735892279831923911043609234702144236841039030081715666852350471788064191406679896222815850673788977258461030806491869685558519330234867369740836742989376967611747738173624929379702461057030363345358324433507142075218719696956898536936991391307135868476965676267997443973348240826492425473183986924800616132404483128483205896244038318173524888463288920812339730194763021877454672595655092489875155470830345370843192499034577520508415799963711725997818554847669212967390824010969968875282769751238571561595124517222828325049253298849501854477434724562972200476365499587267437736091330467296280441628387855890026662320165951724667832825943031403841288903926643357796861892220508930937622727956632473351423252329432872909991752129531462140836159653575487459305545408039432572671503478011854628829231538197744986608187754253876121169783424372558356283156190431973756085203444020973222033634052278686693218952736939724086669489147650986067947634312663013695600145365956324869476379663921928844663372059199457581638722986805219733003422469770470818321859653923320929715508599128233083058809361176804183350208420024739188373769498621170410649142492943585763448690439604227999199479966317896793366273289283556198442981012426858060590348404513558911294042150475282646736982943876195097401789090313874903581450612521235627975065930887891276406111445932662566465340284387294476235383275451549170912947469039224322493505813315427510296907900613168342673218994322274452928335576327387305486007254448226320182700727531192319690463284543232010318060743118938149632837971553624597665123039186511833996626763775371921240895158298261556112407634882358519222307791468260668441317769601399373359078176405028642779767678874581638197885266799329979856384832361814088072125800779854402069358260646037070575226814698745262159039649213633865319715924967116475893350973145239474080724790817232531876558988671945882071643310951137506141590219781156005491955314623861429269028300597668059262809581630779891654637534273730528916650046000252156741820714798126806072473866265416167307256068932780748199176823576825217255382582109946757087139161453020418105096976524033649502056712723657768955530745037122737027277956529896150962925475334090665500346778686698078263017320720084119358768221109003869098752013999290310517613730438140032176674937214736989250357463802587228743283142116472686322623473387982961560259084763660077979288245002330105130187444606857221196775564181788130698564526944816305027753262919088154498104212257402280272539578388032164424189562285772945753431930911497531100996397817062873034272481956179412631615335135519936658073225461840302988914846478450584262932239905089793011447365287917636918661507984930807587297791528638067597163100779346006352642999055012483986383009984169697867878170405998966273752262989214184776761580190761412699100719897232752170661443352852963500955959227995011783393797269333651493874521301699655501428286307154815309095387738908144001962884825141565946451605979003907395079781629295681613179374281411368060513138764730589005589421663768771201097544713384846613001166225477341997690552263981958930269713132805751912267601485480007547061340279694999159816286567170980078927576617121474424154771244284711206647447938219733540656161807417828340173871347756031378143811252972230507823727808696339036948386171347542135192818374520879506344643944116198809170981562291341108527337433810771562539165625287185662631614552399657553807540324266837847313369091757102396920909500726158489420916443475823204987140902396258475367334029128328293924237128511348935506073359925842335298486328213550807503801848439913693267089728359162605958682258711079119654282764221225229808791707015071554116546367707899190680497367700067373404624908579411260896250699667374196123088716167518983773375541513159667250744606547623778582478532304622160961731234442033771535604950751118941340342456553289509819232434268815149395987562193929132666703591167423431434989776286250397974341960284500729685692696895347459617901052767893610893418372856438976753321536010520653893811884263895775852206442035400242721908139042711895566689304318231259000540968681889689426217303321875526314437575594431257335484032562643570485239280366604588635638838774624714730779917753799444791817544251610366838034963945677451617859679229023468320307622656181627202208341512181603773303981496187406767869911675086601592910551687691155008912788162556237766647850988140447158309021991106770636138260674166565648503425952677629075481509283093467070495864693587039129444388563334939187539699966451345010891517086475055040919724619029151482241213332434858242334572163808324985036151067795242836860988799789732422365022226863242163541205221393009244032756906383675925561899473179522785508021401513841176567101826525174121014064791555436293682312800256152114190088135391191645668787910265856917833997105176014187652340418348839176923747021812349562988331331911894546764826381481690990973204669253801974368329561049734523763690469050240355451369463708861121519591133252049809474354799621932505478090694422364319374231919595586290461235197626620282886746680605321161809329533280682436122945268140941424548432597194214933205582082317897091898114422663101764891167178142476615195617173516577544095641248517699921675240267068408072779943264979385791049101828919850276691111061861744146770617103384363876731357175868737885539532061225532896259369143787384605872861181602025106213723725394391957296554695184561256667855108206557969316365956843925347140807952492983799242656977006411874840613633444357210143472612540417171931381217278636601685085169088029810096171806706912753922563004207600834101753351097814195789204213072767980025991448029568579198600698211910968332748416028000986443613400707416345402815376134858072610849260150572868563919080668658257716786213615790471500804466920799361433199903033780367341623637520172249856955425070239042164440716403545961575743606323587879383916783506274824101417949117821005980749403854443860931926313066150051124034459267683450438386615005793380989471827600062096363828563848082915855580314739472603903969707751441515508397965494779187588814163114360971026349958221954456998811758914174097856146844429023612763995795504305590214057123664612399373382505153195947022260058402282288660668277293860297366054126204896261057853975991962209664552522668506002979063590776489574996466819138454222201958656361008186206242432252557387574484797471678141207992856444641430542175083953639590260460296739861569149078969419148322641939683750911607628040066204358891127315489657436138309212746498553921758907167191962916216339986787793598688776679992992068796616771708549497213847684004275574181386786936283523669200365439813276172168875645774445513064910893943824791537372587174153934420441808637899264388456043432430627040166225470889266568124396254199269889230713780028290418368160786455781803799901460785157469533991665982908439028119246390715472817059031448262897040437907023279679096493007837970811009621617899637433853355646143739797812187043156682723476283238330937176674449981739766481389918467111355011946919486397453694460296383072285455069079215312915345248142368044620860043049670801028936010671934716512306903081438948323970838945568386028317522673332213127773026527228509895265494381469653113092865429235805196093931283072791424065412811965204559541628435624504694415021263187701374465897537798672635824572734444681680618366019237000060796451292137451167205720784089645840081829086963774983829647286766056538049008601071961446276292162325834509652118948222418094694445559392464800652435334987495607790571077661433020389245703473215748856832898513707736897722937351458554062652575701688191981642098539809388059990939563108094672031153298472085404782735004482802291458131720012248660594689095443747301674137709627746653638573294005954692277987980737691768034029096421889572746314964448597236596161539004679814320932741807229171067525989162507252240256295874859917405649814402217558932107936891466792605807826557059135523772318840952188254731130151052197100510929918017491577251673750468849013662444123015603952704177092962820383087256355327608607014200913244340419119529266732181555743205164103365165831049310316730921542021825826191678657259484953317150243014910440884775062400710747729514614329619111592920609391683465499645179308877757696684638798790324199837698896533509019098744135601078429316309415040862485557758173715655015766943520283849353721343586577144977384735660258657395735223973509430784181478514999012407774217265165608750549863436965272599965568083473424566012871860733223484225550459419723852862108272452606784396265292608259307543557140790632842583232206105702765493840975186301442789423401164277003982845411956011620373364388186722092568007198745428826259795954519299695412735668132180971872022565920952250092617529095987847757739978394589973272154573989136887401020800178576002625876467009679193834828982079898753767484660030741359822426866673122080481103442622370349175231885852130652709281187112321267745880900801863938762796265171163192551681420389862374289931403136549548247389653188520047035197176145041276240880935867717104654675930945578934938200176779040927332543940131700853529536449550427978938890541694556740497600906857879485565823173012359172578851151066316268917817583815369865654054736187815010004290372657085507862282475053865016231039853059752419984937827651137538561280883415514853368637242023086414542905705067734042786339548073798124542908290681681154970168258155461321801842727270815215710873046796991858785131507917146412833236156072371862256038302639226561603252643812564334329369083793603937147313148792153155690318913399162327400513332549618567649349023204698494296630759910157789759226048588973951936179342979748218832204680906933033277611483574556728944265094762967822685432851737434281074962052631221135454374718562992932639094604857672028531390566070316237943511054159896283874070211251659031865026855928220118870965049411285015264913143908803501403567633048887993290626621951845582352469296770643882225469911140475860149118808279925776693423603701388961816117209121944784716362016542337817781009499418197570308794973024190225072879255949531421925865138213379289405930546891084266860928004850772214256771756469306705262159341573808816700823551534993420813438785673316699520589850166791067083570557134821149513294178245339005652701502736092766355338368138149414403717615919804007745336550141936868465233834208717968329171457140538351297485557834060744759075093039277856501587475708415880722520949337861621570005694027440086785505580734158169343108854719279393442275110586820551554895169603141075579805022230226567654663599544957284529363541696007600769893539256400794949680422690150648355959345526152319040910646847714956777731133218774414916439340301309473496454976505852321180239224428116438047573757417281540251990552290187418724010415433311370125437376196529797437710536562819803348821033493974185215409593432456474129946071108577846433286475128936094474145841855268496887680242381615779506681340801240648873828576310297775703890395637238083162737671589247575120574224650027360704074125300020677686940017832106125434295704924695055603093222299795120648182007956387631735179514015414423525216470353900009696308152991103724531792702492430743000245940102156116665511749077479303633360961083418644598599846876352563053630607758575871686062107842601232046828147804961282548106050276825774042791765035203028920786052960694512446391150246554174049057882894837949152277281252513274910469960360180902132475128973420189758689743562937407535507054950506988674760551927143119853073266194568606571353570803488134819827755167447486794925203557122957266842817274137250821371127979856193644727896231019970458901386358090168716740798872858742954017859348327001500689137397252055841885057708030930794961337600680201855432079083992306554050088848679347330248834950575366291743343783489594746940521190847645121471796653444591023934299568616830347736315457888246831801043724905517606119469541286524462628795848971359542043718447997852972685546379256472816512901060704616354015603310783888165807528997401661726360926201699743778148431493978468078177378006608538574254165817493330487973161748817031157458184263175727410836273127873495978491179420743278191099381585177483747447702500799942449530165545786681072025707043691190421305038822738878274441001593309862031052929814646636965969841839834659910328078793449454255762444754384267475527717386993749991204706237007773315209252737556812488897738797511497742335714119070127325394159367329783621697495931194739053701738134250409205788864760652157017670709520352835294081554519445769790558635735339588523913569045477979794060342951649037644233810295266763159050509996724215842003369047212804392269621159751010001099519460416702893653087741525053253702163851178201925327539274096350248124445601840404655252973601991611816295502463917217599756278915425306570186133965838754089868486902561628473616022101075341235439129347942260393478839022795556898856637946291562329510114179048081291160491529475456271499383237233034668101665882127897857166416337379090071912020291855743377790990361532453197205951299756620884772744136988491101490600388783920251424402606783323233542006922098310985946591843969262506657992762567603864330356010914066850174641052908872454175347389910233727188628314282370950544754772508995441125278178401003864105882037487455709501166534148248776187650108530898822225812447319084448939191154411407860251077620211459655569395485545497750897260263480233642414277909725708560255646753782652573202115376983465563588868398436878335906487323923698468429440179506682613691890233477677515326225269621240216019014128382469730027413356425327461496826339377799621842313281099734265712322740209616783424481793943158380358444446171282131103330789895346932494734215756187784904516163218110887848587072729275397691502960728641150488449859770018771488363630172128743921309603047939600469991515983113219288797307446835967699638141053583003618986334470072561230403575718204761450500293482214303348662945281995743154127883248932979611290944633351262163289035635684015909089273166926495473172319755589767476421599029026349220183670288979662868355758016707416105777702633081274154495467015819718735299024013629506552293663139041262612909689765120912467367799490164272234034338258785946355823954284304611269282894054039444311733597725406383717027453928401281055832277193726522750481333692106783709617325819491141090268448837555656938949318088441444542347629862329644705902782695612874957283273820947555846103832171742741549997369619274211266528728869758949185313872612260280917356921515691897956080038077416476418866157779153391885936436521320876814666369064566022762673761973975528276184190108184692491575487406671025506870499911455038648466676175138761301001842253480360462886841474372868320321994490647318782643365759040682187513566837369083827998292029575469890242140877271409059160518935810201081167384009049221233112301465570959892007264996989023849861450254454620503864687165360669474990881495772533988219048222362961822144869298301436316141615678135099589358125917249606296551761568851524626668707385172217323082520232677998485271782040158231865009504502209265332835863665416122718606633462013589844030795325608749135367304230402035374573772450383539463159569704102327542201136745214759182210958276972208466185835605873474902732242914318447211858313908771680634130329119118387457818097409541753462519981033053306717160205102215386615262374722581875422350204398209630086425548438388424304879560036215112789519952916760145400285499420466217244000205506360143977541302326457743646483620727296124176480347361910606789307955756415951241325276509883697537074192019719674222318949824833272731588066577240858796910496746837819648764128106546234509204927421089076065482329108209960969953185267301716104226856331565505284007091276367288208983496494301917718905676090077331673963571068881144094362199846017695310152597437385603911399693576994288212587550060590670361502993207044241709042753734371037226432545979916980860086966565822923620545854617831317179158456322793108518110701296530624293527434405178366182937578326620749223169184246975321767720866471587891871296588658445844423026713361710648660487604912998476854413971263501976381133049509797494150490355350800494019712532018277587290803624941873982284823400533491504602613032293859847836827969621628426798295657389746465846590875574440642475179835653351155860439766962283033137981496155077571338840380301832692108011695127590638378222528841392014966443397529133638638065065500316860450936154037483741404139470647129037651835242825200949955360189212098375758252892383825284303889135434591656964118530689221011190130733954611927094518466321807349586422792864270355344348342494656056452219823412272197681740846051331020052267936257935744061419940657095262666825560237128368877839548936171468264782864548372455980702579049815154858214692892077253148492931041998493398358740479465677897501890609710371702381944831618013779260098222708570917975795055725238429308949693714785245444563738959486272129797386476571257411000945409487314308595779035448303702352024619291380415329637389384688785294308989854629636340696225457992933902340482052558178989615476140914028825354774913921387793742324564078640393474611981235136219547403253559233612816090951529400787741999786395589222665943571775254492272055331715753446499494065493346014407821196454149920114301864237028024819676392947301325071067031342677209196511334532555760260032277125674863000198734770185883327932418801507844266209675048364972268847684212268537895840134514218274344691172980496913110496859809036109081328969192082187155002940684711997089574565981341891978126310860672700372843069464188497548962002471388529372674910005492641283114342085633189818470965636624620379781217887892649318699231037215754868042471443842121168865786496196798017351955176011345949267532962154126204129353809280290816789820129264888095399416571581410914856025586042698394832327722270896770406900639612931710756278304461168934063386434256399195442198059820395248235066481777223347156025792832294077956455441382313169337560620412866471992320812969093184251698392488772679829763681023540572268433926297410657396626463995326954518493774659991355791682139557916589241808165448743689309188139344544575152258031306270389167674203590285144285191127021929516438382278873766409028653944715228561789636009352918661566976228262402912149710648294715198241236508618325407818282093323828877055818287473741921755347172925382465689441750937520820823699886848864083104298566785394052984838788937550494640942183662269962427165513568685034045271790103994065166950158597174873145729793248213500885815076967595149092324335772114073980318980759508029632555385319369350579280166376760619539004610098958612459073325147091187971391310345772288436313663279932560454633727068128275267654928703850734738723122360052090916752095785376442777487051168465622086992714584435118375564560666279165242943767643543699909434904434146127282458929103650089381399394885279041152337679205476623619113795421195136852216239236073342640113136571483544521686861232360447263897896988199029982617893022014437427287396026696991790721158482935860044024181389265081365264617501282247601239750826790324191888728520131104205453615328429881758941313562020133933512392968264743370492562194985277811055124264860598107153804357468532487363534431889115058028185780513498902738654399116840850630903708935717406076576351442175039031370744640182580708592411263454902019893179390123426143384866301401730870155666398840728509047162266162078124131267051802883319667126815312272883775815425534816288054210712656613359965434426343932712403812644894100332199430638395417268633137471491705876377453871891157261569914412901556233885748907467775980809311779893876394864816138786692070963419736827172516108351097550969790205872369503247438945713981789445075861935442499829801728407661668908145618338565961679092372379056831947818440168380467083658655922124344617430103406234257025522647315077838823155406577666586522783403086071944962467545124436780604321759236724257809786155402141581103218112375222021158259405789375166299399190288786643736593880657161705980301233031424791129504425532490153545593193385875887793266561585644129438775623091317692977937403720505952772085098278781498896149504438846148098874270137918284520901876925636890708967977218965720902046213352936936655173052467031672067655502364954474290155385858433208875479763478264174982322003375986122303096262348432435713648092287780489567922562408395600520431394797744544351552224415885807548156716880905495721148411347247301430816622519470124796677523483457625603576027880455090759227115342646396090886353739531556636262476461323468610572272423777689887708542305735637075251688733237023854226296444469717582828369974498835570689993426011432848080191912906386495036742719236154063683054891049899810538022982494797969857563583457856828842224469087315286959127128283962607343433442106822700041452210518865398928370203319885609692854834808355428906072127086395455066448033430786446062881573375327403131269873520360474834268623778116659096652371533725407529609381977940915836607059091120971632277495612610103572382987150666891605221230758591451337460171222944688657928754269768009100554385099939731769574392913453530814362568576872318041838932757858561854062943251176427353964137925295539153447493600634314858998495817879774444110285352727481359786875912064681175602924321934246573326712633061099650814321807836848313839130143830902790108094488373654695873008367994303171685900692792909225467486304509760001123569463272883577744200920517680004590026472740092715091308469208046682604030676144285729549920682182777001664119409869465523239151531522320532212686937638664810183900759900362293331804524302318024171441327669294187638496851412771849096716712192460527029234610138973778406133455938387159352152049555122167865944918369850753551967137865755334020703140630561962284036353959354768832599267909502195033930739596241497472958769383896255167142193348808020848096880324001032486032665468654420864812201585170520360190484532939434763893902895099567550474007929417994067280113428079518850966406915669864196323044786097262667855145603632286931630582102503274837148831277685930312055281252841276207669709986411628930730347585601991791676977419187552904998810940712104278800736284737371006288395554326887241963020376520273873338572585038318915148394397679217141832419050267706627025961615585803355810964824962283122534447243542241237895029701585127543886419856876653249198334295857016876543791425700008235027541543104974454328836001434377604418802682972254576979779574576937111899691774478870495402378003983714486477602999066343693124734611446657379883903157644277421797834478948419283936588991358196375013653650415750002164032178644886905503400327007135166449319288211930659443793288165878284548555585200826427907633734301522414299729663545145565459278626729834216808995460245470821783851523361254681772912627029314852564895532781030987505079602974726155355639024264066906577353440729607505939239357617992951898689662782016097908571386502146540428435617909029116432653625229460201699224207780812166179585566479037051293616977300147239151559041528486067023687708444468323019976102514550235690649406225865542945696586046712375095439278221057284594823228688291779820211628528506104131078418083989096846186936809620589646188880805382721205704478344986551296686862510432131726354148111676994113844712221377987902842448343728934058654836122475412669615433700384076672576364216052030232923611117150167141390733656331257298076973977796075510529925059500710383862405001789692180717013266395948095116283018736923939349763866308078113956230675918603159384504478675893413552279427851212191611739787396436183727322463255897401723807332613402827493374364857375027542164041998187032125938348811742568781059627900104476686559220516789537890831745118352603729555291414691111917819895770338693054899254849664796055942439347372124255461495579627157673846917746481339514325836323614777689792692774808012570904883415896812947152317393081931833168749573628232086751078025928007545787085390551394617860954486945755139481366902783954909215300304781979217784846959924103851134553315845826791885307181507177613003195849354783978735826073864180679697200719419698779397533869422554540943774976651914404143334960868589908347051981987732364501671697931494332311437238162584724734657369079805671246786278523619491586650263526347706185939149045283660150150747659276757756056061814564989799610291551229578822648307593717200045421115399670964102378580967685075346336827629018968682070635066453977156436178605012486282619808850817953321311699296345657894590739801477090207520608246341314245425268800082603260805583523138435625818343687236691934755427191540018625654768983163315786258216740575247059887213524687828952381711911488399085081116176437149941523442761041061532505554590189415707386619480722287659316429395703032126383860545965264722510728797030284347528309919288411419132357814411147890068048162175592750133425253738995970634075963502876225044016709932207272331181464671600532130376730224906428084397206836287387230259797546972865988606053485892808397141568188381622973523218164463638566186243476567323619158874567493881626066910128843073515530723138957986746985892415133642484051469386831301027375771669794404842803225447562732185076801666987235534730325227759473084717444810753387421977548250276221565965043130643532711141037897531496769307995106622157890640692092205752651097916013398655560592070851491397590325203665470338196132134110034454119268207300043569534820779494294374311910205246651911495841234364909934941128943640544042151399066685919674120596286631396918356726768649539030984655197461629721533618545245679276479943834829093304369585773133546072252411941748245698671245405513415692862379262572742580372231864726331752354604692081289028072323320792453879001104888947845349053148992052515902524982731158510855304828670764845508258646215889529206786105175450530255690013080166552036254606122734678669160872816673602047123682210420806631804617063012096431754564182821122427099419140417378372456201537465191883870840303561301422567929713988473629657611936997224862920483522275393414759391302676969613536527615065842836969051719680064156721017243743358108156443360983579182033466864675167322970266708156892563604290553282493112661889544931142874687346956251421720362589032556948263305145647464139076267870637869127267673329385104971071551344629411591433362053686989135149149761574482554579694907295741146799783410223428066705776503098530440355904862726083099063107662657418113429157563064323291369569710111997667784077168585888198797465074408189742759135001675859149816367846814290816444009767897562381571094172892445432638630678774610555868725541541625500625769426076935240460137055614224919486719010728889269835974978786027848112091152895951130700822506838351437271440991453635786409966450957612836701993615829546614499559938893692350785152342474983482843144272322775633157919412210291904536776036167621957744306125048588884243979796229440609909957371392273400094242813728026722493515674678713054279861930334029012633907001494835061971973481268959053908197423160429635095123160960821386165648633978436753659591129648311091467045898355225599831957506952906687122485663299028726588402981670645676405046557310651384784564815414925569072828558193981586714241480965587449359685044047567945921934176601331070128793305771751978167460992821942481987464859363928526282256922869905433431990379509104847255307818659980537654798126341923896572038267098787298160982917503853656713208601459079515496787831895710251195554469256279602409596567887720585775350962905197782889372431659829595895380565916223599568466014173059426371257684282404913694757362793823131202292086427740246687906734488824479553884552204967703517010766866428887972921831176656066708403275155309359126099527171253568644154082883144957436131461916945746415708950853820231356229417617979182355031138733831258374135191504039828510754550766588780659688194663097790833692517862412298331991670527861139280266852493870471172529173047884321060985356798634824079157571321969373012201183299314823254091471923542914742491328342224558939375075616208930520794981291334472129739445074927285583909194652676801060243150703770501929252657517340983121021473933729912039431324273306557211401180409592823203775123629355354209403198305761484035616327206074051280330861375546371840850538773642512041057809121707940112713662554092625277361132218856679580425813663659111904024714718017910927348813961616193366538742973740119050781789414744865695375527164338976124930709106694336206604974892241396846637713650628224444854737976186844217096540839573663716397566158776577700214316635957853572790523186297219288962049210314589271574697363902183125687345745711959733899166195375524112898075591983457294636161686345653200666987451477967834934743082725716560008362381170509217795068648348611994041542186236245612963949129504375077435424345474759878331057037889775557726738943421311022373837192112749439075350587987557548635092132370046370565393272675464602548618260504134979235319311697206008232804711857899655825274453849794984479652045950402083220331092127536332652504516008905089445805062448520743400880765076527835789420204414179404081638777288662074387838883852905915870162421737893417874177701412737541333587254144337977143511190301989673544970835580819093905924402323595101724878791285176505666508763747672882229228425892048446550806726709063425041230850248667753685935729342545573595954331608954892605173396668785069848532681943792344570635258459319718318724833127636453256966430330265934983374853879269578613206506781411113172855238811629253871665562701841564135722698299633520806770772145002680995642408869836292914651255326065699014428913468211561890180788453129031222794911537745646575027794062124976664351028851097143640752316123378740046493441261451465108744624716573559082292735972352060096677746171316483068787575850061868872461039132175438356504190226024029594267304172091889651606209327340166472336599735420178133325304946172078208544621983795786993698069479099694405107278433759932292097787551945683388559939256187363291825613858628017022265186144271724287846208600053597282106003389667703172800295278073227600787982126369175699385748092944802447668855749446134910099697579033655757332577681042140098594429406357148354328123580755877767517364741492413395876586670881028434570629715628875273769181211594589140404281156079900831740125704495004704812446815884452871392600770003584992686908149440646688390029720669685763324105746648944007014681783536743416650441619355669616148324097500496694176004647164449958096530669286399970107527900527926835236882302712413256429227784388101482578155263308904773842059748696353959010598491765465485372394711093530840438346179096935180564871595773502505692117351368081612278568027246793097080735925169144154203162994372845960632188876127119043612608233473300734211358352680273327168301435964452204051053657074259218574842680954493797313275144406471030697290492201909572267914651343335741675206637801688511829392697121229422101636494969145773547514292692120265853118007569830503295461890237091160323606735773093333065111193585108178942263251045724459861434873707074909723944431547032194263738579760926225176200578523720278570847149417630279976990468449879557170526989159126770950227494646806440154699860361856638138859202148698987562086657406338502647313294332594560038436343017706556991825357515265283482470403091010921991063123421774766488038638430943491993401337152648539381075716199320083146658733321279759784013798836734607221719013224470300641995144042195593111512074895616109740096466356933498879777343147736654960786959664883975870971392027604551596863341992343892919876914869967559689413487915981078260835491304116743839136802770554221816134793552718657625182355692446274097660379623304154410049066200294313017357806676531286964926322760753800839883477157285444923944941572689250504749670436848343861370240622041641647644129068291925504920348168271798318937125996498109644659077560885943266845154456866356497725421326163603548622519567975107468358838223159038783478687207868575563005167668446724028805026047936506535892597218321722157530578453762132759407271618420854409959981617084545080336756365455499651881146624939318450955795826177952180825556070919896467778026350358121350536076083687672829271158848724793486518261760727855672019523603105774142249781451809268066710913994745316510583561069598677016324764411627895600144569911874758298312493876018438784285100325285346496101228397045646425282449908627394627538225848493362088945863830266525814950554540792657112312449770147906523254564146073207767476806749509357915350323271866742738294825838049353183121625129269152429363291748116277074382768784953857751594554902191752351625752699061062819326919744291919804388656636620641016340021908189496609356981533536956453640110677880685868199951977289479159358828825330270583814906541182442799643055761102451788692794511290094680731166918432385681020607280052627863397428736053392512802687065924243356142209659638151771518917076482793337608508523040819910856694913185183259068499655174108753974466870480489346957132204885399753102844114541156493499318197704643854496574757490508130805161984951062396654797190022202193372541907063723480072192447835534173872916160852375017720275647742197913195506440870172110042760835809093993934279271541096665944588958943104475424913021815133080429967360133757741834972382788090489976020736665967404095828870256049952097038376296371923211730164953720445947713003233306500918348649159709775226340449133431443174896937379313283471080432870102809601499193407592989400705290963526914914219455734219246948676840995670696517485977009977640695033326550131380697380032217458413539826980986280750985394789870948894616371731226818799053078883639892782950227202538477366431978160404667676474803512628334565065240589102316808367109253155612844478171651523955748824124429644766811652184927236812912324452075735198377603500335305457368980425654452394938464367982793171166058117040752249842456552145981340978308340384773620251606565223729125455998672841113885015108209661815707328958853323879711751775133622902611956450066631403006411585348033894573783049212575273927740598255822966208413215188940933982641876222083891507503894624167478902904976834629128366088954770171810818783264781433466683338833049981901017657045972002072999297403937519008384639329668065115345518428570533355795573011732322518450760221151269389848034234666148002355267395414588512202177565155059648803697207130640528538008040890062602709468453898392250046821835247977964965147906769418220041297687011714813618981511157745723517521914957470979897970194932593650413350012343993611937877053696852785206511878878115621832059347415787328963487738613026301438374445418513348812709908729248211238299311239667099151556679767331927629202943940863255035118652392281441802466413842621808712102615187566533518245679646350253999531264567511922588594588624970550199689240176343587923424586049584828888962711875359528035160344689169775727404398623149138639107326710782759276181872492223054380115171510847044748720406254874025968105633062913558985313720177121495564152844666120681310765688898454837832808149160405222136912454810346628614719186631279197285519188697261195881729873498681072359815826331690537966142237061612980663356032238969432711454594693878933980418096230931210124771499846823453071482808067871753526356336952996330328874090508950394540845959630801668258013467070655571262190762905297963129309620293760553501951898374649153360592337739689862402567725506293338269424181060921913316403192931878687356459039334154111420241717366483077073250288673906381007408737496021666169081179474520694978817834997472188528480070225202405192553910170751721484614638721643402732817057108697376748233799924793736776015590803931340409467973207363199767996130228813319275226955048255484533953137617149375678447007399207306426314161566229775664352064222242862626950943053172541201258042597259204463410138163917372107809130090841591526191714654353255312713272776955274189403023044444956694963730671954040793303464675489524170989977907348425447028823181445531227695038478211891607067342525409950325335855889570305984327080774760939339246943743024348883037907022278406553956457776511453982032608446907726993774227857500747285462210837908432649687106949633107199096970618977890270982305389917772383979157397326992910260911445055289402758207465228586668923437824914457660495990890280874667436519636323265452986604485544309986034519425332620025214492942086713267574122997048489613868929876333515171401545385026460953315484881727396494445875682050767367853493520279228360823694706732687307466572435943431503157379181755509211933625556599788643675595004931695364124720068447749912020171319303675617797729133921541934559783698651113514832205074106381777661262376652295541309931088220043651052639825545313566871776928755446756364677150410286569556535929250125727536132973578377520604435285496990833201690254597712997189982659478044822844620592623446154191140399422339578370983002736588826343810589880852408050622213828377699357982653111843968157303717487865888309259457989113748216008870086209344922863245734162386557379331532342987416560793719151620565368276869041258160575999566552501174804659142890171551721619740101939576441097955652266982330628000039285401426733381602936002658213159242287308470886566408299135220700069780537091345119758284371296906796256290675783070057633839127796914926731468821775065132305998968056819664773670696203776513043635925930938285419188846945569394375349995677149402365100537759860306838761585008309889108791851775114201251603074254230470949287187307137003368867706752017397663553674841410658077811762545586607208993448893554146748276629831833159305650740714516581562696687963724095788294250430139525778413806258315160687818284051243670204187947428115130882450033038534683944765295686486255074447708452175462648261211364932118095498846404784389944187098851648028320335054837495120187981166034962909280405102125312549555707504352061053108310132881738084519511632526318603725401764415087305616840576125811172644055946614313177510259903970039689528024086409862838077868362552081845637570623812176725839293545693512939755256828014082642268551360440265474625929136763397808241701105828730618594203219373538828465291221033872030971269679955518739586663887509855193182732762317204252251896637750031179951259648810593420663664136497296887683676290215789049973792808959534500186688741289577199252475701433568056539310534715520419933766821686827282342291782302345402560366426969547494635110776064404255147155755924134782612421449596033717824287243088469442763048981804799499215761261628995696892771156913622112526731117258946187055076166680520862622713814239876012702990929386725002081415738857639792236851534938882802175011807260249285942744183381403887938977008846817648640267293988107432126525093837554780605520901843484704843456110321958153980866856888341301051879542059782800060352773660340631977521139239816991102865478960160734140828622419086929071468444349392137448084977077921103970156202137892706293469998168785796509882102849679542324264291082326614346420308536337976918979543287392359128926207921779405166470250201658562721260313358555483054412165270896597687819235323064543918829748301944497172134854689251753075558263382427906993501905239848527977106629298560574873798666433016368648846605986636352281180427715308988230825611918727981327937148569154268561848863974657354968282881612250109111397315090429113165733876715187953490067989984362261294864921092743181847700987791357111005220721949237416249382086619747638305893581512475114056802250574568969273434078797432888056767359792779031677293034886238306380266359075881590750637028576275256736738206690780311218153723082411322265873202781731794180166092531431278257319440422547619996086375128508292800448455645215423802822557883835469037305107326767333851344993146916014391995998052327350349152187641167831806060305427030328678047969389791212048349933130043293746443453597786333298186865788760243347594075244756457265160222982816038319823259419015318118000711944711317190200140998511744958184174054302751788440449706325808312958165217341770885379823203769749213576703756696760318401228098390904070920417248331590891137935046026293755155523440906272143856936399259266383459844057788967824672392610593588289463076307004183146443474378961928416288789078277529834455908627052297577855271605867238211132968223752447688330895591696902874712142967819525839817759789729463093482123552877676932957022560262020078506097779883314633243696441493921789248027316286197048472230266351993234936122633920267895502645800078495232390990763003721280067276069837250159244973812991433553788477841815517981595353873039545352137513125644031902059949513802586914454816115981749538612999906635383738124038388778234995427201267118576148829796605904298353970656543427698234846389028805973878822899540337406427347600955769756586880888650666890339673039990876129897904010184458254464742430487257944636558015264021494441815407985770543522404015829718620986521290849428305011564012156692775133533020717180397047283995179029344330965159779906125662295788882574896463101963250432725893017050706002213941503814145347413529274057797018097849025666293228887086714153664843438041467794984405379946505340234387075854156554575607204135692053372677235676941692936978139674862483625054037509149026443304898179038975920967338633726139069386366435165391045725655846978689125969805870751415461620204561261589726311288164442492976075424544139726859260275200095399435082258239775196696817545921714819311537673579571732697772020800988187212284493346882757473592081041568357586816773929369287593943611372401439869641283106410943211649355624766711447174824683892023506617652006054476516476263375300705455184852275204901964883381714019860541772614995996311437226667674110965489002939411616481866359552504987561267090663677067743606568509172862393424001829270619961381454047609484698171489703685689848994208520236744287484567496224926872470118544576521583890523287596942803697504775845553266579410063786832625923251985988938666338639888686479044324306442746640692856370309122472644523910198810376344479693450824457350095444111873616443876030574776750083202260487882024113477810011671389509236155687192089857048583517542327775292672621960532400861740587282558810398398819719324372223343765638625872274159896501097408807168396678499677941479391096840601590531695178377972286018722753918730513088895583920348116716566803723258820515178399972361098962458637981461900343979416405561112968454583670582846564296023541317128304962253428983002667105619253822373758419370670594523355647257560260169821614632669536273183976839883864303470621626596727894957031150579852020800324000799182732213816476387518079624361618986080382829914119637984768492289277925669305429159010011282990590327758796729976506238532884921005682066349542194354957468140616459093277862756036270057027768469003678358418746186227011289845786235497787033300877045811915985980308660119078534084819480634263356460009489333116970921054398573240561011774208062709628926568177993395733853273534491706779670510526101798562092228196097378102929589766148944363913325036446327610972080769147603821455645909503455606495326092549453761186645348614433407303928863520625254157304378790853077759233708533729652677483024596228488496184318916171535487336908724183511588498645764584833632842563482546160600831488786237176100132614835002511306964225724690311349867245673028874442089130164585825650901956643843632017205670816096505379944812475178731433034939511549860974869593426094350024451604794442659154255192647425567535244774365228345401196614029585876314317401020825605018370113004437372341732740868968621662874766988098493296081699328752271938905038220476609179492844090720012045476180973812473095502256180553302733114687046683403856459451458050925911782288493062152565933838227088335572713748300745534218719039603324226545956527653579334883775496386526742726095190192492330037321211446728446380066257817740290104041016122440538028509180816528632910052973440565802097399255005158447374111479728399463407656155973102338842055482556401088851161612019293279638494688115711283942538362870977691960178398817378305893783876446573967614681772852903440396304744721164426419482371961215674281203116912864433579956934019995547939214531747930764976316180165092090998129344280924487081281895817564919865735788723606936930910004671841652844445059833850114065142299810060925510185567776263415183442796627575857729527536913303858121508855184776752278209147924426692001056551474056320640424105967674467545831756472340372736786129560573075759306501834843766481451085514133144745252291801539739043342252935219566400051371992452262226927873129881715149981588950750188644936074586008735638803995774441106385398241261716321238061572210185317141380174611262609058077674949579184642831532379358283541489340383645616481547790705058821139279817080920656733937006796831934573951315135392259250005611950960571014219390190832981084865234347497283505179559327226712701504656514109456258311186563722410577211278022173569104207946992809779413751572576469204401074549545404254902374543666117905983571750160706864954273341127585766995540675293769112406971394879451264498759692864599596795078982553307689066697806093598947074136696376952197791993099368556532859212496357488737550119183069090084342191582236966800416672601887209502546181934806772915935434603910843562831294907705511721738598312895134657858640076806139998745321795579785967730336804520474853882334968496690757340582837892968038709209342858687455590473330082146598375859342267020280937722065879947191531899011092646619578341520220142967843892783476872009603580259382257698010830235493114638861135323793109369110087199678356879500244958232002310921725829975735025727362924906422601890498671255702156980611690612962604570873205660477679291247195144436372895548514734521857189334481641325538203311092883249395185370993887643838604936762395074666082593922073105810559707460851366266515310269521458891239739478049433742942183223836567071790729855920976122531638048142146081528186072719445738047303401168023230666225102882722697968823459226756738746379229391809628067849382271979579557540893612646047807190129657757693212484833028559089955859186631651027024837323978517009333239208479366658922685750575685212637189477363473488007252242987506565805282914811436374339458335839589494643370866339302054592299777819294183775474880458058217477496325790510134973987232192567926131897014609422089175964446921883517379872718104017933942814117779744326075929527630905935646042493771489507836795234566130940536341314186049544310282038867815182258787261607944480771577241344550552901196222944393478014776025882739526799858948238055226103211235067974278977374296779152001097471908350761255057732571085607612092197583157394195007074161891432162115308802665756146203799582358239675186047267917742740674325451570068303257070849620548819272408656036414301203142466525200750968487701742668658443184182320651445995057317362287100328404783234935986515089873973608736887864950212018230799586376180092786841486455885993066080370090370947169572653640386450539654369905216001970757965466094509467231266307881816769996387279173991285619133933184227972636291131403384693720498756535922487295176215439850130458177960467491594687992518095983421066776277339355539366968191974103918478413662043779991025927215383406195013048490726011355988797572895620220873776098317663637395114295239314521071117115741477207080833773087354966289203159563263806052960207283250307198809823464333069249858140338377866061519683797290974600452564802842705806311105562387984535814362088683120651203341074402508513162006257248565751134740336451878888592906456045447148149869433456545880658116418625759756613584121821024318226061569884736416196009022066699435211022685391917776672615497733647890185168145306152435299161288190475335415935040474042230042173397629922778487617701184925706913139551312570367643222629707746739958547918129221442837042859368897207240265752112109237982795999997936040789964392215138662035036757774509304680745728331041449616651663805831050916807122197122634419065768355355301940491975889422895319384845980469761584839060596005647096653431625319819899668528120590742051977020905771554341847682177951919261233802621618109484457322328421444379807162387659835057685307940729140891089248896203559425609221696150795711479505658385460419264221933031956648331149326819161927285721904721811120716060329011333181863064366820185810361913242520504911249295646740932779019115073436755349381189559901922581803272561414978641091314550185558792747539280808653846441944824681827151108895341294316172726536854126218503480813866495631135844156496967896370649027347495331217142260506874852076616412884419943625793501876535793955931088944766773642978415185166599468229409537061973601681900929948423614012937823678591986052103060886263626487994632491535807853579183449844527784853774783573974586396970292185048944972490750447695561033312586857137852209927070330218788565968569649583023238755261192743822773512888628179553265570450892854457322080623148622562746517897219150467421814154577448215548884815820070752168387621820618727531619511441581525513079253414781579893601704629092950477416145225089593994941010851557391175506101694263553351827639624331569540125647235077925828952776792445140760029888543669510925961016744049931499617644281272496727743872417916724443100594330688721345838077918042978820018400440774069334205251128123699844889124943475043962946145610460246739814685935752407754994372365729453785053220091593062241745711716047497020250707492006671413361884054330819440772863574441894298846069784721014223222228704706990011873944174691151376842505817755022473981981668530131739431926068360592941517147499598330185186104144789782012442737116703519836398391650311711600625837346050781801238624227335983596807027588615842107239096521849889776525016353866133957216056952688655686541233611151809874975900008266985494734904762697183687373998546245570407221178376085106343439808578968997555036639434830785317933168205405791076840668954730853584679594771013981350651321959035557954427956728961180364873490501270175814107460924213671506238229571115485121812741667188305550458408122786591828442544703201273372370708339716436917738349371364031379279815713194507967841473391634081478601594091323816806989531987443401614420170979880320512433411765965000674183242886279821015152277917154337534662951136017863034804783990982604874959939508039718372157827560779085354428424288160069903807373426585049086904239390776712411428662259408094822727427417849521871391355495018932691221266685836305547929543270467638104221553037631353472993147830079585852898578755430777238505039338837941453681243095992204833335908814534896354032085282355984170462905966894522165836410512389912393328720309300771155211708397402500729441116840320689815817315842679164060078692887661435552703708751524302265173998032555103901086669006878734330858182210093752926119451297718442003851578589253839653966853755366914053197553310020369760713823697960144848343926885161680014569475606232087657102155508081733880409409733427957762640670749303794537137432355646117931719874432283368642095739871644676954433960770423445348512949944768954717614429193639492218706161232049976649851050423108196185648035460833199247126932151700679038027759591911592896921203696061733009776983356698370289137135901617919946153046787372378539439330757494703728073740592305011740863147124162008728935377889821192270467204858623160149319891333099193858167189762381935251762783875666335504790969154779107458312442084639301927162670623352229667418557157980645702232120414653115214443333699236696853746188950724507893749579311378213728786827691704789163086127559623221884005927773564205877316782596873165860146947947792054994128089426278738467286608909219039036155219481361568112234087347586523590189255929192572135018445382731443714224227246758371725956126483357192277773145491473676192246534722572819482081497996711553838473830143220738127796727591364207005124634102242934682767707894206536640843277401972087447650661700852859716465573619543842748841753301264521651977945792124850265143829983224017332768947140102663505959735642329003131452384103806409825389105888519869299974321078983771930343661275825086108747721965668374904890864155033237921516880253996436641939397433767510024116980774988807092797376406589302271090106516569171792016150377183138556326809773657916097484770529515279613848450250828388943413257315504749855109873107754883607342131319837423773611197028783870043592639350983609101240788561938910267830384510385778369956371719289728655109108734558677084725876325893220932591046219127190397922280170714774235063210057511084321676146628576480504583655104188306234361854222022193444554811653623190123009978367051616403934205067670287828823509244223603221108430449452039983210916960177723982379572219498231573160084673938742661494950775717572674943658573466238049896570994188436142895657073057134639326815240697080515409619589918327087307050807557308464708192133264013521257513666907152412901554742676096689353556447036808888213986741458432347568944305245839507094884678835585315943472508401287626568104731856891407383430066157877484191273889785448524962484623351654579223150272841570265690481345276657978108512921950687518261227966543343761516690971377986988831216171387033861488594572836434053122456587284991739585858725092271567036647867444079685374032380782466554718855480275636705435910111864145347069310190772939043980751132854651610774880991388631125817489679057054664970510006466255221073763343815340937849254148651396259895288879272804808368717948385690117030242700130066379357475815210151264519530596783399939757988235064879160752485316483814528657482180210373092239184218558585676608119833201946678171552318295698166223974035163245936024069026073303651121452499320147019160392742236103858140613527509840585991654318844511561904452880565781637253474037766813783842227639735044737261783127912937981775157818503381271647898556239315144242118511523755024391002637250568500381004275158525398539408330102822347083076904092830356666398503340598657254247888449528198924497173288825574553386599972613989866792147941869560385715064539671432578138674854614308912594338152618693927369796315814087350466727532309812994651011484135925074782003646485362271749542959205130472265372321843745657664670459667554800105222172190457404028049151872474466720904304347622082697153233934085348795254783661798681001611394151584456284900041769254654559520747596376154549143931095372013187287074235834203097385864877492359623245152711560277716431567528077571288523471523518859255006790240575091182248618531643101619451559952630402916308467542373486754546017477364284134238411467518938428192804031190192431246101517258052671155663347230213667488456772996914320036081753720224974157373571171558436372280322081370364071105047460706729286842405561943822816464025822414817016097345788902618208842396382409251357727546260318360254802625609127722410811512089194958894198566069003771698801438286568155700187808054812794011150001940229569217123142740621240130089029978616462665420924491009918488311895262455830942615436322977057100164021755975159960686737100722222598790630012471281797409226182068819576170578464590410476176482307556685749967973617895244653029499437428430764802283568507639466215905937297154076261437944394642333553392460922939670403192829041008763425972580193328052497329170899619129923752701301793615495936098462455861209840146702634196572618216624530268678921070391689280682815904051787125125020736374850251359055693588533561478194785042705565006230609678822528465550629022542386193847750907173252817966779633084624495588115915765254644515459273592421191815632205654686849220587142725815768163296006573268732721450055032853004412285081579830222678932508900953192548663848241532775389957510717548541843941623747916403240190180708282263243131466682924273680519308246373564803231571392517911769328491696878476228137298343114484367100244142735943533094776496206466718996673722800135503912916819672955583293508664048771887527209836627014882006037653255161581204671548486983204862925576456415096024829683290155448615050025286113135378034171219437262200934706816960593482210102678477300748737841034274010506275995975673861029038706897431636257903950365845430566056622512798300781428229610013466981887977013514218136093792764687542634560225000546605384304834174532248593131638933438436994162007844847797379913859662387620811695851897678603640614730766046084128389803708590288448494942808379421582667242777492785810455589765966663395072396259850298154529601323385786232231376383972912203990042514215036591916332371847143278915561230323150549480554787396657338522565770414134834662702935688028145085589094374884128603886664173215982277175443237103076458250963607813117968484032149669475036043579065835415894555588553646372574413524005604455308081458901845145314628202390997527274564120156082010652602701454055786303278388572005698050840793065682523516547005831311206732040003373602400735964095546601594746554663140128983163138121935297709894550676079017002456299253676321613018463536718569473906117652517498363439069246421399614298051287233348821118953725936897025366227944433242438076355271264434917200093600128148711470481868930845373511852067772692382713068755549297464512721593847514702259324609494715082734666981325468530971817990718178933171268941215611889961830045395898403553320165691044256672638668782141856622003452220914672005202032076038038369705862035226089078792043334601130088923049792157657592267500735638864654924642383835378788551637327137986972718867547472146048383834564057104395937937735464247732172538440371115876674288180982375876408044142978430586147363165528761811774676398086120957275860292246734033911992816605065997087204484616532299901642587967624000304463104149163774938245087772056420907268904874282190519590868967964826492832655975120726649245864744590026902452558553306274446549459672677333858619698334600699498485648751486428194840603547208789301077318925701686950518657901999057526066518654793507803931041536820072320614444386638866458688680218860303582656033891807006750661264771773722124104031458261995509681899230937862325200943203767329591316738256868354170505449714969562520400723645407872184969851834989976138114114594043112404670510171898863245225069657567125253503765717250461084276469767563677714721512060013687755382111318894122544875696716871536762756238050845592230548073644638481679875259729963539943295278556149986699411815708234296311330766893631913472845723232378228453541608996512211433406693014016353321103091886675983323109141203619200317967298848102280899875365293953915535279341989002511747791424737512880847888974799383080672488163991714562307804426901287049553482078220876233869064247940770632796447539573711220218122735982410953875129916333824196830652426128323624715661218501071952639516639913325577785025231537210189744566013207074633381363047506726984465531244778348224641644108005719290077442304718716484203290228458930405919180527534877720950874718399244994340599154345046638068676038349926577300420998283738164990202080368354314584286251686824452558780019099926334900982549710142611449796890711882286641303017167510616787453012742075676192062170079614155363135695315995794831626485802735012111322308013679680729614711694110082073773793784427946054077316919278704456582555232587001154015922291065452484198918539008054353249332661857726823090996645345336975726462572105696747312868198098625029937753892060763932490950435505881826251648508773491951019916438099555601123567321419803813425376806284812944170172999773403081644957419791099141206223819782274383552745551682470089296076827958469102460990026960963339624133010905136455040314834115948674141754425566119679474683579497247031262185389505857147485321724638410660765795973056510707800408166927744185117798187882141379802475673898494282817982500314570348447253811247472723581747565651751930516536558135782257134766638947749987150202729800114899387314663165701824111649624713365996592087070944678073995759949965382789791039127712555669614500555956121626088380642055617535023988247453151597870639161758530136426243978393391476509171227913830934733033599116530958960422844157536511568549786897343267315630617137660391468868359369872806191780908517261501972002299663356877003022008436332586052119686534042592866117077721835645210477310496367022090952298088202107675491771730108490959837589988591762173013749447168199535875160068349860099430468303931534445786859775869105565085981485266254497302403573155975480320124187967833312782406360771638844074885599939365242696611722669972784642743092921829174667363970242531219124923488748979642034200817304242674170162970718056182564559975769815683466527822819583181542831683579660991400801801586791588782101851490908697672414970784506717133533364355518531092971431886948758085649347417682105208206018372413291563024692179055652887449925618111681818265643956080137027462938188187255377571130092996471652531691401444122614660130847786949852543844319175660205262672442498856325702508037158402221815893114533043172742408976521433979093568926163274666193495574938542203866988538832112882311723459030201189306168339025640473784065161219977074844165667723424871262153305377777278419274158106751469648929755643381668162798279688629772446067578393344808516062324823650175548369137233289317663501707726090459389714803644110045857832281256296768634116448623124690524148364720256779543973162040842123287645520376312029265469855237034878031814270538397398561220115030112956912251613993230140331531723945474615734565333152086521575146718528284608721609884537695237005839054335886270205931589536243648413984460154331802902785590480342246369072723472012495289419564814237409935317532313440818799032698289721697154019433445389226186477361703589923572421031840991999365471016352559820444509078800388945628954044933155996687895655187011629629923670524889402636661579519818921646284338999301896850262035834469954841201602723143492826451052781526382438381610205571299233132949440905624437404978430173207282331525547722359177536557437601411134599189511772862553657091052332514225467217257808193396495989012640165166544995285636182512094554880267022902971751082373471165335516350915762619751491125878477356908281247850441571484479330731411866741947914322739430851675030941834853762935450831509419398437486867504987885620406414117791468072075286440636018275679185848286103268878999454127189857166527096818194246526231448849833977494911320765717790676081252815994196710020126794473944657632715426460251450062121380960699550531482518359987716062101691886718369955804552799763768185968940044243700225688787081399724189795428866457807718694540672073546010408015774516104364957110341852020937558049459339349507125181120003151218368671403351757217575771395316268243678573370273392806543922568061206459773962200640160927938343153901476050711861252014655748124070676240969365125285202191963596604490627583322542457375958675510532343893328220213258636492137127231657703096788892626798168651315461408772130786351191243512628182150080686214627241624830960294962614849025227288590784285253490041534131607347351442236779890234935652288489877915763995858855803503727303012618012420599423548910391262973287707025380173417427621355229662459355295923855201799861163918504632489241121039135204550186377560008277819014051944080490204988437734077687710324988810779644046137522648953251756958672477785188469702679648856332055970943236621993413523850427633636148757043210739988284452418231152311659668628957328400491342089575351349785209491560380128433733044770588290206730461902922024334301602632823670214156748309021145546179908912448608079266404816931007362476392980904057579953400524229366083195206709415571803715743952975154925365080248458070620177453247513216391804767178285573521058242522599000326489520511856838447828258153800255374013108930636292474914936602739011893891263339458754271259208304526162889309903959355684428149230714855276403926052771920760993398238456585744769178251507445417494291840135463071400610095913213801276428311057882343712464930561575866376138517979567317400437837437812707948031708837760873288295064880496729670207395754332978523069494746689013850546095297221020448848400337596788692393156570217058691577623618455863234936945239480990167761659917658278607118150870742918542045499972297409797360087976198493761181207380165796569555955080115216071226119196160790017269746588454510717562516105406623948090764559953852552699129697096963042521596924466681989197705205038793512076402172567883166504033390607411918727011307923020713149671055805185078171615388395429744581501192386903807233791631812954561781107393636386457053724269503211764520667238948210148540338112681542003388973225512009741150574499369388937088781293272890755694339759344032861589733188139605963181139421565987748810614407852948895283713798271771738047960755762274134758006006412261929468528280271367781996661745096770936900660174220514324080370135187914935810134895815241596409350347981107670801928754770826901834057606075191086978987957523417854653866233958628557897346739103013674815477224641419494224764026541270452925734113780272186234747516500089617509303634378673687302906214688426399409428424280649267127786735149166882875077709584787362639719346740971861131949279832347351810994282238626204935803183700045463817420882087866793498674316065755706359758931666343617412008811106447143224667834142000065822338239706033738295960943935693774607635779351516054821594971169520427025132958115174834559733600130504133029500931776211021884415994046781711875561460925945194600100210737087464809977047606568490323154164862443769615819464015805624221998870520933226902921667711286217707085275252973663642119262992752465524472762667591613235776999432535710485990824892995103019511139351341535774569378961736870526153853164869407061335358657636684044397907505987753383757917905350052309103246687166052339997195632233272812079255019960402288439459365414129871669780645136650194197784365437397803302701522323026983390202593467673254211890036990723854790086545001014872939054041394239216743814273816590253364212072441390681082455621191085705540497782134433927384474634156026449408330355305426978889777811005324796680351736191356390387712591808284681208668982532860579519450387057849325614057937165304733411995410735378104760657857578733745915406188207460903941371659983471996709464408937956996789552283607596638198723884704488116590917412100389731689905882805635802728085732099792049359570688834994015588142175570090767737665604436773578792564575006365412870147922744823283709063032863562224246835999898827940766967523677700187504490138328379654262171045632831104605657430853679907495830535369207640666395329770745354882117054451903881126818878925404614976740028205211780042207187534630837358727928892108364685658771640870777334413388060854724411180313286624862166333721118120850094313690727129983848545955899145157961465848460642125498237162518684038005171268002065446598557951679312678475388064859518048252176991714351556402653701048728651178743121030073828263692123898428090553475713612703039508150010315851513328193283459801387743459431797732012042560563009489669188418411241201107210119415953817115070539801235041867294793682562453843723274989446863806466360423386819531252728975670196207380773823792588211054381244008905767062985327257072578685525980759551952716107241095628688402101003257067081333753246826588022068067237979129708990149872575043287403406719513137645518918251829964314172333408779567917103936387835433573689306213629753808487162933492697314954390533298526159688124231703808412085733567144716207219505370677693731012159185859808190912232404174050283387762049318730845024199060557046433409504090191010812937415390698212905922372718277937431342634338284051915402641920495335591505302393276065154880779649935261277396732827718924067619776860215506584796340811623030344666861625318487629818793545339175176761021898531748753831390785024141824274030546385070224795740422044584594901258815338098529331294529310095532968108852357879058149966212643987879993711338644980129089460189719727673319911773068235892169847030389784374188514054058938651553434979241010980896585382746679857893505074003999165095114304193273715451616483351046204686298107154029661940124507217826166133975536567275471942464185903636359596621588899333369873566905924782655637988341753528184903675507241000072132806630243731513473858205625702030379939769237425256619681944434566912627081309642884357182648661921810757717902416654853570266451264887481992156691307733419559379370979390627551566102258777974327233041128360299299553076980422082177035529469256887650914368215821702176460187998808493263670927781189534987684854863849632745634897056346884364616592756249555848351092261673513440538385245913987572830934388239026880074561030204742122277041069049676198963263443424717497997066211944855120286781950089190693190211110681129199435375195626787498777035793351932481307053744252056655695241370961028427466240413605881885120247459399541449838308418196293774151644742225734198895261938770495818153822327712618272331730603836229506914125671069007635329122345204824231102820952253084082301707595478791175449370423340968235400599536930331109106674400186622486161448574542654091622785335568649968909866158691472250795658370865446039525521073857412778714228547488112158801926168959457613006764626031351790065441843713494556487502399831090566324214316426205131034110221046079119645307455661030707903916933462483557599550716338416510324267810159071487605407216384574204835759740417878005239633240599946901543049644526427358701977262808324542401543794343669666515345015649074599455583789896984593351910070914799616309892827295293179990592964694813947077033561585736884472238034587991774865153321802237535417036035975154480067320207556880444344223257120270187053073251561613897077608526277772012358504466142664076573268246850094490390660331075423998657614739042112842519214783126896012355653819726085316989946723999318978112506108939830551376228693625256446904441185421075743550862911924230483892210879908715964928729157397765581027154929947623970764480739765168159272629441193174772606629481931663154488372406554861609872794530884480199435115506022894019439748875836246951931512908014593838897629604530406576326174460138838231720475645794314568773916917232657388316219530124317739219165412454418289257906583517994843630771719449709825727117017383675124291442747717441323337429184859752795463544708123768931315438468220603644420336311116727898014938001432624647789249827914844090692038905809070480792256747355333523390887645796897578927745772020212578947202248166908960809793971790555153024682754473252206404756787437092369524601708052031082172292268818829733665769558746084495268708240557329673787076477925247330896015092761891103993224621423157774220539456827163801911703798185237841430626289088883580071543768421464850095935772033054133016670008834404659919392158886575418745528277251994830380200219102653992188620249187370897041050557068863016213225980179169195076412823138384054344484097187158894761969044894187177531272098034106903388552088728763529627483629346966181717784009937726083822608341363798877321478937411390832302681134288924954834586621743775687472269098801348073440398089488826694883006027303978100189819508961247181612460378245822535673275683227471761482324390310402354004250123843752918713940574643055316180054785797257579157840001041607105046702902573806694116002108862176957953062374138094603269562717246655552623842534948581663843459515365503351954132350267383342650308646140713459718034924543119332074202652072744213233889204370785092645396656295019578726980750544706022136873364023505164619836050346666838846697478609540977649228935030469035933530153145179473200268932302750861611294894964665957450433774538243310198048189636553853971526536831753331220893327601017026736100012358980794016501346180466436657200744720537755803362519229956487746494708056989000551458844402003985847888817075998528903737933330347588080833403302452226927541573691919771251202434678417020857495006040244905447960788179048789751742175717903103982302295701767667884526445505268658131512839707020289756768583649866486465559525767874335087934401498738971748138234400894397572342863327796567658876765630247864307313517581477783268151729258570943644065924304790651952722475610724165041886630022668026158331160657052198835693951900161379236581732240988466424422192155792015897422728207942148266074257101188375265985591388335420492561379797493543005466310704076289447536649354917165604208953473966631769683272809471081118683703866773026808441407994752453053083790219556885433228509837542730532197874681310088197836461249464977628220578686457856113875377714277043023790594686324554986064477485518609774235837199693401634697423965537711662029144660923075890825231536847071656597769077273680764928370313654259693230175731749625673509829679067738007095193913206281328808357023645325492030266999611773366601160008413337140557182490991304775305362391705915951008237364462840708409280688831054401122110232423925580427018628425088575563849304636559976861366733642534437125205414402328619200984842295922940781184944992881430183306691517585343843092215021124910346539782215355057542679826638434077234073809429006854752314977980355901856121450827473585951567368762809516604591948455896401546378912568018731743167653510214724756317091612317098669974731548031004732453774709679663641801001312042995820542247486149680677737105224479596844560902622190162514653838742168033705807584766002760504861700615469520604800308679779841457443021045122880692785548509105790433448082107712585787973357179872776212781418038117178488289298496352987618081175149890208367817886242858449651152475497479038211853504681761974068025867866803796694996459484745853853976117358712261225738957246842094053887984177815689797964761924139043432258725913220973516504607253620272841477529347637593567895982225294699224446889683591627544620731573050796005268311955267601427948351767157026758794062148472715590989494201326404500068749409933526295336839144212580228801227567555429545694253945211616102301867241269411721906326528767367595107123066933892574816546698935199351638205634633730385202422965820858623580519635211478875739748829407242059633549591471918887397397291096282907306517311120128170001005893567271834494102428932538493852541839983870809660763614132452305458089531523401730124925312565491826584605970163455766729956630571822006305422961808489893213168830862366470452766923495121999963948169063512340303594320557817434255825390643116821493933123401347324134214460820376167479254414703804727162434797849936267508003682411356491425416302219405383507374250386801687346378089178312340731035730798165919801222209400930564005415521697003290064098146156898231233099231311066332662522677210099933049045271591057249169788504781974477538927356891055877255615677700669600361604336367946321423794960618915417893298347954000931289897296634027326834617127442243583026177841402215621579413083336068710789044269931762667304208489318854073142585716597272144747360594318240257326628275877987502838371430651872593847794586131258779321091974281478839486555303018000742182607766061202437132969738557069686726151157491393891640675928162782353466541649984095767405910362283449950416739329271006632950366113684192072791684460254791922259240542186071182479517656392488690875830868373639025900607118333945575189712857908451399952881320903511256416336241537378872770354415150552081422494469468258535924265792801107282806528535714485872678014046372593462027508250403677818954374616975715535458452379428937979053930918588643562110605058626163771926045947670340148565832677725143349268135638361186826020545790390038368026803209334525792976638534886627724388134229403420746233475873346037227247963486200113590691900250700492457901283999234827682859776860515046731519505254165508713663203858905643610412559025586817107563884068199915190398725247647456318438240344050683359408586324558255479095861217347362012092042340944088043643240620887745319321412437061715957604227259678649526513134588350266824293079378641446307330537837454796371432732657026822548066923459776023505484285011017517374609334998416869023199486294749961515897747578941144398153145471653567811052043959110141751615036927834035618451396489353734381270553003864826313910117199454925431716716271355582897374502829227846008097184103000594257221764261952518268979754065343585193011119590255030398937063959502536429436123963905133472111378397761546020055137496716931719204517720843825521213570737110811965242317858324920397278524900810812269558964440928546914026239689152277752700825160175686179679201877257161074363961916243661262887932630252209108587544896054987064878687095268304535791364779081212823310146262333414228965251390546418128148485128779202963518410369486362103411040802400915986635685670206665082055509426476383074155000659237212196996746640653965507196423538956849717390664611608221410290401373125288422389483604839520420353910226977073761781039597819559876363032595080922104794546356274739072314499797528294801184991471325899917433978319275679217078287169694557333483540917619807987330727991627187487384295509234365944971805568621430870673253605247248111082824682658466735058156431202033407920132390307840844553344718045167417707440823784445750438310951536794446064274139468176681174012965629884535055826395367283628067308741737156287173561187995125641049197620652441489797040666771673251617374678862963084738322198646713870508627941638145320004630745618560581763783243571933459887984484293659797810433564058312454638346835858605939331031732769168225317278750732716020851779224761473691760798978808759107058064148954894778983304530300191724223190468885439167690288195680085556268251883756104518978790725560862900822939747678262388714873052322246309231789508840630928691963897200993827281065830275283965479060816919800224072617643437606173131015047920208253038302332411075527703340469197762606698937854026124903121233714595465060083394390289245293508103025328619823425837568404334443975456304281407964072985568389707563287322676180265428710496233314061209193553825714875337841460355862158442813700357804088534734897152071473957764262296907371105153830477336141504055799652134711233447922176242174885722736981137813815962956700472226935049032842757637117118160063299500288759790188198896264403100594385469062086183125298338700450712130417703262883849955103903907285004090191447128479477254496077475885731913077081334404255610626855783953397777356835324195050820348015233823388885996002648834583831027347378026041757280588439771976623843941871209399323055175010707277320102490357754106388588470166111854538759209545167220352342392582745926115311859994526903046992791758961289779733229443177456692221385713359129803137376378389678286250869283208414128433152657681982364416290125999946991068561355351388015749848527475933138987122320929733070503642022577516440644628803730071134552186933917010301068749935383077868916696695812512525838381255816645581355222921606627464024234186068131860592258312195675693732901726733652534749903234469888498255806553879325112728099938038736889920545154523677758407879836300061990709953273037995541769442505999632689344749354222882431382828346092986279766128941656727238705853128418986534408701293958278394580980836660788401081442891675608282035312746822408976090909832953086460637506008286697070019064733313535836340094644023248550536251899732719135929510977044057218172861449617148617319485286403002643132074493794632480263079044326482371198043658691920947337269949151675804432450935538494781890898630122409032667364784764404809067296156517951557459704777348822992948679297616145133994681924351560008658318542449121233890831033380440853142691070808833223602453300502565533989719204393292007427459686817815907577404420026576799457012616330458238052588664491474086251521981162535617981348182419306407855226178865398142266042807904725432884796026448886015270944145852790447918404495638312959626541807601610238999023312195699265386216834957523395634105419343127132988367988573805644764303966373339959638918387522052623483731810427734399486309832152769387176993523697902645432748407904632961703592083528325368136990202867959009474340457160396833146989831685926215049357661288635393993167276117171454221618333856898020219022052396791074568617278295130468875727574812150195948523089906347284017813456829037037333493148611102585670980937117684735315120659525884440969636020173343878345050282707098830456257725420005925703646640179303270578885326027376507893495213462061514304699718740358334860974539122420199481029729178453164542926586349010024520526056952209178757585186639851232471353490988952948606665335921048173268946915365631362182385787800894754572298908198976753488957919277933620090287712509976460758741817657921080633853166009604102591111687320399533625777522276031352045601704468872896705566545421416107614887166288871457032845933971430589178608921746183500475428852976783150043237395335175511030663160298174489109612362717623346439971858290743981338250520690287458292049083778681368919001200130288025151605931054130978968417093368124802985766976736880007903806050237144424883339994553924424762109235284837709673609068583426970185524092276254498357674087179647009281424638175007286479571036859211462435141223785999436805594916870937520920313700750613198473803465258888163978839987695330308553245166010271171253174122175585298551918942686257212026397689286273889577977875876121788794862254118207744740624012285888083055294829846626009032148040445689581780337059395596334823535788350462562487069269113967543602134159072646136831917132538923711456433802020890048708467620457841630751722766364176214454397836485019763529088193776326374218460651155133312393130355442924514183040260039427752431195861853805886223205185084396507335576667703283331906710342757949935092847050942274171354550786698075882980464978157785209398211187458169409195335444763387214353704823227274684163864930518193001406117915699388239786015069481520798540185426731922309791134520267207648797189728258874790681298632278012256677207338829898905965158047150542227185699320884266638504781940879734524448161228721877237678817920755439039245785955416428071982869785349680705174862879474345159823958604140534255475203307754015114208169713027315673636763978431475162263241450843303422563599807070453030981310141149029008891332165097210763017930170015148450715733905195985584054730399384101870849323423862142318243786982920515591289792921141907414127380386289178753024685569545448197598900371585261403933249473371044744777158889514312564357347230880380498851405756990812378033455271608002405168309339486230506298162470792477126131701099884491546747437530734648346333883240249545327448796442602885652102900382012713843135128971630759893108771549164215646965353598134887475504907919382580006992528117696709451376695129237636379663065167109913372021637572018726847866051811234519828194936154012318770300368567190045658227541586606120034426608160865573160573482685135197931874226760557204025488753879395803492891683029727710287210649467002183062924551426014916653125793886799447627505999314321410176325128541201644771824109235256779957888917220209866984226073805564192851874813935873111121821306428166414499853840329758505664701261716864341879915635271552522529206762104796927243214706568957217301403645048839495526629025825592973918390596711023593414132802398470494316331386306682609429634541001829950261905877470771674576793672182625629345094934744117245924604534230802640160394678350191992483131921576692119985392738027386099139910687408547989867486727688190081591302139196447955873892877713781117193057583908751738717146632203310445932906007894099255448359312631850536953996402913870754576544181989135649439229816666231047882496179984607599012062204225733566485793256129080671902303225340140823559430869302817664285241163305081069397008364976746165727459274934642804886016350432754906442749507202526954389043880099839951900257276640229717164205501901696707774493792440497495651009518944084296702124353631340167487634952134863338823882556526852903727196666608497213725878050080403567581253211099512455633672265506097532448403632984969238964411562729320864949337635965462401468055870563353805659813958963152830023254790589088174282567039976445252738040177259604807163560401126339743130468539412381730037951518873380002481308621584103056144898239915222445385385857857096408106368335718908227322228937851298067984515072034218822261083623031066393841212469482349037382440593765152878885920263149385144034149133809495400718242699625607061577544758743299790436085752937850457209300610706985172911088863273506673760819962527128168779550920076176271035727142005474832629083188246527618600599491001602210821057730009078611556632756157889961324088370159981648753971957620374168389448404610545219183400941444849132350817327831296738495804378807588598916036367946538868741040074138386940070774336616264891718737472557665789953952238132198494282126857322326399273394504955861515656765790368307582321070151126733003602334013063669916419218325237558784462290682679986395328035717416048371241810111133176862509010295428932370234121989007258335204645428856556801073173558316157105539615373776800371911804734753383846482368347843587453458689412756433688502044294292135225919860006649944443668154427224351434436316828657414167159788536649553835184054570187411639024839824538509448036746576914258949775688009300318106640651682410954260466438090079048715621292228380246309443809270989467540118745944518162931192397123762396469353555226568607567208739380310957464895247928791825561503505311539480530156153217578342272918460230049490973311859705831405280843546267298793183417482645668822038518540487164109553733470287761452316445030122708422769052480763073353006604767026226546878477800394363823903034370321956488105505658843966290765398535008626852155486838839513291386251728394908444070394297532531787849184325526429853905411638225842881260493415197235322363754626896034802791691421994688661979223375526216126959890215622069129682904057894246611027492651242035595084215233521318300799693294803060346240918088617367731765351382514906673039781621953247650542790447344647750764131377785050921284854277376213127437163532645520682644909367130542643807008659639835681936331355745232261330661410730592614309591343777737949425702668508943597451856828090830428040829824516765259062708332818027645955303047949010729003313841055792901103401429416659815633668700205713509838102338528839292771973793555778971850801246750411297509582107764944252154122569946025888621416202662105738065946116127154670605801984706036785707618727313967660794638233342770736601758330498830159074994821356150581226903418096160945383613953402361824812306925871606634354819124764563854437690435305529195648072134726602530095034873049957520132433291859024671473163594227078275088277994203162463796395506679773225982210884345080968287551214062877569504638652456025335186596927247257765011033830555850950442695922538754793105324285796131603162088824580694915923818932975359372840254080653000850050936956556828867787522196793481057500130726174245794675699056387958661653536929248140730742358776496727633550464208412298063092827820345586480775441914729694043189813626500696098999404261177707999721110892909591888801458131867435211539801330115162152820604674448756547481051541676227406885873335905298546029803476548974081126948611479222480745871309537482452004481035048253514001202729799882113797074075424392190151245447940399229669032001519063199201866669816641840597912481140118024047383636487042078990573880616443270398332807605474937840665789003189201791618489180480772105522211068219327034704701344054724186117823616712409781916779262348318807036492238480616627967938456502394292938378779958849335756058728542938551783068513499808042953898993792171581174501117490726221212405250172035841002548456591756743128678554230076460791948278612954850613398367213251302123236088169012566354324369661523953661233632945195850074108463423959626073623912218197528369626073437544715296897904405253921592876171255946843006382076709320609218103056888066040735689200877333617077966496446423247473475320559598431531543211693394517289186412817683847235801092320014612317049125724415192538473246161809564789066969535757651226403754798923158443548758500682164388278653842007182208698457551171955891938349310061075969169649632046531343341804034025797623024621075472756939775021908633220243184828671151284693529513771241196699819780142994357072389686967381934401954893531462349709636851939035082659301717896946999772583425139505778260498261760056072324981816482821899495821603625275439804002565061125271460384215783199645897245916669261127514890534325801695543746863816092586812408519978559011745868582499687339011155792801698430525972340841928458160021152881433220383828714524057879798105936116435115222826961610718394944797963937541193406484577427048120268262343721997323141801507022911623828382829011576278874293631835316798243405870405400218166634605885140006056274145538995946700696789026419053447990764596300493592280048035410507117589272808328423121226964205362331935314028352856726163126136380323623491512789262655016784989694284380416865236910923896311507650976899331499455519203881866341975063977085143419994296243322917850822004245920473294882658024521792597790084379110326646573896837213491061389625115240511693315198851612372514955290850133228824329942186736211986763937655449943267509756431444652535157670572969960265317739227744529485916409179109966747874650368525597241256466567848614107829303924420479683092813625984167067403701462610444009217290661123788863136297969001648263866411232662409384621926401054649306275353818962848070610742895747526205787937370098236114537664803351351012820914736902382942347386426186832734948787572903921325252557379925710598377947967249486456806136878077350003295592425099260686595491232944500935485245756492652439190334986256347184341495107221161484529138092827869988377693155921380744196798499142767388071876050861146044008033549280337566244293858781899734816553430232008999300013286866993230445280101779771784218674608528809829580956859750353746321223714402916528440904119606343828257258912738906967916519696928877010272399658419913524378656567708274073300076188453962422023153829306021588607536723934220447629619619597559557089260354813815461724796600903924329058843095987166753490366044806812265100692279879777956548406576736055753827327074834148558610615523547839635624953378921055077737178066942765996676378776593926068190341807083663146354783052333653841006487899196926078926793570051998962329106907948297797837570541432081308656566443734011753161928961183425036741033269612804761533062171799026848314175911239697847007243277331121221627272131071881413978427843687177923136682458983314242009333643775422429994086067092567430995106020270336466805824656687360326195772385979472515618735951025522569814434354578082974765209378821682961658535131382882948307247352019771219301973486969378020955107206025893711860620525443018642487828644783810752233644435665695987810472933685134276537580616949256703491222875189545166290325393013553375243282801492394784683112608380612683544597690720632453801391631359624132258258573345247800240606808061240268088712410843523593251832612629027033471839612626081596950602260581484140869048577067723008762043286558825200467867613502699463207470673814402104450350089151614796884161952984295446089864664570497499797330900318971361060591298861575973053914954395105198329013836568341577473190372291555186394776198295037443412328855402177338008992501887734823632616529646630057741169105962655360627383656543728362943662108918900211057860421216259625472567018810819975391705980360732869441284149997998524528286300085350744993046064383356048878739058477897419699410577366860184330205174306338114906249252760458343746476738716119442327887937180330108799766915202617894604729993743657665394811622346361891023518007196608001050434665784787003201125609997927377399822831752891964578833739342812148497746932697543629371007343085917268715916799825912269509177824251403026370566885527965810234138114204741103274634862589755385026812210053073700169825028207808765055566567772746135517154327623017867628140423718247224502880547373447998200495691182257328826035081231277311270290558622416939464058283797144013427186569784415966710601687841366156866285307890223768369662413132415809960292601873921799849501326058568523063816438329385324048824563104484159012966764014739825093440796064561408501244615698374833919913234753981987219844282552647245950881223994439193685861507641093597315913036098428021924575333066873116769556979335740448743679606127688891411176377101321181154967154781022626267085712021038631867056226763139945516256915583137019345992232972979929204649306798363340516311658464267806387153183991993867915928967604547887808750942480486356674167451921420620560222468274305138123723512474210038087391335254936804547309351473244062574269149787345581426296234430589549018657634611502317937670390211667341276868362676333131042963508159931895721681332392928192287133184259518419482854959228364276210405327208252421102196934967544074663266477075027785369089416424339749165681478207666913297521039939627822970439501175888317001106457907878632466683790206862779438671849014458743950198739270509484814058805517142822889109237027670349630562039390217497507145183435637339592487615921480116066548436173258297734723306668157532981716205687607437010882797969843004015606353358604118942858782855803001579254669699156052569740547162051606031106787130580057413669923905320666375538928404935744229882074427142981597379474433246829879867351270668410572550868336664522861166646765285401720388422393761944657050523382640521724675176753183593940413698091034983802032338555686368641229002840510008694751523761606836997342909256073422562332796329412747607158476232610785501442366593215892436647796678989378487423038643940338595377573895907634884232599431787928508937489868152412541260088350286266351856927606369442070043287532638864253213018661277184826805099264449668580509794827791267945920239857823027498788571451886962168051647697034748065463968646603408125549190476650929945124826598559308647728929717390703016957583554160663513452874230970044733910599637573160256766595252440959791996817106022625189641297971499174678910689653375313860680215424251085608501379069815855179215024254915202865591948604145688134921145365824211519564069349411422575962300021361720114346238281664542565931810501614749742663577433356332456344378438582227118248080045671168737157209607815641847195086069764963470429397591976312128716443092952396179585693667601327762521132918206707949313695549535408150194257740510583024526845488198078957895574401518586354360456636835436878015880780334590322281550129905291585076386606926686332189099730046849452001880420533566344119112262005789214218428696377854530764834844268277652002149443892195836548542036880137423725185040563147516166329640398211770602495110267397166255896531579425935138892679757126216650443826229825042516495733670278271276829855612926844861351507302156630486504156487267179803553798363490668983270044771490925523105338334457456698609072117452986985716570852948714285407183434496801156572167178713273332967291309575120379975686264209712084942181997621171979093151730650766158290343435273011519397588267638126462811641810651156554759942102052441810774702385593185405577641452805785344369807329013221379271073820261633311224867626579500516551153851407833457274114059646040519958292954309782610384159703534748988435275169302178282086621321297790843514801682375584359555841894698052195716233212108673392869060841281791576847578020363627457112741248286299074237226975132121094815015775177040471866862698968206087508940332549801962582629917201271588228319862913762682916469506666179947923205686696897481695041049344419022922383124137022615938962808660774148678980181244038029202214643049935754380758747694513471360887406876582877101714279552042834071361599188674872784855644547913978073131423683807330489595538011606198849546817502657648280542510360146903772982472108177652389896590544744550888577267893246920620662183464339327324181017861110647388129333791693230594384888569809658586369585872830371682682543602489903133397062556108563880796922447801924355772599438438121325901893426952614338526900784340697648603852013947300253992856232503786014189005642547882009552031557967921251401704203445470084192611658177823103605134488594552174436950281383753550091170663221094505044620769849693520112616517942761896699248450163944298870725102564379685584252723220201895399254946912276375268281088121720245984718260953810733996955233322959255620475354082429447474479144856100473090292351248406162529620371159407044808548687573020827543038848359912137868880663831546916371404982580054155108382618292876928912253210321256924989044346410943260058123466303104027133649855042948134109846585234610151327447201229625080254457600860486773845352115083793891420331386995478611743880670430975929909917563750461672167311022343098033692626770455599892534425008146778403847740238795418257369532283277460229529962287924035020244068965570998201970725361113279645580907068604125493413435234173187954126409144383606501514387002180999600627294607282542196636498596357779571103411500858125025555737350449045251759672577232680036400127228429110433002641312183775460785521696256470259919746955266892936427443072956565765892854243788124642742787982897208620257180567124777867592175956133247722671389985138939192813301238759557179693429656395959093347494684932864140078421249454598056577502658482465338672070369224018359560463878640559642323784760660858658849465054614213297014452130025895064702665169941244084011857179558032156445610853671335594292532461284996461469367113975154965488737748636695535160835764488234585977827879012986456848036346871884594763860763781953063200120699020828886916558073004762593121953238390909410455084808645956878955716479700794704686265659873484307936228486338778020892292016025906256463550319660483375638461374227681587131612803810546155239579448380067357757630016302436307335174642120451639916150053125790863060236018087490046707911250841568921744682058611542241205944883567592939371872195698045604755345340332558083713141369466723901924099133336245692771306083178168954517639241249742890584376135395269043411216958928129815140108256674261262670636557231936588829636335095584867951786858504188251672069111800093559643167756519947774532802741511087632788219458971741610783276272526749278567719757610321925074207983963259550998353139328003794193975952643653382245339495374839699948014786906495557722835266323589167958940987447058012100813031951646339403921954099825696395945021429546735679679580627989358793351231110536880173861245183889894807144501082013416297492640195107719868764966801884798018303369807645416730927975734447668791123905039192475341427290555977077624808902408203290439384895738586347306545891765035978048196934867106601163539999118918530815300435921761810559286019973415120401916983414673136880591376255399987823588073250022950091621101730506606209104491581757100440204087906459169295381895393622942557954709654621720105011294230155651761193218377183401842212041103868171691740765680458654479363190639708581111250683404297209387344876368066906776428021129205218057774149578891828595176912049766804187590213512372964111073926328772016717084130893119371999550259357206101141661083470688719678512716832195962477683572816969608326860578017058681470517274591473480910261370673826232142264547316640245376713455470758647911032054523297366827708419662289562988378039309336109840354200721114328626792194784287485693554425946429038021678758257007169487465743686012303328874620770232340810959262715420279697803344022879457220962187605205240075038713091042034930400166527091235693454781830559475956329833555425547387931489245505984755855856589106506931455294597143053096960073867357861431623597689846497792605844556124432720281933573722504895873629579106904241077259696435703958670386492294914335913541898961360937253185284713263910992997245224975340715356742538223412694718153993789938281552572998163968890188551930108253107651767929807470361860899806258592925071541559304122247195733822181655730559710213370346378327461471845864507038053093370951060012546093147612154860247974270916290194197133025603183522486386831745274082899196849324810246522327549419941057753466621267764023622295141491202144270310303187912990053109655838073770783515026798711979965821507532261653120116721952079596797510220792098958067230678700615238279009872867148552469480896726792531211839974959624612399856154687934157705782794172909845149269195988182913053703188399718022748350164977415105929083406561285639200560580609956419756227767214810740181470093164199681552721682494162034981801674494712455598203410310659240334834633846365075665178708098009426794078070921392976563987994571838394048315465004398562910288715547776494835605695372146188534864622757871811419444783897939191310197125977868366671790186388501663739166533654292577073175925562012317529283872971558130137758896402427249511934339933679847915297173848937712703844792170464082926139255292574470696129824554031237794074265410109542351239878342570807554038879849817955506502792415707866322284977943926601233945726800680362769676953209055742864092239363628402609709584122293762998490491713150586300923038786161157234040366478390387414353843888320682146603209335310706725118633749963265011907732958561570799206597902111363946075350113040165151988408029181754804000106926510954830171915809868296141810978909654750849192215123353412145352338501838684889966143563927414593332918373464857933125601864961186864961845919715885212233084757795252693615826286153873395945684767213180191624070166259988619905941190777203055533112811470409713480901228217705975294520219448062181932529221365897586433139919636298757677284627661909168286795572010085092880678147201290568401160215342966401540552746525252587813239442246086810653608302119107281616968506242010814152439713845511046384640509775507728570476857571898910884254734431510098271342327103740149407667815854097079405169706537022540886162805597788433271492174406015209953488232083116230626808912918443324012575159193072791731505507313563829118281847087568632048335498404333755708158938312675488852303662909243686656136278054630449364917931760023426206224899781040910066037292487145450637066532900409719651827762615930534241965853364198013691788272113428726767672619272614277791813682952684607879657503996863132300463927230326937709212518598662316014896854690728119941919352445640878570438689461585400237634386953222332258900061059262530695149917925474048847139018826424973412376689646122416896914662749482978423765230844696500363907988680451414055511143121021861528299307249623029316886075074746156138126623875759306790068856007191587992695441214410221694634056923798274925709624868806934646155410981202180541935041239110066017213432339282652298733761803467112815726770472272609192606667988415221348469974772450862905098022957986732521662932184484537682436582273014190986634803608863553275754771368416084164042274911021505166532399371752044828476177101870239164192421927397228916285171180044426814927019664874063699098004341857641334490158806028535766100730898768464810751759473921051358139487952245668958406289657850926630936549351759357898757625896423323184145932923912740338602258737829275624896653661420344596794853378618376642396437282936376544244935805530719813858834133094082458251027786995657557489467132236754726870481480529517867787610784156933361338865819549567940503592015915204378533862579396589904005360795936172701515683740200275661565646525782091600908312887459456512449259629233878576206509624920023612174400602771833573140185804847147463707447108694235576394147575680396167643854081645937837904765355161940922893769908204316637529660688414713738545090685588148769249691156448662127185423558971275552607561953767241991042182897998706642452781127959896432114230353872182213140528724479570919532301921998093095262212942543845391467094336125902419159106900842100371016796283853480451527061533309666107917600937289304187252725565717262849144708544744641372367495324553043476275726769033562886058461443218781466886522055988659606673728280753222138508534575109008241495085260209590770311258726046372231864348353780469979450409414360567279430388857359210821955414363336458707474475457281387814386764772608618611360332726579270410788600317085982308285393708537530554461061490663275119069318544234423546795528859149745060347603351920633583120418147693494057131370224603374501710025032933538172390017514396344336580698853625025867502860035643620573452689541259706136748507742356143153557833281194955588347663399191058480338495653216664168087940130385399344277394207743183639626667140303779832137518080736755454831980776403458126040359838774615980874011155538093478586343308850416817356045283940221582388501749778927161972882737522077701964368959267388798639072081141172125178564409747713625634566123270623198864064425139098957210703437421430073639638939282248770675077226264128587300536235559215188870701232517407911754532008137895748074124967390623778820649391562749272798466769012572545070710591504618737191886137429922971288390261086959519310845218242303450312544681275908537409760303835738246538057528560665390667245650810488995932002988011833710851924917150536798102875165491626272961507026779195409000771171254754224734758477465719667742335421624511196280799006920372873612108200309630567282531388917587535506750431945666231952213995246901068226454074553817649037659960288289586593748193013431539838733434368462084160851321794409451784798902358434769266322382796260595286297049045682114687023445144357350198891627736660861618565781403839994464868469644354563969425803341662306717325676469285680989893895799599418486724466019286297339748286389048728027452670811346498344978799786187830825997883685905639170024587844715671951368345118738260951713171258373789203746297965605421872289877047889306399978401898658580205521041921354872244109388118866899318027239015959047459670212634477607463614870375133652846998082308590660236823376703078641565028712078593899268708207669115394364017635564008811918635759763462607101717227285393164357139445133965702304494976743648651810086655915377913674820437734375388362154917501094733439347896824071804360894295455230552667587180471677248138448980022978245811109949669234372741837796424326740607055394276290956149964586510934767299030297763133039821420417383558897243260139435537716378560365910062467028832159217139250054425206705017253139188334792283826726499228233878933057126998690818613700268181742208966959680621304780128901569126384631991401584153693785497055766798193727970537831591437780985289448758588519945628097199063883397151625659428720410188044516282057253332989716877445172846869026245240146628257167495012515625695657377338831454371870253125881110477350317823254271672131984450003243916267791946266571190616871467014846801156558374758956234229882800708388467467090447641773463047788992789101046459640616859506232648984765041662644317398706503744065035515890140001196672410589280254409249407842077184360632854198943020742793823354498002248867501566841840560142191902606108585322306913106213480550956146722104882263880661029059676710924214326618624395215142397806520636604422777385179381747452482333917791783208491980540153257684420190263503691985794812093483033402286649062979347121801145580545262941304083402989240953521470878151078518691561346839966752091776047180632873497521886464276672850950166161890162468146025191454821483460770076518258310106310430938907117792175160716898493525247547297516019276940856579766550215529595669281146545197081498243350877744325546866566745583824247365446409291480547613665098736733079908742599023487005901764618726100968813710259089230552906623622092524911228336545958894271300139826913850016115076361212432728166204567758916270741300065621872651775169306181498996859946302389483931150865841615846893099223773698205933374024314444829295560866863255327056187628382875143199034396813205114415928010237816818248346488761385221315519001036687693158396467590556639598130302777847199931940380750348620371779429743668044143751408750561299341894481801572853027105614907617202815981964710725001961051402418892879299495577026606329293293392459317632689062958368377795571086771504773790840473865104344103771064145505572723447545038560397420844351405123550552668230495554864457905422528526064336977706345552241888019591260963542642769293173397767299362523504560397569964957078085222271364491474687519219291459589213794677389615334474428563129072762844103695865341366224873023400256062762791270146426693738387614538377343346611694600328205076047154115988954174018700514569369659005186419468178403499731779379981516318344587056797115606179469085033022930865582269346938878110261694627851859871208191821240552681175114431624754370782859275101067968690038143646578291445440556597222621550030019168283296050213633234536622208966901103660833182814550582847842110238511545574437205774694424582112062730041551754447858683878409513593499278153513614269507923902966675503196066321250803291613158090942255168172696582304479427556725270253149205309586024498898713120661519159884849292559090719989884297173397210608391649802634286284703735272442379645922963123820777985934162651416561960451141350835509182205029268527777341643517229959992655056102980954827514333297727123020807670758624161625512246640717365886996265445048333120457631674426796563424844742378818062322372700991210351257659236698657432464300457126446890283843095589449095144592723223213976797517928042193245860010104984172152228318709134029932752122036301831510240546947285475949365321797720710889319737822517856631255261688757353088728624931142977675129096763253437733397612988848968428991625312614301932339771073573832815335855390411740193175913684694155036799789191772737685879952258972118617361162359966679659108815270102409540029645869232115617179821349728493896958537854680037030733448957728400460140446705856205395402511200655618049589881237837853135233379902604561913399286381225239187879204676519704180978942417211396370884167477886738695498612405751937329976359151175804317963987440304124775481551254144973511491235290661350838002184671014981301921478693966656984903558153917986460615270101180563550790258167417391107387326410283026312680140705357172276639457696063212701265001807046480969106067008570564447397833272793528714821394034855515234737161771186002841581185131172646029842352594568829867357338512245028206687394458923348355531720059278222638049070911860571079332477357310725108032600311849830576481283522854584473389854425438737528594785713153135981552741161100969511305664746960110307014886770021286422783962090956277709175535201007582449174309904961901011229786649714383158069301470298891864742644396041536863829136976939139266191580730252894674196828395911111043303752331808392745061383340206777797921907337756418631516528999104090592874276222992842867493482246675730769022203466176214926035100950084371190768364995221853645718325669825127709653567049168806449188282925841778721861306060024715865292694832429386641203488404982728889799530256009521432204496606018833719815126054207872811422709216225934766128570987507810346281730931915012224781028386707731724948094359412694766624206686907807452887713550646247219819480830661119918911591352420489868740614877230997179098428496349578811056810759616504199151104141029350595465365084610180188448278469871438246741791501229959817666422398738375160220378047742204554200753160933099858986095856206470338172224467556746141264137721659277874907794288394343845711503662733116701890611520089465717124608285245244914447995603550242307542285342425740271357632476671242385717513440095568865155309303928100094497169691898174395621823664535487479853902866374920347298026008519013658440353012368461306267914158639217683014260779684256774652453648581255247865117997639605918445537197578810139393804110660065731066941331040746421686804628933365377751040020456019643225072907752049518639677434647254000084111653404332958570298924238442782849433140961944053848036902533623210559006050848147185571823293953701805568692163355393803478160897449356927995879221842041815642371811292021360181669664410845467860922689279156548540012458108149582931806000347584164368272028134276634634466847861659177303900584309982375669970722225077034955385586416241641674104516753537450637531488680332778536018183644176609944734336558195403727505746899372454605330587784476680729781477331374481062740270098346972676850572558266841548153098876003914565555625655504347136379537733398117129883714664034387423443321743863655980958551590609188517045253821438222528663499836983873350478959668283583267421354767374353776507821682995328798203786721809315070479837310106556324296722672252840375206239161784137887178394297905205093284201872785844335576261311621941723308922194045339569390729725544572553282121338789695206771981616835823509250161875536618987807016853789306677344322302488305899644131824876483008778409078214225642609729233746330186596137829731018354147018838455935629945158454434998590948534733839849802060063580268831420216414708885363405918282055112258658849262192139051411426749332937084576836597644802351158021240619674993815087103294462248270513080175085435152202029899935226155979679029908279792738466315972631198327330687127016336728128123483908330999490326793893236596601238287410159085202940275928460167534967409568110005510969323590623669319123741277658006887530551982565152753585950780116137587846923541919572831563376764450274114894953879692112960154021751051430836212606922895793939095478199334137492386336776204702262292798591392499485232262686741513500977022624649838250561977450000628624812762490388998786396592050028967321281290160645744850467070048920087136836744045007657037946120244663166289961057951611903731488467667682878247928100884041749856716439602675205820098295967939064807965869765675731053732061118967031406830381056193365326288089578518166150357352703433353664861478043830342372896164650937731691586632948771248615213650441290297145711766897576382043255745686862176374240568960089820016290914709115846463303632391791461947465551615532174007837695486900799757144818722050841339176346098770451069592595838948171052317114508853348673729815782493581850438795684194577737762558070771996255930269675272125163726123874231788079390303360293270867882836936098150391562999580673807507413579620448960064178298825462803318202809001492720933962728149844083612775889742576423755865332347058142688875569443270138047384220172351733246171005423166850640863626534752119979310283076592021456611949166484914137573354740851103140371390742467794094091940484612963477047056393492312177601490611817884851801459927465720266005792501785251682862123983558427251940346437234864150279470185857723043517027321538255395627541775437940086540738922180691621355746074362729567592358013798483378189116612668841805210017296859646249402350218858236441109104253773165822697754479437806729656830436784522238884333600723063572169080578803621923858540000094150279479868144118807799272125302923190950979144505784645032328344466920637658585130117976209177240213387952679397587611357412670585838212701320395341838785907174137672905793970785943896485908660918587718989210694069226204343011404507904330129903440385978211787821498690713655738160111331740463950322207234056443852699174055522054894471205979670691652742393267888435197871434104541980874016979454617154921773325919688776283824312973717421566939354988202462960108889758516159978536748700202408846538504106473900824414454462471815297552828074488375637594476307518763950646606039533486282450316846098135285726047984708925199397470518804666895019316157064975029679985253207290849947147365122994167356557439673241120686779471821122342379213340091709708416843556944399836883377112246754111844386271997609566792293648734674817425588628277804695559882742730390264443189344713000724468912315269893800946493738246470680156909496252383227550792734336311660907745667328063892694922674962529457325848572009142763537704803625143134062279241536606301011504901694321708703477763599714619325788794436157683336596261315697799513209322665437097898515407842114782429584882631008401583647415553179849357510451062664176369480300334782952327918258724655302315780090742879172177569377035137797556955637559602729822348371809333741847070202735326366271742492734549933799370823418639604470655289336266961409265989376812632468621644776367628539930472754950692927699329448543377417918172002177700239199821894580037123335735628523309082631295732406879012537251998675079090647487017574733084458433901602600250570826490537090754383348472713915051574698510321463247144406033371792358511161939724184937760604428230057146545474908119664179837936892151321059349353096671142355453201804891724158000891109744324595734706863986625014581375539484732556205830226298557686638471702902603138686518569697382205342329718744034641916970372785793546685598862492118662096470098163880063112607040864047474479260520398699870395878092229680586559110821829785455551317557799703796966543977055006946487464972797380213015329581103181119559170770963816221132885898866920780133280034731239971707975307541341002813395793560584292954670284046649637503646891855506503239247001407518156657960914364610920212171818773130425752310851144185196546683387391135317373215467303063330872942688850589659727911357468918349630602542986370119489208835027258428304801472942211979582831836771206472380718327226454003948152400987764919111879797616327708842754768774352416866023533174796315561690313355194911652802561394539780390388150429210998967199345776952828349264035457295818065789224445129508207601903865602566246546907380540993984953831230639339890796912517930145610979237699517570466189576433212577720197570513828077144940898169866946105958488124310619180673810572318027790753537836751872972584399283612530876075546292316709346082513522515918456969289689055390757337574335116767313735621071209386902827155921155113466603029078555617848835095818441075890005791337860429805674013394066915870807452519082999822762747689898108051446569550383317989495460907659401763588573414842731458136119646299075722471528417008232275199420626386379656633637136643365381608660505572663382668935059124615235928781207618973841182916913848346594102104910721416578628292143338430559097889669238699229829915993212340860819602031573776121237703035685173455555062668367076811483300344968297210940751891702515109045058109736413182808472232588332993471747523523069559678194401183236309837181917567189764777731688508532745259821119199119729967398128719800322466286011603940506225040735176615598958966564967333917754860300087080332262339782857797915667844313460235202532772890561306909605056462815277163333301759376079166159618125182047262089756344336583127553167710074178722092546387065578238906614359310147350060095631349290841418865310140210817054276392744875410486184385379729197484984844507365654506247040523901730023228407889294759736640877471715728098568993334131634506396479410470805204559609201368886419530035448109233552788363468393226491975959931651712593445710621711049072655272713113729234881767737388351027765845802573933301625719330048445236226943783701670675785078208962855837127240343551404649896446453836372665108386933228851625210256227148755041992193772965153611389841322351526287286761456945445015801426070963455793174926734077138090358796317453700432417861328807788974438365649694437448549541405575405505152147268308682484577290654864660523494115899193614438954144332926069502077172776281138760196089339673420188652238782777879315558258625195495818927973707934809945567100268695551632750581617217088177869855929906478893100692368618348158279072931427760697042233878988016288560291886705081819421608946468644223468700977143939052250690678482577519849882029140202387081730976829508628876494707554938361845065100180866356323807802695819113401569610062085622350592498437241259072519894934347580737496106366261144542374731514395581663318275338256227458916896451783652622568214527737239735178991020916159288495286835104131725011167840255854318907645634749056116578910719128504133229542505404642364344215625900795435349244357905095840259584198470578126079451762711352490319578063749554680945244180041755775847267038154898034231274015885449983771541743322067510716728180449122811752488643823991915503100230837781458666345506395419094252556762389384546244527959032255206703400904710387112403003515630144742470612416986365981075931106058633608072835706708677138509249947504014117309333266955707724554227301570218644241815596436541053356106230268881301070899096535160166035690496172187065338789099726941024842798007411420116590215849365931101394698102895697097587800603601219089831613079364412966357327163965801369099674908190222960936750026131206008440923460980601898173634416825944199105439800003274041960960023618606427132054389547332606875729956053849181849275301045246643489899016646811008854480627884935646113571733875151032216595061353504328107815748200991237341375729338364251123131384198286653420022442784857530882443831192786713976123066236564862886311941835771398313864119081554337378772799366827939478188370659934696024495862867466880743996218671472106218105544706639808985082296121920507225068781020878207111496953378643961145990706098182347935198081036244097953199522834908078406388904736185085775362568150135577484353779607003024654652304763648855545716180608941224874460335710204822017240723044419491608122748267641385928976508349225829272543268757981257642729883774846466039015374330521156701185996724202877158958093994840049390475637578937682059626576729758170292774777369499562754800353592395036154192053357767389453763723780586830383035027538856764039261908201674596255120287492246455276948001163246081512418979435735484415742680465598062827306919526773740696595883833698063146763437427844308906335906917985857054502138173685552449571712909135619074859052961756323666072660293199368616793571400761407747741753810015145598807148009903918311593210910828536532536251629521353415068324830931467054794231398316423761919914940626069910231716837918644493251110703255694779984518378658633992278748993537296952439570626331714505791613603295355719363742324087918305054354625213741881932959071791059023385844450168469444543338444013851424846512979066703289105369460489906127149820228119707434592682928187071927904338936504343726789915754742361818692208458967286047158486946553425219478165782782099207583847915999095379698547840683824686104673446845355475398085537181578586530406970898569136381874458873043250403105707104981667642416737257546640117344973431319037755295868446878026555390116682325996568990607196070980816438781545856909263080733604362765418641674237758755687078181269461774441148832277392196938169604674451762393579207089881858108025093495244555710208865144760469985662801009854337771608332188793956588217385947080265613379809206697903123804259827905192348653694109963292598870828005282962081860814545915412916255601587512691657418031475780112673317880183384484039922674968303075442042552808307210096474138610268693683960576215056676336213654005034906212456258289254244354136805057409721517864238022625612072884992117346035557404904879202083847415330915056970952086078904398576038193138417318766667236470041101403811513232104527937767264390403073401833558016273140956049891298534964225013320264510606276770738149631611082989191397183989609577393601662022261773132912407914603248523523896126406573356723427944540140153863933999758802443001527399417748842890297587686079081485446151386512329532466933494742050113341015617858583628785415498198715525537830245476579255428552708913981992123606263258058087366431656581113404923665623171946326191874285692748152478443963838742759132033483458416237309615364164319880525373609126305410606933463543293851344954768359418157069240669914947784801859078554780077753570695857068067184523631234324856350286271978813043984008354005470070584411789905621561835938835351346390850429277521335948394416978385941208221026209353216674714759923479013719297867158838827069371965101543135481782191409353235180762542879079368207924729810675391604094325609455325097572432099772578443833351842256245596405177553336573460778517039875474610889915406508628996343738738399760687325486411617927866087547243859114482936183925109154709620706505462796287210423953674924166881398830877182909006741864902655860113157934247809692538783426439105889544875013134458781654605184179087037282380963662592279571070877504273010273154542977187168328584820488629979676232601711752523234029406685601780788297015419289698364292823389250066089857470506640034709936643294080344126394885725155770218644399592138329613013301990187974273425998568413766195586130558426504857974584167822502830374539364723460694959195596639999029721558620411887565796454054724743066546526740180364368017032390098682541123355778822555418698503776250327201946598557346137086577286733107582308576526717351203677912005842110746439194707335784097010513124672726850973462474339304599909674881954516271452205057678894852739172327514329192407774035433965710179676813810117199791781541409215316207587105490344397352643869682656457265591025854129637152193597645501019895516219261509610794973177192575146716981374973950805482945449449397219216835583482232081352765297610398611823719085805750511208750496753576526535670479974259033886848822304367644582451672889019547268583973605105589286101961055749696937817428983115295005637294440862443861610805527500589814281976696057407582218726501851137039190985573941122763771931482441110445356212300055106451291975351680614822884921569407651163861182497434172962720577089675426738884627905817098662303065558908431492036137298855027043826736114486971192570210227235295782371257417798804186880203810738528125004032217591262273445145625918176420267004405076181099369502858454710557579596977900240635599698210265591659858936674221467853396958902974427688955403444942078275838292646461274710734094393132674192867331025815696085240465927743463007867044761635933472341915890641251554800744706958646646538345685049401602871415491517657077816999761720838466368613988026751152054574290166979640174478880926875572638416653429734191334671100854258339815559640057406617496373125951626990441549918872562337985148937194539084979992574951065620228081369929901792019147057023226196305990038771306231475725461723177373087767631469350323831467362120398826901283628134439784009546971543079195545470971650654679191114097528430877945960629854414211374230389898009904482039129289381748696342625450700169327104328474090087416686234992682513690761277672149946457339305689067755052063034333897713033002758738816980035237443536457925193168723762245385987878620896206451120611063074196110344600299229538826372790211127520305045373407516938516544765043188698031457283081960119681231747757994423796032565679747252324865978838385149748217105849847980784716840142275570535575912455195385346827018340765736410680529893079725837194282026589036414744206226738512720412495911710091922311508759895189038102568828908283073308780176446743048671070706199086915520442051357421061639462291449778224935005162966138589429710255438720839546316645900211457043216316695101116023889222304912742531422018951415678386197754500620475061365519063463514408918836976723301292316608327398983243810709990009357796102805682216826662109351277245397500817756166755194799032199495573171273474709947056894374559761104974023471286995393114135492687997295396538804326627120278560450635585184471400416284286082836850976132296473567508488133362084572486191231320810040129716138879228949072892661741677901280056553185551497698740392441300068662541457949446963502237895722011340344661746986517903766330904704237061493723653411530122643688832142629113656185207175570217105688286829265631607770520758974484566496366565967253054176044065755646571938950801730498928488356586119664536803640148694080646623380585171004276417122013758803678799054949388936199582660408454796485425709318163977811876439537525809374030075367262786425774216805270311698640769090098331257785985356390335870207128943082908941671191046054987571382701294003652280626818928346028328693881669559011863102940597133957011578949236111903985403922022806833679899927418938705566558511528869220107707567221277180154949786696129821931717736438201127453029015278544721373106308858581703583019707423475754972851237574347851168054581922514132005478067302050247675665166634617571417263146500890017843228880666281075570812943481326802032920530779129221533595104592968518610244276341660051818105421152411443519449602472022052112604146595194446968453269053457328434965830949112014808472402254343206336410968383259931350876941784214586634508488781734353198028881484510269835669918977644848131608719544474121510744596810716452832435096335228659464647594325332806279641821097752914363116198649406084344648700627723016899636363433350185330291362903953909270778183191988036497184443719711134983131110476154899165587152862296342323768535269686284930206687426058710364761929807426948409280789475012986971302733320798033925474784411375481220102463665650715150440760426040695157086398937860717343928488351948075110163025812029344412001812484721629067761004488309686272874394460352157087629607108734446737089942733136094253380649973353450465970737049846234000724312535269747936461939537103900358163621743474982395506698797221736811939731900815201774978479405119691275670650087961732521833714862168767826839200070818472443672364406528702465032485020173645449230082648414165797616855026813584136678562560102918273882613249877607090966516416898307527175855979471925739060292036843618289246641948908393838889114234079329712110076196228689282395467966314816979798078656660334724447532389088221067164038746478211389880408874103116671610939077470539208769990981905499809497816269294577421662777819103009584822818342823682739123062320989957608398069150909239174133311343242680000467763917489983727893021892862216534953349531765286733985967892993873735146491740202145718086869748030611276651251685868406748998704751550417146172190246283679326274958527344174243856942478367449082692171462913484051363359901760159149883492110367267368697058710822915049291185234287724215750839305916611380793987202692669291999911417459570808743932321170882762124371712008368701318118332244693050632389839849780048946417190310555703564769223889369271790194745571174175825911721937041023774759759305241983890934779691017741255845913882935492898218922084603241045518738042868516296705392366366384034320355171600074154770843921930014104297636398480021360683250908515415293130713121389539692941373162163554385467674653801203082924035358771978197606205727810495334177853276640099990920377954894365635555403339247943684241446545897772973734048937892837103340473790151274110101635776217501455559089312948246264541912480471526879568021949373729702493054724695627405531602325445203741240395279297770362196699715712653497442766761339888358435732397138462242332232908166037902633231145751663297075731281917919740341319485011215802893320216390657606421528209036074784398604221224095601264232142130159067211880049490299391712403286864391720401874207469223267341450841141229710188157240191217394338767071174869844288879969807756826214100909438611358278147708921983658033633257875085679529534936807884635132809326800617065218411038362480315906781594978514544139557395310086090127529958551383524721723724500885799373893824427351721789242323260742005912449932073307891786699457042793003310082847496626971048914066747771130024155811760212336217522244907483791278014047190315333281347400605962551020131987267636266403317977936614742258779117055696545394398193600330059392075262181402538359210103831663620391826974357741271870533893336449881177029014991961904485085499726694691808593376571294841192788352687237628077447501527239458450357330693913717722180713663848204989815138666443794229265877762407897066832712869960220514002114658051433926208396319609678585214344190785046964464336781565449636169485478087222566640584343847223208985447705427293338096856839749366726613386100000596146461955788716931603482024206806299986430815862558924412033758541696295383587526330587767525179524917573724317509148876712930851834433243797161170213454253971733563990541650957507948023898339295872154511069908225249186056250413753690096931231044933762977383673311234207375881729877242375177335043092753899051299035040160275969695598004993855886751630650708324849659241809896763241648604644901216131029020519386864475838799155753058025331375774744280872998156296337761121442090465108571631595318897923894919527626824876846130411624892576043395186464575343979025219657139059893091866633323057200603662924836112071915049862286203495294579161762303406834300510631995576623557390194393098540230968662503734807578233500823166458170715424895372414832037349106275340306269935018634161196907721844123147175375230789060298340678271588388540543807305949791750566620973656775745874011254093453003722109827004956757664547569932640820954791018752729056430201648851939481669614275773045637528094488656833993037505091843828919492664068008850432997828406369777959825802747545047330630089637069377558160480449547725100118673499257707727921006714014304597638625794579653367338743641380924694191485587158978714813039106777877429331578421964242533466774607632774159883745242662502389768990077133834721419622451940535573242240599652212807297878389902267102914745092978394617783478903111150082760998815743795669116484402190329858474740407458375056954113876319011691584296714077811268943045013815043960178087784637243914377007384715358419682079283961267815067677339143640265787245545083537356492364881529029338083585221361548661757816558328406740724250885058745100496122864495056637014158095013649208731848594187400453708678813494153851522390952476800909050255230170081237259660370653878110650955941672595267616576344468652657183006177749767009307835008793445676304432751021562380489852587565668741334354277038544285028791581824304585749705855268738478599863095672420679878808961109264740972553816503911501635082163539625036869590876435802425618143094193892100407029393674870525707789741859660355766179439605578439175988771463492614717691266313941226351565561049988150374155875602048585544216651864559363320374679340672797347588209536865408322985608642364582803228035441723167371538340816364115557374040499591413627179344455753435213845537367576740858785459719801419138218112910794911388276248213186485909357351000075030690700131603539780244036677385933966771943404058878427422451733746773525789126818333371499837055847515943149370160122919408811913272489163027642648905434384064005138691488708105252707996681331229305241632860258200123919771817366451783421178246825429836136850589348853133028544388899909713742643126324531338975031029564088455241169501144118869439648937241403202437829976916335113071260144261786524303668398021578922635886207661244260655851888049049760191411686257344332824839688586283774194785738007686311912479880437096126532967662803214816466158386808016232489141490152333019748389832991702730192415727968183260202800544290375663698508789988988794540382468571881495483386294547074190510921628584020366762957517673963052965510606419653946852655179877933290656582555010846961977822087963515790821651583946878021262522832834857251858264595399918865882807900612618358708072516587090110674106579976412051192580402036551628588745581606752157587358329443403899652420219505410224763266901793121112170528476775079299895707260802697016210765682255710283346836829953881192645325499898993109452045802537068467008924369575656495574369189696360870351030577654792662107674808575864281176911168585794841807834938368756377651091575123024396617230767945445740383642035970581020101082717446142074888355725509895153998631004519314025607766431969938963730150458818294629662375228618084831084368831438207064116128776916733407834922215348458176981735823545273162639034453538348813943848493510487620964315579665473861215402780968743974198259676986158175288846088156007495350163570451355363724822901813541576172419250689414172182793115777965767820745881292612723651577749199827797644368929948126000699926762938955221553527902796409961633752481232324486494260118243170992664945174799037296828081944111987720257866293281025130786043208727140497771287541879392617094393595873690337452204618237720584159656512599773139211503353521322514978797192004407472641699874637307706380094927379856851902128115414555720589637843597273608354126692676336058219562263236545564856508218945581953067423533539064453042309188953796617691733411745663342720355541347564234119709276420887474367282001330767813537787306550758254736462745538274320449246363600484494842903436036207999002318891494420191836973139791450730415033229125747485243288219595919817863498076882691306823874347519996417819820487830894394030608988970510742435915930744274704490972928356513224404351212505160054472309793816035391346443117166686462703507482387812820528158532458827913873581525277929063313122859513498017754770659665248921409096151912961532853068326804828250914630471990380401132635888231983144918943401877290505447205682393922726683153768782788767482722524061626954620404954705363654081335019043595122046683425214815106759083517350094710091616346767303056523796300182277747447649631496988986947762579793957924487869969398275665032569227994692730463601144890620626533343228624108407816692204865144981222715312747940376662195111967657549203699973213118052071630898844673452956867208120261986097150797957965526343562301238325592762153377224116963010318352214727186454017626370446466053215011570385759441908730149085982346885094068582172064617697010470360364683832108783805935274102264143663551645126946544066056845216643725355854093150831648489152583243478769353891900189442937950952140041985779465475533079727089143447726590165036709768267636623246941496399800367399392868735961017237575557915662683638797913674623880382001001354818927986393550137816624193083454320580181738271869210286764777031412502359133366050414488131559148980354018009899528914942285440680276094656581418549608293842071753282121583458227883202365544604355965159703451506266627931555950644819579269907704889170726741852475832585177614993432042269536993304558033110095724164260718043472262376444362252142706805980083357847928003133123901721269833691729590124699228093954457003437665041802937921366035040589986299476531468114534683350676834576731061200830797326793145263890054949616975541967027979747227029147081992528472514353061770330522400853166685539082236987078047430089095989591989258070476052010595260098377012634672540551416410262858839564770249805743507960190533712135016616984029240423038757878464786835099607734305826156422177493771778415430056209610652910933592698345652047517489468281847541807841224272773342161462777699265734981954288175752112477410060738564924482869872391845599242769939008821644286735726485141301466564815300291716618473950976381543694047620734592390143777385215375755079186631599218015387276261189301959638900720013835130453145111210901780947600034200444676097052597099953781598496213027699805176484022177044769465337815017131641171726231429377220716965840512714683910089394164229657895887353133301986835390222698055639555696440889430989543726128780642773001649220922546286161771930948084520791285884217759925188119283540622494681205976884075089270694945198023742661707943752989225079428658023644398269015063713270378884734340837525059327495337003418984006910921848844891130155294782090022203401619280155707449515454880009903960363797862605219973771683425382298108836265366666301232179265780390141156836745391795858912379587212370792086121890247279846940689321264020071381484063932859744710204093728273129922984878770406514473198351352267406665326267226990444892246895299219765247774820766517357953515790426598201723076521314239876426787817564342835271266085039737679507264979200042534287079557864468167547544460832107573716960663366049390394159474301546589498800975850626322947728543753662169856213339345819731491332734639776034857195610459940633056753316004185247808640283569701460757420582902388998873674258031145651401362210383912920824913392230778398754362031298749533546278349760991010156464335033730761138182861052157734563649362968506058041063504940825192906977873305919047152011420198039033506023964355412208556582616564137645370498622238842756226844118697617744958380269285220667247750578288518619371625930555081023133678108835009303258905392488433541298262741940574532712294273635693721362737791944707977201248348873146331756130319019914357748474246019026106906601037100922793940777334980175140584786127988400994462122341630655411881362753300460791270750400742110513532605111523439649608274578171786838406063183912656418173489392919893845886574374369153122120694464876608661529748279406173317311413306404965757951238222936872546375501882194820453677170640661333844695052665951988957181934452386449519140724437863750362078279960537958611149932068846600994301728405562474463080728986305181524953292345792527627401473648514605791444342390864563689538006517315210021844268894924801819606840170143465561390768302898455665980799025611160508415774210082872414984901532013908258305142060584735828983572814957788336291326362766933617830274590428918392025849202294586321898358369315700504048990193745901854644651581879332749930721416537036287478492208738130386368606847337333653378398053399714872670574489739765559632312269587904964504792688999921555847666940945136172653228859745593295212873427054645832753981553049176234277041006058943987060544414789361006290765932922948642390424934230730722614981373103550290393892042924997465710634733075488806665205232872030970779125812890728075068874716140131373898013477310704337893957838382004975310745573674855002418001876725695532861602698712909710403138589979630873052435747161997790610411400860544504127137071033398061161313556706152675410379365439683130460623845826185890942502520324291753291088841012020129522291104546654814873704502784303451509779191412604926338938731508457529224412431778869172762099576629828349228402580710184361174331060834894503095695106767434703669802898074893067974649964325898386696189454017319689054576040866154365052400810824080625296175474479646420143872481178946454993512025450782440186933108468959604066332547813465332741490686013408082758708147359060871023398521559974193621538136353211297648522688042027688417239988890053226940124305206335814695948735594999457746332662350536375201034550533247297328109421509641798571233724473786656659331755236941586776941126912350903204842099154524039775247558817185477591166628001074967564388560305658120645982674559709213391917423295801261050459263967678063706891261544316636723693635135449842585679086852086644347262505758711713000931555091779756853289035398363889297308953122911322860536330816903224595512043672180220975266480962298631234016160466748095508591033231373809597937047942315304837675083753912651255174135864578954598583339027516471856147618391386671794163804194247801046086473184328543287792750257123144135200759904590969995944952542641409575698099081835172258545830461087448665248594241110439631298322116906848250177509157072730890296420375838022610639122054006254954132151683788858902812542892540037206511148115985408394525834018969786243507552956278027801676748371437275180649362489493276010638830140840767548923871839447138710039656806452237604668061588013439463636287371254017101552858834050010700509872505682257655122211343851692301719758297729808609500374837201691902415076060420852536072250356360087839963697853975733305564763472037078652939227260241208134650587964378998120073920753121514578851880033322840626052489524011674494279822277680831912056459660060849296997090153576226429285109481181858092176143679194966135542962996027892513635558374321640886912303745880528401911547171121996963285251707988845156152357949694904769132469897070233028449643861873196566596526337382357501634958414682510080336990211206227822210227877099478972282869287195634774340936717861689185585454789550565810358250026901983822874112313316095035884571048585124032915445380495571527653803672644909966728725955551693689736613881132412520132282417953515385839971410618871751853005875666053384521922213428042658238985580072986089686503426131709657040720884227842875990798495504501599682992518245237789447279670431273466204568815026693495429615322966595828111431314567062653630768374193420576536739345261277272668090613291550847342489696629738852622832835135814228401537361658306474730007687877523560775888071706878562842266903647136454628316537134180346565696450331118198481524038117060532749547139148698369138890409564231178194887681562927127720403189740216996170636221234006049609237443677718472978962364837921173667964750369845275037517873459773716130567309049556954632721909005890180625520857786460282788348293989957167601087921613491425975913155715083460020955163140575321310462886122789509844656673073659080315884136490431500015699819436555058450209943058518094218784712045447766742872688135874852550369903612326379754004865094096282739730142709316923510450239998193467177400849912399927246089473758716165518174571214226419064047354208449907044207567955157569688391036232738678564487557020747378171105930094352860906403577098518792909314724720245704788415215826918220997285376536103156066234709410942055428151409273904688283392472672988605863406511115323080646484716758185523743149918898580051751553278274363741808677462485581239626589463219015283291119204588767279190909478585311624976310432470759397582412292246608115227981199282454910731926967048766153228406816975774802087625628695020235819389593542746893776527250941149786287080889872191335249422909033713014371763232106172744357593627673880444090439021599555506867710528775751617274725385265055794903453793866718673941272234301098781221861654349002769865931760379400439356744899460532767418464787891056020505292467342163384470820792641777733863172811091401470910290446528500931443366692261002672109639490546774971011114663399676209020651092550953317645886104633296537005056910345128917868462653901877327988959434999119668761213124503704547164595195089894292829257476505811766655658702442288158514336571063496580952015037711358753547481790702702775395627414891931477227203187362668368703118413884213178001997687922995828832466597169246090435005639755432580081636479279761343001227243495948716037310126170364493727732354933124852011734637123316239202611932106007942306466297051517824962275778101472208664069955805311208987054936592138039502440148433899798505363419062724694113108352623052853294260194389385157334391604306619342183920398665829719924090258557459225790673402865281395843514070384168546134563116291262624068463840318121217507103144256441739750511765252664573759791129740096244207354279717517232349004792864231168212391771717719038514048372100056927523316096763441263647675931621165538926538561344326016258395425864514330921073051687252304186669632093076183410644575258050341438181732783317609558776772452968656902951141435134800677950336854061126353790338627651148311660928121054160728324271772852199417351527139401546310028055254208859911052504768374605801756101932321714179078471011564849445410768056877255141695539494211684549602478397375708957005562854798278558457025097803984621625529370148709895672241823921481949334302413571133263113014912040358328894656019927029128905107395391098169933816980840554321898573183813468180558952843484571722436691755988201973477013516778778020166954195195970609448590727318291662734306211693699447798834391838586961150761151209330225471569411670399613868825342191351017935483026189474676612650188429382288249275513174227506981192119713777496509940775525644963852206077481440858769604529309327911106935084349158206069613991518382875389733332635861138619642979826982806758450078048987689386530263259562802973614645063958645345268167836681149592738493057657914639145424110100113860359259568494513849446871561321877061795943385345772637527986767006311985497117142555353654500606093908776213909721106711054130455246825373713249070289715587733226153922271325897106750352499247986033785374287094139051631435665591502338793538161416961217332022046783795324362389426407148265379708522032804952039926708039480419668585515580661072665998433476842970347753924906774998469311095024067328266346422772804600435842021112299777399133371561548461122847804041683624471723289458359156579788256475192998203716124389365727301105043266338643131388293666050695818479059159192687329283959297178652065772753418016019024411081629612309723418179379235443120796576988317690856868305280371716090394359328245059073466125174781742134468426518414595682530118110012777604541340089329019784686055509689356552011003332917483449819691488931292140048278199978642061062506942347655221097852050175028178780574118934008410167762936927473868693135143233686751312307623207541078330811816673451896742782199617415353631608953066067440541577194923393761393873540152367548963390019259000403638123903248717714983508955679340238000738662338305775551907617019155196671874161311938236635773618724752748924350904791623455535183397383891284038166717573940865340188748209604988735534353974997757215873288134042523680829295261670258157946106077073815997604805178718181907469176262371009188923944845179047055037428302337159645205313761441438451329839551607032664471574355723256579634597579421504420808280671724506486835736423042074676568770973164906416986048698917074570507658981243560899036292056331832104847185183925589410032424499692633829113940426400306821035906671448374753907477326378223837350994418864681052111465720402714022032812254686664197934367356274149442910154304097744680802299663664141464293116901040873393316682180309269915612445293843465554703421846153407266280901335830213174756460921496040219286961211136206413414306000468486261534070069372301828974156995987755377229758057232037758440095830648206796604810028734506517792766896037818018473935832516123573581532406809570364102972401640140400752319090049445195979432051900766730296547981773132120280468817896916885557572465790620690016247963432672733080013351085257289434860884399642512486002258805007213513822618693351787737510643744007910870722480597772557580192423322003638763576584791003003346200696464916337078067111721158516868606919118165568311266227995710867410863929883966344728158007714084212481378402817803275960721139812332961246015910797729673808356546528517339703231328182729246820781417027069211075633550184795262629314971002395851463947475439848248562808147594376798440475152358380400069782259277723655927885445040566069137009595270631181489237296047327469276567399016267679887981667557838759312007216059732506913863794221566910409792206837728429756388996115092421663559780563718020651206744738566482796466224436398759293449964296214290295170516798364913052936949549288860358629113877530631789055307397349049555421328389754362983110746165744047055831365113897242515604360929330042154309784392816372958122560277350052235562019196367945149762465714233221003608716756986315796907254250004719139382501469706004201001524630762401724324902627277941320203611940023552436988549716254273588513371590957576217702449331313919726450065634912844515197612575691479434501629115063750484898140024153826478456036834324352583946984458621863691086246262305973464450139193120801519377028027477232426788333655403522760095924582786926245968097434251944028718868217834887299077171039325853959877155169756644623091835720483831659106280841888843933081197275014100340914605512099650758697429959233381692373207976528720635569357258769063012536110714042972910573657203645599499167090588666805180093820877442627516266538872809235596348405777453587739706570271537714283140000166404829737498316505222205062313791598132518124591843324408058360595103065175764406062415081117878851980364456828095453639163676307989488573615211375717498012115714822410646684927876401371707595757079835962820538491219789482085472884425928865172383137120855596472288674218089995430869727953545895238765206127138000943877180710397117687270876286343158993557382848681211635173241240023981590160491026431175011350112010207996743533990691685007781710684139244119912305570609904756355520911063724007357311723302019888815026218531932461728377661064582515879767283794054292219052526818061347920194480491800219698226122374078080353963483704291915207974862205421706701554455326811770734687030747761898544672453902253477613088565021202142722985750075213133176724644156028116489026344861076863581649731206359388822054199497160543644346024949826789864070756356942064908440426191078766642311778248229956154742249692854072444964121950298446904003405524812795310701808376683989474041277247341847988245920259608770411299925253474693862498966378531051619301686205999600977022162370809737791909111761168674604504609753132073690933134033335149773363871301440784394850250542794002398321458937393488436598530429317193809474033825707289553384744576877373059447685648430791483834558137141454493250771715621334667742383355068242414658974662995227340121315394723518085759244433802588944616954485874315169688141546926844305938494266465316047822061085523856507489119825419481451565404389430366298464650257828507600447745111150271545359869657274066725148423415066032361007758930296856349139060855248081671315758026737338711349737861005758005999395898421021495257776615328412366497513852344793555360245058325675287441517313813012378569704601443358769506512498827821206770882373889312032063958593193882673853623777666204176058983201270928189910688403721373687132409448897069311029956927864517578785718859791774201947935209680293916840764440591108832649839571114335942475444277711857048342039048708424068528388386409292354782483206605589815772890973890758300087472957971933874581976870160148217348501393953384086368015901664440714856919709798199475813332758841469627769132972456698903050693112658165914629419747476657657348519881291932747436061902035528804655597363637179645680284006709808528620496274488178683953799119329431112884889678513389392913057207784251824926469378731561133366357354754908193271705275643837869429833110377345239192856606767589325652215640196000686135334962636853443964738406323276249084875234742424333656335422441922527279381837024337253346417775633042166404426154824614770325256414487521366397065471363724354508868507596036052839076500306585821621065405376801159673236825600734780735988091886639428556587324049224232812297329396696941910557237854108399803714464257425747883572250244229333974593047117744792657685897176095267474653757621281919363514657642728926481204484030243220280210678297552028403606312107957805858510619634986436023202697338955287690447658884072107928417107026257474040746302864854329271510877856353853540125594409656362449092593571288401613858451423956510677649091873865663080362054397008603139141479586888334910967598094411003107343967392522713606228536478618407586612396726552719135314267595231651010921420158882970428592541500372226628317535951888318441068849336376637656666837579035210653815343719511449119246399465822253296026658795738818588102112772956153702274525041334385670189785898498448124540167308201591913395226783440989459571201194117383490109640846996773098181079792212012294882854268281697229672580759308238385806096715713330123265648738150709578953126881320581247130665054123156699948364212443294568517080644106804891300278987459501405909068006256989509552462825910911082779548008493646719829292358658621075240280365493993760503349143694623971838985975269667017253960062411407398326311864585200179735699965197920035046717776356452677697274881135823307586298271835935785202481822520054506581877227174760876369114290374874640545367670425639604776409742783828802830139705046657708661352275652520203349751754560073818744895868680492146496085276540648324766468082284487404283293450134058956574872899695437819707758938664593328191083369396161167551811747661101007139178224680798792512123300139220591301912178853489237991908277804550342612242087144956779801228452813303838306652631765142700251477864922557209758137157831543398848892269609719355838425329668176561380227061617916208349627484863742031279151914219570013577871064461741583658380497361362654972851949933054237427483959089951412112559630607345204883274766835477021487481079714515127697146182078628422499002285066356346223203538724149740928086344893767964653188848477561641758342714899546183139585583250957589647887924894219451237377083934942360802175249405744542767979496847744583021950324595863654628158805133541526050804493130439491540095044912824863042165200040384321909954598911682873271707558027745889719051248696542409652207283320352462857236926840682921931728637512907214910735609929722573686342392553208506778866081101300840621945792094883794505087196889053407791446171044306084509469428829439328880151505732389737391378708171270562727008420445917543274628655929713608001031824009450318182489085526208119954180675922579671297706957683589373190143699679791342573528764677029147439894017036071790656524422306682131683246548082522110351014233133933994117810016266687371038955214938409736218181954384713992959337206585821379464020197790114623686704593374777120512174976559457355421816440532527188160238412333171153957857273183607253162881552461330577804396961398248545833486129633702682578611208669475148657499146314236269300572331445226230376632808234136089795842467483682408939371959379451418406790454384456764369712223040472593282487550502938216247687781525410185548162383658576637637790914282227739788429244928208957710950874873270319905006612950205024996556767211481072170140897383822734441154157645846770081348408547038092752564140082779827573171855124416892640434395800378958647044885773177528540686928658157829181723747285906411498456111978971403475991736774338282596852488685512853090863264444748492423713485763350894193376784522505674579907433500813183496862143577574016417904646174017269935408867984139998571850982108296813542289176841739671168129446806698995016187955973647549901772753795784805792762236425235496697160065952589191986073842292380600953709688545433695463190544042771358177923588501292566957426292331375269135081118203110501151658712482622426783397103379298749963589091393995448697401921573127901979934447937298134209618789729232973508034087573253019116721167307726446680231225678931263774252966988800725350959027096189396257207681664365279308255737968793850759373148481199036971154747626041158556324573906342797903437461917894386932464765081743407032153125091202958986231910326043906557764306344286458945318414979126009571437062187744224561320448572761077995213970500642397576335247502157799522977761780722248677569627170512312904545383873586774546918403436524403573252546007533197584879850813960263908638395084663655908768311208893272242128561964494280809532520234303286194442739250998405764185077769007469470153857436284876359041226129440983467959236991329531347208214953389688884747515205801755057584059856343937039507164591938570259062506567518611308154802060063714375940089286499737485081783674586342917078948376428555960971618686153910635192706428295182470145130036832028041561382646722528205234929229103969479178774123737560962981335163377466271252700836338229562132304361722558026465282329426313205334990234992856763089302481146371129714229294852518128084570195460037448447361289991583897928875281140719416837408234064888672785078358612808603630625520851295979534500841479703999865939367525185897487066569368080596824722517305555079487592477190129299759939547547164176051764975828063357244900595005386946583235943554558167307965406521945775088023089981397011140587176882882164854130906625272855290407726115886581102678665742189991817823522799634509733520422569369346725928456628835819379589420549044418168177930931249717883247646401503898961964861755551299627553735953561234336787862605417651550393444973086054383342841886947740339192175653999243800980270275113104084825541229300258600121567214584238211269862171256311788780736650375258680429270558238617886934130301337965481910457191147650543545860981813078464791982899640218331294005533564693111685693029075242836939656606493671005677577224257819707604681315212753773660106160614099167523552142192936747754608658710627406939908752335573902128826994285185356340916649122575639730860964832237120054588887238919871006982730841497494050857289194792650299230926985736662541398465102518940612473836762901926402366301645808011114223575593340816565832602331731255929587238336998496138721850411543576395311050215825013192420565123464770349113086697406149783375813033622861692860460917414822957449228771540666351334333497510267182389433071087308854289432364678440048606763090232268631462191516852020164806228002997290292561261133360257219537307000716435762793154428980524231179022429352143286084603034984094397375405803691713651066675203729103791797012012528574228535573925445333833907287952433157754205633173517947149985957048703113499073804420701848606083984244069691324824825662425632162183455818489313937876396220064149289189581262885173778595761258412897305318966938286529788867485325475955706045932637959916699759538303222565743356476818602168410973825345566806798213256218485484965782053981120171908685913032875604061190202286149231870224242623600667006349686506780561100377376910096881617191370754223280725467550789612431307605955344266052650140578986779538234180550340442258542414199115981435930733552133182806318159849088612072620117500095383593732459126602466794034688488054742329754803148759378554865422428477860123475727976973341101176096881739595822100531987514504174577704885928896772148777120200601699505027725500949695095166775968847431449020347312889242438193530066620199883557926670611108428990668273126140322609791867851097576678833447687855424749605122253140492002873490630002328031159019546695843280116853429768982862087685329839163960690555638374718044299439698135237008368423076772721324595084711679836677394277227124667564662066344537063163159058099450043198707285253269471371480486914406484453499454823102064260794661724188889562578677144956167690876875860657433865805790731771682540842559366980694452305407041293457363552327103724692330614171623920058604339090036341130698683341599447334254571620575854824690642352076279450815012087271927189200996644201681893937354273414457616482199047161692902673041509201750104882343752276336379715165975344848096288876102249293190448783830815925175774379661772452418357098588678124147055955362444836350942450977570687617382200856983995277640710004733432232305302912874951419313362557952188252683561968059917089121858283259250452643977511409595399500820943645064058819361295177263153380115448694036399912694498307343944836762349466386374735775707494914681316605076872177090773431242659323744028313481241203919741424106646232623908844378046959638488635273397602187766652548311798681145952638669687604155655866867494261097611643025013533796695478387860199849854144916830388773155907212735726148791785113588493360023025961017815958028961617935823530897429550835396599622152009695929502062131522241032193204109425960704945561940757963669449167257074531187812065367336745311088133158400482672377521581096361788121258396179035472743085596546214342638589610533402878403885430316972761569706286063294637736909075884160102302562511059229931669585524617423437529543132560773774957229148305518864934024181433276405246437118452193654291987229578596070512454400347504748442616461001592064857904609956983834833581090115460533627469700054202331674083651027289895155809246015259389083252323489823413302125884813076424209127473878281988562917232760268854564004998340952383572074034467000161481411791822482410023887199571772832599398068856890908565793243581542256819052574016623262334874099392132466727586592073202591129866597762040462716421656915908350550392575451989461919420926977591763872478662431681076846611212472116080293986584261694457649668881545847099053459208496333674028029520128569523627643636989926944823885861725049593827242127838346153561467632760606947462791406116647856016658476771094929923035532596737662057460833351490523323841641513495460429647768237602911925028885706915985076508398333634423603601349869756259431369255304383455893155676188661596608120115166056058277634013648155205493748327023919430143495631186942713617748245859495817373204260520223756793341162455311542585008747785224423593599184801261358316167841496430031698583322545389424087874531127380236228699928372382213607505035732152641817140433007426074936723741399116256076550655490499293109389672256018659231137965338829921499866680735896581221876212352261716548507843632786613000530023509209872824191592140003503711016101290070335672880083838757411968520256741503971943389096004747620689884692797883291826198292392939655355641544198901504264863755859621060900290811422354003531944009053220919582644935281341755479651843465851689388528590355436090007867778152243299215122479625670004017025164407317373983469546205612910359160288913179731876133043794562788143864408837417180304489194565401634527184737851527451426084987029400005387211908058360707762420208633453060898276431634486290662344656333460982036232906124577687220168117290108756805830033534932494244225061541995293057986496677747431682494845666066521986517053883123204501784803926666817839792228736831764587960020384293661379816194684312847240633357272271284748776051181645645978649893295905102488206980836570271607385138254413387577419744184406875026738981671550003843352745148334687533841453337269449522251276859399968100200079450306174951912481621199196231386372301435565420599633916279594752744163288756364422512341228743023659469853902269170548696570118265799726282898793504271803786616688137443846019037049814064362519479862326647257732946461230999991304947486485818390116511292175060140794110213523894684523073490554588889477173690125180430692593274458636567813199242063835546572196771136257342609776829895355818057161236620234871637287526468548085778913995697029177248168421841741178195437503497175211726929202482443246880823981377530526507221447779548012931259311418558587951319952685226986924993927561919434628387386210573932140841206329975620846962847425174903409300477794145068555501149558376567269807638711361131631408963285962894708053093951032691352948549144102668636362271660913528201338221186205769224302391982051880309255675293164342163860908566640581531286901373326422705542728300049300746356845322456334126767838089798255159181808642411406779137467300713674819807537818872725685000784141256828437507076466304414288727000761089412388030997412508352383007539682658632444408114455347410753123730459066699559321959652119716381567753399124295437328219173899843744754866106449668333778211306172112832276229229219473032876883926049565695583031347940599073590467140114144616939489330911616350544858824774808374616311007176935499193309729397752866705241329326409294609527977224750582613513558819220190664704328201343988644781773256084708115186383756923746397063362611886673458866975815546580721258202576906785166314639902903027305077941325172015067028976215585499602102698000685592937965218529434945745825899535242644522907001471212489611840467915267442785889724120355526561902014310953289804453476334586935271868024461523180630052212325355987968096722049487989130727559598452614336685392449434450388689065704856310196077307939459670912492787631409863011458160233456130656091820945950138660639395828872973687412746874035640123675341247411364045804873732587240456427576636683471755482265019056942422059788541753560661945354923863572300664722870514114427596635100736408888778592371108052014868675727491252656570085299418136809927652783081787976391412647584039363418160151224740703787165379405787869040264763444358018865303905425800944513390173221900066282543640780147157449755397524167716375350315150015841847192793022225764817989920155625026584659403753500556500992240394298348976948408027498730238236056360892413886400819482784309818363848280335598111396806073203395457975468255885363042332258346274325780023364172732954410030472882240378171816893820846321114143957638357255163593704293246216627414883895478072951911493703548953589799106483830038261691424727817018450531983177034090538253508738615728152120510039297523376366192942347990893246147795109913767624709781517840223443771915300918071281318000867224626871594282259883727461989527405188110693866462628426026248268258147362142146404482488686361815619813450052841525224518518885228694560376853253153141131295149878897032934231381897547280270662608998627804921097533522669429290529201677095388494704772273514507726984614836267140203267565629678272953284295218485747162014398204791989937819558688302827180213841035394639123978234823360640914082209620506487971859173061204335047621556953551751622343679394470113742153541413805314322501314634826161229659863821221498783419929027982911503844533528610015654252232335928739916173383107168509447768711152426705223350223110130782232449965334117981650336358365758348434846326068959117002937011202356966425529778729063341241244613547955367975667002635462527446170962735504659983506226973244714293498636496961263426596351018595672292161822618667818673299137662369499725908992284561649994315990932076173821430662637685383290984031225991366794033610585262662172704210586108419517837193555501908073000905263753270336334533638816309125580353692012066457330794322065381092807845798067577231319846517747697344963759297746864943117735623071266356419751551936870383114679395014196572701341974170369018164858131627413999725061511009963945483122297940986194020977928505394659788266774180273242426640491857544949401366438093977094770735990635108697403791081808272567906272213843322016860022622766278319807561099483862793343888270253952975265094459856591423652276482270058778201861910882897187973840076832183089245586311563004416482022288241371711627543454960178334168626579617099415693813157720887394804871991681153675510250390234883032539100234076381094673691199501158335392573775470950378209906333237139227625261184586946130298289514639398667689694894618038881716199986614330236601660543031515265796134392639279700609706868499739388039469345326404855868731773941850424283847616137326656495357192892720118682051129672340527231501585419146950169267638929441385546640655588495640278573775531660544195690797328402763062640199050246914097865067911922397696568806344299140238822543029072975526382805687013122702910765475435186592167217993880224742729858169495527947085751600723055066730585016964830618664626899386518601247219838891958266610828116893626438467190185400424188571363260865890345690921635897551262237757640102830160207597652939159893491435545910804958361304978196801518877509036287933643310545949442980388717348943764971372635814243843376189601124117715610122400952929324077752876129654668510986285603100048578093722458856125470115187123797270609036085588523029268342929991641028686654953330840163036594600600134809904912918851662973246464382458722219493635179964883816850457625581384988919060049492366201573144989051143595852572500341583207097953364703768650699081149217721954890847115101100585125285423079009809919311220627620741255504974995020238611665108965586666035758079815618572387887878362651233363585752747149414090153072136197318631174594712840368041730191551650692553337720302840571440640003515050746801823746658718391804529017036676055826439423156750899461984021912306222126048292029339256150517135947767855484345842776019796931545384893026686683366348452699667447942776282765978860150118684071397391486253985897862918345342920040592558328111487806239717439222359078096474333255963581570639762480802571210973800311901596048612591593103640286801066887414246914804038135856895577042360931092582937612667463473878160533830275146088132858882495140345720161037417096645329419245874600271833776677448101404197112548286907815438209438789353950472169265639789227040191609807404080075846035834024579340951315545747140428967130328163483933433477459924075986700049880204973225649301960559022045548040828781127359306150067314795947245460381474701216718097283396453120380721829667097478903690316863973010585473050654926914883920061168132108988411985497740423424090892695973928339668268379195709023148490057514498300190442298078919829464125873191709424520080179626185620637222098094797440415637443123884075401719766460150671960515516699506618279691436808298522255288498688435243549812699190154517006821277365596316962828662322784731989904993806129585273073317192949737423319229076421950139247678505813273974813085996378220609255395921343542841784192746520564820238519368827591849314262260206035544307869125597187718077285532106925870761230304886689784275712830232181965652747685992721955406484710353302066060481452819348262961821339624508479888294650045494978004976831342197447337932535517562092723334214871236608917332267785593492026281705537359092379534536616624048493203738593245706880879084131520123593978680436722494887932094548935752075843368399441268335449913191109577043013050803348324485921509244848094379590539135855126028298784707930909599023337016859417485522772026616710760541316136362365188644718606238971771905557348404426718640044950903723049602907639198608924492449343915015919918510036754636709513531571165164433604185428822657714044987120775928511034472121783028646206696563734207285611003307093293977902168909133494928952612164279757878226307380443516219212243361215390963249117634549558312217805047825784410038786786225752546474161078459293244060793717359887806225427319276475565724880412289459119504740429268764031983588609729023889543102439299577498305659774188257471126411361046623181002175598750322217943255683367030808376395989384492891024622054643527215259599043419870261815729276617683500600855620754165329921399304374171353470848402189904035217598793088032543347085700888188095817171110246521445254929308246805657717722680950703506286770127015718673150765858013511754407709641660715413406447130605455943133755827908509577846643308642972771647583961118244964966279331735080281863362442220929948650053283850381424688265373076731904537232818768629852732604782378512157894958398450354046627779562867928507260938961587010255212473169348580272906197723456630544590001300530970957850509739761026068546932311409720822606509556096626629314839503968928435308526844129563167069315074382559182580670934205458692965442163400184356003423829105662850635302691692508025843153372825674406805558684015355400714917412740822532572699450105857585862334100262749852597462198252407146972035829282935242401724531013780443013442989332742701580600385167077824032681790730858968245560087734526595564066067087318342713409042002675494191559079718684524329409736462287991540166952912694627495487822252766400753681545955348962257337692211914638377228370572878612134603685262225949973574882400319580859674001391867263130256234503897169082753004726576341535671205373651848319787209483495447198029834464550949037778767326488699739287884878802422017541455712932076011121855510549851391805258173779745451972157559157046067770366572599335939852922182715995805017936747187257107884004914310473885615916582523607797485736786268160093082005560660697553280233669714563276596197777360288745604651687030329938758723933857122379053373523388164527781179063232592152767174661734344073044260923985574530669659885960797767471832809191348014154304513415614518421294730095809448740885685400254464292978821306094909087511399228165246579380695361034768855746825352409352626225193100898154920612616834034175225736409856878697186680466099393299825011434251327809955439956849962813373460355792171578778933939720804671669081750162214484670879152662175061760290039100405888319304816120476606031615378249070539695475445248681684816056615753410898572509404159470270747836482448839180594411829476209792863145648112449619563737802214259660189428265689154203682148159667217307999587816084587251976728505056911776064784680748238703713019966060600834380079159805792361127124529032637141480778403140481923442245570117631613375947745024694253261696035087559513317245575366409606690778885453008316360642519314862623824451509278360386481156240068174710687833152498837312632870566695878447721490702973213424622954350335622140105797778837740747255370970196938294506797740031356305413202778610233284342406443469060273352557056350037776802122065827472634493326841338183571246389672100509605676373922552273678154548243064314560729864514726328994622629201885772197014884837690748456925762991895707516417132737658315629494124627856521286283958358375865285698289326960142109589166981031079518238355059625448326908057817582776561073763161502944611616945608475022992356329815765112376361706219452933906629647328843576711783031461624517488773252544595737412508792513461803092190991614022397251540980573808192226210462583942586739642579723110993005464645093539583504682761949231982726308585858752483656894861468756913837473908848676897235652852940430543095822965164286495383948411051140815981122172947971041246763571914966251230352656293934222873752286451638197792604951486985865416081493623057866656704962144523432589205465357198887328279943428608117331270712961024046600138461668326407580539746632402070444995765004670321540694149671130147044367424339792964272398398538003705239770481519781953171589799926629792046351973666368118254372839434806830705101582540828376206154540721495906374538195196580167066025233713638645689079754660675164059883569517538823658353575464913670477190374256670872774869570292193670272529064697312504668403488361809389086615862862273690532010649278801410100557932029412748090955164528461590196765581755046066742383332500289489591003128573474609216936257549911545869876392554618674666574183107786967320119508235379250334815487956263381830124403891278924191766241539290645396270482528883590298374002340677617449022095233420339790170655047266310554987206008089199734516000264124816435933622431271877617406061112406133215157928305870232662908496040710735052861259983316014793123326822704702218820623746583014918380075983711979682421106096257264931563403064594565643047725097083174698649864241289398400192559236356135327627193202959833550927270178279380804097651962174811837390879059396572854426370819425246839660528780155789692927675205454397067078390358508177591175260033395317447311672606398383344218306744900504506895355983517285475674104947897209095761012820463796102991375717131751903556693562454643863524871842358414475928318173131750175574716924209151349127371295299996776611498877028794322349001662286246250172648525104394976353670091997419836266553278834606177701375208872677836699532836804492490094322891228178401937835246030185813898339928682295351572210014644919014160117123381046274057941139091232254873484237817668717297768492791864867637142970613166470211615917871488137206113250396325303333539239621959832033618328847570046585216240123080748246100710253043403837333119076163230356461191006853712074211154058765497414849044103840129565871947892747711489261547735192070314556897712142804873994031838456585320414199952069018008517841314535725294795960430721432769878060310742510979385732794286212841387510433422199096218266914116137776279960199937183297774397699236849933187227920462635699074111788215189674740021218383307294514943545619396358666060507193602683504302784203779226615939145105870188897235994900848076933969138639953044292863169352629606799168866958487488376487373760928795288820302421672229451599154667229185011440812905639970228928956235521172837393301224910903063855582662019455728043869680381940480156175821051860609745345464991823426863276605600433667886070363595294046238625198436640331735797267079618438224010647556847440315050392670540469610529619889189677512849088415130282284138514861979465213469034615100632743708234406767352330373964541392776415496445982015795980296821020820162653865548068377376189637300786194605552274143782285554667073370066785908402383383415736940490013239416572975725125944127784634758942293790172591929612048134638423124801752343472443788872005673894569873473807226987389791987187014061332272695989030194351057717947759222735995988209706220449674127192732655935512401949346153133141999247541005820778296787575050740908394090406985618827366481507845976923034774554534065898479841939396342658228908033180899569521965961833598307752210731569317512524464623239556907900659963423618515409557089919621172325956578745935424348020481797645950136333380945158774996155954607718734146359695458623758936414447750645674427178371988653502952848953305163484017390101757444644029027246378096632634840640450380114116229212633270765557747950285541688985914584597704594849152170681336019306849829594664106358513112310841895175340800538911107277139216195509774632260654238877485528992856418753040423349454425502425271248876797191976855153208857780864839943379448178550769820148181752118432995223905082239360321551633420515751873302769153405979092980317248631055913443616532147707340418050974942194232413015832720955539474286164130000225789321249220708765811280690529039176904904199303418571562657635083419696270438963592427047363122968438792013174779447708893998266073878187589121951121527382436206250001335734098355817053930097281833075114137495409147492525236536147797223879039221246201891711593540964283724822539898993166144525186293953348405865040089919402759571099342620140045798786480069274777508674387389027890666581067036746823014922391615324882391366665758272742150550562481211922935165507589551363407792621042277687673280613616844354839017094884695431944469612968289332443041223184140336521252798663272628685832588378462048928374797347127433171321439382749942259696386431057504820810537737267381798637115273435117481857460992354018971663649923935285935804888949966284851904618687230230321565261304709200719292424674087233809127144209182136466601529173975946953686024033495910557112394933134364807133436049463725680850191331725378072486242149877866362157865354032362124995434464733248933107915712614758606768531563677117145405596349715220794585952788627131137896024875783489560233737347982422649777267642778751253018682574479910659652683667759468252568005908051220680386183348425389530681614665050265638219424923981120840408154698443170753536943261139896883785393094917409510303674363693342013534891795646319291574978843491478961431100421745546461796033527893150276746220836385300731140088743981614363456787535863852936251597188952283243602712534904670553224407498378454710418437950459539215919161738068185884182232195939460383880602397738043113058996027981945481730823635001885684114183342689351955240517334079795193988590551576339650057172082781102188242360782962485856927968762688696580090149503087109673640047668069604417541102138979852648621947748659493049807228862911380885915668785979308163721585069981458045408093392748784284785067699515739357495820246419896181613838119981010527696976760349379441491633769890705124943753536981847814865316325506748868567470765077532523572738305329874542214465795632680606278738422032208711822280286807747801604175609783238895916104624532934959700290690562221474590568132081730292394282551637086816100388454457973935974273188786245489099536272967753575742314982286110905025137247484023780991797314813248438702808128324226992071602568616864396691275903552046799829239354249791784248506480106566530011570479115551551060002814841016706166812864585712016724032944759608478599405816777285876863208589882957592118843454139850213707728748478752184540398645008413168101685047515711179025112715651650517009832882891778020425801905818271729701182158965813025656983778093129789906452546059858935418431482681850058235950694303086885442929142999714852900622101370668725729167113800202634733050907780607420545552175127750337543950616008687427652016814261197376788412674728534995676226820111099338440844367327814001661471918999193687877400070577992290634075824969190684344839535199218741583506811588587932728463461011630985783165940474110789663191625193002608550766856772813557718354750180827790555519287664894688561541996405677955263240008047345966401336511935552600687823273473039994115218195466744871138022014442537650512833307481867585386567144094449166077523626606709645355662104289696967530053570803744521279741467509499610988233415655776609646015476061724346658253021150428705833207539704747779287437153937141888933530880437832595531515640347931298156376912586892564500855536331327353070466030070403370661195830603397951174936944122054950472806735758315328876650527200869765073495446684080114448016475041174992842109684402379397166105452080665357690041974358426402603406439045383862054385260380453865084080708442742959001789205255414940267233416783577815341452706348644269662885675358941678717079336429663609373829847038102606234817434923053534301265667748568831429285500814083641217452811623450980275607703820483165220016161473963587038096313218883010319974013527182546647741471751766140886028691309522163311209094315579603567696771201894455854591074145497912648026783771689748569966013427350153256051554722002954271962186132754200979877239918762233063297468982519438463079792979340026891814868114019036711551535820991218399229603466285274711336383827125980461828317437993762783564062283448664702167928196878327763124542722747959595647277838217477388028377786382926187186610886271802485822327975956029177446886547501665188349602350385816089633057572284574012468384190582597012314066772066528620010532806590732809499998268462343557745148674697591240867401836963797436911013025334769595222363860474916951030968296230947722523754821880559471284546210243120760823820212933719926288277928525603086868726351740922290343088898531987973667903058512179183213194333028330116699370659657079899490419882476580997461275782042614695292582674382392199481418550728625140196430351453697606611710275866803418197855856555134826199584043948713770439134258743758303560968889133391096290470157315272187878359226047951546998151672365061840292843932963843805922283542368767940412030495491641731822870564613418268859189315449646781684646479768849677766477047043295849200445570693206983471856615296973885793297699834837212101640807317076046513245832851297748476026660601066061391841105746105586912385209564103199002316642763163122350505239711073687714782715221644065896787981572330448142872981570901847773129854437132388771809594252313385934741774006947563989796303935782671744512981954958297498196319722043697296064037778046984165558649743309557780924560679263784161927168935856727996146098094548236039951674686698864267195477105810701226325590566735882078499229748142784090451208855050749203101245162933606837685613340009023527383872868287321434000820665386761781763686966881085640602845893048928500036070899038843085451502003116885506186124041339068719406073679737388616833392870790638624847109273389425880116131040015304122293386533279247159070860174733763645198814216168138102007699802180265645479993557593518197845323995134662604344817800771456645932860174574940337867900386649175913874963314284490518944350290999149130871265449111914532451037532754007666908714977241987315608820659862721459883624494311484118871957538945409734708556688256996593625198933326209853253949699430537242250252957272599065415581008027580055680735755354578104762829703757066646604966793900607873439223430708999927450674491958135157832698549559434476897121993606700457836660441858764313863822529811028928363788375694354511921376780380663233478004093267534629314160075413507193657841059894065520978818227481079639120768077890969991039626723657585321904675321267974720466257299440151322845166547863710779342418340046633634284669710570242152220364790150635804130260990842032445278269388710084271818798644300135213658109075308388673178542364687181085895178738744858581675428179717677540458163404125455311925285387767554309055410194306021242721560581372737975731112574368733107496639391922864474327462519259576617684401895761363455329196266419950177708895467399606523388047565100966149366744729238684297149609056193520739529132763832359302827049261233653010938539215333421602988675183389150425246057758611447534201740689592511675404468761124754264706919520697117087427339063742631400639581240987575586925903578357617412168464871214233932568636914570782096241870938434255696753494233488535048621469715469692184666900868504394623994074413126806269104909491869337089888839836100129903779091439143963629841282731602282067400297584792035056942371867354172070955571400982714125040837298033102798846297694133461267135986748247384599765250322113586575856846393476776525437258927854353527577046302328751545958171517142375029114821564302003642020797350622481054817996723661080460638744059772207694087548034901086977152747737345957628253498617757725568651583754290421715636530595189091590044695633417514830311474427859072252709566037454417750486464001280869916985467033987041634729570571072809185122030667038495397963224828127664063196017535594666574911623415542166372809272750569947538479209925785757241155420167012555257561915348947798367617307177547290197502685156380030624013551272159299082498099620288681942775343840700264679701266926716090212784336796466200687746810381028756647666339166615870407402338181885250708591597119090537859729097408336064826909085423321100149466889988097169836317617176886240431545793362282444926078643032178104141125929608365587083582480042058734038076455110511698205219752683713485972281836062563495399060776343945170504808169648025384342636223441768871061230484563754183036719848966378247118013889446375795835267320217625718032712551935595695437642482305606166057103181685696084588290269005522514383655966141006703808674648039758010865671110754638646635416251093248890446924404390172317887216914839358548995974293647432912542675238096265959852840005946359105274056957739412608182266363443914771722313098111068350440201237710899268671217833997094879681627926927520218619752919543269116882970532944094265379375546175095983266629578577876527535400003238153585175758936066679250489477019919192167262369304668764980704398745426214989560688399386879866345768113439620721891129038008869551181277093693449144480165410810983786062519288059359655721097995981866788062743145695952017704552825120740138144314434358425043111313781974052746630725775660629055910679615238790192589846976421815705203175293021843290109080076848591100676582004053723796251745077489750148229584324568124992901205779105077161109821801839246186680026013912356300695976416585573997412155639379509959141181419077330849194358100726990525333204174006701507857638349671555954892487999583124441510386331404877632630439558394524594823648961243827022466772264229760613887956286354779490226964767094401903764287986139126421010920671284129830474149009624915336474924630726714549111658007049907831965432735390043639281617300910372637080816119811712793220555434409881291042848533573121484072792660451762740891694136561990255982002685212465872665864333292119761313109467701891604612775828434687256613494161508054335348107664524312609311471700740730836526328385904666463870158017791820838814995995147925134683765492334990786127428948101543734719863115566068107539056646472510193355298630267112200000388036447598314386629490245876520803538323668550329460626704099509224230331108240226842590527980274082656410098114060457335704303327893411660177636059241746451798583440821380993710800614772532423013670288567670533538627486770992573350023704769607731771619280055340575644881402561406016274131782535298036430544721811031440164082977770343290295932059255393077208200117498080453044090502443740943133663873973524764235544508210595269882509599446405629366974327402986282707956194314136677974337238698272975597656007604535070167996174640594442684648011052578022584784664224608105480754597633606958339539305349347003378741834901816540419051671793802567889468554664239556008456857726472516510432601609649120678865565507123896495787901627987797181887712180172180679504934224489268059166196761386609988584785085223444431969064505362710499064563325260063517353048788873786492173990991150433734740774189586316650871999146362091112526341571718904518810998398307462252365343457302919876499611491576033814197234267283447556262659963050373584115038920545779232986585606150374197520196197081741237289064305147763810405921776186893818618894764215543022179134180319820446077936763763699515486854374824577613915213229056069834636643534130738687376221899742025898219190683570849084852166456663024938533822416104663577266743213247569066711805674782310759815868938380091345606734350727420410240572977459941661403173995043419118719783916346448649562951759856920415419437833156405062511441403476881822181693355830958157940494108382331535484933845660774611600653415721667560606291021442540072049027879726957345075098094776226513339954349684333617472466279592089022671702011870784071111522549960096382360536541435527618077841337472043849283891653084736585723719977139679761443193884388572874446180029210571153123295137584161713139980930208644361097666042163291239056121972747429859524063934824651225118105499384142256922619695303203444503391946369635792505642992178957495191133420245477829963941004280464533161160671735701094685209369249441940207781391415663846616529105988081170356729840607363218160480353086120098349187005488103748443003908184718386535691185398852167088458347095747476007484566940852958611352706123205608338026669044292690262688742443457141614619252421955810480979217859195715463314457574100202070978709263703452712652562929617565195145519502206299655843239182275352792679386013096273260523824051862908965982058936929304093245666456912374273241298813196571374659609570923307066043436308153785915450223837010594591803008647097383404665395377885640368717961828586671583929660248956845415615962789203788447881494784363661608117136234018064214203277267128878313224317863171758109928382958041982356607146476350913978079826033536361376677105438698529521604887349759538047068229010439677124477541561726545080761527093396495325506402620545777194219325296148966121767930941246266385790394381698512548749282717468182298354838903121132876850332349480602668333770168235002981521869387824153742187500870871228939834974667961192142474721298912250884292235561913774320146359742618851056023292891434005012361758598416899549357653675082520867351734957199007380325592408027179674946018698483806445841043140684600783709607048578329121857805620004430869679533217133137380375207825678265076536365368218704340331047264818491750522034324297863308536543521874185873621093811517725068129950186902069433397661745194669135456077045936785186306647294634215885828351201550873650229664768459692047267192742046263030462656494107551531533797082304420719430733841345477617776208801955996841623295626941473077875553594475520120128949850317075138324084957375970448240157814786676663314325887728618535884505200653289321544974740717939695395904841061575717855736451130506311990329324613763733170079650432153139377492876047327076123757225324283847970542263073792008933319198168620061758723009921463324074755356188940525684263481256536116788699955198154379410625200004288178577587465902416351018719094966676627907948356709721855524756503573568652370265207285596565764819199090428162980966162610979344228879233625997209989115258208332063870418005914323883300974114588318630196681940258399073152069803446283524941323016459206099500828469451213752033215886247724287803748942029154755447785463456455773836926729733219527115541950906491117336334348506710806704682780640651894942363032758580322843717661789536780286883907618869016576894868036572407281550300459081948330701319738683503788699932050106199747479439108731580424395392420515867751009948164242316761638963846442790135167750998494406649295145601923765487040063166153960693839050505344816609430534707216818270715324533651820648845026533005748215240777665027171435904957753831219488921146632167877387860009824165153381491230589846709182326967521830030236547187800581024757575362598835370465345447392741291755279378923695643209126114053851928744481444025965031031517817954000973331044585890483397824439825656793586650742742770633722610086272238050097359641791730484878518613240811136002496006375125786904933014993356374155399732168883682047225240086555164610059509817583008273168136780615242836473491374388048423897511705135741098265224995462394570585024078711460772824777363029661731192314024907876622052160614649537306267578079828020066860962455611063123189564485171451209459141889267117786328878195934233761738652135511331320669679845188159504268396584039686320784859589431696996326179062276935679146997448174311811525098554942823420824724340578252663541239306634590418317216651706730741230654738312070254477642220977030968730328827136052945282483776539657573805968803442767582117259933146587363517741723680092406738613066540318798907174449769256845867813066431180908085807819618700308445117793199602107550403595090774040508222910477315193464775639023023243650219778162152445304039467361806446353460658053806533050287861829468474849812249067122562546601877336684257915674419527849211248749854817966316811470083136798826185921716051743594981099861908815154566057892452468971812033134805371884850583985993524336252613176294855469533132196728423670780032483614233108107753440608155668441935467704763868842490941093178677892286079473351548252444172555334197149960552309017086303704879323063918457359402900522501262054256790113918728453537509424958501988275255233693817268398681577571756558819807104305641455451026402929653410325563267149542796081705007474819139672354612210960129575626522314132252282922992866687100854623872635774226908610765250400498036930698729240889002839037148696913717556362977059937640019718774089542582355146688890239652783191280080553190463917109409719298013675492731481379563058427159310838162851235647230909892422472923639705375636276462684053994857598595646414971504022462677501767691801373213381398552597220650075068833580414601774983518039961987473321147611504913311978865539459750991641979679824276404522340546311763507185445247106589681116293256144024907912938627764667033984613522820134681532626335787901826097168201015211981305101318584144710272689930745029781189318344400566944095627420442432615008109833263712640654565558448206004334482247396738843765523642038435407760283361879667671553337359764965011165259150274152300866051849616179814932815719088266781807957387457232400435578038664803342525775487928668864748985724821790985293272129010733341390360651429883050672988393014410164728076800044002553780120254985366228335395804607442240385162997790658823894219705874407485945607493231557866499254320820836634946612315116683806604952432534963664769585545684377837888977047245386924541432653929699625022933822409916160685832667041496336775692272937885361828295977276818167366952589999294653615466728430688905029805184898590312314725263887400850135140979359273962655717291627523137947950830088172444161113188341529172724132377878077187899341423054106572205513378702711006758933887841962143782794783444391984338688679615331607819188312458285913443349536818911939208127100116374003453703901579922456883800489222971109587727903609244542133922815313227553935002150909770752356389864218106972226464016844300006159885690138082048121558336632540590818437975222614253782938521813427373430024672180423817057524771749330423714032128253809347551447260763542170154360318368696391974223109431298352417750547495690418405501063848539792167242593598848366211452809616589022601100582100986207850021690546235984598909989132586466786916489671644454780453390006394088151649314944656009524312482549882480733783216499037787612592347451381205789628900643956986724675939363886196944194000217338051986228760879682320189557265005043282742803134742812539490859452887195733999137285799200209553649584861022714762686651392599584659807778681833025870924785840399280594123549553051725607651488276175168974811965199429304250870192735480285300801319637830577558950292660023311538058248679511516148759256540633813170093903450035002808501706346407689232213628935390793234186903391492492820159516229308639205292394640087919476208413099930756076411246157536602876216939808090970584855905501655420190770470202489610122517121474655057340746854413518381375196583455719133030031081960747276366383355006323496495628566473911326200544341871087410762367978052310439794746784452933479807136510137948505476406174811820885957059347397482539699517398485691543120160352942529328605522867882572153353293320136392366177422777396204148055014489493538837494544445748981614214610618040794068399046349875374316768767159702254652945505472034064846184953774153283019909372807925558011543146381798973397864511395474505378292154525734416127861065350568063083702769342964584441392439714146557766020911687671281812999873254764020882040693843990281698808914808149869376980095016549434028038804600140420377133104847035379612711332868628945313718556278723786322903997802514666922701326129103287331725293429796209415239536939063056105620586938860412541487286496816095493131436588227655295066232589766655888461279674994601888298071971018942907236390072041934888740107442152547449453852934990687808936259803126355831022297900856397999639147907379506480256320279675792678725357138284090410100232455089074847525402494787489431470136289570226470723856593081659257837684351843884639799875960405350907912477075876219768657172969382686031789279602377456701128128840496029105978372371038989705684039778292507257832891104249866712681779208805498426862263478927329075562821201885028543040391599688319127969511698833282539396422692202793628393634573173742709163437809622347847566169535889127806870593613156259828744180408045030268999880530791460751250038526492556133373198142158135119710741475975388058635663061901319700916527656329447925129504725823825001880939349418069729300400402502526143961109150352550003416263785559196001961526325028772192852224246656873461985601552550859946155490074791720871462742562814465005898933871419530725529662585286207475702308041741752121270582742644235068098010598432038531113704251884035151233075102334942263789693490346106900617633584940226112480350848809374764660359056311213899792562279279199161534477278633199933499031257048322479600769707527880052895160465746290945561775949064407485882330085549934893560131077514524920025267570297896806152908286273446030693317942513399844198029429785077471997330869745287328381585135407764537630239313580579920920383650058145103936903817996542472109616014426698092578657229074583284224358356080121800838458766896687795087185139976377558581437105440885534944676438786845049232683911340239056658585264512973292073797849388708017214186564248647991583251336272068592958437706253460230634066516166852078704402494760538085478482495830407245609569531197632685330743516659995452893654914853930795670339408684008515993923924982450685463018570938576068461482776238876612271734306094027008402147370259965739614973309307820231607940004416041954143277422790001115355827323263052392363364624739216267715604736925839282352272073708480289568746661968962971685103583850791349500252091998049013900018112692300137349976255329326437683327906690918379233387794259035591738299322668283958862144582476628258950311728684061433266138812105232332542307239441237251492803407651436758371364561325862418009358489970954439705193365042502082875451095731682385996342071079278226669227486155796834058943678992051131129480230785149892064424499493096827121118155631883221007333809434126580215083778369009388943414250099092351567038845074055078099350179167766948969984110475690806406962371384323399473585895426724012695651894435215323149741790092697260211854367790635405858004975589558205156400097933165350302356090465056369782768974054297067559699698940433418356095959994076747960886802173024576043769231234882460773324302498151320289945435797379966224906959654388026404193406014004623917458496339312631856708368823290036592738696290244609501583997801313020139786419813429877694991474475162529281629515965505237695826281457286434835687968277874283513509190579849932092293846550518491186763536439784503992199582819573628960963334649354654357574819448201253062214316494065209583412923383512630887881961201225250352373796861848980424537816994032319256553673839034697071009765039605346893450247172402772071676599995845887930219055503703656760656829993620150643212146410366409192951640673710579607551454181056339072789475544873301311197162386795060810792861461650708247486893362961637010586406811227227400587455679818361547059023564387537426640914719498959564685326749753051884806010408014084876634048555053518782880755129278740497409622087761485851009985279614650681582546097409790149181537410949937823891688397164038653126653777007221366305526545477394702975520272274223832198911854064263886970080589279156607857980814049323411877280806593830765320279312441650923931759191664112555873212519419623101404031497779783320186040678066162737756014099660086433384510970847453784109101313819514442769801276369310760991048677319223693242956479768118892407938816087626613761874625898048963849098503750220164800852405569733249299823376040826556304679327190659058414227499227667282063482113873333672174798663587826635845416985439190215403882642468704287607591265685878214944170621707272332288220994140906609020401343615856606223199693539720392844240400021520166317419236091587237821243023255955708456050063788785402436770755981356555015507057536412735991795356408550737011203332600816126566012596076513706713879591069564749922183321833238558323994566866697100330946461059103831391326132961553969569587231233853737512765540242005499492721778551859090874741840993683542730154459978476337398493898842578457161105043610330092598465799591945253049667240807730371309641240735027298090076022817961251743106860078036429369707544669861914986246638294769002461539180315227369201672635193076194836137448299601045055493852748286742647445964798780757010269288699990379089292496448827890271685085772971287114451234973824648632593662833424805810362667780578196996755953897035965371555667202693548801891908641437580916014537353939792243170427623638766660013813164887196501011866851111403773385725355906896009237058697485022946115857228570455100630279790617704950161271277274629607591195738825713701278872930816805677687928113154919219519455083172018220790900588906215940212085473638933100519989593573921807312742094847264013677545142561488036747982465115609594121181106394279198927916277834500790354851187794039948260218269689407188439139044305343215846997422647272404343883828811725653416248278975738704541797899137428527009441307659234913673822438143185844341898174189016747958511502678119277653638349848446818372261765088940213102299823557621555447016512600230098393925477597002626021329821907419033732259842864951480891963129157860399867978000753782461749188475775103164877009044519124407993773741198048563366763106683104472230047293701380084432621010320124441859446225425934405438064277038367368968071119218491116403245845358215858560374960752214124532236398514977614344547103808271621520590805243465481175309269941881830337324631852439474610257472667631596999342936131645402789455963674255711528486206871496447208440173555518867129930126777500291374239937514824915235123227347439415516600739104510845238646044112007388425004360189905291606846298036390292298755187121223708872891308605662752687399891945978299437943327187429883862615590039779753897687962945894302255830584665877573887875211388185240119757063833744679517446797321800772781272640805071924913460275608244851449217358332316605065537416875455836477881046101481865106712319819259711468937975026937730731819071644438316071778241403039158210202914587104485521928795095797728226786216585902679788138461847985334660127191546585807887506569513525183709006529038218817925861147023395638085183790685014076430911304754579714130580683241606478522306913617829446767823854876501021607973571739202739483582566305167679063569982475106856652021003124567797444220072311529317258435817273029913149121664846463817560574067486077375311354416679876931753487580708054035472580538029034981862157044665500617026944996890289679702993188477263335433466278469294254907546191783607562006302085544497905019036118188594499148105770800797929131442486840794183898661845614454009270616023994446911580942074175964238795408777910710155343005806346194900852033895242804064970329102642396189924874861115355005181730541886140344619937470722719716676507464204921600071690455948538460673973783403974335107101921016121879032169803605095425111725587530325737952820002126463540249140508734109725729387206740364655364920238890520077174540619837572848887937446180742063729661750036155330903780302395022914510401435040483104144410492253931146637084115974234555993964837944326741335332597118080216080943965157652294927609346371767785188990436589386921670404517468988020901853794766178040380738267895813108679202091725296522139366475736599490268794998245985326512816899688859782073176396039162554402803360889732193135728534807275673764451240871357825867902110904062938236169981053594273836358880221931157647630236078179162442265195926530964121491682630646633985215859011003550011105430076188463486370239870798067425524638391575492081404281970090038036111847901063648357497900198516321939989095857307043532342758966706562527030974841881803931388436978419218763254121433142555142908691709359006515413360992696189096124717935793017205362932397487901943549898453603217148225337981053942113324174927581237601593777987466290558984582376157158284891610873922126650188108144311711623202512465026712147330427613502368180433076152041832363608462855659013876589497187263529267430491727337336085337117034556188495746744532325069285655275345624524860648260624552413545755840326248354018887091692287263955106582179065727860996741725344440640986244350329815445085691835176482915456685107081378776266793438439394348085145420457653494501704344177156353921792368996509910098023768093055676650840696191832394530645250547616638188325396437788723941538143502944170112948156740020659639792271321851643354219286875509165407576326049582822621639818467969780206584546483085595441097386455914617612650516491533414227572212368057326805220017505526847963160130878397452850181549046581719694218528127243554233694404793092711192934934186544001205827325110953999805019722238395668043379257212954656843653055375480073463707405389510636908797278025701494135902562307342924102951013770521005672549944132489729568208196385724370427573921839207755972838264513741520581421915578562914547673186300543657499887312466055198076429486275754529623150847509717637229171915068380343235737967321558595132808973839724327039806043340794544716574568700124794854905929776392623627576268843438456008679538905385629241766863747263789499087346048144901898116302653123854579091806380238202258726042007846532966295579635130922639443965869616717530044483232311732944918270772334454196807745170471255208592159593481838326252169326199038182913261410447141117998275960885668882944024490726023255407601694750263518949810003446861803379654219317030970654183724861498532669281372427548519336354143696692931961449231718536879360477084249058579307892739170222590033531004782355517642324136121032342756803905887032201207621272364830619541111831005436244765687316442891533279333048110971669490741485891240690299579294635750775198180614413116913152478845030297179918611908155539869217004202953183374331211690449031205347682664951958299919480265522376133644769084814415578259253798363133580627180183527500982103267183623858945151076558247534522054651529369396456776575229908757920945762456649082829779071106407589949537187278017481481374181430808707224959433653907792360126793539118746588227678066404057230001734153037873360115312403713659651549077941183757309278388633293603477670214859822971691540189276947098652056891676659060031089061921626790782416171550013326599585613796534493673077509430373879957045884001302726666518059232141920973249961984520172796139303254114296272361715694092062992588764597231763228632098985409409768757820615098311402349439364071162558919620615224585872604930483025191251325213918635538004626284380063225410882856369957718042219401838248439325642974625195197960725510846230479242943568856726302288484269716700832344888316594498705138382846313182240728888943664641854249114236528681320314267443265708182034368586654746858176251592253234491858598803608481884171384324243299838649152286714901248964585514139044988785516464786585041275441497512791219708915483155259947996247332853314135146403627496185052824789803809133904987468906775996287082642095376300716362684914224976741793056850633288325070484157442101527918512064967245749552181262854220283245109393999264933497115830532483474331778578441549444489534509959717281945442716244746053879568599131564293256691179258338684710521906633522905323240469433295299309454772091757975953594878252276652273681282400970793090311344035116538810891363650491075429495535113202547748927337954901917630384313456341964284201725707276057699784993425988185306911813427865522770832095443908889170815309764754809082981743600859570844765044413499721420792862274227488419500141172600543657149528001355399093553683480301285852873121879046767206416103514699558838775443583080733850299130714558617269140082971193624296643147198129989962320737651462963802723482284348834795949708006189953732817051447112917911401633530828454118024571933189376886307047693145307007296384906331886710614162690292142477928945400186461252918342589777715567887825295800091610386121514188656241031374093337202769869766641932852153573014473800200835920910606072355420001779324019141685955579307551787115908640895329977615292155815675034355625204433640387838078842478680174253812456820957572121054650427633843311837737597925539358860750162816778814301453575023555974356298689288319005931053830376987938620008326666838259414433432722475270467381542394241315920510254078175338221593931195824760029732752754901179887605880213361712706494130194819455944612236771756440579866265961660079748039487111876898105989452282080908481862131139282174768378050635128716094174232536849211091092497820094653459110310986343521310200752048182538818000985038603783643473382277243938449964989944295000445339587149588817501119934868460164518545586440007199362631222004942036516713985345339248237551095604984543910371274750161659287720049543034429256504782818619638624050016248276744518096020954580347421674429400330866591370810936817640537374605270634234836971867499812496518265718817428484755414368952172618062089427223263568631793456793090436471004735392129277290790327423374520989134480672537790497837745703359171092202441698193583119369921568622372674526353475626551174162919490377914929805645715908895284885093106355424729199657704153497846388367726895967051023832805980166193495535048073650005138141885864154060842902718358699122153953600826282221735856378367279649584672658115041069233840426552165826900384892445180414316062590477849618260391413323447432755694968048166690878197363588392660264023641416966970163904065344826536822320385264759717878234839063808214414493048871616510661773677073622302372387577410338893863324626563673722264510572828103906222546363390731826963340030532289577555417471492931009730946208050052263286880619909389948635089300344778071864198667851086815361445059248685345407079026799244797789590078462854258298228947298915371065661078986932096929939138296655287098995112123699076890394911119644278449232619062073948137617292336971186719752249428461847060043974862006481348764279314518495901455061073263941856539446591725950224738063031016301181457633513760585544733111873501711984708700638345232865263621270215480238948070175434563750731359716925245806316560440877639138192906057545969070136206866509528993137465737732153279787120943707045020742967014709797613900119759132775106437972993175895829303219873229041363514254508372785757828975896215305254747669360452388105522933186471501117220365299648077514789563835427287697803128795641489434711404963826166390124081576017524025104689041210631393795806015472860359292549404423203883432563778703794107256433597550478619158545991225669438091227036196702642926325215893757095877875517327343426196918471979457740504124205275425955082446530824161221674021127366868899883399082639103234196754363129779607252380671553921803006424711244732815938092370350274531734751622252921621498654087783437034916252795060100442764428500813023227059941505131213962712787457640265176897396164722204870802064134370236318365550763576804612218839326002225456194640905981129392842079339804554979740357599123028788253118613643526019281880462145673100141486231822063209158585568361530986210817035056875779551883906978299999495051346393559646440908909668534901064580040394703025012231333829603596862482596324548120322063981566526186078364975555582165481685464872463034228142977243217249132250955636763391722327732327761014107489287729123506518627022841626685602761860257495319780934238660284514076862729482802826480772335799077361631085524382538418187010717483626836625317081889107645658977349238215354757116923914955732499026719965972292310314093681536980336057801693803763260037886160979321037547518288326513031267350289657332256298236521294243104938061120030930849497520021492877975916763068152834082841164977339624779309521327721122485643945120615172248702694459885490384105360207211294462175305280044922367540084258465982588924447686344725755536077654719789012801672558642471755060035516951350145188553404422091913663825278684320141695791648956032384611894527405716057935488339316126629184635306256708803905034955390099131133951304167210913679164429553997594573617377477476333511008410169260934058525002651855333001729941610705429604900857326604548650896205488841458570646312686253709316927168413260035074902481228742578400654261766242288693874790211879726948454468136385771012183407482404056419039538326301218003117085640067135165483527127951100705987895404963571378414716691869467094389795115335269475685923546459175996884321120027140897721750801202094334048981735694252696825926349576302446756663861017113944970082936646307865086367382090746111179997641816285241723354424577366491039118924503272365670482225170205352746305071138437980388313979670396573547271253829563635189188206047786585410634958358756861156935823003577868993264162334907725627844828795336000938546149913292206178104868687305373328100450423569041195940455867539698866309203654317745801549669793612855569955809817523596692819963706131606066645448999725636267479591749249376026482791089869455181200094276494251968255706897431794674385392262861350142933184827696258115887129306550936111199011706571809098074909751907390947104554034509716152117617513898107923397546238242418063916821999845477515493930772394946437501801122083624306765182839147352401954509040495873838069277935264622268301116483229958824233517542029193842808939031698661912277217434774043569835684639291406982541090947410828540414193145951754849913738971425441738565061170300865308358608641941060035761755271803820233733128953658099961495680693174857618765405598858995003930014584666670913669197018689200206821409890545140089980143147410926454743563812173369885792027999302700657799413964811437431551783737971612885752823284121547850242950071440002439802144927702645676165257870609088214038280623056246497230185208036682069037676151953182798549919195428436141645208197102977523897735955294146128994836126817076579937877933665323937724105222229626837210462938113707259276635374914849837743609408954514448179308666755335352009020391963285619375334003717296343125853619032061472073226876575552245549342409353707568085163380275836452387753418742442472266472105225083483912710479272403377384193933651299681211423025513493915264802898375147888124083289127198377855132105061702153908695199762688364292234548256204961128332648721847010625932981474870062720664592438028776965935598785633150106304787087976839105031163653605975904826393425634287332600648198214171495214163015189651882720935989503035740103554473953080417874461097818479210777321192209366259757820086482791366862501231461795030099668090688909861707216217171519866607110836665613991136389710697219257170096174283991760713817534416716441931008219278345619706602796514870650594039150769357599994698878480469176884474577962034925437323310580381824006542660935153923349706453364463892580962243063317770314660777273439694317044252569293631516690736629342121692672213276202437010949318420355282438474377130850632100677403366682181566020045346722868476475265570168697116189909944849400556743434687934705461501011461126679055033198890522219759877442079154694087255199010647080568161921408967329926350041183362650378829176566120296027015822127389386296402780645673346297557484006861964730759717696108594315259923810372454018847115974870353697533270438773540616598139736945923991324214534827149907535287728935135972073145627769496888454780622831560301213255796791535806710771046963528134495121953132522185228226908171995965170271456031279183985289132537723095419060349504031670083358596264213431753475552396332118683668219381202477104723152218249116297136329706020531808904123995391014685707381192788211872176680080208572734278868863475846121824698147483266097346292654423430769193696273804537480635786679498313418637331148314457599300581810668267790836874413882077927818872560184130782655340467149847337087509720378636596894445584788657867955865029032836437122203068036858731544371485033780813778313535637566923641822291873615239843486127321098605238233460401455647743099031048794902996691808942330124169131497627022535018404662197967677281810683826953436082454423269558111971932846335784357342386078713981332860138424467419514179595547789997414672624475277035267961949807385994713006727090301260319040595366944012528870643405648478973738470634427694026191211445506695995157631961242797124332331391156842869465665880695015088915280270849866783202755716739659911895111099816591228833495039453671950444585990780493199071420334171276570217000783478184913589128935058156855990927633038652707924445206274401200465724331875983120969618834746772400094808744327343608749235883835493668850628686406986205316179148768125863038208213961766610358403805312994587473638166795534624831843057220697363616200784920326845352803417264567574562555342105807580462658605118587602073925360444243834326444266104528825951160655373505929547563510203357607812323042162354178092737594999896920085768089660457472183610131573992047092053163935201521415101432637021169487161741161048724321307749524449286420044413577830597320075113794584722410168243187365806669507511071005548257249463013836926747783624932929008930512562980718094690476097999657135719345355384171013672844120724109016090059771690821790333587377787213844434358225602955642048621411141864268007062965290336591440407000768398319442489759429147145639116171305778276587617593281677151234853110065260256293784123637256288425709079779299620028165029215062034939587033874520985798697928682541658100486043997010696116593295991616396963821032903083122635122112636098241313934124602555588551250436433010617348325878751871598662953463993086114472424723664976374703016097999595651740579242453416542283924828592978950230090054837857594275469478742286865176716574949145105900076874284159304570450866572641488532146859499551635027229365158218484288990614836447415715467842944752010697899525499772024620201363700932006947698723104222511263566059168753498533442958900982344309281563936190328640054991169680385973621322686670291058330761594522432393563434894376382394265123580468277808899183391806461387791845796501004423073103904051900298268377938447835793501849798930229143137008481129434196664889723358947930708394766659238874005201030525505643771083062964846088780790234736058724342887579694290200657537967963416341239440670892413777751231774619195306915691308633577495763669315909535342192690895280275841097590488166905711750995855462555231692382378057957417671010261156494662642698852730682496628419573453670367322300582371223660689604944486000332143754142785673824858905629386418599680583574405507662749391925666477350632748213343536046905252150674484317030878448013359182602061364215666983682741588488357984377415485478882400731383943741693867366260961288574260414007526608227610781553656708286115810842716580607056921720942141583908212275224139152755013105671442490744399729386368981417400716868951505151852004215194687564258030005762228331905855986125747828551345155501081331000825155323757782702654011228314443138068745851050372764664809158515231926985593820817851251414033325373604458663991929456280637836332307077247639841910506613881313094154070155518484603385167742729087967734921878825664142379704467002639999540681719979859562523712682763236454742344409454182048786256132321190828679720533894183299460619643442551181437471450695372547865852929278036836591425789587311783239680699625064024744553496959436106154701979704442209652115018868930975407271357850873685062588827834013125651604030921423400413457343482559110872437875097598942889902892741487960528888481124328499046191467723946777112222547785965019797918684071015958027332865814276546422431784791221044554312237353285800121352290803019190484188203868658021445090734183059353304495789006247247804108840031367247652738242922321563895142812905680815352128890972102430855007549682492662346439784349558321817465408945507043572830312449156144455130630961286245220622908294544140783813891151971572943971348523247201229069295200775807749974060704511140487123155104146391665170691726829035855631134876312455300581603875594052084775090475606053632969839641204349139676664665271835961192573556033018109731200674264296426139539440487094475668823570123433049511025785213384487501871497795042335655660177945188565247755286129193155862497369884342963808550880689112951283274761519905265684199014903484198355744530822109502492367655999941044920623875522990643418339171599581240792065064189653205732482723396016469380024839780114757056977556583580997004149551893817838959731765264756160120679075819353927180407392114848913050548274352006380985884174301941276598722412095975726101384470772806271748480767254427305816108549272817399362752996699876499322105655153067062396855701144228926372000680445407608798462376509599831851121437701638512223009478936676971924795692573540441513885966336942286770624105464101425080812231859858020423151391246548480757179400248730750485569266997390127234431208723219894097155847924546287971718349957434178939603717724994709681181136906588301729977520042649363618709601939850321748788525612111531398532976011126883810842075194449306735392315773186336682621741195470828144491976725036027417785552594512954347298251070430225212880564723273706997197438130614136125899320771626913815931319351988290954318888443873717688736656415632966496547617758961743478616470208141666737271283927541387969806456750806726775304388924283109525159508186953382780730412713853171735996167956462905311121588022790709956349107984835527975480343547949645453106636505350965906506769057118429682223750722063798640383961002110310538060462394852834818253390093482714343416433353105554280938208374796376783599204470687749450533075309918964276780656591704937857726502417515064659104026895531611916924158241999134196892144123247098863413508660562932376516821629799581595217417443376698627911057332001661110442723891908246979479534028168499558604385592958157895680095288423733547613266689175767395449849954243764339120204457453834577824759321768561652227727812900721384692313177104032863978041057513205710012405145854568985518539739921227626684441237284122602697984887603631759417553210887183352576178648982158803617826456085890972698792104244269401831289721834379674017762766326291472315216310933995873286710224160071476743506593922422155150618137251713760024924010822036852740936063374114145117188508399351629400646610317572476194615779722759860461050400209068237464579186790660056291371104083517101467176092163729795907605159622539055225717019450893070274730071971149296781875903998504138332082793253526476340472264292233205230566489038993069604921782731037826058732969010505116295864174149740960467426655165672540953785765579404251346048685984982508820906616320598227572680642338931376020506759793129746621152494927191795792045015393338763475849309451460372839934348566119260146543631474044253802895780560743373604342466207557447589094977215979053943478558772156135242301771188483260026988988447657311744868668127898204062690668092383764615743809489453592995532470401106505467711649289984443058209700485110606235528766732200780310795345080403133219576580074811456785817829478600107295879329489691137455080312233609641764987419249924132413567284276148520739699195012915702448570383974281287344980404028595451797003894860602625214280149891865792902667891412112557953916095299773734137542004868288284804114253744786568759208391309568748289879993004631754108288825046847129119115179754281342719877569994110129090470836955039896396680489565590284707887656447517671385777962457761709205606382217583954879677829399100051655592910195377363642967587779382457900246174514774444412067191458722694617071025484066458845014447708044036520349649923138365474740509099148105426198220090187955859689243449020582795805744476176246695069269080814994813328174869049615062103636396957897695197123108346987517119022021813483653181762943611508872662911764012503887208123703890533065314647825970489556108790659973162453359999753928476504740560843223735510531714527177142506298692752958104691962467135822691048165645166867891013365958443021613641354516744124440619175312775147189904463448105847388584821165483935204157935986672083659919160183881660738100413578054937666970625547916964316718902953833336312209975975438250320547612032893647247930348087836976019628390122290062408285626683476707327178699555087892999048979258050520314431117579479346447527349853570302479013976239433309976483425033031237930483639367336331825207272999115958167338925629829397207812659167058528495435374096922147039423135959681606809813099090301848597425326343604530268448077439625326595918554327898169071472057846818283771644857989487379273372876220583842800058842794077836355224345770271257128057073299261912631994947795052700728747977540944307835586040707329754613271510329772298172846146406020467591087953666563023491036445964689376825612875901743839978976700301455919415097677021763151084518526413578903924004888484744657438467919532144402538823459819045826848248925605209272521574435243800883574357904556151534737689715903176376748142611274179227252269302990402156956043720043529730985953374669361587634797926655679850021048782907587410332113216604961781828641392273115735332128454153668428082971670608254058274950895560613098131366594996622799771368976071010088043772106337786595590352888320542894578932172419604875647322814348914106634279204946554198020776142465602615709651507388410330755359197561819310683301981634779466858738301197827682500824715685238133161809418775211908098366887411734159487274701471907304561830020770117972667051332297686278860960657713170368577250098824394832844802528001468981639712440844888460052697098685349133696713003684899400448889528336762845232062307181809161751091738270981360425371214783577604572586673673020441230805685921221811268394093421849053717657830161822370959674974707574035354128591829889401654192970514828144220747615248124053287794187482730218674989780730491556642275593362487278529274130478656783864704096623672190032291077886051548294487342086389776946388938022221768725800401687142717785700326614971555479104126560679605221194238311756729767467758009152342076541776808611711018495300135484939945471782289699158904368114973160820876308839009677462850620652914125930818020704542069254404778252715882490535995034758507319871170358985067166822807955826216107536605642946069594293579728025681546257922848699007097517525670889749368447727950772330710253645535723200249026160695333451475092040298933256363807816592219244633722245147522807502323750645301569407631608819586982925154820776456732857461775846508866378546759272439084929107628516851734196117803742675857457424760672554517660741241529842409417019076637096830108728839029014913700832075779733683512954104917233173664320687614913027763890189454972890468080304097567804955205717957888771358299305622385901888729008099343073929894536223455030647579196776805478895397741303185251784050315222857774016387079860240902383556069650950169757635851612758682038390021498455855315239179888563410686175284933208594323241452989872581971273282872367957972091991728341622321852293023952649801379067972761307077199488726059996877414691387575909445767199368026017478452396755225443703603699752483730470611745989489138239615750310386997841356795054162616740585368540053894243938009370962003207214179900649327541270930940219377447548690644304596085909448006202021195958710995326214590102183477520287562064950070273374896328942949634527402462769686709782130538236736760393419245738678319526162790754271115343888829737939007563589807713658339861805706944202304001691583875074738618991966334585609645466715584278674628090806917931841393784283642689749664442101480726174507241294474143334484489258247939680217245002615368371444888247771108598560516500888825240114893441080051175905642265863510714702657727438718873843241785761264793160940786943975291641583782464801365529064081965291340277629081619491518481611455557565595343602004133515730521082694256402903353462774062503565347314193098305316835683293554866768490866274565027415052006563122992244387183738946172687428323769135664349023542996113380605278201770486243669686621438917971504843300449523540152006748513628391703022753611424898530510131826528787149617417190387130758583499357771645200928074225700214034702761849831820124823551087590830382808389270710505093885773849570939145901326149903547599150646515037852554614781932842564361746094411441305379265111338056568404086970772096106988529263227951244468173123046570930625513464572378528469154837434662293858897273703836063212132456551659142740636086900210641774847210935559822751212447207726544395451361638007682968719839811695456561120658644106927670469874810554599459344509992355916657914134240538547750001214771332322661291974081425629494751301617373340184634824851645164324064123796455734830903452533394315845784444699185038518684948871307844748250099791891872864860390633916728902541745337195977442048687944136974430685142018176549486766104158115897618987175871871108076692913541941746688873396466854715737034957860263736793559566259018519081789051303284832720835557648510413432093332448647735214620858964513593648345807348449316676469164854759519714234874671256455399808884191292884249321760093072459082609322367166704213675595954483724847812688900836887995864804374716205595972333642688685018182258484316639473041580054251549405403340810160138341367275374386354381975738879238392208112349773449085404892682217218133938263958507789178904439188676342673636031817710819159472597860663395595727008899787435771770488827736921606953405663816172097964372373244719797676683669214755156568293431375055186567956882902626711875470452051591473989803695917593923186356814522495688198090910938505481556508593944521501514758087363335096340805256565406058469197201830190830232270148741131911735094694591695066395050688623277083690830432611286714564624990206816365325457479199925770307827850987613530750867554416320446955914432844970755047186376182289657781932332197745407877189806392610054806729318898720112102293200407315743984814002803385709394392409791813606522088114204583796972729843510485905573509006248322086542477279883066832702598988579536418242568612286640591180221236506895045926437604042506823662268856276437701933917419285534521001192447114681328230095955399369481182199824708820029483095561245612772680328259057066362454511042756739463239492085124538004641799371245219112290375575614155745130721049155421895343250157198800208308689466007088229888274870707740789708544773412295601064667530620618635580035270661114758857638963555799298637614951239898497365743040662727111153754979452032447050138176512278149533771065141886017411260161453535697629392312372777165598899704854669787263392415179394654691238910210703426217275154510948518200857276979160455780204875916232647486147738049427680903303247014925149651315180972893807113548468376210931974741278144563915211516326017829497462819168855158710034045329683818135614467720004204955364796388601678614511754232914076247612061527209833499816967889403365304864761332940697753829918329512625851136308578506362912396265917129930633295110233131914828894648154497617077674384183091173425784829996111049036498383587902793664069902270917478009934004637229092266592759355716655796184305076379805240212034094139497900023134228258627285727932014077839304498574423408476319877815951654426853209170690724856006000025934111271113114184211534595605058603414866100663841798272605021455898904246606939057003036326687898527913357097986025413231073326251163144067933364214937690203837289853691591584567314787621098461760725324502778885381113458086234622954397574518843854955297422089821876892105959194111522119788000659443188118079993112731139152372757639483277970287668437988861437415319532935520558696329512944103387190776059530766197327093853034746838730652559607699369474179376959067538566445411001588556795599384434166295036640009897662589950827146941267740321184858611354533969923922505186480804428423844322707981886878237044052012547438448553710643632194587718112682172238841569980945015175052066538021068820341431424735941383456523584609847072467995180264184820001824425231364889535969137473651316828270671195079555229384066373064324328776838050508238006968104551368962528891149413302124223819104304417766677799937210473421539049400534993355038020766756957203668569633416120928607864117303013103910760298883514969441877062212703714233859907593383875793236245884711975602916463234583949464574124712619868951075125701076774521925755167162599651811358620014487050578451335249728471998774949674873472579725502217103348988744398418041427777646315007004761270313053270221913580927985090899611901063873495976251463779443928117426410418328341835349714121368729388033965998708172584184425801018057522758481739547532661022439727191295850588285409176712358557300488291851851221736281253550835759550334414898523206605334839240762786348976797905404502446262424494369318784313587747089813972682695675638642906007696028079065523490363392527647832148293813610829983683818976785009891600905247798852502994281563829980094920153770164089521151810834129515979941274663055065999866387509715541540711188485241769442030066440306217287843764237167033843961170494575079053516151683212132803667748831342599775241444604393300755307320706984244780585111505921018906717567429550472942718185749038206643788865953615384157944731662773235684501509885605446866186208022214408399856178206445667530175091615400040783143851092190440126386765376937766388730092005519816579346691815284089053723918329469515770970159930746347768765640713666317139350644397479017117154106903048556089489719006051136225345025926206689395682941930826800164441966347970364686722240651941671744872549957837994957072236834841042219447973297681996107305671317185224649147571260509407834168011895690318718204173454803029094762809822674025268594197870254142971835067948481419448311551750913989460558075072590464353530054537579051655427278240307740643887416745474802493912401047076099605859375065154287847742780248293807345987132589373792860679511535205450559278632558186443312190184799132311015377609466498182019664818795581807444286426786999232239023529221376362823993071327108129327346594872887179644992089667986008015332335959014140053356937939686273207036871652235005887920846988239425765800840584619991592706416813326233026097835899188911398716416930804164340078433472640618656509979380613220654907548511827306920844983701638860533932097528141348530520644981341343073847013002248560711107777616014586505179070313602662407461265650302273849658696828427557409972351371217308581726632676123023187891214487770861820104560613349857030436195914062841957873557549649515498756830479203779905930244516865323217338878305873071136356381991623558121581213031057875611719518066718822399742638294203020397451362710694498524202130202525767482301959608731054492203899919749042062771350351919560254419725638376438548954334202118241396461879418508732870224810628134236580869020545979618629714564264455321713273050923404280387932501020942707955885408709983142240705375561802298794823717026220982068725230222043866627084054501003157830442582243029664551355912129853859283174453745373719038827796110077547066681318533394153271345002702495527467935383212810695541710818828523919985431481430931508122770540039539301387510658700956357367638706093233702954352048290248987973724937945612121431370453233768922830038659230324811607811505531815733703807709868292302854693376015593478273186440355465750178480619880864641273456267446708194919820216321397684421590406727074971980400821518535293476567125182353921006841133095787785469825148998989533191050729318902833522464753996099383935564776259645246505161490282088013535010401949053501376478299804512132977445904482989934669791787699743182989402095025383138134089491930249520334876480754941540846403033209870443211363183747810354611818400155419915226572871466416271590303495866728926030386492474612267808716498533452583141620516918461785533261373408522489053439937554105462925539798694156556311064901178898804548667437082238650198356687395411359224378165308288958994766487032203437594586539955054088801064454239060135169719481622094607792564507402329954340715985612025850834800905379203392012631053528918652862623788075439306437222161102678339734540437692721015262943306514135020666165627809264476597879505274486252337435328246523690340024410991274032656613020988108999546889381219144991530152725482867852100937068041372947192507844867241144318209449457909833336567060023515617915472169374214263877386098147711384398177106705176566384345161487087830490757282449256620516125450132386650766663993574866515956540187879974129743840534125704352926107360036260563018951293432069353164387847099679052678854063955302046952863944158864205439969043742788272170077225880499796446064171288081020213708544573867808154495640737522094843346020114945582543318428730425748329176286750729398291366777979809952753328641900325569466102978176467986700929615095511892476696269518754640977163332888446617020626794627958204256111674782755809910564458704931366849442910557378907985052277324403170001958475447560564783582724461979179481671753877762211837195037324400486720809187316792747854195987831563242648469537512141800862718845610740368684481643180605339634538142947286424467340849164338221116054556035986491878308680240217831822108548243519422191407522986871149426975252981887715898958644315172339366490625668009459389578703057972702928962934475113416426491785153046742874787027942517815806212034855741879431204947683445745969932485656871589936398716503627527272397209385506485364261745210702808446965009730262664387228585656252734183571364157475603000150767415307130082188843137547364535343261685272402263254007565280360180793808096554865094697999285928064934579959196100948600267028382016973884479218324281119694576267158991851419538240792899809276883800068921353618192555931758362019229021765641055804849910353523982297929320382820421844373076248304558814300108415784994903573024623188330985931330372020586433856073017218741900250340893899098334009462624229378525000923266309824482464797126302648764502570173822590961198557467228423916198642995265217736918034772366841980386064702932398758792170549153033249720934110073397346423305987761401577941355481095591378970063837063907904319119737587099689528329076110852977974719169569480782507281961325463051942011861356575621506506436074580649579430287282692908058602180148525675670768702890362645755722496093864262669409186697608549177946927684341201592967267415143233392215039727609780898535948719010359544130620780061800341245221920762798425127070319642676667651595880255221317169674895767431599335189291247681599847545380704248748667095303205088502512267574482784957206270839036904201835805209044884383817507694464856653982288246849413074532150574761423815436326914240031546303335905532812198900126042572558190292488060851157235457554149555633376163636350367779122291472672126440593984472712543131432490984498219825633795778839507207700174155331690107752524390925943781675824440600586809341594875155402139424892164976228335364704848427954636621196507748786984612201843959348234218745508194998526693291893758763413373557489816814667989972839385826860485224286315335074103007704813301891238335917034191014460494342946076625500305493250747226810748728883297841077568633252295126611087603127863663099301423999905151432576207657650757890646796992650757253253304344488497568089298594131576989875872154370177442319749707709498146312356651228367100352731681233183615696258572390953463933636324523896289491519913636517135997015824196724279830574568262030156941907283165550577763210877144163348601836984289761429865336477243965430540387921513915445197288853306576003227003548114855523060101514705743509140470199401274447258875503852051858839045649309060002496535009073261247580163395288145561930336468911416742819129425807657348651781233090280695984234549381241317707437351676141378085631244702213416050647416097611158561476067883030684109383837435154996627929816788232342453464035297817194369257043267935989409965490304005726041499513806961896301650499900844710752946486715246957342345036795143689328226092269229206450993857530615503520540808912945283653169710924792210660016417756579395933439167813861300980884526329807000552628501210124473738236674726444719941793703890251572107242310635386206275838905480277431486288937363589386348163158157215062136662139638782564037519065076111720187723867459655314876166543913763222299563448537456303576285915686565783067687696136276669749017500815094403023290821126778286287117257683954362301214536774936077990413226783790883607992901119489023040525414256625971257900467118503024492838275684016514113117844351789361964812411625020911728833709155224992338368974652280948588060773409396891643411380906360854508305626055834495730355231482057151521055336472575933372766147003952954249790145988390230290460017519822063206270613403885323807460735509405922992954613303488144164452827346936011820256252096187018208382794169932439966052958294558311101881932245184664315372859091319871856589691048351727895952467074106065279291259843778010239651309121766785840243317440408079866258324106960935004001248172134076629643778608629731384489388722585573312525490395864491595639037855870774585260948949275994834479302373726161242385370713058306695581881823087481753333966137130313959867377885447783527565114453925790470268667694238667589696383584261403925063568839611094744240284605196760512937963191685071907950455954647699643281503075897857737937020660741169789767011224353649966763792242305969333993972698941005219287711352558499890614616178845700556536517093827782072792760882385825247344584043211904251611879210803296880585729789292640589846958496763679057868508118661263606698255569377342765613191219012918218163688989124113135035700377216894727866422613236280231153809566114567495677425484998180496342911041165731189357963208712677467946636116568895685828849967455239202142059642514372959342884159405629130726723268964530809741469743767449343198180443248480213719505651840104461805337426045029829363972257510642681939928313525564360587272783630081417987660078836408885018564722807192645659785718298307750673556049000508384871250952050203212680310917855964982821502834008121428536523481493838259375187836371493166009742796896382856845193072193728651719682465220082233468938199227660075670790583318093295265896976127139880199704924105034759501658510682464653788340241754674815999318139919462976447665493249523050276757535211368014534493153689279296598825396931570637214837487733238815073200743287844042779868269352054366850706125779725311757707351979912096184173548946759701506052698503645569830046107743839547632884087146290759225361590789728055247572424076030731627502148966128314421095084905592134459247034258666911216520105581392215357624114470487767780476433466796355688460392427624261960243093701685490772273878738012911082880395704354267890368161049259403412259923536016206828078899341645099552939079868585644696716911141197260018839381609890350894749425973017902308138580505246862066295369008801274258441990939855844941478187087148800989173770933450065055216479274738251318489039199006516001532690345701209773369078914319040458562241222037080953690247343272995490540511057120530479966843988470399278774442556170877622426749935377859541858714892025428204600028368611209470315307553020506882451233842785490422809067294813637461281693244248071216762668483405690724433578987930667308451592217520176163759578888705184115644740191197667031644923393462213214959277069543534944099360054352248077960357750855728676339744892192233732547529106933622284876187800146417493470976241558095898160203560893392348302810877513651732369305116295211269491789848925691557153432189040976612145198793185826061670566494050759720049234741665352613757566908048599174550229418349254680633060934348672963913536469287362760378046483500387812546422643436284788101693797208244484154957988380180513941596712334898960894999555151853842883305364513267808513508848753484276080475868889589978249185520078330753429463021996563889012179557088450877365658208167756403481275765886665864220679561953931690884477684562936944272855161642651795255751574472685293356432266416494745027773896246543062331268050367109398318010093915443466871086151213671974834486753889489156170211892109556842858349731232818798811180034561981977393704880056605766944747193691117358701786105487451382125685939518026120696683870386619979886705496650883573964840620874578283935680747837217312620013202084166639493554883820142868210984862000901579766393993482888104101075310581065187132723656339176463027029218642536614839437217233363908060964992630629965604913955103417958333713414847333146539158399538214547270642342927477157475582227579020860633819947325660000682539646977280088496826542673224658749100130380828799792098830651614665237517528380004976904480992336642136726117709958796593832123501874632848650473239864907853833872517184757280649960518192555096625213254719879445959184123763053122710228672989940826013733696646157851237727153633571584382978974591564321984997540645727318165219002688782972093488020507966461097827035947128670648453822252360778112515252640139391998602791998341539419394625392036770993483537561444443198908721552122635466737312922902335632773920108851384951577168496681577580767666192081617673409461314313507223365594302514444462497710796419982208654327245264618758584393269912244279030720032042012979445765651266281276498518708099546087429650825709069348867626357272784352688540538667321870099226896290872469645893657310067060216257388726886974613427284015095811434518445393226228611095489286293310515978032328255210509686706418477461015496134239509401982188672110654866752746923545636779293693034939768506027043315099633246108345464809903720428109248644423889604177609676550527806662187264485607354352138429556562005557854023927576893960209829668407812838104028582613830862094692528254139469247542458828013767679196302396536051556114007531800706771508059198698041799095636720391913347653033935948811427857702521656898185496120008224446650511712943360847075307570091315897575213954418938474539803892908219747548421383710097884573979363714002377728324003556494920403575157811907054016228554208852785989138751222394903173965105034578535547410452025288842985162827383389277553071427153921289626742084736076831597605726055348417207014107972351096448730084406464454150755457775173803249669884010422064474384644378855687851197871353349405946621514957679750860247075596970639877524075081200294442558951781636178272161433222544223814137897732828014029948602937325852523399900868927340717588428924375609141674767312519113397876289875093845172801930179756045509834248207283907439680642676052124572136646102290061736538006928139438473318876611400318227276999847987842523854182109717074251240817518372704727600250443618399446046510629114113588612398382344165240967222642111021155953965335016770892178223139404857126826806873489427649792360974950252131236502797932598946338211425331245511233009937873806503231880781822351939389333486348430044976639261577280295518606560000963218533913505768126793405406253662332915192974291643223121095752354850017312513350680388261284023994992922764673244692168418123122504568958630456583669745272113328566434650634905093464781226370647028294526280067869805673156730823714880535506093570076290403334147887449376487778945525735004237755236536212653695071282151387946141416599978152532402287971495197869795774973692267428379875605824995472486869866730898470151778193899133506634928678589245143442131176827173117055162620158422196674654263948238070999661419416175495467616532275770249026538869085827669470581308718158914103362909274277441039207708875704266654903924099870682844828396377845798338634214806394772519283615348049432253643796345958480045653204811896618387821509666297252275145903083568957961492363973562694383087474020104857763108594324356667224931123411539745669912368547515630620619316818148872634396788471992605034690860265615327071330844757109868634370269004035018630815499552499755250083739919322754866006940271727704537652079295437622630209280711817103099841744853843463743000248606320040171590670983658850378637513728389510660592096712016449829390756376403990065962451390790632110540987246673869526385123682544509879427297337394695677321201857008982168035587904775261078967990549490736553890009119129619914722150125648284945787081711983374908123945032302983717953704581692940666273508634569418316662535298085812884656821932748595763523298234513570243234756362400947020723311421292845841320946995220337541069469176152798361095248519607042328631770387957691770757295278137166563052595528126589480536357514159270618878818802257448901827784223940256720005661351303161034035280262931942335792269330172443969680919506835512827902315549458627267178891060092324124036609927265945447373662127028707903934553279822214126841575854537690762803228245681943460276348111698330145695593906517833831441852929070929851766396701366012557669767573004244167097445547820653461608766614705211028184395947973150468846097764227351122179374784525700112820534813816092823337039269806925424488285165856574926523041111530515854754737746976364094160557671506266576675684524034706863752409231195408944831454478324903294428315207949796504707288154143908442711718301852943447068185415585887677481146363592731746447716713405002449472765771162967610118143120918795851294242055758066748325293036512074715823554439200702061781550409762820933988458102292008580175983519345364204583954911923192079982953855431547886822679759633444214291766926010936589830451621303773903796242457495047429230448202698599120997078385675216588441269104005113251043055373166900268908439583914985386492376735556096877345216246218844911909569251113089207826584574263239511479596257700046509202439717593875491471274847838183013729626054611514502460269247386409317192943833316007077055284247441784773797734891644717820793443741875912877679212598398697809244954146354828776499438497880076207227171128630301177772560704558496038852167304730983794693564141381260353474301243023959213028943765008967955048483407663156971958158735725616844920597955786415318188874088633784272907552219048891341733419107232931751960776141616687112677816810403039772157676052301311337332551501389589700565961310386579520037982210466850181425215222554194478689176356338994205684286073540248399039783570116804105996649285080733750182404137027679504484863008551610902161395928528943399769538506315604011751030288916671079074211375019513755367829619351603585640374153449057113596432136079341512053365526782963230906723482567666631170362829859944213209697813970260270983355754855175663556666161853561590038559224031800121232277092874350470986527686515724938345269914136694322415443280232423331071016213452042618131254256974643456038449872808895711119031939842746714917823621924054788947994660020975661099402722515948492709922242995217697541410757328930654925367575310988294485632258342286026681281720595393046843561809537531213755931360058009112105035318425552028464733647573002248385208632201303042222701783856695887827540094147868495183328868760344759458221760015335338879088275839430097887079838159379756408352549536560266117275745952969977606892544101484761949788505684923785157583343746047394952406799246043246529288817754633493868220880526527607408804112358105159226952970743714899528292852755947893678128252532831851743857466712732747397451897873279601059127233419672990153861729161520183725346050944447090071768387038357797947103391705275521570828779252362572710196618651963969509233876793427504926166157474027420408594622686577042061738599786637263901902091148785443892084543259816945856198595462872756634691994016662247009159957326715429977422857727272486062046635171758004885516067787222691488880128707893850509889132831739130224344547427479835563939472548997852727061218606876536350433240011165688754452729591307812630174042688744237894474116636888277942554961649539917864771543770782554796308671826028393153217524787075691599682674405152283074807546437020429199686307339610769968283116089886094823196192004673674193924297866198972230686242925467059879240484322299502479692705175800062486947490331943313207265530375982214784974318832267808572432647627047168949272649172492079813857471716463698340041004140904672008552707093170790601414676950241967742781793840794341894659109711721577200596091478643509929042026321553359452190248412781506591608000890519994148185550429636090603454302761545080715753020163558081632381067443426515083252543627031941069190614232014586145785467698252176281824832045997298670136337329145605089997000150590568683321361137066192025192466503320105060079701723021317251734787855758190535757922056892288654050009149606658838173271957455238890977740395492836465129611219640086917795842455895029699638526459215068361024374956896493667811750772563777875688755786171174071489726886323297582842846980451565019511707824049637650227183215470733715078054498725465117069310625290126227774507095561274236481972868336640584796568347182333734596681791222340177911381006738760943557308862385030648312501615804999127519245739175944867253906036009139763739173549671421934093802662294513909239566604169434756943014993489605302088002388051065712709718212652689772397672163974758120081315326451008714241950405791832479410606633898318485948502482221056400008784240158148723019453885324947766830059989153130288192126936849174422706052138514645395044537346208345898302804024354387150852249503547373782886126339614019867065580813129362654254736024806085560402038149081884554204547821034931967898028722087941506396850972798322286752329331281633630199614298517355435993786636778480507042697094604454356145774840844691374068443429517798534524818257627900693769392656308262874641513155104681052191290860065506245565720497949469502855126273118408070928463645428598928435678299327908152469820025236366088451453706095041462371357458013195723703527111342404284855600350745928538286594833543518936172134272505273727928634417482909283755034337214975890846324971722736628320350154091956339788468076403403555422662092798551383441945470970689876609756922490190592763398850437067981064020759138885965350209008867433350414229595610445924858127658728406946314297122848334785297965711635698669144733506577775563294206907737092658682840872629492047964686928622004083350038860264110474789195619176091763376440908757642949888913802406168807277405689518858306657128353932963507924033287715164661190068968854722619375478011880583383896618818072046453847775042394441045854959607263779707700141854710746722677059493626579569260183307475309369988691410629523630475116570411188181190019482563630849714305270335010134392603120039528598162565843670236024702083167041035405893649910163064425107222235195720132315028949528032172827012852874372635800877971830456003146132955159856698208489654459864893529259625993340415989012466501948972547038109554991472797415132647003260177486683590712431076197607982324514079187410661452166886112816137731305085910452653392793294799502351773640471735111113454330576769370696982745412905298613909994147907718572635827865480540232542264033050838801180245030458175972021078381062469439126557340835844426629221389159067455586329034700380909924026424297785493650119837755803538487324237755261294676205936884023160905455219356509347746837558755185545115032546176550771745986255811390690078158919198724222677215034029716589488945078887861152172565226866446107191470331691038464098533428087471968784008445126290495445131649437658155325561176629157287242702380188046408224973744211363844290664513662615105608674235012594073457034696277408717309792447009826434919673979065059436924713291755336165922970547997116755223708630559330900620883521795784790906577407782324301820819484737213524841022973871182161637265623829576866338694504726950570161650527592504169789865026447618977458344246610669653420525505210737098960782889472726666632784177065032983367513513280227207170724343951456552380092453507936084294876478889934441285613517759579020579961049712235957919922042280553425448724028010268905655420985603933981948334795369287385694206723306625269643805945980050538315034630681643887171601323141752566275538921579229705546095182991405902010662483374832526568554474292733660550291947877657369731653336803026720403141210137810477169864687376279084476724701936543802056326473570351313125175500890438905216898276370571543592314772459950782701368540238062197649548969863867919947360059803425246569601931355719833573595374170991695431656697157256318572318484241350644073109107456260646816061544215578287993013532404189923677646770279897978622623325382750845763944298399173939315201588588335138110925806437535433121984808099631188758123746990636634117044973188722828742884526122043730164648467097802093807316075660512977290989735475185199320761325103166661181428342035013192167417061995752857977522252915554923958915711691276213948222202052557511485206459638541902460049836296631486640252829087571718925030483878335844231389917835117723264983202301594408430164749136554749350521017216604874726244020195762817556061643927096842932721508977425386969598575815644718139301754982940376113868223264065881846991746856720904724536192995017667422320270259979234895374117806737836309657490629844919693463393304790149213390120748510734371448370595037746037880162245053634012835017379754157327725379258523347542781726136122417114975183768995908473963154942142762529076964070210595738720978191675400589000705278445602936683851297276689853717324662853992005753312157660497883041922208617869656239715556805409837073231701235535096028493904647615343706209513945900072769334215086707571244833205933622769410438586561089082705872263041002565954481594953273599753367349362161325468687067195962594354697054906828130086519069393503234056963335055118984854624253682123460081685909258062878604087856656395954223815333377803943226892767369691779060364049474970739615225576727214134834680462411743623225387022741601792374875262277796657608374647741390414612130318482199853703456925880929495824713283679230069128400991709065606922276576136075408243507044511192865388384926708880373935704409191594126265794693483250538322046242257587646452560431841030575688777373704371483918985774036233839406424410435920487137338786605812219683156886627418484042345151891419991456987071433862523050140526714384208372614424706299329893647282890217618635185268016070350130437796430700028031641902241155927464910039819843715760297293790707649195041211766012373711816961050908252597767525411676792614850460839949554778985335407391112218468791893000725089759032749719089791575240571163188610189338278219976258216081396467112094832797632938923612780755308631606317016687876889335922411569627541560634966704133047420006409737707924733726617469579716846876303093472560937556224119133609600961712716946319698088509212175504727588808882272483733391791547967297989941475330093034286532236855152081871263205262166993364376585818675567605947039298502461093260149760409680951194737816643858785372872017959064418936976749242076244406343436782065131157192441360992904423999417597675042510209202524245417800635911753945946036800621654479367693841145846283642909606686407761203302083449592423370648503652115730861812814373616022746272659080850619676949987581760931047826563408084897158777461301321087829721680933980280390771605180176484100328782669515658706559487247468031284317192633501452807984845570054903903821185888328621646761880656007859541624614957584313541451123444564133651567911680976672718884280854891227858396220669467982581528233609062760494459281218685857588687112914073560457217405961155073027355623348379424493409532078189613716444174966510019423878776191913177663974760476248921573734545006712518958926341871949903965573284507938267055585429891642497124829041445432109677054840117986282337030718570383147653584738732223078841262192546113777199371152369629441944810199759391364745939369980961011854540355806694269069512026093062088843165040862293233902733196647472236158125743341633901583962289196060136037903302395026045900861753411298785781070226194006232704825216642015390718051694346384913938732259879910991119224191986516649509800045511225483737850089275104218280342899380011830285511398599598091920518901997841980375158844330652152295837879466046502294562104455002964527680882347159769595101373909262485194105435095734484349458406374385180910389320752919549751249971297078330570824382688017087451977678872405239924309380750720511859453746793182446223741093044220839010632284135214251012347022658392167282773731445867389514812823379165898073826309825119905668787128130442674869041689675906713887265233474259148268802992243358534766688103909065993285585990701575315973571608230593615480109695273252596535852640369861717498940007820393029058438818665459421754210840916832207557409466475979554050455946243610607489100375661136613870503025128332659218418921270115047981719744319651357953530065541066894471370703039077254649035953049454394966950749623724847374730603813359535597955290558416256241767760884023955412713240531131353498080503187816568930485304726258251431449709154944432988115545532807023076438924238023723986040253083369824492102374304320588252266506691670063885802661845606524979006382716013064685204624004284828748418340279737720632741617829575459002978112522618146171882482468497050137599566775732271142579119929290192646044997639949982679911201644673698647641614044501828045761269574950441104340412857973789994248436542686183316677941659168342507745135645380283311814792242294281918049713968162487212975090968370880375909058678583468557513225073987180429383487447256110016740934651256977445269589765779574514834483607619738336801987143893320051956581143348679372658660625714753559796146038279052815055802086363102059864883457382733097321466121346243709378378459513090780514673035724157708800308563636320454040237746736822463167152484519552143914327844259849038022042634810710992751596377673946285506200593361964555999357167675070736454639101475259847215494845038445417855849160360733340065106910528695360358260604233287822861895655619333164436019505179262883377354799761456297033622569919554702647276450804540747510150203021720837377141997131916484885115279356273097196815558972203281446569279309534055109546676712516603059262934970908994489682263273499368113932804688285272089415009383604647374672377284376491554241171945986269117746797485322115214106011905819511993930739712658019547177344015874563535702230701095102113160233560234399727530471968367701075558588848750653150578331614008871847468269321261586674831802761324307373673623620882429870807252669400965685993603729478270457316853348811610497119538457432873540443582788155055066395305720253933944946253756877754065059284459658301372245059059410591656999609969342859777298254673761594477829665700482443219846229204848432861485435778451134227351968075332792051152581806714470187594705999112074154377410912195681647270510490293760210087033006618557109520045332066697524980982412843574342346463709815408685556666043544512642118170413803323919747712770753065511391207762264944913797403829893463739159654822562935098224875206533496179281322328732825844391968280819534440568068389085508965721977435599430050119392659177280735692871013757912121564979758281490316617858917015073637523197362178653217382711988121647272741100900578296945835522246308241491926395533532139548680392359323986286488448660812039582427875016278830473455471560206327687274113002659989440316289762114711798446073870734969022941836606556270098446795815520640012974025845889684418303178543560711432934626289103651416056830730914602835017065946673417138699338729552349745198874664682940047046816991337244321477124462448877886840752764056119121115385414301240988975232559653478940636273056806238935163152495598275746642761581670895385700731442850460039554465949238996634061584199419229354058696001047700209796034445268086283963148263818739920231771350106615678566764943743949791528143990229748167412948134509370837144360548367897149036608476484329063313879892872691732151343387461658295901867180391283418639521297634016275444498012416830412106584816771584719269153918214466202948118669252181293570419939112788376567048330391023079021789436053866380187882623910393740946866779674412411670578897146859996922651910642794080760034265264283068763456555127942215656279824154758882615656053285125800899318470478121046015589546699482102981591996306334957516499097551805778386928250775825346322712138614370411870397395963592332383836119330681626607936203628210672858315001496495899633272811512051407670311255285888026924241636385142344128787356432563430188909658004072769981386391691194468328181956522575142723014267705764928616106671766462255010925088072437077648598228098288636351870051705263608278632943551519697176004709127357133200284737496457965506526180582354097090649011578271998839445683986872109699393694090027394886757601851112680828265086640709547487062214040008272511506193061182206385197439320806253043205046352422777517654389265427094855721698294042239860755226499280833097436684552114114407277438295680492457258592990028874194179720921004116113018234912038412925339459286033476322699254455185255191012806730389541219302464871503317808594287067895635806153347370057608781946763290482297380030137160138974840112217037606060941254146776573647667862679589041019295735081380724702633826727764519565133042828002682377066593517778502129402273927388938350591270842398044876735436715794347430540720874313266465824184075537472176475632613611489070784117789035814450020480123837201640291964256244537277839274738041265200211318530612900945083114379226205914495262292801856515144378963963223329238122924210385375309783041005133258119345916854824430832391530293568560321540541133400276113396810735331846900122345567590157826461515910032370027753170604062172815515975908501584433363763128398072992079645759666948509573046408399499947715188384529417186685676955598705934640744252835261885293121254967562762582944475414088188216470732320541178668517038672866747750167755367925761789972404345531203786572227871712251957089415500191276562041548217508683426152058456743864856513756518429488899333350367757983141207761941073838071342705719405172293787079365269470787675365119258987227206748088639942831076660907580076498962572640652936888504392061175905321398815707706674833710762506991422272174565768719728607242110530212925547770558628071050451202961900277447201650895187093870076548246353323450104597291345521433771388328112031235246854924948289242015629849397937805611837095518137487615137335850517052578942552720206471724796660113421953300352027918024702657619431535807330632435049879874640594274334167754875129191152008400274978246561457543211712020976972157201522493514986355368557998229144923049629644598158551035389766870883630102154505527203587351842284141727694007581715415593416919317766917659941525866694809740146463359930419458805345662228740564711675972726404972776890939774115422909732617655601188425583881230847392358707239022390821099789377540974766794407227100588660285331792156664724648231627577730129199400344542954741501639280802634795833355307902927852992224318671368482257579211394839048905666198660157984405407656212636845265788107278642318284301712263014640159365256512185174588922923885270265602323719940217473418433734311069904612617648686900390625117905152956202201830863467253055581900775015893165910787077403511625276307735330116777153946755493395200029247118375405823386799502190447888960313056112979265829916778361285337591303297137472680521804823220759523305721224935786406490592287862410185721221423354502705056207913222518714721461346032540433700763499264325749403491485559786668304975553148003472661662666806679822323660763648555197981717726269713814808557467180497164402088148526214682143295438085790561618912729200667916193503793881647027067569786008536196216461943992420769344857861260623766354917970165498905220819516757367448960685498413863628928682229933248378316253145927561790931749325354137443489175393845696926571228332316656846000641887728554570773006414787437060438931592603163903031001087729881037621943070312848712901814081927155164133552792543270940409537961367579990042996495511044455300406199864395014488007011451400372316891402287554077133194918814604384037352975804335596588651128146128908245580834216220727887414804318017119169897918246829432968123708851772240701849953904367673203591269530575153503060713548717896511385838098068982416356106829220403656779322065524717834707976912596995276147564020372158382522025889143723373412630849081874207053608889081053468192958601734056359696234504142988450652715225607867144122753903488666059704683790350316699996930948738821352215575888098090661598123133314757646589345441971721402255186313759796033869432075062857070164709439854529169017807367097219803826804450130791448916370295864481845978687825909529337920028377029306501208207500830414296402350446624026682208560661633040729011876161202945683370226526849095162544155557922371373731372122261423605081761990591813497514692149200165038918512383694112763014082364730013596727831258450708785562235901819422409327750517949117678969957384986622661511835300170560351095728689534404600938008142255384502152096034192645701583700698602537000712297841192779554280133612278196369030981509941228400231202589850344990777880890509977801010072186094376865300210068123904978522039567234875380431788616229387397944668200486787653164315472141567674230998067902942014354766558784137670820453533973035040384873308782583026582784877381929084292559132807700851467133596933681089495834644280322701991496882274745026617996593561243547644123099879082634046304699814330467940588190244558124318140180628863485657624210630310144988747223033799254422584799456366875709037054077549912057380349988425834402861281058986064945688146722536398909151696686908942206379503327729285630142570855644982014799234742010560643556340824398720323421922472406368591407264879512325207385584027987330304478700075022057717606888202345786569321583452330413490004144386422945359820473830127333365434728782715446060246490457850137259183694137808982179776377698171923725360444023219054434471905635705249740761032667244117142698473821004906741275797546781491091180985003004691844655713342900746484866562962429668355537782183739736554250360747942209347458939360564709774840824581509568533801694706443860527257873316675556363102644652004381121588632011283177798057556480501314310835081354181214462265565637503734266593147334258904570909816032725285182767339661742932514063557307971812563666684579261468253280078022176460351009861398186178348962288889619452516207750459906332889354020649515405912054028378923179679740830174272120020156059033181061516733680151210891881843272516327008367725409490965681751915560377315631856397296698977967813704432196905449084403098249550390244031283671327039866209260761147034777524949705199310693916185004606180107420901904326518863363702781494138546672839681282516269828014068050714587478328850881008415285351892390065723921644038194345559942239841399506182381578919423309005152391302954429234908035767587951925847808243715982405453187013908805597346518989228902127415562626331504309252620878866887939436858644619605659775862362211808937043771823752233615059625915777057409069810182220134944157324700924522014587258518666232051529272047955608789345815369871187381985299311508356157714974187290353430763638353643436070379526991412873823054484609678198649305925737585432208137213395510401215798471939329718025045169622688193377062552622533309127190991478908489680104533834414407296819684768292017093789337144303171736896062630265370791462369819749869504719897192008883074989142643216058761084505562281164159888097184832477770295573430334482440196025329869058325235319660168825936826851071362119119534774716364086226728348145734471383694132853257204230623726670428243587807371855623281939312159227001793340795897128853761273407918041524015841373967273729786746289913298383708822250282400341901038426050967023762245452751573838085752895721638060516828540572459066274922875669101462172490477750740646657854343475131890416089976903819637284839805791083156666382322227989075643556240335374466133343435619410864432603667341246417623208901841179551098847103130776551600463707284269605906847611238105794273214712852708159836717521358202885619907766169662400283876648072879506958146500993828767353242775655791292251768164815389824076839298914977419910577397529475519038280486689293491259882148057421097268391381952599611789773499592827973301782134552529954478905971269461536665629095874374803735236012401097443395477054802365607759039298282573035652484576122313609107733711655311952366259782679990130620172445216547826274005615997259770581634625087238534511996382543226059472629626830378358538982260035493254881652472706005444002662665789089852787394252886871209152236492939172277491742545875473159999736965071895530344727712318220510775557262653897033473813346080951905474592399599817451276430974085186470316741592203836113229164444740474725332268330602018249033648723772417123489493550048577285426117666211508997040447972789199894559078645716406550523036364826147532363177836498725575764728892352750311769723851440600356509208985683492926038240981212243603500345388491534923093914345234239297386546905029117136510861996488630340437386520220821955324223808697674511405388076262548067256400457468859204191250806784832289686120876737092893345398274681835315027982369608415531492588394662969092810719467775858727477076265263376855424647308554788404221303750629909418708830622038007772861777656728031557851794534916698210537326705311429424542668691861822573250587336913694837303098311197583439316806937771086796781027619287872841340973900197297952901431788383106534926146756867698436633518425926422345991575492968537166940020470538737466747859301179928407509546931673683808359695019413547180534040406368834996581624044602240599888111108795045891743123664839203965867182897303069454991108760405972522455210368606101447587765209767775317537326652189517165532136862270351081176684469139073758335199623657233149050389959506305484430601306430898161275637621933067596089802942534699763301679588435298750899161004526863280255253767611464493943331450589221029319609770921989271720202962525072533139771879778736705215981701385342600447533757355493791808813126754897504098665547911971903626853930000811012395612079101354730323571183507924772181658980339480755923474922910129702566135792017706790614869324516346091465111958970002076379577428120670695422529615192293379580152256066091279403519168241225350702686703849575901544379020493803601042985495274290300253394711125617995198230819317777681268256968246049415048181262525777983430650515974874794864869837252126526956870125877613883758346044840044269906727728361699542626530022937834421047101046382775252348161170558284832813203072779083979520232740511225629990891924281747941651467501020021371619367559592766714375223712917132397641597187469580357212797611370137832232362803672134878938136837176181204502426323683410747779383597000118258724860610998473853380967762694685962402904981557206174181865909011773935170984380977175474433485955623897717573901525781595977891938386957811929717196262272282716919379988085956137701697867903959966332986922871224105461211890817578917755909306701046262226827533590542860585413956434665116548654929168322189140126750383984697853960568788040378791788266471739860394126517251680746110839603038742644604984027226838657188219289894435310560640134771942451784392982446258840788608422741887538237427464494808607658960266468651961454087882334303718306324670240049584085866857974482738676283652111971425207587199968126763106342679814690501101953610902503088791914793349765786504016597477152278264261909309262989914963487090672602146112780535181292532633060806084450911655821081684862954484090545610241607124393231815910137912535508440826681496329350423600188442073608466890720568818385972919301699034486753999012400965211373341383672926666484793934802221231944034391661128366464523532054627021846641686760705355401084305665794446785981126717744649873770833839424394302145164447316928072901444108801415634535884323717652433634189700264757790659382295752822641054890578520707242611751546546776120711806580472109525941937488920463051141880781888712134053781719336033675786513380867952472838126655492585815481228449028892532384321120903913085128450327385447394237082436458299526178182066745774053817245612567713838350162876427949409641763140825457819088574200453334046437965452122545218245867843824259791976248286189832240403103985897350412524477609050522161250340312373013465582159079651878782026335647422477768562498821011496072855916054609711467183886966827780728877778487424784877586139360182146390528655701570135492930535261467010900695616692021928431053597019026053657368923694964848578450628565454078372876710510862953462545393178592846402963577179319851945183782198738108325339783894391019943150987988460062223581017422279353095081589180999228795351717509762348438487389665947448112062939095406824347098075441626504799709960207015895099872133713248266308469880804461574182718424881847718543627326469978567717250271454638749725741023627268556004102404672616994248118382161781230079053953711941515350331313098939560207247487744131827504640075962752011464250694664935184925992724078344795833904473807616762005191869298843301734415002984417449699569067236374377489806622447276450998034353271639970198735862179144980040877200525670021703101541830086696883638017126386848192450729763888811344450558923147544445703074403357409992427079132363811139275045334359504779123760980771728151608556584767306775336587400328175760974150925772355172140881276685592240055052896835648390153865124633692052302673135338108597672133727936715887716206257561912981068592013027157657114655404980409085327681907683915592969415211230078825809161255013364361525770589097157272459979003908202936591405768139620964195579280070392562587158473197883794749211863292619867068010219291220923892823769887439776008190262765686742769780683075989825032587801820417723601523914188233514044422227707155607938398345326653070175092413238468460875575737593717194743973666270013799448071132222293685292420707305068481210134475368060136324790143323188034495065617563093905978449851623194376995985438783109145532611561410135687308914898885868660780417986812187879389604586226439726407946039001650528199091016187519505476581999380445083101380104069519515968474798890073192034709397406582496457866605185113383557686701702375195891180310682305186276845477452608972024615937631558007845175038032306834357039784864944281886443256713371696737713844530941085299499722134590379798698781930204726133410496610941372791201919800278830553110668633809858370345178567017874536075493917720133701834930954286601310384238784935719536362023937367559863165932184839309439221750604807345071082561114304729254228922573479799333391177775328488448096159948296263476651700870599827804545496447168286851205569635511700842495964488383399906731935427205449399827207278195525320061746078484408379880747005386295406346293167684943281373361164174424778029858494231910651138280050826859977636726276541941091809471130196725303180641041605763250527130010230170722790813248506782889091319211832699340087737017859852518138307043518035278295724819702444245856038201131246300887426742331882774991949977396848433330337415201799455876324200400712998611958431219205799465982490407521778750841097599510947987494644478556672566052680980158621622436696285080685779964392157352585583522467882313069374832819063374540363712497476899866965026254851354607997405608635240246165427520447893596125425845781488224965425839642800548223272056197479465553798729806322560284696313174235647735893612672811539792474166867607754992967069421780830472734141082598862117852751312021003183591985230052406658738553666917448888409202330830410577577656542672780906743826170995896634280571269895789255119075343544269346486798000368368115893387329120405625451737837916285776720696058163578995870001646643963788946177827824326474659360893583905849549818428610411865625680241575645834344064442388846772199900973225896276624780096474453734171398207691051354595252028980898200531952579126660947015835511336930354591552092608521621718030862349467078737909639570455888058584218928062440298839458029749296930139055605463981549620631568916040599787844360786082011578816979543657081603608571053289744979101199255887786134967810428346686834569516407653307439720842546616466536035590314306041278231699481238199690799530198833167603291931667327069861178767442482823734531698570279021909171698224116145107203633196328478520960803561179518003758669166801928596188188696733789227769112712537704181316022542259383527995050546710849395909280561640019243119116344588184484221362397589870878257132950870381115000711273934145161158175153246897987760429586025811821574160856274191577463269192759015410152709967514834599622262077884999686976274719413569896836914831499367480768538200118331574996367644050498714345926507088716244752545283170936023847442371399029290207215165204655835981593782427014584959408717819163924221180773895757644202030584718235606008369067664494732555130927147465385846603912662533080515485456724358758807315657648965489208333469578906079687386059873027863053664869430997142954358011725888495170903047061893921406289465063367379587562851277662542799914304540962830108114323150015061116849465791917887493277196151624165572480669406603284750013469858503183444901946336846257052061971876499337672941120983020616836737309104996231718470295439664907868444804001384218761504097478449994473772992580213185649187216955719275018727355621826108895856015057224221470555742034974537459647450660631781985361251534886188597374180998851229427257249853593627218870663455085437934928023459301298142055864646030711960134918610082013582399474199011817678750481178325627414197278844632667425392195432840571774465778870242323315524242347217953633795677164061006515142836015549026497129245691988267074781982239537329853149725822138272466777010686820142735325052668134455458489292306419892554197761994672911628794743368850813377353643795262595545619865110831722455760503556208423062002252185780797917503482775564984951169050844427458339044228135104106504859338755760882291218486285365587356738659068091629090512392953060018325721051196835745643505022229834736304562207268499435053548119496474136262734424195662835028119061205665350790638646152105975054206920584607623864231177299817065088482272819972686175503919364857681621798500467434476368599831108972175341246561295486285293093543840616991962038411454264720442825778817603092989959738369221934879135724973801048219074804112755730873155428842019665119380734144253072860563348672057486222822460786764117519670612547520639750650950021945233456544520992935137309725755610641027048952028697247790713749060805073756469905153624454733488324137217036594315465575182923596906439776180614129024953422143244472115808183335054668602822995869071902358272775114675967814014751555477561488131229925686831120648349036549498824096229411045790640347312245233634614181030171855110401424382038257588694020036389110367129531837312103183994017852251105692894397974469755600965797083026551578454915900334863935882249877540021316840391390870165849401186567917135357205241621010880348110243714230757928022196161644236037200021609624161418454197094081512181115057294561761566540118989104717627954424073815697134482305664852265357638734376566684344631204154015321618870892754348588045431303503262678091868914324977793765863674475508429267349836746644419139529954756115007534820587798522757526915212956018463837750534055032095176558114885422666948029268424216586333674849820491370451154466178388514969322776628859060683247852492373730153953424737613004635801512622110933678135819346574974012073003159188848719926861588674396192471584987202038814148231346607997113982022596678614983689823228019833503878938490411509788079686109200597297997864983271060620494706256934504433137619472595887481195527158804400797908195181033435564262390911212033472124290655661949456435452660147005247404212398964328950876678740478670815819021611287468067729489643334216206336335094790886735603930835710117554485540108017222866697209090904985875506782820787361641063061939449012191519910706451445346085556947678529402803592672256943983388750851125957209690640175108493200199162442813103949136672450784847314302495118504630424893805002863482923124533941203757948164119606716960708071968083862004381553954487249853706186163869591992759676224479375029912129028931927988059885263580201392236598238091123726181775328306016292471590691464754908680607692877158117140100381429753207053042020923732767328105374906716167408249758837280603450869669874529602441062040042062987283888840120835131270122925526763821632464001321449863679573673416476863113000357196219864623412599879583372314633840539116174782182467206772580992119855443856657018487245673574117050930340372168796525968608256992960313611074416765470322220227122633637043027890024975441764062474986887536834904064648153406480828651189130695918108252595806452292085541037985786507952779379758088316999698423611939286561627860110994858447067770376368224059953630191449272217715342018432947367212629633253674891836159717039099221984531855844020424687053877323249662129841979169048430545596659983816371106942418620394902617057932897259462958863673656522202446544457699931040800915618334085918811824775627020898523317745438177959275963335293937953072693815641082264100989387401342276079074881627518560628863546068286493018463114568845619619679266080177785593875627031614793526301858617423606910189795345721739937707372750816168421378803768965913129589795301333474935435158259108989041061840621728467346259915248789517302434623927933728678123759116419430954327745359067554713311044817221515037187476751078766444818390798884068638379372852452724152322073448172907638326053478811246621132982126768833205884481890813179271851182741355481995752497886893480385493064795584180467865106035705089618820529187254367282440040845541160312531261496386083357762711098657400187201483168590699975415366092672260665983643499282476875158622060742095807881491490083817226016468924875008511030713957774386849503666016705355863133105363087305294819252127688722168605023982576795044914095782636757942933596718939548018578997929682934989265502137079970910294282175294091296712054484634530090985839540209747941816764422627394624749271652842182232928439026684581315987000918595864091929671050302256996453870000904513980217687353812220931881218822931041688597758336930079243847892054467322947659933866373955606343816899500070281341838916520489721230272065316351808065891450184510766994707599296546058653941124387065246527889256326937376994735534675522559073894045946898428249028889699541847218218348068957871549899370088386911242630629763969752271606763238363461087845399828659806826282225666722942481578065539944105682450810637397411712135176290089524210703470579280257509975927079278943628505017415842324244407432759318144564984571569853555103653259362395643677344580616547555306126005955511600650117926096563413142095769622421031375702002882773181472836404033309326977036146988229116168446311506752202669689258322166124053394708641696171598537924411187955699243901886851224302269465521111083563573033465262143184386913205935560473775347769714623382114481589304615497914527834133718050168228417983503286182711155254969895520622129276899707003970629728605638313079113483682996459302574538311011663315541708538890488368853923107278095830335393794769616669434191733609362916092639067419035656870147501879169355321974578545675133183439911531698128684669759901988586464910253541803924874667475195680829709968136652960539289415799620065204519896259894682078028190821772832920262602037920593598514611900146146934224107846299486927941473781720225665588260960112622071794471069179740207397619759889514179193239832850331393862142804129783448207708361824407839637631028737818767432215825364252043380133023218981090943380191240001896639527225278305479597118374131828923873619424603420015950015047805310669184996409431549172687456663907082615696727443572400101319383323629028555931100825714974281331749623106357514027637637162408258471852347451049147273834289945525189165225861229668425615288287138680637225717705678368610200732124970588736295066766959029838493971207065108290348733458503468593188026491191587644896436728420592010479018115827934889205711955756065301837715006472358967248489564050501860146708270057373060631338615342234140091324661352814795285076941957420794393195440468886706173408247827977368497226209316333418000392817628136069556893772224310268367157293927545600149196448187697872815637734275467058480027586991172324716780687359922636554657107566155409278118207080792883775339764456270118576222963739867139831319418526675768230229352037013277954846983628253677136570706873223944271922865650448376850873422050360243967827809341653020243437457029292429457265107773558569737992977413124115086131376953159629782782801466009308738147602671420768466175044712053950965450258298913827889964525687008431047868082224272186819121807690598857101710984559893003251606424612810750647226698437034076162224125536183777792489656760381728286294656051173488544647397015658785186266488516720588103888092202813726005182364555108690974889874029269980518795897843962898234188035220307373869375711960087884460020332516400259465472596094140884055677103206430972976754421595001333617591179721115083409047576469650670507310343959651364426296476364707527020640791973134470159560363638501319901055547958369640723609706604880948055924523054644205814880685841681315095548789260170678607172661813443931866327243223626471456089347411185577881329061297639010690363381065351466104795869892735727268256862795253525812497328920232156829577460121366162367277587290079456442513227639828446110315835611133952145226158943894306813145751256864943480888579428858553154748084884874637137021201536552892621860836664702646291232439638970496470898557450481516351435390727011843575548208763663918725088731317206799007433930802693845574167193715995257197597986100225849976734830443509730895274335481938273536683049918060427518154811472458809527925536393205461764874012321896642641003310823563651677816958717712921087467036267173985091575627581786244222836442313457381221684876956558136241481689811252270928721457938173727388721403062604148076459010244358838295001776098860378779177674889837776478479958369708876843705529410597979051539220104592850246165038206822400719669096955482689183536474193557636042918756749080601495400450633272220656888688973718112702887727606572574987153991949031748450669031131583489453811056682837725903824230799970912017809384659093323035945631533629753181807224929015702387646895510981292493896300845629676667718051542819032724529276794784461651089782521949137965177979785287517591601599609190200943569460470166690451779288375585460132916505034831991548216102277339832265694476606786367860609318923690500412414686871212990643821982185547217868047721118111108759337727114301025968517139954615963191751604972584468153123166592532134682269653750034497861597779419856897681475737926410665221082036188777487541642833778795524206735460554946866922542668287543881562537457086418720916898417005920021014475551678537543801499296697722547210582876267491235228548400945100325647412856781275437980339351362858126106517179608043667258197384853370142592160493949079253255743761077024353449103175961812301116642027823941648512150087539481728188932180332784389313256391121392336902846330138258343312100946535594598006692677320986159839227962245059034936934655907206306210879778454702903664638675701347885809278831540968247591337276359483400584757927642572774354418383603390339444312408703207657384405136962920668609230128736685022627342148395289723768759404797527159141891537893132666492457330535565416697307443336185234907111635997629255671948466191613813359626272463971332376629522306228346192041253775948080540084429283865961613050185277073637489148171385856643978648078856158718171268813355978343858058239599712124495347441134663648575680499437586860646625026416264811250786180350232582454975760998087469720084739904912522203210984696954850389566962051203687343358417348125374536563214439740526585770862378574250636828139482552290128133019242698386939845150653514789039926448448318491024612270086026394903661281066159890952711701564713033877019940831306925662087648982456144771257218791694876428603359946063520181512556762358668828939324417094471043692686684541944183149647270865592372254949693211715704754530900930711743426073842838478554669770190471428969606096859305281949342429269122468254108935051310498929318220678317232061307057957181605115095357331013244376188348001112617782121141678628281600224804212837523138067671739065999927549869006910261300727688301673772807949178448498029919828701157285651420827101930895849674485585309824161598742970584153705278008332762936765240089100101262987647031614842395862079211079337901426308947318568186214129426088590887881946005864030085571819159779717293089471549515001724405697567324299975180719383220353079244730351227222240207467089958643502842032242303864786221123486823299738788030201503508013192255220932958570232409607984492391274723225964086482928907832744584782895312217995329554156473850200399823796380885270901847378151061191458838548502979310640030363153477037613823910825342925341553412133173364448000633704024577114527190970565572465830412109263126403973301198851986232679406580354332073688308290741084194605404677372051618975631629831765031289809684526489716552997451689619647383380784607160585743500010552698117711332312134589994789544598720618148347007518526844398883802955795167225977009313391427096993947446996197181345187695981145144696401801866771215739198326012478014263116079657654612005062419824552853047811004335577700281034660575866111349017283087760752508539096588732993045240625488274166761535334709471580747800809769493650195657232516445804223317435394560446629208518531240110455846350928013559711645340047889457667615791281048222223721919015743048962882891022877636171875803057232244996248600198919583837693396798606804290857507281763464969090564700194695963200310909645479280989374460556167156068567785300122260249017143200728744828021442176226698051361204505701071228672344998038056140488170837640034013429263190088804718183802385295903585571092724011835507235471147945154817491769222235484771280373200433905004686210685309206839874727621781654171305485795249448002678020204670850004752945466845685235683452666792786130852774033657730990041923001287788138486638308042248751238129803110578529905729668800388960448429893022007823073136511015118534357660864261231484517262826675042134300876863239229750670567639340709686342180080518692134170439540225202763072002198861799347001118996714265284011269079435410248797157538867149709322809954821029396501969767399544282061795558982464887518539541879345864713001211754795915395412155444255119781153671934253164099507018605899961484289393124842629428450877214790772166746005836158355750956177253748405162754784881162000923107441881477714019135451096646086053305805391694640992883840253893650169166797063720806590880220448494119416173509087123263880670854206724229081739121922818469889696816226843423629262883944723591389623156538326330436498817568047669749163837615025588700119200139342741598566099571887853886426074719926227296934178212004434315465294863581392395940805825857400354063791152600749465024384978867694902932539438446346051045893011995729284374066515432082703047732824228040411013984663852782668024208160088088633464019712086608070621914792251372565328086813805658394346979621737315359500254093320924400873156019704330500441778008964089020830735158933004572374938298209507242426030331422246306571068527914756876166836275857758389594175656049784803182291547473410171275854946020388684309543405907550936361102639966738134632627277285436437223156819347174318896153518909583818441986940969611310942401180204766037189615958970631154341941166417656787053488309326608373016170374420897408479766169242865978963385936432041205633200388549557323166047879512807129411317651655446201035483741868119319043609344999437471485825680986203161132499104051164344522816320045640216231685174715394951016182208426747718789361873254864596519492773988343768142464146634412234136268721766193436382874346858197434220078939031916713175185920086150998313502303395495630906621098645678125162194811736770453344816452107653705066488857211395110995970129769747159351587230830968014520117888425567771335657718320710117058682876040665438442174453507778015161819210259347228592410180749632619505115480073024312036811222991796378370896486777490280030367453243693343163396154654410317059337376977351912697489161660287182291649256807741525731262292443336741924849999072999777815558879986781393527022480024279559581602304632938902673078569146307241977039939900687945381230012342799306253170999774127283749244520963849028301935531869866512053843077612386013861433641906902462097851069122354938197581505856612665011576094054787408267042655171357998487476120208290330241129485721509318120161289455389669311062270460532245958830536074800424104193727461871382812601003955098644376730237565717290414095970716912288957561196536920169215898815366993791677282054431093004762870954808163767276881917535740084390216325757803986848161993488626462678930855444416474797336727440798694602810650515748466509806532636061724632446791673510408636422142069352234114078354633092823644109627400522273794310539502630585749197123057412158754564784033889109633665587917758145232776913098781524799604111536114357799893442684800739047934153312392057707762062261603275064806771858311153875228269619657033384583683947653622474825579241913086606879467713997235642102372866438881037442219804037969739116260843819706487638570556784184028229980738766130904722481895084898429375825513032676637923278530054268195264073602638978182485721405046921083471837559076899442213702530652703330370362903179741148670649437599340969870544144523127793116553380018577474958986825428068412437508466942764213962283840057926867953843207508170817948495527861757062063674642658215614216578460242045831457591448330406071532401757247002202176008207497291840770973101144027934403604458992684344576775818666039477716497382924552178247142517686278137909975596446376562498067095126782687711569430676611745339735005503698467081030993224756102753537287028198986651770399862168496037878159390391215695024189782173781922393902936805145087343308199460201216223717997821315713960896971792293763915279623808693906562912872414064771862492348219591536513516140212417609561951119058488687512791184016325485392573939899239120062891670839302979272103657110011500319113695195764348878026746548434365483080973852499407841795822351047585683292859779847230387756250452923488362959899159090125494250944274193446883958300848354434257857799992470492936587339725194457445141850623371066246785821074931968173316044646453320072601396196076590474136455281890193408850999412224142618736976133690758250700889731527700216186339410386951532229798742513505200234192202886786531510238498194341088949478483572368949827993880822051794231399980347661104582754276368471476062574515468867554498426583467158431853888672279762076807269154543519989018071902966225570450103980356742280592726809742984742195668300306494333335866958971081174515979115340787038346777114855289651704383312118292508379965346175654762256887044140557507819272457348918380241191671893096772595898263652041482997557205162580072497659261647736965839771334133014009715577379038161994916882544351780248457690114598186574138375502715971834032450139430258220328698140497045439565335215223401019875721162473287976541311235074682208911206843232920476522982698101193354356725947828301196283932630248650045032886701643145473509610752861818806913081446768985164893793716645619063080224726785309989208139852570688945918817054005562475070624785085995463497943797341024432197011294904542003088987002488794127048221151727990749455524283052699103697188650056966883320404218455840550177041916166619233154769226286273223990241600500633459926948160708373419856476468881065188041921687639050741717947047949099333518389820191963233250343506361947051954415127263176678438930253540643311050905571976675810193181452920367414036722458988227214303269168320218439329492586976281588984195828630061346381966680210888673161698000963322505557352026747514789850348243672441969805965745885765019222071461037351495924972259931415221930003339791890970638206620768980429962089006251831580652122854935943712653794140425253114369878209635432963613928813088817772859261118632782841909922911315167629392540130751307292163404080398702486090956467051517866006983774581605662652264063575768924333529666834694793942853928961238419968574959379781836843156667239639295989974952881311272855426599503009789580462712955469267241057832154290558423779209448361887852307876356633247862865537010671224142905292411000848384918645252119458588347826401648153647546554153588954929766392439575276428839696149628821542704046925624213251833450516874008221860067135164823786911009710441882245255900522450509259429580777264730602026860113904790690896969762457329290422018879548603240936462847880434060052070281246392291018495224998860601064485925720223245377029631683061254006882931669551606942239122783349726579126820685748737690646440915003156344606704841891841127203719010458933499844523277910146165042732683052011873903771228383784358178564447783303985961437725822148076947915282300671928166059658056764008298752090688467415039436497673741432361343340127404059955880418635166598411463743582862969666903766100885629027182409233629411695180076915357558829315699443116585217265718470644107825805250029730548552988412151132749439865586989693916598862655009177616433492716492790986746443601668838257031031409987942085532133100908487577743431895947533910236489112386477264082996820727536885905012004250715237180922952050671641064504628864315371167573749811938853273723499791123757187153981586269313342463787967438655487044656967141145591263689344637233785690119508175898174133492174091960974451872657464535761940422723522729287229112993973236550933138016498440768740767873889982635555158877288846827980634102319059531497223094075210767976819539057225570686645088577116578680711954333109779671484552354123355214031550748638712157372782340520100625839187666425801290973873451133281643626563881184643221551708576848466963543759522609985508287277642503082627441189465723088807689961733271407217516003896473822591547988441183292650037366572158861679775503742488874095742175519838435104676066712103116097185242100954259108525559860143072119519541886465825446983472460820100916077970686384633078203460337788128169714412248106008145196466286002753494406425614581872885098203715646224924173321061467461078634415192557923111251889539889054530920220774623158406808911171553095147463521148865175362647371966340526858087521227612921824555890340251208004695943168543264288613278687185220074159608415990058393128762720330652514919237664449203796490736234286978119522250468370166326311865144061716716617994190198329477475952830964231445834399315213080026373566062568977390388997352394132489401575266372343022719252224649891985120313146719655192353198374969537929016079276885475606714653652034120556092543852860764610632233335566690651279809220100843929593738288148969458453301067040618042884177912720202241526360780066731372824919158746765322231724319485008504582681751759203158730578788126666191161028161153300532757415147045661500975578506806435194579520142375667551130619082038948719358003175098311830473521116028009513560310250140488209550146534140061569691067741940027013596144547375346483858899022124295213083937368708295656442898028120164519542711662461204097506301203897246562349574094772158807550402570336615661956150896924592090913983500267936623099513225914206384588807574538754556513847516664760213707639150736699272605464150198958116516611025700776225605503510662338644598668989710273191530257909130746877580588232363873679547834012756100427925265713448349140292637587077351698857472222492969079537821606706705283450076776816035094213605993464407342645260643453480214860702701154175635018998766832290213578668636227224117715929082985868635745813603663745690765734926732894943158513766500791491302658529940481763702876565955115548689325123807539340701373961335380350618513123232466793173259755623032526636935876624128085443517113344298912689832434986299921895197903182512814991776242419415795780017583621998146336430329161739772508913487109906953696083333413602029896161597014863124242020970087779954617031513701403522631699421597531114380544076883667356232120666278440984767634333033455725835840895144657353624116969865807777113001743664007501641755397085006515547236976015951857155152659827078683724103788943582405104064771169278271657894947554442922968288844186883576217634788149595130714951795223283885788325952907097642376524535107424358002923287712166855804163507216106386909144319965267515948239942656548267279410875321001089270610886962385397199530866180937190687016116985573120631002095704733804899907644965338812663129197094530615770233351807552405765817232082442717180659667564039042914521905701044487883130492018082296159221617489281139352476436622553598504511775884794847468210384169893185094332991437967215733128519273950582170011192069077984055579819694109120393036826450125394249228830820060232474421198955562492248015527255198983991867265876242000534267991788274144446959509769245139905250882433284062440940159120263011959787598359554552034475238778318556605180910046607085390451842894627398529928273907216811446866004024314653555386686858608579178086417453795017696542268223938482807291229176402995786582930158197011742001504889093981841513860164839399910953559214739283680296150758439673257891402514977640424883628897367504351298753251274543666283337328042074134954048136547203611825928724116010790061919212451287270904772651624038304416615560461570568482082532587994727666659336728563605867451408941575095602798096121693556104839326314982773061572480893382857458553369843937418352574991282028454922562004627258117156689082631657369591995520896127456933910756007843413585462583763460681600477292847492509693721571237623629413360151162319947008223389898462244716494269735171664654887529388714177781222252373044994877594405058411738996354917623828434784877599356623427954695447693518205045758909783194869624381457130494376899685513533876495110721486940246020484071841786355221087001129172842493383782601522447008628200772952453025424487877754031098998276063908335072267095388157490292247672969786141445769159145814353496851088886682569454061702320645181358884296700120771700802095689099695782481469986584656834306011343869903065858459613921660467689535326214924966611947539223727306467317474566564825136195432667447847209083392315117745917619353855679008056642269194496374499857708217131908600566994887031905636946406005280453513165136989884289397560982657237143384892881219195121827511520244492920618269818814571151548178795234713172450192789936088720944743083802784102902788034059378589206324554747661427657755246862523534500102900201865148713916292000905765320825680530520468673088165875068629133199333122040678311211170651484313647023612437005097681172328287631397510271744223425403564802985282319209202702299989000499097391839709539263040139894660751570531297700440562608284435603125610258339254001204319081475862458546228603386702183422074304590039671752016303176857681968860215049772087630380048898338453801448121820679818553399563133486243642451209866440569986663203820938452762388299464012659305152456860408341746338024857046541500913653305542037611503727288583367175638194363497517644933840676429937482690356612427400999530745406894772283837320412149394810446619502421912731016887122834921014557150593639735039848927414233506063070791774816311902500966847302567452231035872920731561472530493885303850063713489898938045947531331383421209208139217010911726106724462082743517045867744303845682370219062673607885590488526729025182582431822980979915846176800241675825942400186582003324147303892346557913361802912468180583900246022063653856091642540761437953286354461449181702948643717815234120439878612496287167330858721774808442750266068526191134172623881352220275676780154876028038525286100388499320357637109380987499567456843414908659952014545800208179116922405279823839753243971202866280502746033235265869835477980910404925697072697734812529205103657515374612850255469910976219346425234357065077283259263317609492188710075409327422927990088010319155026912550919690874098904149452980671260371780269205683579660556100396823884914047775183639572914781188994927312252801730107505822859309378668154172823600938044121461586290127807926741454502348682546886588970640021199570071769540044583077079895268660469964275248815552481117661287114203387695667389543716211765144876888697035174646003818605046295924163601329704827616045963536427089722388384016951792663774236246442850276325846401739201372711661054186703602553655489758995131180147206629660993600587295895848753418045357403972402000981297944885059236738814325389017752694516986372060901718265106423787187370914402891201769588793290089548272045163788425571748984417980285089570553278582401863711946578727505529456508016059137987638440044461670241888805304451259461860448912413876439590401427878434970859590595550671310512005535028493615494321047424959165970810800088140464364156670040220807030481752386260905590779278098340688987257804983659139184299692867338432951210658660268865197692708134076800413499249305580017130543662809799944574132362749250249852872179501807145523309486969333084260036951767106420824502339024031185766892107088794505595126630861166540683888616380089375020258768507633404815256598788295426823529463420132224860816973759060872256433729628586449213104687993690053608988908615570705601944296606468097292182574790010465074420765229471338649965203320795552590130399034898663528317010637834002885275367915427679214919493973978376295149612897706361867323894052004104249108372026368468424776484808062370744030195464617018950173562525337878090191326675269052329562976822042297684522562790330667467858636735125755829278182413180148015945662056503118257002909140219326948426664753296663873713986305026904935710375627137808368901751352119351623577721481504463092659251606004481098224158360507286543592728029573522681951133538413178775573657128950257722970945766801838093835586977050845419293868966555780901036491158597630401691474475153937047868710303241357498966812767247573370342827034192691772368085147566947334800755134639162739264143412480612189013802288003060160625501278312827313428028896639375547165332123339996407086570492107610597489376176034666807234071635523694321258905844906361957564504732336929074935425816586653386450583869984917849752046488911457360031053893156937854513303145224894715654316976472876932620343155065291585091287703332329096911019797467416364252834128722974159797570683404018202993613757722196033707684098280609554713153326733807980996237030307456268230409496077565355614599590362420901821200066692202905285823601363947219830384385439411444787356232369656274396725718672375872017136815168108405177372318486172531434446798917913488827888694660939537687995812393967663609951505421790808861153904947863622042049004940976426637600365621949733733798903068862993380978466960868309734492816786513596194354685373234076854008490106614769240718305260250473574782144703385670544666959059115036917737463290102011599455981001928499381215817313694800318301099706169085468491694905293633666177853249578966527491381528859308079226322300270228312121557314505357485521731285010606492073620220588483319591805893793478721171486468030660546238388484012247290003875380029193228447840440707629898611421280754604092352594261580077848925384192800678986141498063682387984175521867038201592722211758134645205953351191667110319934008685821254646543335053225439220719298840105575279684495399193174166318660957180376452420841264752013452095041574092085732119326519886176550762189972844906649213582464024303615740738833699938358561420655048839656149253695008252631431336525989050729019948332110555619661480793850179377078740756235911012223568910628666936622294341455604978689983510967551928342293124894419870517158385494052939477328352150432088850728804561160672409567336587286191112658706826253948167224281482302439988625528313018132551398967363574579792624504820238013489980660954488981398560557795560695351175505451171188005294477148533345350192816154821607608215534530816988786363408315565522009191074989414689992348611247392036986210440759233999806275740956320109498961537493781784741991992578686518817969214157967888388807609527226842680050353876826208882989202344495943095217874531649943428006671602476650519559317135035619074523213781532058681041513844340929485987650709997084472916669766038237799332353927755739740942096869590322436839078114440971370742529808242833735100008638002077371354412206220226336812369256136984347563455019183013653792707246564783210593562440656463474223125738641407703794644075927686479134531035980544483222547832333004484135546306358284414673736307872511470296550501332265407344440056898485657041321865023535634596045661680534150270431291968238185339201262657116127385160271676249992566520350093065560286187667612157902080678978879118496929546357069246734249366950785302697024425323417379570685129260319202629591951442298280838361836598393890577264382518596642294358188860484483848528734472758100119924641352297259274999249585836835053922702196896403572879833816361204030146530824682142488941392103786270984125680404794652550729834759283571372486642717883387723730302282480322167838027871433694276480912781329619476703726046936772006046946441649254955776546301326078924974306804336710507466892512737991207228703854430076610393227583489616191337229780867941531368179743154005506869843684082687676092334514958658794672876226769653725943009933886028307282972258888510893951752780522857085352017599998582686570058797836620996587542510487856707640348496859939189804866789451566171887672671186531358582181043490547448238923099932100433352892401358717825629836126339759140448296009272477139187871387718810400760802017129405422549918506348898314722730724448691528600399126061775925829361145368180008366535422385591909868363804592013434695463783601303545490591202106117938431040445274161934161556476343891781120915682485955510507335527121081267082022974059583880506691686142958802451847134740909314019887180548683199417850579034192575177987641374168816166013979883271880822986062813474389483737993600533721379740499820123685912897347576056054397115762238582753635560368800863388907037065873884641908943439815088825358592458519624165108385406297145914078728557050937477807295660347097864133729196577083905582927550038109199506340771916048309405566514719385352302738894129549071809207543803575241151954320618820059071226362565385851199998557657990270112122351269002860519540971809995620779522324433128002997455355260026878869083687186349082714748624788432264174633428666888228639112431220213918815878222730715376498287933307203252080287429555348268634768645951870143302228905015235060349338187545046874401710636162917406861841786292736345384264770229508578945618703327540142376574561963584524165149214965780075906796131810654067357314672760854240647842238600414747684363414344477976493763089508481645643193198018541500647572632796140393480412428489299753631007932159901224427146060100399137295773763644316144171836818751538454791036196440575252424690666960233282034573838212663959933495422067390154815186895814949799779169580477787948733265006594414090350041937394332420533959748359149646458052039327877485015406183245494736257653164569334993872366109084005632850707974878217790074989789649434404847777581197078018452300751838855430099036159825311121064212244054467807947599867003942831969813647829782100583673334356161663650869557230548272532302971422167856390774452239188344378510422201264208359187488897347064165004368996197440274007537386478165377215279022966252823630377676972768200627258531964642296602100323151841186088808161134641100493978128761930230990635737319892321650124708274543767892733836011454697985421626265526388704405430466226114544791263763733212482839486860286001207763539864515767966998221118362079153308061885534899931059002303253283737487391521721361573317897297273151451071350605710713283451177241157513440807351286592553370269578834104253018569575366547847998792808684034675678643648254021346465605026677295473188507709177014156314293421287023352500741171998316147943370325284593413798255955999866854950764691446945812526559743288681071625852483687267896181916345376051815499470217028291881204285236423105360727595328437298495977052689613693547286836357553398377399593938253436673321791390469555136293443827756251373341222448430532917232648232415593613663155315290069236365097033812005190418028770235319402495209900155367033544245654798376677312197919864934594835563232745483525709728032502066268004125726316611113396675117615268046674292811256250140318791751459385610779240553510535921733622475366504135046373350853890359636433641035297975126435731008025349980948460154544898250681432537894763942427992330526826527155383388640186301311908353731543040964573188040110776948669558204114320030217103890542323655220714035797691181109411220459065734607385691069946302991791538104696460551303435524622618693584329633325256653053220379988837565968862477141231492749591108451960408263710469923287669513012383160818999849200999972642213265339526328110083718727302852748519536824580644676026503268699991297954353235897958293480846871662035735753289512889805243530351774789296115250745397703170719580480477173270232525391114712513731500328674396935957187716244745751916297840598163854162470450208029050678253205028983274348463787378332771747518921897494040166969106857369906739550471896152266846979925806029158073434293492650149769439974326658049901560596929342657963129708993738206033723124625150197435995764920555036504446273440144703394917762814748934013219140746829433450005136810084791324684692560754633786487101365782149492267685157587839488804895504949768888056878841344558219589030832957553189061663682698052324010255754094354171570107126891479211982473115994849168822095043787389162574137087711795901405883880274326123702648756852481924767017556123262803949398958030599765313799253213800561592092869398318828390753575847226009411219492857702031699647153895345624440352229596967801653716724318012262799765244996186303984869319881140645531546461089405581260863332740164447646748002295457437641605977182864466352261338930901525285218778769793873852038717233257008636710051132193214665477634644065554970901427805319557780347921568774145845424091952103062108924638634256529628321745186071692850376610747114026324099087697294500930053521405499120112121811537753843392591514375973881159092159497802306422252032905433076450880952018875552754453913235792970937495768805664541080558689718498677775476481238540777335281719925698663712774513609744708447971562717316107771154669130897841436060409387605484667516850349863479076744053172664516456645949087673453512499567192037805502698150526740287982007633213248609171530118165786732622798317609459702911498385769910542418379426916866746231511820202269164564994700131617439323762432391601180763230721205564741788943956184982940401281182248291005435143496219745887743401021107483818014646832242653225770490927925011212863270480769591398195281101839239500794533834133709567592557185368247936601458256578278011001427660552960635713320208128897865472161214305203280768215736792860686799741633482934158175160131698477118311862542145840677479570423867801917514762019617161769089578673429994502347979020035327227498729664493323932713267139910249247629049470118798245025723143946021952646008234642045747239825661443977775142625989988600229833445412598407053780269073886550056541190428833349349388274104515429300418365113141192754490748997906486050541029170565695135824526357343491828010073857161458859466784040369136843880097485851776432780503797297698264380407433736037767840739710133344409790031167957812819901099533512413123272227102876544355627619896991970656821726882878691014342459274212531116431972321860397877713254418933890602102682497602420976771058026697804016084723078581279838670499276172152471750970940107252889297628864597491223892961500192959643011685561950419998526024373623059770055499209477841997143879211961066759313152677405664188750238680579385694210812427400458816112869040377894118976129007530405394988101777053198858770527707045379472254187086236042519216118537543681657922723116419772058631849164528340115072623937497439911201425023745495970322965891301210533895265911057112716233511848434652628089096280194843367947237905797258603541108423087558192671118080662337844035099902317668566683331865373942018147972970655810776158983283316827854083518320815896242176840919676312544409295088078390125008637783783187126167575464015098987653440693921674936782605112227705144266237967008952500283679504053412487594094757421094156683963667106177513980039540584855396227416172080273509374646503166832467218422639457793520814474414413372440109074949898993941935066750314481861515287668671369946489853167926497531193826080252883299996133031779027175315101465245553487229875634454704044440309785220352864294933492054659189533613375601393461602088001489890600439110341949806942763415595758835046105799527043424409839806007225597633281136737230980614527457435291765380491279615186528595936930307898284848213488507164988758056987326392923716800790937180698394510291897094441584769200065460738166750905593267093876581117627582315077627232577328503087384779333651403119693600970342875419874163219735203612499447915837465734347856808789864902272952885617255467244337634041242739146897860678673387245509338947837460802920040930447644045815485515405817839073249857705196911588824109124627246995167405985343280051206535840719323864815354132438199869819812859164591655609681437020971697896715336376557194965553458244737661593168280260372439480445885818069141040336019524850271623734019476143049565628484035308057527190984445454425272804827628053827706898624374016338274175591135951371565972818973724802231102913021602099448380943149345472992336186544718991362372631936986940189217678898942641699297451192792179974710819367614303177735195989982421658061939926080798588056456210654465923467464549412324849153604250441663420400128989670903473776181263129115722514144218027194234560952413641204574817306867289722998604575417825643744831753674236890129678910743717692078782133454230236225574172530311548110713635919892547351464511126369960009370767589357431342765996524796899159424079057192740583086855510158448301234137493270709221196858471894073094053652893556894788356177268689819074906885365220595232985496746717089269114804651084013528918086283552363834571527780930738167993136599412434912686728806537260355416751877946022792907438191679057831274999581542244209684282777247052594221205123529108371669539045695350960319776445567989620091388420279031314199593498081648530157388836135418470194769371011552065764569126666236033416966389163761989750993725595225716355030669698393191678563669457807813522649519025386651205044305331611459015305483815777292250970903789929789983870008601564542409405518059020519624425414346912690648873919137629899213181503506321487838691806395219739122378503770542368745818308359196589027500552515557356929890144731646779300688545742791467663386845098274636767421259107763227142420770507676552727723305807074913596852050561664849796175119209875088470489151570660623340826911005361870890448882643908385987786913372919819693563009507180788947976402592654984093002094823153707205355539180978082666225064533759238522466244884201442990846689205641766660120749774800509464125575738634171314137444593669789379745327549382931433402906949358098218728721169251571442179858847961081604123566050687354333553062363025086988943395463060950774287256393315542656782344130499034651054947974292741033442098422685304538204745334336139898227284410272645265288786899565467362911246139293268251987292076968679220416050520691353947219228464156461467462456971544521200066229973603943745158261339163329592976166296628694629747147890027850822777892497101166913127274705624399513577715894598466249956122400894974027644804598423702085159530619014411797199208168462974124871739465022205571385227230897135542925083369925257150450698047380396638112723532326370302121273852107287041862454018239217516338192310210834335040709014000975192079304042500551834881999077457334156470568382149124370923208218693588731368848208151860350834618220758825776644985915766019836849849981365619394647928662856166477456813276774237664528485553672516983237456917201241532213316213367822664218862736296965699732424347573216876944812435683086178673997699238459825910190444270074486499414887238524042739814353278495912184928767088062293704884104507916750169515270562213156450120146161637038316007487295812825640758677534961529283559624320435872223359587793569013098128249066979954697361705597451585546723962970593381784523718754490160324161697979629717581882051297035844664689751533666319826234800149810379087755308510266073687050489939360571728097616241572144682260104214445677746960511730639088411810048754753375358376224851911139435853099547786011592866126758907221813785939022597025429486436896065693902288790875157041755654172717099827932399380475765459935638401963033544139305677210278073671792965953398236842846570476582247024619362440604160860074994387212574146443735292138556284103503461162159030012495117528494850788611929614306314580816586636596048619299414709405793292204255185801988990157039691263012811815499945083217425153056371465298548856964917286979369641259241219081432955976475602652012968848585340208426029547674820140900069210356864102866159763052462243527199842503459639745911905923997212915211243955117768298230431412948260565361418049335811253595143844327708010925370154370279078843695428201959197144444428476343928545430785353416498116895705031373232873645391213672689005174507943086391645624666013600543627090172911680303913068603197043860562404378339364078764046545589656106045864381601079669673550186870750001085757624897891056888034948077137306645671739149118456279830564941598838811712359732467626438038687849200971338145505993525227300466364347754182777497905206915183455989922990708737756872805222944734685389641587061546315707168765652207939984953697860342273939232901147192608756271720607313306050212460671699675488886654384484960136295320322771543858103407529822733464295800380900491031702310133016202407581691798308724735054592727124054885758436588721945027490504330096894958574922998592477632708234614095330549509596064940027895660890720454823719309770349001733078164725721118028212604054507923542402788137989893066788706798229768357901917424707566862339409840324430402666417893956801936934342214684678774486339983665999982967210747395836170817638018305584194981657795538642662492008920797124282622737125620051728287510603451623966252171748659230366891532153251362542132081309447342056733563819572712995391120511437016963616813971680163589908729434581275681956458634763693577921143114358369762889759202549073602027029284293114412003673977409485709930113884932177357998304070795026123761314196699095579076594923246636700698035906388942155649358540552310346094115955745264072719742005215064695810026786196644651907754677265241624140424978683779030126045759899763261919859930522836546165617840440685177548794003587950127320049139916892386751268660776531113519712281750273365594231871330650993191711437429901952012277149306633083955259988620408883552296886832212346567090879139116938861191292175886605223491379507960679388574634949415034378599069312559329841564276960618693996758722300936343292813017186783227546748972596689873487445744886916908299427913086354175722387666175020608727359144093223581269530086373303802274961518102040092485483784829137464713030430022206029717438550748457052399615747375138978710405848630584174255377377532133243583301490340072972420996294077757056863764499393536659964975108225056138907051200887582462535352739309341286466940349775371951419273425248331208334392459867102266080938487716153767127187308465327084564833439764962333784287005821740735866022964770513568947013426553352140539158017981324314873969841714176139299215072466355367763065156053248305359115865644466904646009386281286860876641665363093715983641302460324409867500082461168847223730138062536687565222075196783732392175843664010487646615534747444615078435657124804691473789477166133448032554178190134466517955409900302246874301310396398052104132157131049997980965256375898187460005832223208889814550366972097488452162504473091302048142438752981523052008435012941353755583670449258799665368820790446830615308816460658445410114299618282187104102255982230340806464800594885505076918119271326471913778687750367488155943920438645088484723805384485735053370227105430994974474508930400868154348894316507279445869818453902048147280692141408580495843480512918685869676405345417432898594233193424720897596568538978397404257453521824876222213063678765895870777393359153272686876237920878519151428393102009399204645639506273879051316069409231637598388809318973915976184017831522537641014944677872278094092820565282282251339062535555534780817118087997976334524170150582404359070457983928490914486795139604941988520088948300797557444172189799076511754590000608491950704823260816582292332229022222231422539840365175352866339495946762053407607777601249784942755872099451202626935821499169512229737340801909627972284226055625226730738433984023418076146513943238719503388008634146081231377545646485639605070972881981943348114387522650140097256597966135489911286356549708128318419876986078918644532324725929095295747888528820450037093221869185542204186808536006268449469819809075179318401853801748788232980707446886922967183049723863961833379512717851086259181559917172522141356786525962128474707910722357583833929675523685223816924556614888369452686964710073310961036876247562681113789909740028018456101132156166057843118391491716005907553682619001548599491453316363145011407569088050141502381614925935165972801532797248826484790136996498741651919803863822982950168526813546552791582172403315480636579170156249999510542658861481011795210436579741477159897565744656442021330576903173344122312080559703325537618102179782956493007425999805384315288243947623754160742583959981150471695937523393936757166869707360821772192182070080591044859368294328633813405506103393303501711981275330912658182744284423640940814335230309891383928801372152985757077088533690056474715183470639899111057505828994188278369705051529533716056066506408576726809073863302954350920098796890583216532404998066129920161001719187483575763760664090659717162797679915320030928445065466071490285065305663514412590143047593103555552500446009703355689469940606338981042458597945353040840736389711723244853110683153148238900618527689946001136810707000131475264100087061731962750694931205546920019910127528341257900422934630021625766358063963857075180596619265048893511858375400213292750270871561926964531679570847716754283862485041803509598938261450626235722690315518987727835228714187989671792603149125167653122422442174492571477188879050815863076231463455860664028674934961334081904493630170967826200840969370079795865449824992053301897335864860288986716430262060429364698239061476261241620493336194088744267294213415460685983053621223280419617990321443110441054038565959237895950833772346374399691514912849897790245262578904528469184168268935962482132465464964081158622891533683620596580900066494308863052681971810468529541820714211081986987952467793754745531144399278373984206370929591323770926267435541921748823843212733146809948011919063844128177890528653919063450995334787580041096331437514958197988894606877481234697004251167881323539082591586239779352644974985849509804966811876751739169613632454374420361321960964967014982824736377862330921496116489956058081129378806551917695349469221289046672905255088864406839171955677576088412379558355253969195885035380610452471126730071501951364081582865194193900391171673369015252659666194860443038772636603181101964978186319041189033022221986108480559869410899717421120117803664678579060001937518433385035561957090771360280762231762210287041362582672559802551030227425062150789057466388403419263229247827448805136318941890660858152348937457302495614265866791083833147037592212688721397005544488468578101352269448410160161771160692400572400607777798890118360198905919311705692494362900680276267946437675003250335003842234381039266378788058853490741731388443343096568081809177951133965070640792191199865396373374454753567208393560176109902139771957901552222417704812073922893584492288554418362961350373514529105239971852012149472215154210187397209919710854292462945919425554545373644115944086758863545532694853859640854236793879178700772509299275473630742427270175699226571218005475814684878386710712688572849678093527351905131951024310538943776077084241690282701619877056245471706167630098068269373317044073687880119384022086631227954366886359127306943387925038189963809092251286819487137514018501194692299980038631412822051253979538063977643659698858775992696758355573757863561888812835161755152864996797778310388478958607489854487146397786070693634014011407600592132921280692291285967954733204419854037364638310550095115175021925164149208289264817238880150281522626328651790628977372364905383616011434821153415140969846633795649272411798056445353631664616313946915666903559190233715609963041872448237321171471273722415450205357952843052946107124530652467921186222169651516287098808024217030571010100378319135402167765770566857467657539743907612232707624196972969946267762531629942882410730313332552323217998778755991585210796895130666268115691836285725807313932440927325195285815389692840433118950996624914409843723437950755919525202711240674837970436528369005310010214030298935249395300267820290967746631824556583460943318959615362958245564819356670856175982603734122575761926012130462685504415149480668205763100171629251287768552756497464437749771078678069114651721105918423230102405224773458008714359961942838371697344807683711599766211916586118123907136882329706209202552512539828653153322517707425801836023931782311817439916104844578067152408615113100442478988134855957661301838243104454053548673648358261262749104414972916008989393225760375905740078312013093251857705170600381820109947079126532846443899012673924740261755305376171738909865453568667616486352785123330664646891470957331381672577898230478962208567818883638664946663914571289632534977187115199112224289007226014946239553641059092542006276704017530139146547733846345045158100121103010389572758191272538097554490058411024728923242896372982809428564598010656442514022872971927849871988186341305758880548162808503876750264502251216345434890238115049234118934168283017715566529469241277269830281256443122748696267001685757138491278523312501020423538268452365906016578588101908675508351599716864927702076291999244542897612568988348846556146952698376729784896664352958419055358106882006930894254670046542237017041818439280291724613117637657042152415174746682259447283895128827740115293901366972084356321413828918678864235048080573388319542705932025777941077641890969634947316788152869445569264516515636810630377155887291916038494917786193795996339198021336945712677901631475664585017720968368237389864191109755630723524970810775286071893492187382971435254123518687570338500990080598609149766000580592415703207809611575053379127842950306949583633829914047200847013664177025112396106846804905475299758585203437705367320379616369591849238455004654207005065376515812745699876061093943091486011885132831392920992661561412401473459878563030401819146001927590378458759562206398847926822245034509302200597588302675995405959418464072853649964875353244190800135399204083056010803622016735885763996687900858185917046322695512441094559103628585241493010087820675637326583131416773127952428549371428067944301309120915434110355543938931209918620322947900544984855315347751593422585223067144129411930119278374020286707448153843274367186046699840346668833489600297473672991064381493344032959610410700335986556402490124220785953888700124517605725454013002417886985059088204529188066492516676425368814505346027474029951215475849992823500893102386467435006084129740867653795148854407725912024610405206979120146871441858617597034339915571936557163130173565097310661750351898215041199539705353926472702330673749103876945333258985164620383680039962281638093960650507132614239771466247897988954844489359152056859014856547676456927914219032877160623131693980445812679232749003220033545072916191550026453510951433243299600473079262919436848900195478721465717894315677599077453740885158369070569072840723864437677752562162266106233494120132601615856557793747294467985092230536527675004765484274198987177148195796469157456677200892218809330253702539942752863851683446364542934464409988582341695344472597860542568693463807672111370761960294793553157444764193566575590907322648626825497858851529745306239580926660215858600697161902555156618105531449816033430523281692473610727706739189067108867408558871377835101568515975092132240694845972461882357032083749923898731644469795003402519089449030985050964397238505278883370371805815066748892993002047955552002823199340187321867005474745888319556010755384136377771524454103311881281632960048932476172021470507083156809573416286614253265490803518286576325388872179756470491877830443806598601245268772123887271142706962287766032099901279459212409561491745383470377703671182315221203494362663731444441338640053098373630551730604326918851944261195359847758820053864784197162496467128364045657770366149525095120517219643850462724119110398597722973984702260697626037944928963254170596515390229163920765739344341488909879575991268034592885988999045603663857985096590112120818801854842909457300657349775066071614706611146541354685257644130971529951023606698940252538245413450429870580331123754985468797028667773747019388986887010435560156191953836257161700111881715892283093839818371791662771858244354833507517085913098016958006365201440508336578945789906669754637012345301039438344936578063615522572109311981576396550377666787415806643969603809679458893800433774224242276605954864425833144341915581107990107509170086412358069092419435324475474834530496517827858922058325940266037772516793878203678400395134973814793127969222156973298378625212742518074625332178253211881199885987313914993902020645721442052170902868164549455499271629270435861944121462855371135613875715904142359151980732504422470387661467956982768582621583091004099787752245098367006217132097428097734622571344228765038639668385504388965149616032201769772013258253592181049514034526874523377562110606056226679615176563753250650145363895448127622884868581351563859124231879746651014079208387457977072644589440270796985988072456206100885255177925867260877656956683796133403289581240720897070246689836821881072732966163072172732231638305552135081702033805015752596709152775591300526767051990413319064865157611741096972964649086048881183066434070493909416569439574000446659832359791550357713838416660564190387530111639457673285592541394962162757742093055554373145483755191756550285824053225769390109190430042899968097411745065601792283918649953435789116995045170190615755037517780042633306864628281414418703274623391157024035701204698326738206717514254824319143023253521078058693239885705485845073089931197187152678473510409624921675374190964246285100906790264832248035330378292765005579187697105927330667083553071018282378569104290053201258318385190855935176237900281161283127745234446093044032842568700289131889025372706225530764956100555019864295147239546942418406810482269265229678415076680626050166991934119049495149144340316386482525724034313554190147805909078053567460962713471830678968928672314095046598115277019062664430009404946027108991349381103081749415692859728179843688008823209269100088528421644562425906675926583533929155883376767182590060246477868506635782551865269903105745588147683441381135945175364404881749766892055849832772436058037962753919525369121105734277661396870665952017010935979930377949815559542822628333257408333809951583895408468215892525451003952271626328439914268519236839636486267072381427745393407671458313571277696498255746285417507747807742492742594147122143824897851483142932453316063042552906444391928997388141679359006212605948585726101582385481450298583734427823747687434024543556851831254705990687303020295498185698260597497928063246028857660462914971644280480776446938545050274373766746040157891583776683392017509756586207483027032846143602653804257953617889020638412988885305798297418496065366356685451783277258965121205752720859429035663567598158738781741625828974439577594207219297200861300259754392332153809495035898715460578883566413543601967961370111668011857167061141357587219596445564704116651221425244951751269805131492603232149260719987071028007278216778726911421850515110264666843891616757204532124744484611117852239002746208115117556940219036469608320613883133594376807412396133064958269085249123995518033894926177519649048917772444162180285224953593206998170355650454987735730520919292288543101194984230437140625484891113429408552494962862051851166287233588845367608385920119845109798948804679548470194620586049879920217274580957570624973937359455406980751851814662377136865961049782177178089297345070714313118775393992638687133962892431093052468226032882632410609073928343573708325470123813616039872429040711313822205543361880330158981211791332547574478283917516371228775307527701612217872600055897809689559163818787901154536810657208490426655325334386032399548890318881930245891203294284154434934429322866985148083546472966496465996739026342153686327855687118584581258810501222213514814267431887818403883034591387809866815115540998411314050230301481830235166602719539370991579371114045362695148168133929812086844461683931447415204862034391279116742564968588648069923225332676992434690528847731891605428962264059341248137276965929507944700476403177114420289625871078645287867757149591708711234736511993198155479044870376964746630016730297264504962308754131680874006330118442400337485233027099821829533748844419267003432765437034802054028081869115621765488226581756059600884528648316188913441651095504774520521819654110219960382822398978603693472122800565210635798011945861529705281085873567241853616632915594433711367164371877956067691006875666128104564617594904720740189611536735903885531259146144772230498168696100986479987486320498027140416633763350731822970802618929999601582703841240258820199753477620322800419259682887083949158933967599446445675838787144026136714763038833120511400693839510263677678568903169483770434362179071277676633958658956405018158349188850086948080468926437880455070152289530494812212378034249723898001312644983107742803820099989701240567619753372976812218742930500110252265400114121434186672810093267293714936636678682875442866329139339651983956379510309954177961208020051592917192663233829234286725565756304975866702331283326367518307966936422676059312424101719155886476579529902867522159006057933499559870384672550702356282627212027548646619664768260701775287429956650949662017374363514076530540858120977733170333925828817310479510898825293205846593911512749877318601924106108515950559104036949368846658892861663934970328739996712295704469562260387166444072867131430333609818334343001236185310935420848030756552567106014061704845604518183419920738001057036223273626939305093293612236033093313590898277037508917057107269799354857379840228193701755274007002548904217240021053719207920716030480990971165709178890521159861626153054820163018605452313764458550954585534358408960779019729910707844734455760338539316412900564915600751980345208684381215339393155386140773222274920355369360446597374315942331983020019811651676269844368148539251370331859558842376621673233127819655942224302939560572190584557200324577814432639494217871260693196398297917569163329705118713150149795174408788095052317907198400963479908340937217494142558986225235380206304106748801334955107831519843287619445467608301764896458255960074186511239407041049523600534381787814784991044770121004173610982706862140622831431297416688590636243854004556767885231417139187884030762255378132673058626504737773653563988876145345506236120196958296282909321926734929244568689007991626528216494992327282386022737203225499933058249011450595354473947157424031793169408204296180886501093025417865958979120775245169467842415497991868403154329634989191062443435972070978148270219394582609025864973145472317048866062619091788545413623620239000506048586181069537779361746578688879164239629166697803906567873250127303951996805047974768621781923227494101685100356886180279551178286489830465303393055563565968193417013251445122366473394093629115143532490760301699640092438825606284607066180419760933668527379976218698888876499876574601600847354782994277223323679018929608924840678318095020827059468426864448113494797520285067481902662229779642709327577437577125620998399316724254514438835412039272373316668431572028021376165625122186150838061131060277966197255944268987213709945406358726112189210512456965552956381732572726534822380391036851963410438432028780477984302443460984171258406780460059242137391424795065408174746768945484749209766058438319215962546619449451860811167129616104099882644059786734907728400943525638753591282254091755173576577777345858032159861678385979467471981338333807979734760889706586870699477117022912603631750078863026956755626534669204554369783786122075213408207818774786500777161711912378243692647740648741107668573936724212043626341103823077709151440090691721949707283824469516852371408350562774673854583483084674941289753104654764398354857493210006566804709480894340643841308917275459346417174694860661250866315102384744040841512609378046284235012602156251446229897520316976181996857432538568405284360760486429480006132973138150818392750260314312653596425410299675593171625986591948980050151414135871128241796713398548046013173891162953509577015629629587052228654546153190686437209869280945110699748262556378314878594430877319236100131861714218789320842645557323910616172765943610554158038126149174399337681861857820676264957996674948117992466077785353694083031429140110255986512743080249016613434618539812742228718829190523956055733071507993958820149072212797416964430487197616063770299385305829163258052833545604330560593777827121517643964986268856753071098345768965646770120265514761751944345177450765825393171392952217856588278868286316084451772064525443677963131650419389507208075008450682535267869058080767474118144838325058206595501956800201948739668233821672143771714306399067270819532252306925077332997093703198958513782408395905441992801601990997046342550322052452930272529970422933077444797243179648433427774480394566856584351879328503609234812075013756531204582197291557528262576415682419831294141004709998745897191695185742941288230161478414432039592101084685328336560486257950814848106147166823988451122327713709363722400204302630322829660128764790302599500856699069800777654140269249910627307825175632529826101003862112586703031027153496915970555738672756030079206022741235087110010497100782574445637020148305246771156318913747411542967420614341452923475273449712103330172464800025555185170354785937615480601039066970501456044048497564559187164502435701520465624636796820108678686143774415627277809318171143120324498463966935563204398602004164518680226041147137997791646965445283489762844668093395166386516443274737133459994391100272920963014928001698930385982918784206512066808002532717874992690748894239623776346876758414871026830671450554830966846468064006679178778687650618564945524120437182304821943727461765939691174411257895417063748994757196733582168717203573654089533707690161019115745714429427196112732075014880213509573039883341728998634446087056765118239456284173082583877834747034621201965807099061860969949835053425621199442837732126990040727961228737853418511857943079244122128544993935880527253746178952681575924652739415908558952713946347971830736430972359023170019571890912536506031495007381374173117237107875208171035330189661732443907406184465935839986320408905501019666458906173387489827344393492612109791766042745823361762527027628611960383920552375288086086592249228704818749506128905202811184475302349922835082630444481279544875806938264489781667594240671034305524220432536679598772010363584995984133045348806116227697942341351196718500979601253844927112967735863140819314165348076206798334500380010885542611373444639395268386496668617081846589618732539643938741336317568019025337622045536617470210976264718348321319497674528329585626440996152928389712516236443622287065600347437095084868663329472987191434512276235811214964125503551620080312138176822051639474175867842653107922988459746130123519844829317332545854491659552427627840135789847582238289116567691341956518522745751241645835279836496698751410436988978871405931856967628045771161054344402206069840947366090150848857822652538181619660940939746841439723962811880302667971659137082512314228025863453518749706413930302893031867134201683579212829508831208959062390667047882110256235512597657395238986010634080732489988335014902228397973971467368993692249739219290843201790187675850554006830703609290531892798260322660010745713513247807210260034502260790313847772381709415410565973559558660478821556794630168840306385338440079081069841892916855628050289561416485890442797589797185065284774018258818307366342510204757651648301564159068568301446266439623261107270786481370828767896307790650223161603906041364282784082119113219258482507037753480768369554659470359975617182800324845416034033643077334728372980075933580650909856835975847003985453368608672335391947489471042364658193835709178368642728119900843752255611060646702216869197090816015390085520637326765465585931122440807531495265539000324637414060460967756114400913185805299535560418751397886436962975498082005833188887689715418976797152666753987357723384545887350385614265777093378598597582167645766707938187931474831721034065858819253448253983517644732379636635592458643949964302404479203717635427633567970603660438007089838192689685323719760875964339487665563612916739287062691495509669239171185578295103668531550053528023875372377228351754477293955725411403114585913877568482196304393000113535335706261101284713298414878669341776594161987696847040196268608581272923153860438513951708712800843756981754008597496504560964907352253605430693573862699812068093794588126607264306118663350882257482165211006672648959215775234261633553625070168366297886411061103029677059627164189537465908586060937020555225446020030046908514505093136702527560751355325949233035439482093629835822942238936622337864436522051838871396221926546136440561891257705757348105290903759079560155975279711708862760527753615804669795819185145755069228880300784591006360024224125500316894917972401720935782235960313919128529366409189416380254537304106830900983972928181660293539952328021169780104001535256099777205285297478755746771545046364693696418992520931196837198934637565979733196188698488417458272839656908499215670864211069943988853448654149983918596827484049563634062921235003581996192925412646633740512865854895132288430128286448735192537946647439991104589731808729362869394117656381126568491119942231006630273941947480325052188388317179625892272741371760856294568039473123737968148955511033520357451569563173953188057331445300605320229960485061875747247935523457121059351014306627177390027238749760195567170507235645918986735695599411430045695939672880670672931577094920257750935107938693743768861847967847146188154961724130223178282361577253272624009631386940058592052599200428794278766749177242061147121869003986978317711142030392340471647819214479458311103778200841831543304076659623193594096898708369680059257809620878031212935196480860207701902300559352059259195613327831042105942713593248397676228945379080099176739920811741153209265376269242025811458524527250669604639929903654276618238346702580887992495545643934287551667166787817797158250166684048550977786139922832052609595288673679366778874137237776580940258480475414474267655480166248313388049353574028733855335711973450314660561460969006857286126922706435942266472041417864457068468738301560990126724031735935227815930663388864993427453237514559963397399547547032200023707124071274681040372291730660602649565753193167946874404540003139576799901588994360401915583279189880036951791118735132555401523508933863808998511621308951467299221214166420575006521359413165565742167786093271980050137610393873364105642062278705251810507176988131334229898806978286176804527472810734987505076494703857954966648349495052888871718709489294019046897162470364711339664594234206311833360053172681606801193095497713963816965194883721451432338013279640261232399200528465498917517100260848941766902662586210470115485924523606155430497779542206201910239430402145085697769359216569998715100869950330692014925569597212355865775046569318014742688270792793582782672879952245928008192499887337123741065682903717340709004832937914382931484999609526081642501307531930187321788410711770766060983993637901492436160625108148780860274042338439632107365969353382346569217261782404660514322818718957869873101356394166711902698603372755194162843562266632638957048036267831839117801407164506562037015660144267099335931858939261697040431467036251396434925593144900508033536217939748254959930147656944678734028451292311650872011232117680695009731530273793466899954562010727303453196206374538833171156682323005340836898087720586939813873975013477240441432358034748430598082297845162994569478613959125929559639620710292814565691539131621066527740999791666759499109328713700256858115900275782029482358583613674408689755135762764518565725325833017880105787677673088922564066609098873842555481690443258777648221929924462427994151010919593093607870547308251600177345801086859820780148411349626796070338404953319577863421446922593487250232922055688449191701454273487614396586313732270062055734139304504304794192873263999654217889288642368596434521758656122769720900622872977514587484398055716152304153412235186482703926572026047170994673787993971650979076746579940788664963344638381495524631914283740999453230869268435434560125191477259393707940870877404924624502354645220887402623278258725496334650273172350755095923747606669666356087945218384258348429235125425074230675962795187946132044860735465242259454359525908944279947883119198997064419821253945329198381338959497026158945306816668323023908335656509723681778623957618131277019143026430111827188074109513599251114371503771158833315810655316566763482166589101456400522188803011180725705258771831419811232511282214060626390899731909638186212835113521929620785454431552681539391788609209203323944222264299769923304798161870396916060691571695680330366129614503646987358909050231812685779350385775975712815232152318410566691107920503230443754945764053737608795635361204237809074828830463000397033530238717198826140768651296686806229744950845545633122204770031707031820270338660461446131057897567487130468826052039360236666626344442424427024385134156410285820729319934574133474194149636493479916408868906049379267997251892898728842285362986586321496571141527881469562961468982505730176820022601559127049701426088593204508206075867283757257242593449178903009090654810715408500539539269123555410777329376641330544263392454966219982068644764725134448996802641863563384616045546654430418541766435101944432146463807663767916111938299097650363930960031469299673175617326368787970010856296841674069368394209667749554355348085191134037469331249260679130182996941722893122448776812430050153277495499268863732813161013115036664657066356392579756910292716891542990056980173624906523780957552185667593246917568798089171067110205911297672369076190731904601177031715080567398641354247567188777380688081055073006560846060666136706028991706942157342059243487284516298175112799394768954042839666495333788288386923200471775785992135685829550510004821247150192380720363187201191267445915682926541763965851307700564558891621549928468892379669552682862604904796317628070799674347708306845857127913275593366195822041566133414820422510620011634841514610453175570298493289487638843294860326733081993281941102606046355172056265637902291775733711345665972429110673003907856676592344727944032250009733797924345875426052570070661056302902060091334840896920882028638327118320633430549053654256579528829975138655628005401072028727490843401856339976056103021234311570717650512737474984802902480807204797115422813097753095641714000787505792688838648139715476194428315824100851006057593219913443651520374361223497525557956723074495032469712880743551453691694584236044363111310055164809113344223854102674200995827978893151756691737791426718529339860940932438502374556096423389494983272200814431071080941458862834362617696948687431937654734226000635224193772334459553365561563589061797519503226655989354743250655382498450615279379268373804155472148779488822138827286529940482898867038490030846292164289402624035643178463414922605064617303689691982350148061221409041442524229088070090345539901374258667963550379271695026797581403420069746106354049371851475242036355673795337124288092995861337911599291035274209350921688092435122930464076860266598304380995546535727624667566266072802924271978633425203230022876857119394068968733897487880354666553750594021307716919410772638124991187358300323642682545726081833716335549277749952915889965433710224895119944754408160375420462577199399481356126638842513521030663045409086732031048966604119499751977453168112250138139877666031806182521214883547094131231454701388936568161021685201502136292337712138280281397517484463505577568055719078483385251649206553394114450546302332616273874206585558457866585200643447797894597982813661879079500115592090801225109545163349526214933447251041167429498819602164421956472481477922315783471831148907765175940157494187133319963517752715790921915441585398888564898316418862901973003538909213616939707219378674106343037094651850198683368484653825798557753159721684272715798670795356532936021923762158228395140919084713106698177438260979371230294441612467703158099406799880795413475256631335993609506497688624593724921859214712163614439678128796122997445490733054268708539167860913697574413991475572838982757405971884133583148150638299194980315806756576090281453525735770711135624190645746480528118650628332722184564004134507927716348407761016614522921429498516159750091368270737831278182121564915430447540620153324251724609734998418872159373776449824133709176012519611690104840495136374236217047632918322134950052219304384821326927157763663315985882472508202172754461408468844468969006688368055516443445841431100849977714228903829488710849608448895816233284220143902524480350883781986956209659620316363932776599848557881671335765302642807444626717837566778969990636895387567360748402215298227236926254943384717047373650445206627468513967152547921631170662692650364243160139817632891780662455544875020103985374029991819136681551684424871897959575180743913219524639504087010018305354132535662699937066843478074763512799994390400227453594649917160735985388715735380266532046060218074182905625982059135550469807055906294510538570662625143029907935602627926208055406094594619018423692435960148677509136804530921326693300041541477809081860132676940480802754786500124645582124152810920844154554734775234472961020038083305057722662808457456735153909623909912384051208284796556127318254631884545239705052031587333151916746356086001630972021525114464653723843342781518823138385954108768961365575731486481075875921231214395082799890734821418621332047401189361007893372732804064448804250892342333891220508409190709344207981696471447300552073279906024718048997521316961649668138120299658992798676131817648465489735706676539915855002619950653597807649712223246568005035610199286443341004554576896754152847058521490551636419747134604845882802228510755688077173374869110196763093768038793875672981462680096425121566956526564701284184246715987857781878784914122081289033961509623205416134459535470815191755234724701298792460328388152940189608301021833908416027502757898714524493024301522000817267231191423830474010417731521206455255265978663266386326489552537990110232185183514360535795585805689476811120287766909805082887963408887799819751903740929144423476375025526152967801649039140096892572496015331652688485443868674930324925839393824096947727396539209788095921402267825453477383570984325111897509932711279370421337097281263217564704915649171382197836190676225980452867913410528234913735805817714053476619780801789583197631511669422903979956766543789164914953616444585291548871132963188647513539745343870947032485436328540110749050363650789730754074028022808289595765787629543274097186928285788201076142924206262120224888502688565822297259469482162006497511105847178528080582965166246749299593059637658737283928603391450031573268271470440611617975872685499330929404988478958901140169193091038590760513388567485591513506987156679606549771948603679580497808815255464301337533065515844150654129160731791178852087755956904712755553321745050594682182189212074624177566043974167656839326331125040541990333652203892382293014360835272703621798399001209275838941282123282942771568686989649088391660052289878597939726127184841733169044610292789457834291711336400016806728667509604465985036589867499058289356544039403278587332202283427347060145458258494388926960191506324914446709520234497100488301290113465883795281509750881103513557084977241806885992848983787988777998387303695010512494777119318170605454249563555250841340613061820092643038118091547128041772419128443206454540082820840030669093868828220249606990822675268185214049441633167257165024037920998259583609231206802224507136550526089738002475928401587350177481728903584027669339440890128531076051598044858301192414902766583709490031316901757003717777527490234486784678286391016584884275129225190074674624880803557434965834698020877355076272815775942536276417929841515016480588866706587566473013095767894132078682673405825935246324355477244095652010600925639580458338090182034738065774212731498620286968818033567163870343242258327733604430774132983077017512662253933249811917555309752059468689439213362448865329860184186630842190962824486831517055065446525403439624349459746696166713183755585957793610472998389080899038914086923154474131568402880074512022536005368667920635722668461998200593082483338034745250905155323586415661565392468151456477035683605880910572290777117891466374834375808173334915002228685538930298982933198317312364495986258512230780843349962659135528476283034075544309267964226534597646030327486365415949783960191826721991713051188294565351787792709803213763610471341189833495730310152930992483909969766078561209252154767427272089714592745311203120732841359029520168609448579899698314885175549178761582589264986015936908250895580090407066401353964233779379374086168861856479414122039265868481935976917914874087302852819345946558369979768021239560917712727490950081828671698490420970679700107348728217486527885636882748003530331149649447923042655468272859088052194636445095883127420975664925711202963200137551442376271037116023432004655503254726159396650598242837102773267578637677061518595543363860347545934955011337428745996848064649430400817234016134701075384785935698739027614428172150079455543977047367206896964221254967409616973992065180910157932332569964871926659391038651566189833809157422240686950058632024746987682037336255661899501326040802566836656511247663921916388721390826926116643123018594179701680594239670856801696401447236504282190893173233136784297425531166936335892867294087383630661029572116070038882489545279821320739601187388467785949292222034599836667704745847968668134639140002953862412644669171769731307063398229878638592867786224940689216253746512893192581995438285915259937902264051621269945727095237879706608511140650360698307570801412488728171224814810802165284285294618873968090882409067110584081267232006610104010104371255464401631337242196559027750912768115874737268174488874963857341965971892943194349973187496704023575043951287680332022950353502387896452276420224360890502573748546344438545343484100654206448506905590218255298322336308202507844236825677664917497084953322942942422362139013725980111496475204546584291029332278226659384701138203394258736714368462623187070341165798791710955410066897023836058710054987159765981499310397756065022925072263484541655622985891244874173792342409395895945393610638743068535958516989120993182813320886504526428276045088754409217930914891457256909379928199557833549072150723703511977863493783370382146600457830892314218974687664937509941568053278563163571512816325570648336000720974092403935915413934794494172377698565272870724964710717541380471824159509466729220940934336277531040580290873579274077483512348709495410651813492950076602219534617187234212634034339035995969959310586607509197240249378111656419769778560794454979005563309024226237596436096507868954185693716454608155640741159170431559476976142544330227991299161127715434554102045789672567881418004025240506507688669669738135481211000221273436268432478706955407657080438816767195481701436944760885223354630892057247747825309810149422698830713157979392624143077898898005541769162973284827496467079518632336600303890316116455823570673240297194657851589840247516042979963883148542303973580862716850550366803182303617998463113533871736834365104001321359447326710299208352513952144747159364853322834090655363391621545260410879067598475748498560655311929781669948232070236489544213237270825774629655491542406568428158523864354810585249349019324642053474808190935025574804065232016008685739041279121743456888242001480367484781770312357854550424706589915798420947107804688842002644609891166310792119854673225596428695091807462817372196459823524245151258031218445276298784537690215285101463614883016768926281640235679739907704304684954465813203591586769501526721087339710039259832896952340356459874730495451625903596733730453575545941473704265692226751277272655757042477729375341123960165307356823493728955786336846815381513139509122278092937274395691488988788128588047005822759591008180197975547756089059876457080188821171968212045338400702063149453403314269587592768635612316120619484441473064166551800300948670862726376583660898537660778644488229758734503148769045851252540292663854412028419166899820123666270961598099285819184071343797520126209930399551669078482390666040571316712353212927323078571970879648346847366988838778954047107515060926106155522207720049513037211270844456632972148461762549468676403853568997098914650223426407024658059043364710911585755423961189400466580764137220847146707595530684653221473422105441363050948454095136229445624676954374099108621001811311890782460119524947219564391081950346495783961063704618691390155639032412232823939804801574349898586926657434427116302581173818437553593016075186378337441676861818232264626895212969465232308450369322670575351162307927870330333645193881038234996014535979872186166460073951607576399362873895114970467109128477566436285172302641236732757812492740970935946486162601607854944404389163280678811246317372842484676355976638065442071421166736586669609563967748722203869803779121499750047578680788776913716096193891220199818118376468081979627756317481583935829064666314723030776003129540833981059238497485734113509058864481663555072942283552053302900104705321563990083602372053047402334743864362241979492182681608160023051455314540219713332945446168807501449285585475777380596434633789828308881819185069029409672331836950097750598492205559286093649409550966118493538022518302330218693762284086502707419826524061475078748659365251540147644729711690156834189812803729013389064259412950490102439917304529842155897786751514073104788575807956029638689463000485006551452000374286009564954227722033481130196253941562369946347353950800530557374600026973822774119494086906033722011334829333215193134700125844418767400115920718600906709368848873665952654352921193428123383707235187265761612015638539516457903581484106152884599823299663706072140205013544948491726031346473134084409992058306990554802009463908540094210255755464758069676832663989592012322716482711788395973766467326969336651710971560689626991642932915110062184507889447251647207777681115634928745445350927101737503594331709274144453162017369222901322082564524653442201699959916597336631445410392812344323668021461142855266870253630345729640170038337118990188612597681343812172278871149680502947092434364872041228175800304891634483295575952846834765628835482174136895526682271340827769457738483986797332804441561358342817478516010914656373499750993973173506840847249922876539024547706682822477621391442193754681558523866421563435215892433856648358283264579653791901938361633429847729954198127356288016988312735561653547711136824757339179540432359575339248883679270949172850348850637530212681517411496691954582392516420399615411010093830899612061423078709175665604428930634705488354764691123132433093862542500163321974559980559253022125868761338314685074309966950343321527293231904560455960723154376255882357279422800279346993521287310823106651248482576954642272150830990688845456323644137467921709773124671624171151687972719710704142154667699754764965523749057517734014106484082307070847564862196653995462129843714137217419228583408957917833369021127831129869357508861770325943552443018198768441625679484729501807275397684417932899721559810400726830943115679056667169843536583802151231405675503106952639409563429701121952479089196637855510018150782852849849113214608612834616683034228652589178139817355956093470524908129737647289766170776485269476020181343923384200974765224494405615405974542752991827700243939462254962000863346399741965284555431716806542351002584448763575712957274298655956827926514217891036210412674373955213417119976020950228883524933242311135022831091645392738429420510407698953002387228077426038954774909720749066411090219175759987356666935900507976415162085835754826467312365692104928591419198715430394458042983656130423709516621577979527288877898504471382660568548758584448981161638638576047285448754452514022135054687998563621043982907959812361614222734636973938080433737479237812130848239979159113860489261531582501286663178164805974007222723879200480415232530071417160327222193407890264527660839742273035620644909616400819244666752368901994289580908131908687502494759351405457824556946304205004003777590170585898038392619940531144049223931994122672758038328395049259985502951494765546155429572534942068741771870924009547828244280837435094755284449948735631205762431541143802208294390263188534185088308149929358367587561923168715674231082680886376637003605356477414761525013127447145655800353971289209620864972188402342604712018355362177330990053160952869269923949623172391108659042024220584066466738165143336861758174416933709089470492776466466534968040953111476547755378029191892776182148888980083092097265195006810576051533568500714283941980664868030550845136599339786711688828537976730532304282861590665254683440006271663421716504993726012172782586732388367439871847949016208764214320249608958786726459838764586241127002392600676392649217088216668421420717037543105226007976696442454283535851381108821096411087125816674076981862259840749888525469316087690483276362495400772755466004039476569477701543087557772321538391049881128510153864656462420969672995249527328101480087499469359647874537663301083897910651864962084398548552892295847839381662699479709323842204677895578834342176581928951526673868262623965894500939464536109538772549649020982022989395081167686943177071148788568470267794603320633645463519547292040728002113711613206125812893798450765524208655346470233838674525677415909067464522897965451798742657770219259066038333629732630627236683334491966072750756099063897510720772940636754182276754872161068473156880663019968985655273833765459159020041452488545172690854991985744299485200949271401717110148274807512762116975405389254886843101043463514396714294844182755345408911801799796862670065605827113552214584998650346585566183778334916983944533295145120520148479709065134088782446838642908322246673097409845302827298843049002930626021600975074107528502259446667760340063211114275440516898924862638289785349883703170493828381938257933611607169315110322995911862024211909592570431844526290679858233446676370976027795010214546243788625016137567641731000302793365412959093537822704139804752409510277669611993563228146615331384245869751030367407674953553667830281089212850373428521146167705121277500179971514953623855310091653945407290504843721844824423244755061745430019638232546319091633561445058652187235260027437064960043576269836677678769303049864364389658579103365479423629880604874843943602188333316078433273716291530393285763029412477729575219512647285755707980594618923426617016565847164845199899768621969265525645228328256985165637031477912167538475052953229197917605917320730605027077389524928855748395305340786558060272860483953136149538187667247783693737784275539758430813590273912683908900757634070620703759456160601938297491017227690656798114926383799202261369892411374196993638215237076390141757900580597295212249060198607441341891338775505084255716677445119336481888357745037691112555658657593066071216480884367289998709947118334085849828617476704444700711819234386597613626332801087197736917814282155101618427242112235853163172188979287652481723907172535778538762367014916946116046798852326769098147896249077845077162262375088780643908758288134545465282748743009596488320889310249875516231873274520954150483104663987023940538393944447770154953166713005403062834486024713571117270634400233684377964488906398518223825774808891883167786633344200204314458843234089539377844387350878659848530338664528624552624502080483931340484556696949126383890362015506643902036283097514900918122860579529833541850438801271167536114000155495987323169791018318029572594269081869862547395626999422963333943343158339724810665937373706908152700811847352850368436814161832237834081704432852434943793327013126577809989105347730641981440239458405480223237865253425860705200955849301960179650352769992032560441689512845656779304613801106095668599905218313993064110730113639394582300753154238494565822358545414760081167869842408968142973405591948583259057212614075366853636812354713544418152410510881951932562008800660911648151595349742138030544509728350950745049213320517749612856382477526690313078550877427154154417184710832015900944527677277949226964964862653029034160857948387893127805803376816252995136346145190161998444166492704301571563507772564617052347309425876001387986779896725652634753620741661877540411449652640696999431908077636828076108473571344131580927203187070428380931226289823108589535978361173576831450794985339559256143230443481317784905866189852925426385469747350114233626924646638390587293264774149289953414041664054464833686904729167775124910861522781766197877466187946872129818641275593068931547874703126963107733751768965734597595449850931611066276546155535332116906181784108314625221837535718668107855121651034466241660540716791913987296545037344288636343714172562613161087980889933385563715928106571905170106055343678996678572474244835393887237894368334292718518562219589041370104328538503541342618707585742865849081362049602418165857648034933889066481572020506084655753217394665795169140809661970109170035803239262454716887546053690320172513702725763416194868459911392957111760514077750497140036666074992976834177548537995799025506848755534283618295259682124151070329258400270434581283255078829736383573069584328730185845219322001297707636247143426485816695928899097937526267343374108899100271617601764446702904315627017729340237648495748894717272528480374696379660403660234721745560851597800036799741408292554866407389699588943230765015100634527870031832750867368984537537735026237998703245940716437826123400302422647044384040419646299097355845961566929685656914013128857907171231435601603434529688081600001203169317533567395846165699574111317222154088044519154652355743761195894151168066615065040874240580138882946068883421998777612104057887080504426599089923649804345596793820992738423893749838662447592410216700272420986528146360425645099651661146776981641836537248205288074262982787578541800597552560579953556276741513487147590496812115876746670937610630465994552403558447374759467578718004137955726401027284204190640003776620862823638160964130960741850928756662365111791352280396717354825610230161877220730278530200240040292210016181749515342048232821941757465044417985231703633752320559828266609220250284665117093055296158044348590096850906908640297254623100506933778610866352967443584430809892655338615088209127269520280248921391948005172321938413855196655987725599030656627245046879175632979414668799382867354550739937753061743399570168860458881438499737403680482118624951278793957869452071079672107046573013669138050128008224915493041622693322976486487186125905279835762706959910893582890680749486306356858171447851632920292820493174516278103900579227366586166065014746022487102055275960704380409045138377931505988895014622072995891244494028703473929198815147595132472019926738405978411087712011687161276428011191271365616776760375987918511126266638254454779680487576540350099657721701153450885812939914762876050285482213318304308266067891307758665046872792291861979671027978302501660924051640426529042149512883845438989306080640358071131798993548370316875826379319214528650930357257247670408025712020856705683042086095642055203193865627805027271074306254336544404509478548568171298292400569358673872807476222871001403906967200435362137782930044045528484196285986460802901268563958116363157664469129419063882728599832646514924093884226955367080871500411225644967939678979674478394127298853847335023318258230155313576739300737849660339065344340744688067713807343350398497434641686824378959431675112209500119678799538071852695182722547763881837953505535148954705313202367417125358916013962393770596408848441396490054504290093850479464547386614626335885385988981989920960974168736976601219409765503641419726660205598643398409279212520113445342422067616870403030053957298619687906195440338642499168667598436586069422487143558639438856389978392085788326061699206146543924255971221673768398877370388543440555387053536658587093749256008449652452548635192001290649013386268860166711169067406455631445673430874173195595597281372404664683457715709659177899050312849494827777478514778662890396200184554260963826595141892932755073627201571364705283215163400450202880625227639975921548453286606752113245537465536601523893881923666016638646632580314949767920380572909383120238452123712101531035899566818615488572776354332482944278627281278061239507318085427287861622665455137920950685666918253723778853702853444390916750822678588641729647412865540790379505079510353900580859711449378100622365504238261598577763178542209440681032497379587721784336695311953149765665886518720700193315759832121856174956880771000967695900343980714949962234467179969284595438120871900259935622156883781938662477255280864728472767344177942885948019785411746997229834127927265564836090262396086827100345716906135907637632332052403194432680198632634623042807169064166995763190451995229021963822185664044073152193527065806647632077563692484505471646356756445140911574476961815814239913905770051761950856210466408170911394756643824692542206820481322382637180883705255798324147844497386138709707425820386328809469438948786739206340342104424714879907025579091562907931873503227080712208140554839381341953941037020457921588033509371054901337441453016367653589233617928170029571556003025059726063616082940060596953621474051158229590541063196916438660027641248901578117728834779083251096454552064970516230255645346216841877250130330713185266233787006936260905826808321290525835454639468540195038827431121019628270852772641975268405930020172377997544671012140588430845229564697388053385498688109525221353108300227319296193996146159465204720583991128966742110436412613483282449764858548578116753767356225204132959940650289449883028553256562343907379956514884184998562971599600723711790052097511741838159346633124658752561756540843097264751074725321291140919413243684235663190065316686208835513419365134152047442063977879093506686508781507760976929768019490932634294834078514425038603069426474529708010918727063896810380892043069919157612706698930698909730008168904352963010136498589486179934252064197540623867364141488135350955273309947808575365656372408829122367217666061065165671026282343135821617567767715427677305090759344172151561146424089855536181845120392766349851561147841153400412780513606752158152977162462525224974963855721012518335126084626991146389564960164793883697216371695189474111301149162521546974488410290390487353081075891500480338378769911213729566719403057378481012703918318082109303164724415217245480271240402628189248688919295854874814452164596108222972629814525589388487337445915642476454512617089958277410216570464301013441904267233675343064608275727460126814629769559001905775497365134479153616705037140617474636632115028858147516469605179304375775782721015147986951137439638613056782086197386762829918779297423519898725581274401504641644307026649568674579598960133318090543303683502990063589897345718065001946735740100962135581641409412708890870147331026899130999108288042245022183576774145076191057173366314267223365102589604904855453281639990744585634825974246909571130058858030154339731680492945308116359547799216597573508430673697710827489092968298178317507534495838714936876222005743267688900399935855221586456810399525071492814419969567534911929947630153184836856723353468356253378074444932818310322785738744551223227210940251633034435108644813185756525772982830389326306547042359187429599155401242915744010251440048733695019776266685503127040542211897987355598702088684240788974553730195233840616639334055803312732628759806214819911560400523782243456910655444138487651360264636103346684327422270370287847792034382892576715388319128307808898833302688117680438376261326812888948168508908453578455318628612451117671464151941363488298509342639565921569641483499870763482539984608031398080742861688682278796228456940775591206822619006231022822216135973485106064397851247097206431288805090182288261448073092659323716868337929750013517082756214486684327073168985355433989381047890925562762959147802734346661375804024820987318981783142332650434783464277868744853569603898501147657199698189474135433418694666695111303666486666220675565414099923582375371598010309388779716908142548001405934107264545927576161640879481978027217132326452637555939327900735892967787997892180083228477569082612035969015992189814190126822199373294074662219270105838103101614716269070548933958238644709460370132427644078764695666117988739784553589173381128045784896429507900474328233837657851098759869818557487413558863587842008394656455203282013264574503305724508363920240328650179094457037717674787476314733226502377362953395238993206828437068914275624994478880723460559826622736237163003028473877608228549323961930646965129210543359067713988787769103745659609113500464692756723627879324679863153481663347094268974848196178282027624236652136149395503083445367794060844985428303063777108492401014907030906196347058970118358786551186784106888973249351624196818021639540032382559324770218346799583058218547829723438014215934398371679447799742423602676747791815413984286812729216078800973133283473574112224703194515587319094281406604294154408821977556244794868144978339084906766049388569572646314961618217822869462766947965099998156999599818173023248708976691544644647969807970784348648358284869324159544974428756829505950385132558315866302981454631441209165698133227245883058058049075808757965473788290350067690731720216595144097446331740592795890891531459618762843414414985580587502856826992368582061244629312444033992146028175090806494765833582713538278836102552350169985242937680157260717231494196835813535233973577514555115124993096700499822462829607120272481747542600097750607019454351905658931334879850267389795123392534755206765102471527217172898493140174526973280581429934712920847945892176281992042242355942121709077348595292746403075888570949108069389843659176325366262447829857962904159021129959928040801801108015403468116294904665527990347671703756222329451303381728098700790124093109638167730086167306910625848906037511312653647728578884979714960973469126701363716005135260797821377583231292902939386432424525679444065087285315915073975452101387706570720031095638899955147846170423170086910613156476659015089829828963672646646517447175221173233713209598000346317352645617712007256962378200068008342435708304197370751562555286523854613709358660937330532684010940040587117698227591646772022913251868251183376352830209392587910129892046286004591419842553365007640124180236761491809876101401897703982150901199938639902490038074978867515944346084938005673490394440548111457665648097947987662647131794814692701459644624119513984066003504612741640653237366383966347184222437635303492272439368088543859594158453710099130881036899693297609431648307802709399390845786644334814410005975108575468352274791006900608676810933626729930445772869837712577282922644450321218849055536176741857197483200363113808493596942772339075745565746151041085836765774298210320600562217527468249803672432205359614798860639181352034386723470052749546673764636894579228670173710008520475395907955888400125664422148283133451473476170756218276428370624878880167873099985969507785921283558792340057387397655712861293496237882516325397762633224662849571818567979434627956426507165478690097402685045813408436186083253673121144302741258145883563016271396881777986404679600431026034294378875303593126142121649638473324072829836444816467435680267461571280985134734718558793625197520063573970165292060634821478768901543709328875393945542213902140811869073022535620081231931073083931919173311445981170421770446826270755119343392886617092127712416700291203948021283327527040826393114564446155914972306462790129016081308094383330477215034486308139171211628999772773178986831621319409194361184842060081356400422640887425190612458905755581190860311578748196006426655067992845071412308393902988896594427089555552583574726108745267073238106928788304620221661716566135016861866511981561000351126030377369806623995082059256724278376946316456120510964244897135979775654902352864981893030843861607883387417452708194052809670768740561584997201929556448811213552951175574923291272454041574066189491565757210684141372666131884975259826548773424325316132296199993300516979917283719678918169178109531586244051223595703768212674832368955030853814267434633869717538905778114071208454612182850953294904371495462366946970467633491535647781545175673479764006310409308923882095990367219854024688670371965198806695845302910736571007517412833731529571833169438690409686593252641432584303296283250873942095049322549441313772350013301042738385327683295964629003261777867295990044060695487109805884254444211205453790819593108715396094186750634641241162015612838509436148307479846116760113602864163804218738090467519826040037152763962013947893864557715008869211319024792445046650631777274367202937892458297199986333449419447735922503010164842045097066613015457097305255336262776360732199447084353588947131124856792709775860865811794902363039213515065268004416336627927172081836630270792748294097041181680126719898331501022159729175711971925180946264576676147664726731903756206805738319789988133070645017667581397688547231913526572510085720308491563902838806922975363264484820953730629810886866309711605361479346116247832242411144134733858666455965634304334388960464183461980085073246882469272846439567499232237835739355808172633590376418100602469430266305231913047897767653196064834157996476283208377098676628153001734893046347409840981568909331558601179578921205920373166824883438882125057677116419578739446470749592713440265340009721693214092840578332765802475472092305007325752491072170493183671818727501336226632498038363239341812658565900377225518308781774507917528715807168783890424468388624675373366940557087010244421884815285963664448472874725430103701694322933699760603296458812897819454746829741019473069944304571565839052019550335674339106530236243991909345900094896177504655988035646181207872522882052129864256595191048295111174712864703404143307780231999646003393350372049386396616253396143865720358139745118382888790299981162611002469104624535550602858524144571931284176162735323502978707569982785800454470615903382533499211766088548883064790344735667891009822880758199194321557185461721684383863127451206001236313906368409995706688365638775426898369157014776090714536490194043338991907752156693939209429935187281056570752937925369545957548923987704272151105388203099051481527719671760689692515357279491641285050056832319798514610688651572707392738809385922769586401513808800389717861659786376749643665984245589789171928222823482169720500031948008244362360133529831655873753961660977800309505673616463558624101910257724326041182475608022083217875378114004859649409847599080831587673911807515127979186697597819839342935611044048508056138542059481732970054711909697919028060551856425523533876578815446462733192159921383120732241784141695519655247818506221474034106583474976157585479692036421152721209271333658078095449293766180243907509142529818111249730461575902003029081853478496927285856011291468315166852892315828867303761545147562544102686890693477556219485118958089838495778161027482454487569925628936759036016884536083182634514223958682764426701825228935017696650072753972476053456566671987366881347910078909809854960579200325473910681787643654345894763689919663560083300521021279281730303762214645750118789788484562810353739861494411432701242195034685858170450404218297363345945655021535138891287525034394283047330525973479005097841166442796806503764390051893437880121462372658777808038117209446784819944368636000406202941997019065865542787952732047730582086684903745390965516310488690022383887113052851113566841991954418576754611258193509822554069610376394162416718877882062544501042740171644656734903414049648687543469300366914785641734859132837202404249632253503372421420375658156205151054931531188277266696995712506241854336350396744735014397193467167053636977959998829773717840161124597149177887124510385775273362118645934788644547198969993224907377089465274457292699591154590740624130669689932135531291138402025281491455047515324484204190707614373956577441782998351536846174448882799298919013776584650952733686983484801682849299829476426914382947002392586452633800868938172177881277557381371248131299169235202683716957258122854162438919883832996835708418412437810200147733307525643636512927876993477726655718148966804156165798289433665160895128605562309384884169944439509270326565333826465710210111622585739530448992890334209639389503196264868814354130521914119789839331087960691135022032198376911671012753158463105475988134649615145707469832120790915369147864278950488885401112127004722514014236819958784169830294023042216333924345372762479515332879429736468135128707140087511208936687048619707927271027172933667016382137427730464681036845372275696981249852118847888794715973765617198828007773229340082019232723828351567074372189586971899502398193738198327740936922105625056663212764578539032788382795735389597247623280533752890189728387111660516351025905185997568187171020455608272874621504521007528367359880433673290514538663819288985543566866826225586916899563139553618137064035497664170274464283735279697129602913069671615840479470870949882294572054890796627299631318765805850131986509634667776615510658676705748812080587662400909071938515582196582800442888916128837196744252934998656273556970587277398801669655151867573765189522390886222446511716798373713788710321489064661440904134942573042787489569712234389487223562285503390251771138738025692945946505069829410035747586572597173423157679310548237888380039552040548142650915723917932307453792908997693824550978244417047613127060746244743251944489853796808445534150291643664320542505492796288797376549091760612335657004225285482525762257101609762099730966966324203625899084459873142626082943612035172220105642369100091071274682209184506298501107443492721905915987018020011068693423909736711891887392342738279911214964163454701807855291471402617221764493661334714017379057871600368929516934482799714107017558069496387540425402890030369390696807790208332744528475867799272781758796596164364773734942199526534331327539318267855880736393650098352822074949172561136857458046043328655644070317984708403002550939460030357467571090043719901207945098705225488918513690669606861944476943116790168760414787743211563212943978479070951443430299604834935568301999276537822001440397519716536948981249044307409113548773224378123328727458655588752901217546048812777483355791799536136159250770146240276006552514661086536920278877095155497946662870181987688483049265458137912147589029777240573496759245929625010890089126766193495839292693869952752322334912071034263561920981947829182269739336201210105047488402186849257400956830696638886947777583075836097728383871810829195881988013946826349614938850293734606993811262190690714673221790947169743234326771958028950255962167690252812863318134922916509976208203953873513597588699860955485439952550335823355782248519849719431951876163860071460875169511731902091442726304407886143617698816227516826595442698692576525969459599134272893691772641547889028915075731053558431892295805559147846559350137915118438576720166700852958717083246386580020338004235421172447928066382434961124819137875546930950190247649497652818636154719739913112656533552809477311220616528529429614288026192562143444869351924946015316450192371132180670186144559499280670382610505245359777267084867947561869320593265538230311497663780511735178000696752674207905021849785657781215795830536359520218391314060326255057501570712928304110433633523788744224787620366512413618069472882676864879739077442324413692990453394923494739195249458649797051357175231395191875452012003408825369820969153144321157280274294499684111290511602984513648330799849712765973283490242260679882298784537203618088002747113258441171411152892966725215283576796945706603831067935358216087351852643173799304649010022610054399240556010856338063701848237854274583311699760002538292233578904072956134451686433077005211337192091498207819226674753503547481398879251448454343930451513993118467857565668791355990608333542770346850197226451812745155623830293965807195159196861133279722230038437946852839901028412592789628241517512945168405689654273105680994854289782018522458402597810020648686757987616424834250576099966384538382005400351402123654184716535854939128976727142906293888218008927218066224778018060072840556137839071189927113373837800307122962409544569299613202750442990483239332702936760313932149766308173512753108509406234254265651649928065543834144522115514218950288178765452537164658129371614849294933494568779451322947982205342504209937610109830523388027266054301428876182515546321165309752739831294056957545229893293080513149753024239964137830240690152850693344519311881034473227862471405219321757364136790500347455699040646618222455178152867311708371444761399414394309851524287673599711783859736411233895237761421699858200471932378086121942655232530359886346389927707902423259780378067881602368273203766061803926974373465410336667018977227780077476816141607149555730288256283340412826342834480816669190125121504818684687927535246674709636342725655751482785805854186541901671550482078644709734201210535172851314249433040863921204246584336641727231979173148123642866160959389477125215890197718766510417365307634192578871416093579810335204617923489665585558261046982107173958266681560933283309274834777920086950058034627033393715792005357043811464563849086417637791737452450793683371389139208339907606580450296525407365361068136865700275626752974845059200573875051401192764005464309587071108430023041792784228109920535496054217877288851239726396518464125109220877347682826884904174130609515618331533161218252643036412233795935755758500316963184481067078544257705517895351860753334124207121270782027572510566844551228412417667510319824513776859981248489917332127627208172992509645403344727839742873772367572677475270657167190782022783691913049760009934659930415120781733035701972315986045517658911031397504332730645551553682800979175629862263730066112296209837306369628338743223823914117837118273945259452842826130023161574324853795906544734518825327705084900790629007581204039890765218028839798813001538125395939619896502992553985824549286423229579177031647731870438970429302294691808303888123991123249588788180032772554542084198229522355290313591948124936632140027283323463040015146003630335851919641468009318600669958538557459015165828300642187452783067463740923775977059730221718374213481361830569225201293209889148009843705099310442911526864709407614004508973556683046011292703675538872874374163859683144301623941080921320271082976253508392996890638387300395412629038954884703784806105063345384232790198647890134180962144070271639501060532710925940505034898537392289303414219978020050503810880022781742617718023300580730301245631869745513279635990087784699579920494055968018682969318321248851586207543666915670607243948461141429840231224036195522380968140643861776715312963262356385186456427316046281967373518060546248957966270910497009736396441818126268533610412549302664647625327623011888260074210511194471802160960500577919131530707027151498304261651957568749037971230823616648417918529267762212316720073919220639617385898072175979312304238952492738087146757384156316067344033476803831276032669816178530858625017158675879809001306856586846571093644859417165549140710651254450636797082620841687271596532563445368468265825316744106902192898624712029254956666126295780476153067927072048180403542236358488027367428371586096324217122739787780917431632557714684751087559270348575295460613800414324825532464453109324336576918375354571140387325957664293778507106445683791376043644270924045453034053293847679930931070961554008632637748297755236547610723141508201973122846629979520918354192244936878771348764249667479156155115594181630562891787978184684075060633209661730400028548127957260705728736898510065364304601369817559891804092028543642123069907602950430937091064013211500023577049113799020116864632102364989975726307102108832696240874545961237091820634793874945428631544777078569873360384177903504103576742398572544048432872475746402592895161159636596611321813610368888270499245724722423088130869255208002171478718073840872689399454851784625575698282281064902203706110856950508865156353900996226875519642249921200778710889205247467986563545071686130088574843252931441563708463813723227014458528707719785958257325396950074391244775128499319622150923113959470977617928117227692136458907326019949853841537407310285567913990238941858371856252173099589929730582306245363604897691238091972545143721554296645963869637410546849345898989467503687118486102081590615724628864342889706348413932938164580889468662798594367969287539871828754382884661230224443796027868860264244414385251528043397236707368961757739059840930627815244320211813049424953588621694043901582765793419223322846834487923255861560367519778928036049518158330764915132008011162874493426898721941134177740298328411370719542468219708954014714180542917309090430250440254258751535093024304792407358510466662542799649998704952408668921466831461509439849482850196940274978315342142614097168251320101518183727160333116162013751970911333860660018199433229267602772004843758471232244859713172706736017974315615965361578928289773171976673237337988752639617699705610502653552584045012074563775665932195184492983219391891090367974442983451126003924204631167767244762852777114998022886974346316471233240999114310098519937601675136322490780684049684852690383665987584778020148745704610009848684650429724988723275252195771928029340777617934949148496597418630876391833344753076270625982306455463109543588461700102764651467909377684906942050391013793376968014973991758401547571455269641065829859942022876673686399977251170925478458677534774336373679471551380418504452755032146015211321073658906453987751874852296308323792994405773933722426038618589826295357885887045240451219136332098838506809916996778161892726531152420217435202848434850387290523467240095355190959482695392680399595312703340355067808810906792078809517672181084152179563501042014197173083404553605621726336835534914373341999949645624765971570827686356696330315745614586563400528290323464845510216795297409090573669612565847354661507757081261419412724687075861846024606683200384126869072836572128661200295347439739858539205980119826100717240884953838341709176172070580375228808350422655872782777806253817822963693177036681189908203218779620660844099029336066608886610412896797466910658077689225430527681681694953939874031421569355245181216786233767702029537644901924446867135073838903707597543937816559850056154757591556142809429758005721857799728041686501758966316771423536486055547631192862820396476195687938286196769427248100976492307313320413651981840142561723335940366714220950228222955696102937033438360909202906483345341322160228088992945720078308545505028376529285069727160935909232959738053104704589926868331021704399180310122670074640600657151314771610695769043290038467014508729536119266271946500410283699621922746220112611720375193727082824677195222716269797930578589061062821077320135881877013977435539358354559421628194856002117503230289462467125558849304021949212108559611027440610294167790320047728244345368546900417311927491604374736407470204718310347187980811136737726881581419264628712321709273220161977663128822160286652664086804282475231646004348472815313459263656568246826936887662498445303304292738376916062913213644558399094370049172134508613147505491994873008567282632398711669680884780080057936989613789311670457665395978491566779572185774422526312685774020730926113275257676843320963946066149631711177186954756268162595041432640438667809944833319615867021560609518601475428252242450343815573856392083435598965717509310463169427809243118420089400724455267855525891370138967646876123754181254788944016432130195571825992974678562946116631722678989760644097698445657452701031759710636038887619433598885216916939551721770859483907922090405505644597972999331559766164225296933476857829189164472508088665282268517003672306972268641203679026386314526453442068307140616707987862900580195265042184681014863116778694719088681591400537441901959145499882177541909581120594439710203561969667282355980954912046901715493674708427458720217529009997472481115139244469974030803640212235143414706993191074472442350675669914237551073339670030615301716996029877780104055983537150861635204603797916800820870351286729397601344339695703960778306209257762835729305830060031199682327300965073507686364747639646940603848569852940171634572327341540092551960882259133198485950889447348239117402134789592496020241002819849817759587584041628527408913765475689861028614691959252983892204624710822313153108501512870435912098598260146633206988562216431312087182331068771176684789975504636798205164019083830789000287746596805909144641994148182475326240072910503519329777081369243509471123488819456246104199355492144738808978185596152716514469523088953208970768851238869116048337986358458902125004791496744470609926091510687931064418918080548553147725769629447789107100686963565587283313633595659298380091755228717245529147739475596057501719764938858261564410046356328038464156271555817998634131755976325354138286679435983491240755072201276185780076642721307009769712632093445756697470502201888539133820314570368638003378973341576416861461971694123407057577743190224696093283739952966823015074389673751788212905117080565568992592871956401050721894323305599810997813770183580922684753246083048171297591742970361924219125383813203284303902837341663533151997798431397225467263093158940082287840549399804355801972349172867089116846052547584335331095545757264789174534178260360304499576645060932297390720813928707843924422320387893221570358456915351875442284815973992403189103817405304991137963114367085713897112284403686869115932284427013696518871585794676783939762386469959759099642443417487323227616595824010312708954128222706108752495539610134642503695449084413668662749737726294618141641002210510944125999264714918039266158857589321818790020319892995176213665903934198359469579573424087858912843706567254229713472462916607490843320091836971314321160813468887074257485150594033547351074259519438428892276589472889100140661225337976224074476245239057535142127187686463425068551254000693595213115365348777733047000223787286554201658870776336276700083437254287331193010985135898144881689501883869946288545095165074538626788107223685697795067723733128818130715035105375247465523011866289231372612938136564440678257233791902586932297545976164239233485963707735779378128018175884935159249128967023342481032526897102421149491395956433798728482464223503547008664405569987443710133816506493567907766823243636557251181373973157719308527756751280319148725937399898611365664841726526632783068186128770252822132463395658574788653273816328166441996690805672498596141660055624575218166311338617376106924558583190597953464884426001468237393327132637622529394250387994825391874029081332603266018947624327634888720406223693284852453275901979508733396002814526864201874309628319143709150816794798195799387279753664340020197513694841399469662920280197338643111063421682973553434382632729282609914040686467826964725172473431028345274406409395849961276525736837482361146251275790823888906228542222318864645873541421951281470865108893798800001072744748649884385864641676164207972308910910323354104777941441674317558294727864677574049462221203988485309795070702121279851055296163734578834297500722452081698791814932437028637425762027212307547121764703466308277390749111879849004749700671516527775546733972768558181887906839771641604638183591724862520223803342087756548223087126254329746107163423151678877934463793668713299780529670877216123831895156540891786874344421724649117490770435768903713880258431877421774319887520709910704168536927237442463776610718228010898844574546208663912806114970434536837109004035682381924355884541964503949813975948217844200850617080655452209857973144084013079945644820553852442450419283793732760850367634597433441870201394474176774416925048687287160154814227580583085664619372999767774454526748026386776347491245372750007085156488975337106712354351762281425378395486773941675126963407681939003276266422496884063425029951036828555511970817289217862505353690924065986678473566318883311078633440121956016274062690154498350867004673706469187947427403460703010669609926347043743907535951008420392401951271419170197333231173334283763639749502459833176377902503404483388737984129259425009032898657047778685895929455859766390954043290671697418486870655989911806885163518070019159711096514347536795295687593420551860549042252202673946302977000562878558733512276889338152138170391290373053911492741938795190854182570891784610472002214222492477430323351987289710064623534092155677916655433527894742265434922957298924047021387615464882053835620103461316349810760758197750885393678157895147963744657757123694572867157029176360140066946323369442561686753213289851045815400709866752396078090147868755493199226306069509360616462137600204370930038743260169837740036844650524862704606295591839487129428266980678268949630189724501816990483592760929918191192057770703222002194648340440028675930637486507497525240428938446474063741642350812846286965243744927487066077447149640362052052397978687914092540063150124045552002401853466481616226265881433972001285019579329663054543389190427927470004876378872412683345166898540553446680908809815772474147288532276926275651999366860927954811494633079941080327259653169702835905769207594509020423445452790006677458449467169302721178979359584900553059065255437738678790351030765487431282898586029457025749839086636783423825318523813389734922380915464348268152853203901488412914084998936263792068910333192452973166662650164813992542504951157753082153531420835954780179000195424506338728337175419631059574667805454261256040236599403719929775031655122569437218802351568615725464924754546810923262438701294242600201668879270700373036554374858847466838731743481139408081509116377807245683830234800733356906859621325644458332184414267749295750256783026499589483188773191196982330318364784724192389106241864956221127996814811549437430712075760593259176709205295717661231570126319096499495373646031554433805517543258858050209331692279471098607918067248723054402007823969839439688522098604964682936392452106335048111797283510009157272613319070221307640068342175272334859808343419906115617683797843469587452310430323965026833912564916362264928128454720452335692817763577499789389437662076732099625662835737744977799104487804518655722428178052124245734243620192838433941958736133962300378767637541974886924577285326735611274418780055154025847387466792248952027697953169033878432908668948497132833504386232492583179333888061058660811500218785533369190035494083471224525794393812355094236665538586400878221328841067040572521259177150427956091424294375406395166356554167074203901632010337104339947761290247677484427918695379079985912857651936523810096113697092244964050365097126161544889547820321221737378222343348190472759240179832037935009415817237429239443421248470698611786702943122859402579445841618912921823282314473013413351324927180414464155732670310658014521521272177055337147435577612114320688886396839190265245913621926991988919494419537063294198012700207387821718730378372482075395833269240849860637644300242778425228228378664026341901865685867925394243235371725547065366114409958974583712948518605210903161622342380210393492274543926120643728921036953354216566194391267403762907035705260807908607286046054226774555980459373567668468298263631841315277652808461581970596706759990533938407106233499736457693884908273977782089314113177340170896485158556244661234756704225226981708806481500520948040542094920888500770522057409520225933640350903187021243611281244091445881745974665173531616386755729222456449115311393622693553080049398428152454530314040609844097756183967528045102646974655559489135816646802452625775973239741706532120728104384611198841416097551096301314833252919396056672817940275622212329362242822730774230497764662927404769522706407583275863099698976293551016506588233699354179859790874172297361364607242358318837808220811297898129169009842851591634757215219119899410164315824027386412763886924626322393397580514270286756927511085758185954577269594585018400963800087059082491836328876169144485319812235726860470124213086380381498232596266850746697825552071971638788918706304595623019856143038771050180090162386948397403120125621766308410552117455136551877280506244202141175327338000981567572000986810459146449400407678524905288113894123039567911858249098778323312759393263084642741252111873167689226879204676876451222996275543177440478235658924377403669379965278125537756318299432922906557378879743422463490297835528847068775238603097858934912044670267479145953344243086438801428848718829239957337014081227295140911813608584383645118641448375810779834152525345411070945382843870978150928240067224717572098933231069291146641976097202271380029666308547329541665748423696938164223629359459191357204242169744615213273895141478813669546990561842003904285165894106016056443595719048273788911125726691066124440922407885945185237924679814221485848487394191181235995678810278810484554181855982724615095564529229992709236081042204580131926799387243653301359364487813121920160614635744450153993495711993734319733564012068613618248246140580768855237758114801712133853595457199157084929690695766508382974955007834350274062312276939754715169743416963504037108233971524081121893548547945378081817989832933026921124639917875919705869976528261026503496404315783835484323103961259294147341567129984768484165656116432829479824286044159379435231957590779198637962066464701320544680995493228602926945900322933679933428236096995541423412277392661104026504830494949873549894211695359865487679800068550305749800870075166275779994459792803531393198737453167934404579353561720957505174706883701503207488668224601923875467496504190382698813040744593574259704071298197490546317703198935340945349239598910189381879102519318869335277505606210423418420812230266903636646041585213691216521302460398193854957002151992246397805777703097133692348289453843768959346909829300114594277495726545828583071212830855247890928552830574158433366605020874181714470308057190713067261211300496486073357776904963589705523751875007015412348398467909286671433270836919547495996690999698848871673058197756856852811977759799847131494239362265476082767278718998747132923725059806243767716245534332185200095360373919100239823609299326372792779762836488487159188714400782940156676322191606399017318282280744892164090230492872140926391787643222127549109544238365931775800191332652556178464732449428671902196959721728878719819761152369734139281265773345460128514585668662053560270212667133572357740294026578848723074301628881994395047647790745022033663884078515178815016226011040924822130947233060814867174875086685248913168485707926778623976027708272086514798361376974552283179257010835700847398654887378857265567005845612534777665015143564370303952852920666971546870623908979118925186277029705114439480561929875872918825233670635387491174295820309202435637796107318342566011652867304752085686709778709204251751218203612823379807297363620160463135028408020957683452305448656225872760449339176506937570834313705937252471169613973061735117516198549695549047514760403216632438932415694018262426246093399880223924465676115321313327354990510824723487196904024377517637050368614305913487155554520816184350368358531510717235546259730698931503061937974696545117080568000347664041356165344815092312069650403476609741737104422053132045558595309807424384380428846215846973835336321490007717573802736614010756704280424827234172247491034736135855804340801275920672454157755380574225052264121983251647534148797232057680332832198984113924219916192481590494414637124646021532775724473650010083573882196269559602389905417173382739635295348449333980639091906683891201417850011639947554380943569663873720481680447366898570606308610902790206438775000942170682547406732839098366993054339900938636897954940560840598642050745437889161807370528361443128181934685903029933068366691941030726637042173183063739576565468499499671064169388062542921907858445225855752186173519192925634184507670439933534570502108114239824990461132527914069910399002138509424900129127722605422971347516331575974408688812854609055258869980087215766147654633830503966023824533888679979939706441421223937678922045065202760446195665857123978129068181188638758091082539867853582250483025984948389060085061563963516365265811272351565176618105575732011877098191747181526299700161032016367340361485936941834776415842419528613454242081091905752866086234501313985386393043209026840638391851932589145263187333038658435585266480883532359695530008333312989281345293002899899167219651522247355331809656822994805576136916452928892262960199857954670014964610095308541894001484072321255085015843673249276279497642237494545983766387335001913986191383339428264870523984216850259966345718293729957424010720856665824566891795653091664139016964892660559472699489899122908093834377602857676074743377685405533235366254118103780585812901682604861501111260341885397146915695359287033406449501248654113384209969255602366398610905075573761838359690460726500894515932984771466101483078730018179305328571321480284312755157865286173585585037141932358086632108770630378256117387000717736429893746379588936016075680084899737448569268065555760809132081927634212606425584088700548618974532643308297176841035238296680669100728664057105781015529491354969669147220340911834233040394866272401112355606765344360267303262595152583465162967286795729310469682410797029727936816212234931731599955535015415863603669092060720663186782504386147816982588087170511485173100168121748359561308691833803608425169181813359120758375320112261734390220490024934485313419967038308009261333281936156375882753593909560384631660606337677377244907577107989248141511388027740523571922265392568447462414385863544939405947429539313904263312314827726227416167423696810053533050811132079109809920728392029551716831291310028682781033972935894526640189432922498314082375559170578797704148628750650528873150892208011927787693226493697269131863483187950883705728804101574002475663591302897930860771537155015877356164630259159875487167529669512300881049546208590845176523694013079030372893294183696670969978520409885449189728164071493052566104261044901719341767050825022757925668310957059795611323093139001080575653785396408926646925934590456857093216614971626586531694958291282985825414293328537352581604224646651288656261360224293900932934769197658675129036675060166108034185907434263103937781673183827552215393012783478244767987490058266082844215898510395726826878727883400393390516708375395371879175615270862777349292621408920052594373514035695789890776468526497244497444549377674962888933557426879655151372220222159852158287874917879470338414076276621615089483895969842956617694068805908348476866243879943857391305382661782141844929430030285916305113079270968046683201121864948912485846613969850006252078357920871999653734377942768561231596616992157357052131244447637422504992667078841890018507312256099610533295938008301912757389527622768881322778292188633610286871768527109917405793277989030062329033683513343839186884255027324423627840732805347813759733445771490444419050370240053984078914509041519086307441274930329938541009413234287994210839377986008068517622227684904728375367776674673246423490212738661894905935373765347378564234790622850841182945365232436872353446384493929857814699916491627485878548738104153554053058154356994225850187438930994202672033851940897007944337478920306585038566035597492016398685565260019662096435588302421679651530553359526954476915403056751739909032082742269787898318643272082117544351767936171752645143335536330484104457896771528289721402244619616236219144534606152956201281400676381738884346487787533589659201656351082354612966262345490491145284386188943225761177726282419329717170293722186607694199665112239443195040904093327588710663073181280522079883580416448357469407365421685519660766954291403116872467490089674485191804892414569875396447188590923569724140174518725497544860649894117661909636823267831646202469058401717173646901644414717926290399803696453868894036396198852221236830420309883014067333752041395728681318925469346480028560739367631627903195634075351946102016771665492976902683521858086498854110130789439919562125793629529385614573442353272411998567759823410429427848210413817528395318946845610838632729977760786311061520330671086306746604547380721662135326704433104097729953577634904766598407734466653202146102640930683063350051742059967834288170652642039173466358434557888971509006824310730028459621715814497018923626614542162547010978597673332967556744431496791661194338626774368805188817224295464623905269900312504890552334977306309914276318685642108214949603131517778525621752148212337904754045991841870050134166244754641167118113379178777092392178221024783601292595541207801730469566379529573094048850288003860823658926119972548341227834356666908022107034217962364593707527275916645689189662662133484965264365885413747184963225131566671268169602808154007903272195630129290810609400466404222185860188417274773102708217814599754082149565952250852427450290225608625460257738115496239442439300551366159033426378753190829341773654175496741521893718124630758826814972024214849754066131881223883663392778394259127598767354788685408645445066732289813041715872783686339291985064050808272551510118649487547781550577630815665452298899367819993926416696432466976908870558071451986112892140852683748164938417749649309036327421022479001932804420961675117942751294868757095643305079559787267407514338065548803203849046824299302137002180407822875810759143739682814826269964949862994295761489903527929946106591597747510784593642528561991920586466124926078686313125185345342194305845429615361043038378605995614129544913165016943129249592543466040721238805787866592226535840121228672225145712978800623290803850330854484664216579929313642603249192605870502764003930056181932532081838233800170372920899435428570556529391532100217299461129034143687296644790220882664450915004302045485280533156544168881137963576753902467641069591935097792621822967971913250198076058156748496876215168372449119024058742892909282821105832755803697442955289979227974909432279982009531548114462369569819117300669228579703077284834290517962553416900581723625425587268865741683770031729827315646542281676054849655376833859136326926519247966566189947934831236019200014169165480234427528793027737847419633385663388216420517228361020047336205405005719520622304913625150653332657327720472359841246570425236403592961736379624370748409119768466364478759540610293892226809422358664817870262121901524503409672759407768731349614514113520407107039744684745694140015072809160770798102832638871133296396431681432820764060699842420563813426348795368592063166479966541466752315385402127281065672328921094268138532564604168897433227541573743201890422803569806380321191134648592221462064830908749798386524408759661467868960566086171207801217705807855248169542881005081964896392841871558416929545860996841793044654221584296126476298963368982956344314382298090008650563913302462006994701877107236113209992107636330518204810438774616745949283295733686003470538975055646363772097200365822122428204082094253785161413608891596799022913630990538302931839634581187794920836034721931233486092896680273605009980743253778641781095125375085539327448295422573336917622240656203041294371081475848877622885612000043431567138291898655653422657555440020376603701050823125753659275995082759725742538407626862195833023685299670456084514892298628296226712785446832077251690182308339920139833479870493992443996782248858687878144569435559254573459438242135825234174605776973412524698497963358375151625523680843477160278038246802320893269428192913466844999018592907450774527040256418782096499933780869411318718375281685325172045634396914490170968851373640588056723615278907632145204776065828897094521840100475663477629871075893890626060029236243569773869240545786631689745491496826084019710299093312288673514480572040181984454229200833066613321407081462995754490360582947307180402991147417029844274536831367912099855800480089542084667383310787247338038038802560921460086993980656471000085631573709499317451742131097060622795554594365358471012767335829712193184168120697498928263528655435509132114508324037567236808218552497329342974752417475902939795632018403139691982366652324786975985359124680633543317970646548637748195245159684365565024160008536877862550516951938143471033126063073932098164638682269214628439848748380202748459908548535252474373119678902045687893372794875068712724131274768126541283388765300367531292545816060715462907945822535984685354790495236368523022728243413430874532012740040187215161206013086952758450127869366832556548346710788750409887401716911340849982681398842714195772987479711431710698508525942580909940980887304558208872310522155525132398325730107813963727564881276913468001993914583623010543885340733519569863235415991786137494905427564446396037545784168083146110845043611090000682785702336624251553859784085726225970311815889145936855888501484969728741993416187348977129868064347963355877798991508318064637200435764466416263693262408435075869817095606042291348591475084641965657915069131562593804028483226315167199517751509762077534215774745521558061768686666363627041736094423427881143876291117358249280963890597770422616721190665640033004354173628451820544391354243873265134215915009656553609654264166976268813931829047756867751185832653957755978506638301358063999082327888303748036775480195995266071861418962200890609784175000385154859140452802361663286218345709145595527041360270103628632011173250164014196941515887894658854352877161212995792545501547324075728462822704119224336722909734161903838119511956180076600719354555840227578778684294231580238031487622598254477097652829693317328517401719190546476028688632189103351523254469233074234798376270360443017518900754968689043756568482889496914782770583738491532211247258424883651132455117264304361167324744192978951894959585744367981810723119974087156823847336757469275328314673465048664330534016322544472181055007728924306279747199689751712456705720589390387034142192309218517871231544852455453998024372950843396069218258771656832432467673399093916045135506106324884873485561035050537973055748595549956407758346711352940944861061074258433926009571637674788780351427433353454110325580792642059138386067062433996396209770176997017831156485453555629811625160787964462975951174677292564011822319543023338113465871108685183827680788776246596632645096971779503306170329890016199971824363127595320870917818032591288567503293441791934448188584305183348099057352676493508016179587245217106183265533045388274121550859701813969508887898494025196795421230480322112923096325807330273568762028300514455890404049446149872763016160954310334994621050463106212993870103578035861948258173087276907202338561437620934364129755986146306095939185578611362035823085454686859472041161380953336617080077733517823583222863998574790591548146463901114818771340619466376734590484335267962096529053470380697591812166913359041310970171776835902787825159343807065047701463988042258436858967247247210876798398256133217006242222049813444458139950431455848389465734866089653257200541970566235628297704762243757959611838662720124888963945915291598013233344732316313396258729240249662698348991683383056766717549122351708554867569483796305510380662855712297960970857856692497591743353394239423486922822320839629310194685455741040919572034215284621078954117526964694395383503523245839904244160784681934970723981389569819695035709520087145525890255573675548422670481716494207721844442708307513300375884629280479634265348411316388519921646438320375756224848538279722868683725431095815616782326932722176208209723117196575886085527945378235028715593814334567356449943017589410055496573472094967681460903275511716376075563953247459549267904122748823234690731064399319640422009268917232205775736958351325102867292753844825864122168010418221444621656837275282519764582041379440027851645889012365532195834210097757322068352648838688866309505671194325570535630695088985852619316076876930617298689181913448771713219338614183663487012642279677349334737144134647247064335923344020227642158188245430598904184388903491923800110814396645798018990903436406900539196916314155157625908573353831609910755907894404600672692775259885432742215974158751254732124916058824275527098558075761192515747161262249408314690257254461491134681800064263382231209391778747160692187005964040258954404101048116828124674764259215868430762822955971433323165189204393589581640544457968930598709108753591673625755678956777666333968669894850105218749463629185552249851078137720375290285269378356450964446945967763524768868318190315664510291853136294862608962397925010645041563631772783569922750893679829859091820847602918924255122708366852209574508469798300320729153563644702881837089572856935081325900146375351509907348109244706932336035236504928984019344597191210948477439209563365119201547499672870910936946291748847105430817894238126860632048048781535739980859763334299849529413451794201731200285138861134454827932374191287937354060925709145727609871675628976592968437275780945350411300510397035956236796899264412581922750801344212212945657950828661023890092835536674972322413630997515558519693805328254617510559160952969427498364229839944705363057340129685059478565186268181374999199744794910854070436049528834400776560287729617900810902123059512440764296100511655003904334533222840764271668535930248101240767696039737120500931784260233161984745437784595512084021669770543124427584601734674790930282407323233847716740091878146777397960470469827100750459432039235845155694516241097251902865945743008691944717044464290757531751729085760658166091905649833229107845086431986039675832928484068489743198667953788195900130078918739566607087078359735957681754205884546206648775359964842219740779337860011704167497879692046237459468685867409292614652409614621865864089247861012032201654475722889857949778712355348223668106499362844707777771990760406348819315260807457959894344184989310084334046416687914237774939383221377009353449091394578548974983890468717432649936078509570031645838104188686755481491323151195793452889257993171664067327748927727688715749940301494163486373035594914860313383168208816228460962786669826967950358624270511104986020038678009811772647460503755757134453899152180368300832106196344566384481146087747162166446299724710360224932021133050730269628864065679626022620590813395273687288578011430057887722575816485263164609124893337341861397348989869847015701044176302511636110017856294731313416633721180754976154528851608341633324867764057925710556197338990359912293873319344167716054872167971238070401861170508190946357225212977349973503403031325308288823806023235633167882598469853047128655160938852719393350250892106946717299373720076736894867185347244243018964983502266515778435058647663980160938763915325417905380450277019375867933948386479274401214945044963959042394047900745022824586842447300295924919572536484923127208818453883477866545125599588272513466337738496664126154131140367163735256135186339808656965771131775116662701169686663454649757689916418688079122865863376607222699060126675006201064217972631896847668337376476414633445697727944476086431350582682121090953402514366554301677422536912259859515266109681620893679380817039669233882446863096941993189243488767786596721474468126790191442937727699450371716890613430285464068773657632399843618727392486141733925939761395456915235245393872729118997652432038588648516167089327631372391669498565361800198705466969504068127808186384040403257769254390973975993281176271321622528839017620268652503721590689282845429419971078178710508599444851601398421201994034038353718478634860836113614860666129114432308616002677105322263832268258824643575402429553686377519654172488513575601981446091976375083096832254305449146194239213219859792090260435276632023180388385005108905381301071553263548154605425584769192214670671892112969968432468666867901625686862049863007195670316776345394931457261239886746040286835184185472726716158919606329997100414568774160393814049999304527788713314089427537342288156516793777798051123745437864664625532336261449405058173341036199649243560205338515958590763907390455893001984496811688462245186124704703121491986372255307564480980467967786019169140387659334512150428048834117410850863419667925989847263269483965285574680177440036119543774522014558928920317682968880472879293586311896597617368405551947145761335678128911743616623926142480400505889106511469043019805038368330985576396293034993919771458268185008138303427812442024644662442366038331851623820714782905448975412097733826882789805508986659687214772585966885091164337907347897429102008736190619153668218075854681723299405372429513910690639286215518169862810312762633184566358348985115631156131684492847774526802102195020416395110517809808610886978863788536860646009518197098134086193707819054898161179604184959494475195521286707270640009261252440035240717119002528926602061209458811865366393566449498726162820762497273541766025862661174780019516274591624601236146095716411889420051180682676803333166179180851130296867538408366606060166639545632404416232130924012987606997226581891781453218789674979890107991193047013940381806599897616185885695011668919505485806262399127293738821396746637325189580554007756793183663351215458777002085262330005238591759397059667265105001118206674753612255244674409723466563316538296029835526244435112913250062655798369452848850617709986623467361840329140874154679515240795814517644033015047930115041474324077801314021519638133918620332171489338520411644805253658472628943073270149781661162309492769256293423500676309432948415014738774546054979822430797083482267152659516984877704306299794202236662742817244405396887163370830048544079225539761045577772347386611268156275513089484620906125796046396614954885721726200709794730353774148902031306094562071144818422171822049962059306886404999222008337772028373369908750207396369434735729261321902468548117218227957247599888724677942604572683086708345540629544181448047441434096458193295415434472494071557039392823813265412952594224344129283588803941188453249385204759169830689021997660772687195397635711367735843225361863566711612510281001927202654492314898558298423663791902069791303714982661925354605307693558731809625374456176085523834921085798438021152670400768667464007587164910094267628397758757639166905898921523554858580945627064094802358231827885826325835828034213027786526670756308028631993472347090506396209264045612578400525855632979972668309686718631562805456507262709108964914970236555266219975152334141311870129086343846872582840872874212984009243499154949322856243375141751553224698213543818236768774289731442559256217488902907040137319160302611762845518646726374550244681914130545735254021918475530091788419416615518729346371948003706821336172710527683021333561520154471658704368492818703796608675725366232635568820303592198737771306729988565404875931059350428711485488492939905186282990470839562544701436293842374880601732310447520285625723204630462050234783451748731260933966287454815757923971358038002623907217227517688964359387765609489139329549449320364630910518454956925125002706911346416438435183245252795468220935366074791942168183949958986412928467801948672116011784510261201571845701190405842924411956643127618811091406936143179374532882117866994985404794212496839274682831475887824924176731547104222733285217146512886783936671746137785606312481255109247345464968899111793216338315981673778747087380431854238552486474376786704461264074861788881895455715589758430245042786199598932722779000280197739776399644224199807416267325581316690433980347774144956542651136629090609138363823639935543388974301880531369552464320747502132333821576982221569690711428484958154103152347833393793813620085882490178821223434980917336339309977800486652104166712102728621590700414452893220581243250847217135968258886884040858746972318713906594296818915065920257773068648251738916595561894982158178921155443130663553563143650553455320823749224375755958111485955929010593719119139255860277022406970158989208565531203258083383195729282465885629897563225768030468208145971388101944652040142282568881462921010366915582560591056219873581782921687530761385908157553927718336838855036387193847570479525840685073512254091004158777596376689665894987622680984440135862770895809000059135103514309305906474410999930164680250644375967301174862185114174806238007233005069507666532338815235709005405378681836526109414929708894327747559786675318859921425354121933028005960830853951162460550662884731442640986543755213219469752243026749476494717462139146223221165964224800335621182235323221651540472680779452786185288376172544782799361121026676178397653113107964699378948013883714367775158440675132945600374374431561544705657866753585454386861026542886410326236971796604828588860756678039626893683931418946700995950299502267790321299061710885089124405228941486336560334929777754050582418597309131068116712583314949421008364907522566887313238196828824119784861048089292615155412358455088831209402743773408473560677037773148448843607708224330181369209930088601401178405101928019174641310573437147996663486432226686976966216831113045626960868256664314229328564730089569689325185796400848609497411196189652322836293910558714341314061133982845639932634153037538981586192015852267464089651409440696692098796374148417298075109719684453521486142285398286235059544412483907852901692299619520927723157936711432883105161753933438939031362350822488803462608721024237453266816153990177518828631932608002317551402087966115780500943089226228853683132035918613293210340473468035216989712772244926694931537426690514925887510902007840571927518984161575430975246950425981372076770990906888378330038548615233985355537796466384938146793589266194884827437851694122857353599925190707332528553159682793644727123730292786765565291767883997648525350366744417855984716783542467132755797080881204898016986451595344436546894912273256384528434607741511804878157923042211405932547511624815647611392567270354605647601128834231207484191299404358871121483070742880538677726196036537995880737568132060204601115513975438728996173254390674338822865058175162702237526617520729065517854563346649705415274451895757388693595831492096933906363452927547419637864192306212674169532454022585364177909291730742188994232158709848423009177845764949330148619274126548311534503647587936906547468659085096371226993867004945588910391663118805361696101857790344899766785705852936384254642870713836638753315031542823631788579084992503192196312424989552679253354296841479087348704695432523963183257769307088643874340377485102338249883730082816660361907065386242785254151632635160020422970043375704367793767647250599425280576601760338535255426252879141923404916090532489238912739833554282529143800061851202705006892675294139266228356743291551985675673786416908954537977767914679725916961856563805745024902018960302331737308003940071814074092328367456544243161564835437020191507553417668204737966133108155218726278447265851879430053687685219089154475189997884389064501530726968771493453160533616798683188727598634597242558459360185957945775868858619253234174040361852381785595592912914598796630530589626516827123993854004083069863612510956890740228620378120546235374167457454180183462326756664651743071434146633999297780093280951050670017676583003594959965670766903641505540983179425278244315347620690223126267787402900214002567369613048961915506713149974272937298886619849170988279857077523414097930338807537946754867330580286149961753752142999490097757746449137942943991569859098972554664555374616030800532729766057358451090166450878571167700285688723674971642327282300770623978792064849103088807247410860714896150003646351455069569625218843081254613513316173877144580536651090186140947340447228982836480768920863537791916016366776350425491583316558117983365471801760921303020275825155149150741341085652081351358722075932502699597737390334109757675048732006813184475951492930504838538620721595671511256959955075960681834873768206117910639427084215235442808609723427435036158625613798840391342910225688590932315211772708651476687764807696494428381150437485718831481058047669639553529622312707490688869167089698123614614036441588390099180790835277065150497145747128454387312718076364013845884798503138080329658246344196175493511383958607581992987340082970562109898121470209275594643068772646159606184831298414424018253345796284776069425785257631118015903700739125530539726999449931806792440213835012358136453473493006733600867525780796081559999231833774248147301960187250422700120659760079371566792465491118942434195877959752848656721748583797690358882343082275249796167338188412962722175326176841748818289336115637894293776483127856517438801489555374789734700721686061008149189403253687524230198563069533760575409908693281649587149024412763027725215770798986923960164786595615993093408245863591980162608389644194403409665959321914149275687993536817090218102851683965705562707682645402362598372499839713883656595456562691137731494160535345082248008266211564702938191857302659099792885299924335185906507444101668687632337028607644417068898782270501045332548358795476412186623163854035262607050947146904953142623358392513522250674876492351713059599854856690759921897311108269326460719967116400319794620514393891260339265675983081091358870055468766063105271843943610051173023727937633573511200464946394706614261485471377222191311853661190535513546640033528174736538339710513278241969999680488509036279564993215256445354121357322909143091590894095406848048247746838756925236658508027319957550864987586528724529812782637401882462486951375821003927154561071724364063821395583153216443924080786833959082729902748193426895901226924646028787437335193737752782932229928694699034603616296414354568215158278835062201720780870692127371998344120641725717668763355619261445521764107105972128232015215312223003563350822945972031275538440328397386293904001298576806678904183700094938998341550399961647861028454850045318541540771975398054873057155364446566445781567585706534920972457434781669557968794512325917380881139709042431221377055542042350716952703583560300581191300129743913282623249132257888349002797011401825108177703678106798482535835802335761029683233476455222504923359086833785725125852367537603547073454875900288469338349081663238850055996220762101030493821911267641864193850610761128683716126713511048932524053197534485640927358943150882799415607761251757368226706151137059045765516812355849611253383888040556471768022692154445052435321236151014130492546639994672211031364527289643114208530422843777545107247699960358512074309417093742051158819975357685647547677381111540562452067101382145467957248202828529246720508595526978751711791539029969577611453723288260822854036622767441630363363147839752171092026993604633506694857291544821472654900142078265858079558728778092943837297946216550925520432896116267940912730454274205578208233827020040698317767424675530088964360508840890775196475712651102662022332085828542112875018983113179102810300009067313793475658472064663822550792127884765088154815004904550176672143642830802893952554849322813776427885064323650134418433125001961963997456358114177344787562551203657431710884074987515929578972678163186573896035473100571173427592059513957412774447712823037956459735970618892917207874651004325478246934403556519561155108350947983581152814563111005627607483169991888188364990590547427880072079456246713887577348643924468876576989992736756000675491905725681717601230139557652035918577961079796979278753155501213926197396933858461812347522697331669866600765673642748766299298512602911081058520295114988153057468626207658923829351872640480274600327887176157060339129728490731432207230856600429026110281412610610389019265195496231436464242296631601201163884717966516964567351085560776643631350127209969626710157126724657663207047413205489862431634059811463470927642479567421577452881242607880368475595545917892182850564896464152763998466259557475416243536683836575903129512509376112324608106347390176696179801183224996425588581248278117993090042312201134199121569528803045319560920217278252395540731835009887271072273680746391134765121955248476542985175323573179615529848505577514283233038044379753907804793309661873667182249582775389468461719021541828140623577275196061652474876715542575734049422389051723794126677757503274548070821819335543855771023667827848523851435423390637890949299529021990771593317122697983595501043670017289113653400628604723229255028015640211433597846019618536633600445015570084486988857424829277651789530099851227852970617018548747929546091041983394764175564919967989040461811583365734975742523184345496591927996576890024200064905884950519131542686382752073769481423582691352239416252186197498174136882779627057364436060447221613283495659017432140195467339224378681976461602130421760352481673281654315404252086057461389894101686578526157270699872076770400767374434099002386664278798115476780327412220387418714693610078918717520131637296266491845290177399606240698318441870908308526128825862013924913217031732850882818004342208977955589856316526094241827770309272387916367449812307708459429922314088675734911683488759335644275169737078936663238926739580706339262216414734862032179778246809210224524039413677116961667348918642302060526044023206984113863328562751976316045661082658534865015384058941849122337567320237044746687246723582934917703328670515858674463670004755636779777719157430697646283227119010676678196331430185998216600876534634813030781697977857054752068802710168620498120561949175508149318944752479980426327002911721358362735809064161141126099911456865688136356826932508394688875148175824436417794117400386973842210193508260869006431752725311337096571023858335125133243452085920474592747414416921888935055250622443372082315198901036608593635560148881705085284787838117780005851856922541841917498289469654890758540954360689202561917968374332200523481647432844091319922844439137380638748904090364684771615557419177164512113430186151555254237027964821837526406301246646831199672012712495135221803640754783983851065706822320688113740482066571672433402671008971565250106684889873718887948378658642993737013038362390009878425671364933481217775675986469077121179705294586110785916105022217678899143145003175727025508218512347536422697243443751353733749563723652358910364115313634994973350091251183560640272293046672735270407055883741024874404130218522789675590387508772540882433612009495123888450651203145024699451726834131985511764872584381470361790073845397924982368470867125158410509406727947653968730021897978611461717173053532657002486518031057024963796878068921352519678406158088553701733611114627559757945421133587293529146899200809082803436793344325702356318024234609637857654748646254446552629136223326641171421540183278377700402241847604307704202007134422932703405025243542100270221548956347345922326293247495082043320387600717558174646708190403676164937268793386742841651707852860491840708778098795335668245689258592251062124923396551992794903482423552710878749513832254900846991936783991337111478350544628465067047417038442113857983789190758996905921734251983282752226541849296251400308349622924264782081608883033418166612661261509038273633173961280588414796146871670597700482609024306194554346664302369813398955126316144089407330137646801317649886031633963689348267254730602474718750182656596090885839002924168815344332589637725673018924449846926547012519817690626059526761964800762154593747911897479327095931150636239197697331172532512145911988444634377957252506711841062521850847228561925599418283026226812612310047189162650275852828775473749603166862671077355581578463773563817001983492191062291810152632318242968313557368714338353496855395122668615558340731558850971088953847213257864363900085969444656744846863428594939543015906818973635004465130046345730562452061126575419410061511282929231742244853961072283352072424906618030298283548899713670987788595181790025591788663865813211793971878274469770567605563452657306186136910798402642991258908582208561930682243321837317621086713625089660309185045589069465019120211250119651930238098392831398701819828855831015740733839164691586400636511291498008430280956385983996233497837778273488564707215063188533721177112821686280194212656212310116209501379041155660373199393261088909018457403061025286267624304456728000423867703986180048829284900965836314527416988854265336147654474823384252575891573391896051566932769933461720992394923234159656742782374898523561170904055571253351526237841759335561101767680293055270666645254217806227529904400688965937837740198292890261240830585455181992674894454577880545111973496242064874885318392530376668899407519569583345819921192985471226743454801225928743192413376042655889711016889072624146163661419589959539238920111585774279292567802198391417241724090796508264654448907398945580289403027131866157760249730146025120286431998828616647039547107529148220383892570174714087094060662720904646571971362154740057450603243198213632920943048714877432159825322147399108406292425646953208564742617616139048557763962099802429416464600608524534954057573285566951009787175388124395234655514638574727163803718459210507459322341332263016947799983993820823203561132743250461566474781061984637876958760499971447536516491361011764779898273744002370223866645927272108014480659992824281234064167504839141427432769602893548572045295043733355427405302618040339677944452657074606176989966329670370418624752986724173951099518999475020134744811262773297269657999980937822427621999596648990893151370250605888283004130674805479306704692702025043386899296721589889550950292293219562356821705330109661078199757349366212606023881722241064859399661335787889443838611644329304633508266808912097808788076139840831614725768853891736996540405814914078047279674204600551399322516131041048860906305743048857381841766175705754725089062768660034997121431977106880665409629142558230558826953699068324983563759224048855651501687177418182652343321756957049741134778695121661030718962107054213161766633340887485301046852329908087165153138710368164362240616536659386445041745291588539159138507253414561851506132081192224980862409514814427909231471508343693759521187123396828512466253551183034735816464920515588304235768221098001171645148380800216523835242813892322470634084938211360540230381189722866757638319005516170145499783795969916557783714739518509477497097394512313844906428558469475940042441948851690789418199815069745707518909570270485667155866695572810605143978770196412483972360431815804861380319719499877066551920605036102200370497229160287059404925268758609996524853442775970090273840647792270015217748723340581213815946362618923128630265128105441755456044809222793090375371647532607245421960072841432991526884743601918896981696397866254670275833608287563934256363853642579622826090181575374153440875755470519630136413771012254798401746198591582389453984804488688786840615570754524186847688779515542428624237201883116582160018047237652172768180716948791968158675141020547995347339758020874724221507632558724437702147362104737780697032923016067913114156500124852254862805159922257861658072428451580182592550061015455037862445155031613263792192531357554303786843305776256232523503529906299663196515071686020468590504880550130050604159051706116552098433084299645972223620256974954642632946375040866125729018139946376104660365226593192492690209331988402216559598464151341241777574145524305858906589514668950492975160399180955792090715848469576214986269584509972771234716273932172147832958889317250822700063650085662804074769453388970286774934232125010693049669035188152730973269965527306575274889841916028824289138547695337678838504697330612248458451186741182536436453320819655475939914156358417822509822844713022779133213178437183923234801634297024418456236313106729851512443071949642103615539603369138661677557555245224297998189660351122118649339112392181756296049390187374671170151589129666116490009105774704661540953384814020923855638541445634313630615540722964912879310246789404769903653189282667728785617182937269934144193786077930798400504031543951013569177246169069277277110958093396579847434419956439670622079799521201076003313850118162866622716574698734623939596277451901196460692797872191628008506989383664262616184514159244162506444156306801420339806722904063866935604358331504973415247616739334692547803394798369618757018789069106237874541269840558961518622459205427720005606288114803788892134281112556243182397051816340251630681144506956587463586654131686423647559497987516138059965590503206407406324326285506951653265187963231991883646450366362699784749261463268865774181994157732981463417072315829807804249626759369149709115566725689633518426748567928488111824639281980739241944596192907696647248375438334865778204997571688839248791706991173470138110168811564062153480742894859362438974710672968649921632542810505798170390288470770737667613861264212033401884068093021883528147232801928714228928785029153614879906773296280899855733547051205136734956565544875775693209566642687021129564058556937213901034689624431523003493366072737551703336786115965081935753779728091794807211999914181709712433544419150683513153967609422723919455554683542695532090121537410304830398950705393369217728034175177521537768698339371829067466649210429929576875457513313847594413628838313981989702955958439199445791631882911953882463517769165721204965075514894753093929428332126898190758027272512012791814775062483724915977779162758629644486866848901042448953071529310061493907131070705811286317817486253124340018594828488346580628730373248868514672002884632190033137929801449760105757889692505035035120101387061486136411331522009224542580061814103130975184738487229319190473840041797378576928230626535853747329078018640169830044457421874677397444385721988528458843992537412473370809206752803951303248744476199692315173966272740983206185497470186976637004235989226749219072311764581215659593063631593943261000899013099919175634430822169958519013323079781146025861225453857634927497787734390539714737597434943881959703439488553121023013811361322850944996862675097632646578670371108272901333354662963940632388465210729183063855468728774034898251654350454915791202279145845554291375807960185610740439185734230754985339703678986416707204911346146959840572049018856251488205983669936537565563576530630767040337010830121378185506916787655718462016285979020922619475653907269133903630767927262582913778512646442671891893611791963624016946166162804721377323741415695280064647395226256791150634295220000317811440223616463437636520214600327948500925405413513535436901108556034696048898700230292493388121397838492567432340445406752701111734444171418907904412973115910947588380983912024172565466628335530924841776038026349275247822973095966607471085140841774198887779918055354921886924045678821435378869955346466579959061104460405082832432581902171389833624610242098829583599851687174162558486111811979612825935482274861148607553889243470721456340019608602652466298493892337032483095435984429228061055836027710694675761655985787042925905324992538916592275573624139255301374859157093845739292096830977466855336103578771355359329834165709634385458811506090652317455677189673638085009517856005998380408433022870651635906588732927764198598778787007431519360427669451025182239345335075780650495945192090728634894145994381133727716771827364124603461548920967101434650963201540928242521503639481786555021188791153081612118974683313888762194939855928774672485963676317436562259716173855584962519815404575065824783283712407467273662660545758993969790013106068385199324046854980359294522341758786391466345508291221795424154127289186948057942718473081633107453905024710497042829925698583855310415906979420263948115773652095018397821469845311762491373828624213181207580735972461489641880863274036098154333159213351116771258142220064419484235348077923614178053818807644545259997537280253955869607538280205487985188055384690356442812154595401253666532378158639656965134056678847742907594803133186017700006172319560142782832777858955258580030722525978618036824041768234027625417943127048455884533827050645740898869224253033564918143484956652438386346646878333513958314389763928105742545170277694513110204400847025636771619450175910527140262361601683721996066395753864960580254161225195060057410308863935206282358109332243166781294243790147194469025352217927716631094783061706557974931621332910059689624698187735033575329827568949828718777156370199387025810227070955151555035698636535874196528664166073929222096853922652670928797571523509196274928921996548711611254057325501261246454356857339111425110858630292898584758766210050200385026771549547343805892514303072809011452206303444497232568227238978706917742840657017083229527356785756146817501283106840308081240811571056698564395789201246825230643218087323610913790225363250817529529581087654704226855725349434258382350175996809414688158161271434682177738878916175471835044233318293095083047525216947435655281496786845256370311239409824838820424071885297972120845198938706113539137446209009034825511437248036222443365263311826028218565758750467599222682118535832663011901584701528527138654235304355131679982775638179584822510798720104934052365638767002657040180256782544747113547127797739885528816891066282455919068633027819712326663486288503945322010944621117984682577320276282438796925402478654338275181529909842076645079628583274394352566013571453317998905522334079587488206484010201143237505590537807823664533415684153693093815635363315045122882015814884921636883036655441788663688816346442330306077294805957858828350113265928402443811348700956437229483598285266739887457903956416704588079713580492129752065302060978003858617341793235106672714285577981611389354498308819538337943569347157449388175049901566117134672868410987957111344720143161402376062660586701481425852586597133491889397430423370839856518006007050025333521653804963292028338748308656798648784791936056418357536657715096815645583773232856989532096217448037385706180804930099706863244050757090409153804075415228842353019974421598042050423437747253699642860309266588514471878206505000092962750573002557255575096707560742591337087513533425173105395397361890241009781012040453706662718666408412249868467274501596141919149566013836335072919764405433900078088599186143989371038587918838621089695600193842953383158852375325603361083045695443081001111458791887566301433595964929194077544686901242026066817211525451330246801865121869339611662031301083136595260715903096439390277785796283440073866207657584468843761556872690876261804755269854201623285137147549769779328471020534801487954289110776374571880204270608920263957312073203489792410899274466353955929194185570008675419175121641747562725213241438023934359067273927673529032354171417843864016894461507571454387788156261060504894807430884545049691610151850293646980563090889129942698012025584304823235529245785390942278279975747972587182187826469842272534901609193536015886047569637728072704351557974187746953727948398415964843749898801421811739113226634560805711755735587655033374226579053054491216224851535935557413418232660605545031025773805667700472425496760355908233928227680110152212925363611757074369853804257084463104690131883758246513463843254254692608950658877223256537757601746145693566899504268653565768017938119649620726504889562269763921274124742266537360283850416057515139906780683127409958978738070532485994799509117596538955021345953987567560500650994835783540334045518370738585398254273275911881732593985468027958385675056871998671542056119749965205607535726959330029840682714346277763578684498366169628087333158658522926465488478318558643091746384869692345063017422983348167934469457078263983695731025876024176359902018238613770866548197704088514432506350044849593183470777662111914188080689116458594356196227133837206210589095348934297581227779829299050344556157343359247376376345482495186195763373945117574086045181497088789003035554865718060312036358745680644462897078151134404132691660742507951982516525159394931109790482510276334703793938235648038950473155791026562810802722190033229744160946196984351681760704008016290634708677103922927204244898219563651568743872443724687114997576539917336586837720198491840883897944533622422445409690724071274011062376163422245880244855677976729476715196430298510497732807185420684552492536406449219312020442089168761578530073575934313787990028082684164211675429541618880604205088865767274883401699099895670170072322073263264851406757940740864420739490756546216612425525565129975023959907030382982145648786442119417570080561777720723302962193217715694530486359921914007732905044453919762966049415869936451347437855683622626598133473692787474093235792532587571622616673080431818499047030546819888506764922979471400217439026690321046162125814231989927889664667008467799786483450876067938715555084701998840018565863680552619933717570092570580802763251861454480089829022196857319721440548904433833819346580628919101972036501388309687475133842336597523348522267308063259117019982509906795485410570524997615228539391396325576439055684764554119363175493483697280870970364432029207327066273581330297361897597061430853305162893011219257678188436345520676611731491927448257336526804554703445821521850480582783021584054130612533493122688149049656007710181977235209359889839338111178673381234358451362812640832813908031677828869487579928063003157460574501848214909250978840131387008240023046003891567686642450581350021358873765776093854728438933796567530025038366169870288469594053898968461569429910613068783184994756713893069134456013247147595221380199327333318854487902191844092508681111832201664990664453660123360004973663150296025598834275568072163252297417924762561020180181376303372031520448230868054055645942270889808752758407329837647632401571643711750842999369219203922859859144619577508386766754891389963618369382801474049277768752829112475493280067421343392041482627418564185474230440892688175430845305978275779151072806818125594269400035561062325169379762511465819460580878415923439724946148003808559487328825075478960394531654519787940234712582789546388383977917985991154969904162035694237341702174972064048448830533930398267499774556519907036278862446618989614582273747789376516991505330465804428428053987794880610159613732676920857626147694427637955970214325694158250924431877407285152827745935378975147259861978987761808953711720986902003738144923606383166958165376794364330777739558918483758626202563809744788192439958753562898580741549356134323734987391665854274190024843783393241326524326387489085476511369729271460868267368326680689493847054032641622439521251241720471559349650683140198344108228566080570003950821400056666642113734013971397118678036146262985511401856762506808377039507929459161287571879639449862689264224700022352850108267546698882533314047351798585919581507273859864704796949345507303823341059604394016769636704134659353639306392144851513982699886456320951856439149815366605592671928984447201560532553883578473478049434407934009681231195504614191593021033518542100286650632901318589635427132452499216800476270785013532821634018152959687109491585829410242057677382986015081841958083673220851770627561078786674895001682993523899101585095433093420088350303864236227201162912529436948387095105346535642401015887552414082483767416752993271701741237368104131925926315237687011208413560044192000934038927494591732000676810353613297343019814848293417836675702919316215733294709597502455697440392270609178060931908078021598373528497167547904464885825747771287218156101438140765191097646118175088231546042840614597740408244265090887440675143939222483688646263902325549987307874744050745656356532794517215576098877241320281389230104076996931354070719509680589863330831541220468533471855706826911017975277088888894022717002898937899658363191558358642135502742819694445026497120437725729496403133765158546526818709301535560193507273783413635379789897097377065935285171181236120075632796866284211590572813472979115179908112560587070417708123817177829315438398028300542162508478551976636279516331916239563915527835729967786764735993409042467306588278893983546803545442820777491671341180306697438864874833792693802889177282275496534763265937178906529556421114179638384710225998823463056163372417635821298712282973801414257378358035510271116113546599015322575048940206027547253659903736261588292998517846117464315542299722209424423267053444709026640222824914624209056509650134502823264476996571317675530463227668659031477261627016674925421614896976904842643258665648393806160592366075121053683014422653730264411739613996090988544507778810776782548480478520613633387005447948062149311298890522675636875712955558254066673618156186170697964771859773423644087933314971329370492603055005895803571881768555404249649718246667116055859416704874323615383432209655413879330018593461309802711173087941490081289330228407432437015322626298602850964373214131563152134987773774727647258487545698291781557326027169623312754472509398384994502784178875203390934486573724894263110879788808590672283727854537878368338222063690678499449653948191975847306849797007136173433653340565071665573423960073032144798038999415628933669367543677309642884639419234728447985959912811189675275004466951554504000184495518396741295462419484312902466560894509358880808352089469943861703282674951926590265350498604328626799994778914639635867811542210059027447995630953348781426567658032575783276304616987524750290112104240158629859910131129561934572117659342700440896874650760763465319746791703494466032333786674678987592310680733737588199554812346511609440929541248681855567130338682117632175575988126177617799340509328646136164136459922825253582239187699307495723044417831414330625869743216574443831012983948358552664211778382008451733065469685260382536265544638822205714319279009637541097613007638438108030963910522544248491617007519136537214976738942900534869151457749109104650981887918631209807658094604794455796169468053290683922917665606480400921492863235038598124969038406259668444844704675212248934125765439229614361214541180143895691290364859283900913847240047370633472268765169156542363288270332312375308305851835002122773313197091424707840614105894431581325733455371598974867515731000523932387839368263257485107481119901105096880925707127507450784587499471976946336334820288449866885757965075497753183388410974117691838837027203910658504352166298619826270631392623294428834327847590220529934258687123422695104086342652868018011517730596867391952982532650927097120788207644322383215119738558648331472699867890558207148998583628548478849248271386099632089382721498960730228189962084349952706682612554368771880692099674420478426689550427841133239853749799565447161125373329263631530625829714323409102600021713701786483847460075929620627829010969943757000856560204244117418248179890153390618934609687537617741612198038931405436478011598449051842169526416518519831264694285973195867207360430205995042771699227411619427049484855323719343712460792025314363105630668782775106567181050117669609705690141636354243891074553153658111844741931317046088870396939240537940508002949189750263468879442057051274076800106154226090334673089578213438830407550818727932434590292402205280392734385074300938415013392099387734019623025805605135471734850972568444021179115307473904811339430397128926755983184314989513618326771201083259159940939225437634072452133303178193572550159173441382904072081253201443839315610441675248997841056867992557689480257828899882672249030529656092856348298881389795740211770865462962210658372401939919809565251661944925460629683710441201277127889434052807120849013320115141122906770776348544112147681840607738185931912419318449411897862103872644617010557005362864772801271056304626421618233435819816057197631451138431443516022928925435833498540636785849062912422619736242444305975845648703806561170830321231919515838674946518757703206496359924266131213492301030126785925355594690457638684122882203864137444340006958762013700460831127279918601367571253028607972921988508049873839856873851590126840497265550743201426489373480169916931403618894377168128974545578503801919040727936997207571035053927433605256474491254667141048974929816394765217561506608547125233728309402145326930929194047202680521160630796156654194413934330442933989813208964450807313559970960594161168697805380213371910976346798193204828864061092876853277562689008898847543231603430446925336927915040483568092804843803774597407065208722849532248323674307650283686090958336125702870351235195653253560433416674314236524714011431521477514344618473179167312292140883553346470337429955873978801862867230605477953694863219203131802730059095248822474389169434671686222181221524481408161662966725111655954603143820208521956490523609450525208811897405882995832733507251120765993514901333887456627859317721965699774775940028330806448680588081792181252100395664059526388028433408719630460752645355245661837169255788193457217861124122543741179941772626235692540714197889402997563107291098710127860604044894816522989598575842851419449089278676978575694800471556061401811322664861643391939525958562277906260083257468326896567042801866586075372562197321004118286687562128937598489235265818023834305851057388881160311013046085225629059264404462358093489246041119595896084631278562391595916280614547378094053071893877665765276563275095749194349143009242564542905482135742629910957205594471487868752164414102801684578704999887697911411524672174397853489835904687338285969430042758412848543664477333627906513621292231769739598900291621826845353953926864595784474229946495916372551805793393816979018769732392798454594589116373387121073345875755214231812909251098055630772794110462773449301982554230440961886365547009992814083664956144454511572959579195826422470303692332203400182856463421850621037311372813030285491718697123306514279825861545215282210951182732118743453265814492209383767382859403567277842472208761480858452233901694503599865144743546777891153293937783140554119391060301731168335232027647021442390609817398380461832320787001553898429079037628801423758159396537494729217221523348170603592054029029256811716522618296231960726636502820395763501686000540354843692400807787887002068283042332593676429690755558839205285583178647014193656109396074372915835401641849928621157418166794040026438867779348726713074081363295135013165456159565087880606266062785569688613137978492155814441157527313913499747051950135638824322974216079258470719869243924909462024391696226515985134484746737404860305790276525607985544514386439616067814654686198044208147264864148591244111653312350092884765573749003303446723738799632924411528646138755841203210617358167747217868442702504808001362961433895331831299255535360457253783865175437945733227046784622081793975594484557365201056372890438413197679240392271306628971977562092905579394274238724592797846363241595672781818304393729157467172046165666657098255874723373357354177217203360722090991502310797021937326873711321423914130155630831492610240108140169112587683101016067100434201341650949891051704823808543869911473328048420203159335139436830733420628427700649074175718475663086458959228916840824179624289710401760351828065156644993109891944216049027352576491753467907820942541470745651434456407097761224955092200576821680470536352829583510372006387354847798508309850044538171987965102687199057423648252880633376273489078044963495242747433214630872144173065475172395284565889501268539389916655829394877204665306512033391361913932008396522777581120326048093767649306058306866857072735095619119750582523910141024665180196808939158845103754484506333899165387702149953038083397114890673874862227588425372428337510355127750061847550874503197492651135055418923175304897378269082635409085197906595987879569449127780655608622702201382976539156776846560403985709824122568841898034359809406862116918703407159094502850341400017046831527148248242810714022018107665667552579202154684085993064726484986730844756002535250670329035233796782937899585735975248025368355638836721645641901202969283111519203841725698502873390951241819360524951814674648018500727700867243531495773904882460911734019693672943750765536177639644023001421732984749514763947566332548971413649364001518555025268789554926019287129460589838242012731325830661388281642256216062904687343158727667454690893666569211581355608720310759974626613923637738060469556923975125143865901657366647632025574090209708522040795446489820018974129885516010538279912595029309006048347316905718584436683802557586099595316807055118985672750062316594149334435119773995053789773370745649508593239366526817870417825742617906518904112704168468552794022925386660642377801085990894916674802673700257448909370255120308308838636307469991157873551024472480826630711613253972053453401974451028314375721286741526603574926470506285816831101631734933530211311062130431219808439957266015670111431824254227506181136126434779743895362245987378544928375336461558885224000312504677999918938028786256984934334166784432436259012666521766843387037132371020904399943054919539313849307129025783337819470244664877826135457073456984398081537427696737917507567430751559583678913437050696934572406620406304375111836576706053419342217689020609061207446859275603621281299991944672067775103900494065100977553280388149734513703534493071774565300524742633445669013753764504508279298219474304958422836168332156273338443263939133079315730400234526930824389501364471153531164507809222196855221575496733046839604749964972759047157136702709554005344079758827638949650048181187852969183278239401739027467811884910380064595432318118342070567906620019220380178600847786660761683309349346927814269330965352132227261609417010003589068759404669031009130526508418709777822189077243401108362260172124366674072347578307797595188134786876919962137340861702648027412911649261756681389188056893207947065623338632138238051592652243359090502796887465094749801347700251399629883675246363328783932816767838267384929974204728998255996856660631336958760527115578828975203180207329302952980825767391737466308575174144222927267165937524164516813928620630307661604303012245020877953230245216531543834920543388168438851474099908854857010765072958594234310722080021321155482207725628021157690863232693280043039709437192028614301378651268505042572896470915470306411530695423294183517647335853963715498914675963271299226956913200628948551570700347316591766829461369463174259429439782859261474763394696391838700587790866930504927480677529029093851856166575415969279624627205650051917515920438629666820655479518213953342853629150671069148816736145124481508623147965289960705779249064658405819208728010684841211598164863779911312247368244565982476393306289774224423397167959939288363388567410421544310636649488677655589574956815182338633027298637557725358497023774216714125595731189817981338956889949406231232470223930454522579487942803525159753468644677678541958223251368212168505057666954731582619475954502561566756315085600354819481413201602377542316807041833654207784344805212055250049966912257159260288315299859560172967711220854054403155087566299211814415978716221635643827689851232331145954208865749025612946169489413922868913314702015333484138009054182325084116529054833287937554017029112310040476942540727667644474857854340851909037182273508619164910440676705330440164332448424453148606091960129205082011947774260262122539001347559311212747188303947471237150302135477291755432285593681234596058034147756921466644565622279688323711087345007100879998179578289983715782245685021230516554859169035515003499092207447916191822995807947842495545504803112142065567971268832757906635717473763071246197019115536261336900649298523634307025300175312682919396865517493434591543908414219803667447834593241877018944015473396873849282035406160703687934389559099409724201153457568436785433416165004336183983536074223976759414082898351448851623958652569422670204994787899561370082538390045962548357440460051595639246524052580564797014159463602032444613140701600578303077346114798581365625382384379859250670393444359917701512575158241577267000009900981387703811881201133553290113960071075464585415135458752237298857366239074464918468201746027885151981089453766871627249359639109033068554263313699073036302288382618133999065910613661181829662454826917604722635309677354859499588839466358175513136221741335006705422903713317226766606321627704302857201713764517879685671518788454655558641646087300371208757893531083667448803809459752327863265530901614510366904181301856850061593691158517629725623675985955966666671839595532252322220391336127412512483646066930752475593822173716457093769986099431811470075836482839562924742307757477498911533887076677117887090800064829676698807729735698756423975187614953493998532543209423502335963510615137468936030747997121019462241007697104256330715204922128789241833528737503446114902292462718433274345344610313639278180317747124308282848618545137873680643762725286808866411237848632735612045207807805661570422502624001960726923862847695272856764909016401016019263173300841543426158775081187326752461910611040373863129817570814986719156703498521500722254324003572730280523574171702710128139855839715667750457413339260517682300292954417055737858413568531969277262564941594708731051485460772448352259939612432320815068057739286662159365831089359974542600114112230961983326577482577732277395800693667722990366599616754949208737648618855805909351114750325583503492853568810538874667722816492321618645837484793832201577532831472052989843442631937862167419135062140632607460777077908374192535974707700728360220396304026450143032127571593878291189871863147200079116941814053946432794817217803166721830572528557480396599316669528411202086426088226805042337888853161671587240525009900049785878314159465293465600631833170968451329819103178713120499709160948885161794444258145270525640270573880153401730376194309431688510972767848164341525304884984748610708239566426448628667425915053970533168873095952301406384746908800782961620823532326386378364331818413082717256134635892958270257729223272136739771386594137950025254033244788312052836797584436715391716022879506443804856849978824467397417069503632717962965454025541421263507696338086827553731078883868605145232771124121003546487046988122756648396517343840468251785630437379445265447292677383297718719285500958564612173109482753252317057142177507890141739114495434732397889807061887013453067905161948777535121969258370408543302093984833346478342796917995674761766639520456628579762506229378400164968100046311738936734851895852115097762333120613978150375957682380222345955717605153284136707454365992614725873414167376209532145149976345188059458462040921612840853500193864143081415834375556396839102304412453609671975396709302453276187902820205735813737735583070120213390520523404229149538999593279817010787373297458934065608427361631233586264045999510140197809578635643905284782054725212962310299138895025843107667238110726574454382487879916001638461767406918836729101211869085895481593449608138688524593850282176007893902199022147611359498103796790415613848899830634754856612445731991170644221452663521485468240774586541573587332920722499924927669876126669936296344943275112510784171732241594402097494794385487998760908072359402763288986711409582152972801216783863125497238728184563400581512661528502110717447801274625977348359704285883702636222340529952825771552665251916713230787428205391244589334116560581326124230359139405790255261453658470642724940238648451217620340824749673261342104061633635578790370832294865547757433044174648496616596738148031549116568316284796854466549592675384852795496988942660714497220473303136736557221908902553457098999810109451589299576188052495441350128800725872941384943170184799684113828625520716921728501452818287161284389270311346195371011745660420612951940201470194322270927796462747701155548119476152153415358678769611789689881995045104738270026992581412506365673270991575895250530805383225874149331444204560987324881536043428674112635431000575687595191786816373597701723616652995005622543934937046670592496000360084214837280935683078654980897323792319465549305339722206173854778715979154927342312317828170916994576655274215669188360094039647500032872641627787796866720441169799618355006842774652515383757869865833585890847331230887909299645170730957937070127815023766728047302627695633516633556690226741965409097337171232651139295758765572424465887720570197103189066264089641901240057834010627321281752453953618492871649039025741029191159386341841479992736827375754715711794104150675139036273171830070603164960821030900848168956029704953957231905836652806352493815136137577167170562238174655689243415817322960139874004999600772933393460307840179728947942063687541748944470299757638926839375836874611111814807762261220399871442948458812146345957276740995907739880074090444681863457312131676737113603304175304026307616347314180258696592403002113963513950109023220103496235056958842748916677262931524514127136803804042795850442751950627674661297972661115952297311945381797025169689098655915156002887425046846738515341611146906465917817417755790944929863082574195888427945664447613447449069169459942192057633225298133346606512030950305420269380932718944199877923177764302713787595750827770345943854336190346228832255256960046342740501214088316528197193157685968865400271479026679217838897765346235902639080507727189444672008521282872942698628493167361049772318034291303568570563504095223828293025038253662252269031535205478872684504737446436165386752166768420008977016030743182773732564124496756769462880165003279371880016995793495318163853790953554307093733071400458649388073760412018454014147444459912854772245139802706799860107064795575191420132899661457298500453619607381223200137901033057217269945343231557840018306716256992048376034854072468126789841320788610951952490827420450744251618853234104157134538942554464840410764790485656535511041544205171922383587601869538694269706535712445227134603059016919679595916126066907823874656964289687249988528390172582103628782448401552440052993622763110852020169756245860803293938875287215400604031415303655563323634815206427300890043943389116432436627340684910704361050128640166839523481674434033550518705983293092763041769651793803406719427562014895552830883562106321255520290023341912564379265403538892830839190927439242885000513221673647652534629382521626920145412025467632341351671105291720393554112562699955002434146823657903915609855195177155587691729053377763451918247693932463574270392700389705798654125679170785670147812005948533804338454613877355468241685141688552087847105924331093158829794602232415154000221420432391965560074014485632116328365425671700536407108911355727968509879854888744984036680483204509015862462099340274775921278649269824452192668448065973608369356563445448161206027593210706405877646711170171901010981489956039555325564144568506610184737670063342555130821471249292420543132497074530823966390534666436091079114501918323110997166129049499253931837805039850672214697659185180603886515916908563264435516711043254731972065366884029451541544622599290718261637343475732356924238162958672123019895790882029721950228420821930166059385399374698084138714297015193426277607104619940460486555170114316342322077776709336752178416186809797417685321685186294066607284296107414844267582276685354423046804929687227022756243248844890258976080705289499192996228551413820425990498525538672357060763745991973848237765038696790398752109312982483852836368948502105540154534461005388761427169686220807046108733473050625295236534316404035654406972569258418584148488317895285090599901879647190223031572390836836986289613856996424277124649266437567574774147020701257043141705468908000952538224262670102614643948173914217986535111267078512019184193055867671879938647351555214282742942893118276998470833930947334872572717535818649072753991788594968465850443712366060842922075618633343026701159385948672367399952327677901141087324551034690592403529059921799096039832307888255639785809788251047190040835850567645131272048799133155362876984977738592496320969943895481828640117464394546619842877836368190625222174944633130645070778200058894746051689928113115767838257510395688939460981535773296209290786391667760734469845069205775249692777617837416422502448453813546511215649984259883482167061994180733109866356966352271418621633080963439619537398415426614592733842068627544021958840262813914976689688331984731219677948266562887784125686584080124780939855440283932724313014226399644131452418407922358611747333383855991423603796231155635865831190178702403064673058213254402950580823797579088887882577996521978171990635333019886968368414393209502861594488813045000137208160525284747469417243096938823595438738950169636358714523491471550191852739719351184278936597357776335669906580209770687983149461210704861524946980784788486892374801691927845309431000838174609982220564398980770795925698751376281317706439206611353121774931206470089280897916000044182910565987846772066163688729481419930659127793417611813324512825988264416911824959454004886675272560404784899680089720763560078261972059830952889221482969084588048771721746529300618934639449334114445829328350872820583268323496002492553080381601897148058953005272951507430684064676195896670553992684837309110599106714115608417585007329558436787831456855586126376723639966728088095761505667790749913802149926639897870174510175816335727223586148242603599319437389254860594540254615212660739109960947532923160644466889519669862597949770852367499126108286369130236483323169612173163863307588785405806318456281875887848097105691315481064106493805929945061614180348597556111326670384573431057988822475297284067432357572066720884132354919874855365202140747474921330930553067758724382871023584548229840032533302971795157867292484614749327655067585534626883623351742799603337597582030762122690954160948055188004793933282828019446797796294069783726169517066897593459827684962443662082095749021178389964967287674160241970350323723111559873805285814164772802470035734579788738213651421871004323235798032640252299252736793976189657525351929360163908097394732654355730921066612537558941877205640845948573535610885387233932881517047045338179032299205862236228678888846036301687534265414618637753728640962015865483054531815419891906663252450307857290501906784967790264481323708477632127741338623944768944556678703445389774378056731909777973025867455736942676907527741309789505408551754135518491893665357204427330131038783782910003421869227556494752104098399553791322986793153567496102043193806868475130232223811239278054452071847847393438829052396073466376010245636921748826771367255781786285652977433027544264256371705526766313297435142903555271107208422246466327593099270614065961663177715991406602148674292304931066716758735120991648551175953702204894184659468122116713537463753556508693778956978429066873544591562950583473257454401893065525442402893199992078396976132675396636682765500316723555414799636773670656772700819249893379176158308838758686536040955194964125437528604353710939959941702251844319099669743829100209669067172939735387748361037873526861622626248122022431659280292528850644128135119585238585202163825067744513601023901930262443714400884740653873812699622900565874190611295184699622050267129367525683568188011067867626301873618747727407245576137996109560170289952716645881265066459956568140847351743037803409090526342065332900541867810723328019129850248831243729884681183408927479355779291495368025928584766842427994083816975459511726555777441077623614938051474830644592795357107912744769289212661384079492375771452143433517251371136740604229684319455391843421189142567463591653318292378954552634381121642564939752980200653860037029025098432267032539233577305970673085419375327754795395487271906581477707430554117269144920654655060887129124024811168696404068630928895487912248714209738498163568687506430612596120516404738357121516987552953028925819962339022489564907821397153020877176575345599647141374236943745910697951105335845103012088136653239225102433895975541342759592521997385823378653608923694962868172527450417451254897891180875870801492591279399835298925466516148985508816197900788415583169824213395206529769990651573210329126684387355660089809830440143438955865503957520590467192960445319982870750467448992452234164465968820359084695946515683723113440585831941703151968828474196903498035276027458629983195171580041549161555138191902343404997359829566702494713047766563825585902567716253696145820436151077433893802421823482206661156343055403093318442026094241085719528445541828075763965018002725596712093933881426930922387308261596188708059228110705555732619142739654049252596256766148988270062878707629848139974739532609865875298402529030015611196269267214423913501698819916547866414867733305509888253228007019898802134232749248674358666244610639457266984493378340555289342008934843122767107585878002321990736275837038535628533244776619969087953000496086792104026213943294075948776650028829433191755010311151852804579864599796842892705059896302708038420740665587878749372161917815270443652225621114788655170163475870114369339783918783696708819833795390941649013635647449868641310855606651500880215744586400550111808491476551149980042859600959608678979975479185019897695056962891958592918416400022794577830407007457507941325618908252011887372862343601093999467622308717591515050751727774768163132066681260336064242130290711309035295110167266009500211697640073684902254182602807100137239316637296307781814259005096602206815863210643523601848711205063428927527976397103319770716540547969978210635273646305406414037546206172738832984016080329592624043636361706727393778565243710938645882180860465313651981034759841971378996426786741200492521321759540007094105192514965805298021469258041285526812211271088117276973578530886385435863753776406611023019024761887718307316911032326556284574545656965485079061803791758907051110136992480285443346894636285957656133117001686792967181653583154446336756978336023004122135458721261348382673747691604241040422439704995056650601785895012285753971885871790077673700798135290954997051981847033103134042054682044539361966392805289928142660458378280533236310239722255007488818405183769925680592172458188546613357882262375210116946706062511244361041699959207654694826124185566716631878176269341960573530712468010063370033249584890173236172756969793072582163403696800806276042765949028513421111713979118041646631141049145433879813780708455286806936674449493174198032570598984252006752674206994015357909755701723262423856360222444327565170786766766193669337819365764348510692679943296917805497900686821130171734598906785424456032860847602826075795292297194039782726476763491676140308067289899859770113117315435360593379257020458344796989549816000667319842340100419944135076940083939726121015508968824835093311728228118736368850326919429823485325215849844729706434176098386865855713426015951296448006746489246489372163983894924437846374365149584808478764555947101118802615280146064319335643168163073261308680111556681898270166140463177668424476827271709390870332315284927779396517310669301058385746864504807555369577624970867399691034620419643763378127462552567194150068234570224287952713259887150965772653413083641936462887578888932656082951149389501842062674365579936564226950666220403586234611615307859271934668327776545388521942064564028270687774981793727223236007308909188552230291180370063849312975979685894964555486897469250057783993315802252376146736352092922780999124905123479586070772248965493145054185059365559668024426303056512411941949993151393496637809713846206626724273715401240278049159936253064488348322578029685944756846552580371575390251276334335483388783421024212911700043524332318093306636953824857526406475651639495229553558001608516979015928252580973016647910281117439859560423277876675434768740721254152364641311360580897529500061909204648771525642727043024382992825632505523811362747024518098662584597228379751657671901317610305434995137205104164825786316129581407052790509786151063300489807748245923989172024283624963501826398345528671469598737426189733339418297289960909827701772087488489923818027127823663151435115674909178075657282087860051686274531386618999429130017891389145580013835516865403742974497639457789088805058126745547338067944368812004772736313090798610954185117531908437192062863418790574587225735430968337127143591728381675110825062036640853587566492947666310030372174413599956304123922149090365141784092174825751711966086496104383999233905258728907589811004514473493014712759383158523719731112420148159044409684545893267629332526436128579042128071925111656375358228553110457605171565753215759378403093922390073082436342708248606725257590156011602684757461854536526572340427639112689314058099183615350012794607172353986435686104624032788964768784750571992338839164519596720503018147186589742888519803785591039041518966997438014949524060257242136586475487125587524884472606409771942868689988558955392973592734170599334735238935883292871601681466726754172186363502637545270184399283070555332586588981689504201891835858789431021813188423594240056348271818806780999633824062184013079972986899186372855879629831854282014054795916737669334705907611798353073851860494269829178361353211692780605055070189453867832621438910187626263177510286129886437836892347400881544411451444556982168105295437095910252055765243811401553347046791223462590839918613809851833259430933179071403682843631035736587686582716850357244204619181991388335582445172949451937483779778955176996412099185133107726202249197303793096735618575147809515769962602233724445302500374090602887851868111196145287956497207488077995758245119012965315962463163156935017484082673983589496223801486861657134121602370088007708711618612015841915501549903657249335980944932727947205070381079883723003855785337256607057260867748795455904428227700559081729290448161587262856889592565476821183004133482502599324097383303847027809893086741058358880132870729348223233846504092817447524624735927321958932859747758904730202756417873552297195404129976048508886342580040671589513292372407375403603105750850382944115725243093009564401511813641191493955108785668490311971684821310204365331764973414144100604721321385437285540650084042090329490114497829842573768722772958043066682183484114090012077995791187257496100833857172379985069139475018876017890357626830887015907610033647820669594265649634712749263729037281771222697536888065610635606270595092427520954620085714621406713498181441196002907736779732768295525060441571929757482464463916996099132785358665904314434426908091737807159529842181593228651639142419247767645428369795033851362350643220792443273964939212911371660053700528828045031348351503451167468880306536560941688026979389565067198349869391170588588415924840458177472058863322118300682854643104337891087371345244257533364543020524489784930682069971043722095049611708562024124833582666405452907522846167447494942478293711422781340794063852934360733539629726755356135217624205829597569646145942911555848676850638309586817941271723342594446272655731834312266713349001620854678632885907341108612798245281512502771612854646127804493883400161719692465728922392607537247140699985838651909556358594984393169739585989297400251356566634127298248693820431591077192457708008022361650379074783164564250721745588929911278376437607192320300371412218773955517753154768913631154347985677617993011438384856990196867304672128843997618192300956700685172638800647619755271254930324066182418206252167427214512798584129850227706372788080097171273749284735689513129916640401469848784590251300525835262333045627241045154867430669417445926882704567776788492987338150349975032100787138949203830483097025732674502518073526881258474429280467996780413370975722650365677562890333499863999669008179509408158619723402422420676976035477301307527375872727413397288722923239988097103095704469538299969131816152350790025983794961999540049475801426959542544522628681772730887248075304729531544202461664626550192951854610282272923318591914107716978973900661690552508676985180366949551947692244013367558915531676817636687976691344590695277667153824446802224151156018882725436167172834277758506281070368468839499592360133407734469262671083685475409117409490850713391822972404542729269338364793997275641625978413534606036545323258999945871201350177511386336781612329194928282452209943931115734406872431419609671438860066816083123939705333670728200800297943125062963495546198111207210890572490778290371609785076364752140054232761256131766348222980977634828267905474798616863310027625765841456716098573278110125625092202646167240073370439566562863791916303858945130911745023687387336895734362872345390569597692496364661344903237600984383084403784591051871966665165017571594734075365369834917567455052175614188929272954665873054588805616733494673479909613432882405232080338168034064700488955075068278586121523127395641749905775957855154324889425191621637599985119425332469150432597322861433920449895549523028293300207388757721035848528362388021249793532471090137279157503238239316988937291618640882115731805418651544801526810908576253168641898669206059745185577036172818819504569242588404463899770297528616716727289462834501483123525155473256872640028354617262603446503226276779901723101086130336691415842383554531420985808090384617198428535887063899029474528341463210579890072399191536184634515407503672141476913089775466526730971844021323659026683643342302847608775747712785608252311010343588284068387625274925451007637577668116017587517162076212861569105713535931609143775265286984991004136258729774168475130422203893063673944630166955179580039722315390230570273165678374556362799856377625372889299809626581212727284293708655407925649110144830177801778164928137803087725909108081397612226907946304903366665447502219417431669484881273028723102521582621962910879213065854050953169699439024109922888489621798520191009585242649582180887692380621830714404088219329319521379324560194098181566257650098646459008304276487318885795373928138218615406696121178198384557778578261762046070907971141226706024776226098024648772446182704841238481486018089159496487003476385811532029653138138033132164460310696504512262290610669027911864078752600896998113999734788362314510773577873799510819554327689616998612123604620692164182720493278103549190253194701054923411459590795277037562634659955552877265019367904149115742253196687615536739596288922435659567701943544781269955142575617047816321151615067865923165633899937837664806533028041012989174099613287816377557696547228692668073587499200203035099036155003694358743878417699713092717603009161301389405326103027785867910849780318605259666061637951558286088857934685008436703613359478145247931471246662336182709641292664263851382706795223829886616110262332767327116902906895081558938219741149813088599310129512393666745411286728005826910500114892063925144675688532009189287574904765903959974324726485136386990470504513357472811764289700889718419680299569589896952249883866148253339739953163831711180011575937781952204333814026273865297643272218225094693666293709389867279653201065552475078808874546397700253207540768694550493347207392629288371259001058682145848330789073048483024576798693554575357034620830504565140074972190376222482393713505228259839912912506512544779433432178526927202004987998996957431106621615815746886968176801801274278427865110486776004545304623684530490682148856370713715809793432864269531044774389639404043875547389110204225697595099135100439542898320330608175228443496746703469700108911883447746773322587287992122009018256527964901267253032321391612325300456213468245828893147714687110577692310110500216478158424872805741847273784003086107093493066253304753789593733206289839020616853906794457217090324631438640562304933585361937749968634817316061477126235885348503339728132259949525606573240639997181811987108033034622103173623304509527254074803574135905960324535584525653230310984946600631415126431502541309832296296452082743322583550177308392105529941991124924050087534763154347326907420128264515329513861461844282080774289741317840597474462731961307484859659999827634666425375484293858893018455054090891367603680117277847838535955300393069605371202919639918021143899749838013828263247099610559174200065444537562269543342194761064314564018863867207705851034827391385068860240924383569441389993900290840626046422826450216513291109829205768777363057217802591746927300985336879113389931756972621532537903126639991642143475245603910564564842433301638015134596386679224045166344284131692588521459493770918021907303819458718346053108952119913870116267586196396159233814994300203960214406354276499098941078729929357033221086984622026932352296936814354761407396719703886179611820711159782659023988412292851057555501760878022448223183208621339442948542242129908940609702512614061036122566157368238483956549380874023838123111286384620309276297787108307760931280485254175213456784652272924812185951290729392691089373616815884223001865688138598903097541936424074761146031466390661003130534566040978182110367873193111852777765661885656459203407624488332808123091830437436489322392293421947068657129190727681036589317533009474311170564644098821640228728551694557501181578867319182217520446090772829648657743914159191527929311423925532868303302629653425170514649441942281684399832303542996255820916776231480599504724318412497463345163482633622294102489436754761260497009629468423452057970521968831256379121039543072384764487855621813885985241502289994866209664999122700007874063328357876661075124805966210941039236742386254142025876424001539606053055128168995416760536888665237661866512633505297035823578400969062982874999435813425394366629061993373893203645643765003390133076400279568905481796192709004022371456435172461191433126259320241926480514468735589781798101004247686104616586746230954943923737425321643346090795272255079957032613600714229302075223370307608489567746694135656399029030230647715119172062115925984513234683157739711615783719759192017598242982208088555071400348088746059524342200354371093698373343130803993770229871425641316270585678420176509067055967309760502140714286288268797649838385965582807171367934347190401686027824631716679659888838721020430242580771440224698555847013822301623585140077899182489357479824849554869692980470101058732669980432516399101886306544998536774403921129894778004913347937867386719127815079989907764500487127600919289555420062343020003243200988456407222185723701406292001076575952252261004613402733731645904924916297000066713129441411489028649258695441000139355327031654058461153196595541237104143156941346252245602748812548434715605129766821196392497319553066571714386281371419362759022436668841474729381491817725272839246872461931993507808418336073819486829124943100181833663560843894051227209160601727056460337962837905964648666143243682340342023153855872930667807603844645817890844801744087668682842409638021492288759053876863257377857482815961841220378848041623859608901264828317570691714955797635219931266438261269069910875824003656395160407669095731227567034295993786678452530634255636582569307160966261604546306117990207405544880591544936855923313511449170942836932524021487654270773898379430656005239804770023897977622572389388060452307610527739221500879072028354158893321640241517885658140656333267183081006511923040785328549839610246353224789571274065963736121676680892841724637069180196175648371703551263539842074784089853825299926809938186275616659292525410846705551113753183771574367118223797871412755640368386065522761056993554670619019045973126798695526472386574943038417780610658407659101925773916874663095228244836790986121035642451599905094003749500663372605094010041073777393496063419010688074094431892500050951938080447523173659086536027178158721023244298563742989056536007510932209891665997326283084983169548283830608940367608809968122723661039761903783388900646780742031586408754482335809118781218965767189735156301925445002517555455531435580086486221853384601663739174886276706495618235592998054199750657727218271419788153733247079925367453966792420790256598689194782016569495940932513656821152678770714602685624556744523682106178446488267231017673499658883397032055376035445780591252232034803175918882540189218170290604485150704287918559069877311505933709725523674524336578562293611143324986368213967426899666919418193774295424267710109942404632090287254585692128443137652544895341012283647564601535543442890887149736185504989139387939932168815510934175598672975824513439423137318949573330233597089890468514832511426838206389434345723074807757080517546797133673617853103003600846281917877512306984949866582567149896061651028495255469794183827507625361421647312602980533291556346694750559323528238927055828914755444002230688439245509761554718107589977621354310213087774921309312225425895571651350676116888846684507280914134859301615811404226088962819040172542206175928388360420561682620638945568793649668020083791259523157173741838548796636952477696127414822997598673914062721220710516798746280292236325799251241010353226655250495726115192782809687290924245980307380718981582123824757251504160025339926346501571531815293213909893974305293811635941934321494233359034715849804510059789948351233471306500906143000104148772916097635843492934169807524021275623973625438862683665830168403985718890699680795711159461926433064407834245704950835347502427352806022766823294587045753078148326884664461863086825757219780959187432030770737560437823758414926342491009707219178216083375105346745793547319560479337484895561901878048691545975514129037911886448295009739527230654165154231272875859222997980943809204655250826813167527174190492874805444477496405448996694307808629922695432491958132962502914064444463846351319605281475816845764327816536387670420758712558272318785555454366620504766959063509074261170591459854752094827216204041438145692873045110300989487810816183953840857462027167519685796947780706198581242035703786777765889443579816363761066177763860574953267792128385393745946780625661367356008142575790582147981125255631166054164045218770101801319505945996859442745168887018636283474633137108621379146705802994461741150241287981050585198247344192576335397368638538544633395178654390618226620924409029798585083991212799430805214935015014436225014490930134552723412027611302084452772076415136209890957283730836391632093717446552393314280842757390521715289869044892400241426070736234730972185451206968123413725499678840206392806600449259973248396101824917116776032796304147438092296058403400753574569074554986006967150527858680920180739500891628824596873781096730820140036283140300599842105465949678299186260488439531771749811955165651365876048195074232832583508238611829655003084186180793341394216405002983358656264376158470112743234438400351836678284690573208162694841094968507582414820987164621314452562541052400666261740949491133238474083992136648659612180097831511704222470806102423060784251782418267780990390623019112353217483145602967721467479719172972229684519699649529622532007523689894666238370758216442260867354246145460130172533122945723574192475048950833210026194050066786181597083684665604565532745750029433434795508771338185765671817892867489346654472914405174014831633446254368179425990966454597915844804551663794573676407362875041485520703187593254185770678447106261077746666467948230456619395019384529383607835219181289184096930273822064220847089862219314096007342345228560599086958734873159945040268635330107006190556219088442353429686943907226707548493023421674547711908458087069037259626608388320324115988370792042391910730167755171398235526069447619365300304186588668299568869477209375891555392024529040997388484505014302345674353113471403570365804199554328488898963351343932784076492815923150394063227509368010997411663719877681746935084590339518209322248997706651145378351969226396357788161439594439414262281956588042523698000928013635970682895540203159049943378224074961617115619121336321589199156965985158760980893960119925820634402891058722161210473919938326354871087631646498339620600344769154754368788931746315469351575155373046463364082049508044818160282402755648844266006969077497883640678708823935783662057606092019664006334646984911041258363472981768764631818809326916493979068536607731200715536962798427756721959768433280022453939455143654665873918921845381715575566283118985371782181387473708418466892620225619130017257841797319301630456011856204384634936332195133178898284019552296730937419198246067014950598227173618405354401831089932164975453848183860907130965984150463880610096587043830285790392687016243047538999048784576860691408543284816734497803250137545250293630330455631636781675303868275408474888629181088840472211015475610971035170207554267721269261088761338935544755838170840676444522275380587110057036147840129473278022762761816699227910256731890235058679266295821927914713872466540680826788815775523060454544929174474638701915493055531137418571818906690769620323028971271047299494017283071821064476092858954258540505974464695781534680448377754983397777289042980480832555295505306309204146425706229179194536710794019742579128839295258466334212027303947744311816847095784549457100402423940518586307710829684202744050096725963133999104167738227981677149770832685827369810349963032727068787290299169149728374170449456099672979251809747787237239596299147348592488097998465005345859793174696429653597912998797550469032172028039906487197678187393578113052418613269989213391057269360088043506401673567048331990062244799013012042453005481685921637868809101357293264158983106907481031490332546691556184011210712316920772126008382210211865803008100009519160159836414024721999540545756664139079645790657228784394131331320191631696558872465607535593731438985382960645264333283001178033143875305771753723948025493850917012078769004085247793800173349181289109676276508157242916443564436284918957973276141220449013586052257001901180727701404536399142546812073304972073217981317062368407796500943740194696573334073248773534854152765211607590380369629311481087938974887961942529517419544883859492073462504971509581406445336526332605516684329199617230408593619110258167362820143206553255438860828800479512012130497046875259804707776691221397398447284495132799796194645804642443980973068480780637939747318095095739469107059148422111586952635516842749186147558550725467411641924562452309285028742202254433446811942666238601343353898401487604774750464444938450079916021443582385403519674119916795189179065925666391986936057083878913975291608868328175889566809144541970223797308169235805926403158449816199467089845045834878438243205678315880621191230941630643959415747217291964284851963443163576614291399451375510439985829910465435805344566902364020764905761840417908246065300996470327408805398788377656711291819143326321268872570546777081041794866294185775200940174048476514214173705158452554070279612204700785188009350000702223253225561932266090533624776867477495521905115548124594543909845909026024825041842342386944904903186116754102207816875558272426561186477497312078133986355540653414926452609901308477173982345039473422074076822121985342044973351399844803262454881429729307222609797714594209620529935615302126930798917285977395806287171331413143645535620518723934970664689751300662962099699475760829676638940258591986662872372847128665054382043246164442226004494342286714183196823588515034223565893092223816495698337662921137712717209369759605165070110884752168715287437882008112476910742793194521350318180386690442870165547229262780521638607010640237671426571791736734908758380234680385809637810490149865255242637130189839499515344542933511734087665418178607787241208043295981886105539850287814977216198441285503915383881108841072568818888418994621874764514971106925943813528971144738626814381206228560422808177797877814811219087152482701469330588174186409028055318984261293028594528233598383950292494400866314758834177295872699247346925181934388014622003932853165425446999333435662886083540605907149611354914223653071654315233876461717813226999256948231204713100590045187427199145583969088013146323518213574111578078677109490300711770414398880262430716138490065105980345251525926085298477932293551865511237766181712809477770671851733389464716786912781323191844223578600884801834877952245061238491540758839179561028536606096241616586391168225053687392745683878666106964819254355350572695555339163659857672365481178344409823254011639970143919080718163936788186540042621463691288299206344168600081125145882395649694299505770024327521843953849263581420964846704591574628311157117445611222183444803585849234413591232845040130080265975571695556652255802764218285576132075676556052010785801599170044803054234213748120327045847324146873396456777675670186034364082011818448712504342540641587823760837952199058910716047023053301709857660680777210176209263303438043864567548045209502960887570166161996368156913220881770076271466865319054918092158468998420100630153198646926987578630807255416448579544210871957638880802273569644418927262936772605126789863998122155666173869647605937774877538998570293159160425946105316829103203868812632376522697781893037787809670983535450069789070296258627031851933379142755479992432868040764634182433238037276750540904587159492467607007287503955015440974643711064857842520067623009086852251055783133997361656814997324896761023281435092347792655791950407192350884338361508768513565653911299022201017101094414818827473532102401108504874728028474543959026805553963356724980204067088274964335184844910837759694534144553001638265122686624165588973205291374419091407342033118114952418414775575756906198322864832655391068755100784175419302054261828650196233319502436313368309629356708857263814558431601194181897978084987403810670945483673100727018087006112664513000114508072411716576587147895782942985375078673211669957990959977515754209415681048441234039767943228476783920829326913402567916757044952292189120360083014773883119261738558976016749236797844376146830952878389575926802647756175471766545054478776649941904583216776317215203099532673494801369446180534238469508957691514582960800772864438105935577244549897956436254126375763455254041263387506200181491998271759585906299196955986153237111886394059974698712496950650040105719380436865717707687706449484797739887094941157166034978932784485860311584907358273401634955758830471625737940702949195910328609677562771590568603464466846206358746550829282283112298087188252946047064767151899475212206015919189193442986597803092790132056205112983169331437863422001075742901761396855480968908818740786355147779956077053195824633778211764631691254359018988142113561333222988387829321159350826694425820191949224606693587069950835488400893095944671140220909575637107706414874575257082074484903946676954739773595384882309481900593913395656366399541462596475927764898951755858537124278549936211893608151778099662144542321867327548720820122160262360706055276319171355842195441037036392933233735768448637285290381964104942133647395350946824277415831088869834003593530239858467086160284462368084573079265610314770069454831041985289061201649933447340613537445987513709644300597539074727784192322821934636332976343268203983933597361982581612251944614879218047271317910743376215820497646817894451850561175210476092094607207400350241118434815098015169558220672030658290959306658541874863893192935672226118102584465825258464917994612554495021196534612333946766418790920413953717348653493348153801704500197083180920326722573677806792353646861842528262982197167172843136989550431777662082126785244558010525472210959833326626642458498865119657335866907958864767861816368233345198582235343596536115299460204533711686264456694908398181972399917913401275118718769963488794397077512965128235522872894253967976721909409071576709237240812267844011422123409070738691914275301557421026880552906500085853705822537197227302577964318322493477151016302363603314350817869478916361847585754881183445318573466369003426398951124108933123967384363195680369240188327872515062077901189039593101882440871929291175532447361819330742830358737568985885606906321459457291122391395547497803475598878396109249575549132013759563909060461014660535083580966060844844355608479001941123677522416902880712843207377421486689710094985590636503749516373350859700926075602019264817040613134169939245030956509395209147902456721324745540623928578202857534861558589127283409221407229189594701840050054655606770017264775357591980694334858102727810707934748054796134473032785256641263109267739886324637978394053690177079608848471460766372552018656464536705187145570335136698910742152721706540504768245567613909158491690720651596346553362919867831873528199179636781736956993110209358746272696984808811750052343997463645198204215431238962134371028811897259575411723440373463309513204435926445960453173165321374273249480413936535709396975815818496935750301227071285077558166425824004076597298047541204573756668912594711451352854577015735058454532652830609763714703816300152403074038695706699716119044099762364334768083657647188863119615097161098730957314568282589467578995630097452178906836973411610205438569209099232405985836217513400832073050562468130794060679039221658515815983738785425444660696684647339415182422513302846238363245190407772428721205953712417360533303077655408333230371494696797424122967444152352450867736373199911436638068610547349500863363677944842510945719584689673601349255709111135736946084419041113942723335216479254589699780067989158161182641028064095480125066867994812850544141487768663632394936781800047167339026127860479727297135831477415559707548504857539261281473712127354989730142761543984163640051692073337573006711138522648968451508083137399532828673482847673081839423571736501212037983181914068995354687552976171306088153527746927503119098571831453429845117179923530160002610563705337811520078287150512700334451565972689771763437336372148497461498958988775398823304566657347215298617354698460424415406702602920657430630499067178942223577969640666790634841756682023745673160241620756581024829918019520396309075380964450464849075476811564622238038252794277056742920683797910490831220668679212407245694357089809453591930032499121333940455637586763528178713362295561897415801881905746515310325536842090049994273204098073449586704206434295182241954575053799906882373203299091305868466880482080040262358129341206771475348191050307242938954978397562802416209227006637345702664306563294061031512369433215699655814989715810528409537598149192075280284640480578001258383686028537981355116190577534568839687368662437972228476117274373855576261800936299225135449696889705180823849424508432831816679143168519923232600668529457815027284425705907361840332204286248053364233102794808427405846540391597529748120036385289713813024592605066314140862022907661598901606757943065401659194065059333484207784482078051156899067365375957313071318096660669117363494534414800243707918836582282985435371614011832466058280690073049743793042211151421738063274603916589166214475460477278604528433326732410016341932073837163029747625841542191636672823034859393151223568179313405379340461445132220123372020934990753624375813767664260896722817790651694421624822632415305846817544803720627784015956109977614255804194406847897303516300811622232838079554505204891262717627479637657115321721513607525224623693279977320066226862663564098906807786441641735928235269697253820934692754093602729392603571664472594026620977271863903036609593717728389743286868496729481256988302574089686839111273693324841034876264946224002436803874439936603651055416254836043910763427715549103312307203086195015964834973875411636120085490167181227626920421147547174741991333361563484710613014407816540611657792861490482916434861496011467811916530121973224613739072269857963568265789180167589163717220600676043321387455080349844366418230482829748739047812705585878443534783499519581094776158163812072357317721452078617763818958005251366916891356657189924992096381224428584990753191139001015660706973740940354429509278830506387824544389622024981461581742340910260926924478724378818057462084485672925610838853957007552019533627501448345040242176517582458547918288822181276938669813996414051209837986864305993726912910191814354305584195099508212023492079102616814530081865673997932439864377374161835779106369102675147385061554238950246396315894517897691069129116727235413804422482224161555890253927893112959264654479794367737984653980522140378665362593779345838238823918023734658207653126682466251089717723981526032334841624814178620796939844402189242197910604879431413641114570583988424563217769803823806011262680486558532804519067762587765170983653538009934183350899281862125464850935230705542960830948523006842922389087147983070205269625580190431963782724996842262915867482209106116789743087811536462976005635500527515871914218005724567433530040508566050832815042902208173884109137878783842239229268524196037758532116487925017011162716807845172790439830644558279097238505255333243819556759399695741864277886909998115570823661118209623623037398162247346594371535057524984440597618305887399858906834928954531702011900222030757514170675170410223856664114589639885280535023077966317746837145372163031237701979417843277445990623025405635174537523310751015458969381177077170079004246938110975535228225960530569997483251104358076546843824508456082825379539292887286463238516342424018313397867214873133242871450798299067635683414861549615537140133718609809472309092871899361789785862189459878162035425009654394197052928115045772784950320346862157894837327173931183990911625266293530739832122703179291203720995762999071478524844075055050953200630135863811529886262182155903223295932655113246872578652994865443805524828060345921703536962318013854917444708928283975950195005614166693238368773438918396951285517097419974731706606504882395499442199497871371119877485502124523040651273468991276854526172090093846479181893324332082336888409228726967320339349661172294692989409126860961624532541722404308548352131383685756524360751580810304181830855151583159197532423166261628619088595146760107773556232812659317358227355402558894506408181643210392455147519691303574748946347255329009837175212674066757145101062575328239414994006463954988590814059445056591526303575049110300732957095741619729424102901806224753154393006134028038121308417284999353262269362712972794373338385949807196831794043705980071626688278266077479989950183577591719334968471307864888227825069527045811349695036079071257137408567500365927583137618375370090555364271345725112518140433906542063490693593925458970358544515442101859694074937371315267876261814075085208321807525996588811770656218712474683434570750675888968315688574235234387879193405035458751183394312317126014508064095080314201801704228790821699024430634684258139883863523091735567579606315700865115558397640335974737419708635583843425786348312889218830461518105847933774678880979998762668999093036224762999377238371581890882381210232984720221030531282231102587284661062873973816059599646801214317216269669968882269527807078724855955436482801245763834509143571852876837187183863815847074548491527775272480753922824850841937606623491135929912576986352738303657472658699552925380673612319723416191964553932785229795624350233231949307026030234386217673137545282491552054019675341147056131815582082492843047313435460297363860533113628521774445115294157088271429378547857468036214130399237674825175234715119134391494951055722030296727859874020355993588344588293106389416104944901652003192230615381989574949245081681389628505841668611037258329141336153308735183290991380796813620159008903249881896733283571058476471782927829813796523950391657058192921262316477473798302228064950271385549218737841628510316764385497311873350038145461736261575769756654314537322368768115781407855333580148224289675740540557900709195749414097280196361035973948311660149258991953560944320354972014249086900302140519888091152055843812197105517794281357057323816999130151317804700401545216924578371098367357888008317197561200205876577270330839281091235668507639096330488105448728334191806238058144365868841623977295839575908013965641088021300174529507658097656266477759493618391945713427087167261438305766754137472027880632392315676710934847180842373058026599844961672013388394015776713034645416465649953813221903579946399979993212466648570276050806173874831081006475887501789873640278185337020337368722135277138965496812990854577412327786345795582225460547330768556397884890187294712239432414033378932898499366699421095613450896653048368785210923014838948207683178409530285002616153611934458603844894663401664002691914613364254824590509174454806060714517338370654106282939958068110476527537857077919884920767318678267308639565943502276041494877490527732905826285100282929070923349394745509420273894994462888641494804718472822285495724718452551701601244477540839149323762037248451822242926328985929045507218718426432037960340295080732995091799931566965521843466636171399328694337562679144701631805006473402640846330384434737850442111636279369507297811868459955966835240245112013241296098788497496351181228095536651616086276657826878389348982685029644464145823736585938624666194937048522458901292350809014438757925529564445518472339349868258022341582583349071722647167708828655503768537961932859231083305822176682067831628802065469511650963451808635843195379737627276559890473349251125717625484992563281292945721287731036758663339739642031761747306876770688526354044742335788321320441608780494467945071458058259760006413866982914234641816872260164191253624124449085860953654995593811085395664549201483250654268080647313240633289216880049523936384342439156091913153885225322949748335686500194109645313820164445119886760302994008977470226746145997669641398863237531836083644139948262416998263599072263467198672562815679731651897144395964446610488546327461959575289313544755845392892977775004771682997873943875081511947487964962579253742980070357350550355792208679117829239663974428268714703291236686647386230264475946775283970766786833904454916813463659040892371223713432172554516324104925441968157601311810065982120032401856167655904217221561550524987572582110552476323683453310306295811706062935852891047160888279976501217717240079238591228962399668593383089324907019825487252690526622233601421577698334468101287569189364681453878596366011829766698916381174773527574334602025289185240570824850616180698145020609100209090546548030709427280497921377724374831511000258131795850598739890482877778379261508543549096025056478953220126155975620301655420248641390444435398153025761155576938659494606250824940129522867757510795361590398287562708258631559780699465701588903477660472886903049245400083614352114469592596833467258409435855063337881744423693742919978239203752009359250999772332273328227244630294599904957203303285435202821786491098022540680468041047213490889553883666351246037745620022969309024713896746624383818336916174545525904458892406467641031713740350257639401772589268205804565705782095052550008906461328233822075563161614330269232257607225331443844835426609761117565268839314746747263739134926660972756087861481633139027298136016123380956724214219442883712859936943417603597286716444047281884697717545659043630771616056811517903627304991211500330256167059990412084480938711701970811936955622270824417712520912186284656190932853957646708440796719412310687930849049324856423194807762051919471431725063419681789089727506230213219221317493759282560956830066935755486510068021784401439159103209463114630188135128775135245770302729687697994090251336579713792059498898714073110728117941599874819632445873542239885967325123905190676214274264374465290384400441256202481242902920805973083732536585590349713757363619419473642775537318809172464337957026504568174671552553388123364163928050261102136303132345553170548927796621688921233913359274923119325960836843428581167820667351240771663310104268365907565800907679003940664742391418361793099148199993596204071061844287784494411908119633300722053294003912619006562021790211996601436038893696074038550080418295278360589705664294315881105268841752345116919741497865996790148329523557667725801934324417628203728704116956800285389231507030842541239366111802646813652353024790706415381444170131167020800115642256258785746007167704295053623402329991365908598041137234394825867937139828075548114648004656774306295538001644432307104039687378769760252645811138949609303442079556080781221246913665636774443264514686027271654645681103918332123784537126102791353981113080472161462348467413753381457246221894719222748149168755109760808438581142435951833714674948082752849172420354996571574280940896688627308696733703602220706429362252842354722116346843282704575199768489534449323283256831479944045044705671930429062141360447906355766424179563392450591346903519630825249754773600860883040078160527746822486276848223839601511668980005535431246890150475043879554879737355017897812086624546484257696334245687712052396980512766514021595230965271031298624555491561553210883458308925108289288317051237458396458536100213155013584511341472725886358446672105300934767150214568036775602735989730947322600721065529466264050838493284055591401360895657627684705234637681713298244391294559993607553866478427312752982646843392773956364543337680495800005437490072423746456442397827682923642968749481742484804077969076779034287554909044503242582355922621048999694203732074753257923873976739947786603578339047749499999052222494889507395657345320573587094811211257811787559570654189700301988432413658452344512287746754313859201268929287269660905533016508367265564698866935923734747199472467901818611959644743452860182583111915877685579345139447253311915166953383853308995018440273455610310900704563680685970969239757311495069651074634597356192252465033022291839692878589583415297666095602570966703975424043755013728783579169329688519884511607274387332334095345519933618031785012411041958145207610266713362192950011880905206307959160530224075087563732558940329222525770380224407698232200499019354308923620918975468971240581540049810253267605920869064974182144524235343781003835458333880114540795437919116434512086188895057298372401002497564260210573603250619633740076030464061509147595644936775411952613111068707501975922222871143835236655042094090033425041017058145753896825270052986669869932636898567233662521079383845855699509900417001046970526275463122967092445273847410374323008774200493663907212111801379566066234235617270670078820283593189454265756298759434288129132326995181372464649983352256601885655952489987939927156557802040772255332294219174251066931026873777661142742784631246082256859003779091057024163182863469040282475992972530100240479629018662433228623161302684444858783392339273497815759906777636824937769247140322170788881588127602845119324410980985798505223542915194065254014232131950242812739140100314126292807081474503213426995473660276346200250205344533043080817048640113730074482893913998472926313330075318764268681732527460535999344459422262030003659694087355768889911182846438154526927417018811449590206721957398746024268459519960305073352840361959810733134143013437359677278860275002053765437561957599757428316251834183999200786457905097190810304295411208856140163200211862959056172094206256585317515597781051863377823031132924012510799453155610578155850011940900669650503676426249518536210155050820148908538668181844509975948869776721208742182073219514956732754647693566001130312666126617157223322768640812173853839071286002627796890132904420070430617509065498726202962466173475878921480312868580714195183343419187699587649343533560119396892233242006687287826654335784552282492716251463505562836096570830958123015069165696384776687518975510839083828673087067432890359568418756722118364588303486084801113861431719775488878781274631519938584730678305945855059781949019609414713373116070499993905132183405798578447804897067864911409249395245868166301573557635870113777913632525575784801961660932858355074383472172835021665948461625851500278294338218673855479246305762486479976385606893301422636310722394478481485378456730033859399602795832876533719876824582661952883076106913552171056129391102415429442632918774661797706261342811566911906161422366946095513802199375753927994993801234632757822890079221354673530728045552591902279564800254063903096101925548712219619461994377754202892009752374921071113629029837606490927077975342819338220992237448426926369979182868741606876352529629365806022632157167640519877065732242494602225622950916231922076413991698708104032855166025278469009986725105278605794111058101937163542304141621425323121646054960203731899824254179053582006161837996356158735015713614192729160773272763886045732244911620696989737419480566910763713956675142798556763331329281936209635414716509693857026676466385792126574750880207331872897620734814542022545142116385034603557289056837381527296731531493842552332244828665435291262825539617121296962149839623646807369573271630815824485482442021579640908658719150876492491096458524118370312649112900131789386761192035222309122938370548826481370651722587751817257339612926008386405321707231906144831208793718009091789505622717187440131661571101754483160928709182491062164369038222134227859165582951620258668224896812987923603750611754187400212758776660503496127716869662696516450666305877301363635294847195056779693629549237773536265650604348556955520349576044186989839551477808389058324298675353725362396232614744349048684262505885359241903264113037817467718674084809780734208901774563234403596681203954442942126511584410986475962728302059084202472702334340120262931313466706321996059550554979040751674891181819547921857770214571047130517272944340272456749134115641156317320221053324334285076408927624367894181377033467331471337287518057788171822604753501829556271306366745556812220901594301181932827787422733261905107127786457239948306959358885689821925066647933160721720357121287789790105146277770519508161388553054340775370167356175826651909855303940945130967483077330417526968741767430841479832405652445852132757502006793081529756560973692011086429399426563556237594118217205831044563450768618137257726176746275166661282711794645025132663237235595922987804781693570717541448010119113952688328512652071532939982461088060082617450255774462301168506852701322103286087070410278863986073752457007950772422936341075870492261932174957211275603152604191706568745422403852311926854049459365217610259597980546406872128395932532373037483199051123351114156220080324631886283025254178856539457189233705205515453320713784771307141487291816627841737484247775494513544792539006239798664833362363160307419266622709825108095113345913977949702430965503403417769913558050824615131693796306045218461024308416934158142617978090726863225177876553635445718549619225143702972958807804147355938977813940750045093581323129260693851231122668048229709606304664409659568352882862509254635647005997484315935000245292927360058083682020339641118997413918193056020410589103142941651006230816367485078967751839550082977174082059758602980603488073537761894344468890888037307662322988123800345486388517502947043239185136007485161678964812079220643772300127435808299794635205787111085907979747676826951722582173098759505547727322937030257579566506813954400725881738222507064133582711217587264351378463593747709132861451563483192024242877827397817153479280557753124494208983254456853969565537693223490506860956321222151576391137118526076673459830294516388373104207413411835742637695834604348406055536640124328638895149466662105999189354050772760501668118120997659821706022807518704603409719963698201980426134217171104584104349029732537840495722749788905304470836277942211989209833202811492430981266440996342328863468743822233514232023519960371232041564416806927947454884301910419781641629484125415185692746437372844364027179400873391608976914231143266552737161233641484314069101452423755827855923145327569062210557487269124987201578623795349982235373615539241137574090139260397072353253924559808170131296824703626950415295449707843142424219790509981809741850887843808773077111260216586540264862239131493322242215553313626109054453826160819744790457994822672454765638393332046681293180305750196474921081733091679358484537373348926565448632096227879822971731221000867248642174350003450393240385446903882589484020527857415303664090580598398491039984396056852993321542172033010969511275524371601379337344680342535777302936917598593014196092322890636159867569620215354774405921183081864240347149177024262430181544509656397913369734994358765117896555975120505839572478329958435643936265649158791053706502920862463207430803786971417972802700467087345303701002687373093608743268901847971277458492541446733189680723425766093500125400325816081070891208739203081963426429595819573905430097104026738979507362957705324941366213379664353669654138747601082654593508838175798276647610972506586605560815445693663563912440076691027564837437733129708435497846040628842977724047942963425437381280399780274371659690662694621251868566943162818243280005713295558184660380316018660435473153985322533737801766965005546418285772779962581673579984526072362863044768848769206772944495822120452335763333810585320290549285309860721975973474285300583673981583547689714059368105500660610462866934751263663009624661127463492678539700714263257615628803759254136974541469501417353066201541101923302105930368822746635326369505156148063908569442575067536986825759287805894222526536641608251913714966168220479563355589877977114947460564453503833605065902733464927940774531340733840707522454866006956224809900614196928061244291358733628041418291557142580052096552940026687718325894480615514932104078399506331783501546189835831835314377883775252455615387297520752866605915899824487900530077981529833930644335854869402448713395898599958924306818271759268016919267085665980904280038142331971909727686632396603127814050169513923883244650772264730964006292107300770974554007142553957352162195487414952528220177883512610756931600426313246724505944812958592703920288890229486624513112201819415489340011960011677435656867017244929308556955737717352756671306471025367857210763273318597627083947139904864690014133218477578169619398889653477792106308035772395619185891664267141692454134960890776966965376473020636042088052234458581954176657451089564159190573342620809619137904759552078123704396334493096171457184659213428349990968172801385031517840914277771195977531225750201071225969588273610343237747374495862314084427361026004923403842997129007740137163051189634435164784747801409783987805652779008410617752282899481253581803712532744814048621847561891623504695367587768806640347129280896109893782157131512552757085462227378006573350396108393192662264031693142092037180280733832228713139133972012397107235064260333882624929996854025393485741923686297246108496613156120113694255113247588281735499187003766485178404495712890200499777093092905145439833636847587963438600906201265341147057668773684391969796524834857594277639654358907641232361392375386281373994042550824858247966263940082010161357075398153227207070081428508830556878015653442065126709755284157275544524391158429184622331713078897632478482923475348656895309914128851586813180504556638898032578851243063600056932831869379435338664315635041470447819690254537799411415094849220122019734203930057001346052257633521662596988753068937504822417457868182287431493985471900258854207214594043071404752032019750231627747101098613730330894482274140246389740154199878931718204975010666281846200800499394836967231731333867527288273640692494652919234587376173393039181240833067699060622895508707635031523602498484750796805135470355273396472425890807337042849539577005836109005094668840645362190065247447653823677199971175357597727473828199737898040339848825996789776172741483704969707078482031351000880179138568035464311784555261642650333642892526683005810288387408973878841656137865955975329860826860089941975649939966183637282122568907803666525868500492725650874596012399906146423791789145399265222415334208692220273779270783649517722167360993244294650708276190289968488149073689485900925306515779159870781950258475127366488811507327594635334905739799620477662353390395455219146562774031008243374134723207124050149079402846240028730395409306116623496862251579511982036884145784793523143469711151129059569935877041354530805802191140157609655356305176368169922078833156888252375468802821304433349511656441247617757461726557909583415637933992424513648416479462055391660911986361003702984173672667428462847592009251966827921837096327861265250638809445417917721799065753262923110975364298459906508526084750249860671990652709179132565046503918218383219812938271328369860462670594511083821078508201425425590444760724520224344385758160244660926381562726310412240303583405963320499743063653146036347902179800674794755577578015940313632744044445985736835502566552120116712819489453616286519879303214986998796984324276210890676166643561868247278263491751083536112055971549956320756373791570755413485475857171746532305697247220536542527749797199667716983654789852944850121171131040373756048192605345589245349354093957990828311353070563656274400507559003412269219361997176974543824085975330765446370276848227677452075178415295957911541210504876883846264829972075510341212923710652958376585828117432715511895871744261439193801157609764792902155547972185521032546410032417651538514393900400197112869255643338896517812093813443184325551223948995831689106445745638223600253324287810688735795153216664151414602545563513666374868015164025420482977334164295358568623560131831897425224338904619803072899876356069423922894859688359957020003186215075686327157620312517419658727804342972536512436034033322440554836955787496435980425621231769688964336219320069795053644499304577182837072051619530541407511974672763700217410145795054416517373553532283685761806735503239656587412728625854138424326074937758505793309524408827486221956161392502326169403067883936538792840521874751048814351727394347020935216011248983748480502203613740948630395772283821855890802194628317477144064737739972842580824968363490344860495516170539260220804688387692422610109650312701181925276232144734170942698769641501017533521341662426273984209034718596248688374333499145872591438688836641993150646596247335428295491948880071852621382297546864327315093582896018863680031936595203147905649291581921449637380691011562578409520636464861200872431246559793054789684193019155485160433542568843299639608554944359945958675443359008355810686729823211778959578834728788932638313549064658423499946371977818686244137420048868357567017651870535454345113778390817684228243770877773724186745906814901032202581146976592247804850576572147107027625448294932494535895692502553409763322067627296564963520484050222830869349636260859546468392738327224915737907660391269585969740317491160728195659817951973954201405197380432798240383350446032094919328207763267271717626151700984356354233502511066972966831671344041307705726742012060787342193943440403014776864483017231959571468498523326403260840048010837226542388447442204139630140137872558050695798717638628825149264862316448732052486603019576492722811146093764245185596037168494435753866326956769911456890143466417546982747147569468368025676733106118121682182462318445873887420841327726245673140281583765189921704691296907463681236967130947725618807482189373670189665422761931250161595191263710600722998199605705360846245487488865691331250007569765476926477453601444433223942896657144024992083934919658944385358297412537589972631050916462826039966391865820267920931052930351233698509378004291661251328860592420487482226795052534545483768094356639738814125146943340099363099315823616716280418800426291868382022821758325158872743995575183714836563289148844224007443492578288537851977665805837198474137843419806413369706021313621756033473723328722148208373945790766563246934637246318455203212086126355250028010335203153677283622369392710899308975379624260109151321460014450785985682710490394626085641357280376876290824205017527920495557343499693598215267828114448809643018566078327879315601974633848702660631459428310934691685213498907541790927311202026540680628314390001753249850131410052565117570869823378597295028419642893608210233973310577685249424523692351254514441482298023474993449370161989412034544833045962655537231001860166535063430889734084126768856407465621458006040852193449662781772652199468624042114021675399457353621644048691440964257682123903977801360575222485351907029201478343540851135992291917237079125644415247659981863647345813479691167919665361640325430097127200199835130212813178504053768022508286801011921884580336757619439267721355350201730096039001652045742724134096938907760360562388580969484735032181816690283470594227495832425255358078764281256507018388338799842389792423147114109866271677386548721234014300877421989635013467208566631484086551879046254659623239057431554636846142610365321000883102570194679607232510022009025084285126557672710315475892523162073959659985534374506575545546869700431119922524884973178025004569382809745004153804816379118702784117826465291574756837395690237283868145129248030418862326166971916247198442697502955129640404461703414962074640348490173980567703212357690658210769158479338065065524733784402572997666288516924341052824695868424574872646885148294845126885762139037821625903469031736430398684754694406355448590089836214686299098615036535041034735452334259422035257005669032246337390976824176691083931527432291726245797357404124504585159854442593126302043894553998080765050501885803453122552215768578907931519583516329090036749728068074513541600174624487048245174282485608334598869414613083963444792340768038428465796150707541953235996932058848150258666882125003171214213640253950807903850402071372305847573783941804390699068494451892204829161108543993704924014213829547337789005218576688845371969801006089268023541402494445334780298553755795267372598459977518180939000623201004504380185896291096483075519631668105943602157916948035271272159348310839539853118803016206435982717804835660075956243490382481603624076825748424901352715778049598591499710877348007962514588069741282833707519545926599200643550673028560363187568230967688207263531457544305265433673422646102800642550374228838941680130116403306995276806476261499234523993640159570009610712425108213931838346824019991072751304027634466077930962667186877676925087398444879836680175344008082657233547389972768574478967680581844391748987748915185812734046516418962080851522054845650444947690281684073314807457142749157073731503562198964048288235919973238703226895529632593000781919026637661773782513276928495968727925670821273353163313955869874397672620463812089153275164059703671899493178699149942128757429365265788537049997030615969184509990340112043217031405922050493678660416869531118257616406832698090907038000856812337209092079381302960799019219739339348632587816465698366095660638632180507360161939517504546021660810302233634599030969010440936857409363377680854180143980530071005068035049254103080616365323918893840206632322455541493004537438249222709382149239392288766008330630912270919620905664412818025272510233461732977159106463919475310971670384778659613032997449494657912367322364648218732988814106107778202062338605222737748667942824433970756181588597604792589437618566253300582298502395686433544586720154205736458148281465438211039593797123491895759847685557324225634751699141324214058556221070938555607805868134187473300593259169082984133881703613652718950546996474349722526545786315245237243704013492101689505318253624585405118268494553073331790532480729842024715658411816411863310576803784851932066238216135857078284953879274707522017003210940185543796210867333085783187047695942534816092828974962230013117454524856542639713069288352688213457117612401400602057254806097301222418777257920195847764980527755410099555291045769814946207485704567955589631207081275976382648350762177464664766630658149656934753495993900499559658007271653549693771115568771874744363863716967751936011880071473967554494080794767395839428938493031148774551496844282419390846646897345381457318386156508394787468502621237270449512700607880801916991669245506431341196233753873122811282194283911377366616642146547651420967251142073835946106367374149231321355431661723395029424022321114764652211479858909781428369063955260045405527343580722282691771151704941275251517732110475478385975312372368785015627457349460438613917978002328525839902907426340016991803460735852577224215507336611202503513055801039258514626664171698341184258549133578693452778429374016284019958527305569378576240137713496303331480873556050211631928058936750336260650761121111561104263322360317401390944154316435568494895004298752784501527374224253486349373502750054941291000010698756232957928619019852410202368940175369504976832822810575007724724271636578997185089951247598081779383765149393050199291283865069767459281980311444147580364000275209413683746691086198129257072166565607269485951778754958043537019564155174026284967963639171742410580074315503047446936686420988397232709415116543469312235780550725093212567499143570469905137115384722813918930492812817762785206214516469969407654013981050924962173292173485916945153258386458899388106782175577689572712898485081566418118085020157648301181305525536543317475009693441526104523208650927488873637563133795100286116777937784551064370922864179530700431003658886840331535442733632500068684095577434830206482468234743204513671646320771521080058902822018734321603945250595442914185449729438470127475796945172758424747081689049066732211444245652751697324643203518918851114923140339987499089893246657466822576838836202795166250329977177321886637851708433108896813630722758234235014052645354972561474567766739909787208091355152334640221152726660368123051852791901506291204096378158940306672358594306474369688275645425397043694355180809042234961853029002590255273941887749654549154323677099150254112043102764138404526650599057222538270242557298104111243616540820216954781426760092283040500650156385595432622033906732780133516002685692605841530924069270473873956837205225596491892683168800248394268373850007382640952496593466280917823789274467599271028784064243373902295425589907829157203027442061705791932600560614556650789350827325017080066755451914932873346380867958041198980907537107460156248927735052072233888719826864781927076536867608324716061537302689810185020671205363825197793297463756705588914146883186871927858379075088258098628664832917747840132536730770766390783309851080764153129656742702595914804430569787487923155991147285475474252321175976057195678859076226786139390802732381952906209876195111368080661600055211867434656161874163738664007034365201027542620508459353342569863953983788383086738254751050058309662208716662605358810916199324430750366792166440238254502063324873001487099731712167254681748338697755934261292852769524578551137935460640396611813884514810980877431659742183626145765462122123537581540438830355298125400118124713186608801648835836983356076297102723733923769994625750659755183975443796072976193211696618180933308074885110789372896150739055328470919229094033364777247679951829844517961547594704759381313375888791175820754026543680383776064497903195323363575632474462757485762833922142199298634537047804134523295492281412511752331461117687946061498676102789941731848798366551208019871239351992012180195584703609456488304966913275592800509163977022948907097871464452699429284525110435692111399437473927651590429954772371472614973993585082510256822315069733858642652838286185045637077622554786759648751208319419549063314623315451456314007741536749116831053935327414194460998076014368365397377514390670859815498221220413900624918397983923557452726164861438524871035845315276001754851917323652640317064324763444618872498173721977360947245754628110566544298568558079493950833683162891124186861938912466060020897652757919992052914176362758907136089032038314101188940463982957998625620575308394966989597540757001140176056579711857059494556939804560516581335714273972002602605986900760954464412591341129794036885050332496075991696395304697048086469679508047477546306077263374144381288687749726021286303722070421009326058999879856783022293897927664202791751528352379921259901562226871421610597039207054736216010123644565104129095749352305739869631502278732417517489339100366172654799690694168671659050494023940847711867851947765521396985589074167491837517098320230833185154521762401152342154731817216693213893068383133264465224094590254862907463806777195390515331730917280434421829198185953466898616001698796144453083677911293891798061574290229659608830647648316472130664534994008291878656420058415888022662693677970428190529016038143942534185672695507105458109085422346709049401547219243520948558191019667284741824336604997979981202591710855970574213987968470236867376061129351343140293347209794023979722011633360125940201933173327676542263339065899523791612319553346288538509286825857518774191040163539168694904830048615556291562869826214145597963427288861339494137047549078387290663557863250616749609704935522995603119585294065654169232893302011097243425739552130550585132871430888125561967221293301939572195675072536357229724677225836449711974642470027678662278906968978324552401970326439398923744214237002853817025225057844337751895139208641002539291987918131292598757480772901361738854672798624465272146866537557046597777475080725899298574232022393453949244092592185082837896257752290123351265257622192501044650160244564843153877436701293214550537570845125368063347743454522890620654140370894685528425874839488758512223808013896948706213673591064593256494446520166500612789944055561191710571171144281612402396857175697283328072555375493663899360377323362054113142159821943773546607580446367349657363229995810851120816714723379298320119482590052467936080832934645953579812156379973829729203504495556232041756779643637763661127446832438814692497482560213507720807104091206920694428483826013984372388699056751349827019188643106166480701794705561558815399974724069366717671878243500681145660294040450319316742125671469458951800508688606539029183772461766420498006486489481653195249108509093947763705235793115474211480986170585026897915835221711027039671083206052599294718943049370335181520448291417925567497829402336515049095782777387876426002990931063896994820426350761466855591060187658999715648324944997391831298238897327995315931814729017194373121443796221834388530563201709640561170583096435716697171418273703782336677960450498611017740432436060196724442058326240811426883405487367392244660462579869084542355627510005007883569283661982075697372058803135090527434183342351820576674156353301560838592359913965215183088402563756358374068155402103149012475012085095333431201154787331967981655242183190616483439827062045521827195412005368087646452240003636030223879601643324077556755741826154388505916754356336199544718572709267593584028498922237130131868225093911218919709646756631362820565341348903069268333452684593848147160599990221318284109063539152642668419224843103838907941066239188110854228532377698595149273892166847997917134641587947638322341488213456208834102683364635458427730832189365029576859392901148445570683502349853702051337925621204535606510813127504854751963434223505510781324451864394686723936957918479919427956801061719645533218334686719430254465157293364518384781230539719166377515066575513512950901314428622933628784439480242429162009672341013285617417689854538056878046577004696317920614812631208367831615788188890472812322282277418043189677982110372228373390365614258781885426273805750358936695606124899310449530932262081751175849802613918951511579373170109059474010978199780148490507675106253549329792067500814875962638781647551325624675045201269032528909051114550037942058929302955603408558976090014614093007722913905736365347044540509361430858359403477286017860431655570908163569793292989489637166323797459200203544484137813132640578262658225638193665857645576983918189285190078200461534349551778822160815403297419065151946046498544673721647942592303086208168688410900830875061522189894006832688090302953958751277333162414277917013332310465518434831442462384801491562058057014474343718937892080108631349865285229707108631917782185919851463274118309858012618943499899493020418568077508879748783192264074651426344626509632000171105000441555171254353655622447012683201850806290807336887683381763928064686460158074414707690263269672450330894044265317396954322737080858112481046902200891346550824590351257118682613252049059751607741098717676127336684090877414795499873063136921765894904322810686584075838668970887233022901328273627866818003331768767808436585612250874988316188014406867594865265499370880180425499369679466752061613614784492399383856880933998488811320932592480991251574896239801047561229564328852049206474280340330986961084527521961172968263797313725631621305057384594469544690987629666256313646429638944311505593170901707294057883829796976108895389491032594744571061859810451920777684078675999403045059396494887146069969139365844167617643534825165058211427036804722410864533342107274098301565434125405353798750442775674383692943733205145952845466627911808838003158117656336640888217566009072971002173410910406243576566359098624147173180911044891662047682471689380946372611810808042864129743034242726954896466459036671997894238518666238294521482519693201925586128377242303918186143242217875312395080757323061938225435023324127984030761429676550022716446919765391230809109427144435462838240716522654973351830660215879395197316769345491358595817284916884623059897576167806812414002425339418534999118593800166481001210824609389034881056155636331234133071194119535688049868667244783123239001778099990220932744012570015774300934527640826101947928996630663292262854114032678443468992634915972748825725882061451416500302377721435361572083080204375524759160383162730438671830882138022459860376427432560700878876662965278120047496920241930592288467790421318235779248978139309793549846165467085674119809053132707746023530475349049903361612921969643225098511434272709558140964863743413753731472259413607066150586796874947066418187592557944648792412459653251307180151607157264703045848108903378816656663965600281877725891628394593119681765690354682589225959588537699210605052213062550044588081131975288835967265446192695070908874281921896836573229509999397452971051331759099621871975822310367573214263581098656651163413947312758693745081286681550778082537480678087236237533000112780117901583150048399166133651420977955612801741310343058589948173707674033837493683440099389692745237310740139198868344677349991194214443529216585177949875698283935849742907091838478531293538418119994685812279335381177553565425408714371399720664444626275992254376160817737689978813436170504642261268196151322479904981064224195920507182637246780569509899803727861971460768496042058964161026978223519473570725226035658000476651649524085943281737824074871683025734026558310861109763045902765878648150085078034510554390440861948951274017271908238418664480496146398076736204298111420355636588035271673118510231061575756881930267219147382088223326879729676564717461378067517623664250915283632611675324038445678608896933640586716430989295725564797299960449366241381410660654503519038622981185457982943160385428081348409442668273336182088964268144250771352576622860398202671894828828251924400417305132577914296827077635468460679736479177561919245607662021960665702351925873172307162268553171331022111847483589803593558067604063112117706722438237019580938181311915346958603719200220679014441207134373627202476405720397718068969646316643141983694385488841677647430872796443097931345040874915176471866639724159277803645998400069000621794074796616838074412304513265759149287757057509284372943632584804847324382494374499734682015971786481716659857720669437162406327691822856377272871147731864633517646400170373107255141827278181190262571625543136216840247746246377819113966339088307368069313382954405948070071178241881583677037432904940478943608733510586147552175563589836049561977410635924804547679216058993868714247455997085964489537029273987150719084246985206205752714561580747224383070666489018711281591012135282381961972318602441058189005245874961294409233765516419972966910487146797429250014389078135462246066711975656693744128671590287586116947426714895066973763662645991761047784812400915109568378419442169815163512029931090024318974792507152273405277962531802716521350841159441976669608208313627644365048421601700841278473368983368987543682358361512295192214500425464873638043604072374889231085138396660414425812678580762227714124978309609697688568471078536397166113712100737480405853455062153446350802599371105216757838020378108389816730213482794555258248734617123122627347848017337133270978924851404250660465934722656211230632283970641109340148401684798501495264770323560370162996330815159786790046650565117069457550947090963167272381149211628341761490529140232852621261079081222554393984162524499404628048551818291122276491503425835563049310171483632487262362273075697833159372012606638276165598701693361703785572442779192459880311476081692779350139985029468626541844058458578575271717691426082705126786924857823822206960933102184338764583961813734678748674368225176559856985849257314342044604644720498665470973886968075500568402893468980686275112782336336469667206286262900285531649048174681518284708137699296272996515752980486910703094734313100371765103561841278880155584046982054890082987694971715698654922735879534226101442254061472037843655659386659625597615213571830007673504963797397523597673386410708940203168524637601584088457241509837734813311049963667909783517214788213224261672805168123780873549006515600639199914194527095899448824436182104167432059101559268918783252123571534403844861964723244727291130219469973993445925311882774487359809515417423064101414412939317004934613656301303452132388599302968077618114255520807824545385658764726740919789109671270421847403808561067758566164318466865364398928595931158484346625077127742611067409437025106814658450613127208309921518400220201055382467827624544263947694532140079096790613564866620629921619030357551529060141210474448102780264652325840692429103903430383288794557929260255842150900676144767568428182294164805573235296203872550569996987649057485595741538689056910747753366954417537332549529118567305060315979138305946329474870353138806205502662260911966077076884128871349364101269946078170746418072211575722265932612371931148991403165035715185194152481612775671070733903822900675117806837109605245046056503298945085564529224033419207923285710855920357444231155058015688773697289725915583388530920594565278803728290086956318107470676122953424990926720900514379863054916401911337470463190823163984746259969815098505795992149134187718598895972930932226213138833916664044971852112784825353126445637611544476534607605948766836215392948674521688177064928901926554613160647793371490249525889571217106908887259610389258800303057439278187421180624030730966370019327834051133422292099124236983215262619685311354219852390734353217340644186173878371932821678837404606244691201575577867378946740334254418910633278728947715930139121450314009624929629699132831939768365654959603263587623386458562106224036631449183575953590301793254863927378222565681797104605018000892787784418586265283959962525672989747515065054410257934136423328360852872530568949595942931339350439569287890282517164219756105045017695518063489698605412955697394573378253093136892708509262886583018472620409066403369554135850383834850420790174710625809433939663387879448059726580276199043587209343112789521943817182858191761730797458321853875995253912963394680517078852514206172336899166853600366342344922518894727202927537009320567600779425250822167132143531591975887805535903134705683409071481599419476587051249588362116561022143773677507382874391866611761723575506747910456857362543641415971180270382176108541184520374324874984943285552690964568998394062967858367698121751747327442014173264481163675865478420246268605253929134066913008264939031064862983925596757507418675477176461253060939006980551976840905320568244968961155429782772208533114964136036721898303646218424308415435418834888944747976745746304643189764061354291339073521873531100691450319277702779093820708441097477417641433345452396486551989713484695752028881631694661301229733261931844528075425646909829953479065187555395378524243291500285469244769904155099517432611838593489031291419820012730175720459143602035455332016932083735103655348835137474699932881844801306646204039650850402617043327002918915326546162715594238128229333186413105779393779743391600632314576008776846651410887460255446727257817990442390369054367816977441529258018701515272357935779870341405511232178682900506520555858884253227625152611818092364933518023817661160535631256240538421450036769752482861339947037677901254081152992049211514698475974557120708818203290429331634615252475676250703342139651350112102205858474494425874481860904786586231935426046051490036224627576945985396518809871409114409687387574839648365712851289756354313120225184604505067613743180650347765370359566828873160065469050217183973180378993973513457904934488725788560366881983616915908779670687217851680716028004271599112192508543536884767982116116744301155518045680098387953573925593524738275515594595287508369502564842813786179096297366911226301333843745121300063805464540372852019879185462701806913919963818131478064061640860535263615749408203759245639948936618423918095436745657970326917743624934645916950291579941067808531203092221308910992726029023294183100418208450160441482712726649778771603251310686464431475112859789604987813411869990223903193246319749676018610770842192345248356959174695490458964976480273379011295704172725854434915871210170563306974550786061406180449016247082616707919600461423316247223445205779906875771264079425604218489482604390336087797778316440385027981217335729864074301962317609476570231406615873610955242559205688869783692842124492774519514836700476534591722428451969237856796950750472114197261544751680060493428673336963698584704074672635618871863464050277769390663437324156817759395792404840525134219924245068610650341607579890331945743784790330373506025672114091452761948195096761048985846140167399191447736134980972247927541534931818099403379173649500736615431681153211135688223368016919283146851939730123098810483300239169259971915291518271964041691360759048532132941688943563915555353613949534078722867155264360063382570102910031827817321125279454531834456651345618910001130506390535503317713741700549780935220158502544852327588783693692507575335461657611411252640172754881283435973128225422126210410368390433514015287435776860090608532435662083422053612874047355639044517980503409142366339330760074548530998313049338034983077150647245379784415381318648021618897706995576802990891172553464972849627790290837341986456771238792618714066659078797541822114232265088452889092781498432570620861264927084227844099135376647409601262069997491723844363697696944019764235417398263595656803955532058401519197338148806586869215675779344739036691020237362829606347796068794546195217285991858145923964409815302860074608277901319314438994929556914262760333832210721489588734390809113307307369864486359939951243518876112480677372570886845833629184889204913110483979252046184021599545783197578813542090234900462982746424942274606649563377092462115873035340368354978781871316781334920797087545874240929115590482324836603068746478769811698282281247403932568678015709642546640924418510071705704011886293671764587204111441418620870915159053569450972773176956277544538501654535581994096297537829108266535065375806783596130482673789433842067571860195157416922100111084253933616362048960961819920721739852625638023951034832130900057932265089220238795481337597727305373162923254524865332072016447765814494674793901103023325820253547325544611572061615846875936637678166279882723245204621588446507769511437965362165787130438176596601326993031696226661392277879812829971291977392477822418495166574961873944304256080094521660631717256653665534446146638711486945169066809861964744771957513251017844848773910522411954321743122348060132479202885529708384886416278171972190296792908870537498182934845588265649947865976296643183932941648040383477423813326260945936442677102423062101567835561121077336735661503611727528162595038997353295419802040971363498559289928549348185855359930109941988022221327945001506658817055630749071392538133331540637206453473190608320523077895316542950920006396553327378657176124723516671302854938553683652219495707837796818776200081224761672311312979397223107420055973304256639758177197848304196080171702689687043297656697272784045539294833174689626122942785532843831394962051232704998466452856475577741017693718237844011420077429619914653807678601089767809198423574012685059506170850756316984261184970524574283375101861030103224073618681653718114715436072328265543004001399053185012777938347414729952385845801891163209208095153506188081814416865428260037588396510603125702254901096746791778473337237580504724716160237532593073884056330345322496542197862580436681118701881235485061498069323911933925768975493062088491728475856948868883091327008300605972551194496216601051691375073681891589365560268952531351419676758836182825412223377402739727274935466968507756666905582398832803044378694307674483991689506154601013709408948039086162255026231501233846885203110618566292169418444630092414573708689038083985037192911723922012369403314287595476642340665771995840293625318697806068633450683772720175224434633071600259613141738068382298263441183782298470734602596623164971416501660850737380111096819786055587989709356176840396220570455867577932694507777608732693439858281341529204443109126650746004822972576553492282276788338856306051449912393614821639132532236086856148568616885076482596796539094861414762036603451651855317243694417237180221193936572580802870699654378565859584467581447341733520512704954828909991173314652712350911867095392083113437847112461296137819333052919111420541957673239458603452311707525188285783227119313298415773922852487700338257472463136201096875377797055226074985578663692330744963206851342839742167877569414996633040949941806379056870040209981328124761396395515970392910044749065493768332755227387253460157562255298448961706078171248756223059161217505782126756921760479255888498271259895792317787951099449487963652321211772862464688534043314249384416578586988132543541178301146047674351920549548316035693004148958493682640263501328382969424650102971384158886122044825142588741655495310889239006462431403140319658281010164714383155613282984626812095994646827060976420699650990802982414792780831432010710330830327483758152723946896832901190797772006396079066263129276969489176778355691424231621626650531160471465709652051377323046048008114626031656019294687672124551033946555603304480016216893338485810513648544639239114377760301855756920661340860936260838037990219657213371342255711543853353334447130086470789180327427512832167211310440795361918003971369126735272057440358927949313968971818510043128583077063080115161315169217052719825461164748350529353063692628200069992981217207444889202831889220501717332639473339655387814411879974909025774621206219747822971154935983923070604972300385744117435104076544339416259611984999926143565051482822278698740158328088999687253341715917447902175027570671385176204626077557912061367879102132435646678474984958086080214914446518661747915601948268446241634753506702660969769523511889127409672806881740542022558102117220879042280694215728598278100170479351818842026026701497454702360147219049309596785731143397784446418298982221611997975245972976100797727415644868495976755820003662472455200717813244743250163495043750922302774639547462709287468107065410644558158801495663349140082001094591152228760338253949114985810574487252437220768348010912917634515945610043829361405419001387178308727943723460369007977035441204392710291432216617301780937502827690355665725167450502152835385437021344264446055659500196383445626661654893600185981793731817765528402632251499492906355496831439469260564580764339974579194939367017837078145029772780129526375363530339554393487988933671930559395562150518313581177095740491015405353516008875244008558526573647579512672175353776737992585259895694951622916549463734480907185050568749544712988100354758383568331349154333252005355124829462858302210702299313751005092806988035865353349477264565604868209633966070026418085893704477773649904843829013746146430396507219685417442719984121841465009694394633133445683314176170043321579896241281976503946271934652546949445930619263191007806806305919434098242910686214770675163716970850417056906635471058058581043139805728347119552576765550342533204135623401933355444317560020213630820243022450019128593560781691795590982929281623705809905843401909263684197929594497985727561551020141103716644472068067990507674557313821577986992295298439366333655891212478382861805382195156796626363590285960266830818909552864693608559908171332444321002751398581215852722137712723255072697929014978928635443565057311196288139873683696748399877813858121962130303713738258693528565649447401476420692718387952039926962019010240366367943479732733643745757784186701413493973594824507584791151583756953997011913974652975293303340126370514431815844159899632591217208782210450663189012116552714496236348698651812527916928122289212344873713135151229494238664988839159178784346874509867464482594700577755048048352251093202132067396537524546807044548617849452042210767095466656251816875282300279681254162770187241465589498655066429625793955939447160639781611400381401288586464208989773313156134835814778615944825890567455062215817024415344989200083803426618572206700517172139575092074239722633359979539362568858722209800461360231099669679883505826229697433604380892658721170156501659184134492810319861976820696693088907588135206484569252453936412345759668454517674753834041447049147020076446928432897660057331948222993697493493092973693841034247920486229138905274425905231111048277743195135275282597673530575420574251655783988776186773706374121347411803128176518948366884486742810003256896119003015533321078626214014735005481849434296971416463406471258210817667911208506361282805096025424610456933383669547992527280683452787141402306546170554546822983780719454679181343380251507675594972693409253935433918250754727747919213023752638394295882077643888451141820433264016778663583350803266194006217359764517717225015139421651737962002824514280532447284696325562245051975494510042864268445496745707305918481648379273634131134970018975081240372647575095345926481423971188278450798203227504863966343614157489373409935668146219809555995215332186601586821540081163027645139501286244362569625350314995898403818470792132633943060397892099557098953364724539854776888889793389543903414140204363840967535725651773484890564395858568215810216439458893810484972115071851404166407944407040201262628305237826528318299236937302615918694298428539884750562867334729855136029535895930652000552793066556352965966723177303908681182462290588214532838207097383006019247145457256641363360430851137168813961406182342254140302757966738470091777197374168142229959462404862867470077646822404691324272150925567879912709677398308570169383453864391051268284953013046144872716885205636169739159271261073741554053970279347117746567699545740544052605961703792293589774992740252700310747851632757102023682899196828868276297330935210634657158876042758665933287485568399179250611759803648251336812246316828690365892587890434751500337061712417147149452809548837936844889335922093398893513573133389102543705503880840480852610899795660524964552096211458550919760863129972310725300916158766880628271160063866403338073902010468308680201692043730659598938020120137060669094245513881208515687517638716932413953581735451962486569200909267856049828982846910617200161484548492392241632571252766456057191420276608552286110786269933719711453651821491622128886783260673416030675395741546670601098980687495681202052505995637750102915534423834864598070085264513269808803435016712349429329847771734717624227713335510942304554657549124154052960673957963920737253753491462278473559164448607220451141769092642203768141902401381729426148650064044446384347332571462432736480109019657374975410142228421678305839722558817038094452437874725808510660813989554740888290946608569781764481764224875037066917967095956392798801495763077276996080923063539745772647969676998081088479282175422441343363264847088919880590561665199461979842062049132455016257663219987182520650273909504757329302630568902746758497536122850548297618118361937940378747945758279035892624666870904608748740689608413814615522808606148816681275190949328000205423856147102781675719505630332849701877951442062833083757560778313406043354859620475212560138340147648280844350582656637636937172422210323877792625914036272648111788758271548740307922571270619578366273881719665108717795794127277415815329754649397272591052798413294168578674325589206230805953993996253948737345983174755103967734426180206632794341085315028508827208748759093556763800512297571780250962698614254474444160876707483841660792283780095399537399012537353257840169732063024670140531302314194381853289944290327570055095173654824610045036268324281318252557847554010912480509623821076650636992539424371589810756379167105266833366440993496448917330175627021056109235838690375367615309626668345450137285790579112860400502256627952932445135281815447341337586199402762365560210347538962135537822319473625331970730182527525993426314060160527326617323890937670242833360233383615839373273655505815348413653156377586829858545365896800366492493280572974776143708031042624662294050260202809577793552749581043625122384040364865563807101018219311552998489020820804401915047359517359209393236938823406779798225539219735859846623327030830533991040159290222203043178007473489892732991547593899097444448093910317376254373257531186179204924659949473616990276034307774448073140102976169124550433936555078992695547061581345279692847815412724814435492540848250301702075187778324016641569932055191546320546586749361532799970397087231461114125871477115400270423387074635304213651120596213924958829897383320024198555259314474752495823690791272456459459370933159945195973664103309418035350858455577984259049556055081831610503643533210756732254311640850382893475056840164870710276895350283368208536878673947150340792699808881522390885269949330222404144690928184185444451484181673295732543083813751872132533909471544382561546918076179105500630047597183394762815915617726465950508635929362096235280221511261645108877646481929383102760066170286581671029996493952624430624309887153447804048367107332905895909754738919551868892691529320305293191799586474581170754031488002370168817486016938727791118352461883591765456504363254076438131024421695955756522812439282388258081855333941923890253932986519540955541501855014043918147753847211087682179834341483621654245022682706627450298153134009601375263222839356141541229200787774312626843902033193596667027080133172635515836819499667649676215112894214236520432742073393163367121246774574914489550874932468661730751983339064097375821520661523268895887343261353724316070638601042791782677751112812961462857790208430376334451799916168512986446020148965792316570785736198028129851304754653337663267075935781849849246311862737301069660431973184927727050628137292835334147239417496206607255833940177177192596343936578530208793610217190853798162245201820644357599459681521546320848398228358074806150884176426589747433208048446569408020494139186877292128116230316760396891303297199662849896358939379298344699394707766116560154166423134763652420501225798441877441263303902251502480338247979109065328658003625980381978525599540754369479270444943171566663654637020237878447578040572613622829760130326200955961053655366842526625662433029417734437864699298060181438116365753748736137492055736362145443457963258281039295249893927375384692741477635231051946034842165099366430724623911597504891145354145923862134254428174834317805079844024046047031645024614672483123486500190652599828788346086605481811788806474350662873514101990671373005589455794750174046882438486467166864152222062399709944666884927521141718716903855284688226532649522180064066007548944890580842850378772243043398189283704740609834475783394146064924104780703918061830184606911273467479518312041203224687047287671897943309204554167174291034373445978533331800180541808267255051718782625575192928583957165940644551841375278709384334289264614574464422686893668638271145216347743627756436988331921413731431563622644213136248650546947526955379281949970198160602769910632591579738634615433040516088179552615921354040556409222884257511326181242749493599867995372317326677843096395717589965615461561192096199397877447280519666525003349871623220531917653782780671684307654260162661784377592364765687222312550337531836174221413007886389350741611219788907113431960627861009293184109842147564310372468128943799252279020282503103708341313942362189792633056842549567757542091241700673237326519857540149353828296460648296529796769642530258860691688886544208391857305080733727277456709170576973651391042447021954592303212034563742713163115714305451679233637968844152941060775640129364028553122258486754103043456455304059657455950449497411139403292301198721495385281825015569743517068268177772394485772308675405230862331800894700943688262398841050808548999435495926982099212469503561783639882647964381878074256501178667856109017598661771281128826734299253069771190584953484429880027819091845135483559138956917726303092974288061833125514259853850930025150914967227435093929826749368002365516570306418213441499628152723603549167838446610987248050745581249033451893020904886475521405568393752772957228596550680336301686075509441743306725337510685832982837022276867223163284390540405967777794398052137559278827049457648796840128298299148146580966981452982886279412763877023649121737344606752119680068006431670352324914499120528220942312841702276394816733074790599546858268419107909189309493462891406327608561045699833623484943058040792226693155882037758898627618735126012747491069616141519631050353312847991772604295226687467876029687581781123773052243206962513049937337562910662610080559963939868591161520967729506261946905611093376127594755553959974382731521367101164675810644666954382730920833833461404998543632426945151831862353380160234958882244721881559652091431799014414047936965595845678704758536615413923991709696238075552264316343561495233480438301280454193887391693532847110872529691454739877103589135956993177723880381048586662098191998221739482945278682483725833846548573224019533312676379424544458119665778032711888212425606063518560951919461190367718411554036824236372685749160637353900068435672127233924975468556204905182156047337780227229783079918919750800224891374937364891324558614070633340501461292623413799265180027433112570464949824992621424608997296813603886288042851490707995319070867982519681129520001865633679635615360200074664745215012731601970464421508222690474004139592583364269484500312492895971673921783489619646406228025988522759539978707115101734995527565015708610061328808437344467202188463403287883109386951986193990384410987672118331897908203347533716847133668638368962260731094988627482598238737644887395482606413385195612516889019526156256703822868412755077410688247078342884517340761709316566354955822055791705022380335177773273148486335625313163807683762175572502826174038109621546875751681691307243330456556318208387402254240634709925301569920626650646717807303221890422391636088301648328519080842524319544679673120706834644826284612021253874055608757542570966622586600154877714490377879998766383701890125386119519808439096711488245530492891294208661067262033040981192661705080302800455318554748006871207445987341357163554015945718055551560717204073270771045537480967773035311325473004711160831345698931020445487593081038354299264606811509339288160008315506310705875272993356675724375008133253464853834587604740587096089050470733077417128845709271446185705105632004329779117418892495329563111219548135145370050177422737091662950186018037555781427402791862665765564124283730294289920222421790224140167660190998649251456903946886050808474467512500596549451661642881658881556407754677808258845842237973900385130926652028507067390611410430895016885489584075754166575947721716126759648682037940328129859506883034849172153430406053824434833637842756081323412128527008184387058652789606293781096052052647000456260767312384957040198321835607346494125574897516279817233104194995498177100391805605781901512226339633944796445446092676151828028704556290001991645077189556713063205846896958817716512501578418591512437866604127575590608176711388419206806842945026442731561498376023453720621158156239736557563889012957916754148238534303600548619915004782987369931799848681134671439800723031304001869357662940626716375727743612361554414278292256727077196007765080414873149130029228807781312240369385245536000814351217296271287800250213492597636427836220682038930585329410519074351792138067610553284286590297561426958109847225708499562154346765018048858520769708479050103222665910252782413964601801970502267357687558548220711465713073407184722703067401420373508760459335283489623751358631228165134352842922510946943261585049956650825125241330279820825712562669550533894313340520802169799319086068801604406994844133746570449484285276378976020503909554909411556807192041212599301884530968695015481550165141425990298401644831752729884187220263942193201253455878344293764942064132585546554239200054643351746974076428049157221747812462404342887222668864821654003810923286732819851265694085645789786123927133746339715526689102143244012146802588688734049669098430962995291168150031752437278184381209522731495316199756927984023404768066692493790946216699339267499092136795444703892889427090690857767261838631643785277230000163852885410135087672098599149350430680693038929466856433331712304965606157736222898607758309057874465019773839045434896420048559188227689162103873072927790719016067616015711812595979584756662642968332670569790595970864814747128908487676777743356421845509711200989172681435615846511241863500702721869842007648232454493282850109282445129027888535770230536355983701595573911594530626464202161940664149066444486262914838499152588653938624121715352669315031481632508207510940708583975516695624262926501040632408274664192142979775478477545763097012121904561853699538520439767865328145774460299366619321064026284616236666662187486085058168301685900690593820721080413293764897530779815112007711402770018648431269767830393079658132268731175646631302954696570933903429277408235515801903655900389921960829753254758772629393751542441816541621811994272489114690583239260332957473907922518183944099641096666449768863619817789634263415764691189178830383505878281413386600798808508320746986787573965494501292774367630793695934970764378960467165303121602006309252732803241114978338560787009471213353200340329742232068814182554693275671066361246800895517003661404829221665050496212604104004748227897470320489446810869922094575877549126160839582630900187086380442040038803200460005366702259967875832166430058401507741766082370783038498913696122548735540263640717446113553251331453357243941679095337269618074910269237005534668302606876111660036570685443354299815158084867718167219749030987511593606628508363399445007932035970486841704169073270957275016427177509556075050841797211828426538731292053154529424081521580876297617290566190384938678902282694533163324913956352597184070376246246713192495637047161222686048620284970970225875590932855650240054908400550906374461740993747175647678346470954237655926799825155959177154501660920830994541016795119750997727425810149335889225980207294407695512852183544881519423366320031691280882433284862089496725310252410529600257424867260002294866584273961089676807162796141339533177129520560189902676226934546909031173022693251516979828793514092407110142251245970836541745047363650884352657544748907156935409611148787719062502045395734139513203953491340171335886125529586712090393114555900877773707752156476850093352539627620629683388285898037107991015291649403347205205563212904228071266625230844459750532873647717789151236301112188318359743586702276400986234803764082439943305534086688666024074750154324207606596889581856534546871445881373264283837540703969537430316211117790632339139389492160709484583464555520206878709484169526079092219573306012598471646446157442915306851351887474481252289646552797253844659279326284025692729580506264587255130701351026302573665715456251265542518448213259626227384827919226628398088631885518801851089820949841943481087341192094544008278810117982874433360233253606581712280706349434710395723578490524051699601688109507474190043355790699843692413172127281052438094969270200993343583737162254674709745770077666658164173760005442675178952769348946551410602362456328015316156925798610088065872972863701295331572635007220307508698952458066950601837241711093518574278153821937283735752494014078456357280045160562438096201062137056685438567476313220140099571008050164423982794860325529041720515118258846535240604324817926046624987254217864030751261329128689618134142535776281191484592674221082512373801705911657731283655330670369668281233133497471941066097903834837386292500547044915353515382922965351952468593960728247296396403810145459282348069806182904149930322934051207982553569724152454828783225410789598725901992750745618864563257357222301520845420958468160609782908459897674096056333434088192909911899572217450230564908497542822737182420423563193704074061241991112638831185492442835138584576006853884563771673991985585114165585737567232086738010316708163586756568039969914886718023033060675078024848057137673450204173641373319863575729286161416496795132220417348220281254562734098958928938267924778723923201378439731126997845396841109877868240409790552688050313118035910519829766834707087980443164062325288261585315141894096249245938247252972681068785408290774658774996203948433374168069377509800188790280025989060800145726326439653452096947013042104884209811106802303312194737134641583591465020599071802592773096863286688421679252069723115044971213098374929510435240783227931215651448251054139525720979139620111330307728664198908833790461291196398407978522228275626741409322589863262454436727402235283518059060534192160872986446185278930127561672574108531581772870490319238168451196896013780371755798669965148703724297103700095671947321719559998966812723734519741248428463257286780129402279259389565841799791336814973421766404311667759984534792311399558174945318326769722125967937417574762321030945756408512869098492810878568308532828999089427980286116041552186280564591867208264511240820235555108989865024743155852762861926620857072801262797764663249063262902841574526026231485877969905818299516309089965759628855107632337662271317479496819612785089868300873681213187497642147774042244789183519739437399438421208444047120788966652305783494983786406904431964732184032486315192627033032549558876868256679118640724472922832658281113607183591908546432730776386272166159472715695083157411656026592291814606998475110537573504812598695072965653847747804853692391180790116910784060747387531011912928152354084612616401382451953489093757413810417890882596904910961379992594948770837824315315119831901085237073968533357653307610928855167117245725835294495459603004686496052077158186552490614846911384464018656490773303989882227853245053769515083851887073765011812503757836246807090045414610946485990419664332720948219703690313054913818750498674378966551625912411044261672658691930823612204054064944125781583173983746418119337490285317778858960213977857205120563249565779654590037954578479436047351710104924147661951793297786339844573140951543267454571396715960398750940194329390410013707525408813532171505038072607294458372501812427925329052313528356510258852593705437727080184525094557903838548743972729685939988242296282740807119752816803447338673011807332793499335224886645402290671778122621049787286599467610609793969786989256696359941899767883617206382535637580726155348235088040426459032730618942533996626581965031102622188055731676023392963222802547548768128732235731131143434949197766979201935509975729610912220507343433067177550253531109981763714790272249322970594320655554570500597231932739930825072363729381635534990246826740238420985158402148983055612151915201805338174966905744851843072819792256079896487419103910979402126610325728340068017831363906746167389426573312706597186422812118456646504806547224269003431421273361732258423809930681359748103218154716489910917354448416722876774421838553141399896115671478953104644015906316797407956892316804582811409239668275978202846471511887271792212916504237444740431772468845659578759650853884350556141915344328776974050736451397302923713623768061934881440159519134689408092036644022417243794379706928601898336846481870054907784520592825952326837210449501050966995340114482250458682863819633719012251271067790582752964318867892786448892562316374420789529220707686559925647004486245074966408370828551750224104028488959224446003385781888564538883514332026573131114446247969497087583079420911134454053378034656037984072822184822010735162906684806477945179618781462136537932105331344566377164497600138874711101829746353685576452990100062420428389567790366387017042566991471757171084140646767800682002456712419750440276844392488027807024699497886435174072929493018864342512855340421482681088046757381030856044248391073297507856958826647705736957134975054524132601190059688028378446117480814515516909381368151057372954132772112357296226196222618391933290312046764432898226203576095493003149079970214582008928010484402129576332425087460227871197046444907026607665970909463254160665077661807657990438199864559978944289270253691414014175069146921629366168190725368530663089700441447843800867545853410901673925465252024747393581989132966155202853512680551138938824470721276370494211741451017621810001150611979987210206788612981685613863843389309525415175438844565626859255585385343640191954837847443866294256725788687984981586163646793002050433707503534804812624360172744413145681438482706827748303809677179223266580123792778823610679304409694028938362149378973356041492514488979316481763846139560220522181728633708518625136732185797540316338607609133019531285398842913437579607928388997187688313086718648810556018949834989024284175958298903484478930489108868842005214128230020564535972703062594360639338927576209159553789810534390801627165169210076965512148710809785311296694114707785954181604040825403919314343432226052305341832310304865074672506948471212705232804249133726672609387948325531411970899537578264721363719931579515514071032055848273976455959110972460283411903327470257817589550796395014402829099830325771441504540671125019333543265451412535417499881594431052632672788956658763381146692974781337338031029576135246953909035215910345561262149558534692948860694759902432371911124967313973885440420601714125370017865464995975365206051845091736733441897002703026786232225175663259944938461089361190272081704558427096052013779799842442892116842790441088647732652284471786829982931769924228480915417904296109945837047746217844667299981127587025252094927907250288079153288124627553511480060206828223094362024979522271047216820349682397189144929241468098756846595603776905815935933052612213321608498110688795820854256457989354030215750383921668778301819113091096067924038735879601755521119100408262386578148722560074121615626834066631447719748857760083285646254217268328545849159589103689141049484705652906651801874865111817210707095367025052594531190818013275983722280299850301001258893659946137911489515024327088069689076603749460442964209077967197529635959490969879028915510675457190892535397103496015164710390819279103365374561367835567476227088814698636947273203597627082034500297140185685811228736576236950216752157693443459928422069923045410465901696463705186095900289329516017442659108814848597408539650660546002764850098189728690351259379607999531492642948807204831905934998822558434697347265707273817445973575752991479050647337450181275060471780553701558840955268280398525885788005398022834869663694268175066853269221621886300254025754730110947067341592835241558468810655246221948134666130243285818449157657225360419751669536931103840954284592864138413552648663050557436611080371386638230701080162220362277318294656785320263302125635778737428452023609296383959001455066823667860273233849177315545943656127509308005050469584901324776669935094349280474881041017781712120868152887078335658472987966681800575726401072955236918941427331491851367812611622520241395931439120354637371984967493263686382305264797337089932159430639184476337680966564765925078399919337835280788982973684413210818580647489427850653817705277021373445878937128426351439120370339439393631916089306551109879587898508292031737053982923267933983618196810262021313002801317913560275773332109624083528579010475120840922374018937767357328501133666925954090171312017471857930101216051877004537828850133304722947590930120886266328140177511564082463131142524992523458703693927863008974739763501390036954634740133103690860614748247053842894514249560883790106572571746311306327109255739192441128088743968293891989655461370735032942201055397116737098118155069761935349878805582890651716550584555509770600198522002540442828398566416183552928878147849396443260562146991955217881734535439413262115671222506120243216022184395661539945066249231977730968211588473705327171349802557073671815653252297131575403293662540310534753074155019606767466801739601471177245547215308413906924245317893570669081288854501736882322756612649027131085452048431523195683191967230073442406322094485337661129911703027504495265566827920232894912971911921412257673270239311573276265736714330892414726467215048474332980502902430952850598125031859822741711933685804406762324562069011740880803627947431031644936985492756118699878960469708610925562243694183970462076617870269788162825355226356650440208479754230344801489472589618395070368356515610202500816492555657515795751548464846040716953615324159361819315437339308049123859108988916670918109815728693395366266932738823145320853103840152119130128539299221293976878950468470257767316193379209287371710168992959203699361835104493543227047973034654983630156465564620014840239751848697971856146061629499956226685118337430397319211219277293802934065873098810016687470405543314502407680310842593893021343447414700166253996654117702984400776530035382566854316285448949097727267594070196275751188067179509841504727941100842908618004840788199908703039655442512015492637887742639975759967957461086902801651664962205609351692897242508608364747702978391967581247204478669141073802626976606157502479210726446956085911533357954508735475380606630730860976379624289631066631207168605353876872827895491085992488373061056399286402573696949206554077729312502256221937296113685688216620627482258773384761935438064936615125535889208285535037243502120935667534004364367973835463913216045983184762493813272691272113779898166671098178183625301924961499551831981853764942690661642982725316473644676192836244006069102549576971706422476578711981458028622474055115727418718950723019969340445282624031660804377658262018374740388996203581354590822666110173423626764103459140668504861998397398896955889045505801538554754478300651840666881551969326887397303945490780339917025154816699559803739859744635857726292959571422632480625920271785515029970288217351379640199683625274626408326391731143824227420042073107403281171576438315371692579967511795324037284563974312962814029525269110824626146725287456195924655457759502513854372259489528912403991520080182140846529945406278013029807359797169367979722541670151231734768461020345607740990267021877939905207160122371595614157320623593741436532876203995070318623619131288850358582626354426246762452598427611470820921002139982273119211068081201328063298712532771390065825983446517080547133438557758135673339126298837782075855237205858991385123829675077310252536469050780921376794057319097438313584842621932147947757622664216953915005563396985306027870619088999123449328884168419160920823999260597318164652968374748930653276703052919460814175539141100757570040053951638072443294184555498101148168842111157301278963565637693101869135350368615852831033516860861875298519576279950914600186781743038061257164321873099934380686777723113856379496180413232670686178476964703524611837511136174740022409611782533589951821274065126642535011607628470395205417363845650907442862802394274539209189349027477766346419769022919210055984057593781087935521310000343191843729265918546897056225577651128165740949112596873604881321683829373930143231286677414300863257237405355658411579296248636552441742878418026873353398225443604829315540704297504274016990599561086867959628397503040980310733816072981222764674004854149493023581828870423365056583078142242277756847409909047694044721904079965201861199621760389667389615718686137158362932633323464146414713259267489431450461462162342435933849144989113270393968650060792082801880036874347571416610534689492236232582199440725599085796188900276466696146109951286636594036024422598844740763528713062917914636512981813498015055594665672990692164733575779746773024935809769866297850022764162470552324624515467259967814652174030031662822453665942487926772200020930580382507102178113997891298385828553843734946187375820142537318116043892758318884108837269990113574108802072001019685363036964281751712742863804302011618291947843916869563976683897346513272911995444657905182821856022286918458692866431418258394698103758850205884309546446112674737059741972437990838116309903436104762231104107432895428278038664170813264937687781347754074284439642033786882334942950936272642354888875242111100434628239628661567658752716723985560973933142616620594216585147312848925481927669791679382953824155662295803335659486992689590040403299586400428981679243345339408007296389892577077491152028831486704076271424610450490736930824813406402811462935158360858490752455508797668991651554006544825657598516071696683152133424622554400954560669934307704443155878995910002121298732608183927441266217165747822982240280684497011719137329493448539384375864013640651970322979761847531472495007939396125188010770620012392453595354212852268952196878757512778708232818272616086677931593061209548844761382649914323359792313710323712328900978296978496803823053779022690170324235844112498710439488768478665577293156621450897648562366160855912513224929435969288585341540403145631973559205527973654095708243768385353060433674046240849814745426632577878334979318230025526501649369427162236484664373973762484899000331705276472325576884527866465285924091475692333078899505961031445377528951537613135485128557128537808408846541570934111663518445959851304497317699029545279953085792851832025596383323525458973801947595032133016673921604709851346868339447396486428562647940229280871875742501224263962878048486990978636691227879294037854371267205788019342086410582456607775221744827641067706460259458131048229467325032586439524466118026172684540658812711909597106261172374073164134802094188065375095495635974695913102854453179070389736951958210178057017863825883577545204943339200944554612920116377974517433452700865937014535317900387766124487054425137359149223849843033533573512675229109938297660350859249488046007235602341599375880135274903881533972432639291498532651702921170382240608895765265770658523176864144292226787434874555561361756764769084760912541118956541643890714749772792756935320741798282115781609004325584580140476361508902534834674923163953455236253810952410839833680380747469824565068380946333212630037472605678179904635542995813628276862292477909718379054119658072410492244965727032105268660493073942116038273997796467753653569282259688214150437341863379116074608682408604262404735336223073604714825860872604807259931947214533242528014209545913514083990970021917575468590878587179755744949627425096574720577126971206018191736255825198304956009136434714216533110620471040358473592813632035809607770246664672034223228765420624158834405632920384802057745340284234850062189215721031815929016900384408889593841623688694451875996089651464249590434483407287626019093808152023877798768459682029823160996159405684953984221220072523415323267318292798075199011748700982299720960841224540635033900287586674716591615420046131634540368795119468145128266735211772473646643073125300500788943405032868129239768765031068795653166824268474978693989659555715554832532950562456081443454787873878433680966098706253937991763567282304730686804054289797809097914861982056168054760087248162050575131692929357994089926746525029305046970072668578976137410915749664742781675961124345279231648021995383064897422771519052890745820281089828123665743596023192734058640448650756483149974006690863742737755992842422988528055809971827018313532426583641640441738634155435098436498501397703232245580097255021895746446085949668007701618180783909859381396096388243987438009211574411438573347328137167796230035670738183319563052225336414255498840296582426741843803530372894385960093267209889303830315647796810751711010529157868122281847949256307466938082722119677339102503905764294138769321025991842355167565874516684232557460267087917638084362857287145775954468654719874580443746100015724166051891719705832003603149785095302565016405781087147087571482294403285664779780219552972589346924858455629425797960874739022266680962369505425950084808149112956781290645491389753388993178286528274591888849960402011413764456435514415292221980406485110245668673400923786580331640646455823754821208569408221889431894979136544146600449757822856249355166558286307964019203318105247004516006702184052497903087628570718671374026531498891416132469250601113801591469377332082951902988921796401805141134983205149033629555832775734109020716904617166245882451184913616859516811203499997687883369991795762947307782307233608094396743858429026024208871769089573707974333689137534214225104894661465293472072829967935480150042302557480569429597182476526416638748232327095648958344726429229180316670815767689539100974297276956165817773852074198293566980272527188969513203391979534255079510169421708482099150403052450410960676435177739190550173976543960923535148561008486782103025208431598337968979963580609001549563561990479018285834991902801750454444958771175469120810325356923207730300068591103070811573570492217125436684538759896341272657929903812489128398737480984342795449547419131756928227749424215728499083920923776483430783868695401875415436256831301122220140953822543531210360710026738261969186252359315613397924250630287814253090439390170696240617814896996314000676656808780004506342070998079344203576556250088357838695455325610233834374252963174678725982248061222929157092456186571842513058751381148882039659870043429513939202749690000763211862522371653134261588258738184871469827493204204598683543250787405598680575346249419849056837966423436805896523429457331305128977230758975292249098372599455721337439773334040777814551083669728888889515047899906298930546100538677058036733850081075209773660302181481735258679780240289924960270992840321568670417183584168201973793757368795574687996763132801478632356012369910433536027992419784126672928861462146693262569394179721286481009969380631424738421591556616288412132214662096367298057917157777870190901629864780348277043675636405046950734606953963454148934536959977407748915799653650028312769880747455877985638109697831274448757357953319930506074365815570507944355875111149424922682807992210624169387279440101535982437541570681093927130119888815673104729240948088958107566121938363224249685327061454325869461831677486955820653632085066489244080898743970793915776463829993903715749569298249579801806508392813151852858288252796562003591926286693060198201257620181435947651321369176079284765002526522499910792259629966818253514352276193038950278199840925450203633888679695705791252838383461026494715239174482018168278979334347260770092240188840962029388386445393018842879854090766159274073168720674782592137935666671454447437864154493197828232897521977675555190530455696170210090663505737557912353094248393793675210910931681464619244466123783884387539631206214921423319263723250505151474871341122685424371415124062300859215799141956913553132704647884680486570851387514067971764989310463077451335818657422817496671122091798150411962682972940946464599582538013555259896495585641993037513703594039778200498453063092084788116709464861672907642740363985550729403309539092244770023050954916941298938343733261576200988606990190911972690210026699539972811876686265097967775040903027308244040163395820956497156599124870084569776211338581157128612647747807668388050576488138287121693382969167360105978640155808487199189914507943531711131935964236469748185504076839377461897310248797776802120342863639623434854981283193934491659329631340267573090695314721434993365117648715946151487037003002552231255397211361731319439930295262453044929985938299760768050102359071728766912077018619038353983669625676422041637463323477224981125181400220187074780475290325718170510813259217977937616761862144496769385580886241436170338169415543039278539335407878024236757350818081312669211043408365253221929130389404826074084841470895660672788076089615754742416224220236333679029454465595115774710369157088824028872280495157122324121160682392592348923291145395610907749340685690225683650382315344528303098023707649426592670620161121836111306463353080248500514885170592042886547581588282580506258296222831361088666766509576043749568808188406910386190446918451077585648045319814404558080853371266146767197040617015568322802317986913017315069862422566587371544837286772508696471141200552900801879066835760859036356525996695555968156321837776918982711617636353361453986666410639144913374710057527650369903175705166372092447737616728304439532590456706441729680440513057744350329743119732009790743438276022064779189459702464609359411408083324838239425521707498848371398916558710032898008349230502332091125915296297937901294230264968578426890998605835170933378311940186176861808001433921207124686579158825303040081402085175121854420314032381270633580554237094332860317947137984158047700520625190265213147918980395017498802983085053496753042558853255336406405375594023776845783696924511103890177294152870298981418647811351116915813895732607952635989477199717368651246173310600433721974480305481075229333701005276759790450202417529942659238948528990868820573006374360733782832082372192782101245282813177390996606068739593735018673294755101484953234885375367428858747990628832418719780002361637083567999798883154700043995520174086480083412574492065029243710223554067124133155892104250514932041337346148744134740414836239852808542220518803507678056000699101861121283123318483806440960681536191690330445225490438672568701053941536889171064485914435551723517595978187146162040631868364225131784861084678009684031415365281344796325540227916551519142829049621778815894415607803354996818322090402458470934896494059208199596452154652629539655018098606542988675368333929539915245640917826310756878808333560097689071499291713202367702925885657610195212356180809732825833507677500320624529715754517797151712508270558294756103468174451192080411092288381732246447881115671866070899541114312685612309152394495135923614722430180419837405186489884870552491849951946439482436496682900018327983744536868001017725554385091423533328760682869418669487147187856466430895231375200617210957260914493749004929223208405385204281805289797163612723350455432092795464551726505800547023384547242961593977583847582103537468682019391262358435267870205545269750553320147274556518371614404198444854374043302921769008888392544497531767513157742401426164995377384052520083287052233811677942286776268665191364658054207942094871110018309039502460046974109495192255889504272648860353438685328742179202387355520651846904190513874944774640815166938713275967123751494996572740715038565416903015352332561106419057963423905227604307896664970665459471757727898503614798709771771662145922913710663949829976823056031337924523373091665471290418665661418665452545884073403208350439240414418381844804016020386440445421016177412676807083891342594112440406636740964421193584404888228293394748615676452479897162644406959500521057100829215885639872364486474340818572816517061412477538592784670414351269942098411580135549900840787218354472727229581798354696943747882464623216094057271925330673203568909605553816598092965920640119351260054531792624430472711722850080412319558687553334408992891429298105371412884824164835139538810002542508624376444108043817999653981029058494668681154393351354816429153711986790760943575490226644848398720747349412349099285785368043950800017711618384550609324430445393870897048034170247685853004583475296000872751741963480028667067197514206376223520400020476894563134177612608261731215732667238592219658198666742582883477250095653505246259172704798250994138025917335790813470601389593863505672026977915269118760426714785350592866790383911673705289328351833151986478726414694428836554787258335959082143104492276655061952970928020713109966304535968571362765173789461424465244891175277499158314994635429739728886447477352173419501730301261543165134089448097168323830938527516008553934627883604339807952352095922426500085151109443916771877137884728091192521325654716126013060967509306051515681154119579154468767828470639382553729743494641226605214534460109828565034527197440245311361318196080474403138301030946701781564789320928034005622583566233545133132240366460167799750644202185805293878363608712971654223764499304624948635730937785683067402860008632867008138962625112242351098696815836766205400699965027392444707039491170574663517877982949516770780871518985454960463195982420665410842285392582889534784183923719722079624953567425742505987189899057182859318713515282221452743545782385568599606436494970981024718933084690341498216950459587379411874647059990858563774558061915583051382372790064136003345083217069204412974819241647034431231096896061094200546935763272171380256969314193681921331537447302939678540872481004009594985319208663224222140269272517722017704022065373781190075474834195404471087756517632036953209516433030685670229265744783797461949952417526590729510553031268794571428992133885126580259382349268152552932890768751651159910515503287999550142127432723108304092253168883091580993516912926844238353226737917225465498605787079847165575023517589409055995167999228512734781945441498496215447293918934322171640081112502796677452665620005270015795238968439803016502581722376883623975725709945653531241840535726878604905285101851536786493664666576782595238817525788456420682655431611376268435107086712379665070755609757934667484270252734804395513076739143645230261833988731464568869165923729121103816332525182766696929049298442761252724407075208377464921649122665222021659179613086179258086631305492099214187980535139842934161352954298966277499415809843050317245549471615313305993593274581698626672179516458073508470665305654251435079138061262949782820516609847030451720305656970554605730508277024185888583828028168591420850010615506105748540069340361327258222596375116141771492056129240073177543050466351006898349380610476193863121860420528553235125666680170449085330911562497634364134268934194619931028300879724408314222581786685031489066331004620012792369132027730641559804930038824557999427718990584963693694290651946600120028703983671621050848012853766696381859838780304428374275295489095564980999714153867460905532831561935297735449206821567734215230348709085763258314660890558276177595777289283811459586659454914164209475653538932410572507077705716416819293649858698932208032864113352609440976399581121212701827122346479121345323625629897777370007269025214653096172819708951981927058272592760974478692430508502320225909440114393909490718031736252532582240365451660731426990834252101442483221185932591064438016007132285915122731169742114962915859659624089485617796074685928202875159337160808813223728135212401364578826078531861196061963650311352651190040294958186194345623914252557466149144045244546474773658858186619701750645020279227069617383705633555865589790294786884357610132893371325227793839481690978484805509422585165004342347413030064168295709888455453337966317199074099629394095140994824890564148062827402801515524560086210859754802537438635216640980236110580067515759528772580609306209137353539582076089711316017053216071069892137515287655321490824379530093597689628827880046466991944982230529043675455064285750660068904410761641439327995068140322737925433149739712284417916289910371229718103703663563922513251929268178396857754809548510185573110748142179689815420804465338914603563086674580556461278647885024477046513802521601985472183851838706177613952177754519698112261873947427451485948183815375593955981894053119139430138008215355236793550088899267427733609813834984415471360558959103893749369966317924958142831210980493484839653316076950095987082674789009375906857700135139091799600500405035953690858025814217147622920455842728366153820753827828613339315992650906106111733203671199310676924382200627173795927999021728695296358415505467934409571546512447179104904918487142559678953338752652055548356929606786867669422980796352189597466732556287657081843301279143280063201798831774724219736113740819652496351090094654354646073782293204024556637361913227152354502608507423580881070617268407807424167334400040328042713442500789265283140139974198652318861638658239446189549043367207099321570600695387128745062478774929715785832813990278057264538171382011165559044394182727213121910641114566834654854812151554209213204388083583100200396083359092875206756933566223934416214276855771504981061550802639375786111979961856387346244111475111702230346354308858841894128636077630214911160904657876985458584761398710463328063568124061064665756565060704841310358984415269860107621407580506337542614843043171099790801306260724660621563286397907968030735733996694057279636994173914862873217779313416228855300550407457994806295703311392406435602014383470933434955724560679694584134547954753752234542245486123317812717007934640195051157843512054728997585361080874747374342578713573244778399634154276341639092155951394786038736140408424613037075116553985501060430440493246353925994660200911863246797666675193542878061305234924840564674480063410753184055023512927761585848306565640827355422626271610627350868124249896642569147170356904171053726718400448039686016389645532524053382996616282249313588276795622736886626929480770374388191833833642704988107470196219884452203819989747589124330172231753093941508439299061178433627185397494939525282972224426646808205131979381992264271252906935880844739561883551743131627769875074335649118024785801236710763411175866783459003293183112803209831127802027186815216189580858903761393941006133330292502328300676163946162910955375111910183644001829976240629307190857104609294860459396309592999914821944977951014319569018523399540066415186698680121358543137250322604747886149433810608457002255238042069378361609340309861692666332128537240248895212768014569908292183458436718015086573907299959920478691887168100213267146905743466857710666255068240900154752539521576316986776244562343842956774481211515739666649116467163100202473135947579746005973423749640475011082249320157896707377220598448581701122602536659486784530786837062784700236929170320786999993231784492936634650794810814145535936728773910799454706899580290315715231016411761671292697677058266296557174887356105700902106995387068130893172623324858543062321298157455013908154929913161532499619980957847489510850328536583820656821762504174469601969879999424571109147105884813565582852496447630234029736452133155290516538150485264261502701475690858837329031463254964770485724334657426381175659152913206253304981798556001456237913601253657364627762269513648436011544555628617220428550397224304266630476175782942919831843803389276379381482966714482784054588203538914409706582559803640990166201023527886488128454020655064000398810780738478211635556824170707841701962615902294966479228550963774515347803247271633321383130674781658503376116353561198259023774733866489628665768303777539828909310160898871807555661817973981403006635791542680151085480392739484360395586532101379311723919235130069236834353046473258078140100349215475912875355074579639382916102885653736297312978821275827745374428728204449455818407710005010617131472626482644753776256882135155270055162323059203093408929594514164156993644640058545742868143826399100725209767217227516846366556906997512360918972604571557983333003018508001632362693039621035878211742470339881668405303057595228565943023381378553000135826922247448256139927801381120396049863802768184329075198553381598276247321986675247102483834639334107589795561788249598246239547624506927221309234014271939258659565954617716949689546962789923767576166867917170853329761282885947348140145894062690233686541194345391072671172586847190252410306381269649392099630071119087438042136413444612707920628399364975155991065140166009895441982062545006442158033722338312097227145986964999915101396647594078587841538927117602696472025288578666930326006536005228523482839643449267769236078013759089922810413420083050448976370804054517071233314417192766475079249280862365686899516296818057166328428946508031115980785660260709442496451800733181093485927412163615571099186941744477104583460552777791123807110076798361745452275855553718883137994656420441119541457692771899759536745253972487498306377145649845943147891295413934864501806303736043788954238256168651432616869401695497834520377184291367944084621484681352641453246337372443857477697218925441851219316535159597133893350095160256217831861486612145048287135691631232940864334049737447477036093195432082136351288579552260813434439606055373768445288917149156684218184790484257083652573123171997874528657903080078060777192966175563455208442954441058376740222892715051435729671089053017908419285435857541979792808240278434107442944713262165208301089351001664216752885030590179017299445607577795006644657091793324547168291710739870513770110629515496594128809929613878431043441358042156246702591630445203837639595222896142499540661468611794641012158426271133933874282060553192442915913351412402400557566536716187803492085242782525887303142998555138579886600527320131537091029888001078919790114437176672501474887205979435616774363819597760599892079215032405143430812648676143505965974808382432290722365988416399533432858451606529719236947451751600440197245081833802888697311257248244647419585411607069039955969758542777774758893806923110675218469014094988560630090621699268082955378028475896461195467150158792899480742436529739141811078034025852754486892569067036582379748109918149229996422238253072752601234632970797435227932664499521166708679143087081480403361438136278738506364778457768286069016221882201119572794665911311006116965255512596254131836455858137638917391078544681616433029701246591166499610939250301149935800431439412062700459066154993192225226022124035763483895540429869788003879639708676460787368381374986152803174720118100382745455342261128295232324957617228821093526765138814824315614204478982079377008863815289902841994848421965006390727446440278547411245216948243865607746056801089661789940186316270237405081759095499213538529524456323973601219518723844964108861900958183687286016793318440531353806530673255882370489247681201941257257909126424871492223397238112101922092125209403612731430668379571950654687129115505282884629296187951771809816667301307810923836361030819002507252201109595987132224051079842624017714079388841655935225128709628119688138865391081659673877030187496357335091603353791642284117741348166263896848778203803810658166521736522695003789851276706804887946897986141602088623873002880710003677567841404854621285359768400968565739651831173527552484203252688790644228053662814001567592935664846120407243746006504991142287530962100073177047038242220998899892658869361018738265010580520338030267753101392421067056267394601657522136485953977668006641175345275986846620586468384201287095261344182080614281976802659304754498154989307927871878759412292190362182323602633587277255744062647055170218067213349158301055287162571332245718270083902091035266803966628440587893947126271812589832235536567219076916631254944699066670084557649422742954324302562886933433705814196932541683532577046689038222926000732696490111532311949097568245602070071148343672412118104910905282485540018452823820823306405552704731069843480172248303187082289051662259537737909851252033063609714559387739323564488842020162434219830091543474238883183955821181989409985026146916908250019994703390602126335671094452002668319904704067704496099564045604268767253464685414226767994978877652712022399599152581305444925528401336828462927343506695574336311160254644070464852213084061222557307884624868607076200498053049089053587138508809974257042339963480068067355922117497735469620109132513476458291129818827364923242609843631486291342480788397053657435258545770205727641024743350099589885124462019703449653495274639305923007357877663668083272198931605954992152074216250177917657302796655275597390478207505181044691206772942958959944416449377955179107300910974529629289405447532481594368202320753821281058510112891034328748182400272271762550511582148304607783822212662314198004117297789256589165114827982130811100297825376095691521656099373030556313198013564929030596873101033538772818731200347860982585320799166026196417440150799600251428074049633681923219261862578609322519544813660430778213482035562107311382302387437835607004673888283795790627560593176189917288300712826217019057058468938222190577688040060628061602492506790679134443254951721887180373098363450359291407500634881050784228319263017008595633787047592377064754878046687193630788208043533675909456379811923415557732803614550138811415453281585144334972332446403880258126282818468219676629271087507625628988328339782506925922429497795744570875469969842394298089577024504854557930386493949498206996024649876461535369574446691885148537724208563765726614176509030549630763890417763293208886106119234385952451440023270122518834469337383285435858942149275111837496885914490358435424799357816900452573140628784949407262796006435010536620042360115662557113974595338815747298074381325872929759298180937424051550273893653240726261242353025847379815924603320904427419099992482652450726471123413878100783391693724309946755211679543548832926619147133634098958683998651138939514194766517237505125371297323893869320493362664267122611809302213157198606615828121541791079014319350227603290897669245531983831264678434038004828950857847611280998796220375580663561862716755120396296305702670204050030105006337720768336936004454253630083996914498229620699533776592099915902731192332824204254564497819719189772780885191633824176532265109244665838968572313006660039722950064116042349868202690097324247460096636701961152035285015074464526973422890880255479592282123647984482821558303614332227945386551465500298222761385887181840144641866181866068522481659526831275135882137865208313503247488806132028655499070323376720713132451803352255804787282616251802092709145197106271673304380418505988808970127516865311277364699213826738498541481207804797305516874991593885471078855773077534732993173880818034469838266556821422548227291949397995218442071505129298140711153420837697342822917817197419098326154269192738735386809355025506267340914249903636665668342842613043207083540860983307827362426335704129137578831710805545188734038506722249900118936746695936369700704545580155340843489477217336947647027753982059153682848652795635484000780285841712095976152057903994306520458288811801383766686565352296567682863508596513999557469114394357470069984057789041868993788750276153692789291602201030900090188508460384113023412007718368495052407194053997280830104098481806355440125699367713416923520430886424473150972373928243851043029963988211646656670313151987943977441536231577451087020718981992029964546716488586336959706410440318419168549714109438700973795077524532900979500685267194880391981181167520631838408289846080833422717958413433163111670312257719799984677498802310308847001389669249753345689267741272458966609469120115471179228969079510951929213870704126338498474715237391622071125343541562561740261811730511272704321094804265587215328017617596485110825525968991695172956116665702999073111654030225747695429479687662280368311506380185919903089719229436467684189984068097206463725486649696555169800868672825082679561142340150557566992129357650679702317894713943914887228048286001219677283756385765160814096752675146516323679259662453797566203596996712594963001510727168526669524809158981687593659296655182873917604476914635031127797294190688456042895133577298303700499917273566558022022983632072692807848184643805464311539517415437263065890643431369503891819476822406499469327551007047670453979680567692906065473150157712854125104174679586859084262174329001311578529870512209310479143143152576397459615846603258430611623257440677422450212650100056131205999729820786682442170316758958137961963396090094360117661763029531653084856895236527525331119269170493674644507287127867494319234794244562990558858648436747240755089923402088253202762153189841525424169670901708134041928856798487314431168727451168369588434565603357531630292877143711808465538739852120127759647293298774868073723551089615988234523584518826874566589446759758734800466378123493608028905570265778642276216727814185269941084094865689582818573792626530549325535159966946266496249384138387251813703100093579457871554695850097089125555733449955957106678641393174969350398582633420828273097814278624997853148236698060780596785470206566159139688084839705148390128700562496318499241061417986215291367941630146022668454791311151576809771226306952108348262818878601974266258461091350110849750894201468952794691080174634918332940281653504436394213516977518305553352699910091766251830122118823420605727003548174053541560770662259754384630526491606246240058021355833610514793831016053741892287142746240880113673394262670584606847684919289525018420722806888406511612878243893352114547965115633701032723560836007434974099997094972388705520402044736172474073139298769847384936978933090984467694329194570766156193103513015795400556171364071738728590269658500765943588525524712077005868017722190463875563120374882790194261479902840335538932302945794178843217698681419713355985902327299428616074082948391688603792005526001595077050407999667257779420166001237338763111157252536731164312394006401841041854070709285238873182666599330894980091087766617298467835346349769863448508278165020085396173764524422918950301920658014787517330510929683866701349945676264994363230130039302295614934081362771486247463656893242441089702061060081312273614687225559869438156243208429197326161669512872047677961288310020859688855284351958434116546712501926770463628841370125555853389018531103508230270530406550519304822773975376672505427313427116669984861788674439084843210690830928068537203018313331740507455223059291722029010816555929943423293488909450993305192752248756778208439319356609448112416728812250309949729111731076978758100169041335672439904509008881007089824386593870772732205673566502807032171036040973221054490999335016640048704041869281054760745841928727855167872233481391880230960408055232010549908885456761471262447285110863314702559557413577153988265412579886405402665375880063240655084053181036071177532777246491364861653214638556617129681566352180083245172957010574071984311016922954060160931299368194469284769975217028307147298463758310401934854106621878323674744670879772586851055373592299846892241579780806176304410630024155778524996949568692154292574191648012485713772645485567751923690970498399082642393419625408044575871073404353757837844919221921647309143737514479233377492318169220843161059437989299793393365281272110953776256532637336014071621360669991931403736733331187633400720341103389909671007092900893430658549700419656934600131396503929308522800685150418700918858427112078001950901222867844480527907362892878240503392954776098441209021638987916283234953278983651354774163294787493291209498897578136676484102709174479017873685664548681780020337527712893049357392488278096648211704586125042827900727855784827686960966061406152711087040668419458941065073514126256369647198214743948484999539749914768175845890207341312031164458604835326396349337080755602981880068174074096744790962640114688641629496236738280185337306367783292741667381507097781074707701190879277702675635945179214302814561490309295311162688012600172805585078043629267104384392043653105695142797143643097385863453642412594546309097275338410320698035295270239610879626667768682126498281529265913667801018219396060373834231531288599873654875426641481478498142998340348619302375980637877499125089191751670541696651838456673486935048049009688248456190276227192260618095341753014004860205394986686240288042086571176871872630729915593758563499794275719086560989211777264216884277012154202608597846200154212960703849549314353732668315353578259448629828606470623753836667675780384079476580836949410385877524382917429057230918471877077736933458726167892308319843629789398159086686282682952358631247624784939472290514445562854120545063568963714437288508106613124872155260159086730678110099285031426725167138825480219552939344414959743211300329228848729003264466117850006164424624496965041695484989755475063974073093927198285568238013337873348928497774718208555231317278153180901390916474466010931791737113743191139853631892741680704126016422775362422629304254389356741140176088410848929460347081822660883176421499641428506294529542381747608702782300721005076778953194821352443275735512450395148806821912560407121261029410142651359100710548012969552950252071301958334975685570968702512786065452345641247982832794674384626922377876289948033232747507316343835064341601657156501226908246594587823469648917650535532625260264839638920416338223833809683440379886733736215865688587350282207812968697483683973239577141573687503181712333834349159204142742702488979951493882436238699372482912145837442580336099865648102422670170803262235486390217371021767041231355967588055712925623760913636359296873282093771522123655586767090417460576913601524908707769985029922189499124064519455571440018555773936580318279593415589546511748048296810607663348547813719130802374224754178941789315787240799797289739160152940632370530793834748668175580737978154960369081683408198156269908794848897930379076045858294250524269081336533232881639513311994499789939019138116070192839080026385178477774474239354820916251633511575792039732010284620131330374604490923636401825163684985933062392057027279458026516270610940611147374122901121507102158603911103850471239889784759829424229623206566586896724381818052140379658832177035248341161080733489960641758151227160605999655724799208005760095180231775831895749347325966503181377821647423793397044379140886800354091288554842470865624091575523216839575612305978180412090904126472722854564718777743782359372574492309086917319539068924274964317732934236266249551287872302377144775570358949907605802058409835408990111943639145021428064575838321750658770174819687581546698898447866414246885097399359625405439886437163064953480394579379277143065449992382693296330185599583127762473269209681834186085599041638975118135426812056768447226430420238690039590038476671791062298867708616826664491582978732906509775886623569673173263553787472978126791719978437136375345852801526433271551495445187808926953853877723372519028667580153673302996357424602867209794444572339291402947064620368119379664482410231404616921299742873017136019391468215266174650329604987713830909026139026636565424848123443704776669309985002334211133339809266237764078940810512938320267686747079788307907424047050329307006367252993022808932453083588114803294989293161678833541894579528767641086035739375876882322997228697885127717150213663557352549629497250009276723889170641277078209316139224814234403686176531015316698789402956311455159147334906697227124151763116435495318298556502857479365264994299594910805865769132504410830590046564393012053165741900321653796604973986884183996045578595624047084578448196822807313112179197985142797576938121024302374066476774438780174087199209082791155379303294143592094746003635416406874144890794152395219838622133332071808301640314463626483160146903155512011346766654114988099482038535350422972269271511225981266433192095094623078013045343371928296544593827380115648936291361491861472220449667999304761283895647964258977442065598662052749712740321040377858284632483098386683735781963273957164286010390729419002155852856941181820052949486976191417973705746973346998177702682412397002954294360141470968769254630892989637348967382903130777131398999898242658777566330462363370048721761260505238801071173469565704723599530081469711340547829915441215844814583140390510150459937916519100017339390829693560611342616265584048542364480273757712996557266094291196263921799681369180169025597282117564093007969290798813704554862112162595337985782881876561295409287135646491812699872390039518791539609527522946814081779555649827463740799913909081664077911917367257351209999490168485047149521201992928464922581245156325549479361915705301984674385525778684571343904593625653490025557533791197343630635856626831032554163408216483585616226546648595066211673327951917098306246406103408731853421836112277247010111922354650821123890854928528053854442217002096249532869394559196946183741610957667628885641775503920796403008381614205372299915548566068692422575138535912769118449724298847101900211318116567960678668180544883188859662928949199308525983218485436711742675505653118103333307449491612131463856142993697992455152033035263487854098623060570235895805515492769718759747407817735512370026156406103097886143287097025316334283938515245312017013640255209092902334955826182584715587726576448477661435326263622639230982558310639920563095197455942877269874369565135406163383071377452888840707365561343014163520081875118502966564461148521022008112784000763492675609484107708715249777471237284465210888470197982866899181291247461350446837102012171054725394000014928452269576183997652931884793840719228701474887692261080830367142776835577247348457030290675486064537411077011802270755550181406307585105900443539412605940307022834795586067797943267021743890787705952034365269028792422022764416640349025450111870409349755919056594112826616339103483755460737427646866132604649342281849470284870322181122113715100658372924563406636725526515302079697173440947601885220378352740657074438919693270641928089832583254057408008687692257506048533000669239401482732782508758867801677737011705589768004663605159752078785088295008316722558618753982767736570729032336206934045021954905427709935351015677490775654692530853294480237101598798773609491235094759682101620521517534397022702076327490764928960019551822563263537552484331954528746192484458184422280419679983323689335958042393967393924384358040947617029468273948444501409764040925811906586314234716648376758514185797169958240074392976299162482175854443936001734499402496363192838638313933138432138520813848544397842047866012147222484021800464825667121059508171096176924368530050975193791496966789658041978773526738615344259189131990367696384601812124907980377364966427537545534937880603282188511840973141238509871561684031307051958906595340843197904637074619436440739127578249511970741849241169812626260327507293262082664642709566753988691098470465661899952060882245358296379912885807750510919175225673467769343087427934764884134170068512956701057565583395176288664021043823057093643064071498162231662823885581622423395150750883983710879899765986486454710113698485066665978775574921292187179121965237416995706216544997486770259496565712094842747127274491992652972482238160853183892038019970012338828566798880972246306010500502397183223211074530311797129333325151147327239158527449422701300784835205302946778867259214223283844224966809376463655875493747520257400788668850451088402154713214054922555196934877275076586048192621546948560128567440502778149817445215407471002911383499314165215950853209665563410947531773874688807307112619712313914487547379617120589198707588482010067064907408528316964245486917673863485800168881145020307073951976837736867834259643697874770781661869118154448557654196928141666857304942938050406518662391932284932522419369923539934623445595602199453069623633188033564435584901717391081791927115225685258246830737647884957856823425873129211577145691335159305555444209104274207573189365373712230578878610087329736364318767507094315419425724474476470006082288821846042992151700077468631646963227760125512698854882922125411697417521418153605242456817437507991014613683343224031620692002736862589644263663327618679214008208352694958936045589914361736310292654413329095574901187117272409608028410358900930198836536107307102286023566405994114009038149469379929452601842848039608573311815479090930765173739939037922580628034327985595573478667816133911578220195229006924162579960187939970914973927003032570883780652116427147678663695470948293741480432165502645054515025396314394178845459744980894200143405731551775454127623160417857631158613654597164449908312452740568695441890737024697587751559591986699686063055195741015559440279242659813454191575442229073910167804660642048240835106194118668448180590076856502298367649646419088586340134189080244427257907252467021872536316384156430759763495430344794216726531564760740185784380127864978998956520723795565188896416040335361924898538709951957246304438020057006010209550227028103297581532735319802501448228521387510307533412071137280206211533203745538090982116503651720188174105236789417034703403366063708910791335567071419097665334447187365765417092701703950698368888864254586823132243494197569259453416020193023183050436525181386980092841333013208281563461007660142796241582202318594054282824628773054674219867494217362234905145926868098813535731074279136908852321708917820717498425236331311544919154904872417374124836156505073181099816648295423182285049884467594571523928031811699208155289261104789485804597927465911571299701161644785820736015751188667188967007498180445813411400603612861955622836615395213762882635601342527155384024468448941853937809439003005200611623924043557757479343560144147614045498564195198737173256277236439727314823638003232348774414536004582308636596692024181055076015781109695960423305551772516024226848814522586595952549620491414109862582161458577816725906043166492856348056035493468021953325547309143910224600541968927291098390356724049276528215540409863443730831370566742515322130120651241400396652949091404557327071696634849497125326539979478905078432304299416448633970654504952408245495069759170161962822253689355632970705507584802779836117569506552417678525081167304630900639157805354095913229324724223888337457196283833902162807054021600640274009595868136333664234296384646959105746524896561052181346315729762874912635846186018848635479510977787614213318375137657091616324291188613011832453675774864014853998794565089844247552459484096496376356286556227420834500930074427223168767259397242806794102269238548145798017928725310493279753768227652987521143496722679377482214026357388608292726991482976023216068544647430815996858715316347041642655584544503591219139605145986018540955227657401727359052642253449918355267303253156912718104611545935772481808637279548873166397018862831411314953559330130181731917092485875979243436674201510802647701039711200184452052701497322700212121864928427130691250103270823486224559098502497863035454893176049929820440002165568383847316344771627291526579720296365064284581430628390193655526205531972542405630117971767683799525575005883064789395762808103111364212117037010748392416671704673500895297982887551614645985581170879594489650428915364933337058727510914231034115338225809112148936987429982056610346911672563031219326151398917799613463393190309555050715888128694821483452247779691409138987761002972949685436359276641388472578405945428539832882823821040923934597565539345378503941299550206571831151237470808754367849399799507466929273126428104371115904300508573890939754528578627579980194839227194811542621617349086749536095427779778744153783978544148794779576850192857031959619552835317534813480485872762334765025525363930465163978952433569713899215045366161796808111117581426404760645104411065557139292651435333632017696841345499745001480794135625348498777614208539813025786066176191521114462277247297191810002763240825747684133362981267501951159022735878022000716687422086097620807037393134072363846910644289479969581891568024835464849686183074985411407020657926495575912361290604323893625211794507571271759136959876590449952387548410472629980802177152131371309411916647732207231512231170189090763343685105939033039725391581907343638701204672726022637738585008628600632412968454684120550909475607285558930472475088751789666511346935157974983412004549660646992378482991661819011322085435859549592454891592738199393288198321693768431696971502643708923058607271436146664394233088588091211013099429255943751999648537049696166837551167822530599394833019300378048738863567677240458795399541518647710824982011721288881118012766940394773940775947364005614725756840118952996558268957506195586429938444118408297284514286301572381098694029174559001438292013498909802092672696104079929472895820320167889159077710853189049552776429730493343756817460630318371341736555306048720697914010890470510295856807659454452365195741111552504990661268743186146743012062151537784015145166770101418468508466579462069750229613673864454714440434559796046182721079929127672843704591717826035301957086369602188568535353251018106352197428830567782197058732955663025284149589707227933095211470638501435429812332813232001624150841656505498231336857447599392673686944403724924553026368787105560889886683019339558711313100318146946432274622254505261135464326958707699481996219385135250039102893002920605898910245621390942403292436498714615782459389221087970962806541847612357869326758290557894012985247247779958591485228132250262232041956289434244360431042299904421106691168009876264629750795829394624975359392725616213157605702253394791426672038935860833534910953058752261328151347736686766604273880536090134876090054952489932259048675078769668769152348284413742923789509741452541178844859145755933664538293345924873138042419707042183503528894949503247057064689460463019506360824650827751323443608037681171212152067323718626610278089030738415879301377022864373125421091374961768961273961821498333345936879909637779599393514301043582812549135737973744363836145642228389576676851919225316879424416345515144409227434040779635481609560364238278665239932795161491049087689443392690764605212524950894295347539550685167863630482753353763960697761540071444969758897191522338671356224932090274258808796059348716112490939505500223705874103477027950239086428101732083602526894133917103411553410723099585621504245621413174734986970987898641569095259181956933889575738866873153852646157878716313008264587195356459249864284284323485575066733810877120315037777924364335025179577636556709459240905345919337116086968192553730413714163516436505848699587700850337692699132246031945638533668230568150330505896671012581711466109538642471342373010990511081715384223974844535065578275314991015940069611865073083042411925617823519213055144245596343925210600582926608629729561016265248780591088064967778171526924095517991163002338627486340609035020819124538679624566151617431765712997707839772997866969016296751374630005163833088116244264294567513786042717221025678247504927491006152316885305996359719112375898517174900966724128048934168331814209067690210697895130776323116697872196772080194881162203843255303416110918160609996483892557273898512210434307548295591014182159323583694980002335614507453274642549907239585263394714186870498011695476778195681113011918234184436213305080650326368378108829282914257998808362116860849353969054602307953900453758869116823043087883004093219248228488935252572906566371680606057977097298272014453227822721109667625371226094128469579579403919891855943181542135488836832144626692906702310594189756169450738814092660083688252326234563620570240317495936333394028574375517246138230680929333978209324780669855430333747783077056812647392599110403029210051737131020414486183687754024673962020513555448472080867903317848920831416158340462894317426281071110397169890917902320779694032230733059212126026569472599644406863311375167853653304542674870597787408655180905656242417517088635611765747731301511027500639859841979110506575068347614541187615540526466511643739427896175570535595294387315033942967631620196424960213315205298251048371932946057294017847409972789970374820879974340274097621356597900753447718682114730181890506437167938721703025056322323823947739289496093413911200534210559221044030093414986830188331645857384558083579702473780116659032902624397171994703910545119567588300969999950781760481123217134950281679991643890731792056050438781047044661090614149842649462665923385459146865270980220368873646855641709085234335165500090630127001417888048472263181462380959437787558147098850895140294786888560062881054647435444254506149952859662009712604546700306643491609725439978352045502431738847927684698689768775183253798868297012359265589892548725405800352317924732812573459253547520467335925886119000633518753224767280819393026147180218545749027944450500156971213555385767003517503584362012472156840186704057528346392360435958450368038025406521867223865661073903832156393230029276467215094083784863383836358551107922227756399250423027646225993342379935471553379734853274489532150674658254519821503174745153771966482442555375371722586791790822408897490814249979224235719503742521486187858929042794629773317215847550522565142663017049928655361621738511682319952073503030414569571062369854986356505566489483946865815079817721947461067920355014117146943898363808390229607312575288561099198061398777588175004946871529785646235988060763585809458533989036405795718680357104251560128753892624661564377848375808056026533188237135463811029221818842867220298572533304202960445917144375528420399346232153599529152825815105212916354388528989682645723717366120362014596786142434506038146005207848485448602000795624653153258041228021565545742654568681397393560779304789836275274346931287272934166318770607133234543722986186729212983095840986909389300943682698691615070476072175712118903532929950684633449604138977997085883306133113395103464228875941443299634988820058115652382733007705507756352725237735614715564898134139147517423723406373082661834417812839017339577798289026607284257474471300853595634825904862088625291711477569254750792623477050816553107799176150996307315288952671557076072904723461949489132584359354629346103370127866438656316795925462056356430672115540547629393166410779642771774421577808801271848235788441225816879150104409380840568263136083062444654567212260410102964598302039312475974744910933951003577944697271054016659436855181501454508668144235680071805857885762570963261678153146574415893377442555151788844201874171605477784607146803680545191503360731411350638429801497727508354037615874130366984014722665734596150684866942863461836433267986478502123852616667689551227018989021638238226875144188696348244250746792226906492049822164690233409062907877282550384840755389712664623747686003930893218519848603169404123899236803812018112317962347478174822298606393231610909790763739110316562644446335833181273580736345447848406236042790918945035343369502951446869003558942852182658818901404940311628796940633580609379635403194274890658979112248806804883440478713111180945762165887526617096644059115614070251267752504636971269927435398279320036125840668409722668500979235773841304938611711415607135890002048663279341771370048790147017060589725009242023878563246639961515480091153788090509271837782221476777007480018862112862879596363861665757340172993525846798573079971262415311374402444408089758134559515911754670779386407936354517458526068147217435108073382119509305298006094555347932884559351777929847335076020676032009585841438502930021159473884488304322789178170760550045020410862214156580751394169123109850367171297166819015339085132317777936852441593517496055803682518578266416530729280038624644909300901875943865582337815429793048138901333444913167422207689322970141142092376303169807153193245324950967510635056163181526885308869564217441891696569423166243607069986496252192139280022287176441453149200762485104677248090182413560003497218522212731767348660477700297565821453962699566460611162261966227373672837966961675422616334067928085669466938761249342581727104628839840374658502601268414917378564985654900369076631268264809199544725724398197448879518658213144876754945269175391198314738640866379602394179690940042934651059466006462355636168366353616459606486381406863267144491240182834714241315128132023868492301860350902979054307172709587562161176470993957626450346749552164922823675217858777510833065100282465504773170146578172011410655035520146911870570609413810916635466689879608999367615644353768395891771917764268488344281804071304136253390266526315498206981995338893468086545191088463306290045594135145356159507719770297042335443132183819131311209971271203284101852158401880673116277837591874155820487669254545567054827113549536306800205226128065941326157949598523081961323239938060877746217558787909551996529856211305381167710698594643366057797620779824021098132903082064389092115100037032919177175337375703804522279574189594387889076313906736067095230768875055118944028025707028296282225545132600515772924244772151171847371980422149953482073181031399147383004050259222072625298228148388099568462111669603560114688013926383895958957800627853383133497354318550558601284238847467509653984957961832740045654303222423413383725872591401377407413098120532012318861781580347166217808888408166268435336678661613662070484053684535873196176747548686393075459814676667898866860280631118612697762513424971901052616264056056758695633304373958852552700164038164073007666685064996864622215049236020197347957067803479548812549304361645153859148519073417981185943909312361465870464075639113692607818903847028036378652137568503313125297808625669796166174043362167087060669257146760326361746001688451338331396987696619165561948294000163243201593978982446097269464523084755351444756464083972392708584368894633826600932654738261024413896778070411242978584328390187781985149959139701120868173302985092779023624436380942594660236826285173055341151433793181329010454867612714116127237969392554919421288295279209825917290443657181674078291284542930856022349655888381265186566603349362883329282782725720900812212496880094224648273856660744292516459814409792076529496892882771921578754120016626783802859482094635326544817383895300595268015099775306989208026286390283447817836530285198774176849265849181967188128871692419921247953528166753848842478026259910688497568890760969103011250096023406539782201383345909578702380645934353152601531052227042238002753570844803632209791739932509600578731761709011545918883317527218633413361612878818378634457760202499389743557599493359646531079656563425417380339885423324332510900555474174128128136650422647913951997560692347960318994253756656681323283610109423542745014433322273186926655001812549695217741677898808655138537281124035744338870157254383421990241159807975309539373856524312591333344528497609687427862786591458988804754924713977750147040538141083304429040358783010639385023464322012428929187758129050499125950119393808050393081293322500310928763201944261475571892576375300093480818353170086515939227500092683066812629198194655522160547896253359877494691692462455903231129056413231900757070101189473618375956562122924492206929998819680321785619138114992624090159982209362462960810951328375621896854047706240339262690758461511983809982742378645753033511633100073033484846465999827684198870008764295190578693126413511640570144034155800959724540439742831733629497580156170603727147470925772936964797742163588393468138734155298559763291674749024085039436767891795097619555656916662875241876269933649950209489241941862799368656577019399908690685276413650872480172704151568956803848804282678005568812773599078189286831983852303864065117166266890169054846964922898646652889072129682712348344279203007759512585503301077048425512017276362314103791718452922938834253477469124298077511091595925300669511905335677426443138696855446049774885473654816588118613474915500403742350111307610228222675251212064151853599752687426963167234792739999049779821875295702480864474472818775422590730900610703846595842164952218399766244480092710482659021160379627351816450451617215332289224902756623690934399161987653320654779110857183126876971983313140704635448618295623876427608536742268023038906452952377599450289951246297136424224009227596618641922258169491545916410588305887162813472831228737319167506296946448097282994954462224294354223758279788258383423716648544795850862000723049734307914316174077142917432207675242121936976595771557281714422932984763078446973537095063686667206369659218769514214112252664274329093004130445732594181138154271719293856449230861114390972690258053769937081628414825348028162532068432700473877236085990496812643483584323918515808225357935349807031514820005240336847930096467798731582686517728965690755514722425198911796198200898394456617216769649706774712321966994845375945005713989636522912725508282828611330782172017576756222700876118302320366284427905497113711440987072677748547910730206744242680324819354439874912406797721317302594011619608189714945761732127015874300081859201103367156907180514108263136327566829009594924374250640466966658163929604525480653636046809299717530836486800226348802402662350561541702212090839175541348843082254004834163294295838068689233038354457001505557774169555770116165625712440395254542743634679403483971526423343602243335237137344918227854065341895116518289859067148954664190139099591882867908975363829889845796077583182314787437626311600426990163420785450949420470533285780512074612205192311986182909651056042484430335972982444640495550239502031213041138286072202000796715220596307798185537000038759795062156727475089749245623131336811294123136570332883145687420290168334892965701416064239167334844052124743359100982634596090806869085259226156209252455081131664067703245276362613312876844889871196270086274137717169014059426227822673251853175000395278452496214726424714525399542334729424240317756051003444352166830022892151355235308112460696988761363465705606432536992349664882057450612612326246218731492143161103366187257483850926679900934839119160064067262461635353277934319394937497532506719808419514628303136882896307897172347287482792775492349833492253765197981295835906555771603744551807263239478834168569103503176352356219439130443353263001887257745037542578609632966745720427374795368846546352553870009446792948414434219129477967083597530972628308822751413054521237230685473709932816877519949835274378097732164082715008069180144229234577582138629311152638456468300811887066225499268049130454440435662027446780122746823692159404109366160645130247165200785791216971152487261834852557154734314741966962586827521697687181027130205947148110326601529072078118328567971424768404341515028364985166213553040060744218437383416855284964843683614332744481442676925464436486677568654567463755936097863713048560520351606088358888996184855060805271361773185668040576432437306889219226239144178473178821461270030109431953133876673381323864958703308089699489010362422614237117645461455876571555551537521770829241481012432359196814201207870511290521050410075174519389304873925542936654962507507102073159214102160641977107631356981027177906200094998917383124924645437089633109175288407334654770923872170460091437063934000874256131592801862624210489958409583052231804882302705686711330963642271584506512353271121858569301133372474682870087664445604041032616653445278034238091389377214597388571196580589387201144988331295584984723173481512556224951004947763735462309703845762504165459576918067396693025043330896185126247284188331815695115693456159471355793597576556124305018507521809455892779377348874017711199052177865668306003893726055467764788806194906468419140842447595216539581242458322544737855196561172829442094459707463743990213113860027578261064075202495348539674395548199452387873071554173602801005309222756488493189977586847221622339336805450943066264169669012494434401226501896436817864471321946384930058509430790153984348121668097916742243524266154809072571342491847586725673370112561979074716175375293261471366718133120367240183249177265941722802947067249693412715191510728128047684767475274524804255279420000741680050755328305046649751651037372350148245666859147353576386237278068770995706945435809397786393035302335183073284597517026586309742200194571114214903998705890757044170692857656802357738834535676707158159157178444395425022172652151678612966822130017468024431746170636550643376302071936842479291290708755526191659215210010411389189862477837657403898822597901522382998361266273711713300923239407704721526130776521963617748790829813547081485901436914085032528019639194077213204116358736228727935026978795002074213731595330731342117153322051843550992047331041934433857573424870803424557397544858010517655599080450815089222243123503216054059682034180641990729267646716751084140028535530265892390606849501715235749983069936626509233742781508089575986240232555730017962502337476071524339769852543190478605908028140524002410603505891608664795477262295098021875098913485281157833344905228328593434985920151269513145934379647514786690670868342801530823714443954554617870450004469523468095993571567441507872223026603729835556111319409420893551020593688067169418428075013679427186430359825293824142080189494974971817339663652682737391698638282140228022076975132030657922576106629484722791041057791689535883750311954608045583525938041515849940041197690097705334193408678345481142377082073348695087280847172998125650160721899884275754174991375598927161599943279908475034698463521130291575752124695458092292859825019795136237645018767772830768676778666439010755631128003946138230010035320644376384748712072383599469409049546129703304190023813158135034285283437961935650157662958341281504059822223276010172813498436383888411295416041393517049331545962447324617484333469396118292147969453324644326638087267542366836497945512569176835878586914871535674631475951243059122879245759617823132348725966139201152512980023617155769581235395494307702949209007928201549807998398426700074467939212864181388526987226179166418443422805243549390442598519550140931555463065871089856368634107737812779832155789257630228226471710525143483376617774830492694327526650881292396599067765081066254011011842471789807729924703193305103551206381335924658844505783900896623193980279432702713351947271084302793622064747453612587904633799645046230720390264082002992236443244436726288111093038819669012053360133693050831689209746932757711544348947926325739708409230567400764369531948377871232480482643479061442382393923738682500352912973187294953367617463226271396458084490037049832493998122656467217174209215196186523005524743588962739943723517876830252171128840906758062950114276110624297199150549514239638298852276566127377462321305661276860174345579746213494988443953422379218591408111273732522016765064036005320718947712942966306015777218341071884465043035109844288670658144889148398467102992395118531992870774165197700469284836407764684147362339670216840182444302341449528348140037607417757249301622180069225008565888025636420271541608450934721262029292209338945635121422810141760259154355819517057986941258315994828813351877985935186810256969368374745774546557681591041008798946544263580975646535979048097380613303770123527984180003147025917233623052517676211717636911199075312305142493321088829011319534906374266989524951465814287478084938136865245290235395023405072733953579636829530787626854578678539800589116231232935390535151344263450998404746338834343110275751462000285929395528380262810199520897976757701481545384056025410627174108316633749683592863788100690153743025450937453464424150308436873621024117801156135941632677141729165115243260281108695044716643523162302295252501615719665584812649315517593537413817663383425081641717199094005026597134422519943763143710504530406159999926565990875432475220495587163516345087796898012863231544890405140319759139382640823805164599388285460184324085480979232573069216647024687603739012147435464817631044488274326040635816290020732954340440296326606712951977638060066619470686073717712660490068599650602448782364127486035044662532522064212697832713836624379778363230420226201259982643596027726642237221029054813254570238300250090408133341643076031568738052322537050802092321459859267807539212815662818286616590120899449554640911513629404768067628171902170434451799499609097828496910823301170212975214331182425583687270507971771343513189428210984671181177386112994471036479938795630314110121463843043220255076855094745278947367951623479124198092657387670489623022718272648066294739174484356966032042274727373627112164865612255763269788977067360010595988804205175089526484648210563791524807983169983416187753410921571840107140115625712052697947278692990957344104078424804484331477295081397761751573991278373150903571322311556219754041345350663921240170786672582173798484543763207182269767868247372810409209897205971352001358104026933989924956982912255136039108735386895746313150027890990614188369200237328325175652570905918162450107026224436376167903295175980422323351351264452118353066058616916418162659959874360468693537482635975132700667907309417531419572949311873272143381584254872004124199700801463726467787783915126731562298389025334747600570545841700844661597590812906769052068097745843927883216435916121965978138173109240976067716796981025245082193679818815299439827914481314749761464708248727027856053578024101808192461027333974717946267012998877431515856599847890295184674629748154125876580583247782933350751236165963307040045347064201501225011894825771640365220060725070156272916277956272061422998464284286054447458339044651206758122858158386737283766832506484886962205713125388570808551375777423710557309437987813908091726314518764903185558827080866946474813824140232907262605871225446315870582913243585879066960531760612282395167989278709367394542577297830346949006357764740148867878742269019477557246656006476550612527617256527002436749223746277003143204397107674323502895490733132673958122726241665353399648565799335727419976466297276448224694549305771178834236599545862369064108111915362851291805249283483473218422291500534243001098774316207177241868210141041062000155156604340263016043706528437923698988777590142581517560170409407626146040747232748162390024856212764159085869038967023925684793597771103054912144871736032631712559346573683995695306394660895161311339766469466137985885349416083706732637940829458050096365837821594239980351036973279362438536685837772224839800730482554353772521497780684717552495771991369123134155915120385775125881984143330370761053659565907723073390159693978022324766729836681845565090996723545118187886962582858211001772806296851946075023638756821655938367965006898960505373745905411680686494912825322496340407971959926680930112118534042788962137835547062312834588304047315747957900129584290883604100037905054938204767897183780738398425530946181190227027549918385194490695295843253332680885806125259420647300720876510103802205449568706788099296259320391996441914314155485897217636802988700513804367467427254223168377094274785199751729621265468894196464189290926251041025921650950529710447717520709157614308288320639590124817945360380543599106467437689840620791643699550334939464254752960073381264937149189951844169521098849181736936378010601054440820553533093302050899394054232350462960894616085549830469208872147243544271644031123640901834781374243051713626662251029423444031957461549797438366111045264315909471828082056054809382359660089367184111444636390175780275806826747892178637009464602796906944193452998405954588138327432491742316340835668146985062737008378671800610017782961360706913648188148491734345150166926474970619961013487973096520412278303353480258436874858465946787211567633228461215844805090809149335273960373204869004320936160269527524784367324161292333622087100927855328913940121462365552036990250275243436401540174410274818702739321279871736727546251314533572352393984219203981654254027213962704544715854539432079085141131660450549902328082541529902143484501834055623763639588692731143168476765120498752138698753964694845300413704910430664404074833194311321055902019789450601479227192692931516605272141746422408250147769082544082437864062049087836948124898756466827062699308786355327505932276836016502921951468772463822303064577665242426619433145813449718129416918643102973965323850768394890846233494677368000538731036161320912556727377147786488050072985329519712820278590627784754573675365498341641506717490625212222795493434263655329493080410404105626109714784509379104008821174931468540279046414803324718738805951796106932275178268065371556750516985462116972916399294304093540124948911586943402346152823236744048293556847745253284828444495658023053219359487394224840600837270772069300661530573185076277701975828864072111033194887909938027105923909429297680254368176862669652728127305213133601219926010828671887746337069812489701998162727191464945281509344060629740852685366894487451137312574132195575092697482615330316580579948175516226306216260137026658886194940573958925670922408427850816648113902170257397972213478508465706999339805724316021139086817182090625468831339531483300240281305773279270057547485769797572918266839050696734319178127287264800379635534643491696111989856949887508761888703886836546822454433362014775660112342792730059079976808010441982776441404627028959360914570186181786253878387522981816748890402169832330726265212067679623053870749143057622162413281498686746324064583375667680155705723937666294589795733950831645616707731103208815784825771395396489315856656579899450777874547093902946101318050613618698141045012550171415835508425445556671763103361932465983356470509530121747010555487666368605529593710995176690426564504135776614415317027037259425766000126085220743691165669491510460571380089599473183936417096714384418827682834336693025666309223559612114072253242023331702795109506254060952507363420348752580464410955280162257245065061841315048100061411086902214135770678829754820609408524973049699270997559211483588504691627452656182034900300726374693390466251718225410587827617288878671886239629597679665224384279425786873124359517052124276738984718020091008168311667419557900578916308635976560993946991168046043249325641214093138266040665020253666482533301644131748481306331339776739674582638659038900835737117269995545852996608918208552366345965178515826049557688571063091714524070624349707737997770782713543715432846723262322538274351676041356638280456078013375513042714165470870237393661256095263167530478741333766029293536279101011038945187177167410837444855123789957103179560390005491348313035468526167964764922551946203152815079738391746006785863545704535708836640049592953690628530742236949306792164319623213588528664871989567154378989233791088332431445726962532071165569832689133549933870085250561202794019348907660359207381357912163080134426965775834688677099036751179964793582036806852401187703334485036691940723882138117015250919973834598346863625708396147055706881662813177547386984872207370310130332407033833552012911264083821345491760720958546827827868921869126627314826524763542294788227228697899812171768817177411668085517603566920829082388113152720850274376090391160056304386394244484133189194587742038314450671454116776259806822773750270862805201798250400620350784462515496681893228690553032719139827817859691879254705795938739501679056440109438145504162663005895378353131970652575142414610790282964275097248919490002101172861237666614485305815551991582576504927949709431445190493764982702318281574661657876008176825077532269914859295231779916807911874551184350809802513496565290575257841277220486324800121548085990766818500915542650512337873197366260773605656782153100343706997082478012761201881550285721485515732419041677551208038394178286562061517040313516840150091255839030418387125649247429670309167993727593817979175872583324868882752869086460808424756780550805862898187781477064495174311283518850807693692769755591257121798751971527542257119690278785845077212096700748956420279059354641904110015404428370627732485444487428081373451319987311010572914397470004099740045211140118243108322884288560323764265514970831228522930870938785994713102558983931751666975813376834295773373842901535962232222161910386802642580772765135794788028768902487009370014923971613256933348671744755070486082090009883703445064753184037497570176913016380178624564147782691369013253309316202855524543107413538984058005959875689981060237751425323394412471851079515254701026348218296707287200488786308177293483395615711549589905484955886810068228928279572944267833496195176033724458571435435652297759994179979498345917523404474607737492332564231957934757773362968495184632562244963794368561588381955118236885198979775704595601023818659560869804683288494457722814565127661081069135855203237276855105888053232273535036913082260967457400266995215625788872801475651853847831761252840746401968793172594599210785603813454094491916461625144027927998099953937062800580796166147342739139952780114092998877661265289088516303661045467706364341156167753560509513121092530747086302959932346042489111701784247834440638963557243491490907986614999334357137161951046514057916485171754666490895919218198407318980543780641290238220596431875620616469325477036337723352658874420430868469222382845914646298522167595373512717799370950146002941573779235730871136987337658934295592279183138106462799638961524198616886569598658008956003868663850403369366574190936887024733213258879043161711221141909898692954211111818253745124552483261819920159395510850945317190295931833099490422073395970133888072075034195603933515004477226054025445635533313771242789848227775003580314884836508657339355898081324773168865898830007918543379314258287280133887111942883580060198188942568236518820687588372196874470972129620159344156832936690673549208941272613861188243089533288775796656657274581063076414165354830692794353100040664532675070690661418597606012062742480993162519644084037957983191293210636052990263623296825572969069946036990899546375391502476406240423538964010061263659232588384958172381434428841998606678859600463117183486780117404714393276459660022361705571984052153306062928687227718299185039558923162993538849055072925531014230188398218476485974481719667676175005035734588580268345251903529273611711772834695369967537099542012668148993945674851824347022543732294569416997752031315594454073266391035711424391978490043403192169727956086134819114868095467600429118142466922518210171456732370851393104390721298401627308067622305732624811704758760027631575078569073216385222525545788077630148916654398971877699583462808254026219881956271674968937992865142158196070493045356927876096255290146191043882477494679023259203043912843461772438436450356972276308262235856383468251987915858530588967147564491465170199476754045229242837389739539731635275022923552726430409874553394417616392902262895468843318504176141546529367408524495267271074609138569415637367069854783777022394014786821826805730280777074108358133373706470324111412199603273203559986691061917181924283544444231783792929067894609131970702337407901417948504832351918779008317587559068676209669938748644533688933509214625731110398551497830143848864533837757735386692114694482231622851731782503668952183200819270599784003205104584183636059551403464656712983684803673611793555733497254581410837356858191323487436753261823508451314490393748842220552059678704012786724640476443641635148149905226718141401186388849671599828221921440393415484136439710981033129022865472142619467120293672143707095480271655188213773193298832631301076392809163498593391631842228142406499163070671570572599697904537765686524293887549751120191032239190557869303404904187521219023793189678730761796376872617372581581029085138494419628659005129738163503449834276273631829798726995591821517386643421331012186136940749766749051189726080868888717871644267956329230751419846773491963094045658211249394648696121886341484960521879233116203213988946865848635144505119843324671557449546418255085632990984877545778318542187255959116556147121875114840109836942162890911082296311002029652872064158839460106739947479618302948578340293839902189358394375979926368045822527233128750915349558203452683427220740190211581958860270523133098902716314357733605197979065987027203064492378692315007846181601274613535624014947738389981121974814726649164764457507703935266974173173660761456350437436958103441874688343558415065183113900817131388921537522951231710692367023029072732287208868262840540279573975792164798246444498177037764605401695273648746890025144259627108346779050514201366691427761761077701467275081635709275108142521224154990246209270994839213383677288418178630833455392170680209936331719171971103831031251518315717691314730084762825489092331791172666200285670310606104933450984611013625412012859341757589055413197172602026775272147910959435182219158590215357485801211997034850549709734052259319899652842904236737307069663026766671439477520197155788938366754982257527985784050862619711477619767534385679286018560641090409863122003926065438097160196475924511614392226875950891617474638171861928361364302915489466525499049588901118500895395456082436145999083225021055541853627313799524667716676317392776915737326846603889962777862316175843818032430058348440668100920714481546894863789070168268300744683952778614441412271584475711056514526910933294624288143945290628602223828058562672718573610960395428879282888607453036354373118874051477208336335202188010435469475090995119585086852249259449117560642031979707002895162624527001653715646676636913193478002166575574921776116997631147858671447262668217184120997941044991039612420418131270482517780437888977750067111671158914683021645970603567654279041027321792447350116542275220911308706944834505458011716835487803103860407754196058456912694478908350435483607450066355710181679491095988380676896499557587277332250221630616224842455374837649080352446786545106199460277890360896629606351676940135218621098811090719007709739734963441821878872548966225231941566116797009340531175285638253549808572528413303295844491001595845961987691501889777623130963359435081953432139608654107763010852135075949935982318358058362482387158117956871406462872432731100252374238563219106693296756446402336131233822078456994041625982400787793644429774218153643564435190546058811636386921243213068403487417741450853255340898934507937692203822246482554138491576730890236230828835978384596756805366747569577065625709724612011271354445621139104546901929929588539912028409079961622317160035059748877831325490350942464691183244019285490874942580944070788924451608717845538263891804204296394066118479010339580564564247740805269848097563414444271549971131139518153013762207093113313892338672188583131528093394644034456589924251402355408377484905595100236386049225369065741551779772741369182199283500075438746944134266403465133019321372829844524196794881418760644345349343918292186103681849520916810821358776136973490443624430301274504269848162554934445702939323003629464107267102223604451942172944059796984658232163269287114211150767857627380935130947334036603808225448320404897031936704371924523955948825298544321661040659315637249015608252606228022055261210304514144328222825107663285229618781464205837541081173146355305464907332351635608495896457645304576102670343081359206309061243464351185844602042032721108306381038410540094494587286355911931374299728237116036484333939950069823698817962864859594848344946134192041671110085992895182077968221071714297087280560564760292252097688597138994048414418795514242029609458131707219817281231477284643761431566815627772200349902139844655654301648032452966937864483679652391358424165608240247493094705861712160574251811838159398173020290473262025543985685078922527578904996943692724127526847150271937116065046269563713325730751665034919079110757676174968621733302360033747311519324434130431629217447479589343508538357711325484780866275475592943029882626602926556925968613184447571004102086125683593749006735924660204180915361813083484137410606584462474311645179685235096530346225936787908951897405118709982639466388585473655874603276084870340760494118812154954397950759190000944457923060112588263759999676012470538219815394587509804352091078722751939510868788037807587546862315465697682514886239312217985663269116312468565019480435119710113193306929827847644870150682351229247911318509776558960974601148410562116289029533787453066987233956834413908388540754735285060811676662539507585990494046263862523444967301575187523277821692590783156212770138733890297327007657079865092129024518484097957598246392871317177219687987393472187455927362199984949695512757706569170629630920236338723607633311485583841836685986931568900088498723416781590168040150265766330735229359982544859183154971563600847647156776403109818104870534485172712851352695015524139444934211496681142353837255283264591462865513906722799105784653372422726958816323995265453289871746390897417162969141693617262275530122420224741301873856271857367381747003078083105436670399384295937484954652485535141268923154690651264035530748381637545938816677440403037962894492180186592786937882456337182273840690703845502256839939710851397146129260111771549470338503231887375504062740362055944652793202732336101203673655872269804911231440707495040063455635563760497515268134614958823322302865150796238689613079220479307201376969567863947138786814589532930859366128269978253478739288104507004175159956495144437089061993121366008734264318398257488512100732524630918651321181454754972552990553823360827196050315143755795068637876132316341619807051356107161713004302229707979369765461188391172523357285953272517544260695979032741325810692818993423750041454074065388901662617498803296487291664578158365326533654504291989076194652205731347765759488169331761464787921500244379419441286135523533788218963589684913652523339597376895299763364997048861257552867387541899529264237778012871172583344654766454760924376618424074953602366735878057925569395943615968271243432427559135787595754274533670305749427049537922140073410963273582042173584539850842117589790258385451261981670659132179462522688839254445875770698786094410650782226223376344787724089586190198463230404743236089614558521109309500396475350313653320441802272947732574004481911419234169778340414541149517868151597348156442606656272378657195668410464635681704813207063797535430305260671162317981459061017642041859926039199829477380708113606801832109116929428914514565408707368426202393637938546038351555214297139485721449458196550367637726871895124654839016242423077670918364292716057795927927865163360859061874889055616465365240252778181616602422305947280913196488390898084875567722234716856338142994450794856651419007860906042267979688699503277852763501309678659687664851429540464047737340100115640015450891091775217021945922245398626554979250903594312750447575629181306210492949450849627830017758291572425868447432471009589434053494159423184001587321612520280661709187698163435068441426276707333208864491334568294740566827680235713296085577944017461719370897292513906697572460101600331983306378320154617732665267304708010060742898694890729656431417376229136934579913087812275725437080393036354277092662086933918268500320643898789968388517353238835566428808445848541594575437076821912689552419528394395433354227406875193363284691771988372140439089990571177380267700250092842030686386844683775258782060916421388829334681262493623211658506287072088630372583345999612742994724736409959368877563312554527283452256442536855469634173473651761412233437725933643804824675485226415848809331912975993255447194141366334231841835565872214854484659890182627691188666841678257771293062909000203563089597017120934604776181750944089753038352233348735166409885282028771917543271915238989980136410132774213768483650995707743183764415706952119605549209165462350712715999687289762105770222264997676161356759970481308148132325277721737376299111316480032978016066062650966719364760225240651525509073121644873372797019424712779634111724721164104623852669881112363037652902222569743588901675692582905094834615407658483396009204116427143756295746059812193767971234072589163452100018464648737813643342778987999250189628469436878470982988971754850702568209177563190530382365962804854469048350393925301828040438352290782539934495969749043615415518561474382374620399862358494110290255746792733483476515915817030895408428615412870110110722224784728480101839950190951173121038855466389557987945285259917202900794305504606105656808416376361615070744279651214554334415799647293498103565280276824153898310152776645614539960552533526916638586741180380223932258723427990004410356172215493585627193922506717184283293549929275792909774411178956354445500326490035381531425166705417710785893139432868645898485108188325713545150612264693741058614603854312701385998036041962649388592705201009114730550804934524400854631600828912409794486467606886259336889715876022696814044542377482875890912589155898000223991343580924868026766281753067140649618745552997363639551998209286159248112084073386453644609475121858770698920528883729180585243402291367620106446770875143855277360829681667460773951518818466593192513569824141340205208109275092699270929669971065311320465764756724857808029993077796150508665205178122205869403950909501393736732191929814737969412867747684274014944177293916808320556959602991685120769811638893720143945382260186188250824140341189719734017372005949645265423669827828602142851567330883885094081110303795285934651797649981715544721780437575081849398846675539659118660898673575166025203086628333347696838055969219426531982820885520134237503078399764085019034313171594998468683512854829256886564706734510315930191619316314106635947490996263854364657795268824932056357244822630034937773807236592076751477716352805878697415326367709976070492779207395226205067575759563091882807575073974101391635161732688438497557603388359065181568396032793549482503290817312900132730885257949035524339557313723061325670385015390540674643231918014349351196653477210370934911251022725787303332308488340048386591035549591542059857760032498489160259181017197000071547670800614617793659747650195117245678857252067466334069396039307488329019098866891868423220018651823054009980237908875697605993259740250058941290743376758420759424534698160121470922345397094992919742248096354653235258436215869513229652505564332201879940946671756545979698610244970661628455858446692788679022170528472032139450167375827294576379112002342083931805988660185432199875924120666737542577854659762143298051971899656260320630617720037045839011804749593859186957498620891973193082490211464476037626730747956348446616729100951404763673208993884315615170762112752821333247073551887992147350996684648781029339009098953020941545256717084266213463235989016490105840228639649293503990975101495205772388934278437987282243100121947453345950046276341227949980514025398215478299964653639562656240517399552037425650435076363355617379339372386292001427000640605728752173593803618703147020880508922032959541469411466090115069350240019970853158978308677098164004002740810894028414838075782138005995282954510297598873065095142070038884558084580462512954874799007791913507095479918127565827035965271523832152315105603838035564674569774186959369452877827294468271184647340041079401454774145939600871145630579139823117912117164755147284980665900879303225783852967617368343787557119912027977425135389663235462845905042175367688191854482271735272518065058195543646009546555049027271632547138878097874422414031447219443232883852635733536665624356424530634306851760139447285370287457196301484548221483659635721008733174210573585358848112596161378756351822837035306441159647330838780977069071961120946973359683177396440172987870055811311268956309405236050365225729938039891013961590776379145133241599135361129913961387715104315824727373667519980386559564327943667897830220415564520566121770462075947363191899687932824364934435536349999494344648923418764921053879952626641264592605776338835976987567701149256483826700436108406337205555763104483743456200519573745564660737792119193670804196069618496760934158273939881536748097173925503147688647127135878092821293813147653994594482966360056027663389334902993235573456710135538266754539257978178147508327827696260386093361017771589248938526489473971809557364097389235876177370664516654601362901326546990726092883500039576191707059802435693285112390076242861173273773968158015007108852055540061522258615206579563125534803294593624618272334446161056102502749860792210905069230559923229194700996047664710838017992846493776970132587116498673046425806942653620604505984060450207788390487706043267438617301392635703434845258754534330853240572756746726777599866533044378532049219249311014554334108326158311400345371180408654112422961125977234965795156287301452233469495525337216709345768107379565702804100916329031099121850513406084372598471560454737490174292772512192624905825138274131645878269609161469932856245010280331137180659588946913533967434706758226960150740894302370210496909438546643125205235690196650208705367263276833729416823479592971061522105778848610391518672079144255399469583927145785423290375306880803881414059004554747497059003620337007543274423867831522861733363477187984786039477425611438626107650065701664799340712892321973782019624470732135579969914282759193248957439756802681249218304819314601299432001566322406739382365137775770538159029599635650996474689490616804672667069969984391777231110886354837394036909361507821291565818847625271799631005866521403998788115048430397201222555292307603697649882579555111386156063810328580796774645318736611203410237525715412704463407427706633744649597575120587275411213188839831649060487669128874087341759308357502696176592785493310133686411779584675626557297444056470699552894995120647064482275355804864378507780851528790773007746192005031276444040179583798766593517965901479579369439288341598806206944513738118220705863307044815519706487505379389016391899177250750095276933263364333228547669662708049700403259621824714214509211937626282250745491571376835007430157761320940907101972211459518997017395777966547980839684524087951226249360171776738292823497893573701332615955088921862226089420580165667229796533486018799750782586213429197890211226208441515850108290757841986940033967219934268550902959521385095356846270323297312929952526079626686756865949011980094041053942179189674214547083099062110955274036714473821162197453563212341542350860947268154812389001959324978010770185710552489121610515340940527583692675110332972210990365762185528282521202164677833268239700145972320135908078101466775417042717951118756993875953127753019244583608221550359522075658088017028266068143084718268142748170498778030468358921660712184195744613185965083352554687978460173177328168612836513978837151445986286594579987672201907046820242519242136013199590181847625911501944534592177792620428767617252778933741542122049560106782699855850538596578979500005689967059266779011410300097986358651192716034377838104704397105155235749994069219493264711654611888876302019364893088126024089874376483735601308263006552762857700149906489500555340832850104055062816908149026148214890796057191739526399924652087491130597718207555420175504056682460809126058172998648773076227641109807332349895907450419885792636574877028518911463758991421509530244139682037157451041050123467441420876731207152979781904507635295769086419449218973518900665683317448252083725886901437471048636910164860889376512567956386146530720776346548180508365707601006298927080954753848434883997961387653535904467254207606670719943460964539714489013475287563376516214863082231537156237824933281136323716744740743571540143284378897548498972105710890943025186700934593949504935879935450074848564001726198392780210349965296402577004570313112580166117594631063546490996503610611704453005219565797815499148439889390387571451514650645217287961435786425294497188991356666689854520736912235020168481367687573627086063247000411189643175130002433774345729322512873332087915698274422297125420716585197192091189097542470604137069835159146178413448281741463914772944964567294324874040508473506427754194048327493403874806315566040349697644449002564891891815841831383310202062692084678793268894857418930398342427470320636584872427562504026036060228453826956704575868869872802231917976218385051272342824644047339764020754639231696559389239622170855101008182413627782809041851126774547212888147239955358317681710090080834928173363109085166407427233484737338486612562920262151517961334385800750998147016235807252815555984216124130474867252700509712416035809140067826032944228989884133749569628212616719092788710880781698209586230149561479517975018174750880731213090102931656452593321014002324288245485493224474222653860128317397684698824907606796387307425502914559902360606711653748437747458879740708349785830981466625575078692661561949596612862534543911529356404696694982771736553362012233840925414847053842207744155031541897987942791199228952830953367281583076040466943533235186178963365952740855228575087732201274979350325742478039258792851963444989396491701415484982976983604703871869052735161694442752885290613285302043706911795984864747153974743113581295232091154494918565453741591835842578727351362585883658748959885507540826929668401972496160964902967511112136513098512575973638251305264116943035578729283555353398736988847920053148100992520696945878786822432948546424009303456566522634657557270287800444899790772516408076184005074113197928295053596928707518038621054839589252351539907359076911773686784693803953659594277161983057104539543661564090241666757619006753803176218969474018233912868698325607470675143801072443488342585734641685924480501828351049159453162177351361799033290633864069194662332998928176294235182717358908734589518528742905144796957291945370200519119767469968400809165492640824005331795286823449336087158211128392324153074518465104812886028049972051404459036724017471057579029622785691936512719608567387621058936630276328745922973029964652136159017080445572464316604459461034422784963210858450085070742904231256855602459876917002871552652300837806278816030408554644657839935570729379954852434473699908121522774485700464147527936836868349315448042362749860292900103829764461075150706784865052881545956874341434574472714668439078991284016782672507234241734957887216949325362317669977604728844166483347193330811400365318191394002288584519622397879407869271180873412923177137407552598487714496601752429663587567447030573234374915827139305062013023730336936197687044944347929163267634397491942536755563086684828358061870071863753962241362294456555024847435185801111439768161051386563249691541836499843724128247781215511228244714781259920673078398990119338400951215337775608715889866357955522845705401271154449342557456117128626088566220555620644798700071965711978686944211772132039335541130245157457328065276672084426638421485123790465662305806179652247958368955271022075794307966149565880762598286434045840676698851121485320419769012144567981232005341943860949807388814438917823758108686558949752289738796174920757192940673772550387029238745726170246514851680057871303078693724231294134576710513187070967421463887126745552906485808829519425597712648598501111592728493525302061541811424304710924703697527219393491776004089950592632401855579649376090422549847992137491903554557400700424127627810109112320836550843701575764700330718574099488756607883606507383074823815955575072239046266939503208368599931682765928953363935313478013851344919071031925597727554039556077321032211912313398908059712367868422724249571378453569802580495085903605120100188719474905968269435122479530788778855266970081981199021790711143190468598028006368769841195231715744606295227380255052517036778318795209902464905008089299846696037829785986470840898454008120493148763418472322776819957955105505996199923395192043105670577291241124944223399388573960306866160145137219791121097683010920106646715166639571441108244739236884660916085997773976020061540684252430464895357654682920172234491232722753792101469830045759728441370650070599017147244079404320827286372318373461249581059937990477923319346796467630687191890486452851228681658803918964249935957696262644895450944383262168898062050241639060797548528933572495333552750818329321503057868439479361549922167062997676581002273871664000196368001873868811651829327485078855474267218496659698708612535918006404052752467612447394596965906177358256290707693549969793786158075610250881151419801596039459583211455888303819108302356398143888875811425195946686831212432095796809729687064797487176528912918784406175352150209785178308769906809162033614956763874162856763925593776936034351064145403823277703844271279228954519143188275010505267985105564522526860874109339350692209285632472569164744591783849561869903018583431384516139784827893845339351580480278366232687273299314295680610560709678465957419507101959271178223831627234126077459207880676619532381292665662584523528460193030284623362060715470601936109735098834704371814340619730378762296838616548378411123198803230360067845313160930113264757516066348973444672519134500071030452277063417566815467879564905433911413081126571607778460222625691077659623595648638530857464695001924202507647136421509674204715485718104726748050413880756987237707984030577984586406745708578318721256638372801714697579971298115063293560575750135556881127426404940956610502123512929618710825413620260319527334138887481712023804651143798760796897135924584416745033464728271211450509496123848286134006520976954383122562698068502590898746449858587772014903893142957587741520786491424871838481931082861219255089542279631266730057988521778484174557908738786951782532419987824788939898870063436027311515721218737979997472867473408537054980212391901291475103386269018622400383102921936200056821939889753548686670131308656489677783170590273977220577373521680267832236688599542813415078722369884073163149096978815007076515847837482648089075913246712022478640297377940748145323566411361782850644173409562100513107335761828432420313175765629134853249270732038199597166608738840469793574304937911193507222367036747674310312718012248572515616322787446115029918821586445893694396577214225574305341516354683537945491606623814860059160701135792110027111563375622152309519178123444089671084279132621924065473706214153461868158500767693761578458472639274534513839459039983370070852997395812863843475167682717814461184120577459603728111266238633187045934265842431379302009393899312245228097889326067910405016906146112199503003427160867278283428359089600082838133913923913395868241981211397576569026771725192607180343968322742632161259333970858361105112764421856790485134981783367780430093672282101090466235102347896132766026560412927453000410441948380407304797740399585253595124087450828366105419170237504535772055784699562770717408136046109295185418356159291440307848866470659059431062628562273077305770783211498429637854790192388355053489176138017413752352982153158801856342154790676598152997954623246990118348159282898049761031802613816151654132753345514145062491402177452542765869762038132362621867713157817880015694195843325779891513363544491411288223213133389162187409899474802380977523254273682948667420038657095745667549324027777206401252720830600200453125344894941066135819469960692339729707942770517850786875587044219802218161599420680888739391244514036492285658703209559945179214168100922630264597792084124636086652036642550917778507600649151687545660019325588212071580037015511297227564269557891740097464817022589222055539219752103250692881311293401885560394938810828056473484607955629347442286637832604356318194499325934235009553907239648511325195955709383779430510953745062271538291795022158257517275745562997773057883082068904989020936583308916147342126938886756410762956459424297760232737806175128717059812164126249630057325907523690452432716208544722916118381122603355842945791280370346222674193314115614386048331389613075784311739266021036364206519617934369587047355918546254831129064220333848590950759918931260821069203757490385156628471286852383878882115227099258491987167110076069578794290328812972632398048780240495822387433805077108597693478741345457958579050264752274637944361694250847978650444284633953839104848571883785285618341409688485012752673509778137148051879703782240194482944878605188501573113752063500925648557857673757084457362752100837747106040902893556066373325067025746193804960940029318677940633116940702498516767584230635452650850770131018895733836790934913379703392728631278814936566971527927614049700299235624569529679901078461727171625166808693837103785094134164387055393356898026991244086370484412655312942755683797137500555964860369863842702861621781731067593894691045608342024641876663361592153777928774351781137471655613388067482530045676294031531413604302543071328255400179613620515060516155607717962324646178251144016586200012236349288486656766660214769539715093689142230542035406228406302544216057562074463495253792445900736938885232792424250345072343701801548295866179715549943159224139394770082669809360459411784448580095684865808661810810439870591000454261764206760416191680364361211389546209314935269285085809420041220750188715430049434106794064914198958704325228526447539115185043506007941487833162756158147944758407521084006443326875450295391784778191127075801541242511788957195482361951073210846093635800006694169563077782212307199226831679095831617245214627332752524121240450486864698335603673385007178899071358144423047426006162693148955984829291747092009325658910152563693668940130197831733683645988930976565613752333966856423038428242265903191541997272279025470098770843290821486983704733750747623174439435376044469617137696835702911852753350444590058563687090682124233024357961568226641377791600315208281212549849569867148049093986264591104123187653307480274997876602936986827919667262995194963936078298515364036707123469782224285975509429528405573096996898563062442132723874302836973782337651586045005298137511367651844302817736064608039943813252848829845380167229130567994733328281555822900377032968803136826406020307643946186839329102135707643729945391518213548240441354546906127091259910352808414720838721996604357805436593813075069822989275834232663136428019113815216227419785779594236185047616504138005813200317797688118398665954966549892764475290052911536850029996931413383936196642376879375275442053967560695545544794710759940041958547792931832983340470992654278869752368884064200910648811402454646661185896027947689832494583458563720821299643182450595291618858131893685888237365070665685213057899108516078264886391357325374524100911044953456747019363621361084985965926822880600018343593474445409471720736376510491220158399160030267224286153838282201242411248129258589692971899980998701916545852005687631395555288929271309456000826850875329147951128824098965182475725802836464462858683753718898930782534309247102706671138266275790937988732894455929737142226856168657129552202511791879487068040921564043410766278119133697828963538027315345993673633503438828816059017328617202330722172148063905063302386420030852525322253912434996872716055623897492038698235555733103236969914026417167250905056012444786838323256860107356353602347396422655613552466822598585792879973799259022643608454565991219932953947136334637566648619091813797917425078908944136169074711596936252252052516369819716297407322138992210066514280032183590020153634278610938218179146825989712568631016813467841523041570807643032764150383299490659826389943750094588412690019959218440998790295005487880782109762760700206154342718822353458286433528115787089575277384140157030653713833245124154384055194354991887161948177495308487568335071479719228259674121720707402429323770586153217557527257464982367027844197747199255550985690546019784138016800467929958528862395466982028224663897637379543200586079799240660928935271423362373156064814511026867617392192600779077118289451604921659114046811125785317077845110078053946432380814174615539075615142085878310046926014431751109139728901476565143130805443468628506452720266020944250629235231177195756238780683396053239677339476241681233385198021242134854597675159624118207963109736605542410665755409333646045354236904258060690404293857923887482639700052447856015997082993044373701529351175543645039393816116040730484920260883983827341946857405380630213938189602388933858372202523157484126049805757343476992098393877919215559803757759153631033551409020663708961478815560044393998759997439362987483155318979226216548245583248404347976495265668740786407124077741694750154084110429940380274585183571945403379068167987069601078567389295161681838781413721154259499905380321190876300110506234963481766131776862151467930761663960151124011356346475763799154884346864003089134365684246349245703439117229973398587673366800141908085287228569084926327347152262392764966492074095254899084935310261616953381273910524883558932849838282570994443214535929069444953530850456724509070683833196290248747253985430939767133320351606266867986442102726869358970259525855213436614945104231556299185431114423220934374346334661449865406657701781829340797583683316362025875744172980866514730926748766862418544769515536574283822769708659572075174143085207356504652174222222345648801682786659873132568266742729257004076278271698622366586352158848701832178134160689801983457090625933131295389911333119574952316687572683511388505315101483585637070408552784390672986082236535635604196742110886534105583411008487033954229335124324768791660423837233740602428806966091569337979268528816724428653352196515811703697214325843915155138556804776124917854101766802940859672220411545696957988523395386966227774588188737823396608163502987081862149890585297751829133073739250796688449358311346551640357823440475455479773063919588153873324205119037296266238431278883938469301511039022079622163690562204124755033593840723718110167828729986822750884495866246311115893836791260256293507146058646902687644673312978952909338494560986829124412991422939436400911748959445663972424203261705236379650608485951702072142023083296169984606329652286106063856627475375436372307112235544970163544640305473918524457937007446591301120180916879290666261128720033378688856347023424409962383327342653534338422130887052605841489241929062600514332527022015698635368800745436149449737375159453958399230614365940489436371430981277083185105799930207731794554663811354211947543191699075608695674480839452818537077049860783006279313367171846138362165092658492482689725446635522885999437781142605530712739102607249008457835298073440722669301691556897913907358846674086093427124424157313095983206268411773380367474821732106669061633305983142498201751168903121617203272134702990586797614717671468367631295317713283082889113945119042705706839623774627736350280065140978382128759946223390770799379637666601601072984893786013179697560143805934749182564753806741407623605696707723307609667972084328591867426772381194211187178815737729589131640366508438557429717502955375885299961950114370352641542061139277138596340901661850990854252028275487740401945874476772720548007607889963845471771208770931044551270039951614529786221656114434645921182025817547030719378242197532116347619558483778614817497192388188812191793227844725956262796872963917153705849007677807696946801301417423443534162954373759050308895841007038891083544671166542108892680359646888315197120581978856372499952790853834539041676032044556634128403325839718615517267252789146696429434282237875806910198812384845646050937175672706017300384087030458040231757057023857718103706545285891061739261411471770145031475506371152428694619735096614755917275027604065807616709452156569951586448461535820123861019502075620455372810016979421198424456349203243347118750623350765514066906242394256635119187052722564833051016415233374750352425361926906304439576962205531041205263295536556314635670992005464060888988604178959604991376236682377252913444796590531304982115725722406879029292425854602965833043807511188278892908622491110126952298357804794628143112499453675361601138346431815349815807777683555331029412180115204562338581285345422581084366791675905992206827882147113345823316944193073470400786118871293430304361554728160545876318077328008535391278154633235215443861112021857611317473285271853865839884649069153689001847317493751077143724053509043091265484773020799027412814372117799172519949855030273192429244257199080230014801955594822431555985595951063673456804038894855217698074574137291887455640892434774785521028607864572675129163434516860664659640549063183184845004955066120012136412824311276497928556989812418189201851968113161547549834375027224218802866877645927949602695042346734441539986809768657109809610681029609436026078680555670328948016159310498913305894877089415515280911447732641912816976066498719730704468865627601546173178154505299599989936169334392334795054619851221302601053955896432693869327198295063397812861961203735408868197825157017308493397226681146358348927635557251361528038184216148836313225680456285554662679106162441448382998111806627645458491976287126774545011435466789939778616798709652137458280793409354749317992066882640465728422130745830591487876202947237225536877796181517775389006140465658788446567129811889256623285001959119737801011677628530004856287405531384067130879851722436314248524965333751821329885395267457451805538916921563551693411427238398984497600643221266328735626900010364506822629588990004558109381017336386009058313273111625306383125798234409735055173728577251338788506048576922282344212860899286932214204282413610346844936306802274329836926635110667615300058038105586276930011795817945812126489079682977500067641973264877017401682438194761590256792661817785542904818057995347105216292509699205584882347974953356641809248174895502521182170717463145228550850200223369286984159547125590974742599415101574203052331731166194067468320191719143644714922333789213758139154314109473982498728896285502003518910775295715499827941985517343252107692266112220951741296318417750071778294474490498775084699657321842728234301842883582648275859806889987523261561647887183329558077969732895015441441937388614931308959825447777752408259001129006716336870624907611670037943926551475084070490233106490939726508919088021852710677545687749096466432209103258691286306440595957337845621544380479316347969045852902773666212739838987794013044498693275207280840044034351183819096680280912069839063947850817277797793025027209986440900522037494031300335064871631956682561691334028402485972766660326358368941550723981920034658096213714262400579667483442835691803986781762455099964309911735892419884641796589930473428961540517504857079753614385518293522838036734707925072912351455079860735184815570035865613601174960913378614915437812250761599368205737490178598916785336499542692921654921471878847615341330244686227152325256463188844932503377640251144839772341715719867573916860613149650683547087840862237961659726714088209210392801594277774546153420026565497183664007287539427491626611517110313770957966944096777830230769881111572553118308772303081392399085137626059371365918958626708658441828156807258150308781516012177906562964418841248593996532533736167668400335305938396670489677494804747813847602072373628967628533432935065084052574525603749460544612920848493344517707835169172369572256794241102251413167471765164246771520948779657682246686016476175100733584578698346689652749674736961393307009184369278662303771233868238509100057138872468833979675619778728449459774400372532536608621090872277927949734163756437161868811659179706885013088192411258442919964001823108085227022834222509410627945625422261552945791135801951480999402322531866031787396102041211108956375218326542559639719332711522064177535398681558026174691582915658661650832941758380863679036066730941480367194096749354704770511632400062741641063569317703064363552610442528362297767835741909256465137751854538759401090820815307482133796059330078032295357090726936211643327549284454695502493134851712773540318393872296452515798792551563846236380058481462597382854126042971964153539799499072777241489001265561091573935297705088557455961518144838923153280602287009269528366683665440232075116527468297004790299047928480944329060006635324609786424378783649563028828744877798658878909037408050238553226148775756390145675988105595571427294530470037508836799035412858783639030808650410853269638880356072093545238441176770697821724132424645117804873450499642700650076954075824293449523721469946207430397255783478304124113090527995060530003254098438197200500182844186752824962955714213433247082818709989471436755191247521908566839679876604314803915895229094672988240629009128003023332367664232521920215688937898250817553460711096013636751541312854401274126463405603139394826074465730942290522612736896498433219825993418410970674592984837289529463205021228451603054299598005869548776470149597193924131993615763435346603160062119677188074459933488200175275853017050026933786860144980150653815846191506011523538843047975224386966925765717229365129594736872933587690419879544521758059579124217716624678019351121535416740692538646517379425491756431188653174634770292413553290732022689892332575937514791928844251165738986755277456992137763611662077176276285930915104536102995435693930044239876252106068592968592714335336193140028120575195268976396914342726908988034281274334792615395643217687969932165886946647694910318060692441865121221657965448271321767168844372825527295735236829893385106256711369314206805022720507053996822856331948755392521688580011185770577796695375199894829554283749492230853462778893657078299116116667728541694567046677548578245927537069765917043263078791984239648290910290824209571164927370404708756177745680664467572922201021906332183784043042249686684830780248839233159146901136111321109171935157878393978066002977854390248461269072787504304704368834097922677691125664854038662453038500133583107358964050051022806949074591397036222229062884202557365800880202435677233266536023875730520116788914628014772152044797719487101114666331915400914623124618097434446930818187950023072233981604947661032508875725297757079871731422923390227650779155862052772652431760354401689717121260970656841036649196996887649089436800292050833792203790738171644617087622877639307680982016469856716383185994360247669599102949566587424001569486134945996744729319387081746317464160905142734867195563775311505092200111250265751654338873762862669524095572063721755983466789885984125058155773273873984485789840309967269882837896900341611294389420129031333067398454165768267853247305858375442975588137282225986399782365585648223164327791115600828586563931079476721456798187902337361319437492191116608532573400505537333150992686209625293719529914553728630619222596770044532467790386658680505153557041045002533252265865462350714223546484101850958650754096469866578170741430557925659597024513688760885781969342343312743076754995467502362523225335062752567835028274311900227098117912962912562262790917809420792513528893937797092041958448311707611270020312669845857119871882167993221033496614487666009170183715769851923831309788648822049143152167413257441338888442608738943331127834211733850323280174739740295338445406456001441179044229498294996466607793615273490369108365029542870569141083565644232360418458726385409913475837815750302461040732651699900773285009930876749212876990567229852381617482738677440313171095416757617766092104184527772319016535565325033380922945095983410771947566225768566108887119066692109256690586889518257148561240884000164918214425046216264791067832353760851996022621106245260643354621224558228134353010558468711237255659633776430982548519581601220189815983793986281551212553408754812417510648461898398828955367799746164870093431287704726430037859332795337604011377882799401928283057463261200777434244071290194675085799242435309583385414259834636192328446319549928760625192372020712813476674695627885899202663804172233509309223235010229304427334068039283419239700998330728965272214149996488405916081117295191706751227335307017099294086515004623655323071775100609789027317863618380728632833116005629799598485592420673240980579019410770533179565591767862409041290574423114330431963829786789315073233906818628070751990988015451752117219410395701650449038256136388603109137929225202032059014684722498509704236102803846589429841304192219331407361404475020373278365158271193298336966859139904330814006298026062086057142973165783321027112716130854804665998249980408115333483499740684862177029252375444852698221720131949849693927210746415267645169589063879269076812617515574322434114271006701597226955295691257788918969777045664622097439536707136233201756157394057207913317772836215398440710584108818917767938834912414046155855950638514755803246351041123048362182639999780454463858718644704308962910704976850239805135034088731575872516691921661126528703344705620275519036800504139038329111799318759298306082334873622184998424170018369579908792044890632170812314501910003996692147806461185524499148272194208418440525227464026245609827608706628874380650516780188320470015284248425083776181897787456989021457068547792717646601811633036107526246539311668586119950218722149766517303829768163626032885795989669154582384474962213486970648322375076521924442217840537320757510872287229258532017299334839961577334675006197077022917589880775179956733976631798843538243374802408496646265535576903748551748385569583790559901323822781518888631727876921520960028670531141756084650897255276946695335800385503013799499546927889656636450065423343909500800785266592665699149972960433673266954483017158169775700452272796580388103567034881932910475007388068464686339021660999589688921049712344977305167012700542527497269622046947710527466146732241356620642990880449260883451581989440421846609527138561528090349970987472748390292492469519049572920740971242887902156629596953222925011960366963227085153895960182383352921200223081584379368611732721647979382833027824737538305291020686227614993818908770539335933319400819806491322166414163380020246508042979115555849122535923083320898724069056742064342199411491270082206846102192542786837085440743428991018050849532024751749269466507289052449979834216243500899031763012733356940993258366908290605777717505819644286067366853493309210212181846120055055762730043498435167528365135451425956159273646099337504816736166279063023050111423038499265741618005031538071586985874753836420886842520902268341803387086683738479992482722327023871086747468943291110793336865353759648054932026901725887781303350955241200993759601620422833649956238614489871859249914901489678394330984129902828919126597362309279235050879681348863730115179259946983166520159160653468900152448753360968697497263241600650794754953179805901211195174534827726093077714247638235525657777583957094210232582578346889134846021800583061654969861780317010961723324348415393215697834472775435208140607361365833540096225914181921246450988857631617522020204892860252917597214682056486513877662322332049782910111412896248568830797817525105775068745298042044765762711923868125510566584078820571506605131397567814716048177408900203080596628005279869484387004121334683590043924992377001370052893729019517605886973175588764856811434403878870996771430314105684940214055658164464830987659018954611163325952687980154913701192238340977381816038725742467471726279824293882015673915924324919061517259606000811022950094652732378532685382786744126009967922261536704655614813606761884723515868266330369897126920591741433859762822640295495130517941100097829121664172892839689372760548308017340467603815481071111782103852495252968470494515744725330199830655031217438851472652114528702810982228577754996020191265208783299605834061735886453545869287243878732077755577934769381854543064832606878069570170308883554300095927869677360209411496398329396543531124197489028535258014752867286599865365747685659524270542190028260927033354756230944895420144064401653741025722591157715570664075217254121797582969105291621639751557306783605887629293869868341902994856236024305203512125050862281644863014912897474749604046198210871046959461361512613546683471219632516658131966269723738218382504946014283433445639672902309602305038855202075107211062151207907501984262845666797409299626424637870041376824831903374444413761582060300004175147010419967260708121641930592989460623808405020313698896230658994395528200918763322513687153644136708608708192834135882406031221444636360027189069560954630603685369304821768642736669612042606946842961558964211041331120083774976334812427623501780317934316012020838337572148121023856235573686910951025377264120449139801946934121319761877551607153193755098941340199456669075379544603961526532033797575096672022462423235912842586879951632190426797100342696782104800633306007416801415360776148990118820162454710952508929292853585351300811169962294637672865494979892870310596303293616059162614902719474475449482875271441752218819547130558764829704320238541878026552468612730711467308455274577759946420535915867800689275696614404194375685442942888523663768553177238385966425714830492039644358184768230829789763477784523912151534025119460866881646612850534137048999132964327615109783549926447478316439000432178413744529442596645926252408220912180960561055126433928658230522150481677352271511679144182229963615192293239906165432400604735120745310543691467831653870691110514715187446375849214676418117956236656092177959917278819383510922883074171624464614489596335403906366046248875635809867149331425503551636887277822731495249425997133826858399999752071679235935168238186818664991920127294884888293418853742406480907099942438849072797489026940293377742497521782019458842196104449450702585603162967937315999020171112319660643280736204530071734425388305470969392397661262090019381736646736425030642903155276418822474962910945140164376128846929574044738268761051724487073206050254641435923118878470859841279445503165243626173409183986132294440389683573595319085355845238085476455350356517593661552993634228740483067164223608706306822539915689199588066465496035553062921564092308661271540063141666587578315067280001862765022352277998936018834676144123021551683659685965259247724892158249413410658852645258735774178665589694687917613505462846433294651684948015027607774747480848210357240142253590691595312187893752883618701052955957991172314855493972975549539432325395213038127981797607436967765958774699576672725024212748086331256643260906376736613148192146136041468174732577658490803292932122353063955979147313997368199011914486641629614814965313340117732835627314904782753386568515808893347527080753956190495689695439507935906119552786277462074565159942599210024118526939067335380429497460367023136044154276070622714829245788063077604164508332124483670030374142654460898652136761481343039260825377077084655564742850278687815673772083366682363333314325790553851046759556490972432415734371330058338378482755477999140269848873141724707846452455419897369893355787843907066244858602267837911199293385718019280489388737413401388021127912411611051754592432515159408400501991689538725254701554767148392080329593248110539792692362958732568135053497067754980438841815633948999996516440333691827761113861063126108605487231870040399869425087481763232115090415823099892356985060270308268819220070762746200477598485836452666356520208460696253291131451557802993575791310616799827993556235137889391820112790256274702426101299264957461122397722175760534283389238928818986483409844691271247515553685788911523851714540301463211798400959486178699722118859241224902930566958893604368743309417028212845061389182395480037953957591015642805461006537014497503078635433922265816066890829459247031787672342832286541483597522083346032287416155008659739926654883721347605636795028058196542491209376037392120611500398793260509043236703279565675835521356065837939181247036318225511600366917673583788549215525949355870872812636167934360003955277306046034280419495297238332701565804732431097438116676410555818274580868775802132168781107192950181374342164434435568551049044619313052656650139102287626129781737264430047746027232666482365124924562609433469026497920081736158401038202502871022730541373856195119892500320485933177432487531878469063943745910539890098654773442784217992700075726475775526065460460745157776600301859428044954137742074552956748754652148749539004859968688806616301370065386301646944080487740785076456486624559205806424549012254337092770442558181336482303128176827239478089268740255206882872698369552601871649455317905692486197919690325923597145310205213770452106449188131474689771771930386888918452892431385171112292622796923736989762401359292682930052403583812327665526363757924045041001034343644948697047272560678673436469525984601445370628063268792816622140802453959491200418671607206731902700371348709241072746243524549161122607460117208564941173527432206130224659603323998691585791949506820102356175102464949568643832418537420715984112110999016832381069980713432628207985402465921493163741250402658499426518486071019047549850532730021290177347221072172739452407432013301433671320275471408377697942458022658990594851755871983989953745905236632724696983429859891420830858539180207551697200750016009778475631084375995647846292196539599666186415120809547551384600361726665919328933966115166988979622033484184867171422899211622301321090872427205971700569373144009868175218949164469325110502622611318733277762489966158431547986498080464845115874001176616720647998907109608350562450081324837358120006617243244845620805514635986395978467327302084291977204747480492658602945047014218589620047909580843756217274393484055946096607731075332269411550118849398841196194854647921723980476979938700444665822225782126988711450151602695942204955792237462946942337222941420754217171234350399729983520103707153731671658709138819723619580859220522975907984700393304482510862790034254093305568353798948378423821429411600853940476717144216279865945252213058014777687930265207082587449723900603383726493694553781993328839073627445182430573626810750882963727301648461801566116944222722782927484133801520776190615164935514966858824865548365128129308219653032553967428500080377269624221883278286955982110731435298828824054327680382783011592857165830681109402698485691289031121580296299044642797004883522592710266078834494862523339613552043517129337137079025237541326830882253970367759248798614052474728272099979602838132372085716985560775028724165540934928640928443061696895385285525078589095274429376052883854580521724320916123872368646098964001686192841185969275199779102751011082164655553394655025645930179386548000394523269883259866248241915997991354999126764470956308201403429354538445002590496874008332080779099372693961753561067792869094798577997344430726521938661574975043036186140852475874270590047889603770257799453392660869157703065207758123363526671812638996915540472174885872787223625805466624706223762963554395837992461257006942951240790411719508028604549877305279799400773456590062981523484139459862413315086579328011457163068245368326447505898447072078562394358026878863538828660693501430973729257013421945160080218080230040001256030244708649879986146647148809730763345919150111253118211653818871764184498036768137812102613153678219936846607459294058778209151191574571776501557161744024223560448391349031587335809027877822838173924866538857344026099739311541753429994962288995772212253763344629881140769582893674021788320049599969020659880295683380414989179941003016893686526791333220323383337379977855866753778640024616999789345387794734241510982878129393116975207904434378712043944305148700047087992537088723234350615233856373007267072970648758703788271830318926801125071381816758319784637373551445956128279061059255412416867270298472795814591724926705138960621245182096847044705084656891410506155806760769668628282766528769505359172129543912652564245546866768146883404408440684795205357208098598695467141299929897316035423535421601106792204278500098020630108694448645268946683875639427413033445350977932326809936343798628966334315554925814963563104069084267110244659001545370911531534055823989094771980445839094038427877291769812893177341670783167277289961289206715917089804636825587767174498350122052986844016660526444425702739138720892432217977324477200610983877227824603347078088198616489629005583932085863088882354497133049929212888716735621552815482893945652486008759790733928265140908515354628913754379424281401883190199510897600386779102586895532463154448713271720761289445450892019316271194126287950001470838160686557120164044966727114925643116296274517139216865622358623487331296176671987139685330314397287620782715319600822313062556860111670685633412014756440949912915359174382572834114343620824688395949767794753658935512606274837099726516317362064347884859758855870620925007970061007496610298141375816105594080223994115410364719749354298489823208473890571395189160089646444465986184943260009394843587027328583073987204318079726597805016991539198462750298273546116902343868729263157695182772983506282855606702993671258572383099577204686460269504892323047489845930752426622651520610116881741012933999006015292113316579194806074124347431095050642505510763761234651155693233533625050440691120410465581721920515553045723258156801968224064233603475647044583623248140292136385722493748479429816307610432475723321981884759689926441512112213365483960849463042385676750353364857616851879548948712490851494478683976379485761311239568536943943277848385629811845219479569050656670153858809925914005817763147827233846375702987961181226193926260703214330992473662005581261946013929856825653218010915660682426872481982304949575927325483084873728841058693525033073017387653981352641794215076648856798204680064451552244192631940341757298437677472814447443585427818439470942822163206444667730880626102052251690370398621604050086974427736805782080817107090398766050635089647059886157277768820902146833132879484469794153982303487908527046510646645522234724280778118740272944307143943329050042413912013285183932927406440886989367248505408509844906906155250352115468624306009842182131484097476023986829723256946058431911915345734326343675780980857912671152701965035001082845594010057225353654709523373138411303960739502267549188311508686941609958009022893055232112040516312908113437136277818867797705646661556292140955096271568443962112178474234437102404940788075651222525164830194219889835638939310987039234889216909074490597083912189318568614063640788749296172930768350315943861132586155241942284620867739850178143419034726638736762614754194223947038070408588501743241104388776749715233221874107888060520386383666397977233175453052191539817977530335777166249143855714158918738020862621589327021936078422290511052393310282198901516816220145280203011262136607571255286854214599322048371975304606348382883858261363401547420689077909247143601137751931738627509861492619556411686845430722248539876753095388788775128691102059375576354701896633275833369860168709323879932758809326699650592711266222200600634108376651490848253221637091789316824638062072214038648399555448726676566383294366266942765443723932153912013945426727457957341002350720096835914181882318563211828423684027784655090581560318314049238597470199989554235091213471193861025316967728646250534328954945947885299745644927134457547936703638092166682507041800567455539362530266468761569330003986368406119955484223795043061531957026721795873475923312213798391609355105802786628803795549332488483782538577901467573842297146659753987714326871813475564693791675471486400240346832553627173706578135982602965518394310205547411783496081529753170476618290438742109484302723800395613019150451045210884271263817740301629586418499161825975320238511650795672068242676292635291474809821413368398685501500717280372238111176270172697491194143509126967502514971907893334050483205579476241591058295756690077342197385553702624953211156690541511935859314761082777600123510215631323241199305323792478408494130525431710554901935652451281346879608500645335444374216236211032309788272103930477664282875345364648663617111180386005502084323284567539140800477189067561645325745535590576943505710875512740061085096150361307663721374614976735928403475989168030970469534626716272571696354985359277285800811247275861059562608947532025447093608970038475362988571123464573461251124275961405661800834738161361977188136911335792752537879121205120361206103978085586996779629246937600836919237007533386560602603166200810872955747352948793785389566799911252947719648277661118601108720033916220317426912798376018399241907392442945041230570682513090425641612413353399102347808262113652487806395094123141085426289427319618799326710563375890856419880067992189559391854848963895618666522357504246090622176901340796418064116882271129987183137780540069716947533233068667960532657267090440380380043051094698364505240502695457897521969682895306439324304245308995722174747805620860086913011826821354340179113156010664682527772070332283382806181597111563491602760647521229385681769202032570400587689277980887467119648089669135837790291678975392349103379929310948160174234409447713094398930104152325865048421105073784263479106504184856457864871713101162733773810072515612619195862096793374247917608071008183670162047930844218196453880326877089689338520541209025772036034487832617687215707895627889283214485814163485951623704216883154166749353788439287240207855808214726414054401591785698369607524041200014309716551296909818635970070701374393394496419726314589353225853905705037491810465836803459815383878740258657801681404982154740632279616006238279048995069492259394354848191648717580301173575953083357552795871465143743422243850894302401234097639691692170533679778055212582158457221433703120886335628021065611895760559284451326038918337065276100371643361753143300266159595016346274325995639439962482012113716654085118042500284643771914537669698546539154588101787906826073516691650630524532586984583781844131288539542731437489444566646989973648104565680376847441388312594514786917591732937700493249405715370687818265624230100222045005089236688855824088923331935341056879746692768919583683324196198265449123355743945289856594334083736821341657737218731257365748187978377428257382645755626312767695162330209986269337531908961718255404764794251276753299969809422017351962153968920739781849872190487812067775588228131425910013583510255929320345933292561043318481953604151181375882603190458098412261004999599687670968346794447175019183515704343810700751849936672679239736703307706054366737279821365410892428414909622922661879981507790871834736257367945128666405124581458303650406643506519319273340019611507327488370737747516532355271155544073251505229961492848067381165081797047384972574516764210722525370646950536064147305010716137067867072640849178823529631665854605479262698644949665749371060984167408188562078205666806297337010551745109006360783885019512758853814626290477281971096140989393385892923196533598973475758423607281447530713543312183548976236671110091959687215419746057219107961130932688516712419505729515350722181941467905826772945733449562724259068270056112726462476628065468711291760339392475390996325414880280857161761965361807178558155014646656394533637104214142318536569133912674780311027441998173986851968662412179578856900584208837975072644966004065301412312495441642167811037115775080794659247326742036661170914574226878340771987729188043098947993571044815929566455515728524439546218797389444577949813675805543909230237831551614747130885098365056613259090833885053731341450995686177680973990717101343505615854272121111679403468664668116315101442525078800357705827235272539903720915829978896848882530311295748607893551023754907769297149024575659721170293190867519987895089978462871959345854050390162200126402282898256162163034770087815103041370083469005450112577472088706442479755597808807050858806672463693257064903628145331312333291692424384292503422798246211668367667519403088068026823322011325407782799760772839962079849150461598161355655549046574710609858318361270451881814103421134895025574923994014093110566956564563603261986378302307561969348695526998992520748556701816848653915770374604731343878730777332099152646070718124267328982351047137245545739387478785821140026849828002663779413643613012462591526836781658843548650219737467346040754823345407494600161398298804186751585638588137086096332730879669611341197940718520413265513074198245630933000889843576547659546472122311929833767580043478845334505558857489951902509937636791201439619552410201166102624428569929340735096275198783918266307286215191762735403307466176692962246523064211406127365928847256434029741430293075803664707759946141069007305550262988353183234059659004068633634431786440475615348791096840512197754300295084256793897419068459738771932797357394316604111772425206509641280119273749008177656273696634202313181416954613761224172734136829669535093660546348838336311313198236040842658026714971611312816974937709186930399186803567577907893918794904322722913862695458866441656346347806060535832128855604310377135126943829153907936875153827953690970272357125463220651559518565965652783700805888840060187076081004536948281893735063434974539694620278792402651300095098398420349295858246726378829554151575332028487486061080537383092818281642673956806828017274649792205173644358232190434824801805551279522534114058329815560144342149987585104882829686761580085825208137930808521802452232497721598065427554214234873619675801573629634114917783197510111587781801889519574475159295929432324218476821977071010007734496904530843221582264686795051870589371803045172849002038975135700890120908952894503343275658541257543741879712298075356491940142243620198104920295289797434062000011533643120979975862477174484464570444341508688069175974051869736955321938955367443212984279838281724839233487712964732315965841107051959598405737291929734175234675265917537924711554805725370603378710339189255895812117803314440916051879825034842809395548895914333186718586910341466565968325612080099858710089265366439292538472975425862803342777126378083706452806225114278422686019744333806358657306323427023872529826421551643446641809931249369125976502417477759677864463149104315865933677369501733271912365532116483786850351186125874443157214958609909757421152517224505682275908379483728648043957032265066183908468064543890913890892230709357425959513707630736949014994011520271022765109922171518742293215630425263626917164765423493675568866115721778171400772741978702860642023086024148703141776267912207918598080856954441288638310093924647514481821630187631050959797203240271477635604565901731652593541984467930412845230041976496048464133045974188047199436037776394926765896152671159111368908240939332009487855943902765527667129299617334627653458097999787523038756023547906297540712460768834705255802913739269230329639617132677090288439064492063887392791972958290748815292372307696175866185393825551605148825495786198239834884834229349674399533778916744872992559450323621617599754267092674433763037937419570131494011153621612114354888035536343824999706881884977077265606318649411568205156338490447155998582789935532788943416993934810598004702964248883035450959621172790036577527793347856778672227739882897091000364996928182593750730835062965541289286367154126493687094573812796980254982932994135488925944834807196543210168268080724870979531760750720328617580718141709966473411886702624283306195176483028135621513576252001708512387764963922797326632654264909478006012147466732706621366650256679124313810230984042290851129099618636971929614959050629522749027783672447555060387291521154774094786762311357980902398057033556806650691957063150264673609177553881219454800517527777798997475061849014238379838141154926104623577264007313905998685056175333171120483568373235962478895909740148612362402510005088702757992970626202361030158235466396806333403746151372786817967067721916765599877469493652272624840927022065540178410324873648000405214892541870142243443386382550810559793932887020962445082940823760585299490702564248983214949287614858994382692062612111047444012649179237209396612651251953759488355124740966168494991671584962345070543569378270236207342592696944091045454018396842978155009443777036275806604197684118840259708834313586493312883400265160610344491021800780917072981462893994728401239787893476551761679881245761126004209340177441330405753650942958895054582945014666738038723853667162538335704783102468431670686214337935917884212118924139284248413976846143620335664054403405860129794873315594878228966910204834234817218335296877252296631912064636254834993305910551069015021869587575998863368199954567448722759686034432800324768115157110230856548846493837428908891963011094031662116763362388856511161651658607135006814527807438654811430957981780246157725990319487940755993661283282910480746186881998605298835516953072441057931206848828283427215617374600590101102178366240352050408757660657267142964894292330631238566988216915928904299730201097115034847233786340672068656183097634925708290580804500626148681099670973970296421722359874300250104232459830937475564492683057660467540175946491005007748062768838733637839259984669890026521094178073525741585127287566867549617102625679337476503264723468559635248853973619733360678706873797363385784446306039303531404752635044291679010711858546024812676346303741950783364842396645810981436539176708826011063092514400316487973182095951693587532687424179053577792969464600778068922545590865476841974675592355431122599263258790209826682661873451074480702387290020614214121502848966628870218966597233260850805146607252596197229609690314631401327905949781576109470929510936888928744536585244734143052714534782381795733713767210300382869070523766517643630633362125516575164018825738839401523754936414771526972756362712883002427636607468419594285370199954273643234401931524670936201895352292352515032891146947926019904100794143497658445500828859205363704423670055537918002871367167350456896438690494837211046956296004147163680786726274574931170868306634401988538486925919545177372758115876486285439158045615771786680610237744408587980270476719964866411249881754782480636779342403156149032313578508080837846242422454823677028957172661509141656945403939778601622426098200145475526030908922616229686307528454383370877798398277458569955590398107132459932099320389114937477090440516880167708236893811986694217121077117052334026382805452623521489521207033831452697885358129626394216554682020653946255854419270667338465287781496214105772210332642084497847597094083405413187365477264392544523975989299933918700510807720949820157058726699294675094994791872024197323783410086616000273649870278926323875133533751998936028532334440311460445448582820114776350036572044015373831643354685925299979613378922966328014836956500660095922506312134130447067634740229078325162409952697680264620641501889259388665389821963454857648981282211663199138676962518381415437171038648178119040200573998182060198409671988786088542340820386973134128214807899024876970011568428105528984633794602566988496709424958872571586488072358169835336732883431853710042046320008432828467772478989246406854178404929928800112142075387393772241683458442312233259952272281918732673628571921148109802660035115755459493943344319906080136055262620504422033207118886528707069505685044755060335805271936161415631065454241399228801933605522230976880003380040827533040061376672529248529811624550836045087441080996004912352457591580902374081338937421540008691430504993295170305373812635293351576150010922587895303456699502683244928938951246134002114334108990459236119654971979755880454924312470531808990118861245380127349007612948490794684809498721947084894159473905503366836308846940209901875112201793241913420315055089846233213263218529605502878587717128712411893330888891467807778088857655403018288959321803963837606225144245117155635405166029619459477122622554003951841569378541885294130165777548741803624080826334563276133748248577428100967660590010662554564703248807494447709613335182095700423849407740147457309269547497277872883391774273842933949056430530325390261699703117861365532369816377618536910633168518742172060572324710698861411747881305982245609518062355768468448267801519087924663518046867648759193811623457117829036377950729394527186888970286844462806078058958546666498782034530423722559087350289198181014490340283070820385728488508845901201081375122027794249199835774857352610446979877649138983834648163002517235757474044556135835196906686835449800721253195596266364198315479966060102238592685118612084333325692888475050575132833418206426387646392734869363413484094940072725843256870053757683961334134044925758197672284673347827841620750151174916300712587357110944156356976461332097605153730992469534539544972081294570193457961428454848088909366228182993097293611997126403929655106723923013534873506668794937208059505664928742269228525407866475178628736872951365604459853564966490625939477544612292100990208266865019292951436756688813672543223201343541660464193729050200340218024641823498980065877824142517831056722970882126794223840250622985932399483544120340423871455666886267817470467941267596456256692925040237456388222180951788764279031886962210984743034284606529924081882657995702038117922864080738210908871050644980335717815632724822033978457185960243231416227601246359361792401694740373806070480172854847278097916070536034870224872599107590438470041681291370745597915751746257257722288342693648912300985609889115789438002023942718812954802209646930352428777272624798810119772256989324154876719637741584265051264618092867855685014317947415959980663177915920825652368292155830887523938049278418718096044381896465296637402026116361970850758375203377578563213957361115429845307090833447115467525076167086047969859904715781863881440205598616464867083878759885720748216380327636351393169550876706386370411225798776099627148244435271513653618127073200394691191262451247679371611750437700310161686625147901649263334055791835963142411416915241298439367010204797841701949908847855407723084484760710313718323243154604651795304243288298435503550685024943940256254712479048139989291593383538635552344815689485588684838912280890066099424255994165560509347969026981445157823205048979112938368759184222312495872592600961529288367033507092700318268553483803149003111952658408405018527774404544708219499672925743286332886448189688184132778046718606931577857488810292981368223993864996080148843041549081010707369602120081918770797840545574432116924475575384995259080575821674454390930345841803575033973334322602744525520821917434545202582830290919091398336957272049470458182240312456630904341886595309391027760962266942064267940206438923939161404727616162028330176373452743103421944666053573497114878747167629505364436854129917447490230841470467636553840527534768901151968946838052649906661704288036997521586872421249775311258904743616352351216711960767249999439669448992251715673087313338084183412618255330113559202347386912540251133068407053259058254025615633650995655188174157764023857064587568458650876009184460647395486729678220184704653307582965790188479833251229756957858595956804904865707204730023791913677695653418981541235847793771270599115288287345566334782752981320022430948426504131866834832959033900258591590422864372172790102508402565539858785283153945815851589999368507739903599611279390511814577327162604038757690639087573323063691007536559267926713930072911788127381516478680795637431822791251379667061937737206600811564523048929013832592712877897506596691874256758731600011515397655240740098438198784048320372549274748830003922054933177211444545480638988830782412225490060358937879577832204318414656426397115222699093537923629913908448024266380713448717244234434189334738265513761845836280909276407574013557572469545656830393536847724650184660037493102925998331465702305994852222773006317764659005262362388258487533101077905892665706990517883987746067155528338306519158727892547063762080273202667952541667205450084055380700775195157093514999937132551043412483833965622687436577769515690573950911793047162924225151236948491610378923505289112979260998537667050191895251185667321184330337678260779736016203390247163575495851945474833558909152735128056795857535183799080497422993813102924498421301463426596014780388653202364852208583942824030623660903452802806892503362642760685882971881896816287916304384281621112881420849116508595794788724353148652529474679435223268099278028586300820906024004952133599703723775390185722363468236432149563678181521682645820349295989852643984712663411709368139471466069509373914151561103406020196981565891257351841364578842120638208592602307961543944272475610922378079650666225509252245275561315356452731658078704994766416739060804689378935766265999379882597964980459003858195133582266765008374863610130775094659243726664326908872220891750869506543919220815195251460681399003579579205607139944502320036720037535924638668576747521253572250601415366832864976216927271482628897512179957054998836169835728577297319841714027071151413352872873145054869369382185419062211018792233031722928532546052620760340149276441067561777891286416295759340186350591994895716511267392447969464144296740282981693647993238881266019527276007862982600473742793060640160471524527171024012533287193572564309649829863474105186287032077975948160486981705725047521890647597853150637152895082851426440909605903096156093890883779383462029866242051975179895018133148869565112505137212663364967168644345068855285832682428209650247052239830151416443977192794291277608441693628030970382618629602514981944789799452705666094292356567900910868583757870543058606669673705052024881283306897518307863600082542215054940724572764453652790156701246051963834721862413514784812298320733794167545027832057049896619438249116121597395836426806012287670834323767424987922896551961640466067174508165148416426564463593985014056170885363000920594524023068720490140780745831546530563463000325168196942488824462861441655974684080533019477798838123661906757874373396230041077837100364885991026744375881295232969156176147734172135864609445943551595082644900465862506015580207310754554171771331890024564470281672493599934652487432805789755588334495641964606560016513221298226804931271757508378201687249834920399733553366970232918573287135079348237092052601600885986480765787335292316980987637724303190815137944294897867707105647932985541317338041723485896119553758510662148146305783111204313826700901469693210766998518250043538453520140332689927496728338196064087298839849854770088129452109208593010623741957038492221286922039176677109863368947993527499666134408075304387068412701890578810553329691719229366867946150155876032496389139327101268463979028103427584762029885253337586139956870609271603289982620015295722251835217648417920686765733019555822690700585244640570014266467999492963622734999578402380617060082196303058443850194862019883134630133074656180095781378577711090553347974440722967195543741485337579308304251052264100095109636395988871936334842255981848529292102279353539751134307184923915692474733277901225848810694175818400424636881344370367098521644151499991950141963453681606518246371835129478813709877867849478721845461148324430063408908208309071339607854573629283355819229815038071102275124460018998768347482000802357528178542297615512215807615543948479004936846211439208245697181557863710902927464903064944647284741432862634836352586830720373017424524819143380191393446641492638697709751812090827709531898081262395098129106065023590638091396387963472367819168194455768380839347348544695929233695510219023588457099848822110073632498002330085364061150196205235389384376100369354111661157325027642274670748692107809167504687033467878440056837201328236615661040724702124647802741380018145740243691064360504731136634324332278798832636097148034201920338776642896855040068517322203756894475983193007173079093038098263243806485440047254295190548481771657918152413232804602783705319894803688121659304061247376353772658506560388112283184391470273642551043776937578188141399698237149294309883443013921238342906902670530780703996958023151440445994578450843062170288843791136270016810244707347718377496329950436810420549292197989677206376556657055314908768250349208539953450151201269093784121903061744377956488980347168344338016151223387652772656407766721022536874704312233729399689778152015043180627115173454698799149683579568000778859053321951545886722672539194495239074997511960979184308515735484539510491919331132622089386272586233184900524480840539142179452787590587441718983482967215905239461714031814062053366730542235775382740791109669304493383328914002882626191219774754181931958146783796934297318167919006921025883476512923598898229516889815698191521746488839529252876016819982680238549695870941858181976374326944752418735162316366884052043033254923078072748260507062807133247353635855069198656198412924669566366624694536969783193490412150235023351192981007831555326336040843806814030523927127208219762142884817568133816073132986676911644535429479824272911500303352828708003910969525676006243341951026419703918132861133544888095347216734956893622993381702247945066102388026372077874585788425868892552402089328131417113902058691638651351396523763900055857271225299809323315433384019748862205377094650722465208547164221117829430496379535827353207807279773854195799481832125436522852545644947388697683333090691905609937424613801515477688653942974333641920203614202566809148841243717688000201997065118537165491691546549606125248113827260679274444699035142405436343809497242282153970356423602682828995293626701014147493211455699197007047193503882887988171479680250642015729712944773345005493121100523827471589515520400178806685158187521323296896736212996288981692599005653691909236560695526089594717833188489162641948836481032560250452245817453389301515772052393435576649745976820414913339767601582146901088887139806037645305882685265374574279468117665569277572708560544204535555399892434893168949056348525926420053907274268403032540722472020725915138759532557727671921730717470428584240392541405260590509200405869811043047951201226808000992935016225823081218146459824784384263788741463628353015341105170212562253932136734185452849653924227465501183626675065922578849557314725610348920613594148921856238141521006022416298548579816191306254882558545518689390153588221576339085583530961756560750234236692417056171614366153446368676006557298205738336354426518674476501117952021507958393801540143219429050411031397795426824850542576306571621195682116365355285218520839177832491140303511204468241106925073793423031697438440762478041392677572821408359318903737644882886638071581950885195920427337983842134952682381874334627701759166714825413435033796666213921346516806440824333518993900628279933891153517521281022253892676117814173495499065244130993810891485814216750544844462443878442034113145951839600794131724980086212597412210144553044706413291606166420488186790689729331068812263702548854572906256056880940967611115137515426607327756281124524097800205418699479190609455081976108250068153823197799030799207857333150987348908111811752941475243648900857572257834756857669929925118381156519963854190610298060517782144030907268245445387124476652260664908029595179502600162377575717754867029526314052520691424265022498941906510786345003541393567563368441197008895859252323786874601668375725719776813861826499856056714421977543586952636175800950998133856586723535181357097199081681502265633469518701531347404901491762086919963451521287584175094464423202556914492517063081047689556117148501697198180303249234871274603562319883219769493982646108651585855000151153650428614957396267444548193854841235664805489650473240096068686269419006134968605645233018972098488906391150858416370311619705827791321462371667687791889383943832708898747715117517889825922485650401678457957263507134615582622345890813512564024033000221187419291688866845262350199994029965580048420012943472939780052517624697322466451479550433004538946763420636650935500916964320511508192098382031930188149777575109676998201673829230208070746283324162438631251081559438605921688719818001773415265858932753651660028910130839802766825158526885462578591579753568006199953030025588958749518131131671389591898622386621363338720044385384662534007591856841701346833726212962076134890738762402672175727407779810509580740282126688220211900158699595875489073357214332692306868005697465391664046678806212226153143534743953446474342490323399791306130481961708615755436810111677178973277195216177078322695728117036539433422242188117674637479492634698372410337866417151863736448996163321016094104716625344810022152913764358731183862811601479976917220306206802767122563819455668371322993365165954904833139440790195676218014788893359724200697257003057878690646924503765320804312351862001853980364438884978725327210103747636152212454273741999437615798792007404659743407642967901103716432329828048822158036732218917516876942043572280925432037702759186140646006730077440988274501974074002811123123254696133825106806203897419005571242969694492749546850789707023142681655749975575404119136224633026135350193227598279778421441641820836426576701872835420316311582016792459832257577184054602067262957657126874769078180926168183310704365933338375188757568864731863427298221085513384351179177793947743712186230016884846275025155119096586274003413148971703384638715341904473344149758804502654853453285276502210685614782593265128006361919711067220043788761544404733712308353789159953674676764146098246054987586133472197124158046161195958039019692436587194065805578475722011251453943915200049840113973946444652081709695932037100325780848135281285383997022747230153118307553092585414675449964536603033145292539367877093675382438520535540514700510828144166038195419552882631524785627538875418589130645337172772566158778053376679569172732335149430570000284352067999908887741424998523405467127015881286210891604718994361155871097896878314003648770179098697712983321706284925263797448538985546070554861964907672769708123568706485780350072294829264370971834168092434204662808964162212817912133663982922665578329070300222718242712779069503803629811150381438053382229052787238121446007983409905323229864292615517754400037785202933872703136432864567182602109037064692614902282743716628331035831221765888781909523680995436999707370407217028333753283062435505776084152808798139316496209215774853712009095317831310109995998031524104549042849894887596723011603486688783853189595334806210906296631448614683024957208105419118939761401937462357988024812883776745838915343286512256880315778455062158992429714807717219980952117437919447719664964910581793356103306749492850998337797652005103500284013961773125988985877178015143041067743120476587551566337471570938065457558838605857538841331509285957771347772429353597338645852869161570147407647648476094251971253787755657695927081664220549413391182653465530535546020805792070912234143208909887510141668347105790637140265834785187387726827204969058469146062966682841313026894357674465368634456969715095082963892663758431467452916929426337496961702471072471566557474327799382199574459094666004781037216224071589531728438297654975045042744368996617644609091974949643618343361912734245457548058203356033701324384536362752163647697826807762094776104711207458355552154179900776112245357383951453163067150059820999495615289964773502016625189524780533974867432575566433979916890668169099681126255862461760482882614581304345444461509305642224438035056916053817913569325136029797089623119680067326501023580209218237731609176285346540714073715256044648087736182813417550053911158843335959381032279599636228185480889403043487880799282465358277572327346338290617208767401380369274565149880256876377363312671409801655607024878832186786985930868130407931600142440913548933800253445180913319647500475818462046603927519381778050665219012004349450140774789309624740336300600551234012327839062984480073371987441357293243612510752311311602140743347169193873892260135254049436746155152307216827895591666800062022160177585214263890902685318236193857877372029025645880128930428995647996825209720736987221208904360487535324274845672008223913454235247279977106823270474196025922620342154411774039989502874121943067756620183350319215663278928875167002535754642331680063892121177381014495713430834907394664869828769556276985763361755117595925324482192885423448216328846706836298876142109702872629010413731333830113669104001121653352684715587193297545262479596424219131224147721505237012211003397091173929741652290827152731065081586005537472169657451246233582993290004497500708176601241604133833459174098805749357332839898636046908196123355488437175072370161159099943196964990839491655439999435363699554897210917215736237427019865235691861760490320376082185588711687807541653899749743739974673554083465194234458266618241403315244187816493354439569641866941574122816998363916620733679740067921820238357607191758904281087030184459424891842656825554990873438448333962737991404641557772646546152367491847456542714247864408732899992570392586283835473595274576835570379373386578667484104225181542924557891549274462819011601998453378432635767624365284735691411685453462249402075056820464496768892667786656122709379568260830954425380772293689728615294576960860602297408028430616355206083595859539645516761532070038135098669191855511132243715316937957698005894480690068703062957130322803887225892233682468586875988487478521935059928826390461685923665790470138610198373042625063963651168347710341978321541988582708143185152769878191443569428150053031456648840653083840805490824266884787622196977141285265564350528783751517381805212591557492275511307990668618074660750100821195285421566670382922363675851294364123814617473449918589141567815976845425479610117688320441834967693710873222606170440451349433063661624067169862970951763002298898415649245389146101058277093607374070729630998885105469924444669889258000754342856406907583963484813294211767639822518348204782156886839543075516929934495900609998906229970543024444328933773896296060681773696723803016527344542343382683113263392956694308056844413478838622691787026195324814016727764926112964083950120072339107342208557804803048573183653473431537081211892098492627977143940418312258179130432201064424436913722484323347053761946530507258872599438842283850542994870878711555041963940311834254639491871457674513664975581515105116056885727359710169877040739289698202615215881576481391489595227343523322455898164269543545557371949273339628213899442359759863219264378352666257752155297654369680583863278003786071417073814864604845712513467927445476769005735434680183902787665054408061393988698808918437133990534630305304978386176560362376594421404929341991841804664895319573808442740640530229341192426885042756410070827460604986997170788064878825710328367688866753115932939731256937767117278728936863604383176565553916831686159688777051366521303570378455202776163311593210141696937424062738311742680094650836166057976195106406177627888738595333122637527112437116351971213344278725258417004214789809510544695616587361304767406903972403581177663572035105205890468657374768617557561958288152154050455616485081675989890106850989816041961914979054117461637832895810928719688143382994682336968097107696906920528222617558257996996531585611261763486376990576624423973933010301235488189313651224006553881019897897137441769830914493628246068965035768679357428847701514540618079527121149672096316471883489927302891344794436528039823660652264263082581701076818125708789974399908758930564643565077005053386838980840358866246834296743086205937814669353299903993230953165908314127074210944299258858246521040783743895323529259431196538225069175521436830705850095591684642985714171008392564020986771261837654153108720714551137315005865462583103588509577119816628258411241982721615289829209418761606683296266052226838718958765153431932397226926761872071969218283423634664385331351090580922082468980043034661456366991033107850992877782713541065235875046914167364090024740495536051363650826670845150586923226323339828265998508074301198326052410069077200649552850184330079186992874960288473855668879677991814951073710521436963624702451205253348659382325404314833103400248993064305748753624511220875785981566183145856394370283964327701466606781739920790604950488250030595398758471344019877035828676034327173159361563883060962784381240719281440906243820607775633439365571058040619747838507625744420448882774581190262020007698300927127779592536977166965836038830702214744439151124928857103048654513141724287554848985503130166688458080952296737420053835536091900224995929115220717566084829318812607088614453553793757067807258283401800495170710496807647774839344581300517686224236178931656055319769951725597436044352422845028272998516863336444538225617731399484170143931591779250670640675048210146425575345935958309502727809211554812977755469191920488354392178470842627575507594560990663597428450647643311020664620383461088007875887243942229527865288727381362387488615921658027622475870437602589175356657437512452358825911531096081921051377709183735943625391824304912090980475851128658922998680163893845683476857642935641014091605118477639738066150120564137760650555242049047494603962200559776046153195054950566389674970101811338934815703971419332226616592707894490408600644048973523922254415056108374655947023411174135672910018239218575221911886514815467896683787800702800380393027364115686851751313087061777611900040830709338604656776130655678396675910186722840481516285864457722237671341813702307981218373457148974741906923078468234317474165193207588787604375084050681487441334748958451618863333174620955493140457322565286715447505713944944770510400504212391312047183033300151962477853913021323566599997071363228111210890619803723929579827872439839592034843610793080822663731785290807372441951667119430125627800178331532405851768929013791270916675274199168365133735222676451286264936073109262938284470342591154482796263295200632251232091543537763489842895093641061603746372393779232064310748487263572806543982017405757880997214800822028445010891996694031918989206896948852069151745458362618925608863902696757575077387019354020842086383991360259102704597459639003342061892341743064080685513612351697343276850678110457306401298655382996332526224061244715108624823644181311672704043368029228907108796884331058065500897931828181309148708993560837603723678131912650971937829888341472190057134584817301764054387340023380603677757518160245482807969320058669488952491664470194979793524484384349602104929613872116717541393473953723607277067277094750479471301121475924644135312447399622385406795296282302120390221180312599980505257378209620294573062846371220667742263869306405033701605521796594097829086320441074736757947380399793518008721706550334134373431701843499965750698023148587087917964033508967277993556836134510443911847200541887124788338688278380531388666766953734870837457789572993347944055975124983472403324686415086443671261148825029533826141254661853808134388299239660030633039287805524772900767742028808257882656291195915389126910681375642735683240239817498502927590958467673803095255649140800661554363765273551408484439238043025115910684602447097363100443869405706870203225880656430517893139729127195543958171342018899654280743487989883584752522178467063301535057373839681178631751862721806408711964805032396378379634050362550262284097889715802085494530473842614952955321320710434407759810797698385011727829883098024648557987452481791758055602080676156096317345280936574884667465670996774447972744427254166549077793814375865950195447546246230702397950984051530252389497617918796765541039890168176865148735191240489515111664832129307585221034763942046867710629751809736110186956497950636107257443705067845402723605089894460186115831641328079502251072126256853502515169671525076999276077671385096715473813054391227114203143426975159658504999829474796334008302081226668456867637514292745186449610199401776994199464952670823550565876210491024615319382891719172740773487983399433346186128067938428540187129675417322163117795638083947723134774742184907403288269088682288976249547236174562982123576940548266330079929057403508621641149520884839326717085169586087001694390947744670501720666723504121076271811648187509928926874553236081451715991855823582392399519894457942657331079493470060289243658934017199553685485784776490958014612701195115473277454245009978348452979870133977675517675016102044627548929523826070275623934725564747531589602350708898179265676303072915353929986868348597173470443874064675979235963113086665893682561605721973168004267063217406859026505099262937435466528393637549347141638743176046687137031756730261018241087756202490845497863663002483598999171096634343858192205461793627554369128886506625794490946413061039711084829637066468543048904160151255704517138754141023497081794077818336604021977191911892382310881244261068083413510599160428124928832686478504245892004006228727701732672839809331140782680422322290838330597862600402824254365293864696053391546818336192472466120504183078965635338298525960755626715615297298312167494574483362878367300753020335352294882850132715089347591558943366075934451908222973013322214866315027979898735912749921066247463343900410446344695118036448930291843681274247533150781754211943295372657602133483094684930676633627768278015980773890671420206997233549215410647739201625845936981626455274290479527411004609339010291458389196210294514913167408842058171097666660931511091058602011527103571066972436951849001811511543673556513117275938465443718625043866477749542602512163245280513047292106696683643143278651359451469026902897399051558505259566856688660135644519081684055523658941331436151641373637338332851029673416504357505652814103965592662345608734582548534306705778938417728526711533399530530320427777411293947905698522629061881578214466380272902655933193424804528398155228702525065297917223611021236630870057893405633844480592241494130908872806832912106381474050408209760590316029793379923325487480321030462860755253874863473656402313847071655964503898084109333603879608097754559771481412242626792340323653735629726239138301240695185213574717144108600440420081691746123205511317415964461590403717866551856145259471472345757055211313225334371500862794977740691059256685496886701339866943769682520359626600905721734549275372228647304422113841898540713158451054577365726750698668898044790376172976971165322383546627794587459754583708126760195813107849900672401991039071088259681606898070019722066791306276749331880939987412445403996708778280393280501489725706691329048960069556479725742329524618378242977164238956153060312481377421058427651274815349675087170787617778160233030437809926645734751130623718269456026130088426176220722407412120455427923976637324068455564942120809377751050627339772739760168337158903801366011760901561562946420510753759481518879689650761173389420488162871985859121430520287080173971293837911973482434000463148809344763176092891081381752853370455258358916771689818453665937817521670654815002328269404917180590881401535441754372637525983936113350228974390760287638031300207096786219807042313420961772048688879559657074434180951050965972833592951497048624297625746428177730861234880089775683147320389068674187357628809512945571351299895374418835161198051077704564237598291775264846418106731140238290083548085268575147295877040620321369235357710771516042982241878316562000918948134211387376999559723242988938349349484988623443949324972769479793028638743310437127098471698505281979155495400112565870867101536947937108619240954315644398670490264508060192133631959704701730343421305442300664945083958727601628425585066557949764744103451185187603052048445625540029680647481584268931463970263823867196751590460548589606872042650076652262556327465084840935459140761898274273019494022884852768841139649675700045925797841662571617703816826753620666013506191481153572243647245087481549199108813071349894347437225663071128768874966483716089294579565679425906841251241504315361544500933232367530091295244801902666521757938747111636901507510715590551123501395767912087277097736139635999088861488249246586804441529569433338776955364784427067653984635742520611942544381081657065399414427394250730663750390533287958759344252652428259807559500248410705030337929972133154705441209011361647988376762963753564694470248116062294654024406947486595748925460987558506060539790779573328725233169264974334800271145891608439158373449163067434667695615268155391722184131280374387432776535213211725290224969659125917183751460424090647147129913153209428535717527557901667695298646604152902330470544841134886617425224789513358516251007292797750782935653670420954210314352006875512366842417454987585278956500125594498072780223988555518132435927332791838659337443809306167093614039860684090050093929946073380173929916336146697304870987513506387143818946747554411031549356954529439433567529093151369066678106221012828908974773830536817338691500347860765451453649286545481890173218091868031298366742161448944467301982152649579283148901873098448524429810797135624721210612690219208830912014549002275232771651600209260247415863309092484042506132101451310048064929419389891265113625303757010047336644600724881639889941818309002632948048460056539632278134122395387752456289705989883542680153847663681340046685908666225266261717466630571242918352420937303899443674094529912303770156019205208004358438784303432018403395253379417786407793225646942504980799993846605729751033867033780036238601057135329634579567116607432986552252159226289025664645645336491874920377115254404318930073368728186631212432752884283956606975123406797919275971264158490218935757336081479205030084763783878106323336307464748403124230979345798324735770555489752761011064848801416017366323684896934787078810171200248729902456425620893387462053425383373692837584014266912088669364767438855616121952434926090676764866618363717836783529889834449423387576986936294101803255190177364180594132817693784025017740746847730155505209538200177091647033951847242508364739181078949013760267677401929698150814803042767530059980334618793616193158494531225909608091629492218142850210394904861226746546284890230224488534381314576939121580265279166539473381309115397688877549400424652192605232928180217072928946957359779787717080210355991159044314109842138070058461375942472773844436105467935742478071231023021324907769183638360933838509599401863655176242158593879275636698981951182930944236500521179012607187679900990850017015431023601677534263305541465789353522946914239488702112951770544408763216003785429922150541628933421451930366779984534259810642482317283057229547706112956960499724603496270071057291737929059332525452022683193163371237374740563347344017044585910743055486634354254910938030045635199776790020291800212147234205014085220893070455126740741133774685563737781119949350905465943206055601215853165026220869801875014804412061000266628926350578640285549515225954702904180435242316674689235348435596462710100536454611807677287536349147222763067220662430649610003624434909347196624677222938329793154994394797355962182245170299447067125104164633280030451367617780193369263788519254930337121409110952950423749328577902981165177407213629253008142309987892022474271900295256882429990437262376711734332421341445206997420597362083185238625836256594172563158959395455546800976451282392271104283399836816368693068983308344330679072944436188791863738594170149279705320360056487329950993001860360594510566902266247440285017212439548646226959168517104155382526933628396572741279912251302646598165748414582818102536682212864846780943411227748557505079651987163769034404195630662564798244640893869751489867337341256634084066986592110612556924793304419640151680754649591944173799545172247168201006150647997081859201526919317064023542577669652496374165218145001204685238444637908531976866532786863470565120723179433898030606612498897764174662759397422682187682520481323674391679615253113723192561891627507978040204131849854037062118842460475808374558114270811960349306646960605454413341926353254336717829856026186090352878992619719255957581945755310221521732126618396636134937738046355478959125378721309647734692511622398047722733613452488192135437928994138181871523927478040192641530909615183890689736194802937413989273897941240183200168616013301222314368372781327681131588544439142712341668936189576659333125704497804787056450173282412600081137096917976159081156202529600356263379541894085177550443206312210461144912336730402448665414259164208704187410537818334241640605721102175763002336810252503729962493852354295648271440761555405541389183898561899430099479579634073455548312708065734877971939270578495224164987240953005212599344728691897473377398628137864339792848411049743809323354504577286170207956921162858164322777188230387622213173973741801920295794171973755616993094902394077506722628854669016004145076229243264319884468225994726357940424226333457527465881352210145661464405506962800435011385253328034000939993380104181677256256631521397729502745123157795884894678671241084580904582869141008245774457799577944622352456103783368354994668136352533686170234716544517010491159892704204212903962288666732487210536960359093730008440220861862891229259387166704180867571043770062284734405622788217963518926707229045460442440857956702038910493949652235858333341237102224279381759397150220737638535212080492050443413474046146168771415091345798808667562413414161774020372438191238455339935777653622748343305150816758766395063326396617112023872830148645123436576442764433212518137675449455954575878539560021282312974157511804958470545054709319700797271870441266784417482201878779078833658272076168078317526207029574214242553754225241632756639225829175431004819154287726000511898641887268144902200193326175800747233380267855269732005420166229765317390877580925120739921319673116295978384318061772862641173823894543131427040815991162617739149311178633112291022788815527671443506307673077682777508463139626618998313782154060634963681177959083863099071665536664887954285036892404928654988795870354251401156903900013183986653903696190856851148376376028576676433776986209201532919095589605984839422895658852742209333708050157078751560367368653154341654363371462762041288945738991437109320464576092143534679534386450950636185367084508659376761390456113422250879992664375747574518006373349405107146275139765951767922382807935320295085627007902326632940375536442013868262099861674611605730520024067917335355748049211159836572974334747866770854284520268635569284991200302115093282081781923851621097896974476016964282807810095888285909436534367480168989640616653144372370302990386013180435463055411797516955725791504760075081344691133122620709406077157253656087859068882313279081379122226938757839504072807198164723316280744273192983080862799121638420369015239107519287982349659093288850169967322028571817838817640182155545557745645630308963003231683367524432746946614700232972325442701235762412040342293785554797202251065861487591040407153481483783889687479008428574178778386269738390665993880759388417010313323279509440029250504413422885128516340651131124342419909800135088017147935205592154092074404134128616174561282065214065346040050494803380197879501185341187468542111546174474209187526146296420322682704036606760312300388972184494947119353017131349199748942393264412178671519917434744353030600301371295295962803198994789510337183870234887120666923093337533478182041874243707024611633007676181456501427346015703092232960869333072591639848315754739669502566561161400488189488679778007334419180502028624161050568201599393838585018426724304911532961462903879937834484846742709629661838704175398640223400105153859075788372630576501894696212203994843043414551359850203012758264758537901467102256959559000299633047848109866280686450913051237861206601766003614167060523071692429988964798549130892537305611145937178798674297769984603648641516766162970048345547727119874485553296055408964680370548453777168898737783205953345259959257706057635790978341692450665008824835369203811371503687687993726700338496863025839436839383431881939679591974711410332292484775428682922341077643295801813571617005393575797427299700015873966349300034000401537645001652960943415360365203189627634722486258330703916820060067757174967791200279061755185586550428124844124760432579495892385706392601790985577302695490794428931516676920431123426573614720738663733453721703663570229491456763388081572805379041069381397190157493872721756356828644361211447275864897703020594984544876085942015151439449967030235764480415623537918566360076479462777345580514463164061592172726428029891712596579000262803555883975657144996789331089857560255477518654017165664630796342693166357891908923014316856484232928571549502481801476404011852283285545443262754848009332702843647938490960557927692384568052433009045119987572426869671253031943084184727357966927209947567749870991360176031730033136326783196076981746599016771926856859142143587045756313894551887105121327448459927213029924231823578914120799120833418251064436956578309935858369953712741135868583459374080274093809756013724387785047644339941179701116988046651757344647400378067675244932519694240307352261976580874655299475680366418940481854211924757656989954108580790450316356559348861432675673697408123774345499606092773879644588122484860189032316401284813305528562238052796852029291688291383198806994482534608754133459681074126646337996055941367435417486147401894560342435966949799635640480348108076461627739301796695530378331155365014478548310694631024740612392015958071479585316680190255537056775162374650125084801340471811479596061686302914618413762618548159280505377101871160822274946319050727344975289418929379199013316848983637867302407347477380999758065126839434434718720141659389781450773007490845954665239092408872439262159485711796765838266372352887520330407556997908659155303649895810897834163884368606112396175702844063449533199545025500472578119501187671965371733566412267493559394473120059122700397409120927193368203746003453278266634968155873327744459142235462551403397246606676022454035938319554976087743061141495659814789440122968398354367668176705613132668118474637554361152008583238758314962463300424899001089558353367005057061180905786031825969997081619771113314454787156000115074768352778013241776544523131616136996058927183017825047087377925719834185970646717783484263421520716817989666152812903888382907647101202749229700607104664866129655807759837228658407724276901207471467592079486830913045066240471301106729646617352942226856420169252315544041539723374466089270927714346847271469446155534868837265584499293007238368814107770016842753315612321630162554957211895951376878616372684859248322262448189286275562105352162122620002348767154563211036223590745369724114128717456174500489931666834513534180644586987130706355058808061722452736349828259024478816648784041160377473013428549289232441178058246879133702718445011786787548096673099962154963833295879647837291214951847094322552934229256148722087730518493129633706278179247502459786116544872837626033643686444287998082873712780970612361504032265603932496740131200498818389146898357927540533057700257948544299338767161352309397563707180141847774527364647883309156115216722413407611708992984554556024215322184964655446539549019312366478396410038044334913864873727148724112480254551011938092666560441384829148680990784184354294791943340062778820897738381079055426338977426117883571061672223887720327027352454642354266012093024635571006383253899626824110278504062641680657425867250847052288796583695987724131347138480062685843685865027364299374249194361680690122720858655789594614426805080022444117237495164421313082280326963086294948386545656403670262299231667232790008577939937045259416492576270802697196608397939501638961240885745824614208531854696680680586131339550444629901271387974687333416492419661530501802985929909420116464894550444334378405247725340814256795906906187653546970360974637835902729226029928378403287110333677060381796497295014671159705575308210153789595563896534547889503332910468714203982576923744853286339603197752854485818714722609288046430119602583015972636765162784290131844435662319430600787351579325446556740960389933289178820208162128239894696453822717166214788962966925076906870461629424987660855943079451722854416928169815447713815407308242738428191954181425174562029411873145803777816560233113254710641555782943680035975834511397339683942709530981020002441686395650120478333334807108560732697547720056352821664228904932928524752966470963992235827806987806125093328574146423740953582943145370760666163082972731062127776758175117517942870734459501367839706644553288688922218180077966780002456585754710687990583581515931985427036036727550225828928474470223900512221111842510595621106599922978016799601655175219790565536673250092556760710273109270705819992387748425321183768169566971494654858537256488994159826466746923512930043947851606582196490699046293713480738131363713738077351660850472609375288669302639350895350350010749026247131006486066610233002205028886076031423532650186666284401263985902622494861760763925148626704605295960738085130525881573565959129041257698289060198131112624627007924355967449094959788210862930690637150484227039606594041968898222010328991248383875499501794833551186576978677182401125000931758157042282823108538405519415426439970323994193123152220539059688809901445728771199048503408618765971436130318985510044103096533417810716541692801151244227816308680391938151705319811625441734495229363665699431016849631940748434778815827425189241761915785333138708782517237346706387101316549479058032714158449100070457326812061063702559271338194598975366253764403103590225037233495854775775931008943639580160866841168605909428125839613247429595539053462166822467242311895734603866633771528250233954969799719607918329815841631188733076801202866858785038861742197598098815623631181026400110490208128910138065131179010315014153244863720437987879359205746963931397466639282047899563954665835551927989176374655678043025894618566161514986105046572694245783510935720290412007049175769482831526387954606276457230336044344080642489738318146254303913844117632609290211244659928989312124382527335643482667348525024288992631178371436479187194086760898279322555892730111905787994586513039104735405377017109104002087247947495268981474930810498517216077735015070834624637021041142056138622673356571242063467410868250122715528188404440050255157816668932258109383119747091142000278201988348558446912186258974831332145520062897440220952066202203060952198271675566201521363062536712938489643043738141694649206761872314932880911876023228128510218132031429091709735760022027632378707352529267847278393945654468065468427101174116810142841408882654227517176043604166102990754456798696940501676156186056221690279907183944511575913772720457325085545717919489178322181646860163704371315747381814858259667880489451670385980142432640703630929550239946174438203564476727677894942784047627351045750219204763949154771663699572289124417840102821918314036673343790407833699032613458991495236742954324785473210604032770847203190765769439868878458825099836266882174565828012629305916383230534169387153670327535131759356735282965146179423168392798601932011539761251610139191928523270610861380985823683977341574265727337405155835529318667674185118814145433394398807435262131031250609134991121318168094502465682367852266990258452858844205549319342115138687004586494893253793062072890250249496637263346891876974487268309445748690258004927130262077879963300257052309181170427577448304139854007702917265527560819022757627267538821319277927767407849900567512595875067011786047018024376322157683684845553876708809140427870231678080654932008930545508166174891819283601563890444964479467605897027054220385644898260348382460007967158395480870712111444629100720266797364601802130942740521526616599390396673549116975952726944008357503741393290774556774238604488343893707430953798056052166549537980487631266086022693907614876722860415134883108393093095875934234353948462923585603661441538667433227017470553339474821411801709369184737502924500003764291197278319554901837812587112508067472269069813342860756887093807389344144324398471197629469810765064036361479684366943396483235498940124365921257361119117816384206721408844331523290351400308492170226161375588305718075154161389954216786688535812939145509217415074626600961028056095322450486291660944759780889676172182489334656267482045935204556636990818078478666020347296819376386975559061147652978341485171512435381189917256781502750715339099735498678139487234585223254277299870684895636120317466987044591766195614352949672289709363310165853939203296427184541903849437900029815258654257736203714883577382530945446456399346063642668455269987447820204846960347705414817667181065549990700261604480352049413346821995474645028727687940941209918682530948014414077286175226498751406473539313985601347641010008371606580837195109178400395932854617607619707681537273446727569341602099757722531685124667660412222213752760518144064266115346725461555996416120097738753708557273006077345706076225941933208136961237334214444482779873671837453530731360695978606744232019258711197838522426217654005575273627254311170130666487065699163532494517287381148504002041402706846526067102221409526271036671933316922627547945799879343212460807408037052558479025987345683991464350558210303506722724499034682108625786388359966309616656403675434159812272882523767702571320634900701036119640566493720273244538460328031714729486835245615250408129386929979325041225584937865809810160829869382373425403806762435961088338592333656765839466985867983306119150499614993219292868230014300296862737354861992691507677107757511582854176939362218724407139532212284393728992520145425481584737263853200663679832955558765402782743549585246039265043958089428691042900146738570535330417585977162430844261825505903180906959045090610398689359980520549543718767091992962212110301040527213804701838692395965259760193021338069586572063308757804003782121150988815790776181719791964138300788583707811279204894316547155363519699640939857616821491327255254085256470849691520784880750599926540315378370620398935547051846869942141819290654294971361017650610564249369774428601330884050209332666095329746757455580644504613440571302482304108910199954947395505228945947454267735033792452848616712698256925646978447769797837394142492853104909050915883834563611648192074837973771708893385622158237219499746265920130249639375769119292876115470889472907881240696125321341403494085559150053909920685886555458719842801089094866896953109559659646299861944089641021673934199338417213748619041049417734306717730010099981742108034220145891683707285578654396586352859691393331909189699521401727671552196205605727559039455382642080689931949771546166808184927891135426473676171252866049419359439857428922770360465352126348794507825905276980536504549547077702186588556006380564972530126578340774453252411462412673373614466304162523358987561301823627007489530641786534600812902173029363982076753673705681898843350109788217009061998825186722358382964660662377933847203582899811830431307701833344965190893039161602372471159932990855027340356377330878597368912979470140151842751277177447395763805830736612153849802380302093181896268927152354076092819930551256644685471703617941361848368257660128441749640200682273012894601921292041053491627102794186930168757341397394073024790148392869297844893125478393747547585419960431589160222829955191061197934953103788116998445576387659761582815043924170857229675049805193434953470473319596612371874451514177232169934746057465787956258727620894591159277753143614700184716863532782996273266646708738251666883488646407411812376060609602076896653990869058731342689255288109202766450561997321847749967704896593466313824099229639475194714717148979212840590939757200596093506773739254239113882520814314567274208541506411877350615001743732952356324322447271114139005673946621755836976724559804531970070884040568870608555437282497729238389720971168418895564323323317042769818634644419718866638985881842447296960478564009549788041175822578262383849465232139169238498758387215841214989709497070361252294604000301072881214174009187116219665093721247879984103941108822065406405576626610763430372079589131469200058975628939915778775470991202589489053949552127819841031572293657118505935974030934150458801236337119691192580042023145030515125654103928327346575298023663337667503738503782139775323947508600141792950604587090255400699616855286055132429230764575332589170619017969123752693175756197272663324196614017959690171892016230920012847908807691435581581484117920175199759290437237015714618725408635714451456383421287507794717034110011368029827610905570765998388436211783362457953875414939986793280072669696533032009103776066291740528558998092962082874373815984115217247740034913253124188133062498587119638619708602010904429996076488949719024248132631516934953577868890651230503133968386772782326424717909946103454582722367981556990232014398679264046758449971355095116332665654769596577991788445323882000288363858311794964927833457490992721961794328016260174787851549964174806580098492980388736825658640224482877159845406859911669757828705898702814641915552964739893552437470399082670821519148466549277739190909331495848544833983855506392870974883054254117820231641346910411687629358248080525848835615694710742923442231536535740157556086645757320826044463027572799908127819143767120831100350335810510197874631694107686231206638642332073154594092607375148102858615359944189496823376979839473479374255947700372875573624319755213294582278564377090872238539019058726738402069017300481392549515977477273376712824556306598007226175439526185958772937432677625438318059581634918783215129996127396015501364915203618582376726889000354920478226730079153130770802322151298039935283419253579452902898431927579149891359678451817112539232527438797095440229590896947377667486093440379003415946067176877086456617421020029008603325839611034056020914648159176380631314289258902393888490008683701446469358138447320855640423664139117705277104052391971459663142331708725667872016286021951182879740975879116112152446766478975240621733305074781771340657745453990959619088159832897351749932966150827605005844799824854853896641995916166984570602546383607334294649055987445740934782417144898636139268661140302722117824754887064626977833243857529707783013105293214749276401507214993328053027691772579107178030606562148759692789973204880020688971729926196486982852404904408366590019809587933086408235357974610734831727780302362901390968140221386350743239080979273131964936406454821987394835304994490038696288400037034109446956617805344667603453134314321890872229606198055007636651755437550424409010681357006310636047129137074530552984354188167201310815618420480470668587215560657197023409767139772210351384113331478609656113132322573559151207901400996030572202016231576668919874570838399469775187792451366398545869137732288747674813601399320586406613185496989188382847361821366204750102517768230551949907511256704843885954301875527235833268100112358377648619947723779088706036528126583636835876603374215977168532276984326354455161633218439045120901666621298685921097105957727171241796394070746640745182736189394477055668109347205428014414722249376134392264493149609909759094584054613679697162431086028211541687753874592330744580380949419452051918890300592434420745606157488160697773498286052417322254554435631147735418524326754980043189496704766513551744483885351537103306063261524524233035946028698072157980222736797880199744676066410919236426499356332353346300499235442010095130017969132006872960324403954611107662756702606631653758335781643526403799878618159273596353949576335432590867157654261679319933820354328949578818515351864292611046296635750008539977994836510482532348844335122066191528821823953616229529909500455000737570491288998296079206555083169624481301276157197702728259309502981427112057634293837912278988584961008436796524395286133930146586589055541220455422291700963894195919942855471554052915564638896587884497559548829945474426472444248460632023308788397001032591269102871417064152420923251858130870546183159601877314550597381076879493954479116411021846248112228256980664690376392395184583859535109240805493451136047228057678417975697341837226785535867380034161979986901118656764095643754708969956428528173560722035433521765243557088586390022181611884388326503632820158389929806691814043725791854957292179938945043163951514228422455984822139795550765672240098842541272896953635527249069302324475471526468650796194008768969452090514516302123367661028489823014994696594756943934593504562229838696916517507846785796347502792174980265492836763255941068206640037535242930185479338906874736153187645286982045757609326194829779682853418909625420365599681033064545121845790639415607622093135710023339872788745019079412094480001646191769294073177616004949923385383795392406253057473802428722983562547902087488473497636016950202278952677805159662261164072785173446330882908424351920929015269047211031699912729178945316396565846349096930241194061825030653396619135781091472248367496758615014127099250018562883556098324671718819927889958515978431462092659269576334781353428152661468762729676012925578523400358005643793285478887242429977247419260260451064315076562526797572379569949642220515760747542854106982439688812484748013567554477811076712967948526233646412749997156870463897135595764627930124786298361285544585057328508101745412473157315075603652925132119421640946468997176631343049178665858804195001663533432276431115656250299569740914470016906644558204924160744861710292657689300173858754900252599422938352192833640834532778862265360449839691752134266095159689601601881970718002377725434050820213740776543093044500675058432785572485217408398164957278778130178875422261041295073976894949036812365159634509292297654417420748284866861470280716838451886571918134138617448116548396555213365441591488822679260023153091308123799841419135534359260226499231265137703437313915609724396887981465119687847383125175256309111298408423673278290945006428135752869969153561337593791433014110630958237542223939110337683524113802480644565852025149348598990737612775126705056242495532347426449738768638360541196635323297721068433879267723691288352562717946520515379761748367554316604374070705794115454716900792551638304303244655048255840235779340128876841494932369184185414183154549465362846138669656614279841859512327147474662498767172288025462756588188927949033063635077425222997493674413310557251718678651250978390505952717855777783479247891596574222410770700244631763854551133760697526681755380780795665555299939659015764640095500920040568458479737416682668408127189607739236206661606818565952187856777944246966498515296316704098106574151501155850225571016744464905240239463242792586581378185891942891860822329484539827813977403299330385285542993905889670367608228913130926010679223849804401964259441766736939419455908743865021166261390980753256840259128490837962838736752772076546925775672360867516648857811702828878304778094790517774502285536233103086553085028321187776075719868154653255317654926706275560064997349317166116735817130248846824380993430105197485198068234214767134495153411522901697336280459466130409915510241885784457457245988291962610066105501644609280312751110042937009600044453667081962179823249120594607603238505518214058046124406893780494694411725301206339834685780232339377400848980088483581886510019825742932341335038776177970427882114808069766881778718477585949808714746205389062496577380720961667488534306374819567775332232375734410894014957178961616810527794289390872456228074653825933792942312215559845683566337145615835479203950142514437617246348329860280483308382231918255276991993448802290035941349138918740814436310027218362152468236650235128377911273016989434507886544733885892734138964793877066437214924886282354315940694950081184315039360978130877651351981910588875323227047781616211403435292814040261742106982398156611092861100857424912102592533538956883812653357671135048767121004930276102955542745786074026968583081163010946487800082639726252483447062471695182195970658861358469648348890852248306433975932042279815305175481501897569284932341351656355677701044928174200053643692966544191599040566618736475198856882363197353625181959529175020029084114330213364339005582724103360798314358628620803775362696436573981577403798304881789832690274984675008021778404776514824485099606041188936733020581221003835522437855583684634400997782023300870629011766599340006640521025841098215316128786670741424982419814245520679253984991567889125668751844153857428856869401806795560817318413905261570765247795948377077485592079607813275593024433592372590761352086317621669670149644211186152060405699968512141463803853057721823402332779264738767108412046511108163889814886748967945468246076783938308513194735976185268101158626546308245570142754428626385338911560615176932505343613011546949653811153553454567168380492442031435994663074212210169935510040596325101551454712572272930671207995183483931399821538588618113197548531478180029887906681253403050120248930040052499910329209161180545108462185385928874073340988124240251869440890730859125140635199737086024176605989689472221268141246367772315728728792995815168838161868250592219917346682874532097893773788810326226586224991943248819205144422953145065660395125961368576074854373954643717429562735130771617561020258150831688870637918012653453569420389535267658514680512720079968191628991474303534082488595391257248947693749213963583758793625811247350684298950056531611126115170443830099482668359673531944262385866328484331001570940884495381401909993802538057419150029508787040193058586594286406998855540981570437537419965512103750990775997954398006092386633994934226044835855968087836839719973705584409757685880629695710994750635905806776856523720937749716533610105567350849541005761121296983575622942310465784613703655478951648854747653838008170432822401364874183874590168313418727870955535059812086644368233130922642064005100428253816966768726011738647738473903887083205171146423846379533514968600438392620284050994956481234255949129739275463482975277484193490957961620035623355116328852700723551836923189165190288670225745672146474322142089879075394150158171695954205114230771829511429000021636242388234976211971367767120731342586065291748470254605677915726958943053204100849626401658882618141865217341546346706988712429984618330820021443476301921330526397495139365797204364163272703517991881236005693427792351759940716732274892229278106343887817952493875989088707194592099473497775944457729322783341603323549973145369332499021084273187378101917610328618959490941739766497319815157960134135473587714805999413579300291337159148997881405817501033611432874773751866289320037448142171942529562656989608551966667304425503892063375176593294436759469925556568503747365094540153720523032867595469002451006349338784978188030370266252991575027735749158759846710207062000480645567678817426123133784356407121077051699529661586867269447806016693928011619677119524734483489068594713150960433171898606701906459045436571682365624826844105048417321182055178097847360466197925162473136115757810650027896976385456323638390175461633426644046139675410457772342360518100289776072236729034900767053250930028508346124664592495521305917390523617381765613159511098418448924988651205561858404718140580336642437509928098355400719304418334698445914316558753419777768489833192756378244698928296590875941131753445077531623328895461996510398123799020912510290600822231249164780484510151729626006940444710771569129162064096332307437664304065826786609752146420787229319316286962491800060932409385388681517794932198771337353136417827836952062470245683686814946402800837730590669573025205135012547268003939629405904378201476482237339102712543853635258298113637383873634750349345609350348405527981586595992289160069987371028823474375120929643035627545137861312801148200217718585614280266991235049347028207622226762365760281043510718463765283125482497128515890966477475028470639725327760339507107405590685138977547758247043532188226807366193505300530750381656994669989237652000659023510010943379166248571930362010083471107774621633122855554005604154790189054883534074310879915935729188581923138721645755862233249679973418705865520768924285938993442971449884513010607367690779441571111287696203056534434980300389149860587085301290483985101507394015277462097694367242060901913518359955085830286866211159408106307162372064454473032613646027995693325969479041213682814191790779316682495856728066946025068605810359914616726816768902430056092914704444266866698623701045762129290093522872380281767336024436528507776835760999042781379549071910538123581188064974445769327639900945143906522327876131050996853296660733906737206385302756075875946323774121368128869489833741014236435202669025323727686955971108651106275557450567808833936725300944770574369165818900845840503120595558150486252357822603941666737157484041688250947700948283687635911865136124062719452167651639183782341305712130909642920164357569211938742518763894027909178756918968195487338965990964840596279299848549336936416981178943665589244853151487493932094252872100005182822895040815170867638752057732997617110798432537541967141275911438588261506478104343013419204681339175327854073920714842052489733939376849691860534625639517691301215624221201393518539198383346327402041869716717534446382593307458523231596950743831056240052187100649027970775490709984525071496621124187037889287125110516754173738068896676851809126781973540347853290406061911896591712335916837389217066073897269169545828272204653894863236875469505300446237423684498277023446415873419752822861333734553089286348534862106489737168117999032240300067273444065302742885861394228343148146305196711771879576862061598878970592239030515566559816933375068597628335904076596841808734268188843504176864048789887408351140068125034596697842467452465987219250513079904175967598297088235277498535206645732248048598247632334099141165747986344737806201229651463096734170565056969628583534864965321236211175863709043693994308600423557670323631018303164394637600730876775819435939716575883229432417967427201290072861691040314060279305900343441362160986187045459624074074693881401295915735947833149810236290753057742968253124207924975767695472311314416925300897989879565217157721542429693659326456165274978433658040791947968864131383781753444435740934993013406920452104840239667423427621668340484489898190046757610149879685766892750681429586326069130646920166829102961875839439585085769751556594760497289279013396119949048656630548209570928203230082185306058933932952833945333773891822854954164106678028487699923306693173914309065083524903715655657323686263903124126061279218285229956655942693587280058560176211465293231142128389346234196029956933265766466155219583734558568156044312019247197902069385576478742060081264910941449719827244397728407728538154983051223268470207054802449170357391647528645667570061603337794204623460975907352575564274520592738862233182388010905540628718377862292857683451473144548490304380211447017399058482438796233051679014683312983960660852233142196832733695418020061996077122119681355426526713668528465622890028035517041551686722964200106017442151330018148492969535146822090820636475598539246182469796968446998729634578686498754444448833226255182334824583183849577941302304508072192113615981749289811284527723534332877512493559537525071939609188573598246691335755242664855536999466494821725471535741457084956828852488965835050275364477067956664883889766629637192571501108414382109515444687554511008003315897296468074972359313874674827676396764305507855412729446582210088972091393221230634709168371414040996938300390538879542025565963463429804240042383936735356939713505552567818534272231313610987491171612794130942918148160806358776486887656662262210991381041081065642027583806052817207524568865568280545102668666254190814438575605822431099069776071739371766730115935720765872964128103742320952326724943916791454201295243464368183074975237218557268923111777482142771861537099013790933817366340766235175190621317402895236797325668182119234597008556466338201783699237200018238513574736478046852568296188801638724340433746518985801183236532506676275430988273737894477430481653565049697722846841588633299571345180437738075251201955137024254213112629736638023492046111614295879987855371075431736345351311690955489775012449317265439788604470593852356302688926254609937259358053581127543550685573838921904367958529066037890299836038957595340548807432730710422503880733949065520935342461436457049232653572319583352542311967008088925323257806492341195463142303687422266411410331147163964191876912105087883772532245312753209563240916151511253712284728618460462622218892528377816686158548015047493690483777669894463725168093099110429944015441032216142178994719439766541156151021596660310585582494773603635349069846212098986217302983621993624633481680751341532364315419057402178458522670868972580775868099519303260040711977562220814216364873520890556348668579144651262384673551810391708389820677283747590319127587321477203631434698319441161946447616581084714392541016311990803957459846906394494420584641553724819284325842730399651318320524262724328942015209013711196966790530745972160957673843444675774801947177617192741874715841765259936198893884070007547461314458103699384001622754381535183603754566910382346360905070645270926002336323497990346711772003346094159538572811045336285388080185184283517626306684252522665737269298171914302323305620898592734618083658352064922543009875867334547039812815671783356695318657538044821886674693963239045080004329801382775869509959294433945183743656621667783010265712032680819770235178541542115298226742960590034630808226578916616111021377086594362658236579614232912274518157040646447346953053875527685193097504031355876987527731012799129522596157403753247039134594280421593831830159268031410009939216529494617311436850109759378479274151318557276790986612631400387735581797996417597323018688454611551208554877859521446835831446122370747020708062455362051551639055722145031400906684057393285963583088294050439468228435792379992369797476134102742337405294622381584725188318541593099194376990388070435598869878132367872771415770671310410266204873437232746592719202850869306626149828266833053792322696168869823167075187642073542805013358915389480312779460603916088623888926237430165116697514816975814686659656104431688640544945710358206121422304379242003905964199345718837632046220768055125748138774908625857560125077919528949181280707573774193704319234629301238211093879640051187634783875745687241851123177657240915090765156981555409122472662412799484419629059682714271991806710006535077984626632198189027734487384952324149364841020610817994551761395700412029570950088230698782124517040812811027234557562696720589106918168136599010873402260287300920552009833848234297219230903876182649372411963575419580795954914899565697875889690582715550283465017990068690129785389124198951772461903099931256605149853660496164138404053742880823681002122100081115014730337449386787858706535196050636056030387917665084894655602600064463427808166169101975713260852986035145070706505046834073362095231497442512839553708646653449121497829184831288941548343004560333134889248974500277269728820101869248785807100186749677577299003751417204967840744092014871541516269214149162075851168097721863453420800727987762944980833786530994617093641027652187281623518320891950879460499159687886819180950077388089616670618467292359196460734420241149802467302800466523348994387155566181558403849313300701227879860567709526160875650409004754369635785417601661435223771498434164937024693519399249631095207516425416287916067398092615322100748107092076110902430207572750937068573810206705144349490944865689786063654471336827174305153675127374721423173724696453338488947871992939948662663274478338951809009220505350304997557594088578566865411715917624129499389588621160493237604261274201489273912989559582476007526110782489076891786287818983879025159565178077884857970627630915986017725689892732370318221294593821625159246138414914076914686502752530193511994310468533657055021632816127510442561201137809266783091662413996215591390789798813963994435275807737351958128321081568856966523308952204289964810231398712403195440293961664457692550916736960775025085677778841899114099410328162168358121822051505188557504981995913159845636407226602639844607577667902797243440881678493264890526025180616361900853881190392012396529434502283253224135110246087156102326855558291037413013290948673256704984916625290457399219963440383094549376991251245444189983928380535816239680821617380480624099973519616958667281103388768875220657488706070963178212200775894683230653161657551472942613051183394494354526925661203571810586828821110667946817718283640875548293704269113665945457668753255979906393954883307990053188580467523407710344888243235199302827776950209331320188929243621146644922551666612682061908430896756756324160869274879745945128190472907445080854124333342189883788426410351998782135438145041116269664488648374928968140181682962911099456476164375880405426417281903283097200110507295617809980270553702193026453804791651816357219641052293795913996263570771895106000152828562767955430791291228291307437098424393416656349666438228957159739858542073981952683595149778795204720649682939978544072783145073813495353479555903011051979198404867804102044140267442165183652030471791407876106458054392043576704325100916851275458611186134227771108677212641006480547140024808110953930340004378562428922571559154611661550045276071078778332879157375452167855369529362856369429064066745916689674013316988474056606992757006000161266527858758341145713519992150568573077713693097775049551386172051781870159272548753263520711166084316032098121704853669288118280678645373726328457553786584197672630010912525349526313791109299207535597178349554578696897562792326987452015204423633241487702053135493069710292070761179321152569524945593284432502829522714959696604542701233691128656699498764704513356124217107352121095950579624535214153485666087361826658834615140197754562785883311634939743009047211017821594728445857144954842339347865865783404185159385918443758422361755756368058553197309710069424661100618388720692990142363735994197507382570722076605877907082206897295088954384639238070987981391004180682615885637330782754248138518264009657735009772937583429383706595698628374634755667172430400917772887274738916712720785307116784202031523708867793769462030509871085706738208711446067001185989756033804362876644839959015794786625361923874214339733286651332999455189814584434142033044255952404722505949438494792357461025358209087791208409259559608369046088488906490101575389149386706093493546053479189655159293161639927854888591465049856931431054360622815578335654165890788372766872093756344182931804827917988435293364526169520900879021955111382399788044542064397136930418166337886705487031275217316925381605560243448984538103264110354680694678583302993498694084489171587664411514813863322830718164542039724544528725369978443224630153354698695995015394822422164918796454981516038114429284376852002437119340833036602422018261756906841615215068710720551460162978002919184902299719438713396982569127875819325214435028536101564979643680550881978584469728173551591276748205880486830574590267815525432276873585025509380655215564915580792999787000280901318522835495511940010532152946279574508897701045515166473242052173528546225222443815094305298763193826740547442643134340303867937213447717250550317709077438655055317016792594778885143642290500674864321939577663997923429319418870817279898671314412107209817040644752846683469867853342498406494750950532707164999670620495427574894891069162875074865211885009482938783007197954470885372650995548872323459403784466431294470253607583732678517498485385517924010563068437611927370399159608817876261712884163071609176083982954876308633531463909331606621193843855146202542685169022608042679856091359747806674335386969106507519417360207553312693538193872606282407984183468554986712034134374533165174020924305788627925549657296948013516950252195474386109902129641803630467006519989454057813958027498220925396024560536653791732978458939736004198169711264634572912489552743050311256844992754014463052176985297603991413415240544609006589315202231367622833479655350742194686043317663935817061969984723784138374781552505887703960367642703274498487885549527280810075083823895948410574150660973145015399048634997794033655146789046270726718574272342394459673974338625016964700607585464941787019527448935130185643836437792412874158618958629740769119276409814666344670506389712119386446705432898112940753847516104008206633650213243829060371550474342220090740824412367478811827256357082800979985491189422387775847442595791703949761936200264023127700754441471207321312108851459684882952799091561050505341782994608352888968163975592538760426821287010569057975987950874010411725063670606415735561411324839643918093016988401782313889299810874437114150164019581147811271668445891394586740853433942248087225364447918838936374140917998697454707195020973897164991643288426598422441446078851431203394707069857352230257522583726060909083495249249481968127391395009796377506728326146749915534012267371732303832792109518897176219644918633088175528011687086906924969708631105683508119604181089998767502886667331043872538927196421051312786802549868320035051151718536528054112488227320897162802672982163199982377906576014052164935945829735221262495123410250611721667758074890873323297737408770851479992252969959253048341510721600684363201543262925293481524689908843593013318043504159975238374405100893094137063446233555865563427178421031361111065600736461914452556597525234802374698682090842694068957511497308975205992482206804194894277821098084536429318176993470340414996456536465570262601540832132256015386103464555418276327557350627979945484542024098144268936229033576937847548245463052327040877883209955570421001535138525563547763424601653709831355746990591712807033059849222596906793423364018594820354532718673022139836641465762907008683627412595410964896619472634110859366634041273461653590340848963803125783893733101135692971999579896694953428964786272597840631734104280109180749141385210560519736774827588447334956029629876106925212422171176201838921905605339403424470087918987874924437164823693965776381113507026940053901085203506771235968615978041323878993383600983210238851844673443624443224914366391601374541352384155492560345852333069955685867831300333616192408588700592322189158130438567140627506361048999080506180394981681958155659604775021921690704342336576188002478667691118176665006552776154668309728637613060067701444698042320975973050611345523074521885496113797204183301046818335875680261758559229540105360404699075451956723327107337925028093866852829373553010369279798323590336532454048741368997060202905206209395403582356665907417009492929837142339197217366750954083038370328189133169323652443253212353464855703349935372270573870119994981553277614977454042390217091914742027119929157774312088222482078930717328599597688418723504762844016016886655559184433484793474517656515502830517334348008439010474046202536062002531054716449890422588483452809599607995952565321225627009036864526745696030910067188157283998669220528977585365331468449381620406383744553743838092520079603556381694232753961415415768935711773503779173143072653903567947397136209489972139905112920059828249117140854463694440474542089465727496304953455327945882600764052130626238082789507000040268490684846399330608031714162763360656755498101729010158445794559057985989537579648881784837224815490475181288990260110697230227414530517639801246949980826411516582100319164463486868714797637180252990315431410759299708590381496993164540730604041501283629800236729743617853286211186419970569246271219288290475004568465724942779465966615604437941616427223365947903226296518577740754245151333463016114041191844735992979353093744681926688261042505835166925859786298982048677277574977309110567429583224147240894080135186163878648289683133905496945404733810136956231716804236576753413802836992302867721914973895640313064136294608492781919036193627209679813544922580860527666462819265223750516349496842873527238314679361535487885410397993387879318856542182581154265177175525984937675702447965774222811302023911356379263334601737263518895766444403427389256614877079556573379750472923558214556058270165311891569974326972264469684300799316177258145227321476400384169318199757973672711785592584859541853679618362123371679172939492016874855840184505573926257254471741068826820830732046407610134235804516076266721581393379923193031286878080082189802659099971563972227985502696615501695798588301221305354595754553906634587901475221992326449627175897183406300060880040494588337677677797690028859778580651665827803010852812030718643269989576182403484674487807785945362239010302043407721494932078036768407641420753566773208499359696663751585881115612357908924988287067515647740991232488317000649622230514470963706280184258278302936761435297998210433562625210499617794425476910258088876588436691272641737382760209539196533018526762981466305055718751579513657916061749826566605401359437051799639115707548232809701214079729386785365142548075000266579163561644625454519967593360114352575342088445833877412447302486634976171416283490735413404692837042311382376176532515817379361990449962848046978115259357705830332637806882655121961662043808777357310813862414283990645122629105741544277251530482650666600725615115487850495174535055916901291243303301296373413082447734108237394433367245269295548161749853027693933315591121499304857256555489852774190564980842257950715591165254307921718836983450812776492187859533065374981657159055070828516808960223869928843871652563050520064161826529887545505082955602407566831179858445271197918751990221335617652823849792498102304749587747833925197673675494489030241351888030532246819494957884950114867512765230194635234105697765109624947475257441138243267627844371633577613421394291806381514226446977823808330168921930578153686606760338307840497421970604785181984997398217650037754534520577289905600485478708225677771167786116564975063029682616132945541879770494951465506148320830948918057093452618867903918303498032094246956815115408646501360769711339034275302931179190089567134926322383340743003167189031721780566338116847845249413360511569265778932829244643062413119346474841541649999401537716324927396499258990490441440940477938481415061071938354298370347081589791642110716458538039857306131516667675641419269120904063490273035794244828201562209200913692701501456952505163054422842038646833632344377005924101587106397455844847119818974530233818250433868506996730217608204744089630584750331462585390451820801210990715103630321337547018900375242472221375510758185826102118607287109710770966136598974820367381325674712329726798647911758787347673827913558744176232832448879424718271982301287627761252671470748724750074675305044459991518312830812614077779910118389882903805524051223719410382739423966733166320567658821803289361045197044560813315277248053532206583765568323118167210750812485251237371439678035093023836095537239356494856600597374909758949884348838948177458546323932620466766496547055225979061562430373897500368641041052322420557210786729307879543679322705972485500540056895041019408704536882856732488967686265964027142771057810144562784334085689433708960533033699470275977690044420093243157420237432313015988451452653563321431181898436787908271594300108394381818242631617705290186770707505018135337167710227183795501056650558113810948204735423126340923197353061428371641185030654752364403649165014550058559106981291638888214632300638573151037814841585124923112257778077397782560907722284492116274279010015223515942192093347316105329096911196510083885706660162303023302518532656433192546927736678549806397888892508047878220784780598510464413284462443629058986408740290280015538429187154876660500175818911637606047073139028993895383927832173387315822212032510461009321822513618913952067427385113274960355922546832797952344743695313397645537449121842324020145935400440292006408931782526537279489624020620119370404859320139164892011489332108059513588705742281495780181429915696191663897447586682711132672751282915578326727233299967950913588887595492015273033289245884600501818477786895992266682279358037153862866773610186638333416253524529070225258556493930946430075352396661056051214437579433772184574161229280188405489312473397624045207850784960515562780792882406995871134087319026741678249844180169079544071464583768089544760074807516524677392486511945454996281852564970126321667737585943784188399618120757808892417898416391735662413629785085177954213022414646899369580360287052619596466566426768149121559577180721082447228889922164370934132728374656168637196383170374349485259825296947129753004381851905779019115021988729201035932153248908203742980231681066053344465324103997456358908356756511888260065241828766363991551235720513987169097246110542896604171686813186741637563256547583557707844752326943980162242279730063927672452377174480655773520487290553381600071490058016811013826739341896881181562250399331582576697407548989400619926781719604486246374913050390254690705985143533226806077618245313868471221219317605945905025922685635128749788196913171544983613193983202402910603087580381141052194338882156866654327484914879720129534468898966463172512794209928788530501565219506390541970181708463675020867878010421493873605197372364748557653833719011592546723495636288078052135548082467114551533934786002111726053982279084206078717189102963185339602909544396749879212561188390722458108012377424727370554888908335754496895680072557611168450504722043006505423753742227743306130577876562655220325147653397955606207555482254610866397790936062286994162770324133692956840759666167064822618802689422504992048134545486608606638326900110552206171602471574400592412640192569832924373948156654013831859817432561657151423434002567910690377663160405946365009970202176188952854793626198137259165510136057473587129981521181689754492098077332696114532286637553976610871523709887986573590679522844148464061929674350088857161297505703816372471553117657617211303853230551712412611886291921363069498001578474769837726995665080253731008861529479447641108868103396224392202841396384001004158038715507205683726128607026409205633222331144918611065635389121707507333300238951721817024039910030669248031131936483137209996282932299539660473847968500907584105175789404474920102360654242776035740599515397378201528885040353140434883330666721091213231618958583090469845268765366783379147967568885096766318468964716524520420642751959056098522851354187319232304698146131019773934971186413463421789405662298509747757243802822347395719417305847873417669227855631413687788713024386911139241933398483774874683492885943542872975841175016145136602754580218331042557848396890631778405385589461258082467397996403208793519020569643537710374556326294244770578747093541931944270980512324423100404313887030818566398015455443163159515385277827120970755284346772868842849419801852440120290038553373884857891008918618831335315416727961072911031321931119414659849080484938820353919242792778409175498150745738701767890682109409507448368914692320823191599482025825269577908614541580225924833629267868184604281216669434006247576732481987234174060097699609657630840731147009466580940025443073453576106662520057763046611859982998604355602350319403418516720507691951828501636669167831382242285530911255521311098414277409273749481401512348768910593840119617123701158891540418187138901957687997953004879970826999351480113271095870810222006533239968067042409622631405006895030253862060797361645276041340533489890090967404368814188631182864775122559842585521982061647605978285689065296452343847237348678572376998821745247383049258203409898870264308447693780546011783674169597674282566470928112439676084051608361932430127557811290016849126408999577059431232533653081319812620116439981130421227890123132297932125091016782810467767081371166907598564656877314749618735150373890293053350808229584500580664388028477509853049249485484255039093702201501085829969083635690171961552927875309169449157822102564367099166457701182795281823138026591572958965581697077854808401370373243143483229308733927900758468349361649793337048970096912387437966044928348808000998587779877061739230479708700264832613097762355922354890187993670145181308562779045661810604380919667422464557258512813249572976288596389857514346985930596008900866531470353149998155416460133137680206716116405360616460232117131326812643896753299461452944044162029394056707482942829069395455578122333376710363246351424698227027664446921268895892177113040306551056689808673749980999202217993849852502108079213283874318596692803543074709399406899576933345932115407434436392765056036518929003508441172758045288371370527599343156543811279702819014873050037844084466343523169283712421270406676257528925875495325758936985152107930536305610533996550579647125561059223646045836519084688516591248860081209174276701584396379957730244084041499895193444553408510241341433609603683657471163863012562358472769069703505738346050604774789753996601051970301648761693488731028856448560265152994728853383493573865200629039799993105692965272579118832651489191366730664772623217865493223622082127726773110716953070516867061880072699965477175346366853847067762383725489043301389570050930781773179659412869728683739973963005905738113854930681323378718716402167286226169354933339556378639237085579735187193555388469909830763144380732042913693140171312966939157798836060127371743313644381901874969011079466383890364495938931982122169622761789433341314811582679188796084492975110840980190373806483296966878772337285355471875216250149761099543767309024187874256327270520535840068879276928454385015429080188795465826001260150035106807991841714911727622572443843894666602810114525775954340679944669759709024873501787620906042861591608593650644063634651179192392556474993441729987483316230821624241673982534078735110299027506016923343961219265870838606433649690060118956444688706998706525109310319795098219160051402576378612190093859523626813864479713375879227837857617214286684904720821225311096750883532515332280592644029325743398031479361201496593271470496622865553603995053061893523944729430112063163407012959629646087337251742941220879890142830579837551268731451045552412485833435346018647196024214692632384778023808042631904926357927875131294379285443897109393270630018353439490636256815106162660498631950961360812036218020602550465828991539436531518664563591165437509039005186662056401591547948396694364066393615200175718225120929331678299899588451001093939283390460121766755068842021071752529192648870833779578859536664831743228733916623722524452425591889255817959220398170364568376987870876346494695217625206057520016211861640886151912897101356407115788875810905926194749868723070808161740516330288472494327348095626592692724577068349961744085607232238231866671640638553282808048911892546657070627797611174422181027891903619271794739551477142693068528101849062577752923579597935583958987235867133800854087119118745426885615140266688990254491927021784476153046749245432543451246129013827997742005931010902997294559524201843238045766800923764484024936006524153557796218414090751000103059900972285724766400220051666337198950647742094747115371824459467197121733101657511338620885285563097919707850702768275028634496455030505910439019118305170203582220080660407030288993110504848383884619102169805916532145051277479441132120616844079708855806637736815135901449449914333473010714163915264446545226460384616512310161627699172055970135227538991748903575700828465705106541422525072709906184117133407801559259052898837881744787542491470828411283202232810066343928933472880123349017452501214900105079472221563131633864699016830147048953337152949170234352626872884266012383034284022213019341041152693844933022227118391611153700108370535807318714665517968637896330202880479094451927880677583183987970536629155325540981985472913969645151412092488503328721652110212671682401354481646180650128833727159031068724378576490899094532007372878197025994306274829669436442845585677420056633700397165552324582725464817117539397197441490030178820061036927944074686634733115104414027050274233693022293453445483421732314264535158778673278747159322993516778029594214088675630593437096240711394456687197795847930781655253437530642231276056167432348812718816656205992061620467648504471421936926799073753479596991915692663445897474257093640177352020838449514442357250422440555208078743237416410160797306222563790379276759135084115075322644798900394478003127241925479311379924442129738290216683353624789249815577181608167665101015041703945956021386526929497333642013641251440683951999537444397269941348466782144625713614670069430789389327061266164642799884988661621260817631993123643004537259828833485474971478404940383500300066662735040810780342572980836263395774717846466078179001802270318072893405134477999244015037945995713865755937617331947369912934842742410020008945410197054459197594399927243242298360016664142229664563558360984435086171669207159051579967841265769809652614628728326618468455761570178078880727743614776807672147425977850386485536326446268338121331871280957534517043582935641200148558891522017138177977068341514617930816501041912892553192715904300963480075122007111759564836895644364273674920723889436401873002987104599784196004368640034683525546599037883386535224068948881850727952612043801592133951938699021680907343668924419152884156945713349269926705859628199893189289056391890295681661658596724758989528332410850879013277436804739036120112990126091137544744105139028837577500205393788023605761915781427260008045430688854131627197668961166266768579327346905180626324309599135821349991496201237403963615168163232774519878652561185936399720167748755453461069629759466558852627699419134015300894748311517170301998329130620863724323046360594682479786053214870488439354271595371505153236734997615927188536276967218485700525146381432870938301681798244413348171470369436688551505747007753576488131210772778040805532009789131196206401468233116237462451218594601930842109992396514269691716644985940381839486075954104974953905315252437209405645231118644767014126742486413915005699949302951742560381239182788644576940206584001960908727992794860840854469505184945738128394181579121801528151151510850604294602137618810011971587429503956095939999816958694594407349849351545997661144755502548677063186502467145461699913663543609517293493748861104323020295482066437636921151269014235845944487981673688127311735443572075286993175969621879982135155848113569492889348273538061395816569380177202973782942532561869254636838439637334454451329337680699621363292174921019012043404564336154203579757853850014012749501222627498176604043933377732862846016453458231134074724653657371046939538314348990438973301483835567238846219866168611175453859265558092894135460183263276833579110450987032368313794903835108623778301681076599206462860706648338994540571611500541020140872784336257841533882135643454759988142373351550629379137989151236909805569336658390025736259417909331124228985568216901748781132662587942308818817739180387483182043227839525554052308023967220502841563274518726383696910572222681880605239267858672418867307519499506942294787746839753993332505396368674264798990516499471937112831293466385601885876721420795376932404708627428476401035400075012937420278533365638880947621762556060367831290269126225909027563343291580820635517690332800774382054372030866471496773431550368393374220445317718850075888260888870585432069383963058349222617251315477314404902793565750350811257067376348829668287321733066952233792786034460897518672193073971351401311959462002617768643815278029753839151143457307927852638854851287655164801249624035382933360192433489230544924472616914995213977852271197280600265086224665896735927873820844946245013234648265684617380920298708664431955358586514095181530216169955296372073730401453961535192437822036973079103618722646315447928964814068172566789002411280327986238199090735322111471895295650121160258491628605510961387869577448154605927845753294656089209165900688972870399510196234890837470993459748921474596596810185494200436644551129577873644975938132053007509515782048928683249179252816700725697931413039832290224394065371411004000947337376365915878627854950891644435463116622845956918774404977330610198628933956458285354888200743042904992592068482618934476987272327156991575226028653733805512922692758317926291014018509516759835290535317671507737358949954286055517284744077085796296153829128769408245313525989863260377611457357233683839892300909554469658509782672797249331798902152604154031800897843406638259997186019396194506847784718245352829919654954018502903533862950616785180112348695196106269526887371185554293003418320042178824712031908699296248925084010507284613128766689023928415012522712868902539793197273838612791989532677749358112954002695229427778143418757684532933253339550521598873257582928140460107838848773077427814424885944293466563836266400787941945272807539305758342136589617180264561210097830944092925817770214276755993117922384158470460598553376654780393973047960863869226651985048895605836971627689103057197280154141355134335835820047716982152008220250767092830396309566562625187487985502677247771768441894401473083347363423435721576244087326286481732174954563019273436418804980305277539827119840146154479333751571846294557080538473060855398045970685343839235466548879331885964817229153182730634304352343601640427045529714805504074140540612281921013419513673017569471891618208778186616071293447233289649115667283280523299502024434399227927399569610055943409773664648275471370479405096343736665164342468603125564304995325471768305689850276640117212955691459004379923365679597060911845503118786179689403837750953991909258239711632425209055312325357946239046039066802431879711079890078832841700126116598448182752123567067497457667603632363703728647340280535111421787345100878015926948053660288111104350215721482751028554272178479508002298161645021729391502313510539692915801904423320964819172990541787047301572433512542134227508800972217706196105094306162467691035998705392892029870964665168656096847814657370810838908788329196973719509453956988874618888630933479933526541091435242938980478532971526511834825433134316527684616895812204624989231273643299106814351541365328691229859874099644076112432974510780594917679177591831214683432240239689264696640385217923057657287045270123711645557000527179541430763897675259324804609130252590941501165547555981318309012868983107591385924878937597545258519511897019317584627747127731765703491896865932405840023468248825458141511392650202932529144388999040224718121187366639404178603085343053836119388107482443051242211399503392323365600978552400272438420115910930826275409538200499326307768239733200982228991397780664370661019465742617560951019035401967560290319652795918149878044055941308583383308339196514548656837988935486449582341188394381968016799978256207490482916633033142226359990364116784601041043028561491224341060133571025189264032727349721632828360535920549816232373279041222779089032090331032051217616345951206240399741269574635840887261031638993979400966092241314150388415549277783561013994710996217480617531143214420904043916113191870053280052813277195220419327766829163186696666817838634608355896215739779113358595538702616772269574268788114919243652719016491368639649803683877366274489225553293602617979833157548297866500479871249252060009124772191575292506938125646852574401341643431753275740119445582167270394644828758929209456576917143365887061485421011596377155013948163878353388680784399348299787864033866245557039829984720624317344712829478293317514945355509307249953839415427682403535373925241086465319029433998666237365421766010536513407056017633296060601590334348536038258477488427180367038252670213917389448552384137307441533455360321296389820264327297707507485092978548338520798072023220439405376983815420974164925693467918367346813641813856235516716889324777521031135307482232654615833968756366838258850834793271987330789992525619348469161347527499117200489033595050199539344442879576297535062264918273433785955647720491613325620219230202412741065590336359140555123695899610851408128951187930450553884116444616378428771969413325806783951544420831469503642618549001831246454226056893832172501295291645033365842767629607432343606001642113096409896583803545172502986810354365160525607918328514837115888401789686728718913696314382640806121412503613706592348105761276127562594257838514171984595764924824101884344247844547707841599504259790804247053724680973727211187315170961002011583373715836622514405285260449629712396818416762488593058990324542908884960363587836551446962739217807585133007819985700486077568407685392366710847491112553980839893743487333412492197644959635903998800617408187627345065396133999205941899624176658655324285402605513448651797843879037146607018901063594047398586849556516688406946382792263640586819830514818563075390911732925425133587883758392305490162225461329010628420249434866204898649102565325808055751920025795011931400042364363881904681277920264997877067351058513510573143103420024247202750776901927622877817584590744976824223652962840260271859243309312340844673103333836959998542608252969429725008514433570414295271906842311082772717682135251141363084153686871032654062583381055654877189175343030367868147604092534446033542968728614161633259548109670947780655235564542451960724371379473736729407107809747895429360096314942000512626369183032935462094779107524456820466527912163051583284993918421410043600793942109667941192577093416675729116503197577926230590108061560143380430200729673346128859806593673489533095085398451236088673464963072947010003721476108654987496222758377287488068977774457089280004198289110734521270453323072380542961229085865097393163830764955639952235509781929954973154555236735000370181265755942426671529108323254409355448529360688397406317323667974836490956609321675718552334314602879084593971227447498840397433544834728933192315056968856746250212510879558934185226297942936408185674811428472400526425984027827970893098693885180807570884196187822448702430382407628042248566779294516092379654746671577014216232281192297201146946555225600665297924677956241725053029314222686205632118277958945474572528410140085545807120527933156333778570096403362712150086040344054011810223177373318104870257040898003268369287691611908614045393861529956166009492367880011925586022594685307938294364265041264155064490343891858970368280199890874820501922669956072872032806956040715934413220106464549635038098743194797737518064518845586608896465079855968641189541373087942957583275594352078869464086679720051074204061819490474923739859750675558087277347786544375411700803467242390291840635244075029314231217272086702536123736027964467989328925582778823991294840130925805957052523043911393282912296254000377854230821505875572869389931208753256217566771605396859269458120868473894530347700343039407970172930080625581076202767369695846541684049939973151663163825325616664849500472225240854540669258285019886740943753010362531408271408164482813893689137116471298137256579118255191604297955062420882771314687984528711365322683640911692870620914529744900585672405584840806890189364577720251451918544634651463869074114372999035662712527563227592328294034229315297796441178500426584260917628419362706847476333616076276025843567386905493691870432507243118655452574972833863872054159385999260634280470958330833325008941515278962930079217605884203973621039686244936537059194039451722157923767509204135853478196513090722656215140793999836938100064388736662738663979463942839402752745744610833759743562671922996977524083981253672935587679707372428460445824847370987120165037790531392912017165490180076793299102085205416905718603207457276557377578614189604975772557559558403911088838873750695941957057652816657880977963704445177615793185247685791447627997527129251831131578640859086056809102785013543373451423036310503559340144985797844033610427621444132630500784003082831762522421316041966282533266414251341079811647931060458957519082012559402071798523274390061572657646876080710328879603839942897741809793395369519098726537628375332417364578595369019096791707139099834838921666327541233398486673659054221642775103093892228465528087920393085232185904287373232711131798521262500235867616634505047411811975967873521543689448993704198807548342817325636708788099041214663723311381444518340395070885652967034072875658938977017234126970107626779497223298324140041386319463984197214724788927697763646983292134445679052845140101283842945413389691381883482641231812279324246303168644767376783755654066537650393499446229967092105351228974573016501069481595232844480894500019358454644266816417168063013819835297443608634758500350638574807450237995799911927630280629861977270236988197527735440481419023860473327961437503396597114245603925000250523097471766653120444429400233106873464389542475385406024699775915030396374438236645994393967880196602177211118529711335257818529383249674317886914176267515594861513120077211063032529180029723217252279436954623162595069069670872899378119338474260868092106317584383382125161120552798894314868901519377458722117755528586165439220858265470340414380400982698923071250064945454982016060945731329549604227404691105927501461513869968510240596805866082428863509524483087283124358715642401864295382703429606417336862957602716848877830066901141576509554457619361158530574299430074479565822080215184191643191331820014182206773127918080937842568743145722542541761495106010325978541566800507623218884866537501648411719127020278090326765783852155022712507873137644517740854202089582319234592266490800284382627898234400671310879312948472102001595605550228856993394274758461023169381106390751015618618643816568193874621053269562102816101065089791022762462578649111210275193269041266480624397629119184647233843157989616809882599493946249014585424195266113154658194523800990165757533623834814908758651126814577956358022491972873561905122617106756302712729944646222394423845452035656813860515950634526667935056157450271896980285031734568375350116383069465779752364344463116787670174881024071608570469589455128859013577837811498186197719892626076165040976240740985770789937467694957844576563404025497686355510236177688629706781243826660558404157599686010377768115454008274302867304435900733698507993724362963327642750574197248693205325137234448769462768205507032129933671705913760249691544844718910460362504757073203107848422796544608080533330836873938124853107031072518540003816616056156397027892654843489652766323709739739530197002722210924548267687492265338208600860171091788764605625203333490219272108642053703916588105487782898196553541551528632911605402815488619957755923993134558025918726067749668845925656037630765532763362281241512744910018246419029384590606687167989400557581407165188332489532600515169636166504598172798709583344480625302505396671891461088051012890926485927147647742768403108161752409067938951114683560347790471816956026594828546489450351768258442876162542607219331732957674727858429355455904901496873639695052716824503319128241804868101071296169587360746966985715065166967537205863741357713894507541669960486717082006584358717331518773138487103436385733447281038612124588378855918430905013617008420834230499460364380733280826398350712521889818693759175200074410455164498248918601569890799337522363499726648007973955957445034193862509422596491256254767330162615930573172130283737927883487763913011280877082890129196414713409338855551216095915323566052971780807983465198785054235043277159842114300530294991534211346249541018508391785898449434672094523590687434007116302201904712976647873703076056574017167784072078373802547783094024669888809526109853405778226257525891552151921347109521973564252315522075152346025936739867545895067195444743481698401012865231491686792388659766758616726607415022580915039281273970822255042129669591525002963408241158307248782567175626458079907894052374895932184737453117510735919504953744377163390826886628363054222991463341115300582625929703400310188259550381010068692218171490597501234829380267498246170985105488544401834722126409252506257474628303355462675314449318860526746030050656105964036016619301061776783413107998660903456320226445468112352558846016333984298525439958739843264901359216994369338250653817821401380481653581545946082851871918200750894625936889901874186587509354634408638936580505682780697461127138017262991502761924145513561111971858962480006686038739815864980104044800332961369900857507720163071943283427823000650065728546000756506830632606367227735677473505326773188490610263543540254836302615388660851603628418380349931351724170658187001867582790463319235865858952521814765225513781607473151571085975119073818271836068503914468649704916254355050495459853809941611353911737367149400285201895515971729251841848756735381215790576733890573418974435328483175003184703199334734330729577576402345870887542906072127241059092105523792355464376784427440490022741743697592504095942837760661300093949461647043932640466553777092273386371427285109522021221848265581319122777332204342086943909672680400699846441659281397858051632359909501114528615077245711028274343688914189315402224165501573130492736657309869010465499956888556090013368452054862313551177352326282133636096744250791597038810575962354291736701093508129356523843016822726203345882071959677940186737810149848779611069098931564306355759363038054701683932553390251179395092991337331678264899395437780153655753422054925068445933418859460777355172895800164340555386766565270009625141990127121590358790108430877513739723344194810935678362798707294105230348713927783242032035538041264643725177988005350768221536953036585319572235968084011655834158715820192469599296122990686674726144248025100837379053685609413480768112826734799902212083135438481296806809427963565113986323317480477093918942543623105417064449452663229983414525383415129404236203613323591830880464463639631137833448635408818527813043980671115689390925930576988604837241209606527608565132514410415897824690347324517915209740295505913986912708876521873143476071040076616571307637051968701031326479454649945523964249143884370471802406779030374041783012506834568401305326671128514272461241515440274723070948757406456512196868312299360729985664035904421230872687788324060626290257616153907748088993153394204733322981579595417555616869994119073124720933809344310514417836248675547354041743486050764149096684695468204436083392842010526973578391242567691404297836224763094411270790661887501916058296309786029875107791822929791094862764434335874649332513589357534911049504768141940320731583236300870988629113905533289843275570669028335114561928224687452341682159263650699493716967027322478168388109450703773769306972313589451478149692110342678090573934575557695878364299587550350385396412976928824003915033054567300064567258739152214856475772689093541473421479743094205392493524589041187594445045794546538344863574650232094118837687458468731073848440181557233624825102854560866065364976464466948052507528593711729484422855670305955029014081633705648148438483670336831200352523012105236865819156701046806146646673187296537989754691220616997523133319352494715220906099503040906858794451097709087357270249704431062285431551945594419289234367692203406941186626596324122774567140493068438721309979447520485356522905679684538514450457625816900409539701520941491391808066140369004166519959655373300988377344862501857400517402053837195358088614115042092156174720006166677975091751234650060755192233936847826621587314317562289688727734419280303224753997487968300660495768455684008111301156705024491911790848812063572714684714864947183245102422084971296825773524523795057321410333619633342601748276980970548539282281038198421566033494987639741065430065863165557825364886494960072579518953674551267023644378399055664473185162811363423726996158188547008309125351458321748816001850023317659251380300939134063129897018583077678128693043307404835389495163789436014239341104277312993901147533239490551653518884807840146538815884158750904569611449138707217095971876401810525438185992912256794619347332267008597533414307595573223362718073660250367131934818380201433357204514711315906403308839974915805364681376826160194731014062359739840489938688119512302918681847028197206553406171226103332297820490149311784298932909904513601092717405322853841705856169138310916719591314320597410422644935372197189452584534793679592216430309110258225782402751022700934167901643616916415778029085282490509212502259411662856039603597429464034864824809404370917856122679285695650140424714893218599656783234931667022638751485507050445723658511019032729547225780036269152618479331816940584300943519723322035321171077300705282361203646995102632384981700820754713887739803076754270436484503643270118052647505948521291290955261072184294706191730457757809267802029336739986634237166093250782680146860599212723572147052235528353890567428194556582538801219127409869974247834698735954254919805133626805364427667026073279989963743087674564576656607116839385970874332928351474170714941788695323559682522919740336715153385126089134096429542294618905123045381764127590184667555176852264030582056226687394098675486389523127847611174993546493991557207757215765921912763339238846010768128529887958382262643597183122859390821606489917360882316997321345606439710584893354396856885494479275725510769827331244092978597189069509756771535471494765990499999431396712219354030653438371843999404136864227280233170405103925974340623112502631286883184261156935355435836445824612925057087324100588001773539625551163046289409407669748774155206691471470951370579172367347860773445237371488193755534399919397125528748658242946108387425489343872696870622030188091856405487914409129302194927080803713630200228023132614887452221738257613867377598703453216203620029880868796201930596847495401742075142535409775016323109239289783364953904532801894675928439729319169156099068414406938906757996862647535616410194332005980645883492258829546798121141190088011629475737018742762018217236980480822815131923520373004365116948048437586540010996678394542518517907044928105422958361847141832891866032954790509005529412058304173485294115483059845821479007469021362054773978124575366065056583269829487466304423574599929623334633628175503863127252151017798525340209541205963234051285234001755668883225002824965083831484274495988091912892174014305376207800822657219389370762045032285199258599669216189713989548409928518394692547218593561971015232104249233650163338513145759399392607899859408480105043043094974052833332973535039569865081998084770334060204482955916830893714583245266519291531761758429167726621327165015218517429498470721590302847091006407276893151759652510374277531137726960312318378869527141176724937779355271732030982234369171312586146678321046755127204712811529986580110977057566015540540851768848614140794458959627311499673244659078151914812544033555827332565692132273550327888984469781764342834268751210237777869790104970102974573590063118403801783571555271760439323547019623467953184780246247531910393795164342457398851140557975989224547870405414270474823050496155285193470715786476430776171263705289154459543662191712637482066398857733138774426773593086148933412642200173276199653461934776997299117556505502506635886162527220679005025575224817438949330653761597999506576185098928725847882571002777125548696874247192179756361318531717817149549786470236264125308692416403727265170067172177288294583104767192272950319751982850348344812613878814851433996626915396868902784528997406300161851919033974840702305939489205935269559350138413092968884131964798951022122643071115017253820769492833376641796901978510147852717432313462369668225534117715231851837422709763829986458933864942466987800635535049848893530647207505276396402054802299315580434071416226403512293571045461293670787057030635576615363091279649004638718460699822088482050346541370117198991387607230190690877658761045494560930451246382292184124723587813798502089008215597906079973964732692842896927385265637685737388234796791033853131247943015558045402840719685580833043352739942978048022578142091616988381121206734021729271430121352380782742162974525981201563839567430886752041697781656157286024267137355005448067673750561735909904610893368783633775391218997316223221759012312618741174009768336406081201085613464259647989079977162844858263349458723492668431092632970730672985730521648989515979116902063349036712406721520596433126295724440397893952147120900033989461922379137312553202145322724508286620927076960786167857252097949309126759997813461989469036656231346542701970634930196093503776921949988419020969836597507318971548385801946939398481720586207955510554762367110611812807349938323939549033169375067413280450734091576230239699678708577322719508066117255206951656191154134318058422618953704706060216439291904970335153501995624449303107007666368128626703062483967067450894439281238376007101746289272519839979037449736901486573599268053530780433388085510378917819434843307036975858685514055824480683405675646141163450659127482922831343938765973528674931536781961921160429613997380799120893556401923093478848726587170026525547817964682427674788365556946664066670767864888288608341502882800483257636593418267313376021712540128659538420791116377906269393865740898715109117925838270869544960869120616383729251132905454639294982866429253399095534498384744243646154202934482806279010599170346667789018995277125982834008960484840249581068748611378711148198008226012744079941758285577193157330525077333737775746915940693922924964175128185368067883149571904157536484110831925261807845455325203932415830031156002953605330965563738980690257588356322731626821634363050615283722257675000090158968047247470946798697455135785196280181969821298315832718829408445706693420177603828345683130529553064852508171749680761645877500377847802148156014501950692249949229019921497828369058970912318927046919300992423877835331979369513397451168590050371244437254208979505282805327061324522722245331514107064662414313808729633508126908325870821964692341129557897277961130056828685425891062635720516749814342814137903575341586547307957303402142105442660484949491362989704762503692964492452429071613097426169621133213676677924967797263694957306760151481936305679368787667586464210260094629959548898050203902417753086722587494199398882936281291759131828269427432503021922096882969372611150048151279707772753871015819880607709839581350930347520179291959214490603688665895555176009490439766037734477068738835813451483749921784702418582893733079753931042583436819726287363916280173481345663580649616033772477145416952168765412026270709306481082587861470177016260901488534000420189816556550527753207408535546425180926799749412118033402003734966510040830539851034823699587534937430518382254073434139656660828399810200281833366227475231309295122746771071023427147414574317875918645960275394291227446134377337680503963585055975946038277433106542598545250276400468803948868311405073932811313395240358942627769165104589926736781825226003605471969247611338766071200052057333094403223559622699070743763341583851297382595454165519303845122060527188064953951796971072365364933130206556297738255195392002284145786867801588348917951308211083013937711878877867448526550525763147768827864298370383834874185568402300239833226861786641898449054244450011809699445603339389921325325439763373166461366250384260195205423332610442399833728692617972939893268043434058887047947577161307287001729891290823429560342697098567656093469842316236826291758225852721398537742551214704256749680085796357133024413819827620636663962149741872512490205778788827891911622141186261259485376343413060512426165847863104453123041455734658689532123674156108759249067503944822945616297957039159334070836562931410826897265438039408514065689425785041588183380645644600398308982752124791743094587779238489548611490245320652025813257323528859043632398042354200101195786640258945041037987158753554908947390010022854092854887831089955727003183108909294238507690143166496027545951030851266133202891862941289368824770285795567172948378658068208556774607542058497015610615752525283012989096319999120587360766837549731840951633707940104369478360110226726880701760041287409499233738386517502724478284187673073254702237273968947122289875695261667342687240597567809578250723913417671838191405101916058615529505865752488647135397607861505811546232971100835247608449235367810165603766747154161725451436219177498799089891722996031520719609693179214794436077507441264860401613306578461794550500139307385834784174612958495698163855560706517993827492045022460541556096634236473965226553407058528841972852146087172938474634885929742934440115530118643189260293554398926052161277688338328648291064418854809221398958601121978615300619702648177855825883993185474098320688956880061883220554976516105184710950708017863209419250408785289841045297887018828461801345011139900358159289693403833647828663662843280321873702530302357252586047559446889764412384158402492276412186162899162551818131459517504916500556417034607855009117628193813418836775125566102751076084925019266706953360521929527873829721281016586624516644978597871093000511243175044148374993836242300216384083447535519129787458057588775693462388704105601643408194656598985519080686828124293757633383697654840506207579759291032626313690429922728584457517727463454631619583398141107800494169952168737521057822979586891513897668558837080969922259816739174412987412258464409902758590374565049185185294323727609616452049927421111981246868205736333902336105502885447477542085725453879856124247755120774882184370344887915034291957738347534412740486028553499452581109677291165614012026349633298268639512917885996646297505728896968736787325361807005876356643222806171308083798174983368508522178552677649965719629987704952618210670791632407672985292002605728060740454255378632061175488474220001839790046877453073336266676247417254397543638145024816229033800021045538949126172227855502291985405564968492691750364207256135850152651341356222990642651503166640581197811193820058244407528162645724424575289547007433078037407311594664939822379734718208067252608740165058241575690723502358879667307490962001373710833948651218291648369903306625838299367810457983020205541537885300606545691416595827962551063719153514200783391481374181778011640288265671487172088230871144542674943013224452051541990294815961473160253656445530083369828716963353716709144906282313458580551466887451456757584443116791329588858512258335852047820782643860391271361193447690627923721925398811737297657156660863737210765192128590739329003528252472920315027145593485816429407677918440985389735641454958701501979401563558215493192518339205497795224482535037755815157183702947341449812441846408656666631578675010986617207191844990211568970167572998498631675841140276351205450397211193117716636889990152397702006461472643133093404583259946966553410391172851424174242579754023989628468920543825573024649931306734739509012963508468771220139469275024626765840817635878025326888150177427934363119605366432548060777041807345312875866412791377099366013016753799801502366800288614051169033687821879629181120788444701985260321749492028602996043271561611832591456007771622272812126531086014318295846566710911287919067817503071428273564721285619698201976792956592651856189161190108915495239182282613021100135447043067405138988720674979851913282956864827939823025113214330234862411445674470682173038190717239616658838091421319985600815958560567395278316745989920380587916244708768715443616646778373759829788862974739235344911903115482558700299570929574432103140727463576260110311820724326162554570965267460603005741831179702087813953565349536456022162550233859846277657053780860697263469585496585409944133906774493135109745356321708024334835289492776277084706020271492903415406516803769621340959849883774068211585626413604372703747638577956272041896713003391588982408597591845987205964481789016508337083524261092327762344419644850210734226477744261192068212880003429092333473745073067716408423311050471394484972720981797479937420155621352997817092912626606179321703191112142878730747318292257342266126089096449298956596870505400960575748834042254472342976681273081838608480676779377894115284934887570360257866089674622739806159143282511919481379565224598012271407064925882325167086134494899949020269092766309222350854507383164364963104793676374358321121328044508114092489233608855005127922026983259971509476703175207919955231212229492481139473670014565022389079805102716451167823680402121882700204769145854821094440217047989790326689131268094841167256144217687494914995131565905408813048540648713826533593089523034765220534886200717695981935517635963583478241434310224091854493978014527043149269121741646518868920240304340300847009742780287002053849788569524597172409800527469705033452219419952103961387145904055017376348401305878776984353178923925548158038502906144453771889219450117959101379477100972990176909109960995373125057881651343377494081892284020842667347858838622791358890459398515947841929760438007907717997622683389157285158620699821348278144509749721515814181025824021801145713319883734163262752732775731468843474167371871027964837729826141541174562239534254917974183636461960139028086240434766543193460986233408644542172785458510383007398854011598786791956009119931657297101554829537807534810352815704104724627084040772253137811762315494210858465166567208443072344051174505601958070062774511716654319928324405417193660721253915675621568348822826734361459798812651584040490879976527942153046066958577876394580383133777966314965617665147624217327448048338357963891148980451336890446884630148581286921779993723389556302629627514784332845894017068694876490365637186542660895265992074233379379931503518420249530273225896241660182427526197837340724646249992998311979241539428060819956566455196256343852743769541779179334787647728715928543074304749583949948927483184027002205478880967889969368470995649423490172490223697782394242928590985235696980606833921616244974825100852469695178940718535807256527840864127898714005795234440280894455810276750446136337744842957879679336984519344069875355225124567308982895812173858147793130856266213818140396562108310029893364918896831908122385735360015730753331032204699319283810965107619700633849852470273024165001813686105501245906469374073820900292622834764538613026330543730533470310682868954535766414425071618166370537040663184177776363807122683274104846089026562597646804294405507180299798752625555607227873536541782658325738934602054580953865068134947655949741491553404685115187143476412249894481191611828978294429048602720145605715958312852305679186403193097830049665539980258634840883154099563335443761149270848551836916227050399116609466417177997316267541095598052677411830280013601681553046050599033441575614493153455384176994162562150341124009920589074811768240525422413332860665413007330137995685307747441439244831036488401679142458618666524086649474977618211148179640674096221870753163207166863872907420927311124057373966760963228170824544659961066016841638372163675450105268217572619533187514490671469000029159071900277915018068033211236859869779902622647704841560346589466879047463867498717427459897918508748618272429375365395377402451660307441858052836443817893310331386693662116191628023815700987713820902326762177750857088380149927981665900382091931061023709295131900441019971566867426109218242996881024175342481735263978957190717704544280588920001508645550898903564045421401560296683871962204769800390234226304974130566382204762327148535297220321793760550083282354651524732838161262280050159952104735536698242753156783368755576778705619352177042318003913726334084138699669647654925647518743005985514126175518834439987364894868960909800608391914893534339374056308231552939017847996738016937100809207948376868440581180363754012914717246172004677570734234274687300363992386269545514807374032130458485304686366489236359449968046652358172186278580387083871930255901303030170120503861768095653880334891142082679613034061073238962405933143819569623931431526560447067290057494417220077219960927335910626321895828549705684106819926679798575108573897809853863383664589820310757409982877549464193325894053231461815318677322645151971566341761803662451814989942073883842589219771253693088940983673829847436578084397541424971882636970219039041484208460735851992707321728386798843982989011863860788700266806830642663910332648170498151757273096643137341519020121562610390950988363582256019422781139686554225270633897295121024604271168247289033970497906891199464806108192201825125526507753588488103705346213992987151724029833606544697443147596923099220957730196368697419547170945240202765748603939168898961497099199913437186347857850771108592846092077049089898934249630206982149877962347336318118395441886836614378451640118950721738345818793302440099417648018377100552449304130354284639485341645278861090115258103919051253631268996733118096295665958747484765268013707005853530762048444258779306895105331953835539456934647836441327530294828747440583128143796072391445824960554803771501539639188825044302603994153741651231441234484218230368091802636210897950747147760875898282995312731247340138848949969027988385864362517254265253751262023152854759943788684949160042094064520304433610522232188035093810694389181226113779274181057595643971829685053041311467235113756166159784172451386250616056051645496238400183400544164721359602457930721004882948626993441343745979253238624080498981745652986314020624344092757646519266652444018104601845872686939083055985404977843860185055532475715083719441303382627232002134577750386119590798441191924796556379716789245830367398564094440714635662243080368608313545415818152938351127859265509697219421721387729081949062384296897193064273386752298304249576863513732298205489459324155720227182722489817184471836222935982733326822974527049256629262073000461274030719811164613113269550359447689509409744127230029970992115276351174668270691860884157888504647444726144973612679917837550191079638657245903302631196599923955693957348159844512371883534825178270545286095911211483484890309212639921896513242817575722949492449763078878551073486563368813185813946099994549881439588177348966570587188996958464530787053965936542713819053410039433869182116240304873905972953911885927245858351937258964922960574989279548410083999616672244498509462071687142953040312486103425083941312608907429392952729385912309780484819462442781976966149643193361562845012022973458044813835198077467383683965766442119783635389500106691968450791618841818539422613693230182847779286965862964930695834133715675444401376123250381472896330143554327098722366528762914160359847172623610297988506030486759605289719550995602834578785882812545291736991339915767173066364122292088907756037261789910221152386835536871460062753384946811490527893652338707095514395486668512066431473052837405640674859394834634894699478471017833467191670944226680907417054660823522286414513554490993960306613569678598012253880172858145209362429488868453297739786002262645430076915226300324388417592884711099142714146425212218435242330506102770768337103138075840511726690063432800168576710809421065675366630263641398832187432628924772142623572335338850929407268739010584899963050207555263977000463223932268991966785472100146707111946621027558702042116775392077928751020584810419511418953710865166976352524251963826979457651181931547271360742004596729673609897905897799346550684163253967379950649809315634412803691362146472687619864354301206451717206921827431551054135409163538409419187640573460736386901465936381112575171529104927538881595388452663043394211816796846463040595276169982361769472014528301571068078529325443064080540132289931073791611128219804687599775772902947848913539071003315519381097458550637565722787679747805118190426148111862865262597160243351619205932673882301728402890716669997533308731218550861154453527254690105588360688670697740208918558085149720856322582693265182272031991141835090482209472816699174070343453381125797545309413280348744192021799814198956953609629395321517914666194864379921066831127842678636200455818519696929475828073754696788781410237392758245802523833109089094754315021884056345541237568597122945674169559000060600103506942661951168665932661080456246871456606044511339707463740069217002973833548375846555363063522599572887690348404817853136507644821880405237129372826434366677865975338251391753626582940072596566641306192642375115944425685505910972513210548608286225828430894134183666486080672942594779063886866612111570358361827176835378388849949581867291098880958880741861224380268675485080550864040164348563194631941831346612277360629977517701093559400686566021904468646783692414829134046570492059151078040279425891702021550883440599247493937618526699173398398105138715279358584907977421308572515289823984040005963648979032866422317875220555373623070629883413304378542411029034132980526116104916800965678104726586402381217853173046027853527840359475436006177481338755346512833751783951977829682782078618127482431981435968649931826315403574007194026628742365563663412291661922375166396045019197112070244029502001737585198764818857184277630411536100598911095932380137191760538939178750155275747787241749956075304135614974668627500570004010564938493229955300404640915299968026902361547603777483234933390713691068087093550971640799441719219941968805153922097528528301186224746193324317874325200406339271025795630010453503777857729068606978554988424022591585592969511313442162719288016237394473118050280179237007869851426751086882849058668333086978712377833510760347671218813796833113715837499889303959959232483707157289305235951035218191162936371044449755530228799190373132275521077975936761395891083629921621629048754971806344427978933025200994626902184745740020337401372564474535948096833172464997115353812040981476331354865721566132043959322536777797411192958948404784716768427746285839622613814776626285240656522100159306556540284520532381604980933618628687226454884909035857267847358049896244636050976111882779090760216784236820212012989513642462866150279982541960722555639558255301093469525272047875134268109475545813884141079444568967606461626429079543679806655297776069874383780169622258866065118789903818271362314469753057623650704986663100475395137528846724993024478069279253878852942504497602905316465396643256661020369921877450866011583976973945833311128766893626334260146657063161616410252658984377135613043084340398638031812953843248245324326490778191999975334523220352997956122291817136894897036126120491483195760341029597046119300801785420092955602635082168940050708907393745656747006777238611009500054871098351355850578283420901249177317261499531909301698807396441091847140466586350889079180772043171885881376455718518217333731177271913382905269347033361936794179212730877908221367646314432495252635690511772238358924140719783560623940430849790788137877850314030549910981036122153907032273739291562629821328679346585539820712895861598193744760563503593111721968683264606255717782784004853393473864271674601591314420897976071677207776560871250815231029276711924491220384623868047179722436243035081190807472520619127224212673277451696223261462977153872268523147668654447070787917575629178136706254587997344462225289584938259691131963638046749308653837456178811262277264664031789094781661641274154644573957478487575542209457344828214008714090835333091890197704915828459120606399454885555006625852906882708173382887346586583885658572700853389096665825557866147301638645606751689421889968494935451109554532287659301920597872071413497803356500379095174808542477343116751603912460517631936089017294438001321939990776301832272608631804190400393348065443781890452884546340892560743441400635996001992248044512186534471826278914170623929102911965789410287062795937055695728131682373177031547622645552302393022366506244499810814173902308889502479687376525071466938567064048691000415286539791210516089995208960932822410957950732729231907597028739336118342001724982907137884153679973268741706589635267560611746640228117551754010386924357279033031620924088273161847080276016743971188463870272874904055490739679235848718987496351977959404667203091163207322577142419224777294526818860178481411417397346424278252249419421872373247913779848311021001009371166120984298517852209355974681254862618098014064162496880617869675388525965212457912749722155181437340379072705492250485253648685118676861807336642161538661894695791210128135637094271553464352650818200204029945367699246519010417485946165748337273186104015833904632737126812134285061557684943727185013999782189716785479891993735757232101726270933655744259259226402297858538996069841030699102628644374571715853169259174247839881019770877433941632286109391061249265814238916168045007268016404796561759037936940862603662597389785075424557704630632194144557848211693317881272578287558601282613094710263629287819479648470101905161983766824682602572296409532830824782508602329467841527173083216464482858906350916122645349220608201003190996511702244563072985013936478105516198974014501626445410902636724764278924375255384499300089760809494284935070113193382159779024515221303225634308827738982493760779127980326389177628289468524975864496439827209571777442428879062917904443416906067276549170202853344107299780153685676943055061662490694263391557982211370631839530544003805460028038990988348987301980342508084074698585177715821387393642788369973758044037618364262426201246816832493448488797942590451470633271645999854915442995830704143435866384844941466277846093204468050841706606925387686240410110538898176594024365914802448497968091790752831987546402710099188204463336586666344599393361156327515167396862556412476742156652387875715337564214299404938921895033898353628297820461950669627505632409212357730138521541433368905995517159307464615922916146261800480638107293718175572717910509459357320518868695436976892975006592294445298007308473450892110218825558880628466881376080405510837116813753249089373372119457113917523889158655550291761686346493314963687753071080089783273487206914374781228006895949719246064795261091908357854025493754701118019517248914214509713688434851811097803270688827858650597672168309651414282552108468843571971937530443686447772048379340970357199211147550394634637717728076849366074121234841424192477122271646466199920985614049259224454580428078380001474386665635413504451479263854921869348186455646587580097245444066810651647361249855815296100973518002302473019045979372905512765753826345478370785806478046218153326783543217944988647974915997016842531084717474712956456724008975578988423048279921221385700492656008433719899273302323531067350740589278304156562731217513008199596379019258568771585857898722002261558426623884592976561715338115978347397553874713631383090072435804435706168531462487930594550584239318122212479769093813185073128904321440177003406946114493883148685498159586795178392275420781839664024340139767945592021532839904113534094026781045979638877205055907566587732825114781283335166788846411802209878753715647340151850488613278641949364165546156825667653639363619422204190920672416040930038703702762237338757806139073747536103483753737084259138332715415185519921329977111194005967617420641876675281946314379432524606198554348129153645463999001531568352031991737607592686611503151337828946533782305805035660125289531758405374570624540890091324351545597400364931207188066595986959862899256065972190503212873206967537682417787539941365664093569174145032450295177005374628592204555596066725912392320717004324813500704121526873034132289259886272569282437412464855675461851093627099518895408035075757180756244642823005199523490667137766769957375709264631585841194210469857842564499465791598489983421419303453050969470011366467092588716889552246344136908937976716802977618840054734453239417347012072362872741446927335066473149272675045337597944205441035049293750787093733833612980781568399585673576693086164645728856218288343375660110420205202522700658570654460600432173544727262552385675697825855088354516519128745755948372932542511061155085237762808053062411817726284336560168748319333264696859437052841491125917757930907463906503713094379072115703846562311719338590291751046568919444000435221303843075417944786839886478984410111216464796923360188618688658196965041090671858735196091422765895261734279191199466064110548733676221221296408436465807781792577042945035576461451678641134843762413836080255574944004530571610592409075649067963360995748802300898278079428054566177369516946301878797305467114147476913448415520819682942935746179378980793638581596254685951096212502263276303596619373008972133456043897629922246826921026176279647161885488045587004963414962133541703980162407358629554321133870616824176704754656859202632092104184174232944449874809371388469400864964245747856999674861033057747731840062472437922117733757150176181005736377891534785272967641163983825083493897380335741503824649519705973228610251275549263260339836402602569826556052967312621424211578489154381461524166152763800952322379875887776549130133285336155607646451274817610635935711776440602175996636729466278967788240148544523806870348088291022015235365305940741302450066100755750590414506336032133202158882352685348512205842980654859510496474661842122240355162579344195284840097587505964520531673585884140677048678199692205126026023649894081299814265281397014764634903939720571105922999028837742905582468314258949715669840649220497687751566832931043946855700860265563462152739878401102082948788249031502414158825057190738297531199078114760870392708495494799030617507011854714336474550860057384621980683203865910301149113364350856041906664315774032895319508368139522259127649656119203376198742399394239041444391313746686133447277223118661436133766741758088751193008905613092715812496802745580122858588878367381341744480143002512469960949245521159880754624500028787378374842707062827455288815992181174899468792437839388098358608670183056887320227275717815467951949955105355820030942081116670138762675625169019400073092840419805773242284571167806511205462948544127771056593697289365142355004325831381644327013427168967439156979053032123758824391863347687125410249750554545856631449569389342417311266935264274826674847276384911746009487265105144654547756887001244877268767380088138754239584539432279383698684672353034601798147027755329152948740720047961645106334633834691218678538503108226995716090735097329446431855337890896808826668992975904508790155422603176166116641324078251409516625932894444584263354290167537080219936947166622120313579341436896040654307569109512823872366087677132801750329152804954636236761283337042862767603476770460648598554572026643328523382261432935046337791572422879112710859031170763473781973178821597416130910692686793595695935824145333939183291286380525197573960988312957622348452373109214398059054759978861370922242894409963833028212351358205228760196797197526654516261953842913083550451193531209756772272283155547730608584538153539939969994925684851757979887702649281136919163740795309258375376609165893003125237924661378089844850211371938993917182978065542810870650279153529666452746072203679274568679109257274738658291749824694194472398650341972053271294363587454058181721550077345922541990215902751079392194507632430509491211354622729210272981500655951325182071972733726599191724653327471228357756188309954540214270676538724395658242719096555435310909143615956727168258944208248344133614820184124454263226640478521344420790546644280965531368121848862435484171730394617951928689674565188601383411544570540035220235396971945677415981904588367475430076398693475846846494905863210992484016618267507201330499609143084076951287357999989343822898056566155544363679339672115261162041645695348897205016231275023663203535182847321940838781012061314938686043034560672942053521309763741333837742999919387565671618285714007680961323289821839263037623341849959008596912025906766359183946703649107916362443913175659683038801875224696213135613401944899346759331393376676761418677187401178598610404805891183759999422003304553187931113193485430096378108303075569281639190921670382426110169789255970800921960978926028052858957305187493492957692805786228507627459042495149758596029777374875222705334299801533111881217544607801381149923352187268292188855597196295662771330813771452875700695261336399216780944897750335379963291715331894035975602153594516214014040575759112503401319793675510538332027501974673994488410062823851553364209668396901062395708958599220573778529686642057176754471930540954358501715705304408741890620175366194694658607298746330955537902256315810566663007957950790998989137711521846022164225343473250339670034030337839962563825030965684092981649073137046680909678602399529198276972140726883431818400188192110628532414167608275289657785775767778241111357872779795921671226846248594703098980354801359813860375512273081955252013018224857328027984882136050928585167568337595381973009699558853962885884065863176418746183480481115113008630892366885808078625717110870031749021397633538293784093823196500403280853682363739204378578181627450234287205367794733773168625003150691206180832521248442207292422042330646518082270595617309494498939121343828219773686005517543981779702712667989215237181755374890392562806604943991423781952559234900309008005252266855784141478600463751623816970362228253892350438176636959703331563441593847342858834911428154889461117468015857808765133197393717644723840919719693318600165511208114501367449651746655077102937921769821654015670383536151803978967443575721425574298938136558441521720075628679078377773175445132975460395864275928929132752368773165039299572839126101095482780413901845196231952147067791346059829810988942829718050355169010585327238150023148190151601160492547869310401438276411356156628337439048158948502861149494939988636623935656166352736545249601814624670600820529774684919920543853728073677904690906005769342937408747417462778040007141012380226510583824003866808571236080974105586214940633556647554785191997217154731774733794527657056470491286751853470847265328286612546967251255364746500831922439506182167050553027308496920013571117162413392727402332641095505604977108200794936102879385767117908762513382484357067809883968369502504242860735754901245051654254579759885122429895515953519279046860059252272244678787752945381370851460045106056371544531258002950605580410990197732221373448288520228662432839091105322755753768876483554569573245888667515559519771085443475382917851635137908519715506898502586131322582890254538079083835480456118157856149725816070195107700805328325623820294126177283106106083842606225077608675060222654668005121667761703324181543909908659208283964269429176320347319361761734625496137984384139664095262642199536170536762165975413901817957493901066559717838898912501042844396192355361615112076578268109304146751076035696585757045488742979409287864655044621999247781918336097189325020758235681907726797831913174482475471021947335551335512983751925356083698202068600845752759075915690683621619448520251034841720940000935551934394205719291914621643746947156555423634436742975057240170199904916705290457301825092522734256054053732647475716395105861969295380899723061595878047547394740438549014958217894550240125678016174228279968937243709934364213115553056249537946291931560962633056347313757426920095302922675275886232689771542616816038230647482381513842539071273017622308700537830144494074551497116206956584932924214204852634459766893089951950219605063199505723643067330760229684181799968742973487676159285387607986087507724227043340778220654833028408375587173835756928504365703078731644294490237194016743563194635330277334231752661476538489943584042622126553151056688554019536481983108021351095083408068046947456741168844399516214601916887448622367990086008811936410663291248469533114815919384612710592387415646400017255351541794621409652786072289788654169407405243272007354907895845544336693344733000294433421354987055392870677959511031930804884912832220408191350853120038052879833634937099295446837887207326149353552901980752683970559747616988572465270749517260592457276015999271498548948391158045412490513357885837846981178874951281421469105624407818243005772961326128434966117220812381580548188620001387446406948660091088670793921274950766929053772684377848926906294595879928097848364841114992364958911009395535297284024336495189972742128196569894500692685994462878540747269922599670628834965118577926440005460124896416224597123124373750899853748032075034409079568374162482660520985215773183695470195343897369281681295153826388104352703974011993954318170623496151309594023943502423719496628813309627702506496049140732120981489455491846994863841511400890337353914806284624242825892754323492831805715450909147167155185160637664852256592453112881822319843874953557288266120317491471732416674558809618273492698855495351518167319980946170590861393856541011988679019596882330719822181230272429119491557221881871840257898020487824985028959174115933102945633660906416514550374748265466070577469564184411097810201716663722753862654372206541032765187134381945693517401965940737287552119688438517897004591900288003993896422068890249209210465810195576702790944492752077205040833294629469170168453969819387518564867839397506000887514804752334495279984755237903819692877071409173249558902398322934958200250514391684956977304873415749403374966920829556088232715009409138645701956101067108126747572910033026049924517113158397183370076333647420648954301401159524157508209311226164287238888484197408271516355787025256514624384370555453754460912926606109511313070870639936247774987598106549808753649584948788479881339161250559116928832938362291485413638108065978875180617861034276956345415557799069167602623469832398285703011630096820585645376522677193826377776070855206935399787892285688417345773200671608076085586476465582154642492561816927594210876719208363783280420070761512667120881402032446286658791807244917803434347968012421830445099800873435869304966002705321006484768580018775871878803507575167396369351339263455577382464403049754163670240128042587644987049679718327264547536478311491260530626420341413768115834640674709211713735429718338778846332599764836159024368577678766879369166058981381980118096571269901444950073634997550200396808366844576445260519851300182624293422701829460525281954682418615551936444410169823572769859141377249858205263675343934211956156739254227428976441810628086542044157841871731945021105429622701040205801521058625981661101120531894202959077211761963303825270356197631783144312357653470786269520999595120221151824521570505528634135291526780146673235669897917669896708773697095969442667276349377587808410598662239161387868547230278300817949746524793687561023711482551924991186699211625246733141461867426179553115256749167862438310042600107635992729806115669500686121170549958369263771113890541608393797215797308848925596498401475845948227371109530506827442187025786155431614670672315888256537169572148242669797696129753339190195560656965381466735893928238756464871272068694254761989141943572232940823813157103652765290306898806920080542670669379835986170046738146807757341613353784064899868296192056340038901308685040279208935247082906047879252971905395504463620962153124139473407780846244851271668058037674948697103124258020780377903425385493255091920298089667713207176237335551958684198163143194401066970297409843871496998919436535304112345110049562180104057178758057402629804186911045390735749817315600445244979545473019494921155805469797960743542878966762142980132732916735998455047493981001485601826714845690347375168089815647996664367668978945991815391306684374223596801734978531121408128465949169480042102258048359703114639076968399701226811916904820270588391761308723979242339134727604270005526758085116886207906009769646350060055892518909030629773031267843973765132827012408080693704446417908491204095837338550678862150206218729421949630779942945470347675082526244482155083107363413324904538206829517432865080761003058451539698572123832950149786791558390441337981856086702503507510140874970528427685403833099003278449932792414985747921746309643320200073877865825274436813262083276517864232265276330295675964411545872849702439009703454055856072518620766585688820106202526702007118741852048126387703639661933918494239300130280463032526460945276050873451092964825929395139296469642241415139718269866692355339166162385776874261935728343121812836563088735464775125489271095894861322161542046124102349779981435501732937384927762402134050310862913060722534745763558564035703498628246593743553483738468350614718004483965991650205938517010412884052067670457886875698819223754415244767572193579878950285835714900103930101129348014603760605055736227167379266957405971827797693110638219523595998675287926163412642507205806959711906439845785467078587579630564272826597538147488078365735049260458923917614235505574612072819016336469669122420269939102105156636002716268879849661012937476275399338164094359756926882376508764044956723008441807088409876678061987149525803162070248547754292767949243669565073429587005983461471920066494012959874365845647164337425675541998825909497831948623720990138651695007339413762809122007516156046176138945850488937609732773587140597617958408718225482318844472587100671855886351003110173839149970009742568087661446521879952561379705368729066035688312707684147957799675121022253683138700584770610063416132926056483371176571965562360883959425522462870043686785485717506516540069035904526531056718385561795704878277105700484159454173354261008440227868290707623047938251852397600079155526486769491852633190949751159543482516513970594326427414933706368013993450813675429023620982089391526891422876786985564184247228703979276693417153411011493920637525330412924247855187338721542192158744741573562549475510927849151831469158139126790731549347005085417469661168633472861783854688358572500237105482607830200188787025915638811483806215400141794063099721509660691607356014108914486450624703520041263788943824831497834126250262187872642659180483103217291909112363018966562536232194802593994559193739589253503039313311648233481612017760717485681972064983216149134005802912070782913033078459979703812341476940772306752035142484296898808601515066690160949042205574868001505907493980257059760553011602541138500430596969601848837214842170279505948152936826423041276428751527702602785324013078601158009751729432200419619932041527486132382599928156774428543330434499810762885053061163309529063590584160223341220441940514004427668708412703707599872011396369513633198240848322116120072678906687559824902303665111390787530395956039188262619390636182730005749755505131534979387690739320194890563415363777293871653251082778474011195014249574574144343474138958455353375185338130366200883313436486835755686912852231459457847659506942436527294969291674707371626550883430641620791907350531592319146021191254135619251700108238932485408867009939844589309516877158374409124908034266879098676431904993354740874178005137795024851477041836073040629944939116331183717011520562520047758781555220903410409779206005833284165603315647737047468399733803530192572430792065056645293783538300077487176629304065926829853713030441622063449797441419102791154484629554611380590833976572809301035197536365798142270773840135172649464398780990333384593765635997787377790986857061131900595329167637558964784432958151522396709299925709730645162636802390699742218400844146327890424485636205257259176198896944843491860070104738919259222567737048789965692421039286599249339205998092970059404705056389401710291017217251411196826448177716747036314259445455580811798182788934254879740584139346698086918827182126451759540922266521888614623248143498100133244404942994043183664215982784557830001142534905244779914980175608896501535996198040471337603860745761613522861973460740169565884708392658991606521332102596679457687224574951073051090898171561073928635592185073648395172761431535716315435539110425690523195919916466932866377980744540624225338369722696101333767154689124283664658593880721873895334312053953206934172658429448135081632454913444124021856692688849846840517449684080441054279178201221606891006492836956787839314212791752244873872997031402104974853019098095058388500395554170380245969945287410549396895269250032328395120826131611214629877975683028623713821849555331774684758243438204567225198274491610147932101878004667379242782984432052691294246948796401981435119703738061192354183980684841747638875766658739510378331398609891089316241876637626580035077660925391975618994842482202914076094306783152899850483593537004223764124925442133970344384873537494020537905472307504552991935158668974023217159296997640303376708053933655074892229855396065825732256460812511525249265738563520163745117191104169360922263010062148689965979696095334722293411787707011797670103698520188031107706678198134436404342526235814225292689464000968550640055864067707255969428990861951706786599731551304001382745403154649705729441273439527296762497863497380104645896183241639319230127062015119890033318283629045808536132811762577883502731225409800498341735729475515899521484957115720883837489555918468538762804322626555511540352468616957370306989883021385050579873421964919958377604094912271443161291006225457802767957827172499640344971688518011115075487626887024258435631976523835023068724168475909647023001668806105111188194204389638292816205816351325244586125594924692398204290458225933715272747396737351323083516999830372469919460547856289065560733918052447357771521668760428035040140191200895052528111418947266243015826606807795881163884472440234156093769284917223814719111519867775524737511011295479168111272033225035473591063193021861197278043360354062218548963570075443099273816812295100413636707630193228493880570785939220032758616622554695120580716891177561807384700037561648301638636042080796778182209557725875027878422290841932925791765177168951897224893847568826829816469076983140404870410503379174816156021819192306326281308074829399296026137626360712478839833279370776427567546335242123571713002651466966546063500693834476985941638980399435964981316901017244244756436812013255949972307808171145966953909571059621365137172402817980820831765845071868387976038716442660241729098591084539740365883032609060520232851996495430289503835357765748639054616213395860089765204947200025511894806204896511665526101891597858886888779759603910530104879257700228196558169861234430800335769179651036395542532810379010751944936005809201903870886800247536972690526760764750995249533313289102359797376674500892415964069246604595778895944498997158016847220856774904208147334171072003308235227454789497333799337725841828933319295544121446798106147110960538176193111296860665828649473837833598107165675667324029252925435621830515395341603068440269628057774951702846017499448646107394343588228777642786139206204298168614291092540359662275668211589462979231488540469163259903958725575362205946605148894168264037707363293091102994605433807960585074304292315220667305923853657644567921115252652176960461144918504338251354950031709608206029803906152434363250147667108505761460590673455816767483357834529527288054138273059957528114548065616543086765162178911672610974596850127907672243686977893926189608871334779611750262410266259334527463512409060811531647109133387072447868089231354028688218848508424116407657416110250579326791303698149812404860476259463792106695716693885521599720647566311826934913068877327714296135102444628174902992425587088744175429935482077220488371793820666278980020088088276846003370185508117883143019564985588470561395098970385681894129103015811906607247774284897776488277935237859003596780044665574765673457421728473494497563353241904252328162170217568283193205730869432713967835173384275374558060693050387985167965023189513770639408813850618477039054253966099199760885124406455035933898393861125028513631668840212160689596696025670892342063981494997544927850355109635487825473630641349230395566119660589860318198259739430937570027664383610914002558947719457523586160216137841530515006661619469393678213313106449623226280787877208703100821044191295944627240158591759220819448745236198015869288837299789925973061246802579930399924649271090164221092954615566009622358737302908141866888124424407625872891247663117574953415748708380470529814806718058576587733828982963900214118188393053749715150044273880755360773200817020596294848770821257480012535288678624645796758139098238995328130860590288288896226658958495355917631360269738565353559481423478765448446309852199739600303423301477309921456917491776293962322537557569300773641559918898118550908595512769169168428980634187568910440935495888435519800085763939338473246553076985657959721727251166643266394141243475956869244039870355181569046359730898485121966196896580102573835502049540081249544573377287435048442763215282569564484207881032981549355569270533276027152337413927715544637239426423072465346098094984618535736191665779665443930940473429303184936800323028170274168854558163576698340947770114775192034340724701446688379611089927268068760650012181350852180064481289385676289855520553241715830289833381618743469757610207470041143046905992779473531673336523324893164091754094078949410268014843996168909822647266684575175456325913267071958007443076998250613986432925309923131281977809729852732825343036689554968133152422003975597340083869465660612673288213245675935221818502767885596499227712709180834079786420287691438391406522757599669844137471928491536870761331137711189012537144770804244274575685536929026059864253183862837862776230924922494954992888238843173603888423087661408897204356692613733040327885119103144550918540105409445577154858464660896923318171771775761502088063673844820548730925971626920107356831833822805019528809728626938774117855487257302588649417186451560373744253700445758266800332520688036668498922109678665501603936885689274632203073747774491358081582392532392089751355007060123575791441916235261369071484243149058656995134279200088600303705532884277199282672943320686961210830484905173225820511906220840883735766527006582740621990428269292582950366778975988848525740157092461073527506725542493482504452055707357178800474949197797277801550419733397242448193931646908876245937579445335898847253401840833638398112263808508176218190162138321338594089946668448472002488279621666121845033941696974883052161751427364265010116951126509570336934256575491811061555846440048118996519658888341886864085556480373295691561040785068676285355200444192536735789992142761053159241421313506498250962667417984486935186889642111894182312024025886970484099048332410714575480180055496587284704498240126086811170746620909388004573370808880090703754314474272186632237239835419596077593271560432667322261479610412734465403313817017018204042621260792274327173151201692630509133585482485518634312020509200923626611316447717214810233961040155032203355200907857435286621905386872123576969867630746783350403249375964955405737917523584179423927710454897637638608472527606716454040225709093383091404044956006718311414896945875520114655256209679518871545325161966651566650767797619180952713106467435281369225067257002221593777051722866443796712368217426480258094358149676067302489978480389889376811268759452435086144452108169658720310720695087873124950312870845095206100370859386655519892007389627026462844713750459270081629156223024906966724536844228087549753513707091738428636708463995827657469958585210760039874529083517969897916213478081536063457112981156616061085967132962917256965270198290731936513044588353956577007144259561877865191873757440046211851693737122436089739626010380391166560502786733159828542201322225771708503130933268058832970078083574951622499283114397899876007593144427889386189761578440894051523349665779183002450967939623666820539310856802254816744422087351815260257115289771238040899369866142953813203886477702190098785330387253087084004195956898207174120900038887629315214015034765578701920051798420868678016847642322876036088558660972853038938414956425646739898296534762505527047152552831260779589558235153466843242523732567757585440904828549158761467138488664849108218505431121574092193537211953374591044640959651274608920142525421553699136583985922223905157441529393674629447183757593849330395325730711962223528195617234820030622327090079123684633966184250398630330136202962546721540032498301077015701414891957653649278282426058992971370908486525073001153569838876049538200865949602907487328346827270674145759678028081528895920483128736963998381585134625348261089754049930020826965679774226468354781509849005284383100871788352855540599056022039584537142890949063746568292791561820647755888909382243760869343936602674370168270368243672199139499747380751007682696727860294102004457730381689488617420020916374896824427045952731527144546412405562204001400798002103562079496851053889185346694258307295465515120973179857522952838535855242415594009583848639797583120289740393507413450431401627016688935563352292041855955000516784904322345704678193684279282317322121134741607897171036778994737177634835046956480573540912242681468916644032847948409687023248094629193227130137474436576487107946516477760242419976966062678353186441322121260021731953484396324898603364063087760850120413320435321731993532148665591781385373946754799970025148027259490254221916216070203100675301607327526286779898266088292614482506898843980844997053886339464718803517778847197876718144617293323442213027534231653845396565511187327789207064361793308276677864367127775833195483514058832988033009688100916506819490722856091696472201172244756375324706613262687232972607073034476129414024992295348525848965322864268422492087362428137987948611236708989770191281222576072346979586478631075542578991382380822932905215609962645877255643581351157873922363022153235140840661377646077691675740719618868131108625003177952819492643833144698560455020376685078233912644744767691756761374677333004580514658364737102476374200010865781031449761751333155012593948202367253023445853481280417415726588326458104633319095790994071883765956191022133542484800595379472752463724827609915464975485378628061773771771562375579953388004219663543540199466151112812297212501690419034253083602711135754676339273127409163062528503976924447971352055153306461689687429197139484052357707893762115995997537481597183607718358924060719851720048551261839528036813667833170596235185844971239665054134084782536338390297247103080833927764603703524333576072023364189859343240209536158960473885840769265172974426456860165920010417205787638090619276285065240957829227734373226825556386430478397685122956072906225167644120796737637206611142972113344468428944434038615773974016181473731260523866118570315334810382930388538895815787495247111655811200499975971651952151174988407929959548717199281721000899143786136948062270324670427498702507669423066788880165548866046027791148164176764575408546508148109955242009003541227424921427325018592831719956192609182799813430135394025152258247338536651813248440076501762601355461211158974672692489486218789163310463078405689621166669913396028981053674070564663976089968325025436233733512383113082935539740553793972246658267751161349735321541262962270185920282147642836765029727467097042916593844149547604901544675139944728056724148211076687360792660118520511331488790756567980817456051077606656662288121388018022664607070754878336905647169670741437596150160057074146926981437242792243959120117624533841144876473968876811557724405578713127453547519354985505060704062478006531415429541533940034384333830164155287951799482152772525160615696648160197839464434018684234670172928163885584784650638219130743686322686962762493583335668701023081058102915536998575029977836303642470319983752194791609195223833565919767170420297972680132098094880100968880577064082709261364539688321026228892057026611926275715085011764185129717113433480418262067266929683273206155899719808845546295682143012317020379195102323109380824645533942325691269226994911066538290603975014670323717530269646665301645977871080424722764909375288560824404135887934349557298929028390646002635708003891498809505720896188919598154544422489901878165021675167157754852722521392003072596268048998662826039733795719352326181532215789886294999235693069513653136603128122165157791672112692620563959369283239624992003040256390036635795854322335193026975752163063005036026062231744581365769796600190069395537720919003250871310391832334748742435835979218199034907423050847029914995697202650637214513819927772528952328883580424184909062541076451747832974404599024314629229133877990041191085161334927884750659319416599289470344426922017400873635356393428676090665296577145103250293952321869466688201559553600291202721358672173615786490964370613917969813397047585957804577398636253125458881158491853504545789354514991989467194886951023047210216712293301516205483242163731176641711116022221323537743126889871567700978051405028157891373199809516752494728432077804393706834968082480708544267573017466139383888104234920742097829643784199986290466750867159929709582065126375486042892704096513623294849106905974082701197393408655301268715677411062660208591642880069690031905731120530547098730696034807164959475877711423452311428555699246794250370917403998340636343220905351092797857669996872897803252036523189933166046374149166436596639497377841696207541125187671558245110109350445461453304558911234563852704194492758916952305791517565708188528976954434036644829257887587359193621291980999009166496567121629672313938461992654233307291080819801462226543172342157500381029133004731760822025695527775090600802414979659539721017947001278996987589059924140953601230248843824685175318647226072179255121220055078778151657218964449687527338044894793150000287228876498045267088883876033700165785140454208803789188026516142387644793423584704643720610431534195011158147482081453915647874699021951054474211344466526494726717661362093254567814782489648159905511305521722220945941151736654465350291539877685517707418192056474498583612533821242440411198048292429468584610379833937859775918888625381440550462294611304787972015975995115686723075380661340832019048401103819255701451250906594758072638681055192931313274969381423580692652079902699457736300419664586738492293082715834704344887270505162101814646468448768534352331307060910105961974644837927979019570424250069794414592345875307607183499679333317816911321715770742671017953362933713537735988726526852906520779211921126695172915567514673224786115045939416095235309117500477649430662900270797446230415130586351692201528044451985727043529851219584112515044256171183756073820186991871134176342757717456470160441325386125394207546954123903660619854049060860128884101433061027624069386498683709564148490733055272699857966517532713623484496552881658557420237005837134600643112999026287199092780178086412319259626041900105029831395771373560720135409715476257347531937860927052233114348139319575800437406017376747405863015807983863572924256353875458031942801670314643373577350075528565645946914451266646038766851224792068188722932842764560309810637429991341594283446246676235919011469874972656963210957585021712608401009932880496070765083439141998433059654710731397662528088831544584245966633149829415020370740963150181452073555586046273590452571053897312033783996308907519254046015247819149815914220434562907547241089724884677534536009341608097497078673351973834327802015275275507694804961294622212857250164020184624974084959140724135722284459541357817055408159647655989727510917211573010462697839855272697729815209947672705865106197901045616307921557783352497951199185569047199689954185877746360456137159793886983822214734713139794738514055663151117992582901536921899295798762809448385114167552468209406017996760595214766955320954883857686262308235561504769850896680737968126689755173876105353573109320618127613191355004867450106158161279117333174349141888309730766903993604267524188180289713320947086053286703354841543102398242191766871683655736684040393089566926067896742119629938294892816063309985303582187088815723023252963134943035879947935444628493659008895088221411178637005398216007547427993416275338510288129921328102327001889509518151258826241627809775358379591682333025707292385591820976794155751330827508199176604044951084431613673584165931152257083788845607996218152550809199719849036794429106088911936122492264977668539409961131710006570984778691044826809697430949312295546947822285413644360737104141252536584157199913107778116612717554067704151625090881500417184791943491217530966540724095345469592576924961072643427927908378695466246296179115503685343620936686040593771269908900207283605680165529594552130883554173904709876968804889815739178178254087034512122616655614876574018288795945046826737706204221021346491158800876659895901186533854972596738816609799474939971452803653400847998931960996427972608177401920850307046472152315204417766045905440557070449362630963717325698490483232695594654712514139070977104027727488384223303214946492361975046350492948163573785856500550726777315098063279770885395394743700992893531687145067262065252768957852146632139433096783519613054522303258858380076378167918821177421512926684023589570974287523569701843005641739448251314496948443893166796242009161448874970494684041250102253612800399512067332660895154317515422682895324787105721452722352430166934870035360827311731029959420076622824136235817672675047346959683076543316440444744339362632457634826958344764002191932569478517488202760865170866966127691059979206750204746431999771415381205351369238808864247137856640684747401377657778942588972535197071651396593876566764531870512633656255459855334198002654952921305959716330546039941544710346225538892065839993692046529598289424930771303414640452245785905341009313972922796755925328906516653445792694066785060736427562186730818887432090088178621176767854640519809695555942585261861105317262276912064536750625014879248397302328582272425848118531093935795119079262835227444560478889744845141062524343741322589314133744418124047364739575918510769997762467298975498682260999758006097197842206500236444520340597246039426747731256514568768643595871288320179277477000897964072908926609009072032003338834587103917501899556728103363725710395868168298817825503431269460140580120517211300746432139369005277379697199976365362786830857023730495692473639816814713376898004406573307134906463624885869459525878056694162052735911531744260267826629048993996303461493845792957482472204847924378069873261840873054438815199303135809542837964158087709328102050046059010707990714195289432988580205842716472226291278241395448806971766165264620466068514163930374591945532691532474892667285631941974426498550205680237263354317855431109099233976282660530677894949599314489643269710272198358014053105988740528918337618782940783397075631815868016447175684682289023129897481388551943500080028399879386210951285383884416605713834131903307705168165884473962388549870716543705576653037238307795287889920066135854154118233296156848938161188927916852447892392896347024677418137479972176586444898389495555940460347180179502455689610978363400576008587952295383222069527392351836043633430043116039066137671877379032887393158794348691662139943861384313988870752473188938477495704407629471264306916772404652848809074394437214328117058453400012284302736216242280090422329941959353061810511886405557428186972824329633702131198194511802360437898709380029315794669729377068207385319648215395411949740078779189911861107314717512037588858561048786190711031776949781848766603884085927852727999507710699918570837868599422110991550122102386025168053766788543920068137267168875352878177958206875423311847454035960745221175365281968894764218991709084887295113503634008741388510384477166330826734621509102088740213668490037625364478090374769344484674515782261747355725538564536311290510104241015542634779875007054544756031567895183281642738283411109611955285381174143186521511682428336844771613621860464690610343496138976487844064278591030249547384567004996456515608447636275004781315621018229134110271479000279020158332066476552892798071211193484936259707527347749706734470955680639731350853080791543983543071684745120106497540641104937457492942016815700342671544511282669809392552411576819074941189261933229991741259059409913306731520498245000685902972105322986415070414692886925789829622164412490387406823298762542472509669891675215849903444263275715524207828242395237611950901549175259120450809828389255725023492278654542594382977517412755955476764860040771515208751467924298862435684384447938692792277714878599371124519394422383308871741054903701104428473783331818105166638397158960295884647283587828579292929278799367622040327199459864839658140468956243776618613437141192792636895330432993328550710435516109569575920952528494877096166507923827687266093338956103503914217822190068765270530710967060042463046475018762337320936093937413001738066812365906281146402875934091612743719511387106794677592285760407176006118425492478054695712314283545693101231505744251348976997325116244930367086201096833464814611546134177103990304811468283585937064130767094058440660772989772287464596105200701149870398498342977064697629103052831309272904129268394077217582410209770460952610586252949575554279828409674377581457076117227193933173794240706177988021442839145580312884888342760284161855376596487584560545417387026265695360730408666577691382474805944377378564488803292820295396365543729756242725990614154777379183341411166452418219780709244780504497317107024239401489158164429606307404948736615250367998552405694764906504736707724932200497998329883212085077489457619865019052149306217706557917633796907176065212666043260268447448807656706350963490903254347548457320501692560225129513287398879028642564054549580091813541591313463737569386130978968705357572667491094713291407250981929253513186555484869180352504569196339139279408931965862959515065755327891912855845579439562894730359577026792447036516112167630199289614963334789217416476071518985983978291509004259350123316387647459475085719394830299198142844056690107448629865625300044119516085902247294341935307650117630622168657932710616743147707418942863125873476773559570145262102547031453538380758899390702874765371621012018164941791118371001104836274078022352934473626422788925232403779124755030546803758620194303275496031654360394189257084049051019224286586147216540453511727367601857596260583432899023770227280336352130193613742525513567085034898395700873879649564349038975891566771625694931972021451122783328629245517565970485734033770807448115613546847825208361821349757897053737107080784122787388052350838810377221129944119335234291404806082264423411659955643468108122840957363631413592755703822694782353819454139965897594861776602399122925803275882970834073392544304483166359612072915725628710153808238256398165233441131856556575016200707463329260091629610566175464516092169133521836415705026383144527994121009907277454141793818724722379004922910502279318865893944709081804808554258496209385128027581692092420801236264310354660392235047561096617025179087141817837383657421974829013930673669812026021093040616821891644113340428528020117150889976758370121831620291094912592049610689606414224989523702125525390742502431727936323462995524469704297613214626559244827920998701884793853081272597881226845659292079592014896825781676934354211692889908766188112664181179245872367956343821389583718654529089346329700706746017718943204389710546992271082126003155570391197361083865910308818944919095674117979576520165510424967174765898690738618466870868816134162500352976569407272893068708598116531575805294465543042416525662210156837637211251377081208807736858985242378020517121206054242182095208586357051113107525559465285560212801997708861990454680973251672691443337716699511759824493329142462545014504242046843966865869238555984104670767478478187084403817544786377389059010770427076110134494546501397603051379764719655918705806025973031895529199263525117757404550877012381495787440991906807910706439524126811417182697347024840102049241108220497090366505547174962916709433539145540112505999235582558934516208183855027912831851845440618119162705625248424929049210476199625339376651292294062505146474495078977960431871781770204048903304641229907759448787567521070167267892398600181748428209978554590921672293399010014853055465525435690652187331443425716055704905818200192901047291468794337086461644651926452963012201765305883799263334790862483891868100544004026018949926262407445041475213395796399153880637530126123304840641346948883753611353955500575278096960432547187217340908931942939007105330555173801042844297686949998414891352700119289611784948951522229847022329418826861052596393692305522551894885196346411970777712346161693722724483465514516805783233191177370609711409448036096527468346585269250053947727768120353840202776007655538740593807227611762784845021601948300907931749828607865632316310945703175821552765910380931514535632013461562920360782209224397853905192960904902303240716080456832096525891891301502543065539620602958543967557873087793329265915821320290477458344114358620040872520254260944794020748567764870181067652455246304791159370792152353050696158725350002560733282337118375744208581323655037950286418198123208406252648069369214735004847214642853832384332529180091283924339105788881322941640814934603612814035860446108846423690387637870561438007374201583927423494232641537428261308757639491385674886666690615508478174082038580507665242438243046625199024182997637070304847516102236186858911462433014749418058106476284059181280618551779973358595322220484375337930344647514615872609130071404337613787973690068702055430548071185354265558760718773417926420636521991020698017190472932308687004947880265262514233829347331012969120353233826422434473508071474851669946373577131460777985981653116960837275390059277265907096865442121568372306718508598100860584047103967856220421086107860462714513624131296261758778372045996366551761670581293947303837645919656802454146996719778643304360886609368616623259985104345541141647868277156353302039269047572015849958386941717926950298417522117586965889348892847890814647108016605819946249579663169293729524957839831219033357116664405687178841949190404208534096048909596025581499175685143931522217740756680509332880662456970954940740852362774618314325721017765448344663524639867689624207396023572640101098260089453670925182998774994241520205480536203648289605703469846205362546806144857168038181160584840042416596356613333262909440760198713598019811652112089718800235509867860580581830066651093995540514680292955377073758588662671108411455869438616175871181450759878703571403646578976787824220830224999783522929414187733699697830373212967576400053770648293953812341085676929659172713924385971812414256742082260655335883302561574476062335215935841899750360368282392274034298113116695909957672012769685869466070117744603092571348175779767516322529118635303859614114272201136907426397300914623498105443518211692554858452040372328244546070559705541085886794954357863826627180362277519710337880423110133266548272828628288059005545124528086256532416019163197498912852704256721434903522368122478039032408957927905175412227363458370442194430412598602068834264497350355793804561787382265390274290848992684437859815567616479023324832634167975015636411170150860319272328902447142722646364488690767220902624982853630476284844813671699942766207228209570350270280302026301087458010288832714523117441653335548057068832011376770497027034010720764005920854810959086112246228174486270640041122958939793798713894072169346417176220865595784715123673398955271903273027571962892313332337004428931213213007999605978075640789784889141871056793995311192594199566621948708583147091052368401935289443616248399092268534243826897748953887078640538488474855070370231484852277287061784356575486557798916250878254974881607459333935240724318441514007213094946052349325092956215658759978362573967419355440713377034290797284932104555068930367103950912293172235561290397762275974384607579373644795281838896911943592232933133306894854275913697918948356417929549139496814372933810965395015468216025477967621584686996169347117481080793026550061402408481600636144791285935444999287944685951469468548381578158071589352180859033097325006482999748994249383439889828578675375985749578491628298575459140107294535513598652399087982074857342789022981009917154121189096898245937658053005393835166702980629995544899073147481475101354728684309597736399458046611317768206227761796096679391483525976319768293876705468439874050531501322380969125479360408553245082150995776868629135131294313692468389976379683110960244014265308391874245246542549558113125066072532655379721904408371499806176720116781295974239785526951522773491647554972206990227388044010181837447354712721416449466169535561349428503228849473865308057504527979352915326078424436038335264876424690509658352519163716190454987333165794480326607105247617531372231724845006683752211537795748183389743027252988805887130488868589090973652655150808392758797701090258663678498848017380097753252450344573353955801984160261058188097832347050437341238313247103059701181544799438051800701606991937812181516024461674394087683379154853259585123355033140442033604634708604084052642926460727500909317839561415392016514290903922336512945472121343192031088165045929987904665892105738143318275463337200123838789355885840872587374253421770849403434086704569879859980493224049260716917888357929882337759479961247112331384637441983834182106505465200285709603118707341511204038910043021151541880344217998416350125449233543486510851237957019048014866775021181659981926136505937730982093276419281930473437970610318943341950162805717709770229517140179333836607400407077645707411261039958617456583065267801668312311949329500714581528248263803318724902868140665563909421478339025561803025496146362945887698609948841952304068998112140603169144391087846806399963787349159391656044878756269505635771119880168843123702140939673055762203653412709320870907167919710616780211624201495106931222752629252241537573533312090726127220678736175085797155002412426291306328519345332711488217027136283599424258586494762874612593737042031322141609224747919698368604730961034370784047100799767958536759111448280076743305045617878180402344756964854168308276247725416441523230661939495845604871315217118522694152106828128011563555311791241926306564010924091609582028968225150116611159332922939003261199766352931208026335335658718611458148628544399562873385686810401037124386911603365938458791742438676403959372942222363771556629220293045493352480330172540985753400332004716759644750897963404680942306070132121845959598660653057793180504757457219530907839518726791124827833422993549059172092080369971117968026591402126751522722448110454706228037422721694103887490278799910109829689835012991974699201596351850363612764547907155877495698594474599766854600417140035044929037150828298643738384753083297264101744377898176384278178547100188204917542897089235523301196932736395024988213534356020690147420300721777641372587936681906950058882032765966662464667590815224939839255834533705276856112529000219101642096399765085353210794521683265319399375138781778817881634924603691689022057724075308500509821959071968586130308255614183772794907698489760459151548198167222407688809303488441952581775404143999355743876232198036379866144277565545028582835641863277798513363470149130896518398634279552818049679697237230703340813270229049873439438833399064578949805529237518350122958161682085241791682008868885230418872521333446033715309785968641672357554393128026668951077388915726210037632193719642514672520396805706406077176987177316401020216179257789371340586477985169090694871359482747421707513791565837572930705613814683345179970691166142488349645554603916632941740288744811691701258069661665162721878999584771923866455251845925041142943729023221743214880837076594690978876583117304465715535018931809137546600526379649332808011013245289384376366386758813172612009447920693599675941694854235393466278442016186640242698557342749454564417253834208545800550868945038448465105012674488623918176679521276807943204941635268439923861716988191368267186521389294507106093440107061278487647377859031067628356322497947014873053689394617641769719365948414709467709243969028831348213373470955119765371823176640269382771795967470035170730489083700941697914765848927194782413991585075944007307263605413583181500540499853909681891492615223228271230486506089925262208981569707551848280170719939072654674455783833372286437723507870375937482136425706532636636560789459715033213104023729779266262629967648276674423216149105150207576239889306673093034564567628200243503958600731548479395609416249595826392222155370140937738203161825909385409855087948951949422231046504033483885802094386723046955312182971972923121398887791910151096943614583560482180110490654607231350891848377833828294727303497480260420060851048608053211673862986059234504255768790636301789743123333277120079234096001370159167860315065269030577457256428667766901296974425230272425538724433052100632236035240906793565298736517748657509126276611633610935593101641433590006496873706574238617951907569354079735722913012025580304058153671443874896780156008665868436982274205703694226692818267015445476881230827149978583802591869982218067837086464010185006060983735249432914163981961761992440410657428765509546621351201529060009366191326289033162548823472962488216770487166656253806252304475006207860280254103251102420534989714070386482565089035397581006848188582572375231877252306638422196150260877252631197206932590941902027473143833087109221569118030866690384920420313200199373215115304942943241125193047387599569113800427572774137093665722387959104546396647444153892120206297851296259994036014866504736593447686241348850810553020902580404790404457133969081854035439266937380188344602235515799940559174515654774681392753898177039573288867141844223883345245156111376029223339146074828197439722800277184946257075047447354552658897453737515684333996968562583910312687957114379828214263443439448349578274827348205394805936289973208512758233566705786997351635836583793444752318875046954041362040822581132663014992310376470874597865484192083159794336853652368825495124018561776732686521616915390632583714366947926578575939291810809531351042901557033735814039822474281116463274218706377234558759404257215175730312159520166482562358712875442389153566978994946487804033958192628741870488091251098266567475888528296605047572112009546721074783445859689833655703326876211160730979844778721306053140814139600500106550120175421727042907070797713261844672614009631125171712210050155358570435654064008436666601943976395989708629268766055272736264215755259884226525886500939055645167330108174812737290538413046071787511824536085297786698321983890767722220458729191536971124244760154199021008150869317732483278753005028571165890286196453561435893215481919178935508644346199937024046578264018894717365563810995268227631787079849068854726464660267141054684092550985926217627310348368981519059962277701163830437086412300337326923227233883615567887234206907695132353740128525940294782780634311250644363923525312953864927479107649033983942089688899348513582698250476779288221523729683271497273394581069680429315491903043954340471858661856710032106268972797938471929861344851761959707926957127321353772424713457023898346194782438990924273029223787462687953637641926415014143223646742124878335419180331848305613153947625386207821952620259701371258551568052840035923021102990426523930546635171963399697906154114003222034877133553054505953409981374592673335478613283464285603344395231067341254138344306361059727290457036047986914211657518938648242661342069186997824904420875118935373029445485365895797152377171675562009260455518114636377752855437832953901435695882052934521457411156538148703291485520890334408789750836778811062665349831140789059244132802794727088164750844101919765320070196316701032169851063958449243889730986833903352798634638483591910251907793350700423306012087373921750729942236416289048508739144650563106897691714907060157430803504935823274796283447881174133900763924157412433412871503820188318006916644985456097059327679992595388081953333959006366190989472030649273447970374950999841973236122874084641959060612743104564112042652015353074135628537675743902945277787747767029344247910494598440619403460385444412243655314773054748681754722958546774042993868041733128178321063703132278707592003641421122190404634030106906051722941225620519747442165084569859881340188913478005546894670264829739445463564724562214472879471170979187125263095753457147361699837665536946489325463455756399892278452566516585773739031558527936211327007722451626960759944867211970514778176856353065632908254259467452126360813874499898622210843323606512720589971834568453362657349557322639556510862219676224237647938180172178502188467586709287799933256073090719061420630314764942478699130029724925647253169587818282483702446528016191303737187670340284520162434998038119541595130992107505344909454712764085749317443812808535077023944853811071848252520806198333727872932144689467807461014550378936088623301090106733897520925653408713612916724952282641972201994346124433208733944024270467700239076352272285112768080667427974853731932466479429713291423354733585075208356548124532018775026245921810817424132839029339390799394502931175459524929151958271375890202777961564275735032319695919433289575459923635548866607356774519768528998990403746506501859334363116299338901747265268992712700516975056202525694783633421199427034625990471973124392492831341947903981192009847171762507686301381760348848103825014997233828512657060371641648171325907700642929251848204731444830556798000109558243680418077513678701313034142857322545061316257513118936259149862268190443757152345145044497544417247435397651137791724901976162261525315300982292243967389639223423388094837204734411218018767787098552426770652369732340711415424099501597893261643335739043467857038674914669035046994892144531449931100304521310867020822303962581868471952541370562048596488517658163175973159322151504816307216785462126641084347837974025892243259206499085919461757219784025026894748756124179718312471306485505871037319414412179108707822377629590721278034211564655411424581585178401112347553838705567259319443489174481252860779627334463062654890417798708185229416134007740564792992411768784809792553481879177613069046604178959315484032459999773076483453607649723116961121868496245656527916660004231380578034675696169051719261994619044140889695424993418691430027481018636633967635448519518439191843603171765817137155513387661922103710135229153374376209499296105361759008515134657336274610784694656102449720234769914540781959657511888846614363137126760539283480967505191555463909167274144479841123354320862944621988940170982489658712921416247642267381794502818897862614633690703769896777374975331304475704700351357595198500054518820275181998715643823882526015750244720842641046573316977770397078231212870786506260598195479827007086440189435864175283653429012015406164483912847036055956138014416530339471864514327789750562989416385988320914557041215682558023502885682653796650263483602205727248676556622905677237418666276294070784842109713883294922367559662775061371747311741336365128904481657538872482474216556533941726640240892230699127305131477300432908271995085083806070844459191734715580850382479642925539567914827071158933897871824337415924957425320850143430308246444168611886190570213720256798179520398440666627943892685686278888178201859005250506439829199586348488029868191673610064873269022419026620858573945288526213496648598487467546182892370712344676876884086073313961497501184188010689365751085638920879855167190935509919100087832772490727291942886470889961574074959878833537136892202246229717954305809867682171294755762319225344043469581943705507814257128639981037593470079447718017033086950202355070226064194177563404152768268015237542492191588620622604319552692121037254793864321198502738499478143488913782456217800348527317215566383555914790877011757687188438390214834744692328348947611508206670184387079968569323048641268602462226175939927707374851270834110240493696049719707718794531957159558769965539010414343102628264881444562541798609453661205777628624709909812930025776369859439226628740007446168442407112085962615630872145815428163972091836102756731516069652632615591006031161034635740284220006694496816223112136336823331274384340819170036776435539186274409295765977473282232298434619397691778175860923062967754186908146682354615278083792975315786163923595222342325934764370037906216839660575015984828327391495531678591699042705578222937792390523638556971452308230431627648352774670432231835190916776727337258240437821682587155659366040868766621294379825543978871830237877002463649664795113587919028747656610768027523734941324825055590420472507091019017359528141792870508794562580637011711424694006167161107152427524649949593626213015640351672569103903350790230755178897201051718436692141203607111439792318900344449946433766740271308233341288403867224427532128103952870427428369058335332476673972099920561522908831049630229011870229661504082672448585950003816139941720824152816635212298247655828678173705382556583121539929276162511209994966460076769368023180516461221820145909577285499138222928984408377539272757042288895105870383044252201671333865430700796012110959457728381469160322653630989611432949989796240206777901957067749998247097903007020959596055733746514452756961880989926988942596086093347727279159285597628422948986735664524227362535371221896075620498457848370592013314609264136137560875308536368759071200317081055747871420330961494982308076294125077007226617263009591959704837343643929957300420337096124005183373857826993823130310153505490063174829767314227031827053642712863593213945058980143075842025390211645454944116948682370320456932407350565669562332114485404755162102371368418335785431851432657097624195255576683303754399555647647466555610204698856974216163786250956188680094808143317557849479741337448583329515165114778317474008021906411418478586145868782988478003999250032044499047113607874246957847148666487125734535407765778535511791819577561798747775680563614779085154782535873626613966553456322794176047478568516785677987095067448028690620401796264651238625647490497432537552922555773735994095119317337767450664810345825417829065851850739782440547696183236963082024626084032925345048925844289149641442640675935397260351151479379708861773934730629399069874293292051480443257579419883635514909127884899497708692099715963046725931928189376334912400339156844095056136746310840342381399923502163763892576796334883511222012444132818988266180913262997537200738544065304051560088440670857333210932579644986314108540584458196163634647025109491502312823968266597380655782114653270948590359790408122324568450455428983146691377814200026446416110822427425541050147879456786513958682641849940617154433401922077510158446609850190368784683386978411419301272558303298602810025022688000658668579394962111068769922392583561844771691291902885083771523960174662523693958099606415430373359180252672333735486304628410349345821089133154948689691052922985198879476469507778459852522407851232820349898880241586236372313929098906104985674438645220646707203924671913210887268946403797470175225670979339101523382214674364766269970093212484581127596968895928042318491679386528053637932457039971657482435842383094347781245044874248662953574876106643894871219115908748096679692649492215334965432200824486764600479076483862526983160398733824642068489267301976463340247019764988357200775435768583506771553431704431165439279686285329691710842033013492029515031561672018829165034056271878774613455775879748340016797730560034933367274213332515881240544653687107220904474626782942939020864747276567227712290335369925907454964843669519776383045694399684267357075984937220600273807503563089092090374356771602956612060421415239251922566133741858124922893687162079630523794332608916354706527096330153923938344259749526853926277560371238926365192749610438243717416281893158637751735827587741184383714424481222317602041645149965494506027226353824275937243731698144179312009129468294499874778237555291747197253248294264179053173611539025663820856212426931081175149015278225664835954163579655054858526929940420058122268798447418467628605310975161488380536401720641136668385996848063549291041637123591545602670831964877003041796536616789376736298323378359344398429976707108391335516071197509416283101534839179475779013394967681388455024805373733504262851476196247538830059102911941065562333154855841070971666317773985826746690706671179050133974093037091377256808192555348085769161292775205077606537264332944520963592004764380243288544835165215749088556396494599693152112231802375255813898198538015296933484042340492722033768253103161934766867810551129908999071514665118748803171208916447223547482453608470487633220800987495218499083570026558135126256682309386460999407501260348141113692120670979092495890082329396948762750005044463146213206020247101906556952910359099674115678150301627079047396595644502605144724382361645194244154729869861900368213496094073502284453784462878130019503234746186436718860799713813462142974254421402680628613824097768863671975239461365811023397196950284962654462970964019642325854697134753646202242664400731478835507367163444462095856050845304732103595247059625894648876292434269028021820267515134487430979975944119536221689361363558727237788444585332565708831908903109976349496188090802502024514639048306184207906740443773178027852018505258515219131613195978287779694177579995537844111547724320237527681996802659621781809379475420894030835817956247325126698900573343304897667296846927713387614361330939143380081389152853876764491994679007137054206806030183792701670758156794091111229196663053757345648195099529579575803764349213773214213995633511464925726202924558671616194821021761886905307205558896757493406815476118247551922050426921032821375799857633279353119861723824471863779497291811031552635281624574529449002610709136311651837923671183451630566734532854791377302812618936667417176766303476893351040003952434461941668764694114233302766921016331405470987409528772567100757101356099029434481931961035899571099711267171642054086429657254916283532319619050851154423938693127718583773223995835452431404831097316739287918545719110237155621620100023708648954058959976615948697915657941893250764246647452634401934154842075058462734584352629113153093167589065475711701996225367669798252202215074823115708508470396914106363558539234278140881297116243040987843534759201989913456792526264518749260317967572211350176716050297974271408313245561684223230586876120351850913042530502667778854303356553859327462229279801800739401075973954254972041346004939551816993721203805061351683318501202361667091820271871958714521079628730974723840458069940801724938325967362418576817386637563559322709480746024376273701959756869388855847082979150330512922761993669664163857435809919101029003460936508971663948433187936766495151247860608011145923371817282222628683753831834378653798823487295796105764236596855007951152118570925675330238084075807496148664753624337947724294473558420777582893412142477517315404816780169029984862856531630129218235112092312937121308537995227416152744469025532385544256459449260821930750071767153477540849940569986212515174158043995791532935054008024974105836913117794752678697453948571683476897467615576683608683181768931535667281645439774726458696136748917392872109188170172754808487819481277591920215587333758267919764521932998781357356339327466969800038426861386569333117602649730424041228421083780414630501336628219231297941397486774001973700737715639241420084250110210574091860117561725276896200731655982863354280488985429847946807171969924139367277494705873775923409328292621483290942633076968146806993179897761978268653957418195485926050370893240585836111754491221615315860572814474824994752596188573719308325860732601999115967309510246341881435102684051893273991777296873261344009428726620104422562267603023575190104401679999236521368648151645271246963135462798106685470075084995699855151125290590132933660507109278588572163046850334724709318888759270694074860575540619539000615524546493258108345951317242914881667730374895764781847396422516920434971255242909976676719662109800757720337415990344996999357262182806535230828834894579556347571927080445652280529817318422494083473306840851509338162707203819388558068045653826479109852215192151626962393371725577810621060180725479285000044871397144407973709208899902650335242975632446493048662067944846961176188956550141542304432847312005084883250240767327347880715112177803819326629172982137607784992352120397905105532835176124365234148860879554578325679222018368408372158005267489712800233321239013173873154097344279688250233024095545788344589476890332717139288127095972893812866895634397358447146056937037354958477072781458482661726686725929601185951816754772418196828289271355231517085083078280047386071122035275870732129717434172119954229435193746626760829617978834153387143168672790626963010095603544385576414832309595021601369018482818973626383875427055800438464850278281886648010325200069290226593133823376858467652934939351051486219786129535740691937113494999088063368460166878266822398331949705089153342146667855495623062602205308354741429338325082186829073323186291878866866912710957465336660870097504795884901111486479992001726591078682297760931556186261370231906449865701722967599346691373819291802741823596562639478392187985626713017692162439646454469927568297196005364146347750020566835625638054520627121063548178532764318028127754783285181450666144658393302641799845890158425306480747651248319681482939744643438910655730952539242043023895834222874467950268453274717859616081388096162033983749446309120387425077353126091380922106940782575683903382371824898840267258707656441538031482718850128261420265497506492589381123903354672378605366085771580984406264762991308661866290171599784968340449003029770969898499950567156451435030160862275099524247914105791022378578043260553969149696864819759563653028181136249257100619293355680255009767415715124671471324404282625285968341260760466730459055720676431240230191318809458313356920106731130315399559155778765876783866239044487005177108299168371949011899296441888551079006308940390394592827441249005568494168320767584309718769296456651223145492466163207844829451100313593879141522776254037582142184806364221214243769463884751400927197610266946603231518995877639369936688989107155560381402500513759693343289350820906909848192449532631930695307075785157071157602095488219692617756605819124609831513978600907108860294063343745462372713330223310152624139679830707704805406034402759213038285345365050347281521855814098214461874374291046606321911041122804414270858881877382885728311542923359349026803998696335989002576641490094070428089779881619843566696540014470894485489609329227443742116723951810709017062921745373268152650896752972023491031182710516800938713771159359230109506544230420938344871799688088052342965947135803196169947209714152218042719436784937200912637858507284583011476110796652654573264082207937079435786692979690758407661771272747046986616741172957172665152502649124052878713714886565426403087087978573797556565565546900979673734997692247963725555435878511831379741682141425976094999978239228863995367976172432925883877492402352473537035931185394955106622556085357152767015210060528020131958341889739532053481496473928239741584898692276136252657351237443307002026088337004243249706984817797287094100626357163431653806148138139360292521044101638635315059663888295780827891883405160984081311167736709835274884820721714856707407794459124476981279711186864105558078468634045413960699008274674287744596033018748814757707169625729156050064811598678797833131267783608078775156749187408064183275102751827173715967634599584246422593927122402710945342992619409860901473958591153964514400160136941488730279936225938629039324234901861556136711089859052864711022643073172661874813303337906948619473902755569888312461477172214592597094907901922260186635899386748693204078108932483060776910832576189309185221964967073905601949783419722970170507878516754388168813556134379210657683635907384078643043967476174947042922558423274252138954034780075678297670759044861777174656805013701443294909988738347185488078287515263215003994686246634398336659952635101405609119405112083481310453977018633100605393423050713967321797120299750487867905932271029802663320323550532900971426905165814164553470591180353410101280918752580845566405472094423669653135544144167430962640757694904723941050254389794187122417379802824883198130316604152759524788685634128065022923201936373027818955306280697855001589311236468608797588984766665926131587165536786615884642504780751575426754788943571702927450028837856437897269208635765719277446728133250628945956451837151310088400834393060596876143025324740589271133678747563042415930757482519920019938672973192834251090459070181437466589547753906621659262755671975069051398757058359771213789553910256526458352304011535536377146064981423389449167105705326460333876513391740552313107408943954617107338247875856787459629961525906365536016833548686075206132149522657030455182982929631983605137896046310785951121266558013332723713796608351702314877073946928475652460006541995382703655162484878848404420311852680061912779475986246313773213372498605920043015127082450826219768342114017382404491159230353905033575206037252286153284824176549399865311755418112197212678772049707392686219895871529311412332142095502383936464988938037973993171705263036983810870410204454855448172833759522251839478994218214431792731300483531926911113289395810087237801131081927643876903581194101589413072585522854669214198725174243835751275724736612786838598477752577836852213061098076051757431988443942341671749891002310784393896437467984024196029703138547228079459733582667693810347438154401816177875243495348765760024486110710320887264472646532687223311535209284860904861472585405860493730372938898658740002778657006792757691376814661637805267398455672932457933858029288763458957542557337381260982028521474037967653429638081098677946790522340086478821874258822298519595687039691395896511992386428674484529345396294821089292003672184340290817981310661529457684784936277629857747650630608945107518803395675130012990830393319554607553845055819713108043719513546977141352320129475354379063764660191059199187888278709861693101977532596757200510967765460265939368508131831298738478890138897722888715814079846891057816800602463814220497009455109654595969901033083810016789229717018325475460550699801720388501000491578673565553598198585023513852790566452849861894879036003263566281551647059585859512094713114968779029741605035147733401556105453499966999983612531276430472041318267706031257271877761349750638052422962089147616886439427263114765072190339270811749564626465868074541285955151854839253886509525312608412161700529506229183406487079619937851038477999660933973193660756904116491474471537451951893770175716576558212818651864136250782850505468827929002807099096737543485925859871901376329715468899235037200996976936784911507735175093130915702277056063770147955050912879572956550353843260930636803095053564596145126257489362292971652406758152931815304519325165886064676445392104917548362265813422787235196865642687279099270563685682815070395669028975150423699756141876977582251072589994101652167797275208746839000891520572861835951242423234528287521988286086806045250478235018399541695408404817327735148115731808640412988971620572390992022616495946339892673328263479556369084813986603275159991094105476550707805921416662390939575155260519210504321024318585892331971354671466820969947331177730779028428549564086204410183238764318421440497729038765332700790452463473588684410020127002954615551124870530510552815753159232191352185629633551672393054319954263966528770813159892926642634606366852453067276253280131240392641829386372642236906344122985309157108424796174122092574308754521933737410228664180897821722158135251306262046842052121546850926055579252261822965276804305381716283652100595452084273519030048045113869119697690864139806529114164788667869467485199970654748690921893542190095170733527133488237341642215967140008314836126020928581524702877458765257747416692316738094526252062221108884780599312725008380346363284038337202684620632286659711535808765409877102702710698650135523562391586757499848986458235757038320074271914153690851342012364242879881366008410415028410880000176791032698542722783654694888717032830042142278084005643949238427175539948031100291747132268347113438110596944325975557285851393985971151948924441156725254810212176792994087897156155174809496542159408572908260953417573654432915244494948943076091480344385762452015985441102508659541057677166062924000660035889085614083270908218013764134591659380128738255398562041433634645595417603509093158275892638596438950366436078363130214826797148825923669476438490107641507010555212542195555385869042333654236615119405233756908722515847861552354084762223621107243907170597712233634288595905418819489536459457327857817957040056920429631530116498514450657827629166703590843928883328979613490989043897907998375655793305955788391384761155855484000044171724435214033074793683587948072255022593451127516047068987771510218870410526322426878759014165184823601224182374791208558066420390751352402931646565724913276899761928120272702371889716982893768370666300724195868575935611862133313571227263874543886345583626193086617059331276873403051988934386856534313043072899653256919572903984689461036978039823680999510077723189145270068313384765607974069557970568624197013356568159491902180885733492296721721812882215687219056638605990959903891886026489276307284214909231694949798538756417022627230576127790790427865501226419346454471647081399758990888016915984083454875114917829761795500524961794362315876172103041066261778132418357660037740914481658252250875721728942038763565145695771953048463008053915065728917022626578423059933198574078544926566316059544867737378751967346774393973323624758205021977982081457664659115173374535956181465035757446039006941161396939738904913490305739365025062892467755060844207105082131864684146602613037740767763009826008497899487654037260519320681965490262038154170571118237716611302678326891937927468145863706850545814126635591743001282349877080903945219363774302538211706560882361620036540428971094619036577712953462270398107221909480863185229424628698479026390117483786951505750215091469853654829604555210736142748100097206575128105467381182004444933932610558178984298381542352217474426834006152235292359907930550340486378214468675444719560630033165707048784723650687025408374730461273297423849768348653618431233035350293443007248999442916993135292107958750620113604672036422540294787238316719746961480533810331104911531293605559574480532666134423582621964754352548943856008502713332589793036506841861698230648349479975368386687980799019962692939641608525107250319155672414671250488664726283503916234198858819202912548553476876358088503684821970616861173326823288234789152367734458328633409041994914961524205480034328472869894612736608386512427898863251231788392458642712124238000899062856899824425196705466905041738488878254482858337568114557830261493641131915521926867480574672765110294480569428166173487452116961984093538306559276123961315134571485967763720111638229074973892487103894142001051139389381756166357329595506801090707401771865819323894447331021170176019586466080526517428407368607491951762319240525478292535300039110370921816446551332188635890500932363828981263258502024005951275275231736321958731024383309461151433883142446290731264751533537678612758308483962875990748844483302342711889586612994665679004725499340449179528970036767472073043120975882515089871104289127104063911510716802152389583510166633112232385319340896254468796745312423994724057192880295082956428665330954060800738787559028099861791486532479012876466794644111546624925386167684526595668574084913854945726925477424138420468161751012562540610663152005291329882191063080328279230206637712397128355320232607973029419142323691450776210221642350544857877557990381530053038460961410795476767238196335138363642310983776989881985340865523750368066599322113728859815967143610303764653221145651774092421281262751198791434347701403305494394740108362322653985270626691437717680817103073663190922129601457257138546868867463416344297619935105438671108260840794579875369554442163242057948555989095563674649505386931198510589742830783288183244563111052158554556654109405790203653663641754907554304666478795962427146344557956847798756495752324423230317830387736119275194671646394598750467914713487067627009610649745104112086337030715491783693868687452887470344639326554196531542162959236052391400470014108862222961370690239754469227873176384205645968456742985279709215397897277168623366917697635808655948278668725014250909873274778154146343111900110561063302651658164885275971277264284422866648119611463919231234966670676372981528867082212328189697478229827395645642683551588474515874047810954450812208827651053607267123819338816542446345905496653928059816734302919668797547504591131320396956545178997228571165093549811134366104463923530283754521358662395582248355039048908818665649623782699633981760850562542112661571052737462255613885915323946139143021983083620114629895943061492344078326247897845433902979669515300321888025227829257716400058555735683122566441401564585036616207574081875769716725347067770207278409241323543873542443751613217332772034398626110062754385534753213257359530617889362663744129436257225660339352923649516202411820390829995744677248401606050720950490965019860562771069107762721668211741586981341227172705638254340564671419021781533017256282158937796340710522548327577419694114266553617027547493846488861381621191650647741421727538217758483717244102287407441775252066207501892141031764214969154061493776985718897509217381453483755761207525242938016487694405234719287480253775383318313232363579534455730379945160213784669220704406347847993950050092152723303813377512853564286911693345478538023405825777467518368080537516824166252355041918932007415178341912763471583688250222412177300430754998944455102623175725718134596159561522069436833104647480130618606547086887617966620094514303019256869645525602320567902693704028897176914105501487035950001028966823394204386831189005127013610157692238743630070914464162186488575232759853905713649084861899798563153280547457784131479112954269952194818882095606772056057952399635012046245761166230980751465976300044319197926980037896098187887785699302301134547573794875287628569320473230435873790722558779507169341213341558802378868920423973002217445573595740775924383252654107633286958998351901457425816293200995543020001161853897675627277984856761079009329656859032136558301118120232763500302934721930031146306885102223578230780539149212914636645904286478302821840932835307956951211794682321749401530903064582995970899776146509364427796879776227722367550089429455962235648837590293550320414719400299704221114357298100298688086669005453482640077722550013987923735824062117500791371701603250365093437474036294201088984238741872966900423261660185170499726236318198637112825431826390890087728770727219692236550686502416081171528536103878896925467934723850077389870372642725830937314203934893508688597992833932120649335658431196261708792295722295633763438001999220071089606034362823613226805730154411338962770403889011619542877195574641266027530924296945077156077960366822746988605632558915443445695385700934627347728148906092056923131054403367977924302973377808336687933889378456407768802975799748216791466423685069747735703295849452770299791548702450584871176846832461424905920419193175252915460645178566761524498481209750378605006846205262632632421513177344585405306483614824506886894086097340358559947562175557053477727158052517516974153670504711791614909074783897610614137239886208161581895754694644505195266804856531890802903246617393322668745199945638545471532365166336913635461881810117443253125184274111539807435076314687668283692508549673079648097043116876044560436996227029730327178504572695101448736581184891003609477529127682071645886686904406194037996470304818814235398146000505074165221768775824516576712688062632235464410604964951617452862538722503384719121871329730373173929538450932414730654295143764874872747941757713836882080612425505385443770651429334079895023548919387111988539279839171367412818334762468732495953563815477774846140141349016166921245994589375275535217011895805490399985012120303007805354639223367044397837958080694768509405051849220476810537635327419255635034483272273648643359489000862483624985245407049350104307056846059970422062384108991087578529637715489885555169591889667599933697551192917744739512866452786255402107610038845078650008563398235332477186453923871683157179874324257917081335402348752714385388696924825518412281926792643417983395927695493533144365423971407314622021231371805637984615643059756097736413399637648579505739085807135472325255834939977422655901410941821067613511060881825132149703037358699031532227296548426658904242706488139851989944116895230002336432937429600489547579382820294784962586540068884439127873540663508723683080346801033504292808890467756277084998034096706759547490582541880207944966534522615531157134251906370587605869542401528639528694916732237902002217692203846253509716880343674662634180094996476402211889961760736794273669254380354612334049768249391832823485405041449679350726491040551634202962725621428880675376681574955136168445628019651887227955726917470244421416618333068369231116620328177897800387516041560210957945690591776820368473808653851990372442043704851656927649563660275832205869657738483628083310820369288048012395686672811296761273194311970525584093148169385526660540250503991261792229622765579499452979990005233640010865955804640256858845752870027174503011555822087412710314419673523871745068303618618453733859699434070732163967152056165681263333475025643126263465285764620856305626841925644967092513551154509761588289075580175157393691338155726202946593000013637354663488024164645703866376057901169561777016555764511817068216004598535555226687073155057350989808017104002098389839254122679902963016828693380893212505096568083169893235221752305192621804249712726087554172040927307066115198071542450696195833276569137875691463912797702759246594420191713216652096533386388838678268160288152300217479123761858270801856772870614642044953459744143055909182719353414363954499842694474088834284697243521054906536495788415682727851650969748863908070079551575487857077242911311450951560284328763450163216462499004993802169630885357402985410116083006279446103493441306507774638847031475888646335026719145570298134284654081752533766461718238023116400368335856310456694709796504100220903540335027770819999209776570698786228301065585460166708547116704144361347778012220082628265894884316312847941926014197291108919352055184332161254455691858935433010613148866654359690532397388590208604173406862169201628901561720618204750782406728991042193833044915483643855685822196604753974837894774934392048166825966472195897451041141914314329094260755491645169694303340785573593932302703634902020589659089029102657543134707677303904986542383686671192950010879448070099950559172304608369098975137980183820239585803174151043893430065093673823418270463630444030953747374321922179637260114709176385502549610950647698982299278460157301573677619800463223783645799818509315716628647012469418820767163530080589097002098505792174664637779856313389205680533234856655423687948537352094361921652394929280101112962910991460158237241075872466085781425558778159524199267558773254688484620021395161011583844756290484052929432882867048302015361729030007420150466007633394138655810533649639058928645318208551463935830888855641895973751862487262333842094549008276942553210931532141253540831366612373219644419789517975268075194571279237487979524559938791023048064808002226392040428615182442911755248229280701584594891331958031425702936936796164210987726442538503252249030087652433255911608823112332095439377030835638390591029054768030460616272187963419059548084361975477819899333555009465816886556717651530990575117442564846814119004393450250791516002408631402559112188670282258920715712533661867561827285696783435599075697760662821459780113734411368179085956736368649128181563646062931200595941461200494829001987113088168117466245349523856594234310592052584196312825533891641972356847590071160230790681184347884449037327834475250298798993269147121984317605982186207645110674825878917143773317544563545975184687953858935442512784836927925325953114148412209221704516388530769814968234288880044341246371009149177786649355831485853151471960492911553254359046061192927805570136890251432404713176388436742444271851783572942867105794653138261830979592704795640282265517485662439588628708620781821508964726487086644495886851429469302914561370095788222789528509043323843181838283519164383798351119530370431759069464293913712451968872825182386561252159411399023470630270854953219125308566271710167801827478939173424709309715027431502828865017655643412634275131409577795990344377912263663572966280412399629918160561862973621823785822012852230481628633948174819446162286433091892916429291366320084304714970583840712475294819583226485651943397770631542963362080201342780201061454266481448570260286032373681279017859972788352284495058183540207434751643366904119828039845272622879885586126789379484682633334668228616744465096618025581847370525301892083660885500029371511173033092757603054155587498122442422415495397901896338613472992694172761740948714416534169947000965673261232753522128624339978933182917156968924903792153598760426987945307418168200327708861610250843751791803673985089963407643626630077646705063597761945650527327242959727105722170528774272536326006707321077301086242354777402449160648525740401982028395626455872154019327609599963808263543376103980032001222466121701907182480370427481427458560165712656120353560395988248636652265638803348616344850169779999473843754403591111559651963353219952996575138490611481918615501940999098006449023754979830095902983261940286315983400840808177952363787483605746691372115926135305296077657620503046296303701421091634602440912624464725078601507658119695445003241448652546810223067190210157929517835541672831617402312744217224663789948809246973272781933548523601039502663694067845969585974312928122680492761935872246711812344468770486899815877298435209037017706525350273236325429853639400993431151949737689186528748311841855823119957476673164937970975646007979611168757090152250325290177392285669451069784231652224695668041286089022900544960470861683466699837326254620364482962565264162713925221216453843494214827423779935214740989927981812939827898119585569330616170627268977285449124157031078505694634429941382442347962329247677827666721647933449121405843596031760112167748900605468461131745607929943665271500433351806900391615190906444825722302240484336661406901929293889419301610391285254700584380831636578449518442823560128895664753076346526029746831563023655020681619402365934310074810866419692418369627473559584796395483435283172166401615397479613076241275123333472151719027657196780885772608226667893269408792412183433250684560521155545653688152079446377941692453957868890378657970211533779777985211863194538642065041082890434719784371380280876517436554471815370791205129747286379631730673522325288494572186103374860551968131179325857597098518358627635445491709651560066315785867026705020171125713062071690578075500813622515061692257533651314018540884448299389229597973320349263767436886246727537465265034373262194220615035986446895160147202313068993432120613847685329871781600810964128367404715717917784113533435747137691075875252572363055897215965359407244214162611700820535938065228307906358853153601266021568949365787802343538962556639316505998063593884559296365463099912453288544319920654517833279596915552629818656808104609332766853170037554064892564159297455327750835793950123233465716578015002715130181676100026886935412719468760616110877107340035807116971886598600135610232148807171533726684953181279099829664957125721887942334067878745943240474785070127261318219761187970775389031281761238114919314016625989256384845871313145954055839881839196206512559538908992474429764238100403756734685376877718132482413621105402457474470069039631840973747944408758490799253696834633846189349323706277618221760664240726371808529887305304632405676237882579831113291689359050007619264512626021080302373070764093550576557119197665326291009741451664781785461516682972178446077439110204417519958338566872460698249458174939815374115312580045544210011090447034982366958331899843136357669779541484363913107144926826935690761517456897026586583932337642849826888907008158156217199079909378338939473831472558408026552313784182909370138514963155206505882868080472102403444878258086490710964581085836021066056697188415776200957095719344276623606607368373148642860247737446232569746173903001556431024092058430842893159010138059421940371920088412738989382488613313282431709387965185280966802394332228294850112084740818070816377626681586632171080349475523190895770716483196955190378974552674699673387691094971401589476937831699450071182146440015285989786066153280112966298973543680589921766375881495652017099991519865230193999840554398924504734962678190169117894828697480339105136560703456060434413016300531603560597533702276951544533034454801807124434502799723475967785542583882920415688767600801111686599149813483025074424605068665839895153218254809222337555550318571557032490901896510479242885992634988760361633880456502169257357306349376485200970467528143516438524121449379609806153684923457574124777923632318103790819327987818026415533911048696467151571077956881508832786130105959631036616676253778069857429816611131358631193638356601851579394285139474335375293781207141323028801592517495563057263045708281967994473752563980512888478041941488976746593953105175138460626009366774233237155724846552942165064293075267992147010289307017717478514070841304618333379571024020496836937250314303381970205052953437009329122770305845579513746484533591236418317813509540451282556373682359337137510745938513004978994409712590437065817272560771697365499926588286929817231913287113988954130929230153664221957289910550334200657021608715578276068949594075718992543997679586129729649860943752172383304339353419656562253886352901777378256109601281216928930282417319851110109690299705398989641691450030673907895693682585197460097486651608184522497628364633714956445300330512442353930227502801804439339927589446649954010702323426713952345633853272648797238770718649467113911532721544812008596581921797503583057718481899175600197317547915652913971063487188741026878248638780714299764102739865660501108572556796903117309554167311251119153894185791595093219341784896485647028456859469789431364328172966047697125122957104414988784400375781727434824854936807158964154418105995640811166507566716295779167402236366493339649815664835676012071044500255145586326500226650492226227232355667587495914623712524809487818136231138857098189155232153526391839076580111462818327861292804055616221703428353752619228071439953473420526061213740932569589782700324326109113202201893839457348416416772086883328733114904130226932027854411072453040858493991532680939847396621342183214199483417722131849903485900857955174246290457012278952596827065367317219323970487392806095164372109729363441243953263775210260943986591620849477454414772138542280429825050881006672820112498363263892746787510567592295735391894920869292073634200744459329929069864513220580661321390993069530136891430746251116629216606777923248123547816741696530129616938488517647908584944255092656454433936869735759320878095642332301169393437528895072247291002417777643603898189411119536486650946938893265452596402956619671543468253951701856559605214734164555828341628603313227112605924574977585650375645588729502673987942751346682418993945113409485173262338945203974198049636337921849882379268273580558999931495190555867445848325372207727052111874404414974445227914624646714038706079123390080193311298454337694595707217440407837183519277810084103947399284049003094814365057463477575590711205320552808873687247639759665694057650328821232252685053211960242953068135648878236171872308843285879868214019422166107790247345953949992854355745720636672640175844358855830589907673425763663336417353258922970140800170677752995150690494616002797479123698713441141277730824686331853138225326112323784146621670773848026231477640875560043406636130480190773490024154388043066942205876516885998173294965423623870400033914393790401753365277465469806447067362150881255498046098491071751772307436144931147056617515032079363403125816382394637713676894026652953180024516892754499199646455254264568425714295305529646158981258742772687409039901517888684156101806483662010843428394760771577274877363346546657327485064378395009015641611765975684534554791371033051644761378347000323541771010604425539981539574016073226660909709200389614646332994997679016445208462885081087117664718238769643403065613122428195885235126698976701802538974092040862116858408190299637504157486624919388408966133451084460966549968974381630440572338391112435632488420918551745027886671712974561275936493550544696758302538416282359276267923858132587898004844289292369137002538713113642692888654905374291087125351324995188848402709632366297744805204953534378456304817749415659291865170360426601764514407211995483352145688003871775038588250427925595995290382479983914666191165371695948448642090583713911190374450484937520900045367239809237948011280355298637164500403330755799518253244648343560172289650266055356577193789953666897667151648384449348589548314112607930885559656599824647872633012486966738271995141982415273021903889020341704677896379349903602816697381603240498441500107820165681110766227194353209960763075286944087679600079640083452800150460815323149626094220686636740221068593152800344064380857061483305745780481307963237987843014727167206661088747099717649308188122747694536190932312619492599107806877170499906624030266814284545504427899681663116421209740283094111763402722553872674956059287522455594237821562840962256010376549149253789447553673396422343658659087211415725452837410870076511185421904960691613216262832384288655888879835045880422703972070373269851987729669881559891134291042602386563567176484096268223364746491434053094029573336856278264496968828989182183556699623136993311199927865232807478598583355564344061084551942706158595580148096414046340034073179399754124315549023127580338283681971129655135744201506921061051077412324006153575504362825617441663988348329688257872743895337864412732798098670862135736885921141800159450771235617784279549523121358637882121058262871055288111160821558448494488894310799554024431370071225768424948559291250429669445499093696939244216305497961236647222129911745935063026469683629970626644907947413746416218846644500437285493419746137303627477437286657826315124902079512830477471475951518585801917434426807060588538015737811962536652853797695814930911386262916408046002134591657169899209862892117213154166853588376231837076478632233241934998311717737017441962897388317753770062864883197008628747728763624546900181227633180748338679927313755792313005409727615759390801562143537970007805229830798742574081093687529535438443975383760333995808431572626848493687946094436815931977798529638255579706784908907469408306369173231043656601365872273372721879616679769548909795527840400278117133362936358516558430318719593878330714017623143640228819100457595699085719985993517072068404562777263659790717552292401856248381357811520927294823785072974213034618900321114183259918487603911154632177333423318228770829512477064062038526439561764598016054699994053861541554334963270438295444364227013823937123325754019477128256966896081536075858778103224827859384965164428278033138967309915325583376623500934145820016573126570924533482919784049304125703986029732567325447880386060503215984332701578246905528325750698462542688823500846363217448925164723177840460621745862819920125725314414163811189139005158752654262260294530865938560923772026718761854547681710979224479837162036252084533556438013463392036951317102782679106173827617159122167767095171184406989629449939854731060380731337030747112333152687441535243837318591653703699977055775695600593045295054201643884619671541749259268494609164220648752639353188232505930073235877230732052493234646389087020217260364974185863975283827468687129410842409367742917209923032882756594877124838836122553275775747750938730623554638029576431703396440574412164527211323575481686961797781117679417821195782372902271517298972675402387375454884150403433444145933514176096006865081962172679467082771422605806407698084635941968549738447246648227101756111799017346787429446542163482326634719136551632747270557812231211351500609369934236099821032226236577176287029722886665233362170507912101772813512259487956612927101345770638224561958573117126268131691986617003752110930267059069546322331638218927380201913139491167977867074194697138861179113855773531846669297124414299622630767301670425169800762890589741407869131152921378843054549024902854627216378108710971532798690209710708193118928611497701566792153960992868970986766852617022925464710506858236398421725833566992038837773242179362007278294856508368281580950972380561481447282946554009906058095556518056700770658501525369990691433284766346410090479314090466386014976396752467417595334656977299439821019826863275518949855253827026557810991070074379868111226818750759730694247759888970724687293825204398614543274155461084103523693902064996414518936513648474790678857640865608771445496787942379669970887774680008414837589018214235783505946045793953101613624164766592727634382257971545137055554267077778817895400899177572649329699184217628144679445463124312091148678567707065639166964584412115749309314143204425279783988971141006182384745101439919545766581763467531558202660935650094369544221505360163153152386179411832607444436782063681382756091209160481140409341386060223486618349847885974087607331523502159467290971453020940468007221197420709411629012260944283431956033898668482481279284006505695609607969737523954475994849505001158138029565051029637025610903491616317738822500462932438483677217324645436273970043745966867055015769190554581214638792279797454419315234465182125367563669304062538191085277403310233219959397674204570311766825112912643839915699829082933479681133836896062108199934815170147816582048179591218111219870371475915223876634592811056999319794403971040625088725943385517959105596059463530101684885335607421869943098684556519636280081824091614663439518119844839856590821740378740585310069170227458155781606836196910924121476101553527426299060333214685023986391282232859213759696528609818492108827505628158453577587353772316649290908236837918422687734986091648906457186415790370701398084285165252584570033157810989623206249732484434683870115614587718972087292211739750452630637532209056894752521141728212759785082060363420709130233180991111942631855767392615335881602228352678933558073491494827537665335261594713270930239748691224347035089454591061523454674314296090578183549004933441405682003936750420976886182456908564389851111822248192446318396533437348127650720685149167221429580360383793938704809184281286428921560494351929703478757098864553993022584615229211670100319531010113405899098633448598149985988895097095804889413054845843290023165857833159664166660758554630772069883368435624044454177141038227356451074355010173829308188378770167859136912703145523037479234127067900884229364165190678717881493320406674128586440515757851932324698135447596285974844459258193991865840136594687707834718651999756762781778912323763479760470112581028074511198143328651149448437902528500875067314286662032947201220153800702865556182429633152177264395442662428233309372127288799978650188549193342371111869206137997564254273442042222945924119857222237295682714776187686442421649370959201746171267430334939683092294349837732693685532030465783395183075188289192478178359646401453483979552297126000300897373801208870359776258490192319044526401738375213780368740906216928503227254940211467790404794827831094234983852822976486291393701045518604537136731240901294639669416514044509504149013053051627772483599727838895206342841933961253282911618514902233433539899482901362429273986083276465130889152396992438355074354663217536819086530161405515135845774740319178390503339766143891240609567682917383410015314023984205424616182799170456377101102028375652035417795028570283527925488294697117543056281347278354124567821563516553377873383560191228498483101750453135700988269731927869336931376996127155623739949588838307030688911340182369960071840571364312789381772607431240418464636844407450382312741292161397045203075750724445729385842448656359798196453432410161352878347983400401685761198414952529358658186687355080528743509862374052848879640485747827922788203236810433429482710609223768470376333745817554968981225843724136146213897003114515442462662088195025334009602777758245260083679780111310454424203828497108885310901228663220272692616131148914998176687665498872256553724071307148406026286273889951330329615409016705051261257228920329866134483292072711766526522765537726847724669815288428084465573627416230162591567360298072876052598329835674504332256220299539570787749132441277225572912081379237156835013356380665751713893313055128273962713832523344174844900480774869947457418226540885973613230047658767573109800391291628276927618148164030602878980638486585784836842107079102201782195041369685707473626810238189402572831967154516459995656123094640677579358634666631186931938566032631332084279487648382560712399906684381900928765710816399034574507984591540255749121681167537408423767958985625105563866185420636014646006530341808951999366733590102127762095048440595545711043401125532676348903546962934935480929726994706563830246655350364008419523924606698717154950296564238943465471915317130454705163600807946442454688613519049227711048316206082416916445865844265818490039192462440698727041117870592504082180619628762260347623139008026592852460735332590579456209121069996441706594037731325616790906569296099142366013271321263097461785266347859353168743256752674348169067101044757327755821927001983049280558855150722380353641878989018363898195523281358409024300264484889709362746044375034499432213096244988894154122338470591132411975546182263655538195410155517445340992332150537256926834390749064929539677839703117439177227386678676710581106474752121621297004769557409234962608404642252016609760228697566101180839086654623722729152895687694506843843818991651561210681787468337160963288245579939438766664586846691612964685818181122479199045530212591103135633433769251587184927290892253823181932835490678154743600873942099716649350160318620261380173565310935726967627748399329153687412045054073042581345766081715471243276272099855972985127350663659317689876316715825444214437126649268810449701848024765805946442586004851384275321616797428022311850734102135324729103400759302953809714594414671471123545139589734155594497904453733708500623271807490496822420138279329966029148735213026274091662622628072410262875098272682927765440990505107067163333491368455801605436803041571180670788295511366690945485383121164421583935062420434531256747509280452049965023273919490065948515629833060012556912941953184526586142941710600674773503593272327339584814552165141649945251014708764968505638767933488447288761649046274788387114354051215120719283365497068196648873636419997713019257375342431071436815105560666259765828462420513521775582479103806896537604840167332212009736012091561904512196472807466214112968474817369287503729498935791424182071160803162899755128610718770400350939310336458692666379263194436619059262451967753022384034055761208430550370642373757112382125431612243502965355938185720898692509123210185603923569428608024053697014921596129758638073810468427690272055006181487970933932061903014044692373129745505877975312785330551527387154551588572257007427007609498368342907140779570793582070663197320371921425171507520781441978909024498986892221894445095533922906343412328195350434133086530573242090892154157081348137311220455705553954597508475059907944109900604713445114066240535583147782267623753683670245417317979894478851018904975262132457982368094528990341703039013970438618770647385460053882807432710955983733077852580022163546030484640258713879112550008202228246995562949190564325900043632037368517414102590316906000015971381391708846419426240629597230168422543258976425367175054888819167801222898157022426762062606111798091499838290595739554514737819380389244059285081716210076098866079353548370887208212968118850255875942183514830479544693318111865825146745274285291787554523417669783450937901065108535408219234106319103974277582599338807941054220540758463149968939127779270079518305322530666075258780722945213808257903702330326769032984426583443476803761968824175339316624642834216778282498438324450011765222404482778297209628251612423105627528105191300066553962908537544224154167887189136508068338833130352117010343927480027486018673215013046761242913456182221500092028119618169337071691794499576041646374853872360334844123597144314856776310518031711660729717651141229563543339521807260202302299098507309276049277796902057010901435143693826359561680951644763446619853753631215195220285389362554954647598389142226134109660404348342489140625497940047186361507680142945112546916680804746185178251897952265366695586690290537204260213020967038276138345565905214157681239207359058195090723326361475285491242422172554288276175059622794396359681121453610632616320549786644312187271571499142382527684587658067207276708397931283046500221904692293969759094033853353817687245577766975102975305308381524477075022351890890044009384189497393284823926448915197371109980620332973384200610148516478717721181670511844704241891074554274073003047315170788551588990269593421543576684759331248670804180624947372843367607294662045415007902127769485284712848415485402946540830021316976628482276781380433471363386925616311831027753300468564040041694062978967765867190072037203315679165053295146913845745373223347052782844616547593573526883755191337244142451522053372358109941332476052613352949084473620883243290458668255252001667502657865126237853384435393860762651698463621717271260644243018645111398615474497423819607518487153079135653011071779574099782921430956375443905697629195652738512675793166726204919287446865553904387804035914600764511350014892012950583899344219239161252326646105820580096787373917859700265646010431069883030756822920141624311570834546662409718076577930643957436960972034619941693031164445616258104188003220679049292249577621039923578960245281702293938876190144848403945142661927388671055591766553502824192361495726620616636338661443086333938096702763814044415792118075716912330165129256354328467350219217504587139310718675372207124143920314885951887624669079754222073996846878597508740544547244658442080346330161688901773307454844433204310075803758970689843283493695480070020455995895526298675173620793278372216653479093038421695445148661761934715491158192573310715679834101026338248540645865276353623049575655710655247644019658546472932492261572359320749304898111318648313164140366890529433009753740981118226471302736495194705642764875330041590761848933629533524194244901207784186168870039260103407637648958723416380960625150439505953115273264106157028157092312148303799632328839434432159439097209900187063765448614105548785085275988888967027148437697605251867652053024722442536657870568792132828440339643555820968487884352669988005797559435471815521128954036873195830564001340270753385354867098475148415315404681698581368625821655139501350557855013068272735039752917209160124024735398987029299558857799457711371286011635503538657409591359555406550836969101701267338253011977714967319762823293101765683152984497623829353308190620971570414984892938028811370791343437763171805430151788857211250123196289729816661045328663426002163796604581752468215282311433248280261931712801369033612220601574584416455375315479918207721857287862844838987785248615867394288038622725122949685162433452302537161711808371660494770751304546982462928579093549314933950192693915317553447153870575749427905109636736387351547600488809991081463013298418180273811791446387343965398863609605386031400189029794788835211382494522313648282157427493594637229127528572110547965088582521795296242466545714936796437483381949592790514279212331868684106323301741021978762025617214083301115398191426996694575595142320576093705677807856039730069157844000801828879530243903722376472413332615972637247053020540493272239748090705309090785695727136801412268697866978588191585669029787105066426846859077381107266557924129648264025206340994189078449538942402169098663782327687283437800346152986620506310290376351701340097591629546425698135887090232057929437425590041895748883686731175373565998273368823599015029298843362998068229212906956329974131485485027206551394412632630769635270372702303661204137135169595102458816788949705443717184584513010145283736821012693781453095033128930592799759404107287181060678164692079683245851774300072962689556612821959076862169238554997921528470716286270408679864535354209046449080252493676468527531898822438163995938305502061163718576876744079565763286675269527474705181317400456882992663795550676913009791309720730710808870700831424172407993063632534020549485121249304621409337831069466748428256492799424156217993321028918877470794999756781111069178232179863853151956421045465046272102342280968557045223486392420194835792133181955822691726862205171286471717521048140379188899237107671774270816482669605166699209963858680803992390047732914449638112292541643480686740341867551573296908601561683241441460444879557333522390652093165828595349350396920773307062460903418113692192105341085048804754858604044741315569348485080337859276379659250382132678285385043360533229268600420699310376209079644960529597788611622579506596832022795622456565634991741652339519010983162291212148292484676759450748252868893178207574083239757227065946262744551403839385135454646185151236564226800599949458514263154652749029964625719496378601499320235812256138681944757807854117921366982217646949874576948436800370284904642262027556946880883379586502060649843960063930421992621284459294230853608120950060705839758124365799368355999688105415291199649931648645926891962044075696696083675262122486971123967313015719774764568526408264481874465279437984310510503313570087088507999871688218575001673352509421309885466872248610647876680072751851080313897504297706809733818358621275701045863947490901581238240799435531844126015043978214557049516544241011546465170110653568905624981033993907221928038765777260351534850925383779790281114146576719953962864203364781527396131232899296622786364818969166884579122837399664898647606452111819259099381068886930144771579700188067726129285861026668284158005898326754517349144874968393143527079902917562257218957372022465164281030779584271596185831402403695787710206948811678115735018007684098545491940720173166674588953480369908365739322306302767422861002702669433666331787615871277484503861090388101530409325896471633999970793835965565970871527398697107286176469369250615570913658678344518009272385874892263461906671209348071434515508212547534749451371161521578215992346821216570448448914270853859273250345541935510318468005710294607773034033405114748529521503022543531046951274189760405912102019018261377631950361113706841984863235838836658973808302745257631584104262148740222387554986780787328570861939923532073575433953597060487842036639051431266566264130605792553048582026735222590813155346797827358606197480481780035071724946110111939598572300565630472532900936266663172099485398764715099703975340679715340605379579657986312174647665236519191252710429860533884372054455983643303122750886518213539654695020743547900288041122705859784822612636698580520658861973837621803783043492346726521721098901818549354410474647610255286748582774710875117530376278156093528100796507670940465640190143303059378108401000599124840913054731639017405383695610351481077910600951290073468997533557753693328217110005564255879918129795550223525097785598576072914736751712581051380735645624834416838591153037919731082314717693286807541164790008695891523147018307847729251769880505378031979389096267138446938140290823174399561114477256421113551246408078936310999304092991161979679025216146785498879640835347196696120474209326149370333049653296237360874413975682743695506165069182844881821961523832302709458035235861633597517200515680792457089340698799267591816765688771965538465418117678890805187403746058192835633889161975395831323610246394554900482404269955021722858999984306457782083874212555066493420225203701071336618782043488149954787338813442438050661196756965853930507088357005182481212652260830343479754547477834631142243062578207622364633824153300346506058520826546542328311656335120350769001628371983955801531094702395682879771623906185119878080006864626659387030985075362513000895895268636813582475558149194758075660830912717732499751089944375745317245745148693913606595991890953957231250718793313588592505212613311306011487342782377725011701436504323641978672021567459884627956913035091870523237832006735304775052759691689965319201060929275742142644522589106977217891904449780791789806326364333553492313348526866335337365552570134889310445541599132494539661355147143075010263844395859237167940407729580369150167277562556116182150282283185157616281612400108286268344234968154646346350442171954949722741627364449317918082058888806002005197691507336752235584922009701391138458058722205708789386268321755341431171868755480783865254554976370134552808059432845130252185778834873857184989562273271550706296352411911928683487797792814890491602467326138080837394530552381448710650320668097789520530509509320743773367043288123222345712339050644296345283732078667080055363901731834273121175977707053041294440838686837258185191273915028883180581792583126726077485521829847011615685281158249872132352581219594609776144402287544452316662798790036667051192526934619587126271238395860799330192415808547732813837779190620280027240754232726108444424411894214586481693139777153930636286279516934792584705531106962238887719854815100322007732779347857534286722951045446183319250065392536794256887102266664352780427064218843804819494554384994220090776900699615562450622254442285980817143155818869379011337643295474813817030279598669166015260822544506136693008970964052321178101109395202954283552848279572078558770690675781319146531760373995756707632867622271474691077330169584936388937325223218867207555983468163361756891290257105656871873249088252676816755941053990647741761224190231623088265825613110955318570735590463925661250412130475756477434095560262923576077565539820883242547903332442446911206292399348846108343783751975149189279354008274369934095235409279358142635390616809211111209085885127653540486357191486663933259873666765205918181921282936774217465498441100057584641843623825122488524657394743886086135331581764634996824116803109501552859250961860993240291210323985784402232482690073857184459808991193607968280444375840559727513328833665403667011941777144686284574330466080554231151399165303787708766376531929133945125719079739405200550749215374294679740368944575875523540344177751713520718862791445550995948754330102111902209928343866876615608686578305318294754902413174231371186123549603318632103107579536828437952001572403108335995209362086795647909828947982071096715164342718587427905069017229450927232921889514129806780962995903896233296366498937835391947720992531929832337159404536361584680870057384675362767487232629488291874467673725641317680829398806776734191571782402467554428542509522003837954756152948168033605408299932263331611777972656696658002628636745850380135192815004012567718655755263616799740477419605866571280546135219664745337013023350162872026299975302553558193306481034109912618223901377392397466534919799852760166309776098297307112596504828515777587786025621969296883287130459470909344447232985117189790203706393323278194431723025869817759953769563962643962372913803212815942928979183707601245126847746111345020232442338959564384653768348857060163537686211026529691433596381071357355155187793262104808601892215722519416092984053035457067633397068738509195374112433191518780950557417833779352518939896720140506625620510785202456367966290717869547951889225603021698013306448036472239913366304114108375477713370161375130558918499921983986132619161987532974315322971297420824133489643655104783932611475299038520075415178108813086871152903592695105587373063447674330592844421545949594892743590572919190735664064985110437920521709515202749110078904534226736057942238765804298685388752971480074045418153842241355313154470056616993031007073327389547189145971566810324877810398122429930566169490845181172155956334289534242822548044280288628805862329519641231745817645312807301432613272085668854134093979572561250036719539521786460128877037600519590407537948846332495899191798572443190354519563809169471477081322028992681631740776535962439025979544596266463276639126450766777185487361067879085836207880126688228205410016279168006547824809631863716437851924452232351179051118145527100726037400892775198365657720507274571891250728091419737621633649572070573701804931689935194683287189665095856489836714930645950693745305204374303289821452882124119388803311076437516586100895941933834611230703251174618302641348121343516113813221297186376625928297935968832912737043049665491948106673123594409876551416078669793231863605902541495484957817448039139257682530336853828718490115434485191597355941102836344049343303533251914092636733321914699946021713601502924682469882152046003886058623024644728445052630780187662542311688223645725780090314847026667774125407794883828079379594928262526767346993477737917599641987508754678830083662620363432387839126184477863917321924751251496093050752125384302130186286403586482661515785898439523667760717872384224826742387597123600704679894750903541806761241120112753377763733783666955780476629899828739695612080929662749864956590170778033185911979940843535032888574999767013172777058869035663521522835043417742681632932609276856871106973867905421305548751009964794118571876426339339388749149620968897440269104957234721291552815449888707513200729408810856251150001045830889126694888022608533646146850968699660452019792693716214763755995621312189446878694178293306159711075163016921960391951407091102344784643675372853292115910603577721033290140056446164573173053361194976998816572668245434957282734322929476405610431194021609061415870891951139273050699369086126459881898002543281688306190369932967638299045158554750962227663074293981233944071720736376828702108777953654455159707057708181970961437164809677361354538185396918823199656514790218526733478671124131195460061690362042081397404887216174506779346007205503053048381430349594239227777559481389397165095193197616848031371074179646433209811948547940231152493304143615176119151400304742681512619976333714094712193734652111967014478279257949219509486284994713012858929945330486589979172770819278048704451547344281354303135699906762734937632326215728239718297199726142648651823589463058678580293284562734796676931607061121931288006133994557980106748374251893670164949372632064569045468250196979507884449865529086506722856207328227945869809693875073356037534380198823512773173518151724378541063174076664037240335484526525701456843024616984880916018452884124534138690879532907626590725135586063345644495743702472498276730500114347362032280579463655265235448523973349389144850126245544377479711359513418767636948687493217674053548687173539423586357769165646526405109273286789944919906034003186304799341517683042093213124999192684414480017344437170105310851142531030918062372669176439753566942735649953269669932637368142869467348180857158512911531881812910596828838533608477267026826463432478980419013133667669020283078449964526816783822987960993998300186020175122450140357135231810751239997571039399089072434318911369439435209817998454204288473790398968668710585829749795845857929100461839961687974094276626743218407703189911129887455088009086527058523733926151759910834680146515290606004323080975824024247565991641193259960409051404399412588550755145353845316609137893209376270915576664588884852936305204011416991555877333573655231903328025830082990603180350946901761973837592994910113592792718193587882794715944472944857934450716529948755814079146911021709749478357432999618646877467201274305568956000105303332034947615583908295711431638500393839851431554881930908388620617255003006961405534250605937991328366937073834761607786899043686099442312624688624024030341930228904306072595434012909649579533326669314961220374918595488741376718010946266691748003218378564923019394910253619556267562650825807193958084381522309712225451558877246225883999785355131523167734366299586498170519262148168383227717892356286939789825939733730697507085247850149929037690217391505198880350527310058992610361003474425117199362729264725981179837662578232913697087832948061771827616029636179865364466936680189798573326502325299498309350275473704330297777506188370739765437484638967043449832368996373953251940616973873963441611918032917252920986355430354416015840256082906430341277044331034626805129756238440483229457294188067677123807170311483376908235950011561553964970949273894812435375354565697166226076753974658184114995538506293825245991269893038600951595933897932448301432657416510085684148386201874528435609348577837367818470838906911863462038769426068819338790535164348543070616503358434057756419626779859393765438241721439828834296654449700870887356673419674493679827669386290402562269571554974549926055255769543825105451322229342128158288091480499442095406834815152589472564903633999282578574254161234723445862936817787465680342490013977372309981812817972592663173866417006605000259619400942421789805001689634096192461179331477627857495436434303649121601920166856347307839859812918600932449044519447851698773623085134181014820492321843718739881400192518023096458444271556169966045437787647475160596041998219959855704158468608873584803049427966722019676520186532565557259053664005645631566319056435440958263455462654659466398631042103588860083133392241082496344147991541188820725733931955350420423852835803899355004745356327585754005127046148081644458810082342337657031067060339709970960321063055915591378834431813538243886684928083770104912855335945029558752423115538973725858445816941978784463473006389917547526049040383181834639848904135003332402057078987695885573680044939768821706731159206207563692262544629175633001858770258046600257098054262604893890571254521966571358146679435587004650520173110727409997148275350828350421953415059772321665568519388331113757968755036160019813455901093221728640434487678907067008458270809451455958079566625781537463893148643197759700648400630381437566800404973219780293616595749298010688280778674494932411850681860817808067342054830327205879096559398726098115391116627162929775874561438352525812125616912214667315073610604313102706848670509572396357349455783967506685355704704910742363671821587191461425977759597574935137609492807677625194813963463384941694019945885889201196599518459829167083798741277515730512238205431565425867571591578583559156233971138699645307257504790272762947785378739810729157121754920250554710115711029026168390352280566466204326901372870765633279658808723629191956885073022451124228490145958025521333623328516172116672019392635184013683769755822883926564136351035699133042543469891346516549641513092016082318524943989071341282232223914202802582366733130675301662539329192937438977353121223133908491488246576645178157197335256621923398951366976690139062477918699318699433605852875781640497392584396377991685942068672556451739999294815109744342558977118163542220025683414433019997564255373372381068110895647227728518645011178265159549701875935976770705018881278222288547713028607941219087092790443186608383675885855190017989576035161858220431908125322502744178593134054546514780921428854118890587849520050152958257818773586413039599195982892693734613006847201969680750345505215661357753621162411607695449596119539383218335333977161300988968033625554630579525640378633551376608907308058576624620500471696730816258017322166564934744806568326614746515603447851044100941249079863417147098208214529717030428724781363000333258382775066958790098670188246710596462237279050642461855063732850874270632289767101691959162027419131018993829663950963220704143922260900250914520507240553531621319779024695063935532872476562310911111285516190568606729809480688063661737070816462350074350872350579476567122635425151785114237745110932469575673179804479808631871548889142978566865233915221211951702196844214011030833090621254217234817736742211502408709549787601197509039042954060486956210589861345138561268818770630850069644753620218159323891224052296464176525966968694761386508379342035093413650158311171356910892596201897598774769612850269167611089770526698451230803935570860186535772529928106380465333511236392190175635276929141417751432392289191670532552292838266148266745820095272166737870893333804436088167543372795204106351831440996241206119444441653535097447557663424675688907671236009513162655646098309663417083704087269356733211009306886238575365014788557167486279030930065658729188903903827495495756271639261384575136684232284884019731029098753105229556816457632319135339085370520131570049350999123245931188031204016656306895790708625431981515447330957852439905215172507353396872023670566069893907403065623087736241737730775255598696206044900312831270071180150183436582270533834571776591746968442402429855324494774362141336695948130507817915848680364983386733240997488179648178488937429819707588394567855428959170740298337488461355532764178910858677199845369935945829611171514521473970243720514254354350854839184556996811790965600116538142063994443494499228573068851918667226157024778221070306988183182877250724400340953805092206385467296584891458280485374437950065950742655280879186733233676990874825953831304978087804288193283995986575921831503497258984691075142288314788526539072534463440059613447802548638069432789518299820189819847119708007118666255839554724085650609571393256050977237950308041215197433546478401182738095970109369728089896875309082288608616196520340480772749802989195309510280935396858035607102372930947895080079233555382905646554540014522313122629554530034537118091784869691643363300575967384433781412422941351757537735746764007260587712458899755325876673913887119795100933245469548184580081352320699554287336130736827303173645298981354386436922734792209007099807242388710115126741751589192994037323645131275528888241740579340233429326616778493956970429019819390512812917700404140935867211514795398893150271029192301880060650519637271612605260537670067304574256305965264236662878819996802330629460135111632546104708001957649521519140506243795484459867277413858367949897673775206409121035443097931050977636105971292105262073988601543784432064399266997984741607452836138653385747225690893305033709482533156252063291438666694059367058216444549658749722011044236612030932407556721696922862795188196634944995479157877598208998192158541146548640126671282931690826963043203414909829018514642075310957124181689366526861754749126903887315906481199394164724904684131336210902141561851783949947301925028745893487431039225337199899720588771076598030574164732349548865728664577141157716740163353380609994305345980600918334789114607906919356358043694348420985236793926950572104474291927527918346137644993319746422231780575554883549393938311637855196559991984814309426701980984579698710637119446056390919785208155626731098509019148946700917253018115404734695172062771091620940130852972727267032660022195730151865844851908541696255357564851984935328481048238013089744219289930179445289988318211189294243945175103580748427423614125520511679840256529597785966360816874661404938710153731780583107469050519417600383604745684005412595525730371613185894659846016321858777531164994504853303093538005658847855150144539856154644228343952765739278687603088862651536125127009479635333725210799990963937168845618989499072169894380913517699131773858789590627809347914790202768495583305306814579798253635120175061032800025827604989329686641466413311968251183667803794842243594993947361855610034101203825493192473663630058252012090218451353553804879040871323245393529704309082374370078214078951027200856827478142384858874726046758395527071310564084261948002404541120963098551016454213167321527489882401820801233629911754362733760700257936611007970057671288299069486303259104786577886694072308476557505577101522912615783831726460244685194201265880097425843414824491771437145316187642159720832365321824426094201688798430339550460437005219804188992317905888882671257798005731843016232864084256561824232386416088447025808695735519285075386854210107529451348559553219770880937190771633396518461613143917483032578725604853217693927752337515506485470230053448456628309030148694947940614596564737347080127950200422153785147650816312803514907229093726192365628873826372820298987211358896540015964256897330955247664692434042879019068509452892675723394910071115753289058967426755184970662608444440173953715634501756109944785313166402012538470910869638632267020483751893305107420048606752049994597485091617807431161802070758382412906044942438928338861939218714740806296993275081418474235327521351299391571814409045043714401532060725578734069337536328317412301841835121413854646448838174845258871202562647687858171981437631839470016757062706182841317131889244028116026906276724501022371315881096908830963584158329953966010015632977717646299614140670873805892838793353489824257664139726482031708908511792325730473767057195024480877287498401826904514204822578361999148110747759279947968591609211859396462414047999426899154316903699757461773501121451712127509447878143008242299546298130127829415321292979820092586682378031833376150207378646159677566031009558489167886677892707710101770195335305863119843988136876053186349108340248129015910464084316144523337515262155020595058401490951748806653720137510524268765409056808914934959746884745227626292793701689561898226207498151180595196068708178832147591637732224812308778793128858315793887806505592969540553803570976071120552732533238643659131802453223330830136303753981820719583800515852904803315194589518768239269903097467833755401166690617847715722457032389331227408023043055759920527967099715237268526916869705377078662025184795114050568098318911635095568600221823005075811467162378239980894490211187272040551690736604325715427867910878583332240597570232077346964237079058068767865771079175343837832583646400145101436696572183299276239136226277069545086664080546411260787267947629659999279349107374730771152258186511847995404290068577468972352713815003066858157304490060865938071504390305440434563441913357621513524422927392093022375811315931043677222020118214661848469248697692212186168004682034529070370259113166748561416333340391912803382179679493365322079958757204533896066520005679631130739741457784122516848646023837972902416089458621810409980336390439732281793545943725988335296460255826242978966128729358257790462554055578787545616313271120688358570117094055568310051972479572971966873953141041377107983418389629758692589061878518614284188263186791231349412882578957078439427705089334843168782816536041165244067879809640370874820856546619668830029176152187538442990035560994409941921224127965212653255724920984816005789203770229573407104268048947986474847020870067987359248982619935585009234829120044077143907404696174248405323677043452446028853235772215481116791298136189705699252492068470853967784073808899127715837796164891638319416058522472912946040799108637921066872992838958513842104828004486153871005021298829667251283724473127631496805206801021065841375424625501460191161968073316430390948336254878308024103591872007908320634445677966015665064563733251231627256038401151629247920448296423185680824898373839486813365511946899184759637062012310787053131543212018885366847099790641984879334969297262812253639181999909032751441218087645187197044809999509810208780411942516055491747263420202198174848230945994163174049979184030548970672726663411866456290944442255418763995832209891918262109704975673256852862376456596791307400966158183426471165900584554028110833449141404855287787068904181972208320362846745420593975793909791395111675516339171756387652433654148509306284928920509665551197897805538410301407250217326123197209793473206140289658082411109605276545683221272573666335355764789062774960191463577710771038447536732424099756412004904491412087209699768439980381415237847924271654182440912625246849457729539434406410973616186890615604836771493376044516280981947338163050537327146407176627778368626003114861465041001890932523780667806706822545976916617943219125200408555528833971686446592700922997012122281851628967463539963607155595704826891871125170746242465013381960728374294538239306562664452450689600682220517994589642102504231037299907155433786827281819609240404434237480160143297286001273361742730549645739708904415619435407408414028092379630222665326789580354584185777600297131324285396151073940510062211486311734625087700629205206324074555969093627051902270136364049649411495752610664043553892321513054849149358504543478770379118392069012274156595322776445852643015074008864560960156489166420575942794422244539906604776154189959277284682052952292716501088692042376607633124580504507417561163078095825218159963996698449128914375785000438771951702068075964116676619636571337003028029440387723604088394314153360033285896166583127892094228545285217769723453208963586447266685434410279639954004745239487460712598185184492139304891725684972452459527130154429858412097222375624117884230291463824291251849074161626365317364660663169491643026802397913204025006273919301505702595642696617888245872484934847660643334949369876833536484368247831690712951569820126874915711935650722031254327699363633259536147083914075365822610101322554439096152428240438871389472554293624576011998179269147026112951358903033281070640005956428027271446340388603287366980660619197764337884911681490613074125538125974110088658555450719602965572067497430481617159932458559643076505904119695887502881369262475143059610571860100970379794610747840654643885010831699078186736582363295069922915184765622606413801885969280298579527507959763449842221489037519486824585629506019339937226454070767790039356579953583324999199730954726274889002206021661128754658392057439283302638210105301301515839868401471366626493236903467909702851635084636774267097827089358198231353536970768782792397450791582657698850931880985458629131260408027939015066697721931587153820924995891034814118794312633552524000446604914291654851630088756242352772974361704585018554347988341159737945343711157081462253956778456677631562639273426383099008881277809848233997027098128702111268131067240707811347191250082499847928280712412176795942955525997449672646457090970270657546340269229598199090431318310490400373911799692408875870854730958278046470593349938428519056051146846881615033137932525323676473221055628704645959480001304944214914320016041292722791700683008087397259380988502865519085125260255212011180052650052312284490138462250190898173260521773662544048916961287244241287057660535296940614956737728670131032056512590907725283779501232333782022713834975028421319554284193797842169817306104659040471831924120425372461686242275192986652678624006967088145989735299833455696973714798510042482095185154549274023524177302917467107128052704188966274207425077982649785341422229728307911102697026658171134101293163096383932272842876355478491182100057187487616530975116144842963776120048349261973433063070674396842542166861919052460396413884970463843292819504588628794018348594436446329936665198090750243376781005033857956692768635747266721599381686761669633270290366875474016806007397352162857796273895246657509427238142024550179170655059304054250893564809886914649870325367507368026042641910103901824902698397054028341820603894456471271766511114662129687723323461862803205302449311664867064951544190510777181849763311189013003703162961423757617058420032748808059915584581747297975179504500509964238863198476256985965060155348343899724328066512250454026045147981428244645859530208053157258423497255634724996437472532039628117098671068606523978419364041804748419193502637843793422999179587614143197967553770115369069801411587473542754615593683174931637192949881286942910371968286409965145183249328074894344257126904268406912416642093801279323410866658921282234003196489962333806151416821704995811304392297928309441822034882775611558050269815549369431527504642675050115332786986446584481662001846984967093361263545658476515578970596006295198894700296107283651992110576778645638749744608140336862116310977322211802735693729892337237798037426574514671057136261359389902837507413181320765163529463075732148510042108416691026982008255595166647342476370625381685457257664301466778132757739534385023609097952361837767907361518643040722417664171094411017132935454004814014525194781101397523425540190633269772016557329924011562875112547331266575674869914659325939812507902031169121618131844143312294535086609075363524874334109404512689562871644837098344261133068829364410062130647511014801167699282808337451037943510867585675006247349753981266901455821595181864975113590750933178453071088125404402368602724416858424828679069379323727248405518776070676424820029763605911371329586276470258389362658312800975614869815968585148328237212696862930771052759017110688076631481718466237755996977082167975605479982991483265522554835893337073520851787047871407033338417997789885557478127743513836564915609896823118606071945352621652639151491546744878041030418232597203527353953693128757568171857735573746315612055184777806884256836717157911968586603979242422770752643374491559951277428957562349724080929314993985278922963116113838994972365038424723129849271650410250359984119991089672390426251593053545720586721845367376971424154968477180608855275752669165955359128084458718015665875337882720372129430046665344036434330730007421669656239562053538293489873781435617013833357541908031831468356899013437932877072129436365335385500918409916281131412013126741479372111780303396052539943948125253619156799238709338488345173247747181782662798527175914715632014828357995133190004156360784585036281646446513166140541393419338466440782760082787497231174309056752774265561731220510095641909649531458444679695863440876350921414526359179243016607294755982829313715594675354654294228940783076612490261839890467470353873662190758611438267389021152548435057015317946350122541237388730344157636989890797809309275010172402731791803945100568649237796690003341583102057478341608384209687714657521097364252403537390999764264311403777725948022829859022478218883964111267730047872221214378367821278333969429216149450234912611789266839853848596425197057286752855257064986916810568875060289623783543797437169659213372686052556907659843705462303627720988323049597873357518796009262194007436579249245734907448303957131769260947672873743112392578071612129252541277843526597058788895964001072547855031086118050221321036468379037485786194162347007485937207301758064412343260548155013075834567961322512639459219526526466711016158147088699716835392483672576036771560755463885160756338128907974299692183826475326190747706599563926641946258817060188757966540248540576102330185509233464527098793608329743408399919634553928575669130097535926121305817047308559728205858250274907107125243397088003226169361619339875357731762379369632676075876298664310825046666669268894996092956742788747366665757710763009722856578997436593582380764031426135125108351612148680952873669321219981924980685646970374226572964045185006131756619828461703642441806993011981872513064818754876777109061294812460739772937753814045268618834693115664893684576945465715348642594145593317036150185445120609213279134282828142742278235798897046233052058250794932070464817800194489548866284669829541704183023633343296673995138729703761182947494014071955528367437957696043387048204538017244320970669329696477927266119459431420574236805788591615285326302807526348302612864775901659531556932620539571120339213215690749541416047905145922312496522902835435419950060725599051364002734082317702150977534859225992053396356052625951394539571238389883188452791025429961189470608698658493839638386615597019655994462385161146218938784861944971464514053799012848109676429479130904919296264409000351179128312256599504326947553776560881054592084541653839458960964258875410417403337210950485201820584832936569521322375338985564996397819936738142675797301053894577728232415219012148802165195221175966920045296741388844877332087254121372225485205752009749875719060408417696407294836163418621911039001516381637530857841085486922117330319645143568594986459201349886096438484263247769082591568697735149450087933062351480023716309384555721213109141745188302449749782329252782360703208248557606159085156804265651683327863662312160338653358866167685157959469420390719871338612969568765699679289321681162433959842431560337303924535974886614332694347320775111791914690994551251260209466712795129601937099595351818870218949748622821531067462279063873578213516317986160477966614474350063889697249482681506771594830913889005658470850221023964545445153106883281064519879228662138035543159629370422101926545119591295096518830498461317561530664449489831345867255263311981706772563796649334115965862522580998153904021200868754019232475508810940207934113341280517867108099553345686649223961947597705631602104302750598543896930350630543052132964389151078139280537302390838573081461003689956633840114999840058002403123874371596155866582645030453311814515148692466476286333133136045307401936516144473895257492094607836689408397719499464708056215294303966744223743784575366252169408323933707274096131488386413591236603880764368322489410674650169481846695220421990000418147155721690723262934370891832712719171499352617887497851413369363027508708630798341593764483839929918279436799773646182007950126203328302951484239948778945439857479745373038393261396439951810358937015445033200210136727957162543679615134228655111649485678576240136859149543450397524721346869045550441531665553944965253073572551118277918650811777994394992500158434833284617256908172699382778347504957018633674102113379021969217201907450870228459786576863932577357543477526655386758357297147669484426242557214046344604328863212365205281805242385193937443878407520730444479350102918546688746874576558875749495869845626996452966000416746710228648104247716828601492350268379952089301276145429063655948600009083130640398224435411239102527495647322822785449559347550884367142556179770760539762069993653530482708369927789639637721684049055959153989759014768964270797018405523673200013720059348848715029421266490654600168001139277375763096091716666005624739271906449152742576328300468935688977164277922621000350403659779900677794333517921233306680443064636914095194691987154828029558703438193770323510927763574666785487757923329041435858417040877178621637495105495369264986999740832234002994991178878166110327390673622771847905914768747999855659072537791088704552127126504564133926438651696584887202750728691361015536052900360015924329649411984444137497747511616332715238695101507424284324716760194276729112344754886317697262862216914543301195118313225861166538732397034301708221007698064016935541054748905180906551361119650186085606907223751760866365330292308031373075101224371665687655741871804920274982672604916303494795713283582227447983083243299153246651180099335722314305648700018527046248688739110903974684907352752453695024540042038571897777459920619499710870097427731527968544814588791985110269501682750733560087799516644427133552116869391385648426230076923672068935969173205368522463069780797819037934689538441774079872881212994715478684730308133302407708753061649777498698853565471249626210190410675675827874283331889598178477995935327794051718931632819839913503527108710327023677450966189223707422718082945708431142486539629016628014981590968254248758604017155244051369884735911247283531405493307617211567901375001184422138020924814609414214410014075827231824427935631794121058508860282553812028111858420750024831486732325071716070884933347460633246497485600832707146939646538830206984965959655757083637371495106593364911581136180642798297672911698654127944738171044668808903525878844141841480550405021718633848309515601856571324895816487114511340043596290186244309466769674279951154212062364152807515784893467605971301506514212374997948204265210397390936699984080061802006882078822487814868560735196564813919626266504449843164145925116658327883761043464056552638430234298975846813263078101787091077727438974549393831240678757978912489705981741065821823434137933227194662187834298411773086135286480584243036803765968717280254336921924033656082663464676067381956855555229871232741436865860222770969702500149532917391837500234214348763436774923834989462902895642943581282196121605548585157383887720572065350399257591986026605937211166408020357819023890344187567867579756339133686173607050698394964338541580006001853146016135782007045971113249503669486652272250289703860525426176327410208311518378921155431119911578686263286756089091501581245635392186582076786234578231293639389282395088836396932733453331314640051731705652430017878651896181612750865923859684243560079237412832797587277135814148941296492105734158684051118796243860965416949054060860955903037856707096295253782111838084804107150449070389915408349684243386311029132541416673219534021310564065948856206049840043493257739807952430206510545324199933060259067482669593567997410305521252782292999989654370603598750404850623764774439889025673818159587979661388978087485810386824393692684140057425949629317472103153583000845702942481853554927940900232021661814884263848616557040034736678643908588477956619706482792498010592478525867770343859970231023590152697880718302482384019375677826354717931488667451072956481181873393655193718397585656477519811553005685902441032981647082750712033833690095336809619984509257332413955758843784092312723704694930216762507169666756640068253340790740877302380989312789409961573097399953339818599168674161504031775002494787502286442184177571766955255315825080131606385846760831649962212931114122621422089305052814119888017558946546529127286085942921404459610237003595324709764954001994956199708615696596133726014677488397238208760525873024243800978103310995614056643816901362721772554158293303839336026873200657860737745647979197731725217341729947795165826409652811118126027446237817191346650132831609949947620093886457392738707878148691618339074309350571979160131147165299318935281128704076836886307669307895388344167964166147237743809519792201689919722877589139043012015655053969443429078691030165183060137588988246698932405181963581472108728126704211528598586774725798300765475461355656779104830414796188760315871415860652969724307212167442495769812315171265965437691732846582512346369296222232978534690516259614975255783443758753084433168768931046698521537869868856855431769744966439719056377875446795249037609838905966548646042032365423112032014900858304094478788047208321407252787003522910788809510501445359613622259361590053375865222149398282021362670091339201520506181784748726419568079017759435632330181400278649782169238054139192994509041352859523078261233309855417650047698648929727591605230792064419984970310674220480710944818372013463258821341346196263874373941851375278422595861659471324296969636005548898635694401063995361607956162163152965398517155452918258151282948221100084861367623383490716288282207257248032603990642400098257663051265603880276208577076113894329376382595150881096723941210410411642942242108771830763344445310443622517599654389377582002255363231824800365099345785712528183832134838766767774809311481387066046675200034288907453461477143800055728020084134567971841923926158812909754834880209022845152106178983808671376610502853889778201816746190870084128912237070269445416672403364255856276901564784546834139833166359410250302204385792593046647486244377922842897901164148392413496952155873928191089498541278092134802617176148416475700213103313582681291434153431078542053710528643479275364558642773151686714799647717925500496125829814027507397934077367372555026804992730149664645427706861040499432420063874229839243997339601033498421674738869562418892808748592198345478198101497987173673075582921176915728308536526849829244145927602347387085908358732409113280862767891368721579848166523051347880004918022976551468264979630164413939257411198918614331380836858609552821127954341104209732877196569675062958471635847064707455311746760719020971014134458822994733448525817171656907924850907638491598405199410189014505791443657471569454013123919294259981237534677288436664813535152324506521109908470644505354004831149688397980092656730731458181990575287345640566487745026892700775782266680311418743686236327392401161464727639381113980745817292106619252561726407930417164941366903181767684025069019086776787868906823215876353537718438558031811612918967052761518951686423456476320835097138979101564298883117338570609863756622369754229499758357407522711658052620278538624475534188662085049845966146010042421924910015238991919089883971474563730882845181049955937274008583512275062915731226076591061135489706016056063251920433621138841929672156474963120377104045933545477732405863642789200969433315713584083492024428799381175086467670032428169653224223157235173073955138501434347038338641261722105823051942548690042890882643883135120086027017213572835015513399289921468148297156952113733490249850569341845076493514825566239434369986711397767093817068638024695992350970637759892706191282861799757492236978628288466591394082555840709361159439314988218797798112210935875782837539467749283557590432058154987465225507327828999329287816622934712704910817645036082123706831208988676890611517483423676566064193821871335634895186168254513579880561305725683063709360595513951377302943934184658881377728903802440180458243384696486366106077858801104609873872197633280392761335112534136035434651996067893127039445914141766721766962682165929642418040256973275891607841549272512081476562487832053704534982018878076068554838970853802684352585045985155085564944628934848652852156899651686899776096472603907319868666032943331583917458209246932167173166375132125149574897595198559225127918123085539526579516490953651103529199744424743016914197995260293781684072448394151136589417207898864012988153095793852882627479995316292836722451924229350132030431746777012940944172322908447544867765902992187063752342219776797709766316655522345084997697707002293289653304542439464022623472845614487801060286846217544137820924921000833845908022123203883347539457784453597812611171501140329970105169577043720227424916462836880568945273606934049269329467830781946636186007204719720917310973969780583654252894030197963478450314473215882513649257812760268803622901684119771429489053392113230538100025465308652715905893952888965727923992063980870622981777530165005715667757356267022745116773469396992461873776096418918349867799069205105425384126175187663680768732884798561379763770701678309434121265138247995737114147604455903027572024636366301048224589291192103043595249051817349551542742851839971674275341144853776407481959729287680690971493507268994280237234354495946243128740961671225171571781840073627732220541364734480072052749588796447437976677007121030527967256991113853071793951092554469330513257900563078827043024177101452170554335176210166862392647476022681469853084410948576824507513362030702152545250410403803564860624203369222560761176693559691463088301187018578999353753140659707812091193458356787719663144059505928878228539547789562974549798766654793099023768664574444798754145927282460252305756283079527344955914256332838398622770041861491137009074895087738295501618089038034944402240231844205382296658651378220835605161774097661168186219047509566288362333791998139000904333121081348224176123981418485077615422905279964945117217727819056760948164259169303887566285332390110610221984507198887822260874678765937108497796278576652825867714412339854188311185551475112480196410167485684911566509371407480023553360348584364868779542101449180537618446341677182109862416887574746906804408944303958028950776053367045687033958642432624178700061387766342871050638775939311313456690025579146791680730508796698132444077356288839264038425997205204543371844900081640987799876619122175370435504375136798912822228232809784117740011513040408670056473060302572746953063076218902486171872085720693765267252756403881690560233206568677824526247204012123686939775422851337332131189618547748055056380980255939348384438637221718472299354743931525620328514457303150853245398557643991557516418232717889202588299579666808118483137064590126113149163473217911026407623871569642822898140005539901795875483847179713722550140466823197309348298101932582884314589998205802957989417714051427513729756308532923737364271289570158415391518502279404490307006026337585060761861226596022296053542202177238356945081715750739645232936231202374691927268454680246590666046469450788476743544242988334854919763567211476672655763805221999482861044376534898383922623404775577881002372493697557467812690066037917061836412963686439465545810135828493940685043262768020445118236408319868190376793421303230271444051540155871276047337318034023334558900884735858944873023284458744076289424316204288962355649969643962211992244486594223846193573946976114050882984903341273578635726061070373728038018120167440856379817530839474678167851342809547692427694108586521756581019252564924694630863162042523752084753485964131938179246659937811590403622868331233103830431219902597500958782324321923797544479384513614264378831768397263276907775142223522079942875855280300017425598672867085540067904133877220730867013884562037880385698039357275929792217288854128538420141667613410494234404147410688806818999044140803765958279883707775960626259517114230551481060000444726875732289111968903385279794946610957289980909573108140066659418549161803193260715027765492667137497032188868321284391628587829986285353804370999571845397305369021142697322870681974816778362273854341199634256930852100749564167849992309271288157232792059041185439293650455512858629567026915378294641996332357094260689185836657381527999723066327271306777923281924650630865461438309827483416644591739210167182609688028542877048882045570638109395892744254281451846884938541603119132919941448352709715338154092116680610332041068826474762954498101478481860918189816538579096534416973858556274056758160948217060679966216172992741737873015373471790161806796072264962900571600267232108236532315428013642754560797180872996510358553876512800296229891224047840010198042209227941761360043745591830971860362396038151923512428459669868749645216737361286837858283401818249711260871270885414986718539249381784770068297560795849194221824257648754339278683073994845785816941175907508236323455453376033163057067093765394934405603334592488386696429555963070319404940374572132901607829052032756778128645568416698836208657962775521284879548681717263258429839307790594682565372918685503508422986514544798338241687237472042648275960497785569805813378715102086809261546427880333317544783008750968670422144753964147365377491460924072606969905662457940088969601206324202595724650771250129676137635461595945396975019311864093767246411967538566738563628415704527454716186511532951349877509723604098648065885037901959120516819957442513347676132758519126032209745159157839005073093860026102722909832091072055156750384068491714730074672133301816670260074931723572016476200484251492250018168916859182946592905400069001581525015248486377346541298673228797163026616034830258784367190880558656247280330097965038143119035702313555410404338743557005565294030656366742343487645428159038815639241982593800043169123110625792180111995480133777423815013463101836582926660422713753503173666767916210301225049083011081989850567193956178379489539963455257841711723431919481732587069887098241933287258825758384369826971225375215384531978871254705811180679558574308628035329213603468493159309057123715441578517269313415915489474166172768715782719775236491851565294350292688675254832632510345776347802536725637893968765319669382645112817564442909256472998098641050427116347728585167780813195685246606748287658984447955953650826702055083269744941371372602198100726033097535912425995810117346815137640356126799874736276948592178977131330095348135969921983756517478121493609516364540773135486927995145659897667630669685305981300921118226799468534190622939639550909972632942232414076792517634254935184252325116505123407666052409905730798293520901293186044068929428968287194032071801099392137525564481984879201533203825825125128905536148692696709363095285254631394229671594927441812397372627005171947076969143286228987729746780446813715742765190469999170580136839251139006324429508192351514279364385603172717385826514078940295356161276971285939730815196981450321549319885191089539300970396732124553541816357247481996757707846960317977942790873549306509616143472821203368354510684948554528821578981240767023334951142778667409601404783699126236028751381535987645739783151049138772768576812524553697811588523036917440874452336089942221330193794949007614277133033499382583412885799295250845791993066848936990901036117040105194450766262608925934594484722256340184086081203822200610321050124087067215439160086061708666168995864702741389749019737799676235813086111922227959663218357856691471169003206970071677211716128349643435567054354357374113585568024559725544449909041241367317889364123160277058721860523229889979468405423295096292012394994091218359676230713346429064218628456099410744124594068394158927961170319928833896872810034109007251480672288501849116246888983158341331719472924629445921856103217399794336829200680557833348977612486710008571322138197784213276132348213010001883996186893124061431959679011919509094313105663639549767239446416766836224049679806565587067187682008913294745976423704937112129294463579287677689499432625618767935556154279682725495332808170506794178809780916007160239304167976704505716079934192829405032536981546604993253729498598958345865954590379442280337340014143498305247014335553631823822465947883054117052759899662006128020786134352065506003878191524001081011044190004381590988917971790354243818105634636163131606872509723577343720290559685286871251903406794254804549946109144139616869287580898235622991329278590793876231159666998420517320857604204068993809999840758739276326479679403166178694035772604956072115398317420938754649989540861272562783974254316186767584360365823712384372925576945661158005393567397604896838746072697995821395999239210032444893672303443068662956353672778004581237862301431092582278195958644764659946287273702069870016623393571660230378008638010372881406447746479309234027095284059657668937100212363508746093757360864839579092122255768854921363911953851477230747152660393009557169180413565888657605974052229852979962325573955177115470814962459545202371696209594839460755172426583166683759936833158781857550625275510769104355867812164643271880405656282224864284125235564840968170086357574361778396197839225469641129079632275898703101489115532123897386430954250297875581793357231136203612582213418711690302184502760146899268577035849866444842102838503112602370037378416383222279965919037832940080861319449327761971754636101095243937926922782596924148810469906121572961342556620230766683855036993915139764409996183275448279584819025361302514169299405055560644931909021806493709124323757534170645292480391832539268709654225986210431038089650829724433705893529876720931017323713765047053844355846259519393356794842507781615217040866085850694756891235729105994026531247676371532979454496500646604125990075654176257917870091295480054416026344502628658354586871408141400434042726489269459323432867374950845597776823127169335234208148557324635999792013018979924160880479663448744098288078485504437772744875895649628062702606712777079375965687134828293116258212397839470761256413877447508421705818426028789598212614538927318587212365611058256807991702496347934677440614864546192759967505377718228904766274475006068604509678382200954400042056857321082149788593848625562324531874823622835244565493146576220037280065016233011719188462759286004279538019772518662891285318926399941831253068751688194039510545433745817539404934785014583916030974341325717964783057504331215384182533145805911348431902499291184960731863845602695611750828443213609989443365630726621381073851449956563203375795721023393518992812771440415625047210742232680556194016957972921434592128723243956200063763171156975184257380337293831454866649103498036381530394659301611774832797810173454080865482986888064289285861836713821042805053939737669941553821723343810818846280126382560073924148922719250627242363414339523521395184272039288178526690775192076852696836556519033016538470566451806468487581776193885041368180970375737539366799125502578500418795405945113191713677303840723953185377575090961131477133736910059861097521166880498487597684993253747104350162138187624761158170768623652711632587181469354336488254174268753483069728996486452249229191842202407321215962067531199268033388945171432536279132827783095532404533257758626988361172632306417954191851752787754750943704377293408536188372070812114351230073661007053141911524913433847146134379096486008769392423631916195852248666024206378990251541903788311745009461948705380119396023550466045902607405303887174330071650640389837673559642651572491029988623684825506119994890403319366317509233858146912611299179141840185447440600901343331341385081371780029405481687087984456896925083063887449622829458985663592940497267940842601510759442624864283670607869598770066062284998230097831308014895034137618706982828267962431011981974966605136619868833861808473180474048778684271727674162505256617111951298449873489930570763616824015832034916311220652015565013205661337093455491802057084084696916405806528971369854938430682008687384772146450175485597420478173647152358157861136514179840975947413805896749100227498452163427678713230829273887569535314229737015856455632308304298576612453636947681329037393823037123626683075588284806862741513385655574743540105700211208901184561011325668407495416963888672107433464570402714144839887406608067539424157970519122815483754675739904146366215234837953260521571336596046735408074885221039532237510179082123878849725159946747327355981054790199929800305197817516619850486044615106152745544857989883233124625665865582971837412018592066844053224193943400758965887963585304563506997076752878940630107025792641929240149186347847264664865461432017270649161862298879848904947287242247597700973180406529400787083471850407323276234709264899264220438639285454385485575522197974484676120768405577088914337992060105899363679960979290868420368739823475624494279155182895089294732111493496738492090885428500072022024052147299217645439284147854160633943805917769281919736192611946479971353327783237520854856446365545941288924722600706007199293331619080196306130758643475835643295323878584999595540114834850160808805222992796457036686339981066118078029642076153805642017608644230509347018695517772827822214577790433587489922115880990141166378561277683695652329614121423064508915671711290174704052035665601432438329611211926360218138959627975754363322750330088415501172292343765881571609598343945204251769823284867496285467563569721660988654594098468162552367110281501686435003482954634518856898365062561242092521080262817838432786489512589060581763430354793275867987545694118491096662491126211547356885213919532977672509422192819699407452907164629288411407505244025395147173141341092890795499331053268431434565293253681069001234809605461883316694187156400017472234775059317495061126623838636987890608920280826091480863581687858629488127208401580507855976205441059210237672725106468724287468932676240955629704358092897679629519519866593056907844172412909023071220895950121998856522595108998478049572520692846002083241483559238433731319335713529084669359031661422986202675795606680285199300719474806312096643433820221973166227839140895616286956780527035164866951485297401839553379285780372883024298484406463984943604539751904608527281009545671711744166099035581791128889285328147395914070454438418476585743788072351053896172187551140887190367889808583516359219489593110026024663435644035407127904534580253078556010985002218474024830538545399823626025341502684520551010773623512955546658747378954742875080671051085924841373178093824074733850016038374643947345246722852825461946940274202439911999265496499352388189031397559486256994220815476881023820731204993374420558247050435263409022865272397509374740340167781088791053461758945897044735485016570021250224056876950151809469285814052676789638775636836953094666037788155158935492197321427739214765665886359186706785194248569407848427033960952463024905647558893712603615999938191686623744523124208669314115711092708795062269812547538629275934703371552283261935136294078005992777340354052660137411447221910472177264206972603426688135590346030540223761711485231773190586047050403818758846050007178140653322847962088164092963805485698764123245454903038936517667988508944452617590718808522389834843735486452553420555393403102887500062863189823937760507953743149412651122989628255820756257710618578239993968174904383432572261756761121429492618462682374379399739704504451001223051018417350613255981306565818522645802716484322160198502970374967900370561228516148275955747208514580183112368361975245899346616792865704166981996295668398795457966625409962813968326409330046514671196182958906465413444811347719380186030163515969319548982885436109546084462237941991661536820906539810381789465419115269152387514970881604926228522580908310613624110349804833058249163417927811954707807362507716738093652214001327195040219674721379829989678008843435197556711519714876506968560198328216271598052909111959209328084601021075985986954906769098964592895150936550372670036182399849223826433461535019464339554295650857114398072627918223310367468689642417295201444119044251021303776647955583816722400040598050016492799194796561175700761247144426760243443046521850004220429829740585383510210457977794684679828728823236465470685601660545027644489201227620910206739675675683628647237431969005561332144208915972523298414804300546469279571224884831428779263553859267326178029489277675583889663312216305529315108706132420620286238220520733888991480195350017905006173942333025679241966483020435529064375355304604302314207820495072970448626532071572319063116619163123071156733658721470250304548100463211229727068863882251896222085316577992761646099870278214716935728551204925612253279511761682082774313662581713659960754310495246204325413138486898612866687559103449803687580695550635119291316030066170857502399628925089574332188116117594043004732502789339848303163720693577116882722124847708682862772643368178869257869267119631934304289870733992285865350738471344583358535665685263138085612881786669117172869476522267666317182314134225411816324539107426844884110956458567744432310948620658680368080560391618432881066511683680116488028740090740478044105680220688662689350906969711361050637396869059346089938689846470964580404073196519772813224854485968834951028756436505991545238117940786320728919645217001743036680538365920404337525568218727072745008552085557426612499169769828942580240681068611780480623931697652419061076147289938660714495628575308504991266060085538991012498442825832234135940691201752849758942084679127030471702072470785470870971447673659560205211447112233848461448411943200641502237929323295011823141462338655740351721282618658304322729145271202934808402467215738883500095624938222992288586234686829803001719543780687638939247516448273329607461123515246723073135865368122731009348287326857552215959219269634033413943121836721229944860464923849832527209055033978601185989644092477037631451783109175947718304362973086578257609562279197625718115495214650993875938569981095419086180310778767104352775461100094762265207670303173508027642077001754679828888101330860620531347836911686062444434871413084738173086230197932766214091296824743826899736862390789249879126428009064292538878766144820568024039136177504019524380497955675283642583943973722865219125481495105265668916398694839205888505955926750662471758333502817938584105821630692106061662202606465691123602973899650169417898263894293271427747955524815287103419420868500237671491770715567022232027976435004782685396561748393236459059599227153040557604886894907160605426909866270831421384129093399585929073965209249401839900939149426666589160503576972783957996652987749658267529319281592128140689646924896080552151011320832149993567187120743299005758302932983315730571317091032640664279109162703460167635788125458401417986741469843328314680300847951238929571534177247447825381968684655488308196462268796413481470765108707153294656944212186988841865853339732230207180192687336544123394448895638380349361641657498643599006808488057794784965844526743711856993903224162658859568757151355535914683397142620438306570695499790040147171041001444040277278943023412694753856086349337765238391680969456725556689651998916127729187578476113874326194213661607597998446212523876955817331865517033870573032942315099259713331297328718414396148642977026594443552372027823067650471761870506355271577852524591825826340700534303562082960542795806497306302999851981743692688454625995584987889918077068485170509414770707858606487694221559294476109868104844127589328286490463323694881836265969473241602118960210790961029638237494668032724064234381329706237896845566963598113487115837835915499620555050384692262878288330829614224093187863887687181870322749285852926501412598246095859955027116963283943510569321577989568962255256355683301440932037544806533522405759654095447627992764195865673766620917924977683547762696221785240128088872724299234183054596279801717243342181468379656973336285578968405821311848210996221860412879830716662399778690423326748991307909994221482849418621578555721396563500243459583266876366698408126506022826767874519722823537663679034020964785159273885653423527416682281012009442245776953205952893830509481982291887579483034524448757879039867104502633879766613993985105953091912236351004346372257303150038122682377219417903901612283539037124483826013200470073362812069348929708341306915358806098802390047692198722006538145807306977688002407316775258823290975136690469824781163531115580313955813919038481911880658057111642955588832557452703191573188945746724189597385491203135976942935167486837231052931517752214808916720258341780715027224703389203881345582261368710088099470100783482698907241356488787063713006602144309463093071472037911801567288309819481431445308521453826383747659629846938730699217662618460535043112966015386341008578337089640511913117740871197971060943266774975054804233074055631329606031767481549902616862635205299131437705637363092496721759036489132572908155695295505295275097967081128737435138233727509967713761676692031461826813914774902285158321214946953875098458931130301654227792107754663628045072777869909102426045226677828530319763189480688500596551063139626916900342393805489545477470282558585844863446770836275411118806382910799687333852486472047154844018846262436613565692149224921319760049927608951833625702716445673354797819002464141613117204708585870362733840269638194439857510478223351430247458907680485118303199278458547779025295090758929993144024885832149847368633409192349227451014509517512055422777291547193597640983863280432566652665314852073384063672044942455222412461397847316646798961959753420638290307625026980747677199395922856098453171926274697927041989711965058509621719365484962832250599883347916670725652949918133141675321079773070115836056488910836096309979960513749690771258182816632359258883684024333965135730640162818934322533685031435954389943480373945906661667278633263070491062408936924784991836060951532625536398730645122742387589092396744720660792021443326837083211425592889354996173689763341361245220378575376723672709250962822079506820008426216834460732393041981797642166714112230896896525655113407207906545242565752818301513350866448309649865292887181218098036075876676165564766362655583534898277817292605842146095660726953192639602666541258861976665275830703800886295996923859382910596043348482632787043537965842878312843645836737041750251133966883840813835620795916185337119444287454734405715583236386813070134005326803091290213805949642584832985756981624557603393288015154307175855418106220349834740786979112749817213303629817759474597443853631720832821889328918049456599297429888480663280476286089591889501116438769250060299764638273914323895780189353657666800342479303219704355361521913868718035610192480937041379815164828479177170319609449212992246701317130938264305790473512482466943883302446419758818302186614127058401081029345086780335722544439757193311242865085229298767958998968104466075870568174685731859375960187398848477896972887434463857245701776198898270929439984643728482164940103955262195334550462444486618006372885385781241705967645127265465458056827539326063929930731504053560865651398991218111795254759208780568508714842960491652589426558376593408441245322535134759333288710333250663687683855150104468436497802781725681234770849751535591057654780884978983477156644712971571030003240251701964386940654813113819818811806026984062763988424953267158813483911211753169811211066554059425778438352376085707547794885738553551196096893730316157048198322749958108484937248967001651257759088081494647869386238525432187511292237279536226469235448350020952450143164333955167667080861454517860622091560258669972956975658556946642736599382404421752477907557855046416662049071002371850746355962060800651371466548424881367425060984744503589995406015936713886254213725745498613004421950809018336728731451028577557646214888347464962185820506292020807683036089659393825371265662507046952040396744118639150237125368278828187267647288996570609887805187607594393052124257379212989691165057683979209999455955299141577308282341418375543321784542242142284723730811368104035040643724358852549479663429730725302140876401585373182686313233507097521383391029471028750700694851443983427027405111090208047587338632834501430603027727495809519804358426825361608443514106517983957446302489944219250508425335341567713526408500757802821934947014471600531148118311794314136821076157937358656201474864250051643300505351654154229878063030944111612592284129776798461531422344123341136227306914902468280171373319946513870146014545631843085373660029929927908156137394039000930063970716708801787913235022049847564200330538799201978969153061851279876784507294525444104601528009763569552082302463047932218420295530273347393880577760877150585721875968159002489755207202031551282057040509109878937625558331981027472572963916461831522527664748854196211710081263408617827005037505467309021360900492318529629495211684195952165455724037852919968535668941448918520210937876964252334726228623655967103283927101311495536621692062640325814405552987184916841789683671651174678533037261948279022108001697073356075261547187796555466197473054050811071480387713060765126141464112347706315636859444380903836036900033367359050305958892081015603405563128244941985135908314531441489272868454465499155974579669938941348246286644925125870660511466879946216901237825391103581410289635253254769160520886815965483031467520689243784339272707062883051664274497581059811571336937694983127983803914813421509141060367210020810606485706222540865767421730355814939917556243342407581329577148079710680998512265843217236337443554640291299362879036263297983340115804079178088634077427441196851382880360508891260197685316986829399772733184657323927561015442953361454246187658212257880233152434602559602854540069371841192227253894059135647444241655517609678861114647242166457716032706228193413721055240506803847950172422334215838035238723946052912288328661017402111104107180552662464919621335972819217936167435943728119831827954520607705164145175868899425411026835664371776248757224274204187809494146088374640741902065541789550601952602854441560057810559188563955021369016243926825115169078547532224457572684179769081946790547791927669619768807599623913751159751358407298759428786924493596962035199898085473828239602517122461066303267097796242856736002144056564683291428085608196889804347581788502660666554928108173454914548535210410719394336459771115973784279102889746822465123121364589209556780521625594525965643640284065473053060491696226926271046527792386846850666914747945520386189010566558327232811509958002676472788923182049985023221900451247047171387279738428710137391022257296975785612981956778784009957992817127825075224924274913622749789026070316526763215387768768004009330986245463085447933091880061636767290374130928102390921859750843006734359828973692689444825065623890236090191744164348749808286637795227685897129730352731089808952402146808907387285051954057019434263235726345267185724705890474081028212373419483333504064644089243640101248037471242370497286154101299859828330356977536747167672247343293888535245576309478680925356950141416996296744335268267704905962792616030229878164103024139027544445931705429493498834680430909244776755871423742634114822314997001622559835543099069192317170916432862594337331724111395301281632882933835666456055794636688355716488165951809298503537299220822356406125678400303477693160584269810345131959505307638839972487064257211403466483370505006758805967819744803879755996466088724528242774888503722655598084325773843563967762669783576447439288437924238636091357459560702686939682511029031985896613663581075014265082742497918465716826335431625679655301364506908533449414248367337257961810664168978229744654874942631367899178366220923624126037805669854128208080738882707335551187929786327708260169304150133569003582017294084615225789117946703864379636322063387634968905998448927880548578862856106186351637839228662739723144771977393085425698511430732687123259421001589427854705354128171283117121080729365810749682637056995490990488037679553007857879673828060557725446014518473313100035728592883459640818314657685154363943014430519104112927476024509580718218689542816893614273762858410420132887835839396375159419190425924118616149217912211466988918855241335584585647685082906380379393273624409102178971159906617289868061604648226121000842270480287753064437691023353308052657094565819795268016682821244735355364708331884656765143755692832805386066036658406905928758487433826061136679899754583650633155455618232218444275410481808889900506454156266672974556510853574836533771539993076699725016213213881766600310302184877159582621044907001313684422935659203580932862551764732078204040791474373074965601011012219169894592204709013997146461502881670294620841961138074164856415209271110941498298395765218607692536511945932073249063708789436343508372667917178677221139781273227865566657311127121047454968961291458473951657784028988444460068614190136114884841603850203771878097578167586083220007734372946319305566178112110124611938527520326904400069519178876721893029239173356605062693045198916494322441172362728659086822698657396755621955276689246227099608597280308696286885200008581016447806339445086954321808362545534954619585505794043346222312870652726131309488530120664322900915523300789303675289006989406622948416553795959831134687079714520195529511108945018678402147449503305585621923062482767051143695654753029693412767105288755510651009732078215465220539917535228505357952574239205224540006622349006861618966889392572834904356912845194846172087528476206781461084750728573151711209225394565892326981119239764018105581878773864371762961993322700388566097033199696914920880729709599464010991085026072993834348995821065465680242082160978277181422914325691296141703199438688148483967314363689807770328692658172247381913119147789496458545254973379955548449475106534841723647360039096109027578008536927664681199767582796522039192595526253475349870529931687980699881516525207785007356462336342287433583353153854969072469267390265035783823237958330935899799723693894648874928102983886289199351203363204652079940656080235820399220161236862247927150460519141233828794282222140348939621468834646447528439072432130878214859682850879326548557475134688198247029541545332248461947475004648051606746696141069675283168764203705723193457779595448364263186771558664838630430632946270697306822343386134127230243480166450795120836000485983677029857259062414814467061122453586023584516487578770554274521017051953420232141684835987925717477261205014663867997742839682922609823839736407976269351271459876667106032601429036992442825583048622353422245787147262464742140658741502172849282505079781681359959412556570529759865921829060898816379356016767253671780747485494628715095132834084529724836707487411976200953353875814612404249755193558231514223983982034008774571677162954642114775729805626919133719618619067072215976216340180760464505300235262664593707236490095272363770950226651486120713276351360970865643126907927541383566377230340774593260799846851805256966956143219934521770679390951635003699488416794654927467478969019901944271222505200953333152449805538511316684864719825573636459286792460984107692205875804592405827754899385034803660978357548447261673771436327421793434096244011420648198089217659851821497359257857335663188299916637712916783457849200816399501008015995471337567718576695635626969351875717524363351740805900371937978462547026230750238413836110028863507091845346072432085532883264883560072900571272012598351369423730335246673416119939935083836360714310867425822335816497655730959081759975625214385810480217716192416614896621993789775980437070583409360354250507648580715995950962810636015439644492786331214925666294247787088922669235840022451480208737846515608192622292385562237745740212569639923147101523864361799772856703209633565346770207128727358791540960629227213462628155868620919163744053382910051471216460152053667330511379442937865295838091309943266603597008661907002194094608173756308580270317738359168670832070432571372367236786135439476815890580069710073073979811218384331743039728169500582820357522648882006507171748806884218685801159883325054015430032447943556750923733795263192790509517752214300036206816557818766007308583580580857367672566807745258271977654328611742886358954847836265660895594628168851208020841555356511353140918442009176522583602330944397787445218321397306838870672671493758920062410057057125021751304861020151369500294334005580374270327173318585771613499752095558679461430447187090551886561401448081474318895757866116814857208036962019773197426244192388669546911982996832630634342289287387821054463670516562223724609770382900676089362868081366184154544819246772801262798167802582608080405546701687852392073331063947661640052811094050826328723139991770368569330929032199690194963141231170657975459066246642381458289063170867952431489983715921361440265938661337631953521179381305111605138525347707008033851834610711199613699189010722623822466177446151078921743954184074653238169988101281134923840133940806043522273325073232419717459280953364222998041720290314040889767856692878319180153907769139553656516949341677793480311689228565465466064785596028335988933131726065863670166131102073170692791512744963235469866661449464236334588107878615030739774963302985922121097130833196938696808197640358292620807215252261972981909075373507420802298349439580303791432365373964204689109967417825604902150627090162761592030040848073013452914438903624314632802833582571397121736531812107800094732053892264502288797639494465872411845294152633983669971492354252455413764965290850806127845419456079625883561738643334828785810930240717808489291381562676545588086130866280650131058641943667231234010841864247418277017579149767641537659026740170471017192783248730709344806068340718668890157848561946376774166245666151178926985099689219076131205419211737851230313986214598932952893633633286369045486095340201279044681542822453073310354956031956547875483960532460385251272553992381344648285389746181984333836820961854953808429291217156485267991632247783534386029568392226687701020622474352773155094974798356185377667238018381082768761845528336109401125964545818063265895918492056183709844927070571655309689496844676478224100636542133217918716515847205901530075378790599929137217166781883465312891687549521948695698801766487822829722840226037464518825348901794921138970942929168084993119110602294452766633755826252301517343552215801038229698032002274446998231716035499856842812128160435481570161671182399159155996573695501061700678635035180382380921983275198959102675030812503339522774245282825507676347981003308305246173642135019134279573030978334166442535037638784189628408954689623785073949328257872503461458267599302223644712078019781859963659764108384652916384969165294689629722461066198984969391980144697719652295468400500195803048877790791380349607475773221808524306758993369946555735943141674243491844328073039467139944167375885094648236926081706515050249868009614503156311866880638944988188747911707561052299459175148686413768840981109228364618532793310896831065811749715979732986918178004564719506426092828949603694980220384153454379118504268610087279057564773629242780144838080133779217835561172984490365682428476954100665863370999169356780124905419281168433440073420442427345670452592349493501021235414063988936322554030108698180462555366746544360064723124307659747399792186363032006938285073109024892692684199359862989998089170393704881212221924644003043848587835915766849654338651177309616124453462836676489096562769132538986579614444545491491505956335509364003339046974948391922433588373091279794551907139727992226023727041310854285616417580820382265799317869997098748027997679176959829290641659370234177687635224658570831527264025542264831398599295793503278043582669940175554730748331506317409933529689510953958145267823436173650457776194556288418202158778996846584836209391097834205021450096031032593476897499555990705389335650166949566578502462251355193696324532436573778624601536075422402218631200254094199843226427139833291309170938618601754561807611067881983304995995790177071124294561854222397085343990330857653481822606152818330183494022195304970799149506976694740367607603637785319764010295870097968115802706466030357324125606660397336120185457256584603134265264179975713817747264442836926152676251380727527165596299836140794909048677814536640907203557532226903554888917534565388117761356931160484727869747352378646825018731649811265594529825579391674177865146570444476506921091653597844434154311540917725098052179419607468662590318958787826175168418558023503456122136526029034528356803263365716337491754992875550081694944515095331356179549109365920253691658188765425331325089911680101792018798079453510242526585778814793780937199173476478610450072543043326318387286972021095797394569716780278099907824358226716695409727248371274657865355671809136211242468031586542364005771829433236504722154808094997839776820269487183544424651510049455710312735222496696914732990131324238512206039579275746893731282782303651100516197962540829826453028813483799425624566271342676194390459180624732642082026975119326234537341206514291999602019052592467441209449464557064927492220215078799995759311806929954486722926689166044565630888975371850506886868377289627698105473407336278076001616929998700158838635673618531688312369668726121234444749598039290606355358155805566683617139903574945437413727536803710387798775845566521388441908844127241771547643620108115226577364764683595938538338516086906961661389706233005654574300202748081261922303359854679506954652851623196441123965617455445733553393873641750594351788177778484547603195048455776437334209228218242739279238125782391199224473238185253615062110226771259359930215408628374894561045459043099187134143207218440223896837222232665244230545444985060939556086111909335886719608534040409328737522769770576068254902172340389834725791367596461618051891246494318653366041791506252855375071992850774410023107403793085553944109425625873801074997140408379686281116995184118181151368545790006143870571894863933281401941292754835071814060155974899007407234173637534154135510675180785291798244122429689966540378869928250218352821424221070455218607272841326295523525031003493030895506820754559290175066220375953266224009882645342140683374348431827578013241470788106105083558048877794643551892104448625667740208059053110969365464212656827280831619300793793579966769787006760456904531549171656051421902492245420010189237877553843157484771128390058568896632212396125553932797977540688303360612156897641776482846178059360836596777389726684198118292113726286479833530303865473560716505401060191467625363262346389591657100170423829208442581302005840616829092981037104421283141955083661815103617152838714348763282971132709904354829053380967226405648249753032932726983713771944298779612628228780051069896076579398609645253947720801488727837469553733507913138938958878525900698064454609507128897061980703378118484888190754267157978897699367160426087418493492735079464659522259309420051183906499841032141764755264087580832614221964798744052315401070404685800417743433459772472180046682744800891012009284021532879780606007310243265269596343642697367562880143666367154577728352379578511606242974520069085712518640777118720298758332368473252314674854130326213107638730441309528086097206830332123103733956708244721723511492526502766191921105059996540830886849525152276348719499676121402622843556610072876213963880893053900411822414262678749015454868659322260178608583283969420165645589240520510724115171529175770347649209792012010005835975562566218144261522580608241540620224477058567150601486086121896722572096104789754186677375277599826325513370822817912083706810614632768350492575836969329195991098601648287004399105158344011180481981097657192473246360675793497828706792386503113047006262224810634222004179819278776078625365064734322850360754480589994484044178651630479479361382881731079526469509240329974608925170473740293245220190115943164732341665381245556099809387848030509915149350011263634471548782831497949361341294168117802112497850730451283760281902333762009220053782728594317700758267431974068561957372413743378941939792510796602245407592640134891732238790430785463831502245021150682809341831163059193307695677261686791587309069260735567962323350046008796980314824297108427722080247607009525218923759642108282530638547619131835022370346204137511631074411133099763992735425274246656181363567609429344731448897202493959745996930662355948838886440391130154385256695098697085782066069331993908070008174682408571996365913726887383001865513475722200163532266935963201380349843557205192272109416178823628746675501597165431957393515395274975013414620636322767127788562033907745675998377166090484651765940106548772761567024202333722798150823702290895319102736682403348329230609124979377456513425649296334034847352480060439102680763021952485705118606720374478079637451238644447960758032941065885228102554904894135133998441422959057005006799231736361910408516136360208177893978216495670342589190963810953246968881151477753022333556857379087543234847346893950788073147842856442349155635378618957740424622797282653880131715419574903181341153085286870818172363241432612271247448523389182817193585481135193855352292075877392769981502210583690435806974750947844653979450428366783299337175188136678723409877764060313243872943487558095204173727651590398320420637253972101240277164940380354910529312194866584653779375076394513934665363747238349377594042551065832924414605192838564719728758488932306229982687882908683682740837476924345168578338109719690410379185733370219084610601661657115728181333425374404984600731259085841204783431572828281764811885217696680947971857979549425462169070403503127483055547708354121066337182655983670803872763722723317126044278442227601556278785654049730805038838892910200074547983675029188583765529138874358659385555868692493102141360842787807326818468232191477587519064082738691786809004748469690050943477620442921393927000249680990354359766655847755265432011787338800991614948258680973950785136868091789879870501855789795475992192415764249762078501767019698042567841129328649370534748402569423148800837730944947933153593186593724687827743385933874810962629635761630175879630535075974176844020624231974443718911959212701072899092286614294897021447801332036557435872076556538085879514454697178863075687287438773332890592890319983675435757183386750321513815596879495198204174359250839853843396542732562235311827877724982719886584398167007985431002196429719289042283877515862748321703227701316809697172930032925677806608645221243495765125327318451722582087594012705558886280917668525864252440351472268924566972646741057832954607554508491217685734832265082044921608930547407731553126831651861204191191875808219771560487108696255732776180790895853504770892991083929081080180139669577016262480568784611413155240320815623687022347916388147800361269460363968532758025084109124783903071225834894293471979295257120119323395057024775605563897965064080088786068382545268537681151221762928597144689273358641393512506516133590247890322652779799495486008856154409865257774965133276427743140650470123879429213679939377951766655791567641263806823003956219777054595409919886197451800767774700090743220888136710461855039973947751986894257689782676161388319519727445706078777037650520319752550966187728163210128420968930143058671995043526122569982525265375392435003703820484338695190914722062768373440716543302037203786358072403113282644058804167523938038029059928480684661942148525002422572133133481838828099349480849612259735268315252763985361191233422290580710720859279574778654636341607572114523881091219854602684094567823393902650242808251345235418561266387126741157474405054160439348214693517429936392526075999806767449103811914386582417615399395497762096562031134238226488419290272850213645956332179665172668344848543646123851109773757969467530058928053573519015047485089975397186479944235612168344689015210483882526377107692149354772072255771467942444036893519384512152223585482891570518845880835752403675714371700340213521057049500851759247342073147082834327655386031851072967575427350508663391573324265946707477982934745112242414226918311809797344652796368604138952406982117970424684686394132815908504165076805888133501536937421614560353937690420440404577845170545056928835455795497363795953326565809765483443943114798697528945264132753509659679920730592647271086588256696994329950057385228897613278957068103909137131641391665896382684515407383640076403350849630903367490186979448207447064269322730779567533769355430735440744986691981983632024334240028094585629842243698677584144313816642554485059863122681117322392255506219857079704928652301753841099881641923833963945602819919089851902373570716562942285626911490963894105541304850352760652204832147460963207817764202077519991147817563215882410158422426318837317126813389872834175511071862430138556412679828533715955376029949279151372518705102058692539179672183567267477302273497215724339065027163033597515782470562302156815837829400543416817895053648622207480024746951299283511585040361988488045379537691716747597235969637365605732041529709637708532905200466279598055486434752531762143880686099318024119241266230422294750648037527835045159139524736987402339662978838991131351000219445390116445813739661892057459600445720904191769835921311484439323506140692586496045160884728908177267806224819619832454941290156338072926390519309277593170756952321360817529699284883758388060463866297267463146679925299670971045762530114188532616093060300233503263531191490897318698643743586050294413248450013749541345251215841662163301622128889253312706942534924195684501798174628063529688436941735880638636450540174910501331810262948726959511101269981493604251266800168270337136893981134337790648831359011272513592696306109915665328781643283116620218039872154118856582201586484132443365475343197813170099725380416239379969125300056370140239190394024369818632514707256626012355600462769649621461349312933817567604849702928029943155250155994072615052647017030002478147239790201633728229843057151452932092967842487055195929970675536131678546460305952278482280596495836410435030035011546148664454622519516967419258645124881226199119801137248063217390248271247564320434512163649653962752054186545603383446625339919501798477129640008869910782613874728699858347542265524401576949822321493897921380954407797638651121002874590508681350540502168070394413247738265060298557747338587590033180837857603654348379450781056936673262128988739453777012437300014676087284483496013779986597057322032036134649757272677506638707813435335957341588544882223015850772262321718584512358100413019296275072878842257003346221663945687326544882656111831455993022163421859469329298651392968943150968506173531214024314135024233677107486751383208517696486413879824182129731443998207718220621983681713085078465617804662297799652869121480191383644021162572672833288541147748940174096809197298945869098608855053667807415360842595689321945773758159422270474345278132107643710757960852751960252258110596358078126780612452582288785201922271666635397609307592883193535775727372670947768460542947460084291892402577920692042516897652260542321740079879685254408272845288720865074770303042422100116268863885769816689612482219964978301226934847302538184505898388462255401614421791626981981789011623350238528939379681207689654015726456447479160572193412879224055460247822122133580799712224713752680453271824178117514600672256295156811740303768645340857989818680916215211696838809308863809664321724066874471852957996086667084304407211659764158098589511033707302682193079136490337740304088823269703423673450553418499087367870304496632799022802851037104538100707670074000492114608905897665545373862658073230371873354039831184939456406071261906560411501058404752707462884991998068518505801499204960547247076916526227651021184732376354659594157395064976526697577260106392893310285658348385910431593650602110341288533404075111377183685904615006880799973922308668514913533830597412284940496824140123085545105588246901984167058817695450699244721589752153153121320515236051521823829315229151619486306671893892481205160442536871462940372313586056819780020404915718675617525926975204357613085710355206714729375521927712440593093977812845275239602453154735451175949805808185470570066168269779409065186680531767412689191549020858289901477793001533756199136498674132193682439759530560193631984414116907604699691966951947487665613934760821154696795984074936979913382895335276233267985835162051453074896992758133437718598809609905820757144823816179421987822025346638706720554426124953643368182563160329129985103274973569520223435283884706062089691119739727556752855323418637646738416599817216265040040870222787697630194028908896673464201557952217295350972091243063556971480292845137717858493722547798212149469471821317638548544664773631831054980473485423839744611854928714756609958411290723195363102948776455830073759066392768203477212156584009623828784557824883974600258694631330790426577800552207633815132300227098506900178537696719151399271433476485753907027352955944507053446263180384895662556463404887893619248820909710921874321401977120706411491573777226230358006313592963922512224127752936671531684150382270976947493094154499697091544448856655470113645849547795057058034748122098319089424758413401027004522451371979874133480423715290321293603685702762888114572949728736613837902367128132129336607558954863147330360369611487195000899966481158718262768819693679292159478696546854081743687731790954232121753292542545479987409355753667713821112639567654765032608865866711475471726152732041911922569772608247655160418400938681307452052323420592543285547100069155004059079068810499914318563837548712351842136844301029618783761146900735517334939049952291677094649652684105068076262935318053573368662217990681001482186511402193877305301865072935526741917852766765053991446468594759023387361311618759932933961858277205603265532184458108627536878277158076546083251539145795801963631639751916765995470367569893402064895486799410851513737367903643879877622954761031805915294119534177373889527736354869352938018085291958338776462415588128767742806899669369076894261486653160096625282168914967086575520822463897046199069159586698939029557613716131705185968177809795602407163368073533813645568281621074078722612206071180967961164615042070482823258433094569648947033744665754102451648469026628237377409809010725611378736195959685440112007197568771792447037404357225242870178251375701442274554295679678336813208760956571401939367199464586887615677720298057966968906301958892731574985018956948603260216025736528045687231908271914510678799762839152951855680802689049962544830211430038331319486164281584583880234115238517548358646008412926142267169520044942264250949350855291592094124759958020767766770333544931861916853530769169208742972707148931285166848117832975001601932954328126974344427883141996916771166999699489405668823499645378705622560810008756843986066413968634459123472133367928073901901137860507487779608298430876541041334979568074781237618785305622025336491744113861765293702829011232194007965022896274073619559515626755894152351471634302595223944819335624170775719709878404600063597198991486315122727177835427985261907362666150587117382725447179579764401512111127693640170397510025195342749933895965968888659585299063172550879602387138072373744453111780243249042142214488723030353584716555569951954954030261600721577643804334030751887679501352400125563272012682647354708858344826691579756470970245210078245254021819559451845599083321586176051785455904028088406373281453113102962439429863376033298667754058327730117345583796161048473459948429769548970010027670956510340255880899673834909418391160515748199246807368242919328473781933659675593073048352302063383419692960205336571415093475216390375154907963544882734960934132917026105565338392125752137128523718964006089318812411400221432019707088211914909382816959385439481460054229545269974472874160630075544906593780267669556611747935201182401995185956264992251116630832610023683319129632470442310024713607969622351694277158142866959856265262945260880940822532981118538591251902301893075612082836340335693938312294396427672892690357243385000797553238387257533088229313196042111898581281065358179999718997970771289825789822129511175538046820723474125162543809761081938946984180505284074687072951078126440988834182128158712074419318294615164665898593394088234293235376254226930022077453104557678972453526779115891056175678483463756842431277549716143797948735376171370568845896840434008415572801782492364785215990455754893354072283145161326033122694970621600714189465802073226027401264455123530385942493821262183818661660085771183116440726027842824917319538491160003232162407602717757412292761677119449919052038638970091955352486503832407803361936185046135828117083772711965339109393537724229054424916101895181709092199076803906806632481255309864352007776207709317570544996018091380852786066704240157321470328909593078044471753872286759213535743072529581280315292690286775136282419900815857713784295877203875338120716947282865083621463396162756795070869214359444209603815174974578006718951153879077676051401017216721570016738914223613780724857241685926605510291152776084772207627227443637531205025906513528954604864709692596686422515662763110920091027570588885043524639222010832742988010453279813097535884775789407449775952498675214636502042660188246732897218816954137356079088571094476217557649161935900333476349964935068387537184129770649607812962500789866540828138757280446167201833530826910147544447601474528407984790896681166234379437445647572749591043966176782688445408150154806949016537526890223674202364551333892403778036668076196956039519663648172251414922208331866330845089960305675507526562891994344366772866650241074224309905059736422229728043336525417337552506627230611826036812187549124393180845057679204311700840979564533844813334917200697982787476531073789482696367136390783682482481849078446431719878091889419404584431697827722933264802150257356255408222485150559942537367707993930122821186792511727820576956595798798307585261256957194719213333820119525263345790798098307537951924068423109984974645574426402715109699534746459243497194004479035992079668007139861807768661401909779300075209626880281282231886203185566953061185358391987742901372614917876530762191327090075735435769228387002590778203368804809426274948444736630300688569215078692034158223377949554119669566794143529632745950458624332925222042483986558769518891701407952865090740390355599107713846226526114357428381667605998733062833094871907954866181630562339389738675028205639370949913251056096487536384595705057230041731169894995269086011658081784687223434413209117308104325223338320860115623658293994043025157587811429164619036477908236100348748165544342537762239079576604743870834450258171807592614478322907166211425062564791019582294872917419032059563011010786495285201567772590455564385594547695169316821671538116461309381497554528968481690837671747205677937531257698551039970570807830339495590358233030755679993432079027637591416855578145010287467416883096423575806227578446358619230675901395643139584526000244571753359684346845203284766076312764159092169262339570162336775895941219372687594090169189543383043228793748148702782372914610216671660761240292242030918168798862970304120132604846724594555931976730329107786460168655925641616611843079904311108469119586434118958025266505327268953403117148848710673253505317654137815396167462692746350840535508292343911863043263697328092161305061006598825417790146139393548316288122681221870809757327991163316369800903759379800578493942434603209012728779415478874025366221210736950372828567560662297383156874947260302547249191996225225690551830932419322568238376935127057046376503916309999264898297469585837084810600815763816427112520391145946378637652314489506642223558333158617996889986177809354237491031020075509819237577781833612251386040239200850894607408279986934850826836013644438829649811637179991939053252616559862856737386343619706937594453041603173063626880116525703203233124097932249722242926700824701836523952446876318433756429628020707578929681906005408865777961378267055159891657731597600397244896953587752171786014116236201461088653801454313895821722822662666486707796967880489307132915980924192047442727198609255826288203121257210315065944586423324589682256263931102667007621672974540657815528356326609986702484294357157497452546801473870794390248803671467340136388777648557049966469749094914961740458270026014732773388025448129625689962239841997829604917589719577212626097407800887103916356928509342001620138244154117180496753727345256498211745702120836512680488010131850703712936020452065407368877030798813113473456820378299419833157300513549599624667247767662298196684462915479502902419828188408709787635675624688307417560026991407922308833363237012029228317503707832393329871560922389993057539235246788046958760713465001328700043822911245338427464120117188869019649406747082729753535862755146001350091956095088875170548913641752493810209801074669846993992330650530712997683881498087574359093402637471551081207334947161021438765945683248613642284987869369451956187564284179864101661569385615615868860718894069305423531802897975305162315275421909980622736959847549162248670491529277420835798250522044838731305011691294740408231092531485799054003537292293200615635605532031693294683800200992816149733645460399992807588939885235288468143579469926440667496254476346296816229328838551022657787707202197288133964737635656064315300910663370960241209074759934410336788224341683456222041712562580395979018975136134960056457261756857680570434788000385232524536444756320432891585983773599230260598775643993540403019605684279137609382947355030413037944764164072988782218223346671768886862783475887895552829857084664978927818482381580299381904632392141811898311467118470468019026299059794713728915446758638729644928484219071279658908441418893013456214359019087786396742731594218720726423944823641247922912133850981614189413722204702395876043574493982362593927672590257466900094108850268941457618803336524157408023891432292847007916597841117284925796779629220857079475958205434527056996144601940947959590585051655297148603205459265278325168132744610813929844188338052458186561903938236432739652482572244460973806571284235282351800609307220587781341951250373396946628377599273183155013971012930299712428467841549909604556680892216087809755493139409141270580735608738438586412237530003513914675715357093810066756395604028197117085746463530894944788131216212613128706127444486812408654776265345943273195335627354537483581891922737915343780396500961876758553856649138382565988910063417356028472518176664663827859059255327392031075890612388344709106942650164030276063283140368317318872090903546547451017755756320592061776810874207793154616798604305424625539067720792983715959267114087394331844229726761716259698764385764324679836678046441443759054987620227679747822791106651997953075435388652881520623164192756667545046949425946699254671387514997787776422728304605542020282793459576978754654841430249467545519063470206533974930281144959581731419471955384714139931858912010073266879103767060794189721669126480483058607130639813849625918551452170278908028933260361902222162371201108967410995528643865880351983646448434658866179668581847837227589972121457281735173634501888214689609965707065852267818927608917094490776475379299917334108761483715045842065193577682335453182768345067310360520493293884017647208149056278867495391395377322446975197394494896846856167470980527309128590697871471502929453825789462226096428530431019494574568991447676468165510081531066720642408707362160954097586134046306905852017599792366414456536473790112212241881299967057115468954381622500323042031475429851099899582645717356911491389722477548824591751624435422619886513671063068939803151202645000336841106628950166591379872282277773627384773528811561111780283246830333842577919981807882627373722405102806168262173273537478525153604766838689366940935805387899722466932899106057177697750674728393342591595570590519468955059943789324049713619179687747740538069058632773513240746594825403148127102487538050084568553278925467829162758843024183855045624938742305145315967674327172152625124201165325978385740157444544801839031985938512125270923709491285948106284585789871087564954002765110009297418493819327344979691092782154693551816501712782992892579794086216591442511545566826114911144678361388439221196464233580406187180022023316838098711775408757563545793835883021328935099529830409269308988157717317841127235293208023918280886720725170486970154590885351526769643817781835536292203250619076719615978802495321509190947757134633772138079595928612244730923005900040087799112441198209369180467977085617176794976858465051877000458361048404365083373441428749878635198817453514562939233191954594540205252359423729159258522155205025669443882585033407435821222081351482367116044648902953017462640844997941992609617740567325243209275788076360964348616429952627662494295658884841457733397819831901083207785287688115954491999524757677926836580710684103164683459843229432535037586517870361665649702118448134222700593398186550507168882460034053239751890077678079099474232239293692589807384233497353256157758839925160311973911909761042887534741060510928065184231100069033359329966589232244615875575388155882023149961621779520323123206991482170220392066735788835392560180624327886734773784584061946235877441927975450050887186091008397678635774695257003944768791147555752209253223886880815214655872064311710409000106887889856335183854277258739850194140224322643313664856269943505050252515944531075121125522897205181726606830205522122091719423032275959063672871684962754209539319729435529682756600902359285060941651161118015450622781271230413499996311969702986376835152856765534083911182134322439085669670771897501661862355007307781410291968549888898972407365090467022496140065573078173800432262912324026621625535856712770492051638799922418200144418574349847002808825428984620820560510307516391990126833048786701667602172998022866832307069729496832441662164117022006191745706634865958422842397031094510418457456198434909299410026583749227538304486441560940759492290409688506867587801033356347830098489601921946769538431820152153992303138446549273297242634462745299908783333669476873279075520777409609123200876892632144875900431898410003533069623915865682101531239230508918252196331414597019827263696354701094367958232314424656216912151857292411016738408360393045436864223982724188349885361384336701186798442835132514796492038876256238676686050583323221250641876328000657964255937027524768373341516328350265141581555478260689305186996690361951048236246943279528189739017373582992569581990134597155710473955267066782980689638058414678301587559914307890296032302452825171005703601129199322513268964856876469575007426562409863569911543645232101047135605273057632598284602211601990629355170128999691738634373146112264494125921543559445686939681493064712482114718046279881885816218011631252425993462121143317645642138058324050804350805519147454584564496782304335912468566002174177929935086538810954148505992594295946007080983796826463063470770543694842482919862611134153463503858225659740709375868461853505287563640283926667153896704700385897665272614805198741988052354997593133190739963890663193260596496331571751983785349519190341784341751694808985751151499230110373246693249609896350260995374280188669688522914734663642108183628189505763214391082576435869327087753875948180676086640138224313506936777027486930440041327951738433035630982367109783785195138428070143643343264666806247808735108044805655491365990655812919022919080100271538857260360484345233432054220371122097457243193538406257366089866020450045324517764794536642541398500788804536880962122445723028800492755373311948601970469362356630077060965727439643933802340465334375920517274810689991582716011923082476221802982350156902908128799130425585689184935958695390121608507826503603455470475254703437772749571850995569537000704460376671294520523563734912535438750585258775138668986753349542055743892245572767457907851075751826135877903191940517840744582084648491121806185735685269978171548383075852706812969741286404293962020229986737361679376206388779703726231216817969442123000445594293236128121779790648450263024547048886955513531971834672073761044345719240421938518976367403810892771171364472015084886443608150537722677846726023286503078258602597863923292849134737792268365450567723385134153471826221549469204514979425049196011744741669557770137584884400140182505565541276184110415045050207425400577963855462329072330974814239634789021942716826128785159120823105727840875424963864701045556082549033677674375245509061571348759429442997343930841888506358615996158202194769244178405036270834590239564569935709744102747491540627770875387463049308700630051419753832388978927166599065483870742151901863062590105783810776405983263253623245314083460052962524970855460721055111675232394364517251360672838772203051299527173370439605768681265780847097116598481942706539401560103713533290333670558316363712288056311494676720714035783182092034769502091805915516998443458667338527292937027939382800783210518201576979704319464735348996082628659093478696728472853859813513886067378393784792050077793481188145725373519670715181954884086803464473297797010322557554681814020172811234498347698888292358550135573108431413005506708629648246892714929385791403288186032839470708421931626233469041264384640521324846709087280061503709794656976174199782048043040434369785940558168546496044428639884000116082912118660782691000241735357807004874572512395018128981505436364142097826215736591070228819917668650232295475286625920570899165233303585619316624226729270073111805911192993774683470404866990988241508507444824822193882084010638557412230982670541600829842786504700572739305272148626495338668702931109631903968716034642501123625648196726974364876090643996139122535454612194297653649099408805612155899810267191531961604601260084761131046852863238747299314153353477953861418020175670823372134452223845286152986688612632117574141050686579910825094207061129261071607635372274699614892504769993789350192749714534802641816224472599210027998967486803264806823257840312220018611241254132204125823841661804245643837795786151919765079465685782683688186087211980691490239446671602810054906832360551225488972093576179185483811007607534206538247127898123665621869350624600002561675884403996206379983850027717246204886503523771185250199804548239059229704791676308826192210354476027600812460871812897659732279260065325179091611626921325162670939704076661379623154958001871442833065855847112802834140986743942955118489930644683578179615736800513895587361838813585603393253977281272512049313822056558457367970512712434731842372548049027420068195207596051132547911056451457520058039643357664507853989048599481782509086975953149501946709866602678886252346994112164638909024945068821521162412526791958452798321615650240384008939415845289467288499232947034726304189708575344872972714243870249688282997239968081545888980873559030583577638316594078433310055623894008356198750988922400442709997106924778379470708857224156197664245440179972622246315202773317012025556344791915235898967423783290068950484286604672332927708485974949218766947814190092898291020826961972415732621254114480415852549581412972242912153950122281168026918076043998113682476358528728793896702482085404731884447863972005334604778760151096628003851736716082670686489293596954708949047042537067229637275832206415652408525617560313629416997764161202786772055760419684289497539750781998211680165652078653002365481101709206975620352516930178279673552888966108025244803265355760484349880900622732516214565136796355099241167571667283319353278271039008978818099704455241808339825001473539349388508056573337166981893067146265181075807933054023646380603207170862115978706226725172824342408310315636418619290606762397614016605272527847681213672715887245423951467043377757784085122502541798630506437347861604645548919641038776774842551829705109612400306080609728282214555705848999206278328069472417910920659525539583868674914723031053712994872621310073105138192801029954419261020899749059029554254529016941488101315576348666022721878999097862470668397388796096556239091114317832986881623054873711963089989657379048865502754852407038072670583566094299519875709018910001437706069842130946298450444273897760878641225906932359506884039486950336023474563103164285436377411927253140442494317125157896693064638463001949135135987399521328294112416610760872034272264031858187520579576793018826617904112339597122783893749125726719675628366907837227414283096353298133032121296487522426204152529256397489098097646107085539880293883304043334266981082942052345824859298085750062417649738486404458956903427968918804386201653346040457616378328559559685748340925733869494698200895229770714374109804938784189560165844789568366994012952372047323011062478153936822716182742215853593869604170664644719572353449415016185306969818899403422513894164214742282840493720916839878841376500361260040070697754771401147098911880397266265940878702867370221513952169407712677588626383632162595877936502553223701140710414655966534361690657473299190719866241693503814404494637102706161372694105834681007024960159823528688734168248050248547440125441627589917405581508785827964761757469790743947881151994140438881032526411415843951302861354501471610483316906287810811496176942646608399404372826255769940029294453840454211440516238516012584088311149180284304711775414669558286659308255456461144440237939471352407997251231420203082496992482229913427031238184169395004486770320556169667845925484202710242925926002555361102582439518629969585259075882806484837156519275391108427666225984033800065490604084705885955849753565948460863138438156178599744527613802276860770137580621095807086708217484700298179796779480807907576751633127760314005302266316255674518744957212439374746151157754518410311103666580059553134379969720800010423070573705557392125494912414860124438685647304541744636316412007118781064857960557529253553265579300341717304653627294329632977834664378028853163332252429924800185237918671707950417789798469805217497924544318856822930908491228295507274391733324970262678144378279874200948454152342428518678012675874071352893947040071641839140728288903665871610154183894018231786137383369306378005699856660457265005503198008295493491115918163389107580198997259314168166932664076184506408681179457770142015334906693634147172278904568938243975813981074965259287611764370071415821722489881605403702346963821404759474342283801947875101299866483901868819398178732297161567580864844408635159530038385805137510863690923535210482966662559626845210410935726287104997664258516057287259007262139663406521873450718635684826435183505837574893120753182948803434848005056086436520824197909209299956865532962540423432349551995955688070205223266544689923643078108996248346181212219649754405290016795827927585721139502945856820836451773281086674181364780818884600614328636400138989951656535692245401518454582146321812644445091630039677839178636231360931829781168766963643245793720335766110317318750601005538485559686463259716669910056691068838700069442810217875973109089944782550107693550113768218147423697416254896045785509064128707791999004561015221152374499352021253452894144671584000183691961850362608335040628441470481250806311127664436086652735235016185009067681038037927896765740874863590685614177856434780524316441054407642175498160906722095037506630539171884416446888691830405250065333095126179755296039258430821612860553773283050187877498240613565419819083245180144578348049306648010632250894022306446884292623408275943682097432561175334921512270380219948795164662654413088436961495388707637450168118592232955611953821057717531568539077050232350229015942640201603184345881471640505497605468426193247184959610068471199084781592018273453009337857919336637629312019736155436956398125695224804570598749063842446256893924251440495389353817803020952814412498887045758474568654773453278289675363946175803191895179083218749002868463321152810973957115006249841228041612268470078271448193431211173365140338969419026138622860010621515966862769909079730466130947122076764683479762115553566060582415381739752135135079546562529793051935802008216043290573638460932039396752088797702417107623694349947003769201607721830211623617087516422894537532039588499918681129147373210198473558773440271533777356278676814616022376977568402029033952796848570968310164622428709868338942843880822205319262335179471492666075533809236425271647918255555596185647368624773699239873994812725172849245416303698870579024129062900754788413456275108010210564737466753253150288227232782742473707235948509864637702260650802356757408486838696389125043003700628875185070295150745030306765731415641698608774284924165588012382071328048991343212041650163414399020020032361731984828263370199359991339570520208741085854399706691198074286197298128640518420702700674950009499414654435491111625844329256657483323636223562938295926599996725224847483073018097458279378135715556001331302117665571382269781993425660055892629524930963672314639026553229129938641918697620071476694620390650803444774184311229643329821120600138492321996847319763491456806314050008774098410547009481500144387138750672733109063389854738402889445871029273288658457766630271756194814427187037836648369840735738113790534951481522263141359317456692750361906620059351991719232487466101815735195900661327971469302356249359200794767947606026415427661626501085304516659209155602923832974348007549200206585758436392890781158389247123547079179657310215560657462973596903371957259402860829787889064060084552196508344017404702727156657290515044796861868702679741854395406771925624297846889515058665659783822571123757711021992810241665076698036167400840068017951079892508480869898195773950866008970338522496428351244817463101773750516743212062963846507431327531832884334221342389338749045891741012372203794368681340596877669878878531422812859841614209229612809778769755719178179230400162738162771827414342786707932543087609483730058056480427791070560780403741922283476703416777648087270719665766724700871417536432506750818276069422142028947259301792512959433254157605303124588856108612376404528766131733196227003097236200591847995156446944399762258626659153345224147261720673959493651577179460559290792829591417171909647188097984840027217747359711695349807112058721167046220469948239884781520549634390167835535014759369300061953305295701117647201685790949985770383138130849055993601130559469630093004339564696495736165497361085594271892509655753263928206677008115831360686478512033445141123458511444896144763931046567837313515732978308854663387496448621670313774719333042447175137060655254716267644890733738106787611303978914731315458426416170405444097660183332049387400431923728452766926990891545992335727935897076228332330473034811706427574114523586550159615960519184474091338892635684385407725107531439122989996850370661761941097783007742751320523306716518154050164966376153750905410881528321660277654848207969427078564336824518580512699967197495029188144891019739398889977851665671606135891568109811204249837001739797930399562812600899997608618600690338180619184150200637159521777784671453778551305931537554848148563580385772631329299239281643783738091946066256174693459196823988515706831172650494439147235766155520877145533924470908507415946493562409176915247374520131091170798630369572275102495421155138665823695951910533799900369314948798057370145998765228408666930878539548213447415197641511438223902822541552003579982464617734045685501649640317421752177776984712775689899750015402897699803401935286419929155227959194203165445816958111325109522713642083556601300927521752471134389110601814123344640310242991449280229359951800571413809461474759935120044570597330313931919242059540638323855224333528440064498955041435538076633817267576246910435104057518243077263699724059126259916432697354565018924726934540972752017169359640129949983586524982154619431573650369588412790529150805564990960229816578488085569148154045742699159635999902157834177536778771154562400325661548285507294549514937360827015104674009767721452211481003077756619325339336636334234009097422501525692023031081435782359559315822302412544041399328607080780948367993330950572045290368740183358053999394437554691897004592755331223875199704285263828825805725179162191988937998272067863984879411959901123691358709565584327438899905232704220361881899929182997689395779867348926567054167875785310101272565520989242099405315363495764870315330544854498478797642637918314547123713970588340631365313068316737934706928695846081959847901310822288984055768914379616528876190501798244951931720059503552565737105328051447636261618567307585122184851880488396294636826381743792010324782561714053459503112335353486718137021630077189116636066610163496881256687109827019690244268930932790239863746923413082307071095731795806296436676594907989469926152283471766814822574376640983387909174937299758816611075052667382863065844749577168039878030114834200150274421561755778382116639879817793166200238142771764355811589059213583653287834517016140994815214201017069482846466618513782166412188428606825536797650696786688319820421405414440117474721465640124040494522088479671428025660100994931334204346493786111420215916371341664538343846521398673549936992191530126603285049268187919291336212741943884907382835833572029467310583257392909718438967286337815633452768177817643094568142352581040234925044332465634882835791893770239616980237216102971226521751012049770039689971475249696585457238537487753702805531970703450911534959859824600757635874984972798756085282954992716943959141314479937420210875666618548674016851394787388747849897724113223166674910764320187005394682752757446943108881847581287946181099048563049208796601245545287324539624791446396192743212726342927757175201545734938471998773427104699131040633487375247006388659176056539180310579193230187622281585335579188104276844670271301843598869420107146124803943481665209351383944470794958890918861483585910288410597539551277080914175211587511689667121661982899133586555989009180342546854649436936711567084263199364439541412418783999465748444648403639809134443171675568382011122058177315876321722547185736154974229785133355640348826170149490598971034323299677941454058315994486279927968267359755450600543478590604783363717156492115731603817475185891029200510296719194225236458618220048754308127286413557164768505942868490913946345326440170582386005266993909754678997807170781282952045993605927388361798773100020774267299308567112802182323560740248729005195295999538576388642327461904941910492254246164602609105729950005513256762163516272504909612310192948965736064097161560215092683095582821263993280897826499447980074658743516582183888423232349112904127802044115733520602119652525688893131772575760265274849869308609235309646366204682410089456497941394210313835584276835699350553784492392080333702055168735663718466303414903526151852865058463498108240216194078840761662648772387932562307728525684071410922913339883152687399108039027038656177993936306033959767931310642269697754416135668019841780862598889067482204647819000762926294276312115601162627413363356489455506187353048503406620298053971518878299261202677696928897935878403298514801407928247000779708538674757779281963133751690688568847028535566287157520198288664039867444970706841817337567218880422745298872510706517720151059943354463748035478487614302138641494491697831933697890966363205625615540714924137468687976995852134690271949947550963238638999097605289430573187107354847705367094711822238973391181836222313786705937715097835501526737945445418521701718566742208769006525842601492016902708280242382025749406142208619430737364142071272264494947812050029746346811054210468997816420749982954260532616948226993946490926634306301781714005549503777903313505514059293436041352750359680704065497415092165930665238120639137020420783003374377570224121035378827164195066080794156970174438170929822087721540658861472210626538605067390359562210076509851332139253593016818414964054865068268040757315670865201406907095833934364969575477701555009341551241416913497788703624716242401952357372200982855069979914056789617275737285518706680548576922783687435718076440040532366985395732218767647375372601718189906173328050733341830562974851721550400951998986612297570259668483944076636851006458411605774048127260241408168875104902323388028968840628081320129929164742558024315575677816233513669658497775788672966717586344283613275505666334669933920748370202130773432260318894979866245815343723488522394256871138934533058674684596269932058860732752825823564455462282366319855427761195729068520522792775738575546229713009255723276902823683198884251861256034080041247704784295281327771586516151387040583937918009951182308397405276863351590650481220598019499945372608023041484243275779062773701926024275417624124208616247881815803145302193764903863746698373253108535829767075633726413290949207461090876464803189684273148763219908899627338507379855474184452453239927924548896925422111642719060106491682313255145120337124266599895685041228124395788091434273985018179168006287501764473659072437005970647758444407968569539375793625474174273290712257776866820877945152291576906063851024927786073565784015976194626592131655826678680601534850414139321939378971699873564484813046543725983719492421640696026357885428500494593078067911488400577410073962188108137848204484940250702247181602512776503675808980869072438068720665769946680562733658532673230407851571290187196560386336232565831738565863078988980087070151273529170394960935712094291620783598308093792182102593314819065660459174086320355238994616451524357433476540287961960846284955820367769681559559755378080906155476679042198060974468588512279962944713060934215573052576972382640334640631467368434575836661298792128888566631481943538146307191383692470174169013538014940941286957884035321224706916019533584573899911150166617809356665381608836458269134726136350963805900678300267906357051797586238200809440674100942066178054599530809108048276731607231396884764901154394530486323302223875363276744196232987912221571740060530726737497412958563591460410201368289290387532329176348104596336724733152551308683207306936315098754600473152000066172459193745142799555472007361615758415684147855781756729158627420511221476706142093765216159087995105016621610036571549514497343868865978327429404520380495801022210560488001014386736054024689808081041495342287275279777706571764405487318227658801129679587098221255298956893700563846397255834507334748590123143692875638084358748155037668934721833910024255811771688969898895120599488865938858476639435630256251955190588352407451030970427834403080557939378451387787907270203823788660449725304603625503305276055698467904422449798345471387602542647781660160508980527354351274141555790227794355162165307043752435407437679491476349942386134010541167220075312698672043811217606301959600350543214151866248985468118127641238513438495173497045926485338933445578810797175512989559374604696569602005488844854126232800594034875767352321643576614049881330619723116674253438853102521350487485999954660431646305452518428996804274258660752597651825378121876498007824263302799766487787520999695035747531329962605400174457922495151611822363932200019313758032745685916698470825254046159328116438842990296532966946746917847468987612242503668306574621765933697134936275568093185076131285977034948522817047123610024540000169495561640177113402183480845384778366843222893959728307271984946489988109245066254409971278457869813891877725236696343022241973768384360317830716965545151299694297815337940828429569152971597689640234953741050407110784888744413058225378338845016236979177959651803860570309937857686161639647222441884498433815967417438963510047820836689669926379693601311367997921271328199197549746627624817116369847304069663510590654703981447306695161798328445547302394118471866996605405398995338471725819457394595561478815894359028660424173146407268519831674879576106545351767914636373742258617577886246992841671985632238665184897145347255094169280399348777102599875798415377932487556817055500502672040379996299713672091191614131298327986471391654495574519877068053865756991068733701762846657432799186299496938625247415662243536125650694751808949619248945477455863777292498733446586694002925773803898221559584048450014033748068721688883555875759702627025442531883804671767170030332199657031283186173073494466042365047385953530964146481212547306087209044940877454237591183080329030744511118498722220643851017461097857102889566248390162709633181162174123467268799951214836933227545199986076501989758163419990371617013779680025225334301811960874236381792477797460782816073167109045009404546125573603909685844947366645159392697253891276388464903298748817779726936738278859940947381474803821828754289865992548445921231224164547840446610077498040970747383431974489937644372000750468925369961977907341926573224241599687020104684831155817631610466105520352210422980117630144147977862647907516272281184532215068298949847069692096148325455545450809487664922637170673065306852134214875783397118394917999226728212265869255182861730604281533457835926351009452490809757964186739602479077866265947374111782397892000070124455101504715313749333910118339285515047521055826110788689372383016729598398811639191251683678973617016859178824836395180004454404615854894779168403189698004057213212134654974696437842868088952524837110518937966734232045003379245192042809187510371709661222160592495135991267989444069302636864151610596829599149323497000249660288671264878173774759258719406609617817590524201594112302674711515847771252958820528568285800366108455798500925438009463179419474163196461073044443031392184218795356048576751005360826847466713943318281890143779854583086764530938031129158903227618034473723006499500027246723690894036197266055815688490330957116330854230889368756882209611503437073371611131297213211476842636569626882909703722642260264100306924505091348534550955641459033923019487941962682488714506953050526610865624248456704789135117754400069829524955738920083430681452876897670559159442308500136536977658831864399347093625960892362075916104427756172045641168463123202409303492581406801938925308920834333637960747693308069224945886873959143826172202166051591599928269269055086383435802124681426458833138325086728037199781226526195493593425075221924088529748952828856004630524693797422394423923535002466058095650305774003405609608511062974985170148780955094498335545912049445147966723238305646913797839572047560152839722081510333248750371615860839794519434057526119268068457634872860225312175028814698723159606491802822682613898080634773002001155426631035336661168699623734195078007747572936457915216762817902180167257710763015412675033919631411496550975298098859493746286837086386236255453822421204045278353162762831318669688202096581762750778645391262974348425179583401706328652590176462934954763790291142974069087921427738850733721346462081906685486028521983223494434663639501151914410988336826294773537054009726172290569639814862753392818817754328347997001538007791967588403910445308474250565488394247092747500728289571194822137861413906498119234362849217015938614163846394385173346309453467523311362602918605376970641798963911045446781071501955633151242236812376283377152814249102328496009506475432627659207955671722016546280202919256521938336287329740622771392535236528075304950673462113965699799252853922188247290847877924429511010335885581004740236190518649598943654424868303052370246495311341456451824376626818747112186222962905524983097499138858037968855977046369755668493767846326111579931902986070901236735736150015786204607588834055721612863252585285262844483298570096029978177064227058283527624695861856945594061748776557740825719571195649664514175253464216901197929672166462731666275957513234415803430008164624588518356192313916210600345659315436719851312379648101438239463119693768921957936460206079453493867748513170203222172410941105007989730443615170998103237968422200562342555892999691365542039014617845053188063654018788546196257519257491141427785061159244807630309797615887674708738023141988305495067711695826834851033843759237370303610145707258477920852238961150086715405699906446023462300931629140403135081399984863678885694033900789687569448889168394808131709583643245268359662886187783137687723033566367959844481731568565752660893407530788010266572935565389237640866687187978715980925362521843874836352479641890760812742865043067794244452094763446053730031896717351890339127032388011592832569211652951943567285998901012068166437780453077729293856641751151173000023345101527225564147162703758810899725675702270861235576050006933707128893909962225843186269807730183746992161928858909979594444461882861311165736377295200343796273739897935850746856755646273112887013356044535081777965313648351735248436243410619871881736851692182244777608556069442781086448803493384314347202776840789194789925216246848041484935509050032190747950789158169251160397957845773103576390554834406300037112422495220831107815920602021238378725276616822156684058704757216246942994113562236881997402835513627280199833431246205765259971105282781832238870127868742782063945618132313961313479130841358960013530412736760679507403887878562124382759513502099301844130666139950722434390938601941368260025334583012106703005802044547569758733499674834145947131667112298240464897728723837935118592067160830188020298581413239084193492186683273938720049981223052220885207917125593139462476048220280833560656947894293399465299085729601550412982550215241037426341419212883788075840838627179039537182928892714049321799380541070296778248351866556895113259145274615390988281957727025901892914269873318604576791476864108131419457547056102453796028885805141428166197739045645155967674783062348108926932868364940552316388823829150461037057860550815886177595476630108311363992892528705496604637922783808407020899362257440195152130192108487352220883618277401365698876821380578514325835799884490427178049885622139036248354918348019245131885892043542512896295484615032633127491694288628896595040637901583767083462483695304931611148179693106908999980498331411270684296748458935316648476061753448038500028408498017869658419876030816868449471251044474283935535349675838490110642544358430582556861594506591177038972100842884756757382278976143417578020680854614551811114732484986937028954503142458564676910758099282816503910608970938108498069984553189315551966508910056600642053973410226749500810056152287828765991649023940292404471916446972862208692138958540009800494669997472367115969255293629165954812063362007669583203314435383535931323057759867357464222739217828976145873171787910034085313114359301007312086520680567800586019528299284032673493487130015165287494834002050691762719950592136621954588851764691626842474529701381621709329721505986756273801684001672849792608043468271396436953355767023624653957827830050893067443937400370128509587558842078703340847803320937571209033070262304253691911775352996048545795880295293774637104275893537797356441847433111324411107391084795039342242438377306247901557695423845158353452747724581516807917807685202337376676129342315152978355834090313008722935595418680888137347935707453807307558962836377251959105312316528680101821282458545546701347251530686159641538826391362050947164128883194570615069536704959937932287188676444373945072306904109686851835666995771475277069980712707347646157662424647902347537961813238283524611698137957802433622537999556599529724976475014493661432386600510262221066984004781836755426447294018064538129688108700244155055877558442481717525654545500225228352848026683740550701836621486746324471442410932974301199618615724377876684103433960301043132268254230973194460364489077434356141841580237490932973731222310652533562618148490800752699478780061506835062402652818415342214014245738680888642839005248837017449772233040313718822822447054609628594067189183507173153993312479491846672872592254546981254229752604931300289338315733714793405354872938987295681444424282847396837514564664037031444228366128649560288692907005273551181463103293078862738692190483677000792711754883035672608940586654581831878791395430499014710282065722184933207548688552790835109277665733610389699435771068716978449582135121980513876879418154064328469985218571106171112313311549720144147298776555916874777695479554162730484258363669869855045312635252142302165069484836821129648885612772168438600491341729977532449885866352336102047994201850591826762257153558696594069377027576278482696361498480703415408369162551732768448136998368377197045491433697993403671621164626127975609395082151218042552859266895289150166861729055503675702736664104245023632710008430099093788649864710714055372344230569187414244616367180673470031174824528279942282121372224217965015467586277424122646663598028226757448417951786402632535794715183210193694723478535654894252902487097509046829223599259800218487767256232768511644116402825651212591979984693194263149926096376990569387850176676661094014111452753910709477905898573675773265551347881199806804200822512135872921947324640363873469345789729665529300523785671919565232679199055188840761610085733341735324735002147711635902336290454518317501860574029663283937591258534019362842434724327494608632657707209442261449839689862672575922881719973316674789604672597152393787931542408557156194664622110480047340481368256502642500419688858775517021597057634697844728442212433109518629032392075515528163710818296604009282642093801508154535859231342601417777012186586276600822064635793348513790275562524169199471067428068969311596250028058041234668867623325448577032084906357629904222583072319552924054359914424095879356735404445971570103122747597469167354055285451603919297009872097876218720220126114246794095944476129534570129459836634581510164776290365846492567641952594219274706696920418018466114479162947775685245659983428245966011344270918899046739936422137647490891531651040516168803168676731074212182624612506171818774932464184177622134116791976366168281198958617452457117047380911627851898791553838402107756845850189340463510778610523763610097796681416956504116813817712395543890730842099327950230058598955739758809181194177844123818072982772732805029007529865539478077771750301930796279356098993204341504288828213937225846971641000942349831704005176754365780780056407959628882638716246428087920010385127283664337551182432592020608878416824484118378233725966753014847214365019445040309863484240162827973836976573208314139562223393906566133658510269512091985607052708670860117403837480776527690282472484051953592643378395082560472200875401988941206029714374538957523323646476978323999891380022977676555714751804406245553630643175050842138332826281141838264896051898661851721242755299233371291709650753641450291083822770154190480324673903316704186294225545824043731527566570006690553541572842098229868578804004655495859372974275337834352465815255169554675854004884065244865319468124205404309742943472834664602677608768043225696621727887825151362967490272925091070707218673056618512576626529222302265373439878555266482892211988665853897555011669519014498665832023518435221253725547069945153205129103125405962659746321297714674661834763146781114507490017008519239778098172583789394038898339165549488823577216361030062423655531954548011308914525851504050015214942496356570847147331724662098978930513475344314960068814500874971446243100620725298641598626097267007500495919586032997299579194591743564317735707083072784754001454805027518244432124158206825976371825743918239324423482515472734164681045355344707865240641308760450765083242548749971389886661609125939627180151445987455329368934820414788318824334953347040905144591930110057680246771909904888904333281160442623171547168391181079794113257091596747912450279627571901432894195680421188234322681073793469341700434060286260013242518328983016179671285095059021233659414998637123048965704140713117596973950598489153116219555353772489242330868868963736607367859446291674740198778286035175588097182534652031657191805262150698412735381431937010624957106918993489886245545405509392680581901023455027867406615328534879634536688599510425322445921812904897566088499002973945047035024085244248700871553262787639987303667075398172591628900894012974137261477691267330655959926062480377447009921072696616926596635071892844372659918514124961793059229039978042213332931738553405262695439972655876039354940557479673796181678124730266899605936180290833280999322691841025430379830306824874649810011903973411553106206663855413731426984124264311470931439097146180093689226490008265733070347218708289103384146106047958059153891702320126640836841204669616480984217632708247569847872661047259995716583111516249129891182690662300408411965122504912090032846594418916704163175223530820236274450450266375705617559980726518259200744316428376771527377455834426319274914702506129952173960016900104696840345920626597667288180030200993436030497840603782189199569624691910468137824180858548826641905963112879305864203662028942790669012823332307236293775272246772612340957554085211461710383934089162249695405637442689546635985662043366497219455431262778778869669748775230073404291694151404846554673756652861137914102978784473023799545511017277558645195933012025548330001532066642838404556236323529019507006295234193298315354838940048645130020515066805229841339126876626476499514695699377846881597624733454093620898123933613821560916134081293491990561186740444051140581304938461379550264517176128406256919316718991172826532399739112130854623618594294386098826740069952130113723812710760790822304613920253671740231274039797887635016099089562367403575751533379332344005149305806271829087004490344694792366335125227366481298758866596257098722240200110659486737438905630679889564306776123962891240003176213734092594358518114680742514807897675614778671535851945482819563999773524576200672846856843630495329020693630956397884107815025288831262153098936547274227111703553981023882664189841418501380060263800247605318283806488669583749518041067639196589990882015370830297533686299727323355153136404612038817516921926441786021978581329810605693598739269561196784261974830192759183428478211676465053059647828853986452815344526740844990968463466483044987693313140994257051133720570398352546219559189432192409232966936952447829296003885157230430993408633809456785574320538234005475065242416548208577454682439643528682307688322190546274361409438427711395014124302555082271561882841209650586823969675993778126132148489295259425805586521535085231751898537088401755464879760437172702475172365409581933500936443599274590360913294578687844511711097393761617000298176130866885312147314717525854936572681361731851082191083122437058377753093369305624477400619724669826344300851956342741625442266413323604613384984003869788365015853134956220908569143303770333173163957423533632380219332174069052240052801829847683417418812551241825601302795682352669368012347990347015893300633136934528209740142680998674172263626447831594252925833036465997597778833771597508455104096709898595143282317800278458029724109365662759623957359565293189126480718762986413242268996560773882090077117520296261810167232858184087057180560402219188327903589326510482570706650432965424450318263886593641863611553169795599566795525617218577136074613894999579026947574448974294406263953383896918975395993330717549500593190606666795082881166587205474851930252802297072190864232408454678636426833651225593790720905973147140290745278847912262850059010814850983752975126563293693544790979143573652252224100668116427971632647637746692775483720990093380165841135679672247355341812377927395252167731320077311190037799272186854074608840880260129717929782415450029202116026736414949763618808098496479055618841431454301641617538015736881564054973030468563787860570718574241998666586028068649479118096387543902470189644833531063136285309023061930270571444855673514481027259255768622312717082686490871564963593131598543135856736294934003810324155010030880315475494191230445327594784955334275910256196163294634803091142778541654311542985620504505316376153529661050296970714262039555944636085323883837246569204418406293580639513740448011620844914949879550921048952736139909443688556226701034215993976395666673441370472917509307496497736476315371681125505775261960257352196422024462291391932290371020857505733401683532649480879178345762349555367294637300053301236640433301455893401982216785371253055881121121610329133635691558750969179440417570272733197995871860680519471704376108240738580246273232300505548947517649816335064568581711876861950138117659078845504663727492029264868456462097057903581502464663182724037238219091433015291664804927537501322314902974899035171414502245649229736183149667172043881963301721743264710047489221655955215285720747671170820751073590189597563678769768716219085387757553435970447599037923287504252680694502001389613980959315172297113970508922172351581322095529958932136082335534374028179643211091266106122889963952474174755569730408530594112768914284525009209065547093584086317282656493338618103858511671602476135579556697574046734656699193006767703546620446163821508444079232546760152471633772566610353292482562374329885762131368390633436310189385926236392360480252531006363895746553655088091331661002492688644956466441083763664388565015671134695011529101582209533810669842924684501209875514188793365509688753937498491579121990489716535353150129029241673863180500041669736976395706859907028930713393344336708149799239793477041021702973453112318522212712665635483374580976735255933688831366737162795617932311031106519733210645347727012548923562849826880623763554104635937631494677723384761306830425488523585060391849228584366484370720923596609130278688479403734598698224284302047749629009358618995421253117384332058326488533911012986061412224357351030254300131930052193626748818383675411419671149847026253882686357582652460368135403846009016028543319968424886076802614192159767332724809296708700022425701841839912305338079803909597977520370516791065034534759896912610545160829835489017226719930683592691931142106319347796573473828980453217180390023895924469773283696486721171649619154918668442565792993812034066678891543982635767445201052881054507339242143449855921508805373050924858099513181374534226621459700458960867851739275452110647438716198307899475788188332972505246784358255885320654213593115052961760624909540243605164830242928425085265877673917026531903930640030769053974233072912560378263099486943292882046019401920920471090542937560458972763092171746380141640355570491232434243243568088837925860483168874979512466403821909141807793669808560446185091898398340576503329369990246612230284435469936291909409786760344410905473781661960518968702445726969342714119942047450683296128858368814162153644046578610878134188945955531590873748263908363736752230313983689178472450365242612941437447766895008005942895751744884061585010459366286174190008789671855018772131874248615455524464372761103371457732724357859875716489203212836187860491475507169353832361054960986172664205308353997121547915208727817821929451056019779989681173529950958842314277299816385391967697752854830275237092956673544530489280137685975354950843174819849140057998738716369992676060249933218894231889259461931056389306907456932061185960332668022699904034248413894696907974749086602524299880753274500703814337623783961221709147058704559998479106934545910695901580094646854590102136747922291866299957171238088586318774466612236083374324565637650280358487541289561204365446154843681050317950492826759038392167001608581581062169241460385461970387103231071919846377339388354668116345587106205361809959707375127637265390558231920648069327086047441144891590903829562212079293082115822841398951213192720245036441122354361793422918408240313434474587776458140254880898777895285876292659976888375478862998196934000636612046103345070481032798964235426759691225413875136460852117745665731449464728847166239968811055630597758208325269995317664018263739636316104665648272504645279568252732700374776683627605009028233790748705113893510356747743887206512171892444548611299237797975867066366923320245644247075294377816228011374786481056128721159740703274781291149741200138470760471265221702889694453270003389189351657801868983726614485822393578496870563636219099222248783359162648509612672313789466405055563976506637649096449791219760073420159503863862159131580058510636127315819778565544203523821826527279907320593415017272367202160835010997231387974947481438386856785158017144439621777123355318663825524080396090860992357999357746890964274458454187151590430737063622533193757973886971629698641246259867768541030608827210997558752976887212898652480527825499899731373352158468504983737113692725074024842957978124335936763185787955107663243297878373890191361695715497971649924578309454989836000963413758772130880747744756641925008550300943984261480264173988747627219183297941522034179451417142560486659007093235302573988713862566300403035370714396686701624454529603322568063110333472772871861671248532301990035892851933692660910532992433850500741896074249754722387651679790912885680439546677714766258405946597520845569909640508064170015933129269594997013459332457732471266923167271304665729772381711942647152016267921101122440180355483345508883563486934260039965372497055444390786147591786180978615860870831405678132221191616625164007520203670588938739390636094603948100430256046725510606397956163088786805673317618077484087120534899676879846696641506826778417558875662642724771604558819326111407708344321513043818813098108895469282551290558749471625648204028021043904551521116886983078709930307813003740626112377385813633428536441354826162498215998587631531716176567336304109741675496851590030738706615555093325103152894760603188609079882202494723471047932061106256504186977271123817043921168808349279846018187137568233974180717362323248530261411835899386416677712995292848748748189450763323136961145757549503999222161375133204521309783982936553925796445100215033119719858727183866447898580187554036136457466098148327234098343818060109198735579686486073222306171773652081175576728216141262096879077086596241924474145432928982171629771343819989005650182717438648010260633460055902261120413770561093609201739589210759601122860056432420586825398929892582512692611825340493334144597952502771095764580057463462499680035734259687481468738393641664772567662588101011186388831131935169206722971215760064445033744994544753063178923655212740232390461188767484349835049034807217179344394124362811177546668539785276786200939088077213239895678248407618395045929539976317931040162054643371679860463066361838853726161468167216595640992225905830005965073620333724684220772639608293284867791513824227506416577027933014874087280882184598147061163068595178605834776681944606863469248764337508771468181172269194907892906549306784614841087952596220493292322953902053644085706678132493177124051868829916955865917159762659253531265128051189248077866133272568958427404345890027616374593354717890546345174022329411354659825297199086983379380452791430822820525294228494756502887770973154274791290446563604018346386593867490869509021189021104106881988556187215684698273551568603794078389093850584431985682550878843064627779991720313998682194764944770699056422527358368432140477179692063571807172849016353301649717304318909768461926098842425537193567035405475015399338561537668118888711761468133390981002860987712890950499942295887991480976271824030066909311325399460546565964136836405691022469776672222559599088013306520694094146359037812278669851589817705741382007991942175823578267947348509586078536222869537495287021963485976125295690038088000316172685404176924076109668191373066083514334591113166659293223435977213804765177804155756666343607761863061713342999353367910804416629969722742776717168364370328531740361608009534596500722840382903226664142663730996003303484823285212243610153883658774857427433052784208214100908913895671221605579244610914115808578535668680063425568054131002673922624345929717114695135289554426341884354737497075852197681565631923447958817676427804410797598174606581357471039508617966485259948571904667201389665056006904063001773860434775627343241037627302546510046584758782154343933076283127111387317845303077322728628180486815895921843290087694442285932826208849970366670264732992119689346057971747378547338881244927906216213086065330524601792827167233615190324629985880680298391459931204629864128950552514557168924443595729623147406577075196112056896464403654556150392875749538674806496237117792878015222773099670994482296162405716031164248347496555035302332946546894439793308085621278706569562824556475139413002072290934822766316566614800359139077194195076351429129272191170209801308794608651557273799394759966927507969569339421383782633071420378887203823547604701965963227483411037102634324708650820433794795723604008680447619347864791283238671824280040465221363179338688952792275780547627912850114047174191488244263419351471328505025969335388197104914890582902517324158257988675128862889721672804387864364102957306456563438360180945133374406972246734021405933756849204563350672429563464325250376893577236479388130696281911256374323564420197453538625947019149202257743751169444988779217627619006581203708426498889084715303975053422101185831645614949214506276602728159371098189678874958405417176946440990237742386272393158521864471247886370040287707728361093241180882537250901754990368450208831105365998968396889886303923227928800190910932310526794337045534424176504380765974114433091000488229189303591211136367000666017352152143963392881319368882865194922018743392141201434400498818019377847556966248462193557306875748075812862127097244268998053762346434716544231284291216332682825625183675534956404877192834800040172488771701383100011427499420554460465670647548783831535007514497727073116575196294935663435424897343325127396538418297850744405606813404289882330340332823676141890838618745333732869617713387958146479596799342463937302691711539472402278012662002257219477358812957462679768651627702032575162742799930159340204685743228657968671387889379991419484312691942647587775653214475912857275324876389539038711661668933940815410197572183611000554329486792802151148336615242391289009369471733208072610842519977939243399888800888679318747203249657645179679805690106227646711858917819598674193554544321017629036981840633017942787451486206088678917724419481629963084917503673263848115494914147324872244020156792712581177670083894206581456262563955722476018931823891901822611236156848772662466765690945500982889926192288943071604470866872863933163633453974241143018445892324560114725415568542035019147922423895003872482674352350152004526360384324220127865286149475287177882284459018210890582005938470371070827572262383418119373539648375923063603491908219870140104686310810868035385768829072086897107570489177775089682532477701779975486729212139188109012290218208147088134453912620114763348491746547702779147330236262524223694421617844938673004635142127828841944981226767743286744654630670993806144535443978762566090844068784584433012793636158326469327081222753427187740310545000030558147325798022579221514520165861624728813313350046177925895396144147850491004243275466926227292255355025863054650783084321168545581528823526701315884373205749675415937405559548008203730290465227587908717251418605180946213982756047927886652007840522926482675835491672360173445023376540638022997039685602451111393856660728172661482115798157707874937652885159826705831674543537657280623126184241150870138178968889835104306621371974551755470078869930759532306067055115466205354233734630959752429011974222599314457789079267374132481746735935864022799640225987626941066393871598077000835571591172789947660693306026232131363614722111438954518155353071614886146889890622579321599693162102718989866200425634039951233418697999707133066200228713178021584883881244099203375570843066397096299810999583802369848088175512514562255673737194096105828748664863122552534005315663578548494523878512722818214910496215448548006337920885784310018087487815166721047279383771424630196112337983088075077883435094856571357444174773915913734817201955022463396464480333869995912986867958163672680008920312619401837724768186894880734675894082880537144324346284374898453342858879951139084035152855341538255680765571420068572226477973310091565168044540188774145539990350576394679560460129340622916496753520519858794611660054128293378466164077022212179951829214494202149660497021806385795559913302422893336653519026611340877598727634626054686851716894054995020161217676407408782636357700751935247594204962125852561061090561948824629658921547797201931797241233071076664251157019627235378483817955842636371374329477479136487027195192000012645430119144524728327221625824274855644801314434939545656091838731719380008543572833054864803609298585299757536414875973703286791169136511935686113346461319666810323950851724025288471935944044485106549789295121413419642013457664985513305467130589444684316436081926583349548673759617140069954894071005748740028771350851853602246805724619373760366735231230454861960727492762677765635205336852847175527750700959589653450766824293424621652989264807318790365884470613094897441622158716402257987113459003203815989432995856471360415315217358794203054025571965143805124884926769068559629780640692897205750964453085906705241295579151843763071035146576267750196905579203581773041175925901984164462563188434576511524897934052787563189743338681898290437344085668594610128283604123947400679535369739578347451555573357602882372271915813061835098732544343871791589520119441746722185063259698666746765154477086434813840120155395130054089539257477668316906355844671530154064645675515306739072612062728009625645472063144929606442373966851440727414981495828306271363687711916673099529360471786461124102153287042116715896148377233787181051906785576719853531956224467176497489908535894054208267601190583444932130295173778736501061294344460885763078426620903375092936050834677292803275202536184459684923008354499203967624128944128191090971356964748632512075623993868502890337868216048629296780553114977036842910577378013357774699619547587427257824287400758918453854895559504003576818740679576132404728604817119263858458311604665339524552646378787782744615924966956687421696927903220423983720866497729336266768239074176907256033740493032685091993287419733261239651808504866590458005028096451055984730330265291300622212187488426377860352587239738422476845797599278365509071517763939875647787766243261095769014094489271922879045396044741270850876747032646700537798974773951340575593540145126161383279981150158475619031975543466185830204224150920515639023960918136272616362750850948229421287696321848386170445259085057770578412233433144170782823926343858169216788781138541043220354156746037397352066229024564099139153144008529558823923852122663017233603990722388914925389012887533172778715303453068839372935405344261179958562839944991731558687756155561526619376309781066981360397924705258544849342463563217102193767295063223633482213038653337207043149740774859613491077103199551426203813036671621810396332243347534230352555404529199620516024514484208759054515176685104884221786013722773239226078861675307561982950470825976739625645960230039441059846787644384423762063728766298596013439622329338962901373982260308036657492805796018931375345488028119606725269734120778155954484289639648198670855291732464708515861433408142426514792968609088343254370312887948004250591529666735766599777716082432414117387016495510515471173421017178469800673402659265987702818853011615789537470522859555144128768158402769942920918845145368664098463578114927329757321394325486212287425988687929139622744053839515543359461930968240732296993214632615260172937635611645422867077191931444229359731993704667157075994136059790271962733877265949371853149712119620367205110702475653159741074255170763058911116914864363644516969314502161118605661675156417433063461621832480121465099203501425588728678946143969011979284013032036476073193670792765801549543897742663010888719139611530330046219549509522513547810006377352864035310830305468963813736378533599775616722034606832691927604110778764474936934208153948368824518068756823234289630259661906780499875687511162871396992975544998739959885084320243031157878142263551309980181992155953847282782059408639231782435748211585156618078307061271283999455642832672505937152478032916684864310498211245514425231713662996301372038043978474559829460559722594296473734379146972323440344398578056131251171697097418785144451283311267997015994893103384382438273413777731485345301313327650067226598018868557565995725630165669985615477559837238935100652782660578801044930711537583974140891492406078854632514527621104624852990695931201239108706818053071391892709215015149530824104577808539634674199255742816706967414070237101756999887278637007249730371903246650550377388053592571435199541406037801747700032197779522397956478334907102000597593330716495084153314174156056460735843560875637230574280067566193624623826981033994866609161983476721046388808088051748605548866597219222137252219695102133500868072334963741006578503363362677069414882077617469860499311284669441055732180438443093814221334788770457707092382819290194294659160367797497076223955383063528966088554698055955746299650669574589004937877235796068207368165095292710533689750458998139985570860528153844302314427862834197861596437284235555730704638783345739692899791268217156901037113660745318303257680839612314967732966354239965699776872848715820937771000721449191851708891913406253318959592271634993994375778419126378441022753930337286733049941181544670278029415706884990194757498733485215542125825474671054438232823548202434133824712548172595861754377206378961422530753911324499273650548820124209249645657709114002689253937458801580195162449099233417118283361644770118982863335163680008187292501217962141620668769942263729229850301271169713934713375660840776552191572950106914762542446028970448270192246458220804673517512463304420995345758621625649388441450896256987548528538120972970027439808345225978881029589498944693127601303784571760809223032070390366496034082474263868601262037913538938098086458393125318718937006468724841283179153694235497194291740433940498920146931283806629535745733387268290906728917114922330290832984902304494735450629223501535271782721119602709293894983806707441051012371308511341054851453895039900988090643668657433723800638787545322332608722490870552960558194047320523689260796091635723932556210381474576409224299167513219391809459296414478613073549152656999148457594417348989135853664818719028946155466429268254538850723998316809779001639628021450536367649455649010831488358203117766066087067337193934923614376000398201366533777326957000307348916273543129643122079869842873839750655717227965283861252129891246156919024025351951453825335481470438942926676722781668833608134308752548434366041720685799098318125975247159874240071834493656538560698538516847935317375519540515331781775889487772622405771713534575958570125507638284541250953568676080953928294208040194640019687898169437663299660629273399791920066495025845269112164538379076347296412493841747640396163326088379742859086281018116366043022597828271369371594005216064739273574049099017368249946639115339793467729613926382306584424185126853328402242207047419472587949644237393036706922510370915789970758667181081422767286697980391277519457522675884528065506515889520027822794538285657115791201750751902553593335137285769751938753098721280001806940898568501228450774299426072369642627848959083333865675895417109924477543846863821666126045129447705235672891075323134830959179567665909523220465220187985052169524549984569618248832008002127268868111287292340168617164806412273785217164362369330510531480590486831298979791814312828818356898640232771745178691410399330942263975999331684177482862899418722201221921382655639451203824013679263017885236512002481596109360007089390618418168675258119553002621100895177274637274785180691722261804121903520192741795750971756114982754875688249854833727208252344634965803665633834349600161473684516230763851363003260190554285136980436670371167318579049766274372369652770083769209199979827601112147453269838019374850804376998979779339104442415647888185550534113407809358037432803247657195462964541296006448249450826800008329038824915872627948380031358236678863701833135596703415073097758694564943112120868471603174700850073372389636181783763093305658481923861828467179259474797715798820583419031636221807858581265030203627127990036302463988027917204936633530274042161581570304767916099793050906089029500363760296793853307155261444434750529006488840706131025830708646418957152392173636762797105358490029280453667461996442725751281252632885256557573070824107686001544207392921671054576563241496629249457916822662071063844559946047298775985407375856869935628398741098411250457276138487013834256071008063499980937672079302320993296161521944864297667204342680235932920316139190808955269416162289936669355453575256329128813476225376422223342886072848650532976015418121030435007543552296836078816529082576683001066688007007535584981675754112167732235185648941649877423586265530334902656152808510219166426655644356849703625435417439495551388176373941993453490999161848434741423789806597084977880227161026509004533535069024790396106920517861818045363964931730545443284304762371221194163329276258419064150638345804150099508401647223142295511426469964650908972596901861102484409344143013064263826299513753499319323592327516846101863748391447468650829629890022878261819605737784941345954370790180980080886929154119708829958585355376226955422370561442256029266229317998373842900995600327284616819818583618688318970356175064627744133101721342582007490810187230840913879734052001609718707268497112783469923253705337945033178514151018871863464481076271857838327184800727530490443835220237776224030889911651077785755563063593230961648452976168507059257337442569617582391877801840241930322176761122788070672541353606107065891499277489764232658765568734846029040928162056364611002021361296181164138037426236522781772521363727534582208650307061060786875068200036256668371901263831434514407195133089928597671626227928503514919567885983659827621582551249959984720265179722179414874598362011199029138122180410064129982337823167887351965261034206044921875523820545308429605946166773629441888009427086992134269946031563160033577113241316694693896855932609036987743459522153241863447796438645564773693768866293104623348247596167365925468459166303104873837467115923443301302615687823865125934171355481898222615202978508287699854386816585418425219897712799489083736307950592578595895447898836491600190579245329636075899089382767101215785857618030997204189602742805544071413259198999265635064650329413610316395054950349403701408923308080526980089706231303931957875429899057069735005226282471401160943295770948288450505371554268985881054305906827683666049009010948609747850919907200991464544126539767410703125720171073432256357555901826730048432530557070117461364014985514552429670351571191304483239249907756077179381625386674609227128823921243752547336245467563643078514658805225796780313493759081602549245240992431352575238296500570121512513161678357615134149670596525462175307319630902430091333059856749388837319882346564115979570766731590602874264426513924016904373444104100433320407268449558177458549455679235842346205798385980440339127917175242232248193857294694343009836724423422797937594289160325819543691434716691269904043473488429540726198324811808105320783840860621639042920378604870022316751305775809706519184689069469002340219665096492712481291371254625522223659014159320506660266402167954087142847075210672740381813909544015633807199221261184496401278651369085825446944362129561055965019340449911682144890445061243691420291901313888647111847059883475043943503778272569598160586733175935670051262371545776238090845400537658107823020142013737755119131962202552964377114721003703899200913710470190951820694568832098188707476968526969639236270672715376609135869954078354334024585038401878908282788380262325598712061139372800694314065583040704338316505120655328522232111223100778300122945739212476774197770303628146602971803337477410416418743075840363196539012419390353916089043326263633834555618707501552239897635754804248369026841232237299699096072116106761326255025620728577468205861208970225450840490137944288152674711615186498090760436268127049329544461511484148086221097035437767300592271361042566607957646429562173395394848535422210806901391050994740307004474878773572078513990501192133652276327105863455350564267442833978986771955177377882465448214222015277887281286122375698085556504307384485707959652133991473495503878636958921735511135350075191347109685601664829479721042002855478183860376412470706753089161279882763130930443823847304285089256238835018335403971698216426395246133662166923730511247022588992482858836278780045866943667306984024794560715020677484545151128633537763369315122876748384685273158062972076749789508657291603426572994969754996755573093042360939246540646746472473351660926360757852572250444020788393682053834585039123812932879141461266187732965235932899114412390543307621157534787719214966813578397270548664083357453773359695194288216254422735075329385139705057606927714979799029852442360481625693451809650266710335225262786428640528332634887614254390546379354108674535501558133732325228585413029609246601431535777602960453205675962680854905106258033991546011843381112114146883802973210350402409134380399291955794400056747349441431362389265389869551459318169909568913232802405777468300654132465932040638573154001811434843928229201489806540939875311112380252718039182902114531038199389534685875543659267930793753852092909574161460410546371642167254200686450366907671157440449852142946101489734415314186774727698340946636095696577689332546693862084266181497090694835993555562252349113747459837067400435918563480359947204019727922199167269010256091473311718684805818801148929946530958215415470508587191589576151711281147496808909244329371745239522452342928196368184686840078259689380607300404980890481408472387262719428932091959577512416470985000000212867473783532898488611179196820619047034745948480248596810217097235934986511094249149057861925116460363177424255434924052070921204027479626835284024412978032826694237520040226938725501013024044970975843221180909415891208467100899099153954315382641829113406893354783318203673381032688335991297670655655686198630032835675903607558559976263525240965967813715643696596726448997949946713097520810899820064050577879698987359570580625918512787644912438643505125975264340341521017767921244561816292439997566382016006051973427558267000548003104657247651091341155752880757029763264761983069171098084721428625420520337545143279712473033009857324849442993711652083568053252527008460688146470080496034572812739622323470009994619100684068949872066324203937023326623828022802733592601938569362421412460510626205012459049627853679767321221487060806461655653598005506680260045782713841534857859255843785040838653362857813268178656552391870262583007482161507620927237339636823716149260223092096590183288829342474716226347657872814192328471294071360421038027864494956257884039382381816124446088293065364540160719473587948573099335979651859844010813262485936190983928357069570945418929382544798770950863680163080444604025736441482874684944384819621081512756947982616697425326297561083393470051868340679580192600025820746115563889503633468017228102849409853866135298470798764489072371020159413128033481774812951580576010823100859281667878223203166693935145574512097673321033294418448571577494696261404864556891145300453376404226127413888007410967320678764068847316877283767681300656504307912347715237007480330711383415468292088813729474516217683919836888625041526848856533505274648143091268904789882809600512901024516133119772963011054585438811393967741352096426104884018704091665920268741621031174190645940550466531950330237796364348796243321733672326338811280078155795938042873266420506042984251402127531870373504338959233398799618087843012219966936656020521870057493211665299673301417386335462523451689996511303471183514829339254444943904066599460231260526260440811667694039154684755503557374653003860943493076477742780607049568919470501124089910465014917588058681045299644542215391035379990723610464333942238359149614630095466256343092519060960392481013417169079631914713557342646720373756446401584306444539572738140891428681253904017340539772005372816619669733943740739888224806107415633425634555816578716965718170348509310065073292122376638434663614126595772279792321691076046100302522750851334177849854493723520595786554552844647417593188310355002941548985016316996597614857583113692222425912074181386358088480416703791857640211531221565444388378006457197838001199510679831386318100230036464714056408720658478771106968685798886926802047270352072852635302301116038420749694064019483206784810221834772758055986041206590330551942732067555802722643543193728755367035394496546355667615944439856919048647649160426036306646725206906481290399216050383614053672952239177990271191516430562534489487508840588078440343914033771451240583451366264199917784081519330305384429893468811084568947674641979280977240412025579592361935448498121448265011955833650769065247930304014976105939699668859149182101975314496592300737549204029487597994428176429886438682645337356144292411396768261723968904066922336562581014269542175364334381068606358185628423777033593989306915941011566514303060563190863642744893524862301837978105598916386698377607374201630732917268288996248800074276627161419237870977499904352899307334132057257447390155420826518937736152870840266126637741868661108530412893050091467112916484311573078586258676467242709243598604718294450299318689238727995103944237795543900746865221271024992036920976955953350078409994796963230865793466416998240865761619963610351165266273371817806747111629174313252443213827646760530429167551233667322278911123372940628051633940147834357569948264901742605757710501773131352084990465691390459193469575709986127269144463635445077969435622486167624716498719998350931498975210990734505179771473720610612971223753385754113941050511559921673662562130665598635590136201798524165729212909231507788760514270772583109696758366129269275425003354222087800959235598039723628468360437620068461863132948043028480198542850673520632769075487175405644247370971796203183498689758691669961210990730490257628674872136813631457905748402441494165792704454914277021032363138185794548804691788136287154365440747144228494210112981201110296582458101605610128992865523707597103032123288060304274397544303876970673881676505611020766859233510050904234191769413708714104049263171119623685813191916137317432858445487526339860094440518203005136350700939889830464002288723925389303674433190187938546401759295382198362257763809678076888184379454179403703226409958376392768189611673507473733010838164300386961199185027855947336943096449381984125714050106894447050923252146804878635013646262243459517852529056590192748663094974053619175624071078877650322942080962943674108425309415100784183633451427615008024576291884965754155497828586320163240000189201889303538086576199515959090831638292662247672075793640931762522010924331157719945053952585634100757624204254727219087931579748422414416124476600599500516377262117250956558545537774446242535687798598791523725790928861882411868284858272434347713684351114856078752864471911922276739596281868730059031621220988631255766255046233695553571695519956698603467199937098561976100062110708465746950879316209767661264759167180994380619528990048729770323163417223939577043826244412727072309715894070271751510292682775964961517107531679936577877156503217135175458712874479478387893770232777732351644526729756134654442857253172953312132779579372386947904216637706761125205798330267132554569694631718472597108804991154472733725121061865103429687722676203801771524651667758006843226452407599879052391943440941648986731509634584576793572459694725503819414633120749972463219845326037101888910516217393600333520872560116557130721926664100443815748321726663004034049192158353343125585972743895130386232600010895863402807531435106468008868207099312521006530939821667632285759644457415052444336513581319859836406747865625835242963352171065810319028514107757585368921369288324750767151490362060264996920232951391258161700015850831191451671877433012034732092765999483344157426692887248160611028065965991776699017904626175186947031958447872057766583162156627227390207794341102240203282359638631216481380181813026696404917844872702595914541743185653212882475333547363944511416807342782209992235170086464810724436671862028298563654457376766817467517420853480305746997653704236815719940746359998351551409399425267542757214309438998737939397726720106223299040656173093777346553815396884412861118590882729940440707725418355952757260468380630796363945954970594261576711615377559355974240379925086658289238792925857063912509518947784574325804284370114519131308778371398195093908099928933992444989251849517352745066447543339153688943924122733700453659794893287575489751145560849911725444553675792247244809644470288694224450923155236465712025020139037865215514247736980269988748749730748932028193141079745512617387638166088135315855621585501406979700982290044571860961856619654918635997400633834897276392341250813876851352435695294543510573207861799625372117061821478950996301889860036112899807764706663837894898813511060494999798791961361088026582680308344785121820647667467761867922995052578304762256307028632600988654807945257346042674603276531031923994435983113526029411675294441160458474728829368984838675404391545908541984009014849311775379801460267862604560164630959578690397972215972400930132767818812070515241479093131328920050051535294432659324774764884899989258865590523456668356293387517317483465365069413302542319394177093425666689428197499561423679546480097383350190169541735398905498068011854002865793175326777540911072768497567703856858255556903772671493650448531508016311848890776871341435267516269262603809245027950686621850579566689656878823273231491874457634563314643164226569058814086279839346078112256632132616137466264109447676439096029929755913157555196035193401955072651177280016355993197680451330737249839201237486981953478263575433016600052811701777128830657462391516914863696361496186534498561021049972235127361149887529588703229700402153765967815153887543059954908578671719466145813135692488188016026391724890607695550464378209298059360767968279643066713330916614743980279311888162618530853006810310796842244227383288020622281225415267326125796500033350907134177730259904291347652779434864178562230864220994935710043471504478280923290345108076167337214870019893137413371915134586192549363378829834574514371443544317546126949205565501079259257628469740010085164795526200788201835267065728541298655426305274806545703968789798505406782750098929177932360252712332754625694857049268213125865526526867156293158090724036828109771067528324093487987080183645681845477645403344483177482214501683129952616918501421507952581278767931464004860529993393299522518647913926978295558504187673261324257000275265736459329925597207839649439918453497390209006051417030863615267195403812172733770290854065838649707610664461640048843459395803812784557088735518505300300211711101904917775452540137895579528651035709804634575641661800696550196133223498291062209731768374730609377809995651087338142070974402976932539314168361434864198294119407780466421259501576152798738089513680149042412237288937407455358829786904196866861317661826972105067238625855197300894536248016671601259106068518449555867541780225498424755885065424383347594828319388318533126258428308412862212352256819175952666158348813647954003670284026217357849204779698565584080105236683709386449307430634280962564182893324276735567701044327523543275260620472363935688658984442461142030717265145284374893509339080014729010370886504581521264562305776408794422265159707554958123602800878797300472193523102714468419409536426534322676142631405883332682284866399911959444308961614193370409022415388106750968805309548065150468553141775049840407202945097462059597400393752606611594480805685512633786992105557709005741851265003527339385027717913068613278633127726259095104930816755201797930422508350987683456640477890359615852100661340911238005556148566467288977792610870920028492557555331478525323078747306873858396124207616032639670143307389019682708382628787605161557944849383437468282366417937358427741994309315904215371087442248765618018253411070084569234639318734193414540597860532507351785189846593622559300055011172636329048320755036454804356701617186004884150942892607039347583022567486626813040407930767540769233264473952730071167154888524707553520695915104557650926225894452872624768788129178051808284462844683267970589483790863451401284608538824854649199504643969204066110585582785995994462890428271387978246866806917330038874739395795571326627285087538262730588762257886473659234312338893002448132345955441949715599468583963624083821178326568958098321057605810182790536188237263819704840066364580530093694935885286980147113267058810611881455223046609681599840023876801288317729411169228689343912986374797999989043814385004020556680949472409054763009903035858254982374130892577315101825489003225483937118662587775267193218395776250540742860166366637742226287420814768368852259089925599075834272004972548988423277469219287626647160509817341533873343660696381967366776198919713519601285306185687604936389999438037364142819554750594918567611215812860030206472826310478517714194154308594435090090860960552056726143925532440318149345411499163589227063598410781035214129905794373944372793712268271050033777185062179749133071492078342724319473715773105246868979783189992638600963430554680862654444803841185619023038780106045681427838635795923667895846126600456025710989512009508113156657983238659787514524245094473769281487756244118972685667648160447256074276779952050198463389859692287616512933002801730034345391673687472027753341389112910735336899124251114974119724897066349975105931757783234265027069984808119784287725573471036498605431433881675428349724104379879008898018567138691059641173371331122258133290629513868540009323552526919558803636397993667995289788497209859701259396443758968820707261254055698534821351590015729647555828408536760071528724944530863097755148309291184764894135640366770133820119538173437030174739545512689848501008820836396829537466403893520271057755812207148514560316100222767087614030902502097612165142203510399219662077702512302626036293089724658371170191759534570218844495478539215578458420156505750606064079093669829371250543033767264146821212575143081517038229074109824725610439187780497865096335185627891596850186985924960172772319830813026177815833864099742873941614763341157340001616548939635679979287673432027830142498523045714076864445987268721565220900819531576839551378643120228957474828540056870515692488155862223649426803031510159578215491008847483843382574362125577997957302957832235807854811767138019986541401022182823402446853042998107494944470852795869097621670658957928866342793132626998741950047078920102223133363261468420263362640149168510357869223630724497847243288359807918987341247384099926429325213535449371358538758014465321340289414503807899755141293044065785657931730235651765085021696202335250526805036796767592322023006031801704910448612406381781271525536044899600712982673410475214318226630002357152961031796753849237137370124414459525038312778527526242697910139057688224331106341578676937398149806480971818836725937453098911242858585723460361326463159799111778234486307609992871803967499747463611502590774107763734775357361900511289274152068646974925014510486866074717984367495607449250081270788461826639282918804180148112097267737746997196296228894606081123719885970113295875400640164702394898644590945238994503337755924185372766325019973482369222399920557420724481195212488216298751522992306950206312024454374888031637584594416789833466896635778679358884411378933645422549701811949247136498586591514674755727219051220094117699012542212320967240376301569858928295460174261375318703857597812675383950421851523379421845907910285437741505112812372573595642225964943272821487334038640919021547751295573966397445253168763593423237709854961971633392372813748362471100496911368646110836676768081189262002114204774472585439065228506440659543454048609422303046850995894409892292504043868769739827679886524178078084545474794267859544401232239910352391904266946596857125038985538605241574299717287609654963241027953413996291089151644566851608804533626501152903741811988986430356729406017854107892958495706881882804630013851547141388499872373229433716379453020053395245762253410944333904959127892851780742459583884160776636282537731627073108701708049152695971143999405884199597815035197006937123553404816123844663200595834619035345945842134431717694379580960428540986742051713247013505405216725497890541371776122275543839536150287270231978298635862326245190238309352069894017191817765856567531221851483837843923818567601038303544596910482676043728371175904281244739857876290713206439935461311703650727050384279052179095043116660595959761150566253819729524370263686313531583659812968565926136538704328336049280205829752655601295785333342770562234306428500311836911379974239934101828414290683313937467733290448653750021181504253973249118034006258650025668080428827112720760130548495147226960856486934812742736615864303263570805784207531360583383326482912599831663617161415106301929619098144848406313979986486987125973979652830511185318511815471788922070142788607524342431352436108470121918593022958567445789828517122033123728975376260163178015965185304694916869701012301678810130482654572934607727285416703601037841253506275084069441341535220798199890061227678432457949560542637988920953427878373539140564587038212629195480035940236044451511826464037490570849870968053439065790549052705159365555923364457951319093068062964615510591626253440142716947411520152282854885935062515416451763165948824052881129091900173146896989688480759604839497927265182481424478551733185949919098549399818253424622042791284847961031224444294330000567176590701157061138171893370802633336642850530109603167157363987667075987277704086039845375673100154233482872174843379546301771921345504911736919818176672035617155772656763933699784269105534890426957626571720956989342366635595211675304170131614546257811239221462531729652177370490701524632573032343659117265735198119602248025673717489725097465883580417512560962288285085635076308136823565552373381560140473813394652472218707231146268765448968943991648150711337973362198262780017182898784433668399285174927271256412126932836398901315928090366815098811996532397402101455928156899827249300605703027291926971161582620628981372578661305535404942574735097690148956007021864458927992018179081863796149652912549625529846657503970572287764469957627967164097668194476337979819462924011935985959382399923492888429817880018147729116435713904007705402133864616528611684213302062542152960054529491859914372721890858676707787460788731107394637869579983730463700721596420542586960221750309742691232638020896172857474073253844485632996233903505416101574835282090426093445271817329546123487235950795251836390385607863714374238876787581067469976346618789087368242728390999034546669799644990841852468889655732720750821643685323698826732328955929626232509170525406866419222576892845410038366438507202468580367900361414638335994728566211774017306060594197057952107131887884076494503297117977355657882432034002427376830887024613234940944797664273349555113959051431819908089971562645186010780896929374518628269458026709119572765599957398439751626749609251660762782283696477393628540225566137301503067852784432815336933575374371091676765865446196262706615279408745376585435686721798355894433894477891353560368799864138280392696970878969230066170863809563659787990949840431609292643674029539361476431182060230558657627656660668516630920349371113146441926104401418856673436389129022828852541501396877782261225093266510948571557685501392029226336710032036032631476213203130267347800192532317068069569328523433605810234544667895252671784845247690171650496588158787882953400734857692316889482243284785315098481224518721486262139158393400836012264951877575481118598567602743572960983651431431176549861180079312269767862662286754330085224536664725129844819203163764849736447687636186486828809060665484909507124578023679577984066533722789001309772751930757180715356874573696034038412732603825591438567017068356824819870778928085897578782290371664913382419990173069480259748532445429961008699506340898205274146247207782707969917659880086077100283144471516452037232454943606761646051765516906413111773009023965093685739383591085557648161168449671489404488679922100111334537231016523349700891785364532980690192655155800581001890348997187772735952131617393042909414800705295440021695021704162072043122618017471424564910750859818494153315141795051419147274367854254237677283513511212651207018465920728567427646081823595310130758589369374082113912851945032026622574948712099229826799179716935062602018813958726706746494147532250222028533679511880482870983354204438838103076773695134358232976907834376172039794546741834161365378184663444061131026495000032473476455608392441823278046390626513862129887769247642648601441265921981053849112341236689629848300176802315530604423424023769089966141918052273217069063334860238101034239814108036998513207960049643440983470039101388790192845246694782346913566458628707031851721228075459185017539809683019323465935331884130708323623474752579213841596074239356305645334736488181919649920295714435198235763051447133253192025802637782805906970631820542789827711839818342622264151800543686073631058694410923299304963767875487461837552615473974886541011491901787306276532085523561188952923211859703083022464500768641141915652408203958572054337958872141341442728926615079275234261820871491053979080630508533207031213959589513052801962299420587514780285334538937629219446893703362849090318194989858494640123339398465026496608512441609667996153479205979569970473134567649719012998862586507695953625836551838055702046940126437002504153377706127691159438561726567520198653552516236744373798282707501178315044010482759710223750935590453632315456510428808417220308555413121556893310725911406968229948631348351951382460432266186469497776625770184992725599834923521888381152831061607024529817147588119079517927252500440152587225748833595274798608892131250643570461042023107784572821389319177160926005466797286195449970528836015334691828166441232116735656984314757016720764055224192911925777401078736834453005157483623494352017367438407590902662059021061059156381054058028181986733323670795705850135646176837779084185237705375669548966730682899072056913954120095962661917358281168649938888972663746526385773657131597629880044110045909639098699958074440195084804144804271721960133979462367783763357862554933457407026540946524552235788235047152186496530607843043927573356143252826017020072539359661338588044853233230344684516802848445580595879077117851207439787950940027997503536854225838947184045416239388267812907870511749184893303988220767826848082652797371515001523277204792859431879030318001233894701866959720622969552302528323725451736292768854124060451892962898974599852778700735640260769356543205458890683409288520265553391145635385018467711921100893831402476481424686116098312660272638729098509224887501314736185787437226099324037248574611206728170103713039577995459181028463070944490745385586557613423480428116100153052530119556257764576799791870271506782262831224561253476982114963220161897400985524580342941475907375458873757966755296535918436442350441856033348555097654276351358536285245582539924049254068398913284740176695152985703798454333479299061413834687361454263363327881631108598847644176735551280571679405021032590275754549746601154878355090824435273971502089808115628466844244433601524413528073710466567994212127795336745530016124467568472443909573067956528904841728731331791540474607120071147014211584353423788174789855755904521760791856980543256115495960213552218736140081651660991021647360957321675974921840361702369748389469838785721919548379858907862733770002349827441593666812191403710694816774199877614541718676604358545025526934334281806131052554451603407505850919537011309788380644217546696776298539944993607353410153184462085337114862407433964936496883620324741671152928168669870663168228741138368793646957602235937932985097512555025679279348692444864013860114236399605434013414914193300890792251711197658845110035616542846491654224702026210385403967737700614176338268893352833445685907682740332401572041072034831349311068747280041715929386884392490645198281085722100900199627273753394605924812666953327601744214022847350356558291949590151919255405339338016453105483408275156031028727024460524097378079067976342328009032592807750844223132620499981065159982158478198206082943521227531985103656608558192817068918961929539648912148439511204862111680300286727534236567777579068634166072167234950782582621929638690932133068082154932500351325958544117383339293250945555693350443135136549742310106817686195446957806831483805114740161953176468305304014873768798454900008807802693657745295212252711419562694799168182260250205878379663805607177460297598009137746726733789682977581909774520195252325793797781535928448934450935403269645884381126072585827965799712935290170114261619933394725396857698334275507731221308651492532494571460713041358999407005470200794627038046863696001903191066833179366913004455480589531797383458609135609227396606484018922041115452723669940526548032831251609494495940423818589707351586052493780169466509724545694949652374002663300200952565758343619227544723180454674781607110098451226178639992885389298173536856229511313805059910166547263014708442026827005813343119914512214765975186452951880296891761765372161438332488017794357690103034174982180089106219452825415493985356786148906621322760350342243453554397003977267052879332292323853173964918719151725781947545568777920360996204827523414853343300541198931976462296290860799467299958869893856878181105921131366858284840273573535480325763051710442348338220553201426391426515237437288235568998868629546877805875803718684857587740532737846626154213397173191559239840963653964156247914878031107537073833237106592128059930392813074018730393488286437713749774976145461605110184052653079428350791507110757747465393785695620850470083490722603390443549792536809280266442402395825177239027405698764593263793926323576923629599502738347619729172289044754216252547232058841826661535242172298115678288244334536668609418535155383438373433184856151719144593643318225594859705319168149864685663032264175362338581816726833948849561548823647412872949734268839067941920085147396290258907699919013248995409169485769472781259528780669758601767546949294065201693579358398308491017329914660671036357914947799707855187373982630498330043844849075079063055873784291387153778012683928867753358727609513106685875953711963055752500193375396094828789286273032992706986203623371193404027013612944113413049128335697509019472618458590770155747723176134192830257812725026997206240681245148824399477286706024004030011071688195593225204163404076580956157700871282240578041933598392660051095025912583640999655502885615522771273887232496110998972951858521347553040462148910420513933273230996962852211175435169692073447532531681078207108791777133794385596680394850424241962758713863610683744953051709907490039523545942079755221010752119092739481713912545807986308509790028330748475704805659226669573761532235167818443395958776858682901828251390070584905447560968655245156419380020992260460470952095205188047111742406159004969697844466799102784799867757183346062660762461986929419217818889982272050860178082792915648438550525004637348974644556785505418279595893222812683842305738632759119602567408732613378407358959747270754917689937397775520538017274528510475069444434788293085785491812185216555915876392959727330719340627058180648898651227919260792647630416902916234562486217690171836762496523124528151998692280733646228746303421123922168687175338382801056584927540605237374371395461402754387963680719050351090750916844578394268624041286978359628492674925364980513135300017715358018175440860379346714641435660095295497367492950379032037479744128934629538426089470137348720589122680664391318374705380290382406035105481802627312190444396073046042728176223898700964095518341390191358706252094320181769323243260652763935642348128172256473897819686261872477230022299380304146055866213812190690743296621419547545126097223525791581568543889479932248297358464883371208316360781403890410325537207908498906944197026166031624681505831346317543109694833870641207006380793578273900932529254364859194343079801292631302921926492992017589033153194704673950732975268383920798234135803753822281597404261400975033801290150714987383939943695516967629119603390812868772290619632502131066941988959736536681840238094822509044219499857683077633814791475638161456373946822229250002465789612787730875792949461703986372342801535081147320099177527828417831333894294229449028787918848469515252681391936708551047217878621933176861010148915924877891007985553069524767793317871614491949215485104592385046332365392105791880076050516691172672194511213797229638653562442754330190337255295089596312803037443592385224307213729454724274973611217963049386634192840962090706397291520725239284802361748310668022201688085099308177174026809367163607279237532052745482418397692783801330919472883780136380063689298098923092093222721868047785696187698704370986945569722546122200280701957333091196837252896190791508523288711671724261749050646981627456844688404974333703858841198581070029333662906038074954695464106428454543206044893737458952794017756476640318262232048893902634803226849969480083315309982220680640353824966425418743506519519320975969767117110873751154039607956369909935191707571349941567601213093569904672583068979710967415295880054373481657912388880247209046264257319709472301186972719858146522473602167167837762611684490491748106926060330685823914098223445137610791422837618374498905164402695176536211007156282620008415136771057840300244486778871630201494805796392691118193462011255563175312860767636404730886760732569911923299380054763002368625060477416819389575449794565537047344962928180599585410957564234868934557330927522336336279337000617573615847005351701659852177350637340485857387042749419555208829971423922402886928556442378474753566385724938821488016558638115501450675669915304279157223589862187479756353618011986174776488340411186788720640596487817376316229117434961916561510502729542246155836345121833599076270484477477945357030006964466646275218865226022281250024001502717592887914795753169455119627988948473109430048840528840611997527909722874093038661588559488111101739659328942160011011280613538185635378360679451777761696444344899663304711488656791640968431956301246437413282224165808508197174381808994428891545550773407209695893708296912128713830708277579806145273764246855972169937887800049062306854030590092537642733945738736889420743785055599898795702130890613846277969397037327655042526315740364061596962193647992737880984199532830191600643970240105804394250863175910644434287502720726900367269605387897931404869160375261369584258130108010531598319995600406218285343089408825223161031828775278080317444167713612832778578430738587584873081024763274422896042760424418570484004449756129968167054418318327731177240220407596704759873356622860690544094861875584963769124022428600190377252463914917059497387327705093320223667894300327588606376219799676016797442345081625445588215493810709194135191618416789365642060424972102842129056604863436507664345629645429517788960980836960378715060369194270366845026457274299417431085617407704917624275401996796188487569198868716400888480035508871032742107000231559534264883619032601061054970737455306082630680315782009711463387356459479833319786166026584103443824432780207921555284576546803756984043743310096974528737837917247790795306589713193824853604652786017613184285786744171344841606937235043760816978066632206284639892949310520567072015821978960127262125056328818641555328691913364417366587379152256858079964817965433542449500600363973069285191234936621563086919096888622733514676646575002666075871210048969943779822844192140667726320099529735130407139585762431490393634695682853359067219443310119687014663471020008304462412773959428163974325047702777538194058653617277766678527249210698867642206661149045109329889541557195491308559390506503968676393597420636336400050330184464983967974908227320006787501358492273829339978165958225433143414889837009215565144994796744976200665248293355050441730231848988024370960969577278107985829292206702943788034517146052140431952408469406719375939673890216280350241161202335162551242212045780837968959419439638793938700182189594466911506539703563329230951373272116666172228634764788244392243508379908471270808368782677560976125134152627981311590770016855417694810762574018333999478926989593067579472710663782395195167352497227803972605585212985538308661716134878363405750053103006466414982261622632218673924252100513344250416494770120753786049009684582071111957853765837741873203277128155107228955508604970221511726430473478879341351884826080423139793167419027702447075920340290729516204717905450879205599647163174900771628313787151942670792894557248346311517908408765905973996440453584725218386827566739141884679746142878491849182447642790649667688699256342316382220462950752743431486014393699991501739400211319629484037803081641126166683592190896196802231277330281516982144912624015139946578798185166717216101528961813032517161974747316383273078326377616188205516962866790110288292323470732350723710460725724561577192416499677958758988351883115892543292481090052704334909960365576158702347808561519356327156158159559220459535884044429623210596057771218504022953705573784694129622933279119990946796524325816791764164796232889375639679634267566609931609411511829095452129483689608157699659423922311788345007998306390808035883885080960812121030924972538015337522272313291156151364804259529240945521781459537031781086687058318372722475206892173533081896004015086860227233296763393154319490403710127677113681543547174026491349475752098081376217642565132132328985895130012239175594276500047367745977743484472623561285665906662279869024908494021461937709917508348015696894113446046400393338306436696104470230112698470246002824198311615059260894983645221653511196556763581561490614579787106708266325342310217575526403661069721536826249295893143770161432814511160616913562563861308991059896099126837874171418568385834371739024720804257711298391907162364384189936546032216829470537585107417350316562722682007340523628489679112557031781173060705743531394924732664277986223585001705620813323668061325096365400329516075407759419117912088586137980307461043576537537597886887533253725149632535560179260999467617605765945793575969496282592111351853102015941814559877405238376917064282759976998824446927000313665790661767489492736850815805474180124087681502432659284195209575081602032567317453356466539424663562158493850096749338677920102700170793648496247131226656303490011669990301764635991737362228075343692980823287862145144886491479344290305665471836953829294090935118676959456079002426828080651143610370840114935754762358946176918952754689132350284865637086966490083691312581239487507481853523884334432410031382718928834343562217651480884844142466858107999491495901267185444582426358144986805151144606475455533515230794324412812323067196379856020238421140633998611421364893760020764816550287206934378104155887162088887204336750938876165479468270700733164142243056730108767728375956972210940185183396575955935689993492798462704643818271376052437179928258220226570820501428708692920092554849995846861458939445560216022245756707858364950500819199751998727293484557202950563008752065459343920934022994233871550673743700908582567408843663661791429131883920461413295496001765823842906072105415489374629682338026865045497776162471596965081026329375887778909498909693010691059729712156509965956422605863702512605194963173089148772507953130701478548189607806234056271368846775957310503742215056652905194521314943194424403888426075644699547452801205824817758946152555641356253628450107815804908455701482420517952750137494321563893350193045446676065514663192028790735653783974028129607232304425926336618616471880613693352669779201226433267514230170863055461325321074333122569448803201622431724231040529210499750701408267389805379762095215642290145107402964275426687517437150333288410351591965121240898074561593474734936115217343850382195515500561420136874964637571043381933525156095884403731334226082194563880280290663230868564752534967356956109229686991835582680668139574452697030417718765359082057178057543173222289677489775401388831225680533135964841518009205108947867244528376066664427807467878730941959857465920755246501613176690029525566425699961153087888251737540223355392556732508257285269434116405427591712953172607627248038311901452236820331293219895018353861446519172320205677506772257459600087686112463052448101426788117165228184347654497929186122181241928217729909917845570702258687926163074509240732909350229960235626931202241742997892990993721662271946195891922394731818755428707549774756523855572679561743448590515301489953392772303278530203865205795903689722357585235617459607865660815368595108691523833873444683297650998292379717332325826877841877460028482688828796036897617203324694834003958207270988285993346733838606077788968633869690498319714934051128939505096124754759339104050125979598743513346818479119420677493859408170648675869463715230818209108696995917418089510868023282143303551437013225680817200963982052256388114236364802560465728991888587137280528785094766296272989853238904297798213390394823542711521488046882989211535566057278106759301810556123160777235759594447920650915195191939737875139699108397256168827875830662642578562270465159015773529298877179648220915859125798091714509094291112476692677974529753217079659789197361585281400235120424647865842826558978181995363193107512864616555258033690728738965037078254969136318294779976370875299191890577529774414614302655446981604755334945500820673076560710811874499335000025960252287686613785727689917192856423479506218898566768370393423933915932911026022573110482639858665805733778458903354222328010278978896772122979535522678989001085880790225903392649809266562755985633017047013552312072964538414752944426539133945775345715231848691165423434408085117277938870153399752943905254783454994826911856033088105899692644370116612847382103031071350150990137264198624322227108106330448185625666083829902903908166438056911629163686594440932348120603271834137887719122170458049250513557293003737064458315353515203128443363829141521069480711799998898904623442881085531042918099635313681833689033878965612733417558478136361132602888110352575208228792241478249546693414174805755357255964588672281570287086035403134483401543197699879060614012967664195484833787596184931801098312900735057622647465349345980701041733510429574770377014141774517528780268409411932750243825371116788379944289591402638515961532093068305747894963875743871433730345603066789604254973670004083882129586937467981080093385373759020229365869703884869178330997890194401592477957736159663710778785946358236528521475190307314854192786450860809093931499183962656125350650393382015924266008509401124199959318515256929774271370148986433110788128109645721207913973369211155471854904044606741979962005393246649253184043897216438496093720630543581291269620644465503217514686004520010428114473629592373879525968141539832443539047715196849062168425397054740545764311098093604374988821474499760131148904901157072938590811567138072078936254324271209853165671602340098529496735036574712078692432617934698667069204075300338005156613130684475508825867488675996602418561395630450355712194271921592301252356779144197901876556002354462807830886407483586795851663432424283286382002384094828712245405853336088397720250020042050993563128248564546446862493772692177174056988320109676510198591264628785965943134842821105274188094436702738589210886188135897061724589404388788924933740209521546041732803012107849384223322202647388051512865746180962376129715795262371201327270149367863843924993089816626116691025008195018785458167127386811196864483436612512495505764968987894768612303882378705232331327852355399883095254616706268131342481681774610380964143259133436733095913498915656628125373416773023975238295767283510141114611909647061684606609734118868568891184887552679511930652515222762816869283249200930143387021833423929379459302227233333015720340732431932331160903133464695421128726539190466302609184643356695829225869561207905778052985467156351743157944435026075085984389883881071959295838890622391653966333733406895482189790416395382854259453647095787572756941605973400718704410379468694745092061791461871839874553157723308489746769123555241041419462323204161856174087998776922285419379775230449788848687362128990427256359672516645545971292881734370720990975577978060153030708504708153561355216078128594420452809913043030211017681445179354601741504608092267846887032968312990550717742715244082055292799236980672769524492320144591055108846242222811789365477676605023819787088250664855907595263668428685545586152826479853684986832414926946463178796209366664300318546086432707955560755828078626632015763294767313716113567617831697803798345547429519897991590844683241158775857156726129760324277397885135730208959878115354348474582321245204022221896870729406645652605294084278316145145028609704041755127670437870043404417278090180773689996618659350529766875277204342339433418202248929383314357540673978167165547482600319986447859052419943670718479736275757224605667867932591134942307738013584258927255257344639788981552098349712589986043046647304333241512434861298882830880684850029727573225531304545293949832150400296114006332673707845874811607314986655478421613377780954790012613259530841442292879313572483595558618989342762058460764221204041941353923975281155555066398072844572306031730160087279768719502998802904508163202964805242924224862138697935780560065114480398091890939429441949411014124727202953977680498479063897856194054279002844815131993426131629594764199223420602422562176628978323813435924910088040604630460992162260583379759966378958905448043801496599998906646681839668400064380427338331581631278620469212135248307751401901116216638384000878637024757499082298245430321113177576484602648897966323126973450146860345446398069561496229007587399713929625476775385791301500719492106312374695620209392433126874112249477489316143455264223084955181818162827274666451274150480172864736276266945996203313124115178755302897622506444315561558777679676721160544161642524027821394537687117386829345180069979664140820662782149701863164608668714680827701508894208919922390513383584712535103863939610508401436845186209964551644296023587336783703836515312523205066781548421125888671652902946626821882818398501338073954412422046465982329302353786968842630737382393823608222542154329142157221118223315026540504050675596342625686313700092713303785567845972116138815800639693530771313785078390964429558186039470009186202342080347026343070019939026732903138995583938308156535364071511976790094806486964274042801796111801918256771397319925365324411525948012316446959687272909560100157486631660374525893156832404742515498401774796823632711019925939000809314940828255788877858328502797843821028418699579673737603893640852794545137591517451331003722118192496215041017712968920630218036791279830118108285160228192885565145232979400954336232880840129428824817790546988008396515167856304100429794715421101422223289605596903043337880283631069564413950458202919620516169302408818312106108563111983491533146762247871882024941457689306079863396488174722470296963775036188293243264606255791712046817909880416127751480112842789682968180843050792645360275704513696910766303339386678968092721437569962975361177264409431831924932127080224329747656514837251593995593308470067796822984293706444340494332958717559869916707697018238102838216151987661793301649582140890609046832794090774003353873473036230180369766184942799697150992090689359280850760285955866144020962493660930045024640363400555192072065539306112298071385527815813826871125446260587847456009234541065439253383920316122117458787943704127733018656111450518722702507997066850278924472369075118785197801747789681176615516367328060396124247715754206949537628951190891560850053927604912747434436520596990446962072776644592494980917691031779233297260095171893380834233359620643036697047309820079858501360431711535224944406440647204205561591840105748112475522447664209989721054882624568033691221414257089097354972329558361798958817926615861119860518476111934514740428652478925944740533852569164895065545681599117687812942420366402958131673055183703211707004794317877095398909722516545228230237601504404870570724811246893459446286035525567758840935723066763860826763753243758823344591560471883068339237507519239750450515392649761847989455578278676681274506770480947478641577671975221085492394842755002016363694270917751980880412797893653847193116445146619807869792800038047665762720156616382178782519993491528094904645602445380738014203658461170917094641929032390944707798602050840898480726714421328428952122004202205279135170231422493626671848097792447257733345181228988871609919386823765542076088094437688468779488987288756847750939947957953194284910751651881933789168008237658115200635002113117443749671999104079804092767088219081803032755172387830387561528994376161284168960745786927120978862490782000921953558732557874275185263738456994315991295935293467258483887967277717828049327578717096531619659233554500844147123727779351708502120973696178454459034545270456223445030991605491185129209100936783289984108791668314625005952619048729030849159186221937503097292758822394325224205507450758818835579026507730052121856428749123084763089236689439210177396491398418937584747837854443318046932328060172887587713909466080248259150917205600636130468990352408174445065881650138273698480126925578820736662001424851106017041399694777145067122135854576420619673714324799669159766283770247028857810093251086839473787443823394977222390593024594269225077409848460745233572065142972924204048040630625112291814290879349977947426518136612512473082818204812128241999545214741180386413628293274839458570474220653053012375324037588707278750389632162808602456881097833637924310835251819423188675397548159743933770067008655285348967236998158988887660568691568560311582248341533114907933479479486710632785378466231963847502189987316694148880236660773908348725558919405445590758539865159945679300124132299136696857627377719528496595723177768976816241402791975115886861737202913792995330401177810677480289621502485389380072708926035177681885624006023062945703947574034857368136013468821220681982485456328621921092379026862632926352730128230988481729516095584544926988293733770046209102218435441983743357779702818193658225344871709716672754927383916740658905461265620269876214137622388750487550064650850279838120501791445956580766018846402552597505135592544667351232757100229126340032892500202978034704681959425198422737665482859291980273902272700067385993995601663318561328135870085581671542357271909814060494662147742557691775298970248069530701274222320058734264849324953477165147144667941391919646768726089628609204522858645509118609100679009767926216617792395769920652070794565740719874526057753567209440960635862803567809533167457206145566663527202986812595687511682996051119976690812592287296609898213336263091312250396558606691699523394483195799687333880793782468119831214752550562093016801360949960334303433466243021411890616060555858905790084577251998967739220186425001411891290424455623815341645993630613555100855561730668529208347909945806999963054400334500291483687199675787541743147077058502529373826354135014541162004343560058473559851889142818040336624439822692320672722679614967744632894197701370947003778908899048506479575595280570355060764857283786718503861478154953504810369055138654008107895257797493401699450982781017961252125418103867051205718966216089683598284186828858159326494896666116470110939587154411525420224847642272592399051354946608455427978776597006365515625215672064982741766734939107615275549342162634239508054071355273071015935285720518235550385952853680951324978369246316093766065349349159229070485777907665222991932883049470149747061960761134999851567337465468173236539291280231543165789104898257505052927306765745616234863629406722918375037581874358347670957427673084035024415969858202335934416245360485270896453393192906063885565285219544151030005663058130910582758428693608801637768280501502175657141417359996521501541401370554441869388767555381064734681958604429559414902715742854519448054408676811057322532933270004586496020031068336637510727564357020035799089739232541602981630029990672788569230786856447876862493958629737331110168651470079201048933753394616150896848078668462926272025139844668988337279349782738536271714259200925560063846125071654951530012434855833920465619788171481250686204845770703929514923407086813492961974444112197777300208807660224841220658257622153818618926657418624435772563674297168986052436957694665971507660620301577918444862269453839449260346164647029051397145929640905123455196719924950912370241280352159516221556609772413631069405608754388031101868543913715360507865411414141940039270934207361293738800329116720353784139702532760897451585476697637482073940227501159756441740994157765562072511553998165173725049799029274047952294401799244789739087303403102025099132559017206611380009100670325606784250886510744868967194404422393803701500593823403185512355664186939792911653128671915041125390866762520669525638653754888083524748386723144905818415619496666366941849953170416385377407582655302234914411679861316788698966622147672688852833741224480298592465166512565344883494994318858332780756727604124365897369726660155813933789132822381205637241077731729119257040819535099007220562118074810328620652300240139699912134901485159976658142981710732126783945110249404727794471326426997052142191520649396997402978334826896031840553002279606553985046204743347522616589959463641822327732742622933149315712103916979480075365864075643881515971542604489768025290780516140383851951952411672730794375928650580639617894920976114637287254312671163992747888439741637613314887898274023153354176368468208818670208477167239852986449028639814333318154712260747362674142754634259546689268831341301886717390313519960788327545863735049060458185926137126959834882863170381801792700761123836045871225933611588233105431057951086859393361027262436194661186543127304729687773617420453152577817863619510837367676917160762453840305951580594552519274020450360540500442381595178707562703139213502792279147966218417750243575200549152265924618383435852939778238905666386128086343120168958187021120640471305678595791277061192062123937318543820423410649889646829417292052535198043820743173706938339762642554768400723481959977410494025005836126482436813400271770880762598686771821825505068096166685403114610922811386367993392549620324980976482692770674453879017825963144765153450846297518940521697034690631846485138593002586332094742581361747369636608720356340773383472718974669439508638174607307517509528571847821184161238932704966014622493728786026439141963558472441643803635076222236905175752990966861528925629906061230632561643721367983295133500877182884879016842592832216738806203775564750602103947271460189152812366095410656160168542500741838675163426394388680535033296333345970964060150548706079134659932647168128450725383091974416810671138663825375335134517652277343215142307412552603572662034249548996347944899886077654804415453266919083692033681033531901214309002908583190524183834994745936604216401792464006903288351614223230768442540138391934804543608050526559973096027194486202463631912229705839708230990733740223049214251248231779833486004542785819372077576125937214984668325953799206793796789308238724103001898031029675394507974036121462892760866654577913626502262406353243860296144337381324196787685149212593541749189307525735113733140623474610039964435576507122281265679281727281767423389037469633553891195161085887283909383984151917858253576319940084528621367953947878167257776335315255029738250866069126361755170014879065531906623690439045158032145627065547869804735233535162397345016728081311032594132206671002412721018831762851667858342938577465487509055742375916462890350549879648427067799617870118873058695012438687058708206266426681741136109411121286381993117568758455924606284301516998691846677278677973819179221954315688117099232048306987593065652385713936736310329870924998228407004534979139078339622996282017557681734154606715965976847767984067087527586567478054144681662024997581472275205307591525033188700215259359238762880939504115566704641954312428225058068434737959055551922441750138882015393013321308078027640188182967051326426225702449747928592421786432279835665394013712568911701100857782610553415744710321090298548673941757809007087285510468539248644866876947093141615600181928600566372351868662837720041395850926876184444934858547874600888228278232859062947896766541610607917993698688330318563609935601188524582400215113010017020037481491526693394858727959391581894976248836742694296453863743542971080939104810898834563509349456095145036655744715155570990640676437735917649817240149486006976231555947614835496665723479544038137369753503719026548350469293793159495073429455330277138902809044545670811021356864197201128738823102336298943110603109382027680546821090512883144392920458446701577272647201773820989928430713556670376943799857568345416731125775279906394790501713007982447407196180672694164292585823665121188694233258250138946421820497063583208537493174465242477725619702747604362479696779446694576524428193754344431133582530296794722139603013562455820742358895808225200743502671850103249952711325848355945397925846622189385819439181960782515633836417661543294869592834274029648291706396276827241169076576165268007302732859661844599395531016130155862912636326802315669819689381036447794046962659968326102972286692718081640855847105867622990018263328274673003972270599209638882111525092307863914936915065695332906156118946728891867100055839507728489591376072038285332872827141683928143441284365688057992481067071006650337561988992116792108642094990212811197677658640375890404351919330583382929552823955271019197005102501804551306901033704202454827385551127079189928015079923231472168931150602771619339513450132403602439602648915592863538172998083353677050444473677928275193947413044277991852526380934080718495598785762315409084667083948901385517782349676309202431678883948710678064066122170153418886601843707026713079626459426038562236532894550121850881878332306731939782464830426770982964967360496632771837548251300943180239007319474063233260141826475072464917585884664668026058938065255628535424020530011728830404609093383946425611017843148730949299325314156868288148913746108978095951924510468154859409939312074014426498466169958541085741607473845908898167660688946692631269241505608164771046731700233371966790006603977463282140417005666296000818951878486214652975055921494166614228162202397799256278313865027131792396049097347514385616572806490694575474216105708927681806137123775279431809609522075152256597181438139997159161448784866331802883067120953570516963614094158432909490793549906099113247892176485614520595691914491804036112134688991560545766033416165806249846609267068047267528269956669308564484509902976752132754675826380474077987883350139221850871973322997275587293510724317583922288123393739336186706200090093835331107108042945241434727387138468452436376740022348183387339046349400965550177073606375548532427077585348609580847873197007888745731190397748023577770089606551569409162753405634309435211913066160475872157248662687897136834482999149930501949261397710182277191752261676131619206984711402627299775594956833925597677918145191029973329525668812766915621927052308288914917132060634761949492500187317814532875525355900433217128532643399573188757052252639235355600165030986689820767701126086104483682263991468899173307841329296883467983428493687504986926173122820038276218587872633709019383301681036619698567214371208285563315698246673132415001044879966929596078740561822303430795383282604777087270047993545396805963179128449411993888710491778655135284038067639213409425770833358863191060258400949487593916220397083378199244293548660050917278827893923958813578355581483608278449601653948302470705089589724487060856106326826572779592502583623366108817978527701817550217016280658160475284830390903747432322269142588016014883558463736817014681011552701507556146405984159130017002258909297953166788723264402827860221181255409828967417249646815022750066656143463424703648167534797952763608883261554197158527669256606073177941097190644083965761096780855705434645606997912914586610878672390349087541780945138823006615762895123773065125070845048310132367744643686745992700873676551647698468380539196192493520350628431239393138879561843377968168904012928187730600733456887380108379742376605732804754209743199805775588984547468761812495545478925908477565454009478813544521163925826659533894336838997746615115956508197876014932110571275585211316142879209416129949737928605326242235209454384168900817448588217267685159946290588794693939146276176526940334919708212867757805465560559937247886348812578436757995906280883769869975064358487504548622681592274305788554032824151240615878570869143003083736093989553828578741060119351951322105601061118922746114522172019801945843335482932193182286526069490990917443407862825082040965211491620654996406119984469628296189909941744264471570463368930246028810979502615980968838835627555116664167537034605676699735680843888080968110059020715250382478370443693545199081571604965422127626252636995151346955503064650913283672176394048255589505616668382396560565956072742317003435421252026663067683451069439071673908960313202176156406706179604059318496048702246894180644699261722134193773250507191523693341687835372731274813811901668039865488202366479826475168270425565459681221915343677929032301696647098803878291688835513528006838877703550513875124083379426885923306863953825128731799765007758885781693060874957851162896088430559992808300600433447070761016430848932746547731457400632543834197616209736252075918329884988580431711271063472845873921568187100340167156705052346675369576554169977514746441677417145803896295293916250857700179212286599338546575231358492036404265723875075929549636309501476207510676624737328010264588240258530882729705081927886789330524183254326633879518671547646973934751220785488815213714628678149449128215038198449832069870711991607865720175220412004889144425166290395750740863943454348184891741887276610054483646217401000010198247936940581938415932114469318236869048540626474292658514732346331573832564382805077403135272391061829302914288425804810070262336380076166810689671866545005265987349353498553186937024739523590307203693354493912789787915833279075974961325826605274563076295029153692722248808479730339859380011160426932042530335413669991651453788542612575420316057601558396633220440207905461504594161091167659397474176602899224942553292733529138458373512346252539634584752787281232442581334105418048226995007513103177628681179506356222899391542256852932752044356251981475630723808163547112436275024559612546097217351456382996843605253150685700367523397297918503481359974103561763070189841013570550139070995926855200418118334542376139488998234493031123338207908275992711038836191505639472173289207096394571209390709722812091453197219814493544897599079242449750773230524988073190806649732033651292826084151147524068157692771093324400309672649923720495468581320878447409232362806842908145474375698032509127760348373271053597799097383151730749154665507044666827745710078940572207728579377856191531881838277350858282574283151862765446537884894201775500763947749895448452732633986602734556776568212954313610474600324765039206242882951523089438186177780256258099188289752015668141737743908438562011491485221017297276090269691005293665218076828795042945904214768703848582035622236966873356009528394273573003524323936626437825922261187350103183566967064262189583468169148857770688088039691375600331108708520746361634416131893933961096089882342591167005920977900080170874626369000583323758027853895504851484820741884055676891193158348455991557979462313433545038135796619658643209749425191135662461016143171832943408642636019493409275037792820673095948866856849472646835072293511973555067017337849386403699575872312202724729435936148645628610733010312618898351487807708922774222127651526638687865469614651167339617262102569496542585426505825226051277119919817413301961144173709152393387153646125916000087577284883652866069277351225257677538802403415778878159606736192967879807322768233447852936023189423561204211529593863430666170592767173733304728920173281091266011151137864622598744113446777673190485923864083801291373868469043812237408091706767722582832526930605981271698184290885781716498147279501756759736798463521589089980901544962402879435339812393392626911146699865814487926483383317966222466286200964108757818293038051091273235684671169124614047133432389639420055315462443043049756605957858108517383587329693796274105943637095408941873238599275656062286064042981137156538885231660394867640504878276145521624589418145965604028709196187815353520757180336261189338788161800201704226104687941959126295422260133536894540930692259745806886669803023093738836327196682614571353088794747010530575327101630956910776945275005508879252657614382583434942834758485381537837316727085635409909482757765334197695447471583844815262772242067618936170028143047286491470370238583543142110053606418405607318148227445262891567733458643713084798613341440416970291602654013386779793742499232516790491409600777611236732144227027718656373542310809601951417814170593059789161154104356904320270604703464077716519883942936999725163849170668845730588211321919007609300570401834984711022369692175106951575814246036545425751944046924230639599585269985435159427624985223875927004576224390179283032162649847040900368579442612402733805685612020103778607598344673878671774802873859927311137946255635963042820116686656858275590978544226604391699020777383117866050757258072028815871268910098109695362347840151041529746352054064421691247297655186299032258045627328034014015099979081780579927660756856980981358307172578164465039882352834218622878876566803285429741180501778734107960014852024952903079468627396266786748185346756039038815029808665906856252259276411038077608069936036063424840481944369648871570160690773864256191688722872976781579135951683229752536998892374584305904778392432171170845239270410979421062209071619060430524058820769608814168847794126725427824791420648659717977975644084502198079561603959861011027380497360342829322109448167149972586630220572498698938788576730928265203774327434189112483870579896309172315551465272291981425620110187148118549555710895969564649794141414891230748616296893036439349715758557762826404452745816802377322584281693182006898307029666346736547159407862443177790805597287217808646602406805753840243094549712167285881525087828088372628898627563740626642889417448627231436408450149615653024272069161699215864876740151028964481360074714269812079833293344218686397831049309512685170486839770558294666695723509503359501998321505225177291696441170476569703963105645355031172664063245530414095956037481445068351292750882533182313953153821299767280298340985932457441673116051330274391336262763072306523460135349035602158571133107632249176585422262778206799866411760303572648353961066533211071901007711453819375996827450404511676074166360189674485083130450879072507033741513053911066429685442797352284508077793971809144796441548869790482542631751639424418863241169530888410191684604210097816162371349510441837395535773026010155123841387481548763639025152651674506751721127530696390739798375233834749519382568256197711708244491130183142927469265548232523258799748956574119138414123306694299686396167090880800763614853524441951157394901881035670062416090571469781951513998226306295593508967672935247036548824974850803067869166249849693011453626097788875365286946997254007620250340500661281222901537580767867671738746509191343061464214149666476501711565655683223111581357263212758538112314789435576016470228318500900777939232376161909246585897420980901012518737031116115045340011367294933645838722987029075559678430780428440394109083723469263873730354464259990735491613017331916687231708995169262650557700107990969438588290956826626159812756643169633096072542817477459877385237976206646206102712260990714962433506859829029923295436081752613416800096519180062732226107051250511849353531626115411731674485230908692060177535229626426268902320052301501792584868864028816210521828382351239711603309747236881297347955249559366297328357337618491179757812695762966343296581929547780447939589350811359827234387075850443083332746070444858026225068320148291344216314847342924085767032144353871486252608965738486273073916577644170486757298038119463554083060212002352917211424403585323883348637318743865370777015896542863889995057498834748727551118977980563933571569219775498609406626674878555494580964332088985464865654961562190509080818111559742912808532656691707757230685678399092588029973365300864226380386193004113351202609483950485192014122660112181178385860073062562548800295379708783408406805000370204882283965204907408630016231937913854350755909194042673910011851568744705352900892618033398130126536993329190139536370494401268989189689335220270192878448007624068068686972697520653796293097731364380830487863929493045454359784133585375344682048395183248651200620309422915010747640605043048056958722391727087864284652946092980160913684023688580833901867839816583129523123285064375354540235736200749409386520431139446134929726932504171424639435874973743944252969051882386106512449407207253605959420146222933644093475345566638791779832064204026711984572028589495776246578465980786717183971955081900367700441435142482764801211314100388355025711052894777775942241289065183828450150823822246452362971246080086725214371992967414775593444870219437244851451336084344905791809884920757953504885954342948410702341820985583278174027226497381661406360280911450760766452882550218181229176415176660223776955927577793181581883277111098474641242878429896165599402995621852171197488746464600281007699188470445064581695919651745260964318875749074357049608335053748757759720732479201937352657102171854354128357483026078615722131305228510481570797477524323249561206593110721089532788143670405160760509126165355645006982465808930071539084503050523604074875547727930757828677706979208835913544557949118815137464400593955801346171074898249678537315832608066043430575437427656916421495208007596441303539801982672652472694887534576662064378103559398841752509732489940524371771153287240362695937066741384012097474071913148064479089102847942151927177795878821858245946539257769847607029392488645737244275897446201248687456522747104585530537795437462776168774985655384363185144764549772235194266506789081568109357674331347467911084687492024847292667852004980941961474449785502592879082333544250984361774785701337887454353378852606759863822790840680088866067689211984510818401718965795742809489196834320224647896279408026712494141619763383229031360002383207994996989205776361936239693858803750481805548492392214020247920332830124996438819002044106917100856946570244629981191337065510141464498218273125277187768155347379216568661838778883176792264258228143971313906366104558260926940024139164771443253105849169544439127440428263374824119455849831217959746036359716236369276488397484372734849369164594189335167812387909461703419877023951700308063941734040016560225654324550787401176886495341373226108040362519908880830118911073036464281109061598625245282339966824916197446719685937815282958722158792321679271502391377138456175923352099883255201023556801985554388793738149312892023669878718300116375224969780192416021022907233587411355157581108120054087431791885609263960760323633130596660148957437394620293863769767158781620034386110230901486761945767519353104977596538442195592628375420257162183594915815461928047419964210356008981451568705670759047902307444012559708297343797650323068214659431561561331107265980101730384342719759506340758850656071148323292372665519044861391888744195787794999101759540312854938987683086833077645369246911370540371647029914986427212487788825066269778548061598181758185789550862896625368438484394707474738194784741678155769954116575841029188752549146325378570251765259988682830436538161625820355654639261083810558491769890189733657808107779956364621962413776560060615376745700499856229577881903875056937595905425931327536072696825808983161791839918718922991658449360354637148315663736543704337391493002182716325467177262919650260480944286895227112427212423022901380296358424811864094740386392329096718356057956567152445506838118532495920544075991580793473419572887871955460108169978471497389637274208622718974772792910044836928977723521581325305951505652175055503069584775576470144201291754548749426175197852335662280620157981922143416911046847627856062986914008591905175810273003940291908471500638769929160609238864735334688344020725313552675562918233524529937172682113872532661517983555794783518665889675300067879662818212678666377970789323717224939846310267880841007533052149743694406378217820708485338437691008193774248807355196308026935632415448310966577087736688837591023971527404956751950799827935006239309251169004906665777963148736141478497226812888618158273970029299908432473151213090847483145056350502449966310036622530886158259518338473751403557269549083787771895849812210408186960280011867843841188629447178893482120831119402067690765095097178338830276539271553139912568921424805456510914101233377982395950029778457502264296281665030941336363824231205302194047145302579798712729828816381803477978691247880076376564313973208056282536603885391174469496411907094948480181166772060874141430944796823597066195632346017962896318493900059505759728892566938785280775135849566127735138794467516213607358031362054281272119779611663946296502186616368155593792840191921508971467983536230869089432464890253428299304509318148403655235938423108603348122571857427192321342947551552989019872082624255883933932076079621660536465987769125302666805831231147725001278147008733064430483975715389212973712764023192659547919032271246099210301677115624265012897024295974294395392790720860563329766204427579397029364182530401120715028346236809025574006222242270369962619021119438742267486903872985153794389294957724261344538287672357567655781846940114382528215486602818199358276277215008734604981282362845749165574220960207031444812730827964632099323965638218461787520784123686966753471964455548633758186030868325045229006594994006001731365403042411909524265617104799996720994633787699235450357178883350488781334139846542796258245295639185310202172862210657051269231123701743188197262692912473830045883959728278655249708961837958864606809857734119650928049820014038513948266460911275179575935249918613129484721733417628372300737126345360080031599640332759696148813756837566693988151602035687187639400416065520737669539132305628039444742568005494235151617100106202465680828010107087399262781420821521592003261589441186389816708827815312489323971198846595995871395087220902971831702475657631856871023240175565240507974263552723447051703077480730949718305974320046950322761212414052134989226266467065803406178208427585243285620957807826785006021881711693080451324074753193032841777022678046912952102926942675480407690507699604559563095849321965374929412492876157662998745788712018470818000735342281267778906495104973140674853966369861429029309224380208213453345783950183163822351334933401288559243131794474211447244980790005289051719726856243618969141534956622060115627680381433192399778932903350092788289167011800679017494574953383412276439724554843751979771781353536016281027254317502281614665322668587936145683927626673077528959764460553224984086130973847598996388036890346405408750688873831637971967779657592837549640532084200504881946889625242050492232618756838873429090824939484518027304409070347492161352363144556107875897929740287027987255686823186193843904084226971196062673143820582146899062259049897132502803316386352816285385585316772005826957899630096129654000829699603721356773351162481782976940449852394075825378594351551112819755747694809946153225755940165845237053429134798375398236756803629952860718622844722326893800571249580026126107162870274244558296389345416330115706592207504459587195273831487278140423035859892251071541965192633859124900215196881577050530269402768312848174068675874972416907229960155007143974600287782938430676552927764237404474835209098654262780288398295994537030513781626600077535588056566336809135040150737525362162722819290804832520111788931199657989972429795542862057530568923876530245255610776884929262327068081962678784471364384834918068155808220840027859733395127069122855833224283219088950518196411019815084031345691133291776976527026713746322899131997295737553294835118042186958401992393859488142302916821982472655337267499728380519022156932178925084441043252785028475300833854675171084140165573315491091105109490174990896962421413342898607691202250946713357289835818613602067293213484580894780163475441938249692885051445714891085615729576052764386032754476255115571156759019961076993108055101509910304467188034928155858702477732198068843189613146238956534729015019971134799357335747102615885440376617587121459091310285490811919695491146149615456625551468332396845784819104085634504627678386670923590744634830228338925556770017707110521368477552201556643084160243920330670323630138225085216285864675772578386419794083674965176538810284171341127919347192695990508206779534483537892841807580576402655927036539278279477762392276410978406495905167211482980153988631001422751140970296876432468636811746425320159750449004610615956598475586949520274046769722998932299791750682924961939632643882223409626227508308179326741443486610809343781717372636675955183801934368285263077804486136534204671628577333636096557812993840861794216306990685265761904867123178436440927374670066823006012740633817545473885001024306262333792316027068950671849763800391737936815523374435946248793433657637440083383408477049020550671465316506610301180212881169174014855063832590289886132052183408185910754684553442695659874216813548017673360528499302554699448809843128290586568150102920594237764141686624836687524092496784252420865040525909394237999147701780378177261273061637558311563295991845301667168120100667304832590749897280510292413580182003236092766205961303834705501697935062851234601030901984365483588397770272578197713569165179360537278463209656218759400196994439493907699703682741307594848554685342518468418909433875373536653202944403593171756176181041168866924664544923241284908101813145804785979566252982485128140980934222849758512781608671724790953467215249516884338731038719220478481502620595038685711214773421679058130142519264406805258474210409763259227002595898292497477991830822914327816432642280865016205487506219534586124448623269341950592541121590393155950445117500641581891408936536423896667529510890915413154293741659458138679983552293721898114218474919703509291131925224114554738628655842022789831298576322159902854053077490610765593323171284828814855973743846091486288309397935519738774136806159190067189148976552628545197766316851052045352426031700779624021662505193315041935320851790029965303367400223763188944116731150255346280102113809639605212133470301978115744914669415536703110881448614303418393563189702554440708718066979847017702489361597692897722307638351267342565450099726053701730003259851209612889863605173445210461400250095333564127828654304744848428520709796083063191484502946448981262393367613666615184533831574062648561458308592307895084242652431426498198766750897396273050200705736076619383129381517173059942962948559859353491205951206732638339039431666108936105292108359351707666446229863816938783760515348688072801315714416708487992518555884665737711281259113567782127470109286588137562138687939354476607079105551150448583536503339699235214244401463756848286299132080591191977572802583343364113832596188048318319797953069464514974541050708123911537800516392674952429186317635825412142956725883429830590790706683733573567142917770291611435407982239890080269669218305870654526507601323696561560971215280594662836724567293216643343569926713301334027462676973723498469384121848232205244691466533165236190959142375977509139889341374259480064830012658233735766346683375252302126578443831092294477093911603316184833939137178430638611951520038692274457576810826530994164252513557834193736156021365258638725552665385060793806578148733194664688261970170902476931528340928491698216991284809007461290776341669605774061153227860989536152273382907409643461875060100024651822499878490712684699715946070669370777509780750355171136420055836856728837703418263512281730624079176153122867807017591588872166959611581212341612359550885313828049492433535265571425971283483804193599308535905020538992739594096169612393935114990333968972751864971617129731060829115549398844087450295201726934837213753784274160917439580798815500290496435284360813207135291256726446691814278068702598418103549972247087015162348541241103999006401523771986995037447875954311113648445947276959173039844367061880996499157454448196332341231404020347814841180821493182754225365360324644469790285525714824930083788803532915150052388427485716118331414619826461679329601090849898086839959727593127034730119660205621420503978109960292377024986765834052039638038252317963287579380671156651459041187308065812669172722502353003461058792260283354202123164869542508148142977077525119870240092701197859923352795707443442648747319123177219210038886288968491992708416423271035306955316021887022547209836505610542571272603789248979033542429958528903270750235211150912315754982388635083338917379896801019233626296716051003542665782083026594168544037632576896122346003679417502001917427602039609929325214312420834898197382080106745857842688849031740212036765754942775584405012915743201046707143512124913183021916186275668094218222710968590215861638021553391133025701677548455799151047985163246961620548775408315552785443655139129871252963962006175150159360087158539525192078579081309533366960582061004079384518713443188137216029651261204567202513501905206316016430084644067243773524195913966479193571885438267259156185848780688356212207872517299470411505595679981719101236542459936425128095366441368432607456157531081819397109457375681767774955061658968567727416892305793645947403250679728785017304380484425266616571815907619488953148630520390055851373866950819949202518760044212941665298001523577854193103752449285760154779652655581601725770808241580511978594286806441063140543722829381862876308277104891386285973046970855605968018413039272306982409955406784917184660759303613797317282914345131529927966519905568706939331105283771070437360528121921617559623081294773623651692045480573944690366508153821278861394042576018152650309527809049328529503628997284811174791979905948600301741627032247384193102380886560984308623522611729615289142392938532713939218504277963928328933970120560761292830596949137410430196149007183456403469837359731953042070509435940025272717102612470511793619871230774304700449919604431972356528266715710823134155928767458793053587341174718376496264479811676701460192036526135067933405177343752767250844909950803659280866398236571922808273183661307392502169450080103471465416315628460820665768956750305578103496479069960531494892323292580691145423042013206092039677075082308067497719402069537482433572063738757075385342057314183359344735812581799002278564536745162586782472716827514209925430974144223734653956743678420423505085142664044062816245276803667730429021375432647523107306642971353764228485933929053412640178726208962074245914254173152640469929244173827598867485553118752516430568310686151484418207217666565177001019665065245488843034180394977117316518492770862395189541310420971944305982418986297999033789170443235791361890606656723344249976012829811481747677761403370225492003563715646387377560314052852072166484175671869140674797448107315940489296771240907312099667539459205485413404354245803504296709809968241726123153685370888926749121640954526674858096208125825542424475376962329234167937922058830711981267151343664197044515336564458540427158112808920974528706853439842748172320501825892341811457122082925982731043649016104801102180542400435449460955719253527124622814858269646211616924735890854528986843644190139379829247165710611258154355640562556822657225455865418882713348793054927370607069967314732373255238202541548398960409572505098240917141945159114049348013857431142274762780082513156326884854717163808408387544602029683280332883737527261033585827209090841076388172942792902911981404792064581908028940336877378231765487197180681470150819502945610082794868140644418585109176930841904693261958349024112105854755542004138452193822312355219357476133155022881548442719557946455236838916710799013755402132562488417069259014531297619496080442015812429056973288549790533101506913087463089541311216399315319642338641828237558476152500810470356634721768317364611867667743525657318311599313344397471113458026713187204277292190246733351064458471740650201739949566212115430375595309468354384909782112353066806697233715531022452577513634871192139129108437215678457610506997605168689002383145594819518641492537401810841614980348864297709341316777517308826409637742943029235377506131347425057895600977144956330732501461157578507262977181210499387002311347334935904263729221513325181385233297472346885927831796416921857316795977018190884684807192371752858375712001241835421363379133496653299693369550073596282483666779404831416410733742434808966628919951494340546758151555680000838127859270652389535349920350683464090684447524401620083803282547118329268100188485271482190575682501053187489235737092187864825980735513828970361493826681767309953957349524234129929265149396656488167844603313468865885103900364800662937921788923735594072279793379336254814824252927212453334430140037508414092408420684616697734199578323695160259726558834744637687145593932600694074251825022740147665197924991542645933380985901096404747227550804327445230801287350489162770698978633563855037056916825677211412086700974734515374351800924340549845125314146508214855298180424561186251671918001457972971227085891640049352881305104632084951335564800287467157668085570633194129120203268379433566447253910573917063253343799138051502545455517323588338563823756727694459350829890918171747602046064059648242359363237201824309166964250521834152172175804282638858164693462099050703839886177044659438521199378876106422630280934841363801099789698425113415451529577930366461444791502521363816188550711774469173699740524712716273743981193856308649498840204439611231508068625213191872519354107868184580455073319821760565475071505811623505468016101827429047643983845778044042468116137249884824820667790249081485362929958280722383383436199966405695866411120950056575731101733735268351277285068356139101692582960749386896968037050650766481907531414652015539528721959633949813135760768678041017364914031460789876740979217723275518461375198181137881227360686764530286630782851444574454951024147659126880761808624789902319496797151189073345503097990826321377472735732736945741860627773881086406641658723888771503984832646164664987650597825509806271873228136266247183648352728632235442952473244168624471564302297285022338923980319540536787775442072887087154497299093653256742576815874969141704588739614956305181809985340990680285367620060461743589960498183328613987581087997205705253023500589837335729520381449008587703722955432668733699698601163618665484769329186498688309930830635426881572519892131386190058435641861860722444678728497896664696449974421130790448807642704804115993560173460293275186929171275851942325640019561932195585153925966151369790342614482736936332073385176533744020158401476678926767890968012500974150015285659456980066433548011539893249402157750710043809060563307935849098431635938767695594080763048539390529764273723251515104866539468162927136785302858730775677935423962612652331995087184204127628615428575250061303639255696001133822539590885127900044801718004603346798392096728113169405406266888951200379568557405195038037959736386358986544482443973834020572812498374783477398163823349441826674851400340710849598820988766842633513766414685418674395685899699060048243485738991164375538506844667450829358446163914525372390500370098772441206696193345498619437697182118177025830308910998134951516927098070574580916352520292767047116952834825755393627116465143863708333497010265808672993063518755039533926376328528675350358961984698842402539177653872329638941988749159962402758648519744550932165673358264031389228243340639226742257017228699041083560335103468572378223859180442677522042982130889767497259712205197878530994600511733745488754254304253247724624446928363933112226061411848430249105731769445577512852912119942251222614973950765118662973213083539665131845640889968321308495181691699941786132207371481273413010018563071849556144779980566842713399298319611968323112884365108960751599342742150999809844668616997629332086806664072621187215650773129519471636744687733876760256498787294411721439926533840398910075692946369711945119270739030224210370048567108321424331361586934199016619986957724947345159743804267780698809400912839463328489942155648513833880482242031371589996072439186922736516729894236232725665883963108591158283552089943818526251744401155625637842682145140661034372335098991597023747559019209820245822809923781755796231646939622526768005274056307396663086399149825577133198300296948536955012474140871921768981712799462647098195404529217992007765168436310360801939964601909415818686548746224473680286998779817575238705478314459940322079723270424915812481300722655080590047016514170231148462711003214132807388731204870768768803354350606223298998612912081639154435695572764587002916257835311610991472232901942549667589205220196146027552813838800697618934500820472919394719800522305393942556903846882789000685768473136177895505606311932173021174194989933686345986406024334272469481344716856889771001488027460987214052678101826218821130341055380424043121236277556398598915129188153534946156482390359586135550571184675859222764147203837047947936817268166023559911123178368698800424968492642286430981021450928178158716026511643948034658535989651843425968703175829088076363392951009440096989429518728295289682789914879843336835094609201515693666489560625983986827784211408826544039017719968951048089592114274040891342864645443631239639208630432018847155594775119681911891467801977106585128970999515965314263621186473198977392488917928876667371319830678726358466232152221605801002889922346856859264094423249858461358499707878082767969807081078757877753499938156078283872753545805628395591093028746478684902384342755457679543313467971490011249559978952621326832098825911698721666983217767762143721263204882063507761929014447622229918967952665041005701879026594459861808584631074576576522810003588021190189676996115982671842411326235707775592459040975485343824307059675663590957029347727645718208573606604326719427704408428412170018864885397129583743891266136932579983924265562316642909416923382408188984067086418355873845585801196404460070498869901480968089231799630602206332484834259090281451683548770678145536044637115876983230137182765801092865904657342747969037944382978320204014038429425138110729541116709059506423654389009816339030180636290921074773590497181541210287556667919190232237637425238033721845326748184233785045476373530020809657236398705639629182075492830145033331017199881966143372180545989159904385752594944105206893851190910115672353489376141017618243975533482515454840285558933726426639732044711263393824643874997655612089701149273464293509647655136631897019648390844845399812610482927328977810048931243083878082436815105080224120588107505216661546183505966519447472797790999410036124778348028384184573561741397753238102005947003235250533586932417742195315479815021261299116482455568312353354397485663453822002453518385494519143689468527207203728695348768079761371236870004023929345502451761419721733913953024940905178281947505232201855325118568240580592716672857860337035517029602924447911155826514921471459171237268509435117056961116010186998586474906412649611356092021664723842158208031219812856640653067997390555322034463441363474836114873303231192562165172149767370929592165927780235862761460616446264435537393270752602913631066428423053498018606856156069737974666517912551614118627990000165705304835285067068091868893980737058891413389987787200916697558794451947466156492516912131331515548184478955494043112522510116029042802850362102737774276810767134550657120374623337526402748444529541675280345132402305504084741757078778904577453900637047376993363480032803497727923584185404141243583597838892021791007658132943469158621824066268451105832173101746970430157452928901113637974314972612193929233726079521133449111627180979011570165972645056596818914423729197192717240083082276866585365219577276551729100067485431924963676012633825298521097480366390229905767044613964657623669568792469465403480575642243210699216572549468141664222807394253777329682377892898898328230209979226243317858651511059472591098226858435091612613863560223755953326977817080253419109700347168567423447730814290291491453971373653360091594397101130120366028185683927940323256199096699973577327711481351556876252294129472913825002294196665801048849089314475860905855394385180288320320079056471152979854271756316959202331357917295572446252187388735180956309833609471325598293977181151044517683167203284679890762267780401972107619428046055100878950715468129871759970447078269306255181051608406735499647212984765435976401868544856169646020958721013536194939680165389508004323659465697041312368794900038783440871585024859423871509149655900060506491649098600435843564922117674851882310151165103399390727172061396195764365943875221088710557910037737349367915156693171390908059059093819097669163693749479909547447214954056775405139378463195994815774623520626896020921667773798615269160338608298663405188382123952542193556295891286752378502223352383266831735498717463971995712557849276925287149357387657412401838855372601534991085411071177312435661374183066563369323392828438311503583496093724019727426326204178356228041121930756903113634770990917960505491564068247213815808416868894658082772498227769364014263162531623479262117088814775466387998065572749519392361958926842655114540808701154786350689066053011568047339554724946408557680845860387905042701457637481093841401526400790344856163114787871844799788873191049062815846587636283996716773628540286913914808239358971542896443635593503542492159740296550587062222416045541019022395628739980006758705378993204100596995489334551663862539705126261130562108077141721650433876352633241450530627774059584249820575898773506759227930071534351915955906639578798134174163029730414267245107350731294698965547823224869747643353440519767686105406750032224365654600231034434680137425906606008173557998364386029141938317819890053534532382672836972179370953632553197635104307356936595457548093160376209274936598308537500898418993736829197096591060476743395421618895930115939744675238131127304689744167917419200857001683806422802159922773731137772432252533945004798472481778207462754377169083364533187344806408969842357555228045498455059947601390123832650325654110962194758739447001727306398519523884718336378687143792984285126437954184526368729721879806195876308416758694295346696437898304739500149673530040489756472949397624942399600677159234196641572245315203119335346546454113425805726339666910961450703636501728510631878269379441845582227395453618184840148060306035685081882915925486356643816929584750116968752750555052366100558234638751818619262154080734420796047281861715524998002843144542038051058586609913075418551772061085006968718295939515012478736697900221197870887263721108586365027091548612320327028967078585439659965134948665538763344592411027963117541267936121028797569962200714776048312401527293672326416535709093697226915140306864975849148765363786889123904043078604030775826139011180780434915240906710246491060053790727354277794014240133252530159265283089134521212847587535616210835300986074663261531920826101932269439436270842642102211102903524740500390369089040662017371674452856195123067612626859273117433864713928271444187118328926001225835732420418632450396260797570004776289093106860415165534827077320836755874485556729715077373070651159935750451219828743272597479481551647969531698247819490877555668203123763198664851086293123633942863759776295068379509691802913045936489962828663977983318677520760725354087800350834571496827465093129458469897306535839143643293019400119734516860611779644316446867112866549208111833613568523713697695247883704769803804244043618900570533322880008012725334659989388562481054998691026236223157609612601227818977899700215297649404754271390494071286907463421438735024106706665650310390765302701753228908507557388003598133150149433552492616963275448566865716674267239107961491727018211752364219594672002927148778485797349293029328221997533936183023437141036985924917275400336020498684162534613470932336115377889897181342048638625826928757542039991085348089836716063240108180565588487880909192210635290578331018376064456060802739930426552843472423053553951113441154897717274875139281007890292948238626965891105296141245609336942353706101798223657726141250108455784279414677396452125197396065136969682890636246086878856190591937470079941113189136024780084719604883207221488128706215179339335637149428231654718324618431052121644261074517131319682127270737082935232236205880343898331779012624067404296202361696019074583537817510472642250539753152111181683311234684051053309659625155915906647960792619637430419705460509287063073258681771733805006080715331003305306822509458957704075125735232340878616624855480416430209983773013238554560449888547589951777924685626154127077778054551622053096090363440699589963099814843550675792989939928545308199918287968718143593559027675291795280277301207406888216908473920662683029373318528911146009977788843364174803755141519296614880379654661425523221113047003782112602227436838172809077285764619017918745381037699834093860699534820797458448280621421020177616074250717440941675566050363110370949218088832994463163454660308289732095659245218513037179075834275271080371562815191307085756589445794485427440927100994642477006150146129876009904778540593762731236074610736776726263562369074262221329626066922334749621988638258046791452603502314440344176315879428890485644615816341295968908766782848697048104984429876980249655050228088020617494358360825283490232638783287455792837292931407598392324599784163688532662442510909884620792728354885073247920101981654079237812061340532581443567302485922436383225389432555121071135479823817041505641209124902067212253089871825296105652995285005141020174898765835901559034305973777539396591729161065423429536882885747718755111150881775783131942661140451988641094167041657141431031779370533839052319820288593999129144862539554726713074528886406585167837865342383143799602813898652621249831690074924704960819098962180486398907957724770479990205906838744044513739294464614884822882743923428584358791123480725390772924210697109343931597304006687633516668602333788092471880363230610967626553926780954611168426100182127133610042566234530291924380831984170748139575699108308350039047580946673311021892283548853463533426392503067108810144335229713399970066308471672801216261113646583009893446124828581868387211616267209747271533016725145989509970671224708760609618743535409582560923370190339974694520031888185176565491296875371093707051702636546276739308935971496990487918237058527436139227995894401647372183095886161128948720599145834068578907790702686747340360089900331036459828288697035880837482532394170122336759886440383499876906029125895128815279545666666520155773228110848524798894419860175485733780516071503077585915746101444043829892362762345679091448506293173007022269294782874445480890607941465876305752486086575933204003371392511744601567662613109398420641668549476783524687881537302323969572214799860548560811964912825086000198599046197888494487397002838025836469224866657326444379035940672967191568257170874659979934998463311270448260001086994721414136752570545980180835211170259511560081252046166893761636218371118287699799570271091095875040296191441914003970893145290558209762446123353386462576114347761935292386091983948689072616094575167087630410612485943041007891602057577771576867039494359419292631998457822244004027682880757505550126074851999378075033241482316673026140530216947664626774699714127317696030122723888824688270820970258010362300465500571570227530408236155120173762985890389464828718038880456500808136174760913244065870272014777553191343622334743996610735200982028749120214422497647173310111759146577034211713532576562622162707711747454191884158052148703134420659358770884257751580836391859969265885461382846692265987340010941394864087865581065763297748299121298581047948060078729226667844255171567594117670047797056935077723708637508419039034261758384722260781815319989757722384892756179313241069206670095966327085247808990870148990181468970288464835201835072111234166882040013157707525269256694004313083087993388669594958385004171350163861135623325504549539474090536902734882657014706005606931883077586036454784030718100422727507574531727631682517599689310416695254724065449324561078045187130912401513337074121320882589260069322693566629298182863622325701345053516379445273706418984022115661910075154509990972513979412112159533902325741528333317702452117569822398157530136881191653076325875176728098482763825897721794057544246627690287282008874446445881705320268733685868732918360749778897889506203871135103766772631545391073692713612499236857298169806665481580533838896520656985247927018947771958271256939716435460107396294338624942986934297207498333554959525487066226850124975899293378662364352701649512239927774417699619470337026739273592247668642659746850373528482657339461111153962527169611288596303278404273631018083699793387686702301331011756013318068705288549208623813931218126950210263567228759948656100898172203419382023730706352045934494844004908232490355788453047662043097683579414619650206028363069704953193065229487180574115508019256984179391368131819690222603002375484304336493738143221096979222779619203026370710780656035421614221005162014801457162888224154234457186169619153714402391892057128283998315048847894415498203181014225250723812348812071673247715270532612333947581630343967101478607916401245523865475864914199802673724396352383295571842807555388780828298916107053662900464302751206913482952876036213877122946929241020987225446851750956626119527555743142996854107735968921712057621187340369039485397951459335437747425947138049402834687616370870142156833425502543806376768913628123572147750455551227407073758826908073387785855403780915581646922247144758652086579314810889347733668866071851479022666984717880540105997147830163186526638773671199717935346147032716649303600471746474699465946411639327650982551816780559302123016313206971721224196596579447265078617775741149291799487163726393647820659667457362342660128417711844688244818469304322613882061878627677867424340879581048758977746657940158721894514646036282589487704438572962967761661277109149135646309774289656210226842761906469203688851124604764608372015665342155273544284319431635302477447851323512030451327114440833392389079762984632887300235919434042233699814046178326111382054672379046497230010980470792445224778457952134768886715572481565486957834346555443655434214408569752897483808822980692859677691850324398308758361100294276198758207525715619447394826837745654016088538212906147538960865818954846082362111272852857848617524762790990348869204151770983821450813650262382508497601785421871539297028022366146191167203885328562187272944150889236972476776212623174252473178573210419661284669438710261835169604228328273256916317694791099569842074600193298481528514313733518305858803382262487103141588710319600214326714988213949821094826217911629947322711765633610991890838644053363705152044285868815884420570212735375645928425100797742668660580570107207326855953641783581419077959031345798376726736502317881751949373882025514192151865460204656270629435207024589204331383773131666966028743544601333506580414288035755565384110044059648943730781756627577242806773381611691970847433711167162054289717353378609768696602842724393140452029954781649585152968803548819604977665265942366633478734741966810729872905229744681947711355938143533781992607327653998451724123156644758302820210365481082467925546534383244908132104469665851554497797994305186958938909604159251742699798582439590953106412339409013027447985284122889331818252379156977672553619550439792048853203867434919105513622972391246417698243399621108722426416546000265384077124836448423881481827289164710673014384610254384059866694369423318683279480609085296162604897393352304250671929566167608131921839361306772429289065061984817388311299519695444447655509902753843569644536713092425440901168163939921099392737866084004139889925221558845137619691174616905370718136526863144527619897975901673183383131853368568773871355858267635140991511648896555452822739385135407463823022600810263593822621105277398289122733459227772552457317820144035479655458702928391059702675144933300646606672165442215046870033247247938047352196905110414345474320543409802729219839294303797521701928590935124920123848658420362254962115204260936668913029207782428386790204953419002814814815112589995879426003948683823471116355266706875509241472683529662544674260708188392508477816468694170834153170204925830136361423658713608659009619813500810136918329712524558720948198167778330302358588659676513193476874992756807237710727526848009325794356258907097490635634732479795838484902132465766299662237646202590032732206330444795401990260948914616035629546793935205956479485885577612414415753141933737256729166991366208215696777799913565362044679657608367274348392904174148137162797503967399594853258204464505794779117701854275187723216614734731455035606167742620648366980435604198302007720178754833949782585482401993706206436972752751584830231540856552523763283046788808793352921128711549253606286175986743846782086106493890663011982906974738190531991145025456957206186949538113866497868561962181897932293264385017506787620974444533047846249738973127009378583221510626359667920421951574728248725978463539720267994867582772839964179555645114127241626987628466936981832938830166498346029937672478549080701825783883519470883241315603161398848135695801503981853096031915583552866356071564291648171374108238682274729533757232339172104245842225223100416356724715173208464877138887828496933498913621368685939803309522052338723354327951510433915124071866748822031858272367769231372612751629978411535924614807606451099455935804600068733007150798788948397149599663648756520564481589679059319843076151044400691157328025239017511156157288825602296179985649184739388464717959902226950711462751317815848371008278477859032808061742585731096311889043259792648139068346445469553028147327053573366830531442464804133185394967284087681620186066865390255317789993599522379078910926220541612226110300450446459113570957347305548016415115097550688869891892404557549380245026841717548396672668404068218009147064590379336151488841089279657968141101630718078015365192013396652443265824372855055580773503484076640790801752810924075972155348913039317767180002727603790494573817344774796973625322693454583372079753116549500925041643387092851375120518550312208012796194641624343136013934374632605492401960107551992553419155548110027255377664967197139282115316885417211554413974443054862533619132197939469309465496866029450166243832634862836643361443011188777462264245872189980646876332723491979463410090326881876067973431245042573907071111498708769925952143073354841562311225940710554482880423829269416250252848560104386328090454947100703436138828531353886561710957720953865642355456892107356467090229303449022943171664966712623153427421859530261602903418451089025195914946681233673901538319873725950316825888372672523995059236049555692901257712171855711172731322143262312143947623288473852241728856386128901641928005260522804379724846922232144298429270467358480291721223524734294752556077038846956775442662099190533711024610670146639984595570306130859299838936744232526168631630867844860889523268381948192103934479002569558044161371534897277704318787031152334816410772214580003549194228854885367325156507862140223686806767286684996422929970413567080696806496959339559555013049755081343524083214812155245143875961198327713162177090299419703769620518785599927262494661047943234073455418368238438814378060546413304952509572434950249071874347651958582757406475809365510036469289580217262612811792036275552431496468179782772673037180240385722864474432510169401363702208420303916657886389121675318963788929739350964779243966303930211013518272845152474806357552505776353011106286295677643565445015960432630947460982743479665868600967355140603941546083835264278793083616490835223343297436274198729579262464864352933182946848869667969117300117800179402030099216618479490035136222239543554699164209123123192732752550889714518564817696413159624721300452723741864548249186194814454959815947628775554366975604667701078428962614407791406924774051516377666080167842672666927517384012964172056940497008004894919862624770568253814179991484931402495092615274692460123247867213845197632290039968521242491900018647322256216672215390526487319461099460924979025144493821172922142631473347367070141921743775300023950454220725922848122770594308251738510838616277523576394919894465893883690686667127673845046839688861864522712828327292967857650163840436699599013528564012670242043545596601066665588428299915873636229952621878677342592809539019735960485846540064236755550675827489061605400113670049979737289200443367099786456038869634141253019760035348220707700803680620565344609428904622670486429963780696277395709100547180730964221380254310179749114219476298395386312664166979285825525586806600445985613106548058534414151240355752161631616323753496927739652642456891620910330716826968467412502228922085777913924837049044324055503919952861500228103636305827322344058859119995152278955373531296857781667071328789907476959914359138735861479804243858859914505815787218343284701181335575507590260695830286476593931839568743872912367966337705769804708090218352240046150320883703931688480719251462302026889933988181129400966973633085749635586909058737290418472953615330578684287125876186542682603188166958469856690549470267427108337502256862583691029787182947098828256531232713341382530984099094939144636790291270806906676045948336529603020704981549977116673937084594748573909344766354700656372936167714040020544914402653412555815008543211129238871739221122967560913887984696321593120170339984409191652316918990974315885425286326601617719689306086977122817008998571605974783839496542572418244420218972079414400938873906289272297979793219642541862666722559113291802710521839176787663526514747468044797394422283705983503150809360597611735621882045463964234691678531215578942470287959780644503195662784778151817296789779610587215727347138649815584142272401209199832700077197213020496811339468210080808411678373331660612457485896000699535432062392464581268353800845911118715765622236343329850608029325650103201377860722930908356277786666221516683750274594068749553297588175061319988874647918749652573733637120428967629033257976530208779278499474494153310601607751667546363972408424659988588969290464838137964535966228284000244769828947721531496307124490177682333455561409514341391737456121410584492616802568030957664106966109596252894338037067152249933205342593820658275577369453953265320090341671768593496560780151080334438811856733737752950267900272308711484573767060681707416265754762398769446835787865019700316687115198332852975223670098772227144566122200961611514961249189953316604801396338468547532249406662652964901732003751580786400239132397703428946949153622062439650865791429319218025042953698930614560972881759961729778263684080484084583244726103481956044577259545335145010130383909168898054579925184138750935065341931752772364723586688823503419024954231011737437056125222298329557163681326984052385216441664541651551648434601725030665006877587627694020672505506145491624012131460811991604180500062056156223209851266737275864433391187696661945337836391835600830838753943578298107214036840045216016353219599492941349762000542234688956374501949366601999942795858686272315768065315840872949149726894336163307160515739879511495151101593157181901768340772396441727882503907300554336956595686215556138061390837841596382829094700178573482737536537902987280080570626744349000768509707510797165980509175047668937336987475976934033851979699438305269769631176349618099144110496577597443093703713233733053816907621059894895240888487009742668150783690327438907095139472374644039402990145687341736447666496646293390347179070097359628383008994114888494293940858889898834941642528846011759588112001831357577601911712942586864953873950191584456962839364809278122802813778407515321005637948138337892372310155291116368730885634100482206213622344634624268325465394784516056241104670832942443075233054735226659676396504352162215020695420196398547415516518353334143119415724325097950502566196608687252946763454410334073651998570352885688500663978454821213513184445471945039492539609067501985256016250275455781871134209418848251966243668102003143753314067234451701413910779501250658193196477898030784388800168296785729322446757405389224623209768290276916606453752110324245236515847797774186799372358133719649776663933940090104410030173421920972693375435221534495128139775443882006095843778250400344969210874359145454815320862560770069395439893377405514250554167714739436121052564413868455612061811777199643733676618730244397641337933687734792919482350988841305551752909085953341489164024241851755962571846104864368325602077282246416364293562110126500832206740199161690804539613159133257714976835863695167909126015161400052500521652622082867193346920667917077839019256147539715264360840481698287384016436900136001608332948690749408143295665921980977084666788357949705173464488952972386157071289287370592111336291545921091665733686601094301312496411690650490228730738133353018567769288378294965044162909958051128006725372752632925087343044038443637640807582458242185851739832603473256060437370207736613506880374241527913349178256407087544534226631936573367826247726100194875690959989683610674544566526976515669934951829486232127569131973430241324360377423288738398206060238620382884134495034805573204061652710360751956032432315610604343849046236920747276827961500815723361242913966144523632156632986031192655075906987651786213412491304136073386289401156469914262911796804025180054062634371718409016347822231517035790461487801625902438110593473832834077039797713159521397243443783568958196604939839090301993797827457211384933593044786859067367516882099559227118202574582848470059769353932763854019873177804560863818357632062127705438386534164952735502379699926671575875571921192236792736122403358348608313337562640535718358646208548485481946784944348810536107177841853645316453013201845694439851799109626958963901649170515692668966597336277642472773162313568364406885066614464733301442907582388535556758009312926118038266099194625506794529625645917014934571319486167070074197285087850795955603725947035634374954288587548211733076100798365839014170644746838798354464807617633905241488637837231823796663343653898095146848150428376154230869519950197716612067959951232712177580631049697085331156446793744839673907805668433933677177472284547197383855827065453394863029999211420402887164090140024592143594975112075267235340289651923979427447970700017305368869423900336115896725203563060502106631517917707965434164269475171688674353133929367794241125793578157153600647511797386252280251189360956354456719582237048466750943917204470140784134887717486403336102456165690323336841645490086066449414283088962556131715059041861265645379383485335416661741044868232875239313338394736601958207556414759211493534232335064882941216671339050048954321149497867705399916827838115847884007759311044169176185566978038172134611578784707889014328624889411493255973328979981515208617238565346305788673016170873301534234346417815674062587856313586127602170495391180194917356064033492141756686476989279346494110236258714267294683018679501005245451215247713036659385522845737502305960807471688663828517385973639161950718704446960262787108613989649270387820788467044246712433289068043566280224353303971028368612206332729579126208514606783262989134199987544669049079371316261361310076083646915897499619695286115427635927754969230583127238714015340976974603124706365526262281801175613832302042642142318620315881741453733826888549066501593363409848081857734915265060794208250340706080560127659858794528760200737021397944605207730874110652202776646406318955572306094845387830181958375626672384100085125480684340687332728233458324397388848968097664726419330585328073274712129335661382466498346641643969470297291170017192076513441051392165673839638178751005395601853399926081262901395120166580208497433788125850028149787948194235250061709774629178214805893959641495856821696564998314440306432861500326449254946885646861100436504828055368029563016186715889642391367867775418131844375881587128700364420497007526929859156703729149950244634399478452508707791646941663284973564265380892905407530306350838430841828430343620935308321958181488559420465599302274812878152858377883189479972423665644161107544707925709359451037827855534450270577978641484573966217833604046729162029020349661528352025533682883475625568032570278484140412400405251514659551783413732045647438105832401496094887348412918864893396558076798906653399327184353619101897250100498777236792426428072852337785851796286153371884680094234592123500080616494287680545862101784932646951339948725906305494038619754159008535744082739560320595157774441864410927534099939014665921788609634521619192356777791116409934550042158005265057508220325136969661619900495761233252361842018964892607433620301074718327386692895752263791978781705840191698243224735954867308915210091275583547498571807669273127305924057288456136860289442524397612484332732086920805064002801146986002210934233770952999495299103655039471740949368932028943356464925256340613937349773872125586034426509606543337572979322315897214862933724127875069175217296074618195530545719272326483130023504916870711042039661245992064481520118049968821724659344761340943392344707508098688858331974966203475271970085019468190930653008078253853087821526474654494349267386947121036550352416084093281016392685538889906162258106083469426058955126204806769245411684063272884042002852823930161961817581553010586251834585012610839227771663522301261444673353339297487739423134361024535396419588885235131782941713309623489487260734817146554050006909118694395488353741401427982519267604065032704015995433857485489052653691730717940359664595635339226393025257801135127400809635375377049690933211450928166199190507482225009735991735800493496860191893685069482175642204834115853087502942179638655873708992712063312200053674217271121147454967475035708427718733841147283125992408870449182324639859632078216350009019816433825731521338835043844684537919502910473705599961355142477597110726198414397298207477356150793064898678629136450323249287330793393270994231712187886902165723554524667534274627099391143422389639050890504541355919311661198683036583100490561118726078357957300753007245684422506948445740027332771010159388080961644496995492158286938794561590397943302946276232017171979171639942637741707291389975598173257790292543722949943455339819580062748316104268774028022968850732482744978246464791091673773427205071147855858153688030271017751768994676164439518879567926428654035876642995662913063500448253672243566778357727649515859822177780950712690789855169638288859829093818808623221474028939901271421227039566093980269770806512588712490566533857353073372762289520910589836236296231751905214240336866410963622957208676409080131741321072245498108611586075774053334456447184682760011889126115153247535120122916431672319148282087941029778576628100740154426157787346067440413428849255656520781325701771396383215436760918783841129220980048311909977859083085930222345472990256782190811674003660155619286576253609305958855775365284977565412058681409090423023274107697316481814469890551599237275642694098775270138539791324508069223576963720949063389725690735631183635317782370789822310534826124299248754227269310997040608058710054992850783354957289611702396912811275033667112509974220345480608318103319320284001180520174822447419718882799235933677963953630236051872680971810964527894693061877571486443684851687796085633119764099402142367897369605098897187049502741480622726401521585247352547660981704299365710264469158939820750100754751134246869057456391282707472261556955697505617086595904273099120143097489554335668977108806647413327804616477290622549955273618493073214355098832699790799019483048810387877641657144872814160262087202877995997492795928170259925226314972582796635003644410017442914934917162840169444119031936935120422937030653118120684629152870088610110466630563405376299845859261049382462916230123493205587127653796803975375882916524191699865772270536958173912866756406335728286548881298458854720374580421673015313502494543132734236030321238729011256082966066312138198897439882529022883833025352421168367405497961890886993768423243525000349121127380398036730400249553637794409440668931888491419538808855434292695686378789365623140282968173555760912888439504917311726891577452832797822808324601036898396757797049608050494835183160437392806916112145319588783841500678056309645108151835242636594748462647726306489370717039673855946500488395454451780590951564018299280712280176173149534951651248596605765008089812216759598368147755168034191849135616904269564850613098055002425521172118984707228413174412497965939255235443096352928149652936854883828762507023816016224106027950129653586603746708598764884556223039957557953864594966445509581433095072735241192899069749252010419433823497447604290010471092504211436411680944554500823693030488555533510036903693949107727533649772669981221561769600624308923402308239102923726311940008678159067718117117738196657950963485291149490194137713468931676579551704210457140617276419117042117541789247218179106236074592997828997865688622432992412788659735267517611273082476738859549932962450208404342603236269039980921919609948123448941511194940549813453103075080296804127878146143323190392897111529543261403208964050376247264872922369483435690347721757898117469953254986359977826314295796383823645398999712716420929411523693397416142095459493612236722672749182751662336352110690509410523168520246054292644109500579054287833872042321961374541428770224457002366147583751488541383000784888058960472179257775998230898981730753237083004750806505899029769817652036542734704924677476800717240190207105674717535803224356256747229379024350558126653389695614935545500018156694707841685554740493983435115506128894713936960458651254615889384537510415860869600933766761991149776936672607599735826998231114820985697020986206097602261804934872848860599177930590906318925130906950416152586537251603690894362436495336232988490132959639949775967271861273812825406609943847011622012336117606709027982412763956822337743002519776848509357829086059905669671066780988282417892825057653408618031556068744207835637132745893592792358607912170047191309608419130021793955894490993845854427803958629787358372279541917651655570558865706429772065058844436515733738056650197005878493201010408190916850273972985556717714678183215643467832412186811792719979708257971526901992317672346161602161225572570433072798896197028860277522107265588926762302187201689310365193812625059225939656413878868905958772594277400301580159541489104474281098017127586779077330489459390133769066126255684217659513228776474602842279441625798267418811884266579273918512478777300243355590229150205534627970403834834455823861435523760159664766680809421085197479705689243625815101362773186627470735786394852685916474469941532357359645936276336491284639387849446495417582505634762240045641363910140719504878976417095268809479181110115465151389423762939460861988397832406508361709480822832832839317866140319256498671840329722447338734529675004879223894190487380899593852959848268033597442585244458304107185169404919864108221169525129981128113647078608832724433745321598176977008240619588643899588954547389661272768680609436217975025194965969696420143636304838722479081357066832682587849932512658735675883898501253013538918883960398581481589737955264848310488825817662878961929279526321377873133287784412784924427150928253759745983578533772914589913780572554472766624769400355393437333829951252924296798395597874064460644065171492488781148081352010938787291074155773785785941446709748175590667141716271182184270020734780099708640661150886743749576671809165151902107017242162930438426723624467610710149498694873244268695158875580062856261317081246062580290074007922826395864301814204540521205041543404983792553634603734508083154713863428754075868661642188736813894567683256264049486203243822073040184094592573258436384949307606245378381192802322058898348811371030418623043462669486532516056077154444801146380255425051602833613708358997081948699625697791819716697217387448695017409994708736841526182578612399645476981798410391762392325156174612901896395373697238680766950488439284426402874780792300643339853039736981295399541374710104251628513038360452823270455173932133176448480846848149156844317136423628230972266782309755722729883292563573394422517000220723701493425505535030397876639302519156134694927885714172571234134107814662360993228278690853246429734157590242490326127730735163007878391902432887076254255613995927616586287249169509802063883618522624900972753027112863870955148793829810945004504980468173151596526201367306403737272390958940491121668724553471878603090908798537736160719627527672380049658398969150912239248261390176634022566421408021970315437840108345242581484436941924030650974649841026627077852292818814904806189870734001656857971571202674871852859078487403536651001809645846490963172411837001783443968500427610163764783540779697108213962477008258983555592404105553121443022375622246138788610906774122642781292148819890041564529329378048906774764181875114944054602308767179257791866752402412851298396351788371409458224953872927054823506647960356646786790606060725862468311403486413364945154175492060601744470232486067205827956655963944492885503764167846164787929291322664538228260260039462034658002787486919423639258636937251322811225336855891089721204061719783461847771693686590871661841675999132123635256271481813942727716726769213383121805612034685492906347374932035250751104677195442146168322930736795843425893568563272334094479677302037582265424063400905714465674493169943933153237596672516517673900124593191232822628097029367436263223393766285210307415726020604109188968309474170311097573654584506409139930679104156500360993365114258882684451355722325752430699671500522335619674895110928066718371029084531465129093598958629977540601341891525632145869383904518784850255192666613606124814595699581017966099300017906917590205986184958094315000376034315085617743041315036140231005993024820463979413394129657142928994399769538036839296130634157891129996532550269707465451602228170678384245072934593228499078347815180876883258890875448933522659607259662883266375406640525114916500625668545480120928385377973765480031711089034489570345773517747229014710267317095108565703973549424101688018483685725150034395261536236758378673976501496460543498958332226661657031646492574183904930798951296910419070795783817682727496282277320317869177839490804455316391455137467938185028705077287186170558666593275904595654438541188283390476650047552464121678086095656277494586429899583211819711292610760923508550833655918004352997211521301652413120898941671386949115453589066299849523524225249362326489370427229189805258902282894983332651674687851310193052422923745825483858195204478374724773915539196409962349656283369164304528650015392865111037207893077069768232005385446552256849721431008857833976976289385304261681557091659244549845797278568849661601806257837024685740251326038685000544369898133663818827270141468131398438353659820050889616058445597831487037096141379425357080259463514027050469901726988474046974954133236371014712675651844629251216128037869784788222861651612332897313478108238240999412312107137351203081142273310845029472182751575272061681448107861975147381090387223482457251669538343533728317305503566847979471881676710828164784627292683890322283390438412754278708006638456622144173215480566563461748398778633743394893298142778573293847443504270269141857320539591994317293339776369736212708334666245110875682907700557066663413140009567134446355766054586339061732092392341161578040501631619776177834604581396079576456620502090088869261087368780487952868154315072062969232808068506507099524499314341327991624688393070744371522096166495245264666254318960946813878866946865688388827865115993503942065115430585302423369314834108741172444321509603008764943495303343877669140622234112713190507864038429878965893725587599263853931050401796729925144749156261835250202387795856652333607470625097474625451056433057510490139420587473178353232688756306352361088095922046459504199805051559238633232525938781063414574640032417984269783936654321677049306368264883190629997035289820801194718267170558248554152428401540301127414048002809357508909098795173664206577766082046800751233148599253060464210970010443755644755874655524566596727893320248067070002628775508264844379609793223188308497033172226507065687492486686659871347424275308830879202616146764071831159588061297470677019749344665701714618881430321011124392376312500455994003908765619625979130095862002132903422495325343920688104344530847383458419471032167294446816511855440342741546704167511846120549234317229249016792106004459310041863300778065230519750419848976712332136752442728834849930211159113026963268244517608067665505546848905973236663631190341213777545589599371374778054370077923298620730195286031583289701293199857727875755287357781000303041389188111682837050246638698597030043561499258765779604001544818676496438200003774946574191384025387334703842405678160077279202334940194799065666668192709378704730652045020942436889792699335879735234376428806932404438232772980569907626064083020566490396289537633026283308789013873006667778710314768760903694728476033251189572142771694021386910791035642908868432999038634030468524417625533061092334138212822685185558118625268851141880212791922819902180457748083818597541621997054783368172261209909040280051102621922056180509269587952238588307642591036955161646964376945812835763452079064401579841843985973132636136251449670787651129198222318541210877460335997923135464889017093745565904577633644900001623491700403256451221955608655741304354338557862178190038370887956417210188737230615074060453608933595982224355365624275240302622284468314228214217272588966150093185147291829624015244996339863968830641248310919939144069250281181035004954892203113593201927874043670436720066860562538447897681008007652933692908779136258732676392676027857368559082803771998581960674356379518520576427340200387028382996138225092469659385870381305257047964403789435599331353961429269747831143596856562266149204259974398129511896741140267037384967053585887908520499408562495643848442389034257731667540512189806046011387604107178760626487564218415164577191532124538593937922098599922017508724905159566733528032264241984629313738191380199874260704851874062771309937081764324561625240176837284247847157169512707530233103507377918202029119371378070070262040553265620165472593899319298085153667618704231962413731934777776368407676327764562987994420661412522555057976554164241955321140306251557960271378782609810336503593899335830119150259299775037049224765419046192553836560311917681354550744919703304631864485516594236572391126470139848109494424271199576480575803843296833090126570003360830781654108716903806938062017852463573689108286750671963685453990918273764641946899625780113422896443377962482795309768544564502085820342817167903893995210621633019206285195358802142307291519128773498107840128768330391527567638014460859446242405117688518702085798082262690955663441507309084418670315508141566015162151728307255891008883084391709718441091798128754029683372024329408277612937476914723031567549925950366833818212870750041711866132402222749350091928004665321732928427018604235740728403007390778290526484863722615511143621742755839093081414893347369960091064053499209253567387960979698696005240205073970896314191257008499358031751832593911004870101051853046775450320156664789690244714753550330361309075147025740284589396176897143584142740628915895352162595655447680410981963249753027998940745539355340429435732206099261145378219288289092955337967375732410342943277618056673077304292960385376156460588069908307798966670124364184239885156271219982977554874866233185395260990623636502640682247187492880762149961016893958756053206477537541730039811503173575148255759120930869338523633004634223767609682104504409220628062644806900933800846560195237193921600020208917768421874680272895303353547740848981309226160484525932607694805194192355533005418960172339671913963306341185716764079836466217217871537912702292505607763649862150588925695288969397245148052006904841738789201756990087342444105511791854753927587650458785657830237399363041100496453126764623466061195452268914743683539425999160875077047489738439158911505530060236519182646044702268431656429345759400867362636501252259766166818350756091870718871897970257683998572181549301433429440017405860131323875232789466092635858731292639019970678559009861351540449558607534042484306048528208591499583970897706815612120054338494908540070351810776661355217746578294344597101136457210019550193972483954826509130225010759242627273202540825955911052238443706241225037281926852122904890761876631270673793524549103012821686860717272461649856759215575455268757555133449146977958093120448990219343555831079508043222474694141017462794599919024702073037943519370714200788633618237824071314328808045070021118571897793446787521926338322663274809376655534957883216426596544702593781937825921617562981410849858150236023169663210581101621656234958442378849549519302712207568122999271694210990982433752742354638915178556838023031575118838351942151038769971657237413099656849449491788006200404163742456324875454947229272081314769485845436943672092565508722303279115904552949731680676784747336698505031663709921289535806393430736865438912698773533949697257794043754225716212746643878124783461216604699755133579929717765737568368392661104266802672617536252859524532450722686895517983174075005995993140449319829154216878363691705545502378955378305879105643230137745032230992545279438877408100945316120215967739442748461718768540464701703827467089354867763696973539089059196411260783812329147609705796732922589786096533106344400989750437606424666408303306630723736349521174141197106149075441725300176698501214602259433624959612866566203141395433438746097456422937403329178087794871804405242123801921380799728083588510839194559147519250975013713335957034511060364092663699563713206726678200588906647590391641627545414820927852417964231632432242900324339658016571614693797535001638107107626786051689853384941135900026136348177150842700099110587187784226727495204400045043714258122994492878108074262494030465846926086808882043126717900053239449662585796322691870189413847696073138822308084935595368857832624060814271906865517843384958700591047835412273251703807039501790541348040771280219158753386030173884513258255407247030203073524627337748446572197406938189121069276056081608477456653594851465567632798499007883010480181791229616128539058051085649186687247472031548886215008079387081942834166445703881328746490623863089987726474720880719477568289443344437207172620367805542055826983556783735032523162527722639841830037856887940307888956128489146815596488035618919560280364897752472328017726360203675954072428757062224566041399729124817488226444707333483569646950121703518311755714208627671743029549486480739780374657390894072208916326995140890696324269037615207746318108373824879954089448237461418944744167914995018698062309229167829367251548224082238474990692850251873956123676468670288373909044968023266904161675827762045681354190400374925267581845186818815279476669452962329478212198344984903269547861884337132639402186796561136755868523692755724327152279472733077263078310672914765080542971885302059026351845547738444620627110353880900778241670217039046098220740126006122298974560109416142606048646168146082789775993854605889313503510417959891211079679838431039659786348797916869490929834240142798087819336000116334593324056709435872083916027915144467732813114997529206321163633797429927670440464939523131254624687288734915418481914773772953598243062963209791457273291705033428993690660064709671617778363950504816374354635784452178248888474579651203800451256224789599559770496847345057908676214819402918744407748254738180846804647382162728550284607329970813167988583340315065484715749431185008404008778526162206252124423313510790939629871857146898924766077600029315635147723280707190657027245730114253908120281701360706602069020757144071453075088694826081468287090107684528465448767351853302503159328925713571409124827536238453504128823984853399540603622388165122871067154688015639343512130512379330122095310965481661749745759659615916336739078756327702794160947796317022555761652293942826683826884461631540398598999940921285925900128688123661445436759410721527166134730214008182914610592701154161008167170195415759735132696025955512828084059338797446412234021793721909234417129769770671498996495826460297366805227738828164661779652360530963942474384389183649150587492010448496364041769480648565099880605126473344060486607629359351879345587421431685561464678989205447330004180205629232868763588320181121049222349131921213002773851264485417067569409342727316933608328836831113684717328904645814469186486333386896538184295244394372334464238027504473060616591038038110149938172353430626477811657983314970071940173233921115802169071680309101505504832487940681524446932286219369809164587812849427792949098774549640796532753875397639931344745844912680865161105020587186578490169375930511767429512718800480172893657617611191644390466075566365844305911159548238488760767724254021154260046416032403451877989666720127937419047515892030378796614820544279377052813901643751909521432129202273291458140709428374939506479295434985553550302442941258954471451961551691005594905152873705758523367186544684802909627113363430666065759311846942718641962929142301843886705968745338703156482437837600933598470513259012309872056270006115374067975282440154113680408323965618242888189703013466849004936779215578461424861650620482823226485942043282624801904011186799608387418765905605542907766835469067719219483146103262075076905759535563840905414131918986527317157688559655315050580356524352520049644563381056417894158835220156844261466051941051112079981652690892668598664182726773311934296029355934055323030470007063414180952152274904856328593421770634299966998557256226703763917175842462853222121582050105253523537329659062152870893555726949594724366018459079024155255273111311574071154407485401968347194505029420713324077700445462269525117641474973688263207480790879194187151136285368503880591898988157793416539543336562307774440348952320280257695187324344249009601545922570925681349722098373177179259276597197787596990075730812802949206745966646497904441892786938971314887845153212173881485136381485949203832515231141933083922837252688364250415635556585365210030148179566168113817725246142791805023211805751500503475666570516614658623453451484615603528340844651158091251597140883365210162466182839038621447051423445630014256243510571388979133648501361315469242106389815612889984624899631099598135634720224392214802031926410300618707485461226300572223538111271538695842217103640737481689160999219065041296594210423375108209421335956736493936054214314546678623576112932892415718456231869891716552035969537357687367213023844249876742136960143216162020885287826651788873692308759890068883996190942933961804026497341686542786155985315894835646569881380849719866774392670151585728893169566050216655137064265343737382868831922170006456132069418698747480286272037463887057389657824119139721798285458216440752243094184009978776867214973629306964186246242429929599986668865884669333096060950460664537707754959402339983358856419837102396976168822754920372391866648006591454314371266294689179338380252278966715042338504291726233639386064231660630846208334552247628699996245936334282657470409593020575178569341015061845321636266259878910982650516406967363494911036209107721562637241670087658437409625187861486503925254549005007949224228066557339935000243547125332951711098861078227344455015744122501725603936548879305739103692734273325411180650597321244629483777221235446129813863300442050302712751629386973329472674027262594688058608472671047267980994336382653541347676798104924753763359873503448623489012685154396444172388556548478228492083673203843483127994532527874282034522498546791621139749777288237983604286290823972031093232268422506559646971295916479888184289910505049331824544400212245752902517593130071439868011619359593458375181934935238892539106923912825385893781673612981109036915196190506794718504820304459957035309886097151579637296371793031948248464451206360043959998580667018418740668567346923820838141788954614154325833270890074034104176148825216222362897784883767485572127951701781195558755176699824670254379779292991201687100837678776580276208542474029260652989954220649641273223203032165378740986796593606060234434342791701313073125176825627928030526772620209500318907460652336443248316323689557315287086951879902682156331352345589790560749440369944763576103082656241641347384609100710622109867723200483602162273470688889739958924592788130648801076940800536171831461788450933851039362195850055359063013994758357834287722994488526145113271880971357823109819309718095904516291428455690950242168308937380856996482989373734144602857075274086789064478666373374913406917875599080121757123735281762410538215888060309376226610576565056288617059997483007675080025450066823168983978688602984305252319208723469584859230608724305136030608714685661662344574669618816662063588562357692553454945508298616702777161242089376929198210864450327666231812861836467131527778352151778354002061997179518574226026843953121372756938428648334626743325138729460406159009964959876716223636889075471215199229006684148192940671313182289854574731993221896327749405647946910044995766662433902598804165506566559005167872651547555382722797426047868649863185146957760745314704316589269480734810064176016931840445899146831562295329872610658340650445427468965764851995190059398428317210179174965297349548423140932594297891756690580023857078038508597330014414803740722986978137780956047745305627207473340025816562825202270206907715360978540706372109221352679692904634995905684553486025088390783285932588101306414615782879089284173950461092413030085786400027300882235568636311029376884369463753439225705597219811271893695705132785529239501359821485608954747071657146785016346855239081181087813649287368206985647248867642355052687387355359971757687372130573176170314738570749104380049288184280227582933244052439447650654243231174131670383944614390092849069316730808881979032888452149979195743259997147766354168179165195317853245079316294472306897890562415118836999824664855945583288842599656909737606995794653843538368015579714499786777424236424374855549854664803377302955137208998589893727711967874298326553509823199669548631267663165345003713169222199596921840292604446969618897080854620176183076140055389309892321726169424325727864713554448628447059226545210811460458427113358610271041882092393238138881183545607212301597330027812575716262222898721813529510088814408402477175665061471829527945594136870288184707766276582246300419153199826460099419656408743460864909000381627482124527201621768405876295529981579773347530471693009448831684766225415288290523163105583506907501408985593716573608564542698974250204818593872526155635829454223433835310778741504712157022268774523985480344755021897112502199174456155884424191852034952754106446657814929811267859216496404288199084716204669505734273941437903802843462052641151953758780549599555053973511146633530339438385076619951574697179036162360323989457088525018597092440800688223909028017357905354890951280660026069447488409340538045381288689002722614796959110243827685891615858858057502933644746811838652962801139906041021575671637673636396059416470908639922767858015163606064486406792519118683471726643128747351140911953116322068751066032841541690205314753190699386158060587440152442691340702711404800677220528274777405260168745903847617585239657352241753111092375293872795604415203193755652342345229307134040777606028556245432682188243976808724841397224569317985757828789489207299036663985109811441253378827711816720036641087128739073798335120081422210008766267862549613863831820107859135022843290357193889217124606351024258590580057709942128735216836382385619835167338346756842997296297525532964660987595201915387703126044912186345587491197807522954491442881667322180143698596234638563299421361179351853656273539009222801401782169995283660920860344258099623337229555735820449887360836374404955960459552628631362633106622634390512991526364138260324306744719897401889060868905306257825417268496485299356008509485633047649081797845516757911980786506712620741148858361570449030817688218699083792245236992021390625729223668620217337771723648440998283961234405384884481959614094024520560939288986135466568812918103316293662395855342703641265865829484991797216620100382914574262196756662834587977862794368178810932324716751263903543971320456292464360987314598031603760662618937960631695126375287466545071854566019847300179704452823604398216811689189761965890507724895653964333406554196000423203373939051720439571698072219190297695084016584985476028669492928829913372488018815335473364995088596880550945566075105687233446004803367354334025568321294186691255731558015161656525900431690505062065446905212120896712038552347330684203058190376817930984735079978806751980044463823010745941630161189299086507390377124834488055879394162945886796627079653752171602559797742647687128248055160843762576692416023452003015325936408710417259232814857878149939254282311318831934098896709065200537567884210101145831243083312414185137394328974386813615198749869586361915152548018852750258954457783517869892778115316464228699200655063967335228413059569920575676965348835733987506789357186743890199676604243018473069351633162934471345273359371654360840645056778891452050899289545564188006031561791639165128972263965496447583030295993137439229290457648830023117398050300665040670829746032194132044613091438279072010773644478298414713090936525745017567109400880401650598885530061934177687090094209222533190702789703571377835516722356014385632917163508717411198903018181441917133326777830064617755163657003513985928248117479837552090780082601095535213129042100904242761962862455647879761289369603942398952910448717281910242071117085749894498877526107656500694238495627866094086677645538668719798798469867659043348968866040464965021659969097261770515975763094507228261102000021785756820198798627958564144519294120930570663421543746460555786249795012523194004460806296665054762601494298986191020380970122107320806876982355830528999328004501869404707884403443822239961994460867935793948012650723562931659522499142390232485578485334177766493150229609096482921212737059202082336126314356949894146185010416424666158621298255134479914658825729461718365069465928273481981065437103528356610347073105375725273473588753821873982446247366755255715655094120961769397105981084594833852393533234123012072727024153733848368595408210180376426591493879044843323331303248929455696947656595120955751698768424094439247169289744882696933249388682449789701474923269331270704801764235302436806359066325477256733158662725380037873961705149164510591202059726678282665350042941039787136945173115113239091621155135493539323515650245232335783624897503469922819119309575337606697965118961315663246431591073995079935032401461263469423472421370123308947667251207927623571981529912999975576414835993781050330016354405175974775227244520687186744582766259270254562161574051130497815471786889013488371627851020028318107253451137042652482826295775367972342962406209400338094192572374099223547039690053289065603210449340677149429462107385452280088366729032596258416834500539925249385081445314637689564933225223401914666161029717069332962409703192923923401959830269648332994984468134094073964511919421178108727621861729877713088174964563022607829267741462858032697828607895080820967394653261385282211654559956228116900723782137481599922512600871341287967220044707962571219679185058194076076176924457590228647250923135442069349561735093008725679098100454564234306670438928812731851399915952195791941684826303684725917268850824225953606323782187692838014792101330048893586076106835390673667248218346399005361384476268384166615814432138475572393760314021856094030528170266020997896537319729744674220621430189363061372458030301685191392875913612119249063424771491524054764862794051491946105671718183527816063602501753312376766722650620916153420320474587918856215426886745874454355850640726537559806005861765826722042365818989271649710536179743802068585257428089552941187030026448784385610163003421670583003894521693825355036613703424717626143944665015501443300060840316191898376454413669336547332907327561004657514345032674668864873630248797493404972170714962944709838402827083155921821959815770648032915320625782425049027345410258353610737176431761340650447162631198300104120724010875149943969442804503245647250790085161632391603386102699271678314951250343505341264586839285966966093554412887072670487907532671633812171640204182035258449592415192637580711095918651042506938366307079849565706631815550330201653523574357638063107709275699115972201763234069623063536365103721012546095411546219252362140241499972523389010583183972261759619558070079908579538906987353575092041019941845804612061072519525760973741757071691652350491280533183618974629602205273186249201593940344898760355852718477168865053327265346886686182891156742669337164371564940206375557676098145187363758370463553499505255424451563767859511829796915758475954304807678138972482701504878303030876412961704290668619120499368305023973723631393495699566432536604198611497368607643513447977322982965344767768000733384810884652879930970276993823927546523539705877192618697318800278155386492424933436236721477159227237740240257603496621223905879180371257409360862002266501432750763277433899065710193519160812184979619175438090529372619769539746722489489656796817972579432437081979170759677746606100483687226527718498680214157087568191815679967517012827612754407051196699651842668213927360923829328404748128922129434084050737574229291662182221341644798992043082028316339920589513186481452285368785049839503599109558383620873554148284731236259883518211540584295218685523879709839913950839088537588518169767672679588165269086028724929957074041278323428635248286869206798510066272553118990205747344485019355847338387869532668951792138343515480721987103733064219573881648574945603912533383509172014095415035751236492441104793939060307330120095229082763142522013067842410460323663032673199246902128881131082705052697262317963909093151736761474074928560932934147277676275227620138436284311237743375695851197310351815619786035011303611170400500523730465433940095399966965785758337289672317763831861450680069980997030280882155273471527767944017502549641541773623668805099077677446595212956604494805342324774243631221055520946640259613090241732019673291843694794368557560295214768857731526989809585903221222581322095940914002737466275085955084801087753039955891697998419535497608884043081814739634943718275263912186392642218066437546401654332172152359670305964705579902824489395174993293557593204603015485464573390511739223373683371049118556064130635614185543039067735528206496852716191617412659930704376435235480114707864353785841640399792985689247008918582855583406828505016913584588391181320647842941657991697881659684363484897331698209934212600357660857352002275279045305393865009808024340155103124073645886158986120438371701303153145281284333027488137637886982189454020104178965088251804274226291967268856611810389455219735805634516615979071933591299287582365840501398562614054687505989532936658549510034756775426895607238071700890735713857339392881840526487486362754160014466474129440138947227102515443918907875224475472389053665081150103543213428516804320978488026259888470547420030428478060159641724473237442173822545738161512700203130807115851059976053572291649938068365488001451778172775032149902804680435951374075165761256093457573466555863404875367853237076286651736064749702477120415415900818395476932245548362152165921393061151606579190663261961208980209548977058406944923539001959145004017960123913512180978068006636638537401818368271919780352622703581827566754504007844771464040190689875127559347024427769279555253455833142308468384096395476978231442768459330678464546990162328703639471596591005306935661015945841941113901796146491340952467735096444706280307323269415954968633383113939401159030228867521901467876617032470812727873562762207828981397810067016549589355064407553580948242227577038947522692369421847912818590296773769269857430306361369043881655842510983585533235337226674021672459869676451981393959198695511100134461744173406957127607469494041544972256225391322415762739513772986058782324747990492302065380670447020194232359907039849608744458566101937771895816781706205370002702164033267769998093306761677845359890014753935983731770380715120068426234785624756790198473053650466247591882408115852679324625479247262361849230233016141150363299111445413148004679815231692704277786892071087229796093003987723814127923176654526345318577778537200006123613397643486693360161887876222860722798732980514791427693213550578425232075348805072624133117519482832044426487383496554212148714771577246041682346252994886251643418644443433348460180847907118617368900572085184662688634779501156989255476385330242844898995277748571609172303102410151112911417166833766401040894938887657499200304307855275849984226472396784568807896019029668835678038775037619387242199528309606005295259102842474255300989995324678456176430549281425119645801826488439929457875316915744402324449913153753097848040580305582097413594314604454815480562194409868435842800300117188589448397885579049550342207323657869483186703439255441956948721446231982876156634408378001137922158210323150933188039901592724140087215523326037485695068209912107220828933489215642747305426785885699760215441354087834582295738041273258738859498068005074869012820467615019136039455928995761056333420850343640959595826129146478750813953231566240855534266784769346800362095419455114190032370467194158808434992135133132227271577873829342525664559470155969871547521856331060574950628591093174979590402569744783176402964212364304306790057288594127900965508154593878807849320969382966201661399455259488595220335688626056000237685389834022947755574667852619648690344038464512181872571976615224093175876582613526031395420698421443243916790482362338752498905116598530853707683455499287060092207344626676331323159397098837035958173052946357818281673932812045407083488047891379741022738330313335403082317203524950368852231393751075340346155649499714363719311374795397979331161443589132854612421741809360634749057720951657410233889996953031316511945280117463870786778010151787420325844753331318038292012188563204497263438181902689665492865112632848491786906490633297231470946184320301873905721796452668099037762740798369882508167708868382519137316628451926471345799050090812533133192298307850584386243257573276328542165214424333412166073893680544480570914154240148872933993196349027463862264462161696549627442721655245798978234387825453775387872374409368409913622438144397823081248257853765665561985587360747797258634817213256861345547863971577677784668967331664522858184157294297101549931799215578081481389199932296219752251818610066638243716977307097912235133498036185397735117930677828603992243487067244873805873148535662992441307640550239344001295420524854482960134855002875715555311952361049625240704567252151663369644346845600169873405930381279564648146037763610603684326656661348587554439860386353499870843071077900745973219244121592314309201067410538512903242262030195200086997667752783643081371356794409076890828271176202395519112126353276907647365203655865820954507483348190481114944865066620891395380442456524803082685875471535951763627629272028538908217668034910470752290483896259154421402724914093811676622442178244049575777121213261438510384759447893895497760496461501569738603984488946652754601527929853996216379537516616690229288202082130043409815785114180622345679684461774183793451077497748762581480639628080547898754311154028532924607968835659742729351841917345100169378876989102420111034391368187507919818969582776645042581604070519467405446980063128250837744013831737837339992253256760236248957506170964992600652027693013311740559310825091330627363883920350642628358763910189921070976722894192617684728434299436848581629824422110297324165853759099454714728674994658516685183416496393036269929364165332142085970660227728426696957692986913654385502000432033356981998234219130264999503200551165887806052196071368611934216815610966105655997085946050437576402185301011509304158113092030469858057165315732157799749525091446217810450813642065035157448407838268003507109082070425788704164908807336988606205843033373844644468633180941168702592198665148975290474628717497504480567113251250014680793682607246989473977372699677171530576618991124222567766345859417098886053172966260912758506893380544626020261343569581896473498180268058168995017658396342148202829489695649889058383532654454615674473048619210492087885140616323464183425249734437233851147454265408675265540632050688545296167106534720364379770952009727295599589521833220364657714281794515897749645589875071522411784199399350309250070554976729966686920928818707817736757518910961805050985137881877905982131025842453961765107646743170291025459878161281167623027432170954505405416139292120634762455173201467464604138977544837158597775561286996919737543610486489985631880335260258358042449388093565723101943387723360863467765519443477047644753465557315012910102868795274448668459344506465640607066637614818420449813536067208078867574875100104349066186474785823359643945136878305028165632877250982162856456004869710735963400949690436604306537607561949815940664990782442096568748003414540680438520580472608566585978827092367301403903104869032604633788714962524020191975231568852226562927736942112600693483761719717684998687633081996821073823932140290241399044601029760751830188867305752340253163468802740654652748873951704784397870334212102861257731274162788127612497420431648006913394374219226653025037505519993802561953108784365322572950594683713586050669272631545542656033535728106899606622695537518320012441294554803250581594122608478461340840125434134229134385069840957224345537654899966732077549926923750838758688964484816881427602713955087408495893372199937279972373059195924960552902289844597720375317289080990149571139040858900809054641402642552937875327874397659887669369778732411277364938873728619083205709628777836499272231544805647498844835598050791099768432350427555922388576928743343471088676342231460682007362865328417697328602602458782372596508401114660889886395955254175313352746171798897007604248109937126232124481690324257269080961070071358506512124827077306947481181550054283280030993360502281619757640798542834116029563697574639150487039403530422006332534880412544403891777360504298218277456396522430723522658190342190596328135985360505676548720711990092736459184724263849756371357972169974374516773573013738251060410827211916079187774898526922144489671024161753866976157180383038800410548857094282865413910254854073614663063344816978093827427479964127384887964403438140511706591737819709670678018937601494656886642123715705975408264662851208660664981644694167504307491564483767640450573654059539119127142210747328132840522723478047745270175936323366296551307091702174972614821710667389287284293867885670251895310071375021938741400200995942505740041850661255379005745292850196971963792818265427422198957323618940757633697323283504705125450214245826232103285305815393040389868062619878604186806681725786034106316697364386641289662347396974622252674988973828574714825420505115015814822479574645123009689593413754066470059933859225833540489644210534973576267212672692418080124490882579502969776319894773520190354203800223681805780711510880728786573874916761724607005376097308220395980195467348436689882435890962002571388282303975485299576970928134417759330232695754930011756573514311682323632843326928713807271189215854354533345917855921139577088732078421577605746873241239645786504669008299807782910455107515652566304389624206840180889050712901329502106104984814865248440362207370541753355892683095854492162335987214913978598215922843863704203754400712117030823932266358182479922547272137581374428864209546230566128689059088578346031068531674529976196779541617938633931905789990047329343575520591798843109015783564030055872615128681136223448740198368732103982670236691170641518039474957966872766341823777935490004420067640316178893192655280648132385958166945391684938159261226398643207570996006367846796613341385827500215883682514910827694620115451828973631262655727694921185181085386103779005973327978253534603318379170041873832362940916535394775771533577650088631108742685055676542102657661000251379797546150023661696655597436166959455556663624623536314857726844301296787527957017298350748801206034052370577307206559269951688163627994954353085951397042695375061838000724846789848926249445143202837906878627343197915817132820048124255829942428510011876398967070297111142184177327218663491643770648195228823516279634290493566582098076079255016604600126021174557013213475373692863697469583650035475523236826741715060361827388785409542007366540254080524957726003910751204046252953507655166213523126332775533444193739952023559931764233993786393642210823154408444770943144410493381460754460428752243838898616822433494845959667502526823266944506888785291380842372271369577023227628665798411919332659027911001236676417081443587696223524921589169754429373901620371802379829142473080310511810707735987380440965000130498558973794380906921934365399516807632584799705966649682645127059451681326867618225779021830687744833146748231800970670648153808639382721813715998780219779022214845797890710693235543830111643158587459483224819990500043265031433080568760312919398953809957724731783790908316416959186491886067124798696122361042227792402151396435865828034523525164738666857174173268577770225227474403108257273054801771498657630084346101593025432099173069317708890560613112650053009773134764216274929970193074564895782205016341431769428108549610260093975394397958715521630564542541421936718060733496571875045788309021386524551467135539415842668449791504241216692054897308289718130936817555465373972651435733296814940463357946545202122946229754461889552895054443992127088694277645576132343000074789963296511782808395247126962603506071367022161212101837615078572516506887325563160774224843032944961828345257803891226591591153704318631145741281986237011779217734344989047841308272732362042647893313148681045784561988564707888649635279707800835078877088764533185507429606334765435967941888182758257749607945961444213509974630437325474510944668231194255298935981667373513546600116553940824144276328582773576760090750036843283155062207078761751249910678845198515316272160318691379259326169458002757845688303314263006049406403473698289083639536293243515432851692361039919347565789429145018586078709352883655281198890957143294124640483312694169199465029706123728863903948879651281475340638278204203017356959786108057089208567395901905890439701453193360266544274453318144734547394575610868120193435441728587912014729417940211090727840813678612718270433229786711697266990391545338187358229059956291873768704259681125302638828077195702424904966092122713821574800301874016596024669202576410231644637685325075364154906649811800260605162256917558027247804130474068198258900358506892447292913533611181624369057818413160595232047557135742809203362546600373803026729586569297134996018976553396554739652252307185708626227801479827197453583102135776474531705570030269326210833293338029421476089184203650749776928013183051984812383695586101077285604618006566805918217791425948534322241631261313200087776014381737322596720399714384831935202334959925634048379264995699281432994709468759521287881706042311731639569474271418663347635436714517499803558864356117354061925543114810394769461867411669731614624307251230992783601548551875565129582528164687210989710670960766271731367309420976598346287910957615957450571073773784388889711485937046110803563881134453646987194098386443332815290107658185109506397511653206614060921580088167171595937831525514871157178992458384700445300935536858685242634752280214072788704986500545647252932450855867344695203352101830860487626317385068355274482545882838685290189941827576666562198270456655685648005124459151629280786798449046155570063074198879864947123534818360020073341722511367648880466682750089020324921284933798892666268748502932863012828280549234737339765685268445639000225149538518508379022557348658752032163782571767527759241719042365546352878332950479855937696913984881735792093513874839525293372925231472819827563330040729554074150210426704376935932245133400575541718354520694155856832784891618107445028431585628193454113411797628401454356002068479977930347319405427778202453248257206400754831976686860949786986684290882602163582441772058885369808233709406768991186554495986365766570762305213689436571246475514827452909153489571864046876767343859992926655731665723916288806257589599951845291543823615893004474691272272873342656214299030999767292908292980722492608559558411828862564644297013801351263903848867914550928789822559465995204338267199441510633456859647062184893531228131344015876943671971303629812892618284315833493756659770564961611933011181109613408111818938705571029809009299890410235690222724157663350820800874526673805999931204431510713795732869003916227893966985489730369865202915337157361249515812449698797389934628388750526418608820866287915224034755073566223955340617755122120897891269005425200701079151115761809659587505411088941205200079835238850909104497063497548568819047571213313905617103268242875259739630859724804490086635028660947651835790843370014960535316119398379630564208499414572429394958868265178468821005141998725498352083185582604455706904607054719671234807240842454843946023479698419605168158873430109211763104820918538340266000288461110201697344171156083564271058034802079943113980480601838526303170143574913677776806618236026428567898322995879828870743072177084262858232215372327874716944449913673634805893124701906049087682748088816899152415773716670481311866664018157929524969249655282552177686295366755331206024301745104865937972495774125392537266763325787466308666253904222322596410541731660143996823316632090358985124051010595538003131714398618411818528111227069110854574944308401557102559404820910121925992653997549668177861020436112821798516323920422793985231128215365886367613495668912824242534374321373491541465617679885037680391355790202539620117905465751078219973996270822776129042318577532759311444489308641523074995669857016125243609663315510390913164082515165914561379353749641757369173823733506742576806095892768408957509550226969959635564880859267168754888027404201518714457798519809474437143509460629812317182330086267863295926519461963082587498300372372556845018325630139684347912760527158457229117800099163454311951298603157761932645647026449227092406670265071212305294527923164904782090659635192106130874969349127447927533422810968265898389941298787976906778187305981051939420722082079370536441283355416385754809443239908086859112519629325992020547117299016427983054590684059320477768817315144389582149469073025761013150079849860092734792793840166956902901869923239358217643574562330643858368156007549263830016785583197136662114122372174792570512586170980240756809375395825446821991167903175124432395504522329737989041057023931939280498619752485777692996788106877361225103829788058060729716169768474634619730129559322457680636086733300276689092159343948192536028378123322729646152358259508181503344502182701574947976991641724821862571397378498337498617461525540657223654379565620549067830541301262075359340530412334999177595287336025331355853534925715620106629199764499998716255269375774120217281810727553948799338828583001437060901598064190911574621566018275720441924535138727592410185804892124514768193520210349476750501116824127981624342460496976363151238658583685527496203244036040089804769462382715468700135796305243876665370491135298016490739713930707460546021653321393790630660675914833268607472023573067410385017278813641023605423688355018857411486706712752415978197635523480898022224556022361081047109883311891780950760268516749597676530803000317833971791310460724345253790782761905857553664051188896833058826711031121997347326066239368816424863179289019960694993400139056652889148020053021165490808496196752694183503258406833063341762616712859072719430468158236104633294462932489288799975840432997499651709438644919054228298194515490219967127912915939662740707143535483966601583503686940756044194372304712748688452653362096999506545445301299156521184677822083390601900942678922519781678370173681461519073473716157302505259707621504519881491944408985945199479072423061565290838310811819808735570734076350137965298136864062047422888478020127867063929046246342529089716783968626904181556317422978969506105682632567018071459370311308147251619432337370406483074937009530553759735782183119014248201749859271503000976408262314349675468321157738216204363947734347730519871782974108599015441993805869079432295006741492484623597779135214595815375782036735414189810644525633868413781407766670208202011592385317530252711587248750539271060337873895906021720226662817588028787623602042031787152066606956041656754733907609949755603730835795817692272960533068565039842710632423856627008310872206110954085217102405264454157340931690170966009183978800393186986216555239263981457690022935761504525784915216481244597648555879932957740654001372083000996982967834722940651356817375087215360126606127791328078198868474726515737254180241433423067180104068478565149124523797100999107523115727705272529993137005005212193156888104532972500192098558468046134578768530484807083375266985135877591671872590802988458044338149641899652372611746889486087007016928940579787888754567612512041326597452730828315041582359390657497805472023773551514074950152240840743056694619385341991016324957876911595960540345093891223718909976237360028230778389762492257638758654520393515630397850071456770032179020176360917032814588974691029677371994868382613224363311769301254756928084926491431541083935117265406762253226305355256830260645379826227027015085775125935777377755859668279840036888545925403546499447132029648359693115513766213398682985975719754326844106835241677182203248128507338682438794855989504283512906079114027715713197048450566992138979510876979627918813325041660718545483220900001972919232896882838815680451993233175158274761014118085844236886896221616135716078964144283192983271943920555907536361387551181471263779398395652102392059310732520733848547836309462459811037557300659332734317348890596683310909901808743218657985029895354108503379234012259290104451622500035560022954127816989613163523484198763469951524818451169964223075777528009877497544203953839382680542147547353653528732863908761715636848491361783772736727249488251193854835404575433517517489406365118851653103392939551221051823363914683295550061105959147869090382424545297390727160073246753159559144032562602573694166345237483294196671957654236667898562946804880925378432709582022477360416287740216631445994174353817518049300026710909624437775442297805717601082997433981932620959952015686726895891567083835124501707916205125842459595348136743079858543290875156892926388917027180944645036315654702495580007746169133058136102153564742796222786821052796390973492910859208368741014532088357209931634085930709823809127791381784867173763297521591561395418569806656626559441240602386953605665068322981365889650730971965264014956672071689159161764190681936252939851075378040725628184012252187384704691151740609360674141186341772799895631166454903315739328899466285941870795929153114997397259272697893389743547853308172390105629032980481748880497266341276597930885953179999340985498591545767428533580878998718119653173339515577834706104847933488169419640594766110362676838211408328027267173501877268361560526062854140851152899036419056661652445167755752351027787229366867059177401749843645849140810390006800830705212930324068550127974382847452468043649605202978030387020548778065953912083599472497305584962560359238516973671818211090054637657756540029490867865841603025375032623954248857483075554247728375768109013272017642614496080409930816108051663268232758447413740370277929589190488079699267956063819651933174773047079890209178338717596808772752825878601850920890701037503632626494049535111657177253985328422016503747318162010749238550557837206518981825743129924189555017424188396956691588751531943565030097199530830385957507983313678912200253043323736383685386440907241054942889356825819620351622867492294520829493962730871597322413337298271251993637818475337614647967717803210792350796386498880307616129463079393903430235173787868457946693820230770279135354487213576512644223934225360083423120209744059847654799718979452566931504711938683058154465181553058418715492453462289460142261841715127417532217226747331812793775935806357255857522428794915535246743434929737257533783545652771158915138994618442489149595774150463444313543491385376115189083217010607764057691742753013659253584446553103527627730554969601248103548769416169364217681849672976323039155815159691502282251991324995345035746946699647555391833521992856585474210525596371257699217515792491325747355589928564355720113141419064075684682594711280870971526473199778403389239352571803565901885071850342539309140273067256190438541567293227214701313762861957721428012872429272610097893791118592351072607440894203463813935975693063695761588106424529214614646182908902101312870710298383665917671884428934779141658389172746454011115959112900835989078761649743218116463091243244323177578271178305697931515479753551746400817818999256164866453562576275807486421005589138015834286454487420513556996497852027666559034624474826449732266202686719962133074077195317486486289260415574319932028280811136246354117826858842121617563879022346303291724892296274120107352665353911596818708944654442712647510462691331427871638323440626994116999766809522429795514085960823936090054858616263091334799819102898477081704394264274015453917032994906648681257321847876642219693769890963242198294678319289413486671305361829329837664966721774325816640013087721836652388231397985772159542562286160202062688714320601028006733820256333116232834419102387459524336596363266755235581605965701535043426389913686511803102022218591273181393546220974815977890614130415376110975886358032401652672897223583740908068408744549693783396660176706331118969769533495504238426071655307789891719884471244826382762626609177201993652363696315346501983038085385828239294043014188737183376729445686461224887315505089503604033839319228547450716248499219008458208694661761906912242795880039446380774865011393521119994237902422364654888760676797469524908002544375473740763108405004939576187198800602850437674606803622830877932723514206347542727959662805586906210145511675479120488886219451531681627425012120888276180440773984431752819846217070617658790119395441759531869530243562930617021114805307969014068006733634764631682282884145024836532258624427678129771730567280715465009369438226269063373505678971447807285598352926637576541991936070027588516839254229927574861864107466395426614688028699953460391668989752675809682701705552288792556344060671722547059086437399104297359596413075374787474450870309884210433617474135887363397112659519562577104932808368735128065698823385495236286358182240726808782641608132161286842382351513867406577090404302956990636400416428693042687443511343550077051908860933135197839101174458890158966121189642868221910358841810265120304799934461319172228048865650142114064006223833089685885303147437577186471767293650720269628602110048610425485436774735034014053299814513423048565097607573495213140523300300510927397313268295123596159441456959366213515695838506783644274335387265044694405209536092635055993883873124673131297191690020951363070055842057807597354329562901404705316679964606232153983107793938540259825093918527177667550617018137041527489463549946182783559415846391280629931860422067305578365945464351574019682696719740763583613636154774787679702592630759224387771396060165972768435397098688027715382962876785329318998349735231985333985206762072006345814964634408715473067726329920318085981087624348617039127055909388403582457930742493714246802831494833945600372174824847095932537920859322310999368155632163176464228639928761643824227664364404406876254830464565549822507202837166507163214090465861822553430089949242162810022408434146192682932323052109073038958682369770598788848507269355143602178182539359495390520682655260625808436272529924998583432955076719504425766213120518235391164174985082073073942466417282378360386463254425294806313672066991023495727356319201370755368710856948577527997188587578320148847581692538171574031750771375951387750024484924580408715211760029267956934001340308214388662972164098243766619630253691230993622982694513411955789527207024199131492813501932479558752582016673809518575353707622097454845049323867372310466658303415123279991805854763045434974594075177602452534287732356908835427270707407902835023804499016407486397731808045859177534707817127843979529224693161558166207601602423276402108022113196911596205993083925384557143935892030066349859330630189872119859294999910875065551331820362291130063462242769242088756201212384572573341387446427554764669351949027038831281943441660253209047404134981526994116819128050770315369616737383979839666751593317731078245843925350232023963323103743824634392172166572746369427129297973797138523416616061004861163796774590445525501714701692648655446293856273466676143877696511053143474690944145919319619526469448837709263689953173531923541174195323106791255808337666026415111402865140518650777275998406167385287442257728342876558935704476779248367376139887515997581432332150140312993700131217600017849687185335853626889115690720007397264283251046650667047594549629644595476389274536995453243465310697258917958926891503464785016386220542516570001791224721574968445654233574709468976271184350148137529689083343748304077837680886851557603298257704768516442876607338842832505305145677515588670693398918402808982384516835206278525409659729176447692825604101545466132663253124562000049012001260031461044014286252529049683496650733871355869603616713598900495737781381267327060111536120026294771176691429291123166874478929769262778957277156052033369840666420266693348039732597650068113834692652249365273824901132005602742558408246932144880007773160835709506336046661362101795799609814820533214515858203071164930723475342637398108624637489392093942977647965549634781035827547985059189201922995389114720511626798677809480953733091079559426216566184287832005129078989579611122628001567559250822029062869794572587390698926851228547102123827379496162031796015150582543163336545450582872271717051986910372935396088300684992388566158797335842145832425794922129923158994358663937483401574969206797399700173468880849038837538483419822388800240757580362260812099257785203106010310227234790024642225361344052025613964014532652467336733790606024146895031303845143365711997191026570283660746964143470853498051097888991009113232206842132265501324424070626881287865515682564191413382463973669751815946671664166995789205632158614025916031526557986943006450777724912647704768158703178734204333725481118534834240314819378045837866460219867633590371992194180134088471104370215412911424287864720565383922809806826416298985125214842726620248404147619647576983304834250290131886870756005533439425906326398833638017509912658684370944031096478174486554196853731621438424113856755747209618033075936249738494683811652862257220647224441596257331914710352510798957456892028890372948207987413351876421617309410405699049294956994714254158674578589802315806063249868192421798873267183464950012900203670293629694658359830225182526442210886427830277424138317840478435114489179404455408514149506880997844881788996834509369631146225700006630596641304015708608191702264639375051869466965826123871019826665500312230384430197949201528636002466794619501187313860727127472025600740836560359066419695668045370180996491042827804376983203944727882169700143831116438413160318195113850502747877450740660849561684897300947927368819391957181249243897121363748464484685410929079804984820385323942816302228624865552238389942741327271701534949780790869265966940418830717998913954135713997644918149931571245810169222106776699172502925343871723957159516913219084025049765466121101519478841037212789623128231438190048565008963934879836192112933040573427241554796731490331990141915974820564148633037592601527690893587355199457910494837275260119776464609080183035890392552487026452406183986185153287036385810815534547722279678541441616198186982093243293822025549444232817416444145331838131810581195046102534427276197253387108838111316826458506960599838663212009461106729164828988607618800404632655940906040688314819604688364613867498342716497716657255594941563904784822917308698412281957300230496663108723875182925983950858329817107769911247189563038570420927584852209008844569631836303572370263654251141592643872240686667785103292253695535376705761494812885539504031401446347361768146490188140261898046167196549229813765556051526743823595239207294357830846370564529547911991246768474717984361396893736193677928014139654252170093245859042146926699224996345907500246520519899504276229108307423989564034203759375200664697733084602536243834351621341398716468586633865988737869643792725524039867823630543742013527358583886517175132678165439647072435974572624859762207042404656914724178493743625626568837400453125089791389623616106296635090678733497026615198288609705651071611901802229556478188954047099372923954839242012497617821580512135772122600361490018771138533573133406465448928505909996855996416988924838174387691054200330095318695907910130642200357754341691157857403899265470842655153450075701216485267814262005235135393824588470331743335853473911142549748987550487577327245375980717967395857751542017318269015886740712745851978422062943704647087941371027547702447778509422077241128490565334790079138418730308049813412835201238222558021792412238238452804522981490988982682323408557905394325074749427855153165535218688374789779527393577740002014811577690416367031809056717677940548361381929580125362562013814101698297380614137656916354091492826943930671827267574237117301782624462843153101416234238197132023985747173280000532413510506563120814661963300594975817829776564537192242896660859623548448197434443726138544869663366459850617028446345239378877407641031201872840307857661024850014477189942268708450246542222541817881796719291092050113510614833831170259293158703996542093030854150690667061794590130476876946288468044695509766774669032680382553939551367180682132038123659790725279294749662219285580101075584509643306279151058547301170063419319527514082075886019001576488637429393587424747969881594306297032573533704560500581473383599170123594154987017189505054395479017090477075106256153402515051131448791710251223817352532175685161358911853985819604117900333912697490052358174007962155081022552536545000031397253522506890890188699534331559156878760727115424299888861886495303047240954729705289557199395226440998323036686343164609963976741042404310663324659115854026940681959829666412391858385359589413143119619654971528167017003389265569772189001685465793144680492435793601847042292188421320482438520187372125271265916905520435271833405358807942653875612371847577190256726035584793939689674766509007868458736993837612099815316574016940942024790210154168822010712283266459008732728052249761963176425381422164515696115132513763373869060092071159465416100718368406716832533987399046524417598375610550469346964353123232657035803879700608063556225828320093056536348315990107970185474459989371421235633908440050609372830231275562290218189918317391669581733921814608227640810645041534370894793665137871391721424092417994314217041862039483959966246437922653952858045515818479772215993515878899798823145155561851412169466796356990873094913133907310043166459768322204518125676304596153159406924416936514652450377231593527776587011076730053251589169731239429480046794046839569928179757533583073441458096924224124847157669243312540520562243850434820989346279914832724653737225227948403360728582007837127910966649649040831774336400086282664142590959744639683198625139444673694553736251606255578510119245217639538601481219815776282201184593031203847325216348635010123814374083714519815858086611517231774495995103086780225943704284005295925221876344695458882562808708731467205340004171184020932274356196334555807737028382542114771861153954613422213060475421911901377856494793346234499155465918224596670281014168374652758595118557294005383454662251484555808537754887931367425331312519262770751022649387243249092950235752677360022359406290862006160074447269067098757865442982012445804906103140241416899501428551868601798199992586434001201836663197678537178652702709127956765386947900959990812893584300728921971094806093275886437758974241409484637209397320511152835059598590134827207959413088272832172267838056111680056338833722348265891222723288130251191432032101663217132090995063197658360633511190707708988698534744443272691757331369023105007473933594714667498524185363395953525389017991030388950649981151460869608457228131816898168379590322304946573824794340583024528703173130467045083776010954580544060802064725765918473841108484517232661885775925248392860655380212231053288142688339052764365540406659355057481925307874208680840474576944605131704666233605673994303960108514859516480764804989817153051288909181373463752436859450920669419129437944238313937172142826183203436713693403753156712135536120465622219965242326183977673971105891234515751690442374141929794661860530637687587721945380471883477254007190473572639170573622309510378512421343322317264476726153290473784326433506865940877768254722484435879569241777268594714396405525430959835025109101491406518949199903877721234072266028910559120298362075917189381440711662167743173337777507888328782190272099638606975283131135609385263968019532334549059240719338437769458745629812785557238982394429768483686996198520062753592501221047585121629288387852419261350231142835521094865443189917133992275312747356776156653856417767362422522739051469618072863727968750711469432637487134783838317398506057688029697601044573833005911666022745202521948390411136600496634978057697267140286253357479799783257163177989491313569564829553244945221515795744773832409746354312041849703474016884797578574991487430651115409970362056880021724971613027398544379181677590996335646438953486507809608496283541201480125745823891007416001946331894310887633277981887122321006259606872883993616420173553454082922460310186869890567949027142083876669231922147547004477949214520654842572938548078697435767987069432705686311424212554630258481118888997489841594863579055282932151373871410928129583662592829016731348899106838158254883594841548956101995503367788567840591148623975133869929651809650679519062843036809870152286061175882501499532687475556562472615191086979918343489900256042474565530635568689575507848607869705511660422457595932963829792908071415936828452891942035736455071038362930345374854835012612646489154335525762051004336659433877079902689345202785675101168902182289430025080230360041748484955292876926218502775177386518360805994679715368867728232696875991405061000190085435573386855705557914090486392196147901266559053444703752716195713359023189895973580281646743037023374463618632155213369143440744990515032445752543530532094887002439418976686719299406605385944708558556289858972649363683630651720377259948619849204053942117408637038534649209922203198465739208746427524672941036849168694315003326564587414082940805371906779217711582901685685685318782156001890436837191488997975120195237829821975844860058484332160907536451934370826116778391803571217297147468064174572441449256975333111242254520887644211020939379522473026645046644450828744547163754745665770776621194747417256469500464903575005959584271560108747210601741853094010857182478870431809816967002185629472931943574775170809361026104974313715956997567165184915507985253885741549277637227995122537039853131310529270468544125627847993055827389284535348004037691554333856558567438508203949696185906095710706955176512179524166348605550067353069665806706339523814962742049653973300807574614940507804809906444987023946321501319090316831885503425460028677702589920353673658084576464241514946692142123306326362517216399577620831163985199694532061613799181394199642496214163751840926188758539741389365735565344922470527833504929348188198845175481137850180530313935799920793547000724843415969113274348695813381240337838379870443288988051914526052965622669539698779759163768391140968402130587848931757200723325418080267705718804319657737346959556501883680123489800282182494316077088567105149532618893892650084042232221375219770354942246722746802818702813247896644964306359427886861454798748630172289244607858061574818517374165026160436139116695609119597965383426967112683871744882457175494831798901757165728283441641750170785353363245863332885928359119112277149234046263301923390979457150489217231944473840801763325618822327589431380747417172723007967697713949532922342388715916757630414563185195050961882245521305661484327826111806375200649568620098246695956505407089511510852934868883425048807691432482867485512029260234315992673143438235394762210544747906644851571835731805971378790711551329436894573413709918388952609389279470187481623075568282977429531661248476337858248078054859798918389606414786335938399637354253926607206776737434392681337476972996295509014519977592082074219927985700924643902549115827258187398828487559166475297211024727700849970265478523492188997138796326033082190467762567875923774025685847604892378159812341046949329023609639288354993938035635942516951887000460806134973500227698067277635843725648897230010859129332849852837919256797139166412270168924439512129959745610671177100015450253905576154033522356729369222177372842944630477630396981386278161121117420668767945764210424016739226851923017792982161607455138862755325235050667768439913786510313974620915030450302568944232335813029338239777815215267638904728185801666990696843410973072900256790837150606453595518915961202901193829690254720205389796627694718620406196746740818748470656048974216822469778718849156931624875061381722144895957862937857641449928742941055488781082237233872107224940966132964236017532960056395448106079853693161029623610055118790559956925659109775283425867505727623068424417191351483435564206338617736192988385285516689681037382314349039552874450047270049213868908752588274026983389936634862834081348059090150834864838718687458329550306787820433362764340664313674783089103955465502495173061145033576583136002469041269157011631201111171384539416819969801502469179285203348778632880779956330031326205960620683441602427098157274451423878880820878739359953782702275163151013158509216130939091346948864899164559766194705431435911549117118635376111660103015524797806046636389977559669901059550158696194662175878649178762426137095961124985508722356538300704818310717995188397186649770333214220193828451466951767036407779664953335193974807325184115648366504710095138296237176394044729384918051464513978762564414563229978702387742709297509288215784878344535959838675629445798816885116830200523810797301943838886313074645688322752081998513338838590046290173564500831391610325296120264909780638480353736038058078645740303483702108750197383540829294186516452225876889432095466526814376575724065846880618647701483570207505726121010367083758678360444501631794739973464575313095615240754244294431783920932880365128926935395300070639344150598379517466812450726740380239325763098132349484084706397342561049052635934135337017281030338996088675211559240611232268678124276572380225245566364471463400100012281249708504964658690945424583304433631199995184784598026413707132016521558219103743855828457698103398303957689205351571481073419965654531156153381505642029972048358762380157296220351442311455038638156520636274119994562450118662768914857447407894176386236080219501320411270515625532978520944808391066933101018111341801620979315507927415368914443753382998375927098255104740209751568462824566105690824716521138685119720334732003161093487864297105177691440418095723890627520567443924851022331158449431665180641356460108783573358666653794381612084243301122658515100461947132948239455042445899773945055863871011729678484569559263485003572891524152040991711034592462992709515634663102483316457785352879734936478106622251410745122436987700839252279337890746561840909733237373743904440937895915583312779866481126010898299806915110770914009326995211620700948635063315056617741797512065981157085047107158534490017548755734080303502755586551343949692863652078493838947137079316470895484115895956399349611761047913188692088390197138680597056345678517893200344349940872203361821403953844694995010072002082238289697742711645268008661669466980873608333502949859322051076852015775430024637346727958119051286520262025938910929720127729393169186696110531502362827119048219816016540446227261896729895470100938973303609100743404438981812878716926141109184395195959485016430105665608672394004810450164799400156478672290480062393244753314505396633040621884134645318362964998719432943349148454936582233923318442875507571486285125677225170719970269978025018779795773622799232392688724667075163993347144744790373382871046363612981077937953831237015148820402464125655006725203549583492032628515400789157005429342747063723788217044453977309156470527469655006874204900826640794663031711812387926577709250241606620023618675481356548506320040033955531256007517807497088856644807456403806635201272104915932277796394026629827940775809167223314490268399798225661958642325045245270732774935260980511218097698003558033484503922247749921181012635913339312887319095074550820103440632758744586262440476744484233574522657116492340720767751232061430571474583366535242993695201713774550265077556209028447405721097446653813536548690251897096758382231402162281236428219697921828441325160562297979897233930453009482218117286058766928418168461501330835994801717411559175938355918602414096856851661578481067721121796960751978397340412191038414649372087457137839745437717300737531399810801510787790880438986524879863284189182120897533173860353235744433136658293813805560280055708214854054752320254054595155386295423068552281758962366369582255575985321003719650197795155424491988044186546868908845514656632313444697774976136506638052386954911290290169933666367513281657348762965319232996786341250793494554292678286588910548824046937403805092638196480226959589579741291933316904527658366822576436274596627146248804357921535217655833055229591139677181045388035812953895577727715428276966667363132061573036696373218984705686792715860836420530917159649416383256421270249168435064217994939476856215763818084908406396210327857568814793125296362872055190060391808626020485170868177938032604994816951839359361371757695584620765722795880447815789212442712927495498109420173825274155806921575158845432569461282186514002186141210343386813810884019490891017196705697999600111882189781864881943457578033240693205357978119676002669173244059169710809573843895096682814063846417673221663985515658676956818760606845937513392118122564426165924494578287377030930581008880766050149793299686917172921891329493286717255459908628667042817267747564593062216856982307155757884262468327999216528219959890939771510488565737990880038396547860224167695409002055058487408316220130128423390075013360785457791151901991572105248975656217284586226310708426909644674177555220788062424098135033110654941334596851243711171404552488414389287822828868226505238581571637188800609346184409671678298573256281648404753254757056449451522359499628833517121159504356460782887121290048781189613106847861816805178766553888326333979733073608099594698324731118914971922843677423266442958246711671892149230396439544282603502095771557899014686800126072126643378005032936479197207914094921735316877368957887206860762537708515320698706549392955312554215153857699128255738174518854848196721127772690189164493407754794106212094602169517281684297129579555739222426362059926732830040322266063522160835609890377690580250344014075909280683781771133157734938737027771668057854392349923727967852503034274374129210806949863181721339412163071127973390448147652712571248154419318459605392138263328640208973512270228224158582202095373355057934993729152812542809994626688506720110532917237910495216317895271924822557206755209288807376639834275522294616944825165901813889267076061808269361693803354361520047042693814205401070450493520346100376381237864956557597266097322645782552405476139092808488264153738549868372755213710049897896670375699589022370686143439639334643841076219970110452009621831032929253563201893329573238130453638283081174998342244889338083061428311004205591322234475178987906220767150760382727384464588893215851692374040270818117847164770136700561338774982833247230771059676473754652845373443707244670268989643299087349830303885169937071655319712783733551219484981385820075751480054977484789050675118197596404177675390771500251875115037774132189334780146793687495359918271323748132374738491628215679201447488622926717036197372973718622927670536001945200302998979682759031738670970996170192189361505514458682598384849694684742584763038582805861988474680723164545268369218850410997957637407865000376443076903803433224486491382880338592208751399101254956131696183706087457308156317227952742051593244739091463503682324933871423742367300396708473593612962748774559266842086943660506118253431525618223830305368248010922256037337539002583888170697511251512531439496068797407450307229185667985267492171849014161017075964575022265980091772709490204032825943589123118145911730884965381514407757618321338245510856766769997496683309588433265203920115529526595272959723276812836088391872531708450488314722496441832192566024368251381607129460613424364703865955898704987013759762133051775531622347688116223158615902098919861333744942534515244120075538375761208334206434817677436357621150359031149438910674243809816173597530349318776948640909381886530619792507077682073600126400642980640673034422244933727756565502747215100099787979273016897581535380207358712425879268838276062481367534136145595962625159492210282756470974209473463307589216352745471277332386593214883775269050298289611360893279020061107713219959393593836384915611187853359760649139750541678805489656695806529202099132255765015153375137542303581297929833408684851542830400731260871726594912987017339747895476976238861192451209718214671752186213305734899226772261165698811873405775262664081880338989463375587369231172308606400263259415430762324363550105192858104872553596301693995754723430879998439751281544379818407498381484851169582384588234222428111560796019156714097749666774529015976430160765703845722237825019099278304119801807366592485648672211606767347112437755308766613760016375336037496945909941367250292992024026531302391642894722656646091552176144931714981705475876178822893558106195000498119946401779856733795630461155119888571277833510012919127216837059700034203239929542083862080591889352065389401293545860753434274468801526714661995737006938406225733093295031929090886803060228797946453463949412804894464564991079316692076074045186940248350494274854621472694687917227790037103883581682493663969792903532943338661142946706377502286394681506356365387709224716520328463890750396215199855745784222304436634254536696187352606965418642994449411331177311175609166051474584658556841577509564391143039794411920664063224211394916943324129970662416347942491862565101778349320181772280927403133077241539517065540611415668394647703313735984621739598460486692238428805515617707689552870452374905805773425354928796107069628277335901662754986439338774630552505431504201387178160065765414762807268119528975031794941619453803403126633493785411486492816851457244734382051515461352845651917660813923505265954407032734605579246550323292846840458538944597279224575757187476857522512420501143275306151573150489977918312261897226348230413203322445484979900606530531538960531559336109341515327316223814495754555781248889470246845491427234843607599425197651859973253741143884562399985779285422582476752846795956091697190570725148881318287807743024306779264542854114314950180278978071058730088401284475076020462528406131345897115096237630892629399518966788335433402211877969425987584074246723588047849515850914138524221081625703406400158871700429796178946339206847934341557375687245916486076228084913430104607637974376658154534405399278227708215726155157195482985931098048738341387817738374112118718679467414131459437708838314609161493808624329026313671888076151432753544985908575822883446049315253712292899756782066657622672074812285942125641918353235090060039311739626963730203278443916461708486281042288090732495265836131623398812938874495794079050269979610854160159647041072206568380346585193996615703742316119943790674293788921063791050914154001449417596597390718034950045647813683586167333130196149703014118155398963086372814782460350971336756141851446577201063667707586871720576326636260282269325700945087994566017005598920503074712956365051437684529482305499177061770288377708496795869563392843023400150514531891089435643390825105100298534522537862530321513813541960337332326745132629211311699674960619350750408560037363687258782449521926426889414582743823582832960493362508047784338045555152818448254920712989060738656258981641357990673169982857138670136551163867711380783322067556369294734338831156733382757068823032724737881619028987049784821043018224130372495946493442166690740401791153446716382896017112680720876746249392732648681364699150960653352548549051748588589364942112418398660388007214112237942957381478480533827857323293416448093692156566316518044631703282786236887630907141226279939786843779867741995227251242544745834147807221434486135814791327433658059639546475244169299206237174707396516932962110309624462208601449831885122027403880439240758224903320645976665922704571083250968307224970638265279602178018770475603065037753470289465811798239564230933982208570823491242472085903083302963471541868765647959137915348053288505162809500134503823118336721652820945494335187627253037323996186926184696925705071314817045514833310327044310524252993375674946516010326365952326068162951415350327545357870933582492168190260510545134693076652992620434504883155042023708703163351050023290623933117662768635667521512467149524594632458839326870448427417816104000231063432008575867233405547974305499768063333462437784489595538543990954389803010811956714862170185817564588594132428743352224645543323461320513055271386465129078985214143186743727687758149709721090835685990999409371530435184599678683043338819487900888627272925568338519136244583617379735296287670544436871124038981452497656315833400717970089731104392231245384133944227608928368148041763571382000986220966309927094976620939894647939808403241374591532207032679227112633314725802827219792690192830456528755099792147379049497795322074226197591874749918606929845163098785498910757983285245281731790318819253261188784426948546182969732288648272936126313274633290802462486405064371160321089307994697780004827587541273234941705073794847427542801179100104611059320445778683242112038802632934293306196854805913081103102810096106371248869294582958133007440126173133593163792065717432662661786274789292810656159249282796697834161013099296321568796617909965554826182423922126952973182863274973829500946924693210731712075659860997908303735078989233016916339460419892135891270237399037094193500546013172714440048026649914783093550497017404657032644942260224166647497926961056378754085419450448941435202295462960734955886651197627188092841402929968711809803231515385902063850536568641991524459816759763982564867197942873957207796058891514380664818163623157323224766962758850834418148828050363679440162694671632397464828116495930274409260113793027376260331752064358037346725549747816157258634579953039104195592502276009808313307509458310172310983130535489605594251195806959314976679022070304345916197865375419143349731425830271285085821954327810363718496788879067870675722998361640044111159195369311442999440245791122730394732557494720338193443782072125640602403793447631170371293818856018471039971637479493573856096727938142070599048301517836680299398157728137835866023338524243666014781171176471849845847384328505661429878056323646486319190868317059244391111798494850632530088424752528971016266932584222297619818995462465509173615631005079877026426133091739759565615692068047687079290681495353954845631091950115770754772967388273447688337715698522860913794275861160310576757804152655471570884341566275803589663811790667326068645759005268297423509277830524925662646739439812697879340738494991465951725908830134380411236665168518225433758492454133940482779168009996933129680156858208771918620273307246673940487120527804932611241730047404063785929290592370520878066543617026425436493775082643694710859037218706473445252049713299600290201719948866774755334464926887159690271360757717445035726053824976483888319445085216871490179385384559448614515890811399674785151390595329780649118039480286837995535812290626174318414280890459393765731583338945074329354232423479973116316662927192646456162441811937836187749548062703192874143631259755927235465966460740179675084316228347479080251540423233711221554229917590436722534127294193534640583630071777430514339983537149568559867773698605409532090005100473849896212383476831796932576458681171259588424812732913856322663476366115250527472108553266813586209031029454137660322792400757365064031282284509647850473687967756974490463473449699945055402544314109519963090609078393072376903792994347352156975842027963764534937057401576868596308986960298210394880765984838749911594247584460164195227424056149744549795735027871642931230037573604283325240557879127385495914371938138455666409319428190613414468934396150439645298156146226002800229807834976051412996633521512979169362999117112618035079772151828560878641315345477085789854348530255329343300709921314606009329792186699274604383563948612495318809124573418080591930752151023400784428345689767953719224102625893915215932612040162689476515760773595237412989856404169893100477026822056459139838814248794948818278717566335638533886636508653547705756523030887191856755522659019663735652952879585753880378493172050388810253311151767226959118176936005830548793967164799210840992207377456416962420520257778584615303642194537770321971053371688150110070135235792384617871548838072648014303037100326496978528966707394074137495073395489859978020976775605259910626886443416927644994653901078588839998919716192841479540611256314203831542512895550371540601320009331072249675552099569710373056264807348017790862723169328061286011876001354756898843737989597887354676879470050791330936484152070319060346076378019666014243778598013636921926126238065799987236425781377278198750421345560296407701981738012041466437624762141534127994647352570908283697164132947894334859948300737245289378444321006882654707445220434420931958529111781623738341047894620646601981561872027934728011220028963960695774512578919879066814349617204794042796469386267066157425962423208814121117403155012448586816664812733322005308137830035680042769356946700197998153424916596186469906249216492337484428061129065174399663683986455015929011671365481305843747102248656249178027118492016412681489340905089800555792764696782357512060692376221107590158510077206176225382943526191386807384439736137412545032327571501103245910035390149780610434610234764689677098518167410919758722280799618947903928500599802241422108171169314288254403503724490162629307170945438442311575055588226077588089685905915345833099295204662192955564990502467611509398778031822043797263793687490723815165279276497571790917561512403367356156836732229786925324060393434975684210331082169201394557092254193735872963082441538623737642627875712235054963016052698985119708897655761265045312930069544341162456111047603840115562551874752004925920237029861306924710911410446122965168829490392864907545855549287359861415613357941446167418293722598409897631100361446555954373265695626761531021769012323424836441674497715703764619460454394000873095296179316435924941003417546491994299478905274028563427325648395183815335042498534833953739328656291184138331801753760965361468736618858910613145628301738106535316369963945121197360051412896880491104480566390914602499344818737252520336808238577480538356368919983169780519018774239782452174901438465301653628552739856389744448811019129044784408291227057167098631472019319847170390722481273557041066801564266589878482609315400083248092986062155696507704905654933036315322371185584522517345489021076909155513380501754360763806056767116101794826221024294291796178417018175046066353292849911557879844782215851785706053661662487853722843183013407015201170942352160856351460655248802710179103994283254664698507552507273100414914711430591040560386592090918422795237916411196137821706694104462472132502205037216731019517211656513523685931050555009009872871916947901057209780331595926246558399491669695449447347709371904769683789913785903246504283214516157648459941925050396858102117526878290502029199846295995861113339508988143359333288770650660136941088600602357204145792249622156625278027964367815703212268883137276633301334305412004835087242873784445722940239838199280165993603997712400786513106955275879061332596220321307842766679033354140128724149235613339417467660004766202865139307673065183444218015595539896279411838987236359010189901498009556885251559762571491806143605474024145861820724220107058897944694987955795562849087244469534746722199214017371373266512649921625844833290165045881868261677312371418732146884514744735276245361103029115591426843949426581588029755406991704419508142353036486742085319789704799511637283816813678853792023723286166507342343637677338397566791098118569605851868643735657798776988658432783095584273125387485499165640909390412633536718373286640929956395084021872584591339595311816912020188324927044266606312318320783007575079466135157471244016043859306724511200087689936723240496934750289926463560498085458228121750927961577281842228869875178419437897412825765297136805050969706780006101250188188875646159989899871754264793450410683127315038887658017919723160544646338279512669012318105222621498087541443208120215726910668334175489588634337773440443074991928627364069497280686511854814884503006738599704930061498253467481678219215240987789143534331111658006858925554946139640086891854475782568061460812345100255732052134836637907870332858527276566539975547437731090183753961654026172896717499078657638501260007042087346406609618351358790714427613706862949578194698870617208228920167656328585947589470618027738331597965390916085568680757558942866779159962280639868826213320666159838016519317336855980710964780096130494872802067199981970303394585466794535922096178004733284756559717182359851076076025488826588318451343995199024785167433857698195902770253188272048106768936335562574671047761859681218742092360098450219544425793994353501089167421727939909285139682771878041798481264021918814791379376584965771890841069778996732801585467485974162093750633115112084818921730438832227815335415301826637511603600287569204492643802614030208133434691460479239565179442068863113908810585065484686925883362304892661351439702400361762530528577520005559903486217453925451292890789935613450105935229414670577099249199511796582007988446484324197630392128681326543209311582618651207824644786028183452568096728640361880640915918685844496217892849190692597928167012601257534380591029162201190566201047779306854058763430787446984754627338518664243803083439899205115781007704050081338395061022733261103438195921722622695727540759963657672373234193027380053921848780650542840178235063633148558554889324891069286367476024808994988799786890900536763164343808956875844573367871965645027138901381546771937950027794407446578330958811870363370909260293822909915955908843280599643948889909141632488762234128795349448483887759394181871479739080189611428776851854740976680708589209311173991176698870711319504440652111907859880691802903452490715817030030578180684659837276042428936600385689629071264012235664779514478317963056973463114134948474283441094501158374304365235611613856922647507551655505468907822469021422482568516392842964313597180440841426306310040358418258609464154991335997828198611119502068570375019411379247185162894496989690777585444479394367384348520638077826097969696487042166528382443396309659758008599627282883309975263231862040691978717848402255082599364186452964445219482555611248252423672372751329363645094509033783717437585095270680864009595687557385057863796576114275835699830778771664861032914937555962501605545581609696895178888483484035440834704484507882035369206564668127278026511076703218342254886798320355351163500874819776205203587782755152309546515371582534937492382591139554144804090650409965856871287388560058948077686425332288151812461880509647294250783577790148426704890612341094407517887332105584689988529287620510238996242659360063901622477398059102616331108088471693483117242952125738283214909848648497118154028591698025763501832437437040687143028787853692637325372815165353488435729249116089333305228238757702455472292547960114500377393278862563585667354915415897252553457081117347206945411059043644158350420949816855224118795868631400101784658616801893563416859374748599651774333124379277372087955960928498170355237365831027084426418490236449643609868504794768439313756831213902463227964501327158379467308648968557697365764824710032183574784903943800595528104394364407131640306164267980252671963378779517683966237728979860839057285461453761019476427068697368164193409570027395532065257858445156412990157123925685476674598794783351747656957104578080594767486597166703439262009453808149683274891481465181855104674478499072405945726603404479811016479346566286133932343390836854579250455917637667447304971457869028550961226826769715582981190311107464765413254946567443281646741959101048064336037357994946118564396711444113587149487278611322705179663044356733019302190794513194571458786805795338020159190734485496788462521875242053415994134877368480417191786572770735127175383412572518878700666768667645733234510943276906783501813169874221644283727349802477339316538293503538870221401780645670127670686070314199437770083427328313005740367994779548928712306332239529602283084642043789978386834291135068039707636847052850709032793209793219080215039778578256058054955573273136067025754680028970121779044751780599263360722582234746552417731714792429187553603459406240544852575620575224252544380990881580110323741207487785648584081447106627483902294701442436409012175629880426229971277086805912676391591905257749721923776331220105291446879061674947259203722024230692163783539149261911472478116649963690905136927995903732435525563382726772614307326395668008878663073134711438453260155913803685160091712114741028947352093991201285528327320140237201233481683950972417277148580397857692471197493250254085483854600536841640275854910773464659209383976418505736534060160268107988653488313301397363771504317572668212377304290730296449066952235718674012158758649182989946294508892195089550408881677128645031434395270785262922681023771330614707272395376813787818224140971999312533712887166014142128598053735035608630114231256438788683157065949613993469719869409021029107050000850507197867857828430954536259855737176861640050818916808621263869901793014865463908151129851262872160779479209420136135730342167095244583897667174301315659835943050500975616689893162388022714279203888940861134131008524618650475355026464193887566611051791912192026216015393606021156281567318140054437656966708592294634311958140362709261948541381334161861899459217222141117226227574336655988442565526121599200226297495397018842344097019393148444319034392979287226033096200068240108522046730628899960814031276390345343438600646786930624143848344359508765058498057317948428231824839140883341536767217636690372031606255118148557130700161149874207576271682995083488381688508709014726276296529159347268578385944040837002582343502286855616984963823071844423889783865899872389965221487336397260557498510561635223934146846140988143507203699110939568225396547994273855390835642577813063930030854392001322338695289190724158240722340009148415660093926453143929781262360589874216638188135148686747014946347478476624069181179093384028561621306193088736023506606509010991814723222348926238277468375306090866588881624479491287060502548856446146850225439023420069509846050767855620336932023332120629101883282763187248770957309649879704165006921279195597346163174513215575449602894351403089456141208052712364967154535506793580650194146646057265487818006761165825281495406909568982034851225678311602189987882014304688511395325309646355247818801915546280568559880460909005139922792679250157553427165142696446059728978318529490686673136519818532023085139306333511592782898695781990446086569349395146268100470019519614946294756482369967101438801296861755716630662711665363487108366594925046238824901196096744969026126759142512752707130435835976054951258086405772231245526544947866420447410827674531332864189044100953010341236597518679864778120621564841620243978859151085897467241112014636229192691200233935273759400924433367235863425129801836559198105953951508652333959877971685437810617527412604309784434682232733370012116300320440557551849062362748452828993633764125368797734637274437557720239474506660031156445385414294923137920030542199776786190412877161648682375718720055121503029034209462430702920350455728915434103307502301096432292958252838985975095360969346989731116938164847855515619421220263238844276434193095670217501166986879848712952509351977759444825903169495109636503275493272987141574344474724954776260680927943333965589029873869833466396221914300290974660326073521848354428841718662229917479634434312036558767349646682769965026057252550709512359723556868364225234922175825908108431792559660209389301972692210730066213423096348717263121724032935250965153092138317004573714723206579939055499515603253237062294754684953063020275950256391532022248165224764062158989292450180059658784457697468893941208799129456814424567391021743948599131044623943333322102536197975424932037743769130743934050342792995552523176705187198512439619282421651422585985072674022955921593819832283408663066054497430064559845335917976420668169673247236773543995453608717995450265082244199113108541515120073186955183328813418471756660490777419331706217991217003615365183883176457235571366015230582437419141990467943606213847718271621254243727224119218347900344955013239630228595307086006592710627738752385300090838621323567268894396328263718077430612496056977055759148310841486276996813845931151448163495179617987963359099545214115306206813207464097346219242778103576898730538201690790202836869100410596518162328373579888897497156100063168949339155715612416216006443619311985372252981837507327916973864015295162869105773310126097949646198653155018043333364595557050278879988763919236047098140241390641018740423221789299503873145079794549185824296219798576611508410836047670169963134012920838567248785209460440561268847870771529077310046780896655096714552402250220048391673917078646275106722998894265813644302323123745963706038056543652872503054431098978662235101893012903825473861045632371827253970147572134915264334487400814871433854442160019547668312022624541465125576970432539811609894032598817160349944473203610051848584801211834958580037025214557922828342872779985330470938712366207270485206795584185696796309386749113105267331111983720074106700265528072545058303320662726302165098452777128876496478115233031083296950028021182008655629633010208303446117926652332028612761121525541349033795450120059016438605987268804211123391155798158690902792523067519157142554600131418040335320856910461978200709713506767297476815217342811865141244482707055147743774109259405657386569376687664868549958329481260622888956085343453386868251064339862393672912418084517467337320992827942777496004642067167104636650008984644719914827397061342647230789766375418781704222118387207426286829877171828450448992398633471157597145658336053002234049937924371828485601448887440296587094936094417129138979615590432903636193485992743941584854560071805655466721498167110413412210729680928660629515941650435419055495457016005852136281987306821703696589300276515330253577505015049915891362569082755442752419061353550517848467287966122293593767102324319920422095614352934014878049656313648076978331578722979754199327167043900387336052093354993249116695733824011566569120873031699659349738110582398822831796866619508834394083562197313220045184903263158487872907612208379675879434652615258157101125606053417117915895073479641926369400872955301592711111922966378512973346364590388548632378506734166534060551494518129294793383812732396917940573264558315230490622875153411074544708658939707543672823304074221423157285979520536646969287278953270270595104801385892859190244082029545166798402312729817201125954831219686316714868983415909360728215102210538223857476046051500847811275495715118561909564689678428304111164050565188642974291924011749315336473115782779353315296787084466590337298515651202887696665206416592981646028462876594109850910900835357724686817835407987227446887989726712923154000523984736272426099477007769408831445219997905451906711762213624607189411137918542856213332317758025150846178893702744610286015424095248152583393480746633907900445390164832981615342638995119305429380269002727035838392791646139249502450225602932569191510266737406400511678189125796573217608120899078468005667242340142725677685177202725824588476631891005462701076772282145188554639839296824504310235316893469490789573601525658122583328503032414246982452124859870787912515477072929169904298264630472516416374434769820455288051660112991472246853020454685489415347484545637607720946019749650232259969611561284051875629762972594056603875874678206540448362297414742449294434223850862618480561878501441032452316726903576094405179066487612419537289538863663985162961334604639311152983436630179918442861488817293036733359803133457853096756508460697787959885811504462496545122031894329648433941020911558640320356272334620026568392916872702755886278547070070325812954626279769795333060978863874965212383876347320678355012671813160771184964262783687121386655416961131128651350311447927230769246634236983181733735175311645840413062949717557141420548870211567381639506929596670966768306733923316828904496686371165166125749560022357925720106228163286293234652125527240660763412681064410218120385365518036290839750265275765013074915264488433795665751791614057136666980898379813454055764354518313603462943489195609454402450972254188320126622590932363548239034555892085329614375627022526425791011414920149161679930211752784692239971421215167917621898525879512252921030094267214449220499246230930031869329629784182603171451166019302949675032912072807822207105951788634931361554717974124499833133981755999601438691777775217705404101661822055708602478496960466809031372037737162907162564601754926968460370179329587260047647643379006471752484220716849923160866319436909887795981865547641374972345338484446440144226623001742971661460704273548815452250295807944491229453721968289825491106809393428881125256868668184288165282119212953098156705316960263756881306675267357427472500992228736137305308025540486945460584473895195863285905118853041049338072957749319489154092487314744669650165270919033869718757766530653612977829215535328372630542211548493403180510199633528876335869505466344206053277337534070979950268000510413384201904355438995467446386593682302642182424363458714453678301987242330538308162742148516875523438633227896561720510181318033401915431976303384456324523691594981003461976707565045717045518825958255171427686886782056145883229289174413186362482500304407233829854719326156236445392059472419387102794087155214152463964227548916343071377517024487889452910456217981476185176278043116720627008732177760281424108366491795747832695544745043593713590891115942350227825103816958760871352022388746418897603928207637987642542465510568737307193703762382611711723405782185993493550544087788613990805044466912228824025490077262905911623834146328867000536522698093831377540225110183905311840053289026071186081289727711714023839561418444198871519389793195759927886789139636209113550734806846271898728936075065379503504134605073480448862150169534033819264622594865915691452036848015604922239302171374918564216933757732550806030393307884835886436581292769110075225915923318409107901079559662798820990885785274957784662423262581399576466703790592679902059465439958680471795235280614569980979141470959160784714790143050171221670705919528110615871968845673957358780357637747091617406524911478161547411973494978414842052650488477162008892999468095864257422310076597175045136378243747113084663568636215323855799489450889899262094673668453723794265457060134926786384599372585880818383105962090577186470732785454516104127839435846051207668519176993236114271529028889968595736576993431840496816172313611437477320681819970329236550848462572115984923994730334912927487902114004032020958114675166874249132077921543354497545355551409552848201527703650624481498730063298858052374483851120111328640351923058632109358453747703157848575488217565218913704804143352076921868694750968318653611589420653058141826988753211453658918696818410594194745747579540214990705353187355343896385108576156230478610524548886564870893474735187069778127759770474978647561944216895911820749846869719125803266969895629818771683781441476133115732457746263220544807756979415800397717221460976289832140190899745726621715865769040110135033466232726784051963662290066984208945609018475820507577951579911228370491304631000475511075441777340925149695496306525139427708121423793191547290571344074318816898248741304642634490342262638199540269166159186214704075435176744474165513904625579941027626322822121225759674330478868471535289350133609788763782836587461174885161211486357243136615432276989885397988217048399991953294931136930336175814345352388431123347415525420881427048787977774992147642159441158334174387963043202031738428860575072957520503575465021606026826755925663427511438246969326806656924616389831760341430794526076003870831622633502846020277918058880240889195859921729680345337630788864607632905022278141218082558246886302393663834528476033808292297394007083131771949513633969497286656860299670500988043211354036423591235881411222910012555473500840660438888738832709136551818228019509012879709541532905604080682440095443526976161315530393941530662760252017145716277794083401843792766903252853627990110602176392636595238546776592362084144127903586300976123057866180131316983785186495232455358789164618554484125363780521152698903426890870406944574748444656058950031558595214155872205735315361842578599151592938895637372496347303435004882133759877772451942205948343501939085136887154521193748465707168505593214340435713728684809706619233345807553130342050965444487231080042974747215104514165319832209743355823811764326204313516702730256123346596166461363070242857395731313090518793162820511000737676769246712797286665049110971276497886227243167050278574728760719489306795820089865799555276561494975524342693435375570025258752913240679880159012105721031703578069782043574209847522090825100916280943547302456722613854577190273394338756185998132036620376920102388123258118122943213112510700407549557600852789438092879163396396882282212692416895893656973321116597795422035790279511871755368982237597208735362419294454781712682049013208994521831052969703008775401864019049326252288481902401485426006899540021090959504623616676176560178848130740912109563444568193132446793556412427128511979198936852483336818394046594657598899238274517278538858540998797760252112228310087114482050953093423145065055989298414004163892315480243682512340869300931116692900259422958571053357333064863314506645888720411686038861315369482539491466879589519876939725116324063001604286971800362236617658719124514006871548701014366175796156155867686580388837121785344076211369949922159494934764680105334193262385988107037863637939201766111413126439939930601294569092311516968767340119308985208193855854876897321848403323388944918841233285920392029281059654069766094303243554755979508263508587113486544297216512020629991229379985959435449226124039179139135472396684341498615474523719622061960950272552270563015641326615542843332519530900769451924890223757510824282877925658910560230474901758443872034083117513214536134448539057167195042503861331586394991547076391814590469521244555209827458447702819126298654560478841955993541500127957612599205676686749906507113312312072227273774768989481805719651197164473518337279634121149162304490655262719337568884822375293078212974234896932484876350201863808711265230976275739779098074101820408841461696166509859874720251968046432825447158507442087824286777953217420054449416484075619309254853359613337894896383419047508270033531178602755251492578362868146246637700210473312867731785802147484238659156725534445032202700623092188695355568923107995507858566547666838995299233385152840509917168317954847360320758386458236943420583444658132712059172638439864637123402809477232909813717390712592994956786523597926749513783617645197591973859147485395941720434357817559287339224873790232167274816478568432175483488019471335618447908784637458165768817867022015815300648306974682434867051492646855830189978874132988951380366922546506499002012011007388493920996222545313137248797407351369087740129652036225351206467479256132837043464755528888632344327988007722245087686425809158684902175612489168059006465005871916254715376368746910464868800105038298241568459664950053358516219940984012978440876647027360942777502887706892889856624659575306818831283961690281687879419696093604063963739919099187470829554469165302784603139417479695443788341275022217819837557520989168625892717484173778409570676149746922234631079839726664751532044596497894084682385615492260715658208909307312197602969155110111080615018970963351030349107708924485269066501947449544684981148386521733703333796132195470800765777276112449845307647032865520442103852426911249240348286036532921324519995774970131220197580600292484553387987794058440349335134350547605331089856500393090489604527689248078703961604510619308023779657700807411515630760474672202086577724784885046694989641957628144616542918207917697479018424554727563929748400625858655040877156770265300842808440783687227404479853301634280902844183497206540868194133422933711032166797373484844073159719985965261130658855479497662225669933228753344415766565529199023961034338430627424282231688578584301305943455056611666249607014401033645800579206220946793398164474613308658970407161147199921090831279439759797131018961139924826503879800191823479358299263987409591559858757803945250001980516514733041537041120060204356253118575280910739435971989670030356135341127488525497882323746560079898268780785630264101950736386346021543491373189059929020072655999885304767809473273624801794658040824292891340325456678060659183981791453280849759147177935605987263276383344860716909462488325069606033098416459279712543852047982460403730413468982749937444656633838590337252237651957527752487200835167368811799099796091911034462544735802646468098311884941698293027079608488517191103573013445799098017842185230278156772547622902452485507287524053354677938770462859602946176071089179250491115801744065353919070038958496060700653503201115271714697250560322613057518395167307099362237851955107462247258300140565864428815620256915577895758148278260380583152901782666719865177426819953951899244608313211511394115067702307145227092308561856679651365598715699502940092895921053663507558399830911978061840719103099866112113424899195890187246571143105585978061531965061776893776933192669669175781633067498353741954005266982019480172487758454850440119215671011356758432643063197464505844225627403357436852529083522018945674325928350122331869071284240831390416199490420622560292642275364251095648187017868455065942264195999500566155584099744220489927451962255824059601507836002698182159974645971197243867138720258562405188371916488946655471561402738739673600810406170764383555135207915977543672567286025238656731713962179356936934100029478855124240743848377163646351568845671412400223189455110815745947336494003139361474512619001752310203144886310956196968945060813901682399375143851987897983697680091394055222302722100571603367423744944640309246077565628800436888344421649095667152056678479570655564340693952540623326109127425847356226658241342371339471865528342391245513550924209274439448113201129697768149345667844096398191407939788842743263436055788282245486500949446009876074246181273781030819629796493646816343138916665874648571610826209662578336716549073309476513763270926291263773365123006976085751008232266910467427869351325018087860282941404168449189361635153736118602210519499447479781908794256314065999529826276422204839072596952811440193138892405967562255446674473864539878000002412881045807363758137200014515114080065013907935822749331713957297060120611907981717597095621086623054228131273611235722093910761515810124117327542950811374728009771237760520440652189379135241497450879392908542037342404029494339488175986061211919763248899527081095833967732768249534869766601350812261107510243524476133411366998335328176356668661837352942705076447693191946419659671703796958818866475428612842393926924180094365753922128157891606085675650814081170925683000353183128072764467339007957504490996335991494061647473147734578165006034670274823151650033018783719079709640893540244326079167428871276091820110982659268111487137889793291681157102030348609273960736667448342610408089013943010294270899806785441273021119221303017074937763675668072273744232063239087019816164581767439424040356101922390683280105987682513143850542861174633251011937278551366491868175313013009078651232001260548217271956056289755519448733324264998099377725572647841706594642738346054435744705263758170462996138561215383118383855196558749978782778699746775817827465811970975468507603691139481141594680741272225083446828867197463262556720025101100552468297391230299689444516397521919247122938983897562092216200083277484753909703710168856164080309214274127979441458823273269416615234204994826953871573179861986828185727187365593723351073233456136917062355099506880176817823407483534852170611699326526723648929323125560663818625340078690069468033739621771738978632750435576817651202232670478096349792512005922393900289919349041200782674874067640242075934512646383311567607692757481011654308484460561828465733582499848440931439209507375320478424024260986976606006983788084659344916642495861250199074336939369949691537840859370994955984916060674015017521433193674725028776489159834579570643019290825651204741624639264746451099091657554266559383930571445926649239920603670439706881208713846289143918104990416595463484574381924593254873496382301781925040840472133696748304460849009510298291841029966123517670835460331850271827705386408087416962420960576259319881465007666819575806630052264159844661110890843702421569436236341744888014897463133588524245743265610530194090137395086042393690674114120670492730029183070605523395263541223159810893532711105312180373082989623130691897537614051594231144134150797196601067380269421670960655870643621035181021238982915041725176649366993328190667398537683549664673727710039148812703405141260680182416811893436556774396558089277563684031079578247419713401082696379083608993749408966463612815030172158314260690103541356658729367030031112243357214090932945908873098309188408637621742201441157523571998966378121501745685407156179253497380679533175626629122070419493152185213404459830238984955521845047829770895025277575015156575468345318679883915417213912223813815704454839528719356309293916281371006223086476265983153266635612554280761457551931012191334876813173091231704987975302145962126901032416630601012815323475198916727066024008469578901699267582615875861905313623617391966772917553313816854437019861351642585644055088746370065566737234368688987669386369930955209258135610933373601500552945014411449297089229804309037050050001080770412716918157504711656665784424931106631729795794242101802737338449633104563651275893215459064638477417135057629389347329206056707542105318808050829424140483489084801178708768311140896907694206745789461250987283807323866893570639565600764418254984684949896341238127318873665227719723199355460257781634919791007049440361734258255219479675802881387170370365832245623883266203067165148172766512149151715534992210219501594268869615688816342051882151535519174337050474963192280962154571268946866210498336239301103891189536545500403759212114168567237170470266788586905184571307487168440580115565209168514663115353018949050176338763764942018239987313044581783250698526821421228130991940614159540255055311544240968052834871214791133834023002084511487813430910251603184013569323402085371364515993198704277427447358871652793297211664419969914801587759648567170053459033184276563587461115401260720883593709201167371718049183960646608007165689217528645281534136459111604982441461237466190046866205649445617664146520394710988059591825571133855281018263310989631034968874085415553298383965055892448334560485795413449299169769973630616503069257520298803822461776300597768489104844067392766895893202556145063858197917060240976088045035287125447854045368798071122745405623275320309654796277560054060366105459417503122431986457690396104753671341049481364929705000724231272892032591650642322567747832504967140840075837022495763113987381716101116063962638827258276595480549771526593461331185687579841403218519091921605085953221030203289820335921208479120708455847892625439045455548892475580550524100644974152020650334878227044760279924899286201084671587240224559658361078925425012984991477871908032930485488058996943675346191805981674476102679510557214426091783582411523498040436559367867161898131024293903836106982478846677942363061390602017964103486085267795695202040952650026185409029167027622525262213854910613331527354129567077236049153185183503894177587121218621439391706260320962456426983078741295373913693247038855236843746188383307129940025648362227474109730089821524467320777411425978462692810897453394140526751215269530754994853165065502190298676896809363075255260919266113852344055231081909799240335721986798647458171917318156643462170535761641183861463398398846931836117346595828798584384075328651170395409689128642218363525834439071613054136308497385011371954100332911248533193322357683054620684626519522632597239807094259139472722954465986933777102363232914004442071176138109408220980808725478600746177840009437473387568844442179588505226312451226063504595725260698509196840660300737726290999293134503610531808422095848911990045075299371991679505001056547317193204663781759917460239607106487428400899659514463399042768714212793269180611729038263281805937149189260740516067672915674199203662703046050062582849983508001170327287323578936128556883566496418917931342521718796770857739756584275991310840871509892972139917362312118571095787919135789127602451370470638740832344206208665037612013516004771610498246471780005081912661820565168796511167692583965952238531311660217483273760966464405602084904595912390935544452106659917164310534164600025483112536208930098191195989897998419481683866646169574641861763098049521649676129450632398781217366656685280814102256629838790015321630050567109050576489640703758374901604383159789299179656287814943822946179561517741858730724226766554008642792039630838034408151811991152970814992772605181215592138242929339311762582747046514621652902100144181472328345574103490949178568939677308141608857291779063515182259393613472985225583114908123793932330225441445476334536033731390318053379273949475617382635786450903837522184705681122950699937958423539728410969249391743925703877180871228497556677120591742123273267256101377665655897427791179985461112414467893409959891498452436766620301952222569434147267538146214860780385598312086188165235357088816174866165753546869610746263828659733759855508128412300090840207801502264686659183415148725670162579134722112611705734858216186213905274381700408324299251574070246190474561675955860754613853107232692900542950089753017652990901136231695809162350906849053878960099850000233641428982891403836667424283943294852928329220011617993320986785320213079814986133702751610715855685587551802495590102398994342256558276655468692196082464738242932175192847882878035015667851818628366297561083098843285239510276671955430793499378640714084275137170486227845446389184664001560722558876069612306319466833040824360092013336870481726317090459061109252409464208064568234241892670026625318728797874559968647985411087071663890978461055266382271164657218796317662436416125894223101782096154450840028530038982406585544546503034600888870924662328808786174798006318826480054573621497241400232237675579701293041382376242609353578821972372954700690467839001747351620448515034477334749999271628156190980885861811082598266867140023660786874488695225321582446769030960205275528544084093059062968806801946928302564818237150092304756681612634418312902468344201225633375635102000650647961655251388539879984240906628819721230891217298009527828080801619618162644588005804261965104571762089243666764885290817531958422321302455551565069342152376383125573208775630580601340418044162435436760995520296677443392057269743295411397987142280397748342575180327524067983683383944283531072129696097436898090284231938773922139299028234701941054452069698414387557882050439225873349188472987954825766440899339084958801647098520883658705022718879909061631000311257700053022880207154052150785184882172295042486061726677222609117798236936959434073915713743393605709180936660779223019552985994405521022630794219781118163087542941601707802826436193670039981235133992245881655223918483120163097042036088744393360003948489358691054847375795480185220920613616481698795004082404248499458211042785080312238598922119007761936898727758098061383875232774312706769938865167402944543974401896021989723539959139605705071928662690559892334730621955704565906760396119300966465152155000952371348525267352929346177723410784939443975881510288541271633074385609531528934228519537699987740554560762510728853837449350758338925522872302305923345148408731926294233092037615081714833235760827418153502363713166948321937298348248459403219526447094674076707118038941105628379326612487792808861201745561116196019940570079416689326480304986175134595001920404655684483938289937450156838549935782824478736591806931969838875291347367350755525272840596968154922386645276502409444419154303836810693810803915989295406463418085527993509276526134685125152666172756305697863072360076920689124797131332042319841537790425038579641642806434438936090099600236435143343857112941504825101907482498665520388379575213502933291459788739116080328975405678745741770780350073272449983107198213749293886523438654994573859280923810213698608922551956970959436424224606236571774090871169424566312204113996472110237401158426202573066178427657263193246352725871862958743253301765988779116547935749791126811290998203123002705479832854504089973330801251187622618354854642142930540455829303535644721966355978984196447809917830622866841775983532130330206848804691244115710177352929136521946047265596525731837989231450209857545685899816913167295380921740043895096957754154865029992749272064841843419671135782602181307872685378400853095732842165453240455540989940294315888079483263727313263628605646463262018735788242520637710321252441428755608422085638567857177250475191628667698060533361570071650214525877082139275344847976012789601796161725956736244194522756216579848606312452174066459614481276383864901415091694704289994678119439105390111656325389684466430748969416812326936537611580215372918607045943893902852331523187162239330052669621786844577694713787272249321277175660672488343637220388441140406519755961131099762873010628278901070223930225090603488802631479754996936272129371809837174637924311414371503362144821844976388755276560459424916901567006602964037085883032158598681884708976076854692296892292083586661288978331827957019015083278359226715032186431616795481971599295450481011176465327931160778531696281273711510798124052905280278695037644120235048971309390909749295637182179786086496088146337808448640791685393426439906963918089165946813170148912263914601804049091438897788165121187891173556345150799536669942804474110286375122777263086482023699904820905820000304111203427881526291633397340740077939429096123418901213710530028393750134147618913753237826197566927544643027488139804427616798093917961589690999487212025315079114643030281536190184048915547635197873394847892780203705939414069810371574023379176801852462708222893783406825228365929872732122992055576530054898588191734024676937469271995261746184055836249370431116089612753364415956228461006163398104556711327852073837152474770748420815094956574666453614077226009057632483238621128419643594321322478056478616944901727294205190592234799314277791204952837176056946281800925674269666213006323340476530275530774096706447004644911030186434739286693661052465495912282198963058512542752204121091497175774933999695720098599157528738243210591256133597842096593093739322227185391020365942834621323812665699853135273639262213296181120264305899083857950721063424709161783224604488560394823091235903277033937685073306560219532943547220905350042899850665844870110183657563766733362719895747380256221775531633224314876250751416793373320720304327492901146261747394215140140077640384370375163667069364049813356323501116002336910558743040662763130714130853527782247712654754691999308836918041422009307478118169618160405063265658481645088014536187576655114318438156015780784720385896615299378838696036492629600426355019397435299037948971472452544761600247673942128144496681212985918564890120903263849034987156189583791067098795638453424076630960509672481833037750428415666432200867645274678385752805948370142074658770138293832558775970087932819840928288278305518699699732233931992617656670789999795895174250695665852836034107125215741669421154082687982749601411111347319642056694665243783617697925790894868180649063776507793309283456875332667165501651857205110618289866157624327864274785751502344631146726560000885107241411538946132953539018565303336226727751986303223873684376169051508591353124326972201257219793024024244293435858477456360022838181207074320151386141184402133579819722348062783434085192413761358008230831300136644616831552249295962671799814928726450303484546614554241261016283030494140713146866473171425112955166191209911597949327249738002432453209132610341145422493751585159389959211609219755592460212813172324883190537275236296451446974432090449164579740479032177189544236773321112943652089233110593925264746788014529616208588482526255476429843278914056836639411329481751428213651249464968882259788397372367552792904749926358543938029608819526919999340886316443261222882140329979656847692137888957789342568277559038057770300840796343983509083657631566383195353091930122700900437528401752227300275110600084995788031005139731051612580220978107606202126942120385885244557286634725345381977288212735051444841094643730804768533238690543107872822552332576391692443960189591251911793579551188052572206228130526756663961454954833212271596305919636334327324559915192884109914389002171687207721662218951212026899765303069167693027045142622787988511581029777943113872120622483084292977079618327115201870119927250643074728976301262892722074735390397913399010071639369423968318145446853712302221371705504781454681894412523348953516198910946616922220073673017882255964623152516188810273862422683422540878847262757070716416689455292727044931020718564394277908274121348718395621660064026729282203048733003365888862001306646672180774658629172249901091026678495168682535333879987974063912674303832051263230130249653534848947181926050993790185800579805197854960213200897090007038084205355002524663196181331813756926443601543614489448244586411734831039938683589006702092464131488808180261462209265768968781944066972343543460667754300358997089128115013162136230558561332209978493626567632472267582073124988437796152200301031413070369556419376338017666196921748039529613445484944568641112976043799019194041779530538769201431904397431996992247469363824512314996658530256223470043083280720309177756423228604651888609928867632537837362943719457554179635385421075521761173359362229301489094974278562697939666641761446067372977995354744268091651861389738856407923413073824565482478240079715703396302994475906482126360092209887644167169691852574829516765640645789894172120372978645839365729895862303600683473938679382790660862132906641824453240581918820866202933072085869573036688638777276936053231991125691515307466612388167427757647249283728471900305219253351414478693913665937163917434666566194422890819424907185528360664022095155373272373849559412939549271938962084905707027820014071925025671847256644758961332585880612700874491978845777743164997773333237586924034451468345324348549797612778865621862558204680309634844977795756933802857090727557225327745089755027929199857922830050609182699441135159910374874398420925731340377889605168894465746756854987607559506129833541627176541593303509214128091875307768140504369144644181446031003334187757460274752215325594719754855954669524023778220266754100600420147369940076473423043290120943069903102636744336770810585519851130938391582310800644542147807026207889578787275966388593987225161203864332019840146023164899574791248851907783112646375020433139373068846872278938874781858853847684741140614802363615359724315292202152000969209895066512884506358898417221634902556970025373818733229118940735778144499736757733281894327857006333811887413934937646155020187635312403479842028904994221177922094061635352161510653794759310213772250563824837006880239478436500911388304337930987084767760616994763120548236481397315285780838575766228910034323941928118467174440839451074539868155029426023495570013080812158141760853890556932951536184347885693303412853862674092070971923391720956624938147583246129030159935662964893259727106960441661197353427915465961357816163689194013992315913871894013338129107251977526278246304481999224417584009854043232778319465642896728460308125335487992122222111805494795870025111856911597306821243864222082073259957399080448361175273573204088521655685427481025858278975152254817718306709279378875877881969695617382436589293010678955612195612676386666191323449922016003786395983704859052531249535344591757452456766451783676489999316336512158774167782241047940450406257795687660669784961453697422884384763465633983380729792019968442318878043972957486206439494610755977088139826217937147053359091627902346853685224221515090603798444937353903647700497240205933585388549943336233712243144173445838829193736768499218308141622834439160809088819937554329842545018612560652673741064263649243254185080752316273180046536060072121992287338487405222428723956049246599766301427428369645156088565367371736424108503985118823063765292072571197971871688540649143039048227006776122275033124156884842145440180442874015012263515616582815213537021620495412888730253663845605250851260238743697087192542729153215482414601687875489839773729790367375645991216963897577478565451156982311464280465776955737259766727949897508514797580536634571796285986210129189783993174129780249465940671486474656039881721401258593329498969251173842052636759958824342783200711653364648152147368553087625527070209269657200399409450285126122841376136228249214781463943971545395271952142195822288583016812101771071520084270302472068956856541159279709754486012467913864476170004099706143104270700360367036119797471187913951390611460195124251982239941145548697103796982842005893529993957854795969371253488586901195208649868154714745581559390961929374658842784257421663070054960146849514987622091955950455724918708633463396981005476296298921677000006458032107600009434196540623785891597927183987590506954319111266066370035214567397823688345290747924406228646569618609583176492323189533047909379482099743194178558866887139734122844566858633163032294835444248790592057998536483629733668121959285630044944115617548945620034792920957349564601654080340339868069945411577649388924542362186947251291449575701866532450117668690201008349627180517380831614089539683264399985538378100155519033905501876549301368417847030109585412945651227463223629620925013025657331015111164605697068162364547665172016994574727215201494759718672833943423576453209514281321681473205704638059336982442729613640351539321401190378800071977240583034528375912571840666715546372050243162163423900564988639830110943341880143201064947264992070553203709298568984315849145284346035938158091887511156844220956934437617392137051461618054160879548351266507822183746572442453927369749723950791099129195338333894706188097404751692602866588333416672339106116659022189281350344773803127438930429084083624437596348542204220790858066676316788934266339326292799106631101797989980500792614116328191375869321779345291421880119027879129215194057727765538407207940653282767583152694695700854467725055914802640707718026322364809982880041959796599018542059302002098912538011519615544490221615684601177616832209113275553538646024473316920573522020532394719174372144887777283254343309458383759456202134904309342617533354354417660609426889403129906421148725707117914928796447840363411438915384282879371479805343458810116495691417576527468595819672546983969111042142581185319446936347291846095775007923163692464981657709736884028058267770704729313017594483894951703707477564523451600136541391064612428673514147467855427524116019001288588994594381679645347439057494189223478184877905953339959304645839689973455091000391566582890438000696795962349152169776481042794375123341136664945961065653162947039064044033358946158553383733968667548587507017673496542777875317345838307494923631316920853498310781532266369472034633463702848578916349758617896410942028725418297185152368190718385664418279736726686720526937251439449330783213338486278793971417053260448021981369670083550301839723219261142170651673464766563589084731385295027235767678645288113556415964427752917122927213832232554580139149462942915949010906745174752538481461682828486403667065087578654670565235142767729095306922001350321258426688965608108371486903445897998299356519588435104372869837040272790750502930419956077973182797397863864160869350611991975474727378417783782383793431845396375424976811271392785665128259602680323897370627072156513055553583113770981491060020835934143379504422032295410854008139966543218734246970193987994674598034028021853770430266041230649020984707132157734147654770234220875088865760267368661142211574625599994550150554964219580239704410417285891730170134723072494748129530460544022981767675763525647347459671069712164326571779280957370626809068411587698396716145156734360878248485771507567889899169852528397795536629300426253349524783169395077594826575978494207551661780057831591009659949508050567826577321366222384444504754935299173216611884204274397375854874513104968677537357613900958196425245422229848020648227874422111685079350479288466670672811662071692979397678145348171532998612326488685408732726521355106526243338879023914140548572344274948095982589301677826880349291294570325984932216119081670673359047458073542648199925723291745262678571068258003171657582839484334791894274455292120830665273163070408478551332459807217218116602224863036055754747699634967128404564840773765361719461521028655310650101218434818778823842988456354252864063313973024862189931884248070032884554999325835282918324667024938923928694905224790218787928191468224076052900586253373885268474486932723663452332304683613589471857045221355092805595888434069337332337142640251165099024676714366708363456235551351673588584664972254760254212186158887258610824989875715716439504013198552127565384494968087950450969284761800439754827179959943390937733694530360953536384000909821257181023553217560390169301146722379576858474899637723589059617208638383061609879956554154864576401475365780701645271240240908229383777067935300215503040546066663776076826164421141832762265290258014210806036798146914625561765556058831262890014532616629815693495186886159656114366864018833497329689154907340973721998867420593607949413226128396783176467027694601581298612909597726761441862269212938003118915332069061480485177063181695091359934788272540428276905534961539516900961295076484456923286360316110794264118791265650118606088816626838285128469189304774475949031785944060096734370066471357408811089179438257401958583396065729887547254810705576784902252630773398096484403076450681204897644174717842874570183050130208399252371584576831144634323145977866590696227738771831532966108009919385055720438972365322189567331629142366525019479310251168108653849965093545852514052207757392474259478095908312486520627641101667417065832544494651829558336247117831022199647057714232664161048006086357674202833731376325776339235461324657319629271436427975304718531687080576671459036632544533011375688421327773727615010749054761685636523484587519429236872508711453585198178577982761297993188259092410766451004807506309168177330199123995186385226083302149620867369235264857650068428408333071638922900214636257358941270764786930784013362849656230563377651846010463555627128413652181466589093531123089478149143137482956144911170274852639080456873316190607168477433252381485734520709831530630405146115173030734010370792751710004998539778423954553735178747774815722803243464140358605519900329677414265968703447688929969588525094005759573462504697909989786017227523643704102944809020559199692916882484500753598624208744235084392873687343524870854871528939441242601554835827949560137018398464326409081490200918772960783751460676338280315611208341829682949907815166032844037367080040593988315611044242365758746600011286436395030139471668972448473546742611085836100514276015483332409299181745415899080616469300337020133002323337518358253013760871611544598448848926739527790180761866109124891247783900576030683255952426567324159354065795947606864975760120945799712648772069524959040286186831018208770910189503882193665935733550999055934616159793906060462927139007920235411521881034018628258127012387458890137067636170497280069932151481670950992840341769896311695244411684619906700245762365927956919943425020473650023195902271039918442644031024788509562183802069469347033112757198175381602056796446152615984872007953363310657814172857165942990071109679106385048797602525253844868726730600936729054917170967612650610260967539214502033514450757824516700470485115281567897810874421323593260473934259053543204576516601913315945883906504602145927886147159779073455763764158950478997057297319548283774435777284444706570794029936877769588733649993941567558141579356688608643917806924178050363295612064661622859524087185833607540057533661342028839472876504970425838487901796822055777656507742011739888036386181364096761023007229704709896322042127636098968215166295381030690255081183845893395681488466289341157033703090622177438678607897094746658670925750887634116811920859338228828308161260345780949039782203487665874109664831946163718974682711208175212706212092445625676682111520898609055922247570834899428079763311898582140079650981091865978806860806831820805978147275845535518643065188333120330408704469728425729035406173172636028716539364351282125121028347059185975696443920091998441138014696938154043429543888642263851876953500416300675258740126141164191669042416309881781905181837633910866410427994740569266951128853669469214616319274460177904010267309480566303059057700187345067577274093016990965000679470950551665747310863016059009460490475270683568926837931435667434690183190245193938771972881334809935640131985232973731593513383304054552520820999148852907311179618716673795668472631874340676927309260528099612144465339743773657874738752489995024410215143486874798178194222104781844852444491665929129107055724317538506964925977054130095091400510966573490951463137326629703577776930781031075977800100892428881917626567864656022096600235951080100264130911030249352076647954425570927004801706190156528314379297071025165930514079653333145269595422800792552841025338272808707276758341374230665563733265815951340216302517568795258621227862837131379715546846579611236476213345107078955863144120666874023113750254937155003694134798271605297641554588419989900011356627459352603805664643830793271782194600393865895280921002587949831965147615605546869008828720896322549006850047367507217671337900384117501484731770040607482812302688833236645781937819564728826599994212886490949847665210370860108469198645031068218845086036134613529842472645098777038899722095500254704009448786129950954560731283943110258494898676108928916554831921320535454573450627437558612774860238655180314944117617957916232281683280813419419163964550007507995735744503752483921712647472781507183692650021928245065217301419825122955423047615545724128368114165678769805428998717114841522597925767686915663955491297006296823140554881151462304114212149406345609323313075000869545575903990507688847843514693849308698225702123462756464529678079875155505039988459332491029148491459746496539312966326001466969891564699503719386063856820066629316214934021765618071068558188556717048912137158997373954813170752767965154131519184255704825336525746525336404203576223450383127244791833062305724577393623621838359220645341972143286080474049172239645440311940084985749565097927794196605033398683683571481492036101655779956898586516452315181080151295115206134904397256473989870522068831992951662082724091212551288885537073614095534445316362764787618388947360090239569345183923991669410711881284528564034946332182971833354080828282176466132682379888314903943508178549324252571157509157252518532464418901736280846598882784350810031379892427352921511786051719679323584908765677143281033688915156089706845295670071681280452419503956922540434168941485907203384371212385234705351595704323512600665661913117040046482477013424590511594541541343848537030789079891014380070848988059988083277491460295090110495734943210065325135079674096255363915786111719982507718958971672120541183718300185942076762514026824346441755531037440855214889645658503375874825261716803790112277596968771770092768321412649066799377298018562987835059165215267092518422674691866273956966325519745051316300097118760538490206445850844379002841337520818594579438972183322085344156272240302026506865917827719195680674547900166668178409194884862888729089243912005826365895226797896572298392152486885875685588002120917680154192868861695820920263727605776155456086889934664260119080365078433426358077062865525527951812422578824442127084959522279544794925491351382539314072280560331182100567505790413312772916668525165171823247131766130291545172034174668374445927887074339329822442629626215470528944645189083734970095836540055992153783397041798032046245432619155456404873124829080924862700656875132841717419203290659721801273667875388651717540967178707765500377180521926479472923295483778007106164632193136709391495843133270810257037867655240414261737725317759626394674000585897512768775108913507864202837008393284987053980615716133849573205200945773813854064272458284252945858675400108873616214781361182014198558181486062364164537209126501137150666677908132296496450131096822521783706714006643881865744398833233267784831324162139673487340850550893884312665329235177090501370534463717092637331002924458570115774691988938177050321433466875454635200429990226140462072296854733464553350525703159519219485109015733128438212234591099124675680544806696973847601636349616969635348554040467024082359537198227223971183472328647830988246074823908490407049070429154797335309024069160513188243713253964043106231705190612396827093961467573938107167930192659533026191748252911301435892413714574977722032654447585044901065603341996503178268989317250854562143275492767735981950816043552752134346077618601698744211442324707697015316302243884964492113181786760670306083631749754025643587582951229065845974722889112138567396273930052089519650885377930846304149784275144878540842576681567871259029135167516087386149064496160622477866837618835886098847726843806944033599658616939073165652645653262957772275811190321955883200230732469190386286048075954690398425666585214137996324694449302039541414330656668775933837395026350391037534568764042282987972978729609021510231157682040684227954312494826884787612515963634739615475528562786784846510568835495982686410018922657057791922710652631360605495800525553471158334366156684709257504217981153845511323308378180830108977669877284052542799474390924985633256573954631935414254108330753212130050828562326973728278482024929228618123534807636065396445276509430413894152920935963763209286278521043096822961708868609074932690935829137271289022286752127153261515348967910075698462953447885756000735535896129480066248384475612388693088615105484368988350787473923942089088493155720611101662670391448045245627540110137031180254693058022163606412670116708964370010912919336819155344542641235040221368323784423589180024840820256031553068623911633389770042593394020276086749591429668862605001367627071852920644492489195598092641196134875136020435054822335835783399892275678569890762409470626824265646782904133783203417988831892089115187923016251989918720874356921588243846881158482790847978963653286520688611776899081996434699278865333037974431239069692209624859718322119176957944414924046151986113765463400130414729423038927852078335565123753887650818286007656858104021061226503950997803229766217852654368514988576158745679373187220951672526891290066758205243583242781328638712766754749167482291214417441632426376279070563980114695415229874231745096156689283594564672747833396132524686243267888530706870355781567246828415617378012418836371409845238554298127105215288454123105888930442858894261648645149690602552992254205818152766823172093045979890955884583475914026255883512690372032343036545678116263472868749241031201817321419760044350764587199770355074073211839278111124197293309197662978313619018085920734372839541566649560010734856737855344651683441649716619490408208309917751256760481160868950220025562772682901172408283737259988884879587800182513497049189160300356984260180367335288602130006668385093596237884942823769047439682556550006225547324039370579906505837704501337592252425105066338420039491613106378416017130243468329420557462602632048531346514302029470714274006922998401111428040983477049766536226788549838708330440579458139070612039168197207816555437714795963187679360175263284559902490389978297582271337003285182970088676135224261245704569682173395493769887006520686152156333876145280414668238477939202532907775150533391633986880282072896734554232489476932795982698436119036252851508491729421402800351830096103855079685997332261912905984864257960226889552545413023687474246966441114254612797921487755118629033916688105086446765265208375668762904518328204957019938163122090451216335299607882114971716490178666216069927872126596012561960376080373249827106828596940405533758701056296081733625397132343623189806358238689590972872499145449703995459800891029955972245648237941307743196008430586957728072793129458510425945100028711771282242515742981219464126787028860132108001960264672714730627326430703473710627756682854680353244508591850380098845528868158245278047622790818806518103107111660450643797685983358575677882315701191912895107132262197479513111440806241204514850535699227989388018721016767835357837915711301425998206205420583136382705145021670044489739109552112530786043583720013676889210632443690575207071192014486421985284594769969971386634167199681710054522983429486937346422000108483474224413558652388592322286391232870960846621360084295301735188599666579984338450755257275453339179657339580508010331371946016344073968859582376887579497861791078453949989679864721777222742220419248320122766642344287648174656856650615706456065863082772432757791524132283241016426326939720563820908619313291873675775145863691455634486475885165336910890934520259347704892662877724481714364181721417735191488686942812358238687482149305916533249925466148921214373362562573328552362340693577216942131080808229390813419062335879053464630334898353871115170042321566923403139684515707891681817696269571041190157298237012449057298017850537727599264287727654797256193599353071226524945515817829572911402080648249826376564759151888698811596795045224582304482108320010719681188049622791951891299390592536375964902084646178465445158342221564238706375068876575609024046629874050687671102518489437104773245264623886244944637543979450683191840357983680354145697847378205458306991677407515451334581175959708592776175460724246182951418005418406778601581083863319719917880839540616113657328336086158370644250191409166427558178381901237439730592817880562456308337368978752089383279131006525185205103718175620667513351171506904129295201295786223646081203618067678500491290058462213295217667785087156575933378771732717079987558448781133834739612670046846336880877900986308523914510344604441142234649378032836451730422852520043755085407714435724441261434429014089179736999743039534711903674894084906075458987870417352444484031766344289523118710914838439130321404370957875366191196468576769458473208245442331557259554754026575162480997548303283987038287447369972380475413850637992730469844762464137883853685781472950840832644984921763453775495893359934337076173638603627433202005457241512688645401819358080009651397575113838985804958459550577292204583155126664417550769156910683189630238319617230244778400728622283177396537349561030978458448102170247212771650202591745031917947042728098523319032114549005039306127309943080206160895198803521897783627149748583239072074932487558227277518824127459569801250855786323425963749681421075623560519850294770161522643834617879300172427395100028554068351863066103027694418865703618306326152348759383649969367132049210696951528016962455055171358567921433002576345539589600954473677495542660131372302692108713796390225697187345863512266798613093408388161820724914179891067768155568793252964428161046049068737286781203029823437477005126309518768897686340135853319823406207760869534042420701001504468785436935339239005165932791294829306042791063628547043471236237032113992569475388528078996863089533996709194536466772485672670308274837334109277074013427394083979779783110652459186588631466362146041908205514267228430378220962692211000452121185552544616220654160347672619985243427650182562318354145057652315298033184245045523602328070309468716689985977196070504327071080398925637602516191216451745760907307274890109176067707480263504486912944203468329824948949198002290518074403618525456574961971302388340485646216496315304717172399123188691225648675020678545563189924257728631052232589270835877256817357965682284011287033492944025471391612785615776842747990788393100415768652389760905886639540594259741150909669916512924635881126222090221299630309348281381210141726289075031578443447391617624088684951697862810209208250466900345638154497727548434445860289782821434193631578864091843691005345255807450838050323555510121746861095693437636968722249699452563659418648893671799878111303190474088638649313073231428803009226346416288188460183531654582349090716827492627621996080134920485270455708336177515587030717768088309913564700767570942348739350311757633115943219648906641887040657148245797119204803988652890131431529149391513507383300631209402889383379245900088953215355708059789495528402978345583539021794870937755428434130087249905755541810012672988879951953666060578361349538707643328531351944380343857749207532462127464857791030701380644203652841134893803664102960216800675586506854897338103014156791316688752946150784428934624271580969615082009950951648515922511884124321306562721788844080916493288335225079478418972394837151603414230119287913654859186955141988872121143686574953243033521233310337137528009316815109034769218259049620614288084331541261695841040456510716811024489710893791700515911754867868446778837055062692143541016261659151846645033191797386241301260579472129170955631091951148318588584947754977305758737883595515122196879487664025471760959665283619110270907556445545420462730777001353889220746471492402558895870709042602412448820782635154807263719679662360369340025245566021022723765107636941082546020319622256248033483011678056148928245270540571942467034300421461209635151943924812052733485739767103067503641377836907862344035115086898592392617285443734845914132009256044416874292949135713329606878209011257530991645369603442947672299798483769988524852994966231266316297514049966740036237658296743347336750186099016065599120367283116525128471594954980392766963457508489596694763587023025908622483731346005557150083848012318010023264199808760777564927578835873237738353813150971198312136981683445110365919250621669026510385705672890666513100829251674158650078236618367240917632527960326927864053912557146996554726896030727877247645318557343211889318365591992414042321028494981734301528606708560983284509032453719060534596690639957640666571982584232145278342854527891682413267122582542473495251726860359631682507202708977613569619371456820965079634838368338099775965075922764318215678912170378027990526342172506612070781261780707389517503168963111922587924805330497369109570843910397550560676447488262297043720722076410467513451848654880624468803753201088191818042942599810389549235969514425518285207719540091612910579151307994960192046268676679606151440089150538093841874660654421251343051150694262300993212463971604115122622375369929011223330293263540250860116455566573032802226799817688419955424355238296755337742198687997182375348859916867988317246300455625068527580184366427294646597842466152304493622277620372465511149711428562022319957299481108091304918681754389500068581789119782089263752077001798946035280445365114882342667061706263120628897580410978261710427103168837380933603834590298636659926772503613491211324540375223457687808997766217968414590338828161420852822904385624281073990673166429199539286495647048593465963251271733734879343903216296899009050373019794624247855291587160520802115300601052206514238495286881525109863999549881133251561120148425299436791236952085362279982415377431343914203082022018694057244236520923414809004451475566519836444637710835997021630871990831940351587068649376370521904731607866675715330075213442226190170854003629296104570326029537085060183394640776589846735477998684131574651214954415926439358866697079191652783682830866096634227527664022422196701163246371396934367139154934033004178444131950000781736889656931489424275379326775500747795031684994845389283762956113743530259251362675087176795770208570791062278477476640829984196346209738353694864139745175855390525090687017934687465178927629512127374110431013025742834577082410877097624885148230080671304330982563992693623556424534995321895400059454911841500593908765015786630238090362398666314158326770210733435332135544901790499559241908957078223235714940043031609135023384627039387665406353799841803056416803409726947342542660507602183612025754777583006673339038722117441365771146596421792585336020065056895322789327605953161641755567880444761292876843542897690953925500559957179639000923369108967670829332703544388433770683982126828459450559071480559860145561751176582166471116008669751873578894817883841784726318383696595332905940155032818205413114038693576896845243966620766530974680492360834112029304467120860723383899632738401679137264974525895081097306080567893514647126418951818741982965751350136819404126884851805615043186098185661060702737997062106615060803030945961963982691408951739828555377283758789932800872181240719541229341994350441663015379531980235422169881670151157229430920618752353354738029998746642991184612263163460443044620818803759926032642670772015872452814953962250355233795317887050077797988730006642599219046595124286840558872298554198300954085097544412509864563080450882609816212457595705789843038673209181023559503410916448971180212641849402581233937692271901874528605184701547675530360958984424132860059437703436650184260059402027034713375106644555456816404683431326495700537398684846107417149077431813588651705316135727862876621656923474456651134979763161686813955834053149626192627719042153356682212271553352243332317405850223901729572409172450340829086369256960121512888059956700923953594915294599468073675970712300702937827940593915441664354561651743215759736574212570994539918932610854642955547663493123649356607225386086830993724937472428760419475392151298178284519790937134466208498416207329614492205035234037542771965391999318683810131112103423958663926174386680743132901867366208094782452380709969771383487984746173217228950451261015772703763790750272018107945573066581009074581810577545259857160125067699333400434888159440412350637740313433976875374831236248550812694178308237791072067609790020825897970287920810921137607575289075916616462996071365206355457682662373672201541307225719535397131240049320531371320822793519440284016484936608417257858614744107161155132744874496034746207993284831269771191786700451483443988621830699967736747146174625735827611631941727892597605960754461956790263204790737435759241556771516247409086091873043216777401470732827824180380574113819734815206666288893785396029484335130845032066646826344608516472469473845351031006411413056758973430226462891680709360462347859909983008835260588586297113298953786167388877613757856596690863227839461502408772459617851316244896336715655710381773001801505625434150822094993274190559887860320659983930481430596409492383259751858642574623283211102444135751249726273979754960965153595928121145736384038533457614285114953122693440467316094894906282815274750669219464057490986346623566228916985430465428639617198759665485336122539119568126651648798954407776381052656025569057226764413320174263273445147800748434979372263256301502693607965032843593985881120031691310835948956577084146019090076976333063644879756008150683438270533782507191701415877961899413640905974621285974642153269711557234975798383536835517588054145453489056078031518182436134230916239104086045542567953674556769924580358823612681783268665678741606558480932123195440156055955571114663605964119671143473536225396655546642242822980432684262359913021226840078774800428444525760745265652267766238000628576483632658028935745520224276021319164527552902466075638593068756091759677863242269774668150925621362348205433872958458736902145335291907840260227049331695528339208301279789699689344059569145408854948094641751195465076328824363705909619619194044807088854539057647727334590896305260499427301779126338688155453274280628556624750228957010499418886685304497330668896851860994176748419875236925038112499499446027759446327010454444496654455239325978315612586185977624886271782991766822423862258136387160951177384344245443294735147151560994479660817596911636503824159337882073615333434814427123481914510708216472015339250313965745022855650146775942784516888244289519955932397342955823430360359597627361864404956836656321006520614285949185642837916133682405594560577195863423352752484447139171019152390053131904085090651266356961151811931368362215448383869164204716538906368841984416201606677791363808840620912767849953017449426889335570395220391833055273224476122647108295077575477156378624712918267345497717708276955579944380326803396744094937040480424519856684583025509083798027510948079730170844283791546168645814441210232034152501601044009270191624419122063564857849837510305331020456631167568727202870888097813147228672657463176584091463263853382148171723635735182571875345479413131581502907950763697505927497968454265117176994167008626135173665062004071123133598494441397686946875766211414400830350617007374799780138190214569519058524420544559113725278827423083812789390487312291964857477063645030637748035878980923754367311101539217854799795663558108523145289029912006278439283056636590200568874357662877724831855396570609302833196553201938353735307160395805170854012809136472479895765805399557052253387467175453449795839592882841586494091617608706303356718169850034937150289909476992784345377253272711572077848400036600092186540234236851409974021412675664098039385098218331873470593190483205344915969196058926702037279205157118030351322801397940826549631136245700597030512007673168079302418853002980047181600553168060150280843536360445415883288071120241393916610952613910002334539744914101479298286658631264233110251359827859353468170661464714931280947485902836690474654098994742057846753454180732321276422432775106690862009603428382719855497275951636379939535930840165351110792398057674574374864980376095706054209980106644337814929998720435550732213419335434046971444787276825937227956727519711491352293228013546758971382911244916262179943369017354219376960993530828305661527671508733911963931111207179035572633249781511924220868231896832717474900630628177364592137553988348467794644922530481115586259911803121921216328771735787823876476085233341424135802792750077793778818634435373777655788251451635441627973826451272594031641849227440438322130717516388013642577962800622004554137082158715869210325337699477669602661465740979646878789967050333050107027258157468294809341916390672991057049672117491835563530629389657127591962437846755863449581475588401213803541723887942618179187929596722314309275341645923938194672006379780306564122014670079774353354872061975487109575972752571105240305607215264053917695192703690303473895872549817740665047330642813773581689919510675047117537102850395783160082452260109734065445151724909853957231987041184171778155108740862135469726522959073638137677714784823365363094736887861897767684808915862094240803999867643746452109326902477832806361982779858316951998989377950932896188432464155703727061183720424855764206054913013015395815983038650776901803795977414695685375876082445242242672863258752506934268434441986091881757539985645835453366892948203619311482404665502095815629796538972702748829443396605371792992049111493446090588427218520676822194714189234965745068778154219235412669843823837871360149168183061121601670777455310480625191737357515829970800334812252893098031785360065540955862955632398995624973036358332865338757190509832793218006304413223853106918351051321923817890048835303420816885160860483836267380608221155728853947740275281154855904792582964317227867285974610736374986197158720125034451697671640611934458533186480266916718739180851412629145152377013258185652925308401269097505726804440161535619279910059068360531937582485011340572740471300110055728476334457248254813869421646645796689377401785407052488500941535774999949628318892835327891080829137222713366353960446920649270075576008407562202091320923558830891512841304933912815466340315048256017296511658479918913909404385133039903494897644515450722100702758684860406657062999139254233077414350897111070949252073585431532061742123507970204347537258885006643038149241362220268354106750290806603119746635703576514049404686151168709254459411352767090329488679965200826530192020011299501736502514634378049202421624226959258446155387958371147786286465206415576059669847973547432584943598052179065435792351813544761567614251777216301719827294652603295518137896501063057058574114484565664051729350696259684562279568763674891896259837625289794462893041300485716457899608825563890953341469533380807093629806554128244949644536900460406896166755635471950328457662280875623615576383556151116631845204378020093297307397558283538628994505741517155263203036792323282558520907388924668402865410437906551673247805456143855830077779479905332449594986992653308497276697177686851335133820190942760302062154077006245267212988513241250767433146829009303732242108119180630984673181488337193426419169720712389877983813004067027452987871761224857935159501183090569526701790149869892553967823636598631180838345445036102530150828506934469063918722389186999665255340755285143901652466315051674952468068360213067659922279687766718510780008074839327208255579682957200833779949805637598926042320244242203703258755850720108044421251779154259243280884058760969153889667056919283258312576583823981559040397730083363665293898705831437605587673230248807195584941802173407568503879851244909561941963883517246253698366148319279161412899287399460454408491112265526570490801546264600398681019941489577287109571754132291151067810895393650337416356837315981670715234188187478698845772131528321205918804934646068445050510970074417499857637809352172799132757236027512723772238588466696839429327917262036217561190628697981642357760766017544334119982364439907621019152595798004530028721087382101430458878188814272148635110879903356013487216126001774182287817117871337357706120231669466004541331208489443778465054134502457210062478196531524736621008328557485117216723827590308297385006960464104254398040111028612540407954515782293593573039148028540994972346015839677992349799993432231200136849909345015086295864872184715731608158440673593815062497686320974698417780038250087196652864193143247245161022585223842462777350523933597703885591948195000061886982112350101676208719741189914404135692126971861694484157130794589891499026919499445662974752935052013325863431824498859720417605974295907044559356143551447446618281487400376176368529832481307660518553571913789568561531049750132879160230431940909785324474333975510529581393365240446948311751022798451180952796779594809159466350121544495596522104239974595141476638942257519746464350002905340132592504478228149776964698332636982805648520921798394251176812006814549126334044488979106966668430946959509949791728549387649764978002242816305355976440990024601685549200619594564071175649031242560530767146513459785894102367879348538604823186515369685166710258408217730520197773405619281582672571526968623233390701972700219836447695278392653831318560180792031862412043539590557242283487160859236024079067225848873446329340341845689166462061149515022609449220450869643768409129420766158820586447986070968603464763013363461969952897242948203667322734621949437227178849444923056233225844222135508260265906633584903583906026078222090734494100601687429316312682839324324947680130446404045452832229591066670147361068668751884497129751299586088840066195791105307872936598266101079195534570096816774957930519516216380673122131455894036500117573247166846706115601679099725159705222561159344376541110079060063082941545991766231450179679804129421863506844296875134122684702186163465311336742412866593806334953201275472704503459355247388965081124819943853476787696477163720337691217414077778668543679373955258077056336630467006270875540615900601831340734626599384399733365416793845303679512934038976876840912569834542302911850359161350345165997019682849943763428389603151837105663055353415921776798940106833321406129320015651381314581582270169007746745904941390765455802550794267165235223242280118389377514944194087239160682100045502765260594032156302709471799729078019632032715083460749250209811380747090157881831531101996402653347521442070093667722732565890491052179881716288211206523456204629469535705009038368867446638168451220618555359510013535945313545102426494587546740185387266938484077096786440535610754545409361023307603695445004632455068759707549299935813633743956774329023210032585938974596496671558124511278992117223943549841159390916330949126719557538082304207000695738584578672834789180969308388456940108888533215593462848216188797147412630087852886477141518261943547693327269691647072768327986351341178862120298880914919408920425885166602436697365165081155322718810959327686126807821005890079630458179547593888047426554697460411388710096916637119177201628453816143655130014197630073419509695837761996090341259526220595310229401447117633464931432007353122190185496481838770114761306415672116177496252029679528594941844708943873175962716453423036787880426064444749330847524220572960039031358450147173934081182212779358291648561165812722176726178566187473684064980038280807988880802253747488925655816982145439386780434003059304495902556645703075403210257078676473081845619305405460202619107522472768695793356752489818015904586468188777866039163587728809963307922205422359681751358305346924806417508091498965066198886260202650575019946774916424464791030775044909488949975330534854432779441211042297532497284890889400905713680997328021578641218519810390001996978847446846492889149990798512053751278385941533813092312631578493458691402118520260293093541557332542403878083309257342953105175764279073300981713330102667692425881272604861905380373124839827627401826620432055834441567534704838012718172596560217069841093570151026026319715487917813789460712733907321239176514885254974542239358909966627890168992067027690620658124082754581035263133242733481014514382444472019379086684813845453313184328739453598516241477878838994376929639685490676050960940298146453786183669956415887515769401822516244517325849710735568315485707402875038749442073462091637471445943419404098195160705909637925372302550019662320134682256135914787945271820119571030931699195537286697782561633223485802988896256431998239185622382640233149874170818196036365463018351737419564982304667960289116028374483665794365107039046567510357033175555826668691449643022086895027824865482826110972898903968421052278086143878589164492148728392368673604975643439771748392889831207127287390094554279938147660685973483090019243038902439743126092238688938609352338303767596400214984824311216123062948273705951108887833266440105866751996104935622180561475654380144785753453868404131926418297146638777910278475021177045775183855875609900324950363995298082656093864709798008149488843580949427737913232199326316105472983223455184738574876444471517977554904992985329038374474151897876538461701711854869822879047292913064500900502678126685774987331321138702236092331995943432010830877855225447064859254353706574835299643355228409832457631071229825561889882131375765428998359507061626424096131788775874363754391868091783080011242946144763149632181735131513207787210036382174053978951102793044283196109717465872929472676567784182151741007659667811805298735879938003033245169244653926397822417033276793955348377279320684645762559312769660382778348708354398988089963364712696317695037269404211839817775817910413973365551089531531281806629887054181095017200636679534320158119631882919197838176730997701392418321264869261738847050253561762553062075487440025117218850779937018664226041931568256232412242878617876901897968278308618201277254765983267165853926661682572070539259164343074006898608931622099539553251584866048160174196888123763656483864117743104652485296597880176248074596673129253936024316507045668817753202244342463046468252658822665374865444175412851090082802553836229970203123872512164388368149944576088685743585421032359550376640273898466788691223920146287057691300941497979289718898042390384336055058752971991070130771631533457705669281663384026141702837583401090251281542412077440803203219578048021987292293248807450038198969461771605413928385312866259286927302481395770623754401238308334799827517664313997723275839359857356468610871184580779938097942875613029912712697570547689073700964126620363499587554360483177960423855667850195978730203815134955324759655173522427835474100314272461652034455830100581902953640115361505740799009365341795035775823501237367750785283130552202824452906505640043816896179837766784745616965147021239193323029042841230375244600436577182110554179902183192170809974623411331022857278003091611929654341711583116901974714319096632685172727997831564144334816959543203084983597250109064208713048010848896037755522440830862241876606293389027692329060181459616883910166425058987954910319941203396626659155580137172334500928789675903230003038401010210761223161044042815736224010551241777226107534344800710763304661531464370970526929092769850459881333006640603089047682871898584467751751653193000627175717721551563417216143319113733634868804424722317079499432240433340505183939110610949770588695562379115863178544446662219646659086115423757101453007781927599105293668185255845464129785316866093812327651031509251687145944478953692363936378544795372190204252195495922971484072324452768509485566939494734775308067502064130141657835797561957655861369968432120564565069136311115170566450674818490487131555740106091204040834013805525189430737825884834033092195831874389219885691623634204976738231524170978050335315011195557081166761304799500127631025023931508080990589771295992931737087190201528136072118182805403232500364086195804769516114586484596059204167027233814481148279447870841535475563428961093384939109408367887517045630350006859870300272097164863977900105581087933921696379706752968649871181140784384798162213691020420110994976190397616981391539103952583165478839455897300596412492654874802041826043758484325100748877654434430984335781973069493374690702054513221803124445671723198134059009385234787709330912132058085777053939454455767371767585814002497575704385339675798917288996599627098978387360860015998139287265062594910410833940007689617302145277055177314298231464634021520715663194483976441285862633166605412027746351059520573262576481670123028525964682062071312493333455797207203476137813034483756897182460994858493737320637307287824469026587879801462905651656146746249489532165361593467632158204109713225201992827516593465361006758155184819009052729289966775621143310716365295161796154966370495505833909046251535828861182394883285668392216727034575049693351818888179876232785547843603345148403740221883978481740519723946884516964676273455381852037377448788543575848342487309373787266531771624636081584350173982709545222346366517515059474840579077868451860338599518823182405723199174612194712207112640376485703738589371523476860487571410195279340064342432894032888396775372005254948518684470745344169560244400821029570728737674231404956594850979449129287312411076769233132951492706609356374812165773796380531279650413826642180708709701145330372370295013492062277472148166978571776233002273985989791668032191625469232081815340200190162267345523328734334208433241143525426402579418924986599426712633769296830008229143175703538743994438176400890472748166413258777168776169612109680251991526196682473366191044196531142241333344863994813737862236199958683715990422548460328197232934486641526216922796974955238450612555097792620523977600995949201243466117832000081708977161444656502307176420300290678340399554801835001408408307734690947607566533971696590977496636520167936088692414970063432539497090950308721991368992620655255106923994282496003089757451763115172583325846240217785658153447576483094085746240382408140097816719241885309189460818185575061562670730387527332943615285466111557851360633904830852869172565362269457537312355375288548044970736198938270397350577331026721080216379129456327561845965967471825777428747686609874587729974060064971375339208737100687238740121288597879440532662519620933787686719770044259016935130411248632021658783420864503058285936013380262975998321142516504226567462528822432134917633326036406853838442919879344058018657631805576503313255946991116012700173497031957641084419090062344353031886684188438210755078005055004477131467986458638403004012269012767857724687780312636897715760670039620765081325536815144842410699409097638028692777002705295584064097750451676904326749116046952706403673589491292467121422657867822507773353055497424829975555239333918201457711833677364029702553811227446595729880830331561023119209036943014831513005819409329530152977420671382185996161751213086343823126105576663507483970679017126336749206083051936295011122217043048121736959758887278791629142790859768811444447235741193988810731627647929457575722371201632656423935665871640677192415983812052183003561791461601080164982086274428152914243736603196040370807551328319461709244559168213993409831241139078899031667058545170936054501683330359271602578232268186539117840433415106314390475637599088904454870153484326112602410249349527391510792238355795043232340299895838247466919860042429112182363105347136390278631160056788023177327723718405254700427821388854636519972412673438009471771479516156172918690456114466829494710710190989356551870465954727650354672240149143687554578440439477585349220393568407453425275625248948836614418689786268446011956783351130624493768274452720412580237286002269781392942075911748050556735193801627850522855058019835122282838156793790685870464769450325534039397729065064807698318894452425757136870019119988519890775270104484786197267186163416680373313678264497193440376096833093925796017724790774265792946680376106226388490611611802468583892615780495277209823168593498581223451655254941058978179968121574062039224087105477815022814775676391037666078772008326832340356320932538541751151301323131173773786986138046264595153829136094526819219327601506384879597973009096501793188452444870553018459066279024169863333492115963547416471428982974769552931327526098547403360909415203970095444152453038623359644686532680751018004494569028453160442417718732981972323270643979199076361720690802553340885916799043935606790395304957059424297429779843274719724673099114461379329363518219402541995334650421997334471771138496389534861208102791253281743346958346378057393060955034400527087432335202354405872174741585034992085182439072190313110150498539960272936375679105259560724186271251031277960662679508212538070898703360459277306323995722691898878682464846662101449915012143411235281816991074966472539849461204861435638492520178623572072588541189971968430340530387323692965488767561602377944869836635583245260596213591288026117632090291166894695086409318979568672423041919490257724215269838613576891070453325365296580395961139497060346320606776391563177427113471197891650214860306902241483297032824670984645599663728035878030956422675733419970740119734862468937814092815994401058362784018437616866546684754465633424040022178330751268451333820087926619099335514964051773588254397328662065900282392648095278185754506094758785321633141399137959292649671985829925844489652611450730788969358145255200158732570828190436184855436670341549460679847844325025976234712981087339504147369078513045764202484236674429218501254705800702209342772595039856766749554841141594761472141848881504990509580746468700808226954008083815227403630490157460499030279247863823693886871859805686354101323070869937456874538006006664438271719554975918172483178919068142195224056442367503203450707300442118076935900085145498641779499829389446194479885664425591612614389630843512937137296658364645722545444566238680685949299515985990593072806682730156462849603413861852292515314911431541936022915596781285597845296289606948223900951146952982087881847238954388232487879356067392041013598649922645901558550704264496190037735842982202053249408546867110024964702291882588108745063988694144235911235941760040594564673352860157005168256926965121176685733640742725393393639631015410266608087199705573473263460723952119616884843478995494846453224701415924592416780528784398692183542426029195046462435297783324737792395375532591274412539576914077969929484123560455942457373635781824219762165659844123020771814470891189912098468386626010668710828644981281467730880148221778052068535711835771546266683851077798797805038205051511212882123754187410036575425389408771164240586243340790827575813943683474554730140989269643531248249232013973181665487219332113970853671839253883516849767046084389832694027864637116267305431283490241774597696597679911012061867084866279471448610411267865447683721444870027902878290010948597587124586763017011410361210844984800845679167157477069496449807020529579519135336187935105336353517254099650164879153482916653099391749224380358540018361113919092262758806458294618984796968304018366221987664082010491667857999344392789987702131174765862384787474808567350186474189087464800327208276941836983782136094199286893367992179353047124981058783696145981143685367987686569008927983833618038009662020206936934425163607806453846501270623275936011203163117055411924207183790568578640027504734113311831153658367463958840471226121693130430362394009634444334496260422666101371884454470845428820894896586133695522280062268394136050939029539478991300413958821050321421954548014856194971019034602214003211368281367057642485453237251617894267813789350351064071386276280163221788206201033221577618009706228528944351635856456749066170216652551426351545060770575617112254751276652424597975930456907750668065534915352037324178123334262831836017439171503379106616257445181211641152148803750560365697115738209036472192143145736735098204442526935006595566176135999233940964793528547596439880155115832650078688787440423557412520461171457484476956589529470110215323221380708643863152586070311679709524789051367607164007060522290848088058915685323577069258585334152165584249260038487801991077377729362579643157679373233131318335858284615786795416138676925643331908179802148294742951257424601002891036884851197168063294945735165452693814685591044337690382962561726661645166463653567245838127514277245934159836041445653990521393402785019667793020406665002793512124184029319823187968456498126556445601010458532180234370796378395759629549261661415189908291757228905510552944914775655429879095913549229931269853327477118428519941570763770300088928401952392572870376771369609700500811921997111855215084424483409892602634411117739478775368520384935477372194599686024227706320627711932185689780216548136649395303816370142558415615289375890389787269879288691907657736650525699604931096571565555025452904354593666635383487123048610654290657923747991714263688337803353515083594700064711276732311251269766222200651303530472587120615898274415464681928723548915292385766834293444415015261613431436786561577472571858706575169865551255820950219132781075014572453720393251760496136268112004047597941962523945657530125226834514624241746879463010531906123938695669736841821562063064800000929174860992607894188008520333827943792839702720490065472812128585483257916692771702362924446669089987968714314796910616004808241489063040030013674922293498682115472732062228977037835434553338666009314182650731237426695435496452974029878410734340011481966936010527407345300609156347909217613700576121627712489546012698365110338438917904459341411476959123534107595812118298823025356732605889913406622094319153980795281281946264001385463367115753603389925077345883035146314147966296335677924863477270635496289946450992043531032084526080670940474229650299043433318504368997721964407739106438860443936365812188324586612364836175196146660811939809087678030425073598831018675575744267452771962050677142401431495569920036189081028510775736896265710176756087830063489067160550076117568204305090552649785888784406846623030340900949115687159521604230180734539459407046302239521472278761999357686498471510990146226953325686250971494333350283899184977332097997294074049746944852869874597153238107847528561275536874110924954842961500748497016536702978348756690681256582311714896101497781614988822923328333231750842753273286156189646892575072979546787034026680535875827531297509028523325518643148561807199611989742772760701732264199602534799157573215682720646737787669797687103423497024350978724123671752505282685134074590125160350619079941209435600870665472774508018307055759421315226155287959105108648101158666488233094691188883893291708747785028568602051487430555461533524320998899476504925537424421443005880439476342038831484918768637785236970962017818680469954462603568094536279659645878050347433582089669538698073523398956763627510780645600469548735399937002152871874359287754716263654255415109935590189735632985399589323504388172806471657655283880642804704708542271291485970745085604472303860002948232147577615907107684524534937547084363797748175809326036173951437079760190645807294272105438881422445481411292760725899007371259702763404569618764745790013517049742006346675876050894255130711827827091793527451828491389478904430208440003111350712793588725130057685411460427659446259277787203420224276882079227837583203938088321850690069610380929422741565874383591257127544948291838320605178164298549575017330096408190171237438212405269625898015667409303018644469922413969504575668580042599043801028915056614764095749607785205027014500211038771689888637528978142513035176428633955916334912577549043617284759314304752111083009603413199299334825283490896322293146098408542255877494802199056995271673353781021116068435340056374006116583068943527371778828975977973972591000554135038711046300491102137477118564342130545659262813144318918813844866873165392435490011744653586842158129520596303716883771818223948132711306412382158836831176564745518721036435350679742339365698116394622576760641969527629537682945800962213746315397675107098795307432375579851671565856713134695928864901490099518320283057981531663938488889163755470623266959282520902969730423266925097691754443162900107016826693597006731025311143155438057655175778074071875306545017183350219558137246063962631555849652453685412473711867313908823775666215921760720727921455165184071392690440185430391447222817538682735696239011542932370069708161877426178213742941250804586108160415228434377950631970324561049554182623656478844290967581365394321035889763158732520999774847946637705379242335394878498326968004384864473339279475314179735077507408827337080978084934854178447323708424341471427738489229256094558083405861168417026208871973394584741913491994831736058664318559306485665361836066950472833714577928527709450223078637222570453059243400862855009446093516197186531957255993021593469482242380471282722329811085612308548236734947405369355447110895990036561229018939182842699165780239365905142973945451115936716201674294601483165104073992856377574706919348687636482754537911179108916486470120745948727867761428100280603804016639445513480234608718345067571404245675201262778413528666924277890886474349865267483549634833389637250914919232543631786192403128044017966214052482620347862374302482062534204384726453249806959603729854462866372056440684945161051435217031723949196778215995142129572547765389422672800609632032711349972679836929613229464122359374530319151476917094144331460223889183860116907696231975271765586888051348107007911922220274606436293783441618537167354868157654720072683449414869857488202613187720938701432844262497728997181141202781567271741797279022946928396948937561835163843400965049153510466165987270309476136198769234751576665719845697719699503920501328610250836975210509651300416510436553903551371619028500225216653545280706948914804241928508763413311368116801422151445223969951875569658134161497268141636556849756966544552492261003707210033769094948687364864075426763909400647053665567410935605863245673373919958170607099737285444571464544264053417101230567898307686536445224610870070405755031568315690360543466364755444672722957071216537382989092946977472489155941636566456606447059685648980392082161773212368057262975015061739929488943828462549952763933528566402149153611461065079008177012104373786690403610406329724503906436826071379564816488128489436366593711995943815320441038568153652760797415144803292478890515279072217057264936779029915056735756136025747304533245126028893023592117064123509498740380049301302348706829715171031287231453553364038736098608779077333771049615092807942387945649994341390554782917690787474554661472490742536145656016362871346871376042685813487491661895486938104432986226645303516388953639760199712365359589931804376444001948695206968698376916085291762264947492929444245279135345832109432842322198911995231169797828981923394179483534988972513596428491075716592911226295988699880442593689767334963923317215813238972154746895487668098118775980226089562637212282229159604987188398190542427402668043630045948284222184212993988299870224508328297937776101882245139205851327424680089527949247124111694033893447818806492858798666812218501413132321092678998013342003745102589830868823286404621877293653318745799534856327534540767696231262446083685961472336381492138310937080604193413026108221602489070062410500777958668676592225999198634987213450220708011308054414544572426100115484318814581859652585318102322801946409633528786801460625228887115519588953851231772162004064147125691599064881606520574886796067583433745497574527903986468043813517548070528970291018357705829846170650016215010990197532144928888533243713099679638588204435135540857482986831407607500923215594065263615407677539246850578202111836070244449255491889595463539334548530847993112891268549757277528441882365856895119401589532101579997809195310266829741853461134385221007090276804030946515672282015175989775312735678914896390884279123421091559500033064299219255932385236064118213794695429015760934512151213882752784347681369593121437027039624729491102699337214522115129221375247683361094931539944213599368953889085093173122786353329161024270816241077188114469737046097640494706521028722178995589430262923537509962070073521150740112008248170282434082311389640381940177832223765361264677487572744098591416579790969646022588915155709405080947344357836314833462399999284813177933239431046106553015032162868238530429371590811034135066502644914631418119406688440665498609186966273882156803082207778125932087335518523870723590929028382783158326439944400341788255423441440099507287098018314759265308312339824577980007618262054756907506704684468543131146579537721830936676718257668387118747231356201345724180275714692829173932878242685822585891576512077886034825375989470181875204593740365084364082971132174689240027676091358668078010576786276645123758238182871115503543088832175431196348114464552387862784648645588716215403197885946433419854239515773004832100500116109275842097308072553114735999021223708471474237116738387667542671318817787034055627401038427606399750184904630547954705016687759684539385390102269826652209255794565634627311303124960074703321280912850404352465855648909281495076809501560759373259564323022967677118171454471287201711157174460122712884798249082214159441048295358167942906975403157548927298977100716256699085440475419220495707342116690635217234527266570661155793130546548837607170684988300527072381139048378128474079227439544026721907913154006041319534234530166968929424270034156542184530026214778727044875424846854979933264197291748670305728883237760518934654733101151316779364904925229392177046358827534842848212252334310512990039401969613218834819130121892447909539707905522958764467960506234432198068433063741351243801442114032208431079989951495407104610972034931438741915423863142195169487987349477987137373702844995568927651369411387442523427690773116591814793267087759058205964090130161575735241299582516273925612774933260133850783111644522864313682327539624843400961938075127475859273135731004095300007707982488077346041239043791801866452046136111108282485626063494421771178325933328569177585519871001069306626960765681911346085234382661381105214903472667552815581583726284647434996624070339626333087969043850052869107667444706857338111792757760542556663523023579227065075650867961912733264481613924503011631969250045545430966177305324267143965770890700346550056629508744446362357728403500730987931077705558501903302460480218006336129255276115567780464312516608566892705743743695396719230011936231499248708701266532677756016247266329348499967834522852086667648278099498978236617496736190520470787281677896005335940012517383805690699670230448781299998767736682457200687713651180152879087525592786756382700364129702344478855353782938714499385343815498591081835238399391844642903714701252191969424932646944785654887940978528279694713109375148656780071770531135884389140970018188777037349243177859147931223876008238509581731169640589384965470326731757193708167158725637924926423975717257356999202589392868381061271871641531862307561972637742504764718496205273790238018312967193676899486463809036391870254003988975188642693214204194321382180366471606851082947183528138776846604300854874474450941547207557593399862070718914951310889707192037449079638599798918892314791508703131112737618742386358075892346236631741289436743917491132712767597522891498554089948670460151270698022409064599812058508782960402182331834220163202639361133383690632247566485129807347938036172259198172269532614100964948046836686615902389008987530285040600477993453543765617732085448220544870758762454266696446541235452807930764646348153078679868644785078813207944709690433045248359317127607586730934633113847740087419355155035040155223550081713376106886426839128219374490462372246819524461162248197810494804793448602535942818734092961634553844069382332148454552842277106890978155568179946881386482532575480114892058731633274859093779472669003285092753648445947418195461755931848273476913692274302914492348834254672128500874391461350853051160872662051050735394017376187682139435999632036112614793661788798659683973175338029814031556431645824465285010543655146714480678776347329581532024251814727158292255080387501047548367140176730276237003957004556384197728004163007021263306868561879946168129137517768243228453730524875561059722659020395242903334230916464210782606032770725635622967169120219086445146791576376713933743890409373244422559593803989093767827817734320201138670463032588774151083365061624264520669705303835603120518607286240605720214150034666536702362686781796662383289843916825270661438006483994327992868222121724330414836998380950659790443415279896289618513117634503920886168301951498467519216398794978302479436013847637495638247375191837538657586920664030059929302608896183970525944995036223682663804958891700828996869459264432622971647734075823226643996576481321112748360986306495469913672444835767720885988602314572963542852014302905419321136003081906570408854848496342923970930860188462452694498227543381369534285241812944045003728110241849863339640211733664036860174572636653716251127574034638462529588193931676184227143888854723850078166297654870636670076032750179760201933053670453714974253644487307088577956534196446019464071236007187604949911471180446184103092263458338997587752513003664128492320995181015074011754301647733333645738788463541878933388017460679936379713845012512718271206743825314292420603362374800065396652917223050687129401184996517961388310328269231588930800790587528948090211952388069012535732175426485179370275895559608198445012630711280784144448766811115192527977484280134695434643914767093535354110819835189152038807517227005915620092434120774315267446070276630316826161552703535563296503212746889160978147051609034919293662123344682739638336327315715879086833268010619589154989975020162018395908632813107427896727777609190821503746580701746094631215128722718070410001197762702124574101115913624009672812772747252938362564526115575745672799462522133115781207711239342591381283062437018144486527516221420219908574203193420892079445532033499681777545562968587610935086241856628963835028392453454566881371886002874461136951630731310649286309030639360389499059217812109087700857091883114924370726215300142434784807893129958103475365606541455291206513421650409915633473990583491113029953255510365408458085888657281369390441854853071221772654375341372075751178507502145084556792807293685329029309889337313139460322378919829183311708898925912373093378164273851542746306856463636070943418536385092477425613772128514475525626966425290505430618891527652344273940025476264193278208069848127771286611016575799425405723913331936594574436385578459645646518511801594348826424471127192295229027670253539683137447087389276829414781786112782334524238964467451603073145112795174272299734529950228340359756554845529895174173478198369860623477056196761814233464869771341487932008026239820680038054211754977639607640299548024852596850414881517237082263299025238859131782288785095824369780070972115176596191145089435882076437637661464805419732211822203303696826871814887507779739247299807120688996290261597858423371556142477340644355495394360040061359383477584462901943414030430498346122471497342374706862199720147294768568736398398673835919126556448649606378138776154026410996715953207392345214706896912216070637653803295723774542406719748590020568978092114983903784464226056422674213999483713402487978411734504315498996162163252725366139379269185397064803512906560051199832062488289296638263826408808318554328698594065402293418186095408045833838848334211798093445647198270783585060645302315767403785463795434184437427509565442369148359448286238767732395460910427104313679803233842746909701684914543108151032924381785336703273730488804894382284173447898656519210730353717957067310663062367834539604661413421269309828137343798587248813481068188921017154771998328039358812814580605076719001112799070752031393806643506623570974621942396982611978114209260086382453861750969497230704387939019624022666918812300440065002791476373458697078210193418719536195221563955438451955521203555243413600244761061362513694454235458511999325936979607222341091123163853202287324627419595895320277861174862336531566088270973587570004124950048566501346302328867224087920127281617411041055161753865042799599717543696599727227130568557130891348607287298889465724117958969061525042410011334975605560889542934913170015583548018804275572865172656797899597931821256348704017944081633853611521796290593631205753139535417985844883645359389592774069622215026241066452908973849726635123844852726572855224307023088839758466575413887188622584536419573778722025983669868155302218218513123593269406731194922261486850916150515804220166888861801297830589512630969831354252274123431192045474256866065113092708543491478334867935521750621153511641419331889726046216250359745054071922354585217268159073879561570667875889570968553908491840187486510244725102824641694889660352210132358454851685785733325884440561570711980380274825143001922274780503961552136084564264290479067554567517069720207606013086796961167306642417144221068805322467129905308191861096119231349828854390881030204907664528437339077661903412849817864390799356411635710234082408860582504170291463329896417942177847448292275486154683989836003664008503124386002594471013666108896991884677656141154844599360599205423406058094738662971154958577167645153577591672935705567197110765410205107328012629393359139937170779208883352618706871415188364446682565176800940189340724609423732596257155324009893249941836304123047150677436348786279347531973854225348908912493628103284816333583163385166143467614608904153969540838289974738204152719537562214543356734731364538530151881759509763248696074458614422473804050878118012265581258836255624547911476835831687018253226284326856480018559671998211737814006252170296557332857776668122543353852353297353192019247598939714693004189185311928691402241935992674163575364508195356400404275328667182952533927404162245455735418172532747849319621373157808372773081625834715534245037856142689839036450206972440625486750503101338929906786331356611844942354941110206258580580390130965206693065429475793337701492027296078684292042440133280930959894978107113078938398952190219925505882395539107927790594426277842024075126463740034653158691606423854356913860983704433397176521312284194212093345467006703006834254310268865995198882294669469567052078517855547020319234139576828120392766777878672820639097819446441397526819067725893612977134992556701405658778360675484873081472836132533722808237759590006442452133509114475714468245557343402208488625500772820266607323369301138443851059856780723906037470511398871873614297959204976495958446688572653224678484467769769442280697393418599419272089911980337165183686018858254965048534208249245370959578642906113987437368267606728543021428073001748509260670311067613447090740623132102023574112222484686955927881064521332395476446199301963033934758320230353181316861309100169421627998092305312335464702781141309815020991295960703001602904657083668787559232756835819922464660749903827239767938181912710464731382914727764929077535272154631110609933875909969015608034580698974529044069982172575203590046165770501274761614230257278850279149318054972285477259909971311496733055986890568425875269733396834038462426567893092373195405020236207837886973271639323421714946374955732377677576450242140816874934510708451702462279341767405779377081903804807288862234280390012461881028505074433759591747341859055960838614741115843907881588725686449699221030715994624963734564247611439768896511321757969304528121704204851187905653590510696530107418406601257756370437022838602876459007938136946797663163010611117473936101500394062316876360291190378356180489652491821011102325324795396034348722645439527391356506534701786759474371987981245539257057689592375444348243678131550490120267795585939994551677275086572921009443403358551148987718497595513995591426176758817742032451394278546391638057117288245714246355667726292476809363445715635605918733025910297322135390512388659310118322308469665012225806193251560426809776670795530045771577233569307791679068634106676283074095377680899039184762901058434904821586575767167042775876324635187465094971038087099644998434379039223865319588619615961387450320244365367711961427413684430366579363759679349063747289217760465514950381850086199289795320658961037432508889670413443165042691435674433504739063959168204187040100797872235840701149540550811426891960754103825178454530376073547290537291513132348233531093130157908880969854543515369146784030204118430983249155820013183110427878186644652057393522023794183559150165497034268285586362627057331394245629735571643194420389125813169705473422233473506427427408639254860757922187090012425890613313374331200259319308425253170003576052012452700008989167740984744672895227115256743092841929498764202631224078620667031219653444869957446969171083112738493234118379916567508293469348751380345181500965301945144489857074745594829678379941334768228318543261496896466153538727296461042038345823734789470405236751419698237210257526062698814763789692651219445286201511537341568094472343775383100310317443667579453314928425171833375064170776245254670673803258261833808539387780662479045634812327639049444235893605030520464972486782311885490228987752948960764003944491982661694237103422881350028395276807682694997321973643730894388581989382450088441878057111576947432672043773406076772985241141086120370146511839134941353023353788551977975378699714529841729943584608798077464847483219309743938278255833504616059065933547570787003609437193340491700071705886584637456826686871305345794472904897427545391348963921861308893402218712992115818081439202966690773443247006830292048990239760465037722047921776676227486822997522137418138802150568231832587945265979046255428009818017942281626018796662787496072593050679373101101083011108379553644640313259001837752530318594453643130713638547584158842756217277124687543143163697825333034431437914618112471131398054209634298150498780858847522951991754093279024676565683496543954499404839376193199389827362200959007815916975314650104373028604714052340133842178647212680598087870545892559811598603759689199927784276051540356955243596938257211381988721880153486391610359931962441854043517647491298136236901395075207966393893602867390969536015883143349039097630743746969838938113763874293478587066230035705432856411751638850790191848266583318566106644111670063643613963312213143365604711484733999991106209237927868290424971582997911418675942849497225652886898781719584217361622214280217667237084206829973859966457940578555530388781873727007674101978654369279276429978596299586780952131355899358032439105834267795335732835319368686979921631711353767526991878177776949182910763692180861682643405513054854121937030683150193456380762603948263163848552697439289945421382171910534439381083026548903484020089463591341087092439667609783782979461518670419191163528395750522309151607948469772885449879421782181836328344195864298154796334365942191714371644514656484229539372886063466615773461498857618780338482551789590588770483863573973268360156533370552694431707531238896931526537702168435093753381364119127380999682398368805196850053808398364284991941238341672655442217230852088018381377986128718087380081038292481599077582030959218233470992226400282104280067971741472778031183511604503704116871039375528581594116609000701355361394665895201091530484736382151207088282765186569980783758499845786270824591799487692631059348655699625543727125299361807191771394797350859432695046258888015123134778989772698152114162071288726138969147219253953148594224981129057316728969947242411182377632235517100103608488005842089359259749296705357536131804753125046297471202960437718969747464271441595123817666585645747001939194144693449761065435711205623332082716944013874886492299190798315549064805188967546148794459947261020040259259685792211118936443110165998387103951479079929660032721483012003020039235141389627822956144068544686063576198969795791147788909088351962977390680312502626769379796146612175806317587415495120625045461733811141856908709811750694238860888223695510936974275577199119146552420213166172691814465201166876421637366068986296063016889068082060605473810704633642748561680574010434523338282993478429271498882910604463125173234159803727634176778991908616015110179553540358563342826580633361366932884237537766300646041341870916356501462875014448282515677518060715214936827828249281646072578631775855910272948744529332310027829785641546940715056042191398677756590694997259659266684693527234308541007761589268089629549863334871968294708728844302725533189877897151318916920454126838972687403498560006401268096044147172583049327634716525525172000229608897787668909780282639968674420856468099245535169175568570021063520448761803034100435808249054648005816902745717602068411953979767925708919708935652027232903344967191152303512120239251463099183822692230212533256092934769956836737306861865612479932577387846770736394174808576130829373028890908077193257021629821016350778300189531817549185840372791114601579067906446255480658750246393495022819589733745208493496589039120589966427089893264246059974300489333312217976880631147691824256666452474106773524151026627698962689386546892678480624142504521874738328871278042736705211389182429051737066717706677277272995280244964230791940256784873695246424107140430093904642627198955655793074941738286696269059620117999660715075356135772134361852380243130399020419594747570543473942519496386279088902045835951342584288128798897271137981688099153109791895638609439858976870809550700974832704808084253273812199164940978351437204894793108276911961557007778837710563098810961836999364549644205081986126766487711628417429849648527481482634906394343122853602282281242146095859892763555176260494937263256256602995637278329689700659928465967669517494076697105662755808496997988507418588879988612527952158344784789917182076401670053068486029819660923817321472927196399745996947833830420181694139248565933415918366391099084361048844902732819949489781775473753515156302579244154231304034519213046059224987086059324623012646174243091008111892930389242794552252861050399372283391354332578589050773016184087709699914139543928321911602406746641210340491490973274884293617280958273173848159903608272742199369680725568576854669436957070159460891908942767007185775847743480742793835623579926204355500389982408974225131975428899684636158861398248277405380821007054581288562984284390124265198777622849289374724035507549742929748449523591409250564611976025403479636493237117724733774613908617548670839511707898671128018275438250969694858522237695335848477949286533816841010636728819130590256187667873747960767576938100769673780532802332468304002925424610224734176666258270071245603038408133292781987744209800964099351021736459951583794694371101023682561050312137676584689047563274487957404796046858495322402850518568717493047274658857150550726935907631371430941728544280972598948136774810000105299186682537814643988006013427078252756284322130823563091563481908853612554239742848292500937122934645080538583274781700012595341176360706014531942183539391297958020711683896475071245402966021343459635540329094107193844272795109177633332792070066203355010893893919835015803522050808849911589056181723383525267450276382254798805313831314243808437542025861658693043888569498219483274019252675248043142385509876460476891294339706238648913262813082096762286318094199301308421809731525647868349261021991519217369510444954923872914878460801117561587806670915628962214175687325554811018373558098147044071164574452726994050293257068173679419919339859777890141403629904347893335371080204343736241316459611473954701159480700257515659095880056195763084461595467310423212565124702237523337371572162381646323121006129942687164688365203119101275486260641470886437710185707647527272969122016539483722912156073013017843734743438163120444525261036009511281774235903842514703619270893689175358388608131722567207147012254500039768040186526270561473610655848137455459565212553158870713891093302604347964442488663662679053916476816667471413776576386644015369063868887135837511833481458977878518567527921690085214565439887225878563075599064124090186031436024868588262432724920836020744666673417109227207597785302493438466927112022050050045410628436509965921141811082059063894028583374075472223894896417778804987840307175993564840637519181122293382358673736764765918448071470643748022075839274727035600122022927003994238858103212392227414531693138264186697745980686414220689156782951075503614832482708156717738798895567379451693299483147111824632963336476131825395025214490220650947670212101205951904013960656479007911249036721656803243070679090341294634928228326827376556724952647879337085957978100494920432731096311174914553053118085775040444109344060042598541816804072469227777478256993156631323457859083845776076436087376509477276748159139625699457309142215624473275234810761595098316274579365098082774927586399424674090512914427121577078978713424834492891729855728146591153463067316341015009434390634576377031704084284851970076351430165301996494379050928974689373107881228326144600828263020965818778940800454140684556790515578914870485962799279714622149644416753411844304061043069922158909855167429240531490630844220260608643661881902455565124129669594292582935295576534681631464212920696159410576644518310010700146554312703770961118985573032105326871191478089145368357130659212936628164448836882365859584298883139132512312502598704508456960671539182577605447045489168686498915620807080330424559110212949324479779978150982997505755997068226427751978626908804567662969752737958723196294619501450754219466341085818123895664635860413758877566360552075285027433868615961948524925975883365581768269546852592366493276971321346422067320745410827673175705077017696419733563574556008668195154797535776865056462259113046877921966960314304654278516198667652938584743429522458143629390305537246057662834475983494291624111447170384335062181984809894212439259628120348060609331096364628397837721836493577417772130342862852141852973704435537704874243438136372135731104994027690874484143432919889057203036373088429781856082037716296773510245192355825161989734869686341276176516469169995415679209776971502684621982727210892415799044061144008859927264689362765638651162434193022874897657274267891121119757239505028558684836361139106433131203413530684587975837063346959678129731695521500398472450743202947380981234784541835056104613911484377135662633823824317921196756938229246452271329340846878478628914859425486007792825415464349355834178451048686355707353465916924826489814359355631228461718961706626764372172879558623263647418171504017086460926664702640940042871561493522471338870177935146615427225752592382074411616276157118952147198352826026851741242385495259093191772080809940962747985000754875347802860216723188817910209667192648755002319636522919182600377384589190854706616830388540110810901965275300700913073957722811377130491982369292239724734974318896767837672514208283537941576262084185597632094130265410125751903326365315903966398924910446300760467576593851950206796591860097270266028803678183209341109496509474375495984787606774415970407649800104485965275841728416331578036867765778364430316601631770583725941919103043024101258827744591576877828072932027720650777486160522549216547361058306382138909233931436129865829520261791371298650237086713251355322679922281137499212823948575257161117364137710439804502898118206030799282487733745550435748634429683725947258195396903567274803335284101212161573325296536319019760261231262933871661927088893224316734847890232026949451831303058010321351308407150012665828206359241794894258775331203209445507053874016332316320685789562433205789636010299104758675137564429114076142102346875551649139769549991405550619542858988457191199924681794217504426040347972003112622267833579632966998982280396130043407729677537385444085123940959777313948962058753744649527122725079677863780996256752298687623192117321313304883322159828997599711105707473274305062231777499949314344219773044764281250322704063603401385931082543720247623113620945133293395746759251644293049614596212301726691869827938633558644495288157381212860099153552405071935535093013567464676359829268727545543896649257784908391022833214232417220267407242104674089293646878975104792141070446692853926551680844492505042788945968045513005059713488846894028380087113263442604636568224898627895075480486538390531652263419701896212824296706380118166264014175610103308356696016174990056617725777799689449077813337448715851496727885115181176046477711971489231559025924294415063051017189112607077071110010890688926299975798384959211372031838960669543004995719936674029890420037471752555976806700111554541341524572292663025359060383627398718954659872705529399118538933178655524677274881008338153470702122371165998972230469603375426876502216108706905024101354880638341675641247389301612100920380346795862153965770698430262932418868209193744453672485823384389969042580642862941055077104222342652229370027135826560664213951580256416330858646765588764560865699635230691683836434398154695373449588781836171413337424260174357681006987614117579310991056006294256873158239980317462214598696428128289657830734045410311116217749717886884069608907315021288717211042351089507627464548829175763030589103077837479498611003302798704183167068352709397470967606637247234243439129179311565801470428969540198399778503437887509416551867528557552090963081193529188574187170545901165949658268389653872282038095089660903112312672106024056080827771966023617280316559844418369074731792034913181838421323988472436399816518923601448552563234807094257994279807965729838331480721524856225150122461255430306949829337708068596711891821254370957446326907402038552022475503937973371333586481244797064127832156783325617237961432565358311918753712998191213833323973891154472636566473536651450892780662230042086581065711155737316162580081098715125257844740805590776013944238930518065169746579028680785155535613854229095819666619036391657044671916779646777328113031251344345222105157398711496707107871113550831066266506501247719849543802867578781122313684553811847519536752137815554160699508689119288140744159879214662663914042241909769306427460523483114981055163137161816253269238844568403630483856427001402880483680505380014125768104975239984333299523937532490450168769844168186034609005911537622366119593736241369917943185893869061818442608525565923317512607322967507729437369370742499584374235786131928691564067272377443350987889508047560893474589615602400036322487585164594770053810861836562499679083283979550300764016014236352790481176981030870795225506919734560032755725724109802854644641276249324203620749952320271684479238029152918744567804894957333012059288555239372659062813088072543734455984786807696329744980072817932541033363613956227309836528682504389824167428159121566636401735655158485164136903736649187853170841138066743753216188630689306248966586747823084762144342639071512390029837228122790553797801278321300680357526674621412765488998517385540500505271286185337817587220044867505781707791421520269813862192767513941245129827404167113782509451126941223805335713293201158717910119797487680879107044237849101126856034532238039885349945825550380209535113745600572645738994033300111121876524501760313528076664263063229921071795808213601092400786003705460996636863633761731032698480675940574486142736271149605931481755201453838072344602186179598590765760057164336608522728229790365545976801546359217426554283175354792141079783505548233398285545373363637818307759686109045550324995529470578884833776866261489227652144099167296038513908880950810665086091695321886693912207966196183812244670614071340226302773120046591068756372738216021473340952846803398176116346570156269279667215192629206083816663115094318867110941163039385612843332172668066940602494452904189883355628941781765524585713182350621707141003588905884647037436532858966673903937715518236472928955583615776935443731877348396917667154273114326417342414095120668969191530521023407316374213546628759994980862657513583477065715481360229533558772184266473035625678245206122049677246552601646276804232780682329693537897351308671922567886972533713327661568568989634263603415876500207297262261196073014109125734593599687199403245376990649169541529972354714081573886878900066154807483329257088148859974324928840770063968112223936509338207213161857374418179285203590318074658223507003039644676823826325718035278967117568058632641973309980301014354676057594808912995971200123750389865125768808730461567169498750458756267349318299730367270543830047065058727703075551533613746343070624106084400095636023562794961249709424654587233460358589302297181282957351497731910852722572487952662420882286925028947152550774814841960436903695620598430762961164375898429880355262820261271689637232186598163870550169376428654969665395618613128059753566502137391865724234310942776643600790817528365063531319354807124798128841225389788074737504710140615791036890676286709168088886611463593892559176874903408696343329110985613988148836507329044168281160091559929612023228960417224602090051513340453368502430339192935602688431039684334026631040692471336497023281472784505854775691810841014254409652821115507144843906091063065577615453771522311752804756345928304492485450552559551491914410906969530252859258605267416250234697996428367930315374326039696903685649463416096440464899866389283851162229165012146983777034270781257950095539354489786216113141057194223669482434493745746427186288900606355543588142263954239359249662820144783893630963784768557060855753897700365928378947997298144604361383024845911626506438896971104119583556687144804386795190146942192172722079804930324694815222140612794067195482858719407639965435639540546424562909891170004912582148769663336937721443696839548060264926741721597237933229039805497674426343750658037399451539781593794454114452929219320985698498308899790644660823063856376233847903827580428313780891352320966747884999387988944699048222371565344936755976630111031077986978458628980662285584139987363166292700966003849665102903191513877081256361662095091081606747966831610807779836487562166767881331803509798512997528776132299471474943564183031863502155982170910655664057064518432847656824255556156748819241082946066884107841444917265778878668514193319848006435121430152026028192668926130958294103074872338000331649770310184384187965770221300491891073805018191336584731044402396663368218756393922951986019697001089425817550833164770342163416664318507172357607811696305914029067490833826107555263486849999850800576404303594918343453178018214128596804288149128650321813217704566512121617306283334897695496561247347771284186198387810550726212553064912275158849906397427387731897168374776795092384044210732014544977674468892671847584859370798558561110824141446615646004086618325883179735860049245702849342037470055916368513474258809248294099233474453250956471387185687060221555953889131988455729585586119265119730558332003629391347944536222812793678938889465676759971656720615579799137784019226779884422556048358570094163575104299221266605255225804209496938714135168102100505472411284531701448476473709731250624701397363803238201423409776730895922438770828719404776573196847757141757721215814866941719346039265260141000200279996079987442643720521392063513094360025255931368229390122277660723060699249037485896912468742907268643526305868646304035248435813660920197762022335463973024110196145941562216676579909337363284404318655848777315906195432928822872472309284780368770478518855877507658659005604070262317593369653476927124728113743275551874588911707647181318085530770777052836904149541076900683212491709473252828008873012672632574641919374291773449306323094271254883809454213031750193620752461585052808004647514949840743019802059450522058515114576028013403588748161780284233226039685778658500826564765564674433985934793766261765274148367474950039807671247022752705765607608975253683515874540718284855519179185495384533110366228590082773605865447542494842464653287740291511856513833276354082849041771759403666943435625932349752237059620227092412404892394687371919749529281254913360222265129518790715491608262879785581914019700944831120271568931059671501930845452147714625334844545278855069625312958008870480631478552105018059680465163418861473835828083470340515318310048504607405185080127238815235823695874033478850273302306287949353115124055347710420560247128640932005724893323145415807106434121150103998319159485895461475756333755120188257747751649544475301737708492586353520766930919584394799755922761492214703477925558891104314715255997762863028875225358656644762022322019503875478651772062112404700099517526793014271768565430717929917584631209534952669715880735459865841297449211634097812575871773510054217239949114573815877894429040619952265745752395887120534187309426422229224730848872729155372095177143659435514402567998832302209466174859905483106584083241805864383937784884477459767085021980548171401113777393095633146624564439238174662641122073827794992268758780978314052087701181590218586007053442939429534459672132864589720042812584324987785677941701466239700935921773393010400812018240555837929492322051164721155047753712265477204071504724574945861197540617199680996858602764196449865249566050815193291949658771063807461450863347668796168405403049548451336429322289392431959569487450959962444836179235898997601997173064086234885135805285880891564631919409000971822937291582529004663974134080178427271354417960209987047740259481526131585251942490488484872986674752894262392088382250506092701202028714708685930852198328722475650029723820621229498013143134027018927899072029739644032425964322130779863996024168607156467932824842090868043021622883413026032467561886191655054645231475947093396471231954851574845289712719827759723338704287629495169963981770050307033632228930913647420613619268687336677373978487877116672470146128638748460568247808419452439973111817943655470158533613973737949092517497844084794098135308382987074623543473297350079558339401930392101835604135985510683219197377684676575564580114332413545036731170485088401516916546126666894060981328282382550535923266828530536244261408560756954442579926525421375431933160834402020632259433060357606821411897629604461965162146605882855312610405070891449957801556658136598807704440578106345445558047097598239352918865890763115569069245870424915002942731557411964219104466502732865633335033301793421282353138834466191080252676694825171744246812067397015653724595962094057750935366726026276203213563432292035189827221948972989716071492222027272544742455425902370352607876648791186295806406287114525570921239206055937793549203605817668521523272613839976419776108401364372400116899614677589282942084902199926390766247210241376260046793354356427911825977567249159720268544112029989049193372754622390824215649634886004526861778947215740215924192110335513777432628134934652790143280730825511338393328351642377853713351454715869865814309874941812484373566877713121730213803887872653551689664407836512891108287126046360281380093284008842242168632700501583243442547374515007829331951477560597304844269650205806473990884252683246737712160515596314835301112867382612890434806814104588522383405026195472442250258566361953472594305765038332347825569870484863648934257445644892466296798653096225630599495190464966137538993128921839579924457472365731443672503166692804318881010021999521656495220789174540041784749454634803747245710518216684981713681437708431404292928229069242839631213461133367592997793866589747928870627225100806380256382315694157988897869465403720860495187674382994932440898084598341139454715165960777113458124389594722284567634213454899991493289942909477014183614298663233526975902156305783001031646907363253720693026683034072585156673135289483116791603538303297257575384663667382771278730588327535565223499322947149353367661736086967428816141114358690146228123188470137836204344368152471450863391254156027303064474948630089224682237086148065457686496585712952908369071787486978935959642287709093763599569733437648044865970382833028363184765470155132194579439316895078097783573018053166990429128414207349892180234978871972443863823156008536212819147909681659583692789159098139599008511624659180654845751214689045317986401307695216158428100987531463528937156706607991542784564044749079000172822621812409978783004798042252656038066042419499171236933967472816992098250508305704650930460825079429890158786730557505786127911519292663041800525574500951426124781229820597754935746840220558472219924024931309323463562755358418839036388604020399590492542865263929552260715372623875282363727456202189703386111531557887838244486419255470477542163331982900760434862446746215564883731868526016167873980789301505286210670520168787701507087881480836289771914418240717909979979606990228534536397388219661688839584713013152545255878192837941460778774035280433933622990364497564020432972154718281506351209468994484028652661510982823752961655558352386980862602740166231201767070361212498295117668222989635379713438192161029421300123917570896489389722651028142266151429147005870251131390196146876712956993007403509730451765126822000793097573598252021705599943165323898591660282742802771809185773704142627944793520904193872125552251144290410365098077502517844223067137112234842616754459939939666074417527470519857406699035736758400546979796947961255465307467909598764956739472172809859813988281977268015652570329414108913458476217897608750059963771187236193561579692213223313642270347074542919038118531354499864663637345918305386432812849305311500535544552474375414091116150822306672230114541438698171466631470501113175323221941488871414630458539845386856519295763886916167609848947005185643083630632780602640290240261153136200797622212387335846717595785948334346432532590759676703441764540841626957139966298083047097998503207990736486656963112957901805940843995421814053150901102637528515453566929184501423461291368743056437219923180242669882260503800826617910811385243611757022331662504815009475641216611938063785077087356608044493915245923704979761103458873941568565730820224187146753108361999321378664470747168047009112394257796906843677116313835218075372489972996436746423515788851838603486143175933661088346693767137126341574188654061536598039927881673112345846575205818176333263753281961218626368475496370979954796736853438161842010487758402527985578495099130234646415292921609964773393964033692546433588834306559237702597571469077439412018466853728469114899162420179421590551158548406929270375992801594219333930544028159817844013785143194836355472510266052863936122939541561956034216362229139387124862962736810029352665052414886938018309724314330592383347289625458224301518223129143645910601647110915240809901352226525446111684397232496126945027140917392189195306286128787286578228830145495466558557656843700989853850856047164908905716309801149550029677578963360271116259584867815994911299854879819721979413936340748950288588005929669938499445580529103484041810359795959649908579701590313444007547497350060676282669535236574121257718126848024648351537987511652903910598795146971121240082117664802215329563403620001595134844895704651974671797923462478171301680467753292840365900253137675593134511300418867613539025535322617888629921860413563657103085402228558635862658993725297538976988751847176154109000228193114103291586226516657073317675413533551826153946269938865394016633260283276887342974436633577206871762523240138403373847717571047840254819123063581484970961483924118732549667990106864219819298938653722426141695675948706604020583656741468642346341887314457370011048092813361560661371383975358348641959291764383584249279723075431476436533158443365664182395957155483079158917477606336571943392678061942147003439630558397489818400074279108730048237081434504326092388510588926340104187907987664894816357377334805613752236882234684419350851667200168985243803067829339867238908250698267503806022047516756788325478714475107223106715427860733253717233727299836056290819143414142065862255285647161144397698501036588774620079192249926394546521321259859578208753314290170922458371649130916553932701382517258947119817276851250741477182405008123750433477945846155531106748509088562395269092031635208983404346769314770009100493462677135763688382156689984851343664538355845206099239233263956607312032394136305769187310943749835155402866566666918196667646401058546452642983141870996696063829753769473442759969277402072283235844137295646525243343680543114253844444677214179901117028347416949924102230108808533043823320231156580973179212631218652901139345459718584808766570204511140728029411471078095507335535952462422450342433427219131440031428230679274177338921212732332327163826086908912185590124171172950057179303356393802902035625686243574302100186827798142885079773228528341150382017362635017557571167264361952300690066382057142746429391415817811707935973826214053449265154671343960084394688872604014443261973730023655727508053948056828389671920420203719409298999712931306237804297520178844414302118813518295507053419426243589390985845617981844193121026416416746878725355450299977618425848447670145828146158843575504794130083456597040037307034127911728296782224207294300321649026574838542052001946303379316811229636920749455777494378752512385665788700212208030432233769398020364607093772634554149364305613813748403129727835631642744712569052350275861455673810774933964011599601624746308887197554323768370142054950816672325074490747313890347274372027871295210993405276644899321038702265572980550511192457589081233833908943137899654948860702241081643228397647439247484914979196748259186321759822425181795030118799034141485493613620169499513374033975729710027181383928014052180208226210987151447466039650370936467647733270847577984821365729155341127616594106194622746162666682970642320012623417628766668330468852767303213169946160671084590630908312701075487332281994626981288540108322526143278077205109539633413933454076528588945851381520516676459235547689437883531631765096150173683969694228902547945105124867848545640832661065183197824802769910985428899395630801155431009725807939425982829852840040229720975792169136040576074170446748337778130818845358339904451044082001909728147862685196690849524022863551224628573971299190278019575012179463363821711382424371889140090396637768183579568846399046802019562741279672455000766172653924864414072199658721047416295708434310864954029398939990459871556885675690318892082947222751087483047112835680918748623336217313547415383280613690451341810655264295637185218386853747540021532209119155758784288905299650960600230105160412868031868417106896580759856663289920404453805833245649512830201867433321673808992650539475428094033039508357498476339745257552983033589736935025571484363106363864036008340073071238052488398785776386110358037998309153980805815586826859969388190575853871755499801264877323034287372205477781197446202165391616779640387605430252768363241417307604507206221925095172827689877421781267608560815641344339065018149070505357406797911159186161406037549783459320995635140804059253955843648214441029500040921927954167369918604724264933442002010167913044131531601106541951238473308759352758518902594461258243362574968735118036768842218685458397692756326597595080539174489181362093635398853652935808943001524708506447562448231908517493126721497720461675036338778772641315794442080167718922525256726525097310696252791007602890424424988663747819600755806180400739017953836042409673615667299478203569621944839712868920107890487690709115869540149336495265359158906050379057511043956952535207177709596959042255034886293047778842925232819149155152947212218780210840012158444957272349005848274634578362318861685654286893667606637744109702917408350427790067304419899868745857850185091537591262450652434087431695774574510505498035790939855410334173455411498346645532361575639758897188086422563442210246348303244364148146198697376582120673996075424112261698673103453113712820831467372486794906566494322406881015213281998533993458792536136630149101999339404978235587119691282015297173926546435753253674664592920511278655474659148557429920521385658382139177099142030604353026081212767528665440605333660787565959911474038000840634170042932527178220987623785457355144428811648381839469052530550611692850712864696107009271623027290620475471769404688486141406624298462810959848209393124470501566012462333250546045826339191701217368497308506822751398397202321370496779304191378332226497438727722871709853769495658606071385728900221307533202650564954731492307541460805435972784802484604859863079058720033052249163033135517057228016154470657395387838447462976379741223750369010447592865636118508841366522575546441728103835103910575610773257978031755386288211075221672265091375275486561337403684207092289130948412070723861373858922992212018798266186322107288390798199193882151190993967328073122103732667228433556760771603987908590171222471949186112326572530814029757986212751994037865954495638524317398327778436188651467449662825212864154588757469152243916155537559913565765678646751186281610716369197910140460460856169941663145396899072737356364484802201708755809859251821039307057832266764162380745612319022129500602378469436971475030562870384312750398188821490054894347352859496108165266896030060884376491851478975034456985746086522803966851928031863411002056830997837808601596349058794769059395356256272802691028464511022285040618387456092498534154662038379720836127399835070515289675015294934510949776381170259856458411025788071953761830728697342979676636993614380269673535500148979580459277746666631162223965743292357695130782845984793287588123902579132739390398862013081779864333202021142842147156019498022024003861195753781761539188830966157792469060376521288485776953919326911493660955104907102276931829959907037698578614682439991616280728692769711644491465906657084706605362656498454639810205930386928584317261316824492039000624967515035444698465497514721801168541858126321690783929607185978916319453493360721932867297485652730759227317619891912394883072406638529539297199861353382879457862761553560534933048424979461806702846352129320059866498671701764328961758427887977685214895532958869834120378259795246963526351921910844240467879032616812846018989328852037556729635308265528482168042472148972686868676649678966717693419216873193102516366840979541192526912235626781739875913385505628561370538587115559506627715748926038345688572293908408558827493530779182853336524125351963733984654036025570301141559402286327154473925467099234822624232251547269251241266309532663767049713116273398752100238829286203174894311488177360236416086579048115376566620035889627631446770314205008384081258075542813717557187887834616458041356429656548773840131917987527511125643166365366635364530941260849685249457766519175600553888274002691587571093447841818027230197037180184621615553448814000538736995154477369179614773055143102233729562244430148001014427305611668105316889089509509826473093155355927231444213915557955915215399170934629651713268447587413625160166597280592899560467261045568906770870137333340865498069212585448311565128537541387230025708852654967293943633840779377578506914082607052766225859969215304194968475564030642882329128398280222383697401406950445951090879595040735187857171597791664546238188385688414016320000867761102861748210502620256657966632888350098990863053508277253408288035703827764157629881614750669760771367310856054334284400382736324777184256664515513711103389903769043550529230766972162976629986114572717065322850772460288394136927874075671443549543358901931551936127120638020496527378364154076999503471833223571384725206503807059586061683912096924971957094768409020271839929986769443352379250981058564812410482318870561479466388373131641601411465408502843539712427546025351925242173902076604643624654721595518012357837452858742754609945883881722878453423066598593997256826669751843654488146191913607282132274318322250665891005651778933507927993527192543086542717975246673657807031830128424847345913543613593346459067494599859216486036226396184502206435581556525912502882117521664837204293601299670842622600105285010771117511282910296903292892086329608983265549737253187317748384681631306478270330378315154543117144593958290912772846264263122936094179780057625151002907168332918449699768160660707045595210081865971221633500673046272982060070627937335836213088351469688732941225914111579373836992313739581844237619818461040433823675804887805575303907973914865705477289816101256037322378433354008196319585524896193577570288052342227985053151405518979840273383157712058676379210104585097753112131470826958174559346078579068644279372162471499790569991815486545741560530224933809131409256726641104645872984194782625018370873262388758458783773038892751421570450492974218782312635366340445909105813568932655749734854940795913468939571649126963794158909882775779097976956824913129468922264358919715844131828292039569003703482596843605861485111791901633365715273630266290574232072678440775600785085409988483569702086629422078605022859203174418932739016029411421930358836186208712221754119669459025707263590706170426247401472152903481479772367983861945578468157032735728144152353446213739841795690248296351966644628050994985234623050146009709780498606789910146304205815772141852131210960170609607301075880984835247804890031271878176856105309260335603540401140583014445195379570132305384745624880165120504670035756517125257913765406852950188367531682509730907620976126639102755565370919597455376184797200689591655615735917900740109226550585521276713588118106524344673714010339868625662974797158156051086015036589069133545559285978698983816773502641045768029988578140231807828977044509049945373754487768476560988625617634391936554505350833979812428385145442816320293455441545396688039221750942620939334963568425873898340215654718956036762192184648072712190750298141121039430463224444621963851516518528485458180073017689760096991965596472542437522746604011879170633942323950446547435677264649139311497433573658333403980539848461043169589130884916157634209564179473864708493532063231358400525535288639377855066548719244259414907529016352946061001247517307871909560622314093478218973886074779087616238316220355045541256512674523762746144803035035353508302035155877794898655576937483288017902033002979124023585556521496172823151138345017034885151436658363198595220252665466844348668244399396981777471146418127911934219117047758896832895314157005056886653477676400465021419779786418290973194633652903692506012568632749923309347193891355095182492738961904452109642669827234743652787397267734370241784520719902773812395463558649465663969304772537453241860806948560036534367331135393336288002692216793553626024352551733796101907466821163830307656723078634057567691529211862094362098645946589784043772555478087135286445484372199561888835676167549817836426678279470791829386991123294846648221932375037304658312940836205129393072593575939483222306321202523057088685345400926060715505087977576390779907594115469591161876749892378354723584531479979618766458550183032377456279412200839822326752486061968334601824907925835147038626470049432022299929571332875671483771796586712066739525793382425461487926997764093945956731740046122947185044853685160903888508442143306692803729721979904165168904559592765325479514667626154152935556678603397614622821563907500760603494905166639264225223099395440774570715817967684160730405419029687176773132618026553126225047151308017416263881887313952424674749282621751216795325324538283374751766436074864724488981989306935700882230549490204685824892035577599221217980928760508022564157978959395892101209630681609027256526798722458119472618808340885081124539452041606873226418983532615186590938753011118018058557399459372848991428371704467167820368104312121328528532514534328295945225927502506652608016488163041558624641985916539923239172899363989824285967003745919513097118034326716019381909996139566108725220568117715611312404459905335870450824008449347620868964085268552126597730254878577003697098355097073145015470682887800829412169684810618019062470821101986433001363681027436206957863806320083882179339612222966666093256453467146211867287494260633965420311294864933688756230749843521631664970902388783899621699907960403929192691035413144974581615219049969179147621736765998273265137578091399731559516753207199146872192224107561206215779167658955954860684022662578252758763723099820629947483693138623740564834072530907262405979315406317113937077432613973181925296296569616027856652429632530866596662398553799957102912132796505970790334377094798134612408449727970351651042462439326066265132540895168953142112777669090378839646271297091793983891542893632525599660787374039364773445507616545791973950162886469988121908690319061251000862027525535897857475639935007206572995754502401964834626767597459872227535966168144404939463785891983454362209898312849962192316137175074583035617872267738735789366946311554550376784336741632025816785200657374717900991488096952578632616491977203629094368434417406930081885957280742954086177565981442943079443478630873789496408808322041128058003451147271678584085593524083187337601455494260896243808768897798953028841179753525200260502596548133258529401378774378775044348062600463310609410239824059127844541737128257079861600195431771130845133485115972615641288189375732375252884751903891784555874115096394908033243511701450744184934308199403896359326104452920761728359541293162702571685170317610285789131141921475391715863053184862245389059086496407226415798960258425397854467918278922870775374664651857442835787048180118715557327698015699078551189626617954093268794130172626964982768176688706563209507749630690691011706255848235554531602571759261586201005518401249350626746187182323086914589888101751819765458851579223127216097571180722838536714985191654693219983049327791653110828727145253520199311941938533372691023450695280441405999920543299528085588022764024880679412149423834547963022659056116434371922717140887746112748315640310676645986168426567865617750745538626761436778746255173531217689963387217850829839764682943509529545480856966887831229355781787108841586127714592017562394623022165257117430637218746560686610191392390917933062777257092621803970724123603932127025229004156188737432881273356745764563480360632212700334378794336696210429791060054169182691471275366715633374127320883750517957781487994867702311434991278650306912636426135698379811549060382130731062897947200845771239502616925734314046897708696858886691327821380875337711955123525109670216213177627140396018776363248689994863923400072206247958754580857152499301779880963863623037020871431026099344566454038482194389483580359600206251048526068381014611745008079169999361198848875245384258651417762657008158789855196471608633518436999406863506068831810890272865231476656408688253355019590733070840154684115819868100417109845232319816042824651406457183481719311393098530143943457462512868017937439019963387857982803344097410616851876029070477381768886583803062167634108699273326676972535532202649199352528325849660047627212742241302040825415505559112060628443263601689925359747016116637190456394286115548162841785222568966369319827054977396095633209664579189781445897817461883075338354715164703206628577139977180723737841971718188697454967898112062099305613606988886320036119480120852160896811789270560301508553396836160429084994240353709664587533950205358572468368055077690990049943516870066617715760321285511287956668245353666678246278369961645279783785684416058843409554418004898148792096448076777747611284956112167709793089118412249173936786747080085933410109083573713918111477250654597038129062043503292374664682446900247388687571882864200484682770404902541914783187147820429633640251803766414642524453363232724884486782474849450416676809028623673905402707661599795436113096726910670680502319103900051532514689008752742403218926511851240145458899468695304925498403015206054889485476848186203097932434525861035922704964474490539865521326645590465716183855514870225909091097057325206241051499283154595020755559769751405239566234320349315602791199908563058579959265574383953259288509977969422416814297365691452238405932919490849940555218836631334557842112387211941106168458384449176334574421204108129334567628558877803721220015980304707483676329709336329753173396624746568342607432181465583410707737483942885716459682230697399627627361860145905291382351431378661409594569711873795605457054854712711490664671688848005552270387557852861132200259814999194114458166110508079084166340875087979916599712375515686960876513895987473404900587195601942162341585310190804956572684911918961073453237961685181199338754889936509927269112827722953733592748847854036002152091201792864999150334409171976564036002376561172168824303828830197242425406098422399885975186408854486671186645001664725844107294117021762809036820886581680338457748991349202209582667347753193954540220943528341714271073400997839699994514708259558921671018166949201586887560311535730921604321360822006635674464191692599000811470576854358451220155891312010406023082658997016119831812188228128118556677581427111646700057038974538530799430238634463199127228410136368745997615632313221994604484861178755027852429654919020978485814759084768033254760774303137926037134638938966447880973435986039981267552118119667339470664183665667863828860814034619023761144872263104237228674048192651833682728674504041491873941132262956469392034879427440155650481366664572415005935013068702258102579428530415313987539095318857443935480724912468529044026646180987910315081929050627950068078387502247034739411943905919285074233715413232817338229836956483651565414462944569188531723006229711606985001993973765281259771357987340396315773287638735640996358244419137979028389649439774999062669213560185405811342539110822867939344405562722675598804500507090285886765079405309892697875330797649243889590913094724192167576702163531624481860278052893584966610962388907073054564787216372922918496558601697559282862444756787173872014466501761175073057325830476958602894429547790905894610776515735910562940237086108910463128788998765206184099460745407700751267864700305154633741040815542234544498969715135860190186135347088268002754002485848756153572228582460571021145675510839583550802408221869234398600248648003730336681979445754000011679784999550584078570451194077275797809420417399762723831925106009458202184684621265100648060802557169832221839577944539660435158518956288352108639531674015641425662979976554981226662454354136943387764028736182188313789929541500644551810381577012112718999675470589347477117048173073527936386242782903059742964565293587001501302504032722089819945937947312775469078919128407677624523762829649326819816233996452324147724622467367015464941827240225861367392749352177641150158251008606292984078684246905313501588758794297663740335956602276244275239165713763260736480713418255601166154884562265140527432981828430370671069317398705390582457385505701467554034094696796999394965411281070552697018335765820305713196756317682883569194793955893551634886142259643974028433339657633153802922778239123087584140863393412262152657153327580081661171741849537571760695058003824565013141140383728021115688938306289677649567519776750025752395391612160256633219909888178589094874584566651164681625202764529579794578627591131834393582540029744495415783742655314573367823716717785224218593925552275086015644536130273997517966499153593451242812618197335473532923492527863153032638927621487537630514430728716647772496140155290021184039395317391570139896042906982460589535882800776481622525862251290817081245062444424756514321368287507585318524781953836730568060709494680011568946605328541813384341327085888550345737056696353336848803373345054787960590103488340184759643456161158681813636007034312674267785140235124183692104514569238941593406597393686460654227728680306676357146502845300578219105885384169152988398362594389493840679963633141077969248820469038604131347055966147010552311270561486222440002514145512475926852684971576815979938063939196075947015596087660427643764623081791867461811539912442529177715972578118224081026110778999923873834489084016778157754490593847820060808861278208557974411536794619656277948350511821044378570133952934755649917232673167774240619674752490747935551338041220768301153627195720500123127106613186161380247807852670870527799561067926916687842105274548023408172586565456616037657124993867639826872659093169487671238947678865714640981699676219765672511546123065566048818314433895123191715285441239282219067827466852489214815473700808416821034988684639497335777530456641899672870059616481830073831634946652678940196410525377764521702599103273635215499318990139499658379319860294132928931108628220804387367893397428780381513121734567871868444961123918382719892548465951952944040993223259771828320351713446572845781141930437511003990197887088363579044403890678978219608444510029473044226759060448858625499111735403093699673593821094702238788891387965091818850208827988254690525391516658466500521947911195326021872989600419127866699104081448852346877141611678210326454152739575606303418281153526032300934171411398052812775309362825331033869920189641703746227137022667243574431617821448829169036061720454626313612847014936609115332460539106907378557397301828088544366117046973203459904598289795206989471498330111607097748447967833540396234716028769315811022493229068295808727263367838834140780111196981866060420681540459285799088962915547461265308090100999629945155584899324813260780282711654235728304239412677778215539357368584035111922403455146167057041384113762800813229027083162894145057430236783684034402577803051377162501626713222951731311797021147125745924387868654086475817169389322949575393152887995507256755736456801777903923119661029840717592712686338538317373653056153870836033275387347972906645888094739226092256041513835001790113277728968977728881503557815855258155471832260325732255714691850515706269223756015392772449681258170116313976518561619033528792377758288163194274569746513951800420438290824360490965752656550002442797037537218250597315200709378292913389145894021913200213198080724794543565367546272925545628428134247076861561337182078248747542593188197195849237802152785502187829176977160649105915942133060294435407688833123862837309318778688226351354376667480349019382493938120445642022137759289169982659447393606041904313459167150624915293354034408204058414198073996331205212187784070247131042632409468566856397393815249930081763489841482571099267155064324758831482863172152421914059461617117278243855558968174324861787415130809029100136269248690110313920354252797462396781018475819149197486111948075488763802885982700713291254902994133576004109552958814229274423129428635718728559538502356357256541174305720770634685087228897070315004671133028379375514815865788871509341676713024174047916936263772165093772781849263255651758909453845050226497855344527007283982768836218132225178475362719604057624343643556302318852046527722438489712733036753022701651273908563315553883391874252925949236455583030289011090107486031195894709604758796236872830237408380197813306611208049785796282357512803368719600640755162320355330703470762919993947140876952131938907491509492145267014811427309101151869643093317020869440601976271745499844127840218537153789352732839328269385844497021259125365494288872594887309698935460687878196903512186404207256573769339033510277469862446137079159734003434217684409297596608616315178642003219753845628146997539943168402178410754308785033341202020970652890149643311181801088825722821173792774222333972853330234505784869767666686826506078603687471792892046645361895127939179690346896107038803886940509151733153649590779795198041305560987059099015160401505681552508076380011203141425027612564649643879515598446933945161910286016913259737369456469451449135393753738851230418613725655835729667082866804602082328082023649480274563032211259428312351813841328533290291730543011808465759668744820878592743973379691186702027570019434178153492493842082447334703046698995317666129629982556874471425116729260260543611289587079246292914822465160090467076985381594689487880972328545422718381956692506123107823186850789156963632820415568942988428771345772743148958510302785678375200069316236004335200419114117582600944869705693621157327858150286639663425472699747396881366646166270669147684744562943406895190536537852734340023736768784355925419242307736791978250289102213437286176225984153608615387807192096475623898637045829798544545680359860154357606510078860051179906414773567946384905531075996104079859576431060497668925543808639920381070397713238422980824954069303238257853977668663778511390001294277814456558228243099140245629456325963176234945164284743758957642875423840664917787132395274444772988546335989391861329701203520674400391405406743074075965020568021176809038439064424461961738578994801454346567611228810357979289773960613101852855633005225440656895137810377410967070617088993896835616260771624857548429787264857113770607499461922181552473149174262535679647783416389646494245822983918633745443810857848725821920295980375418467507486898477171980462126522716926082018680148312695005856822892735779624406586086923078409111184894600649333061765042090505423190035443331857553050097875638424539750937319081380613644550906413964490028389236890235241407092583937482981559579565294089953208934321009313010231747131798553898521306647444424842993511085186856903371306050567063097667388019098685786149287166774214381817567934980173777868405275660026906286573955908093722187066857330304051568637822899070257466295200730446536919686287996244439082695907321485675328206450956684903171388479183151709033643789924584436730785722672519584056337628655799805662528329850186751603519620152727184706547326887928784679042806875244827505710406133364829720976532820141133120635491125610932622948610920969127418107568984722052595343107531768794862437844746686764555624292746967722615638377550860834198857023407647664548276059430268859716883883689141816108398396785686309965804223900744431102314690576600592415831360705562050700850909627056211675986174443854491571801188169280564020369821079494660408752442436379817936150455855559483514588595527053360080348942816940883022366176316216929518723042616876062095720938447913457102478450558330854625594593649444257225383886624370025891188979133034143934587829724403608023240928744571334913730173832150042320792618975299734718766164829195702233686863825304231858475403314296489618373881806984033937368901418451319471852416768470996714334725710920947296512954523384569202831404929657459377381554972937890005950920765192921174107485133986994131682453920298597635575860533161803290917941715310752209083899240000181895103819573815557593676085494539180925162267674534480614817244696867879852835248168144018992669892383727954705645543814038878037664430792628467054177328279599027514882204435634212573555003157485580934343662657760199329297759895261942490182501979771280031851213102854037711721243819414511195999688319917397808721836302214206964245964406211120677894799822706119871564091788978152855690029965388483138386150293740601402290283663993684306230908036726576113662243046447512834222748612493524693818159415851151344337171719591733970681598046008592759246790486961832079962143870694641871083241557072351227303012322533317695477874817717800406002547289796172117351513328305727813401655823653435168793369140002504972403473416680789171954982450173938305627123614259343839389903854287389489722275798668995190146287763229116978962937242183340282871848647473427054227012157592781789170836364609941330928966335826255364664257042533017333736171060478304686101007852512591284542441994090754506151627446040465202022885463254498760141115184669539606231486507501085799145956807177435171454115835312315411046478503680601467472999740404126145991616058440444147363331520004897337252507744931047534005151107662308385817094877418102263983292745944580671763409618222175484042697495264801713147066990646367860593767276218470790802664642130619437001171702798953603291246234690688017867025067409586049681160310503015416814983026739113929629737896244690498222321507576613202291327183383433679011421457026470991117509472175606420328274812110569325089345720061505498281689625428364764033959922086955546720625978652477693380333009819962843367682122681504850206596730110377674830690337021979247174430206350784258661490092439239314640895649278254295548128177371767035835153434699739226992660113558365888691578870970004419769488199549328345194203214989876305656560298276928860613753543565287272212631598912108087760250035065167407815153262349643383535484058578082413104646488608627476102296604585831743979545164223783901596178329186154772179432055603264001441030535997928143362092363853354928198780405211078065749119357488082303935514723189943742463652417765630506026599200244675116441540989390960648104566526540330358339804105509193336678625850758237706524284985054564406276311023449957256568221973628605788480760283671571769563659263426586204911948046344310479016974486826422774232860937999665961495431691867232203102957505521324414092301291988690836355260267835082951012107409345405349494432582110360872221954329265868685101092648065153130499459437760969403339865776799624571908749565416731906204190610863499872583590806795762007346158512879051646766790978138418587535189960136003943677596427461951164420731017536759551531276086121223210041754242742072234744950771781737097385665543237632575110472798082783306452004299452662580825433050798040660176752641403457061327090645051487111923149175246922114696595030381780220999017163504084393074005563684760714020610537690461336372907884066301252362577940060637813187526314423680055116233933778239878972053554405886739876732675951291235419722346800556548496596709766062812806512979120331961132477500801954341469087465232175040176644225155498253386208235553594187957298826133678465107291002146819381615923111136948025346628166739776429779153686330192032017628371308753974238552755437063183144587374635664462789413578378952654039085852719719304860883939656745300691996600844558079047845965729965369087970251492215711833876611826702615926338462421530741625987074507362973107222676605592404910637146048587352644256270116376646338009385699114907971567101470758107552269122729476840753335228675430567561757314840975749354918596745795598588750657059196417424754703589923805105254971101512981144563166859784900854385610019576515457917435943309051027610600565486448064530975218028897620435635356109831496286596776258059776013343903588645749077409077500753351104947582627015561674394653328631953719276507145837584981913596844673511659940230570934702246584880991611487305349557134880219772815580930258860861340194800237378045676092384347914091813387129594710807460955755992863037453168622681535531889679714389964295979890953537868560906024719246558013236801437488150884999820966053565202768615973108425493131073418593430661432352783843350062066613012946848010381573766065239784285905299197524378792257479596041715772089071536690962664690635739821709830406393571246542560156930184326905578663874405785713239210860493048372599252938095016659791592442872778139251815646976166650324256411296010536798391100349111134847696945494007985423579708164596535322137137707513589731934153528762158450862212061775868820693863687154312700896603975832720661637291996770375060499299859209638541001660544824753483968822509900662617126886373595364008650273904546856333985052598842089744712061545184032203575597473089873829350535058128476226063630083993312903976577472083094494531145862747808522280867458206139028563430410039984341753369999767374951121807860538589110389759459452185276023493665870002859342310095937787974877399376103723782806549796889667964774483867944659866367966473084262179920126162294675158506887309287722096489046184058819817362396284385795761295392763734103762832668229895961478669111115385480385524959647477931439728082732285782678108959788719394493801258934229064136659475631891079379105779525021509511241282669363769621176521551864761054179809426040798201505550908476538315317247724809228380137154430294669166465776542229738765597119663688215908876934280298308060777828153704238740741630123198632727770319919715494155657408337852369117894977839856044033040101681342248071350711539040212199256889045758852426243298698610595421705633931783986767782834636454240391305350907699759729924037734217383902281116773081235524675822533739480708368247380019736565995534839972439384512853924411429179122494235651046821951308741960710702161841348291434007599398245667217710717686858417080667614523422517560700661120476201161777700178346966932077218084350171521353344447328897938605240912045704576232110877736664901116800921313439636553974080145397137945373233360428338547402750462024171614394739772998956157580821057827333261627829184414599534213953964292456295570822328141552861433048907468330178387756395871930299271490699999959990000087286566634659196843389835275684857003078153598005612974972876282497494890097835599717755044587386856732575377562184105124868120375861407793171970687524775011130957861625721517421720249008672850850456260263843124287338138914306260650449928870841886352099918092831931600258729197558279810272577254538224616009805309697193884856666452757077410622795006934854818879082354691187407485230766379630610835625650084315258957545467497685315299988441521617064741166949728555771799168138074185456745431128015795074380025938772392047772014773906688216360441398857514221470116237928174655303418021500742011023306671564144808177757765004646264714728282010503720893265502430104068741803648457262626377619771673484381363796222402531325661336810525465169125163155867901064763975338376458415467685126182244848480725525100442835533642685875492200852674033091633868757914934872186762044746132248350673756665322218492572143035124158570808655393710405319446462909372758801684756497307794086762592940078575256623101300769932691770248851754776021563239774018075002967509926618758461560152122700532827177415689506704975802655159557600122971088388402356203881016175322343231535111425449556658568302036525031203736302173843527661845778837247287710011690757970774447940270796320211475072392629546682832641577675758389285771099924484879301269180036695033137611034448276981513753866663313037429284588057469212746027899772077799857587565558345168770171730763051340035576851939366413115683132623528937239689802730737171951209128304269245127739001013348032286751536879014288956501921582272332533614268773893854618556506040137367292345386301009938722837118217526814593030277917576802628115937886792043619153751607280938625517959879212380543760670374099443833769922591550644738945557662004432453929323666153553937183912459361893119855245069550295482321428588235528623934045629959178572051774171305896398074726607425625231582330249042731047507387375937962945297300004699923885469350640502330591222915843467707872711803670760279159868162744792751355422257214502016188698805724792157403399322498821725806492313051419901918152299004377746564757166972423007705294288511217435049173310350225750740670260796103231731760911735034981414874891875688515169603237315241857782186549932941503910077185911437890089737737162856001163571751057140379099474607385921903196741621346963893073894951093510067632840849024059695567710287828957755477250485396998564298719293723675780178844656576977158965822622382239876760473211445607126700018164958629903779965306219182209291407459533244234298318882766035798003983167163995809222025565539481373898770568152895376345930269971196153519527305081497391552030262071344438594683181495130179224820279226068451271787806258905627738078648475279403179947612601309672470505794380288202321337858768164324243760840719302139090887109626629940277834781228008134435916518112635469063241925262444294773389074263885860201343066213456130416251321913856766913627868638821715213146957660645048124617825074437473324814099220157900744098164294863225649261086009092141881785539152358229626115761093934667496680857049878185914375062333506864595882578396174487819411890511333411141435665130219081073039461908542262793007490449000324529456062547551541409202393369873616071010226212172863657794424629935652218203920322912442357961688875398926961705194350385480414887878110002912690136438249326980934246182220688618942057301486388474752739729129910128386136331743706332028930843067141571908518930965318580450189698718685519095617591764344213177121428997379307534987380546127362922931578046057435163873013278239779014751160305737117977937213435532525276107683277781009531371259081785452879886061506332275230060581664622532630914943601941510013999494274197150534629982399590481872232632756906062987246550955592310118014262122517458883911167680690128514634290607300714691033691904913261380727999058975390780322604278461960571380768024759067694092493118404002737725025115939735529579269880859917179019341486932598225922111921454192739665846230655663549045804433196848047776108313477784241040242531961208576504586541407932782178858787917219825446362685311332062083236750493821814209872048706643934619011139756882157339619720324783008038375114828504508845041829545001373057732397718085041705146161771972478616690827513130935129389369731586615895476225366023308580382143745852959915254126441099551367554518752431745097648123531601091019240968864096723158389192246657019899966073571980781545900634582809011173902866486583607448149172660951111992686062234338091572658515005429469718514295490314209094657452795722148350869425080084230257328553112150905619436513830959044237964911650303261205436980846571277453903601276780184271935857823119808113263578965338211188355316872851685409269347168823375538963457274509723452256842874961751977484557083676932223075366041569099243353958312516152153915157637151607957483838379914863290139076205135344180261233944560138498714062050143014909164765515967503257152362393830207732474033096984358820578242991126471004905116497934333916065836815489356686566052080073071692031364841056855153718634989269558847044975248438175863843008130285094318256434388277392005091873163915713514815695630094549695343952883493574976295582130945077686155737899950129912384339159019012886035284336534387976761314727115127612627645159995227737218469010492609828673699057218346765533529668970767479480001857588379475210419344129218443828672106151112423747882086101260802882111462122184658665107359358322637715960337098668965041454910555451150585539047791388954927263733836258585601095445095543469741107464920294463727473445238396633110941856938813563755866335577568235788363862463866638302688607815350346955933849255722068711386089920913767652251436660153800642333257327090062151551436928082478438497006824365564418110745438567476316967327295953347828122327693008525109987901222374309036072523834574117972015675036342141580507813955933365499381046462278201627633286569088223176123986724256488945964905779900049867891847740277819922560110393350538436778753104583648070756375442900706654572538417238030961216454142897612122992646086831341686054672978867775064621893987198118459324702458926223751858580328206828343890750075274134107376161218590430993167447367865983144340196191468856308166408340464991508592103530599497033278350100295658765793454433817453364078865686822912101291266514837692963784753398473559648403485262236897061698812591658380745655270705570191282738042877699561435972788390170100085898308806321810111245142030091056746004084330486132456311333090178036235342448205448920074163393064533998483584891354087981372856060737325723287838798502479930137685771749395427392604006581324713585086745568436669307981200144634022767360297213354107945611907361828149376807122193070579855729586960374050560604405413590834906354075065855722062424641723104514061335069455062476186426730415743205687693195365633640363989171449135568202849599335988049213058250416874699567988284839828264655940406113573555917352112486233740289998230580393916172907367455191412380265712152255045125978125337959967856263597992728965549386652595685073722084578808685501945857337979593168958476086997743643367247994443463283974552804067604182789143875138138280950829696606376165101847740537973664842418995587466806400466374827374716653951704425787873718053905679138412645567920494653928219330211935048930961203684934428476001834935158084276627449690875738329873271722717342692969064683036856003560792149864213336728420724767982627780894373886874692662896896804893834549079293350541155280711875862388694711309398341284127490614926609763753485326429670176143219991078088083379347958497683048429234562850823203166754421768495573746418302304251600399380313789587603307586249091594256231995303822328771324154539591419706174256530256526061802299497237012422800347277628785194356541554338299817753993768530250870051405041689507155711226792598905821883933496033697773892070610924687590998653630213038316119665105880622508846803051027468745699647761207783673278915291155082128176994803954809085260055870909143411210259048681485541036049581322442418526479766509196486921498671512338168574044649716458631443105351192807482715738830463753619619928235515865125491312394966911110210608847347598789768798148349126918573660866066194877886001048068630911384175817714248917800941034068010637096105715798472678710151521701587476248326693409562607700446950397346783250630855086766498161108139476544107169023891678706628541473216417218320522527945307183689483812257183434205723166817627601267533733999380941758301579947350721499921214824516964830478583238149678688954221204368285580234166422575795504266332798473593988304275359650781150647850986392409093269902672843359188860286712191523864105525161879665123323817783459062227492752218231137376771123158084150797394816323374065727015385005404650576592926925475895960278956461694934230124779419735799580711597812167991541100915477146480494683408402780101078724832984151553155309478776478556821271068811003086607840383482703799024299455490278728026676631649772493703767270660951395892725139942308022068460792350819284044754231936475262596069512395453481975709973501998354368284647620807416366271125530618441084785083976210472791135011625864073842394192252840022542780738280085955428814457049384826743141271004229815331191409472182191412372580017613308845586811933583652398626019904113754197771783122882766412551196333991472208346597583277233630570730054645605172073806681738662113415660167755326844737182483280304718882989814575807969329869045149144264413833146964301011694384869376522816283741511585200754901228164604910454585683542511511318927192672119938399662721048183054881095235139759570605350893678725487883029487145300237852714477136558929487578469473734543946536724695856587316531669267511696163559140854832352535515190853511301870482280670368860790966954694718891871441903609722285636576294038968054115696537272785605360292701293665410859495993045736353641479131227321209100687462379165275490772643100424880365944841958558276368734780605434947910220917351112828315691665925346599674009524850389559082794340710665455430407918060559030518040362765101619341178000407580230371802057691609311435660004159369066941572111684487736541383825885961020928678246593328979049692843580169381040401234895105300119032041156867684405270818387331097934398906803610265099576215384968775291701085996926481987829861624776754804550482038609323793827776642572024588739804097247665633075251312105724422935378135949668098957121770878808575869471222752071007642877891459910099667606791934217830095230601162357191291382969934110089710866053994593901056779397626110153329897293571870106690999651442415120122676522368683267559686750532948301962626350756312426920461978437710131339503909408842546979041769421039425923291972829130255031921416765413636070180293145115068214216339273783012635994246410969174724443360558786223442417244118943812510013462236481639895125787439987540158309596966329789094618699067686483289715001717813956076444146893195613480878928275640916583483295792583832299683480646865730273538540514651053298901272783579531017937567220638468932873631212048574715344278100181032722661083341025361845490738373495061239895692236807514086784644840701353498260502578838980233417778160261831276347811675097961139247926680113323134561316398951217501579828613407554075929335537579855244036773596029874822337472393874624580730167390857888679760250887631730307148159165533435333476697434653298484609455070009801292454599374740300729504821730709383979010578746672880300266176962653084776407289100241788862293261931940596095017365369960820216966909883083535336524406439419664672749123330440527416360701979228108628866327504393216387936865771199728101398097294034571088880524616767588363078703641609421239856033895597536857299370273792006960809427969690691599821081002945440369927827246535067163449071052163763185538956400893986067343243653993045703068703836203192230323177495974423057835476021289268609471164642458723450492958195134073000802906801540435396604552669126110239968695934323118704365776400212877975790740171500324677796090740323735312726926015655899124610619611081383695031922316556847511659880391529908453031851216816301695092678363446954713574528128375504949232655716218106410418790019682995666522376195939161679881003322818595493673284072000668009506315311095576444734200015412868386995462806119081582232286815524843890593387748953999322946495933411003434133969969403942695945534279210708747600844110831568597817293134962429401459522070362401144279662902904752286492427697631716749299704668900332206509531313830431962578530010540631142931143568228740005188002876864375576401218196279306251225851801269042513573879584197900751702078506455500335439523132162567675439062701561971271050954946670863892283666382145695473452894333502804735783389303672665848207541110538303397102456835496327726004624366836856809823149693551614192900745664442696926764010924527688662771284765025679855979369049530519610369557968110820554024258800119303046575247524672998061418944971450817325454826041537262248057284405505239490635284272485080606240801077520626113052967403757391926554086023061174207747798337682508107078734984914195360400212262380657521330051010540280910311371920393631193518996867770886440713835657432820643947994397283154685948999998858574061843027364716518293053055866968802078381784838912924939035634571902098740792238685828510619295059584656176468392817757170472254243477285873421194792240347397674124140960082593037207937894319666236303383835448421158280918491040833725740432402775962946683482426242384486683022295884871984966184000720158647796962003309133993657867310226223125835643473045672294102662412070551863602199836485948598725781302166377102972692652226933176448316558099003867932413790070025640411783270102146340183714275718790376512083422665520429428953755684296718622140316202419706681251409149832530192781323352207772924298349741553928802648431910445024396856077248742953071224091145040253232838140541577389295092086699471347909067672697382523606450038981855947957531203373056946025647949719153833950095518702833793376960591297482325379315233661873972799005804940463400503322105369029356898734589275973684511775418910335992113096644235403072769435521901480726442419491597174417919358803375158960549253909155360423044733171132147482662669958043497313912713975134989494433758901000700833820623979804120309743277633410734093250699563401632055607245490101759448179013007509525674152243341744896166493936254631964173778952429059880618823940609126434368991784356005087201670724819200756151083463811025242426855498120054520921318614925830745507931446986098030376098289512916040413657363410501555947700737826169633469383426911317179368721227824812199054035542594526468943667468332100803304313718456303530983947051890584311696010748681497714705599959730265423278523007526036363821723600071147459702433174022078652609000301244896086167509429312019875821708257890556579351853551027804874304967865086513312240756527443662314265886005836489370690850384832771682047101919223936492332395645772225505968651422960489915977278432317902756823940606435334082666028163794729722303096940959674746613669724232724382747436698211616442017508893570902584893890927220431236542283361026522791735861144165552693528007679394463304301269408165966146958066598440214930429916273742570908020681461450736985827306066173390361893054775912216639493730977234279373027805281225796683694765484312354076735503789416044773977800827363324601901225629528034187280485763206074462069314060474343492258826791038279920357515807641263360829376573426926623354070684783477560221796793269836623600228258349163421131760025012595942913290197134788956812544821694647795765154356354072166015921772925118864458229794133066016864413370670753034850518216958842660189380863573966571946880712589727757190535028488590390522546077788679893956527002885654753962532899407678712333640179884180049227869120800576934646915140826190211993563738276743057078187988746142220897732570861173450207647170768993816005869519563039863855008842675790194195000032769562439344911844649766663521623432402614494506536741889617162733457380759774072843894136461095309052810052199094007531100859846073952989936323238368996252906217313419179185251482477087913887636251933612655733293070795776114986732685025312164868606177357508606717564131574549446710293627375713359085823320004858036540087039797938812928482790179377969056972412895232956362107337045227449594410921180626737484700968528742609445046900578635739468843619581392897409757559832642434462535972365359412326486203801702374551062208941245516649281039627182482453689674245750361805347575338392256564792776173206094879983284941962615737905737031734668644510146560364149097416528143750743685524014940091566796502621794199340705950845360375674578118562772099721396807538390772250201266954356748908726723319353822004136558400505646058323952420061629622688582980224412575748815935258376915049517030438528773945515581091417609316564037222665237749580846259902907709419189837083759895607908691310711003342828814596695060441696643499963355270705259732924786804445024939064457568018769141799015103017001765678425690971945201406916517401181778501537544889620862145934500063928042561325361145691779458726766189785460911413348813191848221034243645260631802640349888061674962522044128968022655556630811338888958131329775664655190394418381418329810397247191193062442545724919044133767130399927621450847807547415040901862587395762725232896949058019985050390185853089741090912199569857358942327523145903420443134137753126799559749164626507721812800175932412211626433760852411950603290778707934404807291575477723250858566039251218959723478653211548578694168972320894933108719484115992674420167489466387264820231136276696164399250524428007116185256099546750360091655107041507399140366330906300207488916679903641278882927695508761333431949857794256060629767791468620425599667795769983496147374321898743990945715914585345841806839181893559615004976894549638922104491364594216474992334460233463737204050918927760357426740813987044817675095428100849641836407817664440373055678894714436512889972757154908383229892243966165462256412247443657004214631775584994378076130447352113145369401348917162164830932059481081747109430571215557891583974805090730351991142130194916465225447304839470003880409178066603331959605089860058597385138501575048820505312245215996581662467423290011581310727787246105729176264952078339805704222041809188622309868770053030216773068172376131981510765000391634430579940661923119131686483292494573444050405443547752233961574191534566497692953870801270633973232788294915201702144595293248313206203688323376948645997357823827275272398969105149641806290788020259334608087238698858553526311540341821562116947553848793632078064871760449223411103841000764269295111395063098844320600787173347926477941934448625760334820782786978126071961786045048637933078415095097215796148270545264763936156894811055595965016189989946932892552472146514396653146003705976352181293840287735057301199463679427741296054369100771086809588747592337618249934050591233187813253355024945316035913717613704666631556151808707510671777522047104903544156828352100705879377087889281941010819955340785225473696104493902805931971956177057611895801467740120892992079257761732998093773140806462007742070123873852871464591576180184939813198118862897825396738357588473679215852600272426319924752381952598604016804310256234353203362760757364689009154146367233266255278187160999576745254067886622932324715955760241310195948265957530368003727458438469777283834032282522676169718790675512119816467946180472302008268222853827202370258213764359245573527511469818941151816292539352301286812293020501110741624782720331041571331722196294961110417332169434364794897845639145402843354760450405504421147358935316000814498440724828745582038949970258932577162273969209297256687614794374325678332342410255184204547527499386927419063938549942295330009294300084351972758439322290278080797921322414695190713144681465506881419429029956140073590345405236363803096763544653360221273551501577319252337152348095660295208931967389338248461151252627498589394926660130793935018809624060475412767935844261955658756276383306231588603622956277126831100071329805704680702237935717311688589602081272588512289444984476845069077419925567917357427288984524461747792437899560764307360434415100829308852797460793949449631841105094419793201338465817274599447190425487830539869429332127545592985137710760145052601135001089950044718742188193792957113880655819198688414021129638547991898606343968213917392703214020999577729255227883593117095036338826033164720805898559151294603462737551824838847113060664653059881540888201645411794883190436505153493507223932708495611161000180355650116075224743497205196873480143924148774615466148857716284061944408189392053804269864828761425376149709538791807633632639139349479811697927421480153710242105788874752302343086257205561812015723641916918048514456183357550398358725823250536944607101048582937273121923466962873388893969792055210871189979418446571506045096921928887081136023451969882424216981695556517434080634873358575923761073309620248595681123732128323366314219963634850013194061756513647331137924129769837318187715315825448496085250341315248599374397756264394825758707928335030277075418178797957547795761540313959275163539742303783344545661191363600148341577774469860952698199664513155338949787030749491394957434169723235771041617313075875469136616448731048409365957081374326150850288373113969492536588679748431142311930335750603074695085154387435993875066267115936866274074441824837765399530324773702646182919815499364966046936646478079625259197038208871054726599995170002880796445601831865796390883659806438567263028948699603605232523142593545158108862647561718174331373525263889013206459408777863358451013060242780527631710617015716764760180603846247838048069065419642793768344656243211287055520904262419094482243686252787723895363862082945344727762318834597308501186732073986887004744101322441247949073396093531645665706724248050199024535519459985682400479568459904693281107009232557129981060627861479563257691685802696651241911593429119058337272952407614229854467087424712130210750920952121396368479646344693641446462107866516968249983537849166312898728874466445233514472362645105789508737957491483087547531670259471888598658203512326951591524572284108925425118753289499025169596163708396919182847967767143375684199089330799806723016176272596025081814976158521775114528470993785190583903883620995118221167162500061465062350122038393183333102822786306429951168508056326964469232030132788083150750646882859588396653730313273795962238469600276603087452558927685202702458855271292797889830328713553546561752608973695848022308253678940283991026756480229877246345220127353072208556493505215972125247665690216171315442162969733565775346315173711481267464329545404651351574351440509258085762910026709104822001557013478522965622965306402518267583815184496458375733260590470300633077156965053999097294181941952230444608612306114351946958717490257888638871581968480450426975660135994609709033682822312160764454186026098822503628208021140351006066761420858371108452939512161318539395713028915980437029290036975303384132577899562235844121152724518310850147874237763962900182697408848799961228580999520810311012253995514191908717290036048149979920725882046000493628639338228513777196323185523725054837720291110993345957220174963673030641177734699050124832728922979447576133722245131636846195228110970955326181813853391444465906159720911126467927951108062391435892455854026916033865935920707503336065613210069050262151841206688334277075905168174029760671374406779707561133803510450393070450626246924358485390247449657627319329572519273009780865901841531490501971440449647369141946725608160142285283474808028784005612043049245283132227588023300002828440673702115547230111730133224262471917610806122411714922976639976242084666105560803757768361744702646195453858956819226489344238181284388602827645247454476979820638622836613182577419914458088929290593638048711191912939376201489985261583097572517149575906234793836373249006063148972863658594872929884123386739180173830782315120903117974243253961350642139948293405014038680510397781447061684380307323186588063231531260923025888581931313694732551286371932634640172554824018218725191646072198792106502536814892016831409088946004526939808472108001944066615445731433433223133632210952471384783965211978997956320930075848326354799527165531984119888300482358307948953828086281510015777457292301866222458366944514250460515689500527606212659260680446371449234835889398679411021475684740533183469801703892551985715981966731621314136975492843654138479287066790388597890601747964468392878609297841535852118903109619536310148083117739090325076768833554264443147488105236440826524784320766183844658348152914782891915826440146136973236306366622765835647354014444686465019547287732099987155751332179598291801971198411091151015910284621564883115741445837366093445845346311200679219797194756314583340113011552843383910679305546408411853647608992690225706440900392005331467229030716432393858047642038476698448971473416746319170213070180513723191178687703962696122415038468801835675769606394949421483410133651470209672763967009980533369069954717919664537462295855168600774128548813933928381796273127242916806432658288044806241608190257171615085660494731640602713492333571745038763011537225499905985353322155934170900016618496551499383469583370066763551977830833488933543963408511861308208381317113219617957947781644642750050348829381348879480926061035932691855378301435366239978351501369640837326498109704822388319603680445644917225908953786500418212408524041275902699252389226864573193224449414547766073023257598415939777052061761591479974188096550030460022117979004157676902792842124964749771960119364009003377906772449585211714533804812080522017477951613632775706403200602274621219046930461137486790125068874287111601414913434133545386221952451826101155581022367816989243236364672658673704997945611486944812219232304057427211549668969800470066503862721155886260888909730864915116026473729476266702801332603336143703957475115263866413160880612862841164592116765329563480534123147324686176808958029726849804466170280794837329840259646915091973477445182985684074416491539010120888516708756113089095760579049501884534404709316171607647535417163413083475174450304115862381215957169550022954334346502487083540896453721306188803271739179735745453092144019750362818254879812529446397396853104575766481916334482389141511064174302297337869500823568287251136746597830034631864483059719619983242217148618763069326009695462016631667280883284292671570753807611585093411034379602958583420606443165761093900831767733380436901739897202305569267853794075248018589190101993088534917046014141280102968605545059048020996793872852924281555238516384589982685342788373441979771808478668201448172363300741459690296400473225217754329824018812351089189083485374579990882493889575712719159110610884636433524881863442257150271216956001208745464574227918502040310140983201418271376991870509292643262695247728339288060211901816351633369794173658135317501237060071377450760256956713693501953915021228665813270046370097183791989477294029544902836138956400748758250659177787110604782364826566521911290759942818622880814378322988254452147393850026557969654152653990410584723561997950564962607917035252109350463942662667591971309814897202717101153760419668150420651453601850231159099464797403281039362293371539375128581846650040258211709995534132114172221670243309688074853583747702190052657832862382468925575888848837397818187319465120420214848226889438336882842541658198359988457735550271958370074188459170412653682057463768618658749527563847533244113057307435788042366643056193095995699596359732836491472747819666150364942823306724240147669241722108114192697389466692468078671281594684550372240032527263095941315373997413840197707323879149259734653890900934384874076425450628348234120842107310079044203493610643307680193023121964630456311097483063598807115506164521553138618540414905737539829974210661823991432296133641531115069638778222032131770561327809186697550363252174915457029006257201046718725472772322299813089653059843952364801813228429244184562062437168343338838576107592543049533954383888888917943789461207318287085474848168464378098150992371202869478651178993921265502916351536313342117414704733664210440129557377845369527824806505386708575774673673505235016877667506310490062026360727190200868253010316325960725175822531213395366428344146984185663908379935076969466313548871314697255216054242254487553626287822939998775556038204854962793994282019460206445032899885392944693743661838154277855914203014449193697679451399783418641117573277823563194207004143814493057269985690185830373860408980364792293281334268332703316830291977293789963244561023352659449210063536353238949930409450458469367353771338406093166649116999425307008563830792220472514173213139706571013062782804051684250530435027907521223265888600488871303465251772677395768333079946240131553319491732813897454068053872569144001991235828821150184833902623916902176896864179966005697309613907314794636790563537461756277817333086021940084601610737477957670459960219433583945751481903716516792432228151772946994735690760075029543271888662991888208030870606987392094323286754293056103953876526219033843771945204906059515200735174811058716910577425392041554079501709406712834105212359535594534479136743028748363692116082562160055349281341462503219855447038276122133772425770473193917671850104064173768865828706164600467877495917395923141937288232668837111587670194356056991124385156123329181907430313267898826665253064402781111998837380056342303880669794473403962256858196619607636698950525447798657489477866136014563339646255646743135751386126457193094708551577205035216254564183097314973670394576260076504739220399914728542088459140582874241157066838524769861190166867981665529474411286438707917178462637039760160979726040583212307211095849134033236470260783438114533970207715392602305042158956789517889505916320744678736521929225813703289228974216728711764613783278699228784624449925774329740013292253625834452142395208558050798625303902026193735880494277332364223851614880568400832101891387203902703066274802152804324729148342831610973914625260887092637029235214353898233153513846990361426467496376239816349248086263913448016779799969679662664864914252713558454716963269852643169417978623481840083585689616482175857755461533020021562983545120343145504399925094154754364246085801431265664107030759255299645742509221235241297179500617402413936828789132641483320410804446995650495957048145403783032840589078666012338016072272562937345940917004495422360715763666721404524334963010579517785909603343464490739750197389782783361761746539552400344354778188533215147103338373648054621803647016127004313086408748436472174770690362232855266139922521956539056162556020102453673474115798010254839951817690941484350085280056624350284141926072538916407909056904982112667949787220686729530887714032068151863186133940274801738093681719805775024007620158874519283431977133826934842842535535819257828978422815590958024145225675470921027755415497534270652659975682781164595165313895744197492676789120196981209762428472541948398098934697237428948323504029850696376431355732027156005955127454613026219612308189089959914342559219388068040176426830690124484192217724963654786940582482900154276849832911005434862285401059841478494294767924856858785362433314691676261931077905306419647043208618110987349436672285937790703151541389776768257418862493342145740150502577322837981689251396548799179812683776788282388951244651350439626965286326845454692833577953373982152804926024789076094153548406670007838811872429248205504610754645936723676407005043582367885758977194213438581290583405225505500949511628710040730139759042161102464259189803400456039937620755094530458392132101898394995732725786611327890763854990032933672813044070080957259933854837310952431006796666724040221148591436235751356635817849077850781797543060170101836242079200071904173283590464292658462938399025596019992284550271185371203609886523371711980160609576973883963379354145219869036774353255771709673070037913580395093073915227782312258831010376040972443189664148902429948769420125361856790661144259437621695150160593262306627800373424760935128425024767313847171572943817872860999643358034449272652108816500091681384434442706658554480815640182035516616154351843749349027740497288949656409529062160977540492399077636865202563429730381810415727758542464408981331669982616011100333822159127962682060959854833098494209626801389715072502583922330544080571141511181670008718845681323848851177165646357351126831846163092964642296894085863549152743408085141980116916276169399538523433739841089209409156982403541576556398234816644959272261952611747802061647255658688497893476781530667763640251151233782826061292159503282404784130543357561511046511189777323368360691204471841368590007519129444693461709886058895483232348120490328380496676166726824787574334436583956694644519840842452053877640020207565543422140291844128094904133283806342662512845573701596664503093398830692817698664100420316962892552570643756703588080614277152788794922070363345896900732822140926773783734650117259089693513265538600347828665828152854153664567790093133214794628436713411419381792725846485289509692616464279224029215560307673922169909860662577399374831615596076500749048910605645330716972820800124398432231337805921691389445047907286972845329980714654401078121257897001710212967403793964006050477642592048454997248989706967053003355463648146319751794842999759424421238954895552707824191463777532602185078696642145811356782136670788789009044675273727908225369574236377386687185849557394244819474861484084929932005653734565758861138882351460909860840330296917400982670788809701478261219312037033419993538724261473570222031729570667280362040866628381067380518329306394508375796250912168076984654126304818873925270010189878834534399621390815097333903288360559042521230673272908445836054684138885308562442581549513904136504646681781698101288708859665351173122627976390006147109309828370665202376281104101196835521056883618757337783758364583357729441130744783076647981796888218547832363404920446546066230275924359945575885083668620617130576189857527868151134692584666143666608310814980460306921267552493071895636427376892344214497294742656060303223060526043268527026931429512641390429499967663061921026450645902514854084304952429033022876024362791144758629911637695694776563868488817680070579427963893438325623553296248017984010227395664931941498725911124803471436631321213748260342544522180558404560259309345483168870390480530742606391895931524658434657664246575181771092747858571515186861100206898299027759427076217705446113625998457334978035983223833454156503572654739143511346814385416355916328397395968147046796711542252231414668052236753095771692943973325822287900916046557902895549884053446254789425658786401055118998819289882638648290534124939988882025332448055655353820066523236974208788878884394078672810733437994086059545291622751689561847521040538926238383143417571609107372787551084076539090841435826569288355992960220536647208580899065746039315994816254380303779801948230447373427870415591833581111448268171917533069865908378254274983392025687803849037008538252917084361049075978235035420221740542962382604049067805058104580182641124755185459341167846437283395542396199664844892208021064874825665032805028885746690134905936694275472104980660376816795550723000336618711441091951836150076241611715445195776458060560411018350262015563923812250948623890668595412863549462993008051602625292345908270166956202072003569298281493216989830760912104189765188884270106750420686273846115970497750479792630302110513287911311220507571048566265648236256210685263219864396757496627494926187259214892229952183171349227019012020318054872984414788077085080843665578789614303335001927247921282510947368749318349355481415976136724388424501743946604427433373109931085978516631829422473783958881664278157257805948240935171094948813035957677461152234136471207645644005292319264675291197773754515975106749931592675783114861295635020270490763595726630298742693941764772905473229277079543081740967312849516096974066076314526974642705532002596344664363175334746260710319426147387005334055677048439209374901745655216712778520780441023616930096915358752338551318508371873443059169733885529536044953146468899704084670086305279637481068600482601557152826289016422579343602108747837872853515733504113696652677884500248955235124531223350511578912194474367867252835785788630189819068646482751027094240737524581072718841756809975358509766552142992819418515551765040839439826078999390197638104536387151362330597010438819711689587003108276492266792963805026100732995676407822112378365919652425609258121074664398738099525927703713936603156852283724152227609186531971305593169554775958182048472570452013325923873624034175160017540880574190720806934734146716663814460905544850771960544379422068334478053566561399035852157491934449268479115672447947792005074308074837047955876211799822382247991960832661821122827654592143449342139731602416911521460825590950727044071593224043691015016853044506895181357811990154399190452201358270797810263804003447264324302484911221516319524170310174742746248657242465160017845531684393539999550207168137333125166270060036935603925508868536889256040037918437961675769710755262403765853554203670373608407158379286673305676056572411819161983886412537164426796272254875912613038146719820634170294007024212336271394132874227871597423693509033937138018291548722677742820402353258907457125059680506611330648974795113411361042121041864758864130811617823853920035831004945701707782335884778823145778214245722092108013776426433540558394703537693738570166392961596433766679771527568043705122935526629728331977930604259020906577510318777310442353764060315207596702277149911632316574136340853641113854852719532245741932349170924998686789917367176313927900507887828136675924455619772857382916888771407988939989093724578756496987710202882273635009077718393913891411870982321167049891166945763256582356297237182268556525860066244246049293310449356319981394339501404609107408574857358554517482888230237481005543790743925814768063528363080972614316365037361057976312638774909275382424212629748201524351370274130271629386927484970877210174988589104725660250524867576263710007691385408526337296414007718239333844975351508198577392239621104409262454939119761595465342662564396661742550819693807951235638372417810626291110052644931476481566882088402355149115854386359600053795597008760619605419039349314527913956835809996079213913953136745749665982868362368199426829128231771761800902499945091898094361811356993907313646542417586511212924787131510699986408856259053582068723003521191185233860109112639275600118119239904196176419471154214762717088126500672232999623055595969850049061195351854096375968820570813372970572535529536343720524089416858628855927731829866643529970939131484389668038189219040742465914976883646065769684190269452127893346903600027445087308942304979692225342589668169433534715853370483442859673904866037485246629259577533242174308403125726327255371722534256926680414219307317326599734771709295194966686652690286873557823186222194153709903259522730699076149353462007184227924630095599625102305324127145184514692066069033162246587477018984630376681189063203200077076440724502192388421095975156142721382477955100782355232430489086868883720962785347354517228970449026264717901068622437054802526750051438495301173188950020429243071963331698132061141943494821434656654956552367506994364545475739536576227443494743768709791643280551858126595007197293900311294980787643317310547228517416036228183979377848148426455056406211676890399922478453866799044863620366520452630267513404356618162977641686564678497823917217622649694208973980615928916379170083162362275293129043393537369743643405731305005400139233835525509191675245368328933534234988075695371629238466326671928240540303733955649402586900461474891455661182783878662018382078624671482391508291257769229871280648716345082239500410625034422723316412770781188344576333820703568660405651380010640850593037875137007730957229973345863092346879952110513772144003105208263042512527670645726029405924613636019658392501977505182208972869987699059163899388944761377362632953744335830203292458864109839435895057315817967877753088351706376018617879671346118293047376100594686580868713454638192181682660939832056672247578159490427097755763279045281782432900164127947705007157414434128032789398210916056782575902908514548978291165090130171158987361973736074586771819335684406159637895913345202125880949168948975029361624906577844080620718767248500788710920255777175355722360250779393125748308407925738553415014171218562146071689171181849880605344374170660440368792398397189708641167054019580225160204615593836618439837813165939918935199526572595204841448298748184989250209699038749433859476270714608209437514987944061048566670038738740465501781114483507663434712406406682229955957311929506689059707425052468951404488871064188161616779263531558484514320848458323642611499752305681798759906001574086489299915099916657456381349328213145515547332877957157546993245338023264064154654628954996121117202575690257148316393903376967796724083935408513101650412741682952647053385221819483269173294680723096146167038272661183997951849407723708688784297092962252524456102867854525757073924971068250440638258642363996329640049845684911043480867974213026673569262444290085980461740178985718692000163371782350799588195123808924886372028630426672057124829800526405509698748515605211944893301107149221316536658755412041544324193160596257544662169725821935024806225702149530386987584938344783764072838364332106630311122406325168519404926214774484656761606373190716617578274581022121337149294936070229512259334723354384112013204807621888989720517524988071781351654595211070453320015606228906139478995088584121906438587768164980935056079964978052961001075590572014952237234655513610059100584537271363947452429761318860399602069780954977294239869035951016257197445900416161448653999517403374571729754909407964619234442634629780130466386062441737583726843047670118281395895394443500621334535405943438973815641865255328612143025206171004751982928704708276988637226361024743013187773528854553308314586094548706924285123993632899557927604284497859567764119170705662111755594580059194513348412004652561667650044522292490593679248705586338000810260751630364368847464842274181437967448250737505916679090354957978401775682772025360162254571362469254950869517248479250095922772184385534095638503476757780715070407656574437859932482866598274308393261839476188047535376025483682385902002386085213828472622628625915903147899965260954359437685929173739850189693571430929376477041690990787346905396670896915134451568856446841334899426846022651210835689255752833167231465841020450941515109765024668911513275157568733920038961951311118196850919097035328782165049109344641804166216431855453033646377183099532932379719776072249986435816142947330835792918809894010878471739505112592143036007422310059302844797664331775113663932727537590407571512174431810999654974974801445597807782947550957846706365327375725234763464224751258941597634087899514042719702053897426790519545475916222476542920631228695258909708834834349442325905238607326232012207004768068684905379437817471939352084421942200445900355746589081654102693702741688148724035079561748714690115480502794783137216933761455261940162056486327147972061556166172437894468005093366379553387355663150405619556770487227364219582599479367932672140071821366231589904232575255600379259692948496582476298526358170279011669096750710259490816530474774323785894932290685063591051079708369133192107584289659006428723789716695060426201669695211523060648234325194127971365067261476015237005788419437168141611456330823521240170680485466658434581254832303989499011145106942055856838629600553251588610497070987431249394281423500433635550045238855891569410890950651207723210387331181039840018389189227367022187418838099600082682058486097016697588774221088525258217378592732920058858101503584263580180540840428845058322038578606392294523726068486145504844778673795204155595174450840215876250232233695872638738394709650216282532843084886005927274724592555819088586709469509361664503053374433331344333687945504525382588571229445954128945294084241902678234671557151114087599413428356542112613883941312612963250835630404352238392271823509063192997441656649118113558935891258893289340307236001432416656998562428703652493115441874962346693114999377425799621958740952260638199601260166486143681998607351138264391661192722806046139462709393145003943932455170195797751300810160305525367191804097640588106477207262442763211124985673656799191617352140353137910672895551748743094598062395101870846740094896857145726004548808759785581652485779305402844284652520140328522367411915268287843303803191308105161292363229267016054017094657765275653909779489097257706582609800883202822018370520291980717679037634093560661100352970484287915578291551001709514454748332548329303959087580507789456676347944246811294110351580446192595716330215295730764425224091566613039073266975671123399569898869920756203103083230935473858850393280085282369505389357065880131799685648997178523774691913341236957353791850512263602862760473316993462945872141786949674078586510715090228971184412049973221981870915521378788192712512753089611863019560957316505378924491102457226536668170927398289683934019866641221327497820595278016670177818580105261048497406872735072389659420916248972746079996685696463318174361351255251328020276185823601195301000195249638744753404786355004760144248702810275039114571604852533068932297019216814722306255087370840396920004056754880014210027168746636806222264567916973474815113098828083227016699386723703452468985247425345557094407399149873117070300910701029820328554788540696196673978904025684105851408647962422989965129972638632885409908480913278911636780619668353706584423403240124401077906585321744295635423147230921176397420061736152168263763044696351766379016851744837113363462976683580254433945539524595838986116426794915004198058705915314887553992022680983620557576066515233156431667712157275878289664818103355299121078568819148200120463536412826511662277385521309395039431669916423089627572077406699715616847420477970315970292520334126330554476899112954132758418992828407537710977606577728365565574723577024496586539133210228494336281181789734002178954525767072866466459350436474449938391962582555375472196114751272281204269550104950812038477558950420008207716447885916944771351027627843586920062795799010798202893565774995155425264613286171239342764250092622737044399928663934816415033067732166704347969746108656550689275646592210926907794344268945082090675209814826427870018005167251010382904688444225929125546183040485536236929708840907280218659834172051451758289060154632881620285040976861300621932782964295799304168983255005047685278900357693326653518949522177071896170390765606814796891560793825710809871787546876227978028223537617207655804949661477182207127469355004791480901403030932320175989114198586087517252181887002421446901823717132219907518438314762333700878854037127224849718027321113859055814505576889912921445761370480391094390644239163559890831665940634156476051878680074002045371116029516184302754409697489382548759608704365952465175869761286238397419700992433419969636735211126413271827544183911755937902114815857791289385859718737459036551296613272712945551169273943196231870676868840581205177809724232078934229313499843297854234585829914270994789960546132274173171849579763851101728075621715603323165011097076327593996880393481113375032804170052753523484432894371269735165528310182172152564084029955875161425603537639327427089289369068117193413394858822921018848087862704410472928837902031939238088604400392630180700028929173992679850552230951468993084891210272523341266179635833791143320211548255983831808604487262802188222827840115558150553598343283682005952269472792081524379112665187902716949591843502967443433083983328915201988045379986133998286119022748161520322275382757140868299757823699660881911315333524536038870261892030710232149222778185331986680800783849804540485979513510680371693945905560765376140558851151319165420362588182599381510830714682884829046264810936902146019365012154404086520711697361070317275996132995425719577237725874359391423173809501574596202082377351381577557251476227591036161788826141213761861712419315973067265950656830397481678322449787512840650082099921059788080897823613688402319058814065746004758017184735946366622316942233694009044971188521329258368408424857837347718574190400134085172897004292225080268356220618838026560654894158494798623963929929426181161003852711018128036336044675569553682861784110122751112048132262424591052038634513930441428965412072785545645411142262666823642479470310075956127139084326406922785769814482405045772016424133013601733015249880359548376035850708177545119730343090103334256247495082932603100522270457999429251881259545535393017812899550666047958752586797180644019366033786975804665365272493472691941872629934882273144449974752968863249105992294518742659427539688313558878149219140199816564362533135635237925459544882738123545181085970906035065765948541867813682481214753070504183351003108076895184282311198922290484655185147356285864068893943212972958527766689370409152913624964364716851155236624469211348153900844757810074704462562452817067789177628986954885158271772757128223612966671118927556486817762972208915150789286012729236136271658587240565206189491636711014430551379359378939590319721271692796631742576543451913202021132042386677506587244740807100716362370670310100872187333705703697818166448269909199972404059994648052177286293777137843052097038797449147604676413848829714190355450119221789359290845225688404523491145192046249108407721316681898287308252616704079197278036624390651645799515333306773683411642357001517715962569690417497967988461711990336368145204252391146149705789699173602756733245712326820678987256608060279751852871552692259153273116208878909790087567638046308723727035182119194588273234486304496543023043052990022772749968829868690842055616801185537026779289560127218855840009340345182767199966094029706107176690014421318700056006486605154088735650219906237602405195646624156654212541094848740218570836233561277337511589060385140784747066193293732172158120781950714103377604429530863594229642040501698631612286341008737800156896055294330236172352445458559021178100246613127266138869155970042000669166318144789727785391100573297356912175204534446590121078839860111226244184981364843741058906129709359760338008664946536643093443217375173753248388111723722251325790301294488361700336416867062859129281011173865925042041545066773987470534389679586064723888921237390648905174726080730228738016663625942868818608082437317732049978636756956463098158372586106123816282898078828137866812342710290786499805052674392034198284230386841347508831938792295086132266748642366473587033648323300847334574385915903541010214627015080780163478896380026556092364266767971056728220873511439472209416545611294517022648080083714049403987720003347042902352908079561874779532440255515873313902151842220756718016835730852596793470917807821980102352775837994159097754716336238826083749610810382320425114868689669187645417969156371847797779629550468326669277654066634249820128718323208001049907137799071125470991147786777929513652681206045934343243744651026351328308566452967087579431012683791178422127467178908247681830966010318735211428515696483308665308259901836549552035366399286059187486902066342215824783484667355520098553603584815523627234278813292560317667520905053264515398587822206953330847875664169232609686769884744519431572375763818666790181317333394540855443188522900893047477945145089029210244655582374271968225636496738614338666241490788201209046635032698414486593156759401235289356085851659999153595506095217140504253463324828884286749029202920582862555382543637476812777901945006239583271452543420240399283557966123423978011854786775471562036014577818219895080962294478495805303212463185941947384977112686514663293908554824184377970961578250609817044728462935413777408258419615549659818153539514024344962903686450712789206083761195940622748783664293464182970808050385559517851802379830171782038886635670315104451821366865368625252795030914076554051500618379639571463916890817508221117082927375089269799355332693394301047578194269832916814342502563627720240456080521103232444079661179359404131862195589202012270480576667881438441333643500714837944396486496763783337084307390881564205879536824073259031020039728657817409332874891075886378871534378354951706970162462465976892121909603504979879867149417090515034962007929116443587566298806464500512315447460276776563256741767627412848305118128282460435091765123504462178431931850462441725351550166746692821535289749581386447568190229775447688414244751302159879092571393599574355201298949442450639119207223964697649371003134625974803147528124995789201088106041007713457029642956076272969691254571804921201949665837044407074985757378807209845244040273562317931981516675442125547282846908812721890339987681565815677597054908497194831448268260316388461995522263848230435361732530151420159038971306331904411272828305788026378428114368621625841377838280027502294652785448885347792511886799386515907702798410474118829472835342739225204355005271660625121105779866621750111151621521490290285801718638940677605830522938318707888687929435195481221848353188868069573346257176261907619472615823198461547062696192736790342461412956820323249342432838917909436882336786141136418455222235945189825459674919817929723124186602377739168827256772559084934935668355597230243079901142072106188708728655640451769467726575682604340781578946257248827404009913554144100091246595705566441129527047225444350965935331730162405396337248563601154921924703679283947934980847328659807444786867303973309815503608881387154005764679623694227200301344574129322467177037651922124542450809882072939895776843734728994665157832103201324741409944898987292055666964630141097742688764725629293341139146432569289965530794804696651536570957947788805519396362396213476049000841428619221966221880273981948402480539717282848755960800284247108560284541083132444489144090480072989941541514268758267001032386023731523667100671227367606545081580768193467163448760604742225368161061575943706474569422128186636140075883206086519981742526425575384730531052852575437743617621029029608204063450157163221407916957445293998395235368416335665207532396130184502581359013574333326564530812325426071418283989922895402443875581246938207057655110847342714013963402704546121114117822759070201104066123440835688572036333983708240151411887264323033768478433935650815086140614288415302998834992663105542225179308548186893081061675709308294581905409133428270182982913277331601924255841336630610444461827636515623837896737662691386273842335452729349412648761783553265808490466803443018940268623452362389826326904749226827191869767230942320584032855829300430966931149750568391624451985239909794237441617644583030808182380906615825445965023693957950731281498497311483482238930951373279622472077620453551217541611399888250880566706147369409908931276209213303008600050579593140517280241932599551999200571599264472265749580503330251681124053996203747382178379010869511385939232819123508734250467738287715054178284266565843325952735506280617870670432087831485754705610082821770279343862333907007638833137275374770139836830567966019654197035725034960494382423155434044637553459675609527337450195202131592724451679808370711627620371949160031724487632234171116037460652974737358960902448944181156370349652062139710210581454370340152732073302891527229801415253534591947259688717280242725514934277816246345091932529165937206892575556289758378206925792190609774574587669437489338427922660048620197163380179786497535261444527811452286081281321524243296020661585496244315300634030690672112917910136119871873507639625305103673282591973447936120097304063353591951854472536336891451793455217430074846078903338862506244084535940893089957632320817869905636033439458475738392957345571866859910359992277582819897592001769666273354541012317144782089523323531375761166589624112398714014949493073397791749258407663763710440745489548365384613786940709909429024925100118374305403641572931926698163588379558617854486663295581347999757630823209375721301869045327690188678042466368201236383094660115664810376396920624695214813507189761591980269358331506209212642564808877637383528235970340602428164609886999950183298090485728356937827321794337700378695222812060163978289638963408391572277417695821914336675424041326059581351711328868899606488562357002365497379130503987155372291854345011866555392514106177105818160020217546518660630662953733011577972444509246756021681438583728844876254544841537237702595594364754940411805480315170885916537903394300575527851478546130410685789158327071153758797545963178770474191751161408192859069454289109515202098469913079299170753419084351659568272829105699848188653087045127509971844418434019446199974641870872992937562426388723335926817869651719688442608471895820802448247770827583545812438237200041062840901175041353647036953000637148968718401247100503282848443161172312656185739737479476827338538151460617739921319331290877650164610957786915120671513018630921710646701789896474468156652611116527060674298539010943120258237459980953674970471577065970826651657217235629665787275514484247439280798781339656768673309858939771448007449072000729156952386496153517968425158205861898211620622719615051357468375247864471303400390624328758664590743775218193303822924286562849381695241826611045207837745794714925849690849764254718603207616174625518785789106527541117849732202146050567941957485612684062728293629816872148276077624812190493386222250510562504254333580762051350948183246354248026203442190175116531893572396734524522848050363319423411841426494742282268311728852894738815757487612043785472595503878564951941736953653781945914698052376645174215758490382959210882585060027978664715394412517893080904786568189059459373048954591659559882791433050682541789437887379622648460064552310586506767681281199144397663538798206977137158426117434116373563089395455798593669122091049067221557699814807997709132123972852081190257847382742683136499275201209689057268802251586423025976534087488127220740929896288391956073936541185045359530255921960640716340554187790801849285189943504423192474317056664124129945766152188806237474744798109114780017551679580275481326295038738620742588666021259828236798623643027901796070467858112240956461397207035665046398378126985471286048147208450986265382154909783193097090158266291808891145507648271487670145596563216771266534182614259977390405471545988517302213171989045973115789953684005631536666255096307327234360818723547424107311088305419987048447036166982273270857092142781104457705854522435692896560668732738886169135152349849091131137204602649103287949722666667966775363914145102790845513845509008475651084054897704658551070692264081595447616250795631137015200414937103010550112603437876863339669229181636095745183620200919362002161333346442548299854563999611328339340454865966131797197111149475430850033424185096263612927825892687104456821095453769693611354213728940130479752719092355958352713448005128642345565486906649607917284378782697842181517284861584127690751389582786476878304977296047032700127982222203848654553990918466596166587714864756701569215155254330166930712022137090140011308182463734893632855393461967237400835733998750049576932917660214153865409531069917964896868015631838402464818633225628027058616632061113917826436953662206293197620751367386353278050826562856235886959008556508658427250422454354066485675704484830595589389860159203277307134685842186098712847732550926626801179447659600951944631598379742153341131251366486387422959850568001116873728971625715125231491715467196488705936393880707885903599336765047974395638541519885311878264727419724080660219732818121884585942514821119723248314025616691195334186946226403898910937730568091729074087557529511372289903146467107089911652638991763800289329634728056806586167463325303656139949801718093007024295887372251427983784750931463376696869017700866338725368111657012980307374168137090032695506512865422326031876265205373849180137172789569113060833513557644283160606794607408584768549761864609631018810631526186500907799260719048526060794701426168163499750934497998759332756139317292434514720861739411410422567678707346552221234242550840617085408510343103101672784002271726309183319194680156568905818519699794720411626975129782384992498363554806550680566481137014653331032866630543144153941308229120290917574763669928115398843857353602072529681773027432422696643805364493047716451126550490158386822015932531537436198765954936287487044095211582974563332752682855485335421315309400326004617813451998151461081593248033850773798703326648940385667602175598166277226956300568861918696039871596703712902760474171556313422378087821853585929197570370917222530012252261685847124387658502272815985228050218859271651548682625079021658559149174025864262392110787046203695344869959034010174312376009110529960180188985915738951576658037253878140711603646917035819177098761232717320255867971635074190570142925439556178045426647133257696503991572814099402731805470216002657238038116650277483959773821893466259306766255796140398370542378516384596600318027883811477967615182708530953856426130405110818206443587695992305021541706495157130927246008086693144586914677812570988974029187779824073588490950803408068322986385203761204034419050580478493227324778244644053053598672595332606376700876319218296912196820963246540627586637379297132497792881739597380402064480056955981104433493437907718449023669546301383954272507705640599042016883577550307356780323194866268736903047411673625635121611423779485070862454139699923747861696745549926749692525711896787115559683628214613295989147581649100645182284289600270326657834191390860856015572592171708760195106849121366780504806033069132644599249970802485780104084994499793924127365854492807323909786260416241462177073795880990276974168549622811799352562672637330392389469636931876397541300368662503959388803987819533106095501362078909297968353954535922044746450277135939784286856990385219445696613545789274021983922332733378806698199916518730730468187764306301206355419294172696896301235747833995207143846234722668128433627083657568461742341823482184278876053687372265141484815136543431950302282830009335475577162056115198130221766712991811035954135945561066893119110331710534591287727184939478828975719763886499206968419449690661926756373131991433264378422042003163308901459144218616847228803745777075128003158208407948786153473292686240656304099311762861012411360350579180085328021121227678850955464259553640675976157821352498742052712859943484934190002085935982535095752525873299615432478075532664020502591814919260170664233545118255484168243376965681231332969896153811668580602373020886791538933457552955146454349608254540688632827354465990453839825884795992021931036227428136743642122262091463402140281783603547717105852540311405916858554964171928336098477451130160861802895446177145635225399877121528461098184593466013818448651584229650727183507941018884874723941130737583442047475232589015972233211031568159033228223106953684838338058160568662333201399198314917805928002548853258218568898917798870966153135998758948701243753033169609328628517626216605869243466661621648625343169946298571237644628015927158632215427335584525564858118558612290007274891580238761416045558764805040697833814221019403020855744895759315148003937037794779989604809746896044696034394309729457839695952742840490697956579507573565067865703774952480715940275417147713615392368363072240388856137985116173350601744902716779837318807577684396879993664543087659280718736039397755246482490522570057250453537653459698437235452240741789819008737588881534067295483924349166732226782956527158997730513185570801491809781500176019263849239091760156202839278065801204711705966365559837449133113199297833757573734092894588316108594928105207189435956695202340831250279424995835822225128063933247077304058803459676906159718583662170750203121755545126682991779490199691335991131647933498507414990608177362878409495604872776025689950256304598667374120123083881462357690046672972420548734010830328946627520767199398634141587579214279756779207634878447879676709727880929524105036334536602711834478080382059874173383587072902475785614888422468155414013977811579264272615822291557182345945655910206334789674811421002078582941807339085871590845139910687024699478805603356638183141413981821086012020236196088041951664709852548309468143934076354808382902120938763337528545410840042879016964523266834196816450003519389502033512169495589393285110455190488630776905738188746602857399925111581693318081770405976112313819390539526211349781615996128671285665592503673451584174714132395900439851923735076765882252404829082107462541569980805152359291699876640941648984688658910139694928253529074326429240115054216808096399917328386509893485981099582716333972022857633735466622451558317964755380225430992233712366544698299505205058206458330153459472508158057182592124649417115273931628545724294587981405082228331363464289698499356504292159856819534775101608517014206073993614685469126101520086743063778510852036775115992664218567756487716568324309228389388403882507019116503575376682578119881895668625433230587822346373186235588166501893473964972747226878895181619579222585484213678714959267428529638014706897748073487333716479286718829078300928277295049003793315494595407137695473828407469693824899781546572128618781971230107389167712395759598611576235288708851018155678585931919302711566520993261349603453172315267916343118972232620941637684951250164733731975356792097936208101841539446846307590833802080720231252626573498912300595907733859254264931343759638820152781581869296400167050324475611583082080346181653713874581626666708715914690747594470918011160192789215293150122196416214297512966103775362787836457856786884392115335412006208982094662781296868070884866381135901966181878491877510000777389727463830154215773873193946954468191367104604897735391204922088789701684977412803636038859370542608376659649663182855453856238478961100511116157492516734697776869338946195845447853479638523114594801233891709169166870619285454405255454335835703704056148227825983631520501734334131330977918559397585469207956580269597377012264411824411678550414180804122460028996218821277571737477234536750266618257475217256819208965751829981538269480825094702175134085831803151125809276854538529050389503413481987065652773698081448156125788714121201211905757649115130426829123424109358160540944748968661259032388237698668816778897037737264827148801135908322931694698034229472324182263457402239872465162855792118791451548431273052552329834005723531523342426020049127247280983592199262542111824930709043538986722975063598421802992076117828076004687473689371793530286970417112622724934749828360587147872162087678008708063274670657763268115271483868297420951401155456677633996210694683616335767024130954916116538208942800639712383686701303468491960113969529357146226876726293404296882637798486317397746779907810112352023594001323486643683073409975911127968344433998837866517645969007080389196528949418084646131137659186662137615365650365035399844656843701693672862336902991976649884236559523736736135653914517555947839852113656929595882537767041742667124981710804495210021866220629670254955629439505276149696193430775235228247853120527929934676415297713130970840587820184807201931569053054069256470899954757056345973345724561986649323748814450364823985063377516400038069405219199078350544083841075275304002445336278760106504223567978971526604797146140994495785659173389342454756794589163241791437490132997895736119248266603555360986606418136163364452861157419132439843210086710914992630123849407039271461430859447496431667368225499494745404411570800002330288724592798182578689256420255954469949129349806965993983850741032071332744614156818782389336074377743152870536250160445486560485921799567295237330230327912983767542872100861978410533588823333548724718163632579076133960449310472070074613844995934719734421966046488804978525301590827058607278305843022694251599881174481310302469179867312400387353030528784748185701167539966920490362557185592256864893007410750231459707075296276273476771320062860189879682994483238961286808065261407484368765457454492621883761140428426380253388100127010090813921652045802268261168352066676282314275818963307499608173951543136411635278511274213934778200435991404644307095936119399234099512384000198072864330829444241762805725209185096731519108108565752565764432200782867712825847723862100087859449413098084888529944389677045981760840849874429956801157976589826668403008375326822893437290142741202416053465897287322885150520835380702106786719877263054634731885700912119996117328176009049872996472329417469480385754971558652969456369286136355911370090100858680837417898737121594988906869068803286670668157379986268276685353313377800375370274595254752386723585567889804475741884022534261733479519557207196535312899952986726244490367322120769163062822361107248712505667483229348037789740451557351672176808313187211313177950178962089776628275945084489644976234249612951036053609047729521951487416104627323268493251269496355076469551816250921415052794396267485623074414735858406607148631972171684378366188178259390067314951861865730616287277007857619009311619438865837974935612334991869015627391595978141030203146793612598155118427202534932766964965243769834010847126871493256172118315944910621374833994621323006588114836030659657595293855178080716374725857765788805302139202998460826090392415895922940763488285622517200738656663255883726621253943483981299702113300560392992805501827896747891534576125369346920529294936459484121686489385038482654318574561719018082040043594005695882841907861531011055526245499025482524085548833358487649439857988482173266289353985741420524869433367251261176544056237621318812084628344832890241481871985162479348093876946779432362908286909506306440880823532438233128267276641638216608182448792420507305655560209630697387876571308208714993760396142124913363048642872179503203052806591481924361210992256830658109193090912809429852711674676972932367673461376568557424510869992426795058915237113986399978792605322727049280443161185623854310546974400393080371371198904536150918687751838408686349653025200157869343503370488143707163682953766769033971472911260541961792592193308859158171566560970029526548590176403388180825101692443328596755976684117614694451707326544790770684929226658371527354783514113616531310189526690246692021506642783563183620577128132685275600561594311650982671497510099457604608668069272677366779843264513914792318058521351794041605872785433929653287462521138274349555660661146135270690116762302213356477822946268042809792767349509106098390610360252643310308633730528917407357721103215255242026590172669797880739806538879531897825275799577454325731527859544832806349008915569320103572976658702515099816952916205093168477509985204319249055313030658450449262690078392895106726945230977371007945585977206906358063796888935602834600620198901113095185395430535516153176266584933693383264134845572557922083969353317936704273515221255447270217808769755717622884558500160350615439742293304010749104301679654800122632164458649593150717160187140853174825423264818234123478818950391748106872580842453612237534562747781438289960793306294224671281173038618259709508296859798244098047924150548514652687118543391995134827192208710875467184680898336108172765786542410698273636746894718887115651522767334088962960367636001704232555632829203915990808269743739796312595359774244980845696477334800449171455179898818833320819836772751771128792354489922881812596838791139900431598416116665657006855956295272178068483375134764529947882287536673438582372181738322583320581170063822801171931744800103439763846573774798136653702694400131946378057360670944479065129340117082014743466189927924061401857837863992466433210131301708182029130506554996312137281515561991831763990260708066906315333691736488792821995130986086308219832077844768902336018372671251914880092991143777278814074409419989014164454438585262744786307179874300869547066457343045429326232857575917857148327244292480867695968566156341125699402633858534880887947934226979368252564313581823445394621106281474238924869250225378764460804282016017408175543286648584218938532787785061446780133817650099982501033037708665913730624324418359287456256121745806979963900711268204860062557923614243462552470620374741425665014038784438618486880881882084712970428904171306830389630075955709643439216695106218316630386834203250737422651076459876154813735390799989845890393854419695691188067315263409549206261160668401321129098032016232657496434865079823700688533275799477687041926466308677750719560072037718741395598417819168938999839099058523443399291532237949899022516722516130275039227247946738624919640835608873497453575773312832459772991542099019635975268736909382590058426239384549998681851413765532524114375758825282806612430971626321350525749769330590985925734747158020757624672923264725524393505236023220693633199402657803325575185335036086035261030196417224783883900137707639119030291099855542713856467141170235913677987976778806939860159613743266944393131068252309712035192795536394822328050283871546365560736912996394918988475590054294269673627191954832919206729340925545387840099318543005784139083112432593739909539445571321184056479137291457051044693852141144377819543541370591002052082871130372511298124401552947154007992493788520601314315237623569980618141090255794316910593379198740959639496552900944849073741082283065586260854635719535487933445084105012994161133743662907348605911161079653902870036492945409380219594280968915433122258245617191265446291110697526306452596903759915009518810356225291713902713571576064398949491977015968125228687454667950582925689447868767219491730418452045827850999554332518436708021981696957082178792729994158145908136842622341960249778606263812646338517146118414737251197585759032995705876079955921100865780113160483603647638670121651918125082552862428532586858121648616869129377747513140185625080168779984224597031388524633487221044760526648584863003147967124513423410274415451368412926376343768821952194238495051084018538244204390267281340321733490818985196085294832942145520854322667335136656879091364925902819246864890123397788191528403884511686931971404697898077281132318180352564550717854313357663686516048217819849403192869698339221559408557258857728186808480876204604820480558158990390924131026791008278324824097447732374056004002394044215467939634237636265924185503736540639785619302704970749425378256144522329252582210734699775276405309943835925221754526936882436035644790708711787731587275075910099382198754409221698611906461244471387921398651946036148214885720378364568379160916730692349368460466245088302040663324573107628382756322428615239909335288083514661630022791436214614695005011022809822765537588513220099426242449014194659367617305492063791418742316261909054362127755727796495372523567443003401679871802370014330525544365809930883199336120658192701726062873360962845084139808152716630822976944328992082472039100657471153390968126365395517354644202663044192140320933843730812054485389334975615700804388398845220515369828062887633262253623902431448635985005328832257904991546839379168964572603883118305620748830804893111509607843950812801925292022435984622389413574230876062669817289399544663130407685872566241897830432490976892123366808281664364252474588891761433960078445664803427057102752162037993905690599587563572466589603607292511827840115706097250371948155789709019621392283219201610546031700719160487062742327745539188009472305751861775531757362307949379095800809573348385990464075233570740181426458504879104749654367166136194654590191438042097038078964427887282218562396191975567270467620836908934005497264253149235653145801236388825821998897482294061738650484661686423915363124271268996518874973776731344356650863150116689311532296251988880055487785358240274135011757712109872780288240311731191476153190113750410741232997160848735734468332565482782342807014208197960481541128096050480825290685351226333718626802419524932543810537955464913167986292822528578589160330721930408319626273677175338002614978778981476406508922312574313799644479032641955035837505887723295873308223908165525105856648110713508231936990198876435537119549035954890228507290526780431801008632416438520908144473665053085199342942146959923438974901958482490206304121943059819059846726618722185203055403576777550992271426612502053797953737532983242395567863079702672219055562939137075422134197122624934484832258918146212638795384837335664104031998261128057061291584583343665733092743438173602499449789711012645742314589665712724183935146820251479129281986015142628251473468673589975195176362646571182770088400227454613298277975232673967911472831004254916657014399830848206602626841862982379336511186978394572648113305826860953368128910017948821698719022213876577477571272782645652499232659141703820596710607237607605180974519325846105576442244722637508733403537773162496078036550588034917609599901838074601180249152560080954264941875532582452886765947695021509525379781871973025447540361641653460416123232335232077618617170775460937494315168693371548984769882015485653017635084012115474970598914493827352298267590600848656787785000203182713348058349121878988334357929067724412081972605588598261907764935115722749735437319195000894855097330408699176245302050990438945205197008712902623778762770531907742558909691477092911660670178532272171612117350179829771094458428928613246614259455484779021398994124003500221691983859630286590252726773517929191568740552097216087563635270103616620968189573645622325140876012291250756490125152366322684060263146928386148486365640319155215375515009805371810341110276768258162171599417030733540382263145899896086582769337080738925630059633425272141659515231024664173846144168615732387375436824762005769405428800358363472782970675296242001806252827805040092678266573238703051999452166447567310098800525543854278898077698097018813687311327613291985577060960669267557203366618590694964842757659054873633196568271155822256508892368135009492676612220195601992227123910432295411284889608198869207862639904473866091406069938434086991859511391992519220428409046303377350894886527180489102196889640629598750369613524700568990988496747965490947325951923693554552114969536785765211527294887023124217722520424136405257393176511174390210363787854003561654874416986056772975474456015391725342203455052223150739661549454463056032695372858254243617524657111713772312743723584099984291063776474207585349096166988629535333212857798539730102058493836411212808967488081188920323018517580496696432395749184980479021566419923675625666636630048815178500384598960033326573060235759929415217263273064703565399004430315588949309249682061258708254985742843157508786646590060301561358736872512331297335834072447377799966733712741430305772597652674457846203582494965958013808612384943866152395439692084184533046169344911869167547887238252807688662257335407157136728893178929366417576253826476436885558819080145116879333166870080341702187212663867660785370441850811190425418325712311395855133547594383902208577058064562529457858035947159988731535139528845179099431584102785175706914770019264229417043142576185305448657247712136907954881092952704978370196085270138295663773043760124421133064161217530548499945241665633621603879149633072850646494636578078425875260044973499955948415407279401411693994434816134541591049629308554578293543312629959967566468055616180648679089862614439909015277395891412771936125642702903739304929641571337126459851949775057554165252915772301127707463538978920937047771962369009184989114109090866600062936064083174061012798536559261051580768139870821476712191377048178630308477667503088564892557945938292327087412464664728783256526785618343541733337204034170905497116631027029576182455703801672454696928355549504561453446800318376443829871733047993500196271155688468342551487260779814055824936268010809877765006480743450041626765729785660458990837098359519698258004321116741840924526268354210766378304635400129018571981395534690064797501829089440500077070036342544306610397883002315005135761495411049790832233985876833560299272655847584490722211733139205955335209784881877049247759612995736917218459496377992945201678472154269261590283863269950299790797465102711088233702647261602673771403450566419971092525697398637011366521369421595509690419366887814402466849189100849793811156068573044373442918305777983804561427249794039324984712539004772831280608689218120889689726121882060205266227330162990290843492377422291399277190251685598186432590478891188458837695881313528449600522125242622241321172369007714370455943835174879746723788024282813897573413493977159416268098877141273835141572801595005419090161424614146969216685299860985192081957290510943540882814039504933673567446334979221473507663927515324389210496337426652485167373023061736700965039032280322396398720082147940790811102449215339329674944450336416275551739301392858373596129838409256473404076836672992966189117863097581285081289033724523583628896675662336210357951359708742180075727123034810275819198237283124619374155183565859461939935780817803509533537792578205730405346795960355366908586428509421889492251190286680900775622181361684501465015169254906953758799590581536817623884400798536823753637844768040591458864889673490424326444412390954617134615931373132139989421658884202299341000193564356958467094245202904592717139835341031203532608246586025647171885412153024169904970034492139633310537074317249428014848492362509954911218853066317304368911456155628619306855399905322867225381158879929449194122818645501003037772596268025379640627777128663233585218206176876871971861135865800705086906061404005853119118268350937218350432314772121197476660113694522733830271213191847032179438993713705979328503326857541771048056197236138644156009339903632253586694293884589226344218845139115450936753754027992504656161009527697449415348543175048461645323066779601664279659406366109446054958592909802082984312195852555621890877080287272681018025114555900028242180002190196668244246595737436620318413316085282864609050819498837761422518058904006007443721838940294102139536616887461175958798869040816462593753587753523580729153551861800103165974481896445787083096681024650036770639326201107882661153831341737241121969439230928303580781137003789743073896046672375924458668791110436571051567213879497800081798054090613039007221907299762607109710168460851300682715383868901640410962748428113691948010978777367219316361267325528188562898555225420884286303182289135005081027139038399925569068148707932637234647736698622974948785477823446725706925084107301783473995426683809245671983558107283357198642683988151487061051072619361565785122287953116899652045251558030692891501599212728480480792203140861461420678425189566355689449902677817421025689180865520462963034517563891591071991459199568713613949379391838552130009613604485175856327030490290196840787122168705174825005558669516791739925462209873783635520903659972351668900984039002047710187997051271355327551500513057037409800416119325083153015826326230088667152028659831167129447786550644526017995124966140917664471902451823956622639424790300527894169345088993598268440668148245024522998270929775810894128212063846791649703422179722323083579029933263376300812147514566896694103021520445109168931692422515200012597771308150640162039794681522339528822428916944875889544028127141240778801721707046876470136851577017309197475146886966164622822480582161513231189935107301544724638204841157216050292642510172128463978977153447272272975332673711803216137510471570666617501779228885126894577903951380398043104385771779637616944299162291532674017419940500158146195222321055019829569437311368965052782232317395677257861578485239073471989058425442924896766816023059534028985523204878633113742669638683004051402808707345634612199767409439176913021797481612843485805683110088448831310720031182875960636406755089770502958739586016952137211694937104551684817631821750584737699393718855121539858756260495068927073030058935238847159108532181547416955834673170917850180585731850939228338602740260092666515544289538321888763038095427872132269290842630509923522486908792105285253987581641172971378179957349234229196396692916511668317606360218785945494412364553416798597680198742959058540068116980366565885585174635488190982952985782788890845148012626991197421169585359982348283261579556278315463223833760233920195122809413363449554809888066808614256143884608183985628260640006860882383519368643105549098546220761907625749175004489242044989848875695715592704679826839320484277807060938731618805572476519407083359045700357493125099241791320209751636290486929800537585223770406087434231555435628346017316651010167315180304104358365538553115142078112842841094284552983539768091078668786793793339237042026154681975825662480608111164880679812865355229747525003153501738582132731642272789014233715699653954351143812439206688227734325551254583187884860724081744298713867816879333960091352804260188132358216491596908661835146884111664316139494268008651519231145091449358824188721562415225733363558504341660849343863729930028915770065409158156239663326705978487861704330563928367051450223994307422262123582598888168742284496447210582474185167360412174228098683357231088405499096028586442037099252487458529929237719276915375135719634577274966701465798190784872609434527120848609620988851746272139592057203656905102934140531530904991895224540041650875777007171252483412345537223094760883056634690151785421446907660284900636448045001461842917612964290711409268028922674823692202728009877278853407948382162390533529470423720668750167446308364074775273851173716286678313577642766892446512370154172883329508880181345045137829568531173876122709839722421690429261456547960676394101893770455258387950129960338479709115571728674676120048067326294208601390549117860497745439243905909594353619405602996267981691831327419014874285887512324569479571307084316718123028807358640244099257112236284784970330344136103894656973313535025733176159573633898655759468197975119427912059348695593590881547410119856117762868112526036179783424598364437413503431467321141988911845934713157106482350095437121582036685089055369401736017357037557374744191954966164716830708138928097841494226727624152250965719532621994155953114819669284421395398060343297923690912968110644638320019486681895621783612041377056168882937948233470194341053213173113730873016057300996999693235948100799443493746798370536028363934668422422613704129103617285606744465973514896100986509788413172296505266201389226511034205528212234552451895199263037831102565399048133101197593057968178229211170476206342670390912819591483269848705536697418385255880752074379705395125144471646139078392567677107021465103572647331851457506219637217063371254050387436598338610824658369148733186785721097008009244415947991157996808838081136475571097126518319051606359080381998094356758935767834232366732741111784707039794090609032077974537049420162143745115948493366016860409674069345072506483402747770696701737460141319503392491766068219366810304591578524957234309437455564611904007065241452760091665699218786365611447231711574513590242328049685808763016274317418208507571507983630712668519651830034915178947859942145194998926669228499751392022715396371170655809068391159679642922429636737238454228606290062435389979328572433864143271428270114881967607493558037800068159220545881703064676099340938301719917867665082488332729424986248222849883032131184881222385356953333136324005755667566011254707504012455661286227052004503427570300658291262883567818373096179219967744884569415621948199794091548022194471026386476085422582443207616735694514814233827734888648923150323717297679385956588736707360709414319999660437126636239886751465402432199048090372955050794184404017546153623322408738082956009020340732952479111259680837814790482164898249192569352506176470008118609141726610392163149619263854654580165161824946614681762877794945848953888374792721005339680159860377778054889847274268230238074477780897775714047264457897461251758141313714855420835011692761771450899621988328254990909953633373014088049016201030620736565092892369414347742085393546641212678345304589716863314752771803738072670182157707969470467753289254265541016909954792207055089993978342398378749215520896407178843743366886245129762409876041256196441721116320859276642950850446281828616722869158792347498485740874722890226842546646102890117286479686722609281428198126672706469787136624808475604442422751062211135494677704574843217240067226641881274127591839586843523301301098454394060023344302004062814075488599186341254005953013664663420739965027159759550661888358416198248828590492698761040759797427525548795839746091298180286072327150900724020125462541338514515602896427621455248657079340679911729954222587569627992253929590259197921847571279596870127176982660145821491442147781143582378787358199629268711724112185166118305439603244462361501726956485927711622642303001928526919383258819111374519525927274899517745347204919922867942093003145372306898904069176628738272903202313395363315114654695234340621611442009996887832428331422821992819007574630298730644217862844168441152309887031933771678904001745528435426880897172081909837690443595448421569233528995707118208343979119858431785180616866128170238135664474834699201784043654007767519992856347840113060946103010724293567366617407100376719150601599328920435343114409382899542131731739726196846451283681791561534783055212092688598553555731408300717106494513016114661544389863493005042662735135453366017496599810443707040071852165832700481843029458423096923409491097832414908397392910234654448664008292330797539020603923098266020109315900421799105826511510003307988883729891315520344573714177535354672155093758386438917669367560865677032936295644995678762659211925001548830363717741303202011619251527617339747566105394814466731203698812674962428166024140492985525727277240607220264034937951940728803335338732744989371761694458334085120591321177741227756019796833842008124517927291460053026789479217389187564877376089792332008395737282510969948159740504421397650283800545234963699040568083140915848121020504379685713924762590025083034471993994252379564349413292829010488256394696731653098491471349370358023312152734317484105615719325384285117527255090509318058084437160181105333579740780326572076393864085254428310776888724815255845746570514328064789781844895796262004837013250889823710160962514118058144024930093393058336211137788398169256884165446522188722997866575199364345510582694382455580047328663219494891000742353509110169816477617216365689503083478175634226572079974784992065306769320749176565332360504904501392962723646585205251284072549432411563600519867119672605835379321907956727868770610009288933984104415502669641521825730148566428786141928500963395119503986572142406745811659987621027898082454204786554295655805550793477189928455377956111095802716772461349177308128375550623602025614473728577905623431043651449697700923416423296776441508896773636659976001148176587896266704030027734367792980534571928159393733512349339523436770274499008559948021456622435345684070275144622508195615460363722328380135509002505699466366064163826401563958131022430961911312919065430372553149849938876384382916779511276582390865380559629571816635692683214040701650216248329047679852941493732182503607822139220357668724676946658138334869935171567343453095662072701869875260148462832148721941216431567574033142942746742872145484025771573807424864300723638254472862850617344269754533901598070522404700871328796079506834449452152433945279142809019680548679153313472883728702753048220766900860867964898118654576295842598369539994448099146951639271345335127609328049895986758393218662080757640710995076732289787177202549032422465352722377435158565848910843239386946983742238924683693805293559716307407599189768974781832099278155969078440869164638575562484401079826979433645260789630015293326483276956357530467682441053577646109481777275654670939563977726938602852280205451707986901542661860686124060250809719583658557959751389868568216622040995579804426126900895505294757574081497885595410265242205871521647212618389066669555655276545812235226543150884412074793895703462965903244949413188344509276318489373613314270237669840229577585141543582841696936592522373843403913486275805167252619629534096949753338103259352934505505736762749532577346724671042358824233963765429518634244117826176555741773516635611754804552901927663270183957406226390679442612293305483149553522710234465806342757477388764572196483265845565739668116114132909428740470207000325030757505444568493446033306679109675501606761987753426136062313165557781579781046339145342145693870287157207256569053073973344483977283611692680191605732224526884024998815140885938596480465771601760944991464712860696346781023632097875877992720837065206462613096832657468996439649514443897984148026060216527779585564718521794329702806232620051667659069534301045594011408825477208263651589864046233714721884645907829294158276285984798953013928811710489638695855548744852303092894658967212752523603537327720024944593976645165516588761873140599901144951699062513631446671909926780623977045353109450217759642339404145152129414065057179288396740286384260321600241721101997616631244295674600494127311417181422548102590415991154775769478129016445203967457374507530191696907615983922918149032095867207170571008006756377668197234319065956439124936896368338628633826353399755776959548740430413135668336920748201511661072020818776546971483167152028779893072267770784360175132184524619732130579276621360075570998437239153464455675505371326614995360293333061623835727965092073509255162152498790613323870233294423816061256460461724036672441376524195010929756000611006540198618439549174492781203338925254261903822152772069358151564028650294568589527066396459623418779299418953192048237410090595919884814385381014962604745602389495064826170593513512435855088028053306941876053662935007326164501028511852331720562186330952964356982106074866150718497904339062309322727253727712818581362873020798342502754747267107930817025954687440095146090364712472207638255185933243891891315050060492885106121507582951587866276766485033769309309554464604233641956471226596459513219934798434482785948605115821536840105197128125576452508569639653492800864785938250470685339740638256924784667305481585843412066548318883047561676706207761714241505977744015261360141222121145272150939982996124684780454444226844431238195263795981917597489520028962476425853658656659463518893608151614929109577128145461241601157158140486123254341531203876378918383877196558757627175763693865344121463218075070358227549489602027695857639486977556781304587841091693932033845119551972902646493814554054692241930980924392920360214397921200849209762667091848349642610012974778695041868456339247068844195959661917759654944798181945602458601053222830973839707832506033270800941426191530495680861483161367626581604934257849050782422029583627620104524197027748994266436869660783728436248992592506292480978370843762546869783510469667457656977469509339426860612384112236268535772007142974163107625036250687399638740953599356649604008773538403293009532711345747162558472388267672576817446950277717465600808422514045809308509001744327404403740413404701454620041135410977854790512587994209835574439227348755757820571864422289820629747857349114120769593425826155556829893984248758044110731379336633433254514557591403467576369440107961331760098031077164985400474566666268181620483328035501990425889927116795876155282732933092953673245435376623132971721088269367871227301833301571191678341986950481011163392410306220056748950071443624923231908980037895927762455569026522242904091738311411539909984574839981795175406703545921296084973890052077704488757217319378645945728261329685123794224616575359401203757261314499442870416869932738220435798690493830714610446419164516907583010942571494995289680435181729408878752213255825434396268468983945332376414482622589531186996366473408727922282881453963914744228167477742934975620161032963374220863400740233119009593603860788394684969126219252168473440700992732026279359703243660813848736422733387071310222548600650964830750847122473012637452094441390554002051490057426180874053295179255744677780888364338877179058929780140732284051090225613698861114696706408974320272754925998478867382830228791361545965885969368026026428337067884336662040929572739375413723650820103426816495456940723318426573749068098139396031087391372527359737826422062139658484155419564222978078249193186452956449114477576815554317548413292888992076321199396696094028983191443652365301954826334937271552102889831270525361977782988311466187662512619531247429596033604130982084140484031477324425274597421004074673442350688962928164428245084877055575649829080546944893145016101551023790925237810202669390197116278231437811971156059485938320917553340255817428369840435356739247820376127771611547313463476130436724947675676281203575842811479288152189448914755268915711928152388751909589730251468866733114272255741285556465327143600148563439343973113880078368407739257270693174144568857190886600243704871558464641882583116590363671106792928692091676932113028363039137662434888440225134050968266591131625116039942656884723247396227848970719984814367380458946346433218846395664560367342393654539190124333440257962818966670217817186511819493182521654932127908577460886386699031912299279616593063390901571343063113352873939607257338486604971817437398674979500588062378834496909778156762372231021304371194095560050684992022307758766417200451866321977186034467583190251337488685918338779298154014008787522971152964953764551525850015879671243468108265520083095228423977856790677937023087509831104361573566788018507179938398530677728842439298966103764115814070939807973593783608694094507279664751722704283721549523109385436965534415044896250209985061405144812869713342257068513450534113189170595909151706586348118356737266448107768944047104553148748790660535058569429909409473323398056601328285031431458125611870406329422347983527623058137861349047160548188377686002435352018394125300954299027505989539899447783464707018174532241300668716745976975045480964884507414612393420764758292412186897238548668284831429311409011579117515878693300193097745496865286965931408721118648218217344073535184727281343706408054312027986890428109293350346309190830318676943016998083420188877607977687103760157725747880294786994389879824239670005377255400123673127648360767976560525674845165079333914622491267494459588962525455690977089576875060016660151348187479731437402342252082832059532969806495637934511393781997720290105117137316559757960259429840825250603013048596580857285303233108338206338591332296631082057552291067120433120731947186469025917023098645838136492186849329065908690899613669551037592312718181198758645525713871773783701090145476308662710258234647630667282527605213213612120199594429194725918104408983384314216263379505819100533487759994775345199150687484139752103359094227014512378014285572393733080204527689732855021902741524226880177670055107390169399704897227760994318267059432821373482109892445386504128456832301383759002069176259606724082469565314791789231060580175879821524555289891033421649932836657411450169059411045000039470730424971402895129007937985242296710298078355545959388427652890479093345932708466297405936970918295810330546335160442414508529526495561971127098718620083672357809245770351152136731414419572927474462073548532915069104595445161586697110625736732353313443884605412962195897690647046964771249359386623351013856240506106578950887688170127410212176525394303255641097380727727477193908389933752271889746101414857911058121616472516342647357032559006838095160976419669064619845897161552437226419289160489500189516620308287195023458577265082877536357049884356521862630205386605904400344647827982408987142442468833287598828738000125110211022343036292111028361546809917372412746260065615925266745845283524767782074142123842197125276099813079981206550400248737393913131423137578292666343330829248952341678703205780312750914531160814004746109647716267656371924532290850585712285344839048583626434993376248481596120690661476637016036653435937556390260712283633431554905126739980713755193619481971510654609270021194341868226200979058599260613862367819621381995953367956730986495747446495224801498757658159193650940324254023246815288822500282654622439674795181509627699472926818351920289929072733296466024813679004058561570339945419972754506627893641366884340529400068531786731532361661448472102436487268805165656503260427107055155514724728644144677670967111970824904968571127823873486675299565912670104466255476547253769945566663118883064407703474308724380751660309057091600955674102382148028647849580362002467555896864463641470540961467333696841384623866953507726756515949329652390282471333206467271503643635361580548380863145802477152562015084246017839327195351759147089997569703799096557198655477669941638580813956937998525700344883340071726310378063812467213815107102715558850170144934928872659860649732152976855761608576867392708970804396531668305701448482881846560814987209821873871261136848194795603272243405727530316410491628972164733559073336439065504626468224127539064655185349658174578114408726643407381866293010473377640689958201913159981002211480733466038870677002643056426332200652928316747768042005578362017514392262666824176350304294234363300795113746344940430418071222954215940556125792009359806207272792046005643778612268511807095574371597066718507123841343364021788048547750147972625439647714074448151133650909755563491833404522785673918743725751631572094656355804629385206850902516604682431377700977046850663760663106223405675352557819342791931010464720051314859775016388685268315973190066277611185931325993651479162752912511886071856410471088047996407959282738867624730777879263183959239166973437264659132866908133908522198192829524638168168192465753681924378296675249822629413848274473656769413729395378580120464826779825407551524067448321517736732117675282548460331996151853955384942722851182289624356800921821420168737303922439049038392118407498225817251391235151891541383466667684829135743674538369918696961849937849029732084015722862176857105110162807814998972529817414358887579621580739001459993834681655003081264999754822569322900741687471277009432482327630543878484024525864292039479951432875790940368142754987524809979779407715540794841998709318905176559018720185744321712965057447827354269308626780435511346936021116394762018276021003597242926334687819043249417363488944103856417564857184007035367777270081177950013947596112383138106621394514514418715755530547580906856937748410387721105483513957262303526127473100295673880310573827315907617565444589162929690059088389574556085771376755019147274493378481775661099559356915101416659077952195348400513599623355259708570298405297948225862895646840651180936204598317982809988065846318308547872241591885702238170938570023105102437870566613558761978893572121791335483537473199557860364341626748553613606715591984084018899610912885383521157929921819334119801845389551417939384673003292952464402013826844316681261156305293939300914131980940219728102027803450385634667824365165434275977050248759338630849562189965838599473707501229172911755632589199182131094626081072563577956099732180667338384309906402638174741845607815108412934138434168519659712018173055795166878928740257434531742814450294199817092073354975304735439089550108632729447707053973505084971569255558695145717302680876767336825869745605238129988230088432346508186665524408894400553221319508114667895424176170011562011363349192573544702528947046920972443587464701522483511378382240396776742948311248706361980383583569396460772998671053904134388531615235760836695887308685089026786357940954552109956462099928263643989437536307719305854580805241896193358685755724427802666355140633387761536334656163832230236424381884296424989053056769499003049223001014024512718600160857816966183129418679014397494090348881323995959322752205150848479504284137207116358000588574770561261768522858618221620598703159449569952458402803732537123984921404375666584029363683539458233861871006695785986178546892603583621301336986618885411366294207907057861346704027395737650227032124353462202766186875512090267268256903580394526531104480725902377248437826925762989549485082939179660449402407286136193131189468587868455882169136289948490028148368308167330609518607810905683520118223424548668812357861025777229646707575415080529104900402665348433470705317335880143706871950038344410252592252402541039356625062077578427084429383987235460900719282848625153242230955432230643082964420488426603044838102821348160595146988750108302035850660489270547514930329597869090921240267164634194072253344530312705892999340597873005638715632451465944148967013961368577965944570426680288887455987651450976206058615057594004525374293074255007983584730519543774979333449046699992763324050590710681586149688357504078638702636860570042553819889359994631272360341362838739064377171038613948533634946293282969540145136415769854030957165434914909785204168337625486522000625142972853280999169270385833547994017991598789811845466707701932684417399736503017691770232871302993788135772417591152434049859598461299466886310058226403930611070450221867773196602390464212678045304223567942559786569756429249794481990070170799912059604244459293417369560456667668136437908185421027362960526170352598628304968361660784876883547684829002923703779201593638030747660438889139864465069411407980347655422216231456243124107027475689001441688892431234864090657885759952268294068668919398639581991656010825559290753652929406267577779568281344478701133660018770005524404987992298992276558585688665004970785325370388415101529069891601212272404178788900909021517699159416728722380923803403290602905173281507175972340516200890873652934005743940601657345455123332893425171009581616014254850559487075776898014404226595140151987386952654535331790506934408490684031240308046168324243068263485509807439263264588895685258079950884297595142159532986893780391811696164180659855640099323031939716688415096893934546409561196813733840950281262171237063970165202665274364674417556593231185910012125122340788290756661245535894839217894000461835087939712387844718465341239843726207051992748374260916209063859801956422665989536599150931536141767451091435759305302531430286136487259223577719147966412859340722061595931235907544451834930469720469814352965977055637190011717159024382578741980048593441904225822502686859720591044825093746783679503735849061354926708338718347987664991519263272162721432097498035789340002432852088283016263041908673781671108465708749570030771954309367962306521821289348884641132792280289596850115352435595512466166457768017679754652861192835924954160183357357680163252477918708614764024165329600469080821163927491863083928357080092048080850009151042286285168918842422393425222024532995645668549069643812629323525317876689501480457780386349367662221307651724196558510564552824697720776544097695742864504653164739558239946999359822363979840077412907437044639743117148657827924026230948162828070778233925057152217603627037403504611669646199982571787494721704070811786312501491837560024679299543637917962762268523850901324232660612173247401156138877325776964357294371228397605213821325732568485433285063420973682095296120442948436304534019235728149148017547935306671882241097122150579587443831726738554003266107067428455869899580856653783291880816425575725539152530744752409408165310622827530917480653986112787800288098453706860084430944974146584092779005830308421214195147035152370126548465129396407254064977424344764912965252559203040006545269512003257274170069382922696467414992750477786521613236312649060468596936560158651387452934130980726631644530638371042688075678594047893864743139943941050390994728186872692299369080837605143307384579388591090984419055691449888380411354091217576814229626377378684228461346812650696197218544094658389382741897745076445664910560220605372587173579657656831924127283518380780067897538682468814371638085894880811199231028291414477580353676784284139267905112836833099145209884484657141749554168178638911117503957773072134748586366736062615287123358777167188008889208143818063177613746327421680578704533203326577840384740325342707115084132423337473568813921540205721654500833845963611354097286724174509075580971540132317282174287076989225462933632882313740790942194492665262079320022082958562591533927308738305004824050186432293585181997611729053950392569583703806912893259720135420949502188823208133649830932989094778132418971859986207047207897310847005555438803801486061735153421905473685961770092426618329190190314521542675666738034290371622956666590841954415669389944878340490664990911593418627183257151123974741539338905996791992545118939507556789718395805209430648802510175062426644865692343270460504005056872844634421918443907767395478544402628982082633769031349531042077921646249294656041701132043699572412595235568935401413679037251567728192507796231593341825436142008880290012345307334851069941705482566298412241290509203416187088016289268352635902144832321537520638036835179518055447266111503148688858422658798357181107265786724608066026134038150757711456198331362561863000977158800960162928832681593963454265115766318669797920202107107936081768066489063455504070073154379547726679459976524763406709250149694037589567006286030154498456139660800235836745687584253284147070045924123275883178411472521178947317966439236916568433047614491566220028825854783356470415948605501437982649151310675101869225389190808280124167085200636792349547668280983095767733689767990723791964384241986657597576966186684748879897250420816526717921539198505172817350055821185996102516103618735870542249442531588006837768453974962086407263170448347528363270092348997974415537730791737204223926307540248914217035468902040088170674422601166794024793856088373908736230205501990866473127938402756911869506723303491318543098171890991380292509094143893494600664370144947385648794460219749696158697038114993197195707281650922858263337299651256581957392854808013156746398454893371550355495314736649000556476093437511024070942721378247957810459962440757556218779991251079283172172423992831276039178164259986968994553467959448350677654939738363025933286666095100675945639633332193184282150107802731478175775159804297850171609850997164813615118705408097187339124512876614404687341192543801143003279731035248199607217140608059394278231917526305860196501178170027139632816235726382980537464256994655759453573436919856155757301958376151263395331141437419526470633473384372553720854535206705622168303593852918568324409130223580249334090989391111810927719216494623881748245192774322396611362579450746107001937003397314087226447792954037791653143783955482693399930402330279905904052613289199289129419219124592586627522118776620813938062050511981735717113601433059500055819928764209001036155748858289113187151393395489652897835674510319971446319870346538964475604501863089125566801604836373075521814410469715743350473009578483842218038565690171722591541416439077260094587158995501720719813952074992131192694791719196278733925137643894701704303448531103455467514536593868024164024540651033580926583696331453332089015072038634370684004258999118319217990419883368984694091619683241985894296955314882712225666209386992778621695599249638149983285353552610763600255155825248124222005839574242230574266042340687582339161609616367640300098896657713418875003325414099459320282953518916160151470533092542952715399409339501847252101548170770243550010016125461846275027399825610242536569540899733976602730791449315779963907585271459862405358280055975342379974574701921141056328134942653168331883898995144747168969647206415561356356521211044356387644223524077636331251584457308923965839263533507360448171254000148575863912599978208746899786261237824672180035840507754003597060297942472213015687111929892957794232881687034725452047950302004328604976820675430968502141038295546592497124598676269113284978455782950002656608435063423172069197527847196533568048413982182317334699329916531410472917789527351086927054702245420763988861635930595331312053151513391668809485604748968922702210348162567259005173262815801793503641792756364169215959809399063664446500507883557670419644809002236003495489854967481521676338734179009249014493475037011747245895803505603339762240262587622804952865942605828106448215711875379501084710216241790362362832091357581625159299208611696632836619026787720751537641405021972715060956185205029642292696395169102772445088985495445876425924826763073833767942407357208945155726544793934560738662976645717343535939719273726423282643474715231938304855361918948216250452612284028915065593235365931681881824240541099250362700448771153168075199215952068292899083098933738333392262019024284581236183150526889267095753035923489412290407753030504668954123086310670376484890672159078352878686518355052593489546182867242005763172846091639750287694248532108334502979484896884325298073122045067237657512313867318174158196580939832992414199381570783581494029188225075482492791552513313106763274497423274819724612900491268260519229644830331223827681482795950960901700850845101395207636223269823590775179948264467799519989095996648586903063037838478016563409894708184158326901015522450607411267511821630797410524203388560621360180907652272590767132234959928978356691553289136366713797189945823384384538964644000870446365643377325309434281551301262408501920596610274803961316079273824752227600405466667755246332945123891069108820933067314576132618689902367825377492757058684542803656911013353069027224784595521104412979280685339386158802911498973805561497729744199783670140148608226104166190139601409477142417078872512724754155894808079275062076659830538434477405330448315201209859710686223721253302066569611969344980290354784026721978215538214732670848358010223458753365893680098520687589292457602577861030938088919324873201118968862499165115451566315810389494646202424537821589158072999053135654551863129593677217588826847000674640080492193844147120032552935033787398143096994798022986825883898095872003855377252843433113941295449424551019944470629868068460616254636559384216925064365887889390780724244638458856832293932721915301759321297193048349845213157206700089784035914892945861991164885147290684544495066706195823844747166825679427772569216467715051688147359388074269810184441184921729851547065545050284503283747859425003178474049761390325516994360017776962943034446284000075349469617398201705671790460036771593663097855742299718686794954461996980936575313830430426688346925951479161410737971747505782143030564510677600552306504874236286847435694941140994146332908800660739919770883096445061159914389818515267155761411932449910862673146962359520603414512182744946665857554863330654201323430874739847730215201612142719131311786672314482727787124088943050308779156579837214015491681027581436229740942043528490836070424692694987675148360394662735608173558242966224909770437131293681661834322447424587780109046248636685334335731759438332195140656001771201736774532212035699953025720698019145961993028086604735750439010731535299414743428764304995879242051731894491345988794066381651884482933825604125762393855227959820041060206309587983512834628463014403522965884995106823535922729930513559614219735866879908652114640398924154176062342064179242723223177655298381178579852358461312959584036874236006670828019887008624265520277940588675752099124796653330068106582828545083474872434329775844519830341330661068120097517701489895406092044986681338806921570608571841783350094298090531207176378394842479239109565075936041411528836573193062773146964933534991327062289651342899378868978910416780869333191888048711339288024438713955546031697861438826584777625308900329620904273485241033886810113960239868108463554566994480536795752845756367501354356151207655991699852366414028898458060997427321924329233030217865514538074657143202518317468196052033249350061064449576674414125667476960819801520454745899180464168197856779063336288166061441633462935875788735460882421632662246935558475630810094166326495105521377120358402516967977235704369565331891861152393810507684098518744448596250684695864643367282287448199484762132235283984263314338129090128722473198132491345972628195491424645067090131426928644289670349183784536002292122422687627372199686518912619049618849900076815739832671587069976636337008391306673868822136578268342880340822144731685369787739045928291128501251426112005793877293265251358450792164670385847272025584140231027526721231193160593333708518698653374074407019332301729565318859735045459058649877307639049974718289173957565046371182208186050779602362193106009210920362444895033116253242936895476357301532002614356186502896041076131965928359803589959469990186360410241431905863528827040703021449831117149490138756061414918772739507802674786125106331202284292935323683339670418210501868004827411810285652730454621631937284677632564431547096958250536920641210867782027783087443311245583453856753770501269276986835156437367326054009080443651640364090609256936112938972627813471791975077235145478267642875607388004167295877764451704916743103745060694282222040238640399755476014345808986330771658090495996750481940876256692543339770856661391899750781157768974672318552896610041609442156142051584135723115423401346843513903026543076382551960019954365383435790713752643322915229707984808881769751555624191099687605549324832266391070335764097006038203091475929094186126569971671445360208027571322088018466646223657988822624938338786023685027932601355844196406539295013850816122765379395472222644495662863200784328855631115269293061522020241804507136943515847804556769491357507643634071963410990213954619883177264501328821195004239202567162752909420856269440156383205410746944061872960449422742792317000410743960631188285302680327927832467602127758043567266217902015253612733080713581789175674851875995201702996012617012017413474146000682029762919029443810003383737269200984988174086080673841360161527170038220481457878474470880026120050471736758194701784479149574937163617705760005934294645846307551269646341970701733783749767486389632330162476009942995609515247842643820098668692691340440134448155365760259533183080993983940050329396015905247855488202190870593943934862569578887901989133073515525298521525375186918392531092187635016295149197304130541699206474311923892523307201235534425849868229269683661621363584275655245446356025851969283064170168861995900690724525668588834213754661282895073475679626428539635921676264332822779595869389064374958646830463729992150568782668616894881615026820485649632718169788530022435037546471104232344375757951394588151022379068812437130011478553929083147407458475996332357427596298581577960329727006733414466873420660347523283583276069336671118986329162771873603536402149807211548179531287470987488049696245179069464721490263481384362100018400123823948936589746211256044959412054584425255258122866410470847250951755379006659245884251340745527108706880939714123010700507956025234266210547943146181042533029411480798103060828393569330398969635406735229564817999614613174164877645815045019165710850997857191535862768616514510871594125687051409708355753482591859083122402615367583784272013374910907893489961462011649331150098429082695634845506686942545198612950179631245962392495402792210204302114113489529521244210547068588798749814665150347920584335752301306636868707416782207281103701135161894867993167552699380159808001627209001057091183932097397982135167670478438023522462660757397172149965352610278993436599216563839570914002141784276676725861251497345230725500115873144974761645671837634684802650308624558682590719787466629890410945895299728856740431800478522456925014319232458471418726034110053883635517058680294982087831727876832386274813020822957762780205367571121683510597028774539795000608084518608698556287571219054080762665133535854516339788977206427055629580610954728789370708056461278721209549951711544927819046635212863638286286177917757319878341477254668565785494971860703142001395999139093047478293306608588326080792687810104194345247261138788399366666960527108248758215729252851306384307653840530116223797738812397220102203705096300186761845047605543668120362742175171622706097373262727110966064101868913450701392127159921142215584662658396757075371717507088618870001243145685947970800507395409816218163153702871205279407283299670831584994797990575159410312813476928289404262536069728529395001740200655435737835906336269575168352922396486119703028855151538097711707474830882264532796967775370247989342466625805210694486490237238309395684656857604902398146868555514051146630150926974077950721829941073268336385632084798361022782942249367191130516313046271037505481896180806929918187199349662101014043274024014800591693176594311275253822644793499926100651126755250745673116835387120024931423324493874484598695079080570768331176124096871718150414375740373916319935063955004300676717283276584934454526412168543730508649999023945661815673559014768113011557016139532464924593015963562562987101918188841197648170874257566004458602600563597125264103957611440894026201007186977099618326403409800542820249503318267935858608636221677076377007459622085789960101549080834942526876219721096926811929855632893701885999115157747563898888975000365717294205861254145344730744197393950557311229829231654714531487269680417360683229189837734219946537735131908145791242638578753122544396440508400820004600750677744196823779447789587333354060414518707077676658299855534570025182226306333836444149113043997877119066197916393811724958509863346946449526167638695220096649948544623601610186474177335248278803820148981065165518853571710613644638817438814811864603273592865812264398862748129131758173188853674196981128425979919166786515171803196792766551761192491236811921270656918419424396614841390683461323017099569715488396765697074836036741537488955411046627582088822802911373525739733456599365144010205030269657259780210061568768674589485520039602763404352417612712637558012488918321539690022872595694245967348465273371970374665981324132935092525401429388958375477495606175003039641522686450189965312681733911821131144194879485542170789987252637248999122079142421724199106046265665924053162921803046814828294245166861480434273321268641567663462906485123318797189200885898361174770831607783906607871131835618659941979123913400631681465384169954548240494448928457633242508084381805048966862140419382749947197227929578833121038699980032489389631794690228872092014538066966756202952760395753432535425448210903774787011459988000438638737881182991288026793268020237037246980086359910566437410801506473637120021513802936165560250362986816725216553329283403646969597823304339392301946698541374835007037948193254260560894765595911603670781810022553961713832508325483943527035561942357561091963334445741195907875808504952488172526220320050191094540063096695275416435137886434699982788472984297414338387611763254497467555908467046131277079555946482614295532600799082117274563520323097477493450377720005000021770500639884844016688945372152435433636306975008235554059017106344467788200826800647283298832965447532637449107447291620570031588301826704112195774411765513574385269054347867821562495377426636821254847057867299654039532222569203746801611490280131736469404933964899801463375537653790686683715808457352426144813858483317578821644252201927512905211209887068781555794088163139350811559018276739449575243825306353690262063302440207426345137045533784046336649822834213840827371577209549596174003928211911473213293003734234680839966746774053776738567264957278953713642227346836557526224517395378361408382336420913046589229301648948417238109375249038293321821603715456430067783969861174344973207178980440563125066534330746959929270027663293679327735798678993073583793068797435024477434868453615864859816663073104831110187940525858061000916895956346098959186592535870601291703570560925109201076001442061521341240200181141926503058695813912014175317364833494284192306829114383199586405442494421163709046455762957847187170688101125181209417033019297840856989062192167974330622150696576763465378162946418314548579254667450872853888553221845110323775482580943716261270067141674049674337430930154505141076104214597875512006137614847491346163154548192491858286365694425325897403934312348843998885640642599651214219540371399162066162809858944916217819357321804348037285200482139081826401375686451444529694946948647003997810819617598955143228596766647875843181155289366776767174691391448243888009682607493421819824324913382381996714934569488601645262528766164836758516358463554941335289194349067908456748475239860212402087762096383891566473558213065895576896366136896788747174396402399795380607975530526684472763874174498776081154419665927301973701776565512211548450286514120784507203694113750456918170454078865284825758333872724356709483529825939392034850532386918582186809458630391181019269305940941301639474901614999175728716263726106473454874227183392744550076457347999837207496788841482395707794458216050667557144945566307646330485261949784535871649519289945164952136041399136962741825246530300829484968238847618989766853589588781328059893841337526681234272005560828616784037664967231496929810563435880625864463234851904748865099441813265294398351443851740141034845279495630566382823068046325147487534191958718179358401779410786946342133268198243737019518301619827313487566940740824023807987485009584588388356348938136169903583419356019135767817920560753017343197252421642002277346263933287811689083538572188349165058133422806619431413011809547154257090902273773151102938374200394324338595502088691987108029633039316228597000177452588621976762733563606522745485323304498858851889650273818530607918943938023526452836056800224215396287374479344413743419435931845517975062473112332912507032668281664456663447816211217845712496306739900546402785956166864091885183867257431759492262636570229175886394413744223151897333261309773299001932761353413435942860799065776171751180949791557990842861744907825368304662834439479147069259484739439150043003202127423920353309300949437247058041640773041848720200859841185910989011284401583125211247030481965662457901730216100024924379654061948084720491001510683684032935922441500326436121934713507868100513500311365766384336232349121516126808759559396688471693484111290895411503465545169474681540459679359261840729097795066436175867069784279383159200493162057189265222632973800323021717615010699695372558937432600956195364581005969505633053419221006026539702384368400195848486365798016686901617435024667791852754078329302672655053700196843545900295475940662138369946067151918639662021693902083091337865968839149198259387216108455928993274346995452873187561296798894253475058874260188691928010580121123600753521870429088911730967538037898470229367537956616318913595642582103841073044674202588378772305999235280762642536714978723491801062832121747438173140304198886507545456972918079094903207202638834777556379014266216742461830535983461114242332601687487338527873585746561814907405418416874861550688649806621693106161634350343071031751201976891147101467218815579334079274578235004533377304738777043611494196783242703378791959667262124607603280473104070666258037305384864056751651613708874005259651075740551288380971279499230920765995981786180505779178242350870764127398660001507835970479757988666400548989798281820146149621797726188424179919280538952143128693062346653289437036675520357425287914774892819552853833455289576271580618458521808051710721349784602140565629799174438993415807668774197506806089061620142813767901308007730956109558318737550534800036965291182850069026571188790997074073193761178590525914437711696571529557089162162083492436901101480117984753327098118718569902173849145428098513022921236624060436328862772078231422475276127491118531309486406461646338674729487525006890330163451240565576818023704501632831701835380058707080679186996188128174618035407117258724170155847013623558428397508206271227801105545618135758071969581594859176955984353312462640465560031444349376269695418380242580220876520276809571174109450156210873733199299696681390521010739814755141734784423746232443647819677473960235285380967728186788289388001517521234983685477334393818225467730696517729187013590792205928764003560612661863137956567326058485276830617403085266188576812407534372614565784924093380513296507441153297825602910328918728695811504144705933090549052794924603904137001902858071964812893202777039728524646802933208111266699008891184503000790435447118821091469369300659572427493423567264289470875035568282669295466130906860265364895700286476650190987212891645169058132651180153289547579281559010811682645910154789772668171636518457607849784879403757762096928996620993702532448064731727378498985699608062199306967151641399742786799703839230048135190808798905630078304741586395902430924603815685704201131483033466068853051636689951306133915950987557636989618506818118089516001586593584983984658391541927315926528245502130501602305970320808383047379472673866896861962102637668357349738164265027485104652264738849773093749210031952145303925256603161750973326983869451067007124373709234248687141209163901018122774647052283804339079396547280940750467719529946950382049892588945482519392058599215195583700778408558243852405396581331386227135137841276623844789214987259812729268327586539141930460702829872727580583109929114868345295657410510244747111166587515388976379277092472815445146445724328741149949517933359692766755880097874574148266729817699736514894660949201905898741514240454454567076898953898165737161297718406869141223121130027539051591915778593332752555642933131175855508757668371152941172951090013711057878717679230326783068399479023294785278602853608001786804853257833378207632807679254791291200542423797681814646314247270758430236963270307833125662522585218877887083884227580249782326453055115880034050592051803018510655664654625524915604707205249243439285254856501147393037986755283977861971784596061519397492333664732187128649423744403106648183088653543898577461336717719227650421971835024865174569904845431680810279674272140696946161173082367475852581013913564898762095556179724429425051236758515901200467767354816759076434964517520695980131845897970288228663497685227707932940545356016467086267742275165077090703968511512786656633535188082518823577748165982137458321224247601714978022103809225719586239172543187008763866364946118881348650592323911681121598934733250040706838491989995833104915846479313074498525292685686850328255995563699348429272121810768450896972546754648165833770233890506692848675939340342751260170290379562222629038138751252028279438226076725070394302393527978128083382549097617935117100611904552661176962603245074052961667715509555839805810536834278212830960882565596250956758472525762486261201664570022802341083191696748894089391535092816606484622098793108064938850774611379496919429411654128382194766760043577807766120559942263004668709041917787972228565323744940225718414167260682541458567997596515056586235434867957183905382042300339738788869825477627043905900539965997570421862687569523120414055079817886341375487616394039832177669288032384588085284856969015080361938419824889481200972790001265475858299633186859537341798203068466194820204669272167493056627469265936547099245613901968995612211094458305829231537678703345557934772776107556583711560020971086206818903846454133853003195551647091043533748236934194409842594525302282559590828666702971930899170060383511939331084174828805481045609229206499073031143213203014968860833143438366843561396906806239055317357731573064086641818662258616637901002380862443016075959738389800938943622049279057813889844638970916503232315126556402380201744984083870315759001551631219194290778880442092701805835322604194038358133541147265740692161441593545566775559081949623339952097928781825860330248905400509763234149257005591087497468018925121823831943371110987009738471941627813843732222366950525528126460742650286188920308446530317893384381207463115235178005502884471116068994415160660160761770716460123949793741178477215325423744991092351415941807178926114157752300580239714937418167333511734569526615542488122902019122349454927737717018940119271939597352733133142589186196207730586834262858174046731093569878652691650172524715460408723276006284420079206325936511417497332119356414807352536864099500092034133807577480925367311078693905115636917296496412280580189965689599229170493370142783837923230161424166980161039191059088985529835265469243041177142078874027063223041422025855143292000706418859769640036591137215761754053096552696892511854646672662198386406401655589008652176221460928125836281273714090701583394419024776822682574164578579603646970370233003846910979768079593375361197782229754660960026319269352308405167662867596408255132048367330331877311269448076603960897851553972097602646895003639677921250447337340833698061644028653113001710851830997632053364044123832156125194001192581651799234778350587822281668503197135785416577499337990025019517697223209086346177500737682292972068983827975667487994781120388594663042448846806850787667952743366498249429506087085612397673641931265225326110126963148390125181024493696386012953380852072195740425370293349355098500798807424831172706773667380696105318474062162502867848365034736873095649960251833952074891384081754101433583713507249591274015603050206752386571994770651310305072182744822697465551407393986373210180493073717593095302352049931982817140509623650882154547052240354990366741789595260524955395011488300248978988822270405748424155036165487160664159735196132779925633680601084986367871317837646253922338184657205947897172406217023169302884875605580551461550567905269637832431449415630938180483355814286686096188541231056481711936186932096822106955206886436902846259080099980502254517189062324482441105393035801864567781611613160685647977577202307741668507668491777851453059470195257923894978240553802272827397325723318583694700631620246746206944603860213651604136868021973787805019378211700488279071513212412512851530337343969443690581626929284497957433946908960632584373419078665673373043984264862564696760040520560829148056853167674010354566701020305106562064732693573799537212449809547854380830518581720069077052193741180460458226889553405993493820215438162756149728795008459246332035098894065898384357739211666608372080738698221357759814862303618315546254323695850907635241828090752252887097824969845977099016666730470062696467716311423089338850137518063037926369203846636577042654929645288489336337087471318599961359569924748562414549123733357469875954625201565473648198167554308229380205448893665353083212854717258678822982007456748620049629720631420977402757321447757661527131662029974467973495761404862889212722921733612430060916251360499664506451353432611522602262659100060524182056800870852238965580005160847318532384857371995795078805221175914774605458067096263571457681057895632387352179454771990127268121315706472969920043948174157526245731183603029491027142265839284418526773370495403603663754816176917198672955545841339417875843384278506329101077931520350264910949316600819331710248666507958395632244654827523291938004669400052489158878478356956303224154426574033535747483506039035951621947617392679899819606854258767577022522340250809244841225478750449057353900418574171372800408126393227684633102744494578039887286131699478307592741666486325380483649808028907306724094258647491908796022859258720677181326042684451157745376683478905087528187894402257125634309822277881353483241886255872881479785449603090442585243534169176259801774671538002566259336074520280666424993657399181809571606146315146011060564034337948316715962650764232853913844499398050543937131068634028457393395838248444294360442504002373806501065248344177975524489966799206320243290462085314116001907587398720220246881224907862019297851662439299931766489432668431429439054656121936827764879056941460172761994925868724731307569926949262395079660312049079288969952690057317734604913541395723323384945692604874591939311261873108052790993119070993643551337478520455397051970166212276490170361126809862021939978132118841463366697840227122136577825546632596290475197886240974964158391494024599729404797409964159145969872372249850151460814094269760787189271942755344124045333081797403364937977754225317609195035377307806031051481132572813762820551233611814971478536833943316338927651402450389230021236229751565249983552191127694846334961261340799317143187500539937158053517251501351101723715330888261817168880531827834912814644434456817395204621435996363637187982083265971605354696873022464469931258422317785138944886941179901501919920121925471165888212038538422539075913456902779733078935992278553615281298364071797940978314844580302074031373206771602998318803232725534522874339056203233440468401576116170630097410341172517122383538480458615886935950182978454517312927492913173884004056989985304603826854351323431162128128712198583723912146581737459641009331231582286542622788283578984381101822776795282215186448429535368902973130995631058431866955382267309413665308795106504806849715633428340541901668574503594528779893199475273065340167743612437002419352516869702656660286056096902869526162076282033945542183321694428070078686087327036786255734422510923041191874994450959162576733585870732580585573149369720811291546803170217935590879020691042592092026781353065209999213278056462595903969427616408883398116373578001717586151561659060066075235961033519205688482192339150803436956902990904856017421562405966314757281633769925882830504437653820300775105344186126958520354383301766463271550560871624867856440524774905008612166093395670115682855432740392298908490557431926628125164109874616892769785449102814398793397802298586187654624397891545086382259631057005723923566272913395732919900363822002204414830425896944038403164455818201471544042846206980124635287619679702396644325357161354106954145380704385984842194333517467756657776487155778375786946558348558300003198731519354999842833710858566213627167160838267385995092188514939524316124181574551248037775276975069417691347472255775017184461505661345251276328587114798240898397937766517729530502753902903809554894369461272939969497633193432165855613338895425109899606115186168139286818512248254793278229889911906253183187618857911238722777250712910980200965503860361955933929998078387959548603064560270053226581426736057403746981501955716359177195134981724362823851273710421293551924129458373009764826857928283074880541655116865274076392563099058333737681009290572873040889439569157262690516857338886746488927309110793827922467218047868045759020135133757576949684199063309897284613666571294516063515011460792173524645419491372245861628959770991257562552684301837910425423577266140362718181091548904943565645350216581226276366220518756523544070449534906079512483333156245046490625370379906628416965258480339800324699582784479565966738093216570898561014338340711863788676232549829981385537184813203026187527466740275305530577943897390681595970797108505751712452745085883665626012217096769636923100924891167227386260105518596718142239345889345559158152880734516634762158020837760682722198113601342511145924306368085278672987997154612311474953727609362554285259681861162620836458484940404228472376922939354165059108558549889467940338322952536954078100153486242716863346417152616347803326011547867184619235325651702539028227257088226934902684726444612395557016248231113478709146683861258805394980085998530218331284251709242657746389610588668505960206768940712433147984911894514236313954044157516664037925531965601336754508005922542889371647978376504080678616357186860321753370143517200441906903948938041462404378386052333621926787271441004058843208933849624091996149098443589854359867875443143953365510013971150810428889188714513867553042562603099207579665286336248262288901008424922092627360619266190776260444237448446817519603560100881047215672921704606315574191581530028834647881565204795724025517551873858242767096013552555958265022596371685395591982127433891874907021632412207518848108949036699261038148498397550989261742339413734620171277084801074788372062899924967687223885473856813993976075334438578922231340639095243787848258239453102563690159491756977064768831761489131856857627138363690487728871426005743030715858189044562921285075666988241731593231292496953044490820774746572714827779139843996832960023891122925462807805751527781024005343732248614383939103620387521938260701481479448729517105318106314705826934997691830252331246475410641396097977511503633861549070019161326420611014375210290573723399498427098291345105388564162421589862969670071077947945595487174693877767857438910202727129246162433005096892486849642309479042510711356829891256529277200390172953337097959909018601750973483982238617045525033501527666449910061670051124479164025009714263459407184229743694077607280760647438144694822220537228552214073442419731383348660603431972025054307147995313971692084795690080805204573489058765512147970464625744333732532652309238792800002125641146304086052458152062557972960317278486286296654854916952881607791641630251236179563280029838993977511424338463595579810913690090183507732088448667983941271042506379512019786755641924098579468073428229662746193073178546890783754756628679811368286082826601533277295985449067402734266147946205463888007269063828967724591866834520859047921277363642370079402635734501393705885427143383282281738476150837872426158534718579309440369082127929217118403354535900473428351229003961973518622139390778105447765952192041710980634009971830349098889770330259854360950255322950129573928990517126175050048078398335685661042374384439609037375660391368583975625523783722648060294683394624939622313906455369306395388093900421660974539909036415797968375411631326631327710382224681419703499322402114455980333317179764737168631704610873765211967330884104673615875222240758003302453090038805335732635799878835489059577498205137847323328835427481548436806020654517740499597093349082345117115818333295863785534576151307227054498080312647755107839046339300928792596038156847098455276548437114690060330352132824495823056575365783546067273895678222256920913281163956895729307229872518310285110239700298548636236333894729399408957094860237284070018301928742331060471481144317426184274874272616731104238785395212855204619764348868233153142672429545448094583978977514630760967342889777292695374692989121774392646795106333672278181998601671056093280019872253204388804053788756519882954194735061476702663132206979942949750220908352797488601941454614786462278050648540419589543719080640506291859406637241861209539210680213290388815949506572197140145136678876454512084488349082799505029400350547241233692266317045743040318596811358044642924034942478638001609650012720697227454933550941101885254212198266634523605022303191423414197169220162882072370618431920609056187848109200929007176825848855240356878744186409860498454330434051122471074478871426470805990690187416189604146752512788479606613045474584577022636036613345092589441005540159103498560205582204805307938060241667970406965069687129025463269378783343518341303449539312417933987479550168039437292920792135149975473707665629480242408329605866878358288491571620348827512589899658479309612249961387130048647858807631435734998900237767289821101964656780380341497025023462694607250731017935620226438761070074573931502681026106266751401793401797505764356379550422748856495906140771207450723519495429539399227330897495975137679706362414569892993645824163645273444947270333402685720746625253071843833093257761280927244999449950847974773184440189851638656190359791782000800855306582978084955433923593303970098002186335602978101452645536272967217908027284228568305278831705728976368353679808034431228681851527041920260093704416905994303738503690117884633893393200300081747725556770197515178348544007687760598735954013099544388458130273705555837449354684205009372691196135685935150700582379132850703663154477155360913794367713919375284874502702567932163850962588982916086909375878025710213305467133537566380466156422220501855526003601128999168302634176169680967395395617220241632110285129520327752682219732281253485253693382927570165705693398564894055770803768096790534801799782021249771857642149993827336583532207856470020868704505107222994145618385731616042543971648782959088914263899078206133399283366992246687537285549443030425943681109540316332332694187034551428351630123938545948678783820002192085437339250859690422181794868619683314051536292348701156375195544052286487428107984498159851495770811259266006410304074002468211985475619717851597026312687419645444755101735859741075485767197791157188918178675598842563537221992852146777194381071218580360248163034916528498055502272704082714911277424809648869039478211780571919992323101267890865615961236292179461146092016008203456208752870869350462448977371325850594155461036238374591522114687396704817733753757080024519321796026388427573158491536508688509508935678626395855438036862387892649713120176175018932985615386598109032196786032699155683258441796709882330700161496935956974820378420377466048187862714763135662001367335149485362184778541080173569698222790694023339024688584565326270297291390962604100063765843030748831701936321283710424437795104424153144049982589400864117752919953527887563972625111078307020962593199751215864772554625020588701146974649921132481312149169828784006805376427129799021860717477789771926208825843127389059842414198116394843230978145748800565074282281382027031555294642878602152438865759286002734199683011594237951281180500415628120643005151642690538469985125611518511498570840216508573863960462077403219456781994173610797751539136091215772192549353120096154096927951565377695964300254031187841563789818671079798862910064863430771272800420090707747024549040608614928081822335407237600806320192810125592390947588798583816923997720215291445633603125103907336134741099138829112814994261899425069263182192584932894827333134301195220546842035197447266465764477545826080527756519813652369779114254137459818434056541578505467836248965547358049351883528179979179423900187573852895939506183395936158398481336884466890218166044558545412207155868744037913605595039159593236817911201164351874137148448211437081331603183779976868326156303372310165799065934655848431710746605625972063172883300365067430461610457515334338356995483346979845907792030764932538479919381478802692180672491441485772842198152587982932866204715605045644540216597322516417359724167361404079142428167314253609085136486161771186617289128253667581701044781586762758142989004587798532481755817333221188656857600706508354123672834985346322747819693252420272961172185843301666510412767539870276935748321706400431546884273867003245384326864323932531739194934028194342814764157150681565561077775762908994117504931148467200438591610799820921202232830388148124404065287065629713708451300013199179462408905426946385361853093267250300671173737827489404657901850461108261928425235084543614055338828313292150398659096037323056741668915551765254951089383720934628557651230179354303032374861204704494887248265703578635174177748520593786563453040891781976503070930460434374220243088369333441865678692090150759429181527423258191726254907671640401569728411653237493089125578761453338150215751229997856127751076938982430458007876237455827780052265680940276490191073305613937641795518025095665399042164058380035433199091942465646759592185032722729036708812757546039191157584057644745545549431921106024883334454654370617393890938256212233813470375030168930962230782178373236602120781540880575099086094954149501521791103101265682836767074834645475919940035593732086800568544812631127788601456687129370044122284142520370240150707106603971447103087875203891843023694927774992574428227145184394025171803194725029739237713362234773740531486528770046687242893766783284269881120507193225110688384876566299128478634707864789420638556457169176596399130352939720702279487972538964172350520514892601426372064601290380358014691599529545699106342334779863468971271178077580041843004303880604782587218745006371872289560119796563196727492327152129011498279872995055890837847416504905199893846632556990239197932953453177334795039351331255692520317215369078037287139441875705567406239789430987344786872782163420993540342307030984465419267282568146777242213424770231310851228547109319039670653444920265166202000648974920352425201923588786611029410075839751177586531221189658457375941853598818959711188966945081833903412503231093731525299253058000964952533506237662881873292617150710046886886437351807373950937742087634819522730863137257555313947685150320907261093902064912411183462384728558233426975302328671102994239379496870294239339730918737610030510965977702848984133300455246739695078425215504704796580214388694459036950134016904343680477718034924975452218163115157782954599640424117088046297832209062436422465944244609654335492274872718041665214518643920462346002655847532659660602508953270039571077726479950088388294741416405922746630004569255045394662138871848392333111282409246479913400710448313660523176317358114218773502916327748790359689515119543708927895545399506296224816905580181301206108193313508293876011619290083764286781891429856373937749940508540495603480220098525990135851537434262208893173555475803287663409005310772259574018066834588934220350913312554783551103226444551924053149287487800568098407348225516552561517211828237172105618872404376135817847966268693925412929505472766686985801978855766752638293058240555052709837640481178506533373956348737130901412661717140911439281390136539192051792745933717092054757293390636245580747670787193810930248568630976348366252827360349305565259891848135043318018434974342379665613119891644321736743258495137071215891783158720985569884088589082731992744775238088687110233544858834179690526456365370668015014124378040226904661681835269011828395697355830384023913369031624550796851857266999940072178152871236196253430330795258542418897380849951941041936865621969449995327503422486942432296119965417983416326067279798546073987711603152528667308668601108748321299036906958489475343927192292089572467189451930579096919763468720280171191396544947078223885867639513719252201110316968476488916519592697493250987153856524106342901030506234233468838204490942846834818621010565451166719124265806129251002019943524515483093106695263756119492362759679436609855839973590420458753896123388987944836587315285285302483768019186651447750608445150087665751919994829386486037202254856530685682325302481571646933005294579318376176965362023700140036356344012196232411845028753852598113512320465446011832758746131737632524409999661133855921585192687572989855302462638248204849664132734452417558906104521939648547758742444560455963276965687172155245598847508895660587253835257028475762810666192559799889376050624027641865848443614465198015278436510486312677440678401084677464912911482096477930042624598979831399930702920439153428247787683936197405221869342577906196360867305032142109147196973679277242085918347576977249265032115822631060155550168059340894361996178854107986745148918816770377007823587903888896612032467620494301493028624649857056411021073595858070352261372732160304809271142479798714360821751091592809504763231044978409207878616140831613601202148269400180444754345333332545970163703455642292883700151153315758108253933741587052641668108126206640848218923312264708400699452987845999290001607919009912263960073529696881068572753117617551552678118264358908064110355812911897899043332370404972787153802385688643584525535348586359743358024803180341949328669454759577312307878881109276210331911801679134181666737260359051681645625606523964687113717951891280359843210499388171951714597538588244437287288226919005333460614632292339520262638143032347120838693079767777288628168264629691813857128085206396831418578605184922748581620043067169875530727234916394729830676908554586195834678836214116098374083610233995414521475241505039051168686847729511581253216903515736737486931915980478945983179831883779758142249536224565421678870143479952193526570414056183769375365956086738579244012029157496564025216376936322642388240413442936713761069300998336819862872099476010560962142672025118221722401505435920400683138836665222802708213534211070276578094234145799995609962651203515978699289538055706278687388998221622749986270660836478340282850810745962943650532935159576317330795425452959053020078020141750577366909168001763606003431396274803648749268352808547481678252994228953050264799243178108526371911863780173204499277129313836836996159675716231520937342482210365812590526138646467692622182513328125779534810512379117758481977274583481556476097749391598442514131813139066282695600366604939497548096774576280885680709943138635468174024431352504063583426689168175563769391387317789115804525400888184723767552441068176536157259402602287895033927329873060310202385906070466863335916651910329309922521247647247431553439288903726189684079384894778466868408516560005548435183066954831404333910870276781781573392488967843657848812183514338605403288783436985420790091272323525457357159205105181312776069019375817272187201676345454927887210413278080080420619854212930651050209004053144699015496966374487127333897604753748870131480280570855894005539544832896593248785691780896223990750786942904285800548034800038894763202460359791651540021390719582007799934327554940743812090918252187165966274153141187348754684200695084201181293435334252303483433383510503570350822319269607185030416644233352747981682350328784591978127975145073089497414936635421283371111590580837276704471646907746185863262246819101548997693727979690833686085666441087339886827221855008426666766405295180953661684812715278295200590734462318713133219838693134220056293308844226174281863841522849497679581966392390031453889460720765753026940387012338127860701550305960822922263508520868347198063029074578260750592550654649306099168375168084501500491770230861813011897828454831984505316225597658532333973537651967725729981962186622624891965131981967284368997270245173165002514839560546758378425668885783604545860427979308505126839726895898616104240299256135507630845961008477356911867205305950641108048108493747016018901716413039142347591836198457807830271010190989105432723236985439131431603269776887237666445622614800108499879286349066981415460526412496231006275332561947669515515387795506387493340371485326018637990043318531493838894832695902017619639366077631637746181947125437333468529679005263768613078690199815590098300951021906145074395225035185283571366332624200016770916131568770348768980894992478296416546202321733308215945131043996610902729011097276992785088016245924350136919428636983660959753400886323809949896661671213249253730934586619807366512902731673908545764360076692195705723252626619022993941139848700392499784951936711829620105310709424630489761149853285473611452043168109332605265246976676919141676491979182383761733353399754316582079569210951619649132465848321089120899691384729475831741730414065686051197318228195246071180544325133353590330214363464999714235466332817750572443360009104023393403936977083295475851876968769207563635924809388939024396317509486525181969861422895935302142313154855486020219936950074112459615556133660939824042109860206256432475077687346995185543433005089308656174015352436175221566685747225088808045777650733708837351284739635789657142502542035426644404259837419312917671779977052868884237244288183038599471114632749600626608238597108417994738919373123454951349945373322080649076861358444481929230099363906333203214070477093170378887075348675043874566534601927337234685570431962147840939450027754658805640031603424229408050401533475768377436220578155846353363079283716190900605643444254126256375394943864059557111071371665506217019963882050898696339870648532784642546132375580007120381956937130541517250237779897785368200782460574752772178316359538277138504529670121522310733769874647201194494575881346385435631851267314705148474046731400859628505546352703251822778909679525748872160357992679634065851370974960218241352518768675692858632410630553574837919675878437380418329981292569904074530547310854265183617851067968757835320412008663225689489211185922670424799570661719138299629201909601742977058631188768948703092420705669396898116198314972154387839532899571817973214375639342846618461355724326917252215548164524903660707561884639801246349861633010436248579559838878907093628341633001311976335547522075909194027921006037584052848378026179189644575020561304384575020174894203689134966538680218682297298827503163077560635964533399025188541101082554820489587183033438670515381410071446441045775764263815437663208907833306315262283034160189195543423801554274077277039946128410517628475351023271189907618185766876010045183277761928653416574544872077854633484001714106034178770429649616828580776722749619005254582485980180490564488641160464068571928327405326291915696113960271895792205866153874418046800102215910260496027932230207434406441490172554472839059909781944952925469642158655860312905744362737105939686582002645611965792631255832577809568387037003321908402266931356169042734521036523090917634047426899629055647905213028988470864874670273973423592342497460113860350161458324287456336547860560152668719616169930604339563357681619088596099878777413733290889836752175141434799041031729707833795896222862757151717517786874039285090884747529929080577176499649315020205404575942789908149642446800400418538601974032448478893373844918019237304435935223775704932570792557637407607270768576248569823902982419104032591678134506175119526102906317561083820965027198437459483894501245776579376839901355251386729763813736747777160244687962953897552511494406530268822952167784253189300171229875551204806573650229125934781079276240841860501439966799195816262015031856764256591989511517204077247309279021902715318181772929471950970574788950244458777696081617097270038724123264890275390696972773220617090703633588029788575454711483893558464924059616405096147588479588892575665771210202996902369918052583913290461430683143130376251416334284772732420185391962951731208379940608021239747502024085515072015289463326354880190801908191192787966807675484715044596533822075338323101636591817411366435782978984050420887478047884110873000444994224382057448853638794360042244280505965680638974056040205363240428791010365120283427823749165103114046696322100480025494535208724284422049257092003327718525667445372897285373211455633888646231101331054969916978653854516817043728504209913011841657778317223060749858685981759089937742571215504133213988493137594941096135834171849908448380744276659172913617442095051964895592969125095759881416621210590361456431621104897685512260925636890277241765102393050845535995187990285336358399762745402004699835240382769726858586182964356637101384898962150871763454985843256480874903361034966788953889368050136362210518593263977161098946033298816707127809838145728208302523529123393734414265410902888802683111726701217838192026408274747879801843696788131508458130743909741487109090167515538343670307532859596071031821525379951478286998771998493554862335644311322933633602537246693018375345185562320012321300606717384382484692170898213560706539117033806359894063142010938542813946195032145393488515910312385381268897637077974612296540384606271560862304822733963640615176132175975349418176869226066955975598855383225615915997310018602368922855806029394720853649598028242961232516049814171578386212806035937744579008450814883159858450869397614570446547069830548996228144466162306022123717440767621371071462565382616645088415767315495761133781235201340823360567610548861218756455458921851693117670040629038497238037461671875913922516707533607149791773935654039011443744833054509095006328132794774888950676006743710402619279165558848409771743930883900635238065146743645517214645233995197962906843665407923926294328270187241582885489228177493143393586835406551517694603913707983502331694135139750577653322845026504511127988586493557763310457963021216452162409367108285408110171798955260644842541551653310338356101840251631745928309502526998828308177038880845016231342484919315381580661933688546617637478618919950760673233686376391121686875905446717255474140536302026816929781592256931126193621263743811809845571286265498329929148247988026942410195455156380052700337679992431223812625062417306886334390035163981725995667594277972534298379656913579060519655494669700180979631404319066881862007636575012749773613966894096000059700817579915497666777366825951190217768047905459195065667106065058620734257555758070622938039655524719855272925703827885544662515840834891890937686409758226593347276999291852858410452991237603729038737442809527416895497693103499792716529170011201021709972360825385100024346366554906025662886944529747518335067987066296803612832674170182753257143626610763975681084044610540988574357497676886467658829175604843086637106194617323112579375933503862430407511147105565196865441467822167495966696364370016625801593856639728363837715910963426970461005481516565743727035222070093712026090957745399491255562082546956576323716103185140984205160110992538414239244993683478703261152691341402001619376861539602687953303294245370180712873963156092628501888374528901625770981871808837780826747896248006276026719521406348883593191931543072134034223098540152197612587643009059076667734195626740720204471762414459876593332921335184747527188923237384496628523620862023119908494923854720517232547974284552698625677256773111313817934283772209553408048632730559247278905278693643810432675383778735005987410591699626599269103704780996584652915800019892678868986877583033855267342477061994408305764637135652834504033733770090204814487436024499543298296202171614603277328826393857657048642061434403757413205820593009234332576547158813619573931759728139869868946216361852175492247789622701231572248143756168721082715924678646606071498060810214135231659311241291692400417360277725966441848654008040256345191799231330609488119843734625601053003848206144254405658155189646242098611939181032153940942535438291222669102628378147243059697569804684598497680960070879577494425823221333600548543424837385416140004066327753590365110961307222189136270098079819308835783847001523860726683690482474140543469235191131260717373858311831635740156975868767424097392980552729719464802446280707604884036085197992647792831927566913833542055200737697526309997897745681239659075453064956173531618047626467091455612453842443286281653226572287995934102425062483645395469531937087999041464905298443795155387793304172621400737287937862951500827475425066015473584883711858461414300018333860444214335743544288974363090617067656825381206718840573527912904965586719981949163801773393331516534379937832966035432836103850399156355585768027016169845409054799983377030197551750656632752847431792556922599205171766600209339498518922836582603572868804575586175161464833916094738082377473227509467962372511246436939833872603747750209981816695154212099153990290960145462423989089409972301129739125932021548470317253542388793451906914701921945626670026041538516854176704940773085322855026111889520098418480997692912757985021435715132387600135176094311038641835609792523271789741750324409093053580047735167817379980333826895759425853628810753083781557068983772967082568059498679125485688704899828713381715540482472921912224097205447276927947049645699225419465794484176019110007417583526483081327116448258463401786849048055185416296083003074888381326000753757461507430480625579240498902938471000992462929669048254111963328945971063652759790009354630214670596333045332291767496262769909121072194083646855096991650352437305976725986798581990678889088539322514887693253226757562808311405535350183250894723457651530326814909215464771460218418184567420623555647405287442250037850368741228997850761378427335026551304070138107752556442019565517512946698499693648820268689574677702055034177733961913723323287152964231189122949667020899602233649957227535284253697212695430589388075047844989988386142475579218910609611393642718115985771451111259502890093290651556827107725068479678659822915852932618311242968237026260055805463270665509579824224585000917536039505618010462797590812283105231153054160061653022284435198624660712224490466911432272866602854696079371605045609764306378651144369728493738112858354375637443073526949693060027113551910357148153789756119913973491911215178514929937746938944356268197873626229925832577696891968637907104459080768684954256174362572461641457625611321775543393234145344212022001882748587506436461250537703973420270665112339378453982080145615658854687221104078683475556658222307665956318055134935367980264453955939270941652655738659122686854497116335515626198083418957863823222284182141724204064561240847978014008684699303999874438869325324296563300937623429496807469734123969787042219423475869247050352948462357597834271623248272557669121363927956218160930562327360099843864649565442131870235151732798814176107577611021113939594775370205586766191126972627066484737857751044646567323718425136494595991139924921040261747023366283016306792181660636006824201913047002976452185915903350156678330911279633738363997659179784022804587935815096663788530112123728662463338898194508419868872882104998823745385896500465988522376770767588932594127078885371670329865370072025391150235858118036200652926809394533901391709879992407714874314232815465639468698133862686253430144730634842912507095765634702482936190004335841643864470717332802680720644542882391774010605259202742296226997094835915957760723067781917730059331831014004216154868785297410682174016933241146300740820302217414493391360074364022193522973447111015473775564062572443547774096738743160068524218029886448029913898528373796804088593202392353913626196690621258887825660281639682273457629245317582863329512606999008501704673428105992266718954903432457311093697072936434358834997924995175974480934305181586953041850589672228285686592831152120502894821205313277003020111190912854999352430580160929665692985640320539050734621696729632366041490550196769633779382237785607936435656841843090420692028652355170094322196786280326971030899233754918313680173028475511250895211477542200894148015787488771383691367953235536124350516440254425881518779249100585233905393013186023144950950954945481555860844155790085198956849885669289940799561909067470557428708101464719844681109745002231038019879063542796930074303959463365198765440322726367656394592348203550910526360349204681776999341264409108143178331883355050403646658507763832213426830959274085242282326171816927059184654495221994555023821502415787266862882060523506574452470200161588937217980649789553607043811420591660542329778587080083438154146254670770866875374140521276323076916758008157263376641178875009655178773970089041762050182903836191087160484936044578196044012034859258595454477905662331223220313027789760777308334811288338893503947226456887018103152273068097829677733060866458432057858982949012919133850331180081438065643895594258070500364598972595165638157503671027644520476123283536681685967176948418851583368536920828281283027460602628103656198497788544195036411000656731057062226341400789338853484817407459081855703806160745881655927686090018996975932235633959052074855894232668127686239346378107771764618394732910739033865281613298322334335911475932498470676877079256662908117710389847300865820004031872460125441134521831184688022714935082022376062509599804470150350420707498701866339330446059105861819226339934904629446693610079623531795127513695498959770484014044330292157338971625412362323870837087331252510431530345737602936019129070743253206075722730317714214658820721762942084434330495041996060133212427973043213052958842860539623917256600951020987438023010620239491275826857581539859387012187453532215928768957821692013079873745731349215289182409535679493517272763049391682311664695569508040197031219783461774276991995798544371081191770263111788278987700430020727581085694317439966879472018513507362165965348992858837750770143196029882502893920686731346306111588702149753013619865245800566781456021926469549171304536113472212214162137656432926570673248150635807782050102212981645135122890982470441319627037277870505150499420726466094096623678097744392045856421728840989488859167501213328915976820878040945635386486277137882169485490481708684982702628637424805891954342300299141471612538579344883568707224745533558511442503980490412781521788500519124577285442870000854972803387832254250807655153344870170987024586984281917202407200518522386010486233501586292535379431335168998926215994801841002795492309348759109701779476323451944527857185096865059985892811114383911817847384601129821888194542645659578582419955056702375269814077215061034321814506849419006626165725731590650339926458733618921674655029527547761743234545043925567476910402626793456137483882085847668767202126505296764000965054893671542096584299620022815147013945057093322437947556067527625701365297653893751563804217783406436598552927994453229370695196233391977013239022051057066477314440008058159436002993433016443994743027953642620608804072556143979014775556195599948364380113376840888775659855789526025958835500507990243864357853822694465921432205653273619452627799051507816225207550691952361224024806964830954942829104177345439144774583285832051011637594895208051909094648047247739588954257035236309125873349584805190313513315688506838016871813085015245962655843180573749506240287097086481150262878225202932567842802980944195271143573234592100062614032327157278568805265201918988076134130569123893471545192390946170021253477338532186974196940291203947097633415523536791388465003748238155726443907813165636073668358335065017462377396995335358403214878528082726816054731069898138112822406379268161118514216899008600988216135583800574777744823607677089537845008231818318298350125136805764596399266364596332573864797514677650735155866645045038062693911732425573714255783072342390400058725172339792080005841449236102187915769839119860248525677132856020582020882083728113168105479006775971830839927894001294840331072300822394116816108368512044809447118209262705439794178809485129186895451727282142429625660492254270131061480906091871975841829024436079999815711140867460543733606135585941965527470131511915666425250481731496840182420928736422051021516759238058594632217788170987234353214155593026744671838350420942022193014383788718872656384548690931828267084621179368293061327377569241310402311378376960771338168652819615726424361340573486566448007724829454578914134640524034468646947006228492293841193833438148306778506521886584822875658449593952246076531528038132643538144707254393512125835773930619157234213489315862664245286047669477985837376641198045688477606267599264207287513060180905754168824217634948745361826849350108027627793901704384565306241340417409291649416887398670183590545293077476892092567556816864466122302704638553614803828174450725485527210969061027161798568565050221086528715572147473899829683072256225052242213968588666233620500601148907687790529032275104327688795850755485086751539685371784763672605388252876197519325582017048154463537733607039468899015543283902603587043996475711766616628711626171340720954377381116385611699922061217805840285709699006338945149786708235100297078531426855216100777578144975059516466445751544335839564700758534496492160923151649767284365789486827466725216537407371184521737109968346043745832891967471112910700697278212181219233316402434608938581712520107165438947586173897010564333874206136104585157389935029353493647997481514313547312640563495153940115017977772571709472758881268324596682163798764573450636168551034363473767850497433756049109999221857011908932497780297657277779631143201226620232797219556386564768612942563490614221397852451331748005686081449669774651827842490292002949351936203308000095448259863531545816474006077477033557958648220274540839828199507122085303468773048676844867964505396866697244348433631863636347045883999086983971305357244043675168963429295894617335664120020612253688625525685669149281277146514428405199173862163674196647448767732771463130438043707830593013657958019802689289306666035186051557593863622415741472125864074329630067345971911172808307652519940796050367699389676390128003560789940266650626963093154437410161755897651508644041099321713811718974673005752941875434025901620680234460872441083453109088636847671281811618282867936594002810542988334039483944744702634133525112892735728451336690576900798653109304418865355063083556897245278569013296501923001131047076691681492768118917382528308289145756130604575608964290437536250749257589504063958058608947809140527683539268184632973428688243698196709633759838173456989792673652766198822521536270645261728494121626703601561330863479241637544007020035890931359318091228084731784129929726885015623973343887167845777462423200293568572491382681153860743233546026451446862570403983061674014767121888581519257586827692885928074648393169118920463016586450073527596502687725312373656093856197825276964242733254709406686602900261412200835751355320709047040155311254759746559836298487957598118862253972281377475550752758308267128799418981814563783775055860607872910692616160161630026491425813363999454716850023456340148175163393940421022875151528811758581924502113290296062060472812559333665640377832234651027340909250123074938061294266203442341262976797102152712602877426359635939838468554532503567623594768711168676447621910291593243345666190675496959016274215085136788642867989497083304649948834951317170235429275736264526357223132434146854508498050961373933773362647866595009727912233903897159889391168075723407429704427204216007969080527442351384303600034914778472145617380938970475102689982976216254961012428510268117649674833684154299455991308085462669564040004870610819728721621411714494124934663190611415331116543720425817963342822994827732916690348586790803827558251151841115430352531977273217302456768634414270355693510815786031431304360384570385408064178009493839065800751010220392162162156987866880363937149235685025792237308808654875105499064130119756023995885812830443872372190278209069973645929864546343147163962949441009486361915245268831052240972584945712370085516293261298846553116579672010318596555556509409015274565324225553879014537381270641454291585122890902373402904968210032026110668166348590843274701628317341835301605859767956742116682552504504660831037045946971928388425319220254841536193981873374464890411707108548822739652194636284546260131414443662851066072834416267572224058929812853796594899039963528758936357121554003663522198723431089814348586845305054430712211560800831957407267894451033881349495741818227077546827478277935007057141995974452034260872804526238408280646781536020191574221620297345392651120422059050255329101237666947760891487924632419599920322803918331661316202647908407584292723693290327516053094743694502194729709876053965532987575117633559825540960096356808406548770692685655510779350453616915698526021070380767624408987480578331329076759732029683427987738647969389381165613074401897100245075160802508843313347607192760549508464360732704331434953234550315686587329584819013617663698787904179502540338182023369860593573866476515614057582939600664716780788975547566551562755463198220488327968237437854395408909284256884627886496299145126118784575489706817313655183092777647658490469491743023487381297845747694074171706845664650313684712118769284721722371603634692096182782008934362987497598040276899433092712236662061418000746337041692001685921289515779927438463257257343547865822679405477846781508430001979176191264645426138847813356691903554170074610171669880970419703271461557636100493263179235118647235356504135106140162215421703269669004834211930723131678711154769339813639463270310189260344477452129034574385313922340708259757835371541217591031534999128677365247581898889290818939074669431881041174471295011989545840247191551941174703229941294847914033511133108351434134070617175650732582671364195662633619500489264504450207259892405418179723679837295064280059067808988922204230429827792056953871827021232547261796357862878932010667667070935274197435524819021432723836146449236755916866082740579555817762982929601192528220733404384003348814843318777512118326473017719338104440115685414114983983577790325934436180048834628136412434237125276049664959233067895722296751649841356288409493497868524132436626164564423035968368957098286059014405474845188521060980337846475874403816685568620737881934738754530636368293868954848998873268587212261644289541551304540170450018468302765753038322347253886212952338504026167138411982024565217333422348547674206927919452883530843476742494260023759252547623121299829919803515442282961559696746379490196068521486262724875206679168906214924143774036333195069711239207570267331016002786227948992884924627621072470026910883906575056262525815774756024019199618677358344643150309512201028061714128545852233584020233893397103369033611920416134776223150624126608814023960233063756353113852362718075142999368777412650338811056539120729730990846319347999169459854395053757445523732309977686078093111067853550188839323990576773220724263763518774009487434647763426863694676234230786644744601732630980408482966636443329086704137634747415189615221547883464649718642391839482064696714522124246228980792465871047074870402520670713434480911529617044672399606253884103297710701744494457004022310658945651797867188686352526849939133127071594838779121463414351425725749751225931107407435898114180266309572793777110820889412296957190766870746171300242364282657350754722125823114327678177659245739288925261921855244129693539489947856409514088393566648990569733432856316530939346740974630331803620259287211428233885028795008663775254252549798747986947168868146338913049635245069720812789151614756651775012848124904842750764373415141078670197652454869868547923289015443622028573616882059397557897457427540414524755452465996140522903629508904814109150612113476892555477159937585458992868590746925220218827561339623332908316248956779970984581330833496403518066315720774660039996677433018334809608866344707467189441902048614038084899162668004526462048900950926222371046707612250110264937580462516846632374910408648552025497418527407582196364368650231826010572552126207589705474716254938776413604703960372532315985311322512382125449114376059623673037074803098137368777073338352389538980651192582756343401341854769856231607138711278763217718933284366123878280102432598054474177644410422200804792894688799822290816167202165936291625699116974065081082389297992667838827705499797700537134950113287477621612710929992609792210637060694818885320808862783007151905690876376720758885032645507733007005479921862209753113506705443449048891771283407304692764250564739472026204473470932661901288983312368968526059284730529288254752575426264458398720216880377726636717958481375704487917072864562683000579880130602923544250263843539544569390711882338316104426016808936878817194191949719816476593235876466453170128407390435998800962760276280132481863162719943688717861261579878158165053101243916125990415825078101658540951276845120761259603679910611059892956335454670865973411425244572543516693855764633160692343322464984413641020797977936351948762194171220698590994278869219696390924629229648403366088173725411024091424509912119372555605264675704747908182354208615921098639015584839616171379136942128365959098542399805841495760681788260869717517232186201925201935498414312019021219792894093316935895201655297144674032619233880981122142051141448290026147349246816120633884379535694100634619753801423524533013956233598797546773821164936208186842912975826271901940526064136804023444521527280568992539543593080299409316675840127390865080600522799620637058737644506419614155548848171801062597832152661336619547178849662275546685637722932380239301622877697597299899139363275546289276579066449618019341181562267398653641930077594105105148463071845634472755350841603744269474898134182658682386677434034501768948089697673491626217914272978063814481616106995292668293337581154353710708550533754970087707039599342428461894270238754007182505061695406010721713360079147416836010877863029810073094992196312198445107086974863076969449323495451774969641707623578616764379477560177503073334179780325029869066882486988751280967080400821153221483966478815411415593454342808630193706345856803635191933627603557959319665083638868564870187268270427151560808790444339754708007434278339802256580253920772665228370319915810654697154920103216267937552590091123950921410443312714543221953558993010541651351234831222014114941295532299027238757570358707865096065070661279447387510489117163485955664731413993207741836091619737200168724704621193160960092608022851635562973792306823839644961985330291728979154894596554715735152981471299188995722739640802639200982640635305740767484849903782047888887371665537419997986847774059556144818005496054250669269099638559694680216545515378921281577196410370116540176754556468561148564231337631888759409183402840812143121905325245597361871208964408398834339589801909102040748617569751034088183312437842739661881273345814377065168688094802602432647517864498911525234863844889873182920750832476966088198131558321908984224769537739992483319814509919303798929055247435896998659967017198165773180477230324334697456230880321606177527560255276982147111543169542402125158281249386865296779241781936067575052608487391703881964204490951406520658986682088217720752001519452944690446549355728605135698439806425513811045882849354537379751409189267424019814082471394509503618468013391990130910070055335147966623270788812217169413654287937905104733667266674897159453612541027683216614295785355576099882688791846445654987740264647327149549401004091314303665087384754179290771028766315453823449057103714722408449234999740040951759115819065818329579122357154556083187228496838627679925824990669664730357556550105105445426210373065134908631635979188671143030165767364025894068830363796526022949052955482153312167382053056829508653047413108360516734699908853076147693579956400088353302922051522104960158346940850222561341857310835453749950257565644204394351500828765626450676183183001315917259080071316312929488934432215203517105441213285885134546019467276794327275237539506444559290463727537409655648317488001323476573363065862112517492697822314912282310493301398074641295095989512819848118837357691349733494015076493151530255474284618138495864436247081745184665092096695077277177169704903830209702159195612832950490519909730215545355269132610304529116089057048873216229643811023886307544011038128924180266555383319813331868693812027468952427352763863769404003050166154508977143731811303278500364295300304104542313277035696416575275545864922795924720566609857972616125811598758717449054242212358162158883451370416456495541402757542566152699975311515904719534019576117252218268200163765626616621354552943559370260473527507797094425687810130222807534023221567857162141154694410220308014790523375683738091811294078680238522481981609400667821882923100553593575416358778764358439721673180575452217224897553286232295559200377787679350039589254509002309472586035933737272711784150894336569898843804143506203359899834021827688883139218182678894448982972815577869403999466235485665236540607533669613493920598715361951139706271662080450405280764356082376031024009689232429230045784132493051077745354197610924669357826108169110207621111648256172098935432726246446099057312662191594752733913374717423522772907186021452346224349200279936454572615489271024408899190453277427464610182957071560151406414364506909078893845748276439045504540333091076996354208877047316165522469599851669903384161592638274480151885555573734112448103181045082976401234257355818098472226753142917057850189874289510233847368132924282932666987837643806428828120688735084570139667018436525048975536588506213665930117790896707266393587391657245355339683264248798049429946656621845121280458084123788230077159041078712461329121231612111714599681555481570939406073301661924907253685709133000816720913348581982066936874427855872629363347976473820661035465145547447983245894764382083149699813357071057129227321093956275138610157301814863251613747141852616871565220116840297072554651266610703769769426703122585595072486723208368617584457291465538361794128947068580281079592036019668309340682338356922043537022318961491495483328228604963049974326392069107044539861612918283550812873738168711504272862276414153984377113492497088374207706533477408081532554461938156321522893239562035537289734916117128048425642740492223078693359251985494947419519612670207452110680862572641642547800444670096723706668737028874861262081448027749883276042305206935439971118700516209893770700294339532794775366562967063648142965522635362076839708921148228674100566905850234200003658943980801539864600945359983728529777981362115715115468703482354528547163918197556867332877013532695432214276031324554242261708334367609784604033344474646687094006314238342516759799231157968106227470505156574722484418070506947553469705651435159050661203017075134903884078105621374529966374208991191036945013898955148720672897222610586905366132165275719872066214405026134747212001496733175618248220403886736290281540562751015765499305198569072146086573272698490037852247055743517026119940886183131912310166829910501046843851907528723580665718055950615614506736133879505841854142392768686370345542806731388609151691637612286886027778048052570493515869108746897464661122404284109412408839465265109041927851790420584718252785678536744093712470994330026319189069978059864221064457396992778585255456159391288061799978072190509434909969063809407013076097990371375350719012625032719364696052863223225680945806340574523543803042081418678478923765983299596744320335227818771378933793847851258026575967458152835201525606758479632572838702453095202749785652787312832003066417138251817759160465389414201103356725576614918386547583103450843889971203652560619690169714651101897298205794834714401012204670157350182902880576530512207314456905176668580682148987587802800647979222522223511946258669274388695906189168738212414966660973647250737694625315017221268638542256337864395957259842939172619552765372313256672368675321496423782283942707665288447404131935277511683443740142630343836437546852622813237307613238201680108723884984158141085585330523376905744261872154882413080438422602449425463400991609364661338199936582127484842780364798431673769753653929626179968424552324744627831292570863361233674261991703021573898592525463269496818196421021419194517180209694037274051402171783204796756300508760237216832513856280697128033632489781317435151654175436307732590783997127968671129136036842054825713010529851189117106563852359236947974934955815600263299851982823038111212651985338625792272315268263090153590127763614070013993938127334748222528674271969619922159696784197754593355195533102699165634426986078693547351354222702932833155261565182201167298560775574904961290704076068220301795291270034728360530583458330020492254525354303677227035608437150479488701672574142391835163198633183897494342117248208242402776432813872944112703132345524783253311075330817184018236346726046942182297002757451859769743933938694933235552268520735504328607242109217769938592359611708693369239502121697762646402793218226416269971615379657236626688480549074638887859694254419791511668689667550551241556150467270278871096939526652545694579622936680000136652755549783369034618112129478775461418446234750254127020329015361015093422484827052688970271740913503904494559795813999254639969152667657615011353379788243496666234229770558051918165920319947830987416261606075185870580992313998176151935070468435273245172453617378404540379469278634202763785802332407279941766513028085413725224504589404665982884212265848074857147355889743225066930898987005908274004179249935262269689354904400762547187962213386890957072709371047010977782800550877300869362350495397460575541688597884995453379310834000745005173745378704739957719212283116338129721393897504338125464588502621217274768351438323852366235733718531836723025105862387525455293921642664108241970442424810382731736446349960348912973174507993630341277288339986125684794678087310761433476915011007235682799323161056388767269677968571002383320156492042795544783143804550087576321970778211999371014445295607221103743478994809626166959102709426894442357013586598367037685757651744066313064834136194423153559683464359360909879631048817719534520866673076830566416564876212282374331754712430989481580620607964926593411578699119044524586154287760097308000410216796750398312267621294563738697002989509453074764598031864795894230990286866167193029821344350788548196424500094126043376727640445265215580005382484469118267274780585434926191978037289570505312206835643530720939702191167096396930335664401381357365693187591002709794643817956313342201686302141291511645227798980212001784434497531041158091545658158956997364751928844769513559276423055464881319278957057998384869686631709900612720867959545532597458108234115349298592952917859677509678870536935362938681130944158778955054736148681715020290093156038120641282037741700715073300419453156553184557800833275268647030301866813109732921200906307134749035470572783295299759805492850557982983232956757386502306789033429568078216148128925767647921307356788083108668277077714536545672637699254768593983783559868973811073718755305043251348805424151273791050084022836240063493644186680630830931622632730691437662387394119464951182408133866278691120819957835515863705321796657044304263914792009649652585208602373991970090118572657580636025718155680782332268145329557040432539207496822165581290920216792111839466557651197576162501820759433027811409451440155156378897366970622412866373578541835787538823220054110069163758908236594608643022748279625492055436165152552518817428775620605506126695054345099722420124492704259064881134736153141322870862210620180333800005206678474046912622787494557812286806285884367535605991548039732236008070072910221328519751521363020284626521249202794156205643297240048304409295277674418812272414982157589100446937174768778475594571141284231775254057467746967577045217539964226161605458568654807241520828528427608846108435007499795979069656407497331490987167709605096049034070713728366175875913246622594084913109493463758996348138239229836858033632001816997024965450875309774094228591350914714973578791894871106064948758209439774158469446977813644184221300271427875484946148879830194393505082696470390613731238053467770951918238687290006882639884055099649019921456706661715224696990494987568686967957217678699695212464388696047810771741214487578398962676797058482076838249931169859854269217913142835327137537992003125059442393113925152627919874695725772811030040818605770336567472189729765891099951692897938080185477848646605477149977248636464974750137368149335074201254181396458399692946842796358121451265867432666411697826621470182539060460838353151552363758011742513363985678331977202902629190202905641443269066276502307194106809145276682231110917429370547441629360890783957050911754520283926656499258178111407870030866829124843886556783227386541484289674884794343163876549968377055968515180152140922386556621717489679922186155464419037086824042878870117185278944372542353218931256091162877734726642865485747218703805672832900968769081445494050730008988815455274773399445225479680555990313097372432026869822493586101975042601182179502575819900532065319869829715451454590407304820886316377865060259504080652598336163788362400475377793421737793658279704111658748153981662219256008755590284666627425037112374518338254861173739465657015437203112033769525524664001950694077992456761553947493461855705275437337483245644624982853662454402288230229232691096783550386774464107622985641682951226883203129188439798557071470049269317558320678791257602351489120176102353186825647701012417495594673035300200646098449504407523512994349303231327786227995324069607155297971626091182732182732330369362355587552430775765014249779621571072204456954269294654038000159424736245450255840910627876746170768671285459144929712834336830481538664685242866622040943960515378299678194154964714099886624802450107352263962062853874977050754589542739795391934800701102988443924022770134084563672435636400506346395343611889891094599804236457623883165376599905387593045747382239499676274608332392757891637959509471555341774561083268725723766372710354316481321482421537184104687144742456318563265385171441942625548742646585938548774822485238772779500538884122169498283464906227683338697149442583168145299960461922341267890484241307345251527011684533192523348346661819337412854807901321836421388264647366430071862526309545053399788070326155959264455586641459346512158234531421499786905643274058480722042929182152876969371263337243121075277712767499376285825113862659892455147246911616159071214915685146902444119846198764544357520973299639658654570386376878238234869721078509327829005251247570066394586306310409162374713845756679607071607033819232678367459658037328176176245707104662606260858988694387760944974104901924831652209009968338141146852523930269359807825655345487017212819398777016916821620512705051453309651284987317066096219098477432342314274174390591876375027980047743442058381321632699213145447698540201382563490023188545906453632490177625997972792536445833423850816733891641521465053394663915577406084844279548254806884507867118329800034117127292975819139790416568329035344610562520797602225679760937568092812455730134694837572270585062990002231640213534248061370253396179176615078055021017140945271191901259988438759857836004924019946580977387462047611553656554907894214684508618000902529857439828678058722354000502276217136766686622571270792275076254929381836376065388991000578686347737560225694008449149168430107276630656301138939070639816929239717311176817002122701677345900269343967090918493453757270189679228670554432542300299702711715206808211726802704407003887197836420709966190961257132394891512855412525621527305883863686430194320042356887299347806088238841316994061619927070885289659268392823738280371522814636070314525732668520352452588605785701986523350618998385137464356689803855505036517417810379237523146680678752279926889463609549978244267395803950161049028171625928927562099179806242987317808411405174791909709660505628807794557495530242356832981016306729958103816820751676821197028100088275497744855763875235853611802679154506799545019570261603044041920173439739741841494774435743564411076653742467309241212287038049627257778828387012437509554328377612485284582411695955777044033575622763397359302023585127488514192438889776254814521790291187170859185543119373878641131556788955159446077050865481732523851318179900480569886230415881724011921647811572123636553999721383568097141842950087566577931436383916951975109804550234891819899345645568460933788677380516744224678861385318303537968643039487849874654190269492616198297405075355032619714498369733245721487537569174487492766615961483022672581472492815506170829764300086673733857244482810565639728483642525609356307743210226509374077991595775201761358973350380949185554483228541081901505301595977630189040588736723082720721771787427622101437051506292296608680966886693274589196431124485260208068545270535006132643555452905398852002214996578444643632857749682831269561550877490119874111484712760634441814504213352894751663026168286286510292783958439343690493305147967736573575362264159225417372317742112294447763319322390596938225096082125097652552016061887671217205987052570509907608373601949587462762127060251554424682831771725349378711313849147911649381623036611459359770125650604546484175381664650557654930142847659512301093140993964643504573146017408652369455565553643344943691886146535934071720212125162006370027668696744064099372888435962025367552814982020306601539235130385496168327845210735430142486732293311566295054781996889218700739943686994401368098646858397678452537258829443853050035392149755043617560255172144065153642085224806925344262441253361717821122079846139857867591199388931440408856642653021382623969647044018317549284551824194386546466584584106223323941584126669294529896179960630955336863619782708933439241325622611469738735917713928367678608238391083762187259573690667092129885689263225576852036428927073901353311858458576790649739936171877184705040104056918303941840435054640882111572584135280019210084690310620837537196637468357109257406688726348675829812842939549526032666887677772879022368760398446496258962205674335631943147304621409662925687920329721832038830599364492290897543699857224908779166861569449445166869679985705674283330519172444812641889779816352135525641293499913570092270329542353252532191583993609755475934093337380145511889165317278487116816476537027762265473212336813261105590203192705947124811055863611764120462165125115041982564171484798145129046134943970342821208826602068629899964292589276081928616949541561527940790258486771163337959313108013019651254808351730109841597498316240225655000448222676953343225558569651710213672367914081891720502357846279172349345312446989126411652507327689204072499991101944473505807253441409873446389690743927101347666937811957905881900713445096489953857398708120431064946588883602738521283338061382832536430221476751379877669943091866035689534253918677514021818413340942607584114027188774372317033270052888984521770187881548301074996964198278813040596863832771946091626182069600265393023556686165372310180984630183906428843674710257615581172401241400536133413671541379293104592003857683858134744818547837358467812269340916932807735003386351745372233931536105423934632929507007776565934048744133556244658536561179002805869965055159539816275246830710168755641805744607714800975176129365772720872478911791710980533168582594095426685500336161042318629393971741426290729239967007464176560285887164726730061611626964463747310331974530258103992778725565942288941218533219292325429395625248646921843176337562347613922295606097542360876199754989288202788702216007057498355775231481839191839092496932133003130547459406746547910170725297025069504192736195014136537193721152834404143911120504837511077578547415331994286175195801397132320556862546603922021498015365347129755134888028752493723351828337321288917072732306942505328359428988163546549591754806698079381399631822870037247415084345921954608256908630804053618186904882666397102373331359920795603724515202430302630630601509228386568638536713544084234934314861134461469097312801042356732756162304709080296679092220980254086308208527166424573898846291244712349303670825367590649945612867025736944458945682118937899032417389879312488201452555135276124436671797024222750187886675311323429468321720616893489959648557361224371200982126344966066649749410813630513574196963031422887422833775064299096440359383962729468122814584871005025086562340418901114297936444914673387789794845119157540779071535340168214924782609888664233743163967430506283179973827340788745670674746566045019472517400452590432805594021588309906392651848942428308182283537745721650438045254847378804559542798070945095186879176810621138794560912758553748953679358647334527424775151715074293704142720740478897162310554685385883185820755859860090333074870370290750753072244890131385231434028796485154401022243643117943163646154345034129529435863020587825402093583656931031169764810045095464182270687889792652344728253104809426591168851179844995188476317735568870096097711755983386016732768618309894455298832951983815061650313587228379775397723769291899718016928364616742006504081962861056309751188659492189695563352569144057283399074042441173385586555987701996854919495648302997717094408191372700245001604927420636654208151306177717285320161187466031948256852009032926193584932019813141124751993183004734310303568521853333124559027696710109457433929800538720967773392593137483992378272020064442191140994346555757545147042341478299620050947043420928578322128753899829588626572639676367316256391931956448861951037024211947050586243944268239119940405064391649423684962611849982341022288618618274881475066457915457215045601573268748214625588042779755789439537103644522896413337736627137912510732783729816981504233002358795216120165996675538638939272550324234941267883852421035222268290452485809950038650932367806178891152787735184912876823491421505399318731611188029569468237999160431916582756133094349824063244244761411578983154748533892472581971721257664609591159924582232821252342106609341288504739530650779128048408741075677585108606749988478493272045837879024945100377651899304889960119438786869899638232407343857835353298925896874291719317223771135669636771219735701069141438743033998467007930032161902416711847930092504727547334007140520916573063577172232688318030986120453139695456311632000381799000596636592070068587435775269523623224908268666813484405709226112525343961960856087693875402131550612028546220883786342922026413373051970502257860336381581145448829369870687825749505758296487246868468036692386114147110982050037425961188503773609086769238090235242829751864858153793310945326866724808527800821321596987991725964069707909476514741046013330466062239226294256081465628323116015075664410301596916127558314717387012044051640923795655065584105324823240809727853751078834062711481575426413939667978853204081767625041432252735267325944862597316613406228847567170800384166246566347669184829427017166789907685888730452822654643591767904240146895675800918478569777438491938193904522803280768323396422956494078010348038784625104144718936404845958249861625823307336598363667271216719914694469342711691360340731275384426916728530527709717739688282947711720537861602083317574798465285165934625128733558835364369844055141088461015703518890967267777125442084751271313809219196693704460259282169426972312985518867010318800694741002063343812225269393229024990040787139765850252566744307617565745749742582561332802798912074322685475181478540431966829273311406487698480950031881849330028055133992102773192446186363434094975707529655581552642084538033739700345513897630678680715971826508986884756061222528393541813946190050494950428022803387596441783187070995856077036411716096821198098516587332028194810278993139955560545060373924583365410086005852297188519845511564602074987103344573903459536202781402065332626024315045529815852308934761138253195406958606311562614932031910189403323982461078192152514290506414634368289729395637837419492047031438270770712883149634206597273755330763382606160730069107290169329766866048887770267659519197890784825671173321693803597078658458242031209056092679379189235529961941162419183781063982653269223817356070166400354388126826745516354801449902244742060842592050069271644457216688033519119891124281987151758019298613870988662123016865222409779822830026257582659775831901016112776564503479855323126675645470283846593973991375164529848962460723193786885645487195079387299721757394342652666409997230737660526903712615275798607039299795437736527323684109867271820201646791298610698743670148086073081908015891092077191458479507123386737697982877994108253157337135595694217549276908503360949587945451580227859019259039484321995483195601248171340035629124142431647869604584659634833674573065066507758091223064351243789355511635524061361264540871316945062332059634618045697321391980146368194889451283265852476971856608890049784021488418205853757782751670770549476838224801242623459855822120412723553863567082984552740320770730741191523565451550588536939830623442160598857797201440093649049540696389823159585725283487293368531528940449582922833715418429664391840417265248178261845516561752445956486004416757970499222922610517759852191226178073550873403438012888797011772704410494219983671890213535097161841800329207909441305514760297245109997498243073876966851914882653738740441943859601442125151124630222093826019157491623275044693472684684589730544729680405095843165273434204484613792358698420035341422814777905501749973361192128951509499451613239279173750015199076450716160664503717058462278296502662644263982050332161846691241543599209351149676752767500706356323413525605766011172723315707705469846531757556931573579368039421794516696136918110728601305051420729775124155198961587720669756099258598300057346652896157919501238400142615114637278025309649378933430514377704541281445605542653147819112955956465453228626976142095336559069644237858018521097998302570357062351585597323565118709858691695416473688830916786673001063416936768372023618383086350595917777521951872535108043751646583316961429145284719050705796552513367817506070847089501333261524243850273763664703262764455628211967620289019969913970774556956161682420933799705273803459392615984268042439878783226342850959975386405230750773610850282335215143412472608877256246433969300056172909197977294930916539791161247505701685143922799095470372262896795617718014808016283340311622979263336074141544805303424033685365282518649768582026587996834758219962762788754632973124842043059817441738589601850870044176474133927737855003065131455305518552641452337279827299752153757642996069582297317539160330632759129334507918593936597253370928315999068939865918610915240182114203148350896013554156980183874825874114535846172410671761507628069353284445237888465531220074243959720653747140748384151418977240147799949303146251079281117197708840352718186967432481775655086370164704696824576568940414322058267737100704153316678257013412280149548733580824314489030867615539592116447853448562897700391792121887088775973471750399908488120825663374982460649116936299443500141108774695161058148333994838755509663347421991620332957366693918027065566386783289097617626528432393982139046370687004653074973289754480961533749244897649868201682655477844134159983518236829809522975611028234130111685896860600784219910467599769361656115726143701070688487417060008724828621840064495648956085014234531108646259314507577922929831536726830323593083289517563489324911037396481619814632163515585168773236614922964103466855423343466306246434102664418063224919667495784334995341540670186755646935172052366876413880881865263616735589961899063344532152228982381497724116762338320796434060247916344477161973552909070308232381406203242471365211517172730681022457398928267425058425926645348044426429011427128768644109517479570710138099097811117314322362974690698248735288102003636347824689646693806565646809295267277654650028144939448113496868739016868179477196268019639206304170898194750316201637111528637635640270229021169106387365325221360900552971252165692309662270454880132853791700311205722105795890011294788469832696025784988581212457352647038819848788404551046910084106315382981790802148616375099810750723604623416237213388867430800272099521736816045263079119940573303313038685449442297387325829372503439553893486246169396169804166530068523315267006578151910218096768962628307772720653176751786641538873221845294120869109509526474282286090128931808755728919145948835279711890413943355968237214064232828590831209340039745634845826334364360404029314851881578754323735059740319385580280851882514555946127491716709358968937217535983216939068545126725337839229340370618181463013891963417347681269411401872655884850904698568743594097924628290333183709126143014857323089350810950821890127981610003913224009486364163952048347099938164898052581350814823213645562007430018142972440841347879444349100893980309998618195711086989697059652570873126407398381281852669438804580248431444184676382001335896097188124118674738226481319284314528996562759349394297011676796719362461212116656553857494038007773764348737396263853323217725132356237490035973559404707381401098845319889161655838758872551385779961849586072780102779089526443548593172912459566850239193982067156947347816638520988222883177087073038637104912843195308894747255721551440139625474717699658078552106529308466386100231507371384011643991486733096210122591406951673099840199282999424660453481967472649744301977310790514019986377230667694129632119694267674925415888810250929324002635910228402484958437508192954126079982362541661048836620102712606464219578766600039215132774518807829992490091188512077824310274568719606423450651143152744837706621236961619583381933147324303993387661521909387072255942691731078527931763104129408564758949662068866742253135592592769413048634010350165126989458336864686425771346938958844658036514350741223026577041279430071891527737866323540870591644174411763952193974554128738256926296934759933398115433162739605063464475155581248393157501940146153597258874227838936416883053919031562756532584449711936837718200231759373701404027479319082672136007850928942199181824114019423510374497342535500721796317848853186323741571716704110909288350656625025252141740642614619262154606524729174731606476067802239880892004840403026845085598586957503133683193379250515606577506212363777609460398845426880216106663009153310316467319340899901004613478406837291435048856292028115833270274948523641053126205001902468787092143386583376135302120675310414930240197005213222839677176309881855148631559004573737444384146873289319329141056907410215228955030584881537604820899967992651230562948564655971579439850226792246824821682558101146435771325445750927434318501628491701890202494992747566620791340646276313997413264665625751550481629897088029905346897332873741924587638255708185540981816527943095432052984994355218756279905206709495510539053552527142222148081733422043499991706416130336023570866801608245354610443840853346834769294956004020062403791495023861249080261224115401332258307458094775470246660187192738378201187441272342462227551747164114597188506926701723781995294536633722344442699262392324818847876062857637009485841994274514825546244494365837243209218038259162898352963742559629944475090148999796548316203943379736853005523764562464464677258420466444089064135214968400919096345056821900411322205776417707568755731093789084420210331712006283415826921622385534409131501625242214755045731372125257460541753807227901131240439307133151004731762205831397831870555510555251119055712890599740109471228909198446963495536916899324175128293625448540950207587074379587692745496738518384461717147687176140857175043618920840502593529246375463635781050926949627836896304810482526027457126027334957578821287699546284536541823688826168423434550707029817918732642261191362691054024815544109735507637336218692981862499964522530612488438518208080772102614797376383251635866198858929911355885311467892269423899028342002289832491026444585551706477506895351429439669536425465915638925228957505313041927261793440990758231765350299209419382790757775072428801970300865789858874604483711614839107182350605585220263198771166527354557915892419325094587917578945683309673308908322364954686247964190366522634929401214080882461222315169746453916206230024538679405043428853022774010429020551075321531483600546405167371177236986722444829184278292541747637442315165116734164153070045983008469382181666049878664756302666527549419408964786886538811855498279256914031503948506404187601733882782302023310655781244271628699684451910121396095036830945377600667945519645696386688907829828947538196715641281602052431743278997151918910681165789591257663201438492426569413551508405987738958356315181612976748005872545830868259129331794310441749978167600016767766701019952443460421893095764459521863475079484324918185145892199031010249066690144682670374402330012363120401983502808864252585076919429802800270881978065298454286299570149345850907265634712236192698759423680343048025528521168685678634755426713431887878651283352573664504604086286414990865474275772687247083054550028754232802179201072467153953619767988706523099815971419727814420611345808777578186854314894772192824307368941655061990790805261956985886010793494799348702803426644759246156976038574772423550850699638917931819279506264682838218025245060798689061953476079983196387488148171188988572141000159598626473057564467111451766992140353968618395160880003689957096620467657185225437073858153766301874065766602798976162383273697901451143038179247987170294673507831067623974705664287241062697335656563114787928166964738288536449944343237752946816043849991043244797188327453011554413128053866532128713253119435007359346810146451229206974745344705366123218460884462399355226659012481202347343672957058972454410983823749471032630726313857323063685847166965479472873518503751977173083597692248004286080988997892715383540043782261824709696530893734457060929750553547489266530573529847514883076501177709117138168265458968782259235900512514242102613600259469792116182830729296786093926300390453655529588780520860757963258980540908099899148713524560173755118506767417282336629401002140856898646787486087014423348333034624475543825494659420415513306287219950591485725217128267885575526251055991218607639373058083383700155072055735912677264716228740199602792387627716639038164603972513253766399035565787396893915276787811154525166267582417031373954436101352130935769215890306956539531383648911058464196760843262169325598171072035266356113311790351387760556650413589983321691170531574234551860345316018120366849755291622853410766790212306741008246712403256340705932803227144820734577053617326955823695241704974696686898181085311702861644592328106558642278782795244923135050507012600193262957913036591777820262628748197381233521461027507614538788057110038433616508033110349288688898161393896568028535938114515544000422521537548551839740411049069947512210205771551319544482907927590928592537803117434302007126756195404902629967323499790839968479684128254886757153744689789302771659843155884462823123391127543061746668475034805343441318023709516098346466988107402488202431331951308238469116051740428943191791061875336431196388584889549988183461177103789423445310924289773328936399910789026069029727761978985929783125277263938454881066923924394513319264310971711288446502035895233034863054003916607484582911435110297751098614420391965689864314213540096432836109859168220315632132429264249315255735069988565403109417735426583435742536555702904855485670922798360886104965827499057940325611153705853415493322333541617844477354515305757881834579637233134962619527503353997788468683547845105685707903259413117990549605352258322049126246951833591450550195392079520680828341272029296408027971086793149191945145301998248656055981513441520267236766217421949842041785990431424187661206674961098296938733232518217955724044075757422213236817782149517355932636014101735813996982096734838583619838456442571164203142180875920087891625928338971559740846577221907227005712123809505982511118230731531611870232832249968332943954861310940656578023373388394350126980442876358061229359342569404017803940897946632575258471430215837450763634662226855438834183455055668786024360120880989041666393136329610398361919616136363394985180152663770158021834604593408462081937852804007694039230213458849870379507785418203369852554800458711324545268722382711475482401836244487602942869814331898955342976455763038452252436221969623691902307102643952257138072326170574228300316835745992969424184279940812019308837878425998506621759102815020437568823948925350401339430141444293325004915675841284785886348968426692768088676118538753371241306635557217796839303002393549623790374639575446074004776948015042210338419531373041471898096708407212481645358367941285255263512495965930463140553265794904830956031931108759840793437292154885527026053306266854748882945484013850369148801844267252919375460604795084481617423831373971730809154554354292609968524096267566845254871392514494805621205742102471048598344502371819898825039555817912371828268321717593790120429634669291985238048654791788494056242783321630295719326219168653359975601725881733368159436692080255967411626507270865620118260036360162248421908269931310745467609779141702732673174308848453204794613688425340156157510635330542231614914976841527640219206704252009153576813822831682259486418248108394582881263232753996006976745863082532512357718700045341269969154937458064041540744907739806195348793312467969985450674057809523398425676612609382278609433015660283911343783150420222325386621082632994039025334654775646368585307136738501761274590528252384811007926426538128764589409925603153145606290310780735288035751460710725800980810584070785312122166873630062518968497124674695702107425383804696734613478884027792637977505862838571366961983679284233829076006304145644149132598852310483834958184552463479481497499154063199414601331869933679292336938766766250729035905924797541702012554283414384859401392242559743731811944851833149311270681387812635855661664217022592700965882259118499996655108750255286810898822271993584411810351957093841715350791049955354734927382661090633178449421995859878862368973848636027381546543011699538129811746847685152023139714192228339755517230444619468632553092835062787389725243096241018636690529167348312038886604476058804311435855148011674012397048145059195636093562207618614909283052627760779557277046258749574220189973106490449970752772453673927719548089353685814465077611469272429473709358468081088564812960329206498659172159061574204795305536479090639293007899386353973703379064841966720903789567654690857252926875510037411750461602676117323421720489466964871719700075639245789912396801956912247946656915150147856619445306776973803613077712789250621734228009605035875540394972778547417397019787503011043029543188706274483800395043754622032976184781514025678199899419287556581338291674519765698889973411953198330437362283568814236755928084035840754875983638444309025323052923461137685750238267430871087504552870475614875679121631943391165620105545061689323474443595971487084241792370303395362199652153844950380455628548375726673236905774623359377042787212125250139777046516912189253629024380452757479001656580797649953174151947292774363931131245093832734332319275083569764414936086460500478671238195689980525643453239961216638863463257016215360624824068103927514530809657544406076710981181685295135115595005055860532046895362222976019057519859415820174984460093314858619666795212890361902432161349850461195802974578658488683844751387087956549101493358407253568290825360702582724749051250858035307624006778041723134313832633254159519235145696053148082912538339011514404844539633281506688974939284443473805126964919581094819386048181549389474126773384928406611090182418913478708050230607125454978980547818690689103408661650985025219629151540131899493076097509533857818097742353077690691722491191142444536580219433064222535547967287605120066235936581154059964190993513897141688463198640127931314186087324503426306620890796330452765133207367254758990327740586115143508696095868961054899853577673624163581211549407768348879571766704489960037763166252088558215179637568164483326405066361691915866533362010953165218323168791675759015010720086723007173259857307625781943741201652715745439824534300493877899665790732258211240346170482188504025952722013534021557829269019298559760950871676356195194142694888970775808665888425233018809748836160985520785158576703404565684672081866309949153659552096181025631770385349664989808344190693354014048127748411269513496299029565977121500101076027298071949322934747002219496460528745616074620837678693474781221543007570977614828733448768877287243434756884557077666751885652188492298108533565938111065725413888003009329016878220535721871266018073116648967895503822943623977354627536095813609125704052475218070655540280062815689764243323829676369606735016073345005751938185522742985660626886648780042492842585664495433121211651147200903245620877564147264399251867386643980034600012246960061150080426227420650173650736563677739537870857413529733261222001473049732061240598883907642565560657128677125159454826791305445147652448479547623784173406690040103594239885607427732762774175635063270739168927413203252996181651416305226779309680499008795133472785757911045438648259175513617560210398246869064654375678987240151446612083005966655161670078557734386750686869959573152505395691006488296892006142006272429729392251807686350141708181839926477265917529405313525357809011661674866503898114859374942682296092992239814945956598494640604264456515400543434717980663208394160446328593666127736074799113550338076510205024925529862211094756730539248820148966234181147554032160685794455671150660004397845355473886618005412478743279536692071045617399918283177092752779707281079841173717047003354401768122451889912560841024223610479316526252418555624686070201192575119393601002755226805269488183906744347404707802937840714346605859770847116096976211598827957714605458711825192157342135033470434127343000415910420327660002272300662596730899753162316960374306923106472222149077887971221708009144298673957082486649569523317059975425329990707667103928361367605040147820374319114195944811387226654427469230999664107244985385855502207634888254179279166267192708023250825060868084860806845953454505248692893900411291664513725641039556767776494563166969375182445033827734254397358895113617065143714889822069056281442144185374045497098754588846241219873261918937593858438627782022774510822811887127536313216153559096842562582986741217536225881690504730635348872450748741411984536764909689928735738761678473299724993921422570224820820728888172106908279991966212703795301383906425860896880098403900035157362332305588417217676234020485441329021584131886010090184636962701086056777893729051539366784135130618687865124953856240810853644622640425580983122165198473479887212395155999639531325228590446771107361453626852453542098477661527521924656468039369837044612084552806365802150915702534629679005337496281357991430169613778326065372819272389755854643865100854364646843129015709484698969726977987994402920811910702815723734860903611109395076323649686504062703123749227924512137497005475912072424067099441019233409340641227087299720730268191289174448735730615268536858535450138438327442260733641530867654155096536570209270931657290206702662583825387476786675963466618070821539013912769694515267013391705070967003400682516142807974940339254420393413884178206058693707494355404225042387234882676400541310030239251357027602098710204352959807220365272150436993571051370995047212630177500608932575228565428597000404128560138382323949544206361918918636553508557777538707115401600864890062366612288785790304513391565990843303639457488581079195135752024803130308459052390505534585192571550174585454461914823315839441014412229235330225857927087814659915028056582987569016042101470105448526951404371898999590177899010043287707615243808631447634338846242244914434086750325674378784691289980785295222863475867322749790471859478744932779399549733542182943246458159661558436346333888709890626127526510043326924022625713946590985673291104060659356815697355233544985403385642774305600651265615241763168952487188483095914211418918820579567466595708472552170234350526464623905950687993382609550664478037397444936833339111137987678458432561803599922361415703728324899969992747367131495820246747698378330670084667822456741642159539903973066797484694414496456775571773580785849829113045750329717200845990015549025509307877787972130066980062839187165844988615963498830860318703196331029874167632551368977484465458584418586221118618161409956717343608078268479191171500207689679711038904823927087316345838678897779913046539241322873380869680567574190820480965242639852730328245878519420544580387157424219453258126768198252380587817942591230329217445631360373973209893913283724428733050944151394671981657707774322250320041521627690121892667826381675266501330210023362776696818972012742859191668599798656005825614961027324645966611335131170847393783341476008079878935261045947702316864506466062550127107774021948737193665259790075778790385140113670241733307996586937516035914562089961351766408202523210954942849790771816489165219430861978145891264993849472579446861649154571374095573357429448986839524498726765013338657972107832461793036004462038981549892448440621940204012314689805453083536449486688386141798627593039938157857985089624055995732339036458887927935479442208513357869175910991446348980927195566778496862489071308325860663052138278398112496582037566667749790465729366620572541838420934450845938111229789815668823156339309981236451524789374748975492756997042334471197930816294178291683543435383590026478229734851758792712861798467211630351377529411606040067560131263058681131375229860659800656728808004991934295490920490710841306303510973745655710866403036497885440958819035219556260286018133459386340341749342294300438608281986747575473895103999047735190715128324099526417286533127354980593383114112637124543058415872460175805321653161066491853594808331533249876882138817905473909194891325450099788276906976029394552058899352193776669247829118140812755725002401158718225211612164795115952117873122196988603234573930813346696336782175078410723536959950655823454859350242905166408410225273390274961484127193341912734795824311947998318379792680866983410697887824508867376631058340847327719992920792084999242032626096474253337996781521083922681225399524509796838823404672131825930017382627581913669622960682438780877590411634284174340252606293109887965749378543592038505875126731074452253190497814769072294995304477651224688498268875824939784157724168529317028057173533181154050101141878365762652895149468135181539782963113932239461554073695279571692073489623341837600081705047677597652825364542314831769114846709423957727732271387569348616511229879488169007216877359523992830105363930365397681376960072756552782710175900116881544647569970663738262541750648598325262714164147005649399670211124934452543776351899395728249038323078142297622484922500118943024964599440932077944758133946140790631064594185476123951760031439926515864169040981843119080158288944249127375358088845012836126467428839957979975715940175237912985952227914544782677169787201982505760873865139025020988922397171877655950497359680300342389911593311880927832463793018838085175606045936060575705116655266660724199730304096745706305941610846649702765439190721953373087247491150810309426550131822437293205929098726098580523990520904973179875986399191765557270205911517831047946338088150922737840265011719170045000299803321575633391431702646367399509369110313016600627476447271257226812172777142926475162674572872760709458619970478426108276773329909446335070532308921669106532970929442833449778883899562307529588687767980566631606908514106630906204452842092420824759875136866619823911188262812082564390486688363218923265444379452081982012340500832377024706391143106570875368455047341787225216563059117957473312798708551656263050221723544978387977367452456515653841759089465528641367494906953238689580615092421553845942617375155635255025805159672263124627066082429754693640207761137731940626058805259236039303392112437171687510883718483511459188895236564444929606311761996605620462690911800155099264073274112800037740116905662347015092354519631072670198008897111685800060805758780410759182278449297258916218631612576667017421998391653847609064614883151329941583333330883774834859096138037558611567768313117047744120213967417147502442218733453421280378356827448200459475204510992818938921569992770574213815577646565016984230414810959376036783822134022045458907837884284648984671997633043955401029351952422939564466553409079675332652166316617710694428858133394016058171772085545937932635016791021522131538357037277015742178801993900008282087798434593015943737018521096113145466892905191001616813833232622060594275994956994531938211305209504706818794945545482628433905091885522691336467706297146648756302916136105580825554631724273974525545468103175930849508000495068815380064876541224483179180008250965318810510391496533712796183650545693517490648428256531742287306078417930311812219368058578511984223405358322950566174511604417947877862428691212518832737135816302778310812177618597357036463792572014343238530022568617612932058671696375101215878715508570169401191171844461110226892149224919802001766705915120236297075827193635814109013417360006582024439557766810693363663886532295135504863291437977056385495329627533084623385403623643730963944285635625944601736214663680104088530679125610586550507791802767584374370549951891566335295784221397339060509047679757627347986422441777425452523672507747835040625119593829507337058660793200098847175127292803897653832098292072608152760237706371474962808315484372369286183931477275764628655675699826152376015025472388244055438588262261968838502683052643718878247826864903087022059552153400824149533650449458596134983263635749637884416233818431844295063056068454766742820223140030558877438926530417694267718323736435116066906504638777696357619471658536927657487404510411158170232885369200078951724753708306009321160969463351660610259087611571474199323260072830324254595021532715061859185254016876747547712791990284251909200724691382366634516644783321631987282952222325025732509424108560177938358919866398365087736898365192215075933970605589735468368190209227539560781476178473262122979037801795800855009825498217112199160909247407043550185351853968931765781662391875180014615831056390352823937458148358920896511819597550124294872999297196541449747568028078147451289411463956927055265526440237005378779773172873146586417823759358633831609533204193779050019599319646909547087952905445205118266024008670110221831936822177814889911380438413562695801856476554726872602069716043133452541450035211217404009050273845475592308846923541087415850446952154732483091004366976013735124132440816470110699166821200320398938495850834383746082714999145243376668673437450372194314335662218737533574804405963123098121724724173181776138751631738790307452973966749377481399835592591710209171856493640313170007893674805595404219919904947997828091101349531114738928652260015865455124962855344228207893068669203849705699464539488759663728471512753151542481132737244281860072491785989312516521480080226935633601981112670705779579670750871942763998083010411616603075079019165591254336588731725260668730430236704819712665229399829344598772354401020307705205155408450978248798185767685451157552820615386177584883725357117682118807668432553032148580245405419352739584286454574440069992335922474572664628463974952630461104134872772851969460292069771398198456187665334699294074059583044876227980572454273154210371222281821978485518210291445947620095689863910481464230439763118093881288650850262599766761241964194389419936234381427282294427002342315847065137617515382148940845721159066511765823384995997746911296245395375516471515725079897781474382784449699437803159620579504224709228863769837946969130820751595190529224419700430025712204840240244554084987181645592389669136340421295263962255341718747648404409351896576828039219076207638704805792271503421636339178337498672185020133321240583610852448840911136678426780129419936543493665970765008296310613756836552705750361847774933725170802344761135600054616740605599409501931640301843692613275854467619759176240022610255645754103056557650004255089906221106886425826850778353337429578162471843644220031722591772769851337634647934111303181450393116314628644116696828768347375015015757994748007039750938741570871007724565195900753317250564269233151894398256153165177621364535830515864875872416133481856115123270501050464409190531069379816191907981829067251520619097085728160953635085562127693928802600268919022399338857390805466566693465041597612036341445412889765486468261166859956837510936066339486276363748411003794152197471044208596217311666596959612868508986309232303446748824691210943385093186295101005644606060851353343877236514147295500261065111341704130061824366256602371397293627879076174836735329117214169240354473434734179482017352849035583834413286582677370783419156617104349116066775096002666725478761122784927007161754255713525084606555700745787180198503009718294146894547108075541406890848119921647226441412518873053468517619334520654044755795627149456027422526649389143258492676107049074993732148261534034430841944382619983412641116910053072002027775026285710169288795143079002828544898848676871565400331496376966662157660481716394550815749630335071592771001017205150861360758813068884579754233976266749071051764580513658371110923888771272441451653428220177517244155300409541055432130628866067015420152748820866949229169015259911093086259715731146479330032268116777504906753732322918934480815004635644762942711559176939164279785037677898256275319955485752762004779482146773091257445176484228909336994997266600573429795581061280444570055099372454965158143087451415915058411044312562928690628584143730461642061802651429873301655592333123281412417831808202269434953698260709330536420040587099405485425647791232847259512053020430608521738046944284464241350776066497724550867772472882187870017681747667783816553303860887680227844107297606920307699986426682198274186391572095461584449874969053617144296593385011875911353345209295364068737824822323210471670559065136271370968483479514560328744498674924557630870641727494787250953418467229882987245964553039506230722886081260996520129352509421652457476179478567480783280271365700640852715673285467862175513819924831173496307382662141538525235043207534608068270344445073000844328017035818974754922715848786399762005665513007253123206979778770115006532134751598458707578488191791396038879500462178037181139682582992902387217455951065648951538041471726913462183889197801807034599362840590710977276547760414195568201045245513055136799599303478566038728141398887452311192270826553635155420085324902002076590994703339675527819007834447751578247864192043812330043730459520692766140621159783261678103046763195611972106936643129746453480349990850021629905129060972510983300541494671232011776580168204166785622355633740399243491496205608008212551570569821038394739018429549441225866253432921222199537366808239303923436331862824483271597212916516688253079917332383568118846988963791494306045360567458703659507671714667488629434833686301261375834711325789754337065051529588752039729340590222802886247716430845347685071290768108485925964453027796781012810903355354452562752855526430970774034366316142025938645168244848301213300078245156837622583836671373661945433370648550704686757382313197430513397569303010439424890858177524133410340878986369453674421526958585913873785216536384098081117771290086808851576936202196132096766901406222617027482585871070054980751183123657529754980256497483274788145687354731183511008749697144315723172486777660143624450356011710060020973227463623593384946331065915015645322521084780010274277657242890953758933180940836473314633019362403159588357712836434854970954395174333707672079226457225181509141712543803359499426017220449852274667758518442171423633351755837927345534200799777007918040747596194342008318115503668725442304450964188484332924878756286702349260473623392158860889402146607048596279944758461416399460358110068674979333567151336199709195791966808405888657445169268161313178049846589484142626688165800557820958619617223674497143105958935801375711794960064288401437528481780320679680196919388922183818231141422900356605444859426651053833468760519958250366638307374510303855958356108396963055927410104012337409454820146121082840103700886414345585390447370218969095781826878718550270362099829622728071970342833738136991417743020018455631405398791811763565392527764398520292361152878243556954655164499227441197327292675660752824635934318312856768185663660125792937412442949494511248709447511953229030828541931829684201390622509234889598422355767486882253971837483571402692553954205765979801470856342477536091171038630028664446949147122437368078657457058615592361457014006228743118106068990594915713308167670541747287482335767260887504575315077241263325742157282292407069089989388058487528687301902282218829565450356761312723740923055631847970188330030700657419867015230530325186246294640342352884410373601632648620335105658286541994973075833144332369335107960194397607751343462100123441736615037862288566620752836778115337754417377814510431172293599276369156888475247666809219767106219440355688701786572114862672300509936489878202294710952726598489959049260058706760611196732297924657936881429915276804826166048932578135375289602646057406800777115324066152133078289103404809275671580078033868223977261776962792080139994975044921614092050553282911302169861526162157708279335974889747881589853237565487325739324271340683403259864927698303734990729566001337582992505014293496755871967999606982815395020723550087816681791572784082606105414015413962859677087593392769313230019044314355205773802300899191602686081092024861913590594890323957764378615058007300199323984415217089581711126243360844428989056336410614993110601819291934766192595506073101184553972063044610375964876621166403016281052237939609173654933414359832480985269485267132399130711622620781037051151911215692128411893914150088637374976350000348451539494074394166716725306254332237097343382744122440599491635527049798329447083540834793192294668615063890936239390434139462535809072121957236959785309522543762067043360873076600730134228890906743203246968632466720973853622813443194173838644401471114836759993286719258625787252832470584094878365591870269295492467207497274525026221437879360517423695631055031173729095152008313223847122571347523313322665564449194734417905187467990326222229668294025549003525566391542137833638090577946707850589158535237557082796934268114392376126471166999818942253974723156285972269113253588499775748628664794932024254272894289944193946951662772706873719869993627458058733335363697015975139214236747249178966023273191525511541794946804804249241280155713419019570649480428853084561552626449235140315946155619970839202546102874370726985353260898293557767396037928051718100355668258766231148390599705867191721864417743205910666650274072870867920713062280552010282211072538976288848449510420704590383797207684760493270246785202938307902692580694855982575834982198050226925295786460518161441695462789085451716719411915527496540983912170023462324001258835800884188919529035444239583744092323579920694882748558577155480184178770125940496924235115823813796481059704930094925555369164801447463376789955644902366848297321045253495028576437521375657336268698011562744791967278009039686818147602120643512821287185417156748811625001856112639639972236872796220475953018891518653177153982129782054776450122744057412310856535623044162460273855367222804626329989222752432057984611601374765095426584775340354151433147622863281695860836233895685119947115993872332885259601144423083589373390048181025372931065789433414989203985990473072122340095374703750629979590982798064080700953413644614235877143791692662161463803707523392126550679329944491674607224986091341489861314110918791163634145965459802206304499609907433703329466058137271291174929571492806656254400649986459557504944096085356977451806312755908948522162970484922975996909777300187051002597170671700350178069336390455519896736160444593952808900618150048990683378843632386538286012568893465031010983513298529398592448861015577820523331497782205797835374807339384611787326455959298231674257883998225211650036354406202317971388961769338358101644405098099398259211799305282111014853898012173307494665895692697415422136578925974144639635725221478553983175555441468922695831131435912032939358626718399649010235343978616826352692293705788421281409960194426151237147792208504539317199219949830907013379482558304226045938068909321463506610414865391403647541581110211030665426361947840943273244180855915829758925973463960042243350307721204680714942761145910804677728404097070425445482589243747915303424725712164355670025335476620488024914991719801070347369931344811008313060468247678048063190518220336820398681040039121810548936805099239166720884147485030533129151629402410479410383285718893015763682354147354844359608869542062285169993139819277481473423610025022006233551770238853165085852729210628122743105957794187982595090118192041537875999679968944214692366336967429529510183787796330715965334734149410351306226965590875560223692159348753005788802104196959251950340135620010429815219677436534136405177994771821776551278090077103189927068551868567613337221908367421843972459260400739714818372010142283377722772456143345779893538026069028472267589931670994435099017918439685303251972507120429932952363496892188888545339954601821169729744345714458914271071228425060222598197685335808829011727742041350261671193667882156295999311862570577180356426476155545081694999968505398890521852226234850872682670595420648261972897341474221368827087294285881994212361951639443098005506919546717169400644563159860816492053878021148257046988239126897960582761289617570362699407721128239541875880577935284505461818125912069054594021420224069674506642271117193593530336595469925886072517445024272451948208586307266004191887060870863247641401981047109796287385558369351161196513108624326695759269971562164493371453900217648695964891517184757569738863841451628393016409521673037432921822849465090649297636054489536939697409926990557917480827233442235277041081114450826729308129683272179764158754340706916028948112837381045634282124679501541263044748355799244589314757824100532805599421978248167872389491525656214303769284633569105769359648686167238819978713986265446472776383795604815687130844124074972544829698652081103289123585490246870504128888657367046561523684059682706821399467447390348941586454174703703608753222864574897378530093325568927074976989128286013471035915820879477225359928989738310987552040987806154920268191303268149135581526922059072164556657097889135699439073429321729053809274338799715313918124626386700108400094231513765967122278570598368518793521401304383643838955535818327122934935493701017676968099333624643537847411760129591745620124977724515852726274744946910952768277501744267521238989160862159472231878766050741708970069970074085844985653434693688281829404275649291130285450181832131067844058225238675311078416717258309974406935246943528180077325928250946263340067741013865488428917751618029825870593163355399550045686153315202988896340236054085419605910547593555334058909941063970890407365283627890614727004786860117110392342521645518286847324531500149842696292375606414882823735702680692084213977984619091689465859635784011716377831965902845459182840770601852442307248179867444486816865178662628840666468990666227902889122964390952847167852227527896828900786679460547299127314243678420754265918251677824817524620137365325551285906354820906756595330056286093649379054487571296256286551171738055528886282297780442652398789407441631635760311548824767228613798271882017610140206399987695160827175510056764194294340841180267665466592004849517950009414818638876009236473070263044864790873103536043888689415545079816734047865736971962496138056879064068827842507036098268636890335573719066522116467926924837866070428171254861313146117695693143617079262660447951739148720194829008575006414274374769284544362829931394515231368686715991201700136175776371919501222470850182494621707362932495869645368175921974992842391139561502004740084709374977706767461098831937244169485015220825484291567480868178091097425826966141650196892375310182734070915985277569853487473388634106985772274281023604103498720877897852995527747758429858054669794824293670335518231041113282394856556116826952710425574582361265876824314385863888428438979253083282562168864171713996681344029735527707457701031894604564427273784563513740433871104225376144597321515022220625421933950613249396833550353580391417971341068136597327919189779069290629672620369889569953421435695846290726356347030842676872303972856993196257789545739716300616882068532913233707512076406736108755521048201125182980973568345208217760983610286633791740013860377325755203908470864914038319525505959319432386179204367620882763675788588471394150076064649870009330959194910258720825284486983979108169491985761271535520782587508470109852022220236007983853098245629873364228066400339287916886697481394314184723134143292108690268654274453275853580182533376206104905103419804502739660050881980453426345169429172320512907744614102260144432504069748201685612925226176204438570692336870094263391964306514790212676572187549665786957357299517158322291959169528407381558372109598155751715906371443611744015515106814885774905027342972110678245000192100892568001660496725763480477954134229797597538884956396865064540913480433480903427268062361636347228376297562922895082423240204919473717158396778382497691204381452183594594242362535632689690911233685415999171153722635108177993012750595797605795888288214801928915426366638016498828565640826993526904666436542340024715594773854975134927571572411232807013789087393088695667746521776369052115920616730985707102249013079743085791300122868109445201886353483538824663534317204176155773262450098189737755349110535750013151466543826264932160764694972876310530084747782479693634732067325824420505640172232181768472140109033118812379253949023445778092707631293681347441426043881661552957297201598705964120550816551878248029519667541128723270828561338721499074813914540689279716362686078398488206440612801707691110725969733014748143757855055082838062452930266422239885768236839571623658614438819282326391039915284203813359732286391547628190788576890454381848203648344637524233024378841418318669567752866103645393360380075253023976330246463360737419270575291267966099666713583307637124481465581603688486688753933501950044767471676962311483638401841505729694964998306495388996475189879519680564571418405044618154961768735308027099183741893444976229196898190429351761368595012673139155278274067080796874732938831047536600622756833490687132157529156407383347680071069220754804817542355820013385131154949332876194983390562648596477978509174911948798187103331171851366558826545597891980454589878955953610814832312653633203521693846064982281061832002676484725633540012344725212914403257747915211314826451466483309470682136918016259817266375369944722787737742148845696504407140050756723154802523814440292709879793308871084746085202600017609370337454774094710507239036090374455537754766077805265226245995825625300547459714923008550818708469375350254769583136653585531108768248690329378395117344028717188530801581190968476277301953717351752965620430706161453419680312643705913641348587354827185010222049997934720987889166040094824963964000392281503380660593584731021553512179364492107721004382263796759957547795935565436185563549080830492303521635102778189674447773487469362164577850532382981468844123169980924416252299006700199374852886232576343070716720731021197714930565715751160171619375926579800495858987423643592318480478392844557028334086929152917944968091237803771325033325217212256430282181727272686419580112459302118588641699328313436017630175036413599451078819308640234834061235199864286700224339650648478838907565142525318097596450148974380212447286116276785990410513144025803911176218350260077018687346816741482716990912580380956762280845904200241858707999081427096851449795320129478666270084193238351375092068863619115183084617851998748900320705014448864691612152883545470489517271941648696203520008500504405471428084146750133161647386188202148877600688634415854961143506991064564162069441816771598017142570053229464629518992336074069613183464462268847735259755111846904816468980237373649700569978818068418532444691343492158601871170964417390012761639457372862915636640240240031579425593823133808387964355884309712267030130783004728784703824827375817828874518728655138582489793133955252947184646471672726781831752917075068409537777966181657840615476143242983871143195426430566101319784469570256055304759067826635160515209001713517822890191767983870328621045327404747467908894107783305856530409719317281403558851630349634949897419522635850655796395273623709019195979612975800375313285221493908172931872751497527040727491717132940982699032654700194814009446434409452143443927771222087313128468959397889212917651908037305107316882850735237314681275920986570769165489087760264984264526283128660118186764848160447464489750228714530176964667257634691231138929756683935679254253704496456652891104637729918096355767600082684039868216931685504991967045085440462274526500772025236015970099536424322389598403352656812474934556109695620284151968356171754673476253714060160955671346345842569139195411304252509659699757915665392489190725303066125056604342319664610663804395194278033216248054705767099170252921231015075155865939439332869003342487016198060995569290951662723232008137083869440722219910380506254579657556099200810629755809430032465435194238863679539707487568470414448893345504829528696313749205181886044951981754569213190418156481940866456736185659793566984320428603718785021450869520653532857137342245246088243093946540689878148353240303469339614229891548812926729496187353439346612299682040906971412455180127410132739029543879274491478298860195455832666030840293282737772679267553834989714221293157775054467272894564815293592339211589493121201274478859038777940694481884762013981046688781736417140060943921761737528752434765326685863953898426997066924548561178945988791674558711138792979873966136207196952692232913706683627976837254569357362958101487466795149331009236886739385416093501698580404508021569404760139642266342332189591698110502256258125581210236451330904990185752612574619664535407796196028089148726444721606131907209084648025011282239391579314600078050504758738878710517711840836341876672330758674937171026567821675378357572896666197833883409962044327417742002152684542781725597187707005490096180660535978051058777484018048453849195493132293101461423185437819547452458335501034203665052654885001016180318788087502499709345985948366280968123007074728780579617295364798885234866342097313780433718507995472840044779418812052231296257122019189302178392437617076309373738448081371609413508502025548232752825314955113439510886138687259720264051954400941662264335319954505654051955604122596756960433149597281746469438841020544441404741729427498219136107474610014405260914802083788663445765346011707293020333682197921353805806101105582904925420270000968595018378103278509073313293019773753252298617443958876954080494448292103766546393476332859206497788859702573809974044574042139408879110583481047680620109693287915293334324227914270742478134740876823231963773705793787146016495325855124652588489460863866948089147958256216518903778188410577108216116571146212023502165082857776968774386953860675589484320347239618309862667523597029065569103358087563266815875214127866570178024894994093952124742165345731262609089523535654957690994552905682896082262276245041732997374156913554371338770828058102626222266142181394725059502435512751906159020676051705650339873934590382901838539265445946383770399408350670334078009531134074763528808986562555580117940189018429654742610275765747901640104566490535472934791696250744251611279493920643965571831485210244111647712980591672018796943181932828635272329970658129355804005316770493201118579594011013430693290962356453112650018751528854474001459361068635697390477332606794921618713511168421320325256739847139796948292275784166975616420232380797987631055080594851081903545592735295764903939800592537084312925125987279868888337122802497447202447523901756591266416035708972873201920836880848623602927569011814155101266015089523131960596327115974287665499185607672224641659470573405447848356159644842389319189751943741586710020403760088809204046062859690838449451808921216977177811160363539196415206654630050495213750181964625169088952951999965188358585005744264928420801275613035023761912145844685097363610831473741182669305782713540373082838085928927895143511705675131008436840182805245252999222793154969419508384644242692636731746479836020275049477682038956129044830173063807059756775694282838374137841402083113773651243196409430842652506638574359902072858202571381972807551147099652613745175754655182805717993247362343148096117370894966675407910240765216148865439288612745441035931622016756181567743797161800381061733619118835511437004144931476958445279544865810371135595561805394495689983769134039150093999125514871683070245609132818207435455432911098628425289266064058146861305387560084719409159699187732474704712611757477317263313516256239452932487918832769674476571473051357799763220481480102437821441820975024605605032501080103665157664733199474626273626675080718982277629495913889975261986084250609899386421597104917429772109445020632491265173712716902140117436316454475747712826716846144819038314795152903579702656972971368597771021609364553411276828447501689061951422126762958718240860681773589696445326566023001044160590826940096529057482254003716715212233157110482405107388857784674502543127505006188565651250560026177189670957592940310340504552709393873770034726347994384383253809793622480734315491987996347330472281035956583548022011344691203703945461547214020437787834858978253716700052972836104501807046653158887096091732810532570969047607675936205586469496049265400217777306152823586207577644160358424522221537389293467171707082578735505053796770704321334432744809125194772578532610162094125765021757973984339754460784469946260941802660054773438662615800477702736676226004641676594954811171110435947456564534427802450053730798162323762989167118871630517510560830449219107673936176947382065758084959543348961177523299707713000969830206283142153818663627002030643956683167958681818999547688172290619440851266419081013449424598111278404613824063138828316515571162413388863612047656728735732347425945828301821964565478602684584558403239353478638745352822039295866084248203238087647195184941139591847535598226241073627090581118015555103695755738668130813788864306694370319053882166141088431358119829839444691781469648519686406729530492528684079529863949847172931639163495455845086303878589231111172039987786401229564687482392959003485477164633428926702379740476300845964976179869690880922641469070939777919671128488041160729435506715026105863607623292881066335127434626853926322830832197167531550241578207154360789484756878630289575363014826182315469706002341670373667545180899998204318627154789772852331010840430621990341875937328585645371289226399730224954162254307025472765762923128099761994513014814209343552734601768553008786602452153919636917177377879363716145622977217343153209195910196230418918969126544536159991572230492463983172416841317421316984555762820069812141755345242987575149017386785193875239283731557016100076240299923860869107064722982275608102764668132134762173210889163307116458918697675505229942172094784145136567817146647332823435436562968500173478831995165112142870222374750862673842762840535833078812623440274894181890361654080188848909817173084466557107484159227305866456904730026320069578215841882220441345834447318967660766903315292823202241781962704013527254441507259412454650984666606223596697535248631477220250043025521633805769362894953660452541327671346766003119293436556980159600620903721103674549502224865914400979257613252729664989730291245645128633628052468221041893555838843021627424309064411213849071692674576219143126678276794580628039579196360860683175545586652900377768234388028924700501047450130244472922676678693119441259262756042559605970551323885763418223226355029812950892697239032424278112270840065194606545691291746645029395983383023073355315704514450693202814118028554005509820839362686227295093181783540241006881320093338564313211273322254100083790090901524487157744285604850958229630431210499541973972508886208933281927798285719990726237740423315679429674209219903106627247504878104827626339813637368589448357229410267845902085902773282450162120045465222607934670248723451842092491182238905341882081449710976727284983082946124378039426734506918846925563853786800123747213594249494754347925417597067773789491586659752365740065791542735627167926901128406940608728774065629645763969769677265131148742575079542582394487825957184902910959650837596056769047101060755050830953337908195205758894831081033693288672477505985723329443748364048657180374771480851385861048428862459860015699335274499587026398745727380598069452063064292445798939989353829666135116779330390070674930992850413224211495533657980338193431166914125705520332147425549755973610998183934400867050619084192717648752880401186885034530147206740713400865489448423556406769276830759235680393924148896282370965485540242521772233938415355677508392903180195616032754492017073742672448836278089134013902033215340470531810409611945593699649164379555243043591538617162177348192180265659230880590234417704638851077237994459032585319076405071020227485229237225096925311754922913537260795671278649346596554609449727994993630788309903312328639817660604361719171372586342097103981611093140534380535733292486880378255918296906144307185076670213357895749012012730661618151813012389566199220940060612647297418634581260690751353158416566268036893614707802587482947298882520030838901184841979400575168363502237918711957576983433531635572845403027928473217378805350660656511864252209545827771224218916047014304938459943466919642600690546115295409591341251321083389345147276678185720731621464104458245952863834045548076318135328242600060449648770849905768903782281812629861669512175474862437475463738528433442511633673451786778816794068088863123576934104694889080202049931777932631742215640735382495397554676563028705236251477607769198046189438043829671936205549307687661918933527548812200484423213009715997142466175452083394796283514889814348293363576791187195232020666481722641658002065813141943563035348206872889494883768874160851581302043906744312835937414787429503265367427884850937289868684278355269595701811798718579059543225599502680954642440552549648583635337915877810381928724607303254018569203039463238397206206481401605379570166120325086538444594953226836280134747546854027873804295043261104599372448532655052479173841352662116349673037541405998970715028026022430827463461099053077658872059405049326653141771846644330546253600419187961419563806484807720306659916647310625779916933046502987417630387666273121354894398608603347916806908318413450796489206921736695736974195578201154713409998714526563450927571131756000474285852732061144511659984111606040723926871424474822973330774818863367870643964041591753272907999038227864955959740551545451271341066686399042860163950029292597507949956166349980417535876105374706904988992719511533934375542782787554144885671222493719073207685883286397085545469868051853870851526943026339115681954761351191610938067316500745799953438068213205718607424248938687821593335544203222163485977828544625678288177280659633954829017025350637186612727710834095129372654863394715243955744367226250638671771464077474908387976767221403240462489953776208391417126981789157921080573667248507502368446921044229587644924725429772203803746816918796365280008853559443783773957619318741443057830571050692552868362526446223190789706872288874543306480277235990406744957877994074316293163435087195774521595226555792346353147134542201657593905156731324502455238749784813525719404176435967621757112935567494902854023192433122090327533403446945597203797174195298505061256701274680997486314429945227972271930890270332803589533878039272262457475246465241144051293202813522030058475492858889587844602297417985545502672292545450085793298129906202079523781154859385910763581242066749212990557036020960770033054028570411186859061918853229533631614178603431005196593855154065585933577031152565689596769327758736322557620842643605967041460471983228470157263242101216147942695479014009923659123511035790190546635334170272925885648235762437407178816524325852441483760707959358183283606240906243315125761970368251969439900323786324598756072300268367968346701309372360661181021281609162953245353691673487263740756431605430882707270263018459637616660019572539061745759212269006202217370551449974964635398720186540422003915105719224185721628957540928444264045914406071807203090671373237657179425311961408534950232604555001751750987356675866803711604655689738889709888401795226521634230428994368330648047900804721822212837281844456544705181423832499012164097442182270152953290796425427520123723686238360748075888410966364018564483542518776036252859973868789746260148280529155121784729513796370418552765968257429974625433569149370776445000713285684054594295684829003873215964567063996122808094172974861490173661355120057890266643430360592753890737438814758306242753763068865019647507813949981977123404859839754594908864361607320962826330898237285888814968996810156587328259287897490356449008076973094017890272684248961208887226056896337341206793982123554611813618988795306352138564265742212108123960199292239961371653300058204666027937121453091242976324155009054247512835766094298933374247421759370567736186286227002442864224577650006010294123281415396964057454159695580993948189321017231404037102196732701752110571209014081005736489915605897067267739996941534567128346071228165359890127060061471053788798754358367307812196726395314601944526511139396291397738185823759927186451777729752127110985560672021021838220610877436253720340099803615805957982506419065538848545131257683688829817674080659727777325496149814426519517816498825091395814167428807384832170487213685657276770265909554525268348126898228419651963013798926845035576455923160794366303759963868372785094997403006268796694174974159432712885987267817430554789307252209055443769072047497360131213330494296980408534182581239540310047569157647538182216390665110049264271491751119230677765899866391726065289695689895481638446491753869369477641013591588780245683551261194777195339446369124288811601442704265758183823026828981464658971620255480141851803448478846920859340958827793531966541523900826716206191814980193159374566587622066648596605110514283005772909808427849586085428018030061512324855160280406095713792768237640044404248310444259842501720749921981031013533865341480681685620898019710789530738872584703839579386732431685719726293971325512886794867095352787323032979528529311697677470319692002672675389068307717638648505333471802107551895523523775743900190059076725409035991698298814559016842802258115187706456867806816132296595450534461080253158855111319811779293926947058340516770067293346096447476092177857989133416854505118857213516181202304631148341841877032382840377831573809909063536397671541544818061147010820160171235620231656071636488286321172803026596785880472666311493424242347181106257391006215212136857154143097715914144191380824342404069455608474222108096093824573483457975101861430849960922649410551431391448108146869363213785149515818436630148704261818131957048008437557524572874940246487400662765957517168782535187897998046942220444460518727032949272483620790272373001229407162660803096722325572099140810470930078371610029582526202823735805881041987857990357737594136679433915935986314312670233857913732760470035871783970539065845444070260803073815220233968204573492702092564465354580857826451214433314267801353123198291358967708945028049859874671248236044817635195385422592236873040435111025159285393346797716615060419553786759911041811594384692340552790554832149192662531850021828876515521669066312749540701451229319745452842416477060744292942411691524045980780553018048983856184616446134536986575199071359669207717842363174450145831552609791655862386691354646461032705217237806802450353862142467332409770975406701115454239499530100259862635296519786080351608712425954925141370755941649468982991339056717628026586402933178852212820286840181961142491783327250504385999443461784558035145407667321996472983434271252133409065850131346829155468109888240902313036041683532402699228338831159475174427637616049560807153736265542347043082331287749140507210696060095407610513670018712325524972354942483675158325104582191208782805781617387290452964750630980549173596158448416189881532520029003143342091448166279711207032035010559065886452983752411476851454992186612958432909588111595461481434601738085922952436754593238302016053376008416907245991664301929174388358148710207926739847477155879374113596819920663368870121537761272934838090273037213952912216542573789944702813309225213803890718010968309824947617685192665335205826810438890775344471595200582168097430257154298329672814663139708750554687230704543870676797941602975433531541620544227803165170069737675934364268607069940557768094919097056938369821149418312784243642336810066288250670513137467986270702339474431171907027663324701849763737961833372983578139343337431930540442345345853298164888157726804907556029268284600517642554013818350894027101657321199231421030913822341355997171448262881845365228924203088947881584029519712399216913808223850375166987236079246187875873449315362479866095075580781463169470006643823764935769954086464410380193450683559086294649801173779215176896477680541208216912127099057465222463080831935208871230415333666626374295577254167613010107379331644812069494499072972799934298291777207598461096331195182274751337907862103955657829025716954293756129312682559351787159982941150000876388469203869282561675732318749468187016251243390581850533875250065052395240520650058231954892498784337400074115335636664525625388799292479782665396925630155501355460163863131649525906685871306901403967571437101191442508462398011466857152553754837052233719926313289320602616787498050262677918267948269288368283894263272055702306950510527217246849456164930917422699304136116273893140395132251404382163551269347600616683527790007688588742950553878992907554640901890160336920427762326008798730211659993812208113908795418357395179830826891540219641942775243925657206414332934330222207745318220430127385881101437855972777927029467621001747633573992012723272605190461073284620935838425965806659813843626883495461206876787432961255896588857716533119928953936073652637436227077438112404940510388366319370075991249502186326497310925459427076929825513974718912834484957834853009056585757856096165766179286779083333358967161661619517870782224581876418217496743136434583311272473942569403919386372777672991646650114536473016509005599428541829947324247259449518870029281668850502011714026915695268729022918782533252901371763536088617707674495619872662807110194012610809688646428231372271399614886114939267521929821428828724306800029431242359689717267780632438729924334465611198954494277482446099025677035554839252504865375227187573437774672869044172735402458951944285186031427371809312880612804142584309471580892980245866380296949364173179323390346434030200476681934647866948814121085611696356306602125250000740264705045685150221109733712710140480419930112948662465362801061831681219026309213171878924187339122607172886124252883589304769563845326783200423056025950239158847298065238934853577597348619296601460687055525982360318683253937710499795066135269073340688388640784155753583306698839870630612642816511767648459584200384381245211638410443949876685831757331546561062102810449769155834005338748553215767130433915998424895160229758040813252753644385085296669205475884554803361017168647446933663674636834355636886204909999177184495819998237339501367769794623053308325477229005798880611188682018610817800413409888156371036688621391885026145999722817902393647882296534472182245058460977672679114655074116023260095421221134786939441040609971737425354181253859364489262714675243364073341689299936220508975567194246552510431171411581669164906551141330913473993363072610814186107655876860089646869961471387247256589944917844592260235983371157809483835698487798673184973547243750367262665905177736498226728224011322733335197781628021205553992250956068905267662322512850817443605689437382831688796784727796574212309421577625742478417710250385132960220897869726639924089843615865683470001221801305447193497885529344748426237725407208308067516258273945030434060168735026043757306286975823825763367385364021371055996800403931332217369175434262399565739034018258630161760878448798539060007815888349611943223982985297302205810803587324982315559773222143780144065519177650363967867077926588652327619133148504136952663162596830477308099441091564944133825457374116363862012854717848738354803690972694764218799118473802168757757934294470541713965022715123247703969657926826278705574803593843256447115067947773298076001919211491293732613378207619520361581223141556709730406259600360172022847503331905767295048214109177758355643231114059508876474071185573533063277017275596162118417995130998007826693576847446078169115404669009577841224369621231658132192901155779977998045948898741885293562822452582570193475387286287750415765309206434092414150957436794247382316994230214828287353060713408845944217590171413691468428782254038942658293023285548628576911502559749181953101390715654349656199840464007564503889235300896674832192498368059663883824546922568874752434017402607205175146905324161071511512248401898777511317450040610003379679756204421019271033353618876844262406183030101598997105421036094067197036615978355492458178858700544966352556579748832108250747449481907976206898785460007828842169915940881578347491118132860505123694513640308750441542478471364770767357512698994629367780479710599034600162622425599528557477139471572377717279296017466521773569632960646946290086706260898491630928951935454816378758776498911507140440539330787645170071532671397462713665269249899051823463042056919559906103674383418834658644933784315077473760277270981480150902847813184246082511978874459509752996806734325368511665449638292005827925403491210707944483637776136027094734584300926365707513171395360842350060697234561301620929430956893160473132171932584887221378283419143402740976774856050653030446307435035044414564708640653080533430239613679046796648036102568938619091305825625215147955933073999470177178070776850164871643314597692050873238976803534577376148422413462278583781413502119103395587275703379974596271059108341056924209520553655608722123489429791775198289496619020178453869318820254943475957383367199711983706109616528448112870485615281117307291182339079484250812242675155012028192530743594168216752852377492044370963076701517158613727726875315815070341304338693549460928859012069248245128236575208245251235875007943709354913137138527249328602661347135558390694145470979787687947342367082541331773220172780350555236692736939503628829749417849870557655219593386553309093486103196081831806847657502861763284114548814238184486873512540777128002818804491835804850389959480504439336295747949718669723266811828100667878366127248280576533840721764419868710841713021660820909324974880558756837796235466511299075493228104587065564582490810647900042092723453347327920589865512651348498657666602978753948128745177121308885658542768819426876275305244087952997255730483386123419857721411228969213124695134293942968889846106615042274965376358987124241069073379207297436261454971892700319890913597156474302758574511621010118464422946912312702908126000818812356242034912455687217379963891585351164137724675734559080669729952498967936463255420143213905081902284437756393859211366064162173007084086834583165062569114931388370761480831763059591593899698716481940429312723441518764954380899335962762537649586157739021916338045285463695171666655205328138222972075287244995761679406786856372266481634260929762477851712738767127903393260268757658471763310784816233837283450927695415404896647400562217329162209209308992382638657499763113292792525558532732929917927419199179035596931254758069643689557122448407486253996219647093061967726362760032209568288758646045804067352593915489880908959626471433648479055705601926240908144356257003690944523852366700471894755919224053614650493564936808057663740824561611237096216458091710665849890971816456485440879815136782616840887580887998686581082426352040795530542904338146213672353734855329174232307136054657062371829701632660729949067838486202574068684101820430771380534593090960297363278122686813386247743616947929681883413222421280754677683370561258010264843956315916857724439201885276556100905767975438081057650729899334550461322118842103343129521774310963071021170486829722666689637399050792641005015057746602095557223175286128126367807871212973099534476610110956716479689931962649204956812261510469414886189680024851663579049206537261882555301207827279186493029992016325777727406853510435812016603125905279316630544078712222067687639619318723811741460803035860978594357527068017884037965219869314950477465227513970129131399318946126930802454105969374761865421306041818870027268041460209468748002411751298745532040732252544942524722447908520180338931425313826719633365286653803927282755439195210631777197244443190667401672295336297841248845348694239190953442012393956761003778501787332123830928791026530651151967645559333995702911948010748101085143835250309214646831480274661499714408477361163043320621389285256795336063349566009122046408118373597962801410037462196644000445800407196521515557383551077677726310037365430857161359895686636104363609599733370948013290908825559474516761611340431119601897895024031107030162749725299666890267588271923794789692924946778389857669605196517427991551388873084366530155728424709101307839766510128498382359861227176277489544991262681649235780400997856306884324373802466484126222112412151052060528252333586604183390862273465072425514979640390253688179316865143349856801924765123013725340065090157978632912136133797542059709939068087728309953166319981901110093536685804574843375040546115446506208242628073872654142611864020020266538186664601029189361642368457478958941517705615595780782344672463843377677712873941387464952180350107818619708142345228404348706217522752619546900188992533293785536979868776245307529449205001243027391561965376157938255146146684434333045835164520095405685253947313468203739224554229131350062001887105936181218107601901506094957598818515104436087081708943901259669043374485486398539790265459199887089774711027001392400710272288132954822337637616032330006220834434110301058007267017635962433728715951799445786920283435582161406868823127260852341327348254993686909474339370565429828405053999845573501679913876483353831093462515215600125144696018997658571760141012237496206829250355797854905393502574511035109306872997565636155413184285113676241417199617575373645125419197213893723766139851976654493075395852014974665635231572965905017941215470799337551185873462031750532716267403168014035236205720498015903435915388179807890563556169894247501973834135522997826762495076242666497972924758663737053693035444430121441951483734205228082917018211482724920359469091587265557081123449109511446830815034415050287706390915440970860220557680818733545437005785851270815021066141531657466542049231293211449367189434087667484815819426147534158669147892459389007354336973429461272714281408404436535773150113822853652270333783100862344956190592724966229376066551713705909475090520862535817848173325249479152387195674444178966451472991364267912608890788887388263713211291164550619775429320324622317709262521979784410152123824057164076163611065625489543373643872373904466892471868879427288583678502452569438656795813357220274857987510961978460683965788324357025957784086315778430959736854377160173721598403902066299509676752555432589412660398921977071576534371034830173652049196387496135303371455839498445148278367309536370355450928298354267150759803888029444116550097556048410683106717613993014593574143187811571334136541408082638029350189733018514287610557331093741185800580163607421850336712870576295203091939379914511892658942476738119405848006748732991152198043813972939112367980468432897483888575316731943760519477696986381986013359076392458004346246475186929018461630106842544024457976614930936887471024689522603455219492028102868238546510113724270041145801103569779720222829816369882528501871387504419406240519079861502166919011206418835849181170240724331487137262244856458947544404250754164338282281233863453409788419652539970271150725636592545268389476100148935658825681879386989316141438772260626024839496647403555593607941969197578130560132951462990144995655218448990842265696016817944580128746978001772695504117015605599839312768946905153597078769764857507668570805773082163106869690774275653294157529075788428232460812517005260662796932941887197315211834108043837319389387960085171209254230335675575864881968255535759033420106359614438217735317490092648945096100554829384243339285293565397935448025663017088273470930762417632024649799366330942575340638459536505547190629903476731816077649508316526720789702721095224279054793913920315303936497239175075204883983963031405938860742485028542740121094530777409477336090024320084074840197221105411080899697729217846336664587627310942715844128443643285490215530546488073523971390535777475080150226920457431796108849201647382272148509592569999416538126765215169814764046932255573848797130205630251697620824036114034319046214858132236255899948895812090800859914339714271011566524740378524849679819933525947798721302106261636067257624147813097750468223236555982943496856197915462990657303616195590628681704526671083744933318048978934592928377993965395837084462192613419547823082375813927850383331188372769009887748694234649697334499532527346705254800559451763949130385998763366034501907085131018428560142876930445077011158506079567573755204467475729312742602888105201647881528367915222229461443304722506620842178093987530275000966629571174508625773761308765873092333252477109055766781462230203269914484197992606224363812437268072295327960466202343253372281772257525342521283116028775724838238043857741283532940391917704676012390761030715093081735807585807290767430563709934752858963828668395959577787678396403812673644954072723789901220111444922709611011429321316159764623283162238663932437411114780224594294349608599409325521548958058904984215185503302060073536096429535701553989053461334609767489782234658508953064285760083592599903761524417647309969060030869672570052564280927715143790546017310867863028624327638118343728604419865933255257805415050676917513879680983434911569466817308392706425876437093237890152688152700021299202555598799621827316991166884680344436523199089835648612475692547400998067187097779545013838979878124752242444778427470920064214464263622808415603112640558815668629119825792563884438916745132027775548057422849107024647773630186539935553227091795536423969811352585232080985348594074729643312556221398093999672048918897059345167516044030609635246568843639299768440487824287852652246821068224991287030997600702812135871290089694051273632165314629559619482323316865461093900412177132740863689369646671353417742340793092350214022302785910109045759649374387300456215280208545392250288702063828571633893824241794058612609260271955999309415690078169116140682558830765493499310358467051371967786340768741767518212941652920922299148381938596760983238234250184517885668459161044779282176421880068242797455441812931015157207456496514468539893296964082295218049726598174182738500153582674489939835832416138442108904314561464581037003991384567669864332160195701592300644849697313020986055458345226812559406794731087194032560671166872482137676815027231400782364693587119543056051635074523146632270123425769490513175388275084863200526977360055787420285141410374014150595842059474849696775837105560216249352178406661068690857897922177236742211052574100655731687088743866908158552405929953875961350046261756411794236332626468244004854970066579796744356226859517898727364674818602704119981390005918230567544904145936143867044331224364131238310412520029818555466914974174356718682770827948305012162347842160481436419615406598697373041178899103971628754640878056796917801717612158872581020067430750224067742037446775497547669657681291951560838799277714991672006212629331646711590045423898544405655467436676202705835712602283817301600594024085178212832501691195475382132288239043201610903816480744850579887395307335287456691416396164172282449960394544421375132174586164576294187764572994564445730629101890509328912134768938684803428878730310097479110945056286724197728605216795616237343132921325138554542680194277115088766146048759308300323799458007396216565952228785596729296021863417465478847557858137949661798898909727961793594391160597889946168269079636281921668947885868685138188744565398661132908334313937881342329704701406512393024870598054732357564279071172189784068863775864148828772683940419004385062682369089391202981479716096917557189052829875983318646237122029658515423272879697287055949909542362007491727049977942315538794363594331256218148707955092042043210255777583163649540375702586459424896277589366482817581824431269642170284023618537916728664231346329147991348946917400395802396225841113262365341414724546241260212058939040237957658407954355129131955098414937118098375343606456995416053592757037672303716545459296977923403800093174031380390531425333184220874207850470815316774293338276173883104270952063830588966665543179369227579497729324112584030542548042640361878971646467447705963724496062682480790702850716178774818434911736806929078277176744633195115741888324849858889863503918878947347176696543166876118036490181577886556519034326388650198385142380744505508023381735677075723354130148412877027095002615716485479081165139152821807667123198328138790558349535552594480144045505293513309697603166099933240900999121253826391790808232152816700894224924116971605426119503108607377139199382602190095686177219574574047647373840897073658976184791839466632139899209056929333205675237676507157529360525065392579404243278310749567107636223375970189846767062002391194710950933401694145087137280282678082244587705605285654171955495487178349013392968512433131979011429325290730775223035729493087882802219174051572549174081653894275605370781363992352486384869436779934511016102616622720847232096465224254124920552084961372904930045404224812206650316134549052773227102061367130229267706482946325377639982050596351074152853897482560479310623633180891652518315046874048523187934057228007040218388931407516604155916211778593627257482604082560793528974123582552333092068573061730992841982576403291750351669681882207212156533402635717311179641642278273317511579419911290411466540395539190749247414852223909599520636658724401153551656833204210189146665334666682248795387342016744275885043798655665302373174929715737433756012695398538340411664771790633193957001968943185450694738003324610633532195993612166348548493685195182439271706369773339617563160997831211099459542094857028854480434904220254384275381224059110264172075263400360006620089009536198271455849563086424842081056970743598427867450585138949894133938927278983561009377586297926414195831150816094790557628291242416352754258302333257048504197134112356285698997459002563203073035882909864818634813452196599188551146829697060442052657990732287860849327075492948143741197094596333086029618685758146564930629583123400062635372400109732927830178523318728596013608564442904710153556330370834282756164587219956473874517711278597905984272732833138279022046848060196148788229838423921668263961529611000646288343617361337765042236667572566840333900790012894089065868484457516779880045213998296291241743260885069410908379481564424210082476898509749789962358777075639048976703627713102583781908965141707695394780302264151014221252388122818407334032121080876683947660325421628468535862950332058366925143797113532682935949244046834542213577828341902492390077841039839145239304532032289343157050519452177443745008675623245010367369392944847133683884688687162761467408216200362492212965414788080376355043019783008800741482041211002551817897709716743122030718439063081540402774245755052024199066154708280979687824560877838914989983208818415759049230715948533486886578035020846980617218016840324363935721835961914163652531482083727652053138516601449912749841568840718774946821494972645447039069281662071057699654067999238328115971446177001110818212759023148118239073178986270561764666985477457768086959482224404252467849406906031527029970899411993125138758048798776871636777657477812891220137506245703174461832463581647737060533629229702930749277806254378063745815650741808702492439316281327167525705968330896435512151467829929202766020113956651395312446044952728373918584887115859122142651669424101500456588379424520026894474995782245594153731538676201570392580547589032367816822016626037453752697620680489426193349983387354492483554146197565822095015194637037478853120226355578523884360344323822513926458473367437745691018260026394202067555947074557931637188091529350467282288956298448133784506752843256324517289225597909535546067607302410003124648802140218684265624994299588688606063862162395626129534600673398668167090454648975382372639952019574712494580779278646147947091167765274508722188330532156093769655473493296317222247050499933853926619335745526728361470326020502603625459175637142446634643454209719287315213781592046961849480203347745025582394288129803344728863838865879281744112082912256323127412898458644053332936570457655381981305924030188499976541336569470543325590035406933138849032057369380411676259811902373424485453271886799235486863489545158355137974834705124389206287446968522168086286088713885605886070710748968437726305307331062301768923536764431490427970166658259777534116699559411297901658493176150332836836034644864486223566520297612299657944023266936162070368762133021625232342185840638553679751416206084387651384065601702415416972135851109008589754350975753456663217921142167971194169822835487214379649774215226621442418346607653561719255316762461723940382990740873981283906596568862485124425880244086661136630294740398906380205830994163005805067120506805776130081807681044185830679637184969074182001362249083551757886548327435795527236403396394066894532690770308487525183790248964104040088891000664448473792610124838022247153359002113402637024772985733689384585491773150423840018321630309624883875565563006334950100111054512565903246696297831203391954153082408151814563182694287853999965759993535000233286613440818531944847866334495917851565272087175503385611680539430337425465920683944044348257642791113565988310151772457034818926974368791117541300490307214372117867734443678616187487281012707303491849997037338604254804247300609241982071674043327466975584246217326892693572696468766764582143117220811830564490188271159999319147234415895818812879294486055475191083181973827953876663233156058949835677296841217513564095610518342529569750233769739547248598158881363300470741433688786688478176820757461881662899802262308330777428911512086074350767072135439657403408252678652485411396427150817557328144392065012132598860863215077225963695933980498075959478458287873304573007618734740834479777889165418352625151046640103287121669987602121899509741175979221753317485351375117444225015180919805611030004651910666753351488584559029033207635600076209369520101340802365879710146992961436136634675689515231426624756970442584057515009021472642184662725820811553238844300938461470570602637305770846893033310361103663449355170598913201233808838510456109639244024276935162030198628363346339230856496254044269011570433656111398152894288648324073215194617493562111750676304011486507739389175322487006429391571493981870742877271570978974641197215865619784478993097161705794930384114033693883767514933810591370442917798118366436714138984360120529585783689237269514346135209112765715499051605052685400832001870375250694072002037636293473313660939255153266567855797255581538353864754630599493974695445886130678372220467510653318209390910364861056025032359493851145784320715536985961622720470396809793802241739086129629750846882451839925752883751201335867174973020756165285907056998211295387805136027296072579782840441846064539443371378173737053617594157067104675739376886345476375724187176291152289268312339856920175526283206332003973985312904258435953723356974162780408099266027534763606980151906481887109270713472824072448597614946527231590133597063677705629414282805260052382657419345273109170601224966222981138525944303395495727723800737513960120262770198111558787404737876511889384566169356740170498871717124501146367539963448255857280626329298086421838069587319822592051228786251338914474369846903335961114834193368698338723131396152145197669502856170657191796156100803433313985581577026715311635867924431860250244539025337711204175617717783233480835741117279765440259800520100282020010758244157220386851037142874598636926172722272295658090133606191912967886550828745022215779349388190902990627589315011348531480336632556488142124552682268264408986646890536124609245377336638152971943160355515098640469405847386306213574426833063650007618083984394227897573501081083324130020341341520759258957222105342023250003300737594613894622372209660486058704721054697170723246134029217459206551752802747576446319650624135627331696536817822736324733224431035840995761546687469665311248236165657630867780788577594127916543726594050134535609733190767368149663795645179008590680649941987030227616599077632678516107610675321762511342358541350324051009378188724303559449073343315645997089523565700548814382689738984956015463037157172824012987535580847124225302303594452637960051585365011967000343275272120000086225335080194722155773956396174070744288020982468209866821637276119724248357925949093390552885713627790462242066427105549487236498187075184090362067125928389227437281150871360392856600275202554572626067580430811592591189215510756442035429714153916208740944628056125208840695150059204718696616102521670363278969702996883547814900341553659818306234052027069860388814841774125404292177525485958573616363200683668591661092071161030285671058426362363232195815870929962377741168430717242865069163294516398552873189956612503042946893338256125302641624745256572253355955535778378193341063044661242803823962013366340040069432376035918875210499129797865749512813627087087601558607506258171276464036375063309188336316515291243327378352234971398822004178038791461385103549887894580446575544885062278707084461210219935787623495316560406205850642067534300597670526106932054752713168358928549691967910123408412306841531831661267559468239104891222372027007097029748195710719844701657288481881761579696244013239938816751599240133270410307886688433455555067668629026099499849443115663932423583508640060521142720956794411902782774678855473021455341745621242372949761614150289323426891911459388264423086905204364146367484025750953542401805169689879627291239902844572588266200122863223587469739723518844139014848357451433425055742365763500890891118902697724760509133132376652508910698735984841495012556035739126441295961608603195633844104215875039531764765517239498078732632141493794158284720258146872138761464094271356490620983251483388312860453589559875718350679384989705054038490273655081804822039321283425863211693296589813800875653520092087836979070934301940116350324280496382398441814475334708790042101199723641593856063151609137893703222521485996292506915643151420207932784511812558665895080792104079453754177013547035259591065397288568170871717108185748152638204008660146100879535927783106502127574589092617241137350338766955102728913753193248943959020848450248391994776429665746188757736704815040072863061531753742875685865968044109706920068272397902383174992181800687288853596746069045184950585173174416008578902343185958802145184128535387738459781397232507321891129250535507875828786527043684975316969477682048183835144671375132446529258577047832395971300470196670572511478693792128302151097983797184565742127605510737568888346719647201801803144588530165946156514427177277299645536216872359093351891397584326300079971498761744862136795251117281617293599582488370381759793995905541778839339561696960110938639994422112242927862564506769589003021276506667330554080862296813908430466198153611857836856879781301943123285975887124006021259081665728634970999246639120709215209262482421729872557038009043040684351941168844359162012815255206786239616682839415910239674437238265937997856215528755379364285647948148334907170314213620539462068303586930510481068379171364007158620944093176157009413387968211907993549025367280934186330053606710100137670503435157874943929335365096639352872279757197889884846339646041697116396959493990142893175687985978856730200529668636944351436846771925517053093925958697646228506092939377969682160425700689467707773772993986053675405687234679654825387496381807634199153764849580587861558742038408531009105183449405882303992058646265003881818183038652950657520270734954080710551471862333452037463686537259516916412596421923384433996717980925160306865590765305882098187203117122152992451556805401960256985357676995452150756808600753175140704122573839346258392149421229394182056821545701266100609610165179335547932757526340554865196836679759255471915573758770814638845453406269934995341958389044864599655739416136024776381307815183637345272324462627708916117169182519943563572247537778688859043197127454922344999425235588590178334681443396166807086564870192263533078784289448505553633946923344072613284977651889794278162818389346404047291960014237924245771814588118345862188877860871712403146699918731092240949961246657059675544531967960254336800837976502439066412258760974282364397608970360624181619812385040806917432195405409843710398426623255342540738109745190031411694550743176700339873417549613348730148131587431146421583661025972034005074873247969118051318480895777255290085445765888749668395828829805921274539495623374927642876393210736276143299111674629728468755207334230040132449427239354323794974568621538359987164005246386462375242223504449935708669177705624949999636275123033456342275618796319911332666115863418503811162054127507581151929696322431996894196485144171766837347095034143205583394881360152560431119283995343558691627614487091249750637484699266615415515534238309357719971025293704426546752478507858282366611245138484356369740039899113853138862008211492586437305851594150279912237697520208823083194689956519248099471241179950058662764906934889386736264495639238000314672596425926867611023067429305418960155365650350625021506932807996156005193431938882541400076712019983857738291210003649128932895525124557220924769713927842737733025509211818192042112497131096404692161478356082262681492924101752172658627180105041871812242147620691387147950124192249620071997998674161228715842165253254211457609233657401955988345702638459984455055281445507190980760464213128829712553254345446529820886970834708998034114900982608044654018693762288595202601161207913373923332034601256784636659714778441377218598148781694252096316484754947337546532527527927236782109457416293789526071534564839339673907813402069879228771803439779853533040536402638143997010736581431021596272088911178443659359161587043456827113038474066964449940503489335005111136707917105521206972289923314209690928940824100350901133241453422857386423256993376051306863090351140017939583265836205884005548252596511715613854859101384223478617840830359617669262974549996167637434697672309639478898572157937184824791252759477434052876763228586894437461322816564669046484055846473680438545398056644642652342609035074617980897562497962028064899810688320233226588708881922772663938904967288776549890015555921852143328693780496112232027293958538662216259330840236937320935488478139323211985128497511043619580668966008609043661226246495716106506809836340156126307450845306386064036664494285155561122163065352376618340442064487010230440173045521322360545753562952105569209659232013724547675551528686588147952595319950511654063331725662090521694532119099585585912645104762936020952159734398601762799586295486286490859259022937892837596141243899773872023215352910018648870507242357728668738893888107207905199315773273561716304451843319530167780320829578078446123583543990361253821947443769446504341159065640223805825168071822668813718533368119821291860685502484236929461683066190743193310203612900187033229391431101387931619671333864117586320974289832895759207456636921449229378451819517855222284268477989940920727961714354073971029773942356379756749821972508398975733890101259624863727637001096325182016956323939528898589755509752619133580860259475435996163195646685360185663802923142245657861721168100402952101005059393752543058357511338308155796194223413968103994460105250073910018242090286278450115076989908605728600572882056001941585277969527652571809821262764619248187253482400050561014222606398628671030124775139479467811067457734632364066765711299754778148598797246417913586634763228936380048485153753028989694178823611501300355630698497214176766230069425551251267907467126331574532811106536836118997393307197426539186636159341383262420006804221480459331497535511122167572838314259970436956713634155258452388931591568135122328350265055735513611376861201493936751380148730162581141093314365029962275091562395602174372022914482366584115577825902896766750200360406621495809122575383353937738534574056317118332735690567962753551519931201703299488391716177524147785531648836577048694983288209568497913046548522666980562339333122409492687921347201920289699490793196631085603765449412651912840720734001491410506129946259084756227742552385702823019521429207953428060947513884640806932616819167720022612295150645857672715138456784748605403737532211722356780938215860225852758627725327749031947382652872450755706326773771669739447231707401629611568061397256286180447120986940818149392271719016620736365408220573996271041406326682675552750600314464319490846958739985281197211567104385772927591989043006934317599156141835198094428337428488329458800190686158940450121019337906407575573857771566178671263107653841377879684528290215878081727875151979306814236606246374825088309615538367775730946245708063442520742815525764836087782023776224184414610051428944367762234894624363921210419875826523083717015108097898542023186193334158215339776047518721240268973256102808531132698072482638864469204902186771242131628047079046090695621382559570766814436051872699821319271850681952783893381235177565482190789003787114792104455427893309154058874555332487101985580254976600642131939177517611167004480410252470599658818681772634062832399560746462147949903810324103167891563209306233578334194806233066390609144623493612714353203531816794115417130644332916419482766341499766168024376486513036152551405116532663079681505354325535026742693173560626590140325303493965676831367410854761281104252912876925572562629705533872368753799282824245954543754778938224679239027095998048064630460468363263639937479065253661078759730450760640478109374311475257440959981233155463744919983978092914988561570837055246575470524770638420227387798647925850834560945837639661770133395870025603344729842368176717730686286821909306890255588012539570742521809735381616562087137432905221242451134993483475459181462314305285265139200980376738777783906522150680793375256443142531169378013947232104799785570914167483979178851254690426624474125150849869920227815228464826918167794460956447004695073811944301731280533347489108536486452079985789666598548183020954841512360184384914588979980073023346629086243397809644982760216059870091676206483499896973480911018129362881423516832319686240705121944791413253366364978843082577729807904403832848396664160141128482123801586887164319862537577859274466570616356439522176705567298170597623992366961610145796033707206134285153405665816341686508596630530168194260453274360963298412335795668850685341747435221634767946251406738178218713425345010337841596811546440543670779281102201522485187855145577544480109659883641187171539021454882914342108168518696153838397066878762688249402892746236146523744679244350605488332967209245960763636524892253832266810302867095387767897001715068604729502352441347908562296539013786270229951833458886680343127081620286512140427207370015588121684701221948009704616840301850623482760953552914294242625585712590479333570788661428657415685002242016821518165446653391343517194553362022428007894038226872269391357462221106393191548404278165672357219979800718403969776639456169554449419762863971137548951399595902892643687977129809945918358122551920298029910298852679923124554687407025266894705873981971349016740210928305164394376729019218423768314806309929564203226363538852614072930662758027138727128074292209193609954981665598713944435779327573452562117643573036786689892073335965255292177278640516322499156329423597229631613252049952237496875775923361869747363315935575003005672559140726627620085963690004337592422324787197962432047274637249165417674314241716025513376962180799775529778409897710800074600922954920423911832041156439115150014595805850144664484974817364943631715426437019100954085387647514112880044526345692888791908412986529247290168824585898442099352756816473075771230530492310866873900712497563729990991228620469102864997719296656294347792368877390876515204791117311515093712031462920228783938002932067509236762655392257891865935609021459715438794719854450022009094156194870786988594239555991000141938554907277135207455239832893072606357921046745290728193257266299061970704071854445966618209290633253929938774852903139894184230710345448974285761522506469278640462408400366399310641789811925613034407202872367080508555888848836026545864249930865871305357399911730165395371292369384751271948060062870555258825097990057626016893225687655623676631806490862449955663182637174126108368283576917501640203395495837082908168430938642700819071830122241865723846956839312576651363487281077546042262891907691293532615595616439717457997437168748587074332906364971814620855136443067786424982118274812469861004234332957685096210578635090073589855056667920911778214525835595743370433756332094842559040762418970071932990508920021840019236808361751935521964705992903712621574346779665326188126646412418425671249734098952556626833217142923085149961130922845611799619914112306536444681576553537132002399892535343206162300268858425157651042447109930357862514142597811903482854079522917178917109315413103422013039068827632169330677374612999932077817955807636424001907124142843103531839602997293503579805145382947885287049296420990748043382224648040128774593793412523829920300772655433786720177154417662955426306246246700758238204768040029942768103250990434312311209111593645134674131456914451665619019689152839090414354231718239836557602241868128760909712550853209870531392998725981545027791377533270363855162478796203578080105445003290742753788498413653793394225876452615724139788690008060859395320034267313946471491396004571818913050620571328968688388435197885091696359607166759155876040405330925048886560838249902771071532120614434389233186938105745648871583004183875457153250814072114819891111061832894014599755949369372473529534034867213040631968739114929684077012827915959269337778275437208782323108974598338429359586704774871438157294163900183713987356064145507142064118408044445743120204386598933454057117774871846187127885913685286152855089501859463973779643060270499197622064303724375415218273971375742547260243611165693150954721250104620612202534946018034139811168909606557091289616540502012339662264531109728728276003319190235635981587746294843071681099436838860122108529788875704507224967439693124255575889291656400929356083809838184631795278587252246609028893960463368201152611380043547686814613754614589436634375201983526767768997182456837121252480985054995217626822094832353608778582349169042765485404777809499314900300818076827119068204869050819172391411670623353614067110648513313343007302074865949974336380350808766786595136633910571486495102893324876666607960621741191128678374623016820999351012663032600182900491466951759566631023102400241754147205619804769699042153036453280473539455789390386047170040198333270940598001504048798494044169372343718529927787299617034683984406590257843825924027266382069666585342366636984837018235746661661452227411044952484366423555511569787075712961857684107473444700872422583452163675491319381248579643540708412925198335262005435453497783064407957148903548951460063656424899042786409665728749958835644943636727542918257251948180757000682134054370976722430466750048296862863597983796696012072682604217607857098620740160555074754671839273554766226001387394286925534212092780720082458886491909633193800442502361407858746265280893432443984300443222561393940058798100262668095398807564236345922190704967487052583426027437487427575706673799685491567481280744956413419094501719266520518767856476968723681036030509625458852487004772963560200388829479405901790487526518037898721150775447375872871773880047248297016310787849070763728054967143088411896046937168887727323480519730777532671818083175726782064071910360220788587032505690830104813275268295830674229598305233221670345869264315959115470603565859424609596126347572137669964383526549044738575789341616350075337457692808748231638876150818386927340318576432303204979511157478208742866288469890154117344506219882954241154000482425690712418036778639589815734280379177477300082895457181549570211988212343522329263028969657439908268811205709772521789602639097886704233075990955771642597075148800825988517769487414473855203745313488451565372430105824969379820149931400136992189107432919070914408400679353978092206808257488809322881058303966220100383775120138664019132120062528336357157512149716356107247963738358540121070019679530090757018127116570195771180468156359860826155240320598139867271183556040708965458560894294046933020887541797364188744835234659431378293598834621376233464728450034948883123326852653503308479087707214662283225950004898683601470747649385714225726650739127237026948522784966278559126565431031081215667189378106152785567393604765566005682523081575344389560498183607176271093369357631465168804323124351747647282978897388681782113969780672188656401793290580910800991627810024992234761026879963457056669775776280317290655925074738470717928082446376175506594809659895568269463590024826600221332926340114383588284789356070714212711823661337377091007754840501744130266306579120154150494650097955425025232869552711080608836107161967353972799526655239916448632591340310923505175879568596332979820666222297011053170514491777879956146750292714918655436968199174603809038596115700727917838780257454994878637319220134619917502937509698199586065757042566451025631359381297943630471555204138397298254165617598876462261371905152487233051165245040098682910580456167821640769316620869537105936860317168997709781499416907182684666030128791260881613632536592631325190729980425032978653445805840024958812348711319319464990702574610569601730565773349975352008666131733029183403592736730581912073552336366710631592619785614710114258717621689750265671966667913357872494655294990298422319280924968364379333429859056324123619000471045424812606041178465101448824790611861032628965106226949402291139271525519125823380060642509445823759971469001550516382356403727713966530880159533603859128562886594836390777448802932083598257219883675411327086507241919440046063252631271424102779870065798065235181906511620949635543813900643512528092815140791204999864965375812847980026958535847411867604187579753503645143032741014025555272942565681325350630929699368908292424395286452157067724563547667221110293673118905735962472780405182964641526574021351122839139312886107028572603400744329879573952104006850658204358170024933027105400400149028791505423292230195054676219027791114669392064932614198264640592608604443415188045050609372169836535173235240387014226875024229936103699902931619531181482023558029686083119413637286738715989233809536338291154109028584395385967765340926315196947333232721513726857890001305464477434172900201670530297848506820728854481270427260603274861459356710083263888550201500933486144871928237926143348618790601804723410315677545138184564225276681999753381074670453362050889662971731618690916180315651446645614618299646971915867740565281457103952642712347814116754592623690975603005211387704295820065666255584688416332966649861444439916570249949332711550109325692047682126365867513104977995538617909468760045074816790535506214947803202177281999398357541815099184012667233165053626517663157607504861571833553496856587228972525761499658459045878118221167471971460098949837729288458832256645374151276929612273401892948723944362001740806241233580659248100942385722229586889027247591480416073870035515574708163117882046902132092564892179944059798628844864088838190740164137395460482971297391918342068260538634977041849795112409266414880530549574176620827563289922174412619605626364565962721258938818837339113278410734860132615368756899240432760721305073229420291411034581341366058971667817607306388305694600139765818130551871645507336523841464649506028642593597495434415691057590701860957498056178769817541919825582325149252243815405790418793160807428991215799935200526895584614120347910769502019763271529408999543403821414020314482241780368508798354403884299981229038255429282240809853733159790901631818708058993254032940657444889363712880249275138369625842754518047353559126915206963102112754922621521429356608339289980914819564690519138047373756349128453898631718617768980478871386673826329208163785280828602667139156582130031872733186060405070374507012526006861327778327601903500751688481278840704398447549618991645379697950165467268630148089636514331397610185347244825326275446590837740703614124844969053852783517972007338724419655182643126540595558732943344867620556874111514604234983617602494637866626141809509048865800265180884301666004473074839614813106604850778874593617136565248871478129120289591682136209382529715990507675771702302571126519550444545276517109232735903438723051051551761894238558929465225672443686559079131491563738738571178586376473633582300572712396473263180380135979374382310925075950100996370579421654991180118453799718420427452537435398934566265142768303381421136238439698443511852158487670847587870358155885126479343369803833143383060966525496086232196703104092746054855228855320753703347127501632806771037450052227171607439911649338426412952448293394153303827763654477662374505830087396257439946114713053777074370715525782616079599098441299211858956934121293616553565580593486917869277937740508579610792183309969015845596573783854744303354805877455088577497501208051940357934258096649812851788142742036709776256786880329973634713533482524770517469392038215314426632789985076567052219699985103088073975882256559227292634007225357786894231297220981076098597038061091336091875546038615506691316508434164297695489455122737578573682181782790402456579114086534320915936581164928334397119211678823032018395628810580248303116407797227567863346370107313397015101156918131926618173660435072656689528963017701613206072713141829119377380011794614091920463094427945509615478252508569919979036881378028492829213705033280246596057954482552277033081620056335637549315863620616845662468350254206552535860380768088059708020782496970201299497134045129374228365976707209405277689912762085451616722453178400996308317054755604226771269220465198225960822394666224473894043150155409702765301590287242408599107348940167115709272185351340881173480574676123067809566849007594107284520970101015891547679098918136252490592080284689537935556116760553429168558568788287243657014558600361452747896700130498438062199510988119993516886616036619536980369815878592287068030959839973197814582158955186348257126413330904125892092768312422469190100275572376502520736891593724751303205062238281958847018903740384386391807121646993185878927844872955504051584990873396720629026205136912567248614349394416183204352073492831728711666322169970793022143469556598244869187048650431928616927307088972248711289034947765910429716426236565957074099165576604206485015317027575061496107347278842545170826283068424736313441725257149656893532012259438785619777042673670777885980887291657115946917954787663886857067345593228419100137563122320691687529555401358915837776862336444453452870387138194763594484609042202174392798808903531569040760899925035862000817509557643949025485714699282421381957746691796612691715222440302161870944530164754635866910808685094402324818591460158890034905752655754724452506867783275677377142122547901088224510066706980996852400771805636352270975297685906291645812976691718330928918692525976554387576077520847995193288725814144123397732951172473945463785832520554002183226885701381039114109553873703968075877740036521766244806380818765778082970600165686384469571669790451385803625591361977231428648347306269988972333333682781346377625873402300950404448651179235395366641280835852974664489636258846785157422635153198458735366757962613177327375464312331528663549271315389815433517485945940068168723275400445125357903122192292963366397077661881943983270049201249035134787404667056007356397500079049693592181964931328550939593751560852495215975083435054137132015607733402561156888912412683255913669586563596555361451057382716501431055660961893734538223475980229900055923956013367861369278000966060474611450814484245691504531755084675627026447576649053758860824667741677190850996647023007528909310031537470860298919715116851183551233966541198489477501041498513642681037364084585851175869602136026496696653588314652757212571597353142682366311307532068911345524777139964624178246349474934961823457518669386608412481622451208445764124327564786062760194771091672704880860040886930666703539351256809466100343512348584584637704579298313217023567890564675143691908958717525391931935097094836801468614790791695877333742016773728876796479369723147636337631878744207141660807838319151059130336889349012668565235684398958724480384340489768249765251794563968887690494028366597989429417110423329508231317153060917334403288168855090841112637110855392652703658224669957416836908326392213571234002979643453033737546994892060506815400061062130623084895216083870310046705846701972492247159307868616613574334718791652506377582301951268540140581700522796767763766864862952867621082194821031858574356681351404835732712372400132822975624114683151561022500966852996905418458557865007833212960807203483291517771055296886008308954487716915405815965656303462184642868931860956927540419616997998021077034199387758843188232457900487886973621316088515346599906380803001757609495934618076037572047424938915904036370677916350004710911681210792271792170646430140384095003971953888078436058015079251770601156636599304946935652290479985362906703841044010473058469684353570416913266457174008923937965382571364967599314751713034486977956104438842889301790499523113619552242263363239263604457721054759358131631923997877308075886968475442479351755424579530415006273287985122995203785474984704315241962911097342221312703385796211207663870025615475473742536122405468600503308204305698999763319558145746348489063188751900986608971725172671222976895606714755155775792291045056635179076118896259556436734838729437691090897626974991518906150870318537467656362117014859397858525518635227671329194955003010586514556620853246111921319894731594459834090625320939667192790509141995330727420464189256628976311427493009383492174383736288042950637771432846869430318291213467445933287058642905878477092617628260362455792014816961786508973332391064173369309041235720350869023556705180171506148270231866497883910342734269462448651354807252508324691405956234072931430438201881733712029865973762447282300597213098623163794969912152226792231818666554943456952102163782632449250027034951151704192540648488253778958514429952229357978975217236962557106419946238488227375986847987928102573657754974275155309881633374250172497302818354774533561522255086016871602216267062660757861298945688140404994342240319891124121985370227156153123253472563939867612942183348354881437189514524023626885628248019749618718950837588906402923478905570084800380922082429528158449390778541533879317442513613586891086948133433092210099371724145211895160427846931675316129570437166669828826975769365330605886092767154600203138260281647046417828036670925319337239638860570710396434498929230279255271336517939675337431111494887619266027403327767011741358785312090983141916020418318270585402049896175255229975944546337886715567652452146737059323061707519193478529675747364465888682857433062394709323562225940073238806458995061284167315212103316781108592272456586579425541280798318103857062291374434542767975367687253613474852216255794222789440801691601065246700573102844825327741933777800380948122190315908100538551392445437840303811476882015435055763702348646512290166888417458816214335471226847921067758374775401772454907385453847423209588233339225604729603295141202291026364061813147053692730397491883350007741985561692373639362029885032786777943255851735514753159856122427788832617061483172689695485670772580641259444008270764489613508964250375212476675395926489420218935498058330115828503013605108283894644054632393722982987693479678303276474274868662396065094972226084861135093010301653347151705735479749847601641233946008256236484138701201017043108518147294793367505044214250652653159049799975389947676979477302937783887669625546661996432653180943491156938455750207759577208467047916821562162791720341337928773492011555310930980940736429834676780953781018588463477072911581092672815466931193689745695048661858169590843797099112611720742543050046284732377702390655216425027203426686413130713948719106874275737272678456970829138606774333773347273695699027548215862574175165987708053276478967726858890434852472759957376492861248926972950434863374106307806537167763026299174841911442923855431871460381496861665243362446927270605810298237135113359559262096655479837521881834505974117493800645688697347427074828156025099768091370354355820737856160930733027372554516360283809181420140591364549008388128789334207578799576886791944270580614067288577569178754592516273531939759252197280480879140364018732147197346196570689141481422925326660893161898743462849693084460769021848536149117604191728540934548604656948268788934431169702127478240963757052338301237877280102908439727137595958507218856187881849738188637756330285711329183698558264780089537363674902230571460138100768381597095130190398345281679020137093337725683991754622447284723837729497260565896890483918203912521973884386933386793107083784080339506959184128518440161861421791415191980228877758177013289158354694575968776170202376323950055286086495410423815852155416558417918233411593329972719271351584876028934660185583639909956637181192568670697793594227053526991596691645157954576873836477234120343335143511592687747460527795397637157184001650983110576240544858832841071257411075463954458935498436165157328285432055900055969760117486470789510313171114503953485680381512261557619416397143862481746792328230886700959704479213113009234600418153170389696329976188220023485210734407913906682221652817535900742642963462186665966056044085548789845061118298713939228365143735294735730962658246901133321458806253115857623766607384530715892365727971963219008102303874500687972643364691359874314001604339371367670583054352450589301500048315334943667981396295670299936499236413560795907733296700770138973557319207896231039527976724960710565262111843470554857929857154386371734488268375870071621166036878056976531913748877888674105616771656666494369220319833235435502941891802759018819258121309475549896132671483706078629726741866528857491744735116585238001507342610542050776863858109855370617345991524333751886734945192671600560092588635989497847728251409641865041878908532816032127740502339072758029490937042667196194077674882466402975553662922699406556217769484800465067080880033631709156014144200444191700309689767458487811312341931334953334681844677833083105586528659068786546275671714705118448057624784057808347138133440606745787367158524996214487802958692753081390813249974080287415075275768015817038503653935178060720964641942168629252672397777278907274786859358567086311499454486816479393041827817749032130756540894000520558102488369114926936697231518170730520192484949818609508068082279861991129042593377870932771722568466113985934234566354991476744885811015344968592083396496353078701990997647520787393273936385622503266565053749474153258935412973836721529789684848059680933768960164052744210043852140767833086881448672410774099415756573772191843547441982452873668358450196862365261925131108095900692386467447938445646277926341577912791035827972737665124268589643647597389832108898161380597946204332068812008357972086308656201967978961645536818840762926345638484999195380071211819182025579298025551008117412261572455744708227303860511992203344888972805252413670768519326492590618702312942121488820092255973811873090149830579755494660468403900163248444738192738628358679858952143846002871532797314244238239231608894043101762959481037697018646982774234832694973491697115999887004074458638639203299440686478586265644586744933545155924606488027399509796343789506847175390348330737323376485129733773954785416203789099922808562296641201466625268693079839660752491711327066064021021710296668058493836829600445066766604905737447332553809969129879211734384837539492559996822726266385834144563207620406616755472004352079327802193143688128252239349754197641989439186849351853491260694640671139349803829777899438905635800218091360377900479208123501518409470503004950813625110284942900570454890163835551918046514461993687000424261896968712491076603232620865204121268328466177735834051100803900919037154276430158871461833121760538425991158143951715016589163886811938705746538205718697270360251548321328798588611628117860874563785044155286984853816154683947397716717909426441161242317833916215870061783434774321089634513208940181328658144079893543231516022678630986196656801269440208372700648834273814994285908433104802941778951437508805016101721506048230114814710203331464546020433339822223792715229961686908936108095503352779182118776274347112245903036850819926882524935768185975206251939726835851489944855805806936896587593653970541210022485550124308849840182344416756802076641797591783248583492593688528351790621368200626654650635403225878427535009468277103308638608050398903678002323809883596713035865944681521972663214809911380021979850299965513898475156740636698031960199893624240464490976005734340412456675607778409919976404921897494626116445848278346882059410552937070938460910259465804747750062733421452462347812001326645415592086801706722558824813989961528478690059512990515641177928338399479619100579803439016801726917344924516310536954614377720281330457988794929030216147855142586990963734393272560930929103184849630715697826144262745801741987933699640707773316906858227652091481876378682812296522315200259422623935332788190552724728633080249221399342230128833501324841859623800701740425246911460321015828608489647365006468311667713919516785698795315846115771791121172815849800596215149811181164324749885975564182924398897685863913001661573698388881677298304791946227394405768595457109605678113881372698731901953009111876785794259836071950485461930424170788520960341293942372039565842294230487549759708043425050510508780340205368766509871609294593655406030632147143185015322970128617081722375782063071236667505774071543430114757278765478385835432755942068073837691590825205822749583838648082275399292136792508166483405189722859190961528840569818844195472395282693046793847803000012429776808035784906067803333958448964703967583958836269059919028558740263673632133133421619086293553328822324051224221357990774488541012342839779693804378533815063051449037530922451837800775488103231761923151482322789400802250253005216145736242377104812571050526622533227260603176755244113941226054096547015169073200998813926794111977887485508103870027221239457198539828450935666972002032369975162365685274476112289628854885179228999445556140938833859202454396862599786464915783710823105280291461598038625430676695399587777011922798696968779412998649158452938061641432414531003502197790783471856204741488478839639381633656661142705442421430205166835509755660237555287464570996408697827849475591366489317673208708910744988169251556913036480755071378203153039271240482623725332828942891530397995337362952838344863767139531286158654840144217958391880582782591999747847214012288579262363372976708387810499452865338246171100706915272829454886875930294346770194447642999331059583027239473677247901603360289504220926741717117715279686131646129491751272176408774135773638786945171128635637578569299178358791633502575184981745909164758214707773174275914355083610483106894396019534009099602060840399504739312244516384276662694240257477903500541177084037005077382485185434001313754434909643951603171350650473217363529992100737016341271836177454841031409512003672236565919173730439639639969126734839483204451664874492130315286078994917970457349690324578306985859462510520641552329748269676702807562336638773402296077825073402269904799311235543439810143205731140713263375770526963793259227415639437821166576731391764649386441054881688844247158945361440137405872327685117098801905319228598720655196850533886373495246642125755558023466391462116224232449594249122774430220380374623328324179232257733680683514947182431370860767788232236269276239783670869744479613403630800340733848960169901105710673098886578347891241914346915650336694136354148352094799903118607106473729283686035641185929287361250813377891172104868745867919901613196928583662846388943396576036527389403514390429128909040881405947000393831881705882008196593197394507881397204655840672883990988139133639831676930272294762157459901253220730061767163364398798880513545523549659453170771278637358536295872266315021454218652913602168609735430436480328672253267547067499549428875217236659554840601271162262678314468124796640784107395232800098270024809063114993393133858866434852591188868863446590325437728656100785469239338304933456653038287277089112663671904803795528181719723004272094810654520655576690221497696450027116322098320598907712184761652582202599727731211628282359974194104800120389460563843411543272198686973998991201941857883765528866750660696071346168492002624717284775616273223375424633580529541441281860676061129198421462265050318434348835173911584166851228419643555694912111254500892573048785113843507343278446042279507518260462900852237392988547988814662097402692966109722503852473261146560203142714264365421165540693674351343198502515655605058433189453760562336144969611389549147026275363969357270580631606368159580178163199447002816279901033750119611361623002362135535908979593496294107096888649131880158091590195267685204061379999235237802846199331085574522158176887441148760533724132786841743964103397369523320904586311526573754874498818268568582253202423396979960503305763935997334430103478179513630603137648821514931036622480890416875465887790790919970700490236214362898881851107857052060225005679273416015112137560719754311598210237107370128709504708317315853476463840436114619557015557168100576610007675955713929238778140247079212703771553839328933275335308952841541008357991055155350217187544612701875273575188390661987868840189464302551986114102031281327694306752440494225626235280559291175821067451950307247244165116223130047007211736553853333360064398218266411866281288615588635072939962988693596862812475112356934520988296705102336811647091475093092322104292134995005454877797142329705348424092155901497177210307167292896818814145771140961985198540297224068050434097295198452856132976263701333773405992540953994702475920197485956315980366553167854148032610003362201502418039412491419629161788873404014219370200633792668981158153836163790402353538984961072515618677070768965931748505472041810914528307676405770523612269619247560242607891477997855226758586895059898599048697348125037322532221606465086887254463294706213152258670241824167777014330346265202210498855059656853974278658985538959437246993697677917612294851742852334372595144246963674053424137549399418212913675164601654168890452834917452994281238680287541675653581183043651449003855115037395193437295960984924513107993431679406084823267829335464141441442066533742007631373805523447803484599870383025498188454774285683734429063066433396279430930465834961306035593296670413718232592193327352520004898890276941717287794573434550029099075794306985999953254346106655830303312534550783319548711842052747078432391031688162591879083980397390722531290023859429711558645556969683912208332712391865175732032429575189553938404554556097315887998725468745871899679909094763548790243874415370353824068561318298626497190875775354705665950610503137324647247288807151221890933420108370695541935821924827779371849469152320172204013700304069117019183190412094091913404104581214461382196958631922169370879570259644347802097051601437053498455272907273770794264931996969217096879334624650835948814902720944330535040690163683794783597918828437140985081445310928795925871971950045305329197125794062609255220406609742101892572613354480858974751221446921373990155039329992478007957822788658243554754378939154866908236835232618288731063166528893959134572967097378124414114619669756570854028142227165184673272785735284213397130239406971412474374157312153292379770953502778352982760872534434287831317166594772566141245234545585239199182482272054472557961243345213438850226452607078780651964307100844614924406767082434975378906743677414662632952059102385348836296332985913922095949833141250496018063554356584516599559669763576766592251539328833929986417703648761943704130769097902044288845299570418407600518508695828663440455812469782635720344539388426156972075781027125398441959350570559466278625371427614143809826287715358178850151392542752444423703710008772702558780809956947030650868757756126428698553989865210788059298414310665981253912531805936491355792000223942689339003659672926226289438669881155924671230922930262065337633785641086207333193135131345169170534895276966448202810796675560046779505390389649468809071996424534091898436512766750278763760276797346997332084219968341413345972024975051413675910319559498011539484495821042852555449313461517976360460988268959831072686421183618389429212425697682514011834415804736891450514602905171440167509133328290686838754659663775531806876009509843537671045456692397600902633744785765089240721028667384507767170465089997282729643266318980428721372582962219782186589562675244187332765299503473251606923005325183042700095434752334098219902496628954858633964424513512741121386157809661256026870049401445517406520772771585640112156221938906604474595636505550263819338186306524576962205805518795513435206300348929845827816749564566064915111469536145817724656152002132546348613867833632393477075008590472848408739172177054779982007170864934650493971798059310561209186541166784382349526977443660758435483753844488432117285671896336060936738404326139561155741749814342535839999779127456218980066344485444595726024191112579699940722398286989637131343062418345184676803917686174040847174980590437908087401025174214780615191271114076641953058390429373011491486902357118931048371727686704150057722518930988039508983714573974219316714369820041218489066655881390871284254172783444972163987501446203435996542382201001658532390229379213649157154780666575602148318204317614110466022203434587412003762776585436905570496968748655289678525244656319727570672196830168587216084283973470956364003657831904943864185255064170849342289627570330114974777429321500774825086013793402630383719379390521446140209840821541115123776621618969711712729173571184310258022400591339603412526381436015290093826381688570176503090977713436234441204359480830980847159341927086437555198071397216731822219692462168481838059282600569504198489508603139043417438715657458312796619018795526403749093655009208686090842721448595098059459460249485355318482562806264325634009353874518700615662271543454772813994069821274501987695381246863757475241901326738877554917130515910400370819794253138251758387218025136576914455100111222635578890339725960321903963917900769429083540611886952174724207383155942039782164982580811595368889355059020670616857182476176390069163538247582147437064821585958303555701766316987262296317091414799213400547861588521096859732902439365257125818844302627606900059926999467697718941249084460497799414210678665256999519653643939361930280075563750294330945251791112097777167812095021762102778208801220859947016019508658917115580702026240927315969816329987802622350834753486808238620941456635439707547159231552168019780973775066285558481279349834461982281515938330042894282129746988840974531749096756458505671032465281474812502834473369854915155782238170078959983310412836229232044855928079452982040036860317665241197710595915224476805031349070282768943139513947874064811410944042142804657188704597286608807823908309494362723372130901478416133475081352952538397316554650393256107903287288005781342753646200501371225871979496439475266474752479791290377431479530514109212771635277186428662779534810137549027584558719675699166894705913816304104428660433904430877983752167260628086813164903669801739040417303459430699729515597901019542760778815546204858568995705132134585732817278465626011024200985204409389279539618347553362899402619631620497181555684532492394851220181547789447363413319708058954733192909911150337656447058853754611037119981295426489138843269301814181803015874450722843021770927761658020982021466308810864350728557587465899537706454344802863206914551761725531297219015448950958938894856297688816732264299624574407075821071212131650259752201983187500846897604474551955383224915384280348065909949894092504910183110549665279973862975661434381719757120111856416437839003026311466043640487529864773682025227575037903165899523477582478010681130895660486830519688689362475337072471606434407736926658500489879852791229207917958352055705769253690985365685837976808202913753490779420556842632506524551947314839345437738461548911913292483245147042457519856448215027563959053941978268720230753972022133060469361786104598774412375359119109519476873065619540870537183514200807843934914691311145812422846446546424718594604663005429549076340368439771808419330121448069976598107940335860703844388666278232519926495338951977078784524955677946125399324678351435612962830218705679606914043422005598192391404912221582704400253818969026359819562827012206743141579144136670966068270259802854092214270216773187405031163968134381532213472940066930037634182343655490635029652605567709667346992187570483966484152629469919872321208542363652637147947953507332183533992900322981894919087303681663487330739726886403178436254138360767493627977341760544592924465747905362923149144810694346045619570436618295410059865414554319358767437901412095578139031560024749292855161228360688823305818539171385445973675797693610923312681475839581988046380790508809503350553039236586838355479928475532827085169264149151554869276084276911475394408079401530384088608039953013745195024178942031786500470038355304479874564722188518627522205996563648368871321352040037085551039987551410271012244281604387312171124537065755974715986116775346775726034647321610064737544825148085975606451499643312682661583287464894434245728287828652315984864412163486316724766407211637103754916374235021110079422616863506186992128455317347088143013181051475447407508792828028021558995289172747562377716453310136151231087190352005058144820271599863867954618930436471273409660266756010028559834847196338564776446862996794243110806097344135313022352095495898798308267520976474350300352234376425805256483690919460254776395364436049497438626673177582888744781243117335835618634998448349833098235836332514335214423802924702645542004193538948609484388760066806698776493443769960965901487045638003700918771628231913606872232439269330732832667568911660829258126081596002031179115023977277005988721222301025983524589798425228139685988388159092470645368342510537131162425179599876285381448542317156489678682808859053777414269028965376567962724493158998925810129329237262230471230914513074938975614755909408511726606686881490343952673077141923802558602695974347879131263978462782581732140392703817778116212187033704011017440755083878065543144196068545811773237343466586022236180918822517875330866349841821167629641709061557818905318004215139008475362182182112130681401401769510877420060613261235255648056536814931802201177611603323717443302887886220281367776793391279566946017638470209777224571593673973667870509916678536759013024756207673801704311202937468233324502775943359683742809226892558284777351286794558769731750723928297524722428510557265395997701849932767222061730116565416188439617893399455887312138672177776807141712241104386224211666059085496629659818943130884584090565338530106739499961311889079694802585399909063055461887936195867732376243933246846247128946484897193410090121719203726522863748435630252233042069604508177896482695145092614369359752781011719240846937760811231591130519849304789580688342675339552714301604640576431579102617387758811098859220691978129104552652641273897646426363701240663856450118957776630846166079087021019162186744629954369671929076095000830777885697829551787330583278639949689526401794748702462216298226465879896242734565143036194057370599226386228278794274854992886676358015002859738912394954959135726452478553638318936731704669215209366315322552399191734404678615197435726655053065997835873327999431479533976056831097307482578272767889814895359312833477352455130251891680612191177196824269815030405030324724951645860372936733602503582743781251730720898327511697481464472400303253615731187042161029709823755184361016684907916355572287560819736693532531886832348585082701998416889898001409645448474397118670172755764764152114589720464434861147281458084322691274974387396544848442392707650342498569921385788210806693535447829703578278213812863028194932498334577712056720611494013668407471891092009789417886156248583125181346939709913675604993854023581351651483821831021146006008649636527335072299993274879546699823468641302774121070584766407647935193041756334783807817514655678506159965533576372324477454205061570469780621983380876609595111723022590079226723077456365773593510593721701470087316686420101163924393529747192717592166325771538254733915749985322246295900672759182263665272566692157511502772468337083894821945423389003336009703551449117442791352774546390910661772947326293893973467096894018049771530426362139177670843179196111998668686861150199782118480701292413242784410163376448397751759314200660344250766237662903825672101082437884967775894935608596243861140640020223743556162650874749113856590916674950398471184217164576999228013265720341271294574938558357723417487506168078672906198710334022393730535296456575974526484623836246542116850684660622378077063568104885069758594210120573271418089052041196825527801925521448282188235713329186898473501809107165658294282224844235368294636667765130618027067057823586048137142498239841681837999846847892290163892862060262730758403989141465231573564907470597299299358195545592868732178787567673225698133619706592397716715208047790728094496083751288594996952301779350886390488982451374282588402863424137677188655404306255684437631859356438580579318609055862697941516011254792456174418530073607645494456872292960131429570741336873211193854190413891873971270187933632188953481282560165703620188803289675958168730707035773067588497333696571755886729579714190638695832700737738730549155576165453442408683025552501248436838919778399871330380017499313192842812680680830758965309326881006166876644488039175067920372241432666109045981556727544067202879864946569288014237797222834451192643780674758797084875044985041667724204830208614264155089223848735909275935719841679679503768939661180570544809921678440078473276759382342434951652017911796761759608722190103025389946026958221161784422689139845200564773163966089144873811484186889613585788271300424157353728710724043646341571183913049267082198224290165120111371478229233814512837865099523844626250330778700469514742846102282945394104054968567298500488577243096099814399793095487693827839389514466169946703849124448323081592089633610253526678320376752645101618295282868550959597618772589944141039620673592486831845791616888591206285832799206708477940416305177596588199691462890546093853442210014120231498213578135549808502407094102013549699238173085266283232716633689640463843368061192584316848427230755035967534363599135025358902528696565182787658880915843196791219930305720002361427880293216335591826088102843153275554160085728176065039881395212402653801159013498162467771391538785084125188557426686836605368627123345786597447220049039759072103978440107143989784863841233924290712803873502536485530491309831813624916616052095194140319369402006163616769941924399045465296205899428530100628205347256514787955509033224782084468581489780086916309023215353896631843388818771976286078006897033638540667437344317716995816131451128843662715093120739392821698387709908685756627431920265921593594825701207253582754553979596071596710740792143413545967262463943400579578354698967855837777247754306158390208702732136647238806576043133376368376690545395926280018593475576280783410767124533617344620796900101120465100799614643406785470291148091203219931234920128569752018183848107010797729979150608570931736726552439733463818386503057351829062791112115364281681872896706683795440999736599957909539786689311388303836664217927033203293890429451238694191823840282033587797026418380251819840823236576810648942928694141300962985792848116227602178659988148636577277368894545059347747530569514248621444331320983670122050614261364959486204392762966659935932914116064772053161016108197374947957926349963041773631280942359368791994667490860379584582899495701482055990308861725365001984471362607982232051328340100853115998965199417389418896746871766248972042758020900322995579552808354107723379913065136466791411098359875964999326831183405996592458128131873731414996095290210382038921499932142276568059900779829109222618694111434115992484616435001720978381272224224190382854970922901695620341712588107537231812361445129544591407974461053804353889616688185474316055960373733802365009030359166802860080275226436055066550959992215729448648619915867155109263135328909112366689386573732895802731949611032612402500903305047013255674355032957305188752951187227977196115021083201963183661069060468811095347643517219369512254477381550256119660745445449870590232677458258728726358054949220927775550684305230124419097171451532621873070978994491412550760372726157236047882449791909627621660224128636436722854441903602926036204320829583838736662445881289134765396743228039437060901598480432117082454387273297475608304002110046424009249528330691673251175626282822348099083103943293613498211254250720564700648103070857708991890379119442107165478004082612062975940216255082205092179819144330261285681944055677403410725418126407540622384055736293915914923391470982698527739224498791047016008770545937750466173558402749093531780989084252818892235535751383924008065104813567583517485534433915592409275602023540262837800748250431198277731190553254372227677749867430735162437562708535157693400125037432008023359756395055787094158858644097639442687820977456148926741673833104671084277144004518925520215766036018904454495855174651841837928570418240673395485993211446418430438871761232615901816947375840859061477008850719787059980445115392968032597721165857356681516959042482213400892695376245549300996789498533630508115735433537451656092714099899502160121126719275030821899484829463370303042896859627028353922629636999548277127779767839331867401043594945938082879532805851641460755330128378545205414388494931566544954402649328962304652672029389187481893639282866506630046595286687230731148087724881294750668839658107626970097564325583878744856437675777796153377733199178113258473612162415635229732670723822541958940367807002133002842332668679060272988771251613718423669591070117110540479800789571935700379972831334783736442475701267560524466320038941432846766549419096711202255742633377647223306512696032407567807418036869501430369926580311086498974011589223089117067395350597149180923279368559601451045782969822201725398335636239136017414840649269423375038216444955457464710296605817777566194875839272913455961992123318549106058269762228382800592941920566080406539404713184647389996644162851382123728374083899992378703740058947455943243726884261612834071679938397293144663794461285908960349628334833361737254655265186761379935952485402383400722591430647074464863585625002901454247560870659347245833918583009781129464282928516772126728011808538748305336953854607771887053477636522403589294841169928271907260783187744042465898555302308080089946672851336922697519695937220130716418392154869357015840883764475065862497179563752838404834511430363610640235628196514149210539507473196784325081835672828542435958162032619422510545368656780248656923802632747416195490861695027046041093553049019058793885221507015881235334310131537894353292873041927648919219715677549348917249998699287487372858597474408477358866304699076242489092951176647551789130297508203165539844909687872542693308448562356169200325707395438294414707828594005956606835832403696272875876946266443600591489341536332972144587553347877381964588692279624620506436285417896250318940956222766845237535179408821658075895484369049963670763614723451904394755091647948998057826112069278832393042743004526201037494023582663729388348214783585571368668570614770720340710962213237686365705324291612610361737667330867234823709252471466970329733923635579365033306330082922873824117017298657735899504664362849843532490604371181750586440639805196667007016604797611543151925038505725367416696214129881967201190020123333993276861480841565095820720613203175406799654350518029984339277618699149944517668908650717978446611981020619893450929263244007382770021446889838024831624130154567458306197194059120965036735782479764516521802838080148625921866196095422255110328364668231086465354593568150773216302917841884693036275316336339156552609611268745361458012229719271785630012514693062411367809407680799149934856372783974189435778406291976910217817395306363346321610299714368109237263351506126182578338134709840063724041225595535887075529404881530758641624643052572830176212431014107096897273239185808071375538567214465627656504973395075782163729373508993284715386237352920910524034274833163019633835386772674820985346765908315225418533249593351187033762454539767634607300214627799600714178726845002466037737951566375363436326662533032419023104704532551054606321153558575509997864767226961719249724643471800459074594299400819007041175197028608512764239474546366124124736950819697290993007231109510973062623637775446934392660089295447958706026604606246870786631828980883388502462366002332693233440818944226610759100608442940627562048742405370585932338046706591952930378958808625702630012555835550518701136138213218716456523489840183575246635745154221747120390526537383811808522857230601514623454247553639484139767385044386282375946006891379437484560500784652313499263525009841711898841750298615702402077663811673188619770466749572039212647618207944736047399553004900978336238460258891786046996066054176049045500781710165866106266212608160256621835820766103887028433024399503624409986681117910902201492079674660923744372338775779482195253910263252689817583399596387062892354199010834143206258863251087808197993329095448901212150344700180267486012374892734098931862710228187897466681084938722631803798341205469258495295943740736220310741215678835193120359934533959580806648697607304762787085364651783517601794879256402276206003045300410740248953098394157915359214505780327822437354944200961684087763817407915277289443801164288507574595334636373206681557416882494042947947341486155524239812807102260272071706612947962143912939250164395294001658437344936715758629425286697379461322151812971081317042697972512662167995955406795372447547965753583597310112200443511005790160694158020197580926821381969302346511173192623149802003621884310316571149516945811214463786166043469076590090452607100216859170651664481857733904970962776758532101805788425532752770940221112224395068240420393317388614852043976353229682325999760369176698037370790602762324249105140366455433555717439706743978068050577215840962152069581528349315095478824888390214348471655805887013432121428702097090082390668313669451843151146442257011041612828879569057081829470988861104727762586574178200179526883705058383590722189083732513872995660992618049628727533075443288246582154055249311489426789441254558627705073100860691212664639252184100868477873687877044734400149564467327236143131563349509562433900791087207362595037692804144609212500994585164992518931940846718026849405382195152825654179380987945567853458611469285557714590002743063056343631769056739554159970809805175094452627498800356490128109287261138274137884565717136088489631936926190573927704893870798897505049172685110982686740959017386262522164123258810928991692407848509436382593755332305057117987377562859595783614808997326062154854571504902622097718089747201491841946484111297382661454102828098987059455943040510211139002418864946743458127436021625913319420752858493941689160508782002278950456906656159452539325258795089403522524508851828746697393914165271540122819083031048128827178390631230415659384238866261205302601181559738444237003720546405948825776981311624820828116329411667436901210003129589629451720184724233941733448366614981681929215876753544694752372441068536427255625434557070529105600289857935830287673968009442438791505924184973285632721797040123635595056905046232363404217954198013217832987798955348214217607399336221402568827371512017809014088033417449261125326374803938653845223714445218913354251937803042280709572690844791587425365397508026534228239061014921278319635812980900592960867583263995910461068191268075707322869095196637929948256836375278008447627309345573652855652329122853430272535342213429042517638982232498058192387172916846976289145623030675120646410637575482617948870073586815705064152524976983893875939469077768218018465982642179968844188730073729013799606561227043251441016139916186659760356766496078081683782537295246445766643555400469647579602485673692215249997565860019657606516700737464914273803424695495208089003686219082721525533807053685505151580035131675816306665252126258538563827191806670124742515458752049398791983040540732399150811931625021149649468795764743155620522621573282519043361029342982025439035455244018182651479902032950453393195390289853154385033793676761167738252527820163358901727481994570001604070686721717472183212140799189293870313172982567734485295959189929850418656896136328855259390774203220196738340785397398062635413317138203273951143087245906552700196461228285777508970687661123349306452094635138747432583355657769207957890203289367808578595666268157533138579614535021427875188402899455204244192212741247782829851189594792129230310786165958183215715847905729706672588900784323598263130051857255146839041128167662638748987965120337782558301793709384532165366040516521624331677277682470195990660553131054045737419320169382726556988890619166720411807183469825527936619460021951897720103750056890236735978268078244458852142424656006666014191926392699627946247215956345587315802814914533944664440653471100467849088354260216387364372711030912735232451392993550152842067029465763991299286369823648364008458232594798356773747578809738236513659694341195099036063120339134366199794828511530455762325190384608709549485830666213479279713630116760458454782203950642432601712168361595829364871654396000192126302737917335297132048758924461958973132486895443038868731810247619837229395647792631377305876452418463270548700935950107422207851070628174487429137447678042529305894726818644820164953595134559787161083982952132644249145084812364692815981876730031626478607610221408207740516166824559645009596234325125248378706709171473108204647487009030643759884331708278187633358257097386000604448117521812711615031533203626599833600767333048938049747015267496284337895279484025219054331307512728694472902053245781546429039698519175604487236589723581268806668976158152480648721040541345822308558011554609722174841150728806321726752330531126892394135777953931304999708082921090164321322670830913077625594885728638287722118986130201014492991277625324760727741956212572174479758958225238216337726928045231779406735730734956002174190834123995896111152911950438761326807080163489212352661866432844765005877307416683569062559865557179587206449878087520139420476426754899262130999015895105346971804069682867672425580992077669089310648606508062957307879667877483160826362891519714112607277081966588308973888775630850619051991005747503756057486885026852351527249787633332696442924967523918692446401082169208942511637778632598730026479830342002027870944821644424731592658149028072450914974378290359338758705531890932904618960990923190762391798299051981119524629362267816818876857802658621957562486159329267134798924150456210527238805735064216975465446706273640019615979762172346675647101327847321644515780311366547851729453077776204213801932261498913767590239268011545591030133016970803257652702353779451203019174401203779356667142967103628169072275022110238655042476767279760208993388251244150830442642686142944484276135763648109771580046366405278831720834047609075210633979344614306670337308766108163349699608935533048187044591844462755168584774357361304501962428837531505031821773828845496428830359817145759998901264007850929510368788694664241541670514970537671333537351689483867876018840101278638108230941362996093042105593832527313298808004206119941470420200603873788186049615800685346833105934069660439844027701830349626315679426250155886659495917111421705399242145674045641499634829920207580194459261687782702527362369439793700224179768004291296833288609520316512251042442630022161142330239183743357760457857852059791284831126604276582539930463698770190601840588512206025475990720827494490468307426112138986284496825166427630433934944342049523994443571776714683648136116449772472246634570642839776083009445906941576004836162688715397207850833251697741297791321903892760093004164841790803836431564605648861103661172156229969533737731521251772340628155309921945378170333419605403531409609101535270089869098728116357188798008116161352367613318120652030334329303223473089190792059043759185010546571977524925982559834055027636040335741820861124907402433580004849176236117164215772139210643059034432841413109051066241596612619665696067301988641577154912933948576953305682313984560028589389063340240450585407324824056994283731261512660813770662227983989821578743111323487487980954800074993696392502800544787679778107403674092475970923338780596945865347709225334974245103278190996916480399249084988644225324786885127059097879021397439122285599208642654317721003347274391655382812363481121710700295269291375440227757146205923217308538261439660935445150841415722618117311480457542492344689901690982370701351587239228571837508670319560500733648947361981415290858141615728175767261205509709512981760842619053817819802524782184418804732322921485920423450674892688403774224619016902191469838410648918789655933011601947176602527752713626380026572045631190466984461696528139687716067291849028204131004143783109279695094884435858513543895366514780814048385193022917284747382750619104675988220830598761330905198878388580634426982844956597275627405934916908897208504704766933803249744978460163257711668417808123353424844598921426770450554685301014529196787981613777297020402810877224913976723256684836211042161584914813557389885390631053082657049525505884899462560689020626976881438678128499569953657433958538449267147190385529443947769262293087916588400650397263081508735868659465985711033803296865659881968540009719862655142866730513559323584225368960114658223911511285632263840427511741955544226347069400020572406564649370659923298673785910243824293763886517631950689587644186625559000769220910663078914030087667323720766011553182770208555681985547061157135414120870126897284050884654793876048492801702558088582072217324096608336336922734091686754946046400981235369483892845532999200700711333594209120172724632991606350184097521070856386401155432941868718334137815470309817323694775591556218705772660793887314299844839077752090396398477627438036100539539971257666311523495876128872955355073572471516773881942716250433103338106001652504960831898517016538907704959759365214745934761736406932301765663549766375941886230225500182024046654167485232445394162948352346729805064251696890653381293708438768370273610968349736068481749343380852227625461109402847085904965188768242481632351768621685430310793007249392243384029395486250998578332524841872483571145526850955401712540112996816350285294391175028257318783808982210937886695569682855265040185991516072839310876336229058834298845742425212775557880692701344091062485753817497515609980635508813563876671015476959226483845153341167866011802276811646656619871845460601908477189165844753267671837998068483287304810014831231982562993254788692708605925944744377785248505613295533898406800062001669445046129977099780174380972089526302381996022649260026547764189165960901657064492389321254221671303583204188560943045538366050033682472981319705867792438478209957664132921975409435876868339714248583236480281751643945528119958198284092743137645145936593571403106335089547041203214821631443697972810298026436010792146011184543193746226824478702918634188906546250814031832237222473676948119105439407757834533865378671159290413883863967666545356796813059189307662713085602098138805617518613444549889022472396826506664773656431036430947284472027260083755875806957691003732027662422219546731756110391546656409237301078997418806647119207918583553055534507060470198392360736801646902927048866747694421195082308269966435938336914942441127791938013691478282564065454818326894987242768248212959262642587517403040741880062608890070161644721939562619176271535741547060655161754909395709272513373313520875218494028826980966256623855468639568656378521770009371773842227092654556770674475945003200360338343104710127900089882715295558342049810503206098692223215274202685290424989538215934967316435776031013326631574700379304680309790559039881837557255459848174245944741448310253152196149641631550229919230248974072185549513800010635402851737949019671404985394300284025084695216144731233283366066407907886663152260360824739902680342431318901144717208622836292946174241804823560991601612493879604007075518402608167618626116235345522145219232846122555484075315496546902792719839138021737326653623468043474456064226690963777802439176514993269850637886314565865492751115489196588957004794605663537324013264031604528484760897613905675108154382832283856004232385816102602827223953904742555849712457049329181005361452129953336257587187876523092997929011587443844182109662172412868150640981252780762090506255836514490816291161520237983693555900309352178344829648505235457090038613864941327971966144273342500922017216885123673516317415892586093737564485929017950855762275656068418379289716364348203096760195896307661558121376628689335388818519716349176185781270370927917589200219681878558036005659350929283975739369320883734049846138144233170369914632211685142416583606535521544206014963836462472427427001647818095009454176347079358149011646033341425578445753325623124988774441367347045954973503697462583171831098290109327486181542624861620622529429117617306285096214710597778503168401403040548975375446691201272123470111024266157430197724297179384669537504974768608378343780683001390438739927253954142245129882144019102392006349128372858822513814383465127888389285037518854628051968794033488645755602049293943829331450780383771129579328063797215998173129557547471718822957984374025742692152883233624799811138417517011376852278368256309218091947755211548564348451188818899753060146892861715560641582808516031105350255532473875924138456599232965593710543735015782931500809702461315793507588869763694375770140050987775816700364645200542818550157911777071092829303810088741984286970631739875278303656230414236007369791267778803369307173254937152259230818541119223950491360987292526986995199934784497662054594725414033887909137894745377952828784380209270831397562923589178703879113146848017436063587075593588709382405606940203231379857960181177798950595352729471208628171104451563744125159240915407124458867463667483333749205630795489801155451331285718106844287097289689614445100998703653332242975823529540522880122641913893712572018390762818429072225241551526913510129247297124835279797329459684981074521536285068033168942235216827769787195008791644225383497797641493078950572789486231696506585507946076855189588174417992520968947343027787795406695331869897309596201490690913360116661687694429555180379405967935623791327376517191547349940592975812743619317931706314300989310884986274974486319403248299099661618282933348105773271398098809121311204377005094610769198727892021119602441566099296504367579051048030618481557535840389377775924268518039784068420368888034954982501664104236717185895133992418085709025592188243918356216506496641800797667659752794077828230867831052011951648108988264005285305151314547898235900795992564712713731463854278902763990625801703581124825016743308636814854421183955765311555223775976583753932380494298014723803832659612196343177957872231813254580788777802329329274147877100972884505112582461641864365778244944768623639608337378994854902042021913494159020698933578466516604698335022474453817366623756581253603235204310524889861121608593014742743945034663434291855449529028380304769971953825015456002416404162853050070639438091762023613427982804139911241977392970231326483723674663602785274591984233402081617488275028792119817642250626802664154723920188009155458519323711945533037757689944202696671212638002217862925765835418092991873669787729955439339553832923129574616620878846960542436403677602116518616283789099615269309728609359118504768564388343296164669984639322791653897317439424727037769482893423417760677972798619833577702913240485669137676422119054611232999295502250159758742099231577418432467268581666969044451299689859298486539940169534035974319129823289659558714561629328248006065242493774553329445956790300482548473426306804446027596593531271245734788919233464733270124398287336997496100299663791181768206612289260013202697282284281261818932192026975626441678558558432146246530263943318997098928848940054581975900034791090882324384984469905383855781195750715139951912548548177857088219382889454405530437356143220831307520592670839252569566829442791398874731804075097524425391679181171011453893414794796925215726784037917827805786725503575542275544872303142553611636652187322066207187677395139308916554442054733055062526319999915044599446524936216791380657454034489856523496141914197895711290422016589271340592230032959835145346549709137664203571661389372403767167553298737785023613573036041913601890649318624691786858698513624635573002693740386898454198621297010542474300909087803329003454295069448858513649395275140722372375376856818697367156600592282855816750539240574213909951724555164653149498390948841401125717136163821632365061646180332786660748352665777843420077228372531832842753999662784476824888841362073485746201059026491618844488738830023875320738233557248527399232801655516118222384574832613548338759203646101152564435822702175035025430801650920830351675912094344931748655600120153556144151567164628996287077167831391693029859107533842838085627462086581019035411850894313311405681160771159624686175656303446509082992114088710867806978089992139240078345985616539073348151818691711936971216417898839468794095583782030328317766273683944920578731453686837732011897593945641081160006993845042692342369083087450923508947066470060014470614166538106839514115740627170570954265233886668677204752352615353997349445630603034611020852234186252395733873623323866558122606679973805170340486048981916106699035045095659278770151059297281400423585669925403552102652463160351073876979873476164780536614105295571760431892322883070347104153736631899656534291488580312095913427447596880540538909978637517524914139248925983082527157688306552384246745375613636472369681810334367333967399719657969721458879767473955869727079108842658500044481521578220568466614365787218254224010985640925551258922908958274457883356449361339526227409581597412205019193089705051886384856183163885602917717371217844026911914379741490408879891073473705651717437114996131541088178973207586604237406943021366122567738045848685332723365751353455877023641156036496042386874810401243433898835331220984858594740929599161520812454139824066795989428457081083384368917740125097273332795946167376001191699673730955514678594327284853792196960325155150022060242448177871363096646564863534887377728739746756147674600876598587931969150672144790268527871211574829328101688509706230149973851914195990680201416858941259773209122859484606644205427617551031464332006995888932566350095441761056917524738894244594759649871803075591100797408791370713745160064433896035748741037643277792809996784575650095450486120557708133725397197335726183682531734879423891482484558804423824462564638406255439903746133835397616215342815502626268343677607789014441704939569064534776177986874595241482915148453721498690078822758509962944123901046713710619271591522496065384346664663464813535061186367619562221202731972921738653302272733854026569128103155723655756476286977657495272916560855694222936339906448329874632670063801058190778345078436962047293390501797229468026224641605517929404313179153598696874221779481796483692490390775091166096753900819532237837559640697528716201086186073321514810710192678201612099497365880299931928884751628258881559006943555218595533667419757310293090961933231726887694218166948283179060521396450005136621277667129407151199604014722418363578600497152055110382359273993381532613251637186926772422274449904217374363749467245129420616131610456311239016942789925529207155081686447466135400310838770285761813912939743958959935771022118745080769371776209600989486422817977383864749263944569098335396457543733837106369549124775458807161888688714295494704173380775149345401128385850857064515799823243502929487730924833416670607642238490616976385978739436066768011429781342069299904191051591984329192189741972376523351637590681643482901492771903688510626343042204704819890429930879987229691631883685904730096658886993557066565404050434047318465049206367014794054421706952164344953861797040311248255554796426963451132009365718204602491362766239771125503163594413399533130622938016765123718607290333271371897649671177883352898488894131554612932336275865425753525141591959057218585803329461096920918405254441133622742018656124665805001368163201858994761588007566171764581964870991425275700579949953841732936670718690837062950378382570790730803772888826415175287442505088878140495929053761591506987944175668536987311910567028955655177649979869266162381436888636228106323379723119090519212116921593804075097820486219496786354902806142535228403478106309021215571720362510573578845834483327206029652561932110254121917234228166495501647212231896282899056188879592779590090732647726848922116358488622715425300067040479896871222802316004197794398771764348669007222692477763973559716439590478016897793722619676497369711313231315945173346240370560834036997707063481710681137665931977384767421919588321672423128164473085139480970474542509363122300608031269256471155832014375105991921540635311295560356625328139385360831751885823164924470373965890333562878929011755599336416272799259636508632111488352114416527745037559185450929887916226254532849058459467492709415680538849479467076435819425605863483443283057156308182141200925640733092695558323308955734301165225532173910223512740530064646435707933878392846856531808812442988448426762315471966479245187073280006183313386471650383534193939420833894528850352764483357529869827376302650776511477948353443971586901471738690764471733006279021313347345087502761908721167601127351278535718790587030099486356531022593663183200540125823583785034427020917621201191221756537234212919024332545696159013372647827295079199749084638424887255509678665981408295889664090266693324051384549772000204345137818636794227838088786378832928724443528828469007143560516091985890551558918136425704806289640298606056437516132241230113690996376669117337515011698234872223654501418913031085181796839070416646099026312655740019532598118870210283146073875308211918824840802749571276582210790631432753251006476584771413672539880780921538291379464610217789397862244104043759387802146661051038868192303910825013785695513231176557850355376310403448593085648896542921304069477369299628638038491819047989363645946079714759087321605413800471676937788607735227318110724403860515796375886110511865791219660630541734317062737062338983019981608518645421613394940912469246806127048055630571809263172319108982146616216728966219529482869877233193308470165930282358054946464801781714008532381888196061805508659467839083189361213899857632198525362977199534099928601316602435504217107354167697100563385880123505499820818816684228426953033237063501702285480472285067960586810072877459454757556308643994536612364747506821907246638448400601429765365689344416249862926186781272131146924369926089742327783603568985380742287355773371981782333719909962451527093788097592339207588843152000970871392404175248981227595403530680975053652770883733818146815135447016565618013292159716051478164699953962395873368475276122736901550996779368467122277249344084464757616592901170343548805333097016454280567425746889169665697913822963155511605654154316843649694547543037981161873067194944693859699200703098707816062563965888135661262860520865081236646036891327443953079935723454454847899583580934137333138698990327135701370800760879987733568890496208291553306347364078580920290068295672600572970777930298176076743771919740647352343523664535645596092632731888762254019924724249099273444446830902473920903387693456771645078308357945936428629457144530519845460223978488073795053156327728265871674390335050257323049082254673626636803368916719128745239053895726293989040746833302768817295634282870222546466193432014382571446509640590904580177933815637655848085849146998788346507039632684091173114631697714840551732219774179143996084161495841257607271269846439573451121159063106067829274456758854847103560871251443792830106976986485979801967462170765187370358493804673157221910802028070370465511546062410740667541844336970195400321401128833648141297661693877562573344426027691065807133390470691418103882158235262403208154715731992545459283512171441335661017916089458870833207656329068680089258096948524070700437392777555259378712188821012778221954875209635389593905100465267901550473379789858269787522526211525540422425917076273492619536150825854047793561721737922783780479117801710042011178214446249608738535778434613024693609688193282677305837976072984873936795676650356881897584905437862316764255318541853607343318290006291775211307799137211463153864016548322244662729543873882658955494136636954399875212832082700847325454378203492513588847119308134203705856000129400376093837989566795739886602369840106864148731345082998826438099354536360548071164377845614132391510203956543451720824908262578710614534685547700277795396831012204829163414837026732847939799342921575968114345758174717732458239164605047794939015711218633887992418585188320057595810681456293194718643492489070382611191117261969979997187890541036656229523377913921606809368199599461752166262431699734947817867984267833132812961434623427795812962922904222606365105257149257996239195732016935115979709994411430126262190465207103745670566582088651967511056845878834559419850339825803687547534951178084884376717477075717700845553182457962176731296129169348547443012732264214671848701557196190011529807042907026151724429863027062089389367556899343927234890465929967573894787550912824625706457091357857000001914344696776722966388973513209822459519663137791621474076115361888084598596538074448141811873933266188878147164657637504784446756494975771762371490452028243284209073302246283461548482049289558604575810541988371829153806302534119417047033707976944772785606797285298628367748160410253874561759666325712032026797630893441397607552398251180578563276889870968601619599009559786021180864172537421441927119999582273269716735814458581220803584620147065179085380592422405302086426021086085741123494118556620076769131788292166805751595321883321745717215939050537124246492502874342714853456402051603311136697001113793308139359865365322419995618418006591705774044259484539411667078235985094401819896345341868581917234129500475720771636346236691761120197234132026991492484401392353084554209997546383585774151087163317672664325255180954205115560265744221501939394036051750341986621152862810965808622897886141830925534473881911529389702809996424701639716786758285911469243647331241293419507031423548352469758036609206711458209815629664750309938818243175406180143220655420300198367875045802922738372516265120323969114055856479967033340278963454315273401820888903915751603333165642985738343893656620091107595659915567932294283365931795637519677077002580146710177517721750069942020878765338175663985140347721685835270680793457565366705850272399499868181047662438072056037123487438408729306850526983803032987340429946440468809121871148318034769691188448487414887019234003144572907438074820443994915606813785051620329761619801532065831898266317723157934627086154439200719016771714647293080108326872143615832616811446589892634107135244658133929729591892987135259028281506881092257950436698033533478738595972061997110047762859756510509984383211622827023461721601582491185703025547052274186254739517970885638585997799921214966510803487810759526482060021645893634246411745161101427327760551124518117040926397321366647220459319748278958921127445427602906876011774275542607803849585095398586314427296675714238927696280919842416373872600095843069262236732771597016154223013658531442599316157205272034230110468725437253790913579360987066350469801699203717942379699463044885163583425311842180996146390402943826486459671864507349402634115470748128894193779028570590981860006633559257464140935858493236797183086948193600802921543652055415213979385864124661849367651553086497279335082980494955127649399437297325268844395956996545272380213045711369494318217963363536818131026706359158198913272538067182902376893768416380187397121796758189042595641300158613508735522399514287290426764190553147441943291898727459520121880842839290806441002423456986462865282737139891453525655019485580347055108629327779080757384296598924047704089687619583287103951806466952792382508870512828250833657287892026429477499024799774417923118604306830656121403016810971145913414925707755453338642471340305022722229069399173216416351929710629394166716537955919037108893281232426966387742836885461535181592782215209834755431308043906200374724746291538220195739698631949948765762742933849014472310751522717482616989832763389051303945533955227939256793734896212090059785332719006497748053880722226739169850580559736263684973858996439029579962317605603460322881879017084803086751541353665212523401433298785390973254898616076919080785471100644766045166493512822175525177023266357153208207129062045646365322552153433333642945599365230312077547324301879085191165269265068657360174085493945532782731214372430054893952306817793959869803773467927670969748596343544833411158145686380420005153645381225555730203336043622974563624693593244567569818535464117652651678127307171835152879167473010617694875925297281063543716126325394607820204472401765948858549985015566135292500291196817828908351512041885445807185794385181787940522079950567588719378815655101844792463384749086717333622795852407689745598262719508613477193726963607574688830760675867719375544712457466601131438489253150375230986994056571644661337699589260122015396008335783512394017536220229861216004239249921317812045128855509298260096873606461297423925219887600771980767375698202864387804041221117532912254686125314230416516342735172428810341710841561719921110556121362343221491773486864396726030803921331575064859712193014927316196117526271513183652047602179975219799124148751725058664149393917774806425447037530124996115383007215941753995012432574801996257906544360770224890779152853865318253971384647128158234541726730206871736401392640133045913376317437190626409308610130768381781002317127173129141253046564839170252354585144555093721956962320673219855566343347287271660607447315919443196446415517836065608773963697997304086523763995393498272359924689191409596485335323336342103910647804196806944039533648750837211406730600894826035117897127299119450555876390223575243133712546274135871012526186804965775531569749740583350139658062261173964900683531965657941398375409313767642832899332586787254507248268380586694860603489231928575734876773697395900118482329595589634437138462378085147775669935680859604867642564329793436251995002351064844799870680755045370265736431207076947307413033955326613893727468736942602640941416309254316122263725698763340284671554299635464424772717727272029519887237129515604346546306537219970998704294276318491066225077076646563548972582920129476627607840210741164583626632838097382714444938548966919748728211529086969227111246827287146768976237124622018796650118692859619573916907313584564053083071085830224730051082975092159796797181853509591762331339548730625081204438354140579203248844102387729009919316104805567020156963470081009221874069901168374584241928266415128553790272092337868481460958737906635233202367045069601431901013637892846699987299396928958365696330120861430344547980003313547568457606209814964182128624960017238805938583018984771882162103569200539796474509592347154297264953356355791431900232080738130377958418389509338145771241817924985337106679256127935965596844616041251394379923580883808518529539886840364168972268287722392823866081767038785612786963697959507618381871699617246632046263694051288520769739470594010609743920654121286129364786750993593822738222669434955524236458131271853185035019096173632253196131501342053313637298070718040145131414620838918107193111947096057918414022694877510883760338315422203023266882730074227706778171356446654242493102060015331433494170711381056823696168520949456874595399135867271158132098805759557415836231206443844867961105162003629711495999907534678507484482119016299336240606603474972598791977777002407328357029656292502363182554471242695656579743655016981013086102596738151109289282151589500852582877958857998784435243133625247496820266276092022128076005793240188341739690130358369737134175968023414856879620623245685347297683835414585478190602794093226540650592841869093768614255185195136731551921656154575296717227154175990456695038271059927344262515143485362470629935765104622359821441288018279727017765107150899076208414796349732135464770580035722734736221457491592682154925658594317020368477538203911779119300653131567501367897036737020782549551178154467758831601694709608747035127990897021440644929943158007443182922333989623417203637831389127275216726386939291570326563374147910338554359463534783810936317226037322831978357274762807275402631380619153293051142903458933656248633079943113598334144508109724922793860349416228832453320495611561705076585740198369484065238689268385055140525820211044005520711488013414649815440715137762640950575191162569526044903228494240180313473481587363692446953587218538561601543856925309269211649144791742178099961817465965783971679062414893541793282511051480786507760371251793328409018856352454713895182342467492536139040879113960895042621860262980811987113970553109465844719766093731251406756288418934790945840835779560004123493750939218554220992237530737698730427609866342067599753726545927439010055925237449418118269345547971365421769301672408968660684561427839486505339790688411372573474273332502669040773128501322861281738330573467865875670583253359103533779609415211420837231154944386682527810482143053716789125137189901241759671992072210652627859950174946942051704202861639106041301432958325162209219154401011350627242590998598756678130421664728569195265188060204829276736384536854391703952013408285347621051579222693569520652514552413244587800675240198291985716538145067448637219122145169602320448848619504852880249909351835254691575983655330153497446409182179080936910851728486122829021312377943443521284680226510873735183257754693111431379789530644443501148100732860409885685911973412282709655712662701796135362013815456463454615763933031166714980838738388389599654784834515801974414604462427048323859741301244528534783787858660217021600886496751587668051972477339144061894388505843026952954956145389948544016480160078904613512281839863006837949076525204962653511025309008867448218062331131969463090917030350496916951025393561969446943969456594925663880018877255052108881904743906432675986047349611842879178421177220361885467117485499130990977192440814362240287758775184325355038363122048430454019443673858738349137993022948534050063017576817041684694624876541007667233440327497151240462024066027333997246352428659843414975690312945609758135376749003679849075401678896005599338972560808447260525658501231186861429051726988962816628193200978081005928581542762442402764851648296949864437826142872900025998189590075624461314665777418493378010526424767442117772184151915136473308327493168126174910188186316879728927420430250085558927937989249856566609372633528683379244689833088390546730453438028510880006919968245056392800970288033966683395686996959031484964803450786123949411546253461432197430975269281393658054948474412003778161790490059565774676990506467556525025092967622917916173747652269979252532526432080990872429871518186109170966294649009890781596506161375822268435127093811418989290337457280588298786214344897563966095380685586598987775433163344807695625220379543147780128791311560975503319291766373966312475649459503948452243538158861990017549791176156197516279653209013847293380087396264806328322037016151089213564520528032223223231632961899676762032283417925503626907696338135928252430043854229131914824161106236440390823166561879790252376158493356403064317518358577594463474097859007232340285661196362548732549899868782081544604881344723268254339984257440121105317136371116649386167625365525599804200056483767179254898620459420740125257451109536301204496847108307136729850089428009800268823351359115209175926995361721936594134899138526628536612179872812208247436386483568744514766089228045623206069743376620668197688446309312439860578740900907630203424378453954013654190838155117880340077441351208963356550456136976099985266452086917924004702069138889970397501929659556046069270644862355118548277808577493774495743283465725617515184247130277720758271600377867052957173509496612331024954321454770913904367679149258040296143721691778789491420385432274453520685606247023149047294727361145359045418327248005978079152496519161887390622330257004395356810878538137490595363565129862775970138700445473526819915068330867572597585545775652765357394574829704714243750643671754033768758251021350451579230221382959247845412815440557125201659266987352214097839347406082403334887562476600672296241047391147945647108004420431132327805835390854608201354124425923016612809839611621650507011254908430589117384078455676909920923763940000058441188671282830573204997419026295290622624081316533533087238352726299743520709707087460933647506818460348806478066762991745477961277374291715745274345147147373521637886153806704243218685864277269564886418220597640205934879687596593172986392806663067452539484897650902821234704561920924323330188075005396927537444254874137548868030651141266187019551032413333183779613997636488072788320145180892528302898673712443361013318655493170040380940628779762153726927155414964861049582898231639017411176927342573097295965022177961468968899678769763072063261099101925593786015283425204784470778256820916575228072575570820529686030235158569384281998792079689493554830738151976886606915763358271929644290894442524767697780350884200794611067384995627582146914253985021291850188035980540058313304405629073264537570566281016724531951396825052680029046014716879688017315268374057231949279598901724744791047550076476309272939479257295211495896480208266979596334377817758262299431177534958224198498148101611971945386345970904244224007281771301586330824456103681310465502698556699172976118762331699215106891882753482184866050879696429044990581043537358573076677767270720656318659184624930908317058058081261095268549124978401052211448858137625264126272126058663820277834934602781645792378018596530895827250057111223919726206905239300114367528984611507159640359623256484799748160947020709108867825318518349785683385606819690175877606499211516320140548457130713453737675752490885477335138882693459698496927523003726775933604047632744038806171728724665236984840154381526750202309942825670456783958123226381011166655972638046795269818459572055744416290146659995397875414000314121797224494862789189417439054762058878471470929996529710953548985558974454201422532814104126381486990129689837700019552935707239934960489830018332639016778658337399700521376536760021662285464241745916172666998199074801803744816407324048834054997805803629021841162776713538023245837653792271182557320919347986822364757354128556315190087377022694559753436556882452003411064936216830530013808873328776313501079628768813969034197796874615438450297718399296499086455845399816268423746190502013024592815850088507183731047077846640289637935886973499585990998053874632411946543281474868897971515992885515124314976313578713115193361173622175154076986518612981406639372186834795156055538028725634942887542751850534417804260352295638064015224061765149742229695868001204354280010127618452577609315548772079214699479201085197735536644866254626448304534701319575571633424202860510307358152289404114991425693566342148789790481614384055305287093017782286887330997745385854043762747450790816435397117008335408141103495566710109431053598623076172214916247853131904687867048603253929359174830772664049784073457409448783303390344293544956013230152064213431880713276337528808825767686230683038431585561083844278698167595165273992517980852657607181907698533676950903638220942259730200029823294114128670547036324882264634598870772965256655364404192423618166047928821566518141495449688203860856319983421482138430109290014919249103249185393838042563695338444211304833560095984882806311220719592909675565016424965612015626372782774196210347542957889870557264038187373393108207000150624045521555827879758669769563446577778540072920419934508966498341197634410591851270605400091030103289578437363740471795062921497234622608054828898086009627464213897313986285270082859298753038963885363162826319558927032681001137424354983273487855678654841141534739871640325384473173994482955076117545203796684637207280169245985362755055645233533499539064803584283144465845952714806347425328500803687107270394059520999738678661820644868545491120351216931808632935649623129775050221789181685017484103044965003199264452857220023739539501778304267497933976054140986368545479069284117602821168174361804089803008594374505100680844723827870014313790300129151884851087855533991664365667141606628830309284554643221931657389185840082223557412365829242592418754928390108022488142674469815659393575810731989793516873899396100584661352221341762571007493430007705312967895418931186760889221777899981041658078318669913576122471277171850295843970699001374012339885353990805507741588666634174869829300521741917035057529990553348281555219001381580709046402793771681250898144406907142218778864966610512128245229993844839470900991211387845209753129296302851476618697800580178828044602858637139178945756665138537683055544515587487218802628344258745647738153135565377129985381421358519950111754792562909438230696423377443208752639381110891112724367633118853167992970175293393679828432999772745682872464727731467865175182254824539239519947809632141094487056654344276417652538341663611674669571460491251718030681022016866520280498612540876255016722718251290318043332069668868275115593780349691871538130364193637285046694912029885783706389096306726892269642795229283766742422822092953067980888519497702773950049209684626384676755275756396289111084918784577460959338515710068854984089632860798125107597668587132049114592558638028102065732891534646303837040802916939908177219585861527306069955922318657332733353446609247195393628978608054779974737567087759806342544263372712880597703063746890079483691904853247355343025322015891208578302541713272978393728323735848717078156629831497654851680665987939491779393506372475760511534415185510776287473619274857815772534486203940579926842169964100757340013952272207132999165423879310166132223766797612567244417009878451098543262533941810477631471329582076098182368952567210391088633686309418639930541661329845298620821656781583937393125745661333574840402584792310644596093975861959994901266673405510575341832806471864751064311071008515877520556688701685863775035448059226019633849769439802075592424988191550013841616542914947017213619393315972211258464486432504356079871632547115114517063682923929898769543735537987469548404474804273743970268209677865589118862401526501004919737696445545747176855174205137176699465605081763544012813892959946658801810782979735512391906805656004407357147194370969705193719861191169240945368255832196522953572378361337421915726373936242208561746115818770150741003583343604016004451704183503319527384510360474466441192133675220954030289486300698910370560156656590319280193086962055047658665972420670666340642040489629502554616350869894457195129968428277049513043893123058927929744227691964834949449922504962750136229909575731793485480582022251945944456312137102424565229148763037128697063701853891842553228957379160510640310468253733362829358280872662279016958681285411316486518205513657136747816196890525931783896147320799683871295714115357272523744910838632437712641241004704829270760838903219616270784231519194522335424927900339209677469948145186855460730101144052614195077402298107672203282989138366383713647325884905485347733436586402052976964112567648401856282950281883998951772397685406136595779858909889832243813064024403038421274046001624655900568890504671139391174742783777907213647007453215335461197561640446528384254771787388424718690277817429419533821895715692033089753922548407944169474702304770769745566661923054520740996570538794253666992360751183788492701082639663073763165358858917631811443490000566078595584039384179541340720044940113585401661496673974845161879958688062755253674798527339628476488477893331261598549798228532450850892340080654899115525531779342947843756971699675511067717311918120156622542810790131784626736611112349927124551431154656459781206650181335471823429358867056359416687748252152274863823028774953573241565445325158938115874933460896969946296214031508706716552156232597980088101296654843415300230920699785952704814432867287360013187081189639163846326609847984468449643450733643223585192627715758353979632127953699824395114418966033052951788433462703789082883411562888009589143374202893657991994533449456156942342675551481706478783004710019612163412092356889564462559166895745836005723948906499436182628102818334281481557462998742362425498581372872162909042460873960757928708328878539508295610449080614478190480220473531015526279818992107463531351672975382222792240143474145271231819306269113338999779288210474892423434356919927879680842388754914668906134939775038543577292906067209042216627156525126976228758016938105605348463371492501037452966851392898465037737372504145663705084668210805394246169298044655544331676354688187451411309361673167669335151821534549612456086792878333818326435393400043106973896823344140615008283406319633331196113793455862644189544432900127843321486881495811000622126163201203603807367944314140598768361554046330532806919411514538614087644783274734003849547034821728949967698450787304118119665030999422936659046778977226704557044272417560282390882986347194820996401707329811231394101026128040100449467196568156964222874264106668260425873030395610434190443965471850294155389165633110407808634499373770769227540857094752710984416563393992906274414038282261226771314370816859988899151254904847601339393305306787613367537923060329855404924985409407426143615455039202037791431731533451578931876684148566971467070108315237070501776871400753211960317324344599514481494268325943151387866889220268401032661149750128252575093916129837492621294857585187587301651959195379150998978682207838987203664212515914831266961353812506408199102477252903053030798055413069678616458510570303377929403766392922172887438473337620453256394496364990558355092241057606345247683700555877440337563664570895161404509538175790224217524575044199483720255333729446973387346814145119194897966848667285525011481008974625824849789019124225094660724657343388178474654447946498425069172578671411487682470970221166988953380436737834076886595386798655522656353151538084113988591356790955334225939168697768666744547365938947390549734107573227382096253582525316543736381905917160694590216746867811713697302643631824746656419516314094114734296465749212021794573938277386318016765921697803061382539013654770104529581361713443222895725237660095616027758330760212064073807191634589592639553005619447082506020865973366739154483243213358837996969610377997138108483640329049226933210153917529683175633820529537310966753765806078703984548918257178730176412621587229162439349659280931613231075113006737296329529558289437949973088038959734550101517367415528687532487216468605653027651093872950078088989462886598275786313522019809929483148562883854718049989367614784930058510716958262358708627883629533833656073074178772349721897132800648353098753813814517373438283228477531630561297422883942736931708889824538296935762415176548077127295708895835721940645878908843335108876915598231070797734583079585171161126263417616356581382606239072784191141336587534600844851796488373226836319271952525436113512080027270233690461051200371605821661490680660673806999387736867600022070609002203775358150324830104524733067222487058931683681276588637811370805825073223271840437960935155758860923972678754259308199855325221549499556441460900770106072094114671331453826067497957702869290545029778413223031582637449901318563856217683421938001734528325643164250041180492447824647553813624194215627434101437397513391403806845873952058151485022831404210044662243066949932367732911943514056523280721887484720363590426690904511451421293412735056329905406684927981878416581099943858978667311765406856253472744157531633083920170294987137188972281118649987883194630394051642194946540943399140833161623502753643101644591834553032330100097878205551398852158179029560756572065640144452605509330117652920461738997652262543480693126099369424166610800409851551367873638199639697731022532894731442230473541189127799431359986409131259521362886447183568863334849221028688496458049350358196570017940610451113028768516160945434550705865921660184531000432532192878261098998478498844910385358279519541681035633844242129248208881191198900895236512694073485339270959424160066578993416465075939595168966913715808259564463558894134893061857589284610471543396955758430552898821806925243458230638071377867096685415965387645189876688122573775160163903853293951753672851391953364798508574875137924980857603981179276392731850323421538155867743957493189893168168610074487224920141426363124732601174555215558791839439857962387437530696074456330843678997966417248826190664932706944355294287254397643301932191574461576229347126813934591757429288735709227266325079595846049157052434835072544639380653759605412151139797681915951563706927183908609817480427383623878173599291202852897574062206445921046007384922237049215746231575808131253687359103472914157515316370215037666386331707022845287870179801080159085293182394146238144605056232429681652607031293854871862764571177126126070464577650450837635669521179256476319780423797791926903735488641137588254179610472045498208722643263055125890230223337730820747362340712730179564028114731471512558058822233125495675113100209249968575658149808992530906755261301396874437238432988359227490171295883039540241163619447710628943325529569407631618947083813070609640030817986044937606011662251609716935264955474548363501461596564244311299413440218553884746282274212324979949775857691073514203770132915712981717648310509373432669813343343993898064917071573943577625270844302365605524949048872971695119041184432857291369004048997484896861412876105387895685064794147000148220415294491062721140307009983329105743645509647748896569118737455965841888465026529983052784111660406258005850605678957673360139715258076988886965691582650794625834255817846901938277601052186677348802726855466559097389116930527803617895366616238374474613135320707894909266564649502996682410541950103065829260196787679873517774474292159886552045191299047925399560349321229214256063694848164038668309065836660895662461652766931482594534032365071090460101742842026426978055003688798606858873485437940219069956539256375769884497856627804853978151664560710860705179997673973682740611992725644877904465567516903544134351149975213492074674129969235533548125378574472712543617690403962044648002228680592484853578365446067703123988392029548621426356232356221678786911102462138973562544992510241591205303789164592324678068306957462949695617507618347272865525914062798581823191311322196432124884093529895752900560416323188078825916152743333265799623533670851272285912616685720515491124916548461261160298219258206672103861834735623332291069920488142452222810726174035253631061590924833539135431091943840101998502072829773013555333236366192950109602690141577198016106678930640922226332359464342297902829981258037226732285957570857993489168873551765556153448013456133710140128995418602735962455882401236334039567881254949634585646874639047470673950647550764456261953182132239441364427336663488869923278485006102714153681228310827631466235716903901660339005366929401990307417299777628864162254822096108196848306178471301794138580083616295714562387930224895729992889807099917564246594111501997345192670715575293770192853633154068343883427704886100726523139404952964771163476503480675950834429623283186941845425040189042042008668033861476906155942947394732516197272208573404688490743373597478772482048536962373550882769031934603856683033234903535756024228734234268473622009483122668901522949649317045276495746875305224189836479306496872674759764009662069965528364598760031993208152410304169627896479414376565935151887408206643403648449261423400008385712319740869388409318598827736326883037688800654340958422333273804373010539742772677699970026898111490669899357070579589605692622843962237553089033161586751920710171317991015432563424427385999583199512098005757094966879025682082477699323918109172111512554859287577413351196145268033596515884957406317955129138942832334117492822766034881613255330920936327109498177165761809269573794989296800719231859066074598373133385290895962530053115744323067192885658332348172435303851534812172751744516896606242278393720640435965618050785215516471414331299628395783788750201914284787625439489256697358910594954169123389806757921614371627154930122626410808393253233882041615447895774231070708906818792348138920377175696049260534437790403448589131021022761322812751931223224614210929903703112768391221316609679471739345158492382972468033701457615593866286315943397604693646850834410454819540628591061078978961209505322725853563847082542766835494909795242525928721386684493475681480072171709994389523033240739741621817678424316623443427056197347678599483217092826508769930801794758332001397911613024157981252666713174394232089793897224131490130592363789973151178236384953752445590819909764113554964266880469866850166209494237740274055431876801398103009713810847433410147920942961739597867022094787307448353798760665163473254528100888623411497600432353973241248853188571525070543223881513454139821558015072395946729400921948420239604444565126254135774352524442745416964181582295838809388246847714401360909734429986628804045399866896696137337254764701034447797813316908379071357352166091014402832564811613600652781851302769016770849088291648219900726712835974586220178753536793247468305398840662405903600021742024193305680885070035675145393376740437426758063210172322313239143171253400309631034009501535809417729353696630565339926168213974923585683028963425117347159460924328727446072137882068266513345895574914538161659802594850659820048175865564544866649573071551893493533124363562801644121823741021934448288608280682729707850695442426759002917179131878338429414469451256902079754629593781572735446216367659969909074495626207087717539508554108862198525355322402435753543352218601524626421920279071253985605122047278839451111359040774218840782911639018872327066170141263978868123497273215519658745025451867208203537107391980816834284280219827592415439858490414228540958897853635749531542429022801384400441124952635616154574071840824463953674791300936037444373094220948073399019172816462567330053550604537572523128171279778719820047090905031765288662517830411053155054087023352304134966838726705986500678628695427500035371928982792645856813449865906182816450315741219345072737937579546305506870168374797593752921112296874900127116492355097382122841783215838319181547151140028550548576312504310267251945073238072466573095812462606551842312654964685194497695799929159654569023154234771572403102899359008816753970234298689861024352082831666302541706862143639181268940030925692584150679754113589126853572768320540405363494407164019571232399953793463819688317530329072660654021673860655448862150125953491706016982796808936226844802448795118594648332789666062926747246134252762409910507191406621737079093631982584173599378884275971264364008061551312546636730030677736577888340232300871502034777571001301546693964006282696516222138939706439797730366753226570837524148990820603477421471328553707542086741773884992738106717934192918067277450917694669888462824188427569941291173018559928616930155682455228757285529055159507074433255841296694854075157832501621123627956794913548477677052568448321244105023617896397754525850659331149725260914285138797984919577484283538460987771245026264472417536825177577244266007015614792280944963490870536587740872704062007426967232347481032192258652032473954571233092883515742954205154177855555306454129298996114330658841509770119708340583926681670736419835802637497523353481502691736977733251532597526834314444741182830364068512920051099432839278077383803692973993083130827624883807975616619666376097315462915523212450410577730143562306540926204790275810984014037921556922532210725570015331504138514193993959768589785301955151007085874492492133767464933091295165320046528558771176426184804191539449942330162311392732083895526349683747747638230719393945542514767707596228688658040118782814712351799617662460120371104230711685568685429117980236764085055067215548074278406455585580829292994028024606149114066509822648920426049067712507818606107347737680512036905895151868667420129566237386816822208086995520646371811199904251540302396865012052259396871488262430464319573496157625987338003922637493085425708998089435432529552982507441116608788526498441696396947607602708910781423720487784691290807549431904557426500905827286853561190650093556221398807702101320639710091184131271323009854828614996479857172579007740395316804116761028917479235040961818298385381555954427522454317326277652227842295050041908023121956615287504339164998146366792815878035200953901439016631806745908587520803560086221095911898086069889892170146928842452626236579918902278983360704382104879056030035917401764491376272776799417588115574766456070290813641951706567968521450356672094414755166001490701002312941896643289587054899012506130279846276847791147966620562645626674809198253364379134286966889691343305984510761015604652646742009050385230334859447714814561834652017386095757381899849062940893983746264360939876181103396590543508430141867348287952631260469797954521440977197772712254216738765369772297672955521779404167709633475683429708179786849299172145623570978728090145013925506324267647402921737067283184131246838437710483882180434565308076728975339471800897298173384583586397305784317268314751826695161350161692763298520562934970395549109606003266561262493240478585454410044609501361241654257857389213921333701590619020153541382186980968045245368024921418700260775425495514198742064162713238309570113948873454327677793398608154168032956508194690021160928882108214791577591404216835921917951611514647109676401427785547872857976764302581961944158663811826097748963620798228940415810133960145555080852839677286211852165730371704003581176529785005331901113034112404300858778300639995782829625013287635954918894812553511851100378883859613299710688116651640988815839749340684114575640886558058608754305203170184703853939389657077637394475600417770953614732400540140541232634935443751650398537177519938052354414482491711251133135841304848709398282881342946609402270030640000515754834025828682072646717361766614570350956816129172455553067067009367176186326974589775160975902093997803562687341138708244061634972053541782510935582304696135480171282634840546543180825402544183924825607666587969283276853872030514272159275877971537622548976143053341362262474872127446602128822998751004917428704915136634770243178043043561150207368196205885169831428563696125135219799340601005192959829667216554131527577548764768094812601883563239615317452966688170938838639748704689279104131219088631749430503954745643042691672694609601439078902325066363978167382678673010069292639471416704657868236083614798770970302898117676878451055907394487418868615443652421990053778022819568311100523231430655567446540101442209689229242210087333206679658833898742144767439401281949528929904826548660647259921172801094642169827119157325107389406281288727376324230947635290721712226677837102500378530718322363655972651767921706188351470996066768389972989122956665469284288248726185903460575743538439924817455028285990120446012594936328043167021877379147096055122025532923363265394484679973428956993121918142716636389209758958573366476364651067772623107075104539023607792972026752896519118478971009823512229932474194627860100297574542241022252337669267371754796580262892630053755677526384070061399839203881017940822215638021488089153919704053504922134431414135529215261813557937495637171326338749793495503532169585611252378710860388952402994556159083020645735511169939851894684472595684202309964788447616417969296529964371783804330205282687166885321095802130237459347794338245566642451785212006630632125303652936713836230514005115283389830363193508243464353373112021679578287021601417447833610257472357068579742654964970019780498130434160300692993196599642336616556962600149131245430455186398852431483332124493735787286886403577961774554773020239885787448499846224037677496851660025182164578089259454538121709063172586130011548171874649830278167673929106515521784945129619320302737080108303525168112280731851623540852873003279993633973872589133797326612148114731903119054763537536424040980497244325260951882754247427819864292192083466389706829835634653505108555196768692765257192504251661861787496509369536280665963370433715586065844883369128301036500134632591986566276956218602366183059102836755659591612230571979810249960782955890770783721013666869972476793627493669677478164401586416799686617071945631431166614559146619373535247102596230705437708035480014775113971642449571708171621593858457423413111071868675870505674226993351945944982734318848678307326662299364269257710881866483449978700002984313120160953285478135599012643249163916827497377798648583788716208628570916187745201177665197134053338050163966340392265117340674382024410968619779881897051978021869864038456687140440777412843310061176424233064085305107610812145808921880855799471174168934105676931572133957398465101270041601068830116824123838246015463240188633525941967003465331870990389788172579064266637177540794288608120475012832655414628101415900553945398757372661542262327341621183122071294189406883335905726243450825913091069785802916134496651165538702632040088866247661255623797402305551122671867263633824733630647159092212216045543128607040895166426463356808007329733531630200568857687146419446001541011261929683443034038203341768761416996543069882049957639654331834124927612501303577273256542241522015698943284090346338250764638183280643048446122531150184337488734088841133062781839185183422318975153854667759573443887943488887396195970797578735009651355761468623327737897836417622202665479762258542398317557653456224287780052512289234125483361419430087810856746565007377516060281854103266837049455377834102593965960650736731202112451219590225351241090182246428566805685968401696390507618024886690064038147802340477651862430308935331904417084036833176728947155893290898072937936875512132512370349551574021358047247007267715044815634971956894460879997975615432478310510663478989300003388522194907493773016611249589224632597900597868235863241546137985452410560987357626148357699337016019338103982182650166639003894652297336144852814174136672486615678580616022824059874994745353711801092287457892314012953081626628307191923486103184347533349662846782960630406019313848428233433465690541558981966216003808112482107942049356840847111969120648045311182709859229739457687272845001274889011263746224544726968885932525549730147043018871494296515011785663829642341272241352412249772594102257765925653501409157841959178740407558985172670143056524213566168656389553607065536487531718050376532584926821408964303411509357311753314909477434694223474296147371608921891647789179408699269338967237286731436905648874968710700557618446967360622889815381107933029205510017985978032233829362720722749191430489754484510640766593981841362341562476164942994195154204170348669167806198042654250675402301737718618197385749889832721372672063762380667142902209890488537387806852456548035298145057697697517261750042674252801863157478874454325754963417156105773543599051143521963317198083686827934126940376611128343501257598492700511985284356811283559525084067530642820046719597375415289158796035187791368950396935125710518921663813095611903372561918836024118564128128947367385180400182373735566358803491480080754717838384658019385740162677136112703513717509229407507254725001755511081670598309263280004082773826275021610565695423773288899070857924535969533979148552393213590304794258550269056845351609507132816820035007966983362267954111284090326685796355952782031797249689186898214038221039586216557070053451243875486834265454412098689368171763431928212341418156658810597354760991210455906389472243344741717872086669015381945941343857053124834184506479474670822873554584406474195163241015500775712307930932498001885652239696167573468250022196919445786426027590461755166543651876150574143830906783339865243653100556439378437251614142906985634974123216804018253109082580502460198223033817234581109095143391729313472961398612777554751991921753350652503015669399067723607693643771008116903010812329556381047214169176060376306550350093602940437573617836816030351869188216587116159842048723023561790718342876004976047388603890815992109501682180284726617933427174180607864494736232853723471500834484381830508586479362269793329280728479211506818179941658366649172957443173235369720481020254130369810778651529763172502742637297103237261810499626665301642490383292590573108038822925619038737244195562819727060591480757277836121707904571868438820016093950258010452295339169949058615674613976926407312700068083218463028616269663603365919028973366300081229249856881977479769872153595179643642522635534928223481168845333001720871675105396391763080478081991887725207808725716862702662431884650461943008088550944234910130927351110960741035297354772238924132722782007167987586335935284179038867293908286929837826081013019113509624362566351523494235503779337316183920746258970962758082136303655723257833938644045599775675648491166177049559995063852715246548545178176358188236271966183672638429672585767233200905793929925546037227478304261177160374467694167722790387723077801358096777031054422043968611800979067844791784048935776697015222973436436732132044013833192841164897929578340534413219768828066258934785199319516499124012175498658024111833396610522320315640854445821002320485169632579116442338622305237104846594475022420273559114156717771656556108548286102788247774691733650477371243167481968679128964963735855682994492738352876631070910006638182559790660883940924708240722080545860842591483899154930293227207387214504410565688210859142608110647186710997809340954228138340634330783422118531507663406318049737012524368453642979710675661523221608768434666502020160592276995754182703330051754936898373595138954027631943284090902683328458004177922649562903332771821354341191259273093608071775776889839876778390773654270674876037046887112519275534609810809428385712964802912545022310885379359497174727837622382918355663793896922454726675603919742345322012592445556929454796184318519707283494699207908364547758181935064967890982434188772487749889057647736743007136107477442730574634939007319797389241699319664649750786039391993179336795779077277712241507150376016964526201476268452751534090366242282623597749052942403910901363802390825856680391145540517164062522932591707885143153165271354531450072803370650220897742194270938158697819953311271942252615422071781541831282692976937619583510571056484701045060466012897912145253604763355133217765448550845188655712449534349305025318143319249529539862544689448457492529434129629399881500232067354034151642989176558922396941671530829354981607797623244843570587900286465754561922409261340319181334522254209584218061693897615924753217407131205824439547874048046730186702691369889926845269596276955805423390705420200547031682934120071616166703509912856464595463656242788927380855220873943919552650700822439090720482859702629311607761580873327014658664102902763477838034071369744298583371961077560134177807819832063581476516424363833366693439956038860270176819716440138901359620988480528661112526651881126158459999556091418773474710248590153483668135400955273723040037171213516397396470344586560467446308641963707953458933346815346560128452427546284365056391818260594007039116576535916739390221317131507304660808328472188141916436317164944657868323538286762148699747770654699671373335957818905683090578249770360449482348596769182194857762227966386027676094361370166331042679914760297929277222359459874154485325491279340955666113190918562955788079776752250174835788644213446826254868609822905597498242330978631743153179531701586880670600655281451075818893845512394265131672282879486544239909588757610056052857004998303924640044340868165547423336043846838654320208698857889153812228792376676176924170450914982461992460494074890906963742376361686295696440131495877377686479773058630076233832892679317049280226488539825668081851016706944756308274793701674461310205983812773506735716928753111132529503218319094733770756767626373844907613427115770851080613642667752628884847021572666558079596955938151392990425792065396552505087442871335044321529053344417681222926670628739177745996193675868927215561025768932879933659185171549602332985708583554578362083797395034584204581395654210267183357557821491075549974705123983613233162883931598130063809504366308669714031141775192817414830696940070516644954940138653408268614330958593951742772929632164147445636756535559249939611329969700129440542854321450402448185850586237356880595945072310576617174499913718391672044412716261776473487803761480024398687027767087832781936386206696295076187797694098443867573826338728983957064405758835588795493716507842622302002095887625338489816344043042198712467540631038024951631236618737386834337770680717552107774695704156406322185782538388033440745543214827943475152766775839142119800680241299074747972960153333810825364166449267310481469524194726004037897743565632944014642350413497019700926821679304370412982704263765505569107604533240228203136718316355475169108337456562696820964158650843987337079613222731413285870001773623751204615667312835896487621213536288205988224941452040510240666913802987103948764605763812562003826694515988328630519824589514609206954244100687673416945354343683197050644283850458183255489505355100629277122964304147052059759921374294806828720780189293127997667274448186269842863376019185998070888489562976238657397621915987122788471059478935343245506487952260323288046348414088812843687638773748370164883382820959904806643568253661799986107763829552301499309412448637237696149190643582895144092390443244307815058245164735893062180855301871082695210049522565371005943076055838381588142070396167422856755657458898070584352513668891824683818634409381822579117642948611855105871105978126111487763084955885578394425309663920100440189279119481769384863445838573635327142119565173788846815667605837899805770362929138434586647431000246083899074279213328208540562989356792355100099455616321946044900004807715719116443681560823524168628986472969269019647909888672856540404152522322629799137773546309828826358111665235924615134814428715749493617884784341665102425133029319583556510811637217977850082682046417282725125039321943430874428898265392285088334953303043356966825195260247373743099129239587455937399331378191980456389351913003096943426535978792402595658819733872168490546141133673755513615839380267601778560351346203575903653781100669418535293621962335373180866633367976954294075245704931925767802644412920940426899410315689348603101902461205582598422839019993809822200577264180370359670716084268922211068370014344844307123894999707233784132600488387216795980255944638628014833559029641904069627797538329835428650182782328527552437797143836453284341852688679656904850741996703948994052878672559905459712214370169947099457929923810389301238408227732811602823816284359995215823268999773059080850332682615371989679595143874678360667694885861597255301939149363975940812931303543642751508322014878380374282618196048160160413060605696772321144876687125864576103239574134690006832567961136561343304282843401303713750262712203333936504844403092750267875613319325806431210900983056443087347169612697965904042952953489780313104054989426560990066993682341499171872018795786397276339166957785286607006619334918273924719478593429453180619241848030225846141649869268089379739545869959060097433191160623512077688151241804843391612434363055616587702952790258480409251899172775400327118597519681321921540693820860122665611218626634890791892284625679798387584507500369377162638936112175756935441284135257127261165356090124385045159720315214560228522915875523736616380757053754952385852498922259052004293672849999517863720211894280271957668493368453909229231427293081032985965433432307413608696879051583346094333932253188012023430671154884925909093342370615416685276359739979969804217877856018048540029912902897885560604090216347542355049927491945111422496649625784177323407482630990625486529449386409066956003335988027144748253563886018973656505627521274291665521072048959242776480059489842362855626562879261111331648790047211756853883776940715102377897536136062873300308473520680463002440061311779433319195570050106768931349163429908020290286856615312560095666219981332313008218278865803878586301445637439371967663698308924073965242323917980618022456127156063472842242655706513266026791299058231263173732690752421180603060837009792033347836649706862924471909631421680177489466285281170470654910917135948208504993059682394228395432166487660817391041025711629050167699681183368220708342991197465386236881709772737418573743327419869157720071237109122945003897564749610934059325140937973564155506322026098112581166198388564214403635165611454773959726117687233922983532621233770276751469190126248034046012104555705286806637782726694070645475239018629424613778357892534075845420542307227948077333303680706070492133342394741543692543034376104077226846993457277330644550679374600275182257870125425326348429478708306581994904500965180895940919661910783154962545740386993911062636175581061838339971660263701555007472872479856867099480362534556793294309566045378608436602072374834623510950229864438751582640474759335249721528279143424146043218518333297499891965664108777971422168948567548106005548943292539662964827172605777163385327753842882111566258132651847227045219478605306232193568511084571418730971404265688708667838552866643720017176406095370264995383219624794706972755973807025404632363341659366514325291156984423451163753371985038256819856361004427700082141639450294718911016625091059366115011421421967368624427479145595129575370392094443956204429277548457825452632138080015703106529274743855088621675462699184733323914023862778507080925524707857589535978986928728513238489782712277834960488740590287362902061956123994573158569698350063145996218386335547708710882858676512906583074313244611689232609394209368218203027603959899862451829742766774590832755720377042281119372724547649036083158434458072404675655726562422177081695644873357572449638455935031179506052172812415032536179615563513252411481581128738658466249202222541805026439738695001008681035228303535863032438316300274099221066440032439890698764833258678966775686119448014610562341863012155877382593043179038168332565045537871746951716012894091496811720544704110125988687611227416959558244336498698886240580670273907304734361432170406736557029720913304165276214947918477875381966930030245367654856355227363725544122895162756253765066714915656842223962474498617205838158051338148067221562562966122250927917005091367933260625517195328698919223663413794593616529574376366456859105063884746338680227049776986214663909761900718517241755938417155896116240414884704642626099547902424428985320341654745149918078367702315354786336145481435979199645107493411449093406831993262471070916942083266265637164402381592336063632867656722291107847058706748341460180744657135673348793228151646271331560273794958765418458309702414363381239676983568045022850989094675295757545244200002387529548181342842655952561826374115786870447076406338221068716625687877059078295720433010144184058736633483986182735306696401886610798458599859953170304527200357353097876724647801118391359504603044850305189518760182290128368947502335153251950988730410242228889119367391866244413363746216504203844257887263421594380670651504551702676408876779270080515683092732678753121835024380161655087261793557061798715718825526754689445136817525066834640701409978269659095784889976675534969691282865442422431063921139016135247552146779838224258036320241913187076856098165646583566452279169681587618392984894656883889839950119180212289990214220263600697383611286535993806257702550398753299742021494608600484874100081348685290801976621878422871123296206875237214867611897227084674631155488101604600901510827292103840104339615695753130762699066498845945705079464225517910688885869317988288283262549687023765961882229111051447711836611420656599348239044487109963121190153506570158750326638308766800896994693635955917921083464294322168294374828027614623129514104036487691735848383625574565510977812697946306014142686277681373349897603683738179332884189343566205732498892294318710413668027980760451539573661326886802708782292758795178446325950443175498422779013082978760936602038017534471807291977783516804957011613309268578702389102034300248023617576888531113110957357182870955797279614037559043673038852053855370466895084631881474123811420568865328982455381093787184447423794124077954178043235248503479660796406881253403190901094179171643564674385038905802045019622878005466877809605119039914711092238067443215824544692473879738920174377987352165282914166510174829193238689214372003232557438751053272306545465230491972588394849793325049253118706054399806092543050739204165849644531886721527194979868834441196798059911525942538620901659159916083220487632943766533343689918412164684579766875556380924107306980462677973266640792612260995527416699679948794925960865989710531609462238387225743411566262341510074623473421549095344862562478754275473444908340348929767198570452252124969390000738035736805910413891944963290330775665863109423604170656309321343463251864476121563725302863933691518922760970366734250286712991531375909799421707438388717447316352623969654717502028001049150289589788060938871623824784145346181135317151529773301807912691186239531884419960022603311381868207271594729984602798485920549818932353149330204218072136748335126930405660089668072160571094486593407501533621959089827218425150173071087264699895113687843028483133400600881925723491076791342817276906985995028445360966625359752319179168126432581988663221949256235964827603468705534071268963765966126342869335127105545041923058750689268138679446859691773638629786239337326747886387224259845842278714022388013091310099555236916432953689094613484518552984032911597743346806664489814433493311490072078219886756543935342916082400482725197070747220501496897317155311636806582932466177319031735888696436498619702961371212473398451959671341721363501796510525681999059111910275102977586597724224396786805042622483972352667892497312879396169267199861953676775731203491195442486121548350005516415021420463565106533427032416646620562663560811517441720099246849790086395923760850516247294486506864988392686443691643735917543543688008052092956394844038827733160466616391884118102937282201473183952172624400440371818646499587694931275211410926487563379639737067993010859180496193314215609384077253880171035511102884824963135628200058073415439249244669107321375499515836007701395005425500231012930886372239302413721063163583880887833025300922943015748356318308624921263386221092131754571938933544899419723050788952686293230126279963906367116773565889478735801785499703845999281671514920446032971558494778565662236279914512183781070024469345639488439723742165857785955027104045979370775570818226211533588330221183724328042050653249674217620310759753802091512641400641125801244089933840174303955353221309676562189039863322367061808582608717073765734337256612984852518297942184043857653677657898072694619067123429282446397579361453524181477485248067965179105217608149359113964741758904900487571415630404271685308126564105891415429414267612068206593363569216910916617137248590692837008834610047496963104812098451732661173479772703795597378600488371382941705800689500158038857096474962653919296726994281649682681582485967457840382814350314553140603363367227505915763413216877524446951556827355577855280074939652852515036788967136640938693946223718919458452367276158961971546551218810887317496877784763275893156885203864550128935631491397282452957764342406675478612977508249301705062917583975784256150872599129425792573301148207730119729071186576585555492901039806471253329354997152764102236108843708687687695992059810325088197261031891280337320391788028801748188678816658966807513153627124265686723497100049119025857494750777845242959596437227405179505647308542406370418326542348720871703153777864690106937615359977120675694132322148196811611081994638071440545261218983226616139408974719204118524327163710167429795379817257984116615237589530337055751458295718275052680109341852436471226789086442842399047768616658490302346154719456418149449239786889602435975256378378292929364729611692035260377127721694566710603550617708157167292379424306503569231351673594352882269051705392011067556069716290744371275273106384493425170975242981747203992742851375383499016002825115340288150734153619996795575840042895239031617225964518207618968753648508747689445686288742340593085276457113271616826632948730899014782234704572671328452475467062894873739391913316745863391288684728965243252606439751082424630485238840798682395886853272773308889146724954077120642279383909581715508755157884868501939988388415068329465856361088669570980523889511035063047810548971864172092655754456996718719174259659779124772354263816882554362749838114617221590190194587955994386178002511936488574488868840211489793786039510919135809172916044983490329795508882106434078135029534935604574901884415522159714258280929271493694533456861903583117107355915237323456053467023122814752765407331614391009969462673611493656360350930806800679445173929778385529239872961720989334566916466893779480400941236350950805799053473849211195198228343795882441678014382509824753243833538347629272254672665264693864121543214826934584219666937833982431582365218084574269560899413678514909430224512611657684438604546525974020669783117649675012558938931908627873650860657713461160426141681311535988040650314728584524606343320950175160276861757259456341599701614506186273649346152817647963554604356804553385928181918774700771237344485651312776262390515774570904168329837385430719331424329093470765333182039430613405013588899506205039461894799842597615370146526796353803535702789896245691915760519032281821329849124787110276996198056592655339737672388957872015820077286165877759060253994106264575146438760600817617005414168074114500823807071615848082845510253324516026975201494575251773966915792134762082449520405443419018243132117796539805691378626786186797522348413633399813053585181494581256689310664411202621080027323479842679797225323403959323869039944681881316631001856940296758391904377629438095627567861431016844847701394803659759617664533683464204700356657033245810548086817542493625038628046965738855781664670640817566053509223724112398248528297154741725624826896610015243536752412087341925790708659125561880769973541663826174937356236656366209036909443128240464245694538422806184332023036563142589775742815328731521963254575581964472724988103212687988613435382916337680185897715863185735544586219367746540128502283654785247552932779425828005481480263485268810367530826467034128870393220066609445293524813011040297741925760795796683495157493483298217861688939189032731762843465546825435280117570018825606688308871842270774232246332193782468563622423211325502644950499442398070111789611754741912198103549913044497342594912753901925608797301822150750807944227206626507021309985741920079612724245917560869287156654519818058433046504446087674362832438197683839122822579236639785047525414713118274277313665705083120495150803215493945300253511479347737186804878140462223427248673222777816819672960918408409036554975116079553491315246533377314079405176030845262925113792820264470142459451368252664740758957141493422477559633415757456026498893203181699167929270628742986977238647569389806720666544490741441040469412757151704964465261343824936932701470521555417776862352890159324781079833477381493361087550807848235392946875991168361439175329241645649801296071285759591632028260745712725473600612930353050671488281776415248258917366876018058053316199044530132793223728504026873818692557205731913851660385877866055777074236544690402350990210656401390492861459821606950344660196593574175496491024411877642551133368908656163597662786672374488504657917281191371931068853285409480263625969058256202916120020618868629358660925241780025030890520134601372070325379764837562962222841094505830610876626813757377980288402553685665918080032884538475384777944472653634780236940785634860575439713087143334285059604854106484112281992087245342161845787709149998357052468101134494663836623428065379640489104157678219069197894127988484998447296703041675674513112636678777389735732136610921980032653832997607880981035259968297443451118959400103896976600329354141187202297912994624532898332178362743017932023397952293757876050026126113346949601590977660664338515780766513534335017385133209697189445843523430920505668618748978900365205352013083617190385279896137921060334489135247920933983348664240995527151726032405058729562576207900992749350743307095605662846509424285307599129145743756213318946892640020873701634094639088796163433183528815614792354552348191738430248311601735484750112170880733359746880517215026979864903946659572323566076701576503167642703874463488054469008289406879296202468013941506870824676282677270764971935961989439416647047624404089395081340815045730225553401885288192686976311699573566661508611853742918149965396020475288002806647103514220296573339181014304671008338815864089882829784900324276315088691859612863219374409913345847058863415727926157559144749081873968279128535772535456773323135354403388031375256172305778752293348947953021064198474163158612612988430229610961303619413711029674164837775472998206941754685530739512896434936660279266684102098174585902613189309280079299305942862899581791807983642403279340106997068767265313813877805750980839956778336561852062108066599832035930869592262789387293053757149132761047072575112431940098531769489681362400623591139997466859883123571758036294245464438479708784320547385033737452272429380406583366339864786732567959713608441524433371946988916542201733342783407684914168894397913742556361495981018048182194180394999465130817626962281198599832299295437995374778520352495626844627041328946730718820933890817235810462834138451731304400032381496078964921906185259954085601639906793972085893055277676230159655583482107496993670048215032097497784396611335334725600091822679785520825717400499952521959239336781294272935831526486082207524773321143730619809110200798856516078687451675249513544368330324135317539431229864273752105365625530707524285546873219585896072396955086479875338085420402637417073927561428275279653514871841520318147939849611806644643908602539794215988643607366144076551615225452337285404689223016462219525355689504953865874398506622979751359170057738267497393831102040255381394151769698879515306933471143886051071174136509585170078425550435196624345451489664097876019477191444780626636811195252005210711278413773344249842914294624116512950136591120847840862689731272791438970218469519588634699184112612872962912130150742815034171526124806379626290484877001426979395318709453814180454893891368050844106465813950774203402533338210564047241083082185241137667849873778298628211008650896495064464985395490520107411702899254852232660199334852234992494592455484430974036673808160335498665668136441780489559487348498982881144289173007598661378777965496931933172483697968843361158883163638210636143780933444511764647896809247723863398882953071210273378130138143512888721808700238631365813572754470668937626951758790241878715941452438396097333624087099199935059258613131104773507854680402866314192252552548381000540625312273653081534010540253439981420411761517531587387188538218486205735321149900758585893293538591050573114643336587509541969864476552671588161042129146649767451202072899578593876582019121125682824208888250697127638406122083000317563126860697238019862145139436350468520885418318292263473445852227730308577439922090703665124667546534111507104084969168532801495518745783838166007123486826692046022813829440672419499470339745886859666644939061220969697434372247438854173020653534472962744877679429518292577757145169675527673673961662935891563364048486936333538513831709125487551496474518665244793924928044011025293803124809923400410335907834845378925651194100892886305219363798117921931120836634749941531059196402566979406110800602236914338018992754048025135564049198981792639811780497375681333295673960189153953116656452685442740179309657584138105838999520789033121422967736574123077109281998396113263147361084425006261858158741946649755682283848035438777446054859675824218038579708619358006673654648981369038420069649542290965721535268277358486843156027748986002484950604425718641769565851999052018361972603195247505873981646604769987954602267697211920813524704933669467144087859607313445196843345771661581550798118457943758329808029195566848089109713155385718111667559113100400938646166958410689445365932611355886190865646793280098390198173010391093266703261352432862111987113626741395165244770838331999469631883073899358080009437409508287217602394105578305949365176833478511608375375966752919288154783052883010359814132662118555032293632360087080129229764968061595126672768716074325833714264170063383865181677037431440306947897951498815372318524637536562223944709422115063577197289602919092201251045566414873207557417902612848141344291306299815014647312187877251793032015582480635076853685293868816107417150320412302724201230686907693150612386595188155637115472825357772365248002763509632917142449464523640034562020588363156476917679213319530483380489523461409680089114550985504343730109211172196663889798475268687019565212022140180738642061949954743111776813050935550376921776351380908224175014584915073933932756713788985382636196669385061889606136306539107788475279268689008238060244038003945224980864718834060993600463498354426980827960012798688612921455784631407389899906066054992585360159285930090164298717869674192307954804564905147672642183525488132586956534606089310652026628027233155295832812794910380908417586539733098631461447858241574132107532352562921461154955983534735713889622944102888015644821816014769481631558266522013885707687920262536580133173813348527307497464523233709689906925901470277114874160401056940729472112312490087693356871133778718823792310699415341643291701663777639267751793460018497659179577219311114493450687875441237023870965800285029595242346760560279922769049195805549114728278501362827982805940070584898783509107775425642668533884209282207414752954357128138714220118265070705682227317873288576083616640073085192090236860152568694131609136044123742889058723639575343953999245663506224303358727239676053269256538530034498397348338721966566651456493557506270787992002515660849255314081334411790730540381250745356226995069635740524739435689859628842319254673674949320678852919396552866523680538876045573373694959150786737149920526268622277372891246114440331231521262627000441067749809683668063586405697284089966360521081671934750629342830278126553330140240625948560102527246794283552597462789170163823393353037432744523501587211056997452836655013890860791818708623940913503299362603441459241048259186080390169022185720905413299627006002438820001905392703468697277585684883521185422589962686028014408816289690046725827373665714141674144359203317798848221442457869021899581942087150073557936475741507270622212807232643709278050440549124703773467957561418147913931521827153131062498046530543054480131497240375392441728852996727196870576465053393363357613644008841325995082338688776624168454668172798248356736753776983671735544877556139978281278471418180091363032991214021406761315639733718194427396838712502220821428685613943981903732114140689525274685597132260668515273192931416712803893027909573679608235384489984334790227267545032327539731188554064061806643593091715132064397974014991088020759917717412846869028593512405607990352712665269100237916279610603138812866782182728591285898639167572617885060159236016974976404478255962300470035859835671921200569763581046716933070839184227878732582376903554313223841743382786378351697971906579157528697112117632366532673629885761299820456882853875198810200969481427349373755354108500198418743640550404699517821319124314790554234873586281971545844672734608376297352020477052844617168370663310564836176272733556940754376785459750921329575348767147079980370016489339825016284677734637527837659988905373713700942155540919124813049790579055293490152996687248994632406875079716124812653547915210237321242887742233296790846566414539265925114991647386142638819703376739666677812878240202630899054485778404356272821996837427224197334574605785863062521938191503693248460521679904539059152025603453204785478581446488965368326825073692594865914696450472575229347962165532251834031809859707197494105962396121655539710815728092711726235105078562071937158294335912977972453944883955936862109658803370614727455314488076362818265329385546784009138535279305282445322328810989920361857147249436847695250437365168109839091796131232711563583348032480665661666714102546137711622614038423220631771384711782951926628483967448505084726034109514138803083779911318827006910236460689399243518004720111323019550515078394752572400984521889291549892872127523855688512087639571620263794854711780216448439842505262527544044386045091026333891443042148882545037135734747586608224924395446361465093807734008942067822865235166031730874179271925587844453381765662804611596976303507229468566385952048015453397324259680337763303955450412415572675326879817462559177980699078608451246716694335298401354697232094734063166060558333708320249366405073579010623921033584216552749229516283627983896054141956817291204329155754516464787207083475784801463174160338319393086563193463012543939233684917820789441219219155288456399500760261841403258281695305894765383891685707622910052900803121599290033976341908726845696643875841108139317803895399734414618525180467535184849642542572840873025388526944601170045941298056117944002475645937825494462303010574443498342353403008668544547693679755824610067020293671705129887372889812804397695227057594774582122389162108862369513743675826506084202123898316991130476557739108535774084876229934039360141525711784523312126352649042813260896703732810179369115060160040468783632999305827902584168806503118328691350606801933296912855998648375126997781271646045331138136320385023804847049280146435776103676186823475624058671360173619907653777549631234576178919724563379421279432999724968176031786272726449726279673428083096850780527621258738962303455910716265660968905952377571430144442037276407192742265597025876903570670067191359595525988411003762272987506441720246143194646117271767979308603080326142886775216291635578073247850226898325241820342134637365858300200473515487293842548828155842853152256970766824571943050505724535180609508134527640676580278711929160926047536686163254876129102885707194010843483329298524313562145728460303728424804390681474275565956320370285356937169360678739839266774193195601788786273392208844675309971077385481530401732793336928680393299194096476883708898622461637048823796393398571813428846316413874263831047439630240652161833407496027969051865760768512150197284778411968723883532114338873722338096433312241989610772137564555394181296704195721353924827560161783750963544346310165778499290036692542020212968691869375627744778830204831683250049422495200268060765834788014149504335487688275258417433202662823012362131045974286508759229838778620237787854250051487467605465596118694850470114356421829400658083657784573841186987539013613405791007493458300219165429356836611025318954250290927501381995905644361494002049460155058125217219017051111912165711651291701981088867605955149350181190633694351708352365465095034247187680831370961832822609927002603918422014664423757030944149227656085768183309399451870598369273888169487436875950504129831925197857662520996889574201933210352813344131668514048960211478167158827721625045220020846461147658605915485430666474011469667295084714129913436653300879977145303488913230475724548278734883071067071412159228388074114263602388007130773132588056313226051734539674689242168665790675356908439240828519578968405343052816165290029918902482931682989482570223778547982761306008925418373614448934988050039410486138860060199572498566591127935643288172374757419499415485629107466727170824981375827171640820318199644397156828010627325772292504198813932637846106590555793342690384952842916603140793705992757423945442442753397744620981310302357939948179539419501955967489371357165033193711112311171714907838532613192487801685696925607786567173564026579483654395527482818044788581179264473926866481181416286904152664224351150481140109535841097299525343223945979949530858250990771197700318236515633875578576893845324404030027756626727476722447075343016594061424755589784402749059731442749745561362021120550720293902722897293690635952799191101134959332208177169602870267819711324230502515362064853663744124471252462666114893728785938730467977954088379345637257229172590899533951367027777855459930158531816803644451959733249540924356644130822202466443202609895815598413363281900869317467291289481316421068895922517407123024518875125754230859096611497949746125329337822468685106173512287752282897428909543265371250765976315510595815104389818858585513883788896471921275809612944714636381932262202631794181471803414117698878676670430715982499082316855474527703531786951409071508621714844128312644288517635134485051783893680939454732757094676366031484270971579567136004918515425241718968498974571486576279292648599471051854659441925320396162268699533022998622405534403847364331173793879730267235560967315158076611606819598154637969680242751716123826922127709267339719919614043697631804252246515678517161316620467845528742807679412302675978434771835392590818738647265005814018528181918365564424098069239509202715444037222049040660573165665720175577840383807611092686977079487848765328790710356203058300990363742808809317219341928354585683449838285182667839013124377584738038390193667670675635141917958014401744999080739701825390155917463849539632252785751534167300380918926145304922016718866536453571778747764775260288238854044762363941460792632316758175107216637782171919325842491203011754913036128932153191233343046345847761244032477618852347920162906143162217068499838544213193829630114775525342457656871200496012858857445672280347984665015754054068363359238475181517243538864558875608612066181514697433115903984610019296192706136289393335200460102890632796965029985532381340687600220942351096291663688772016103544681546286974124093848798739394240466960220268126756338637574216618100092452815217061405828123873912284300579489168860076325499158576430584711063240472890645950129109401385339513658056722472994968561219729999046903628296548002449115899889612199709967839994853129666470075887314146116902513954589300244657644488211417983115168685106838917681462475280724742167166306192920551726205707437120874589809608574151626353656713075352816610993676354500300136836884687370275261156847331056208522811977933262016707025581690699782997200645468252973522384541629873314356807802903037157504961621328961664729538121671011949503288822948530164535876512692097692403031015760082765543214995375227216647369258611878162481527980047509308194343274655489796976126118258025763597014859100563120824134135824512395101482740069987175586028348106380227887388214971365643491029006933015499924984517491184495595771633900698510919142346067899908323786696469225698101026572378813194209611272033111621642458360942092297555458861295574149041182535610706396111309646423134614950058040444957027485984882917143926842402027207342877578573656356705568384823974729844130996732067986918546938520072633545542722524426182000119228450898812555850253179855595343437135544452414176758565358781796874162071155387260510699698131148911928929741729590640487347854137369188304885198887084257480162876515529607922179550017854315152992343722181533780401763713161041331189426843253749436740574813900416971251917286651278230810795088708159678362003675569109852362557254973740694358388534354577798600044579285602382805820096033618783896533149823913537395695787766343513881864267869880430616669099156112467026575581175567528431474446394183770030669556952017881786458056820627019873169801451506056618040964010684387869100367556857301308470979596251713341851498714203726234098457593849011627970840469099367347419159175464119418700769556410939091191335976140597483106560967424197062781959823882805442403207937688504682823924093306835550580056883625338877006020865716103710866403728873016906255959114638488799799860819127350683012938869167409608534841992530738141126047627099837421815780867224416688962617337258447768318703792556295921462698436344684768973190204710551300941903349521994610602391592272624391111383438119711059362124432291596647825874741424656929716737065640272185605229404349353618302766558725441055202198048048480026324796411837450336746406418802847506797503039599668978797346580267395212504898029247008249095054087854577965311150296655198610667149641240815344236179670452902750962674542253476179165179659890371574693138032482048364161236965406664675317321636935832449948809689672429831090457638813622665817702465543869379338628645968605935609688352222348112502742022565104418275584127461682064581742140847077700059553537124585917714266597731535818710014420071175712490567630551523890925738921275481291979951095522234568079696005052308903402382932782478442507683199342729325979333673310368693619777205865202740237838136063109779168704216303671508781509159833457169764150246358670551292636403360253572137215553391967773204205569653745617256237505435830999359777758262723681328291634270631274801667161085267688319215800117074677924148385386665991376028434104376649592818951991326574036325974742656228074450867532924929829500389465765697853306748652117398059424839810748462880996172430660032780280122997730144992438383517260088809258769491921939321716092774780002297466112259709333668795998212123650744073032617702870652905233712154277106954447515861403986345849039996583234118197339114225545664532803017217065294339511589722286241252284394523438374715540919313273793687709497579374883053148972021798195928117095018386389058578664107353967757892786042956484459082587921599299141497850658782499541358554013234433597094096115507096410904711193617450680071155635851927237914702738744174663732278835766045670792866350411212848993927110198217156664355379040518147502719261829855122603344829587808303465511610079337109559314781149496240547972814106906526701434253706236680588038004415376474780989705939923772530492120266213086562834948233039632380812424234234318397235258999117319621750086900719612841021102234113002877186833912946105781470514405456287510082501394464086092149660657146532246131782361370499608435209200574360021653545204662935112528239425765612283605191751842506316386838781870094645090178064323363383624058078256257490732870033096499242541437134238337700536430758339571756129087720873597086802761259272411587125778648449521848146222036195741197692315148165833675123776125140658351535691442441799749363393797377154918588227040489755118911373066816112157784625300941357956730236111381854965811321631950526432535888383178722969678570398289146114420852652828743878869657770367629700705942206978137890967876069127646662213294273574057719896154954550459974458074946171942642103472181689201450194467547976652306604560873161226288185097295431911665164448658827801790134402314493560309087705913749447356359464594949920006025901622649139412171541206640792130488867530161472022094314918684935273900408389619106302218291529020369607172770361460095272233638107014773691013445794368822016326158689593096606180950895733481325274371119391070139362520392064657653142357827667586926476919167729245739097043251043177297261731181174616544544878998179584785769752330118689315217922964036475115687939730737821877560558946751629376550458934377817075074445937062836833321674718831752567750790956751630313383654858765916111717032430225764179615351581832259035392082139109936528467796157689107047204229930779969137223341237274281320983745828007996664010416018855424171984445143294946188692874106646582385882594800717724938060517072059620127596357783034343717441720008291700347194579147849201565098472916180031408131436494477709519738036574732713853445890721055353083904495929026481939075805347858450662649732533211305459011134428845772973009931818047342294385037735351613762745145192996998340793744287577859038381344028585502883944282385117356971703784468115332880233901003921959198895554750367159893927454325790751337935349109543139267361785127138233562634512052213953881993051956205813857807173806631953961319078694356455561062055789588140787740489295151441156144718983546017883539205899715991128740358359512116416399660763779177513296668172839184745606881728701710253402019242647755800337783848917517135245651054945459013710115492302601044914495362877669438641393228994705933997563489320773265552894391723371681956752620599618949767687965531773847796908570249005373614350263295341782073726987126975846058261672239794134592536537913126770720290964961440004182386524082246861769573350640132007617613633232763360035555760251140322573889233477330768198345185823710348949604093182341571790732393014685237989534111293311590466401238475086025480501661829382523324351506351959594443906689804234260578289509609395771854500881170397837351752252149894450126822691633448910476357592604996506619751044992231385764391203433296106936377301587750986991780653061890221092789048449581952718444400337510605978609900683684857826368220775789705248700505824832001289131051927350525714998040462019183998804669689946251327011529024199022547264990315225405347196874680542939550306251071626983782766679764615874557118520572433618499143789781971723728505882357394323714201929118637741499761159781088851289851005152894474354704479121106276962874319110063559893614061240169874485912049121331413628456520440821407709063292390850459714038965317697891580950876884614629234785068575558413574711817680290673106358486732061773369946132115943334293149712310125513998128350610310622341783179149026544869565574867106589423619249586000600959124251896142611683298181896976592281348994566506529004528799108508830010213677339510464908641220331460306102781308405756401557229262505309700008956837071860581380080990921118821462000402214767591117365218308471691948480284658061028755783954480596998285087353044381042438445296542177620847660830206381409705134956142050242000590060107238777922297488020370119789413275468457353320455648635376830144134253471732018282329675593411561884974873063333669310142676238320481446678917960502842119343895530099274194032796422571174513325730361104021773176503074117221825981125981141397444993851828792576793723634146270355624101308442167504534701256042465486776648999007933620950454862692922512820512338298203527185531223321496801661938042135856174926137007555570577464020537781531674213642320106809147676473458832870542297687659021308260296233028488062304843145848251316698838934900745105298802817547335058326177950120624026104522324350701441096877399525649552746485284744521140745566594364360520911646843973239453202965126097670009848934556891740434172591053473543491096391321283453455098221264109154023885050606553225915892606322600782882083205946385209233101586412205036343856782142956755381838956034304126353412333692035970478637559903418102268348366661372348663312079167512017074138564966691198638791725147631464671820743269765417673274067930465041765257370397474760924808991315172781381665014330127951129938317015010094294279538757326784771598044098163264968833099530361481821717000123495011767625495878470719307615625239693374905982056080498562792908767871889484207609591722839499159735949973796232436990931305185269844915281876581095540552816607636653183293823472509261393075468982685851263987983034993722764289643913141960473594831849214333580656508358422061701375837713249201802780995427132828280052360220866785257372494839543945648120713757662162697310686809111951210629129784464071602865163954955876961829508949452243423357134485219008378870447816695538981550165243371514418531187725587510763555591613049164912577428958325820185711160310223999278642477691477848307628729583743966507671073098525695737146759372053199371018135654757315790354992856530850477342274626915914716884553185670095215550413612050040620154828749525944011588589774841431482715452336879507219707638324075071590364630138211080128155903219915790025014563442166279000223663817471806407057027841620034061582012081407975602041911894676760397098364354919098806984030803900867602379584887066953686377463363886974762164306117897957680256436007420966164197955044962329144880101336661208620526269050339869753058916381608863122646772807293083965279485565319927818548386013460209026085243799692268234569666665960189732703046366603902787858324606348940305132215583904851712642754573103041450837762293642216570319157708858880800944026767455282795631097332704122192047823780685432764697352007705152915941066690240781420166000962601083452494802939241616571189649468538142976208417332804013865687451779390513977856529761622130625772524920866274807529692121596548009848907411733070216824517566616168331965373625384213695171277766514281096946168900725354449387485599637840912872615896386735407520528019980262688188123499269952028130294278367300422730501555168426604359007074678157727574774735281377061103438652517859471871555193514627091168491645455229423277165756852326255348138224684359435443323929269581021723114609007168909744553930511603531216016357624142431438372539293633291345769402828358421676509116932353407690380070810898369239316558262489004320693213300226976091485001586829050118191108023386885706092134708048039427008310937242325168852310721821261687961735055575001192632138882133377889924718514780207208384696667087591509013805442084843726651220461550999237293726675621689609752528917646121841807209763011805009338216645350790709250598902151662564706781239636388417373902415152007851412514812902056597796136489466308536324657658600277786286277832468979828221676964453854631340601940544637472940553728498636874043746267232943859340835924219527176469827648398944079200402109554720010278937264682152127480077009706435295492164251691308453054405213103489573765037338284205027414221350006044893686252069688027475442610252026177083848346139716312808120130830066154324593426199621129638929735496062402051635213887536972970339857067586193555184894824535891902610109452317536501030100641187552247383660474108166005282657652525542603230538112620893960551576362440777489145128552119944097224460218889100026668368071040711931745658664704155608021325185544270822436907331195562209653966876824787868970963391689858000714106511855960001317187573497428688941294900311019148347721290878621041734441620251428351622688330008800914007196201939988020742791973933729152839779551788833488429109570448073489799488777402123384805384865762163307605207304223732225641512228942494058055888125164861761273274496273512941862346536384314655029065325901635389280250806150620369036876054053265088835639894361909323803084347589088582589577979174285936778624979145600042463880954536596495869280911256452247334671899899313641397682442931838803615544836514406035058972694650957858649291745534420775885067116694202631689679882421717960880329837467837408897107892268250804831891066870561238439823707684123818629562978890804788362707237527273945333456504234361361766610012411147716063285699748788131472354974542580854694547526274943414695436041814866778257112230014316079332171742424117004046329706906968998788763218709611030761879972378726195435837700966295468752848085303698511838326871071563568717713680461629889020888665746817012315192506127372986840734242881222426197477045846833239742122275730916490373977236720969992980632597028326255724985101584179428082585492556145605365859942929119839628832934927986362649679071056543318237067517948192280407403344131982571208477678678408582858293450183475144079975873306128123059660689804403444190543548084728705165373367817755224268925973395865255769444764453678667450674726680126171648328023888387779537327994303495309988317965142780103752543597994521210179034597353327013793707814325573275237918935971902513218640295752801073452834776347494930772451995311299992720319996869712559307594839428661907927094331046415209670119831121947365464687029836694854037839079636793334255324325713053666453418759335761363456592024386505671980618756215273358039190530155221322339392202101968122713906595347260291891068875531681866019566002393161457325322702135399291853282620413196290754269162540581798189109413721708034585305410243643498333804701878170047493898937426657310732680614548668241052401041491521089269476826835959572624314376286939368188232134400847630569729888133070308469784112798362645722574020237189305769644272311401918620821868779123412197648431160594454755141387571652004404298944436965151838990774918942081026674889234504840014696949162030611712015924200269711247453777877271744134664152673650800705694718150675481888303176513738775496370541563565695387944124030275474063001761174620736253700941711798239239929488958019717651151949912760565296162239851242174092327626704419922236061623179449232899676118753134641622530418062951370326563400561674286753315757192931180917046133547735575185720652697480872561135809248835614433881849740523708627135509100140737751525092931956385078699479553849298888702388916267215441121811273994454731652985893092431480330595383735476990065048957061057391726026554377797306349014582488530838184430553769660079022550283900684282330953819881109200150647325143414463892760953046096119439347603350879596157186643555809010747956680945791695105835542295605207417205967020862490752823669437279899112579753040493463911910024595003784305670087198524845631466652346225919765101133609481834695319226870977403455787919690554035971090602191838303254014346748022185322224239866887965328945550306963872864538140015445598621777579756782254371458186506538962525996759318291980690310651529008741837234738311198888455650123354621465754417288604871774751002114918575836876413417610278997506410027139244333704940799108041157404017583198271719336927250747455962225029078067404444261820781583628068488147217416104218174421277186806536728578523929996621424270271549005105927198495528452439352605468368526150749417293758708371769599119705431574970123762775872365901333354108292439573863227062341546241716782007861529605427642908221602080669812595597816234505294436401607501877118945440637265268995622928185051744518436941949298204507604675310031580531486173028013385084095848045658395287330214120920329351717689289630667911529981681988771407499671920626668612597393613663647519998425310906780347605182363954989256920525301692623057943263510908769490591112735805688301933631631383564469099014352871574852448279594510511057734715153184604062880824022577835080937756635285464027944731384683621314148446048884411677197652173921452628732667949667883745565646790928339778781947897709169279351106320414491689601375639869565077396505329135431373848730123174909760632076401237534928597434296390194440800867408837750777326953997842647058618630822162916393514671957165491127130918805903688311877076746503646997964240819209864090401853623541857923175420109796207978392042866438023576370658323018683976323094192573608692837410670848994502160607993421263864995978240997321421915564752481382968175115371839620331890599519105777280439093154371492924811054596313109093079930409467545416604268604858357885832139569847930396004206279552144269506161195172892282683540239086971591463240070678392694765362580620531975307411471060526443108711549543973650742944979490084253711982318927914654375757785521267493199453709045365685217320475326318614167756643320472323919917584470909381933099462499435622722607499919475482954758624486725800359492347955599295180416555090888395665737243296303525279006768080696614453059438200043346964837155919660021806654516393817524385867411025544367918247624003573847116614748347122777808259898442037767177131871664476277942931607716757298459392897754884576210725189448251555997321695128262962626920304859684473931694809375231369377824403195131600312269368492399139534342112771223933812068653304857429352924303743683708018902475999517841177677953506208165481701260766744690453384318509666674640526422826291995394609487526307162924571985138458991822705553560600559677554576576827775220005568557907710429989273217898020050132591858435642899574958887749991995524746318717894728924806650853027358329772750953269379679465233560987100235422642895442060533950397873988750035731093541520588264999223590971826118127862595361430936684570905761895766116960513189878675878385209571563026308132007072592370197923481026434624621983720894212823401631085449598363000707943707035982885731254304751316705934244319990531564311443317477110823029436592557349621752770204183068747240837579362227564955085383008771812766496066719529863413628171000507733717200444419551968506607343648181829836905711803923401310125509397593064848265830175106174069817402117981467717370863604843378581810194115842554563427313257044180870890462780931720204053818689492582655285093219119303503464701760821554357718661411088011105257549510466951314865617925754752365282712715386965054943687653250618177386934023619737008813529295225932987287667137040705997805978601123008943291516229830837752950656957451701415949778659820190270180793564662154860356636324698429946507622963373567272604090246544588376241424238256501633520403905754227868434314225931626317271404500819485877575351121767947297172434952789446575220809911495058184671656615507724931260026187003916017106533061995859374649745531919668845706095008974439067081143423064414392663567680675218002753683378742037425681363215962698745407753034306818366912686854640743084853959330940969588758117615611155940555381705698062680728699266126394414000688958702164776219169094876609197120440490569891135100970105723195033917141236331272164377302760952506310366633516597874754014497587437010066215526067673840285800908332249059984556824846549016267986971681458870675105392218478057835966344852781872526391877470595933167236563905107185515600295140487638265349566890863748833891347548277847900793956777830996464713169562757718335265955397978722643849598657879912626518693811894812387945929616336220893746524920188229204734894952692757244844315675888494146754219648946774705860719869256828244338338763343573277438945433920166005603951777226989251300866076758914305074137326468532479627995529136193050422291614277649979641009869938447222852614960533887904253491445179891183492091501354229592413355423740893728352631150399716462130141745869825712705420962802003498768802158950291853040621642255935852661731458029306506518806994110012669934187472144633025049348792114965066302675528521002138750072183657134695637756098749602443250629050759196488758641352244472400924246559105603923866105926014126521322799609284308964587034132919858012353929440423464143410401088511146895945492869771375006562836104967968312107690471637642346836996694283573697361406546131701664597800409565572169208624394463599689517785545298466482927188841068393396811322684144824301394012017385845838728555731792149437623302285517736613049448189907448645296190224435995484599438995415188148895786467671679389234419567947552374224196758481500863140133271778938465751209019199916179570930079561758613015530904648711719583998838784723655809775866866386180996819452701722852267459089708494218169356012572604276520565898820355333005334221462037517497694804631282883203353348579175880517161834716675763883271711736031102074995147151144733723628820872862877401568230003302822424336591153032725561241672655202352505652468660772578359239185316698662479861167743299932577911132005592708419117514073331652128282472097362675679675386760997000001492065316031128895037971541647924881463426798402896014359741121362974084366111824004897896314284257823658880501106129798827736374076365523111379948286092638532188444538990292148588330836769804976461627536785274351203468361863352867693787326254657675546501433392805691474939664860614900142675895131582665142323328145489566801681999689855755062539931914789962205964308943022522654216232306054304497372367254127483272262743255190101488934852787138461064639585381065337554342868668533930157417227243565677364259140318012625719314715822188449516073280526909116073445882555710245203849359489981126839995870607261239593517414143300028547433424319017768716808140146980118402742226821968477196888971066161472269286934936132943451405454390032794008232454347060793370845922015543673089980691154290883734417815976890055632606021305112375533444808061723868956643804652881878596565435341480190389356450198284035288543003633156948756466078976278875538495877768527967187655247392591221935946121450106528181407251165029803767788162550471144620151245184772257703529380287866680063517052356143801953789131909632458533768610485010273470805896950095864436308286902389868603744308658497736340317790382483027413971504498458431901072395371278406070648352844905863369837180050997991558324839379505402068286732446710582760515617486973904178499314448815794775143080833525046623335056230157390744359194734660760384643900490173313736587866492955135172647491233669729528067234181015324451041022475988406274022548589872529761063492824022799511578205586360166898841368627761485142241096143062142243731106625862542147282169082929372818836342751784832874540588835216096846178081871848816476413006495809221558629440280428761851313388949925268254325163639479455391346957888422981300111283783494426667891718496299193852159153917531297631185698377256169000234228475406298965746509226286686658543097929868744827777580571036203549498464233363018354824033716068303836213216840747346169418558774160458706790055687473535633797966568253153695396974473679366159874701732809300376252378216376168109321165206036352101683930435430244131081091224885770471725922760871389774980600533959767642790798557779307438897294551691158496957458393694882135590508042467522621684394312305053132637489540075779365258056905715574772702971115059045464160921337644766350743711158696854650580499487564107672771788277516297997427311904430196446933579810970472283090101230980350760274617238418129232490102800415465263429261700322177806219004546014318734280029018953535557229592847190335030462302300420828818922508528623023018440245987906935068921794340311416364149364824222921766397016708176505191196978474612392204667956436685850068046795940859678894872701465919499865106915058660056885701203606606449657217331808666760951259998653530877711625062330186910226862098512964244387480147885986549616407562065581222740428270708695237525669704016853816006665847058765521511520322560909600980417923041516076836361984297038775349160870535424313940889812665723780712909904075271219823039151610559177989801207404995660600504932775573867746201608634986169842615829713139631688263168674105453551339850994257522154699887975867789952672671540996300820499382662014766028156743945185626175100473292184201971495333770142966809481059100645748499514601914770475956728557026170825807598476805360756103532959948281888972341336927994273073081852467435276223854724288623100966885405341463206114904948213473894836861593269945162586983281705956950693718034339489522305310515099058625391333574809356664966600179682473204983932929799900041718753302969280733156730480108178088419291872567613793276170108311315036675674283482824482541588373610061425102246189246539777841166266082105523474692886101587371915404386827376282277859398129024311106458062479499387378732813262878092060809260118144361955435414304216230731644113793937494130110267472828903190567546269399006818602942228204529561945260027760904020519954082195831097149921154083154127398612991440890106640558355640381954832739065378286720366188247710368572098941134766926768106847586551975853409856819710416141604203889187452151831190876044732046652618383557513366242078794859691091589091027433458064753008194203775896112314788166444953638269021513953742258749761728763208162940073894160745255083130635539992416268474446331872345813539089182266288728101875687820462375126205520063590065927518144350562840566383934430697529475774143325841702419978792307400728267213119479906670738402601913281983526900666357969230639910023324204579126891952131529518705625047464598308261457013583791791618211372635210630286114428916868514627059586350967376288638988611869282856366782595350285698097052992282044594188536502196985559902257289101314257904799871665853913657304341310383431796598058043305970969223257357352546096981744520420161841373515859753260256342615601748397032591287017504500829018485660144985840410459103081471706419671702268112050698767331470720034281446701071797771033139697373059481916574081380855031649206716092336284584243966041807429043569036752126142635922612934639767734499637303528400522980763329758221002220691868620493882907201946509608585930560193681273839206177130128136514783930506558105682842080579065550946929601273244486827590231038624844788391270870873010177527192596894174913738979928111768888538889189771782217663388170540493276976112408951770943534141438278847903778775726736443463733376756332195471506517068552378882128511826536834191450721795372996693026364211975098036863614367990399716976245194291917375113290269938814345229780438455394693549127430882942714293037091539861579072281933678544003244203911516735109498445970373135051831102859235551941169892853069939641124638933239875463426376647613248012480757772613675511397671199982831728737321838967382614117559729925683256687686204556512183750712791986335375587710761892712249301066514190614644771949919078766386096638136199678898861182697717717715869951746371395533772060995277387831371809778228880904109143252846445060925607533632718425805032772906409711618977272884912170059748599965931141913650011441953298921222601332975294035078109208949332294245805646645491622767293361092903950993064180928956945276438086860563407056834996202952340466997075297764138743742732615281149487466118159150500163179330022921409983905574160567538703471577859890680613895104319074330092193171722378540743088463499095356023430921498314889511802307567396718862867684203693620721073488738782266174310297274221850306871954051466948617908149634541362807424295760458005426169076445951581097904424624660293350623912816077858841346151465772895277510194020355039313044872402565250129279597796861784382706634252262624100473504175523678025188948712239026528197202013831374474124204091961119981946309139072129386538528090354160594039265727976315660543162971923259765779002556214514008296558581762054607343787071171742354979059081972450639184489211953490590005135748202434143522574631969936273884082324441022256790437864278868394046877517590989494174770181973076112848154472624699358704562900350846264345412287520207378708463880738800893116204619125427114343053545221295804316024542312017057903553095998404481668629432210134011663556432724253057633480651163626455189863837295390672376848177765730011834208490745092576399572485631170698055010724980707913011954466384330902261362298156130114808398027899047611137287402828490272649870249565223306288725338284225352423316236985562124199164351364996566282082715973838645771627903854294029694808098239264302318175170330632688206591428150488503120731800930759669364387002182763762271785572524173153039591292015278292299943454456878660915179381964386608234371567605346602953696765968450923654080535570338901245290884381209701544314613260876612014234093338487235332300810951421413256184257639671073440221872466793503251061281383725364464245557038126405063192609723744596305859139408025091368480052006016944135947587020890086051645724443041648103892482944394273761780053788414037603865706107776222017137717937112436319392205340519214774643251921607059075293240628706890144521476614614891874299325304667502896835602037360580774658179125920185595539038209709600115080468210529107867813865920100888905426418655728734990657360840795105116251782703094224417017741520906426508117627104631788086655770660119105182886301718921161637401356651359849105605312401425387466474786885487551576252027278266321754653615187938319417428832084449657074255993709075469127089942235373009319593886570476880315325281761819603943339161780790436541432138501028321617498093831608270583283468580305993481255917667172095845310300079547693353280382347131385935370505896615837191018917889898804554153890590844803437317240950289738135893957923147822723651704850885600794405568775880498962054199006240727956488918198246619672767205154416020744808591812248151225750037496086323095849923309321410537302176539443989405687265094674430924489829112625820078012183374988224794450817838840999845236858463443874399936061823771769536185253370722695040133227085018102712213832691562810095626602312060857179114974460959707670343426084651846945380706370033224140239320152172558128396282077739086592037265488718244250382442158369966241795820541379720205010307565371926967942682586319074055512842695915331842820922850956882134554092787770487015333504754930402298460120297363503751410274219884095530780192173475649394483274702024056536670540884193596229435801864956294908316454251889879737917419336478981514587841431844116784337584734850847865163354811790338387490492311410893461793981540453545676811164588798817967237396391786342421790190982995458036563713565251430422111318533338685756914293890137728571931381732882335969941442070841902328476879504174798698804933659865833639561463305344872106233892201426844381766318133006658766240423532836787546513056012982947676276217887659074551080488892329306762829943794837605161071225368144572280582354638476855855507195364469525363746564211789166561510231900355161200062657994679804298162043934207358252561709785256591413149144623172125292423167548882838038971432157357530619358537993676741650816563816776394873531197765029195943466457510850756677158132853634627674422169496191805622881380658115750910391034183120632743870126214035346780416845137717893693734771723763853146593570016477839827861124273545848568263721939441578848351179334436760823279182666529717545560147390521300576149647095028458580131489148020350313328623496669921590600183832164118415880300262584992824342428902327245475040829678759839864198913187969828192922465614208728000360955296855765213228339424410717767209672750942845012353812554354890768729243492064160814168682224343031045205820247646979888163946398634176026644121083617499316870295426197544968037788876700028387990461007638360306966712237949246448208520434690711516392335693369147861730258573507490885349044003132112415455796270885581638387751955753896117579497460274832541684415637523046115460295180398247529607134126766782925035187201743498062207443126285398084978934433748980281104206803516976739897670464261745209157864884677219782483950415036691129972643924411412561706014984532292025809430974508426557727035548165119938110352182198962850207684195764683985241496988651123930081415563059242415274760649107561942389763458908740631566305086576781563510184057620787993123803198881215427961489518321416003279358491771136590378713263882473147699985387963679456126864004869026268993782090402717703060024380301580358181695036758260962521727512091729646222110598353703697204627785134850780736745829798668320851828974687387814620557092122464916200532898908309106478035831714132939017145781247494675931488527135583312654879417217601963590157894203125835482993256618727453029571195073406607225956088166706613998816507063909247240307852229856761655847899977264291953250161865454585661985724906891836095896585825246428531869961208357989953610092579215272412885378683297075868415975372980470572930979038035949383606027177297423460057859927007918737376914787773790185435627326671215181737066790151835769095343211616854370567642326254782708485565233685287679261241519296452703897390882688991309945155824952192193875888754393842645113591238035463462731461766036805537266131719375192701869370230298353358629698915506887835823924216408717078511608175944812742352062848207220333606475381368522046726751607409670600505395767216461122272674610142280598608948413520011659285156522700412254034382114827453310629444910371333501371261296659208275673998370563169905249600143910077551692084658104586039642039865183857478675876718774960221160132737329881255632669004402685956888739749975055923141401304395761245627629638040498173288200269666277048902538594936806257402207463557304799427415663090477988388886073711775936534791665816388985299863959629258781662872193374220246260006553885336020548021620793161363448898304243085150102977479088255362741572087926729376878867189598783566369742904569874574858593742035756000868801467367143144487367765519763354207483131976974853221293082416302715717778384129652813406414922533601093894867071729245633459216329544568469744472167698400047607154188042707214823114340754287411897662803060727071931637092732268525860573990195655364351639860657008750707812093627031634106932457321117043902471927623224736817886266147411023485181339849148996906933790217394372898441078567075802101037014836485681920125611217477656035533871323226332457472835841794396248460382958634859645891465232816606701560083472830991257225383846429567191312322995041228695436940562393360419262915122383604720960453929541283155804793400929499906434767066400303716658612944218507125603664812164890019223907680676571084578097841828702720536870519520685022337405485989506564860419908243915768511858049530631073272884333425669915587939029438333357593496456420601035415260222079671185410841098711620773221627122229751791946429176881634944464785994141730439314521069033571130218496689388114757011253564081472936109439753708064633008300449914811300044132068564289317717556539518407788293920581683130689660392275476753522394498369916424829498502408921069576467755028960699456987949191153526752940704285692026983485522273424010492421994774261987282192113467403798240154835507042979421941101716814784347698240012650491971858959266697401036249973118496149768717303944450732120517581543778664732590419695820400153721664865892256187105710715459243000880351960562094736957606497807565205930521031496783907522631388350855046690829083117907070696923372577034059619110800377188560051611191190240784463802839444197990897374862607500279209379465031154601943253430985740871373540163458173661255851499763806957179731590641512647750586772973633281108241162651509829305238481642570901774490351223849089856437948989136384196613801761610271847999530575144092751088647323495039727152295131561764176303655498481258656579785690473817823643328809519325305289372446916644176729902507287770829611588206688966915099871703322047532038590366486394192348664387504759021224842385117588282261195870791029068230231156054747525310037729963338088849269346800000032520960797003380860890564645603075579635723773997488533179318216522502502748639553558367280345846025160353392090029427131571431783758825489051425210946458795768131268905508162293988318195030942762396331052469222128757691781822316015918893767179081537855542498396665371411098481982849487508440757555124529329908275358000754526638391275345939239037719661570448839608580318202868965622060330137046473090043567628987409462021319903994186066094272173608943147341304109141208087102218983347629580557048591022079482623381864148058353042978458515703272215886788107790413523994084828820768403619857076782778493111321817926791933106295385565487633750767124096945358304011171444281572003924733512491950823264376929055326721961707092050245194457604519987600824156791273811371801437425748732638071314305594204291865950540047589484212202509478919623553834221935130024651675020054493836262699925739696663625676755506593998087444659459887659564429316506577202232636998463710291397371224705785390891424371881041710767624576708494065229479787327984701494494539984444749239709511843100942417031840821874901260836728693040731483680631856972984019288952347203612389886567396469762551981400005034741221918779382172655936392761414893086706487987381257586284770334426218277308863975627010616093215538097266851330843943336519518162538895815997248352038126994666962568261996609047674096726981974042320441817273693696204611581003958187168774640046695797554271507907606460834462779800392472856607214831444641046010443542170054794535465006038961680600715997692220320785517940317234321756692855880722039920150712890503903951541027796929746361290997106436046918526488207838450514822627284346111954906553600403955962443987344127789346011027503292309515612461300993800549190405762593523723283348557838627611729954725961315457914767539735028343294909196080317987046432185333328162734020847836567237787101588077373680569239141529951793804819372989770605287224436082822793984653151534197361130757088003812845698923824315680021102778143871997087945319049393634179313919372953385656953785568494031854922876670969062284405693234989449323413056374204432111969992721411114053294565083259522801194513452508921076007087784826262669994264015321162775641555208645460162277731095129249143260069539681808971131383075926732138838449154482777353708560282560638332501360540717499613352896129114515097439502820265719647916614129281170187973152405818044386388268022692201702238798607126008627162550627635850585171123044870148263591037151233142620442495354012998402878527523389809174986054944020904968995918075822079941326684858428147792930205014193526959300401617701160951562771333167013932026308167651799484883037054756181170433990766191494115279893131879393548611571154902766978424156505371722017417320254208617668542173336777250148198347722271552366301286313931133752739233104422997972449328345253637988508170301346152778281798374373482903768150278054266282705636162815801742041581149605360578578293657807819403722495092389607796245384188028860392475854269598222172671891665577771747716460703571727428357585920301478521494396605479892545090794206800765189841852161107220262589431006959990135110498499823507415399627955844192388335377118273215630650403749211746819052527221944892165104572198471578795803464361390017295798038389958081153161143706581936454190342628532810482833456898370128228031875208952207955931671470533285711047729010023829973360856425579526976004339654767630070316358002361635445734573972682856061237188569855353655135987445238172043051942749055361601868832162282146467602013380965267088097841772071634190127682150908479927929663419906597589895623127477650648455394447665241181557781004682999614861390617663063483246049527598572874787251035782553419650040762969621211875592231487176606275145124350949937416370710758316125129459205502426098458601684507665753523708592743710556263384792829840186201502246980714556065249948131691987514891344533929983279573610660940466774817473356471748444814840408561274098452874642878179011739544997201409717270327109075685371829915023322915285824871027718328382434810369396412592357690179808510222657786996225764457399188044195356126785735495256593435289941017492217138547194408779599418972361892070118301501005498466204789331390583142169527270048612256919423859423924283461812559532377756095083350330325916557098374178509870822880832346862875359255544323668273256750953753004837194111589427509577513185743536069537842476621921672023641360068135660766827533989215090477370506462356886346473422762689484117062509376501960950388929136627892126418356582766792693606856955422546787147954633309264062390040633558222720403953252699267737714667890467983715943003552534057149927223243361529076602508430924573786557853868737033061907832700657387120525677071956718613845560894690734948006977539698788771691983625079988496320224169247171119164898401525767110828371479646866250210148309825146040834672352192755989833415551161089858768384592233660270183545974215255561887688052816568852475583098613198274783835846469800121452284216536218703918548558883319986310268737039812758282644963089869432004337553532007865291994141939255815479667699063977956753719318388125836807665517899865510906762256856633885808633917838237704181362555331788727172510649784488097698179248978981204229038944199071462154773174961601682511573954598028590390779819416485594494856333839609175598850726793489868006181698320633117122480875993899810704133798507135683568313125137601675827772772764506699327684336806588550534274057809802866562471088954458194203730287112300187531842955293319222988358033295117565334074736070793707758234528369345544476224300187738350840270794040965972180682958281265364198576982196649439256850650663366825857341493078040674223238362064760386558526716920355750927326756440168885269643426540634819191599280347524766850821107341066027280763164574071640845949302520728977752975643948418246121342611294633204292070129103504267326689824178970192434237347044626567538372110744387963966855996680488544855150771743539431705192149199293483290797190512478993109304400767015350438604910606423208805285127195851802709890651586588102786916598930084906361590257805037478411803223126534888169740542266068678035418852222512118864705506754367090263546530886307436962228039239701249613059872589272178292026740173922057369082621425857131482873622015703114378930053692475742301876953731332687444891427821096796704735157952339878135632452501267486625441368002589229743755994419130073057903751465785554542305303445806583248907023927258105449968740024402294472994509820314425969547223887912753785174737015046018332983793291092255487479739233222256933439209113856946191955128138085283367253429191899857954481508856036648011552017007981395883498153821588564541160668635479247034199006520756327909373607019109857674007326523588879094060699008846977788633658968787003611118924984395132881375645472661203935660931623359997841331600607577023314843514829057666310430151210525311017783232746698788203808748668889554117073190112855950725615972064615561944262148105986873511708478969979236177884312847806751813468748353922308120049786450389094553675695307840347363003103964530754526186400209491271256631435964757530117193946844180397125317849257827132087887347468781820066175958028975761815554171667187765653334866595068751835972495181862412492451536020659294701494631044304514080347664624408257460562565844841638842580452562142378113101647708395813813108850172574105095650689554646279698636226815859215338429872847425577804966030975384781106222555856823583504462664134960607325958980296513823863616212337168892306072886136853572238107153579865444808480922758765059849548000768438594732057502982728599596289894513560144848808183709858552886617304604233914990624853025571614632706641692748121956038819969120729472170161058675918583579482342551624807755028973975690562298513748367150639375821124417392510242668584634705922763564957840414789673339317266516090194288178890734834272181570131572427537989596962853078499498253081973483325133112264081793393974162628200105641838996712889388227888569625643826488598245028353421613497830404284157346786341067399323082046849320721188635754256599861543593292362555419215983610078486868674967738829951764712971788799235399391736516794688803848926486206504763517141272725827873177265382424549319987003168675929000610041709696364945122441470891305317113857566903325010815476881386489823726326920802379229620717159262735900766985462972306385222535394293410780016578445203729311450508020342944835931089858994738536338237058110341654656102452629704701300891704320567231978920718974610537236979067904916811916850296822211073379944204244605441154531397817767521426040508776111572027779620392811473486693675002850445471010593685803640647724754301276628816330591334476208504400112180649231319400881742502272370501275431312888807220983651475919573484605704966670159984050544764937235506497590308340970334722773886335342822244506584808433396401783965787114916986313950607325385987126382508339242172261484667094271676036314237329625946839593678126384990423944956635136780600525660936015331633894341964295790638375001364802164970540064635219575004795570140491530721595849108275351958519574845644624439662340943597859931959631252743376017748523241650230026600980106592505318856687913532063547200762045747693749828284876418687632015400965903069403554706622268258760414194506297972689430992953003554397713585500137295428570242654284236099308862438582946164077283383612663118697438768787096128685872217192345276584774947683743376229777523746490127682474618261267723083834754344246136930304330789538313432187244521875725564708413394812021292037359743695998245826669510188986298368668764968292290738560169367051538187940813549229170475682694486684138214524294865772172743199192140315512858215582256233566905163934324391586425458891820805465909464786959476725334271223322840164902594568345462159663551620330856374416220433838492614481551798427424388456287903448098217366646087952265683507196902802903840532783221191916872450686268898139701590021745257234439419974703626197322701484763964181754549198125742117231642309930995322915977268745599862521830356184393075615021228083714478229995452079226127886500488020492963796902971112063826432279818238897347936973887951957378432371559307452754749178847168010199624718584938018140273066052781652769585047519110756063497956104351531246760071400699459786499351652172866430336623394080041881017522563869414260351965536566810302928501074971216001605142405257938787835725279722401886439598745928092872161078694460923876884768547671846557400770136922540174770543036252694565004469698879236237327665112175039477734357289622905674558562641178451283804650483237172090463963731707229635856064854208133511478030970453348460904235524591259600328562050646261612836012412270154710724041081599861498993759053870184574538654130570705740360267519398599857722626481925086893236987727853606052453876222097775272736202556029437517418643836046504428405210895467786516041741547632213531483065897648589660299816418841462796999917943384139323814641255889580282856400521829502672214196920148295437848047596312313545901104724161712311573624810484951352334880472438350347609081938179016456793240900623041357292084446303714632530183539041157070528658310767416519934323393693923283460190942772185578959701565469456025509085137469674777065335532121165551316881488149464565136668062386879781953173109806920132856957634186535774874566424012033333834860054348702849574131065626814103693957240491192335915974819980718993033929594025266000090926277958743177712234080597698741175865246528330819600488307118433092075471764630632011034875058721566606864437988551089072353531699033752823225278618949388263442490560241117858990466583160763844221862219944874787522799252599069954974831895497864940978660705457303311498054850282208667900587832657008802775230713609578523107579066833654566098206234624817347979617084808328075816754734514745411761530131155466545189218157393099179756616025953561083289140162830215059112330094438413400215688419479941597305131079812406490458539662983491277334531714524987975976616940359717719324163419649049233907915790737346464560794217810788898078082176317749536907698273050930886384513291617218852742433650697561095581802710367675735748217314353370899392259692591198990763874684006548413581071135820539155317373160547020229861172128868319879468719019441078298584932120417348340487405377683771435412889363293335877999452187461722367718673803966369594327590295069454400861301471635208704422429666830863001033711448067470393911042315058414436529915682322114556454714896696044924162764521778461984038522297395899567343075375177944581099585892473102076486863173032578416957558986969076409726440259113991625663083817790723888809167301251981259297152345126449111173239264504799405164846004967861421796841211889493640490603034948473406016723701298995924552647557404172645156299099649644270151600201479237918425976750034341197301569807961567465449021372560541504951600078870227422431776368161190004965520547561836938484839094720099498749740846642387846301562209700103645440950079491337430647093591083702922620064548031980387147723172197440320890038795018749321139400523555523695074654774219042179481400700237412019183376106846041165866882512952392615055449208444663539964793990690316446140207217395944071355681647237380744311949015104746888028556760054435768747693339651477355233322981870059838316822449053430020987291250483439632729312628824365398389072404101788078006487951528936499725373666202038120976523223709546921327816998097306808319162389148258479627386247850101022577116437462401746113193313938435941698572983554782399102284707979492984948307277803806432825698709011720138887556869584735516748095766338469825202541117455679007869343195599504831552110110614161365664418039535639479649239476386284329596033994593110605043098390308024772223290554909211773496264517730245464800332260697526412409804490627002164015096674257544396170751000232942777598481209849356543926763056645530470605087228973838170460136070322781260574677145703633229732921039146767998087835183041242907070711417947667966204439647190546205940062596926263237161475156794605839252828960533965224409634445060142528105650131006332642210934659351627835199010360457171660422212280931614368673758513827415997079529893629288289033642321523631855494049307743919488576617467041008061481277513241057794640683751281686820448409356546168525838427432081157770032064726356638409108867515828851280974495659779465197462577168397981333796423657098754516292248654998840101150319387106699964043166704907153172868071890870863003917632566278564999980684615313174659191827160703918686136609645375559670399410806170584043936474119548875039781229341768815442719805024895929481396638798810910226408617638632710165437385911044994457740752331021121498676808881735571773415134033050101969003877319923800793171854418553025007045703759811865642702461019567935333322469579716102802433058600943081568632959578771857011612920932205068441906242342261751915970066625396988436398524470166351377468618225012355125043308649718509942689342753110331962286067560667302221888324197403445375531483103874798440600659996180035338305575078895416018997976688846507161416843096137704788004653077744913212078864333747577695337307254937452116432028129998822164552387698123596421508552978655643477554805602817249641803335158185705730066309205089623296263140117214134392060740829329478406089193247715994866467099781831589677038287445639412508813281270959391183176438776204581427058951782330908006477132768727033349835889540392458421484962753901596514806555858780946548990524866357141710825116589918607890415764756210443389870706042119102999751437828030014472596678407568192203492223342060621684625839951507712446046504613965152807164271217837092970679480724569668182432060825080597847721603741457687511349965823841309785252239850312181994726229079169541906307739636315285028807218994115884204166984935041607048901564619158992395328076329327228050007549562099073333440661893292212377882867141047908728076915818594893406959749172760314583864192991054540780054940177734815741546656559289461308536132375969712614655850440287488996605095660285851378789324182738363789643778031627531436706476545384137631446719279695878154845135687606716576039973758114489099415813402116466616809792950559573994861739986373777394440147420107529338676793039906172105875999193332826235554271831237335086133454418151184016542539289454943252100573268024723284908162783620857709715886807961642136379045547927762412520422407016971637853772033019214147383280042719205670075018004727059891048197511240661648614331510288832557136915397454939387559211781483884415404981188829963663906443882537270340912550900419011331424737830454643119850047031298556824085428656005344127749660861501472533039281326268419883594748537957376042426180755152204598041423853891039019289947676370398453239012114861608375973887585810039804207571270383816112591540166521496855633137090040778204457944731690451970241593341661844479627473647742962185574646702658231336876717073578976581580996769330849337353241562487379930809787539215361368580411261337698904024317892177638678493378997564319575301940905591517314604257109888471899391417569650223331024202342899668299534688139212689748354439630060850833114218732557921119966256524972597174625562881470793377754780046869533697233494815794459352652363675043059325687626846070647194143033297425832900673577054674404301729442482555737117349921634403599032121851142326502506440920890902123313304855374823435493004577665005149582180954163831106623694356500822924620980941054824061177157902299588901600383862565946038390604545723388021899194602819340532528395122763720693263114654831119285312467677431698535042952348470552232408943625475994870317657654929745085546963755656868865613725015524609946514387511915039309882615692918641731057322969539096474844610565811413622185647082169397029455330640405598947381644581446233344051037796450673737803410460830959997886583291497733516095271529365804211746118589579322590443030995908165110785798341492003104870870511942068058713421411096891389546373289950893201023464209706598631369091709295262251742384169085162686945072763594559425700356759492964911020974490026073258685280255449705378647818505246527404156060587608547825091175464573413911947497619721251281382256826653710077293121486771083794239323067360024824475967061845408116960553422605657416695428929355813954124878484925286751764092581180103630115455324043114832723137976837741103429096194510661445344003581810519520531929937357836413969395888721562230995698637328840857690706009681991887377777378684823976167259886342573227620058623013008435415447084942156964714344040503906306838109021062515249344829946508501677079026193273787068746959868883122962676544903024884122948001395934782133908452712891001882952609183212263509869143165774825170637621839710947596154090079261584474700675036289986193248269973689545879795364403504161334777004227509219767060460091144239678384705623305537954939435882325534957609593702839645582067512781980847731426390346269718462905383480363664691085918192225952826798936130170919484693425790782227018571314730912145713090742005978061911185768002203347281742769340039022257282488021012305539429919125712927066568895825044300003819137420323376201458090530198525405877596835631838876582905815361312250311698258035669552691257589998958089709065666902478037030436632584878779039324164091784426981422480610041679080834410333560128987930031796649207890348355760873599566518503429021425573170290420682019461416570948340137545621570153786937150085802894046004662876044232615396489352717931550575717399280214396369147123858347180260847707611498021900667836806534001826538791193206470485900246826401503828596638417642927332651025206333604854442620893329258650645802986558513897253518819420109496258476800097156540070894984235772373338121427588390827474492183162205379398643403266191216459667893868528618267668809450717328733152278580858580096236113628185406946960623167505703737456545299225471879940196424837152489142745286791781954749151846517500889874070379680937696022836200845377738769479560653009998750958574205750104426999395420591834469160551150357375680656455617398983606169536773487214869921181187728495044875773045781680864233871116007043093218500114808122422339290829139632020973355420743280546857717055247889357583129657499209832839370889543447196655298761046211121714632889923837236156466805422289210948956911845373882566375194103288634380016579090373549119101646966644688352595476206710595969375956219695306727586551189343895796721924367058981134960396960516005524784362828273946632715365483533130919359226235541292546897164041330449674202728072099031680289503983618212942793732265801761424095334784741699277252600022471508378865391779175756649219594743346224835354192704766482114558231775562194486407103968629448113413666230392734797172642171471914144813516688507390968907274228725791302290776593639757963659901788214289991823788095837601841707883472329562069869635404243924085529244707325823037804099989699214684353567014033757116313727663193373729202591125033133712106295352406461973325485196281572598852511791590808256819436760844013089938003097439613543019775524401569514028758874188545390209081253592777753526962905083033463849554017159760714858201255846181816651072095786901018575139631475250417365909700136017483128946764408990241514042979851555091737325424921079251808308952434681946207922069834142052628870244320848500249888200893862817510685762943225309362944988219228333517957484978653222725479707234567410105229860555020868749180900716171347367506335404436350520835053631722190481227153476235076849652881141555810895970923332621821974748284545182803972295945939209551299868612422334287036894573687558797204175342314232087260557996348581849667399720844453847620279956108914579037456597268986230002365639088943076897980768399711792002258064235511636053346014241943049195444912926095948779915817354306654858377165968910246586202979954930137823139922137437803919660217490826996121340178390960557947565833334564565327085502209519238361854065303474538309977797962820443005203220887592535975173670144590531127681645754340101261435156085988436651620541845586952207224310120504835586128091026910481544701772059044247584113952866643183556662078451889230713300477040761933598558139916892866209443669659758507761979607503412157935675627319961231903397412592512127376941632975658669197111746409188513393611005135398428261387336294177737033925998986235790766156797155361722102208248669686365525355839944444234788546369152545478922728487786245489627201140281270768882443498980185139755589192259607377490356770197236608534251099772461308064007469766050614951032351374392654475916438181194191010363652894458408618984430327036385892531591061493947083380032097820005697248750150142787653644565058703361952829145268968143651335529738679215916546297284194699206084695527103434404186693875160047252659918663980748107935807677327696689576286423013262982700605965465444211116903489971763441395698190477354604513245188874513191257320485605391804740722309001262205733423832268838984245185789395969451410669997109642941558329627753719716052382951438475805784141550300224604560970837626041609019048911754834123495323484023538861896588942535234153317783067904451414084206027877960651036842113231363356958083642538924025154386164518320546409225579291613420179492028073588754134812152343253530502221496234340012687205330785535173319001294713844167664926716222660578187820199600818006186079625165266837974152683177511859012658223850654102083065147638371790521140894912893019065987119460339161859891243087469043032028283472329493020909076084696146309166761848616426063137278501162120904079669394837718087121934754821144555570027857398336768656805104302022343482179036086906908965019427734135216489726904818229874857579448495520330265839408294885487568155871252817735166781309929791629036184009391432215818407173130058399266104026232820745815846758707794535031713235517213619333841683109221385154199648613452958785471567849288599424963345328376258027915470170981790065506804457924684044261728838931616543440528188808214860281290104290916254209928867251366795847345376908406721955876650465922394892309802608575790677755203691199699274035715154198020528139363797750385750895417735330956834361928709465907770757707363248915768516225649647692539023403363763776175650542102955937673988450529198358875139959293956210761653166915654220972789603058349240616222280529370032817591221613195643612669589247551609907206620559098275914640581530879643245347545361093147850816025322995242585081719696068866424264378761947642106749949813891153551593564964918413081904422077635669947786006457644909918734891015589987678610311317944602871307622675715709622599277554585612080033373211159323996745225665385874195300902084806080533408528974999696574363505952993936926894690761561268136148682311614186127195676106157314862717566755644754520796360855897357353057415853760156835350982346768824717219717065195785812024095100484011650649991966211464635707634357306973202255919699961140377869812048805905248274850655279171115672410917512359961413318809944063024502956468614327823401914080123732925694743059169345422032368792891674086285935707844457104717376682755837339994285408307195482511336495654935907934361367920408993874639507814351970392753436840443700199451420123258656744223054434101898339230814259146506549228588443203951161941543537113689634224490874255160181424221541280684209393010124480986257467753630040278590428296768687169561447273836851511448227885745403260676057789883511575592084246896486954108667445803654110672594133874741867853540972404268276572056844366603739007949254901734362434811497736081361136697890913933522132621555495932175553495285099897865280861820698572700241864616944990150527565070393066638882915567920288553867164566393325512378568892555531496884503468503556199122013907272261645718007408289186310978926140107589510677123184348712572843836375034949415281661978784901268462986027830299041425653183832806565283896345065154621876974634079476592199995716629674720915292777632834216567172074113505246163794356208926506055633804311356948306548013400942068521466978267165518419984679505538293275669374031326062548470604412071671686029394741822049234963794355285809247213444062288864725646867688416655193947759099150202084726746620087326009755507290209231072450160427881385571768768588514674966125916904230523409515738606284635483548819265888443320030243233269586448820729328476895082293839774562978487952622028602849403957036622697189731754805081109790331958381474349197774984308090924177044437488980360666497278541902504766233995892999568713564478708174443387025579555978445280000107365748677877506126840804334840090240550798969428106639887135523495720190667239706984570896027625109872675333027726201347172925768392103505268263700390923113658357834425054638050122716605654856892388983984306917920364487288333355590502118335428873589172474591048011582062293391070212012920037684863743362904470032234879341052432320008845621233359984375866513140958260700001443234924903689464795930233251188531236307608125192921440410791949256013060722112835564290509405179020646816005680626620043043703116193050114304815445222086952282817466957123722203581622376774407003181936310101659800981414043358597877966688142729507543990169603899547791964994513319067553092797750849571430085800682242522403099329491868750447722472869647807103588375967625773195779660081720206784190516740987464970508299533918890595145311053285519885744267038855456477468077889859387550004341490029718690909678442543296852671994773020578516237000842617126649068169841963567823347842253952651562009461323322765922349464203841774316538912120051514243319726278703159070896589600351474125746750163520439431576965833162904793262305849864407818534313992884927146754226315544598408752419763784361282309233983282034109160120846346389832453595933624980222263914267842744793590415571866976247275151145770813141888422869180626434944369107364508207663556305489324362553947251178992677766056376340753246562517109222429678728238379752409540368091549209476365651512809908091403349504209300846753581912946961105951537963400488115384476615282621491139477951206432200276536349653700712253492631777661373155670749008993753148826819816840949176232546499869233612796504504762290401057959203037882913769185384725731683901878644506403277282771024137349982958800038551264545751590870707025485341352674847362704307904132918393442954337320632611620603041505415498762341233244987561829238527146536211858994014158100976319498896760835746032094021881688146137201806462351466843528708066939584514969926058081167146444793145397864778553195512194193208615239575579813268969616895618374766064231224878364046860834608285293026998836543522238538583458847473705077377360434904623116654202202482151521205615045222354712912374147130158473592925976771244015725716594525788416028006811948303932658725337620411374190656712048325385497903140498804092702244864976751972317402734790417310086229590847729660455470528461788086308513114070908792946379215698554855316655766271695876561180703860828170971172335631615701310817110027281938732021317360955395786750542560291480768594085858407379852321738107820522633040893528775412815189385633144816949565744592505879450258404383522588227720484200685187648955065045739495815974026517814995785184421304257820924575907857032526069102065375206794089530936349157277375395003692415341894316505156973108064198982135393252163675286099232242416341639830926284856678911998012842504208453111610798700464532517073208769253810615090970804183678264803504303751254385384862786265833571141470369679694082933886219987889194534488611217268767854343609361863749620380868858758213311623252719836743968594735039549644510510267206068108958233750848910277063393937207178784937330156113719204557607490993676029257656206153137004120683256347914910941304045823455105336146470458936041720562118225335168682059126023898057393856632423835925970562742365673869031537822682297955311110501919491642001150114637830934686126562027416044298862190308588041129937964383372999789523800237235341085693998374963007971190794013294033157574165059373899370995249107868088085090249583434845009262176782432355282164716912640203180366614839864578176620028077454936515812212368022606357693247490282764622473996237412595223402440852276181013210712964629609480487413781082679335695260308295046082931513480295880607162478446431422627695825876704546107910481272119066016466183916545506386143429872637982529378865787261835373686685917126388061557055273382665580070075916350566897809767226969389676537254238995719328219985103752640238029224631718244952035131961008370997684035711063286524970042414028043483722564546512782552697348392619974432828535763903578929132272621575324768609038452009226201574468469834396341016754093227619486548834978837879966556180459324949662246359704132697794760166268572173759005436604865725640139401901135728022748730118729290928153582781268412033402742196862769357556594479952846648030165282053896609808835148694502064901948738462809550453499698910956659480128232401976760001086982832268646976420078086649076783232058282024330749155062613693586503059034663381484505007119872696389151939760696349103535571209031851031160221141956504691744935551314647007929820740317143803966176076879780799338420736512109645226284525879805859736113715981031079651326534591136486953377107947737892312266525523037965733473665582172079448413022513774524869582974621572349373280747151090950496298628743526962420215546800869928034450078308293119225599788733487891045030067084261949428230667192658166791483497756548915688622154896013136967122146158184320254144737783311870394390167272956303817911158474256906372886250403355011095373122757642527822410689993546747574114163644556698763075802208878281734289884473102868574819951518565802391414797890804864713033028470519298633257529153285186201241268102849698311674754206042033606163702772323419661421795849654509902040844609022030054271111568325524477798088597035468111542187218843234611474170946987303593999720871050351358716318733783348119014966053425587554243651738048684523215135128677983335534268317157980547791679394966139344497242458494451677152806918974630873321613697340727861472922448406460273981156332361380204389832664246503774127216606670228450514017407727977514655809759163561467906392493774222472848232853512875340116557693417106538883090077752012865051216071192363200528417040095051156087355992740810138554757983403838857910898910392978872697979566500670679284234884726881002706337930379675208664700344683861388962049448674584272286311721933448891068203368264681617723573454353297358037306243760959915234954832426481019475729675981443665644608898423118090256666642085888540600425995132374350723366172472803162599818736960956028370046050235146810168374533105131063133269599548856712631242971170793614785162755841303430109811259424063546717744987145145503102730668728126922056112029789169553927965901298492855176155827618405032402429182742365201579009787454970775175519518380484620271194000562151692699009113434448833053390196452557665986103822215309012766440906136853827218959301752091986065238883339473769744672193922016412747004779578468084851905285388542632732553157896764410032372588353288029937685176054717597935836287893301378897142939309036630482890403184550792928594130050646712284369952264851908987020833455470033838879782247238404206454509303707701473740671136129668472177077098230241349064712920035536170899599023918100788066506213191735182794829642051146708866668124959721309013967626472999067631330276349659563033559217629092180003433952215567798084180832604830056412965580888381585393035161911547257404154798898510296068946749453907841894733431418160530367704880364823704998518161830383121651789941246154142316969789892781603610998329869813775463392364076681810905368432170168283956702972376131798151369436021691442848120518025456905575062846003993983767829833750565412336649035298969861150065205300361728780482848762639910770767292734307765130549650819261136374888635235454487537051528420614442949697121811473559144928110213537714391443749156932827915843800109437835097162117977105078363677615527648031979042407297057127888371086098298477039912730560962751898886337999291613865257488808097084944019337336722660986543581817629347317165545060612734265306073049214200421363957371330851356600054456816777083815612981024127459451902086770830160600140044456140382475867836593079494764026191825868282755520178634641562843149540603968019562911153574591100975013523637450051891585905625510433068395067435235256755577637957271077296332339614244416642916568329997086977212741158125788551998497588449247473933861872584899072102485086380118089344091916862191635759154109068549331196865501053471261470907021967949879214012969059242961883175524239608875012353988507422903325408601782838788350948146158823011601233388059789356428831852341982912816817226529347462328645294877967021223399116941591079306354704182684626336012995359473575691899100354058630723142773785600016217663942540302039227259827389598124588364895158904538640508993251318056116402715770334926763121713850208081794745761136485390250118546815154974235661751458483583618472951177951825138438434567547266726880374198621980124918101433329306901628782851001765245069227717879783448597735931338965369806805097524639365202956912927114718259383596120946720013470082852338247104926379197779017941283047320756210429983281235558057263164004457598226809373085988452851485352225277682582489728819433096435191380407230568584254360655157942562788159510488497715844627275222649302534904995293471367841334904553840873733448802189982702326805261546603701588311043976794332143622120860507634403176554505747166360385889491449619640964520985165291900027633529085735392569631813501438965563318943188119210921374935214699726057025056327157589830413691500895047713567736477812899996699705673069248387640869370314917620509725229343826582738340793316555613834924715645807670854974000486676032633996403907231297637933510311348869402616831798876698690736815641331838211429899622620146189828972581364578257541262893905421909697110662866376353340207544279778871664236558347890904076317666431259045142183594124528117497555622816684908486329949363403645638639587982589991330158108999798118824837522774500396942501506296509953573766931555279903707307086745603350440009956593908860144079558363069861214091164256532870242252887220447731174634767377597241456197540092302065372585396087327959087310235454738394927757743830934089459785697609131621925440076774142853177628557569578569255331618219739475638868165466054444334008797062624218091681217782949285448906402219719470965345934760907453966232566950316115522039508006270910023325906127840937485086240825762048899976750962511901043260027364413208011684644064125706253279975383485953525480339764747231514104808864800841756815391513046373523669073742347234711382718157405744414203834396339744992092891836908732965386622335362001558559311812361388690660717256467050920354975239309452862792925709915614838262218988535174277992363484706474728258027064960353747831484934515349095828248902696695355184569423688225514399352292873993721069461313360465098482315433794080616535823133671249963054529613108295836727780285743992815529413403549422358352351554183420261393491572971074358646610436128315441494384803009385021447903636473721736554866936788464438272821652065113107534174024194182979792682063047971479973427624044452822396274640958180873712914407941116828546202625638767829871405373901655567502691252995709354495683233491947200099480850537321998839932629816812419251521356406887902082778652326495224642850040293977361952448046167436509727527372525719656971320008198249152165993543371478961867589489509302331755722001973034972397502487280337365687566768414015640894856440287514568710018159596004729077408106784029040902531227372369876011599296526955289885982684632167878930987677364465045325703721804255871335845239231247265649577003893738191238532564081733320400658679246794753575049039922316713213588599595423621945190822638624952934060601636106819486242473955669653034606869777597986594309602069089417605906605327344700398997848950032237463825768104508689636374582005220060196446112346598037367999565872596907425503471145466147625617652103003791562055895083819801537862601024663039537766245075120241082176043160632175281963881714796747818188330375362865230799670056866639563259683916314617289044397217611655982756213394350875058365429401681166752328684465338203688300844927432991822184511737527665538935981922933507141219536689562883357169226151778411995084438842787242503562609735512503145196874045565154812557350446242139738389919696220164068244570076124051257247447510598192220130106728872654613039485732013587988798378549329178112924351438951433312020745489656367977067738032553282297596612532424262103102472534298052369381764929464996893411282698541964761325047300187563437460637096494454317676698941169202695828075461572955840165423758386235327051996154991951372155872423578726451369708315348061469118695503765811220151815053517121562545019497029732074173329144303846122910214255539797791061023504143998855905552767693358860353606032021013266553986532100450647184634082158207487709226865625588729635431134367479434187870774683069485276451585630428501487957059737449475104904705986909819565382947535221693635372637674174388291633831196303838009548071620977402042639972679188162164014361310748107592916864523515239828665036775414272680894185290622328427412911302475662048196994201134520241304435507042965646098323858923252928097099213826789068182222300418044302372216341407240546989397195145782783969301988876222899894001117966058437099670238365902422291099131405628617115296952708371354252552751061190330295107576069886205808268981684444654916619533831142109885075762390503279589494782111973345423224777699768499653492874440043954308266995750531071232263624320149028302623805076941599163331885461579408216665098563235812901709822659748839984833624444898119059277323705334967250900094071845610465100668016184339441624289274974656515168559167066778325011635939045694656814233249177905694321217291659586687816691550469504359576630636011549238536316841077524113385795106465755474393306413207072097465198489288484363743739705962922141719276360876656492202542993174452571621722543537757589406521282895194855813312111580985920058027733850442749346365501684670261044011905802540515199068450976936154938599802991919895130038920020198842973194624135475049474390428192438114550727486810567274174245564322759173791021142565292293517193220633882455877737242163990961305385374082876597835123354640513705320871203340941981749870402183492725070937835428826456570754064456367287216173073191031071921836056151383224383298729366807519554847922033170480071546507262423102097742462331673085155297200465445592831146342240015911392518969430903503796723502848216816949029882129245763313668233740782052068632226540034369905131152595245984738452418121939520918501733580183072844586895251196325214869709555713568463695136015797345907640824668213490420289912944914758200122621793621023133598856758918257111054707561713554412902210810630449738238146777103194810848865567915287396817104582920750241756064527889136433215791579473952892449922869319885962027293454811279325331607707140610653861507896407166676032860028168842720274599274392926807699815524625586351395953707763484281083783118584488264823317785097338359614900750627749174606783803353264571920199005922643589535599550485401428082511636769161353752894282399967807504481526483076952755693771864162635781380893079506277605821527296328321434011565864070972740132133177511860295147251563534640891084042807712613359053352926111245824927197005724851017955878376513492930155942213208811293970301869678482232666516300880069772141162484481470931973753155198542554737250508659357139502767056151769318805174284677954941403605662429828745871958683986977854471847577030151922427353241640834330933756559939699082887246011780071291315030961630778618775749226157028811007793891567793582156164076470698616037897675429227481337407897501860273876756807257306558686113702193507481807915992993327715245256204217824755623795847857198373713833675055235236474178605584124209251109335060266871102890194719682068261702524811379496986944258858055635679186599676912486933528370029569055836811286947655869301274059326657015491788818090167968406149826507136747307780005197065411968192501716425870608555989115548327178535321893758613660307010119097826548444171920319418442988920476548697981224984459615657810955261525799338228057451843677994254684907565727544200432820665386244949695741260137445571567213121198465363002513553722684169818055064889351985243618115297679217889406417909137527636620862374362277863395553234510583238438529250905505480581825925917873850172895083041585501494145109755015835195097132522507556443730097870624874855356982177549021404610417045582288859914678302764783900439477931601258638499459905656177243499542790713630341299164579122001834867883024956703505188016419308812200358129206040548060530003577507166367595636030942202594819396828123201366261290266682103949909348143234857047755909756625051289803392740969707687189794319803929344663762695473321060362921602436572689576658712536235990225813448098061398991220787883173020935555606182163486930342776975360456063417791252595890903392762117508759568816522719531692810283647282891540909071051707848801421389854867332006966848941895763478687980094456039484489961943036733911153834368442833474375082489531121970102491146192221278593083834140579581319328819500202607835392196247246481037878960914949422325553620117623586871099750455292624736991416759686196427759409251131016116738481139940316539795453369600537247102597889468029267978171734496236375337503965570338331119366650663942879279526995664099570383968472766376669643356816138129298184800778117447193582683790689594705122663791561649316787237266258965254179140448291887421637487572327754555830326455940023346848324519552209499129037024380448670933288791244110351555253970848840950287291987093159605261236985835966286549268570017823041193017674661454722241513437651917838656959189804878934821302299483595640671153865361992284797626155082823890600396189043427022292103760443194110073565036831843198435237516743978250225622594902600174614994353571423007347594453082045466413967197841790770768846530608915673910047967606665417190016751166465390953645810111291764936408589208576989398955775682091468161247038901305057636102199258362310601816392183517834973706821919146128030251041407026304534765854105876356248291838888032548681699645170404906805689250879308675156627921401219686276562443595728012938607384064725598861888746886681559359124173758329839500587776086825820607933817273105260021737379882497493982705944223106669857056953346785940914660615179314242411046348510054425017800519466455396557803374087464750488366713905113299352868851670149625703400774625052711617088444443030968659309169905205524522574459210686920032094936325531795889106912333292772459251113113082204038331120489141878714951276443233940454132609627588165606706488884150537114229317948696734737559267662552878394724895383358537084483163748571620356575773239997908216588272921292902706622900073912268745725667251379092737327326310834235344707194337213379292136789860381237712416351923562402731149133276653263789293673230530359686912701603948108158839075693093786056265166775666306989039411371850656374060743454496418400152645810584731912033152902610342370198974600374964242703512492978643034862210629995967559560541706256293582793043473164394951305950045009646217705545350204805544542883625838754434853491621759136659146036924024240967727750089225074814841072132881792280996901007858859792399825002987930744542263428087796438419313234899111200085164285821960214403608154119333353828291827295266580171395388344560374176677994994764373040654736871273570984765084397273849658858759010740659849296320522416700929855454975079700638750266525805084471000658229292420446693677430327747488884543859230616991891317913783087543304374256340266533075387478782225105028890639173658871888807424131789307841508750525429297279234853589354492708829329870080927294047317778759316473318659074070406226701762503597727895994436423590822964079563081944565264454739429909599411200860552070436127757071008830510408792234606965096422878500122129360651637047375627752624407966240487241958693426183250712292629884744594470693146746223821870134392606110048870191636531731755464451508507190001934402878517339631912564544405666045474379055707483939919803622384612655339287194298128070290196402129724947813847036290901164274707148186986135537847686278723472615346338789073721154094810644855588577640537838577217684896920244353481345696369679861361075273035070448129120685797127174962952370831415243436706204147688175566064196469798215973880195352311493991218403214800713091209494795017162029870450448815421612037409411455813519194468767626588267518943860768467664574347792756617286780503617943618826674254656814083282438279834523275393479502583035743232830572184118779391430586600523905662726466286820746981305609481410645013875389583543628011912213967941492882006867847893301696957652044755084727736444271458197814360549417408011550605260876688832432336210750159072800776700792753829119777562108557032693842118812939697229029801211605661545578822028617375723679939539778642456980783845527122992564245334541218609446171222259320220201361577671155778404630671037519502125962920706637894331813816140250579944271261365571275613134757134125651785768500968947481873952022505355269094880479479438791908876665823396187447267939716338550239750440495861775610314633824906754364945632550586031749271619784766222853348923489673486434778918970374697544949737433100617314775782690962742128009290700852437382419862906397009615896645683354476980010864454955314066805368089050536208159289254267161397578035025116667505815433074995423521041233945509436704193877450057381650772468228620431700166599089183372150670435381829320509082012807796945200575609830075831855082536511011244866389332351349420728380633712942943240473326580647915333310017030549463318790616590688200430648299511330608957392351578449301820219625789066538435988443590758676250296717519385974057894833234644909174153592912498586717464505972404456319251483658541835350927230291377863464105940568374628518534767761694639242673806850518713473090654894899466747061910661555639436799469273870799530098502600415688968268906552022424168583404376459779199214403092956862272259557241401704154632080191815360179299429987323175326009352326122748785603079558206122358527772217317981866845321193485092405579972878035252521028472476578038906578549213980075317491753853688270332692292000634682920752172862417041884423484352513849174214354431949668650864386268043392807354323217373823442973207463897967908276959467683806748627692374642383262047254577377245520792054923382944769536350504450342938520795296744758044995675926765167434277546788521393446623555114949488887131428304749877419121980383479545205676558483482964731916569684703308324277810713179639800246094700132016342659195628212623157791625673237902779508339120578397560637813881654386322165520696352246370024886699520939774499039139900591310100578392719136605546921250269358551413728907910932210641074822715265418559167267148276751643049875023136693696523511939130692136003917324205476789795617124566679366906405646657248672105315871843826254357341720516407409621232177337931614774313735678490054876908190454534063512397207038426533680086635846287874362790008082216048764056878353526893719317449075687610786439526290593773647679234426178883003133718464276086531850753491072865948842734336671994544092738887401625007143681986976157782880446298364505369011663187430469685121531204024470322535928441964407636819363461187381105817587943970587220780054051782406954794939046423223141129674686517166002842440205450247692576516619353661106113869911014844090118527578353255493184852558524048679450833974683653634197338496542200904363329595393591410720950810365617051605303142992331307077546223663583620247877834699393953184602522495165308996320644633684194175892081703363974202001741491391457319613605528717622577682569745020299452046536185767957512901423315553662700710438304132836197307094400140808493831987163784107425944324775562656041053177943045828369580671114944086474195484230693191496325597461296703231496630337155273274952954726183829996061356717417832560702577707455692740848253901904981296891853004116541201915870914916012219681362604122928696968572540537639823858919007595758262602979327180281447863553561536528305717476626743915730576630775805241898999680027054897718053813994634693588470594324686521688532931834270583300991457134045998280183966459042642939213118451047988800404734174048464520482727040575310313526932349085004009064177204932529156880913502065067629054167470715788822853895620135984569493040237946511827226654647459895116318260263347964245330649872160654035459154908588717236854833193488529342026331299888672005154166498654183806241210152200674876156447527047624263544824635269226997197999495351909954816129170159030174890943378207688790445500559677996689265221026061598056307094659736027045548601630273986359643700797732717004940159398760304782240413929110833017270987656843141007770777011210785895485289743701747180134234020383574819151788766082806062281231851241160109747205696696105747287820287125592498039194984034016819172075065949371125615678094952703283548314891993561171322305498120614553131350269947567295222385609917017000302594854241769889607872319247394785434740892774379168770979511386997091975052466585987777680019925878397915973617474414796278657723589859680331907823845803988264684408486309026748424840677368133956372027819537603476658194711701942906089635805980440271762088766382559249558772982715536051468615534632536640652501725131939227060430168937536025579401237371568514947961172619797505350086538346824245860315751830939560926325723702606852848373565327273600040423241619473375234118231815481912925290842072840669230228823600331891474871524456150975137799101129479611302892464384767038278473470119992723209129524219325905632236941979886202401545663235868621566777498824855693946147497435042515123203937560902538091765838390059473661655148189312531893035718105153435895930371029368474761706998071528153616907426190383346825387056200988879909650428008530175156479073379623041129443532852153334726262610462302876069475122654667927294844617726940613910741309625927792103417308385102290007392132096459880208472769618792827173910223545863408387169892854230278781144559144847975829007146320745557044523428093974975172650719261341275839194448571562579990782018001935717174088272015057170493987819146170616101929647967353383222099206795389921868228391941201254804320896408766827073725820216364553765556722882583859637352914617227782884360209962621119527428640960982461097997790187996338235791969762496672513535822333393400492274121081875698113227267560428425976080605161196576411610987155200492028218311180836764085720527421373014388276351442356358694960879776197131584100752329426348551128222776736274139898795192461940890546894257446713614018984934310878319457975216727789540282665537702475411944246933843727565744865470575535979392671069751936923839121139510206325608761403115734356966159047184698457282920229648668739922931666199528221897322318698592019590394294153018461929372341647428272706390235150744054183995684543631319300955898880779976348758010913599572664151064125131920742371484681773847008199269497541350295578488582503401975839626938228937892650427634858330792151265949236002389675893691712779356940977859127589240100345530015731385890714953941258277747445437661055531245590744066234659679360038840061202012512842620431335181408698811358761251053053180824009692312028549806357969520691511894992869496782578720556392261539979284385724149077654333108657169043421600851240328869325224881622385543743536053618974775200724548476714906162264322691205642274119892321795455746641029186285987059120397334431606493269620790945107430989424582398070474199599846559039218822139045662468910238493594811623868802172880377174139783911756793033623177733144632179172162175973674679798939690521206863003934074072878277118574574443185083057013614273449965852150051126986724985041060249730070301746327774207561303837094577603812351782212707642158238302014112012868570038718508392012770454984115043073066626829034339741415857396917977092931281312546212867851136373338066053762222455865586710877205739346440634313476772570510445397839984490216099207581803083915240304040590992269360269646030538916356571973790411857967928950886753796359607765587478845698819857269319504550051006365592088139953434638039484989751117383886961639910718560057514983205720069649193718053105729444866711457562531188332260192428454075772295029413741238290598744559081676058525943433200358498142884855782156509746669942659084000104979782717531510006728127987158269829877059366547709086479126104208064288041686332733657881927127858555064708949160304472779886851757936266653621881662156020806227271063630025496504441543935028427290908223174589786828387148374817836090781620190968399805613995554131894997470553652735761088314323605209592510241674023633106832256563396015420703911648393646781907754781588411353525772734389161240902984694352002704116321339430358085425655318499156654930117494882281550837203502351329463027781001375651761963916810953963926139819100884586382787149906280967740855740483121848218136761571011339886711371599774215270762356813775531529420277282630272755851998535158059459666897964577985824374480529160569483635498090848082100052232177479629076934293068080134602095621128286109030177297098367945873059944132915552683847999033230010980589545669940685010080753788524690991905676174703597493796489497019015165440335802988585145611795333200732756034379410820049600743767498825437435868834580326604084647595162690354996300697347426267926492468940553809475792922105209717551191529798551233072179249813035028661196749864723480215853056012448008218538550618449367732631920645312881349774091157989547995790390726430495321997975864581974897089824513138492083505448711406808053830388939884440740970690912341006266522637279739408875253920555076339359490019821732135305569201583457838340584659908433339228372835033641597628493201089359800420858736117948142895341498070702910153514465700429711993243666270067111752188906311753920267097718337035976444191769281861341249570814228418073677975707282057577891360897114166693891085412800080881860229555350667925491684268339821530461993500338055940296729794740586703967900597654393242922653634529184604804119410340152358646351643012969383555203496530906051445795149535924542095367521275178713597275969376693998586500173829985461063086835872274482423550846031891504568454395990190524476032535560913655765176977512958881834894495643964346143311894790344839549203062610756314719300103487392970005442336876349499243248004520810384298573275570280366380100058325567457459287014883174444585769913401389479183420273009855381182844616710218784860784165616433793310374917667060504481457372362137873253907525205463083323927067010440028336940517504056112273590403945290906661283723512150163910573548875199344015521282271725075027346831599944687128294701342771996530232808902582570933091766322739007441880687915056745846531374713838353307635116222363537361915825220533018227221498082283528049472197221210289150323314540901018765863119701697636312701564045428385346105547693960222727020454053443242025134181342367351614261219800983987464275225514905864358543575041736981596496129561479453937597189457740366016359208851042673426549276351826490695271634330104554853885371977882870175281909054678486821412408792630871766964612754878916457074370398957621736751336576151331679054646904091057010546340564896217796512008775534734944002639871590180197555672514381281522066721455244964475932687081353334664220488994255971677894860038882738746395818226705629419599182877185015031203389825578837099187436569320180356541379709949783128657738676605629506723343232085244517294399459665700424128986573911749885531195631318572463425255826987129366701300336116536801271637291831132311440737409625811855000865470283032349076467241657381003196552774793050441911832956095732314762755158799549007934845971420571562637564481420793057386323197430538111634463537679279317349677563260404821141876173703738390827514698988575792963518907399972653669121378661541429080883912771698531471462778370347056454706305487333372711302242304106445295102374754796853642567646929993418911634009662154880926305704311195858944138115696120621817809777027245587365056639240775567529667647408192600272942025812601557889234882287842088557396924185758255627403181925590663646683887227645603840004650093673675643147166281825933868055054780886835346571685627199372815006679976872306355764434490420446173103644277765700260227125119024853832555958545436074782120616614117545612819020764145095740286656903055820149510641020784379276199591980321259509690523893675987546084256188929088557516911421060821934508994932152866368040840438492861923208168124771286653801257877004860446143306491714951243079662304028159517078892329667107395843626520157071021088341640128984679316662599937020956749786950028165014241606836727031490984592235975661362944748324306670586134846988572513624564053333117296567368340672340838149082331421328133960190447982513649643682362812501712632614976950746327139957705675786666364489144935594391382549003514881407330018531928094028006139525110991263756953977737235413952365831826177189609415082071483924758154850259712934171591158129380414887149234215072808775955386133071325691700261880776026763987499610659895651005196509419546479963881736036391245292137397416847319696500494653366464375029577098953476356999940249473024579343536179033186863601668255416648681669929487193373073648434789078263515319348635717235076814423074539955087225718661418478244669082335377507936807001124379583073650061984864107874753052685878246576093118691089322833333420811467478869081810350006059541124506323048716173097388683304340214954089780357855842130890025159219263291158012971717417707578014351980065740981548043729720592441928216183047241436382205526343499478727166692587029837913044741304403311583240258737524513532314025524816903790776585457537686989473790948202539799921345005332934756659325886354944884515815507119706319935851172746728870786489174828627873413194021349845125353139837155238442991684433016282973882713970648388342165519543071837101332536973335968859288333698084849162409469404339389481283448164834874205537824485974979964139894164123114104350331173852220253262696528317261689221714748863597523336215157269439074538332908158406075712955578629771999780766460173649053263821477523644648786585018561321556332179797272906879111205257935957146042484678306583824725598719333856731249950290892546920546601688221593375312514878876971296810999072943151937457990444573307718056911596310622058551984598408263863600077129312169241696303133301499009679398399853765647359736671202215923842896024319821780126289664184662658255473138315627418009168972252061334193432530055835125397600735032241996463503564833809420759429061167101735418500108223468270303360581982014399866159155036467587904792910331808995866966068522674800118796049999496131231874472331548227349642120096378010659040495848237838931192875282607531743529180714154050615594859781993932565180403701865578794492447871463779873458324234190371618986228332906015866418226344187614379732186093235426682422396924645455301034682558728757622689348902044669942924281864600597091182098211562323249671334084218501722999012898418369894857267329388800276838576609962136821149928360102589851034584486800049032696138826594808762115258855682596951195780387365380072094644048751273581147043764018714994273252531297793839592642168724508131972268752861439591343349615366876251367887714989258998746906324858018755695234175261240958500271963726133567069387214440746775909468799271814243791667146303955344776390281902198031286595543533022390376061124524625486015069614979102631670245970190888302348133957817148771127309333855736147228692512077067176671567064729376457510822585448845037010692276089364227414329345075312111776947984652335412081310973468905330707216828016956457536601572171101196870300703856410053451955215018197899365661297287500065259361679837551328859385813254255964867873231278590808928941170163573329276365327734096707850018081977504154757859752634712485816553282329241038283920926754763874530381331066577560977019076753932398768645477263933480389343580451175358328511700762705265325186776985739625297428865524667911013810447020208513796366722596263332220351192684394791332218909606839582114706268499315273064860000043256976422101753762013929285419732882345362817591065765878005104787756600087368215803974982301168906833287441586741313916812389636447918914027704847800483810301208380856934821314494030570145756277340900767681545853011498170605441893021108695693143392310525301765185166009966199232228468101333771143458912827665797423038790518057658520798190946405435220913199794404236790005904783079170280663335886379690989950768180155956592697536801571161060884457550457083570915043573739000840860661939260834990557677536128374742547497129228003928723879126945539174168090032423188045538749481717169111748277683157350800121690359586838559318554117376431414056849592089850463622421503717188715718084559789796746829973529604746812990072775428928499423204946900155489766825307501202302804578298780773193492775594885969640638695385310419618925184509161077178176456433390428585408464894773687352364314919751266795065609085672608490267652507367983034561906139937195073715939798501034587515048077999951560219279035458028446000313834015513369246740194766545990352334762580508515469229077354829036696816460562401430755623196605936671278129697061421531804767963603686492006780968896374074436362566290827399065104444680967055476533989383416810789036904713368894054282029431162267368282054224297111170292375743811214559557863971944246411704557204714973026749200159546067654163750407041386914738025970117261024288308157259547918316215904705997991987853987369699885044100494992081447840599378708583818125081327871037537985130139237974607528101361182061509234479555141130610691753523460907763943311489833714287453937221695655135648179996574088392418058234856040317783066388570638135120888385434254193505922485575055118219687329511500881546224402570735383859616738741244372219266202371231711590675786064178187602051854197949399131433764545064708111378867978127472161060024207469034181501653968992206679129871555072100752320548053448778603247087179956225226314899754680769757746547697527657341631676675695357603952893599341154979304781085576481616250526520037380745219761053628491542395370070159274744106635588600529606147882646295403326742675291916338501756738503571737807130593106687821560653542528993431809389373769902128289757122409792218641407201891433373418110139727275928062162012434581887255510164558473824201468870409075139455928149726135906925466619365518432863658724349646278370363227763048342956397607918662184974022544338559546223117856997559275434347955511736785643299235788064073460804140796868447066579358202053834837769373747936948808321724554915714593931122631915721038261157366848637410080364706942167688869372596077332769127142483721993571212429621394162758906347883043663363922832795266731413569577888781708121813521912713388587521171659636933202193638651269631692656146535738739077938221255912645322047767796011631726891283448293401489417582133025271268573443866812823623151636764294628654000045083984131787008297949316048676520162347415958108948523892905759816040310254142652867910345956790514692127124354688187930300388548276989700868005609190854589189305688836375044837100255405823716627131174475931415143120225955123401343088417968312410653679154576510849814935910765641024677183279349523748988849066376498617464432382213591025754409720022818428946793152056693024835300380660006356485061033006747627495842486327586194639509386320437344091671333941117356916159475698445560961206377928511103175376860479180064667014462696618092233579883740512893606056922176820559726562363885566199217154902283497260360673786071439888377552701914987466334787347372533648299587254276391516299055396620170839767925358194972679305067042442506529599495100375417234622738053408155495715726672092363751131965370871186786393611971782916440568559482886629788560524898773042299792837107433867729121421889589094472283903802412230100209778239859840053320753611977037197136432210846375423120918183529221351129519365537055385147716113074428623413601446653478961694329920992406829724011235721607985787071004021475443191629962710548738748655287230546868122321120019899209002114902938688008232422029447458263707924999215534222342946679080349585685853332269052451583103557967894870109822384468316329260965245342033016255425788971257793428541039692556187953949405198108489755075029070689232442161705225200986826363701725406402322142584337117466865054875963482261937076340482609572818792696607461501456945574498691989743317415495342834429172999210658147619178264263473703812147620652205218637548964569536935152478134692637940273968235586995302418047489573894353094138388926131042135368877764828457404408991250581276231540573898234255025626275152826975924558320384656372334753045967978191969742825860295210238335229032615745633432487440929619117465797576014156253678935585009766469361891354170292743274346232153997668707661944560876716923741044819962935671350200791614163524431555115504430686808863364252062145241573114205850485029124701388635644705360964073680362020695434334876384784086132546315963843504276935643192123452223447807434814727088997344465000931750181453859442771741103568741047709257490587274901785438178827658900549511626589077694090550513916629120850695415678133297834807205603054146891192195754240213451040480998299511747897123274312961904088346887295010817649179736471713044783881555613542828955121051017702837729507596080736452572425340653209167754266375141627123641351238836279003587757119463137739962896496613722793600586024807171016065653869790109231743254720738125217378237290936005348732045422407639787707566939139819898636055994985560282896358956815035111496807023679336548834697431027972211734271151379343999151637309071555048597529995427611172168992858722745390747094711664969743663434064076760792180062817782194358116901173460095581420337545034903779943344937668397852058999337428142976690627598979966979425265988163105090005829367362990047575263371846486346655480152035500781523789126828755573936691158073696535106404543045079128212641312462869222794334144055843988365256303788382696769868096889395021117611508843356098463110967719631760849033690827890547463144042455036475812040789838611810114891278453226083124146341280207207512406024368589140580698253754630116345913267247495451590885308642255378753017918391115783615924512259925408729072359845385089231365290207367652851116219449062944309070667108633474468169453507324448545450474743156871055368868830644583872147982359815347863662039507866260881871096341457645131966245971870520893195636890112993137099913144956363193765618779289540173917627555303453035719645968087202015226001042305798611760427967380310197806495846356881815964243095062230037584163612221453343138362950687968317300655266487273101747717059108335993399658660948757382649369203573364022918195059987301253127901555912529814484280451089742739081010920800330341817913711253040858258218662719474610967016395982018181833532464378354509712898972376485287453379909268629345762391789058985223433611805413116569398535366705787384704552042710359151862501157158885577172902259593130616841289452619132508666998101852881083775052850510036263871911904716114136292200973174170574488906639773553320728581753691873708146722938746601740469086151523448823758326022822157174627312821256194152495506687296709810494037799027302822315823368350461040161986718890243307023742940134849562977884622849178894713690573121496697969286536013073413691505367352576498410850702484376719698223819283618744281333038518852196593127977157654825848733670151716533249804975038558502118043621015572973969020748911806073776498878268650944436217642689324519748978776354881703401355566994501835986264418333856894617832517622942321887627496508501528959796733349551014324230429457359202389000867964666697879911592919001647940403649159122857241183711506752565048197446134440479010016716337422665280286038990237274223787627379104312360157430343014333970486095857536195732545573971645121388944241261636439906455386184282777529841294366282207450490614084411032791095084910300287416676665912032142479822142952193255757064033487402865322403871953873572130535865733437059055666309948380222564877236949281612478343421022224678461998929508282289196676951233919895164196449921476883716286832100904703019669400612027885250655407177250407910680789562023301652280996930243868383402262402475634024603188177446101721624309108024108921259073495643829945311621723935987445426775144008989228907803394898400168526076696773617594042199189434880518205783453079647938818959033459792345430442136892378054376994600640735755913918927736049813352618781264058249712107639537484289957445796832180803309882212314353314556285982554684081096087578332615535094624468368392589043783545451443142938731601525431675278398396685685242353963026763547013852353383814393652912973336509750034529599797662424515798602492608497919044885588248034242697983578097628790718885000336655445479722544222762878309508956336998893056520562070918316640465187434382166965441364060836217197729770144577468699694968438877344101347810104087440402884726537241588473392725156193398141852430746379152308275769161359076811080890075727417840090116220890912242750945217581657669654658171753635005790287828178583389309478550025148626831007188955066206088232251174470759966755649826803439828016597730118622735452675593142341578057478747440507240092557710381266818100913672785319195445805960602925671899332990345098628118040171191547331872823856315786728828250319662914476824577451544825610072225503092176984569061151947467417134659123339217017219537669085126482199058901306440635563232886848188467978518041761791604968727034143095260659277126744348283318277944851208130225717010446154428891294771638116066539111062718275185453832368011156010398521176249041413198784606445648832652287024056873527954687039553682360090522587559042080216208715811395362077038180232551108181287512981084775823541610166602310899456877283777803926478234791640484790491097848133254740338189212871267785576456765864802719829903112710323934562250036768061802383060634445488928474593133583863903641649317298675178652933235297766749830622601141798101109334275261169566266391018676082461779928767178001981224508586508156086252364378233675195517077518074695123577132916404795723358808915860320231421453821481190448553803044147291528866274461009038387107566904209934609596291128929344334698821680248793144354980253092253842926359026527821105847251096277237956015454735460360056537103373296641500120075955364642541021984424907336007128134489104979867135486639555559536861842755928832547150561979637401604901230474830790662193194064423784403338532046300113325245421132778127700235005769167315323184834232240096808288993510534981644687912565162882318377501110787238833284982506827519799591736794998545484409173365519194180792024100534852429196853482390150262449432523335308569588266302754779880760369218610438458709371154718291184108267933069817723606445741433843716542521944127637626416911916766738371940559466905718433511997828922986530054436873589495944801364672124471962110264544370397318265516303388330455665685408656432155141803111846860018930818694530326292551435555029732352859873319908087642482847514574578800416012248080132134956979418639859878141052292128529941158117306816851853415122867187016897835447583780110645710002417973007812131161059729608002113726334049679137186361479567776733074994530702120570681597600671956506572828224209703294400688024272173906902192252997616852729890482278196193369203358230804727734652725620777376051503687702018330359978178734984198290588255439950869891963275919173622884301787652692021864314068406889111429784206002344779109021006792220920570010615608710788901743513906442777912935032680255954654110351556309513259361941597165373124150165158114782886994131204034703666575808936466117632502923833852896893449987958503737282839958261630574778071810044546398470890980701156137476049459988409881260607778690962414973333361238323377542636385094115081367903878185484235134708188537977459663524368684059354231336598773987275168192785839220552966389698220909531961136146148553847979248913196386311686012154723267671902573490119641905660600765749670316756279574609598424729767147033051500730193357487298677444852632097449962406758245046465613294375033850137854005752786658819597353266943460931802866716387161689975627555161307209613510844162110147222562465549299434372884986959693978005921501732581624286674502153999081988046719121699225909022010671661435491142325613297710931994264490397410328700509528960876681340940967225823342775013369871718634378288521501853341021457832784439253346115899489992208027395314786042238721431250689538638467311426203759883364920100320899027302219459733044887919053837361956033116438487623727024709244164618341839511934967020931061912618969099278467276719147017620938593631941278290084076736941588558277252050955725043222203770543544871802927948459427116408211524220427920382050393915459734847104447299552442381742642517331762560373633193167100469096673003419210480117649844126655314145708322718726335508413627019126830283977275292800273980040490064674388350799997062728734995446971255411088399860484113430492599701201338813785456711242734440513964013680815663667717287875610624510776507583829219209299030020724445110911703725619128102714522877715197427823640790304100062835354697988800589326083641595272334643377472362563296860352751329692388166113797289856668274504231405172108555533992819900075061350426994918156433816218733894178693245337277698858787584107340186316164471620039527675483742601035453354372457985338192058795722830024595355053148299176918377310361351866114251399079640260123911622011542352757275246423352106335053953654800473947287085675311023272470164434213918346303644653220912333729650831912087674399178545813015497801813805278485771442894481968252153788689054052447871648404234618667764649911115951561951130252761980935260722545699402135592222179146418265844194869628168254908502844132738201974916543049794196994744572583764534446980696421775269432452723181855211560265385360984890545557379212989043488848039081128468061071167301957953120088586353666211745209422446955438691802773451827503648310142102853995816810936137890178068775976040153952252149539316961607901729897070934197956179797137998685336827456691143602058932521364945698829055164446773697866410159288639074658876306148412941536751163367793547333928450147496212297580025024994377013953246728357174818356394199504822276727421222623871386842835851968531283598860318258905474083334959135410604604409700855522350580292227740698861003705752911739937139347092075487876009568550499637105488059586839126776289955870840419866041671926077392318875231118133662286768493906683838901999800644948111028086802705655433768367540688469853013098660489408763504740628652860929190634121039622346979652432993378335224848560667697732648634264714241736670199219941732176883476569639551344164143621649355118123727307195909696482877726543666961567529836092388290022797145190380695877841873950729023823458328002934656714534534038339504616882551610429659483480831712919828244734095035638323628797412589167226374771896087712531082348849260695892462984087705531680786564199469365583798836275042626046628810380236948687160372619106293697301932308132327040739685380870704919970177947220073874390101443013534984459305912891750970105817603885845719006108864479976004925550522266691319955418599402260725570858721074177914611585801728789068360355925098664717418802313827228783985186351867443491717966357991915007832398787682840031752247349332405234458669001642295339764409079142609264161017171282935169484276624391103093066492654518535967967618119012531867573403033231035550748948522820414625370604517304991918801296009511434548183109421793118548179406081238216061905172657486455581607953770491468789590868395229391205999506325257563795025641918348924935774799856135476702885508056238844620449592071268493348807460635373233081852314199914066051830657483543570941207009526327203116292359318269083246098810886133272712761141232908594031319328534249138062197181603882491273076802741313178306051490470567232401328388331805584291612699425909686448367303404617977689187835692890343111606270194313043589047588487519632821816337202039680454333596376230187914660089365600877734625796764405507029873874414610882526778845791936117987601102183185495607913907905462704943779169296686858413363004612129791183075040324658701792688783039707248298158050465703601603630604822142215804824812617443733599024758638223823783187098050866380078850265846613557492563755869244984122653984720817110911216839253442875838077737686329350878617469692436442163903106837303541296991103737076041802634891253973525256984936311099475532534426894593180818912502532394436414307873987439483584015104855212742467139922040603037456524628905371985695039299209675366707153410661865736601422057457403771427960026905054874489501300595388589797353803619202754112626198055991520578939233071270583064848558494497755538055775604465917390285605706215352803010269049292962194872992754057128702132605582814297767021502775568718601149847623317679309564717069939999326506581949731150556017489391580200716457251946784370243187062790782466771609315214802808842609720982944844108539357512955395568297005487418444531840420141000878181371684295032398359290588674836227455156165490860015740665824968614032552295154216422915931144736289079182449871703993774661892157756368946932633246970393423323525666510324300467517380899199612342379522052288411570649254641750140820119699461039780321148607962395500920028404870859310691761602468672660254083493474605937408284166741714508007881540092069153850163533866755962993113969433803971567260328361744340955069210749896044128751974882653354224543820831707613508935778560029784394677952686133327584448278511708514109916122136015006132611065506906636544108536283142198076943589358690875766541171523965259750305705232996161278491692611286697296848023427095929660081391242539172700410918439078922890308913617821193529925848379112339666037642295909479583689299425958054403443122087515762977301565477498660794338591421871461669045635157312428327462696021321044297225765602252972370063087391250887893446410056430800818019943807889220442191858229099113324653120549050910319818430038108736351823761103783771835898514063454488175803924213366334918710447489880520229723857691726101467755539142684223260544739057858287103954397442149320489022322752242795578333950651087732834853121925848561579516354004668909136206539962592963267364502436203933764472788658858417744180195297221355003875119627870594576591421271662355705433746469681875152660104565225616990707293652692689382992033280947630909101305149849858346191424946402256960903690577899278783575313618085834085408717973606346742602065442510706159605062135207406561176021495401428119256472545284163215320196050565587643373249813776460791364056955134485858889129034232874492726850720829569929897129786158034683791725400848421681388978251217487573715327834270703838664277207119081347004840836198799089253744842471868982272129230062925324417006377342849323946649002774822203353761512356797873347830464098751997789981555027404466086697165365699691392158632837729754238796942374399982604314301917688997309938162144059407319659857763434900154082848497350776871527166322040464404392518900340815983948432192004419595222372458024864638620234180341679188903920601630138621310771776367364629095648196669968383806620266237728025650140189670078626673584487354283087845020388427036750315325121417657665073643673191973366218316717556174182570786259186329984325049336036542074193522210443266624812028075102935970729396135929295520490535304338293102293146018147307608826933942232082570201246825879318737433797600760798541055991584195656252451802138706760966579664809245888982816206637012754339475462801515310904817149796281911712477451621062238546743806276435903436823208281604573302032758815708794771732451688256092339447474597557301880344431246481627057590413043371041213889003278626808607901578014403703597087995038789329731816957570699893417537846109219896103909622476574188392803746430018204869692790324322360894693084551921660694453071487987753453749410547917169224378718381703645800681143265092564483049979198629746830314655384208141711609746211204381647993302470157773089183377839324742084700480484896354468817810302633980695040362983427321810875462285233736487917953565782922720426734418653699934345266503316348973512530549200400854271500436360028979091751964086912557367084544197924846577367522034517305258447756281938440972826734929511226747689798607147087300300292110711956978324788606986260915700575230371439500636600235378749357506892487122729242549455346663721717106235140367718160302550547772471785326339261738177117555640877979139860905989138562319518181262745554542482296340693801448712162829724380678070051339335875604382366567366935107896436071893894176743045805738702063105206394049799164255731414216965879123894925899098313700531280438828535684637277618527254448080096277184262706504167408979624340629958643079187181542193149259035887640311570462922399996930924044751788206690567663165984381525183363581387661969915126356311703020970794476940497999602991064592964635380601554854602541665101152256378487416528994009805416299109126678059769465661925525404136669634161711495964812656727939124689103072741275115759612899031802705391936942911558800279997416422804715083462687019603318972019344763148481637221055150257224848017642933315169621121716077969656214841822580918569698560049503903367892134490354607416252481398978503914087681304552662809089966926795039643539029871828716261595351909107494617518936529527228119234681421655796951356118783569415583013735255099137795003459340031164732747592206644828248913647651349706081451538045240840155318226197420389017701104146155461765469530370900036626576208523624265770259513899273529847187614524981047760890791809367953657428067335134240680210652649967329312382095506481030712440993193193265845911865587696122974115086324826772725699037467870159603078635028455759287107566954030016842694958020196427323528669315230362588427290982955801849518042791488627863521458796232123853427887398424148735593550504991274000011910557383403348808138896165550318532004226165248755524838861997087412360626158532045971564743665247252552344091824081488691614510752917211974909090297588151083014120894526672009949282283682235380777537681381786432060317365042568143940892379081227187091989817721080169235239872465217825894532974613204514905770107259211416444644467522887843763870674004340148384592851069245485025396686954616440787267500421781030176735104158663171309331453362927866282880366885088125707642490535636414325584490098068290107863452270735740100197325297347949822654093679818056922705988406229399557904980573656015168717775477481498411808607301944802000369185991343313302204435134568340300417876896713086744846548896813319840291950998776045887514534058668613327416442776233852275607691439295678721264236423348395121358318451167836843233999308129180265293261950820505848641634822136694192281837114468393845031878722040165288628339393349776345130140731892347140295363855337951101470717840982961467249880662769060197899798098076817904053170900557145336390985722169337165132258531857660572657693225817112313059118247600967084512978432331525271582712970996492920950099466210474032661617605445329340500095960104548087793697352955782822579488054426009611156890907929692888817155720649596223937743626311701520614590219185264418213867211243817466954999061652753803843175620040911622360728886533390405177548114281717680753711632284387665595767219974661454633234003637478257640220669398724855739405429985856136322272236059545078188913711598870652091508078738190774133699793311843350726645357260335981009274299571829968318922300052816513110790562068587972928728669421405986274465075301802950640319013211849364954311078760550572378195788997156926198769990482706450928454227569463085905065659160651794753625744308621148576876062434152527475703137811521485881155612302113859707721313602927938735119336826337814393925664617622636774019843663150807714891607614686454853442339052441216390449443932830742977476528479278309116686262203501790551892665285805625156189857518824982991979294891851738903898685219819294000150566991923493296038024807329397102990810225591611541548379142083288799794086383302743354821505049635161150628616412318360584407440011799856906793502718658629224378785864786352627552514012893838696253910579509360396072552966558808438587463545572580433439747194454804125614744133902893380882093427643024173547347555856615777333695245424050394403713568357872067202571828845436689543550554962426733653729306497726523564678024021485817424882607666784009900953004858785253718346261832785861598198176236748108154881394475193179390259613695880382260644480996392007679568691584401784145037676058602981457193084887137637604659718889501220968915066104948534077407564208400609220198684375709744923032197819731071669079761368588364205312288983014589918361309984869834310929373174015807404601083976870152706810397481847586290064735823803389288101611729439660575165795808370481011255545454072841224251171605061506780401419541029728479495416861732888330934160873458773949966911427203106634050064558180818210703319902915952162980975729526997016208399085919507280388177646775282591738696289513990622473204716989533362910907299200584295800424531951401749611115323529492125807387249551671895250396366867140290957230326864627319667605274992654164166052280807418147256843732059867815469897775676382726272392822338425690084423784095323857065889672040701778508130114396213503817579071467416985830498424823045574963475917928444262882849541093056202071014543932516790515165952909277786706603387755572549549332687382583062445892565708898933551807149633020458430832414499200671439955195987942356854630341520289755288253782319974395784143860504725879987798534561841048387849665710493191336919951937140358754122331985954034656433513848627263137054699164542555332144462806879484984013342051862115243856628655544955058422532799316775546869400292553248201194717974851808681617302993162100852293361659484124003870971448490914709628808181805436503706396135276779411961009669988322420044845267361259726186116714334366112478914239562570472971273611830317524979723299143166668712877670550488422126772560595849672335095903883988998819678056086656331804779406053346413670666177722762305435929288695586476857915758831879214586558037699063587883632550672925646125822536154787771902051619608653092652502059222348256482727106520239774112734794429928668363729998783239254726044643419539064349383452348579431342377233061175345143478411962224652327567471038909089173492698321594507691484139103193687805053505195613539408299692774260317751011766821364334095831642253215453012218756612531006514767895429217251359998453590231039465550761181309452154887803563302142512637709782567845755371397783779805832322478357136623490873934541094384820984962959501944728406008090638934497896066631501065724105426304796947398044043589661818553002783226540213541037906361604808800098046862360043687303414060546372847102355005910156050496547296072300994720185870427950028452969434000045344271973614155255494860785499531294372842714291773782921135208354269362287451044687759483756291040746820013939334816216780192040711946948424578334118718787329834924020335793736198706048676019008998444330572333820777729734424400805796005249694314651806454930044767764136232458597902712267054202626170191204345603790107287876489198350522476083515752548131136043534325980675372029148666195681477248401659157634722296819636966537744575343736452842851192764279593981838537611643420823746991299291605708395084260631846565561625938274832633942971649812120510454937175879624273991973452795593742311328422083715819776394423121506543027770850796880992330996638840536591869285739293944291081948670613317684547647448482181969508217994392828837218669597620629928514649884375985559311889439900602602833765362019971650083828978997326570447268359016971689883614478196771575129831934107391434480155827530534917737638947293027341347153265212269399794335578600856420740988324915154219800721199164306222723396702571060357076097338557420408243292225574369992924435856469900948049039593859141634634354067785471945883939219265981853926506685666514631235016375059359549644873376504858564250979277188191500970239716628619739493252278849608015466892002920945552389382058721386748640375246377596649857181704632390423199551928881859985078300619858472426225850862788985602120313520235991287333461670376061063616988711104815606564517174821125629378451303112270025142463416527768494259081312169887137775550592615095094285004318553354701462639513960671283640025733126198001738511262935009185115153679959279084070045346925729969810029246877144111273696702849369920783465851510872139995608277426775740814966915753888912636645407298305308070873876736974759805086033728000990160271825852428931160347344248174467490774817412323955123930460090325829947907486325502805661921784504156706460320255982210494501356065359016247994100927260020101576225681933082559741804511282281564084865833112820044815592678999201863687059183842905837480383431706625712515939841485277140014738147809640296797337910571856300588184912174542833959545306481751775298872987647000856712804777959453021711200251256167669244579968641124383136933185440105414509557086303199277564173632639380962719313759228972085886398707791650994213868104648920375030035080755207971615346708799456650116207670284833987743485199819346599094250623826169465465554397926030094806366216688665531242789525454683685420790988861816525435945217176458210122557074270779453789906187520554454175248982197945437308306920995553315544128543155049362862055759232835174561963266060754977289972968059397722266422982202347780916142230155551551465834446334473976828992318877730615003482651246295213974775021347139276575847989220752521177439759946560922584748559681862936203625790862014966416145884800375986572556322590960195069446044383209044124224261658544118821817723642626422594863123788379467494929365718142670327000057021132827570409578554881949514344685725725046830335029030126959332580856973311202116477357324809695250251210618818719224472310374747247595060182840316605675339553879774252947022047410758509216957349526086195549151486113825730263512094672848588108286047366086691224174990309463422073847862078125101727136534302080383732847486290562396316731488170512830778410548276150051276040529379432242961019342131726884072638137556586343112211662825463032589898092488079721366618898053340040120545317164988485458160607838382815174284928701517125219393632727157324879923489403561786090145798757116365318252345585186177794598851548407037960166381512658673158127461283886315741371533861108623120901004756718445698169739713551186710219543767687203817027879988269405434734431032141846394016584476845226169302284403444426120073193796262443048692048036292248946978974545482109652410209405990503970772184006977007343483434581539135799123469700425343054343220440413750633306831988868141157447542636555230361386107423146544912651667021975255875931419410620075974559571214427962427060936587539787729349272342930447711198378595777494001325328339927672470223782104909497645411419040232524308503545327184889474909141755417687181691588049192522147318514787235151307527522609840003359294783800281564112695383205590509830608356274152971059977840473032946963231600986633702876523362214304677153603554136178650688364931277408152953171674194469994000968457522080444585183920694796225274372902189852066736356551122305954229492962207784938583676496996970650975714226498874927253665468654740258836601171414256276439639005568534690419185773265420893848789799146272307352988480597179078173515940542234249328971420438806005069752081271093178988614352092756003399849227377534349023064850014749466010740663051459527996923867609461161352928680258428534147014275072229203116684151952651337241021403165176629114471006437134768813018727598158169249943444520404270302677534719528796492118273285701907173733942893643697257951565937098558617628817292257375968251005624191286383973801052857717282585208085876700325707867711964912671813358013238510889821568515311311616504703237253101791919671305610772421551309130441417033493013014592591038652469310669021084657835817628845547267953094160366073622223381392768250552811813837295089832681638564120416402955654958231894468121605910527287009497025611608394761526026638753376446361544047586913868808324490942589250190763505762593249130421673761169400352949753215998598214467620287805520407164879189243364774179308427782705148087139403557108171191163992323582402311195168352000455094474760171748943132590893403466787410000683041527758237649556965372676936600406322284580414278244472632339262970649947765373895857529212208756885028384716778670681078028016030008660322836708000070975177309976436271231658476426922387516659473517726868699610201646469504138639969268772836008829959775235867522089601245328542183248520260660877192345133321691070303981512791901740759449379086049355730719857723181618982573201449812253938639540538665822130594350117235626050667028701411555402755114797859757917801662779846695859333695221950106822891602265017026792831344240881875596798082451198822051942051984053594337532861653360773226422639906531674866228916910576836430059487083547787548471512239294323706625384056769426821591182050051891761675344461771753520267076152772809129135232396431624362724934007334242260032435637372452382703638717185353021793176268688554959223474435058910276928441727797726854284450103247228532539089652490335421468393069694957986032548967388480155781145419752904913147980394679932932965645687541535433475190811974962707209267837442711834015434689529235828174496443477430327110320081209792386367282281688535265648467461032849641036981058833464242489174013698985324341941731657134375409679008372028802930981357960724542726263596320074223148414228063184913452380042539732034785602248770461241078056077944589002939246318576670899675363072195379956613369400724573279195866189110300220981927859402933073916637989396366728729179594458819250655007263016839151870373843506389534495833660931573642441696000424163468502918189546209678201241240402391265606035348559881494018417489634449457209445932838126213211652709394632841945819861535220304241394487811959443543416204278048761640654487588466499373446487377459486885953854925540227539736806583830922342062755964125973255621951926878922970801805319032933862619151005359145942341351246565031573601927297881563643056979330816575510243498479191883102373818261674467740399936425811163077745435508543105947792586908985393708104486922250468473346895478754533786705553226224692395396480569758934580136509939636734956790990484626320247653618713752312139138713963105803058359611810462510920528102101555702779490213212458455373050101277928286083226676581078759149857572538048672105953430173065712221301943939523949160806241344875128334316751207336556064937419115717328229884792558277896864407464381581065052250460778531333436863786974755431758192405916930646291395201300095451079188292865350935880578983454357568341123098463844077159185449499870484098743472671123217481432955123642421233292279107538556989985610718967170285261924487255562431453073683841153987200657936142787099909773389891760118029125020038204877132627042391680058272333813494174873166530977584734177475349099223250986445007532539346069845774631311610068065729426936533564716992399548121801513139819919009512208563325884407666920976300497129975872798384691676459948661740730298290073706594820877047806746140039743353799021761553628882536904519279958673911289578397487021472481038642540429936828309993037041411814515632629850594308597424918542741212363525985360208561032549622437929616857714127410101625368490431670786919022417664048956895145562468435201242014529374745144159944646920618863089619830866645852359512164249606211319571190490481492675958487790499394770302507988091360219695145560273365889168869221697206810572433361635867757046374894476737297886123138931811886776111906829765362868878892078931530590847803375302947545527826263698935161614458810667278241476506229437034178809939192596105665872947966728000640479478107561252676673327236816458714361249972942113149211479635672073870497536994879429642625933107069826903230809991588823867470829451321190677159920514217273631116891219772357393798182851121415552697365446767829589430666226657378225912573219827341889956982692519270742308917636789005971831613999619702899162712014491582660321146520816313582632401311558228340925358711624531565771234872624314820972018537078268371965436311553890657877492898767307253494791388095977222332247757806448302655378116230645091691333007576421074870092335370197724120713094687887939946530094516832950835442059426020015273685210690923094851215457235900553056472280974147184136693172165946879038114517756750726086514332283471492605420557105358055019362525560037064426549622876208804288436684354291386098321132572154296133796997532170665823910269820983536774248911762688001837988737237935254666570838806714729696279610218906480699257984144233209239012950069735241687727394376289319311966871224891977805695777313381542046385607099369502119696020675152371086966547645954150428341012203139448919843245556361924796780987900922153394758271285934867308046095454469393844772057734247815603738297920842467295401276006638541315361549349900547333188843007440759266887988211344556261699642624696573687788609976647887023789962658010799121453633591271020380849273307673713155840962639434104768351317340441866754377397579800858568424810748680550905059474512163795322865883027719596842728126139851090427824483246070825853399175040616979815721356403946365664001617136529237602363122063679167615995625085409095351948977007088594586106339328072272509088363447494357722218206585607160242115608220432063371634515553631470293092312976665142823130755238596902406784675632854180903137625238248928638600715900300086581005349011063216762637576216117864263557022010420347108443942346649900416372956179276395394325687912049880208704502911749986986648862187950145902245037044269152386914124663687206076744306181377559749837949992454155219603084448944543667381897352258170472997155270093121041881725845000468803028478179672459730059157106210837077068607570354874932822903698836042890432919714512447980110712759409298023298106528786121187475384534355932156250103913843198841216030023089246574831776827151406841298497064922106443162174976884108368449435510197401836241142896298271061156654415988513343459904749361908085030264391335061239541591345099800616396861001386451447473421893405431002091206028684260013708538933044541391311269189813772363160711360644160443904117648015719678345907990794139543499251085323382917903993653441287187106091749160970708030652067765413703903216487920971450839484807209577881384578382176737975038715039592388413364673454258836051633927838838436240808879329837880234651947661185146317431793853852145019521677692403116279536346547065878449052146083026185415847011603245913374629011813532125432975133284433070642927517459331295365652947079125432242137729458076433195651361325978534186348518486750795257177216791489840918677993309054178950007083921229719458214153451398303100291453139697984869490757698237151336146439527544642056626458510168035834287124267447655734363018255200388791150906701672643890920040169537966128470510437563762660114508417173829938000586748777436363755176091354991132151458033847937487502358997615019798366955773074342250677127360459595932085298785181529150810627530064456580583543846704355978850951393431322642624586716575896379104494746550241493954514172500844796300246091222684498847071572928359949154316136576272243227131391900417147909895760997992025748592633869130041372607263558299262532623001407686704697030304104887007224342632273976311757432080464741556390954339744364758411049727780207307009217134769361984798554005374237096478552303096315664392706677928134720007730419871216484578100370679481326774029607717914301803880269107405296516244208275473773885381326746984766425475967561246451833815085725690073725021820257957094065894811984959449223899059568397261294240075363082558584885157143143861537440206476621660920913300798275151134922241132956623633018317365797340431653405603776790794790219655122256842851225037287582694726752776405284657167033415629981847499708144065370432390988384856526512726717530818346830990132890344734806387453299764481790375738514586579302805320156434735987591941691949524707648853717419120509267763302587775994457219201730170750565507542770515254775941461096078023135536230315286487369344252885739739637116911646905373669070532544683855350775152573867639391177040719126386178294360763264427120990554369689093544397327929645898893031863078071043267737599011447404896318354634054826501201760418363504181130612307649301741195057372949071645270735667953209314247450267378994903345324356371761557888631890316533406168868062564067260272762676798415145440355539457158202684132374832974466318471531240505498366797533317035183037044929927706734015930075421419867510227522902860834288379258462678620316034802392801477740315112006294856891714176261513434052084820870813912116298506604797258484154554692281100335562406345570510443589270688454031425364601458498449761584608314510490838502617906240647178531982058605310352228033174195015581675439851490900012504743480836565800093117819516247813003594472610106354274764412324236532310007025775781150518658733299343209503854548961662659566383762755690803311017054692731870943667706633780552613203082490871369272449240384060969957496470832612822037287412204053745581604457273208673883299267966570897648159331266277415229298093289388537176111299903195740816299535167606400414947924147217740576890265491083071005140129731882952985192433329311572614046599225771862691635268969654105269964317736469615904039884883002675308792116142347400570464671760941676699833360814356354154922538873872997062803134640591950660797719750090833491580059319318264816135726737477064457354805773080875038784021704594304701530606995377486277701257944999019805227383416233988190957108402346047726985804114344265763591893425324712253961110967813306563422043337920771266494356585886557835143655775453693754652558969494244779029138750060608462592676084378529167709179186801833218130685578643911221813274785615293807638688824669131972683438743461850588554423307580123549306811499948357832820123519302549579611358289504207535176102255225861617162263091086765602371022262612572898164908415916222996218612175214361286848591274657868599483271612504485747355271283793669904517233156140507636013800028922484717353054978627340369424256978913724082779997433795010202433877073978857758255391576031541838436416883834797517023812911858586066296828396477946095492911666296031528672573157183355999946622336673478811898420890955849967518072583501085325502459825804565481698840753350902708654434761155018250481455130312301841493090223968142373720767864613301812662171709471548494911555329833079543087367554837300522015371220410773113872587139931158514184842231772399398265220202923731599429500785492091340261854609862513876897858496866341423178501092267486262219045363750990579219878587702013282206246821381729335827870863596060574377386602309104487701067209129442986648981913921057417429227934732905923909006854937712536510950171000192202928754699638927637194404612040630938433683053560954470430238162304753705572902702370013113829477336700690753209579918223678964706129303652237755352478143060046067132030878145892392866662330048055319768894951539902893789713193281304555646890827978694998845308498343388959859531920936824161037940035505182501417826101223200167737492672174222487582900689474867854870451907194621770450983317774680761431838578332764095228449468806282075468460143670203407584027915425976208166172511801844245029022163452443990151161385093987517032682636865918534295018061435589704356294184734188004143998575806027734965132636560276149782032822725361258179403847139683837934619159639156758032077869441571756130941131159467719941698646751349888718843962727873971859247651849666653671375843825284223338395106119105192892240655718414866086469326180536195819246503543647201306238067232802808495976400177104627616112814216580171134550838965421944864300324012148500978805309385115071311575510126997489702211485701271183273286307998351242590127691598144897464537442642816708565260057695834738308524175697266225172139694240458157928204926926442651642256254698570979270539093288986838072363930392824767891422030171584662764310560823820541684496774185389377350733944325179917846913090984493876170145270833411571468580397181753129408767960714856320385166261113785297000480074915703617679085917714958911621430262582374369023167579111075455036665239375774220768210482005801154505291755866840491355787439020717928130997539791678229618906163629312174409814803954273246395526483212427127479941534832734929448806564321652412671781253362250046044275926986015395093971513076342174003896955598737106625836722175184773219378113593529684521267501800189889290309585026598109817368685715058024233766701839131879085562095867537552420884530749709393217090669323247220608622304433301147601533546464161547981443060148546136189749946019263415574878623792967645734064543585548665649484833263960255422351537193525263097856172995244341871235432813951426626482488890849721971017027381118322337915523108007779583645226065779412772907161009745081037722729554889638037619684135799184446043697629648321163176295490544216042388075266233367404285705335694481200143100956925078106120771767715588008011754353053116635098871673165507940908598306633020504281781452680933230310091824370605309588976703294997211402364487345888753919175614170716655879424922628294452907068178994739594817507579513174215282064723049515346651831254165694151142791202879753594754443662082225611349340024013945861011459270235209178256994755321256299004169207874442540692482361852751335236925270403586172081620946987762523949993953073870619055534255807228502203766491609293475269062359436735840901728686496561591517433280980301837309777736424494834866151353298873088264066545038173085990039581734241474435209384782670732683736239043324676433953042535456506351137607130273488539267523959396196411402720914936196140109199464517891995451924658145593774132322304301519688315040373942543111553782035035398578289233490088259917798663036822397605379760854453975920964799354978382765803464921550702437443444496988562080976151530544226503027048414796902213078122330593155055736844485205079502350642987783986087531637023536769716229779498881286503540236651748051687438843773658792451925055321884128947558921149855576503771337387526538767357122162468547598249507668754847223409075613837918922867552562555101038096773089026597684972856448717848692842454705589673488241384117536434921057305950759510885075671017277839751500081937149840112397146646971156215971404659654391177944514679841706389086655647658983566966135449291861896502626463908769784114743728054191350805159162313988792817777540661180168337922674108818878712733284112287322763495954600680765617188124278596131950578720294835111566584829654110038885193049515795559724945426308418967375187984368644249386011410866843752178482020616742657172787552871334246314788236955780328156236965569679576352832080427051552599325619934563697691306119055997121947386561201494944719275631977348839492757959390732166353970076598871667709985694879351132070632389076164967862960960133120221076368100366963394308826397992713491810003394281823438553222622515058707201342144657195498041599538159627304980672386486117574802275528223799571333926735521827956195332560794910290047817184522433977380176675304275850336054963463595104812813071026751052292199619275434115646972099835741234542770596055283586772818844246930509498268084396359263220974871594358265598200623112229641532115860191211976253872394917476743593875890927382042600558470766918038433826321120273272626056283811138637992796988019664596348963281078067591355909389407882534237158578853377305064787183750783020400876660652292023655137833641847559837719426028915239547153113421173009377473835164627328856094715204596579357454101153919664987405100768226769495281556634920484341354419224076510112821928394785703789491699898393513655931116850277232418153354771982811359483842925684866388385247028897763591890093419469675568496179235163177700207875094568780192972402262769544544552244603407910433783710897365669993546985156771368087593654013458373742080625286482608141690011942329588355879760887305405745466715150381242547914549236788956952155781325545935609169865197403076782619480454332623566866562148945256881006863260842131099065807257802714868848389551763068224251595871422744953846432429273944192728328570737472312609048139510647374505406691006154049510671441635623963038144934534525349636573016648107349265879580207917911517889572227516575602486309186577390483513207686096520905605909161749837582014330348274717244649218210772820053940291451722936020464281724752801401899047307284039426070511562915592603105942539031864393822876220074317578410330580540037316537066328308828562343647306853212472426954455330229652048973062025044993083316363373894939874573976872666404967048355367782894256704189959099514627379015730038938484656463667158210241741750579837626689031056210311384146986503098544821891094145794789657643935565778885482461341434640076176468431484698596952181674865891701957821017856941650165131426992595971875085300812205557311209596025173545377487455847122485900706633777960508726978898399966203709659788716487181407692985315206530919447958402037033190278947607599625278030142417569041130670793394851629944406582166795034815041415481206934724302482844980166945717874043771408804350571713305864663120115652547732233833673146604380830544081146800565929320773595926446138630123648466343777606788689185250829957312419107439627945291515272943866363977816386256985585958275499568479339727979378216685851358771098553520836141024246890632476169703509903386093940665621766965451904823929585274557262747002859173901105158476467207918710869444020327901663683181835799437408104452231661707902006678997782040836867836046338664283166784878521266609868466934757417627137802665175833652334620553858627567906025349092381851410875412453964208081138104944032825916867396763608725297251562813571903016314930505972581698704599894187003464379853675485282430280873001835310937448501459788901336727160176914241704199943728790203351258064066162278023129306565061785894902792533845152854352847037421659846117770319118176703163703740103799351108603050970212874867617666688895258856421317794999566702436154126616857114543781601781756693808556255669686799536793137179723788493879881663599446592117931042452841371980801886223218328992379902593559231461060405197001942806586285758524255775042171746105517524851282715039807129204923485886396018481751650866484691027422079404021567334593629914784795609929119295540899545583301313197895961620181773766550153115839744827834471942489235562543931358177438107759501597345631227211688107293115814063890017054186541347510131353583151719971831217603526173729902811498414222085084235450967214528959353335728159799860779403916956363213315577201626911766622962857106337468549403838860920447256678302616440322667079698597217336309328342936716190350229704751618221250913075959210069393987415605237387749006887833469106105207978296649230218233014538646252520532902020056749617983392302238127863865545023751536746514223427256415176199102692427177726825367843719086827436088319353816910711191002000836611079902522170451118656084091077209534254085767738769314408907758672002698343641539906636061614136550265032523549711948065069253320695432266826957424595925372487723102235541197239425548241744537588765329903467077458584580945775494226891843182953645000128704979865340652158858952145511640931151588325592259191428981947307049877899486407013207940502336450300273322108305718232796807319815740915966860990924941017971890041152000428081061474259304312797827543235151195890043879728740508832359645464166743112923784557852080155875190310557812264717269462405272107702147413738972162383919734930080652789004732486255111422046750284087607061142337281102148291068371120836829686692886016204784622436449733704869584067377578121992645450809612531636823467777738493220700053866394998443447297069342595597589521939106861490236557359999414270544515740306743614910673207614994150678697355871419193244488275686793870219756975818700608946821941057725176949623867156087073448219337827874523888010644905970956818724479607976508257312261083194640959095161784618856376964662627174462307349065720425654805167543511833091156929283847643838478149715109988997118950930696418940745649430267701055359557828545900696268309514587768217330163842361780205181953783519902145363319328004275486448346262651944216556701547621145871854533893977335042891973650197571852897491322025293117859989923182121755249129035967451152570053158964520575343643528801801655233840970008607097816306560351193167114062207161100179253885321239811906841957921827703022445702940618150286013976855348449096752319917835219516004166685280835836290978650396932284054725311925692651575401146542497972258712589074720436494831526006195143606201006634317486778341208652007823654982991754075445316653355562465544687914437875561962108700654972185052759655682483019641618204836551480149392846975298853518667309158606517272687400206488208757616144756660368322333209652633853041678765287755159885795214256581982774263170278058723696348582651755421847897898413612306896507640094449766475572696543207190822795616657485579082380646132570482681068446600151240211655115470662718038315865553652466030051966138583891690842040995550883572187035572240416635057251034442249130705762350683622802116560547158501986487416898282489438902093621094825331775251282277773824188198626126715143328497805675358980333171302510551821415316133010649538834771387917196563061683143646696585147296559350427155141462890595423568114671031413865656592446665264718917303954884727672322473144849175570353755079107026267170190663997952817773774773080604858395732219382410738580221978665592268042076776344223022261337633587525612061350783553623501484892377174654798386176369234222649877837371896326181554745233201984312672577003075953011570389775114578794475513297693987283303017033512851788287970537617733728171175793333416544601571596811802733925443427762027217698433740167754769963201966169316555291259010272556543149924624917821865200840799597617433042267044952369040031272388774416150674257226091476634690052546526330983681654386038371527316416445802764894034306384445614427712905031220777416586527902422608147990000800227212375136852823102045882880430549773010802837935783117539325388544789719537320273093580834389981222356476809090804007439779069120990203937279619332852149478665887611477741755746431415719675341351349363135931276427977639682755768784135717884164050224356286017899929234638128298788192796424868782735902748970499431673397153280694892062125296595061028071536868237830196335465726808335705290816230397108202949359861622930059059890729521700540970253313908733633472243650672261351944459865736555680775441386776277536993628887317402057491027102015766909749786637776885055186331464281885026336075315178308525218203958786591695203813441047669322760681037718808108348545009403304913025233318220228400436785668602586651676052776225153367401915216744548767707680130306651741864059934873546034443210283701544769578059252684088157564678305408915311330171496106297406220598011587081505133746556236618258067827395484510708093632182157364173676048989559499799326788432755558702914505944156375950281914712606704891894804907653496026664548956139241105684412418077706333948031810853401389538011123144684402668143761453136970804472897044485838924572170887061429223427338212677962841352803915697005076082843131923473298008012765514510930172739875297290691475730439512822629978359765744012515542444479769961121902641976926885370062395476153566847860370086548694888717769850097219237891690117554954784653493782169762526223650225226542572458964372478876219076874325047831878369778905397940356670047179663305975180023522577496816191631001725910182391407684839793658314292867759729995033360924747978569700645217323649717071977864030504221718095629037422479336367006517805556322766773931685850635048036951430110116827956875568868661522284348314264507918634535101820104036577182873312531004565687472114030493264380242291311804285276800277319408945133409254683108032111973645104763092258327945690321392591450443600390824822843347468100196559659419219343549019200298313812719870395239811497910836441989054466271220164895558809765418704735579491684333767104297011847708746735520405172901934155727954114964118655578159163301942119350245818135830716258233983841781331422871146308585586349900200073609537586932583055745794207976640886967001860911128554713711841284113133637832795722395777057457309186963218328288081505808405546558554709178429678995541518143976511976388513951048518998182716315991379425958813532971709952000650317527136976028272922495135367011599806591835036307067239024633705210164956758812238789519503093863685779548388362915834589256551679553081116313604894132299491414742182828431527031161569478386919550348604966807510715470042586185076608702654633383315007782714497405742120409294811062145668496277312516920486755338263651473679867346553072814001772145989597023247849958760116270447506538713548192314758218085536002706751213122079055927446610465239829263797027853792186894710857384723514346360504913382999652575292756621324858533045501667135453386507861949246115872200916230763289421560888606236835244635539443024390692778932175535047026184135791901600346734570840678509213907249621501716475243272254653188011799907643302172150346550211760738775578020380786673338606020987977463758767389831779258224278617035592757964418820972638238963962031421840473302685565691491584501233922850402571068989744763337768689047824441646758031591276538803293406835181596088156848318477112594959831285725430917124473542322400411019643778919447838535177940026348738500258808132529501777951214664526262846568116501120292031713982028725506565052540435855280998908017765596998372161873582070027206798744982435205216752811991946250502001248412256341659162859676698009753278493141504955816646854896634966479161318479882082614781660882389947364163936677717205916828941022584903451732107911354985111617448918031332065136151947572630845352798664798356603536009979993163272878380203495278068785451931753006799696340098548097606248251051790170601818999913525091147167984726543588916971622919390071950818583313628249727426205925419833696774603480238981362838357744182003323844464002233893645816968414979977735328817032683439134917166165362848765778350643301072409555141799281566332965395722785994830649182958140626858642757321428182395151345798021131901288472847102756564011487621691218804530232529297978602379033387409948062567747772393176140273240640988320722581434968875452937721504071895019947903662096434040303065290515464803521362999218306825458258761169345545607577186244314390193436408474348314715607898615673517881609752814767409938997119261936528066282198016219034951134528694788182312164676866094599857667570224512722825558117482105079849426749858815560863773670413155258404420555435474179566025944137261115903835643644659155374302345397521422867793411000398290895933398966668337822654752734775389248021272346625320653877986291312141521989542243249031810424090153360146687665654970261424577228349009044690175273940125806528567734219140698277729183078801392297155485998635177006494305493535781426961530220442874860448681357926037582077266350440579393339397211058057548142456379554017715232895144258949328667547517804526178180636098101256157413135942214773868631609104632763163647312186276943410650352725527224569821446301633818367692907111418363652404515638696471655709782931047755333185828497158852048949861033123313520201587755778715525978774497998964760555460919159765568990329352113370231890624082642303549246854546040214662206730630949430207079904976909349756691180817375196420303748759464978705468851733836921652891733257617896172957160842810058639797531469075634908515708717433891196275915353310077095738662689285447995578985994582808352928043752457269438225518740826148738251861580629079295141467544612593277239960399420520846295835795248320746325001482280483211206586362571751292556382221861263179848463012915899773111399335523008055007366696831812538793583308505224014552017588318802089720997427239301745782187564467899178753198724365227298016864696856099354820447110930163197414774168477045704891226426549186071802097976355997995417966859833966796447784219013808112267448195852923198489197340382451478143289898442740599230121299578034068747425651222050134818282397501466079314901425111418328451007810040808792218768429432104496029686390877084589486462703158787202967062908909796422095725128257680358765694713463018716911829064162218087522156267524464251191313626809380953664723694600949782103391132453391402613646340325007261454185912582081601552959494400628623801603345528921687242762244846182985808213560009211450316533582950079465074511110688035660931351236748721796086383521335545772820680422096448816084847703899273084301989155086495295247009906045346289181004608039339318298844282439556670613539104127205570319495940723595179915978873658829763145281148491916753829644028348000640408921316845539159549100990209806346115505666672658371963351727945126512553583649673793183523756748432716545335152003684822877467096253028493835947288787062849064263767840008405842186120124452423139523597504807867223548663222467992475307847600631308829013006244319120856619891263347277887903052882279352525736744217000940077861624202535766450073664751498215316448676073032091290157720140066366471488516988283536463428348235610171289307614389940586382542198088092141526789429915483280344631001054159189621113953903337867865508898163497043568311601708857127941914930855851217586275929955841541489536597247648883438069427028845410996907197719937260065156282418323963460167760979309633755535553729140516371829680221181605027155194268237527633626730262105180570599800405619415700671218393712719044253164870045584245313888387673109579236414561428305607647498937458804107176960352465729977990291501500112901056138978856044588604810902356462094230386993344992380005614279017838744983313653517887105393575475751430821023049538375777347045944320402305117989812912717392395007641388994935677394484895587356583716952913007360059757002105082324949495737850127843436068102663050142664752276450717094714474095514409865575092189799877509895619217463099032518536561940855601878586306915987516392465025679128980598444124071537695858777561668955021492109006459708710093090945786223033942662644846647843293401906233204425868734732329476323219668269693648448584784869977676229542874741800392771288378352894393045191900944083634832108363914588527430402884286576148878903651934832574869251888967753515365511830432748062277790248543122660206740334944974222848456603178431565898146871356953740245413032897297980035899397298376178699298015246435437970316664872671179048310034141231239617896892462405761837484496933095268545821875991027806252706858576889107816405835336377368994870456197254648504319832248774385788339839288429335825492144948550842693473991571052875273440927043143646913601760415677558657765365147066501541975750376582932373184108900251354404566324317704758269692447408656893572045070817909900100191608579200096522151740884622715427651398648741503646292862758325387097081132330062321657386896937356098717129533488775797346603557080603932132091878852434465462946427649289719458799254821491866691051678928418459056878689542269597749824471230330920719032348711933647529561905839961665615367276468211802461219812733066977088742009681954864532924167810211828544160850184671074631408232772338339453269910248114117316728962656171193235067329967393125395581122193689375587363634217666570431240816709796556122893782348294009837332604282798383083117976694617700700181117826231641916733649929845372743680091977129695855082055007570047705844664970341955810549381375311584183207108722691089265561583843359457094927386232442992888932445199655400231119418112920591774474604755243201818895625024503873086499624526945044135709499253367082941946474911667673424681022420998370264463667333610569753926771914969848598158362461409034075937412133966688235493716862913402179454747970383004043791536213146170112050003449741344898059449874508450144898873351931185255737835462290419641539726605181558034030916183993721000392347826423476246574851745162419918458974544150842778384261550858181854130118251193337962632558060372245064828114770363541287441287389254129806044384657372760404305972669524141079115135100616089712149495004535820114038267500549715013597073974133263010214027522810026225486949099522193602897018725598178797696700162907068678330615076063996558154525147956383659199798911611275143745792333310094388637587695602750264296367898651248751257697694507988828743142613595890710513734303001721769067283752324968571307164909025064339895209446256040584635470072756435142444158044146910617890775448446177294531290641101487772141749769036670498756439368529429319560801709560848485036051065957100974546670321875842938988866998716601646743853671986668873078795915216337830027508399936582032987904182237241566808078155128501718747772381267663431168211637384470981281269634304290668077565602689454954025302251071180011192615385292139801298091904758933811741824863788542896367945459928488010173740383386766150355686460173226766311013871381111446984049956754973859659450585844600727856383301240517437471066862818235029729026369929406513607274525226751591716823726598843526895746844022246700366936910060853005474748061541043179129438457747707236776105367896005092274996705779203125764561138805491339334595755734741982530320379224343163495842340920624691276956259379545266159657388804076984360896872466414071370426746245293816774781786719680860659392351213803079028384415478608924812561796090219101720258900106957759270483086945927126414820211348319650614389970125554709194797050284194030470546638047302981152416302159057758999824262648584941067319102831748373010963615856194157796654762648726404971721156614942102928664006500809541370061184384307038725945288362698815825964926872580204263651786614296679152012348639983757153005452044770891534292796829299353784892939035762258734552756693930733336425083649009583525769545050389586805841888097341405546947952804182250283882723496431518724487043048868300983782072268657527937578559932998425941593904741368259529898902795762478716208434238854378668828223503713472067858140452255576753662922244145438927571617474988941654999314261443225691493922252944161355474339425967987936427009210037867637004366616860597259198781610938312148071040446305528545680920205152575065927019868213800278934521499407310470297813965505938452665654520784587545454833212185010469676095300931429154460504524957843527754997922133196761527761469856448130746291461080821943182489338395288464551741435282119905340306969606785647417376540800900838265287935582746756769256960470463174472404044603252752275155957142232692942311311483913910679854740056008014383946117953845365230530842656472686509766999238792254973677869085604341340531364229639537838561093982401148501558751086202662943226927098285065413481451839370231195288821337741528225654276913047954950258200351608810525478886277155359368133050713111132627841755757404702533761854500692806774271989849528733616535671694192584695055601229834608370001807942415508130812569129791245935720263967012781794524227466183589598186947224348566894919837086097833187919576609077462066877327745576144948243716029120374431105172434668466632234074646033314751047443719314539550373000250118455689545814191044614646403108079515898866310368549956794099599622133705583302361605440408329201201899086890462102131193224974418292360646926454555153327415482639310580921684037704080889617570586080281826329096513299157179944885569006007011446987094841369599329037513568968819132554743953911790400658685170009730813143340612336008951001194826415246401540020472789954354269879528706855808829509299787540914261017542581764670411208397143235727388786829362362182501398055021294425703351100367330053963557585690497707122004458490095318277507454358868573072094115922539335762216524471625029598512843595272865948921515415103176483192169974346129651055682259106276076752000059590741436484520818231881617647396727181113765521306996329392327873414148819158156428608426467624292190786358491986768930951409476933065170173824975906396761760914914043373568809079875758921695971018273636705278542248519966946850563934387678766648283188233265984304255348657851762441014558689726863725900871694863473777286484253381845088533228720064692824306723726559398822613569614103486805349888842306154341735627606320021145695955446336749896082192429436540193174041241516137451104574621677098147665385928563443139663751122770518310674115576497149667004274639013852293901407405249791386977630753524576172285045797204426500720613321466415379350278999389014832137790122030798280148802110358873767927824442584516843261307765958251269205132489101485909057315103142632040956169056886057686927114116732823509369873897926928691839096717635541413512055124910289957177195063884772410672563986040782350254560765421522136082103581097543962589201756330804260433742014474939434404498432194278298895245669864460641853050937101442184986039348423046143158117332904621772022013715097202092756193159622311764788867428741583639171506209017104358957766540951129315854063525730131555554658576439697864694339890781536710866667997323951289047944008490120077626954982943727658552092989075363563555815681660365568013169428438171166524469507369646420442982993335754678203995189849726022703812512740290547301569798296398386003317674375662389887112562894288912005686192943426744174465761605375894971873663465986695022437022754104227017704748485970414723707987836050195223387211966379569996362730315634868412348439942836524907433412205033237443190679000110998445477710784701794859179388099184617106122307945614178779481348193809663928305396970368807591059512378472998468458748947079588936662948340781888055162668904896470850924624894683160939215200807892048862652566997002991536156469035910239177671674455191627523909620364067500434999270481766207062418995830443170272919618209906731581311682513857335365113888530364198453259665046529936536106987323928907233703079732106672916862056934069780081990327156543479263593007045132989346124624052426258975226596903072194235758071447482386978131560844712480949671423492580573502697395600916481769798302176931683388291032927865884470224934908260829485500918324383943184098769829436081073095663343445510672839593082676694098734269140642233080543360996539994145367665165530875843329091494166732008921713443884410851182853694764246867952033776528033402426043651292631484465042856566674403357291039305315480209374150538080884216595144648366298911950175745431744973685107258257337865163217377757009379825636880730288919959652904737333320024552680104877506890881776236445089786897183636868246375796055756233375344076826581887723765078912711767266287683793692801048062095780839336653181210409866102086633366599733127188528787780974102227809602284927159194376030741505224869165986058376173313881873693602059517114118408118067402912415139713158614113067371407890472293887381139061438739923943489172996865222996149423351931712341678192434674748587037167244877409495154593424466402412627540481957056623372340182169805666107169380541773501936291673594433334417500029415094634385557030880102048542275974420023942807289480995747621613338195014044898696573095142888837828480312893926630935690525683807516309322816485340108491255400152015195173186205827254893490655269171377478717277564994945336000966283382837929164722605936720825418236683244190380963171402220639465932841551879113974458007796837306195595816184039687562943258027191139059970791190839974209485812917544361474838771669552803270238770744858500505286699247213524328310826544976804345351964635561867509843461391816105439851035839719878247631036508408024442351650923211617374900117657490716087800893075210501795569822063623688968810499729597035405250601342288581278701317979382629194442589007178544215199548090841274566488920797252380565432739377577212115293782264467520906356123125363282945548383993257912995743271990136370847651674938439976688866031902755907276651974370186868733259729834501639393703459758969746962131648882483232927029749820564765864475292354327431061409858325777825647654923444146708987208285864421191368734940524315098397056715491278960381245785109483210626954967275832854368822016507401721063080860682568222003841941634314606892724278124358641420520559269004327532928894915008696116765645226767630638654148398109857740078429881294641239790501703006844858366644726344888298737886077868144909065664078571639082592382026587799949398246656232700723141256735088184736900975952769219957114977965768873445045175639859132317584868429632230601706885506494103246781776567415910522197754750196044240019177886398751731050554109034711972570174962893759021326818939202298424763154632598032524613085728685242567443639707579093352747729772051342719787922981463438161264788143330383006317207766421105767689877269745323438063547450278239374207687158765213288012253523433165885450134741219600140430535404464383417749448192901707031561885645076449758294875064536078482007601422431404890464783411837950214595339581724752646325361954751130470493771078740789219921408931788702847238295943788225065595597334094037500255997546583533254647665429456251640716181942502609562820035998394870041263122623516391549818026831008636495319202538389706061070971351696508878273234487715353573870895578238280897951099893654256511241851059184116310594257694853266203480319298707816085478454177882214974833299046596781738896956628982197515289562534511461095103715729265457154113200352450294580845441824050132023339828512609705589393098027138383776470847917787038473202739275585894151871849767762239608329962884442585130177855475538854233358016065285815873391552757349084167295393721976759439755308280841385069287651324510596082983550435052698884700279739160415659357453500703896042074499765521043420347828079234477589247423249771541653567124660156850801338415712696950891485661499157490121877934403430381625327049619970632128786388768944219782740543070903588313663491967493742041654209139252708841622487955791532000578689882827066386034925796516833198061493154027280122396219368429364110851569598248950785528016070072553953642044481570969357802873090510942992359803471645691731029406332521340058956884737940493084880968316586862159623792282343538516859091821478221889885684834333396658000001332572509450851459778085202880821071525037575290963872496310926766306359208940200917427619548768549511900441860840199622526661827792901946446482763085972391982645079118000038003461823041819996332045019848045751424145551614349352850359056658096599546933896526886075450303882599663251703061355703097342936356840015243380734621990956627704267178956515770060436940826073949342238340320318029235431367100095728025431476537634824090486588657194613133379462236778731810710063345007687631245599029253063766257665863531980840324167335618613336362721513234978687149251610847122429133337433666394461213565589647440514574474158576425856332408293046067190993183841292065356603984023793295709368565779720901244383513005610301505623475595249302295188017520312193901261123548983383473992846443660874243974193213790071799792135305128279638006818515146706390159006975081654074235020711559596176828698645234450477950404158289910786998533990778556463845948890613188753043106615020138188454558626772012937994844657034551635748095430429332484458710617567676226861458940378216601852860107706535327306881974157127242193124674961191797774079896174120567149964691790310215352804112578662721489607330222283045563337367192311689252271970522904386984688369274618059836302330814876706858885137014883763907563735577244251026550994474445891734299092657608813314626366254885472082723398862802800811956577600867707402710271075830800704815240549476021914002681877260154649120192092089024005262593616915645813001302187655003493040611008441815615904988844137018058258437451923418384008421245833363590196403372841108566337857980029908784189462683882900968642314675225297419462905706885767179298981702106522588769940367955695141884975256066245485994826889774659965636804108776109161706242871571498097961325425000074268116083302189159582118146857192621123130291773257999399852863903628909780563153673474675569343903088914308778298586857336113166585026468181984034676418580991385956043944486478622932894767967911026788929435002535244734269037979249219254010580215004059130072489369661812463039162499401369512982997863170653486338108924424716888236714664817114101974594307410216260084535859365914966606708764769988885485368175401687227079419605012632046856232891658674888182112829020935062619607037348335314730739645665933475010637192266357470898221185506537431679806258392051829114232952597262291880363968017689127048003404547172111075677124797942418364770315591410294532193091781133559828748562109275561552767562921767849664825966712598526407764772881373605170923306604322709473921060361713438707484106645086105611051346697015942225600933646875355193098928032256680307793348425375023542861642861210568693628477580599624660298808875770249885674530739167436225212413527892674650400897887792151820130571124763120045540678669122938363479328019869982553315623217095097852938614037428502542240825804853681961818347840994271714683025695720840856187851851432343549892837964486227137426246513171642681071803436647756175159027335642389339623015427508922671787311989981310680771709707889093265826509766762970224183947541515157792131345502188817584258473100077739709120633417606552941874750840842604693906049606454768668249654210249986794604071715998565529141239402999773395145329937055983882142680853852463952920309118077794170686414069161536656192859701451763286329845623636571240200067437020088517875335367905982903318533314043172865087876733245660063940225877978920530670723506755639362343605728489240012443205514940872388697044352301842025289577633976605938468187007459497647616621685051887771264407778847447799223735723479952771073257459717792137354700547379725748835565027493414457220615898560050847347257277948112985658104673919338339974979919691339876273419785595565576165336026748541597120196283910083717055073273190064624623188576728977803727771558735452328292505536363317470140904362814684589228462880931635395041994977715251512196574257856282306133547366454093568111078155751431210410708121396969174305064246522840513311653375175445648439818537431340073667012702134343754017824224811586070238221368649729818167243224977198158975225722701962303862189757722874889328142191838013448487311224144133115594394075125247359349316009876792359199968016153917036335292220201502205079682334100116955622124083904777086263606028082949910604143623726658742974801672553576112732957864298148534823759160505655482704876421568874217126804555411986519592679784987434126306868566736465061551385365515044597332739408659736117335660745567238282047822234556281255003542244079504556105771814286241816048551520221481880400441647282165544255294508231032587926513947735296674513620435045265647763963721183219744607655359760643344423371952985887530820724833599275114446148383317417755519835561384280895503871741409750292404951907174257940111363101129682254784521690565528081537107304066147877270377835382906649890394434917100806126770334433512639265522043110130143863042864337621121056683256532987226478742811062400364202362856506426055259943943813045521502034662466926998636120402768999214849268751255995794043395851432783825072695806703620016954735799975985969146550613858934577433726351060826515155034888529060018199152479578708811147066432752150517956100864218008636728102352718007676608410079644075055982276745976296033120487377485395968428500994302533531696670482660903113767658378341966028296812865496291760000975107387077669260236282451591748172450635880876360170768378259721216836620077240715390515000585245417702957137041383222933868381123198674712128262887163451981242134683304804849859607423338135195041128366426963568501010896388665132272078039886204153790109711609647748905929784429364174804070942549480564591013237207893956371878146696610371438042016450067190077873332002654976806337064487774346443774775439979773617641599535368635538905603568870559661117761004747716218374084557036137833890212316978786752589086014397011740747579527859994367626414397633666254039210262962951992707216864170242467809298348183502386254398832957164167398804264075459114198349902521762934535085538832898160988093203116027017840916063674472093897350982869142075396206959250250752038680765582908041243738180240619722259666533805845135152469910523932971267689101776814127380332612066842757128746414328273341341007239068723419708501455139410729263221754070352178542712536568888142845032076691277225039613989408912345641856597990140012148986940306930329414531295655954798024568471368093305630091426775095516196227768812433800502516147900890504721780898301674287796350855818453356261368861424985704262411448403138229688590105613623208660044213244036718685818443705999121224440053104748383297766405996754819393963892928557143018944662042141420041447272478710984641448827005421551683898453772094181198860474538000865937510252574842029407020529517058858013497880265801819400217676238076015345890245820895430251785505289881493484547558951874926936229602161736883876411084583450395628475667342122890640239167225857824257464317119933827186185061186454190621595962642867980801770810225488390703084867049119528171757808402692802075406151885750519416665383483444960311160432256101436375206665674917107777941417304569175410565278563599582503431988507356459141502406048869728191889974614222348162943190221680052346488347457716656849532090390037817022374381011269878291162923911604443375693213776274147774581205369599624903724246725900522286630743288175703940401161641855381435786132562737749132181573331117263301396937695310206269010199226479391958093386884259559859145957545548234433498930736522965470220855092841596644599952672295371740045414893449233014581391011003574112506486331054157791799436920737508117209593329184508533885447364290725577246773720625878747221649295038482481225662313755709048568251067289528022236134865979058766228609584004100944173178877794574631495768521174638901351051857677683952317873722297366489862747198843169494145828128583577583045075816980784953184459904511645010744304580716147014065085993428402435037535908336744963005547391876630458504381739272745943442715772640266315071746532998795029937510896928224675537701222021918197795268163210192917940771597068886436652744139803526227456993448642192541501286777000744267113570628966583390894116842214699682595925185718581219980907203977077945241617134571571992487800081610575863063551411782039626684807091742220681585845043102835073030585378552410983324716488082692746738515545560213195976044873174495084555713624910311196509346786436244428082230578412108968299596886407780783881620849129406985694592217953689535252934435053638299713693905480526330060897777519939967257289735497651380574736807529676496784972474560064623372151517293002836060237728304370642455016722149483752582736192692329825635347777893751347714285559368574440728074659538011899386721144909437093281602972076485201449258304909158034544646730052401646117618641569960846571286047121073138230252440516814059174773946589122159858336243760585670629680409607775112671853570430447974273159405606032324906243671464757556557347284247593304031343254797421097650287795044972144681415841643415723772722098407861161102977314743365725399221434764319801513150725374839117957366129177858158188933936610520441347128151077278976836805716765093962499686779086815944488545124819236096232236822040488299655261291467522745170829699916759897225941077465506679751056944248873784254087029339167245916837221445207779627252429988082276677339305066492349106749904013972246114057903407825868462030980021924151623395456459443397665971241987068924410182664488720572279565310900465545696034217895753108309603575181390469361173621726122060699282942177344432293514286138464345094164763907325534474742437363794177155446803008978258596552269181993283166432251628068186983925437883583422349869028272552983925566560068141812693265799007776087699693501722097673332380847889702646067977713866983152992092772346601985629425498004583363607313016984358201923526757719165904179255930696116537698464188521648292955256778223947969372213519510010257100688676700593530874864849129555031762890947976334813138597675482097843569149008524082051272836744772388213569676554760578468607845770891885208004508634100142812398268814404476931268735711877814494043048130677198558458359574380579382600121198234031976940247416079244613459970239026296149701465799261447850004354929914035162649208310661435969534543777725512103562353768429081941732462950573996819705422304474830298350043103211324312027600579495823293044555879916274996862098217989567165535033571364016516749144707484600131197346781993228573720450733783428106399818787253933274551209472973450518270270049736554234211215201599912081048254454287654512289195301025539316988359462827735586440002417470155709123437103500244245985162359407171633658402008078610769411935512300614537839916659101056608549290672535757962735273790133643034192026327799125291261722330804410067593970717101639978248255663010556896911264406645171568404632176962769069856942796372138598342516429763580453694407529405879022672756765068900331572169362813139490528842308383612973063977912857468985383648937804799304761889962852983816885081886942214519665984453092602701692791063489010147870574163365385610415666329941392714266406232077251368097453099510291115421253386762550076050955480848740058883488978166430326881554136134404955446978230466620062356050882877552832649421079496339144357302005932142295334913556967031642919107441214141443535971784141151866566024851000514086417849042673312079602066155099619413432189782455905398219750366135377175157668827337307273362120857441037059228275745122636968096728201162585394087589120945778612190122602956803510538258465075124476848232039746086498814738731673762069862515923253919175485119462698286951230618405165213518331922616741036013666291808689618579575526711481505442145759955789747194647174537828496964031832952387601989107353825650827572554611334280154284311970404088195554096417311359112079781676482213222405322806814901734578813739458720238572621536723321690023231953787316755140363828982765237772995576139591715499400078005513523889036617500863754505064428877292839330675821180437261538314804503568879627447308093909748521908618229757192484462445826807822029547466584350183988543511870539147972460695341352601992391939100123636219088260536524905926815369319629359327424406573931193107469663313939411730658245506630461846279940192198212698364486070273277247448408758844113982432719136387947810152226746875293017858457294559944511254144296294747938541442979105580090820771829445965951340719826577240585352725937122962793221999229155303460418664592387593325707586505105114298048591267455263483715451558711104989634301736850635606871075696930649912216233173352065356518872530205148812572268152633042480880904617973926467287512005597782540447191701287926068453216451354535470978270252126174509452630807763592579107208181471191556732640194258089726001644711573728834979863973916473794849502936087537610821951668849125183933952849617603855318895347162564656039376013718033177011290297928620678062140363297346404224887216589847539575824977819434389422003820484567162214281468489148856525167558114612420987971191925051458857759456376880055846015344572033575347688244238109355151231430498434023276758445784093139367241959242247969640172758784251311690922654286616040273542629975860125031647726604837276631137405316182570478878639849738837437397462133492758955772683282690654518735842118980554279047787836449434745371555661467585390970967957183919120642172387712317560931803529549204251448202716036765240757549490870784477953565574520112775115916203946056249420487522781156997674317581502311478359004725363377973031470919041427815536427463147249767949547757982390448586465076497702553483107510261809177997199880712574858865239452695413363406081182724591131362286749522085713906014091127404522887541870970288828233143413898649049360722911986638540281956175383383884256127427272978314639619783132236891386935316571914644267748794263494817868706629048095262849175759590795506780308800212588288676739482530028606938061462958009612556002970724687517307574540991239032539648664611237575039066574596159083173237513237246054317148162809888122327322979249754569803918831579315096882669969041196561317331634359754238041480408779373169664826221251805622623032161909172897635349117723551619380821179399900791683326458062629416419600192476994691704314627023108450705842432022721497646724162004576143223439353711428917916421125102921049540925258962965227252193018332914687694664155907475008870656516318589881868279859957385431340175940108677596129255879733269465234421886076856718483588291689947634778991928940343038994650827793632888329101292852758350199114568210457327743453065625516943305374759636829635939640435986711195695548715334586765770588861222307016334922872081657889739703602643182864339324790316816753116658060408457266926490126195785823113794439890111277298192848790871290579839912814116327930013724208767771048946302937059303802981374175530088093767914342535393059218104096662829158832198147423035419319780446446374037789069320861903727702946528187146793952669518934799708890257378305177350360835651543256188726378315410329582152369904007805675104448064170315172596088962840746569058808465395829634282513320417916903743231722456687889583678085027731152817647381644977040556922280279464325137230504728165078008443007197551536959536718444394173683964143846239039391567221040340008639927797546159045544656843026934705485313082395846662600871602321736993643444798081570055627180814677002134445179313015458166779565922496675008550632733027293653227008242432128012060414845899658202518056506407922659839200198109695303550539336344027946762735062956570408847615852367523709583157326269894985012438920314003854439188024876730230055460801579729009195512253219245502506092127789523815655958481530279275246815389580839834785145334503696460837767954601086289873611139141971272012592718316949257748372893946421644938383796381063327898957815360208180919738389882062324183573611279972318987203551039117814189875691925866053436248747175882457924174485078916222383803820162002661524608952359023731444410368682670642221279635151431805938207196019075270906353670496873502123902968590015575962274036583649517384208574178698460357255893664071337441066056129097140795845605933666710947609884714849456793345442457575363561850411176082156227042888133110021299330588387721436033383027281624720533758636647660540428221920642878807793175736856877486080115859854926988656424750712411634923034679766275540679420349550604760182017015951350873451390985623684592210972841947113766338308312760516976077226383967461856749110662608983365799404421142591554572065959466166309019116111805092036785239215625465982828527171430728096230094941990451116444671042924801396628871139991099420152211472039983385339635962162943823002704710266566254692538844636255545234316740344315685393384377244913684948824035067321667827510090301090223875739246310378745336290652656782044138010955751088072388203898959916837572185530054820495726093085956023071773706790046328464696390522584967093766464452188717222286007179461110893174365211576910937609249263148426152701952235093061978483435492035014375324582300647592405945328638123435735895808680973923265395563753769953749428117206602292868708986589491878020851509080898399771971273480373658631684384537523595571986984136989184768310305157102819235108928277326204895618329671244886951900564079614160268050339709062764243901280476505658240435990759442341252612567052714863330660313461680455078761996702000215190214506275112558230041920450559962692631838942458779440993115413934307649255844531533078367557181428048661843270915042232831194739126433106225029948111679027228545556723398021283422384317242629205008271301901735208359746937264111792122385626143746909978051122320980491047585410089266683664642141513635850899918362869214097014983072672197423640677007904785327317141656084401812462251973213455605903940034214443960096641134931206993927315500097495114892316569457568348363958413174601200629297421249192187746257505853887391886008743856695290869141070876464507600597373271975721441651443706748984799828728232266936472907011983744442064907916265489481496191213143510604183114002662786183182867920477506207860564149181137807369601847209070671861750458314711852160316478975914178261154706881917891956419219979594415656017190158072985658918330832497777464085126795370823761481551874533142330522528514568133757605530776762498960098181480482416606535075172587280390247014088941280583754378689895165092695265548086810571149552175464762851743679337888804862784642435515666882309614828219978262466731041367111134947219733209926271420349494328370455340387630364733398636279388319184735781421679876458212294563479165136184326452396023614081239253345604977356248559552216369267941860435328468910410102995981101022978739809611068683525382514589649733532581158977702385803862377872031387280952238591382025947782496444286267512359594793318338628037222798781787377765398811751528670267894324766840508913701924510328872750722595819382363442053090468708096963276745469803275634005552924829475807543066557899584134660241456559188013571006535035158116379511146732196934490844105801818637732660010505918991913980371774905459433487943743619692355304456709712821576957148980311193552202826876872883206393543902324668849867947579648195721027532431537543879544218875576024695867292713721439529952398028147130408757638081702256904151937382660127081526921164752223018379244584843407121955418761152351139058113980959263328333353146367158821632196545936974167010027671155663114402989920461721184037490577159700474146465491536050942110356937963094412027037562517725412935736787290743700215458420268054578734116337442486326492636658114784436619153487401798736800974845403215229494969585507736959719163187794122379867093912760767913432411087501201352383849104759558759253717630548893848719914498798704038320250388881593919711986193833620213943401170091177595266939709322302093409205366183628557947422041227723623094042487570106552145239404994816193676779707669267203023806041032141559084584430017915547781975404517595719583728912636365933780141384046267845955958984894174341548083657225498984263925261005473224122803912580334579978210631531022446083880711162069750672470091564622932746638743763104921229872280733833532267817926164551366452546858251378927620230181105172088119154654832411040188054147534565238003471324240343319991543950072778190367379100637552948092777321067594817834670644297357861444056808948912238661265468716622478769277796063293232802910976688708135120217101776854872472180832949622851423660828639072133712993656134782750778620836086308050817261464774198015202783062971431299985352850412844831053641383313781153499439617473967628227507534123052986257513013382840654961416915937000643930838316109653374711694001428811950790202338213500402124078210447768647446741489756565040444476187100541558833068804973378519994890461468916502055403422855188595134324760628648306989408307452936314000586267428782542282330643543854858332154674538481568094089734709286938943582964180989079136351007183766153807307723440742308903949773434803047836005998438201742798778873967019685044625963508153986195330588004429932919481048496025057756291920237690193143028894935120779989146425294252071119511115487221323042754263724520786196017076263162775729890582605628565010920823867035573495152223351319657292347104382544660261332066965043047871328685467567600944053175177771736830757659909703949858301665369706199862899097352852717709554606419048152426073583380836721250930035562904100588729358816596147329559610377332698195274713284313270194975818001103221029143009051351631138396705392183343191188482238473074869469660016902936344889302271343042150296001879508136918350033776787894750800434018069019018789652771098500774040381930858697800270887519383788680582822013086649784725398218599690252229496705730799129866946078477288743170829477939062323027244684744772611026027349610394225118902945407920217519682147148015304305273140581509163997795939614751860172875898638710407248950054504863919549402209987892686725953467752199978036356365348282622222633535376080962933717738260801487218612519060304494784330744052584704737336852984655705174095856418888880850932978181138186762695102071254343497545465648876759517060966934124357546809683293622311660850609593077068957413570602583649478836409077106233223951590746752111522632401596945194321359632726049507307060941094468507143282577223845290774490619949179947521157373284235684803659822032407801735234708816780915172107190625031390825101374599237123625874708178559331719645488000523948201398695191624466385216091476315380473472677815154104892610910172059039917120011441572067991368449157994583673669723259592577822787321154185279462050265380929831576534260598273371591320301014273165881274995863451646582007245652119669605359842929084180020439469255717078523357726202841029336702721911902947378550344133709495254140416863734077547012743163638874903716440686436832498507196146942471883585529724577068172246264107250767882632185789900642267027849869357819542564448137736180216950301246560965828645075520132217623771110913136590792828953814226569389117431457752474879714855534167216384582652289467173136329336174926786771890290727337249288605264558527763001665191702622201744013095440728337947063708775472917430915769903559546842969196633389835906862164351959481884297500695471163432476981128069906076069939974615811443360561262749913717439282810730397944247133139972509642187842624190493338600064826705984835996339374153893790112304520597195518899327145893787743746824523469178338937075221442502222758972924776999495476208376088420130608061871433637829642817038479213345052977035776955022682332684330626874552864330102002774971182514351079889124433743583231349246567488545030830057287616261314208033382325381856992624159967023274120122046580489007566659462441364570423427744631877211871382360854641699887032234834809517849125858523206143495313205568112146359966449976209043569694807955074073674145592133182593942846282067418552176399662556194255806505149052734949716885403411133522674146355288059123464569069802484325346351864060064539394253396212960216459094313891901453677615700948088050158627202245677404917735196351922945612910376476734944187866389750513839776386106431332933687182233752720960316597551574400630143631673882964520537997999901290599167946720258162225056977791800732795040460468903445644855526313450567762997274417611433269038188385979638599234207013302336115413461206536028536481881129482682424098147089362470999195532117505924075289321441074309733877154977316833030657634837425177453690225597652863265388032425073168626879441982250246196536285473149535730267002864462458811294877475987914939616388024377055813088912901181115750444194188578143992677210620462167896086325946241701908047246194805434944809010476396463149703009267942257157476212289592391014696284373295102489877835604581328712594736040547164575078633643150916072571122657854575777013260357215273522399869940530981945631918154437470715729242954125481139953339076853872803334856769692437849823403600534796650834902008014278181580815539626463149647120422166125051424428891084205508786390909465376062444830334965739252840166623172637954066631391776719630423580675726637293244887532550761918319701311509907485022648458135779968972309031640533750996624012612364134044076922835599450520336647483671429313804219543046683921190780876895417600269994120519925098138321642020146911482155463731463234820656113697142276984427045549858300240414137419577284094181494195470962422966503655327169365179569708845613686073466445630283342886428565761658811000860629971125198060414526376965615508320024382115724358078351442493433872114513665430361470789976885327327901575318732042495941025433420539250023404124715531687081329813070012871947334003719998308823000742868303645171630093687808276609909210054113387919319003175988185761562517238549063169382355133427712847785211153174440499537463702054164680296851397273283783783809497661493517330544092702096313275944862847069670374589149354047309981173029684406994523954645374516430214507771395511368972428624809991057765987284845460133315282684939349411729587322533359270802443384889628942123212248673358347001084122693226171301236487628569642793048816272370572381780459467429153826679804168173578348534050750392464825771858550342120080943064225271130173090998190779245787650648218622391356010134857036852668191120871300284892399017833455818140270530597698659732294468018588608708989108275757052622644712943168190115770318630099791077397214925727540415510664391627602243461776911503555248758342347619638705956849959242680991019491987323479026215546140978720394282105655751517227117164249041617538491670915854485487497779265995904666213757055548562717007951306663365096528725636620586472405324602872770750027250848968190644721801143365983742563836793838448574109268531889052429383482167849753596770004370676108642816756056009772638798744555306894636643113473314985268828544977553162430406264133728630810162362628838331370629919791521400679913385488086940357481702918515746335147641030048522420670344883339365112952331025912341294188824023258345182817498505699261994138510789664245897048839446291231836737837655225003420700742731052581065438548750715941820561313144076516538794847715515033248111602217670330547559710366818114700449624405539664594871171294193123603491522722260894233042604049790686432168540244307972181337773318250378342904655937639798859397913308229392705716014546424000100145390009923216129396447787887053624722430216587021497272395046804888372284338025792901378002896003299053012460049537111450432194660169145032992470289672478284868776321816749014879958526395336362163958066083571295183496578432625655970271338601585220423676223153960901024965417471125260178145523185289835808513101062212173854595759186595577378972746431413100808505403967691352171548002192015247400604890621991848341207902729528820996992096900725272457254741629305151598308105811013824831086855150622545620328020988487660552172508270474081744935176262750965283760638115251106157183884902476597171680462040571068851716642102811335770554009905913616032141837574014910896941244575019607473298665725975624764684908864940635633092022443832838911599176232216543383473337247032638337482041746170964606127321555638942271302017335266411225703340597757778181646064037615678221454402330898860431693294832121205987623179674636580531927695519574865355792316824931443715600231666911482431902089811075888789924725582438017951182840539822940417720575071269843461557181029485956458527411900664495687090215457550347325189541712963731806008216022757639852870362944206535042120519857095538574986532180170129384868627621298821978476829505902348923644725692222717974219084633240235239670607620935739953609682933132991608062042831981974176899777621817986019425141278624448401671288074302003861393468303892766440910075043691602664120899527059440350822557085462484799348787830151361081422892012773503150969184015905985351820096189681990297963026410097315192134139007118893951405248456524151761397631241501212580351824477564284723231353083909572192559203428692706437346889521107991982088016249631378585105879176844646425113170801981790452780534567613899837155147283681829089392901532395876370164258231064053860888538058086150928386508972566191744002195194900511050915983803394246027826757748753485010751518733058324186379960116480790310724355849328170600205333317069789542804465980682394869320955946294026877227193168892515784972092578085539951063565634380507006227563844633674852989176486057291293314678995842069504041612857380622237791232770916905796297632810504043036532857670269868187102535016015281499649211610609835401447600568522585460660991052337248846271219426132277650648055234657502196057544858810689267948487524961899308577268357128965563923402126001014643660508995590899197134205684462781188466325976532690588083633561279894573018250620599842520779114667096249654265815443440165553362989501833692951309478097145883966749406187485003555644998197019489827688124326631958676545935643571256882270427090515042002462371636669071320180126330777702285273743720096133632800112165540661737346885853318303784691898516745144254819964552161980464298435731503459458811754846745437293559274621527681925048011355032623356297697073837104628653902751678739331822263551388359972788283818552021754506659198794951236844160995837887604750637436919976842813591717598116495509392568103281499067178025962653356586843374638363572432383132913126722448155486608800526522649263267085765996596587347242042475293698630968139407490637854308634553041287647693813796223214029356845654358536963221563544962897282307146115700900365021911103714231033588683976749097145866407842147000031954298070506677808219531138398109844107490098482984889098463677394900060190172707627904343303105472748732732360313206416050214005151250311729583693453892543360136260525617396816109232418219922495699604267215726152603858246659050340232514733399057632409490017807070573805064182713295603542636201033952494065223088668755174857049589912968561072164431306799411782687745330133599955553470456213075474491829200998128653775675175493135170956361098103227058286397764215565216497939011349972754897149227935560310241521378989387597154848774907556121962191143469625213207856636705774729379165855142745124699912318121528895737463973139733586835025620831475787593400947806719932200923030010325345899815117208781757649636130601253435039489864117920625803311708209173618814053062725216198944186417732968716356137049151731275396044948117315189264742880000249697262293301857547170344573451608596433873233222959456078876114342312233458173206272582516044043013464977571714621254148029930791589936478250420167246864394342436505387681359205045505773567748417945970592580785556184717246736309464016804095794470788187790680293126800561796751216038755325953868357463022139596211642372554644934268571006641172664084360825685941932581215001029296413104215697562274685802754203845164683713865651382552819890429621944994521653715244265303539340548158411156082993804650808639712942544989193586187794711443866188983352366235395767582566727655026574292006659140898667621135726223255682062076369582772223349179256558666033361128118660839704644298573750567111061480928912128249138427105639399423972527045203111864395895923503094745023549575645736712756434263683565588971438075290753167141992238550850246182940902452223242985732296475101119438160868136774019536231493901775683311237328270828666635913511407811969645293172564612950434744894207946353343742160502430519395306071684626751788119542932428942637253187085391746555563967123857114675580055770207081887429155294245138691761107752868390943100914059689695656850928466529654904035598859210896165515992648334024358865428224423049256290923184199346245340004137759177550728664135108568337131314225612626759249430685492568484586417992194082239222315362363715439461282796706694366950647777965356254414947137148962765604313798339592338922741606765327931210460140801208916663865463209014784356593907153923753273654172024169661324816669269589751086616885673490011752623893856397727288290172599780604838698425457162046273444247961753629292808394798520655444770555595151218868193487100336616820236137744292410695628444257150826842453384178473364438159688739511911149107301774477100428822000708112164487411470145630572244490453232507015186214673589392337153472769764815221988520405767029443273094614537119497842359856348369681204002013565650391535005688692373563947359335510484184511040231295994070778747489813068666968690211952772330642085928075965585786784690232301297199065616576728197120638469128180594384671585966685848933846318846643855159707412212860254882411402819581051763655743338471740661623185473274789629595712782096137906725903029549824230657975853998309828539718436083926480070622648396907930955539541886683074205063874213519780544982767118139857172106762440766029614191290844893322978040342747280603870495688527074495593086753848251488731813103161665361605749503939951804239047880398007374563355317963343505861658931568718604289645215369527136327326287578298130114077474558934334350858396753477230265261171313353427958961617031143763924599517798034139461321725844933750388988164449376223240952503530118446267740079057457876945526459414231455984496799283545427655245945570245129446690836808635411761817045708532859491347182284154915978582005258111128556107330650576495756427070377756581429030280510530710827538755640805468401923609802913048344511472307280709722888482642622845612041676443221448978877479892331743490054551335726565534066513749696690729429764505533617031686445703600479614597731615452194393846517880460295942498758347423717915267241716782886457308855164400592663424520613604595058770027232896060221345186715125954363993263761463327123388537076874401264561823869288155453252743523496077000224803753535829842861569624428232766267596446348326407669670025129628063853137570956271386476253356386078752574280106017360861510393004854996214721807789035492888050506971104615115181800130817231664117092079833180144509714426901131553037071059859997851912599148515070399370657004255187477186593840894814747522945885259049624928738472996749409284127972324567020651558048276684989757365928840321558101979336049596160096875194244663782701406608007321880890849049967078031410193212019684683840660982820130119554089288892817294810303967254646966561951697074551142801884863673394402730256671393986992658720955415911896878975477068024441257449809967010670174507557917005235830847144548394975794338802769278248314805602913968870075636607417668941939449615527722002152620588484077797640043532247805510923492963667474461450186604312651526825985759861453394310465176216118798918310812545523148385589559607350153988450798945192685981976838550480673926145782235321556702366542467465261719065569294515445014100370257540547752566891221698314649260513076954540432069451264497860149020566965752003584632352498412512615384419063388983961123577302198150793709107953474233029418958412807785682778681360042266952112529379911693907775090874464567255238999089212180299425667763654803547568245452911792952592616587527101320455708388906365192510050977445206173656079094421720310336591387595115851988084879381779844613567069555349569017966226304729034658939326401767814608601302215909558697621917707794022590475129591356748198755201204352189662794543314034340917437351485933116026150684487533954771579180832328960378019126205519533476985344357905093875011055192760987454936929018264878549750763397999332514827748045043313739314800574932267019564475303857066217742517594650029807160702604440055648788657207263497968324974930285583361064639308158019325856995993059298875391006923216882937724889093284671270600163599958313696106287987757902206383306927321388970150008218527459079921863934852518040372253191560951631991525583349552628467131092186499220642177129210912202817339381585868019261893406439263718475103584862575826306228435621495301089977288121194926850043462438420938839310944466807599689102278069549810425718977539815296429881996002305372606608935096145771962018779514485358382922593962673555168294798787971379173068874459945068608092708076425597215241585887907890284061270466907080664803051995364046196866548953204834877317544361625781094113198216670292092526953451929356167825326659143734966715978690383616147541004854158320353405905430676546626616216210177140524285404181759683057516131837623643179124005130857990823711862475609806546760503948237816463563530991500265467003936387286991463771604074978841309570593420946995191383927997558997081396942973964763284970811919205437154455781893630593124691211447862563175452894104715702451083882778420607265633170153546789563296103569445245358770755079133940215122155104553766139896647054830053913932242607594099624320758102222630041843717744975337950173990751171526445087452294062554848419894448685301917467492154188208808706082228504311534367530828500143890433139347907194928439975243765726055153079764708022346686310365834887844263385233241869357118043106437040126573632992174546203841008129298562831583727329297322520747605508424002310363534350405788040797491958237827877156257943493358371132897264836394737880583889641675291275926351807301869472332283240319475907035396136187345623770622845211304992599884094077385339759137667561418330270309383860212474679922199285971179661243175959244932934342907863881057715156183408675650291817598201607769919086069116064212853592522249720333999989945672934656689478445019372899420403473743784514193859727943190588236378292803471673680646393646465146593152679601184487499465670051145417843722129538548441437335503257201191521543946388717475149658055896519465620691110530283860230727600241694345616555126913667790239457048901686710343905935791373155678864471304304666550001254476582258334480397260394206131281109305378601794474839320291139817800268446208772543477350430886322299287499529703435489072901823168673076953005812761502999380994939563050181802242991854736207326539927157415851195039062232792520831218914056959743184235826407685412617133798809182282279894117684660831325592986966903939746660802202760960699248809405520237417635246978230302423033196652584701893700966739062243417284665044236148519756710237276760755189819472609923846793587471102518547507874465950105590774454492499805993084138639686359106481907773045485007716155619521514858863717415997228371593058470109287579124618703503724913111430724951352052342206830819259891960079220725004643426596385657385255786146164632682605751057768368572902588666935058143339957498811591982346555867918586333518739244246802973400952774761311388337527545186394861581699205456584996092910068656487924104536887058460534363493645546690553583494167009833834836241567663937044106296425272683912380771328319935765312268276967141885451645899883569157760207365044880433952531848734935471359007851775283864015685507217001105335052047301046187956266301550682136301399974170517830205417508722486281929666092180795464092102307439760723742508816827989519745790553152499129160450043575327344475961223544202841450116065588019955126971463885357076212026573774654638016347895215813974876083489303038719080432437877161312984503172264927902244267107759638143258923468046190392304582298473229028275877710070202643798964844118365563499091883932408045495178780443579870205702541199013251867894996867128637045345489125012315862711704444930484416201115734633418537515620632273104141834153735661410008400067262041097979609094898917676232221964104331167959426702272741808282399333644149273395589907023135095201926279184564278371096811053055910562268225327616157580153154775221073364498028486084091430023850563928279766697352923801345327582038221389266717480901404700235970391556147617357358955436751573245369454455341061201004206253281284563174695507577185864596461583406752029859920191467586664352625691796582248437698783102748104347345655886173484883975121793243596200888849671040087406002746369278260921811506421952180415551036555522049981895052986363959683528675241929599555571272831913153044818286812711965759751420002157044367033570022079552934571791155052123749176189820330694294272226210131801312111984797082109464687569616274645999984536935941365855358177550028750828963409738973536867007681552555316577167433708428955517297065205516182368533364052144215118797217833048752606399051348816791633730312204985239683464178967253954762166872518574783538658781133221395727233344171295595934619437688434530166937649031290756059521648454559560123160393996167527262774644523088352461140377943254563245627651218137094315608132959056697456394358558358133532043461642972776678352298067264072274054878866988909520244288195607720752554705601918551679777935528557510682435785160972302185915211614020201902296680738394921353644769582607422448117563616245460704163294806684751129608166464009554694037216394198450726438887257760191620299803217309469740177029398417717667140678977294366177186389418938660657691285202963030099963438450880773876480831423508664202578929490885001320759295558013737004525032992578333189636589988800129512035925840872239377697055156699698493809217181502402534495150811647482517208911623065824994448318406530317280930330152153112965696617326973545781458299761086089965322073651984054715403288745145651056992636543604119031160649251151942221944822927733551515757566727228880692823022269063148081934896116189513601079966532894763383409422040106973412491065094021036441078978835429269713172494782562145049122521516845501602897373489728458318211399880656432677304783990157883305340910717534659040869707725283978309315712109419858474577866243888608142131055061272287553704598477599226115088601197144920720760272862868451231422897269420616896614514985440964312695583034237221770374969553233572693693045285480677338352653389945043420741618070903790238222887231838030333186194299819560901365314507513041280466682961559721260669736244887290342224196282875687720400211697017703121879833542328452117850843281130774852105090518358398563577043711759074591748142169284571199276919664000759647547909028348633202504714467629022491060256751728782719151876904350354863591551495097927023107881512457067002787238433925143074041750405209172548309975309713745036403587647526444786466609810371387284362095032240537601658357715809843278546625630764714474338605803813815572479136898350142790218358666590892482040914182129004824466764891858720804048454158161524289563754976731077855091704615221461069478089237173077255542565867838991520420688625797301823652041335186206845261108457907729969747402038005003921749974657858203670794656171454717492163543269117181822335549892263907743332037022310381150618866054922145491933982032590282346452141041109977942388243913844564358980145902652630336855355371647148348577861790763243833225297694864471410907883739227563223221241439098121397761004128742152265842758321562148804655403062365981619508857170701171381639228062747668798896743345243786744904018251462269980305888913094688496499486936699365584365982023391221152721362421201710660251469184323488274952756107529314495719425850334229607452223538430293427954645006716295553628391938605335408338092905299988045798023848970472888056817246013603644620962450420912480396558815996418685919749702090550590307849697285384398250663166454545784362702848776617349476593713850852637728471277318983331026471701866981703727793661822550122091328876565254201635114614797961541529252464970503136531565595676505122810954700132709509505749573733162748260278476169809736700553025839565045709938762008669592369370802248219457328710756340009176170797265046990091860783146101990361604004267962147004179716996372592725219157778221028927475504166898780430731698922852278012392860291885912325380937060992107384098995503629831506002156134621452673908975611862471768784026433070380759314139410314354140259421328234102178871136367240831599683558210639855781495898021028108177789599400426323609594385955255575918433728247337962569730396935759630313550167901635704662006009477584359395086741671274585250092666250734110848385329723937555669227148965126904489262093795934252282055069988099677942534070090214224575794081389506162124882067645696854003876543483386970452941561008925567747345902501147513882823139312102005423400879705168309785586980040488535799433351106057790151485432444873366860770269709857957102244489215415068990431747778191246614736013582109613692138809475611564691796824250997661147369019201555150958634470736939389148548305212797509349424453832472914579808024345973812742802888683328240891707351914528961202695883656233700985750441502694672009254825721616252918492325389261393581788420176801644964857605840786606390951768354755349238567336308475048251771354555911607428111845592545402234307812269106454724598395905978415608086828181201175929370021235887672564317240289046831552114666881383861282066787303638337743089006113979543597932220562528646726148529788822199011527585836961119373830958817112461950771291135120657334363664732978804602186742169044033106984627349103976684192330282955285371458870548049597338849687954246277196466602610266773904216765500394093247213378801230213301017374287437541333994924051255296750745017876115284420617267940868279695768773404537913155855483486864430304956192741717390995109383700423400541475262111048864716909684006120789194738281939824201565022425472895791819107376509193000097920079674772255492448147834066148120913654786399558553597076275920966611098648298547875876253684271204480401537541240072817195922190738184252430110853900324629965763885106054969722794833300531884147282608298513642894596307761604586244605276612758202019070516212592945299940915383083326225595216888470408047056696131334991599951626943999712065003531016081626937098066584453479712807405636354902955393496562411686515621148368349601840263769447514472203356345564937657834981633733922911994790635184889729210679866555601468225524061204196908782014179135896925820143890864987226425366517865016639222001331213627178320708209492919137563811669150327365175053977918088260465812095445824745074911321673183569793654111870632746218591459841410065935021257129324504239277821823646448132852671002984957570173505313175711645970882690225030028947151875794784028060863420135950996397980687902154687781931014664852001340455919893796712015115134754801748997929789100575327811002792103495473768801924092360504709449590696355570417752015219961247205689729751688653125440065781849817941227609018815183232300351453366217654262891385415549011737546118587011238214965617855710735397639762990344879339189169414259225401174636627592880307258985724774852661031745615381377755145006204796617233239392323167932400720744048378861613933725576550362367438317369268900633219098565005908231928240128106229921950728111824814310470054479928076857747221610133887538997636688653211144345751610670007782198127617373716463904029377456612891767566027261665055353022676884821920837330162024415906391095473563294878727559888229898150318683934366608256667229036864326227433779256601557834002107216353147770089629770376334585154380208426728909360717171882161508570332362881661463330970978195179829870620175994212173725377004723836826082927126383151460524874829940707116277074206075079107563241714455777435132110478757732185288293070750195860343913400358196876919205428466031636637030583577276658344355247540666369188782690553574920133279846717242287126164319907456236991971119119583774442212892793537658538724615246885786129909929819555688240451159547181482886220397599435540205231251827364038640709511910484236910719823340796823062688788811416583150805588182006431654678116323230950951961969363565481011017056333858308049509270936242367177857248996341284982308270054273683069910263066638386878236787828907252761851184169819359634431444032120878766078295972500363174219726616849054627744814536189118671690183049598182212999874873348891615965891576704497743842697849275278037723858768641656155798970273387069493856416540917961841909487289593151012166390899671748823671593274586570302639534000778962288232490434064831467413395870084310089191676480059610166575626967457039969967898289106932856142104378211010084215224673479411099003294002716284913872461519963604006549806940720260384992638017774501201612328114194924223663725745486394062041298855883225154489598533900000824724647055837956103891651566390647974362309882082147217807782700567195438400365982274698232345967856346610843940889370391661946987019158390940505201163376635750549663398769090994098464614592016710044361270706992490998959407704507059653940365901073339010487178565823948839031534051173388379916625342422004419796657097979393377123323818156530548909079082354330815110809987495650205476552504801965319656930196575415111173471874051058223907469975508062068214556632957664108152438111123224646880122025237142332085222717947035777233302454276391675925753391160216400842805503022203333902064814223719095382059830518140060996126322774571085807448716151598990084252303477514794564515948400219396406145371222673960323718193412219030695387991089851176745749853945758268562755594808146682611912946107057585358701818229775491468246666292843272517812821061249008113073361339059029321515838456970572447939599931337415372117283033820736300951302923308112365977523611465259961579535663007653752724602977705962725100989324373528586463841921994732377682554408390298578847762627783655144869173094035188568973834468327739323465584312099280097301013764090848004886163862509371523929261835933910621299110426216338434155559680417337393106317014562663439241301004485809268413757579964089674507277639763659013127752760055128336276243214837203374654480871402614748698754350707344593176275386335513226584676762221151113162084545507728167931470951155977544757730058436453383526734366588924380026838850734405918749100939579406574526364610685623057840642973903540999183075794731986590819573946817626343744156351949567782533034545979731949736818547478707078511810194585297159997518984340557927297259598395539233220735568631893962192844940038651076803322313873219179180290950679421639302009363966703940772439158725619667265737509196924141099713354580739808599071103500691452765212171735419128279063243031970255769765370470798632432576162773678888644833875489541262929393128822422778359433064496244169544481976052414563020878686032124278889752443386167536356190802306543900506638418997325880676570263014015231499162204293196731346142618472523281416912266034309896094835530991486330735981249146442052445038343673488198866541096167950732040838469667530222029832041665572887244921874866332068807148348613813087821478597080934741144433507873093431448014676851207962659650058356533334156216023435925534745744283823801014032845806834840284560145129227314456549024405833065327715962334103208970617610456394357164449804830829128375238275087940311510244131979027890912972272208801643871806763533230438935099920161171659107208376945950869258704019912510649196358061521908581124429469137329634083673108138738149400180348274807820881668802063082066847609943375977052330736947397278291908070251982718902839053858718417034841776244362502922566493563597165518679836806361553696009234705235206822093451186386307146777718135017788264959623753284304066380180239167285206376854821121508759718276731985109317671424619248529477810075831709353254300946621065822849371114556373700721523015363240218633944719260055766906518189590746162013171041679630556487853680585207605432659985664922927441513276439052939230176491688561428807214848921670572368099666224702789781656230573017780367268649478198548945187525413194804759520416849042474239969178862803106187847339323646682291957117349162734742795783868473975753322418879624245694383603317882708139680695378476604829571973433045260907540750622778884911579153280061698677698533520531977020708640131732777132166451628911057804774176318961208424156390119003234954778698205743130327391184796090128928634915378772884853621246751685633379041605652640166882934830257238840614043721299529303333788633642841721349445407504561273558414476201896851026504192192031504650395308220203002997853239612615614017012698672259843267265339257221261377966598116980802448830788380884333939020037048887429838758735572519910145043591139943547524971665067271547589091650193425721258833835822733970446050642507820560248878575504782517470824498030144272383666620470705697067979564009995980831558277395634055274526184725039435087107907442964862428582400643659045831129497691929896708813192560709961344627938048216447163780307758280610472383342000462135003940890107163526482904731551576522155511495769488509736876226435527817884533944353165818381494054595047412857257460100117572764876189892478140631651344089697334750909697484800627253001291164413650354624151326045493488885471026535847261833289258414802076388592932073275901012022291321875114460815874935678263063557400293618020376378892004575984920269741590595041063118943828293101205346091066933583671251081397778006098467876040687177395548673921438642989778956856588928773961253896618746612620691722203270224256973527456501507028426866055667462483231365459558523778817928369942940947221904647680524264012832005843062112016949880988603135197518615436435989370348123876451706091453023544866198342831442084529584228525062500341296698220509515410250100989655568586846984280847371155858090712542017467420470565237753245208455807623327730823392316427542070542155590927891525441995898803129220663937714306824311015980478438280823578614706267487989376397231263339520308840516782903319930746932265307823393759865723490220938786317322684570498724307674243907160821317302743054959710278992417743621470593760144592638278563372581218055996460946181407855805427322250819140324211705750681849498217159506367086338280551496544938368799366615244499519025649944100369144447980858034459562899295320882080096461065803553876438354201954363843292003776197690404028204643393390721935755035543575122785780574877090131657456203151467257907782088523574920993252932872555953653213937095470213357861957505214800398358760789115987747412434734841003626886141964611818766883933855290382657595928766317604640218818993346277886911050265896869215503458346150364577271332086625705983418689429843156695487212838884497427033164566825858467596452419137386038782356006329833670777394011181956781218136031880432261616102098154198118158519169533631807951969972096376769790823838463952944341427046475562597913992302853266335835980073771105335923966069591675569470253389268765853678549564815710187053053193900786182603056304793734447251985209992445295143607300388266111512135757010030590018792202795700870257104268991557916991405971251269277536642786671178799657561536906386089514921187021681080859296123403635581888338448927315602846332292304799161685881590102074604572306295237933829391417947577238414086475475433916758638120018736572658704782966488164444815678344869663814588994139224196064001089023682852456860442658218473444130451906544890319002129793885752476971910802090714274887994116287078019194231908052200948399847851523561001853873971970753945577814145484879279398247489162589085178477043845653922508668639595644649213204108814398445734821107086345040586463855750007644108078783576509556677865366139645107215359413596318783190411933591428430273262160997840680649370998703840026514745969547646356658968155445180171893214435134842151736598050776890421173362110575963657823661591700117294616926030917668060247089216960682648639970490646271451054798937829082445217177343447845990598505413445555787892434355515499762567600167200901692726720356512677424216610993777019737326304436062438128352841130312789638450852472183905298089901504457443138054134501829260562003725617838503049663561409227907179979679822973109683711926078009400563789218008402964414997468397194909757612130280602436192321872604507342009901969038009276165240900574695576638007221944627142192713913403586536340887311456560392211458822494514026814427201619333438717461638223011965110837619377932755923056800944846605582255954322456013496241223834484899664014734983575072701611326915096733171448214003483560807975325192557776473141248905621050901991823466296678912015930092509516877076614997107817503679306094020487010503858510367420360347276103078045888559357152838519860994097263208589710485197059069117487981774959740537448739951582169117932376967117349442748990378372634221770793211980803353632700910123262274253481504469204628363901869619717248815360100519013792636645605832831252408803866096194001439009529154434471020631717147696076492724420913758226418416845718231249525302849322908613696825502977115462305866071700446126268245261835432045399923820830873354049820355195613940036600682660217038508748443329809096929931328135533657488137678252326314980814795206960744176953609713582873666230898069018229820930967233051739786831251273627593689362063697753550813727201957401257089232206928120809102160196053050659808328477358094509006959344868411037009031928850864239756720479091972565302091299591743712666182374302583767303597505037554700766283858011043241498710681786085000617061614636761506563762851844459030379347744523945177576748570662626660127849322935473852698750309154903631892594958141693638140603202112100419551116476364883392526414080419021526024552428973549828395989117503019755352815591375615873600622366771115135264013817373875602071131284424451846469653560064936455984823644104334584799244004834648967121820407114773092656456569685374067354670735429636645385936777486250118213554447931694073768412477136036579548904072105755555826349890844518792991569680134854943768778971454500168486524256599182036608995092029973751229642573980808366660848973821296552229611566317912911697713493585476222091121912671222451513667896395663033894978582759999052460920221231509814940728902048651760284200718420360057104170082727685126296254896423639633413240818100240285234349400465002561710152418680200272632828093414604420775252189308235602399425065421491206650362823433024330682706779673885907008785356677209523785381637921770614949617290358720056565234807980490094500600642871395523755321542217282413132703504004187142242238048280066269738634233311569514411486672241121253605313647611459875079116267485379442997070176309415670687151196568042763923300163413935254786277635799543426634130976358334978333535695294113021294065308777184793997324298854311405331749344553169437020065695476929664140223696263268229804851005981112488373861882777330996362000016708985525104505288519733236201671656270412444890143533774339294847658418640886091486193899529251011564741825725368137884579657511788420358180347827772999773225162203102851070998530778635341823351015349278336255950132141446040670395308561498761248791415716580621574084837437862068863527047172317249822960572815974812745532974143038077568603115507075780563121700539470627296235449553881227831648257515143083203877962736634177717363466833742505795625298922239131162857756996665095700981244763389174145306458037877303597858008218009525887280348399652580909394561040165968983325321699454753213006584614083362310796193823093795874123133741605612418754511876424880908223336885067573023562647747687460375635762203159274004828285931727895397934044944207386642529419808708410107730874482894696048681773622616536241568844762550732139252241244343519676006854051791248909876353611939333788734642813726607099257577104764053179693138846715415955115926522783582873061808572474206198663751707591403782176341961284223385523662964517571879786405792326120685717490538303151380634238103339774186052049577412437298456993297613645719357357819517909252768107613773626042302026074664091420983203847228450043869265310987096388702430319955460228230281504777137456571765262340491668152064552513382108698944788036062188926828513912222008923181457537103970064301724905233522409924641910134825848040256940139597391002274614598960776671579468174402974212532640402337593705787585417702633310090518748321007334474424116129337164070659765877519326252183713678614398055696428260470938457040087492753948574084082260178616018217406796642609516386261253824826543139090368513940839983663481793629987934509673458650684141666270849387871055842521501918311477367915653660778996843384216448938145399245552370244991077144289670992028533701546817198243809672527117280640417218340370733108731119030377249337911069031268491298781843564541413067202837353510448610750449505487254744153117556707219885923162559199660263680719512819417415071827252597220058173922149147300365597879835007542349153548782537523952903875780531822273208741575632731137285364872208178679603728603137926991970259456089247608193576608626843199802255707116905527105907403620050283239548725113139857570359212581527298611016308133498901846760554860278218853500908688404036229649178800822731375843395148216200781039079109824580236245893003294823964872937463497022908475497748505132757084883480892845261758610288510329710859978954802321847130875881675635230764238994209414595955285535115210854715519848463511411537254545090263774085678943286507532768002477033199108913751796134667895815152239500800763645444583359368640632220010577599794904214883054640428837911213043595534483058355842816676964448703029347050494540115439166908615365513103413866931558412365058373412374774625713135806008717266081103234410830765340157611381415962080033927297483488785440694079171541806765938568777896541530843833240853820411038823621001340941184236003881475086039965530034468363449541026373719313104341115928762743694217394291642770530973909205331744149232415086126636760871919189159533596881966413728173499095039556463748598641569901447364324482307589864309023677972167923871747484755258432162466294190086788735462506994077004001716881593731484725384857534517546767902377361470266176106421484085847884209473714091930741572328905736660063248852561850015405278275322433157476644728282034845178101085561871930991905423978644348792271176932858777127143287717357588411023600616855485553892926932157384462454398882802219376783704717344389287172439073588674132845154474484867449866250569291015303983132406094915728074527386457890891912093311047792678712943377921115363348048144167567476505088552584686134371993569016830453909251635825642040910599347180374210724272635094168198626649444478445372876850591256811301074362858506522884300840498570457162693721888093990466958790976946855210564012433008178941351086991565218160311886327215948901013647661767293911206592185871406568007517623535067739339042920950886444020458275371920856467796803036633700980620833905912313250778743496567861855645443487380436324862557463248353188406719097043598235725260231082005795694807306233321278376198523553154602210269285081101636407230494710016754438749040919949088512110190445893693586120447617812298632350780662445781374197113048377166910997364834351165949428798690619769423952138701215927520778680948779463616508682934313015945764112962607222952615996053189227903714249451539159189738450240264393361275632770182495875033312912835254824348959362557505324069968099119214711979261953392677942213015221844463658547820124344752986307450457573034479647572653480330691856985304310383002367627667251265313233972494688289289764786027583596492940541326809593561546600471005633195538449491541704154817335095628212163819299443137395260063870371981894684465513430943386234926877700596755837945587874330079621094880667809805059598336460155930395266699828699332704970170064921804551475472585740512599185944490769722168524334301530344707477934447225211239376982197894965797713370850277547558072917118307991227179421236080127952657023380863910978435119040427605446331313491226712247473582067023973103655798434016434951719835298189067200418367883597912432131006181390800024245756485548665573386835795808439395549767124840994013290997252723318473163210831435463759853189956978159404746952943224978334940347839263682975684129867935723720663430506721089931476280021850810351136433838084355673872732293846243871512642513475877390033187949845817331522339206909931443740745774420039094537677821988500366560540205654732479627121610364455613847229274582435715190547916984758221732480575506196122550042538136469697793712784382323768792667397466936224315167175399711584153610832805788131577074175656536832318551882495432432783566510615659806286626456181839084363051444152487900662818310042742870589124772650166236425061713343294989876579607207910489394892230752875368316580838787365452855580044042673523391245042556837349281695839503998774779445205183923451573767882257607327659066069707794880959772127815933066442741350264554472536742974812560868843537090513599541254794681286947213408490790472708695657702940890915382383414621672113235838219286436255487744120356227609090398190744697547945932077067273847895787952652229589228546479981557380155662379144396298295397456095045405139252345191975269905814481566608138239966514070895047077750515995797395121874558952137320653671504237450602584915807280583521812786048421051699383297418415080327271474658593919038188280531517145401913578153409585725700057221043377996019361762300952156035922846807666811694304193628890648658068666073953654363158451645531973204925974409297870371415237273846537861282054211216302151417238446024574793687735313232610642788046079729746396288217508340244535807518966916221587471183103305282507423518423016965375296257867319824273790551257499311821476086357097826566499163498555946083704104228113319881076239598335332355946353668434131124418661077575049461092142658851687429059199505486124031960144760271579987089852366502503347745730198618497611000024007600537928591374047899352932273611002351531132033272445867156028513931677020873695993588402955958405499959235819361137042726525560293477943049161272368091809788759495558072554522868986534287880885209174074344950465727399441301504665593583785438407959530347898304316604601737095043023894596734410576258931198968965819823348384948209866551256951579530760094285613757945175218957071833912537631695393803361904967121778153237605810056057905663552158762608146804272333686751682911367827172654627628579490741173371963179475551707857041105126614148430803524107773622149315607604813256820425355874456770873431844388999014418972061699168353565746227315177909289951796812924960267582815861858926432839944347326824834362320812428323737166760510269498794938372954787865908654193794708393029169633510323245448557914683309155499565961377063036850058466916806820556030636990151508140331102974731969766483651118844466965340500315961925766479625880655814250018622886844650847095626125199630257387198603854180647407766058010693391507579899706981319131200706163846005538345069342717140577139445984338824344336219300943932375509589338223752250617028863844161596659049861287168923025058347181585435096737630440157766791092476317762729055808962672351480554829656790836799206163659648882830726689821248087696967081673050436697480819494340325537656044075340532896919346758666729517484783767557331143574696328395543118755671580984917254118425249419294318348935530427517808875838558722518035802769806804123015706956170188105075301095665666940525460873334733289198276906342039877025244577181091089258939730322939447212121907417626872373922982215594708383777495509443053490748163696491162563595910189069966360496561904942000526222578569906566481793282602203444057942098372152032021021226556715424557335933710400068763922101197630139970115961805740627833986314518404104903479272054771414022110573582140814456742959701252700189991117509095454244600570407385972197947841399057232716547067211248975308920307798223127161548669491418618958066830758935788732843042852148352356812881614793240967044576411779979607660307812914379168954188348750824109165696675577707784335344165247588078049805127307919614370503806146992337490057199278914095759541264513483228602811645402023568915402764983849988518698064686012704156360099500215377121597469660370304142053658946411180537950874358197333253763528438005709155540957326505055633776468705963058898598601386431938873875372836310015516679694666813876835875954475570632836422225300485210997351984623776068606248799866905924499455749705236858312352304203655717431088860370990871988529701859067947771020811338395436659340783733564673027168396651490003975870052124369317414489247443343066402113509462551414104022312236436324817380748778481058605748380922701215693331887867301315923585006959769428411609187015969040192724058395524875388312932012467111781692183730590393291678797253139725267206676236667207858330531609112355472042429310698623959783692075886702347582171149144524220757203124270114586968131115308872475513815363527593425231310535275602742334804133320890321546101436146891531140371726333874579846018323683003750164737122881230150837587126321594074863511659270646822487184799321741462883021467338532952701961927140080871034257580629459278264434374472440732803278317578141852468330257759446214880478189324913773474663129541936767901151656755978267974515428975883346932353341044969345292808342664168480576979792583691337623461883397284940806218908035617145215275118138171188249635072193580116312950204420270365926940853902910660583720614067991969123365620687391627825705277516370255038040019829213131634484260421431054421201420156506065073472127674960234445673884345963494596852749210655216453028062020991132930440597542459502827278824762264134551561469057934190263785020461540731318519171448296273058186173357158184949459447294018744557411310891408879439389891138190919099847627663591063539102753175009095645139912925107985246020449634418998491440339523740387981191706275954936522533352716861267149366190210890148942569273108650367237230125195883431098256355424582338274363878298115185648544188019921217989560241879469101728997494024500666713000754389432554191280868967581108670014797625139616649180276307459828101236517195226621898260989256207586614828227828054061421145127730386170390862526266294118629182260920867396924161732339095357381337243175458713327001654501001366324940289895508055045622419907786067430701296255106808686883861233423764366405820459061487822494604977866908332962510933120290205776697261270326381095818438709511259051726269169866292764614970877545301506594103069891864284108765512866017280246878372891026738711362980143959875929863831964357357048094919985101622286544240721444493118578428362939462505217193955990291979233548621080931626980036474403242746831880147115782203349927946237020979474072913479738122276931205899337592734506752301602248401603890872139680822050429964128436377443732382303450535491517462311617718192545504930705342088168231076421077210577902173953643313917122686803413440195691993524965873458453894337736715990808871575950619248064135260065958614262907320201285159320626517152004552183186237887695007319555515243147494264300678400052494066669942474853975992503677807358221806322060755302934266461737111243325537681630548403279110851765178403693016584782844564380703194644569240622883920577833811577722061447175671323078066830273713760330012974147805325532572427717165344436880036472261392027851459809264363677957995856325762820317906463557038809728063193459858956267539321763368650339473170418241534431465877025601958456929882531462927915029393780721847518919436670365877034461190879384040943123845696602562115904532668422450490013340508108213777583632814651805645756947328676655632616530848082937458139046919601735190157193197900899357718376691770836365342251120967548880781716083079226209300452897776654296741814384278797920899248293538895502775169823335496989844269132484358411203780062249521440353211272870260805163730260544045996287313941148467316485712986955222878981851710109743983706319017211614590961620092658683631247933474377641051400106256510352082815873913507390857971273513118219648979296420013634186292809545368500232993700208156989240357759643088342258701787730604090479341034124541097074582965131543951718336243528401184819725330715093261189569261738039828397931937709615385719337769903390689298863162270328753193480997591529445789822860691640653725982550042970203394534288042715561592991145535384638648288127771825839636000856740062881600694691655240721967304107460288487312700717234239317328507867407469426204555155559988096165527104624183562253292062652457457603930208008335694065558310109466105155948922115714809274015542339791830690271817286961117689104293035774307379554890208131403504939791872913282846298021601766394587028873684837811299489497968943225595121528201140657242606955554817927207854465073641596394818675164455201964173209605615471264448062567383536823349372121600057716084538234631417230506493087036924655538512568573228673946796252900195301785694912568561006498089637584475510018191044195902404090244974859791249057269924186913135590158292108814020075434835541841359588100008045414038464931127574481143603151855624687099665515282878276672575319077097791831968431437748981186304570768592550530135168576023947225696054566915653894750106931429399097542586698428969111456516504446434565636786907051802035745015637737941277019364135138669453164808191904292627154651767878772018349654694580806104044466520914704501984744855733935732261897935284198261926995786784255323374063258005873678520955148459644745242607076359243836366040080891071421507805316103777583278588219483070492693597516746781746094944232850091396580310099955271632670955277186515598797041621018682806587118468659869522250410739858908698561468136862730739547910400655180035540646224355771715756201032157076850277825007462048985675089569902139412551712380557641942570384883789034635927209600225362382510378427985152105243433738123516724855358304422652990231549534850378206075726666862723816452291055282887268183442741636159818992863973915808438173984486903652776214696702951189980753270869074240585689118433866994919284648248577119083936995793755375231598829814455975813591616800944314366581447296446874600273021501628301079053352253764864317185886723013571985404297562464284394873497212658183397996122799905179189568154753336399756033784088757837875312589134207046344175195678560872097880671889895895643631877705820100154137423038140707416165629810947500276739218483971862957728290760196121955127037925340519510287559112599799759997249884237174878647653006480299416487577572495408311074609069291367854081500637725647771787851561632133517851758158501037119648605465635767631524465586599498326676148165324142539590596466620642794622087518871327311209810779722863786244572898238429957086588519890695864915875609785277792237805760625691572782635980931544479257582931082165071144593304686082321207551498520724470539858309090578559761886734856821601988434426785483298104664996614260190967536976705926640955064018585671114235428562305422563872392442029549625103654196890244634810139279624922259943782576077833163135927654239756378621156750775377701652958110673158891439791463358512538439401543985651288575328378122624256705747551161319374632009179029309387746311312231219536901239368984740316071817241455170513388548962316229004844285198788474704228566023961149787935550377978365472489593114603864822686079732821123648595897621290943121392180391191904783932844189879917092589071642514438447162950062231608844462455254694427031135573121796633157606395848777296805034413461874089954488146382535301127842234938289077616272964297920050313824615610748439868244683183161275243312299404143274823321157780830350733608374453277000695747997512244848372628812183860500636850554341246848075418390512335559970873304502971379310733471931616975096827463393309170677465624534885540653544127551189454361059820092071362807680274248640476696774326541844233212390345594157559494401933135225753198147411395796868478939639936062147903415020245448024870921151450498738544425226579996626122230468355480619979350068834897509647959635189622363668053759498619664218276693554245360496021506951321112818594464974928067557869144758046196230095029752755160626185930697035771460632374579039423815741742629981524259223413618327547947939994537066241223010133433943113788709885100492198057249959321366909043945765362235525136331719141862283525509816722556506053037154957623463929355147184169335906538794037309803283392861863010922895458780035334454320457453741572723735476685289152016211511586077351782552481733696742209562714398220964746409383785033466541050047219550929903360940909876686901155987990281385280906097655592431152209641574812653711587371078696674909246406940621416556094037124961433459433586789257395063038775033051026552198458052438189434230784959436044598395617285405869258053223075562410753417529647301873334916361413502453103049038808285839723803694333867276347962274740205476128916044761929408220318319999836075509264586491537393905167802264848609110839860225376675147812162574814567732418835507851924292494845105575199719050624618774457725637456951335089776324603012105133630126694766808963058369699501230197394106420611861263500514004567168077545454832654316771596159371297283610050154607197254872546862367312618280361525828845178890085183042421957775886625364957305241184545021759909638483766219724956371187279183286243550180226713836059076066989647380775479934858716571219735360332260215406516345929500939225245664835707955340915358512237842339386777283620569820155437851085003946550852828527708266318839049898259237044729997581426905859619256690958310617805304075269651980075233228855658798822682734083199870127210966159114622794461537882404672573547542369454223799265742287569173520625160921603636437974284179300085478292499193332318046624677480162842823970746134169953147655828961070770043253569798613858340911200416812263722768171614330849598875929841507454742474229799611090997325663505283138811109859529694794171212960266782286085705365069439508084656474568034115955939417609081207564432219963985755357477504190302785384654827665951340307584447784476452660295858928214774907423136922590786762888172838905182211128216264088810129938606738457570083470517257491867972100561671914846768605841730407774078584514939991756868836990897244540841305271890208523457723549274878080574233435445045177608369027165639887133844879012531188008824927722566459554611973884064771009707776208934939225476209589679121158166019216029179027162172127096955160003112913948573009172375284429662462211460187481028600132190158503705959455769605785286746781353619786670404626783592321467438936772848521715828836300122368567318940345794776613084917382925091239650871302942017721619311258706764373723717408670907166845252529041012838922991757108201292719401117441136595811336622827839653569913221702410781212513897615027074235701087088100174167040324513828600130015547989512723816438547788551682991115146086223895386651695205046157114686610679400045937275814940606157206785223946483705049723267528036066328707980315206584964719640267803063721641625105578708663291672481231320565792014960056800308915070641118070246557420570195859325206218274721611676119282686689714819564163058068992408458674803545658529758656482271116066540712204232562246532447838861029403424016301790025049913757565964120431935987798168146751846392653775104566801200763344814879825082451795443016620095258182499290013324801546930372674956338463302998517603414024559085402816201284493183448784867517620944639541139993266430628592497176792714931358764356659742462300605932377584761083968749135652920461537201889447284203221126522844731085342921976667858919468552009845914003747489738179434631953440349277482181065422491683791769816664159618437751791194963324165303325676289996707081646571885061303765805080968639148933748636561630290620274151465681648887629967807783166940336942094243153773137415711052631534540457627699530559423579148563850968430184954633739645553334332255087818308802604035033851459074577097757568347487478958928869512198936483365725562639817951392025263864529108176118727533384220073675066158746577444356425135744815125455571248784264548687937682071555034159253354030977701927631355251134427758528719990638376811702236561961615803096340044052773543827437337702001087165694193176158996283676720317890390423003918681674954213488887046742754869722626201117064786461344154783934623506310447502170272441593195101362844584733474151104894301522082887484678156546015104710536697330362149123834570582128456917112168994729831447874069481200530629168029794854458089236731540411546502743727079136761332042954227325754375773915332791721503086911291653031272153358046052462575518449357758223924395233444531727521415964960586459293839509667031504399269046159651101500216107534433771051639732330838742045862694977098407380611830948826722623456549053088880481680051835911262771697153126213286714033029418932761079982523256991339584824385208792627683089915521485682889873650449537862819436072389084900901238468378494202893274820289672363787722403750071099671790212161178815413299812405236074104571879417981766946503505170707494164179459998093344347139848948722872714714326759282448039153985463500079610277058580881772448579047967386031147216661415755411345423682730797485035304225804916108097162431049301461851607049843270520281751225750734872390275092346686634137822561979089398559856561347125320813071004823055203899533380611331264325003316847516195026105885467270557836739378731257280276773333910949263790100519214476245617367416080150424394573180870446765934727922301855307958314871538345873763486885871557155834769964543466505204781931587334082856848522288590028415314096163608965810507366880622833973296184570042670772109078860906935300616710906887518268578472791985304031801848717037818728793909617805468907844569976806139346001124813768262829350551977757853279983174080684942768784525741512795359091751664004069205336858574204483612172178502017259751157418196872497834488477775449376072184549159928025985782374750146920713569477791792243797484028026917873907867104823180686046375603641685259015230181395877859298736256347335164308445811987386451558018029560091450013967385688906186425733003820084020742025985340052876625778621401774338826178423580287938811538431367991194035732948500149579489632005594425936263572773094296247918189974052920133018114617210800629488187050135339552001707894485423432138728628476457516129896797423743164805740634300602965676084880176123843026510411721985327706800640718852561132330716879129780742364673437173777726813519730904363028639092081015262381564036488600162577728785559470393950763964959449509119340620134353988126991560733815531440830677593670323597932287615131923673904037511966448433329146670490462549145271562605253398785311725608322377727799117657925274231783241279039671954417379336125714479856745132985275600808614050120744467257053482215279195565531869809896679817357743805737509468549633525789219116071377349425879381923752104375934088588469730959067477115598229189699401498741031193079590087768751912690440288023280825600704601178565059128776330971530646904937318071785210529634508688482358779375194570288119385399758537785917488855094601967357144831242731519855663734854485069543704179807327699140547120501059351323963642447638676220997403555496022166894882304129696645117624166373055020804071235573728883384690288669692379890982458698002911059211587768233168071012557774864077524291776804497041131116057153884461078488521102924514176993667319386164512000941992937253021520464442238992384467452949962691519397097323024053429318741175086867050951336645336693760980996509461270386535844429474677753193063483832097209219147243264834585899381875518335276639900524973870854500961478129636456710334453683352604363039166733173957065229152147875339345566239154187205041079831868308510477601093887435415850735657174111847756614605622331688337431545701715228217479909715378074125733594367723468963594988808184520543688869260391117645501485072595545809863172710802251053095924807284646631667482963126536979907723009872850549370059554095505527020471458700014616668317854593934526366267268591436898106637746379584045906620001333660881675856536072267041454944536367075378570573784580025471673027018935633469514913497197242705416330436370495247748746228107056216686680519340726723397963159589337555805937671045864544487705583766485861127915096967755939498284812352353969985561000708330309565119142996443018205735043631562540887349801075728583241987809766904746589366841070953506854961001234658690377947826114594890638374898085183531308257108302294034124565290921065230517606012562162704534851832257564478860064896164319794544913406790508372180116533469462626042268701344458342954197586649813661339484328286588648906075999508368737501341443875568647921068331065547974425070283888550312346372572414386834407751047696024144024390514859107322722307389751540564865804816186038689031623871495565728382101507962562173376682190455885808567039669158745074308079096626829488295218635528258718068295545041936435698355601711371575403635890084278900736905391823049886666574530022192593611561018504441577691417244281042161207721320437556121064615072078170828139917270789490243696109656526475117115224696857852207105552876665335542468490263469771777897907820872706345290123174837668230091817884764739804273264573233209827112731327264638540203833895899458549446067968535807192107519238218807475494085997692769568905371211683982580670790867640260092718014936318798967030035936314347300648957131757865127831649471522910144176048138359030024737183630273694633636516884879832027367774468950403365411689004041087434581184510218395018252599569616718944110520114625045920942936282669701423481829264273514215622211770590927302969823403706066440294134287330586284588701896501651032275360229531761544826124298586517344801704130323205689341624030642308336154978185693616162743324818289530730207763839294879174658076282189615786158268838094509304696747779363504011645899717662195404918095656633257396854568532419442121587991768170896758326054369547065982245123878952730311975831738323259494396947527981662928428905178594920814909525319221055974729099658258488291898892360297332060422940711683532352509474751439391259933344396844393890453343368347738885220971512671131357912204567489945072436371020183964329948957411717803294295496057973681309766658265359755418220360547426024185067015494577801632075762264901172015726532040554033019057867942260686998604501976005485876652439875324035565351339131883080168533310509926685953675234469404739431018869281380789362980462207572337716697923755699707354186338589040706967780937916579291654704187524911138822579423723721730438064962805227041053471046204784014699882940856420995428220657110421840065288682585716540124304271241222789536494909247789942284874703034669565902850579729362020793418477873786844150919614557585303801437023247192472871368852339130012440342813659538833786593804426022570987148250774680542823128343235065413566642526290483908112303483829833919325054610519390066688919739773820847497390779514299565019704635702545423539665669172950889661120246019880129666321646319860974930992932234237731911702665953471079373037909004620829943221326214038532671470949412130431044783670137924078489619374412876661245317836785385496198089606123096121803344656137193558642199653452675880020132558431973922773868615711475828518049001949042382220049831892347575095460175124777893539428722270332786494391252224662142174057634290203528862846643384643526856697036141547747362153402897350867692953141295518538794137876270025959286174243109923857867825850347256735380070425565548217886375039104314160607981419598735505339057814414016441388714102321838499788515518915704925908231401808920752239655301219507539866777603860096948084161700119228083426098680191382642985597888725824447016338313431411499487682684839665741593289141901630298506998425228978848091532892828617857556817457455748682496439582958256607917883478576715316738093979740132536933050889440153981854304968711514422095124591799224162220507795474584008091757402376468257525419325925519310969804589054423720287830411013090049117309814153421919548244592287372254898755154314875077696778129512045174114054355768339994764649489478761250610956244061282848740785966357797477522255883915896218188889074080366843912939884397926394526306273665609869828820437594897081458083386526661494589294822468256052192697474718816462945805205334963935936521752088459143748821311824280161789631225260100272875429603326621074344947759432836250243838341491258753106024202775334163188503653732438990147307591694811720729599098869610873387079271951442555313893476763522238351272922192438387432723117328832699581098324343257090669846579724771974865177421926724658762007140373614525525307672950354925263702891163994304102834198830070320521929495600235325310014877883384129544720468504065476139029579361666229678616003311703928952993797590396155015447953094006185392316821495573118379988916623006765471073261217221094390279297483957702548061344406960763246272782163212831453482251591936893935528735910692960233517174234253773823984993069076670321583205051999485033567870474436660818042867179696304535991448865171378602202673873616376984269352294408931635392440908113726462161000038473800746847299416461724590204779049647598911345932713414368849605678640715183296670309262846892167747957743305046728771568244640705378446310089700482523132929608975570284437344272755971473540087718144556898496995491190957066882234956928762743654879444493135378539747489726600604214278265834698552445870759540129120881314441928745019368643620346325429710563641020658673921611086337972501491727435859761914109100641273774822584094655422210826918252607245892978257387021496222740917163109320510994771153724387138004582338231749334937423767472591796110987999740052429250579064527221196380623118594751530195437515422357121320786689916653067056511885002803455769826767246357389644098077512476472056261370194371340144453798577861893986628375881339643220113153795689264633084424055253517129228057402628512014888979235057681735740062234038436030794911615124664873502928331483880857102495376114134390398155504028431715044347244550669147468759661591518948835976042050972628840832501576047040975152137777189007663694230413301104284383392901774419678623433777968892090075748408028758778622373387656101399434098432662998747809191159766132798334707850498364225016455942690220130099028420250655022532813211388439152760352321431735702367219407638314890456981330141232471203291654833121120346306472742458955481018275772332448773865275454679461189700030818661056265706461458202364336176663469579009814536150513198018846694830911866880323592554278306962846154699879495340333101350181328455400802543472774782213761122973870935966990973048216366238913501141650571730588621117735110380938151806018597346575048344771747439707147133690858752798518926476427578521144505983303303704466051426515170372345526095813030867593003366543939333583500135711645593515483365934175712648401164690301815789346575666901845859784153247273526473579696330558200957056430722802474693941395635187138857673153589507685886578563704087225254050138029476238655625580532142521144008804449083836864104084522104607233146182151067088333415247802266157977250173856136511245381738169842280362399365345478504161509615322233330117352399633435610888221888110641929932133663481681068864681648706479012682946133682285937221758178887263126154254609573764052298479554455103349068221156161782054594718698673856022395651869699623078528430978380186292197189556594904107841713002166057044143899620252188094203717755074595195158707443388453739880307356175131160318730431173963288920824103015794455531679270206703093042633900369812307059083018029003362413855271224689452474725557091794028235806808187894325130325446469248590048406817228457962920913036177159158915899988017758375612653155855684507236736932403681002983506066293151072251026382327889214546675514497630715032485529604811612944099537717491197739668502500811935728255527176617303303964169310724488960666427775965183940923479706032831860014786324476694525420324350431561898077669952077356864103617224312877782699791428513330366607969597228633449638063617582858955615197214300005525156356939533554901314031848336001983809578448732405511744124990106819427335987161753292396446846435671645315682597046291245736646886457013690606351817306691674283548440941188974868696391230600878555289249430273273551132003096424639055537202718322435457292441935999348681983157140241403647135287004373710471891285749623297187498089581843536335484342305241062947776877425361653596345973698214870737173441251124754382449332731620642525362747769338514831400139839181074544161462959827179581600724478555083249406995676758671255107930885194792195549749754267169991753866203308642856259998256251946205721850548382780577162593326220358496876428380941015689434757448869592200752530009192024108143656288862562793014723670254322505635050325658998917408646290448377650752814209680015071477099776167091257021782329289353102127685863482100451435540949834190023915243736712765776193287172644158917564549641126455734799589812256597685588816641084507805581225311255521375770356840244935337551662454129308023197480363045098828936203608969402147438229025199866035476259472397687064997082972470601677906272019620676176936321971040163981539971024162849760963537065659107902597048810881749174430921814068825939577092796882672651688755333171375410434384058768740196154033284741380763136642096421859815267900262438451893369191845394790165000561647014971834636600774193518452006159949882483079079364795120926324169926295204000946058526167676975857466279576130820857445530287231094257005742788582336367644548181749157424875158175320274849165815886929463247275071431433972616739210091439745708868962908317891999019762239184917393925654334553726704710612599693553472521418127077002291993054873219764036075549222587065405438885137167069031189194096282434705972842068317122683544617079123480354215135343639970096241650315716786030448064135264201789701432050370962552110717124596552713309580965560416196100440170376727343502355855630075115864909628696484779739065074721447276279541542293156398341755281344882879388913945779069016742041590288459336049727075155990296293640163544569718355451277650288162464809604577804821417623094411496486305360591533959235336185787347305542509296574209504195626302205088454476183425893913351707873697285450807065519642443710539045986347875101160598379994296018099968490793365431596081658415164632024900044587599681857910466130966106169150187577552714190432582603178657224505278435625723001691724543495807559997545879485826821412259423011950653342457506918300327637760177688082922708591405100594197248385935205904632658424447254643558996071792854729948038316279241786669104994479387058561319293770033742770525621434652845194660528530079677025497238019358167906301210898593404921304461584818535896550350504162044041400185631669354452651073583529096875050061690983500991414915202885310121224028576207276707265364397712498345757196766089043120965938095621618900218501654917809516850936107410550638099590795739483676093192091691837506760372894856334938947021376109144796181456803165561094763605042827587338368046984337352195903634478348365830866053595296358567736202399718286667178234346033723145226835484079748065049086449766231066949062460692828166010178248453531115717316719758770317884945301511833183699628027538054534033536937301275187344057220589268643115059348941778648505756222909765801446626410807409033810653359039138643287601423490329601800307725744942605462432168189243300287382867950339000799028952694048694377627745536880755290415027983653154797885072268962798327860895758729918776153683288273741692536943070548130264752301624313445372651641912094707546708616410391497083067631784079665234136176689257584245593535665748281621945496789305675031681799586672854814867745456968218015019429437987491767824265693693993420599743359142839383612291272607484529625462817415468363652966151658773396751210438052987122698042661219994798702129075060279523104372876897706650783527110101567473212985696704460642648613361244494833721661778248096445090216350905966101705512859453455669081373351120061758700205539129343204235592173958657993862738033608585270462981931478224009817708707042283370844148033597133805074965497901085479251362848877345966211585186038140621770949304060765612336021467325927158232724067962454479550732978384311428920694934591201728626939945610871143093729916389069171308675474908982340558630958789296255794840352280601596039751921230464593776415546121664248976078614760807567759742590430058969036399569861892392196288140092129301516982410435140931829535925060400616430956056147488870642599045365949001949588546396263991007351244655636237008830401305603130170901931050857440619131687482589846226181981927916966367686166666103213385392728954501481583238151473100992772757172634701080978518303588852455003089875600790126311646162140278381126390834741575916048623514325995503894220885659018163545798891716503387558815053050384739736145825331953247460550180867214605931883595919516496077849857713488967209677902784098134887260052018754304572970222894245008351171188201490238279259968323966161659436084469171523182045455752853114366408937323543523287042001013559042951210330908327144137943225882221171650340272896511562396861239623799869534179968301606569590440313208227057253039138271642584022035827612527805141846128802663271139115726959180971452501035375197388939786771177552150128507047699373332172965139006556088541482897602508526978874208816233361564291624714129218174216719899760965061081062823323434164270319286818386022833947989376399860312305723115632014916059699965038418990022528329926324466282889384345872597902287421812753701124008837482848561956495194029615747481609643791288910110925558724162442064550111256188046041109987649615645722015995079659950138641389434251549301350041160504990268232697601439758937596617766296104633323928764888738601995302186984268185197704593116583253451349561642202662724202244170755245258972511282349867020340783424029196484453083782590734420516628382677044023349460459233001203316581520137400798911780077862831648966029137834862795653444045997036409572169209259982812611768337600018239913697063234968148856482834742174992181492423850713429354238720554244257918028933775753661366109025536317363821234272446567800543448084853561412112380653522083976102052411916894038014547246425186516608228946011036236401784343833705591622267812480849581869088281687234810740326459787226434005683286239875575386499461144870915351165616539599981370766610286164508854314022610561821989718842769280065272572133744819893955850121057370357137380846395272287254413024012840253113945722954088857107256778431493315907182996483773242439841101522051684568262259555640132876135781834761442054371239588660171508017170857341955260333177347257636088948205407494704203025267957947488380318579919884081482944575381122133033218218894516422112759926696546980425259180066602946987540793831151045504240553480375583029082989008707659037107716587259506877120859797443182249182150009870692089243448269192778096672037766330077471281941589393796182906562864444184369324792989173166349710708363725906648109569218497662400240402657594059449353104463518980295073959022226742614879739583811708972291744867528215476705717169375030043816787845830060319304127147501139789820789542864408624121698831608191792167274192045543785314824774846866304554169297257295567131110478918337045374347582493009542150814852544562919724348951412051146735446785107360536099236559989561012774127801079148994006740386022130736687383523204235900156073306640336237408933661411378948417360436746887000733882055846720604047229886274891630262972563166750803624617992422943703701590443523999362879861085899932602255641570969532625519648850281205031320026972987118343890907004666677829843368657518165819779933337019697477192794691337680819947805775179577709798109366451473991551632222160412771343424877008108619033743100801329112060538105008006174266891030196514553277483287049832709865890653936847927555263945934103632002751500614368533518585490849380570436519804107408105120630320049410152679101649952945741091546633594747605406900630954060881471949045331606774783582657641561120441186568518074809925138726137600730381811765335313228202111627434385219791443455143825121578873899430495192027626059213320020124304168839045003964697641474236458835475578124324190721309237561167059883479698014320928196872931247550313461849425204440709002390152759476991981975375190071325499824183107340946057578500571478758340998229441613994442741675740841888637598596724401727975140150917806471462769360166931700018993734622547568799333011615911979541736737694841838573930313333647110684187808959866566566861077609479773637944298935446119529566864817790901215501471150181256790702251603103605329068289523595286254365991778628345574339474927638867503969233475058572385439655831922984490649156523089250177924629409495524019111674700560768168927674475439451213701960275859741047254471224970872868271776435906957503148221258229583820805261154193527206410042404486916263311739533065287785807435217909929465014227599975350599752661785853916267563937151466781741971104000718747671424737974504733183508220272028268886852151336536664858069520628255496638401038974903844739126235352602101802766248137719199676346048045116103392334639983689340346592667880242015487123261541889630771155176664558200230022047416684354345971334170494865951915014701122088368012471457796144648398132587213488006748639072291778404786127637092855207714478960319087226862678557770591014580310733997684595686543807084270398141400896936611693309965903576412276196835368292592656019553620245725637079139955335543670195134265290783433266370397352526747019701195494703329880184566108409363186496021681898867210056937622614850144931355712612766694723375148722719899980365703468867294857661882156547333867055897299664224366422730789352340450520959048024743313654351668655132203146326536018000898871562037782244763788421678806917943952554885091901860574614541351511604453924023333723133566576140655320404048084478373352765833776643089190869636944197263788604440940557842771974696268873646749903666605552921085015832154293486699265892563894714772469962888942190327636739816417667333605804482757513534207127805954831539233514487589819679194204226797291555831763398026994452154984886900917226534736612296658651701760872029352515016447256670516251238826104025413888381342560518247936159055656058324367744840115401073769390777334526827894532713420523980007365928392739856296692988238802899227516629884384947730328288305727364960957245402874182857831711585245099261762172655078402165837901588853647243426747557779537183356834111902814876951675981850918818796042383393808696303549301085559641433884186066385210589701249508033458799589463710009567490626776608335402644045163991262035694363864313891397328652891886034021182836691662834550879463980426186751169630163458172369292731928957322912752710561975169683359853711654408050426181846776061557009476740508691836525472046476225760428654302392483552524834788929579636790919761793848262460428177689858390835843832213474445243452284096475401642120305509337182414088746172996622325820580296108086157745629363275350969744696146560237881070595521627610522604578248748506078308267481974939653181778449028988892047447825780591340935139516781189000682924425247034348372223918028618093708338138268623450669380454283374102214102262933864474607808538383914943891410516086907683214372525617318258891373282978868977135196937035152425762557500007329692554167299849152057342446992846057663476943040646832718111579517049330669760785910662048341587547662864847678960204964488288854542010622148018458706432476697409961120216410828881517022262343340336562533442239480678032022396612024252576332548477568172852439597606198154194058317120554155960178113603701679129256023306104300440705788800055918942638831605295358242882092093165614902042332312389408344361410484074504387432005454028474670834518170436485962561556823519762827157180943949217813134515012362715747189291674909749235948276559705962399509958517309925725201967277655070121911845193757349442879387249171847703789147174501872513080399554853461478546508758733576709820314490545342195549211665110930309850641821165823861735973564444148783429689815194762906902155519112517754889946663141803545163306165903523470765414052354702970801910982539451586857574706393843713414730560470610178888482562776584040090868571079247777515001827325695467590219319018824241913686682029187252736515341027078262593778117876224963316396503462194100509785802465335974764835205536395234127787568427821851144854492524589338304664923261522194974711665124727429369411740668758613146774034904967081604163210827711150596013174907701884612410321339663875843081858757115333286340137275475530632054037050170217947316379435075328437462988667934438686307102522861433705419185438740663178474393571299486647515556083942070739344096005513149803849520595845797834764672872716216257724336401422873603972916853622790401625556370841191409248663869305666845845505701091218438800746785353809009321055959582045666195817538504064962459182373864401960970457857884534283565063319183307056914184765412677371628203650024057866506937607678980406110277060653701989103715135991178788811284309525553146471927002447404519928067417455678897383353118222644879916214616898705785613392017748348587865602903691336765900457327212440114054076789878287283399287541877233117978531791609077957163812710637381390278594076459462890679722703223962777253454552936943903949562131384732186835673780711574408075999605003458994028026925276375424822752965452818309676965343243484845309772842878552227122949279324485126495875972986355144837826847975081194080665071414246658259326479183837559519767841659937647824478092442471020036074276456012642026923442996203496991555441842568130857315624358910532312621300372467326173695127280787909078938973794583237267374913019566242874711558454571432814635673578026909070042827535890320150747089505839280092022774989300269458469971887207150173307117061034770991392455554170875094380958135639616794001910859881854972449490722293671366240226174999491729449723754712218454037100441340863047395960586727469847723737329854524665933468293858175763713868279237784773261133976920213547972614828448442992582782206572629021804846491885553315952371298000192355768167083068709901190885366346684678092481858702368874779034405456681912065529204572762109982757062662626047275317011823233379567131029254799412395852092853785842324023341662023240027906840987976342211300759799314624784095494771979514514555512335436264815749143474875800340229240409586399952749874235445745582123911474983079857624847069681643828217479141623296529077262366809341454341887086122883231258266843051393254773960029595077733227170506110355662525400472582820534223705855112053095738050117949547596849065177474578818984481788434343740540335814064241423583294016618024146588652086517319509653082493903811934412796186448522201190432135620224184120885717388799956854930856579954456090769289896425872520202241707809304137872162823300832393163407258739660836154494892268885256716528513835613976185447506850939042506089744727970502416820274653024632878003003620253332861794531399128913123736505746188245943927909750994289840664850446259785792036656987790046085457155961150405180805171685549163297691687773585599099688555989507990856544320694705598793269568425667029680642017878143560381073166851097006054581514168739609679838054574739486480548884582644361994334738092095915038580239798505637456474275832569781018701246432685303866173096038036538835178600594873017520260192705084042860896314129059861858698123232318019345201285281273520386134234533094115923994944792579930253930387494358236397210874189102860785496337714194326297723513350837313380163314515843912952072986636126061566700925299931163167839509547278306572654250421363893304012870186038832905242088143753990359014437211724972440926213434485469769158609753753143275780931183936546857086420838048984146339087125421523862146213030203673869073251059653135150696251949088672616528460901836639015004406712512864184326414927700037131744436661097180937812276280053231730242056010205771831547513221971837412593133450019393922729890919944139601828698415831985279040562077733975245485698329717577367505125163135994593588760178830344008368734497976986166267882967900426303414309420798100744422602884763236122818302559694535510168559398957488016792303294254426423722624978150758965684175573796486602134172574160690284723910938931711358370221456051044051542622963549886698009951038766971937345070089744579704779483231261563247084972992934894695722233202440777433117645273918940855596095528557248648056782278109315347540095684112443810443608905467850280864972804734774385380173612294544775480797404898272977548847074059393587747746293398364056632743236827373491972382123030348732693780059854047131201297508401003158714641178866233006998109602878923198457440425039359680421110065645951693756132229297113301121214006097462787093605232252689802308289831556967363101147452753518821024816166680210008772031239858124583736681457941665833548039845346471100500644563294382260894795944131595788976587897200959795936960454694707205181547841633895304617199798808599997274177188878534468643974831151863363736610006738763764204638323161820508290739168397832657575242238746573991734007220234097515921306020801338469873532871500038049850283859283057056925573960264877805773546932728012303460043403375061250521568703293896906318373352537462879620119929820994407310045309768548600398349557093376966072395669326038414913599981903244986714947448451449208325884066048854714999836449561993900651589722804293763351472763354691733116879450369312371240234107196471170993368553427390353026804110400037708740202321204357159547074836911097698437060207728575162204905773599193831342598151653585703545300985949182224454352139728093368908808052346781508212368339405367853305486918349416339044253733199964582861220975998777316889655415155745523629274733186390865794333279523412263055920649806553877286190923702283092551990331557002105727326533330246608344930407067666070898062452664346512742188127999087921462963540045186288081596835958043288978260637150428560714201240788399883039312524191494185377238835926263905881469157374778810068602062132282828114893542422193365109126117759104084701764430219736955336805743663199292212267520637519942460121603468568149794594555046809312429878034832501459165759230262160415475400317004123844807610138678668540177936371814619088000426034781211096889235474459881275440623174405897334995361622354097630096337383971688646304920642924969773313172725116437607318365857622686179681683219916810683703474960416382841038879621202347214135289685600940441450182255853156409211856455437076778888975439767606856666330821758572021412714656176207722078986713618124190273094112842360376048233691880040180970056433517662063887968310632239516673617748803112622740797888766648659633046216708298467175454365107008632640571153005049187295891659243675138818467971653069420834207822619671247987262990751783221115984520410826927713386655670481527942466382021319357422574248159475365878041214396581922327626524686218229993806638316891537513998144216412859409947509011739530543535411821349383893779532118357777096238690395775203980466347644771849224130945378362104544667344292005780023377952548453850200051045501331224255178124003638526357290175836754738508325453484434276028670200862535570773700766892896651608868517258938711201466403645389425748127409421418788774882227306500942208526228750016972631128101577773988180186606954198978791264208374440024137096542327184539661687535534849696918142420592783163402605411196159480595471999762871546220845772467712577888302641787192282961715056578328510725816755607636149705798470909533311169178304681356418111029183404009355662538702901970511198734329813863084670004912072995377416651078589589742624996230276056026905296946276997297006546437388065845761030085861228530781492813052518570075348371256030635710961915172521388012406223170455869694190987695751121073575903888377434773842484488897802928601201468959412297154978492385928238186631825171672440355029302501394254689490775479269564809747701014453699137727110102026168756397451743849538536322993124233295681995575269096423053054566877646708370685119432572315142534773313386766367164642895689410180442402661117365449826856591480000189267872936850403244253414462089189446362791445597699166132157652268085128828914221001074538668298863433540868623570493963126313398345622271040620935232173239122911178918800297720290270864598083212121346098100611712066778582372626838829561247921590369601216447057211785916368329779543930446573882263245717557165032339927766317202952915141444189545344334107563619195871997327547671046812742299099589024679136133489961159178368391297695712606266336146600587529335116055417621638040571906158897882352596065051831026448722388755214170377917152054299774461636572055296118250421224997276512793325064388268216075520987267920813725176605637811900802356355073265279248454062422129733114792842364761076695349451113240569195643825402445748937150388037914891146685933548879779769385129576376148117561205468752636169669605910886401030952009414883831845417932200547141954217992157655361274851442551180915675775964067637946927839759136428503162748149840580637423068486287584787820465668566546010175460293632934025610278517740337594003231191009639745125191319095412066838319249722753735938773266767302639008014719862533021446888258461907047669215043142768990780576277469800413271015557666232274196513448233550401037662408987943934914746562694426652291172275909194221188338552020804171113248725925405735220376673005918546769605351744887346407291936120340743127095105623357577548390399869048280875155522497353252636657801935174470860423667377897798398974031047835827645268799760448279903193135291231708149356841748685720557514914631017793819708972253136862213182190973113385336588033342609771607532152545530131794965194171770761068003826504879203240395521712756286504716871372883874278003085858163792763609157404972761352693090668188030161593707736534697608652666180239957493995726847352493617871550117849923258370897481459082610415391100623981794389665864024154285375050900475714260843672320252117220225590486277201875109165927426777969154891880213412891834544573164573038308675290428443913400993954205532187961379915749185068594500082619788329769629816459098385496750474921687301131227139209106583761121335974102900420508851223939037077104917452047894783956308805682573513227283328115659684927033534403105990337655067621314565833827551362081886743290209873574300857901699027926636176673044043181073961348554411796023204118365251107020452642026530060807137411074336365216330715253460292690544780765242125187043638500616616007357541597949041055883313415783901975648570124661654615015501742034427143264147568699074497913739600977559729498513391842745027806333602591293771318966048246146730519019046038786068717957824314103552944561977924480205558067321019651997218433870090192681787947281157043980731758270645201761675542261149549789355351066975687424293500568765689374949428473153835944996473851878992393441267091787810175177856733072257009797846369899112726842671743181689145213615073018399945173205547949644607167576122145554287515352273863609347852707495472058269328374106466427912299409344416949584402148790297766766539516610341639917868394078944770023906019530699665110561541045122468735334822057917267683497826919359633526908715660218108842545994855727554015221583495285133228699177699518077322085254127135679636195806934159783824076224716069611883579681188670310367129746705888050565668852397197691250320842921781984963384197024729565427893280294021649614067135947777834912057185724661328584918903882115746346903942217388717433679250826698543112594566190027893632819935800388193198657523048341336930078552426583875801457714542116567389853056727295800037625247266170345487100057048459671817196893051117772610244922659648110885442459580451056019064779064975189724621429000725425741423433925498909958322273682186228812528423013297991324439148624876341397484132961534212884380767524677751602302050245016357187708022989562735997201556460269456383265388075912001045525542890002664540992665080609249000468903552686074247245805986909874383170391096122798220667145311128165829676335183275538283756539195970995760506532306920806206416920823001292106727672486109333564273242317032616986788675034964651574666502235184194722147215482516227653359637041467248649700742109408053942395809407888290460042856553223584514739636706559072741942771932505053220606996035768528941568615780407363998329296250627703625752819241308070024564850975129182009969179077995838823305797404308879956127099827586876944857712329857517372290972571784951327495756189855185685034827231125036209312158498304900126408760204448622942632718915485913877019892188981999150843568408657130927143704344365220168363790299793702761239738636053204310435971403470595821938282601331771025277915632006589086212493780317150797618435304998067944805406986700417138683417307507639251326612149527564963041569181687766947083544700246976690379963614430334773512997154790418529056545922811547974906593091169384555250226566376403608387766720459696934560377182562857176236714216014166133139062758343805262644532489092457879795001877162356634810287792041992554193130247806092508508265354822859685274077488518887324411594330568754907601431980550388521658523358446480836560191305815703894515793401156486329507354671359734171188020772750391613226537062026681287532215074178851115755350042916574883883220657181080316010930565814458308630935686248810769090483592407673315396835916811476380906365840522249191450062410271467328446654184226748727727827521749954022731141811043319796858103879472975290039365528899660075832691239628339993582917126236890407385257512656803776121509402897965436162527415612590313504879399256493366939397306151521157465697941360205666453591811498940961678542930666578593986998736439665429904260745906276319194728127889978376506517249545426306506190886295153693588100782708767050853286341189216192059916715907191628708578766407075166018180981776163685161834040209405346538910013723171322778432043930602326358491567006323311551170835558945015631235937582148713692289509181146009056926437984649029160859328652402929952340297601938261558981661775770369380574888729905982766689266185293841112117036589017173859527127926274382114513215631636319435194250219905775377064400640396679468311361301237547378258646676646123748543933648104107382995339391651547401409780899717334281626536728053275038837535728684448902269474937291955864869860717177493971809489098900392229027732640985669280842189084427291365220647634615988516075461953353040598406893553115094834253987047937393396430625924752761019560029172018800073791133572278594228012191955131907531988439044527725395205759233938536493240401126348805666644548600144768627733621971049911282980402396316515697356148819945489577032646773075546280518340238529820758083125994072305273901253614942567395461304186155866689733385046617108672926420034812220314689894304456943054147946528984068633185547335956667745259560430834217639398271681014938811844407507137466395766137564666772834877155188295747599150239543732801184431364853236659178803892069833426243935179664689393793434792745988395905254209246802364769948231361005827330974130609287098817115981854201463081276691839010775067882390468068435246328005117229128499998282669981255009957492650718822433118706553755823176674909856449728009614172862039879483082276496896818775581784401466866129064337967647050658603407260911410827612465287871013791638096101925811989833275891020344291256887988656699419939945567544904827683877287628207361402070039513270719500785527374567958764737971032928474356338601900105510018883716817830836800182074481179393141310918906573184886057739790073650099607969408701759164169089359277076066994312518232963062044360903610745888486165393802625637626805120122450313950254633494480733467449680685028742591008982362536368364660861519372034896891868743861725752286507252508421464427887197514540728103945567038999988360196114808501452093442773899341415311994003349170569018461095414151428512043676749849627631235857587832177435145537708959194155175578021489498613284340252340616549691180534011480057904588013107378369922507040132559520672497065236043131341167331971526687675221203193067221510744733721386985053113857997148218766790044549173263577077780920306536882663426166354672933721961487698578802297884030235636983535259749444920388903471064103258775080238420744732249266327715687634650105524121938865688104960938465512622224585551636365616309837356495219874616498196419122920354283788716692463075509572894841790960994041429308147060996715531280444071058255946747967424720619693039441251565200259647262094663826393139566414465046915852024772751747643776334837787963454837882880501380406392338000541082497598765072239697939409654372983196829049060889646441610356623513614166354841512125691717766856778445507108364274231366778435591079299955729797111591384932315157474242887669002402258076720483819574179987575567658075920657027975801018447657146804928533240689815137437894402450062423867489020778216973829579349087103634430692912064962404270453188103376871713673368890852400505681309501336607749737039002681202754922261606682102015101172858118514933205664263273504580341884854284251991031384605728314173947787512351342702731031584494118052255049448524156149010337119586034049234852174424862193309878563720538339584604875792877600383999307409146900669540952229854278757253508089419295648833553519823167177542629204670895428018067085942280798397696190802965986208599929045668791972783726938906460069216692698825874034517749422349704212959331777291513365488254397629719626555491367639356169012714072359423192950646382213822420159148203409053959258074551250379696232912242572649673951853113391373905858731863581312743828546500082448702562317163072491840786606772438718608493172250640566078328502594469429190157365216443207853045246212140543918177682874069148702518562038763493081006652434816155846050954918283411910929510581294575951543153585891031783759729310754292541472842731219677009405808064905204864235519441464510313437603704718445737691234477858468543272634537993842118379668448872686361412952369876163638936466501624326710972968073297328624338275030648571770635932287094022583951008351332283141155753554661458745340286326853966948981873469096852629465741799898880973834650571284419937419264908221351941810025542982418381134745530341832068464286696178267284503261060358370943347921284547671134738949379616712268553461760336775004479273355447100225353810476212765793447537040497298680178889673209335380190122289559742520660008572721614882716992987926856194819704738254403685268827386964344118662894845252829533011203499050883295302100199582315748475343757608583789600685545092475731942038625487530847325107291996132901772779520346636344547998332600152151658356752300110068032663842100497346764981472413566018456614445842474174352389210606809487403761642572308751314641735153658504284736255973126428605978249795943587851603245173361533170843927073553697282427983206224891965157060910759022354338530633909770257232797917993549838818328059807130610076254926027441684092815147455537906757181655453718947034087438847805278296758359356906857638293890883781776201562012879750305724904082274503702984903943357423801201691720395821433487111513202295351429290916037083743560845930498683403541289992520883682988873846258730103923358934361958114867268010701721625567326320813856578881369843201987607083658373900701161940906792409011141420281002675114773790239326429748960686898150560630480984985331080798105062259837056724359793604671521531463959177796383051353156429284768475068077228102647180681082137044622996229578489463913089936297062934619193818516554577455185732352432968170831777224774958082941950754103528868609967266947654540912704274287119804454578662304210708847198950240192082064477558377844971553997137547083763602301729897130279726674379917987107876014870292257905745596050307151024540588505170339794158244223448625408641988635237009039985085825601203880239603299433957979868930786606792140925463779102932477892780959429222623272299030641284308536670488885085555369739278458457411645455868428016443382375912476015796542095138981165993642322555671059832679982821664407604376244287997453660511358752227867961005272673205310817269819765738287418719953827304050474714324179600749456519441929141216760400737508953714490809014198879603555218527334377835946436014596751283259593435495288540153356307715224417874288252817263162068879923191198533178499767664776922974270882343915841886139783257329122361446216787410570748176184662634533664588313865648722223678425700882613006392262553786707392122695924753253671161538851886528303700271896696479791065780806586151289098164933190735191099585524938165456451815341220883184461145531225311516093073200700317297420467453983825273113526463258849634054126456511378942019023308938482319633655431635614443499278342966498889838305409197519870240198590720288574857005765485158433862118876131220365914768816192254757175756812398029999162798610400893933098301309600417253110359863141893161103707477674750181447627857622344073635713590109345298938767957900257404746207140372177755331284487267313011619887983759043874603039788684351262083404378732152058020488181860641528820625939494390151917715407008116309017975849851672417594347388649932897154939185257902915863724406258967404835317108324331383979765909324488324447486561127080741849421407253410100074986638675081671506664486688583878707977109661779969746696702888716594267448817101038534304848747639175865706113458943421110181967054467373195236421283378333748786630253411139213328565549589658021078033273199811059651204469393914330721895297920223493859193272706552396294285360608793322965255796841618567495216486065053793813277601305266810819542622435755554406968321553863899127815014274708718838873313231822770323935311315382801636123368123845634980706966367675399393562419406565915933665993879755316934808963918272446059204828281311441142865926884638738235232978867506385664730647007354025923095815958336341937362581579981857633754783136609505223788488627008266551281501128329975489166751463168131373403753411648491533553935788069748204438610687733320104833626387719550456638601917722917445852345968658296044348765601426688620988426400465093132919754893502616241041850778805808833945316162603294121017326348968404556898053635368811242776451690941518567838320885361064076011319393087375160686488013065760534051016085900292699104107156203193470820258878323393994756283524835634227148107821745544044463742106468006006552832235776255647242803046620669645741352031887766386625133127601270094149237577241403182003365595590477930857299389731666909526367625139194909756848184269392171638224592988703803657520899399319839493292785287909651555166366853164252867588995092068087074929705953718742912226280065307479404883520816921698151711223936151205223092283986558048919079723113713283236878982951097679247706381386103374194556570436027353819067208496913373450505639471119955515908101116795840373990816064855602476561959062662316756526336473368772220206583115755432714191970155794750752554659281861103878580200719933131810955414433552703557788494671186302217557709868178511318074175304472474235674258080142418534727777375206611830690357936965727990910047534693950691914849201982839825404278231840549051069996979892418960473675712658948918298933973588718651549839768585672935525975511810812719827977402334897113876781998500852241773420035342842177042511888932015517067294244512537882595997438483327715903166289901563751228065502477216071306377412410953218810697576087320342049058605882154863499291319544626692792563396996506481402020064549316442570525225949614227558035573010922299145781969244557548221151730318421859898435672567230356130655294864097110746166887276132899207112467336965340427003380511086507829673342442899911805095199504893245671967498525622454456456929819864209387943584636132679670882840632567504886580078753009742433077834807329860406797995173014113435912625534513413241114574897670662498863284218121828149578542714159133927935716780071877894556782438474611628614229560418652803261972530817780683439174735294285968664324337497802397782783102462509020834842138012097517080294899079421982015026807790099690448013972725907448229503325507576816473095326639388360555277886455056421815920256923770330019115608386523707213537697471980501793548561361334615807606937937478178721231197714304749117848788100337010326492528502457943529513978052259883265009169055861839612654812859367362836339484398414094300915795974386522496696585549100516406549299302453401708658186737010116516852844030029540841656909783802866740185867981227696588989344245081130879157944473356833198931117299568766676020489105850954265334724779662584854304496487465677056084502123955188779423492103142297571037699077058482174430619048089340717922243532461833000039807145160374729201765613372787127082747486664586492549380785302350515996620581389901115467429933518469019974155146310179052205920902003946203840829763557376450704140266978417779368324281541899164325382983794161153934385383281360238972809137664727184574043780137454170345160105462151974443813089256829678975778862107608106478564173465066755939658342922799417030908802479784669134917154902459325047093689802414436552250770065494613884805635137404747424856592853389639281372113697982816369661718635466498831313121220704167137220759573750243257012473264786087212475527874029894913633014660771168863007000439002023548753506446799166208041576435149397059258483846318797154124673734508216604719206761336217567125747699229431231067219749414727561415277600608309445234708796001094303236451021057090806321648567898556045309463949594753438700923826725830313631745677339286835492908787135338116603769913979868846483646323803871883591791320292071303528046870395029488667974582705397330725582825715440380619508597255041549383365406287983508722523791713630683443295685933054672809846262319699595349662473327313184652988557563866662224005535785682635706846584476102295898441225829427235157163377543937007290167956851016004545139147797936936481224262005010264848419066992338466653201819235421783851254242701472195917138204232946902266571064311664970530599017492356443957820963329916231707250103150508537576708206420097973153727923820046214062001854629752055817158771333859158063078862153112419547235778570547924037675493701915339172340958983213703354861008393207796813358450992120052289000743525661316314174403168128348647410343471107293908189528518352904510981583169095557367397213828277173011555854647613220849824530807210178300959397115658032673045803866703781211185391250733527751350195124611561142990397351611116144041627312089621277904742308322516024973242557187464365239455375219956603610358667972976419082477282478648556507809929732513248418037303697992069975828207293908664419380776913742602795820193573993542003163770171290153695022110860792983595696854890768617499964442475097222306357317862868437559762989713504436461595870151980164004681603440515405166393514692181911435305471166807244496286479665164527246547240593693904087338027225560238256013169635043501039017772023430589471820800380897002453830408250535829933527503485830565810851211303139987835551017747117587008866367930724415443395460046150016989529361725339525193602092882826867445433814378202986321992551378947362641028124048367258346238639118574485632273964627175707926758844262160541470451480203181641119495292966529895615767343326126587949260088104956570321812508598402552908457268394198473844485501145628396872392605527879525060941697609054996444791027135750897390302801515510538100169750624599368498273350981570701389389628580671905780128639148184268560959380912999967928583144197729823939835212507764640245298969914581873902785929162455972602884656191914385321531458994939332441457047025387105372367302292322049653639967339297045560821760451670192710356774143017388597925975023894305188199179007403261558184231101521926116438101749164017679495286544402545236955976859861832199682570226727382545252408618604751089436089046953359642091124609098285975252185675440425457856825952473929020185537844767839689973041434227519653113875214993181725149977293208434945878953141544068825294381321466550070632753651254413478787622998983527159417324232323353737845798447015193773278004165015830630795213607610769516797167650850491023462848256541942654989423401225741132285372288590993306076091210092193249129239801164256875219619945844514072791841817298425589216556732314125828479419937126949170196116688113908805647447477117822351231974643915834678015736265259288208535498393112401481562142693764648102553404468084172406240190876730901354242135920611218422098220030989046287341775665249659237598062723628510793336909701450863957093285608397548542589684107316542630640442216439989483886745301925508475247610650222173500288459916686148135134986925659177273043664789992680455070989828524769247680343055204441605988973241414349868852448084518284584175250995545156408672243811338551512795984273275187169048889200222045868502077397684832372856705886123328032577339972207540013846022806506058139491818307963699797267330109717843449861641008022248064793587207929193226427480104695485969990058150773067072630563608603714027196380677732705273229105371598222694058355390235775604856308341705893299290058193527442773827263038589359494679473299700087956365871076167810597398306836020659077910388363110785832770612101966842088589570267027668532633228307490490249319227298987241563027945228082359020386030448204066351351147846608747122652654963542297595308107330801967791583087027164799828538959490167746889752654233979292113970889039159992723133843468318166770581508000284487096652255370880310671013521092626733071859377385738655591448398707735543763298753860084501725321072476194292864634357841278347324239016938218652882905538754177722132164126509656946841569101611117315058237429488542012855139379831358710534194040485338056860251361812370757320154230964009923777516037342542689277617734418564380933433408141497555637070288776603457282355573507221499134978095434299945290684723327944398987747730825947428992439761114820073759022724861525478090477906059711571758436411081510023497117499621072264120512895574185731382935136552340954139079478074999000402020165148284726586506228053825846045034826139203737635909562846498487509777336134265790654640734014399242829462838128904811176827492856532945656164352417166926483254517134153350215489932885122726496668329228949968025966680542517634626794561052985808555266855485268604670484915456281154305512074424330283950899675526212617591750749976974298704317015980070378814300035424309626881786812017301022815111350105609580214564514103551349486449092161922423770126600992793764242912661721780071449046028883011432763785935493365812050463103322387639205625617845072096915099701647196297636316459979318758223414409315928158943099453009187582172670793171190010272547278819769134359384859226943407009504309044051580123231123352347788571667294689179663709326299729264035373954850192476958718588275521063704361952424596789183090204931689262662491534430892535236817167878708423198804922592654941373140261944821294765594761625501909508129190171106120355072758620052991310121900275928034487558675694467194846246312439341412450097277657205560896738086467410572607013664827409363537145771818111339385552369318951697431961525744175380248218920769016426938203838325825953176288210698775835283464550066746540735565975699395702716478475902389882752514806954172368828911653059992013325576162005971035671516509605725201910404445170573115536005912356632116377498032849884822301626310014586273323337502726940981253795159035876903851550791195230753725253031275449009104953717401973735491373685478046657852287597235430818522569777122292818492481504975088962662720527096416331262148258916089296515104719588383405797601201092344975980015910048570448339214257520057226454941158019858536849704207682962763880503326169709707480390320045403145047444781391846909734958940227630884575535878011334329180045822372959771685199984818012345712416200695498632512992031009342053541906191985591752723624991535291658766721141982432771247947716445770615530339176267216581082063744536304767334906343198729660419178848009685512475103352174699371406941057412299879323050681169777700232560746402853927171896575342042297987186351860344911606771662029524675055188710576654781249010201441321192064810459698908697787234667801310798427377030827253067298870859890915047136959430126741993053111176376971045002962108116803844600795319766728995298609058350648802576479429320429700631079025628857582090015560038257694628483939597993139949005250437675969995969912706993893555750541016574007073725252920994964743177759070571951934566747966225133879438371167017348241912192089931753360684575587823325754440867507264811452157573205107154962372986263438924909213782561568687578146375804528320738698975659829543431702791014263173926055383634325633942794900979335110283510390853839420211467380680027654345753293096140410587164692810242075282324687516056060299373535898556914186879992707493227561487930973307700170688126007577480948269295578532498010979908319453187498336292645445275509679896407377816860189830446337214285284287357845182086066322745011374776365684470192341836287595701037207358459899253866082489512956723882700495217787734276783916238633199696178837036234419559082665671664966510395474501813822531145493760418986205370728411043381593150225187119491505963740105315246113366848560489866956252793992036202989197693739027792307057087056849785154860987399233127940249134603353337715807730363835293934556997324902787048199640644686377841294108389022578765129063124367043604618000634867488167044713771969892772525259072032776063905605238160893300637382948851730549796445865061728738001011356883516025509418469238573440477475577464210941368981034026258503973467525510970386318893167367697053690586064930664812006011386519680381951718191343637253816717933486874741982959808900153968113603118421436717558657673907713454377914519897761103702989844123891697714271034778370815014372916880352195876417229071994209750220194823805382315819278898841566971753065780076453959378785477629963975516204015301587740419584396905563385044527587133371121587990698814305879103709308464878773851362262067261109654973502591254558087543304076247212006603784186786371781012617988178011587557783495752181283441412765926947740977426487171599411138733937001507464730132418036159540767715802101014951529289555857482783159065653011661179426473242919867463423826034224168004763087807848514470381627685533230789143111060737233758853265165061421381039219511447683351333837163339389346952252542453130791630138320085585035814369313772587606270119338082235941302654192909670633113603990815611728985782254095442033489028136701668294707769392886055617406616219787703648501061620916605234241410348114705849575181156358977116971097535347424483395915274477629169131229960591932347575336044646464454500695285326424428991659821707773041251069556286369486904635695170556570526580659041809435371489296677425414875038560432798320117795937793202269581368827899672338219524764782942931622843533222312633267049487635390570931170275226852339309483534950040938780113582777718625131246718701670892616027527026600632200441429387060798131724368670287783586200038390943501124548135484503796495608826365190596266827055877324934078720898429683861959413907900752912356300956930030430786563969293031013620714493585610229296628014603645175147355202037770399888040590462220201576425715118212016472855749347066118062132902469688875741023927827593616465470941237527191752021357231624378784940459250680595587050182976476866906643763074090147224442484915097274246214268141088557024150026062196321872648759571067191619215449102894275961136297126240657894237683758599044533895950944255021203308659763356806205481881654781473324360434083613911310279575626838225728878175045886603503448578195141516567467992999206516553468351363585089693688505572131234410974681659300782593136668240598040838650396723506652498203426491754155914628278554380327163771046477198339313904504900912193646905696164678061720532473085535086747206370511346084617410477352265013020711220921114073409989688838123098072347654018653876827564740460275578641962346349175665348477714663190729130506971585523811338733483827264818033416595597425041102512428837940486511438252905229073385854074846988531987891316326311006314506901092037417179719300223849706214386519307834613125781338338131211859203837981362075904093638871305778058220253890587954223535884379887968796518102483132482659660201510748750997057571710803634877362617687205665094698304350194447290386737071651933296523497789237177902920850050339141744601223577719092297323226248083474408792946993751370223572574905226214510570094632548357106104475683850440408879512802652345796879130723523855525917545083993720935856454240470085641896250172503331691462940495616376721336247565020333940458824452254514219577332413122661194097913649695285872695109844438199972266513875187503460140476808693360979948737548184313540626093373974006787856060842727339534173549706694822847248426220019437668066516168911653475137860382187093110644777305712773201385134563592560563493961687366477101263326199923841851364504139091956872363387000528821246975680901197634461156375542210923869267456573866654753911510174891354163351640381065047467211534451372384835737984753437358332126199745893633431880134779201773951726351053526359594866771478057626646476792224748369824497147956099619094973695885114206978006012579353354836235953177893256085475412351495255113469918210284794770281088743817386430960133859507683913716381865796070834957718380158410151820264545505604634512288985970884435168099365399425168897986488012348520379965650006340818300988953710771766934205304235932063852748771510312328771701590163141970904200369754097846524099644306857506041753204240329180037716069001641608052649501212354269391535019987662126568116714030977025675963346844481829066823825924185475418684374434176448333847174783281867381024347693937543273307381523905600324992541554848537503943541885732140746091824620096812670286544317039241114885983701957208528168548672431520162169645113154355168703042517634745625681463486636886192478752839490387754146895141578636104672060638426804996799327937013612947487447252334025609422965003615724400423663123752904453653114595704444849226489156684119783275670967796623745166455676456772184352592092385934847863895448547756606179674168817518473913102153839708284623252229090357872924499363626796671798642258365808441447773394048945756110396680341448188951585714138159550389759906167817120256411883120523365502269037194725833438287631113852750874841404737072395381162784221795806671622113700225599247837662827921745848522352005380085801157524467360055301281186259188986632620035075163977308577669221946091082070871009948065224496150798576825352458896605028676910120057208804243678156226935985027976799459641367855283259453091886063060366402264323441410166738823999301821402139402686454297795035601344018186419613709049441284221731651544813776267193195840915091003354589977703024399908271933814956418973065189247935868254884962198012639458054327730793632652217774997789213317855441655647191490074011924861061242523065502635119530319704107585851394807491257864330427975607528982375758164100096709546031484061265730050171925795157272176660255411939909671004356989706865381024037816522598434472359616437535134157401814956167988429658592042803293539391853170754164812184025699292411330123003547760975930168622332178817790996790223570632292519328467287182902727238730246239782879224606100749926210775143574781702300068100282243167394867365196316655671491802998609041902137523940187474332638845180923252704058267233773603199502891847540590312759358200759686108776499037077666724903335718604787980600694255562459911077777396458908170504777403959564450386079557428558589232375932632736667001690503129376649863934737369941284911866494247471929035681577703434383854633139009702935264442333923268765226503633316864136707903234586328425752311181319132244082601551090965640652343835104654748831300683885435382074820066845224209556854821164536893704013017286211341288233453235651913360327191035752417923254237092215234339066282933306928591617544178599226699123960773606160036057253486504054972406189065469989201485989284815331214385696718526489564741311995147786067134358975357060386410869186095427968721721473620008541863965744745045318658032787170424709335434133001490963654610867767628357142343064471926743336040958598488330968491120345300052536725727281883171885556657197228947724076222274029220309232617794888586093782751465200484485929556648374909567030242325571571099198833662572693779363237082861612059675292226229017086551405239721145039081127403431713430899106188213295524934997568969978824871481957373847461589540386312386336816740224019485414839835029631282331338899894288498817623495095132884756159110872670663545533025858874496315987259406592435811499640076465664176147714739296011293850995074013007544858489114367169312007351670081023149786484625652098686629100747257820714690308451538832269577093842337019424750194888989579763362789760609516819968613827877149785863204288003752256440772178927888746220825951773723113235846868983665210557918374313777292235345706695658436172872014931005659937079342729300681268972471733082220590703124922966951259083522144433701976289585678367875809324749150608497809179082499641432795261995642003569545549510615054912262304606886886896911913567841817667572784088163668718681139606366128310701921579126122367205876265237102708877675618016031622390351733691714721463270758078646749771571322767113526419542457431062706084345976094575728373514575383986263239354166633788475026095087277941293442078321975670451369960121968104355862418295544409944224810008130603616721740534642774901446997095771129514035455350138165935599179137146523345926412209256244081889323937465211924048706176265455512072017822165420804120997720874882683264888747485522503007264087258778073034713168889718061588877535342382885665947173399832746486674079162799231506137003961628439406554184833193260202951614846084084636183364218906704271011986205070603405688102455011052771134813969860995081709261727748073213325130253499392382267465382761236625396182497032990121080221741328535825310321237907799803579213577339636314901062280086777345124555864740835138960276162687116153895491220524154044191524359411386958169310775161444092058847049605139450770900575577670543272282284445865712798643894206776606646562883835574354241163060908546045006828642141256513957046977900707423365871848695265681863049902829812983386999443996014388127812216530005000747672289149750033338774810946130542193829225186753654031246764607416554187410297041759618845433698408362199058780413364277772050315449753091574877273764381775276031531546979240925452213727178212489803627737023789934730827203814501051068154095120002719110312067812244542376983853355892948847808588860220609871922105667097660512578570285962306055056305242620532639748919545396136430508547130128701139500183838601445054206850628054856631577171822583265259204101807021906504001354494617731595925313990580667260437743015760986318783990800097892960908085400940859867925462246174707760574457793513350750759185347192712335800854061007215606544486507611438862324653179150196875987651025267454678355568631226203059766463499099524724018813363817006026576350170049354745554948451403872154926498207123314847895678955919389099022305614163203326998417241829229288951077507335818825019707967775594618621107157940380457946800446222755301851492744234435859627219088310820131313820141633843025708821331553295646111017245047967050329501028819999449348333965120914841509593712848627495592852961773204004165624707351128431398765841341742983077011963556649937644688575621652409624648126099083266116614142699799832840142559758283481187039256271715926446357205350275160479932945441825782854424089589805971746366994268930153261638546981376610761877935638123300351686137601492561630307738676602968948033630290744434457552101800128567158700287461068219741160453651482649952976783029055936088157313400702612136179845404621310885120857003841123776672450896064788444036321603599538260847841144268388858570850998625058308520599483274083533267908362084765006396172560999611079062920664093277775451873667714464270055762712692362274861595442776455077466647696624628687487770799906008767230018568625614288147739772092298779072898685146003355293435679473033989758276608320910570125159623848597175279074825895824306444657274771864481241513958210746432944764603538937723807196558003830241583279418281724892947729284736807226902916937374435614234530622634083048588310297400242125014957639180379021399759820124337896944778933202985832343598460675054032032978939892323355235389433086382397435638341450443919635346272393906850291416330020925227691655163742183324247217893907524363166815273846342771559805814851261597550379990293240527603295495569664595629581747460532418343656561385652315402115738414303477186029032350167574224924930409404368138342033810006635302475974200784201292517951154359007981184787171085329280995742006906235036332666428195665949980056180272074666551025919050088578561796291530019953301432881743371394314852317566411049770131508129930968459690062466893540914179655078304644799151281671099714182588212971874046184773074750148605197248957718810736252853386345877583948178266718765372640731558491166131387810111277431497592827622620855774113267637262058051688057421680704600621160055466309594100634978772667329700328370374910146932967291603220741706843825081366878915474700504148871566597218343146084754523165003383399932062100171139927167180457015414120455733164505573268403809952474225408386702071980891954495353143816491723543611843663164706787941218433224049955509508066419149699789318775576760806982749968698538943392933636008901669414040354830779434249033802384761861615513624587913877706072517366555899826340941506250990304089783099016934774419056839763265952403825744916266844990473418647310517508381966418835385727357348582808523838110555469054742485229063076570527279754724025774100256675061416029784211441230134195843969094339506637742210760727988214604064808942812542913400483210002876968917731913583040304964293908435786992968862123610834877179588826472160975142268815257143737145267488373803802027487134973796872245980380989839626121093333879054253555303781591569369001586709183409824355238637826052996808707629738587117502938324038253611200663271278981558524232414991554939710866905864895606322377095074932008011792950701582113775023991624893752156519470224291166019316649464574606799296709685326340908160645874882117337214567283238156227639607915008207753832015214498400310074795507010635825356469232177221427012143442837533660123373943301067814313934166174820923433990993509771636545852779623153443079004553573860152486839430716300336914329465592315565423716494526203742803939603297907546044374496455148303938926282363461467268728460832540659856928997792229505881613531961766456016914696628285710234214747181854202079659792555610922142991449863538324038635022894466340906863966740490855772012115660629042603712041783601544867689404182088685127055571660255093896338575311547953168744127976513464335055494784352295266199532309298525117084596445775689975393575548329973012889979569543318197490294615355777779459708339370128216659742356674051868826678315583624624729861646049103792324883230683308120368106999739645393810311807227805633689298655759077915978604492649874573416548041858120687805834312551407911854914203646658345104420163453822051380939267248711118084565529758545125344822732812265680785316877348752651196430252880984444212182897534287926283547446290427393195326442260370128663985415996515362349963552177001449986775201603925808346355858465948803127456951768583319029493182568063968935328431939278288098309683124031788824671151822857021172387019671166809706872098655768872533151698718628456136709764898667814800396810700660509785826876803141117748630889585696816242772066799614359617605219358178423486413022598452690144975149605712179533705667963882100445237432609034290100702119400482910357933785874638741545497883478801469350948011354655832823007416620474836134128607706637010144721992170809144238268947054582474003896564220884303649750887675354794231136398521117870648232998861320380851563273979199041041220191566665757318337333589040343574014816153614135825248097531781216246498757094234989011569388869053735200760049488459507654851270363077883648333397020306413622500650064331972656601038939447872172833860368434120465775150927622817943973126128613257097185832548798166958956479394134234357904741304404729553441312609911201744875219192697810175358066246187368283770313832830042922015987323718741865090669544340091908930270059764017305121888812471923076732350689993854086124346016310595839896163634080984723605060503668085596865592687357865955050207573741200119954997362922701711654823841810297320819633309576679171203578131915898970308075728877535426408153452058464298318043653536541550024567886777740699333769979758235488532528184999252243329310324566513443888815374052823591632732568566577662945355497284980026361706714099994082877364312471658434617961213752526595977593917304078590466050886308922097265273358834925325776673024409066543612858564449816083488071304484442344837048787435732843185002035434460168011494231570144969814678434578588089964759803616039663809006710584350684607332893696388418062242382462073567713173711000912278578707496726541909642677672164951356857524153094287015064053474219667580175378350502234088085393261761206249065360863941498362680073353688375788924880308987880774450313619530514855520213301620708954456959236294417434143389638842503494124641317417395042521777579886532898440359045588767922734707873815986430375999376908566033058181338719660951512415187357744603791836138384522962299115632372286409923118918415578201580825371211294177408091555669809521535921710801156649596579249213276234831360346090832797856619250689449940681423569181621998962054816144098961933287097364907285750029485376595233866168196729092102635919990421478825914573875446873490745325799697319580084171567742830946888072262832926725752709060634297035811826683585023172413316221850774406836100471236554663554279316135312426033540267301826551353102951929962966797859983404544859525283741013068819370288793227179058083309996003744029391285978097022877761809807044614633754857219965116123524544857932681637172662461390205167218893748256678604356948210051696251660578422731751401308006461923413346043952769165961906797473965435008760659578385861864964975383967870058543788418947517574526550053900290807612910389181859571424899116600078499164840395029580509181719715978627364995167468576184312792619585759969064547748400450825067795841728694523660702576526875178216797806164047414435168934811862072458769296950135736019835430913312549083119123152112970997275625736200972438112392820346798361835087095586802948473862422790469336131652065920930813880112543295632608465545432752567851905758993350113147421104545374373751287987995148075386989780798709766704081109371018875660778654074544501955390505116267619097494985633388111973436515336534124182901676111329452949267903435383054690088466181390411357617278955428043190248146816405055748294184905704595248516010663336688560803678076984567682935606045327127535248599844419449241647126463442139306243054116367178722130310910981527616784831468960703653226621417965458238588847676285053772952031485749949709086553045718767183309582293080087902493420200746705333718768416831699129414985349452514821876882057449456892309703214944381530217000520046467000693534824557665426270925084328289322727419742119143500606898157140379508276546222562814769296418250365584191702825860375674472558266669127365291613656513748936914098533323450878135136622899847516599261812263520150638648189974626057685260904689923921017412894603357571725071650546439956457477487647151194292958484362258909393132626331775343374708806361541238078055017150034546148455354281937938593158566388641537382191781626447573276528562427256312244755174278644349442433892977312279786959095813967070486185745504004401295792021776135161787945353397869350515010032189740434131917586325643691231191958177192802152672244870349472802313650600172090119612758821040385641340733934909848825395809935464838296222456264504539807959655447590404939260623585226532976839322143918688598175941472718376667760324841638640901629459146119250319767341290663914907590545996575165123049800944626294031167509232129353354393320021009277592506409514567647219066294482266403256572928669025009710727947271346988487297617722801507734432171321323068754204081992304928016346316868457039071551472032905194608782595136157758837787122204981267981460212717837798777083640624949056672518164785106482738569784154620067543152505393319047511979876998052326722359830334964501578547430206971034807163857627332748011541320123866243144948824320380640613654963883684568898717639823648503506059218568443869410861298363801156222148305414592388933527159402124787344456248776141936003096808040753502005791701040819166186350011268083671471005426385147295197351742374723228807922216243596070107237559547285921549573936917980344496203247125652644152980341125063154384973263971164966876138040831900040575706144386177747206675714281576025093101767555972394275676535803519890660844804020120345994599549627073248316421364893794255243974087109141574325783875728465154239800428703914470354845674283016616628352065597322614115926243329077055876607699431265239557136039040750425743893360213016779161413516497751615738816799806583033749164387469969901203338960693260671345893827829842305695243403794050013660086983219675301569507933822827209480133656403670806244608364414901537845092701697260064498828745034526492397364852329202133734733007198515490225235170498443949733368705072906787536134989538054234728104405459855987453266315631627959796609649651993157226868627533812078837012846778406048339359558100333452895141788117398500580349015664829172766668778346077323602144108609507003384433985260651554289894226805224808293974096826750999828567511078904205421887568738908661534128660403623247882952726648082506690761789419509756294492082116350883803940307913331442185238008676993672939309254177007796531575232624515295585466126832114764305469499373879491250087229669685624325375609757569068380762322654505636286969358656972668786216664786835542743465579815107215249193291144667813872648582737537654787547794137713738597413089249439633215512426583239486469735916578606853217586718960421732311494937706530346455109954607291239404627358434825243211799980774695079413760410169761618572967401438560316755921747198635646451829903422515643989292985213517868110485264551460513119538001448515395447311682725707905732129165059219087073539902769017413719702157178266173190703905750236402787967300629880727605877616841841592633547429302462309500827384942790552694535613690536788054268345272527769675088100072078835457652895546424735120287445470935094755718352175455816976408115886049112804286607858515660014953089853798541812480738369869897120047851849042870842072708776105685877401397176643316847604558932324905096777581773108998991265910630819893357250662807654905942327784343114777037213769310993458642822248007976359826717142686444937066746294910135119504064373981921193926514766522253221508300866338646686516880551802783003394181944226421936236801410975332750082082245869254338884513540567959657386058347415383313190655622709311811603639307553370856350988036790017186508912565229930688420915859923349715849894200934601579002528196096578331734103060512961673834618457260018605125558968110715443212589924092558677648238800370204272118248944302128172147274384573392971216246435085433605110068097788521122520880145740415636956022010343889949972679861205817677479992012721848338721761089237423553940938419179267983754476727018762038351879131490635943021078949703132160179271900724477869776614557582825790731751121308947917131336962403469617197895759694029012633778841265940216876863535144483405062074439953692638991528663243237858161964021499360089731723920200696619322500731644811639301611316663120593459189145023584216974669361216921517475023166722728672367650075174880125180598247143027749159768168111948331457619725946563081479761927829634614175217507669441674724015495678852547824540389534758910727141617716544609505205664407600314569060260874042952762916812174999775502220490877818091383561124080615519840030801701473871187518179066701028424397993992207497412938663846386667351419299573757744867111800282905697480400569899560072556480569421158437181440065225517710523670203591779814340559026987742648921381509390933748321794366590735853790012189136584390891594287879834226717283397846577118149354554675081331182373512506995443116862749763864493724535951173844102659922822226243567501873565803950101664436317859573686161860597595285364741925007520149251892877629454815989551878500736678959249019851126999308609667434238607871186849970645612687544126785266954701647721215199545108651614856034409035047451267442258248767502836138068993523174133708978352559040152983185862916354540633370364558545893810565673479470460920934407814351504867462218379536978603020924341101072470641245284273374387960012806420344537217592170650743633024352668893087590438121172176608337881483042313472813031950911484051020834247353677271364460463681535338278898314640975294242413883749494515870929483520983561725416154046572000205303857234611211407268895438929965054690088336455479245298180415124781516260119287790793420630709375147615346194832535834934237841005272533473378891659572619412683756960031400721809116625060755034396622236373846827736113908950719621450481669883582503402948437870676891509027191949787515099074157269218618814320421331200356175161628508542753960053715696725232363858830948455735905240150092199067339580168914016619831506863607285463312208577373703945897234001755159946860248429303544813311517849406160847056383062791841983214882709094873496094376806560892835736518901725194063399030281086618734546937463396316436137568627575301130202815451382865596769940561352919142347625268347659621999463398016951227207719332725946693722903353131270939761856281045091571438175608261045066460841449015267282107535258138724113918803660160963040597464948382474118794589616883300572902910668721190072539429956752041281751442924752791259449177071068580519382101763375345067397450099106508321517802511859997172711519375800845260729322500405282505659949538536745800992051613009514395929282255281239130784271641490241358773417138559919622532037744601645938551040120803907765711482727624942956423305905649910850874170499056801740871014838248885297266014320243336031270400675332235019440179982254825064232186544811299571580651711259879958445250383018250195965993561958862233574703089898610786723941696249888711502713564536174864342369904167392980497461940225850895052844895601913135292269247174219883250298415090274963699498155378645569718565499210656713676161407285484484652853847205954871544384305235177487779206200598500088466673686455174478809189967997359839635232966491189135518296477537352164325872073828171535475662831363406744370089701176625294553955266320250711896006777589015613943693331411553261877514185498579820749474467643902960046430524446958317823910359834363409199969423282838280572447612839186746023369041555903153611360028009671613648273743525497463336218409626525370652170490772769375137123056009603183433817547476894740114386777277004383347764141008099299157551571238445381466506536282394694036385371658116100487974579909574680523518199823162131985465415608457399099727491195097738376066281722515938308564474893206718096420839537852178212427645734971620123434363931408727566642226118210656004379621654882624197308960310600994340710880753035554647260755803113260362728006640053120348436977176342581105722017264885836638284247310345242830200061473734050838757309395207039139710063622176009204367992187791014375298011040072343667164990439831126229025064303031989802078663079428189673694608425645942632696254596020402958094553094169506591113000172779120597907395782175257503308873638138907800895800028753506394710919353608113190106977528981594796805065900202310312383512164026058211353191033659311348306192868822024891851384515173626418366945868762871934140479321654057973374340620232093977762882097665658752183903499651755003869671501252873129330374800572242782744240012021902699185103481282032896755068802236015952191254946600747031618440698577736785520928076592162377986149812767926373286400913585447515723952305796294656013568823343469797870258521284669541396467709718491289624285574928493617001105407471149548177709866279835104334420799912757921549173466864272913956069116009361072488445811063170884659159151935598677074514477922173200409557850695466075833516118427558886096697578274968718448611572466966574252985178329150315731298247083769746941186639134986435185129115450124899843061535495377948837511547708759714217813385522406485068580477235491979501621513355829254859721651502102507711892066512446578556050386402603535980426352871675632131171358256476346103219501471860943709245903612677038252086902041249187295415114121954858392035436269106963253861021077371166591767604519366884922374821480178372562693832315903850138630417687993599330347713330773081558075244643310510003416768661436273054338329442913022888231744298366432704457795454012838585267970299908138773439518453510228740016611277581160532312532286498729500749040354105373883839411514080415813738639321495364749508324435055582972186639862079664515771680988678084494439142496942128978342011425252715762344696521017688998601596597972638880303060230102540239968083394380109054461692931814335034774636581762267230640649780762839700510834361491948716177865639820959941020130667870836648497702727620588702601764943756201221583578581692729782310345295731166956695990192728775287725344874640387577885408425213030811966203623036030454620264941368882908897328540791064487952194728424994531691408986416328784084768464347814839839948678293476677268644846354065898207260692183965486127227682916304905959264355325206823590322078058492728551185280755332996594139012209827594070509417046229849858745673697553193992564738449085806896667177315818341957646679895826475701563010760557442910205522930197307332272396774557865494561336294856870107987500553008855866128723650466433882692331523762750195194267079999007635530600488980211501372196213691655414464543000438215701052257824747902769552684692420129769770089671804066724001112316267955855187476530261281822865464862715559416493828336368393884679543126560263651862993996814449028278155313296789498741314768320571868993104015039269492394614515162113242370640545212490136547888186323220434869361920655052817811833345197763944869530670453625572293402612825822779997816335416631329732348777041819982947179453066733008254681654694702484786264705177388651635230398458221776149491689499023581861561893578997779130812668883370423077581519835397462665661102180037229457754439082748184536288474421060460238332536961605733661856874057171079264834276399937098282229112742742756700663339156542867721316404335301405768809617438874902444576414814361738981476698910798743445303819533932067413928543534660695554754559202912332002330907352256373432958226258827741027647805023626760925896141077823030361288747473851769023182645858928156154018721821648400990642156733539311729251225900245710108414024043489924020137706868992782576161960718571369507518311521906260678366661538865445511764012517983953839822455829639282425555257653860636001655865159103774029724878186177209143281479328230379249241912612947292874585571789646199088308335476964493783688551940877697670243751521783880219323150708789707580486505361573555898146859203775076946567190469863952978186543077304369932517300031277069021623537956963564262848072012205117566833350362616089142240019956293963799091043803255455876471039653793543156768436580304041501210415218343723289840578682306434242228846163704538336776062522312527930713358067105412035629260460802903383904469926226158533634523098239846115646351576936724404605920015600764975895240347572575264785712093342183638284677929124353439806114037833518591797002625846203579508991904478423456019067426665497194415145092501709979727679438792350140588198573122143343299347863121335175968583749862391916093415768587409615462566122779981648222611754436822718192990052056402830486820945411402794416806726680932378472017252787167412285235940842909044455650251877915773492536890439023319642416434489866779087031830054796845991596428529264611492692513542221241381583099812202209831965149445141819762689686551975923702529142983299243230890111107599965925560594964122740349132847627439479765256722123791542566864477130285317564575874187388552041226372404854069527311207970052021625126505606171846909949144611027244119366288468354288607718740440823069230797603178943363998517886834926234959925885867470664947960917918612255564539271703801672611832014275454521797160553289841818663203094402564705060963872527368828916087105980037135520102820777362600142700634918409813366236305870748327845406539360333601494743185521718175536651117491451649174263330723765380921405015217372358075620185722518914518713761951462620715945691761921694485168478301133714207271333751017612527870358113731399693546313713616139163488782828714816314824853934655148570255128468405482532305910333698289799394863879350412544339952162447010101034143410661029964015424680437130047724712391204069337331744208488618508367890257121421162332899746503397369686223603984871310245027180622552285943920819338287917210623660578822256057536223085620458469063823577200107519376143038107665876231654722370166881012325078764815814002540651172706366661172228891590389817783637775896208016081047159874197196945284040714468266560151775446877182985503507853654542743367398304616287513619245430760099624452776309117392490041284100231378023204034819313774481430780864675871531841247989240994808014952884114991980113423376365945513550938340698023197891391540873356577367367892729050851796963351757293871201749451573808100534394955135852394718352470709064871183809790329432812398849212308466231179087927495376426962567649026260049663830395821969782861598894000499745289753403531233076221515988749577149432368531550599589629337206036827524640487504266387262420076963627861624548607177096099196848999247119322826355573386787920991272659888877714179450533522705668042965104960046895469236892613460261791480807249265082775309577681936676850808722702130547595768989683112280333458784687772383408748801864400504786847508982572039948583831520157839082919743886845568794089568274292589523124762420089783813057643922687351196170731107419031199431254986722877265180998538528932303102451238146119029980157246619178118510509102688910131516872145145343505106493865293164617397174933250617204425815594861996404922495725706747145367180573712830251918124400872199947954958430184905123263165542507115909251979087228795925910352661473101952332667791607970237077751935843752315712198895149151785220079848462311337997013520118071133611086706459272138666334835348677990405842505888075804953300259543705711667638395904335767159178635772771416055436071506903187045154210446939388939435783729559609094468306025758473158957834524889951562784885741598433226480984868600668728822038284126005527337244537207029259497809504848831233876157527368766005754106853777689760202606394852603987605711777632543395312021347172516198745148267971659283541916430717047805966445977501440438342137563427151223538158901386176492420878680126056551765591875445477172204217333754539369974564653154093050342985434514222509840505916595731245018601363328348094471797330563566911944954669452774953500441992644819382364493407790194904974954942702045651645787591812025971324289602026900885206532187495844260610328191662879196379242753721178135183462662076987930497850699924033799277843027089091076077618884375582205342521065324604483720898870174351096372799207836815821529396793404277208834218400519970397853994932584732549464677392831701154334511403268701868468843086671834539289822889773618873122242361125177129898808170636835499879956497144840546521907848256577079999687539313910409443583860365708135099930478050881093326477983232286713788146092924990353257019838399213771489047994493281293440061338018188491190536415901434642311786753287467285591354465044849149817667616801806399965414931087455651857132679198564692168933674210840716642469582709779691157276692180594815204362496023538068933830979735709908535525625752979094176574356308310732731774485890540608943457860298147656213274519292731973862618673729897795508840827994853902060985677282362374381285335540144039506478720350715609629701877047178688736972852064813472485059945007780606129017675774625522362889813853851968892268488644681905082562476930558299421280028462259066957605459319127490385096799673246523978589571550598485790588667507284158696842746661463281047150521802032259948097207599006600065915398500188390414188549512879029894507834422105927524164342136066933760355999289264791034221266832877763099236124327217711996400552530180337566871009431463926746089768616170401226657266441621163147294323585022682265846025401567239706075009466498424711422919389351786247250576103864812949480351516740034967719820457219015382784662305504086173880486239770121988530434864938541877458092412998682185742627991619186257483597890473757001514590739873991849582767405955520110117614996679909042601683987147870385128102652277669996862757763896891914015489862407471815025765026970207837322860057064413872152115677918462691639018756563715364702147030438723921273273998658047971930479031562158257951095410785050027610293525712803259280289872220758404872022633974758544304661340109068713874799853912056450557894166819427847260846805065478349828441329802042375125690951266550885801590217665466342353938761530027823093946141355278621435716816287726514455896288480689202638545088790286277388022343590590337040273182717138197677997271770308982338996655392862870776556696699886314485028021910555821137259604325123992498731013216459239068771676741161848848287441527845136995396657628501442496459538957088635777876005622932657249587860924441633679650848009769179951130459791848028222662446931421333982954437478121785391435819364145125628541918866078903025973421089570878302718712235165280685460992050349741183161774305394507439782894284225740141741817722893530909438405180561905351914828823190615162971214357586438856342375550959664812050155933394588562400545675898496616697663431308951469181696511656325206932738749082306826208030712378884003603651416386699820811711289897867223012839307087673258697599570496470900907666759217220542544495606424415376607063039850359599821943693055174623780890784022767827754939643165668468276365602417140706262728766914847144221169814058136605681827937593187137504133196207502143361464433251106961970284888806122911245112583280298800844683936184714726026944673559999997848482341625458996350789536779498654267487554218130141004514145150472316207589762082393042607425106317963438000209647437948628595366921507811282032740939462527212332187285702056742251968408899213110117590587051924619550500268724933214176474497212760774776236318887844118103490442455158763029391797426611561655232520164359716311066628716516419430875695824738876787130601910579267316488907189244057512274634874371317289341946695642970246724503316700842241193028202643641073476719909948276085422013920341645211832268740129160016509032391369525304945927442215734093820215182453186360110390127335996278428481461421240521401442210493751864933575001980942280904293266126869373459182770186527166890762089490490102027119740496243212361401490851184641436838858975224683187577511260418924629412255025462960692863490266624275276530292907622706135414751774631137728785490464256312687951870686226666291761605460291252586953055082665329560353440415489580590148893077663596819825535599174138511591583950840323808809547399930746796758068026850595143578636060559947399320701294260715222266753860377003394515058332215220901371722305437445567243102468373920937950056020571310652118604591700001948841521581697419836193834041242382471421553139995925526861954681891197118545272951660490488824250379540257087199625654429680386617543777541512366007919219490531097243474759692139710128016030017119700312437020194350743651922444195904537851947810542060383657226895521430729729312816619129977292625709125802793355161165474204593319791523419432412977530041331654433407473628136556467111690230002507771112612795545714715301088422600481469225295711932857502948155465504477699243706553104348846025056608029675071832246525481417484364757080995301979757326944040416911389308414060293276953887558849661230658544042621500949920590992999937641778173183547408302848286379339634213907593274899089311936360950405592908426871756946412199832899102367379999987791358629412969541283307536988079070375245581813291368392932180622128834925977896530803354523843928007214197589679973682368335456151212663254018310352583214051461879281880152095583534622261360154166033548637992019358179383438339151651585860439582596594450189390991284828315874525166580797612023886653206962286597796903719395531832922902614315202605875121975030749706492593946760259216742572757638258602066797203248847794788126032492596592273049751432147312547128384464045468867188285489289657020187411231703037899647799961078206434271334733216538338450505223054761269796899915548739239362046148191240676154637273061341788319244908018905678461502759458659652935681048241293264069457636001868570621492663696568233569046523399418003815656307082401094040674368663960072475236221522472029698699887020094426000245520477580655674462114912189868147209387578444674571678491816891557403748477821084323928343010672605661212096120609953518413724730316565166045266211000168527302213775634221888609526791067294840579749965689280879571953137764157302276969666684646674647820962296715644868628281217303074330066270608951042655578030201773199957401122897771295034685087561177888400320456326025613789523575088693489848952199653540864580250956781154793717182918005371425501524685704532128485432393331064779991850905586880195594859990422705543843845103609858469729501905040076104160832016304122123685853871381512470659378129310488542481377458728557636807257762562907236601127455721620831241011129949742037775192175784441901303965697727220083123880875346143884212666586164185516855122320603190042376036267601789846152424237759531504083802171083820293905344711371868676728694424967151641210257237250160085757136426723632324061661178210740818735202452010217849565037806991124681597398487778281866784959351204308145894051937732379936701078786974014605497360000098022696630442273743727073843145210933732740092993701830789724705034890889314197899472861994150378296631695387001305931430174239429709004557969948994806613683069190219431348342632330465012655022243750002618171026476007031952704811763854009512163638406425084939845430917508082382447919629517881907266149793920402107159926314836478224245995648493026967123660013006632754165005484145353632353983035117707490367158118529820311112217172341425082268808902062989590632415276085284351345363697473031490770518217069307933990038628148516819279854136895413446424885256602593984013902395218462047809070478734204188177263553043937514635388633411606396118586627735278496886483655616343876661330874028594599941198976606893557428476809990108452829856134181931187113618095928135641341172444283793514511855322551768993133207752274260745926465563168094422101338284877171610141328640695840622760086424907250897570876057259072135505502199631397583798720191877944494794830185329066115069396106308735670212413066972545423234862682668231192039255340826089330255503077624282126510601603306808558941861001409808370885428932049002229778951156738192045465951341409504917224221500128411570748301897533381767894566669705110366159479426710137333882845968987161056794807870477675414650313371533757221916227163418994879354048938845257690659531372732325988168531302133330344629437986581969757474285082245392513290068321344179312292108602169307066986913592790452613868939430420337976017941225891074395945904284739296695610047331414216326291786883674393570404881230232106348141561374795313373818617639865214648070129064761534984366449240189606822631994056754245460938233300541717437138295949647333851528878779069765428800149511754109925769646603741838626970646907307494662727653925818978250444524979529189285042970119976976582053300789981546473009776716004226381702243245892944213382647716755849029361697537565619664454489723695758219428485235332877109511960699050516368639524394594172214580721192721644143929286679237560624129565509296467838102628285525985672062312048653871175022746933791420438092950291919504748519322153815108355925326398276418207981951937588453425247433809022623797447117142513842171354989711176639513990900027531960742442101688006911336733634378919509874692791778491515332322858872602570359977391788540966390217859823043001622157344756731173586528894138592975078931932595433966204895723149442713201275930129992726024502165662922850177519685975608293167642516954232683470966662261767955412361894897163669486831308381508116030912325713839785225664220357939157804678898165918099917016832639920841564663204869350391950835545125447905368642943894214952238170035834329344988084649170052252751684571186512440757350018371595700265877717470553058833532165982043319113798721396159453607465833849584581509600516109577000256401843652544680093942374611227373379100234810249789812754891958108216228506057217820537041156384171888220460804793097078834546568927526539824538839253752373385012775140382126229230184670265407041515487878395643496074451387479348915676926366613501672590693335988153277890108551377451700465474090396849915682531455306919357397757124643633147204324567912431962852173527622124815229777837110011354142454978315735240736567656414195514268231037915361703888487463663134712278556233352761778440733648454623971933281958917084344588758902134875154658798149359750276000584340176437668609070103517912552147713737508338490688862304040109184552120172126870432097404068476714609698130696832402118012587864655915256151621127825255806944429558912945254949204688177489656809537007042236541162757093808970580464560062621228358336620325873322249116106696089360603394371441646322154308736076291008916808583262756490767973958627397822575041245025461606570975511641661364710246405389618583907664617418414644106263350856886705101899794813400833642332693271820997506806665368775209163584812873035227560052896652074378284057142313130441250672040013803718807201985212089351345348871944944374815989392017229549617720519092166182239760771755396145655575962444549779314950351278069894178056555378523417528196508464589311239058281940017389641777855421260085528280202144697550495825434757183906257801710378881387269509469880019543278033948258344016464034982474335769841489292387822108465494708610878903318439859566412084541640815000013995403365263939182260436700888506270922411576502011780440445261751481703946138783158546378563224791293973431130433162699445370378825909414598939946455992272995399063956431279371615371337695257612767672205397643577460922796598100381461135744717389512541764786430363733925198931147416753588908700056166649602438909626532282177510673803449346871928329496231755549469232545034475486888158946689905516349487149882001519876785716593895884740415613067288029934726277609079830382217918929847639164243606467061853920334104873238582238109379362696030344019966020811862316078735243998772688786047178202358067800398629722231316501963396842182470897211996314612173209410204106554541129316992248396254106486841024826170726188467732859719251959457446180068363342502266017590647916234217609925383217476824637864740774161082995142837905223842197582904930275605930758499058099030384556847432390115165878439419409173200938491080779682394458392552200786016792293349301125240463256039420518578665988699540518751272636792601338431501827303672021880963280263462773299976037220831969287300532961341660441639943799297976417675936428645041979452596895191058110853721937242245802082296581616828740498776892841986249604202825209448876570404055135200849073096366265828301544243013279663604295712271636194406084504244859020458606225635099315075497250908723073626451750258173315392566733186307472523263556216525382208977447431595985413813394645923441917469955087527316953675377290847436787434408778316858229420702053527328861327089226062472329907892447624867657868922730587545928883880266606756456465265489445765759723654470895269567939565647324804554396811110206890208015693808941859244801435639428261016779237016377641635837080150509880200614163601348968912642379503009849160112027627126655202187546047169898411702922116869181841030407332083608872026312239514800281904702895197784068360129936761148883554908736903894638025784002011890758750153475401761313098787772691240898844751313683543338745405810468474849991819974968490485092791190403260092803278599047413180985353301767753186772241444847304176803058913529007802274149100430829042481265240637389501832104028178071891992505959065884980209201718890197319094929684936085267667370824081832609634555014250521886549564492121193997875058504183101278589463143710962849234858185260359045671954259308128126703618578051771133048253870533998936601976531378572400393174585756079111008485316001383847968366654408466085118426643960851774165718084085540340289143016174995424739921749072883636078791937745193247238767130097753531967647021143522086895480445267625342677591292749702859198833895246257877342494630029981122395485256771935935744869218205891169445416603979395584189145291000598788835202284223210375343409805678545638797433973045640732816015725062728577776905511662020170857001396725940539566763901182371497150842321562767284801290183325111943214630111157832158076065651436496729697581397730070794763283863286357006411308165151160422738497004693656668969977729066366267127449298123837161501837254187116772457619161820874100273163134332882494149272782869621124759438183975842074246452533155356685470829838341105605059105373076428052706615403238647705605235977900653374640357837705473002295911990913919480241599125420197536337960542319337822284801559170074441229055240785448654098888322106858476128676294439249553035498727074175502696596580033856722398595029129912498338777464319139256545113545974775358079327382883498532054344127036093607127486772746818038536607056397187689520536390843516889325493040810279084138164567571751714738709836138070903291828060375613054814912649439215532633672185701790306704926096498471362196268398707612972729324104107316731104781820121899783277943662277121263290381021252353275234456224519482115016247095120947788727391326308071000097706369169448456253494676048561824495529539240947608354503633779134373876441293185700775072347226108296687410186194290524944622563278521353856395254539868027428631219036355899251420202710093540211638032982912302257061136069120675322397498168031225035232344448471135003072561984989706610134384586757122373230594260942921538424305356283855148381927070824379873156118193574725693665052692314876230846750666188744344443434467155196115604367632438381235553732429909423736752444845094291734498976848741495277185670257457886512028648264547076735441770634124194003556619216841664288059395554421357870252577140345384719354978510229167569169138469679692368682689809225686453450293896702889682181818448414049268773664112714739664854938351122652469223673894257128053700217474875644579542041745981570023930758690177775672170828717748893754695777175174840853957226717723340681061416823416991072344756431927938114454945057894619314096822647990733899715252001714412797103049712338428574965102473063693619870218402835138198618102329552415762415193581025859600095489645953964711221517539176319697645594712363584350710329447909906014673565310687351321576186242378327328089477871242239645863273691770951117511934414416703069574819343020329178111276412390971941932967110501259344081612411672538358403059126302531082086557268746363220782356228474735998668128779796492446792518336980072712934277223805605084724988669592434632487505560209742003032857034671080899415941682754271233858832587764066013379718966593041213101132768838394665780170373573409993763724492288841314337983399883381086279924919697141579018715240882271627754090713802236142272907571319917986401356990753960389390619437851277208894815227158161335050761858600389614120115140636420662762014026597560680503030580819531073986424506537136675383587306324436128699480765054183399874959278032828790611461832429986293533464896848774806145535188381470938491800113265886590679054207701338857238348225974605618895494085567785202975137688090934475007505261167203443722827604341228175985695426944541044577053613898121505905396485645618216523824325982449667493426815918995441006604754527992249561313228432371269270999661104950414139710618305809062909317270114308318922300907501894271753155406455237509476750065217154578332255194131916648225562219119335971798796546558764206332300830548833402022978808847513249488437088878085116263965143568361224574026851678102762425851180073873632902727167004802676686684700411444995147417492067097937755400870331908817219495780102711399932605931379457005731535537043850303541575070227448912851602425331286651422248126255577876247441969110980437557560171053124629561628129349356278295645108530019567844763986710206944056496147328640742243264293176188792136261165205349216882547310449155887758867026195984542445523005453508555641040265147428485811152463374892769048262191289206609928831230419563854889711384890703035752487416956668825348492301901540857683614763234288748631613825259547750966635762018766109670839203975705735481790394122942408274239029120614683283460393942231275835951367646378721172996334133580297023149600034522334968457594032416290890375106767031785577131629131869983888581973527576861382585344027425398753147119056366385966445024985010648039816507158348050186802728300871575144105731202642724769902545714469401253587632506205521732234358389972442360506641467569504274210907725359440969257151662543495667704897058785153484513923034167214735760817048754743728005762758275681687133964183912109119878584546620112458840182860773518539941463514555377729700974328594535771335079992779476035822329370997961987978608756569696836342785948938933496340818283313473085768399500440991643228087283400994256904434754232191473974943584957026468516317597751581632337335440373029292804678821564773651760440667608438091990914770159083962598719192934171750653600642827792646737965229078210070831119234043491476466193454735050772969091360519018592370707363799497135530475418142983072743086875343444202692685026884910639387067045178930831436679380102289097128362246284919528942915798850612332941953694261175187884304425935424570764767137333762851946138559587518105618117610760505178242439649334160190719916327915070195680583535438496640106079245237943432285575436499235802150537051565525887709308055404147871844942994743047302921743809834768307560860025007355615681663678019573917266665407125307530076657812307565743978453685657217161500914488940060228803193382281301384776392962132131524684676015509379703747722450735791793609296162010237317704015135809027607812357781500442970415358264090270208583885602972334776497483065468962619450332976491060414312701278254450979689152430601601997007139964707480724862996697258655973975359566328786409459941874787006214481157625245449306843197649713961873773571359228337952115450291323774880956407654698678275898461924443355307527941610441912931081545076359623115880408354155951102613796638478434740340522541474784029924793383939071757807232062068507428249136492894051954309264596355965982558630860132702025226556619365589374905873248596103854018444311475252404958009810277186935700405938630048442744847575740788438806318185302256725761336918776246272776548488385207146907684685727742238963956710519554688847543844512291030591008831649179312694419607220501903935980309214691916721729717433454907524696186045675212972984921629070521094748990241298539164972765530954559710765300960952497690323225551019634474450125417843907072629004297276966929998775095021130650638541919520823040483819833667927130719123816561403271236266241470314633615353668976089322562929495841568651850412014725146072674873014357651314310887751504199247024857517137609430528755468376196837726296422485548416865729940440505044994838544933703182686462398362928886040217341087151606179803940220673598245498783223366615784855735929716816289654078453844925265201875544133143865057535076500003946286946879243582362892200358628531114306006550942042176613930869570637228424721886321638717907228264448728611094660896173729743541078396604075374375739164705153829028478253820380265478708068802810751087304575643994155397509057511092891920986375847949364967716077467835571863274881356796768667038803507242251790052679016265514918495713376634902970785862972903660771439725666378381041550582888934478071263001011221505108078147772251618290388395025873656458780439116468726032446160179499279064122183837167000043027942033179672285236141923141179815659428351731182592596641811278581275335619197676374430491470506422243506042430110483320734449873919062638266787963010591912344628480548689424565860430933152435235968119515846622538615459734963778934663709306609586252557775417097973787530249953948057048784488808106545224859218509176192073714085447707937386187761566352132462125499240285295290294571560867779156210381700649784203390454084744889787152868533186728322172726312269336860270192259903810917532772824258846374143700282831818510287521925815268921928925024166637548573146483354455472239935772214909757352948130421181860933305964226689410868818422473885246470586499284171067054707423631869343891523185421899877671647800823261358768638726887449776552715546444551645723867138972250229586147966305737919840237781555733631739132820849681305703120217366217936759633009390544822632128968923669032030278706136440527293724359020722303445759407012505170167013614012881599532354195626432824348843178688736480846978198472424714775472875379206555240281440827010869074835529837377433028454150891225928067418622539360213686167256065184450653370296931990518315861887309732524485649807066070234808906921974116906162437605198512927062134966151605964279024397973231100599266971846845338778849526577230294463722416699093664963001092804262611875420410646049391436473751325933385455198250129969353330861656667523028562355082004445296976406584719436826892172982349329193349793881642364805404835664107696379247567019755439440076372219341753028112196800158219702647672041070608132448781526743785805083475872327748277804063925876961379758931562147815459436329591487331266293852584973364737649106937035717408181429966262171602574132924607817666798677471053401724259401357163288967235345515767612753987296654869434677349087276106724720780767429028385315460123148098399285143548710076071663684005592546866875113843518341991457956970220373323988871273979925657614313061773382311408189866024109361257954192686991729679947302745556441728684630705028634192613538913409364569646380316387992953582388251325584844105436615489031465124057638930215796725021818392507854357396184950011957677392609910665839209346338100972609782515519500142660918629222713118677829388640971734487607873853337617383483738488811644945416422687068629517836594137178196567527033253761020242689346783149534519367172754774673522337507527959692664287001179041631434792801745367650830755296544006972795369463419901347232464237466742362073868752055712710830788273799699932077186599194141865716779342165436786129793848501316985281044882787178372594820386310498621237729856176034532864412328195023515925744018394260670989591747619757271430679773404739537744227777240039172906319068333286144202915510500886854229544026451569681187659365602486291248970723724405663779962486655721282090028014498978268332935545219990627208859313232924688128781822909374687349909361205678789340690712139451939707686275323372168850356433379831167127481522051564448573610655743223629054853221084087117333827301896649134361926604720173062323460752888439554594896190466377010388518234563136702302907822745596098584156812049729404877702167673378668763071245873287312959640371791677868697452232321358808400624696823842759979864177809244165722693199571687179526056714400336749925085526907127656990926379861457910575093134557499116137021145437670796823119615436067026740065318929004541012457145267679048806590476910670141862581533095108227793586841573149454994748121064804444485471424434697533292912337071645363780494477112989247955564497032742611692014640698463790046237318649291669460818648567544960098154289645344119128521647472592789322016681032160798819324949464339220909939666578492302144405259906830565776453166260155539659391748050015017031139043158429007497698496096659475990772925465665496750551296454475655315689879579345525694731037166177258846058514612922365660855250875143901125966847164465521516084187879251261885005798251482561983575049864153242606086838584933697164434985056880105694529756706522175745989951316405764881254416091809908798977610844108622795727717518748488365700694772369213834388723456923506048205590135677034481422369837465619598614734164960487313755631459106775421861386235162018494181070861319264500289777155614012328876943392649542370370956087755572391092416311226935501045970720021249994891856215929223068399586192787391894515822311345642272753488660011915688844554598241915827481902567557860481394953943808522143891505233298410084255809264020483370583332899631685916571236134295576397206580108712427433795757673705001029412496290476721388859395415681372862583333370076740672649664221739432254044005758808573361573006507624342796017955307305758618538388772275941651698990937959225202764355540928130113155574249435608747330536494094867100506283166637095112789582145785343624915796709378219726543818596814046311430652438716698820737025513758017999756837625994161091709022711025929540275745442798401973993974934067106756157574505095843154211173295604708979378446188282624098164613195205410666508587775786088432118956596308556687038265480078295458199841633684487532017790695087056598345291319973986740610062769692370104197888502266294366003605648741038144279045329640343627540913676425762838893127720624580601558809712097727659490330306412467716412258737451204796589372962129381017171150850312245831649550464368699978726603711680201776673062420850349652632627153114399973653438045629561959653989027669531428031212493911131064837925014572456088489677463379683324637205731542529833418794004277482852143928184264041184765401600881848136456307556546794996460272480506443453496438131602702759953837915697392345802353501307874186750454399942481806587287181081123070467688638391608806377512569868004051720494192829270527994879391291019011717448496196302453483672091720036857155942195162491855753860166675354133777795032074187113804513306039313171255051629259915673325094106370647521735430731001426741246652659750430760317213080769881511925421610145884972997312805185297702913894534951611417213347832518271506247768277019821106519075631073685066464900886356681897092366805247078856966097147950306742559632471431924668848655535523562087500389746614756431116422359487684094479437256370364074253985634148592993792319700149672710074643790619263017006693837932939357399100073998039073278580676373207372554315801473424758937919273313050976154614387221663905043351839318286378442629177179995371006699332658070825968853945908405135384469411882486497290863906468189123057218567757923896337362035710864091889317894312231803436361440134642987507203918716361778049486643903577412275495080656059737826668589751846449468289976285781597603679567599852487599810748730451914812921243181616606820495658147742783919713714093325471794266789661304930278764588539176726881496198041695399820409230163340063673066933737759005433147554280867129020680987483857599897656363387747219510417119992807379090182688592550466362606949806666103197532723812790408544902947436876938966928716596369182084388767906772398787134880227367975902568536576400660920431530120671119566811426646168728931378990488153631407471520509295003148650379771639968409507172176701723911472431432808035055451775343210480305999555115450431586408130862967889838018159350828903854126890610441220963151854116613702168867471022383979350785797375464017239715270545459389552478658871587040960336131484086603234068212275550951629188148177182932425042450036691949968288781460239268701239608253149328004464684508290185492411108115918639106211816974311358804640931401395809083889715808162459326729365447290187300897839530942395057240643747139036205071602494365795365461288186118001898035203601116253760653691604601148892308024159975665453008683409700883352137859884543834600048758739564483381290455100503464520013841840803205825229861968389008010233660008396499333553446484701224912571042706593426592380544877771496338780997392602937223222730628101058427799762225632341201180524188841671521440965347538661949016554546788410859273543747971203736555305509646080402285458383407601385167540051613291305652002272453034951932434267488836796037399537747641685957758239811217278529452300906144462709756814042847602861473421223294259897597081835694160992163431077095448216504101076168506527213952738402431229391536096626306667263618871044553915550140332612495302661845633109218399675603254134500149825825750591906464337700842063191196572894043760121419307294734833483610689348989979710433604865734772627239423697381368832618607297217700321116082560889680956977185998495251244378226861323726078205043215979243611731129888027122821552802005515186479257433755718185441243881745192760814832840703152492629912894847791153751667967993356613020207621712544049496224194500434276999016202239661712415768699038710940721077911618856016421619451209417388522254908776589806842319430282407216365134045990807206324861831894277436866448850867170221390111742295467996749025025296284350591838230612737904511427392756778165783543796927167383048497554967426613977471633463362690821701232201573895699857473961719950892240249645999295772400436760844690513720534721939601533940977531964280747704699419377319847994872106381776511522435783848626360797315102703747296476945283123926183214261074264759798190091295153402165788817462431679612798302027917554684474838746397602090477097111327321750590133849794957135172356894409989890176400023628360469195239021807091678416901890339559347645363579491413974827039236490045948520175223755939705544557749833540514310141031393092573808768158233781383238793964804378627391517192777353827858978029075997268742814159882347054143629730124055886513224668588402120598934073433745545141915160440405278273861802051547296738331923386146094243318903980818068577943905368398872509059752402780662375534642306053453006022584902090622946709722960321286140981178605103523929360105835125913050759358607296664577801671361258850480367234822837272085465183788693950185178813264114138915852248618809751299822678363488159860769272237622516840188633176148592290616784383186362970507229825613498761012571947023568837723707327162809896779304654011431519506022685670148548095621702025172225587251930480932520410820317521487516387564319999471791821666273099260545879907402573758777522246126093848691597845819432253765429056712903813303923568822409276671169229242717016495980442377824205441566600178548027117477381643231428127082255506227130429852669522161462355130247537642422051433951191007572833810597168836368901708433000703204921645099643448736981074035313863613191884618015682155620759581756956886434642657353897639477349484439403620467516430496829756084167364091109653412748556121195557670553822251889343349874564785362899588957046846867469226961583293194943824131253218832414026983791520901258380248696260481856010870845144655211938265020276631003623817238406086177041578336970072151741323061095975224603277037127460098387163095794279102039723732607179219074317924578930757535760914804703180355364167939920793455590227378814890030674953573403873755761701431790921417043994678701858364352293097099375948280948966044233201205577429390817641448982962898838072187250224907015252492715571255157726174025818469661554051498897932899473578274679768992543535418906850875892507218721829063634574638709411414162304204374609541259502480631184236739612126684292080730614901415615727610874650772720648745828736925497126805241497011797478308554726888601674727309231095707836946873817044699460070400340972235905504472210457782567404800386246968404132518823761735196214427467405940846791271509243067174298940177999591093082444663495147288591689802061324741744272256000328832998831686546394448973026091536406549679218457801229414866012863420184470002546486121149365846541156983022398395005320718137610722037255541765874464030292073859403989661522735406780649570561151470795742951033226368237547699377519300301807954468229915531768801066617776426964048207481564560408611101476848794855393136457444557013951195744686099702325327834577360310232583280958361562637502256411554325087558442103910711715652924402186198471739965468109905113445870906841627150057749162870710891467015380832169776344311258881761683854329250129563192373063064720343998239230625189702746461295598952036970443325143219357255292785997386613200091961895447266846989792849547755151353973061634659717286818901822612931661133240188978447144550028968280324492061481525690857115785938421999266783778908232343554740697061721578292952241990823773753994391081111043830527741745898808253489350367723006893745969287584435541410888345635350196244206495959831992148229774182506757319946520587656421313289736365351725396253118205505515295632561413261650521332381234558736045640074384563323025648454052354365679594781709907321587030808430853786064455447327225597875690261291900529056618818477190031147011121368701971996252100077458431430075847851798932995957481090610718945795848270292230271985163180331975936488236886922151516118759059038021782005472458409622243171694046366616988875998158635808439991686995533123353163769731535327207490084174889452094248584416688812613792600456701682791844364923611180538727963848403351958217214009636699042892390202772854049678587761501288577093313609665687018482044496522990354509191290302673927746662066396142741108570235527317556999585014662633873237270796908862225438714938930045671575092916748460889659998195803210090431706752766343144999045851620553291425433410986565216962145735683748902579778596727562515656548916389026712673432266942335160394934660067630736963817505878941369496134179384279113127241051253569447016724623695190145156593646104571611040447610106692951047949086142487229070259527283280336189144717800525633888142066918073585516570585050734806378790041693197361592278975267916690694404616422896163914727195537280306739756647695003643936813710510113337281399379919493055629438143567919473565605864375431038983938232169275987730737176145119832860008860991131300617015699168184039105918808159649874937037335876728445235086968473537950832009157729604902248690796189814160291099500599666724840532439459238959975138042439302336381711709813352296913156644419414282213827326820805326114122364174486744116776648907174883171133735666855091878327922785734872777033453188395145976326082548991407095789392235477918070740924450685627051312681417329783653103749150193117744071072589286397457783111736819853856620110347474956526850753397674896563967582593091105843061881993106834156710895691797225690050162067889590378595636842246560132792725620448167971240472558974809783564051098693857734210452006786795159047090068004972706602292540442566054333764439310152046283478855303747351803025344122073545605457198279748221141731145995408229743319086803343706148272787759755419002250805807949970761550950772134313929342874164745008564450262359295427579378874407789205651110102843665919760313110718826866298311162584390491728777994203203525671638667080649416073602751852750726404791665395727476118316822902721850143777661231759074043692356437859776124340510431992070284637676228170572879859423276924603041885958268921383835298260686128301674213105001405191659457422607298078251914735593478569900098472981032715861672088100539964943962363481543459809869597200187889302381498765035979377346027137858822453479876473877655189245766426520063050032739262449943779505597851860492557631353394789391005814719835822712897301095030670055309525694846929608260443553430951037369381425205141634017640078490811402671467200454383414886764493016718967363317723855458182836293599014041666180791115129710626406482829214760036185375915246725562310640783662195764729982705940844963660815456149585328936650127150656054523779362696035092721760761343520956582613356302757452998626892604944580535285127480958897324159784580073703831438883244804340391400505242991360011065759434736567104351014678677457091758599643870777459253187484337898232520932178337386301741533170700133610954554157298693682794881460776045663057005065738654703369396284702159381953453077478618370402560444899455328433854784983981288406726515538406703347567369497653434134358937110405845433432737661030511322004108581413678103413003093812409099532459212663011314489420202033296357418139062559539984252247572640328001283491782820444905573045640970519207068507215418524920285863749656015855827884688389848138888160248494955167054310762126332856040892431347822717726459350804034910891025109378375429040696949267053467906005198205765998469413185450952651602048197553677164765436374524757566026147855587506312576526138874499363531568370667635650128102459142783823840473722092534603064060905358017922843807979468069813998879974095078835432328480558400866029638361248926889924826717319916028690667569797776475557314803794768232319260555588025403873824971677907746157279200175530809725229915735529452766044249874588065603160162439262036412190451945944702033935358816175302328118788128443427210955731757976782406416079096764726587983600073058367603532240802808201081197686123045898660745770704340684282091861713148121662901032556727370769729284286102659316706067478176580489318966717326879915928144413548107150570273969704624952256248715227750766067056417228720815806435411934207525502506195676656502367746708927051070795164925077365605913447498505302440879338543631488931276060081751196190597544797931252026095290116263564809132207682990926922335700996466345079565229382198077921227537710548398598462917117533229783048823750020264635114909911233272032631584204338339832726168239695843006979003865376464073234779618291000903316103387296780934522311512565659490902277470413810510862762879048412790902943118036840548035929880691884274687910489343332623378044712377631757488424256658494894171568356560072853042555970922003317452374844993127693580812324689333439053532137768684602391235739071284244273620985054650933645891032138491197972200580652939672810279475336724675419117951759783333682982016451222350375015889303559814066810328952454773422412872412611206644284405729965007515953474631421036461091199103118611342531785408749349401291148665614952892865596332108751307739945303535430410319677029559545352436446201156966617691121307274092533134955644668572092304231891861389656800075027545948380182015303493490006654738982470280678113391352498059469579910590206469681381530231492246863856505974557144762738191119964739445033537362498614528899957832676867220799065197455330761175288779042813164103476720460008801211291062300187318814784405546958858148093886738644033718267831698792004558167762247982280123853320868981561251477751651794595943404548839951160683066899015652294871633171003747291832666961563871075611961376647915080320885846338836201216489520566066213110114177235830385434634159641598292061747894092357060311178769645042760972891663868549698872876215384187412443172369147773469165595021080199108375467484258734090796828216498878758577585456200991994292482846250486059936601231299825637401820203073504519904558010457890250370582807191662638966535630225477756983366684611525822077127356397706788361600421242222894663662294461371463810780869294224530628093270751073098248375582330558223010404371739675598383801636239091658525274050281994672231678281136365760518185770519290987354956944592388756864366768470832214782167794497448175263046109764168877652779951509649683774276528398390726602226342828997446016712488261456879437449188856493662082562721719593330179614541876214984832753622701001043490941727333536552237996007478898345261194803902692725193818857177820589178368333823415782023127927078612263140330171006364562643903999469572189595802206824985390962245774985557909255989891672034800779087892861733611452617952469591162319118548101176224405079379764500021121248085424261897483125041667001831464535499515071735302061023199103060941890911464819170093110067584050875235797025732255925851543637677192548617420753465309525551794700037334401959038319499899361300192189092408712032925205530433378448671312162414178050549423360272557834045736219975940968867312749241006957695832535890842435101022652737231066130373395254849743953013813254940128397453963440875457693518939143697127115281389691352937881367667631218744607408616451905120117628953796841148683822041997531259687097525042452266714096912244448595247956651272208095277941309908831740949439525490984822619436028034202740086689152795411944922972563184410868268235509098373765901371736767513243232770724642199473951261011652195416097663363067775197080075723753667133672611860073145813616857293047501639279950898478721115340428306621169525571593719686099368829857314153818294435872567349163943580964867541180758091331293751134500537792845326625470745781695487554259239542335889805780165861894086910813642805932865886293594383512058108626988560231561943517640628412343978601767168095900114179054407822495314967097648744002919004211330276179710668666033504454684423248793107429113255029314739690137468195417884741181333635143383199323968257947036620080293663114341275514394327209580116453984872527071004478995428101353554337809436499364890451833488313281971379270427073329883526037688732423310793567645562238218646513568237928458146671103173368157557054801471713588716320166483170858030941495783257663472523489465711751735539339883696371535330938560480221664569889999410358448794141040464416985536638941625603146430692283770768407381750210846618716747868289162368041548954985054465896962610987551707724183137802466002770994071914431338652722641395734374812544882200868488983196898168773407839595112441714377000517272181936640519244424887016364128470129430100466926619813903246839154317335114286903705468471345170103621244325222955407244203375193240985655670368009171906858457137623982549060509902074842659401982198920596346086770226209247944400680633875536101909566167576857188361878446413943588744970546263190420242599346155815476270003693770647511307364488862199017310451410260644342158023663756377084660978530869195674216851848401344013659931717230596295280053131229560279276616729634462078071052709286818755744840832465509462405021271848258337210623236437437977265454628118632361718005712585654596683383259318742556652251383229858716939140683414802246258633893612101502666698507143921122073777915359616332572077978656473922310888481269347544570559200111775499945073783365121004343467149256468741216968597191851976003978809962341042526582770587007040384644322731041136491367611662257473306291717364715205807558436638590557200194842682788821248421932961353155023486204913236328672094827480012832172044991030619086561075125363966582945958290930778273891137936043375422201613929251101857794205692267215765521163141444651397554172993060080574185833128223385488221741987891346022344404127779078292070017325944313197163514667598104404002114410446000718822086989786083538881779744289678722608992959438838661852473281608339342992468019815140310556515193739384548490846687212744240527670631611971171879100700099473077926027765693271444353989050035259459475425486199667862643414806315664906470526058518235288823894763401537302805055191144853704192815632650839867152722356631608817572811691465955623972499812000997977791998698790065940425631127030317678927773472258677216350142711190479900615247066814831458152612928541715025941487046056509557115518031497992964068444226081228606694266987274974117887455608453659666658465004486512129099915396724910805432069412455328960781293183505722972972379754306934303610144057518076878514454310026248885671041748648686330260147581825929802460618521381373853626581897108094145079655641922684413251642590949140078473205461932391950100731128604646102123690843358455593494806958470634913201493437030009859699724317952107393472748646212458101148189150731950469146699660352305776921657767208504566454664220064909785568508954827858130480957539623709801689715517384198122252610616622925110252187319048572897231780830185176315806292988117492641280077880399271152455550686701619248271802645179590725566633496502692723461195100265220325084252759409421851348584018702143566442493428080578845283790474204071298207461440432048273780267235844206381762251178704840917133710758420361169818915085517410935332863723636948015829130894201076318559036833287431320231610128234745945186164939479087002935354505437633495754066542444476581759141648699657177785427398711525587245014589631431824693049447682322365102239519052974967767019750579453574534846184414433374984500691085097206124315386008090142036460641900855695296847839389812453657552767223198831466059940234925757468301000338384449723210910609944364732354682021220288714135674301670875587453324249591508608841386611495689567287711252448946605127645348762980982663583668974660222910380345954574616095770439475243011153635622348238093158417052874021716407829547161007369206269269339943219515543447861681400221450997010774647978918780423867893314247458728368284105839177572646946047775213984037726444269620923662524918575333717562992066485098644278492834872636676655883583041112447277913154051216137695254802845241809779525851634591218663306722740860253837748707339037182113498011800483752232694554483561697969075950767815408801155607863426581435891051536289319271176671081146501417566900491010586810863737015854135805021720284892818661840897616384625791795049014211062480920250324228356013887902680671075947974005249708327556393624684646982307838957599685148593843265326913460699729434930356472177932669874696950195726965498127442152400047674148013633344457510161358713802188598595343705069155420405252258557090374634992885564097844199473026898429121939528066490887223852969995587540904593274067600357398875363461867408879975680244960625829229714935985545435177265373345869780585286109675982741345695896534453480936176740537646685175825979452067553185892890795925937180007928885075154709440843249549802857283250272166730071224603302249821125146558498798405825742756125002201338131848560167406739162810702832034097217251564151812169052412558988711305955753207585142307038985331792618256024742217038090351484665372900416880192398190297903513796676654664157897658440947148949399654565285424104847616672288417652324622639849277120666346977611978795349376367877959384462531357032973988331715838541681230689627367644343511419023351879422224454619730723419649723289026592099925943867346680808712260101478860786905840695529250984131670856217341647735360567787978569107111743684195163203589745229853382198563010764745949756886625798629076905513813161405171987143587711816808646592113009337728325915248084717372560561663386784740369248756748532109315778243482975704434206938482216695568513449828448167034508362498202541055593117519853050492623553169548406529889233293724809443515639185890930115924659787254216626701092009378294226029217691083717235384197507484959265201082728064294852290354711360393076406295617537700340943031936549778830071431198051344199197496064180557015816753629742236070817495077927935806117676684456855133959895354392385566900615316770126757070433487336848206651598408445983478595481271178856682271344364808668404031121964105168896727885342484242430367295090313548791863001688791241243392446224579684302082762714723316258307601737235931414930790403241495090609977076625148587785858925993960785449630448296199682469119914373215964089892741029963168971003971019993861417614180864903164639485737755305555605579803521414746089838433982533688229089667144493509128734780616351829835997431484632449710122919579654082866858063159198570185976775129217282872073952370196134958961384242103543380559513541272944414971308781541203990329666165793383289028248181239330981413634371926128226836470203873661946224852198142349324278397461198688796561910475549873185769513592381876492907330921861233119501226302746788652657310207185739309022142129364137783789654242622863246474723342015030461481039913142332710273020569552500771032023312614643697123271582783914483466291885699262803457949426693108664823370626989947672993310296871864948024083773121465612753767959882188971309693640366933907564298142485104212976844047443213562165500425096517580615690013454716246778520286253959848191267272185868446177519822729460829273019990094834790942198330267832731943144553697233111628575637967582414256109295988056979292090360874462451333368699873218708327416835938241489414306340752679576746309451939097001586120250884468194730438639675610227947420395710707600405442470475706981797359686921563112735291384191103587660192810402553801630217048695480188144182759022489473814712005904340969060091221389232397374943101617490708563340029185149927032973491962448909241967097643413322871746285432657325830278346915883207393294879958765907792579857407158355749214307154889239598431129862188191168314163786824934147766181834678039710493011902662820522165956854148713037298727501866118595121041833028414350097689710181313115792122254416627953152694120071582785457344542309135255746059279740106865337441171034428779477842355216318187023996999629647241372901905953398519422735770865058642954509643493474427487574897877651400152334448093771130494073323945385789131165689899372470020675101154184711832225478954419347916967610691135690346106053753010691490421133632209256976274847364452439993395684554904582951981266676784912703481417550686171812792226770910892831622502475205587273642283679596912939350959073687511305225944146834700180466984253327457802049076860478763591537397824177294788008901892924739833783229856113903011754281690313508636683217044671428052304240371042089017571500566599363886740047831185902864546516542063828119748770240992963291274245890765417749151170017350172327153329841484722108308021867750060926452723177510229307734129648754465303324990304134769572872243724464447470180991020251383977556024437515276225175028356617068494238462937324953257133940682410579469844461699688009476060113434367228693639138901525630003487362025356890410553850699132834744860889759359492865993685243304211297388191716213517318529910827228580709358574652345584653574986311218505794893821854260535658909485341639839221864121722460375222798011850530031236920216578495252884658664889296307883147408982107374660354077547767952021878712705238861388917451103196084916104213702614382170929239728248813000322717993506813113085268189597756588489891656228479537261399647531427402065207247188447190346769611619424084438748282596995594306066538488887362869612136909255451603627727215953687379033272959975572796358858882931386956405360777541880542836553958531412344158082856908083498610030029134263208713562045181176838521709994230813571067964229404241980518365344311447101186283040418471249137020015940593667656250379117974724090858270901727016210158558796933638084277026506853521508832318623900931957032275949112753108538226312524711131215133753347512991032630859350390382151325657315675696776177095464529712875566531946486267413031050056268718747439537934085012537715996125624873237554584661322517444403124852750031642631096514044008646464719005802047237668668042850236423160573310903854425745589025021873231818022195492868115670140549218001535360191662227024690407974971366578235364891326775301401872433559745997550074796587794661248497782354754142696257516375949614800470057114662785266109633491978919004270314009404591659339086888822702725243682173025008541224945733208336207447094450994435036169736207619495308503372206507642500605353950256884399301381311836683297917678100705334331084588284643816351395140101066913523967795679039768490411109831069192710665273457483029122696129122126033397908021208997389735474374146782919937625134204527935605503392219933698013668192760701982119000048936417523162121408994200062784632139722108590999765821472015166665036697364663182513008556585975564134766778144203858966748364697168896956500253188164929668682539607722800295342035669312534440167546030412234886945105648852120701883202153664039844043442591061561614417472759858494014158855851805087784941813673774313156293018436607896257087425527228884035173291856967769468913385263321135668163935464766275751683107713328914013611852848781495939487238611639034252746349025413616487273780125734645164122053695079883904521582332124111875064108869830633586825299934306506234969649966350995582501835170823901208220991917657082311682471481788905828699310058738237638174700678888647473532466214652381387867470590894606362094705448917258851064033334540844409977677856469155970563553295913433790498842306251739804526711813110334983384157507162981996357134546025445707884297697396343947460741129072940213335970807176904268513952359139347982889991440781157007730241711921275325874257444055287778768438149217726702370530303177080925825570128086972332636916950156845489808264506690917867831164677807739229229643124024162092162825395152786085839487580702392026450319143238613082414823940954726926663586057110912044320522393568864817219377374540281124347937439666416947644218884483041790156615911979037274057618762987681644833638474145579386332278102327859664349204506095561651588408797823352652980306165716860429953074669617623972298249546865449525590697773378203955524805254752883332466540460492416472658057323484568968968212707108715489706434544907444898459734020841196325850877207102866715406705488875447844832861605216634831466913542604937742045285043497189396717816229052984158634372358302498893067251301712223351609557126579425176196134532827557388955783958304957336688475221573794666753563786248393399144413000303593338288269450057984660122707452577756911275500618234165243049646636806747748096933101416795363339036899043127966033309690224632773721159055035855281852586013533393103255352478604770210963232677704287300029841360482719280129682639268527404710296565018499640171802814576100468715912433803363798085300177818582916953933543890738784829792787778033152060369958590813625087254464026731097554476701852858699300691261745927855043889990264513738212507933738173160695767773215630549138591587715810104944859121557436955790217521949856144419027384155359185294202434498693085156107372347427434116902938396011031440131362998189497070211571501817636328411816345068089924188665601043000751797426185571307070770841410986671776800654415792033132886237322189092298419103018640104592882479089009040413784954079711658880276880694947834589188928295499009610424364886262919301730596998354174760418443284988715193420910470682017704984544699602929245036111022889028670664676640576766639903073981949797000523405756738340670223010644210954610469410830538995320574477904887091362125266243831973371094029450932168231902929843184898576597529111765129822309818534520692523321200466668620894302945612362895223265636626373350401277859919308764701650125004018160428447968827288137348128294882462217190785051374864761460618967938012948769306587573564876295020537108952942774492064053531184367940727067394551068762190243478323324731366080590523760419404813653534208085146497917737853659007043956775520956247988483655404750456252202158400942278747368231246801994821634670088812046200598812009096823341925884509753147537560378222560052814821185270838875197726062976225947915451184039414223004433048321029332332817023683602270986391040113022133879764409555291493322505930198310991253694093956590802805350879971798620185007509480346801506313840843685644622448949132458791958421935724840145212079548756423813416323663246874975521591045366501157121603586269972565384297349884293492762977092752829495777401152041077571488455565967638522448838617684279281167832499293380283955413574488566095632935896614045898014380022448090316106600902139401678489248243095252240984802723957148850572190889980546966824304305769101366677815177635768022328346144265679599367960383357426728078639459902224085676314353266696973750365452164962801133082360054710083833036483702325239497088574685495330979803149155603359824047449431805337786639733602881136427135607539236624076019522934952816159606319379858604894037796165693264159648521245776777939250640843979082885831587274420167793290551833635045327539964968119484131868196465469223339958379199651224326133882392520854017536928560727086014711806602615215024245152739425687100276784410278724234157432884820510218863076569958196542217072459020143309021402874490144173419548967802880988026034932047565389583963528981342789173813702792605556636163059855369943250384528327475733513667770854654563832260753353165165695984719290562336612424825404779453889487732848816882269992416214176111172437635998161876373471341709260361217328231382003034681844819035559256097277980520209721967131092029130646454131122681734985447283134121510607855052644698159262314888702942190258374247896726499133657739426723378382347839817412126807124116053105794045024506013900053275952774937444593834217106917813429335923838995476828136251898733020361111817846645378002838320975985685123965781377921856266185090064507253850397266272410780720597700704207501679813677324632981557726132020852722263118669365950176719744339767334428141445587226180804095049956978922903750823721652349102762489322576326541184119865817052438311633118488849502065512572576771439000369867562636339314547853674268653584303839652239347706257402183477011590531111135121637136910696765672840042964288687044282703984695869212441015371364841657289082386596519889164635830744741349686361619742504493306442769947961092291291458671767132444354793859526454962714058880968248763427007631706277586441788974183254659394641495075947841732200302455753129525880039236467685230459895715116650201527651736302185367530039796721499997395167757477549947899989873576558860211293355857136418525360459900413639836805130554030121826638751089327076229558562863822897403456922436907051866123615999787563053664154115510128310668009613663085508666646762944114724527645164938311027834336239838597972327508490516787897654034685126336491260844500791955473397476103647427391856097117216432446918417822698848740219927947284601539929264958544913275396243594927606073175395490176308830469529004270349363904751851222613593550639161972380422523645573742736456382561415137574970493940153000825692046324427040351649875710904009400973235277468670527957236537350583288426142256659541703676039203080525276404994835504123802417313730717549067608440849448203801575134367656985293931859893281597091075433894689489203200247502367047831510835019048662647045281511458860298625194731468590628317204687116144825905622480477272742449422481493314568772246504586610114260828767932371047292536353721078040177818084865853070503269745858456552427748407893821151565001695391694989285580245602206492616496099361610753089513149069523811105589490911706540867360055644412111564972811779778122676189553294218550540106194320566308042180732704302026179489786652191075337600151676154432629678541489503342937044212808075693853603090773374841197037374773870929078071846278899713591519784819724256289100334190842452852140621706178820798293553625096589096312441809089308915471440951962123319359675287564294447038950496608379169611954208226746612892985953602972757771781609572536802052625112628624765131062278267109383655493952073117949882886316508075822667516770205799197052640486647455132850879993317507656685756152237876999213213079311954657051203973066202734371556226871568605469013182839775863326528358282236889803707360531617074263638270120721009241470428073212295930336395168691183478228745916648778904154992315129157445581462591429536071132733647495722656836782547694851146198791353671757802302876124310558791866095464783741780706345772512453226549139001048350547217309928846756284205504182553807581378350102996590797460373627182256124376114909868622013599128372817949741951865071823468098025422558637158539994504887115403071232815405100249805951754828064799960810339407633567042868406785980451859310740269673888649632644705794381906300244595433039402181037378341273379957546696512543725560096171436735091105460713352190736228564646768030823480811267832417801452449500148658935847337226475152397518039700101536848734614180314071528471871918878039175176462382252286150677113450901524096889453451618622807420726773910275465471663198604599489663880305588254350040692514650766729629457803691207705426397363897448199876519256235290557777184302171460041714760253506436190949844484203753788936231058918522408083668003826005329841889027200446258593206601646102897153297947286301243764987767428660069642532162534963561057431631288737314984920781587806011957135816432786982519755891014482124246776033044583440154816582781527352229575585915952217714105730047922387803326459369110731528387338543022628285253520122268722210026335168892600090803089131949280323599413000860589329161325629673017329340692703042344191670522988837451786540794851939419803263695547713641688607608749512333639785295820610832071951439142128160375059521801820865089754358634500865331511997362584685742850436445446668818997834522917236868459742098482262341443473016822479039711689434765076744422639836619585242340623394628791214563273021423882868467600909269537000674339934173691281073352204502766714891969645106127317949079228706087029428062207653132263159590818101501981361948881993156441197466801680885436302817444844814389124065378853243574868435240668008021412984785059912618227990604634224088510044160177728996147595653183968092131672473777501410007501531593830488116303818740928912335761273871074092551292995128190402974357118869149001497595360548857550766883994414923712754857868882360840581940891346927454828785159541232501768497870825608719908281754331617810231450756481451681810702784361069517919504339554834355337095277635337827587690758044637100374306617492288805436384094160465253714928217605847849088938068456876426517300291972756774057387800557738259425087525334845250309552168245941385686247824405921244997442448037511001484044662829614372287249186572038049694362989009848712249800064872352637244464568093092864879600714647291257244378955957929410713170771471699786422874188847560245668453054269483468703017508281489665326742700688426350825741974367151844882759826579217360852393255119741278598217184019270651475500974650313621264698141541529484921637175118524559613128784082517113666347268428627210756256116542904391279715552294455005817236247896772591807672326274300009336827432885254766749484907697413619566292262125639349741302612334192093295636831849473335580010883719147374641237010593027698546492237983710344675748977391466542693329203911919443629412966015381342675124802959750276579561950424138367899099809696588455276066092036917596587508694297337742478965790029835012349551066355162271613091688294952807887196060660395965626175959837917653584419534218364557875351480383300559281679439422458139114811393192890983094322216974591763917912238221536520523441586118982224093376858629519820408922427542154044050685200479569182814723440658572513086919787561234740294217452962216112910209889346650131986502361945652027335502418979600354721666053285683068191175519075351003091367772333390881511281141352576658849886495442751806763708133370946807877124175590748376129066249800184680337631301599610818905251850837966937936922146833380767418626987017072563885233182522099866079468154335795820159126340133812416379748699301517177979357729982226330896958029235934937428815819291735333194401214441499348394542358258646873596687937214436726360556089511041010123560136099067903082737713298051437589242106353208725170444092495928875469045649724538855660217309119981617306720424964923268623427124743627703134306647922991259779733504563206934806993345696594013319974148577569876770791508586080534253403099487420667283082638107595625414603287729693534449970696992673388870213808059741525831989572058757074186432434046974309253890513472665873430243657770878706539590170889302148710380839162156633130711771118767527595548966341705618142480542499483051205788324734954385814321963421740126736022964696581936229483978097224219467055317135042047560604569595319099026566362695154542149885502507533892109341297204290453905824545747279331629933195330225375497728866584490354190281453000815752605954762944404788878150140614928262244925591405698287097001333193536227368574178609023132942755166397827376299255605570238195415487121041159279942524865575822367563211841860427150465994261061468494828004783655410051583091673528266417980088940467087173495501069776605518911874798513753916864225260424320515298291064653005893101971371965971439041410418952587397261796506912175271083584938551473790541663329465093890422686512637535918885667914626830408073537743577460100542179130743493958619132891773002278190795489649545255462708412699777121077391101434931104753980751078866681451302825302293322299330152750212690685830533154124593903673339327617788234337623840322530109472630133364506733279475045731040024582312501294316063379734496471015942305233816409616223693476652186792083399351392688452914498935721350809608688620493978631465616327327162059889718573741195576141370152354378143962950350338797006104136206562720914457579030759439590878553573851029674656231837764205052732036341237997596550648150171929577925457227582628465867658070140634291496382259938724928393916372653351380566509961615112241097838588423420189820422041137025047363110425818957261736273504264459103187368077165190386563315571161476166790847689685747827391333293116442695300857577401533089643713759528521617856766929788463038903779104089689604695572814414352494356268903346539037857301308900033326744488161510856703671524423393046790312902949144468243978308035571927569677405373062235077178065959528859608144491269617986068022385267475232018138967608851910204130339495094057602800975754426245226370720959789183117430301531747755139566875334572555278491642508313242160787240233649217625802697386506994587357761919924553131010136256468335709501177536932455424469954368123672958251054351583436716391845676181084454332117379424133981034576715207058775623095116798572350554801305486245638450032746673858554767693512094411121376658595453549802777790423635302660690473431616648921635669333792761207008771704504673566573021354871561326173517470298891648919787330734033609948516645700652074713493016126597269303247627815306763728131125719417232842728137259368570878574210896218264052421452828409036652326983318965623546266738693978258584031165695005497765327803807707041274383112383069936151151918995723818766521112128837308539664947391547652182718675213305518467103371896495420594894336765667372577015339039849708608831102330564878944426747950071945784517052625386876718690018412138197749916649669115616107820451686387304893392690250056822712791186670229501294995785415791786148393443108789444782409762956772283585734980171149000626331956604251139398620086320029929624670330015565168820037714781154650620079560964718673993797004078138823552734263135905853868127947307454008923524537420299035101138625599163011234731015785596890860053585309807647039988889011746430676052655939346063374492401506583941191207973819808871504368664922900939783244048804624287333067006532950057004051397261488247886853453669834357098216230651616698772719293656859487406434757132041547314194277407337047283171302459136308427344198428776296596480320767641424651885927696959675509296736565426338806411075419271254893090383784476389443409245971450135475274689481767768842729221409727699998238448551095445155778627321246513850671467608663950197310884020573364646149093313603149233930114118741510150118911296503947138126658425790528122222091360927785919455846387572373623006503708248722611892481443281272962653536882894845742281348713883123821322864457313326332177051431298114473921743939759070047423158887752589086117954009383836409283434061672819539498507227020945871365641353392627271702793352459964251178858181467842509176948085577725936367478937215785604411794455382953167452262614715479794505616472064800483890299213810611651063900550263684311640023897369581121974779370890562121364167260275844950312651290197749300246476578393454223894898394136781809717264439831798938322016349122657049947331861245461074589184081626953572419973246848385378154382046367313077700906999950727608271811679157067459496801135104438580439429094005442711454197005273375182530892938136834753543101642892264281177805580782725362238251856568730879760620745874516357457389017974668120431477822102065211840066555799085067030138161075194757184192937119111243893432720862644373086248000879738462807630695040581905506862804785095627383008800116187782887091795794317287266900444408269826234506506546399302629549083478214791668383756039633901010252946999707691312336383319361740516297515522960615382235008040731665005912398169128576270095583252062226408501629328121520127566222526176582780378130200151052858950838546939140074537684619610811595475661392144614216145023482845230513263105071165630956540515117108405844657359561402377913032783321679811859985393724927257577498839508344959817279902729890287917003782263956179945087512407639738175067806093782244176292903269290997923796433199087488763370328746100037608454056753634643450997417068702355035960824141395181155307553906581593623644611456022372018898184312332892500955611382972311562140938684964564113979390218455197238349718412999219604849933158602504348355163505134554517608205084816164708314907483128494580871371611725331118871594876088363240726570266548022948673933625955494814550756669003344096825471092452860675650694109840748786952955689652626527536870701172955386628970961453195605770532380276777235086142106242544450288878919550805206173009631759101125210797902611243002881280755316879979801575530819215201483496566093150149633337126147744033228333519820904312278301967528776376923180960002388526030299865515840207771943827462781802238658418133073824118100913774852433586044312564704000763046256667395848932896198310003983188042913125054234726734537558042483111367500418558778132143484826093090573309086977599575330103836888613558279749084819744802373383154264678598775480237445676345733872640126362226592862501752313205560366551565768464667753207931234439659825421372405994777028336621517238456413087514846624680821810166253176461566428611801403104491192854422350052310910069845457133161299969571623207490200041227113384643414550185326052299651729959804249966634511334877026517858193421727226330557481973979793381704026930099002886030957187764872666211088418015489512856511135672797974450658874704803081077506925457405532174612318116651197024398050361857181122788705809293036163047388456037290591857557393929693612980432447051723723593615027007929980906967837362819313254307998442895802738673710439847244279069209515272875529164497168080855980875908420415960879147868276269750460209115791904038275224417002905662361648852546057051240224940573518726065497390060333740020949989907837724744355128876236611562072610576759581731915109081805843730365698300718638694096749461621504960148763295488036037959135991346729768994496257202157249823594793372452803618656620223360860146293160457480362079280460406686459617961502037945623757350749605626640682512285996677308162158948428876444362391356277477163726871663064999418409215929191618826012074454457082835066649540235214229945112196497619102091561066606857242969919612739090587332805432525331616592129913147437654566891865289069125357774594674125897140659666431057048627144409159436608224285857198133406677603842814742225338567120060165825018187953035305646739784963425121086902567486580063283928276666840308642713802430487947864944620406588012156242214751996879245435135010877888943215072450957182758156968450187111539341201218801562407358263738345188047433859169314504994260972116592386060948959131750645076898625835200897330851231886050095586269932560725788701676110139003895536865660353189806739818844811501572210063452614392184742531572808959387611866691650208198061173104514448787101441674166603016789512073067935465574586002687761739531161079522665274218592830508127702124594454304610308915164090237383895606004647302782192170523404543898206347058815303145300842390273529522882015257655419086385788953253864782821849148908395434260293625246872546211580439103055639657160631464070636088312654197263935789701073221076152360705253236283372336438981432449421915118076273680062149795226388132619749930035825463569303818437015142598242325620315129113288322007518540963734491893906001432756681784862264841617717330290751260391708339820903213312443334314298171280120280777096580932282265221319099127431576158978659178556004659197330824778261407430700345481691180075808030131422702251066111972498255480848073288425609430161694648842595173963456348695752245483034368003000042573305440912836941187669957884001183577921183452878325424343244901873251774612668759202107037297539281846678944385135743163507837381907261267716401394434264846340296338523873787267384540925424372952411143648471224165650652665259484236995361065501398589015038183197815213421862734129939493645105517205996853759285722149911795160838563214879086452148873592815140797808426535224919582431968117294804060905048312516938960525047434734936703668672558077016714225064812256236026757002137808782819170794402150288163829479754322540530688035359995346230146868124960028578094360259747168214341069190484336158203068271540501811865323491459855354647472264633746796629007272351310006000318011500791019109167122626436888085926829179700972224701990977027254829775376540205594510253417769883439097664261378252350538961273686331739833648175611503655784379873443690855377553300369801663557155005378362556322522780467338820136194383040732264394719492321665187253711737890992107358469693669532343639908934800384495693925280241864975004433058798673203412211359103468561165889593369250475127246009406184634027423043862958214359488018223509928170038353449120474516084878106774641357307170692541164943837493307056481076290656992309240606431191877475961602854524037574055489147357369415549002523068526312667832190106855727994315119076481221580245543028129001064896698806366846820102398376733436644361780281409943806256442901902547839653174530650763747428189445519500574603490168002834266482941721233004679008749992188082683704482556364828465199723581649491311334075948148561237764262849155431852959544375296627370254880165495363453507979993219867022410314162061565251322807956142502027580201133003284831629459728683916968125055780209300413537632701806477243143440833470004808774089791917306532157879036207217312401050304448440237446172566376916112677583763638600261115314868248765181196965475925697106708110053104898814821891383709411305304488692716043188792766607430347317198890427994222836766244544926455368885069053220452538731850325759002416970391563451789561752203883952321100122807274922661703236175241392009914516845997429643521456650366110989942046486056239883144543634012297790539735765684230648017255621339275241978745378133359329016074769174754156868340006243209493926764908110127000329046161855822894976782157021142553556000176332499798836700412173958395153986648714669615392593645132653044194637037228670954033712399807620869361018648567769239839517553002877567068615539645741589775742999813252001602783831510222399963543931516346491854325709280490054656665556778284888184424541040570267393231025874618831572200719523996142767997782295882904008716171376799347541300197889899598865969179232412452751898039167593453704078942479375110772325737395128742949226915403298225730175548688287927596114689541631531554238228846884863325703345056633284485020828691741493198968629410562287851891438026133468654378907573184784157362250113135581418296974604893367161673045069463933896892968195514885119698242402897967673518736299816132226578973892211506150066105350603171570772383204600201662364090851334518612119554392230719331916758905773664790050375287569805506592280135879967963703302651874400155309843422742617880573743802945138533179174184342944907020715683538082588874119928129929219504979510454117960998345292730442193416151092183095270645871671333974726182808700714088278829785994384747832870598356692846105298743794376934448244288116339048115647248982559929598171947259645900541493483790865276856722503253382171920328595274518986423762220323546334791776759084887964632174791002376104783223507611976422864213159939586542522505230013323158613896612666610862247769459295568121917262547202870183307689620948632721975450470973539332975709924354182823157343678296763283405373659251782664579967594772833360645728473153307257265919535596289634181704441198566817859462507693479172480088618249330044685761364489612580772634035975480493453247052109569525310152058500237835266868603243899053339526953294480654230520957343391356107097315145820847412173412070513265539974477128889214213690621111971952419426661774363959372188408872426889601324807526316484308856415801463699175241720794803811977920642984839714649447454407082493640921536232257311821977132237702001242388324548219804711431391709954941681412173155226131792667296410579370901469375981014995076209107200253874247379626798209538803023350136656659105512483347538200462722872708324826840929867359491825499366257009292310113811999244317455711215311519524141688955004423573983492957175297139130984507785156897869478263654090162440233784144852279765832268112838517654893339880066666743682465950216734820715718198782674119479714286466625566855125743415624996212697945239009250879204335941221622375694574209969354262504744365247721677061329810737838725150999561774913187887981715906463797120555613424234735737637224779189622153652773068267859612140048263677909077158862023262826927189232513895980424762399719455586794510212790168201048280355202089860609180750719356082578917698513797868268190467871739694143248737159399720387245801924581556175436630277957790312005680486149093184503805940328179464661487880428363456329845267402721668903690948061809623283568258804102234723748175774074437072638830712110677591852936206641210378327786645568734768109915564580081277711425943092459817618354593647688264368541073824836810586942366292948066645799120128919730239824279902989416122092317726563848340499085273192705592002580920552356366712099444493144535980803612658486666266852608676900729181389344425380513648017880989920688919060305069748325908725768325041650879317188222142083633328761037817526056916202764673194056818538696635899141999966154043831227777944950438916249825199743630645457747544033195450753788117947412353764883863169504060769230423852144059368871241279916036546543407783259402511215685198116611740759558667466271955697671338632753713171355698363508217198063742671686120742776185146760299050139398740508436034049642624618734130258992340289324054073869395794919105386957035404640553701970740149804539089035119490956599075051177750652256709335763272757295829645909052760729292738548023053907117479655219035904862900554110321611953329491206549451532151360799143232720215857518255742496816376284768525225853332643998977402219592181070331285052261650239873234790161926341958416570812826078552455836936648153646153778350706984194423133335017741632193138578380329192393544536851758028908670154182013872951476116264728002658543398423299094207129792866127312069071276595426456443928183910475460616437609789666553207297272774840063102243985294443187508427037234366681053462216193888208506557353560085670933021555244416426622866239553956489843098863553520683668239832589958550901507258078332739627470610127151905690900634406139245874140423827846701384471134625993168682974389429866118856916887555237976103277789214907105061293004597184480945321419861968084206439214783562124454887554505994540070989044046347777097923464013346134656103994675154818890077620166502251072569700699203742273233925199213562097711994290937102306076001766522627486648719175167034785929440052426466398037002645482391998808420636183545961556612592155833490721080538449339088343575635983887209137914374611356373277043993996402468580232836841826872998630277166194589572848132994625433711270493276682135291613111370911102182846799570498068272881420003699247744054975967378757427335268536342869515620371315968728014681506569905924934264667023799751191463383013589410441649906598791958620473334544791617604752809536770030274061546357775993898159627744183281542877162324168122349059162876365059287396473184148514109219750186070886278909008353947447846966978607909160364653277695435506257665863103742058784505281714748517517018565935713010783292411164154324305712281864682322678481817130083441001718511646362160301005829188384735722512850978080254631448859728565554230343072660018787302123035772824202930643379864027576010877373074028693365026212235161803786272729273042637193763096669313263528248372318706933618107204369465809619123353479770426204558208361892061988015811933696289532601683557107287107105935041782052235478858952601923350974886267804638883097470810686817764165167000478633474751479984511536446551428730593398051378459304168993438789775706626236536681731527398252519514423867924242379644296621767084963840786989872824018358934197288352556662474588646430474320553626537421960026385494645216504531096398735742688146394969195057335143522761598827766264639061818464028640343900571804746263927148817826417455742356355344706630438194153537480791761904228269691798908981907696820462795799875874974100579044915266602774363027416622154276047245491027060578888403672253265890995983310965986161097824941685097863779249305602516928157336517657953822728537431206991985527242733673989081534033100199695570623354660158165858284995227708599525980000802150925954032180797105500086146141811584651717643626729335737323720625746949210804091463981275668776698224629803236313210226175709981719857133705280060486734007814582062936725471062859899635629021038952106916420630170873308541218170920864326393315490886357500677422076007592465850251963990144843473947137047266483832348070040814555999010243922700453014033819022024246184033650379605504303755222963647160621747252384799728767009768442216207404629148274283686738471410010805910075176254291151949648634963479310582956953034866522886311607520275990047630796372916507060741606170489296140600286486524464024050835573640751880022205217316433984226421997706673797310022935440940887215923979726695168281560851810860852927827305754505749927195630789502924664816385571361487714885624096470208874199154052377635296730997818527539673600558312289752493811520140109464674134208630391378248004134017027582492166173939124105858945570421393129860201145538946857070101578058025836294304458261536396510111531321188435258024638038211606495523991610133553120454801641120075401302377493692275909570395057817867629889976305236020913257374748302664863256035913322127112704163036467232751529998159953448810523348630715023744145389953660128734800343182763780453687919570811395487187728717345808088951032334204510116379541442736973213375364637820404527262959033200516770664129061698381601456899016156445144752567018430081558764299862074945441544082596321649014486557132881372431237310773588790199031479370443460190234601389047124249490760982127742729371743739905287734823907293353364370619234664978088545164884181677312698805029846674656901020186683606878210875995868499284990453136980692994736577741493796457123705417938403301016268675539590063338292708508945714980222425616378287157883297843004320046790424556663003300927155816898614693022257384084071177002785208875818480853691659807662158393160195234936256098453618051692060942593834150797268798214959334348732487664319056773165824983955470268881049482977148072135067385738028628561725602131122240671397071551673130395279835309072217505481134271542794458501877060129439986208386681867972743446902399910893716111591619866262537873693164196054368019835989391457472029258191936382502846198383832226278083278096324329786730977324641065519949191628108608475800611274133990206143296407781276384893165128602683861182850628067581050322421006339580397511386636965309484931814137157974127017050942294092136404190513908941137082235875470320508373119817121256720220845065407579780903140762234025809429821059699678846198692392221239685352998352461316912042252550237125369434767105522315455780047577008538913879771757485307353246286602078879590135248185104847758672301208935575139730433201417888353443840980042804692843079939192913274875526853621073620370892476957960023545164390678915935269487224756996352999175155576934400429427810760157273882946309804415266608314117057328342094321216441044619361145728785799114982320017975532254227640316824076599745641605024999451591139708513433514103422616559541144823720857389011842343615738251454957029437252103193392578836885552278143594434063245786517285567319321624371803929477499600804045813447801580778192406080656519113182140279218519183510542099848631851251638120313155559921358982562900622974030239917877712233251763494894479188338561830431062841993444200939736191786902443806858039247085215824924891346366896371012157186292458562760419844960171937177608149482240146309314655610119856006449107851156652758353941147548657517107084883988694624273126510385923094044293936073989935669032856660493055376453764366103197520943363263869581985652597677631926243359388853219800944463581822676611613039180883451176793306266161018295112000355866199338341754677296279007274665582064784839399905822531918315851777004712789933640287955534729719582375391503083582348504301134194877926931312803453986094010263189811275337617135325363845544524423126770240854044584573827252211871277464690922592555161351456057556655967084661275871641978145352270546793931986967068365706465907505522664156102027082822129061900312306979937558931970476268162975475055763869551618239818537833236709530413929650893402748619484740998091006620090955755162708029252101348061868416612939264497633119350776184405430402063342667185600982099519772167649796453123294441653448680853247964647498478239109870535853431081442909229577865399604136532638312813890388925646421157190921722336557109400355110150282490609361154993454005007598856037911432357945748516297576766601172249771755327879007185460954349087738061452230271153792244589797527435865758565497484388534010849845480221551943810696317205586447016255758869626740900229275506414005343826288270345280709499289851398431307889765901609399423276109455097991714015351140337960863178966698527408959758928897456401519297088707604030545963065664341003361428013884381082276694880950278291265047956574525133842279510559188343996721854209061289436274968213272467738027682360481492015158597372796621855555836956570340735254772746484476353526812129836855179608140660196533190957250865243820213457805742099125405035166024399100739338056867420334768910425024822266906044307482346205584968415599037909502463979574483595152866365339693291141067417791615356146237528044677863203451156833865307618604077425267321614273809549696886490312017291963167311053574388868993876368930097194319487217205536200128194117394953040593119395826707038444008434116331185436907927027247148157476359167463370124060800336117405252888014472234572737315610752213507494433680178490248181894480098046761329599807617119421735982167384737983650318435049389816198524797208829378071643345581381005659703650772830798160162804922859727690546430010546634911457810791874756965144245332557360003758477668910359883701496765517873458441003487169430796033803068690754083067183164643481325225451351001459475215743339004146700067539609319791690575000212923624812764396543285513442494146258722219066873098299349002667952541118004065359116353037731061482643938070815243389065865226980396220563871889276265802512977430266461927561249938856774589188154384348077118699340497438928063146239963150878832041186132236115295701680992335876282051362560600375936866652916786302249720862925189226092065602347505039509887653290825895707915783106662156103939588122655576403374329377033715384343396484739873752955987023303888001717383910906873825720298415932493140752405795191095699494574730747101354726151433626041344256941548790563563707460473838409592207938717591768686417433697592556026056205186495210733781687227553105911453576472406856020606954114983319415203140376283289715256111785183830178914390633694291761888891192646598997467324672167105040563318223599619275660168142682629494372195581630261743057174220028677113393531055796740488985719905124982640517163903644514876298566040745768417357374536435412694493805046742849937552954473773675661823614322050238683169065593523201971103668924857304204815763242511111137418930858484307932894861248132909336662791636841682890452973982886420364335248606623128585114208337054106182970273844485397402270754951514175906511898651052702570945232806419123379455179310876769242431294956069097890760304704570626676111957797476262905132108625283904481811154963973403140520395594383409090047954199015276259739296168956534125194057091168253516602635013858172408660004293592741794731602453388476434349841012012721738736229148018443102965798578327873496211916540429918291266288535270499602530996608633424731221687793902506641949688331801066199972050293846692647046371443137661938440076648632531145514578093933883540467004198964476968666058809573324551881172677361881291336540661666609204241033513184138017870974238150475847620493128604340954531054343046543756603433098935067855786271227741636328201784725662886290819659625240192786012935603184666488280498254105714117704825601481063271591490359746273117162695041416774535936225094612945345348955659405985330631060183226316079425473447466258638711839702396872655336121065447936778881209508579643038191746958925677634973640690781587245301720530837280534867823498704341912477480910714576694925836817522469602227605496645394108664699013713539417158919212841888229453613685726486369559213285352695667992768600516742284718891491317162535541039207113735545518001737513472405807782171579311736082862174276907780551253201205379477721105804634186319014502098239238986513228908648188067851122831824364885282451022679207899093485021429305587617223395762809967266344410934401404683435743545516125528603761504440922447175937311922034145833427699554921926733455135803543809605286468630186301875686352658481646168488641509218643768473657638100474205776093079701224291801085577311387841183334059225594982745084858798108491398007512427934016402374074848355112717524721442742138445566220123812723489179445054862448438804702766360389484521481850503590523985450595692039415072089058984958266670370331212203573108648902596715282756353661787995456460121649307055954926783729163120538659538956386495546266354577307415652053988519140932028566155989080195592395293762325639919331984776179590603467628849224647567051215147175960691578514399699553091280195643441512826811554019018721277146844943732348841607593311518976094290106486213540313653064999423894363166311482363448249362635857014179877930816890894647541918059415789449720423960922095527794996685065777222514642251545387253255754357785303620180816517414184386617406598043262969804477655995576506911214769449186341242780667135390754437366369743115331000028324695847870762859222234949886920885483410584205569391959587012475826063418104179852144569195900304773053234429557774848402690748678923675921240313462905820575814427925356720608513170229769913458700640125660853282433834297009986903011401235815442237016228666749286961423512241889920245335916551997826763335476955197548513527646415060023184705244182710559988340794684740498236943701299953966022998233708124917668779855813308223499424628910666133631343294246726917642884742845524334726338438389868808399152645201408277919811618616932736079404353547853656486854499892544736966151322518203201434157031739244564917831228404550957055676108616270965164127937156093331989826437866173347150390578173230804192751790890820831423024861965223631699854588036776409348039670829380452243851523567624593379921418606081386312132215092890420345904524906054113885376359176008002738171793885797579982444945072179536515235646803569484571820231417304332856813556613679795974122592216520141397356103390198242403335310930970900635077649304602413853238923350480745679120465355178857458557916032410313710037379449339766326035268399529334191633713416055718466525430387807425938730897961751873944047457333830729817655068623193321019095939356935298588888927803580393479784479839013389895992889644518060353811369000587341615807093677454495854628992530428458914483274054593033065011796514688248855980104070292532078174339543773871986116807292643175929333298119083342921113249819335550736810105850142836805975022094449056359694210194404510029265208763612998147128388659079117490150562844047677829995001725971031963234983934809262367995950789281201900262793431847774941095090879705311799124953131322114843453210901873654761003643845855246626495885800026742001351470610920558526289629006826742080876859863951612324313089486111777933294237026900108910636461668874758089417501855414674770592880867704656786235741624328114480012089854879394107507532840645934396545968967921141381902481102870365655082163379936959470407642598643724140960714305847170257540372443642946403916659425687297826205073752394519816951521457255359895187802388020050255398618619287837835562147402967430000141528957734931910101094147069312534604800677718375501820430023788480733939257497794827466508822310811103217196792637150906063571039967071984175197324625215523141683369817287179877812206203394106584872461075206016632197593935842376912930396231627117785879516774223916081633412530157830274421198999182209894629474476658014279876825200940068225539818215172884122293767031055268906102053546324107129934364371423402370171725502988103752765864591226716903996117624758151675962926212760311847228142525895965484996197349355362765770437423535669107295550727578784183385194623491049638320418228502468864625147441086508327607797192955146092235744804394818783071533000650164328509533238275556427072708667451846798066679699167550732518839674857243829672375715175887861920184466474396451923431621888592352941097783759946204124974764343160019476891282579922103319988998957399096326195940186684153052062566919642925192072142320711893996641563768186488713970800998635732331217188049913426076653407473588843527013357020443635251027840932610288317100019257949263067903543399988799330555712776045131096424105108665952012866005577126023189563393712212827176604050941246595354895373982582756547433486040450040167846215388482520931346437868460373689944940802484895763950866908252890716996744343147414009608516798381782882558466569657595611760237354528211314202077328676877389228551147772599202569143645918522061433428241109138992563171122914592956977963672007320198769664623780603470043904900964757142564276208481893401476895604349058000752258491082597701738275918036506177018637181186963420360950165845750080155322138765687776884089951240596341822308240830099966074425870723701551504940389038842871595983994530038595013947460890932397096985122204301443161853971302634558280136253239987289616969163241706549154844772781083267019199934890651446987368229332666651531449540251439854024215501168128441543614700939608286828130604613231292346696149428957791903857925367139216512056150513698986477998721505488698361407335098524997015263457599335879368965822485695882890193355556490271326863897509987485083109092209661202513158812616750897732033982481575423469610062256045825655275482074603148021094034778807211775121495266531039203597241902481801840858652531274821322943216327983338494438663611107318607779177332864504976245924394219368170142992264244479469446768828208833223662898467464921973467759237734719867879497002129265830647682205657493018335562736811078661677320795342110193220988329253071957971353792502834462002774973519003301750616064349893679379345443762209912739041589432683585089624231737950635640328502292309018847121838866405672843548202915624608471461451751308326257483563351363222922294242030231141178033165284634281416736857977784450295373746697691872398510818357119110235994328049634415340247511820886825550836315014598303964385412152621891195141003304540267480453536517112385938901890297529899120859727607298153689004858172760407130256189337377561537096245349472777191362038991686672860321959813024488066262177198348677636380783220787141265109272710120143181290823585748954337236394944284755916669433170024285679359118012336993915966834558037122587949611262543782504810990550652845912520200115444228990932992603809312610338535399397501814516289356616256525001288941849714431250573933340738829483168545599101707139019987515580050755018631778049408661006965059728947620376964752774654027491122981879508047657442240182340272028030006501984763219640074071221002183423110129463374094597343271366367012478163216470602721418695206336370554100662295348476400108013938926366269333339290557532503335590035444586225238390657995405065532435033043043042721772099340396965002469286788224425053303720121034348101343283315314980877892070684390559649817817701639350137436103757287017585792827510793913608162929377949110613872156940001978033330732389359244737747485039832921672952380442964088762888401708608783329996288829883372087442866483409886623675875950907303560577657197302796793585449622364872334177933737810977211056275708026556167658638066068495875239719032939926520424463229905858558425190689612461185364795468041126266214820455381743632522015046878802871937589117922864348206389837139227999076550319436995223985473715726335537759848594614066676086298807756375921520759358528553110722001757682568034622853713907411299252031275234443197612698358567095140774335033837949167915967098345697372595412745486057819270350274742083493997749288595808709884742814756356198785713763828345939273567869572121920388740188473772608535104643407357883261612352903542164675845790135762778924484544063896505839377689297412546592313030564595778038378269126461691893488293886194384355040339864188323618389119145513181956688398969567082609477219345131738905354589202989081088471698276850690268562194624983817892549250617607748702136264313617989478777693656508117708280425936464629563882613993968502924842704804998786928651235454772447766213466037359942352881961800673411236883962865534777216786559840422186654729168173096188838545016614379508659604606012156306039607368621626839381061048652654645050045152082413442416736720832540663595396701811362272255293819424887273725050723483868506397290731343084064315203019132111553786945579370633014848139851468894167272829161549863557584292326838732194776760739008287416845819753351138103995859487081047426805972826831544535841275018918730454489122606779755860949685736656995836882987705893932359156473627925331832739525321152920792956474519468639193600353323160045629183435992546130029259028483154347058409519670655629881397514194948556595303245174858220780740630132877980995037730722103233749076992816257844317340637381798892672201142918043721290985223921940960916351331499386469003255876734164111940614328564338795941796560541306531176960055050280346376072162729562585558198661490285254062208655722985927477463627244074643615751512598802821113200683786173923199763672141744011653741930701884092249255508021311353959461876666679137875283316262120459810640668911600149690668555430352626558984248897676562653473870994942620432860270775887239961000381404684881895107430588638513124933027069400306518868372211253165445791369408851872286677961131847320759144116453227503732238755963000705376299041410057186887039672961377492665930704669122509768436749940978403048586497664796565604562598194281684881244664871311115837603516021938592622863950234663694134806663108093837870943835061367099367569405405219827673222620555856664247095585798395215524691150838520517734209613248369047486636218652625535422035855251775543990065749595187076029273734450786053437588981350906248389055445459311964274937958083591187579264504093389166593310819113442518066557006086913092624684303795911254131560000183426299032559505883725272860060671609154125258615731615008163327817892993850095188637043591588709227252343703911629128072060709067034286999944427569285856332342738883094871624327096063427937238382659097837824289892477120946329675182749367080879636536928429822745184580323262676034498099991659961465997050532416472569538146129577279046337437958536226672491903602692674299922902975972160772981504138224667304345916634881140965581467801821431158974158849707229723822433734645161492624084993662029196407130803355535060337297864852134681403600620253980273002923916740076597785722966001980497004329403107281869020550777163298021681764689165302804200145188086266549131090692184345261293223530000857990462473753345011307558613831399571584826843971761219207049273623048087468654663168595071068217410369563621642673964458670632827849373516126844889698184405355330635263718097468695916369645686169141585278817493801321404419954119251685833143184878413386590002496057491463362874212072433074520985764065515105274820220047196966600735660219934940862428812580762688989814143329972263665117715226956517733474671130580289066695153680051140189828569568793341060296872958971332780662623451377725974469021980647577850356366964130016954047133684896529328067456175972086766364531802057953021577482119080721262110810761586299055796142157156586013356090514900678783903995130630799981846974829334765271808404468572519492939377793091345265381701594972411505404372994969032723358214300821386630900113495418402113968392315202690268923724931784687559814772356946666540116351786725676649819560997168997622805607139078741648705935478484795080367314498835613500841186234506925511511318244548814274486122498568767316899364622569201602810962600000126754420612373420205578287618084233229208197621212364697023463896675641016422331994249024439924338890595986924306589929876167455148365537369547922007328388829743843707476049757756925708578428413237453344056275883527355787043429928426770943933892196619210444842785053809415292443129210779740987101356400417201315751117676761822952988337144542840768431212058513144049076561127430609167490246118310126229091821014905699710725705606432348514027207164935238281806525256568453707657159149776067014276547527039951735211007061214216088611691063628851871983858684420554550492296209912073836240255497169302291007827819385543051060975628727039499876663147413739034527512036391490718583771984823239811160312117801893159421060954778022652562949915637169547761513795938506804243539377168681965929180513668652843159318446451093855932872762565992888109276981006142553515089243357914257320710739599035805287358021665545786177809372768125242834633519600421587346885103993651579490571760461973508333083507997155436791031776988614119795757613206840525168773690326531206933906869836279975979460845757668137362864972450670777679296818138089095588852998350945585362166590315932210658090960366806979408389527132376511082282065403799121525170931691961124716756359731299526347756245259699152452096917400504408110000852230757388094291432737581107298578744285090983643380398993938025269030996209924975181141636205565127867122379029989239975897661287456496721009995861098155947301413438851939719166341101210431367597548735319896874131667763228970153927539685222623681444267721257188560710049739811977427615740212100106332852638847836403247041311473800251611812186260114492329178787914775648823501129785846593218266042599556853072322608767573477025004565888610359500704001133511316704900320990726201541285552955637816640863949981908863706215454186299051137927540856644724138017705960455515677888207397359313161353593940975392628849416299388179838216919819880659804165335649961801888118989314206256032523742075674708513469600754474138923807724638330013841389063670824055987090329180612333790743993803973778048430411801965284725342917988577242527999580569586390925419472306664601482082715847385462943140329050919892944417937926896803978677332917097533259592050422836658300060306353196889615356696283632089767666487369684915290007234774724169776798731220441541869755448322706419144757832421843802801369633578869587151431242946926337609448686635988019280413970710563074340393974416234264135666677118593839306453856957011653832726345120537972470806706455845063903448001869543566186341421832894870755509740630345768707068279827316481077701838432862033337582259190767161155994497675528824785996740681583947204094293204256946152714986197273125002619671883906400377413552581246330129019968794192876750935564414525193283205765848954135406348570491261340412732662590524577253283807862258408933873548771670213353569609276645761627520401558985412670986180983879222129475871029989790068243064226303123705134102873312224654711539643602208567022270717514350506385556691134642647298290770274265037506233392933072714601560470090234431432593730184951918063940037422666586997253187383250829645472889600649608728746020732354977007657892988246423086874198490881762026833939228069564034864116954030777838056178029265505809509171974867019448624323398991227251368727079827647839306520667095864281253110163193954855678998640605276472666240793983899763511821046575561744866045713650068188666198659010874216256437052316569277667933519158943597705914084508397700377708091184117211114757453123127877630159470798574987389634214718279267252504587987793483447551833243673300639660202822772069725490437587755654447088153088275643933800856434706899605684322901146345726303778898021530655839992723177259082865019408260186479868214518454629277687479842644179275810523842059980353190721593770808699821327205468144302069837137924315400737643219972708192761827882741591819710266103303010024267267103666193519761877722300484177359499319634963085866958266220945210161877466851278687024615977080032938653974905579064856616534435563407015790770093635154318819264289370916589719458384371173405879988846114577349628799808543052665682874710246117870867297083718657790425165953888619416512578912545419397457560751083534254853235587337645102027171802574449377341143965021261629826846312160343765681685217204802565455919074306902824157890847673679111681985972235494281043671007868203584814188697996623036049136081538941183147249864501671604075401058199113980564327217042257746806976821457747504661183942047017605681248848887716300705497946247623420827998905424898448422936513998598254358347317222284229976265275673380799624821789441501433708884512144162365969964183803125761679215307707462746594471151422052378584998025366085421611361228889732937205302341231005183726134401117256831014649217631558817534935919252007599205659545476854179040981285922293232799901823586063426131101989694176744687723493655857009808421235709371160776709993502957363437586286093067705160696055212092291536421042672900280090910337770611373462602380470782521552603473121954028988320925865361134932408599229941255846707171325492522077511281113576710564963982422056793019542459429415278564054885793068252076815043772473333418893481463324750354244563711655533296233603236566545362950730486455512066874409013501393871334927335605706600902623020215667257354862347914589018060126076956709722039463420903755633044702419471099977053399504364931337751954432854815942661451876576492788805393438958682115869664118785363090888958681946288754225345804464099370612411075678453896915422599741948805157145250661142267867390938886103837551167845711701142765578807535109010921753080046712173765110937976375926818313228855331138515757916686314384063263129682584488477790198843203560483319407101854350783388856964370758237207479605101036712663498251535116758858089689886572636721474848572735079811596486864198736600062877985016513915879569226590422542484835769554445956693842053713920647888355216633859299413556205273512182445320652011892901939866259324234881994300831784293384001199142442096734316913335397312659770669923358903578793316911775116663085430388631336232012005578636867870431127378152885816455549870830606858531450569312403865683156745650200475040338853967364179716816298008792055538972290032265138434442880496259439583790723180004325217528979507567528156944701204393197484297033464033235559699637856390742111698309005372625519186962342045400710566241098974735732739107741749120360137809075677291153977785624212507838520328361970637094372456903833317479668502425123491600579879871900713380369967305334475675353987503684992590595387452325033030922256179018067070486191649491751492610570010866554898020288068049948185219997237810654913960832914777634749678769613723151258658863417792838806180233273530242787407108865082177557148009463246996703745578884590262057624707566813912329971860823954908747148161761197428640338955043340452229853455635117547019415702219220142193820348479272644617880427387859372525880762756468854362814606099156282429922623966334161054213664668438294709793704749791938573946225001856864328247602634952608775437209830763807240915218016104265809746502539518016845366985156873559106941822926719356295197785193998192526356900901086493844368327489394652488774920803808126368330463420993055441229835269954368192712287541100379827078024522720271103411123039580149721519670438200938431113975085918444744759140611913207509717404803081750200558901735259350589439920849041712958790517963981889988104044841806658623603907166824890436012571676902333488563238121066684122860856564408587811231923699323855247427109126089694069583611925579662639484799972840022023780666146326366497010779272871451669462371318125849582751209001843020723044272735913438711392812695806956868626160786654141829713388455529761188074027052198072416303403488834968986471848329593339647816432414279443550379571689952092404683107491172637344787691691011922209180257024914509820086094588604905632459410083380301504181411207685905708288480705917956758675234590757306199935104556026742135983735786367326201813925897314850475822218540792907949633512998532091851637005164516591406118156851764978857539007571171738414658471950970693603931925929295149390081608599399905790342996217554980925152395890883772419621595567710625028352502853986519811493073279036804764273621920481864240920423665464778072846887542110497168469619366448676519264630287009524014186595343275340248388776530246928131822281169953498747645625300499912827690237677225991301748507786821683234269128606961375343343352218664442636785465174044437662019077757665923925503066412775755972652916238242734754032996413116760054264351333627490866546137339318165205330760345780726593861049144516899697679686598526730759689619691781674951829849298509839266205737266363355944124654754130650860067588019127732223713497817767696811238208125410871212819175926368118542733870481967906800622171613230965817764274871943082032238532333620151204747103160561577303817980376123462481173313593752818640799360833593170135215846306412526453294472673517752212916711044279938143797867480019420067515493483261870152714733303866044852412164256822279725243147574227583976960970497151697704028674045976267113998648730143533339722634779487951304103985840673253581520799679791771446107888050772516671243344337960325438520860953515444833252621657538219147171672673821557883111715111059184720466733389993910476389282298068753292950392027247385205346496504099439268094192264367843121737843175568655382946659054136127333863266615197453856069170426441205921975082036173257729358922443814731758725808726575835707364183933196940737505532872507961520633476875374311187128713673656813483768774537027217153665894936676789103089297926536631650457216543627862642229277027499724663079826536805976368318643286703158563764416580524559653514798381539463527367530550891690131107377815496780510312669788299476546903561786407443063127428924406032972472495687139533523445084456832254539593533760922149298132614124883076085080328386605351532984690478384824382363518732996596565022656267536739223787442785645072383602993713617068613645670425753231591421735020854914642337249525501631028156267636952049282617635760230910927376956300069309998348857298416575669857074780816252888182312000012626043286104039418063662650724121874744813330151467079132264775463701979603804071968351198263635740172827942147076095929441877553307826211847836862578260781810748079493690852915022787998831609446934582611392672823057257833835185931703295228183747230893392064878841326468380188004790863455504026257541275140608290503337093970670426898706943835789436068672854730612687897284399550139127319055164423988481318842116166544993321500337004639782246426175972172816863171377966990589274174578417846775773359004637588590770176134088233147719772192944941766111895860515376970332091711412767295015068490574167268855509825680250270212925112545664885879546392563853841684855800602997158751313009946837175876264033326032201952356348054373623794827167027872643535267063914722614319282267102180186377655486022248616728098119480538288870386271939401711466113631609807483223897261366529794042810497388305068017017369166285801127983818285476260249211042080377884217070586742595528968128534078687997423431052023271690664495875123810296168844980344709616846754027838535340843021803547628627475716964381685688350923955209535973858379769552192728232304102209026929929635675566850263496452838825512228007071653439486928148381960808085400659469726805323388678422528049215393512662967292222279539634606914912069011745859079852948246900830555542010407333801579182723504745217074396890732872647710124325420677098969515538143430415087817795006344291274461256703727074612359706835382952073336678210388416088513533846213475103106113732813781207997503188042965812370683737139017665552401953136236131429718553321923540595398268399299216343369847393642079569147091122439233612982116669694412052618130245356807096027138717191809512981464874542791199475034892702163701291931393789581827582072316544267829577381003714027824686596497712104769056058795041240830152288985963090778991117644667081877459165168824530168323555713184971302561907667091376509670461758961848404686967979202771521441580756368803904461716596561276710850992556855107898433289526495789782880653949864326291691833030049943369461121108378008432752910676302444774000782930404367951769886047163990360486140355345578945477265363168766397961212730910163236436067957183350302857096376074625288808236164615304256412505515607454566557503341240690316271160895646097000082769129108946841881932015954015362208300782364396017156366674966811572704560604402478433615744308488152329728380850031541295285061552513284334920953578805581277264799966348889314863714922012232115917243553467335872802878312742992582093220506863740009872962941508245794847058621109135261263181804539090322703292448119244380080664223336982897583174166678386195604012899123308784993657178172773753945113938606407116406485773748474443927064614667474249601986231181502098369848922967869182526671034431568868971422527144403158867801455235896079631269968901494073762473634944904596022527819206919566745874947390594087931343778513156480759282448849775731612335864517825624135731522135124481993556268542977698561564536985126366125135985064298304998176869810555888212329935312747813107017593597052421065695284154687532225487452615877466890971502583710255193926518734013230356399223531755314807923575869674636320882091166741498153140437865100572887883878764022461475564963498495823605240664644116877861330630095324201713289572546078888761118556673198389013662521355774217502746466987546743469712851309465494606311145668516949270438118003270142172555604665437169511693536048050022001754835289114902677873526551469671826036312615610868950645843985696290027761235097460037597982340881417883854383962959985680971027343219465622701480656115007683800319866077813140299700344791307072868736768268591259693955486358379944191103938271034576968853608905781977829741489888030985289202308196497122558932738936772255818328288396809634707257698305530165866275211232947541385388482905966584229928981952909100283941124582816838854413144760274521664606875313984308530257926521116932401493390354802449260837044879314374574495747840741591935255827344364870883848841975476283280537861537236833563702300862830390224776953327646170721678990685558601257484501902519432972656893074612541881163647053140570705336445874916925587081096393729917804062336347716691980092038668891708360557494442251892440415885171695847078051168837406372941579893929117120446252244565623528831869412751408131669899395149883267713979167296779796226533518040015770182987609500835325363663697946747884624019971390661578979770440862326486397175729288718066153400141091560575921529314869852539265899947449922237581732002952368142814725899798729035248317101458306771639489179316211433836015258409514240053401569216794112436903523390913894490114025005566526427128648135316493594340118366593987216256123250396861063503813220365311007402016076814564493989571739757446318511438611270517596599437244923376541168326112279020581390016944510211812775284863081672767181953854654186791854965312203390488371552023873971649527371800200270744050966093920234144248625282004334147338301885995966081900090679542588196866864352728159120942856133889952005874648847567687648157948420781203935718266180672681546440277796811332591013337979074454273073267045832817619235760916348642667156824128930017092421133444963319604575406265713822576645330471827410910663286076614136992986217882724986386044908483214865403539583694733356612899810437618559417332542052356093113930605479269453603342207004958054417811901813809452663639848291701446244986867139378000216450799879114325349881865470561262821814106163771474157359812973997522846865529073459183306367520025784170001531615029288381684995447833418542531745801575204204142710398911432671536971043201435187455399323833324555872784421312883788481538550684301016971151189820065029246646471331965782129548460858766242632964438540928798181708270079473825700721982023677715114008344390169554971466330283520075951675041277247586026766768276336337802361404541983198462541960319922002443365101961666362109609663112265685554953440529699242860536136100913977260819212231680041036086166183099772227611571270820513627569352232325952676436499146566878704075781339149721528023942632640487182332365347834581990391926462043878626934032292938273858936613206079066006662074550678483007232423975818823049051883624737667225885209328510329257276941938988966572647586768356966546644434385183219010938705003332808659825578729950158554826870873981105671552393046333763245504948460409791902490013292582521609043727283331940964833982387911426224632322539446609156785547627586361001148131540686350971231564099877051842439191637873811273911999685386977455502482418664401205216413085983915383312553845869601796036519630290707275561858138451613724246712485501193326339582173781837373226058569491169080778134775821226415117980551909984451070504721399364878397958910557613721798486711961874124841781798048505951158539064274416284620026509992352697032304793399326878357714686919415898682361699612235731366834598461818267576583577146623521565309566171042166028859413121066148926901155385886544218344415625142389656610412125625574098674518655075943055771096712673089773676960869853507536855266151513275294321844484759685182925694911088562376497359065200181239810142162566557260421093593799247005832389481020290496136544553760816675952729076875408667853390528325672142338389611083308441388557118044944795841736178200171468417014013974631663002458006463171899663347556480600307649442497388954993822352808081764787849646364450496663405144357853394456974773567347146032632322068817140807424558492845330111952458624160441058695340203964315591019608900011373375909126646487974245531535300045938964757444326730907427978048669878873724461790299750431109091106237687723458443396256606135652890978203796965055825364277901336297201124659207853684796556415025968683124958015752676406641494937834893897254661174382833158524691896768734681582993370022210601800518918732836706727118669632635634843255000723549228916983154101007575545798875806168851262847104970679185360436476435189432364656295855741296942474565342054033874889538799807190246900980627139932941977772322535812711105666858871561558927546142986139573316036732465344987680134528713508317244808250844024138537604099856630839638651790490546822061912168906588598835402381685041174169989024025756360825668895324938547771263918870992103669108664982846283958263118776193314014919710389292786331803624220478699872000746915644240220523852009740892984290391194146409217659553597467913266851485127654721043247794570793156434925586866816088226513359706355835411338995900547611804781188918292796962969018790067755652617344264501337688432619523578267548312758473080198621475463319229830066603076055847716505735232217147162223509971111233791140427792876112329195271364772233786025138410928736866901908173082991849878154058967478757452493046017848824952789535437220314293612713251152531041863427523014920521851986262998674862074990371387822841907380192468072348506106202748585792726169584375677999091207931206369107958178090480729779711230686696172544129680980363033200905370085803112909959670618492162146168005370147421594827854531554539211800167170456195099791824506914615247489222256446259923989807488633585061652088245979343745538488610121398443332609315385840933957034502030638313610296007802840000064346384095786900354288379408007185583689800366371995323217998781910394255383427671623407429950431682187717043637347587962139102563429304628228498614896965534368503184269836007719001303111918978211619553110624922187510020264719815138406722606619654142607816153268679472995728462512305891715336483706680442051198254108306271910878269584420778480783114288457793046563506088716391487330351181705898956255516781262193302439459111796454237739248687011068521289454967207508110737771345767232728469904974711848486744347477581412799318095692414515950865419486365124898541352294128960695600053318354686576511530965772874438675851790543383563638907204595622409925624903103427745991659888259588045175347749527261513403621704101880048925134245373492128535089596568629984194750223993563176796736656354430050476134614585324509044626847963068783741155949756726649081021319244545151596330778129185455081255079227184048910154520255881228188313547764003182767036647415987564002263006918429459877024933062026436119988110639143475295745982485480459078864283384561800437905750515162456105616663468506264102867678914788591295108982776917127025202199992109933822981837165467314021198342410229702357746763556239065074841127195749171060749629022703405899541350606744665775058438753619659075852616247734882783368824731024289505033408239221346690667382513950204585915303256962893635723533200673243422066720990876107486344711215768054949730935426599417503275082048991477848667344964686634996432499726115522410312565653591893821552500133631274394158012864138876503857428115688682755919922964702746906976604526588977685536794610419045516633201424017144599114962023873889659061312839401736792521319263638894651333844831060658837280370336650310562307217826171240184851966756518751778381548856644820796723899667515662993976689705883596138236432089388176911982123974876057016251788577071418422496812661856981208612371275988521155898321296475590578865255876293850158736315491277712597574457470365155343986285737553143353125070185959881901175322393780995934537107345669684843073230358623760459520538679703665393632228403234758205074381936084078313315055323935331729620908480200644092680294982933696257204122794239312049711082196110136879269137068054814819637664819765954521024253456450867856489334047341055570220263454027916950568410868666691280115357849462221233919864133501960487589199755746358775508963214161201036095141412225317985755520643492251013595663210552833236453798331665231211047187347523961183099232301627487031577181546924780331676628846511664635538539558632016749024409366521646846724630027341121052058497904680834973138075466593394756100376835611660163728596366352017793382160784396400435410376044744874857347891429851556514319020118033808766522927393749921844477857047456018099010741199131821480955016017632719005529742815075074303477294550822643692108186354209367515826566152956468151986699072076767438295559563481648147049572196864903107784853731622475271854399811881357377003370606595305504756829785357423502683411600865003539442640609431604336665179802522611225042777238130048135817971567291292700820721117194062890327927152403718621323144344147494388268925954598494807789371299347187689911329323241065559248065413933104232206650727719058790798752504395595624317613406287400464344420071172529783016589902932102018230285146609646094389162748326590512503848949941935729627963853462262066896158281619784290548411099017831204672531028780891067267239511285539506859292377681938061015502957127675355777881598023999510085088356163722582288255099433667162415732139937160855674214622680757414273458473675127247506170936470734387230577240203240388164110528680129995257599854569591095980019025280301265943271775874702622284740205884901075936407498469927297886879527860046744712278478362823218128718287020978555733284775560374740156667446842165442583781305816095317527193527278527243718879890434973140996683771717422795397365408446563018338831374685052651746511182915246988961917367167227596597424413582517658762103587545373797240872391587099734706447029601028148346516038708615566639872020219800017770696895821399741885521653782246439495881181409837256494638464689766253136460343301382081714937467068435469932648275950131885610029700499683203654913960212695333584184804500378044152863846400077107939096671834823226463266232248690132642502913480441059874421827250433293392828975527689784647168534914376283152459792262657520804208362950082407982920609829507717498310682537367834523965082545729205509335438417515677971270199319223552879395255513090595152727551595426127793205833064770490144958676879719536086534956774544137371084715344704626953333531941515807699519669179822002751705138103990424745860669178274129279337867514846709735202598131124176190784028335083771237449209033313325606336306967272490440625775960645422925926085719161919796672841029569712551079940081369082055726537373913453274539287388685606241134293160172148385607363444615393871237717928182906970975059664144052050755658769144277445936797502044487885054553402193216671189943298136408212991316462827380361372913417514339316803340337120595795100978551794250181804287480204410243373987536639258910682963753193449846132185754227802160911706461462678171606641595721881783222663777817463732537407175258647041033597715040854728809567731386955496984178073996070680485167225344256472920164420876656775394277865041988703433663312333961264604098104304753712786314001604792779330057384776149348218563725975744627712869142229899914448158204050441996791944294857629659906861165458826597796448191774372742934742610521747024294695029601023578880906139649022916940914490941984277639275353125501443592338914050089826525295319679378693901932749414563259177640754613418096492064258657602626108026355127118489257389039498804993037999186112066207912819008942819555826426675540604299682579544844470184833790005497768912013150143968424611374118375867632225786733946229892216513470110148455858019446319402632550082547161338351346162545643915830390233836274337668549504888771918468491200368645920541718825772180336284996769794914631619343301056601731065247196251268591941340059859015224967918311958896308408201968272499185148669105420293363765339830931207668700841294466220039204126807416199478709664887533592241513212401387806034091113498931290854401716765073326845189413523244645123613970545724337231413441096455030763466152265527845815332639149074927015411051860099631359703935518135782305383121997247032541191808914982380875442986057553596419650747085538422777333234988148663588593425446279193912928342853673440485944052186094957922413849923080373090705369801317016219816771072896225498326133444425199452934078588582271704172663638623953247721130943526367660660187819082152944011910574143932420617229941942977829498663199937474329915125845241861352905811915808048960124800098886873197202620573318106232041216347373594702715731237113262209671111388691075762578389527712266859289974861941468314792233124009648968266743006810615303231742685995417983609530738704520382394989964520545121928740638873550637049795290818061363324937430197744648845380290565532295415109293768780869408132258439051925391172832492045486621043778499523013986041615411455862151275908761626973084361706347190769542970496563884457284614214995324700286088292775879299075200186386962588409504731586014998756857700306637621781376189001899476406473176941447081134101783904370897860147025939835127819931303418314054974829036717342431647259488636662748636397548021127805302072982751861908694992370472458437525834903049462587054828739311441770353405838894050558602804974386081954516580593928292920857231905326057581042250082601597939731437022833179996823034265487518369466890439373594969465398077528132784673595437785086305228980087500469087850051164182981807813976651025058564320244048075907790834080014970372697047573130052393349984651036040151756344760624288604420380848634803698055421825874219816979753762968833285104579579166031149829854885631587829878492652593420798448486002430118970487510161921888100236243905833715807951563864941363987899801749792636334031689994538349186063043697982741508478170165235121417855580452726037528185957329462531314103302609862988977968702318739195410777130900110376441614913747264527148014699269235080711997396703393290220817311713422370037975201682898727791474351137136189932142203396859581642943839084583995098905696974089483811416754852541462614470874901087543762740971748100874424892809992004983658436462465125195832047946202729157681886216094468296270064667530174244787657800455916999372111104483684592287550647701285602173423025516205627876157142044017308285801775229818213178785898638295068559539340662281300592368945971218254724633579517457041419337812822649298226321507514630592698814978455370048023243645356668549124266225291111528526100345349226200041966837637639652412395584227511944827252273756606153468989997430800710642085103718427692789689271730466867066539104377562147884243983554946941491474140211641159077981400025065670270078786879829972186158724388544090641749775657263620833132096991390252724647706752602926925968935012042724469437797657721304033366736117541641719444656001736817130134362378245135754504394784412522642278388382450317132000296586137176798434920056133624058265384446949598506295196217467519873103624095471194622371351775027764935529268349156543215298277252062557297890512140361872985511132873892750800799860292672416701999593988648383722241371329434842092624397602974401509897433821129417641675553499067499167199409301113642693722257840102458286453040765306401418900929500592475579247932221897180762439957011982290657388854622402662252039027232430185310974580327003448395599881361586161152718096000633456389417839444666072004902344103726495872244528526358708562781300223717883973358270550344569903081660222629030275947111678367326010381390528511388209519333357954043326414839626780906853787555586756625646188223503029270299386551495969383240623533454654169879024219164907197593253976151414260103153628553302664040271895577998190162196756829552386300513947557020322498733772989522028738322553172043837617163109756772822855743050834716520140185896196521236786329450831723517014403695580266967945596474598758894435452229138957074379561085754244286533818443730586935344083695803134966268977730954219092152099605595314168783197401230132381471108229477154599569517991423955901689275693033597154836563212597611262549551203510242610857241156828254527118676114655560292378663854697404775902785050206382648607090737290454074156400264650776639748036586443814818404474308940468507187299981585272244352243987045960758151269150747525809599053738095938180332934833535432988066053413194538805145351844341778743864369636665497600204391312342305855107618504697393182893344149628733850607628479964485148129884487204202367994165444479572085500972200182289257672017676279484664369140044791922007922758972537217180308228430312226568614146454863163824532735776264900169519740215508738048530562336625970280031800598639996390747839138522882705965702512464349901558831358158476480957412937966520986716448372727436451662447192678491479285823459437807291655122225414095686156668491014802375267863213830352928359868079133801015248326213921726844791039770626607781595739022668768847822819684929913990590230464511482246638485222747776246450141952899069581110528253543788651142052612389242776098054831371608734048189928481134223418803572870393309522262523699103467883318185930456612430792193599851704526835341292682703695521978020603927425993459026667047878250243251471697313048617408644355801833215174149755066199509412553524626487082451914993335454251530324310744813887631480748024579217870029002520112394146013376949696508469966836862986663394848294578465992130236490060533149739861920553205169030756186989504926850683515730251704991021576510883649071992013863126976244814533533831728740969350181163157835413732054675929692911330749041369819088707133547338938273918817765490147417950801760938536707327978858031090549383695681459498459146101684783282365576813442812202873760797748838495729880664749358008447755845278435507832919318403065161295090555484411526047738699016884635113399517280712687708528502468438318411550837125499989580780617427539515352816412812207896374769218195613447988028565662052612010355237095459946705564891565770752166595344747952325622807602897877864297989115301400222506004926467795769280193374603872212157612756646387532327685060524480005483852902662586855126429131263422727488282858132992054224621854200680198973769983278843645758797591309082202925792063392294474352024978619768405451086064111142825452840774928744627220229386403308209091494296655539427979902084085616457773765071323321498635736769723501668428089735869958831341453932177856894541254259298336123052296980462551399089991922940001526104761874312406215985240568778340905970652985579262829533570324326679500708230125697016290083661635984941124509531060690196554418207055638956963740001605031193581582996753583662324009730910846115706381240015240953341036513837077370921524641487231851052697536140062448195901904857309038419962842259194376836234945401649252067010289388782536075834170805766126576295058155606700700684003302584858149649867074907521775791880853303680597493968770419380704878055715868081992205179184544299722985622759047638059841247936687169043522620451109252484272710153203039480339272614332677265903106094207957608578242365553890851404507696818365029755168618519941963093289453134274931528014003097175674925916844673352678250388035826547773726338163982993747185785854529458227690747303073088427352616339730896291883674577172216213696250087710643341179452539444603561622612653676025612659232786825632584012847500560703750996290101432585470461291875513929704907981754258476402586713225505549139784322804515338768462958658416981629489834466295528267259641731331924068852511384683049943492244982828299141183076522370447720426318187281962622397039739800486988390817912431094213935588112217041315415828024657479791099404424418843281760940172087750835928773862886902723739722703206033715096690838006513515626481677232579223048255749814189286363685143125245409844849035836167252937995712297897036787024931697127047482103778648815932233672845095564035866989330411291725350888903077164822409630085867134178462576446182131976625532797822621144792690851670525832151059875687321219649153280596410046150868784302512550370919279743233515970644212652010855917892942367031992410697705099823647009965730119516269854201681713118564804321859520008699313330890953731791733429967774824203142169167996304525210224805747642889247919270126821370248511757388518707808993809093789293858494470137489317133480620458741864478669845717624164874034965487634197221547024589350801521464190035712517773368565201859010251409852332551048235132364378379138775107132229352709767873721821491627980982855016759543759758337214927679639852654579020043422699685903394462229963681671363375714838630106880913622615611275041502641450529306998240714345418113169366086065021347764185513696885845925930047438226220675831261678964582827223594394897034014660113663154060849500993602237660413880121446259079620247715435977657373495768525017029408661686894581686458075326559779096190873950900440523436254670061181013838376427435982339946330919282142120937852779191608014977828044152803564596551394388560350372138177124695402774823550076520048745207328507135248418640154631767776048408109049717162393573738789041466990568232165702458649489126968346913570465439566844686128083437797991560094283172707549580862759603728321048604868058079419552968654739866023434206479003073768132481326613278930919158577483102416622228515753915205517913281168455386403315093901089776123811815275739251348818679395606196144512272474701935594635788613642495131225247534070169495039467807428264851559694503223947487611698888615311033560904609870694372250704288488150806930312373378174267628012486413102735283956011344389372735495952076469600708489031839823289221954842254572880140951090319337741525551979480744534807743539481948287064580474668404492937814559623917289909444301405157497293718929797503821624902555391248049069452146122765066797859813747197525963719128915511593854221627300699483580695757159475881073515822372672245814421155778045671432615951157267512866429422918219007506233311920518507606998362060658639821922768569915565947036974482189410766755846559903759817242824934402224573111887740219608583229927132323386526265436012708953836690171783174027038870430181078192322669360695353645581500538044747112368248094505786673845390320746365171898638723515785556398515519020229083538460602047786901180628159948558708229405433892414513421265357004179458326623663323699878158980486681912410594937912585054212944384147288271146488684308705868419226216121109835770395651252263216995302571058106386686232564486771977643770621271614841400226299114533900351582102784696348005479173014018513111810502396351186015825721642451358195013247262755434057621873808763564497830446429079960584792079186177161561655379427727597522274916266477527460542357910607682614780259461724961031939626144250877591579934112296253524550307811289640165227481397489202354087324080484455755217282357486631510601189386700212840480232370523507502375241264925025452347368090150114334306592277712669758524196794299565717672040338713094476285259746465691838924237247871868288347253091942962954623429104320221097789881237288993735990230445083760210293192973708443599316351871899111015427201845940166698297287881286223877592271634722125323206353317468622446545080166528616182916097942906341943582719998784346503544315092497050939975560518178436657661112176550104267965590456292205767493104262337003821658293249033793562604632338510804726763335679106364906576841801356216576957186134939536558946254753323188824480456042452599660059058835499209928520342681207266400748011395731126243293174943713917680299128098405216886111524551893687110748630792077038762922742880234999370089318155098503624919459579532551049673280831261999346175280533025955221428138347657876691429443849278196939158529882066102608959338300518482787138543130162581741020006204933509931615222232759240379920064736292597481192915485602885779025006190351218416055278800573098603657619166958224030559740455333535707080471918212914407111144302745783452824934401141359590839991462039750869152722649205803085180377637491235188228553887789935289914504070075366246723181968132722338830303092385858042384043941780660278276544102423565970182901359506945006301376179305993200805985727073041241677169621421603893568290713698354921150469389189859816640203572423120771163739180780969122347411835713802837779089966538705918074485891934639987545461969325419589044513382209599845793883922712327054291802492490954381772738992260036039068490818349913977850627938714605574558387372377046959670068273674712119189142964640660373835473552305687546367089250166149468915951214376383653683127494883646584940756080917747492384433010211280738115601702034901648249821349911792384395514100992013362278284010847930972265994346018029079375288447781627797314093985995405454330543773679022225865643297181571106900536299614973970329427999515613363068179957079888214374728513271581990128835181297378972380543746474324452973265714325551126684062043485769692884398364756284651227097404638615844661503546509299165705102931132250930513339578557941265966703090251419448746276582686146171145435671214315241895684346077283774034305955742376193933745854441263867988243810160116562115415140510787371865407174121341269722585579348518036146767237807664726513646399518090171608704833796936940409839727550032211218028997145117354428134358293537741976255949203593285932862217953636403213325025197774641000538388384477649522891286761160086405209975310003759596088138843445728010815070589102107349366512331324991032362776697635100910725792228525529776403583781593371427010285476164098421766325709029821739339657847715157731941157528699620444932357464771124129025314897051776676153921241197417383210314876838713283452474114160442611191371806400460462838329653271243907565422705073438921243941191527464585166731180221043380861497887475397750604670554244656786144079245747047118208235698111637450209749983542259147635014858798071263297476376126932605307839866942545936776863232497140576001854023066292276836941587618574116115176451730188124330481436417178722952240799650304564951368021712128422714942099357893259361677210406572631470291942873501471049334493615884347296868573676822030785168514591702265036121126157034776772205406012942896958868286062900899619032494980491809805099627817390306050733251359576981124577571039844046334410102155274611572540305135819732224724554250372335154968422384089657407657847857371722340003892444542223406199247034987601649959170744791725229678449914613609803342674436475264692655111480170349370026849060885488749750006600114661129325101683662198528543060898527137729708758437684095674073732101752690467225930774534727859865676832469562624578011857466019572473175597010737774119987331681829968930555887744548110787599532077219010203236787106024737783665559892231783721662156005976001599784740698978435665181677661011559086793768895800599096021939996073778452405032621824028974252600564076656548510976449907475069737618078809475060918983117860610789357563122419339334315105200023480826438457103870171814804570318329025589714296127363621387459041089512141762926653878628754299180722380136238671215132032319698616386642001784730880917445886831984157289177164564051535669518086237313100915902788687825140412921316570892706739581153314776058971366970463833133392746872196032009389776946422597732186260391505883849629449254497645577053985202185801376121559987480901699370663874178543546989257816205717502353920511269123234597176590321045270229338982338095458865664264652307353024628528369442110137425399772093446032589326497609901196271358764001997155488095924955061452359276698812925284957670148932877715823432634164934593378981307671277022772104822508335383960482538640325542918918348222660480269581249817777829760461939051881799396109579360052960645199789310725760796688771987545096781858719965655800915553680288708563706235961738389008016025311153510849562234610658351527533417733709646334657659948070919931025336449084280739535449168308465457966695447326389103312389693841593443851507845335202717246618509654186106510779665645543233222179391451204190749378681951451782869320367206129035015312276452480270196995313821534938302713130068170181373927580642832036537313751792876678424617525690628260967136051756384050740628678140497612685407325893290680227448979081939461480747353822411672106055530477854631476892265504355606152156077306489684170600112942785111396861889014208318768922641490882052920469870166991693842260794956326182687082946813757501666112463364186537026244621065586809335265594349949303978654889872080287999514991763302222714700564902309996039445122685007956846084734221324131456113496923377693594670253589691137265810378406558102116934572269083497953712684371532627673622964480004020390976132868781044129520679952208113933434462062714626338259224835590588785943571415989876858026764770857043330898676530689338390547583619416526498472230670137786033091962239998605427608898562196410930218340202555258333241976892553121512858017115253411246065291945516689329934017567650963315538972949745295315446413407487562215691052448221479358623945572577215342295284950557200998885045435885319931785856542712575161800398406486380508969982554683990848615350442365321946409213382312147175066307871235915991980289840634687955884651201151683598348565795124474838479652984781231274174547364582250742564785356071092329141439947666899784957203669540787845184448390229348429236926224719265503497895915355265435480375267967629359402216223811246123743827973024909485408984892329499787508528209602549771799091787663839356834556315936582265728871518817888760710125298737622565834704640404018000013093629967628613082733310263978205889737589484829808302603071701180528251036111156621447579502178777932888818967505523045513115422344862859906835928157635509295997965814124572060571936295087643279753873121014063397300607509444935227866700538423191219921060787870513832386935594519068602115262929495958064172759536009670611366422839414293822516347280476059411622734168649672544310994257499261674452112700313122621406676441609125519558912054770990712325339274988833006165505842073259818532975403688790155423924790310112160495344463550248358420510678840411388811211655731371292956124685474976826885691302691939586893403214366628484472377723659121934009717414380259233603383120303628215809942186568158087099383603847236076248204519693229004196752490749539665675036747816640571566539026040447311239637327244067881882381888238345367391316887709564916404635793491087856776009295827999345100486946373457886730534726481907714460343571852116033537941258998852223276264804875195367701802961449397993626835507352761571587142685038445673604162994866722022003255165914865229893263529091077836592960008483448329173977644828561994448790209822643823993905879896831379185650941601129929822142830351874531029141874112022738533512945149799703377852387027689759718525962158569217096592296199244714623580159182688441607037073417611339888497288506730348055226172308575125784980334454520094625582664399758969621994740062710483893701023476475942155590529549487104201404837395696808035758387596643491915086545968936409887251878237902415390934212927977295931861965446018299098404553580526889024603923330021533007545076930911018535122046592345046669078828824758878129038025860150603832371748273595821693918568408836094660582592378848845444217532257595682100777031214748757693413471662414743517149355312000144495315899592649010846564747831149761957107449191255333117490766604831946672326241729948765797356978596271988602127794829449046992043739258600544568500047278189191688384440232938861065593767613280060961346721896373587628174743594299013098266718723614143833858351078987860940723479174333336003953979781846183209187001934196202683379372549781484236530563549901119431406685617568084255194520691954113781425152710262642301803222994390295400155012646566632846195349355508026496773531479305120624211984091410964933423388305848521841520966924522520835016132217828213186820987628265174883825033867531357995791977559047018040032652645793034772216664266086982811364622237177071211121985013202672092653467493140894273153861165497484230339432199354846903535628935181590589481464872283476127944466548060332295024001571675967727802062245288745799297705635145485016391758089839126839726972910184124703713937876023640571428122565650711032151832771873473097011351903124990648169600042963709209902004158933428689981620353406370388572960396759580741244719912477230429185805951447273331410999987210827616474793116026716040767278042059478071729160891534842759954749662379755478138179574500195808738466291350805394513169077911350267058361138458384986694710412227313624269700036661790421243706343906847602549438825814218099006180456675610431534407469095393108786330628201632898444819670655149036862519171155604907561106516122329890891794848180579072541862519122174232571462836727787833522761498731197539214775079922212818300059663398404738356221807742772514505201021040476221081293249229602930097290313791937409680820487804347716565565786525291135413644251000089418023875594265840205825857292085193076220120044777443172674488439622101633954367324903922546740656793566569486328643194982671671645101770977614460716648333316623823400706494912958573670638707065016535306037527019316508754870328007271879602536224334066057337265968713372720040985516782593219761506470234088566331319022926573513390246926271547426838646923082720794331619696919331315539568572629091870067863459737999200119545552038273940770864575672578088378429708064297819145713316887748579268879142952661584766610014010408023626135362182571252888442128794241949908547608976039884709662498370881645261565414762657822356476538794553806395688604360601165032504704536452583833460344464715761660098799206987763987304652012980710007832299594737424479695329272640234081346324875913348564170215437760753029302546582101515153388496802381629812110639884153843760271562057192451474621926470926351816360395094026481385238913538630289796977040282492154829266408176458503063120436146010961703307854001288105274440480602877853827057225775530944842030058590367290898154112702025742625895831348985340942197063144375146643201662548372802081937549936929289893256852678211317645246399738796283725896988847179902379133721819792995936211717719752451413827437255494545661318546417722714456689771021533323139458707708135215566903505428922669669782935835792795097543538496633321136235838324371237569615136233633547934445473607972001191449160662434867019424217354656836533670099277762041276681390945345309844263676261998631964432209167043448216663607189101977281800062408150198136038239407105511141355069397287715901606628310332719166245213945402049385244420063708693246902613625456168116034785036299662381155866493866976605700770507572547939975696715929609228547669641099549149949890441824440169967346043673073917420804883386616538158575459134586840854477903122085521686190548254777320180900438853867550657619799249014278275583888234338107283932158440539612759809559643413713677025986957980800311444099114466525438581699694286032126906318263471960735935445711386072493646215717061221126386206881080155658621595789822992383536743114674371222913182384174878936162160895647090173393395709485300843527044154485253455751143053731998587917827638267238007075465086976522609962429039533232102421314883238963709771352536484548456534020286178781594407048586122280076314230295312242942181028822137616740187765357592263576957106123296688709736418524091190901326423745848945215584281681591340749194170154788009701363737833213243994113812445297134895756258013190143365413337913638512656172210566703135065726634759348728708063920902779553609575285420664793299526353753864078276901455977440880381505415940315174839347255239770871073286638448057703992182178092482976961064780917515907615326548901528317413291851817120851762290013765984794940567542653775342013081106571411659294378776520091157243444000796120724108726859896693253697995271980610505981220742540899697333976600623004045806588525217402069588074856395435549630698247244737785793911189950572205448421029524193246927844131175993794044258980096916339676303020091173472542247283515341087777258393756029068306781229207210065270092484427197334200677480793476588883159267803607086051823787154915040042979300013905421657477978269381505367215913796670013231827114641147095439398474818996722050398959852652884323523841878393711305824660635269733473063697787380281256184040310330903091074034584751525186529878831764138155741054634130556169397856442287924541158602510721688893283620412340170783925737854665028542733083773944260197445211782171124707278223925636066592916684808810645162796207262706210086931037537606614750718763833465877993418843934615102422021765344414526283278013727705027372138559628247538039250034148510946564327676990046525110134664580817483265955188290980745685989128440754913869399652560932651420965819269488049925534883382942702809474558428941888168080579282828376123640026376435755935527344577131060639946901707832306399241163265324886562565501038419419571039622407407261862326580300733795776721000333287107328518952572937989648336883224279792435627463276242279343454638771275167076477656575814799314189500186315685454829432764274740058735087430235505414743650767372336988730056765279947426667738147015286233717613548140391714439949701124841419740489821276405536744228583648114699729565132709705927062188951699231134658739871399802549125320042565420903727343424866409689185124908040581800275916861707794131163818191115258515329541396157214017651932303866567809089130407682831545666484530893803850255655292012528125615256899805987765581773992777740569726498556088434135712666305424851879652496320689696815322193448125136104549734303442481164297180522392352650843798177057971404703310199039639563426035555039475434318705791304445498179779302106535659389911125553194355631439219294148766100034613338773420956986864014181495096956734897603242494562291289416605773592979894063117922636228878117665191400513584739158120133510913014310368005736100909124846177411328886125791652665533709031334915916124415000567019426532617968923756838304887280532962240555578957306032889122109250423314470380821587962656666437258663973632164430096326978975365183280626522629038565647764646310355029054874736122287795173369992333617512363632619007444517813281346507714708379556908736356118724252048562706561924299599876973700083488927919196493323570977729327133776200854856518978756054790047094328120473781084237227266363616311945291603115695470299580037559066616063205819830923524395126300789026170415023958394456598129578851375032160406107814227424657543526244803208759395904311838497176515655316294581473291721900079638705001824906666537767203159323260143751587409038559597508771806722019770799070085972909310792906405614219784812485230540915225078847925127472155014247804092249577415327973226669549759736693781221196241796881182317289060707926431082472474879725986148379942217198825473019210102818916172148894644384179585527529553900314608933962979783193461492997253833444718597515385108190584990087259157866610216718739772348185972913344900193667805734822786136494049356977783690601081404342254253254087409916945528017518720692464272625048902293760444738825978714239875918194665253962167630730630358505098364260720954310525573990354298810966076767691636215348838870667683382910969601915249421795427157838115558395127109637217790769479957411277332449528794258174858922486074117710178791334326345231002933252344277610961530237898601444211176251719351166224161770321124438512587157657498672596776697900211404638848430103685693688643845727074676394523932319009008352252600077760339154297932503795492368482607155202767852099755650152825694006989257840395509946670617794472745783101911954017792395253968137560619245287738508878064380874688145623523540432427675453056026304315675534477043001659513414359040872026954182878902693037917671738188988505271488928221315903486882561810390575297470003575892472372487742601388013128986575207523231542049420144437138009754564732426431634453477582892923664530388406228288336800915203152757606334346738055969864954433589943604133737213810167355821529419787048325796535523465639051827874274104972079889559367282930291520331836697061978300835762916534615656978026853951184308323604148721956339312930471216078453237680324240748105273979905543473434788598427576618534546864277495667335369032867581166917631967283228623912960474257540314614347815071122142954516488573967105358256871299997573785550902748542954589857463951955628243491803946574906815471373903054019259793810715434078129413144986406997425772809302153162796821256894419046553774843441433599812435484586045852554856727759407065518019880971072656452342381825681625819178474863303876802780043270981796679955866106846730217880134972259481033538098212933938337997385045441236918849450875937589016449112480657454676437856695664078398431710158223055804748525896422715035521126401483454228230858629072089431719443104336330154684916650135430985416881023410751538978476118380773939247170498193238817105133513143375691669179361442311666075011088426171927400991079272094975057511909751467001705808418943814119626293705671054634105685635505002406019433080527709244527260999497407836117685907923804464818498409249760026984146033260680997701610047463485341953574086758435837781511003932289444206603823880829931862572199528318208936108796534958903837341762672823117181682392303805018167080432251265044175685691420547871565218042966366137606167756552972400125531394316444898009460720401047934728345765075532514327977446509989746681281214620263113627053937969239563718940064621757245992224636586854918935934281177983283024520116730976189344282833079098353853938515230198298833502688359658114538650676022821072075737382903368437581522006578754143449609753418163657593720268695131415872777427448173207833358038517924844331569206349825471331902696742672551515777018448584839762368128851142986991392360131181963896754654030792279454560037532640882309782139756339620916558771683799270226402122958945228444522290910634848739895628767243166722731606842733676699363079774929351338516209692252504692171302633461902168507125903231741341301491542581445220627611522008260305683658470343984424758409394564899375431415592875849037475932074148963803610974889462482080166646739514484122776340883380236643733788319217784652246393703238905290129013742954734211037738303844689921188688455808764789829911242697238698390367983225498332438115546335001244859156612693007195395676045631497049466694015542989771577699936768420815429493468460361686784068163573339235211433937566083254080200920969829834581847128095858379985613259862291880721541393417287535601932052438586008681221738498029999063862827849649503188300833951667518639900250901053686708504317846654697046950057808133752268656347873630561498298570421096330338543566940341813382608863472909772085998000420632129759166453350575017624767434149773502819021924305573573065056653764496495651809821724161666878779459470305923903941397551239776463760906025189124826901460837542174022826747308024122687104464949874675685613773848517533215010170695349374944986122096235578666043732566535376239348896868378478885635359774932044201367425614777775532970678621191180558330001055809765121651832124331372786586519972406128860488473427319244800359951951245511285397853197602210633213725612918706506468837589481772219269008083014477476467232027881944002856139418565375223505219463608241732855099494261647467594827348375283995985754009679218725933300549721150907452066232113801953852633093689260034578415677358848297487597965359789737604696897050660761701994348718011361081495036420906915240906438972045320032787907083378338275238259542710349181571448732611820552128366059917804269540000483291577588675680577613736296519542424748485325269386879924848062539682444282839216548404458801764669253740376261001961218673015405213828899815202293876283853705937800657393874611752360067961697651153132113159205357777058313464282628307980857657799073268209941222968245912493439568037380640791301997090950657062023936694992241270009635031889590869125391790912259975027565512096504985900832319581386234948680243525204735516938049918596327858206919379151669874695980125696199833303090620221472882693375773294363093253300926325137275134315044645493025401545811892424952600033945422940510628944386485875297946093068339340175867963221113658732114807313279230208659590091409087801993168394126527260186002700256128742966483506904033599876600734431898171960420090581879209167983321422952313231767988597880838126672821018606940914114728655843401495297265106791572552134199868327446626520158062089931019782245179214052302607935236163404017687034878895463429782470605795297735176381801554362124681605115070762446986144611506032101422869435802052245952692832608183102810189776037489494891132594051039223376340258318388865489078346531914425913843782064039223831572186071136682887684943615458573006074299490356559565999528873373476680957055686285523481417583011106817626719301617333894300189614314694592915190621762819466438002871068533168708718075173038022697537857427653712613026875887950038710521590656832346334834521305248932646157065341206116047994139218621571603357744833940618690972708230858982878857661739380749698764950176673162399824143997638506245241984627454604253549806290889292897679419266376019298778023526950185845452812312103249021512650190720821865186028103588438381225531924531940986952803335948187962307888189651331831332990418006989076673695670456457327487836578731333800530783601943080264124933191291312935560732069176716280861020366944347178820358232416917848553796974201268808480347564392691816562657572950859543591454441551476909419494865308985235112924291046009498257260690127725824804892831296289925675010332334709255786263189732179440039054820840797248757964114881614063962254754704169116410817846446968095705297249900783493356009591065940704249145932536495943169118939772926962947132696037350998616860426982872091035009902945578326786354258364049521320594397884682371263421004032250499460548399274051027468835613900980530135751098989300511175698058106127956840255472677947990669348948566155179989891478431038389202092158848368506629307278341377400723150041527698779571027439790614130370784222617377143643589220524404674095633595922870587570888811402349163895565140354653576470666071633657886492469006396288498071972395098144761536472314657571415441140520553997578405262177375124756611098858978911228854112480012987002273986784590921601800567833952915563272321962142221429687565856368984830566086237547203376607342820505580868624924745750038902789282209005269944665332733693590339417696286977703588097628265337948750966395237008420618148316013692217218388058279154070850468029023847397577306396988566417842117731973892717267712654107170932646546671713505027040106129933767571317841309494844842252238437186023386594848054827378263637976569914622164507873183918357730567800398812889750852066256888203905259261888497620844864730287954984790495678439058720739857510762132916523675389799396301988146440471595424494400211748305730711032308454756196079566061208840020968843835702830001207047053915038180203826140641565309225495290705550397472135332842110126499805811740511153445096559353671536349881225441548762685661126123674440230704883007190911448548515068170556493359398470846336412660209617720191997918193212940840788634628381655304846978613628333834851020454588037347403033228548869020082749951057830022619931012547198742986114085800118889888107272164386990668248487262413486642443040428496581248188332475735837738694073028374444914702583688632736147602005692327154288403773730309607173546311461331235063950447667806006754343719655687990430580954970057526269250172678756357444491515249815036751420305897534963558959220866769540796587099451663381359404166628872428360753684987474434905260392168355451873314367256003168900195374180779326736439468769752160401733907744172386666490510047997671392257268768362322033878039410351679969609359904621627205093822068263090130521322862546184961674441930078938315816970175302408692232170843346753517206874416890813807066384962540482513916484346367847534300178818469689666477053324386601003450122991469739848050209758644770632405465821446062994271822675532319887507284337149600102296474428494891309519091822981395264334809927853587370391812677989809680345656754129513575236599224303806014767878487037975826795105908134530644342116186593745257735126168766384242684978090974927582769164648238825963891849389539061860898947139544242677404712778474767962042103741782802970227503052074986832640494371416807925859278114871317928477733585288680213119493660101640258686423369854464227175944737646874940001084155859138621454416171814956823878608096768795506256103175556660708454723115804976071559667683745485211628086147327359869396035285672227136726510389156305170126268814619854939995921508467182638253040543059766783708035120694317262430234674421232960928712254845968471400320808539791785144396943969981378836528927171391177628042803926410075914115090849225236610221999911955036218628596272367362822565117336910464536976209765591623303845163858454514061033901890125789118590501391537667221794157585697959051443453846865427771676560796110210320083425203095258722196347027964875445571609230470125256111619125130661441771040425819017266292824038396979748029343783826635605622029789636872319716852458399482342384914925074378705280793407054602276921826361104918712154258293782132817218667455002343335750194064566835642012886359000062539635432099511359699639836610173667772233841325630823692931916816577560737623304961261360895095056026778353779396898182552742107618436670644551026539151232636538759324226732637830075864633857247208379941169879329950343975558996325933772802045883145994432771191668489227949039404877895630301294328425260681561011988065266943955794999720240482860567516057670961752151106917550432909473943122469337505688453906100317355174983597304149083623335725664129846597104540869912373100517966152477127610888808697602581565348578572484311892593368313755077094401690261862853211002652230925750574227975383958251855693013636504623178493116221261137207225727173922045522291020382997950915461332933744605897236802056219426293278513553354305996841812318727960249876313305418513069665809266934671187181741161017667185093285294263462977563082248180993616810207819228233550206749877015140751926944671252750262540092636175608585221244292383110553616683030953307080424669031214899206313079060808065452365331749822435628660272135103255879872068424690480052036001192661929090657933619311334491919716997400635613199019891176887188348983783781688870423034152567491407255779958486213455588073547272095715893550946126710298079384879868631827233246795816856568247496417404772927396414422077191314370539883448654051050649699204742356111016620980951952603411705451667918471032684176814342638779645971020075492267531731163032236200076573621137317064069217927071733276490227908667487190089494776410534356882503147525525163284074223872367045129631506015183701571631439673836784723627078359778564670613153557368855224275912957503060820702811513046572600379998482576048053387997584095250116227021339763573177020673350714060528945974353753993959761664235763457834522679140822313179110710048863795652369282284208004105047168364393513369293967288916679472094581001581292453580512054755743482080952535508666759990752163092734303445573316766598319422538164098822865349139721383395966522124974373499487526829504351598409838840803356629572989007308769506978451264230585221784773683113669610553965081320660989925691927118670766166211780311026253268335317100555391724942572417816028999736606379877891489641101811927596440443501355145002537850791612043271992084710154615569852954271770921049612729937784235485170233967599347596798674296583794397631610038138495555379166253617454633122274903072055259252749242501001040195348756936688383887254236194382128313747484271591060878266358458500494113010248430023483052546825390153662157457297098577023984124589015164872648567556330974699863533533049970582453957951955850680458164346255384181144140687571997350488377232328327827219908834666016938715587581939654653934582765498437372021942003666663889892518148783662707914652766431681098549558892471392445401005418293527087745093185413379529773201790603470406132866328816865767267501164594242906803797990248254556102779240289033849245072583817318218374091607472457972073296603959506474522807121538956379514376301013990587503322375913826671459038111296458015725481838922232047961923744473132982811064989362497325416518316297052723132762828428404860251641884866544417006905719233945082062930105862639059820025811142195497600977514226590788848592977913089739254193831616760598176656313794434381637759316058135601054607823924526770960436050446206784932062647537262968099728513124582953928375778612091325165563847413594197896290326848204769947111658672498134739591216627864394471659830834263951047623426336849255194937018119036925222578529806122298606501008226296651445260844409531688570624587298680013428567531585620050112582683570961584853359469241532818963707480250534821608213757043990780638607340861932796933438394312963096558370814224732628802647191820933225459475486275120213395342407883636554525822102096214225385786431732250488118394671456979545592665143213880050202335712696463546927608043714693675414800323407680237706736404082364409790141527708513606437514297891954545354360392226526807883980313208684498792156479717815327298895430015042047132413846590543808474654929557555897627885629771325124020435803305668332739771438253151089866686414183136428176647484369432804306666258819160314359884791078370898316514533266121502355606601200117063889718363843803400368968647167024570649568811302902948263924310121981335066189358566414945455738402484891917736198357025221162910666960912588490947479162259335277145004197068821944244581109560381843092938792120778500058915011581914941839439930365299494330341502586248357602034875996418670112431255239967528386424480546987661643308819791861934609237772918301875529525771209547586131930077756281757315051165823682457819209405000673690605667345006804667441011065140925991436523913079082913777758022631135129084281220073554041744524538275259821943373686202871700582088189577432851347893714248596279314292073101676489797142682949257125165469701997915242435969269507707688173990414880391820883821272190809342314589864200197197663426945680614966820636665801637223146899347287615673626681019314843147740776322691157328761611856892906032130270785773965418724844086185642851986265690017230602264744960644898469327048024376541534223816504725320286472388946529998030174057384383325655513546971747236718174761190745281593763550298647243330161346010829749135593405629975352049016481427840273762278639419823632015363861571523147622385002999938077448421794438293591066251722489801037899000916230814918654256047874854793236851624817165732341766007797754981964267333483003538115542410271029873019115706963739177290400697859498621712569230862841116639283971294700308754787613652314216079657292835243619538997704260122607028968470609148619464933156349985531878521363461067609323828560992359432909695033486798145492285030662476501717267764494200871312791326585642824169452262766876971116732908760367946472931713199520215506868328512718160438051484150418358781797008267130326795745110192225964804464738349020139534663936150859718850614495797253146957276933259578319764933031601959603514881399570308779451891911117462594588018487712782276992640403066106370134752964068664761577263125946528209770718750418635664605035253227078433922346332775214005261541179869481642485901996939392747926498939609926415947040269010063633296463663620205323127689355418446250062161565153593157342975492095833479346705148442296136521297882978893521872315653571631867465874532628395648444166487961868955298405214081827987068579139980782252611786760549132717922849647567537154202944783421284878447539183113232567432223002560179727791988044072191992707836078643170672016250883645436546472614868478421750119526206808400018422656331886218516346670071256207689010067109133637967561528899124247410233324511714037345222866900949479385961967032101114831985648667849282444787495430528660252095697077732597893209173203809295014238392115830842036283551235487648095634500106569306171366226370358585497626599021359495564956829504058767196294349042437680127796308732428317307403284755868598974964041618648535374260393794187194811830523412425031009616795279977024388485712047643518470007920113105826630439474155476756253450085325556015248126908613466159879057888975957638666490096008864760271353854199960814265538535781320138523552926149893649698272220927826359392283259976575221219565027455543776073377999305123953533347457958259819263862981663942559913219402723283852120483350119077033786797625850685113619769510273919668363943337438836336400904641394053010248481196662382368069502723537321473567758156494635010048946734288551156500113992108013184528261035343842471942962466078293723259313028340338444458284720122148723545045709810848008825263522168133124623221877037685100035516847300072415928010291214132635151262370972758097795155234273355195126775773586774481706730524841675016733387298973337854037732392093725154644474308786470053611398630159278881294496194680496654582603437733890723341000046168942633889703336505797310696476051170659474636062888007673415672865386651399857423143702863003320562237027919973571248483851699230762976714687738139090744340417073873116756769242406983880157607025681790775742743294603286265698513006210759677957972776408347442106056848066259954786810056404832528132035188623363385813965258865109647024189211761415913638188339121669776132233459524443308948986826650022984860121284405040215475280516908077968982885925799157444345849266519677204729204185703484381457827457163554207140579392052232729398294705988118309445923540795542193318877610218786015177772748735445960192349347812092650391901258334404391596409972741819003779053824525524886341449432230891538064264274559677661899191414671452143517405038951194699965579863056851246539072459709568405117931642688282252278410427596018896170480748166083065475528400701453203507598418936602979840672911031705054648393481891738141176876354087222123083051561913772567261116039964985476787655936275272248614876305867698033785506727146638965355078872908859809943885830084636349215151779829054982392828998477760515701106129017551800291322408961009814591346803641601319162511916487405329241398307552465137938319197009114534306828272040028757711809728780122741689218076774303992756644769599179776133104838981956838654839367568235781595419908885282286640144249101619630164782425759973371032573943187404456066699673972742007673411539728987143541639449620315341586691387882635840768959704734124943957391194612411840418831957519501510444470292406238454989482705091214099603729247693180222217109992228637452796959948672405209172904799629610752676114344963182056075191723072566159668863144916181331485554007127660624621754074040978784817561141170022476893668355507561111604615470267087953002226518023434229641018449118367639923542625774870044067978884945749394098343749006111907114439667644880953118957672894557010162216746441090629229402228618377744976463436824979265678739507107464506466144266000907308392794897372711756606788507045121312386756223225303609808363110266118537095421111580737321936804994967273215867189520593364362537651477258735497014383526041222122956886122328903488055872980379601568645872446495779988389455522659100494867054860491530722110864162262410610423341027118337691816088849607132979309571671228284832000988178293287826967797876753318769372848762595115204011665364319383175526777559913175240008004275152904059783053149264874863557878985102546187543866954804759969144408610485638569575932869682092538901746600203433253674341473465834547749239372480395221978302860349359368617444867249318470807544351092305532409553445453480897533257426117732172782335354447257669206922998562084292937021355576363685208168583827764530772299718486402612055812487014765676609043050570284960019763323463100527142170054301985641789922043724627359446418776341872412969864217054056405154270997816508208580573232667985128973279663902060481350567932520664205408578492852359694847978151388777087045841751238652762243977899098570617418872525987458740699512196469632817976915338641096939306530622943753734869777588204317878703798733118571936323768812304206512693979965965470180679855139760493702426662350084800110347952369865535194248520077889955155887386934787029021671053289320009651295722442859289214835555611010218366765056704699070498378288110504926065288662034897869987982467349030919497461310404581585110663880683763781583754805680720234583738242445869847920856101994290581458476663199592581619970940280074304288937941097231182678209782556088957402885549043230200343427604671728762164821585657218450408574345443213693822014138101404497120368671486737978960222863964208420871826849108849745370158580352588546437998454556411522998308755954660291984575582282563613042640125437605500111489353949268143727116401520487568876079993241328150077459164315623592067064218572582140508899698005073144371716156064847912265833384081285732801067743197958097920563117734961471524410211969972736097218028551921702734082332756698126347226639548714332339852683086565303330422195329493631110783931799554121973230423411370470679197219367266418560950444700128889840374531126785063409654273892401941473338236716180027145714836954797349729068236768268243144692086537013402845752045876578214449777892497893549925248608729740860762987170975083762516277187135304093795802983456186860079555578220076931452300205989002534946099865481629299725403756408806288716300932435832247700646884701106421084601444500900205222600393329629550619251765403118564284308122543375008291615204988385756403105641866649190653962201863196146656881356736497154034030406036317505839179486678591461380474188737001910671806853632373173293572282177190606168306820707267277054348665315158567205568989463570846272977210058973018924968238984836947170629378993838398696037480795206379950672842082947629638289287858374448574481708113183215870179963289174734309463812452490949154369959359819106343890107253810342007642031267606701652614023161169342870610783857606590143937933208262588971457326001883305321107313591112574110368424096973614558834221768087983934415307655491172338758827597701945219788670269134199026992586453563928239380194373455873037240106224189120134680828845228295436108080361907460154120202138042879550971522519939215143812657569146989179318441421142561415971780699869424222226287328570130366021095224041012530176739510622623408929064145523508419680741367338463062049267570523277563303041145535092575514669477239032049036859436699865318036070200278449529223663721542806238053352957129944122232427179050542866100374956996250586046466677045039388735671907938585152146259448234168848477059047248128097262301354369320205124529164207182852595432056476746185178364997129881324102304827533227057523088432234153648812625432990424871169135206196335272522115513043122596888151444130253841482219558564816007560327008416910699024359991525781146738571980742565917804364433042952662340952870584284836171441141815954069774207590167577465946909287656908759683935641811408267781387425451794039686267143027642424635556771776401112877270613455159565439871958357813220905691242638276987523565423701606444447364557008330792102637867823442243801682947646745382372554877709714778056926878204393785202483356712926560108338266675913957966883464642852940275839558782829250816435883171064273122739448959815537074497130903037076338530653065958132088469912916854859483689221911199831657991930798051062517300764701347459244526812545481334105630816013839866929989739760188488756713149626680945176738626087329357108286869386108823737758291037969488729625874517607959714529713400365541347820118814806484152622156039080110491048805681703197340901527801123791421190161011979553030140868580841149421979111565383347253016171666782889780833507300025528697864035882715406170376432742976381306173792569610742862578656884045508818090984213357185812762906461053694521927368832860709895213978323027342863544254683135520475013828513765264480655982225423259325783815764916880534502094750703076166721893428103240060384286840621832560297425963681715836834983590875995599321674641419926623601557032755241985296104049468789430625184548586032273481289556222003894948433612850190001076170476104487249906335482495247137045040060893994413033286333806568063289368523723461284652167879325267630424227307520494580282972022265079494967661186580298806849588198527649952073310241758486975324691543861427097046418230196379212711559984859238891965110582258171733216635115563816350608548654352783044509492864516585597061862650773186439155154307510847269972260752088955645003174618866462148048564656658828122265310404935002731556821407535978289468675107475302842341308743089947576369822628422888368453938229032762529371105890779005594166050305298555375478676039387138887107202566673258873929636980445942877722622793984860592327947785396477927288408416722858825036752223920260155584712420604457368831771668429803352877501668612569672792367407509580749668977884118681128075784846897367126072416103020254348726140240551089628045533441854775357883886810727128683606117002989254024638068961772634596267609350517441537002689596817182999020800192966049036008306386020961897660361906253588915019649540075799280683383773870264098832008789007494242607526015887657498351544683869053520862181775292286680003994104753162802379886434665756734859698301262297876911963399236042771601001489087720718941389508783044030217147807045782131053478482827062210256424380535694197517125464310261370390819668326627240983969260488866073293531768100668264332381987052154964338694749789048259157190459363921574058397453461957787993503041122621962277934857712233664205024214768935269403024673402880377929382577138859945474990075200610413537903245528093282882483526217826289527080984049539023672817808764358791887945182452007638007271224176111480836272841640073017523518295028988396106952895964590686303560272064203481565017734091435343406927644141546362081250122294855005839517250024325750643691587837646859187008324627601205586698640625724036005454957126674714214824200301057069698238322627530413920182706827339105769223250034524691484059329293846731473624036632837191628348402368061402255948989436349431851486915358799037094448296743231528230450010362392818023003084896755001733192713562318199649413725803033022539782483551377505496902707148497275770028813227918399037452987861087662887368522347696357718749314481148302264329227998962692024151297411838028872320734144629525458758218678079328505577941425300628636462891116446145395613798235337471088452993442344287402882496469634958354201991811940485627878513656498950241178106913776062125514420315941950039650122693243385167269060688244703177725737394148861352748479394076489898545457657632395210456759570538528044077810334613553310765961971812263036706222063698868058368063384682799162531871929778822347482889607998964056588986187189334178411474807463383845809493305789527375822261118262623327194021574249995576627530104599302046138477355544657282170136487731775908903719238541925626447946399625363677755218142800793969538570673641340852076395872454331435564481424111409091791141268323009104304110984347719094516643314215500348785008425209668897087231435473636851298774300282758938304703792085817682693761666922149629123231739670379604501123916680878660891182314014508727434661132192843021953177195998720339608268617532776448849735076151523152001078513954946504806503421929630020365310075150798345229201406428246292042359114601173665844049107572074682686967339975175783057974480055486643386867884995624010450849284180842029326810700806984698227234492234455160233280916108571810402694712743723263132740156522818824715995789636217254276296378630924423261010228388101558773046766507810673919747876277363939909892628512991408430683743075513731225598568537773777705798151304414521090713999272595957458055258593768014293395519647881151742252465896728627446117815130451241351353254209715803942941317644434921633897434007470780775869632556114416973444718511791269357582928347922829447077216984437078223426521645722047886841972949948169256171896399698312316984745247318165082201562903101212423488945371639012248104415521261008004616151145239278454155639458741013206926455455996987779000637484255384506965075878182932792515849536500137872015010364397108566986377730945882122861489938166219737373199065816430307471478154088476337743869579067396738188120910809477592364739737575405389053878542605030137201098251590672518035434675199690292599223514684827876307185464178110533932590591082920679684176049716561778437900633793537913360653525389423619047396249984178569133132753755659316695424472483091404345530945818955869543321392261119875217172190048288500278873306651423426580314860457804661809666498540232489189223999543373409236325945698316799748370964171529505163435735963045253967892600582297730638995508513375946871428394515275911007726535646678646080482996363286511674463191157448262959972477717787221403554514773747294659280019457673659781801777519231349800402503666449691549890686976074165677205879405647305611876857119614680416149049241822653869595023817417225936873389185123709049982239626428524318745535365358687102072861820999450155592568612750515490634893533531294742671681639498372006848393628282145816406457501791859007493886848278871635782313475580435984942538516109744283917918667131061014797270522285909255573580119730872128550856639631443011492970633451487469440620751039654799470058003373963912140853009741382494677762168162504616301044158301384575470442360014054941697011353494402953575685526225412732190850272319206797636571065999373881656204647388849555488322559733739277345808590818685168910378178288257882215748253511381316728927610723337316053932923214504992276040657983713533081293229481287651039973371300362021572073588317233628710060284164412572402001523453427859966920660779387533229248436804119699320313777788940283256001406339582688738820335059678386917606558621830506316207671605397712809990633917743399322615309464944193494193925332044726475990477140304552553036472177662640442082941350783192229278108967897508164003215729157721206115859638852722404242784834459760059889608780417681470190395985971394695745621404140732875751995383662910370450208559301869046547036210657431222171790047876257709320427884457267995884177161637863400343345011200842180018729052936299085499737083764960376446016275519714511947189902243162892042895414783311438335555218406318087648849172889549575855498752907280294692718254006103644319087150979230833140435837396225207149254794480477937545211231009684152834228962671458173149189518578490242002761372918161597371577097818953912868581534477147486210461053260415330106368382038931961578203162322479815141496441228264797283747688689424068902867940752374085076087409706409960999556857353597021084373589652337974391282411694136369250875254314919679439662019342437525478580353572426350917783479238574891637327922722405621442149307517019986128855733420529582851996832017442210146183745413973596431153648907218450226720188165902974337962338793802526248014430144593159126669553772985044113080814447506309412535336823558747387819104783621226312546770634449386861653391164042163700030508682679700085739251250224032116916148546557269488843510761124510620424946946418911673418645006555587286307830794579267353868547136536949589453206077519750422172666499378482631989801188772751525792860289618141042442287413604520938272351927141519336820002700934293419539242108390463279750386239648624132288790758355989133171278312532325840830156018125229110188909589643418813584436538441485497253765633563152730403015607616896059822529642255345017678315696039462952425120103226539360734463804516202517058200358491237543352886296121325333844546397970034513899004688650313600949284355083271858010684986045745439092024049404756257078194612336564768156482915510263523929885742048337874140251214047833332627057939274108215023564511274596604708178447474404101331960038800604892495165418676126984740546239257846130325228820394243705780918130524002332190379978883354355583388176680774630894423757067968718881033265026388317363705554777661564734482813396832993315487769055598472373042660231629746484749455892785213204070441951211451679806865595610903684103890248893355967357737197246800888006669040687391421335969203972493021361831518184949496276052102650756813380057712772828846294751273053084966014909159285821195525547328844058138826317845505921815514635778663732080084351104532842670624501835190072491890433152627673994186643031065395303712159549271896846741617105761611741809646161807114223955731734133845686517073706577866915936133654053351321328318316915664213282346445081434261922924806378226596973278691161747727010340558214151882585988854949531639390473732031428302060942479241377843125990437713984340938805138546386154712073640465748695344935970530227249507915029847363612319417950523909184388314365129026518565699910052870690015264600870109869528530472213468495647182354454815450108915658319716393185910203644651074668191242325155269399209351195875154096110568572526952764149067080044565906032332317187698786584971271636566959055831251282991215334853410515270534279755882123832000272794202302859413522276115121844929465558853926865190883829604378593256796529828585402483789701140562025602920036816846344686728530249174681735552279392724456839197875183515227841254825773419101468552722276504313798254862453407195177982439177691168376256166991140758351952457254938539464440633534471058381656509500916558567287800577793637952632374819193129680826166274868336365278864632618026740383331240309892546935563242244796617761635525268255285092174480259823078502658568129959074605065627488774783019681014885743845219810339880655052905169280744144467716545678938556541724989580651441199377350716040017398688092791536786899770455717790840931356785739675400431884977329462895707196623557796579668043376981813520652445873675107331754659532956462739014233117699813284530472031019961797418839827044959120103320091302826111705775874110350202305579788538387281766224375593230742936058467206258451202263713319463408930254330895577198803965991262768604113506173345718873338410770608632906075546446763745587163280129309685690666471908173012982677986623132477475605083775220795643914231533009885849801128737361866161412030073785944168354179634332182133965137463939259874227997709832365825044560617469794997740265902604825048070571672680458974231904726844139649662009819127457549926890248585860459048356377960801605964980061469927790701315535341862862244191832287461791531681475557832515553725003272310628696905114981763062948505929955224486399804651111328249794187681660269593548639417123202905192546762111679306219663024583131274286370198968987134011197687843313469545479132678384294051166406469095230960131782975832914990354040490402949229113315209742663520944199880636757190057746467836840763129487146438573562443950469203663322882435186914679616031619341115517916899172215445365281802547663825725608914376952495286179577897350697287437192662124091568018004509526315972690217596569512770683435429289981970865145848258787221335045430044607422577222356517796834743276542752674991273346223326991500647137741417794999056650605671214822516004586896451545233158994719106080512177614843823718245181838173563654458642648096835017757529701071325920200093348398707188512281521202747216775468773481814847660729702049125511063950302669251826789229750617687753958758114612582566620544113605677765860173773561271959577452246068445202260259982133430750418997465159434370881800019533103242936882750656356293046367880194338137104870557180340562305276988419856600944275353137655644829833167803055181954982701754713928767010117817302148102137203821003954254828071859607834691496730924685982940584910265532326601266548706623786230181355455053340569349861629286885279396813281625755013757958852331354507690022578050381961321708470747843892280262067418050638776086159653074248553018667346893138221439051402355331652570833183153300401228581428559241177964845642396148209269503686590984674687140538444185414442260827126487879541240447721912363201288170875387979651268209218559016889860542761736318213490543495623260103082298342515630931222422837278167568780082890623920574332429781589560945095563497368146631809650147405475514908529189719977650269762798182373195725232550207661904443171527751397031659924063350635101640190629178509094350389032140600712636517181048865446488524302256569322598228373241666716441082340684589435696216059962420350461563830601786024989854189315031450783663504870768622183485079703405229737880339074682969284361210797828711463011600306145531839500035733866850521785991629286082981666317423954410627285884683178933461711910654416712752900284905398285298755269352967920881082865465398954289307019985504340244313529251292915267234723122452959558434151438538604024356712147304128743412311391538738345065165556035030017950081226389925601462103620731926111973689095561084579464816573189758478595761709396552152771595860984472054722759099623749824703067885384667736080290491855778287133686175434277968448629896058869488043040198067632586646576860527081571844850339714480676986721888777052339446356909548464447168316453430358552962040569392656790900707713357640085819248165915776337892315422665967355471607769759537664535296553349036658557614695789482026908500579199997527741222742948017957261456481801629133939696319929986583486592400732015455628636969849804100198559858510900329518505868508328480787558855998862200380888434111501914473327188965911346082204843187236747139608020166908351029824666868895832163335580578410523979112582071269559062618696326498926374579643817625246473248495410403004645056453054904048531548397526149343838907800720416813404814236323093783024286365130649911588498942270381612501043419515484323207071075237694764241192217814962815344760543953917985416019374817661316231087728028664838358578786007936515658295591316277501985145319793284224463958250462529800349267931323455958328764432674649104574610131141797586979661543550507328511313971209696412521335671429242664844940085231505264819785444700740113473133244025557256312164324134148054325308881313845478405007083136018701663365021646821680742561785288059950651462103180019838478610834185453221661296101146537100575522094923054475583283697625760509796216387263631919197197193627313967067409776055931833427798006654471825301279936618381926737935141378943870499254949115467268815666560475936847363822022258326366571740034192940987956242149570240610914004060047231301810226360864009562097022401886313814900620053155543197105604151154441799934844432941440580623651232870077737452399530334188492924430796848236883459531412994483272411118807943721565973848607924881586609496881423294167495129404072599194896534534405044659547932951193130076024017277071038286959304946693027808106405108035484185247491784123507692883989083837099122618037934841566657099674229554255435711079099078409684250117714579351563943450058523692219955510637730330833473041119597267184059272619249351987318551333167840175297848793499486850739541411701516148106422697009439579769874001075242241639702388154350878858885759744444234335266400449723440371853669065794491933786073958583212603639252581367396555537733483630123742207999487010540631996997382032780563669244634415833777234533377638722635454398833190847284822643561907814443387744287537459236781467810284299542098149364517540252758005565706326863108078971154602887405299857463250413913454320862696455329673564854039383570782282238378635766147365527487161130386592675208249341077123700639904334733534392842929153648300607209405231394041390776506467988466728441330869724243869444432322780352055610121451502054386379751349445807530521461827679231260205480309731319861484267967135374579802824834673606318547417110202254946394753333626630329084274149076762352104953062310968423716608990657391207437192155861701277751348145609627549556331563800304457480252689697737222901557034209817466876964452625411899484374598545843501284719444002437028808230674390678904764605018084207252585633443785623898460654248111516817039875347800849153367852818658862642487053378241181923999712090345564795665376609234957693757274737468663231290717613716316811104010644183902155033140814485699870355180961848556788299517444650031316943954017170565513613260903131429885244311011143858426697291401519030212465951299952157544989324677392456766733771895138381901725892208942004785022735298875421315849712073641030189733141793876025851503368865951339645065480975915255192945112688885442478423553041091985940021992180297848831678729760655809005023692089925675074932781083199968939912205605450681414546245039348288473817845198716582210939891477006052370768749243887632493508355766919143756446797313034731471883834879898163386678183395900753699339089288331429269727448087076710397219530376332543185252829049248378003204451096450295794681801062319960212514440376035018287904746220057456844921578393870812188233081104802012243078415708895417619874787071369453293272175967212612856504214370080379511189677432988054396185989251128943155192637022721228472951730183363295472880202262379834398047615907266546653097558272780381252245341487430993802634491411980257302386002352886846493362977703383012418968470277008287587976728047634345305061035370367543851790595093491358338537806703431833248912666419780363356782569658888262004914479497718003105750625299639653950204246150259087908559376945186128039467324544230509214447029040376249227736888031780336141884326793370546275154181540781964259910551719023932003201703090915485236883414164961422739157782021888580453934621387399911114757434555271791309582977296143508233831055511323345060304272370609076943859852757085460228088990474564498242259254914461643686822190635194449672379535895135627594964669814146061119366221095360764698045687053560814156452494968380672761797796141255061719606749834840241840926515374132192357351939084601621819507137622086905815029768505544103503908586471670493722053627738434787086708145775854151361015086441339270857859577718360935860041719543657245695911702034721315869839852118576583455611196081339642315516802295254277456016108026691154855529531907612229694909425818410201187372877127267462247281741273178594516412219293367720877480476409298907802745469923185779783379839008995972525084390104665971425610343624742916602478756026399759653001726347867273998480838432339534144985906402681591850675609688410497131872471032019645423951459557074588251403304464798973733070827583841180333903425520607627520382790348330889206644976373724465862334426110908666848501408186629268716442774236303563236930184995999602161468875087796603089188378908243564131203086999827365735885117101661065549721405845069597156644380355655510645574541253267821581497716097294007808360119605270036097598244790398476855957581656606526725209291654455159456840522431695281019055107209673557404881689512919814239089647261582220423197325918223178595347119183802114386274634558800974335234976492634586745364878183788095083883923750570804226224943393236266699668101051660595493388427624578009043312430245848046643348698131484074811218758417978159555607572268545591526161218965527112995784835511064725743907594182198915885022710466902657595993509069493794525191485817405735279361273929300825255115084048217890597334039153745956710939572637483536984267701790050538527551092951062320684699438432598194151188888590498115235539717548114783887471960742225681695238707488677271090406168824941386004482841455739531454830543317439475527500281063533065916064303212433655538887645676346756133828098473099340767184811377965333650356759808935035910400153538211246515175171927130152378518288986148758666051536294920307722814302548904097099512405758632171858498409183847490558594512746516394104308954385755273062839038125805522328828195506175639309512948230151346435888194843454951238559138512933280619004807866302051579826045354292541095377738985232217943448210647450558471718191401846098174681001051869647825042141509870143728155695618668087580143763111656173424059768508234854158917209612428257085872120620814028244715686881004140427023874289638816673789525381977003606053164133116989015012453508967051810862066368025858656520307045733904013066746240726574760804460867422133858558312878776045107643973133917813982933403190575173193934080336752242562095728088174939830082720905965940584264668167116144941462299178676783361845371188474085679607190143918084642678955663469099848012444522697432035167545178736547881709855684543955281289534713932522263890723158048902401007217230512221647902176827582342342654576644807650653265352338472477209914488577737029152468729022655434351094975890695221935110910323194051792335661111188617258701553003587634126851667814418458547662201392689035741090379498168716212165778803965851117470505359041506305142408593773616106915571788908930846113216853947438964099406751422423693773598483955606289307468111802409672774055623232698774049449366843778332163745660718388007898846199948573562148065041641183024008860255591923899343360876968299442699834132511884537975777193444911971216441722308110911726535059629230834777094814808496549017000547917053903178870739910727308445752563818159541958023361426553901398721253891622509694523870668169882837180510751889747293707687886889366396954791728309113995004756966115175543307073268357721216834256470922805907433541766694452814389135911288523292780088085521741368465062621672485918150594075774148685352721596222535193088390277076477170668588991965076592727389707983970370810190045951346740331780017014849580356594951166665687332549451725431059468892398104579651741548444406079093360249588055939875451511802769226413788812312445014000842004125666838836773257362822017144191367032853468439240674424536557002184457804073132131896265945593241163002540613295623434467001130934171162438638605293717449735986142389576750708744092501516272976305790055002357292530393321606455944095161940073829558877678881715558338500893720026929090132713338364392325134238418195165649334204875067996499990439248114478427666296766644677599252865821631583512419883531103100799806380939481714032258869049593110974792349459556148926372586417482487543539742803090459163162402541460138267341788809097188074724490495621202579707241462621049504068845301962381796040633864138043067521202047061822223585519318230917056106651557638492094542254023379653534175017735134755086434973246385626894616571126646711593193624550929971507496136450891724893426583387628208818820053199155167860627130691512692140710570719252378211474919902230743902010044523678926737100743633715525934039623130757045158571852966250026740909013270420963748563635688526699094681271516271785629105842735587407806354777625877155559565034286736247413799336396445188345042031523231196713490632518668771904764495697606905616392075614669155130729580014937746458151438784769062432942549732547568524677404001749538209492742991185870707153286550993322204051246121350202572897570422444884033053147728317131083710018648825504198984881734879606221211680618485653180221310019352699055215030466356937133391635376933035638610291889638302199185898585055627509143179804316372110987403479315337659551664843832699918119978538385590393842414022873482208474235708002975466284988199323867711714288520571104904501112049100894953305594224598653708591714936312440486637754144602459610592115660683308837182234146106398844941331972401262736816612462026733649610567869665111502302115607384807373823980975718621919813698311504426652937936200731269044029329754464809321287684931491989618480333612665116423180435191718862992786961983245726860473563642308849477443884936378111548345635539760773969619845786912298261208281469254809741884393012631739116736496974664838754013409686742735502478312310571787376444740229793353487458148161836110559195987894806629827876380066432750205009098634100150674947689720252240679291952593379143283876047652882053287475091455808994321953615786705463354334272014726455853055974004944015837536035768511503463906525465727514693285073866245227179161256448355235385879562530699159328638777975317410801854108069767189078154325321329266606100542963740638268926134331794569881045046270168050039174248792215633246015726988012490591340254012803197994000548117247935741588168445867932944959190269001650523416347195697178442857455936178760249084870400989266368027541317777020852156101889237230253964180075642180989025692472675994051134829045305106870401420559735902138952956959109666885033595208834436626127654187662908183630312698488554480800290663544513083067223506097566683101625099279493658241858185532043388149526711133757595992115950322633427450849553915704333412591275475527667809983683485964888926631028703124502072759398169501472122806564351261684488034254059088937406442924982042870541444169872772092966026392136344508445712283410603612676404736206470494952953123823502302871613793799158495923426733190541383184533638916264692536832499875029541885076332427938503803746328625632268618630784613357518018786323482828454666943931201496309134001135571523742591188518810743294109944546386761519386468166665603485765988517037688852344468894913834500388851915185284793201951393981489984511521295417954208612710393639401631232884598136021174535351545516034969853795370487751696044544260631238346346539305595418435864162477346611085394262529557187764353787939383939262824421407087946946769440333956123251856161734997201982632930703540004075577834378074052485494393559597578345605958785684332174029025782078318343343772802063552828283377905510082662294809922737496895247014022864978240386705108799622909287238065371729939362719686248457285111866454491053849393140246816702259835954417077443892788677128535969378685826983274613158950464568753640164395736757133675717610717350781094868203031901757516829391541350381388511542856884664278808380407253730282989349439886980732003677655569383079671802608425225380074857035379479758721181344731275071965382490837502096900216995380330339659887165770184052810241773175257087283731103709751897740020550546788378610556124880858727264199241902173393236037852986959766694819431170664477110338388757275985907599411004689477760778328082994372040184221983870474249114494926279793352085476049672393969920611045605613061582995117100853989562979744675277305708847243469741337032151399882718234096222291029690982575987314175338530717532139640470078068841625915551900371327158388514190988360493715549956474737833046273954643753787321336856789784702747595900050278026776331463926399648665327754963494594877622923835740195526788624714054350180009680301655960443357045510787019580507055170442370964772667947020262157702757495882964950069436942491462024838830932464199478922640921973301310148554851788986562108570563048440081676284299469923050922125078216424413540906819295205346974307123597774426160926362708861976691837686372369850652728241108575775205187588176331547127562881214910521958156691048954774796594775783143841462135898527526447944037498115609728175667245527477942893133236537972128205586659890992326288389517256218816639511494162386481715066388913446798731746060940092098316080354002302341410754797885413679550079016602867459667532231268276711407921289439008445410725739401506223818806830022910285647891630692687767150126173056434276448343885187033132945197058024806752833650955534857054911516234698257823717818421783004959585249328697894780212839436793873174039320181755161138032782424907330669376717710798576031243504296966965501084241273855478102326921660100500928716739553060652581441442521746098336697504082222970621870463454658510362206554024257518110661984994246873144417447157125670307386510320785317669092483022292743231670994429667804372490893841960318426431134651054691316010169386673221520176576438923864427295011988614095102446394947317899851264702113818232264279653440668085945398664343839049443315990685359379714422705540708527904518514031358964589448354892504925485009142057827249742713729227731868588959725814029423170952792458972924538269462478709340404037347537405303220485387576755177981531821383296352730272085873448267114569262671019935827284597102656490791790010105024073235594117419081000826944402191220918039735223783707495055702542002649215894360595539709375403177511823913972910930600601371552436101218852278692618440584602878020114552066598449882270534587927779425845151365785368725189665761903685316939086458151040059255077611991429447771686217640037812757266919163191156154802363281589579610975743742625317745663970116961349544672167909252500055813958619768859819494659243847680367894095165991448979204319747704063445698218522311547046100410601220215411283748545301438660983906673066780891185918088254125369889336844069614078252138510816961290828613208301154547370160445332244701530157049471520576780578108834649879839511303606062693314257225789843251902313400331285755898609560704941266549420565296157945413613415739761365965969755049209619372067744007750170678960526002595444186902527808733990270721698434842114677240790188446715521418308402505137610265312325400995152036933583866672216389334236863554398424174962358612994524988137289025796720265134108548143801967863904439274609097229179757029484239411595509901285315094290102108292962908734273470912618341409851881253990995044902320015503010297719187589347474501392613015923608161543608261239640089200362709712768930164032407933122076021893494173941582446619092985198289216625633458998365732503188906739384560483713798412097976980655570196840049373034256877915644890431116428577546964244581910414334578263503080893643320730289247023702710365196674489863040613025263336382820219105062583287247744356264927309001304193165634935774592595362691502668204086707469347576730482787912530462427363703320401589908123597949325401376425770502490469028449780675957865981347015380898735225751593488577606450683666540097945581906441948698955923907078494357776606463700886098748237163024953536810668610322242916720888975997081362696220386535089421095125075283928391991416733583348903567017734237382858764050676200883128911817151927686729522419063865040760316678982682469686034559954832670542397257899429049906991407319104341326962393076427658120520848898346266099989144963060512402788911686086652090411377205986088808474705718086130140697672830559311588402106083276071372195045827251072182052126919815276616070230372185855321240627539014304177679528557015211647840383863747945589995658479550308688510058466803709666287808866546286542974516290397056212021371330779143185926973510150237280121440421556410056468253117229442178779154575712016067837978019726270146919963932044073016786792452061920525285776000109474559144003116741724451019125891668342649566616909600355917092678993513669071560272686564146044504791601490706112590576958032056441314976411307511520821820537505000648418048388872831818364844163569073223533722186592529293874211350319871572378410947607867257598017841106275025217010313882042368739206934424858958986269241428800240101662759943430304584835591434230542335519697680117137382760428239881172845862194094953051959847775259159675255508127064171748635099778196137197692989747444455038811140563284900315039694468119425883618071574591604714947835024493795947701039093650499013012322681990094552317859501689065021502462358087934178555484406857752102892825149148699381462687039702788495949738446227554954857060587169483661990029479626210515625841902591075965600333890681188681355970064169343829718212180473940274900574569717231594144185270637331333138334821107020610586693821222373200733089478516009831128898525174939983873086022153197742367570729423259699119388460577549668134381059557600409388401836470593163089391138366505568934079519232342649265109129922650030646163002530977063668109100112657281144430062588876786798868702681588288428217941783195466150487367455112952530922221120256736203552124792217870191383996323914720579270838913581536176358895267321287421649581916134037579058630981054266693915051821767828539172693143562432775443462387415631136074205679689459905429598787778471643005935131495974864595385039670157340002189731583213688984233815324206453858416921041841021809789918946690496497455322444664333325824757436212038140638707942973831564631449454150698470552785515016441767199412119443069823723494284870511518854227508847088885636406145181145534323341133456512543263533773547136137972176684003494803974719656771896596137978921296202992849041587906537323212543745312115927744873967476043751778178599582245234049402343192167386326840630388514346076739213773182712779385878030531653132359985413035581311292466329803445077228918424778193274409794205515210822540282328240585920125418405683015831921127112343609071371229387419359916309984782487819995701024240294479145863378054911886894416314013596546585106702887252294279985591670874843051422370389339097959312036231573564715960074745434802512454224797460518876827761550291155447385634679382198652467901120151701260429091565852443934199650840022653330997686687116568215810577652036266068040657554192093652090995830696074395021195671734380900973376931722669151128784461903913242629460195699058189105436575127899658528915938221993005367828127383458759238006019207195036203835773681850688461490056203375936476169729482109666729920586389900113559741965719724187910863088912379660845975155478599810691907109797322012782587121236962010185573386232975766563401346654810939238370800776953076489641656679379708424849410749166964812954760788282695361096147529634199325335575167836452513823767567190702512255918496715264231138214935984672240947391465644823748892927009496847565075329260375624873940234045938039012355238243503507108790572217247798821179920276765621734441702586027824952499628977839417042225706998958513481265420108169837086255670671342388418224930612361807794782362279075585044048976676773510727870839271656036028246677459359435256185942541788645940457617743925519329273551824143933480134435526812852924011957172174009366771989669818693184386712978301234319405005299747440021446084058889605274571138767369513848287120942212239423088328199418775534800216710071906710372927559401501643289653693153291283458541021900487711147348666829682491976006161371368004676201819663496765015200088435723817658852396786053661683087622824272625099194446680263659254775083516901022010912933489471108821603499524291706504017430112026247290091273074414497572579646195872805276644874778468639791576232308426159955475824383494727996102598518419608112421402857584495381709145288605058677943251339421543300923233747849002782299529614051072340109454301156798099832263604817983575891959265627188913809055407094969795868460314676763205884805798762757019988682403720118203835453267666702003704236375737189537836203375975766200025255348945040570542950870274827594394099421507604972163325135346630124511847246504560382402468326209974308882246097130345491715908400591910016072667526445869321025575072390222825986588403351515399534171831842193510499345658428396233334588202323957170582412587798624503234242555476205418733379034324027189926501470452794628593292593686510940920598840534043158772422484814150890316968898402145097073147592624128524663446903558141497698160055288895542078309421432958362115941653584801745156510589725364339726482097994273389714009335653787924283422437994139911249195656649780954384158481513798180439947441317831680693424961279174290625006178251240259619021775311339027871053724795213024865415924114188572976449189600129557854022636203221370939926181576590739872273891988263494604585109664833468698363305267702024202241954929582437300940689611041043449485707403694710232384117840620677011938349595294233977379777063042306136208417658900851485732235887144622876996477177648860364528087488315723698795666825660191931651431179356986635305299644135458995308831517059290223090534285175519523126679350831265917576659621966958255224111497061058727135554106066657000057569039396614692892520939315096282957839003077211176189752534051426899480086970248970520414090127128921710021411983985904607420120305689948904157208972082863458828749362209912413746883298398122917567634837269028867764908559507543413404803598435730411134940279563843944794675855961807058481688855658924028585929398155070474117915361552974054360219055682803865256550269615765061976910241558061999771260688875707515541545875560034414742425483824501504119752857620248122670445022716235535696373515233959249729544947122176536184601385643293008794069147287059895177287815977696423005940210131046746103000941972257724568146370468558705141152652914141063890349079701601851522009432487537026860957603829906888369772998813421677606155710402977506386416216519363873512665897272971561174504835858468140793680391111038595822898494054165406558963194550382573036733607147374560002127925844771752464331053254993614043422466352621038088183915628710862311810148131049654784662281102755828858941268386673771319876693429970191271877249386315997174779105881034676464688162250569120036216080439934883698724241831288848627605805194914036631301328073939759641166766562902006615483017591391445556316379543417036963739087714650600446773567636430136263567105841293292442987456685914049618144948705485030750378520584552264503105370836680771676278457685173115456365169382900299525806799185245421030282533980175292625798021293602173159344736141942919775521267354355802846098544031178337787700448834671923618528034787557552275286502318148905592865459801346591900753197518510113642603388132727907220236635973187354691879650648386668464626215429222475575456023058155779441407378165334836838138760570907775592476177561622512700031920376514411154771101199342736145717022256181992018033447416741773851965392006704954060604880716696781990469148150835651383346854368744212906286120139999881139624903522184218685102166341731661837101143190682682980296783930474775973736668618987710515336209310601415374994216872912567425800289946710006443478923348020398634869404771346270153046060125917003294256012790386366801280292279687229251168657913352416601908496498800106109157343770103851029501071705290876203727255357649266575254697335769057420948235065520298044898678900896283431361861555290332838149626935552870541134318337736727726633760168626056625365619138946894161937373272895102013894566976748764573224977889079636020890705129378569900628580027009730525462361765738624264964012273852385749802835838181255230030960459203877103820210484999716182218328918976437854431853717011697244938140040747994473840262575365993456777779128513332833136669941349319631576839922513605725903150592160759672942115612499201065409477543779731982209678979900626349240580905884720247400021544976432896363289987770687906300638010140756164772486365130643852116266895941488447878501197960084227972495284190381386047444970542077932422121335696700986428303417086921752620307732115879471045458326026140193295168771314630985659439832869975976492278659126173452065075054885486180418184172706731245173909790375254521809117459221834615692234584052131309022748910133786335638884816712146136565263214806986219936097379185883312751796565903792894346234425259493922540109283549713831017518297042720126816296640473650524649701216046654177244631678278640788008710699223525274574799427204235807326905397400929685538589711767780749548038863181171914330580710614135551844999731521594964475733075888732313191767842194024013619640750135518180752936063252058700569214923798733584614989475906501951553827535096325280979945636995537152116676364585048070836834836992437435886869926936168801688975861455939860484233372100606148920473377514521050387122111509022099515466885684497773320862543602779439186289960633223759829336047733996338515991682773991439559448089246618949877021519461151764458794498826196993957924469466265420758017750485840268426525555063872523134652948872858146200442470925043225844461183999293053009243859875827414525353910615655373348806889974884606650289857887604366885314561130024988707493279958301349108009449218456209753763138574139187206677131292786827310533438939231245318511692618113656099970990096374249412404968949896088953274171692388227025944530364121943625229202288234378116891234108076878134007297264822221618276467150668879685408600730893945482403926455810869964797049068018872558099399342154449472585699288998928467916983770075690181343753210577792544321550936067243801667395551218207059014710360667539713403976993063340556697691715086934658408330558486056609057692211348815766755684441553472168267403529880279722504876830250658759688546307139776846213187914615852754912962265385907714215462888496717059146986529650827440211523539143258787888713717211534860222778231263435359753977457430909190996163513683593264314711341095189034218400021832089351315370425885029290469170163602877512267972637210222199956981636710694175086373281392223570258825040622613101245098792422233669291573654996313963328226406833631295595091329976384395410999127433486384968489873648652362379892800818091026089299361633214406188807882079495947724804497661896622557409260470982072531413117738614032386805920869747429497701781074511676084539047730364057334840286627517520198694052192988149320406084210324774649283811672157877273259634465845032054477828435775535744888564496845721070653994464514970670377248781476582439395930590827959397486532660322504951522466129758207219007553847380280439365539759852991538922883049917240083605713369986947120995906084071812911778459284161929265925946296422701761130550291060857255877048350431408821241175063531625257224614464505475050882023937381925601217735196059144420440527952994669732629653310057750456279955128301781143372436850799380596874220954556794558909743207596141304297385164901905033298187930630367846961995249286004202499979766012547574464091554327609757068367541855610979508982943421385494151317103559053779692290976432766607115480668949454791247480730050807936641751206526123899499665296361177755219856434440533597737187496135798551933917749220944256736926504042217744174587022413221643546810232858760030269218205470665619603279040282910230797001759979028056311866435382398208705590035553508701163343047115959328203504054796999149724497506023734672834601185429222619533369657803420911317694589394622521411156503165402540593676088019223772192909520818677764881362376208471532043144906455058252930949809775892968800488329265173469044145980546885392693146896729689461653498938619971557318298206308963433150450421805349228248145977165358870404512262604772668811431374413557504021550966188920124925407590874496150421341241776011597301762615149757090606723227475039311223572717262234818134309728736459721185229603640230762489709695504377261385331258790488227595664346655339263603965280588425795495866015106977651901630356813468596109111386503401579951504002304079153080926041325897741759921604061175247123013038475969550840113287943069907894482899980786887710562449088013020214505225677875050014195560477646123550003985709401546926160916202149063307551261226185346892659356914162732358481032645924259328389092637475988245260003128887694386177060749382960074662096301135743215589662514121636305674134330289242922326288023124364763220487930983377972361095865330465620673648626789812662754636574571572167186406156895988429230928398238838749641575839897945991712585881931305742500213533313985986512896383576253353103433446886053454566913510271325270642009115335562451492518894646825656678844373318356748237071660363403175950350602123772922197047779080100722373214015835722892889546112141483825463683799775984684179533867787530512489312778044374575680297409989686316901238980726309978983086254320725201253063387130852072852962703490827064745858205433280854250229194399849660624785473913492866080574506494654035299419466099164935803589709765302099706602854441085742581130749406000269052227751473961851447976792703077791658672426962246736242428974446579632740945626416260354730241607603986408101346244114454778759155151310163824065339059814776914442135593739156828607331956519575875615296041109394769192317779718537412262712329069029412077369440623094911637522169803502626896452085080303686610646248350300827544895050577164904800266368399714953469351429386987885513170280065052504269617601242974364980801206137158339375993112632437755097161915768559344856883636975823716442696624590569272044292794582116833169235592337040730579162548756692608968617225172147039144911024085844119275527762293881825077935170446970422768496849863396493251494036313898393618188409902618551188722823468413036556706115174824661867249352223432977254421491037245355758946408048279346521906902309870506461960322306287315115244812975170369017759078319991896305865532300462840384246759725922521554967586205408508308948338032556454562574923485117178297081716320348545378712584104368200812456953397365967186613860116497559130278218629551117594137627903853596257025299688905005879749805113885450451861900100067620494839183760669198565910338616261583367369557017013174630949649926001341106749285934479964879590414195243528281400581051234936197956678604904125515164815090345251463817185876287439493963546880024335403658185218598563138876453564610668638330019021238980516075011099302675136834371693150791629192770067607481051000644472473589468297190819118147080931014848846273745482934743875195374129480920717459085309945781711468273370957920160887295189671770387794814067776053319434233958160381019291076854759407360998025092380745530678702293065052614801504405923677182317980192078615506113211928120006340255875518557914412776576606895040640457616908394043268950624306754708784012554370100269529920269378555413913479923074822903127813514184160015624708994617515916682803446946009345180596451511917486127297344985995058677514311900253112943014287899140926288616517721436828543708074802246477035065570340570818349338814085267558833571073603260194432124986901281280100525477390125554161407032037089075476513988217642257172923296139947544034832841709644309630802557114516159669664760556188544775993058674458022489501327833834020055383170616461235484957597488083707841571273705166137262394980827303539273643402697147040252359260751304475717303489816046011779083496090049742646647938999512946231162120061253785531599714798168220068486273924305421965286416496576763553079445113112500424146976674420746166631925427962971611666004109270235191357127456540377435157494970960283648439085732164515693648056248209725726209743925178502154997095108682452252745142554756088762699082503949709191889156505861276377333235116700768331581802493500758115234294289425577306960689236277226638835812697473278120260294436873163568804069315624017904495330922294395669366782001302647590464448922585850994689817360073754394686383169757885417296533296650199914226894227935988779385935865726790608205506428384239455115975050026901332192174428529581777948811485970471383896212448779784211033306757964618485320721615399135212742153769633647780242509756427792613163582201469105034619303913689871361880339757896026805726629449862390373167336621362122659336822898829064772267903343228389078582541833365494277131787641373861289629148459842837122593820818632773842271320097256753492044418593508395695023056112004840752573824123485959278650315462765459036584114228884300316277271214451660265012615870456607076200578910597693206009442624849741493008126501550474498180565316056293726585997816331609881147163427626376006038403789665546556376232015697317038253211518408668292446591397849207118090557674421447477336893981895644871533528047528886950297055554190184062879708486482569505844149742765664115116784949973741093906368038881778197657543726930447833190618775794491439712380339711196151257953156543028800475581656742685053096782370187523380104546017933551343493085866244623758405127667669860475234087049083631812417342701410261707652550334731465159231693515119706828021575261167951909239828104284713452298952986730867064203651446821049773078513129172563170673381821146046701226910816582042505498459713933531044324752621160530145121266662134551321083384553467859017294922904602973915383895588256747969085164294251905669264537600642976775416639993156400089401719690929828871234643745805584739108675497233430685530044950905169996323781313852869301113304534410133320237056979151477526210259218059493872961628147617353359009681881816681432125666544086101518159352289062648892046634193563676718621909682126073429991399753313956457004546117068637996964112526333816250322607593030288822475536331467719812408400996002738989648066226596524067904491822801451981235862453428843961929085032360417809378705474773090737797804888857659563496352435509511993736456271346417831330688874572200904907817826990098608579931376494240277988875995622487404129939653295695605434379033486484910885514121955017271946423667929170735920842464043159051935767125011720411745252253605127790138498441494362629993644093012163692195950905207849993461719633275884235797669116318915460533961453272735858627767728851892199597628359787371056057073871197487170622442824449145340824502258881925045882590824299005948595673055741031964722833375879475729358880813478927227102429878698231113184222778905860758460963589123598394551592204354306665646587959065970107314963983983036339745509273513151479831104170310792488128297334705620630479711153311018584903764446722916304232765213017423157210347481308300827574276738663937965262123430581587085327964845277732626326521904840826467331981866807650969231486090211345908193470965383918025365075571024468617235380822555818956182380222969883382906971273798766526695985423191926202363266264958652348923237681495546447557316351871425680548130299727145100839524085277674961947965893666148290356995225522720650356042890067625194281471268600888653635724020044641379329969939430653418628425196741679057627937073974056380916643067630333104120153871066963174882230298663740737571537301205472125572121857112614549914539216481183737586787039329270335495343365423549052287285818375276438990262283239503002912180591567059875351462353848832648566213167863402291446740928711911053534900678640818203427921192054633488047613098811557371672426685462617701351630559553797431990687500443374648519783194071533003400684818135526878788973714629920704859661674488961707438878348910259351160848759708674433762901495482380827971039175669008627553791069783665782228591078018967524206753831846001574613568972964590736514273092550246438134411326461307948420736415322788239392923528039346394556320842548879661130261836124238388559031609011041281766647670224211835180302336179053435892115709387619684532876659257166664811968160728849054372820702588065022910626978726528897219261614655888760950122698365914514312889581638991475532941096859562059115260685028956461743806572549716818476638232535268747966184628029032152857434601394630394688837122076524405402469265932570617587196213265171997014227866290248915377200611649809699190359490116344660233656585306383360486833611407992809166273090920054045224824440043841032858933612302817766650610108299603402068196254385388150440959736412760833566679052451131089444806805419256046054141272966305638076927499624754324801496904764123183913094093365050710020508021944962717134273622080915320778848944310155434771189827928653672677984082417164858039541779948146556070771233543733246610736968949509079749827347053041755856792644089811868143946104290447140530510521044736393292738013660624753750841827531444541543207308096585262247018290338339526622250203505066289435297685442447177846651735886161747526608799393675723774700394285078818317810161167696970628189310985849531360311030961267008389519310797321057687334450538761280539583362441362827930804498779984292268845869538922286584668334503031920986816989117203649068154472433393999606276226498110827038039608260502580954966627785368369367246010804629328352937930683000722650100113132142326501672241837604487205211787052533036117018638808991021371325455930859138831764250120114370791572516319015903192380799915944959767524578185900961774640518789221919777295125102584791502958171817341736715930915984207747621582441851449712971522629825816483112256984074931455345176969397706505712357339721698353876341019675188248441474015914074202169346678273832373609175107578776365700622267660123359185495809916907123515255079747662246781350248968398128943718921204369527123357696012758749655122300377963517835866133049948994538584552226900515268618253277817707683889014546188992307446516854810846601755674561415933575544289798963354981563078406990063476710077340848029414554564843211497099003374699878755636192127091173744386516900849772693625858750869701790049525408791091812622324500817195170894711580931540257671831759826199844730121674019428259683150943745255704936125778612669820672121046791692610248139254626510606821912097698867783267923802013441004015202852050298651073680676340400024419611890612351172240157965782287839107790063732854181735933062889253541521594498149141304837746193684391959844517990839645808840128062040956824325122634645018891810992530705471498474484279299693118060793247298093191543737508072411014699241934481068724570643032274181508481457653143322414171885851366767423546293918746258607236539523771655443137038556516268237545067021043681778326795324620632121302420722830404549592763568669351454256583231905906088299990698788652259049368173889109770322671556116655747311868574652697619480929460706037349385773606510264028331487861426876413245327541810041055799512244118695427255213976532141638755983748358677465772631364869204715034604501141915036488581468144162963275806948794370511083500544122818136853853660574011990106185314817385569379209641995729176406144530852199374999816834940438252537466125366550422286102149843965764424734599097013842069539274111478249026949728982621403219425084964422196295553522958512570567819466309089547995116381715078712765959641545365197065795753340576269624054990516189002641972504791361484399385172109426067611384365948582572398783927524742079189285953276802198061645146245688277996626130644717384788819839667382238924682141712155250343497040700201507799043630539767261809224032770968882947097181607394302161498663292788649397303437005658253396267016879486507978445513539837791776622866128412681068801925180047677298001785107994363190783345121859265479194556922083207226175392524128792018104733798955038051735533818448944805908370217307853708768721067474358874235749377202051953502381827715214047312313249431596885926902449223597174327191370050657212374138778049477928332154876857495643866322413208052872932203404612707286354835414125104780163278505105186316837780065715416195045987465245583098233400070160936109171173320938890806310795018506339466659380030246810560238837782952109127318691486384579248988833826427822159712271348400143424277579859055704629077651565356318785607665118507745584085112462785525768674939930215997721784322188824730907674131143768655410799958001384489608328940828623855229962772527985870298570201318164905768698195361444183120233604188927088529267029568726728828777251637025794271520314327307366100440123667043336832382435434833958892368092078178333213533774419472349661698169916774320947478550631855301093369341884526817199638229966015997813255904223980073689620402868298591496114331111282363840223076576194549245596105464644018426921833575941114813286784672264119201960485210031158263247143287544533026164147986422460198998123421734835583187793717005694408231358684445901987105227237006926881946294853087044776566328481581480885199741000731325140768714454426917865471624173362065562299432063235292726850618637222917294629839662056650027155254503062599912350675863901075974841408939568398056803901642315900060498323264010687689823939936294490027076300835021437662095377953166396175175099844106305827950245182454515796989071777702389455080087354838855680370887716757912969971926353020012994239068762498405599269782160516560087795572414484756634622937254253250409099711574646698426848000962601748947106274750731775311874782951629073794742703886741975140467965604404005286677647031291443770150776565927516562607466817418839267167759045615195136925927756892925139307021650199298986094136866282217994584974128773415211722948921497409413336724113717802396929798877793640181342476333068792665828867736629533232975140762087745446731452422768455286728876731306871882727472750678291551165674831049930093525538369898849099611764335620713917765492933516867643693331805203065619282680281289778062898700377610724466077415741019323143199952011857819479887623825379709227800430138991617323419898771093105777266339714544884793388184797815318651652720889538810550744937692699847870279611340317994465853345385859066904117687850151943360108530922002944404399788839924452686719465644730835499212423110191092400341660205258915037097867020159895457114905704919574114802195449891656665802983816360570041458287243280631975327182247948173986947442400626770710487717628043515970721952429216059703313110874334548213808228968061497062784757219683552100391621922505286296951214221564165792686799975830938433254172311341024689629727837376232440597003641774051454228307250274801888939783243249221518649357161192130073425570568545529129801744829973837142936606632297404930332347788609471141032251609712752641647579187358961977200536482225097052404148926223102810810959878416332500505514543501778459917704172222746571153300390218305413741102667766133652125286121345574086143539499424922198904087387606330308387834285424584482315327597098792941876632804385693395234131384989015165156720483181603019998612154288352017250076445041874636274380397479735230142719463164511899121919490058069144103041923898325097337165034402089268274712226711079343204234398697859056837927165210511291588690197694359714880643314131088990811935483102245053173486503793055851515534833566927533284661253591606936312886090882124193171934224749011120530436037891462183596475745183380177888492118191614690748090313893112049220836091044848324464477191860566133972244880982204671761215571933278294464374998487451325237992102393258580035220320359312226745261051578151449918713239224464210720375842732040879953458715991757234350835135654468173238773745480719284493472771256063220069102389112536043652269576046586688782694043413488469655301490260905999496622034549680769615743907811498694538483556494436857736651310739757107227415369438875516229505970176175188536583580311034607548604120021196755150514644794892656064804106290109623109231129969373095761823842149148756234093514956802613366224936584438245015730129024471620129784029025323068801915689072301470162708786380032075673437771920801824441931966281739821090822078249391261345592726990471748517475650294897411529116191610691005089805431779038425177609470981830969857879447173557556942431874851761065038175065920326540276848596479710915511103482095292821287967258520293983899767189140010108762264352454982777953499954489303303623762094658959360632109488411266597952392866773211747777595362265418901811617168903836182133901922201835039776519361458751188827690197500072888265222315478698206381128487119619437887614215103011428549510771347519791147398287465950727451568126834226497358934900637423043809345515862150041743075915149934138889425973855797400801268857795130497721300651286893758470964441488075039176259247027884147755370503501467184867014033544347046795688577837631701951325160179011581294223840161778980700368318161394942163502294950545954063931500277956906912339971356178645900448243664745170008515513946179346542323586650668823984377226804329277969189869603928272862697559481477087128094236342139679342949613629370660465872361789959629651749922660368798152057004544433735855567428928617894928806710081999976370268684358980820216975473162466316273231919449677071755278122110991360503444960590500420404494855052018264078284327774139104094002649698386293798880370293297693538075346239861428576687220827027523150061273409728299290921912498177086410679523523761291059994745758692464210477984676982898841249504215395327825419460250513382504846000286858110169311484230158506883276992579348951799322158783060820982894519440047023364333290197897404544255914798599697344825164193131208721664028309619777133068049168357715867799257281171785870567370053721104586899940896184635654175178745847594470870580939821106432492903856147717649563078427147074360853840695313884643112163129241209818239446539277361455690936625684843496156639635927785632713677926937394762235297893931416634929720327449884225800213426650971661851265541765423465882427193360621563618445569813920132264507880805873076054998518896829036656416301069776940884543819490346884675090253314865955690527107238994461906650720164930341288670357880429412166443063413508504069348665103241297593782573786181075134389009507719004127002247283502575529766302180016379154338344079734017636478377419962418930011379191997818159140090645966551135513347553273460720090540453591303457316756364064079655760125493244664196444387549764496300561770771443008926296511956304961157144473936854902525141799964989957472296246099923234233370602139511702689486626021811881673632196224935524112987959607546836230637507439751945221276443317175896266773607929954241987683071382415617054977795127022338131885799849846198993575450462804409515314798981670931832904308581907447234585119196615256742716748248701553938275610541804555786523681210919967320969833918509556697247402246086048714136962454113407969874116622028854522476428287096724656538930637042816526215114625432449567729933412382667612346172518174469806663076577658517388292659859725357892094242060835143699770916493754184613628952258344638896579319911744422914867303058748832596009383218900905466581976415651985760322289279789521377939609552800475460284287025691779152080762827053208320615948820000994225625544414548737161720298802037182192571330211085214844753124780362786307105580791690888121160390288932204536251529346022579962165234868060302999552426837080080225523411755151336038132421110466391685576641479882096606319259451738972734688892124095883625397489540150372039399323240305716086926248518888637929885997893101898993165036886017561395527579508225836879474942246963912579892346951326211130163883048706374194658898528487133278468765879517660129994945667469534926477579655904413809576348419955264034951880171216769846639902384928566569217749439062076884799891207996812548297952669392142978669767726923478384642874456995682565248873624133056222465013981323402324497361880203290238534882104191629604555614411913035262752502847996610422372771291289221559882215732688914422100486393268549391891847985919892909105831975105317505884727106407235755362182565397431667572491298887537420969863901296394739362690798211866633092959013821731786891126202437874738273680689005666743109516029864491972217563442954286965803106444314047703467971107048285548395319346081290180046286640860566685341474944819634770629033641252476208426421904525679721047115211082648299060868821613018872487542657296942300164048053963356686009317419268713699540675904265378619002534451941785191614027263681516979090960018714552944734249684047227669861123752310306764338139357672486816825832434053218948358733785787539451312595987430754734276893397934377810791045698065198041243103688547668215831467922690321667162993451667837984415177052374244414010402562849513771267869013058523237774519867878487651658247138263372154433829732913676034375168096583458235456942579569209164409045219451406795945334412628706891424154815562392271483483338095102112672358894412968997029674004916990677200282417967609097084056677286620640438518271323796174146515394606270911235488357809537893644044794993177117700330594478903614058089305758389758888931378381791850405499431110326487757959826483244794690151934618418012361618528176942797415014210838538186420596706423251346539564710508027215548342824667608615084473813400517608604868319302916289812672177186691883936612047174744594643161716607056675203852228449929886004839627943108599796321405063906876902296158238473131807288737415785644943006268537080090215807593810695549885964346199840788593125864238744732349916322289036224219619016458586939045637839663417989132885125780080225430809632690350193040846714195929076958977414310949173698502246392118367460784959322656965966182814954001292227473615041844480956275419851252175333793303298492441815008074824728310891619590760634910144344769980323457232275239558745545114757352534891216396775695778555643593730170282552500709825373544651843173571623113492067447660733439627708059370599053540394367948680593356089037817402100305926284492608181188231006836721808777150001967626886432423246439217696593502839201542612462126492429408461559494440445611660174795406308033583449573455851906952473123149230408650255404087111410744956494642738290899326786175434099090359624919337423564448157934200942298506506427168503445901417241525803506990973642994329146650888191376816024561740909635105910637097139972348576672260178618320250003310414942768164028006607116520245154477212698771991680909253829261812645518627939224700518930800084171340829261263041594830395841476502547856309433672887876175940856708669448576917979517576195321860093466595285670076696375447288134653075026740375261950335507316064175760355894036637360222500089048211526656576296879014076128909679373113687011966965326667073598060387696398491250837771760401681041456398693603728405476861654057555100122856562369162646987497756071873117984388322138163100977344321575639434112877721715918137015704719991668954263555796575951148968169059181393598234571466172227592532261862000993875354652739591830671610549408191859299029241974813720302896763373611649927210714488012004855795960775925373854606549816399761461375919043287275861353026688940970489536510988768714049965012748004425969311434483091529617077076192086332415761340212624159879521500581726521652109162785857233307597114280578730982681752963209984145172369510408787467188824441795001780991281307975136337465797594703029473912106214937004832861435165725448453762133147023904240040974133727566477238732319830591818430151920884556304280641506161012966422309616710825495277735320476560609637675872517827665334942132597189826040591192140469651760002974499658399912167264243733769458027196246498835124331165275578791692184331401840656691361282433493877661910736637518168266474891377842281760722068745293573432795858619114261658898955338797152885471964545603624214587609793119441746152057207529311603330349320947776368443502748731368173942616663214664411925205544520605841164206068414943261883495678388898016217884691095178878660245637214906106719819144523049954000160540720336693053407837868172159287921610008731060132933303963836870474041939841022535611441620652141874829364234295413011540391137741933283863195510428801308307759183069594522455393637900357131178728625840027414892210976466720974464977763897970872453433565711599398037554864025174581741058827888624840285826963214749727099315328855698992603951621151398732171785822706609446883536845162105102403446845233502792239841274741447770805938037673346783011143057774978222120831939806384081210297062442330672313256206382866094471437790553974540872247338691184540157107478275094449552666599080548769124539531301107342279519556931278033098557032709191623359881714296810479700611224192083285291291145061926663293348486575743919282028567859227969591125571733561600556925525640414022053867059192025494498638380704713570113257864057617466465271916135317508141575001871569075940059982126748740548480859268501423001896600454721048235225318520440969718900261282658625868242879618710509193084077060171502120796305770435978667448514852442829616729428442373138467421376921746489530573975524210844434207554783773303053140273933998554156101110489728328457647313545704907555632955437428454403658085909753035611213568450068228081231718441589257564972835113653285416341352736598853337245466534076832497698855805940723328704082842718565500543446271868299934762690267591664511966552900854631722476956272297756796141342732143951616826661391248972003990250350290341082708493000188606586851648755677643098078713081426932375497917123086133847006192603377026936218222047004467043624126760929123842823226513785130946456942563474084004474816835894437159857249069541625282717180996681468845482176934152623149417824905333282162191372887224059699356264469326057830438771988368258614668323674835166195291832456884349222415591366623818776436199051870160224259283336063959009858027479438903098038412175609373162943970064790271973352925707476007786259857501174412556808726204005740012679427064945301241074868233496190229406313122304380535421642352750670624994442674894019802945826831600356891108736006052966261646519973817830924520613999763121627198292377601098845898525779600678945390811919865118848186048014388084831384735805420104653768837181790906842197922851509982558882852406411189063115537792679199188632076547623222159350286551361683272042961036637041881508979307553484484419772256248854408899256191333024822170939229166671743992270135503831331698659637435678746406292741209149799985929421614447396461733136742298126436586171284518458955326781968580737240913510057787403491902356582881849124108627355513921084059906931762615515983704277826099277434101191334066842419212302763932682362467454941067323329516319905699298370410671603003065503829617397758618815017592288952715163949435967247318435109912790819994200621143689885881831423916772102251827655066616392257683305169343286042093057659782450359692282520322917665825542678842874724965750958517606727937175004033322034207865106468884848565740996075893552310047533001370676588392979960994325620420043641169890086649440460688542461343922884913690158806587210820601746452264966367818073215452944536822466075340016342923401463002919758452249867980422865410979636764963936690322306599097470082084053177310310229327976309821254001090537666227264648361545133706547260379603909297546568982530150146355536869254846291008436166978171761991543067724832345538132438892858376685339956591483330131307474068683769454820605604867763689645166795660975077970699797911706900539639903828522463399893224392085689461347163093822518407106393420645026220908317794755387940823372617127367344519700231445289345633946519519464729838438173575218008472204495772812930536745981963586848241580350975355002905091295327107103052097843491127426839501304268010788645635841292494680419857325876363414513859305039381502463539846508453591736377648114937527562300341118228745951307297760623036070581210057760613629606998868603146451772084854203059726461127338469414695043810691248175841271108892744926830290664002704922499588098823480413783425138800500745590001026514062427068157046438938760113704635199269339496272113038887045247208472996029933844192900587948280549053167709492077132173176873375977470617528498173817993453052222271682928163876620195964924536805096407168572448860884157485655554632744058342818499238044783000352198167428687661189112602419804217997542854559488548844529771912264786495456838922755828334940950105894999426040272981707562887341388112489838860203651954675934438083098593440553343642380426232785915068292305077398482774052169641934972453210332354236145437427491198133753210539832225735019428650825487084814956785807335184292072476842892861869812015628087073914489058555786716473092017418429165936520869655063025515392869971245744632228540652955152843660493766167957722028520678672521324020254379490922327712551549294135178655966804926749009587756846877228746802578899250423222933786252599375450380802530853069934127775648150154455215451495387414344900029070493883323327206574070046328540223328647680116911962199907611173030785036431571455804349267891403696076879312737023712636039131550562133820447027752308870263110470855574051713982059382846828195230451114956771501581644960070646607322620751503594004342899406575121298455770494544813781809498869123208514111202599315809414068227305446428505022486868216242661710630999287988476215015874853751925446749439560743303516966095067870729203370340242272756014329478306880961357318064278561923057452942869814067925007706544543214403215733621981949414209452198858914835038576245643563285247379612648457613058287204333605990531803645220648870969129092886910068473410236652511627431441534427571246777397098429809483032044295944309728446625374224796924252011757185866340361131336060293080710302621371513849125665954950725939307471044762703103315839174407053598247331835874462637884658210958011865967783590657814649142938655341184126719086550250293772477069654769340189090892462008772606145181280446378120662429067900287440674302241307583696835563218570742973396128467058149931762281604430857991585319479495547622297733201032587956829316785593102361553190645249261260241571299907724037590270697958735566758219734821228427043894920951539332110130338447263656188857819787262244466048821499315597626759505690391281775545962036788795069615839954676334332829533049993388587029881602039250109267840827523406367962007358971829294968426735779385980021462760774116823789162446954808990292391013162491261026006043644529597242035021583980386380687320207033814156186881636184435226314761035795196006843500941674845800760116887541815033098532868058328628251489783294119848647337124633203203120890007482661486897382449078565655492110349247890277961761591549536903900489570632022935074940723327422271604974018297303671920404055497168341538349007679038226618620543482359764453366672170020063716143942427735218526758150631095587374300638929646509302053106857583738416712047306115431864252286761278075202981255081488133179476567142268715101636547528724049891762062744531615195509015638914573994454071566095419730018274727783036788685187411815988578488611779000726665973150748817647924010731581742402422055975897201927626139793543825365096961823338632481940770869832108764470504668861081102886998439069901503207668936818818611506037509349515931785714177943358358341001296720638880441557674895461693895384715796950192807597212633699184721634653670728037166380769255878714674588076205620860515432734341608111169467582040163003215371391114306216848432487609045035875715960607317170627531280286948338448249577150870422817680783773493515038492076115166514945646653241363677659009265201810550506813019018023011637459277454362301529942528900987753417217287373379492300536786134897774465142305417700594555448113904511479501820492128799443014959897501282082522953532037048260253783512463698124471223522337102951029706984615663063986974009525076017594612705456676589610664793274643144920152451497541342983802524825940952798664377372081858007684493134509846454332821656505378236836816573319758551766298842385041828743248726041689656991926666883210621865810912396316533479711616083383004816590736077114793603346776743732461868378863111164930560730992248588481055256175540585590104960435097409994428890685182710974616487977260504945367300449413237779470950138724781861196142051113862224964219722380579523043937865090487154137456580139140697327282741600399311842412162148132309315727333582045703688641720767711939874491048460857161763403197410643808992539519963235130100584118514063827587336103410531345937578253126865362105362763939188058230806606442385230619775946705601124340132589910413456734217718336978597132187249402523427146051307886301002131696359608999464971734842793855558160519397992782234905623791551318171784909069042874785237954641862553598735455614335492009212592444298604083409579852354367633927057851208189836005483261718636934981184524671104567409858751247861801632801652524006062557846630234871768833824706148734427747172063728649573964758437246799596705351613127429728374661913931419230723631745776210714233195641105389012772344153630425579226484529460759133340924836716476915046168735989144522192752949669443136444752792331387026930673927885026448127704592576616614123950233866064375438441887445856015892583805501936876431989116616950714670651838868418138542330425970369308017392572506554639893761313710750086703589213107860026901636811851318962012407790429029085920915751889373967648551569660001483345150331356408619487819481203265088000906768245183030512045930966315300438924711306499342802822190154372780558070705318429653799886474750956828927739362367986986811057735221445135464926964899276198876582291545335015287797556978484151685428753804964115375564731356960518703214431811135063129231387181569695643310707456073961315579843560954259782418950730614991702940505849714030533496615953165806727895483912046169529832551311201655781575375477498979886704466139211257440191104954839584181831381529577894700596031930236848172801977221653836784486328495770547739981558818151394360454216236684531647517203064546267365800429104100600343352075275737574506870135716984995312976313330768445741963453326536174850496879561443354621745086440700247156381819160625663542262027899034753303363136509746005272787702212687059972095495400669138318731474692826460336176933082171457785704690987539122712910300225191239688785977084328608482876029349709423618306577816777047456944704320915931094170231892249860727421645777648465831525194135810714717181015633090894766499272977920138531747733163212768568042436400956808961396522000001567255157967058292178966786689154033766464779162789808077850652572830448885139498059233850732462975065353754024441069004881729842845472082307141925312208585187285793086591451599547799320184341937673595469000360427283821486834968961356966139571429073722568257230718602577132657607664519004348347953189677947103270611251490558474962221582555665616269404412701505387027978027513104673176362743676818123222737376838218185962511612083856120360308588696275986361776799443287438246141742290490311294669728326293253624290061254780355319471815722129419857142868733342938037268959515517816262787967678033546878846417523456527601749879232695665336812676133784172318960057628667471365692908342474166324652539988562684498003650229808752104661423281486953604359023226487281802617559093137016802619620727315714877910421823597643684560766789594429531816270605740706919830728135724262073306554102772650806218386040668845783116596095476060103436400754817642894156575363919321405310857968454028554486834005605755512393385794187028841201803466561733155761664405852127065760047896857724632099792655814381018197841929898939331470081773407041956265607829744052913532251956457193820297749604293773404547730880180554361528784849491844389114592694624570876861065722052111645489712038589030561160206739837983163726801295138473885934038532727891882313293327270289905324453915549032320822450092136182243090907681894899465804824915075077242761107526272129923581269139920011133202154945062356878937319936435247089532157547742673431961084068708158019263264881687691319136972487291245292506836839049827997119954030796182227806726427406504972526775888404764957758667848501450735155017610732069596430758395626735590119359441158556929619791853035892223049290901059093914280556312801270366339179479084291121434496319669318099781460773369759152091734964900864011096280596521093515127264180453687796896577702800991243971080485517112297039985513771924661890639515692334062797476331775445448896727769343445254431077116382319032434737342887206086127738287236305085108443447990629576665303784426170580153320912654270663937060593673269696838821617822107689849369205286228397041028115311310001079004352365565477717888963063651330952960442382757357102549305475411367909272185323758041466867870301270369246823109502422157887342054765812983949899270615907395691660583761092996417410079190869186622814046101452135841041623855177240472994403665021301723210231556709152674813526051555678477406608795395478698107383406366638716506327821644443896737434881919708850794488018260091388355934080382080967016171381338679987600537029144342863706152910894296088190198335634654810638796964291951715004577870021165851521000225277172623570008303497927727357506811463750311104695923515068222360250501710705822083695884695921447244150827676607078391022368338818354424832166931460622783976393792209912464125806936978847386603329987865290333282653734870401069580004793452346199146937725930620208483307284504706783946563052385332818258383624502646484922941040682212346991109974681815727078591306492612416247086132626814103444403509101439988973015727346140156287505565886811331217413491250848874672670252741961743921017005412973615085006532833477440204530399051977959995317340039721727646725709027427563132044717035200450951815308096913119891781649797055616355326235967664858102858285074955444564456065121421260831436756099822504676395660664160782915272021776734819318588812935914061503727049327983184412013102452765284404015599589858729925122774332657986059158723936039806465459035319781388341655924368165493500898628760785572117045492195002796617039285538175117040302710681486372952553592425662523874748924103848366516717770234231659594918637062243650431952025360142845730758167192963994466176649064981031157425441355486967974856414405526019412711465959039846266282492827204006459085138606610539387869918931066057678792379185211264608982316959285724126241178686433026901708316511052160239716884416991176195633884538210032163227808118732628061956148669444652626363662379141548967200552514182381303977160341682232781609142192467906306308770135119877534542116566162871762162670899203387432952569400384018430447640305820083100379604102473920237754298824903242309213111160137172169391884680297184867473771570718937866015732746145660739749999311108803677135734066221633130964181382449396123126270001826232595519740567257969297607112244462289955538165398187706530720379332981061874947561848929636708201320406536701541516726059372451329786092470760887513037867388796016272091099470413527087017482894240676122289317212315348510025460846742503949405441185124772156443141265199191807404924340347018928919061059150324695540934950434820268567641866173131967077033008121215264288727938632545353063665793569164620871143618805373183640303976945518137999215431188768621456719960368212569749299256884849600841247359052452230361981327846524767448208094250568689051902029515279367173561284369832808779609119014145316647381991465797933440913593448369428844340175135914168607734969990733045291899437208828634818127306277176468038626078250664754441223287053735169087582642626875764568277772485975609538223770500245682973297233703581704223119318315048096594276634912724847886960117749083841658605947927868553866071435478648609517436245059011974468640434572807690803798101264644951343285241848585669617036986120232112625839356775753349492071831585507469618337114761283239100400663325667796827361004188750499081383971924407884581003349496011557526751516634129859929712977696462091129526888297349757938907996710655447125578051785866221013260999248678799613119130161478683389481378471595596182953025975556994066865769606658610661706487829463718341152927604598877437325565284388165995750884353853895702632941456522601016305511321396961949668531471432420826110413840182767707116377482960931224934415240978191651545896545864514656537018880378472673051838184675571277182679705525877138659023861899934510736239289890022095465461467715101304965495868406890356737395537769401848189858056309224971255158000695241837749884885647624921258466088528110119441009810363731330879463890634734085221898742930099972412963300047413550495967438142652075993897283607246970052097287299186441976097738148012656472306555410773258684538281497457867261071306492638099301782702507509758070413505619335964911442070104531932790297619088812369526107739711536565705067315535806292049885621853803672799626965512669518247948533616483285206092656292012458005339128457541606941222133348841573448737544053187305881845733089480087278443955008255823400778370381265647220059576824767446436561103802749027569169447193085980850374535312079436986877678938117996742352715285908639034711537585385342623318579208179748345835093057404713788928416314541547153586845299694841399866860382048089382219754279233358268842517784718759298766445688879038483712351634150439385818200502989074203376854042642524585584133217274170352652091567421383255026864906173547773906134032986166335544881161276466582860601030046126560228685333394463095869357330933236585049246368876937474710781650956795231584410768990382057234348062371802468440835952227476749099975903162638143027679487101922540608339218652275017673945492400444536754347163236970483394326959328474357913010936770821946289455103082758549000313830986710737256794148937775048808108942793157323277580530023166797007413731533364342174738431923658328813183545786822692796751355629833517522603742737882645714200059035546420343155321483256158608387333193161066631784874104346654727946809231413759638220939343698227478136892787174459099594869001061251030068283833923644834991463656735793684768940980831959354528810240487041739079151997631275190925898747728547168150219068664671201883179762553819203867581923426328739924750333955300739185689608400426862590356369361724567731078584205735422611939512381257164078688631232441951838631161803640666266997554152625000268532819761074827090910968691181526657478532445084095549115862070563827158441258326741065759688717918673347839041271525922927744814617173141821664493133233725163311477945618108016414571546531615691669664484127730742093100001013658374255986308867981661378915218600348876727503912078807138757111981456876248554954348969265370127035162296444359064461350500618119539398138623558911833245793056126569544039958389714789604796513121165331834189589587917848427607275915581080614217532375064123954922078739492329259287452625903125610225472759120585345169014696562115209516046566082757119864700033242887480039711809838760530296301495465730860246291311811556583780433467277337654660713701870348316617498242217096093302691554338652749077052963012320859701182725060949065167631288316705876668533112094357426645244121093003690341553186701338088087715855152289381861717205077983534918660782986045842034272243888622829913471993357850567737631228575933068899633706559043293392578664617573240545682958084049395869368300602786492819189113458916124514815053058973383917393932680229048007309656378687224299113778216303698262889404647858039468851945720034746168912133478579938010756617840920950343579709583013773199290884046710735020871389423627778514709939823220016433953589130139451285368867570802394389658959432398495217466375920591921047253217724576752039268129922131246972760365809175717195601058881734153353173465285537141325170872739551032621768542019016672014981149350699759746539928382267022461027530376133945929815853883943890611958660592535111600971015933608684103237086104076408279655497531923359805455039395303609349187024975930158645062200522754698995031658740047915073299152528682990799206574700412729255305137805001122786805511135609758853134229477215472425749472439200575841973215660812272296632691353511813817661023816679327268743003570932448946366220454341285214815467695733396325939067564942122025906548419691135856220899779166885185281585098330922566919925114046188943967903137421895072250790978472534509469453283720528788340075938166975193142718288386833670623215590909424522227456860754487443553908172476623552086238395237667074617676509558126436663615832369553090840528370834623435605298059805092281913716760543851441209712480350485444171276275618830564996025437718443689658986239501263880992005919017902101377797270900376910951261824485145317671505488225235466929228744415210165113729340556659931559576901674854450833343650484471629806101152834894223956325815807311582995972795369049504935851115115983372899316662290077975447149972048813098082656515052239265939946036158299275560470142803078149824422622753381107975979569636761560817827913922712661489173246148042332652579258589534324814205598328696888845890727541958369257084522950536786507568992811057708238691707557886575421512728676322048972201524812476436329943599352852806279076871211085606179469937698432457800700011396696810010571267961988791171381229922417457387325627817653838391601017170536915226916351083268603256213416191251959301548639246451138077959979774082785501333340109268571181709135613177512369829234651385563056023391743873742905480583995167894214933150525205821867972388771831760572517509588597301788406851129676452542738540882300724762704899230600783477430538979114077358761735743565554021661658197582653295244512200834915328934412080661064905059123028466430914598541894386812983236375734441420564004782820430219890431452528585567729658733434036248441944565197842333077598188150009396112271357259234271355415402098630628628854169401486507880283458126954388569416406396252287264266487323887803818542482650058334333290404906284079633262142271251720634030165992697969818336217081294745787282580497365501572238377798118038816209369115689620637995331301478459279932465408242005431763808346949511656934300840592379029943065466600740274986835064225665725584392472085088755368953748124265019716079598901411253957248153864552346951668791773417821977467907229995749288211068647309299655610820536565561568201707112475877508847178782505659306298812302946638717592883934156897218686539310115111374024771942034239096765998218739438627307040998448198146895054150717796637561073215849276617209492102843982705109261667013065380605233732109736417360283846956743688113614822375674866638360516899357298934545879899295249708416921994154685987325908585153725284990703348377879083852363489146433663720996912440450718106578427124062165072495105833302399487719150445138371612654022081886742457071881341817369934239221590382873930850754214579229716425512450939752063140371516433775209201799723864730882708022311243994625536649010048086327796676723250012797416287292399578453295490412817900513106511223900706104490841246012344967037579736277764552572768050917650738635354740711700109029762598216126935908472743203031469918135788657747110595464603134644627660373799866304038884804881324342017623037221289037481266711952418818779837634814542961852827012251913837504794603556248590865758934892123271734358909379532332416278755867485288197956991107092050292730734881094044918705727290175856946697784413793109816170017114034467110048313228454471401512418527519915223770259507678044998395346881503286483888567966448406269178654446666654072837397515641946571726315301937632346017829580221485957739542571061982148052471451280749839827358412491331059021334776576071142492595366410245480806968422621684001412985710003216585268820677001396927695629695826358024187012553878048199174241527177175960688467523401635719633452485935233690195040258922465590382683851566122390604826187911072307374049461975251141757154197097429220818051546698624299746337481517397315186917637827179867553584195020166374405996012984272184814583459221244332347168575112505833058247871267373461636520904104031133380506622682527665719078253825417266673530653774211400262103592744805388402491124091881801771870724620845906128094333151101832536864657683232353417420778848560305048696541576906294888775247991327413884606742262326949118611896784521020597003301883835485002447651492214798554061712446013247483864645798106088924794447393107767820104761972766838244265120970808825432784864019719422262633810849783819613349452651010900451619561900968295524998940306210931595677217818350915222988489495043104062913578193245986719917585890295934823498783567320627980488678982773659945330363080103764204300022916269816798028372150672700115680240656716395355310574155668492436028318873522152491528013014868533178282172451815931273026156887034661601222299214911145697208898788605014046576330296268872608177152944611213037108673277928375504826915858739157323871395867570761645841046479127614854903711822765484222393487519886310722274860298608436008184279529642754845377017952888580542999837577079435623730604301517822788988146296441232974734635730532772302676610540574240740281608280240091133146353695055151659992944461648384431197112469394712299081779376234476462559113942815517731110489462262057482781264685535849672807835375643979753178713137315885331803103290960063417768691073875181482811638480360536205354077626961884772188374570257815579503187073791902170605325269899138161076938377383798104188724722988690612907147417252235233086031895765787797249771603905357554968055918526920572523357104691894578283967365092045513675771859490458834585136737653454168162878704411281281357040015709331098113692189630496701517595294180326605721596953396318505057196280549024688445463890488546063743592436068218509214309827487593074958083295279805673772086654282627253663950908703524207624083286642737837360600359431558272083357806368810022305719638245391356775915326671754416982357377905562672039587771775926111968855063509833552117582532272241772289011476733582030358526835047176246760904930727158823026871177451261478639905924223845474318306256159932507310282816690597153063222328492836323297389066219818380967275347023553389356924922308151183443149001514844441788643652098041700774193757596043665889823850376334358942611571356336782110810316344212483657316718013907539034136938513601876415865141046071401834642039072068949598488863295558500986270190622920296169121701425323653288879467687533294378440550157165702953541817997062025538697088632796963696990251050956843362058631270831477275732264236851852197141433106724580389868506953202192717481660898510860689031386521733311947179827519018156032543753496687887970448077251099426038595739453662912062117792628584805179901805060411714375403211150631105654132846689481416592694639425699921415873093928359532227450187614543742073631739883551554484195693136588433832497239373596672944306706834485420833562834081592504833962589667133012669725467015730198515008983688150315639572813638281716168268707886893406563776172607320467742181230401148548389903542975335678228855581789386448041311316055211347597268035266929935244467302053421705433253365011842239648655033445638816963204411436297445215713357300393250909337266457417280419728827117368553056577023704061469603124454919982198803399739835111371263330626415003617901407677948901869001384604999221950422346201817400158289838424654993803369268777423520399582962871639516046694450493212861485099372071049769328505518182445681491889060886455407135419434055060838898617900139860811502129019325206755293458574860216742606827461246877451198194731652889364307022790199392892261282926430154072735077971127417023044364286015563880859425603515104974501295318978503758926503094369260276791926986991346189798989637943167004209886180091238409327636731717300391471818580343953757039886858549328605786782253434609900357369199087770300547614127341983308903326883028095833389535006331126382927928671948839365775452379975921473605391668057965491297334722965891313048814490136004829770668196193240988111797428354691690555899855818851686856293712385513215910485107423306408742961779236879380365786911238434300948621137536869109589747102890151153828584171468678108763624348107292999383754338161123520525858149137838097770840265407640282669494671841446509582009080015081291519849915670078826489245969551911712673972108879955609440836828852826784492812631383062054438264446669838244265168949993470009392704874635039340600800948688029594690809468806800791919551854206469473019920930823454776296766146498038663516941080948632108940260107509830340872167894912526443545067955351562191917254610408322141063191034497467762763500784382849147432683741644104207214731638192884827454213463663235584165606690191231480241359740857845238147151625860237728770528350352009973243239918450436896786638482918483087804555469961736877075416364431939515605918318607561121322948505867897209212707334144612758388395453163213644307203124943773241978756907031040309124018687109969354032157092372382913589183466139720114212162234365548696031978552906236682793558142650258765145148025660278460675244673282963279283776557835008301278415930025727076477850164379536320124992437871166016468510436676048735748887374027428921594259144031895263969687728178661997245137238960921834107808688950193614780238919408007064512262568572675242155157554130169542426530387243353248940207294174893264516324295224676685619914652517261626141503017283624580397502064218043363556302413938925703001345517263640371440152270746113253060917099949547101960483002491881932318038320443100318178427797913176995101670147420388589084573785272932031535530974670471591130818272402378562082925456296914788003882460299776403390927969749116412328595950121565841130918170441188134484192812745033809937117781754101892243587169891235671312713745552442833764987601594147189831140720693078214062860946981769576020684485962186644093794159298511882094587160034869839934386013235873743787896621058624721847118097641897850441298670556578384654927361094612234491775169887029368521682466022700393119099658323599317179236551838791528935650170631439285579504161249329213687804685203370666293935751126136179629086679569644208561716341551133618975326728082900422400403658698689462068262272637795558078985050262662000727354211422160342808442201654179566027079610533181009930870207774766648613769725640287383736536064089711006798187956583710653472545583792090332266750922099199997975112828956072577430636364470484671634919314612808981191324153519715052206369711326197303337492581485447242893385983603155181709034006878542134417953564891866501152435540719578630151193236136210100739346953650635536738064047198619184839065643778337187625720353131726837051424921000300215186395531850009701960475863980135282269843160751336090950984664836176543098741559328850624429488027820517892025999106831385434173101404519769690763056320824884557901882460709409908697568287683876352492020256804542979531300873175447675395935511261307938740750662104488623763306584462760573924497485408119420521628296438614661380246642545519485311996453790243391458073721172096967102001337676448568493737706480715434662800972714993124890798564108089662017303586963209176623415624258437398574873359684242787773396096294897818989820669164937567257623352499375395934165171685908209432267943414521871723565995543084376692047595925116710490978197444643421309663902806642035208379731394682123007842492684271980268961100639743892224110874307615264672404428731116022533565832243576500884504975361995085733943416528755442590392463376697214838873667422409431062259554939229828132374954413594364377849243381064579790546135720511478563321892525836491824706867194065234102627484730076096735606757800332036017541910869751013786993388671107022666261677248297960962049434467399626470344296011569285020763455386057180527068192852459438535001816324384909217483788394332462020246340675381838895835315739313705905030673787113386698231002469266267366956116502786772822788802343229686715734347673685344768628484512296361751460687389559041041442407318537163409769314401073448081661796208515385863694344346108357640929139459157207306022352347093804090457989506943285551268489695108891273457840023372236135766749479484198913953916875901050009893386719386328527651003834724773612330445287973599531869398790109007691244491265751678331693591580981251697055953109689907087275348574224340901390125679352435202458910171856961124146362343028336730564532773948495027242958211793359478076465732770522088368672810190690318212723495063674519405954750273273631768022286281012112525166934006178363360577132798633147254172094290914174201927115058154056105478420357338972951652098777481456126965841092019150102091950245732552596469273559991547929556190471250487100888710961472352396847316900673140553979968384053828827292688550465916971758108708465323804215303824983692729970979052441698974451770828002759795075308249279491423974578555023478300526882518161411502972747585006231617181413061430924643218949532330855554647170595094974349780021988680136875238426464561110460939586552506166280701373105869429534674391039259478352326962177597613198488557473412008526878982110592229134438847024499982544655297408349227486609913861218691413917985493124640579196786813532698831077377850840754406052320762588514242848566706956558164638186487947213930820836397333190707605646113557662267442296320635896003807611786483242793528865116115880148731793430440673190509430153097280034726000630725193286423133102797454157788507375347661695140988252124533155196452602710744826598051181963436273172555548670384136444438744572618073722081661379380452159668117708721103537291433158521896275860674865037045542362613303077734125771985693953916567372798973659842923910348673676305372488894156346401706844666015081387621797076373535839654296411578035713508199070899059586790497035316677525884170212445238310476639917892280899536942140660631189155417368219441344487928350571221498448676982738446017974187180830134022143775702273614452411352306078042241285803260835040122721741195872062119224142477290027419766473258783037840997211458361169122323350109903795865080330629041873504433084342919821918722865359646208295570691770085690460564346498970127126817956887189524022898826438326717427091086554390926639055156415666682340846931942449449198331462023001771765126510718337357522467712610549893473126157431817505725714287200309517208791479968779917038360164249287436088536358767735522805574096163737567399675295918876883415289976792162481489352726102800685087586502554371183722733006056859785931773035640719562066310584515939737635653942490173306613986438652251744314902918084667137993865504382766303171092118443281268027635917626694937967890440932154517998224457938727343250724476900195760432760598832563546551487109888181638225552894615910186413637057827628187289863838411053974352458530740040303599090522119147479269799159367163003600098135942459868342978081715326735477736922404322811005708656894782592825082179954855183868012840997205397914996111731545577846673851606692518242800631023423932493478283313244992365997391788128891642296530130775792635155828171191093706140364758288107301637774511070675931174563313395560095317827572924675876947285568456424862719706686002843592795079294155737698098538667494582182676146432534251423285541659339812509042643256620422794152581699989594026482875108613712731178774572622809534699773830883023768886612443409197906146966608025427155189684412822188515770404024266828249536414390763031649505512015219262491971660869625625096410032769329452948949346061925922469774598131400442772242246500505589619699301703734173602187981235612262389158502561366621554611195026625259554450950634441601782148682895349246237351136607132497306705994717407484569693344289066157772967087469343903652236531388568914647093341768857240630426502420131995135060694547654619293298840980424342457823292340493414302700255103354053113236688676093274823955070036736626176250733488011584833016685158960207619371304054800172127227162367784366936117312613565019506512700025461330163745410010448979689873031241367274651704662252816627290331116128166626814198674964554973123299231799345595625198142027680386833042359810132126029843139286375446385281280912009617806228402415936397517931550231121175046155032897406382424720480036990508443886235623669056457419081290545879380841941785495780692369472206064639545334047293743960067835911593249598984960078690108994243661785132343966291465869043304276178227823752380847581335257136297461005483658611985972358895495895533221503816176911499778812418714723437752186929735888696803958880794555694989754195669268448913962287301115823385784787275455942371327620118178731697648302750596410611222575618535707584667696451890922602388684980785460069672641658282964125739705787725410786818637951746004408357181489806676767546207804245845923010858890323622199973601463267450115166560558369247197045001784234507565588709819392040504114992596767918177772825839885517953090980035489455874510025663432014393061538135848353866627215736267159083824741613506750992380806105646859050742153298346528426907264507656807585758203373742928444630721809434040638649437229883625361457475115955649345042969219496001799092185523132436158439166592186913607814665176622342514392052102911093491764468471903392037675359942985687598179374843228450571257060642084631708390852642290319967316188574209295258743554167077819290489915043578941787306887895480084566694213170460215041396075169832097253907610796309451788910400908580452805465128170291784396501442290531865289930500999729621571058980909331390852282399138689321970183402849662605758779021796514096307718245658584009656800881490335027263343987041987008302590738307528475260264268736609476035020712259731181302509835996749874195259041664774477766986127853841222007953469236062813044521503168559147203796780776212178586539611614007300240125795507800136738067743804756364411592565694886375815370700607775749627531390094472705895115634565412085984054432533622044797457516518014350194300468820791370444398693570216628748825012945704222417112011353557162553576502411350764017298999742483693766004304371420556452037746806973762360873242192514189043695637704244243988630590490120145784357692003253096117530746701764408051650623387980253400047014037530187171906046020542400287797325703797990060164793039932715102720757898472335690720669561122641115535021386947501438659966627115560922583742895833576002377788470655448425579449183134971760330025105176911164028204267671792456578209796402532010380524489491705119052368357071338533317461645674116750224369110597085194708803930023648491162549723141595952361650659836522269120106383437695389932873551258169244068710251655523570560137406196024947380145081278797494656419046677234263418764525103615939726790006722241322653828129507721240349316430923624259332117881634995935991234753062944712347741666326899459015284766260956950069022782894307753008677418738651267174436573200819734909345350574933858434510499219306502812823277594158363559534810080817703851535418322365712200162210668688194210883009840348295707086758686825641779026863266172434875811877671969003746603930857460811453123085103705768837004404578694027274601108227988600946720082081428743429923353740813326529359995952289383488634879525877867818167017757761728518601268306950063233463830725340897128814370622096812377860866122853274085184901868884387728975414713422824981252119379414607373793948660477589075448257290130011298861082429532745594001931258468558295652526481632501686328501387690806431487691683925279731665199749805109275115548588776343036841720997994724185865126173228488121762028244071241540445872810896298028987566809255852877813585600163699465585200960290386716939316533737110419212011296018787903034698109330158297581876186922446454249220999909449013574960382655406233768450381156497951136718537673430613558049916487385854847824566099719408921276595261878624958248183785558562019990383096095287344364144122045683253688656109884343097974096804381998852441741380284865366114923959405409418936567979325462960405220585243176906465847135465213721895327134603697347299652916215309489788188566789385500240479274356153858823159812270928673846424472460500047942712105063124752276125191300676720920484055474799610403361676694573325376087927287528604135219978456673528748003862437223865890571823913646955976407529878283176052067337788728252316170878295647922045387310981002334049998611286539051271132924068730627298818192551114174783310885464731460202388395392130538801176243984586142696546648544753154759405316318879470873650967122791916662775127750879506431316606710294243252217635263877834468385507543000111477197179833990673210739119372655003536634738396487025067769581185575222965285506136867597370413989941702449871686278192953813006141394030234755166051405765427451325328205445875280594242416791637139427387206485924369346004605829388128566806746842514303869798151872967870287044850597937426621902008625224428099798796940468988427092567255281553484481567316587541641558811007898395436385881795831274564180500874799630555764144491512821359641246461030873475314496593493483679755763396833382791911602224567416617948091002261394354084283255635367875019181513146219879105437794695466972588464561686122109663841913216044398191380307333746717129708090184472483676350386468633386259774718079762375889359946067373029822992797259579226687645223985902163730575441380153063017562589096057546646547639107218578463444129201932288215494688685817385568265755012107737607722226105993244993653899354059647339525183350807938782779322960783074724982906294656292577920270492024305959168347516765756494063852709778881980646624921482448736244075927490684829657974459175226153028416793495412279697213296284094329552716231772133802833226898403568034906988808324994317821540105777653750883494062094423205868233366894586428752871359018424459068122854958865760726404801810741904581608757089495232231375642519678733296863161598923565464085767558858221064505770350470305531482204486227885853827257926329075737732566429380353881831145366266182358049015040424046670892243012542931958251078792116240116344265221705292606438684125401033255549381332758847072307497505398902041476025516563720462371373167271561801718057425758092083946871811932237224132691621998703310313758573303712918417873530807537722852684302253939374332881366179570974187263923945883238181816531632566040956131905406778274165780143695631455080701544994151433320422491614378609703986944356820634275228646521628471143450473708496933255431516679753381118181871947339741627419117373827745345346661364631902221552636010140166158591381120140277979594229437533127678572582736341801936647843646135074642878161601815703913363399779890278695007250769177129463896397022837151573723652801059119419034546380204782199733963370098686534314921981365835414282721524564526816705002533683195307701936959251001514385826441905754367281270553283938395763504783499684835899309689423291601485978554045767431818362767846785996925874240397539577818825485954617769309557780892047604639523261801605689960213988653988530483837934849651136543440984460395149415460274005986445853148332168396136851101369693734734680438171190859638390523696969287214326833154678045598018144488590690435045146248078139965657798256243642146337169233662362690336850270794086270859141731874122200272806297062289996466853898365572522271193518962445287486686946094305700435373608340278661972609468549422464635915997041142252879076893147758727049289330881111983654129822081745515714247155658500770675207721810635176111969846173921088682989926273278319676606326620868220417900093476174944591413754519258677062965779994289092708550515601212402909964514139500673715314076387629811488916051034211486305060307438048563860948522913414776927271318893388735029579055911620391299584051596271905664958792021790717157629370057646662280342347398527169370088976288735555401904247680043599511534477137351247415245258392111631000695888517180236968959696047555490994395271713713896913177599448649420176302233863386996626002263524821578475000523461677025641441171288533266448926424246190384178226246068473799729128736563128502450543592887928154438334444057254776521095077910229590111562507580086645467297290391740239315837935098282366337242266091203499171998111270094437868999502014220404368981068564586906361886143560910207360419361304577402079672289337663973356161457954732888822776560240678552860082596141935134050044645976308536034058950233205510412644788414086042541337866410652059566162120441672509977073603832842355466580716082414589047089729073728881377212081227217935606802851156023393893715089511018388100778755374251489341356308624361234210915780118381505852037104092885926270343384102929635759065529588496540654610403976061412157131180868568189626699709081954124596653559092836873474168241187320317980069684567036308002854789925535516398412043839518815090948387381529517516651527869922147889847538116004400343949661941557133995491549643401608999629815751985989398288976225367821128043115245876618925232529267533602677524553213546389169352096715732771123509899336788402295647892898121949198069939495997491636639368168022817633316509940919536443493503540970972211298401959430065620434511016929900946338403448744261602114882319682156946717353201762831878422731911058831381891413574507058952641529045176686020986925711681649942042175670737432541357315795467065581204094677470174796960769373074359335207286481981353580929516143035230721142071580883361241904788476540061102222905443617825477707801162515204270497058108638559422161896543941950464286139875588304982074261414800209248915272500057131523483909234863570379050960899965835232485741762518559594411157333339210600704957879219098795308939722238253854521037864761133499271399849171825137383908768158569474917289768924107774224509798664590345707865345177966935496196235800067396683851378604008946490610532765106225694970538484325857208970777210894961996498096965296732437229096177609015755921303451148505226206973451044489562678792473980755418445719296409026290084513873283055143729832382315816703107787803342723531178965853675356361806853727149142707382304337485217221355993164006927172272932812701258699264407803919960820371194634393300949599631196416903406795963713744055980125603334983535599103470310245077648629559101850104610551002730676448308506645981141527730030046342524948018633422203783317053601710837376413116482978322776844833109537013023027155034914147289045794177772123502322550942486253865852490320170962436910862109272459457115455897437439668389735076188448297036051524093873584762815061804209816332164085284192873104121669966332525592281984620611721430639436715024838210120328415253829927483756526764312619370203649041299191554746805726898486997124876577765195916090236882858325766913410628978683307570704383012435538213942281942909549008730361230992779614008333403593697233217564916824452739097562739890504624256557927302800165780172894762075356113137114789894781043976407650953204628829305084495973427252635488778951187905609849523029858248139236955748325531266528248387057923980053534504826975331824338082554914410300106860807003188489575173825138591711448713427680190529198594734744653697820439434093446625227162671951254765279972039464952751119912745028326034428192508551191796101763850515427705262324362114054255162695834454872729090053902874610423069934342806490862832040848238081340921366154453935432842578506971775296265690086698252542185253071944055818326228140504161915940515291255529715340665998908532173672606754131413179675337801059663907974394170559715777639245186720967675615782875871376215516056748383522797074940050529547133203099453280086916208266164842605355198795424718686580843802447904527589966684226647749934741132905812132608629124908866834010477581898378119579458952380699629411472725504665808143946916932386903480880815000483670682779053066330851768039179526508357256564927291265044893391268391222232168567473634330800235380840031868700768201918708048962454069298208912870809146705006677334243738017951061773740248745381079715169331045671012374117959043440891886569347003965273725794008922951595009662033351279416299590882014532486830815046296903953071301058264426118536854946469863019390535955118513427747007080276021605879240171404710690510054878626177078794640504769429923342357966261683108840612965983845135227019544936101188926551607214620746887575368736965169565968618661769701932700600841612443052435282795067683156489502553472579046808709925513056372530088758657621712731767301652585988226665638271417142426457973059740318353874475808013859138660257130921676674078825257387168080305206836857630414478298152742503230702098719564571561289793505971491310023633753885739147033545271232037064386141597001459125975027192115860674208908036151929975933754322719810617563879326992088037052766520665255221235767711654852786057469300480816978655433242124028015597556774790393601450735542551945291288105320699223827030199161590104424125183068159068886581070436774076134374212450686708935575546467908081987395041677622378883042095931869699226003647028412698178425051530192064762955014936701522009028198212320965567293389685077726841270334736976397497232065586176445650975857303215332598724698354726248908634007989483015583049928206593157323190161577296273979881621439661294441934427406614026977033359898522268925129557519058014628178870997688722164125744205841919640436489729917030924046373808689126831092998326984452931150185249560312334511096635934356386384321220311073295239614646643979897392553584348974931608588435098494439536657573097892106966627705738622871779858450997216795787640416702268966272240030504216752962231100969047613122353706020568241777680557856431117339935411969221585704346842771825627745423370796350598726329844613663573464382863104979417406123282000816409414483112334064985237200400108730396149942224517753287440649894070412001008696860087418544782671163672738777412295746052298872055627614713593259352128476105389595653810718394248031760460412388907491517518431273178269064059421210299917188759530616376769455223077564292218652010755710315978243564697781433224097839343373931348272740850127491204076727740280112318256351000113573773282895756790867421705734727283113007249134144089511821844932966210168002625491131973561684737345345514338458781913618518445068236645700261745118797528870951272764026055896819142378305092351750941160876864322950639631225426853730568607543208753833646333483096897428294882867934207113729971917487354546292699407799153757060549622713709702100177147618769185612545941913112907372958866141410133519065636075416730735162893765212235219824921304401050875278067520553186457280951014186928239026595192454299274425987389907934048311489545043542135149289185677040397815681929626107278511218035050909247350570604260819212449060377998388314414560787985182339297656654929742302900309517837702094796449948897385427797355883868693766985592085553650773920295822591756390366103790918699528028606265395327320992855476200553796600837176801385397645644128704197106422626401026829954025468547808741187015553470878967033974076814778072694774188113812776311220055807154684900025010528113351643100479640178331733637635861167495093361011544236731597401669099085541277548188604117061177258500236365983799005490340762930685304628328605511868181027852486687201951127754596031110241868100932267964953345654574780539041956588476685805467798233366656930762398791802090390632718594048460490270834769824976817219253884348370192948369959450523336007616492952186975706837286300498223083517711308636022746138458871197113133154162403438064642374587898222853979331796706333627255005940078615468517701596393414969119205758925145244382498947721877400152971520256013977128827822704786999143758185665532315527864851025064404353977421943572288328079671372246908247496175635996668166630444420601409620341600243359507378699462736963130929508894575717461438137532661656215246649077808407732391088650202655981692316063264399067667224114184667834386452134986824549354027901170165342618218280020323487712698405294041067110707833907870427245366803309018372732346586303118097869434248413241583866958859525443311124099692318645897759894202230626007266043311419198369650842317675427643576447401638537303308841586016531724202032955789810641906589220056881013921767504185763897995813806345160720932811282319747621940755158713047290179819031129941575581537669522136959037854664497619260463501008066700580959110652959844426793693873874347861696805541287987632764320960855340033146764353652520932188787912319932554950221873024578597984192575415271056563530109624905907140991090288773727336152336396444249963702265679624428593289561329560978844731810246240216170665017096717384226777591983879940204590626850318023079144685957692149179909851603989576802235860313477329752457243660239795406313769328526722193248712779235255790436359981612352481922426823452907461573900164307987171439917486594925849902344891332191750435079354049234042962644517789609970816948284220909108856371514559102644494963189391880818242920424405523933854795381780033399190987511687719886572737291802905641745180775068693648469689524098010165474858518916439711575262761750478709605641834883923032851821235821099919172707046489269737819783527293678080805312488646303279583496949861002688335246659539911765683285168684027452742853678762569132248067942780054555593556654245789907796713743663092503902219698498176469688563713163549082370717295514860487856911098136500602504233013218470237527797464417744184801143348444430740831943078545166228859492104558149393514677691321850856926754114305880505539012306394941070467827467218584722715136520053230029316641472825654821277037732047113422737994335358576130518602414295807806335633536048055623399019054012066264529311975309158335884382135432057342864750435081057578412815271629547176544758453609357764205524432709827701355060489542156507401593133159586131933746674124938878620525839665596172674239550536648817258753047948409112290502175277935190556787165976530749283613661516546892434947150474646488562085688180618754742447799304453706861345347383938495598196635721575155208473778732712080876673769585255580565436820718087883811063229461932517285169031506878083601394678607911214708879185021382567531902713682178603946657180512466944370654060618216019696665318394732422950676796513989818197562351693783573267047515072311087653195537068697213872433297681374131546273154284275735767453040556650398246189366732204487565193614612082893543781742903870848913838399280631988791723790616472279691760741003138850018965169552408953297681054439587667803028196807190096648200728770393450149383354417420431719937248135972618723498913273727239334895415953299071334900826680619672341388125437487070663141697619789690589144487285743402169470021272480063591492460541187105535188839575665509211570490785653897634752364790541460056997503903620626067888637767393956721381302855519956967079643562178573024461744587417526745138928314505428679000716027399273477642219098487616304305969965360189806693071322847670617559317626292666933862540951618977416771905313871571017966342355428729327794634266458632937772104253165686173770928718033344996643029479018623444301636235614830065837508977181017143048882101365847462079702500559812983732127463328774362236600237023689434916837083814881851158099522641205689194290909384122106308803690425816704571824762227850322731866963171658737891715849752095602364717393467012216016001398213124250564992699676717572194602677459843068838781209207868267057497388882086883176188014836679317594522476818822531295417142527406227851284786502860926822702534744976454118102769926660952483418738602032898403799023878376386159097367843347110584317474975363660135564947598040843860763392789139075061355167244291554794678256517235462000443624085754819343690213502827788554371855561910155165556088527423665211292095561053349236870523988678204391353266499376293207105991678604545382296999259183979143314507914504161516930973085018408553824546909008639096242853006542671455067771538162040391915088559268562227638927839716561308658590978402269100603969833281548466517840721580606095607835510955877562683560744451904769582172931166291980610237069829250400808859299990888895759244159448686183157754736910093834115152894672023756793428365121015353950229503284941176248475967980094897993690747889323373109659301289792502207728793338759356682824677785254586447674856813456551825045172855322999211198922102520264995567885078944563939659976615777282725072848184353753558391674773551157785858452436907436422849738441725137920495408905977244021422664743010557016132193506930664776834974166776784965127473897283500346215399733546897405420629244163909861078507892023321267671634372117702644941887713234744158595457926085962826588090206290171575224921805426186815847049652744103673451692383706051367235213712418904612754954849502010622109775694651490580426540590661862445692707348534004581975834884769070071159112368254685495142192519455064694980122630820248154694682396572268558129531110206009201851107004143309175121177102539827839840147980768861871905192540732190636253007241385455455433208994721278160025032454744940609468326697162167999043432516815351096484472387155491942635640286808177804032836740936864606944446761297206521770434004037220212081209355737083644709672531228633675858391621694023997675861186793500663977217913594461050216130897750859131176712873358488981305495557343726508677376548741045556406941447291272753165944206633964449281178418238989590709208932313720487170610302956111490744061687231303986619322031831749122309110180260343700500149302064652614850655520425297393318225578829640113393485774351705336312734868087538533005283141592723357299965817290763636942677159419226939858859023974897549538769110692237345867800246320394437915672370394881094326714828673671631372992805864049283855294924432880075453771341558317268513549895586527327115294491406034815158770000744959782272015911723903970201054591177851387624173977960535985361153487870150531778193962928909493137856013885778349093693797824582036669767838587142422599385616511843555297234917951743365094550585874148672407264484057795421836896959298369948344450373732759911900504186671354626809968649574074752511073383939955953013226145514318641819223900901697666903500484515692767297970301279217722356743519795180622137615239366068256741578826404091019800603718943132094604157631468405472682058570331198030309050764640747426238026979194314369619138212275932502884503126119571947906243577721669904576262810397938467722731125367470849636465977398487551846915588422479684765501770290650586908284051747182830103015788705592090818219014651894602888859145565369984241938258845113249059885436327048448266220989374565123668402421114350829507758508403326238207255899721623788686538581207083579915010543601087213922294850319650355304556230263250626714959867994590174148904377859229344008703301045472133860930856151658627428845898877887656758744990945532710486597219586598049507145999919626862285487726064690276707432697501483594299047571109884957064761565043090473639298595721481594933645161406363656664128207611119452719593490738582741795463858105450057238597272533113557303571797052727328596484279110523402073070190259430842588229003745830554767283096833335312423776166389276725366591320295687434401590002106377865037568894403918622865752240078648354210009600497456606536941279585494189362848127298769521492485696409828177363711497170506072327465042401860269536331446802344005246816387577007629459760348379874914159393434440875588600416803926456058659136825807643718256751586410193092725845769032822407223356513325041472950936891399008810571204029991127829230171684698466210760741690227326139558837634430234748968055822032471460453554584297991339279221957422826938501629764937642224808275121816817485741845703347568082586141883785216867403141693918981499267493756300478956607614202095632844574200742774839894874725317610478542455016693376836103783662787279606115955678868813065172351275130058531451778051420659148153205221543311193941726712141374574701366127704086445614212219096543087651538394888967297329467565941096913328639884098334032493154093686012404303513137874491050616850291299159845029249507328126836149048126201854239317459838395336114201491348900639944838534340680509053643995148642653620562088871322614979233551531104499191506286550358853100334065776252140073456693459036640781881252218207319361972163697710036358719057437320161972448596450398779642601741472804847195099152352117253879997949386903767923175802756808159041484510155294868348752301875534114290769325774567577055969459029663605824181823044316881321272838143590743743419552416525823627219863778287515354200396198238495805673157836220201167657508409414164316311410811167181726400816897675432632466094282833586332383189716327539572325990216230446923435968534471456234942236813214800041618517035731083886521011117796354881556988259566522968921975625510994095582196200384282393707351788827824714725050730745882357534335536962326718156494856514275148084182587162185296289537261389821080412551981344717384972314743132412566831748213506741715627914783033192865846733599491872972129954827608869647819836557160372073089915257795830253896846185717935254176475546403328766158801382658481220348371271559387948244643673479678091376590889195444848001647676837466374831329545143119754651062048197260590542529740567009118999828111176177396294829398670544964285983033795120700729324465858431179122040498695682790792999173820912830910164992229671904955499476855362185164456218184980722311889069723826801914528822038043641775148838556984927212450501069122025155724150882343654559877692772184436005907170435699895558046077847540950809027879699315450410519657075224466208333884318639400133921971704217061445330651933695622918153171112073017615746386304645085393980506627619778512945200727983315387765937083803743129553631976047029752105376177215638900554683724933709145188068635459191723656722572786160184885186894645973070126098231114594626331571109484123142499234767124569410716567281511159241926771386843161321038303802075090130865378210391235176842349252025455226187305866489536029849390647312174599539693118914418617520454017634924818220086760087272729899919084016522109457794824494411390660008472018638808568131976643711496532864252855859847993043435473989356901581318721831607024536761496428390117367126297886874539934537666623934259490419997683239128462734515102992946640691589971828570311210106040943084124144262323046009383232901255368981857887021322521854558538783480750243569850896245803216559681791359619598398634302163877554879282242322828063762074952923171436818217822126921382271014972605532414253376102832462707671460663943401768961855269696957414343406331808084279594559292977278313993041457870040488921111327642991371090222456297445713434562964196487356979075538306013005315196542042484161223798454540055464429023774326334329407319894512913970806628374542115707868911182667803082019566422941068991390361946606590280234440317923349876924447224750437976763346027459967068255426854659175952005035941572268442698809018874962743144749131467410421456939850014622655025176697395300372451792588536051577223922840084845357086046774659466908998594269820685602345875416898888137593334779880556877212282342713084751536282706844037867724120579715983213176662284355628319652624466662006931140652521925209041280233330702511077213967408942199972862284318321002450825418409852807823578698911340494422743335082783196892829755623429585552616344172812188520339385435240771289931934907321065289565883016256360998982782905852501032601513275233093411608812815226738491873008109265194772776327444348481075326472459618933918997627006159047638805613260456582082720825528883060031347612161948623365070013278969098887728306849684781827587516096387586738307831447034286538689298083043758069060480202966296437160107559147478896082568013842718558199873314787315358519515132088098274437245886852459673796611754097817249199705088130646678096032384954638548384009759642185485168062523640479826022169411262745178205345130171121952989822013210033792581706601684975413088690904820365293309017927576790013167481050630095189917103890934720956865506399927703504479230464416028384476892847895001905503757990277116595876283457509534082896506665216998118497523634175125256936883849226637570817294553688024728648293611217188172005595280142887479862492791887733273183380878835576160121861033642796203225609881429458744199782276054250046151035401183461349890040973124166964290916976884948060782147831370072867009593049168784243222438525512652364584726295117347173375527198506472056162736569340334436547918422825204545411220874959949420184241769385244673590309820467283433476408525801773071776239859731740941010018006813156278654775966803349736589360133077149613018377217320349495729451599692417245437566237373054173998566339563288249384282091872536550958819688443968841008035620705993500242463505430326807496448445722931182372851573165207789801775067779679451647527224594544393007846103337729730555835895191444062895625479191422076929923010039312554695372262306423038939272361080865146453896955434980304609183241500732279593291989341263493220168655776071059554017492378259349051355749003096284528588172601146972128038270181347906900118507304203698123805733660575835002455854513860209706672546423763767739910283958216065347651556050603588076052822628231960758840321937899237803608627761926830946676249491308721304057789045626750678211132048565957043644726324945135973480444680057875726589442178432882373003008603219970900423412513341934874628719662665206288604107481721763130123490305942789242490731366046952196590217453157098716016707333093505016902538607841522169129914538085629993385701702111877729479162864874143099908631264510487769625569642638792825027049017542096690002334222292706406794383509800202446219094602276898123071504446046764875422048351041766987635625046555680147124030403402380195911855143533133753086716807712983286807939419214482241878268846927736831785004874192429622083499236999544465087249950195975793780734832523647961905260533611185407821921090270313234366115081866773123193365933390556699614969876909589952858307531145854914144973658533341641084915243438783373993977595620539090471348305044431569787659168391288204351306299006384197980695327657838071688561811316430297423079803651838093167972482800606421731408983169270632215379488548585689330039428169544225912815908617932781680775125330015843033024725894746746659752755811277869044124251579348454565286219204159147308314035877829583430686039535067767725987150111604563532812533686809836697960687007987496872932710688370177964456622711892620385156931236602932131914757774920804404411710388868012550899304652485253986886477618128687724726327097639556788753940016912751204691517213538839922533299196098951590871740152882480354821095827238679965610974776394660595585138457825164029436052653786728550378433478594246106982393166355538136513979387848081795497791113292904557521901883451482623837216003055464723419543078325446990015381402161322215037632195969430696050824498180966217692360531049000476967742999365102072950286984903759434623700134442545378429443991728142675954421733017283047094626679169839689976338966336310343163340354443029080414259522879017846623005227282642734330380902375562548794120183935533916074045660887002114939394577912125225952157260113295815441173725672342981192510504028673054628858067308399021237335129417134927260540908379535899617299104284463199529486090366948121319157636098567718101115791014358769626439263246908952171783535619285323085095067139249406201457165904890505978465774417161522388817380450527990190733000397691720957046102054350049548740204070099982978384571360595767862050075820262226115788097372097058382363461969382300876834855101713035980949851820931167587832205859285695947576626105510407381980580040245428151548309635134160383992015542559696826304011019119638540855653106742840148481000093409078024783675214917017031921307163631206896208816213471009350821571401254619090794302808414065597210769151418758363722197034539967468976473152316199412710055489042766028664893618026523090034692559170452074759000942492054727726901329738510676599802830467086719661159844648708148069527593418737457148704683123448023399638055221388577402616910296019056537761133920552588096622141237482345483667092972195850509697730721777087917176329531901470231003234898867157788523277275007933301458800827936857911385689614988666901999791417338302279018625307112674974300761758290619367147523417895827687910134515359495892311719146346349301247091968162701638952756199637878030919076297242605591861286946001743460112883648841012605688857529490649398341916571656871879559343791283840780200239796346738260748374537615401403740430440355755036713142755730150881072843685989078483131203242804516196351090744827031667133077253092818413690767102560060268583872081033972419150537673011221908484066491322219903727600350995173306625751995432035255580573230235381111270846250496836369245501803858775491431248404259926432464724072073742838352978135811767280069780980108919281968670778549066591970681831973653011723280810068329884183144484254452889540616305150810468607695603174688437433777477499765717250749776237953458927344604128423218195256892700805674016144492223154504990727480161252602703761241657374874499183085019819794519036540125213634520848594316017346982268360898857395803470824341465337372554602569739540040528145890053370827881273672757398071056787464745046690513273957025530248373291190699920898650615180145593543888443587225098334054972870668469748998626259889277483570262511672043642473343553388674085548978314755344368847673351146498041791765227084532847341028646112732619603768374498310779274835897008709591106702902415445879617288214786092608412148525965274116157948316045761850299140215210823945176056185540040261538800775631073388826957291867798909110684874502987066599898813515770875650952828052643387110018002207818381201567501056828599445709914046051557582998560049193523814062184371043489631615424747404914077775249081700184517137222347278590972054894045435341025744289755087921596134747146683877952198994727903761705383347671379763728992344592240632153559799558428793523618788291866335564984334271145516897112342803896256220313002603451866628268518536769703730616340842388421608925091512659494121449404811384304198390465517870801463338756122639021727636858806514606436821570423466075859460792442990918721843300735079751378760087296158617619955584604880433097332811629371155868862177429041267552923159996529577457151502903487572951084166829098039909583343331696600482450326015689189754309686910256963138060743507501857719605776830466081081377317361806314903933970030408558408502823737110116235466644909155623878971674507632862751163661726784163317855769947831205596747872463365875517639347179636414442649025550641534495278351852308819743881773324509983026520748167174546708009055727735465877626723443305979991854123424253292723030111775424279289376129020992063268811012038438610615418339734979159734791744873486325999769423044124689974874498925122531496966274324221229775405557317627902156967869153452653156112451237454461404239541065084048947972119857459725905173847498726600927788807274217166479970263246760663990844421461212548202160833766437813131944122545791242042131663533347994520879484324136056015391771602642094093197451415631181807977013421478190469868043652348315536290071655002813562168169280061367171730117551026932050734610642637056987271827627281792440811132808548400180831728925977686230423410906615049861846091692481192774500030844389807371134074305454302827177926915940577203899866063804346886279296144145557637710014728753014990493071873460589797545844476058548419464528212078065832854274340428902962849383743058505904883876782898228445425020064128394798931641385301186662398051999260819454451631828762652683659686834011222059231078446186331767224075986016689348845998207218301272419461712168803405565274699997885621632402601412504825504389470552430418285054786324644136972331171457203426058502354369056570594309809040965644118862930860879719589990666419781812610516666212390550990288170600839245083773969789471153323107270047786048974845619420681295649603245574159953309625916766236346671895998380538753810844182758533622612098693769190702340162173508467316341911394531232147823156271047006574294827444491010773089466145841424044526674564419932504812139825542350588369265853312951493497063815356349341700401349520064608063822429078958698117402952138420055205150381972815078901380037887995657760875798132354821093136982771563900609727171661188668696205216943082215905208822446176961007100856954378524539827580966799690081295075638600415780952650543060412836290139037324425605465908645990067760902665952348803613847647913085827574681600600294332485460502555647232180177337279394820769340882655029257757407349580859721410862728132048202187740759938430075397064121345036071228988989277126031558365842961883547794712657897506193053786146374537885995638216043238875640772940048183706316154572954542176540419533774241444432694717636608933808370700406536140456495686592925845631210858823840611090899186717261109345885774062460342942662928402776068244854624937737443789388718101363915504593186109098707567358303233989135087945039225505553229053810562957953298101243165484802310209572218061770400916086602088732247210647690177730673354993399566596026366126181864912125419181926800101083419285184848964355480371336890705110520092998036535369949008382071781126717825137243895846233737205394743329303423183468433907451977972602374636544611090990044251026598059108372196544901949481014604638078303059294303184930606653208628762876688729666453966738194711800847765697957815251368705665156353423582056172065021923334558584694487481163780350889332977166030780765922962532787033241767061147087546488505980308862048332759518522062505225578373159415346888615267577985937752024170268672394993051212740567491394853920737980516620586573991204250564428479705891314037522713881924218952631705548302190560208547767525002033059800550994634161098207639767340278504110860536871490315309922303829419470731531647599543740217369066628927417129084950822230386601554637405979912338514575691779541170096242642775568503849537257056971637461553453551779252811322981294785156229548166681872516905935887849221001637976330662986068565919553557922082897133952575953638844005472103840854476942378441804641448153383507843686210969228390594153579355087769887237474822409590561031280878360058110633377101900113836257106157438182734276603154428707772471943588990313852211186620324233527021689647568538278601232097875499798892347353641464944863267117981314995007038852953172983311210491385594890153188122006433773103701464334380760191070305991462718340214029266629629304586408807308386100689249608829704283097757527923520079046167590390203810421404579002185489096398183871966373011240090400371638446029005328680825746675703489414736880134738644979260951222118375896146303796076097519254372789693041667655499739248965524701960049531359458989916866160943920454369438049334393410258341384322461191463388565728590929629386539829301099575927853043947652427381807344865807388963886298872525763696709988165846354274566885124160003307331380732015908528557055461336284675468704964094773552363206298640225568844892078238021707533749296858287023605737134274737644615134326112086055364473347365017123918963684202351108731487470727631086018784155553082724531361315301357047298622436003815156969969192395049299141658760259844379319686377004346696056789043091190296948442649166450202021083429637969292677427041380418280643897447947370244719293470878843899764094727901957696274551741788342892351738911014759263952228145601195971928628497432057026485764656790810422226366188411350443938504507978037728794033169299939260188285136185788837328555780640271308651841425046503733456834340741171674908573540240189346629321365390805303313494086082142873015804089118065932304659825438933256406246693544795800612698734669114310938983814181645510924005047952739645084454206017823926936283425331443764032572535207898203630120106419080380044256420080062729664709443702168721260703516848178647044010508521260453995440737317577989794591398348153457992390857300085664799640721240767136096644741410250329851402674008945998080654244670180583366246752549341013075868282418354175258496930148329537506624472165855618642611012697375638186850685285066598032335635358520267149774500019105933482319216145910210913856273778313104876636247296852018573220861810765030761605110580451477915379067110638027451185579475855705541748035129190773554965157334966875775997984991274330794508140368228145317424031263188513436241937945400828712987187880861376582339786928700517607038905894338559876812024442760069463002282734069461107322903775381455362279152519987538164781326385841869151992040531536793568200500914073560463070012603177060222938515525141142029667000418127988459973117029254998641594621211928572155865029379388533528000876279813116559844222006519751833103604175480244309928367897261805181478035107532892206456931491431092467831252551340334083013922767117097524580482511598670273487277930802893046104722461731578673899416828474982160620769266235584441497026682582495667200843124522864414295181429388606773623023779163379075262082421647040010381063168857671279922962464687691933652918896862270216690900208952384594848825091283605629675721220422656123538797471810516906880997232630054973315229974323711175500984040797725493460409633656292253700655369563013842268239354278187638570695224160527428028755721688914364537211357325471879687858391354648500291240445628372087980382351933530467032950506555444449684754260596113710128333393978193667912145107528943243634551524501308141142585947458560165002796201937953188157929856740426608912274161235222435804956398034042228624914638552197218387115718828098861910638030536955629396345239021146511547011923953422007675666213076704348673210098221390457422640048571859586646160416693910074324651142724500473310299971061783705380956424412804267241538314969786386957730280167355099269856260368715411400321861649239528433838903310183846078670936369130085188663934631587097194495717932221105487352767369612853912325012400959903323061716665514791625707309552884255888868789280897338267657147000129991345830220681511439093416447412937125231377627899369673939394089393917691318645666041964613195335487717142609794711777506409524155656442564979333417550644556589284148899237641818562099719190281866701642537437532650224192262559106271716640128822013200638797342837840425727923009414948870003028821991803519403013407882370889043249066477976549846926767205768354033219077400708593264430074245984539868430587283326284827549658618780102197269809184509822181375927467226463698836288879421907967706205757871369669268915295575086242387762410148858583058113730047175290586386907975819940036012221919003928466861306092031442348771698386750001978327243964738574280049299676969778503011486129151432745872003513287855591837632643906881677090958102862909266063253613830732400528681769610151603844313409017887237290639711983091613302127959142678071265053661412671445668258829362689401261778944569912779981955940564128481630587498038930373841532052923497182545363258121882477250153100768384967843941194988707190688973675980341144680241088656169056393602661196953120988854982037888768257065926871655908501482082035979710843505803902882346814957725113244979337838366644635057723735226541427187699742097285373055033440578395828072314194038989462548610671216971053148670064981024794869147942215519268342344051448072227502588236448735007066266722568779211737323880525184316170004212835664532989028585977637207004862859552017963454574856147028558739930885018313511789113203857342637227783322214744805946632644078170317676222294771204166050677859891887265530989253286802565956267680059488312288409856227836650158248692175011891311113129762953218693539839023403750681657863403674319552097845661587563480610662085991750502484693801699089787517696677514071755078737718949035695618238694779121158078332342737782937041047626488708136245161747564053962739365802269094148974203152341912076347682129331748795815081341140100699430817504355656013468348341539679665846777547818335896909107256006546188918977427682199048424775167412313468226885088141563555675290788408987994649118333430594783480606860350015677058084382391776012906007366213885581155131914547738975751044802169165687390912725277078727059344878445426627934486685869101553467064024748064272090167062756509890716551982062888860422957300163268500504155428106084792807692697353023619938742180435590107485934538248415667598317980181175322476787829571638448730190042083846377977890488021107290195895477953233637001869226068808578872196651428187219868839425489765867346742281015955177420559473002277898760641985525404374196400250719612180825594064217332270231372137336380313561982512068838932674332062972828398754409175569060822808686739785952732996592854291639722173180102267149423398837729267689012867721120552730532364991227835553941485934919078041498524865531375420745795724203041298107051628633134139395801373179974079627727071037476064281331628021337370380672562794408115302130014204602088921477823757451695151554913404389384432277478152981897424562391998628067887297143512418180175435459303555083168573153978304190771686607947991864804405830302812787801299661420457976453004623294791841739751895412148031611499865304644687887484121458944267984711905946414979264237192477842232583871974132999222273176723688339039456874339673802803269368485290412038574006634108029405745985931725171186605761173800573205869825949846602890277987697808873194820132653277069804988926230676575740121391685381454467588583196005202640199325036775630426183416080635786278097611098861939654724709773544441116621355079454707708692605317035703028997675764941727744456129602425077402297246941556811890333329158283267415696682851924695477331695506872960457686390377653069512723352744609569636493185969599623965579235426047976332230508711111554630952898137761897566650524560504896503695255230283088705063539293694704925152944172827048982907803721939951721743039297876367144361545407789007833447320951364250921733593611449748489668441149459332247856632084499175029065239906329516310750427354289563434663681828211714405241504326154619267685832009365816840300998636890068886450811604473553001376784737978205833606510832155062370857594936236828518628140973790455457131498588435971517362533813528550999614749600074099907054909808626790583158237834501787259666004225292290238101355759440147679921738913824608299588431662622786300168737970042388580352557319620147886676996127243157853199879612489787872654913484683578069803617042053203666412109497225019241458244366121917191156229664460852300767658994841994249642072959050067630946554800486155674784415862520190618766692415457143779840915323757758136031935917100651062143369660899388111910646294523523395205741282541548401556760778545275269445942249184122313842278755692389463277103521326669011512210596284138549228447888257561366606772571611512814807927929983906823875832631042551710189343076314054720333587922155268276287989282147583909661101581515273861267202675898746274364715766458030753266022651315494852776218653643791346717114400585311192747859965907163570366956220212207744861423517767844241593919701063441455165273560996386726457464030744839288098947876900449980525348230616191532508984370386377176929062612472181996197405384936269395628024710914844404200967346427080207894313318263891562982891168930318642514571159545569462972455886675400420598342586366335045062355225987751196660584081287817680300031566852692796814855238745655583950917479675717305236135365799135734407391526128788770163091316146626970803708298015153982727627275044879630510765001383169180119764841087951435114546789273766842212326044464169671242835272609335439757923290430796616788310208571435756459705262215352463284720547245432200802879449907572759281201323085809546840849331935221974348077077042739252633892713642218739523286599908950601049598964596300482839710066353777345409114782221595628290656595725548523266864786075591590549212696693462080260465103629979053350350943529442624362591787266391297036100857869991962774564291745096715069793846787976261948226484661979462136670941586971169065629148144674983033902007613051743976220299496312811592380319194644526866320803097038579917255430593662712232096804462201968680934890726061667302937882597949936915762559847151625428917127601878822718465358023489255922059498748579883662104722605473164513596943438346873816183640541454664776768251586268913061910867928340086369460122208456021017733117775431400691921320810568340013092104927286254459658248640254589284081148059366057569588116751943250989056560673402279031641862347845218941249579080998514007735850469474219577628593336782401793738412326707569012438731181241550617519773346912341211412411767566963501073559151249614500172599702763014327122727433522218322068668546872996189566598594210645405977788953353110392989038177290105560513608950876184273537421234462903424805955431661355732510671933279502627403873972840642684581563345745120678919303766452180355748971299184060283436071115988662656801544673910052601280944505655116937613171733457743696968742594760779216226829794379425471626688478174971506067293958794774747265375583237217560311389794673547109342117939679321556399896685186953685260615507274978646766982229119157386028540663395140706366565432303538160167858421260527029671907424137923357213698368323302552102903370518936109474914491286247964789140312879311897047866710219169170106181043556046791915450014029543025334377037385400872023249885189422966296692233418162937857431204646637004053676734961518119764337951819753689195254020049924159215808467588872267402019302975425246759161305374965610591179713997891081475195501407469192858240332919092044536141706802522923725443650233886753699313422333435130968445600240934667238505450022504335976648055259330538507485331702506949579147491192719544807989453301391600312792187626367812914482749140715538903006881734162605061836904384069027359734994091676752658540746834364052554204206399581844831844744497864717837633079761411537183374400178914051497104476954789165031490683344417243329526100790819889793544486634477754971021221658735817026933355759604501871632982469650317668536427711316934885525325993253508009944510848724713692812103854543219399431718666952737924884994835561741205598176093572641581030082502177533503067016717193342656864124222039942694806912180007269817573779312023329972091311346589817310246608088090850391561289109060085395131104005128288335347669649533537567094841667750182286993940531586725323756816345444609931521285541411632709891548598025310457155781185917124229129766852780699140011504149940222770354203196774134528656741819913287160399373461540388166500791729997938945852522869263113306089867043296153550308907346990162646709577040985894480999568147371956087422694183056769608174491970873500810341242283942933456128029476740245828305585404219588076688924290769157238237410416348330481003710540979584763512471110179346246410166032668473349279020945747215161268937648402889353494849951285555397185065943825030669584548149037041386749033505550605496295639647302277423649381023007979665072304072456742984895961563121876829835173268823667302335895867868316459469243638022974089283674043746518646847107624678943270812804484206112113364470715361444692210112747362097454507633966813620114665688169503994305921212113584029282102056778788321533067236351087004796026326413170949239376641106065779210558845453419250982559559681878897807742945148518402377474593321678907490512317810781676693927757720351858100176358146568690232491775619243998096120462402036546440674401150668154202997892859373981831533802907661830516653182316328102859406267175414089252254971600602287721292898782392394310769080772213662472411465050936893033361112593724656411474773319650517714222752024235017102671646475253419863557763123216633010617945402891168973182830821020749041477675805641777162786008791764142474044027551859979006981641200136649151082992709981535899796568716543170362193678382688309248257652016229652719594239045360060750717596390219847298618011548214679065093132272838831332564522509416394770189869887396159420411200290918083038889324064575170285520401924346930650570053114804656029885493586551459553362694735199770133918902890450438232593131883633177384805623264766658644186092718458587861797077985542775831275584724939380105515051463725888865439363452359477847641652688525281153731838574192505030802244308897100048174552743906075315772526769843356110966983718558082520370630801934271258041645010130355283798901018525388663599270730619623180291905563746681003061072932594638151472940864945053991856644504808967778837310296564149799270223236361429023531251710403096743082226967895618723597941613008613571111490540757721618880105589077925885374210552463256886820012225885440045070197528088679190746015164847653783876359102379651794397208400610849289211425037783384267178879004938801516625601521844620234977519042895113857905100117284006218560471574310703159754416184678428199157700827504503620169743547317220668536852459137202797235770888091563724754309369627475281705440908015397587058601954700689348249273965254643702655328598574396854827722863682795538978794342466435955637837063565335988772859214242902887154121017830568008923815933058662641814639050587509271132182389983997129036365426431813982918232266312303213870903527215847057148646731207385501371248656176939039510087736528199987525699507697208874659094907267593719564339135836805087908861350512122799949235968718121321290631344875330736060863472670076587914134327931501994382406174846353950264563904482011282999143392138608596178078817976368584865186955191720146749520556788238228182168008023387305611092133264748647277751436230621127392996734730288201703926241361296879505307591385483133288461128315681986676400257001672007207497380451347329216051306424578766693564718471082317254358502370084700892410010506916944007574087274490457024136439651450347454216859753088903029890840358929353934238976478780753186356466720888767628108387219038900884575314942699691394747902817707260291919431986402458064612083782902408582471326129656514261965422793324655725754858198633184683601211069721468605365820793026163256983590626183965889325074510253994752633697621513911232211653824734048501289623328248102947882010961096523379663816826752032389268645148952994947027216870339311301014159637057712551758050154485707010728473605902223650443121415151136386388945727558548005718330578303024152817776907451805619592898040284803817003769285176335231752706778652711744357625694376497232873656328567484743401058568503764427066876914849112997970401053139750990577011656387823722118818427812555231990011461552283146297028678333392627222502963702318263148362271126825596724817807402894308528509194780965378390276242434664619215183726451495142474895016634067932985732981733064460721965933299022270467254193924011896392085357839998402210679169391119590170395874097299948827425059913482295322749906774288027550272306582030628671973395710028936983068423199887869014678733749282801011406525929821215080464614990164767376607761337488029055691888661379912591945861432047502317215927169246337295170043730736905420895600456272182087870701568083887380826153065741846916233375708083188228028810482401194861164188463604887718775750266123857608849336308875447639368362520510071856518702860592081734583949490241158436786750421261420964256875442118444447491401725017298136691631603893019540773714344448271178475527349986345824349104164988003279457212973161801641907271296981836795404683539190370746516649020588102312404760687022781427255212473806409069198503328304596452279176012907134791178011567025443431692056578782587332045364256360397987187609903823111352530922875428379547091339186069279885994145122753431820477955929989003816124834786070327651138921573316932384797112504072702545738842274170166427904278785472772103237106401972582442753358463945767368048073964589731723387918405194918694236926165163353785632440419425774764847790218261290074338062570299748030066048161603519553416077020190173261939145847422927728961644402940241326712317894761279745816457434877567639151265319133963444047511724537763515478041180124913409312923882258340102475545776855490037259328684799979352937683019823981878794491273616294890755214269408091989180340750913568389611739613089774997803870056712725065381371737084876737645708895647395595012118123080207708849362141010941080870584996895222151400071338814685214419436555447890289284202568458441412685415728924408916182445022568135534520234691696110968848622784055545946208103953616571593967531447339803350862164830845985292128114615683453517388951215423168485281945151887977399977809236229042262902076913221325811264777081706435225265835887876150482982849570323032927640230332851140129279150667047053286464828916684590915471891369464762612249888403630694360134926852177529935214160763742904310615324972002263849585376589909288271770945283647551833916341123572367468503182447989642275201593794967245303978577955024840128515624446939706734987027885881443945366914308379580382160139752944800399037028160049383887538497171849407504446330682035759442780004141644526781184587434539343013973180600322980928423942017491636950170594337751484688682989476195562722281120750145997587554594340386298732529248683044462589298683679763648576260275439345422483917683746025677512178286766664148882291016837011091122166874032924094788991835243916449681459430989822955341420895875281705786176673582317908622277374218027862140995066695448474315583933774184161141093699112198889634464209853865778691472651772392222588636987168769393263448130670159140497675953423062376273594914848845090381051447698577093738892578037476644020916797251116561793387309482423179478653601793269350294636061634642428431005883404164320991665519675022480227901827217219909112547596953619614688004594136214851337139640258988102792902347237390418695516357299908381519425399529157471682367983837403543596679717151100405842672968261406899549356600494025942040572294055377733388095170212885624796156565237786801257045508823500967219187473081092379456245403772539811283254823323642769384453308772438299042942759415069379516176339249647763902949247431029341913828048005328992335257620023627850843310842693443065735165588132164047374437908787030010241784449357822583829116346040661649844359327131054499882265113385847515694041495272290494427227761948212802956458754493598098967681520876111825654253260889378916147493038431952092029643237459306494683910175490752146134751958462689337235223152827616089424951859264222994593422770043060846146592420670742454844305297165066662542297684313829604070331190750831169492394201685855183265777460862392984901105484026781407834302013295358924077848429355517519157964569212132315822495836085159515705556022652417828694813297733566932140340789537895986811706087824599811271110532792249838376470916896280214940909569986024923295268752468133258009580485050855909421629565844137492646082429083549420817360485370864532805575007435429306490929221713460356512789467000690785633689865208719272505009320052642694042444567213385853344869023193417840289309783343406234819497575129681895847978505832710326819660857519159185018820322957469190371400422924413346094200542948021873106166685686672497043570587017844378631071798462878897044708218709237438683143852549285039900673013033692875534382626579430787990076106901170353614062380039244945822911290114443236891694846227251221703005722180076359535982579909760724906953072296958296849117358184745134444801005872260956891099874020456845099671260006531016249096203106351386997567889087778162032955418681436118128832699875017791930174480274686743903772759696010529774125582090915016624930730990833652855103220384618649741093487941492563268580277561485938635518084129762285102392628968856950835857993707724398309839607900460826372039218102574843358863819848961352392789166303919914845560229740463436371866256325305021829794361745280541002261276134643194270247299607462949185010263790693873558846663504270543348821845295109506490414816674779497165809683674796382372126427311884032556344272795561776490706630263242579654790330341032807589439101727278934285850337646580745705242333309646225254846414005071337041095470021963825151778031733446809305766716007920151958909650087844599810463212085679256861269002031743775707058407270024065893353584760731105440869481351808279898911210268279560800492784366472630832522846196473692160430241581916081356296245891096094548656184519611530424982108771760582439915310971137792211737056769850483347472905316290436431347136552560659286853764723565159610540689473171737587433433840416586466890349231283093153742549899526920690341960062732138652201797500023065409505933055622464029441869804714355119177803484719586011131882947948775555074596462554039610624098134472633796218378518157030282037022140002470797785648897359885834488686145260222236369832866087363761934098349571120952554158946795001444863729549272737400324961520026905776422877183033263230313526457543684441285564577534297581061819190287885502863221846050887834668881075969853234680966111378545546276676064780090968577304076838795950164298092831061463872223702173165663786534266724118002930875828848258658246900237104460894283574394385856613547750347343419131337119811952195976903492576363982243948174637646361465611137253049617569978550048181985953900455547251519762197996479328297998070247627895317282356886625341404241575199338500920693264736350356172522858368011140905872657782419411085283207560930702096670428028073437101120111082166666612216356731894557286907142103401533589376317954544723402813735089055658346875494446167771630595037354922545438741512056107031369861810290266505618764614430713693880494885603283740217476662736185173161095500988596172087033482455974007714727776939755178611143049168431702904479263368575434072854397063724949833309773824290626939102668512434434736193310257286329621695152205535935637406717522136867526581764448105459643786530492253920471663527562562080105640305339993708854511036742415069621674359051056041549845559049103480383288357668353960928811683764672991788001455425674097383607781455564526991300836414079682326618900570233641752403471552595162079843137139447223452525881486150858892783488375151724664705676937790649290511309126153519522876899575245340075287826947899444015578757443939640848666863934733001106402569545764337403884619646936822400433715535095597524532778896373930323276521337656080632195541536462195098618473602733622617122680686967592090522400352791330578752204215390806460598518324311708862242436248188178966193046879338363718313696698125620736502722834633471403500614224193033897929600185331772090273369888455953119863344817551754338547774494930970907667479491108963106862502891466333421056122454272195618296545339329606634921399107850597359060022610820133925832376492303344842728012215486161051570842608506368534125543782719924634510075527395250762245069097760023551800750974275508074147654800199263218344932918841570059270072763609531011369572239262188220520595385158683670185777586681196250532392376629867301188275232919600605180255368142016766940677267524167315901261164983769130569447598732903564644769539467857102381591633633182925340713947741810986355178345570459868875891737964985588965694008416446901346333714504442324596067765864827572574802047299862968360924239079747819408032417253663062171412633509820211820034172188929010911821615855700415319155586138248806372382172127618585065805770788373724619235554895892733059827334032775151005830362490394872646192722059291035334123090387318713241641768147340758226282736054200865094309010236682040071316049297923187261558779641851836177590879848975585615937111726644076013877110557346008215176635856006012533765455707443608253899472757263488792462778268024315113430752193701495500578615517403888412869869355224123696972627098696692652207474708497803705669271606449938474294144141950204509688005627050254281363656614967237365089760075515696467623017910221405080089712020761442178207265969301653958500012807807451647155376614629559551592984246503602970621213991377001713545431862660706433448637996990597439549475104629164256702047659628455342347238389651869554473504820881930828039710903181501851037102179551888809489145976898191254473615167844661330215860158651354092558163146422810601401786928895366667836302761471614993253467212464904475286640502911777771626397443470749301188884474596354154332133781575420111224709992675695255081846564471132279405593919104955798488959258727598594148830841717297927164171196657570160243484467511486642674879032973541844126501380330503540275358021945730547921327250369745592892868293841541085204067659787214901208191291608779468113733273837985202908306303193622432902852919571540647706563157350820815553431637269963973695625167255068733912829462930294531475721935262425400717839321574822352521694297558898357687506880784023637934511440585800823921760835269915659365220773620547588520664286630706600081732627945669233546259026644877776232773192042768967125006997974653754991337111242935250104442097261830371855865206448023162734781523026031266656240229761742499378114124135792600239862860145408140318835534941822548168119162206532155954940385370987196584308028761434302617562749716930409550640208364233283153981086772879388205578343198720783406625917984514144956136958877729686548150995012425651266632164233952826642303985447546604390839637220264076075365006288150096354915258826206425957762831438966460651333754376455746075832998113306427248333934779011780356501920195692101735004425964123733501170685849524977570527594784292654888682614832153612629800843572122892011695924914983799460501703073584659597996579711890358093733446942916083711483214214284396868010377911700726091186332941152139802094611294621220866452426268852643634905740990278018709282847046332527070471694555787597108970594770826463133999720413405866469078012547453530254199182577171471353149060840032251910811557414800132695303606102811649879975436488296637928221035132792754509902788205754901578440612175285532582946935282601073283088114132949640466329541425368144770036694758696717002641458443486853023327205449624767304070028549303516566862183603004738933709727964605503012652498752884665307113129310616133237188327590009395232513096471227194804030146097613410815222476695935780606924676436622920248172938315557498761346707817539674845218126402566674150305450740665716876775633497380947890735177915504362949946283776828407519268039534529836730005150052426641621365915932696000400935687201228448697619663974945320364553309154366411558712460648721374017067190657822207780541895572474529036235798592371790579006004646019878260411419767382176756934897452250784022820644514671772541794567766270378581717374988763329611557537537868158202153218369568832368226881793080269421863052860117700565871643263219427277240585828886375265883598314386717761907181173376639340952488442470564807535947144836309476681556649641135663209386795684464952780184266250166035741823869811279082580448970988056850414255486233903739680378042523030392029265159621402124523635304290633063922711504217883073635115263507951512647857984211334573248621964995405644802501063379209521638432855389956627479959485908772536305563165469606613917467760904379100223954055468254251170426453771393493825067024584881368383519993173967705745198261771700255041406423614722326280254016962162042287480068147191804942112413063947602079587266819069430690598018432586564932802233924343034780913982551354294861857297029236317418457535910553498704422165295885487506849506497427416363095902376628737912437454015126849973423584853291146303206719337668536168065501868368614454509687416978220289728642501597188902652829780137209687569228104533826171294497028385901439587436979828690950266247766824815557005154499449251272872909794831816772818635260901637870594160062200556473827113699013373685494675986847572532447530468044093444453752625555091308104194901712232948025504531870306747900076210707875254070590814534971399115861306256529444691936066197509581011445008379151608413693857902821528427294924728292750142145027787537841885480736414001513573177926044036138450054515690679065706206251489157720267049793524168706482992518470653943416423407148184429119918168609123605872742956298992722838237778347029157821927494984843582802143853521537199216639651701814423803825734259935145649419718404830089346812800686529942946918644203030358918836360547816371609855828913281485217220455908673131365983899537409795538819737900047114019427285665143967952069166457443884421471653250290198826508486507260476730070625076364314069813355223061500038014477175831398869930034748078816040538668684852428730303364651057527339960403080635634985746177205906776188197448528296131460466556928054231023379928227730120194797766021840705627503745022130484423820897469399945501640992999160722196295270616203304119721648143747174181985389356546145302591786790259809956871331071729928749852568058375159830033367078349886786963503585028268530799321626013065350981637027972004316528798415846603876989934370011137668082330609454049803284460396936008293392384114462068881438049443548282687829854487676201624791689447482469580363385451118657698253488848345959755364893914121110883674905143123093873754750556239886378847145167942090232842030309379896997295817060845785699443250782268514898683788291827512394807452338703836521551797501312751995592979470987341287280947519737431412094792098093835105154286551678053241479705351668137926986031972941742259726021472385796537392619197471440794965214300873009883971935919239852737074549835829020674664341488403521712664913092593783016776141098805087271448054736797339280594098297917995883658609894338858047405594030025705199461468083477777726916690697849913059713526460763294607539401738054020214095930656649108017465916867644600812420238091486717757683654753902061239177418648992737125589325822250117290386377563854967090267452558611667367159136487770952666100029014016786007689580174575237298616471205278863370554660749162625786480230461720572758160287566390786492500179701526815012144210638064049718467151694172768358746668687260117487521076176398616554164311256742670230380543346786643309208056639866864489999081458580616042091506299374042482591990956942444304689941238710446621201492597368937144343667497197426863389738158025305242352697160513877284778665053856309215247838980793014510158765962606348603157868711233946529087857417443270704961445001813851481274382522395456185159972539570322031722438371967263736684080266398108377398593486314891455208420322543942207010921526495091348459992896442420596972038488326158531833304213451402898510058648138661404146760312934602559610295083488186473270428176300867697588488148130894935713549277624116952841867124133130071075109313696359666082201067838129076932741765451258832166189798016782001580913647061120485700352118387298786741599110361091861763499856833794054578631489077051249369709566150633699076027341395752633354434536583608151022438298266077110028302766457560314816397274288816773685738670931201439314327394750606390513592269592952610635763776177998916909474974927452252774541574404082354137752676392827079003718937507536546726648169237137599274871345838954559302424265563031613374504535709186044582169194368275077693328000978224583077554991223430812675900219830837104426601490304726204842840625318048858053720027119543009615793773924330221601146699414680400833266298412709753974571663445537918036231199709139703255843059540842620445144008599594130665838103286956605570134205796162890376965289773850413025262828530646501599555168318468839193764091585934596978130223568649393658255849688092328066980547581435702918401078848163600300628322584259363925072034736054902380906198917998938827598862944566336972016679910566231428318426296017644787849479952870934941765138674550993988024753191478123446106309532911302842869894390953305979708932803383410111339846561987231570174923799934283884523519838364145987186716475044172821854595287382010990707665514041900944732955356407995015369445917064598306474968526057460209395520420368899938116320522475125557543709112207197142602163733074434393943968452677321297584292898810228290250499441934616307918190879821808331359288508250462357779927499543430815455794699188958940119745885838902993991933629480947735201650098330017563237991323081496873761390442058213101454029320730133713615276033397933789867479225671207397384079750431821743169699027863259215626687543755771694044512161088224902620960613108162120457011169193330326052445609766562074452352229836950137988159775028595773681131530394927529991016773246290664672644816191154633583286457016601279158743322276824838263201476698754306901292024171975528930963612135567332134724749130997795155798088251808463793468507677646514729279596293969376292360546703162998168185968313074218156743482911773890267485664780309496899259622658645206727211685916309873102526666335492841800534989612845163831375668744959376601324807182579540655973898946537963181605738292683592358971412681144029010473555273988694715800297766623768569634162751594983717830039131589248194076080670264564645484917996695488044343617989259714130669232950437298464810082552017458668301114377497790476911963097651660083834284210786361541762086527417631629311057871339244019962893073512279305066743360838217221907810892311149577651193858783303096486408022807811028674226177578825214716743066877354013587820622282401782419847064385015775315142016346713230277299804749991535168421966870336993793697443109244014029355183137836176633759224283850009804905406089540904605735065652304714692088084177143588272529664228830287099477419524070537242960875826598939993736136016477172653259819283782859502529866506183483093268188596290266372688246795617627869796564403151768284616718354222226487809306005902964141733008218309649647061329590493442661367850122195560560625440511670507541179565187916312042542840114276050911016710556924099774262175021201126293433458737988771255293490183015332419111267296907908668813391532583750444441565711484508121068571408765770803932702368177782937119803794926841477156586878627090159562030140261358509163911256307733750693932278504242780970363147472699598569381439588093767429936820494742449351563004176323498926628043133440010347859809170742119475047645152867912500434818561330181447632241304698857445840889069284388946248256822305061570102903551001721295404389253609758838020508105864402020587099360007871162629446196142909537240562747923492329791246180939994443706018357006631161955247731993506396342760539362415883709569287731385939653266518564273260509798569869554042354848962798528772899593196952093407060035346832463144819659450694770612872737972361373280692996559197569834358924881683773927578787637680216055833556507847129042757299260257825446800522483911767321847231019551270744016759469566215067418307265010861240602593686006506523747832302361447236718020777032288971835170898443992764644572989228748803233610087073024049985406996660859036140129537741383777698040151721386398201923561725727845634763845911972304607582027266135239261907990912781465434102781154357060589943516076341152370948778656374984649471014481784562543017063857835671921404203170351488157998481145077390052370297670226418313489904762170529284694496171018077969539622604090350884578940744069594524249984260599485288754344087296351578424609703638976787854168920220050542734348054900415651901208130175493179672175968831549258196678091408592687431638962533144831494702509064619475431979405743492930725183197258723555480380994517279141445537148232412931423816759869379138894292105540502216479747650038998199974897882310704894982719360681310441716806382709684376407990514298966877848534455384192717690345896574427391127341348877632318946760886301703745745773914231726978752550354836733889472761328000267634247926304733978347347436751589419358492778752430955065386342019303685448653165479786108453088205420952198664411036173460721674396800431969957071915619280125389777168379610288381965348566020232017608790373840599118681397182064535314469277149927171329742369096275073532179223982734642376866144636788257721019764531414323318418408532961176326408850178750447157556632768954967567045921920579039390581366318880754052658880057090346783069212838625811627754471874386633132668823326100119859482498603948986282697400346337473096704016156933142081835663113541095068682098052982201125485236897921963801818977359278067778178715656429767729123358740870107509521107154861564548434933470183964355446045242243156231937213680540871250293533350952581962483156660275010002811397128186034314319362611638137281353586662692817130750357239392277632247340768119908984214873641329813313731586839947587321477941256689294650484280942257262165753525754572369296259068935090327117393015535276986861494841960824810195379893451459718977150008712954069404591377067992628214897034263289702691200025560301951087898346380570979834521314648133066367622227197633863773144823878594455453752171644817430612644679368758483840647286539551754129128463710053623680727871787723200766179967196437845929543340399337702002457957594411234977330818443343340404660621210073609467046682564619584818328605567674795139852108066732665910869223292708321037810548039986220872317840144077240763314275704702721486036915073981689309949571569946422271368041876954491335841701609682260022025395743171993774941896269548316147827351834305499032434785482142482884536769987521901376906886137378241059695440615804639744830043683689163865224832757813593264229813188549049445299219641552209167331330632064397296909518822924576210957697220678185018201789358864184604200576770941134124924134147360357132343723813746936068226000741918296572399562001534602588953543010526594558371004065122251777052081000088664244177405269694922093549009483768197931039097773913758861926811764317525307201338121286379831834144390969064155650250314228820128600188186887453915631852470298909775744149200771450963285442274779354844683200368473680063746210568278412757468666433239698331112910092684483237198944317371509934417198220302774540596892111058572459125815372204073873176868249309369557957680661871416015791639545122381616357910354528563199718581452273913462544264192716565954646915316636199546580147092641121100041617169288955905636325657685262116712267702616530062933178285659034964585377993105784746510446171481600928494564988944335962905128439951557481342102120278077053232605103199379439576736124888636459515835049722190117153491478110001133094365268215925809820388995284999951522970827634265091791768216482211833741710519158716192948002221318523144917749666448583539222264347575324682929002484296516555628184848126683289931680975533526505522570420026979718032994070848017707515394537202907612228579311497728450511473030073347702165573532341060616524338953847552893909188810086550000218997700742359831926464393296576944946586924678558599409164826874207839907153201180777012540743331151526665845645637479368943323988407173624842428785731713666309328820234476310605494557665427822861647562730977432794290426566249630280159682088182220806448356920015035974864714516633233411862934722161589551741625080555435717171785771728795320790247517347790732761807018787740223307377383594710387970786524842125887001159707504769422497471489213755464453988427270264089304449192412697787161030531171529054073526526012065019600839169962249067382164089864784302489219673061243998289467370130497239732301861477764513278962150291033949080244212606892205082343593137455732794607101685939245629998061876694233732306734694593861319806076547136757319690616951175093293361337614980825396462995994212678035469657963194079552052108185510513198608249747503496311694083715968390175238092295485172557313768481390589926143196129489376343604654012068944501791267319906356494996624926935237391371512985204815998305800133544806382120716366784762440398728346442159334937008284519468035538375842385833761388386939331847844210396349364924149006562237000074558490187470473246704565352578886599921288209211649370897541026166176885911088368406765363465241696309476533963151264754103487216466348291182639666146462685265979119146147509971126772070317522916886107931364709942592441534269736648530378214220077495421117582859217996057471099016142384224233917340257267520279006578261391195319304941455800681539565885758706924413492163539671069017385147563109312763483598593594465224310900682975220475712549499644912279683091612109649363192097482621198688567799527933925099332484024988685998446191944704342675803922658923028309437540582749954013280824162489916539207396127166014594040399620253303509366210040663506627883600049619777902633340680925090230491165479010778768191186919720803339130403388297382604881508782939368818056315421145438455193331094661637867812367648866140476589348729974598152403985041908760948305783124377629948470583082686549699472157671256962305387372769942849835900599324371253136205440012834676977764826129397113041480763231603533824752892799821464452569356762514538818973642345350658572644981548332273305738410919979077044807623971835613477908271498641868989798890200340510357134551980523893986014684944063793194730753369715765912555034230497960293446708566296060796526072052975228936927903026988734601844347202913266695671522391896096220539432133807724932405852636679329983076949471701428187326145163881625244541599170673607859860638509309043730773501955237454048377922273513965297642510484171325639956716012057457768744322752719817087592050894814406026710913013340423349326075992247430242801530579980446021805711328188274992761269176855998857654239872383743226422848142160235938695930195724696087596047188954258365925826593172987122564380201560354247975006359531324423372668596180372102151613096293364928263675239709980853881715200586280900659786191803473009251051054530570231673686252990545109888704160584011613453278355011346337429056072419926014112865362335008444896502215697861703288371253189125631883551596005567033236558557268290378222388215799780227050638235632140684870728286464606766120111036321546968747997789376762056885276138172955598758270627107950594584650245498684571642995779064384783121021108286590185332906049899700117802382857378228104623400938950113044692341951425935504757547882483939180819423574637461853202221890242919664441136889631454425155031932641100410210667781348622173066948097391212419847060014045400662659987542776081751773026707008845275473136892618057232913816603830994839197737462476815707740462908256559609995847342201253016047291874401263674109286903095089674706695514247061186680994013795940363780215608610578502984440653461073985899188821899121508236828469099115733527215515154321896180878152069234965321094468252651610611703572718674711403575048938566226685619926046093503696186547574682038808035472774422412650786819092165615876734823559635369715510681407217412523950375004866018842080600608242763297365981156087673153462190595885564673487997561543907691505356270694745101194483852246599435315158832725063783430859322147783960857566524046943608313191010574738287843317839941259359838320174758673389773554891751848763149216689882032589605325024009817600186557298144594505641387908859550431552068996562576217711145051118042887650427287257176551638318539879318272455468500080193123442887365608108382510429278816444503162633101606744580624381081678932869972592282822647711927750229187445595204152153708503070914816797140320981601099106551987223402638685629344815785526386936855101202461432817405685436269969143626949116119522437069963506859339988612740677223529146345543235484209258406088052327275497539860439079311228346292554294547369485933256458188244117480308501592346962555136873370763202025418336613299574969392086621146163013321953939942643574379887161686773905395926536612973147609141612486170572878080159052197116401284656702051382142401685380413717767306550113321062710759352415006552825652857788543205232768003327073982264162612669462145266244913645233421313626762096255623962346641659421051633385987507913332773919315222627375998500906829281222791351008204498341217554966267195662152049956856842708200483959524332946708601694078022742343606244724746619473948810012920155617144017834635785643102652130864896048120782042009769729704340450045654213982374697167034718217092019188667331259922061116205440919778252651193376964530591313777621697753901728763162313165924703323320657474022375681539227534489594673655841356488388638016459780964244331618054680651357046457073649056171205135553095447543796591486845538590352046841652411779931585750693666451370718122235025139174534846943303254709269258686973556447593410440901167511977025859136871794505579663252297387791634361401470375952026388310887425073093148165453506702261133798495750825152700185068799756943647451996606729878544228151470107287130143815608175102801919037675452123806462767103886107320775507393129435244241024880544169991378751537976038280778207169376573122040339320070792695758620475770093175425140220993554538974963231783882434076833342900776850635066538465278734424968953342049967192624776206956651912735216189116071044671188285727065687080902595378946095359874108217976683355566731299146896256173628892991792104966737209178917888174629901092524304908394142384347102516944867734632583965335633977782375436810948075470578287015763741238483115042534775482432332323858078177912411989459725642812229813394352845421542782118512479084723517144658261818838341692099597239888684097993882144291367809479528650833334102430472091164987102571874073337027610244316021783088915954833844306840781957832891211379965593499745335277149087216621842805257352996406875198940976290050828811593540481645481193189846602827172732280211960202244875229377431145534763214207179689497156837632049796661153643464938107003555934843024768917578071617847262868193571274678878447573785167905279138612320873956216798462332784604783651264773236077410696520248535243337947174479631341869140177898591642332108483600817681674409715310729684442060397012566872135216956232433543497994343394283205090311658723417831205558337742362762905858140836070280799729790958480805080566798139949217845206021050669088034938857017892653732274033694874855843377411069365129905155720326077720450074611113869723704258338701769430617680081963243214358135269398317627070703137337804145827434763600996895842315230306935288835927300724395842790016038952632205725346752989965380942678530352468698194329708483602091355104811470252840230407841058668311306005260395796068571643347628742726058100689103093954042519320051757678334378629267114373552299005331451430728755421706224940124847665896540269292630949967981854000452019150469951597500567964301469815937756458402690996782165155300522582049566641732023176036181593412339340138474525396695216283676437202735945972614020587606380205870843558442601763156765131049992036689211972631989121786876192574698844127602820785851208531536929999899613357046567106582464013829541064289493550920417868014612282583171219615935894356806443588874694416683846460824130780802721181701182264678088975163523417291713956358355369516286079104111477316438949528857144922104028199631494324624123449284857183717014592119948858116022964680369191287447831836160945620926792472141720395821673222959210780676063029424879572950215791618867749653934330492060587424557368013869122381285204510140312230959516117577013837532144091366791658947266425007600116914671878564289242638780326574799840250955063180637097594192951116862566049978167928925468525668782364306232896694632476548666234404952812319623638675862350721175321811297310857421184762828286938134385925022701175331189906677087401456044978483315482930053974025420371643585284562113265561932908796229722202202745308662208207136811013130936013706491793796639482363645534185439972519748872252129760388268169397855646329966214740982018991997132309561053565701344721536898077214709989304422137472509220695262647514042635658836039766292007094292126171872403312067240190457714739945422599191602784958083166362128414039217673284801682041950973392932183828798168356871298495595962581907222847127965661419918083078576269950812044238331931298798807415830275742769426791707355837299109371175432791125131077447988474271471406353884325119123904535194906447277768855675769583719395015705264543075559872726671547276633895405871001555889906213253054508711309836712189456455232014716369739762372340573339254983745687341070396509401080288153305563928194921238467891899090921680545054087358363738313807263805985500891659084957561182004291696980467366052349559138880911527947041770372983976300456019291485174457566307568615217375409147602588875977224072658371827095223050871879236835238606256653169969155974801411595177477751741879561418741887057453196545901081633736455585083867125599120355190063899442881991587421600198940347716766980313025727336554584698420597392621054075593239257355791167305073189340730319483019029458801117151431671210791095115718717234570839144298559431889448649805278536687569101414909259169612544141603970014504911168069632981113107421335029664281115169269538528357622477352317380198228942898330738785430953118904080093878190687863178645337690768534939043373261837854541413422906359784108434651936334155811089662147647723741753543608380334210688727092282693862548250353990409085531302238916110060456254666775048505089782192316941574343252858101706405570139688476797842024131267833936875825152571659993527743651304375607610079379302447284967653843503787337494070852081694202000531831837236844894127245747799302193562872290329905047225354754232766238326995682188415690843399516546299729363248113147052604298564276362321640563826018186799483941070867571171383923359465675152407006092353253067811119411063508166127842238211946572723343379984624121093657774297723361715582136982264084158652005829172454382046817029878905457509427989574217743064466837719377874589663661140198065930136945796775409889440884750172452932225382871422778907740607830007806014376091630221661116847524236486825856212568369309581816689923757975232107099049830645958995138385268675004187671242782947560481674537011502618610019162325922535496118722908863908817338540476318697769247303346533568797049616515300167140714688334503588398512697895734551095549996267306819639505864688004323538701501288464202097770759953088792463982530269113786569634062847290391566907128055570638882675494365738389579122308496806696450592837509588669745522643059141804764013043308787545785001467956569437460468821948773058514728911712117184380805858542189043499678265115728926599859956568475877318927084510868624849548788294217831804366542235150459097012991610761578673438597525811207894819121614513063894215730101026219111455514247363192718618612421442640936614648654024614209161695957631457826515216250075613158904939929456179030476743385841558237096976389888933273072872899790616939402204302087577339658918650019810217937143664347296041348208569049105530179952688872608164304042087167705275988000609445196414471059500876735268540672608506767460796885519687992869346533500698301397043539707059557852092342728514863255161429646216187868896654613711914613851741621907139780538127018953602387575860533935164065788996117687828118338999172941131311673900012385852620781194325086962455121774804359342777405297267837851327162511380881124303362161818143193254868552782054373088551338347344124396231581331812099499582945140736016292925982711851613037338123616776310280520184427733106780662724600592489131483497422561141917586493844103004140877428351641546718079534982355486096744642813525712913694082200502357786994435867439356527693837052315214243357969839005132683900199519676008453329042766426912284186571839715734206743426065171457185282300565091781789861011944177573658509322382441814882828619800508547545721118419718310023793183918156699226747560056531820923536990122674949915023892950704974578392807074964290057000900353103081147698534259654934916849368451851644827744646727096675501587536022916864140881389730287975575030185029602961121266240662637427905083083877950444553971112409032537402342518073692580729413370287304162284407325220984859909152443252085940716724850241453659942082080686792942945375098868356923083276245806747363189401980785202154193791929978377711470831290037665390062422923823176760131322527764990490794812778174238169548692437991361206047801403297468471088771999714419325614976048445004565703920860258792755541950756097223143945976314665086255896989259150524067156660491503417473655540212955568041921963786085640626268650673295868496749466280658531986548890852066840974600906797254304273978439403174119260169762670824013278658670745776918611449617487859108692396533981873480590539369312598204333159043211933436125152824939207989818903390800054788125851135693013218179967876328345910022536314247331272024430591985946495239703429189048574642532449438503042222849961476471963907123750178857735377316424346817225470615421114204248706747150968984678561864836021676074026909844344949663081350650576084721914424015231501882260721372195795079881180008413445949694949793196148101548071390311376565546782515892707860054834742637322143884614418517368094092044332881873321715297129980106220081927914127746742092444727434180147083968498389355208161546520916741125011081052152044393474434773464256549621379632650801656694464599859528653377587722637938286998005420776343096401431882585393089498660801468426651638867025546709250424950100201132718045712584509610788235206172879460812243765788194568741151154752392161246238265642161325954203310623653944914036804730031474549972002175271532747692552559164689788060849405622418479415622078211862178878982321290916626782269644004286808601589469365116118343588815812321495328703918021705961911691858773976520170921422746886344679852948117117405240239113709486306863528236063123929449920394383393666265915875293634928430531677587036453596150741270507302479639183737166265661252163026323200020460612906967418607497911034091943963679656996592603890454705579519562696074868609803180849956551413071670937293426538323795470920479226654054770501163915816464539089232687105043845530429653704618483187786835766240032075768069255126009202270616511308851284100312834539115694097579010465563362405601729469300438337386341395326474406055651145491944288976882274883892285767478080755329798266702203566065100028031901770862301516267843856698582646989538677563323371487808185129116342326148480444919115099947685016520897029619572083277027759093253756115295957791100744592155398108100881549864508388213600840168413725983238762688780134454678922410777210111781917278818824290077774551501266279679405969717836034197632964128018495008281462288404228818190680563600127926387975896966924933548676104664961891829681207322075428634121718775549579316952942684864622316455298317315733697620531799390096258584856710153695189993415039399296297306532882687902313913808199311386806768278130427782344861456944766541265494587737506311621066123425685078573298383492899686793565644371746950253116834117559291952841959354134425477328606528688055568848757325523317081689765941935726675821713806938681825184687442830204293242731191832082825331212485629251531210347849778723296936593690991421258209401549813081653282139455720299941129128953692163143500921646349007878992821565081728202619376667154826371536761831455489534461450360447685469296909592622446835223354654362651172439333522807439449469669012150390857382975634353363836182989195911544143579446569266076459441562529599938444135278812180066813673221869855400402563673884131854197081715260592543880809184032650581263949406397916160960064041189480324268830880457623784623325714535144622467726724677679491735023627657171086814128563734211215197168338031247651587822123042103658570948572656924083870377881539935560085702677658234298040550878426759522142348786279690400155815981092114174732617504985606305916969835765357125468797483570662362834759646092846295227215850829037320432764602075210958081765297171276921283722362950539489819748360641660551089248539334521654717948170335907039829316085115810680491617124768465631430227267394236622740749492053968150882348208532363120383887129864987840983613569807775891319566008274110592845631859093722792965384206297206263178974089602592336724963927992704396625895493387813841399772887355237423735721008657957361925586340234339786533636026901632841649404949628837487219779023494364095001125567717995325807718229248926000431369569908569185169430361920230219713574405267825763954541963874651689219919012492059307394648329122281662907138325793253332545028000080363118067019551790258808756572928426806537235376683928779488065372588105332408091195938644470366937990471099285974042244707189418914871210763389047839062849134780307572417572771190904780051809636763403978247298434031040628592511268340525840064860515580660212849493764829265757028443705854956242006418804454297602475389706002771593966014312550157287190508612373967937071884778315973378368699688989486964703055102663985712272883442345837015313563604262185905075266221300065538667967802853242663447977195496045081738997452851566682341173262547546316313011150844446381505149347378158507370701478967352995382792743375053900602555019452274844970750067231574244059936287478188768326642426674602289259942439549686483038438308086829158635059939008624444872848160981466217873856771210263928937059776259752133516218526886209501223658319318227489471953098035196708816919687766239323505513897347506167021735023402970649998012616942700763187958432079778163540499438601414463245928872276778355456546305463316262396691789045074989776440030363386761715281326046311825317279470850070304581901182651024466441590223990024729055571639578085888099891920078467774002083605757486403486975514359032738685183297621181298887609437076291889580815312760707005131225168155279617580788271976359244846021013289545787969528152572857106978351489238964940286156102969644253652472849955737862379912502181649539465059630288206990830558801629572081068294535222066517891686161447111397971784100923126983926431875607358577715324996511104505894264282682514705010442976034918170019076401020284021445855838302529064774301433957650717479238474058479044464136994039284950523047497764911720914013232953128962053513053443057039312125780181812144157469285437490793518171638584611974359823466590922796881823015912329070773197825426850398741264950507330672657901314049785407508060886292869860705129669349942063038850842000903314334177557760055839552048184067269658857302930519648932620778339625873063587850180673999197965890069702613074180189669635298005336582563433585341269268721079266418406018918552788366652835460505902813277134254401806332907976763474922537092879380449065998784285074099647548828864641158998298546313633863731772318303208663740227476243541478473753870945035950985658072369525840109311704207159333031523417689990942842381258249700194158218324164074868755920019710319066475779009707601976697289686339982850054363315387001664714265567325587610313502147476778348661047487837510246977546510640861600885208851003724073438492013920214991210297862544293864474004156760165585148205443207359364450854368187918044765877496958022987778251254528178864472445669976684129813637639687434719712382481821522029155626833442557729154386937308140622795857467269559394852939889546377704577922770363650106052930224332378574527226150382604636147570326412079143998960470644764545065650472517979278081514807958960585647716227703664404641872308952003119058211302903008738116149868316113435935262616842829747138799804762357272644377696707329878285381841990553470931691502979733424906738085742681671385885977624785440123163157037075419691888044285313628080336270448889618019838637355857347069733164817858635477556057816840613553605979724254618376262248938214948272832252385411877817202409252635943497695264478056195229999915724683697400453325490977241083214269735417145521152815430974063539205406865597462167087754605310038661680179357563997912437398911613296877364333145241800969534204201886217417295310685753034211820040369334129706988420580152183861512594143536142683943278356869752121281555962163556370912141800400275468561769432263360021361294041883402036525610384981903031466668663683037855998283528579204959672419339457121494807557112406064298714312676023552873075027701068898146508121946466572185921895772832112316397322722199102935902267939102028785946294168313126861396259074953501288288112973631190700179978061610094624554345147943044268707420125737106178223696811403818552339186842676032737453932038821960473164888889317850164265305707320488944301384060315440706513348173764416170000244839563690631144875276467028052738859378276453653525539298481029453155430855166249575443283760616475188455175511945007933544172215981314795280811615028389454790931232993921265303805658514488177427133415558039315533877763448551695789451101413320420924292738463519838076288067979397957912055459142689925324048548604939103499116980082935141864283216728180023058158759498146626469163525671248009720785581302705815303631893652490150744600641619836433285859497040702519207486963391901637140268166230477068572556544707615878467541473032998229716979939239499767743216132801914664814852244094734394011310899206028375682216374871134820913969081582370099786426375880777337875467390023911139828524016616645968053628139051084350643795642508527108929370868067094783931004137915542401002802773391581589095029193862684548410080278999689950132127139132274597808728919064413750144316545509407848570889066815818278663336900950463965176013109304338052700291665549142358240079593505907721300803296925009572421864704359615069644854024221229860603922722215505452434289813593255854383631064629006295789305335877301870686151483213319511239432157181171094915903629502440277037199051231476808716840907541841519117550834387752008366416264674207163028377668898896880866829354093042906303449920990635353734410092972932218556251049150155830669519672033278210340481296088163225092092306340469406130447229537684422860101671995669086983482621677914062289269399492246773199544921591176236332940596264883741014024986968977487963188719004486012753675700132651944451079270298367070438734214335016130440074975099109065294361161927775789037504955359716992590278449137423727241801737235035643489029208368553619036034694784043714761942098782654120600590928764965668220231367673557576050376444451788775180534877325061524636586580379631546194661175695338136753126201416621692358712550686357923667602136836895874794651850840699546502164503314672382166614144135059352497293666560960539434909737838030789410118755176498362324048528054058102467464699097344062329817737126899487583261129569826213438291450221723761562161241122174539281721671498631916279414630620247614198882242841701552915668927729735982868189999282617852330143402388690585889637160378842023703477012060097096236315773851594700330706087328627467989425329893461825584727652979041191604708112510180924821954431102621672307080189013400828616621187485407541528897803934444366971562565906955857832148697943106682875702181796344439003460672246306801107674975634724772282007580981243315897903412648865084554239857535101579866265042701916969187204899903085449488678418256488194616626467179616816684198538167649441280712736261227266456506296572635475700936369677472440903199883898860901943105302167898446387505707037849083113498592854694703845622187961409116504504699444446639705847710825782741332149461306867583881124772163658864315464685158311310954110913753310535527404153714256214724065723735287630672791137515079065479674695482988470175656049276812803984619261493176564922625689832976468527700158421494221228331843930991488342331700527895127361947441899421972118201129805561052881009071238813887619032308438428282920975667394024263024160680867312858629080119880642892498718680449435874032784443259679534669602037683797529001625709536637989675239490364474168582768461913186506830975549340906685132738329607880593804300409240250581379427280009063119652176710379760448159614590706674137794522193911123019199263448105014502672963426144026329329313407136538561692983203049695510132417904024767805322493341609532314651155049685935275703881419318503447691994578973754522644156126552924420949314521975773384724654342349421058948853669535387278894827522504010027250240340329264510192098638781565553814981740560442872101126299826818516582108296673708450001733512395112249522374603659329764657207306487301838468597876337307898796856269497575810330697043516783238613077863590987721666856937770126009019440312150753677545811859570797399429377106611789380029598539196816267773230124570667679042598433732368738664011585383565761763851937999769495770089946089481310659309625769891554307993110388917303813967802234838822413866577437510184067043256741811217302278387655092708614055830097818825421729775785083717016733417433406774144362609654772760035111222388370674291156587978157462227394133138340278432832845009888028994664365059100944391429220708215200603176728322875488700039745509517666901866463791017052491719520976141202953129764720434485947499394978307486878501690202598285133535430141383411936379074226426331925590310869735798526494809778236618413508930091868892566773143598047358388563666108946241905061164892817531463207260626773775284867481411018488307837835672757580335724252412726346195852853013390150341449568984990572341001639669850819671003984269581312735540185860973416035634186061614307730903742272024813742656991131510563352741295948593836211887088904036842248658813747802231847928533837805137700594368450656964344162953183853112796353921062557954337353544616296518679673218122898152521671876531305116849692311034733136635222540268822241354638665443296753699616565946788405047764208875588500353906242488659107004375599446496634689570863406490414926587924090341002555810906264818850607922962046959975537997858942250979045017335181418840671814405931617182851707067015222048177734414235500945566065054369960251102611409837942167089291220453255213536096961337400595733643853639572184109473798839163987593058658609091171644591220512064910624181733806755646243511010855643747907947943177490913719037188397028669054519459035295014267592833595314097150564033852592628665248222684869639591952360237299391292675170203820827692690432830108279014231942352174262239231262141474566680348078084229599826431886200780392902207803096795209556790700459594696156002549419317887728919342733451009384565426091616272736425567545033897532091453032987796327712811415235494109214924422805625455090497212607870458537841143351070513740105297934551173609305652803917214449491976866925697421731288553016556813350693958354851046630833059448311256288866371990561655153247418060549467617571677231795688169988788290585599143184376082362432793130515010238069529119254320322056481607802781658496973111724150977824181983255694695846785877655728403605998987717415497286641885674924984951084221156520950692472587674816146286229430606978836694558438739063190772142008407937901301393952447551666846313221457121235438691844518334851574935294412345638398638886076681541957538086513486362660519692921497388853533638966822633523751500622928293058501399900653485438975605022779989328045185282594166037061077862227733156036791648591068092446498219935119440500181048612829717722578848538425642684007528998895927075925239037689739781301262545993526263863462333991520160880870201200543415835924073372146190692567865686807535723765706550245794098784810890766365448640023403164694137351483537413056079125336190747551080009464182716402568508553098693566026871857111924870237705547042981228728822405674493279652586185261153794936203324290366134998074005256731156089269586225396564197485557677242278509797859153486905546303437993184686996196009876560510612830775984690168094981166268916550598093215396137845704344381489333608644328619328986028101715700233177503042075459433518623174049143779686771623127916436101172420478583859757910459610744486241824201819040991386866343530253994832980396118351499144382328019254610237805906367516577625385209005427572460147834069913634918508458333801508825536215415623950245630436855927679981614306322615120724486275301775426428526945857702607664339574765440058289596628052212206118092916503668410960279829645806767037121357856719774204579791842882845010241809096465691033955410014520003170341022774903295378870874941280688621792376830976275479374117433307336134674595703301355653148476000125635569135836632348306478126031939225711489312384108618127528450091284332844903409663174278183956160848268564881478582927403838985994602506328777713629048231517505027701042382471273322515729999607419978033575757551666478430927392024083654999302593458168013722216907467897004695149509343950822041976288399519925417408540195992653243514290413811677719561795670080147886620598855282040678051955031466203515779904079473830260803991231577032338567562025300186411505185890802533610861457047687741341462605760269772134104643410014763889919144866942366240236470841060276248918036023710915185940504762820383680718597972350738951456346084514350160382763640882196245029057973898779483127640600796753504035343151600389862486652821964394561374816647288849240173525507167514364669023498671798509174980661665288897870502707736141946560144880204846714880848280747820940175623630990105954225922014167282400993415348221636317210093734238662159755427428206641461230492097587062479519574523964448039369018201843229154282203365111578908800486781737226334743969960090456788712303565839446304798022980795439074266056585316338253852306152639664062667194246310737229121523590041064220452390445449545736408512494987875273738469812059970966101790989854574036584003442445536681063404851141977460978412641663937992594051562638326097481066846755538398636135682256683952778269963857251642287884530502571820391940949555817496696062425921101999164359995944463073051956130886219601466627778830813509496111093974231344668934790563133008175380998717400017021729943948775474639971819360816166123187790918621054394732056881373678288683491695569486434535348902849752937381985873433478477448731556730530643526797945186583825864244047470760220974946490112901446934324990800092568274159327404158841689817468991818643829916396858448251986894041725331481081890274040399855935599041365737628127519019332468563373997967748577874826371055290111781090390167521492109430535240440022543340195123916081211457633276741583862388731133691635614504595812259903559627183402628515282548710015848003263703872060104736112960523180761047884189995207247942764830118093863241438818103094230883769559448514455759768208673047317452713180480905550667793307565659145273104109719762721257969223367849857887332538440684334973811663431807514315236285007678163628523261817393676777634507649724990818421468604721210688693405907050103346114681677992657810894045770879448433971458858527628190760252721213029104779116198269594855556560057863845159993119601746394204261315008384696777000390239354292772825976227166563200156104213964367047847533859093442897990564661598377946859903973187667726016207171162557430911555764623237150163370613354544669038891619669895779180884940495927687667792326818015901335211273179809214432944040460145251661389891255899417436167950503918927684637112230751652269972123678274552302467234165839612171338050209194031140741759663696134667648693726947395410262266851797304602373193486739338723279068684313611842264946452243475726594968904327223851429993983520649512467997559226624185613093099804621813081255662363898593767457664431273254430434616854025603665049645397348701714965436799100705617876615554382368998112395954195018873648431946557869471920459667475650884255193242977600228271568108496351291989887331461453257167474659658922411643980950145526383750894732450452388192478533635568088769796059130898667647795322364175361695140110285329426940038088435365796287606138515792067764296711191313596088409419234357595865838214833093709349765552983370894100746963748001312836094743155351673953626485068242821485357332865182781406819119988104682134222670746178970776494444327062736649062704550254082251969474822555891380514231836000509534917201996846340640126158178396073566892355745495452897251645934377983496087689868500586880207932602285929658591921687237164251586640423289884577144018989261045781154402542547662199773306397335054974521941480611384455702165694896939199130729813375815583627509739183381995490949026509042731469078679820266237425579949252606425660582855405277125070577687273223303603222790847323925774707516447408885107858241893003433898778974588219269000561558733436069578777845996012868638243346012943391631355580822518287234029309972025828160919878365920070311926382941420145452336894579384498583655029157302346741194262593093191777235642103244332758405543480989722302673970335779032468412806255036577568848633653482339120647974607695802672199344235600830464559825524861891190065003474357927646247785697771611183325235994230121503442897761080347946437222833427681358648723991822353890893236364425628433139972288263411206695637316211716547184971960515473247579097325645984261311747794426749669609537446314639996209542933806574810442051493019380393512678562017643412193491968737738779347312434800449604628262308842978897260924130723917475498262397561907296657414181626403310531200692210538818817010561972872069118196007471831241210432916263744781385571520813971615372924616951569494502072179695464496869029360122426128007741665224306762667814972255228070171955476848849780906335572365467846194449320029814186923428119858364229034686717904850513504662348453943090152902648093795510431859221003714519113221524045375801147763073201935292259203563891822312130152076816860004230103988510197232453102174748024555428361119397964388060734401979865790442941098721470853086278473281498569427986461311817521743628971635139557361821896941593921057958081105624396579090011552905271175833305841103100871203156513041484924373438676958305461229213896295037425214150364162035233861924332343195195649074628811213475583718383034519600716287366848748072092856626376993601917316468628110418362541711280082357637724639905141301407014327671135775390542633180305578276436198754305036177247426461624734566266386422500377259505892110190295636062104435266033412762599359776778866214210453981731490552709508596406965588107146502073322290978056688417158078090349923623297633104845448547848662560981279666412629909439682493178606945523959078268050798715414898052383782261085239973644887270470214334846017989204658824083985500376626802611069993731171929545947868740740168953244116618097905782944191381032412459421561837275711221855035637742306213950682504935463301880253577169293669977638401160527302675108178901767645250022403231550218885557875616708755115091756330864409243426550452106656050123655400512499710043955967449981803907413891000236236386339081907345949004762743970978157919786600959399353920722284766494088638937777760216448745551355998038352843491354232007999418959627751283832893600518908980903047287732092541860673896815172852904437874878584418090165563127340785403217818634260335715016892136906084118842957347901430901204724032169411410992562547710265759935330507863086775051198858036048865230899224740342362617339410379383405830587711304177387515229243443086139991230260963380697135111204703632888644858569256961501856813821307786257546942809957778802834198471753740429173726489682225137802610963749934423086425953172237229330866841059076308419134822006667479840648967484814989452919205720586178775393265145265806553561274989625091781584043755740137965305061751901768185753806014755197206838262219378566174565440806517446501199758252226845928973541502174545427712714362330966792789463114575988702213906752647248885974442640049926812748633616963682169971466059642883552057659997398302850958918872963866935884464652149380434143781654934802468292160702973097232315136161974294352655217637913640451037970421661841439730162117843606137655183723609107093496202804566531554881796440484378631683915170478081440998698351345571701391222294302923910114887066757063272187684571163309445832650970591205509693113897815633813012165749497919522645586311778301273762658280815536996448652595988643007970835847084699427272831585116778123222403042300195692312989655498578358844945285965081926219917224289416059495529767618152259841045354791397981151376361672090307594820339973231011848728281151611002234570245367802206932481934501188364997834912264713169905625813352051200663951181085272519183528725570915916707330671335360986768578999115220319653262176766838859047610371784637234402419679563118511879490353308501260675546485106685473886757351657001319080283605970885792631369499018007484782865109140527740555597846855050852951744761653750598909517627868003965692258295864327163473113057600567046418556543229880740624934374185808575434440384268359012828782442977200490139844009456119764092829488531197645076784709744906833901728810653213512603142894258244828165967398900521084055954094486930324105350133328247434297565437347574077315980950962226581858393781651937839885364422470428500182763992040151844065761322202299056658827499739992061366195943188339163037568447992093528912564307555240656127883670877287108189195506750906780366441084164838021524568877438648256150027605617057665606314531117099678710222546417034042573282112207189543962086854497715445594542012036470929530035221205577801380405320204835412620830715024055573199665501461053071439665355816922879720559349532575534655301220551135254182731642128882404422262853151199268370612807092525622995891766091999345588958760949519372081777747625906998072265101238329028417530853689812216226793476852331938618194946312990822577006927756061962608752268632152550134305231589021757908333898382955926761614021989470777481919325560237511381177105412898322820747433162350648837925702758301371222419651718664954277178232628744173144084085836420720612817937418724932676258302791897128652192584928764631513170807807030546463001359780420875976150834972156595768630843882078427206028036737050555934557876645746958265954284669664835424366536747480958218046679406325681858975200682608213642072835900226291323214563081799832806636639011068530485846851924130477398336283227045366390409692869062722190799096068061826367375871785050914937773225963361146352544569558910446785279830647408230011353697826857110750687258389994394634991205136213608938228451782731642147381350031137913123493247647223628004956906967688975834618477715712623915758282463353370906882120223541847385015029565462206805075788942631578219684957557287739655056405244792764340202897451986409791218054404196852479208403343818674650015111325945129131593698425501402644125308706350939529685716856317369076165341844336031910626099690306445092141937028976468198448680278988536290899381427598814331414792431519598537852901971464691220823359503765775976199814771688494302767123459709760541782125028962693740691757825997003844821566944427372427695425756812812432128513400781560881378300579086266302148582327815754185841613031081208335685201052926259069802129863502400991434187907987487553420056075466725034980150849999001010556891386121645575808014045137281366036712230798982490631342957831379956862898661740437255168674787006535472056932462397735465927352837116574492182263069776286519880237178586679218071323156344827382724199890041440869695781085668748746051837677583780293448493429542088233891926586459325266811073518299158629103631719885452197965471595894348757749445313497944238404674331866932123308590351780853285071027569482134014193769002662696965596470073091882165048486646006836813464091204426489870559819111474288956513093772356134226633741766828076571358909540298786697639583142470561861717580590455869005710629765306258481060539281391235082744471601005940449765795321002259812515667339673193976288723667939239177212302794697922637695845272192612953535843627294976981065156357474603530340421701598554787164894890666860065494672724099071526918587714889000510369037451209849549418501884471191958007880174533482824664182310499995345843941922315619491310797461769764116738862390136930368077989426437316887455350354268215420189536746877044701432886487621207079414341413004952871279682573847173407618248135427516394820325668001674190903448188325038689243682058097791030628414036056084229053054086759107232118408776532399511585347734661168094477817856831682026074452481275874060415314462063996609103731915023263262736895980868210797122304525861691510527070820175418470069735512839033488933136087031082934425191796568972889831019346716948897812610219028738698954266288464286825076823447695044117812392143414634170201955037697009994944183193782027083059064599378272061810086858427162411512573142091294999521269423200636110433255881017414006258201305787258660489632667794809823806954794630593472830744478378263019326221401486689995824153461140142683973078242805130107547375163198929649112708128426865501703920084433169798799810707891035144783018062864865771361783027232406591622499005992959745081602408708923443866037924297002232048664865012953808209116502241858378626820979684362996663937730581137421119962639558866750484731771120961576067450129957901529805237791063979828176383912169364737654717680959699196728421497701172675823979355651012676949970218337045780316140066594268814401855722617902420887070171863615083054924371850613035787704285008173766029691604852777183376017298847639218680547984528027314163016066059135498018885529087775753268420685972908858646760090755196175642881829960165751196566408474707597000929354922870314557121413280699567719951422098600092258234574234340946294189713245892337661241664304943452869085047505409342970296013246644492281644124224477086477900343802522983539403391828121828358926667763307398207865632615910142232164875229467681449058943014204211650464458492842534948443138327642983724242817292431582451343968077764956824230134740219103652259100412966883374758059294781916570829082300959649296880593027110698918330471907303137880594166724930655200804474012493281478102128675486144093211051972699730167400953215143673908373676689130172720653663206410657511282245577890714139313714774453179811128271542137632533473484087565614799086762513539430103387452287189257069409897979105431834765842357135907726188396927053246685701728669037612680743836372598589492687147958354454508868625758622294558044827785420567468107017420616460434454432238133949959299499469900928358539013262389443921270955049847137200402171994856726421659931279015705816521886658106993380538685291221258977716069704534188047990801750349877281451776113388969944772371848285620869276310111187731640412454034819534607558588562664807440687080182431831436245484236444017022656271316122455660414110862107928807963485855031618398739198044977668702690022090706149588549587779576614334811289595045410787121444496575538449544970793967408442700737691397436321192481101687040807168914522237015331280770982461192727214250043913352951992335945242260215552144580865425747352285791662172032602372163109653430003565095155284097784485884746551037470585711088137025185576833521299748667694583012509598992713126150504360378616853359975759216396218015787877095623599068478378566558594034101709790043841038495528830592152936642584967302924474719342947310938961444171067860194844061291625067628482815652488942017387812556518956526000829821047665679130723072614709352090116790664012299648446138768265309497174034738384445251797696774086692971620239712446231739095426583552470259306386461640010720064700322438018864117718550766617243437713764781674842380819318743121830792335363771461418800165823828244046206475520965748246183305702766369681777209447203484564856543056924448027966143933775795490777832900925064290000291065415280564827863075374476024832221069580364171567221661017318770442764062463981372158561916533628338671799625152109236380021923367555307797528375382948290925350037637077099196406695350602867978528748216716917726021486812990829155758700659985294652494454346426495685822796409353759975474419404266027364739993701092303964872244993488601121663549362450031038718055586822434637884026634285277994907774193631122728049782623367229867220019516278295404084416432841734168420814910018905165310635094601855778159311299961400338813256464007243497851019123550780038701944531190363188035336237988445651559341227363105309502148559587504773656347762541463508559925663224635857438497049042420019448233710660927615071972194235630205395398423839655083502446745268986501032874434510386742323373656903928586678665482264023554852714602921965832801098445786492687039703158683057506210833374750245474308656251870268828173897664069083435118913854940755805693714946456046042083775923674140707208764950465282497933147303975492061459109497992385498692071863917431556385257149985230640229266210216621503763666930716828635136228800912556934512813427137202853839829187085960040911604329703239269322054311811168791578761167740462396993630980128990616219495785281659386598634308257072132637644470823344838751260007283682773151810146317623485341260787633938930688713790655705166889952577227172252832823900988049205574263232688885990896618150459002115423352238625312518579989803711236039773453171853999433481044576143933984865609892807376264105794970101394430192969364941403754134252510544681464335588959897950365599595285343518296328889464053489498921154096050452949645767923760333163027865955222304519462051987528428655274794246279168965631760624240509002680761413189213718615110485532123051920787815494762704152202836148040221244830621314657173713920119511246148347473877838714321425081743169982591496187267747685257260934744138054688784250747128077309665413261486195841085387028393443645408371039606162036558758031966395888350499882239186388824717825919054012961473824177480732174275480220552969862830264208885067390561404911466464547295591734057332481911311535728802747009628052528597417938288036221805951980646754538458917855966492291243365938301292078425591300994383952245459622729613522229934180176252578873352783828866377048525093527841839794918343358393065396472359637102179205929120007512506904979548380290142054214315689499131519611911410159444538895934833500582911271645371699286160852037218291781646372230437708628845903036882318475248618109716790921778419232712666424333053917754106169510463718055787724336586779955826714893857346897064457505476595001016278609105358876789176333834629385301555033663664231745150332003402933851148681032990374286632115875177812843238433418671912316628898338084858722719171731654851659069039744983649458581213362359497502345012738758946957089517044736029486760297128359211416306575135727508910423226513186747279306252439256889883881940751405733519940871258854845176796667443547754145391759405472273229963823670917085299344209434453454269058013134433924380122747236910549724805707460654841737391378345916331966467427185980153273207743798347557576246053236950250548710280261443591572574993564750715593152823313023886827436228967541638740274878460909059770430883578204186597245892686744402840038387572009282209040654269708116196371895454262863047730430435327596272031452949122603469701549313905729786888838685715594488379833893199887023574665255867584256037103503581533244094734019886240592324721054758708071644032514875951702210158206347088068829615257202891261125703136455751373922852941430129085765217090588606526452890868006382336724872746380442094692531258171444701968814198066423638890561845139461282050150409451189290236362705092445339523559948080731837519497180561323992686829120150820888533570454346554040578160980491053264987039887435256021171492581070208307787645703862295353346609012455429880079734584840238927104437834352191380597464850701755123539737213832869498270562320460545210416447104456627385346484834556496021203999998771246691589529527310433341767576844494578933649825993727084462451663586080721074978605793754247773195154214708814222465581590385479360958510198570721922306929471785177493769592520505039731741684538872798231994638351607137283738381056729340689156797498766869833235754810238031572145455323723877817159011742244752370626735765015739973410525488176332150770195607201650399887368587687826458188395220304620103073491515978741874635680904104604252906598330623483734171914765563132848694822801058315225054273063343502788372759035457732327719247282439136555103132533070644917245041246912757682169172489874917947285505513510736776524602323600002394528098568526027776792700543964796947393585211069931052696308089835513045352531465454004335872935432627976497525423722508070879050364481614593619049187144445335900141537530051062615173815041660731664731121090664437216589760585190450535683903955746288631719234279298276169473140682825079445524952789865770618821617984853203778937025492276059420133578258490987853664246234874035467989092311103484015580576859686753429937879873460985593951281810974570111484288869052784957627056305685098178263631841839699423378903930575574270987924142886699832412588842483551256052864194586591601678646936038344244262461672311203746024774143345652341708637081762095030910426460421811786456542811740919234960659154231800244597695183473041064968243972173738317957262707201597067199085914080309638046303133973109818408881377852879827747440926066690564477199177534851800982054465326963516900765262044937694741285207950431336700941920257508697140127641499944456981157111212853315586992400783659251060709355794472543018155380688020480700116698300379905940952804301079702563193704290123650529317653156412521120630697485813133233272863872316809331862627172747777569014493807830737534677553561203342460516440811932025168463978263760479476112083154738034645682647989866052556786731006693843508968320590060026635294427322992347858654883774034129410089311901765761047828519507552338232743407167651977209466953841694582606501768590336475945252646571751079443051968534341465355936762740465286500306882954458414672452414919763579090648790153229040443466739004132092223774465508038113190774415755838547095047892605380482548991105635764775766131567795874722301165536860854705774393341254808422797408568729231058266602033905990963641017117874460396347917447991970547135329339329451538182224132855394231945944633426332981742860691088674952137810921209344791006749359312734220835030994021413439077952949416075988113936677320031120732376398324357443518211915912085919960128586731989325168064830248685488262131720413318326465491235018264253997742423695860690764333257096534995495612306624171173218242526284527380698549699723268752732017206767953969827276598789417227163100938691693517186380753744898959540642897739260172311386928496526306230265767468138503936650342388181800064059846954408943763820398937763039117929958874417217995552266052605907943138735572408206586285477028063601785697479262928202914202287803053711047909634870006156114168398879260034600213278942240736894226206958794914429917495680765203805026899922235714657033442704240445406955388708411005546757947329990275600248751671587364443055042699794261814169053034582183431076657103346922307839120330636097144996195677468049283691190685426638867049768864534864870313858137502430549456875427270519559090100882300950527901269516195575897055496556477945621170142600075218908020234907399512418755524575848289855964931121539322486361627900998298839679281666800370859659679216927437835364570942578855689002340983653548947268245779004624634271138703335918802108071587459232228116176199947741497068645690696629820359922223582847798037678256499350025308847688218722151248898775772651208704326709261462532172676869092261111739410111015878477401462326146315108061042300232723341821483885125942965029007681427627663143363796140243723857628697382807511325501386992533066684042945363387119825380615464589189356091721778177452945022151461905891612568115228126425219319338814835718631191977090193269846190143291028181593375578406046320368595853263201241116072590582343736713305065901397495617000532356190241624632817800245268090810585637085749522605307573050670236647525956866134430467462465877632566576517366010811152071824575122963864914015177641061073402327571863133879229580756598135346766205889745299629107868957368380210533476831130009721380478771167467380749367318186161893942089504217041654555171042715548411221916398810734964723025725576342355438839388994805522366942425020044959756664269060158933194307653298871973986195686191960365698462604190695385445713896841468646184549186183115957664879808119380701219550428919913986754124761864382808286547425011149339198539676274529927417118957717949018589741172018531952220227063526171591179988970641279966897814049807563048210035569571514504944888353126859044587136422014185295714550116188934619814912461006793881856906237738194765026166154635113665817101763135828534748385936192659828634953345968456059625858196439902402791363086409472955999621010239492760890522797593680345055766562034974128678839560814471651523908091881085558939729716655070923752300219158611638857390726371470890796717305506792578733073634011444551110580392828857412716194599344190662969057800074791950263047098057963651136276222639768490172358373633820793009945327052762051615178713504036331850448017740023549953552795641673114301859351260789220236302324597408254601756480912644051010500593601371262297649263032339232964546750988110723364223787871857755425102960594750694052427217462640622898743991545070451085060510402897569744440648991031662711563296679843724280656703869826500195901022292795141797839722886719024365976984052834676221628964995941033512117375134993871743645144274072877078496795040599492325967501819330849918710587037871419344298058128885068340138107991548956046563558173887376477605701027028014282766461383686927732727659617230320953968759148393414890005581503461962710331570840404496154380774093368051008341702234885645608786236504519501155185245476867821606916021782190798394384589205252267319744750711772028423247499314471734249369703423518035512592802231996152996839109159738927187065672039676240189351098308094963315843442700734246285386904421640309585610345909924884314057080425180070338551521406144413578518650683129195347235919124950507355343384867405505486326204379712297826009076562218536700027207807328251338327277879445672937262249466770249850937994793384071648206251011526240580575067853045669351704984951962131748460770966089526070226895768594992489005841299475981995530503026407684802296045392746405533637472074027513544220717371496551352685417696480911278366851878386219723745630939212171067045296860427703335934158853257995441359394674088555947571822152291570629651156759942314300464661653330194188791520218474163301531532232130892303700049466708126723206393105818331808511593406337625780739307209489996330532806479025604631417795817065936539376029070760060859780689332384070253503220058121715647303532213628578851182328124807849889251541568008565070134922732776000861124911245817852658762394381188698029317058861494087541857673756470904653469753568198841046468892453002714380995960512148489441657553667273684058051710500080667503115879335990837477828933740733072225053712954173331289611446688180172153762662282449387365042564546711317377392258499610973657195766325279820023558473399244723120274288292298268520526211946458352241293618022840844980192897037127733859375949100530281254528547428714314434011123992174088675326149485813422022767504117464770665163322208705005724670885057910878541700361749056680052264985964010314445418192679588972958923864209157532701462095246220695445260204290778551659479609920484154707665557887857172502553497171600264612582805249739363320110133532549194352750786020523535323858726940027862968328365909351761155465749837867258029705188918651901276119267657055867244389299165233565208968310688996152663334011604753037474460746874274096149378483536323269245927712115564128990332363865096412669701559025087257181088921386878645333185077825306290683703997386889883199441827883542760653585158577546615413127511180452443476998899706763458456259371148564786814476268324130158211002540686392487532083128379065440369167490828216168304872562130568114394538328258061252202357197766619956755817432483375358153981631063034931547454556570500544814042895163235212826756583587481293002252471344957373223526271653571084121361142576393008609381646268764582311429479278136433115441529556803624687126735430189832608053872523649086946831171833052956202771591388893220598489129692741523628172000624773714706621940901826253635950879327356945648251204488902983365826299894349616124797741170185527068241437297390542395401518128296072100985297273333771189060173840204571165235463934975354364198041660278728630995313189165736491706461023441040101527012177802434049345345561629293442500246109579372771115738524511734996762499368596254365509461969360711043717994867267824803365477948026504448357454108936352712618446990219563365337545349944859167964782587193729585745471267690424924099355050065921187129043472611840538644535390300748401102924526688491023405759990470344658687219483605043839597421451663911504071646637283095934892765676505147156556689603263477859514121936532692903079531164955996078300092248847558956315929753823345730214781124823574933437425915147977121806162834953028497024502711410719053628523346449796032468447462003309076820119528197789376766624395769465400326191981403673704504408242736582388381086750529940641851987210627453404765378410638862723661822533845122708237724733309566418563078357369405746859194829190510389888285291405432633383585782658318485166238866950467936434131170862036483847968316208485851027651239780291993231834729750210006594633044197575458793351495503542851681957603355850221137234950332488973965984542350212362648202976636367655251566150251408978954002613841882238239517064846222001104981043882891840715381572428175082749324123033675970397742877136632932618112198295475578189211642074126177659448649699077978449990034217694028752604481394085332865761723623381112921224541514081541462103507492841538425432437050594443529225070468451058375881935104955267117135879438808862155720271930015874045492275811011600787301148389634154996959808529849572517242753368026094431870991237725169645304560019848737227813617264046609565439174579775268813480083247961315952335631014002420086050819026717035088934320610671710776530767101459603820342483437111964613314174916362247113891784455447912332010938993736173532535023249062421243654959549248136167389211287191360906077921708720396052993979208675772898158515249368307384382089754275829476949145537662462795147426986202042955667886921186197620952562817767858180949905394826240788235377402842688961598355293158684314332396618658741413692266700584272209165829981258729889597024110464612908714724378914492655249436743513408574976327756870244224293267246556562243847473356494979951585474873320243719693496565289628086117804592973122381372486390038708187411084017465246006969311786668317072750450978151976922258265584391569988962407654663289058486907793875552444449170256401161946560994203946295297951250519326141606010630116298211733875967098507016285168033856234300361681947951249400903034727597462725814218361906612542910830447564013170086762227946032340460192591589703668912248719666249168814546265339551103407412841601794191696883771495068735006347541439018220810864187390474309522503481798714490429289130727126503502630977590445827294248211102324563558170566588378292943475454434031649035237284737526411046517271458281913416565832910779302730219580088772064690141723791755455773620400572551875273823367896965247786238694318243744905034484363521809128107140529087363394086699156660209714867824108222213750601621184833427551624984733263070628806872089988029687187747787313786252234701097418173350370476499784049174537061403799402652686560958006014863590884544593041993828259615270836864659195653252820016805954809244300157321503395151027705832854130260632474393317770126132330798899009970834250753847318704727995081221650397744220970961179821177367398868649102797437837833822339742849800287912596818844389690249898655283902014452869042951716512448908941900162506447419204357047135453254231402682747776078381735266941528360752929644275644466207753779347770069708466620096629588018550235876263560767694776562553492979676930103492805034056016886271637692708592919823106166090914440269153291234244909739847895180656307656753641163072314504116727279772411763378563870315892623017700889670759301076628646623387918614526472595371544604171395831494155999865069405982888949979004028819547696808640760847538962253981597960630204475427849460211066793811799355898362985504226769104093067127487974326170670992425798790140358835643377888597219725710423101726234319985462068434349275713405815678115828009811976582640317218488471079180294574608273052185592266134774967516621173276941061875843155080760472492522725406777309370837200786433371578424761071110021297082914591590470991746137704881521960366216355582083023689202630225763128393308774037014888084270624674217275443783737237548514850393424024900417089983003439277557444024490851577410055405240742378683723446910002674742744714934152075193663727950883571569707061707482875407266650125721255503373499876278538875026753842519382705163831287704315095890290776412672633068981132434201429483093545265282702907318004170355637437246262517411685708290263109639891120351046609058255419700115179075079416517992190441361945901790213879311128894760405356458230787986713142134022847536696998761779099201897015219708807253977445166991708693267862154929664712011166912551674287765560131069570472130718196668079889165967361795021507820892452339909812120114141876546790414789556272668626933986777873699935533528741242556323860140894201194286611064086386191746580479598081666329766901128175137505216867957235537988563364103043073219382105519312239413201446618346614877490075027734037538110122950386640402049106941756274522559289766674961910481244257349455705016896725827005541907330889432101793867200264975909623330024485732431491448794865262301070999853000083771818050905395837550617977555191467366186663098762252887236776361999059498303298232293671706152495296568620510663242675143865268439304610698735203618520440783510421340033649294879517450331857537231680279703548754501349742630287460695226850160601277966121675976574834698452771763413160283934107247115629683591592875868950207720839811640701764996428483974781024457095829343737776359781601767526855764558978401370843267007527153096495745550125397019647057499968028051942801924296552225195431584346516770284724535224873211132908438222619026172665910354975501235943319021364659725387827382373395824915818617066944541521402326442423712014792588860447019126114176803315572847695129923167090775833952223137104980110933364198732100734460048806098885791407714204395719175282876907922804109057495850312919935938831411492073831818538720097093065402343246382242935825488864226584091125216686433429924028797335985917254503071832307554059034677124754426087780508212580168967529460670854735201320325428900175302936644509461853197869414935615225291053686952532059666074705329362651915095374516790177129430598072046652762843263013219383445712433305187627856735066831180599678661356539919419471237261511453750017373627511251012520496268771592602424904256635180336739071282819721553787659082351676896901784292196231470249114402505515067713892072174952689889407503921769253884659540625753020106776518866054019067007261409827179024334613315134305750485347099166838449131686356422350437906029866029473719027449821444898277313900591112242961964442956187310176601810936288918543426514839126954870257247696134426879091031955834112664964209090247688335070365188575786047855246725041427028080768122980012039122197209901015279016521435338139306718523360375469978632758908614069488537285593557417812494482819024541896489720582485634189421126805728306473359962082969691754986175432543814359432290704641749887112142302784254180199077426490896808570544407580345823721354045082512561647704267036640327449031211812139630009244036062772986777157015844140424779776047814448034835611485042738045191091993700493484746932222668770954231631107437587887856485518596039658193605130492940916506754547245076733751671567525493556308420098547142101360534654444543175320720122486746199716696701032093367108787172832691479434997958546287938560149613507380617832096105419735085134284734864810179928282827413189175651283281403754638866734059962898821815873412835785153545237308794836356685732933912224120251357400250443469744216393191823012627595146504513678893065056456591550759509135533355352555574027458528852217302345140370075441180169058346378381163989643183882883974754803091567482565173300292030795235769033754816889170063784287937180800818421599622889853710820290299131764096355281294490002899581318384718680662042997722645807906894438507070221398007781608340174363341356749112289863544426638573665039761996319249722369623156061601078977568327334204088995875445570729258454976502355044492017130439385094844593345430312178949901192318847702477508098462366977077308111153083515222627279376250286841522306086517690647748982546326154032672002924996537345479278488343568762656251831438070748558657524007314426660247730328061515202514657224496481777989093840338222686125792425847091891933928172216378014497484636452423427947078028920818431237140051398256787434597652637663818266926486491476565330974866516000581119752107456645531997748191929158545288772833842382759809188005242010631479438463569122213197119141103259836715872224121791127403981442032260310406220636605026140605225024189243347255470445249692512111760908344174971155757239753477983003833991087737785961739259570707572981611848393745031700617852703360547899778722140581700850418957701252157084572296767994312675433733721263780067250990776163969310619683138128622008639835407853861667210054108240870291163365980402973867060392679903617218037991594918650630718407782201242438644124234856522924101046227991241818198932715772394536850233497986626439504340953335718700923160549835466971066120218842663190151484482888426709329344339651179645666215102397244408532704318464444479346390031318160001850239979389292193992564029859818194788872642325366153373475867427863630825052369209496816231486964640415091724110158569894543440144850604064454123179978161005874703802277077709584428384359603002479273066864067150966561323325728805891652069934072242827019638820336034976600386492467805300593820951914314405867827143341320472203659889108800100448329360283528887375416045935641674276528474840822551206375410242273737139172767971234983699876889796050053142903167093829273387951017845730836209743528866383223583607164386908971354295841439999818642668680820602011239615675185195806379407556013210986507222863060236898258503820240903216826002967384121885981887991945544492752855103168328063245561460096697547447975906329906179812680224222311227220428872284975442383088513852722031256080213794369768190563371709931800313690310369908795100648449199048620954693512260325508738890420656800052824394535014622467670226214484447411123529200408927443110291575078827121568609364601685044172525450655981440261581286684193026876530738630558672616114448966541186812526653280286263271501208817438965689604300266053840130540155594258363536494089872973808784907432452935895278696786807981986158056575396766863475050918212648863479450888386214094626445835901723475455401527095799704684686092225137853816594072758141875667119333713653237273827455552959740823113282381703423795008900691150245668770452159240964184150634501124477452271178312254635338258169458791891571211711117119376099502099980744810966436181910861446016997752386199488721737081909852055956608256500502106951912639946243447265321411176947789630921538570774941533470113184258737519072405604326673768067379061325901411540354458990635811163623345270400127134659233448623540915633572090613614675831951362276860149616064224244227008559085340455747927042686398591658417044261183785926960324189825034307765433356626661681810334416804703576208558058095890715420528849372281717863865836256332620650104839965701613866997242772399077664856062054480433120167484016476031088845779002932766559698112918776144128776759532285159598367654076659972028238554354705679627597074205156428419376986790673271087998415375593634799726078388394740034882620898500192512981061210835247644587027584079995451641131044314768440834066163681950080225559345741243786911297365104812309934267347853155414659841270876440905197998979034942376713914700654207291810362753299689152039086276686277343769768705108292950712073166181202586348738972266666202460722139033064557268008488914641331379431207469885263446791191545911179344945680912109861147382447280330712118093710973651132193557399701696200322494335688922944337859439178063094078964457532565742044391918652245892937937186694017943460397960628793946029320410702504804934278175945239201433642456450150397118139310601482265307218214757268513732310255386024943161829305945026958986117027483702837042811763752784242206108828130454088562623571939753414438481191398827420467617251870709933929974693307178076536902900382317023967333345848846835272748726586736122336702346687449127432886626572672507663371512865036477618672840037317971378276747873785478756619707804837088544085059051513664538696230286259986026318770931641744106658031788958928530496015610306387119782763021215114109188700341582183724144504235025019389566863639289546984540725537716845747502573602552575440021461557319131974724766697596557238871988697007613916343173769904587691645159737467780612608765836421308190566138871669309427206039665035081671892357961772325499819547995947929784502630721512045889120988446501607564407345726608314489201056872323526841133122969915444973451334685834510209060154683818956660449436062192119824884333179312659572696242043955522432653151576408223585797577494506393010658983852481112209396458097892499670243726192490490217162893863457533556288711014295498316550059819880037393295368344107855836451841978722439130148167756987988776952776664696113251298070455093326526657194652891878383393979059877763374006960173675608724291697420887894136833091948592807696925690522817016572784333457452590474262732980792212729868498311392979274048402480413399315160280872184569473995641921649052017141850317366219790038392292799495278891627657403606382694980009810998300498400467492315450903701436128377315875611256771094528093338626648976956727045664176308453801400344670549550565060495845327245773228660601086516295274708148191482542042784291652885193675744453544216528088287377962902769277357435481012069682864992196423935742644293051833738741847500433415781228192827956836432751628950274593786613935279225522986842109137573555567291737765974375557076477835739505833858367491727327016095781458445802747990983411187956347375531849620365754102638884109959455402222958777982967239673001267404927670340995716508367281751436128921795427866164629861157559402478246926664234196902237896588265132312547168251593959228700126306785797783514392016929622010126690675640319156992194221972802321341942855913732241130786166087440891265759428812961884513314168167735547583760578639750195163721702441166554164770457521346791887286000894712323493090690630567056025553627054262786911762432365601450433329059688371440074471050579717975425776956664171747187867721016192242123973747923097970558859445710131499479027877415824066965119532393279646116071560169642237420209151538606804754149536568676795142043240297949029476684598800443688745997089438876952606424847435152864818997248728288502841464360711884729691989805823143193004218857544683613174994263427737879018520673049277783667548973607668890242913883826384160979999838090086170138671358900467079626292960036224399433161551464719715661469909084948546853354780066504196377947284905877594457116095006348546541155659569505861294377514222935562190731739772827895205454171282656063367968822416744234035059938052817168119648401811684514339627063761322189594966721517383934130233726262650476474549535659792981567931527051592269983281562702141280462935138785011621632880602798917176480626488461750448063084488782919292088529144926723819005508950809786929358463210743621682741440208025976545042389933739001329380064584180724743050637206457757604919173921747076823165153644466071260094734644259768128012310839754288864363637634658074900899950399571357711536469408410406956898496195788255164281528691096347246728912735545390877311072807464258944730228351474551966045679131332929546941648633467181669098666196159708865580599913836461379351999734782175820766257562120881072686529853413740546972368083813062423717528651125207409543858891362120769962342257994893948735486614064644355677799836111372704590492512383510382754352590448482303942054919051574622301512296116392340665642184546344618321038053970907975717818034460901315712746704412817004554522675525651383021312545338118305223491110916297895195741592547878421171662392658290660237369501963946232905823033830786443154506992225767472806204038588891490975756882697283407237454397248003378709318926655825960654736043575992970738298118062736572596265614566599978034403835455092091625358610150832964232988410307621380679051563153698303675887733883092817547078443213806580286011504838850717900999853027150766036350285438729028381517120108694592919537252416477604601590342022680188972089906663553205809308570732339780975976775816356480559174281160805128021471324372691618651451747317527827897886505582588845310631924289783294167492958474116926986275257169407005313729206961123291079148185504634208234976788038929767535561359340859468933214594139082570732286586328630111032549334349761108918767167999814632921958818510093433124182212192472582171847742281360341712171861071573749403716714844098423419815084357700136131150580556887254900169052631792363029457312960831726555966089104700407577898962175378907268814051480846086656067842789344167862598080742028549224338618620315929567126846347882553093487807541665986050045528792561704562779735336165480849541460252941199607589843136898710261536392573347294711736741399231640313283942698100106407139951982730804697211228309831373301475713311096734157350808563687807696685255754574831434944214911481025837263011407390515515151396853175334043232944908227124504912204584643210300874257501577134350767440760442817783100062320153756018998183569810433885688154072902973359174282925692328986328794670210158212756056464291686707955728559601475373658406201357078099578197964804483626804544827615487096600791132904327559056970766935362804418522944218169336158577065819694636173250704361447757335383011755430856470002026000140130146871952110986522342471858425368752409550247255817711843681907054459852205452565205129986583504904208566934010368015443677600857414980243859727977170912987088556474742304775792865778193527772029375015758317035337441788166057958412740290897369286112600666239598754493931758201125916710965712450172267146359341145282752810237121688331214728312495810317016226702076967623943838198767792300142484172404912765145442672971779086560382369399531932295464907286286245987341784796807719730470240997205280508741243393164229236825148613240337638499864335608138161007105129174704906655858810574724667436892094722789740491012114964387455598218873379521201036084543425597830019427312556659461099441065469170571488358509563397966648603531649722914549197212057956462763136532699975673061938653703186193892260678364686000383866560495168556133172855464317501103568185921543492086486107095661756742177310700043428335132538352418365002020189646153265308057738163892150038089710387718792422037503613431357913893062248968121134836301969745734796467762984107757182977297646825973129655973683252475673787547540634933054139911689823169866707018400136377934000364937107521264600545154430034844550583842864137274888120417915179654460193709632426539517622658432481116415498546789883985358144624440596057117150729908841734610615662456318036803405877170559521840811304492521345873085149591484897669752412115540116889191876731559372845804362343056172250393727045788143115634645026367414258049008797377939157966598999648935972143544694286074901416718307330499087677339392964636278515421694073162677214111516631534241425430496364722795247480675007415456279907628044614041759979493827230184104074802943666808121862242521224534849886066358997306810846195464567541304373474609616002096492315571827741919169011010065752841705679464348492591184981087096048191117772918811759995080894825689015661036407017251302364786705493716418781110603814653943037342000737392303980897971124812019246885880990481126130418456149487381479808642877506557548408095344832771316520622542097401149888652585006668479525538275677375733447580048623327423061077285648467471718298273457683127802253004929149983343656700090963943837953334580325695697918211134481748756124205492249570841556370137357994921985672444034928942439228736476301558639492795338577090006902870222243743259119534363506331271074309479293110897833901943067348843853301703113233732183392878044428742997214907498416481055310240932455953519105183307669791932378549747347216695282462176686832722517712884886362092647061230914218859421779148727823439682941361875071210317771613698443161870324008688552031668375239467962646009490196729056360983777118500936492602287466617518649228472196450451112347558170343484205126949758029754227119745557026928464911626693476526599026107509673801798618608564535396337670953367635232344733411040613786377215204866011814306923890891110205376355361986076805576850702164620580827048028828413999046353650474159661265868830134821940365322563707840384118998538686148746269663584509323450079044156631724518272581128289363228465229575253368014061904806354760136458004209371853382203012209237236415380910002459532214790348058990903927526887670667247538848078505866773406848663648799834543130264555381803236855305475421408496341389213644998051231997270630432410767020035398928540232839387756395278200588610347241113237579534684149170452295044983301360717832843350768953460622761577707454178238105072518892171093671738237128627128178887183884231467873790815148242647320431100596753845012159882132836223676649412315741196020216532322430244659755406057346296499229028812962818471448787420253773974857873572263110220865217046727815885102574237709283298700897455078608711994835432339939773326263738547019152159493772843510306614100306217398763394409570250008598048195863121744916670915662999835712091693363021864072691863124318460288668832173528311992880172534685564949090568405563918246174627920107111965225251795283465701294072673581431139819534985248036171464834177548274938502623113000220233502257337427384213301468640523966860363269760042147763842741989977178926857110336488429802463492213385446069382063018801526836084531321758821655862582646798304170060639518669435761260065850180548202699488192282598713135297917081773845378660666997977793019513710677473110075633231306553531317784388459576397802567453533047350889071023754578948294479164389572388338574966743201829977635398543087599683363664571286722635362001774267841929879970329782442430926262107780773995055023180005955433318830100734055329086422410242703161391154115862510821008523686848009805840750957586404606103664407569649847559722038825608009757416333089227156008152854634799073877538264498658962225322791746590183082161405905983248718208279969999755324418403649035224709571320163473550286788340164793048451255081914886895541969885748806460882207380425943298958240326321932396983551495068106023485667495128353082983833308839792012316904192478695000278786706965813083258831184488058040829749403285914828132277281630366084479683940858342670699216514296032237352849868820416820415037498719269471494050607562539426477044425118152041732341107086460350245659654574832715246710157937221152467762884434139673892905457490364898180160687696515330359892845138783234247803652540223875085857326174169155915558297148658035579867684706307467453130615311037419689824966844374920601191973799836325066865477820704402178471834630839663973540005891914601187182369513139571008672841720396834399785670676896468347428132131518911067994397567947251805669769306843089823732032905906469993868199629608587827321410388236790896538317856802260565703020317731823758223320438593745650322253977232881439387605384659570932312914079373169434046351912036732220619951383296063052620370627358564405155689216122724446223511539519127202410220967348707593508931316527819040108914956136041475243680282250785172529987827849460840153453417243414720496116319282111144267283720468591503400500615352578584263021880534390873015373131063130698217468141494865175386618375026485388030081867216948982500135217639399940727616982960108296303285522156275428261397273934170185298935978551446610453081349142067686552166312617765264883752008381533201343889639600623742991326029632839410685862897586098888960196709614534341823560499531062518453520908618012890074094599329796337432722731063225972783995740650004247591935759936616776785668812841527597949822698419506394952416425330176321311324267787894415802027406269783977342474971916509046611264257457017129378811605460702451242605201641010151579668332685454839446005300315195754195627794783591502409190716199650433364660085853847056948294420153012974605357217128393647145932023843953355925740018839903841176807657719910502887202872747407223263584165598269728010350101901638846461252728441456255319092038984034663591047107837969315608988229415016357980771185577813782994278079468995096594197017070992550515402214584122849056148559705845034936421305798998842441466190480443814472158787327312383465952172171635759981960050392036733897580452145523730355749884936799078129919509779373837384910904223202562491315745883488488622977157775185347098622732914151438648065545967232933030088926993214718070433427750930329946638739540402154695879599708714033723650836831339254851478205605778626387156413074325483178176936828170784931102806114833602650182164150684794209156862997791120430121143932019306859910835119263579929294028502785049484004543262856411412734022766629195422545121529875257249360951104482946396491015030170928819568829941507975895825209603039008798712228846731669026075987091182679458974473983885416030004677508473877479093421972110928937273289443201212007714814756741193819082073248065442159317249599312420533832662918013235280535215594585090270778083384980649039374464689163070789571480508887370271596931646064304204071942967173826460027182063331171189413414097444982397527698859738244354143329492268973947984496690376057497394283651014812608165346809126813879019098536193461804338605869817537314098654642729637329899115125403693739177163755829657124017988173417076294193463440763987567841577690871944360813269376340775776591874043878091365428409719752446916892320943624539495429098986718717583838747804688693323675839566568576718082402653558582252853880492491693697069538500845451774286062884285484145416925352177040911764133412420151007274427468712772548237063942279305619761194233377831301219671356400518313740133824287701442260594477077663620143912789695563298687209484686312931862855162656018415330234617695919699179080708226851304475764023927414438460069677440633219599448090844270308136497622735892429461288503418294332962537637559536852081354655529904898518533203202371572431159275337256535445974699625363184064824523218447690829548761339629565332141095648823847540006887835151658464496638860255487551778060376489129158782067732309769830087239213815041005825129726963956170195339661933510171956088690273399446357090590715869348985973145013919416666699417154355590830088681067524111140774704551464958838990853047363731996938225458639854392816510156483995591096346990155731188646850870113272397695615929267001711700106040890313234375471420703088760807248464415615324324362470351673634398396600869657208072708742835463311614763540046647558301885376120691222061492738145665251053747609260783608937157746965946349187408221879119822028976569974675486402552378563791866468041196040293175141288786549180458721482394719613249359407473989714815490116546901787073845207638917323502818648809676428168438292615274018059555073633618353046296664593914232840466911166659978366069108809398676032890987139528269184398497981004481456223494649811336736213790911438592904217209572326663989523907954077012975718357863106072760321357928507512553828393229290763853309730121104576516603728632123141059715467888220959353303414670391998463815472132279695479261263215776586062049060048064454234001616693966900269882890607336703811949751788917350761814182283588453912627922605605062094040652126333836768601682765980054740061117621447164079580018775961245279620887353296315951314869879179685866459439237956580478534941917310058580889212888810821823735736082155727117624638955067815263789048051835456655937061235913699705993739211416319139237489933434968595234480936883634440844924933429698796621814853452636265899319676602508969536898063706722520197386202294996511985602554973732761894885481245328900073353476586016203415569603337713709144612137354693508075559585865345417495876608647299388569920299491079573781377434096001754929047384381718117405427559167152435345976511478857910860035471859614869567877341647460871552549564717961286658070223639599822013659651477316574847417065083425984225179913110673184040655805745740750310066295219493042115185500341342906040721684768172645394231887425513300008704220567557585196747029190797003228618600898479254922587574110099836196628098750827422139488424670736451671316671635797154170369337305402576779446388388733722964096091954299021465636270178773959954731047427261607203525900721824516214565483346453219573219290879155399682094774440904516498625143120097904451091312367151535247856640220349617050815980109864541755519511824781498996202174968396895359141769674243511462812015786557066991071903209751737223018865591825964476036608535941572601978781366157581503593075241365211465531591994116757630577223009925577584485854277377412284226527270551977234306635550730582051086505057462031845805872198186244825483396808599169837048683094201937835902490813912006501600039561484216755943566518131192731960872251392476532771083745926254304346715855178919130529573293371067982859914714829170895692772142336733514866073223076080918650924008845299038519490916449028710153564018883674017659181937445833257906429283273358724730775167776328509310815065745382831245664941079211378923637435460200816084352488761585247845486878166396799449566846103363757304165701589231845493627068214129556832893384307198696848938528776310011535134738390340912995317581963595072124543120767569241369795773935801341116925454236729171378406440588884510374343805062961579271349299729549887048574290301397394708258446755846660983273515662116692534473932707516297202484216483219576828669312908453268876879714021727875931406705309917992010693911889762860439736023261286902170793329382439940820047212237694151275916867243009263365539119743978330420340175918484124971958689145547280810735476651362647140801649751904683290186083161322822508774966550365367999382578770415164061890734260027716121505294445679195287406703801513098266844362452101022362335498060214878014143924454965486839860122412045379830814069560821825189559449585504559682091565770590432239452835003481512002605507712666967574516305987700892481204495658180542030384305569593732693829028272274616601705729837922776648803358151672235623762978717919593676010330020023653502919477023006435935166682824601809328348180000823637531464216480074622413189051113440727447839150465688046450142516401130188123571264978268209043673117682039679670170127204217911660589695490215716806225258076853063541206652755257288256133662458759219098663433729886209481843183111060885320284082782685468343965882410815423437815438842382235008817623130755603668825519212807243772229509533346755414324328125822003349133442628545216444438598966713747721808100031818808079392784045750602238316814013939390193838412804335415948874514884034377302607250386461814049634835870813278543524536781024872913529126492916869820393036698887439915988261614318181725477277695191442750203311794263914388557825735027896062658187240752648617234901631204961166272893990247946363348268011996997695519939442603413691509835404529620995674368906866483301847599601793308679363860438644164785734613919456953275453988302288568937167033696230210631913203447511553618147692152750727353506071280615435150300053449386932949583932810962089491925148679735547676242276294222816325896673053113185671809865351360597645296778362405231546037990045499547744404235954440749981149294625970777220354105022406671278345475927222089429622383576576406527436007318751059839723440624719815829475973469017439135222454858331919654228431088574448295199275700944651106384551584967532920175766380408445997045545770739305868512006444581614810542192246246679028450974799224698813257144906939170319869287113242750808509317530219830553908037763150474793939052156953582595392142076377089662583771825893574636785166438139737998920977223298648820655380049985236095514132303643600704385602223450355946895838498345595162426823762944950803536144585122107533333052191460795782594584721637928657101401502591633173336066877676118677228182237827613834429815512842983119504242690615043098339754665412998068533693882411409765874830724541607761321577843186344231040429377512592369602200113843066915152131136520547164329463972377607648261248282066373912989367623886563307676848091855664769038139689239284047071029182292717837084607230949413217176097252870578054994159971919834229652782319894019288782971245296887041304831733524502104653368765145701776105063218395741330114855981351557648592412442415139258245238281029118444575584027509681451884609575885434244121818549297306082993137073515851979115007257783754362765209723847970191855188565525654895255684662794937645856394622708410987813802896919569122235212607600325590061508688397678959062395033695448376222086062606864044381788990557654548053441273093759699087929621588412483536263875353007072667313376264170905478474483168178464800867986175055559453628763773482768071986280161026488546640472923898644026988703681382137606688291505545985692604817367734228945390105481600825588378450013702389631203622297285509904447147988630893116014544059731317876347925819808871431504873020527649606063158962833473405187511735159578760929097592902454815013591310319356551052498408624604887801620527189003009067097042215503998029547962568320519241156016180887196930373655409653182731449092415121266528486890567885122060361828349006442968148404938161626345127229816552478969429210597519803386653117778067886783669440959170670166262567196608072924580346564972757619537930132565421068186428164319772556161770569221433721842903744121491353261407338930199967771969678928269428616420670031521229390802062927473641759421859615349559859924373163333599315019094142940413713230108792202560962282842190490767346561073623530240496784040981592366990472044002902540188867656934391899280573122908387194814603442430185126616260961846187764450447814930400165370876978885660513702233885193247799135063864359181842060906549684530232244454102008486259369722185606997252815145405577802887028536448802033172589296248174569345878402734874953957531969819532716183282619438273441004020990466261388993575307804975992427589303040134133677866158150437290422714431593610768232495039890256922162558559920477180692804267247701824307545136849377671814164904856987556983170074671990105450435665627623821103688179244798402877577802182921554223743236169238416274573185600958550290325363961073763763924723891172350369595233604088594659937083112809956795314844589703940486007666917478616417321662123325449794883023868026228440380124186751873532081264597199824487795052546708161577524953825501428283578899461652969920199921718147677036180704037840434682931108942059448071514935102829362717975114157625141380222253688120775819149298275112039921959669236507714603975848506810225207502512374429849952396256594298620828252910321780021470833339282887193224338351964102038986823387505830988610055730404087720556438991339094051173421344966119438151849675759281468530731089580949775138453042905119921074269114065356571180130827885069306959831361777896214438669140325052350730005605627095505251811233601914922179875032489209253057608609007339761295941258221920790635784306537047902719797435007214528996045856360999999019877524496494987976263891717969960443164332845505833118994871564571531141013212303605838253048679023089679027439532555627315779014593899069631373783058905266736586438516319561668441301342943377558239519226073475237404912360275542971262840733370178222560205553810040867525107701481049931396424496055166673624681777757177210156095809775491473374754584647036394614291119547894062798318297049345709155365422484257105085032692263068588991868261298949271626219527229814200279877757552268934204366158150882391689214494258789606624771036005452288969055340981165716275640459257682523523840358310817695306628181034791803826751263448660211123324251357787188525391662029556698786625527339919625744819149877616996542585902519937889806222099936195286232826655208797314326001505993131124671715799596927086441763904231299690429377149747981077261959163196037813815493438003962197119058441009880940485401215911730513917967608012924021035966907874450008938761512301895788554261098312010856534009252626853252438439760316651243945391606931650612320075903404908381172693888549655718754289175941920631712542175152468183963475302752494955827642326365776453558566734095013273624232304288367709336141009975192714951671860659314800259161985289204143370523235202399298153767550738206028072324920730029041855636361233732758614981202311664707159651914656603015132985554510720884389663606538350830793520473081946473416199290357144962731031485217554810995340943689516553568613126460258674149211110100977283520172707696508278506463228215044275589805813541522792899898818349811505702330524173288982689180384088784679900936357915962959132145609449243180755114207170696511342286830374175400586396417606705389897616123206366545324155510726545716743719498865268357063239695282457667678892353554861977555264459726910410220669059056105137802887808518033738110892064729248409049572771163586201982037651154077798205639747275881564923404261411007901095534900431311918775803720050177901853143361494660657152654264162805857864858910399429970420183383168802140428440807696307625437389129133045329855143570924306403806305542942048735220152839860918150045052251491510108020200391712971889581446200288204242316820036469164913166194135347866322749742782005085972395695398921386234349372222574860941970344399008308502143327636409467160331258501579072573954150243045669316934148303341651040869137707413072022932421778326514108005857670697849942032649082754682274306396191574447310115539733981792877109272980951325449527175532817613442640908318220319836162230866402553591840505792844238302288372615933970856116427496583128933985295429885202095793034194771562420860490556615294905740247109748947574905697768249629465610712852150222550803126460899525393399621701529378448290283700317287009879395173363565968239190440242968181566325085427652103573731276437701912000765569800921167992946148819253775549855063238294794424561638478290026986431185583369149219554164574714160605498714501374341113864907264586948487275652654743268007624498618119772111674367026472942506723870842784840312530217317264575078862574563734069501670023008176463520146474133727806194971035004109829413971579300158883668101004874010437377646375557284152623104541106600295401551459323459413154112659937393494539438839028279782188155747011589901936813922251573076603557073172319711798547290359942269083127402155021996789510031428022377663076162983121905706944235558071064143151534860514458515545562626467363812226005711808524232177914748914784130807357007223961204337555783649002443481180807107519343764849556002048847033190159130114434043151416790315922160350073491001089955873625938160087712923688271431949370330922537762327017881225095380649311875700445588467970538637355577781758092308041210105449098088591985827853312141691357700659844592556597799291808070785952972960247230704107521375831140210811042489080675203028003797679922306396044757003530206889773852403969502271310673555911450978285138085841926435408008695270886989236670449598632834124962468701927031797808168550187021126548582701079822069780737733961473844339369888716595642511570907637288015473472687042667624662671933350933044648529004963578115472042973181139431309166081562378610339108821005519322852848692738391430815017497186746794111463735837626867501381628337807715582037987721516526432025478082201591075411701815442362134206296032573084082841194640478331318601077176007206928676103803150558857156194742164444636275415289185702454385664956785084588023402316939945528657156612812412959816441348570131872594063142383440261172329769197154485677957107461683066059687118501279643912150263817040379009646737391862120922646355922775501700112661435406077883914585393393446813049197577447327340201528931166844752675749044856523327766678014118105891051246536250667703856498437351790142751393332894727166464978020219400191474477260199955477162311738391107724170634798385789242361179816538445717294312718554261036341773230063209291055650509097328989838326013736403581025243864567185568823692518864014668466135810717557529792974495831860856571058231981572955977123814789259856022303801081527476803837417531426020522786230441658334013186949085343488132737485551910358232802808376549633256232726144979900781825755969260854230720130018229895920265000075283343862602310355208757763125753695128022510559862558557565365205849295893871939867193758379645937577918284251521055815273450254834321484080669951503579167049068833821416941742737652310964219445921424722595306333785716028499671307777512921727125855614405967099490316802313377494868053548345670216974539484071396456770255486113723438106057065980494861669205441658441374236233865602636619980011967272941629514587140135693904024445946877671921917306008602685528925629773267563351137280827115715156803623656997168701105735567122790231791069572153439314917194686555814807453728471104311167064829008890916643816118273365620370052916815386765356869244661202739483777892072509903383945061835928339046949970102366722124693478574778918026904016482668519026859835680701223100311900239435737462148913269560729451699960956629274989940721355648836134684178039758579701510410472618741914104151584085601596964103230073094233654438942399721849850664914164174777318980773808597995111535683202041664303439976152415825702817307100766192868717134331917549130849504480813191391445910122031640801130026590699314250430892251529096255006037364325311155561836241847345075703889598132582936560750545031017750398975364103802484269008977554781593225342576623520627648450643569467731716658554720393625604410055228239151450836170154768295156725817144297146332220698647055476752211124897943750269199000705731694344819762856220596535001601202457892657074850947996178253418317883124668063293112956595933754266260761463342475064997808841469290393489958945702866451908386821324575461832015182633077828658097646998860949018194979839496405911277801753589995373656080309429668848336069506032676959938787180507500958001196694421829804779892732345143275243807342245024348587320878133668382693232945258072447413709724796905154288062763819449402230811626564095868928751391056169985757471068329644539623580100617441015351362322974547915887853720497325625704342022256193703355279149235729231467815702582650432960024890934318691813957428256127679455669154211110097550889393555502805090929400482033851171361854315521166612207256846966504320316978147092099345214191950696607643623622038915561625556306569787319308790287061157911194598279025063662455563452211004973668300445476770323215867294942392677214288950487631190535813854336067647505092892474940162858691624915161108912336674230301035024513275807749302149438868618120737005363811494283730665925588226884275494339417950447469219357621470572135091111111176853332715793731138323578597299016006250993884021021465135451257021790947539478554986931263580192970716770998156438876132219029324499746041465482385033730972537751758403357204012341113210450286366994961660611173194617710011760773943815229711845038060297341803445846428165675787966379692811411860437234117249270967737346147951324640293970603731863315721555143703687640330776119291045119990763153692886557452343933924559399729115752673002375345100858409630220056820284663862070317895137538074137191252311610989182947147090999241755212222243554989126367320773156219608563694690256890620451335947229795346667383300594874134037592319988486689203957309458137011315632025062521298686118084072140632863787792170626282059466291938706343702275361893469439033220792815204049159568015978747825083713127251021661959173358194432143740816924901507558676408714807268630726636327740315699178888993809065392228834507569509156811303062788830817568801693292628827870921442541802152309717203552227614369065383168648297697633443208905233319547456978529347372589560420735075074595183306654486057942614068013542533876660330939111437485059069626629732501733968292101698305763130941969928971148550966990575960509164202279206342915878819633419466157516904368846889570797794202740445729470864277117398072506604745860861269819642406144338122667518020781015341468062921233373123218033104966624541818820405429245651674783796814919895625016440240727207120381804912966018097083232162027340356424099041176440339385701250413642949289781904705592398083922788561198089464885469794033673102041105744006454303303049914249924586587030973857949735591762797589447626602922812642189382821888112829608611441929216941082759464112113838956062137318459942045228195269284470777512663091112516345602420417596081109743305828106238856812459148076049510866067761055948416923176916989783611199102455954178812610064459995550463092471597886693932594330128478989173711086973035951951663676694156460435853889940572369975953537005603870530083702024372775900854346800176910962433581856298685334995889773802669619698024215117543487523063085210437533547263629317590623633034517606646013437877276967560321937398050766863530331646650478268670521536047604551000657313730362814550005166247975958205617782496750352546902444736693533821001049595026235979107713034253157819020526167246023854395973815846277616594514451255917938958656883945780494861756817257409994759649030649552936887757997045290544989611070469805344493823124647964266245245661207267559267531581585749853922613967691427306201008753571278655379280869651481643444441923997262719909699673864239956530641498938044518743782631467748406577151997235983304903244772302038656641797631311642296648509599116530419113182261043932258766429039148877626058381435985106599462749139020332948405943834534305533041352000102154674074687581876979127814274435886586028310212718546995447263049884751138205985382715580827049864994091549197378163332910262422018240860479312491747298170033412970382437281099037089543827014247727788350824287165975991584136229449625227567891921206415924576794668299928389643328715869817774292148853592084253625348073669099610554761805048827620482017042012295090759422528277666311663087590573791074968512089703402841496816468043705684781121033898376083298800494131987180155489238462120281254795434515676554304881972845770389755705364266070547300005009169520665618833851508740994306358455655652460955517842146411445293676121504628281806390499899369460813718506837199655143742408353615792147388019413749700527304675285438936408401079810697297808827047446080706857850966227894394750164850399057117676976398075873573684347363909356940227644041535528009753935335010901886515569667918465171882576167520467904067535186774660054175252615560793166813981036446090649178546499397297908453820524414371297982086259565083409611370996415768242526030522890437607671443754344802178481304973362634589829179267714487127460733657032462545905736508386352031291096604687643738479806513381125884511442782707521084391763122703379978769161584539385675051512076212709201356869305642320882410458365645051824074132506276060745130967250090503604484492312858128495185014236626143314750768242812367009044952428431775279067834012372234542109302030003588654919129205698160468011797799931167802060289099526487289792508435940354161364161053528623554921341090441604878666881645899960384570619528266820474174897359664731257179412177328382938200137560192595860095904067581272747941837452886485880209153231331690710962637623576751436020127626005326765706963847200385600296844368842177673256755554983981514695871618027159932963334380736898596514328625311390513401587515055094172983036399955269625030217386193333691743616389433906537288143910662551837384375178888147376455333919012430073701798264950815197386501314785621221044735549790735916777929271977232807376006655824833695092801769870328491793578057946827072925116708598377490868840198035789871639738695998238531169296261587662073579219550480776547434401489911465368481483077930352534906880348170911807025683456942881286853897400582864303992880558675006095977546435520943099209538938533188010217612564554857478243189520021550301860096267300818094623364849035463072586990498482849384186632183854811268638977090458827338171236803626280958756543104173625068325595220918848924493279080387523171691240174205901067860358150243856150117443307032373746754237757581198574573785515796253043312085652762880074812598519962330546206201417858547593594184981197857125050457903407313940069790422856621283847478676020847022405731484100875141914634221833824002114196133791714295592998801612415007153868074124169402204960337062944233435566633855975190760297602549330770022943190140240881655093630671222068756375019144955081423984191624440658174518161713224748080869303041166742424524355610584689731549048121529241300226531151740403109768851538485385591217248432248271335141365479200196672780472358324861582401078193914317202216190854049183459773753675490235735877785142422430354017172132587728619913210579229316868304943517530342637483647484460288119755240307333227044379284979667501647506217676672110201244510654408709322045988173543468993878449335657387217534871948412974467637225839406315332410080212345379959208475568753187699218087888182664929864693581524876632739038085673222921669452078372074419693176418594202869480030898554830863075362451549043261463548311054887867155229941116295893254453507811821693893892750383783601893701039812232149730798695289992585899774325396204360935247083434627694855911919820905451826285191590976452914622161081604429753512612688898014809299925886010923692328759829894454044187582065256545314185197392097431660004376546982596400530213586630500626506477181991209214684606197450877809488119481152094946444952590450349443994416865377573398600475486568620994743272946372036772850719186459751607148593133671394596151513795618352487355088404603021649874632069833407468036698184857478147169429478658899720332520181261441553642050322787677594395629804217073349246223749553993476067569040516195952687833455286205430866006719490795022512744066150322395738007894612838741449138628982419432091267282848487593843293455169361759921859515694507952736414534919211173113630415518328677110319823528429242144658081479408336158002499021411225702178620067528862440505561571957651533818661545379907051239305432136434951319046968173226252331815959513557707561338862562650551682956260130638691300096222017935182703694722751130479109561606188708009822127320575842955327841458742240839032364269182528909445533171368578042832432967302399950858683063062148640587507876149738696088973703437132087107779130564830686392068526157092841658937484177883837079424347028574395583062189324592607279862358155061156819285364396727963926415808266869001545262323462313297947004538554786236860649500215332689196285715049611249223583506289794510821465622315857572076826289464654768389204650698839069375708313706436485130188259878906227529336438354240828335058627281859256056464242045640722261699030048376143499834684562117867842236155218806579297239241854220087225381125439819561883691252321479689119080956571358646049337690941878309022017570322140467889542707843833871943796760098797000222134045538416655760146292072758764077432149285900855444928506463435030757359923593483763538012507320279222483793430876746145521194683097325834474151390777405301141460525074923088104981386612378619196408398386118259015586734281913356053976209311716535472309784377362350142500195803946929016361026106441129856272984565229008120631007146866332841243498965322136792972292479056734639308408167515798939376223558015935923183969456128057202335122041080585216424973862843057179672075406411868480486949776042823962091060940964084587427952043759736663659675852246895968942554348961583556051158486103003799844712123129827162463977260577495873205862206333720171184542940917160040354113815849539417396333271997096038500055680718023978357922355748700232431194062147942484920345683209491881473239833314652567634421043914500174621517551605879939670851931815491922675068179750314020356178163593892857541198933326819681388174796002793873207190842973177754463650027141142296692745713054620471014521487768547028501931870756597716545573922882782552493511502457025868396685087806009542896492988015810513967066403493144718532689529280025149048966601251162529695371850909349253089344890637097634004417479627048130252501956112095712751573540526991765073077027727231586508704975228289647401943290393432947247584188858640389048377661363416806968535719239286749957710339680018589319966938693608283537989317305872289280637023844200892621792364258539186446830622117365610936197148678583113499050011738084331427347713732707873105312199352876736574545552508107942844774441423739016317112717527091949106604690836238093446438815673521151641402643182603801482898201676617471228953180621404346016223832876437503395797838565434262248216755863237682294431508476368351704368957335770115674512471297367342598350019788205015673203651363238996618868059570075831170783281603291240596930584657839937349363802387238692894015070851045092413579819133269109875378973812642842145340006754720888601209545694896440939324251904093114141301446344048125477236959797885457612469352104139310428540889971873928224220468920073037101383981703948636025842799180371277303834022911898093561774833980566798712745047229101863802927269199479631592234009605814818226792396964718762968737946382672025122217795273820005474091407322540881605403841297937337537400933834473938618024236321647796872340314628101421658631577492164654106735190628423999153211438222281500680092059270951478334653331903145058942442471678061736065032463756180120781161407863152300146206131440118598544167796474704538926840524212319771887267998914103832187361152837863841225747578456538770784480762390957961397296274572363172936166408977967463032854470567028610554678970138077057978137759292406974074419250185651094311820540673601920813759643518501455373280325567023862253096735430439301456311070722651084558541485267886417064449687852350884241736946923405306883912227774464204687274277259479139843248655861396417222330831730684489132585943391780702926996365379756442093880977513219884123048875712398834117336430248243230724707835427745855644686359998766809834393078348088268050323031278095963223270021436040548415354804660685847910130271824198432303045127206057568858957657157221508768328167683282738927628244136127270577114872876375151346105447367603261467038133950093761066981903896785909150524941442643647855306758110923099450270045850390160665582334045582561679208178185053247045137364037796145251082722302252265514547232716191471059077472489305663273393236592462620820355225808680906485696722148421442191624437351517958792346508956555804759171766974541443712524340718952371146545850666010994023539962380323271520897066585963851995878438917660868177758151507957607111155383814936388012934655090150656364835047410709114324550097640443617869007206605226459209801428112372372795508764208524743917514947555573227964728304410389225883292524508258580975313788396251928209293771501828028725730503490902094362150890373320315697453009886207678563052341154967440305037840033102020352796878417968300980178658216329941157004476857336191111106497278574846284313457165119126327633498545557649001185564680522624384260561883710124385023818538809677683847279686535531213070502958889999593389020155478555754638015586068666578728827267990173961520809396580709930064192592692319065086604310621589724659784933576372263936445368171673593258159507711541204799464895834087894561367860946396909378603613237385786349021411763726175328757955626637297071625824247666180819939167654790389124475317745267855855530875921398861735827525207557762569761079563015121005822147578336870260307795510670856878533982417102244312274225468201677731291026898691723078104324064088085091356395378565971086216372062752802252933408053479614799794706319766536036243089334987638925355521905521541617203683091142903621434815333485823529490898852829998769586536188464045114853231628923049884419093986922993637468662582055306647264045392616175001421694185835061089823362785190362780704378571150746019630738714945929605082669773151949510748273301366929608503008967527948569346265725588219654601007236740521067160110454117601671858924887088952605312188792805892175385393049016933268726633132566987688195546689809463646872692391771062317373033951412891670905691510704828457104861851129119640919085490673791994322891051561098431293470721708274251511192072397613656168525786280945229300142681931623192907384390772163774916833226424989789603849639156653617267336530519235662135877853042219540432006187534203410341909136477241330707037256805420889803699711497646793387933548484124757182397789057687610576684009607792404126561717609007864499796679961565296557788946963745699758842966173924985163530785954441106655829541171619138237716096283690692369073215716248010968983281792303333609870103456637196797891777726334787569220012789571946148500548941136944747317201835489677394491946137426952366107629913064684414695973418497685598630082536422855169825167554845013424324741324051097019637706298626259430259867728779008114061129244091713377078473151878279760267497515206770930216611791123753840810515659522283110938958546270632102014920379527248474352576465912931501428381833459596838704439016093041903667594626242257249881805563731560374055733674893992399587656791247090713481844248634880984658032893350297718619102681818355027457485992544334602504553952785115994297410167370208738275480806415078415965453211832356356125816915373986134359494907064552291120059420290032274045001917393425448993293842987453941489391364176676673366794277739681536492057407692242941593032231731467875675890691896010146666896508641017882118652889918388879037822214729251805594909582009521907747928018969979826317079828450730453902993941644208240384479970313919528136257506182553105780229272365190035310889348756572634136995247774239515368211678733759140594493560413912415889069320319221433896371650627378544800334123863254642954801376523011606713645521927802438012236858654503162896742755442280872347061868787717847897953994462621549330210387184166728701654484155217434201497000187886419098116122794485526886794235038352670097724205580010112741044069803470119880860366893966210529344657596554135405923177835258839032213779178698224635306514243317065196049531428390258900259999377766682091492249665345210509242161522538685467788774533150440890725539262867074308578383069613079711749400425855406443208294125048159170421286720861512418451319733791929447867667162130973990291252115856698827908734256416161787465525303003913737307017702516565992163376971989991693395508643780844874374809858976431418054001160890386331822279460981945017452067169210044385388750846930813747040681827413495049933948952708491373531022262980807863069094278313823183875146322792111361792456403587548230639056266918223232076097061239372179960336100602561033992269927381876160089759499354824170478346992149007094155967097300215998315628944121449220343729007965590083542555936339807717466297714299762019790543299051659706520322441936427927622836031649567313064983513779659737828064456405012156243761328438802164972348368729131564296052019629095463800656898184178271064220704399834726003098532972977372118263837221740745376669196034915242772827533071749013723033637319134054788386940465773897378905874678404866507478625920980705782341031770830176406829421845642450888513148262489777624639893872643392764419744632348967277302260936582786768533886382586166890282667961288937059751892092354097860347739138272096734469754413239408621369557955260844864322786928845429428501013140018254552501373182120178987231858536873914547055283749951288359382056895195181899130555908803846758742866136684957834116017326099797330552691648524857868832205721305186370506635535607485960958622209066845508758745825042248069857294953993793240459683864227911146111765974522391153610521355716118701222497821232973868473940644432034443827885065039963884625690279866952957026510951346338314242846033898374235751881351206470187897505230493001557377871656671840232538915449689235325297719169310704567567779673936876158494171705712589722320317263021326800714856734299330074628478541198033847457964754037406824206051272585207537115752467658515774437957153631002880300378481441788578554169179466871409600305920517905041817896111745264275329467873271730135435144302755379993833024612591137401254802080680330826456683974548670484802976289887608732773952248423757957445579172688754554871482836043725954249907591964893251824950413045022289780122891410545570011062262403329699136731989646645707688794989724841012515148369324799764159489362556412988539591470782856759119730183060907030182536894568209718288069793575344168245886276850806951320617171343909846492369489685572649596709979888983760276463950581282008503621052750665112375513569934411184344236480026419236628606732956119732218498890625973927653138474624387193024162063924210582784502673372011906604983303454075238440857930622315877561225954518307845032864332395142814463500186199666000753332272745276753823186077674194433457149971987466671091515789846637608781110511217570125521804055495265030642445644008209486441177526979913414655252102452082098786739068379964534554482603143526568807594511542070994276840544392998139966154601962794541568492986333155086466097981901794142297885683844744632148242485822936454492647715865371807201128396535623407167308888581539839078581520986945377980674099720599338079015132757960305500715002673000138379273384598736542060916617669599891631846359066829183015477269053874338837136390130916072704582897404353807419870792704512017313296169200168350109888072456400506294207901218440760875429694412845286370840395039674425691210457568224523314472858189024795102286592982704354015337934202233653787867267608453954171431493764390013540403873115999652466057515203937323274630202074201188742924623289381975307709500236370269694505424639912245495671827239882699012505191986080537807203797071684377645859974272337065504295495720063462431549359788563094219875327017442265601675661663901049506398109816500651729395244548712856921326580095226570849211332992043788656899431466329034909329453094685040732754298014455626985871423326003711982522033755723107669032545224864503114985915328869678758196614136955254908768878364826057987698091117931601667642734341416039623600014431328982443720894715253241438455998673998732194182092132498097139617236918785919746364826791057923313959302422688213967564918566914398989823506239256795332562004387689622235034621701492891610601724864237880677768202517958855917481586241180467667150011151794026639649202885871624070287008243367364389347212911562562207119942320506754240261256029566364069374092920745846235683898100349417422945670852481584598642422938796288757431534873028602089902377651807110252980259112511130543308296400063506704160445871600957913021026021695884956711040076074447167226679815937882954618029241837176922600840785180503978368323564797071461894864615437773477037068212132910808556886287687729056297661956013053661302552736218516175889106680608520753409978088631891935574007635785974815536588444959364200369850190661552032755280728134592358689610501279148470902804833325876010995080585111098900249881601132139099313519251460907255871930786933604247317643388803749710259294731594427817099065854789078299900644703850253957910832811240255490453238571971527707306728138739454795235502337347308689710764394034017946103922729439327097613281298826273860176605994848451067570091512826946387615469111033166145894164444108413995959523821320932686447687189665185872900983664338463096994504212083228818408107770717376158043678499776672356624185249049918363545252808340636549817500043499320470886486316194423159035389227415959335734413795383288096145757981760148727888288956733925028157033678352666287609344230614339619524168396013865468207593660459934360411826800841498532964637735652558416340462599327519290892365854967457896436984847117717672161108297855194576705784275148893946224431161553634850790920275111482952324910600212253291985402914917419726945631572671695116534130852621172127291848227621506513254805930345085015618481944935120558253930622778559020390436255961785215036943583115455786258839261379590430003054551508057422698301345352797075483041181672739078075362508692244227835059232887318691760016880522917266278533670759154716660306408682248910144832557584049040920487369302103122987318584407707453298458368393610632860416112873990117406511184915286949291663527208780066195793159950623700682734400137585048080166978972303726641745511842795708376685669478303230032715767187929935391184069833614444197939673107526515758287854254600664140680638300189052471473365376787922630615629967452975482941248628154695800763004392730045543510540096908069336340537513907038974262332174783068713522089452813713855279073944775891936028300148560106379803728067873984052791347004750892207996174339979211539715165789144929072959365702289024918202982186017158808860613391605877194282408445128754709048059238342307672716470826894201659576559517579398174587703122383204965274882921874175814870366821784969982423586374299411335107052689724229541535984788390528998367203035427363289158552291471856608330041076523981258797442673691977086992199004810179614050510252717484917791740969424386164045110330370546720756460777672096160865531870750229267765087037510119435567396889004215769546914371043740154634138776619841578278397639127282579598869904833129263454874538369915042549191375716824953263178949861789919118260795154288914346614801328087354358438018940293501277865500019782697859861599624617181129323032536792511130537295632949572394250221280467257362893685115545981556679267926043662290172375590201331473285276019969692149442268715169616309108882619636234332439110653741957198132179132753147886755446927461246474004781757912290643088952102885437872866021005565499655482796070872353442106837766953030366293648260212929135403961626594532211096548331915010626745448158984795277621157431247945374642589641074941391347849882387509303448793026353807135281244500708275781582226492396485588171671922174906257630138970037523998404825211357447605568804616005438468166572462407398819302366281255982516763280354538803326835559981522128891309696117141083253721788773414784212042682804200815097567453106695801243243151124727615368142290739352487286163163530153128943980968994644289162165217273201567584893823087059081507945488428389012862990745274400067906798715357106864622076380785388952245135326010411377087042339152516135377709308246326580313571726329031280724230656696046341431997367611844869069788505600663590990680329010583181116179307657330443783003241621600515999399708716863106238400257365136041061791692864675015414294763951031294915150758948201935729978092231503510766398496189003992979258971507090224867183142589513501233999320451930376808414256117219493647877776944634741475076257073992065778767124310425160322895593841062849009205200625823922000594957780994427349643999387845695235967172182977474997137282833528712596649981707402412385200213590236170742269381025183949238493127471554935869693783707924904729256762684746163232849215611896973862854952312931054158608822963163858585788182755867036396629847297208520954433507185132673698151401787354769415052347572528754234274982014601389466672770309773597101471785840388414599360208935110630238801259947232646561104444342058866361090524262577326097628330649212827012985670580796982972438447483548685833731640203117420198811021851221524109155240524485881142570331369883374440185676666552484874666892989109587892733097188439676506940356263388568576399459554876813122646737839596305746378419608956086456841815408106781998414879235569171081155787521324287947147758416320588142658124233816126208645993919539502589133587541438994065041740142901145422879176422769504637132322585558297253179016491496506746464266772402216904797517681537916176876322141257386975626295086488154262170979634260721163383999388609638397774732963690086288100226818846374214619977450439691865300748115873008029776728915748054725175366577674814315390561544623724665716523351034276070856622387562034863594331161377082159095126927513999386325834575423587141815251865593707543455045689922784435265226174379655123418550180411517474662118984676306177775362501476537036305303714826602575521154533225803187799843971962344948006194195695481034126631357314477020954295831372900266183572844497841073351070064603505514629571574337367015813816213151839930780596675233749232640855229885856774104453277384198024144066919358477846779632695836976607887264383426104397910065513690206832052985129916682886084968957145309909367757106428538256714057720021811738678145427139270925027988721872861132917419320022986471841380872023365157111797665165561423687467716825226690270515499115772916525312070445769399370764353734319299360476825306454944395538858520073835550575809003743059863994492240541871647724753303130072092791799291286681489608371620644552546557118132060422900739656334405566872796480828190281211107509807190997603906662117248182993415666930658585717165462648653962284667754323154794064363530448261313037139715707586733950954937779444283896522418259176855350927162865186728586965992307031773186978157903281533389196551629204625565775142925230368126119845540590127598074228382714164292220810982744634622100765347651778447489875077157954902907529709607868071964410610113491358302793419535654133706420320958938664515599521086986826116024703177854028964967489688234071906605222315849208528388267619490232374713578693058415549153607956223275350550609452311299749378646602755571508649471281724367274849715088174241680319305949107071619138255285905062097621298337802139269094713893027526802611845129733512974451990155470587996000139698160620744654005897776784128184099612824330471259516014671529836050940792960190700683078965989321215411041544436693057200896902606948737178749167693332438899060411178789742374256611093966959651922728178863794900920763917081049618047023791960171303492834866235797708420034579384894040124152341889945844178127837879471156313364660840631657142663689678923835498031081803509924850292952268828572241003286099031049198255754520568373389733512242966114122649956858404391741047741610572569509498212118503941210234321241703714799892737907882382778170579618571474624828573624055611754198981624449297785996534434808771362533072054305448721899763752148568171991011681922825335442492097535625350096309020507306178532348103735383084233032488911332880310604325958093792184244525483046880106589444788668168511771029055152560987927831174957619753096407854349129388290459419213912123798504065489295436225414703900218534397864629662124635895853712942474377934128578488596972954498947359772244388312075639394502342992475699126901884994399763553341785363231778232390322459690731583723665043233111720644833809504676220483599093932515104854666702475335751877366950553450053824326127833496992866180152948647075401042715647976208597109749044620325934950085656893658490584836106328068521168738974570192546254465222133389117941719086029940764432161946336766629939664957909668181332636853087919684989965162881411317129271790892649516177746277068693877525803351913389396155765890204687529309243986773757169476083071524117341752242336820478210960480546924296058524828786223402628948119932355049404974625551609877663339536683529388965507135454085495337586605792965235263858022015693426755297414303400602180063959879061679636326347304350153032923387485884670320741490909815826992958069218936437494795467735008933071856917096719343180112027334711324019871549924069519351130948953179387968651792391768702088066675564103135655827596860408022021124193629152422287774104866612751470618670136401627423207094192723838037353688438000403233560445614842528254767934113680200813762683190735046491851896748131948232570354701664445712805439112287340234799038185223141481244491048663983104632434485382616175111646428019274491953009528211020591190541198679844970838408265237887709410422902398708875773841600719672507342764474020407337755249354786050421080330850433077366568384663575009802937877342333330900640995963200223898266326106554075731742381661188950228517416914683772524465514112585948507174662044268155362134654965192297417170202102107576590053054227600349737075520286375984578605913484249839819078180648066907433679187004370206601177350746446838837410527568341624892037918412845438961970330698906462218678464628562113772644357700246984100020851553499197689969435070916177134941564061170275336327883093921323109725890573056618428747346877115873680877601152223589431449338008908750725468557605240017639954998028853512729266127426595199380558086841886849565641514756058428078226720312049152574879591843103223332264363870892611259372081841200079758361369913167923346920231887296705280266779904732349029892726438230876512722760903141559356418097597486122754294846029530840931531337815183344445317309301858286087880032805329801439619574146328607720118619002198548442521618379043868163619731358615131991550185058088950362000618040461935566449211443059439540839578642701987133601387491429953524734990272751649635460460527345427445675770328423737762780735627849183042940218432496549587335868104943447105058810948069455232711508471162627315657616243318885324148384244731635206381934637398793245071921692331844866976784258614868653885973468711586196610869180469546852097411469807082889565343750804563672391303977888607026608822355385657957658110282966724491134975602460480470201146884989712753091286502901716401689346618186755576765886356602498402383534625467337529765633226148193222518674111527265825402892851024850325486625813939392950851715178569648013898460778975682056726570191599087184228408471419958454319396008496195428318805674639946434993835212074743121572484769397406548820472702597076825440978569237756419332699022978224889350518220020578997432456806792631824257568055681278145366817769787665752607548587356028772972512302029701089850694865509680010935830300640463309362100702883166593780628273653326070385640119375098639068345086407822688488750839096660155511333936935663597242632736740645104254756441048871441945968328289058793614452067651483270955346294402475333458081857735140113588360709289306242825314435417283377890053250400634931191368106314232945317527843136439404126219448839666717365323639336855328380703630259666472341474159370241586280907895346341166177426097070495117624168736331939862828488477824474558184987394901531067262481387216917712846563087754099773256427696510694929915309985635494601491982478825714059241752091783154219274584044384526874502470120746089186363710664069527019783689915136754502910505568488695009090972279858391642616184206726772277478927065812801590469926058170858373291968384356702379559734576695559117923504747417623501493603704776828874174675255030853172183635452728363294617686522196693247650487453423465311482881461707656237863731365030723329882930211539772651462126224158217153303281088365708267761036101320121067115939417810525978269128963015490601553669173560386827767215814394247065505184568928978730865772829183473168299119884813758116118568146211271516226137967213031184744782732697651978045113846952264449565606622937591759521875966563633282909727907780825317797165468203387047251279077371708194966464107156007362728210240152286575817064594190194691216009919606071402599007804377897853314634662332104641646689368791321664713938703742014630507132018833482560446874089169455084110608792161599004289771627925457454829078226810118447036950086527141980649754140036951548831868356925008381034125965682735920691365749257621140478578144775279528582223870926406430732139246309469555912179110308841645699249637412877509350233921171084346153025204549509907006013811001384128646609211344685391942163112519048944828063506612930608783338733221671010378648392063995864084366634970157369895380228029997315646049827478786044367410783726060211883580230630261506842609193605450195677485466475967941086418712127809720133488109562446675390157095802149674863851312050695593330722995023953025542085217416174855609756101575395917592401904040490478747086644528300734220438509680757170262579112758606133086843962834775185191365542676607374538531701862295120732898362678180213456230743075945686171970430055997328719939341836655161823177611754044437549447684176518987777994908733755771312488990083916601067261847420405015822417074021597075131613584546567839937734795463168521109306098779148104941653475429762705545062960139309273487761818639197449086116743976840586862512260647942527202785238970719575203298082226343834841704518373896385636760757359498246330381811831384392832840516167342050193298324153136386219415230387557122452288871247527255338411718818345584358552897092656123060547206478928940480852335472242065378376768664666386044531403806354322283269495256787790020243062594066819064393198544384890589636122833397109764735667633913476408906196620625909254492683710655170940016505536117238452916723680829194665290411223593065910079997016177864133044117843855041766935215146799216642033803158939496810363348956852050350768231458717985945100183534502773334173236204862114183440357264356099496844163216758672719755932832328058428113047787814867578415580190906650641368853876786934714053876711493335818217204295082150569198799582254352568344632686920269471439483198210502958706227400637008645798054288284769051342631656888274043835685534300143559276512559048447914717801413692940373401893542620970580680036142686097273195022150321528995600522364210492997988860127657954376205351317541880667596759586811127767129592597214902188264632463645149348062627461650912906005917021115254380322298438321537762834162311048621936220605397097431214024138122596644223744511279200461066382364098620382926418517477965225339490948717631969289912718924411591624547029298859397718177272937566876859212081917276465658534865808553824842897380194182129073049620105127058324991160683938032577298768258065957500470117587530852394461669830509628882158999616968930887045747925159865679021897088274712105846572658279757134572649064855093303347565974269280159618311183248028709766112996059108670713228500312756332326742554940717209084659380292719626097516724524254805887582422269633364323910547856648069253056290156862923050864400325890736503840876923170754310979523834828352513757590479411570407160405539195442765078018741563463905575309131858938015976394021856860008329101143722316768435959304154105170472503063512853414917621021243154158192244554578633889317481116598992411551747159138017557275554015352138197827634595333625511550021062757073159190498602533610207019831500103269119617150577089052204784656309642375930935513217098225706937714821258127731763054887452816779817653733977877407807196868760857719105540977369897669084632067775297471008472188898457462650437036231153259229851928585209676502940056939722102516934627172876256573479494443264395628769436384106058779652745242044431693615732949472948705868183718017133516762282634894793796675952452425058631318457477551495258419464131007029211030972444179356946421950019559215621841105516184426182655091849622326895313154198365261048331138560735114061064958214431111604071251789885492656991181921460419615432088274646379206720035131732965643074408844395096655961209615001621265434931720623465117015282764513022239367388145540094488801354599455519604055555527089063084647229454773826160022883353549973079354867042457626003971510023683246929529396878752242498433920796833834756921915837769012361013923535644947624912996448456309660784636442453095575832066789845437129902091135676647905397194906174104088637432137462360385247627662429720725031486017660154741655917151810889780685907337244237675625946065593685717528095338231473865535705915175872053675872624853851808347040384171293167986011366364065890507747270105992921950191725780238877591190991540858905007573087749637996284958184579384977025969435421475158628748846229182592869033029907098632743337310737101713065983901962103864263291234826558027337489005589975247114953040997154871059423045230876761246739903216865256868170716204246649747813491210513563979686542508532091063325109143073847114226713588092307556301519074465697140746775145239194557780232643431889884078087646780590613754145784329512426264405238113257460745496909897203385041428975536796166969821169891962018856839510300673942816080635515578794405109744609635680638857329181056710130737922856667906719443933455898902779732760931794347612053036881335825242937442092016805209043425633487777405717761726158829260040971295170248627686775494990350386778114841146096348425635514357818181212068727736991011925779427946558274486169741985007513965407458371343569206080000193190734493633175420150725603767749392069666885465559138568011904669553829395439612764181993414551700656357246035624319645778330152162623162817796423599770899753757196375023109377842941239840434230750092110769313814377058368211511556749789277403469755904166274265685315193262483622229938713279026643309559404045937936486644507837239971895441008726103081856714401689159492332753738130696676169822818144559886212516105199641249191242434252882045574791792901359272900236082850272261001929683892246519658118588404536172972879648989567949050995527465007578930489595262767506847773560049553964979411249226737502389009495276534493170429890069095561082430884927886585826208207140501130042717465615087576465998871411147907040630008264202917981559799825239781837285428443760834446151753297392496937025739582440161191609423567480480314164501565737432707094892592842560519470769015106449887459933186403585767464647442537893829270485034433530411504923391073765630500491126166338145391879821536139634031602328107531093303404838807946659071819916570173680450446073295185625727496169690942080606381594801434489765081695432292627741129342822038705658206360238680625963990160363547917982001064737745506553035321884405884955684014024796532934059902962537652270302630776908755719011652570190864085877186262731438894685651383450208149052156424636729084193675674436987142525074980167188300150787205917577413070331821605473023078440107369220078768280092772683516642788136389579814230748125404743412999593191494442237106430838355865913705131910038694190158736708788235250908974585338481451720820447937245978433922508592557417615314675158013845966439486329963509728515653083666152054553691687209368680555606837651592597640465585187299545736229475746512703178000984553572743282179979590847400199772904877905212128085129728243989702178260393046259056191055768138561907531162810175263881807954196126233483570944791995256018903796551128300284065447935953542476161394426476139854841184404462648213162171555377241048033815789227187154628801872861125057537396801633558596764546923054623734883311583423983070906863567316499118260499720167059034666507162229755913357046556227223367695935980507280654260523544592002135714995659958233151025540757571292280870450150081544548303153227307949877864406499151100082788289617405287689525689651768892886009896240429596543686051223726348639479568270125175360498190253545891501740036044444538566396027712969932696835856753427203463875769858930128932467305949089761464582934341347824108240950839846604764469769610995931531879306132451794121966101115601543287658817399985975221926471794077707950523086975319123246707050496687068212473559836867141560776857436341398140536034757833165922771754129621058918980478271658816699323876281510566496707221156675865744238917720228930266372140801559890754884224063651305699060715871217808101140004812766463948208626291294816670607256785109307274789012097980642764190001239050371433511655800213223337547118962613206850751677463291556992994025524063502722928198887700625413525422572630626521121618414475559971453806549817241507850322680230897868710885692597213707188933960863419451439778294127035524694545723904044615709224600014415340210235046279234064199082476896981598205765287134714410161290357608728151039518725331829837277123461985918072237945918567903536269950677643730302885211706648437032450485778540573028396188706058333619136540124716326557866835716367433498692003141060974896762544823159104234725836481570328619703897526539333312064558863329552765850993590123393815704468368483744249299069382941654552638801076738136901895374417190218679891418971850963202127500957963817646711372179416415690987743638281558836250863003907404990174191844612805780604480457951313420563621384223520551066958780552132923761753998548961470494682839229224019784900284968629485577414570223440842131606425133998451058601245562069081600806930889834544137658132163483394412669799990075623355961041933744192422238664219351400100260628320647686152966601229609881135818579625675798325042411707085995074900858512553559241182722790397212200135856318931540013358910804052134752603034078321726567209428899566550209963828385610191685024822015933633334241071136063435672959899682908429933411926464083042287206860570740285987374650070422288907342509693200577511309841371066760541936221572368277567367053165438300492173370432295144966008662838478488558018212908799463378432058510006224389023559676937376721121969054557111477911151339660286287766933586764639620521850437553073825173481146830354465600217432909922421250837390379233133471643192572299670096411569165560604236105834538575872322706177873173095291195568249349226320651676362707140364947798330670926599962751909418989749134415394081879787459137531420154945123834984018493559155647744267722742625779947296092647321293839451120028224681174861543171899405948388213953468763912902278625186537128281883975559519520032389774253525931050005617770136802228216078271033362227547388250939811282917644942619805204645357746975450869806625164168910610216548096970383176972777586332195531626049595431836077774890971288258279261098020916024762003154373279218513782039254104352749145391748218897957387935070235456565535463378339053060297668281317898670525872497552878594233845566907068290009648989037272148361034956182074738272516512444767113225281151536348907523944671682420408113191103974823458791359868932626639684856104852239684402109573951199527800563036780909110251973384072022501890640470232501993421475226178062810306285391330785525214015371983037999686130142060115599695105869041022164184349536275602531834612046276815138315894224883709434493885701294035266518993611888369669264688432431231228484331609305075699184668606396467587090599155969625871195351169704980456572712850975929469768760682931813417358509659878356389421215597285550232152740079774249800460953169171111999980649289905353307596173035749365322983226806807774653103083117411309308679595399236733573348510189691718491090181137568520807027671440205192980424846346659908555156521113760014546129570040127561232476572715137467355941426528882941708442793199306325435866348957993716238456768401421037536825683423630936013445202155014287196522960197773301034230444886528635821400156831729860425605316970290965288765435162340621171809320046907550834090738396479054657370394365596473048385479641160518664683816772729409116400989869998544188323433249912848683832478009544945406596129171762710900740451485936252478746863221068979455850221329775276841652486933433136241396047189363214939879357159810207377569345987210877665943995599625514629968281364841979292151986485139658976467963635412292668297315254501790676136822094364519520989478652673312363079769864714359646306137411021320387083278867611195717574689994952348053951038149590527661881929637823397032642508057541559670549573016784425699905337270504712728377739735297032536047617364741136152273895775510187073397554546581134349971986035849709783277990825025702421793761990922506372366863856475750161620107668415073197294118864896043544435584045633792100681646564635142246400708393389339376477793280671678706487577052060990488518055111720007534929399879367586549571314906981633781030070678058848619247903167830766019737935059124021052874762131753977979677976438489466132530872888142224345868419467434820988256081304833547502503601676160197576210648951182718666502398229368221673884785478259046677335667470702563182964520700530709481192438633014134452546385806876547156660866229771984050741237851298412501959462986484779875631330328476298319697585732771878409152461863557723420822533724358568234119187733323717104337529912535938856879024225268430780549052494641774860546089123543443072379882676399256158664384528122509978052407222836434579801028653517424589324389583432363393424175360181152758900985915198319139064524333054144578194273210452244947842527679743110388387173229165863400571353165626299385067251554890888053532989475873915013707455604339470534207600184648511871873094838315050268374282161175592559465083013070753399611098841544989930579134590000574506228883283265591826794870155482958761163490589729434190330929905570803922005480782121828294695667189037072931721594399285953768163899291321432162504713160867977450339789848862921894695552328110266490933142520563470196191291578259451302930271080320955906721305165335040095362905443771919138644594011995853064276181070868348036645352553891873490244181710240209193064128282150128806843459834262538049320464889675122243668798874149498028895879865148121238693716265556417496272039685079540035841002374007517624090492068754779562416269850731978827906132975734537896473029389763816800374470279984890713539345980983440795601846739552755623589455597716967383251158637536871102014783086776614364702716187969594858856201358644585122489106621567894308256869572688587812664016179853380872903999890718862210881624694317429013710000799670686640055493899362900191512858493848716443402822265134122773781731126918103374721935329140203772633584908104632760862227894837891069127493290991594302977185941611770521524804404363806126132210794195057399470767166090204614420771421060393509809059220861290383729854312769439012417802214049110400730102120263481342379560475177515956667676254126384187309132699023355400945395345850859693959953696453759937945647494729940823001072007396512339908912457356613115663062638854935336640329524085572406099132178273113158944883155235024789470992052083411942165633164542136264281887016855069391271577224210251987208198601278489473163694869477200337998181927315243387682384388573017568411180143463614380643673639629198531072790868385833051268475826685302929723287083977464878110890737628411029925630599915297192841646282915795396370825551385624474608666021586304808167464654535175572282273605444673124927100645536722489580448859119380862380664234207347143503982929196203163814339028570640731870398223879348552477040496823021974543565613841583397289533644646668727866435717306183748116022464017076766911978437312476675429169369546335587330976898804426311385527046605220851779836435837765512119516907219054798461040448435933773194752449916918993328713172482198310003723265628688946651241326444231889712823486923999283387775106335803150344280660105674554780293235026589092959727092473438863623802125367212763299621708002442945984077327999990677716298597842947165671484196712374372586567293979531232786078254816299895348154090269655812090034478462510686436144500995998239799045266050066952874411447735476274311622127841653384978895517690543370230105247929683244145802405117500836956903431384588032267214448269072129615236194258876967718350273068199370943017773060629419266477466900360223098003764690907614538172697028103870989815347277288922303772774283938846151770218892240636260166109123174666080796413820600539612890329133356991374204156635969933598338291350106664936267283165639846586897343773572297127851134907804631688377734275460951107556110261600188725104048033380167160769373119047938203683240748696496102781966510683009139515241402511593456791398781669707524524490174928711516633549409014285706966669268313317125841626110310662716264044210556014558889280590816631317061274348769666320921500924855055066643540403772534338998433324146688142748890367033612139867985765069869144021586062424539656943321127650025859933960257605287476797799845732509358148130193670121773815469912990831014849377345829416460268968926655232172569856923466119169064086756881253673100563000478805402622880887063416343083409509033224005213028649965354762262410343849249077714183547896091509788019584139663654992865757205176420702738865011909812292501708770973641236382155295803210297523875871535258909420829652429369669091068592584197942382016766468487150381562759716876014355434271736952983187350080857459076543433684741765952588211830327873435982953431720169376949618858969290564840165490436101686759607118139919603046036199628185694537127162948115003768646418406664462098443456838404575821571978280140940000240721957363814352905826310986812377869335166491047061846504854470660305864906966729880015138778383100496116392030033268683399195959238343663958932856857464548011776491239712198663805054733112058984470843619112042322213964835526321400336999689304498807471915501358536644701578203331329876695844353899828267938714968875737900038187209311367861354603651358821306266692574242727218243424785430017399135999080255011386081189019354557430337830725445092878820723993046451101271163885634211326451114703231298649088124545270522456912866688905011241943389159175729049789933082096923706452974319400714137027594965514833025124276544651789268911605262385123216710612859795590379376626508629680035696145471107279189207970526478001541037561093119173943969172684234423379097109927468530611952725793017257241043264757637371730583110710705850282984292186800118404680375599078981477201172035227581290691247965370893286457574908227524764699958817780795360099810773261607132806493428095459032910873122997747217729266527579041403722785279432758708497690717187436073356550189136969309297736153028050870261036500345199231987369126688173977311306877314266461745240199783127936534195723148624251663733526457751439728640328502985485959583609683823252900410767534171157641840940340688961943799702546914751917681964764313606095634963398095575093101070250412076512057914266653038294113472693261037934043037798197858667989987412733975300073932592688596646020868476393912760974362764242668954180665250901791633137695545615981485185071111234066728602843927686877611170981097338677468169772730646713146500636544888312912394057607915813242929267420114207293490484683110855907053751562629216993334072681885126032079446365388531391578266594000109601536716537109198226900721201575314442712234190601091010304642329769028457828567555483652094796910078988223184035855767012599421463252408589496441229692394462930569576894291549587003769162024359383012802958006044604377058997041369657235470260211728960818431996704842067131230121036851589189105383332646995090944695453448141967502111558445982380362738645619511825771000899945125019847450374421456339784882606678557335199188238875865466651939937907334048326723887956045373281532927209354460306917752637321859772734627083753034158034679937557024343520627611296625641493664653338553724249650019923643586967106736408877965203922427022125873997418117366239550225968499015788348508857592057708693848214122196924934839184118910074385964565160656632134525980667475090825493185138003267374635943400715582573330713275973501454748695413294397307151175217914562097878904088864250259463524327593090572969675140860159080261155459257082042693510979580426332279504224980483998984602775676370477275658127949435460073483695066315954061535479641822878132949647516001722711289175201720588548205561697522925127804471355193544124811870719356591946568607846665725321172417427453642778590055734897487168361377974961845503792389365630962495180721264118516421732195074902038239698993141995183504978386563326187078137316198926357980647038557930181665905063438890154444798027235222336041328987982473487392287934557216082019719118588499704376944797062709352780528565657742076205070226898500147652373784275754867062990479361354808907835725777351597990271368590933752019569749539561472586300129198551735380824890746423162483326880675179095283317972485775691386607173787062849553409652748758981074676990478954112500842505974488732623810743951981069810923008229408244473038402709735821039662334699842080233008366859112977030375353922506289066720588455508048685963437346567276985408488083272712184457673928546086712286221305131095241952922272758456323558941485838691986405638361329813382380946440261554235585532434571573691739448261324479550921437600163535308358537691490257694239075033481603536098501903688164624124092198569896955613679192025105762319403632727845101767583733081688014075707016292103373636102402883404270507465255377919607678554015252687431300679157447460164946615924105257192890622241533043332713276595556647026957222812450267521037684647155547255947968408430725599978060360856400494095740118071960475928646444307086791664681322226167599099338732789367676366545664511045731528398731521632255553587256410327439861158786570297205640243294826606111806443881728629657523062677100868783009514480478742768957657357226926906156551606283794482749155861082024847753333871036018182872636586559144065115978062960928507106384518360786548507018080575956531630277306806722415257175589200737240156050056259762966064830173427441203635153662229042762538233600349835556593106387951564312393144988394381738698996100151409957152910333021615405512630954005622000402596365390574976964925344334389695581046754388198314624767890795987383958496094842722078255827613138540038935398098709306734812648045677840185974549309164764558787747852674324329631475133349562098821237804141189586061853926090657570415281270487275391812856396800453795336328460032565391652447144450716225644859471005326603715614292107022088561950125239373670394249883378750849663556009818633633571992059482159341111378941207030674242160446743349618965577199042181333725275292933357726181603620085990838898261585286872124095957512228003490564920805727717943243627108844349095462630519219984972281144952276938831343437290761082279521301435641824684325079375097900623819140262019504891744256362196266687639528562972623114127303881106873234027644872211692051362889205283540377998607337997924862244381055655960351167275997974263247372033202283737752555266396083563865964332014749576898228323309393490579784974542530686334762495138984835806834553914290947945153750118807168224690626965784995678609669674998315643724325433995209355868183041772211775267853428295676067661667873850065803313303100303610472712487605159187333186336621759542143600677454870680889886951136337040579116193291014709376346195916030905431117223292360241729181185417397930959125510020674804631968792437025671054837574888050441014630162501364476951092969099051059887056720631674627771803142225856894776953107593760079470255825154806654871681853812900456771103727989971968351508350698053923053734271627601227053296492817761783520390576392797322470865328092165687559087250869531923383544161052535458267327043624985824563178206663228533226033180942892964742533395839665174631914412205354472289948001522509703888895274712847582027810005121370522053857881274273540810073582713927360705396292848364278539380690216015616687293087139372292210165804719485588845825550861224031514493679463390566663276643148558274994053142855996912164421791327686266369410074236222201468505135230375493477861683547843105953099135953829220408522977935412731517065769207976541389817090851480615455749748160584658463870160227316302819838438258005170927271259497536467899526065380597811132040002922123772984603363651768707976561765107374208377407501274080876977619780532695458607800659181484226154367935131537094994851371587212463276239947694220090447138179440098456782283389447957556271135463391545935573008037265345761592231834388569038859771237448597743864210145958946804535261017072285265179008187410673902553284768833715906266231212542112999281965509897943892020892601320346331673003438223677264194480745846192159574711150458732494858937456552575565061361219088796085981432215992936924959013534752352424760334038034686673770761990388247741344787748294112607147179711300511806523488571999778890361254519699875654497270039166831602637470970451084543775357591270568568601577819513258282633808752038865435767384807044924430775590317306891516310686178748835513411441391107728418101640363393116796769526069575899571029432009457082205116391629332936568259379403651089220060362847569767977665683799041598985789683858056471656987127927316641022799459178061273379208895921241086882661841329162073025488271898719608493820795079953087046063586834495912870824676676699569170722134251011309085675109571342344346504072284215048010146507833416316999589159317302923193345871528187929400206140525850328482015439398653099124622045148242216545958797901232983358764147298575352542573109367577648607005393794458749729123548307601375821555519304756973176679733797744686148449744563948493904375267835752031522267696288298057066929347467486716891649175508609213403511110537240958610855243455320645384611986871655692709754353950778666549445484526006070607648657943549540864598253003751181148496557729768235791535465865656231420789045322146668643699175289486294030300745030025497042156442497510501695116064691637285422132834765358187137929532146699405962635661346900245200089813853960062650307304136805897365902365351022765870479761442511775966280289235562994648207374704053335261137805137067207926160553393312980444411228771858481832250815309751458969969908563066369306551250889873014087898289799240952554558116441048880266892448144643779183433563031649798449274638151261434452157523409736064561088313813922425499324227229085603132850169118443817658725636137623504560004297827633857769197531189116846760403585706618347749041619490330491614934541188984772435508889064969312483659854716538475866411497331176089681779334142180477665251871235876466516758596567937807125897025507879964300848692605144333901610399379623322663872050504074436091261603838296213032783647025113694969094578510584551881584552838200749891124004827418894383370970073432942079878025478190793542598262241287255369888917326413719408230484840005109700381699055522874256783402720719756561601016635445893909056935744504117910977960194999370857544151902579542729947858655589819416301830250590410628016602287888426475924419505507335235214754611121697998883550651013112856202270336640212501830998482041913569072954592012369349717151685622743000681724833802674671204769203715297040660632707452358566558671560959068192026430838547898519923415279076618802494293994757759580861571059219111563625085251602928009672718119208053172326283394020372283046177856051400469828045611643921257976166203186035537142240077381801050786220910762503744514271870978448994026064146332196518070566212826158607619552849163264273579218555606114613912346136988898530053837845902371922393176628422160391170318474513799523298248082944753387710566998802256205756256454934275908324960715326543832545522896526374188893518314736008968117321920354563943993825048201940408744603747762893350029130616563078574185408627585284152260382057120359791058360827920851372400603602151170762417968197647486425896193327489564540241458191097287686115412564952362193401265480007476705218818841248174220150098579449625748576019506800672249392411033069762132548029365417036398510235788031819466850877300951043027955072498188383466383760067314434806165566088096216968420714666895552755824139359689312405757527849415723108479412503112100762353363634507909694837701765037400274036888969104141619518158319641650413038487903583232019977995573421612372791255393324944729096589115605244991191650045855714120265612607673139240154628035420698814719095801358407771915427850092111306455107203571572034449782531191203974903244694393424917183025276875063005182627582235114312665968533487148047325864486369223210188661468205409177419663315430876584710676639412118064684744111563729301586282048068675919790068210282613198183848011473412553121909988733594382716920553626423990510451308993613344751410513787557892508035883756813718502914252708468347417637380842679278022681756712013334840333728324240052765247831798157693749302277852555194164713828040552216459449130336863541298580479718040498047727832170139650314546686164751401744111024556128573116526745739257987759245592338542882178627200370447060395330937445299607857809216853035211805408627282117931036448645702892507375133678030503987422321537459268425604645870965551101694141094600653024017777917000749572483983585741660772726874037329332946761276594763263330784792079156549009605376724515398520565948004244015708952634282483815696588068249707950452257575960348396953118641746866876951944859652942940546558434382812936639126417573273358432161468394924631971645629093726526869590343001137770375664655320422695108820049795086909503561655485094786728946312788112074669927705670434895300728773078735546228279503180296406743657957999941100041308562691495795645681634167075705625901591001486569535413509462329299850865886194394350800878165889674995841607660021573819825074980067259026894517062522987788677571781449157759398340538849585943114921157148059590955446535987986841984130602333922284828942402896910859707165493886391817529657420355987466196224233462389096598896855674034083186251821992664452518672964034190569981052917336429325052159279552160060431882958301789146325972109632267716573238863288262702536386680621370089731691188639071153498821888436345653633202337524255355350206367286735324626912373336424110824747412996098524714548364600688213703990265066069003751378650116987137621958176504452177625193301210707363496930870687767521113597621716613656855627675940420543687663108718308614387041927034455767023639537573591924667001547049109767187198741744348638367035626737917487181006431193347548919887353148941376142007016291216301857856256303057636316611047382769104449157346484661263938198422386937942192977934523408493221445646449188883838473780385717246342656573036131106290402798647957645996474865671940737759524242843103029940286913384362025295623389268841209922739081879808278172632847283782586137795771434102654027641990221711395477608482805566951018691054300324329534353554394623538171466952925353140712580679039214282424930148884389860680199342804799725334334695534390020459968202864373003902135401316238341027447077936947328319234076038685554650275255037742747528480236278422332223056786671448980268137815015311449399015895659366331695236613990367282802137232026067291688674008123719857461179540681867311632196299201542132810449776830485618801798590632022739153502281319706266635715348734444050918186012655756451134358166272046430909155859644893787689872875934636229182795306039978383829260080543095906256419229993488675001312540863593057776840949295662636757295764219128053202350952457600784860914128361122665717567253740891668188490146261299642754433321700508179200520032207652613918062919065512325517179436597620625627612681607889169230520022532679753725608673725246769333846668303709608061113543876060426624175535344201487521001177750745259998073085603413543108856696538502741857143087594960557923347451165245257790791368805319570769265336644846929515734278554851928678027768323642078710354799800952398884695929831882784655028168424855163401227800917416728025764762072716246867683568364044822618029948106371948012644130134007702811726977294406316000645278371218837119647689830863528908670051515853362864034776554379793307637006474604327854337436958199071711572234433472906630106507991242570811213995766758249403844882668140844775871241768594045088331394204173128364396721199836097801549741497908317541342794397476431871207162184770916187198184836437139752497624719778606292759069371220272351080095714581942739120932130351212213281710406196618919693030308990407893627015182220114623486081429894966803515161695883245865411613451726564033046262596268367846408770234416194350713002252946506612086573068051322934253140204909253942688523384935569762980426202015269770255485460727731181203379580500500232835510332785496378982800925931320123667821691159283666796254287076210789907040905496801962250315028551227826354655321065613158637193321020553571781781577074085586948840493724493356963462964607782976267694399925949613952247150191695804826487612531006806102662250877667139298675871913762179869185970732595688123143604375491605643553915806758332211353527460867330324830320483169610809211023553000904630702174189989080418003918041022500314817471687439960596970021414829454654620266661235643502918920656126361271821037555179366746679325279605088243956133097307305392207234597281498517316715708495483767644398750671657037396533068245977529007256541951248230471296942620888692277664115549642198746615592292329958952352358543415186858899566860229679554896019621557741555934594235026558753928755816531972423789982520406282473936621656738133051213106889064468999905179808822331484863045147266791906735953964134750070778395787704120206196126816095760472881149014075647683387226392341462835521827930025069656636306482427412507908862692833985787305328143227825666481445952754194082415854726666830631030334579428968533987797779279056679701849830686612055540061778570981271399578527542622931901046775025191744895128754756037532087846350671511796949140084268490322950638149787501195608226520610094430115472555863109954670534172464468801722936772378460485096264303407450153936771586139295644280236231012807797226464258362269873907985426477454051208396234903928657297899114363292368214806097016120432308627192469294971758401613851169252088858577003233073338935298228107633097165785666520307418711035533581604260881236827955170355331549225896228119020423254086730256791994427522900955498973778059044407291157250943754831943951498941432549132342556914727037164846564802194000338257076292837651967600041460175598872830550945520958855830822530714708663651611645612487908023793897346072217431388207118170638706607166874878033179747636931867085747303330567913008752019220380338105571802337094631623008061925752361544440860411115092121287561259079350476620699802999338755222042927755643201251121559235458091063823833496123557943788436181372522238082714739427999001561071598777665726550148965540633075616055769460804549648810114813271589680936412689724679949307180524757562481025303226201889765312372069174778579979638743284732845971600198816320665584651613913327216981937814175000220293986950072238088671309365094328940469547822617625735629712686229416527730491354408059734870539124001696150450530081920763836348870115431132324560621007917942970384771351985045833000697160953147941834433610534401016244810433845853722676802971547245027379559846214582966238492090914549940571791175513718492019709471688863698999204792780942625711930227158757336260791345736910051466650974974584534016225131501696400986543497624066999447163228769921356020718297819070251671573005833481298054855724939529870299919933622688253350610913477137036978352815470424336207750225570264028347840857353461402852033502613528213935860359947166038393394387201815873918922289209909186806672864218571859526152303906896107063781482843545634426103871255506336844752360026529701327612426741639939378882837190719758060303828384167500869706778483642346658175972827968668840648079925491243779885890391511040056696529704417658738821084597046016133261152277546505313968651036915972490046420744144925446416779193252390148264977305783978224723743795924169457610910907447358802440220491490400876848261003155352902582661268530662373314709702349418423302141758816229054573760467345052695583304974137232752004855440473469734838190261528143146868537020517375203006424529808334614368000374572367832835693634896862466713206302123576091008989974123838152134528654920700448769888847762435919419003999293098616316238264340085437559346277197628558481008110298839071798605020024138372236644740389313413737707584548530749433782088600587947159065554838781599074392614647626355983280777740987540443899305785326149653001613547066729652048312533389446974805277453034425931751624102562625367174264002492668122097753871167062237156673548067494562399219231520570326020940568733629119758431171143814992410386971303050802104472760403698791353830553619191571054406410343362996583060357272745506012724715294288438440487751799550679526113469899432798131083786478300048598843759368121832988462271939778382144119102135470174998553602034986768352088262144647273174877207773232200005760902273778678032351773900606130837746834086384565793522644893079132215846202221960909919924639116779879752562804019804905836178696772230381987361888073930960455730301381956583881962735570617034381519374175810362445410168714719030905214462230605388970624534089594770534090131866611545877351460232742412510565179110650467433936387390784439337492365302815074244400949720170586770387632731278095566413552032133549080048657888584950654690792481464758025830897195825467444155421839285558217863556261971891195076308672125592098588551639539037071941006906488314259334847090890944028728898954136018251586771359567985491576649404267054386811223896765297987825563881538935581062929754636777546625357181716070335232746536756436025409038419042999099129289784418663789662747371966098104231189149329539837759331248502605228806645113710356621720249992587626449307874604230330728382438332571421208903176624085966169591895878393736779347394796778668356987741581781907994004829555786620635196494192308611081866026487711303401591616410756321635233930185180287892202782230671713804034471813635222359149606471208103840323318648204229958640654272550108236655141079480482719886079913845118436944026287781039640237336818334977879914642993169984572755119158240056801115201733276899117732694721101278513872984114051480334232575339185821962915379812649203542443956434912607253291594960465447739904459350007218064604981353008508807865276887456630735542764958150362498082713717753089121660709942898051581103503330099465771983752210015346076944943422146648625112633809672351406467112926650312287319656929137900981460269209624249423966097107934139234540660812831300178119429300672890573629133955746461539380355120067244083593013891649998840790303524686862999330651193718254087667392137481479706183168725575560550956439840760069107336365053708186327064209121262776112342881544622766620328105446526502380815242547109671993622880633501206591731374610150528313788633396150604848920322381840600554453436985646429480672475957385722878566615801067116705812769309230448781944728067819175336000708885385338719001793954139098936745069379997506140479719903084894406158113471353532744553553359716807635590559426271767877551703613274116330999354856933317225341456075908665895472033588571940424078999188012163855278152087295543108648126261703274163907980771098784734105823216198805006804016879551051681455207370409902776160519535659334531968400569256873668773423855215066708223851042212901015234591133990378085395064918046696766795742492155884729771808422463325494244107130202134085900591920421427394649296334663152078239664368659776916625475379516674493225031933976627118818906845974153344779783807897968341945647006428339788458246188625317430381947695799467530741597367897039969816417464866804980881851496207989853825230246092814919767940328538685151693136764896517926451023779425276575891072531512709827357704927183169850101167514939235041228909969958888623565982126726811816090261099854543087099094555459713330977621155724676598841857950913120708848614851715619058553576649507461808499747249779889768894207280514858789017716624080842538065958947460909833215324908484592913838412024509606945776224261544347954156824757773224682849915944095646750240062662155900204239496481627249096579886532472255754999613057049296977071419151383822074353083110677730792402478915620068196730013355767209031821375586699126459076167773584586089755581204890944473256297836898290497982269418673930481534977211193372496921672640879488412142516766487130771152046642799501522467268948142798646694611565703882597348706732637838069506431523680397003419055645166258390711178681922336637844945032820297165410913141251916007795730143732482775719655394733880798402411014044017318458331328906317701010299947226781613516460534887906755561772001702588806233311419115912692611843681702565428547222636679764829670023532970258177620340620344859977418474940561285451934730384863174944267669753210126894488148819743913899318950841346624027961430846262926776998400038931415381098403139326282700548403609167280308800013666324823091604462178411594666602658669025152650883803550090386435551159537792849078461090771177290784506707458237009495345770889176247538413042938156379681494511900115882883997654068157962015633582121652744836073212384464026352218151585067814611544048770423200869661193762056134874178366268553024447012716044327979737195598823262959555202512674993029515004048712696902571666086370562447228524194164591573337794897532506400675211167825126785577579918870225098016163916332149336289690310366856841005842318236835193626940265020636475548422938454019586205784560673857876718476300865524120769540081766466084898456359748547282094095057070733061583724995479512177811832493707436420666004160130887849182498873123789921763022135823869025909183743621646162206714489244118441940082954635034429581919502822998389275185996723987305825587619516047016480599175413177640612871468688343547677280217076709707487092224688557359897157607353314312507754223636843341975830471649264126323020643674531795571431848510881335905132327365218698864181168667133548760165604568096140307291069779332117434550019427123684180119762094440085443416725167134511257913796767290922349890916224647947684557903362693338295890444462725088047079408519779739646115277452610176041134474788124113036222864208350718229473638839437675648449281523536004880835006512625303264170360902441452291485179137481793010366917753166265298612150258400155829178826301009407763111053980485870816470242900795164904382728703996113612597618922839160693229191797881848058639771035690548638667558869480611082730269917900326734636793576416907138592028640302019963530651541093200022929334140351823391894421791627326247247131362915618752365376470786707686458631300710749604155800312718089481075114896866668227465194853648107297861572667461508766804083566065601377854570090375989632208086416267941299090035946584436539856129853889048189043881580527329975073368341705311029663734688185885347736789398463651653229909996857355145601267211773442633645808852615113344165852418577862294885380094482467977795313164949157902235810014156256797541036343763878344931511053639828424358997548287490489297118088587031346340794133159663264367880621973250905548161484301122478151056441598729380711687589688509549497701777847612109311772978841843631486208768275087925545310546570049007041669157428601044783704463600275822246374229531343831990756852005270009699572615217681989079500996917258121876736989616970828488807189205900377484506977185510117742201739179103813323202519489576039055206942766520477419720297599799072071973774146849199695665814070041945680384558706214893954407745097039491965247865147455495521196017092443453354126144334622594719624620500567630779390315133689316029397855465048710364127415425054901012049948340443569129613742196854320927172755762166643157788522005927769657811585983909257415502287195106422636261548669593784197650770409599902675464858738137642265163537738017634982076262909477902881166808045851023421639356240435469975670282846309116838420668373616193736187448695525292669462714903674010418860105183662256248147948897371332744348989947693285334955963138363907772589772835717744055099168309419581784904610732232208332232320525592639827664410189486502099028039095621302832382235727418112304330219068265655511908507544583059540015911218785737681939114750475734741701754101315160662666971665591511895175869338578715617000289067211309266219774394343734970539624563386550885526359879674070574424102884841185624160385433853488407021825370907219207152865098856981002772967120164427197482766824625303339877220257429022855670799504990189750411693863730687607534894203646858930256017903130824649294024689312117960218893788435615252182008012572597296683643134236546110991161825889256088769165079064794381904485928093566321200138896708120886126226805883896808225101287783803586513152702700161863870266825185371387311021172162268689808506848446357329823000621336192542367899241240521374224182723627436208499632810534693434960795732628403123946000493949910691245832862265950749091731682256379188808109466641617967985263133043144401947353458727168934385779099749530999798942203956003847400294484080387074712984215309398736946821368024077308480294814109601868472141771991803989433652208727590476569081747060141716594796134786241098749899018529254551113728497663158945971694684775883065116808815906221903562156516639259211488252383647704548190736026626201458287312906054744882441133763217989715581572116678895469436078559720603995698306011910961686778479309603573505848321540328579552013526077633221240054460814338736891531926067538356631814185373890313672643665479800475214438345177848735483686258186153935529267001532705930071738925248082221987815637043580288421160375694024746548068407090398503220139439970680326673798455748690639106464635678121793123952455190342137450506494412074575932658183368378636509779103849796694004670413416657364720869556955569592832893964129879716067213867926017651956900299837764623518659211073277991193709446901009097370197144332253170895755621139547284054243654806424391295578275208490528052615552311456390394480247967179991533430862067052116112038331195138616173413634601582760047435395798857718439171985900149396980705804377363818782306471422766442175010275376955848393144132673694739898022783018270492247310064592446309875220134925861858308852247491931738387186255384180060313589061165980698441534137088454722188130524955282066154642160105803318752920341077431171682980796716559029053713495718781642516225439318498170854954010833919480697580551353696989151305738128679035839305925208891675900750425394868621166013444451812996694997025545157055013340330048678193150833002945678436248194872066282224070486643787178176226632611748858616769691802353258565680683876977296841551526599463651962092568551421789222500172100669286707688866569888220888225148488783247952434715506390482484790875538125048138843211915555247563962162907763040640805314991538546373471298790639683228004738342405010768910153458584954098077363993846813101959126184942143284020077417401006086126359643176142564216640739415983074375558188984871492842775173621575084608904233918519901604802009227824866834457290405694928272422586216500814125411072720115188051092039350327478562266418372425661519204163111481669878278673509393924895367543245626801396042769222583848317197650033375424186943489541634345370809458292534281597421663889163338324818445132075154008094255734666130660669645588482085811360895181210830067279476678084037254885427579444475848379961549095733388745915566182885690621018017776547517533411998905895226731871776452120182720171179101223313315197171719445927824021856793416196887092120478134319422905362015620776416804164367150550833384646287883253673618810802652333908835114635493109515407376722557827847397216248978319766948989742604453280246416205747044583760916466197234976742221234260956183294929992010699352259455629869426224018203363719462655468309377041742760159673951414873626282385973372381876362670914150061821184890314224387699768784533981378425002297123696631444324688079084643264033653863386890712542350633670218394654678328465331427274508396058357079772837634319350401043343300368417066767721042584364023364256557691519969546570473995771509652872096631474162095390176100997715537665981894898745210446465529493781599843850776379664033269928961360989134483807412298834445812351046629782911979771468091377453769015848186842087162903284747454319079485609164102357099099654273361602347564133801347740663790439701515428699334329132887508031474728483342464006590649344635921892188540351211331270097637567389691472963139887430839358858449729180043501211474230569549569470306651484770553559317971667262178033044855106747490580416987061139137468270808392462837550743610163845401378671118159877237734276303055526360613552197504209931071273240256160139019093261822412299423502602186129837631668368048491824139410785855332321274155140248408525394747314780138134237784581652918547901122360771684193472838974581956728570656116852740863267570581804433680680001674266452945865946201011706359551203697652096354216231353362528689701119451857386344286679023927596336450408251876368004524503681615494048308728075137345305535380304021093383865008032728272732963545085236422521982143034552435939415480426021458938239738942925758783651588963703931969118585680307648657351303306848348879867221281459666457493999564942389455936547146643499526184799720415396054869145404210524175584932644977795438098321215776749122997504631090333753649440197556993607783192456648426214395754278131916725946056243094689015489414904237901427237072970273834811378973436328012753344467989200107832049483982048281580122980994781874910563879190706679941814010697458970025572016315747400787940461133221039383420527035293763832452040690194109780945094243953351327711877272564594451871172683246225711854400585576178513507524502784468963528452572963742445763718531680266233182123087077469958131312329192570231315629687589360581553574366374545520382084062357873067838991607056802106459785209405740139554533197514465637132979728332026513259698080119758412145217107325189870447163508109623879652543774996719278009679296249441154675021179439369414651432087566750431339273776074115047250054088191631299671982316751782971448797013344711494622102250399473790757066036717282331585928636665990407657848234256489094184426253221702144007819502378661266892131310705782449176723599745441323214700392771284894977543453166135619581280177036818551294991069999601883104401682302933086422797455624741145395324993514040497327463232248295344565590654289629947288715837675964019845044453035551727872498139619924636594521678370664069677380172155532432784589848281591856277740878948429847824796440868709950978716870652436410595447538756737779106973165308622502823408058540049223964935817717881005127274138484527243272763650797367053935689316017621600744457616245426816695880608566327684900949526648411407710657030578752759401521155635183146609276204220462607914630387523560882866535564908127105803219854555592902641130491653359723567318218111845074607346023081856545406584071056084709217271415751799525277162752391344678975363681280342103774508813442666501944909665094219926046759346665425408230974719906033437170820025706396214706164346679472039275946898226268706801004339847161977841579362081588994917162247873424136468216231843794055538941860940056661801846505976606711501492729457375268684874767227335229835654416350746889894549729005124347692122558417366991774951170930762955597159372271215576370859526569879198989009755560171088352974087099138984876816618136885841779516807054082624970602798049983132721221931676441691432905387689708110685936252327910431616171282889666198167816125919420864358966287475560077510587107748786788692486422981765958837118034942219456033517724445580206990147800764537915482754512917457892104290268350042619157796940308526138814237427537915595507903767266089239761595890077859445075029375635282569385146287749476909730334700034042840110034475601890394462396102767238886367919288513355405308066479149276895736251845117463489007347581537415035183390178767070245352846455707084195111310691706714911123203008156934799497321216012193713399237333533366259254872214723564736845078042709728880944672008497433773882956209714032337645614258551416105006099716635195866589202915619487218855811982833010130906299348031106204195595837051957375465112530949880258441472391226794570839806402262780036835487220395814378909215412097937241410989208770462941480652799085562998068464603621544892469285362751004519739519892098649077965058853303175885091698096621278940176621212733105299606006237775096333181444662251966030942805555391844895268636182222312649325705374826098455262399662890220834420597270799702004460328557635301662411415682216389472138628135324085036621717883724857106031860546424778102872999987820858132385149278245920671965722452854509255003153819351779687146380670201839404930118372455528700275352116883074172135404389050207485782566050339674993107035939043293904285815808777711136153726114485368755914464726363736771631824689827019715266737995207508142044751261401798843594254269612171508697279457750987207293098429880076851347948189698178623266892966041252187608733186216602579306968425291467063319660379008775269915998052859410696486432446168890021620139162634031139254427644611507987356761165516778606942078841182041942268841075902152015129019536422476644166831476288377216159268050790256106095669361137594140840792554145590097390169270657974979760146153267169318290559177844644887893476952773792311640757474070069916163503259528339861572195125130184669660305552775308209652755906639456515912737380696435974683593090565357222486516110314317518631192809371401142935646842048055238000758585753607198050690443150513704552610451010576867701847447194429810031304197764510421437137648786116414738216390143598125197760986595665036770699801654042871589585391732079677473039232878247544033584575319614034087432694639717644809812377847474435133347492202301746011425695492008421204770828023364864403536773707322815661162420416239868478875709724045461896050829235237703099869470224522875329080451977058015107695001917274447492453520870598387819947729910926373780818159504914793812995793173330234727083160453971259644983897991118470602902391480397553664334070557829428706832639276845664733895498199997060550750525707825885506459957403574780233995395001769655255927174561860793018020538089198404624126244458105944212875807869496182474231581554388649091557852354140786582317691584589824332753366136126667252245464765630278145525701393527480370539100713061307227471902244042536285878815885925123327377996968326476577388050881105267423653716333823515661029125659529694335218469930655960869538577459213302724079419754322176307739399432656173080787108801043636777474967486253737290127846744597429019437740475611866744824690114443954298840234584761008527336398004505370218127946836777850261888459737695434489101726654080631291120695550404082064144708235276468819826789742789733008386710821798511725483443888649694362143629977351198745067901223576038772803670430338460356145908102344218293365451558718693618637508978338857168340439576129333260951435316141365567895468301451670259392509707064180065518191253323307114618961059824769289633305019312617530342600830148498473380685992689372911965458433843726320994831019882139071128982934807066242111078149011210913569803089024783823987146865312068934739064016502276774593967967086187350516542578273195819229213696082327699358349915339967738578278027252292030336574840236478924734836213751814116895470451570921662746923256262413624552755603622999221831351879367456228163556660086783911962134428280427679341970336151725586456518513931873170960950041114071929230685543791150784741222163954987860257733976128927891366490513186903594521166361296292134553802545664281447411861610367778290449395134918525103465831667811111868652627200379862689890576145129863168291005484093671892192449689381573891731335560258083176015285087589586844725447236168249798056962702109358997719767376546113524577321595528295011528510909389776009885663447502181807058945902551910809543245091672461933918828470441473145485981363359433934821712828257986718421726768760837810182686302764862528647863902858253121268675329070736710737637535881632796993580229530155972633128070022696702845141775542793531740596937919642424569884484600698612238048459338775780853237831814071600469381720314547570198771537777168191914838470920684577074410507987871920600233750755449750851785805109189663150572170338637400471043265691620177126247397923031005627239681126476830327484603986304266761921136667514061846657194939555676576865827468565920626479356695913603144799931396558695888987241798259462108925591581659340186062458201669473730349838480172288043664376717499340607238919903050515691812629007208017355258915786747313559837671101365873165366372268054507846888214230396528358297801216255729232787856587287853407440418151321420761962076078856572631662464344189327107450205522487089251907570793863619203365941752170445800927630176830400929215798134969386171709722269079943851116933771808647740458942783050036592316060651065994014197761105514303243888884007394147797147589663535050267736588660367549766336854211038069925882290997997248073846937376547745636746439140221196785527776532599617460937152559732987914906085160025274712770292725789316963634995137637274442123342126011191339710926073029235103470825047996416051577129217704691400434257784367470586159184525258540246549672260519173944101543891811376604099677553881383154511074971542368146916151238302371109130273626433767140424723089766376783073349018932518449512919353911829543330080591105642384952116706793926640689627227218227301229002224363491645325044332949707988135783380792871687026047479389134386970950369896003220235901780465049847604570217542442630156373956775376769103487337482047463995750776338939184485060770956262201966769474297119716111632515702055223157426091003801805143500547532239575415769214458605575477301603932103085673594183113886905097313051621594663700795744425197927403236497625474930396101850068953359737292806148554769898083608724849750158504212795994447806774351165704346892232925989835596658456760818711134460041396639235841757430587910394359158300026301830979057253629988594203445356957555487431762826490479726189306228515661090869712082715692060326432200396667128197655232886269759309969849653961965083797746259739407458801847534250460443175680815925995219210328147593301102603470767349353496982568498330832702342045514200839786440790509494507837793040931343984906651505079017475772199930087437637408587014929268913674544047859446048563912895850983041327828001296433926874250141978611036340258243412845338743351677827820616960234892792889284234028289119882094186550479934903720493502052835839253675050615659596583688044229690746323325739298682071465259411145281187321899680792168988353527117438805358982729078120864790884543618555533020729868858026301603360501908784442674729872481252364366202641013299756761603893289763755491322644757291885023382806514826912481880039670032705320973463368354929526977531818813625178340630938232803254524948907504712486995399674036678057900248507084877720523270097515053406801597452147931508520334267402511263422909128246910579503173987348334354990438731169723232101691533856355055265481990666555211256110814255970704587206959353021978192034607371986303545884162260458949875570409366832851804886824914493670894153167648823625035835438536910649345463854055047092005091220181349563544590669064880923517798974656400808928783198407104838763085603476790230375443826849380325427486426144469954225676167047173260973754219342228323006214450060773106825868332696854124142994263264192848024172544681674918221253478040731661154405870957453891738788697583693116642131969249973112049909341361052510147307992034233425489457082773165875728956859191923842735877534808349813435018350826798675414284852612306168859260793523772754069445555060920785673849324182108846581978877858464217319907903322013237701337121693228882787705806191542900776456767893247389365376884847009622359681865366077572459179358993372905194633862648369424886969397590555804642271433074736956928943688499588625097240934667564847458861199757158445734710225743037469084345304714972835494809137166669699114863513398570184911328749118759316470358617429344405204874749065815436285943752869897150299799824474523300388662608020966284493184784176091028220048890343466374232282671538828090743496609480258105801225546907999002662581372953562549775617141153880990526165616698158185314749732580564386567996646781129892040600141530433676293590940242747290763143686388051192520422983502583697075698566734961355110139907191076619717454949965899305243948446000987518313687802501213230636118703040535009955691241078715324821276470181025709440652149476414124700775339925545482317605526670934127352820680521437410175543269922211553702435126290898794047597865775113606176991197679876879715065029451839512233478904402611759113593214073733260186418837145526410943037871027909669433274712210840669891795397717837998914170238444211886235593123979742636957886417097085232812070979389901737138626105089257364083557416625216420081408259339686008826382755638881054825626375968863913921209626479736117250112134137448427303171139562587401571730289837409244446227567724118385757244831181119020543872699196227027372995944753738498969088881453936144983275341776394603953868636876241025369553095164252919521450359365183441583667733920162704949072011255423574567424570002401909562102197814997353683842986673751622201091018498704674395545835749045352955978444131613265168893565133111074508446665448954365317738868870076875476402163234731793253827408896049476848676682748698633716515643018685063003253617926040106618643396490921459626323541716732901488018176459678478510072021959757323601378239839489324574782954448277204715146226642411648421236190504763133911415152639074709575780252063537868318980358467023016806316678593120739734807527745571812358845551822323686936977254215932194092451763154619665813146248949411101324574639291710325660095773428842655097171890453340940737587153251142519939691007569654856830006411504857369193481976170186605100055550481949768958965510969933052601843446769738673786208210734817455264357597457112329288903606432805256247578205999830030153625788551507384420953714807199466090776171321412357720023519336706128991206245256049635980487125042610533076048402046061602847723576008229141024957852375039737372810981061968473775552313517282667896540032782362736290279785204611835360220444973828495124851875163817635184614368019831823708510544423019607275871467814181466412165834633554207763568114420514790637423378290329875530955911129311674981941796173819704830296744626316350603806217578936506107103042234711148206716136192424082580519623950192934825960900920604124503690325585957829272247854122373428037367585696988892121466234369315636213271823036732472566080472391271076915721324626790589150871693794324491392170406882479202367664614851081709485757945155616831591123345304502087107430379695607257078964908735154481547219641311437854713470823563322653015789985869586518738078370747184450669287625985751460009363974403642420055108690484807006434807453541137261329626068002243702744420032902806824493771991468652589606359444592070255200154935784422863204926974481558952808996921795881755933384924775253876326417287183539262753545941574724386290674289193113346351421510025030443902025685676589813900885414587712057023409091222982747890475114695443068689604063681755021607442060950497680195758434489364113195949491051825691734885494625227481156037962269945780932316676964946753697425814966265927961182975379064746388331184582078286701260403726408931567897603280135599467319462204435769610236423018212109667241236000449853664982264483729547173285043298428943310164717122765096427102365256020748787359099076461512324383271765451101270875999385969175743795093544238487684224582661036582216435323786170665340435504381731487862084552897670283552909279481552898271729786967944451990274832469448732338159166334945588609966750508581027057837524850716480818680726698706924194096304554981380594023335163927598319155203841488455506169387947488201657286982147499611294468702044010517294097709658635415835151418397758281444385328382970667078670578943556261389228821094576387210052249477122611099123958145634269621813088670675474565301149221608682725625175691616220673424258877829323387686632510281276299170491051075840440578881762631729491631000512506794015798278775285404159856387210463007140838615590491916518413565643504780550025129654040513326639813776499907541769925888237716181901487869932521976699155188092658542020579034900366311516148181829454774959877101840156985490498586466187732601136768978678378235589257148595159160700929243634094747273111423979226520167840056950882471625009939211347968781835529246924053385995929158006928423012313868672148692962142866967936761049279848140681940804880129337180960083524162911759425876957525209291169815644873213350285040598971074914049500999390829192938695390570800192139999518883586223785598023929648981662778964462563351546639077977712162176357998416778468930066589967095345599009590679463212957967706109317704803488854509179822367843877010335444945324954875794317250424499591024971790975088335360621020320763756403314707531305584551792706079928148558488051083029985985529405169045591075780088230190975819981844922037257769406193822895484103803835400258380883422029873239644237488763221621905643538114826234718525349169558795601998691281208684150583041148071839714760498882204283050201052304663314472551542385918078550141945105464799136682698579154871926307917619827897457902265633151084969015108204732160373248630649553258914524383093298468721645814149994690617562615907732851137280930684664005148418861831960560798331854956660765458211668816888626317896017479506858252385032267561684966750016946032482072994322941787390068318778578109491393660691289755279506000365389335793104453922449764950787412725417523904186023088101503493219585001710786897971550374131208193919413318571181308748662572598312907315927868914530429390253485076456534449009751482502404301498120587870706936746337187695951556860469826213950422588381470676086256432839182978784328009950844102285680028430523540900779299209680949840842134909215589788851138836914020164875655123360703995228565337042279343878049587535962234735386707325453769266921646880111410864264161186173112391460870576281435675391130763590803459938822453953739658378229670780450349767211573519256081056806935538952393334984532873202930513127745127384857694287362588451989895945107653787888896658019668983342529554279085806748159226665766720355413530424319497057425172389612801920576827375095609572594940320321483627854255656479165043291646944596807060465461568388263575740234902018907247032202670065768418399978853775344424617171413082966317051244717419680869973977044068521864702475399523241092741681642223279179702383153929689859280930909161769612855594112375864281091061980182989085970492891915861761176353218575224432043889244920404398263955076854827315964165498906193205339063302725030794788710299973584158884028923454632404801304441528245861895712700874865168184458093788309929369260500316561671431921566482245793850281902665085211669276101140658433301245297922036010489885617373328746440752773735800988758939594299031396966627742856245156636882370002444618139744079766665129282402353829312668635960451001245708994199484226967560958016664282165205924970494603426798568825621113951781413115186120153861027186475986250417540395216243825019567889772110648222282648409933247953380727781964235999556311052443114021258713418657048926144219044725257628110405543873102610068393459786294864076600169634377836866370446423202688108645074843544268237369351862893832576545125157467820909122391619987021816028735248417249809586450277643980247430338100452666746751164777952257527103566422603672656232089781315571497015497049270045209834486673641868726990401848727333348489380377795579579984877827898343052252506943337803345904135751645683955928394749580852097337001817017860716502099709527412818626470422190666333252315291476509191741329539616942951160216525616659811216603067242449356153240301480592440136708687956189457623066819926286957801954718893942520479614628587935521809186660258970339351411220290831596160183680200287750177015839560681207462187983514050045768269487426075211985366828806358988536292540589821882379947570856200684683859298638718728225372582606627634167816855211594384685481948133264471663599103422778557684090503515579877817879046844512597907270344473202832108522669020401064201322056413199908653017712877274845594209125932247811983469307120496270154778940378861478960344657364735944556292659635349846106929172526794915772775078438298124346688981078586902458865288212693498707438640847635828802839330222150682466651070911338634961179100791131749554936335042994131450616849170918577069422005446658757365382927316966550391506170009963395185066952219969825726490359886064215829958707566582460614449280296108353000106985259592708987123281461425003602012144844017418205642328500807853029491132088899925905775015964687908435714757069633561754655270957910747030854888068724575895340977090681908389585374731628692089117642888730532186495592227475249682441662915820354533189896002207197504337287372607924912600733185245482775686208024967830744228254212807434875191951202973260925275794935301383305130555550692932739868631837860810036829255980044286680864688258398702350911590703581410761579428154135464736726214636997293489695602344209548951303636249236872920599904822796224189175382004653587096526729055466373865209430827049869111581534783890148804279922990425482327605899194259385861363633007768868614822165058045256017056043480469924523399686116251481816292177551360038032906063317748213308256217169700356907687637087403077225336515453595690045453581420644801487042856182510965787857926889127096865817646059264617616074446489885108096657364567770463537881791351622896298679997771850202748509731581613594407745201534845552684584130731465483654721393703976073664337943497282265880013195643117533099468714148355087723780489989871259362511274878543195201411072065658548292496896657259732750018907420560785921378851365054999055044732518436996110859389956012192533701051564440174616744282300615774617544301479625113764921306214750076449639902600345827954895495240613279458625832919284267035161142062416677814742843717186056057435500343861148990101038917907218758065336376867770671857476123651002485133410624468148903605025272999402245580231198958054504382439463472555550905257994465586139827749476084501161864339827308737655874398746158538447425523045496040848050333288222588562723919949286209301147742780078689102760238597944853523303355550332454297256162525049626700129154534232978577803383188473696049479360835312831777864269065353379162994860856985945032189050871994002730247996082159952243949540930118802664884217544503818810742357981695927555637300447982667076226654323617189370748375878584463040422595820826466930660813272018966462748043773434654465659078443023223278103030652489122883385201266460995774364915054217388633167665279610619212422098808814840373349398832098889376492215753523818284070416259311591198331435258432593737261174742496825285686067975938677210201671921128464490857128551246011537413344348617763073682443042931742722642092970603204444980503702100436119276908926516401728186842469772236530994698131867826661436237280002984038244382823923313798844892987138245630147321111604587083615425737136476181512054657246007088464795923888241283205540060231078388652518841985931889605590968715835393703172878790294824045577105078080666165154973474679673068959474113175356066090282832227450202811282281616341006803988085128223352284314705747353218175190064807436576695508563181571782826389517535332950177572738754542232943433757332272698547111026078944770844610517979068356919718018245660558479145973775111074751872547889183277393359085055080421526623832223997112761562505424611382853552303142805353061186342976290200602323657487065064041021424254775064184405402936188179104700946646354422744775802818939491891112349176687122117352591210335329300184962746293193866561342799967265508044845777216700547140391154793501144758748584453588693661399066613116161478207850675283046084047513628201200697429003586288753243029577575021643291197638191118559800064475143260282019149455228443345728689040983660832069149236130745279712091252116944462045361630814445287332427131494837471447168519283249882053361214727818594275976120977329066716694045390412549871990126720164977590843064056409846627294649357014353456826186422425587831381088253673142360715960074109100848212684897633866595987955066725606148808077238051827331733544368638994760261297094699778731548389096573095552413881094058574102494804505807634859634981943878884794575073943315223401176614383222084490593173890158000774431012446661984967330437180376768187453140518770014186068038262513541087903036444228848029358692648450176233936787272190054518536127560310882118610616279325714830955276233908747864386998119186581826833309767001667390924069326987721563512957119107292251317126166060580921950621589695615734422165788454459029442815442375611130154509907306537698501239329608040218298480308642417210070609737150531618214920387484976076908202147765238456970216956053804088112775263832927488162187475195916147956409078812027215661402895016603902039047404596776419451038904242943643304390608656470699810754683666602792832042660517987987580299496844415670005935407077042429732162547097659149357163472031153449810869556012984024043342894308425182034392203622061866759202077863333747331590798990915337328302721012792121884310863098652203005552934234286567683965400893796814578952953933754955276333869801523951898482835253356797584908727481337380934839784921101698048701128318492246582512807083877245114769158239106688124902918904917488465607929483353465775906092586478121566169035721118616456412446788186762761953084362217435658322099793264447076959224368471661846114972117994068126018377829378403549957056705690280499226021785015911567869035785573805173067269284143105220478296549377472783943237716665189344202470896456272041427496575422655869320591759624504489184140746563389862537220342428524820421780216549965522039761612587891848077669983886024749330362497583774097723178488595912790190897556764632160460818789781566489593615851612304991906810045945606646025981941039208100794419849552303731057431283810238114067639153400724065658419975432781862352695665641110866539931072069841480394809699935132097970061401785383886647885812038786740525416621746558475906617649738786119649657491864137254410022055676431779261942289903434547416627606779241739340380631431857643208494716858709796782540571043205382270667684801026017978027888960730084266438405426780182570084300901951907176477890330584374300836608685187579851162535924188129371484426025932519762640741698552748926459208196602970243861790005065013132947276694970543671088862951700302271576001239954267479663960141617989894353172181604975877962807094046125884869007239235001474707374487077327777468577305105173310883378530374148814636349634054951940387368071021945159666920293405203986806240495653624648195985634612967786171031436318079472108572434031165493542608620718287341409150606022403691451733090782964048918380547174852709758347667965467613148041285831032033799678242124843431799534080209733722804803760807164151338902130501115865662031421712611062735439223150271921088220547138267794330820007601657314075896601292806005956662898823209757850602680182839273772173150513663678279713776898658659187900409849508106213406399737544652920820731560601528243396805885328663340310866928213231126451893052055607370760017650037393084802826277431039277455259368601372467968427369424663547118959748791842099889152429399810058462769334529284957698115495148964002992383812761392706179307376191967149941275844996874773500621671838897545770786153891578983925250191286659498538933217506719802916027507111336527251130650611881696618956170889005068954131345882780314659126735530163250960168694371895682271348727699845477581781971789159501033923191120032381760565313745823329143064504566615689874605939267748820772718525182266486951816528900933484376537407783302399888641314191701362819674924845147394717563663053333591244843011760806673372871205609927555094873370983746924912230073862809110498132101241768711153353143535591458289559819847786728820204566546418353554420994187675177453078947810372613260030100938828468661453611818962740046766727918442438179215165253427951602399294381712374258221415596102189504757193038422267100219357383180632506322884237764333417912873724472866713739864135480103225626788577287835001705079910729104227939493830969822560947903193269780592275394614807513227504355999439981599042477711680206943059101109522802051134304122484913367937481654383307034070331509043677575691374666844691539672640525253254416411093698359579739940607253705388310748350755035734715140849679229390943804213474571608840996678176063512833069946597568505714986378443434504562616015588854140592780811520357644373845794187789978201039172024861911794850627415378701135824226422186609343353859093361731734980163009358929566564771438812014469343310738934242551662668241057789922957692569087405567874658208766286966078719549969493951333188246445964657892634415487999232925695885404893889230689372422871601745585306995231179012884644616590109712303058587560014059575965874672820556849629408621558091835699967293905475394725494995596235359927541715253047581815718399613193470256025482508901957015434130570813663108018351856090115585447868140858790903995932806104534453051584005368680205154438558875590664572059748544444098905770122688424254784812471935353722427620628234591624827775459674601906039225640400905356167500143084106805649813532024532910141960654231432662111393151799925570968185057711497300568076359707097240426245798597821745251149032429328486088860143139267701598210624670724035364629808798396225599190325713922399433344220372439490335364538856396454720746782081362246725749350930476810893587360574336690389682615439790104400932222264181566083959260690077679925756600532722293386612721269223410609392774960693760839073489833180866196942166496592539140867466236789117742183879525933183410783053151173872877630995717597860870234082419548318807412634867594829595729165217289215414713485863545634660436711358732879900108567449870859759974670945308441644721043223988700555077283777529074101542879706209592016676291416654032147236141019514950575315941172204692384427148412441364452490704915187113133973239897027107292399214877093853137385332740670741377350998774312117049898063383038144502403943231268184344368342497352116816166043422835229168934361365806629896637173873600006027268307646045846747723855424431661888301435834997597573017062913362593392890080986494619375621032090547501172332343134478386453457049105514554508650396106864851168393855748095073028741828169845208779785346433379809164900493775265474241192681501396480767744686117325040876054064056561609035605920469986559189319737842488167167169388304808756768227028528618492033267592905292794914741485155120058594768449098945253013182648387282017238431113961061926120290192685566051412296151624462641507727927339810579508906714980075826092685410387708303974605890583181414994891997357450556418910090916351961584734527340766000691013530980545818299152309085915492893734784871545584039112624535509957945479822576923486084443882303295982451279669504158059740975344798837644466784049879409736678811784922877356607780463178054329874324519027178892059792738787421738747389274555969247631432109572622568857524802856360775744171381221979096771018802509040542614239239986801688496660593809280845477443779684241228351280345280205199969394828013157412561526014713021094505172754483608235453951294832418852768762537446205225377956764543880753012217597079490798971994403914623076402626154091258575461941153552214198295517793183715954906055048827513651041769883606223293975488655328930976330659180482459437815146337457611102550166187418964265361587823782048132311597845847581606052710355991876258805073220017137966065751439064780751105348708047292790813566113345240511270181820895714564934625261396314811651189872405185239465389508075109924946602405699805857647927788362627162386990484224842651854317908200154292775944991216870384918591925847500628003638948924474635978031699655506683979520979822884662857395499163227960862230026992322238081237425142875988647783219441649531822596046146406553577663452858942029867861900632014414174521245735043208292126349776696532436613366966900063941463962049483842291041504024737702185760683455448054407446991571893336780380260961729408436587738702662840517327757746699333554602620811865226226943793202095618392594628988332216192524872865205125920181136492292699160748609995609770390018140036037958886178797104876104971061901776496912834381427131109403700948949523876303063902406696292762920723025369565161426300613127604948157990699929583506517012138433803176211127629423270947679615302690645701907472717765241750596299821971122176751531895297240287617402148154896718255467231614057231699793474279320173457877301428536184154894486221136134838794010967617731591995154432623071948548608837819533966388463889446932366720739331304532337249992465540443159710789705293559800032932265504062662905324808863619497879021719497294996182235813750188716804683413547339081276742564533695898499459698365504041858223529210624600917870087882435554013894172583605711559598070074167697067753301888691947676214684566793534557359009629347345531478085823839938928521921504355321348878806314189263676804074680931316433043249337817524758926241336147710035630726591167072017208925511917635392476926054345847912638204825068616684213483380497128259952987649545419820947866196817620020431227028841105432582199151269768060203274050945143426002446254739923555578660774245160270944601202191065259931299361002830776358070566448833883285963966572658653304525734097973526278042540022675419867808415253700511258350189077496135473649759663983527877295604413526659941632333896293127646919461622679376282437272719758037137444241202409011726000157913229194256229826553933910987049976566164934373158137256230087858176776693156357037563291157939990634058310110305990068405006671437204628121501723404742532191579891124478411205512608067514443502504868920352896073504723761328069898135893219303777346032250247488888816485510229344129400874068261005168582860127797297430879710782042631719022386428505920438408496099066699721455187820304364941204865799008001092058923346637408505736188639473969198549275692052904133656644315621200827549725232237100820491297216423866230682309816815131083831835655943030250359062717957963642899310205721539583803242754886551842847708668586507075242401093460499641601957316647037672834629947429201780820377721666592739411151953392634161234726535409086404444659182231471701337703886563662480333702664079347593144767850432232279099953269966349645412802171994787846791570389602442338185747785102673322962274898242729568966852623638237221800357496206311366078376967088344561323873958915072843574102557208250326640077731773866391074053666434381385356891472125155795847699146239105565758377655767887199884349437565953305031970558775896266242306038889774463203195372616969682870908703666642221550023741171324434178334631123045331648478700091978635618742324832033492968967179828647921283060077045898705557727481948452413210865894744994707814156282378058451025894069751129961205329832552760035563766713581236221837243448783437107738650879903739936194929679254977357331279087991179153473227545202437504576770091579452252327393046209427432049105812196900674789576026777560934724148928836866435908333101744621215283444387290983074644474457980784846402489018829218820506609069357938267724959739137462211983494507263065747625876891086498607420731680446803134103690897963752617365270320476609912132694465193754350319687925317341590181387306516420641847134506372190023969895232606826520338340436763541965205241126022983692591088794975983163189183791042454699445261918934800262881015113136532735498970757980415301530700843645733339812632612127393819774161343269906885633226808651319741877442727434227917733658862395906755424684259721393046816313026359351701222833989494713701652863443003921484345222230614480202527419179507048502654623481745462243778553352699394075302104998620067100699947648494184607100588898934276096064788394099047259405990112370703715786977778343142981615411637070060141552253913537843403742089630572941011974807519032909066193523302913618322763583661894140783179969093735670172106588039574990867179727158261577439628883813828489998269433961159451597489053329907078470527962235865865079851476761344193403392114414104265624415395632980578534128704816740006635342213375470728924188017629160861043806448877416294083847191412262656748993095007956930659372537328813934150950516109198467203647899346838243426587401583059422177842193619683740193189413249211161975645535490854378439394039707933214436906721831586420723614600331282537291889160646055775533558404807535608763891037274122324510042632703651943924804016539084818352990693868851586358543073530315906288353588504991977509425124331819632873125310456918719289172525109930406790809615054022628855567788010261544533561771243302303971721120988745449119883285620117495274272762967105138148198353366086896635687213762255930679197069370152651368148039545815789062024614518048721297266189846406146513395891115427225000814943267571496914617872738394524275203489360293949049874493809890983926663567915368128760531750461166365300668870029365930875570115579908310827251434602599766188101967451548563787968957650616111322628854393059829266729709406908751467925709839802559848800096364327414277651017302402640344013314102763240653796107540207803147975045180167343769726737530087639585254828979733596948862619920801948714485162908536695532798191482607705885617213686342795540681459667851617337364381851182886879068859118293689075067061492550161499377577366895769191262491308047543860393444915486069948568354317152225223781184400487342852413035160861353835284313017848926366626500319259255311107309340955227881265473496697873199861588962029411297663812806401116616146463094427867663662166437951974181724441720150333439600528664911501656858130630631830218178209048567921236220483618485628323339966470965296413566512211043538192566179389006686725408712021218517566602488894499866959949704606140015288288457496102047200228965496819976212420560960607391254229342870624984867356931266610245747787478512250762851616385186722010809907615823469947511683625926678562505273792528703714494944346566642539855942523458055967820386076972354004583619017700304267925692814825698744986800262085540816746468112169864508283869238205816241529343728324606796193445703092747844289670116406631540630470715571126796362443823442587390557078073774097498378172823888174793885865468168549192488728375223228262778099153775309759287005215378246785851476791407064466375606879520181322102945568264305924957200193883437610401234331956003477410520233832493493102825089023491161095091370385917826833627440672238906361440663472559488148269247235095020946440511931660533269683702729642735872208891663094202314471016809905743156477987584422038464366779777608502848367866612342196843086844687405552141837893458624228039703997782919184855408735569821825176176884613938413916345446247880715288729475538490967416222695318411955969545933482958741328286705368783173339503012649620336361041850511379960382370274400499396182109717042443864609738442136926949147883275716030656331512398216020001733441769340065315122447701623487561337963103979207240288776405337982057561959605421188325394418488401356919175511654182346887590571782230725639841728162896945066249284037501159976487496361407685665119882202068003573545138690453534877047973298216276053884066588989529675610729016596332879131338938574286565469908583361549630506473277878341940716616186339380024786236529401752502118645626874264343334516828398087430374444538853076056296561581484616609866907909193666466331358611430451858886368449818860030156106198357000466995693096182851651469335070512953393532497309340924341517906525601149174823684486185684035945648503290630259418187465891163517121857739247461384663124471138789954662685300214651374650027732923948834342603549069085935579320191487519444313430670333801612825462998260694731018539583531070923571483800982187485177788698478268065211505993922589386738014368857879704433001056259663499001357955088208762878666864167611084774802522885262326690412307443062006094115819392530719446863812066574004880262255066650197660259389820609542051519178596779867990595810030561950655273297206326404804270402992802944266715230191661491041490127280686181240881985195584046203611912705341940667893741447506080516693257328763995581937370230800168113494721912894607880341309612362214792503721116158008533695958695463464200315031447587713278778918285225003032929176535712161597192963091509760204087546993635215160726399888525922273808282640019427084544792108230489409200887898067267537601291117357460653589846917347893030990916120535858447778514675248960805675007696123880572397926594926457186473215110706209599750315891482726824806266726097628451831760006758711934537449211942204895360981443730846698300249360849443158553671642113768002644587774186888965361338074594821813142123499529053045066424568295743343119391056390431725697934294306503465055235640842501952213886499719434579719859352381408623604335707901823659007532994221607407975330863408291930593947560446845312794828074541729440904591397220829648214211789162234533929288910166935265957524253516495382164001541766917975536832030677071617877579762889332973719232520018973604333805464757101362764965402104335972727748105572232019338867561629537996577177211702303098679200392700189698071061560645056459529671794740489044516606035232884663756539200284728214056926437770525582113063468120507954533467443445761914786616502198487040770287556732096251928539349080383523163056866043387047315794860981246866150259273186343697054733615829682466950912659657052695987348739779335937804901342860710728076470907480293693763569626439249923218966680431544830068898962523237023601450311866849262025761173532399737245881276150497153269314528992374256058058398575909540306527693984178171479079147695860787639549361171799472172733233705497344828690702572867847163248210978137740013186832557258283531287640204075598489716713759694332848387101696936737227484065309901062783648796243385320537121801248943503722331700935611185310937539703319482045582591862695521448257232650806495538846283564936139900568676359547370614144992642963843482568525136361737627381889672101448112358651132659009455838986898166552824234721478878940726122097177714238422607406387279621017754521207628754794471639040717805629516451952732450368900024983316953092330157237570469545722297140494609385144390049292111516834336637529496415799010892281470894459681500902716452457564474244584972696829347166016068867862895347556785391457653598452857716067341886026102869641970842717595727158069173185577483198243901671735264116142839802877909616717068509194100938906680177681406142214710729795183351319343649872961093711385461974719586712509448048767457145994484421316969903296841666447333188960711143334572152312500325795429063499311791675498842338686625831153140647681192193244947791679388028957067897037395315088950958158352643574597028659200753020542032944368000183503500060375921789358175497008949968446757380707338150024372190014901043173882844412540339660690128743956402262639433274428587076545909943788968620274337752153595880555267152554587401319923740319294612199260672013941207423776297148783769418075867262030830191995418999661319959351342238531220792713853099351557155287591234698488196422208276526576228849334674523148389014468746272321337690042812700655551647673400640727614757785974175380333932200580224075372905081405212651135276929755214974479486578591116899341294689006153907404403050429047245232170523526544406486104022365336335688196981714310809085709705485998599670929913700514638206922009588672360969503232586909583202278894997280326989704462215131667874333165871666915953844011237166751779519916109083705203891001648041925175084061759596489196688139107527121793983650841484904992437281429338074623934184234949274716457902946478123895727866173633401676101344243774099499915912995569719002547975438426980653396957041356965230159514022841257588176693712144289899498065778693864749567643069021307755696365725984784042649699345656472499460720065752534282427528265686229327750494971569198569565401044891100075495982525427721870868777886302659945230682502028173829081822146021981301115063786837086613595408191898417426657684453963369462076852360769488526886311697443283118857672938403628527427344452784211471411794366568125722806843494660109799943165081969663298431567662809259821740841701637218845534215544034599422569383409338930762514040097577558069206835119800665852462958309105268493838791585025497354378698731446747592129094374355358360021489735614678498432191452770248251208719252382585566055183777240492031455389812832641216232703336936785715395558657172920211313612819213538179754032717324642396587593560217947877417089314127069038470287638691274784267670649577862917931263427225416006045369604649745826857355191368071144953105241475824227508084519238688244704583803906959893608389599676026736076518242690255334449492303591913036940750472129076845399549350605201471592743086637281920475363781881276020605214301924813452362264762355181557310812891722984236005335184377660039494451103307630543398237454742052380346178471181529365481302563733399102829819406964416894393297435238587474250872004887305174218031549274253617100725027624323965592598851977780498603328169100517790114352493871626021436236853213876041664572467003905384730014725183641827073143778592333076809933111812392837747481467507418324622248835904872722993779136027273491023967417250041957037447359734034118001343708021913543716564511402557305558803005519056720242634379710908542876792552418494395314136201280576527015581747996420834494124106885937877831973308143551190640274792861074855018811763804955129069176781229876479663068094281171932062808772595658040087733752467293157548652201303343407887305933657902900822067581032185399125241529335981850795781020244519488027145934971724184472716361508847322813936670110410602408966758586066918467890825005283827381973683520413228349440657080047178067199917263254551076667490164212555272969117282819342581840468560911662452288201128083313661302016659316503317749694224805944776685164321140292197261052737547892738601611229553668299803008839029254847421693618749470576672448137202757971514739381040908881930000527664022052267888803426519419413220814392885025963835695192234030482299780989050788499406262337795990913056948552121488372020837325848163107431230469394258225237817486687356712744539095040875586402475326962602390136820865753420283339510873692005399260944661342659575742395885736433599615549273737783193911041698308274209847820585381619929539684014875880130571921853076235272907947637771386556349394317247727708909909759399826430623482269610248002479950830815676007779472115968154987032843961870132897838468980958430068202717055585837197334523009865894798396303399988903849957861760110549355206604599580809549884639493884867121581303159880884651201780569890781596604807876086165367351127258779276939913773047607679833468403455224084227984628515935639612318929622465381097950672083501499816204273169446235281149434935639704114734045369546711409473413948759659373258065035517217398785199742928854602600551661049191894429093981407066615625592212929267619274332078581544855218797182740478868090086699212456746152027076345054687490850299041467446695783407058242935595160550435140895978021082558085603084768737776146568210705240635003078990335439382555382799608308236584302499899984588573829833075396682512921905285662674912817857480872093725684768102581165883586567809879086590679081170263841771941979428091621248893984331988033830118741105162963674134108349638416358740970433586330114513290680902783094303842890804643273458937526469046986857178128446561010716183923101943213495506094222565884372995426460310941197157001099359154211009903009202193385429907639423815718066212865894704085012968020651972543619441470804626845743700235022775297492406566595418977230612416024894491334256314908409902560171778804949134704162106202002377568600870759616678607724175439910846280796840749699476603327583730330239954491863480854181064138602559714040593562369455897691908795064715440713218352056751724629961447201235825770042453776610298813212225631304710873975300462264554713546278856618494695550098647759255134198312070749480333000302967893039975256400309920565608339429550326456670251319574558610806034243198803327991274569221329550545327181161157277441499723426055985802118498685065736921549079267112366763251489477520696332243340802374970531275954563765461189070120666520957204547814587462652909662431528026367758639589884479756941927407950366774135301861217680088227725821091092420623975475033170740921473354687204372734485124339672812149295177459827929723955221831037076137777402914949126774118140707830728500565150816990566509503630711674459430480943725451344172008479716326840797184164181575981522080482972013965749148592687058825922274960645211851300668220332799321100851128869938945052260412685522177563996535999944057097050169079143281817358725514225308358101004596731947665013734232738637417099456766083847895531681820506679703975214075723933946162507918583317098902458149708372172643070660335032172416531455148762781034786613542781619111068829856676741184471619089065714353089262974113787736987148062109898747314595644365372524910902476726149557490503572726522057186453379881433094312188268555090696267990684904624130528448546592455953616164874505412908994050849750168679721813848497973255187423647500331341590282192709535959587792729597070163512232442650365006141645976369146782931182347017223720919176122775206900496011446138107611297571278568533871411998619432577953185716312292865514679267680499368235753414599691710859686355071442815844925852680974627889111615598651616094877228826012103387630073735838680418487016787941006113230647978380056502033664706120116048972059153744074976373835427397606375947814470220925317817082835002263972544972820636366509436101148065986161470832755904315191477082779090690596439578318030153192933980065104645638059964192661605971550757030576186377799216432887075364096146962383727225619288250343321711543727801544063307944738404705487704864870661492896986226837792433895807830602803257531791972674590634192746099888424877407702410860308690293980773232103178859703922975301845202264591116764013056291182338576272312046383441912084208243065580339790703661808597439546127547537107907872661724685152725894015593808353848860772993395891668840452119344346139496003092258628631605737331181711502348204960991422597388919086240716817176196710277961783982062015809047751518022883040375944062652548353155661062221945681041069413001486724241892969678428837851396186657226376035316943420551939126795635817987351733047370291730122232808946210232731913649425456187221513880762634449416795793028597377115553554644244894247676387609141221578884462331060011507460160669040760986074470845027789981695803264771921096957106858640163462281971156792242286355772455742013540053283135201895800093872647839784711462085814633704997971021312718077423605151141741559413088363353757784151826039363583198392630787854748847650257902907238272916767607092434051089388738409498573996915992981766430100451134151647830161928105633042991236372433788720292526796084212687025736633876155842992633671720483203048702480012976426905735375178771584430050562795630188891786650197442188304373639809151674110696170097247494072795898772964658291199678078462046493024262586404419729121727814988297277266031741978551937126432509423037595962576135959562481896016274405039764080772355927810524847075024694528542961098006184492009076871729878569332648173038668985169553534774118882496678192289536561228202927837975995124171260286519372694329674855320995694729192102498129828817666559200084903272484705493570534115403424011950889018915419936949468701348603510507391011495200237123603371989077221044048900608263220657067379551630371073840275658975118762086494085639155570184179275891804502485055497705093266765225009564583314783841964926654094895930679610902250830190987616761474019677230979007917382595527330963700577560224083240707656539418579041363265020847233944798820460019124838350065479337620788957390512103563688175276448223024774641771581262288720025978229655832744171472337405057587544507002963115435055207856527347030810984838987218946192899550193387676891862139435129029237975155022215369382807645637823283948128927549924111307733195412859760732372790580381670677891781200899547385623064328450553102996381704969780775835916649879153889362954806692569012720360713781480341904595946991174976994342300456148768147134976900390078962271845309924643582570852922457429617595950107656290940178508158576664529247584585064868181570306390580214254891323705765465092408808975702107016869050247618329658049640343607382739978955850813058412599074949402118426266130691987209611399998545842935154693877262439571397769347805300306947978694677633215649099261766342942331338969039459610459658854826491884886002222778169333343295696483382749522871021939730683345688946579164234898836678035173003001052984171590338481185098465970462141684392490323561626935582474740751191189144795098455857620563990737464995574555796487504731030497248319972253844298999207595576140629413556385015748321657594232383383898075369116864615779674693521628464991915434503674690744818269051334102064393913063133302155063033195601763722260781446487981466098980310817217310166076380688000652377463420173348156794010100740689020212507032766327146639192519728505813033927805793123169787862188597647590926531090077156072529102635128660298017607402823393017122767494061056193431057737984484105070773670325511694654871735516941245411311568928293447919758571013463516172380406953832754117127217388133031629152111154794052857221969420424451512512353967764842352180489768116797073490138841286341179486174555847176836181734337048555820375216634029736042467304441643197763121602162257594933824298313507437406901049163440354013626916727052131898518616262380388828500669734154937188314402889088832296841022544163074215928553997962361550021265860496907350451288815314456146872516469325683538195673547256850540733561849305910486552817406387551143005954087981175472008863079237795216226198108346065748565030968291088277946983817726691199892198595190759495219732511230677881214925619325591645455712945523481898044272463405677216429999728797890037605378781239153875944865863973101480526862470274867276204986780092782456712401921412093541539446368539087958193853291177337049252447314247285577308501137954335636859991317044791601142358427109157195790497105252707969476770103401450939057409954730976306358230858097228311969599774822476584020830869023702560392531772609909097619184932012420046429474854246159251716528080590058328920035893806041522608760337475726284370459954338457108491701267757885767600706672026355862585861402129445791534315033290757679261148043086782389433043438256338532844261412623686314005119535434987722284338283003007785959767146231142827587892170246061545756472519633558617554475661869615558770903044184343250737863576201304604387021804211696076867368271644992528390746439829704074578006683124908696501720626051810259860124483440849852201358127484755481036306354493705507711939344672731999449553693618885692821307110698081665790176441173964518243325317819615771741184145893421900623390880695066623274281214425751923655806233293520289620251632235357808841467700410264981059991687260816131195480902452873155876883549200972686981221095827697214966444411128707905814486804021986880857892522637314658016434070803130851653733352484777155909675512545039751278702612543917957116699438496071853339222533871025077347345554026996530969248971198692294419263101991773279668808266719569915356317202006200780968338751484207781622689118647121534665415008166046957387585260506242705521807048678256391945628947147274032067908141739018536054323976018063862180106707801266245260032403212685950263670311868827799781622878866312818331844939940748144973414539349947898409555334738250799810973575017083893150302864801464740500370915992410778225575163074785045720125292587194493070616333057901448929543545830018901337300900062899097634651333018575230555897680913814841757451170080637509932708437632606991823059485083981010051258430601868587326410464908696248890362936958783337382936930594060571665212374384229236869489278149595850426364074083879775241404203878066602258796965943474151830699060951821317697905741154661156708513362814498455262968491880941692394921285901701231692169723842010277337992687390414764685923107367979421926781832648799456119712768090463292865513942471723795412271493823639529284228074003202477922320404422914047509878524669475241036789632820521930737475709929082896395658915603464460938615658890858362115991989248514585490116273811767161817918913539889848714809218366067851861596258094187443564411674829083564866320133885092592057549712645920622940120753022221142078779142210594690993617261875324926264394521267873828184266501272704075710738501621527079327610870520651783159422546491296859661396158216741789404583840861369663547595882341697601446309116706067814685840966240760776148413311520161722581482358424576809861483192821557974002035156458024709910754065188740531858909873644146291538041713146366206505994428074044903592904137272158681245547254483699554006565257972038896513711439060668354118499468408751113674854035957556557774875123277349983725176603121706121547422192950582338883948636721000197444084363672800012673586911761271986367145825913604989550980956530170282834334397908112707590068986593756338879554044259721912522033867792478533608714365968392520254595115862973076867782385325495325706068903026653579399882584988266842544512640465757922492466374665528221607296332629273248459528171915882132032827728603515016632795347531865161354658782422742531366046184062214068128764314513494908653478542663661878479100558038159522341951474373808037894157775559501131843938924014515699579601923264288369247794866470757744809280783289944439542230625497991689409768722072167804335060225194336540402935687899313474221347915785292640807262939102936181356422531612088197801803781857188151581257144641494555279319060984539110646745167131321277894966837297097363956108259240643097947544430921233762304619269574933982949960423085645742110999168352540660946659181577934698619179244776694449157461681320405161768684484247588132261692786359289700403006300456314798722186479333265440972379986618810242379419786761870467907246214837585953758432152104005246655915529773738449019936833555842305510968460676224208389142411317048613558852053801410720605176822130448940392201276066859862087930421122304675888932862373633292011823607416023478903861306602072836444464526989478221900795394291695491546412551373254170393257039159380129173768672872856503824607342844175075971497986118414126719562405795015203331046153232273370344610166493268160801798568331727436739480656926749966334051020283555236092873786361344795980545455673790218546398886190995862535556203180164662389018580441678512436206253513454068264580435062611784729321194655986395722714661410995752910899760348231092715285813528753004113595021986877595241113864374349000842112682877094254287022743811597124876382142957318677768916872825995633970249696762864109858542467337510188708039893846083718654676475563143054734692496700223191637962550853788486186666165273409669002398074242409487412481809482992256297636085796609376122985093079821784613070250722188982343248736342748419799623395717717470591516725235538609226541455287028630475768245908863798822635149779790912515953862106633614419603691303325766861398156718224695716425126034066154316855566233202170781980448808903029610491528280805592425786776396568640270692199102151909757374078991819541218639022285849259841520215942731101869751266225651732802317303467337192059940500611004142551605292343070794613136838164659734281474616714702031235561894375292844981191986965721936299467863964443126783321966988762107855834208354651023426121557375089851033062304797873892305937290474414756225486417657144279499550551658348879795284689439712330028250225405148281291552968632781754027765108215546987573934429523756931147806647319975276104779613571349036446124800351206178683951031362553083531402543586207390935298388819389733262233693209209326053330202437604993691042184768534274074553688526064580168771251295570826888831774496034910862857552378262617245816591305259335904107268036770616276616351518061247732589546989464763936093864679697861974513084524558501913632639647302514616576627661860176853251402251144770867426022801218527306211527504547118673153223063767211102579241118272816400615179742521127412896159133390026984538506640957102567386762142673803368024510798524209849099478154496052115335942631086856369612193240938209658583478555492976412052020533126091019295386675922808176010115959397942539776449285712293824893094693047032931282464236972031507074318165848691813529491354644729239327911537658249147564451973204477095831040770793196067627262558171985177241713267587587362737951692794755734649433969224404261323269165877400231989498712107615497271273443658813938421868571367993399603937649302425990656554219638494715743633760927402143766640569776994066140660777450547279610672980947308600564027042575198053649562167577379100494262964567981975721681986734935212624942477501723128278950071192386720893175458701678266767694649350621035259975903487778113200601929005077909550020162681621384850368446551300563599825425539023886405494375153168892891271581836268477473370773327402567408161578496546796683141216347533064921199596417049421259242516019393820677427270532773056507817877285932717524391459670303024289897690899633357154749697549934642643188298506519457040809625312762203515108817752245076369835871527439549143263058711433202153562711739758364081501526939663790729975359103962127224072571619433173732350113173684348421818226458269569412088279579844637860956785557910302924886471083936963410509484137097500798133564795489032850952892218858999334520422478554234387073107522994760468131936631818371398405128940427236904732744492069175712984732632794137854560010539600169394625837235517430500232218403721008011550060798082939802936387075449369509204518071576592139963238455096392892557710720968455126047546523666510471391703161192771049497394976517396455222981429875929963450814314717065224877038711405797889001963527049533923586649222862269293643618763120807198236057120743868388261435673872387768269250822188445373602715269795455836337689766913517962073929442936932777280131987965859919274004456486741985084652014799054147752521234327842036441869870576671961033024882817425153001410313968529201432243612555688256914505031265369620138153899700684958389518547236851301416696914123095673290347117808628755763003506388699610037689707002647874893925372140538350778946817492767957321451292265115342804046504054010499009411920511621294113154202762874403488199268640500606780573094329266498504748648264321373981012125854941027569707010272770370204867752722437819913743327973805839024561357482120778694798311109955611801875039439063366653425270904086592745462111218469789671193803840584307818353483636576860255617095489909305018665129608316405293675148237330682655413551124447580455441885086916767339192960226659189391539458992479949709538267752807280886338725537266719413421079925762054967455739769146630800077277784301867726862333029525052255075673325380869406788376530075148391283327022422445802745827975795629557493837238821095925905699856241584709537953760585630368408701185688904787519516174291783179944662930366995811491586719748723075295444485871956182737005310787057264956329135842236676421178058361137480132929115583295632571596419991344226309080809455865476186941266968882854398301722636310285115519090470936624680718586706471318747388300804725026991869591075937645364994307679454712922508991372149966270387657212039525312713850793655916882789953070711341532596446399756296456065270766165375638121851046831387728198107878179837428264721067930605765233077472777581910507623968473772825352181885595790160381979767798245825355890438102522739242420794838598767957834779206931666043060636318539364275832921783289627535672678222953387315417437470110108912387667979439599694990698561335137670409593547221238443232779920735309571007820598977091051174170716707911286164987360787487140300562198012721401645022173180637958721688721622164096700459134116508974507770408784860906375876192863888006129053461142478039503904623097839497036032903863554002557253218436894604956188470360416548946192614100942836779733893363313533973847492731943739940486789597692055225585889791594239103278251735615725824167776725546388537352467891317836785759006436499811733223248955797064126322241993572189211972270299379404762405213159105526840757751628745832400347946754076951722368906411763874195065922408374812442275876656515661071726019432455969362302615858388838234956648763643128130556910550441697941114174826132082673603741578175238386204030122485099846329679472293171278219173151066506491034363145212195937049021304858705909764548653449080623121921519957857348792700544264537169212015155618681853702364968036964216258950732073386256289853445976967677756550338819474735194843125427816128654687647234322641843672252832229190428338191056418549196884199433380626888964871555488866450654970123295644587543237421701128016665026005076082675755000117251125811918301903083961492513272480039482395218378187045824818816241826421787305222280078188951833795269996654924852546766528878731701269894300300249610685205516131093058242808979051513203227215116648075356287841686654266213059713239200538163099189921341361909920427834233153557060015910261340019651369480300647281007963968628191208905386419664584254487591914900274848028366580279577517469209046756118707169611334630787081857580047756260553694602408459023142495560831114145416706068418530139536568433811318972083268714192005067379536742755888047956670018751010570839084308785992078754538482342197288674545138093800460920202986100785944360507688604904288580173428069178758469557808464166818167886455791096479900246236440026593467738399280051374144902286955189519075914920765578679986419935537727734644027472457688089935614460374825195532356455091338749761778849918940073667560593921446040267496903972430277740419122089192337908830166438301032908685042073652294099525143301558191653683213734102576458435571973691060392120012938977035499527491722487468133522569922037860216656474596857677412895414507037334820791348371153803684583040652530581935395095152796583351505301091518356488025140249270684890022531129488127243014035754715020630712287122377843541370453418462573433725009235597833741535574278659643771071750490684025728333322109561845862190356789268331567784639020590990018523668769026717073487130886205692004763010445800708106686185256799315032805527333066300496972133829921998235984965057714277435008525526002035641101896613565541193158206042273876530142901762243385465059058030701312676854996410794727121428116587400947523054955017503644647987792632491410439425848406671504101908348326831745562129947261148267487447091494599385325987463712972954649333288926215685991360796819387756004343121503179384702369920497158963819066478641824919683434244146739104684825658176690378095422157430352721979659524323146097096661043430203887333608085850949496305216841905456333567345275395329573900334331044778123645638706505598320050492767675886932518146906414088912477569009300070659199897799675967438277173894769361449213958662113366668380221673371320942969362268472045387274615365233586230419837194694183398076468861260821549332111161804941685260444611474151082829984659431555584096591221089115566959010880498800093110170019648165992480896033504074745949052566968474064844148455044687460423480518779882766430403484279144389943635734164174246134704925330925557134736936968113149742400037114873648324731646202174613307658557762308144390809999258239589957213279067896467883154071035189493631239402759153204435080437454434752868527383724163030480540170331971611739872525704810727751933840351441137568288353698435722686126135407938046541767136988769746741706593567792695361613051175695418991057955268211872568962801870374408711929541365756226294377323196405102831499676687589061270461928466407796985952848546521508676762327215206921916725393204687805639419812243873937445968948712005611126771023791055659124776639360995331956249657977452968842750435887878643298188727094856297493253868468375475319930205209231808720636289705725320598122590248665867598809256641908821030507850826432812821022920045079149840114951338820087884428202788056051776423492450975904344246175239343786918934577273403443259198583691154290970956708912855440464516678652819174234498016482517294560860075294395695472516349157491687008753641638968434732200507788044371237130665724707326314397118515128188225481646593435181068242191597869571867363862563921413960066331338720547085790802018199892548750730907036381911788036321805534990673641594929172573703142216518319132265873417395415341108844019582930022279268070428403939337177441534490925734972414506596564976741245894218040522998434677087903358096024235843244961032869259321343374218000063100231787086477761163317403278209878211450716460559625570130601583090650296779561049420347098800231502135064006412696365836009394567305873810691922986355327270736132385449505580557750594045009981852457601294782063750786471253783782483178231861412838349336389577780949459379984026365068261675084552108643690993963724944234446862491808946578568530654695748220864605570970323107579743222883296552037710699202357234213595789862029652223215903982796351794441531433115802648644721948256127568771062142160462299009604038447432487939578367079496423144180854404412315743916933701574915998244577137776565076559764263765276931136093839476973767441915047604814438739835651734464427217432691396150703122534758681495074669759960083206824899408117793337669736716240034752455809540257115036641919773066841264068124981240628993017679722435522900460043476946779565882050384361304044890015544294252858387645898563536231952171811845932222233259263674900236850037517469088362015367281003391641903188496351147518806334410597746543144307449870889683086462006721097540851380534590988378263024161387218555336925050236993042614084206454422470714796881009003634920460582030972908523185389265469915274225376280961272744000848635097010711335735820438902074389172345328726200436677980880942332208085178141356076796244542750846076861435430990492843258128889231321269053028809039728128787124713545150853178604821841250915655878778409109205866819302263147490841374150000004541495483687742975174284394719566612594490803065222832111077609622947871609253664323962160327406224842459941168290182508663121038433553328844703390443755324053934713817258446434339153172801197588993662928884486832570260984537126817159563141483010947550828059116271070740243016392493085733904672437723514629626374588312235297798389618730596097677846319754083127272545822704130096756571184073425758402896750370468150429534015572403549301398770276512456623086700358613728043009143360076160260287177273092831232569882409835050158799909267107372905896254786693600021513851135605391460022277833876725568257992392264368546302513828786566116798773635775786237121431268208813765701980980036979098960483653643621457900623004228924284408375960451009965445184755548862512513153619466105742688782172090834366055963380336386813093950981729372127516189910886222706203656801814746240587204746404939924614687472234495165231614348208494630790216290390797041824483954722084991267442001586434250564971784497762848520181384160347108929890434097696711941585838667248961638496240965799228883709358909351559786953469858543730444840975404700580133814729935957716997186595868106489864856618305690483812689030692094710677995575994086872339488823698121579097101976566266408720394780286423244187404969761484055294181298499594102196689277627115306596208796632859259224751475054179418541614758326462863221004047916222834049061778266275887064923259020803182609478115648924413090012394875638063740537806643962910306206926179552809656915540656448059151897384547885851845824988966492921503750011102527636832363840247520638781023424275970351764599728747062237443211420824377290311075852005506804383880583195306429757765211592800446312565416879926773383906949412825655078860363273624966702315601864406459171315088203665506734624694009349950706828076233720071171524916583678243756390689952159796308566172153419856719684686771381082563743576162008037805146709638548213940993618497469193885082750059169909018646227225344770716029070796487198179426555243158504635716901605164723375161591014820666508510495718769817499397865693975898282539250113484331441218811545249557684357722644294085379271972576723600201833979071523630360915060906450308732649009095118476464825606055985405496393480367539490880396004796219929662204151893081365320275523319097825522230423319448125829264139575947454085102115714307994027952981062295616062276305074779548150249982843981463015933285867213272164521764161480588819587233418922075324887632724171254691884347308591222447055138264741133293071960607850003059509306770574092359593840739682207608167220996228713989225516918750549610423129592338706115105557952917208824835955914736758314184185190801963143644659005928281523905112427654373291388125323066813380964012706133288039705423724864536888952257501826808292341652477456625357415574339127702069761091300398172674687823273982171396996820699524882870832280980475564885027793229609970736239504718873991162705976346377766376248169820450359276877604850591127643185157327501849999890784547503158285423818153990560180993210847441025528135742910812570617057171070289394044875789948233132414067382890965575530862617034357369730060710629026772241265854491559836647595054144029513049555460879220577485189411405671692203561109020845814138894496063791580651017834152973968311526597503305250461765092302291024254709386136032403632727062001997008683413905506750402812712993718819024838835400879901044869873967705247399539763288277824386634081142495474313990813376664627719721415824257238175872217358565635998478302104272468992837846051582836958409612821776237323260159406965800534868701917313081862398356934828267622428324334001993380896017993215258729611065268212618233650957945728653613175736315975095822909816136762669858823897737051746708438037122787841855148105276318462144567821822007483335281981634516759979849158923794292192671397441369584527185514785553917576557813408586320304244867421256177208288633964739957715360934367278939706836566115963296713097107043126508652561154334706736312399944583966994740170600033507830261338266416984681169182830493169334084570525523716918293330398127506225649926238346544273305946603603732110062089124661279532589299030803688112413848752982559590421243753892802296234507327758938151537848496128482846532805691845907044027416461536420299460433106644496567017526167542083683800323757518820277356425293176868085846286130347392695133770940976467009578073607540961167489933514326928869296052786825909258190768627246591455665674981330212020265051012655999997193771474832905445390047333600580353932291235793777255348621040951088645252745169344447442856703800394768658084829978703386065367073741407048370450243069415167951494542495002074019488582508879090864785511094824242485663719524326138769384299715267229460309650168759359001348828239278148392134343402455492923964515949089993417414521268030858925329317242874245256205897157428986628072509765047531003440678116649544429569339544312855294921870197797143803073297761359738497243129071805344556364294183162437381010837029737579641767195216956361044525276346165969015600249558976159461549975927095552243542223118922331960878545704081042692242246824685404646168849939452745074325337535177839883683720178335985770263424175065193900040337196853735564286888179892208136367935012515758984411751195490336424102863639321558636965603381835749168364807303071796820830303709687446609967856270358227054506789732641334616791188760781154572478649867736795289788601426253023305044324612777499771332546393445098215547058837189290262001457367210831419907411217927479662119990670395069178611884220837710022297636772064729530295955767423651581485487294657159387149614844417641935443540125651517905343817369404437484397803380471934922208726186312404997639886316805809446077071704440797479110255342274649653532606459197564970994652915367763662674820300522023979092340746211593674233471800484477891382103928601497445652967677495624029670852326801524236236325834408626038469948230985659735116779358323655597972088039446829953143659303657338862018938226464609796065924497847961572735286424157282439915726282542819201693982898938092341886097147149323661358432387069932366817874036900223118573116065019255622624201213040635945141093914131910328455544058126870285300425472905311779419474497751776680104966205658595747399202820077489678401314472582091891550817883443934440001314851387820485895600907891733230663233425523201497960986619833723180155525853121476668468400267254018863682283646546434790831190760912498715652485396079101432830349701072091640685862456554559984805043088513867555032528240683714746460829388109520777563783272514540101798682706312456681146209233658388921446725804718677495675070600218707767984294097729591414107167691032732290741239276494567533444895046123364966497130935176606397385870635941672044864366561406219885025879576874732056691545556084092947003035770944624779250442089761161523370273409009123648359414983245464075510051548001346188942261439219836071944255786753681697224745363145796766984726339211454559137951955000652414012897502855949716241127086151988916624215337957825727215895366402677430934073615935024755744103606707846838682988573189760534294648380821815171221886437973977194348407650007797129482219659240028672128947725547642790274923447262681321630408934015494788007990259790596044199526465801901846611940605352153073099008292148677805219220827385045988223609524715971644217326841395943977733603792469196354602253989231407590994596577243479322170971453631093938455644813797222970737532385947307855453581185365529722121921515690598446300680927811228249684828632370066934201995936369865881362482234941298799770702868900384434847000268587559673283813519471599544269178531105557061871963650303638054638258794941368924997374658591978777699262236052031118681358485899769883761456976911959938741054390722988216566214199830317264934832461905339718189914464516307734453618619979405454264957003776182134094176311692490725052817476131612854079263577176265188877259138828557872623960339956166832539243648504443862668971793568510970160076996076428150798247789540374231664379113112847942223958125250942424204347266993185595257119465375696711282510254019674498193620551640393992349007262817994271745931835185352360084888183888559200659551097448409378444786786108144129995621655884657234486579922929719649668802252601503923884580562613337136540260727928839959284935510200916386923745828677435392951975998312298545418455077256729288763316117909636634092500823599731661986776494704059021168073315932914549517243787145760831373048378569051984626126395260707363299179768108557282696149137819675418625791782508786571952109077325365966517938437501110542582408836488998365383460709663627510761455386678594746374644486235780060470380433227787145353899105413671955370265316498382225721930792596640157661657622725301745650416933852946728376411298503335453394587277002894899058784825397098690916026578230071753624557241695633842860321881355853509318185291449435217752025301960107640253493063309764985241182346794766926814073004558665355418025953590460870152749927325013508068248488854750566768633782110513634639678313840048442415227248214127438407595797037596663819776965789814437541964686629751587444827991477539416583421147886357336026274629719508628220093498883516570262864587951973444624612556797158026851120703318392175266655415803288607254263055884220631773935254006778779017458292580314334692847369307292893104359033325321027924397134462119244297438856573226464113209967370005334999344703527341284685247109607740996272892645614685276807465051113483099298191277714391372930450681520259458897705593801117877329680224673553651831137412851476315145377576273435192295312981351358668704128060100689046739599616849232550662826843935393168640736481570671544928848455854219910344625930019551091967405727179475885205106223149673941502062732809872525915780549536543260647668829132815308681625580983282320993229486124439532409611683159257532288315063791785824765451677728001780299671824787723835256621599537009370620130389101079229625980463911585831161347343240722730097922585045139092583254763623220295388540846567295185750471791050347761007528761288465587609742942617920270033517575085687744709348827304803893183498923161657326394278458305743023224438988260075135878898266130079496350911394670194846697291692108137303492580428347483938142016398526827099191917638592552216312623033735966438934150596375163386300042053588242807002886556503677936232262753141244753117143137893383969707243109083380214475917587681809130253590066551868660248451629908474759507378527376663273011765808985105740799924337076707718817861867825750356748031857703190177293488342911544614563092113698499820914050715890181476392552449930748758984886627744966745727104069864572455198736565833366170306081578113291916365084911942123628994926794340489945128642106218562195661281094376949797470351054730022199415725102509305060430945589321243523891022874978483360886530956259820761097840625879171339066412573290847979309438040737412422720234113602981462293163651204650478955415634810085195829365523466879090474172943377337950051445638332127533595565051501377894823380058514635804561824407855190153668490117647324583365689583925712307107220451074375196018847909032491002490050903832981644789421264177376697268579660538947314603459434327643290283656642537351883322654661798770189120858522840837614925226958330377665353471630509236331332665998022667056930625935461607449501518227335636332848693447772861011852693436195025018249168863590826786713097537274339623303878322495978170424295519639628820672655878776357168515133581092366299349976355347150891880820188196563946662079013331670797457146398631030930747748400343258686278832541199717997673278994752220065075186600626795616420628233455839888350365177754210881278999554441699704041806288574905401001982988574964627827370324832857572709057554160371994594145973891091162562116642821910363780769119931470675291355571781453551707728373057435427643251089656990104720008287806013092645604995177890483243314390252951029506110308746461427615050710160314099163267619360676410866443405346374705579623946132522883231241873061265274301364957351196634924044793068131370505656826892981972208509359329116160524444529693909121659773608680377571883561835182257496169868932183692094348133541002001806159488796528486166844744263312956900810225752023060274869350664477493167240558190484287028925315972367347543394975150369373074412387236958571771133439809480831886355308951720618765388922953737320621476710137720798139251254857090404444845807863812909872039561195463828037041478893995120671602833461411950140230752123524657424654750135383335501463410294964485401476979640411053068908048808589892878043373875641202990698764533862147458910467688295040336925027788624700275128551775908483887386867304718620320149547910507748021766161855553121613096503962794515584451723196290527077824505078492935054426364437480375350610184726349477816309915990753445681879078690502285283191068841393332233595313071207272595517132488852169174431319881413390714694683057460770127897445581139783170742286716375628682689725052775062032291904989161008100712252153576771995327362339060056602808252404111765846551773848982098099107170884991381194372731564322794104136092937895941007772223439019830143181134088959402112281849328590476347702832913536399575813294369441386103450072766171183362005862528409156114976910970232971258260052445487554056899422919708250371847814262010255272945037944612002843951651285453994473810872309492412095617764065555061169382513796684277925250867577922126677949102096973334057174285384891813387819141226856374739078828586402782785985293404841259740944442559333254585152701277478433353702541373510854168137684446834765665883489728698846806121721914725756635538224494806733580925479399559138431517175218664683237921536260488622247821333164520434454660926111639165361203675162325453245132392499384136430894559671516846622845394995500833239558820927796646829825643373005913172077981364065666367988807213609632978107425602671512364223808912091815541610919236247116138537776204088871105655155366196110403612571097416949169992960757154648134576341530299592027619531889137133425337525491908551031201991056448403545754190495184418181615293269490990425665780039731369575729967456268277533500777803960818434958480749418982900052256972906585537152562820033018280999769828095017953435259855092226953922819512404276026036693763231866378626755159395966199675624566491304490471110398588877245390340479957819029594179075539482593778774388629454559163255245399054732571955641636681710400975097365902648456094209154443913654349123707842713602150281173647993350382253890250325889307979833084220642910401935867807158235226569226303877952653122165853745517511033691171824251636179924777182587382948910723722769165513520893347478438995609089550982737871125954998700820906070842078409082134856493866606065411252713068627514291298204104172952075113880776204801527482032587844427644946046266600076153255223397767039932050486281868667586276882789672435774165869769553216890025547498082784962173570827564195798939167589161619562626269891376900300070036024257328539638007355022156700629540221140764460968264483889976759975637234509589131306598111315003498660898652163170779646631034534373343065325256231687767306404717419265480087785174112934289934625502146539871817354291721597113317348320710630035752929678927289682794891327146261183940007646541859934693092046052823917550948685052870551693396812249065706401044202879978260092584376155998691372690867893930864260995642073481808664490048176494132378441320396986256396683840651603249035779694780756345840128369677506477116797272308747772097376238593728847346945496149454304404516438459016324091069309462043367542793778935391966729655676253724527605374531861064384820527355478380603257707900151060321087884611179084124614067981160340819152333102428366814131090828679588254150893066975583356944510181700386916574223882885624182550131477624256016596750110313623547609601365589292372972683784421926674145982451190582903544541810073302872939345212465589861140123215344704814239739610245005857945145326364068773938362961722940673412159858993937691279932148518558006728373868236671163513182589976061357394598494930941544266522935619903520392682698615447607853028830439541470817704518867060824358646002163216173051348874744160224700958336283096849133506159196260716567540473956219028777667734704724168205313127916521109549783366510779765638228006335331791419437275333369259494464614548770507773117143495007470927293826374640528881247514124559574071099943255953718810621686108254498286979859836401719201355687478750611575392204183698630758983122982562502668932101371548864577789709915520050419426108400112820586872868477486463364193380618935280826661703639106029248491155305983023495350645849454904498886983492991093583810605109486399137965019399571612518882090508802406608616207089935958888727865037203454887470911584074872607528509353164410817199858283251574618183080486201280727444008096288683509331850681746475348883950220079660565077032534227035206013690525752118349826230210398864806215407570241758785758050206153251977460303284268419883598462223272635848574460520996942167703881161385547666607410276115833971473960912125228610138589150342317997315321881609004936363120410327859914311105470311981398342373953279074635629744871296938339456951986603619853076703524034956917854414935133743238072357648827752487411918877234254522797540998752001467574600827540332782440538071519166524205046818050520225998172534827054261582441622544045497301912803754205844033366012050091969633085081577382228179921761351391111239980502930051446706576639870470287322158314824636343870387954974692171612028563539089276432046761954844347101949038644408762918354754071209009302852025221316343652577488073781522861742747463315705393792626718411754354355516678637382172458180035193685802544040513539270748457442557288135365503872184525247252734844598673050519218596122232046041126903384999623679284324067020213252327763737995488030852928917221581883228599916684811573352939159107782737659800407356796832064168841047511916276015763757741678860233548141571999794708282737500478470616272522294757772940012660232997585665295167290924735164869684318922824843328727260562803390453701077210957970405755788559493137642751538614414626880638847634393290054351306835798073006267588593820583949863084493253014842425617066911780105163564860693566403348292235076375546936175402307342157864837363274193879344934203798527099893679011605729674250022285558029497298133418515355388936412477549689707725289288221319016248106707031512475078897549421008411538546678299776175781725125900623390730155606117665280559863762336821541571569859191038362757859706651977001720005957460598145327448899018555799169710202726838784813598023652155312688131349502723555610167983443621707983171145446359722225785426221236463262680644365501981571634100873393650397609030867296773671312988975862833080456943166293314544355974137289734979763278433658333206422414589918561009343025099255939168749851103766036319221845590558302946665859992030186616257985649250879872485421610014921860133057305154803953929366542187343459807539161224360158488301741297513803002942362653258901381975755171840554368663653557348765625218282481106705545428588558192714165103476373529182427571242386438924300676408492973022880679783123151573090457065962227124567845834916465649897359237042719501205305601214306420567692110275731331583920853260001300195488736105547075385851870568504422436017454674163080773113666355361468609523660300235719755612913692530716327289940001876738537540136029791693283731684435193562722469323415713216641083125188714394005352224290570432791129709137586499623904339373595248165527491412943833459023962441965292383758432620470524593369482466354344830573148638736592936246248641937580445004714283854051030125426600840677033859903231996156447378919027934932998067999985991601593247221791075260431913695748693759831399328556872964827585135462063422468013929957466351043292880880500715350480281219754688974851263507957812981571494530752245962622596933361689701376565307500792069803182187224260472614237232220085938130560104922948199948577919554761166455535460465831647854760167413195518283019217763220473353563923084328451319514276388695486494228636123998426105319455642548072549848085644733397518365304915139081805019827295610273057549040836241995617105120339897640613936133063986636995544832592837677452080681086908191066190897654766055073729885058943160932686178752502305406470005507391687745349094115788213398498868621058237170740343633760305502136099261445076815711063366797613376275990306241567937014487291402061636524637476944648677922730914391761729924322992560822873298894408994141184042009498557566443460829540324405591779349584913650529321390364164769478949215312906035318741807738391906630765047406589538428987258865336113861617206479479505477480259449828955314484118458223536142717954407771114458070734334813524206919738814324526431214311434692683459524168826929551331585659555783931146537339383427179854486921819617314040583576558817491434255066770257668603614432689329513385980197065303233372040848970266211105902419519796556988669476934804778370829514823197097238507293676891143867495380749627963665164822099414371163137842076226145940309740452858355646301815275676371602127953193013116938464124489754776866923061014525503160429880507092432075368629320049965714373895362314266536217975339526184111107003295421164332826891687194923129755534340748281404165563143931040902077930478318542682252929232418741858537246756965644462462164572745933056839931956555790034898306365810102833683974905103153312173119643196946116083625557943274707189072801135718222910093598575073009941062016003958479670783380760985733454791152431991518412882196222255509564247927158940279755870292300139866703533451762573059113406905572665475822666791602111884245955515200551461161413692684352575385586969086420249314445880628542552694029235410975079836238698935133273060859316182280060762326736859722839933646460804707892718375609389435295614997099828852870759756754179097726288211148750318156397949688424579380875277501532605666248405275157500337026104154267443183856001895497404841330335672666103028153678585183879247883249487790178983978251118952678745181681503253721405552074290768665727937603323015661653943621936867456868644997141568415580503981119301580065895441700833018714055713932081359558690973459191942344257795468922629550937212654907946683813904609470929109409584266552274139915992250104503624671109768140749510061793410996938284488338223375763738851052565046524836455414386920750312904209948086722662914188096977949238168916807044767540376044531867567232750025141509312834940418528865716424339897279629909258503639059579822202316519956059345250603973706734864133751749974453832511704896389804429660722081271086434063635326824620945974386870947657948866245777656394690262897511048189889069472134128697590264085348026770668831699574668442992776462249654244368117269556800015327769927864804058395693260733930054005629940330501330255702294274768335285240157218717693873279465718393366817430731898375113262056895856603135930894754481269107671814535079219639564268609639619750940705368291208857385683295593933453048443076300747477659160675488040499525370446126581496643089036458530241372333724872155616817996691485844852690076923802532778367386309347102894757547451429910064653419489694549264539740943403966299769294260721339214499845725706211859687143769566691292341431865202857284385423720317759578366673503408612224208798007204546340209667316996833878416415563620046056742842090047046467487508429447564093162261012393523284606658314605853577087417336115036638420891046746402201666397234830130452476649932920823768110549330922405631784047592296303809997635503258450530047053739398363179532060787767442219819003880918931117437683867066058831021961256109210200236692651027207310983894579696799319540109521945183682726445371890519187094097106135166630258456673380483997395850995061298193922265691569736068664770136306033970481095011104190306034117017014036717953144186864347002466308045258322181770887236960924158796693379723790585499573339203920541427214953075706146165522135504224012727490573517965542550920849486864204609141172738873127185054964258926830721711803331300253030964687049398349230975587750401089108705698839113329382523103075591211840959759890593805481728676665424848330671282287095717236104698874494462912572810462294862562156668231833249238750948762605786159035515999878628191055276098685883848121461234307949637674482727542439575150780986826927297224800425868081021975406026865855817216878286585524182166039544908103944824841857392791471204820129542764943579279360207177671399592523967474018238397547358980206761198155335352529995309881792813107119346333499671543206245938155627006824476723982285321333944226541331335139380855034092611832308305944161444348427910252945005184921595168185993456157027782523650888739471992172910594280164294015740130374091165521400714217928295989250671180114247249699365003533140018570106816746240761801586481305594466100090237878628990669939346402223768371774938763658751151184778173788783401078711755587984960141673866906684060060738765222825823712161204918766464345333952712869673710933234646900355030462843407048333789688305275479016254875759970452419379660048655209491433532735075238361886880899108281074401348669989325032231838414945003830502192449722408078656863084279343078355729280884396761316642305172595411443955200230741965634306965159243289332146275468339659753609898088556058493098499775357033486741108327324301476790035586065867933640913389051737250433804514737541647523207739595834761940216490045932319357282098537432406368096926959026431834686255144808393453871497529256457830388351633896770878320475599648075424101319250021133816482915542233218453508212525200105435591908582569829507862917697593434430520875916560918825961314796083746144632999101285824230912992154654290200917080539698711915882453270705834404879350250517247396655660882583886674106646521370128481410242119439561253239374018499504794568472557450974997056002034476379755480850267965144214492150892186423385565493514112672784961576215734546737305535972974440963828628485100368849323730341771669621068240700808654084001067321385242397056196318260394554424830432614604359323536120654708558733074365040158807502259167823859881304792821483337660348074200254184267122691620443476784667953238779552009644940453358677263469124977863429501557536743167251178199237832234266775978222876764605382329309102359222913439002329136226011757390144536991013925145285029147308848357168214669946288023000078880584887562369688890908614775813665727820081391612091793988022339198010852166998768372189638328486468050967667304782791821991110538608932443693924666084871855674289841808689830235962661250279799351056839685844206593153445831739173397751181892212545889028965289671966443423875638201988931850068270717709827113294115117472030936666906312525864372431003991744022797155155385108305224779517996860883105646594465155873209976975705329131952789752855527952019543868337959812201846862192764784530560154445335709285921757526583673207767733567509515374391894459529572635579604137344899129091550284656349112932242952772251871118022785508299689363643551423820922456041926855979527566859182687838578259935781742932879795704920508189133576855235078763515629620959366454485672329962958568470888978343209419310722615771319796479986958815801128062413966465717034011172451752539445463540636843686269469329326730419108848780864472197292909026347160064051813869300169401759380040532782890153199947627893652028943692844027075600501190948894500401465032792938471082173260667663029241318588371630518614521766125759880438533366172330089797415924347293249633651756642911606753527843504189919845091590219428358269272330845336195034156826992439337298323505876442952426840177238589752839490606793657590036496680472489439337806691077992560999776160787832311508876084516394648504831176551301684430332717743224864955956149628436371708315352959726608538869756148314943589633249303119762726192256494395108380068303168683093948399512131959892023476045651073435353067162689845931023877155432321617239869406296133843131465080419035325590733533663389159690970839984593478570281712222100835846437642821035277651147307349044823736890300413786817077412476323052804481944896537695555919533996203691913472365298698826635447883814759464427826765034130238056664902075512186963679506123056764245538262201803815084305073643988369184974597774671120459288674234550912772317168555623906232599364197832253589845131144803850227339674335675121105349467890344571492211222670304063233564414145198820715678826603895056001497118578638459716013054218200330117223857672705065857671691905393170919463823856986708426922346575412199392401765952358371083539524689029490606264311106141596133407624360655884559762783514153056962755277957796012457651767652213197243614010848591657988520982100014062948263402224808309238990245359193282565473888920944948086417612276665674742115855683143272880012150121619991710246610892759129108067387274232822913444485953597815746353706516477391109509257699924910810230604627052463573518494721708814042714552336315032810698401537646972945771164562312284148963645335140227816941062500962774733881322455524173933764032763775368593047880004809013411285446933107132652512768643435173951418489131989566736266397637887057146546562383385767803511942183437030164186933469021191901287045528081883526750853903547561737072226896399905843631993634893199393645498138364717316485417691616341784194322578116565718327651654548596028407084033579806469947983370886596350011760398141257061273588498300677464341077655134882080232060414970729133555637525627759738004768815371885790980666077238082269318250394007565329683805149952448722781542769264224550270522143912069253696143992532600886477592979923519435948713305344322173331554458282182697494269337401087971487565033893259663754883675167227674200831580400847904448586074545765942787616074106051792626931848703314366232812487135714401993267846241627325875115392129985623097245564773748353175787857415489035210524345940482565032894818236105124284614201639968595766127068392067815329522965629305647846650806104522148032811393833854466010513922844112456917319201056175094150096235252496342513935377955614875154780075411950789858134443059101255747606177095063288306832419306920297666038885020225046670249558622851390842923286564562225663972352867775312382763993109428402662822753180168557179952709730870649883204266265814643316016312063898085888490606063919010480333438879935522404104659027930106412430305488872875800131883907655499840322900023679878451650031544009354918555451755163873973774762182610619327654223830149207753070788813839864813451604495500057212619422949565205097331129478144143056923588188553213105307598502234312800119647294961659923243641956604711886464816958625375615260896741811407623408983811191042120708966844006690162618754781108507200432333966846657341389349871315773413185762619462442034930157579438466195664084672502938724802510339566900374596779072197038462002493689680206182030867909344127749057778749245986656454371391775417785889869667890082018144098730415047973262498870396918287755753037697884748512802313520103398356205816091578192545389980282171913080016501509340100755425105004218030207657085859695303326677040181425912896929591402291158224461383630817851482369871448917774853077372897786927918305883934914360888353263008835535438129492023867073010178325688359387806351503643224096928304381537034860847399837097478835859515794221403222239806406890747753951676256557397351650481828830772553182751373601905010767926861740015164302172138623868919147360401067027955810746293201030406024396831367641313900548905937154067676777897692718273271043182702630742708109484258814387604216678714731553111081558963614971533292107341744323185426069887596926644017474582814211273215029832105536048495200955862948578997914246606077491718366253587001747858589930955317774594615949626842201528305353359614022311243576731140712170070589496413767891400317566190568954554210857618341080422698978524302838189850541006317058301957525104996446532696815408676580985519239472435232302070193538304097391479483885482346505069371505727164873529708150807317324258175555234493785240638046009716085807065132200498400375273857385699866993278997687029641117797638962509671757410943352633988504552687293681363497128180902247989582437994583559712441494389115630575635902918481516255769557651627393854302063068924537697961669312200461277440898788627208062580602565094810505943935172673845759385660089105003533525911161682123419737350178460231584353679930706997292423153824145276104349679910969463948318715509917185214591792900595461030510313810221768927481061673205208072827581166043814132735654356584171509333553672601705982016497956850519676117680792818816228453301323314949880176382315272387950671172415391817744152107559093922801517911021982932545352162992900380609931312424999710919011393534341357220298717469715771104451225534046246518817638933680823144131732775496054560904913050880845615742928944604761717811579877527171351548110391124073196143979457414024192791992323926115790036536287266203406562851804000592194224847473144605472053695228394462777236226537140864290637420886463163777579302655534996502404394321286372084000933015753130769174172595928477983052134045920407123942211350113222644040336826596339556415205191203797055181665618003382918107718196208390263118549954671331255187459063277429994777515251930352327625977944292197193822940663068942115136773667276143075961693599892529559949396622955024637973396711886697918298740995801240035272485286961493403375498469821733013082782319950699066890883486399196026897947469200553101254958278928591459872518617784633213658936209547192329117315849136615944603007590117287208649453668526611540509827636488674177314125826733687259491677184249267062641486961581097057375330239239141989744436542428361981181246550397657397559774611967578058173291628357786642657188146379708022446741694823315716404765326219837136917858887276292342321427706890795159179355864546185940331803524269675932326173214912156031866906748456789172263263461133061255809584834356778035056638941510210161450383488315009499795455624038102479801360506532027257243060435782686041229855418645639669949946665343016545084461118165045729729692374595117886612902959367883299947983741369668848048446273217976057844563299432663056853342484735274462552737849319084842605985825056604032442309337169001877452467105245579736840362440677290404063439480616803158253194415607880828617296164075270275859276645830247127280025472128979527591995257585575771818459485955895739256063307807257864665455310355705332578993890421077277674609993899857954769467725754649449445960461808051575305447360559638008598588387876060687783641212559283690907748120234265300357593796644472500472956157221702914177994273354504368535097071000383940216505917150862578348968277075086506883807415419497092737540974926139129365917531716697031433574516765725262667093302656720540386885226461074608786525538913562063753618366902270710833112171391061714330164869065187608003209375852899426935045169265811161470413126908674516199074878775600357501111828262462032747636112325953966391307143463080062629890455255778149997589563029322233122552332989766981401273293991038816100443787456632634639668697947025846580803443519133734541957937990948741352335089429483793800830176946135399975647380540367820031147300162080339607229529699301317946701671849368945590883551221035553828377074813828553445828006042905859236547184894816204170018829892851941816688394500343175336898545240882910856322479833301674768366036386243527799447704357393533961616435823846823849503921658864743261277105711712703496118786795129872835385029903389739623900259024539712066918236475491579032408384292522976265295478145559981466221336149144063601261883872139527378302571176695238726432490180036713971304673894621161696300541134717032322169228343100513774344541001302445549590313357633984589879831333959484990322678130566719774170771609062213694686268003569374887003509601478089409229739578584319979153160813918059692681383805887681647980554168431053551882167292905435342561373010879663726239359558840560788364602300336757760768640799512489017419014497676777949447133326980090629278565930741607817350173516321921867843859737036360253892793370595249824422339261308796141976014556607659534300936572097077222512625532237195811829089253560209738772818888060651562616187661956110235373861965832672174265697807982239097198065146644944093209753589977964590749149396535264382065502669497258535669402944967388252681751120942246895590707876427113686136561924406063072964815230747226814619748414367141661826604618459089556906245692822563589934183782153442460295966750417583768778520078605311947043035952350556767471049553271891652783566931691888827439837134108305031938994313293402656664062434770888489945206138877869599354836773903954782141435063040957863580818121953043872733379630779231551404237355840833346189919467444127994232483094812805825290889459535306887929267164146343900644764889965919104925811562463287122451110549991951623315913569742530276485841005188882789429861687352607638411552858128696211412944645477285967515502961862365797167921053059118767590546107207005402971753038112088306917089812088990425990855193136518484975701911876769208673023948995273782700494537478307448996295197474005768634136349862911953244683345750261171408890220136579217328784386943264051478263738051272405677534718021020032165774876215166079929206636723203852867301054802673331609446351342472339909075602406004816797522273625035303173450163146364596575904084541406007489131131251183554491040582984382226053053190138789593014197457723869591199949419424633121301160966243789483836844726120890159660460649867907833268215734247470574834718071218116571189752353866931099293242387315888687842104197614545996571769303216950590989525531690090849654232337048562904102024163238259706379866116692312584234800436454830432816224401523387971258011142656732224935553823886571762717036992143318630270350875072538645403549447806925093537047589074622789177092317132956704569073985381417107463192703129326558887735554426022014716022558664311903488375037406366474801425868149331195088363056256918917341033896113534379362033891240681766452790612271458856296455098498259988701331065630597744492845429900903213388374527126073161294737273575882548304939957464469493360071767780767430751341968224276265556018599579757015806409363868582593719383205608082598574263126905171337300202676593776312316624489864745581630993033140184241133575815600700651509796924364132181109793431340894019953645226546519242801592414296782279903492488103458386588995804967851715906566503452295740024042783735483945463090809159561767920510652242535790928448124955027794881222041381488977267255872521702480358469175599805385251975040576193905583390119467123745106274173694025532955205787982419100364373909073119393206148100533732653635207703334886176089009168518332574838904115311582921989094844803201882668528379242452586039803016026832152899169380987538442601144875441948573627525321761109756704614548959767550517580394886734303918467342320708292122479720489828980468516645081410730851252166583901719066083432226968583184804947292808351233057926700234889383073096008575785741738023652912708760052803044329852653022917588172319262635460142502569170739457260252656730890083283919643743692855857676179031170547263976448433039398914346736959852201014538432194605503014176128166584508617342703358902780783512102624884593245669772962140803161284080699144417161290729707096257415458784466384911564814446012087067908371613525316763137453994919601257931286841472662736015039922444670511914905973986714136601223625389436322518504364001436235862874462658359501203198000783058647769572748883251291258039314368188820459976003695082201380979883352524027066079782527933885986234155527911338333646655458325325737497257479771218081229157600547761371327420634959002885404137106909193811565139081445638316458787253498959674942514986455238633462445601062619477303023870857254543314122261905584772619157137877472804114108113749413853030267918017751884459282897724474923438847825163543258647608819026162411068072998162338311186302115265560507311283735879905236573688430539277550960601061336599152454416375303962489504188142696586202575241787097257595892734157582309423381505640077029725514641945616370203735944768582450681848139716708755306500953339032218385395836765109310575243216874294517331316716208589769956987260435269694755168526386506362576902359907145978638126010899379282953444875115201483463962184076709485599438426380958477937237039670991907178744911079027366789046671077478317948703983504436332593110388685647471690785522927205717106930445925256785897550599894222219112514319054232374230941656718175713787217395155706322689263372530767829172411908606682902418361277415165217866929773421815132483097880894580636350830139364549578391155242644997042696520265087656338851599603706735863358379455380354067680918833959384396414812179955570917371026961246370907390357763235303829444913622619284122588621892942754417090338982829207686854138626676382291830628866815454998643833821243929486220850014704976506173808997625786083210332221193445887818213362799989643257793908367942896633787438110133327298610467568817299282259176738202505926681093073567430295419361533820577753791117798477352802911719857764046841472449215656370905311677160359085764526835916591908865950463205198566568234451142189000411434338667473792335714916848606302526428059317302031907080978974336142212782636206202165513314843284494469422505063805029709636847249042011802590659051521182551625517560622429225366564794609932063711082611660628589904399457378775448768110742286645906718503188485446166950589173147555307081634005801613420224774724178349027349604407038552696646873706213103476692938694422629515288434857536090749421428394013012017172521549159697539472999136648566125037686184062126959432652361403595851688641029684211516535173709262420201022697345813835858027823544461434099346168223502283492723609020596233395527890845064361351915496654683799603996962121499746663556826133470088823104087956104222208909244505477356775362260991665144581038961459720129724400696661785705592583546407342102993850211373668625864249612257327867624978911942504442191327574268143934995770821864626341779070501996915001633749788264267637837683412069326975466565834144325798687666946431682422927956434795516014917771259910762498195852644796986444792414367093749031864207474439446594997332689735339493369575551634491099330844864390285448497969298309726031980464034899372617511364239262947660087886128074839649937137538272689283519465512106436476007318558900426853529174728642816021538833570328385986339397689220330888835870298358770619764548098655196261772409752376166979338915428477539993787116778556477052743954278691280033935797490957895996539740449950768744114077753662841644288965768429475210706795121443326629670737176312923560911696232545770908431843588444982011165667977387702239138972534545249603618085479686983291240669924844592282400520915091216569049368907084245325156518594748673598503452493341764631462303950103615401476600439589445681335963710075141002786301026159638066322024553084924662017736428498198567202586986531367018740786049745711257588765542875057967561801527334154756354577228318078664113412387809541486013445405630886685262901025923349822067890078209443351655774588994006793829908258989248149386850472665477222481066395395215885747408744831426810951893571268322761387352425498234935073148558433894265114614928748152180731711136307828276296679132819473728709900076737239821737596752745109462244034694710559656887548461185283364920028034419378553445149304037227840046127983673945454877421402502123722954914531175624336690823989361675924854029887320496757043803008537641046302482425237151033357008580523401382202750750960292311779294616897905211718252324297689333853683020156593078687369812506973529948123747508462124594391910827535507296746312512374889221074095531115632151669064932816047940615328718333056756757089526292261205641998781296292339101316904739875139159499139324606672690208143967085139650207473700706040677175510157059809745873682070177086884000569673373929770442795682089675451422910247119539430273945989327426737564390525706670922956037339195202213938999897332726550106781508481205914745858474345401766564907877502952311464254656451637597385841081070502821234203365386683030419970288333115680126584941957280777629800896967716943451662951263127530579808710194886893236398410585410258848897708999794272688429926362652364864097729270296319870060122555400671471785878168731485198151814486895742344661831007632593277405413137592289205419475529774808734926849322983179224666232377816504164362230897353502461223077507213578278087866056100380747367404425023162417908110157238690121462752755700368457456661703493029165992737321138811855501915922136402060415662503049287456443283703496910697204005211371036097562032714914883975482682638651526936748270746535339770968555717126259676340764473599407724063504640082584793590996787874676780695479039606427010849370863988614502617783757828712316293958635352885927701404186447532892779386064925134844879076707031084594381099458200542644872024921176281644123649286429118557120547442894952775408075016188475475120975614037568122644821983971989348502718424277609045763746361721315170637257250174702267140074935721733055583906098673379971995122220391624169746056430056339890138099051860335000513403169456061105282476208484992498675505274268935940918626989338601163125956534609215517517428499542511536293697723871202477935248347403529487623638614132581203204408504793374970366107804817532104769459423268641785417821111738467046735104585447006664583448003520638639757609209878243336009634084075464320486258768151078046273960978819770304992686521102446428782029519498060444633478887989053015202155413199766735789738832630975728860367455759814005287617536128486264658076885077959627667121630270267491001303994924634793125706643209201296477347221220457853365747759980181286051684401325409890415438481638687302482410867146711397905039477743762045240130796701726599870748323980579475229694391091414475607381599885921867974062794938765274326180947220925201595715315495786708392532357894655179664000746667569872029412625966088983817569047926062260379669265041457466535175092472851327964552210785611822269677761485620339437530504825986955233701651088238596953659341163116185999202653038606492022458054733690245390881497580464490270294795168435586877101085537122633070056961894107044154545414423358192926857431764548164020452698901104768578655890021875792200786726269713614476964134253606576154383652149860883901787260712081111442912657944112491815193616657381889558685737266907486742501014716515645206993182602603427979141908088777040435057184055221808914484222277673002254997655695772816722926783092715840895784552568317687233679474732845156827183358130190868197030359246676388363640188293656658949378192571566797265136400389475716666683536113413128935787293588821823005610688255830756565664267320290856849872903330999715801564746327610534252063025423992798803600611620475921096490198098225194475166375472743012768721419126090675918506731776208075232146345846588937159434481144237466719978124680421510106240499062601076583736571073665139276254964777668342432028466218653197611412325417471303058970017986445581772371513444502831052046858719489670240859092931134828298766774227419753416828860037501776858850380968966491851440793416046883049677143890614317907710219687774647742541659308822407217700954458854808613292468989589301441351580376494244434968525873074101896230757254007874270993751914476266656795604333505339953746117676915571693938078582452095535323784480544129811890474547102457110057786171370141586846518351135456313770442206491168545144098914105507144484390091742313954535801699058703316813255576687158149211663057028028125707247447848267302883772903429146879712323377927465027724600255611277734088225569247966474381526675109667766708086087911316647061625763288450235851151519258486800967050236002395487052430479619357598617560545246803403871927987397294629059077802266288864606049813040992535143247483671496687930443091085867500271687466340115616613937063289906946809941687483457410685565543938178164151498107627093022710341642046547538794134098424607625605219889765206631203152626394717712206473557479234602383846242697299669616739528545785745455101517953077646278691406320969335875011667530824276338398393045725855866529024497205851801864670616889709856637885026370695411225292511305174987592490133800305262052890807719193876021081422833549670908072919852761458973200559900258434598246277443177930363348529377454682797791639291840173065512620875292328180644268838452748720745486685424508726378030151820217959040547348292272337968158372087408288823247333023482554140517697776086696835055439804965406836482376251471609601206745776242066984968467172058120458691986517801792654819296441536363055269713017298045778824643823141941295816152331861930913658201088856983439303446927017034010381339928529505278431116132575254366721631075527419657406691093052532682835997645103046419714285866255934455861258611606936392715398714980054408295762279230052755541754436463118010607715044525931219569016025174672217797819674805696370562478211451833622731338315126320799777422230815401249579331144305107169449924792857694968758481091771127690457092880308954929327739927468598425843702206197981936288411345100477180446069082396120282948863619166780091190947485773632973168727631216291504660830867737200024509327833978824113207017920121135622112602270345547600924188350868672439441536870065973798997294159290255157179055771362041901771820155081422905843517809033717961016669821912994302687857029939184274536104033991604434762615011649878224990568118281130399603533869561421156609400441358387163721152951522185997681091025464129189198369690139466239204965245048560426423825300137754238954173211876187658892152148554594852162183491956153815580709507028176616988377291640611640566830599099836644383831808155946825086446288247815307663233683601686747367129859490979169346592392602939962415264254839166419174793305898654381023558089887872942792057693285563012023170380508020500748327344643358088072137428196607160183979801898599645792767884342463399952873604432577819995576744815702584808534846822510357112803370083591056569594969178023829273496213944547053497887904479039101053686258192139952225680804051414120604704286589876775873359755978691984281863250754062974077787953219013034152418222486184554733012359383879304850072472129408397713783483479461575563709774288514719749485507882216023807141060172688449138817080920683155727348487601182083997432940697677897690132103839251188221516406276101481759605624673530862995921586663014543393286123040998246298364714787360629545472297923927238929673260035023264652344015726118728769085268070190347313135921845757658504044114354990792439478135331337839463122948732012749182450178304282931492152052939813219933199418991506907317078933304339737403523500750776318448578873935007406409248743190189597475220275429963602089442757460451920292588573769030643392621538896227108309951179184396357647538292543268089504819695319027760717515012655093643056399221912966435826488226181767972534924626131328859761128503590181019765034747029434756321949522317698535683644737635723266048887308817979866098507469848944867221294852839226322201325698450738893672801861392452896133650183717575349218424152213147346635893053597858949521314025567723504776864839452715699492510995461565963566823646725811446188123243904531691660871788422939963419934105400096091777664104291769788609125889544736890463068988473005544876535192134716061648163509054505880970741714839475581470513342339057778787734838956986563088102475205240527239541984440409904913801840201073972796928763982419283688416968995138770782234336949831280101896151584033768447977596144362051931230616814101115976700364274211400712199656946255586115493477485844208278924817333704557458922241937120899724961625982792492067018081084404207753391805547850620707275426781264418438348957923733470504076705399999651220131124327880701034805100725708512760291248921709498204483851353677829007866013454621896741744830543207406545471042999856784476166718024763179722871406998030046174676043983859276130596215970942934533162956496896219158221147385799547745368251995154232418357456240314490117340389088336359051677528535512566581479845274803276870239292469777867214776422969519523111962041020603761412940550941565155590618785706478387053626013000939298211661549398619310541976771720616911319351402770295803220697108516998581936039975550952486301381925713841486597309688445227234696843722736556953780541292166440963274774569561733982629105446334681891886677101498476796205784847346914336734227371602456497439492172117565130305985780100549683487370004720983264244791124494899333804709858381482304490646723162762460838822813423064885192078148696434752137299997211346122903699542640940533639532508827842250108210319172377266012684355276124353142647043384384196765541828026058764103077617762992828348066446283417845586935453961191806999570593685751386451993452745227394378980487361011782775958872867541767287667356163730071447474005300153343526078189176496611270822506692283390213399946515313353992008999833460326004509294420507732528490427325765009476511102396033667090332551395145471600517475656086459404833789881905372391481154757228877393842788805885807424638791476117935303486341645093223462455075708139619256459666521403848648155479412754533700304595058577308944507396950335147380351621752465671239223665107186616798620494538587604967233373785993683061601335906978658537358959875075613408365517728506867275171111859766269290022351031984224139729642992417517792535036699989078930574462514655995513978582607169392019972970778557873187353133563000193427572417925548333750199199777848451060015161867532705977888257964334294582766279019730493900222342914194795247642106935862739098760681034236481295831477601941547629241696244830712677332671594381516129973781483342044814706579072197906969770120236711256189132583153631100770791294757219408493467583657841875931675914379566205990112295536812209899973515423382675197001322176964260831787216081992549925217921741228552268576296295717645485107337008554837800401165497617840199090059938618829021906795193843040499673240165437993978674759273583026297690547556722006710121001690007387082084298149253792290015048449921122618343497498875778222338511713699469064043317612447668350227197037237095889061842035400232167040607464228907903492936760435422075319008161421181842796872839972506621908403724111197878347664897813135852501734087957242809513300146150978889148529371169955904259006555684615759067194924714927898758690063660998917744094654846873708652187232882442245462098350943175267660976721006860391959860632288470571789144942061511943020889331510361604053925090428370135820547052356488136627615472347142813459284449264637401696021103172863446172378930786964892762019563423180726371110224716037864313417977507270242328220077301406855747417031648326732611728591070378347463761558847604508187503915551192691623526296992240795591965553972580131983092910836297403112558079354826077471027730286069549147270989145687020043543398151242630733879473765585442348725773485112769787008517439435754615346066283301180247180757085281398974947881344605682769774445631123585392267250472181392655937530017975155032777991112381965591413872648684439005134035443809454803537910735666983994178447545915369112360234714841098613786439545294886930062629705982438873447093763626245692281799238954557733388011327035364879124295710215408336535584144072955340304916111073285416804903574025305970749064557791343107830883689447115029529196381634524680031429242313047947232584582071021632294388972935962965694212137206943323769605709052163289264798079575077465612138992924728739960797711988966069311258198033476590244945433792176881685179959606831936612581202029939193193880195755690567468948742189213701361306243299975907184986577621913609835638125844176679416244343370179362748120416331760063119620517598279618030659503269449209012088719701469768582638524079303179381694416861746291793058242539117063324379828315306462034512423093551842706930847278230762447027747329695430761115992139678197738349228310442318002265079545107403980771862147559827695757060192749990665578613577890747751576102311964199614045719701537956582957624922040240917851913419705739503667902579523332982642970763160188916409662163832548232052676974949037194770599637705312988292836514427376263862037676267345621656528004014112791942353056950707119119876457105083931776902100349497070398888080749155296926793237860823494071317972016231953538074686711520121992323393320074772257051092978447604531246981579518890644093622388109353980978245190779722696291731102005327717912083928894685898689721086152944727762111592126675465985128911289459399847652349739081254017682475449560000659556157581602136974516880152557968474829480293310667057550878848949657735977022773383544732106461334567969291871752282620097177211406554785526114961617759926639019013350859328820719235882558652602924682057844458728406284624968608789495037274199583639116955877980546388697153604475408430766654132412910742651702183676013840445975978645027607011955173564104269978526880928064161770382016320987503497502239965537739682602363738591562635244685808803480435086233703833356567783041991917461281316456881681807724170607373424661457946249979817688909116714752055030847427828797210964602305251618495376903448551690438490240442681288137462879374015647624521562130701269392111225482822608809686054721045450236996225873059026491465888742009172679738359643709188978463412654389401063709570245731045558924512083930116418234940892996944010371366114696176017524779746031831115465061433623805829365645604915343150132107337775533369294470107955340533830332578430861613412984091048583880913393177346720141187713457935425143224880721505349622322698902901860761189746951019669801167895986612581307180656067081490350997251409557517916259393340816538394999309760602847315499301231458838292893707975052738200985835171588376581924141434803819197801933625409360939568664775120187561397433701707125616919098388438774131812938488641488376361678495755298415405307571751015673270991313518406081662501607200345048019998416708641967089318318551836054103170152690693340213313880240015368741223371449104854753863713935436790439788414552934014700082973472836280846835261403350750269653269762212506412449218416000316816190422782349785098388876349313946094593223462209289293864317239378906790035682980689393529465904726236686806361821159886643185735686996579635964311843497815212590329367321028463981208268696456640393147033084010783924660594909152660388542285300490486817962414383113323785331349552434714319857497639830696857643228881214456033195011156356046772757854918633238173881476927855959797298896063730425242921669957000954923060839105927654710925596185199982902182371804744042298196510617365394693409999665714367497609594264916944133153776761069062856395231316500840274500861848191958052357260824050404083147891311126819846939522751240439121421496318971949980105397966227974351501964944649785429668808571217750389229890359280624161213885654483385364284373308492126546017809338904408196154873240975059556649653003986121564513735206215561227611763301104203404910904133612104787220347495999599444985279671384870453844333596232703442696021379324892802836819398528920507750318869272399539456108172101199573019555262276584678486499235760896908122036028937273785084995651815144987584892502977258856802842017538192277409458867410005438212967660787535104030489623765109002819483121751724017409228039979132888886165715758153535410404060268907044700147216674596221013317035342258464039468677100643339874006434684087944939463416902454297118384631649028186208774978589643364082134760210819279732056985705363364351343539229825426868122374191033761475861512017651799910990328237012526952989178069010511581356779328823096591257478610286805059453764187616257490470672847560023611550934473071839192512098500322383102889625107622284896982095645332804584433081783543507073248590584783350891841590769922622665205746159064465254835620934635233954373602662589076988794860578790670849570831557528596378983798137774118984815331029879276075611750174502686860050292861060809148004882767904356929571105111770335101141610023276343858535721998551236591238998891512853207665284603673764491803581922532581896985323459902191811403804384097795520780982610803963450905640992489505764712696728450305866446548215805483891414606790534646575933614865238694840064850442876657566058686874375613507450501517331999725659428423734964070136306503874159404180203785274159848364077606207916272488691582990351530132412106718778301833050979596033146145732145648510578463929247001906842249049946130046787475720150696749312454589507181513736301246715270716061797821605816759695793850631383507041310635613991127320125030453496522466825476410285753418404994714091265875046171066620444093747403283578289015293867782705229193229186126878687599132674739769640327196584688706097062002041417589208872720795368932133409887147979332802575761051070133887255845194343226401063831305999893301876802800544957472478334447432375722365866191214035007485877108867767547799882542958438776335629571114790488112684083938944813845731186650825439639890165934554351931468429827791246910260653017279286482872648979979693278153316086057193263699370392445820750700373719313335489493478797783262440164418110271004554321581223174603293271407514586906964807563502072071195740547180696688111741890733750087546805228916000631515013109811627641526400921282059186320738715487250144362650320174277383064125879182970699028711161743571056239423256051473698283731001022012791493497330997186732400806761240042875985248595161913121123095907933078504581458723626838437436894302046750865295173221934922399973761897127984309167169498883347993833297883349298948348596687514253935179528217822019098416335863235994203186979944925205895144341591675189685124732686978246111519163379584365659146420215529978148426517906550444298529006294093264874104395596256341325752243867835565476356792762783408861261045174309100832106159265295034167583220127785239686834271255054123933513889210410463798773525539987811805401765564743956297566571568064799664511954659031828023966105691982080563570602079839595276699640780711638945748464143665009946831399351222375730591068213405419752016216075310796800079821116822844507413773047334381371690723808450110932416609760386715502831847465980827269697016918972077612467322295597463393598055509671840292400672322683747548036397858034471955172901905952887350552447526607084951659417331470177230888688068549643894301176971870213572705123962773430027809708645033421060202079045413818865718523141607412193220580850325409007145458734302796751780912316064098393657785812375608822204163052637699372524161736895027531393319938554388192471449377301380094231814294017256145169394514651175413342789712393874935119725985338256063843159198473245248756041850739990862678322333899065417946416429178198708336316449178422832558178289074203359170230315700078931374092504730424205405923674395644551767291003552047820632461390433244788728029726749891623868971472284185726917257781901843845124842331542182170476381638713502198926326106141029290679731718673138296022412649500348708752602121057981459110567833272883479122759534183266880891461459658837567103570080408711130274524574835415335852533570994377064565514968313450162985711693444558962677228690616629271287258466760952908767426486476133135609068982559332410427827991882212155639442262053982245076835656225943679307549916496236438250740807041137723011668274033287964995588662406046942691794457647026638738548909030273425338488451605118150316396602823202836418943018723566313962201419957752298735781124968114268953854902997227297492148645024830208511497427685230891146466072215802725849112686898314825580301904538168176741404980669701848999977647929822685513687353001004936927107946629179225203529371526496371930932353463702272229956255373875073996118481090270091944624176415337418430470675882306005879994352414846464077197532833542807557614386492289281631964282288058645826733961232717437657388743529152528573242149310742953260818728530474492225010343565840797437613720006240341984102132195509555106378726061286633593164749519877971454685470248825710395575326254376041201897707962757631428614758296782888846208321334759760501367228832628360226765944942981697104580280478312784374105879681663713284638773855947316473211784357008543237552424317251467900631572479166412548676123648361479048038720078490781168831578881022987588782100202341129084198492452339662807686948312449988156160529782220070677302733617254600983611541018392740853651824204731382324918198621792243258414804704620616315607563272920847242593206370083420381049685160763110564649969443656352576482680212847389894439061225836572541758691627404921849282861413522158038015562816775717509233896284065031092109121457201249022983608685604493314381824902887770632137601320876173429763670153485375787274352495307347174343158504246595833603098606535227412628563847432824083819384697819598827270528472996213300401838146486776277455251526731337256416812027824519615636299665553001960814621148450492350721819792630594400790758698922890248681039201392502595731494696535803225909174395946947955457034893753055416206917928734338215578532878959071034819620693145556664921927212089645823421129371155812310631204381657304893328375554223428624863308159097668392059551069491669411293723825564428555441756144772094196615615272120198574902992374453488721811293890949689762309316395117896156955416499636004435215804385497230420417467537992924726141039860271214526872256961808090344539371872521565545691994398378080642354848064933336101370273237695368856341063657542794218235462677904651075674146318221133780359664839727452515672587073704393273795807676526493520029904373905238378773528551696903068100373760250533213028330297058875384216857202016965672614789822234183734624618192233265700565253679877534109308811528642904014820006421178030921962896984492506674603043366538039076073756691393772934151673082077994941258916150146426455985726160509807414685503748315930707338321869576495010746865134377407074200265119436752781234914669019738973672191526024892021677100584865338355695682878375735619400433827218885038847530067401803249489439461095698147881072769474735378414596904528717593148698414172166395446210224954598380858896968954979611420467706039669147256158858272406047208392496206777496079043168125141832079541278713918567080160683300463849854669696515381100515996030451159459540552114469589666906476270229424381865025846784296531796176962702225135856839110166986898635894536880001933897636822784793348805015493402069152308444347585636752749344575000249091260238015048270589963637817954777674913960647009233564873500864140506224074894479346022969493192834866080911966293238517980999927512457587831692178156304835112010380783263584297319805963786124275563870102050756935775056951067566664440494729199909934396285360389908196071457696858603987040354246877579219006828463730329323564217425082503843076058481743625568067147513668635104190661744992845606100432670726656214846354306052177528143867317020052253134755066336859889019209132111021011552242229132257513763512997940807348421588156000616454271640881432476526900790155521430553442147323686748738170186279990398531576332076243317616541066489309299231589392238822319176246648696610995334648975158332716625134782028194598706863523402378919113212172058363046812552343784902235109067983421272552113645892066102401000960047816687899882340913348785943209356801430603733730973479030423243872821476757306818786127604532356220609378743965131265711470826908923065322248185678666572655153028240146914154639023396528999133526153738712284927007750923269455365391203468116382416859420020078801673159203093273929152155910981430876333678363192863216752255488689690592287731893285969402813878015709273906030304847201998431733945843634694657961855700996542796297620192837535356673463124937268255231015747257051208786552862709600560897758613395023626822898245884912349861834702311137865425931750723184416882383626430334528404559889823133073066806663284291247371339679167195610185603419987696406075008484324441862625808962024794661291159709465569763991100319677581921773781132311039358088154524705019396255121183982741390894500558379989251813875748174276726287989992060942646645196521214078709818446740628061279924965456994636300885620332515281064160860275811609299403090423041976627290908097736559811705329018269994087484689571980498096206049897817812549812568917942843799532840477744927201894987799338379771719707169723344713578927604416211865990650213842880811395317016198788216950045318312515071843894111651064296127025506437405892776527406421566247100056406142564190683210487366296243434558239208143284435075192467279791762077570662590505945269502390466063156729335489539382742123759099300827947241542139563951111633650363486279946022275152286095291125669296364234266555572497587944247491341244400160204701524702848943447286456370044634626951230268468252349240231452697527769449625764962766280514254025739408916975284986413863085840842621013803993635042897989984184162329162384886330620430306959977182536490399947709736060780310552013265074700575273744214122298889969139509989054531122367282621988443860210936148550407981421619377673658832163318832771492506614807378945627688189050829384193550922108966819432755909999101921420402794622129897052942943389659139631725224781590876126290786245940791725398569168646243158308217342199563868157715973063539720016631577458010844970785475311012194448393223357073973171246636824330028570711777539966913319889629979177207777826821337765561777472019268824926967868025891507779404207713457085976815259495165010053308220919019369143427887229525110767033958593075843537659167422894701938151881555587931986691276384372782846275376993412130851135199447366603600727879871711032448069822672648154473306272341287479892682673374533266741973263954964392003244331441039323256254550024755804987062615550111206251256025188093545136087186206766216817442116910866622563485470073502044496770102723824505116553328402989167747847272234569636672772332103634451435108132928746757886948759702008727387489098301204685586678914369581038684848209552189030045651036444149729315827982837598895590527577219507113765631733549836337864622453952175887899167456281871191683807660324711794073350083728164913036821588325534132017432402819622401319420848501224708843698310674600027421884814685681189180590213554267286540762955019624721350494916799629253443215193783197920645371213841842881916850153244450572891807074740932588986881353379350253855836004525706000529212401477775894736061744865918265662494926879208294556727578574110277930293046477224654131963130157881827108500579320388747266436830453731844471608928276906015730178283382333589659078370010938659446800835464790619690941022660450620321392597103868271137123801861831601669843450218492038551341287918533838664477971860278394797536409774000803356959123455092868240756859368973869360157111599441024517313564316786341253930728480972055969588718525696796219687558345836094213711762374127365705563194645666322744517133773562722384730299987382139169002973436782698006605565484908015450442135939251065573707966059603639450119828783316830631024025423280949738402775244105631261598546452972265933748480919541250979579915260188139195854505783043798344250817080592457582194062335553928436056779055403272066699839894336514894948844717229824562608765891473553985371231485556155391982747568269859990093000457009115561938833957417501422193465260480277858173205388401021262505897535936389222211909810226119266593022768428846868483765407325686835012094626728459005551782728888812903617014761743802393675576829576094593581240137260587995573727732580847176597931599640380012327132407472701378464746530271545151578521969672310689379009332347958216554387051455349603396746230793327354229482393024534410535883740925940537686778314622759057070902299101042216162073546341788823063740339651971337418997131912757197745007720806415078241550038299635825889727302957045213474352477558192120966066902046499871949465595624083868961171296461243884830795450157198562049191756547547600645669463249127391550893271741171150076666702898988789084272632671878077218091359133104533810972427038636053478596107190247048884811252383710252898018193267720304497721741198136746859725071129388347434298820398193981784329324866425913180577755698972701401980029979899778025817510605921387885902258672098813138660609725710902001900283996705354431347648193319136256787370777182151539307725799012447824884579662503363077726079707433857064398506302476786383125998567019586218648613594648617347103459641791731196936105733633805091492856935349623162069984085580678760069480948179818281350893668280567502306149792161381941348023443713103940345438207001092749269103178848696430756448162851922761003415003958082900802936017777350853514710950118151842633061706656089512806531881125453330716041498184161303870222803187550078056835046259115941524030241655007205181728609759854456065176170767227454168619499033001961740388072926250178210073354886179753610715541938197966162208356970661895884801132210330861371332719311708388109348847577117696534478940317949919004130960544726230771776561240317908571307210634643932783502228202584011659445549762451045673940477276167776712807438872164885037460947670718237757101454484053302609829002723459630226956090579776285033359580376454179915286843372464389587522332663973281845035896766594039094714824826935880393478187607891745602626077647879247844479777063017497731682629635838651435358987362373471206052396413650864829964638833395795915407991781040634465407140391358476478732176161033819635746602816700107890776291868057003045578259752732393682031758686978182750611251422267551598200016269420220261295450892078622039884039138197801031626949057457868105592294711605776955301761696645513004942592325594171429266236734151892266258759395331352433839721659484845106428809265166682854399756841421221157081810102098355432093090139533377661765855047228379177169116432411377834076448199698318294859136233028413687579587310756161538809551084506158389164419762072633264015476286579942838195402542526614280120204173178740702843487284392635176503697862466075661371305501323404204469289681585524482321226262518050635272702522275121391681325485949468258973359619921562083637822387095349360907902555886801781699730942036970924804350500831830909319922066473548813518109968966734389935322406720277646455036309760488270187668019343539192860159383642459232326411352121956650232968382020640671079629077548011219652009443835923371030921418299086854254936081580049585465412031862584742558270298846478430232375723806915495778434960083586983183321198714752293427808336210087223731362937359174386833582388471144178870509363785766528021281967604575423203402297199129615808373667700088016045642439231616860687165619627405839177956105742705040892125009544249553259177504862755949228022274641592479029666525814785391096402353216820574243932910038252100544487825567013197571721291372070721949688838652424003578706312258559728552633832488519356202581339990619335901496192684015093020275520482115113341078278258882465981131316593482031973578970063160641364194526044480964567417064893757728491642277903596165260363247297634292462375481724778162689252152487485365908763654929373494507654853618156471855525539982659378783295377622691238284090086425181685188145200036498242371085414680094417426729898803288561749676489716184656244185784420058962992394926705753027398214872309623786070203146536772820982755847783418133322388512835786371801621373056149443774320630604079756484500444585252698045202318893324182623791221526148415957032260532847481328169707719401371931652112810019824708313449664673731768800376395168298433742787101748536139619850546491860660515945730009389593390400738396488391973409279990490827964337994525481294573310535597697965295185196789098775046974331237867432650084962413395891834915258519933388909741967200376612492205462798296346366213135831132760180154047257040395455245366420364468443656194374302197985498510157543367411373030598166409978662447513385370804219775301829445791820206166482667397641011205400299583023224778248219810275578345535578482361809531884145886006121483598835371070441717123242954867611957637860528958415603490583599757026044679724413496013666266565177751005797612263561312414426630567446576874196923354380686286506524027683993349700789993012743716994496376362363137529747942305521075138357015706189104174347849347225602237651026519696711805444390272542080170467244978206950890183555764855655270610981333239219010167824656844728537813208641911914534206139360762370931056314897098314556522531864643743529708300760856362762754470290631912663171963192766986271255802355166821974699509568616578907264143574306245311862105608974325941914056051682681094426013032294502458754030746793401410344690018092060837041546077959434804249011264787445254699033644492994059334647856993251755087924083946769004117694772742116681044840192105255511632441363006995797735999253350707668801374480143129093303812134219859091339243319225716204305134413322896312134488920440305050548527233581573092851270366129678223988896494657276665639455943613570847570953536113398820343574139776739143847814919475786177462150737388996220470750880714260943787940200044022230689400320961288203276168915044627991795774910577546863560452915382198485867937328110323526224972875380165811991501420118832791281755173612366752545988976520471108865521593580241044683793950345987769607064991700141855468036634417115745473048454717085233471205123312512870243606800191492094224228161122242548904278694864712479108832284455451324270273381530111551358818343583512971595567468003390446175640599912496354858055144136669317263559484125324326083191509650137609221121833849026998020056617726146874781036341504814536055341821828259738685174608894718212766765758110656526526738454694846114439241756506526517867172031341100097395649853071627889041524207622888130772254328466489572626325140275982044564122523797056118428054820609412195652844540814656086215655718338011183191459519836624672185762782831928255815826960394757562136159579934800471118336708299947053728968068171108258736455732784191188736071530651040317622321861300916125341866804603580511729603679957861649712535769818798631263872548974206217132290895891924825643529076942114115499440586360817703150175647948342399323373422146158299172543156671224540785693776239032352423509679073432926378553474082573865509268345489001284622795287644762275416719390600655001770715403835178488245116684868452459549206178614072556380862706604890653100681303332175159717119848133186307231718049541649812669123363281528647493761849594942619970306613855237288670794691299207463146678259153380018335619483909788980537450610935348467437687767939912124488366748013898914550309220623390202692200603463391155266020930798614154994729806908457124714036208891271645677357536488565679879491839248768881932270214246289768387905499034950665497377017081302525530359141130851063435630576581911288231738293467430511343052858091370987300461544453793651897794245386295016688890289848620531436776765109602870937658689610522941519384868634916231808931552751954966328771200423851660675788609831015697969673524801877757401033677840992373078256910853332967895504145631469883999998090276768803355958840850099989428643559069329964316680756946159110494957694013651882438656651906462112582521351904397893950480755059331957837965816849629280746648563511598833010483511536664648630614054408120828245528795363809699451615909139341229207623888960599782688853122433841005548962194006177326102906476863781394952930972230712232799439883888289114013165711779859734422035851365100436389738994960037399840664913953691183939547993179597652176683584863374841549898803850987140039604332959804047074225916143838777271170586610471391090395596952161603377767393219339800653218632917809462917952947857963043978767597751059747971237827013361594503514842710162233191278747894632998002869183029275749658784602581590011092612478526353731179828214710581390641273935703731416425372813178662824309413193087776842199893941836208870742927547074770108566523002586306938176199732526852375664456691183423538118537445689525555301047308263109822444832489234779829216373639843302512931625483666879349825833381738118777450272228390453399915819756849136662894171964008533795056552123631849876631069186176168547483109323986296781520343745679252163122432849428454450119554440228176055608073443130681776801926116518156322121579579255769489164127656667884677476280700315644194740767577022122074535694724315769366232256020582570092840561985113235668246798631091775441949531519506539781335582360392817044103536792149374647315000133200368521760914130728310861027886179287603159813137159284111031991073694255901431961744443260314851962549510426927114508486725607547095453506101947257250589057115502274866328650215456190414387916220079171349929221664035829747297889560764184652553838549026161239044383020123371773991080836595149095184501097940705379947748515367280410086111247456717085298110451972348641239305589681983941551853745677313697941880196323229508353540314706966204723774465240988295460398328696911319061062718162319752901472886434536263534522102988558880102316229598504616108251513730314683600327234264704778690803125851291154735898635500151554371110113100580427780075369896186298488731241034092832116376769377436808587946650919128433370728560193783373576671833458800385871558416583338854258432373332289254871533142755901205771465600482592930672189612188095619206873140520548610883899833494515843284408093865107588991808639638531890732491017237962522136217465953392126149240112381138973815517694989055814915284371659703104835391555594497975921796467526596432388318273714588465279208731241233859678200035157024514802415722078996211641439540399059598196656972131373062365372960418196889287731079910181721479434644581784353699516246818076127342679938830148564748042683348193587801728149558029800202440383200152581866248486602532247640114152507252203139768443279386863113400315900330553273838472786253482602941279309668997344972204634182317115061439035091437959862262459738362425808366771168667933243700588097163248085597684519685969567123595484679673777782571583123789009893350401852014066763661047401186985916071296239025650873636168912625433039781775454621483268829420722222014033597562940293393467158903417807745668085545025052785797811474715014285023219224632520036760948031125573498520265363036234539169948375773775394259688644630415144484675859779956920252028834914245397268089875292456459505273519174643079791479347257464558384368415335128614300694815634605009138672162008629510417265373510055904204998011089406781911019639194963753290007028634525858223934757939925800020166159960296530475911973612013920071536182702269729319762061085605085361184399201740044264534500956097528547491557375741753529474000514432159452472493843648413955520265983486222039062327411025717063677914331880920451620564191689086339334338312329099813701483072169389816183121734199887674731833530255969860478315642088362161583784900618028795362258546093221223578711177286115982573539903639523314333678745061181774126706701186824134179232680571320187336095492882448615032463349006120321020090138101745369600498085836472746481668506320536801255028184047998953356475601232697682830680847109038234051168162747995215937817107627667230905395350361662578671424091155654074368646360539345214301323814242954187494099799345275306887997587852512249291498586221046987962387940208199575298551619319966021805457919025924616449189154982447480573836072299823975228588857880678946755235979378271117970816029822132022321599801522809904719413140997399584838070083232391488143715231506199764072343353654108632371100040178690720626009591604404895375002117296984944627846218854192487000182203182971160718333114920928283235456571694310477995911593627240026972521861886366863693656987121713002410481418426487300721409338313771513464667846690622313903253847472830654305998128374962372155212544766944709831683252755780695798657807378712894538091163714770173973249698795176106973033418220124629320001819563586273223972064272757008232669812999270253104539891254214929790214508274142016758406647656924346437205796001819944153634577326773058384197859005641983894133460383176935089221715040282609367189274537623633371413807743085857346998882860263316521642498912843304506049320016946574534926909577550959916544056599760876828990019687942303728066086220684156609881907625364912560601067795584485623087381384175358581901581429106451009639163674382679678090587036687246095643635257167271437169424589259337768347552567313375187660430357373826116894031183974508132579980062302472964603563026778531211064272641961295016746305933590153452673453573590300122026988230582358959252010034399343382471399214204590325453266236757396899077730098535859646028033438901216344877379374017862617773039173040151932244881584100471878830941004638644243118251112604758842684036973599969413858392685103269238697983086118507296814708054101232713115933595708902298205265357824550501799798670985924323001784001810854199242280193316818227376364177869993083065768108687908594568746956222563162673069918739905281326569659413367878367572266683686896319470754886075779220310294993527675000141881632142545488314375702231234556910023108871623398529427638144989054802847457127675676825811924505626183194249018768212050657990915211289712186205118649076971543311907383383707247935178667131530744455420673797568944387395556897675610205568143823264734201645134462728476723596893944821942776959710993374620323612910023780509612130056300886498974919516535292612108757409733710688598419342606741669115754688122640028074814016131879670391980557575761297931573357747699650071777994950999289560057352881626066344854195089318637947011590432582755563636257570098808928703372719455137115203343015624916196035777334175847021648497785453609294416290697812613538560940135191388879342186776711847750822354302190882633504798760945246913439982872213622761648676399420088761337618553266716837920042559353471710316802672792766626503912013089419434489718072030976809013915092074659616858745311682375252427734817229395926143013278669453524949818201885160406978344447602595436658616449250750983073851268030910199316245681253466445407409720298288329473595371236739404975898917137670769714245254933477472658278173464928870298040614339843936355355024281911222873019778455983717475805276425887906637042015613717168061220078025830227193630750458125315182500754016968718237179727178125577775879653652390564528971050784727240680541818518835251826878333015052282433836226654339440478876055602049064298224999675234736285504334407006123241501757702730326512446325383629877154745668844683194155818801053974815738541901202185297825357481559549100266022581155548003041350151243350913171340670018652387998136332864564688225612815169227089619705131097549911341732442256427725242085402977230583968590613003390159754789159886930087049226602064728275302741126911236385862591945127012970505360355671014800262527735370116402936454004801852292169054303111201133704294733118908342236233073159593167283882428224503320779009910504565606222393093260186937931166409480192776434894465989137454051618266699177929032513243130437311301886118674426523012575713473192699569952051162898455754264541801006036282483146536939825699743901987608997677379015736136711486454508120412814631862663056261771289574242414471425769209870825868684423930654645272404192281400196542328062642740411511607488111047277001136007413771701459777569990806777687624075897698847835162208108699460939230169371935291644001764414183928319863294772736816883356490839016693478828615937612653207153852364228814503478407857893566778014559027559478910617024323589670954776476385311388195241634248459994839129256008634274489136537146255061915369591383368752891433866894099972205378446424115479184975999518187274916881691283704409960748090974528696128464362068646172904203011724861385518814567536005127667435174530305511652465008176909767124906059753674917269130543863176465904708849281204201030447419276413175166015737896313483145900086729379093173931982767244608370982290057408370069410392098989416434180708580211948361008088650785648647798305539723270341980389687809148179115160986715028376750430221311244346502356144584778569675660549897988747148057402294123743846042847297539663058747107146495181503156804044183917625270320512177728473534323161861308946497994261139406974442447547641317829715199207110630411617762031326619108876919503031735908751419282560904950463594973929360989989888331743798793425375919126955423541972147353589409520529849733453885388287435505786623903435118034104492827200829694984152056190323832169563444372440548351387821389295219451843376024469336655761399637041603369311294531731124680904522740999160868980255876516385143059682281299953351146820123475142861969144773477606735416127807388159400268661462944277854797857686992119290697206762815289778953206658603450212012959542411677959118753943620420193823062220794456019542863420259030518119721497282850610562235862882395081343000385947391250745473836659603476734524092535552037241724273171250092170393508115762258462306778379025485233262271285823318412940198824065834895960300105037242391997851757604268603693491159270895223936309041233466060952258023509671036468170227547535758338309513610823929531566963764389634868380214522066945025164856225595092515598915414088299535370306423101152165142457370984300821764834811710857433352218531304110118178426439341534352415827071706830852231358076872678461114959028663464218823284674865434852341025670959279227381919641041422977660721632982919974405438551770034047001698118191723598894835820824790517603435662234845816878823793470771052066983840761406291837140363926980333218324208956957101131735086050876927402011115602254956512031823607347942821918947450591912573974136852571271972855089738312365175105101773372754639144351694263047943797288818200449200731874262381356121948777224273435163899339413979071250893843230061050248560521167288867102540235951776333597551398768289817475400550138726626550561889682562501971251333295584979028138107620910749845227344909809209224418418534884138934178343141455434590583621389766172218024340960159681833031642816537715708751287240503122927323183976833456296540332894792684291454928911402516363819388118921629845817007298949164109528620896662399542317348194019036561181351938152948148365968454943229393466836361855310951710869982461818373101463055731641187305489580699207213633630413704817205047126491852522803065059928212485777000693958687009365726581069520452810861887300416947590489862387642296672045472964879513802882481474711386148815078106221699832942833214171839899240451950765969535863290759239853325671688317869797412875782317603009809330009174673214157158460712355234931894234288239600168556759731629774791906480411350379343017095612113594118980579766058161202498434014938789175810472885233980390741459186490668246401862405578340673489115544047023915069815687758069051186711823968542674394034940328838871446859573399286238336089855118474620110442791767534107793101892547682327762171828708078518656909798321066454709556360835172223518517455452636166420239790481889197474168793121441785041377376903592142881407451206517854869325714985713675923314752857475893150460957905136637934288033071451966177982830519370663956388523056767435572522638633515788976776065813732517710094037885009556042035452208169888442149423874483138717420883960148904133382834055096980678992008650320797231508852315661216715234393457383396074009068966125748535652729350363716373142313609885635625756247438402628757137536031307002657238801592903427141110502150235789025563092933642457950955287337586451953818094772643225351253031407781508916015650520225014019513955308468147536967474634123773423130873214998868651734654829448737387986253254334339340221748168516214643339427508794645821806449381356632672451217806217529078619602780517950432311667927127786892041294875314931155160646667310912885635419498057684674474950122327544574742215437223804645389576178895986181576854693737042254681709432381785918389473437233727095436533363821160366131601549719271922203415818705298213405528656655533141114688061182819889162757007121247107258794405196747221737603379129176126162921150440325878080736546873180894041460348754270807379740729055640970406215751839050897160693941481175038518757755843518812153508969798420912207668562720607304027919446160925638892732813198278596076270295225419546779809576067010101199704873406611371545811773282653314468198190789093403260808558455593006050680307217193355537895466755088424583993014532103045111537629494074660859642101923058604278222154848369953002511144157693760352349853760250335699408205839142573864491584316046161267288783618480360433824229288361990847251631816368973763383446394552481343206761554263359123618243724278362121979395171448397000744119091647444339308764348957165691959740414194332094739164445780493836356429035595875645050668578664079891200451896637332474151871977407295017347405105863307137024561187380659750244137535146358132384059365668698135929901114914032435466410853776687042553035359067501217289227566414003361314638922033174324622180701939589436826805572488154586763522576326752872269396533921224398312700760930582802338814646409567404975955448122971685943457983137833751803188392451921916305274426836402156149809724086386260215223074299600113349116282877522908553360271539451560086960283606891240962165449264671193555540535352726179145085870825895914642615071092144032292566846365386227952795899621734237504060112729906243873655203824791486919203915077867697956821241694664936983563120614146296599409555041442945495891496346133037648625982419036916704074421251156918629077065712199097878172890105881768571987423473840712879826094031469612926083759202966695910303305381686952015359631257395964744037707023582205494711716205845016481147424659011108008436863593202415573537863189148450790534113025831155232325813061235822530238401131409997203619260134445138971373834515527725442527764189081149190857084776221186815070309357974808321433143652218343252540098309005608914610862423237037665736566031439519696638422955433399536152414904230100918235212743216810829379487929951315855007098645571050362749350431119360542994440702489972895778372205527967051473516647646102138029503450952734265571528962888474976093711275368395292106760247422524149908863135981989478079481257526691248336664175530773158426182410073690387213813476077636392901908291596170668589857307927709128119771474758134139615084340986811694346983670782443363989308586947159833876377141607593027459381881115158323936836812751523614165911570464750718215294370878428751419854577642333052473951750444464218657621237513040056945736016757124991810037581485783257067205188979342438090250653545927340534320722025498528568466807990256587402804131111395587965617842071885517450860802341502793152765583151141970949572839373674753980674759647987619621455552357059704672680464588187672223790855912547989160205349217801805583178608875224782651279189092401887426098254604659742858697225310144872756493709635172169822322526593013620641861252584541163044071622072412805489941388834980339049683148183256354136830762074966303547098813861747941636609854419005898531608444603434290381928415915362158465531295979655855623436494648752051008610558987240709334559053827105836941254591060851071912482164893569902158815726472620250078975609228380081842085625335089238147978608690274955198716340841601691454911789685408726457241196301534403084170070148817768240442996884475072121949897261356574266954132288813559916753357894516892498910084982446755896905588008953577232232321830326631225066324196043849243487342979478314002888323017991078550335869523608587563082925342344044879211097858399861521635716714238276825190212434581407054743733370984163171972758658585750655221940992039958909658110042387099233183971525035715410608449462490289479304796978881939438360998188159031894016849525536068666362499996163420197703019466548535625570275981567315339988177611812414076808839034501056537284832050146796632581672642265013958038941492510776956988164335432045722900724113235097292940919309465470980095723336041311505255090608503485894407873954569096741906529081797047475754557460332763285128305402398395581710595679565953058615566731310092508432011888283123607298090882804497539180640147488075585560867290051977196527990637100140167869397216750144547823133963560587420193241444979540507677954426844489249904982182033180902118393043762060967729783237144310757267960665920055175381958940690798518596800918865980112579473974064382132044126698999903613786422543593212274893394693460773488189854379987841325868823495933175511744653599191245231280755005139153391573614947356154827459110088547269715325725883207679341493249118822886109291532904191943209288621915941322102949172647634493416032629681277009546248261996364084282742329897861130632192694416782875559084444841267905077300059550724102697084289540052315518218719455330162839676668151532520814378613544961318948831703125107644825024956048317626668776410259751434508602710312690246843724320567256096363272903725875288006647527257056334377679561707762243585636408279785367160059619106084712038981393904252887423790188780084432565499217809346182636671859627837997706065062597902854886108337046332434578585089812255898140098056971810943086565482740684705425119976442859458590350031604100526292872400021740633046385407793039867072990517574832819169439809675428463693686635050082461583486070466012149775369453435169962781435302073135832008129019411818866511573660078400760825227214469199601448446058259262488214896192717701820079111088484872726188586602416139567257756717116349400117872557883533384485243484865518421345341247096461517287389137611252223258583092505223407090915312191484305935746107835003633917663798737362556596699338810310695681708951765779846874620119783295981055627229188557494348514649345393779548749054903131005760818663310979192823557930296879732434603592605489628195393914547840556369113612815425686263671458469944628498241752045723464840374561944015889085261299420713605888616036933377254875585979127950077352544247528237849792743800201957222941383269458201624887101489744916795328465417450769550911436544558663528438854231953035913127271021282400567191688250957741983464285306731263274040359421016191631196232595685386337281764276463403649197968231298255731146351741403331360962666262137801187831790537778484322837473616787509953462574917862208788061986520916578477325594234517998444792541760724181344751955419557196418767695958289898471349544714369401535445999247329430848199854188632800504336616950346336728419419147619913412870156637348675090268285167677169337380642121766348768579750167740034886267645597765449327041240823513720225288630573710029318091648214828809988037339086927131056836360568631442086562125723145406689515218271705223698254328288991750678457836183902174756677681923919667621574380136049275505715322569850906590151669049836222730146760868241655169575153324365732040307293804222405639957177196726030206881395095197742001883282157483337402417704002597665853567995886911325950780114760954753724353453529692347705289235244053146881701723645738140609743995153773001619830299317363656737180583499552114624629836360828405786497106264749681455410877335513492540647583008312900006608525272426463290499132053347904776229389204318690096915695447942477889496710380703744641670475875279451369487520440368883194035728217179670629559638999003125037441779867869966348747977540883608947949538728260571797615199885100012635030459916583772573664548781894281336441436683999889098275366585968103141796594154381728886079329904863265496384013892685821539317029333983911346889301773569636909146632819144872425414211252402814418284883036665685368082610258156583921753534900745994119786575113976076708754009604029116028446732972852306585839028421297312070785860310234098944411326061564372917856665372590170070307294093839537432600404717460575714683165599846430335415056925087679380505749675402979065451030292605115401440916914423390448920427166759574467975214019652886047917618108452910801587867893455567648624968140589507960877778925467474143696959986787147796388182913171467212888411792535064120857795580970321097941006907684345243653288704555473043995739731307449898252759355553903529534214451412047784791851957806053373216874084381573722553816145066448575872328107310334274147002534152599974405912011394424931070115429359986337622656362333458053768489357823635566575952763859676504287299653613514561437647059855601312548051764019055726053115008814256041918046498601524889169412597775204283903447281824315769779953461478264679491770057864790392852742112665621052140297534425029711674157700683070910571338893027277005418093875265957253081197141546317534893152368613666045856983391490316847424078700424860970368376212762418663149016784710440305491441804192769341161025252831766644109615223108583655041003331632423306955833793573796393603360708134632824597081765439062786094857799268729976292752275873090820818745306890568119125291877702129323379131201007462676131628794321922576666166917135905695697494345535506938848721404571642609671554613227205239453531799475265223049434584493314847614994247739878325168429176029935600787680346554932141985675408958700898270007637545426411386559523528822091466211647144487678656435197924701982919598459701059240059648721619693169901018302892039026052249671199552775176390952788726876582488300841364689248013004252627635699671692231657945269146530412385046652609163549045649816170949986434576873694217583749641419298862159558311220647367097074634361717272833255436721614715445371168099004352582217368479245645203804614060056212082383249848655079277759431587586985520371666922938482092791703828868851892516461897809265525442864554867829132413279175658007696093836220698822354599947095111587544428181520543325134695251808249935037448213872300438341610615446801800997718457968512814069087412335703214155371790791041329443215160726708818985086666303854576111324879752674029928816923775731692259956016300583098715522942868010995704849290956324224400914725560394874541162601339078443917580500064667285594540020767496177439551542214699078863138455222617171174964239334794534862242439154810632197049367614037551409340874479468290702137760314376672981322514641400905765058898695574699792248181033026555887468602902452270330611838590686377704924325723968161967400767335500938379488199130275923869054410795840102858241842441931926103705578553004289345212152614640304301126292177419847687109251506323179900509708431381649998148103769698770029671496395008802628651931440015645531177300543022878017612579811989780137182257371651675883810821823464734714944962502375959470284869142788168138749075614373827616090973937574936533684416281910578999545100060394665059915711900135556041994605051247428797867123370877224088075344872523889540496562264200600601200484922815981566504139256365302594446710705562350181048614057087380201201873564471800099125467089884455384972019023141833682137448447023437648078120372733032103966696392976449637972816631209880477796520237138014662350425036032242655446727912210740908791101420577877653651211650504635036460151242575237985748901517324995720370286690788627047063922281585026108308475077767197779858859766242569166036568841069074441353722929627662773509040250707153430765995247232135158231003265120214358653866988138670427530683553519428121701345371570370549374234586545012206292718324669776957745183535620732395263314149726796808789967460826514809718420346857456834545377317414187365073615860310586462669905017942147250934896593899363550161879884356625594209351363802344712432022636936523205176539017468599553582031622863097806073143192439579320505685430073923150121205092443326250062590104092591867591771443532775611571258309552923621325911535768669734128072900301548511674767935959695851588497984189488444766876861269830605659548801156836275717941718618726126567157526961161092375331779299760119704065314167426535602824855217796237964873836853825509282781062731717211972791264224087400121542731933601961841549680063830752124167014996474823646343512128993499047628943196561524456082386282103046194649441615896361068657850952226539176820446140141737860431615523196845515483423999056928186154342069720296577884216098891975227659849761064723936741283144036552176838499817280920022042323947727807144719281494654067289391081327966095614369704837892310100577901045708556907399728290266426296509301869859471725019621404594010893720199080756774973992718333943887463171390615219042820833213268797546219922460207470430165867707075974634486829037918354015830196235913984730473162107528381907947296549160938125864749066587805122997403280487310324846908007189720664173503533010538465322354179512221570285711436136708683346915831145940276065058677662802530446071460498489630793754782998683049411027473992972740848372202770047811476560443230865435583086087662033503182666508178376906496189733019352676602957606199317309715002206575358311525737279367250478308627117663090192296040425947236577007700860571241027722150747775978449694425564333414747227979367053128493050206425447614225459215701881593705443747633863418556148611774887848312347393569376868702192650038072729001027975489449003705722937516378400532120827917805855060261981723528842262018613619159342977781801594761272542253033690465002770238625579897600503586538595540131406697494836622726908138188613122360039902936622186010861224479219852658216668269073400429830790137338798435653975057320689090080329750861353056971580529104960246396459005189300302504265390983750567194090908773939920154814729309863985986220584408138500157264049555683317116241125313484792168870768215508335154528056030157852276354639557272925967672737009208883165010940401442167514553500971543392908816265605945992293651547881580674051253270030858873837297044536255173293568646438905471111426116107382911232995316748512308640904369191400799584218754185318571236396391479833817654308309538119402446408721214572129473383403122988419008687712347946175179513730558689442186201427160752634308490729760848905230970310604669260864039235607159475401935327045044510906304521891092834772671114507782448490748064594217246869278421430169705893268869593776701505343779310995614322945860091257529327960420644466593181436627102341114678894516765260314358091078239044663616892774466934123365223689840644105558605434641907028686869941612843575905793151730767842192522106720825246578453738499897596210744149534533493346708229675787253094808563266601718117094288349218291687339326539533032621104043353171576894800786848443161419054643441237824547114455805242288560781036523001040346942941055480359095185869234715867716637309698147003573771345436243402595542091473973487863219020883071552263488155138731851539588738118030507517731341273698891191396358684507692135323777416914322941727022068337227323601250161709022905577991101635331200956131435837651329140623859505241633819666327578415502968781811354533114434695128550673822591435147446673605851116065469230653666997898921162314068865370354472366208909634817683613490412126133151714605316812365733217086502339410094559385786769969698300841156726312082059136450414729231887196993879578606829219708055066031771098331283908315379509785001942143506711977192404185399111382890394232952535180374765547868792076923596746497074120549652903624842851219609572138948112970935304793404383922349062411654133463884327825484780862412657109479359930899057507379052995235679062498439612159986172819628516994247923215641829374509874684726236801992068344712007182229049617883124472917177252117448055236146523966639612238524669735770908951754067501981506280883014398438916055666377246672448024437793829658004104204932039785274103294547431348562232686748682760300875614138322600360864729600861707111656824208564055508792868063039743125669972617347799373808775095222497214296705743129072246951031970169692245637372842481899638356180306883683039287912074391790487847998432190514285941004328523036320233666271332058298500085305727551069497228400349912561682682210966478564642650115552887765664269411406919671045541632661154957502553120502813004275487470702335514463471883384005699154782260037905509771470807128994677276107602913660658807249204998824494514783077795514138703104866228047480694585290862975184218162438519592352201033221027295276540117491239212661938013566610353039337063441967089757793562876504511499297692562305621790173181836623418299131049271678510711876592990389912693375328577552280151589824612780342916467112180584055048741757550194594774675851943413067576886267108540661346292075288184816250820780951049374526699359962690426336292335293362180156737569476736619418576673200501868735407003493797939926897669648833395634047155359159622776285341272691386472478667701900652329006573832881241343300695267709511377343205791894393114915695582434474622693811733804750624489044128461283518438918407073673487768853009750964732688628983775446083570554815172848780130836713205249378099235948399946509167727901836609280718823117110701582074880381797643592108140161827516353990828049323459023049289808936025674350404282158538713700221263033239166365628106017415936690312476764703082035091806604633771572018273995210508882008613237984323142787733030995678382844356951306133246406995438158584308829280466499697450005243799608782661751006258889118301480435784377865499099014986601860778078595686943961912485718953428059370482307893986035203271609417028877585024445567762561590308194080108838317536174465757269542735109902606907634940624759152398257478390588303286322277207735727838349298288120404485691615910389357518195474100187835260434135726376684497529273353148377546804349030174474959009775552456589695485731682266612213064010064634283262676542132842083047003270968520254479082397092060555383211782746593856584686074434955822921297122223765691608713409043265295914929038351557013281704165045911238696381240336689929763858419351782372262482430687672487215938170076388391957979736370127405162290728207650325850675703196770807617601308051562563132819534512738951368607198217982735182068910259277244199290619378889885681093900602786161584342702140864303367020694902256154093532850161300509031115271162855988872855212301232791817337168999759174802035718000147342708855305133340490758495522189540261408764200580040201612760177598274307210772872924117754688404121066252722544513231692090986271007836952083176826534285148020179956605450530012847241463379434341186083295170712494455838932476456317409863898117954556139612636372211258189087864845898212612311515768265581455123367745459236565933993383058971791443262276560721993020139377846942305820177344650282981860556261968940227766483818228955478992856220242883034595617826754673962296308789539063843794780980002593143593266713783363798149230064965783438924286574994544253450283452016464364115650179592205167639137390829715901467717492646176629154181368664541813455903920406301251109555879323515221380027512191653815067285903450532050580518824274374412685777937911196550850979999915851647826365139623082477236523614258623193950752553310816995768169779808955138300730131857140443628533196131756612653714085965565688587546195896676110911124668159015817634739182243547692700139076284120095943592529664703484133049737901213640541884401225180447233639378600280626269242569359917706949232551434119847249965780006304733544227248499161364697567731163792001221027399075137630430613476738854204523716886666980496081721895758793169216114192441888806218797120653323066437854467743759392096583487646485648859938659074609023675713187617338236896097255793005135074988278726433136670915832083882361481410548223003800073790148949716779483398782107882549794497410163375443098914568598635518477816574567821271756309776901605804068780669723247785997313002822143611845628212760410790585642229827165594634415700128429981429470379807462924128886710610918392700831314871261869244145365066977388730740236842069728936778291530635123677267177945706372132390237927222322138248246572765642300390444247736869375200209518963248072869756728463808726021894168549319168368003735255011238175844533084272082328124628448863209445826633537256655394002020190807869516945568258070121011875321915739093224916799535942738868870263238416057324862180083040095624498747984515920240470397007973835489554758348096732923656610064540488061051440196389224387695784815268488258438573625585224624753657727476013304267581518573198686132413263587255779957439830250608142730403125965852441571367647346060657665901612700819530893189999715956945869681422530211840678635457234630169684730357499311118530563494379860278199736599685227099305879460357730644595980225615910368983510020989703543241319257614560463137757655127682739335293978486876416085263959938895192212643842218432983759979159345380302299293742218347789382406586603476213002083538257287766773069538517221617717055736607483827896893542748362769368256453227798238323925755341514651090925910051818574361597179389849492557244607963515436306301182617883211935954129746059633064298158658940381077087640781090910858402136775671653641531216329988301982257967169576217310406022515716896575630905446378933208432253394603618754513759496891862697033970376192997339176257580748556549401242646201787451859215863263746429880139340858702436630940803299138611656315979693781805109863704097315878884560270523631069106685695801010295251356693137748160698578391056169789903184483482480330420752916487507392099022475199160198906744237749048567626785610719229807844074343635280086641803326050504734108822101767809184228859456485234190629555070556164320651888600083606968292836147408965228337553830578413462080118804013859861447257505731530858816557195413325722139550763855828023269594949611862614930548243683318978868926469622719717949213837779504781695560855794802222288901789823664124428528585579746319414204492125457796121768972763538941937116453340933014645688692785943456679161492378425559658803673825076716343090573620790613522033810585721539291928299789925066735128394481553046743670711779001879521124667457861155412203922594800786026699618908268787440663913985815486316029324873327490970383516461524900641839264378924355360912794095662722264476009817606867824745045894083428899073261666932239870973092519732308399487814577724085678029876008360513889159263484878202456073806765310444733167898458552608539854905873512087678542383619907395804680746614603462493569033719982192859285080438897166489993396581014137084124903527088255549347537215962331102285367959714286487199191294917610749397779523264227724166539968392441511662143789567835893591462670408752096356145544008313962579849223283442062494509425767638091714521696756583952219823078562922381392891413567734213946547773243132077949538149965645390386075715514641125262869892388589958742341735531611188427309951379033163225519194949788642565998302652303884476093446378048365478069756324903665664369526300958507325429013080130486320335723062336399981892446207185673999198785226860235258676177949815808585765652647784563499116855644661848530227314195855676769514667169841642977172614922748835075811286965490045240589225271656516974439365282699974280039500885541531135115147567293850888905339927962172619864152446205139603416403200947562880268391356375437523793999546808948011546257395641255195350635134448774151826353682542826568905541583350696843319611842022865237295577048934853696010039889017959268320660208458434078210337715367479915063554626249169317820960800361589422326356567901351800298563114649695454394720554390537407195204174215945984395732625734515221183389779467926699424741499307419843133589345786357230869493887069149791192024351436433203668984757989331295353472997418584855287700123889877630289837646577282693119854068321343459423057188259485480070039555499521259795430612889171152076941628631488776440896482594798718991700763486164881543662600632606672816743458357594704321709218229355064109777948999048216550037025963864600719827809359620623104568659531803511912068968389565181161841461413334397368551415485922972371082983148077983826111911471149444025003640187404034567685946017040234839268746785253236791354814657151173050751814176865622833647106898567895003480695620185100421464429188944047062857358778976368645411411725484518501981463055386517746953793317448872344489470614771845291660722613893612181517926157960007270544684870019910253526257648003952874212239092561941692616679396088804588979859031212287306543473877163833487371691495863498120219292831583082465361304310333625024641604487450398316490073121779321421748724676284289075514577610880292328773959895258014146709324043456903628731460754749784410365607756968449008302890593782287074649957000498910718695656925571595683865184499692314274138187804680772231623694436629477491223763388927253262607678681976860157001187877375828616846763503677345485758812938517309118964366943939394972110051714549728893084574287918629549046758571913280354288062552034268063896143559657524825176084293738014356942948734521401372544582384327192018238386439871059233966230721295697798719031628861708347587907791130444985141925075767906314317389849428413711977283392668620679219725344927480591789379677291912786075901202366382112812557856438324614160361826025239124457427674037402581137272289014050728957758573479904808106955500694718887918403176746999028083757546521007133306937373271310194166034336695132642636057236063408438260583775660456661430826461977881361121499427024239293316575264038400273612171794136176619482814272360306942235340546497206857190400673677609157117282905354873028239078548980517441577238427328628246777367411887674831242096254429382024924793033608165360240536769277077199827096741592627078472801620219173116949027600036981229225894997108856968628567199499312520694370362068127660704164357139435599260260903147360431947219297017051810949745062565581374181355663919777980367630475496725655474910153174605301943766803135134924311753210569664025619390323163236500867485920027916850548737057546753158663940115087222964165866247745183769196693243014995426523589299551188076411201335889558138387029577621667701957604200989684946676223464751777245327970817030313778799141124643088601649682033253963662778634763557184259982996854128081978215440555210837514389068183808804702687046161599663861267470355918064563582817377330965059011624546256520039324332206356950018929563528458544769902727502736371700690717496312901111449599963881880376882530276455364745693447878494328682220683872725359563469870787522386925711721908911745233562089385650904122806371751543662248941385041305497468026575514367424502628616813411134852451102393152745613863129754262508850086835244360234081780452196113549769849852586252484751382767438388508107477969722424869844035066696829916323071409798057183249115222552157933313518952369937757082649293605805847505252705855387940693916759933558881916556273889423549429037923804155171812030487627043945086662467771462389406331260130557941421050472503230735103499936653864128161342636101808917320203470744033115947703834917916568011116802759228512308623599275572804857171157983696287603079875947721118929149069399398968163911189758756454111350467597928444307770827612998517651036122330061993033910028080769534706858267077099529620991695914884600883327845632711510253689452396464508842889189815117949290277706676606695953753022602097580928346968638828294011185686399586425728546148570710925095405872143867309569502681253870895528070577836882865110225799191448058126041504279737116167063241636605357269744808565604042359143448314068706810035531596060937530961430267179394282648799814241549400905860763100920300690026690496811615907566309197586780344007666703593781626849199818005992257468460624688964581516598064030284591992682352874043022955315051666474306273637831206361149154285778852851091511575599899901137566307265308215865962699552547847504695100038025509679844043772765522252121097374643883166962883054409469220417879714407784712771500978524614904389491187475192729503464328474456827853445838985913808327299977957111357635247531809401058012366397696090759604977054776772172640963714657485350801975151227633261875672348076355048540011181886445321902713071015515508689574268689385550375159742518855711173340010727695172676887667801005402416279354722710739071704722725494634637562731416393193496682080704391924289898083215511656855996067996468741716524510882619593875310716326023377540167717788874657340731755184267225994700645247569372571950771747327480191544243999064315221683151942706729254113443533324455154124195957847343684881447380300827688384875802775475827948539787876121600976378052670410683516834606263642917951564497662583698759684223543457895341406255481322828288804813638402138986328349898039706806229982711661255311173462884738033684800396969408705349493424222156312405510660138686859538349146628228245353301349356527073050394540620719934343094726769944623151294090648562407783474489443666526379440131973495964317506516038537784762363580646915718595048680535818952442446322269273135742419448532880767789726304529845074377559413582996916844325491150210003298555687204441982596820362473231940852490891152357745764614981811888867439567430405827939312874426515817708554041015104301273413044499243187556801028566183458243692541229417442922964244446744393366409366137241847059109331426369676752262622203934650606696011173160594290258008862467443069157761894826302365519106233772925218793272779754460435814769674953362101380317140215343641438302118290512624940875894055739877069716554903337891599933758472884614491713493623502780188122032052096684437753696156121391416710126598994908605486593565655653758925343309575871085887417633937736613435284469925435391755374159312254288444517304860302884131534366526148950277677328821672591015166375656441050742378777372855505203860422763808977840607007719720161775162323579535724536465437841555776690906886142315547957255636686035086171680566448576634426147230072396868195728398695426054576661315619948867968297045190386233116611884363970765134262410369349092883040720458774782425568744277450066107306894250013870308396317281939893394369298308515235892217604437934064072194123070415304159387512834726559202145225368882436651283172210994819731438473248190174693152900221773578742779297429549197548892751829865865398917829089373538469334373521967053532067915185249105239938669339030954587207153424743584758937627266384230147722545650549110504092882338123426061455269476735976000732371139988028410944396550820329017229721294019051555838091961864239024492587306965463196548582724135932207468009973917749001038535628414273159545842741606945592158032289528533381684843226037621558467855181134193309991917901701430230502415620242015177493710070873099016709887859093778353340746099000909534873812006316360577319978864796802177934378809840987807211265001385182346305637299047011215347989159113322746791859842436202609122542843936873942057510800563213514754101801500560931567824143897659067299747131213816808504281194973295311781044813103180477139583108045118565807902880584856697542739413227643054849107623370146171545036552681639445216980786572816474145680982053432411040900356056952002737884290506431630392693078726551053708251628018153168936588033641039089369835271105179039897686300622230331347007690982332695917101803726941269205530325816829586878755755172123421328317246904690889694100589846172801041925924229697669206205941497056753317788748166333557965046930384457020769289290512129447021934951197330613158191460283530466733350193197696989476639729736526918743768496934343569399206007081948916973608839805529181270107078808582831963961013813851892817603932107993640962700961879909080738265823566634803570547104139681554682332342256649053738298924074133194764152613069193673810596488684873680534523420297410451786679621065795430649335654041838081905499582705290439768048876184216620202636593015267052280956782907824526218538832498967267311846252737027491204824042469728498338320889779859759866033028392519042231057409487216991030225657070328231301332808243470273053647952614192389079319479181033018872593066248788483288408786715931826310366925590953621350475124638923620669899746427480274517568221617230524182969081785482012393432019371690852186476238065230402449621459543315756844821536266921057669561133557461569976601649219381234438231165084464487463003995787286183247639627686517445456184594122550083977108002885175826058770823213655958947016939384384866450493951600758710400366196994644605986826081744405290555301994626429072226196126987725054157660907510552767049471665415753294062365382760455862156510862518328704551207303971457749652417264983215595868222805457168524809192065012028794087470716906687817299573623340390656438025142910857253387323605985718023362308313405495250114877302216002380892786076316583245093962598163049342663135369520299689969626011967836758540360363852589926131824263675712451238303401772255568184828448870718564366614588100189300690193183080325722448753171980299509668051539373575259022467476036382291411795450642335422782922894087765882735691008378749139858038738437538120472655060167048164981570848614491251761308268674925524070893783735689274549285706985344420284702049814401390182227771233274286050816632071975403587326115530460612078380612572737724286404161154194424519174888495211622427122988269684822984943030529453603592797851630556501076918729956134115981920720583436469705642703868914631528620958371215770290250518951618692805071137512173434690442744668811440498022929506759612459402877375835988523379682119501090975402339654557758326696661077616483730650837338650389754196721548246416293351764658451388458201405782750014228398031414708430764653935674256964829792522036180814168018362745291113398697792989486409271846114590908849760852011745995537451938478629482982772207508072256274423568114985180086976456648749353976136419695521748789869308593148473459139835211794705660156983403845048768148632648566319422986455069347580260635912630362758489637477372001365669774999646424579225117960861405173617088286655637006122259282161704728885127291660204830896283439670601646685045635388785106406674250650795662626926422001587796857046221554062749491327581957929196678332585968716825984104033388450783282024447188510095114794306788528800050650866442050015759613377176372344740711314204753544347511128400270239293622533679673269842230949676976341923937339949919633591472574121148363478398469975821231889021420689153462287822431567614247866191043095755125076131419773786136620528733636775593613082027381920063234095974013616795521643040059948773868647015036597173456066023229333020694829779094750715387238606247283038667515613412615303258926303603444746656167754043439771259259263359429834140672994228238694489822730260381343458429640917551445169728337140890013713095067925193905600094510278711817110890977159556064007712736095838399264634082738174932813838421475742758392843269396727425719787093397514802241764762596820834806351575552818747778592645041836456306253227112100625457435043131683881181411868375451364264826958211977436629533368245442654334209455568428987323384842389802703110422229031993830873421468747939347683783739124583213678661408335252227742899907000299269126641985802357409766339947415732545811946342133479296642386989768717015011431784471299887336101813333140602686433368117696476883071498424289985537625798095500297654841049872343014532917881611372062193786919159840554434993334711069866042975411472348368401414452273983374893499259081388562101337008193278874438290671567655559029861414602045307864111410824363255001132224836405445645208387260374825018010793506862054842140016636873384859250739643638721482912821287318475460617370986152774742460467637127853316577171727976516878540554787004920172556134564905238471456708063427140849093414914510216102026791764098147429513319401514614743552707508974259699271117886443371802093597603882636751411523738467584784243326370081619328378228031643172278255209506951970671745331722535214484382911035178959470571274523477267511606826294367578664519178527641086564630545703354830254410419109141529877553338676121848441494990184274284615591407144993081054700267580637411176525618780818454685972964552520035498334557203393129747324790968010783644122179512060592955343930471483816521607865385091581862010583121417038940004860127115686963167929276088049056211480497930524762717910538030705765267874326003990742548946592923330803632025969745965432625181041770713720889901094235813296091422610039694805180008216878111700437560238265548295269886560000732253739865861265994459513891230533345817016428544435799456737557206690204788318408973849190310574703410355686176091887031524674227320420924212908579602824798907996174595714598393907670086067322360181826939652587640482971273267877398639293992412252978323681840809348085728502597755119299480631111309289993741637578505750849673035308690896549117995011695320503193003320802597478277210694436917210383363032174573993052745535746151695398632867634798969483295475423057196848295501181053643310409108863594856272045248779018471491910626745998599319637245062299243820014352136749598452281117244975977561461714536954484227266780554828541212199832294394459754413704549207536717547120992375701878882302881021174338355898249887476944417998349469404226191453590387090378912272905977377464214387738985203227614148366794598932397338540887515260919818688498359004453892341926910113573589404265893001838169084942711800652135697386170556226159291960792545854885743727463343758520310711225597520835168450334571159599367381574233227317030378136648705582343817574860746456133360451707358760733103988330143741370472363475584104679823086252660121948798462035194019360814186638140286659200759668708984945243683735727587963241187883263626793821208706568937264230256487023776041425238691745692549143238633810647373873220280610098575354604384460026112510917091358489240292311120090207052408308766865737332239177892531506664721288029550103607673372741707866897977201291999711870339732673689024509216785818093623632305166847787824814905349377870421249732968576705654034923446099070098780201933791980039805654402047391918692817456073418866860876664454518987572865193647778263570798167618963149734626686099525176489874054316041159986524889957396354986045742233720991343841706720804556206527308704747826074726146982538143485324561639101284103499013320146029443164299016333528181797346000796498262578710484233064737860061590052471756456471608248599359237179347130150392642902087544722285941976479921804856132931575956256583122793915892206143320118894626816692804732567333403454691430823081762998268089345222179866620982984874814046848285307812676263627805995895858444050688562263765827015503198726008675093834818103423297379239616021924157578052264633458808502924213408417708706607833846712060913046316516112142177661250840523970322980794035449227863246013746656060691513815541936113073144549946707093211938348608661098475092138797619391604656458745585987547683308654466874249379470031942873249368856954012054386567616135493903897974722225401768546774145593968976103447730742981229017384871779445202046492414155934250296448934541786852043109427751944149661710364954793378806733328375206194029649477346919644273899041667049125805656709522103742485594256880529499324967956056378166535383834595291802428517004239816254758974165188626908663485783724493111431323379772154129281385670497283212571151607756288568644559572337493494874465737438274545643884705515803679185439635611960289356256992871273402672886045662798292291478498452041581453073888840170305337026688163804507755487122197697226829688064035480639869242427273592004270265069137167435567484993066489482037844043381334129049619223772930426321020687570190940762404968522429809413845474442594048887716175812711317854154844101203000475317557255381731722720045199669050842821782741441848165855688431414128182746135283224049025609131133326639560247588047502986815480669802968357437881716832783802402129484786420437340056808237523842162280679741713276615443190696929548377891139292149397847402472521879288791637225783255934208724517048598404930279589631360755897055800402342422658022134441887199192073496499171766869438275078674982146658277469814417976967214035472612495249955307754614377715473806975795097684483245444529165909823145423763731814078079554413539667885942074647930055478736344054463858138469379131981899022035695881806041394494124164385795825527488485252397896615239910650424884993448784508977424539621026169080492694292456555641027988721084205014272564986300782021709787604104144470892595733379714294127342594248943572858764432498537340062235919536992092541695789507809103284784313970849701468207097458513874305008189973917959877961349478051509633079735211064809257391440116833999050659390662519606912097640393064428331944144993539000787173438453992568927247701038971635675907612704743641587677847010018512878474688255751073082292565755322747137399610300220374576982053764685680158509691648020942790373664907885272888918045209338201417081855884488111565374437523493885363572758791450178711534686607012505980386554751476963034707516542513446205220138206374964326213564801858301080833659240319894543316653954480828806479676669468836739850381144552287110791363797562503421157684278949330462191247065038987832187705705537609811935340199182728074859632257485579867086530329463759897820135041884854690869191189515920313108705358362090706004009671222935726028973047390393790423929847723986896635643586194473472051209538442343520023888518323278640550363887640204293295013007747976104797003757699419456319393629624451498509280053042014051781670143311851636524083541088324074436878242817124736667839313187308655898764710276379968331441073357662026898325527404756917626608902795421524973289261846198139448990217310807429565724862113131540630173316562237605009324409184922212511211823598290452780589020975623320255281670769544099475769349709871894733976160533653824470872801965814188224004613581944098244487817742036729948461160628641107417981162649200091855389521220359158126440226265251499268350373170531614214445408155807278147618449359349608697513480159876078801260496353890125093236801668114950773688677816184792662400481950103231262613738230952495772577366573759648377151791882798620874021980840346164609935953059321544735498302450074276470462285497468628307624154614985414887827168502600671951287344127593371967002679861260108782825731837083212358616679579045653946356554222233928918867786074980063033529338705501219690980587255268503344953094730939466386006081905588546844752040916185698488565223146480014525525842553153014528332060886718343407071205922212735762925476911711060876451587130562912990938976616157106783521735098513525089852809621905703285214905790143276443556926333848861440422008491028588135433324630732163958026703830589435738916945647175346162746067066367280997941677292411224442256841909826349570697480615980379356300378676877736383942616247814281811946982871346480740244914318003946733104134317359737021737221939536662377060363789711623182275872486095461683012610673481897912556752518605007990015906720631050753284436841779083253763663448292205029672443369930426048444653408607106452392805345446886593268413502039055897855514110572360630997125035216671222900165741658875952107244451848453120386936104331338853420747983675764773799452498732170900833426051630685368082374288141603495017400550412236964047867525004282285826852408918301604563259420188260220981493551949847208392271889859145629081307894165053394270450736625975314009479855485011092066549185807256171449066459363747024482974443230097728962974004115787922693101138614621565507592006669131869869290470263867497257433312760500301237162605678275343353298434039853937864938483298281033039596078382076959877096198549086716268148033741753855435244269674962731107220878211473093170516423706120007345856030883136692548249309754641396915493322242648199911089456389520074804297222980226964947719594047849511904663081348760056586607445502108452852097917879755918582534561776853112774794529948214859364735593293248618617602666193259770313963413371460151223448922226427800048216161741387787789190645726126964287863988854125601053084663498275382457086028254876948256400979212389700624868906023122292445744943373490639211053446513900460182169752994380002846914716795597478592688764965885074900885263979291482576814053114623412724132467025406477757842234465126640152978005797369730585489946615264035991932234563876384244261867968191332107384955532773624340672009668683109653509972284534804623280627545457120344816646364769759372941740490859521348802297246330850977170416094762813313844022085058810212830993817344783536453744122638210796051840614681208825331935439018472958054435049696850000941440476573013561123196106575413196505622054630859220421936008466859462824163416532426936335827392959567142794321407123873007767820556810400835396301618543440881632293717920382531364311969973533736538917187150216936982373655435135891297091073503872625558285906486952711687486991120398233574443025961881951727079773872449465329209358943727050718269261503065451933022230039377703380219877531165544364597595656884169621123302697299669411872689290214682506734635718292960131479979153191589052043854536650751878484265620739408676402223324661728663237922296640959655688862415939777014957583036386474939318586918219971756969701548221846001982154690268345818514311648368687815179322205132199584069200609719949477839916549157450726925025650635695427896072086397927577301359859206090722618677576560834551771200122350431898193013639451381944815310911126413302493858613132539801647364717783097776721581467494063875256878354460910324651751180575613778161385582485285954186652175415457968425333738286517046914131279158700409905299691882253802994993410073186302764990465262652482213537398559515453446078986009232487016858654432424974390430950051234070198570479078967185825155042018055332194187379605415562314860631489829990172402024966950400057487924293277490933948076185419781084286634455754150554004494110607293685415870542349967492739906435481025115922059790549790100446048658114190569476001062301579888846821870872148697419748398448085239920479285818917787838897535773106270516156565124661824242738689028766039010391763819052767953437172138530124311645113049804835681644903450460564010718234837140588451017784838779224969395600177874155732347545259093694966957193514307766311759483944087808262782156557667353250476130923131812411405538009576783748149063351810090961058713873608206502378781885469200608163263057735111214893874917025967044015438353561490435222799061815497446216373404113547406723007203716476913711977956352800692205292356706069947766418800441324059184924435507476421817140843090886601823181908318805687345686511469612820382371614854825109692913152558686073367444414261484245145534547650823414917314670793368136381827616144538533827347031033629146291608604938396774350959885515003947540610563746897744716592980265539565833757958070673761656484741118209816839763387374274540124797136005062407230350319882859570065012718102539969148275545107110230874516507269589190686382944113105830248577468016816073255019703459814622286179671206748515052297015442296912417347173278997469733545631939298296570690852642313686075724635692253863512217797739048577874967979300987013922228486447956430911532480963758872258034322273513503514434076344526789191814739714651447866473469974055108607161950191962948150261425979171404675601611499772867663517549663291236567904658060996097191250556883189822210500868387222531387504969540756853157356357931060244026907432602539161173779214800291317618150182034694558793670327814993484097350623531519611962546737666378580148621771643976317978445457674900891884531965032160857713685805441181085207933581435996221985953249055742171214065440479685280194699242617511665593204470802758718612267396819838847937437543448551428831200740690519137053478904426330826974008172256401651877663389287301934957327108186754850540247837505578808443376717594133813187556361610723256621221101779267581901069128408424218373429752102983576298695094934670342298915222484707288801758975297731215625133081193199312770900110392317504986441000261279592929510638814376460745632690085983192716573437160567501311794931988316673273993978878054886515395094410244452011608067561884013525511377689216584925999098724939077390394010884220871534740109699908434971024361089551845353509655691436948124358301399067161710195017016880063483744360711259458933226163054981864435246535063901524914270289827099509310832818641998377881506873476041301899576402878256745255100559383458328292026234625996726662453600040344592548012610508399734456266980823403593385543353879009944232442096266707261445704765458563539899141376856614321102103097345372327379781382483768908871267165166778399315896589719137372604387524229548286005383671398463546849005283497693504904968014537763651978903256668075949565336311110105751680019143611548717363417302894021127852126437600344591939089430016602947739151655889285548876127740959319407113060433158258670127607732803493590156400389878679311870051822141501292969892131535515100384282163502262967973374140565329408832835050158339962639301831226956723327656915911702801927651039025362316179056023405366102943163351747263737939099538444957764150482848873781893644051367883817545448865140836106212190426645385341500776190480093544228804835100999474645586289792693804606666195012476006690604808642625639304039975524374677853726608532417531574772877600142118127083062952799729351775458759633919628895478862423137132542466313739304763342600696068223842071546556258061049335977707351790617771178075088856113368546840464063624156427016813444176784659034413806687464888046178380355495919785473941822256060400049954434997494066814258930081673610416455937636216721874206663876038178066432965661133848816283497378424983451185436551566368766271496890502039742747128398928061008336488722863090615499876859247244271999829875210547505298014270440625601092649084502613686563668255082517627238308296694671036777045887821781808159269598107875732694773140247880223438117347109436291579439422327952112328008191011497788841669192366764693135380164867444595440508299524860935698675671300527320848125168417630784953698464431031431581489932266007577682860637322003709488761093940928317747060734743350995934781326407736339631595080219691647572817190308737391518921084694687380864171555403786938630090370285979207290508859407977244833330245748809680203862896416349215863901514797702580415798402988465124576578036395203098410775032387286726884705719701925530981367172139997994132885080446524613157830211632334242090209550027466808606024840888019660305259331366646783791620158952715225781526784220234690781745966735327177642711277793168977736058810002765401272697435735193594116976580127660621227599931209291233144328003708789677700846581165052547784807404283911325431959605323461428884626225903520041421809547945532027239062596607073636669235548131221722290934061022182731174878216249330482638306772979956872747935141862196581018212637700323551561651489065677714357225776650063700076278823056179527812154688420181003807800771659628087466789794120932612672013434865792016036811212971537246262889866615011918129060751492632383699128736349203099399119320424617879642216273487229197479458946031987121083295958994914301467560464556751813625969572726835292758756809403501213650425279011629709302881103231143352104830301982134001209021200954843883187817375019746840802011113095249124097460919148758919562178471726144010844962314697019867202018227147893226164168780606489600826829662440236283371117010659461580599140124218394450002349054968315000518396461631390325829370885399567171308638686207620185833143322364021556479631723282945292631987117457457501424424261060022078175078466790349890002981116869662828009385466166555959033100796867349385649277744382028841093236126538502060355210290293928082195285735248876390572164683592761697398371180311910862282505846686429223027762030209620877265408244222504894588411464660618159681098898637320470003222342047171340249185940987145235776630234568302908583866940104029630930068774559381444783669673898947058954328664298405758229648401136248689982934857799330312584967232110906684349903259473740192353129091914575609625299207930588444965580440075416998124859866792450438437117797653423412298763720354969384135769204877410424883885993729254236430201464287935437349272182216587900951038581424414669103046296908798984262849045343160995818748125630186134002294487810720634769619464488350567387610833674761709451334393538329710619041406620128143279047544849924713524138427874033890546619345971216635092323849191500111948922131177361311807328532046048526137938265664482073222941338943622049386884809081732907616972049398225383382041398484523125161794776740628849388772342338869010509867714617674193017123275917507980433050355976526862045290560015668682880438157369150714279411093997374820017134957567104729299953396787264261243463809411491617764213025479766040419405575359791762327977257084989990362628740808907502375530329812984433761663030606789109795273832865499652841150356504529168729040678513698226107508460094063409308637294254268143245842833127117634156462701924262773468869416278559499182675452092102456353542927317864343805015207010167061239850169358253234025987131501178263688904051092723308233887534850254128165389300584432025588541465987508631165143496796732780380340900779004720376035493322855689814167702309642483344405014060299663801263119759314684506480703380216112106517387368780616601977863833435179691702824495836501464318042934579965443813849713387974308690850052446542340112254043096744026819793043263870167157089901771402038378567784604421400730436219241262117358938148857720019105175928982679762394667799821814646742338005400959349426142263876756323706592199797411010725781434395796713552164292311253225021680586789251076110843117410926059337026340378827749712406829959369235530402186931890149338015257882657345958793255162300863753212042673836037015709093090649827740845313251760521602426279370418788359878491211484858196734630290693441146234511636643812670374317178018279049252195037661348200969171604410000616144060522141698604869311682095422699270772136152182512764606552143426220750309828656302596807698971666251988385410325761919366269774936109209170372794247831347955285108056794845005573053201457835159367874713355165105203089720749050315730749833145434993929865457991766293613424779424312295407506824179895943137166773685963394601036495388346172780748299830847957162044222088898964713056055367980060551287845438449921318139492254697843343738229539635444831732343651827712995069099635145711691886527936178720538569927009119792645462473906643416255358659267000418092145486229940297522429153742419071446382783821868050245229769040198641648295062136542623198285099445793356738000867080675462546898936426607980934848992190776924969676104031105368007387033756016185318842979219659749350262929448152312347906666102260177497076778826816305602752584783713169020044764324847722677927551086515877297434075645280280308584404825432399382462153561867940015775280909648664244766326916217190637780350207629586279838284941144470498660177524160880227835321235843133701841891057013445770936671319886511297317523263988123585574559100608152125878807987331725090258033089614202869074291607491625521801827716254305714495980718507210918207093747995807759234292652914663428506919533532192330438441290540783662034378874862411997847468226936861217897905349786428164784059518191344451217874488588198538704461877477804984805388054966300741154868908741269452521666405401295037485480166481480275272679066526011415412182030517374529353447802129651676392851767055615334200854840149626636607284964261201307240047682388357653309581812045093164771166762269060964578640772928763772249898947279258114551589557886172905033292965939117684518173088048722652013629914300686581619207828418339482526436683791815979073340982379282969628729152354580864003913588223178526091291120512936734108357399277938439181498866490203612069149484014751495134406322566922495117043578934514247879277883338141956299486805623524480522509484741969477461453010416788033858180687065213491800271015195981828012845561495353685104538716339296960616364856120359449830281564374634094666620646049735349311778363889766978720104643043558311362828404428208021046146291724389620915812581933928302939714193174247271196098133569384207162298568081014417169792038968309648294629443222690834971453359027526228117421199121969226959269830801931261621723437357190205608779638836423336179817841999502396199116390021645696228195426711979240130864699752146749629494142477726638611074161532202605950139628035106522624185623233697705130825807734806625759210789760942621510165288572555864171369860999203789616344628001024804214669533478353126452205247224310885990987075312997829706849975999095297027756473609546872128915786510022317733218936863992021546568857186298531304544657898052811226836305946389868905345074863338111598103374393712523616816123832136187136742875065323597738873679819442319420419937616019710218303047855193422111395233491402778460535879340981986744150213426071729596830174555595460600142886249103644892254121273649313261989628771596980761101244267680885409620884784720065580584646493924958467994380757139841842512541314428923412032138064854833244025285763263230608094257422522570086517767983670124407278353552811989226970591188648238345153344499824856114708391253520711442467484866173881861986223040558408095427179664078652457915160269054813402091041483299946167465876946955410159279818888579138792276122621056811004430485993436781145624334811991109747540349173915834054357776589024365474517336074583060096170725200704534795893878140531108668056474684420415111237341635205068823897075386059121063217523757816118485147591066500988725934642370352366393807427772248256425787876828457745722990891701873586502137537359676103175303777988275580507801554754953001177040891500268968210793056274305251317335550588394512829666707585910396292451917082837455912663211261489833509309941001069552509038246372961193298207907325608923289301289640372616907951059135700145215585929464806376538847856369583616566292270169204430448186660886425878558999364523128238382998235400249442627207329833771145406531538664910075380750242765798928644564520173149068363987263858753371048327481049076785523647227226020897321574450998448551569236358958193379465590364652354470569234858661738006639306310696287377748172818718196526300105378398057742761603391157858459878476263896017609112748280444447886946802141526116468877192084434534371275899127976268421717714074809077631045332221864440092153683951407945733404177921929100044208177663195862171593161810164782750557105977645739495868617864480339316970458562769700768851383359633052937644763944017478001903701306909517533612818185985760833364840237176589893072657125061153737508100689186658867649904079505638186881049574346006723399533303370030641126347090279496036024514507302331294727798371466778420255760444649775490566912794783518287672554964112782238297179328035831212173707009004045747840606668388584159721823738336189821684222926100967638417338221477403491909822044119660466112529497978253542241173291046040058002251748917628343958317159775576463437209229305960240833845635972363224763391100815205019722849014538510426619980655504478323924394081696934769806191758935964728672122129338254212689828951817177786255208944280610595967929344283562410375154031229129304349892844401746979871553475954460345019556180211675234270300496773755836304481302449830682495940423330106017254326947351510410227823493226704616377817226994566745855139668859925224838030619428414263793026029172389910343270445269851952461098497655578434836661189012076791803618218195389034079107846487120787559947071978397955190875188778029731194120020147702999176553973459873871488651929982754177072599926953838866231746154626300358448221394633146136516771153623593120037671755281594647172359760385614835919735302764557601401155623031917182179399344049008236381722012583495091834642889755543196344330831117059076091462751524623226336404956995433446962463261945810610822685252672177362864574434478356427600376326630728182071999746561029096838480876839479860569844092376784153867404941545562567816801407943204180550093070434259280722804950313293835466076387071811347476927011695147595947776842331903946075574634766423352343349099166714080010929595934903695267647615889623985750639151875414462474221668137382573694245881482947792174455137204712199208264840080208801889222813605437681254940246994424045394119651903736258830557847693819008068076044250899235865018350800644412439890462112137572008707011258209989317031695610780543605291858538522815351376918271289927535961432380528738928999588006667362094040204523571972953593477550149187837409539154724374419756404536889296854482245261543597043550121741203718108642153244302728940142095992719486693335095495745403124810842735512955788897865235163514083300675544366936872503980751522039835832832939199978960304248963170860737661171091353664178212035466339595055790411323841690243344500179311127380495027283197081126644632483367030821977513195779053549694476135995233263527192390146187492448917938400453655773913224446814657090650461265807311218517440048156106194095384429721669550476787401612986905492033372292233977616336250266439164414375099834914779674269804351193621937476380847352701346032769853878621771667772520832008036598691471216414544368188352937683285266793534793940977708846932376237887997447780296560666285513523484070458834894657503785967128451012416656473713471438130420001406140887277689111948186537076761229598568684347540926302100016806237363546896564849200925812956547532737926598120885497558373942444648464038348236538199471191711257154938459320340380471496887571188215857191721403726705944058721935401959439744317683213753282690162447596795333936823923847523689847321216362636307833784276953157597020110269008574236751207649759013304597937734290404169773359662682972476759082715654905291711701873755559200438474255969457054704173004965973484357843303010825902236954087497441473831455819120186959373420515823437740715895531854413392853824981246935479243577934403922683462198408898515251153180905680743877324479863913070279231215871473574321869625688708175642344187159719321023016693898723660778080752756778644412199099365142291406194969936270296061718492065246011549270953350150303064376284449253233200063366532155317975089660774007036070078292009088523227000013351825729705902768233903432861136896575609443279845137489038633573416654072134684003580218148011094066066398421853114081695003869839070318475703829458140367370314323108049744257563452089823610118696038005595605339374555993659847287423352347642086964112293355060790670109795999798929291758935238989950170047534480882538724448379022854920520690809641309394263800435352103188802839062978559898221346805628239702157113245973820425478738053211431219823717602834593279042171763807268365327608094014764889798956249694435745315823005896859483134737594406339215778552801897277403789242823021534305006622805388804418710657036830999152184428004140941937123342232372838539979394521876290771777561251989363395931053753854746647670389149477164461355515702509339219043929718066822881434136814651654212085316781686338711049520006957688047915434112986806458012592208599244744492656775732951754142715543462426127329678812667023257238846356074999723526282276656398396335312049163346751497011650481831282816385785077969176228592982420297972421466399803124956698682098239161483478184527290800695581400800104201005176431324024938489090040045044772271918324959447407696397346975213866087100080088649732680305696866167517656653120988721915642385066331407330190666480311382972064825611488986782856197359121943948805633511523388497565494902948628426652175917679607274468325892098533806447520859971466036834673677896018308344355974788606947970390751408218626138331248411863002854764645530754903067423602710481013529669189154687243261068214762441789357892603914498736764363752826728681805788616367557129572947174269259770346851114266992268474101970218199594630580274004981530026270516664723302667733302710896121300042918448073731153784654530538715878437983334311639137383884178686942149445966732321988245868186087928133448881868253547741056336534763732123703074380330034604652882497938540151709331283723469980890908951687616827152752008502011131600964704966597098221102241697907290361236465446763011822591530401218748251329580697813321761990623761660436125213906592138507867601297774435378609812232418301131313143247584223794701374579985996560821783604370410287198162948620237634904348184939435250227004662270782731845795815464827613997174258142404738144489246147136653100631113675526555102317206928457654875153922013700861091931118058153654511531283175919933765558591780656601918186573148658293447681027470101671311662786414692898749378853185257928781881025684304531882489999126534237638742948679940059316502356362407639387289894888899429636891787218231064152418130628967842309743877904881193986823100212952537361660381570405752698244592336603446823873169503402084829407068194296625493917624465757303667794201637131333715289564100890754356647008568954052292430921318555305275830255619662024424488136011337832065600506080782377984047288180826008429080959527351001164532842554557511876326852122914424300534051327085367813910695201832580607008803273745300045788034485145840014338398929995569283512111604354775774695413818349334372674110121630156908677682104623565578355282836076365928904345090266008641067804994287306946729872364903706866553704470576661816761644267438731953550616687396620231718904801161679544330736902021783722751132833853310808115439630189434678582771053733656189394254803488662346067087761384662475558789404159622145663173422712811513591724679929427604207795503687351438119071752952572103074311219895173614102707891744368040817984478786786352346023553144472742614942734588156775620874414611223594257370232078823202820447144604090761982250950348061529033012992642217061254588487212991016472666060408674884488238415547329625368236232027934668320644808158589710092749335964094503349386436268406036836604573318933741683675611043505346945483218726873667788136025498687049762730970781785544457293780422746281608313239282391956540382808400222967746578498276153928118083159617424375021036246499197612046625349098595895840625991253465523423909701135188665061891148924114637195666129607707530569852225695744773853633078249964581045878745986624384368836677921088832688577024725267193030531074602259993537635172853863494529603107135782913766098075011826805616290084581270094372990123499503872658105593531854419851275125044618809139768572236546304270460157150766713492695087189143149344738628340006072644906352870090109276359033977871419920852814033006594806237785354768165955131076559390929714951166289331584460012894142485551903793328076824191387404308478147829098130912524684032274755666657578891680783282361875768217653116954198072967479581503473252580599077067128045336865333414934098050749095313521251225233655335612372956187748775188704118727310570275117382425259425095880389691879903603159705064125831706689797057698072009321857562278643856105404895512501521355135403339882816904426840969200157924849129012988029323774035156679159991061103219647148721289107931853894591094728345682731257890969255272272145710443127127148131773609163984442064173177815143853204564483452961465939449160070148616416523530008425005584851845566594996893875476680262978392883237806697417061785328486604080075316565658975495592638128951964291099112964421799617095439052881991485642659872778299405790762287512966349489673886123800205970107083634133566032850024924373762012175802105642008802252169771995974573872144575175127244662823653639357994742346773287253686271583913570138902388641431060898591220594975788850687112384754627724710216817873399857379014910900698566074857860018475079213242364665468133863393180705442917763227801516278758019051203089127149158669980303706262472145856580996559039985157879394755479681635779013053235621383054846408779302840453509645636586242757626155035281359270265382587339605015629388763504437606419225766124906916966229134863243022031028694722132594157492602988782955343882650085404456552309259560566527676684052159564485413160517037220741899226825546151802042159732476611850539420481776594561669565545905582521885379695812441405257015089438548161535657159321179357979777158497411116542362936225146588033721501287715517102426127047681473688728404973000460646935320038791858814252816708893632142001273045024351218820659873756047323607982509013421280764372374432417764677458881450534135673829064827935013321094376397484948302795645224569724769680883344647495266222410228047225579369050959377995307602969416508561747853516763983357507121733715762013720780909114353784120475381482488511831006176813715664146402105620553178432325232891372429860670588827707625335388251810408970849392510467711021628603749354030126230109110439767281604180036296626184251489962782936241373472056718198921079250372273844916442210419401081074855869388773865928651939532493830822894952517035459136637285412782922075748959759721356428488964278128770211764087801815722542370434635455374375282184868860613361163739424095309654821763975637492721100585791153107929104795597292024834082520359135614476710579450386847695854880987589339763231448226033819301249994917470032200157419022832827746764050825942819535189511910713435455218652448172693720416874282479401127152966403221487734714916302591756735897560231631703350035451569847126884529691649768736858951678324624129231666409189036605987158307922448003352412061959109846309659075594084346740867643652173709771430334301195506981089018247580302441541761823912552885938943602460233726435982458282841284134628386734355781491947723395275578200280140111139956577311068665931722775931362401308168269098985045574808624218816607901129307304181203717662061442540438662960941431338623550238795098126226344260715593192236808431185361480725412552274810385122220916702163805281102563606291983926585875293227067745377280178492383241054974013692550957097592412732822030351567627967428229651346303470048379192555043592005123864978561468602954132608970995933758851305938015699502671342748916992366426983227985437903275135991206908970003597456342182374729183786195005616806461819147442741970841335428334069548192750130098585524162906407157233166835972474015776376896077091843723076052308997868577378276782923958148953674379927432092005759485583313074058599914819703433915968743648302802304093323967662304576561986940555637968202276124054586235018818071242956380471456208345624535874657267797124829358352633842786512478011899229234176091054086841988970602623439623862380371606337497709214101786364735216730489758539115680652190341370364423666775964308107362341475346285025291583292625747903332466203880327808307027602889816082125916352530387344088685764218611732506497549062473456073076672632108981682167750849371452303879684418659353140556774590014541212421627461559964361652577531634200985444449656713103070948906138056255199503888495714767501806455313533133947103123340682470568801560799445483682083550583095174299187032150520095871269505401447361368284961238601013562533751635444897333937396027428241879208281082868565018571935444527627846249673785432051454763274610649502870171473369541295557401651068915157564117933795650609034982929611892169769464641775985534482626642993426497820132959256091078744974607422661958975787262613545199789137908990981638071887145281079114933611710830562530761081922306346223442078841129047945120802713653008598471041841442964962151517975845241781073274389908650240970613372659023961477431038820548295906125717048750991916317024041016956706744891228134897747060710262667237609987825942575574036767451234482147855883955400074027874429974688455133611785471274357059767442754397466066304165598643537233098781615122024533560886972947915288924781113259060218784050030090273554705736236917079902637057719991287042860787323566945812184100176362820156459483903045710780216260574565461760696079164743077821492512043347505995986248783528086493678906631475789420183070172160769857054390604000675757289507663394226778342306685665613909564340332052518264004404487074913820649709052445975637086964797251763073519761275466106998230593389513376318046004940526759196146745374804105095836958692657237670031742712184167061934773104008661096745836402776458633793210170840132938749880754613021812729473412770802235790821678263722594402891926313263619091094049421392925648647242069964942664065585590169180663104186635553992591997431288354830733634650393854483315004874626422536721119969749122125745835888428579070784849672639344177308832130187722594490818084727815499671335636814955290725219697772503448267446455383652860661276493176505484889063158673263078471660521504161233225437461369588162269218001214307078764190637137627661780224277454210291824259459592696801048015779445593342481207738379320367727822984779811121980642930330410041619481842355877729035259641007792991503196346307107324690681573086849276260677329165339653656432280091663499002057778833017336968923290242779909456498835330972813327446209758698313356118276453120578572184525247238938739810977609037942611860934007664888972953728523609265120697690594061304424410705872705668879032840101255997923446296179730147504592268844108149752124731725477401193709442708115802585796735210093615051600642034078434703856927359176283632284359823325395339869668525680767832270410955363431265418088076002265594377263420533900802899748464332161691855595991481495292486558427349578797544238775249438607352107735954968123449555470209020285063005017787053074564006447631945043996227940638559934813525816601391360299218680805660836886830024458600028017866281321522811744730185675813503595474953640103124472820893760131793259524344606462343719068708606226781377644561674838531387578561954755479445127637771565852933844003858432614979744968647959978163211322134573349510840946981788455766660184771939443574349957069403296073977443487323758929022521154873186057212237672723145107976673973005895115711475664403196178089587891195722509295349679847437714878610325323406619663748234490723276998772328895287901050532946302150097788578117017123071053694189996967568197616739684625682193722153292727880187907365775301844239237801610450698817588132923609927120414654562633950046805962966956206175160944832488015514713089573007504186877746171404330596108499297626081133098349628151353801293500017186711241965114765037129602485907662802709704611053534860468561033833417154518930664595672120633847595965066175476276648665762053117840350019058204953071641950538647631386625397746675819305634878465081077850631973369674038876250451716816559803207537720412279782396989263989132599796259537822119695743639498286094205795181401022383465209027493156347136592319516702254096758695770328304195226504214711193472329404320913699407815171586023785422530456274116525114442588564303010208587835449199410626829419649483068738751161347987603989098325250001836362812613022073080501623873561808730538508623614934196472154151753237865174188131548481998721993032947856727530315568742811306876444293873971391005993900629057769878381139992490861116885483947782278426687880391132181684600105678918654729426460145697294800015386606382957336442503500491492850081105738462796341307902123407012868703503989248769156095500824195545132357085611959764959623042650838048503459932660027961835146438111433425383385407859382621473716073631819701049660924826295285665754974710269014381597037980369964924126143074523851826752526345383895574811496996535683319509744790467194626141014141303879358126870076969277178633608266874142529248605328868483956317919687929564868574505505967513367799766519487966513565672543765727694272942845406769952358724413851224059602064737997959521874491776107990799042207415783558725162920013840027142133351510895667121801479915084752207882614841869827377429595305588384547119592791527979376805009898968502625506817689635394824939714597972212558266578771288912239524370643087021023436572711201898724873670034366651788110783171751294038694601172642920182410569765806731582050213353410907079147384989840224834699525391857817335597285715892642590557280919672083794354166183831816925134142552490751266740366005564521220568718622848462388138201886954865367108856044165233365303489249055269338783490911193668691202962509679738217451851726136585190183623617555559143629036594696713171866650861397916455452264945140981264626036943787665093138012286218887841958299817127254605335603436789880857601375265041448214237742094267025207576359725122173297274221578608298811094578047040962147084270789373639353715207726824635966409469521262630588507351212973040777027995247157984837048213991460902239098468950783512296690372354284617989815427785058084383001703593770691434397295008661462682998355392443420522711722296452292751662355224849529986653672598577819049200555513757065785371172995429978812031281572891697402006122888230744776081247852558487009487973247824424275671239012740325997572824242225852376129166861590998535527100139287052798889117540582849947162279977323250666841846242264205188165268759160618707254064942874140521449213024467591063860252561602349559464478109700000627472302326626304103732936492974953261401058697169582450255748733792760369422891211573260884631776431010176197268356406032031755728230240747643515504415743399862630365951683060505901103560618904435790798935268947713665350746241219448239642643829496197617471710766029498214480933986205827601444754011790376693580818095505974649884328057051011370172922243513674825192049937581217731599684626705012757923440363167186520560653585541619963612522895725920853743517046535384047258339836188519241650804301725102673965656910154424156526874086213659991536091085774909410350418375064364877346309219740805105058097611427638985878761293089645573960157451867791052570834421180215828935288761243929444034796566383254207967158984585162928519143246487486253207791923760384875108921831608104920603384031605645296506487251504419118557544549922153321234395019065053528777914052436335574229464283609441206778478841617368864553399055296294990196734384030725359363942223942416188618489402678278630435808647963989770751120024202437433988302161889064711097309071735864573993521680292116524585817771038118030663604767313578310524963634010784498636998350799395996650796373014378997222987089084653995619303605070722768672604113514020623995415123127200740105800066809317422357439953344006762753806053636315392581438871758222175417700126370542778494738529751610441376224723703346210971405957230859452806111258858818321046355972204432379545997305709882250891433390050211199711177296794447264450128369910001055252860735353009997372622086674223182585527211156513990615951537442525895443816475593086577942802621329601377271879187666086534615620521352478043820192038061611401170440619864477632885712431015366671378423462726650758970367242496985039755098447920848172270939121291139799431613467556914457102386396352015202313928676813320387379711397710017017461210193035647810955130738992420731031252144416719219773202010964603098267410901968090985343678607493474019418352355093620214848400096973863902550218779376633570233933853942314235573195282233891503366666581637607981884724735069314994243556177366353401534862539331843035392997118314137546231806753454580635030680306933588358595063440692596699850643397171764496378839027206603068158863826908522131759169810837806897553946728309028075816331424520242862716156847997789313941795612471876486802941228595091109730247670641989440218139564182469751937021316473328618406486605550932441026079023122987833139227198909466581720941473792011051346394210273594114599578176812523020793494589602214360224291668361324491203212615399881871430386258995098963225726154851374134355489252175682740935042403412558893498614077271515288275349744359062905759500808536927647633953135211212609010766672794109873040366417735555341565526557139437659480278008801615614970228489288601718595340834585286457206571025142184424273265493201542130738854533929733456006970594969374337286546701667007474637270053217641791910041259585179182442705446294773044425635739265892455285866946617113788549978439201948258482340919955555944032213124816054364571979886399564375662612312181781841619463658639720615029712524030142735960312707368571866595177439476804436379079103115297172709394228309900985029079888009123582024983618833957938479705235522432340085052960025128434141233595796229938154471944126512119032669024723512208393281192465808490021088116491661377790382203033210154898295808101277215712981683693782639130445745729894857094202105460374333008134403345273915070401469311364891959031204250996588964896911049561919714314353229877939851037197767807840127244856507308921251245997873127301041584386162514034857340083240546149544948096052449684289941245992312146094534815368589045931226945356659498778197490115272697626930198937250323811959179980044679702981572061012744246547120068079310203314823365541022762263992007327437733209211791046062906742064117510931773445332165807984738288414199963606082084863784204098674328843478193335871676029094929255536848535138818022170214130822508370992911753533344316255578883672387070497774779553505815688003737009793192681487317043196689427238183502453208129163193821316899265516624280640369473492067331229185570577957454690692460015218879403917632365155256064255506902035559838769041502007205518623638393215369874481077273426789514067432925457701228057408954416528352116732672448737819750159518328087775614781533313615922644968836567417095310695423055215201333829537029644871145755275502770473252639044889637530903013909063148909912383566484393070525718533448557538741192721455623415230698144067969198860007258790453643560307563205925686218898138145768853674946896943245087389055794485660998266307386195082885407807462520115796635083993634736217699673093797637365771224787767406814935172982431195262167171714289126042123870304139611208166832387048376738827768193849353156654085038294209105962763820031401041122866944506335852107252485066276330986769942812705582889315670227027378904535776895199635054141978194631774830910913237589110316624184255269024781518352333844896426435417021741617639297277752839362763580429477145945736745841424845826216492818763038870247804930749868691705535987194789485780399603300467519566375934856683607162099462996522551147520215019451687988290288924384073797533394464166554402918670192516318971500220422509010694062446683457501255449732462986814170106863822446514337194348862231739461515218835095341253676331356562722859450361875102302318030067580818911356737920172198995084523635373419604471802990075703567569979704900739584239729993659521448575617822682395447590992377275904729321212582256774799251708040632372187472511449713115298955562281744928860734769654910320600167398326681038751297586410151307433039533138394034566124796855205490988961271366922038512274598878756669122239052469965668460469265910072350712872895898040370906286389738726937097935058758398118985928566483301211293219372747255309483530520319195577558506896825606262690919871070423339722572154811545954787163892097592082845758199726289081987771754152747657772051467563701763208962770349903246677094291608075033795912189694970050866184015204887573611429055559760987086119867947997061367685756149011758998618690786212272646547132725547295990296774026810066984922645704665988177330604325635171342098177532839716569584329456405001104952904606077359403935901148694409666760409687531384405878836028015373925144223930927103206728563385587262426284457533338115598524658102843958225890555307398011263515670759693088983102734404941284836856579218999727742591843622237072665319442505875850933100525997229308676402015542517663207662248851160450887772790460164616013074349357722434030942106242806958594345371721174998552900084065437273153600067939045229158112702826356372984660202992272860579306361240744802732559233474878684182319843915468998874590783724450882334536314765320877724967174272179150463669428911872555619915893973604517919119042031154315585660460839924482887987493438525467117062479938536724727205766721299957341784553602748696417955741405413445703977984659005933944475524174166919512854673776385208011516802999146079656092264943163602659558147897241846116614237309615307279005064848318009543989357280571081780924802896598782159705553125502884016371858070544679109102998075477574966753782191926596652536910723138638017118291859658359205127508612685817290833316089909502328798668528937006331575084725016168742827422747089768383373739491566150890078503214856865407546372447768154467185065385279093301088520712898026737332591528802700311993661272190141785815182406688495396517376000698418791055170010996380499146846803323031758709677748886068972344977128909119142873654297630941355961533535057494749733530960663755521835605163893178921880298542006843021525766886340599131045048603954715872437511690138545899724236810648062742564729075988813821999745464216971564910719490839214998719672140760074293058952119580036335127356606870022316338527881507642008546965273014277751120165685695823392085748895451312430486083597054602457033423901913765192559024500943839063093830665332397535259036336620421721589704614383442625490649447249685774277950825060454041981518773214559108215913514793475756737168447306746417592733735359377237315474038308897766058727863378786945501257687752441189057813793916129933992699395023773945387159882568902966311060682279390671076513732622232122336883016114773248249945214411837968184802130360377065921153211247323080015381486582628161281962339922893282942915480416708377592379370621580913229518853578170300720575599504265501166567558850615729896678585786450518067783749509222440555343281964176499744090580413651899697058737958609466468459317356559535226143577264873870871021307454709534296783902430392336696941370331624588855445016687297467735199079673240412854998427400997524198283421099554363740184352016467547865688888395532502466094956926716583797352918887251561447513653585722260763172622904489449861761029385154670437391236247734250236539735069816991979891069566257540595781461017951660762740649748799953705102840956595341449221197060258047886878801968867053833034762546160955496627861074451279638537714972708284434141730669257764584244519768639016047130164258124290494134845337552560432921330340956439606630170485751837756569471628504075923673700342874642306467769727348940140870233726080255681919018123068662139872612515326196940034987897053152991421728418174271341553578772339513868972216379881096839698561651017305530511630934437687941858764574309527928884034347313352407712011633084476887067726672425246097325320953184543444870772267196828049869381716111012582367725097292799354815989730976271545108483279937789488047004310580066028218711323760209911178823800494312864545211907376720192864942200317505344074709935878285230929671816107197153097683237833735717238675870395940276658339948135216937337878294277144483417055278122314921484183175603638829373243311994624165923072659320513564206705742018958224594636593958619569077171977826443944107248831105667997389477471951773154324521158664220694631321973373551904565165370472257081298760048258878460797054503630962865049706136391137362677423675040673427507238048267908374493368412230538215043059760902497150414410732777715165909089715660789559686989586301273792284977453634053529965620253194246191235872919113353578654735192590433143823681529624041810477694596372913634313288098037238600325217216797235368721026333743454440375857918158747043055461582401924579418727461171486870221045467924468105917238985792729871445345283077636588587353340226236233533552162260721943860910462028199099564281998915242136581752700538878534664006241825455092438299297342194454110739036867158250051093974843651141629064080047652270168951189238644726787665521853675275225246177659478331867931373792987216490460194837543747439882083791994608433381349550637958692841204915493991657702657954034589887364820230668491180730159783738875217683537977537075915342564693586081027238464370020386335309442623013716362014994079791509558904022224211387966746719899515166869018800796946688248381096299585296173534143833943793701421176045939087552581200772772409594086203105096711075908119641550919167122838501639843021380908391396741544249542294539705783556266400733748371583944489968062709330000143806760801188839503611417197220911722822753750530493125451734290473154911052225875876162131116437105679227740248940895419285439126132473117903343396677820413741651822753608795996742833265364276181964832069258856547220252174896180624717245481103398856641203479414075609620186215108923189111026705290504216189194469587896247246413223182554323766317657852908113448029563215413775307563157215386619302103523099305695793355527629929533726095221505236219562976152261335586965312800120453681354043321669940806959602068175497389526553901970725891004306851758159189455745832302929655756077645313795651883193346110912924366566154815664018021505605226343790406598336144017077221404132480246933967333190240531497243696182766155478246706200138465203751880620108851132558888327573195318079210188634555825207582046648181188058630353436772872362988224094881629573010746517347704955728934679933269230620497366053347783666772968422405347265684716684094310436290169057873278544328757089427964863415417431466556174133029877149731810162380537390610450364675989111217110274303767095881986226062581068588170897916403110521617541498450672409774400340159084735606829254730210640135184215754873148200211837022991310117417614330563725565240040191859719714974404391931140807688182433564547700372102898334672023046766171242936281401884252880433323393135997986392427375417788520967883152265984614907257446148565521913909456158953443856786856154857561926953757308894097489918770966810613549283155875886409767615432903861455909511251543276391281697832304306685569992315143253283399974516230869636478497166004475433759901666124426129693557273330320522025495681758672605614974421776267050347769945567156017043987726558679038299816442847685958109359243974942318922314912905920088420323402007815767798493499319306161645335168867593635320400894155281514873488156818053598208046408165626977806246834641266567253036453235349276169887505608498586688550173253878160259161333107217806703867978194413949651820623176461904746460593660901577709675760454598336366379074149541982248918030556151900591122394462432540870940280060458703965315886325560523951457123288259747395675279553907924653256499318051459411373761856068081925548230488390352142838823393974909056001665462983963654196820855809440631824442101118523808323037438828284831519822456853084827257115681956194803409139587777861519376447474956472891011622130571026819195902272537738945575872219918883023249890059830259635345137994670037759725398983470289138655647136700211310119209844520773919100759391451671074204436441334890357387426373305282557275984679186995194053666993924449739517716587258485264048388178804901696161252091825486528688288049051905164903540307954898489340863115714262851082118982628820663229311217911125724890700833186413784153677669820950658217546190751942035065146382939946387520714424608960106956209397688895045784880967238802797329514372529230109547430789167576705724108000571046441004073327314966253798275195794653711321543120911716559936116137291810566762746757204826846148611085440635797582841708303292167322372274988572000650349815085221855018702414207031956399495639793087591684735425429343491295552792740506314196330380467622947008254298644795932250768225952103661706642793936909287655940251127174878325924058688601931663360497899389176580071337487666622053682905042296483417585875889795308848690151749628710308410907433032562681190437769257511222936316320461584645672106975255124683970749712670208769043668520203985357547969326193662221098755985269150060507654161008684421775532787040620821655165381949230934717425338352561000794462609243114356664549170858042964537451335306181459771273740881347203497608330812019009416816532362619068336371437600651604380115171809702768405119020235581460273327657359691430600760767200066420596766805033791624858204948447389024791778209126791840771978351856592827842695227820194213442805890791715244218504817862020860963290500574798118733970781757700277302284876998183400836703735354191337626960558280983355284838681162684884188833765535740574581661561305564085708509499720656804611576891857689566859095098008271647412372125675044703040082482394919203663734581240027734429006642154895552991618689829563988013889681086151783023331278982243273153939485429011459663368206874030449192285430068329620815145715379073520852827493901500465237154460525721911573207901807527037872834633116202564479175404815138772794019478927274239108422254393738386496295695624538076377584773649241207647537698953528709507293382946006725165424943940004670011751450285829325496464934021415592330660113329034512844218081792919021918765211711206253372634276798779997437790879700944596537026196652896771834981631529720794748863646187597076094371630638666406755700353114938479200738220339716221286844766419377173191009911259541416082345822489851679104751323605184564384250943725727544089834772705173556627455540957488347034157216940485109833631084575015765531430362586294432737303716834411847012850291979636190003049977426870985815561753645469806117654335258554703499023178906152258509889937999862674566934771007842970903075637112188302942628105114173622534746496534112548671577281198792277192450477021097896714855742266724099311930883069823866140337609611374201671633793062241042384667247412332253206734645404753295383466455965730005203632249564364886501917156906964760827316812398504083054281880437253157265167441896067456992669244744245842300841593059185259360512636530246348286032880693610399559934410593274587179324680608460135089073329569041051104266300846425357482249115190002394150538808264298360333745582839109233745832668741703460573264834615095634723284281876849330865522596926565966082249589630717153677833457558484040934347792711770742892220190325643303803385644598595861903950503178383208636552891717074613727365613020209973455523515276161754295357489940479997743448084584094100328346127547218023286703582337129134126606739361182502086383585540527964200332555377076744902350011746480748990956351177361651563995345173685546355588689458385811704230171176156580101590040093849400502445046505033631577435676912203720314909547102325435108345977269108846317157341032937597214361179094084262308038160844456935095390732328954513243250675039092757072546319060482893642040810450171251600088865717976426902375634125557826574429130119816510431082293181416215199695673428409495468254812693530951206831421737454279522540091286906182820440039916590104461860792432049755774646682528223813944640832422954316903066307827854722409873892764650387545119843059636122951403163689839694399968526261760705346828933674686542013345424353964407864578506503672930091677392720847378782190330065487975831768801087555914723892487984358763844649656527805866488487414379829026775196011601312696167563672068701326928061705177889025685596962614281176488100750077146274964812542233957568564623507795668239529277477157939707182862879011392842720872515591216589329306043147831707539139857441743019335981003877669767382876096119867393340314792776619266182381668294144192674272354148460824411913103194114837388643833011701661564817293211247888884606418856836706622544239650013320226109512611837587490003838514691709528814487287149008476102091426810021236889655991479692360592732148529638730075448916280021368222979409524263114283685071651149253429539107166215728298909705087316834226911890636838912661006058877273911379593599993597579809885053051235488199214467522909474379460290732066310374626144799688760985032687815039822926241848834342682832591751647441729755641991244029266398592045301629988198904887422131925723936778033308147629885247739148669506899885397361874421573519586796407168494497469537440664801459928609547933554622812647996950244970454431943285990112756268169509489226618978906013005552660661554132694503098346243577495737946868596864209749501481844408545785539605538634653954660978339566426840138279415111101336290107790341391047460648557309891866178067532936885727756345724374323883006454682250729665832770339608396564066802937716776043349138949895436550057612519550332103897400048315692270311949934930066056489159739689890108481903141555511432499871389277645935268716023582031070285703589593093237278308699624929579891359048688950861698383708843258743221561633009590540088937023094946847374101657509801471162503966862654106553619416946467939669887692679915851034357092624101174223709395766634256354807414242179161564398044670023737551676463463874044035971614091155748425247554294565634183164335478989675129723910998378718854393491145170923763330401046919451100248598877128238963009953222751062754391878618562402062848787508518002788997437590991704335546447579830725422392619124558350790203680666136399250914726859007959441572366110153981264925045306083867796089389285622192031445700003233544325139793548924505280268612637457306128955069807695163970145595110544741954490322075100638146570360117293500742930842309712587698721517512292392378792648966566915802617155675428428130797059335219119378952124909649561158952885026684979432212337306133781562965735285678102463504980712584198820849522321347460210372366691842496576334423023859497366187216443591928948485759501986689429324159396059383632262557355937506844180925903027508716192501788817598694549814581084637450811772139429453623330012201076347153156060549923236765890997645630485428781688906685186338561173732110693240184844335618549315990611179364880761963610098714762215036916700378428057770459213856715388115473195868899417425219271719990081654729901675002636138991301270379657668866732447823939529563968773845287021472123852995902128728495768102736467791594689191223783084341669528879048243749725885174371561590434612706125217275613545855497012063039497012826141929126805027395667184811479826643215893717695385637989586422492967459453032585209026907696108463042938588755371162619004133859392034963381047927007288302832653561433060490461989136012811596471291486498581512354025795726696686471897279573045101092350008148777499880873775226516671924580681458386978205697906461259829303964484567590706853774082965749015085891032170397292341805718334766478592947309094052880099116529530856267993436647554554758592138673277393971027193831855294534930001420579458501301652163365966811129441485339391195117729222530507523284005807524474416672709341961062011366869847790885935285678685194276980073939364388563993416229153762268339665883135864680035271355422240389925282247124129138861947240817785620647671969572205238294716728520312451223112840333104899845290720109338292034784368270164557422849798508169590557727028232559939247214555279526246619385093521071929135709174114979997273615613430269023645738804164307914757884206881653439523669409337661972967497104623817751093747621990487994732382423816888375414162425447581644877782390899383854554221254902266187940808781561763535920437608310168436387109112456341001766209009724738877891760236232622776140962937015823843863224353258524019769080126460097466379951697225107937535641765226876022233582171667574550426817995198175283377179147991048648044404642753272134959422875892428721341164175065465690218005142681082303000932829909202377075813841531713494932272188315767198818995108773271865929279923193914033055157059282585936158197078401207132895264526630537956393980276522600884533006491280379717940025236344553560118341197301333020674867667417442735856688705598315761267740015392445927324903450608659208366274923774621778699183148275488984743022169794458034056824286242267906896544992090456970092993804044360717389100168704752682899133081257677713577856193568674551321331886166066405374493952331495547864000637593508953128249180471272288056829587582990822787036712724166505825659984615556676717440370647436965701217815663268073486912797340439878403294491382010406765516403348539126642926223301131250212615849312400735346356484799277719598926425792355989253401740320366694471709813556522613479523709921980086551323784936362941847092199185520379389066453973052708132557609493863221977755964888185957734504539856959015408856542298233797583696540338600514799461375891121730682522469611406057392987894797137863633898685010766948433103866504009283261256343459152869087911948865794574913243557607622242032660596077676253522098422232787879673761586848768502700107643151765773924376170494685018917369555709991645004636430432372141718348850963212176595205709535168268987968728474713304026517844274297512017666102556985320432991780009170592121774797536873999519774403167607320897544515768939731532254894255102094072200140520635409986509592950747366865753286878192317312924539534662019673258824685226617719107030785525071108232513659283601410597469056904802024787296940340116415244505781844724688386842450986497715982251377997916519043486190187839616376657391398242950297963351541981508073840298660370337810599646450669421227123492480922012174617902024843620299193128272611097344785450559963123184506814634894703477924610529041881384730753213091447031224690017213420662523184918687191591468029910992093018698617103679596451106331788036172463211047259480131649737780940468884516253262335558724712329318199257555973097332565381416195144720882615110642364865499211675359666777222950724625730290058220929702981674770886382507391564156540009955517739548850292480005549633080566695337292929585493022447418770120053510262469426650917992227190958976101159111893665969637786450851544051435341628294902274416100861717505810439289924654475741569474006783432806689655363055777268097596457492715921077202842578592063748803040611638943971164904394388075037415219031134247690182501926257062827983368292547497702405623385131994988973240009469348730289333531706119783182152159234315091049611683559233159949415341278199254695244047529069390989457868437559987489872284805511676028567974250905167991245797808760570126893339196058145238164054157297213032341330917172397891168640236257443714576364235111519268641419621775884593924752004572325249727625263288989296443055619861970339820887516285122073694106649348216119860977276383363521174898198238316540296597296989935766365875193710385693393828763451045885787997919973206829018161114169361616278538399270931400723163492409021271193527245130205178834206911557005635930381564472125189360678832766494133804026545033698082395841279757499013919113254565493057810410524920668164526038650448122642405169728839140501943666135901883290398995438239163986244853516305727243583937562780809086544491751995973520316629157833964033173131349235291891628874118529539179774451987031550742267895601259758140200455483597380704810016775003312604007467433177377702771895290197655567646670793684894756759768842451546499608406911286213715291737388513559196587659494200589494390407210163963950202782990253127879014488166908345452187263808076667292768831460596974598800735508511767924242675165705419147235504170154392359167686050564135819045298821851038463999672001148955885357972387194952161402741115216121109370548784937188300591433496914765923127791489145916830957045468113281293871012319629937617508004621363282462576397883540665579282967450772095842199175831383822381188689572392864230365426864361487066063825427645096161823458705729755083815459275579176897147769528649778871107479927571820069495174650034258077439676547615030400410857718600519746934913700316526814787826741437368181388098225892879556361573733830627167017404286886415007088421700073278989034402676400253481177393247964511835006456094902521588435665127380710356663519265927005289214033115632820283191385425373228598115782232513382926296083620910597295525670570433846463810242414798615890942197915563849215981818794074608522319196691359963324729768436612162199660895984517351805210187821343080693729844954644645761401536148544053972939149753555203449728407575341926100570875189938857049891442077568811273910555303530433579196627308126435726475984324178441891170548401678002690265354281141740562751267824602238849118187923457700534745821417796756685390225271534549371687768839435155964955280732677000100100309077741185111077761499761409825115112744073355333216940164685711177302128929191695705841127899737061473574372746833579694614424005094830063533250816235534318885222435026377357254992147831233792519652475886629580178875774109794328301364964006730369582409371862185209125665240401904315509163695354410263067691912649652763591760306172280726366395934238709350875897549662814991953836551369061457642845476378917931139180371049035053736811207295765008443262768087509228671974642636697106639189699173724358711341246002486319303014887873864625317325509467791586380176474508513108262000513970814235445537310210151489894756416505485694742389866947338487486242676406653967243525518147282347341785113727448157653056032202425362894292490920805342473874359313368600887987023583695439271481057753385422939116136979664193582700406941014468350856753752043845315586831131079418455109567254145001978982679783280899596486048082121430932984680694708514053110553779504240579810032990950334845459849617070760785017703514246786909521869416691521846314127727143095144559698410281391277620321922853247278218875184236137064314045498061440465920298182516579639092799757558405444494676607439863639932333882297887535480759692952171809689201259267372730939967310143020695812553543630248633476765025906880874289590056528759555682695652239669269075242115997034250383695822832240034711142610366221434094770294169581928042618751813356622143629817777398883648289950877404205779163148089147640182323828619277809091033861948629008279003489153252659090973253070731239467021511539665124072967952005914716982905141499172116400282690330172856769788572557048355279663603989326948137008955688370433312965731935091192984871070616717370320451243476013185756590882596858256538004995462445529549611199576355328678185110484583472391935289049048274926323454272414887256129814400871869932550505717432375136521261562669589446658731857068759530695848906782286558937033003109026238588703201801217858586186546532362104622041499472829574922820840232125855963679077229141181439871032390356462997088660998937240838533991644059423524419404044189190585529357926520526597548965682316464366314422508048273753841757423452729267371977462854967918523135704447981677618768874517543451407448875801765080447932540129794420339779138226819225247743877631133866580206882478345013010900972891210809178308416089700978691127170208967268108367826624081958354355915464217452764698102122595628239869465007560277804615380992988613169035991502413877978297017281237082145118122610473174451189110990481759554024268151884705411231260998839442432191610940834812910595950570661070390943396911520346625051479095444568805390358673784805475981421413701782868916596788146323052289847044126326407859034592318176947700991196899852525849321359983161193929669289740662028780607195532831876005804662541530250114429878113476966703239456844764678435673634126861863201171577226697264414473550704082757431662923561740279361494313290972771130658567056748192028311670788733944513712379459466550653929269111126133483407204663329883605688263881477350059468625203592989812044690017866025367388613783823760922628447241472289208493013535012185419542720421742095636705248383102012002554708297625586121584570571552521289364949488741420736763393538793050222876825515415129559793977942128661687829753395706291817165326159059228174475170298872243714298236439135034462485925233342000138507964147719875021975644477851353575983972631478857853499792183608138735925223141445304486005523254436126734143990486323084261840285419038891639174190897702518364722989392614476959560810672345962858786193523852234866340619470150908980829159812200517928432580861122750600352096200584926705827126840266341811999921541389758630090880926096429787114240301429617829187889030114577767215909522304535073266587590528117914614886110452364905586495771400072768822474440419875932779103806804184322033417351433284537179032130183770330317504311855703190955898419525915647134773866200037513562340164993580992843479202179471745833442833918900573640531890013286402577804438443820519151154266584054881247271559273132533115222103815222634223896668934957012405781424088886292288034274361156797220241337966712444206104629522595298622796347758071573282047918080416937759979778475564163740761665624704585748412268837385994448997453927283471329550654657872322629683451878674259441578415182778097696075131334075772570775306676347293335409381164860125467276073386201811626988210386716315052842112463992334812236525580861981277141069600303070775906088989484681616323346168442926186124949980851294831917096221689804320558113154666626653999654441736452026943333586845967011259890313217595085334331768721741249207502652233502919415084133907315059927884928926100514381676922921528352190550409865057314515162028812498435410566350964753476328919695237359247201504672832853230958849081833615150561658656049072256414429131586624447866739143343921276814237513833156245819231999692475898431119098372741855591340661912393674160760145963188379111392539660993178043953664583472525548386874215927495106661946834189687560830015802170920675606720539609707060944571446354155369216442097202053617993661601790121296815651714549959952264794547801362011677883961483699267708343525766380098522059873376095703749044688388174822171533247459635469950607407404537163384760107910452027230756764778616209639924153523910011098656843426070894971581172643581722807569692184352383132561992906825457301196765161819103606857854487821459522866685242368971350146734852339917977546054731888288390927937217403381869560688509277129412120263185716841975456278749235795656432650026782210245164568299911571208102842509156085733669315603341174413768317216672769884812631104219855679614361183617007413404855245627190534648254572927647548089486253092646508368498018335357246689453578847601538407785976831941566274224230747554831383037515639249709722026768527934590421581776651836138922335058554565681167137397585518706316373855727151305801348929345996352584743912778939101326429152666272829869519096882222854403230558233546389902794796617867784069411635376482922275368748304280375098101177109658384319965815120063556303674878786950504736379960014145478244271673809545784215552890102835685278070160433020398521642846036686935350946226543919960392511971019114653057019984807917203377979366017589824032101744463735012541102566877265641505739921540600727521366636082764154524288289859310953551929033779426475920222706941550635919194445229760801278177033158691325366428882419495685953412318015907002919570777222202929432510773462356736429810359969786757069074922271908441192091456952381781340439676736181618750895111185755164397450743693585351415193864543806612742053390981787002075274594271095723571849665100181476178417300084638671663248792713207723742641748070898209892931189780792507163595896814580175669900371891058195426113318498439747997487750771226146827213130831929724717629003100146452140810603751583419101128164431103614526850070944156157511292369203751774660919879837642671839336386082738352317862503154483479024648789967546843798906820200962365748958859389342987492125480458620235629474372218411053877512445835357143512251767878631647338886650119907312144741179988147143164610925163939369228197586558900096578473077397798502040292492789378991042963296181758435180878673928181779452799276823729278015779517680674035251353536882065038842273459843093536552327389550069315224451576100199437660547183824903385176919202692500551117333418041995453522720359581986553736965442857126176708463340112145260772036717438761928300246689416144349098921080455816805263203251079901198433352946279985591681626464074127256384715248942494424823293033647327690481733987974204647189580624792429557028847903903368014502373301791717761189761068381109351320882014092843105482047197551296144298958776913846179874861054185484844910080094214681427912776647477999793987995954360141301275718381360045695642412852444138583492331796270466227278581893014019290247658722945983400626122988148216983992591473803372509195912706479634969030483130624188024545723961955423576614941530669748004538108867672319559062935155106746074591589310972700145720842338174985619213642464733490809601185836247457388097566955187818361448964367594702174282669455103836872244425094951754202617148279278736277080769348984839404605648426317090663878851155460546401030049860936178482455867357732786800145205306617727460522052358389157466194893971502967787740433815251199128172281545859433651082979282021656330650001857243401730416422988741571248895181587307210563148408171792530936913142219878233248486268063792524165360213393944492712564999335631789833042405293155579904577210772728146290865194098677675474806757945906219086294200988175352378881356811084624873582170736433962838900907397058661854950707733944557753682006424368793168603284447564461514030888591728829244687927031213099628593762407340109302203784346192963314843401617133291181216826267024461763583371328457973741758775654191873273957109507788936895353881124612928656340206512849182567455364601320256669203826840283335210163656698288760971629754648175704608709440854724993748728719050727065462364894375775010302890420879120861189026416346484546569234241365767230331802900241094422720523420657862377367937817426165857811373249623598002933464858259552146577077479319863665027600705466468417501579918202273200456251019972619725486844513766590087774664479143945548571472803338807517991513550704598123036259423849344849235089689753521478444372593464047196272236139724822291491936573711319536130746078935063778993447791155097537960651310928867062245177497158167238731822126572624273097534774329213827648078697819723901555348813480931561508345974472127521478774387790493851265816375235240340619656294059002727717447669681264519340865418963454351620028668241248654643530472424922372150385249446140247737956014955630396696747686600757631334091144357321506764812267892827240251977301224705778715342161678341034668972557013051534883281942698393341520569165364364202170105990325428635614168039724656079928563177965200349138656372197045159709980218896590446967492281904731785539986297984311246714203880161095035415846028279102065098761416924439134332741404268697251222713431464423115763312609068088787113855523559449723383819846694601913245619192076703828956472644367368437577455110082954324944119377669898024584898420407410674084709445401747604298432599142006451756126136031564103419933846947523942180313613609973248792631784340439036710541686190510742372947650028623471839403430788801422090082683178867227463240915270903121026172616054259322672442007257717082717576163479878186896026669992854499477334275884987390623505545630723778832962174194409181510789592521906525859988511750263629529380906656319222674537363943528129796886693006065705511792332657509684240556990789282550287452324328356173655819774441331396016881218991094381096223278228221326149195647899709726655624903859629207098184640601719662024500197640961116997901443868189843109776701528854700661732055069756189587299821995807725380478907654909643001866298613335801627784896804442990356451718340471938912376993722825918217829391314438345512975770224547145144027606332018916587174194078728936102080897735267705203544263325073674885159808180589099712122877916344847282555302250460453782229501648922411786072301346834799995279601381717994862356849741913537160412764992007785883529512968026383340917248843065813232491330413964444872699193145289097814456823310604233532541821018636894870981274237014383633285809257402989256098073777587445317026137747753194598558951776877473562183793297146463057749202817697462389124676782180230910086656608242502824646140635927945724843461589314641172948222807244535213871322554549791888997544286485525614962489006457987015853954104705489568120607023314234276471542155665640693208854235863074800646047562289085294930150005466596441630674135862130461299502473930432243983835598004024267396796199638674803478596471834707220725868379826428812459001860885976214720146187483923645468804757057542475375249276340979752930255653653695503484880324103683557272818976492804773119358693241139750393378136911091660708877358440155082391388300740626389049808578806926544916486468992238515697227932100778553475475469886115995276597063995480538984815300321697473259821211494696021569484314045676153504506410251931927976267966250420970430260847390487516397396971609024216963644126370112569428442917727892892466444828045389002283190265479956237694188172003515441259794234884053301618221956909715098330104092238034193671725665436670105172037924619945493915115383576225482079037829075017237808402051049368309087868889643913955057182297122689333024553388603998357476426437540939361667506763040572466384656614286917716087667532195848578874306321429040772699541799422652255857099801017049725427818338366711365292513801597194825476004970991230656990363094855893525822094253921930462134112579737568021138539914417731330779742357346639282248017472055935234407203918420255280422007152361477951780285160188276418276875943414247854329877703217596995223804371649473509720287636222563340417801963242917707674682507821822130991639548670468362291596766500413558648498220182328747528456991416576741049446711373270723090412127654077313026715260006466163254693345697662345670587826409643471074858839592514072497287370665369510619430804885574671959436379425022634360681992140866194792737463357639886278006415832198695416892576275682621693990690660960275671163978041509516118817436896281390442332243038864599520058114918278031643326560787122742321578503647069724963945003082774461209761942501854112811550044679317738411384576652766393891370640176248227710327977957074131476269415599339315076218681620221947148995277643272185654617371457361617761741869145553712064371964974547340675222244905437089793276706319258245670654675197376433089571208602096672962486094405795111506647382956417541698061232183265551345437585927535255464730383870479784108409987971547423418280363982773012967228187755474222513524021139839108670516371001353077304097418574287174577640060379418155260943391388723221179041138658046973445808489034240588914784810345537764606800859455958182973161714452008609808352554300197589464269679956045790069753353215928281624554965933691970197979199229376831003649305106719335126277877450579948682075655458894658205602770915804568016340492375377734668453781518050664036660958960017954052197080973435017043420315412890766920945108264517374053982777896962912482287691549215172215556141635557480409528776088749122077448083164823117634802006199211315443644248977461606387968440844239305421725436151550255166240725442555814045561739033675078506986069351683902557054011367284682809336940802113058947764847309946974448536881694962237827169757108058098021072680447404066024294383491780658750546605186667608748760985470091875407125514174469941622077804655567492111722418914625962707944540696929547205521235388995030870244892166711470093002964118731085699330955320157927270471493003151073982502688644444043321665192297815465645825826845486962718078646713264581435443054820294962056059349909166966792392523839473767678792904994550003641984677376949680283396395798691529684579269188192350447210386330791954537979087926490198399965375087613133322692120027665748728003250691000561361338840171781318962611161141992792225073218386893117647477010071704344826873726992030367002256415464238801339021933937820021733452224042685824886349181703313614954704423871171466005474670412615605161871928665605847312109388067128722390912886161095592513637090227135994226738524899102675453935081754797632418381725622725377174340817640469112210687365660593369692635051922810539877250894201696148295974629383971389616707269084144624350197635313966631269157888915788805964418483109222662067221299195421908115157206871433432733856925197882819108486638232841374084944434218865259403158420237611690328055813246044627974964250797117139440637597038881792496529448706958866362878894173048852842400323818934377786080911955984793793003062211689516620817973773020196570397417265475282886292056810450260042553218741536845899986233060774689411217167273706909923218619790202412062642229233524903522943096389829589403098542521672088063836715796280068096002203414966896199311339917941660619763896763120059768791088108376670711402500342670572945860595464424534568166020453027930163414977274587349946682771453597265644684997391385917106607731120080018201171320643636583254659675826986639259555113041416784397943131683187236320260082764501579736343197055225277732478280477154676617648448262645296827339058997485902132226828630502265146953840793534087404128054202544761338009452112439805091243800076561046871363376111427710368699504999562974261920084393963052348309869189622152085388988511772611375279519624282432541047195830067858615200996699817237344305789632166296754871167324696561632910322329919194225842968424240210650447925423308083137530295417578932076187596597910971875917216554987276878100605650552084164567692801907991884396778285477005158016296110322888337523623126228192986321355969554667484011879348676278017409604774374528765765153371278777155911459141956179946588085158732612739808744360524835096377621430148864296968907827514573860170691844349761631349829955934988987100548900758532753406105572974683343467285588763124162337938439399249274028380891776711321877036973051273426965100161130167020127501511995887272734779582306186122651716106091065308378984831002429252840159639765419161277198334480430682208288479571110835518205996262138484449762379912843556959717897363307380924026297750134977863672349047567043092727446796027838184314140933314561824791404805525018850205210831538768289435571227973764674484971824893801430527610304061734051592786958358249091130716386681513807852607889646111312414269870220916169279522584944293994385535891401377747906226531124169055755972431363265928729486112578544793650094370164055517789152157430069900328976434826888690665762836248320370467818108873726112304210986554545408393640947669419787246210679410012745826403137892903197680656829774113088693513565216147296759611522455656550652980377744448901246159369447200982565965570406409173155245773510654397252222231124063646707746837698933796826305801333012350313224471655064462713272274016070943816307893596972245957158200288454643422532352204342923416389464406380494120282886637564844307554032867325973678666945197982708103020552759139927735512585191801467151668281756423645193002918396101364673649143707774939239862839266950577665420735102837106141567516854704664456217124626869543963206537236717094730265805065540829611782091670088895384173941788652628845619607177275455057411127897879652291906351431643624197281470766733925319235703973012500652433512486739112709416109960178035170186993350171984952104613697057401439801819739164033521351945265817781813474058722958691375612297916880900329169871088721795751795324485505615299410772367569295230545890654513746720468499822002455539060391075187882269937321826353912470724851834264262052804374650306057867933750235880312197569314061235878557269871308207559532964240492788203970351229865980342940840764550434305121044008341174018122926737185118133011269734754429561094670344320742638345575942162482188882199972372049281065173952100628661912606756355271971287863099501241390220031540443210484232651807507368661872293878619507316039852816035691826334578695028896695415779210872465924647693576513026994159112578964755141570979898216671287285673772393274889871613853280299757293225788841735901307934985340187717735508809485801221949912272371601202948787369125944568342879699568796536457523105996749424084379351484280503382523942817905121709131366400224414883118525882512791524753893665360418999026185917765542854485993798895084941006723903849905171581986398768020256856358384546972759663099039307774649547836628790695700703665214370495902381903495947420936723079367296932295918177809176435977036004131429877798586397434558486142122958851967733886550602588161847700018660676092466114322021576558626146429859597635071330410345656993836755597668901093191857993120253214092352877561108189422569100779269430199109945539725982106398498297773848723249930027285971207335537677521272967998250492877869641345408898881336368378806795863455936015987213880664900937854911245939234769824607497624793315528641108835661578632059692033932908782873247790373147122289207317493468457936035927948045511591932869250906268884962052051472902093791919923296536655934751772093676359267873972459284699149646107153835224265999225430465980821580477345703595649463239266258374085581836255830669929211622148924969916315103979339712077062865194189490614227754022963591474919209954591796930617119800967336860212505740186711413633314651945936736947976330209550562397781647838616192088644525088632418662858148570256070931435293229620180982059069573126810736520237276141408456005764520577775639357078669202452548255880287893625036445791044265041043178215219593352708645143735479987290167858908645371228799467973750726821863901969294350273491804497539098156817746705582623683295791627395453038718164542592157134521924428109105995512807903572120521972475593399793424526723596343139311712416990721297457172121335823240691657212407790020693520635801592280093453079613901350118574898541741894130507046210217834745482278424738808024192784372524683934383446453798520784540315122212216098535724243718004665692901487479579352498360874887247403909920284223772332467542146184235421988045358298870209505800316793753284994647247567525136877413532070512235732399259436523868680378452030297423213031989635776935410909730790776543688044059380661971210267425436599902793088205518118996780171043741624521689548362811072642013993578586499773558464726431657445231003735650944354497672329523849024721731759180140151120701925129649647568297323711207033532715089862269616097004319242848825694443790722801080804630851326308015556416154908143028377796150091819276081157990112911973950373483690966967949454510703723528719097658672972659195079680504083769416021725312756781309555189289753988122293459010366081832746097222637763951572834977011047673402025360969717939735734151666260216138013342162166000061601545961282743837035855950080245817718133490534167111052376019245795945544373691313081631400813934729069514554131289126599504532564931256491991815009286454299670377346367872685835904098713525342618031053502369051577602251229373875014644587557042867237116842625913138776178514253990596074680506662862272803556003242515198933505619803682985150329544312525350867891799612128654101566452509745265305342982661249818431701424801889285606814663235692517527704913429968717529549741528605868954333599117903998539648541374460203059379798903458935977736551762365839227792491358072346988430215793155264346032304415844203729250774850409389588931052518177779765099165516914293985194245330357010932187902705652242119209686966651280148641655918564864293360356927921312744945975557963541999094977748714281114568745348869824396751045702579266665833064245795943433874894814932868019321288052852272492520096701917178368482028230706215855863936003008036553845402530208100099252856510871088106383401488617993566418915797378727322544765216768083576703927842575632960716398731414620817445883168528811266091479996989076088639426871765523251839675731248871886150914792766153439165164654533931239377370204647174706297617057817654138672296103681335607090286019142368034160774004128740948004566265773630197928867768495571578554666093200064645851563480829994134388553505432023178529081256071801735117472240680846685599406448389204515707716404979697456907572448489907072052895034466914023118100336242372988496750516504935317990827984776435509226107885444627812993157754270873792157366671340157980640784883631186925160993548228458127047751161496767521075872592446167732884969051807455982234512733883270179210192955350747923332637252865315894514044606179685426020481139595205748554642908945888901062336949632329559012410950471735197205911498883993948227750381261061446830522381955358138984750642120926210215968133654604242827454549171093155011187300966128889251196340817470598708971881153732224466181350856446277081659145886928659606051067885853204440784124726687138229191617283393254995273348073457294869761304864182672648289017162828001029850252166371927348933240066426233311108500389483034064583939372773543967102381107405658931798351521104035776349746811350280953878565158189107206457387453176635422984137682838386934304181833351392141993634915031848134298075818544061500297468937912826931147625920996199918741267253713758076347214196001712428672041892923946445942843217065919901359077724720110224639772103772616316109153422193360647699292269535273473561158105799001583364495320941836656569469171556777877021193004277841252659498036915834722454337416231232523402327118200327010168658064197955187600103181744770918820664497723506833539564960043093410622369888385266353648650549547294868641962394045511471821607344492147133007519719341275284851192128865872570133204823224501746463955245224978616498811103280281773285982564539378204737887013633651640813285156982336489593628387960281464513285252124502885700221712146495633182390202182409305406140224452587291520293928885927996490593547823042475694418729495498036401029143711924814849473608095798507573023315153561254706948533346558979750530905761961874488545533461537138519215899088810299527586434640877359265041508764334609491785723078858523488904284789075062772983636836610357112015497192343864192105627385023641612477378227041964863877007815684568304586522783698275254666443165798689826861209483231376789695236832846943206299988899672921713065705747139304231771498774974409416416677150910168064088048371305320519745924081320577048690535964134984252392608798153130847539226866293763033140228515065669780852857490840779727195642211914629437718508263386513254439268605240989187862300384504078679348032360913801474658845474294226517556928426213871204547671205766286889438784266453889938361749606062097726759819390599508948775488476817949135451604671306905803492862310242711126466965683687464479186040360159458388257990932605508873748230618035338979021614989664519978873345049206335405331047043915000167578380513912524416446687266039852557040509537306950121845978019032703992330224953400184122769016900610557876119453134729862878412637698844215109791343983433179394545248663850401327417995306432582665963991370175996161427239077334329517424015447062341494277903106433471208301903414051632787559790749361179287284855855505849156814651687863765843948271528764688640054337966701482895414222303193336108613372070747250809175202901234549753963549830285329287312885334686111570725743552780975665012664028312907508988574448649109495917057476849200004409433851631601251525834717947601677391826882274114340007640002206082639495098269988447693157258127897429820571217489120451269938138563138966050795919878216125619880802528256226562102623954805182032631998734587534630811205912326750909215436801817026030735974744362108219234380081089309822488651288034174894866870524577443032340438665669469648631717441827717491299538335080406128604220796785543275725904687300970931474810705779755831877362558767456422207041823161420242331188107295014449277639427013759719663157439066213037255289568793456056114213621906793374184616208429173433930136980697620531161092645669815974865802797017986245543572860144472194056182930600449908146561912525110890476632897549195009990415917126413966495174282514239364906295099389359490746435983760981322404093178693656515847189891295610061056719095531391501325571636140381295717280510410440688353210722981091985196961368611655691811733623781116778219028227501519432712106469649839127937553309910031095768740284507371627610498956487803077796411960855169814093942129642687159870110337692964341603883950343294903208682007444737186511524253738298303367440304320023795567602410337807053852059015615316475057712001897990634132476661543862728437968445796675365397095913079689824464406654995283333802215312393644008458652881478232683071847631669916095861174847641984489638362904351647601304472199882153772213777594483392196845411550303510916656058983537471553365304484566950933970121358115544136120821732962423779101884924507338194049262307922877955858007764175730139129664131102106585977875028672827151061645085687291041976858657120994801507374362203459400826497137657819663827648498173118883723371428795682398380420969646242872071384560657214070252326156447510047093734352853599107499546798673277955009978068566060233200878769746954368568632875763408045230909437420091963067176160213161063195988648767216067074075733917247655107058283934798851023593759418902184846622457231269795175102969537183128838172128463011398568093954733096184994492702576096868280033621514032180861529968190405228321884346944965771110198534619677426180069069838350637623799099981189358190659022034040559260958999022805297052788715993919943826398364404185253082019121217705101385806970946455849468357884559947828158930743009476107237719432028411152562129571724353133754113534159375011969478338407660353514165378151155069239520950282111129616601569657174984663414095210628162080024238449721620113055888508864932350110249874340510484308447777476956076816378698408382288297768324661226117277388710369671761495408881691737896916733344470285304622016137043407710444750649495894528911441796038285153523726675361757041766218413245240482091244433650542818931785989752040938842276764004315476910680590197933298897222328203308803102735008552788759979478384770341236048279183159055136775394834894766428904693341774968186866014072649156513920035365187711753549574730057096677979666922475752652893295918149426281372916543918926211870666435213133686618170115767776706895793530892288747638950149131180747430020651450521053724360447820665514609957015562512217739812384454593206563477038586908494964540072985285128805596564910366561988632689233216782935120505073759844352991279316897489912533865834787685390832552033467475147980574830483596140441433408169983154793166228804409638396035581699245849605472757238200544281063890254823956553322231087509347046574017462528183646581543904756595986439219919200698535087802871507203383867264997397284291398574360244180026699442972882780451091137390209769111654054028272918586613219325595199863333509005322384599145309357876832066284661942654352395941617702660730478083409710220337632373784918172398833396802952020048940368165455667003193313922840970031993274937874184691318583255848772904571710362732748117377292066106048495451373555902775839715837800488436384633746414064047484954743500079040386637731470847849356895656824142318142967513033113373187471114066463758946422383910077074934313177562381165491821654272601234661787343407820127749434062941277885617114220355166061434630620881657329429309874187122848476974704470958531996195841527338600882327703687001648944988724810289592872034170657311181697555745543717674144562193800993572066144845752081911539064045310984300154343219942526188820393587078729263127515769595547058315622165882702390414602224216886301808738650178007989157736802717435026569952901974561545567775684292637810317050450820129007383803462186790362968021346962220267265617587541749444467411285406120909843888204891184135005472326278095237768238449374108894382424963012146176665213617164816980914438923181062640963586981366492781478996715969464183362511482264989934432077660426056089888749552616033477106292273728476670373925859928205022357160964147342854424026730546515241634870678513020114975046006934423719823010764482150953035824714749347943637188698390210296698083600117776496779509875986709816711977137607081971895377595812784767432036173584282699303881119734658321563191348425843892630396387435029726491007460031905341049377308138164468956890883594087710567368544060018249111683112015531293392978352994991298504804443888572555235112627945027684077288352759232647657644577040134969743229441464492893243579958373644372464182507690430949161628899368550622924976593295203313191116115397204764868573157255351560786803375495873217984579944867995222324165665954862288894661098772420813259908793536930313443434897795898843105242946200710392171855170090024530405089129007235123789105117671499013440694838798032388717524290637312030253025732090538214693116973967269396477984494184889508073082036091495177081439562865907190324138652077944954602928100371899347315027401332357935213682331950694235968518898703968557550520046702197315778893372614457402716591046291141912187738695691062656388684663185214341132883013959762712015733482420268483822407254169493273542496388510044823299301044658244294885624922403064348295011680377608583997112546650819369645717004461191061274450070901922022868708036907750344350866944095637440854124040561799184987276795320612659787019368278651874485674787162255841925185695779841364378701714823012671549384767716952071280103121607869296885990990501991462895320778173174785970081202821470405011163944796960258943566581876644732560370824806228292123118381387403536874090084060335690062722332521839623307341628314984013793284825083619850395057393560109035245635307577152692446310776625010156633601407904743900420019665969526247151905053315204001486206948531335718872017008360737980833525904583175576121641142725675632038160361982828833115258769220204406194592806092261199150472213494511828589552105525688048565327616289646843072408124191261478914193711623234943565327330655375148794208068189445394022844169426433320552099859568076849282590439476708750114939102378315300867463321253264759591873231225890992156453289034728609542271418781534964219901144139118119135233817353576366829560990954330909353713981294244473050214990728947568222377024080009621774672502614565957341851649159631721485990151586114526154558944054247843359126633983879817991392824762838400019697722826965699478014544471029612361977312455472190019485241734934174825002270086978929318723168724367855499034726547333849985415237427322721980419939687922546806363578762293654638002338169416710005884516795459123056931145619614743437128913350575638075353012310781440004636390521773534746854944006510001398900113400505251498540132462456841380281558811211787994495325098480216118604509275604011071593319867136949493751553708819261434772786506798809590414286564374147459100944774731626956886467017309909854257760400476858404767846190979947543035278283177738346241067933577780859725441684740654822024971933012650088828674056807909671272264376624551972554813802581012720895043425257292681562850239965132693648384645391405962997803731944922800605565550645559880086033221441685024499181523499974396547377995281213027106405754344426726326086555711631819003659238922248085337027054792140987433299264195927499020930309816843842790594790115048420706516335883554552682278460488906915540408380156869702205239066170425408772658302947016048874776710309419862426993911323957110573279917048846639046231505747782996321358866482006174736265849514859205171738870977636386840109321333205401920080328379568986210332875941717134694365549612865583415803235516605575153754071645428736771434491055179404577098997578521483519932939632681487378090376136540050775452858283261797627663121512190518164088262400598805321597116162705388918453166380209079981144224762469041205466013371929903545309424361897628642464732370171157481632227398484461488568183581250396939356300317903542339809842461351865168203577208173598011176630657475033160928307291741519608332416196448152621633085876836003781293369794845146246684885203989819263313979496451070506133965553667474734494898623499296460542005270996138764480145144967668718970194529452993284563603159227207766080901463415353170186824651004684138453006764068951783329223653734663140866436220999902683451733319110726039223778518251659368518603306473629277919292623536497308243400745703559821938876359752856381962499440327556048199632483183559086876861851853044782208134329203243743354105883646532425381119589126136842972478952718299222217544067421880367775116942100779403013279601208905307531933254869746286298470220642709918741657484163821761807052854673299958543324563272836479890244456439448891254210304758604373113093603981840857775530870200447909540344938316601222592791072390805052854878998921263221770504889105232859676534122997460331841052805413644807989013352356199416841022487041509399918306259409617692040745963907607646133248024116846521090548360028689295010786984794717742131016884206655946758684511547305549791347185904688567412830928271982148975396423859763720616388102466092893336743880488284640722479248364372132803012325112888912260211712266701470193524472953964070397167546182165772599552946061867228507014292344028550590869507241447446133115611911197910997816648861133803832655462641989159362924766844783128638183977732043481597300275256665342017157786758698419953139510952669061255148265902020784377211780174084201115250373778233154549840300602491975707820836354049438367536234924477217399142256432172508214158883995465888440740254035118443628341051881155891538821261109869318493395500989206863094252611332402987808375423440320888981433850263718404465174357047098592040724757116914335700200608577392634005373684434564903040335907970883428514357999092975343200581840748631105606591415372835232795410987014056078626611862186784840431679272024591771114335488762975219128734696748842241061601000908867331650694508217950921781043499472344367657783378758812060090994379583300162923060931153282502536425908740842225649155864702508335605924349851268511537010144270479856408918697904232224536770603020862012444204270337719254255403518826689632078628798952380349948313146052622548864756829277667974674086958073861431274655907953440438194743873257548342447571246343059073104708638090315600806246552836394852092763716386682469866736045401987145413933623865092901991621052857298741215536043632681574846135106029558500540295900323273618850511272439078045692675749830870817072248216533704889354547498568939993766456838000795855126541990943465372596163367739857220789296037810004708342729751719928687588208891265229054777386541355545244188966144955739454561392101960383706843138942708733202555325763539709880151676853203511469938438835849739849003546705961334061290429708801798084960496223055972238219237324641510282731715814084004459275877155862555836962716068413741385537547718902100580746120169464235661362442112141843036622283812161490129828292855227576432880100616171367859173700439528764814622335135457252469578943742672356684671061259782912835356097329495946945921890226065778626096896422280511938056674997914699917838560991482878770623208071596794081510538258720475904263425714796006417689326433602905225554037383858138883049836488715666151901964984463226322753424231144670293852059381571935711898229116716762846523224017092086097032892693101597382737186799039171543601358013766208530788996974248934014093187853332337842701065129064376554579756340951868947910799668916209530793494227951027044962116249137445257591987184914734363821208057315841785945680296728658136468771220224068677571927558045042796682593819607031386286496181445916795303158188649732706538901681912271015719199717581637220650277010093416012622442961504786605072189738027066124159835308091220121214893971307428129675263967449696945952073035557379994570123981174687768551986078907932062436259954450276123028023811426820777455195182964440315933609182441076848852557917592410877460907643680550157685991073761933785791354774770008357292270389954615120870138724792931986174944762470658369900719663726414197426545370594592663288613006941577367269687649035671342643048590260112578463518804292919282007941497304433235556656297234029374959725391425544062314638667952939895614015746700125909039994651039732614788454321572120862601261359751025435208259840696898058464985297790122977769451661710046543502165227325445333433057967792166985939393872798071670150158761484439675630682712005285379830793905272984058990573589875746044150691174828378209153521726883077019114698528367489599530952273681263463758654565299827027422028526986102997116273714438834479869612159609119937561186573238319347910638470331705587498445779555979131673073118158923852984124851974733339746567709701347460025798850000282626374102851234670224383054996521538530789417995036661579763248337372858938803402998158558446008658103251482280139298407388275354352336951255304459185357980039186618439256215259844794987311985874805574819970449265590271405683801953848095576744923049111874002811849595094523427857589721664668695776922548610977298205906565197762477700557251493950352178517927625831295838691647878850904408219651196207609228087755802448812078082601201543216438747027211162848135633748046005489237965742323086552465344856712278966081152039324180049818373501468034309617696574431979901297807134695943690549946373398578555301092481063971660828815932034824424038656157937003718336173232087275210744952490562596702823499907337224408297578353769697315286336078947196072640186197857781255398821895465991719800472984214468890762629611411253746696537879702976998096383474652412536780652938758722627068179680871883547982492988710208888124186837924808563643889329407444953665917491965066916100222929647288298459257084556547466331921474006198487807604437723848183411686657935162367283663434876985651193819401778442573589914155912929391372346955718019104213228686476654196371851714521089602167369254561005619882474329911971138397357323324327179718277377966658556877320611475081607232027202233843778500052891862439720081745300447340908370047913351088483693613213369796704816336219758651179436751730185746916487450704987697650109051042164211119334916373665176771776870468289053427596689698065306783918568975992477730427107222073839800952236971837727618360528961969751288997691060327024025023622708153623653704033200336954059514020066220372502395378083914122132635024855318831976033484879238345576117559775204652230608005520949722212378239125199792800740149466241471853969243931126700960377276963175758756290692113674370861474038149649192285384830290344465754166186582914080969645267625667380393968380783177733221391513931600601478445660062713361121723417323536318788254608738311902661532109702044527483715519028505038038560403127035669646608395833547788496939126228398269708786929630947555822545789095088351980735363339679739647113607246136266458269511623983861522443940870891720188277320601665382605931506329129394301434799570545327851393431942246847803104678660541878877800751515846048492668764072805970939750895888423656136057939403368582030605047575908190378579615878424035584264005113360776732810928975235706198095853562567852774493131664803724164989896732547865243350709415005570860731864502499672043546256170568047856619506997549411803203868225642440230615716294197593714880750267154482721424916327802921739986151210738928113140523810218976943542170923728315516915947774060667950112169571161392775234252636536900973605484275454267852473901981643045209574177789613699197677815444341554847777128618575190155724452724532883659583684536358179266873175025774169981264359845717319921218367533263908212566924476334573639650626035282033135056227641374802321107858620542857526514984336482192013229818642550695433926545950621873629938009788593605006011642402197481881286977591299571467447737293759311873416865901322952306396746103548648666231160980619700248095445895822461554084411902581593803470217985120923537255293571987518219127330262661342835169808939030078654901546178180528253503100165606072596335461524649058527607896182418425321081880720222339401780955074305181212000269344982915384180106921449371402540623184905707558644054581874623506414992972013379329051588807819069848245662164884840177399209535409525172203110664069187370595458064515370654116173361104610031591946288014677259317236070842642140326758937002655453899168194759603937883494459044608434086486097557317921012839289533520265195740572303680092873630733948807533970340266861110452583494789501429941870227419649255110388238724746571440780527168670765625333374182484796220335263569009994968025835215173531429048489280039725616090779029431758761277977930717537464345203941621989472944493145529333744521131665296277420277342952782326740976668712139773944695467213534142873540026215359971670459955152970593407152428220957402159802165745545275049929917631460471267851290441733967237676765405280915679522272383431483128686144535395870535401743019455162349194835174417832179064572834475768687362122490886206704801522738162627893769124558696235740730341655126113024740184508646710686145751246119010453235570287092105834841603852202081681523686681363907124270862733502727512586709157997562997711947504644765909427637096664468457155681078778904375717127427142787805144079289805727389039246986528055696165310388295380102266865860326947481979330505741316056126443731019207370113241936141441330011327876318542643077836695011933620691525872699665425126845837371395423271628727053165138774129606081518752998780785631355440123681595322048314157214358086735588331395935570732846049026689491566823340827232942604770102969192154867818208672848338028644530680854995706088806692338807462548125922652644085088058765922645986836146096791559325282904545860796824433502054941798191456290690824516009002393553591929955160249255564307006018151593230563179618758955518782658572379421541380600904983500867291769321921579943116634638683015604329644205041668360980586728296987391437966408167385459332671223253750987522643542285011365445763195481956307343229353560228352701020252549827420949868087959661326118919816160547721690396950885656719548958369365322624239473235359744448742573139454342886102820922748334687807352634341011739943620638974129463860128931813675300616647823561369270017170439395222880262203114591527674917745208984066989520626226973802775790382653866189159724945465543374015438050645159411233690941315977787013519266642006338704858797751862138231998201651756289281488032633337346039770693417509980754338240623439355774168588765441073509784303620693524767507061580609360392149325457886808276054831780051235757756084825726111461043118905940071151893975208735924876634530789874544918700165518090012706477990094855329592519274979854615347691568552384603279324662126494750021234308114159632004477184347517387458824587816978437111715944371258438235291423814335828880603306852433740958742595072521622520497793538942995709717247274255668347849054920221471710859470720578692936575920328265227935183352126092375494409751740305659779060493473091340609300422899378815964290552463694850231761914730030755936437814912964189890880718671835132096737239700036581572656168392892322065778148673527685840451936830056195905630345354518392324207937327226620875634766178169907010318711398990974166568873428882643569886273594440391679927219554563877403591767896776618788522524391287543745421875273919789062186040258864217720684650005689127896983011001693723271438556805126602307795989934006742011952385247443305255383243968131250789958134206071513608890268482816871165130842363989784390359643892643782882836891811348294366909412031017500529174985780357273940075414157747555047662500192219478777262442077424224510596186011801071782527686919096436700673457885863195039014154738625586624463197723544285792529033427710289346858832930822475070071267563268288829858370377736089911883907155602381974554283130942503954951469266702060338770109578901734737173166871932634015571037250637911267893245820186150728154560386121922523514904712916971232177722310201347088800684760119178667213936657454547060687382467639096029100625461046225713316287291826332675815874169699689550079957503639488862116181817270661301176146239322686085417637874509152197080457720697473514780182991736259718925675797168654230860967060054701923712543068575694151371404091974572024060407343043387129967795245994587180604169544662368087223049873665655207705193449984156737994034658315781395698349390425193557273624307177326642056490635374563755688068519779797459509979421381807559889530505710339406986219309711653912952547171162807903187587703895204435794911391963845997442027631941800014922537528256196486156426713518541431289944313917158859577614059727471143650027969681557034699419373842273060847006339317956598908091342391776326524244780974546591475042411837571916644829642773725408209203351484935482059188271104889928676309655543509031633969918962365976365533528926596024744250728625223644302595942611482538322613530409536551921672355500179333280731045979358301846120633698898967629952588524443726701639513110206670716514122150927998587487432995127330875059812142432785535683782660819990743136175796286996649755969266261623252398848691870637869912815673478531733910263280904243978098004721242788990807929284454215833032211834077748978739668626396519492169885730407356800998780522218591195802096544502856010699285275732237800910588968545109187315212621159250582646932250894847921419262797028164074552928908063880732699125570523584281183074830672263126757185171751938936213757753875418561514932478467639044255981642618055171199041151034196565506926890131432843086351998914339390407820979105982848882061314184446599200999699955246419502609791090355082523793606807135171085370926395501869021799222829270424454422332359204700733895841982277524488052468012029534278060530314897105563175086609006524474960178731826741446906795629332747066526929296481970869541024593658299945833873340535742999447295679143630390831142957134850851534799267116893016688085119732917250987104049596054607007473209263500544482498290937313981670183915647460257465490677598465186108614318803962038846827535778149372289656717789533469005845942112844862981265977399065835032823538417047376643680567153281252324356077635785817997985092670170237129749516275577238401876229631503963165417717531602616928819082187521170960698682077519336911016865473096492927117068125434212235179472241460514772610242098441478329538191488239167247687104166363387020143118680119234085897601687278255678581398041767326711756567836724601113909381889202315294694942882554163900997348972147873783417443403976277030495104396005695875847479106877484012250357502055522341662970585781141301915254752901091927202332763380778637482097506668440212586150257268315319075617055182827173501122296895169347130974767492427391879086671843427254394921134391470531231985570819394409449548502774726400636401253368095679777324131012292432167907457880973522022359190383013927241343078047712554972169649792253378999859619285634315958784215402076258201112588946532435586466346827441095467401842112483545820308562640124121198304944691651907056543690043576147696034149236234125538863473738655574338270606632542270738857763725408443069729809544126945592651289644228666597580915490375920945935943346530857898720468764014949528140901827459045816677509361465327231965099109338625386744332831404728551683229824010332230174659831711654523542945325567010958609786397079381361462158424298597491174441914038054794628508051042162878066948813254042650261925153085231421345266538360907900742775233983702267620568735044007781797547557085651306404751403730305915986562044400618136058136335353383028120380258174321457038907144849254857457979022824859826107759055120270452876773731719933968179680970259250035167762219830701413781002797182574034963190334037475134954249197057916431566262593490440022596475520856768949386998229897105821509173437092483493311226590120632760020574305650149056907340560482938229304222582151244508921761054375955040102530126354858601296965444147945974360174190752884349478873397950886425421276818100622872830242216764299158336544396712125765548912301852698803102502008770719168869650695421431206204995039737793662021835135412115703805008157514233767187473188677769643675480360897998813571825745901420879215521261915772824925743478524258700422203310864897336963350305832648872732523282711385125862823063672127650547533286429789902441489500711760249659671883768442420920742580729295139612542940857405144960872498227969397370327696374608741612975509283836397953221606226385027023301860559993362545194990709423513397952018865547202892436820980956008409678844684896061725806373700394555669423130209895727847873473497138794107465381277593383067105931293106127379979240201971004227462152544761160250642430992691191313038094493384062060212499330814622393514438104812898904684387623200054659781432367654733261199532437850510868443071079619276044585730833897631311717561515397101213779557996416158344659208011679563089859226870282085175935410356247413763733088111997480952497297005000180875744633847057644281800187901944269407608080886668687630330503620877785955893088923216472152474580511867697519353668743457959331696070598096232646815137874179391496246936458549670624036400760359533194960512826072760240649713274101681225807496958295035839840314016172870691709129076952983328107275705159161954499093649451237375890088403879989160422954581391304188952803113024091759063156329712399238476041320092749023028983610463219723353346631830013139055361091268347064270783092692914372026258804488661412700466903989623743717797821421970264739980961179142507191254067590985314500023124099987577756147363898960431033868878126708390660870425054520111130507739244960038111032464252409215271892352877732880620319318364684748266402940515569274242442951471008668610192011631958993846185391418603214114880784505278005464934435003669283130506501580708338362040899050872526582576986128544069029161125585255749469514819499550247925126447518681010594139127337904613672227215617837708089640098528429040537817854252827463905783229706927993745327583409362537795901340041520214246866493046357825125188341453809059632197413446979490348526530492924283656730568050514473373716993203127681116001653235379245987730036158457351410707338968484304528170079371346980425469055131460230315309122228260399635031397111035244737067925654996893003311879895392798257528895429724676546621671094546877530795005779170313931271166674724656855141922535318444744739917891169376305853974207953229226488802492555664069328230535300747590466034232885949770945384297716871363331452043007406386843346961020741135600600686107523556622664738819079393277737137222723713726492320526529664372649181094396560867630081193684193028883010952615624547989454545333377160722900978126750090004504550880557614376930422728693364408037547207475327875418447916048775140684468187980938012596618890203301915305567422550226334154269280281287319361520742920946021989390919254002757299738006697445131630718805266181717711781305720397824581846211760046748212066840479454085484747306006786338103514506297081251652389361698899098237903086535940086930224721491785891946696492939237931776461346113937863707740626221336735445973593246072836309110289602950851772541567896678756349536566083315934886463991435226464135198807318294935257298314742442001511559767984340145475021267856639152281601596190162809252907959565395388534934747040766563175189030866529574176358065217851757415510492382159609374509172240449576874493252924865887617129037204734186527528739707976434846448595160305431276269436969567611067470147595632760998150893065817230861049923089883102219443283547263104729184735644882688395660733826748770399665542975627968543196316180350276293090517842487466862497207099375249555342894013229943393301438229141334000153473599260733798934763347239869997809676342215305429579409783468112889874014014395682834098151545696302204772774877771548979405749330282703113054645170514844853660113803949797993149367309687150070488579862508812891634978021926856182017696683719673345811576197243223337241455259682500709149077511553165943002660173289335771701415651911623078991218202766615661541784220786462257253730944586983879760673686794119954989456513931487319574782544403925036263212021379559460020761912879862550737140377065109440859829859582241732807726818664486018410455197403411602485538616309265831675701864047649934982640826908180355364833938853212441942527868013748726157050013443099076381970239907277272156632776510449701191923916159023963187507282105951988100352011737960503021589969790806098624480362518400059386019444623474439180915916510745835612282184116725430282715110613961329944519557769689550892664284462516057090320365565358067437741086866228547756703773726001906793231259294559888254672576117445160444792903245713595271807735849323974917658604604820673504270724974976240965157303205237742813922667675266300631091071764513380145948559120532569495730106705086251726531754330280308693059477653721796584148658058807132813438790738775330633587363075471050903285958297540825266727423510870086420284978925410318352590606316125521333710833633781982911576964724326550365776657455317167551775246084829754598706519395213357501673904017592022927036174958832749112638733742376593875209344403758028811555595194088365542884900713842038340703592439493884456766105451028936816114839542242034126721699015853870661533042743750895510257217379030170232994800279743726424027507505109896245665503759829127401324572976808875662756556505607272433844493778424360125273123057671564464297435873294166316382201991143325079593197709155786796990078771852783414675459733513368157567192471041841293107246556914326049497136346840185736993598754828340437646067488335179466780696169312159811089520576644938328159147711788367063886549302092007832238554361266948181595770823689380436116984612648545017277351884270309739956731903071956494655753600545566505964515407556586123826007612235606042773462456649164250507022059527803930403478127863168883773167906029121827249485270105081066068806358950481898681603337964777776021046764548324590350403473912014408253972361189992547942498845540868480463842922380633624939776417740638808079738666518318443167689243000028798798667179109125856087356645172926497288393598003571046660865042403576704786456345487231661212690824227484965830424426601063285289331918087488917822454205957495310599499234832667807702330861886435583463797885657095669067032914567558580832090260085661404272753632710908802103025122982059917277665321414902822221074736339331488370576843386209408595603578271962171874099869329674302300339987861090439049769714835561900036615512266535293658814905583110000993844905011928276086049306474621011782673686026977169005978520987556199065965520596107754901120863414821565634411032768632991222333358831610179984515197235936706751066544909366946721176341627893033174413228672726156341754759328308825655646463790678145428128733209536258166799815086910135493925686343617472686658202975624060471913521213904891446983289054224855095513829930255749873102273943610331496313431396310162603080209736055147720252025491200090122571343420208354325052088564224829510765746978866134776327439602453916198020478327528329274861184270893807377224959956901503438843527845792540930434145390420202696908802317410251819819634944616786338597073332150412487873250615784184180904006127850782808153015287653042261127934394217052662602115190398156621551981515870186688914649219409627126502850630538592778150958170862743612644780313712896403061536248140848035154939686557680959134192667246058399695024788085825396189770418040209181217362860615716146948641050219230887833809720244718612832958825407686950213045826707858385488636039650693967139478480974084356869836349540012533552311468523071541286898360681907683030951384048983689883702635951293908096815022468573763281067981329709545607849055025479430970574947491475044431267430650502628065814774070801536459780505295384711211280577373108723384091007770346056899565771792019138238855054560101427245105095982710355674372229039746731783060016415974976792729197737801828849067781631563715415259649424656878014178327185429432280313965757981865807413163432265513713300667583501921689794143221312840458645282727502810410487682651524254309119050953005670980752923258708671607359274782638062180813057036769828607305841669636310880511413572304339866716439712354932216873010673983823572429466024251641331454423437826061316183038729086595131897610156826530883666573462453629855455575128796445123205025664587287345759525832615161932713333893406489856859824138588267185999281590114220652989115218998788808357625695429136826739372926195141809938875872142571338870303516279046576375749477542014957010930030399572284423528167095294908596814644241648455263006102329927641801094241091127046003398791157407891548383989092280606715680436976645631307971708372253353963787904144768323889162315631459104752675346133707500330962129786506766580277309610277117895598722156447168898243922404967589626978113513739369818301626895813625688667930744346564942970597660087093300189990699056275378088864676108748375386113548992481458355271134305039543716503217114831675363339691149958997137036535296801461057568328465705225509924120606929600157178826603029137408755678200676406061388092420707047012216781530384710529827477125994559118917069412394033723293956563643301987095306121118894947772215341524821785161603622592503871089770396410624260803189082977476530351189624235471375076956904380720822259013666719536932779370018452234320021386750569100748154423521268786395101764756901101945110864728436881189157920849053346180715843381973113688323242645004517728528966315249164948136847979619715542476330896407892608123082899292123969691645788622948673009656061157036271701807002588318825015064808573946374018229139994378223564542757297266374266439650641281045402875890678650625093687615938559376596869320729429249544014044696047186598681662651573570928950187467043951358766287359513224728982459740898246427762696443360994580531977421863758065767301880319256887484466101629362434287624664665155557469673588853153006560247265445340505981909434370758130409901693341615716064721221565437170470240975863736025319010088276977293307765710633692483257353937215288186126951775877213440996461403291010322530988391944209277589287667768868773919081097633082876239421714410619813074638965968041982660168132555207914301744059828862023042810846667375477969230623195288121742627623586903873797875426761009047793337294374611907858257411093713383793072791155151770622676858448227002296198124108725704028270538640458440480090615203550992260511871203424308075408903358931425663283657296817271049625367487101448036546230733493961670237015813799341714437449006225826855845060587250120750821466613652141316226959848600692707493974344428660208881472480803272780340267813155000877822118935689528054872625562118742825393359549971933705133053841790795190603021420853289995579369934173917615168286672772238477165365041622192074677742391767316155522218565941963796744090347454687426336838566032290196775562210391708902346054605853699407296309681589871985712583668205348687111074689352001163060852674972267156804080515891292918519081063752023958100952863048365179377798247914609273772159954808681042326486337266491525531761837440912794808411705909114499552532140379123971230766630181285798792406298162313299222696831582015710574811232775406234739043177363638785300724914811257600702437626392649782559994250444994282452389652475359445269225099984395551166910505466362258057914674685782346531077737196289036470529364806596621388701160901588138414527537957779909317616846989584204678918858423162802657726683455796693540368092183326611383764526165198803979810587120386606492563893843532567617579092741355835658257667575947472154652279444106340438614258707237656148146235814403916182592417358908839864442896889035457133254252650158239512107351200137945432932392712663918370607385434722705458677576548749680469398579652381492036500670779505689047631421407115056744052253689696627805439953269804191102150899279299208957545625847945935618941299105420115585573549403168132274426834620237650271719004777067154260520393809424207249319703005811246012087630789848607341428218436274130418219794461483906041100639304635476481918282407216733734042690805970463739370570320482938039686328122025429849640767896373312567235541389379751560707183170964711313954363132681399640371643818030716989506854462019644470599412237542264498754233792029196231406108975649883670698896687395573588116674929503340349696484626008045431216886989561900682012552202839325645146905585914854601698946025696971488728668611230602160350464982610698598680328219876977721585472642469542767665310127551665667795161488618839640925695588510806910677439933446633711757501783665124172479772321983549115592865743525177979044626359376944616503200230412433092604879792135827989250948545197551478490048190645421114661761581086273861367489022881253167305678450831104747232815830160428172445416739851128985637153418399384084693156216985171284574145014741558784688498242885329587459881014777335642329650982458991139934283210121295447455657930680754932502606446425896700378765527739370765572300967585392877425207348884654465789733959152129980827941334321298048616449963428813337722667852459166389878540105493258371596016395556818003260103895456321321002634966528022837352070460312824265802347558761546869747175364229432230564141635306660204076572898551602710015870506720087132181341319254310091465847568471494225785480679432555775989394314281303233325411604168422213912586972596472896463491785111234711090413844491927529440739587447284121934074533410186341842386664480468063314772076422288294661700818796465950889899592754791277794884736280918117083615785141086349266955104138181908142331042138798698364060708477144617197261822307094152327459345466247281799910532959376954233624974342183898291827574094410964801012944877962872690329181816238397918718048492333178315778001284479954404494525166574616280663026978406287397777209407823914923902994282457879657888172653356550586685070697199655953504218074374764225662604247725255878699360804078177970676819863627371134996185585233822173324039438334671591425166590642658618929815796048621743697365383251469422863144017017189384370344435020164155957721864435587262987849367769280887214404792001531025290275839251110992332116150865059614945849771667102347127359429348012008093765922256882957010214041969303028103452389779536459623607644758956705153111121471043773040324047992453156861429051074721757847455491899590483645815554891930677610918254827272536636901423482428358964550251148171149791786557057910573551776749948094648788350192065135048686692267391387461851793120659471529600743790509304945895667858344892841987337717990818261317424084027712091017211252044722461068655731030420949621134732368511191849735893576682530453523369181761584615569256133021329172163142794505767213233169427421871388074565575268737624018687516539177529376461906391172703778091904425832878950758869444864789735527295736858924072786250754719383478126370670944914541937912279898174418019179089498963049286708642356812554283955211178217632803675441069482072096846151400452423436051918897907645726127753631002055642373572590913967663756282651230931651074680219057959211787510817886068119130479973695532720404666127717844881753636359695125386559017282934196773205687458964211309973185750429468132713649378139576605325489539629365021273373397865514333567877439329519572909375684735714670680698165469702543536703146425195351791304597552512537881228229040089391943212207839511338564095446048686460267351181775592285203639505141262421652266240821441516649973362344632912917565316313107137815871918066983869052391299697008298231066813377567718282327505869522071810387724673762062974341201025159483430349113425470980986758058810110584951056424415860359732737031393681351154205709851161832570418798795189229703242998955207665186242267205808251334448898792173493331504947672486919880086074700662733943972561194480161885307870031965879580363466633569503144040889054525172852234298749269932736539182636032628753815125814068172550027029396139480358576608596080342907318200719662858210897714753788259076287313646891338125532697887289303001587823059821042212289017431603253661329182637848616354316201340099464734056471171811555579808065951367041650085677440752779679129617703426651137052697942097361839034666378905254749699209325019116205631984538739895951959662941845858267227028716474965605096196067857898292503904067843588374968291141477460200358410549910047926786895971581240012938488670670769805403378904696172197234410514997520738090020131613792883277394508734392535892694861184124215292483403458488756247564250678378408901985704961786427164883540345396821826893465235282181660613609081023272879929528215408526277236494187490646022016262614678241742978677972710580758395110881312315590249045631981771318092293044943720654664301918488475285714370484877820821670769248866574273977521332942403443092379057495647733664011371151160028004344612576635231956948235293872885476531591001797883501750065842281377190518180276777730547391285920419591487386288089932629308238010582616092106567796687037751684765030536960690918774152146543542928547944500163959651884632392420529319321666254809696598410344595166635313545282248132316247070565972671786999549413493899898641429914698602939781983416614665435812294723307971913031724774419635911491531838385166433288741952175429762446561090575455721827476161249932761052423321324726202483269454377861444842009820545767091136140205235199164671758275041022651934997376655736146186408055008476905372178385579031422500828327977762942379259406365387117692581788980124375760470445470206604265891686267338737768080548310376040665698506148885948743912390847198481141214612452659730305092842919712156818031017025432654698420695094886918209652243244559303222789694005818722586116135780405889730180661739391208103909920669504081983348359572361838747067533605123263668775724581030092970503163974927014851330236848785222149210310243620288327695793397295986338873863092404014657711150987935502077175528560940320580646581047428173220122226982107084089898935195516139563126159544704315338068176437679531693378473985492237521663167875274083153881588814423584243319955271693584932965204017018422980232010671801790738366038685762896672100249323543458736190845639844038495203669453628262301026962765017899841843022531931584489866524204910527595375078132876244454652673462439975860070130692808753793453150497597929715107983894178782720364165691723294021976569514243396288122482121225151251432689754776813783464303386962957147887443951756717703955363402068114356732289299760504911298238307699781700649219824536601312002302346281830519555305951270564013312134097286391741504146872952940823995996535137837227872227638141758794092971219740947450545570675619339180132372901326326074921505552949399677330411975498969884463178519880872724526159475722681687683164226710556272362407687030363709961053193054886148698960180981041241973247707595293235249433201157880875967735983011549155772257145592875276169905268919226633167937236094908361556328875753171561914717849636480467661998033417217814321799957714603919353993714536038707032637751343666722253685755339037275541292511369044416144034609775795423694302091822810346963531619261346576272236172696192023350077431487171701843503553802836700924240544676362300753762033284123850140688936331109276984405939100585767419225128396081179841275324806111661004105739477113831209396748664404862484770812601961510151931238296778587816571857435923129693524908509703491961650804973471770993132863608700533664111331777346990093573074637595669397618598744932128880264317770460721976390795220400858666766690115645881782284674768591295358075669961306009892654820967619874863575677900125528738461814702895976310839415124194819203545213352706625651017223692077013499141494298426079979601037858166711698943272880430761887321554144873680766842298419984496500549653162604448300802371559964691695775727078854027382148974921845823936737830850099842971266255067605059975013272008999486620839302784184084496082446001275773060196636722095248934971201254515825894073751022215029911782148704056567492561644515530031862188354174568280643701118795604316806989592501520512994965026515088731195072849662311954304811653874208531273780032466608126421923921835609332429218874929748785350247026157231446867160830628600808166331344080281147374806911828833937636854685296393721748069818595425127624867341656499683852573735479644099540852466639729888805013074647478456737951424696192734041792573814311690699747237691141807242196485322812421735156361444692290383156160795819062570829518071853925342707979570151186390832067929492816191409120533637470471344179573430631898510656915362252331016143480001567947028844293586470283015539308032328144710459768638183231536001241652917613207257487179812583683048190101712943764553993787950108535277212523436263839339126114430611382209024688311436000341167677704326485653527851004810176651940450116171283123331133791406017650577000923435073441727626043678258117384417629363477643696857382210250048931198952495177849564689180916182616091684123839683708934495488269164321014493170165486540545535017399741820992294839189514022606665482848280315056630954495122268843287238556884127266401106012034141586139618135396062471088068103981543482076094345934240585275207245913120235229954467107072791110806231316054764314863099445792678002921411548137516701534965910811128121763994413842797137380285017441162635889561122508889546011819891367283653881123066972671524680236356348793475757937634792196464166970181792765117803421839443357413907472325625801553402611514606915920873067105224387348440260977757700348874348665957843256760693518979130152010214098510886017276508134579039996823476534151222451305115181360351518350239225852025637095486904015918121686593955106514328396423163306953116923017292248054027296784495110103369936390736281494606645551436908365576338711270601036747729029698424732490464164347324365602646115304586430477805709958608599150063123628488752375854123720158671077703413840615341859456509485274910336395829553361044577684659878462004657900032416801460777042819489733362455047114450312623714487966758311642015594704553354953909826770498270330404527183754838123456382022534771564890811922413520685716017257228519641156940762098648418536113131222656995421994677839124084657919173253022938553086846659934678501682976272604522145671670902008807532138575657361998561671896077830408691821452336828174415843340524696941956468664031255231636193216710472106180635418331874389883928151801519215580069866334082102943177169345011043203623954379031720071211717229792221599612294879606007876573743295258387843202707156124331956096534138492023679520368887358259413235031151303381516743472647381888889019388180338669389957495752003275505480186273439615076610292231452232038856802830914119792143361384187798847053556450487580096690027500537433964946307417066893815897600680425037989545860971572619185733631156888258799552751274400329590021402382017987926990514687496158933614145785966838916324409212297780901922948286444869906968501466804681361908839258712465850873203542667295478263494977853624366935560779385274516195824968470793630117010507080362794168376946061697535684874968588800102730017061282465557919724014624172634211243167021981379786931101061725838019335271373200894786517181484491643850434920465698215955780111645492445419700926723715760447572240826743625753570823918265450777527288527919998426555142884502978423441970256170351070125764974732549802561972534605575991382176107458472539160861594053171202073617367251478747770671869523960794035360193617215712241836585891731449509328918223499948776622323115377105540004543849622401774389489164603311574173109259348235110150753029030421487083757269666131982616362837668112978658767896450553138027917388476703133502800318894693806668448139599892950795711135994652566324742954614661889174248015905942338745390289811566533117117294292522380114480884360222998097757698737766274822263842743507810062725407025171194690970917827815910084724738016507935882180103389830868029974481595575166801600774108822091724369161598648867504773672472777073603263261957723850721781295503235839640501906831366544238666595691576601174864851929810682825439452325960036041559504447892285264292819987788049373759537140710139634660705175136726019216398504619130431532700784412456422273452399188038159559418815081898004584819657071130834847157672137057743170360415894933667131031592654913243543154463062275666453742031269724842928739449365118847022506570705657106305091291264107166642358594007182700456621586835339668968225328656674499193473804725968067916673966858823593282180012538017055916932645453303599914755879070781008308348648903218496378932755663499824281600045682136590512227205972276966975145097256272892040612051614673171118148455707013015608766722736669853350692906468382032542242590365108316130854981742190846322781400162916959583233184602911399770778566348862734701966088044342283734200810680910063453017723889861310000768585336026745810549218248585788510923289906209547923204579856670314477949123823161047450937169328892776859947395233263980897070188412770249806411377541881119674254292679896875671572755676450177175149165695726495433042975992018243997460862625385583229517297799723842899516451504580198266315180868023215743111718518568634594573223231188480388842472480354927925167826458577654089597551720594324314512004038470310087080517044598429207738401119739142786021974926724491868349052284429543770686529414300841168988309261370262548064776534080828648791611710443421804125046135563955810898494165087904231191528540939618182718808986264005101081013588991792138838242129518080275391982045178974685880693461283790639275741066930964532955129825252779461264450108672097844653484661934797510076259416410027753990716487579238960710643175172015144651137143901848660190870801910183608795723839788334976765188261547736003268723445848351381659690948945437802000087043667621896156328176108695180821026183432958088077500672838498546787400516645877985079063173193816012840120998538066709527239407049411219529923216979843393359262940203477124308622608836198446055988531947127310159448579360164864697042171817119555130657267087868429691308698009908162580984913362389370999958896266184074980514887894643267974310127098667547180332646280176986951360360221521914819325312023657397776851231668060470533285400051731626906466692106375001832993514874938346773776024563328215793322889226776389968548308460475004320019106180469161357116601396612910916303383220228060669818614357763763145716532603994314007702673404658570874805331460053952066429456819690486779742423553153480180635581160517674321407114460621805254221719667994557646727603220606024614600008545086504779335407339182324321649899325335688545201728638386629641002031979994801370552934841951198578564603699086349227889134359811103547438182081579004335496978557586304534302650473054664886845199275829335341015113616370886155320647669683588545800146883858730249792950027800323360555954921737239956629744336243087316209420373126975269410608496242759102744339801008573060348353582885217496766638383651710975210967925192234355773073310638665030487195457924897529421866007076656958044483384374839275080057827639396385229224121239734565009962192651975170148437476484481389269387318738706251887724525196486801505218791043818249055041464429800690331695828412474678932622394727806909169241834138064411562265323494503940792900861144498062421477324980045344166581141231575114361447615933042121436413553971444200812201988780383299488442593957026140806767540601848546759615318573256861275242682500003801790517236740577548701797027804131591340584977872288422263367737718176035016442736544993001869540329604875198807301330307643151238160687420122356444195675103684408662452198450232386116593545654462983092704499289619668058107648804233503459913452004121809366025829460752283950501674985616815915044215833528032591164489692605123377603388877828016661752563120077512438863357149096544012283156524973345807613890863136968458060844982513911342819307295022430456413242338533727552532324437872257867800825884659412145178363033424838667163859692084734736857461884407207134875901327020531009135592215801332715627961211385663583944959471905848023961366017126746903545242271954787292160337268029137986785546501945823036437595097194116846603087146654887254641577451019280611336722168311250701251550767513151260505953468112822605554684368775701880452912929130242746185553819493950230262231184816293460945295897323617202192138791894192595062308420781923726067300860780777464834802068343381321966895115673698777584279822785553613649499272332162493248035369258519693453177237369043478563698489183602543115496902455310382883668305269940279024358432491515594466700472112934572178775382202892809785969651785425205815977423705549305461412690719684645321269881448928334121150903307730219533399853670643311905153095025898816226180904671850017970177003481660893336788841866332524760339526250964366059461900432645913212620518870348064946852948023103140352187412572158736428553546264640107802905997013610990980435568267073669853825267731468460689562524042819908811121327826775222567167992656508635416068287876464043688272053912265131575465505176603222487129056613788284559764170091464004946123407777198354832357263852099259514737521157326815778361604451481066479622076924450392313246644961866131015949020564113248587150719195515731710499220987723121814251621316419780864237618835043211813486087007647267774398479011932203655884492103408895235812719652016564939226728514069368847860176200125110745337834646040074216055277537894907352613877021727544296939413138995283323067378640175193237252961117844671641856096899537540385921477512851111978739247173546083532372122533335637066802675856298870441287471420048843069001585991322676780825129998121340468260039920364793804335000270361391660995681595874274489974823958897002126742267534889849435673222876530437221039246004979618400463560022012225043745607519048315776188514848337068267494624751969953934362505341609866398998234140001734202016451222926632740477262563330293892607557923869120866560299992590898755557766710836341528764839174137605992221461726649995891135675943737480560640405513199562866035066209380662584417393413767999773505595496362721277556725651938636564390213839684807221837499758372003870605748943265394962894375851408427103019014183255908036900567680454881241442200804848503989831316206915725443801666701961283403516212519395664024777832295843939636879906842815000143681248568381401531268672493613603208319838485256604326941942190468888855704911562394670404581501255908654452000138170634257333975961274262211856780824910398650989345152794869554729864382522466612101580117702071180210401901567624541656022656789849794716071576427026978396358346435114861206854923824167797611344285019443433040555155196292008579064516870953854961763762008336264780360312961136838549007686671709872478208715672551526406207958146708223046841683762869087660025197534534451484061755285776027278113024948896249722801584635602884809483450289202907505808457627496733935126388046428829217256649309689513728517325887806248610977215246516616853772978029390151050254702796805469026835794713087278434212785669982448708327056691499553630666668353545057327528787154597582241961227448627648255541940054165586875273459172372398133008602717654968100700339975227948178146858912715682552274380750567895344277325187565047188975921671987965280850275833480936774501773048048390837323039012205402967693614944227142617481555368706524426347324360496852021121470724518064688868058899696422896857962817361781463688692435106586231456006732715765900345524155132404287981544643840006197950770852426615113567867570079734882893157324243619122250521903266546423844142559288982994509546338111528876487415554223967771512406071674755035293964824605413822998447336498690234636224901101229585991125121662912205605733701939871750553989320863767759133849427753964265388025289311227846010078650195221252750265284588512362774410762268007029786692486116553861386941316496323173527679444139821854239451478454151954384115460493451133190195793408543718680809938271274947626888114811508323525790586993771907376970465999794156876073700233860748903153592996405375039946567812933789491634772935859447851598658701775042937281031944611695446145550379577419962617599792914727813035737503920777715134899195025930256094966866315100140926602077769271462872016449015416833947836675886221289582666312793763642441690065518068587134135541973787441775394239936254696026257718310788151757957495921700672199122711500328413433190572876649202205292939737360003557591413976249635758150803590582743934887749820843999323411521519177578192630996774856429806773042907268892401892677365489637625505688040129831363829077904072009863207423761668123869505934275513314373042644650443123483991262257886963444569564697268773366396111675392021059063062175942922517544018293648952158840445437583796098545654028063158322149160741066924790514941394279045598750142226074969520922415073902432097063162253782671469065501142039011551571187351655677533919668292853112117827046916155834107309016949551675867235500918844333994456149343259063966887527639915000868364350634665576655096977687272192184786858321546358442585947262165015725908861165953311308047759070852538835184812577824717094881406971703706156302535946840211180339980152583085749943716212700570357586850372436180534898894646416277574186353836619749038921600271518084783382056125536784652777255725949674017952339024727945410405888042683158466374533128101277473795262450614493646899836970027036933901052757688088814329165701310819454490184316769006825707369726434620134611060380301384411730122276854962452862441465263142980164516877949982234620128064208022792304019586092988454905043792565571933179021497330236808896979247730348517921625371991665051168193111461423868883423549818403077059739245938761039246486159282768798519165854221423376394338722390007505610890590324359390982782634435573305433775451382011853021572925683663347774295257352790853431443701967907082467207660123893874846147480221523201529191317579693289543091299984356902338828756863366970606007265277501619689284427603325945238741572791725617557685649126780563345693873474729258778579977999251078644354014519949086432848602493518671641588080448827006499439600695258862113298713051335061365491419257012291337460704050277981132496130172120579031602839452207596637660545496461205826018193717427248772524003207210215384441043258823735996053724584181302010889055551453557959137472713552124518750430163774943297810455154792296300069485226034343916276901936432521226079313889993942809310652682822103896231345357364708249843795393355139771819949656958338738284554044727912101492890644693032498558114280826468451828972677715586774156045339820347194262408997600337529136814143223551225105280105949593561473233722125951653587212653877453693230433454827425581673611099467422946524224811834517662075179311043519790204952345997843348113094830205291327792707370651650001903308265301282036819031388419999609273552321136237326777088430113260269687522704039117282122130842371573053638353037307553936878561755717522085060214721866658153486901571038459011521143441644275024557633712591145224686795195610350317589629303050154579824779906125710458765271200330654708149776370697225958365404554610833644444314095475227841773976635645688994638680729919629922490081366869727311561894603599181706965735911480159629706334955700588781778978302504503732059964352669093986877925720398442599486874108668965621042666027883919209070148570961893187864907278197600215718045898605496969403076293631090737278744188356222286102174130942959818670171308635260942848557886926318164025736737728528803341562454923204386656383119919079355894395523468462396462786916400853599820172504382457810183529342035809020615698625656463936076643984262937936032291066310675986000394753749431262032457096257664601737959444224471664692744905059982611309658519919301109851952303597173005101489586249008309151756092103417461232272422938871437911601805132592507662191418379276104765510537863891953247709241277659984315706941171009027062731876884317175283291883214976080780796403453180337222463379440213311351446102942089967181173477991468024365616273074011373512984874243711253805795885116873401053901442646526332889219309472132510161981581009153447664895335299014330670743217053472639302662478882105321030124418182393449655686200745262727107715657374200884884150743126635295011018033624462403550861036391142527487748247902457193648824986332500374991095291936325790162647859702508955291976979839082773822005505327786510918636912466365908155085894991646331949505403067640116427465936060822934428510415148112390848437325343963467469609990172671171989577596633163656932113362770820707792895578084546891249507294179164085107930577353414307857396333803076706304766624059535452872441402790633273235302889595656904811731739469683857386815071915482516704990462264545760374614998185677942840785132424667462495482586030575613409131933487654858607772636540158705669436592068308482471201710784786216103746661300130250379066129848439387836189953323697707614044074451725538841882635666201932278060569213422222970398571518379068365457113153185240314239819900363136701676428857631410112026935909229199347859529038045476245978116832006091222425879252401276936557878343798225617380937130435149823091158527692146749535891342616826023045891568914958901047292137732980666229178989085894641954690916384187891207783777438013318228559917200999363994982105911499817003657608461522433832232126612214627181468270744716384377409067116971595702610028234098583680728166567794391035458270498141302127640419760856535561947067470210579442802385078410623585400413634250711524088013963227823900595570048218033199323404771439453770719563005010938112141183591853939514646235297306152237849761562768138735708850918084719646139686181665237786892878548561930955078648166238358881995506560479395600893161914420874093204986945521903971876524105680144339010913282477826261373170313350052627489885516547139476951073736191010794763110158362256539199224635500972532198767964751552205832636358891923644142422943665646305734667773068040487440348584100328352695937591921562928049942751464608171821719802652928677076956163496280102929718738373027552084166473893025284937576149957879315740517693743285364982690969862595789233271177645665855295046665050291686780069145607618670909133722968450086399215405676667762931899731996074906168182539979942105256411783328377710645143520478635738322811864345509393461012984623000513019703110909374786339414926984275249986622066399432296535546304812653127526309537638809789997988217033981372909451567945446881928067348462774150263065046836343585481860979679607552411173368823553169059870999567767704745561422208156597647799225206758318578702357128106851409802386579967977557178631910199738128686073845381646974625593608335814048339725743033250219237391765164212814477563011180802343803682542778321964622692536592915970983929368656355975974130338422141993747977653954219696081167231869466509572049373667151491399532638084496806814699678340248150133654122772823965725178068842117840124664273977388023555870493292850238801626582052284460341143655285748378781941393449478856928296596946602410025503787491729790945026608675714572486621708615300326485662959313675183969917608846654704600492878315555477914632378647431640165126592819490718670381602246947725657600412420591855582182243612955848828626918332011977000426995127254182545148199410319775830637045577152135330458318376862826127723651397140587708214338271553356740839923254027035556478752677744601379657403526170308746608727160102502484262532352426883616655622421379978753287865494391036827543238324786807464074924948115157171478978718480784181564358146625040525900829166102545007425927706338401734099937617002073107130246389344159388063153782875319340928550586045424713880288721209990916999755881801601720334156713746386114548124776064790953367436979857263355843685398483885370575380746356609834794151045186631559537037529025076162574259877836188601746983645607216226319807432234946941473661609956194864372018322605620548626144443392583761736238258857633140488127529469768914251030180037167204053298535715591382651914816901937774997964390313449172711723605547729398634162249111778780650461763883308221326097891074774110983639101394473817904071766824261515123312254197130012900326880038768052813932422244256743538898346187055715577019140362337864164896544644704273710131352441342910275421612189526149237849197727415211843149127960486840998971985161528637781635378211327030479612257709510715018675885858617705016321471531239226795915923431707106803637378778041766830304633343679741196235858180885501432150947433489276803073741034875744404375675746402194780313594592243334625688526037280278746844819383759459976205180265532294321687566990413011273469308417217834121510571922306074980259115603795677111091103421502363699781924065051038672583874330456600217122772210488709105566295047738756656891109185214764189974237669980029033220572908227783893506191582240204148300415618930367485293966150142136777478393447524249682825954176795167940326531411183098711829343055368028627175934798208740252231886965743917705790220649861259381282177171417629203479823752275375258691418860771725321909681222243381134445098686936481225079065678734547247141570080965620922325722649297479525817362688236456776653233036252827162008213293941955881694582174160782785876600005472283597040345515119897112643527134091597988943425796779243727245949309270150119765782445935358598674440254623226643925621961933613664585310997214076827235765377722766353460576960752900989817729124182890420730082550484227807598958493934302417916240862149841472207804428206548195220666681398885231667556800397132009357310873114195393575119258994115274031287733278420795124866785031672203580574279872449610214658432094386262647208434725271999839831514602756401319984484670108596585883309216838727875308250918667475590211899336992003291606427269273680494155140814669836664166215306644372405208122243485671626600574990839330304943452332276783376285265560762180955189995160550007689496762987164953655485306669975500306901748420841167490902269368007430497222057001285745455914791015285349030942898458039937177020694273271492352872201932993700602048091903203193682126736754635468165256883349512821507054109340449985524988037727548459815942975777980286970344811695906335108777228598382440358503003871681486371310157524285283488189036073208318577334536220377061913738591079680680774073392695112992389214492802726420706389269073289895742236503148409690489188709045764995741529995603122566881571417386385843402463566226814007787434158040108429737902320207428246053288384476453469732094846831257127106794469170810406357735028802153580177167110492849972398148341924739577838285182207435489530255952721436037835570348073198054689734729893439858520913828197410192767939517381801607074967668691286520313664186586174501320719870596469793679824859247300695515592168793618987131443286711095198884391758615876589132837950080532978811776735630010194947298526009224129038828585373435042565485709672389871993639123396646960610779015566274315484195484344128103072362353152220250893372980497110911824219415202610066119516037774060304639792985690564504412302360048002708924885188406173233556651611848317080992636721908603951228070135651012542523975776844734245620636673639336060749781373722037107704856135642549272479827308531922556761770785667434934671184015722221247183358699305370652160634968706149374177612114589251815912446502594107143321423749394049660072806178612756216091073930853027841363862279088746844140668365687567038644659242877506062154194717341898091029630588477968775669221235237837718781598141533879559515834144847655730109506450970191427915790245262558886208122658907546950975541313767815606799539549489286328675667875524410024254074056578857094945148301238227366630752425332902963674997937526340345657370013698218149894261194011974472774618152592732755175652598494446604033148573539840199135752427952844349392019925006816163769406518795774353939719350376468295012602395348266193578009755203186431396745322028268306455011267111455104717994922382286829288130751614895437042608507574052505413309608854805542676440359173891305103327203958781589128642306235238627480991194166671478254881665879773765429538973924216632119125869913540787421694980445182810059233018663525453104961453273507698155634577241117808085906436355471901453607100175130529592649617172632886983717127350268992577287529093281575276606379615646726628654466179553111373388484903877014568250190589642568281485328271996671856202415967469897714078629906821620300249641712764549634734656925907058824562959692088285033827456640980414520064969859505510380695302159206659727197192965195918491979056502888080231937870121567534318179029244930507727539557691683886764404010213642960686856476890912663348754159989976403552337426263511805660366205605230009734499727084800774275349074290421229291857913262059103710551087676071695290398713213322086204132775195028380453468567589806418186485138231323518220724998911330121612250947345963955400108363403355463492601773200198387569781885992276646858927579958288169487987674032422687023546736123434170850753137263608321087686365381399789248490678453631480170966457148911316578554675272105485773002725656285210307700915783679666075985737352382523784738292432826730105566459392160130503230468693773438115856508893294012158312424047168570486516642654890598122105522276095876875847312062758023813073550813957785882504557357441543085345810713517625870343521051878766361582813692464653430247062099524727184572729375759259930341240713839084798275938947758532151351960369604377523490656018779332928043187372422727919360587296922945655628562017467595382408289999289044873102757302977153195133756639305517843840774449677960977101584302983921469212876999214392061142883175198818728916700443404582584267110723334852094199120250702575538217801745131380507997860516355166894574464027595285951551967441418298667816741506293847576392797861840515000898576898058338346420973199310080008358049013533426618493965018359177313697582649537012934493998990465750540250346049820506630023431632514828237699128678542698747897558429181684862187345485124521610592093702565249774067809105701553388279712706999365008939563863231831725488704817450641440048650590575337793574845309604846121353685113196601920859191112760301823716351107242720381600034870379270782561345405836360366993351840770555204907237049749021750595636243343656950502624875967121550305188186423125304670669488846824464098070166258763055785547347918662855774743734911985364648896315326825045120712696720911325631405045278745768113480529408043044679112400677759112519166110237228929196740825785776611721855109374845671608755532816183020630083729468844516916336018822604366626899890914820434824831773191349001798111388098155906677567606059856490019255640634391454320329131697363750243399591106362702615014315455416970753241303627644395255544367514273404872530255640035928105206425037353267230188524352036978919413247251671238098592893100574523144930105680802957454408296405982193755700136582877297511536053607977377712512391435032983732798153516958891691168637934692497327809708570436686940028901865088363483238869410132704387620324737182656948705695733837590965391563343149701923569958651298341236954562239901234669693293790326452186789775257922482032074604044282465928167765965412515608438140392688435307973472706083932102044408711774231237476151497930314257082898251353431041382769388016401457135472599879222327511893494340093714759098883427252627143973150759510450868143820520027288807697556825805619189932538222975429467801904316221742762684982135279916551035920775737071634485841346003788000949483151246025244433457956833787854476788594833437314435779463936030197839432923286869592352402473208589554347579503978803855249790470778091795369673195806165845456250514969343815544367360019093163806928833178545988422520073953750722250419726566688586053342983326347555894343484323007920202648418612249249179986016751692210025264432756548836776635709343859616570231491560899934226212907881816274390548121247479429393057044212031509657716588880189962992989532925588029250905618007597534858962288321180211066478422822496034767468356532303487763245436851673700793450308801018211293937715562608096850492525169654577592936062984024063754705393055779696962640671346007376302764079066558480606465923765575922168194483905847693520265696572076748302128087220664564078037962326714187480580710035421256643556940744040621635834094340024071520700925643882651323981202336767450859779933897363161899185097276230007550246432164251897331027265112081370036452799813577813948595596121969416139290336989416076861077549047268469613827226937077725562754093809377517899708865726043658531889951038066996324876582268265815110321745466842937153914441578682651949075544197844316444394256737644866376397687710985515539333082767508696857737919238129459892213533471922174602842905557412974135884701131704799396843896807485212165530973515009908229478322968559952153269585527374387787076648381676602771848516933921491534159131419422715553428806647414750567189841358258653507145200011995953939776198462325094663673233619615810762211502231684766233547592679626332435346726999985975527665304928399580549238869920828145136988763145724854236530163482105935324689650345078530913020589169412163968128780221526767148141682094450377792463112831286502114040172341261604679155466482016326217534399260978790245111673000323670856394736036515209364992318809252585353082801778954509395881231721557480961405596801981002879911216116179283646423699274166648863651159523734335015602388748669359429580736869122256380597340538405606653383974574082234748489943562204801794176612212109441758780160524155836973271464231422449016337252107296037710339043916392694549911953952104335775527018273158678413120404095734753258482319024107258868194098585510555643525894867975076568706481458497198997245356735873892703171780181743230755309593688349878347382958216438620188717525608330277475911998715361858652347463689579276436917238470799097866482272819072486534650463839005350982888125844906577709473541814280383303491809953293927270204315618047630941235244949564561910919423855806824118319303248528311867433934722489721097846636840064355694321797547249495636430718881334852524085934304880130420282651378902025386762399168371167067776677742508017752460754026190115481719223969004483015995220957040747393225376275450826422522104692517655901992942006699190314923510445369371600140834215719797707301840304253750165959925466767536127391514768836303721756432118431314782752662165916903395327274048229653448366226184701348255901905454213301564562387949246444193055286574908832805226963528041477816112664863692751733867346934342573453930611170536579344585701878602899902183515275128790512288790393650813510974938194184751530828641379325801777824549689732589744265034441410791934980800718149110208399584007877527580235196874459597831263380896824059323655500767058997119738265225820957990133104882616186628129689422642906797606132363950752934741865666148377861057745678491957756569802992141913842713125846317875085635506018827133213614329323410591924555856056506223322316690742738806543217606515731894403731819247086264973311823551555305708079987918583637476588570470879358083979543029979295225456496837418240365394814537513891858676329449234736003520096769463827408868400487286307577760038814014962284139865817525394465371943635051998840885992491690950004689974401038646384561906513475523849313310695663174486567818042889928609399337435983629268234560045666733144979691254983477532911115609891763255763382537704646698296746674832980282490462799329983758163701868408313948866267057016454573499850228814264367285834026115587421662790311597624229827645943246620850458097687622021781763537430004688014995726456843914113536952909791546564882751182110183758775387088156487099701450631018875217426776402343013352004274859599368381077024315571825700217827561678186560481192464477945503154217372467696046419877286491132883328810014469435334301869166641965106308629011200232380132563348035196916976731887662391932244210826207709503287410131680079185759666317837111191978854373159855078387763208251771015259066257607648479609024068282887569923616729607047545419553908969509281217922952850671316904364556159870219320871447289809399385995456234877511180931865256008125648332118006224279941711956396600689708431744712794176993777312995343039271648308261413512207328559916591714859361336144482688841071146870360450677355349436722364472656969955884027660824578951591944823001487169017588384792830956518086099411731576171469293394405142801414290879341643042280136161886065089508324424871394915817793664006657004923026604861967801350549233704250539298103038309133377535070077327740058109806153499649199767182962900006347612343626719058607306281401984727464909404760258758287233728468977432865251248155684837770266799096849693269366681558352102764029946052344175135339835007955707939864914279909825809290024006759485593335439614707500083056144138814061764372951955180103879300137519231554443618393056309935253683110949924559174375519610402872241121933285580411699530988926211822919518644098682697565391244250404253309843097354018633295840387804403387517415053788646407655313541384393982235312816621411635644407867597819471018734650914527689482026711438192215488558092456934433439819005135805959974513073763432562772065973515774138453703090261752747144994628153158109619125697802116678177043923387600785416549053346650147473605673952267464556345345408070820639951342036282385731418452086787465201905061739105882192361436230745233419147283043238762838877244391068048157966218830752284220981705196694201063551931553169838196993391102262613252300996635270193106707664001272651898215854506388130080058100021310419929129370508121854652214093257104675344650951281894287588788664827919282433229538291977804377271026297859796666701665847596163107008220247685541803279815550439104576683921964066611497509835966721701830208252393786534517713071208933160565694022525774954769362931963216014882134283289642323235080355519233018761696254224827163433743377001303402926193791157130496086432842967364355891736451747936189624006142788305810068898133132697694492830245947493987756213174269633330679612879062110213243527004652394195496939450727858657619261929532451164715703462178628790152444799824463353112659285437573108437511233759617915187820037566997359237393129686545994213456050506551999779160609023937915167064382773939548037722710322550967994379725193771099425990356024479101806726732271446421686760850392526964059482609542189361291721739050792543746843082155313891187767847706667442701440569301954995430604081242670888969118432315063121501006747053180061955682022066405442550782192081342317879645425608912372364346116567464339527501336068713284587553535376424096163371408030722230160394767508236453705671408789947554532489594840835144219012060808660027033770672384718065892034850732652652854570005674060174749256444828913393852793728956636838392144420417095134490781194402338897346616549730367356500273472707159924627551139860221999523363505552372548680904254469784160369228357967108124945902865501032802302462092563556579159779983109820095829252807946647629721016997738581887912797211671222711699670279035428997820631876509058312450138482952406371524038981322435785510026022757377805623251069599072389071758295078080095305090156013090807559039082914765594238510641816574925742648179513783729223018012263813456655212817041313826712839513704498155828514600336836426187933055780022919844381028113702227121803847897854857878368552512434998646227932669699388087460734852871636825119277359082149868098183979772452864434663920439797949936428202982491992553796502755971014758018203898898787352121165744478299697363365045148292230406091278250978161975984874347494048523098294245775374876216186179022884745360733307282587366018884714916565655716312190053063714897912985862393149914737365306533546908899469626402505917196899704809941810457586795770841501845261204452059026001794134466046780674201707988088202909283675998285870491366639684682825189873291056024211852622430351933002405062262086147473297565223782100922800980012958768442833725180966529478476040469225724870969714072778624446058397705132290219382239182993917791768055956402268263915439906627789867644900385551220327532467090051338429804572067743160658070347633859540742315505661875512443066842933158700985150481534161586749186760378772179464856522349631253114809709651221564684816100232879018688308963424561307372207533662185409020954395123526951532571668692556615469271590560803567215767888542988890465754487888201939879284016922886462756853269840055160232599517851913921411840848496549175689168698537738472552605936763373830748013448757412380171894339718329190723272863031737717173631326430428294444558259827331511211160518579226731314516410460829989597340072205500932135724900951662207340686605476827178361561560667890462303535566966297979086203796371152922909212930387559578622313869585171459323494284018036410622916955726299202429620753442124809340550938035760561283386608270978257984929937181884795404315866913270962692628583847439530807967394295131184062835938322985376941532707924583163494068085982017875728213446381718806881837034658670005083326845955291723059322259774932260115095906755995479385525642210688619593454656481270784060602585269544428239269141602628017280652649804476123282047751858329425685334386021825824135274130579421212406297348321264885771706312819138575344562143641496669526273594011604877293818278309727870938019848721310012637932433726470905444018132973897637287423423997034013085496111949218253233887681737716107956487510983926719797962800879345953248148901638032164776879962752769255994048872045263585965766415712657795831783314154310793886660406926365059342914168294922408211715821865267157143802632532437072767606422877553447452892361524982117858588049634041451183644494332623825899195914112986774784468066364273030207826560267183094395765237151208811732234938987005315998527218921125900160325054076592109914900393279869411267942852589631704370112083204344669672516457164017473161486189776053014850696869344151109385442448654704139042581217925350464473261607472366160457996197986604154560087225635220327224356163638404280787313062218294041224574425990333844093800811743954382069997599079684207214674093913642126890457668389066097056071580328750559605200073257011760678090583658003333316175146342795880374075633598865012144375296984674391611307966606947426161238323681377386973397566244244908255694063168929566046620667890574159275214505051227222999631401488596753289737703312158349245585561216308025303850887181354148127239090018258687387894607884678973355490634542860435465805455175437555539971003244274008590551644853485295403007244478494647408641828627129583245822705870972201867389929798518538263839350821659824506036187746942515966804958759619350595959332686803256075915944928533236910905747578953966922719381591711965217516350516300076891403520356803804132819898776797221405730495851896984502105531681218449191053881501175930860547096298703079120925972166005988058225507051562355212628845701609902204412852772162549845960822045773504425526864400360752873147466570753981485596781169246837041308002606787707291870596952192369392913291052913793153139531824282186620427443842486763079642663467911393557208859992196575362223681716462383167597861552165626348692316420396599879992171753491451200726159330080943468990885036856175167249286457471486761875150705311994503683626296288387300905007192388236804317655488167122062527297139044055649036387410277357997187655644720274801162307369422563336488642465220064680680863509239820395777287088256291681797214311069956308604893292510843558225437086026081342833823003129847265883498757112713994204220261187336285749568405064958010564973443777000750839204642565540196709532268127605125341480277068061863348036605917455432342018565054484943822273986378943053975422539868871184671615395337218136440800551643705751473794347551017075485552683549032655859358237176681138691715741483157432688155921223583952789806948250162554888309880025192549740002445908044496895889890981509378163786614159310723007748965036901849248968687796544013221648592640573553051647093130205523550492645502950453343678463057043139349967345249860601408252823060415596667564558311922904357970607479934345702419571810406194254448855416644291038850964063882473769947292841872693066333971735217216015200418156515232156910888473285673552875816902323349459939772862779256038564626315412564858459613162603373395566492343213860441315856594732162561983902991206985518210879511571924538721080572554515398841815118520848671228564728028758182741685196655894641490356762001479758983765547517993546466415152641486247834568121524720425536033186511192123195011204367235069400082093425489981355788762128788512261408491470852739471406038109903225188223302497218085143836769306157892556751278988658075673543762035296622954617286071199523611204107759340337399566810388764571112659007133957739089545566813620283803382032712258611956536606379792430094393055535355608260764114641687531512555104590705065453060729852008746124343009375837768076751689190521880709480967665326524007974058807157108301578053169666384682813777999396729035560400754364593875147488536229272061072931945406588221011489361721470388117576804083358090326452834302294873273553161888249047774937738243976735426103448019720390699283777892823768776067732415607878452102650525055214032348491895046456328738389108335628365684362851975615933759051816873289442612679229104016720628372203263063427741848660281520886558315054264302257037063401490172444096031975998409008505977933041594016544182746908075348033845107846400858765469770965861569421251898622566176007291137756423697327629862039146644463201678037115743932761343680730017365211071981387020718718398116641969996454849658989171260246844928997288372340597974796325831263529340657778040571684342471747834622656340028753295439400741389063336910224355256803889187953031395402087058551178059115816112745994103547958881364063300586102149773235492764372090871197127209581132690989411841162379845565456868356495663806997869039173488708822113295126896872591303104648402875760431745253741352139291561581340048368737467870455007688536852061717122399537817290447608885889387643642463901821140183717964595463762221092202331803158996024710127580096910859130115166948269204126135784386180174723577466985203284307108357183048930564123333806213222791351094889650900499594653662410043391376008286006243488335897180332944967279444612322052846010372942111929204772767068313261492419777367067222910435136181268521021162641245851082356063395394251695104013026818189540010927084837837550308403247736447616589681957766069541465753858423264050246694069727368978299917329991804520856775816048420277694401586959470744922688725107639655408935064228663018141235137910768944546351546713193362480008135425017950079642415943734223073718477987634810282683939096093735062947413486972443091842037578744268884819756538229757976036954030788843957743656845799617820472039854103902284469225900303492271057400637701933885381193031218556788459504923149872778420780767821115089957471945176614532245039898826357935067249315204271234250233708475572494794160459522955466638022847316187110886485661059300858673943334976928558488230760307159026218006809830586304934672928918791095194447793562374657312546928901473841265215623855860438936984972314094256089522174235336228604942375078589551355628059659068688801468724060831565583343749868991758798711107264831658494954509427349203542102901934284511673214895498972208514189306959053498058714597990009407460609652415054662532559044881961943417787356779200449987451321287017112267011738592943879670670408711375631830222574616099426602132870593230902000568367115834544101964297758238342653594033454105300133309128915911165106863936931677853662240214644849640087330857560813462598605330953756524833463939495526049306735329960765244815936760953126233016651149538913331225693306099872825734512081995083014876843433314538822111558659579109205435733093035394317005988844485973373254576681868588772640578995175264409802371769400510830955188303477847043397829415105990664268582396810638475215388235552018097145544062628506458318926305718056385516522393290772190647684332425364471877871256123080043710555775606579081727060477459188218419924943251979120331372799728491860602535285420437107219043015622017042756584769562383930303318623461672178481766664711752561843538038085417818498941342787650174210300473846667605511428926509516927007654942242866741459694321258089166023730949800262788510846491876174473898386060245089081835531979946894217634520733812678301695361505842732487117224220443613577338106256917779184776633819279363129825929346010544990227326535519631553260518486109487246086485925591852638381047359062995435818510010493045922565558400826371480134917294910116630639017148447881121611380200652298490263579766103077204340736108415774699146431758571381185850409832853766962842036500972683686559595115285009496949169126987067199776799903610226405315344023591491584839228994621961772175064596268494282325471433921072895582870653159970083341846079157843808082825081521488322356551613892710158214505262628206062756733439647961169529638877822323116710233739855703277527387365285525671660900130588286065960324934260559458164905932906006582874026646507786921232848831125178300483756897720396355981959410580775927431179909172169929484331819846303214377687040051962373136702362724978815460493297548119462747213038517748976450986406864053698563321528513218832006059219834423031537323227771798997092707844812403209782848924061893993300677013936235125114461197251767877550269286962643271136606819100011775771748024562187054067459393784762946004445262574702965513619736762686756469375422270549713075498183780186153346745328485458422938998022729549827983380616704744356631618280241244553215148434159033587681312788651001056472587966932325298961646850528690372807053491429226126640497920088441582298870741537885965631518078330465203263696142976111975693830661040322818940091409919168168408234882167875491008173260658959777406057295534054427350210284096982426824484093208380234319606665970164573050746661734515899741477167273375519594182567157024182638868480079988654243469695553119248882760931358809296535998118563003749626681280209474884653418608837073866439713120737943146984154041004805184832796272398976700238595151876707436626601693654940303800592173306808522985344198132326577240713141189400139496292295773046933049834540192203034372343453731743020779475571321892261563994412699520168157649855591513804562741136956154553301902893758428840142030979565810313946896148202991816802253034815696641370904206930407431757030096114229870328677081840573045819659310257716521318298858793899134327578735166170477624214407607065297492103263084698039141011717474615177399518260833256925502605290994674564843331142232097607685180736075595224667702850381655635341898534641936007186701632364159924641431354901096378257182080271082811455689266665567265875184257638360448165587628070864764793409722563885980074697595237715807083456509444199813042605761782175369160221592635900486232562162393524089322600292939653299227531498322728063025965532919610737777345053930890390975788749288656786325797823345691691712307620271474172615010387703755681043745056645588632116196093888890614786879046479093869988404419612200204501645903137785060573368151153331522880068872410254069105030535157086732194532299364704805012683655151971455657908596354660868749178284553940294036181426262436824958881687997831023627134646220558419648731171090207513426783966574823141130871938821259819505156193422219277314243415661991710267661394627546781538605846089364463256795743530635496827641835240813129726649139619113123103944182446312598581310875058565252630174249397896703995661322222730997445962853101429227627346053112417945743991706952942914682344252935677986512154401262705215020104079067288778059017384316290474190615533317812483590498593146540521904167270907781998326520538157832605470277218028473407903390460690248215637039371426090057323079607663001850853781436401086066462930622252048081012619303080124110283384305825591622348617637187371655158097570303982194450459158988319473147591794979135387716681529058134932147837750406387453455798809274067465428718129083018128947375992465183780550124637598263639837010680771553756577811384156447352319085295549011584145553714746078396661228435966110804609418818692864192144054067919452279355055902364253905735574133966020695447125757889328353504593721341595349104827500953782784520539222289032258958709779089863752813929065626826749357590525001124258813714933295685062972719150968704678872888791358939357067812732437734630286208623212860439703050485668835661244034158477835159109532424581289006010723144864808149955365501363171197227710571198419115328948659362854680489416767465225489248953362520174543499897745259862985289953034989979579371302178122793356559909766532668253559624333080495437509295232103862038043083260073902480776270238308041757534104006036152932019089399959471917583969412080130582153000298920014886602640150784904041947884886190695385194147331914359776064511090486569050325737268328637707477540040318279646138231344408251554174634547065611061503747630332084556011653238316556289489153461145124573778757560549387559839772597112418145682321389275625590514595454556108949520080921290621382644428115667661075425511545478887028417205293913778592941733575507794228095475314129699523771346774061504129321481684516291544408738985393952674153206931107787160224123221823595570894350154216395958818595813292868724132871624530998297647891004742646786793095693373488041216500668308338018148308214803167491426946900262840046253456765293236000941006362276852848166353171351431781336602713534703786562326644268112083248174972160839803249474729979568835038108688436685293903648597443503545497050067609105180714477860829903517902626990430953771122731724907900710926538695683084188398015253212632672472665911088944059323355409641988936813559109561943492995029374078996412285401003467854463893670335260299225374575504416539429524142021494802259010825113427515144551045434840400515157407391581687287374398073113386628898684844447746593302649918558444447867466111658150779100660622352176254381676492539531223837700751336202010582337078240213009160345701744590279348390323439023620798946434253559236130891866591644261122075063769101742078007556431628727625098295091767265047879795782334543527216304349855748119770037874079867212561604046570590962214328549811926548170243178318936503758302765652160513959010386664827536935250464321343862655958023013996585529314565349334372579634631763959151093338853090956751134587274470159555680591860105721386027778685884989398569412378866770324903806115099368186423575459747981398985803285286001176106054169749355005285086908785620740764001027664266344146338106821679642594954961819129899716913672553350135903420451831747582009534931308754653929447842990518558457523822758417430990899819056507634382038367821702412496472875987841745991347780823979500370203075982886263054331818667177017648778130289196324124128478621224356983018243632654214274628601113921363262873467337494119142068321173074006604347397937166631277119440782953400754614800271489733301280744437423942102222536929252131263817912930788170689529488881821661304127148504160427929056925964332849879524831686948203390698032451256785309867691618791578567805545543495375359881073634734898712653287590604347417656198023235900671898862014482426173595870952681317415416065135451836450465262682602447152931299629610370120044220662002451338355149621661876259107528545170022486719513142638239484382730353602486839170536810916165656303067060348982022665843329919765992937957096359835729000999190549795481310810258058084098399183524231140951945095056339780200250966325136856186094062770820582276058893452783700093807728685061463009247146390446149724866264758048286032977367373902539295281292162620651441692317173384032419443381769979671754933396710359186472803862109932213354282279274789940863193565167278291895601563080068886600727959412456565851572091204938990817373056789880708681712555828180800938976147325612491922869395515025189444019704147208969758895528867822478197111386860734667629345897060548264110251907479661246688836394839498324502440346777798002197532868946116886389541337620025673224065300302755480680564164340142465640572938654021157775912343660506648802262433876559509497206514313821463294568346312227624017999612010539913717483789947906602150973267522644013922745369010230797870178343507482555941687543771558632447101506598195997806125669525076195448857982821106775585047289486712318723088215392028563504427954771901229272471364470741711499700550779613997737510569845382416737217518747551951454476032352015925546859694624217071374350431940195162100516996688105603409083444748274243562717661736260056155095384682645128099778971614931203820444794379926568074872773079019347192307444899559178245929951396452994516219253123053006335785279962152302358318451955073895726555673906374464277221593606789198255813295978663059083778054323989226430229699811923883505821344976928082334287282227165615341076202285671174867180816979075808065604907691769503701910352970826138008577103831025469795779907434526848496385382293697046904456327086709205951995712202747251129013617277618151198452259678732267072088671362730751800030987317582776961860421888391501071164575464050096635691264902533835531892409647127909325104493230990730481196648631665620765896259601502064635017523961914709537264153004965207326625104704701643226915219860649469731928651671901858792034634849927575353679526290648505352887195407744951215806334324136816883809380762433632773296778904252474369461414298744031574865557146937641739870161336708260615730827560796683299802878875020579726418350357850214693433936394257650151685689708419083209166305655806417822042977280752251196923562020414729099099062646765159558107570847607277625855592145558923941220201979051649225798118656839267950032106356159442708544986772416185111597615929680473348066978645237360574346536889042594340694844169966946776852373824500787616617455184375603161963256940660873108900778405672163174169485315790865371460798407883923285947617154065974919701363934183555917109934957627221738168383298980884355123922757483219196113343898047232920615178438325923528413544487406445664769542476343958712781255742837774101773782034047856898585094748872147383396084524895444656200823817300491681267076926129305610405455978974050371052816984472317136833642456945520175653951978718655628772786491532364239430293078672260521067909377761150936659723025879817182057006069833113080261487558892044591096268034885398358850393670523043301054200276871416803853658616579166681857178929064169643081562050944224243332528109243007045196620442028616584320663672001607268270729983414450100375462157200450110942144752313905145602751949733183090412835342862659275384958011563215455944805314316429136425510351314945252381455496425528410557979736476206693596737691747489097521143358192953854642319058020409732794700804779663160347507148512833517029330617915388602051515185139084678065654971254443569695560843450471831406700953636071407618104092072378044548129136990619307119586154898680383386142389462219199949709407158264815889170335944033432746505176582619610711508799271126946520112454509002186313721553575022474407806129614787380280207615310178170679870493926032209811606164795851609017445638056652522882139360472090005594545405934925886536348357168579846252651519106244264318508596772622094660256261616477389902146983133050343813613942019217389248137210271113412592958670614207528772712863245491999289273512598969615052084781045158347866105753302998429417134640421821979334198043784756793079617114829493152391160036538356812853455863706154862375885475585433195729862841185736129926802525260891133730226057484252586692738610850438288393859311094009700445624655865988237299931110983690411570428036588958025641112854849669743421590789554388081975913400527367614448392803492807851853284789648377388337623357975380465556159635104657662938824139668516227225163394020570686510289725670685583483164494454971116257635677419331640369693394572028364157759287733730638558970706281795525680644375348432709809508338490665121607951273575997611948441287911380120228469521000490116792147553550957710086108181409392695931837255569149078220502902339910752929938225416473282404906720621175779529854182568655702241711439640588606408384450067856279665657592855888768690413565932430829506004272513793551508828947468327382106147395136934413556710039141432325986429499557948346432139450621257817299240382368982705550283046419968528235561471806475785400220612224704584896484778631219798211211672805947011949097743777642091301263599415926922562657780700604795649923901712091082501905489343379276012819375104851603530435349773762643821566650152369898188540392642438336084017992659214421629187340825916749944400509869304152119606727456906792094555058455677485368275472045352846128263200632037755071235541420118220483427845550606708463171089822306004047788320392106976447428564978288067644827369281391149332211638041875598077771054553692016704048667427829176152079063964195618312879193541598404674840085437801999998833386365232094193073528126860236469111382595647916780425020475322891363966259246639379522240133516295395815344446459278342534901236412148858456461389189799749904790121538167836298740177369094647871749114300721113636899880551957072918692138652933320358362899077005393933582218736214287448902482333410828178641990716343651828949619458303009948979052632338900570130981017978816214149723954440551237355935787216533660195596931269516730581587648399528150790968762746165431762226346494741557040922934561674535466766636830731819655810436869754967289115161102981711465742887086712298077657328032469625077279087072368246798149859954913260743842823992115022677442335566805124832879182466077332343085613750746254518919451486028658696719659403294820186407371471615510989121551456467182444421305848102215285139016688303295373634893918022728531888682733925384661572271484834129619265556117919697434259836740170436024942078719546586940834088076114553274837680348374637653861749614803086963962548949830245954641888900671418442288430184497035303419919072998987477826897944678067854325797281642979797603228905891082850284249636719177941158150984991795091709005759516068436289915022154049363316268349378192049921064958868682255951323078184131436440116992596495446245384705136588591080676801114051588785197360895214337563824002566838707114271428880431889295389013680732796369059956375404105082832757622963508014682818618869228068569030035919793561653351429256996071031438434262538143766434296137419736496774346469096498248274833809150033308453437880614538640801780476138122802666764470721928439658358847699217605432913823038675326498057532629643476538985412656853208474261646726157851027284131823446090493421930983098926449641934229576686634619725491848754504081783153857733948725879265343325226986732043366795116381236016156285882175948556120871800509689519474101716708994526496421267027903312771172398480370423629088414104538874137893175619057607515559849261154364215559471512949784654407344563214827002125027326864542182263799137741268116138007814310495413974817540744142394854283930417498559204900596729894160468891374849403490735927011842742568323338120697149359761620335357861855899802859266450419369743978173473994931543000749225706831200506974682413939134559262168576324540083819694557423022306693754044615772729792503785976698644742576341597152323025254448300491609313528022417735410768056079341170425313086827311149790045633046466521465593259747497927404745115285749764973883719296966910686160745992265636379809809881941234544502086457506514605227638726652977565167251135402918824926913636848181592891153169791696342623847788472131063617058982907375465344899795057790683983848310586452646712716863587507128229192727991223112517042472166528335812871942663455320889961521273780018154144893279464836169390403130516632771515185736581648530663228055943125663442075337652043780186120343350191540144769350003458029977879103541924262256230419566232228317466939839039753861110689833951581288072461348118989590394530704505437636467446788552656663474239533775375728874498411339168818683887915843425435655745531108215238973923646948319253153336184479681174875190310497768889538577340137079837880653118908024701385032991062256160818211652779802848950982085759120605902059443072696702165356487753895785386019847898396018638192532214335214803984188958616653488277972445554046621824846394340253476421530810907665946545084033363521180272398059219134194092315109759476323467028129588737010429753125563739707785774517633456224866761520730550567760287738405700392713463352550111903207276076355784009434448652808333023106014688052662454137779168135277982856818483480560098513400688771087893879175573383156003152901272970060558830130197911729667185074769650460114232222962303464105167644770960791174252414162912332048199862379712286442408161509168561508357506095542585219978581396946528759996484097340665269759434084822530680803074870477455918732734929867746313313554384207911182049959771861842656758166010207144391002092377705176533130118475517287888727821588512988592619479005750591644590857715271004085840801325243743214109080320735606137007335482395089658737687571192420354790358950310262422238981857528465421850102756298322560876344635825734760401885408713911225855428940068462684693280257725745223072890537844709074052704037106157407301004250912115235757907329174045432694342811261617228312059463876640058074060285264959686171945047276797120183105339977472579065127304488198021246432461656726057042591358122835955278678932647366528048571336483674199445185445439193592017107956091374950413168446507926867933903342051779969138468673549229799344668977050426539009925144036531164596238696900134020051035585191672452421985717336708923685297732306099944807691174508482516673272078395434980851018230475888318211912800245046410426613325764062556878683227931498887357953794551745034738165134879273853606164184464088481108703316153302528898813883271650196022670663001988900178273939667420663240422743328443803558545414733601180764319530677538162011975606708618992692366400295584987717258692546987737868264098117477831978286619382788335355811601311981171329393594355247033925686393720650208157348656028890839114299691115149442189027203663614726140511836094168087617371903212530027781973955306854173217280221249290481219370798908897422389080351516604205402167479388804469755836133404510188472056858791280584173817607729681770961268116877243037383956254525253444288490332493157036898248099587468621939303742807951433275055402419613712124767974452615169633676438632317902757919484644104868002897105240219891565264472441848495453408098279374932868459637876880427086773879634521857009948643802491374877287454215655226887720489722755785209657260185238855346087000874973875798574625340121097586606289522031188973233901060818479921329619616062334674660443698652410607399120250265687148988211292365266160808011247941637329769272657699637738644441228039290485048625559171782314321962142947190124762283294362434092757587574735946584383753359721417150952072880369006396429189398654542150372527848887917901116289878830894217506993225627284966244332165795904167182696471030354598216712214461870694099115067558311856463396482515442383564733874985556741645425839654806814839751186551468459649930961553044644629482020029623793131166266024620024154593464842583276246234872816871158510599559489891936205101745306466179542509290395817063641065477982176113679675560979763667854223564551318189735501277495724359337010097710416411867737299698236361214250758744840593164920190423087720283257697122497311776562259004640463091417101859386855398787531402574020214895565677583350179221011824800253784148693647773995787348820387214956927747032188980911237792732353034155669780774848817592938745252184167761818157234351176871907210729985113811328103777898438135843956265928164444730023994857195891147711376450504961592668413726477912479931632973511608176762002953017163334375082707915808852420737768195740542097081902455616343778911105869331730763674326381971170378649930734815592183173537181335927432411355800736184674232794820288342701823928687440354592734594665557829328314874999860307545165486186301890647771139208115154287905938059371000210121276919447315065498848074347159547322925954763561443270255227032315581111297335390435054567799801317193073413242466229192877354434521869265590727612050073329694439286718974857717870249411729317540223909832785454607603761027638332713349475702461811531211666476788423100789811388462431292300416326885468133752171465920342821283628477630222942754885758865207873271561275833195714590691559196848647306926624689717644080837947332977720270540909652619232576658602793779586197689683497872280018000419421003200277398772280497263326951521340246388911796109970230655998048367774421191064432759812812138524403238910165785223607064527359841751857465409801518936482762109881270988740502690816835589971538129403143947539813135693977016105436986036055211732204653985869979878651319216920068195739689112471691496529751747066514545774056497193608618515238576402184983566360930235116788728583740297535906916466858380472861872149757964548736401209497932260183124829127686516816178479993116109680060550440034652544480758446882065264924952866207341296520222591191538200678893312113428473530491602502154809139583963307052929280887474391277330648923041135003904068435208478004399552424762491973781625536558658506777209122316663196853529155250047325264350779371379525736764988487061331458695595581186415082538965565181661874376931835548084208943158814724961320796773749039200788625800645337380055038142015033120758389607746034549560295945727243641255100745552839215630490717286333384217138402856054842307143962873829755949800984219849761948792321171306449594817081972252971927032510663959712257837506544269457029294355785348740254212844449251364280466487781446075284443434160801527528624343600770671629626397438478427510662056613019961978472564540807777239186945437293044106726697436225526231425390694970946204050403162471082414189485820106828590823126387758940347494774046545679327333283893171394855776783886953530761174715931776422163657214521758130387284358438872616407937857879199709042159212988638618925278678321030050983828126740708405263424973917893886917827804827446000481715325626345402643698611536845375324004275244310832374574621991172933375401067958368878613749061958093084745934596395502705977352953015710703333234946301243457783444512988620608757649837888893064368073665747812357873220135300548335752711529898530074854197910905964857820523996248572569538134242912163366938272419342928535553067798193609288894348367763216518129338806764552692051044661722529675038613996942718134201335739044612217237664128194244997279139192613707801227366161757117672830461383437061646354633492424054105075444214601317154054089460991957833073833827558566274896119118675848871575734734685480044108539627719186163753901041163903618581850247144447142362700646583938173145434647368751567672973027827491681788021850706474056543239751714451909445243147697698352489320919454159131726580787997790658920814917417123056520967783155327038669816216307579401603593811065364471421627716064407183246179864941113655077276418240267630270430925184219197872814484106972357122139760093095140221386792115680135305324500627366240732823015816451450106915747797944001235271095032096344949193846186386844438582032511526258196991818779970893235486892889604321868452002062598467661028294391671761781933524104809638881424869085650958328840775383505605950009308753280113685258733024554671670793828681259158038166905046499957001533035325773835759738315594636486791076929249154524652141553851541153094788696740708992922930134708736430192547450796684960736352584956814549123316239734759365598827573926557719956635603650557003838727606576128240084155020587863317674082162010285154004140874997053518250673973534077278890755426510705777282337782439081804720987941890537932021409686804768323939890053221098361997792306336986204174926820974690748838827562482164085989754717786711108349180380228089753254781242905064803501563169764871965595902084962000147957949545823889014284552522518186367880764923485467495603604214710066329059479447651223909447889154161569601506393100474208388009693358375569902683772725745227656704135285280652957211702490619260760883883411062717827352123674860230850785374950352806017630891682870324878979027608172730034788849268692576709334591391565196882768729893629813021161721084768082321852245097462820953278264302252449732347300629985498258859110297456213720656506979870805026122430954041663729183829393060817842344724019823276899686437035915606939019440098896504511464890877393781235875594104098900943599331305363389857173330872808720502456119090702697868444887263695826448363523847749684118434971878754576385922872264656705834228722013543663131400640673718653756783798822715337444336132101341347825682798347723911373478694874230414701801192338055078424799245491994206722683920696813779280245732253708486910211240410355731544554944504282878593113447810559217626498815255552978767097833386928428843918409031907326583844156495022985725550710793611117342502742242651834669530964265630924696218958897191451839386725871175254193767534276532304644940333377979266336799366724174222252696712949869491325202883251437348418687194004793077772413548428593584065322345134389588344452034302823013432314115215581342578348278536536137013177339555476826809260886910957448542011779671193008589906031899526880517278384992735023779275362595137045957978723951710414660487928057386412704167108540940902114957426707698201244994658049664839923865184764544788768708493718351540559744337410246871746193753163684344124366192188410976542018740723178642492171397424459753789573115225506333036333272894734738123105637924877877691836687645055040503382989328922048733392645651548156522697091160192567076806964863087362142219068822667450008833064270236917441688536399994496180347108703590651520373610580534713840703055679566846494657538521880658561701206212774318012800886301050854659113634806079093030973958075213246089061565636472253916913827745954723398672826862167742462176644939831218422832653893350837770352551901400914355980280481366529074492696947015300313830155723501239900851780298328873220674708858896712789642898901454269814151055115472975764382994718757765368653848504366073075407036025938917458108843212549793816858499692902429067776079052659364539815353626301070916848659792125624612858390407953004129604799868523468869287513242718596163040378510407459232077752573120591725571113160125868721557973444923301101393349328353664860490249077123567062307315866952959688806801513077183756644714613750386858585576383673932118843155837815106845057500713123482473143918618635326593462101687720361287858761095438243714608515535272501299189232920897325405042319850214358354252604045147201095032655706948199234867823943811825379227597721988208876909815336483844739108757917000047874309091287516418332420000837968177713745615718253490994942482026275677381981709211987335252512826421393667035850586909455960252488217050753346427948006501946868591187794093972815733878955890833018747701650037349287368835022930313361001155674151977286838698019994351849732632629199243493679689784008299534169838461380163755118756293320844585890910530787108531926857038567071572457915030385106872798629908389236825293279417344979476673550906948000516617138536517038256736771259504323443767107852944669081917887590675969163076882654884608306105610828153887907547128319380610818467804497542941805482985077700122425513852583110111680192053755247803422458511839437060795565630518473750493649055301804683208833173817949134115325905962875903040695251799883968183468406612001791365056551046954773671893719375911211196876726429928061005666973506378276106660017184575565028093090637756408455692507399360906712405652535505609517069812488784368136140707980707512465064750761502448964275544837944093269539415950614177290135713737262683063764988883344284928961545619295683954414881906939493160886152348325570150657447085633611745545564645088195597916828617377910294392902931232872149978712716878411554338983765600279091629116952482171844062758090067072174802139535231202057464709443863541142718212418049046822052593853351188131290106599649939341191492711005440745245241318950301171363421327473554647021049700143731956507065926604189063744831943872762475276518857407148847391044685197910020342085174424779010780974230249019136853814189339778644641645872157690365033869077273483690840336447107648376541219332968571344576669054952188529667489267916688273557745011642033411646716524334632016870657451280850652271894705728757749906863633139808697154651893211485215410880259762513087690441482512793415601500556350763122833914142143970275612887325553244841268451713347593816529427754529634577280458747392629556506879741142887674515239561903911281651113500001645305263983895272310635808455036991781004224419402773183059700349819142856000084472570202697606942646945068543482274250576192316466152398915654457588696785914252793267614603546226980408929275143978820337997987725179973182510526180850993129913733940565195898075569508411600484238247341817008682827983308607323823060702408202810978584557709214074710786524135310669045165137344164662599938260355662823581404523666247913388887881956034048222619409646241311299587580171593093627664711589647674427076069902752304323753139006248167258341491443348696198974218231368876896970747706410747536493604523549915302954818814270458036186757605654645454304840861414096884658825277241159099379882089706877379142818259078958086503040213643602899913337538845216772172143027446324425002735123757742609707665792981086807099683473635424849386969577163929448697762440582592727687382256094112836779440981726226228763537160902887894601361192445712356717583383104488794412282532624062001855997914963046514189603940448847310308655650383081031172771550616143612935222641970581889787851909393426328909785979417533476942388111078550970426656549551342450680673621783908829871496339935896412008621411203783769201128680516997352913351332741424643989667963828399168983874681581887422655816267407520360116260971620191395067460504081641972924398908238581643961989072565734128117913248684908070289236551544335642343504938008438856984645102669650061908508038973348718912369500141383890183899243001091257346697915186161178893481108094718108348642829353581479061146823183689485256987062195280178295711698090981556386841451043492500763985429273392512127057044867562181845811444585344049992090845644176565677498491139537483516386480548611376942229549439329150625517290916346703411999840026319901979548012063643058716786086477496077519882564731271291563891516363308673391640817221957333196684770786733750572989081191273345004726657412927181660261404465878009521058475225283465260856497897034013981242662781150696693264708941219974598665231115167262376938409781073154752225538650102061621616331256670609143479402850536946441977823729758352107724524598971745635748089187605570176612179663609096981492685621984788812356810192744989462002881105806529836247480709314307334337810161271872727225351826587911232991187620308226892093822619564276716307141429438547644318502697426080911980366256174452277229652278128271577320350844247730033168372963243212396799222067387355878159100057510862909380356720451328862015539324934262643164165267231727563397062409935737005193428193520822024760927025166368140819595074565670771966975595565767514111114098014377780581389913632689518433976857191352715821595432427427532883315778010025955243717858328375514804408194174281014386551214158010903604400765325398471872503378034498764596297387406822085178394833657022560189332362348075464210502902064955606581105858971442091763319732998488517734368360216587537255831009512963571133934524931417309199676732548826426196960369820641748568529061727930311614061808061525747546867595135308700972063002630153288509753058560108541175369461728498246025149914323040338147140860716181349210028161029592202539920354640772233975340189383764481485738560492882800158721140507849623316780361509357329894354813377699491519558092688113072965084407244130093559505037796387456511982504920001514521565291841319329061928979125720945429539307675199918126233828666337600587725472230886471906186524930172757069107093085547186229067464327444845572546573549112459576323935009251034085995498339813170831245689110441471203686068871504444574776856338513272413966469120871127834524333885046961343456139508103755114271898173050945736357066909485867301336269085758170070139726178062406200110129169076619146757499888929123536579972386419729019608203614710199416187966762676898269483969196741635523078256521517217257809456186866657480734184841192849673892175028342145441725192278912396847273325413167933358445466299329654090404530544448283759292358651630271225859666349694213998905402941238468672453162794040491681318859411698641533552028747198965616875776371453508347368178936865515644462392956930978103178490602756870838251080011708499160569262934241673962142130181934740473519056271663108006171494187296998441246692574193672739256883337517149488337078658931789474991463345781637604045709206710596736215507368051579312450685175757838815505386902498223450096742887185900989469514054258175526037920124821156513033792951441132942061883760864420685190868439242927850947441969328519960677707136756904601695936468386370034691136478529922517865172544203566333250967349213856914748968112284665714631452630212579800764846683851406273104288593655960426865001896556866812025616189239596825149004969439402227257231367589935575459807936199031153491885570242684399164719339652087745957981197694992726388719930854457400162230456203219321756861162392853085993486600185634370543851406495453354110872755645910389599434030921698057775947662598081984347818051322603549116898648938137154623959026432985213434617688711891669439373306830883388029225654663955376541758480093545193845135904958703360674682822258222840954940609933032069835435371076531335731420095810988127895599640397300032945456733874666062272559413142542485678794217283816895745046055017253926807760531458057062072947610834651376099617531823871767137169964907445746121622195170717373439196607370050888896128614500038059818383246821170785495986374977325605237806499826382065768359699550751151783567179362745819551883712371820985196780963236495819817794267984177280139445272127022449071447372226690222063556503721124961300933521067181549335886989166063412206202956533396250745044451804394371089845441180659578513386803123397140590834647018899650530212910572814938599923510658441454043491776141575654661785199013919044073082289354201226648330840868427952167067435914902269433022496838756364892767282108093733909499457934579357963036100024378521434680781363656523724780190735554096337363798139656630708953998957604229473070373290978709136485347031175602127232085188493152022353557982400666324135741097138325397092053016301990492859193152982842000185020307914445425028100462974400671413937907734662738049843059867039901837228733038916082065382411857191183935920991942154804701537723628219749210830247530612666209370265164662078706073190476003682682508567063347545548427816820617720267080915914543277998586117853985769751129812843485642685275846784575855461053811410738721155785948725113473269749569909111114831000591130534767811111426829009943161670426960747048057693979422538824807524028940791657908367901927060030496800864692711868405319725379826196760879505872487791190787904108411569864546995172407034953421855494585537994929698131820888448435671197802283971661058784549420420047999195241079923132223998434489565704578278214625931948517215417961539826709305441737030445493049795386947280463556110682680406306528246207099286795464576910211227149220184677704367338511961315536615555287756835855326157371641489470549729245304937197791998687738544130404209651740060502982766921057538865742923511445469295004441661682758519836023090048537482967088603483974562169092457649542408703889713361421571435883670414605419034368528131875452248456710391972685845605058803502885227467766091377890206862765651893369572645222902369627121576326323962632637724662477419813100216492271558300580050975458812038658545548545182653613711998605439175164845906534102524713709688728675569639735405077319630400817584658629860522315699726754660242182419547786071832027383337133779347419188524003516258345229885284136996188707406026439588231772064924218829548732800252138528217577122903379158502400346977051794481403241780610930143868648386084637005744955464220941888060991124170445671403314438716860984764406595169376171338281212395499621246956622394057257953902605321281429974986483661329731533722192442735402075078551657959619715493696808646580862726033347607330692145723654814236395517061557671576105022512845508519451595351633518193746358195289123125210096749306012547349688445826297780484434465137069078889199757897190168069034070579388231694880403796528233807248121806850988108567315534642952181586535703772566053659703506597069195490768545873534246254551751671864439096896836309126648893767991392590874745573483212504316921550305661228993407484634168017106838541285776045122234566069955299081992899887660939199684306478319682062735110893669719546192670455860569890832000152193517520317470986224974684816107058962068517296611698392514058150614325526303725753957024091197613010025579731634790060376236346930852286542000985735998870698276306726892586699503395052882392112596155280853718613841150456561810407786942219701004722709300435568353060130134631876987037945832237988079519925794296728301706837015960272567297722445515432048455611638492558147080269347980987510831043104488044701806700326358353018892913607392433785367105247065651792222166528563098969546115292294533244121791916394254957481487386973559235280942996156716703940901417802895685773356987227013184095527582562214618148271536035099711387185566757726722873484445168077011002358913718549803083362382645828329081697490118649642299537337697648451063575314478110901603973853933930898685626080627731327984566777387604088603781746794430860816877321513670712036351755522161957524053746146330911254499387974410702444893601137822393323363932411352876167934182706704873703010661186681288635151132422262152848216870108042242008956672510079699754999651340220193710876170298775380691116765343581522506607068904784493572564474021165028607597876684830644310127927938148471313887196843171357902759503066485394812736679375001312301926101137383825702185425026878406564517012743820537205262556173644747256272550467529638708055339715649310415419753397208720270741005804864293839423413601596896453265013180857830472308254809217369744968383150741133944884985369998869918183432049954668813519239420790101817355004884941488953017106189554511776172535554434407342914427940247904603843972583999619844103628825403132725163010958812306449862232763966941676676013914678609112681057540887578080579503214374300051558360021774715016875808510979004133863885331478174221786218146488650457855178950589654833273243670190059835917899078863825812577033250434415951713867690456596270003836013249539235930779102499818544185177435960135931237807488142058102636158769625813599112688726064118477526300826505952912820472683388756101140530363480349684858231117405257889355327984713767647806151744248363815972448492609579746165144800585258855381872701502963058087235008065176121856294907892620652204415879830469631301189751363734649567517675581035931739689616355341706471104155461675220857648782516129515086991996063652071836539246561876436665111952552392348355537775870522991859940472056266386377302830821831835186368623810870380937638272624451491514792303126520719128289274115169232389460328806993574105461835671471973851168178316329496917904295507014187888603831980016342346296975960032988676813917882581218136680643211498488205044703086862084431288040264219163104711355420572227769653900297145542415454443553577421395652322523670465058555242028218738294187213436281170181707703824457533256838926846979526402997845039298134213701792987484980249539896364344608608942675191434762743588304138238175677936048013193239926017150489650249312008619362103979740171698597302795313334735834222339923494695242764000852997481474942608956663169849415760112960520889202661290796397542684006661129613601862669589575334116318548423923853759695855080717322981942113324084832470513005227452610872276370381743096581114247846632827976194581253107750647898298173453982938126338045275336605469289569991831828210883844452991604903816893726095199104369782899345574446663694778558512416906141801941428294805214921489082592491400485658060338881994646178219635182129292455537823875205242161108695774854354757377961890063357419454213637907625204688706718564726523637388233297902873632840412589411363247345636356345109783915904652148237580859569498865913959667470341292271321057946553843580946494486337858276618649752705295560230326704410645441157079589762887041689405587954176973366175977162237586152611845756866720923603341753549484939311102917530688954336633667830959879185871778086458580812999397311572921112081319428137349019503557087315321293094490335299342973347485786058962085341526584286984546462863963889953270628108798386950866089985039074398015292304025152804354562257509042872001386652496164383403838021799089888846905608844681975543426545837982670108966046474110531365575000980125798075232966435327881311495972487350102915467403640389849370847394893051888338811755476797136758709103300816016966521971759532634446257773278582355498760612742844859050805728413871032273481099791904290836665089867837834862316503873884812520506033134498831330937641762862491074824805561111396149018841663570662923400563557440405438448595652141702747030280512741638299699659120396062771463547603272582888531459413145358878644157419761051292891200590751311434680269839539634178710496163466497412237356134254009760216460567765399531357458919692096563591705832098121862381035354123762381780096460652487020263559766603153983648621105435550904964850594234201794531368562172918362823928730947998690604431383313259395243448899656902061023317727208956141174398870747517734998379637959597107640739835020334622945498863346656597954314226893190889728393562893334351670069168723299103260896234745366706298666510485846554064334205426495542156166368040512322730834793467362583566874971336018715829542395578712788273109530913777461064510277830653329923920382990261145151815715848961614740491702487635419883209655238312702967737058162354651387586500430920039848470659214612134142202637328923432174692599464549455526594409099240408809800190619958830606674458182705432013553693849567513587145490134170617265934668582097046430689881708989690155717675189648972215533328293097658601680266250316597841978492231074187288493807934302845905936867977571790051535573486852628387921722675246847615675285804644475960543808385814036408521552986257368151382787661263224207942792997071364512618086580443236474955790990433299798401714182363390944063141385454572638324896042561386222058818783597054272469000453393342861461975725835029786536932423407643954270915916557548403573083896221099313397829883962822458401114845702036601426253376027628653298762122426659407545920621182813272275900247489642590607494679605799669965986163637976779543981489931787252105489901454825577478045143183493281681033090702200832579167905750730381038721384042954645031024332923773007544965553412574152544605478380816164667245908553970405613733979669371120777498663106580886596507200043209151769710077728142770583903399201519750747920031180208450387951104650890063386092751279414979829316727536164463598546667166515008293388527475365384279091865165839811445561045720838214700352830454087748328744110012344973867512679349787720347581734823725519104865820752432051795572211058254456919978071842842982139491166726261139181202082566849236244150399923794857295963137371602747403649102491984542122203889874940627629619224001670141415150489540955239024417935567310832669037267840518296477318457823074040865409306040837153694193182374380819779324698838407870548323557171560727124320297080956656789319389112217329219911550615396414633852056663519614109100417885517187861323888560041826781703055638408446537688165431632767555025286606588622164535606775794870430659060390885735969064830801414103553003909810446161724603384853655862315996654792301611644546055681212761232829458085933657673688046886672025203926182043758079726368270822908738179811475167706893587174710564483480682834020194694134966428079013937079878989044470073687683636602701570759603725917021876224019644703581247618152931077649071500144478907438453028587957550582046898527778989414340455926249030091409559332200940696829769422804378573875273704956820257613099502378989668951349626537209879785601164260729963182986289123331631913342285934224536524630895872683549867388065608483147811923749445314581412706956985917599019988457274861361094729639758565634955074988282720584698456571998954870975239952245000385779381943143900564289430627766194128327887729831276428141854106863119123406112799030316244829939255246074876996822470199438455890864064386166716766946208512325552066104228919326696944918556319676393739586605556009940042704968173572344647883404794366988253620633052898918766786176883656614590213084417133056655132748819784817288278596813683943232751129998399380820472965808752022314912533481452472694161643747487783332077525785329638742585536426479754923553126463550377076800628236919676680784195481936965500134395173074050685455430072540831780293564667074315875710387164274935541208408282914471198179414039142274022913021561555644262976150125439907940189994843071135393451631041870414057556568694965957913613181533875105828889978048559832886301763836729304995285164594274634728302099456277694896562348124705565889615295231149999463397123960621997579480503839652311482786076374927676118968337306290955365188541974753773447914002369320305914153623650150076442688354270329397666754235193422854622150511254459083425159460686430834424662754116388554356886256800735171203106581940012273255634662220296096362495417862261752509330307347557566392362233503576316331526861566653605941189521565109224722363330793745837341569147068135293312778127432052161202612835532819857118858999662091894701705172946281087731506210136443617173580047194745227560710322419529623434736103428821763445647950129494789200464708948029096764682710820279625936573904140446591697676587712887373805831559961771175602472754877253526069048704707381850694957889217934369712657951399779519025952168372179529309939965116736949817763341538232201574291587813681550779278878371550909903940307594506501312911363879958682903369283561679473342760438084640490633753705088959034645460982867816892710500472024251124399058273581464144629357826518408952557835424732516442443596347116613394520524181382717311494788415827134223325206126206073685961304351138780620747163745740349191955631786590467160697920943964103255479085660357566097257924391546579616216739486419852271586213250979663990694051139880890427433709041240804531268507575740929791669381986991112766624749842363276291268719201827976481491390793652469950801085639436810518094682010872424438307434881178687085082150229521248123334346420672415305243386494850281639067741281150319266061661072727716873304313927061888004966531009518026917256415868750277487922935394549596450783790625621226507766511473302917850991392275556444960339342645555271063665974964294335438137644964905954603715920599916657314776839029076143488630830532653328559315118791482834564522946876068122908340345006336866806115943300840951909984436582076686763203737729249360707733237981644637146739681725910706391378179925919590087492978906121366956820255826673497120813927896370638838079482963510895498703280265371362881957934511326865468335600857699661554806694679483887927225221974241615988993031834921273584160646463880650934471282170188338941214780742907468174628216695506555871941121112582465959881106515645017330198177250122844952715632067022505740845450114523418552603780255069239850294889650358159782962767573689275441083894100761618237709894527514060519292780744774669195521405958538562877825710625183003682383481304349712017904989745810974159979235478314894708221450613295765239717154668274428848196442717901504321385048940111080372933282892590252336401953074342796961388538634903462119112277816049177331828192944186350844476982782101290765033771598177844326601937821078073493303355140265705702821540514336673623897752227951799531324891245531058428089931076874055053652471877171453779794295064583720334664658508471520641320999277079332592932099868281603263089941445659109810845840210052173601151275335184085451297136134865262942627490589464402532519538761122979068280733938716145653886565740657172321413814845317560838165996846145201768361197991259383763276574191762078682575438106478407743085998211103795178454412775836763879623163764371395543806059431918298801426404301557583689462076315520809956068184223530895948813407269097875161421528287226472098762750405221983895482081141043242011118512451083281549830876418587179111167529546193366416696743182317667618968691757825372794415114537833756961745798542690422624524407796520146540096236333233073665215945821256424941074362348437524558063662911730894531588003106791197016391913842602010482027684899078293596061160466982068833226809600904666140410973327301556707353927165624716576427735416027044542323736702895227805511998975585421158970927123070379639400202383483663104281146003633382835521230858453456163168218097796054710295179962597363185909422303157402178345983094227626710715634657171264348318870885286120507866154527312936445766770564986687347256008604843340532476804419357638458494671568440868202510336571567305407298910555605884834270125534830246853809552687447696277009892533013283484634345784451426729570093291142482247409935244211882309745208741364299353049766225438468288830029339702338299697145658211230567604023665497847593860713517340994025624035151705690807931382431500512104317567008372832720954861144698914738394375359444417277382883731725185617696820150470528849801177014850805599244501670428246809116214323726207474132465798488387144190380453805688726632271397560391371792010614472564359620306122414437523349821476398501485897991025335525593278725107552302304435258025994796762515362609074282202704495191569697432837614930259466875500860875304060952044797016858995629671547976525267926177422348433509386487561317638125633721789859600311215754432596459993693770897741639355290721867288271242858026282626399537801246673296607881877483519604020470906099791615753889712836753771306308888679411259390462071785468184213905614371833837375288742281681557810503331345034857260636373601113391085427249403076765174186204272008614441277206690242305997283449195980080724508930310802769453759726623360658870972541403793073497308747409357414133066305743362401141292554616224773322060068666782631152848246011421794348484614987856856530517347344246179788162995738353029754848951996946226360616050080522767954297696265255009605600121817330039530264877223371893114067840642537351757581856996588438249776641950355844398622887959221046131242769775288800575327984585725762881141982649663983824728510629533209848234075022985560367366503239208057128324588838721931747797256328210124624817373146806353921930443807266324871444049761544320983312733512857634571422981253620471611850276198536022376491753571558343222428591705916162830112499683636467072175659338688056032061776458480569294746548996574298753224223985165100165251598288760311152604292376743011713818892671163318542492654291010822109042906703426365837764713706584071690739165395433503343087680459833997966765542936391302715261861508998135779700269030316246531160140457154369830650069789557860545149756428315873110415274383479064990120587624494239979927021154558837126197517751265402765811317982183807540019049721487967052890703609705284720513238648942382279423046298661407366034058924612739845162427412352999300427620208195482455427463767419704286219907327523322731040889266142475322044335501511710755277553404603967005301586911802033902092218744521568442754327649564165348408047872732805120447646443262872626898241316412169625402172598162914590501974429835485576591880297777314558147103546836225409683038161427902171322389360219488513015035831917014748015770234768920781739355775580806465129286204800572999538736587537026480060059002440333035817460362830993720217497392130554029824388355751220285592785164759817297234136722408738640126590716961118320910113924579601584796918584490616963794707945877092637589910521385247962259900195875557277585704658255215223193982496431899583305068404300937764239358280968891306487863580405217016822831796977451225124159818144764275073233170789056723600995596242344345792919439343659619277491007546391866980704625060617115922525083030841652883586457088421893760155402757934036324585036491503378132832986694002164505044496907343455026359801415226119251703199702572769170845394041250539662510178750709352652458455391418993442085150975075948708065834824991948297079452326099932644647525206172018225124543720884261892650284879702789269220337742896138583403272656957459461835385908383925500786781048763658641886080633191860812094833042067952232669389504955965898026060557860891810188457161725587392976441548233173511008668325400768979275701946659028416092731915411276569244584078551828643222069503453924521267871623672886876471601741628848987692700999790299596720035131765682147519969562504585743755351181847988951849792991279859577928564444059783370758219610617812009179400226015047491219561380490227763047583240918693944086564334778911848968442690771756048133561053848419524702826089201333017317101280971967204738453602836188098855252234108341678623198152746280360633736978982921979663986547050947041451808119088388914667507340618140183597736975536034522918387016840912198907068579411416717545443786977249842712414632804458465308815382473040800712125816153897722997732504813243996884328382165591859736303171253702322939686082408812595799496384031119535240046576330984970743458931614812581204572275939883156699040532344393867870791035950059947968895030968638487735515413063124625941505285733708935232084840126671008977964315792560398292728697315375491733134043150805557961906863177621647703975640199307491321666099168457652437263408437177514258795013312655775112699847405222636435838066691926122187566950513911997530842081806152589445682866818966725640590189716986730077570220954232873107592564531780364194650167365738456035346343419091883658003496193085417629475770882702232180116885947564068223976040426968608195170039958735991233599987961577435232210528008502560691666423431389713784181509159807357680484421426564399070668215284715415581962533727868082940648455217430133333620087131807384123988033993265887289485193833635712003212700426263111712627781183476353174794114760241420642244045940763280267169697240019975731220708825330087779617653798333781382433990684082661346352806676837175473181305910985475636501162896364996786136473934693932056437759797327514973126239803601282043100814048413220540442772697270074527874394763486257083960529567522608971291822378171150981174633852116707930764089739751321119611178600582635991674389544960647925598323171000827077175140088466413639882665900221127952832807531430708542311344519131665228624656860755698274091095131354584905717901219381978794826792884358439807754390940390876281510754149020800353103065919389491996288507738643879603589216062616314899606290384220984577706734521936342350220896106179073219190831602095126355525660927095500420279186702624516466250498367124318849005574344148866222393468887594649460719190971695121440332072595892296270754056461285784809571251290143837291116048408568764326170176288134022343321675232647331555240736315452837019505185075407852538247927861144692207782867847449877790418041159581760957080518219806101247157833018275648703428313144758388645821234877651740909624399335626548694775264259120363574463109961001040706890643617176208255996015742737896540223385413736454005905290033518547897700728773889055462661709740940007747549015330972399389137851463139223031504321801158851483455753400722909952562128938086763288553826971280568764214452482603673958027694273669668439387396111279366520782729147400456917255960616359011900762466158292007656934362914497997667098043130755720877908534118601583104352036862878576821713581616940888157779265316373251498514769893394800958652442895539269786209200488044319574438314608898452340741306565697016465977639483045025641364226192426371512618971209558175877458031664461551348561672194291052117642875556251958762339325620860027892739818803157929002563254621252428871605136260790947638671049130847192949997203595756600815691914770154564313961859288560281357935624683737699169306859887244855562302450838246994290674408782372685467646505706599306767639691649079490840634515197047527330821098737858664639937498022345969699873808141632215501766723731214756323673348085585142898891488677789085904231603997646642988809765353310472322707690039763239991919972991736517213094618073001126247880565108629531736125473506719317224142659992204625229026798983659575129479632221003243741860298597797566522577763823693335636276257440592788030036302430023360650023930368169057553877417385171508670027539487665720388591662352487269017274638955141297785328972256929659219240907061011502502856521446030995565687616746994001513891777159779335534042066222250911012211875600895157273365326646110904192150355533213231545315235742066387542611884186560000475246338618234099013238730560087372702404402535102589869804460663589189790354414653036513679026974384146481684642063011940850922802155117438023086075305719889785337159886373285895343801703078982811789116084840210264380956926926698932902899033215828170077509721962478885286908247688388802214999280848981866131143212009289778628154458998650097746922630559418856540433701470990911662488725331123066597894434797877246798823103927688473136586694900605176904739685848740902857994872007269203802396171130929559589581855574966713037889895491766223489911013612572580233969219521353733221354040314390079346271673172895934666288709967347867782349998371940766412733185427944051526303332315028405362367198874612552756610627007213430502200855155285857092065838221376046572145956303739595830119514319561055455330813025822462083800503112169239039116948013300058961367149266715137479895610768080073416343404876255137628365566048751551662336799813333843058154392509282162125498543618404645505407986802399559859438736229818272860932815077567953320400578483463117457259640621896610730356672344461865167764188587027469269029314996615116752918935922694617942547697000825333663581644228785852562211941384980816323702334229328641985592045590833050415234339619738837258685340889521399688681325150185691220106639995502800090446415114222876030089634397803083656848804070500079700516403269449347497745617602897572510125436707554149825581807818717248457619933532343275848359211197424708146531137138146637554469517132080847759591199690360068980107997929147293898022843902144117274639887908323268156826499603320426228924974054903717550888459341879227746345225771677699046875999688701314355783351043356198051538681566659427361756472453080183940591752901988276635539373440769398841991555884646674565667924886393032369579170103943034589478568776044193035003527909716518504128561474756338698056498119276433845199767970993213574358777847674346379893102923762249379306935767945300815879437683338962453689944148091299814025388211047009888050597509832792785929569266721893334127172327719637984988599415108714085268612015925339651595572024125022957058753298957090970121322079684068811279221674265290943136321808553267063335443342152012519525381373855377376195826656936897589886718707549837184361886293675906749080846682209336114289495705134273370723811216188675463692386312637169287555551233832129060233543552963496950240746926551045079984608017869648772590925723700695970725353387047030345278513280376034663463608733401900141722898665117940014560700518227146087373634795568875658409935704997767147536068897240031747878411903706070454150696366557611923609349462556196760551308837456856808998273982814065936721765543107802181188062263167954069511410624412045269042679617262691580750489522136575661806209177449171476356339653786911330362582927218995935996845842311502760793596937406432352369113965623022504680909187827412152879229081776382445485604367535353982725280438921008146821644486909641394873758615215189298753435822114401138993412156528608007910408883488825312416395947647063387521757570727926643011004510918851624012393938512824977381663018839366957928074910937201280999600389359650582316124343692438377182456244032472430702036191715460703784928305188975787176581311723904844068653893789086931329177813772763017552290290435182852598803211331060198297917828212559129612452443218715939694389323859939186073157443541021813510293408522754772356211023145898325998239607651597011066055541398298868858915012034728171071136913664066388669755625459747211924961563925738215232327094954556923834958994675000539509069534237079435474121946556732272249634281088348576742598347250114478926579182442564588157523284491630788617897153554567915740731618857713669429182307560366536228162402472313960911893110896474514065581914884056121708105756601780249187791354322400174869565208610600713989076553902133922524191394282884443448878078266576928892184802038840774127338786964359426213453674908487394020601589521059551596457106815862755176809031830106085825177025643334966913278569938197663986501528620195017617119171486319115656774070814440993910696605591764852096842414846480134656171402579176884264079269163790274377407187105483187803248216998029492491701623447049725902705048558555385848109814255849063906460874092952447824935173329768338795541405566359026288836815921343274564559804183774659485770904026479570623432290516004356124726208803623143682908463209600767015257912784133155200515932189486107396748673512310671966334227831517184099957000520908279422668690128986320739832244583506077996395551646071398864107492623654946266945846692948768267406671793171599917293782228304956199347760505690257871865285458217001902467763730046442097189559824957669548066250871055622542833487340611522212839711008769025477387367200101390855287716203606650903966250894212162388391885732398211230054774129602417765327554384072569357009728650002365640544515854541514815845879347451736563275447535488353510020347067422872009475847944812971566001697366143717847697160207167920302915743697772662332021519527359705509203587524923719469772164829652315183961191496285822953335002640711450321658397863866177885412078007832789880710056870103524657956133558223214999597766978385204740733884666714017060869105012251153251012659711896487136576582877920420247589218324048440493013223347120787237858223778380463533659169054181188704679734836338303194026841500850380130528066614470151278784584458473314381116453849467481489602724110381351051971855270433742402305735894272707903108916882491239916081750997866777514101289663017551748900008450351194270798613482876990456370577762493388513268241655992220801752282031400223681078747213755449729626968679670854416867223274619589853114449787238965443570781368506639443856122947932672507334126571435237136048367298333843450756420255271368672513904786783393504891446264257396315362719744497168899591515653743811330666517664117854907968107683348463081457007965273042260756819618867078603208853019728421570300286793170937498989203314659821853028424190818674017097394251806942576297626095195471232986785519458190804078985767939028351505907446238876181337650071734067808223777369675457665348726909021222644266261353877561351228806496787099653389745001056618497453781153646250179908870458877155265161175418408827839779762773953689853927027084013302534071086631553571039041875908111119144937497309385442764915076298980610500994646822133308881189991776341240354886496112280057558783096230797658045286516527140436909944611369084891564288332393534038158407132807275436296070511348063244942816933289161338642068909196661492350262029846906835041110381862331835709396279426793270000757532741448111448240671771715201180437880239529453145297339037549554340986747016165018760469203732374257163472830561150156692014502771774374138303499081538501316209928562408697560574988640106783857627173538132544297645847293811913421272743113050028609420731286583180685877791874915716621542272710876673784183477467588063828551039429715761236223007106270288521293897314590330191685729293823968604889644279979682695035931976523188746102831364039737010981132165496458038984270805045962318216047684297513813313416188648341157440881068318395271176128192266136048040988279125436293635698036667301590349500503526562013856542683831866352173098236781650138424153213730245885570150611613109079422634196047428600311214695576008831787354677792854982848634561172662320496714472043821124056716314359839308507675500918503816801576082565078588427691167653643998140624004015898299453095165011961214462329473358657068045639233056535536237104887717618049366450527743957178586135662285433661093708228195843512166369761258935197620484476549879474744566990704519967715011797857510197368336053271630020730041782726474301566900255336113854824973432692946448106792826162573206116363474291157747314632253293825602152690855358190280941221712119093859820858165409035722303204580208762181188439896332549642582437844546405546569521211833580105513274754504652349226907561869987410325547823816106818791920305947237955061958875648366930149553146927929051832497547221168911901759181629068806032506971466541905542015708807919828114001336547796066349389468317152315489115949384056754195985992633918941139385212690533282659714415273964813331676638705876854998110987684272607580401395252482223871847201203728678973330795829746707661309693983996682773738146088238450500110851011242887651971141542240227707179391454862164064628929262422206339456400632406556514612509316915436561582729311223670272427525913070569140700882507169869442225005798343494578017291280201824096861221023660938385046948406398370910230719422126214257020942615435356862122470124304553089631502964767293008233960385761942882838227764347710073590557457504015779711590412112316070681274951787018251415362939245925840838673159780644465551958636871962198281549329318878117613955733656698297798565526095882665660218855264682277908403146627343441666484315285600729964465439565968221112325800930620937286769792292597469029781618240708195970333564590594848443222490124030198403070668441947130126295347341103009369646917294396082244925258297351422043712665272580200186732498284080524394919942404739461357068904452096463789772931484221112021847487672265247884946241960539515732988420424832790126682280843840268005595878043302377101350616104581314407782922608813631176478341134386150686651073140307442012457092546192037693489044523093074936771816750886484300369249770836808191707136362006240360485189241327335954954002330204152898688182705784374899903247900041175273554681001887259358370950205235533551158510307314880825406671566331750285654996339393449511199460130403356916331378586711808444083954653970394242371895505334240556582325432923159419064292548847955521275610421555311225281415642038054208215035103511845805957393829879320981351155321771304882999327669945518399023397400958832808095274648718030206518306331110558484566799542863048365831315837294698357544828560857602805470139348586458681002649459678420037990213914169213891647529045203944484182525704701754857346712413880193564826371286490090217044917650708022275715179411903048359325485314146673091459698666375720533588974229801260743223162954286809575890355180256416865057245299039657756814432029902275030551715777417823711310356778621139993906997892351515636487991412593634427765784588779169198245545620853180349832295813508437137899776382459928544756650705593535826283713956953525920414452849503226002025268784033486124671564869538893138792316711942730621250941392889690980461345635811674780328315997227222004619116481055872930048760880722705091127935804889787911005175641223226300169195733984040663737377382489935401127202644396103374037675728850644091692626353068652646982887412354152253865050048620776425507192685066981167236226453841256535494824342089479518565139807497807726972326831283192652644475158850270130339291423721900861643499052929405190672581224163042046238797087327461490106871245073790331062186824334636723924860167157569332361068243920791426231026907164187966743379769759348814536822982813303894836336319456570023012475809730995282400627371901904392977144255738560217591388335492707097977282780018217766731917955489371203771247444520358171159940012286164180081184610410834904819586973581370058132094515855212350611860956721544542969923852501831703794990225583870812189129565690238252562991152734084878015135468740378240351254709022801550344490280266726206353744431809141407167595157937097351525311000457414971264116724616536977228835355251590498804404427591813474320801168305933894802402197282376357407106623092392520693952304261128804206347161811076001762547197816208694299574586735895472962260102997626197299055285890636024810792407955773073815451223750283180516580388269451046131022591198381678091222778287368420690041533564901158766887701708477934297002332363097955128850199673777197075055852262020828683163716537220660994275345078692259462197922759400575251017213136931627236145214589097322491165824485851050112625429460380770253084697249077997091469169463615643898529803115817044476148157505689733445754084798286855061914408547496461268935646559433714514522262815866138638537893833958932269705417384706511011146468979682428225879834789286048203867497541425810230609022192825050882904938603515147291215896411555677840100525148502236143820720200121454412911605408864373521544264511817585116657694356591837556402722917174638503278389365289541271554485460465068744953335124532131268301614458817832176629687791797600339118278135962432637925025619693013853739155596645562957414174662953414036009019084172151252607991199671031497035094349272776214880613024473990093713894451792690454340796399249874975686935606989181945562294072078277859233499496214321197829238071125541570796815539405052936004642902442823839279699257303131689436305065222979444701631349137688021861671462691449067297993322326547376706386130258711597927743311541044247377313804925215996256203523436937105272573082532855902357713979934162129658467394877319661157065877832888089936840710760884904761778937736988945036886928855327708747877113920931965853118372084954104612504543375355980208283880711616557915951722503669117383950783231660232366830740770347028726825830660836432774267630223018726342557122111781689165011197679627063824634520341226301457277313191137537971788228985561756161978786112511981415870533595180857162696451943961212153231432645081441471921733492562582536155520021955593990364074555808308979331325893732904972904650195508552358109958434072758645096542956558451962622675930336285983339078542841093315145599926850500086162708196153018796668579074362456088550210285036082755516935348659892721419093604018828723792955596101729160719984060773150939875299537519674759862060494232727205431529244183882881081901272659913085712554768096521852148569270757712731609547390867980839599588271994739553218688430899467163878369489449307246337671543611431551829384699205911157089115043790682542448235637464240807049704299626480499467052278909781980042990274161251453723211093242202735927117648078903565800075322295659954033424727929792880340730933505405662265708852988055003449963642310515865894127840003836389260964957150015495479133977849620337143470540242344334764717278728702091600755498638119508702555440992434370117702975717025699448696854996305233709120306578836354097188819178546727991727984869875644043936004986783673609448967002415970943145444551352140126468864839719781325376493409137513087242052901733988873641168920049923445436595800293303593647062373173670902525385641454368708377996509956900021156424801041201601284329123964198462917496506315664347704115387270244826026488786982442480338313991755654846736579936490429512019185253761525771784807575201888681283557974807873625503932989773934002815567731580464138762930253746630003361867669993969801734078847477494522732513210856708554668972007228791920750303096159450450997475283333366062049146623110181832769731062274773687278102508216808516899912022462280008153422601615325251031029185111260534808815835742994833843404110511356272698048365811830627027371503041244766858997248450678995216591651439256998390701210614216178246475361338681319542384642320225284008359176107090073664695283044867733791170347178293746508572824407825608746591222827711608837580477999932511420625182617437643187764461386246980134683725332716661788984702154718203374810299359818488358261726728166652791633963235548554675338450025016015490557559056252267820939134108083662097234955000797545747949079023031556744532444235547285795016540077311188302103313673900241952220180981373380547886656608976394542029297357569808782972691182091898659639656065814544869312071454699591679970391202217244606887997886604112620487951257307945577670819063887517667158335190165769413638910247741443024046489656002346272328496818186683015461469546054397033974060958610623414413948744770958308771388368558625935088784621258149231840582709917154133866785447030666729041259598414876318234434523832716492096688867384330952027683323395211370974444579361101236441811051508132870848331774990440587934672573971437557185408565753830456631076060360980583763822141360777943430996647873367454187619224664007873312071192810091228423431023291213040124440208794361443998051760732376209582657492096378319964589289521377888492761965243448665024658370792037857090763846423070164985568129515344816539902446317097255989027551024344305216552434448343006874648166149108146736061188644137776090174179804890252309011384837631846433984037844120533802499997406187776567827012286966196889709716099060374871195934827273762230288954102271563277096248160365074314367288940532051934439505838011351250419665991746816839650171914314334461202981902981520169970795743986926300445886915048926389246515323694748592797592039789266984433431167417989861425086457864644882821154768281188616784065927972729396891140364729460866605804189438988401734031385808639548616582312523882069329875242795150711834697971683178820129769949568786057451736200596757406720297535718205225494080101416868671468372752728656555059615238278317221703197806733465784015432313314888996609577671243013364929912717922628661297535080325689087116900437317325410342994968866445087688387580001392796643216550447613935133091769301854576374975297359447356321960288543532479898480951180974678703632979968962733712311736575170753476524475612766775194805817061734839492893652053919870762341609029969740630157765094882474100628000468050728547040302044197596428789194461404027765831202245758908828848454565773717006158007747395710502778360641923889391945230917110479762086430821661142228561529142681929218844517005113511846061175849382017023954880368889660241615075188251174296488188554071534167050703320265298534247989532951183718389635088375287638837898008275523423551748772900750850863420518560372752309058176240986341327934806107203262097915989986561461525968229813973882570831942963326294946980245107832706579367588738134773935985736516130871574773828913895370576448470988210221796742866924027173835070819320118851852617310817410733212794029435356437785653752050199266663146845135781754063739416947347527455926901838006558317826294172627109975212142113280759507041273190679538546266917195622416525969737789016790592672140437589960296260094753765716445859667680711212952971669793570342583309701154503367855755591845869063984367314591817136492032858574453629595589210297745315716080222803748023928637394764629376662871153991820457817131089698105145723407724810213483984944344901228766460139589194949893883833579029344197724160540611497373205888242732572928613719133020257005435259565881952111545941879452732418049326489446898284516562656057640550693546821954657136668143951827795281424604377396795254304281634380834027437240353814923179360369960579218823461741480740291058611683492408129621048086676103494989264072145385832038452120984376352777384982400393048135927970013544380247402574733740239558434620128302801398794422552640230244514811345670486165426915799145205720239010330354705671770568119700028693370391564786455801539707556447461109448846220173902718978530001515983056369700973364077661986480704979402861708953381215370523147915118782562570890557711801970388263743522493613099078015415613755598592299186616265434083878341280072059265252436752072826714651388813437001480540308051365892799124749300792334472756257071401893085765287008086406963265514842303972546091567432513188994741865127408805098840090640761518611378649587915447993339661757452533766474892886686988085239201483148945789453226288402919935221196574733044546894315659947709399468979142649987565389736104152151403582851020826481482685879961232493549746565238581577548732391306200708656874226443372196957124539109101416238107959943842392653555953191369021148529039600696273201041904320346414463681656105972330197848899080767568258127513058186382715540305423732169930644180741611681979834819428596299562988829514004913940840623260720093402764002340944601012689648538856289734483131210451751802916855342084168359331435123789296452627771420796088762493459073615587779335607393780293332662348156575774921345774909618823143098108772781226947984916052384303645254408069530011902328303337179053908685162502388240117141912159866534915064979005961385181536057758101302936351055963164487582594639859424242660270662390628603406511423019955819839575789755386127317299094008546144610258872121737306753953258811829717929808333196044074471318027302436504917492597871200653424327409233835179228735946433024600944553698940379422365280100320372415223095810400799085318651983653240213492052368669576917879371897363540187841662077126582182937477466167974996331424133605447590176697999579044296617147377831178330656632129207536659544187060354326072222449066597966546528626191470948065724091390368635667697610291653955875317095653392910405978466681513043508211606330831740174060896594999122272097830506964473047510936499758284832974204262701983074549310230534224294514309219420587305036250287162451848611728327126026322102121736871538287926455623023989866356750719714156926616314928198615186585006766433378687872488416425650341832930634898169163196348627096383617504801956418314641768216469007073654880519358306262420886574629362799756834286177556054353824040912021966427655872050553363026985689655816969027066921190442561917803992411057836495765416451814976351106872704170340025256251688436425008901523004230672169125926985022574234683357654109186997241929606849444312969662364480926552205911989036828531140290453337070257524094150478869278618538942356610165794415159964279226625754135870304649320103805405657355281157067749373004172048372191228517687985686740793696222382516422587568248711785192035766100088060679355654092449159184415611573408138458011899889613857531107685396983602600750062091570391379475384183636368925481444791787777055406747037641309485763895891579029848564979340419318056437155405696511491976097689363430715287742805044165748502372190743415962608353915937214673068645389337315409756860634330988446847826527877118426715145532142668133050031672085162550398064200345668019823845771784038234523998165314050411647970871300868513930591612577204605294044505423545238259083543601165420054595549015617110137669870584857905783498313825596280824815221936709868966014046049999682428153693720804560351626870092955612248249652822092462721886001225561864711141095018344590457010222249037494203317510952774331285594352824749183609454146816160673781141057115635315431713802261691001883967814303425853240853629830395611306716352170115730328496938349971104703376107276279830499291814026264026773880273597432084913668920164965962117571338310422481971358488782154073966226438517968708863971050175877228500132822078793059326241541479363726106111731637746529232482180188226827753179381939936588220914877791434082967475751333250900936329402328924578261602700026908746464883283587639055141949657448624551046444303624174100060637642443382840392555947505796771222565702848722098366131429983306866582230651180712084093827794890203102497354053037237736738239443292127593424285272885295044357170527931161811073066632914314359974209605710001549164564685621363334882073323483059001177828687014350658251020688155615828319604688289858426521286509178711789719137499329602530275514175356712144126517033379408786016180220098432411002154291091376532468338727730208278904332212241719463891754032392379331841109699645966025873288260749068972329232843098483722880802876896126377124855438828185183450553715343704733036183665503270331450179154919449352225854751000872084865844618275528826537921810996920742704920910029097197469682083194609752840182869311488522529881498211077537149251153787011321210638054547073174578597842418736577228230591689619228486574000046142431886859229507811103748718851089342881465992567213886814843799131546368925756743471038843752933778303295524222850576342432814303508257304193904685846330720308161363437326459466402190363938160114828845468806088548227008965605934138044078770286607268265392364994252354236086755706854680777301479775608736080550104057679860462364031790367580042876777041125711018170849701828002441266426359869690015807859094408231052569552526856965250588783648096972362729089977627778577140905401405476617811948772941844903913170939355718640279897273588845922715061325848378161933723073302131209729795874516304440643816746425504949531689184988401932837386010289593917711158803625142340061880935410153438789562478156209412631596220807412547988558753325381230266768134551079020185111151356167252160003857554058769894921033678708302493023469569683818526557483445034112048162382098929801359680376603218849215827981698626116928604850054797840924331406118162836723359061193772494376677643306067417621920424085651397065696442050701173288307264013519805481287111689102932241730387073612211879734704678823848533400873080049025144486439029845278352424834028304932351158900693990360594320602716868275408831718470520807920147295439942974868074364177993624347363762700704245478104298539329456462922214070560554686687932111053974233568659207363742383825620746708868687951670873061733702110075512628612821259466943670634542368618072034737568290893922669154163494728627350711028947691550255650162199045273679759016190026598870687504964890687653481916854188869742876025233865480744003577968016421977475559474602216275075004144212997141587293256311362660489905362403926923226080961420575980472180295948164018655679780993323270062150876951747949235720846547530477899452850690455291321579714971628850644889727297691336231388142704949646811010121914117246725563614414154976084688562761989359115268133463473836363376267453787659476020288896524970857021220768157156389682790072946132867797458068363644642670959306813117450874348168915222105446795852728135908421703274420149000180127762698663581090802333493743111406250634633923432321223677101748782152771514982067370266322480301020683442831211148526454955086984232688303434425627712809127845040209416730678384386826841374741281153275024859017820172711828488763951976152661792381983651781441815788400202858210684229030510726167819059455748075100131760409960478912949480351448505687640705126523216995514891772293170743640121544553178041662039477461956833413500413729454764969778000486416960145325778264066556882701637872235535446334323445014745001393123114116625228005981086252594728354475022276675915303762436566349838491211740344412230862846311394448340658921097661322919443986107494536912021841582103780824894907644851971861824185069930200947153177404535474904372252586824203011902185900440752135485569124823148443227603088337834900668185484363956458348642581823218359372638073988217566827470964170520377162776663612418571081400860779229057982501576847830996368426122157427152203413301707210741434040165892357383049267827380982902780001189339912315811030252495770699287178797967089891036088688739855978630275049298051544644972778537971934882029691876460587210640086636423675545496437952477099739254289216262661401647647659261166218367800959616568724493277319614194992805825902462807060182056620900020250377622486454032520315562144471315017144112705836041202607351622226726074460170441177176715749067706790451529777570055344854346124113416195363028414494304866258885089099638326118220624766070100227819706968523109154564570911444285553861877960291297394691737358965933444320121117031370566853212360592770926811186759200645140227699661822746106251137531542155138120454878807860122105461647805626909505219539356835444337647572283233953423071638120063045864956512589494992515630423894745514647910965789288819998731306074679085727338613139528391493291816820360897915266798273495838995170322183890776646180605233527438686205718854938030425295377607897210065930011059497887814741841883030149142559011370560311495639520968137745673463280467603270609693798647972293318356888941106648283477028571511713052651981175321573939258922462288565026830020991239114089981806685947261969074833166154198221609156515040110949878199343143912092019306531549837196727151325058625502309846527054078205455805732800852148792648785632615359317431556437528224096687428773727642509512202410063495189006166781146187752186468282825428337821971043050526846204833270682504171520283431019163969247873532120215160156436887717527139199913884769587720231627681516777891081725329718388408411279004579040173399281350725429546204695624856529943488696331693342357378134634826858385110150213992163086233831339764486321392323454228489412307366771317420769832451858840695131217772879763507982244488536733421909303598238448200311395199253561158849494755080700067208905862275996476567059833083368467228401216402388949937132525818674417507687843484901017143213877930197117539017969211014556160371269468679033593569578238999339413063764474310490712730034638540883651120043745891328263432833796503012715332323131653778507747327987267522974611093855706922069484860312014473999123757008420069485340663972696904209018720935240619878867879311590183558168494819332340147455215819673093060053390138162685641781771656491246452905691158153404161529708046579439379244187396378852989274939295243209997905802611940195716527902828036915362826222886202784643185894488392105631588648610949131696766806867560783178852633533310708044547157387609662987145866618989770065204135565148660803353826509908388093090007860566075048029502294414878615425823930788710442069960609181110439317810275254515898321576589825449081652459173392526072485722626238270381943250592216906767752823408959996488661458185672455361599221431404493097312743560386561823091743402127892578600314248999316498060663290849930663770124072028392472078301756937285169243921198291502323018868171193320142738980804523397823029650428958642378327440015502602552217348258851234839631842161509599382698548157355841791164162361289839852584356731548627791522044223157280076918034823406959853835947907961597069764946938545342514842607925122041243019400235227786041821987502817880998745579577774861095204288007984536369963051259901899684009692169512932747925598202231263812753259413751897051575665374611174714609798746085015967692531444581807670316957753260924870239653171251929080575496561814271997761473718122583427914779228089192742834277124411881049704285971084645333241974833835692046038331962845470637680909020474454244678418790941833717598932967446791801434255088476863510697873846006596870878652730054924641377164717022476762950544114495293810923803646478038310883996750304634058762230610787905801335631137791986970020970891749638026147811968237143729753664356485268855707446257973865917323967222659497536419613182137750753929339367734593790737882203921729851451340103426176140059099401494496582483296659498942852426217623535323251451826867478724993467707859137253078422234073896642466663105748396563424909082919714132185441024902353750040508967979243943923615014217347178767382728446073353522323128887799202014744435079351895352286928727743195347015925881717389882422554746032252187882873776742127313449337880414046430093508601976132203227387235025247690677911652586535325443859094119688127787179825632769432535270068012713734260428057816942686209435787564874471277979557997233104692051079557333661252198553990876066199974161795326911898876551613374595711219384728498213922530999140654520691433863066056494893871725334127566123989089804030104898011442973479806305540566037771769842719257890688617988595528921559321638781677430772185404520089423141877753811659971493772564754229620930504097999282755741263339973040969832194281005529217877017738089851235926205683805315858615827366846185933449410472555405433719879356882193607648880846954406909850142361661742958543996914524168697047738222099039608940038319546961732116707312418633552110624083319760952339444549291073483947157234253411702267087875250346098921301175399662052581674299572408022827684055876009515673114121842522634271747635536514111108426854571357107454711460704538305350468928769636355038826057750563413529081088780006179150786001928483249295491288974200115535742086497177031075506970447861695494699602599708939843880153053830920632156398570591666989872400624401658661090620866492429786908236351192693558355799518265158179990077977702813474213435191881010236741556259349362216194921243726445518316754911486128905331200376775416197509291700382573004646960959657715894047329130900692417844628440883296052879885538263106654491354237092810715138792268157162245490351562744422344073138087912336644918228741078885438554136032725438096725627133398261144474368721149836094643937567923695652533893847227226742761848586946158648315550176795504671508924884238776004283074439382694247617528185254543691249648386579352667468629393389168480103821762411412366032121693352185890068229170709345250390084280673247532709214041141322389115267476693689417298720686957475250131325374581580002221192388745455018201715991393043423966548894946498424007672667821648493185688039504660764540428763775190340418691762954531175938403108445657369830595186285620966167028656150214250779025388001975914319285848381531265747314347526924853591987181583891871342163871245004945980904393942606642194169627442014152782636791619989597011322779772099627469642950479407471300081204876312017325299817403830402747063932784906850327667631237286696589452490796868761624528796463295258917607734841940874050186148696606003454309491746372703529655744522564140427727031353423698962722875197516776467308306759389697874551404155542519552064991837823301388099208489295868759304278217210822074698339830059631510047214585414335162262166994580441077755152908703391146385131950565859993386652321451606810057659041736764597308088168075622296031920876196417093508202221312366506497480093988322071498659376481538573360515572710188375047425202228863326022742091819616494568589342907786990325740550952269202906548800998591221718989425562055084986267120800048978427649051129862854178695144324761678391956767959639107332863670402030090227220051331784432579520528205720047865795021902106816794744442795951446591581610362247151853545945057315201818382976404457640581014440148857589397563299100469165950558532017746326922173914301820603163079597684654120126016031238079797595612361150596439011588378019788957311529436417863787981728473387043753204453252026579507451206575170366000483339851699931536877805396191340710923846359430916957832416493615114136190871631145277428825554822216455529905037173708399760578806696026760382562169836519471331974847633030991252746106268523954314994265976871956735379911537687854794752485417035963059367635640582273902740375590127953060465194552738063623249669771237106379413749808115442611683233593937083520349467826906179337212299014297016481599027969713455320502625008792954932756994873951288900691476324843960032249914472337735586409805948743426913497745307139279906614406688155121351617143597123873092773174660485909173949005903011962740238918715972537395363981243844893690404387493120840923381981869633562154658331398350585849963320479672478005710253221720400968968021032022008162226195153074860154564520115138809090869384860759554811376838500988220178973601157332193748219265479967665655645154128847566801457657057622138954795052877952923390183558393708665047400130064088581253572028964179817980381838960686768012341528960874519335329869939790456303725288203141849782585007195614295236624295267546518606887357593131708255721798249728382803093325144936722426625788316179257898822411554787202176147109399172381401014404201027332941445118607601248062213502955403476579058541398567744928150710336768401121113567663973416300322381085205576183843521674124941796464886616838231456792132483733589120055582695907776934783296798182310990432279657753478385253793429320209002269139659491111738437755006336746572681534656112463195992876370734496223106898436301383705045340553573080389527201348626103650631758042765678948015193955311786072709756489287514403701506324163210088123659520969647972030249972285154448223751034615196864795535477178199025577946481257037294387437746961247515958274161488785873623314073529121563363016480212278092455104968285126946323035201369539804925070893835349264469292878030761599448297257083495877883369352608516523529557226164024601943842223227115892331165288486268052295600808911092362297931098975936554535266928032862660769861601781306448801932897393597425875392076901094479516607885667692654950922503281181095103511093236255942479172186055945002981342315433952699533022118170870624008743068952749106655414092253857341736210568849712912953617610196461100331941039811783139139918524601842207242411889801460085764356863445368660095495582962137135661239118616648240885013193962812048623172508358959584166926836327893684727624347134207791178516817491668300023239074509672571040348524356530205142473013926980767344462882283394165792623265564633178549832611217930487195911904084461290025489434823849326851610877248999671880517548068134017183561616852376908727828837950856678667327717012522845321151059507135323106419350767374266912952029599284175298986034493679777780309205375876800108845467563968269486633209869810562879822434766092937165977057552966257415244030471544043762286277527365721835098021742871566307212747427494774228456194159682283803210909300867714088496607004821863173775868239661360256539317730758929376830560121491570962742219709486110728513257497038387237623978799279554581796859702249359432742866128128616824940038189245791035505685838327327537134890627247128843433512748868092140831463540152639581748017613690951350881655384991967157067604774451924216551588551731820143629162667235607913425674545131585248063082233897698245258082609757320099694388451515599889159105544119599716625818817911270339918600936903858608382838858352122608125031310741999145400683938698716580453048694545472258108240524653396387501640228164155676718016404871561222387800050163065990079592439347251140611903694493183240771198493790830026272475542850911288879720016088178959762054809897445718739232093125679745887234595078606838146693936771856686934681483663582777346743974996622390388706034428112542505545711890189314542569520261548065032685156151692954785658004875126019675456043809036386917566009159843912698139688516301890381299662390291369780648720348957400674680608576388635223121114813968665407710565698513232381591906146548531075402079455266983082010214975650343969309688293994844256790340230241838775779690885991246517375559199959189876504493864527014724446088579799440044203884349839967812318774645205879557701532301025638037572141303158951551017849627343170372199322926909986767713529757348565515762284717772848737101430812047466417618976491186979943263961321018363451752318916133205101391046498321358201884072525251050841768610797635685681151832396784607967934073755150500957814013481165671507864637530488692999282385782801873911523411463624648470727374327928854763261186062147154579927097249445515987217703763132456026712366719997671319401589676675570046978263011506742013124970180157267717876301447436654899155734969507853291463786868715092347712154854006469009169080814017304853302169736996823043239833104505652712600372405808938094588643244800973919913052539184947668756258289429106649315394200679582924101673164005006679921057477438495303733017385536719493785183858076903796450779857282072750125863833245443202329880962183674695511056762068974597169739339935216635688875335698203342448440276868010559286304101475188935591284274046224167768329932965424750174518016958734516095887029665570399407317393012484058362976157402835835050743079465519426403072905176399400429314431567600643661008044861293091863188116363714803413650557240362280597073473003592459231966246220906063932609612412234306105627514831381132996857883017589095252828173213311147519970510888208181822077693888736458675371071373517277625526351189870076887566260211118466047073475012047306373891428399344721321648968651772294801215741040461872619402073108127248957286773233029075581092957078723163815618989104814301086031371222687067275518374685396696694955074876103269554124543756498299157056283104308749470634603605754793018962356106187288375789676044883527296122122925068081330145817716118088592258688077213978316757322962677979365087306021636491188061786022509486277380221834801623999614466443395997938953131522645661087764380116872538690767616133407113323536916674517365416854146292552024446278233950711065359178918561229116179666489339679632377168069749190739297393121991650227515882527150159683180306905514574102759570200801662515341482368066690557741525182023091215447165471115044081404122431407149272492751873651005520258085729414089114873008200032212033237252896059708108390045664878710379100340719742643527952736801388290354966747842901045742425223632132109005617784087331416535274036206708058749532642970082729504243518574708503083800958031827604723064382497224819210758167030511242915383169605768726111779668540421239492810341145025967860654656079171748243747020169539143180506574225549451339896726544292150684656622559853370641936659103568935156118152744933926842457334120495298870697928982288272072130074073737064390756065109519490767185597246094667126487281296468736122146677158658397027735453210164948169722661331006326635601023168220938159618953223156034970862722105783025233422008874920392507083477578991028053777872037546989194433873694034450221783908826401593505129848003238606377259595910630903489985474590651918976659605320632620285123957138834627273553905389476616478223856085002893076444300603646016119812866239425215399240155598368927629724160087595881265909628145939202434722684702849836303994467372608010965969360439893058202070452262478559725054644146391713855502246970246498553090404658012777798537471439272312097247777467890340380873019406304333884272136579688741164176242818928292347154308971560379320929950949519073223205676398198282820574886298911492303346126978738212438834326801269391530196449837880441416816867226577631248455476086716837419905640769952127174578074053335184709361897014482803493650272163331774445210844121798278121935823378428361649457132097955594421354208281025093567521691990880940432309413631822657180432491814466881999144085731741627814577015436898257756023359602913029162478056930943869393391569963200890111237138829207028827084175315765809033058150430848722204663836547840165209080552189537698220187203218943851946985843717578511838157338378038700929268339073839033346291873175945824501363271134541994921511190475109876192089751065780869133452708334395921607087277025130086699231434714987676364502710580585880024134410362091007120426559667720714297654712290535759535195914468066416607592872194545376085295617371845064146889637358971850825224601298010022806069982031769039289282442561691065886496430943027154251109935919387327406528598031673634324231050172231282899800139876149925596442355707248581915445088683720770165236567461436208387680030915314302217492113097630194762780349489210815520279752959270293386437516279809939278105640091310190262666222303955844446409452720466861495917231910764954689254250861831598442572759134988655507375643093439393453440655914094138489002088981855360369762787935430484401922349042110492346308919729066335249373116884609411563693753630673232571568868860926168750641230735749361277622335433968184175692823024627737751639375465871913127137590357217771750754312197526846742709757986947815539545106075918350654989257106598245633782487651927178570243077130860503909879992259998102363607670284779309664185619378647053890638541336516146226759722844351803968102314981926575807293114341483088766875014566617650890015873283880062268510275144821619379918890804036082408681266929496469143350875108999457084664986792482078732463801326651462177368302259773535819366240246424524718288969354522509902919539307472019938115308668276620618495595238283986991405078460279983219732342041527805423613345570981240926305721289028318445483089291855361664322693995118120590949396751400490046372936353697071688873185280910654288207624270133136774404434422069838123998796634288209811025192377314790544135083564417734830442654918556165809398234803208022380752164917544615215415275619797746567585062293765994297674893554079029672369194652124856022721709668968853543089091781236078046892553250544608277923080154330269803035130366090978150396980523560229884858193243132898955925759386875125681116372743636079006169108806139451239851367022728886007014173959379637279919580049804841923384550527038143360466212136752365314781499087029908682695113066657834997469587330887378664976556030750846625659439080037412466181870368999274755705956348496914001191220183790263455178553524255970701251629078006628756274117254120831563635764910762692389193345155628663594643406851616857472202839989167395406078558428529111527731106215014042783013736035760177157224929764551915293913193795676555946008285195380480338429131846674802875079922243862112472715918597592856261855401930359436642639926944741209591158096706038685076415882279548474441301304621712884516000035244542026715546171209369474080947647080523779134389827613397078945735098744183760229513559018253833816999549039631430941436674851594316047411861549309114203269081280414514148528135815157376205881619293336276972924505863683761891421546815017564522078049573480275803650874111157006508089075688758994533993624941506473465628362531428024080516757507590528323025003949191754325066953564864959714680514710991340378326538051267552988903150189946135928177439885493534947609643039738244568169613685867686935352645983305519147433226800918160521920232163759555593561942544248004563844236020892073595993814042145024547978657782524380319548909982695798173705693656620454009027338039633667737039333806635888024262581204442774009075279891405083346554030932581390665937815470151494297916555127329915327062106039395498672687394170495077461693351138867905680481400157826687169657650128531813101700637877872274245445015934770305203355918702485209954530568465292425178074453121221563966639701344706286322234252488349482582737334024648684977223199492622982235196875078268971668066106485841688844594123881446304855950105975562421841494166605860080520517135021212073738480768928700880266848099196869676891449474072952537443658799110765829811185469241624964598841388193247980526719428970683542296751769675769886552549369543596720106853950872103593398090695666082850403934216945194448921632979461735244857194582604167203153509723507477339395386092193258584546401814135265254011664183549744598250878209691911767479112773150126111754016521379433871882619476251342282659735671991786956166876210477037494244213151901384868953268361312884401045257170657340458379998977981665400993972120272100756812325634069770547282613359900081101180776395245546043187699794270290731459823801174619732009671689649837620383054156423065353113484541489932533911352251480703988341261718934692932341163665340668523232639452363068875211289051158795797928784143188749416759854541805713376346706849413414150631693148743436722374812277787406911739123530356702491483375083314344746672440791391480328793516381513633951316911307950505962700346006726926321879918469269170700494235343561574103009523452847626121484091907889774021166125720433988527907326898795753091644329102293557506418653576002746661127394644634029977228546676365138723541800592912859816988156561800743502052098989490779237670638027621354453394279642372688541315560586462202300679704188680793851498558719499458764086990397444217401069307443489289915319300747028042633767827220637876358272766938483638709628995628213231813784366883171419192123840447881303488125722596579242192830985320468744412191922356131299760143696481376708578110660704627449774804925236536114250948463917584922260411049897187910623824411169888623284352593257138110592402113847352834217368834007138641677632474520532963990691155628731623102990266545477690342294303435927486060719364844867887330273974926310683860204684169252276316665782106230637768273865307160883139693434856008363003491470820035793502560745843500028863821044689996061162681900367049919926101645799466160012470425452155055485681330678148333552428894432808546982769139971091366773696985256175864417643195365236500543564848251258060266556955278434772925645513737134962003360080729685382421204369506353972086318955986397633091674557043801768512554076592017580367574873721615522354064301228697119770025732787661664894938560831537450720089636628616451169923881959319637291475080679757065186069521405673441627417850863241562470453291421817319494926238204403096657480601981300068043798108193299458684034836765810261474528273666444581131430047752447490454425878871729218915491890455838256455809065588964184708668675284904914678140022600410248259872483632903592060808486579043839486246749993783844546918140979840043423665459605470805925824331420182839669774227125308596214305669210924199909871734161250208838027923289876375813283196880364422298659005205656628601305250407749454260755638642277694747583571582408096019658687153875654654783069364391466320277210435935559086353062558321869940034655984353439196871703545357634029621601027376229027270316666299350877451977048531994390137279287012337728896480192125800493455717170251022004472045746408955016670404590528594423757900375024407488957800926547895108031264704170224804332722764854891907752630412638532869794503613364090432496455504454633298531048171620127256566790611041470560387516999933018483923855859807819161176708888726973485760926202934843573294927017387277626006453511588698356142262125143968866783462848406006018271998659209383251392621026442080758945101735123156598801606985007143614882483504789008765257541053295266306207643195573198237351185472361936050763147925182545570957749494544781878896749925917542483824663118224755856212354795572478701018274435781812691240855845573451642779633312665552293469478805047326689341311568751337035451842579640471257518446138340805087255695219437708734425152233080490810380145739036274137183319965027231651728254218920479155382168092956268340675793216973718191940276677220292796249737697550808597075056855401308570585119459465428195799547324673965721450992677521593392341266327629220795412753182671244799919714125671739444561445256660638943726539501267671670921142026259479822197786394161336621143321273258689939219861242368285319865356146735075042277652101977277058996934637815569670293737556037300932419203771266482433854903428206072047432651547287442673455701285969887335739795247098366969846903788558574953801398562415529369439213499064031585771608138299078838553145477812812366909654795135478327664717696436998712767834436430250112432441199378481395276753217927041236464504382328502329766331967870841614100299396501222556432013373165697612718256413639930891969855595649498927341952440380764021086737525821440737819670942648241972435409829927172203873938370772081804741424568615063259798391656926466998105542976276612620079881025752831827081690754328970354805635410360161468015193966776579040644170037563483587537333595617800293946360230370590753981306534726371649480611312188821533927735038273946715045597076700959161718841409020655011271800251100779028753372279564453851511655617941570008976045720405441230078964113932931146147589368758695424084314682483447055043879826723574574731326561726396360524979992680749854031820931317652694249355280632092143828666560945383516032741615006448909696544690589305904150203678464430845870675469008169294189183402842703851145479772651133017348774644497609174101960262735902724969205140975902591388424504701276963736352220818232957582097511907307115010011598496923344793644074974045708475182448391457474206011840362086094571586579172624687628089696910298188814420940523884013771134258259639312955523152027548907556837982526246131037937765684777182804289889082554640342691324185014973234314306515592707166457972209959945583071256236267562154921684123779407248076833710134068923869602939276599193572434197264779998393308455007799464463272678217374657697063751609583578791010152257861486736491594426650634240309088779003136716225171094230399748942509864109419995622806214689335546063301079226154478652204396258054440043254505648771544801148444758450878806776704690056115872931700022948080952019474058278808544114701820554660562840927634387210612383401240391824109892406701155212211672879584457992108125090854047750433190406091786085382211782238200171532810097708747616281180329989361220240948409337528945619597466634031127887522183490846819395715649806788743627075557258569704587561827295726645762567226403337025946510138710780849038248496952352597335560481811192411065225340792730179686499935805894915276543971712235927216663359082632603744620961508573654544365457405914641850531842922457426410127424478577565436139749183991401742443344965238993212780702103997523939512156956254942609519496342357314865480613985571981935119082449588382819527664934095557967723302457019382521275563529561384388603687389478062105563189022077147608353725545146098625011148550484023510671024432525966260670663546218798725648619828999813229661722325897606757520365730397863394783995131206432396472933451655232215393323860764273355654052515746185572329765433524998259425867187125112041551015204108983481875818768334068524489176445366182661699484537729346155634166200866673016819030166369644743144230618071379114043115565218102543912039279375701032574517583030473074313374381588429659887711254784447299327544452501533190772030091986669569173132464737218030025682164316976972666614788773832742960240647855298491842621749383580220224694564698382863924295188122171840807708311807889023257257219263195394538399229671583301006342374660429379261234094657562341406448892857129782693132487131085343896901597387607611548643193522185398827637457468528505877256096793575242908655607423278290120184600935211858525627650035585030278991972258387370101734059139160104026459768646427290661852258019365214049359718795464234021626559784432697781075211340684872522935942256322678429139410995695577934360171361308573583059638563899475021726911374414499692658987816112452799282245569112693307494406452062159856825805818610984216645095600312546825932051729660613062776783910843751678564977376290554159378162782705943861689735064079498439468730930475290530377678565520537753956942903695873511158721041382383968779589863024810414545503929546922809604716211746906806567759772084556588389293906934030230423753848950898306638792637443441530871382275941957829539399606735184401418219338877274563976912384104212141682618821495015382102453854237360594223214372499637622868593639293949624689407566517330573685908721153353000129510793459359766916429501661207609786199692697163294735000532132180123572158409400353056391790117931761291794845764920672164069712911469056457512001495918719034351338265599876750353925655379382958324146556383748378731030895256212803125220647885138270323262935390374064352321464689885038670538816888705662374749438860412784880442503296183465822640934921935627052371947795596014106842408306920188378728415102457103943949052543205086197406258643383885784442777815269794990857065614874407549317326727340903691695228376389969986592991926713072180758861752902199609398468387484459849571353779865767948790020696754095125339886446443865655389201621340534284308672465507124753702612963649149351032791062466374562346457547079892820782437426648895944284262817218104054904776662203153676804721624129881970890168820184278895768775288780387847688149555546738368345632984548823241326243954517747409988191120919211986177504597760530742973567044820853654630529597626534684906324626168353555015360464654653476854510724548012038259451666570808064213953106606242512966384745886602512178432967657422872756446119558468786285091081732912036358463112062916702608451943381730788926151443936381328746777659895941172446976039833783403983514298411909165245757518244989884367770788922082458036638620188166476643901138261745700574007823739244005925197834501964863773643828672377198952640035024406323547571990544441522160497960265834192098787302271229187288462290341746348881563485880784453890098121378978886930332146205745575989419926547844402119922886556552848788531133876059105723715584917790431429277435588750308209180625195202205315301244844200859633125375027096657611939184461262875597104359427342470709869903955395045078162814061909496372234557553827306386115185544080474932052024739123270097010907280358133474639410413704824399503802874063101878700924377318521445450795914827892604514216104779036846162432412005501159918343693588923479486903687642032449646404461284531598360802992127208171944474400027107437111424461765257772916826183243260924554840565629167156671758555066039813321752405880713580218017859953373847824830906896341390625375576604551100000247068978452190535000648723333128375773338723846599702795045392261241174329274946146218757714476391389196846402832649358149204548923984115731466319763622166184247871272006782193144930105720919511188464707569326364406661019977049661932004879574404593658934101277218965020001413198153214931203749111859595496801940449080738104038506186903439822043205052669518663092970230962595282417175489105894891013723244562860348530843424418688662454718182353746994408137801236332533767982803645311557649036222702788732562857140812659995168647560933192271326043180752789771938162292134359839456526387896187561296760832336785745341195371519261624661726167038575143082253818056454144202265202184269050946052835587205184036295023310276701950788432018528027440335410682473222819873177075760629518558725410525040027218806960281115752123020208998920234923627373071017244544847329871374113959868007680187599694529638511384541668439087347014928910931550639792339706347091957515101873248077499800062321483555642120057627139308085389533466553310811792709180646839593454684573199436278579045252568780371853241305793593993188700213702604854929582066476600316909178399955229890954934444653694329791638435097880298998435462137789415279629873188573523454560872597308455767297494157115213895287699480321878092603353329377020193008653275477204320244836748123689586739323971505646100756399273848759416277613389323832368267503048828086138574518824356433752449919732050714787197122596658946127130652698761003089105743754721172362085163851249546885381187707014200777778497643249639101534648936971370988814668568098308703778099800262549728018963325755259065449198613057959893251491199169334160650388791141022735977539710451814053211703828908634778451446659251456469111855375712714923162424262801587850439729612900672748405958980779781462451965996087871840852199380622071521041607833456644614558527795783819332393912216569659194698927801937095776340551916687400768445700663819855739161151237798408448933689698766579324706135970446161236463833395496022086768260165438833233368226187933078892809166018159493680975810181403602434305452186487914103505494290949655342125736654365416110497287040535692744152118349376852536503579325102398014638532514015814140539911830604406401033274403698698263481550816952277769818198989289816135839365255060397851623807801613957101712489457654827260914872670916722094158957648073554603008935205769689328618052366732475142349727435821535931634907069251285709725297157913312143160585177233188821568657689283103249717314804450913063335631528290522839222929780570408918104986117734310454161244957685250155530983398387461909872717393763086259795348697835753837235205601825530595607924448610439321027076935280960691102675358518740235339719432573427385834270688092249517965329728249048981322450495320434525566562451003981733695302835972304168381381771376637071083202980523421806379640064873838188303509472218515011224165778649900463999441028363905529561360377844261529358388521342061901443625508563604206595012811887215862843755158785988260958858394201884266941375842466162353687139516906255835231489620413044459299345641503937855519312449453664818306132908957965619924292817635239022821631657570961136426085532172307494923075411154838852959230781224120265748056554491699113220493033874990112267506004392977779218635771654761401087694094854235592102488812126673827339421026505126941287394891315818857185626835926287702606642518664419045354664743636578840793692480672885212676466779366020005609527938091852121310049875373797436330191185425237158306781938330138256971657750324137437614314034970058986828027027213656390507105298191726333816222792998359718803283757389362614343884770017080050822717877988492804441034790425549538742383220829316175620810268018414927353413527192796652166712235084412937916890611885656087496306968424928229205968596428025148043289466143154448420110450585512997256654894496205602629055161351599447269069717044610662071896039143488155374280499862745157978852356083087219419683740801239922734721757484058664715396615110834479954625636276604203141955897320341497341770549325782637268022471564435919647059782219890091836320291816206041411267374937228746715884255212383095858146869188146978033170687164727073893555540551507522771587195809270224879945995688932050662667545917331303082177799865735001082841102320993482460547430205099051224167189614914010017490160053712280738411596090982289039089323575986201980578074028793528321102043284558059925860017370735949497690497252751631734589989004527019721701524866983869131025709188359771656679157321960162487862590695758222667590650828355140419594844921372443530512110412228683340900452149095517368521080989634370803990662395134757965295380381940326360482085437346824369185918411755587474210667845828064694832434031740742823151414837266605328989422465932562759126757666988704080641899993733207237420615909297244067481830719856527085155264501182823842402247419991890853973729760616443132111964333691768912093986943484349938796750126216345992301365259129366154716262724231231651314438890996625424747287442052757443837284514872949085428205882526848909387725402736796589541435177811307455808198556627924027457866919762741050613536826779663971373038838011556356648920805361917843456943168092568034811831906636356947331636495391151752975535682455263963950201477615105762127893596420834513892230584716265409749788489489539900579942227615835744491888394435681601472226283935178419408800557706434851675637009654790823764421147386679807637899120919852072374510589073291484926626942034522869490892482513613787058835977242973960498079097219213491701342139634951914577095292503299702323971756141516276634967905334175829822137990055100025090120028128320118248448640020776017687360769451527706370220576454687350778635946133830513316616083556074855090714369362399299361521839441812265797326914972196185421647471652249805862121145738671976898834884806132284511115898563894745078053717224384518969106760869358344672301220849747525145191818340978617799014981966384985917335321743082837445234648521693894437686136407504018346019173976832791097134928038135767428031029514368879342174207729647713074029909315003636568814593908733752208929221933998857218238216846090552610847220262898807607711141285197267175316100109963173838454344667647235625121451272262489470201273733181702125617764561006888931266703512985055453074504278828402482979713745681749036869800089631051869404533605700484869392878268785091698039022669330207719101754428886645504547171835821370303843793686250388996850521294861368352984886819085924039103383667104235320279100472802059667568590469616014673007675344972771217117791649650734190581639234093452119692554918169788824020573816981918006387339075524649911925258230960088541721339785099168684620073433545384335024994892820997030662784596275565947176138242429630716342251414193347335916236072311768152735906381112881195695439831898706163567678246735788943376236198558654035297142737770350216204943040732585694242807144480738576842144135391670670296862749679660799732111937588687337627783763084702037175354194434042786357659121487279970251435523348174840346991179150955631473249312457921710644291146159431082561809779831798328306584586441784933448541322462556548539882068375162436511886227329626426972772118171460476417037480956391153958089167141648338042717130090248758695662657397768067141429992047225379326560583520795177579576317297850001036128450181249298919535347320057609459151122416469237396445914546191455917319789972958233360302878540516599393089960467219579927333109776983344808220993963503110579866997952894151882576395600238509648317404976390810953951346088417338322935179845706185752125476258483741923027633677488875286391633917491901191883814394438262011393551974380552732109352018366358099156360078601721657076643380672650348184490010328823694167039455276044442933661879771395157125565419147533897870505678359037771651873327738136650779425986751112467081176239464966445557257178712921340214669407826303008079037987211472775870488197142711041981059189868568984154909089000397398579660076816281701691850649496105395346772080586528223770601490797190176147882916895319305532171395439614389098127217922461762650057384450216221722050998214453308489117644713746259957951463833645514245479441082111846305514080428363878161052371271524161483957767000701467429602048497577543786510102201536613010041117599720725856471105792604740160441384802369791872338332696071031308341231603578580647662712922145308865545247083489905489934601150242653046364885349755987917568482270664738705959621208004374631913517609647269010184105440751430140370463605029946491457624432696287816595734523146571129225338085077831185123621466445463692404145964013103082491515878725132149878208030971380858313180379847261729958161867541760752164797829759020708322009447436748361330809714261305525142109798507826077355282350087419955951098564945353424161148018650724148636545909560695316689213356668704033358702429119193847273578464416259336986040989372815799262232951493726893916795474248514716916534144854993627230335395346349091831473959818762245567635789506907654715634413523479910803242665986306514306633779672301709521035929243378120679441187591163318869579833265037937683113707979460687129048909746385009419997198911834525098668402568078050513477371539207881288408638390429562598406544680130788201213727577699094466461666479634936298835437091419966308931571181847355384052079715455446476153697707627240183591550512953910317919118286727209206004096531043364436587610259445576056728570480743856777333458973451564145640490690358715350785917349741014199578561578448799235632887316887005520230910981006569295880955306922204087413338913761888471801840008347712223079669019709169519293433473545055684871827559045459881600680620552816074772680110852978433976697540809691907243724186483717848150832469049624411798413971941251234067287677288509222728784933648615732053815062813168864151910806625903305134648202112200948844979550356315819598920777581342101794990471951314556475433443907677874395480394110021770245762525512745657897667252203153256070754817092963416333995856409946808404729835911295764775480016927303901897927038049345599330311318042714106910509902207620466814957306687548116311796793910335723523066747360581513311261790852330102584759155785774503644575068010313664544778570685540972818776148710354576603172226385182863797244715623132327574904459964563705203009385908714669233582094565200108340077775442408855710353198410045395757750451792330961428306294186639678174572391940747770719257800213851363702859962483772779057743990197013215314207114834721302603058576334269874742515578593210889796182918498842694346810732326074742463983853952652467048204173084261513497801495348323172287058685687329731209869572510553363759820469119895535366413764557750768563632502801725974815924995368775747728163468830135639030327116742757440161916579733271955143530291236890877477366134489875405129317480314583569919757029132567783019442755665516726576350423940828248714173949388371339200770205648018418884891957913926031674268923276350397430524579730776309346963908700073064242960114802399337536075959651680939907727349324071589100022153768206605074372508132146830630865218595003302500495045609358418928504793806501566886363778475593455857417530006656340525620107388498955556426163443894118826639443216355014168521628254809557688675214782951493867202308589415242774618002891328642028062332065965796575887686347815315805794255341088261065117514936979276642614730647766070184520507981081809641025162359536494945441530058124414092339603079745033181040084111340455539512091363809903795422801830302670684344438744921919650110566932002726882428521707457133391399195756157360795356066961410601869026885406483909816401624527449479529324739642174507849545044848593753211583361196722296410248703837205851379259772984585407921648592866829926302572064346917160419970101417672897473337668272277068875158008393148685219114827185431377025441253777182034651971613190149550670268127937937759407855100560431502093584479721635199088543457958517436136530549499237514557670602009027578374451467771463716301107647882873364130708967181931863906014971315426890348610323250759765200746776913614760451204110648861071773256414390930341696506425586997489490131313087180604746597422689680729073453581997477083073054236976840887602564563228453275127356749021152508561893695506882470573617593984678190831334959109251214956553954649476136169415197699916388690748904685727517191551263239271369537563522041258342151046971832933424544583064084826166621802308243936043794142826994763384871818438224893333253619791635346001560961399038257034711038928517201067065729602934299687746778484950069934716246522797050595751323349796981993534817399043836558862072574707319624212251027639619993580025467992106146794014426290297525402025756011142054337075445871368120372316771107149685374068460818778266251040362663942758100919654155710828238492380781676197849175872023043440435328540703596016394535577647132355357302880782322473438179349748480513581729768914767445899794161660257416743808631109295178608190109670117642737763664005951966862286349390410235277860388665563656617317011585809684361604899319560219486356320108288992114554195933645395708819789843885843727317456142279075626256257935104878768565139620554539352450861485304436717648317546886971343215436814818135740133721986220140180009943012674688543956105214722363277132422876949166501660228144479687471207972332382446630438050430083690033327711166851017970356613378614766032821598081496138437719080953981798559335129240300222424212074745319532578816764198131257649079695954870872494063855785796198255647612491979023671629683142516115851124692428251478721828917941055110859666526792183137655115757026128549439532696145369425646726546899842297271051936413513460777811770967962724769676841913626705378621786571508061948219046289813936291103949530237137981369837617775869700619266248374853789699031627392702980654231730669358626762037661486768399304063135469537872913047010901258021009386464820019520509042093454655743268097143002678403889009279998427012702355499948008551725727820861250322478514994467452410880443672330452298352476811320771017956509545705410060898037102264017044465823721844838629281006852988084222417018306287663797433255828350856331638475324004423566980625587654619587100276226962917765765389579582836371641256651079467984412374344476059915990836794168234381909012776116401086856865861369390100550741489355493384593250395687658089447797296545543852933769365942094947857377099631258314256605683133641616312316605277893318509383795277678786436183093924366352364787974704704083693479706068454886386285786064616620507291158353084452362486176421530307226177060599252694823863995320368662534706062324209510799870845248798922931237022526319489726968584994669967852158120675022362104256246777605085569806195511185615944753915262595587953973694066861125624950043473421565042783388412221018637050988825821593752538406220706943647884876887120257258951982031887153722246561714330471051193604837128353539516658681654109498971569599159559789786728317137629241171792857383521954865090844577816718404817512083852542063089669443720803442788099432854132462605036663474461471853773632276824580704384945823581107702242067556699368254669445866098239329024729860609947091045868269985243674632312758122294111009609766951467499111523419920362739349602607306867682455717106966282166375710125545354088719668883604933524859673701129953696436093694460260073322793962686929232766616312132267058820077539475202630420730474519195458603070882381871645963574415115454330165864158751530773959041211335458064645857334690031491242040028155679921599167573852007239297081521927390799317597959541961434585480850772343655398712173803237358087307118620980326802845082266272587214962993681717907492153791261954118552405184340909308589656226118647966048217885492804880244441318849845330843982271800162343747946804456861599884846326008199325401712987827410266901345716202748861956914115372166971866060695749402098679069844929904531242568409911996421067726174565934368415569059070171396591896541323198170809480086687258643380247598051431851088908541278138454304228103584637135240181262554772811267652404864160980541738118554055460503989370373764133757129100153792413300352211380172931173304113139684011613761910030020531235797783487010886600745923070307510909495215259472993007061103719316343958368730404683219802875596559312133060606187547815459323934765948621275058859660864742833696150874712314216222133437372814659466022159277495230730554040036601733399882980137135493782628127379130134400040952877742370893545936654212416745446797969452926760835794816615077509997275227138442209668478674361018435468287098825972415054775778097227912242559670446657084026910259051258504512140097126036350848451338795816883828867840703149606810716376229966623323106026919227698950018771508086353442330006018558266012123900995120868752007035869505343400902505838936265522783291907955701131720999818140724076319184244568150667806306388684552005448426426907769904699793202879279502580306122613683685830263953769432448963165157197764534610817594278870216592870913967980478893625436368812142135875351206740874681645240277719424997790326653635210997232299345659109425893309797613449566171101192546410515906921254640225987394043531414764218216333848921163815538791493554700717503915354230835626392325011729286168850355503982996496452929413733028606591914236320319633492970770111627533706620822539934187713160543981841405956759312020804034337291635445381488325560724918847981205512109220691960993702170216387525890731898745573187903253443255973439299625328336925425206627115188088628746036073017763137105646640382104786625803832603651827917061094885889468509753337629679766977973464598568880543706703025073575206225460601355123245041215216926861891562107762496591264905526959814648404399432515010864500370524818139332917504284851862989554415058327976700545381005875862275322874259671288865276413635495220527211698323725225270119846589416146889836723681901669466585770481828002893119536948847287453189926171012608645461055629193420579511115282476729755549548655770820499468326725576289960648615450460273957124618519474396389626024271841688865318851676686039018145420998517538401784320593474784847375147125189265696801180566576633216203393047806164648669600702760386706624548520215452148861288078750622837922039094331060773243199403228080314168543658799686992559897443703702021951917193149656857857385319788658928077282499416296270834879011036617206161747595983045156481621784430758863803441506878111374709520170572326599552680637820851048101355122576690228827972080000361826087108441005326996697369626752317318722311747297125790986812473121427320313285407080767743288138395679912969111956830453556576333360630122111551541144525334174460997673588058105650419533180901876153416895936352678516600061664018308504787312582348765082638364142517408412195028314706970248547762645001891046042138461495992751508870538991147057448644206975502919376147924145624100468734024397001537908016658098927768530709000564516312444909991944143560560587486081996880030666625459707689555676623685530039132994848068242718617783362114839262740597296676079286724147259200037670926474231849907697801752230587595910353680307189599522377804988446548537702411505723409575512494052005917798813010761185467748592557781582264365321818820168900805494830133348506030725526304445539256643192700239256960810819926800666852511879737632760072051925381175614492510750001625090411387647400900387066168097434430027922376459721522396862754210330590409934384119935916461918520848619947707071630440994747465359530980047641097488713759770233666913488640477531772774903067912840061438326049816390172294954726950863096364745767130742138383545445250727442437037592943524692740344262049610563802787267511514580715158431902181007160467160028005493907022345004752328401154735685346791527252220985018352409975517203922673566715793255280220376432663833932444089375320215265872024090566183197317292720037705373941036556638633215992376332866957573463752191674520150031390514331243916516737218852411452248100748977268362361640045135439849430901637159557589588586713031287528609226675094638939065422928367016108807421552140046368423365430022784544141487206069108122790949355851303016780341150710057082233997396926337438542958137963477810819446007704445967812523266421344113600987746790606325349296586348820345575842362159424301050110116673216281489531812542119107565868181117083549220011746134067861023934941232625485560108657950367940240858963604217855987764043447014061328341272904885785173214290075334153321648434082960099471444138135430362471196254234391244692577541783695359464918332450090201483289320718699467667080205130477097393614669560746645298927682198140261097668348142790995423833249828921563487737080985954980964738387527960356921544623531083905350521227615485003475500287880132281591027245723381752595626049757478533693347340253248996245601175273397915685579621675326134981714511248655737683803030071390402038744982983315879254297228708249016445078651312903352861881436188574503599693015733525340787057469627196497093354637683396935114789442359436914543057029383525811077594614169757209787410946854532589250259808449006102161846484981139803172883723812435460191754848180764578501313168554687092611100418989676521575446682146937326085920231597439364437610782311672209601636547182469856150475948807208794611178698214470744336552841933006543442386401338072755017235727193873893079878420923827833145513866051104255472886792010087912032972121008251208428118182552448779744776252443386793630434697286071628305133551873789192345257211983198312298575415240095628099724796590883693496130220088344213567364964056676475060145098228050211695876300230031181513086712816490445774228826957499249074529434379786527834738469509738166502584998796437368983251891179369141801099112753022809647772278910356538899485995901918914286247377053775285755982617421236797001619040931375337605976657665108096228551093217768103852599919111423243885785495865757313205946097132032354082938386286933179196445228741151296834998862902881798447528651187707762723627442390392609669027463062228835755714655599592386054723985753854775759536514115019832713051926134254901729754683899366400257464352027694228038178671797025673310004376366811932070742596520580697257236926195809951585264015989479198218669127384646681112459561675274941173774799822763548498315938324906852121746121985872425911153240720329175846283635380107616265064980883037306405618021978895339247299078483907249190942261146136035431281119563877468876397272699204758014734115650361445644354551973683806495372884857597182793774829523110483289210022727576543550986827187604362360279633792656286181956774710770219070563861761143438180529694140019284626331499734657907455382406426736789896462201100933457389395775716813916462110072099006140975067547801747873228626640165304545768605082354382491742861695930744576229079802415290640715356545289959604448507923891288089599974431696134546909498273593759923137717854387975447558811203845275975477299178520468421235718868434921297049455177289118072670697698471593704243945239497943772452427723485129836824168100266416241375629495224087737865830695589508848508509517510841184026011597399150727483966150006354269591628355015468402501434477822354056723944758061651014154255319865881448561608757940241650549767740122512354571791658968134707592448637549381263201572741637210891334337387869500611180483140844437483788268416603661968716467409212350151627112975657878703511078493938002996084241410471616133451840995355738114704654632137940448720921613218182845200814296298565130844464085480978543621243941509186002098217053259496449669221813930218218136256920002944428894981718638889815423107594441279453452032562848463219979075103394919170238084521372944323297236426237497168859079344557476274510878938056859244540961284621364495685913860011346476695000635197750101436964815917358017397633814316509928121040602869795591902397282931843816103140626081959623038190045357999236715447055773916151792953846910402440500690974731675167612146946173606183342660843241316195287027129393780951596252163865960903344690743541098177039472838617935775410005399869075959332841338374749476165935744831735580891095318036599183622360569768807921101218986315360866991329450851704599362794557820839063388042148662748176434129065160269226909590880973397429244154184232918051714046197560188025129036427172225449112781073263890828075774891105383011222354692225241573957866929954673025480839575834098287131010760036625401643410719174010141575721643614776503311558411646931591728862349470998888448182749287303638193512903868117687764725477539374709856691963125051897664526868738893526032416610804274628167392629227906670785307064861968499751129294204562718531562135922852381405499807583490378561193676256665741730912759082850090733168475440772563204795477477001150964752774735159345613519429724101150222412875761800778182825379012152182725659204311832552464809895430071857453006057390007162131006131978364102490164417589464815309522473251879586241656376459605475064717587871852326238131486826808030381179578379733779668663788444150451156987989848579005550503253519898045061378233183668983574343316498681441749668979488386027331382230083298292179239922729674629294466877278962780213983280265681742291793923858360574169130951862009189230741779972907752510686491136846882705303622816265256913718218707191143305963989669473574877965839670984475649010363964019431926716891721615571305894334081219360153432972665824466146340799602406966858675862169703125563736233027227696814724903206146235331229983225478788136484041185737640395744242973853169901227086638151231956565715991685225876025580337469699149863734321147920557825263948223531272638026337434800034984916875986106682213357013635171019238189550788293504735599444655438101563179621159404529673600444746534432211651505026814861866529914194788442295938698237317999626716514667883990475295696262147212001640137906029760858542106589338851115550092111573435727681533261108262124788502644375947559354366866524195151409021239881056041725228246912284636085700107336927443097259231031694324006205215691891152227742201622134690744057098719943076189930073913095739719189131637932129537993729156506348403941322342036033495410923252583937938054928183681298567944977682078175212938616473319621202858629863393819110332084474516210354694284878402633677637914141962983709591274445576532242018423157879544155720380784096093364501157605635303314260608359764664076695651842395141666938930716089818895435637530486710292266349986235866950115339377588431369247515099405370365327248717570637496784600015527577405521274716967380237751143953120945302933404577940528013547041956308183055365159769798762088875671248898030603175421981482126594773968648163500887962715351992016694092368391641517478010186590870195607429711631410296243028471114081671454992236667568782404702266340867174053234367853001708017917656154377047912964755663167032294457617334509113852631537377042862316794506917926218657750768379220872661021172101552431032177546520387713717836822937019436302655394047295323437980724900883160714583013148241330608977388986535025110222076501762858275160672547418403882903344741645398630573074307509417580684739368665769638629352105358040775140355288177094163783765694890382856530559303408573845484608713472610462782894049145378016333081450511531150021515042478237283722747794441508676579937821021307982714197469903358566538423130093017499136685949083946265105108435792377793794095061634979675126900838884010575329733947652898806437558934383979121160792490458430968640293024416499289572023404190633840549255099244082764448128690605626959390142436561294896367245956272615949754923846640654925263718113166162072230572356429619072238080071294301486846006356173914559236280251552425725518346335787801549379245961784024135295891754459408198088886031636325031406252286571613272467483516052759683189426671890219346535595958220429400442887201322914532059061636820113402294827055840390584189531677084024001467554381074452459645249929283766245962431250624427840560883441923154506304877205411922513577265291427666714299767543980767961614080868081413839778852200145304141712986633192653682338295131800732649244163310046732759082279441224801675777680687461201746672874767277074130422669217267340002552570179239787694072480674635844718320504237599540500654110902918214476421089977042097583304187443919424774310464250778101586775102302827531489118290623738570836951169638233134477783762317127559387018022506850717396233105621500326746720505416036416386145375774400180671652607112557772185239872137339809575292023312141120289078280232506653165408872781177797507622856970209541042685863930940321252994026403217850883275697768322598457042735304479816015230447339300212595760206532194328654159842657089570995706108804055360655248643262691896675310711465142120642281021038722013347114163947094670971220412486967752948010440756847982764068979466083178901882392409498163702320778229515347137411591171298994298719439647778680224338882776035080777872715667349857551304443423045749703456273555839808601124316891181743211395276296034204594730963074420617669937803887458191239032484757447020220567441342144287348895539130176160796135908151341238697845739047164154608569475063324456720672213060561735898407174541834688434935214014430825998903524443807078114674161735809401951365931719037906441911773877083049384936386529597607839615980069453689918559702630714707869628622584290947637047578446355126532965653044862316324838054591881399266352750293568113104406718004326129772648172238808740321696853980531339594937551851689145255044724718517620741828918957870062209769924113033594548344839107213058417024092058623802322569984667887069908031449130321548848879991978013486115153851792048436316418669523676568697162455056065124195019702855419706241835940394693415624752851495638838714925881580598856310727245147275564357269695678012171168973561841856504144284764579455553155665919545426590783382479017154319090400577488734167810389339892934177770737020948848670837494394863856515341992897260181164990449013473207863461884234881834756545866404589062454168781056834793110640896001648057026066121794717359242483920976124082924171164206812440824959137927955389637897259750048942918009065814355435170654990429336128473222587389770289850634815072150044043083691219777328765794604351341936017185547238776413549898112904618204915130052654517093508769811796699313716964920644226127802538598016021885789915390445522672806484976675255950264308605786888869578786892226651121570334779444437634241738231284115888570415825904604776505307148833318839553140841732487977059781046445356516764066535527440721511939771184567879745163596616566344496093173704829514978717434771588460404454577663609462467370362039623077097895237478692791520435014166349680227990011557852050827234763024459871019431020577884895492061442647820314051020009181975259207315542675070633646373752135880345382847002836216566077668656006161661400690012143785457047845472781753767126933167311177668926983775612320055941943616845647457655485817258832687578533301240835473291384112148916948485786236373688558897766320499033282706433366385958548252910782609378714944047476460069121614318618704350333165522892960058548395142190789935111725797352068407655029429682799912092508466875959989182380672610430245502604645400892050669486054486737512726966342143139273195538908160774182375301890407711519059951706279574599438563087133058160357086599913088742423244124560201916237725406894951318336374951911300249521004012382906213671849139997747694555560514298087412574202785644505400407402916677638447831254542355227850399981691835191518225671961641792615829518701085432370260879345044539354652265543416777717821212015464354592669557807906522705634059999657070424047903511130888088424265659494037719984773433843751305594388812011098100292582516548875420577294737742817445203236972285202435398364500008616527620553524251407286401378897575549134446770029326579909741971768606853305809620715868081199586081280408848820597052011397575063672319208850251344495064285189900736959664371339866562798371260871274202688032572049182755952867999679144180782528298049097533669383507051820396835863526832759497350768620967090492860303332212082405573610003450857266813482375943032709793898036695542246025778122045609124877249138279091755792006891279359000319590528323551515492015272504332743200279533594938788874678419841247274324536984286942672032476290034798617245719689567493192811370719859904149735035065162935520896538621683926993869269083827423281791726605548069470559779337258883294822538543750283764630338301894016110842592410539335986292238213308732636462994993056453004143171253183256556559040524228248874958165173727206894990271084311941799125030818116681105600965811863091461431760189136959813603812019926436830116640375366712514590362598384383218972063524649613999113170374023785185428007574289733350748045077641964940759478178647347441724502320298038966940993446113874830810855502764913829540249093577101792610811273743064389978209488463952346474401320098788177315016973535508108799888629178281284525577711321670597808794528265197293335452053187539339366544804883318172674703798535029351798363975539687387501488484828553953869317637545371427228391517506025501359384052884338227579263145163891803424379325113484408991717300702118320892921296612048562488673610646731556763287577044453935348497526151572597633003783800190540236848809979908868073461406816036950301497440099408663753576885212084647902512434653485810374077089473509846232659893515549262400662934624967062404193573155215047632885207366216530217824105162880651519441680104210724613091231756546720782685420121719032808699517448229382548943001903979935700099414542952087249111620295166224772447477295066786760213313314835823433837257622425580554916474022932037358213952792450360217052304920176637475594347211916146018580996399324474237099787390014959041377249363102506544274798567029460518681774186620658341001096924816999868437952866749026653294932486014958748065723858591174403431330781241706080346621391067848449078458384525465335479860868889048083658247000896848609413403450345293009079957703432671665181456425804845133563592174946400805830178255671949285502158677448698178122170946019579145070630467114060067522276987657192708625003258062547391638278749991383993524832131109684633080256645312613292214829250010379827537936453050237171116010401721352141721590057387452911400125485590234491625597895927412782275986654931967267405192283167325251526265127665067500933141349962798051054467247302128937370072770624728254535381956852796907917050122433724768777231461170313348553084279986157717939126764888418723991075577793547188304958497487337198179733721765992028971425740931198598204211982066840449418062473734536248406326698831741845205560004139445559424525467320798697832757900184127547651336682598744860624895200446438684100404804489179638636244123195819334448821394204934624589412348153704504502139562905972342954375739955890852836953102107923708870825881562032425328381626150857704903477004683685011610286188077315346687522108336367370094008923667486023759061761985740022375254474384893994886811061308033331578185628868613764778136458549631854964572445334144099516056991506618453524000964869221629848492300148007551797708637228407672426137514474291724633969149469878647477933636428260145581406111153915115050378687737323317998885901767822069848743171644829128326344063929910053469623062903145063191062323492490442417850615139206122393466272813137777069410021556414490866794858535577290171149900827383607746246210668078201208382469374235342757080424993065442301201120965705262303215308337478102477981229238939393470048704658157095521156834533859675898449982129973703002248238786648883353358965189532294194168426768104901056394684632893508913131924491215814779896681438948583636756711568719507141392377748692635601072889036073817435505612365837171086671984393146507531600467542893680882845315151040241543203881024256006840622248760329732511589381139895535378639254157170590384357995679327776504914355072337923817852606250560347058191233350394357483626640466120872842531306206530029826701155142100185801405382113850786301136455113823994623459999995235883534572054636458781152354541669595023702314913282020097211187193950209648466649605148120034996810589932659591463080800303882998347197493885959121110879792026073839112525477704333053305680681143200020287035682949462181150952372917531055398369238466957207988360140638266627956036723863752384283631805932903344693128499749546092210271468015904100600180282469388895322937323722549858607278789382094530111544849093118852687692636140921662446104099115841636351366195806570919167288019352252097839997346775120936604001589052205877352768707004278395843429722487861127926407093113960943301741783551986087688554818662520476951785208940028557275552573228130716793579227552190427545916767188321726091497400359313460277960403276190810389886323938499414033228009393330947714095235573138408718420454580402798962981566550265462574159336051973864179811105272048993283824086472729193832894992949660577694485271904424184693512172466987492002008247933534592113774286819614832556222180957026427889625766845489926039806437091114587056566601067737104316561760845430812846776931605545821943986022632337167893855312935020860949698376109889986854506592030752577327042447453402041648287563168811622858095945647919310966401705639351404820924349915006511916897571909249051045999865426836877586244144322749407855679654208052253189812364667195441702071712877576387766372949846212419346741196574435522083320682319523734869909245211605468580354994065555812904111469962434050274092489494561973494911469704783964335271966618865574209059585287737066603455636786477476893458328955561188382457002711549498009109562899260599548067872452432820925696810750038075619352154976348454980077583963548413896066539970457045256360056833109628539308303297330250124706846512779638775834938639149336348993310993155003240611987678343672811052186809187347267893464792568762727720312627557034490799039671927916920182642503038051029105292064962467377256007057709952467402778264252627191998649332230276462380489340346050136256210105113496571684927155306406370001578779041091964369116401373701181292129514653585317610300731256695720706840123582659008252976900421974688747411847234153614351696757671519591057785374126583088677350003359919969757648771551722926949324238123662977676171621612043351108161653089615608947042693993721926399485942590428945075950819374383198456697875614979951164196756393529157410125264017201146070672539414046863683102556133059741678760423689661819336237979430614396520801183371450768271543086440826624372927147413488213396039954067215018295764309781580652964067877811839459346546186369294397169172693126070138866564669152809588946820075420958496051876662872488715591118855958863613298304254947634164801412921381625480583777121476181036183390961778594424577983861638730216965912353509052116073389737243326685096946764298071161191457790671931659194013366033987123268143822311078039696675515101974826654438521388439809557637156665560634328169152745940042877690132011339774305962196741773411907316771638032356628974792502778994079550539216881402088741022990672682386379486675098514932515247677686942052434470537676406269344548457373920589074857166740289673530912184157354829662485804280590092167348911374309259438075277424906305315995483980673073874313070446553214656236172009666046818725190798505658831904068721653989544846125181930437285782118871015765645740244838088091350651014593384332418187606967273720286562457288961851140027322757854835577642122995992696828992914530339770146053306818081259326744538793658407469322910941373224771159063651886582417978963856417928840047994317020190726668030038145155963995657056426243391231035238656103653392178558707388210983569664245226057422214518938021685377547844366310009576449549553415294373139407922820507597252897305321855115609965923587464756954714765507422550627810521004545439710877962425602032733383969693101959336885730823933566098898190075051102580800402112207280020801178429609622620321767652441426414942214118037981940004533228314615081488365992061728782661901452859518863341135205840411966722768068208723758700156284876505692555736427403874317470864330989977980616943029249787535620314529571463329049522062682496275802102949155985065638382423140087832300241165572964497632560662242123500537454091416099412967274552214979314257042040479311619176796272709836916473837406513963164366041200965451804100930192816900591830427603932185932748878206651111241359166546515654420764539149469621212255047553280335414583166615751200413230189157793896166610157591602251191423289766555352159083209257025176686904831231651784340893930487039327411522528302693318918623132567056526994367182505201365878768942343701543744338149916735544767276553786516675108333882387155866998212614107842369487818089735294982920222612953010749734489802766975493382966836412467996276348310171015210993003816809445084808666345689135016537782138375464934181597299807284444126966243441698038169921984620845681922960702953599369644615363681732158409165774672266464985562485395079731008395926977693758866203318906801980579477041761951066571716753076761092483009326425926350331392229887959850144595338809533853583161873978501757513688945236340089255205285534862081708074167389792404938669617843278930168536299016287844910699856808073798577495025433085300303224213814963436902431993375681869036616546703693613524318393125134744466039905233625688348633780292555549820790136350506188948918578693521926533384392521061302568323014913586521316805180279049796642757867347802405497792740462993581380719599498870642575207321119251786841608817353038456450334386047926230429587970839376994256909568993050417328186368241936608470173865688634999237660022407154753045260663690687065969504667508668886055744256130802629658703922742503335784571188354118664263726973777847040854430101644317179857671087138957845946720631838265455223229436405009629402735111196269306232556450556082534763797403180575326235053323740372295606487773220699817537310495871705578163551305681651016416873144875482703770716152328664403873344373079369018505766589984452618426061022592811419131401591843197998187873051843408547041491395236853086681381288451201488046398568397276969450543871943218239003388094932090257521301844465489439270386689998892944775501773569895948284296369343924421949862489676501481068798626945867552414244792182606022772429759608076288310493064058019056318245905764053198765327370688636114585454199448785350480127696670198629196042619946080480330171415080266011682025019309095136990414529744321202579005417683828565889948588343206558628187334215736297859773205471637674851785966016310235086700421445507814657372721094245328859505887669466818467570552855679467062565759522475816586553183447221347439120246210593060309059133207584316844188325992278252637441591318389530600476538127402455665214873568104137755080317268559780760455842287405362637323405640084863469352788958025385296921015980528401670492194875099249846240738008622210336714560346226131661472501167614972477381319186126930066960571071172224894754676317454860317997869784948621530228680875756737224490485606848351916940941755804796966769995037531118893669043599789904922416823248786937850950898043700726557462913555134419735393061991376728576218486573783325474723483817230876041919765226585729828131931905755812577374708207669425618903702672171799063995626631245333355614267183710297543503912310995478161795774381070241884875811437123073260837542506799872836723460647469872833018839160261289500473708879219633486324510052193481221873314588001122754637050316717777128215254488320080629862963602192885788199833866076850103614339208141765023720465609607009775555787523303154072549202675605393797021697865724153933595127932101635558835779601971630699072593790235983681503838857514414398749338244082044885428456108882567789898911783564344351089259011358045593362572936267732148073604660960261903183707142521104422506513469874718417817841393700881271144925459999197319396034091630853864747499215966053159630928348895171462134934309105168123658336283720602809696282685857344194603759512963405160300641442897235721407186163046850163220914377693132921133920358076097346593428654685734176596355769701109291202804467222625403815718793743725115324903463607353076116329029544301072557327358125733048170928661055885206848413136963766501057748161811371691376709823047113036551022463151275061864173267776217124899419736917503682904846932420380225955338556833099881784065304833676460654489129888633953131562321680773741712910149385054165920214942278165843461655640229101759372024513480109596678950876283691245089658598036277862061364386929982969275208990033215323799954479643578442555558345171634642049975237712514308283366501741153830604484163872278667053406607498537635758243494491332760642651701751561467380010574152941478978950690562863388053221832433050806642952612132649646499056025012687969642593791361761124316288077876377758843470655852490258561256600375634154823163514939260946302528810770331102618483029771492601720903053140507007682171123260805923540564490178129451435724047370723573772756051462385742427604751534997432384317826784540494858389745955253472271951250560038508944587649416720721781733464235483147339280531586746906167134913009761269938398139291386874278663681528952998454429926015272043128721357128121305963181431105448082728981791567294120300873583396091699957849382185992530038304692974425477635182186371198305362291660592686629164026000837443592381785849064832616997113567346524888223389353382714763003422303287272617119073461012133189999189799385850447092764951899810146971988084361674336652919746402858487819911040476907886171902122158941827951418983787406375708621297614008759300536323880908667485763286529376057908872321625071485897062386569092696162587607834660290869043954534594832254255554943031642965603875735310981917694458120303513380033646374060002662324338459018092735726702952333090565537991737790254492037655077664987369855541017018668053882667448571335629452485305533650990775309218935447661264251407909997910426816666592547032143139705316305583994626629076207459122801182537591209415118284745692766868892878251415807770290569214163639274138747021201500508299088063264273039885569114174892111733334105967893191508170296365311927742106625308877860210206957603826590778275934856663671317774755555551922155705677619619167911000837803944913769752843163882586327721444002774054363077069782217105853719678511925191411521875771943001842441785910929816007847494530916479046516253794181380637612305039541018462908606530560364231284317179373456268545710735198636755730409590725281135379644351207058448845672769714456451019781054444360831762617757696305727387625536148697238587109022347723155728451729064226824959671440599581168391249646401565051202365171061103708951399904650645336899787680760767311642461687246435961242060332393083074072126643949746003344633339513466105465740559374687001319100185216886384098677393450338536617642932973766406285738108074166755875687425930668205684734440377103217149440893818690822380406137703175838352159716600131069136408087688015236351297314328726346477400995029214635363688657852810574279878792254103708992650570657799216951796623837420273756364695276379469956162091478135401774741136497348441524217354541519151179965807526668505299771786186545265807848365003931723998971116358203568079992326304117563848444552707150714215096051063292153722212245934451008777896302810266616922150924623564252102033181666583949081030615144602441572971462249522370599863414774949544645833440377970790504910412103011642566258977393983131013342440648259300074500752575560835071577583265570995171185044182681375567864671387969447821738441350948373959769680821850477042448556779590793090246432226473008158396409655843275632615658407625618419231056467632143795496882216698778117894172487255851775086019495727100645386568209540190353541823726064499547707533605726589650385646651159360894115940658962164228709207229821528635293234484557313680332626164828078890698869858926756854671662519078192272188998890792770695556431407896743692466913817311463098699717517641995135556054702079377441937939577490633350512494602655254859191758479556632382467435266230925570351930331992487543702136556303025531753240417318366367198145814319408477349951142797913040677003670318021468798174189287741808152626139902816005137733017230134111710176133498564449220496752276842346080848961740737149716701575523084777458045501215769564711573664099332451216864088822917566833552292909037047412709897639675819932787998450382152422631711085537805755345046001969066683315112152232134898937413086238077225583841354909841830121930770699354946914405046919327718991189788682806900511137648533619244663647396448087513609290366439047435651643487915566955093037879011955791673575707933633676485517271863516384119375388490788343672342287191302758414992763372333384172924148915332823479423366867090875721082057077492777625712402821758782734792829634474881205441075847755603852715356569749959395754606192472824031783710590037502421615030734768881206395694862876469617480811950562819707485252007124860767107614372035939562260289486671146603959249042992343507064725704711146975391273419378047642389163383275612520152629900080659767460243578173324610918216177442503710289235167284450382848585504184182607007012510590259798147193074670527802460283770096540559081434460920568594344126059792813233027764530983566708803252039125132929121786769041165490901018043540648284620047328864529164334052544124992178939019557323571038216318233091688574606409851025629622869602837035594048369276441621378700794365765821032065029588584870426454055566718379859785050234352473981777158261600436806389669753147473284438308562682398584540511661693445013356211247363730571932051364750814872029948860644741442993639109512623267222971254275691434983148473505528211017002363300675982098056093004486004007196872490202593204435653252425239926854119018416526523798464106589947620375728151430529577009548714589582810138659041315857099982367215320789340999712741407159035084228678836781880955472954302856363995799117197960785004516882196114062241810643858785899701092864090058184071551116996842437703888656424911671397756913385396155512478549315630345927656041216051425502524722855284394518339466210628438519432955925109980489405305183570770124231029054752175706221100947962487807019844738341758535271554360542495045378761123060391347883331893640059191733142288637889437220525167648643276650320817651613594757303393268977618870602660477134993761717924147517589469583313005188528332593622083322191122757194077285682571234255847268736050464219479217937490194705589237541871810564721845487431703593265334166007912377644113714180184621881773469654135885957032782333608147460169194545845334905536452081647343770625453484328126109628583829513016201214531467257301677234910932251193351681871678394268399689810757717838984108532312754775271070586987561398126879450178590285404694018754668684950779487005112909992341708695641352907026669322659139253293404746103623528242713709096102633413554430788107570975561165780659637529705115352692855679179347749153397617067471351116359805532604413292402097939183472747386686820978640752588395321330499299796528552847389351848045777729969930762472695516128934265757466875529986440233246431119550776156644514747286522193538278618528503242370720854316658556136732569222852188486841612284288654264172993534803799232412147206783901487415787792412126479261188805021138398271932729412260046194315987436926893045204687440656752786400394322271375733654710355408851153920345105469972511649032340179569936826358482507104067788974278045291817467212518312222715107097380854194249179543744080134075532510124895089110607767900959292451600622524404030809914404526080238667026784963737600129679719854962640200250773985709442672546232443683152033977888144700722866266569363215742070586632446576976066647183067510674770942990624315980557486556791128719609463752415497555327682003443595303534419166600631698009577516777618460291577472955692536876856128800488997234896015737449760900009879800447006567487300571295339407971082397682644493371414271581526733838575087599192208312825708127695763916878418692250630480114536911034353295604440111208586818274801203399938878393092919815243347802523008737345728573062044985620471940795828751003592435062711324682558614164056564383906478320148976093248375042967723630064511525911236969212001295925187854442573559154134779435365012401223229039052489652289669945229155386960324625139318624586834514361849133611518214120788121414386010677685653056435300510303815683585302163339486017031701401455606994731022509706690935837618721646087846083973297893364772571554529536259657650825159507108321144430653978082800968326696028304649990323580873688241298086486176782462882916572365089515233716876359060391169540816466764535453681326425868541333629469656810340700439013883756361402802536122824844106706572476338633802552640603083581094038898703902980423684163145833372205056791126782753376999428533026898475012934230949913558110447145011892608889790669846043803224102259536678648669964406469834387999937928942101590024433044381293093466336170111678265545860016552897868012648761211524911338379341163506462817782480564979477693435073540891250052093306300789201571347051843357541777739850346481116414404539841358310807645688599527002589848435708914838655938536918858652556735479235820206070439233190136398132269837780118457083977571913128141369884410832544851815784764353069635328542564778060447812965483635652360092054029613144446117354936624278312876546122591199950703431088906630937937743225383609147843147003674895412657775930003222832354587252180818854960505138864212827780501692285188214787697598652333107173545541434421238384968179639055215347221732249268579621600848459342184851095558397815212433815985734832589368099098174000794074656791091999615189178355371952890419562618709757444530925595824999963765272581425587302016199112087002535927600221307375796083327293924566986953728548414877371529839453844988303286136586966358524091528622120859731023473042310131796823045816533891776200281111776171855154417707224552617340341434729900239577385845008881917421678059829859663851050242748690195725355661745950541948980138807043011631726502348998688396994701289393575489651867840744486525732653195173368335567409442215844994687285349531346005474180365449399900598464145930571495658320907484983185230769834419956125063069956554695884143282995802587877897469099748300143836888638071718409657632261740197670664770259086336639898882559236215308377668490461541093721700280721234375661248355259578560161743832187037990276545550736747984894144644373956278449129852833984488516678714496619689236034108247334088054541235522044832245961240981229092373407010155529718063912192727452642286041697344398045051562210926547779934036820159947441126005896911477472407602580441259188175346962307631800677275363910526939718812779321813082138743147174656955273807145399688955059279383941260239921254841918143753850360181976938173277285708310585089517637296149093373250013266751272070245880548899339957601307138953434609505623421522435487709060347717836736207538692750726807552872374806586612424091871695594986589158867964989354433336797754729553858225999174656923959723959483688244638865550447719896380849897731617298753729250866915315478168366880995835994513148594241010424426874389370530097644844912821486761927726833868405521695245988232022023370985386573444475788635137293017522998761427169324986878898429614506088960331407796180289768745121703422761055667951794097743202878688892649628919501570383140332414952279618691178768055648437110380203473723253273138608529059611874370289830479276242506065409751244777052635536075272342098884243967248095768878439848241108726269795783100381969563805628947075330932127886746322211835198098470325837147315882099997790208394850125344849293854896612359081124975913368016921076690267340742438678770092276962244886846141053385080570429641350453938650260780052334115552563500864659520217370295863753201029117743952504801008699763950414049759114503566097689957989785059786140772043148934303916625756377575428799612766825982074350303482692144823810809921862769728549113483758493998678117636425990251811626762888106571569684698899436319962971564288380646142463817693008190278887775976002401348981615785889657474936586535306517753924809711334245955723866230624673845251479607373875169338426278118305579687321340249981838049689789327378470563691759424005176351245345934958673717553316033139353918391928767428769238065275875138052656045833621972539672557535155931897263471339918804523647492805738009944660203582463054244141338129839446693092521892165397788134123014920557855256953643406783114417985901481279323139872455458898605268861391650228475254411768121521720438327129660175630985037927171347174467732137822382681839389801625279106262319728008418616567849689188082758788921031416006946505999177878488002096744171279973320619151298035735630911164848569124535872835548346730013216613571109990590018025289761636875447561136532793529315398901377327548349166730949171006002659558715561879848842832454385317882327358328418515051309963844703147342166848032076862376695425357956389795009160771639575719937909998015751690938467551923800590790062611957848170186190979866023134690543948421228615443432883857639912864204572271247634273695959591100494393014440878368525776797624140677247402134731615976506294713943474856001676913295564982470716028999502530321250835424742552653564029582352388245096022366726598215561854890790119073852442732507841050555312857563603584426541298355228606620088808760600755682696846922341976746424603851373202781251434652619274823517080511216564955507663566339483661699640272242258669024713945272643698011164893522741686958297390840354816346611573609802195539215743936613644605387925495053807772452850874214816932015313563512228016491978136185339359374693510822171474589562866265483243560634318935536248575086717559945401812527228890026175020234434807530656643047478514674135967608264332786630881333902747801115318484106046088455405849091498680410830190636520150124420894678405904812140350079607128388322854761139554173007526773255964391261653943786639841354781318719739066109029811577900319114624291106243173175073812141310006675210879396105637945286792033141898729029300304389585001979337670128840906430534077040510481232361967260884348150251869722958742486077100634090558417385375959701434967866126155794964665519184920835439080126614971037641507306318310748552182674319394066547148808455461126785211779187628216225366684206631922447726626097389015357509382615604546585367462902992283427583085853658819641607686524845693681619474480974990329000636596434508766377102257193241147933184330696890244589155067375619109930834653549548025931771890810588909697769937689980857549313779120982554861068529637871382142621973905841604518495929287288148516298057870593139517308105556418531210508053064498756427188667607062045937150254716942718579781716657756743431072514293710376652545003759146039852270424111030246054349088696220749778783702260137721959153701118847172262724288101047376023217408300216639440157378354918632557907182834481185252306203314947309817786005893075122319903484142439042862034227178516792689857671135199874572421055790542351725381370548440537435250438229196888925232473594114499846476991611199898928887436004321801363288634808966975792690063660690133542897485106808543113939658688320118977336907607994647448389848795030145705243653052773647330864368990586847367677862985516921094049010913937548941013859934632793518630948377999421448088252068705310476717844241384737197633863824670027394020799945880135466323365458191768205016454910129360408512969063463497065857864117620191803276957101351632385068002635826791130076212144377007601168140189535931663172285708893012854753885302567080706699436544708657451776610717111693829406068467254822382806831878842956728988588155413241643990521100112457045432479738769298599648897725533320591861235432017910940658511147877228777339996943497473139771449062564753812403207422553955804035758892432288124539666881099655500845400128491774433489068424030438919526039465891693467248708378055510462640137397314790317670990177178890284511973469940296074219321335002219559220300109432584426856041229901084423125719939022919341427938000911539060780595328704538286807298383054940156952478735191369592205849615280389196868768755175763751520346977917489543300496011388938441557900436462111940638069603096479911041905192865664086811164241280508612181371613719317574160938996445141527313092487520323136823935237564044786962909362531553467726106539242957736135553865800541502051190567027898592496895467145112031432368985525314919374149725039560745758888819445952130434513261304568635282338263914325630025595716516201368789293298731267608238038927559154444370743504314036243798228263458831144403076878596531568180676207490423578651793169328809614363229165782268238058203001298170973198132429660138782161428910582725425453937066520826426884083096868754980463245139031064874460262350196660161504844463124243727749831061570680618320971551066314657454249630257380659538046417485855049466234858132192779486647555665577663640166278191100058520011151775994103801533786654858953175799060550478157214106703532612628427733312856339741631917523909736941099816090663695137371508471658394439778477846254277124688069640067769437026989249600043743517881392631030125393096141379494699999823975737832796874298901040714425000345418379822089678826392867843813281716998514208586061049742614913513360109359020827436732506968641028979142563057063025563120687321566396422997324509197859617081294983473633320143112312105976643333268481055482606529903417903666333893432247561935493366273047486930083406144727880199604018654240319082603007067292792511542305121050835906637996606076853362050621785377785758027140985275111287543514508802172494761135293054025610345132303442106370323166737209597126661612526320119304060375316230397322832242679972944332932336866215547227282859193689223803158757195909715814814271518792172893146880381232084237266679742528215331879445809408406867483477766396602178602391178010498863036140919957852079240160709742643329953978582370590224213951743097744201222529303988340738129287207477006047972677615442622628674949538996201484885821083670140244732820896991146113601500983515023389491058967718040055951973460838288385791064189485309981188629072763537618187878135548197470439608612829218729586258867672542616284302631733605052809224423988208543292801457160363337197104461294836555807172491252721223114109050573815715193323449836664729003377618352448229730052719933361514983926278542495814594834928684448677683633574250055766829327728058521194467408466172741694403159481911937813021236299940385739630154449722002928619413955025140184220914059957013775718729360585389396579991344238161019830630191285991005881409505606664017117825568257002182695876483040890282698790365947414432115876783358877429232058665763973203456267827559224967658017147653598575629714404046581064821406283818204680546149296886991733561423156701040198607593774854538350372958780443494472214496801456538682203113019901336330723899398033957345798974309781527715466089130381640491369247603798286887104121503855885653423426107264417142085039255652257779423846958076771576364459644643296895400413619500044275575311985943907213663523531909067752851035977083101533092574520155907201503884956446976826716353483454978766506757799443143094134900637629133589445100098826398920113608966765345478413009698805569032919126056354770730750143687189671581829090350934217069984995860976793428056121761231417662703483551771297395059312733503159809043694202345597016008496153832717216278482741934286518808816653841886246544024138634737943532867119825179391667299364044449106948388802512589813607970870227775132831036319327260393035573267790780371329993889471073379693049437551633802381562585821574481540290576605319586270734617365963189220632282856771183307996334671569543549607803978442416259172286168002855795305266660628505837302989295949919216307977670624476090856101894625110265556808106383242911768861618583225081951708089291422805925075290702261307746448537844158339948573538581333226676815429449821780161755984579234959438856702659275006978637854698348629990812569370405111893003859196532584830612169835514611847640330141875870791027167674169050648282161313145124137270783896604158978969398346946070237886925749208629501806217542935160449112276833996003747526387214915068997536559504871891540447534120967331704415520333767636317907078773044230760383667047633141914935528019361922069881324590474585456584923163315976833103383941204510447418170235536086158376176347234833736737290322367181991988485291697775784228417778522091154682857629115957819738769667554899676202423976693880598255469082632206060885497965526842263059717557060534990417686915145858360858598280325423913247286724844262569864004245370546876370806353211995719046606969732071963368808513200892961237226508314036204088380719269970529167777815148546456883763417015366617755529065280164423735539679399434114013622521925902783656695197276900902445617378991247809959430602960047325844687430492838413954274371646697343058546366610585220945508725674333513418213177305725175897669448425835917063434009077602685283680876009877506975540573345779069818588404804705448572375798416736020234682708733378250351813054536199956115683829682146691674525416270623075564461967689853725401746760890170093581188979673431940715558989842640087965795377603900329293022504873969645879888324934964773408554724328592021321884343556324880973199592128148914423824989630155798283696664562454659226254714078695948706959661343691196746508819855315043907150791436466606176928442600402206137959412669406809679812640126598892323963611431582245020540059817659040183604297461417957735230587669059225635897851560322088673838447481570649321650945465525767398721241546664719382746824300394854415844482842833386824704308028494948624969592367798982764858480734115980453827700273957118842396199854848185902575725794187510775352123125610194230220195625984883101315124411631501246414421742465179412825201125061133165603576135607149419602971304793472597208698966668280379224569126858908884984837540295498866542377137315331531221662846819857572996035366396896680719627633621554237429244651035604794894842673474373274627986338481922615646434060280509910558117701232104770247532280597497230269323508847411114262811930504624776243813035455714966900476539479078049228902099096946868104845186530557787460912815854556435698573964512121272853115164556095093883613599575441017903425187283762847081094197617864855530219013973215159387515634380100996050122891865231184584236661856807543384449409785392892676875299793854463166773544343356980159685586337812152599930867753507984677339308103820489084677871576902593354143983922170707253834785170842773921149132852706552065635713813788240818657790416784306040194917562530284890450494742541608096662445014736026102869288960376288330242114818529118184380917887844930553481694423337602238167016128922642642073249040703951561754374160235253330023411824257081225027806921249454781922398034980965803739891657500029251859444487921025213674164233012638671255440342437858296009204433660580874711644669188383903498904687041010188362479978579170247406644542584492614871312709133611485536686760289333230075301637937870542272834176211821566571002283216854313590479032413177638690860021534990366131295219478059332053721145755757413448856078244010641133950157619617949525935897531668723286972839754223925958397036207467011846309111502372042374869356860137289972722272783636628543377206994118297841903318185926061284527000453844286707240803753264791093256171557448133821479921886592244846090188152868912847844542046692795966456864779268927192574969432216607014217516837215441846952929642099188187038800908625007294386079911600996246271311136955202516753358474496120739145219145718710079762300841618148158706183853976282890941569439179521192128302508078808960079261508779262034544566302919298053276886075489729717238820381795204471523447032721336595108962294511596505585955111510844885276554926329849874835442089353268026288345500072875351198597690194562462295693766831516753058331122505543328456598451332332772724619238460903748855006173931194125794092263218254636924182446041206986400982581323903836356067196045666550937785066556115237980331144554834058154618043735066482064053975339131138096607566427175583841976658965202669847325923291191132714710743906590351438486039514017687717345451558392127175720858066038954497963762338196932262761260072348858686702375121250603810974253647228555443364728470729225143747917992120813720074703248203819680230075030738414585050949920939644366469262950567782791954014422180054024000948875441859864232839265645970642706928554887300735952309313295597441595662559211765445354056785124621244656280404679958038179756195165450039685787256305966848016890999616989542940523180719460426714975241487275767488292542980720570525232953574403535512192097141925725954787904892326525722660944578363102469765898644205544058544858723424038858873305965252405495151202696651973164757374338908854927760973557346017145789132805417787569500085471100219943106934832339872305745604148261659350330200535545942102492547487943115326067461391127642398726096706510309318213475759218163854471358394204694906324582576855708714719659257840883192593813126956268128997480882659288417883608543644270187341654074999131237930759891320728252513309403311734913479491507884035848314078893237131950241539614659616274001220689347879229990731781295792030424914389298139818792128038846784746271255984335110994603697635443450670579462483508274832792702534550708944651162718780989309239717705280900182975291167184441367680471518278725685494000307985695948022726641266433585323226762646006439087671758644397026058050729452937412330898284031612086427363790696112478608749589008714558955009586951051510241305762544466181327795950516427763995936701849472758502827479645187261942474606160080450600059109497128427428492420915607892960404668548757879954933212904762723296488655602519569015872130426972385761524268871065332765984830793183038404689082450259418711475886282823190506580495665761572749976585930802927589363257360699718328602142445576738610958851513005894011584030607260942374282465210617536366378996369402325149504568796500083054714186539366061811596026004268581868449390546540417577474105464503034945546122875526642076671051652069749553607302947002303648542041992004329903905735526508907316918737526089106972459117330842738991442338589621900022460583840715631473873476939194825460248085115117811447248585532702363079311392594982623688565041772930660171560073680656108409882615812233860174709141725437905290292090057344500497995641707172455053414648137420306188670543175626054260367341384228240685866890328129985469690989647782846821580143692698093452160903613061761486397509599958115381227251520899013245674294355135511740188439407451167186470972983561104234186016989792575160750792069065532660815128717611588383924928238784326117637950112507415313428125222833582998604713402847839386449491335833113095124444963876883304329945143178064162225302765972010129453370691102091175838088748586033773853636948901992084990073849815676023354532237171298293054448661547913822236677851755846775371517923875825156531461540819055297994991150926636785610847906476060533702464667707830795976987385170555118226303566429364255282297665993974241815758135305838143039101935975441869985212003876515492964979150250804022787163663210787817492245814347270854712875485424533160496010990515185959132852463028964558678122102292672010533485442538356548144175564081204447683640717129438147947261509678283530154810797151388251106935387576460160653052574657054572841281634959078997228502764689187509667107989861696472595231522808738968121066454832580533737809830329383193827652938975778603881742186664787885337937881289632091979152178714371679141901650522407621713384688913556957633299427393901164731866184515249625847000058117851830354286278957491042377202726689083828427353400325128939090336179412190973160740018930797439637820853644907174334854805777490953992289064810094059146527892444228800531908096410454823676119910270559154143762568540989517869795779870420854540984035496085363025351629701804498743656835262636776763940322084021101019200485753270177013981685747644698339682348436571245966422772834448125426633061905046296182067604282158545335735839708670085794942517965537216706084830848461518029401217915208670780434311773174023369983017745556477472397717404383200379779905234750864644342880303900874816385506903118634700738033029348766581315628120305362387934093592099320674310864889367274074355700238755102704143156114575266358380841746416872161717647044482236582912448800615667364437695128019536000911920376793857316314345707027432009632462444358275970263465936822746739648766900745645894836527937955339089249658339693161100448606068151082583593840557458223121454575307185978189008984676450051862418096557843793785755570412397612665135328649594157611824824577464655448715243544761615797271749052721539957861019318967310564107797933089064894803572512898411943832702221682117721751446393037255130741955797707257562664821277059567598707518228421225863340437380042725626227564995755989475695045730420429185241074008085648897525208157445538854100383997183031320449680932600347351816547676026924362037316026401774916396533830018832659899727575022648733967560669001246685676477811380367321152771490794341201035062656278126851576045655747661090003603182925013288715175641906845026887200853969408023906389589098173274706971272971330336974958488717345809342661551085813831603354271861290711435557096359701151558319908157112274479424154343107442720730059120902739536092149225264239467963784927703136582783039119776529349631270305296169835521824800023383707099060997889930483241050631271242479795395406495119378100369828064992012451529032550374407909073805881545354200641068003040856442140273387294981015260632743787148206764960703169766770303909416715368426363290861747595976035822820544020488296823407955504884770419271566086930133534362203440441611089558385832544614705299350452875835022869263446943265792113052733317679459958593867762005703399617749630430519728449534696042667823203729870597598476321760044924694080976832884647985690270506009525567188632000221871711099362056439030578018647204741376447601421066155909602861373632221946162830601250718783746009027317398876163887234311094668196998896500854086146770042120031571057462266105029673182218803560028431139023218404522718487132686308019187758143881377203286995868150201800420647234762089282952715179453271664736711005697541198687583236483032733623586441634965271837926178703945442064073712144935006022890430770081089964409780495665304459607156778775172177128733464429769852904655083493405692621421060503801744619336340135319694356643073899879621866573141700537620597861680364919191825802258567290410040521757660865985882689590786332682459039122581949620474074910762618995699137416039714739224187998749411582346491282965775618374912194763764248468834169869163488936554042178635410944327450298350707162801024466557202188830783886998944034703364755402122369775819327891532480240991182175780391893503773326042521223710950998109663594108585666072797062454752847421662114433873233396740732016304807846026644566189966441757662490514309686893792006529232205171237437749263340677450060211057675443182721259386594870175629387299556653792173589992402746564050141597207742293345280866927278102564042309461274602352954703743977102312550222744143388772558198306784320297953088700639162028791924291166800387091709456692640621201339782121553471684287279115863806830782892265476078705300400606494325376442962267140415221706576776930525305612045832791958053517466083836594111860427744329030359681474227402636704218052164728625036962837232201407619307970836088610973565699288306943316247565813194969566324723704022654063835618073558719367322715588022692938157103451717189681003449633082565077590107746022504825678013516251819733869828081164359574477868767945342736180072376557340002241254707890717955282270422983429119734654318306224202782941117281181839460092249491502994361721013432542083786446961826732793960959840378636343220800138891375068653101990817102378507774703167665832481567335856610724363567178979265734592305858748526415720993833571670326265974474244812171333722449459796378101169611961294917667401108488277248917199452222009832643311775864870849517116527239819379701923442374523996107666311414655464770227202954111489989084650521636790252932913945322453434185805380168640575744380035768939048950552259781183791731681787797035176247387052534415273935978630621318146249276642322135759603529395053039721938598693874911439872788291777652511726576282808404103076190315110716253643468660911411496547974283893723793807502511119580271651348251294548614124654061120235573554131216285938489716212409729833235037263591250436101165015638863934583787229614480252271475457255905613279982346982335687267903070997499142817366327806098707884970633046273528050406682211438041633223344528983811305363009386665724378502502295505511496982494788430295535407017188319482658769906922649917995114737316755877106123869272626532189820476515388770041413385438664940141507288706938879980830637522444442340169377073024267388861484626984585424154248775606008049571291689205770720063643735052744937814556608033252821435358171869380881925019916233534870934485024257673584502686460982735638873594979301355293293519345610336689317930965323873542990945634430270972417389064630720123879110175076823405360669684160397227880803737480796983184920481182708280346856148333153522553029249661633238663612102578446364799689244383462331554891002909184576060836020482057776519972901558446962981084811479560653158957039821023396322578024567061777027020487580805584911037113799744318694281120572565891550811664770846495814167025661418614027997005339080638090345036870702191787072309872507236876702365534583124212472506915457447631851339891974324607684095433114366845788501103274765314138241144522958382242355866647421403811525069852711192851851370013770049138968581969173544499255763391780442855227918094881866151988181658010497624151671402587857629687434071941869866494028661038667393327046042110735778987981954085776246618973500257357039974695457039986646687747024199733658370632250657974947683063436265506541200818184891644560522017206967459983748766404758788823452233599512176935337445883855521866996434367264637728877013272830766354716095012282926305858899687533077526008918458565279798958292392725071202971752600043145786593917371691628500608300943188652398699858730449984954979624651209245677856328019554836120176697166256074788318483649882753751377136474202662577142092445731476263125155500935528042545781364783137910983854388566460027139443896910043178743814074605602156200768540650175156571754048252407068564063986899809668238207028148170380911979684666814854515304019014498782597530825551829557874027465657372031087572495180092799876481518173330417472079865547021922543533519430660163246895437867873510120532273843282016010983117990960355957067285185798511343044473945969734798930572043133595699349077208604734053823775025652851721487086472926945176618733938581880125333947085107381117058490751055574875259534012713936920977501793428340398124575752090323468857737699818657173127606618579360611210111033894877413924882371765403510815379368259454252552067304687988966793187159487860607440499224374427267333375649825778784957432875139836334457030060943436091440854257912231478761152603301578836496781183099865114256334634757026853103983711621581682530619241322199063065867595965945445189945411417769940966991378445150610849476908118685493946991645557978611844854242794270342414260524396476624115359393393885674076775545331651274305323922241498516946276436058764790027297007489199450682299460196156763762756939049918316094232020517668608839015421019751705466884116916401327315727397017004286769465835171778275770660150287486849180219546876707345742455455098192120002221378052441762541680148106225911357509455764832188929927476099003273171218422202757890117809037390080572968833917862240513984851397672594558964091631084105955899350103486784506123028795968999452011685667787305760238878644847414368766301238860480900040038490729410269782091415166913095478429280585521136428248612384296068281919326757546733508331353192243625242859442732441939693412912931632547995454085650239542290375243956565455459987793015136919381749595986531117348683899318727839672770577188740859140070182143455191841584639147679673119571920019192951982698447087514203929086299194336499847909891407687925927483887006696143345058437977503837924334947037062296293167178399100386197203912266661317233912657942476852747158805757373948628117904751286129760799511322975235552167887904307907410246499109613642551224972087822347354808108152021966612986141216658063151149231847693954499866409692279698078937946287524914047087757760856844179401219307664952315655193141421002537759541351938919319847483747730505561947583516923075159157303908740826768709513526316571230882817323191754770460343197693933266380161268002024058136841192066996246695227807290938974562578335321559550546136235966316952092280754832044133848684466125976066982802905109535487870934855869517790094899992823924316156259223518072750226032654984803905334216698358001408205376119399988544394395414682538969474987865092872831759892364581559422393912422394496331175762947258773023124324089583504080916122066928781274411330680783840326785448686010758200602737140308871886800115216494622340155099482630849114021558376269176366952241676931566766790409442785835744867761976935425961380135107758510495010875613027710927929385140398459570413429506012922224285627194837273148984536273170841845241350359442566967348710674328285113491966441376763757695606611695111438696608181343002408537648764333159928265646048513523201860483619861738707199497849310842831655943179784767559511015261332919787375073574490544693808477933258838015087934122269518734609336536176066165776772557768788696288899042225100235440532497210967011416978283709532863803403014912415841054190673472828815181480291510843183604445234157088986284031043630216426568765826349870995755029956153554433316776020164966930473541576929288044366024560720435744936334103598672209997165959656913275382302248700582411977415894322293287156540251592573186139500955732553616654199429736209132273595790756308322063788402149538751721816933172364826110783430355559417986296919981170819681012256884258629121526791434813875206212674655203358509603856164703680179648027621825029424585452165987833327139990547905118471906123534142422509058194267944639214591555189305485123637179218990614024878609471297318904680220291235824164152310702666385871707177403693593313418025514524491643613689851119522049666566982659110244886285976995752170541611157947774324562369598952703172008622280215687811892008747868074723832472379388712419750962486693890589424226789365298079225116062710391305094256681978136879639000536531126055277595580505448962087958848177442822455879100437730166958078456542840102116886211874925193933670061469801584245069101536436254801140231603426324853615367678057374414712166559103456527836599241114844196306375385190589679297318575708107451471217707315191288806408597795339800030398449795631671273260023968995595740407030583779805804378394167968048449229062000302867274656207071133816098520748771765849875171170607830308013817500070593916735602076802185285971649152423595920311200162122654270382961277116476244928913276125123708149708209503288802374586269316540038995507828614597993968163490687291162212856124902974313119164172190093058523522862041915833073211036993547415286726056365181179557545216301994240921756704829456058449891262293976088769546581009146570889035715938278345496797627808572231275498596194865027528684397302874884907812835423374872882670261894302930630441860181492670698919138178190966937176224461311436738318866121732025933028706512629176609848060965613017524922099566387779236409346151615201928719823759600507365218771439513023416927479070099300332190562620960297177390811747265631792701028821737624350885794875122173335774609672735345402149394500321458588634070173629906539801119667767822731127384366427036671077905065977064558623782372222691495326764047472743330304908417783644078905742043228236041514441316266467304325013535610342752027504331750289289063763239715294771222627861710187448128291206194692539553068617340748857832347209461632338196321264270740232898047017891776383992325326988830691367119388667330849850061038806970481206190960162026805703083865783679063271105032171700287227459081356712609504902456328644988207165757917193745079336720200516233355234449900372883504163992899401586192805258658077764531709923578194867278333544182176683642383097565319251596969890215855916832145725712094996603589783250274315813981707957840999506187268969534402226885441345590420529766401769477548308848229466791468671104989709400349182007325328508684804717772615477064522062633204641409799151799776787466200021499467985499825794463776968762408321254548288648471307772285463146887664551899737343187508082172195515884002768597772208523132852969619412271781121359207888380862995628988720420833121362038996036843029627279161557445178233996722061651776982472314928622604515086063710364436614256557532239545343432413330402871012169894690563537161504100300936339392639035642877774018104679804558785770333875593093290208651280084973995749086296405117945241623866913854044745893618183342537663389562832543970972069759255183851368828828812753005263497591190704264454518715663944164013504222210674491249117611579197741534702908065075022227746374337522070459051465781208400460528261956807317858443356812835132968235763012005125992703661453815088799650487798060048610485732952650505276475608333257720965082804775351399174401689578881206866661747766694079656419945814520052661220030563986245611154305880449172772241379188900777270548963910824556912407453104062823214654419571923456099891580650385331274704503932426384808042607313412899608624555578189124831242193993167931066257671998725113437214277819463685636896995579602273052159186166868397562368652603295061826106191640243182919376899766112066969403495839045211970802112042282804536123576738655457234087570856025567436431845278371151423964793952570625748975163103163209636003680990071981018673834910853212317534808512745606088772065205280481725330827824313719333698142802819776228255421479054332917532364694043797542343402170842228169258388990413973881169289160164262389308860009895962192845835873087343712287505053847589794771990678692998159485415235182186497775045252959203114487782625685373953267189424107457319615203945723807712415362429932690575241410625945667138308421470735988864502915087700758675150414087574978140144979932818383398316229916276213797060236976339001622629094850907022493549045926317386541661660590322938837792972397665638347676490338381105166062583883199707510711456389080427629605472491858965378233303165146483783059519554999736026931794611564464314936729606487461420060523699666266247803317427042252992952384104239664411070379630196374432899526213639138082883482134813589795694216765178787020789062452166867399230330215570155546235794305085956875368411015470920589371565139937955096724596221225433593096460692705656708356463214746261655259476187947198999942274989596268272818479899971385697685026679325812340548160761411753813774699340888767729556389194044515373011996955644817688785026244936987080589458073445804618404054978848895772743356308239668381385784602505432804985812209398525453647979331433292914103600000728307850308413065264631104522574824235539173376847678785367852685611879854985353451607485797928521733147053368268034766308169601326991208937016810768190573333332327777822196034519161838846935711586531532017918734716681906911353167743567201855381940384791291503352181747937563138260476076018667103549682324699963369451673516673574793334990264212011109168916450158000148033180437236421548132382825116476552291766242227981993512704686073903188801214620256986477252761753216256352895911072500733522939457783170065489913149477821134750470730096926344144492890787159653490568791763569944337608042877085462988180613864609977515601033642844268690684436965100188694697843623939831170539567722280503584450758561153837580779318714303592925656556917736184375006488721123648915084190850295371062010652393458926084653749833950649760739444466786342311615265235090793557325615284725014495109187843384585456651103665308010860828452638519570912220476256167716648173339948776389386874442068459969173372676386488592551300228348568319808866564404461079006844422241650015416384585548536932794507918628553307142438209181980637425154231290439515435454047980698560270096754292725352659834551354313507450798046707110798031422483302761784957120593939116568829993177393657262732365016836613660287582826520679869548422028166425228318008712012464364345202859111610181735428196295902735545800024218138226982044136624695971934521946169227570102174317966915604782242605257781839998188579764025250836864397237519819400858890344285563911812636043183986781291990867986260479315539767528893203899357029033152815978523261772223231134335721831044795288334187227632083568347545161497845884240595571611757115226553122432397664422866516314407924690930690947353256545703708010520978462277856272814528692907836123948315424597563240058350228741862363385913554721171995219687141214853146084642764249294436461535419782262491171704614770476277779611319442056886787168126436271529725834065554439422989425338366070148990405325891008485008703053932103715240915824296115953665506515994135507192844911194363929638615555530454277424766761185235679563831020919202600830490864716688346750157866090295108227447345818281550475839140777985669955332429001468321515200499698541364272059447506673399672455224353739568987369450306619371865534758672539468601244943782174517697974880360055961798994974296176657747484883790897068593241942433878408034879997885282982821993207293747600646648256619659543769727607643486804379876968783518152064421105153695622952160903091852915938379576342231129945281660745389947676594553768914735684963368601928929396291501781930148936202876041608817019853647509445646132119998792663410766080787494316999152803855004534456068734244474074444009323286940575116444730226306909572528250085197771307416626800337445545916292408386947090615908125890338847336779116921070259156955655788111293054853884815049238309714614431190201792656713207579980476365986078331206447069776340175396089505057456053723809611677792757024923358155044324557220857517357624717603644619576619685801669537669009169005262690106070356923123192884771962460751002982296536580133877787412672018401859218639744275508465736887764670185767875968754637791864227609222830737305522436250305429271292384741235257348730153188410248668729254020713256300527610013365162745831681752394802684234952519465623871863152560255801852068302649194316746474893412479516618115845603997670774317488524905005668975270248886094635597068354382602192618494836483707755784311669726435620440822429385346030265714751240017576389391176917579038753719381620022794387906036976472427723867686073798483725298489639190250157931984407285925805552724111834401232968253872638602721099097455992287254726756960824792975800363886386006693340090867112805714783319488115125399461964861006546792588664481838999376064672602631926609966134967681454427187299941722535961020187983738651828572055821420326150455198084157947251102877526546368765768464117410498557279899135511108028034330891430238980894838158576520310305619653815540444128604005956485823768122278615797374240819191700752654012358503929752019876620639154423214773081055456925757044411737971844112124155850341647695534983069395427622541920314464357682723470155238083133857692057339908844336483917436530535548128405809908548142324511124451636952438555841232230149772098113026107998159097294903143544091273913952452252968417086501694264936095700923318240009790549209686104623857831465619847998909111739240992201333946985964476682025943600271495162589685668678673011972578188703531542638385779082074392932526754875106693165777856804373651257624325025086051821766499985895449765625771044354383732439299675618091130980304856208106019115567072726832223577734245746173350512153286936823892663779647882584557163909763015788846387504465165278793542066576559186334154120710867130863571008517764414472935543107081902381403504700606485725020066815325211204581104735576075469687130498175100865532313060392138332553968820803163885449836516486838242682998373111414258892758777470070659044202555118130956182827773355874405919143604992453943259759211463024723894900701739469435830894978229422903052009140249281388349940328593033922880906808761630601789617950233405365692925607527072381788361254227385264403429698582553986254048523190546040384492392369036795850755180643277112690434535916527380182813675298491727678900104274440606374480951605698960463647602787075365828397759845870350566977309971015131184364108243281208672245432660066682094171845083919005834583166507578269832600956097638448471525371893545072681356853012193650751114160038713903405344301112229320702873865196129175192461180977132938822977540938488552601404902717649670709520802801444480060982796623018142173106243146088894241878405060553421400623120581864421379730415875489584435830085411969800822383532814297355054418510340148257404228305278637556884045874378350194673003675899761824429400576033510556709554494146772301834414664194063197743800637835909306330380062700170826683382738633143321204007874628767809987326285329526665854462888373812104239914448958213004419965229417751663762225112105005017120374625287434174343487972680783368712206548833828278635568317865023146362302805183480490133149121035937566146706315248347680414297903664016605847782964562617839142898632004269735585854627709526250189657497866704792157311699219364333315389382917697764089620671331160233631235152254772589941190163428554396209808597047503571100115149551077467720742185735151492347764427661599079008208032761234640079726262083903571568471303494337501894664899727976257627058200475248696101639758658532099908656682333429570633505617752418046444701021770820664219087358396232972323068488309542856035975639413992109857709026682087342268359396950959868195264380699535649107868980389139461082778179304440583088346948299115216851150956692927473815396595956033808323975728513484204967765865331570914294348804111328561986443753233576541627794099724133335459050193166383962398345854842337675427498807543577049452046775261127442526445231366338853370375069566556077075024874900720212177582355052039918323421156010982711755034134746920345578394183650241640495048545995157754723206559838534958198746815740345682789315991788926509801728697494554586053947528438520573649637885281874381211072872520789687447049682295969173318271942741854919619946134482821198538956899114243257868141415897219265505360582820468509591872873874408529001206801143362521360195114447777697431226305274372128600206544919209466288259517711313075429129510192703569871640076249606262478847587803656120435904739269719683377791675156656406579987964396113925211021549214943881106199008163422292979441847904495294110156332840272662276222564196729712288126739045655788795659714855488184193463416512519759840213809068414018518169123824107844899072966768748774745864230935724504087216297783611140298908301814423590464247632658319684410392330846382711946872481993683116472023404292846708892993687536740996867866321785281693921616515473394993880277123655454061844218737026652674976651225060878311672758756455747669730856310907444962740487201020637831130824806253698857477698106814196019651067771220856820027702350210111389053916799695847109622622124920805894504980905815426028666553793444715283573734596125266107249171499399453461618232139432396709037973570524087018751742407980289940126062433884184321135802176187050175647949874164953141068632186565124163269957768282987845816286042601214863719868606526662983195953637583217323293215249938194272643797605132489849966169469819120895211657566300311522808949268465328217217074790532985074533585097157687103945561480865466951176970580942522486953369090885477904320128848970188327469018892083023874327777079513830336722743101180858773564299331901969320570844070195045703354087491359722640606872815816248295810837441305195638390262153998608451013469051379168846054037201408794462060024785039646079205030454888445137237759650818227031780506166835851323110660715452540503701610558180838519199004740470448908346739467427719899810428878045815026882202396340371898434149354965360180414303308754827973129683179479691940091430853496785696984006025051765332268548456467077876678827384202116144473742657904566996455380057672998603269033512158200447491542168134233363500786328764070298368034689022499687469009681244178886600098389482747951035910766087950391101409953658043521722278837359838439131505580890489722731308707062742398209260763143868419174874978793936524356850223777379912381179719620929834823381650580735760116280275998173229328929234864316091182873663704388813320677912774287469743610825221453925446500276513454686685479622965945416380995469682774592470093951836284175486941996658607599533857194421003695016544661176051414987238447939942069351554110740496339944336720827293751106166414028054795368381482328324659971609357201923092175992560336112928421632737455777623079291086956513266525776789738703164089938810224138263085777343408478664839621102515227070323148613642787390216900036280525033855476338201118443857316256768305649408700830214556230581910506689654504575793394977222255035948652811898881151811322362139543862314189015403765604478591876296936333253360431466987780907696145787312284294341158641957959365188672157596527280032248654408030811187166506956990695911925030103394144015038904142224459507365498648772642247338282306440986164106076265561320856491695152022309218729079303698678046724247766732858942741783831874038249440558413317588886455433021838282056757418791562455833499118332631729434685713267328518457867117366883891125307566360868843090865857403427858869073699800478183546014390229009076010696248851036096663125209248810660657924073875364249721965751734063997210902569415854778900842217279621343546227345012118065932168972440736729105843160796272579607858452473387238694505096211034749040699705024471711924750112338291970978557250446600274365614050949933366037229966617640292857311505922200970662427237229664799861666612794785207805064825508660734746379738492651129706717716299751139575630617329725518509610968998468933231693418927924982450245009553745236860062094442642857646156538870943540958199226098063663576174276592937136565815191395117767576857337154592910519200823135352703478867349943044674566464203560561017990339927636013816173702480176993176859652428647621712359563070231979660133347997931335528058955724138612651038637279049853124923758567480877187892373842830065811613357909438599069854453049517192420411163858691372149844232522096458199231492348017068346221081675365250530967289866098698116248051734946723520792240010479605181420685181301797424996222313428825477617166259016111554632533812744744032033621121338691882526623170566023956987921433788091660783466694185485846041593630309007116984525656067762886293405527178564713842105703928974098087155746878573648641782702301424278353646709251241403721504701714781660132543625255613617284419430994882019909825958886025458703048968511088507833089491679094184233030624073078297858572747630443116709405689949357814825225372205880286747754935795307050383425969934863667522994792561946986826355460318720691063248447412991837034058370505458630794035488793417194953640736441554053824470154835323766969878197604550612113863941805134262991004616575574945531983393120203652563137335786205692173359065204080906468434683958952863755867189000510056347691252775626602082952876000629002364920545905050588340222394110793392903071102984106861299843591336348687006133957788440875595648387097074523679544354497009343289669420821758786300222687524974353564955992372503851998355927280435578044042206685251706839855436831603805847773816924215637502357237822955719881980273358253798595920490053623737182594944281790054185746349461971673582420906608010199938046767411437010010202416525313713797658008239989361826632939878211643539381107145913517580301691041107476892857921294279152173491182109008537357821720230858775813579598625768587093811318504106532347214576981785778333173022073063903094299533494252140231911458402918348486310728270400167699452757934861174443933473765295218951669326208572842184110279779410015883848172691062454114221733077564895090181415232905248645414841211154931848583270971611348538442490132489766685208122902623240090423253227371816429225050743232529792563173164812443818710909156730355656241065957361251732722201947815238243336830609478777668711928081377901477919415253546528980735281942220681898297117563557710120855713301249672375109340106595725318583201173656699122996020034463737082067643867286379627058892806105416057396165776715490853719405420831897242220070163760167687820480669172582576831178592624208209305478189973799445732328703412586375176964458009697687971676488210311493582794295920776063546370587572404060935203969085559640798419791537796980334146524638846796935880878873111696876855700103323157884519163122508585583785658077837198121565167392657129796360987454560885733086286088682557396149116295708858681775206741374090697055555616811477441567385581584651264459566976593695262677654827170487356853031289891155142362777204100909558560884239803053107968674730026186115435648894744047935341396198855126391917793714713451443882434320961337875695110386142860792816573549788354658028558434814710770713388964232484952825361159385502183938202130938399877717140182352930627690639843655179544716905158625182930476875482730145888662413492850327413827631158308651238539206122961196071907583749770770299877214607306295362771982634910180108433708234605097283234115766577433023789275237659219785618349508044263600255058261042327654680443231578859089889421089366550210791860322004409539682222612002455407872052362186387333849807663271432066340903611543444240874366559532160388928440377224519447266420936467799064985817721821593833248599197863844944347808606005779263245588100792244468414383730680278564707986547909327051356360976569780044193823615060217922655929640073553980278596539282456339807556088501797928373978405546135571973324706008439515643763430916690908561163029231862582648365127311844674496175979959994185822245559233682604828035545381401499461299977275549958369134837456930689734499131556740700334146134340812266559331627463787472786379472998803392087902109688678664406611073987987528747320425922322703907060043326362284667436057626995998885189361704780251562486089997953241346776344362534169713070154720606866125052987305672287356559695342112296497003610142673948618890404381399506590502916850497134768255842108897889537790225329223039891878395940795208094744618350968173564423457534693537689021845797718591090167805936172854767838912728976547018438772843899792852079625258216289561593152824534849053508387063148254808671589895461992436815948518621218173394147581112465825606560058987910268186031587858102648429275664165342213050310378743463336746442497087005919229547976001549385040404130326854598394352009802041434837089393337422432519028182117447409555658894855746982389146776221002848091192654866306291850446254066653848748224278251615304251951454718239215443716995496332369138547478820588228397033791033848313970853353724429017261034584935758193635659415830776245793337710450988971682258565706100330721967126615567211783790484890590739958270998895198806864559393587976755316597120116388980921756595752678325510447651219395834851948392800790626535663405465775010899154852244076308280810308398777779783674411115513280012808838236799492541581201912039799492667310535082443777864026872217654133901496341844650866567123337114680608052553071077901855360282471554136442103621690821363967288697166007762787246316264415940937858304069086308044315772470966005561179203645320863316498709464122589105945730297498840664076644705745460343154928978231536329700398539640178226484212538955262987952504963292476488241605179718466682948276931476479045095726779649006516902769610184338915967373271945283936656948224156162888346432400857086261061869844268710258965947639932298058070080886311628231548206395570828305830335890630673870812050158661049677728843879389603561926442447044134529121458207685784663189246306272435516657405205591850203230833065365164564062588325774849080068271894034593946729184147307710066693869550423096478403807028526375096652388272272476554880221944437753654569948934407080581339282987643476773424015912466649052539224962648003066316289254240355270400210674662585600705441119244368904847149024734843243804484514117759895531002398621982636724248292001917649942213508921472240780388520580977244413675656468751272252190634412283036789239062047387913117332407331047442558663633423350347464795501088539830735533332252714100236604114243545813633083653411761301746396674188228419178544994900444104396479344817349559950745655065621054744184778760347195433667527119423073379912598553582000001550356681454397052368774151588107093650680492473753438563759527068539350634673920815811486025999804464725874449408053812003179310419677845553191050166923560850982265607295428729144817120901219445407378625116491923286798818897481466744360376476793779041182581368510682768385056002183098996079286137638010322704892101785443271127483845111614359661785318209241517995909819733025904603848327822022413074830969273564309490709135322262458672242802588404162992852008613931722286582063055169650818500718861382266330620064817986592325511701338631156432732317160273644184513101173211037529389292202289337814827830824005537472975374595432033023439506610293650399818522210658102773940468355567469256408602645063542081738282011563133355410643258870796451144697921888833724359483505762258231838750809210631167379936426972163176749559118262391586343194113838361060966675289107283371383738612954711524835070720753216399405586891764998472062776346102783052252695982792840721252855231520394236662423259882930972715026271277337155425967866292139190319399741572624241714852539450896184285195395538202706073131371233408456567004788967058301802769901928473517482399282828926379472428075371043904645987588868921514051826817239556762521158666658867919115384196987981700012722756860157985976508820688370751698749825662541132220726989914499655391618028418549673520835884186296139736389057462759345865910058185737503165139315584459287349880802496594732551060195238525090782451308842880711824514116490551090849442469315455628259559928088057334011677848775529585404758454650546921347850731181610795163601164529302156080362522957853928431187982686277459443020809443096730224580638294726463131127766948711285320589479517992239999515161808566968108881996954147019530382756105985392408744630951095082374512325371888315269351856838800311876950627607979002817013781063174196738221622422581985725851542241812201047433159079773899224202435828399987973424408840998595217552982934678854939750919390048727275949661012066408570462452425944478221912801666324070914187343013923522842392623526254807178134835113804627970024422500751143581656259249977919625877229158302370027605578722035793035313401601260200551802361534668079724000529866960528315564448586231575332307014383655626028935530114945598669286340686831555814524573258788923434474636837820759731689713419959788195310729689875057472280401298534432004901174256490636512688389615302734520109924423478771569190828104496052830821367612006310267388880028334717291219014777791575121092626733334595462808326386287684246668460400705824502704925330719474647289886688777295781675556786214638725605954254267471673073269877188752167205953782723768950917015966059786131302955049145879363943887069983199345924932341523009159775646130568793195479710267827611722906048882665741077990388267247882321796257206737659472970941076685380149979152950798003480469547762622269465984433149289431655137855796450410415621255755874040260432021889583277942458604884305963507603024055715928599242576087088135728632421555290004761748032397423261974605611206634281070697407249259122350327211005717791396655469537452361017664719349548606403242982080937515655796500455805192197868137733240646094129622143377502584969947004923959577282270096449309209267139011041643831586165471150171186724070054131570835695008392472734616150374451614553416979074985166701248055293098927201869581467322014058319350031540727708494700644573837019558745040347789917980486886006621452200491182743693520955787136872329610741978843601328495862985552042657434528403718074015540900754328081739740086246729710402257494294206768450757653965486428181010271494784566564534426569637222293195477523616687959599650420034023086131173049837967850731541665447294580183364263928320538375878478033399533713743959698899459106512184188614569307226340427857728509590277143144696342584286166687467204276157297282837362803216570181821761633540616738391335213292684067810821221321770402648945920662094037272808077040608742466620804157241274842275069995236462710332557944401444865651150737757929550272530984213533561791540694006508926808934942289809867143278734299886868882263771959610856608311701587571532861297221364599228206180443436132793832059883396786160261665310793847168319696251618949222317025143542848227052925957789369522928857478271731175939993587574113738281447351229951891277662092023725161419736145631953599763561972811274772828865212930438042841250510912651136164422497585793066184712970670910496438991380460647078349213836225920879899972942292625933041749863900652594309685601394453959191643454951809881567855615602913795108726206576363411915370520858236331828186378046510906615803725734140637481484552134024763362116957018923673937179371094483713272149071147181631543356522151954088390202178044430750430332029662990302318092579617118771153024521053849972267454474014343116112885861948334316023534732405614250059477042353217870797019582768849354708014332579653280385067252801610684406733653258838211001319294555604197583379211728504962180518454093347987614072384189112865759919825797458618307221464368944191413048157647469907795861391290362329292787317678807452161140305223304076969204107320338941048778400120444748201980081534682043346801935493475622079580322182586537233195579224429290914211977974654875154219868076122324027758844890396217859814133513480166603918582533125092069961638642971420623069859086050428632252047341593932901467556608618275384662090724091024165371164405867652891220048247381559313976907397360787470561313052892461845526513605814514596165002609698042226839586860578452591435698836489719453553331763798303235816595476596194572500144800721295539253486454002963587513853202928555769942287146817562249288917129130512434161532358410695420139727481882034010797179681832246637191495916540801136997957024635167646908661216913639124249567544300741599315993408250631676425695957688273738832678365026507477369586655754720517517877777794990635994877879910197415571097129347736031387517202280037958151924206519586109967343205600687879647337065851887906359935922034037909243090221582453270574506534672904690527186035232632126626054362540589203502890111598353643530157054352354338107171914943574824193220048880096652565108727393314093082682109398518408765199584212541970559698376128064416574460535151105152666589116844351843541629729179277116164493390694616509834065720610410772301092250828907427247491076214720670648106535578707327602380255910895429283920226740921039337533828950740306414772743974583271327482975188326884441392951596270262239347188582385132605854174154384549616388121083366842221204789339797190495780017600439816525712396099604380059317291955594099252243115592063984556418764270257284805520326965451322663630598783778322646161426254188496344892878893552447147116118135987849099382371485375916278316828338984839832293213173041991358141591364247063218232366702671830561072409414212198763004850845518749571348535290357457379708982979945248810355604123813215407771021157151992035096746492033246003586814695489211206754342395601408759820836725508586668708471145616682464406233114268455565323204148935307943408853865992339695484354362186307953928641491451632653662749583494836770130406556102735097826634312073511259586241284008412635725462460354068356891764869117028383056187362457796541751268217014228369192766179122034510430614929502583205150268626539142139914820203258890747157658910001913186797000225570107756768749559114487197631393929208521050238814557196698750221483460580741527577160532212634468350613297323025363141940910167663984311934031723892019015421685770887049023360854184926510075424981830359849536918697085075312301719772164263985635242835848069676317308237850248834468512023926794005601912199726504704585699526268038908621911188779260414273458807308300967935182029230075046096925251629273025044537646851692608456972806273077601527199288620708310602376522837021115153363841836611920879374865536240860963064645129913176330002590395079774488806545421865048580968773807354146632691210217216606061359990343866492520317371182859661966635055586563371601739051621723933313031536886256201242197497267428287416911301476060995182204848131210202952770656781570891939828201506478864408182612751097623117156046504456538527853962541595420548867803737607902739947269138522893434834866311192818349468525915326147420304877707857331483140824453784798667802547281993264642015440102442895195120924999164109778856492950079339273728345088214684832077948588628858882583095998562460632270909937130459734690955300918051317340670448717565127218998013232192362802133429753587952872281605072865821536266417270753039851148208672988386371099289334780200714763174190326706847266978846136858968209126243774521978650525121468024643837437855702381143723183469411098823787114618314029937732124720110141886538303642511202711842846220571732101279087743034104944375986550671510425716222291118051014839242580652344705020600000753562791696230197783393076915313482179997654846364501312091553818307444459975088273363673682376971554097661008277063944255266362672492842462028575521966026489748582950595730207482361022373089894441284438273810164011254348582955936370007380928705780386440997420063557054057126981407675730170226442984399983778274208929062295944821391417524608218622155980178065981836618532892795873343948309080130894948428853478326965514178659928982204007311438488906148551057384069392682929897456858555322137455308862057566754004354067002054921015010670761262252911780926865930146329919240267109985727865950442905984036249738189751314075900221002848583226446059281240257138223548702996924511235928688841853205242545686904783450437472067766961226795807464933167025992072659355437391260595385599351368284584750538873345152477452895266283385651025050351334818758500343833472429552339717972889013915449248609578723534289353515430547605343897604615450980222955984420221334016900580489842466259076819032358015401270873774588216303780095888350119534114473485976603495374521559808852748073607170971196063347826852622041288108589573169749697208139866086551231315556414590081434397035850367877478700583806548752235407506190981924569000470326869012351695570920450187243501275971385856316051446126438969186507959797600867811586083588776660751718776775551640260338792048002381259719375531955011734325041688317682544502921825696483554380213022804962037119448966287576596830992657887446675941647108297347516413607733613039035693337738563916510185643802356165050315079524567976400830572508887483618339107280345438895772342321931613638019757295154455108098722490819858643728571002498102546290053149681464134694535316524387427174409326867683003074801896047447753046948314563552335511371216006787442322644295439753042102519372935102358916237431889436809338328626551104169395801893071913820667945438824285587127883984367305225538774705447628087569943958685626546937615101556910019673368454653488649539889503487856401297370300336131347811016554382459605516674254687546861985245582342221533806267711233957912359827102658900328033188467994091670280356778293915877863094064762989670456901766368457813139224988605217450646735549891373881710600832720239874481061758496174654428393064290611803419139315568300718104162137066951768009120971086737959297050142378122344252326404828964422191344603107587581744478906625146150519593303605758389147783023207797489614417611202724483581999452279361971025359373166809791767523446886180959662769374873828586671785308498176635732419348392968307371205957585612939561959695472331476619848461475088543209568359366039508894447942155291265058406077462386626551568101069077791666328152157037207180364044133468189343465333806136186664217251915736018311794544362154599182991816485763147057938617942272013107730965667289078476677939138310185080410175709947822627793147413127579558278776567628421058900817036669237666996517545545652504159924322490833687095080898544919831631524590744665138408653637916369015432039495781039877411783225937035943649334836384771439518976680323909486553810466185699005227868829843695545451477724157746714668118793814588040357028224807015875041642219729797890528427730346564081246874203560069068065394049820314989561566216530883489749241880970677941754882631648230740854875669099805732802444725541408937814663873954133356125874250132924131622441512720668758864495029309094884250889017762895615249600524481658525881832876199046404082962197276336287432930300537214088261207826388686322970296442284991278127299038987229568641998061948114660309512306248781563516203798576448840018789920257359574176714460710050634156255189415284566382620340175301727926695716781460357054119213885022838098907396693991418068083261060145886993370197232087705851344929816565864350471188352901129810797214802771127329345207980568076755328764734998856150154392255385162408866664709321644710303174150058125902542103778776068519309700553133716034095945419625249398170636787791392607431500379424546718077505702870692082921622451473573899375813522753850092832203661153698098405795399184556373566863129989368363806500152188018852180261709084277189764737343775467764074221794891142718902023179216128788250409263162360494866758599859983531661494132109877523474408401576419789194731598117256612755160608153412619205109928817300916939448229593086418061442052710978947855609769486460120526910504570316930027930489889600907904018875010902403725204826637191141703096523851570813660934049227189669618417752936532101093246106691539441158633848981849933440801671095092036110109603255931300446318013055596017046469545006044167631168095756895981203288894667287349817844984140735076048537101550727637375251412577724067741755983946338619358892464568269583144719389918073988271508371700333895214697647430942024622658261963775857886689826127780333269709360084300832030873193039929881329835991482486447935866664865950357228506345091366834181559241094586474765831137336222776628592301177474974467647167131767666946014465677568868023671589689223826637088910896349320864132140590891862113196290885903113288378342664924387611743713266577752921814000972978259159994740011806171559548367768246161308841592674843916788209813588724993719344338277515486638950504928287283137989769414960840880623537966661313151233173248052299639046541634430585075168662513266396376070519813924613985848920128901431206523478644838189990595040893592360175950260610688611880884842023959399062159308980059793625398012100210706326931393083904570604374478682784379224643464946054255517485351067248641464092868930246031550331940125175659731334416120308886384917124493464291391007943305188501736945424895416876583360729311938084544605519531987836084162618505009073026104785558136461885958229721652739965224238635658280905867787741156961668639667492670375127484730440314089955837775349923942960654397841924472301802949793056329002165125935420476315950339306925121595033527634638906704254920536345361772293472743322719088426151566340312969458357492699452609086821612785748895355009371223588084047284510852719224342582855699104137268101577615887150329894937089118645352173876681693379069903407600180592309917885696925365301774507484283787837383332524151504071797127473026251908133317022556025418107343042800698607155533463874871255867039660989113862254103262523166235521918790615036119736209932014757334626165400792541662460992928042252532290271864871949806411345640003597934664725905929159795086815491468506781341932304948715028650602556466927758721407711721940037598112849190614651066033539389197090703005462620643528258864684213287797340749885867767137478197952346197839444313396029341951721717511058141894013024579767970230157099485403119760228490380491734543733260721113292094032912083106903375683519615412365416948923240209804763065559320430156175668746517926547426142895246253094586467820009289310642295281985874352337006398847194011246580717062176907502026028473009367849636255423610743354528689112441333704127734712675510247197740715189773953517304978208366058286056573407454372840780833570177531408606196375544553052679869135253410340631841784711962132359356288028829987962850448155892629827534928836756368950970312334212990934817056506186180082962664246596418010481343172666011652640100276805021608450012295849491228180012883238678940758289862185761766083207441678665043732987051364203645905172940608338981731405220298886149184138627100780798751997722723839867538243137731360504167591809920077763323065522788109015260234964771814177555807694982028103819898117848239873955217603451953114629608648155461341254791115944343550675615899759005903665029113238753429027675257830085448138946460077301435822489827539302277490269471715050742100037487361625187388711948692895530491450635049464448680524579281666167198071902090984931630561207273284333250297557744119506736037396200752082764106440600033865309863611733621755551272177491251718567056764780697373870934691858728944371661194879637772876481216399570937920483938687697566109820104934770184666659422014131568578641312497506317839746946839129353030908249211650317525120241414117570180634625702851405855473911882696671162231525687913492279235456230443873375879624680289531848676254876643737268255794119891377164950129254279207262537123904731734084794248460158550956184356522137501997095620949944355448087165531602239786097400539418651998000234854234588287082834171140591576828032520910192791573069313558755808493359599601895060296766057706944561364317870148872347577048326168242404284786381383401530724088752615428340166469781767163879160937151754643866125939762450481003236225783992073336800154124161014711131279312937012836516046941005763899340670224529421962438963640835715139536294072961869906947209180228281640104524070734178481790028020593037998416792859461620883851565499852867270344055677032224353577510162300417923297984249204555869590921409530003171065563534830953760244621751002274882040283679912520854594875278265530982532750204217170457550425607837055225307045354051569089018956311192513948226829786046906303253253184426307503048384160828033887060021044380917290356055964761643865088513043105599600040514866451446714331739770343777940462145357343560361763610197569828362660854309053204418468500371351700974061452671400427856709186784209032820719639883478407285392174664620626436149540005449075102840731692613517352309454212496175238440851552890736894788472517044509727600840504430491696274921574802082944825572025868143022886566639479475551067557372957560586044896396514315853645413372453141783671175045358028745930177321561226960210737911693308261957943840632879383245644635424228276649460847212199199374507958742811390166944421368759054012009973605550596134692686131854645431610803378524145255411434762461945632044794308545931785623131747828778593084865178121760157322161237227925589458475582493658763333390859461859093246273555447819827005887424371929306852701844947236869216122117222584669373290328783319331124425898280650161935932441004978427148521623071371540138809882202346553449419855863822637429747386591518079448103662294235750715384246177741868288558289774127230541659223836271423040670279821933392783519252711659404449204158099833637963559994869397927545871617918012348349349247565339286575877505764699123023614918722824592838229634543734846842221670679597506987537446550351862602119433673740319410531025357449265946209144112549846281671367497414461578603845850636980042090875130921246552115534623908526974826670482960713528299903097451697346546767705378333698153786265825049623409819403549076910976190739655847152563786305578995158147146738699927024329413705039226594104324727239823406114039971086010655841738936639797322374462922673431145335495093458615744840054010105864772717257661314662570095989477492397106346991244931766833419566192749917704543899204852765056399540428055611921260918378232291823819973377379768128857460072107879102058141699649107968042392850452658105863876105818363681510868790143561963919681866688960410552082106401939201622872300640054655509243268101172724709665117866723012258032853066772081814953880496927239446893953753234002019726697733395480004309872759763063601563487495393676038521463990976818324256972881407827689045059982502746963571534006156703473185275254674453681933345659496755222075293446366471181137164972306773618448206487637104155912573443240557712425403922792043850619225774450811463429811579504221925888996884408923478470450635742232342407305018412279613329400461737737567177346275175347178690393762575361636745286230182440134308168027984291036432021188629836128507358275562533070323482374444013596447487874240815530567764894920753698774734834806065684618252357128101773828893488522967574899631702744903584064926734329015587661229229107086134609252967001917448473812338795732683980758006621619024123475677265548990292794593340296369013179753170258358293996706945651694302973570832997972229769690224070736855345326625627896792089127213890270806770825002047364699656036852289176713683355967234187292785230276992032422610650496681747764959843412785118044889906740711770364082948966005067877715376895848389409756783337216219260080647790631736865389160254274597885599469158014875305282906394412067969361120139832254503528123418230622084924100933317575872904390446873278902642043033263902175803962091848318177548704890164724143121036960668363103371722881505445950052373625655403775973289424165114237212175124789556444047406229256208109958165176460017173608992757439729126225211701425172466257505765045760771919444469728581454343339577458967650376448494403984000687028778720318158166334191965587061080972004912564609770986588696639975749250364337906688361932486606261145950245820642784065713546279320188276737699056141159630745908041748687728041014522644014819694853873904402470453860476557413131436596774484100887789167924393508365738881318362799663277654965090673019005758131622793930029048646678673439434671861286988713909708048428976859381252542568370651005738995496077615432744737800302475216708001713693314286817575534910547755392359466105233050144119625544692423732642604380934474848864110028011263277400475082258110082343362121638390327889493971097537632886591776248116009952313602516801824695099830519540333506464244877434832196168879878456566682355776065983972794440141139348976847850841211880189716001875860888106212099169291919625887490934259274593306080363811208397228257400598645367533059317658175034123007349550266482557009546830663864202309081783880472194965865850964305152479647980914872587607894406476726622776276740503325884039626398681485159798807941713738881560726733547851493506244728875496649491146670467907692281951357742314028779145441453821209536248878830441177491735486617088430172635495476523415557073603064923004519554120812257151687324401971641297425548122187295542943230788364022196723320687649758880854025051366701082291208130108720911057671154261863972466988462952605014371792774422160001833900689885371298108342639254826961176905655331451306789218065201660409895265451724741653283017909774442872386675980164658033658141220069733114056708265257739713525902783534099980082981734459950801451521885649730532396121342437423844366245432907264255723485853180615134561794036474276186778273741003777496358349749763280466936824238442299363509798240336836794673673498990209058418538831291356574204670356158306978846306897317720487537704704025678780814819624240688273942387298078378756059144466700314449100407234164879830469267343514846551527878209948396596978953524113697532707393860317738432411478358781529623687904189836185174465768819075898182294088853238648441583832821204571665477359463801644107196735331778015247578724191275318579695763380303704232219776849017812532272542655593179049074343918276885962874743919218982302816682217903149583986446860115902314896444153981037436036292314681015386399324879714308427705112317636755376180815712560280620723923806255185149588781499092988138304929804144497274345658237938219473962696637297884537809464374550066853440953513982804198213099217717714545816759208525479379206660602575151272428148455391558935537878190684146014542138062902171975670886856419921712036251022473299788245145915978647968450898598921237200950565211799208571550219366933874666965080224948145294281765487265205141509808654654605199417986521482605845739334730281299922735307344194480331329950609281603794956028054471343123423213519652061072098870292940616147751861028562735119141117363813667904147904414465414521897587622580003950661062290685999428863565546135207974449105327493138838742997831996090063159191350269995189813229105433532520741942706140901867510070924583399707733450294704583763994617593341419196147208001301868691406772897784625527070345659718672408081544601640419811200627554836142655057690949052829334601237561304754559794939355352598489145133251959823935744696998684409255505002904283215529899672483137075891345915737732245538033144707494900434337462630818093358197548369894585384829418950225034477981675245908906001218131175429978732363977824317631788690374175752046313707349648697496004132316996221044509265268622476040602725473785064934069595530668191265530400636254871814518801957816687695386198349262185137992295704616514909256228597421449212971281158526812083221288145090819420466900263765739648178506072782940679929477505259499902960683169516562720812723162453033135299200193537789694947707955628865438224631855155879067568409315115782570547625488361373920120400442680279656878585576876298561267003622059865671242121931031278355423560170847021070987801751325306028591970588842635872907984970903292393372970209897798276011341081938394849195961647729832676284021590733351466663764965060962785263019815209947669354667494764275409866092969542671101596566087839903285433046438463964242018757023561778843351257423927303621735820440861562761229292376314345470717552767028362065861926959415935490386988841428728071962827932457881885158625150770727833845176984183096337119462482274507510168217975396254239258144317049858197057701520628079082702951164345745632114426681136133697727568795706273627062735596032914258465713775270006222327997022870049165232744878563057101180872401715880610223316808489283639015558637093389712532119196391261635852315280800198383567841141871159984538687197566470766891449702600239616883553637920701306447370780936860554859449492983223759463057035393604940067507459894318216606749820673382844140711031161560260208139060209694454181187294583315525600935491224955015451097182023623281331386286843553489381225255883657267733205826587648195789514623586770393087974810725401357532717905973340351410500231758573213410807169640065571213026445409016627022653711659568812049650022619586467698528934733199283115042793401078703124976179865742359808083874163281506597428231558909220364841145041331785999558748003491322053730036497472583883297597762177297902405300220849631923529038176872199629253164392133978313768913663362065774543675304144709368408179870105487606378654961244178968947699334889517107260387699293320052715563972610155366791499399877175856837368924809426406682403097619046114910611698557237486709828525054042123662472073338815173697285483230488067320925161088356042555568197126753975229766721628917207641607590845674207410532064733676596435919526192766680687344565327103865309659567704750678222845182417794259949740096923249796234969858380629931755736174684602385510427986711352876122326272360082011203294225874773650560987938723908494767691008090819499620582966156715785285674597613969851337589247554802246733239196108767995888116100345844210823948327530873003098806455397783346155748762372269720816394294302437299968709016834937412913441646819822193340972687667545882953800158104162161915378512209064679497082783601698744547757278234905330819127892202461301369685003260143902290608538119534802197797859769173148739882723136635534520034096876898037268476194167207052077269900507309585148599033050162785149699198706350180925463575270869179778442558166725477732317869373181288188759485818436455190741037554164914695914848404919480881350848387575494764278207146817555952417143142879865265210335623494040883506295351425237267341001682778918864031708000758524921124450307351205669064791417713479527263377568259846776862495994003843749439239782925995819965125828135242246528448133514833608366909340580276348403562947684204803897980226610059744830474404685710107597603871857232485722441966793136520303499668672589506976716306651127593011035058358372092707487831867929160630233382300761777339548246920286576730519598423202379711019161002754979636756312938122093052747807050707382030475108440950015999697068915326078003610440476785129210319199095231007576078505982697352819201960964777089072033428789683921953166625921328562782662062636286890559681385047136034137269759035564379518385465896188923551744031639514119652400750929235631398088076407440007077892514393943906595668976510644320111232667451057493400456276254988328507569626856782013580411030791304706478322694208142636612154159583635107105048210729591523396171425745318603341473575819842324626431629817838867713715076488164712007979712398064411561492103695823533416648362413353434712473311193885694543586416654457326880946732332384483050159196413012013895245191533214703543512611399667610681486594601775865318537392362841761391156837138172570628200557465204987315075993241864280852556454140083769465797719134419586229787026134013843655201573810114872464178643191958537295901433326413523491099849461740254297312257735010883694127272443783124624246742204522467952055431107346800183455512779668442842447173707311447578531505046858454223713939594767299334276352226545423120786576804934858877425030788988714492826487968308725842248623398784038988961210822646039148957624047571771404786928658023767313211550752867277224689897914434482150858890709356609640478980037292511538987218708909988824218867903047724309410105834873246332587581633367810342058064629046054442880277556818018182828353276534200359521338242654322253986542911013721758458391869519780207153893373756524510171249306006765972462177033181717876565105929988865397064962363105002530309018815348913387564337568899453696054645040499915550997424729347615141505992751429864376032400682195350013835287627664552949399877623704945266032605593550435533037723423487667072264160186877648536907934688465972896275574795607621544155289263113120238639336011105582143674475152533164314788772288820990995935949732119124555131359777075302428045712900350568701171605050020318081683145783905890008824828196689065912226379367059007554546762565389587879741385546945757545368352888754967734529843575613478815487537623077975664806533507947003086059735385889571556262992406987898088822938284103940058471499846470943107020965763713822438247784282483643948826823109494615733423667636150720700446155764229724441435389837548442950875768762617643856413879934301755461733274482530564208021503879402992678737918959178967488319448400853824032638929695762982843924683946163377924233906403375094755327370019175540679423410735525251050442512123037735926088444827204334763466598735502888896281599439651166642353888421566701487369676540956959949421364390323495698182894166595139341688365990767111745991272006420063843761272184209720003572308115399245050837160704429773390330671860348255068425902102233585306212107266488960685633010256712252192094658544267126798505919215237494696772065143309761088479500798558475871141774237692015889065162582875473218604481292082261543563762360367506512049274145360267400951422602479918528467847886719632980638987831724388019790209355090628355246784079449735881791744188216112080817064106896877431964491461399299204211645038996267573403131722581495187264218155192066297606121941017602727279419355724100138462793988661843175645765238157939787666342869971937843862264646664414854688333266952414253619561271005236719851201987902210180431175555019068385768783672774313035630316413515823260569814343810812137536896546014590767203533981952267178710492376094226709327694798449422673141397642905377359626715954396047366946441639509743475977880512067021051832591150306349881006183890754342496721632812267167128820530212257719405198167343675999177934328979574909541801752687434558221619787515162816106837572347911069007556187627170736766780042211147547500184948864297255686194251984654985775508426409657769709353730537899848044241052754785851288593421237062783911570747546394831666356168623120489917892045826810892534573760162405710363559537866322604295421811391429052982057843140587635039804443577039544551321771123463679383614975419350349664844944486200577827582243644901072046515048215111609836305717284161189690887945935148401399106451619838021230188032366002446504029836255932073038277896006461492322432437423718092229003556664027737592022923847717495721771168798771309859207813486403716542274759467813759086571511889238955393550922230726736368998512330319383945812829153757307884277440252295760207891318135668046014214875751479380494913063429874064124784945131528974913652442372484635634351067130484127747633890016080955604472608872054562718612647343098627566454617401134108690851884875299915088066142735872650112222436348031606659445359510950890275403781377035710837080274711850114538442819065027832763106765827035515952954628784846391738451865499464531577908560101722705568275507872334864156059361281390421043679017134388149128735368051860620832958068021527670274213299379500196918234360374381010967867880775582665749806908342382040352514854014997233752973678926853281029943713727819296493591012637577184475892529876730105503713990874846982758226492074839722832999533923622806600675468601581531202108980246078554962239584067524613099319791077649855456615954346957033220401834570073736759309702680944747775234485189487408066299603950532810874589517481317319382308114883343661500185648275580623415207451396806395514985188951730601903455213063638291384456414442945868854522321632259118380118659573680311254132191125066694182324446335499085930099791905705139179368089465113044313221858543628056095344267751734825504852319757667331621668946831300251291578669293475656760018716691873244278123185542386041922099675993069295157806248957438963319822831774233756104455073938332127695096479779286371430598662569366771389746838954733871875486163287861777582502686581748536305480017775998917192227614790053131152534703803915656466611628083531638788854812759589759176541707104142037223761415691431047182814579697232674279860046028522118029435483849396964808626806053400907273418812087434842870587585661666101142971576197962346243688919086279658513653968802114545527824138883252891326273752455262307657615057516700987692837632000600435274533518948548989831055385257004291379609034491238649448124735541084768506884815236632360606519975692538134624283904203206815825218002278578213662707584175087286107425194491594307357337936425262222679870210324590010599833523162450394949805082218066144170219884813835900035961711232705624247862437007756158242048197533640945978297911361187942080390251599625020364467896572545454514732415025726007405874069693144492601962928409115149557436802279216772830820751838255774832715138045341523370933327596720858126214480940614849878524925400607448250598128698065796207780124775969100731805702969267639632347112918992377314697174409548984304276396842192000421459568440697683513513376976331858273466603959836564736852043257984666114644894713749944889215020580766043822003048302118482051705016224704786299400375351893364220777739309585682347697726015674792303069959657311210393222109942969640204081087814516676523318001764354327990506027905229475990229407080877747841254412885928393751485414286770796968019006499822911046427488251198556540878055517677222575845811079165792587285538859438744947464208653779830064621899970937189848054885379154258089200914845888701358355842098817025421456818704510473176030897318333115572424549341614978772235161028981159656277068220751231977754395183999858744550671604682391755253149448660801887975332370376318326222764614993219100984819059128717027343796082400612922714976466077795694995653253933727178559682391095253723639727438134456301347237673992279700095485887907674095377362346551016448904085616827122735624344583722769982855310431903513715317752464313693067422833688653844546062431601749716489634408244075422465106216128462076563379282246862647935011441869708076578150133209174362083786710787124431761810894353980308711692325778148161616502812786252610398899806960018613217826752511038001431664750828038603039798250789013336600617784745009740161841950509008792821392092586410318190600986051942320424542645934342538031163295062664127829272975789180945693279113332624919155825545564095213823339066980572810677712509263340198598630082810416372431719572745793444274263479290981113886508808272316551084004502363899872446630746967012541694104720221828255396033883132487021105473502444331916353185312698187392186703502224167627639391143505431897072413236809540198404784612105739914933167234331778962695934543639677161351208003642505291699571672947024459237963074065773164504237985017307957203601970651122413262687116310482378115891206821506342520806349354976838626557294630405571643144916764787503340897735216135721181522746715471644484304660665662003203611605693654757082764908228665636056029870605147899309600518664930271845825887118374959525294270130347180680946304364171673200033115231241157041348464148029600189676782181811197716021570900659362346548017020025926726785273347729573079321585864329204288037480876441309905191237674262604874580203778112772217493825016113464170465542821317054159397114189715768364926667234726264666689555660581858792594242334310517218975320134891904161300466303808862698754116542029984980042386524573902863280182535097175731569607251381035427328470425167659799278274151230086559873126427250677158589485475439382919286176068493071911967551540583444176317636101871404448645602276443792569401453447493454440675349290770118451573844870923326173058513039175808352567590282176486505651925018058963904788255834967919767719138569437438460462306214452629313133992955655431533101994570339775567275673291950305784635322084403847958796732085000824386429500916826077965146406291205678725571475670490201955695100661200423905987181118596611967485763764906356887360361987261025904235806488354374774680103455896473848684344360032267360182485775153276692424689107205752951282670202279286617936492074452072497899046170475215147837142176661177546677576251924514570862244932393879365611378709689238158462571762379562249245020083847716327123691479978424362133757800623051937776758989765736117823095864578732444428631297409353914901613584254498330099383575345536734487316438147901951267950187305053599915220714230393835496938119640530945726355711986351955185805474047783556897062997295905379194311726300339719418625519612035860335191936916167649919257066326137758661705506391584006342626425738508667524544300157737466335480298667605172246301833383067918782024136709532331913717916048899951930083046012673266421733833507274025114853188927750217971625302380389247774932908045738734430911527819053108103767410211617318260122533696729124363039260615480657301436286412847345933092283780292092062386136008942301165779540203441498915645811900591548866067791831806531826848097590506894838934889974205950020527738392931820723801575445423379851113883856808256880661688708792661765971113867054813216081319804903294583365932219436541622827212437977317562731527944953602481532158504680205371523003196986488015052219608025462754807453746988141023479587967000096444173976954606103739350604127220044804032491625489224555500892763277025359983209835455207770656426656611712387650634224554962099088404898890308115403403337603117577481613024669580012979416452387849003576054886158492553961088380617159734473399660726385456188870592948716387286619695528993673119290596640137796949209457854750535582575925111066826070832441427078878131717771665408865808057491530601432620773857145604944451090923874268185392898452722800348931814535835712977284513725650132892001886913384153830649101128227241003776697334853812017384101048654404516106275331843145690955576278334685423555208102393708194494739162603018370212712247854713382156688983746678707871411738658516152607186814631978525049412870628322846706847671205738136597917768452191408161498420966163477814015492158454700041784965218621243951225020873322813977470343935617283344784592974843556681709505603504767963190586021407751976285680068313358575846092432392010250122981650116528340300600182681893364031692555840240233019990108089895014684523648942364439148926250983567599258162176319903698700410592708909429404983866772842336070811994103484793551570995793078843930329407044635300666529141059519151232124137603759456219174245292327423328023536042439663088358064818129782640772366185886211608656045872473863844555709270698885097246537146140373525452237345521690333205387979310111466367062894238518212015681814690157317852313272629633728489514711323040924318566552834678513907317850021988077986084738749524237142360765521052230287098364076633550242031537079630618324865058852013098026270157264634434687912646842783006626508858028283810923663123447830711665976165333831383060497901095676883366261021032682602747521967319554359894376377293636447120807081654770624631703439705489117921443374449242576890374196546463215448238268058832674315050291216620891642639614417695400429395721289036951241531459582686270407082611132484759009600563754274976308187516918957259343196413926623940112657775631798213037978186419581545545846477264745851997817200049580120815072176823486149648770630806095713103777706340724562575271450070314607389696914469589833430345046345229078507920151156717828755386172114117114257918407494676646490941631012291802897132577440430751436167425435601140963241971241103723734381391724027493662204403958568532893608161101353542941886611507905931406936632826302906980946897450695607486387095968944734550733553988798811779296283573142400194720279018443100464541614652743289306499357803410095342947833700794810113351404140121385206999383619097852680086854393539172915933866904163489974984852309510456477986613507418745681243608134462523568783965225748606928887498625354597058615720226351412858728112589834510296722103070564483549382938486499387374991512327443956232418516416127183880165557763473761029927497875338492510122971611971397063797315501419776390943834268544468346573985540924858252447195879550020262408153000898419317525134893325700821552829720585957599533137180346181616177636509939287297813500503662543157172790867535551400905395885835295924115911693533846964081907978391116151905053179825061589712520346248374500874624269093181420015329335740182950465171554196102718690013855775443412809857317669464385403041166846619820697086916431977281245565099907449196080648476846574059991318714708238090442221708080012564262895212360846698090771646658565273086057140198938018484528637378501544991054022191964073632610418024259501659833219587982013869289630431707609598000024601452858457155511218565855049453921377293759069448246913902637000863062562656433123426090116312139898134013508121432588307652398730257120415658901568080683944896262343634931103054631147367481537567803320858023968392110200232490289724362438220454662826892183122924607444617532182579156661989649387024198839633190023146499470178958086293999442287449120310900644403916577205225515035429752699400281493191364401853612848848566325197187740631152255516944874978421871433345776130862414059025500719984136341856450226030885935369096572157683118867805050090371228392271129575668681280500825473285444320961649326826154278022812377180480083827725726480060422452131809627450488918357214078850888182543813103500252893005660651756327237935453942621761192614008060598075594700382042969110480098004638879372573522922617594600552352864481391678444371385735109228628263225855974991261220467092938973853178332342746487112530402460850071158573676714873289654586321631766639942581444553158420146126663691901782459307240605710939829352456952448677121588289674690176108403872420892591907473342247489175877117121695050709637257897497224856242640127976648020267587350171533678186002343891299370806798786383465255459621762156676401981319164689786582301015955602161118564239536400852222571595532878974065811964050539987802595695594235444597203567267366233694003187761454374844095818538881492313515762524748230317288038916985336707652835640658842409288491489018721984804976017695386503883973729821877907696645081292340264407940165634065019973154408625947541288751383070493753260271105537213042057593453428413000386416854733711520596968691283579847783410935934374095102309096015464990590100195817055974675748847534599508425806569680018189987109112205430113625518216585675962980050674009454898583272768319064441693647307934824457972755998578716247061491371023109749107198033604083457952185068021685131303029940159599375579674768650810897371210281090073987757486377449713728875794413807744075753308101111976576334255563406128197965490287380613437917738920676323426489493839490102588770207335804761029573878807191198452303094992808229866123499134183883205080305397528477913393730468620731324847259984179494166458033933723151826266217782691016453141334574704383337918645282270548082350609862798217156478325515337621511878938411010714926006869362630925464539905457362703833235949283784699466020709462824637637038941499182264201317229370808102165813668730184246219285516947212446072408919834177801433137151680322889836120629191512554896671271734862197698830677901833947061812164438870309118967787369325882967476511001800970378147876590660975654739836132976666382121416545587994873543673717100341914320013919775394421977340722866366329519873603295795067955085338202812870398512895516125022987470456890801653954624250459627696647054850844833360432208104990279537052282667505689469245829487194242984379684556666596475777304593932016010375384272195479094187415496054916713950002776814825456832907966889726570251523717984051464516480776360758016063851905642408675769562538242641175372638623958088651697138484053852015217599014267925947934884753537822649152798391843212670809448578988557705174183469208861643397341990672483721150584570223275962609963522420017755649275797264614522636502241734574379976367773760031638271592908094735780022394292919291174105668066336667918663668474183819778366986550558937921984710630769709384150708598374316632508329995695876780441442195552359447079973010641039722837116278560253206416585562859407953378463157596083353437485128891078082695840375540081407953267264769659258883522830333106843926401534944268860207287249443429779594383314912882304689337156459422830028734697888287923182027701946934602354081001680307396049002783821577466114416373299246460086214647771873480844616240196022656221727775923901040785515626376391260799489733129788477929366651837002929059563384474908379908288132913553931093245417124017805353153613149440380202539533547726244391116145312540996607509422993697654951179731857999416773913304403829033783595776503158804615431356439500832717741723003651747956858851532850434617038020165631585985376679057146436778544673991343112648858820383787481079472191463797991641971115595544897985922203040901402950301478474524823198875237791660872169088964041335280094558030853316615909344411787280826186797635111617021209741668640526814586408001409806268335974779117313452570816350600008057510098406230974223487437602912925613624377757851022706958317618384510572617458326946496461385518556017390201544218954817447751085997040418323124984894481164591086268369051543249026028253197014080625709161790448109614248502354944901546572775736195579708475791257233904842862429464496223022276711327014862250441501559722972867638987710485615941348740386862860461204955250902276360782262113201731029791657257573092425346734946440489921213148756391973838203944103183928136798383492883359335177494803711141064527878755285152331998843122585258911715053234104523026460406574186966864765996026825521097286113894432953045930631172166454562764478860155859844171379649035948194680854680474937373893983740267360454385828267716846114272047432572953807025288562048899905218867741588803304524247312004482378620498404554097585683357816513942786974818415930221251961776879137545509466198780275075517257713627858106971951603265951543927354028178794931263335460751549171879388561885962209572000152104459113968780633887350868153500613810741604432817116844544155578393430424905796969964655446742304450657331220555256074632517923348168834676592337680899062842033250023640735876249629762303756039980955960232850276930955519310164281238710317857383682607726448335545909683700134440246380638251832152244840171975228525805385530209951689299700426442934920328755193056873135805582046314634194236616796254460951471259462049204547485083314996395814077214509975325203305877457026617822183110055816804728808116853819056973283656578561463113573939504711320882749481314018210227548046727698740508640606085765674616687188945889688194423500611023419199701828080738984309587606307541115053741196095003853112219117548414721404249238199046969914080184174570371478903708679034658215235639795519886893249378406385740990596914060152861583299593432407626834991555389305283396213840154553232067844390515397912733613222261534650305851773112586773083876489830277803355970950520876334881817109771288191766711112423031298429682246419560480989428540833648962166888409971096354110674727071438072483021101102034634570449788830856300656328501316237310509554192026303761026436138092054615503435835885818853864753490890302220832576411612691552809737721599865230284378480759863583438776860497686766233780267876939869337159224655344992645768166752857419711858739710361447200154362104761987529392531718456107256267650427694335709748963501062147432647129148803436990544928494675495535759421608748388626604894995432267074758793762739678580761889180321101070202584051570284793817167088539234008502860492512192528463693481828828097063663690871177728030630196578001205102693841316892411846573184675751580913486696102573971800247252465411447867153403473985997502430791786371510110542698707268129774901204419478137267339453324605144714420807898407219319399502381416755255634739508592343314248078814634767188407615506379778940784347453890556427176729546081787915911365442105189683782569640861791358223372754365768515664984596187019970197364759983145210286932882624295233965303107428477577770299748283688527596622641974129160166578650929902915427587855480183580172493706667524436976896034382859948739009946429782341153225578998954880975163133820408464615352932869191438923172369299643663744332448008153178172214576041733955688028838433980629097784374126502134964146404813897443225886190229164684899603962723134786044464363463662626712606642983187310802934382076843621622668968248345408587803362916107489521907613766920849142935856087125912604563044759862109935713660932268278197499056415918588410243468293989463581596638800067710639877937221023202766888314693505137649034663732419079365012168806586536387930044464685990543298467345201673939104170768265199930389573950191118736117748289738173623745565944647040768578015527345848272369560575868199443629371607105643971420539394992145288563809750890483879545925495063142427510429382891646630396089556701797753902656586817033610169351223342560610152981238652209516626168395950089203650908972788450567908583860498167769709569247536336402965392782609856764695406237512728458330919749460568777465249488912118097508018303213738991993704921330378460992442916299904915195366129461244413930859322203776829331210725775952789069470786060973569843357583148228279721808324288468795200008684505277348316181298213645352472025055956980823185372671790642429429579834747634719799410201095104443373334083836205112938913273496456657537482809272215736340122966878641045465960693906403524248034335705303361418469633750737120882081157324428203666434049655122654996840121932329246953395693353199946111739255850918258788868400583387160348539175029752271394674135431342298569422803311197170709917595565102549224142894370100315972916072224417467220355073266838427029725997042534527611770551173952302069788188664507145995114587522500860266290470104801323416338577066715772515010005563657102162621714217718598739788616482642775069177624513427553090804177732701367564768188868033373735068878541558761439386472907517553165002869911718337720318713405823938274639252466737133723497430778928678524405000784641174596729979491889060891131323007019950937293652838939083942868916805622412452047390152044801157357514381484399393384200393486167794015893082330942565056198138699172413719853251043403120408685033744546106310958141437841900378420325570881126868970018798796564508318452163848858677373044125482796223584914421661620153224146707883110966545734124707027692413024532465616016022265874969535537727662452882973687565539825084922802221591625203971137780762096917318314438579230291822446828217961608683884562865064872600541306267318620260064552562505657152613152082224148465878547808216861284002147472881732191975236851607272849308058833574768798091233976527614269297119696692705789753405180360593657732851425735318881181706417072313609609366552674163633019986239792850343660451548261272172713559435154576535977082314004662656208301087266153212853939341032132512557605086417721530618497764641696434631476830224786355439614955942342252317294458005195120481228866825586868523644899071077491028310146029366378339602069885821576379760667965189259501172272512008612643708189228865455765172057537880681600608528509302518030003130047040762282452143400209371461897189763704524869774973111169297126326580095702218196674681218293316576748230485232876093703250595959216658193348591383133754407567981127224831511670948508119299558033944972024256480611696561239999875222335579970578318438843474945716829599712786532983949517621912608800684739376870031021804833423757050957980296997165482552054366360618670734714257530505029905399640788682933771041149284356090015785902476895691635302615078333605349488151068635559853002028195760987517083724916195733978725869143994382420214629332266132728400996364914488788514429132228764063580439405388481398179684612750504713227137376864682769082770654594013197678390755793955606727936528157864499556473905352721824942875548564960873087683587572828050604396548955253912412420886006853708265322046786380176139097326203984005725061044348194905640628767160240528203778960853770444441972294958077092148355816607248879273042582888414648581810308825199448942916944163819252399276911102683916677535795994340567286441922693087144225191931628550448167340067914591555097573561906483473360134628358785296321609494339821779042781258493773219071018267328029318186919918125942062700476004438876117552843329789507461768410901003457877671627864769587864762357555631373245201438855603912674758845016622039423293373353266638658715262879455481865220996873589035942655895751376507260215765535480084976577214843652548757954881264102027234416974566649152531356666740363519874318121238530955735732411105525799138816951080426894327109750900854856190237357509599487944596218418507425867300916564261497280668597886688093281659538548652562450763446289974201263001559380601040470041608960229815674408583608096003940548120445687754070153780839423985587882639900882740824539367856468704752921919918339909734162900656537748981437922171602080457737006046552469354624527536210091517753084398559551305064578829081739717296128220399618758252758535882969734659471003008500168909840707486450617306384328355518274489745679866796417520886665174355307272929733562821063275854093171092380121601839147403752850002086170232431703500059306977967911040402528603374489186077910198130774323280033621073451514026118992755650688966822495886816866856262647673674501840752523361603478802974599814930803932425947188718506044772739623026108773241264822909080868892853222939918593022913655473280022884674979337236695353584930600429338164314333116932295774926611450409211231671305967078421118984269893355455198122581618639091051666184792384966057160623069975638771986828146514413587874133830450628704429687720862842119897833465339599932970059059396982465617758731755255982011429068033808595536138126316439533522010164782250990474583376857226209223756408990080537079414219102949408903943814649130343398146453504379579314515897369806529287544650414331255128522611113080302413434623639611532874008287394931577589203462763658118407770535565856013308351545200896317474910350309131990347616955933476370281661899869898329198334829546587114251521792177797584428336398303183592607330853195319448644601956397167219900087793029614147934073493541520642770534656886263646078771717061579285169838654399377810700165486581719400975144647604751010171373227155713743814778013474250602685252407767550988273079535923940125479020692022589579189142147250744802745264665591721866116236143529074020214797001628214549194843239377301895444834736543769145643613347233201558308655496834064884127100365687409951538762345242808757660965772126094627059414445636577216114852291820781368547178079251193682326964139348609902627184746215999163315437047785190991451566240748342710928980096221071554374836643451397896798413679829153159954823061589702760813253667753079785639377096935578933141292419575693537977042219184011578528342448923478302898875011463121001160329854010050663099735208092730255547391816543041417497837245466685366912436607619219548524709686288718395553906727998770204103703668941211697129635369748828027779844555606927732207345401727514857889395520022565237585398056072914962882516193078093401548996860877968788071616728576653469542581192964757029962445793557104683765243897293907788881873395906983344395569497511969162449253594340940734894454437687876160306942702003083513894627983936682170846021099316759610245384567673349440007787445629168880928353979261678559838678273588932007789116962184731654710678697991878213740510467205946128032048329504514431593199552738373194061554337727868254670413389498187092956897981529859582485789342974123412444406783516501423031435738064398214158357230526764705569247333965760264586759290749816820580082079875715920154587877634761981946770979899967358910055160381427797178477818635298430845595824186858175082291072897357028530050531327942093716007963938094845555597976869233630583001032985366003572066462610953989131230979054929508308369666681114121875526485531678520038222097804610898463083713072408016163514896159231953240884443808159749848535862293209899260784331762729323482616551801996065980021468779110543875047813345232954394730424262566414847740077661693803100860911693982864797881354074682680336080329407756542020779011668750252849430287613522829434428584987533441310596406400619565810647178410274151651779809609637100827608811000566011382719349379301612006337140805822492590044614053106018826415767571806938488733424413619001637380998406519166405142977139595024151734226896246866713273270469455789739264311889365798200243961603244555012672933997465355691313082963846043529860571726786544513278440428445727223425692985242688918170269675450710443968243982151332233408041294238418467938715751192365962945623980216248826548867715225272955507111472095504869427608938901157106213299649580999251279866577195233798353597946685793344052990152016632760663864778673172409551451833127508456365211640535876352829631053175154183795029804522230306052635270413670311358027797339556613109193258616666454634626029383911100607008234965042799944916814991488090742832747785449461871466581857114351934617382618840913832551118249746166294969884169447738660211328548852647531698641422861704415524022260374253445585083083555379756890891622017644875928351168120969707255962004766344983884664055667989532472632638183402680264579742187920787971949059184971561667489927309634802583230686577546934092211579229556590431665883651880640610621733739114301788312867681294986232561685641719984840219185644377833121407881606507021839487778792651939661989423514364765053247732033720102064178095407924523693087726303197143684269437024432278684816311093210050342027056913667723762942968177794584788322810270918084460326374182712796988049615222576545551591367898289493106319748083203160829535215203201701805828897833261218390469419286794496997135774195530830066699373699636466585980606471116895689835679851522173876676644907629703535844275772986906164121234538548655563445228428286861019682878723914593449210955342537948595754896054671837621323840843777105887283006331441477756042025737746188965262909239903060056383155732491150780785347759849245357042900534865587329432230800320151817073180457831362684981327054890088947090590157319666610773290446444625588786065369269534363579038090832054155061228890369832172254727781188207451305152961723498795293977586011393705008815580014200083021987442105330078235886080326514271594565280119016147351478523248587134168680983806386807060237993624393556133273991424459492207904281831080864694077357411934625223904960901365551489895237072460319575397294513873810407036985265924578495580284814174161011669639831330012652365833340811602726157480776428902730206538804934252255714150228990001281857918056370310077852095215224809123181359866780243822381383881658792229098658931543951908535365582985226060069921152358819213889320001823981804809032384388734204043330234717847746455345643732509760763088566273374207413845657736255848868911860483990945136611643276673629333220431599465881074966513853537159746010629319826352961623198668089456738426803732752172813971415593285492569413829672840417161033741078831255583381899699487620816610985843457948590132177557196721126709194204945888605965383940375317339234671850897895279547114022193462156837602774775634410659218167243963466017488259340269208257876418764998767825932697816148528716932875383469293440472467750442739221903339440962751041111030124469768242010269831251946933058180522813287397220997846011230901602448342630020796062504521745162469957786868213351590859204596936558777859939799896394096795773901057994227341472083741477243057986861556955134840931770707743640369937127206537523110729324678761713051289585578390977446098885963379082694995683891384193886205695782467428552087059448276940216602742479924309449885852404855866964582768437760437713623917114107625916534039153013495165688021925888708946456360900546149304395692555285623730842708643708287584495583196771283996947081178825984109869097973928996725057460255224414686826724374765313773037675976952858161833369610543259941611423073759498274602920712967137936399834566615736296664343293017365048606568417916329803358891648596148867738013450337222756673702032481434810365057174419731276488919863224116708443876247720704074106122247141770815131190693527606445975626928287821177620283361637238315238323525287150873803403575740285308187399260555454747299767670995173912423919231238298294591352902115337939971666286045057705947545748688590774819121713090563842008681243698022089411559947222049400105338917774096143914796388678282604627800131280872617254440987130321516297204835878117747890743566266852224538476574908669879161082805439928650085038237290617209199345499057175982467887693248818445565048105222318606426108964153597372675518877665044086035187546149507175072557035592559885251486482606368246861289732316209174629335859411766588973578084185336628449162706702567589123428546575897532914700489004309738575474584760661939201749142366843815533438277009795795984344192653358313711460379062458931893930115612550879369716928251674032696611559942696609916397908381795130570831163694637037492479350530730009746513797762202153403160809104749906193650544825252011732390006790136167538487476146663277113830947852346527704952261532699952824929599106090379943218310249080747759766755649190099181310994697148827312383649195253923536792587396662662906235706884440165116942909750390373227030395375945247935666943879989268797038837657702088147131423479068608258658698427246117356991854329667093755709309430204438286483709324779024500844041367757484549475417237439848640350197729710580022051971027205066760932163254296061755061803381946914969778921985921403367503328909433266809065384678648969378043079622728922979107031401042717249723540058093493832416262718633071553294028728783916003994423088575208365292713103686181751356855678277648821217056611386904232896492541247065909415680259994106945039583029253911632558311533880230007511202817259382345925753734302315324177433544682524421846735574462098492310607662182262652438220573266135579807104693960788503784926820705871674507975111945209240289119462643865827168548945614423062764411478223280296487331950238797014565594952107683754628357703224987020968208278520577463576985722275912805426439029223605778112431177872900586480413274567839310082379834559905666875306920358908592175462578117753798265941315428112247986498598483879305624533448733326899350907577232130400373531194804912962317962904040055167584478233678553990365315095212528893801654670983706458967943537470644475601892467559097237885163011261128629560065259285419110207067985461989777410926960616378457772672500625127322429380900907787784682607896071871328602090596587119481779467267736167380337315315293402788874408195075820900867720295286516176663399025810971960192956046341671487445255184272045371537338031716479535364378151025727676239832915775611111247679776566134715962647413799310356019628517690979402874428800193373401434553350836113789969861774527574415837428098960843629639255351438710379585257537445594555086557687241657937131101995450200341128649483024209673762695573767795165301312265657508533401802132796189411091042148556059471538961696736014599117009563698404714219437946665816014683609141039347311119096368176786286702890843346247417976014952559760579093934345278453563013028956130381447686175431419829932584593175123592308238599078647969594515545824049592620171393339759817954440094990511501332600456858535752250552920607471800127874447776282759426825272012964393051354761138031220424822704786331208997458865127399344189426283235093729249019284254458806135540100488657841103823691945485346361547541709564854085045099038428591661370323789997377087086062928317207771634754637798709069942790234503595932881415600841264849906590830238058637158411809608819657393521087265917516306068562399646210252418698384122088657369915661227097335601149951998166534212199220600549801026779875912023193635333028642710784984576070640066960334905557964063787700899443409162444965561746517762452473857176091514560820169886555484140946059999488081651489569127950623291312173372509949096935770838023912943068471471268366166189875996393930246318226305417865998538505392731669047651166954775942906794297489977966609750627120386293112043338483094816391712817554326024778392829318932501489684615639112152123754691451626308127966311344376996601925248108067843073842089278299966046268914552561445951783114028254961903577572989566875365536624407315014781330817239392620558221382925111560194080613347443364378678374866444181667263457701900063496790258273753055564921406163937834825629436378782373932889221745337607575499709479566587380558424099850834285108468205256541312721548411317217651184766788669865091874013885354417367314066734105957250130488984633319880094922111623479236302602685176197989969588663256567806171613032777722691303935867570391924340788012216333572087824816458854121816604105218188695622239568505060200475505126636320551912128421802795030435215277648482174383577552525036628959043833249496121711305134280156465552083232364982565729483804380781821314764978646657034888774912433475806138227499684719740829643221414814722974944470906221540212219262812749087995889486891952848853139803069216321032251648966876563878130264954970245156694500585179757445047402540893883728945995781667372596381013908311839636947545493730064964771529876902885012955279226003169913140336941877391380202097842860071807004266827514734257575387398067163586157456013596292766069364168533750753107025112608822071611020428635603984645827812972513675563077117839560490189341407358158019354129208325822206698188752039293777103628218258282187104894316068455024875002543808831890367933147012508433633113858762916331038910878421218252679698170537850540255539014775843430121124797997205905314702740261833336864529778059584599641097402471981582069021399545042428499555021464479973477671744990847468908017975114021209449016491568473376843894126296172095875115634258531204205305705272592446841885257857863076540494267093035120436777665216940725999570940534282409365986889603264279243576309952234080086734357771554025370527868567894345317555861961704323741026701533943855639414334654563076607264456275589080271211646760698038625768698958254170071847871512617947865580308646459293717084432443969355265712900172297528400292200483040947349587574571078468139390994631004977324659160053947865917599801450708550684224021015646711769509245427516392539767377908681310125508956192566325848306703595575080074362186889781014414230354907008166774920694133496105240749280728498507369502003811299305937087945400427008004563924451965250155985950187535008773962853265652364394878063944657570646821027789925011147560231016345424052466543105683635793526760249109065348099471836968708461887370407863648718408738883849179361396537162774452228341118574510739927555024289542034099374598425043217057879362196829256383359806981094269388648041998240436894861805548389579965058410975025576610929523515768856973289679568880260084215859200035102892950481393848083320430013712129263192353372801246750870707171525138020481989230164499006663484041731113192065926320410163807676092038172102982539537908799933383501290670736278834178368559204975597027749866388434433300559114000464161902651915471022728766168957384458392508857181232781788755298217782089154444465909432764684645462608674564221770264877493573098140226605582618286664938332554669282989752479176455143930548944670128690141640625970900104597655261321242830670881840433113278519106464637872681314292243475341085392964831759710541080103016363617068445268066384928163670597786438429937610912146764591190048582278354488683304355219472681390349131894694611782848651712728725527690370341938330955659895757639141342724384797259633877942764356469500322693402850130604791769263846228813689272332388109765367065501051954622073787795472635859609548201241899042335960350218520278445611894377347483143823473806775580030397685140318057519882334487322997272852739426407798355092379135130331787844854167335616712313425385833473987906809914298681930233557276529338614777748141373053474311930742088758263663601946367283071262839261161599732381789119544639847448790809427657975866007459481093439971539367223054487714050937288289864198358257335763769640581699018581336142008175654956673179461961049035326977390947868259573341194260627515465730935731169126110001151095824350131772138918854044439649701204380545849374352641896819189105540224145946101746461145475648486455936539973020642271555006637913236670507200338451548177502114709437165116694985123825419708052427828381807913382283660993590517833022501953601272384315355145828181097049984079311523647466203116644336797491448278333477364851843545410294145557520033728472972536172312425346477107129149417478525675049467882289975372484635612764003914476081319671127784154473569054802005348477176295210911888870048006702312266781034971623998350810785908295857903069155052055695951575782539793079383576073990194259421760719175722557529286065116261342721912377142558748390990761533207848800358957707418990328318515203635041181321873210596726179579307863429810303345343338695572368530049569982964067486225597176344859448705925908456587894452957062831719516232013288263303645543150018555943544136785077242301720463246485228654593564289238785057255041301298436582471997103450755208524756568129379854863533435021448092430534897045373879172664445812789460954831515341205962313615699027348221433285780058303076393680645562990584267349258466687846340160477244083300945068468483697676564160423227399624026476873353895462687735860599537359613428600742144318352921900157374302391081425639744199905738100044419083905282645045282500436087603720827917670783660693537124175850500049219029844243700358649008464719013159502112541397727710767548473282953344931569113357043537539166699424648526077527384863444054884868140631534065881718290290405562381801606821158585326745047420184491767620405668268287303640866447787797322070172228815894226824772476557861501240833404405189936752104961957610716071504047281306974113081397611844724005698366214498836997795069590579063425647884452522181910156261384766283164485180539173845017931984354526538769472700664991191961203529201427234282624288035704709547762057059230730384936982466208393632496529187857320330084885236914733548612748323221453940470274637736720022517670058533983067159042276072992201965738037473581592484276092514078149558382307130687794149351313406666040539357234076711458778144727879370747215926510406883547777431409961839131113451795694199741904658267989980090451413532794274342132148796353231364125773770201587546007442582606109664922648997489243068164507187440765545924044882539776695934605922091217383378744467709248181000820996783614130031948164351443633730806961601924443290830360291804320177005008140427064590477450010127732458036500845246810684660691658261523314597264227811373508310815450190133485207118545771705406417334211013709693477635967814729676172864822411478958022034200489354242601539901995625427152739029159419330512097734381676303533882644390668458543064882368457873948567006279736801243418237032097988306059995654393107762308448147842371485414164834990086792174578670384665153753035272666226188456474194000172405363472301937917224947145700286041068716752301816371066698549462261756480819177494619872863629864843739038121318232575617864280165569703245797953265743416181351453178755129648499885318035681113513767313009905479257234638643716436401689729149173601708245313372272505404733053017689259932949395334210551384714611412345012919323720631386504764432016750589078323703577747408373648041123195302960352703627595322922670444906334702931408937861219810569618304744000079243455125799297867174062573974139540376354754787358846877580213806482396953788402574120156757852751245024067188103706081878763420859126466573235118671418340307331666975683175471923000037184161292510167793791143000784742447775735598259072435348021489579322835282635759736265843961424559888835313898666620085516268917265409808852281773818059370117044832771979818786157217697029145238940190029904252991991196952458942703496547169042811700570440306869841157359209485433103033290959079621806811632373205955178091545847978973515399923372835636951449543821157367711444893592905849986575413064020760039196478051543305723278155175259951809854862612933815341991754800483465877310691506037642263578975114381932111261868366655555095631207719493613720093759709221593635473597454575355630476209684841119461020819733765000426628491585676361474285446589852499046272352986637291455982490823012091985323884128538033846816348343489610548508570378760321351445281757439406473710309873599674980810902825069685735625293049688615379758173996434118587076806290270165958175525710806061918296322706963496840015624470042692205982007791599299006534549335391321991647270729533987435173620952765000685560986270656670377221756516819311157596410693409724185499767303652828074941325338130221963821018131331097210513804977714422585166362973652768312971636766088049793885250113838957843535150269560099803561427870586483596857095035425698317479116779885466489507299959990802680157651924114667583186597339598923019705615148397921579683203659572424021545648507483683856227231914820110300393279290201552784924585361033247281502592249807855186252107146974782792635604635457921798311212137688424089734054712092444501058117548092560332890339643898234524696344690209141292191185902156374206721300400285321648861686274924316161888589540625784175632365668066316519027598632643189497404321290353020589780850221282340371362856636647153804907551326657112463203517580783230727887961417787534567852579553086934583594463138315259920001408427267427078394805698835997609197002629607397800115507880098002759655107893173177540957857202101434816152448825624415259116609523675071410327847386822942767143330444231397438741998858775969694912045964185844393630101843703647816525875284301578034194623185647833854040467029562545211543208947740542683112200993915665261245083192981194179499858423433862707473601344333441379895243373465036091588090404598461211224287557724600211801474893555811700984158902890373761545942636237667655256065561145391760803165670120995524896909026615807921774237719938204224457692142344269468842474637422572579242375846153929390096008671574352816498276441570314737241301706159198956159747730208595672320238989585676370240017522277627399256170233757175349523269650929994988166413149906834829540822734175741129102218929007398979061618416305135924182145301552507043879880821811360483982380597036217473181157392494657032806898669265829148103429357843514801594976192932952601423388796255205706500159234092390988978702847753326841608168248060066679127414186414598478118109889694753504134948682806909538105969891274804711008725394695185533488655461675251609360283010668512521025754407994650897006518810009000669399954729128739113114697548139071168122795563241658992892045666676374189983502902099124452509391378073154865013240760504122199771499785847560306738426885567518632893738852605877879362387516457199750757102080735782492208976100052259653581485867399235796300658702286804169721288060097089934593343630854770915138721976695282815665643535564945296188750550721765750326986042437894629046335086542090377683799402326994602062544908529252933949675321376565088440878793636175562221214247205146070020378099187027159331013100774250809027839829803458497748570490175077960058316203002076493594685570990959012152344527218821619680859211676143159799487135161536844847317295982220697402668737042530033768077693568394495826146671227358537083753531501799640012725214229721468728944311592995377433956229117803790405743580873174048720256123847626343335032245705595450848120282636927081956982225988905332628086029313033326668497507855535561081469767941070372742912335649574451006462490540663436292167382486596250255315393159863007769409380307092657865007230071416197586392533238499265344581372716841731700017771730740103513630717827344678522779750031022104949115781723509709497119698066772718222186980218562317660132593916311503833988462148314701277919439216285078479373456905223379164344042787412935621991211290445612881890024408404544242062808596000597168708649234879708162397844416223528411904533299749855956679721842388112807351692545747032740223647244278028276771343883465593025045961866645160770089340042933567431654720293512106028771194944992420777761192038966128242016928665745366550927765936379319555184057754301890908615408697625587607822135895524912275469980327444946948535501137703710714281232584372695315336029833630961176116886206408864645925486025482859374220753244827952809217771442003307520263178901531625193367340024623704896272140322386741461048087659540246856097956688906784256721039519058363243965815751768271937592542311105517526851067989931911266392866253026941552398623436825629464898102428365804404831731718487915348743007306268020229957138075142449961215530805639508275064073416621327962533731822788754133978022370174428027725731316342415939666768646237005924563404808215310898734171949729336301220331719166150254185596432079353274215787763746014885340279887787526688995509386060835947998379379668607692129827877961528113110407804895987521313348587354286221521523419704996954192451950718674922963168100012946673096863672236196753386168958867643167155758176627105014157201945576739221323230686307327891639826544786977298240438368690889885780780254902199221014740670680462443486293981289123776599265155790360605674559909800188697618521090472045618692638158178224709918043140753020219485795113901042969884167543390845322527073687567995525466549959066202003745633815650689932413086102742715134565681767496938610128682631198295156958521723028991942884567351658598950579086521102588789769276554839822413774191509823462474821396368956285404982442388168924253974878936260429457548232392067925711922148630115101832303384973717648797757135413242933897586815330554915775948229989546731666492959086758436017210388075230981967634791694302653295761189614184645817643961529905423362329585039342573993114088297282290540549867940809257706439622529347253715000666194047745065001089299248782355967537433215843276823098522275784426743216675425025249047525539549218657856352118137511448704860347184218515384369094207954049449284450805745253150142582016067112360734710648859986463687484599886737031508777646303274016876313949477907578093132219955009991080399342605542216369903585333526168948983155837670471481397166152949343667528451836604001981667588320568532880442510213572281843875064006004412963672030673956737063129588592356549959952662570614335420890178623496860745851130124726916163822732144797415918324582086284679383657844106590910533793224515103124532607966426580900800381465599821861320129172711508841740982338334532620041324791998165369869343845684672638796414379824065765242916920245988951967010301769813582595445196889370283392283357775614112361171699453045242891536441127089599564288137061201550845570235290253824076312559389878880495093843668242236486154784348670245239136390925429643659667303788223570600028391506417750395687599472906570525375288252802933853407510575675501464115296130658695602060437164811737107069727723550709230350429772651052027432975673162405982962520283867914679741005172010405429342432580683983584577607096287755811421345066184475089457099733854449589039390192640745184037217291314653462693176193491880571395244589744310492351592505823087949122225371976231069153775931435203408282642392679462685774758881817912469927529549299388474324162454660092784166793497022036152281125372344846433379425890304971682869988657824383407795179179443921993398495418242536738498672991634554411616024245809308341212463926808465015557273929125611486589106140186126317320390703044845393011010563264516117739667864134452441139556886357113010156220861004422421998939498596440941917519959590917819804599121508281057551662214564741945878048702139016374718926087263538610908180729778035841242305882067169560852014141331993178216680877336518999491970675392021351093021160557623851913351371254741279684570703067322943008474990128918782449598996822957709885817721246714064621027899508344454337391541618265149483456376481672270127021096985559394292505176558808729881222691662744035195987627528365049124285801159898008502184587003644903074926994791958069452187941371053279044527973139754476242591123086668908721915940771166759616249033541831926627613257812921921344107040556016711147399410803643894065026797901563431640287136021529377184099347010603979237723995680965897058476052299972811436073983798339813975009541766618184012751615151426234148978030293287451994864374868317634102361657354143049456361981292051250515062142662065642143641400646176745437111928144243304908381364685659670307694714112521706488265854226714199499680999497609767399081850719621393300763894685248453914127009630009820806517491216670924886029814339121195840291752035839582341860424829319255682389941973417396430509695102849476290291669892805666752076706855216433275802686775819912929619320404965280875901609638287406321525499534991558466980057426679792097646003242756504028041536098198917841127089191982445811832446319073273968698431925018378036606365268762036414289970895250255617807236803107538270817972631654150022364160847189820762236477615525507701247378749636742599754421751001189941192988074633759291210146908966625328440475827081000398635473436621681536868827540644534404267884516031201296081651397919860328186208841029518862191258238320626368877181528159680059764172832284553689904766999704064191313238300592524379443651540852214272262839426850044143133023353957018848776243488332861281956976477192081046816477007248744034676580417120816684692267641774399756273984531413232713057532683522654237986666104155670627929745947158471579506030948035308787188726118539639477147638760137685952631331011506207922234112117346750330418989059462568688697713939072299596487633378573697457279215733905534823283512773967130052737256499925713072122532260140070388947294530297489136395623422335272902778522602141957216472468896954430338807948363894140131111418288326433801953089699204760225644254104733542352153409200095626877351621181397971651238378643601486126283353200857234117479745801189325427978953214159566773582650532861069037457355648282578819175339695491526543283465549193731495998651941599089280117393393651101872362631267117758711532743600076034829499685700140920594403641017285490116097894572257163264858667562144161425358300396178223428299712453453580870070371753747705343027502039124505063837020291074967463844763179757769587516482690871943910685487922298639509942578358646637250931413415087398665367022787467585986667822569649714648899968669340308021082227006610176301025271566593114697224939722920593391720300358713874457297412326326223112721757006026407718186338491251374920316913934439873398921655638624955569177055314123452123968861120483842418407511692083062163638554041170689101767453111545013614763282158274328513966157525181197371806984221477580101269558749581432546210347015214509235977917430805304861704924912518324828589021761999596138854985813271717367120640527629139486932745071603894597575404212161575698135328803166508651692921419027504290749776446623510415929944963721419628501362523105419396434638249279631755075108335155046598355467668005157478496591261911121580046626816606925525105973982146101694278005527329197206644906280000511665079029622634019213344842202555086400387850658883987311524015632633661884303649753028329590389384456039851956793683149633067421746250330183017851694243000216064672627856741338618853247194657992445395597337960922743926000097654231992920236117318774264500247193684071615932483822792552697833652479903756187961991495409548389848061564395555475151960211758950158634990563804743433966543032661646008764582648162085887548847638629895137196953318289910009982807238312375190311136626716632726186336864051321865912436489707688167275483430618348532883710308127926833942139767035109894485509296895160771884722981264404960514879351533621543075495133867313111179363746805087305341802336103491005459860413849555142336486513295003964002040582222287699676450554720080477518735961436053995291762182241883173883239789121172328553958292950620219374074561967894890494289854194132311973420319730884884583476646634777508552431356520045643577541662787917755774973228390839843542591081512041590445323109147134973308018166021139743892584770794597749465327793319057813154089741000006238082613641902299516769011183236089650244867273783117883750799578288494746311128784240140860849794836987326671604972602348643876875738678165115043576621057668299766198922253952811937996988040113446800419815543869972831420227433889737362665708073261169832182856871592472759368771300242935987049239006516686817280905474470351930967666121567491057713831972974520530221372069771904455638572791578319862747809768421448939661713899732820323010525646708219012597968093046512803244871381997127095205125498569263790112681165493580622718318356559681358997681733160368541442828628771567011804026007699782928416937533260330183888436853888511039866550601598160168615918990423197513919778274712588832182067270845539821160243533093663506245002494457019765651115386865264072260829692046013062885041178450679741169562913624769214787775178799967168439418295350467301751864647148982141896398375775515435280853790065206483948973949175443761011117470368801397715790273832032650726439308913829166381486189942329434817697376939979826294973045673492346044707034775855647589234587429238695257096831355308473393924854525173385005164591815197223237073248331462174047006897141231222440190346918133402213503766433900072908254639976029719756429311145140158652805503172443568254078920103208739868066660276743342712969789063758121858213745748251219260027619916658310292149936657204233596641529803167634094581933699491297260967732775757314969920705808845178047061646026380202553644646855808065236626645134442722196458307792825988438494820509986375362575251248643140882702498744354298769225322134384935306007872697024867161502637688564535673394373858348086709482680199403584733596117099118573385373238290694090883298204865437776530891707283155934343397404966096356611818951136737469809277879345888353581429979482225289353382562907362115290112941151831695511246450050918552187388124560973931498881576914636834619406935665730115968770680326957373031800252664481307441523317501335071297005596018003633628653247020225202402451571870816199617152861439734638311505821957810053896600840912681917647742925215847141302614537842327132907901433479390487204563133256542771382103479964463199009280711099607390305376575124972881862867117989587817685559606542964169139366010452251947701344400677407969985103692729592176744950103687455222169054225740940167548761121555662176351248507661612530088165358004406076451050411143076796046439340116665370152877089947479896764770770279588895056553873470971422235488739457748732142685042302529961530822837512432272905528668872058555048266664204629464788047717900240009297549648793650917761726991536721850108755902160304590607130189781125865807676234784241927497357410285727395037262064581145663943787561457463152705659204694868927360254293674093901464638363236669864015697706421864635871594411305174754804626961514582153914931295300620642148383377782409479091536003703301865774417110489012130168256772511252863685888295263270810839955159066177185156840883781483834668622568929243215146702295325365170153552028942214735451187589433487075995199612012796539772363921176711118278524992138385051526550519385836171367661604619592719693304932958554585976287175454345125670346580938747875610559740936146740515630134408095372076401385146936425956940524626374708953486867225536654209877640815122617067971086148961392294896437268181297498243338675580298761309254104797046224136872706820738338233866224888342136195036519421838119447964394754309957554993242114873776438450652487396152922534991793453562359763390526844807666923883102810345087257813419758710069245574485847669789933498341336663696729252421026227777157269534480847235516375183614676859767550565088530646005738022937347700513047393732600505127374697986058648277554357378348424571615156860375636233631478594286560397667909977773754866889751238077568750027556651109085791907344711954952208714671545673193168899216993467918084976894563205533211941565196464191648007320998159153295825931374630155637109900296080815216751497647590190690452171620256199595574305040732666625233443687111692740983223249028990360153099230835573679781156957849685111128341052110107834681858507108666153175555224811567965202126227189918669373296789364260619103784395478412152260676544706763261433330681637466540531022536370389402786323419996207227348822981061505041503926851740567635189305904706443325855562432489078991163545218740476947890667747986320937990169617328040972819247899013693766996704126268066815021623314403142354921119733893980278856530767697643726226722927901770030351423379235268853783188573557844751882920083195205565992249103231347409606144461637382866890603930989578542433308059244378622834122126669359927811669889040037356698241230219428215672664447765084156009506489277020626234977338039864689193069372224632214608814732391781684572116837947364806383199132371940516526664206007429950847724926286392725203693522045603225721288414724197239506595789240931218997225568531137053171972355185229425784428654857580302204816903387823203090818890353491696681441979895921551877144864698294565082050649524666728168606061889048275273525865517951064566622361771797309667864374932805607418495932140800005823563674735465596693352955551259046976255666845312945045722739246765725072648501739530875637939026996493233477993698566816077305137895120774615522832315089847109098353129762211242590775824512027468895710137984701971915031830921758523647824462257819496289474994536252329182799098263103308399380997224140848858773842943891530579008294259724972478869637764671381898714287491030455794325666954048950213220716915295018879568199028038295056047082128440587184068730333111722183741133577731416917127841162242742547965558575874657616687778886920064143199352460316966558955640465960677436298716180123955597694171840917303068084144293188530844964698561836199620869429437117245335797146208745511107222159625488446722673127736178306347219753295452744637526825974793469701866775221880780404774072627058295113288096793938746305036340897749569704844080551962019839484079356822072210022336382877753947713202945420624366320451699019556649681937658621395521533457857650419133949434074371253694372458843262882162426498499018168100568895910639795324775847270537492839445214802211806915949909152626299426413382886163465047248353470822583792099695939243210297092209637246364142417823401060950280193200188262528824413053079602836727624298871329313460993479071356482041713643366453915745678478901151477083368905868806832315049577664222683682182712192686769183792809595105508796043390739267585724667353571989013403415447301430738744620712420450215353103952214670560739382481583269915039019276003843804041774047103700565676378132877038985706020883504631542147763033881308858230143787863648206126331390214300896503639967263972648986453550284835025817239754169115302643993941085245319777028500705114782944983685984787377166790322165805567808406089126846256091403527361239266541817244418550821249800275036230317353103809091140171320941999072913623093374273687461389838769999385192722950651489051376542475068130394568078687114934656400870481693346071076562840005420870525154556574872311153564102921331213778802232824647731576719136959881278518307936519357865576243843804481951649217257677621580537430433657460357230871121287689874520015451837958229778193070900184880570880558866671186016201678054020989577650801600621789782274305699571824543089135932813852931358475312518937723292078328365789287129554441564386756266841662568990800741285798514853993868664008796328560427960686136033156808034138860449543319189886900196984667170333387245832851883249356007785915683910153669944947108041667816024765372758799159986406093988013240905488308157545776853920181560385317001331815572774442919740611139092752235345872943755363044878611351343952027896374040303006896073411000973751179131394960434387903450955499143835930613074372599495040480901197017463515297238874101568651611776456556371258264988774840666719818179495074042856469872796436094431629919806647340886302037988582472200337742738361752455184109581672447054696596839349206222556049391309514675194451004157931946487627482401565198847833910938726402443434628665300056456192836790090998238829135210542019633742373206092464444365854569879093983837970526800478055863669282499266137453041494348522438345960652188446600704656141879541821902244330233984409450387242949920079583179207601329340909052161705392411523049051687240158431581186886713811596383236900824247605318104300428875327127672237272627706867942878675348993103031092681186265002380179745704672530078272541986547681356726461495377631237176889444785541948770018995679410548453603278780142690981419019862397373201000511357824310538811341424551153525330996311690499674784980671388356621097352663824963801910103509508522494689683169651866925168362840123768199205759115535066503594348952006862441827626020869578821237188031993294369508880487454717093894185615875871186142650032238753054736358006729074208486944435087004954152489160589496481081314322819468357015409292287522847400332032966779650843086756880372365535389148399015870492085127003611368585678605965949625421347580765202752182397350358537164457171754545553930261474768534044756412827363618364286610215491254018682828399669809386067551761726988763557773124041974564963929255490010879989626376429481013820573946540716274605817423816046521942749585460394723255923496156827971543679507178675153115121351691530311449874498846928204010387561885444346952884413848191007412145687845349295621596503843295438253285460402940115171879462213891086382766270920857345581016480468450878612478645270550469239759395764859457799026981624583457003901840566849172297451412210721642747283688729083708757678084761292793878594926389156156186084992070167190971031167574803543291664405110413698118578596301348849456595340081462730078335268278670138543707822312286267139701971559494071755450166162147729678886658181842669719226392198225728466845655979561144970221229505380112201895195395195025364108036764173029888082390720864029253981211732603133281163755355811408340710192253285815627756069293362199026810586393414300533012323277484254203968064578305273462489313289357582257318818614342933815701932878321697507073213580418214657717397230286966405545957213056378261734525909654677895051072386779188055404211310905416986965222610774852077726613650495701671860705394494431596384163712746459794864547390871444309461740673092260855482618174518029014382449550159045396975192367596873473279182824997960563090754854610766391554951402299644600328539544078276157424055514293516896832953305993872718578186775590216155997954354907515400887065025077961328680075724083080555539180731289243054161213103697281859640504730667623911077791959203257342964917303593551337450407522082606473990779713026766468066565218960234865341111224753205439080466891891311553106737437199098249944774529354403822790441863550416630194479188119397896847388770433830362387105607570142419481104174686106238923846215806398777302222776073411609175351564846212330717556847034532882133973729641327306042250353022637215911587123494882363566685729417223028401676040572001916060155932210433230094314797851729579094251003032336789438765629539255390563493082256293220986628754453819597458449460534555914837401803932816073805729016693080231141701832271282260049698642113598543666688448137495602466124636446705759164973469846175776298337469836545343896739434866725698890930881071058881744301051272971935594838411820304249465971279995457271025188803733482450979034449066996918000339098805746082309736138925968266586539924702079631066483307180726690668826705864310925273574258358222432609885059501182866809568873462962929746146303141215189682343512641079334064473957865428704162586956022604861115154769616781899487274670091876688943064730726055711452955844136984365780804754858871792186604549499689279966161182895279078015582799294546149573718564334910414661855243401914406153017809625894294753054988313031729355899734281586470381056100004742041085096356133623649939245495487265441437630452823939252252246170925538567116964479439143100856122316675142630880315874863258073955448348469206158554246192945213410853558003846484633496061768684984190298972430631175589648165414351888268699759894097052115311109822713635775546382868716848446151468078419383436015575622819197787936905332001669106653757967161025423041064916593864796029375886461391470659534873903144176482970821571140593148606146256149505500476185751164923795546973781080540275638295964967235421380952757113279568131545919900830689756651689469276674112856316869014242428788306458167240022976313329758828535131667049522860433092756641004310556152123419003918851697028600883980298886330163121271502278751518259068071657238973054758166926137356713933437579406268493708930330875025323216483829409166191408875286544369001930758359958024936664953048545998293758150224968280272406014657202982492838674352680251109871633529007331736284923094348740225771322559031865098178828078868516568119154167866785967063205959111895660510888931442377549429615933718642764510423671691535914068517110760110661808755421072252531995167736030970031763452024434050973631650180235956752766708070039212755359735757101889625629987365269365982332828567588727833757707556327659368206160526017844993348762250962836626719869662191982238615410905002626580258106099503774007814362791573068316901306424128365874795060854167825305867095374938793986118212663806865753035658038139581743041653825458788097207026415576823889616455022091771116653597992430044960129744714297879588570813648078793180600618843127042022250637074722498736125506481115251125836073182726104388740872254865766067474120419002665586265734789748695208629359397392096518628393917269217023399831876947869385050372705555794825741360317149399007962934536849528409460305628361487698884827730923764717628672211666271023993994113638293400989064086141080161065863221635946052441299223634288463829206533986795719922432791133087481860168493169042956058861731613071102531501638748234363093327133711107013657846691721878788632647541685134911047405911843525724789462378947924619934006770174702014325102892645409643842446449830049874151807612913718924770405675067885963143135650405479374796038888837053450737785868824152847445659116010243737676690957512183737327468480552329844607716831382428655316924054960118969999459994693860203556614525032268030712305159468806595788153318006915087634295401645212814927921883331394630333596606819573496610032498126790200271932295223560354963789308698129475261755761914996551924531583193871672317951713435047033214022850810633154055263368272408839152638508737533899099573704709291327131293603140345722132687827176246940627289100747034758260830172064903707158642578821098961280054625711597371324767639817120660341942972936321548053991516598530276749019073211607342726924542752087076166320665434489608148346933567934523427541870141976720453442424241220871546487683140057035448925757258660755986573673927671862078079066155552733048472610537966938845784385309694100363373966927988348775325588044412421492707622126582139590699036264158647784521172406138453664240377990406543378329038952820797220023771230135475169415104778650516744354108353127983006919346667168181789043581041410599048129481318041225284488426795158091701193909898885942413943449884550873355841362949458126259090678678737183433911008742257800668930321468051544369746032468288525408259282247855839112371713139290674730273409675207379263359959001092256257019143838458975344276502032932819166069311354829988137421138446639629636603766028956586211418424727575642600391894042967161916215239817322203235510467124299519898717992220373444363152947894375752363087628603752838320917396019505605087442877497745388572478105694657822979145478246982839041685792242710895383105893516316612944693551362690502924710822013437797842618206473572752580497609296510447218122552408263179373954537887410098695903162420165943540585354090021294570806867641681366539322899714744857929749006766389877686598251179477807238996597030504792853862468599217410466094459262344566019518312689748565872793056233557951136355739040024277698980640962134835196410518085547550317682773983884559186299095104795880902679123837126783468550189089264267335866726000413082013186272237588092783992811047807418480143864716273479289267434932758669437304661335421047246281222484087869972590270822372055746887581284807566337308432030107456143709025962142523583690868749445547972797285990513255773201592864349009662976419895690875065994858730984664697443240919679298362045746642378264926362239241005857333551404258651905354201379122412034377701440025784755974295421797871845961742233774741185465135792558397018175218646654587886017867737583217501810580667583078366464780120061186257905111064262105491121710450020213062527888507542678181058423644858279036022680546349715792725479842813248647925100118294303122561862855374937290022802130014221784187831312188399597385093419309962445632870240023397235141136761906200925110208990009736810248410397599344503030735601089422114568607964912459345089037628614154513751505141535193222029151189214986665337160329099508586373975743911264835888245286911719601559440475469292091621311850517844243866773779050348013503793156986281689695671393240281039821818782778729687959978316453349019848205768894771579050548398395355273374890806266174384737233131561475847825618269395415535761143711213094448052825960936845155727250147663081639263713253524023455906506619767432591879678929139760047511658116112202303177328810536116421484980739441969596648632895485788309852884112620373219079521031747816205827662639594878231436114351374216308981982705439163074883172106077898156795851263274212891331371852629938030747899916857239841696323019117988964134566082189334498109233878960190156629043865623723340984810262676533395331252944216636672128067585064175523645231242689080813106498852024859162718650086836791498694579373232405107213088538945886348662429338910436662433452804946328914272029858585137494390809209134391997891534398953260404197893777768521941878679938090906142798802721332047826007230962516171528709647074647270707648841315626798548781218707691860135726156749228895887966567375532961373869773975531887776589589197141791531351595456278589741556691957251121826853854738244015628063904176706283451776722741866765200390661512643104161146935171667988061198320493691421252925705535413610127253256884952994704700613772970167293078401376587263873593900096945922281833102315686485532798266476010431351804293617924424571071919638604145075974751819645537121502111180077520669499571728587116166952180211967322382895353816617319994851326136447902636658613137811563695770683955332182422418880164647143922649298669801458866766315779586939303071261685854015822394509255612866429301449852239536247432729171115788691814272212072530534312168849342618077063762387942201683121742355242295369876843632875446359697472838108590190076133107841901762147356843689668404127142279696234421550327149147101388943978113380152409243269964222441339590867849210111993686333508259192508626137749862369912651503780115534395874198664704170678297785803276595175327060230043503543063637015859559005373748894483346001091532301735077521636486869513741309863832189071033211720749946763829070524267992950891221930418535729234228206297413766928399373631150849476026491924839916327233233012053507520798551082105895282278790450224974788581668743742427233329970236950361132228511178088007490004680211922150119036653340528308754724272617065355720254750782354853324757770013635500895728743619305285529766086188186240973251289275028146741073823169635612869951549740021529105921247922020003572637927975793669078656821991002919652961464513098768436928184298442561490431587064379866411366087736208517141764693572517358980237219452114078040110528185402789475520559397687911824956853469748222134539712376186952266790224205167467863616342452642446414965234434442459540397311034974219499037521347781864984006828481693746770621925963804646112684544919086422183477810510204936664047886646907638654074247631092131581761366570686246484678193940615934213663638421093951508616784544697352790995316913150144556617550661757922268241577673179769149107846742786738031455988838567325878382899030673842794218769239843954024210814474484670290307588438146773595559027648519239267674060451491822539779516797107148447628863504743873420107136468901419225694571731038833825284329209964894177092234493358543315355738400460279142237324346863533280254267148771867589137543994597641929055627959171842894660585676679975255288246080710116500978796957734912536278717598121003964052294926970816302266905668718182625985295394142427115268594227255771951936105153012931570974275014585382945681978098508002103178818132900815997888790637417732134417238343950046060816508044393933364963134016573661247055712210499210292708085662315771413644117542332542957510029194912929643504516933673543235454400889714833931784243992795374382441757137292823014809822717484142835178000772663767864705917123012676194826595464964774665215412908737290799363041475571981367102331965761156071380976295331715509172980656623743926311736169779447729117950519878178740566103387226822154010027955592373790063666166915470061594489026401261538312214927833947279932389663132728822213550184286103715205597100872650776931302999152367167520218503513684463539781183513134745552989581488820601107590771674557287329033093916378825934537889663713331999661884416063553683026295210854493160987367289817135204378576624838216219564901733288685283107391560933550024186416648678117888267995492661947145466034104228715656735600997156479751560748422799450318014426262497002200668819421782490931658394291055521703328207859257405724582749120449700402584800307662779815217934279264382930560427367807915271301160153982231129947767491252313098531555731347891630558549091592401473823697313593093048092322732462894649913829547077169677521185875501947544058095973842770890245824093513398411752587076906004465506110195027633774088659457604573495495208005492514743341602624534227253445998499383202153736808402870214707667926716231220779710766956315594655497708813058602993927763867065939442009296346478123305250531907850921872694032330629432405650422579547780430186919921918058968801165943762030715416635130417787063198898768713876856686531389610635494768932792128452418938994023014642757448435505337694303402600767560758873400690040886764707778530941452505824285429519878456121851347217007615341255601848981944517457863170409791610251166966794129555823425967622063290727669690771182235476112102325151716401533624687905640388486666534939076355607317673230276472551099230801839200441536611270106174044862400392013027220886830548259716523429388794605343005110675483221226664976679037689583902472177259009869524138523136875655603216388569705354322254825455049787104938693244055677615106483668571323879828266765555824992830653351520032738426703584253794930429974700153696464283387776825428015177759581792141313458032990618321929663482548467251733235538176097861572862615129696821352942306872389905269340571315733327289904008795608131767654527148932361105126464253830989688588565524060087002230900071658736183688141207240578911796822878187366142540231547913038420076273953185637587515096989950535720808253526709024567636827179567574182596120208031441465521683892638584179280908832576354125807030117644024630463972743685594469330395168981267503570261684031308549897731686403165253612165904955299521443430598706067894382449687965579300622361673558731833684871619233527327527338001872708650171525104671794645683743816941298181410375730733833348378083349546146329222064166416088484618779175426106222615535898264603903746997707250469320585145756943898768302846387115735852621594026818715011848076796420807006301987055984211699942743647846152457275263361457602812508425570398919332114902942269934554777247135663463289885554092671814978563605875345660051130946700545836918595054561996209996851611605603368389240670002772398164669061892488367420570990547826513500783148351218199520912226739220711156787579128414600623811122603241499178430033725720340504745409379948750503753906916111186637388802631324314811754006315202365607410247097309824636984702765066614226543999082422451143990099395729760010152782040837787047749509288844026723108679152409105038562043674760415193178544594881257544197250175284108876112248748631278217230800918002792976432918330957122806030242583681441932910810339816800344871228326520383324505404365821958329415955780030443704075545261290233831787576312092299392525532072587887614492530635889920140665367564425879140494221664543566971558609391037826020089700993369225040400161079344273612403234012961704486150291344622826095052235838191004899641370002436743870876515953418994003309589795452748392818730724739696640977046025380351710615666249023403331360270954919276785674377961457226971599621789884236049378181103823874218731859716418660117361427691901173465554941282486038996524550670299181906901101487969542667497556196233169113331682676295412383916176670862256848336522876349364348516953489858924045151118081659822208199722297015350269438292310701157815615539610394180409707767685305572349529377395494551440107010492390303742446487861083928978001932837585815660293570358944796005715188419219447400078633718255468942295903790044620058429063109370401543895907655937169373995340112339165593116212990585039613420147095808668627704113509305110763677323356443574082614904111106545779097146323377323108346016814815438531578659123424791320493450312556081905863228089050188074813204153479129803070484561843382199083542644914324955994823320217672004398529490933774866192930893154770807069620934717511949176136195292922987211322467447447379821000646932612066728625030292935081444077071326467589450429866223326871116195067877484317453073854964478689235543651796246914333717148738232987900980167816528768714263361062723271244482798442481726223946369675823168858994397852707458512882182652126634311959424220213122630825270343885404229306980275437378755035552465999895587929500145245170410369898292745581929013566797654766882343878618266551719221367012701166622709712180454548803765079137290213475302269238856116833613263670225741150709804758083463971516339914362198439851248257799934605725266730950887321699613176957280990573416288023943777456923141315685705990682314965188415931284647365267848392475711036058830010945461348840449615338610282002085643726807054358533508392632085354281306747757703847477963198748484171348970295985115827218128346929898414087138745230745202820663246692329949964429062875688285845284219315647039897445458380178709702015694536477261631174643963670328179197715893911520423815842783696217971255217825321156602019698372944278143763843525016828596690504787762923051625146194852385935722363635438447539571609585026312247105936960224907818899319849083382756773140207969067995195634172777219438490424733346026835587668084141621530431033391384634274558739766262487464644855743367460882897474276879320502414122635144780827363522784063624920520305951180310747644762457142759092434152038163010735680413460360229143396981706671452737649273787004101172058222185257605974860794895582706712105864497475544414012096972403546797333212286347870173096379097296102583345235200921547544987174836389879108050172913913489819150227279794593833889147236340426301196629986113029745236603462233247133820553643228166868843873092541782228115135708733155279904264779955577585775766306825272346361366283931103546730403934696898786198976255947537298638076023497839959895860866446034849725270309793004832846707966200630361373442756537935609680873222939614275221827120786262807597202317981643319827632151948556386039075905430778756659588022160872629622345955114143892881718393324584177146780900157603962237764215031758545921561517031623222415496879243756605228099759006724053606389932155100847920600171746395731493959616081664385111240619583167408562255786167411985483289671359317931480238172679247090270857213848447968583391741295852695958029006744147283768233495896034701645882543481167887370187171971165406492119566316934487779528839817470205371859978603615672352143674798596308717384031555227332542121513870048896420427113959885026616727003491484145109948070554061514483011108733722935056312795415893114470817699676812887405546218635723590092746311777045094513975307529342989365855695131957127849262163288093497367659377026863528281839790688153438524932364917093144495224978982008845914706767691029776331985535299170514473804213018305242977456685211540440884586442419545120057088877635078538868085576202286117017802829592328271811116709586845786494445000986344380095723434184711611280676625622199462868738527215515393008972023086757321497265617720864410417208503245174446735442578859613413883243329605667852566404409198887818693316758034664890055424409284021341622799191057382231569810733553169935687201313244176663704335356764733605539256279038335683078369840377790173451811437084153417190123971873858201452063775505645609951587581087704202066949585461731081674152065902242376802147347186437214803157088548400050063847368946120892110521485012101605817137335005937441438458869063127227962285970336098284426362159501805480358395087123749162794113020490482382746632167947647289202208930695062032644631441491946056985610492634129132522522447199194809299534110807142396375553942745669629241521009790736370770351511789066433942004684681500603791684455876763352641808478061838470355207833494805208118097515201168706613256417393644916633380403410252458205447707906817040885332867110645299411931042906096087538156049391931371933710611469441202840576017605645914753964388021940701207658766709689650584852483460991627596608674620046649872412237753684823413421129806105552135009884530574498492486377391627775488977377437109129264337219109087230984806811473559867104075006400811967693183876880532068430504589935083249507577276299469815651598983679492194927705596863003398928069173291724938010400585575742941273035696700257182033881205692041187341119555823807158601732584218344705425755133189847764790715571726691389544772790073945668244464955905515457753930666254515338213997475359667640968252088951993418087356000784082708905936383389103992969556162793119901717977461605354765500950138638711492774198305166140824826134341466184117128473550805705716926339714553226424019781293235994292638872795418881069893244635446309959616421511609711322525370399774248390753981876956161115818674964478114581259661703565477041993244864247840792968817709177932510571483291942116017065806808660185405459344915927226014929286011715764550834293685960105904441464533605426916160595994137850033438264040684622768184480387415838166061027225026872178060281951140560690894561211528471930638602697413902782795021973904751725365448255697228604401831551741873621388466575654148358503645246391866226681068168394816189120806208715808680715132834965364719427976242729588794688019313408407796646231815624870812184037520273118431385162014091393397715795023611301859231980597094706170077798263723128258796728695230328135836314290188166321953940673763114760493251110353374230071097038911549408822196099825471534770500103615583004415795512235253114422366766393542769841428396891940167784705775556182826397220891906524756077483076091978523680488860100591603120508349337751148262846379056537852213009981128284894409664136963108647907897013571054682900026027687280401640908973850968852627566132076717302808182912111248438802855023892169192039957844451474458486658398763545712091207666861352361477258097788174333815743308137940841797982636262516310940833503556699053836549555845868989867522423919606706641214748194225576973714064711346532910025053596301090394671615981805513265681870969978683219050072727303496196178431123202963218928436946505255599036233897171740643801583400080586137732637503986450321180039996169018662908666034552208808658649149559657477831972963215222053163655649347265479054017712538443704964788523464067245463581057802640965118196444860068745252718085742243021742737471816523133459326014052668080162441357687268377547142837113638934989535264687041504274893752842944824974079563756801424268419705715079798488076562262081917151157840743324544205221682706216537748752153032532346524839225806940675233555341669768162993814377389650851616295075943926814108575140447001672758419995792659227916722406412312835134069257990758009552330195859458080510923829850234001779070741296779911171354514436545717611236848945634462417481115761963171745766713020185961085454680746249148761101523345054227356171792493362113494951043608638678043680518583619701657886954255913138051944669492847486309454367234972860129849868198868061335767403442635063269063648702898365321163881838211405956557681166911345281513478539702030421463706141920877484533256667870818443921192836857293165540732801965783192386033359855957279296583353514466927459169566272793715034846305164372787865213689710276628775808109721833822216891839174603982143937266382292044344248148831181068998660508907789697201990704571122090306982632708628768896511087887220815172759889191789803648971622774244434365320377363228411236756242155991045889073911782185852583846769591192265182132046076576449906259708862340461756885042106669151612994123897000607073463012524617720720767555949980973999499801185305087813849251978474536431839630135403323772492261810504239869052518508644383057903602431563992502057008600095715980943992134382685566250014948403550049701338284518496346808496936489129390259839189133643679166153994395541818695258409637421617748120968795551114006580470375280983455521876721714353851198177439790825920201603156159031310257812252103774483631898007911524149449697349963383566171293734328041668934684336001729656995565770733381041204879852036767167209610209104888373358542556027627870162881294863392357799945496299730332734832917395264353936742546409080718406406098707109860627896995656572569017017369015116471428664307649758364108493683534226369985861028584048489218985911228768303063337740001421272108339010817930671837097237887580136025219468429683865410999262074396684275264423529922592492862311291013030684638238215398370268650159902967386396925899776402572557207760724234927771775687266344950063828353393468051105889501349804363128180752065553983261866009159009324837445397756712729015293315522991689211787696050811904618880371527047923735681487262705016494075735727093227580471144078784715511563621829707740122571787454410982584516775631103548895741279722503044501038009395089290919057999818702479449604651580830346814993297898700946584556616376497497580919629836406900435005330356721770015433658852681208833504691793328128247140315319727807340178612774560726593427523383462636529762450923640778021904826994128343815449778779965824135471639064153274183058916973772277097563267393098154936611536377092522907386344605071476602961703171047684482539507308052143955896654983880084071212000962215018802663631208849238467301521271937805987927013620644139614685033311256319927741976319006443643151954853955974961510985715766975766059857587320265631582760154674028282737746904127774552926045251691387067433408933379095360177280137567095197818539310268896013589703476376483992619547105176775862514077956626643808973855316260375814787011469827533021011445648173869908805210500890871093570014999333023854388801482264634416760537492081439677301203667551644322448033115411158605260439149948349612991179501131247561464493206878019052434770195388859032326269446633417063660972473307133252787377048892201710919802511540714365020881543074972701067331099340884870555360402386317290381450332096671884123621623964628724891110472353953638373128325071349164885856743338869766738658151126952349059371881604466148285320434353069847223541242406646730448381063760204345599400828877115606840648961432638624488943290323732727433694970957915750047174473631723623462704447132714441548291063590025261620026518701479930863594043104177080007253036053070145982589754008204036674167802966556375703130136131920411400675546362977264732621940243972589941860952539842010269325304553932230770471275740408851813739790946279327182373819595165640882968813613406648493978849671641628108465158082541945221503093031491199778823062869673863107152326527647628386318980471758614410289089028525872537859791703571643031083244536819877339895841326286490042195975228389899952096898579119171589248328977076235567773009941903131647342249405335872010343470801957393804258173612860488074825846502969231347678920438376669583171451593655481978704368606369992001393060298401687223007028854942859776567263878711328079811267834784756933515985471934504903031896166662313813925665259305074463883871749223700286675774758221270366508806671747091697191126231218610491405147613300001896531210484667009193963702351225225787839103771970691100174517163168976090477693446899132286322910939767935839770725011076874418524212433408686154614894093836865327127929204676020906399600769435829017121733696795645251286536786636069031914847919922698934758756334228727412914739168545379482970836723621679493833131975124002750518996912586420954719354329210372939094220451863132700115158512541991527867417786469882235374109423325971202474134713619084559826167938380499729416224268463004691279496893978188933548984704626497548824097107507920891267544137063265065327486216866048790234541648805737343470140934226611519679495307514982925396241800095073082666520922367707580393828134613900755942414072831952445752760319577856202178455788291248144980898759015404356711854327611075174530177062612265004782478130579032157258335626677366928006735765216288526097086555707745969958166405078019089038528727301094241326849117342563252683380955355462096101232352896156212213741107749187851163819082873034165330830384278539134809491849440467843442796714880257123833580671058431889676912598054569906478301591012931616094225119116059178016442262346899458037245070713707080801442148609613276283974995802605128182888768164006054515380790722168945796289246975416264961247695404671412669420849117311245758699761952789330084038954821499613993004185741367878638931229187186545405661407511361983596738800404927449696263103468939687104386721745767176182778777219961362402925654780435662897434604455817991472914661088885408789333662666165904232782553102336070199624156394084733879785011531627872784072427230166521621900452550525656802092369550979794258234504306762750060905561010112180389967253478328256900871415253854117531596730116698777179979674219726071727005238641468293045915534292060335128782194153866498366398845561220027005139413396860961968102591049672787402794917641453226931342945140841464538303057787100519428905581803641744614677248846276687949363754684006298665773129941538082706617459293012014102042123938248331181235410931902882057976987757662634735639588236174012542182096886355818643893901301696192364623224517133679699533599934765772394637035109385206617721043848018115595883241869261265204288367354807242407057456120706858026711586724298818647086511820988852255568274727923632761218058290365136278907765778675844376191307626506779412585909158102445823116077184440447512893861450711703271154011281508833451681755052329224372231676801193213781113999861957375991243933966801704254695424766659939550232663525852875252309645705518282192336913253486867500777412322813331728673388271081035323468937867210911341269779647256704235417310454204407508567780868116377936338221833642451998449112682481431817153883534490687642109038444400002084766835900602396441081535267710686920684343036165690278263568257083334336939411498524238681629122692973366254904624581509525099484362768236795410895651010457023667392331455831596725789419133294364786369063566805912902645749701980647067484180417529472196960163788042950150730548674402587493660331041805444882883245612774459735291151010351176455252955556872735978546968626415753253739357806699143724968368042811198969673630801247549714321070272048759055654719890373242011042631312409386309261575308164123039837103342544102923274489871870593662708034220923840801255531673132221477666843512156336665194702683343083857288679173809095758879939396127475650994532188291477638931732665813236688231118289330990040574560477907301864944530880310543638496326382469472544276880367302611334153657343174366495165264217037091929976563778132792292428914474672589361753182245253426596463945977412427172457933637260916054327733893429912011629515754300894890819786165861283432595037595365669974217497364814826767140870191232492907199079816362425901198264859041680266809217432663281531572551772532871605253781566962758879310108107939199005037739007862748839859853396902094701205873209530167079419619257961152140961084345360168274717428283297395067003034357909457944699831418724265637865213754938132875201572591344630653176829761327413105451802139896391358014204517063335190311923399322381831742829598887098117300260720406919868425303385511680258881656461962647557952782435298219970109670661724432956550261749187362279710346580165613598742163747609462430075846241405514488808814796578593582661230887391981591312125657640370199997090895940903427547120027630563992274694252974863287443077035054493074340152352559938926183422959466600140342373720884259957857826031572142536390118418101512788055171234351384412841356883580662786235420367690252984509704799319510171796251580565484169645527654510325264322523649458481263332215033062985184949976879448332192511190589523274757997369314354818273573780126656083587962903974767190317976683437036145419112036802110627221074314208499990362706516133782518257020765289115431049471997688454163721662950146428945773238256502905561052592146230822771191407582607173273433492547566674638721640353014681858409452602283142400234050223168642103932599193629428052388464327396984770248168697475601904295647025721013307460616445027935102295561034789766003516542213478300946700030437493646352695810388016822172908890533099485515497286964599478638219705468171024203349900421101919924170283034516431059800339754883978743938925133779404762973491993428238505370061644955538031931835811450012934437595492207760125292371359794944579006939549897033161559484106946475804250884843289175810115398741576200323237668758519250989615845561620731396460007369218813805982285110684546846896544471142309958926847194037269487816809694409787380636149142109149216904058587977985337302757867260920904318509546818852261551424708544667563254747830298079083332806355754424653109218906109687929212425618727778492636596398480862155052640035999055671691729726842724406201673129237443307238230044402752652825902582488750511576448528506964066429953087801904291005577888460293578017351628222709288684336846591054628571993394060087591036680265305706879965142427688805748887247742977988639472638791847600987731885334757825854094171137550303312182144275940236392618448835467837112716804148139045844870701409501353475205344034359863368768756200266827439167083312858083597850890566642543966729154542741239925348396336096439635047306351527798495642286714026367567186047547722320102491555790144270634991149304987104303247885711113898518174865899114148053992485354270160052716293081546087938976917012928191963989464942217244752004185519338633320725534508173852177595169963946962882692661040937834255150595547913781210655039992189312083160377207756954479867393054426487970251303804398092152311750155236200359384939452845072033702598293256696978220345809669576035704570754784874696299105913566836696003462683911126635962267816012152945638174660755170582352617323211004769034425574008864305849307525602727544353991608896505941871773494270301493788602813217840205923279904224629583060276904913719348331904979062134401059137448492783013734554870161173288942027207049711454532308462239879792216395574980565997988374966024973139861950967418859671451848094394876932069895587261606092415684949608350804745703066038389018238630054641618052065392278698097467171631567927677792748157624168407456036425207663788277615632939757292793399940606709820620682619937085151909613844799166788108907960809340789537505489635791990073181567919136141570829666711763162100103161936248835262210568698967243395915765407510397968739164881300960897917734710832035051952557524716648027988404123871666682071812051901479815296107030701525820962046663065687744902308046317663459960306126032045632720234266342676403080791281036876849501173397293767907794512944121564334111481896896678962658310177912745313490319406155300785401623406261396000843729888319016406824428909533367538188489458068546355875590426751789102387231590293722120022614738770429668479869194377019113244741290404584938239918130477592481965562457745465159734677582306124608506353557366194000846559988409069271320163955103335563047438925416326983810937741860949545456480634432378197733730730323293259584358238852211215296987567783859668007362821778691445387137384499035140875099367152415955559038682683507707916096323412576252123415445746040997069704674843313257778019289550391808467586608443798188722250715229187641038397093777524353563081233983347982738977155451666943321823647836139561810569763896886047688367662476867048959833804141544057009481109972339166439395457438320183216503445655094314678497748750876196821839184761554434850177429530209021442987138554091904761034480865174193403090523161889078293815291556342271252118327772547143761989191532727210727526067860920057011573956324276893575611794072526419105504846200523056448579804425199579003720657885038696999629996386102466871267349032839781652066522898743466932534501131495131244607962080724037712212916048280359655706400692325046019694950173441575984949745866050416049965980030641373870516546090403471419120117188468812742443197957639281349571653053938285762198469445337679178952666659017258818069860728354915837244975432153994082261777699171910420580603217673932151779390386654778673579883539834037689298215581726024118332164044731007338752979072015982259944031460520934310556505329983579380798490384300212853697830461679221927631305066201788982767264427842933983614705457865211041794820309616225887752069872437445549028609707181371103969479377054492286064051248167808004811897420648096275486883330879532289115114810630205876118089665153121508462717811149404477533265315963200044714640144213740532540250254416727366006049427964835970285864470341739123989350115106758184455371965758606862886159669184035932238208449757271215319686938716775205253107620983263249631713994693727994128881242505923414204308227559276112878827076407573091487673486476753487323385038252256345296640918583735036624812138583063841324904115356508887298130793830243631615173619658811141934499749216809137323164582058180678177791003308939790963193081452374858375107787316149714393842049764816833701075161798239514095623436654912033639056081435962832342008599965415468476317422479896645235079824520244308202173422573219124363074423323851110937093624171237153166201705035393961096759368732081126627516602541600306019413052363765530326783643681812867150147825473813693427865614743868411255858580126130228066174804713085059994497572869291772645334926787860374718376766520678778555871648149603633171112818187906913139181948073578667040247659255099567714180963278613043732675205385189309070091901931672492609092375175412088946284189348398448889346846992478036139579238469502636946604336903833754502986232358294496449781771365487461260604268875727228277018356434816659825886195371576734075661688414633760270306103615354121335159886824813246373659328616188910698449739918500767953955584691346570576244891246095880113593764788650725839634486312840340869935685205508878123428734622220336114477974439380629030813930451017756248759297820519959025430876822489344491388326093059382047547970247828479584838107406623082695390117965037769329879175845550441250985546347128199447918772150620664763433235762926500156531111579283665973851057994733590511806271711463657999268242044898165024765947651900091592452570151567044831196980625865714447441160592212645349290306938345532693952517548033996993147510099013033466723761255247075249482918444491562578219776859137390927908221559581141976427745948309502351493310360753340226160136470849294884553540914910803886268640568381882750773530387063964821500204411775086360044413311335645422731443143273170151216837435955890930577908940161790616061194386294821863717362586929248074031031408390554524771103004817344826148485493004739054580004324411704468927000637367881172773653339523124866416567185104160002486668746323530062155969807238162935006537304038173296247257367828182832369185962224945340382394682029089760029815750808785171154867953906561436556425644848656196332643813991764512899238175012672988156506606523054261508923891689084951612041553959818157989517196583053284708688208312729848904199977805991724037031148006493073884243026373035195470534064514909984649344633448460921281291480275237995510864984636685616857045530040062608225848052370699019588596109749817658776836368518696537548782744349676996099200221477062725757758649120883865541631006260037563827758464688353156754878359698981122558514246796112391837124689342970701812101607348755861249166263772271462190012958492071929826972339813955054365615038289771281992828180848975899346997132736397084074032248538936248660987398569650823812445462643345644911541584999477335262632011161119131078919306695912405163327703077439773241882298065527839600886892046722549328460149134904183695431321157098230482226661643575949706190262520131887376782851864169519202297623075032468271315852109459422855397488205148426980030519991594828310609262303282566680177853660428425058849181305074580309830639105983909096758713702556712162727835055053644496307087169690571373169651164033300144324887442347460756171121501077095430066040512791239626613149359683287384804330790579343720922839144950523789368405159831297388824680562188283392091600597664062263377460007438718197963202220613593358449200550008477629169336565192769937480938099871485295010735097737717747695596408131892473622325155269755774647902846838565777464935756905630245006372097192278676941416262118218144176463831116347670299885201256900223281587343283645240302539533076758800103581267903875909124002106958619313258446637976642517973264491844728522794669505458362397665247093404079664827554278785503687554358382495620217412126240227168280923356116729906922221783020886798554266617918230332283968818025164060252860594990963495142013948051432864984603885884706314527194203040292435295510818056981311586035034638613457093171610813104360827332734985557163324707717534733922524525596947998885634046567704132127246186467346279714795547066110205436887879127159676724876637430049282331195806365172538320399054483823813472808447688159922021573917768161714026750569731904006052559459801342930722797116909722047865459032746094627353136094371662734923519561445216530726502339567231489167034518299190345717882003632826833362380279436725888555702434393651177537246236896569554503078360316588647763537673574460481774385419519563349274962737127635042072628891584591716191539984161764508257473117992764961642008225298930537110347191462631323782464386243714125234950216198034474841826165987460416133195242312794134899491804734302278273861244679328098416677905068842046400916571734303106680436267043022499818842364860804631139609653123427742382769836753724272257563021851059494382557214469718332901248489320799468444021262878082909635108247540809591510609949083360015577816745892804376479308011609826973977490871448469778241211017153867187415582061127565594846937186360466486891285611587949739938074911108864622078288424451667804147638703350108036176603875785376982095731907682537539177941770614982946143243181042994333478607889266980615999639036500879757845651871252367024425209118944549255287461170659155027969178827126500628698060131168724679319876794173319534815096748088020465319837011262514132416211463578703524956779632121594768419762411606812942151554218621675045077555963229546383428296425731378190454380935532951704603449042086067261368094788845394579533381466437771164682340634442647868310813610214290006850512466653601509725062468669724918734410319549433850458485562897228429575465914888381260570849338948503940473050617984008385045403539020135649497028955114382535287149890087095781585471636096307932758356483357893821389618669972543681723242060769192714244365309316730676198640223611962693262558698522850841547304760874261451255318675341954997113537557491664377629762169743385898326463203315607688752492694451810024755241764049094047415845361942317431694757203871232653209229040617171273523046233096086721766311350849253075867394421512669941297825719724870263640325881463310809578270701974637133386603323074880881962800286724122420776039695105699900179494873460643499173854087760678054964537681789993419241186181615075111257425704094278865715168548936036529105297756702939348673847358569950093876092737413177577520693502948043446367135696559472335972159189334152593217718026906834251876664927285127065271366718657518142642750519410036141547116539200786803347343433299596987911784549941048582702894613258696516820827981808527341486454931925417820318921186742086657807821513618748166349244419545684754782123174349529535080213715724198284370341622786856449968825719023287688986234073432917748471022092910100112098135028067361891292823483771682964668624985828028581744019758467028184594763221654973878782761913493949517088445089202012667679557188527028380453663858583651080619252099707413941289486113750673839017176771735344687620091605056427188649544796604139256703236012275888754968535117448597304704171853465080717050554470346023918482861008499654015654567404545458140398936759715188520769915572207414157293274729000808312014806384666046676190416373091243217293960310987897865346906300185867430504346721362285118142560908828155132840335187940214304101732378043300807724023487119967230697972828799600480684301653092979198227590925080968900021951793504310809156131286290317595001594545295190631198748355809331227059652815784279387773993786688593958347039729569246710185143929408425426353569092306974577279563717116827434686961034431471441791689145804508697882850870621915908997215144512185432764734138723911265634452539282643123996872556896040572754269503476026736502673552198429849744513621974397460061017172513771342271521912329891010129766926603894680354722848085228075546844491922516404836118158247502035773598724349514728751557328563993023602836458762480431713386000076370710366134049952153379563715735067443249534492203110682041974928430519225286886860715422707668111048131535425745077622581272588165203488607714636222203116684506409149251870491467924425866272400970791647880800219937844080066257222264168346543665949082954504076776819008673974172839686136939403183645015866849848471628642934717316872036285528010674297599699326183952710274079671630928001458741284312913975172728832992462693707019477403836990166762659362112777270389540698414469307557419150943803910337482024883926510989134113885912427631427470603750280451324193295445667232000462112970833254220858951510576367181442276451705933208765918461762266572214973395330884144505864806093364051871920116842650678682656627091585229161315248815217533264444127627006644597457409328765276168952633452361036183288195545438061589980765356707243214851734914750296188784382378573477399021297561070632718243262052129139833812288903009124936840786767747412914793724949162998069094649965349220832319749081948151094217815246378450152672364810112220562304720043239578423583101520313466461223608925057005449637348514760711154564536899701756738581416665458551096966158397126075764410628172939702672327102440991391518721785767630929110338249538075796969275907061938972281026322990205465403236082730499384763462169865941234344230465091900383696376249210379176187064734065749744563601012926118532532180719212469392509543935078484503315115259708606459535504326366928546353713719993933042763272201616057958269766990028369262881663320075816380521306209443845180181853093035010717398881069446659031753814883948739885432941351448139617223308877410490361122506624654234647874114260568660087866040795054139807388015070945769781346549805495083130260753376272281779533096342140899220983419154347135469303022299164738604327715554786913043101051164850330061810029401780174358926549873448021775144567620822958364417175254480799223999890557331425676267449522299460488657377246710261161324573582372969460503976970853201833332945867147523693187776803369898053591468314645890619490639244521930305137813609882375654542554947615919005118578346469270502183147443393756641637043038564644631582143710984934588730030407886027405429632487694207291603519854470910385111461950994404055493356042027586734564547471531999753404148919169787871472815683933485634655067867892272206886272342179786718018953912900600263235632038993773546919046713685198113341488626018280332537751350604733042893906356750064582935158443046492865771785701692972487760007919537752331497341300704530780506545595322535629344626497985867121413934682468984842658372758810893728164484322363167224555448433357780928901730333052543893392399782598040329400361528155863680453934916070109586368078395032875756764364844716079480984980603936105830512983788247487616279990024525203307330726291430544050445876700241131164824181724196681363596814904689899388880717024793772781914254088702584787069807782749526200999207614697680624997412169925682316193438840201494771986425065351161044537415809960803496474013766039030380041619782337333478801286746067975536448999568183318425636492365547757381302039497990890448387871616642557839787238335861974336139843833799655140654844988088904396652954729176283889892073052447005697820104612678288297404744545506381513932890720973312160625706234450556419700530244521616045860053373370974789942780970532651528685992069368390120265570048508469290498625529861454406087310860628313657201341899358794282632085499866601052257253892920922371708260113870675470201067867200566593262781082959846014921573012133105528108807418095171752446358952130245366382624172514068469734051951338459803960670373377622684497159140736782372274364842945916597978545524394965177965733169428666210781197058170065616145067413960365025440062687816405189409147341572900538821760027497611655271353011286986889279690277849117034506995455471417780671753230122251895646246454627521277004408765876608296216843635199325772991856407751264975366571380590821828852944254869004177445246476243691450101516376486037820515254666593967539058957550923054742351977074439405794722003516179171250308454942411747348093506817765985117716235653814557354021284353283992111793350259259915987129705058424952866095942590769498583961330372999862840397666832000369717612677467092005814776505508966966872838945276594541071147954178259837102958786555542160509271335558764049995301729042363126466389101948956811756048744882290976157402124996969343961011767353761089279353230277934361125319696199005511439751986747162569747519819225827255338941738574099687813902155877511151884550906747766084244803733991090445119599847337674477670388130592064533639817911584511829889315321198731840351178813802863291946457645405391275422850567155899516928270463435853090227196234992450029185731063643315034186917408934695672030308102597278520685920891115535886189855831241632771617275350765475767046534054710397584467224018147835556401976352610219077953398817077665092126356537064132256689154270904650958354376619483170606831573722895487138105410604096191770541710036949845486446225717710129839851774657090681014108259685260355580361297197279844571248997119492755282395009396950803367646452658925603284827877431879891546781273120181633822852080366325382196142905771251488461317826486970490957751286419422758425871978485364144390776469297939231753549038426045174640634691596179023056497890307175990875815929389775586018570826998646428838636699795951014586131064995614346999200586169966605305879691029234823872081850476382709493147553488833968663024940012401026850983026383477091162581334824361511550690097415266237955797908105188053808086382560812095081446925983708394471667211562224435001872384423081904381745877830249350710252211937602741956313768682477426077278846795735571335305902151012941504185967383997805460802161490819660955347105176118813634733253000864393846899141825456528336340382200917325759963175964890480510062364782721268948916081317073812746953125452524950579083658082032846093082307904533935260362242357450134490714286300543724386217876596635710949124749638291188102754796808042738393583990460332222592988450909360605002853084121496085953909167295644475337200559648182206301593834709820504542806454808486576344633673431226670231987580301936604662021765782878053767118407879571187035816109525931237994758510184353745625200454173695360053308431303108261679750215191608593155636022031011352909924728031261009718335649409377921870106641148971726462550550045295780528357247044075029341207458535379141180822152441173150262842269875336409122180283719690096069351905296530019065362452974410242400563008881622081519061463951887377941691123974657546644308154610025846474959348739475908176997248405407964175894166021633858681020056014494814620315448247566726082310827038365922374641069354549169592259035984673506939843879952199948085606489936736599025896031511407294403067507255738089656635039387257492358820427903643856695166066015987858552963517228348802882810451841345935335658307218562520033512536866740003883555222479751195933972567046963984147172853138007380813686481857355600786052605010761657369803397401314817854010068009797689968174651076015680070834938356883394173236621774765800036940599797566143137171702326212001120226652387160343300012541720897518197693167890823944311535011074516375699940886648800326327622543141586058762819843588598609815632068119703570404269162169085086527659481751626879404348373081428753737656453583229313655027242598633675708412676490035593692314621897330173390466891863223135924511396161696986065180960619350436115918609482240131954294907312876475758275910429835050724224505630013128642010494494401813183770116499389686474411852485065064482535899304219323271888260555168501665628208111487282192188708107366904769683224022506747719976744235787119800195177681918964494414673449294260439862647996788635150858036480863330979282399326334674424678014137363304711995306925541971494336180274415496625480632881455117712751046775877176223213019670424546991744477123692352843007080123554913798869938703893360566399647068721752300541606369259350378238119452933722950347662400152392675589668412713511838393151217251180028851364101271408522034081713960128703972816225303700802398016651143083504104204456546494435506287382252163908013374921068845093894614445911128005192010814542881530553940344367801367765015313259856584369581557031700823857688456877989166518521606422304537846801810230009293392188690413058489465292542956191560352028376589994585743275479264315205210486147056842979603925987284621942879796501097081654101281091849911496670625218015055846954159044184120064683770058271947441518472592054024145458683571038058995627725109086302348266679564611924331953196368865525954314713970201749093482262569328436533714230802499444856332717834108060243831626053757130793016388567641006380941546953936762861196522309847154443726901823463091892366405738368554532791747348467276488283686613090701090063035870743261839654459009872595169748686766312810485858083801021636773792982021150413018478974806536091138832519809680044337262448617003602764219778948826942509691730900322193156365895516175599954702097366164824009484917446917549864771920744935642126730228128318131476581361169492396645037903378220304899086091435293438446975630212247087494850557247058626880189860122754877459113850681232085540204735496901644304768588734253017612316905645381779156322753107161917739019778702179636663246028809707951948054429627124045461791792258724726054003941140885141123505810809983076180911286708422864289911440363419098221202110534634694553183411554012837815133312641201235736529193154628592656872845008315959140185680719823587096358460739314825536763092907521069147402471111178972875637234497091104210631246433736752800371718700883202107203886915188952786065598071736366834682078889653131158047648001112405407666781452880946507611046132946826152027448507538759930292409723309100845782622607630455513494357068762412651409830539237440871634464479695465721936906138990481822235461723679945846371555083088973186867763157432497572542799154544277868188233240606575487344784649224958632716950786315437894684451897584407467841430279932334760540130957298125937876298201798299246744892406852554035033071320493839291129333584114962096722959660331443591112559350560839965735283750765618451742812997909016477171170172091862822492168671964249708388936453742519411140802079322321361112511910844015248089750517865076778902131005666076482067150016554951066678394791889775423998333534604143390373891446999692331757783613597819535164411786849257495479894288329869186364158923871930143351201455981394971872245278359975247520829847635094013103462489584169341536266958053087429353316398690005726032352767012887580420403388718330281172957269438644143579384763731525759373847819006407043362355800882326753334615106047965148418821877874294164496370681414191646494552267195357939245641692753329711463296745854355811935109473461111790684987890242104958926459410698102824728128494831446039123770431456517877817343377414349988007963262086568157040575573669278042060489940134962372321391618310488993140571179260613201033847466676098261224015370611197049670119489177862723698373562886569356580640105908598048820538289679974721065060811259783035066773226155588444228511829550473330935703698052513990416103145348585436702397378043515266740432493847626889972960137045312344419295931847991306366954158881293604197353872615210669878555524223322379045953674212516740462096555754521498285664961427409519085124818548333076078613073758617969230247493580849564370911833259069983849955664694726681464168925531716204736730160106494475750176838568981377720659334368609623201779058165198489011438519518217503079027945597819421230114469702644260242894275481943479503673489884696553384964445999465899604191840097736125453034943965874859091660954221297807307800826832620575259909439244059635069701318170497798288658233614831680248446482410325346178306903477733334288070535633327318000446403549955572961054328538223110855469956115783723615898753929570092214396601346464079789527047268077395466775304960865053461312365125375041338188653446785578227885492451281599123567661778530495051938137080420318556651596185582321775019135097790148658120723223678104231087616801558243538085602628428749157854222829106695241875022429123430936476638363692410096816151084121616912991029559667811323585769268078401239226596791014227006621227975253119045376919949163607868154585163644430705659739731179644060063548894256417023597898139039908683559965242255807541666140756959838681650026877211385724886731819629930742441276614337541489186051694352351928131556195276096108961370770066036836532256614269929766616486503092976547146593293687873378323083671325769646280578943080154479716875924961183915802993900856190173659438213469254364630218831109696876854110367225461143682686785147077956512537301328220383084630574233952582192938303027824400144950154537586147389108508610011229808812096039018512703138847459859613694276274396577816003954838583075943669201549688436569620980107536007091569383521226192761364612320213604374751110397041051392267569406222722320601232795276763672920194001826013521033695888909099471892487545135211235777406982525738730013230500063291942543303419173644745477126897466914580842027986589634475388904420125924538446805836803171424197072312169552635650005743715876089531669683971880529186642473648368258509034562355188547885897589079568296114937086362693354900505382215199701593298385344335782147414360188559044865124244344002383008914076445738505148211038737832787285151703278139846656821513952232811994482929864901166298982736342835883279871191154661176671825418641811965037677309278982341648547329736759581829986066025928714969917667130907286313895508540116854263950165705812080212090688433816359835380934066393784398033595719088241657530176748432505868241103483334927778562235112136411362709398356860927587304951286125639564096528139601245087440948767635922797230025293279047767040782178449307852888018443370939339961320427505133115214559899588719342094506591109410970751093072859655303298629894786162158739858369792116252350327219787640179363669758571648162024111765028263248302748053491097369632744325137338962729313635421748032696188800400129468136344641275331562376229987753675375568501694736543237894611616870194116711693342014873606013340444865318231057375076943295828679693710103372893628488019159967123195589323726147706824281023840581359600989049252939534100233581471485503445594039707181338169298887152935936638480170671783243189890751863869017714759580400859258490899668852897073244627906848165422251778665768676108718078349932107937576906146147740906277479588897274821344309579050939103626501700973189558444000712654946838293440764231374390895991293302399361427778235032244564951170645209961688933286173838139747804056734445394132538655904738647802227685583812188953546518937058908310711066448958677174484909404761824062935469590620294782707282594805989800459878609901777432410781291664006743219060231595900812139688865050932942041492453287634859276114725321573702203739702985524987971644667803699845293444893054199716087707678454057310303878102674235048114045179846068681698676391714441458041232913354701061439046524530895335776545382601266915846080991050785578241444978421523015625037732234116137262030769625831490474316736074381546081334929983246728430574746980055751499378583308999004409876553051802243315395437990173214808192761678079014308134153609548063868905970991785066058223387706092885149547372357942016439322614659947627729802903682447126947314041963674282321232195662651269433774478312909308300246037745041757118090282342416838907081519364436589733064246635998229617972200293770773339962400335217764306888710967380486278444448685826185769359407852426741224528362776878562519488687739162853140003189974532482973671126217711731170901429075464571430232829416108284041681506057751988833678599265963829188591450825331305549027293080264341117757514885076553715301932754719930415368137288844274365310767814592626262937565771135109109896947213053108916099023862344339510615284822520518781290285687849389102863642244945122638681833290748564207683776941079958628917626976166361121363442608089378444880372614326899267510659482650670321477723708625093042106224736466947367125062300657940522126782398928738360457566752484924557404450188797986177153646624542383211467682152157460041439211046823450713990560906543186798744587878740689347244139632885917873511431566006967014455119204514640774735099928801874825376628360561729001449447596242665165587003474352771588017729865963213781260315893117944791318538081541010031383298826135753387273849453126047928894858964380089315753073940348368341045349846210100060829371410250779665743311223597841227320696244354100723888771049965874546207458597164518230077040609696878897102072586532968993769038346727233448704947213737738626518631353949924630899866716352851555360613420188788279633658459661703788512324058682039077336259916259399973426380581900529513744725898646291373531624816353732760506565565043410864075504197188825995793519344758256567976293252906477464827181570503327513931642492598277288204698711832853423915996811608715161249328425934426489119782301448962555361384880417127919105497138806478792105723622407884891028786449425895105169387270541085835026312330961253846515546751547065019918074795252257075236881432763330345102377143148726029493752011564992950610687022445254849261882664400653546692301052795575545693988692696149346751304096913200979034315072626457975978402658847494343060092896837330161406632951724694378836428521210773744452776485790118062569316920206476742146887654765535731964768893075028419343226953985580457721166207135014448170927627196281233598860596547616738026981842640913181458916157728380155523942510633102890306212899231708328247676189390529858806585172061059524005400758796889624100215199734621901781175260953548770662342648816595185976307235010288778156939164158485309088383842617724277910034026839668182948643730369653422048819111214791156448266640405272405293708363936495180576193688678626406667634677100848615081883248691892151345736598441424836464781033302357682886173508864022453858318887778799134067312105561757088081281237986117203447404322880041073315970520458604312030828212319450159964590258379331124571944183284545868937725803969385817106830282027520280428065863515834872339056653722444895886150633897317618113943431670579987991783406823402069023370904617524625734879299566734604348379723303101326894276574370374026258964767315163688124978876247528854170332083635631269207261634004480325154408005913883806730138338113287986607765084348326658313171762798706038296814937376863269432110337299601593283816119352817314804156321791327674959909110602428957187912128640477963882223284217546031222527956392004618770555405532933854712870016701828290835899807278375046486468588023079176590168234094317308808670101584491797956977561575389194331133367575003598431857905784035936933155782635290303322345741688466582644120034077078050861129742062944029438691144683116868886913569788328072185598912619449490517404335357092453798486949708078248017529160776417803857227184009586510145579900438306028095364557955227147423690017256107263420299114906211266841311178227789864065010786420435191806883091259356321362411921245935061090632284654905747065855279364473797958596461147105123473255319662609745624004060103650331490279605052385230007746808908311324613960631296672775106819658192257515336945935268742279051470605201687994150773819901529401252855066156737886931610819325409878498930106915837846572644471476281083074104752947059000113868042256938651115987644767620214923651425788874768669895175295060691599842477689734804979305956515228007855013291101013473210122606476090125685935039474667473331634264731592103337760822165934067581914487261732296976296892588789507675743886765371593375975648142423743545966703648902001396789523040363724352679638510928804421828411453212644188262521350953979400764708552402182320696742915328597617477450813145142954831652749358542977077376653441423884456038769542161475216901662298560621661398029880999838321934470292650719753245262676127156091815061483107178824818565092933997360884996021244697261473022188313118525431742322964797343957255435161832792667897425416729468892919692301582332421451383808799259287503941786699083959029799897148196989791093433989819458987577595865829799775126083154669571742785747965787669401439506444503147404341372595740952276419243961401284789623370781250853479010168969303105732852162964651420200943749151305096193141014063367039449809534349896213279805910239361896183293656661684489775327060075942578622767153315246335063053807464343083145384958307185511223349924806118819007593232856151553270655120765312759547329333187517383543404743914838726691374353593979577763671351404004796208675953022100647544782093949278372756637000285589724590291825770226593328255750357993081600069280840253521092746346786768135238646847311754076106253941115021416343410457053314566134148693095331050927929990779566657460026867512125304197267464670446428553106497456379075622216667105377926725569756061498040659139044149993051241215470936013348648631766730370553949432948022186494133211327545629227533134095356152952811285000268497380401274446472391183757928600560905468557596058031920726714657898014663497275127444989785130158988669974095326844917358364392910644892033997557436197852107821748612348282621688776818876849882015336163804694246028852807126131380382494855092815149948783540133774378126883696957339240514954411488761471931639874993656070101863782375865713847930098607516699674416551018877869368847830243490475704588954389004928290353024731534599243613845621148872221761448572349665731756304232852064961997631766657056755198526831858974109504870244621209186733323147635327709687850079119804038330756955194855231624988136451832504894978707852190254357030452632472716622147796937873762414784901172599800507627555218973511718039273942468169185317067157201423140948021391167228116796099845868065721669039300735672135904986388359959775557149912170512699120947755091398379809565435282252346158405172740771410344557661589048541719494500600778358191860904189162202664834724399514609708735307260875015545118788083072071740998465122823573804186880351151536943236282970308112490716634872164843376526364476591145451734382398614766457702439244039818728935750083166015558966214221749736941827927840029272465679559602113100397401455560120731938767390893787162168244318255262163154308496817338480482469609180562434229722656189173653763690425072463307314268698910438889215598632565913948172296964618630821777950582199215078384454410908492672912301885791481360083581189165187571001440405920927019334779853161090350094823272583583713659654761469197354418517933441191309482238193672028905876173099664222885273025988777930593322803361464957493039880146414338119694967855005621823482516075604358047954971557565590006625731544152966623917636710107945667065462643278305375172006907001139621838835249402551094146989192053569083802440806763286063475747948813489996332581282907350175433882611850364500542834633364009388027699645346433105821280064696645451351784475994659722865539073422811982286554020005182406654537178351694966242394249071749771222832219388076075204635288910350157535404084759670514094170475628146588227030014414074396749573502393995406582507727195918110334603410105111600008920298069621206967911103103991728203402985358351766481379944757439942654170341592410857668059698195668872366245451416823890107206765254951493048911791606989748211049733446450067079548016815911336197989305126692671078529205926934490568853648020036792855263274381714338774308210369464308994313131485998551491713479071585426148724755581986255061691666132964711191085939578741593387866775994275226810083538614195257256051078463573356125168399398470187601340074950684722995792778747964810456829244067599520256127236459195528236067074709473624415421227526747978161904282172681431797628688068753226447489045419009974088617823758561300005099243222945390412420333772232219436007892934787325429402953897137189399266449149520616913973244148424280530187691476744311070127996152949502115347261443054425292638757017132570621438388245929046755423277348225129710552113278983637627308955911867123766065774437343392617245587571275174866862282589491990074517190960707113305034707187257171705739913523262469024424024078319607015674748237924197816567958298800024207046066544867895643087318295889447809712039150338199231790955539218653478409397281226185579335636622576959152777447125315818769033073465829798512995804750972554155159761907372994328844234271825049368109021055404345451664762519274752850047844767676387985085676662022396411929264153485568726620101115320811257195516513501404323700862168476971719126311305974570772336801041890948470284019945996603627508350591324978778034082245208567382453066148362836057730960175845500970072161610400060619320468986712743547420463248782597677187418181855718582384321109699434321848589770823983256620929253479633914236810343842161787200462825422689983930127325464854460387962566111563845745017796771076299009747404259584340034532782488808711910331357996277690117950365055673052317626665605113021230768010222633086350146838121298703841850116880334593429746489944598076163649009099770084673165350316354846113280278479245401247547565778480808204744165608199402667698568733264441109886107406616530720888609145962943568171692169153521419526938997942870509654602009503058550282283058592364644530817018017174113726885182540527235540901550541094491100058969342612581592448676338965450338252091425515083969497726759093184367198779688773228265444183961484189313578262927497889859243691946300823535563826635130958745088902854416381206987559462346187461841113889528163886536793603515606641128409313106693575726251860408945443819284117216390983003553543818764273549758763487909083138099424132886282772846618345186854124579581977040214540237492084149807422085444282144189546323331262967362809747973281518545906608198181673276326188606566572408054288026287711471096110082254626191766811343102189263185853924207879885785776533493062884545524563327890077239101849947562395867672534728958947930320095688456822037917869996653753850680785081494145297187902363259749380849954233909423346380672750723523809024230943318776144716670947873918885645104039804572202309719613126985144316637541401357904605614776108950757481481589522678432369126112692311000663518648791949961441838512766539743189678568078228104172034519994466517088436271768590191391580078082195700939601303067676484273035540364957546711795672692732118063673584340114835744324575176524150313698682124596203964050672204291070076932782546425435911716594254182138978010322974158545203497792199475931856418045225566364471239773537497722791472342565700657688915400263098050091753765398697099964660278988578211737066584677689785499882378268065065761365561109678930413227392909815240163243918129997938702688822708282685659710149483307662760211831008778325523549771600195863827329811997203207960273614232118267636520319907911693114451023840476139551150606442775143505317385772223315908431807728733970167382307444924511377290609900564108234053663665286959140328893827506203402982941279749373051151168210330342444135866972877140841626125019099056469948863964469870475690218437364489427052309291079639165924884698055947567876898379953785966425354668398199426214601727397364591752838150614022992931935079586876829604640652922274837235628888600018038074012048711189347120910692746072452082876934260499103094450067328805854083598626772265716410045935139538359018900280762704852589470246902348171629715364333697249875606678467114025587986205996846488683463287910016219932719132331253261531120682245523621481021157834718654047932716819822376100409708141206228427292053533085322040929559842234784316763905968543961265931324230882873073715275679455337464082304400349305262765115942358091003022487540244895185230735116597391573647525498682938313503865496870250001673691481544857208164075597537024248691520159273049526039400806303684815089839710092230035172422180452796672257540963540010343401654971560194817179210584445669770721542645983246138572848171406134158632020358605450337923613500100223361879351926379267238759888436795910915351500477963578271915023046582350362672815515726488821555758139664982677107364757816429283582424202991400053127270721251171204515212870080586300580298703172677061028861553113497587259460005876165688646400615748035051290223574520698897802757766722669797628158563510558507995224719736219202910453859687048211069451359194480736779178658537763923583783691120076365306667453789253431658601007249448989444746151972036249270688466459515488549282602077664030610613464327083242320770027342638175396223735992374194275267301856113274270574384746499551229363619728232833783298464073647287968150999485278628311296131176273198818126642361459626455921748534445009523065059915794559348043905904429989042159995595108917790543679951922782387007626170408810776261311819296277649560733706828268582016876965769924423210127165772057540188714623303991076232455628872968225162889427752987272476832804812172864652543604786339541246776473056199604968677088280093663675495850068167764500933677301882749704427068759249153291886877985845450176260856845192856170877242089060156069919503629752967619667522932078358967660732600819363694319916880250837291607462426047617904275949177942254422662695584145017085399713493880781669360349358272830789745426193489359244365361423098154498295377375049056394961233231951086647401258874155260990089831091641980804914264569596893965729102717347173754024984759221523754247967487408414313916935493497485259756341147989375674984346465551091084511840711619660237340220298896674961543506394311422455661279318591228012448994066983604208346877640088543239703411563453103578026120695841807198928413775576861663395077207162476103797806543835030805222010693689696626243335467558209224386996522011865705260008743201562015538453386713334013037119602882392351121124180847290997747933761403702918169594169264666184759256162013189481638594979310618635162313194272272146667341452338500001519296177962056637819537170739033760955477282509426642016020334442925126846833980807538045851078485081780430247014699604838465770201773387097915006639387177947705954025475424911806652900415361181224713223256606060001158313491008604043021390261032850988625545276691454142009786000845524797790895198212744779586769800268624345492627714928614475841099307732130032502848196733341994807065453707540581273518818966884465027134859958594706339299664771287967909044787212640394742336906131147272156032463515574408538152693813390851815103316692823567097616677749957498256174024605719792678114139412065482429171210718222583989071063985145759062284395578029200861618411496148701329458844120044486542510942549463541442446132424357916706855577321130454380055535155645546414689058521684099568560177082363334563259073994551626039437800772386572800419677546817503928336010992927451505684313840857078909077028957110184705004772287133122292622922062655520303154514697967690331551594111325219685530872067840790267528685385802445698454198566028312612585130844847600655308098239402720076153178782366562975763975856709530707440933534501445236204362856511799730942237412923806933922468819949850977762263446878977534623225852138350772461397433413961023652526552691526890169722177612890106933485962756641266910086856404670547669245322797612294099789613060204271282223239424491769614292488538210463166731768760030181513126572612389813090716057174165477819765016780617467069032864958454597107306743782530522254423113510399811358420019502727684468205369067625632836269474966659890584050984901915175887750881297905422079108797656352206847974443773041688824620388046027678366790293611805088496179803104904591772491172350133033053399371302096080652440226725377524042182153568758423595070813771242940965589239268449292456835961003513623442725345975724187532624587231487269158729091909169220429817969388212275303206209710380943257472692250541313112927437791644806040556145356966282956751687174430317099229485952904242364234419023166600378904074534179071802727305324096554984255159905914933642735763364997239460156750315856628945424680516020694882231106714596655815279657785331699776543338025563261561652727001231683631105619281558450675140315068352228705007294312686401144131067732724528494908519039643944657377083755186360803609352392424821114820473895935339293747762234793716669165529623992445948234586180596276228623988252975382821678027156675238498956994940625631437192970115354712733253715040871036636070737355034794246965720178378255443773554072213838705482087451253795161616929880438676332187690485142124985845576338392984817482751873954246473158830329096345957922948039006167287195540227432826359515036239776203864172949372796136608603188638781458697447483745272677866817297838361942011916969326634470115619040004236651506134374014537712499248274095506752866004641349182444658796496471930333961771762024653598691951888070540802404487368162009045633189563626442875038630535891587687664119788378468534770398099288068120317936243923538820642313814292510025270787231413440635952152619641356648005067573051331923990213724557474103289521742169830834913205265053464728091364494467878408014457013222336404749850317284699585579920551586163099125624937798790073853044140014565439658319763310748938791749158483011892237033545156437384709544709106335107076196089922007678964486158037124713437719067083103669962932794927353860919982707085433065635641338326685039464039528404055110436928922623250296947173502590375286050765918244587302776652842162907180872561166774017419420955704914422990310956907293662931699010627960896741638566034571011986227938764088533046134699815694352002597555569173709987081720503380311971992409311856544916311712373417394051304607721704369973823229785234854329629098590134189827182516370020136981926692764938353467587891094217706870613997565090527162135091680371400901456895263697585363049911895784072226079366272260375280019155993966484099669712588343249946792981820020178490044757766189751223679365719360861283910840217923461788852480624273080288180613376407593549561047988038399569582336729710755064274550293286575654814784799306114775125950634757505616975696856426078621460167568674938242445199884019014705940936485506517696721503570630525129912323901997971028193812798201483170789550236327869355844535234003376155490953029528006822487965588018430457704950659969076747507471426885211026863342069271912525495336974357706010442827830387439578134671152397805872777420244608898218147765556103200709854614508074496016129889686748340224851540041257988814367408418578675330594552782345734796858255425994032096827148808237385142565932474016917529068991520100843149793345657444738466350094515861622964423734688910401984262667123249857063464780262005286601332217587551432580041548681059013078634659550590980795270394932046342688167351424835508308901218997167586771796217512716555423449760567262477735314887448483016276995910710641038085663711201744681629062583089358756740699656181620600580612570806377662884982597870895339786906347994302655627389034103687892038601069148151837402942475031951500834092466539296401467766906707571080384835120652215786227369047991777684276789135539255935031559401395084979893659826618646349228136152902130695084992140326386610709169149548990200071719472000256750172869853450519859117011910503912477377183245323513527189977076717025254542567068772136977104836280703615524788555039397426429070454122952012301325473192117199430123263613634653633585531439137908714683064866693025203332346724259923394855480210289451133049295482325831811747994690612124832842344072589507964858749262250533849215428609796528869680456066703631844154184356275925124424435993620191317000548283053126951854568870929030931882952309856874984517465095173172433500444376112829950304124028445350383608437192045080465670242070910507245636262116549379537618680766822000757746656983508550700597649697270926793840330258898305464933648115978850902281800096829107829689414437834304974489520644294525821554090717406581727261261323798167575427605361429721237308919333415042490892487491558548153722424809661380007166929879138810599984750095502756969040999261131317483985094470877163245606646445763337940741148194450176956439948039279478073009491462407149506673194263903956820650216133625304689744346365638015627784949052509759847423573983875179190961773304325013850131309809354145721480297577461281251969711410259871256753408328444023065931469557158220181352666025581767283315218305984542496718106294151280521608594865831721894176782239396371427386010527374949379921853054068255991751617082258307270222550726715940468427423928729542673879355288646793737884557920572108116574565635873423760330462742526727404311658133147612137539944734745604992852366577306253096341203471459277505465071824823303659182254636287362257156456663127727029997259721068492990886435047612981853208387480548300957330165388283502963026329856827756078065245434858910398392844981463099482393373791342540091332299887103784116369157036258402924785969513381423461269805709925066388084998553502161396214430463467501328214031519972155780694906885222863203320290252681348958429253899476224598170998874011354791457263172020921772348064118797801376282552190077799800031695018193253781892070175081936950655714363323222148667666831458151784157725265931657619810509259708744830886277799052294821444711826134408438607082252446943098814949073752912547859929367698315244962139100174543858799832200262417972215297470290320540499055445551571479292692457833572676632343399561509917527296034638349814907237719253821774735450895444554973173467102685710746799528296342019340743307503820117783650510504605882693216578893381163062781163146209641613422151517617439700709019165409625286602005515229786258208506980431667627564795334087952382156619763658554420365078130029306265253521658269476032510479997582286660704195761722735037405438025714308784443700486754335078594580620746918051175107610889832781514304904738898857127741135289160113286613173487565833054129713766035865236481057669240592827502634999653849172897128608649099598635428487992826184966963062979622582223432133891401159777146807092779188331952209236299066285153539927421656398841762967178163166563776845863105397829527286924815749549277371029748799187488086114941389084758416114952633302221410824881846883990673894105174414813007442618512796946320390432667749873578687840245334788443570703357030293455221836312377744877362227019066648524447158013016119669840944612845528526200363331206941319923229486977712006773069565609358052436051188194512252207380394983443237832403756019469307158166358073397271008635113044816291259552372402305427271050964191009214245443050117958571250669521737528278829386736465349242893288460129841995229183388920140720129358796967823118314269892078756029683056645073222661653209705426070140097169878057497937644963271733593826470986435837054368737660752503337196829552611572754247185231281270315270317975471577569494484602764196232907553642510904964182599664221995842121138336880196689517244419855384628247353504951559110805204649853751930428913899899910167458169069920258666588972245740584045481467837705926088211641457487718320128034933326195267697578578131830658552784331059851395910759471529302360486287121776858769965725202383538512606433232186559157642215961834215043363838755984646865765298619451128440738706056748428389685568020956142541200152860837964312682644765946018065521598924271918730690544412190485169259441167653230731790252123210779147225173322041278436260356224120537783170433253815015132033383719072020123068715630259886698443706570159146374779101090410238628092871706165004152705163487246719609142928837814875595023968209473998147055922966708202437704917463880321664463974007540442636319189342755237747465231458971734536337119407131619784855071076736456109321455524730230502482952786440961848098754203039934404514800640335344252932961293200632726770168736175377395214519600523622261327050194738765018424164761340733655204354298673374481813309127577928096699860747766761272976877975775447509267056947045478764430366022187827553047527832568457569860344115826581215471507718882192720697691491102911134610486039412190636460389729869959867925205910017728456019128499924689175385484694787623933944484344960103355565653954757594241510692688884090336139353332553617345833596427132321402518366333036252129281184899088381230763259118273406255745103809594330598315036110390878444242895184682252360020774402402989977489698347680795822716314982368635905217296077227395609052301094819537704299218698924559798018047460427805580546023258758541143210439567694090846621651768247748329931997102477628837203154691181626614725743310306873831314162498104425126222112456167773894970824639751539170979966574134121138024943324714018910225202649245968550816546919352700833204390763032486551979918761431356874920527326601530091367272082845660392654106338170821314970897211664812350836252899303275364902166161306810049135230523619391060257631253738810889591986836632608436903373956636362595420957113673447119137429281180737792895673997736460206781617777641805028714063198981475991392455522365151444670023764930193816391382901410187048528038643868421473676662103760130632748334006807591633778653932232807978936357662980707143881415962471570373822087664133604049252691621120133230489577861222982602281315053421289584383020018165667273652177599583101495992930616096175073529432437823925267700489465651086781665204871709376451892857697652648676424283479925761715590931891041234996702054799699551815509552536737056872089180519805879551549938491888126266439476708118836186193980567530819303458321030276308270069069178865309131525274123014324176962081586674062443002949407163227255078898437902955343052402052776602920895898086101334168075239182205684088366987806886527037422492607857148114921227033046435586677161588871785287444488885649467930449751647679731341904058585747309139586538052034863439837903063302991345677507032924890489513543749454080207792718312603736029423158912570227344931339452871407663307523992562070157419882539491845078267615466377743182294689687317694068647759358686881957276834921429803055551859357774765755845111553708998915125907625830505207588337871884669333607236069879311684631927680623439474488035579565795621264530121187142798616940307630870091388945639310992001684984482821654702371778610224780052378187769741285124629104855554788306738265340322768569680433240995334969020500363819049707161450115013330342876325571465860575882385179799364199150459174027348950724665365555565255104007221139070576864073549415354541646414255952881129895551910838155910978807853302294407848641987533801931787587598870736061515297979995737013601158788244100326774315688788908122390765361550425188871162048960464475492351359435184888364751188967859962594347753029534623136280179446745809032970382209238915251105290248017507293909695654411847535708032420681868536735041639564935864876166921761018325622673221798743142521103401455356259500922673820661875188831917233246393897932641388047823822117553669083060842921519858780934128784760762211217433473146907313472842413135467052756117292352791543878971802673361025083482022912523879659974532747164016810192099847129328420714476469375133643604468292116334602536131979064224910138862528125564614179234240083675245432966631272388150340706055167674153094188883306110466149236128860488954040239355750033881738525741542238597228722648569369154482663767361628853396307335578331062691563974282638418301729973214142682962569434130070913091196580976090189659085702182286381633176634785419353757589687994626408011907624831198795595964113511627289491159007723996341800469498688904278984207566610277557203676464626664216871068169464041093135483216227492770524569744257809750724324120523943684433882253843398752342479558750358997794851073895840243030911503913349655974497604474656012514417995782792898612063261949793324542509379897634679207025020070674484946905230157050587937859290702911800580818747927694522882493059626510384692380397203179891657122536221273058185041981345170820295415717830339942438238584240339083652311137093290486114858597529044199089197990109213472787323036886248045189976383492062506796693588430458649936367662311163773950856581251239158458138908695883670306357072110096192148138012183398064108023892694703166727972519391686352131524410784998482558821388527005505243056562495553842060511046838133778420416519846810615134129159191815476139813643524662817738859108279539144698431185331000442668409620920745122395491044806044486678653296878737956622366204396684638664390352461177652809233602714898988954286208876494264242266234519270857030007847331615888308064463484449141275670888686974464453815652303203959580422464165058941691686897679835568760089326203275589849590472089681626499332450646252973909354352346162294665934115713947776015372877864283422892216441718169755326145230649113246889917712520904333468122619362035275355149463953770498492619372000388110976590021601065234895090184722509386086353085772314942300973907896534328148769912468533623128947197565137848483655987525179276092456859998579853439762455771057650381700075934996347399556836384349196274937377341199833392999030093983224660543884211892339266597018437457967316172148983977904992003111946856355001703586780670372159266274426441983597448116903651607493350217972286973183700624028225243524680186162589998543922451475058956657556096043639105919373757062791793792783667808964642692121038499831696507592871107565428176372957443658457367850769941878852911697592415708787191998452379357555238736602164529518606566114586311940867696135055671678789310140813536178397552232151339309303989576265854149991200063124931259962819159649058626746592104615399805937220787515970786720391740425124357259408036267974395459205125745340999457596217280080983580687182778905825543499050608312299135637770426381647775766817141148438791751014594450332566906813936436057335346779943046161250020143437185259520837496058206260997654341911058368246757236951521484466726202967272873646044019055571979365577187560556325597310479400425843392802166215407117949704188092993039329805993047184633369536381533839635583606454802677679031288039731307210432983563906235682664275880628026492545688689223995396910817880338991705079337655825149095140069482693351017582337148833783930287948497335295845858497211967026257858118739015477529490881398515755256728501353517070074534204488344958495075117968115012582334223255505091870669383057549430557026841545818030783551644214472331824175084745427061687064458646249226421540955569906815859281684086194410093139977528774294358738091425901605467623732103815626835199266658693051797470913817765651361069701110523801362387632205800749501381062280398996557326394388812825118501833244726594486390173859338328691539198049553953400009224997666505273545872887622725825736104743422535962186430468202694947027228052722154000453676742092872068851978180764099453756207800649920740933932086936134662530038220643617746080410353661229326173043858851677772249837170336141744180040455078188827751062060879425794894016386478703561930870133205582866216993312249539761707654284003609597280093936719135762829158654679766895700790652276714614405092038415467973306385046280610374382269762712455359633164958779230670638037082300862439083294869506848408370572939154537225205456962920561355722035326906597476435964602041409519998404258032290717976158674350622950520570362642802866877259963051368697783223556020898293349628602498498394096180768566634913709965298666250717777971981579584856034018771090458880961043437284955461706730736992634692505353183247951526775593807254672619912191923378100559841710526832419732648776788198781125598262704122817899258803501073803408885720908062820300023218789300794346021284892450146028883754896089790112327136921528738423640268572665538625284752502449367483028911807315519036043638050253237776785148447935794991481591561770063168953383416317988209425303061789422841939506860418591469676465509354150275686238236533488368237445223617104552112302197574114225586104747759260963979943649446631977411969649630211871682109662342511317202227038465719693268056912059942020168925105965986827207699522323786761857353695669133393940461168521737458395313318694578868829750206921685688665467504109436853571705318907005078046109254217732295865075954220674714013598765598563593872772779835401102482836855617838745985763925585824630837066447082740951083869244862478426127934824653704815979131248758605590780242260311735806285585437394689040588538169616963153500428529567308262026345879486205923678056445255664025491191403843133193458731628279007404573920078615639734262504963970726526669400478313916139717479129090687519044275714743195619556821025338546645058820314492386752644628740290353284723336346680079784986596978923299960680266420300322725713421458214650787472953461440930185415301496727644497428628952976990249833257620287728268390903862183001665912042555496284376036158367451283162381205301146768899655420912125776089302634666851841334541482797814190389008176241142830524859252708663948898309451112779208307871107462496145050209820878351330887319880200685572164157808142851512560728037230833886731380709263634719801346669379968461685411392980030269080882554149854046044611380433270583018252371834451804470496513693874257673173072155305739372841358285191625281015529227166230664884714293556110758050382250242039492147247862979683788931977059654442119225564168212551732336491397780265705923541286414125676337784502825818107856196528843677094019649562063615705504778548595687097542607191362246798061436284228628237370049862901739135381223567450013703481570590028758879218123243139452529436077035085431087576232073760866304275442411541368447529502086511905954068870612950701938982002888791157845882992856005853866440316686171403005023359384410057877491420372020691638336082311365039575020511141214272245396814516373904927617211133562673457667156682778468316615206449208929786691359435252566893955653616416773333570471056407180637880886417008535217124764902059486381330595160874716150082503259687647463962492995156148285464248731528755693744546507115083187123659285852729079013395990615357443620889818615202680367139192307209626612513325193862112519968324873804638517657033762834885707247465389766858045465569357504590964763338343983581331944260407523232843591266097820544928841847830196581247056387425142480113892964322384793129653044782859535257099647690422886976778527592074409994675024619402173142256396103493096349945598691791511267635754441032483724298540488395269809170352760217436792810225790870639977472914749959814116390476084539287629618775105855565969266590344354087478706961299676929127800018368200897692589718683977554730619559374054112988919868454623309763757989155942726801355564530811449117033629534548119251467170316202070774717363159124316428630186421858272726207498717133866928223839638730354198891318366605965455304825152627632319744383585076527451354403637450826204895273770639937686720512413613355564007485758958084278260532320013278401790602140111494993949995852832269421390912857268707503624166037287845809217712312870749593577862514951642639576893146207079604730541576324975018197316308973814457983550004234546030490534163985230731020710307730097723568951459230619139146913439235139787304356358761400396088887651674226771926836698534149392512211550379137956985122515652528690105540441214914144303265191024552903461787117267916367516442547106154202913047638554802880740982534219420147466195350747681803070871082239827732805630299318437854285950931819558955993418795488357027046272214583740553272068681881133514823164929978063713775238862019898372021371753991073519743917963236530248568223579398365279044642192877100047326582377308028620659019149842874836918537215704935696873524725706622059066261183724227711914428461341104648758214443108842566755777536893536694069652334551884121049486716990899663201626361468131529096376332467611888388059693510351567264760069123971195150960594421261751282880798752818482596645682421031415648574804867241283934147256350008522530920933426242360299672928545233668748211876841042105679552638506169107711584948356491772878904703626449295888791325491580482975214099714902863883477368793904772665108641025711510408082820169048590750131414645174289268556549188771608353675766167861427241486173016508295206695662716268152925887984116382180625733486843549168056824869187613213023116633287379144393463513491139212576646863741024928404266408864339540935983677855344586083666804454853658694837217909065781112365570998953981203282957563677667233732338027820057773980930680943062426820585657884676338986114404310386728038536813936029282744152917262072154117641297768966901121537071639933124675640754621919356311064253870516337836155257629999005459597506059583734685471129343721715204309368734630761275800203812733627947501743365370617423318703444830456986287110362245835226406217818747649507728763202739871641850127529925807309079657980188195803547669748366987326423608943221617283147395247350557398982712029361602515875974088135047614566128999731578627778369994704055668834041694609492675073776551395125285254267720541194919142093756062261647636544298033813575683074969853266645020912356181700667240794608226511272333299273829519799999229274388501825745880310588632818501212567710283081015927989891388362724769824090244436429709707646738177301066499792395410333898376459570221141365353528046190863493436961269710452187975896705402421241854892562209185265839596785428059076088160176238050051065802521388268477740291049038000988230930758457196510321322705332820130226746580465141368870143330921299966274843033827800748002233455415374721502346584225384459967422817471165338609021819888877119215076927914639565490457925642746178570640334618821002847803486787815230561916146701117813420569381260223606585238756815322515885742274611013492217839927175629581228150183140348858090414742229129374434409610153381561273016893097698539035480025734825328152962114421082662351881345063145567238060355105852687315925203555470904285053699702439004828209119261711063267086680176764673391368216022536561576013194618301222524322443685731225483640797051377705600554816499642589509075904167038031776270987229982900118265998393946325299491623236811027442896956626099590201491943475170676882911215754267000123709050584371713514137866416012640178875243274359244996597459444281705056198459240880679651847082447278455709799769825376866038806130677708360764139065307613454046547424559398751493026623724237876591905429175385202112149288010682159966953076747319165812360876056399711171597095139611852709728857369374128415061071008206882342331137838500014284844239647928084455802142575921069915996961650668408913786665383111988698032033920491944183829803907581678912441655519265484348274611303011204994216542785502132796825010116656872674726128669501537807335421549464675567233003653955225052792105147855694176753026692328077980442269791133074422163368158436521737599747785291237174788910312659842753210810776319562376203938510614028694107188933309779260868174443389492975718424961503754981327447288638260513481491656342637225059434064957087209297517583366949300299943838746269767075139723019086901167435930656527449005325579844802930591367165026505804977621298890017978578320969550618678123076778136237636509700077521810210411214440285822298903327492118338700500236104052417398492115251631059167510342609068342229835791478572367396334964327607229299902539611115666133705507834335534070208565066161877857069805434330773505913578702925361416926951212498829179623741039715045095482009450429946816091758864528368002149829601577003953223835519177680887760788012625282402158560053464296761421839129036698007183347888968856545389190580260786435065728324433786616445856115058547423321881556601328725986180158113590461001872151397118823034306954719228911874775602204036173914877493222816584238362870874737452308618873253538129904462506335888693425833808012130275826074587925811334386244368296953929095532830794522559379582394998034451070515038126675826479392511807968350748753676000649963180610355456035825441414257279195898823741192230790197674052808978082934455282095559393068113853485549795298662044664382858202379746587951465432219136988710234574691532554273099274626691700537928138465054983148200532804374162050411295828789471749842031296910211224325837445212748518012515656228138469528656446501639026892766450454508369286916373251575773037002257329272820179451028013607867957361586252536594131352569793420403285397902034362505477894084752250906716209663630630701349880531961159136782660818102298121572891297205408319861222685374068693506842664777819690631318220981399417897106065455816265698935746022340025192379863192056598706784286364805480486078244478319804688893473438868213085080170132251403643120739561585748780096692922857051490429410835005415514313745757991565220716785621250243899624930122511903793548818069524141739250205342870064220961442040533216462919674580779851412920615184677862490340017988396870266117986271524314592995328208035089827184747781037967146465105634254194115267193141125327838973574093107445548717122973849249249705041595989759340933312682218580315036171610834466412315446314049900887254320126546205263744326767705126438290761182897438074385784197914857798583053264070172475535923329227045225134032024130058716971482930053260893788148493561624234876839832738334183563959722685037154743194744661786197294530516072521471541753074163171417312986517636975245561192731025644059226292684344096090196730248528644635486995653579553708748900749598159804865798429753656715911406636991438339860722207101261158079621065828021820664700270725112978221518146474425539808846295926689359976811569240519403534603758722218882625192327519627923023430596779763430001946086235391528226675983339912772166489386368588488672592614141183884312985435339269015558883023607070834650085098109843227072343157174828165700793514725116412766737998613493064151700418185883508753375998076892466990451851944566224938451135505005038589907980248768423537259700657150377529357686741586964808195539323185828406283559024376388501961123463863081934234798447537816571837114130421804402520967370177921794921117482596543224742929858336536937924350946738065835091747450366557353006454094484305432240800514203545252993463202173663090306406465202453822578034571320254258439342341243982504316616647343742605221838018503329019643947933273877110175931911990847005105765515271194242739960988359929309606959729991267363347033678956142856881873179572335122455498151358321638469529937378320321155809351223305381229060347645616532336207559858873842525473630458271999262889449162995718475490272639293980156770295211867141545893957353934633172643046465685093977565424663453337757928927182262691258032260665686011243923181858277223631276009963739375665361371311222434519196240299472960083405385108345558994306326588585950378165771459562387003942126144792267761277573218390088974770606458700361724722474358394682451203029910815674283180413073846779427215386687007183084089776634792994559070812899528458058937616232410384193791317499210732983980942485393607468454710527954341727756280028560161138262980169587472611760391938423354442855455007242800631218216716005464542790636013573680112787595474722764830009214744597482469523508982096720872183556668166289200828110670911752682171532754728107233088605842075518357590626643107996568141420482922786515326806650710972370741317657365072111358681440281239858246270805704718603624499629846549337396282820931275557055638415688135552254367024978793933859185278305454158234701514071915843420122997847304020054375419506173485826758989057816453052833862820295608266049878390867200518585477404563857905025320783318483584620808477345968134887355098862900295013457629775423222513721163158218244076055614455931755413134560698538638845857815984180294734696157798152873866572217581570135101591106806316127213842246638253023024727577584682727267290471014223373745730606831247992366138806238598466701024456591190051042893007550784055211922183413278198528431341064896814556539443031693277615868279850669339011837844154778278741853935271826497781589622620897975365380035843478638663979487425135338351836186867968401830891894800796346765919709298531039906674690454846522421253646029436650253856224243581204398196864592486377085487141772562635188605156632999449311575793795571995657271663134076151860614532779861490152768919848931997936111287647094587654544646685605243964036176550181959970781676512134482726387237068813164310892961219332629181924575150312586064040483791151693940301563745881728277978472923099085745149609645103998421344138998646813574495159277464341063552056203642135569580980278662286734271382063610442451636542210667375324439661497923232508333977558180854531535586225126948920047337354733693657819598972489475640105617609781178784160724279873737172027525003467809367386802378401890901312628959258287862590976340695049075335111071292724776048665104584590034869730434464661520176422951570428816933072021083283600908369105583881915136093410216647184869845275088995529337131859977514509465455050673676256809834451070377192424732792144184247681131272736583258199710430003285735364837812089562879902176539979631899962452490905612176003280420055998258001160132815431137874404183945399703838166190021765485287234355071556367019722975049460603355291630364740080813270156422640173012648893282946802033951710772464573193263482765130622695592469827142682382597036827668533495472952548958779429573341393314375787635127792672083480260232015913447637934975103642473955032546412600555443836933396571217749709092272859292132469593407212359690834598471695817342438038046447826889726039519540372500266569571618829474200026437851692104331097193108421467371811016526781642184688130265361847145321003129496736987757901488138356825467766908818722277266866542045026756904601099539789751643729100358970355707459848839081562388254474776477929842612307197077492714168171042172109779633228333860321634788162935714608838190354061362820613026762516751733933243683696571664290002068092223147193206457792482757962555832708383667827154589713996046665822107618731477670788870114063977557873316375109283172187315570455889816037897312440367070724548139191410609292955123552865349328343717781391855149378023288104837593989310178236318534744065318764342444607348093084041616451628837553672926156696930966058475503379315870225431668382903633214628142509954568816888936064311538855092223651116895633104122969980846013908191390089370092071582601369047564557474664883776552334887258915783742786878803677529621769130254346918688065307616876830574959782217404349555794265995944815787844752490967071611897721822114139686786101142877662873367932297230212298724578945650786320485907047358953337678610058305989367918677829834009396370487784056711635777113754286734986143695806752947267460551554352942262179909720599649327087143876419804018092143296571164785286955215481929755677694694459452471800095242216352723533288118007515666762464104342045016593608177997579458771133934561946256838056912425513757200396575536927260460039726469548313094708703835441585905673287354400108009054622344922420218021859454739293019763037707589723078572674138909471814948352721818351485672902520696247225140325879413295972335400090656151109208262119118387121693512297281083412518802078780079522212413731532259113779236515375397507561469356738317230853158807420901495084159971464516026881410513186186575585791078929983915440602566968672475458591877329068582613200872024700025996261026704293706369608591423187906379827066776595947462615427170191404760102264564526105250244474774764150884569700173290376883800987564953754833689524507817335765801506347682736909393545816586767985891510514199407072049156106549992725671012752556958317057658037151269772329618718688143035286393608283795940440554164912826976093834752415450259230355209124440445986631033211609380531433975582005593374210489369170192105964329227803067861116951185442720524654686097798264918092848142275970534441992426280291197763823693021511727189251076535475899464830432499781742616015722197726314612499126693866444235897165762546570452410354542833646597411740848622106900652772935677705985776617525286151496178213217969588586098647436941918654666262523039119356641329743882535967840971740836859219565384916445176257644158559669946132051721175821345536816124784171978920608205536138384541968531978791368994462695790893412719108994747656560030331951880974845612995731883040046051856830516115348730116538846187773905188458987698336831202141142646402631423766255653448014953704082298353611901857719241087163289526041245016350112085850607145644351926943851723371709250997102590458463002440325547770708724215773330141131834756028180485422958719651040114298589927473184313428605275278872241706146017009054113398784235304822067319369720187979516825687516234179599021107759656067989573085093067372076603611716213393228164574989326138497798459006873920916309123458904058864450331012944850852219853407534776279892840726234839716871747064965516836331454462629651398798731628922992367032704339834074214927239849677480823062693386710334743110397256715001520165872808236462765543552550232700571328379441804168249433761349644270289084200582764389879744047425036234554398586811452061707363481307817616482954541308268314564746058012171041083080215391910887391242012884107551931836865058911609144593974370966399667646396446903548977213871968350970811223000102392043530974156607267157114692254325382299038666164301397309366082947713412939181577544649017890938567635268000869889647726598315397997858582395107520313453880217290957325241097072131836657187235694833903367298024017510897331379377728903802107151961441906454637258953278355316417976552845064238886337934470286020990811074218894465225472502524649752039803703200526964496794326798272439624613177370682186012391799533600037468768796600562789245515408352014095002527840608747960994715756842135199458630450598656525707274048301214777170038389813674366277381968489755404762208985283908925967848322509416084231901424064877335127982486121816594524393195409647598362306598157069844257003173003673203793708943438008990815926722463682569390647462847652344833791361502644856102372471928229212726492027642425801161441492511090314750464899170909160542871924285311230187562993653984438669199848522284352557306518094028388256812133143847266009950730550728269228772903368531053614246933388948724171801861866595020497919758379722678470160555928160670634951797648490206368289430984733708441205387339808603439693181963722992709426212156552060695622168595496355288215804347002023558621332786569374320334584874339178639343525530472277868155723435275874457729545215694848963936557629555136490570566430138355156761666257678048036668318932219641644743172684648402979621845994944216269791678103129724489276153121905150733700331916838700709894515630541346120365964307138868491241682901614962462909760211791193964317099464512283990707591710054352264034317441647250675600968354446781755532840284221396645785659904376962809109455924380410358270569694657580352296575330174425555816687413033779248973084520689505952608739171916913938395949076539767296532738653413528916768057419106514478035442902614115546736415140249707260578178567350817603622947608713439091372401464884972960057142282365959440349943135137780203082238595272270868379670260269175881073210100158989232049565642032502884514946521112255312589175888026811348667728455616601962667830528623966882476593262809725380070198337106624113085490945862757156076728931804147006577894996712104654465444982399337481908006793232967431355832610988205056491487450872662714839003866049948009917627417518821365934025854614719469306048602978819709580910551243514329787123650159261658079778174848047731515631937371908682816094955019706406858557059922053487727314123796117355509748540272382295468481998311776550103934181884633101578280402446974550508024290839695241334442655546547622687965576289003337872004583918577110461669196711904879222490042782327069381502591110961058170704235506479496521489526185710385419638552502457614402303461949691267958819999405003609250989805213235076447752724822896782087826955109224084808931279868138325840650975907167460276446539012597754133196144509073652319868584966514520158123054262174044861953115866373500955047110326772599985682283988319988546585478315470966085109440610374611070737357040821713607283566921740471862416003985322092863820647660908791209916570808182107811729730347788794320659484342078425419583652698176621204157970875826381697132564462564032295391159081427323379640474156833821527861956991985990574545578838996581300255184485860383600447455376165027692415014547774381230953079928453006951988050175445633300597780293097864523135911445919315090951701193296645798708257464653112294771169701928974677088105458703243107592887152246064472228175158142888823406451745555579587671978103147598166163045510763690701921342133281086675669819443057137350253020826565435237636606939611197306088652073372597006824019699691710891032421561966976471796069955036550354409834230878806453831462385590771089654634477614307873082258744900025273672435115764893856397294710274333353982463011464726155317484675692949746849109519564031093696855260555562473813946046037048824704077605683449833495445301315169250115603710350279408216909345691577493440841020658055818204774877486999526628616351072164989496429143232343879610385398626666871263467373233149017301044232288879354717652028789769901971007101161078684320048908222704673740549842807802244061425059422937731497805479174045821644164505745754483417669903042648133223012273553292614599068771766680605936873629495793090720295979933821495234808559865790736085609767516882935562062368169559793084021276586051315382409096069256343102695087860450508419858803290160047230971089346580310699652338425026804276487343289536505496854111851167324035916065485983133952326808731841231589507303240201865724660470257810353469961535501549170072116690765367745482523611631951861277877842526321504288912834590089360752058514292766417023490470257351761184895250544055246145535668433012821872290969816249373677679103029083948880118140391081345152362219071567845590202163384726508916986704905138937484191973908615646684437827414253207732213385979314688570556969340225304829583190720872002699459729301579529005385737966740300203309179572938648412482201264702103886128462835596766575795714484479444623748238813747238388409087115735679790214205302902740977198123332857022337515905778432124918131200450641733721834438650208931107879472632265420088543892155262034512542870302602181716745982950963598385802231048165456565382369351888467820010938541122468689073578130018629292150129052596698816302822589713989637355864637899437372828834710875313531206935318551214393112080849316779936116653267624929164817515106655603160135907852754277360264742070407093039038875066324299012089747221619226365674385423147499302824103323746349777828566020112229482956913514783357426017749939684309604097096410477166172130806834093932641780598281000372715239256600924662531356620266392699671420299064548030914233117577710550594476994014355301655965051534816272626032270697498111821535795877510401318816501865363865232425605991967310530915559173313154309300295087663640941307339928359569499413613652957210845855735760072727269029941387730651845874167303660159634677661134888835958894650518091064798082136415603599809017656605454271714850945685925902655463792944214824726949579960408206656147833469400301570676075595653617974352379077292541091087171677969504792152197303237330047921942482569489573047091035559483778193100160837728597373245010160607064359181679123317239208911182589841760846768510231825429554784562653550023561127303367949732093508250938849838712845521681897509513691613970165257010059578987469777575148661630681174139873119638213583303527385526254357013932102237047763100121683243632079913500548863257846458702031084720304276658045158783134374183076502327458168556852034611386542633112809741495615424129330430263879536909007379595020813673660289888670614450016534779281392553358984192420391520016135066348431060144488934937876608757881937615541260348679138812140637033848466334719574640517122755585089265546939359283508653031329557736654382824361877992573189024448982289058704164646839898720363135589895838648887772032780923385563462306435597848697134496463696907189503239958833149348820869750962290231039236878629110648506224475229452662307044944841534569347149675009397886264519898037507011797283778750212904977096186343389363966430375679532125500180225198653346135281768520885628669570789060859192748525113136589004770006999388784252071443577445638450208431118264691850915160465614499459401937231565866093864489928910463153678361825678148988984189903383649862909042299623960791987433864593442095925251338670701146526249365061346363841610690757957909062756021402456598798686774449197453403990451805868063171542403841416754384643843587934876049006095469285185566411474074562581098320434486186296640266141468538810369828988306294958174096517266435110993632587717678301394800746098304726154648426739604497034557936710898669530132497965578299358549659594693196114618170820737650029728249104678925868022183335439743406943063737156874982637557210755583420763256639441729100829720891859026778310824836913371106863852088213953618749421703685251990444701950072911826237720768992246815084166444563253212535004182471530349131011138105358157536516448151381009373474599599500748596280019934101254691170257097740939311226921298132528662630284918976960497278849389429612788997733685014612061432639065010394940440659453805848943910137149861408857656723080504198537349360557887136856837136174837216281091426264953319978299687863695851664505535067183962869972915104507962814548907276202185140464542638650237666342895978911633828680633335142654887329683747434160729137220635476803532831392172968463433139558297499578394746740749412215844967783753683931543277473080676952690830266070276694070471765382581950573511963304159436151905134132183143001895762443762614210797608696299547966567284236037812165502019967047850457881519619850923543711319316371999183682691325775095793448273338126521960492917606231870214350319575288568894742861508379153721783708489664532222487094504733655888658435491133796375163151794932668164619277985427318321107225792506256972615132721846155873678398476298039078161693101639827225570768150023912355280451121222827958968548210207877884895448132527329234039219251728115940079771281869861415436367837821720208054389703329728972225460333541155560246686798158333960337244976269037999415362956804083055335763966450942861148897099170947444158357325700585046659356884435112347397065396901081824341175717609821873654254072934562290070961782841074397186111042815827055621109995685080612268158518911043342184842469192439797955613548747785492107448613115147035803066563857552788138321506853394708943558534856919021417533955543501172153981542320643908952057333911269340255323652212607969389436923912973142672391170032774864736192692776570869124286021256238921476052756637477999306358315960735819907239518616376894785110291169983656932556436772424976044362735821332687901357058026424221234924545368138234225257485808862235388296697851986068582570597052305212011107302360595640709034264202746080590782787688357247569868639437762728780424451833727389552168466299552152214248176828066183045007351808152266012770422952153302131541433925773843203954908349019592253241362389718517303783575605581614677794138592681550114451544302820246872090843820411185014121615608104533819193636994044419388677291518181843698645338625543513809198181703037696854589288278344296661214956426226914693795498011674660411697445634595079079982594437339983941955074958998288322174390774675596420199426518393922299875267076667534233699070574467822339480829323015938400764017275987405773700684820491055646994792025779256704247554084887629624337503994326023279284555651046067397763612619415004129008155897859110801361098729251637719421167595245978208043694396430154936206658372332172955976262492831287754292319344350203577439903922849662347084838675151294185737807947541089311596579629020422152636161189778204107172775697294093468760610676013538507897240470919992994591929500725006439898559149648848908742353803264791508837804793339244927809952163099376720224061773463734849319273219021471162514503297157836353328271302785411973104179557130502142728499680969769859436318994783198916854615185157991326957231618543028523765459675452783004142870343532411245727673052854631890225602242349761518540949070345117727692055531253039603154630680071609169495372453997174608557762315536627026869001140806150755440445595105345110535187467538918474142545229660930385109518156363578607689828237313459119004599361764343057284121257406828111770927073298850235728394191622770005473161419277462912445379489954098130524441734779998826755433083165199699781921705735847854930867711778540754283588441999960738505751716574642792669688671537203269908625270273749103223732871309141396464472608932349487977020825819259611199798660340630254088762380341950070943544192300123386631795862716658597465437374298754953121005396558166710594805651234849674010122012397184404435608788176401781591842755447344956199967612630233745158015844477111755341408638639855032050278091973064218343379719685355077748836268993979227726067990525144235048095687661860274839217498752176250542964060193155323327218503138757270240354537069578228550283867267792405506219870962836888737635274197038302400816821186263863501305132930102164634481410829674328067800573476866402032437461668959446955007398728497037922572228006165714848892373953770641893868978619197847385356915394842696805820366058382388930678746406082704903212485951194473047347112292572137793695058341191915144322904167668595521191332223799983108875789715107723905373578425910384015783967914166915856368631138077983075628270018056366907668382323754950830965366071382349375703724730360988505476181962539701246416758386299237869586194637129489244485483618554825774656992100119000953161343342528765640390830911183954960022272487716335923626398983302803699420068010080932465598628831284860084359395329181757375834270438063731561468363796274227778588619315825125521814883775563485588834931088649835949414791182864343014123797217313876927783603201731042462034296777504944544693643966590634986105797193888221475817825090708035591819604476751950980814538105395000163563544008850068350629650490820647229682300740202763392959511598706634271128808471897338975446968219144765065171028698718715852392741908080380155827508438267907122499992793898251720659593054135647092676630002693407877868064985728915696259850907012047110974284480828563824680705192214824498337157091893736119614171576058807586236009296261831328786572487845477052828813837893767893797183942520608041905297215922171902522954310400690715154941367402520043333438012337867945962449460433402133189770942346975171394102533084972798404937461600109498320841436053802855069159198824835739690650365746087006821209959785415903628708663079291041944346371143741787288162204598510409420639289619530003833621579218150775854376573722033511509529530081024052399244872007418282974294299005980823873829204264089167361029244006078751320018131789822521786374362422729245421874304619428339769235344446890662061911468524831145702424959967210842824277188063592874287725646741996654212624424699824575341438073818341158995294776858625595715196404237914323673442971562283654129906428366471116303798672081757959537818385948608121297561661428897493404734096162669281619415055824521296856451171573832215295554722711166841078080058698574132869989103880912329233678127107102345752961002862271345125605974324526593411261665502472145096532727468043070165308991914353849562538859129093490803288544370178845408257596063163439475331987597572125316461339138805487385837793737907581656470833693733284915609791452278204661806585882958420646768016129877725015709912899363936297422152953507753378662000274664882143220736734985420939481616711141333363210507202596680047675162675993253875352497264210799360667203948716132065718379704189448183607520561994312346287395423392626069415186161624548551617159848163321852395737975690900529988373312579196414499804866295324181222772885065041490457584203694059010825635944892788547531500376692335378770108400541192200418692360009398004763159542386008339376366858349013009635891188940792214438471433810382502289326993721874434674791532669876401887008728778395014877908655480593737485306388675507013445178750806127749580137613068264302178952204064920415954866357433799748416862894156393394349839305674946421514617208420024066731900258460469892957017481600339149996123640772830533020911243817313189737009257297397327239570481942026952018806986267052605236128835527051980872072510089178589649839293721521740344819573600364767750017031000119521421810939846337926326801973547396828855945085755357157004768072664326147073928790503652944215624258409427899748303512458685218691747354065084574574495973683567802036265097049905384241216356603720781252319013105623600802811465740682949169686730403636303701921518730311167618083627479823019880066928141825524621398111360846786863933347035095746515296389041138958818707492527220856942764009663837449490671258833095680410186805813979691174464612901800211273714848617384272572308655651057434486354312629282141180614421321696401516195836474518343942621968205296819922367173953930357924092800169494074055896796853458176063947599401555775177145295384047650265676743652817104420507289348109409652182943191649700992660603485084858411519523514351399795944873613686978800095634631448788387941847187017457310905389107416638417707387640655478306033131807002294045323727780855480385167729969716701512703103674324218026453343430380884179333378713060239485292589818913414687616103294073992244524496854076856230560570837352718430807654497184513443066966535333364283371190012568477541310713558789373000134942807942081838532178619062447891371317371920131546793207392871109822663518416403184241188821847643517288236634353055144955050848862842350265376783026720397562554189532717737184438306891604403890788674371227693111946835901895325419992863439648162572866222806999173042714385707043771599786692458713836255867536164930045640439769475742019480955036188015396210629165148457404605312125107009633758715027938555792000568193087514764502779453125160708424309695247613578186362387018375887599118778958834003228266443306700885672960153829831747852715882285916599010745711744791185995696044350020010194526301200836596390424183781808501096096141148561201819687756790297450339049638581263073446561173289068699326957456642013086040354137134904703751030545329913613225382076646931930606371000700726125301360651056490898273870675391593424202239339106836145229464299380247942542681580995562722019478375047521783997000562053621238917191561186047906294245966461438075309641101831905912506638867549766065544625824340010240949245431111468543416472097534904294570494133107753854437398572009201821150954149291941421812441376581347270678032102855421960924336494838039783944488926140087374986204664756223160527755642831417605211297490212875496925016039575135715788646522242078789607251527532646842580661898088401309256489049547374884744257449240123983388183472032869487422887073918177565140080329767691197796167682065970387216370799001358514670987800256967926079047039806074636548863632542575022525919762772808044835756889940461449116850250926096057230815733757100461617703283254439563028994335398350823117924427313375983319950160805043273916312260903521718113966290619626594115572085459580342058099416014123736355930420268284675436767864564337733769037108379494766926270284322069879344412333657475635469217447403959862051887888067244026560770605976569917616172498388567601133363083872902736436419859138739365560939560532307552208321600761899418579634541226579355043864978960951694172429128239135415780814197417790339755127832826849800497773904734624591925687662347082328550199710055938390225462272213543294548014705975556304967499618598030836217897752631177092403103036671152700925410021630595968044138436230542244447745721086930902586995473762686515342112944668014549877892998193446496683895764447475430032810399078053597070399583397926825024430876945455503398965632662373937650052908532246906112634908006956346206664996212198711223676480981227206861740243948982993617746162832350778591493328378720459833038572834139893664307376378344440904616599754270901508984221814619262950474033203071588989852137622363504220390085750992003709283572360650047380094082291506694099784856780375258191755648140271915410722368449750380588675914934642980928400585276359810819858604321155974113307249892093163032713044639563968046845010793383196824563848934004301434978896222908086162240462404626115232398527815637514161373940272542875073726971693455440831964749539557623504955710066471500614383939510255103406852870479676043711556650592530722932030988031193193511231920844446570209374987489681891210792597187735507505573942966316995811083198014831003506774347270392671421558826086748694958331377322318316084263632819501265672981365945264024627560915109256429514445700344849218232236194229664831542707778859193852043908708683455737258433096769759369189192492495538597527930829663333860622575420743725197058637315990157249301609441239313827511540064941673888996057476452920394795708718849136870599699451947117520636860092162907365930389855798916215023610729299686492754760169500411872019965637735226968020000011499782732130109468573685605159008604428289669882408796248339727780711140849247912565655190214787996269561917415638411635181071606132026783534196143865270774017315355378608125805844268162367040436065685055181020715791155570774084987968955682814779469415013766408735701890397443047306837481748078636018922289373497568269303059110822199126015464595613650191589897182831253204836385595903944727335149837351957932613788121747668597173424919984438428237548739711916221260244851181296532520781490176820192105245792174231201813937015278231017590266639627973631571031182856389374540548313577887691564516248729226092778256118309021784115127345436111662044070584046433832902731270510910924602164992164505805854392790484943271076075757852659035720887003579390863674447657811512221955819646065139718284972368863283004355021922435091715021351404858063550801182731992391387027153938710354887843620704595164552253834464821542444427626802758957176362423241801792227825977358988841241930145059812718489919768165237319586101795360777426985879834891151356673288401019161284821716829860922905890312400238281877309050602652982303268605508760675082603001263596614690413012359815691576631777737925225476992016712474240358905038550914073152343616737046698706214376993993717291779708719198986147546540770708335932016023774083420563282690353005842001081976663151251813050830040136011826124058484754968444560468568231522051037714273139111915036780621199014628957319292093175644175504387003463109694483710190228404080222055845838932415301015107450065672487692574263400642390588623315980365688258301620382293996000270482270180006800403388017447567112709521713294101304519863842138003162248805596656073381974899067351144872798535903620181145142863368812502775296970525576001637147223748842176649325266659664076030164478485873283101431361264428425294249132407918044850466426365674911300608072011799333094009447741949689415661489652113472399382393823519657534964055150201343255662532328153806735462232319709329699958231388528921875875626398230785287664815898904621834862418173925009955748752196551969925617931117588068883768873597028779140624080598353222685436048112056488217285009739764602545297396206782544171426014420413633739523904646454300752280542613452412855853318724862480477231509314181858227222044731742456173702540617416305503395223459089437777112437102592890739514158897019804969518770916547378914622170245397260031696990831723135524257194994472389819048848312303029511621872544822075337433763126622777291825396227016674601200562621287416253558403204814982281202742779000311565291091821947841333152153857337679416810379783390401355454198591953631407425260573661086933728886983155037575417844740374312046019310545897145857904402533797055396591419177256214139955821377331050297011798502851983008026270539008243314535092610819473357024792156624293689827689913346409386965528134951420707693426976860873733433111660507314856150757851316174763141416610081811405245726061100174758843631923139536798084052157599570396623029244357981022347853729862161268166583601990877072053336361889565933663806416062083221436874915407977590303022210222320656966134166335469372435381164598318329804398353202392032977913918320614521260479651379131609821920118353161483390097698796740024349201371516930337940356155865795822739620414484120480116029094243622790838955529333794251470199138987270103862038891849486784764003235258266307204984904981536625488729401195179270860445539199746061392410970702773249256039705264966875702773174864630780309408558222018098595541955393329241811013396162932428034616523193707032261334365062098637527576505716752444512310415307873408121832087591774889159701154544379082545071545091603685925813920219438114606406729639681273239240488468123219565901982920402661994653410335677285300389363597481869852336893079282737799259586353323768361237461637288342278168749390427780264431241100237246370452038920073027331782584974834049220881804021513796377228890545546818545885533885476169329834763085812761926343631438969041567029875960008652757754733045635555570045946727911240798280787029650176366513287686012661434604683605342093380733177356723232341540293114374015071824251300393465763069936763756218113513982340671055215337436088805879522827202456679796937736501684200345900576998832819905234495824183597199282904722026845482200213297635233129654912574108728032859024027210044443235697132657368777025139885264004016656093733431428876175263626112619486219693480637610603179998395199214879823963281319094642147234210667299545737600016324224986067237828479843376354848918467883639004691388244703228005928202273518103751359578667111076779693264521926903034804515199616859651259820704375714380254019921007294700751856384363063757251675153574041213162100947581588329217908809007832473277452827782792487919615204728921279741923133052976327723830163455900920874808789398350634287561929342005560343216524721915073152828915400641807975486925705795715963913931775663490907809633494747392342290506516800240148269753361355066735806654974366071035204521924794880941992217057130422725823017446179449881948180982692547792649559936977132211306546617452280494589805246871406389981831132770289842333299145383161031705645822158325959605363132476056109962518110311736468277104008937435548992720866199860962654576061435284766339007187104659601005711272465048000562319177859106196717633705609775141473511485437142953892984844367987923316453294369175426054534130967178634413376218586660900384791464707225078807631371016945986645765428288873788866999429013430737282143220943366072623036572084824407134757639922221275517591824691815494665536171512017785696333920386165756467511782000000204033895891509970468735760040648672375704882010165677589616189714413798530966564538287155169437362150911922747740488316280524128666388064313530720122542108820173390428419463263124033611270660650043582152321361680968703027495673525257624564305797015235759930673725202001271050203998781197577158112091339380063553737005973511026027238328511123495417747578602245370841906410995450936322535089545943152715332511691291841576879670099786593912079758299155955944272920981936904452727306886224895037541941620782183938919934671288161007244477983540527095636390174734090162740096877193848647255530338345452384051164174756484895637648595712693138894990578498695631554433075893642673503012720942920475756019174901680470983754759630430976400192503735850404504267002124502404910786150173540838961719049186299210284777169282587558126035821150465550916850334584793750520362061264327724923840205682903847164424210069290012278313036770284135363483593133328950630687594255467432140743815833604978124044926387077477873240760088504920677720726549476828921109869505544673808738438263045898289644458308388734029203619968814785915935131501924076939270152665001177341565046304248646346782772308870518165534219100242514885028300673496185644250205640970763749266304783971861526254541420664350192187903036182047117810112008827152450746470164385302642253921405766074745744928068873725183078848438426720106228522495356539421247183938980077009448349183242711555713753476536791461506397536680802328247984174305929222597645442320670086347818478354061734104138539807078969534640394000523044000899179763822284062969822194196044680100270496203159772151267599202807217243166093516912405543815459762173368975288568694948425698254760455287535146064893723361618384336137286933114720412293429927303980076067583679966458994212307377716775841964163532126118023484054549273957670061201348864037893177988168488887279797558440163956410385769158891384861417137833599066091111047908454535640607311478447855698950461968895282084324905581062088986171138229268821430906122120548151089114205312216847936762580924580218062851323409010892169320388321706913091206150157357086085504466940170834612393036663250544167396101586609895248634256095690073098338558984880284467462174192739257316624633440709563436508121792452316149111645958284303822192591457024552379063763987777567241875515238881398222860161627054912780968197520240545366820332816442753159764154051170502442425800713826737664081146254779868996050946161049431380236633532608516444595503875423685295668807690505906914028331927248272795181324248478292352945824181835302509098038861617112423211275960310750519578161458989107826212655256159911927230841130228249764146618764235910700493745913722198905147677847060130709771010155186742669422731772296350678075679231771655937463487279104092407157285426595301863784346224748618666331817374965739729610218962694253320233768600965040460908905727011248037495802567257176255766922944113413837194323748876673795236075641691691022295587421573804748571551337545912104063198066480248127631608610421751179457615006124275802754174404760022082239458604117170876558375706538931341294765115356533241978622034465760556399009129801353551817236987229633908241800106469965930838267422190307978313061372249277405811553543827883343717773320585213458092458862841486166907886577602250967679485541541686511710299328378822673870593741957871832155996565936938088528937194956965102992478023192850432711576047972188650155028288113394901400760143247435811898643930333021575946845026642642189015542260463324187476121269096758154100898009471720181076047960135321369945303194273736040434969647917246856843821697775606412424794477068557345182490638975074433762830019028105606610691974580520926514713286158385684196718522395370321194026938033471605209831824139613717216614774932480581841535098395463238369784599719495863785562631173634529898134526308000436908519001653365024180692213367152455273703764655577530418003479656662596797812861318951243153113767456101049337389888464883783959550199309001323786623239713248165630224038312650969834288383249701280336769512277377110641764539199805750388779777333221743382387672038433736546749638305727358088734959808749974723206153992864648606472212845566213983326859182148123915094592147061069919593736926322129163941454719197706866782760578314163251619294582187745432320562947387099663218149381438290085614128508209801840149130638481322967237173950452152104516068815361158786689693826366318863196832000097852065299894216189461487888399856057948690901092014432463175220004465930741671829075721395792749065870045489095252067641832433486541860608656501217566674556631363427199538004715179671417055845239620649758496624224719003421500158231027055162691823462605137886564872317987542285463745776431023640892688129318722513499754891420746415638718759151753302759460659361639034608622649497772344882581687962955834354209804130441852537923232113951759113408895970388999753823810001152109491573352986176003731667178368053856824157066633830222729125766843207908380916289895045738275386884308744112406386157523724201847934672708973767263611897212501524367770850312200835949441285088911785865038958861662106692342560153630307769684561448373573603218429117230178376383332728266977237340791733652917560877194023444636590912477777362925516983775466656559539232936171311648842825988904611730598647034156422030108737072838782083150813736552514049862334075147655857563049522060281540012452576856565969491066280924108707319061980926284053292102706523847974751529599349463644454790669297991088710300021571074414102933823201431469584362041140437607400316071723872266737978207835001256942595088333172532208772564390138983395944676224990615586162270501981147864344439542082822624561817907460926353012352914806335622098850874655924212452935677674382559603929098309881589749689514290927650249859247716726763145321956380256110827678973434856385488380778808504176695457263473448527922844946010459493893479900461488499181783080783090390787072607086897468222480061340772614409478664896842369694773399355833401996307969906361297134312070597841599125810949802504267866879581058303742532559170693152864728887748082596427704236134077687461963977926162838870491610626161105328438937346465003874381084534850699578807680983818144114049429054227877138894940303386691244124652320346264882607867695338131724529830185646317074631588150923992279733882595777834772322635399084244995051645512273030786162276013192482034733373946308160216231281702266279371900469793131680161061332366915083441890461377928041039329752364683978487772023142641438296898774322129343408713317039222306895144319036941448549598614258906412728139954575375492429384721964423725918608079490988700278797144923799740756452543375685417147244362580899677420756200583979392888466548820726451001255867964483690643153209192273065739169652477381120650314510720412076058802709254115321362856736751748092710333510772034347893907765579839391733601234106130896760809451238893147491374731486428363972217229744543549105564819539688313688831388137127212079005631529847395580368670079876255859920103312471302915437952688462822622923136004237279079011569452562554624608673541378471085717674626677766399400181228652861339783300659899135971685387977902598732228153310019335208354490927968563247972673430281014945046391863598448824538672289789096943791270993169305496676372945393790136712481394328355818768665231712787003190196233986262037493760651371595357848537688078380958754418872869062436143390905901672155119962073496244348717334680053834947322100868132502076349932762619207717074118746600959483846102290491484989553404396580376623933738511981157775239135061242466474826804095166778709900804160119353136975516728010958542891203633918127223376167425927933051542621193707439162135802354269361889461845938130173851549081408754752009463797788978112404294915214034801665402158231936997704329056809818552358406486180817722094247012710953282591208405976781837192212019795810592833055258469503889411659235469750381837920062481852099787854789483409916960604947589381774477743272400357719371215841757997943281377167754177535995204833248736718138385500180378518767610227355326632623486647425392393949681088804515907733843179820201645429192453298989579024237323474385572052410109089858356095538021522270775312851845378391858717939669803782705976248541772011624143964756951025112420997884956079399221505422247730604302021548183145357854281186192850339253410309983896912044341886674662573061229022506815850957757494746013249884044021475660040612802569340447965911350201698392485447936464219000780992365516437548083731156104246874995912410301078626042670092528291943921826112021789699044774053031014331860045318514265720518161376453779879249681241456545076647762550054544279743350894918762764214136893754578485603095280802934579352276893995866652285303474531864182524373888774762630670482282420000574289174472721799669606394509964756993966532192704845572037961162286764564430590607919284721008959689825450082657624142623381979505084321114528535197353194657996948981337748224877444569281289984621080243450138721763677098409585263422958150630361442929421539708390800457175638421184017494643886885570100340676344560311014949306159977406093453538419879797392612281108541825445122810938769438201961382293175540025802270953694079271562847808352778702884572181378823011140460125011704437007090331050258029937154552356483804388376202451091636132271285745222351308203158451912436678753811781804694873093931418789390018708723379069344198442716872588232726344147770972405833078161133351906801827649077500485067663424165975411021887525031411278462679513256365590455768016124521901588022300447002215982589473750622485715253074618528993466315634535339839216224401677953833501854709801868078151760990512010010403688163987656417660068952586038196061606213396416356822992315998739474745313868323480113865705175262698280055943657620189454371149942140589950431865155654980329588891575960409726184017468428796584051095429877359212861615568519839229638249717589704566458207688415141494018896099285011117065308029252540364721013271547726294642222207508060242875484738499722253836153786568082421432095408099748470122566814068775490066220811192940998057325649423717769615432349636778498255989910694346073332933058108886256012365735652489305722508177535620183304967629583745723063626902818696422292297102629575418826725748302583103443070472872722342076456088354784759436910268538751734023860840788403810162140494248169356828786486454865616796689773081639616168221421439883307563608428291383224869221036877586608536152567186835245001331180733247220466993065282286260860308290040735073158989161859499400784966258995299512889650559033461522112323041798582840650330106994536927723196345691067572043179246703676572193986064487091536241704511668106170678716102130825925803535949695465519934280954624421352829813957742872508517200122645137814823882615480293808700629632629469427311114299772156436039674415373868293721457550887847809162604045903009659430379484136925473956969649133999488712353387943071346997080142314414014252915661647440515042206178651518092160984314005713874920281196311906053216900508068291042506958125984647128004237988592360076794511086115830641424441807631539984474253561489258474523832959810178269202544135542519481997380995507747797316890093592429584704240284074955044770616650000990331536611495478756697722679941916797297077678443303376178881756291565938453821738330129289792559185834156613583252153544520968900004788953808262072051274620866656182709268832676222531603292177312638201860778812748709282862252236449151946035341462383054819265802195132309953777885745631142098802117988664108232164604277090175378325797077501836143617665325289383988715093414855961530269741267207921914680932420117022666070690112965650488999795327403207498829559277180236391431328491060407646797036988589158161374845951030648574861878866918918541860590681776248371417663772820665376424445609299956907936618816528219929842890071743067466315989410852419104726437562317247992390463740302949029149029217143064056345095503583265101191263738501096699715764040275572245661693663625713202504882987635524570661391743468226240495389696341672760297677574534957001255246280793648606517287670076961914182144155018568522812772256235533304645868225704632396687815874330465332526041844688892680513219252814193098960592679706704395090066022002751130835262610759504178446155073435825157694497614775901359186039352000537009456918629836223221230312505552836662494770106839798357581370242933089275741904127666575739407393858598531064322275609543883555174315809730399885244045491105982956523994372771679534669317423138850785571615398147267308517529130087646606493729418539999935130498284646428624711503485427152378538156711222757303309307002804837311907824521337272881683153636025041601623362150195593018934687488777982499248234224926920126776137801952974242773122015787576578078185326534270494891584419744833079233104397885375824688900763975425531448392982600367847989798213537164380823810221903889507680594486251154722626145146860988378333351435326023483978885433283008146042071621815881316597391686368669124049569280446752086837267439268483644154356348905134011053810705532193492618306998239996750362108683660226564251760136430682604820268463601766168654504673767213035966144970470207765440339202272781050900820790136124409653834670506643704949005096493735181989940390497156574637851030477912939247201316371784224715749207449402676880795245533079390632152443568854725502205931385882029268042432748994234793131826392412005505288364915517510144856310564111684846801994933675586813596070414664046029401338579806032262778291709726314947900129856916687245409280879768006013792812135702468791978052781706341550561794917762291090135579078543258112057879805232691672807299869209803161465282990304208927692926750630129628334948892153519917199521502474212576235500276507643727813590361052795026318095921436223038474001950728121384013806969905342900544684509509190660080269076264110227045300215141260500094960477097126205576697250988110231468384271967117860229418458875329556240841182478678990197665952378093034856753028083886182003898386893211058212281619172327893492937517359669776383170505571893799057600005342588355304460445743844430045212761061984101442383186078797192756932784050649497227963413963150099836840556716760961174545854143200232758824855949762119546753787603124462316092128857046245961668531210656836916731594099708030065935616069546251661412671485094961532944372430788303854500320380268715056333979516525217162412155073238671180240303343974629123923889898656476009556264025610747333623203263515855797922753771157513215330941689489074736340276413091618886819588696301871986581480487870749856577029380708627052634438278828862009954317525128687298105128593691726014315625157048753041996788021292521535542113864337250849952623880886290802444296573357184939539877717300409528576588668158846999355494961096799106136528553284072051788969001285888583837982354274559543576404426501597145885502254549275808462088377749346694713236861855524000240102901952581434501888390205327036320807761876133940415360773539375922143538487174909621022825066015421851881200467132248435755210632751543913842426793191661569005619227269552188915246344976623997383852652233427042702393544714251682694616404064281908313442330657714802689801636592117674993142550317268973065865602275449682020126260389312952300778131139972417995006734794719646769454908155755399393382499029543294405210561245105811977688883173018104505238657692667713482437653714416128874696440867023691301741763433656151383158867564816526355633447725902481433635605905185721783804375076956950335132032738455706753091690202368522888648867440599521857412213236609790661017366448788139978483201127315405695267481904491987951694643132244097306644091513607329085058537360788299905582399660786969901031747226056272488003487630367198051933414305573732805817380442152280089136337527160939790596057510634491786875829128677471318566753533013170421944218065728951889275395408956224432635065286496133510026852545333874114167237636928126549128124806497996594634994430594475308209969086913584664759190492969091583513617712837683748245390598586870803601046574188332287844202739627847961478116252322992224445332923215889269740274895485618455450884771538701271655347904710685813712196920573069306159248583224382099533235159086065266249758972809905168048220746727000272474415606878896411441048977471307223429086552971933821984181639871643447629170851731533067158413646841283382870147487564008794216329093623460113815137801425981097788767930438503724295443481355330371558395134799361030693933895519470515048954815938968874638464767189294818225238407438751530623029486339826192252716583072637945212420409397155393538477592872018731623187272640765391906160439003214615770531536234811202037331023714692130230408540586752721683865680868479797765994496206230040579803177771206102102314495666939191144508423049752725256254135884130547560345066094702603747455422556237432109147505029228337069323100090980600160164357429634634606167362700423036393645273506917329569541258631113045755472409512065784023285452761302355159089510864706275166390066437816494957129205688508453646275020067449994510537860083658717172759867577628043652383523507903110917155984405794633284923674202094167188413856457736432415704490202913195582973068719419678583542296866210447040300612681398292281062007786095066187503773997345666273179358242055832813837829260576766382437358903699639386398027312774203542647749087510973818323056794630937592831632684872140749007864747298641548267513465606575745222989738816133094588437596838650812792464049924556802652979265981351970251023506599317125458697087302896480373295191393510646064023099575763338863514735350424125509151193724002655066110056266446358533445082760581750088379785839624819712516105405685468030945397498474734000006451015329255445370082152158659856081138399633419058266700824689044756761459000159058125565550126506457266851285110588773448833439177041165666892953405761362568330979228317784775171330187906969446819320565201242804339437319391976107182884891648352325095551798137554250174566379713920444078980011137492451718045790703135688595392695435671749169910913654663657014284023046471430957263249421631852025638641378871833515577049380431156980372234771620644161938052882447817097312673029519360401297519859674502475451182883622448383393293644671794934342477848740690256815929456995273292863327032844057708540567784567070618424706333677073985166806938641422310630184650929437368150829526289176955234438014877114874459363855647645273020296899659146577650520006346440022940213717095030346665344351812316476700842090308317182988204851952445392155056751667503155457377834745305852269378812223550887416886893946522734621727974559538597800583838286823009892679525116676038482404475844957866146094409948933757626828795887326396282906384877025657028882461061315097075938404609716752437997334452490787687484588834181593528072180888989092283794043897228407531916089535243922557944541499975400390598206592904270181469826181395735072155932528963154974732657781944711383623969590141098850801357720186048490838892042065588349531636270414623001254894171192475219875095962232496231788941554430227033984550527906775531116847994539701456473934566186251279891216370358261653883122312674534632979356147286400980817689394477546671362113581107681700859056257820877443037165243700044387806310090857200048783119172430987809408330553676290410520384461684583714920907574342223124214097208999853315681854923897188991672571414444022075697453407003565963477166568118163875891921575091072689817770940895572990260272679410997894790181289704940906412391385682831899231655933752392743787217555489581015329221328171233774691572752207326174838559558619696400975674308044144960012391114520143179950266130246556759375329200934397059588322377272624477822613763766716275303463252825459014594572960127235218979829377216075062324999713604532748422705181238544173324009851997694040140432019282634614684758945138378486147119402000322054755276130965823772239617927734652149454516595457482109554671538895640416204680163601427066912889689342658125675282644841367499921182860951779010770039233629885035606857418286803758423216558470453822723180735562340121801872216475231977182672167825849678834718703656112346381664190963679931913862578324914622675078042255737973855271078809967634797383063797828696376647080687000321614126456244234190482840009639809137894244275591550498170625806459426199638861483755079223114544711389556582365974776639396594717629857642209860267051285464544366755685893333301565612186066999309564367924167997370234632305621825235483313119053188525109453501002092538334088162616197634921759685728746445792970348334631169556631419174745327688477554096303839178523177784237309557729606660675321262327112696418048534233638282772249222813167597298462389606579279322838274974359907838138793495710736616871015639318894849866701676317635593335815495340233286427444113077497838133547904024078546914376194281985812520271754028943382117764816959906778164105403861180963871210354341115866940445500446068369908678519011203674200761251257059813181646895948445025803072370029667633436357516046881355515648355821809621104513735604430885577821605919011442421380249731410765550795864585702594604624073105759010694781087949027786609830451604772789796172532634964291377096010972252923715944980672640557799635997972602731267926880408735144335478625833666240940185853744015311947096605824605699272808691185015893846979643448188954479120481510255376551186620086292163472988912048993545451918394416004129419898694675844164216421574149962974093535343903014597757086565541549614768357635418919211498534949771282260442949640842623974646298412188301759444989558354499682839744619058494793745237086489301347904091559861604579683369923255241862604356820422061636610384374635611350802279298644288341759603941456186503927539201992834200297722193824520560151175362001886104058963966385087811294153460157882192255358800249962063771812581863625405064167159676126304467172407503415360246497960631597932297197524776964988928102717839986844588345923594982425702069656482100978664774239323433227871440610479128698977085173665773147766584763451219815614951582874395730724259259552626679356554724424481070833045554196075410963740246156164519508307880210601108939127742834675182190052320493333092370707556984060111035490307233929657006350332858458442733112670073911267776530419916170858075301047130375925321947246797689952519634125927047004637749336467660984722871024454258078919182702006625374275772540585729050538949350917649893176950031931895784507486840390697161790978535171520879716446979630680524215545247491225252945740487246302126464471682742059914480105707206263821234800347309210277933458297637818924096027477750384197473136470659449677795117722506521821273533122647872155341235268190914480163153703227262141196247098134429915764032484478202947080076274272107944910531972285628099681807456614529439978911418518588118275209577222119592413453021252104198451115583807855664901414622142271332724910534098778703282048113240916309734853784404776380576264844126850002443560459241220721947165974626629524768991354343684881650693755239891129230608610265979413062592349564134340579629251481262123876686159669877758317287526275870205012383201902826482069345071753366959350568338622905266808400588216073262088309938823433629974075916580680516468806561546803320964376306076674016355521680917052217837300028289404511282292357084615010197357284907429642177666566315971416226854173832363560134147005000119401982873081375402270825461351876909439997352673112038409169628891958717560716935234862213619546696162307749394479795696722260404509533868187654934876329641862991148927719138519478019057628998941187497581820548680034940668386139715082864330443949375820891667054605323578613309089621747839556684107675449616441641501656403321925337112140256316304552788659369812792897181757825398484523557258915733317963563458356427274418341667920522008679125025369541409811840397396794509088419034606646568728185674507800228329127710515368709652169155876325152535243171639204024172835013286039838945398539693324153429475679425117631328556498594150903353697657753844354292512181496766869489822410784689221403448464493950556133836939184840289648040739809552186110858150538732653190179570092049417416406297981275616439077986048487613129853858123576525236132935668403684673634333880434751808160034438924410090959136365523791605907468260932614252012352584882587075858986507687813726601680123977374878430370337051533682896850527831670395036705743023187041183620009216849138085022925486387930474936125647332720934330636851104218190655035069092434801379743926920712551555010285282548229394090341700025062143456618825766579924873857437732343568374914993695106489429377489343222908934342035715516975049342506862857227706590071742169308042014301904000419556206420447088648642489921028532395820613708562281570916041979263844210140218203859953176943404782731858983251673320705461886119730045505907943630373930252446399348806664875808500697693516231052886535138690107848345289639181949063262588416460736116372352660645907738136918502090868849393784093554909478935134180756640648711605615368529761246628299356742184616143322682419646751453109344115850629723331896426190384126498184872525108972293614543756616779805833963961829775213886067827961625097703090455996181009441092856731600792242937259232199047300004759643014719908569869433888562688445023536057925894379065685047449990195669025478403615306747986049114725629489627994231007404308431094946239117904354958860887531338219737570182665457074380877944895430935626622043875711457913363563118510706923691214224514014379530248792696922869763539852012706555936660514479269953926334263555743310483311860956025670456634277165282052236214650919270850662502353367570311678818318316322157880656416553259898011401771062019929637160006015658490385931414790214779642629906687113977784690044969967126258995382503784884163614252786601231921634097611120565859192304565239813002357340058498563618440843694093449224645087943840797639399182312303779910444856692508725258787598647159958616233466379369904620035390184049441276665448816300638059391154119498544504544602177363772097908828829443222261886275600955823269916636476690310265098654967988144403311670180034469517694202240943862287401172583242863742121302373883067930784509632071120652236172104256743525220656697499494424352512144994927943869136860752758325728815978672674240573486991572850388579513623700700684852428223237564617306304867164799438383188402455764199501451397033808088443315747420082873518030712511285251992541124768517088957032130018227877826741874209584021492777681016740050055037785220971721032803949127277442602961432064225666553624687920961904625195023799644282118535297705755750747506033874082194897898092549516877607448566933927346587489105828892800916578707936515616849071499551668251444063753452315569453215435518822047174600236730246515142587693674692155205697085008626887090814508499056795535081279469875925725156099439630949093946828839852505909449717739717060582947857010499165627156813812051348773434402211409636724218755931019180885900740572443243610361169502389615921661124712211449499318613719805903904342388969050384498255818883982162918087996681109519120768928053660534673858282545820577363836613682895177689589519477904577905785596299414107661192635877116691079815773572182729387635476056261824667225474937620437884111475417026568128764457594218436793257848352508083325350342581839195637499322763866749025790825938261259129062991373428266295487005831333108982488848973203495223931806016431623303252732547819619178988223038050839532375730442157177952514856009790002518820558900702543646227435453532630008524632288146594081324321097225188651792723915727654824188267418641866541424650858120977808484852433375634835587050570459147987538027268790474756506233029717158737552686607822495284265176960855346900902388449592856311284456303670972739383603796308826545657276175407832771386825972647621739846780337201891886924576105754898096041542636041248444218156788412616212656407530980753706154093718355370471263492992016277210707983912904157134095557557681168003974615356059555974883510834719439396567763217217176377126148308005691613938181315251500412144220995363262759933438673628285393898453630468427543264941862462764269252300994261614652285586549309778443091386454106515209692041135465668290672374329485244881779451548447857739221224408683452724268626860110981502833982724343508267326878225824324456108753894837860506290839171789529390855632197278394983100669129686391206147887707021947909148717621412336155592960874398314966960097078994804868971940774964460990935184049320547761521354834018909902623822739906503457566868364783810081245250426550831831666361954219482584245420238613167086833881168767230375671864991398586353998472728563908833374092932422941049057222113222847432082797050236101634411711321775401562111828658238238502685330426702042147841260665059228964609099756295600062606098787347891345287769536280076564710930116250855068920453052298560151845298237718020468502396697473442678264125507566093552282053387871062412052464229731000782241163913763521321190325171358713292309736902711576440800710018588112147375511664585957144979972635584849001601127637840098761302156096356684670575859236036668742036789830134961032105109285452630842149885428908425691932418036435340030349944938561219901600216917193881537121251177761026235438177179278230165435762842282555993026437665762885179478125054101006694367453829002584449336188457865716410618221453906742551528571962031065088037074330375777974040008433996069072489710296498216999042061910351296353389955980212667066770664653267378777525907445533562071438703306948687824294183450515490997162513774935901205137185704527900242501022697135384303403958335021077861425660658299128589637307607925374502684894767041785945881395066530924076177719922375495156708228842782825912934553005435683551231931540290286494698569126077261317618330284125620571234355802105188798958788179072879800942979094083633087563633322015378866958614958207661465694974888518739541723321767137557227704787777509568384408413593753731725925171376663112925053263621504903206175651636333989365752858259659953265361812649484955342721333180850380231542587073229398254920065696570142125493888144694420467741194434800271332896407796574420517811548129910576949779449928869085732403904081977526743962468612027438670541442250410078616406182658439403010235159431310645694317069285570595246230656101581481119497575592914576405239085523933059119001781280480113292213574980426891000094954849130525194387924579005705768530387749387218913343532154894209630199562298192310174395228220310800734485914281734971363411142711378751217611016032174055931388293106480678501609070338576876235517759167828899526252346165529879882173773566240952295481679050803456413574515622780307996124678886560211328368220631063317715612436113524113620925543157909381198987661137168270219743895461138201426935346878471790638421762971461660380314988074532135840717926576593935028433884427938780563100425292176732215027445556208700213991234534404080125807760407892584839952961508097137843959140290576109657921584732440593105801704704561416223092414141913698759965451007411960639293558875645827143018989667919496308959454314266137177034635028795622830725938305312274565745759517142959833034389158682711142717965958412733112035567870974354865514995807247709532850442286608848843646559857731709147454497315432322355842345392761446053932058848239882305855909240411550125675558246943872768768988193422417111609522994639098006092636491692025267279698688634809923550038248538108920490159618887380787230830907406717784176203923695562010029793040778100764693524138776967910378426447651293118265561895946181999948742876815300505787113780826852078207510513028815491612243778867878232629764231370924811686271335163615828495247576785486067993425492214839317194638392858992938611017673076354823815345344040219355767313923835912151664789492966737009519782453820864252773255259702291874583092405350943080003354059148004906269083394513110810131183649562148563532623593842479991358897598147304129075233236717982537622254554430427925922054327739237511474062400312806275683370115605000184206270405091826485919806253583088344425864748597212153976401422308176683972712086230136774915208061387061293566869022786136965585023447392735851849465650372050770500610019807720523740480808633923484387969103097327461729408968287622478567549168370341222545911053228098702619713844285693498579447940175969179085784002501653976631838552043436028631155542807519565550348542355600748712410778139863899701008609788080794176687517233766179058417947069150428455769666207800832111091586284171565429345179697646999263345228402828422197737903250383777659866220266243550753955833837474920319739755212041791955558813053236151346549118121553259595968042603902384232783272334710258342720115075158382603793601236695490672151681959279284101919884264627719766472289042320951698038224755654713977362306262410386989086680847913571477707931068284032699177712195322959949433773398244333601706582456276235667056015178909574623536794504595440462951212476587961433384132481063706379260765137397873057250498794393300150082364190732949958474427883212368095733444980103467770322801106050132875389083691696600929905153924435864413626792689184547534739239226585197019242368099534943782641777095840373327846049944255951563148075699471624552943655539284295598476350650721288200337581910328327687728907820942342716262339854006907040541100038759008579305934535395040602027240551419913436954454913657390119828980929798312609092842846234019191518469913329044459180304703679250608144740405696612849597182246913890182114968586552137476519450143155037366001662289561289902033145840122466038585522053578912392859910847809372806341140472115253316475034306720938248127232786920883163084699818701443168544499485802896833990960895028972827586191612350259493162881303482404230139069467735695095024502586584313095784709521690710007544226842023597536773423043137831523352869521035465455499709849664346319986241774623474184199894551687452173292518278067577132938999870235273772019844256064687638876027429858407905818300630499710525659572507935103431115301084517944037490433452610677337410217897526377012664833000799931269213159420245887858092697929035055583762642043517413784165701991921464269975860734248552809281427836409148898264468182718070450963915667297209541524483092821722236679315268477232883545079166305517897014525198135941339381630149730920299079176463916112032540231443588900041578591886875022232585869983056694619970327071782760933334012404907519880616381056055578473955324179631353073020367201217232550557872929485784380275976860550015963698017335553381813293475193476086573975404876744128498092171843833912023664419406743398619292646944937420903192011775722296811305729199580929527603248109384685063859968000158481915321911982555081933933672340945073761015045835432092984865968525060784240781017091500902108377125519889348712219305314375435180536386660575688350583144401120446059444410880113668324389990517487347206222253647885464336108750752076021402703601467287739566631184067171046603757114507041012841239916069432213601510536361336558009929289678940417846603410941377619184182658457474995670625423235797142922150727929533415738068578530474384284847828710649524527223585290165187724664385910449906952080248165661306091424810620366518093323653641609412980526216091266758859979092071870377778488044472353327956789562903009582913219326983506236739197317651063524066344994645448605601071076815251382782246667960518584913390587772490714590115598237848805917241252441767653270644982855346044326381234026076173324737460163020679914578245574430839367108091723663498505331029845409245650468101172546379249543166640435935053904757424540441822062503298019189721435418779106828395865315540006691439691403437560028414278794730699926377950187068444615981431055486130404804482771600373587081453402348571611921479899904679815021292830057568212352254243216393176923762809197120790649111553048820862478620384316988497294637994247950510444956947907049839122912064226507911789087119987350741217421415075837885293664734952459431726988946195787917686860696319445960509720297571905642770494494063484837143940576382139120873938482424657724963401176996871110681601988825117997960074947663237570777215273487574680479296913501095990072211997384452550686788138401389857841202802413481484143907107771932709827162887579638211064248905837654322507248010106660108769170267636665400078197488693784279590773785476987666233169781715847585315607777195667824811217706428409414800227870109215110610541912823849425447250667326248866019604790580936276887280045626870033839873438699230202795388946163005966202971940302155161859017876815773359526946141368044070335399820426458312963751019699290326468866564810503880967003043404758352610035523236894488907230556941826346767848438922218174786221003981882775359963661316543812003657912917119558185124299061822791013375151858425381450743004248326656024314530874111392629175590997612002357462821628003730813535460725386667616469516383436258177916875201291553670439903688096593445060621491026986035203447333396499505141341052832573276913075032317018340142695934483323503441276571530932268208221689560091056447247108622397558700929073389078624370465192401462260079880800847453866478748626580943456783657919521532223778072362474380207338071185211337097571255337646858439743050990183614452808427964179065673433405902502021855643285453058400423432271992802733934921227231127038604849436369120140468713198504504033517689318476446724193748411937838564635852897760174188719270067093351902274282108509177089551857040597262350345764660597932761406256535114876979169917523206051422143554500510616257240641718421601688543532832684448408822553060198000113637751877404193418309499144949069032705519487133576808768043512897647299720381073778738658583292370156790253732859951083857585451506662683532352338661354987444701203044353219951755215163362747941685416651355890146174162941402449456283081489271270103497870041960246949625503978534756296051674593666295943009320964196443720398141317290874538132196860801250593887742028835137068543128162899710267826042354287878511269083178914957925261499539578528254558044631398484138674473522531471299542727374260976660952797194368105032771890023156040728192945759567421311151077044771042028320442944146246407336893152944271978061845572025718059274855268040856417237911166886517042878064092297332873029080096463444058111218719458873454167145207678029680551938666212245681839143143350127648210289335046547808390534414866259215640404770293544569155347574420491238598995708407328656423099445995730995399398269892558506709171135738650089162988168691440364191372440825396235149833897957946560006367046249457451806220111805759311692412392525398273928215346292614721577693094336832593019115690232861641535848292314323688406946295703159272982816562965548573660072597770582211023796677258923435249442524131497585559155097352097633991376574263190887237952645733679197582723408274362334253116877791892363309432341967557385980106910125481320850238973424851249779406824264201673870544009582442408351794281769074886950267308311239651824768128742861008237305762166317293260732518811821283270294416561779340045732155759937097656992365178881200206163093731713564995367844090222110205652431701168016632166298703709514322159163570473664898492402175322689954501798556139835455047293544233334847418332593951294713715249298590842475614788402802158151017784332515418942011924054933946147625380908078536506760550775065048012965606050053425086014625008868677602570685192003158088634736243860656706994139432107194171892235720886854764973984674523942802061616036193575791357597611812021841978033102913399354707437987003947225901439323344371414307431057606062624321295832533060536563073521605794880860426928531513942864260367265084984645007330676687762434976840084935020104492635977464323357296804103776539102491613080912142907086689159842285780641027465448085901928595668240361976316180865925839518610264854171471253123829113826078813856962510146574415225578465635424057066971721434412064655120235838255286589604398258214758889022536175668807161338878555374336139437793023133486810943589156767952625593358634811762039983290237217521155804091110912550897809544240671007660880642830983381054551761493079135245012008172650793216446745889613415849688529392186557062426611687362282297121184911398765791737031108515880260429978268989033509646018635402504231050248163728636262350127037697677178178622249917590605968537443348682928394278921712679706170837659932416794996554584435897180302313778513426359153376826077507868798597340843924658119410857343003625823027485731574407927314010996987454174872016408417388855495251447028868020617707111162615312911489785627190466154560206100667643592642448672965643356320969385410734911918615541696215066733504769853614498031111764644048852410716803389747763512303927991469345333259946850214185793003131422825085755986242450964870102204319166108256116680540181971931665351658084710583096398535775203503181283706982908244586135968141334591223906477190821366773015462322177712405578954346024398274870138088638628830066813927983320523750939408128211534399745816511560902239628092754382210011084937572133116794729211147357623881652955268704417007870284712437943070429791678996320448622929638981569791719300362430358604088231709884006171931201648748778683268813346969035850297870070237889195194054294596224819358426078173529194513905693131413256702175181461293920803855238605888784346630215672254771332090784046805592559964103545352705983364636986512448502836369555019383114508378191910825587002143592684693288712106588445567007265410699857552301055348826308747826211969882845525120313609340450116857092746352329299035502734731067856225775705328368459361237387728252847977788245350583227729073340044430419757810364598872615724160775450391173005038511077277171121146026077938276107537418909735527184587234142642111618921626955169215628399332136654762290574157237422610330620867452620147889499040318961902477238869008460107384769209989573170413273876637000064171626604011608932317040047927218601890307110923051121333860947244355082664586961068606796715200139455695907060817095369168727758633394337118975830518436369963418137971400874973978875479467590753366003615044097043199443411390154722100724290067306879255150978817361460552285781292549016557119071591808611877362684370937496990619807125623111301390082557528475422753881588351254684284778434350020923629711371342838255754503427908957127379115270564675702591887878115682819447279636457092964428989214496117759514957880720835676834287289432430858976526903055566193316622319885828333186983559381013053965859317741659328031946746723084212559281869974280045345895194756169381700150094893464611132917952224056633882251387698660174509046816632353563496745921572274105115215712478715560166190939977655065021127067881539288109961718334415341683005519046861561467562151711685596408863390093035234835492608750822344352944112099819306161746756093393554882970475877339501292916183787675044070305930127264552836421938369344404118783268908768108785874490699355439104945384391204648015678630584803095024984333789802410984541596347861108663104980404796676748562127733974759288077771335071764877974694004222675979386818479590977548957921128571399058247020888735918647304154327366865480950327650242860126619482688429015220501869804836229313900665357220909944562222051312053802508884248387009273170781235446043719375662998777237394845616086657666454625598866253148913578254887388359597954622614979603820533994497216248293603606507372905009403351423673229204351463986733136613462305698811931720532014371931547712014739701738276163906316038881114963161831527280557972569802521731032046059667055753166914268194371750737268147683793614203215061018353681408388129106346412911311828763778378611953057787817568581191992768858258260825128999516715462678333289568364256908890035374053426499584697491203506461227995908376245767020125659636504101839924251695152001315282878076781320305374608665961830170644040233379724064448889091825855387259461088593569028943613538303173517379342710766588359266319732828078991735589194442363851624608071055285729343914688954296185233922029423526928172442141180703137160681407472834609962909099044037247300236747927614905287570403043243989925308384786524524885559113098706403427379804143071536159723384965121351164446323231012954047942572915352363733343536310455479337028805085385184169610492079786814794181862345800070364745923942128016588476936658749293858307778831102830607165737202617636745352161598823907089053831991924172029223543909798923056519964961425920792959149919916757291758597475883658163072336032986852940694613706877770456998641032928245515129919302993717056038642733339580281676286068461451501480841844783710362798314038009808801249716441889831824974009253611366842665456656769492491970476854527063674737849002959419004168666709436913948113190047100909960643342953546154335865376527042178948455910430708871813536142029462528408735734448395350418201042083166336043253395480570371856130960122835818666216285830327736065352275890465341798083779901767987697844807157382136031696776021690529257273201389389246332585613870026477259289159393102257427850823978641542876084230856191935660644701677518836844782636842446824915408417822966211376454416070032585134279198933211340971269246565005146635367364562626173654113347950232790903052495228191693578624360141852779149453388603249232247075374051934118051428409437916065956126308539091808361751302457848151357674034341603656195623730819639434229636791134570479729820212329633941349520603769538630753154144112121334576299650808722112311496304572867615352016174814723960842409650956027457468332123689916575343977536429272254396062134398099912826236963127275733194749450396670130514675105892605651108129897343500161882646045311903429669628475433513467858707061071571558405865962911223552667399576449860130107781842774269768305800369001325998866924361837406124127383919036459482533480198605949001299757917496413152483733898783063022830301265194050745285124936708416671626538091343043355370423299129873053795363266812799262688540278009448965612384715896203799654143249655481687741306654608293272893818403481739363191336026977171135261539449779301628912192577555022305505417668737874658991831985859572587602146863790493018198091499828600750082479009431251542555029662087220841253990794753008502136896417125938397846091628885358245072827334884525998672696017628291669565147758031387458002504523250798477621488236000365734673920822564420074179893718958224256976045964928888323767145892968873371979948669271187913080250723118651473542778832002609857632363241975681280474785329933825678476469224961835095365685379980158097038308613785735402978125531213757882185950431568318422754440232283271490175002114518874823327068375543002920279800641600483573607596637601988783402476795451948158345476538139522018300150070582558809442275975489428567248589262481317063884389928954027605837603898519998666176216866384640787444605416397175046532920128104464532939833802166891414899305088628532737927577289701187736827567419262580619816459059611376867256471702977324933138917764341539416828917907927706045612006439272885527261112284619945757661470647444548094788194050556064541637879458891338306367945513770226512262763848889590042292147136109642099385907532637274041456495358531711996750024475404152604753296213746842223890186496083200216011146507922354471692925090748412154403533589097859978560562569450290433230988428698312443032920800513812466052632336850909908480252519280880346062428916930528315873427873077696519789207259221146355341733207486041713219823804164712626332984905336123301530196058282317548689174454578842662144135028434815163243928232979578931865943395111898254942329840827730049546894772402016944692004130281369706001485820233648577795940585050798047696519384455729557917730493636062872760651457937249861020348265820535549926281823740042074938211886415418948598103721712871797433152913959972261978017706758508440398502080101837483355474319259227585868393408384972666742904911462121642624498978114416498101245793306877821338867869583753898720423064539773823624747244260303691810060388844246012268852446323532751088864169007454998876415167324095832865646548242012642668617391535534612665531782131895663131101906950620803412571113242257146428779832753425174232031578226312314189023133681514909435540006811920665531673560966554363709821526920367392615512437773586077110986258455865473908556719298229617493456145133408761711667597257031966454199893743009923915618509530563890883724150169506758701360665584159806576269542519721352958387310171272064010145092104759985059721853174333082968621430567851783663282704494117210892055805951794171183597665178448456148957216310505222176694660783536808359783377963331598192374439866323972730907207576827755666113969875306408442166665876161467547948888182958304520731893407815141904478327008927182523954379898795177395518295224698518597919612418335850938039395993751298086373029810543133052252988653931991502544282326270081269696453739687379166423923666703077908805017400996603630762514917869080733883222314656599805233975294002970158997046394580735730845236939141685295734833864797875703050361012394780235926549516963707995654340186278437376402650969748793058235430833748243608110503498024393663490703413826668988025261304157095139883065764947213677187020042024693267755454587532953956004450837905596528443840782344159919080402123752172716881994479472677812875924231361602156011952546481377123427083095684458239511971636289393567204694568290053287692061990440942611450474015416243895903884347069906482576147117897445407730464542138079650363255432667672835078797395583991245894113428802263608860034930326226932766404767770951768223120102321050460838022731555179530574499276034985952404819368610529232384187444958724271471737362660820151812714485615030383029968350569912134509747891602067102637537721880942815799873838517754155010793404116481794398459989334658997909010135926712749557598102389977824724479897233770246143754721326275842517527925476329037860733510017456044649474804988929911169272178944944877807301958782082521184601497104172467473917266100834921969659191024249345415122023959124409451390226827042255422820896453060354186029210639788843510854463376357538150664616559396516398464382073296415661326980452070034076034687397963140674259834109257451418698329179558244635878280876015709338045421052304770471443045271797773228771866471418385259779411040378907118302836032907578896109571448413043852802074922388237113771960703752758993273081764425539382892555537940979241472962908226816446225901996696061807951153094751405855459736258757482063468409583510020349268063062649182221982518502244203034986995513525189078605266997301251113023641373704835609085481535496868583325970361616657421238641516814736512185572700113524771408859531002301780182210617180964513191267705926172794950292415663980570765237482319520700001115044119459216122842883731420660128709024244815719374791262212889619141193572163677223713208166342900523398055495834784613518473227846450650308079911766021584895341873195061889943692203705536233932214566592278366098158398011709639800273757504842665779905957052553777585722568906473439787670847538700540826233598290387755835282827247093825970437341908921096541733665100842921758615269831462312921328168234369495651261306513262434437822389868320168585667482257973516532665435290966157635786148121661439619970324298621136327214965428805776803366109187534952462915719494897786363179842100727046560168946071777774176746236031178468830019722602075277642359424284980691325103346406945761015310796185624593914051824125808047946476425911191959342753210579706067143435318696278684437427187488131415526555029137934091487934443597190766727844860941550847963878232549581536945650791106697962631089025011303979659983676271474264632993762068897782269997648605597078124427438374412296389964595349562120064695422223624015113150194448653863230470135119181330293945350414094860956516792572519727239133493508348215085682429932341417885499774500586125397224229079139242816364659841072176630852302793269002296835010818044840450054911722196973711424868917409983502878160592186251447551570707832620607646376702408972000637432601750624519713690139509977797051281755409740568593140817385792097847017468640447821359511567421941971668870572069597432489854345848940328797039956496234934996420127086138819136128095880717096306746519952955366066725402824555631622581780104679181083308148487000739991955769817428603656270718931107424887126680782397258940613467161047933306665227508039256998003836254133730205162276561328139823326179562033389072792048652944332423386220918905703694306407589716506767342952018754850249307158640629709930157597885643095990418402806232572027578380840110739552090256917593614470875351151140415580284599148587173059902870149406070693552927288999953923554401864754999931592742536753638277984879045526779742090934322704146407065881932304370405608004134519413709610095513161863587754915966819955668406716706811008705540953059106442272753524435894910049356610313261580895904886702922878443676917187114374549883472310125910769556150074460416501878634922229285302913066996056983659679551814425553718303991787721998170220473339581593223428903484277177108549875258064836861338928021454143778830709375919592062792890128041915350036037114103068349272279929762671683777570770994384257886910563134080188397132336558311444115874386677104291514795169769674159607858219273626133367638967824794323940094628534011847440108949173783916384011489216224346286760661642425892675955842811669933531658337265364050121918180393261913500257178564338770903607463974824294752114714766435198277535975472428841138618655008659754797732071654618303363735139307009888323861419234011386078882503621836204228176733753641622250328595616099665964828552673623121100170171821004057342656396832383442795678250284683416023839731257314477946414667023679467786260498398480049820700077616687295013385392771437420212828751213851422040613360485994405534998623474695336970076581224324368675628014133997118193866121177624946411381386917872499217673886773279534887852653532935373780432970488231851345434324819888682298959127665356414567116722540775879158147279293801666414622322545683088395201578696607350504333848381943724217723844755555361005560124156163175130288841709569795425493983278689300048661922954450642030111178500681416734423557164769188441766617537413413512659979217236667405024132947916102120841071837520204426362066451476251504787158880368176922319294396139479506809906206896543859593936794116693010068366004216498091020277594647699788226406119204401386712685316165390891629534815336886484179273698772215955737316824526284536472300803751031674467188420165224577467897371411563417789183499689949751049572891724230417261701599342230019889408634595776174601460887201881081498154969247629092486819257330013729282256065573086365111005695355957605847685154653940723478929367634080158939350822090009786749228919725738830001598457185917855078349019563676534562256372321437566509601262843143034935944883943522762631454438284774814244566695736934239542433343487201736545522390983938132236870615052909576714146111473085069835893403404044128022940218029480773281133450817596996729616781749440525347078734453298577240847287156967252529247081356124519442505328067373398624623065046693955217491986029629166803381318222127798652797889106994141594800660171801774461023797279287100008588905103560916892303339267162561456378905137580819718503876012166137677869554965417858717187277987589102825574658508669155801460818126472141000167498924877661448314790050036519451385675742214101461009502683646809963961543470422620755627868307712816713296920264438960352045032448080893405991398151918381760683780178088924347902594414116004007830436841988732389361301655646699199693550724579637158338238676648404403415942893133650617771739696846103547925124906793939360583262735559517198759259453142534492952313792442663185173662797390906323672787787846119280160461683259273080503585658342485351151812075969955816648695295872908281681702442560556525302987498909552399115692516879298713683292521268773756591118360893859631389654201066942345817717968344017580225021495631053782551939055096265372815299081836436595965272074895279287244152878752193443271948192414111181333020146070969949764644363724766167697422677553924593635086079467269183993189990636331802842524018293488469184084627947289924956123868588199358725347702362980478862739509291718639431867137432537061930980375914743098807276629715785286493822483876866356729839248411111773099392657226952447757218082318964764033365299008691295716205460902682292193292558192078604632436128225442016958032013656328710032565338643330248613381955418171335977114226134291565943473277669181107272188764386746271458039833515569074734830768636905185486286362183807188378374228638472063022835301226887698325625233011957176160551907581517813189972191023933364495560936609943847784933168091202976754369860216466316184672105024211668690841707244377167371433169282597666057207638401599001636666394909205562100015366481563539373115128964174487906763851469909775383821308356035631276120500868739871975644406151576397254442293121020631190499199461250136630469617052088929004362257594086879471420561718188403295693184638591630086424528699860819111028372268459189892689185718415663152150308239788021717632795285435988548677312616796675684327121998422457590675095644034424492123784931562636062725878814189657519670558481813077684821199032535575550304102940829510623734296853767404262922120177850622444693955097681477064032446123763332736989737301277339884138839509830029134602984532132159655594810584768027886346149198256138167427097641118352487818920301290626599541377237451306304520152782310907424564123399509428382704525423346007586987114994712066709308405444981614389155660355617833648005661264272296701118906315290232904957247662109113741830480628615532581103494200870930434292363587308861220181329508586167304862676072692362491544771913148828071242267690666463639093363808821994845003593640200085123182710538026378569571292003965486178572938976204206636195841922517348161776690449573325187822096107991184575367593159294676459232070137251431200914381526673221543078583486583169668485651439449562553312509160470643517635868427220620524182776637069972997205039514006403184845166595239146800154652608658010543294381176265299082288820551134362961723844322804624573586340617862811977660727764352344617763246716897315796709227500366671485611057519097870335105236967811466372879753252031730511429218549432539842511650236941781670883577543873508988648460915395355472905428321344487827045248061818870090196893052810271050595682112995069367402919331641543683121106598951426789792325190701152829164037095955906241791342722496212818273677037260145023721604784143101901439289237746174280496121442545100253435334772941825622469262999699563502653542590426609436508767026010369140528530143156313251302265994711660903180130671644896997816286308087077171913389308458084462834055972423587366501222748549846446000277431149896621741585168310774780435980403201615315894612761752627551646531576410060487783886602226173543270409034955040222352066471915548551597207998232516743313369299772302050359585239694796423506844413502340465967705143400545062142852975898372660246004229493969593114111804676475138241339905193775545930177863727443934439535723942645902893051689287568419645380392223266961380578035170799656988072762517261053305584276338944069402814984545782785991500320421237619148711529113223297111943694282678405344421904657326964500145380585427427277029292317233339309103191941040514757009048543967694210251833418785273692738863824350569323541194807337923233583402046646785889995240329317604420918338732489466095743564931153019682493010374174187948321233520114924347994305275442213959001914547191248542652173677072115113166095343261599472945197883733576981273888059138105642992309173010888850038697640897447574329016290351901703898953943668312034676750392779075275554867052632152754696244726965752977092437592727190515427646693473797335918962971384095964414479084029134857471278065071232455617081264443201535847738032711062747476006236519508298487306171612117926872543428721975519408396726341471092723378565081889630457718271776040024138971121712541319516175921111256414350888030489198592457859611698084662845722006339090108746741798113357326271767987253721943678432987699630023937036762338977799415230889783865015411937251087068447947812972065255209208825665506166856916858625661330659921149761746313290340272890884485561042939650594378205513676989113469478551524512352164750692621197192852490512479629883408121778283591808556638401604243340933224204995835436208548728152917570668526178067676527179388541327727735842445306379646752013867106203188241425099142924261373691427969599302674795036151776817361397982383020475535436163575275842205709656711500630021089267115929825706201453460180295824736291163711772604300099776613497020781181937958296995914567036366059187162105750588644407118933823408796285396006212365627030455820399396508602883772579530694441706187827205652311515023154486190206070759752410006126684177640927466756373828580815990039398866262635399703282143453150063037018817332246662081686583717663668751255444454976841207785289804251589073992933895263310216402994306903633396020480446435154317457860215444913912308448034152103357925830868865362571590908999860289171241218605674712371961755586797932068805146297006221607336147246088218898550898794273542649014470706650368477643880609484156389409515029545141381086602415534785251112713723981044434875072349445492358891848419606657482437540140297348527596557523498575541311372748172430758121615903050365304716819961484584252019761719933884990111698899346162643700611609629763845608976697932435635690939754429484440866503005855349285611566041049312093677627632296917584450819502349472107872275422816045340643780333434942874555629764348607617316273667472711473347539851767969954895155434771284035728004710541903584850311818439857120336739401373358314503753601716292243018288174389382987158241700795597349355053349368455015959295004705958487601851129876676016263722922000686217446324499004038237354757756326196698395130821920843545284451587384041058257918230760192009760515625555980701007600293705328577305730652163384316980474376731872013538213079675247541093695380617128190141195688383611954557154130755638507858842936383038146904809434466911239273481845905273561436124732084257872949257630985799933116855869690384760183633303421252732321665004214702853663610737392728685596789965309290753006572018887938919873415933336408989860990777094480164671871472572992446990958328727885717109940592790473683767775357303535342678340448406687989595291581694153185391898840916811867012998947998955860091569259059867085218114616382234937291782299715110450347293447745219883377644516678704451538701211033674321401296320856752267190726179844281206856722973918662147235621930496176549184115863758707678102125773631947910331396418168650703454098707988227142350882877666720857022251770544129944008690887475677552809074518661930092914953655993945241715429550955457872332216534838988813939440097865982167081544976522511300219037835732228598741374666185289086669875159481403048429568645499337432307501615943586534087419450041701792690277238735844025464584537143823319987208855239302272461562253690710819328767059498001163552942992633892993861035192029463409528197121421402189472774578211861911491328064248182942835926192790845810106716895383902988983726065351217248522553421015998893094252633576686563708279488508992354054367480558074708477603951962992858509419674121032529009275051972437954873775769474310593905556021839340228758476557805792490831135156763689178693624678684102984547150502078524963269238951198073106096515500061136614930287870155389901314433086658668668836701988867332338444774732321225357290877298101800809058017018524667946253287072756337394715062320256287823077330569282211868835164147278232166619732040506867010343219004206040077801177002413279393136020582954242131138198843830551114869084125800263384032627043591008215581984143875678179136439546267193983213694773265271397011145792400615529979321128815694277831626309487380533161252057244340925960687097739653462292790874994243093914717058673117724568620759582362859281279793287556893098176943797984731420994020449717101225519111167547453829673890025486097379264395536040302549677981344076802001445932628096923355269707243537073153943553030479488105286600808975003940783263449335738823568684068095410345760831389259302055671120479939846305403000906867623837900410700312586561378167920659590336430860520713661214496840103906311661195822277386916991043101822088587478671154665282963494239350356004956443092088551534481518312228012460475896835317878898209625284681183987520173670699427238263306911093276174491745607654437461123263988053255963598613645439805567049626754805748053638139649309664109872713633635761885913991832907155058777487793650692428861227195065563785933934841421909188309614253591761866023769488986515883197118304439161019331209715798495619781695227432707564581965365145001997677990826132473122426412189633845468606699343072281228975406223978867769883831900664740435016987408060787948208274196037753082239882248757915203412220091350787217232205886807811595266457306282220230106953365432287894892312999694201239297033570482046107993256641555580692992918869337641273560777486830397070763046807192303130992932688252600152297411466352396476056784388012567524746221645869050071282351027577506530589887518091671667640386873213029665772139753900896107906627889843580728581904421215970948963611372183536243170178643163937136017957175931807544648007691745259815526412248000750364909591782611136464200985950134809005808294465740667465500276168947270679812034567243810661996396424531003042591276768526730079230709393894346289667055002866245032725455970399213642736537044846825522166100952379735065179343357337480764922212708085804322232850083653248750984526965603035993389122919411395893626742742124814955328939611161238530851946120961265637209964396817344780982396124146552707760844466733189899804933577619450740541519376048825903912342141741621021541988416945273144468610346744573466028193656776915314365880547035466301519479303473728879305747455486332705138619164538533216162963854363180158252907361342220149966158969294874353904933535907003680346166852085515764099969184434796309076445213043895400375339361033822599062942989154860082656612956111259741268907296847341122968190459096066556377423312744249435288082203133025342215026318129291652480940452583455372150242148803424070791229471817923984503285377219573603022689297422723653676914733053388108307777966031825031503309809242134430774776316114661767380145515614974425702828327213439288248310800879281632179893671860954221779111877967509769882839377036212606715639825792515846786532112513773529879246516680833567502555784427831690970896098879876382522221203270980198699332763977644618620912258783537475504476514150469634825989158233734570458830630633433058211813012124177778590717297799165323687742771231343818987267372668100674226866873473729760508848872328322426449855836920247482489254898556780873463652579443884044221870194658846136394154844130187492363237349577340290024895405495206185034146095519879131395703613560813735409425701448577233971055443095377502861040913854994888873313943046243765362542250916227881291259468565066119874223985232887737495547213753425357527976366823549308905252490051090373524417308972243788350122301892543178435743900609469181982101699694710603809302984333728841964108030404165920655246166860075103929754698520121641178067771726843820342053786438347831095240420268562342133235502654517150115634400525775226689299820565478638877662270744666846298255979446458311079014010656307588038109134497318467570981494427081178731327003293703151925411380875366789914975754729359394168626213481384179527072761275139168056724362075827664438489579982422895490676433681610892348383279284010698447901199801846146998475881212232501212506443965747480055284380331243853057254195704165769678777923260593549982346598174156562023960926798345615055275423050600212378014068120767024090838514495221608628238339439090069694759977604208086084916110262642015899573743894344731122009026568003539389114510070553075757443485180391457042334474510840408592584497041521733127613552695882023327768382846438320442295854402238396361760571914615846086063417460055484518439688340764582110803030907042263883502249691670873778843209681629746358559063023862808958502020315085712744586421135448232723614765857616245192640369234960316087582037349287028997284770022076108513128090567133778508974033464538415964677929233822726771225836823184779289496132776420856378780832251624359057584875351524643584944363048540491685072507432489992292214976741851144535353528437650450546307674583830293860638033974082685492364261681860457320562289358085744125003002938611558515986728971523300423795435899266565854604422997506589059576283758863756940199155731572002167905841315104093121681238387064585086132113167066373398900799249441359453367758787450152034858571711752233465736182370275676803625400697768180366289789130741413448022326884764582262805652163284395554037951101521598681369988745199254300859843379893832537329569249622168577219309588580382122278369574731210710097377153276790629630567207890974649474176938026886766781763999694539249139995952660755037560735264728569465196421482082035119711945722987767789988705775761629242518678918554288664210519033045148424778288364078695535850641049258755322481436760175402533705135043604416774439134185782379540211666776504165787364059027318536803384642287448244005571435812870223698306756245119654874451293220199501682786633197234657227516124859921363879902023825313273079389963714356199607848251528665424058227051208220121348093307825967552041287271905143110209751433772663473793714228357958374387429714038334970268829385095522179122836916142466671755747509892519276486086546296521872708016321895083765559949128768827949372874713426198827331040565889850261041103283493592631332958864394451245430208598635364381232241537314657574140645220076777782643407874328294667284149996875754255341627533702127781372160562715571303523229309991436733829239780205390178645497490394342814843861691482550148388320194458828515065670248583404400394233011322901569392143851130946189048376873325443936547636904379975854981652448053174402577080866622263639754851660561092469654674474051524858527383787262544269823045150858279311895148660035472882190396427648333390019558897742831333235751138181999978085249009513923676645645136958838088841860204065506085428515417530012453744840559194765296715960204305985677798491869163266733117333479595585831938724262671131135846485384256245599283001084203089788136492133437871635845779323793748834440959911191142230522041079393958516903868288147596481092091408416260305895277936384499121543145985117132102127808936093753168267982995911358384290250168865980277826378688458039074065543814838969954259632210604269940232664704872968587933316345796661771536451365153474079044726239159929763738519421458339074093254227627624296002180243838864452768167705551566467087386200161264722325737087562104625289622789863269735778237140761361112842267637881835226330568263141162256552043483698891873085811949998341225875019791807974057981300231344105951328284579761421471959252045994737301193439896834906854975876357826121858319902733048360240285384582459655872552455883803264194548572094116540493151334581019897030852654987228112659828504917981794400240674892912841757258745883201657865285958760684221266393151067454617106843445626955780380749087960883386639143928270249647350929267602100965886555820312917859878212066820221412038108521037492315150750697314227448317981039457120791308574224482925617523003640780305792687784204642398994457290933355637543833656138688753555069864219737626783940240746271194869749083945196821127273340866275285329679059700570436720717361612269570395992773139830225342558234187180472930495826178398063573926843827721523354058393424581062394183574950154726795712689598294371693378088355193366434623572999505458479471796877909260572252128350834350737217524101272413558282092657997001252653911558568722267556307368046859566545300505802638403951927974670902407483026031935956289638617394395337357715721580333218064589393645967604530296507373218346232879872492173502124277044662686983391793656289933473846146560983504862690880326037968946342459347867445940295964351865151659513821828915424203864006460476613050438572291237541933036253016534811785721285859494054809278100118921301417523627637940030951364627005280423104991261709737298098542145067323334266949954653499520578280943170860690879827394387636567047746514864382192480016529593025610064111006166814591825114626872227782805839753352626429998464193568666093925637164592123699805533127655564312562120667878168129095278886212105569786091076591877328620653311582197622643843842838518431117760475779829482552960853977825074575350198558578061379860509897548920024816719272086527025769872835054856734708557766907326982203038814193402574006339510007722065252116156200568890685988485405816112570141226806894038982159029178359888678992342561972472459291299702189644781207848233384194674683822109424773485151612310475353600186908109132667442027527581223995808483326517965972795900409557957507009642866918426343300464973464738734158165621101300331976391904481819372885771540530090093069501700042939451327700705577810774902849233927945185908465815224492761856373401570969656776296957167497412298655573954288535294642124692972605760364473377190225315989921398328512183223910631303485411163670061645964688149077188571064370554891149829424249137183081459825228219697074725814984395996549323388912308434183238095813127523218597072054139628347811212086682523712472501182816746057946316879041759938887098713324489158249989087591202831336363055482302296836615806018071618690963612180661108817201823190755537640841212432800938515315092677269690611519983644449182592704905931264065268349185090074202332828868209697797558254009088784201061795981311393963401955747249425892472879823817645565657301487107124504103377411503613140092846151453099380283183523050533390354499251871687789670975575451786487044631263894739529410402297148744796075300639467446482612248023783165658673559780044720766192999261589955908321133958805617746213497838205441713269210392639522648156365382609887368096929144423732306696252718887174271346344035631103746344988977547532622080610551682784630033593559648404606043391142145914432617087550443337937960973200574540672094363569616171652689625231455749250917986444396203722885465682555788417264494361327919309427842079416099951938857434764363763975775415528880727334739849093600598045733228780650983458153092372238863384130965291659641585002287756079263934003660253870254053909513464254006379181747482216200636377330816532216355796072096379325765210843224473679465817582247960110781756598220836844976608405551378841672533912258848246558949294570759122147686917930025695870547005313416957256220260515325394746926836383498863179655141726807249983415118713390819784165840695064577195863252316630055584406234537655619299625314247753727869405773285959109261651219115951528003010197878593860724754839532013503729572667928020114892403859476354253329470311860625304961914940712650823570522230898328873919163064239343753729761166518884807425178729823899776907019146081029286849066652605115649057330002058027150499217313529536763524289546866430152289830358213291868501408988933972961219900586142737987174523789001167743151141849649343101945099252520793455716067341770150267993264689489292771283121777137026436651109683439194081518519174879454671011091914222902246228381182880185806533184873451643701107884015542917536026872777098265962279585520720406875412446878156670344838338085062548894499123355952169389049853001480207282297854931543826758640229559635433972002941535731019594279399013564487795871345723798018981669983294171169500190615356883388493616868964096019856998104402570879011341393585326212900084205877044868200630089044064210232223633069264348247937831142273399048919713646662176541316038141669084057859559215700051858271111185677626305652421854281766900895744411245673423400821282876255457617481909802160745624007214805875486695376850857499824657712322341924581427666419622935142782531754097650819430455649850315311126485602046124303073066694281427138237084785894694806225645038360968958763167922348511051155915130159759246819314582068502102218288903978932418465857394205291189676837781314991878714993504845844633609522536461680722211122480372691246618963541962369391119118699685581133542293519607532272931068211798682811273325205150608335258832840083147333201251010093475000857993665201101067895671583725596527019065870652611054045305426287894038204532024159229693050914694131601344796259212414707863099009915751829945687260844873246416266642380552565746096418474297027181744650878345115518543055509074752928382944696348940894784209357431015779472697292557133506327373270399230019251301861698935003780354143908115437563547625884817199925028786859683836201202680805769023395482929236144233689568705783880770843904580888651976958304928986021143378874587814336376941603085922316492003311479744178765464063409407213727151527353324393813800190163168071525868824762903027506312037131195458259583177851012403929086921583946477834926371479393083773281874375087996165064040436414961581947333324305494951128993196844467859717533289757675940512125775160730445432255236230546835089916305367396403262026101390079948347978741057138159260043823453320862436738923192912894726377021046987427359250914749462158857835543202589093881829437340434290636367498803043804768072232818448209795756026047529417204666761404566271266097600595450230704749667259871655243245264188006893482696503881542820733158973179811406682028207868402175092670039248573696547560414283856752995533114538344242555040875125556458910912643836629403784578710619616567356478481539804651842080008770189610894979296828032078033596190641631589348661343603404883172461657307745333523762560546814574490313390598951737635128230572539186018268536292816977613409538708399813147463479051960454829422324956681321757274728297506399999311667199243376456124059640159349903942213153743456505077065056435236083722505468791723527960605520020922120009037217222310044943962357153673003097094512629556339784859518191371179757278186825085574762370822995100185490168129000430042487207873678945565095153953254667880857460813381117583450787334120568617036771770554540794532929081870852939167677244970297883727813524297028760886759691170331594671310972311959835019880214735827510634044176747849028575484947609106748387546184979076282965429884681692255836805583533627891275376577421672647683832717763401919418279165744426882319330316377093520273298118002201344601228470175678930680405316447614066560342823239659740295537601521721159252363084375537470358241650399296558378934760801706739079943441328082669667949806647733710006163124388257453108032369776381760215854707786680173885345965171721258299534657323726987182541403415084146979710620729968480192225113540772073800348608184490283147600822566480745440522912955387147054800842446950887803057919277598985978284673849891815744756047850689059927981715088647543606854009373930748344562270438194241094584102112867497904338735008084550003343579297694037934359998325007964776979452741885608629831208247242536655346070589641755503163773935863225763637235623234475306863814511984190063363596249235668230759381973290304593350871053980725979437155785807639431167740369294678204428625871330131349127779765411899930906003196623152230902701977763461813202425765833248562070741151647552532173916812222389891121835965154031269617702733096262282849173457656344867029865522697364928254722862941285143833090480879055249445943702004130471771927700966630963144476607734630509929219372652676646789143689355317068265106355779128329500078038401274675752520318046963859864595935259546523144745545091497890376099858482800485757199589898591636953682001078002431003987981552567042122266864225154370958238471044385503752413530038419706093166945979101832637873419333192411328974912061376122301494646355136775310978659169810292221158251164444793760027384524212510893452208110296195081734407179972280821314939492775103042024363032192402421738871164565276089945010266962135080894128201126344242805983252308428998041765750513972782942961117320712198932362303561102320467382531350040087857829599052909054201063678924265350219727550319088846816564249241139900725021459099737584459489947188117163697297535630806311522677017434067320326636692908387944725938392133763593053123706541687635433645070321798271014112264260397754667214363538670405163806962016842242245346754269986091122031883984051941863249774278518467106555635111920320907523888011750219776673337032017461847936637362432030045323567011393756854865949788437302728239087614234715814306620052526288371923710251305618354769540760251684064388143648242342314406678849036635061997239458730054966325380851494174491321859054609061237819052013902239283135501456350998308382212335238973196458862191164812805412411695430839871062302595751151037549418103608669134894620984983561268499815607819978367647009698882408140007905709826358910439290086761822456128248609752287892724732002755075344511864909272092249203432638140226267164007416948909199818455017946032666612375567018092392954969007650239656027957074035622844049413227155336797577524440303497566552277117124552614774775702080866468456217065876664254462683484934731002777753745547569107100704428243448793340290642479467911058908974852030835243343463411946862825032295180476971165030170959752732387039865406157498824551615878194394751571338022781547628759105221972238580005470911845104712280038766960552857714907525953347987034479096705427336096668016174585542458957297841383820322708809999185448149972157494586801511476780720234261895782804281017229638915309578366676784737205507634431355012456057588125021288221457752414725108649799547864663040302534319934455440826019437920285909292923473966477685379637572383818280641233834048851711496948070116843683242203975797199762416172499877595972446522067551615483284115677991858603257569728018910503508058113986883787263519968498788797143471206006277931681751073106100179715894774834222770355580148288650692381920719642239281593498791412477167590511559726432360520567090834270102423459721068413040914580429175403479147555214397172858464787021799359007431649659230528979764054734946178308568238514604472504271746698144808961311167211103095646891481004119104471271618216494662340337266081551975751312453738674893426772097083687360501153352852013390551573378061942771089443853654725206894469939243009101562999533203776428990490919100995926874865054258509959371329379069082925227321883372137838110184747868173416707834125930256922349771616998397863545632397925050722544126124645420950975688010402046994721310299049939400754721310699626288087063942479211705972392916150244181507549612777889666329282183402330201847100221762323004153896753783210349059378970414746915992621857233001360854555563130491531771520480625782093455530701629496688686051028335767090428897099262373861767259022530456131096851055278134615387963287958330522120644894374205543954375302273126505258630248977168756064476610779110442060782710903923831148232827719321599628784307283677553923851479939661254065785596082496229052353279275321459625339993718998021537814104898310867862009836793169489345475584966166244552334268825597611283221518298727301308900489322841409556212082811184768418821395900632372948567730625420576516127911312670859952165543995498034511254068002003464239896576496355093264927506417929826811318066664086428575329744276443855311847404020679079160416237890814943083879148993410807728739760612047156339794338728211944456415375502554971593615611523207106992186719070730897539958496154967410510431410924395012568200462559751282591325162509467303934635222247260134341906109890277826428701286789646420948201605251835632550835208325416217782562265167167594408981286071316664546272617625181477630659157425483468223193872561881683716647712699873240618623851631220099822770571416395568976868172896651540587263109268676325874838646971252798214930183367325420794342286088654703724884505579192740247382171100487619457858577218586832082779009171836112261794521879273534904125923938778286121680616887480463894744758302598376511826189037367424539157877318368126816796449518499476770127605494027486431370220088985711219845521202329003501149052665372680028784894026192551843649453919371856833472653160548756787457562771048150128128012183735600121650240674914183442595874543194527953448952388898263214616563174360201166654649823363315623763446244643466749758016167667878014545389785765746158810555611786926130097408904216796990077080699921008724495695540877575697968890998563105983439686842887987299272370912327743577875849815101834592688659964470252367874271988470862285363545754092393279348372581867924696660659435595752461770523494958889792246558518125894514767065156170733831790285879177938611007120714392592780487702207330347259712286508949437978318287961605800012102271633568059774198467936931230625342970427949605552755875485708758339213405839925865702526674441623320496041137004380576734987206152864449514608770535256365355069219334449623228888372627270647446657945523425901088084100068024284561065757842578743200414035870808456723493331877140754456349843908782809592900632323285018002301792363120157864832976503314253418638314946164963184852455941197483602404489928008447884362491278604605331155559433827955949076896466658272804067355994081336426523959218634018387929751872294414860948411232468403851616032469345654453868250017401228321566482562292915877030951864949082045879058981762734650992231416821650083131432519679085638925987483129615749194073590171439631763038576889424825632619894887687607578587637878839174743220772386770676509737444891579781627653993255570862668761341315537871086039700850658867229954450458278390846247445345135192765766114584788827937451519335222128795343681044710299414614029908053992137681060321355645274372536877765825375124020989555617866319104849396871177180544368320223216950958951111201331342564922155090763651555133006777677150149238985945699457978422455097043006945005527596474650619160011816946554140232753346981459752138896010198778038935198661073547908793689849457793762761147765172054992238005714179525854374438436166574390965554335121688268158469502778683604337382285572725213274954855870834052139492784295165642822640530097295007767989533330404187708347454071260419843064565729767594185737782562510476272269463011157067037699588289549068887652712696153424450431619034822040659508550004594964300571582599398692542064759200930002148089023436841198087745236283530997964354567364395272757390528267340118386654648062143875623625205895183312902454559178438335834450185610609094321588812158353799189042634847728033365098590063735233859003762242079582931120085180764621476149752062645567811689460898078844634043740093657087667861099994021866520373688176477514612582959011376036602955185645543797652439756247168950674448730107847744956921146261208697822103307145755917981213990531707243645153739476900067849727588928586081586496201279499751209366805123228336038438634024666210255855166737986674217570946200124364632719262704647383017930471339301673170574363880289743757864088401073756026452670393099596866428815284613352976599710413261181253352960970029008286597191733157664269931705803851645205174308111885199740592162472261002220622641096186067348977693538351076354467140580022908892419915080106834106758230439368990672646041356277337011985132815630736492971912309438163277771554188231699316426335451474918188961691334086121190015656492007292993853113363320976506350389296208380393755721318044853860206177354636865880981196015118412238273464314451613738179883037693898090764413232361633365682946291231037652998472034303274635374115372265473699292427492835836764460970466437002695055962649092913620350219942242639831965022913587315846320843559259698145384345866791136484655564821813567849175207902029538489813396098401925945898930636448468954738732632821146726861358510535323571796675778592424896995010538561423769547203294706517591206811395331107213725995018180262087399362663500596486646927509759586384178012948488180422696490350158303349466168348434445077725912319366517097455240886867404688691135774205179242007504458543736033728706214883661412710304970516489826528167429805866377055195072745468127065936476269333156898524285723996860855392859544206386569953477631412883352817152669289542257668844701806485204873577256389080045385385875239237952811991778734072044444544697871981599985307892628124198564916973517493237401748993109174689490244233653745497875954654961851495535108859726470920171353111899831014747183115710231953856954262314185129225928666715140083197982674122441432451055888498822810279233039654224248922909711898875585986325881126322632887865475517731440960724936295864734560409640797903431963617501788596168445374898498621123247907549082157615753961588354339364811988157135924554382460169437335463309553759402129354627066203791574476681664945880044032129336717828594466276434688690985643127977433608666932594247499307086978822295045548557821356404335267683109673109068629892050110520243413551097167218694406977763069797476066881386594082234858163920603369898135366982616729066469387473265910200025771359005996244208760518241497057969160440236347154827197404596776785588934097355276520028470815055862075238331011525971822572311134640067542997868970046053673632716805225788406709353571853277910310644400878749712734708739184627231921955538987501086217055572046345157627065820260577544693044061622086002466376276333994050410818523083770691492585463076198278351529749116014611276245692939687671686368660710523664682657929410277902429400385572692359803259705510137041821488377199060519853429867435644293206103455971716221546453931021812301786696970365453310001187976336155613890044010715834534964416054082984627655236535340931523608132452659428703125066070789371748223432448912255359489836412490219942855892567416495588926102473248927432639578287197111199536787505258001205866115602260786235038616663211044705500775060360095408011065994616421949005957726594592159919447057642174189283011954526173489209274502175925672874015563466858664240247037896399683102877838750471987640347591913743805660550170641583061017241372087610833576968761830870703317097650863758830154160954231992523174572925023106266086621800295951887304856652002849795744695635810927946551381882566227873774749859924224793076359077959181054350963809923929572066143398936433260429263605416200336175511372058489639279305857446836018954678569595728694736446077606498554145533683615065348597746021245300851701417939010859357214872754868811060629990387265040299688058304109549836486836371721627147469344825132351752008906881529631489216716514953047638676713046786068868231976257193511651884541509687190722843445267779464871082440579813809213985835894772837968185093096423171171564347028938075123424372833439863665794784244032363189607456556618028766664711411703026886633491846231356130291080885034417362573321308023309662834806833227937131329800491660524959600562509888425566826259807467262079079871377442651708018978972918058850313263475097883047249916430621661969633889248474662707251770065981021043435650452885452461441560128252017182164641552693304451194120142490986233588480276039451267027397817264394028135925313490607883758640435637669644542615393091022399659699302752483520270542601428077784651635756384871839513234485396548082088918677638811924636292453394538453392765924015696008460976744965634856656851609395391729954811857935511292567508544114516710976637071640827748010232698718974654311778499930652065275860448744280352154176020500292839787172182927237889524497186310896509943909107717938030185112715121000488482016657232458426001613915522930466367584626503410818235071139605075899647314199940228006007406406964234700061717565442666029491950232037769856044740313010993020821407572627255207689987746605170563102666024311190014309857427313239497362248891707296944554984458737704040044209708013542376148837372287353212422623939944012635830299027412040111802318953348993292038283172630248927740548428982268616420096586613669061059501067819434669852523810000990756710062027053476490034455069654468612422265653664458937795803175638837753612828960794502806271935931433512732545261307821885750469842340175064958829898939036508925204072920710450122838685605436679428860692479811300338571527292911889772159602340196575094272760117711574689481374323427132325240563392643193281109100663909553562621872537158778344860548823070670994623219379893291983254293125378106013818566118077036347020112900676288308679407045571814418128939946923717462916072587344878797537953586744409307782529286508636827721665249387081666485908440385520362245153642108886653837083990420544939834197363307583147105476109425469905560171841807985505780342427113031555091248256704665949918390875933571098915441500465754351552651264874718122721984101250742475078791596393805259685201531481170125698827184537577523435568617765779216218598320329828741476295357713062709341565729691730873416865773604318783905052701765749823596864329239274739345551510059173321671178648646409204384087740072524236971103954159557546069235166046472533650186843244502157732861833415584215721193211301852994179553606012068837294365670618991555873268387784313278090709489082514018582553943799477853330226557835572659726036296850377817336974282661623727601538292603304839863879573638589796113618492666687022673007681925054088111966112250484952015635808054677658847595464485194652292542895715760412420873160495015150543239447822067164764888152736709744965215583127187134256511264939881589104766823341171884305159947481918483641616600562373691311871110715620968015122446983085177549560655408436113961380923653196724364421030060445563053240119232821340469746246713936072510579966024346258071768383462709421080330548285176302463306952981623294127529292277749046121696538041887559932425610351364715080892859419400044509678810463391843492969677360000918253823372075450633177690519600075563827017929693381011161129717870947271641087303100078413550256318105385309000673881446572563662144460730972364670237725961618942447952316242271646758647428501718537504483773709066104083063482135703852176408138265565476533446523327811388498491076451485816611647037194436998337978090306697451719875128150908018650060693370672295623076804677308143083316151473848219764021371807028988343727741944064643969746337418608526075222736354439416007826493882036487118276140224106766133481216714531803694866200416521023166623614529246716416422045876311770955160963854056698348118944571446147770363268746688480267814580078020516944265105177819623558092672425331266852010856786319984943103043125857065366329640970596536858159863513108562620029687758250116194759994615646902008912600132903321327458848074037089804942131383558792778472549574433446730435106718133107939588003693421209822980543239733387527170032939264590598587441062467124722860541400977977852969091734084662327584738293613783628957947375072895058805108581559983375827390430076180927803952787719541837046321296949906273719008320136521679186927243055743582075638684543150520191805077378231006200219567973913282491682411986030117197202989146811389071124657420007661661599783045290191515040044524343083346640134333514371500622090827172592965661462911232343896123423488110229837998711605510614491968372871385474481136254395264560790022153293635624838601751570421413441085888893700665103175089522413772698029615660481315843741074072738500685466334292211183497480063354778240415972094342816506175669743423754328625939098805628247504923534255374945890986319392088800617632680254806685835126748339558157297282193610408279899690072252452151530403996757130187576318378260099630306598616930542607503590883131528715048340637766577885503298252776308523920380074233763244830790743234286904724315426013009444133786285369063210122354143165974833956570144717085508658058625162238035086578556408912694313822934030613055899272652102263813600415650083086303025220204099600898753792501315235074732061599271050258336819569353322460509099665887134359277001281991306059165583396904017216176880560756030771876222388106496911647731166843213580621347326013827085013410495782316389750603761969413772693857076033918640520719583454594941043429345377152710391215185046928748859975676337591532259829736325835590895741114072650117808723787619982133290651142874082696396400632546667934504520526017058189090885504149663180794825633696143181250538205587717129666017701408409137267382810636359877550264411327936273447855502063985126975966577798868470070142589393640051462540311122571316669955651301852722218573846369579547425726223098371696296509521527142689844261386787331351184068688736071922352253160943326711489490407356071369002454120070700430360709615541149054044500840222311087334429372707423450274373458094746124558873223835579184367317987100725893518222525522319464532128445789960001139390705566883872559294961276387256835059171904550267557384706260261108425651455613051885875753949596419842617162933346079742253317041617072593969159142871101846972553454646087181735628546204241503141554947847914056461204123870075242129945664364533513942187167978126246033598888338063403489107094004262097278781930100585645868680280814908339065648060510297064874092386955244832419730720628999650354782048111674704535555781418234990279265348570691507419854060303836062116082245834695993820716508013396936870396727183737875889882600591008552324026655826019511186088899354719132149258037709268366839836114236474893366409073806765294742272217551985473879105372872439316690255342290025352892118850617571216994578755881395008414575150250383477681242765097172484406670150819259919245382872382317505953733799430193031481754008093257609835673878170989848483677598409181529698314409454999040407138235124563117571860483628904617587732681781394474139276872095248471213795021390956027797521636405609363329023315247211625668744072324125630105996839763387104528311005199679729558186691124551376796095192724473050201420433997431122806229161174848556176663914142896303445538214519537576318736993790977726579314881210517307550897694535624892994837213241400594672730186560168641693074894238803727209481634631386288800036062939047058489842741862725836274006380148464158707494812486460494918998678122686163389796424861926548798701295922718425866405756617439063077376938752157229846986875947654932492968869156257118362392797035016362144220958555037552838723934053196392664172365086525582250703167745199107940862373294414682106069702177739521766548498635755867558761127033821910205929840647193799557020753744911865083662628723157338776135752163899170751396959241281563421087519667099578154350137601178606865191955903048745819416330214020991918943036083787364968504163815817894442273662919990362917359499664847662240744873649703914326892122648585899345605974434951861438961036792295704071978209695169379704818213976914674392753540768708903682756017479202769426224645596715276222896382770557994757435251138938881545103699070246364430130511590783496319457963193843137072770741720587322074006187662789631187030042777109973898190502847510947845622112639025173201659414595422871232172949881259855011489029469320531674594635900917929218214754948557805404312549617704860904698287869596843002473126597932633376583135947964767635529759575819857698934240496463918192396040152676373688279499205238733713599903591224474950495390845633437905907249654589965423283996098838288938953414064006943703009254241307762750175846965913092462687311335562341871338157993541152064406566558008538581137202984292257551491025355112594339660254826844245624575586597956420559083912189120469750349941889735481092161894053720926931121113865004418473323137773277675289271822386845495773088801697301937320037608894066819092917264030583516413330985125002522526306645093008031905303068934487593841237653351979080820305741842648996315944806332457086976410077536856654023086695870221882352815660884608417649077594961380807105672711975409268234481230303708391703013161133504950675697111442228827367782758422333410226840805294931014456174956791984536996788613512811834132535949956061758299287141098031491080642388706901160192188377992071656207908708592939520565036542002930272505475693358477599656085691402865105994738137770536213600454900820591502373915776565858215039524743279509678726142777561308974898245326925125815570288074385442006126068836824763045594518900427326942929451320403638240610336599269917395798908471966894605196456890920330691662483805203996071510142285304015886945126496672556185341244518616527659371218224904021653126758262047659947345577662975270315801758678632213964808358295403007601864485701728401179716896564662528320467494440414564957054725899307907061854317400642828037075517074426726805498240010571751298269911997532069174810492271000968046862268038726469948423478481307914331694811324363970020017332435048617710330104129225126321026982001801473940751964022397031858671575629010003946786837390472952806908261275269744057605340265079328595540269140047214155419354163917584503122543050088895433207229304613742948321957514883427670775733709025238323048770539305932233716232273994970893719374794694139590576928983101589345830756468018538481367008462129661537195143046004288658290226681666952786190065713999402310939387672309935631538082473519484085602572782105140785860464272583940466161736664248543547266654415926371903063031474059162056882843542444222413581055570786003576497787041750589630600139500209793734286413694257332904240180571226204029543874577620728762441724572264978624406657150303413767150681993367157661938094417203257764131875667138987363043042968397190171138572407477864547568352474556453982672184649210333825479825189156913545088777165700569591753145661201051073602122805156543459021382971396342799713470231110093456388421382131529252396472518122048036609507605988637446948841031358370746883117461154758880126103449362716657803801264035850666294633462292846889632481922032053597052064235226831652547924601104087320630886057891965205932500567216597420481954848637679369903815104542331376966702732859618267005801311780680926531851414577349663423195336942449140896596395643142692739257745556214838676674409714824211890699993898939166530973119686204134796180412347585048706822817073982642955772960489626656908662451428749263001462810688071299499140946998766754901120315862689622771049824491094151936340135919772461225841276613416960313952501561156021259329939838173542820522299492264536745875800455431402962508634253325548318675362242993034043378776637063234189430025447697028124428209676446712855702474555406331432581349233371148437707884254103213785420209901419272698517320973482268008151826645560296076982481589872399136376891768294066321836762239931380652215342274373951588006728493828474354589299885906727173205755325329409489925840021927435579309560614872523930043813464108720310169461413205163695008879775245709185647576669046844020913801433748594712409276449452776014157906994296331660938574346741982373307726377808297237314768909983445638123647148259541548372601201837877369094803136913847632238900606049348083752301088122924539077778935869001102201583743816627021771796316252468190456733474596334904712299780664739438157605784380985483768719167893690736645861557813439828660634922340069743865507157115827263580799068022561296490967599319459475131134697997926024580775519352285631962452256315708115073673707440378745383841684053468162908566715796552268467320437741993770438833314287109625561477981701801120259791664376379008794948842865043604366609576368786371153208730724517404655937195051723641513313147588876019781526101072578628989924637566764420031851779574463536857695502169937921632291448113110978851426567415366781257992624059054827894301051398926669804714088462780413260036532869861095988396491665467802237396513998357747171040683244966395841799233722129569137901929697681920721643259486916243232565411605331025755579523346646488301916483985477457956687765029207323978374489672110548122001577252179788754287943544213668528963343119599951561604932374501968128316158457118234793604250196736631766046903341435613185612966108951959541923092524422700155512531093512727441806147897952237195962313026358306734416552328528203968413096881537304575962281128851435790159017058897342999661478925351440302150064649520935569584547806515607985574367713393736943550040257886868744085802716308658318423253648459083527013650128852383029727863853702170634211943831441099658878764187676248268903898928975171984719833156972490600715574421219204526794184910127024233089098996188331697526679686520485859684550140587546547150756398678863021737738451909589492903444822657796377401712180604157423134763115402029555882257848487022214172185699451397440943264533218314455936153409193274213626314861445201420561249415366422442562449729530387802029151353281345358071065616376567185704698574065447755604819444661211662576148097245280973527332193019925478075699028471833464467596801811696499986371560755417669596180819770480910768447625033503408380759210046232589552028501324297666216096805069258767183723731451045508553374134786688739474502255933519538790460347822637640814063379962608670494315326957083850484672786480176481024842027206296771464778969605825688081953726171853136651163051564966634118917992910380216887910644705522523223265505314025291861677182221933634473852660086353367947047703163653094708259538302441661852801456768331948091381058958745997070779686956385282131277949800743569554378650030570788356413897268540023894347168571198235516476345073389341905229974781152454910655864417639488628511670945003278550204820147598299187546538298765784840611739387064842836152644792550703088816916892994993317994004542633073418405460205173598937176976042262574875911314583833319424069982509739300150104470944424623903333107424987305168920238961896775425013553921885786901445382929143919244907532089205190240019321771308107227140308467956518386537270039365598531966153444405380482645958189548852534014272404154271320935763699312955333416804262193813120117086532056884162580196394065427055994521341741008597932079393378527278402754061067954147205811047566883526820612843113719141203560286743477451078834682365452803573863696535835862206902627046190044629495823924471149840828766671122315868017522863361020187600837114595411368052812481178799650802285788302300545024232645720328642815182964326066227360807747298703231211906358435191077974048683084825964155766799897426151749761756907165232614637591022178501881871133991812416228400548533909340815326268783632057075082236995833303386034805257038488197627163025891064245464262072968915460293145563424530916169181295472125508862378449355140703353166031761294751691144975343320329245923844602354329776701645030793485390543802793691005452778385927673717976142937752410304240371972944729159441715171624054657229836999376865863298452640891228807857116789959607937296336081438047494015534031333933632776460544947546052315675342010106146629493317132794805425464667105518519302778296646879106491400319388631841590771216845511978614459160378851469584481554406668185432987192573474327473043528907862115503728491686542169463571671841216404072757627732587173740617604472740127945704593760062033203368139943070600702134775176992151024850000825689205907170051303861286450610360023511805956765030678348451523102267658557555704245395612375737660849673010165466259112988705807538565253198349286869776285639842888100352557736715629626369463738278039019940039150556419116438351538647962058634275321206443933899219396266757050901687175203424927505645206261624661026296383417453549343694829628939946605346640192945113635684190024064082677345885672159828394710887185187920047863794957026651687932871720585313654256238785343988996242143202845160418940294214865865353165157000665911061116478939980883809680149182452828095301084075334459757987813533977595322260328545757469458402496887388966339129250886998572703499531450797176041804144802424597124302614796629816089735443004257069649626805004632060430353425706881344772225151801664569066067297903562936510384072285841427367807021758158269481277046108772205724919941849450813777692200205354042749141492630499679065174933948884738449052076575704467445436364858417646838464151600095305366835421837515916666313427212680306657711652768892861934202256526778607315625927768358249429828397957286934958862296405156648727197534707522340038780290864124062317157666747836161475848357749336482310869769934381997021595155649458229334414147471727900316641886592276623881190533604824265514110256250901206839412257999189950921443105617222131742178307748450731085338157469921045326339754602363779056676012225904585310599226349326725428716753815152166242109528084409107594841937450995888392203452358931432226290884221166864833234704208753378176379065190192973079215811310678149081627789321312736349544150784816959302875690387136743197490718461692949234824819782905521759767066031401353364145082675293176309695664904455894976396798353802230461874707605275594554530222391753145858914569105111425379254744909783821299054518947555531587397388757970230115312153842263574171967292933010209520646919366431753569348605415822542166603174534437269278751057492342916155287846540424544349414286397205445271095803461009123755636458936902287591580774891588440110959075996776910470356765396479848554521063154966886989990380544384716927755838907366228436616923693665700750663368390862395477416283350817449458385032368859805108029931867228226571866150253176159904419368728647658906519279971384850743203294244299966770839970688151385272935076824830507827505867144792914604520720264788762585454263332901893770487743781942501315113091256540422557737010529554833734635526803564358675067589651139218555169924631242642453661878710112895600579589114169970223007269760659225685952286695200832235787091949346240951587650562721601860228041114716510358603371840509718295692103398200932262513869061565719125396542662882030343579942493143906676546954049066033892985621029510509741621948046154782982451272261067347302687637042020159086936252604343012321609821691104179237742511927919551491898346135945514959864130074288382418903393889418445545979651449405905584527071051908099343461105068273858486675167765688278632978963999707128602385855912026736560428129185068476632711780801761042903039843505594689427864703012664234905155684381937131888372865851948426966996284997334829072338582686151106809601939584574195036580291348529665327228907495183726180610301021226013376202100619987567872557607663173183190706382041670298996788080727717378163158289715328796098820786355021836834672402879891154594425626446917460810580472445768657884520411302110798901981927669164276252664174324313589298855444155420507446602365478272577457108313019564182437640566677311220333922694515885576839178754403450659586051184517891495926712746106160030557233088027495425465113317060821834777523405807924129191374229411737336981238729909186775652175897339767380274704349178655622232662100199562803254400130963333083964018683829444980041185820504658561640948850065274609062959841642615371744772873053396500937006454273597464730237001771910043179450094686642074723728171000901564154130169826186030175406863845532826371785677336533970334829120076933226913934367824878236658291994530895378588892248276505602734181623357630028882063946357851413607593994064806715542944621091919049326320235304528159709527928975882113194818097740255693010719155173999358938471797855468568561796522349802380327153708250074912880079326642003540610213823076786463450827759127464847456159484314632763170463795994416593293776658326164837638004531959189973599040893613369784959661845840828740588696917141569412329434787551717702047969241556040842351931931207767770962255918837239699337579925001148828820135103444906417326105266551149182735760952053319764336929030545828453980495816094464759504897867749824694444319062271342710794199481271145030546196225991761591590231273994346605006312760573334906606687663188413730760524244594965604412394293626421474466734560688069539935677074500962117102037927384186071243565549624701644906462573633534217674794922760939435472678771793983569230189344573377232438192524030314009446392475011108240586996720172386016500905421590604395037362499426209591972208882896628518662365957427240016710626566834547917284685503738009963117462980121959990088587009036131848483806680845127451925301458182180571861032637519487854833119873611673345423745940120627119477254677831430649897126661386160885916524965229765383057278976968577590950355049200098032527179933635818481370583494244005722287796624811058265064731144026895820953828517704935052669886581324908554632361707765424700186171326688962865041897792040725957705802877978430252721964597461583072523764547447039235064413323390489078949647757813759550247054816698179105963395960986918602904881155002280102530263246345950658733580838680053655238703769488421767640161460237407571529296773134984674237961412220630922969262761718229437381277099985625866875228558577648035252418237432788152424006904408827818702896522665180411796011988685196763815351623073047561695778039451497566945038658479629600867708684694721755024557875844132271301340250196735215123825984994672222274730140378073475854009603601738026049009782421156326141360778988637471975880778427614092378387858551801623344268540285641302437608719920687051047783068314011265212388103165615133932125124875078039180543473251725292556093951526590636175050350680152237402621142675490421544045657243493781882543236122503374892607513692089293614432083610528043575659684751941514514238851026641062256094988494359132519411453023880465610072371921580277879600891539912658353768809444879968699124039261238829136877918578237648893776241028777335700579326797555333252549208269498712484354890508166766453868219785112554291052293066323464502147938897850737634532171702192868203171190560558913204289487133816210313907947350249627937102505034011473461278341295472034193226561956498168654659696504408168443844202732582049294951969078187015893616670859146529338412345578699835037593883399114014283439505385662842990844609051810878741682767893172735483335680209729014609035251172682542886337701143260090595332649237107944981895265335514549682827331391849853107906472065500349789388376620727320759950248502479229592911732042704695912090257964434342454615936954839444683272033004069214240970448863717852229190345252556694413448367467177469832928050370298714110998755296409885304915970160074851420456434430359336437777445287374825192137388366840585096066567761497768441044164041629074509197745252818425655759054644952987680237028595407011544909609060537724977564824841608379465015074458000369642991402635646174819107807075943788082743562349385872173127211050155525609114484512914876033727271039696047224371986969519346744981772395639107787390020526273018621003549969666118430377427551278212314627926888587839601898897124819493857203407490814140055739199377315266369269840148384011185370602180157045964520988148178644276408703288843600928802718694954822714046494511321634178342976191510841396324461877833655867706137263843862265703973764040299653443198797074299938886580356230037604394130046987288086486511887006281410878385457243319947072395102405738961440442160194130854675689088573924355155867534857173869702660776183476077729066154423539733027871297788783719760886744192828864445527284110000832224729403231766704229972794070254127045878586665766301113770767289452316935351714638216887345866811195037776496606534477078702369268174796078474618658531152988235947438560769815103930345021495151311277542876334989095368113597317982222122019262210592581789444065951924929424359158321993943739125989819887813340996405904376159139555615326988621175806338210034866805089920816124252602764617296055168175561469367565333763088622710238311074231740744173854976863130349680351729814902828830435563324725820194754912467082510644237365140019088680995006692875156942628068061653510714140714512104548870100860089976983989972344652979926668640261919952495011469485346305882897888570131574212531848291999052506547567334813110891044298656790402131292344766521563631078000225381619997167668452521689548553961839441266556362204336847946912084057930694143162317891872053153187254907568496956383122944735600152858798783764473265828528348440181261261571632113108360067597735623183820626669844850171052375828407895834269060340259602810016545903424540929321096870757337739460281428045309589080026971900741311173663976600281137290375634610486852059688467518366428881136717499717469168052765478368011089860004006613785277793982409021134683842878956695620724725246556577445248286592981189491211853795516529206583183078891922612790179720691301070581225005495121716319357174041540048439090031494946853028278501448792700824771666420007155060560779954663300073848649481185491124062329288303382260272994764390574833509693395303663970672777255809445556108628337534616947859085218306608307333103400474348848970357963192406513566068223758011826990362920206481525853637215694340382215422178379174150018801626893600083170037679836330918152238893750109715318928574720732381451218924538387820014607717555959619445009839948083328868191980858311951628094501341298217173149309636893270324488415620223188046401816976362503495594998830616994803677556646417728725472664981404005119563980064831911275777984655287145901474820349915894104679683133924834448091824394442142870930223241957538789957202647268109404287096741455110124226962764754438624377933375559132069385768350340371491716581401990626544488191593732607411247120762364185842528041407656846861896293386982853128426921169241757186060277380977992629236632439237954763678546051705364891110070647460792254026442048519292773835683989282545459091014980134061306956465250540525659414819996364679650192147136882467262664208266143236246820351526005270287497862482263940109397732195280081348204892171657452848545724363374288176207910193377416854098703628314048912074615131549567433607737939270492969872207717843119841684517828645981335284426224538137348912550480887316260174299370850454145782630436120308901531337589112838133344531249100664028835519714879072711805627966181990094679033043604406413229835876741404932418495172755503057658166537661448197124778629916014839527934834584848432125276506486837175135028996433388469996443641145876762267757347467185220495924894449915131027939316465914127187994144356268594512691555604879342509077414446072949507601712598625157868773601082048268968759911671516000744220980375666168958759940023149876291339069822139205242866592477625282986106865843221437119900073886824423474573836720339674713092135202517305934941048873208418115548668700001092653251042917207952990588442043180210531688818098065563767946011299732329262175499642664317032705693873807752816035012274253659436202343007342226662484485019341865109560283050539019205244671788751511554873046314663810819641129759608273031331807849508596615371772937549270030217058943485110707107152464571609311154446192320715941966903189334843701230813445013426336634949071273745268546844291576882075637998391710071183877943640932323005572075144665713470902346640102124848521040933913622590763450154891828603524404173849789365639697371030203090921371249168279854828986043037630635177059807463666473192459431924398323088463721410894684473910104450970993025825050973215091093447244625515515291122055304093538835209837136379453224426849030108101988720563534755820062528475069048435787078202460121369706410188941985183493722098554580213687865736819590891549668370707841106193491886693038485382109134926273579710510870718653839623868442695390372655220554843628669676439860718615925435714813418082988097913777132599822238165902028160101787468403737831143113892647884234748199088000705313016635607476661197935927128683144274010688875036851792603292305037606794182322290242852067855598606097077112972699392617789317586355353567514745057031521964419321310044657796104089650125311621400131395288672205776481565305185273286685230113766833328725998673390782323552599245688396829938063900425511432745412081672835503176568200026729841147375497926521653925462289823960957597025544082005510406411672187478034196265177161042306899650444934914719884031574262245095274850270321378978617547564978641378718355546304190388511689917644977739371521940471959204426006428299261445877801216126153643982789073423855090303923905777428787383098227609709386175357322916091654658750691451946371715005350777334081220830852505062674240745360594865844291339790733238715975274695117819239247022867692499545396303857493173357369354883981317376946356576071268315004037080209372180366320224113459519747377170887948296091966862835718872086568567292351829566499901348548982510425540716951510597869728344369673836616132027297060947270624127401127739194203324232407934539007725749164615377482150131080978809068540045705225442345153128846974966775370668094372482255717461344381429103745717560366060285795335681145345276062948779372713345071934433292285322720484703327354187871584234968194048377105132409165799121391452588222479683251860808171452032982800905912281897641736259653911652773953535040914261922042171631506103465239017707153001446875170100931831427663685449996634711542140431776316148277504382086786873579324632160963961066271546079985139193209966206231564128053564596110534378177141027928138138402778400553048571266823767133713545162611551765579599193209063526419322617055818178172248797626981940675474767650440853285688844434522400712072200899243487210080334625562760112952414998373713149173669460729214652076274359051270168895899977840246430927705546302635363519677294053676308536027793732206798868250232741045570206513604118973550288978862747598591629550545488699362211006167648065462718739172998314922633232191704786837568006050433423682754660842555835026834596644566339678304165054533053056411433985502446450338840498511872247468353522161311351001646513155634150078617681147843091849058758412882364223789917672295093021235366487337042750364218327847171117434480802740481851373298134991418802849203558997113131795380265759242797297572397319020803013239470748808123352492792007577804409943901980360711835082639469341685397790456839749316465937952496547164611672916483029068311983665438605928896458219771297043772192643275360210972813652400285319287181642197476004724797246013025781444949019386501707829897224351816343285510513311612038182117108062379327899402741661915018907215548414535008060726769050087682066919806709848278112145010312846169963465983543882069802853934576826629364335833334151551047643849120489465148748727651268752685618048236952160576048759750654697266650638802652247382353064422538243656170479988545635865981365334626854349104225985416158806583010292099727819812018211725858834362015214619858510403762870344522788249863857476480617012231281189753308698205930247161275282760297170234767398613519409923568660688315395811072654898092946840697940665239095814722337111853374440798191701755425283402868458827932137440574602062847039701101378619383144515991832439222105339322740010464586545002744658443840582117347298302667952329476092391056967072021189828955963682114884286912671008823304545455029938428155024681915816249179945844437097430971605755546253374996970906496342402015132998459117209996426930974233957418573623033702331762102133379025053953166054716889971066059509411646136198467129988858016796352958333630146098847894723212135446201081944495107268133028016240794846860197166519056841081517936464152638371426209852054272721927937180469013729142438217926394037930270347133812448690998550639760158512600931012970025562503554303097708400562420322155307716606920622014140048929134578949685419327613234379177551661458572510482915973846074107589774050350174237663899494035324411665931316150897423494693851765453559438995859614352681108243163634358461994223485444339660847521672467099356371513717815720225114246516829672133537276295183134899389426309832561057736231337042007041714203822968522000964638516601330726716791712041492896218598520997911986144445773256291955105312169697731972615013105175673989058785034093877730153521561717447901127944348555244736144683588646043694614254748870408728137462650377731630893697026262395252914634290415469546886674399049496678226456720688162510817549244253002562327289356601292996267856444694171727097651363103994219864801724600687005138437715715526698206701496709150604251696900686851328413069514088099847542664522536904852758871180230005858766029360615849297626063995716462529177325440407816417053188200325233759125784249573578870713981036729206828932087603610479139593525458875051414633623105115414691996327952194210774257702093400540430012212478492706835112645245335685427036537329722327906786812782262619270400752287918538574141947483411821297283731443995610859511247551001131264665907993443975129902285581937672925635516809436833208504378292391067510493983652612117026859681684349773225126703715572616815233776583287225714453389899693497830977712497205392701552361552425674713878532954326720014525350087250073370924603767588816162249636012617383231747247872658424685924868854477441587829147204502347407491270252770099489886843378494334285458849940954748696539846501741126097984787429269344195278985020701651476865516303933690202054589862455919721824807692479172405640044260140741574589051018362468745813537062375631106911988659099758002772171932002921256265642921467523517885799569491340390330593374514421090657194510013376604831886807905299472730882992896278634467706155694030290041685026038334249613753347248277578178751862431207840760631720509915272130701328371937152014109992883940109547766913802260835875029001152127870189325030777104885489039100282298853407636350918372281844846427758093299345275112215986141387965703027066498394912568338010311246141303327396001692510564129439801929872727007504883701456781919996370830381352531648185914877468111308449097646976732437209381684645040778972208842265124091398080496151872076763554865232854863776462296221070605266158230539311785773001724885497835180824094896685074658988584880193612337908676751673943553612177203184297342913049635722105254604309710111938354378759837993167439181410547861947912334706064047834125037506995691531840738238633712056991869544367427225742039752862804975642952507032187415292907682643635849805118206881655975109164509728919672817028812790328737734645209497972466706680849778299226132694718754731349232840387969249028772724052215834534163714611205347693605155377087256931693134292235014644841370695187923659477287547784000211286259044413443508667445492588334476557611833077275437848899197063482647412079825486952942497635069644926563992469422770664373522169072524537674666767492662773906682901929135972345269046614073551100198716833723142096395075979658271272415093518784106841317463360258299988988439514969807258833052742883159721912728941882473158458329025518803435660885336342679407301120252786327919040048249180512268120980321734619821646230261814580672328478142834441521035614581550364101360066422854265346421482609295117699790264309775817767933521226292023573824229120350395632569972658859033767749235524053191339909093540823725235063604399569271207029928345131091559691862875290680625370126087896422814248662831593121666000994761265947593524684643073515496154158217277685012191509691576806533715924341808715632260518948923902138942066719290846468082181729529516528148346233208215231705710811242777445668342066479832907126706035758167150736517500400262907748972990175144918118815149868722053730727458231607219147265459462787234439577275466185995617314307557806972722364545123798166253949566178035511917662635616405167673757833294696079260620001289715631027202931479688471602248912446694186307525043819814136501150163049883070337457675204310813893179510828390146291599374180561137769489011388167823883814970157239202051663798869154154564939860897341048442925759052753267464689769142745663890349699492811762792812763397689960836151062992046392891841848317113180987929220090173291047402964951813293152515428855688356200898940761121573395164432288291622593925184743984242442284390255806238658284374855365615948918679817617003980667923449460778661628560795177468346580772547813650108287557910072836884928455395846045921252672747074053337793003448063783952246473216203401850635070851147114621546231586211980196717731016866100381366358996233906977603162658179606391929431671451835194683528072653122337096386038135207556834642056420792145671493478679908377294679169057111510872275035599996331045559427931341197874598786644743838493428088691605551881082200214216454694695623545977983545115659432302757249569638835926366698095215046902873186281089175880864714820756733608842492925004085220816208742361383610946632889759770735390428342157091948876523380989514922925238183376393043849589946040255933111079061369912404247064813905457354708133515957143443914511173208590484349054228969174692543373359621599511259178297765574765963324702635983792290941064015511001262367131633784903490166349209784603648492453723264513362649122623593698906613629991638660268721567929300293292190784830412306887720237178623511877192724428933919590022751635886572709838306618343355780825842999116958620947235321478866951477191426877625242097139198183117472992525043162535733439777489227606634584063515024293247686785773464842642450132641848353636053671540304380410738412707411697267875185584959977755162826226659622898107368954679475638048786836129451272349399736176644872081935267302594992595976984346493344376346745066116805318774299954971065950522612632264847230110775024474857750542220451492310166315363043117249093065740144345210811440071644713409076209867584786910739401806055434855039681238837726398665939026180905793619214322563681107458851480794256581062834366161837789849987831742626857142520355768730006825747985559405755745491362234030823151116071275937749761848223359517663618325081774586755553187483545306178524317452701267275599831244103424446096596932027397567048499543968410915536507274867533579139859231484822315870312590449782836864927493040534890635833590312801469815557835231966145736204211258324829848204920213538230619194471495599064819118802150802180753388620228847126876574209047845260540453786897345356371462473469368040101172876897384357787577487171843350483488942195168403769478764773411649851404832359649381567430466236828067118344549565722252410359025053309659687900658683707295500061551068239242765406305104438361690296623384319169818371271155643837326414318747135896811650660330975991184599575326649347849661153845594159630627276451560591754665748800463529838524376258793129235002772311575383648220231545647548894280082951451436032905865547011829052381094651145420482432298625031396748276279495325197335923163705819097335992903565987661318372056010316958637807043888254907512107974518763324958176537622100134640656448526073394569772295725586424931966545465761052147077969468345287688729904311019226537555787259906910910352702742686957125710272418694921425071620875767825668161156667845718698994661660879018070953484508582883145013789657706224262927496176999913868344179278670777616433100903356158522909708918282975710645072713201744636181923744015625461105761366893355367906251986184240496032905339673276335179174016721061295771289391037474653590591570580077083179979433441887658880624390764267222621013541567970489296711151826242322693002280718267585339750551613246118322909594015509616873331302709987212933808571766680949903077780430969979034484112700622745229762201531130339870487137125357523405497356493070186125416268955864575992443569013273126706662190863114149304714211102899844282084899568886727120219794242698143594283332886402003048027450740466869057052074062347927342111110536004159375438611138901359230655494135705338817182769504368832797121340340459361439874055864274386870299257408531776434502644121544608270808948973957226425251271930452440388250073372392488954792356064727018939550930215267893627591911542258073653043845550317868869347391255499194548678392457551574630484148496963576708139314406049648505906944320060456466268622341889526801791636465947219570986252745747499445804039194795639070300873490262424947539857613185584756188909199052081764291781065983190442182161161075584553008254189995379941241083141222673282337398884799003355404939352615421682069084573210944459021841371318846908396567775928406063860695083901778745875556542154298066535076314517314539385393237247033409712215284746301993242464418043027705481857469787018880736394105282402286532564930487925715212293017367567735491842277167829936037838839961931508880660759602699797238550199173501386538889532070790807332869759789874655361733115886691392725951114056395942856457927310757837925992437035175467605939159587498132744001090866381436170374256415493019779712540574608903219923895522029426866510425457192391690120265048791978923369991950736956704221168895644050934623163529714435834914090629068742129550378622186877534044982730476358445053298213212340597551683008968879130846146364550430472242194348840092208395630738363344747225552506045505571195170863806358850960850770967914314614870944979357842352644689308021651541886750584226932934126825026412464115382433873918735820094131541353049146230542816333404188032021340481733155305146714545507997062962693850613508231646365403417451756242067621241792616659898380097362822685344896289581164438069282329582726692181825951037020968498795634665691249288653090713751803309869986914152187558394323430382494152900864154390148608288089591989190692049899591033611195113397889750376394641244612839851265387185343736019709383249681322919161923145320846670385462053681364468192172008924299573376853528132115573740303026246220285254264511261730146149518986918814776726962982486465232395263735491096176330651441680394686201672115977300813793997720684611787716968401831277921440224719723798757558930776240854530252294146244117625275647502431289616127962272661482524752485302322517826227854686646609853452612872887271205185468318937264564630963044673934973968676709854529211741816473737969678180155454335672828506138632498993658037674013539489861760540443418496394819183898120270883925652771768221711483085837824557068264445415805349171928247714892475560013474198342789650044784065125953025831344807737525747585064252733915310094230546734547147870904960025404310559713378197383349519688314572331725405424049608599952447747278012547365122079006196227454278538197650479784101938901777511633486894174407511589820087168833440610846286595479435610470137645141292690367032273807003011907168344484290507429534617722173330294234497794917865393956455992914230376379208620384632928453156080226219655524351355190445620764916400689583655128861378066935257341268445700016095436575451350554261264327965377943205142366663879897122316869332859833036273507278902483833121036446508056895154052322543906124120741917964590628884197133714337083309233178625112195464119691733450126280475892976868784414417923521278476923267602529780737632188729258280713646305778228331047664757796541988571436426902964572589222671822085367263577126341074841182479060231995695952004441611695070712656835372965971661819695332027567864976355204885776569427534130637113508867543309260129017390368876800556718329698367493538300900131787883776090593050769878692865533951552167393073186342582604299344693677260189348986786949400091904295100121425473523300714027598565802663432756978670546348761727920280663196443250152103147340648769173857255106641212480188374410324672933535756398217219602153510134610478538925199071749780575077064948304545298337571846202579427021955075343006725620846603773035672589797796508906816377580174568714478564378295425955999651390687378611638633901085292200471910585029739567057937098644396322399036046151087601156071517810555345007855161329296936598186924541108619211635583081860457716064462580138231235187586273121128574107515538552551117402518939338359089645882942207343146002831371234265184833263401238292676076781662525861411903415569380971636944365012577212669094994770649712858630434977715969856862658753975452448532314171216613990014965082156789400842368844974405289362269163896282787248210731244431065771591297168802899962862521515986250915272615338783021062112608897677724417809227200860780505355073820812169754525737603300825416352360191773125589689751916495522781138336354316780962947836970925205508176284626795518795377071100199877871010293270410400792820010725996932041775170291097897427331280903964185305702650492985919981071619052630101448033772952770359594157027602837364805164969085986164070772591672776767898959881494908801321199767484713671005079146838869614452493727734092893271195394316125944622531249390831880176772263508827392041716141596839222541951216083768642399756236813462220525182846177696876212065313808905115928064981492334904076303199348229062727275464696396364807174825699616855407405622445965150329182728689024154951791233205910776756969787662664492090121617348594832233028772244226016679167272239030557027330215339982912234860395951979739584419427843315998218426476922934664335480164558353473533644820476501075127926005893860467896380040318323805266059305011512299617068923486044685857901340739291606472259096946211924126489794321130119559539155263247719523680920858656368408918580069512366083042808250446400492549278197536413918603307940024312210565927311640101822275889485167445261896742963740728486689527749900207114119622710572935185484396536874113393165891034575092233614641111726591000187729321892710927247765964689872457628650336329668882198541196914784467434545000352197951834045251513998259016525622283229665047173722900258592404305004994544084844210312147916089738632404306976101039839542829708974704458588289981640111150750674911633159283048408469554553014502452706245967462745848808745416887625644738916715205906086201330136209330500373298849264818270579593375582621885014048826863118478276508080792718947182070494686653046907487299204168380707300570529996203186679578413640889667793224776549139317754587335182691532421437808643396711193331684343707626202968861223594183303722538762404580906077070759906613478556123346429189274374508554133933803727942285166160258046959321585988462369008160211067629691902867927450168184257019412469123465526103646869052827750342109202846325238062162839229379319488403478496659841778468014111937680882323090466332649857752629190414422470838187027439987584064677296026721816399114589377937002954834647408197661962279787878222325633595594042320343684377508331862259413310675820618659921143684718815737983438347544234624822712925448177518997348679206812082192179031526549002229521989115285820998838864459683414853562400742796258200395622782205475871722689221028828574936472802612306432770702043011084410392980581509461076208554468444553586333485763414533150804415952559268905998272149918101224864973583219460609426202530631347664947783925448333196071725059431262021101160364953521745491402675953954777070691043804379651288194875156518477102895989725581818619709172796597980416115532022773252064868138751135045535926379845546314644482467752651239477912074127527332228911663060191908206423181335689750645408260156188841437251842230323606505207387279775525249370330708772141373519757637522603221745148911737062453140074796417961042690893948542399774473001039710230409475626591377319092733176488734277234382572248597763679472630354055372920878142510298355134256440724473619021882771028459359688322784436134637724595678818169459461757057545964818137337781021113898286656641179903100629153443439340495319793818609203144869403322814163271319475861555945067640492048886075657513982556326590351891657139127113204085709330460952541336103852993869958859788625360605934669657292320223669523578919679029809239720857672903928100330767125452976783133028155733901224137853421437519276204399201332136562788453275987733626747990670165805340425764889906102044491176330242034934333407298007604642329097166799618852262013099663140867152400526760124712333434261237882487407036800307183101777882801835608358326466050923151119905687556123157359367871000917957032365346760903022597488476243572725576723748007795046071468079073383984143799188871393766904723136396672046176311645145353408416418657706400570818866678639031614683870702884084554044885842601863877855196948841030101381917532405055994833118592849994521943134259630240159633198066372066797017324784358454613818314738683790439021149698542445217052790748494171201505925520859362777662481456754372552248063033514211015820795829154993646630088424887899570825712180433486790711749759644742197141358429040396314053133063536226459232836213306827473720311432420634522539138203792274718496404470377629471551939799653292367435862006805504907274695224747369469117384096274942166235035135766913887632476692061594914653401685385850182134796576731641511802872007502630948093989653106875940531163654891343877951750231242465224389089556546206785153654501720949145884689248749470740295526680266413909654609300340238418926509971235299515440993355149841133222713558423517805841373358342344250896621136478228632050282005106857734230952288307762880955234850348256815695194756692056489738312433677558008173651137912087059851010990981688392141895362899948263188778369430122177191591466077372686338412018134477734920516902771987877783222719404563166455433914605877431335762562134666883621492825424885072265433507207504904155708612720560780569135146726797620307555665786969415599231472595846586881952319405279544347718442567857690245185283169889150653011451929500738300233021826841007541946238873947612993313001510699469971352110211283859868381003518418160049116089096879532652077189382789363083462487082428697220823114294847066751929832066560136748253566321363010550186221105078144809995594973841831258591210904150342970312228268956137265738048938511184408888553893178829558798848192634991764880839018734116407299698603742080159353438942416528138176287385576560667722166418084165865056058931524383993382978368734016064383607241467373166161851792279230987205160501682320459651265969985932091358378190235520876230618557757161038928756907082429255179621454087775923836806970100282866613161316824211901263499013449027092072084722360927442509198617113470072824229860357514225265829036617897921842573625482498910866692946363795918860293452347084508816655721712911994933788344200462967999686032961806499903629529882966377865216684121109750605951962990583557311165882563864978483427524459420730864539060032416112452056033346757849311635475333945207826922895233186344604075014700654407373601964412544687365095673882929019961698662138657041598244369473276830930013932176919118458935104865390102457951736528527583642522634027750149551846664472913166773554055554984936528599169273878083102339068143261160187151937533810166030824670859427880531945071023465912952466047726926320527660910876573687303320292877573156751062406587564848538467972704383918039965530798442382169812654240961235651115125177273488484195229775375163604961148787838906805206818123180910644635160495888879123026310925142675646884229666424500796540251941131217722585719444506706283209088973730963211323565294980765179684228412519278137276975469876420211180464335313721529970763191126717394332866774931128651222792347598223869592122550577021187715945422622296558417558612242652694367426460158981799908980045845802085877571655879150665722266874656837099859290394205796192786045963173475973771091254335758014008243319631752917224807947599248762388890796170896398479732837746718373665078741310895129309150401913121473852687957151472501082155728255395110618681996583814927892216182473786126474882291693783165905916225484997679635777976940339530957600792460392248116939947301690606912742667945664607918821315606098352469501174616484709501346893664657554191466754014140291534841759920560664037508418344746920351048782277739781007124611198234630816668780181338715552064996959192422069862724251555790310219618080412733455227125950121610373997484073317145264041955507428057898429999083582617577151682096279058429982965168476553247137249021845306864147727427432050112839117283910459042067124684066345632574324997412867165151287915511358656235458066913593243424255699962349830954399564538251052443366101667258409152862574508533354434203992114680631985404319241654298825546579403438959715508416576205992848524784193201894164298527686170484135618439276858386653649864157372729327895041745776888856287437290084408239101667534395848596540125506620414955091010457747389254649877613688090845123993852716430259055282207281970462605266790534648855269821605641658007792997264905545473496713027035747861243767529208138542856479248978988777724277140632990387189885430260473915808934583321796161228371164436511884401960432310258828137655962050431486240182762269817527927909308861401558563347307907285835127141080123679137349261185867903253822555549033623644815254761798674655329629434684571617553113492818351441240676596314528008205241828211697131573645082629533816772818074171082359579395555112620904486420617552337333112198671313488635932557185845277535213556168235471462330334554088153527845370238422304835258552983729962342924765734774529716757788914170204150600462948324844375843009276834498148960446631248149736573419047379169291212291821606210028704200108413417331223424384306020304605198508684180407787025313312033097839350151943042089983182323376227338065772737905817464673400456761597988532267348280445862890368984214446777368173893477824501305924213616065049443745212288304370967084639393024025243978980705421757225154657215735626778270801662801847635937599345526184027846510421004910221015665028683591085854467654096840741309257660526317487646582141249728685397907381295732023859196822761127907269246896874754595295506532783495901207093469059363669220604928244748466898526270211056148938865196692933135517671974469242736883458498609930588488740139291681172716251485152030045116482446627474326046976584146780114820766298142618536066844266742185043316214925619464581499104650313998022214015658763290249967437260131364917712959122576176922879454518718606296600749986827886413433579758788612128935610794727958260201668717949687414876451931232957798890080272605159861257451782498023879898594559272480509838111666235570580889282815603659036501831504314324450867842705170827688217187043144618728114246271532578143254551532536965866121056951937926861432949226768993094519240472953705874005291202104612400787536400627622839734943369770222260541818331976868203769211031847375933061728143911056330780373956283928691649131564167465683697732066225578740534548049266390874323367024213984796376128250429243364664413073583474649370489172232550635518266553995606982344803684326824905737833865174523080126041786611427369688389889278791823811771656009974063308441827020132799030075971476852762254997133611476970116081526534290897550430085266926949723527148062782738078622044952600440250427149871106673052889553358528205413976912857603224936367028198835464056676902732710571266713437856622647770535965956242246864282403855194046240999785617722973315031607582633243905812887386861113193530209338920945314770761635424211805313559035718558704691966794297860292675367198140774804909202767154331400702539065009605434145245308148993206152133021574449941337516127518538226629714144007502924368381229400965130721313713307218659842726348064658886306103192886873549156904665860723647563824837069031035781992871343070675301319740084681572628879123285042507548734237779017717793744553816204791091996698001477410151941156071249201169016834209362300959316411953865498199095408901778443647142468647348632655824035539869545705677397032248253332129056172583325318972006287434019862148746303045872148040280648681037819657882983781659300388331978666757649345938760525019541848554770753076529242635091487147703646324178997752715045899105186637046837867257636543466370197035087526132154648830192912068576254049331975101573136223046674290693801301070303835554297828616745690086397337795706365065124353426885099258128161449245379661035306617996302146321515889151402773687351586015000207869841881663954867952540252535637670108885585467077508019045155217236806506434332691261057542074468557105591996999372974951437089380872869920419942541407975284025741744770619335801808269718752913626990519846462792447973024242025217873349674768953727423680313099705718224700555581010859014633423095192289773692041911601829601213501074589151610983995703999228556565629577466307978286429087265151529364856885448142548433079957926031276712211683400380875394917677480828552162914593071287553524251171761910758713427587840444369582728027471463723146448766472984424979652563245251865549411417601986803510176195396419303591086261849650063414393864862045374116273980353675096197991230494850251791727642508344421026510406778088625538933697026462725218625121457851834785434306614530622458033430569082798995377750057199633449087946408236071808978405160672001712396548351111245296750725397766094024053647151656797367606148388900002795522402589969644225177791534317020281507240562070709426731114459082594895365222092867577916551724766350160677042170707851846576252689688281056277429111020132440858647855382001071747066895942269516287985785488803683761838547627720434805878275134219715315642696013494774230291492459848188380906710473575725520756411842297979174450074284818132920414348112070240254828890682177665828715342794594373790469021655341256044260410015323829337122388721977318237307984201241610551358798515047972885391341857289811810740935649848337863014559410124720234235782385865025609863235644742214580410818735163605038892514415481823569573319022090539831204908759797573976667532463657824684126314746106618708285405739398287710308930250650787542315916187847638062169323429321103896706426111518390138299646490021661192593380526454620317617225297639006221142046037650183396545991664819536796184965240012865463212228757354841130941771361680553466902884477379088625420611883641688677449541382170479756631558626361119176993527992028580390479174960825303730142381780410554967545260181740223919885945100722577104230336503965161697999055301379989641606576497350773194870597628004309791464728868456964914775387294981384008438578211922534156211953088658593978694211807093198710888072838836952015815752002717590479725378301074405698448390160703351175509267698849149828623913998980225022821754965556922345050099189117819400110010842386092578956226110447580022265727799612038657221725203777829256179834518092308705748940412385023205309511541572070976555869969612522871422183282702334392448387743190226144092698719839566609878007519165697368110029583174103551601117469252539330239525657496837637835423196378505384483338191961042135971985514459326536438569881062042071665865000920756875079798484306228556820378818508499184455867797768338255030977926512289238712508199068935191302654709016569644510956797900841358043732908287201413443058698783318972619264577304120329236362117446814316175702344927575246345736920400982318487921586695663756544563771597728307599174821029635932118324985483578675799562955188446789642495201487531168700742413964131358667244007488590151901747921424830369162140104959665288997134457354038029679554474230857825854523164045454231916810347126079603490712310216529923891590895604398266216677959705474283146202868014683482621180456802474208273774050213493355445702114303738164279349452697393267401709357215546127673410329688993054832650395304843056223088763949125540071807023004383586592052356155224478043507380426597608974705548708794378655915835095029909721261666564853145801538019420488041960897747396572547185852623667241336620379107433496059020498981190326805921247899487380302026850220877064222492174694882838742786477268074339856382890459648768198741099327689414681397014097840462088986512462758527430814082716222063403229330355508221800443444496746537401095050380994210486397902547858852565510115371778023613502868466182001840654665725060253833033311504720576754428210976279733020818239707459778741325382618740534716649337927807217836827403411454619146511480626410061313027312164479803721209149873701758115279958225764377559441586792342630625664216907336163303884303672300298684333916823831491284125149496483632279191002628365966926795469211943424796421123510902911977503292792061189274376028672157020380444449049772609725063006782041419554223787383653681536509518579368544628503323635106151814817779368372846117804369040416475822522243125341437680980071070162342464531862453703678297553055166367342920504039170109951592946024855553265832889979594872380521443518381037751859449617553475977908989049287630834423002506878309109343278342125486684466209504501199713979347327380987367495825306453452317548420248301925566296086851284815559992282172012196222750576410950907074646131153110017363233296237708099675058664286540223694503995567219528758538131172629289846357588485507795698558976416784851594939286788181977101232374465285042480423745888334847721489976351916920638069890702582709399738236064124628344871365155805094670058117747353237949092852632485868031094313617252056949053370759505147842609492258544587725151483969603066239202870220611490756573039259620003418331534989817442276317258561742687488375579292774397686970965581393834335220026278578691379076442461452987507523679707040873815815365101294361011806026350307991077577824529491024476511909161842964947481380793414217966411295395704178770864097026618241634459656036046692688277652577139813464947480136840609627770929467241387917784654741349930100161306397829321906813888964939240074014585650024386064384246849505273969065733463026653736551031247714817299231052920022743947626740038070625174399055446967515246932262420318629434977084358627153732830719163495315599795009367097000717243854989035929257386298737527034776453298536386309478142136226925551908974606592882364972031539713747950016589251739347259017091620409901575018719699783812534840918064883489061931311715093143008604318902199934522766699944201558128115020816953028092969961733143053518845069273694651829377246760335254022939123023425651616689868299302304121137433068768036728785655305079318182598232677844157929659812742055743515444201770629981691483992992806505224678668074768998240519381316891856988372912385920553982996678331697304133419323502313089461411437686397579955629223772167765677054545473579637743732551440194488498333002605715326122361585255827880349114593166549235346076388167909113610778381577827665306868374841018442630950162903156130044563595556766143147375902502900678287591901584444034824615169972958629346395933001169415763048194418182409910276664299906446854163362856761540868914959938668689084553905309718807131622356656180461976082420940871445021264181214945455715096871674414845677715546944928070874480227883216733050860274669038326455016905020734337559976529320713721034639078129196591940574132745753860664404460818597511818311562153074516618631937053638147300725907686349312804809703543801102550613418280989386459272320996256681620701022905214182371044277409551201539706421422982284243748162061529828028197611529418521660402736137464907603285432771484715475867813969911749049818506759636002125458186692662271169351011887973820385924569475829385774924467705090845417915151292335900519096556415792730599764026908918225295368258651818119654830679194450855641155865840450550083717183248470673326932219342667594924842824782993376705573205552589957649639643807085904513995348779121954600873891288452636792810568806700999134376024078025515077158785299140720637103670116985032702560345819050462260546497591795071184261911241882071701836414208976513419084601211186456140630414730987051708424281379295102734212960107483743124255213280768830403900471368436645882451730476215913311548127489300844526422231169366676005838582922257164767148206834741460075400876796163818712691338897254230922242978962337580421777995485295595388313715300870509734143648448128129135314115856400528198125996805942600379485089452859605697985127612058370586585280109734165675307003783144025586467346670057633267565182132877233101641463031227766410677933871295116511310592878568849160657775856599764684148608149355627902910179465018034583400893049048160488351027040361246031793436405270190946482364367329436257569560738363195591344803756746738644311920566180641902556792318440804274878379217416958407408696416279043473862789530708660319406157644090385474813431150768422343205780831221738710580525238929181806260137388946298971448975990953824125641150956744563001220619753319000097644638919761036992469994260177014172346776470889422166387457742852182840989466914598088228771245714303157647867756692665223311914070080996582798483648898592140153677794018855299561568008987991100122540467559381569874860239043345012444660874013979308015226636776097867081115719822422479665996155816199748376750478905107912022749159524387858374127033544203181068915200247276434855674663788320704201371144707644819324437215597433668901985918076293504620083428804162014073184889607875014334689821505314997454808810847839176066043069910944784717772589043952415529919816820659987420490758142898097133315397778333634081183083645630460555485229242633231758707435566079089741763905624266412373442002124374596316513952259989985696157840852130360377557424953038798676238270143859137837637316900708782291717923511969350602669714099642343134383417855864017876860776771428567776803631807594608497501718245211915919092707942696363444999882986116520227156914526888358345281201140704100528090886095153269962187819811908571030470794023458461228222818160693826926997686255432502425538998901079951084973601293309343629259357506441889538402183667288485667131449831619122697294743479272094619483751387152086149487559801121382549048467344893713743638159125764584760268681830601856436021294559578219772298621147412922816492256750592901460359536409096072989978932819634945869010932434706402799808617857146376202064067613959563490022414330019594902380362398855255598784626379478498786990485871549139968507548258226772416416891897226342596088472734407522550613760266031680005647836269264757257629468188477023814567942148910242356278022918940675120915360918666874033354264182912553737187703737723724103071082672788813633712379355189616176515018007794473268142858925210110468335311235780288829800375854010248854180925854213735414799485237180322654407080266931758396926670539127834287366159050657896928316474232513022020505231015676737782541535804061709442092807099417479361505360401045998654517029077293728378451946402832257506817532015492030785688851223357476175758345585264081251711493958599600088899955723672363754021117269695893358612872733931108517998701725226326642869181497990556006936465209456803528283135909597647393189400837420691285823132468745517886096055909246672103714486905465076460781894998008184860372935075827134456405324416713591149081202705582009757286546576268891873123393013077780931378068558965887344051902145236831904645023429169697766758257686945607155326158128539766394379808389993946708197012407710281876377204503699510616557007186518382578191258622838712390665692473493025375809800402991747748964107881544796859674283588662478947086277626016951537209516971568990125098885365112070800696878717583816982555077429087307707309195199449185552015569877654696362212915433368632834129690825122024546297432481896364051883433886605563611141935950476581780163877139027818280353579824041845242564539276723999334736577373027519704814006698708595986456807371015326729057412024640309613280331231246903712407172337160132258163459364965542774911089533703588513285812725715023875813752191494877993624335421365218743416308861859583237192119897010141554920803677131998502192223620511199581584362444426523301887886698101814535755588290778168643547772326145899965626801595276937617215085519115655617761586983714997293350071871642049634852657064074668696936024098857039216182666247300092071996534295208089911602600233856487658475038954746320048464035765478947978154489159087616438043098162388397154073702472584259038031799514495670336305356153741438756346050602367701924827103619831504195766063527881273297620160666516669516983347379681978280396282880852088428935745195188600026063456785323024820568070065577094481020750459836001979316060925833909656700583311351762481877912747727143734782433056882074506663291284795419130761722270888706850398952886839230321900928594987490710673975294810205092093886144788037229931504739567357219168080160456343824009388500100852172210379575189741910502454635149780521457780116504943310918742599554509196225453662578391359032009512325121943575162859607396670448097982667084109539656132297402210905657554722905734537590010390480370174814339456571755219878628147968362805402507065080447707734965652651625860698665939186024596023181717776687857261311155559184027284685347270994369984449653739358674473509600092677355478069775254161928025348136305561651480595109388095546363206679555659026626028241272766325045081385833884537283736922961739047272132176434150000333257528842590424851356240776784563732988802677866502674326157109373356067029495772407909672835681402593973181889425472098471655647733629000318726493889384499386895473230471518508448331646114320979836992191393775879153198457041305820990482244651408564889599366498180810199422799136843818264237621345992993407430490286419718176286784520766998770844071319307817163371822312184863859161968530795598945837632413346760419946768625848538321328769082860034736507721212320538633717404842041647732070937781062266407679484462204348409819613463866363937819468089409824653361807490594899953176166327073975281245855876897170499606331904042914004134373251115788903245530276647178826364293587797859463700256595490956769716018929709115380450438909829271356299256066456673806162757946096598677202539066356218866164263240024103351770026436658924190540464139649698069541441172840469599446563105996756308653755199538547699905168349166126894147423137626997434165313115725937830592908644586095302578812362549615031858436299052786433780042217380905707937107867526197739009526285413066123456760508508348376881895007856575463881480060754511877352740814915851245208033101200391905580763684661794748048409199963603475711778567116164921912189234555606923136280321379595094956838930089174749705221893042606105813786693358886826848599500404560649833046364772498705053745295456724712385204156315014617156542189211280797039070426161875256216990809108352819474717000881041804134812238019182377029744916065376903761455842178117104602470981937292328138637657392864886196551285219105545103253155556608126290889095148126572213329164053390260216272254749634395544993579627259139232063267709304140067889481974807265594692832786262709113932485300066259823197407586986534905947183701518035980360869618163651608911897185859118142184667324124641213929733745923239520685056793459341476520402005909734788916710023178773725530791912109631042413809121709377662284054599245426183939153209821875213167779440172568160804073668253277420591727220109329894582140940480257501265764977093603556554856518299651217449245210590832349711505737268718152845260553922096606845646340608396323047163588525804907760789717080458650031019985337116316585923595064985466517544608344840658720648627295068570740513406494564068247115605399762013146085932626023569277413408771194257951052023392589093414260657757308524696052694686503621308361377493379784584726576815981766460388787774921276391724437625636447456823149445952636191731506249099830511732983281859329498919682810253633525902028989876465252714348974220488138292156684283096331576710871120335945269739221298515061526520901136923968966430554153984903519030857290153580856093494299867790507299501141273697036031892923673335137968273663296673420490492822540481017565547357313706657404994758839515632820304913011706909960940298634342333659190985217817034029786324759411891106607086949523631902238303236883104567231587612406594871974099087805707586626394705018989608029214583039607582267210858444750393282525348131680919482740110263505232880202100606298560738797998724984614520114183478961110033847028916247927989725396914202955710710130858061851163299258710169214813550378308854542020444987843722911558441101350388430601063854041923174116629896595326501865688626898803881561386363357512952136713653321860091579822775878079271359655461210261465727710600468993465295931005627515800187702698236590131644923922976475465006080291146106318943656026703167133709337040100695935113508258990373509367036773199549373165220307141610965150551051425624955541302907542331041065052564960071767820769707107926778884187669642515990238603551129087920720648709560513506134223742793366310699084294372593465742558605039504472689513731013090738632390407678074620086853327409849456780505146028631397514405425532026822201666922071681851663041573491982248936518841932068653082985158816474980983948867291783897698134700895356358656198312213278142443580599774975710285932436230693191311426876905190769928140531077333845058556893437870941629177119951687939959152421727980555183775378924750889602968160569907426521579050346359251426405865428452018659844254560161990244970908760923798483928431775570809610299145989513033671639779710945654671838449538059337318418020006905024960289852608618340947631059051575620953780738308417586558853444652202914519312396860234233379661703070175091666437188707194664495950321699582359087934785369268273245625877754302507520030960191330361123547565624600840111247271156127471165131014213637839072221977484689927805361085956184276467245576829712701751344492997849673929262512746515843414587141063423161412500611320248039125575612008593738168483546100191780151790022319860842520078642859361166164293453545292914542992317425195494200114454692846492521820744430715044551235885164617306357931492080703430829249125195697086546247993929851628410494860674700444735428185495017460513314088531498531320389389787685562499658431725534348313646726320273352080771449647615984482972733827639526645120437097291818253712485118101340867295685810927357233774836642073171304734705929639087755805355306901464296257246204092011122416316789344434846211792775075744114450545367490214263950654934158739858107993628255441332922756500351702670951226069260495160446243735073269599590414622535148311466301700452935848722273744673878309342853536645716263015411463457447298992720430308646786046860405592708063727369462742705963448745374306515371030503700152625908267963760489741747855791712477194783795880476200874453859236320840640109925004957274695087949695168591416643298715110203835628535445326133878045371769142040316727971393467904843115379704526370788956916441339855711354605523689725429880100898659249556623401224366063145042910873895875330478848821228178756111917855465090018520502252879364642745573715860217175049094859342975275726142029553572856137951490835138208163637698744559502658534466115756381141676642118254997964755891596860583214232839841408926157897790414446144137409868453615253699126239853087537831700633751760298441176598119608644774121156104945265990706896006694638015429725016732935017083710236505499262380668561770653270565114243327262658935435204954838489694566108288475997472123354822118143926445814278845295446386948826325400102154711199403436081568806839313399016655085288162598187649062453254708700629278418450441687231578507337763237304418224899677131321015687918526094805264742299179638467541216876116291704967907692916702281678312579528672438929965732595345061398884203947680283992480384302158946389996625822983693584263722962551645872026543424429585291030316885556308051563362851177522804996234941505849147541588512807097897647159245411282074006573257997834699194646040222929688497409176144899177261967497078431662460149467763248552436939324934120388740399748628701983743976613987519052646340048103014969928637679080679448024454163505311556456958523433009958099449765078242881247825863310733233344130791930726347317892643149652627262194562781961546255546081981396783718212226973157985758165228297559549851336528393742964647354714914370505347770425320099104881547101944838992597710231684619857947892326249236995504615197516233767373795044405755185423300656545856657747946015195019823441834115459463745735880320927640119264644269690765700092672626967216487778024484185614926786568529480336557627498600272208091230403294824480660140773103098491626110358154287821004602462031859678475723764237886404215592957119720862613693630912942837012665024336808945203478725691701437440877519357453691167635275189251863354046389810694102158002630302631886202302514076725462488468014545899548220353338693066585773579254269351137745668424207200815322273206514918859755676378888428220534857518968506792190974018666717850656294972566985634868665488830005678518010597754352214675895348460796468866449178363173952410481863656521873298153852075558173491974872834775877711799004096621813445232250700555755813153283005155692448494161828558017086641627934264980480809696615195739540200998733271021089524139162245062456429891271900509168340827293723554606270575524783714280261409459023397419318722719340500119325143065234715219983129097589213069387856389783486851248568434940905129696235477308982077584415330178031624723403401984935607167109632649841241358318304749211161524343660414680430408596273608683767586143787014797711694014251799802615682913490230793823924496810893767934682664265698365102710950143236598147050773364558580342402269587074369097961893820997672341615387227808522669038354645492677237953798696913971105225310576143586745780849545677525667454845856160765912687689080447369789968550844591913645178512139767450035887150821655892914282087047318001322222481323590326376263972218804340892309413187486341524066897210987599365385703907031564062011950208120404155185691849582111859823178120607544136958289565045553733016453952441334422211936282240592806456766456166432487274633441360544985638988162792053960968537704277846977916509730846376625437981522416089513621502528139039385941421476256080304914880022401330137360399935248754490183945740118359862697898075182330732930196333874343456949741134614827918158529007637310444603304445738185906415200761707066966209506942492955706734101466064096414145844480655427604846313727634048416608416606693644373494401213884409265759976835797901087861536108916412378853958747941869911393369538015932233163200238585620396392671179344362944578239268553652500899202216731823029607150901593146048029306851925616918265032998147388387906360617682043735011553606250609455247828791927353254354105055765974389191376636197042529968757474782408785588627547382555509052588610356317127083959347651739241587339401435563873758617922127727592723488924878688236219647575429026432485572567536993186124206394457879124208229272419568425734051404101070029209434417526563728691922462996405203683562515888117420731586996223578252525267926840665180330072379042026436993142845848213447483532898102904877284211945099272423564978803042308559110585374235125067751222349348362615344080851497986035999637501033447020903936984878309807920234938042444680594500712425378195910952274678980418431140044859578169310562272199787360952798584235121846324101897085887659762291283708918246835896165791653687391393557421843852279047904395127279987281350848645323562424166426478056232252591609418277004709671365093330796746264590222449673816078868583926070351143540503792990913277270690786350170169157092154434446467916571476726018044026529634616863246807774423067449519361166081067321951250069382825546032108047389797591328142548646449262015860238474466668421628554620720513808556391318736604049438191753697179316588521092657682165498766492688892423608927778163780872076446636586620753562741253387560173827875818025198266811824720452467338120210944464465987191801367932598768208017506672706880456235127468662686634263243208427733248867454775885994244054495968056270636063629568218992405177721257131400870935766418912061870513297337445343618073450975048958318208509708256683312420803378283440535516165124072547897991213134482070768465698917066845746114629745650045249232165248461755759480018521113905846058649849184658126986545654941277701879187296886871076376627809760951940048213839569623931723812286055514801631209058233603332426434101463392634027990264309358679658265988258964845919888196326300956900328393870871796945767013058675448780298509723639990566821452999690068940441116801341086379804607743137723910820931870521819942577327009818058257135309280668057900639907489542772783469858482824417920873665255454414887517543950761073377601740654002139783454329915588283781037665720654276126123228376545733130245582288988946396083562151665799409150826051143514451323760487205231678430619423924682037155348940487604158047497741637146296393567154675434510777907129581358869025832804827031548600983538155957852065340742463523769764135494777999450322477312108157629497024848859410737793268350437194042720821364553826623901888680630834259959916708866157341833382436309465551524728972202990916795379527414531839662180158986192905642339512122340949780700443259641907525531363190605082314545775242539015984905694110723664813930557724506510317635301401072314198177525512401068532674026905890262803950127527818932370602371889803476167273131572240479625758708116426668908718879426324179492545816300344517415265679282830948260755606901918240242441829235139417046767791022626191563801346604806908258626800233706668086672791498485237294612014858973400399249808587441460956499243114352476729384889406631940862292072408097177846937130427110541658494144106030489843090712968954309199212320493345166539205774144379848470964135096027051327954119156792026536254643790518011598832721382551150038219904305792016061901575932491903992899667137698481024944654283084989085466604127915567015343422784152365122595455838397319334328638346407511566563050453639768703374453589080271326880221597124850876667815640260176604203497731647432964628823331625097208628100554570171507564243670272440301392604077056351570786438404395710076198681217940402069365204680909156893459093327375241187006710925220564450421633909930924394775062107956403600272576020768849718820840704792991566997529687923780314512055357031710929401008849683589096845634203609445507724735513335486415448301035227268071163352221291788066010278019530061734520133778917402061351708216737573417293128134072199562152455150877690440618338130061485454420517276086213125723785658356750773741725482363686274250063844361782280514736275739976044376048886328690002836187645266167630665359861527313747663875847982351197510752295495262954423097605359202848691520884245165592317072964332604429128061047508842099335340036109437289098671798473526893719945938421093687855428822454036271243431737170044412368252989773187302302337461886257829312163366884723674117082061640565614160933960452573553882479425553801701668050011824179991971243518525197717410843980615790906536052731584000671277125995403514308499056420121393660612432333825332403303117255208760635865403502468479059498124647075261062424757046911128629041951567896094963023106912142386257337155306790174983495549820925432895436468986876017682817819822103340741267153264540265346834016208738671554053065969168502653634829996327292224085082229090996118857003912894836402593510821121121311264915461834511420528187278274922493637908405336255915452795148011247001457832557246011558694019412811893963911483898626654294984747420945301787381846814748165091544610929939465302570589026908292105943647491775422013515790134798306440783221111401084119132820422293679520627082839602131798310332791331465121458604923736742796665973701114862968443851785790139018849426382968539610844853131313214254621320202093608248810845867353206240741203924259200841254510426788735124272799147053937932194533011793199437970015848848605211578898885410056563598398722554428139555915109657880237057735774715600528302357253988152079427235909141429556152648034001782811322987459621524302276452287462553365122143713055949801458389109334604441451524453212922343046126549963279302692935783266319042027376485471939148759636530148556608422217799703629918879942224855958000601746825163896698755162066980924782233818280606736225370896747940577279560162167088174663047453103405180069219537946453688514196804119391959182938943779385489118018469906733818211298893846681309819204028212796107986671100271686919949562074436613789745403768605833197896230514780132001872544389186724689623927547185093799038325164131998528214323799396923439506566865746070169674786369445203467650002322392529292091307249860540546508507249377285497048068393139412768092109693298658138247858853649659391824807878103028082836014662917469675064352200443605792694323784880777861282630022825940508822819360311186334766830788641849151005717971526173445368524897996081832655022607311999218902018332920468568680534932485373920540788832100670160340189196814856708495850646816735619419952265430575038150307750869560495167905709950868343683038548538790647804277340174740282310054378042286335038359935408303579117014726749932811984453988638746517819391372996198265573652023420634300681043493439613993647003281322625921514525001488137884278076387177604587692192419548001946651081841513638975182576875215020791404167006993993245805742319713437362377410572292285495441915797852328096071726497648609489343316085715574148969195157725440685757287819681941911577961066884279817783197463890372153285797248463811018023780229874746651727339323137634609667578029995476798530661853289190385919444404945484590400172783145646248196484335708520667155442131985050419491653183851641109470239885154106696294187484143477927783147521232110110208540754660222335571373331031141354949254237473193686533394924058658967971656914660125454104662660667297767145272167950116837273995554703514816352433005250529889267630104621352270714581334319356791963111954577782029580063824889085751777927966049895056963351498822071591387350681339428524574338387836764481354450050535954257931656995690087328241596221922940143582452523389065448909637992510822663667911020235586558636850791694739197744627999736971433796905719540936461912877328343186434763362855732449889178686108553605354348461750829843996103580119374485660576534444555137088939748460856020405328609543863683953623772221198653054013933635458986520476444121644515843818910683206316624742457604265299493392453931941453782970970150275061065441934348028648913698306722339539332275076697524906846215772115473571325720699200034843636902932210721846986237356286618911658445312218353689486762120601025996309251918068478539326604620063888503330807025283753209507343016899420138098047767609412044760371097114923725996921157069657169044867553417625751915055104187202955432153130124834082893244805096428590500556591727243549720723563983359159853169214637719594465721169512021562114618864816650023030629661992310469443879968708798046380460450386303703306045515835593985342704580746190173971062143822296601200964888267068891352059389244015614744830426292548237666731234872043647191675396832273819715141778397375537315902947471443759935467592988024975217383570037485051850949302868359767099474752634067761988342270040996890030318051284476948168324782134904306407608082603250193485778627768576215371479768826372907962996169657061311003582469896908191328326947640056093260066729876676752609448452820307088315617692018696096103469829813524116604594045703993091070844169740469903249788520965820310378216340837687470841580901371189353874758283505534255398822872012185897021384230112138224692441596717205017102884658072155723484491152295743945046109464543619502326483589681666613655760987739799387724809793772113185082263379322182089227680899136920545078950553892992168483297765692251106520098290289948291885157062019048373575009228532258210036040518920153953610582949986528947062077228738882900475956964006884121583331258127267588364529745128966659844914731605996104413863792317739253736175388183494453961756698020407280934823323313083229702550585375954167623959147910385203563167088180529282715111276405120543031295889683338745498099547770306135912770993352088800513579860097127344471830445042999306247508048036077510923313190961766640175753927806315737012791887113692346595216030518780135558312482099831215574798027328865267361202427889030748911526050027131262754958360131959790006177165718512069588423266512736059557568001390033853876451475167888443549886942613595832348430015233709137464155424094606178239014843785389124430343359011160669859143861759768921254352519375202111627943480644400756163788243301159096612943969786487834634178083934635569398700954924968933855331952750761855870377394057629984004388440387025338753211399883977202392520426568228832391473074956276699287296596982380279088137018249480916479579586177749970571957350330802008816101028206247348931070829657782977466255369401117870177058939027438801800212833443448452912215738887218524747433667869047143203482031431254447358585443053135222463261185253944170144489641174408457050516827209932847404067179923093599491809514208855182126582007031598531144147069409838161765312049854433713148844781911082392989873004020720446433405487071413297848800355973503425988377112352348486184920832372201519766117955611044443872035650776066747312536774467791742867256638686929618051568145359101334240000864379492178302032313592693096443423852488941290330505223848940697990471519091898435651028087610870761394523576072148749398307326719238576399800038502908547857136903189334767981574724229545488465004595422095513819300283958866281061364161605121637571763957142783772486255967321936426603377592506072129389480676844057964271925577961970098262264595225305378594064678168798878115441740887529387315357376419977782177007318899233388042639982774550516649110762402159715220343981202529539538044380715935700077520153447230582344686425408633397123525046734755094877566121204172920868634131359589855432872903929721948888510864546882988288223947992688644492002280369526009998973307103903841599914175446178068892683603398714291164258954760511145860727156799795057875231936349189742883729441744610065995373162464626301443853316377935497061777034817829130222138727378288860698837293867384848309900464920305143833125075094746051042436048328148386802109426576730233860147715984271365959307301747930500092028228540814527816110693384296379920938723736497246097246210911415805117110813730077589551094384055222181409973252183668829332696084548414063009127992007980522307219501553514861089720665140727332902216180165167735738458150674097076021676769843159793533260535563620527033470216968253946627388194806615349620230873500877763859496252922415386164411019585031586352330221628920708799558529034633674538827946401942737936675212156374337215624687017950082257777024022703766627011879890972083305778258862785633690165016975667594994074292971311640154073841957243574870465571759444997015469197402589858714366478134546512076785080304511662095841753172688231711714300092367243608424949448480069197349375569083571489664647849876882278640871509005682804930520202101697757591133737163416988457399556565819059124333613391360664427664100894791037074459950641210819856857879330573272601572773359398736167674974579921215224039017794247929882343619569722561431333621624938683345232538754092001659399556695747698574605353049810043657399618474049772248296340857914095594409372954965114720225481914641828534761031189119624356885304106246404294759409739919840142401420332780226569084059762330846442252128720482132226832406862665666304836431910892473710471918528322882233170218004100346671750267035184750740705076453577689733659825925557970231825767505960432219151051231680718084790225603138003726431059674112445777619188719338965695982511421632220252032171346353304999870502235499791472488134467285974726044117765783872571665478328082915623525431498309818597269051328640287256663648695464617451735920364691631179990704211899153164015405161501736029637586123924514414098093503672039223856934767871803764978508984621351114096794366169715106084112428639800320215789507915004394511228180079355259480260172141954160355173962113664429126096814064753935775746183634770967820032606273271540000710871927395792588115816077515019744044532509754824489925334158879271964361139436492371491011628359388479763784343276393767949030205871095237042042301978611270520352607241745640272871995753629619168639852945088950695047433932949479538275197542779194223150001947222332017788344502819034160268784960479650778854515097724439087374742046219066928292776124989341580407046133903521715173890726606157233925952925265330214914993012110473609338668703460984032604178597282441880538557383276062680061477364825674461690612622320689854883710433285285441755625585478701115300757730544874581111355633178476945732355010498762914771963527646877443901526478127906418728946375902785268938220574069158404871026088462560639580979524867687221851338564591627864123115877107398514753555658376087216701720570346427683091196001243569753722963635722672061714550261077666666266900289872691121786811582395558899111938530717131072845868456750588960237088946154393662842736454543344300254179624875083771224980984645501803928709261622601252928168653935606693784505626196105815396082946196765852552684045393245240348103666420817718999639251650011520357982598896036883313281778238643502841702453426234659884025133072642970743886685444864518910971026137980227064285660861327833999403946674949635911404972327237501779422837985662504573815848763328795834883390303847772256799786874646610935628535858738141769682580840477783044325018071863650225709642140376304933428136879324125421058604718939928890443640263580792213279194456377425084573074155261151174048145662249743170094697530426802829830429415213462847774880541975299741301778807534706912802562301351154853913888201213804085019483040793244354725127550658793224661317065460592602781147689107730745755137533723403501362278612817877792317338723695089421023284535053997463390063251980624964487187534009257766821350560141937521323045604120726534863833885298080756390211864188347014715708549602346506971604509911979802884877561335407656299683160816119053800636696539431564004046786176840071754431059257604756331313051891546383601546891552943531510404266878627861525634568825377670311993086453936375637402375041250841882812620341371541574212066102528874777102869930579406168430313726797668462014664732350183485728949152215028393676069595874494179538224237103526249696086279228834492122961859155055515309275798661349933741018948647042056339488261585336518856631280677281527114417505165444508590302816820643657357317956876302231429453695059972092891456095374478305745215930893513233344150361747408298905886781237255369154419241710456603114595048027308573444051649939777419730840129501595704330487089091472796173518376762876224019301969089894483307803548764739294138805846151255053643401395376463967792626318885238569016012400971366717562979288392549690863727506330785722006263893971611312632121459643564230868776564032494642025225844009700146777700415531003497818743554459665150126495084594278990878849567865234958713694616050765558796906529848014606085630172429589597462261489482222147131349182525834008501991811014775408038028528130613436595699897068904994097408103825814634333040136505019706804540471698694341872075956861536001954706508657834631893444781978040599779336301269135427371945086607205535857755721214249675466999865491069774185515004748093536892598211411924191177815402191528251647031090450401738085408949498029649161934828620327599421486283422934411077908547435302141279076066292759245262008323379280589145851145032991421117625962528017141884871434351789222704174992410128321257498324836132630517328044672702727236703064716333018897631749353375221822381189875432185168677350667157350853602069936163184605793500095168237988398641209857062432774351803868200498575298897290726230439692827119146002825863100093219184979151911070865325358905685353114051850562599721343832281168873672477298430572110274123373654212668547931324257106194899763063783935919863098145318083234016023725702618056966717519844838455078238951640263313585825979034332496494390629644189232263637211279897024556879886387125975478507942220776630154330368004973422736183842267078023962680938832439662156227025416199363317274422870948194100206088002900800069829254347592356700211718527656507500545792831924745509122522552815481381852250000637564457615092665658048203388340616607523697268558160182834525962399862486053345583423020161669624852414490404545519897322285671247730656001875073071026862924401218152030882690950473150617434911779231765440826043039618723560521409827874670302407791027876741449168030002827162470352468364739811430189499121207403573183907594618617521620441950607167000336573008312059213554328842120818805598156473709634279452664454237149201848926353622194580666857111816425654590299863317114831797583414603706295263741379490310794951886862599386034304566611432814454522637667135575453955422615682934439638028888957099429036740215388783638987389566494513118336471219078556703653091703609584179494302070940265350443565667406093006918716262687532234858538650496755727340964458525376114302616981916015394283207198769004304824273986433785115449975029702318566073937209373267071547153638928218828174148715430984918243502144654985180855219063956974813119345088218072640859483844440435215948748312048859040834363365579555144238795076909653365547133426557309228554397195409427704340492913514119736994221252736579178635902267469166789704358175586320507559873328110178858225405428059286842243803493212413967718601296756517960110536024476784950910225320535575475836509312060698830384254573811044288247604273028294651344732782524361715995504250635316602113025101859980634549411905303280327626361683590459149152643904093942276514465183981266940512625639483031570653652292118561200945883812518975124387324781229345118562686228551292977059067996185552027179042460392837476584661989310564762564160675052967034194544510480404375196769593312999663161353959222425350993517609924859950492391335202086870813656055865344054665901704544995664514920598887233870227600164506165734765074176839673778391373575962781969778239618400521069910415186211597543974858362737315871853593833986561413835839234207284454241375771119620326763514007786074387717804713734816028653533118995033952764122919437680017448659088443426278848092651025445762768888461731210264054187013441328094617296882634631769106921926918766037227950549737175802485455919648364088678100138737941354985591888243526465510407345583667673318829290419643568129496716594663585098977114528372582230126234406149035060817034041568200307764232587681329031653427151711692977380283253403303743077353986349531207616563097369373975226474413537287746269332599140311976722502186262240295418195409672877049893776623563852969292031161384756338628447799025800063703362416794453156505578190475372259488528690425049850028032081905706403745657216117492658424629087686323537919957401565042010675861632976744700650395979374680145620105961953560303240061244551977055177186398351117884376382228953624986516283541371107377646373217171531800982315484963686497115922924296016326342279890117606541673194446244807661032742959085057166781956526812779643855224448147915048896294774712747096645087451400804703508975477455338931165535684196190089079733109260602989844193530011724364600060286542278015069645581497684846888486798438810117257299443475684661765789701321446490642471065940436881246682826956891110677044976486387411812051182059870191939207877406047128530139627523874992862274801638140561102848183347703076643610274980827911003656826882114579972086850948610641281085502867896855817820358254740909848031258811359745240381872033445542495011225270266651997023676715751140529131092076476741735289473757644618250503554877195422680733190391490546201525937175299484990277607408601964209713095988346839151341535338454902872149311302756899631496569704860041164705905833445763489731938101350308375260856403641136958965254772784641050699910265437420277201014271660605338579221109164673857576522640608522347247038131150812072722076275024666261872532811800006447580192675589869737285696142968881204665466801592547023521901728803854853196310805393061133372971182947373406492824452172093417614414357298498812317980179223052787603213070326311986655079065682663183975589802816066849882185287731021876729416134442444423949364580200204386217287398807304852418680473257733726826083707677976230927928230708008818355570136774553231531154203592429232467025287270360159602505101560037628844044035409364469621521203098855773838801590559862035650518120618794011971708932398396652037335014796393511470298675566077429604853815047296440490372104406921176003954375783056732331177347661526706096854955814783570065191379157486118197237426248478212936710493549908865122562029118360435682930658491979999619178029248812514793785815758548062515125548127873402506025552838543668558039634401822585032617634419019520331702527728879858826573225600481079846182433709241730390976728236894651701040578268656086752875650642523161372920051824831525852512993240998778828343781702765677052181447270501696866383156260384050188011266154527307316905454994788328176786734883693617327507285258245349408186069044819854741382991139387405916671573824799032180903542357764535708887203285544786495481157758972539350363539860719535201510797044401913874353123804499567337200386866791670806736277198006329582569130294056699301414959092185802767697577094365312403965928970050971129594662311503751817319778510770730405197301448753609397884354728794778496676457310656677286107076070000007853282019495225021050483481631935484625557066795702404633238159026079900213280622753473843020340799737313834104598738475981089365443840411500337353365126050611261380251632099364817033877872683812795922521396918222578322355935591733547283369597208222301164291111963300870270077227433609497884126926588948503027671884720268500572696972359469871026977722967928778048891979432319804809582095399622680941757606860923962118535835714212665690545353591266574811098722723267198632285712435540232456226973545711295864618922702534235430792996698211433167542652147538908466993396383129319279309852630930271447555540097297920493073962955601043429961582553289061522422926681596921696986843540957517432309447965532243525663156512816371109962508597670910443842208635424036127295479147298904262615054124898313197499444494758470049957347723621730935567782825091992518380828054115405883329219463731940765596724713142099248313765610401068816999963783803826432827873215932480513181953916429462001613712871909721661938386262356185466303351849941457385873492871498489271691255322351520753478278249322968178029949586661140249494420707209081276743731851293788741731524059129222992044605149523888314800675775327965352064018344144521801226406589674899710674442359226228838117664992308885021805762901506227760282871275039761174655133467463543211879152616926848159884747609327936778157417915967434729090716771718135622619398035604647414149655809135703635203920218755732377396027133232265182485610535473247562096291678948982586063073312634161405753419162875481981353254015910621273039545859319245423157711517662060473506068044693989860142206122506886870798526845254910907537992199634219690301072234507623871947674383106379122590592913624889046385136675434047038685665600998458376115296583781006823970653466961006831248625821727237651251003969312752501405163843291779006292761848408142998357176291842096914308322482276733317905862627798774962311883918898458132109373060136043145472905711903963473374376293283031967183867986454553005115615390100440680422072033951029278193987651346838566262672038854702432928516261909579604483817420855827264157611524761890607734583654720794118864709797072304077603521513471112095799840292338411817269126454418551974086317282298347226626820599583996379016146018390700643507984500987001220376370021643966916726937957290223390224009920278460347353062672642778217807836435455273364196121913870327040335803648205819864655776702232711406771341576580326515710765925892539491329097134663388841050321315336491013593059548774148394570763003845935759215594616601761419314148697548924241238733189174433202304338884684966365725753841627869853779622382800039551366620816178215864419804498244873642041483440218830832961403578398778341256696846003347921977018478565744641425079979151234510704667928814624828909911645671578196041114738740703783608189307046398677800080769039385281876466117103084489972438457982241332320216461135928250151868029699455860137748196465701744896646222178659598351174625054533306225988129917314290632401704874891526590202514290537364059556410670447275646257430248664350782372800993737497406305268515764441251630082666600562446548116850173710640545663035571614757757782229192502873989252789523880628042749360675068047186967124786198063252922281515369976747041384999886311204128806827708448078230924177718954638267319951788920824737043731309912382628172451630792636155891199194932927595371496399817780580882748723416175677098779203196333728477619404551904956007480075706776460191221321954715703511079946816889030040798792598362458986569102988619016873539655546063508795122493659754457187853896629011866351043777152536959324010115984353789475264023793716368726924401614353092530000903847018212072447165514978317173741559723304052352939517330819797080321423861468945741350788068730149959271380430097343648653273532783397275253921601361500560013450469539172020972514860884231934431540826942032828067130154919749882692980170765244931617784406043351953707110561870282616519712065148545862195197716220302592601186177231387333963004936478763351933573436598547632642886261894833281203543659172101216528338921650132715007760021878953058555737135787366048299298575761961401015518479879474558183587448578438310609279553337815043456077576517141804102334958242561353168073762808955231329484246886834172295239614928058984817603421185069139521970981387944657363724907923695818615994655970541941974393079409462809300733360011994567798087981824631192747881615507235342600610862623974639771613600729005131365640495182056195086403200108900792902724573889866565407744237346518428470197236552655512064437581402907716884749954278996757760539953261028826955372752028908990107681604595394860731276377073603660275047601716810693649260257674318160995827496454335394010268781334175703038974214023083327260948711627327120322434803913053032038658845419292500825039297225178700646270928852730788855531559617613556911326291353403415728026237898785804136669762952224914697863436786955567811971602154651943782448644686316084566876019077676002280406921211626244072594324025059463294100977760967677634210903491675682365272293785552358036816516809649460488928828927161834674757455419992865254444482645403727561128806049423426415632731695683147589389547579648347828944609753795751257286880995492197064210396528075879275703682624510372638942322045829622518549173488121586711245781717631909740267952937545966039108763363283271972221843004968742794169426313651511249284172235161709895072308447143040471065084227365728690942986811566368994753327894428929896223946477105538266515163662149418788661935343984967047541143478412111497316466866181099267389482869241868474423892346753662148359681708305682586311365689594691928767356011952899834476082559722471402612558653633130338749656989807101807077080767806721763133918714062802765295480593373747329557538573668653979070271272586981651253732956705060447700455491556130891645127663469696274327313569249723565146191587747260598541171940593886976916247260966517833213193536371306220732944518531495548298678764437818499379510022338330354790838767878412174477576166493288087080639131480206061935711602470392582099505866949857522162940497859580573094073974070617138113811488960311805418635812184989938940478140804306400950649557489007657537544659809009057662990063401040449243129619766194916455205336270708579226973263884788089892771297751873223131973736291663607272358269889217639974052899938401059072822794253154986437736562986354836922660762976544915978553888198957294677891586254044255661831254942077312928929897497188844690443578394974245516330506913078705017605307351615648615006215590647440377101109421823203232505622316017012220986878932074522053341072158697661318501918816275314348565560515969461680737878248127204964451975697503998730774884700806618419120132481230138592036924059740908990426164360945357528300448924773775897766282703801305103130861414655216696293311790377556856783807756525725652289973051678860203309352364092259897228563857376933964503075669968958715763183340545808271472403900880928466188143139838388426197438521057931823645966055598867328076726002380448645720192688129814993826474724134731562393990671811436949261869506291491069333984436832382420697226914995557542962755101014297530473356955646525191951680478924882490221052027014410912990067936753417127915039519973848635606927343097978177828344708608022734329305372962599459679059632833287075695684401212492384334277574778335277996440940066586814417032081624202724724957581744279001315001912423018126484284532208534593931955943770007214645878676385706203818644148556650123788349591873790007085685984086097735498238700802707813001766642539047676379133773260086035932924911341713657234081006873592331046926177859849683746338923322313211007657237728974543228756142564910822983299905981969465031050799498445961204141393155489458128145816926804204797106434199374448652817585700707344709979216980391779321947751519227694485149251417925104728638973234925820964200983016393340472856685908025192469540750221065625472334340888690389629469709323796667172659353698229180057957730535320196652449398507025901082370662525444308936602856899872359398923459663690353578175550952698633942360687074779828388086540250055705647687115408100877973195194426273338674417273112165877626257203442653861823368753455233967487709174699086862317049122248050973410086288045752879104266817153143997489969716890360197902538378814198076932515537214447190073255647259348095169013278998250343151799664827854890599454550135262399691282451193900958870902986472035706541952590116487903368679639466157988542366755784495880981419572691483964860712504754029647844548448864599345159110494443207770559023080297149254876518919162541376464848899023891679003643569168358122312104970893406372769812237936561420756864204466589312944017979717316341405511745724623258485947236650272866780437939671252613832283426749816608971756697502439458185956056610882861516064431937801392055738672694054561093115993640567486487194400724879859097300119723977985698435883541253454411288933731756051201252084346454422426790939014115442216059676727325204411979929179178956792403128181293814856049286609506220292258664713457707822451520473291168795231176021210548250071658057324656810874910830576198450603577682873999945963178288800297897934669263882078643565903405763036184793722307154669797378003074375151371512844665486886218174406141737291764367963714261593103116919550064027575066291158603195598863857173882765321268560969145668272489744349963283868910175819340698074550866182070664583938200932289565712763849707337023291120786769775281017911798387961069025195726088751556891473202843788420541854880377454651042677436221485519126428850645137778466811139308190504535350004302185710252728273893231595321113571010126991849933668666047266965653534732270758642223127062799189071388306852484877078609769143403710472167277480787730471125429246017318921693201508600690897071348532496506632292656440135619706834838557439807264521465589417722453008331869265303148898749222030009387606592837247908943690165215230396037533682096238401240631728637115192029497428165078070711302436384605098810549068127105518384309629997588752963934815216343400945011749561778852468524365432914658198690788053651685758905769869738141923161553645339801328213207472269728400107773702952118641942558927685462345600396058746155314832401991730479400281209440353553109345248764810225678813445781665704859265184425266580258319453843439150671035234172310040294736238718946315724177001324793205338460819217252050946529636619589860262955419882458915294767799957406374166614722850027964092973775607327681046914274439018397885396645907192468618616971159420352811837793739601462245137919755584605129062898723577845714512237337650403946343955595440309909214173151485078532023146360511270933203716931013686947693142433596163861091315144923634792044632354514016102575932118352906253292629217335760822323235559833980493684005392139897561131704280581476886282357399266482059205779936635561310354879121220274427358425781735787350923606359073844637895506269069631857848910762807083453911935709974961164252218340582858274373517167137135860272890283930356084478540655415688129978346187290245154732550124286402304448677595055344971267020429336268726006070128959607992035088645397891774713733438068381352412819957818399743219169324587031976203899569775268175837460334999891328656052410807426577813835820890319164664107001976924566782603169897618219403424955791797346085183037551079251427680841089757844601554679843029819241747353310276255512027844655238543357047977277465532424569334179133516027294939751108431963614750074179362874426802668928941750609783828478872730971370980775668182702668215684986897440761598350494761833266375996415913952828501242324821749194231140622599584243437729007699571054852503013622294217733662880212804261323028810916194199433985252423062242011198367241839216633407391467164511524658039852723442917591128602173854611283781386699860435958394427841663882276239562316670546909294551872495509953517245557676725742536086462616638246222503957820352616120689308414366440675100087213270282498626345973402798022190787460279559344874031111109543692478914128850189539485189136541023474660581479369192824718076279103116184928693845681464238184052063741241277676837431584334297405447098432371997191133090140332805554138237200636153139432460549408073469858592587538973021075476482418577059250347924163628638396811433563106195521965070389092466133616577433077499737650523112345212989514661097894458216535623479266422774066557768309763253897380428688300967903833477191762930098701556218367247749704381686248709213950933930209710208759891510639944230199510524252307322726187286872426230055901962391680542228788926533399271331509021892264280829801893599700235333116087221618177831099701315094421921491441929612425274941516490715080035486228511788093546977761991561578126086253016180644917023892637080995403583311864647334551799086004297253307182354660576791542604704154137461130035455599361826623885559821445123212887391391545757035160027794603700516631004069750849395963893594192440362410103063788688198424793741161336858186325886441457294722689722676765182523266308776603592006797229118198050761689795282713797996779394295164990695422988140504609318071905429209325646422007399682757086456281966234562723732131331401011000199847039766994684939093659698932510252511115995720756922312417499897967398359768939716978141487778517725093417521941935890966462133122134216950989618764296281770042787811522350710276097855149278805707270504836088001124772937112577417401365355244836227157451908746893790922828049287557786399588726163231740510575427035226233602900491405415044720568345709884729264583040256584766195367695791755003075267598127173461591454041580622024898101294124810899452881504242535790408743585987646286853871283395612413476274079234283898066042953347660051753699480849025144479306483521414210539785200533954674908992211968822463786291621722259105897392920011741547422614562113268915554553170031323722468831712662740261023018413589393033473731699193668774183985570981902017661704197788070434388749124823632124068459630831270498690341839423605808404226283209154183406617375860909363171444147161307736256946962387145064696615900369705022423693324894781366479430646967788483583539987776575495131409438491508935376721307889543920936939205815552171322979971104650445737974169526461671491481710899356898684148681934452210182187531712038133919639947219584062613468347653846818261652356498588476531485572242097672378280982589662657396859490908218833162350856897143678257239170221615941437221281338371336719417942384873687586542926045897316983295168175418784188586674400733256331691824961166751521630977741781050677366568781334227406912281053741456889373142086195632033916317516399661048985484150132472186896714702660788158435573237800054924978410396702543036511093392727251777893374667743413323156460558732720671433641435161659071105830215625820104464762997255090967940490639492660831891641823933238696313852363360312976947923535919676444164186743023255870961442861372154512540737304901515012357821180674840974331000595015522615555471991949868306162303639077168801100762459272875986056529191303539324546719593929116613863475272390878870891804269876631809162180902272948618273282142291092863305185500414391514548505823272134010053476482065363280134926827333783621788460702285572564508349532316227277526094418711197208088324662793329375390028435946758711938689796349715915538756389370953559541163570213805651483062299813323984336184331453901638597097412820324398720479879544658188200006004700281510997320900571163506156776619737590921157236139029176245251811678065531721282873000648281473127258389282760595657425080471851040799382500481971636596901266884574174189929928646637329819794039487241689878527352837095931865263057805603200205520200254593030481661082768058910729315230337948959019500887287190265566146429704193696487233548235577155294359757941327939399451073393800306156738255308030446447341656781198711848269219863991048721947176769962688029075908503115650105564307094018717122265093605290133063588504263334347619227642426026597293351118925577907123802157755126310332702157163252824925782953918613904185934242589640325380915820213417727379347805749183791701951972722539122201575405921796098934977392063372258132497575689336817299337719302165780609008123170964782073555610309773944380369134640904755514986761264400359131811943042462659497162790775220495703298270449876276436185126090964453183895066630197790019806570811790181338507955530177707569390156483276659167263618833769463763473279092969962122664095569019489780675322182632473471820310144774135450936548520842726101203862787754193625113830788692764367062178685457787459614866006510007363080718415297182411638207817426141187236555592005067021594330927517583045790931054217649458086844725597811524766349964218432441387972644654859178329601377976896648384841292657281991570202583115933453520555091914971649069906491472363050105297402449524494280011038064142416607874827631044131467480606040052386018537036558994937297781575463142539242137091845060572962551304374648667660575418293157407135716651713370875700072404819325281485654550445750622438468621321932112547899754219503916258034404266499529568454124420295318339012929811751377588892495524464317728397874352718888219394362845382571918589107527673088924012177317018214724153807819311471444618719902352235925775501824267284468010893019322831113676713672152717577788916412106952644681294705756527743330459936174854145217316803707735428143509453313677845779897208156871226060734535600850800752012641328561664336996949257998092350335240931532387181787330821237081398609456388400822304418385765651074462614722934988138623657046510376131685823322351250858598934941746584628771291357191266958130537277665650377542445875890635266353519745557125151209535711315133093869242687289216182949803013686767429220411714517010221004007405151213939175175939476566922779663448547264109346004491558013428259193154471139919781721027396871824417599652011992748640735362122001633687832179334776050332773431040603448350050126618321608308027716066766187892169057987215693930442627500346257971471179518642679798264613478339998928908491928489997923767876941872371445908410157844771057780319929671760719138645059070981097003920312528293535742978233618205145381295865577141192069729569522311869389250225078192888385384178573163992468056434774277880072333508389444071175954345645120349409972918560868285534562230627540010385619727939966314286781004881456449586662676990505153522358042489189967008973173355772928342039642263831290552504111105098544822545860283313324411933246040978886896224084115777632484591081216362882759860015810185482976320237733378100851834546243458065087572870011988790699606484532104263881349597682683909945774643215949721413558684238780381690035012403641649637225060715792555831912576331775072099558787091596810209831873040254184315211429537874873651921063527634915597772625001146486862852700969240375892510070468228391965348464723629758587012828163340560329958987236144770948394947271511484179023946791648358129344979919132973270878464717882200334014283478233167645362423200057275934626565576557602827378750551092022572022708933186599708910393548342872977044527046018698812725254130531019583781012536891273160561699339937250551979364915799036251388499477674927781245387963048366779272602670102222568564745857220901927272651694122415517865325544515659311818485128450481403165088207928237458356177547881646067819068521372869272159854882450698241659614667353965120567210983168393415737817917275234863323240789093376663899876350594725173960335165956006289704635564482602626352942396786856351998768505635956819818132768191343888761260863703245602852496058507942265212573054153458238169997563327135082415821992206085689910107400249212258093579827963263901402340384620040823716688252531947248790191445885134585319352851599880761128463375505027589342475774573922861673551890721704896145724566473627832293017208280488069855484365798884783941622191199389973784115873591027050605096363324873090775609027946628843025581197486744380169796029917896286825668316114427170454035123670090858679047089032143494566211528122998354179172923422948063860792023269528603683443820533655045241529160660803353215769293258318802347505409925515468458024947242149407057053896935124431819847605326889038206454351650045107821930184030326484223197666631090446742064270115610249419304689551999693243541102240415986707191233211122017026299415043157904373655784952687119312792431965885170817746449041280519009576005555101588522803762389105898884986425127567019345392047647562917192121207524512094973889401607049797370048286472199104303221949197418145206390264868223028811864939273116742979051315451442595791310202459964196358014782900292100601479430324140476390230931832027783799062780219087923768277193618035807956748089624515810259597411842751645863291785396812906016854143852338975327136316916342086276647969681630432415813291990023665365212131012769241221955371924262045053569131286588753382885928331837862135179374019354058979231521916326822036711353415644564139822380159620940623858248936706461882576791024170710842007901287627696277622327504841089055183749812513745939354569190232493941401402302047618804490232515665398500073595271231203955699258736713289465231341686804278383617764981401143441256440525151532678714718240414032035926908315014062999625428548589439715505242638848280723441626649548735011240035387300862049574403401761283935143484119320038761950025393082771290644071193480587270474780527569742172332576202990205024178272610098839926414309747645293143731938589214424683789268572045258544905991566145866181296849733231702457988726908778047760222706656422379788513534825479883387563582899736362565336587088297853403921301164085883292946536812558385987640869820318430531884331396097732469560187031059489796569730023103334474390731749608760862189018203109967147440630594009895946359594334500694599513852213622447768068873474618884225013684462005448133151144617257925181434000918749635055833992606061541431680379300401023259420039163693431119414695584378240621986088737223935353502100538629583317346340326985730808548924383779449275954002087374100898594945875007662539672279203162710050653862820465847149447889824576869100622496375491365583131738190564677768992844072309603305529617515637882166942449949646622713995098825768092360137611103286459326513891298828012109602551035926293287538337421909921354174452172789335638328814579741792041522724439674281948011197724805591204848468765033664119981324271347397276839874441105432922944708054206828494130816416154340150288049382488066743533602526837616545404010211998588611084464434172683660047719104798693898090728397381058710058228816087713052794480087089677986347278456203810326107729264317588353704202658188691895519746476939987366708987009866674519370651874730960248147474185665213697113181022719378764301740270662322939092600186777450403108419272039561117148913242676101381455443856950320406629629169113869199087987067734456879084456356535407697232707803626312107136391808228473004892708912065711349177647120803773155827992023134410048263922081548468481784016039456729969767862265378317736079854244325802685141661390525415035983298127299126059922147917264261548397358594751807604527599746728669953528798609837102084337310477282158333917866400183023655150025865304537636246958121905970391779843558224015281728490745849110717905742243987329054865754438308522637235805797996164933499432877096952428719742292176370045063655839066185627333918628864455110892981612868169598512216623421297394513194957734770166495291413995695779627546603599849818859214735986019803743931859428018631654093755067257555091732485855801798574286479989946750915038347144926466284051229794965157919223769198391345578374945953102050353530309450462559856221335807550543950499636514499590066668708399890466979841299511783566744120997373934661523513747211953039120986719504395133507668474945817618983135634067773830050786603406299359557513571588380714571101529886683600181222495532076587355947072420302404939936333611042271697616315134903173269347734084369519258625254622524934328756715617762605310697469203284092669797516981346063412121043833497714478293926443391484712018572527534981851988372740120570413641448231949253833394263793578624258554089062823720135470920990881008723025022896281285818473212155588523715324673940633857990534152914467615941033610819571300552244622818839363030696302813266067977734509396011527514239997439634918262099411612540026546084117966614538857875146604256954948865054428927704312523133796929028918263888234941433294965983783992839131929481691768144902997781871876624797377544204376054965074395627575070373223352220050934130868200895556706570024377145139208774639741669028345297811322661262467255897627233168229241986179565557388282542317723097521733732593155928491643320030484506848800872857234055887310938769468991936255842483204857236003279174667076220164854856968424708119911525857362565061916836029530020184685613559304973088780131444816226412609390096511137372891372092075341922813196436959769165196301732048973827180068552662351564895583144451743579736084263727040322753180209867611463113122976665197756054791379739381058135762725176018990846880983065193379773599047857056586964593961150148709025087323283492364214371856280156895992414304074722449139071408201458195083007077006347967396511387707126909719481104689790431507859021599325911379287202451424984428366492627584347719495351671949770627463732532292706273287474253445584477920521503724245768339272202642605759054464718881285944651797950872740368158689636416850530126643773275355848362300377790826186625851346425801802957189216085524711061421616711050883297445201834956184643480713682351544204267433528127956485805848124465691423189713748419553808866263704637496146007366233936511761364121467920042522768104419358138950298935951140343076501654586055165956903610774124461153218501848305310032738935868600998181562071489665749709364331313466630301051732191615683890154817507098344597061038429347055079083854226649260037738942616198790474969363260533374557454540734091755738361659669605454418731389374065308120767404407141038886988904916536220412329497736133595777928843499334487675748275509417237025546741353310221133712173464709298040216440836992569788234042930113637283041176286303650578141442089447459707892472731832083111872612730718888080719758150038439514263573361203262772513218637643183747003036041110253564693254568224206232959699243316565961883612150868077845978370623825301166457368012966824712575557577519519452626167529570919984069805803669174437128380082989887232136165419043263461963024627715589633903364193138181796567356632619370162098219655974864978049906356384896880209377716406470715519978571172968742271839256431385296403134277714846372992327319387857288352936052785277799121053028133666000664564743958875441057275450650713155920316989591790559730599128477852559152150113236828274156957907729365302546894346584336987304817729218632804346917005164883130851776965641069378068290514341516393142386218393302220670416303702523640503300839183243885320991206228756472609017113131979186609887671193818441649585477851400825428525789552392367708062460514321100451144706720485635339043451983588207682985735543624876427354919649346664582835563525379830827791261002951207774457960938206509118584946669820511538357834404859922373140779395811697573855234308767734743675545349213825645195820610025159684442753327780371627851533197083464900850899563968647354372918936725560920390270566631759977776263484271591120942869840044143025901793325260265950127948645880043867307590327501221002949814738210281149300241431104038923358220968792780357231780382488151335715488847828076681171223268877803023349547818180393818162417921699071430951872675015848385211388171983826604142639002981606725860632848594007470628705726457779763033617951559978741969847138058859136355066499208598750224222605524482367235598278180333558649775319573205671498201512633939277376132953525230991318236951491326503203840223755180798723894942921923263259239583978073434384866862263652105584041422426687641809479175288300622736255173867113241284603093300141544951509974409092512314633100193978676901356391135922022330967745158969702983544117574396805318376389837498830061805353522258659739952713949715200512787151879609854995002611398072071301571829352055910840059788937033244475962369089260799949542303089074728782305606539980621850539078012999939611152151237364460203435028666485983121236971739781968183040910264548048091993124588095681871489817455391224442624257100112841376203004926838007994356522113928557931926287060380415489220927890542705172313837026894349806092673081061386972314136872438201732900699578075946630124770574386478183240803514575184885566590865752587209057688856647951328127670558044114546740097529963017571793759022761573027689618800791834818171345886871523792125234703419375843784777274712233785175613449951965450159316075060977060949384530593266796162976288024284924676133341766117174753034718304730096749904482385649160846220333830272609811118921046293462498843847066125230256753886811293184344948049207095295813424036158967454603573769294253108240901497947098645643337203818644974708138116038685632702843361052938087909770216553357976934406774956933366234410379164686192397756858583639864079027952081404323317759647299147354204905710488386028079833339433191459484799472470537571719060381090655268789037273520293334620646133451122349547639406389074743753232883919064378809636132568106404871789756697643261659372562388823732028753336762007614558734704463461600602432632602197475636172940819233194478304644571416090866655450022997318495854645073811416366018767286923896701449125299611602199612622960103332133008877688305811875926370948260318017866658977632046414550057996928615510287991563756380054131326987074302955096480223780101465953830521922973570315742084421335084650910256605746232611183390464499837894257296392160468725331244681290286427776254178235954441929449980238765567061434247996856526388058364877496519826349081126685465167674953510414119585162339093326803484215161874396567586498581961361850993186754005098563070714450578356129415964653650254035492563947118574064343525256252357088183120264045565216986069818747434489340777800889661200903535909409231115998621272686929974181595699550738437618916106848268329908075153012458932798978849095693267634285244639126030392292508393543906916302794551455772495035366855159340300323168364715174668819718236992210229660042561931725802547479687296969765399998952073390989072099932146144988024467325789871449531365428134094189162312786771001520535537875688650104988239201550539947142945125295773610371482275923005820045144698426333243723572940963636255461790466718994940392091525019265464788308804606850109479384091699463101455636208571969427992503164727385210190037568471934753395742213049502698873117114712212272863887008549943162499504677650878315027783361422129698845552329636834668750349937227488554961163754024644027738322615084244525574302731810118669631634238600991209080742954028697261948485433078331133638430754497586904011179722282192406685888642013019846128254961535459432178094296792418573036173316927572474233179522240668324363910141708267946492310398389204907912537544171415968127685267381626932356908137963977919435426717841677010876638047345721168698197243946596150788842100706005933404842655535180341846817614999466080910712018005748786129684178733757398683224389411310049801693188927008641904700927750375694171600797903699025431661903601262663918479643925164699001153082980734430838206548120824314725918647556099684553432871820772836958331285441304188149199998668141098686127976006259668257832475445320789940634088075041370612903782672826470970993458139295714196752599180473601917910335731120728774308865111209536690753237753956211574197611458109759027025264636037362163801225170758305138871984830366938967007401170736578804430723025835913471827373015762779650626732950213606831265144332922374137945090737623519417333173044421436367456466307464313868768669531647954287901521271413951482888430578554567719147924669312126427454510713246071392276405858741061456988176593183097031633884578658527658492013676862848497362915412369842554099315571727217826382460333599259764092718279140884345007782881824616775599714863594985098060028836014488343908861802089460899382405502344113129834820024446506140352558270506052584222340195872631910712663700263979347094959535434845335534241756565158832954142980511924690344901005717601805394714026240730731574383610994167964852034475265852710978587223937434525513959667733480201277667664247438865042618721713963647849315329328698298837862753606271511155124193496031345461817976338976041099161071878755279111952656349613723427144466862331857506274970666097886524023123355722699305733321442317012762009637410804475575777271784142151341290741140441767357119254655044200057553782122127800005508023338857463573865390426824249647560560877120088775939250218285664214671106854357038099942540915899768636283008892734035044916166846885829726260335504365279370979942019861421159793325048537090942256932273696214040931677220279440253289080982705966481276959770187531082790863372942620175944701289043218402207241214867538252355424400887605830973743345505423008454452359290236030398603529860602128112961850709960164611977235805216390327778039667975885354170861548710854037793061164315419131294958939036329898771039286935704211947431200501221891472304993731844145500189889449364266434065435515366910766224323332369810987856745053107761632607688531573763935459638465422203434027647982479502160585599979587004092627747562518372895818555602613767451167404901002279621537141625485821771896231119703958030611997937487174463480733656122988190586736385525289039461201183014457171075800361111262816942392422249892831762512470153793552675402844874099195423183602400801110759933619895789526851934563928121293526878270731987724683453294480354482640925150394517387421118719919311975233479665789361572242920677982409510326274060474643116392052823700566020578605177718273883428357721126038076374880926790622533838425743677357682605613901448090661238749250875305318574708768089370297676112630223217559929357450924775946597316066429881876246639872768888178440424734287541753063775924075845306260575945753496043097817572163194288357549586845264214804955511041941478787603957798877150171777694966360518433341413760943466849963482064316038737709557540937527833316205786123103298242256343284786472273840245348761530835567883306733616935360896131712062661426069024211215013535727642006170263341956058383157760606833765754452964642658351266204374811665270880292879151276046884315154402568502695013584487887103187825603988688581211778139159693988649989151163544212084176610653224064599145000793392646423412204220005819953021249605976600743515691867584953086601905197707071291869451169558921486960764912365389083516841362197732934135010659833345269539254303136837909369723344258685885714184262776876390048443643763690557491389265859259169728746195885439047054538394907564273563219343223910440139251735787449261897798312349672762870159646743895472140542647210501526925614955377847191476088788658587415854629253828007937304141558120669493621013422880264411295807920934527041952613154040572155829017509801751675591104869229982753675324998739070660089742906396021754805223331675091437654219022936096975947856107515767981184453575598824893225444966416968629916529604921656436172509752735517052899316454980684399385877472507827636237625497224491128824800822407851250105123533641284232530719329288949531744908093920318335655000172198285687046326209318464778810971610993737688080874469583117484792467947470798605712342906716849735769100207549126799833100190051012461565613649152491585934658981727012896201329943770663752862141342218602577397194905395433526245467575170644011390639184902815015008382674030185678525369928588867260549071925409659095343442315284379301924347612801379464191665717353164404172908057361242025804045338246856155544776369449559984327735205725163563880721736163191104461316769181930769972250338166899499663031766822179399946175106937266357902881980042062909321714565522839412566568745850655194400386537801620792512554202366493084333195189935837814826265027403219558083051841486171560647379507253232289327275441907575348960275034566048700142106271608095052071486254525442548343632047365747542544923012436849287142334472867613293764341739668824279068753690914706550434946966231403334959689910127687722861620065944903055424234572746590327642047204235205805152626209543770391627835630413142734452959032418262656028558078434657618518520315613571970000056036422724110405987714652873160863519220740311652057861401219380530382976731463438268698611816777882478679164340293056951585300063438935031016267218092661634669669584364474075756511477421806870741819496103752658375345296984235346843688411086360866959218502400110138178014050787209745707901474972215031661446650769201747525491602226289958194250881107361853948670407291758316409721564055050425818792516230635166138867210933219782895850042046496489346813699059086532928162361391039188381239175285574774673051996260503600786123444849356885400056030816197097692518153427517978141348616700870996165582498533172990274061353934458408381887046841836362066483164984937781896431551186939406985461474503613421552182050496679696487399615314648047050335624819356418588167232635743909354435124003050965871907664508323798709570182011179615142398729608994718136078589971755634287216727828388516070814381827518455001951709316341473893736070079443551952499930431699988158092670052235645126424907779710989456673315057730974181995403097382672266892268746679269434639102235625201342928393021519157867647552214969195026322069588409994605967233876966505245433171256160307290615397843797815232387937398616395626857683413402212621697059786571260192048559983117677370630494720062468770689546191278516875239580753630236673784022019846507012434085260382737589399583691619836133670485827362217640458411649636034034469803468922007886225420803547690643234864588684076135051213394688876876821229468308790529488513347824376315345970015211454060614063169926880820628823014893686357643427904100611976620332909375558421300074177444975531817807115876615317137056072943066389158145310299545356905004737026501883224811383179672364272527882257212123606863634270966885119002488805655332890547158185605553997794125723306883177515491398874407043645732270202901919350894015437128198114998848468892381289829261604671494051493822953061061559235162586307245022476535791479858648257854018034579931243333592600801368687755002879171716454292233000344416112601015491652649008273451825051084726431283571046309752860621756400095015987530099407572962044519174642479637431518578299854664767531596228984400903870046062310391230598652057355349948703518005663799058012379270607662599284769081777274792888184692346961691952462850080558630200517548409308345932159480477536204454329417504617168460603202559662877688315228722678110044033240853357618088486864255850357190475144685706165196845919603511737018690434116773449852059755977457153593583283587821293575621485282841722413523636584088756252754543595415121329637435101094593443322745713393911367277510208495886441492189383322153908513005980458002887377560966881084850702420742591122079158644444278116455435772490361213556187697085277962325985180761321176594691889238087045387781894773605241206321113397369186889481067637217132440767451955110431692275102545297001308002581282564720778911448483602419650610676540055261704253407862962317665750390897180676245332405067788331509228590733433607816068134991433252177023125474086149221819941745099963474621144625383740379569185711203476830255882464820330964958408575902549619295831905996001218020490811523714834680947013986945901858969961626906809676669248239188625680764964587406377843446038936072284576046372120800600762994074037213508674732694734695922738530533447125935429843035480648395659937330998346408671397736681152185011629622329046360883914822846744804367705846752375551275536719355768971679542364557748818267370984473111333482468329804766773930350817010644916345522335773255538771916879710787548227330150269327213518775776843352811896885616662584241794442392372173670497564660794435971742331562450544720189804971957322319836678334271755211369583007450946626746817745009967329241181725478050629813822813566588683789280132302858422354349729165893131963252119860801695765099280848423700920441983835155241652683918171296916492166795304023309599146764767120837899907828366174059582657002917923786677510429877480010648570670293336519511751995025157469555445702063954472315293554637831731447949436556365893558251388828608092022288485546716042222350089998381016290438337521592159471058670842296198309340081346151299266302245504277650759086757599536143971686131368895720921542895443068114980059083366732284568919385607013050356141971554207971909416867493850752406126266813788686697044944329084255243848960758256853784070739822118829331412297517547640918438309258150786396865251490584122855603234905035990088550892061504171505653168915321687481108510662128352760992216611249582615860055614303782991432740486694860406627465359216646338473553024334678483395881679652704533765478335700173149829463298513856895509103764750627108153139995131748563471199280754630726138712574600105308445022300826001397375310355713325035320597355257229247137492265173717282567393817708270574133878341116396743877732095596747761871814911913355491502121791207826955420429628954717806290748230619179847733773848310084206179931491672096968195362779149566554640820974112766681785122798557379413585376221054382704833886077749365721123119950277665589130512125184685316560812164593808834753372231865076940006446109864172830684245555888018496322450316547290704766115410232063230990119823328116657851423173169333910045799017511792976348068327156232269067684664804546427942900903764892286562078219225314163537232770784704886577040229471165839133623697731706373815516670478010950865035179698997394205728654571093109815579040180293882133835796250667186370239574811762947618273342600478192619869391961427858380679120236315960347733357136506327619704713520266879067216608604350616429263658682239195953867184373368142065706640492973916482588339864005239911109792263797693875938343273068598485178552254712024297575865565239064302348700208585588255877737075407636955432013169920962603654776282646435272811519369256687147233810878337353343726919901250571480524360895743431749871968956036186360142440888554283831401282389873965106348515650505131939844259745409760981130016474803262088459883952141830280910443189946391784630684799773054553317647160641201037160944776936044988445362248389995590268366673928101677877629844278292162876239784340597514229902906341429307042214598229235249439014569295755379298951080320053167883814315477417677911222524909545196547310451533413452934862743980580406779065776155756973137818063659971293254076284247005788736334003685814494953374763066865514215049454886628149445343575754296234724814995809602026489648768172865179453976534237976155613523021220671338496497285229935307449780703917897426923709479971967812435648342979064872617019789803151537140691333843768037829117295524314416741514441835686189084978292004736867742464442207905474866306183242533753238470535182169695280315639682841511142874398976008355613545921666455125705331236416403975112496864442877343199558451649648150595400767964373512276072304168439449444702820566335188590539340789483809300399109175060516904680699134514019294102679564224773915756801807635685137654790759354993135731530941377003794594875475305702776719971628156862085430498631072566900968017394732082457233793841543464188345485152430291614712261315487832220363233709760697874887282927990314866499413116711138363442042174659917406845919878327940691498899201556356686714199891924106992133377742386449657075540196613763392656250342901622924004877051216350669173397127587642756355080158552413272995528137945940760662106118656963714192589173437176033972812414604587797299730480258662988352511812864767070461698600572372675968015302026267495977096412856098832810035312236925482353409716231992035518164571939942521933400647700172393855085593841229521484526437185223676848521370153599044680924323457367320431565735925673935232500352831350546768227272814080768853976896842578029804650224389666183898254345865174888639740234622049038129970010138321032015658766451575487865467891418623296792393676475772221882417937245224735143161890138263223684431571605196655092804621052541380720680782885302483873113696112640088086952570908616611589185778976224568399555994345341523333067528745944091516679958873792711848910794860816551409440942413160082099611046232196147837468420072713346812111481659974213886564337925205832740698194932716794460591757334399266687250803393420464310227072609531615207586931029438407209492972743120570617665610461611071782803707674038497844893182956162166819196021925056802551158688400719533515784280854992002739543510967637989045355440658735066947890550070574811473602362407164636583201195596918647936313958861032923665117582909065574955089362781776745175453074642296401899304945515021229559964657026562447220366979504838149148407348715221574770506069122747065055177106555216678099299368033395020446415788271927749176382911780628417115409115808249650845584131133340023547617300441437497052046440991540385785012973444862680328886543587828872367393651853815902260596221842937339641336401977530670985244563810833143236682294062736522835302043195816666220513226598276376774473131206587436301375701047305895444760235045447546676296016442054241721105007880318792142191403668638202259257370230002529634978013045234098443681995572347647367371993847201300474663272178980587413155654898275363405344743452442552383779771617848957328407291408937808467802313631991791446681559677455376505076421109651838519956666989735913151558476517795338490116649380509790008974126888821565526763455220019375548913541602525230132906024026023439708190879993047987384316986266289092372509635939334945174474961830143424053439373376669705077332100535734260601508424016805496951294346211935425739475849376511841767359520068254408747427742628798131681184469006299174238702537198833069659593626249100372335656080068433361846763957435296787639534906318475984390824643659046412394359411670126113975918368599865982620282862072071060397446770894375646445186710364178694005317692519987143342173222617594625801501152705227494693717570049184259741304514516611804498319341823195562930292753815628939820417811227953538760164909994530230708602580538983770663443173304971056976126682493456641418432279450807463903529479096105817379487229445728491289222328091749992471630278799090462293197946767729668351869748408132343394760560929725641128164759866013768970825559317660889022830406258136269198855662035806508193106208180797525153103143652617305661378702190391508294870921622596490284853549945749582513117228984797747489698181954029026151140943540998764935617397340162971014345656802343199440978883944015988392767354056079126714945811076221043107781667335415462288929646447309381203524487515323733343598481390965242106863118096729246968217393047721750076911865620832252093025863423924632008445140465598522482468804209972749848305843657498070594258250196012077980996503175516891875220886578175482143643666169666972507596026170309281194252226955614788316860867540318442082889356219904477333066416641521748617887582467203363438932571125482304279882356503529904969413932966335217869571504067176082625345972316435748883166647233482149457881410912337059146400664820414247048058980375476061605460184850898132674606049169159740726208983574521929812875667797718337392851937256959957564260177330738571478901172800249143659363140020841775587486535402610891835159617423552623280883086291809450236700032036532775141054617713103486864303450321125988178546088712279676055683221564132321639290312965025372889337758150626339600467444359164917794985764462899503600735988874299570391702486063329143870463810416521599718178286574623903716498387793726518904494951506108807727280320350244988535828107204347081400429577560064448305445726396672549509443455993935276125345222961967396222570764670433203984732627371088846117201932263368108099361946703873017501796948609054186104546371537739934816496156327991266291323474828825123536495640285675674495937089937267038402893473459069105805439947198007014655573424187828484566524338173977734196923374663780302355956667465155147475010012989421635920694503449567201794804116606412483199138067617814943448220624999161514221978579495808961452329792207129395039042729046627633001924008972570868155680165668396154432264790700552404866911313475344367251965247452255907177728243729741418599000798826268334771426610599530362496969588941510752063791795614231976997360020214169899335765075297794938390635990857248539101193647734966684105347127918573344315302205794932968896746799348337590093759062156793463904001615445040277867809905172089485833883048706809234178330542225838825860661674504847140686302572134331958020283232239261103779584080011575959374610503122656278962910082962294114732107078107016025857753645182974284187966035613517164189800055089401090391584857783721990932450099706001273717065486335794946381928823762438138104797061420213106193417920015206870213176812017556232384030416758474192871768893546554925337398118077911875114340222844218748502745478147067160994658974182250096598518575035094324903264210386302376782427570601939970413311874565931881767443635868662052239332210836353946822012576782275137400039673356653772822963260810375384085927984914917120107698023819340888248918588299403169127608288973521243007360071196061721414793070959503720298232919988195876967022441953858794763028257493753951910216628930660694827240038500626054541253579911827224778907915340410061164750620614749725072076950318413149343576419914368228030711255480451260363167746124027655808461102089243361191416436079219361324968087691466926577338281395544026652275509425498213001469983331169533918282506136876478046858417932583069431691043076466922729368821344804601867726071844187692988453442338437710688266761451092443722588162514219283458592526793710699534902657803107133567122547608753277063176127555381427508803849493282381981209365719113799059656990476594458305009064613116043302412549805085528594628454118456734765147444192211482338661572509499440357790501181240688823066180638045370041138506111240353944762266036858328189180321355696412814161591236912229615059773160135437925126330963624790673401337930165313736126681903933393433193667854724331528783738687135676586728513182989223468902889110382788725889369446225593218557625233204137329879352819916604812824785777470100971099442296590835651430786567621794812440786276889338439677963044342373641701622725937427074699501950782336921045281575074020389636994137996212324719407215241844167242969331711214948453045619554985995121105161830917004101578988536580684453521543981556814645061223122418691359718635482837001712616638665440092177489331213411863079925027719107250927389134057776274163047602303026704299086995592007469245975886473682558337816390411372466481240929654298666110018728580824651399041159946495118219599740117031326545877935399157453855638448486989326435278770756687069232188803897218787461395957985222388934443235109727807238055751575467553819088818296696228117069594859174993601440217697449590687579411891117871806795040815630125244075421943356842757499037485397438952085139645832924632159171466415513653880346339665894806186772243744209399785244523148034137931748140523373995600381767220112746779475545517841921496140297405298946077989120715271149595776933743514357154249244800365654886554093481228941130571269564268729500067573178619123088033298273739692627341305827476801321348507379349135124763703640587021124062577374796188373875340769063383525030501351270864238024070502172820614206014073506806474872114959572309151357243020998642084810399134947596805169000603246983576899595910366792038320643017544633697654870631067150908805802348685402881713897590960086127500280420262175541314731691195354981553843536379164713953195240249050243595689071336799841228496788018279135268137375108450269612188733398509653753214697422227064828966701113496111498925857437498941109883116741879248301524795072159456408972567766663573521869560941703452654498253142241163024827892821981270376058705655867605195324476994101189999436912835610454118980023477449404373290637152251852985201146957264571575562099856486040491234023370511502883986981313645507263211200079948083374979921724090544079611621045977283578245178475779891250167764351044687852513890145461887384099186045002832800791373674347810741549161016359717501740183069961548416955479155646923239164208958602015018069795416686076652701103507759226795433778702633025952720760985799129109908221259430600429525738103031340715581353152750620583180409113833239848379982388357757696442648530771253061566408514474651708099030537368952905092025569533535211439321364092415920526359714142535939311592840997185283646229765089303097417057137111726288611558333993993509225950671208217494971911818422737131457996906819301769515454800160159727904452056795601912871045429010461243043064695032613582195581312584925835182821235771408571975369746754974003315746770117455210649712510923265412187708674647986935851565870056635777406833805855578543558094074728421657535285294353931928909243984100018603079519533488995367785725158392262473993306745162264790976610829512758749172579580423920594988338765120854451908184900796974079420376644274202298081746767913124616441944866840363476636777570440009409059712675210596987185854217514065696738584280536758827569843755294580285778884808333358934674835194781589332440287014096479276980410604362184655609565820467030765931248696388210017999136998564213837795659552480176556241768207723948047175642365222031875883815826018256449605362951603879524051841499553343823668769396092218124632031316083513033353388834402262174827042420163646450660443672574585373113832436957170985261340277709014642528813212168063795485647454125377245822970309732285321605007160851499325641092890745197280093398510239562858872185728440092326294981942848496656515738149228392124032838676741109182493586830902730693872527409663926374554445090679805538144023387636592341407126258684231801480583171727797050055439912707762510207971813570241419688595347929134883377659019317521370553646126248869214341679816658049352903523595394889522809287072042431967925037841869566966339003009020939005614904847706327016367690986451842329309453110495335038067584781042138547780767364477913806545379314152319601231268258489588534515334242861898759852263109512244318962481430782970861484023610058467927727351601373475911274172327021287181390818284378491699073342943422179732405653572637907373067502663300267942099936539858485708312303479718323198829569007991523140968207797072753045941633524328135768574790157307725789054254990289364960796958745119493967129861706199692746835307397128710593248426234499725763612371712762897038062325269026444525998223517461431733350095705599875633994129562023603654678567669390838027355487410309939192360891944160706549843029673235597178756897896036249161249484043955972397435348668788506648542149179191496999039114475517530405726884810205132276441454801975365789157039253950256852807660098278912978420100686983044397622708144995817696403143341505353650854576066389100332745260641096401192809933504556239987845479912742734689025424592982461974799514648231359155483206152915261900869038542194285270354208311302121363355900161059667295290364080707970552258308799194385402227240179235428920751012808731116021378797580224060078400894651144243373844903293644820948009286565209421017551472274840234019843262779901125659730288956717387503317815575567494562996471788310149829666331415177346735782812664754607068797339284127207142541738826090985400654826992026939034753081517969653095498264460058205081563148518694311021987119142946292409092522877843437282865412169970125330894565455230366191561590237588734109177582926962126714221554699992636417933115913709069226071503886912014426083665114188256735377746882768134970561549372228128626022807531231969788298402296134758729227958238142640111372268464018478669278337434895254242597342714246231704906576789401453410164374116779927721457490113678961889927678774634608885399982369837489973215902695315386267922582423605206987697258926137005243437576687871836638748324544360332687171843243564285070436796760191979201063409371918056138239328406785278301334262886860907581692927784026701473616853669124031474262933770262909255083372080104184150238563147141596304909662425697732655903053273888311289825430550883520784694850928850905105747174429156188323357769884130224495682475969029408901085979423027319773623443146310157684306798627783628639412217188980199238384043184026342736983624343800523574893870247549125682044851444363386357966241426371353033252086031046265348989104224152564615601543348552673563430789698353492495271393618738020689873831187079144764020524258570144717681099578121433386425575139085708329431779813679837208724553762476238575100017469054848590540885827093459050056060895364380015367830753478902887037212399091977728038668315260190235560961326794331453411349757657299679523164056956067335557844147409559627881203352741706416213168884454739742832626126227660511949074270168746836709029485263574764694088973100143513058926306689721199028690614091536540231241081750666333379839210557257166328013239820400531158127829257515205664148652908505853168022700116096887437771884273887453483773693305843548424284547322892060991796162861650914543802714503233073972908663429029840356683738187638781762541157000738102977596444510297980353719496289404567000556014831411784090629903729103391096834806267044018561248813488584825394252960982223726626797010887324692500409240839276794716581943108117243867575678732690527416599089265912378832673188188642428633574321057701096329674296166506004616977459087101658452429989951191852325987188945918674105057874176757652167034847713269796932207247231148212428026278527237868768563406399684929874795182549654265542479804036647701412967625698202310232525184163272463037936286122104544943677354760171407837806610315187295205840876718674062009268483888969451746049002550145541596680771125875131095148254663879488207077837809903496163755923051759655852193898176691411822906563353264408366360922453369919814924616724437252641708358388844132135819130273704994539448763168924703023817060590590425185174562896320437759738869357792142963550758989984972044760398705299955332130938060221199443965922847346300748345116337716876790027638439384550108134714975151489518676759395912404438900522366922150645472148218957667175073305585035430074116625687205450867934490120359204288392580133017644515557986727686772879142326367580735626697010868803746311841169026876615258916066159741961169719885714518810585613851750335563918387187943305954285174658306150314815061722309843727304232040563832237454208667845160768833868650021316370320230546155934148904980781988457203681309317522943210766507390262202298069242265965540428446794253263048722551643908068274154225099090367223709881967772170986767692738430046747943621984213879565047564258874938610060541463539686516085620442296494948408282468930959316514311115876400051237305753572148326241585354496782705965084954820803417543505486719365914822489540288050449774004629688101117215649522656621578875362597194183093904506839526781045330643794558800856249498790376654606453882010872101633203535114930822897482469251677891053566890047177508605583529362867605681668415129538913962628547150045791007728984646108548403692841998906542032592378437502478652215263184418846839415582579056552489373575684312079537685316206416148210508448481183715129211457706837799587629147174473089019431438890831239022672873886760400824582275728443032626032406627813399956451456170099120979929298695216327258142602647309019293757924594232827179479090518769654132074360134976351988458376228818009655219680626444398090952545795347750773664986780217523356267246742055250352310944438585218509111924315289611838683882460739729143140716140182261814008285975931603137884422016697941019518827214806980526252656757611849589367837761502044876729551532253917379603828362657291642059231588499223429706961449784855710007567248501347395085907874081617503336308259891368068030750644780520753324434763677290339396971861676190758160357924205067778527693729001816184697919547860636715625764252075380836060458469532192746225113702027671251279276064289108045100389470675017395708478682598869036660276841660464317756429128272737736607988321059923670156236298033255527688668377688763010454403860210246989193207148552014299768218228925040550316681307711558911539979231792646722493042847998456549639615697487378182711673986432137970627792909556906382081255309122913427429740470960749151307593184283948826476011867530173133311074488465532149181720956725754115190531938202982569350004070783520435660611455140761644839788521920547744713695706814989125023481424292233280601001478345148351816235076686070452557286094258607404276743136577518479522862507750320414100852696491130895214148721318708637142631665183162304272454243619596586045954857816796435147750699497564899041400491118264511364341401689607634101036722808230638634863603104127736335984111975527321953089748561714836411558832329966581570509836395345011730255848512860283162135016550882299337074553188562245278933857256277615323178327063887102383722902642897241584526674115319606639424845858851525022484830221138524679063014413885140792992656429062161601854096192474850412077100814166114423920846469454694047161219127856568432158660312513957058006639282365405860289654163430912936965174486062856793872589606207543628652052120943303230248437059813355421896729061694221037088494328172632095074589156323839684063152804270490898791826346851800832195082111271831668237649985348445170035752774970501512619531122412049551260838111506950020673744991081727029069664085373441890600941906024300565320073898580050730384163925801433032960938214869611120319666710653963891875199157399393775702435129991745120751444746374234933192508659332420392138259718174346300252551034462343102944209392949112695684681829278127983545537386710313757946890670521781119501278698567752950478614027374714098221321498902016938566787491562635652871339501681702891209192026650900884280839077041028264840770887287612412657729452892271294681166121643994411937769918391381143021652350210340424817445581333651074986354688693366412318774899895279039013832331831935173278291107680566764699275765472866842626030235569456343386471404364578657874396404536003869159881491821427836368887376801580978636499421766342747950008208222321179991182582399254363697467698465239092947828952137273226617661889192103775137723829752944192004253066961505075519594331495355436339634791123483572858107964336639502794547839754875518676755267202398452170924352288335948281064026337884786393064798651433643090983997384103224517902925580755061159917732206250401751826972387511092778397590755621148779271916867517184494745146989978454074079257317826897073402049563763035294971064351860464324977301420917408809968197963108787954682456309684468164294384966841181207772221360834126132375242378539950940203483001352057366622516664770725049082164712826765455478240336024679002977160173386104286901888794794135295017689540009275474367905655229289268309880412978716153284355811540199020846504939897950611360416840630053136258189914502420866186632733954740423763884467002800473524283644387780750102999312152848776437073754922875463432750148011244486379059837769091692794423189510064365148038739092646311215362873648909620725436277047294118524535947256645569485295298431590745004883618812074623130700733341185545852909735456624756601607392479442311613897507888569715720504599687978732139878334777920732659864353004297662788321295318706747617329472796946866435048821831906645091807510826228074088942832395079868617999911393273069423661287407274604021614795941452958119169000059842785517041517836979604550974692791373233129306370761833464876387024030334212859636884789702934024935388600709971137138310278585382365672132968688642847385084102471347039962502583325732572853332265750510038402422608335383622023050810532485269763047709265040496861915258107076104670228760054181216721121146668892444667319531380454476129281969839687317207239942521618091517289822330040659053542277225504245747461064430436435868806017047940358908438476300145947008586423806423219874430742873138255550862653469716557569734153511659619450026610478136296925753486453309816741292713929103146626463952004819873512607661285743249606862471977354216735334713536585769855689563924550265080628216568612398577746671474730300873135401679110778648403336836327777925526014659339239244433455037722436985338205001678504515875694533243427986446218025851224375254634603925562560891782855628336376852281897652608909344344220523000942524318127440742979473268272945784815738036270560715038688340515426057793834687724865590478718902291103404954724538173311970633410132119002961460038872023482067355070716718800701536096457116315849157645577384679140610108452079071433224661680198682954263932683620245984073963179437644525366316821871832394999153294688465278407847826465961052645926132161853255896268618529103879559429014247746175124110154579855756834109319504592145401289744064738272938064055283364327903012775851802730448352740571877615824092119565064456149957177171703466004175870574022969296885499003346420301472244392322516638142834442002742694819135079213211151239973631197624591062877116983625630432736470544265558985241547273584923814078443012040404342711531109245530194297900765168099097082840487803533340623384250586781029790235183567793169722770598926303763846617711192511386703551594901343400579932011880569883537593259500809823550868578926481132772844071931471908126701385426721788273404002324738662573399417988218180599154529206146719516170160236646927694050528159240925920693511570080731651699429022403074982632983406679474477770429403236065506958383905174912637101037876051168442819245342655364581364923570787087552063816845699232879351052124514681974142990599564393651043495339003054357464976898489959029800952090345044813912633122037421791279736821316050182095362882867646196839594597171650825118113926745171762784455535431565715605059893462961000934328275551517056054030566613592252967470912204830734210474830778211289227556884384680015177468078088612247025553131148819924812372404818969284896303364265315589240030536511254725059012570232332575929348222208449799997821372340843151874560830992417920385704222080302859384867334775422806540061643955374341456983819004480196486309055640953764576622457684340139031447684556212231204874632235220234780743491838104397547115957754839392779889016045647171114899579077517672700968913679687319965563667695504185726790484963191450481541825456530591291075445746829878521656599555388867617202985586856111380697834524245323831458114941001063122068710774377488823034359244709737641833407079020941748948943819723332671625018792001382151979201831510850473400088396495471341125529804437060111444565252347064490062844728162661046693693485773404607925227997603773777066998420546331141897870024761361983736751613304389749824182298803210030089872505053394247601179151366883836005782264821121657222138962828342507666155157379707671965854723548099280602488543880399981437228696152016224707889499455724275884838613002826901965190333645082143119717841028590154162474607020247496912794956586668067033118376736230899880106149474079801672608455132267680418435020283704543171551756004140860164888103088691681159579910367214619002051537726391148030205087354125596182796686946354488822301432429411273412043346061596861860758063667956774635412979766877163581241725715179663579806845014679472811968817134668988878651875057701912327247659766528434234529008093722966802423895535078742665823701453870669570137355543642615138137378191623513951651475792813300498723463276786351070901412735499611515945682774579044300060766640904885650513875784625652074366831121851476070379406941719046016969380067077972513045322529848031196258257526542029333573866072105360043841779522742185321695315262145911769733767711668410949608022472141385976785740910400581232811990268394022961677470934450160038670493928546253868340090481692861112410627744681193698298802733834938423549904959482158213635811943615317199899134389345802882918449871848526063499934779167190340123943233594092217297881990086480356213429495487733711750119229362646253237511435035590502671248572682543240648922408558393540716666624492927572591082453737646836302660973634043366342038859276603823313251345837794074620330462117324709521891704119191685182773158679919809669951194230866467925359652595981259032815398067316593679981456936198066039198500004919187005339733679501584091783612858403402705295519491317626700817623543643308558344002281371049951229867185652994075462952663016570273924649731200252069107493658519458610069756955388289743683008766598529001668324835028013018750495964637037101914266749027729263084694149279063295494534914001552724341049872927414304067451334735655140572449613457654108819230713190463552497994980028519564732858991750103716842491625216462555698565188096842050064493775098120322805975998279031288451384432862819598287356295397535396209720842826141334083549534246821330395897761347938597580929493855208504145039666401505119673104463063418882742302101910050055137671518203340086968531906227101816839857981978952432420343782305670969183559420451246050980434352441926739480624968477661951376024981508360886702276617195057691139646884074985644868086000555214144855019643770142953818460738162240337160060714921420955261319491614302418666924850456031049983976440356955335073239965996856997432179156104109591858548624078133437180790033814674547912181176691308700109798109919535961302409367471019263556991759115101920499394751510136128798791309967263967285299182066096731615325863442701077149769536554776739379928750195613414259073162737930774277328241125251407428006729661598296355012856776607968494689432711463677848676336221047643927462150383098028551014863018394484458230160534254249114986248866299547365976530761177784551346594977801604305912092134219844499887543734728988122251935107600702075646061632333029973126234497930862420997128102001449664358676772972219982337518862523884910800243521349145681829748648367778150181172150317138521289264385575662600403797099270148941374150273359863807823056925994872917385321171966401557056775536653697005900746837200863531751586855407047318420379767577931608362424879339692890688772884046560459128855107085140594340895334141303814632844778413230302618317042719505118422680484271022427669073111744846474472121017448223397665381941681694070803155598649907588180626397546682237513213847399887370346172115004715792781791336513508238201654025634996424628316790324186635410180517118529876858953723530978567454759723504864233558816587686713065130325904671344454821861559376623010329623611180024586640213485344364948732387484423418076789797959696278750878636499881630954819402062920668043585289866607036106825386208168785174273920537443714570586566330299613290898410504123398024490790087025017376668085138566863020871608830383481471742013438174700849455521120234587798137405028457447288245512002337283282582157311976315234638169928989509497082757619209622887750321075346164012181982254319624601427826164834866537080619828541285824457541278532405205407149375980834018722211251428851410563699841783181674683658168395501402024388262034854355298620431468406376698367207722446172653218390492198242398601984066228563770655381062145044193945050487998261564449208043348934155785796880990781938425919279232482557141069605411647179748645550979278176134824884335265722409106361466598733419391263158469243544111162047154334147683789020996091476289835930468945953224400448784832995877185040571160277124318549130233733422937274768971948665839282135472812813841779086661735424767324295614767245951941398895592889399782548204051286849566610298431400127247053471649686311453851696655344348405898768184145038189299753697536156483686772625098988276828193858479473188643261955240072160468888459897251520795161789734425687053822534899368849502805575935611085126351810097698036008295270087002599205906800750267260763686673579120049968030557766369602456550416542185355313367500523705573433845067925207540348665273575975793466402351006631112943718516356185110574448930014650543962100577047902865275842841971011656945415685294489035703591169029445221662062979984930869393584927720672211466824530886165758247195996159126809058750465524480782553382968175367143425985290846008055590219530530064258229664164445614041043511878104323325558776310439294971359835040764223537086093984503814727519291179229162366625919771613864692149662956750288474640076855207951582234489205992304918312636940803091809972938139724899573619318369594842996956020309534343832807573643712971645310182064778149307581146036196903198654103226689558072001240513296807635695335548412477077879485098539591941388211915574165958696676707511735187362228444800088226541875936145543198637551106607764612178830256342136842551526337899489284316875430163090584652497577573762224941852972965069132656400672607485978855253358377538532231984733590541214326632951824201067463287996638441436191368878504018615659622457630423222274403076768757853321986025838439479394401465301549831359586394489421438354849675304871138158129099157311961462375286188470135161530840876041785680701480397508848818293255517519665234445931680034083891717236553432136273685399151213516316901643334073461300933661109508040335785886234367911899872238089387877131744264455726135592837880735010074446751989194603178345732497641460493773262157812855581536303440474646429999858313335418655559089623838942155430815044073476897360410517153150224724015922691961943032395693111025899577283181124214337349636346284240913267841252149690699259112406461759637991498721208764036535798871052874966186292520396536516046598482201060575735969214071974961527199496302929204462000981904535792922513061792594879205866066473308635875644566975808277903642840999724043824633581272024379442853746949167846585732934586686887091785785845261757717095711080034489486001315718950759073140031965145522370640047427813186729322430044843969609556463145649651082387245628165729712577648403534249866979074639787691876103656177022821777429056793497212109875078924822117297181292532048135511352220709664140421549416182614436477004021335406979663923229829279987184917228832917169766193124402544839874081942886376008841973994321484925359805913426249832471497608836984215191019385391650580991351462406110435451334998598631184584305419617237405259343603007090459727293835275087332614309812974434018302948011384704045687358834082772826673531000332775561555374343845635736960516934196739770541961940303909798620529716705126797845712493726335228362249426068613031328948406101275384962438919090065392787294716860525308315161581284976478551477763577841716040764022090566283963980941750168714391593762754569716454659392963644812474872007561959636187080226786110600671139733322947165392289345876852167513232290395917182622729949579902017408873100098180752579896348434537978892261883554104503467062496610346955280652097485522200826400463522026993642537221055086809612905398314090192059516478767293796164711026295754618735609148008723191329921645765504400280348342705179689129901414259849202417462049682925747058410528606162757652972090782522020761626973022372205528142866978275524994855749900417647687227392345017463235398991102933359059700833576616790225776802108956946196243029038520126355922001928660843658284170420324772744061629387786860047898796583876204973213888421681028728965686069719756760723454935774317736927261068454228710878275346178373255085256876362139302422318129612507053647098575742324223726516849453717397103498801248916163972344700550313328434991113980511530232221396578383389067593096721945862539064222830132433813608446101729793244703563742256203687190962262297318737192699668815929719074563600024250699011921756328910675597674463004567858214047803351440002499187698124826099254505744074605429024582474631882538822797766289552026648821519508276708828133611446238884597750434195266325831342175899233600638518201959565345855100992307632146024919478191355790498580292566965352644669700634470184640546064663412594347852134752346955402822656050489163070762388674274584286043433182561680045012898275639619960335057856276838342185682534707573729751765199717151899928922269471996481917029230526038562821017365133398430705430630326187513466182610895347263425388036693760635278395010316827674606151050198550113645963930017064622169107138280842128289343505918993050736349566962386404518416414518450019617472813783710168904772300206748034381101050377940595999458971031775451878994201433363943787471858286395806412001790418320469468617385039060142924223804544139013029499791501217451450858716478672359315712888533438241541234683998076571565038203459805498297690938029023268515087374761858701528232122594141037390368555490838401072670556478699986696446391946166815643236266694144902442881028147640006787115449973577042072380002957627977346427533800780651131865091714394314824764047300497593972914615498088160386648420406195733154226797493599906079810984026193960628235967419172334798683752652398071369386162982750304263832973451387377231334594388991578894036393048396392147524947876426229159566226913739792203000312193912000343196949691581784746621104157613211364920322426374034972021513541083745463384130144384327913981232370883360336328547592112526474268409305756354340837040320161366048636487497663212306031432186258853964946736745087510433011949435452073901820551682160531913998437754210994628849912278745836811123825288816317933040527384601701159832586023439747863963124014484807219297289829664504080062903366627901546874184881721024004892439274944068642382553183659095841897107241572680055222750127936037642385644960276513089759355004157793214108582151045686846860723153389166586629243659104289818405975222532982156761811456417382371068649166049262912317795998614615233970971973371995915841264163067333804349107522256540413877629802546716224242462673257973659404845122364355524625875184223813190316829204084533694933484935591658530660107885210195584885556274337822969427371938845916593652257206480346360668224408629729917311225150693668171853300620937952723103004710201377923764504645169698264531507381252935606210893883769811160556424495644061759977120373284900600073962447204036076932945844779012115988834078425721228537611454445470066008633959241458077159467431914393577165581376444678598107739031171348221036197623509179129721390687399210105387389339705420619217299008510410658385264147202312229962187242720777661197966878428934165486620489044825817885083726980215234254704736958869355207438396574257170595647660256177082833150716143753929536980028113670534668927441105659228768739960673638017472021520109184909041305626285517631914975680233547866990624179741062866696035722551212270405405854442873716806386627236190637984293474318239205146569897868172542973221821662034710468554229503649823286072112608746888633955518293015141615509371261913733599369645494945676936551085101877226265256818124771034967221744579917078078395235544395780238648549448888557289731429316540206829478779240403806339152995423322219205660404754509182557986057017678879898817039005511998295095364968874936782840119033045865766591415959830361735370349969238181885109546792588752325783261194715885527235102118718763364647796759572497976252173717473181807691017521892884768368027086212731734656309800220666999819366133928332645448300576841529777739495720066727721257553212984839551827924271586787661375886342213256606217960721960272009853900804228929200516602766300533343502344143085148416858940977980971880765866194020041251572118708923628272250351204646252698308543649535032628993430574516126876442746955285448085543312552770413258320483016819347466446290254961007560323060014805984057512034745661957071416442341452151336183124104251430764176572608573812908217529953520342234534077939634613613717558998456832599508754326388996273104855349742138325883918022303636180028589769900999855511077036267308661264220581563476555175861894136513284555787936455838785667466359208833350999424510243372547877938018981000874164712094550973554947730326653106749690010160898090022234432945309733145835510327068913499308240767974631512482355439918979755397456071635815036657783837774043216378346710616720400956244703540993184215458028476809874607358507214705899931701756018272408587295154576336296974174220417232067535689691141165111024890630357224224561939185587494594699917669095045215820203271398246745531443570316060121300492915846125704512098495525557016203954440979977601207529690568904303905168626309081922951300908076492300495563739474553517396324231496360131673717071540090514211201060620917033005467692481484837011247342753401592805714030015385166767062863920075814862100188748783313533975180747262623477333174573847662020501442126096831681697951756569575421327575826410851571775752906984670269657565444908373458002518264496286535839138038332753526355703931329702565879029462601681993208484943897683998024188682997839993566679645626391832458391413865791709086545631591704204048908570510332312285903647414632997929593759010424257287355970776603660727092885597097146597796868406779835878785836483525990410979245479563760459366868221421073548228285306655705178335070681090060504297068530527651938266138752950387468753372490006449005610240236991679227261249049882958145420427764313937338015885230336337961680649871555904006778643954606251369669714666178424975689196919852132057756699268142207075069089002523915678157336032456265692661861000916088290769305337599039367897608410829310475865493608745849348938328088856054982347909620844618835606018099667994491834773636782838599069821032889671008609390471177252798445766127941177733570783269389002433212255427130127501263100047479646555653394903822539654307816489962006949577790349742951553950459041156855535832363268005084980881581092145571622614103873506835920291067449466805854450132563592804353100449915034448159170810157036665643931127599075638222177399321996565128537443670732790363005569691273582013434126013957522726147148209774878409963209341027657256223391541555176188218183612470047084174802397127971555693627260991628034281386191308719294999259109321798550227164524367941136104361647879806259397799858861712747044478388208339727307069958118669502908663473996852025088545924726981991845263002066421122522715044906658840854041223399104653206646371894038845855643848383978356675476585207969774518034212355344812270005907974502028297171457305229519167704766687047306093254794547293774670763702976992458658172221306018237192450311160375063247109912227558857905102442516109336281750285744440606020377605211619539032169095668407923645841661860844973003897709905749205525219099985209209289015153329492136021402091720110803210350899328545006248042281692139115754595436146435009213800012236923948868419200261348046212329029575199706485585699845067101875215377628243169927911938194780338186408193720799428158085229938009544827374739124444983903503072674799544627135741181083768072081034301295915920499759750995191469398031486689536458882833863149146651550549558770804438894379944997997766005177747844029174870717801808264528816447201114735388378458800994372977464754309772068433682318668584211224823766984518952376722981323633247758351039996209215222383954282393845915378744811269885522001687439653593347638843634735858729106590376726663287070343890801959325346244577992388498113351523884163322164581424033561395589637595138723373976850894772928949802735436357734239830854140510630843468833957066116907577422039429888016725818261693164184741006783496288223880871812868006386094279809291990217272485538460202179564812999295779552072159384002963409859526952570112789872421156927362846062134561405282866245166813712578343575057683888083277258136858012373637931263217828541975264224545225433184140419272245394204591155003291934718961227001462166661427020457957185328567505708615509398995595413862845061915612529371437772725928836906042112297329989260389040631307242926625770303970005186658580517445228304233890118887201281314538339077588112350384737883623820797165324641641509921781587386388928046266103339334757469577922305289242367515616697453110304240348894342752801640103191140633996057498765634133200191841201534255514712100700848822492919960433165937493503935591644918956680729062306354230759051479591892118141943712719748891561451275846880944352948502533435743269692585544694151326350764965634226793560657831840992560553756811719562351451594365313231096066123804564988111249594305256852999355729688232464690371455705992400368379569312921822771012309530473790945336013680674215336343397429656602567550968336986937612026633815348737083532306580157024804618983724941093051320055673035607916595852940496572482442408186930130994336495466576877680585093813904784845651907709003822766925617346749722732619066915612243217812239878746870101593197424613240397824490732165750738436778513138897936387838862569304994021258029103457257086565398670999383872171091943193450088753306115698690044099809871092693034787640394120941688412442817352089121229544661799329730006565568405541617031803817162027171612746142577226766691986379688799024112731057781465959232550859440329103551284795377338573246917066161246981091192915050418353295454593457439418342051430387194244568268236322331520799713246831775930090971844862133606331781757423180903228439851025458079750102682808303699477596977306274250789555557462675243427547276838388509779123062032596383440570274363728217712588871690441238465634469812593366316386553073463525073392504511003966338614049708419531192491829405219332159910731012320725269514491496029207720769157457984411060597686481844938685428480002963540632826811250020710986524622357394369297406969406631974931447498311369570255590097825377441668002932609702624103649234804087016017696653454968565653560864670395413756426709590044720674950954655097355869815468264310017288411233880307646899021536674081336234943718968088295239378614392882602748173514891655442422852554822385758158140843343994214523359448004140125797312185415577826634748024689067153652299763332114151903335343067834132148306501233364457113168806975642712359646552551843710839762860901014256947446697806233547472630027204564018627781919133669036972952640291883540608275545478710438347470068039815598091285115110585332997252300748187443766434881383974327106892471735156483595633335969581921091320622114652098770543664986760366079558337243668858386039392650698216002367797007369454264320090528401848830690360975491359873959705859290137898244648215724401055655338465872526301244797143648465185038002635634472616848361426291711609120659325672229383324303090931530082687487703479477957623504325378682139022657220699921772782886944311515752135717197913638176164886340802735420503876607027066704413989395828213320411919950740884857743158986131924077187094685320763441664108362665863878526091589529830862124964973930268244162083179700494157977314731960472162372829284926605046796914967629168145943027055154519112470509348889824939880580059055728992016704044700751269443274062721967788665335859853250542368743145201142966325275647288945452951637829694495930100290976074493868550896968169966886941098998859313352441088540097013172715763175037731580842313891884873045071346669399240387166339079230433239135482811483715103253880959687050881765042174235937407451570843820658426130181062160304421882562430120660115570093194840900967743342247457082381473132081549243578830619990061397039009534213215968228996584279390779932642692199358929141351949104156339816132273054367910154863511302767249995133951943471135818614095038579592129570169034725625806976261606101087353810181125058188788998779674568410540716366117426432184934131050800281376424874175765910191682100305727479442379462678255688197605374484715974483956892380296817626637954191014788499104320189607047992711723420459460468134451600177515397814697713471170985673096332569008012381004805111962512168518538483994625335566573046977449999433750627093782919544536134303036122555547558646242347963519673587642494643861350026587821400706242962254243493435523191283725362711314504669337195845852516813575895388576219597058313680252445763648284859290628842635854138576949898278400100979081916651685912524862830207564901896974716592403443511162454031878916898524659382733483387132775633964024893573313752058505729750274508304518311206955363189383761771871363070426061592561428376570271906579649736314114268840534956737528593887793388298836812474114773663869657990308586075606078591832402542303233549248532088096507633006591537646547366025395369017870422403590285468479065251523149802518029426070312508306779900310392929097548745096515887071269860328523562830354957552571683870545151363656439022907907058405247839791388986606016345336181777848257197348448658262564579567968663785420572065517932090630672727916222158557802185918599388839855140989422102298848895480462617750774094263095435390642938186428885745689273218244178714230653429682156937064522607830418344063061538492741428820552610610632939641107921711221605187931028679761127861012817907489308778940023923251914571253106471594336096645632383819772238666458590463477292095222510571779813405436933318984294439491779787792375122482980134709358735336698371114836225051354294294143240778693548172678945098196588187339428194857735716624208820747881428987233249488814799391011963878531989424989373407806684830593245581516225514087951243839310141795052482053771664916727377276714430495801539395096251580303684162414311034469437671008373062253318152753711513884074881316388862755720591538594407206236048149175006737117256122401891345433357087215178655724790408050933674249082702221367791565384462011752965843824387384818581520568704086505200891889702163538282421012938050798072657635994945635919477163437323056372592542628373117037144865281686235087355316297609454362061506485109546940960256783583559837483638416617629150547509206096215509739676300550058299529029365642344055645617215470726129363669275549729986213434452355950398502578265384206143937869808850206299952189453001412045635951092573165584037750401770776459424165999341712160208237824649392116671526502292406326777397731389202028414715352216385234300653145323918261047318933819054481580047863162113040413274124366537121086827593925972843590792081461340546692523890693554657524123353088971283084582962854546006654798852089411635972996544060271363260874036732861871312624816479023794302920770924587922195779470054996794201007609941987424016237193566663900660886177637237562955506964898167308994513987246506934062458641241147892435592632763340943237161396256743521861941800097357390619058313526714127761463004693955810329745672043589521906629104086741595624209145823391682254566933048435087435224461918124965317835465061066394508833347762370678438143265111390272060685533668731124855950185108081753651173150806560346548861648195033654080501310729657469887903641987861734123218483689901853141364812282673156216598348969940920680362638477659122431200738330018168879336304115774566608770830589115722660243241313556124157440461202299328434541156006146119133302330464257149916528132937224115678414620329536783510990670086441442176987895615168462344328183093995912463987186019736224669585141456317060684977091589285627521581491478845119855325144275753858849291681738221749474686530515140026660736047089756923674100065403916927264117387925935138044358314332985423792215194723366483533153196764804542700841290090614218403669443283460458713418644135630281298880767837880906150671575503246307815124984119924067176464162790687880798173687812688300178697566039048287758795974707366576289829088833960862567824480772823130468209480348492208919291391680565019173503146950927389211891991204933627572661612211277939542681295656416530534217716110900672762592733043493708066258021733714561122416614130149924016769424845530835332865998753123058004842906606612321047119215632380292939409536674639828303837641053738921891980836509927846579443749983738058335723095567390033307985968809841077190815274932046048334041148556068662102375608914677600348890720333746607830496939165722534283981675333965458491557593389032244541025141893607350126676391049351107248823604267663244188910817281195943158128236570557891068759038141361549803841580918086345782172931427943418946273218775357872022322937447193420598757026717109883552730649683598073987825932713408250553303811562432425185640972300859272211724149038087700795065278878036309301254170152336202629487962321138102454299398947274613767315481255460013612186828057117526411287457899840432020057309216685894663018889340858358987216294993992754432247694463469011324702305867659760318255153293489025311414450821145028289154982079646756667345944815314929485791617599811437298000124635391186414679212614774143519874153900639998373827328467087929616185425594483039162764993041751193469239984844391371231171492835952090766704598286613516468075547048947861010496808028377793155675172378948501927254465713839290319784857736372800577839954660101127195313144143063925710778598512771754963841552632255659952878162839612966766391160597785665062730419905029197484156258523023923503808886322837867430931755766238254369153612051583330211992007661920947586125157363503949155369800845465503255621490979274324274165968806277220874934397916212891315267672262940208527779684054408480514498136230712904400923026696071637915837107469899961237440136097494260009271467373314899626453463115698639765633958938122573953877197664811991446295475094097678025233722958308383670869354805270617978179811766653986748493963659822552318452434795968546110359435404950111459216963348711949496765198516515627772225640625014320306213628521144027152976559232229462943191308670790451775654668965995761122939792622696662912741204890177795704501697073347061295747333763423951807722556562041218905767428430853913587023278782784350744908407820973000227209176263377553022837741466940405418178728885128937298657625220685069961215843779023769980258641167207249245921732154248636765687363200116333381344741758679970209580097719676492816326704260584960739324770299252869672581066854858961788515736679211108850878189970404104948916474239415140648516788878753592387245846229129991318833657225031819481606999959261541165926218624326608487488275255592133636361227249303163859435325508390988961996846194424145977425859315132773522982229910723733833626921086935940817596473391229869633781668069875902107176320435604482197411844419927648092536338274392188973036819571587386796835458285698072920652593868105674883867787343672744486988563894873988416580571508630126474018619202235046325828130968979911373549551051474103162783560197684464337397288805884382880129690669166727531892275861726649038464720831267212376684441222009398857863752631988218811745735515944974604064389209639786025050858421576499869369870471128897289854793927563805116415193466276985019233577947852154415998431632226547692315320661567207427070020203471701818355031177873989417773006088334252989701881215846600372468366186573415772225125343010318113536853006278242662607409739778531812252055228513234608035127663405721475246320918884606168417744893452086958369874906034205868805220976500371045651719604063659735846844482616975186437860571310633563900641577701851938684507350256516771961724748563634132151184757406409481384321641678739634447975578763590887129175748787430549370668523287424363927480555635703155786233896990965826519625133429537142836097543869301464452231771320770230984942572665668442506408804127893387285639822846783874633904370405707127235076147586969250502058436052176206089633790817057458843311438271276982069051450495980081476122650537273306334625248474973228063060554119915665057125622161939877602400744870447953621799124423466552764375230728583469629444931798667773186355317427979018672127339408245740684489975045534264967843142441007261226792870497794239158707203551619194897815791225161130489238973925736466668869529765077814014715720425638619526877410585968950520735815638087330608722388578445683793653931570595554892408308366799964344703257199820855413135666755163149486772007330389900855044655047917846870199233790936468920644867824259843530480174642042026554264750393179537764983623812331036593791425246946490564762769682194566703096201261051741961198990112867083695254947294816381831892713038896069050579129622250792024791822019270385263760101906302035932601527343036284576740035112680392958198113923544239868730426983084129985135652058832081438447586840901662582660407197651463825811908228285459060793257398943715636908582059983835725779525721395425758605035769317418097547019094993505831529584704302018017143151324528287094855232448500299321557388020222836677367344682230455173605113960098022288708040805581559534507773426368854516738999206685926233603812441545763263617262416438135452697755822679221208801270335646074278095535091691545773651362393459871612242955290471856333776398285861755753928615667309631084115883493121174182490503292336724961831387973190819593347338438824234575417358417407115358097200800718417629756296623963119901770297320012713577437265535858386828363392836091521121416753191993021063836517458486049944472942396296737150519349270975593101585675707086171695884063713045808584356053032158826681532514020892930605309240570721903951420088960002661358008199215591795051633369509980261838542558206101257263818316185844036469277572445808259990394860563804992698821222359553330688999801839477486667670162602741952644555331647807703877495925741429435588725493932681965289973970837167743355007753635685221358728672585195350473474576893431357369524918408161423188128651057162772583330769093826872401670886191743333745688699820525280345208588040729492498374735633372814410570779274051879308323697754415246901522330931968858167174559924282616031909765357113692215996258920744190154850877834514507566921298371472814023701925148477059129121124116103784191329430085452337654643933064997763027675692576016782203036612391914321104725077943091778734988604873575200939821924124670266788286278392837807633315482530762706616932868444126521360025347394057974489536193560374741806515158345439580999135452810664945564348459006546104436629746037959075521829095406051087977036161707032179022137733010660586325209910754679042800524407381921816517985010568275592557965604440509251987112310305323769798859451806922313203634472596053485836638108707473397953841068884926881479386440751375236492083794154285570927647286016180859679653455676868681175597945088568271205279740151779456283459501012050188793908620734047903110529892758918965900393842959121616544395681383799557955430345533232524258883671200112720237132253797963101160647145159444613584773662023516670769687766377422776405570633431096064900331164950526654953310438130137265494975005613750258133043169372827095890723708414086238811409584315919736998104918684933052740801769729257271917442897718587591940823404942816846743231991411044646175218759169126893285095646814576059719802799816998489995869658240497897890523990416254920620621663827324226992250515441253187292236765088944181914105185045429288578813546903782318235773452139543907163787930961015322377618530253804471487549055361995017226202152358461847130641746648094316251045083671316944548561804006859942099538027091811848806551071061560962969537376163117514287649606991512669915346621514482234285627820525810210096019752968781884525965488619489425528648277552710024809400593621724276115905456412897279223004981997991332780665920258539739040997233936324425913133228812443461119004752469113471721703376496510267100956005340334651429996302097411065183421811260197893782786628591869677847878439180727449466317041051018808453909625811462217515474712229422240714734110041221390526721219967083842928217286753694460722906587033665429740132606489111237077716937912636285750050557524870360507685239900587226261730785492473996529584515674069791007379111130141590965740525292805648067264033957568483711215367856414920040412549565082008958297803350033106626698708101621719558949806495421022234368904938064341597090305807557930357149181142202807193756007932845355849933237342751574781479341355954190700447002049333803514394962596345258523260673047855710328477946216118829121131552873087543886779127715400319644477767586441529940960392343972006960961289424044379463515715895876711902648431843254537461242084820242586414132159850303351120369077866015106862765825253360346561211811620845699715465117920118450949480475597676929518669598742057439222941053104563474961937782584747311702627692396811099343818661050516441066913115194923160816196242661967916530331389448344860440013245608316842788078219373989128668531765246178735816719893690627820962416471128686442663219364246276529662343738716619074861929189785817902076974817618719693295997767571914745315754565980989355618110289342811539285038980511788606469426004308458194300594420857275557637541863440178184027401419145513903178411575341470544267843790262198107844532049886860921058864581824004691618393573224925926436779547140403135696369684549650847161834268218592114108910355392507361993345933834143199751061856466252749346215880877406124634346691942218283171175282858685343613341649354083575760437421129094841887074724236677768216954561814456653682997207515183210117052000682262768401374252202593908269982901432551368083120852028409140514134368737217574569624362353262585513682150515709025598884873510502756111960495442845117035390215198620865785347198802660145410328840618715210202626606046528894161215929848135195157945318549324492856211788857485055788194226100983236971876935252124638836614097885837113418761492143358189861470776607439192177252901668298512039995673774209006572332169971853035161091048990028274581865422580055926365110919656952563092241445921560343251143493312262049391262986434752011462301002652566703873117148620657520353676669161644850628839459209811870675175297419423035259114634192111957440155437144402850079331292955898690628264028575502275341675709584356488666633509947965161878902982106466848573701210826489707633400949084532807315038835444061701074229908484114347635798465720869482979948221702745435981350950321588110176812647574331458920933116216110217524851585005359677829604921253150225941367052778124060788314595005668523995356351367171868308484781615919279300279990995600839404771649821842865530408095501879201805890475301734304589621472033293251035669088695967435725185647521529425294446235168390079905070095968205945351336880422034645519600703666027771099415052198577328628970236742853210357306310236245237011229587234489643498503432449036882873576186905703923384027587990217046226505905140672778941132992388361042787850607552103478900490815861217001336986370905641867252840609236823461379012059161636212743877544908806069760475902791101951268766821437923542702549133168335953685773284552163557040222256167824314918102965406502561978046760740635507083382276308865412348434912103870024859711138214146499391073644388948111692434602900681009913117719548241808346987491888154925044248439659055209546582276098314252621119876375864530078418593515896180724326308310195230136215331442017783502575234950938173368322626362176574854776771017547513947661155241103592755675630755734936050312060722635340206558406779113986752030279020709372423399958023013819104182089252097699643035877847948744860849698849887597787307054200551916075179600022085543378090003151062322894030411750893503996437105467151503932470751577738941929462159797133089433729308654698878402313248409835991092111317779502002152580161415542952265486823133960903524642318362885795907502886231203419443333943710318353736880807409999162525031282799697309008889722611045487401265881752550398091153991895749358519163798559244235451175654238315296947712370176219876462107081802859301011349544579540817707967679723798390096850416582183941544442054106111277188157507201070708127063177567758229280315430096621232781640540424465052761013232993773589541850565084784501329504131169861364242020316143197436500929214451794035310039050050679495922719565342972861181248863367717594561507036791033555130141720981744581507303572849740867618276735064832115139579689474757290563927637973138147410295747562192246079195020013190200975792533983501404270882814537812289053896912928781051992130592949857306650961819736065849539657021903827983895579449194611789044080031566225039586540352958759911778593200742997538915556425333991338138868091771416208111360948691104681206418931319758686177326420766143001423639454907336526909319634006567446061704891564616861190521166065307714179113095365198679616232220917357888228293523592180919508028688517518151197247064318680190287099830323414918251582232699412830192715517516611190597927745054803869907771223755996004298999358895443730492137686432792996864531707649038481078952387556837929695967889529737134262641761727598846206170175496847703452626714524849056246951422601185057387683936729946741182695813479637484454952340952488375629009243846324356637837346628459847856739057308275424282266722365035898723582546720328674123665192875647837564816525853610971110132369166122262830691802900236037695300009340611326728217193038451891908631813783992829286946081955483388345807459187206781951922943131350736209904343803192999088018722346287088878716420595331493988448893048424824627421810957236991693440171926202813803065801083739522971165437534304670879355913748411912270288044640739128622432514333149878650358357859968685521564751851392575210026481129546537387554360049337623192565531939816511549042163347960256831341754455387810585336166546367070432858793536799406477449381231090317759458728198506001140197487370623804296967310489413712469754883506619465550953252670953714506535387427318850438924486660532645526234961612093320710978876020820919534746410711254008967583839573102386708604494762488904327952350511968869995747690884722092463730565463940772823034693223214683129061330280624552352628347585779612317684575752070760939212161401772887837729385385713483570748805490712317745047673683796280576121532039534963292697997985398653461087479795465915666912237182425089338242135676111213866302559987939939254361390921005285968551283696041812238917694949429975297549557540841415807159702888525555478780115102404471900896871184849974133895106237453643043546923950847505340627875495709506277121641117831928553790791936094232939955564707217960271673301945533522487879944484921899420011375602512781562966418068963044540812708083944849823668818608389417991880336601725597373798307084458488316149812642274331916294323990887996803003457381221565215798140772286529366936409824892737533674965326724272788747693503172956104636424752183378930740075672681671407006025227184736826172426498524026143952992603824706884810114334745930952263253347715771427132863031995843592302655524369150188985770432467881700855691495833548403330822382297941310440711996151459895611368465488613707489065688865230900396445257446112521093815816657575849981487475106393156503139021321879275985460481110951016322569983133654532905538945920237840968694592576477875250562100953582651148395565689874325225188192395322141992405635757579834842177986053443164628718842217703802219944242427356588730750379700209625123451995907928073191326610156242493895940495965089032967342066420868118036615319085273583990858729999229875350438201873638924771569936822752546433088595340123179047838596379367179459907062326503129660284888510633798657634950625892724263386373370707952242672039330761179738413899882226070417675089919267660480816470703047099738062703798259805508850205234338973982479108629949036708689878904474502542761232985371047376741596587619782973365698783110848938573621409558103291617428055295199468387118093273569045267941842939351254753722780982699694583888789819291140352810068791564982065895803095708452454732431894504233621748471943765060130049637423166832939699603976563385737984054687859813437137276854463545685426387894565644662933627242794536182411629519328347730808146343988167588981286707077885234490775244943038695883382445698058278125210975950634058028305240821337538228056694491251361655788756282717603879685037586266216668637844461587823184290213378052093690121806214727276164401640654178146497795109332462713165374239839256056215221456261582915803639207501773891896918606311640183013765176864774297059929086023893902600206018624101483689929506410874479894915640266985850920168071200760456927846500001672257838853711118512321448701196558162687865589601936833284962311492953612271240470386110137868669567076537819314031623768093241298110214876196141454577659122020856949894896008693966575583524948612851051960290599249395292569863338551526803296564537225432273679148715978387497347587438288663284857514003258896208786307972695509567298474703090019395886273599989688216145848253957832296261183469030147822447976178717274324592949675870000352124172093742044545631096628777529560388742439008217578987386389082401078067534970207803535085749509248331464178134546366696481323723077568711209917946755543181847574306935359587021954758433337196610370473921936070233033184411723557211486503620707943317037971937964239291423491553370514061681916455132283430039566756601514719053123948421890320001501866355850562754238227503442944890897449482111786934534508537038339939689612919204050047539935161765983012439670373494563799054472157697556362131669577322230878212436113015151877577225693705625323402093146673536279793745111381674660342834616091076527867666973169737399221799108032734326156736750450773482913085446444213101847027723143785480447320782656078408480944297762377608230015138180326924200808902292757178007335376954459818029916186231814204284435070932289269004730132134991297976830917089294608280828403369835514680351344968825426403422015572650659191510048974457816174986678574193060662668966711637717906455615531432667805725532886839366160294279097997359593242944835930620698888353896900766036676008871530263597342213807798035870646474935781177467851294243501513788889438274219948622155597399407090138606469275026383477610974806326201813382953847770448041569380464888483461699266156380258513009661304982536115311679752130227771708604239850084154604431246346826775221092433561073652405410556760414566112791706199414832982141831161243484354493810612730244040866322568320867671040111862528619869722839469822750597839538297822027408569555977972707723832935615733611385481260750736439312043230423742562907217211214605816439542432142775539483064704580669925770964144957518285634749618139860960888047189705478887517146574768735932087816407781125513644145932046675181110841930403738026461319774107463332276773170951593036493304368707630949926470550901139585761658210031693341369260040534554729542192732667791189212065449705388833014483608829731481037635746199057520436783949282813753966230535618102810924453476217118857274660857193070394268118391325404085585457640806423948329164115061902245335358477063280803006163899117931147475719321099298354469040466841297993368574172539405742981971509096296669372834315574153692136363042013160438948745340372384981427954049469913861559655027275102035854860155901680882064093289597464789384941963214917106545079426991683925821371640925259464025654695687321153645999688022489713709342892427560316983668863035506884232272077367012014830813080021462851921998755801449735333593140089849635759865756481688552170787733104103846203449353947998730262253832546227136339013606239636588133824798506278007127842436324164172654104462346885443443067213397359277629070189927933825854601217977076603289294224149287350929736875510053317205760547927126623427808926492244575078769714165674629962280435239971239396617503580561860297122544216350475674180205788833608782134529896803146155070295475904520890842909636778834074717907910131134313029645878351783196914365985866818511221774700408965995602461376903273547333724486415533980842152471352087824039728067094307967997491389794894198571827711934438048610276570698365778941467818641299407724798806664052199773040015095183494435130054330526923968660981991685220220051298180498285498494870231317444537658858895985767183281375702158901752146091263167116107492901995811601585547862224067090227681751706467552005889640017620186022261808423742145109677720215094933120690979735345730706745979849448103454486948143194577799551659030742346542212109660404671043694748945508737260265463133504468910574500722936947311822547418737005224631902330845197293056115070244469844328397704011814720203293065554862577160997223981647827331632437256463290839761226717329825010214892960968185260594429745549328950297226405256150339691307987186776326671443318200130753799023702082051098744186606837779715850296410994689583443636492955986639254598580225638008502224039898937297169548506640537418902121021634287209008857890252121754676696364043127674038444887897984319610349357554278367584358419235400366352984161920876215697242836644042059151768597717329348316718214588488884795863485378791253440027624484876040869908294955965337563622745610537967325844177639100082931290185594046468423037721221558684741477279558817771872779084511672681449424811130921066580455632029294306312569261856567959638689907689375736192705845733949383525366050409103184824120219705817911045896212288927057918068068272941645079684441103836009891621924594984293203174638973249280130281192296448380729008962211026856622367851974256015491815798227649217798874386424790241101382481982175368391105845717480283555087540660977721152432261316240186641361323073553585108254020897466020968753112564253159484649877773313987621297505185122055162137590872324352176934010383059167103799180058077346344631909729217719070219413713668889896747621246356238567025699549831763421386246938254245540313338603201715126790429243174163163159236505493891333932636650753906121284584982414178138678288749980809242488661872436550161509758907607662913757265960834284387495756785350787439215736855512502294845639445538744914864542771456440146147166104885688092069185254435445247637548192322872487092958907691458850242729548165622240825512464645484259530045948396576169787470984378590634293654010840037461248815474239859285622955582062875592900088336104214346630769338793689498227310191502334180431609270582156606079954899274783449601833427652178166650166002018439409612392587013809902218875020095034643243409859719151311833652581316113460657159562752512393081439488805450794763568521765643756071360678425152274150770248281173385665049321236077812812642820920029105148736837701400480076663749740581211450192591936898474659659352235321048427941840715142999045815236494012376717543968848294896032627170338697358374734026956110656215384994943114530623437507677935327521794178895774180164281591560648856053611246429616588741590734853780268085337575451260399269132460219734078998486152135324203293972081126077505337553775534551884697396405879728986447966195471256437309664323593955623940630788747983227815531698800623258410693962524759978466093852135880767561122630882910231455357770990143938536028233711400519382759296926051996493281029937299851270406127984596024133583254857037034652893336921776452192154420236335551073024055400951314182716073512953600914538354910526721599288017686015106148319544637611116222802906385715134777800012907979288285351630517464773307461301554276313406481646340987964440832792401634764074183783708148443708164703914796505887857822519003504342718077137997713953111721593982904235573137829738466108785594677493468216988451853916318715846902014860655502914270388462985436963692955698034425171548556259863923924706663759869296472505124178339999858606831664168465502992657035100414045266138077015555212118907568066449463782122839911067170784474160890718879534519961448741090393318980513783354102458101856296692797311344237409521047140162815721566430501057725238179511727747272618094981533379783508879156508571532051529282947661604662180276595679360864480334756829181764963965222319770807478528637796034664409093236663996594197731478526348714986660990675417892521487376114639228192010039198970320205301167889551110341507744014269996023901155285221367920968092772217617235202052121516414467358122226386157865090807993556798085653856803822126675358526364315725247226466150951152484353169911187474481313485917677994699013323976636614924197763690268673772677427954134258222195865192614295184791285487245020560746830327574567322736281162035843437371486529512504078379767639929459206403332045245122210546994930121480606816875470489107781901437042027482115622086659672700304199382189637917780859356488568943838588396500753423373704407626590746318612198205876372705344521931440887438462294448978138653665082825952487940406389396783239398218849010866013405383271954855570411050908448602400563673088589288623580612486360099378527051304077747616846890526767926777025666203494949691656962310505290084817326696026267922031191644328429508241263897371281208784232930423240300214582197432946845640700535389751446546420214410233532209873396527132428370707401204014011225000063439036488533767555470678716511789948453874635182856796682101472494446282016744780688032662727478278211320214541568455094066049774289677891930003721023215904993225195731557631961853303268216159456785967850054117998554963565655185329169975141506692438706063680537991908355221282170205484261695530074173912157286085121912580107698743172834795760968800084035460039685527099765828750515938632344444080324125975219676138202291614071078791102954167892747185601482943089132713587612801663651869445955919619652137059021798997114617190802725401828112382051657134546629645318913356185344044703253327111172065992935183719872020101420942001355014132671023509130409536094102289093606199432149700117949357000069130333329784143125135366877713951748389714179045762704969726056600773802473316660270114547012513528229048389957945157336060272029417392906709107637760583539498693467963553960807431063427887074406981921999057114541524245996773060692840798292390553138397689441662303891960047101623794932586585349591840862769204738869682752910165118032043991437387341153242529705704909770805664630070073052893133790393463904692786892564912155262370604610881716442053260934334011553543896567149045660928058790196105556089790683124256913466294950748065699728097565966564717137842469047903367900138468707345475814285089467109522726430294328320550447687003001221716338441604010814954347825905594094094482855844110121392241296146711367016279304775093947285612757299291028553698884557614782191576626179532793186737285346768277685345825369593199422647935817374250800145575103206376443493189574008583872303255199881133985430955703965157898621970095209460891595440155040716959655739211790187730420124539965097984039091527400311761303790293647522119723472585665487744402666777630421638228273002166202672057534408937753934466184169498603643202847689829012510241072063362905662566617164025433463282877284609745133325334888215005971068005506911217891139370580770791491317559885167930621429267819585310236857316545994386888876193665936645165606957639969664423207465080811104907228268478378407039374180194817423283047606678724311070511417644690336328163500958455353562103488081600988863299754981423293975327725903520723964356320494187826692631528111426776321386472688197432281477789814145567053778596369210977981387090717306634548886961968395704119677764367677966217626426832926602673671666955778096519263506511446166678861867109062170411690668106501816987141303868362670652002229188388483516437150496083915630590390520262986768997735011605259101888633981795117352404219514394478114197891928054024493643094096673533383879104893126682227043164154566811455974518436705714852568313400199448300670590210395032349130487109154823975827016443841295291760808891248171009211155255335646221417629362179899995485227994821596767932760865002773244034530528119193702367850220422546242291793549710961723386862281956221209442805028960140547913683775349362507686072393723450820352016982105219459201626459808479674262590786459183899554151129686997329137196476843762201553210995638530892544643541285160553008484958641118230467167116957257898992955363677571188360931374242799502050194784762164070879609093321090776395933080244125754057626215966862564958805573387955401078384947611005907720514868694845928816020796733613559143847845991992230653938053535202920656680518306583961414386942017307936584124713535384348596750874802027040227395742748266082783337775183758018870541429702954587546118714239155186491802958125664760241895581776357411259413088107874150731377139184519148140069324410038202567026591803238888033448792627468974079020301471157472909808880389750194815175000887451066858467397610988761974402966032322647394988151112296164079811178095070527714620744778075813682281220355630382958726218111902012134803197709297682371025216204939048446415557718293381102110916546540698178786584171736663263921377873449740803755310338962820781502559695727814661664473865221776028834505836109393664535254284346991807905390099091471439709274365575647827725867128616905225103616172157992602094817943573688271457341242817104002945770139111726796085682415014217220185431135210192932320194445690018480364604221982062143978744953168475704740747819763031991369360756167908734687355921862324959932213126679023457360730944425723559117055753802884020450419251552049585221379541323519468907195781033816081531608183361705963126910046139241138254548485193989884720415159354664520014781571426183494928149492954754703861018656254242522322463486988995023717962391689899511164499516150709261181757664329859599954139460803401465635561031148354512928312771695170541945513973894890074812668702827301979656911262925012892985402587667378026710582657468669630726811381390080901462455884241450412359143262202644802216474532110815495154486207094151281716070631495826805283078710023725018560333955232374906605571020387495405543005437310245341483747526115922200740108758376350193689151516674875518202111547684211564775325113836502684320196501341380067920163482070354222051774970318366317951638602305081961195574431928225873065110241735023775951291178589943554499127856490567736447266239319893174030335850382915793523292948508991328006405961181972013275406893152713209669195883064947602638282659252294741422215138384945538646137562477515373496391512075458793849322340960152528083779135773241457605095812457141028138718884258401251243499206599684327811820701924481040133361979868980598651534641000568224876911357897183611586842842012572859921380831158960031689349751277382769351607808341181598933665126244927820132598310356459347177137656182713139026168919497350403127661400811215936661336387038015150456179051957942495646427799836149029456662829821826805348774717651340612964564465807092550209210168724203742797070274428424194816816036920190570577837107844185526019909640940814711241362593636026222712082898624906028989682309986226095904217340501693723026892529495896088271326588863091506436056190920194712095389205673063164882629417261194350055124737399810284538695014645266012631061299900584340411338039432822253328902356306926778555558037712100754347812897029233597549575520641176626999031737826781879386430468989506987367429061702207625206843238510640385777049846936256259641649493305025952466128899489214669528248303667548688866877546753458277390715139100070447516902604007096310672109240229099322088333198520767251335409097672128175505539881758624832205083076370216885845203880614769521978968430276239851792934288208534105132596132407733887237670674395743854058847427045471614169812462129367299761628372176417849976980167836784375985649710335423544635164197913562628976231261619352071544912530865393392614924002440950877906338749132348717093551656485968672581817219558433048611690806704221736557024709386484079239589319264636099224770569414693959889803578261994999199145269838650586659433243493119254501755241218020571549546789546574172936077605822398684176302042019458950948669685767927141197234623189277907537544598257942516457356233327858391633446497363944887169997853547465053931029048170816010441955338949017903055591728604559981877432805946161935730624996675426351989800282272025158420052942421533711079335110853161767691867714841879185272231657935386645871481980425640260465352298542100920820273381931100254289847018518077151618679129630414231628063107631463999632071422870241096153555403837587543589288572836369130095727709288729462277926929537631786914204915880867156931660710959329708744751876747939780234327543054131630677999220925785598254205149003015190494769458215864899912748627935629074151061438065279801032528840157817034811171339066625033693712521479655018726708952043705680451187085674834053250895407467148574101422095487599093043270265855079751389970791796659319827340865936163190164775820062856339928605087075874588904311587204157462599381558937552930552260972644382161639881419930823026415607108571527563557626815274861423931473588484596258443618513118789501870051964220316034498314631907481032488828201780351686081522091627182978623905589376725477101520853790640080051397380085773047952218378957614382519036409375559676325729333010685042390760507286168229087635994162542512945052430738451516355231877814351851988243224212930969065489886272505900913361582523639749700313131085730236171993388280376961946089046976204102964100834109492189832724345297447272658966367506794061802519820121170435199031318194217039060561349413231111839081936593637563098149205461069167592217391399760703547335831417463081634566996628764415724347631156753714225590767428759588289765387833586155544812792381875625324348248812138370488346561409595005137606620367310030595952254942923979876239882082664664467526286786094468076716887262437827344802549997144634299233338303684404822113549485229290013454145686836689898819865653578975502545870988435023344501386958277536484510649073584329137277926487487580875516158580448826001285903148353031921325091837645818584008673830885973650892243733216281819999053319945255052329121861569717318733005339587269730627454530714494649614135844171600339457969284639860382261419979598700384974408336015518460440751216812623187591268138678922740658867900494386751184776051605192433371691704882527346888975840272128154845057458474631977702563384271687709352428151481293148348623283564240355040925027222387723381243439463973347414563497981486452333956559980239323973926380380442718960153364873924673647825747221928228311359551229851038819261325498270799803145680661812694080876451312045711579274739778364839481096525635367704732563194223429071599413502894866559387167336600938170007304751458295265684184370688116570750750409273257884514406699484853970683191553631543226863864496440490764567257424673153149115766326403961560664133762577709090104175501874654094386752757099149905439072487561797844884007290270387075199426161318219357056135482732002522881859136584650874415734726623547810140021852604475013875254722624174352777715416043093606462236411254081526372201656124540472171212813568754553289339704990281438720521989919567118476768403357375213489003477448685306834142586527572362988612043771221305990505597854021042042588831117385951579569151542794774574433248712371757486553147443472523291222521918501036719139110713752937317782891615689063485092025031086275289029072321639908476531480629326308850912439927803305283266036776455354801552980832616230083868491452784167100232201277820951373347060666190656091193975330836404341681712936702796971093000106649151760728355538066772744148099293126121791871522796138115659553299046924653198408210466505611944677320982425751021298816456472036099493713808735245122205127085386356198233650611424870162476490014616850680393901664212556901022922902686279663166680735347670269156088887027241560539745274465201909063041952472404971446660684741111918432863065235159652382105565212392881959010233279731702038506718258636127321416159388711671221489632868206036386367297927059516264885757072679470581169482541613515346042250717938512779232088337577372700182056689831147899924313205158685203442445218074843363330649946665209839662978583416672371515170940892451140279825342243352792645713794876017991792143198328838531444449537286043695948873286292666255673300420134317544585677524301677043234074579320267390853242735911829995249478178341718959810014573807214455432986986134628401976261291214941763471199637521460552477758741558030278160201356496318472068296532942643812398743206091603315471500163610839955731947728593211851736420606068348598163703171550907753174142834067631140027977625366409026956896086546647455395699841482325890128305378351241997776500022680800437376406288294995075963022494396512324686660022831694112499410143326625344363666057557467704947271363531791400269694440668078870569483745011065460429074492641160544379730892417613270107312794808345048369031836746539904946408917851619933757685016535689834525936439705946646185145523031557504467209830543598454132176241196722232873321383537983842320107941470734408505469431387376181014813801150914775299178753764206269006810024462899445407511738308908889200152203397315902860866149370046639958079081850086595459540175094144091011889969720434967409911903569714087485713966475653412063228916573988367255679412032554325796940921547300395249717850686766174557947162546614528628691788056689446389689898664838640640729407065057009366730903608064723206248201578245428451231364536302589338975452659385169711954632450435683958805126443076538763270139655646512111202881196324116715805844799324888148374449365876072222432431585158922822994973817247998150128064878671478802061442185607046985836938357640063907636944155705574209973521021643376451820089914029947435918967372211794274267839405146592605294487320802087403753716289291931343472718808929862667440684595005068825602698269419293237329864589012621102183522851792377257410022802645879843139133508524383824731906666334801547540961353224610805475769909745533511121861021029674903235869078004050387955444255669108651534567834304928264977517035110128748979480585699530266144952467521394921624586153681371366112392023906975198781461240558874414415299221325400481696987129779076849741982757579707907772588536123301368326402561879064260107035414851817470573260706748509214516091866774796949418702210699387915390098885248358102721798053449234852023442397145405119167994761157551407772552710870751083146283006865668012612620632949372323143601895518525902564864710117527421095846706308830446909460015222093006463926511105947901093905253648270339591014913180716122458680108045507279075092907861846950153790875433011418796987796989891585389739044497804642122507093682147364089336356239342215298342347878984639373649956785991014741814587082692514573455492962087655747142139579161759710422274303079163964873178986868291899616597014840318131829812224272276802804057697366129117999036724730538182724276379608409002168774037415752500517147949463836083885103694869387246564718850282610385890304545266984840192966923452896105231207564071578173217248507580775845594009680571251559731749891732048427266288366169749499600733527582091149839070900800550431824241128839276007983275410296178868588841052915801370255416281039584939890090827723568769048298520086358576893794045122472866893581431748647110703105312649379416986034799205740909184125788659005586923492047128245421488832806119212733384126854901618407667220031471708377182407907388974615295943852902570414499672210109613298633368624014887598963260238307725986958138912462720034792066495973047182223343958045557233825200474029881242979185601776118515546394940460776788947620508477836882098458674155060392189204603742037598892827655098084116250448346034002581146724113722004290036016352083421259167604270652669580677871615382054208340718894786665437890820261842832727702232583946114955974626662902792384086887820865316429763464495280771863767814051789658814699987750182847253146384230592854042337587036186491973542176204370450950718663103782611297869762004524398380252308191314798860608188349243633832188310428781918424863278539086730717072090545865213885632132298412678519430808953058591966993862124263950713402354870623277119511734274809269679340174571209054955529969866679773547123979511586616293423917640811889337745645721472357042606149067317560156735576388601752180843208640270271833413810255972833792090255793196619277307758887740541290742108956831283072139777754049425707322329274901818239569545652848532307825649565189545626642377480392706327084999716941730606162499564900313584792540088214727487744709504164170996556030125488432635113833043500405173256546671735146344586325372225020507884069838130247289095509213071070374101619250085533156379435169055086705419198582847034050051633446971758594685795999355168475486879797895580363520905098495575152292571335997793419448608761600312491365320882102615170256243616670744013169307223409467232118108272113545087182865812651065488191944834886329618957452106845196471853752133170045335685592157182339713874575403597451414596270928176149662302341651499650808153593897941865520483751404664862849442777055562403721684495893061195830052201780405738043533836816438968147217756107674192743670232607523924389250221431349007157390137540720286096835182178244567432942316036189027787442265844561155390756515209430726701822846989823182685987051040912109322678003334367373742181712693908031379557046538804055426792791477915968300666868121567568682022255007314565067550440389502984738776668289210773494792168343357949965190705120728799072547205933263781578401329395667261809534485468253365529408484106066886789195563649275375912583479149616291349269589848981466716573048974059170518583459686985064991136999841176549354171729460773034330239909593084926532938478935696297647133891551340084537219122749426053630110738154746657261309005155142496012207119506173740241063681952973864264809140794643484012059154711531527840459580010322369530792780262741299357116581181881221001525556996758539753784897024327945848376664754025446481231300158434671624199717704188164153045181499107183176860447143591182109504073839556340878315560792610000283692854692257597797125496120624300256494754979003173651736981190674433001062984864690969667310498249738645511084748857931677176556033077319261149704313992420575214748149259086340422770685473889507376828187919400261152756927427157224902539033903573887296155574386409963062386402355942410401525614800696688317650060532639294848044027218293788962691708489131239342038584891909936724689975993999250894439005516740838448193088175367090774521450661475008039280737569228043260128088446072539452685948505408349813357573208318011997208641263983032441437835613863702588673067820832288199245925013058623930304949965145051203125495224880948738748370334746062211908773507583454007271350729094648253267886712302544509539112707882804300841675746199265057431277779798525415397980013273187850757507776921264733239103752645526167653496672333850305030430735924832870429129040070711052369787978574301127460365516930679418107381607573182418380174475665389946316083232933690494598521160566379751787445798877359363582029802716478246132777428018643563115361787598860603390436986328482656966709388072507204120918536781681838250532527878481031201654345511142249842767663041996947053279267323968757217107350231732611229938060159507729056455133035686055828372134315011342212678771162941586904272387108309133558990846988394592170849843417938231766516723073209284084608834816934833056117539024147574636247203624885108794159303249074751652741593222960577931746563030749900319541143735682928496781064326548988340300995259505870653467211513753015306524833040546546508189008889055829340978495449118662382759043302418256048520392596251357457702515311200591644988418564877044528916440383381715481132232312853376383361048913333914924657561427597083500931772341500731848419660396423830194752701944814885189943623485959237927447267589472654834553085521442773651107357867414491324137396904911901130335973771822412745802868434347504085450589862917739999921664465309527653339035431566586125803678518060621371498280442570342367261833656294531162349925230938187328400072175619464395367388488843786294419477919926682050296235721008152212380933718483352560125292013100820834850161085461086594356171857766669263361405774277570616418699366311904982791188609235995529479980165629903088620985055633357378433248592342010671113259313764668417636208652355413371285570661101293649846604067226320355772383898341311207728912282582627010949425906251431950011111520362822421694891570909707896764702020063090318340251011837270396476886987169583035578863729544583218797881152158909772506862803772245365332592195404560961679913700109961803147820812946783989124338907776802316629088341036232247447874114135830259865197324769336189855907749781301437570662161914004576193658589914262165152747180645075602624352001255024522309582671508426474962331957348831935901791193863247863848241936644371771782373867372534456059253345306622097397937543350078633849926498513971964120378182517331561581049028760419464438094147168471277632883693732876710132937400756353670852127010509799271496203999384088603675768272474269275448832210586555321010462890763712303046962808616930293959293469821190715550498524745334682233466656173918591105186479789011799289944917812670836165978146266417718905882597408152262393466683755557114371448664064348756455563314530534459586879643204255633402285962519236987830901561005177618903659118290345688242756976381686666944859520894415762961521118167130254781514715472916260835019875874782419753629058701114185728083237737957379733163752947181641110973306482952126096554700566452156874290082147997160205166332288317140765435856766577077949134283484704546093546650130794756250559321095694739217694203023810478192424965835784826285923466243862712678798762056200249347398355852698958558250323905965426954444116490297835356417585450083985696740523795088469870246805953950346353260191464167455957623783822230982663965506453630767873436616350034702438762525752587753170128660497762200695028108080872733195609805746017543482226451255239064739121717047216048846043140339889279980956546158778379819200109487697889871498197623209943319066161099211623240111273390984538616518696778412547573197261497444511497698174680906190401053581648265584592563843640409221534823207964188442227025096459575478502156459043372689770186158407887388464599131173969873254482863251780673822080655354334976274570292814748391863141835429100597694381649199926866551184676675431496710245715756798189231548794560872261839027724302005208495653104756916657362432709231875066032852392386789117283649071788752377748641641841868529867961928872475375557023633915039781070660957792766229652395485116273637940117199313585129381396970632560847941200225599907529071518337711518446179925043144372528821639835942508089648312164311921174600352566816826918443650769926156293203204939986726366836691380410626341026776721902865154452559780160636906619580326488897269628458178308253481870634829906728253136364067121762670361591647054443893453094534515547149687482586732831192596197727441799713971513061583985047772368828049107106977368768063844656686451619827184883066807626788156585517846067632106216793965885150748379137346139042562688350944987512955431769410434808002117251522314721318716441732400682042265402933639166412281228119539555150700025828835101923801870285960045157560422956982269361823945664863921332928380675703758368772908993517071273723138816843555354750185730446601122546243122114677715205771631886950254953326765091007343675179621939945750744909308077174493030767799844289093813120743423351675515759680748754664870087509460531529842883987276913899283046053367903135741199203038680331767426670152497741663201152413644150605087042973238315311076850979653002380256740982242660846537326717911446222093523636988409004036873668450132728851813262080220971837878368098111887997319961616704231423847752215947416418255504842375192629239072721979289298607484370482320922102853080235322287845077156493664764135297552406283761507580861829645395514472171883158700232252299167310187663808939182127969785794516943863302927129181881082999982328713039315343912766720345830646439297668920927298113072182575572740912184212592403922253427557143035135461142824721408340876970144798286994470838249439064120913847734356598810133416063040073427684578912165652429509298457593551132994802912068304179828357296140545466023449482322428697943170294448626406699470210543900746485965735367264546596325648193523104532211963736635597222246003380943502688561517009860481402955848411840209284219772623668012478401245318658735567227942470437183783622865005967587836332526267180788655104090181333644652011694272159738577772278160014728575046209661611674425667631311492267217211687347926266693699422398937515226933768403145114592708891546385321675040093260796698590332355906196470185267647123936624912233132301087468135392553533241465439726604846612576933446016777741479899485901643761105376417367100163795068965447545799849584326609703033854528743049383411395160026756051039882172737799168570073775275444446343798913037373137722868078446443289411598742943786142220015941940540697679452286148643108333499932352845513357501179256120986627387339464098371542928908011414863167884018100255008458095124643832441597785088049523861188763876024078810216792640993694145161987712442582822919674990503170800414491248569672244415780673515987185350589616634364392100959902573282286313540373388044859041385041871065028289106064577209190775563032612166448061158862266241435309066651158219864042496801503762269284797705290547490944902264842956058622495448945498352825689888685726529953083844796299901491741168150150657189535078963513911647833172239208509094146716152724368684336184843906918485930891093750965001170277124248337798525308994800157899880091903964711313223950779036604235595060969933850069626156344880168345474242910052025963164130436598000650539604934418347890613351632521711404443300831041142266347367407487130226776023887483886320407060406118166448948324590903245068675737429147893310941645781607107732510918887294102314493291503989028944614119571044550456390440154952632826093369722059196772954248999915968721993918026514546014790968288649807054269205985704342981053462886583879658662558106833253963072582618212204630285377701986701021973165728059150877027288237102955841477120577475708287959460839639134298424807742014607927873196706153448568612918131260211488070096952973464676130073949746345121008291376107080290391610831372030778376182336116286917249355139651065525142992510336725310145895308418969530345618763560702083781846533567476305817453331631234537868191690207640291385033593037261232128996872933109335247749875429235787335977515663131507009035209592654859689641970523571773881171156198808640229456291074395382761290493155240206080830600974678589041592618367521487091178913874837171929994194572367651353086932059178741428230295724593745795253767156502189817145808915649094462652526218859036274950057124534148335861366237985371944457737066805336176112270499694401312745768839506378040932016830729208368689230638536130724732420752410619245002157245886229267050022365729402435733817701975711526825274383335308303722608848999852675915556042833617635883610414728236656503813810735210025029097338870539751025391837797192062352098291221740666300991209972608813930880918951890825626265968050715381357734520175819559302152836760973661610566059288101199449719326737879064853825412347416803675429931559678103290586905317491242254848815998026026335936415400718698783750649719919791120102973623296386785474094696341676066231141741307737423456041378727064461770436336123602390804112845643934524863219461363883158331362295205269459795946605372073263766164817245121931743356161843725204191361832941250835134648582305702018737966104374817277707980349208275867987387114750271480647386695356360160501833880167762462318035348411027156731293010714729618485140648626881888817829883237185856220266230498153845359966067730429033921974537453806638090895267368774889206231122313570028991946748541005214310610750280308769185360967886929110807464447442204983855998420507309098788381913980449910518093865759973578468051141665312022499623419123810583813737040166450588139678571527007399039637692842550952713386208559995931567371242901442989591417004644273782546207974275730735935271171270056792704601923630485973903673109865216062869919272250353989727557880980093681898858157033726770179568030783168798211626652591049090246179848127473434069554161895781199785841851682104284883471867708228804451633674092688421140422203976175712251211622355822601193716374753486618137644310329605123627555053256430042550121796571907643887126717142073224682698690765851028309793205829878877528572443372392527807584515841376000757064390610361762686807481090854561806222631418695190152362623464943719046692161971054878883733317770840578567591240103769073890923613352267234382771206450952764114079117759297308232925117170484360624146707455114428494513867157074781765887324537897398077574981090492381362874490991764309930412057321457936629203573447577968447002757473609554408051318471290839521641189999936109736076213897920836292390142293367482717561184830541788089088633079590222737305779019689954330047100730042688848254017067061731923982786091225568693551566151337344206090738948012873764625835891981152899925760089357985611180391941584944625819527139966556508750043567345533902317339127447551006680798739970000485195205686129484929324213233039326589530411621737040236404514338865886620624872292244303370509186669239717327868382162892518281555805020058589870238726485799621424775031580674228470853209100205124131598512250641465719244738865290848556831466129794365981498660488406358862080026262697340879080116013487942608708727586574760723857140753464002956451225142327550728760848000684565899678543603163549579090012698612165374021495944432080624594853920009050837263858762415103868620724237916906319898354739533622663001281912200047659120275689700636395527246510278377625411895390341064558848373653168760128441789158375704743375339792271489100955322245944694879924969292755270708828323259466177299736985893939736176034159832136238956806207349578614947582825847265839799788960487071013594838383007341732364522265081528985499651231112629494013504966081679991888223673943794193951660088367875729427359470276845136528261006131178947796710287684526077969751976154106648114277892039297604406347753013247816771700595917328564934451613026302517334954948552803935825585547398244675135659278997395893427987684497915715724918809341287617638957363783289861434813349140958140130407563106623383098727684714884878117362586735240510971312713102965122945418719435473625767097071878261231967919764651907404454705820542427432164593490687347944206944881068690596048019642615812721165769094669567987192003630458044279141573455700792468023930723181335538979013304659808971429294666868452855291170869635684896550458363700741738043054814709874515499466512232121347757142566332862270376274991060986341871374732502349079065685995950226804206608398783737315108313399468299269048954380235205124079679033341259226726779435766266110195757294183549970713541224263861377372154996628735750422063519101023425022993253876672493423385424793644748076173520325724951529548488229413221828976106534470133976273504951214795452074451770367976032057232575415784498045348621218042198062288954429535261164948582636900450899288793058606096093684457582879671803221990205327913123828327951019703369569142102904353500022548870956831834459801101609190412191688748602613705988875441433124758337858970147800215703871633304430991068961085063868704254661926119182580693792376321796188658496039909628841380708748471912739882709375977532697414912032031902214198899870427989868856922929845480014634392786744763259911186593766423485864978617618058956725051338787164806988833663718771391976825904195030898133106413339612011955776164660633764016016778404537183521529737531330377068859849176084876646435699738787365070671517739443486639239859385454970426390992967389324725500603533380826096285451907968597679251597294728894035575662404544355577530756862317827010258353054406150556806234497405901405952781417628980416554800119033463635345782563595495925051727453937803876861583731141284276829842679086289949181519003473298027524317122181479356074110665925936343454359412281856042809262309585756060069695057406538714611047034411264011323225864354012110794332340528689693387668034918330243319179805974581539429215830432669039626661544610639042150109082564464227180209111832592458530903763230261717767282151862937813907468562346001656210330113932315993722709742082272059830998041848094630764886254807733367201377279895341679458356574679934919038340236546411589074344276834798498444429686147203073094577011536951556211062828928651007155241102936384039967807113940891014037594023934532140225373081650931008321108962050150474711671908062529229090638629292740873978305416635918096255890446354122031452280835584520250616037843618944771562974065132490202049055295526033908179524512110497592641569998887309856489123259174656816963985009343292975021959355533450921055805883906566607426077019187683772280201193469592928704158482407784557553291950436339847085562828818718987315273357727579645911993479612936073005806172015196951503124786896192078997983263109977570831878564065300954451438051167172251116512187751265111130005853234823372520552285812811370909221741356314801681108904962033958738921307903398820653229634924681916742365283261841322202147439910009772691008820872660853587469180167172877308789550650136028704929045365797851997840330907293150571985697534132040153447659322204336803997945649696866016571624629200170319248639279389366012479313318997962673813348740554816008988981635831581051780749175914937414744845769724821163207682034599385290511846811552282522939147305239518682030557471558301437103282284009399465645891709460808402753287758168789644940364492256994669462631573271003011956266334426797811180335206546856406798736790317754951859155019106855740727844610746437670668711383471996003846443050422093723026582208339162427347831271503302941124830087797757825463712635018339665004923215917671170866224859340859691186369406675523173875083756089740152500221373481910807211320981972046349537822428250415358146427674231736982333418787062884966460691918290811371590522794421056233377421935310018250750906930473200130152893124770260946799859022095081111252091357934629886935633469336177310181524144262158262626971599046552483785943688494424491452997798483881736521210873002916232190869439108454017840697543210431769490191603921202206514578094311938482729607359083299793606633460006353988791127088358121514360345641069188792875933818267559775688194586019321533121644327755141644685308501530207057503648239201081021340621729914287762921300554177462180047150637008440249245799806960975145764128210980999034928717988511957637640794232146719736584814721750546080127403140293344873497203174787259216188300552491991709057656458177748173604077472317074927156149595741318699511215536569995350596203662634393206374195368573363483881596677692717029224692703059483792814172898086865895947704117792508960176242120621677323984727906898795770607118523941460995118509060484174918565190817774251889253404930971111292951309576822621095275735668718010809878772456858475026182177853398562532700613595830332764373499135081234776187871223474408214629905583429521529377909914633729664721702528137817491980384855170951510540605912317849190049010020131554811138167774307275160789666622801054763685710878227665463662580156116550145776749429909761425827102644033534527176982197782288454969141428260070121516989409618142093631338261784087296299184969851390634685865244865257001398341541057043209946091048860286979126119810066133193571587005901969097376028018253482168346974327685364267629678028148064977928228531264319186926185529943623172185303922533387843219211412783910335520649796862158862185117041495442511513472189754102116557697642185020591106843125661135581381185912847645756662147199359123466791934291587226761164338058762052708408172237521048111644291269752456711406308861834106508676702709629178841635756991209810810174791885337365802963569206764266228836107482978881248996207781346420578667359354908517515341458189581139547474059617674499241836310692356105830452269396913014146841078352342016404642622091290726835500125924323502396609515165716441034051416834961542286242698002020940060811240625936813238961982061020376935214587734033765057334291621863882805312850525712450732012369991185950108078038544235957241456049892881916079770222668706206740485761588573970172253219278726904480647843216901639120382874768815364860446971203915925612425027317732126301870661966649106752803152390199850832158108334241709043612717987858583205742685224656095960243793374199511273657150467539317125920910327481824484439020834720915612809539631558917524482744154808969281618819447289244066135320928077106831456889622450710529983939449119099132766911347354137073912244665316047475221680550413434336666111678594494843832803006056587677748570012834952756216347499070049910355935848877499318722420008598869208865648950670055002187427443858877628918952798651628467648175936615000396364855587025849102619159273869585942463002559793225524773252192936376976392694232425206189380876662383025334159599201980841663339933889057985815275314565181886618934298827445200855643182769663917920220396875912609078135323597356524338481794927102483151635107747422040708080342951633638865368989228999508234538231037267277028845213817923552958239444732950648130121197756239352077187104362760798264978873504657625203537688630455701580238857777303123189926327535822353494341522619957025675973393820542540658880835518126290989770246559092574647085853266849775759206937060405239588943961677902960058372259153291428559579085471236636902044027645207704856340167472713868420486745973040504014559032349467947364513753760120478398719387633538760221599935357323072609638035043887711933629560932566705155976510693161783012216792984184726493933267487685045011715825243444838530198361974643413362105061002402015152940397388043077245838748409211682692828472271910080543058166916106435062385138644903258132267928799705708567773215291463136534665880701236370172583841750748621795804151909697230709742789502092111623235319336020137825319942544963030409269695755568995187444475117763298379255181130769163845827826024514669484029761121208003972453614516813622814892937945211492193389460740441141528317513530736989224649844478901490038268121585172328694222020638500389335380663278501851255912251199070832737164811372830125021446635029596377429374511800169586844747324116671944340182963088603828227029393704420969962424957121519759964407852174642844719191315185489352771865783034463765622035078075181404878479236203317904812444266379731076140088840229859784873360606428106401947972083700396247563391339425147215764829486752530852126892848016069829384916407357401046085840629081126314133064738211480275187312428434577569577673266260752255981686977987915740577945786894651996605273615788551536504574268773849547253121532365542112407243314420714776319206912456343291142017998684559242266981800156067844657901815821459162239997109776827524664945131280818919744060367431867656906488202694110015197005064021327914627280773594966010762566024595913797206452501890950176929594078965409197201153393135752191279723212103008987363880077541311504573615969828470948944094592004883666691834416134021650403295478029877942358557635302520534454072938373318547468305427858558850216617745882721560995966278844124951662808084870396430910875225624248555028415827340936567505960297357423894408568483517392032605080647614324330451350579729688172993913294848379252320117149414644252146350993218012374546376798558882903155180680584119480934205130470084411238949224561542926442944672619474446051331875744270800359551608034832568281384535350575511714915124167694453966986279504041018691032883389718792068035712378170231848687602617710850921897834942205926768179897604617068251555935755385361780532073991247144678661287120242673762925387370803115727027447124654888620839184700625001852093040131889308472127296984563806114008860819478306323523877070318916991590896875434759080884646738185108028418801136858975199698095329696191274069904754638924553435700553167518851707019592046661814817644638067633709876032466538263698995980767882800220548179228524493949916752031234407530555467488348293350585445570723499475684088758900496947291427006744266692254950828130744985319974647307217824577327515869121902479330793316062194597755057539779505472201188900876987522922895248732804089537177974845180270663597438622790340683487156339613215025176566888864780304092531153546519623681265260019024426918167654764792370309226439926116773989197141064675622373083414655581847197571928293419729456071946961493382363249092770547774471122938378199408365760358931762514788857746341737677608750567652887613080511951124535374041113334455748244233276095668403241721632919433797138091931595816698378056773648278021663564716270620659450192090268500003304756173110218818850674924875352879982458353226402124920757154132809773323997696068772103729150557737287390901801047494014849674511568872865698398063276110141771336494675890069598892775156350727838269203872865609358329555200241601613829865323983839764533927569985748812463372431894359575818851377899272169200092765072646987620640655376247717331304210626681237204367826343619253446423121493148227232124634895521839172627495249337635902072519682510376255643323184723220974254036294232567046677565339244835865112011839516700282327860089494031212274355627284602310602755871612055011366235123039614957026380749253388265607714943059092151506200901217782756199017702230580641788897507322059257689772108352693776746838900037051539626065258564767907503899826870926596973041011515305662851285994200689551574254357318379725102501153258851910935116567919621062316487415533200735859977671091161442759951476453299663133090446036656828910979367681588592966924087905754563804017290616339654049200239031617545910673204112672303657189949305995545117783001454039139674906925935280928033671325022717259902251189267630103402802997943113397484772898086945516665909522468057216574069982624636846746011583564108227653905570684935799298503637791871966789033662105531441512918753186289098076069655922153057925079342687022695751338125964673979666663405264739424942844543324062487475712615001166982394722733583737729191611995026024826347211914547588424192525052655626795075298774309827030377439862834361094577852714039599885179462553815315767020868995186685743298454512945561103474071903594968044187718088712406539195491386126505356900704971372289900413984047993835755025519298292325022691146446460263637687419017598987828211722710539356782810009477116116059711303494695320526071850563401268680402921881457039014606236132718834151664648233699277881044452743039393614100368218757931594827084760889353674839980746420243628879288382611841827805198750308190667095586736102615318586790372643768889183168432369955857262039867488362203099569288600659357878671505177688731668710674310712750649489934966403260296412424384941811590512244246583359610845558380212355100659647748874934154122341647616539772806061768206721024253374135700479751491385815481256942643406935114897660105152574823816177667130730377796217811248282918343917901076603444691103502987533216300138698496599854995604915193184177199068896283889611867570212733907438371621259941245810941857043765590651766426397759189551628806407671199241394485604825027083344456928265944561049259882510898690465712659506091736215819378598884560819188684892109910418317586266436526992934440578012206724605678504442011113880752382791162591592365057842527400123276347221096837563076205940012746748282996608963191924706333596160838777055270224245803819757638976356338157906280263139275081772988079601128021614192696553487662797027041607512340680010853821769779996522366943789648318727995628118681247495354325403782302941572144382446386184789961612175719739734593891200109002515769523722499536612392193342319386995497695656609009774104749980195414019853025399157750298502907001314950975512243404649448383773716737296457669732252375347087058062518760684814816488243768107791214414192111657029467660862490775673017825020494871709680141624531210628112630810297625859560791790682451876635182692486580017793593464476847821700232628620797901341141847122058134920939514699864530992115411097370899031380701928469972813241842821102073448975279547337151623854580393597837531205421737277157859199793057912752489432099572184712391030904154829816809916392659998266045815969683307928242358177293122038968028142066309970837529073711432253134776356565481587289405940789383139002229590443328950354517929671943920471885408137399694022172947430159973369420896344397193284535417764606439947429919213136084945784319481592650320675325269169201306009777480750292235073284942869750397394899152447080423741332599570833629862296466323059532543462979269363359927796967276139967338353396366654421536492959822180042718545631090846691583556184768212762384352115530708195627485350703249949661007983119014232780767306402615040037863263080747902739712005219749659585418664334877892454640549144855411638005959122903318105119584646174592314683150026081956334780483585941621708269835651052732661955659425466824586735185559107500747205867639018090503746645482748837576381500203372402087000123978383935548519033423503008306921412881450084015263505576890152701924671589251341002053013551591009384138909593021690558706803821331349195400739528836403626810920884497218953425693042995861115162144690675584913006802081336396830060924006140732304474896779918667150267274748886742228648365881949792863561489000100350793290416009261438232976568485643948324399856876748733001565385891622665037239084651837395968987765228545929407133435594157723695987286460222341121073893090439656671992240035263189214865953987384567030418608249986731780868249038504618987855314973340954021663470196143674340034587604081699200740737185005143115475695172396841472413441140318552608862392947152802836751786270490819040778192393310726477807915507829393709365417204325770293418105420218011817061476671670292855476753003903337481847716828332435610917704551650262325752675018214275325368099039189119872793892806923094475247767185260013046513214067306411536194046749714458281933537201173491809349596599525518394595381765576640065042621822553666827555696781554422620529309723292190336366661446782095574102928407254634698397633682704192858379906361255520270998969425668967906858497504568441748293490879728952147849793991223108997462505793157307771074582690831525576692298538553176594104802185026227041169005897524377197438350808469455564141085520352344949395173188476718453876758241428158280806618420523009496877688165422117157265968809602951523799832682591149975673988249841389158789176734973090136138786478548910850256540916755597618694942441644052182165648330287471012544630896983415438647229185124816048876653271521777600915462647433773884102240409641838437069081764921282510404974269629223411206825392307911453713120565710594625455691160920691233974278595815375284861952585153819119383990573165052261771729897862177179962514119744925720253876215914013968589301184884416867498136088488432190826047984682764013942281021770257362150935861392524686410803919635452290684576663545397663833589226056755200239160281411374656485847599270170357224580221067266841261838853363095342288338038064618054657085780665244484770503266486553845060729129091387863372883875531115548106471836003787427656047547024230125433534562991838781903378858224062363785772670622838549873664823611724509226417635273254077379724612159072539947878020832895030388541246816736111071997800769735972377667556075004029608699302791835073474068132723356926793863021342099679946976558084197016065695707265080969958996745641808826449037889202303526164010912154188524866643365269865978372177956954741234434250624171452137708368747560856714952341342579984474628990847151175503193169536016696886022758523603339364089526386858420185124267411155823245235607078959624282867190311333961200165346659788763250879723455430646305416018679208488056893035793831795720432322587992342479739609279007166561717450657938906617239459516636377435372801180746514449516496449602174598148420491532413048094177140358471492494488349560567347459820470276126697784040258079510517662449138197697858073721644519212260453002021712660427469022434163651526052671862122198081630724514969651015940672510129299558249035518764825039213880972803423468751160477606724765745733261073559707208204561756201290249935180049513442760884433301663553656680144915306887064380532914549565187101642443624544715866265123472182948829110715361479610129803624909837586217077168959984186839763918004021848780911331981067886223777532264995267552413590141310398308324538289353359666524120995929835736568277725732855961167060953694424116955360700900835417958392011873110686552154005945855845452641387188346878046075054772225512132902235486689486281024732225529926421932287106556116713902760334007338724101117640012292686174396328982758990073817017690079566375648730481546028583151684452678296890525515539384004104328533118728869599124775326421891262803335117871768526910988761463998339122979320522114526803070090570064154690043206144593556500343257701827203980097023155390189804498648845219323767990448748565694825806822294731046220339558526692052405037554713283564425787525137051559605191374629265846456986524753835706744409692906631674024217764031096529418730675375813467085916553159440972817692669446879805562565929219411474129858858594635098950634745713809135988733971811190315791879437809734851984371446418156905511496178504356532779542090221194769236965969976720303087559702327803514238076759378900986706086511736352315228937103080093316224459930996391967834796682987593699445619782037406524191102339354661805754491647120526023300109744026778118637311675487994951061521695201914507576852412620288274710463849566299032132738922266112187875947881441237987928932581036985476010774213919539679528783912059918974176031027706647756045560189912470652983660924593882025331392327025697053047699890503321481472664806386974118960636835437305504113462752408961892235573533266152639094149258205264346728630073174852526546710971432513133919986578090661039697069871774368799476317836107214826202327871758665693383379302635052651165119090868844286514844618821163330530982674035922795934081092019694875156519164033176184898788514340415655448722538743505923095532054379195016387901965683395955963113825222959551470345515750115633209902970049739066411417955363886786183076857689587670347976271706671528245808168202755121037706781567707894654384477946028874688003063595759257740079411064170760323523100982489074881611777439493979034890022463547382444641414686456542307803810976718376453426023868539289426660969563497164389691246568868396445997082594587482573958967343009599441639707843503906715324514249460149957979333280451302310108526169493404272457014912219335764320995320563680070583593007380571805283894315157010378396409322570699569341158147368257401201594437048846600755192681520946782999170214233751008512883897672530494702357191738167596199928897661625099464061059423590543804624318822298791552038272000896072003735420293548882068741460109462597627216025864731070573385106908738586222123306552538917157946647117031263191620893335008675378254676593820449703319103358419583388172535534405185243973471084507599183351600580816873779644875176402426029824893216238088092490172590580768537590037593613775336356470550006605995574382823600568733031312506761631459298696544745614702372705294771900028004940746000413271405898108782422172865210980945532526908218891248443690551159375922835560870407776185239117355582533543442299665338677788424933191042385568677742696617271501339364146352128160626029945364018518451158393705790087752656169863198983817836671610784174770941807261699537328683417300591536149151927960732701105293013914840767275828231840966862509062210636083030461519162321289433485051257623823015046267142055412939472013892685943128545182876643295262093408275131978451888706085156774631830935067362336335541442134878175999635054930917921800003760400003714525961990076646366815554284029000940684309974565289853159969871772907249112473956703366538883503480958443494243213787059156722847999050227971881947850914805619649658318370736876640128739787783109274282137172802970497253116491898031996377777480028355006241275809298547614844471656429368269572382942790761803306939921663667057773755133805545333484300260865189808092664670055346730916254835499060708748386136021593232977605209922001360017351278307203743062075990653343069963150939427318794221067395682358145989250558077791516271449354195680834825429153629730769714246400921645031975127984395148738914681607655256376122368186970491313471442199528317056252184391099724947043338898085262156162387336446171285005145293359124067177929364393123257977965124837544709919468516509397195735872996670982197278423608150578112348950046690537235821652159384251967208579256038732881855878989123693560225617996521948161647422152156244051833717214498108225795120652318171347212748542329001033628429790086613378521423343545799700539431235551960701950381394072849255304271861352694897540183245583605364309812737482465447321897835560117428934803945730514461206729432411208672557717585237146253857012369373348986347735418612744179601812422452220312369815406190060135310448270723468057984018482194597833406876600540692594084378333397581393203711713021191638600808957662200329169563529300393835732382885739751939236519533950656115601542285782417585831355340416708591082442101909411841906076525877350641284933928420087165188562257431107610047197492049464186416538678533777473439478760198042473108248009080709280999815702059331115017639385100088139657289897767276812783578353660532948152750593374861658280596315033271749500882693969046676088468120403622033566946925371654486501057208297300585228775895547666504179292683454293612588177728449962144412983566007965626170546696012200793891820947652348613548222573330046451704011801929963094039242799747211872194416863051155497422110286120057736441972017750121276478819989537175546983947796860097930798664439314213878453885032599484813966539017296129188848727977331955526000106356037258074942899493908301930825021866983570655073216704008364305477485538571877511185270672351788034545932349439579004122080762691582353712223052488968215018623918380867508887012371186581416116621851528363608770069324546334345014385911630923325276470153122143792404459916671821247382293105929613588721407817362912493943482740466615495223754282129740091969934162379923199174444606015033360890840652331412016676134858612875785380467909285924434980296052929458839335528047838172364747906390464356119272245602913706271726054985367477944565297565845981082956979568081378805060589718606092450198049213037716089294064537033297999353372775632977332130439183003678909956704346535932482546210790333191850064019990332705106623955530123111885181695055331221538859654260534927222348009730042666085527515890473820173383393043232272816169805600241907022216271470565398375011034928302617766570760784628672680121299427315426292070116232622695049013573114526296858772480469226058499751652708435645934525928631225524933922704601945533653427248366480264574500768900475648109618698496906794097861133364929133159090805443484427285322471914011388393914970459118766718572562017915841542151415561674344543309019527479812671716181016989542552189833395801658790802143488391213327686811676249359900496242751588065936271880524563786245387425119077196851301274588181525254992626246864719494412036142318047916423063544678101295781167166139110836958080783514634146448768809414826873082924596688769680457322108336244720480525661153424567850928041149261271752246589200629398808099299427202025991534359400137964203096688194647946366619393297157033713595238795514559609224587729781751882664177963704289687328644191853298122917247631809398299257957287874043998750214760542507407901445614647970873597493078269085488043275252038771454123797806913385043330769126483818349486915969559926225128483780745872594778254009479770922596038278155801423235148514527425767156811106874331327838656680583197286738378828310683701727949639911620543652941913854792816993232333170025488889316596839601477619378656787585865296337774725987905656745141247020599292543953724987987361582412389950448228716139517722271588442690438805337498964429730654585900607154433293853333968123950993982703867238923193185555672484152679270472193961993159277318881182524263602334493867223465780150522076176198620697635786465980782814102641632664283205510616039650238314103360211802669444544898079021017605084023445445392917285994504067940421931561913183478683921847874522748493484108844682129731656086949467475880155890405767266839770932045715123180360767806785315980216894481440951018629203584276818893682584955103473952507728186040097426867518349544665356001067165295607772150129118859689844642658938119630432866325314882281541907834508867565310086874893858709340337211398850004788255330915291045922073423051566763349499689557735523565147992312615628588817694731769360812903574521349400298306844924596230316409834881760092553849442463517066212304559932816435739351204592846142164429189187676134695139312821838157814764526689368975445744626374357727250555970911339742263699972956129349838751983947270081423915832407401249298386787359937656415869754328576885315431283724406066371951938909041373744571102383934586056466531657238303128289379064637529205643339475363719786904606847156290832174400750065490233681626897275398070872700291836363537450828890657359263749406756010279133476952058590069526571452568252635359412848309287986521612732561984094810684300270972367347641356966733204856981871937722347364828477767918711980602981703183491663494466743607409878058382021352263278938441875166052649899243063447388912832130779836061280144587124913778864238171026661135616940205005073045361642554627180543100913985210550991041046935840193783687484162952666091696226877150805928164714991094481015654729278579611501019993173284658803469355722301839042047740785570116329578537301111598052156009833136725091942931750007015933714736811063115892428000960798919705931185210918092402136208857115067049030720668762464430516348299684123851603658995961175569654225368792942553742256564749340056695878753020962751176406109553198635137086812718274715412797907724044003246010466413538561031786255926319374935533682867159029187867178509012660984266896526744437636004190611227878884870976649780860156021771584521346291988878534540536212998844886854890814229228599589775462458151491271258762495814175433017926708868887527824693911265774389452222464372012675945694613667488248800252460642256472379089614974481517072672882773627471255670528051003818716857872350063155494857109994891822455890110504801523241972187843371696997454874333029721035777635449560613825793815405265721767606468500104075534724821594940173019098906563826694078046388744505263667224554502321997274559559086433852482712850350513868683848424326263308237236967234092394247501384183213113147966804408312323956521605549940479553940947987147452253406263638023007921870068322670522307160378162349714660492965762480796017994484209589042979723874159981099328525106638363984017074266071518385759094147158027278678968241110297866071739536396572620774613310035264938532023156845068776877304609460773668718246222386140128410944592738029885467696302788769182362919130771462126999864086973639412059298666013040089073684332696201662051896924377079682182683046513709637462534203620449273137592671233960009367683125152777045205921276504966682902538296123958031453768265595126632789712523858922475654760989812672893682736778680460470588483344282688506943094819319352742646569641082250255782672287427837286205385629953211751798508321189500079422804023172799865157123099189218122092145260650914530561220803135257194464284858207368231818251464807738985960869206311104979650421218870395293285420966666779353317785978584023646338994469023280034804812257689802926713351922846429510537257825009321340424012406218008495797679001887767193420869193950519929797826709270435913644516515678049908504414625764971376757366213115780369217247659848284717851707240072989247137749644804836528509958523736815213970045579940128996559627606577995211350697144039287565127305733607781434647980159406220082459044184061138072604491536625977615151557562600185865271399110474809474549028806310031421708564537223457300129237176864167852668093818535173349661936424817389964761867309877729125109765085870710806914786314006505835901616018756423837859613476823079698990718276004804793327393182491237913571331112950817941876783512852036379431808995874660260089726508204542392537008056880373027399496209723747321834959004019651032026308460017488163653069939062213146447618926457037546975735309279743010253491340359510365872255391508792632016753954293846587271803967731743039484090494696566129967461668387763428665003609620706307386949657802780439614253393334548414412792091495092007379682554200370810894598606939012085887303557893234138902629052701643205781411679692663411062673859037619772407813751954245326231693390144776280357792772633058480472001791742746847070178509107205623815692770610326860866129916789469791143380026661099192069471411901477252001301425286676318304427892132169194123807043570513963078388842056566917495854599871438356922164883528713505070264671774877061902596565692492046741281672872620967627100997715209800269835197901349231967812067312102185863442597869949344841651024097203165747825419640938033345470612800553050947172516488364351372114473497923290640960719201031664189838854802834354818980778884538566176322229098580364850602658568588338437955263498455154263490467658580388050024325504852790141334421075253165414792662013094224656345569276924784199609395125663453313148890210752855589553198490225217365453594328737256428511565864793349850864937148496138145022186191430488954071724236985889236926450502835366542287943027386500250422838902319680213385607406664293519223496086443761957021400676431654969229041391673017358870192216476636740707361143787764390726823173812234586909773704631767343863017746623685485147059609571377905020063399650598809593493666462034175420345684157459086756582969934268431082619571798442763157244131620653361668108458699563695077066327001733555457086646540338013260330233555507176499159335147034568475559834805021569386832421188070930358207173875294296609969926317070651741524272746217638450130193119376639747810935227433547509769387310839565527598399735277537129956909891943525211512710425272989276197414703683020146766171579662293351326887642572795841722811069482379471990097498452363503863906160350300908326380058899979144761352111279169777833653105481482704801045380876983093913547789290369537491104508335624537246130441959601152683289829615928736201708235158439866162566327527393549871273570819647705343571548139572235251138247092014592562523351421928090311913127898821734934582251861952085396157325495606808015153448968498269992489113816737695126388802530857758589736503463737251589074673550251500621607455513105067894044684621762714767458168594282024314645255292745957945894070311284326873045691501341696106294658013936707053294356682699585425833993496256820064979979974083352431378539222738104994695664795314318082769458635556240611787104941534635805705067682250857728191595678466847263779647899531619424667599250051292943537389632504669162034090027301387597776157772946539572874116659579174618177637496058927387728682263316548541822053723366537728367109222953971998722142703675000047051728237907552841418715453046423434632463392482380348436569254992506546156379941506685402303502580101513221835472208155581209466849409334383984591098805958996434162598571631541205924974169746324874744380836306579357025202079576923478587219036163274446303442603253785398149022983211716042009140181436637384587698515287626375243262150685751198261008356462098545192905863910558155028798044689327302356382441005604919362962367155934704084179030174627016460903882901976819113991969221936675745804026771670527648514686485561732995616032068568331664808340061525591827377367538848186837083827392462982110553078747341855015034402441815171110241843459913511473181145728779926567028174375086358009982321046898561585128172185914864836915558224783951985579234384779136496821581711420403829143904990050879758203571887340304048164132171715011549859268029692770752891531936540269061388045912907452782160179112043610704214667632713074718239662008302418800508228831335273930135174659899012770703087913662488578566233435453184882450240822173409020685521184071390994196802632854372085870717757635932395909906701841746429464696652436065069684562795992284064230332256723412247303245949155835455853944532120709844703777474988213766653639312441751550463282318340424239555004345657557413772952828482161912462657961983552625164187082805160202712568208132649749904860479594723044913222485692440430217736759596898627002708367609991020234159621335126053840995194417419790089828283583780961451398280874122297246310745477618975698855760150521869687722032067149505575235078800086504047732728609877513429687410077564010172235844657199223765104410425588121570149159447744111196291095186478259351801239890040620660969602065680437555474254400965874068802348094421713418946399203359843594675827575882931620513483765565140347511960769566132492199170529173477005516558135272767653819118809026094277730841339515200630247337902685855061403944686927304250376310404764449491011450194095271687802710126616142546686983438379035842781022763574938585383069105289475586000200671260920405871324590570441640757171199773111835225823103445655273083002631155561160452406729523846443806650760803778099808853363975762854600206699604290744219234080180586845302592939518313577281330374498064075083766763334507130709561088084528299023150578907019129391100168243783536437586859725662454318508559477292972460386469940724479934672424906668741512684880056814155011707856716435264536429033477917668503987755737359254418882542739812004360954411033241317916958867959820718889942505674417971935277800917011699105049080603830810070302835466037559720002920300414704158874989743392036311015647125803759598937748927667813197406541694547964893179659113001512451205010382802037669043614103110145472427212382949076116309178258771516749931405141044728082896770704171451121971082524033393331226839202907117439233230905148431648356167416553221282374530899046662399076326912302767507110850395358064519471396299304024061690926037300220850275064249729084733165978474690652742329002772407103411981669291496960587019080756898188895952048492434078800653977850314680919167977501020671215158694899938907283542209159944688516396229971945623167853378210094587113023439721299487573831370085752120491557224484430715451192906433310663799706302954644285393910980479606672768849869358719860501363507173189312805561492800922221998489990229293974860435116320058099344481163813150027203226581694458635505782709139793686405941637455292429384913787964556532848349020357658477585544045001673396643250327401988972937854922158345803875378655791707635028004867184485852248113272721420127405751822040158483965282027028520484434345007931377094031577219788623906803722500972858957868840852986105615879038679203115036257394463737942762121449834631866521081316267965507989751916848523312475325129471531716746124206840036814798521692000272534619113113382901745467768507442503135966723645757807714766102453830571582197827196535569357470762701400931649850619774583025017432493919306992058923213734615766791591088717305260785817409148205260755441200500834520129089720304447708107742107812049543747542500717333972288556454966897289807858470523490122718461083967123321743064990006901201086199240760312297794935544071253691516592377841086453635575024336649156450903321739054495859720077862919217669995251336906503214793386650125728119763773324333083076811367547824868622888247945596432154433813184326732276654128972240027759592196327756753470394650365481512551317140690739402666191001129432165550933763724742379062307743546814302834283932209556832221128316389948985803895890375312408944046348274347974786130996502349450898066470439408593121624046187961631557225547675868107439374845164494402262064799554465424724472988272805827999219726632574385686723453167179974768948711919553427173714991937196485080548501967593607589715883119817473664806383829579337905018662738321586420869399501796704574067250897208785955372482966371218011212420093585572888813872591482492967834800441833253993699993368328102762675153271827683817856875600381933668599058530133412892724104456857085465024138723203512119862734908827009118431736082694553190025189539824958427599083652819899669903819525819243220500891201728652975301337581392062052568744502979224150401083145123190348741200535289133036763545709236729353314940581154724919589139574401124182095889796158194490870358924318998572076952455583963408761153866795565737414691304364290830521337784973530990667201937633273054702612197257122680170666275802915360032294456261614514397595479851714838175414551305538759736142245449400580918052447152996158183525640898577126267465631802583046037161492168248250711805602249378175121185903294122705875781039706083536982984623138767557753187471401153241661632577208951647544277747664888661146014579433084138080263049710373849833223783272835953330490160705253217745200240297284506263911062053049855792329579649800819328925646149842376064365532202968880226016460394905995310039183391427782931196315300978499014889489751560350786069608814988100631120933346397026857027052310520760630325069029629879884140750292282739469318151669629676442733311049556794858779680028774707130855780951380045731009383240136053627156038681138943096718383259812402538412101603233622888214627062272540528135235030635060486351486705934023990041373058454574748820120990777957455698119738495296076611882775687621207699370830498954701223000885440174661292654570741779525903880932017673681841816487299223337833727567155054075492256153527727103104520189236958229479057050060665690488559712362756739782934788316122321120386685414812550171770478943143138856548088890953591039807895225831615797815053419794352964494425637041380875536301530541710515962022344783060662018329255331329713707073799824682589475481527095102522975249765666186621169652264115454262433028666217952684995119540468520409062207469503553304750027020715789283903857940712015518619507675724811467766817066399797371579932712167186102672026635823783937279021160870704877403257700791460971868581153137966072758609013341861993837736670762920129033547430600981509343140475687874648909301948649435276243649121985926518670521605840802454061256833598303158839903750140134933605015120504637477607880782418642673863722487789975811471564036728889635006116152459776403304371111162539942590153752439002848587750186508607637198001008600604082087050760414362596159058531060403835089017038714859355434531714539150654088986702933061223404688178048908356078306619334559237671323722262048400299616594304010567166584423950044167378645777930973106104935983150514651381401400568369762543747822080226289766750019556206321601932629135987117994284797366467333453869240022763616200182270983655245952203546558367492769866001531795405679082231997402445622356414916733174078196496795781754790083588777275684433209287134230006548815509316510063341479348799219108450598097883038007151490784278463468569855621539733079910316531292364459926952182625030247682301016110853880148706798590023432786709326586392576111977427576356576351371254089136756651122895458873334538615343711445002855807752868319141472555650999164833411373363269394214042828285880964141615249976015716481795191089750061274821269997734596430616264326182011916207152375991029856106617895455934831923002586303308200798167535824153484260803395874707135749444112817401617793198249290669758743012101281439931177282475613831788166651192349361192124759316276466918693644710226476507929076215689042624753655097097177933844675864103396473326476401282516457871163415819648214274952136141621563350149016918683634895298329308973551885163260229457973893994532413624134002002351876300107047561936187699445641031492450929883468456440123113525883498916353359553946729556891825157536180018162813295179066511451886993514322183833095149906566701995919240959786124136542889788699123068691213203619915968152107128013760725668049930448095009218522869431680495378455032650457761756341326539343147236862868234407306083359188791092386211569076711621290648295047644256160923815287564671902991131112428267378093855407672990942499196290449875590671238535250861949431347358975013327702582662573089751855375694070725850452848348418083165259361733853322472208460520383302092483898988736549420507793969914657379356517572322706333466217298181612720321372673394940680845845834212238196023442538066881031264745059618935960055619953791002526401217424686799754988020152136637079428261122702381689698090859786219627665644803562395693487338968081467709263096660559846701333265157944539202584365528690025623961257662618036298047910207991061002558879185178968729951697196724590708473494477199396575968246318251078671959508051517790161496394690153568241053732424364098943099287358652261993283852794815181879299664356021537541733117463760522448744089490212395766824258017496442897142112807085605921122825456256784768637542245715975932825019295193968618828877811527083991964395120562741861229284802197392940574491219395323843495458825235594184157688445305754892462191037994825658163706320990876647349795121072224962351327050517934489166189771164346041722562318873556273259260182409305950257992846007861414389786195184428269272930147509479224044352053634645933435434000105668353695625459521708593165678039663190382294120678198786542351912710785769659648779586769373776397197575227640168971344905174739310133139562187324622429944474710296651929016054373754505028563808189852754465810353068145117708984600797447080461995813001021654709559235980359150710945199743080328616919228185075380945005170735308906163259101709767743358276444574069646858065406584443169425937586486302484451163818582792285531351442094159828706949867858733465681165293842466093981591502177226001330828648363794014837574035412237913387541198346677051857711085306646333381610605173008318636133798069734008429188140961974100579336329117635168027935389218936345851088443282389341259587766801967677991407864515887623198038887403823229137591201137243033067482185466121674325564860905703939038783862913958544256917219788036781823190369086135520633932694618814528998358192755911820393653474565529233110107806454736829867648077298227829113303885941995265257899107166397751974412316374327751305688504894184225834550532532375796341343997960161095854011120628122700992668600819327047804891687257102502900697993594394974975634286742321195297501952201213374578670357456686258943703143718810035437747472973477141657743376060773245352530243595725365697266544790058411524352542720555130027753202635855743354222671619594822739441945558750667623518062827275020501862125959864386614505259939737110180794137981969686451902960005478437036942447195832273425477279848939209983371338943931859115575681876174654151589124117229510866498396683504002708797262309428793864508093890588802932721940516981597357382020064684146690206387473884684227158040658792324633238322217347635276361845067703079825683049715815463539187009979704164597384851743401517258430332181970879894137409297075921708499660131111326204044371613947559868230852442082377497529100397540071387160105744969093970744716593864450919021015124381136436762417611188224548635804857714486914744578143037831788303298919955699531275266871231476797043649492071317720531779687022353657850523510143843595837789312750595563204434391571610216039329225948626684947926986666495491095560721521669670401263295196067113185016187929123688830655573625431867316575858775301580894649404845781921601032324899805015505325624797918424310846092039609962282076464218453397101121838280998820986983884757040213236370402709859041112609133044987840014103813631901092458270518378632709345483982059142539067776106556564011334260433067952303845880428684444087891145267385223815218396695277987388061047325609302681190521898696442338273591411328370166183281346370474931762857805851595630890487608449026554933973817333818063829808852915888498092160642087378962195681594294309946463079515500367438318267763404874467612231385507596113498486732800612807590050793053526942921546769273369131748910183027814669870210847495836901728134634837618464319268614015493820584344386603117037807015552115488404951925169616297970930784332725990712613512162728908220677210460009774765613306458435061119674579397062039719228473696182288217242586404375421536351359602302475869532590605802548790439759473200091643020064830235638439204867286749120678776692326902824440969080519245214752946356534286009626724730521544505690521182962823906249152633357572430121437551444584991306037606474672615639559487276148788534369672845588531814687602147545170595181382939826137041415487478412254371436738935879358967384517385415472684577724117907918553039905750657111554073948800398013254890747763025099079526854033035762222059983129597247072166103646054415829534724418117137902734988044833254670286334459317106120938009941146241868103802425363507938945379558645021084954306373757953613330377662405225955594964219723181306989818176719521219188425040873590619829933563240849108448554340302475347598597173386305431737592665182075112974975354125498318532045311729612518533462318407510123665576510715435847685493077051332077615375495465717791579860712785295758186031472506370160385196846329290419486753259350956249121927442387916977723806989689480924261315518624955595917987828937609281546079495157163160484611359664734850426868746114299579951385700111545988786830528299019086973241277752513777969265256694747168736042508189767093861496712467569215016531692822882549238543096273438535769963763754481878238833020759405389870940834846511519558342958625092661045863881913524352400320970632096644326257535791068703862793618886453145242721446532823078401822967835641071536302731414836015862888877442940492472209667189109763727625041760243581794694296358806008346648311555840024248974501890084949398508902597249682308754131289579976398379522765122165306398934384854818120425890742614247287458686168015238753697458633821920274970410369611351590589530393895573749968869132758864938606778044796937988659452642248768903360038802438846569722556583557069702916120049638638585820991024892381419163284352149464495332685266543948980528526522528456745045957965161702565868326475055506803606172962590184741740160068911332293119217075397853923541811401719948571883680100231799355579848510001157581780906854056012240304138421487060676597489936700993243434878729337969482341797984996845249131451563533758462454550884145552438733852496884251382369277678506587012879152784745491651973990153250266201295308199477789386639090782533606937546772884547595658243173113163247669101202453851104415338982423850029471860677329996852914703649084882003564717236699882560436113902936630164864620224536674341054538089205068552728357404027261826992958451330283214189934635072219472358801588168639845334678022548332452484190749279285915324471970549706457776825466881419188895786911943516882493782952855231499420148261817488256254618979038636339318666260603434335915177125635344530580303966730619398767004089811128369131233121263589529504381211442306904727346578076517904077040761158720377677599363893340319829618361497398486555082343284137831921934942909454561329743304890744909368093885742676566809516697921597846918068735494088114989768122658844342136547614238201525017772155521947494989051954907594889214197559846953591821175469587161786215954037270551722049766596633282680239347303512614623884232567585159362953288565280435492856260460720577483614710824906007391129171178389887977431664484083854196106043465864527995229511351138819800253520396513968961396828515529341849815849945883648096206097031943845265178880383326805834679916592883537949454252487752842012002694254939906540910382561400976666395746960536205129084647635849846288567184453649097110103758155944904026037357866345023634110081052716874681653032643349786472096760993656325534484641714363984932315139492423966508958271309929353262983106485570433728548609186185505617871709207986915967068531168115190212881317235542462155361810979871744091424785180020599369215510695701167524897906732086965316439751456005026327021712819698019212182989241129446338364186096545073283947747620990773365333253564066448434413513892444301517178644876536597515252618518548872000197688048294685180120228186265443081922335388866022594658834240581041454079805304109617837639961125953218182982981132130139334354310409832422665865073700026052072835657868847030589394633304500357870191903126525353142765549104271066032528508833051332247053615478064585090148841012782089155978148016873036844602721865020621537368224996481958937437825128401098388067798183335920996028782499426025445839200678688702832670334172688469968217676467451373122074260233841247928340319926584896662834791527451975159336253527054852193724744131334934340663654350560056488039682337110360789396187101396991043181328954229831875131991542300073319944452962084568847383240485238194620495223423636518526491721639809282029129081782740749492454350029702684327564515089500928186943090845319214641486579471557171052892725276018020228802901686500417048591140072389937987181358491588429419664437593617509890885286742112696569809875414060783868530405720430720567445337959895852057180537593515600839714258139624750616633498739141363764359341784412865315577416860643361253699455442994888109193325466094249359209128445956216371425723813496828990354459181721574025816298456970433863908125476671689490631019962100915858997658360816747319390099331929716376178282092838728130977963588692416664475242131484885585984545432164704216261584037629731732724240831585331314609413590440796218288239948693611979214521466933905093014356321648822473222310681011136931134648406241837032613793874760334701330134262045024640403259012979989450617738526635215817508420820310405866712681233430063119171522433638780861159127135939789138758124484726676420318774896591846406414070698297380308765796920593890958850359850863887230233168155712463123598049603826294460809877478448424037508690565337916718417136235861344681240617464819543326819729250920297087423343307170176022862744518957747449164602827324018747014625563552171944810720753908193401181777872877563282307041830743911059173697142488905581312413000607950924908047599579984830799069644248135156963485115177370611985819553809913466911880017924132140239868919514595356317442644381699282517878787168629437705991088294389626864419217447599189575031984810419746480599012115284678962664376085907590144644881813763450017682892775439771822095081523655376443175042308490003496224848787351512713809959465381843999656710762532807031740439677920402058806396658139160745330579447384961002009465791882188047928283708670264365655855723626848803681906352162243996376633545749849933416258300889363179882814132699539574204288426839814962209955572247406831272306767595138498290370779680951163940317208901221497529471709818552218512748935058224330632502246137257159392763402423016255697485639433560385595756460523838521600626322755983807591314324710927470148930514358527349720608506613823265214960245159052315937168207432384432110177902710838032328540761021702086462287255604616893726181121389990321660599203139299715038891593443197113000261237190552660995402988191862845625954160656834622404639289077228560539394008393150638394479605248591076739947017905578204334315579487496649117386273557779805152538552762885307270055926948681935802670647132323943896478369303979960892817162676824626876007628060073626560355899450514823343012577715651591041431399902935098854034114922880278953281172033566159689414764657712514883325425589159661117314600149172607675193798119642071432318325593794029937581830654108888272770881098142801302417383412303415286569241875252456255913405377809748976650343596780491797579151057060775493366667629975089492297857444498068386096270356565084819544751501398041671808971100162592148357596507827938971170901631645570639670805918991612506631154561473288268227138085199904211561967978432212739875259896428391480934433801617408038291513386737668774469458853477378755916976160804082591225431544693205241319664545771145654934856225976306329666191269161128523097069178259222321157136641512125457140539383171334647038131385803831119399467673340604933283598890936405504972845671396490963652876541106664138764741683270380288180687435714896792407962042452390258175021095509201280864840465469631338596741261364054919045293964454335303677490524970038245797605490973661918435470959614127103378571508250133910264131099229546198511717389714586310136207281321911126160797234956689867576869541809765425196694225273460399054012726082883628484516887117784203703244340757832197079879001018740567488714776025374573964591825438933777391409021717288898088006770250410787652133805098161881676501655007624933369520399989987326346330756172787992004082181490345246268276549360920975957951595829317745504352483221710731027473629650950983930561407715493554052610427283451740392113079475256372654393529703630377674178170127919700948808687485805222527611630579877654194881505879982442630708367306588235365346768367599034510521748827600266761287391923188291856985296249461505419591110345858518353779366722219333821300460241658355390124089835251045194369037618250141319693172576334139653909662920755590065168387948318613928476681274102813843404076383697270122439556528477514873364319671297300753440897509183887641521627414656447320112568979347416404456070532070903289055355810224988119893400685584771283953315548750391181952435745103626301714302052630813709878027656267826113204782458173026466270449840086297019584894033804825778103767212434164469579370279846468365980435024339756589490462041739356270342296193669053576920025737411385863156625077960862551052564637384076265871744429920047478527989307569911624268898534491625094139289907155997134053907453546944451094047355334025234104094352337400256440895019806217000828040755907995114929601364252041755309885235925776108441582000513478748127672661808845920392353150424878282020248218273813363867975212772271785057468597390634331658953777911593421929199069847639744080696117013688345234337730538896168843575220739329405988646551945047815925323452800536080210693665845502211027037645046233791746974485708708912542982069894312234788064079641710302375861513217197490627274060954891137938821211170560705336089883171600844974412539531318116178025762590157346208723129040861798125362705551657702186168855436882415324469744826419377340725494464245520112520191224063177072063570314358810405905437052937721817846136528172750402551809458394871144842242120400845632725618272381177003266228029394656026363576968843869048423599966184596837117149806898949127158111157979231581308297571817835900363189141537869383050009569308044756836534983584857708608626001849254083693437142266274514428223953961687008367155061664288924383466122098167211649967321841040025090746701639881698283723288698497300333917009420439735092814970185677010727287172891149628645474319788313696053183252966680847792528701683389690713543654654831867308793178972824117395569339583622539174968211724381347372250255706265147992326412496994424372880548908881677604937606121974561230899397492515631482277777917012067642256585981677189837621450548730273473954658264249460154707037410349254807666669436213503878119167778514820976822120059709402884229091948567606477998378901082583163201008967730715060801500059657496363588444094399927307875476097176959715737651468691942422691110107534101876162061100660359093043020308247242721082869740390435569674490776974523643522316717049801400361350392378066836017287806665710529568829269214956012769119651939200183153502309296721464689401409055921608469273635810031953419168989728616365853923257570108222317825511373356532275679347475084601217742030396204477609210947385358856247098135313650435541788067756626916317147996366156072685009278750930005277604641173543850540022640625331915843551842840833896236099751594964352017927515017248101387976763976447395952536011257670537200011303378659959336445483397541322535862596412934576051354381547099655777559951483000880816922349003249697867564632577709677944481907383378781166543611767812496450940325370061456120663582691441095236735459635980145918746771342514448628324846057815660284179704843632513406606256744470056492404312728872539814607833462423893085921063974464108540661926755797895276553718236638502132884234696830567634388529376599782797686724278353007565810127513253160395452266740376781733005972935668287249591716622821447668069277869924183958781260322133386338371093219660037824292856915404841530119226126594359103412251769151253086479565917569447653573777984810468969732932359110112468705544316050602764332809018264679207521869339815076805620280072662877400166345138316696057867551511672862174820740569874904879919913965817818895554281637046189859413607284319028126589528017110940170948395590465419163815110268707026871944781272311280579429667583211509897206608853581474639213253478774853199646672825513049151612735050773982716451091446920166620991935064250648068284291626855669084388746314143567827131024931993041537123631555147501771201864402000982478252913430309984982329985347833973158837316970949292390506986044594175172850268416082124129645237849976477920740550573810388795731356673251643276451795233646721593566353029395115829303842005473446875690746527117325929692751421769550419859229201197133270891925460751867912057543497303645966093714345976655704721224092973990358431584316244552456550263482219967710177553056408761434788031003834964284038489898143210026795741645222311231821005257724133566593178645466631472926152838956674388671373044292954954137829911143904778196590517202705162308532738392426146546733992957513589641609504189149527519508807908441356694111609522838815616190903480095958160192039410843756449269457852624939653308856552541503856691253264227317790491309172251781728909154638009049693000296693730784067831706008363418241905038608253617533391677558004656541601003728266289774511310280028564388963995357659177326360145733403601715681516868949021796003088381877555478991179562651506028753365727967195914409223937508305309115218986311444218528723604159396283368615045823793491241493613512790727263407972669637243081146533180446277509838706792592643244397006672844241738932272475937498327124025858818979229376397987237807170624564816127736232232153733706437367949844467666491352978561351629268002469911195120040759818074845402657809381047354385891472010507141672780050517827724785666542648952374331154514574038377576115393383702790530202895939065250549109097029004571516068719335100397768806156894985081260314474060758011187022824461384358187421866923747979708930661293901099567221419146117088202976724787011284450892998163481622164091184540090050701632425083456822702817507328051877287401823630059551944739640352373698388503823949728932742013337645641746107805708202673402020578282292567919982927844179441378569178732912640831665687714279590939321491748267051670883773082335812900143078706792285264209874578474902416014461832470172512563253607246059590754118165104605439335938037629057088751138178433989782398197812528796872533460766452960125074280273481232983583845205989447469817390643307118804087029987373640681330724411367496079950928016585028912107263145166216777444023969462167802873213986823774745335267765548974534546051418180331350963304876320535589636761084989091472903320046522442033365433006099504216793552951060274203196631461219466757634858202431005636365902510551842115936745240486742885838136367338679292156577159003017374840839792383080890917219039980919698729145036468052571696542370983598661792133507020575805512050513485222978280108820392570468278622777833944895248579918014483762951349655890962214853797826936523367479876284845979291825771942674794118450173790515152825565903570837442056776891217243274704495316205987997408887313132245530122994996630122778712709807438979593789858396513763395511898663597322862674198986591009293054796366384587158564047300603224202498606664003620484199513232667860797017331150121567250122706793289024392758659887080671546178183347300755513135908435742456558099334673194938051853210376296585020407964141761730000253710082879843017297589962146233155990909283409382331908394302341782125123303198944245895857004315995007918023954414863176807762534148044231160012895208803915185297861003160532861425676518675009096759532355876048964521697383057246057839833862488908048838104367296042088030465537807291394467250631792644970500306345171109718467401576081209554262472454259775181928270808787324338652119436405767139857021391464303426531283192589660798309773764465643393956824961252775310382878787710875163309821345444617596642943504619253812888349285696115215191792246209217385790635623104763170240409995885448682423299878319018816243900906660082345302495415957584412298306208286754618897976330191881620621715625238684846306562738110563375069677129753947054518474560583091304332915910827927390225131510811246807829516707486309623559101653925206415460957546759676271186002844823013690009911696247098976895646789103684889707009052151307804658143334195810799604474444248817079193881665582627762118688153887634593909351529974641917224450023152033707809992252141768981115522537573712307234235741304612053034586009883142536258471453071207834798012413371918050980884603119843447205056284470574427964330733555146394966625400537082179547189664144595964486433879905632897940316710673159601279007372676345673722857976288440010047910057153256561016146928957291596538146184285806423020729946683345676814661040869654675295606839765537224231178197953907685971096716589067554198466079127901838628678851867033671127980610771913174745288737184220334336383933509219294059701576581552271000645837954703566929885830863955604735498474286810307448886074575646610339387201450519897790476878081166335567446129110757756763343982990078563317378491406170040943975413996660845764642162596633307895110260957909231196482838754604894001075816244763784540825388527107216287471798769907910867779597904661718445512424974317253991743665994989347137240700953697338285251209538162599784362508991070894027506625747771979489440086355319315177944724857446644833711827305965313046334153237885801152197148946670621615376364276805137896579803684828746480133030439521432033467531529524202752899965514179526545079392898522890625536959362008713237542530766616885398213998314872730736364881288588811019748116371387418058118726042550098917134215626914896071998890991960153028722197925943218866038196542015755436212873948115303152948216709325927285941035138123340813635240630125266301737918777722850187495896255241134153221006694387259263953809129384885319099044631007975276935441294099039470707787096188002901927769410126874423460742912969838133990922644594328521411709929420848595944770345970714122135115097762758381484875326322366356340623926316037252041839133155119301000793123326969033854332125675000409490712952893532139309579732346500801767383686099079281692900874209395677658459736737942463909789263795734553837618208568350279575479861181513648240407143992535330439343071480112983973035652835621279999967842952153628890360121112008653201281369133667928921741066222051161358579965488249166106586036054046066272480390834010340620088770365932165429548582198492835525111085230582430084998791080029700533205443135958489957908427857689844898035676680165143566555674059935249152544993080262274472608900389544611438902256563352144713860079075151888621434089021243472564692305794044758420594915224062218800083008850905930913194482796288121430125837520143821613901290699937032246602159730099740939085851035961599558306790101077364358403781705737171516766397512829763416680782261059606026025047884587170760248888754436390217731719969099424282421748471029799934174243206334719714580621220959253924552956818456961885168425786751306103203144370188238153626339794487421068795780235498370150522566601307623220971812314747290124091147905898909562081733705957325359296776082760863215062855861275079001470002357042872653164934323737220135983008764271705699616718953561423351125082519919643845042863384815242696796376346489968924971349315958712649729639113732109527075232399674816359589945728695278736400826471589057283528537709009829304884296411350653771256606675445959626354568078243317943040018748061747839167183772030182261364801415776977043018587054921732736892815012356828332435821296586161183675933863254527695632937988111456050817699107044486631232855977207939060682614035435704675734969821838481380622777674688316238882609208722987799128543641776556790876292851820141071497405689717268362624546740106103197672811700110816586412471559199659098600463326638187446633007332920975421143644432104589108218370835106078727704919535102401470711005373487710068679241578589373537748811663081295096942100595876927622617807450780319916356231666906932409033733341750893464735888572127777780029680178170209368139491652294728195199412845947027071309193711388834566340716302075238101700601746429914629932457940019664264832476493824817572535968406929077349386044136773200208311269172827192746266839163360970665512254291102261706980404690881293888330456899318589489782263218605275131542945354044591316954299630598098093737302989317148099304938481321229731351809100488353724981524551590331696055772899940101064356311000800537571727549133683211662715011054352845732412812303459382581780471192855401026445070774426542461846576643432537193393703477956248313025810253259549767761697709017516758591166442167471293698110184336501649561492025545613297356574834419268600152310661059590216226105767973671762579219144203998194199314734861136018161859648235216398543957739774646915676016414535041624729579989502140587203708741397451008582733106425987222954311031181886488802740776407626439648188030948523334678892235629424237531458378296259903178007003943293660911067534978164393304955057481900459002043794243135552184506466214737942938716177026158135730051919078910051272784825063121763647665284436047826018853348523366213104712424479872765461665131153340995962944162458012813064544728185727337481599108710806265580050352338552750596493749645060092887619421339999854754058809092657757838967877034320752132614670340164562496523372858346223017343113563314027678476602193136566546042544488666291562774397921250668633140280957529691552109410792585655953025589805181525059647065424716369876664543791796673806740234671878196628922161572607773556491059528206096466964720030523621951909211099365815111617851428600493612174535544370311375342575465802176861633581809026725329446532432838313691544376820249319363812394445507717606038624208325577459497003467895714379508149972341124705386731973515403499762044893340658297196650927606524788367946494694239080639336041408039429016906229599909770885812379428549965374189400014758240474744493210493359442297408678561455731291401509097459117874038669604613325076443406098142427602241285000379774739230903124115342602939422910716098054083773672928465355997297829941171384076710177655033165358760096882116305806429502532269324932015897669746854640773260160225302432734274476016517888866816325888582265744399557884610169022194355881689736412183955118017011756011072854995070763997425453754698546026069392059621201955719123881911802065808520677615716212980996779179043449972780776469612559145183697760051299279173606402487191226719040312427198346543068050324883783325582930697824225263733874783253437956551011047785988181507873846974788056132876660755462128577460765488368745922643253957482977232650481022355530441985986432124976401904346958203880065224821636199305771077847283892110379587475617333566752851054924154405516886160127245895249384790194779357811974843841916022241074721824567902040068143780263825131022134502422550478086193761760512116360692566597082387093919270451776537338464336284661741849611601538167311769722020560259903680103109879070587420865704395411460016295460600518278534285434355053904468410953747369085936402985365473719939781460309991073565635813182337520127949720108562277769992562729218217193554414572553801135616138320879981649155493683331279688291826925465558829612909227474651691970626434395072502674638562148189367239347884652793307404378200334421089698059291779745430362496948064762892962099752533984355953968461930533973851541788211665951013504618540942511908197175081660861981687907516236211112874279471710530438506811777406976268680676608491263335534307937761098456053454367212754069511341541707485019466963294546060164005986663915517263243950454016710399068733315442819244657967284027875909598264446672390367891176390162195250922763740317882794980462306364016425592926407996287673473790201292030130527244803820635790206620380072378301650704717270003232722746497637692718478653980642688991983460573826706829420493705330612970961237254704453946866851633859891653577735027663289947581523255263447598549000154543614037999607380279604095620614478286496976438200616743949681241555681764459386909437837251798962014785385946429985390490409857507323603729178204333233504819193632311877744733426377291232305537515967859469444846882441185697180469385476703060409033589801042272019587797345799434570805615097992936154976307433826329871565420016209051902507143909913960976664218154520945756770453699250915506823030107542595619850214572404817931421116247536824332952657778794478092573447327956721931106422322858774234736440205629212408210188203392843481023568219272653565492206324269627253519037831420050174627357727003087758265546054725341919985440935682898174388394208451800345810016429981818679282786200987866527359950716649789236208993576597847862416824540729765744493891013788363944985532109252047534999977084808914888794038679477121361539874396318598918601626634333491321526085496165018993994695618271468114270757165514511377990847078677128540236823185290754363147540542081582239261257886916856024911927291019033686119539534321490338735822186475920987621709854244396976640347845191447884278696098819458544031165118044181629019563405703028131728883969227928425217972680971639294333129814293962431878873784491660627299628779962797816714062712955859954710784090322261032700028266659751961123664003535628741611018118627582356088634810333313185049632295011947053844482002229050138661826087977483334415606712500104957070952873732459730726507069404770951959534963929121911422405566616784024658608493225543804850620594418391922393693706646738587609565774073150785077298371448686147164463840178312122909129166565546672155757911090427594613279812451999831546473716707835767153157662610752527213519605839584511359030999440703646669101074692446149714212127746981056797473531549642502586077554557544969048467683386137403639563349796784724368309187823580154598314713768556195164837198201681089692323600985478835694330533173737500358322980428630633490707063769753459518243215189672776981209422296940659082153637153061960471072438770960563010945437648556351349735192521963559673851510757412047463469869872972198700192137590252309850813634178398097989585901030855169083777581992212033461532739570360626356743970236521656242676599747492306187430893705850046687260995036197018677890361672330991005030441496037459994705406275204781517988981648167671614264844980554074017544844140748597113027256226086714461344982879224070512251499311156548651888311945509048098888861305100382319311666404406307207727031301627042648733890068560885346880230933471733738543245605110173218170856068155655883000074887550009673590052271578501038635073456902808428008143673712520394944700263263377249687404268035215531766384575463626233392191019988407437060835195722002454364092086920818163396666102541689614907869363176935060639744228139075002499235395535645227768404112697665509265789040658007442594477602660732696401884392935897083853717722037938073957212596784695402678673526777734500794078026417525927079658742150414612052639091180845813588670740829481891815899759107806629676720346016010747852372482224285561603045205117538938265726506871683177817363787796755057935277441720563853392200279804005556033007356851310916846137945090906056302317284164755025421655331990800794737548903131043216850231960497427816774358475443921655976193632159116498958425057256439209579066999146623460579117411350416566248045506494004685117269532634697394293798530230679012150015585856279726160798892527265249074849982205248014512366733507323211560099732741564722641744713002503448806463308193065209812997306251761887727074561874507402908880216899430051140832321243588156868821642196498782550885723209027253004809017150180061478824573786968461708550191625607772483182017395130532288292361738628860652454799090689190832898700979474470678375751790362087885221528594387993641272863133429102263732781077978549838911344615530839204296924976365970732380261169373738862661755384540813142742408015512351538715418886482182891957974651003125328078233610412968228908752866009639503682493462325719610330037039714107164405761398040007117494794309731845600582035268253499289227098957463154614582343824279503153141807210528266552151573937625669359055294118943977056573179028714204586676974981593520219027093714578925745616217532642153686971928399248093247313003573937738886536517101941999049864246570437254449514991436628915908262344803893530501637077042600167860928563679250781113599276671493325411500949653510248043407096844819367991767336744566982167659244821984088392807102695263218626518536407742940108462379414480836764525076756941596536091443372584828165632139211477867218303289054256542340648926769125448686424788510301584469672737006889727788450594425207337728352211164874681864061263134139841488457828173429579886108098668035758590012393241068490247144723446040950100168181309018206662775045719601814825373238347202342528676886632104706306665027774217123749289909903414350237928386919847679703716737072557895994673455633618134685017429107969133193593569128716217305670747478223326524368262720586911373671871703385393264648222088003328385924636495542289322912898397198962739909766145620532924193409463637806118957601402281904389018821989409316254965800078870995241137873746518707815470965658636927155607680848200813806246842670595228222990463463772825338953356283513380511174362520658515504938889899922963963502071164519790446495625293360039946464763610621252457322927569043166074466243143584537412558992770991217771597722566764352269636140918490822015753338556050309444790696524423333139776044856670439112955452901081467884918263827498499863872004750824868217247276768648843543721025405569721987488078079234333794774083638258187255190568428766945957158209019936950081300766664751261204687861417969604547721417528759651544996647285540729573032522853139207523284504022562059301221932731187143935526260817187262142316432197095603793854055210462990293719639751413189313170205150515954278620810187651084329260125784678240869053643711680172746395513726913213038321531424674506184539142363900715289082668520759773696923094037501179964167847721675681408363676056620870758204727753361368239838920621574669556607083315376789998479345343964085537974311786683411393349133351188199946199337664976798761616165494558072485618282797196414138562393232422662488618420202986558866265158914811859078767282628948546203823440815189743888501636838964822777102056980565559529735358515388977494762354227260059155675875019439169472730584101148781946195718169906448170364604834529086207053752711748275373808089034463243661116628855983949797007948578363373249758766806496087246507306801783430833336694706073667756552310152197188215804078122760172496658456943547424211174512778999158141209955353378295465915493452151231732806440312487771554983511128895060737063344182589608739854359892272378251808807118030868630578071504397853379739283562001190902862073097081239188490363515970964913972915205003871959888073904635910422613449011109953471261442680003477188893273092214544662757278191259411708331618156452152438496978996780004072028969786291368645290265697433871453483152605878369995864410793725967167021147675146572285820435062202615945737288402395140532679167838939520026686098520098556385572383001201084942638990375015734465756774745068974393996219163924083257822165640817746158711332052463573242121630364143424295853633129842553509709269186356440669467970690982917907322776277910292479707891745770826503333755435980193610082426309384047933997894568310710411584536836389871976912245513544096431226274063903649905717226195302512595107101996268197113407472117253566671854141297413938864029746514318178324610670990489405463186596567412088718479034161967518652024663733223719151460829924935181558903891985350514342746823840617791425611789438722168321207214486577397804944558046958634943884959083908040654114937714723679230217004774836588280406255928067328369865410028375296394663500830282343553948628028267077463736564295258051950888048078868456400257354992278046115042243896532050568784188494504529951055838013432981709271379238099482787918777815835236176163135451379238028879171408967720764556334186163079777594945516678481150469356220386219494512274987812641823183475067180177463937635726018512453029906607308898161389783549879229443270725226663369668596188721598180391505573837290470412198024781888467172219222119240719680367085554431653091808333852692274733880362424734625211079437707925007665761066476125402534435699498603410423642175031945738792656559136562790195058287390920368366464574590203708427686169866665460286355893561266901530152799998043646882088072655009366346674915361533455630659203106713368049003224698161239058719012004359546526682571005294953594513742055762461722522235308426363342324840712329690851663730521923374581806488585941415913252801163821285994799006066585968363232822772492424218486347633904386931195215278193364247814663104522792155813144936988045799788169799063817760664046896589465251747165959354240129980304222702984825402603590164856163070232991195686864892293914657600134090297597810248313326814773653097964038886036392864697347961302195763784048203863164881358521507100263867749289004744141113505567726676673394823339198752336353490390233266339323422217120349109870027734892062409567270208841689327127783488043608957968117142363503673218656747057490738095796145802335386246388756422739038922815685925876093010966740829533274635789585176120779617177972861084162065679774006140916015040727955085017773381016620584332007531993539142922519593268372208813710791054023262579696340447108533008712953758197145216677695244600263797113021031878956669755205433319785758260149917461767934767791453786458941814845242351314282790257665010580290306500332624573113240446518768967461560267635819224871874038345728598416250422589383915678302287931966494172006210708113746113350977382962005033160039057093210489975593937284323089071095665894328700385408665932897784540766915883653474487590894120510109909192636051685928986753474129128884995976964768759210568051737382925427087391615435202668915976325773587548528704914111407413411765662912508530213788997036889639830552341056720913656549257071483338593240183179319352075541149847062741206132460276323311476352704433652205664600214065752319386805669919163512691852623008438176050039558680325319854064868995625771786272561042435629792805279694593849488069293224455648321611152088767415407781743991533667547576373133533987312366993620443185130474758168187180676829933691564193500948192400105222896304208099135517797991702570962057150389064755545578991878267860029202575329145314676586076950519554553181257390085918821745974686741326913056618183048196786701769103283697433655802470085111576395037019410937041823955289962761949476565774724426626283716137346866268087821600916328248301937870012090936383066612219145033600810378084991542885790052294751470245348601675718117252066435466308288296419910233767980074966119405067481792262246465650085087661873155344260312985783821443887834532543481436725447222549780897266159454014966008327619629834090841289535560502344897172905329944612442391409520660745114050857065612671983227683653060566073707454293110162213972789941914724661987755113853752683561348124389138122647644246275329181258224625851160549041426468276333569544247984649984736721368283307407149531467446768787016957344110580294445644493196387893349051450189089228821078206837154997411367012531863139774303308032032229699528288408463381987657344955896677582122046031365931575628891183683055203322058843110013504896457929503133721570570852451058593382895565741034389226432057125128287673021440147572239898570490021131399040838898137785165027713402779180188248064484187104845691997193207433449194084102933090548157768188961143195686491797487267495471175262087999074109857069867655712516046466151141245928393959355557748107225467439529756877096767094860196535475863415106026768242165179510328750942398084000583239761701762220593318943384877822640953942528968346842187760241259949871955544031373044680987540575406113603635303450913250657378145277630084984316771350931023480258699607821802157471547211809833943350956454030978439331603872755273606711800656864486939850075235727379381588018993877268707987463205550607617200784408337050041873774764662954761571358477251921076004956756827575863437756445392211668041732624084514074260246430145744179539390158089088960898523527756334888878299766245614622923411455053498702398288035335195487890454663837074786158028808945395151972472833190575416517171668384855337875013410124356861829084511010975632225857131963359969672170251273314657951760467069560167255305452195454885378161000008043015706870572555953947787579215715671168977173214413198091358126706106774402912137798734246476214329644751565380834523673275121669729100027596701045621468706216729997220089363376463819998912813740198420319043338506568702570766387237659973123593611386002316231127981365422258862879637587208343120253532978278720348439034229242619509413201114986200598146651646368689047570102770399812403069517436344001066555808980444328475643020154996775294928471709273415424515031779505696829059137767142822929951902961209437789528110262463223958308057805180370269204927318221787000430384129838830255259298533731878523954725963449923760886351176004294001456111419576054795053894725696691954791566460845173672671506221605624911425862716377262947069252042283948503011291175782004636634609187110519183203817860937654904219310781774838265094658501176752699071054100682395774420236739678954635395252693502409609838020816694595389289757703483810854224882252836927758046082806024053980620173443475099135254975668303254863801959829875887185617699881859930695503993397069850909927761053298934391156973531597958809677080413653354183222836029717651509735047840285703666389052459955375775376442648874482470053717740973212446672916635507256391864890190714665270240116514954943672032973336096477078128446651850761092414284250762356170085422514005686748923227324499489303582737944977512203869702280982379372216497666037023840793109475939139924935800541857954713976136457275915194858389401864654135025146290034171597272262578715712327899797986435143833127018941651343401019551685075908189464727856400677851268189050222935535658224142299879081815152174992243329089994324726539766876550440151156902347878056677908146301914078715785923711338923324380826899199307090968502482533519921493782652382894096917530658120935078932890647112943988836873868885962829507453052627868893727590012345549230167208616621326603110887397696349626584831766358014261077740589561684738300886776683256316088447806633647138397713019189331551775706280093290526128360745878380717374550234161554687919102142726861133632570194161317727751367712890111795255823484987358787765392871749312316374646633124350089172124657912518212759864755391723968697785640608496373502615986749482180972204634787637286239906895506990850354916178170560034526105234791451099613948577728333924936658112808124825770040653741104713561476809367255849192158298805827930159515350224843496889063079501677131244231152295539611091287045990317693788776399525648263850192628200829877155133380334863624787377194417747476348962139344495236662082977958975850780942048802667418454590346735697085270909115118662903134932748932598409696448082517188643933333321756616914936904006242008752918215550200029444104424521057906785860704213157187950378805354071254322969460107817970487704042803356178530884265903888455477563834252434197895330815398355207365246328894966648597857000124342566883286514530337826343954012665677556768017312639191748346354703346068438068808104284901182392459775651065983538875666291736135495667056505330479641636784450502540811094732320728040339371833276295281802520133754661633190752856418252956846067445827391306761689915776962581561481211142914399591053249548168572440305309395906342839221919861192332307076394328071285423268750744342200570565739275875822300056349405321730113007805129839150236725542091850655290998351857725973797929595172763625398909849932230306522339868881738054839339625501216233746539082973143201170873438649746905904270959179176897427077924579083102273041724908555964137902931173244139199192677417538094101034702691254594197579860291611480161423058915582084632618818329478340328987203958392389836179577897827139011362102279475657642530433854128217727969045756559815815043078792888899417343200573607047341196134487747239619167693207845123974847569053971443919447829105835268846387917873272688859262025195271186834128064281788464038604198885903017334195751252127543663478943622914690971910442878594899802248617572541878806193870730169046901245292095640185079854102645446873676349696003673134204040559137463546611190227146006927324990655329841787471043692851002887645571025589745120247563624588709377055066236333500591802014260643767056196989933687655192435878105536395388768470211867576591206061389609253877736126111617987865781475831063689691662102333421280314024412441481129025102927026248991006539756341459174075960523719487677954683362823629431158873054714640546261722988405458659857620774437068491687017075074569513807732288040217192131484087096805672655897661910558283750793342915109942834568848377181292980383067129938774293645109903185942629618501165103067428042267125570563443408024863557771718119397396270098866913353333964486553527663820693232067387694320274818240441470334122700107667766163831152103974903024501770225698427072508678104765296907513559807196884437430884610362896672794252353934101909234341423590388816186371714137929958439087303069756100960791376473087825152642853547236780995292713441835770301799559620354582320358828641743063298114036374668468808809906129820400207091330913266886921472626440103694056176792699110948406223906100487198090126007169667105008686695560457528014121331616337813169809250288730686260200366487739778184185743695533037023101326966573186454024546993435243441426743026272242622975344898448397301915611584910968091389528206331417721374358482118012527152202022192770366154453699347885572323525290261696105893879666662018333881963032340502019546905039323181015040053370590654080451696627178563018952289251769046597474548108576095119085168319184066782478159899251971166707008362183113105726120466284701874483051225917784091487072117718079304543132253050781850576956751676102876860878768409955147462098353361952328936279573422154609716964577308507676396453906229533510819441184053509677501615108617478346210938307280306667236299841499902380245120648948106230266802868789621921355415127149885601728961203348929988539505875503536750910667042325287214756990702702635892028109929425798498551364309438419007446264732350400513848037115918382439942719333240545425738626118289459539299896660597756987447103656373280813747048361674414815823305480266717366498216788299180511652931437575128168871469062687836110073577110256654764274049069350213069142975697959987387876273798948131833156875515592500554867779316892662396199605037121041492444514758590900942174066115170250196285262429639213505009734728357675459296656829977432878246231495566488275915069990314749161656551639183925148999365922965478065332422718771142845007600514141026353625201182370638135593108334972233803998844736894267358286084390504920233517832110304958802638402775436500211057376609320994810814837827225573979057232856344080149508545178101619059104071359052919992703254871902482462302443517537597329997417446312029072936336945077339610014973850864789574374190463314253023214594791654054443320868968558016348640414331381893504982765945884382315116382342505889021293087371082431786027452979156831229116062978288944846860640214222646859672823523970854383329391447836852906610876136949674564735297248609820471210310748041972619401566703750098853176291835992582483835307145562521376351150444178329655637963954083356194644017011428815456670466726068473216318857655432344748787014612743499269646833043682704015256994580499885910588834022070317957461396503454407298403012137886724933659059372563060040918172731627488515640100765591904789161496271517059236322550584444853847131569206651953574872289693591584606359914210271443955162300504261990923004792913439052845061542006498250578095099982873096016855694773062594903873669815650685991645966810011155973443676596820629219830149823479308140478331637495953475204364778696216133248481667364090338569289058499884556889607241370497847751124851874937991235137022641507970802815634044242593286863066151971347872867002349936175491902238728677821678058224646622337684343712178166965207976402498594833185102448637300696616957167277711653786120400212523972746121578299686274851883660363044553180861894154389314958124172108955253718608907022571987601824209235619540066926580514078858059422341104242577681998080354988519509018860877535029494119449456615073383890841251607308876787919963360190896652471396850227673902191238995750407741764953487857750179198579082541266793002161935025740489470347424502107984519215041515036930884795284873399159077353025332018264508876646193751830671132437135305148495921207209983955162516187204369405250808734705137296694251616465774478008385516430435517833770196679663066627082213458350815467633875743712626041065638309425479497285797275488567957267672346468536520554355514082386792667496631146431309539814717138950538797890401304176655898325447295428479488927507059654939583688521537998991088881742117776726298012264990976785940476477373393204937122647273360936653253049376526977599642709777230105659287930281342503522762498560753117618794011870942514696359823140851116495360825394575354637073148709408061293317897667102085737719623925201498714571661683939252505923726956893924291427603048407520850586607591121370899555082714128426850775490812231160010103236628377802789420314885002284007784465585087995012826183749833170437790498769360886746181546677662379536009292651185381447980856633214118186014819790728028121385629524104583241583058723671770465099409276635591043454423414109516778191465128623471894154919077356749163613686364904826159876184992537357450838924481923715535700237198132187654312040626390717301371357564979576667233476116922764042929643834006794828856853801989843908923941207682476613025765407732711893743172508650678129430584253253276109502675048981297831145190711951040828585489393099626609798488336175926092588333844796392316420349659837205838310188928231727153031240403253731175331214527901150069655557165211795352475579187904314309148254915329969946379400895229562249331465311987262315871334880227144828022591786480528391826598233985444781959142577123988136514848102348078789030904569728948526699032249121987174040798745502707695358060812340439489136969038735607591934110171879431499576669534714088486510015750306615205364907860771391769899244941500327437106403288088523246907315829650356405948305349264743531157446429985949919384620022423960656054134848620612616833983950001977981406986732814106216964141592816864509705375991692643876674292993664278480305650106907700244196719290761157186181027300127532233959337558800798143235780430825062462459914093252269210376716441139109374520653973565808842974543251137194110780112050018181958474920605497707126280416491588855480704521583263715548445486133196616215863239974113028280825337507200388434832968434658448677689043608787285521830596765163825608152002247901363081683741983167204387070726152030397747239174594679967661760456747443810844284152263624486387798858329497355135559366495132860886165445941180401644189651521312463485905067599126867833406952488553087457849777246444533436572503641774702952923128025699461994036181172969509653701862444638500230646270782658798416521006903315629046119382933551981888059569728435805335906158974756165930396722728327628220583194872740201800625094877044702349635967056213923159672450145872220320273431736854123292720639544833562172665586966012906444007636290661376080785089140206743988622262193784679768458706050237521895700720758010268225920919461577971042039345478221649835268565537407266674160379434216621937931473042058659515199702271046456872320332127196397721301041016352764130941451307736807969455420184325939808761843250237365424653752620291477355781670765473287001842122953483307748470189065385270716282299482359030005822890655102366811604405013578898684709797854814744355955811394393520056347209496792700284342773668205388596108394446627288026452917234183935064494689408017309319142511526376174209450404369266257437358836473275097012887320030606512125812449960451668085383079641968308221265625111945925947659386944695620225191722268626760490288825230724266012897121386803222260812762523029624295375143698793718031297908229779022767353964729880432837567590736049978890662943316698304741698935074569202068410389839390632011693289875463986318058151040222926870850185183178976661593325401355214105681750831585170938215021063359118206103092479888562109635655568214559428064061477633425573884451207972698574219869416196551209819330005224201917174040762396602399107435838818453576300471371816394263710337027949791629226319481180611226675167987427199313329802120578971079836381674496411278703657463812978969704484613466611619114264523917341028969439484242571480737640417615214335569926897968214583597463467666398319849184320796475098418852562722212726888765681416439352328071446279300120419616960651906532787074346902326834772920361111679107198570002244175785950049240593367719629007677119618944141777446447782359481783597478766130772926626284847745150484335480201819532493337785442068662825587787282454794800311673879382092066117917465402549443974456453589597278961082915189423087973852300408921398614996377518862061930099830316122137895011063230100090370837404287362633565554936803490379919009281441404238829852495364247059460371929757712687825551247678010177625462571784031613488142295564094941196288604467146060156447576622264707059106799324136399023309585263614745035244723943524380119738140676187549413389641835683643475824655517559319640704512246103816556815269084421235170755139319468548346834283228489642952931776574972926286268969877558836487863594926335392676072645814582562393452633673055476453927823679040819726448692471664586472954389707003249609957851548077227734474517876007023900590944190270004487188048200674461852936615387022617987307224625733708639165098285506953977992145366386030608468292652296739573468416976678193823010151257611834139052962805361825692546037457059956644925608004608690999974125564077746879732087229637771871065840317016961402263888429814504667401789019216022731713496822903322476186894767319022121938028800971859920862007640961828304274085626820123014153918156177628289632303044883190859952439720452724650668165237255425951869329301289691551989080639012802256872793993942249762735624203354145599512951671238914484992625515509395511123890897206300660775065799922270504329175931664891793632430311236027394168281119758294340967385610205678866336281775180962334120805048220648701179191649909789523191891071822230200159884214773783016902330192895448033108084831996454637946205453341335298452235422732048795968174790510803651217131773934970262262839812804033941431378601028736407576170353189725057951416906684657641009456712337938513958916094520702239377922616231243492566706337158327841766490234945229346272419685331418159167133407476289217282128052660049288594927550528216146998276385347081940988695538817171029893127878023234632438697798265807647393028883883292525186014387261852081758580226280650943650254641565559993896035399268932748114400535356793945866949239918660215184579779989802312023539126345856246711268057227218768289910352551200643375974679790666178394003376697427382889264197011218147747859030194721966893649330987673759246833974795916952806346381044214782240248297233491253466256544282867543201375991198209066467213503792861468734712594635389038272161515532292683200337813421228003823388480242539911762451357011518247511376788978971097591560916192946754564640574210200469433360670708652065606733563001334603124319395401792280132325582884361040862917867281749554726000493742412663271099074256715548135613552786662757293838585414471270873302272658897913733071415922147411314463581304456960299042429638830021667330573765541573247243204206514885468596390961477224368478126050815337105480655149158161885528642759944973359605650673727327910875233627032866107187567187847640920756033676236864493739899380294916242504934718103648436376536834870948031886868396136053905777292643878412488547969827770743722082653312943049130490767373397236589806452083392787488683579882364296727935665613535893412785450092075898060616520831098127777028803853478890765346376307111591376316283712941705679791265599273031497573110817420469201871599344034366487615846878859869843491577396532745719769103318182848385375411762237929946949515023439798904302178451470465034955433246417573986245040516553184568518484904203436787408562481377960542804042355063176754060146005928988179257619020978987661760849086380260377998957003003802991755233298607099136630785082178547739771870754396647780870020751329859669455290541640486575592311746071550304487772729918920381720229032476414031805491589972275817148529491119016401059341829675854847101047270718672796756266501620685005719024658886520279733550180830484327305797553206336600405949219343542489763255465007285640475183812435672247866739233922221211643626495484075719903111088119446004718874048450984903857015698653688221975435915527651511038188823655200127642841730702247044314522927267954410058293737227474399716019728812231264745940442743309175120115460286500787105555185985244525284970186991157319400455110657552662178311909955779448469860833500938973123445384435787423443576624414998882764245251715388788348912735533940840504130818766249340761251453478541651416352790167775378700563115946118420418469648547801234208597622931737937769716914356353870094436558025052845951246944991850799101634871477860497240670540362484641367463900414476297561616721338214541906097330238667451489200484934632606592012333806374447891793992421150070639141641359048084100597922066219582005211555877866203490942056374914663890902078002271157944307545141716922189140265783751000106894692387094098263116932398241914182886090473954753932120765844048917964174032862106739412897206185396578919866473758209067841841986893621705712537495309279239780249467365428681990985949172348171921722865089503436495561348723901836468539630767489783418725421555025567962638671799287966854764241182363205637773373997148306565862325297237180742622634522256628950081329825577105161271918423174093039291329285477051667863985623263658843408531358335625186678984833713022910955535438297102628961436986908748357266850645006766633205875971095584838495809080523382486928002528345805286668746935277280547406843233035634183707412603213327744099076824724516507262061706855226630486162405880743242541209559996000595920726959676630789302159065010547140671673373763526216191364553940011699809266001022012891699619091956102765086931325594112568062684972041891638256350360570467776779076492356079945745572060147545927438533827521044193856079612394093551664611334283454535337011567176301716074588673446096194581876174431494007748475638033284548832180141217345189644629753991452828081283586459566395522879018274005167681633862375192601362011263232173964766245945240777337709058538384612043956091356667291711264502783879906169684917386293849548873922388711644342341211326775703879610783682142536724128599329253604295992183953696216848864256421999548498984031437655480118204014532481339299271092285898000865160181594245961535001765590363064116706800830340569038845616958210016498588640165463423461381392189974351640626843754834214198174259718465374348301418409390227890557739336098916347919866071368399240829542323954692478811889529242590716702282600724583937182553586594901882632659386390814962234220490611440603893729827510957839060420414318995487388787011055671162090270247354285167216168005869667100298603213571935179168102466772640321436385476028713210864070620434705906375822741437660730717697076996623908800630012847071902613122080223978329190862390531424052351253974663178566493376765037648779432036534386218526799087210163996371766614317337525395830645946766291995173331584865825762693763237558869960776170011734026704940091067803818236490363109461835253363235793991441530541397950306809235264114181348786248833835611576239992620386728798549182490790215092613273343234475312254930063473216511185342415214422153932067609936657967659945525539369970998464979569636884177320464866686030191672913580718721354383214814862368316989224731133145377155168005530300655918812096296190980337680781936447059787328284698161298819591994089705182017309022940273192213279758436127769044514544398044782896282069834942381306212048586200073379223020875885955688361412004321989265741404519787009040537143505369805010363158242676434871117633756113332751859750143845334387334426099944577597855789920019377159935443293516779998086231538963190636564780622211277661785162444072272517380291506978732489198770015251102905478248851963695087877344879154357670390897250479839773458608830898400380188782218938521901354010178405223481330948569190518581223460078123542403455067810271251181583119973487297450888442295893697676386903905621022483393831155982235211730222815342687497319870572930364917584844826026161563350270638587624848235530966018476673204246060376862147072066185047861659120092826354687485637458419750974495646303293361555165283222697165963234758994982506088882962882909888659081809121855452500190232972280664234454578380455933124508208037235745585297593887737397034841219372253082217713860594612213598948381640322401887642318542454198840826953151276289168616883033416586077323263646003805672608197665196287957159083017268401144836268103734048570531088817598291073769253091493854466852313772828047937053425203864386366545844228923350533869378492576467136713319683544309981445471644783560682875743747474765481695321422813114158961120280894336652949381747015607090683470573073378487536003188321304325062239580258066410800157225012510248959280985360801709544740298036393456304332555908176152605087410372819387528768596103550984337251229236102722273314638661261830482114867182287190567518607343222268673268772717712597538600988204354892555470517213803257685815844008367305085791318528968638492742340939109435367952519676272157536878659682008362837236101356643006431553345514033087534374839655555239292873206796717696597423645379938719601967472043390592226594691343734830223689017607335968754305431598831986085179817339232815846012856605999223003787359869595297283416156351001651023535427311605482505267256387516944263418411230966819618177857933563785839866119019631318706138091915969196290751938918219703978355658949433753739033208684646489866582374608310076682538876384278393130043905200967704921707038304377220115496728043795206130907956155157531565727077656840386581286742335685309038959972317810732425392388195669505609022012221156396895315307241091893828001190545156329139046465691067816963916682736717568863505650522677252543074729233297770358600935219600613744296085858110038984933182194990703976090898700576938209358985869282619035007612132610737407919110476938731856860016666209707815521791930030425551256695830534530326166614810171345915847877593145054728243686371035665979008506769790052036208933140466389581332732317111942743192247390462922094342980582224383210804396725899013854277426948924075421087847903654401775828579572634163584478494564288859170015476989726432514430547913361391538904834524643471387447160860260621821486542052571662895149602284213283237714938510326858505028652780504628784325018536208868467352311521298577094707446963999299480193622073732804549845282050592088941424460731288679234450483983453494117604282960441985837348488346530885234964172022304540413532763025328957588013940025010924823098780954890819657654638177118223653973200863856638572577563671459518788711255694297343927348910512086342003404936886297425127302587031858813857530096658912631455201681412849973660760165500322829588436647044808152752862925251401228228818832115346140221829347632931387980095603749251471278016593279057047012175408879279224814682088002594866026350845667288195483300403084251192472666645779056810410757248050044233010409625477505451251115052133737380235364669915533334612606710116206546364015969008847370295399476443869300755895604929776685735540616658540384011322561912624161338083206672682179293457931278377406015371879000639268131445942198968312490018852662388996156523166807927521290604283312579643145148313151697800629957896668900356784054198744386182522711617223282402371249339964066505840783102468695839115954928291152283034074898668494701939310404765560163727462536985813796096957281607790006358341009281741857185681968538602135707273453035256054048818096019601863114138817838537485900361924751437037128119096232153723036268907886165191328108224966963744433299128362341835336597876069060423242906248635292323149443468541542496808691645177853414583002280617019631763728698046741661913294499879612563637303690376118801916064416258983567111629648948426767026119274063237816756378711334539257985896118317592054125921505065693210161955393412395817168538618728902258939304205392031149861507863842748444773841701338546937990680781199636030357005639672152961427745128632868221940479144510579470765175072708389741448313107451100049637213949732864189083655504468557082625792998036878727483988848510630087714553911314661224108010445523431173451979720707708180714033440006659032206631961385709786029655733984492176285107678934990634782646679935533963625806224487298104176350454458900650921417399040892264917889717214849967248502041918761381557502582171291139736797102102210535939951139865408949882316351853070354017496365954189186439177748419341052396754859734552126305019851787599525301929634763224662584964275727944599901704321653612059469873778352286189181736361274532603336616960901956314014015816875954601462059594575074953295807599324096123078979071224477672767423495094735857581665392282978895388458257652984663152648270131458581218970046292934383819432397394937711133458080624524818103479603660981201155019963131184228381938608441295253752402677283320293487487317669289376357296796532030140813594303722033719150374473328782167411581242202497513597601881572552297653475920094879396307704056278920559630841028241650601794959637750234231455500636461885381182259542303724056163668133366142686535173737140074300391383887601619943392295313909853794027031126709224564418099185914317998545945989071935338465451760862244979834384619907362721463357679148875682405612071486600774455194502430839797639515929572930612071427465794097876930911602547154970241624977253872155550346438148480259801974400140328224994859917789428283849114257812586527277266543828396858497537858062042356859554386082311742628988479714840263920924076562141562045823760777199481754092103494590473170927371688801182945676105981547973339777075811992341507134339223542007322617030390349985424733178422175977760177854313890316578625349857395731712484304831690109284313194037802513770978115809209937725499633321698351686392938441255995414329371334232632983481705954486831926662211437791656584310962468154425154043045277455774310795629784313219083651110099873101799074742647982581801467406459001561599869302410845476403439848654826764074607551749320795436162712629586631393917661083917000260880455147802080016869573823877549485626990240089007243735146973572620728914291673980443806111841685999259105908792457229359251830191989862161854788804155445218615188767350707575588140191449419122299274035408022391151903203440189007253382645862282527642818856566093893670493447020218564666965039698303131072058796148680679554537806362496790556984247988129049372912649668638182182811848240173667840610221249430520186531397523979092528785536387071242555462094393643972187424564876048800090121852980282708038325883606264904578085792367341583078922186181597463284418412882374862729539612193995581177444842293647347672755560380463092913216316890099670868314653376223759613479354300826207119450375972582353157049503629054143109727443768496831577251282237796282661528786199778317985430116784141186481096039717745923237468519558977824489034317196431046592433101801700014881929703554551752396056636629549406469791161411388414121097549999616904975950331934130955929229784414327431512111883705519778548727823837674320241610676522363559205803197717109006459297928858239449369900436553981826337547949861274300190447201839637552055196743043669120980307161325927933830549114326735374454716659733405132661247808165878443429510909567498029723985919668985833335040392419865422045587436770290725477318544928119897115213584704743345991752263658136465705788786576856399652683989010774972701286911308117327139219340542452956827189227508230326281215726780900454742811573925148535732862824914363612119601930415060273211735134090144649486476345415449165914264296178370415415582345527662980238715926692435531937244100102059180031143214312192991054243099992401101982730469583190397262115577489219174564911602566553175715152767678659020256795687445032691997670095185397423313788362552041976507544950770388026711899881436970639624531667147618908195368770114093534760504161484911698821121884517051112962137313440567126547954358599938459100744103589030427026675676941401356228356740282795254825754616824781948044842127211109998140506835536010622498609024229881852098414712247410491473750866775812899854152004790403567689892451922877702781432795568524621997814370716322583479768954775797330086238246908324626539126351168494181361151392946780306809092730343184624811727557614464124317669528503956873675192939906171376243652898010185895549033785645963582981562422786190496411224653312712617114247961398264591191099101138210427042068868966984171723007157596045723374135643035460973004594821989700084482051471261134144810759112302621772615381919792641508274660226369811924697461311137615272678588383597950639623817451174342869290413322976748430090735059914720195778006485317095301453557354138731831921990121099096778867674067797564366671000238843535099267659155073934955930186022612328745104648409399376603986252462424043906957074189011404829540284100619524363168463836491281646583460424355728853815819718110062873702660234524217157087361121928343301980596780809372758315712605897802226852974338900793901486515374402674214740092767881458752289890510710658068875600253606509859217807561877601024650347528794998709599673251222316893364624255156911231828641702260231741179570630998118040625175248910470700167153604465040162530588963072285529819667064236708173685689766759216855584512063622244047343954257582983787578355309506064616761307040449799455497378894477290138610471833070215379018769430114502877652981337745583427071611494348118466081263817579718210885585559919786717984036483729628317592229529278770954303519724755013942498371650127733226211335454006864744363290192832392281044455512014022560732596884870177017080377264935752817502630048488918500007157945551248792549813787107661499723943579407568497850358806294602742108063746347732884679251710230528603869698198644300815101124339488533413102033274574144149193215147059899613387504924939790146660826264409049221355915355475096855359734086778518828673393157221235345618407487061717098087893258026464542296456511649198664131986020761855406615039262308343613404851808360280633590175049206979484285482834328299571282575516714297844986012153154800354187250781939189991802636282499628300314556453670193822276583783890811381500797265295654303006634787847846377123309789481703647570843091078088406820856916199459981186792267123058558427280361699358186379673938259129839754880108056757245304260707539257650003655306038540822993148528800523257565974544592483331447795813710454661231492515817901193164486184185139882917258783666447556661032352739120779941804677922430034357283560721797367671379143553002019528713764412891309481019821875813335013452302292014467034563647995150069174370105418002422785402023684553817815149159956590807475560152672279684088289460931352613654322673694640457929249204947829883490058344548881724469450583906112063300953547779552215739084919776453662422206916899623656531558711819004790649817813756670454583152672885472733195237896634247794488102262600350417740724060007085617536563365485966803943709836874009365697755425921274656989981450852107653286535884913466535180940386559543776716330542965450214949641193317746409668790407046209189275376610197844342767914607266032707596770642496727754447393561030027383650378354684571440412626221141409395074891577795603536436069002757612354262885946465801552954712906716512069200823449932608666074975039252970567556458551131480000399933797469929264940315728630186573092125604315075263225283638860974280537019425699397117446890873524245089894602106477972566766171172969325894983468573252362649148570905890018412850161453547435179936218375130827293801671967320628046758196076362867209635479903677605338874322219684677144557043980051519575973203703910558169342953301154162723785797170755671516455046430181400182021908903891046333053671725753662310729145099750960767460443086849900537103286628108868396099500617751601775185682807121971932066719540206879321158566207360442839253181036355437988732400121108884229650150730376999860303095417037473224600898867541217394279768157512960948107987615800016897637670978935084282867116517976175601976332998370414404746165213917914234049376367490096522477640914912467417023014783729251946147556561633211252002155806252504006661868477640409692280086009559080021017201019915983923208545420471501673411261134292755892691075686151740244766920786390013801464038654255583114126647428494633065187977935198706071866956481681866714816543265844257080302319293556919026882914590059491201758111239769651396634001482107201153610778167613780015992241412563391166383752859521507133023633223464603993267633781308766794079226651014867682165935264066678654447154703000603365571415170335980244842678837901121296516303766595615962266801158620205764029176248347265883818927962128671618737663455638286556347612994677544844494087621438190375005650449443465997437746389823057617732179189582080128256862233629742144556363746017636891342341231571956100794400468467154467048594903465142488335110724013905377660848451140705402169977445083358617428134845044643189261677614266703251922345296865638299151095704657683938042755862524091592017911720047388995466617354432197188124490629537149701766551065306404326826816777208863521539627707433224304021749662013799805736527671857886430656164499833360058208820463438206564641688653806384765822032753284863483339710586834698786079262724247691959095681969251838798078922613508830557748882263795100921057107955960576987516653089337768518255146911081753277289162295644418817172684153934437559563533606285709331430383598385983080635631329617568361740992199672998972143843703472487937388012287166770912762806414254747444903103371127294112166986483055584543332841745048090992964578589036359607857410094850532868032151833746236354084381885885739054700796550573205108855720717899799883944942923752314700890321837515027508747386575100472593304167329330642254047639858991021773521203453653203350267701113352233314075165475584063528738450564249719336322223982419923312063629772721036420401905991018145493446228525051101037414362512142364760404946762935768218492552104289974580516810670557391961252092285814660136477028305318660504267079483246635487759006382925843928261035008784287365626511992010613078384972945436910602587610386106612711294153869941248588226187630382113375998311188308800168592538097151663817161059154889364810120255719175281778429440082610814781752961915681636772500224050281354627252125376750394621238885824468268766406650882235923956779998521703321048217418278138678172914351556058890256474594153809078941229485993196851620125378956431095930677494941765271395332430824954901021016280964710253557292784685361108464670439626134499968110144765417777169003615674473587378934830083767339739050160501928921993092533350328659992934920446495249681158022568950336348284031281004723324283323226581660443909745459080928100201174834765856429205562987708267155086704589085017002530311328479059268010659641624813144155163683933233463450327833158168860113762122459713617877080379398703577796282986934905901704792904425499215880727201837409267001178100556957649962689755450681409725042185134556227046507633650990884496902019691113219158657696629497917929772335905313377256798827917328447480975836908722936099251585725465907025589154494888069825303520578115094538266666407945603943436292464720304293322218240257105746698258463002904993206837872089811638521872447040221604512844419870372473302137794510364058061387151310429060100608897245378246479732852779547960338705963855518069505664026929187397046079534559702025471547632346915499250657010004380665408158681839015497020075280974565007714649969800488375252234436965019894763384828758062653400511983056385648567211700585559400026100707773937893868456276023410580162353274465916951278019084949518886519840956782848902634855038866362087044002159989440686919419112366325648572239164700768035833812932230891232703620854585300597759065597279369123260998244288442364149714909294349499393402864342732897234389931796626729761671187519587501070981237874844798214948249283790270017051439479999094372228628216137031981996935292844879655582461033305966482014851801496786398908877312768762362830710145503989753711101676307476407357507772555725716779690949340903015721987560971377851117402897064657396426454609174438282786734828552950458613422946512527461486178139045084163545706034794851459971911350140161396367636908658747587377452970449775338116492624889336569015419062217160979730732445798027102374932845715345299658416672070222077288617285005364810591483783629821011198919459394018848107002498204015876200471722110535739633913701728702158200241255160837519513210820491091334778560119760936539092305265096578603841215779347776567183064501762606891146319994973180968991521038030441759521615025367382702250610251349945023841423859482025459991831808892376063422058472663932915695020111797971741765870107451984979756284383440827263914210831418005465892713538421933624966581291482796932619966441266890972526615252130745031937959923248824728416004243227397674264354464576649715456945767426994093170498972237571727495409822060216704086258891070351731185915601941853609616294684838400916979293297665234557999708902991490731875031494993126746377616817930266474977479170157390523520446982553611177919836829892489797401221791966235119512237814407567587156532129899929518282240053211125010508483175760237618190923863610521921364878013510627384039977567090941186088899827764613630780350000816765524632381284544938168968213427780397646438488255916391640397312636143550693601622465989914318907731653974338861367143525171261451500388791686746090584950894685028121176129659250136678404131301697712611901327485774534423297092619301524566342874623917828312698451875369827241610060893135502616185248560177710017316037902939828752540894847675731953485564807797835844346978527546126914877975368226186671327181610449728659385500121092967581699994323135829424559174905574243875736670641939639970790770978006178214804313916392741107053945548796948652918678780636920604726837521298275582536056190633341293258575406171964216558549964025601384211825194316631449673484406331692285452039207244103892838180788947148747432174850220488199379734258437085148141289021226515512510790532631837501379781727464591335552990682129347735657615011771427964577301438613250953780273868816843211063705956741123848717516116719163440381772849721037511800284313929814552009778990711198318850973785584509794335911551138069037242273903542590921294444991380208357851974962002437598937758100111661345718665126758571667067951552199847099220583583130537747267227505324533351642750331526479662872926376498930939942813043093445385721260558159696601782040792445980916694669331334467803894005202954907113393920330134482777590426299325953355541430017153129362653374665416038672211846465632432220568717964542585170666059758998295385581830118463711313703057806727782515498850267176123456089255622820104568642137578530895224107172447375811073555221037149234489695941686080711360629943800381179429427692037533302261017351933146577801850161055294214266236130967892577885982075453876924279591254293964336801210180444400486417675426717191122460022905102703317251192588934120088881224336936944405120493147511172633652083527132323209553452911321047539463649485041916742644601405342351451007844125156802894552180996843007284017357729827810245818598061809187795417519264850259916243544443793963903681683460461954198163986166189570826540035525521085827351832455054111339933611526522513023606038567683972348606597912018447399368318902462472634877218727188669256259741844669936509170636319389208679512965480921056764311954612110458466902505647139033725497578400132019805303487962668424430993583920663483501910138001957182464078412762366734502975654264784196326687911813975307656308964082999330389475586505171546711594591246905031511632774383189711168034905401889886789198423675717277790549347858216910201288200744532192686559838328191011071877956310638099283301995457008174390238139360625107133826615300551887526877827302450642226528141828222711384289690055153653642066759043953454423858754409898922508557893628362909452027394516494562017949029561144705921598937309010802797685022689637571447980811913597773448342815619338648145811744660312815075557374818700841400033342576007670928947616906498266186665035744964083827093405428414380694359061517654487161948759984815446656823551301616818453848134543976524631832184912408402435329930621738700842076950773120384493286784428238956770560716457418542261355107032308746366611278250968316742075896273793557609441806888286594317886043019754530686190906982812803397309818112879515808881408738640086501426576954076117612611342387419148844865114298903534284854919764173502666801731981795008463810656098493513740106667616974020153488682279846359893677824813136932324528778637950834541367028283333516643764441987086130885869614885736915292839395896496240672744909797552316736710168695360467375151902657581526478898774677982516007819639813470192429941002671457565166565925234568598912399485142218192382015844898942480167183514177195708728275399491370436406294693058415716356726681256821382112814950084913042994273127297632542814690462360386796473834519183383274592416690287936442314106704414076248013499338572092516755215147242798059160597747951443981249241064076990255323138376250699093217095282840147148398239821477308959181576338241983097983178728671986253684923459078042547681740142384474690464771833911475767679261935561644137210231203485250675807732162134848344115310798923281366013660124753566337905974832408901061496946982262319001805186091030986530200953486234691259033298155564731859442030355991269800184303866059597597161318582114031296687592918443421248704341075858466533325890965373472995574475323631559538447736905973526207905526610680845413354091809846452193347768776400746640867839289045377905800370966539330822078342296977080678342724347656946340706619016202786002457987920277569833724991449745339913094861364361396658304884836012962525418820010341824048622076380260020979652360568589335267537654881328029666836149968617310849958712508199450718549555636708481735282459654854484841750526638243335580506568913500649566322157471432256374361664726150510654287151846218733333455968204706171008861372720910535307431818483373617037706158185936564061285281348830133593295154746598524005308735878804567765876430213615237528847610535558287778974916091722587041732881265376783777884853173921795271624457338050521558537156394740090097594892142143071314132484043910555167361739184566710742899848647268361351156980909815093731410829420728990489069094469590322079443909713535803306821523583213932046091083577370569379629145510077239960521048108486822843513612815673280748700717872082332573028698991910320379819673174249716804760197561139762239801419620863626884489995553593529007011164999755362806063893232918325356224144528819579501545243718672143776489563695872370101185294313713410888356591824962133430363728515319346223908299968502363327463086029820049733319865356378807586405871810981999954608106324657702741317052923021837385511107071517635965745079641931939090921149701621408158594689936956301835130081558665159093162751632022054320726641826867760230437415980410760626947691604522117515388568971899559257524293196499791913858690838215326825715535099109761492622800369382105222682080202538125037241203771102702941256093037067923238743909883655368273405952644473871714476406179107476485413556851733778070369476620403878325369290628076208027485241298780740764686250867218848647204913891940246556830775684523527875374341062699219756501992265029552120879384635850503931459920835505108179497733970450716473738446635604723456734430637627130639980178285018462737209798103481580091231181921471949452796165417213773536129921436165480933110540261894118289652757357552337052427694516339266230332750011328829245100425609485747766286596875471806431923932362971494404858433196687928023576792184024417668860508362564764041576641891174807127147215937112393375620531162958097827744651152584443288503131659107633463360347775048284152036376870459136093460144173962070871797785334850552532110321957091257013626370169907516830584286292785494915330980109207564288715294924518608344091695106620265675779978561495446990785953846576967793212382759130070380473061448837064036816495320626583883289255599441063490755331673325990348056455120675540491090327399747556524256650488977186120912834213428685615185664428972855236294726025083472900841647893745525272773931487832024924439562456632958052527650465131528948639221390362541315658284436641415610146795028302489854268335931909006444063569954521785460618793927045129378227099249901132842293050804301069735083632557676924045815660288735704702863349781735434509741773851303503783766432484155258789230867796278512185524478725628086313187622806784224441343163445422666715082878560402450325374880289698198688701805383714988136279376882674615735692313307766113066121583240130670274547352614653202228095588725880314458439473608830647212866032557476350696275582266581799164450574316860867687845561256048967353543146685727483076639857002042947276265322205934932305699935699658678273045558295616274551881737944830158555430831096118891737546349715944670014147054579287460507585489357330719081909109335821221051731906812915038717854467751698850991437154247939020901801893050424398887612831270912377166833007654806935816865463900789405105227547255100246872402033170760642559065816143797878240682016556384884612611984105658391961533766279625645454923937280327335779479311770526931750265263821179922225311826244845553069338508265935370723685347340278900080881086751642002004997660188566012121782893519506402214814325109524292151861929565692138074386046501092301310287758335846646370593860453008974834138394598183834468306015398449371141727769158155110874289287786584691746416789024038649977376106639718569329134644655367215688686441062699177894554589714452658958732600692297983257806215516052862111835283884006425103029230383418563075341113588311627125497281153754558260796678604299008075231209946987738851891713732970480277993668364353670251275817584791739991577764894649663523168821005767014989886050384256654835166232635115163439209883911659329551177604637962336481376504768895471064668830592204437164299939993096236400199196554903915315465455044240345670791253976598061647763713854891926684337741139289322485883194179725419275673245714488606827435862574015832640012990701569930484645087589191588302324526025195833424533379079462678026242398336266619429125689587153370502002267747560905279497581367637450018447946298047465932062180010900350388595683615088103862070485130187465436912908548995723813913747064646294551026235288489077692727039859283705738904840708574439985518298350142635808812219315612298797350676434807255603871369280372055870004604518875919482587349612569015514304833699849380654006304734791794586432539014171904670503559546194665982818892595387060877874009794425406783650432967232268353088729246813059463872719051949027662670505098930163491373946469332800393270835391598843279529441025540183991090899318806062646506256163115453054920521372661751603931830817045889321662459742548397056235494379109219532404845500304178598943221128790062946794452379228805475460546889318362165285343690731992459679552188874862210685317698636265204612074757919592506434600948826508819944747713382374869619219273687434154951380739812572218485592880413531664847259478471878090074287794893942681945232210971725892669154454793777407641273838859820105455412194252390653330330710250164315735318287126813110101588656122154390155472946000843196996932830489639454794968821589072960506845789712150360038820004263829364836658417493820486558841970054358070571682555540069071332389292686011552214909818625023566591541997373533412433395371413747165299427178732609928744490268487776715838928743158272289064950185592757393962351945412995364552110407365805195827678631301613116251607224161549462531294915761976377245279398782002050576762342296485491533642094880330637085581590491290478302861145754183112400830509741292535284091349625601591446424926802097963628046701022375700426416351249944311355138234485009305069208716427206671517951124726865484782300755311562769493213546024875474174658913550199522320146763718936546066201019473612098987987264201545861228864718326322757561475209889705528830379171549929642786138946840613283272509239308621712350697040605201969469429604383541593566628747561834527490381638160372683371641852539593373034318616022184578039626358480049382803258802613533995799501070900655420137060370992508932996882180965818189153914798710736725988352549245804804251384784687131986407083592202742831550870620946435702793759070789074631354892881706909979115149302231304943823135089001274388909702520303410057999614290328665397470316485622144237430140132341373034615091716425214900537469709097162434473308623875379333562050159032928099840194677371378317368718417867717056798436809094773252155605722700052356479535438782324347721537204454379727312363636439635799341766281632509311393011450607526084611612439366628217476646752309705495231885486627492631552760050652920566271411454945485141286908627171894396839785139228321106308941545613320089479202871538359852167130186390640196327650729600652347763232026115410579858708062179697166503098559376851312654442293365003908754331200500517898360737558573146012264703396823332345095999219282668788975659252779098519778976874998439548432571957748239219996756594770093403260672013392461888292405963094934560709700482520465637503513693794920002087325577119857936667855309301452011264988244994795012922392291784962262868319910672504749896519548060322505020611116336975007730733634759802311609815963219318160678986387721670132261313475072844958166208094972379788036762326291887183313944632412275657108840862347910034706310812926378733298485585219726624186470131960975343670780908337689803641679955713376057884043162449760951192132603301304846438366745201543012337501614191516138392368673807181561074189440599778538773735373926514882668046816605959695317727601957832952791324867686463413092443266860187972499451653829211520026925437035701996674484085192693258612962864685232752987371091477920847620021342601888483271442426128793207310186566041149449845720686740200213382137875804574442418918957462826935976019309951738409634248132826563484049461323813104342222162451589608822055246915670442277502698321534721421128377814301568209263195200407151173190994971508159610720381444497523612021727515961324955498576756046132285179312253661736202710163546260698895732782965724393753949285356125624530298323408014497355196902897415542513432027842582907174425079527737122937742837942332781611470783573590027130188369353593140972166696163186333800161016453236274051656609706179286602681600805855621916429914221850789725055380451772355151270810013275285908728490908965816852675855136339332247075849153378579417238692424333098007970872885633233311172891987467565626998335162469616540934562879689508569089249563869884406455809561391595785448071108839066645698710716127912477421580282351988516228726513570416454192220982518810356675265442261381827882091661262057284938829038055600575092143165692413883705856162583983711590677074121773866388542676934848736571376974711659083404595426618627520639479001828857001394505203584088009720790902218748554430403859667795723938144358314395520642148874711393930928208688829836220363570574251619108095665347940602169525674770003315575185208855788404567483697066395797330811577447961265270903305424513048673989764394450330730137239068510278300265561705071171673338824507757654554028591935415814954273091660677375372509760693273314676540783914819863307589053909575816620115587834746359649883756200996026182351359308577648052915832965294664967834559660709605766987911998595373188777584888513713402493515220402783945463304222413643466766476883081114926198326960384265329501437804627133186205183569736193997766991605107718429020733742355211507453226587539940022660839076938899904658958253975137142700995767041790895298651989059440658398335801983259137609572209587079285184307225215658850031434333989222142679161709175529572130514866017520113459963645771879371111965339036490632043799947584318009524959989539784990068125417876219215779689010201975572850929770253008519080107794674838201035029835041119571595543480387843901755433134307048586665688605019535845854606577207179732320255131522943136500339539634187950414682311317899801774582845734893795500257722457687317288991243894314232678350747442043758786214727539445784898272183334345159394334634193061518462887575652321628356890788429770798171577239091225490552291240831952884070904305709493248086192382040929789966137089212711072077613646125725545686631668114812236105782709577053422861029997790058240530577371355777776159032719956926093184883276910396053362530837410896457153839717506590029253007782547839207143222069409934367413521382348938815189330490510378814154241593233165283314182501201136439648814460977761830575697559302900779029039899465006906441375994386846062893311954286550429417232275072216190955956131428956433532733905087004079165022066828081946006305922659435540561818760219934223836496436983383140710768298382691158071478580149350353210256481764547331244297169383414839368151109075176911314276030266519454606461462390804216067291875645408464812723397634369723188348697270604917197710540149368777271629419135648787015162601938648906265158975623287704764460496693250062900200687715726205498785482943387214421119771776271636112856297726352385548738764087056367753226467539880790471647598009195704794800545734174251404039828146967931426096802847902281768198137323319020297618296913233505493689648839696529679599713897775390665110840975819677160543864918730402436574946813010196365086258610369839653611825317098711991575267253429931124502395519796517433907638437056756350851102171802974373147565823249653405570577231694597268722349974425821422721007082576216161128511389069560980921821760585563384950752321877172909677582313285994697238622346396011366691529510933780217685376903283023315295626587085088970343111468512672914122316815107202474942620927076221208271141112270043778164919951247590520809120331189370804070342612045576978751981527486185455936526300986977807259258611297437283256315759670672780888667975617993754943168310573148173228372776430305516054503206412089583912510594036067968741649570746116289019154562008479872569673142976509644747475286927091421036997668065833217434818826312540685996009240389990605735544723471176944453899423344762503033388942410296979672054975976857811772722084001766995461059227718561205552037321913615564582584505446124331654280153976865565784409736465998995252959647304685113527806880362123559163375944336795066829449884227930068433560217678046083401687363561127159966731094242899878863893387829126782134087140689102122944109047821121521144720891003659272599281606566090547475279931892025868526099936817628750640919819429525926164247832618574661897078410409981796703415099894483664617919131685472276362715787412485400986990608458411067501390465784816091352062006270705458587473303087071831483328740017758058143174273184138211019634443138302605323282870969871447374196102115465552454194149534399540891005120073621789063973942608747871737844110598325317198032242165147566997225013639259910684807571461538507833817499915343061492757779425519912675677665796057350354812186900324163117167044998161542002205892178694326407513555994190213413759995129139310889932991270782841253693479478635660819807116035744519384986704731060794685088706842840612872227355197504406079642503590332697858352977853044421308182899210995352771386865580929231235664328238291270707304210784623028711030067011160520822752620717496377785022101821789615610205951329636256089972685140214603519004936228271640220092263562783221548915463018531383488474950039613973500630034371946059179879207658160862426895649752456249660106739884893667652549007131284343175576820206663630995085757129359396693337772704427970714923996736955425848414609629194790256213970196619231173985773228019957551898002365537455770617593263992915737270230584343132084648787800898912283089174849514907247076680890806817315453298468409076063000614701526808545287414338423390216156374003689244945064288762566491702439645022249800495990538871948128922959177760317398411539613494469694639255237940277939826169245307744969007321200836851776694099465571386396360212081832736099956964536539028163471830996221260918160333682477505419983251821143601353703898242839557078822243774534768098614455031216261896721872556772226816972616717656554352863805699030617069555920659317904857900670656252849235922189741605300926802208050261707434966655659494651277525515637571987361375551121492678764437158625753816280293208398943202261136877719225960419391794424290769962039887818819101182984825467217141217578938956663890752821726739185771343343299398315370749669654799879790490560292713872501973976335313781946524394931089580212340689068738101472067804272546587783734607636363935112823658407634615482658054444487693799625888250401975166484632752309425248283638649087926895388911647643887623310011605367794234356895003141363204460779739682605481111935935151740555288021488031876201580660299579642223530812067679072548189834027274804623258823991841292387592483190132600983647747114187347439386710693847744530736195891678329748278364541123561234384924099031517857464694358292352247069248721198735155547032018202539734477652584303655824029859943578634206801662634305883564699645289814061166976939091331988439413037467516483267112402232462306468826710187545755982315033804366691527386901740466308753721060338368516111729189935234724707673945514364755977036081926759904419781998557867067815625446998162718161438409098833071135112879701826615948931555395757737477172506105623331224405900038767746955726771270221966752793813677538143795094457564598576344816664741305006780231461605460243244890419077911985114977550109234191792157233766777795598688778930754578517041040668235348911556504220257268825081787451449894435304583680471876400981582568899597876082240100431991401686189872277730103747228965312786267067613028977580336127379306603161835760217617628030994274848909930142593571533554287844307450505415829565890534034407957753783113467139902302334222296066359753862307077042563081201825691253040692995543290165681007418277170498610703695859226025782093635387004537403455207666479444336679336555938722374422782103254669440907208635771193211332337845031495626797698508023244247700832998818546550314544853050949923203957313347607116534889524320727551011909249385566657326478314600542612196840485233383783724514345441064526447978449587758445071391716363715927261078991333680743372181559282462224741476080089533627467142644613878249055999497910303430153365821171803861169997096755075265891023731713340671125853874128267780404578570407408748028130626317933088536101529364218016334791290161383658140884657868237740051147546277910346015492021521274175632975344559457973014921439879577456722760492623891190239656090266261635330875334177509640900008533950285373644498104296384516275636137856635136386739296562046741292680573090789203817370079250249660391305459578911987893047469560676928508031935484207816797446882446321300522164851988406634821348328659105357044631567365197272905737711460465358232996332142584658121295378693920084434447657382424376879322591769974654981771734004861463688931391500473118017216061270931484135079238440152527888614338499313494581307797202635975467993016550080120569542587438434563988324584974474879129380452155241831551251827221247304998444664659463064571006301666160005538789022450622027334814839486997291747304727112155804731667784085082592098605737327802920432156169670062778480074375749000105996322440354934399631430282356649758802167286706143453096289605218555193439076613430541811584311118339527463181346691489266081158441521764460261401967580833736084708889526939893906434556576692249163740349725608122625446902622706653151960891200050649481556983490957676523604207120067699790886950440218321436913631205405037452751746671676708005608662175372991221822449096530601217237551676559422787484716852054041805742814440474420047335920043393806653117977590970372870250539987827391770851321361994411894828615686830671674426254515808121702201604490258954339563949235121167493610678336399713498505223216024719893654747192434513622968848376538077644876351272635502628808589535967955959828862416563069451662592375616843607405458058413865762465163980191480133050260150436172043981593545278742901442454110074628113343173935837470108121613482221508278278891459796419986304754935253144234806892493760648840294642082889708380337508732348083220392758334774571504937681341831497718746297666586828165086577950827053965515003256421608015014211218892104141313148999807510799849265955852240650273245879407246679842101934090240719618908170585443384512156410959300060843883898628989967121514971255994046615596470008397472344198879918000080054122868669924720932335214250544161849717378494878982799592392558612549333553857985074132420494344448541552750985790308211786403043745279041880784399554408523989205716977173936733682656750191740569497725548804834500076586353617962912810511619814088146979303616595762414755956300776216153747012853188481371952582049468507334140014706752782861920134526709868567795910564876741837098000724146696027812409119402741040766781298428283897497030548999962520380464356894188018605616571563959796859680204716224861502540065031549722812742797617129353918422726368750558609051114342070406387976223376668888750035883593513629012150629714839022252453837691641200997379013626562046041368934693534833706530514025076559569690058253476213033813975689999387994386085262428421140804367958263581238356671527471073445895170193895331780941660316641968401618311673334916898900933883290887226631995882824465895743318958210001483874957917643601028037590011034602676948791698940377227966703992803260830649579497628281927210412934255003732564052299630426736239852054080886113518044886760799268415356424627843759566476310132120680686634200694702585201123681344303693149784948315591670987957002291802481822012772577994192298904869468620181512012346385715113949016018663968385007915639996851897070710962228384827547645635520377664540071213229588410907044782250388533710032209170813163823996220693881015502320376154391896912951832876815036370645031863785882911086328496135609984913160213155371888228474755575703319220390461266195957544128344896613180474200773608426708675691591443324021367368191891048871946678956455222478931119563651376089831251924678243712198637807906714754935259133928235929991484838156782963250228032058553059145002205447237174693545184242198267503847016704905273449484866791428893886408663482312638144632089361393524328079381181216482442233531019285671907762447589542182488251934262163354231208002242505297304559682837066312328830886033841396465631033608980577715703706235837177231419750440345377297243449465125378004806701041208181577171599233120030055456859226977169375176851873380144664575669432105027379800432421989174217113973378236256990376739268384835561648797435230861927994923171692120690593911648388182162939143879619678230170887086174873203499038671212020385674617794823661359855555499673141129380189180843998127827204114509726061063349284040459470205197923087952280149487604689463900543414986148333800425293611873298533936897260169736776939530740152632554455313078800797618120529779313656998600790233803910687616017533164118759471428451900751777148223168868121918187044395396166118693347752033363797544994619169028917248475268836075649464748523789391989641910425859374021537011830613528107350345396674930241639180299865197325190811402277170001854563393138065451249219775313866855579769676911338640554630417538642954887782551266630891937924019545094189874250195377300259661050025260977938130322528593078375023758292845009031226726818759036172516013183060578687683699907722692547627980097886323687538687695340454303184443249545516863915461605411303684445167867306219202732348578703608825727499597184928862364768277159663548837369224394889892655142467931763430701843999889496236956692063875648411721970986333463882352653357009498210972457406893171173738294171514521467352823686010215965534841810171855100608173668172646343615377852287965400071311591339233247637021409230151566828286229117718853388704934525886872397779904166250674442718945785539520209335765942660904882419126411098219764014024142242689110287560542646174073501186025985162835436896615897653464311465856538900758940859104705849763893370633580722368646813201297788436095220667725788552737362408476489887490490568095958056900800494193328620988058072403106022968477661931907443455678485657426834985851155112257923800464138982790450389504150230564253142294679539387671032309569360900569980617996149823468782015925783937778218976249236391809144920027351730241733010423348629080447291986382301065036112712541787545435411995693823089233011553715236282404292531283006076607344377697874708090472309229365116147897988244573829302007738926126478394132542458834082626532685615640358020552783663905545354833901514581320458404236995448008062878878280441667980254735477555102970960151080626996487726867971018888387165820619861596715676521954709810167576228857870079699421611830782926392501534160936642678414644451233482353040994787719766694477236372507143732840406077633524081076884388059366604978726811463792959079331003848211873504676927181846412156327452874428184598510233917627901023187742442373506231267764773307910624121148447139701360575891862193060231166977586382953218766898163000726376182680091263078440832120251314447049214287759847102228120459724137338372230356399243268273839581435048838949807196130095494868107702022920210508683171518770528781679907411534305721813646571429332775161463996407635969970043887344994725128802384947235181237195620954371475316608331110254006162305479923264941041762673061695889277441184121939293564396656520818787580467265381775058385893273582100318038046693475648755068747682554458190679030708345836613224435163786821356648869814938760499571114426237881071941171793326397311271564674008667004143167686478614809654320188093774790518493188898813514663786040777932548415626064530063430602108954680980442479721810249224857670810511275126483582047644579414438670394418901941473666223178914482224303200136233405871426935212154045491798232825926392040391510619371004148896251654215258805590918172210545875641398367564284690946546472636423028719605635594036090345996394356015335629105864181552643762564147525431365979888320538561198752913202732977763704903988219460141158383971297849584659328350378237028521619730018260387006053299562015060909752441422610795576737858026819926522755744920144183231806878376201170794103621376094211518507148195345906385347454166108826369927356546633114595323063547037742056334464098570936693510669695575543592502664789645420909588783483121626115297102664726630102848123048193843336663827831797529585170449706238788180567406445394617385442599238423151713161655904310033416187094464453932433586925290867342930872953011427973285925196138043035952755291218702216978834307126489971889517961263635269898703323503285729587703885131389678670457242367167551763563355703695329510681866154847000783088003882231407113986052530473524980590270726042475381572175815720073048104216163899794222106278773610141374398731989769543378083069561939900633690346426354014585039892005848273277807701630110134237916584857160229858087594654083219025469511866013588812573587228465224914469005297947947351949250804919752885137287284087991822282011369615801835272130319825538201199433912565037775259857247059690565093030321530756549875777599688179730776926987519584385723075511782209854557880064009362828351022492380200062643318752719931568654949511792114878375719037290232179884694587936333416991304600859135320422508170787167856921727510713722642039166951276407566458139170103759372358080122781091745653314074542354425167489517987801709330874053719146954592728537828068638089070145123863413202433178238216309224154466976081959259354972649553168955504564724102281579027505831999605517989441635775269025250047497934830309480422562076585403689870956478330962050704296440564423634254156035996969667162846981776149060033260443790284696059933551878775998245098385331428211518947184763132169356565147106389053726077203152631817010529660102564221630213672196824589857728860818775144636243818610599478598267643156943549209435565384646723579969267122196160373475790352202032931252494146264745024422880276314408695293636112238655126141448094963632848841087339598954126791788595034534161594960518510550408509093932317303870984621564471907314670214912887370387442916465427492338032663091121946328889661136549056323746681913586839191631723325207241469772900043586237551827219263710290712852894893475961765142678107613415995926766906219368767381449316638564976100634112093238930337343746234049865049129934063316071618961534697155303486102106936733965918073261637067731224597391908611026411736812833155605829950923156143286475755017613919448183710495455341603461061572520213507938792757819156602290367527904257467156517264453380368446861317341397325954074940126923248458135327288681040117887206740601774166263321713475760996779163494457192389780432743211712002752786795116678527172349466782681421482282765329055257567317468305306455791944927317341827095887520230050260894469996008586064542003036846309728893813559792157874409258728922452772068595223737386667569672649710946451078215177934575198703237132217691388052864422826572306477491544126039169367322481336967848810718292968041833836665457790164974813258969191340795436235025824820091561557194067934683017944257740496313433009824573685391697188218253455701268066246323901211698467664987452616334283052521728091800409910953870469396786362053801048691396451799127008854478179991009374362487039981196065835154761712461826203791852796992891557181026809472395061659761083494447614914206231817802734811626474408338832364527454094631066993359575664637907189685654185260008307137842803299439340858150236703097218845067687887557370245027877368336991245225570166924746617645661914232331589262772983380885591425020169893177877735393571050623679152009780930193624806250781894229401332054346939218105986087087071234512586775630527199295431945924108703835554064522149164237106092967899812270390076200831625832417974126467462669164618980731043006135955974910172736830448101245200129630145444959443656923587909137291289407973916320687359854971981177320499196097473897104279975807512729172931521875597811664016179650300344007512119407567797848857534250704838903256045821548230124904456160706872191162908489864262329157642012452251688621087774103938959017992340202957822544560281137695555103997799317207371984397851218570880017643917514154326980005109328170476951220628253600421858678112710650569007135752377196322128383859966686125388819709295134141266291338569751275707211740822591578969295088657526151434526230415763845343576656412555820831652654952041985765414612280376373690534560547841531098494969213394577087342174197082995113656127639313026561590618510952790491342985029536186152202112594158652017306943912726819371756281434514738486790307599710424228957973222677596546338584447700822967068966149781921016509470415044849329337056626423728100357474194313357354206030981985593895184787144800819312441734775023039548426791389790091200654983390909022648700988144997180882681265920996468592255955979383101609780050988280724941828836186213106246785958569256720584020082700307050484567249602944851833740024507564605936068344699734961727337103757016532006720112269846241443199626837052723419236453370151734099696104580561194283169237286446098771299722114184079562705065874774174256895926291708617049948981810261888408113886308967782739491292746330155314818770176978086473785899863803662640667139952096043444421611062077678351129042738681387554633420068256786083132382774318390642517957751356312729253534694519864407778718944839149366179416198723240759071230900775486519264423679240468792037220202839598650918380337843009214051156414522357575052308340305907650942329075921644773895334618202658710141881811100543024442161021488071146726813473355315683112840188134258102833822424138729938670627292746193692284730480417748491064687860383470612642177823736342769908703211704861824191827572281392949288657499237020383663787886142043780279605391499914410253922798286886439957973482603251949324338613388121133087054701713342647943317148575531683546436152680938035308507540832865576735021743571709585473225332634782277619021014554937311306487369390320724085451117535151485151938279387897910314525850259965197350624320555773814766201940858116249047931811037400633102900886557227637156934636162513545207034074654807339888671147949885930915478687871669870026548631134439060947093084456805155505810169447827493761678541540699664502816756326569528022972085202381653030627685452312572461764760728387221120776239873956835012075311050828169433770366498745592140589551062302008225650049297464924571576502367710847894313434725301300642968870253140163978382152943198013078995016680752854873435736012895145046994055660694779306344358160166529245883947358397660659055393532397797967162902972475370698130364949383987341947473216863056537925885534052796354761349864792158382092097645130207932269164214351294642820095291461109018850951718935384568731863517726308796259032844096761912471648690924115106397932168289838077681436015064710962374747791338937493228685034896954296036749455629995810875771688273039558181615872215033301325099206707500475594840282341748173724743675144246441276690225803680355948248421472314188815486035302544687271010942776541341874677183588298883350134366519845152672591979232977674305941319505790513847191193796378083251151612572884662214578206599316043548367673819926656052346631248791839151635755386808715284551839208307836502880426319611132308677276261489545086649825097506205490463179662689342045345908961899282885938699620426611653715079313052546992044213208270224443388913923981887155475743329437105071522373646167610610986064131208251598689102182210601624526740419901363280052881680287866257032713957143850096114770787562464062088069910524324258992014490686142295451491392233855171953805162458319438777096225315691731837967873488428190686547769805463599800471345422289329508495507950954677686403779665662206909734105345538438018031079454172025738424401092667091315350208119461768653999776847055487120990707183926183532940149964285614899482431834269673747635237153621238907123170887156384781533460494252811450526003734404756363384909874633331718230308262784741503589533685904860910600504363021570154659110687794987819940775508858357385044879519172834717901131790999090171777211402335259564667357679707736434461465652937433619193015267293837534377185025428020738175112567437365962192378472287646521171578038309122681830036255942858289040268422994869963266296612824475252820291492346921431700643323801737501607647716830959424071629994541501253475392326225113046999423899856150596882838836428118074873760610704565406384906784658081046172859920339834732123125127741405674652424842543571505127911189014675585483483601592800418719506009860436041698880908460147170337935950582570901633669664893265489290198026967263732866279206845213426752191054484512523189926847874332918734224648930551526319137774491455605687024603906556742568375148143313040321712391641940677081459857976173755617642430315059186044503926361751996725557400466157291635715683280510323618566003854020227453789990185348627227601024942151107278485909302026512999127919130392461952824087103031416160235110138077463891199963807646427546809085110469489413758853355725613972487739828489320238108485765369880369009413866115852727791197755128191138087988927953793856095435882990575402094281425435134496887343364424896450753877380756893054622087573346262234792324997446936295629306642719365080361164971910861496932073455691419970916244356913747888757462795758958091491886290620870286783937893991043434727191190275559492475027716585813954350597342641669438235233962966185100225058719663478371216781039754453905783190073800250058970103623788048703891524937543581764466161473739206846567828332507570530950492781777635578450056300168771341281984716805705788950068564660964425069678289012212323367244743439490083598465902010756697054550800138974839865621845578198505892829400783820702069972657863991890093780255422049307410816143492465664801545417953705391834991511592894007390467142935781362374751488540493966698545775376809938262159502830012861573652042688199323664906525020350443151558044352900886154894515917496334770416458168979791292254579916032815267166519109512688830151979679417800884362943546402813627677533072365489715651181924152456851142224516806384719246454897367634086392010736339389298668474869323129033461926603772697341148344116852378908518090416554858356724866572241591629024710305671514915406679505828000965258595803256962178872718703286474732420120011854196235151342640826247741807450876345077165348971865931058059886813696237462786739617124113374580068453067693747044980686946199921171954970528651492783647749850735777566541216007139358113097492781533676886994546208729109034446231617580673523318923018567265152419507397354328864400149681959168562371309120034407613042922933676577218930314974594498582949955934451089973702506393822922311872090756204891037098097112986968961995209908943782759665698783183374438050266108662837763974031733006695780568517509641070841903548921642840387492972986958386839675589324015640852243259987567030764689879178369502421965015265683428982553371407381483991633108831308492908011820961313662439883432558290238460943651881124474181789758820248282754403346928170382174555692181902992739824797606992383140438637438691606558986057487572502799750883106089605979924259921771728006986489809649314616557859025862248927902068778561710768863844852114132481541378486465603121767436489291576171950846168475700768784485006189899531804778358964043678422188977565873797870548929775324872557751946076571233627087458334657811799562222272587421242423402846401911169863461948454906262015131596081933466477842925780117909496622646802658154955782853797653911949582140696221558824544109602655695746265429924403057906289149494531025547437606919100732742399518097571453572904197461264823008028508918799990428720121697105071696592565714395290465825097351527733313080826665566358001166817548044118103048682366431726144053125361607066477027314703748544078190452343566895533541408813145744344995693844068986452785617633846068096110946345101297294002972604530228823636898785629356397745870452522825375978699835666539434810151777860111015953646338749136673262280428029631016769666017814511018127922949457707210777192609039822831891035393423330646850327676381801732216642397953185964940105548390982002688123968178142401377962432507946709053323188343881887249175382113362101039998921108576133977880243907000666603948339106259807249380076465276804905923091522270011614678134238938262991699488054733735822654930957010254913307988025391282288980962464574815525482465702257914627920458187838951476388387702867145464623371682711302814195637798632642525590291722934337754171961700643296433776884301029834324813832053805457780610941072888072795761156117411855699137439382900536806550117165098644952977790526893014879865260288807035552962495320708073189109655169256926483626817141716450760603797867936036612483149842565774660364301712484589616619081082518122073548078942294307450015556813357632737653581384229189505615119408294115654355954758608441363957248032933163277357118873369360433778953164268700527325519603956624753777795843977420559385559558677157371456495095909709512726707813635692438099580819588204636801466418950741055240723814409079369865436463675485420013256785914771195908633062051109935366068201448678667493147988645347897883833658347118548837706206226973475767024181862568724395309833454240203077126440692192148907963371574751562591103706410357860775631271215085668272647325533112548859545634256075432473794393292325605398460867925609471327845370539798343427397441183056411463286096265508474360031048712068560019926939884121490667619248281979089125298829260955054829919489688912052415317742109997550948891681158966180063424682255873341137299884106552466103155805818579538586083013016553486857974500820409271172258251391068377078032432350989348720104781008002894256398082237310718230653482923800135668526830285786571237533888866573374340924904383746997151704508965440552581907700015639924275471990609859266354150549668069703880689146998363242871703637927432192171566967394696702880871865230315764434843242942571979433671978782295556596073377186029106164552482343770012658751313194794980497024121776839135042282954803513504479377892495919546126223527246888667501593310464096887853608508122540198683937814980648106078856737758855940737958969222489113530058184731728483350151590999534210387180437393425140176370009283356772183790062186852315191130452248632548178491619463275588021637415462393278702889974151539983904248507758133370996185612498637237704994730687564060434468964177982707000772721355810958138593417212131871260253009175869969012629558656277670710980033541186993171038438019364173330404980683575892333803320548921603633767895785851024513029670267911615412161677639292140621415305927361558442342822316395465473210558634002728369731964166560950023783976040400379662649504289938168137886411765313944735484761012367098253618588669644752308781143938221491114656353179955704863960753220256189404428833865074566989689971734792233290878628675859452617029318021510809268614850804202581994094857930782284487401566061417346931814008865099488233958804481184611815561000908325899171195303887367525359338387766879616149692383207630424597305288716664631236222822041558174460671872230800912430267550494756548056358106884507046270091578562364289808683644879621555104411267786912864589291675143225382694730543833171725267340493629914854518997737729405161466802028048987844702540375439483737206812907755909960971725051178926681292010619657939678005167494401845704361481610508975620673536245002802391227429350387062904070256216241924598149264992094321751131177621863640046888110984984359579742235878395720101444515897753759105292240817648873048253584944135519006926403498857025236033064554463122993609487686980070520468756928650245611361265039615894590276812306325232804558210602324780701984028504399938930412301942451019288876609183124024157079833607634064446127471258219433557291032643941548016045976168702756972926913233141766099906968029839021953136441541183034501894561515838967582949150753986959945607811982578999138991551629623832159369048292111099098986980761658900546581332446017483366866119569682397165710558596886509742228754223914196428512694277133283072797135409362602458061427873007824449639487115778816921411096062529095615102012215953304717590551238014360652383599081522932655583170393256338977865053991080048200305331318807625024041019415084480696930467215491433593105993309870929035579585690554643051855490974317736293054480254854366565050093406805284545350599905320149621255855832656063411857753679513886496452512477933012937924840218428433822455559280303407128597184907389692790025330881583968980380668420877897188062562325906981385675717405740498727673845537431022222667729054266150042321305578813996601851195487217863286469438396827004724676507570630736265860320841478161713996230965069202513069529375704916014787886253370342434633539691357086225060510301589406607640827075012393544711352396983612948120301441729598536467048208149004544250293872645597640781841922747458369788516091262387081816472342167833957158944835154300426309029354654009682327390962868261701478501776256689221486803477109108823059203284935137171220582813423723344417359757415436642313039910953392722498694641325717682857590447251420514427939809654601058433520770406629359039153228851600237570655707923461922852121961698443935718702666042516218198795967375485223736394234904445018799714412531068590298004692534345102330078622393698146395830263828450980916073631463103773642498253241770535363070620649104452723462801792147321818534416125032520025955719307246585875141114010177767115443811946529717466359291334248831815002567237046544721392074763499200668902204882725498933994864136440309572320711060920729446602762976731413388900207832671893325000865487910402052554012596088112748277751911376222586462346543372403894095747023969965828769806085398306371719010599390797620569838833825766837340722149542675508033671536140834991870443645002429388966763306612213665562514291645463277857834455119526873011667072828152787077301461512673593692801569419830870986178357250129396205815615670571731286346546426839958780906365906177944182870419080287905734121220127199282289297881246988322014150326768528337393929955271235749578584745416049906169465103234931615158380164692939712854364015221571875341562840586166975315142807839879459409557314198172669417244328653719891819859807546896238241072396786044614724984960113252585583185073124619117778499892115735176832574595649249410281609253991651165412691493062743813297958892550108921483293066032108961785837636248064944706495269074011525396195234794015709051186812838625998938826097818774860542313717899905278455609735936118745509856675039124206437948943662624395459476397551777201312530162141406774626089088707213124474319161435163778286134498785893106695551384584472655947068524001357859763794852183974256806705523224318525026644446677587819834228523153771125727297345929039553170538180067556743427428178152870594233650104420503460514119603507541271145640177485218512101045126323248087325975447336789864140349297078161245024894641411941254088159522112264562152154237512497551092489565195316603194599263616112850723588758209134053764309824593420032324431854379882665079115962549731373948631428970271356404112434904227320654169487628134698377857834628327497961784366454663447664287080679840696144667641316352034214384480230540746518898304245832918541874520682953173131655265474557071020296407847504218522086810478936042745164652395143578138857148417647293679834151452714983364495953757040745569163053860632977999589805238880592664177980304088948826462800406293922107693043651747090081753160685252888587509637029939678146509288785223306523277590315847261591281100450722350820348408991820369218904286129316408549187678054495622507187880938406344498070019557357007697600705677277910351056323275697096779654116058695648466688320057038567114306446591317356328650337051072099000715600645765457409956569839567052946897616449130970391445141400378948834810583590704214606037210980966173902240005851254999694821472716194303075376269804939417464256475843022472505760106952623110776926643532633235270923308643374196196162909817866858418080102493267053489127184232077985442837817432379686677926948235337661727392199168348060066354149174895857494864092263006001764362055551178559794066438943466261136577147127722259492597574226088951017906616574046030052442694186996777421878243756274462069146867780680567019129763630461342502641937256424085336732284339485292791715648963768967128393630207221529453334072441690756642145897752343689401480154664007112771339140751382256404859627933962736767403468155420802417535610198670624024122377948603066789670427753780953364554698719706167673805430947831965477543812941452084615939998338578236113495042105918361935870324815982040061843240589492932887287911754561280748947235308288509822820525806730510717869131013931362000913527264169704733649451863123027837283305011873015502622290310202881153433665245568118955183172313544071385049633831496849920900217452285547112565632226412579276971774211692293243798415258056660977560351053343988540641713059769783727229055831326727018404052572168230648207518787951730384173756035475945562535433153250876698653290814111522169193333921558931671606798986292399396158387577662423513190244910353820750883027533701761389818819213316687034002892207236353851594319350170021021358261662117810937839637321071121614587007436177767104804327822959896710742837735139177984415764818335643102057611970441139852063537242471533789721896301021155384339557606028155135081323295467402900664589100106016478474198202899820136200422239683472686866061997928830263050292104280926245821383988936241192973019119131511945039427239094444233926133579709247121447727488018511264112416523846418273421076067645408307843023114605866346718831121545356576968971678110955070397637150570709756484260460986017593567954662956689892486349795834665791960339891448326262279010707308734683114225796897145898994539319940073360917502795896026083665673259763666939687849970788374435695981337818495636066300334768968805102447183061453018263618672064665825467003418935932569340815446098353803249123967766258247125509405014343925188632887249920131056285207676506138733679806694051230151977281776286329360561805780248037082660102418994661179592978501728656683657282626917491339545717370002764974122689723644693084977952260292969572627881458069354308840450068524298655049386369637736592606342329945745815130872730215412698416062434554494897049451027283224880675858636180346437698877158757952176634268716106917836178157520502418577791913033740596310011143453284545222835450033402440734196532149582125012042557839657956986479904921008706896853623012591867502837921161335997163275948607487859102563689375970943735862503290926279475442045327453746299730538692336564251110622115000256861153066498537766156030088619523681155021728520303128568653902259922488387452775268057651901919759400981564419154708526556744421513272993050728475218906410926283152317152472068855107711750173427938936800447349604328421973177928437894661972631153775984186653214933612811443983091426376893332192141066316025595950839560701388146275066933872695338531107870709955936527568593929409978840345270774603996781690631457332460350602847627861530203335733135218989316303711871807019661330238887851786205060255850721827320055937175985468869925761494750583592483562706546667129888205326123632495999477058494501731421245889145870963098338333648858965642349906606853782588191407376841538481029246096981250434836266999806566872318848753711115025495913095079140251441960285400487974134518723369987677489921059922693386290183465635077145359311175871836767098403707144001699115081586117636757383059812949739724528388593560882134621577902590683416636922716317012783942273304713985279051601600970692645631570157248459256300379178246917243960693971233078619689689680725906814408959495700031161199556808256663037689364363927223990015797808932153974981820468935881912003963372082335244987011761912667895714882081486969305826092394579690628991909080440978669016797288538378038969480134251028993238124014256918525681393266813506550373687252644641436573710675784010038247803296818069125910405022865053901300021482741575191052259029697670226789402819633683796129239414989946175452605375237506274580060661729847298842554363299002585727167233584713753951966830999452076221412244696992367927612057912402008724595054996654994613296207840521353634319892739581157598071622773215540559713723867335356219026869381955620877036774284287637767683943691349244765557192020107375955015863830743894868947391399158158761434436093224084529379978138246043285848719887269113267223391063190196997655344476008115031310340195616379449919299351282427514005852569698341603196332404845893023347581464924797151625099668651965306261572583641167064799420145849080452945738359553081036270352565795547191915948326686152567607530040981360227662226783733594573083718123482233041382636870205824126081603299652421998648851982396585223134326686775464233190247055626811673509454365829917191123914546405224881869374163290958506048898343594528373760232838784922649387973731091288630498429527655404637404559368269695452971565290205593152432157316014139996514066126077395240296656770738951269452153400345323663736735081687957061265381971279925926164523256000298987240806791115882505469001634656899041690426904694180301140831781275163012483593204592617852963341675745178504065507899777210687325241029502339582073991011267979890102679887568770439943796797591514838549055320785143030846632493571242190019344736467754608332618003372400032221780446291564507023429436666446028394704460903053433598246510709416084993034663648275635581575550347232378560761133058593195589000198181029690168352720222825355746123682966366608593216842899682087031862931807103179084998400854393641905538390769401780634354614260664173384828775521631086983979639571981506906828273746066951795404040669673872016609961018579116307037940629932332907564772169607424161890614565581480837305177786559936802462522794195177745298056363444818661794977321985501318077193923471662341157032228756244130583105916165123855177249065373487214842588410114948924465503560180584878032653559983726065249136659338548250428705922195437007841805739221319860516593234476841694704885424004357511607065973009023969525379171969719404830491476509716057450275169577182381864539204497839320963743259034864442859286208932245604696923945208901457727584982255516085800898959757185890464927244753502035717323539120804085907426100451226666828299289476004447030358380147257457384129213203454910487458365531970475373761761386707291794851818780989492945302415073673133827145102953963615181370700538779998819271851602014039315119282835095071809849219083997992913804086041630400622546210354291233488559642554529023515168350802648369986429118560746101234250319740747112515540895732023477349561848231591075521013063702178872610861792286079437798898703808143240121871861398187367784481087899397264066569941596031203308341699017253202503934639540607761556790781931623412572727833849439458631130585661916143769092302148201031449743858218881262483102454000040251607612943148399230655059803721593056276969111554251186445001932306002731628483801889433679650216589628126187153157148949670344959847458445096753498658635445813428955987528318859402079036622787269030259571504614708683100329797043881605830623105563653152346453742483470710868573285656209529916659625871908076973394579251950511176211693389407526423897003383678017804883458323697434060705818696988002579334257666033578029478353938038754236463601623664393499219890272245318510728410388595517623680021127822269549310962032842778914135101599313024961993955150353660541977435358749371586044467101395006843632179396991312718814366951237128660151946894646997419579681198431310563861531492160866085751926172683377206509743833246542696017085815801813922087131383529002960091955955595866534311339320548510452797380908020006508191464139950382214165516313863610849478259168389245097875860796123173448714185305841779423547261831732869090820680180476503564450427929093897559695669876384699557165335808584338864162201132540664483288130061646878548755466296427925322873152230698872533965672493157487542983241173357003409194820827144492440688707964930955279867067612156509037075853719287854102331900515414038193575671085061968128162747244486395924193709568164653077548118391301987184281907256814604671879150917614879556341569249612024132254052409911618304255334623835718395552942791586251558151803897764885567563850044143699499324038651757348224823946301123828168127091543880294548217723325881081994737431903784703123132821010078275680941109176719126028613164523612413220097909736465482261770366748945238458335934254449096559966850534919957753367931419947065492015584246927322303705504118024832746470854463221408180505747202906829551675178110556159824172929021266436071938745738714522846194095357706128641188057141540020731685714258545310270849435533646445048700109257020323707664568627231228862847019136824894371749212113526638310251403048985652978421697377485509025612965304074383993045311155583514932342845513028706988612266922572310608715704212035525425257578957110040123730885195055804550688299427341141217969463256696131486418311846522861566677455935307661816586122517343992431812112405639095090464193000812844365333470418439404786663555353328051096577927886842365921958398263672283898312700390937196322507562931356063409758176779523607562935405449055524175430445706350531923794136725933955368204906112583066871615817005745226876907810374803604232760841434676611985959892342649564365083593809006116331411632308380044432506461723343079014455091848617453811743498236041668267332154470282819409071489510791874726433130345756901192022257572706915249905378650605096749837811474015585652506378887555897639352984189292309294954709107618485354145888094151468987680986389730047926218726814249412228106971828942217635282959704801395713367873375835365513427677624789076936311186182700559995726371644680142308266138909860057133709522764486737737014569244076021461151979757415775249885592446963594334069699288277445667899169098802776061408779121629671336474194598575246354195909425835364578824251940388122749987393035386578187203075574429688171709143445288586485314108793459777356761865919397043106706497329124299497619675289510329721108301211613324271541322944315524828106635206791334959147020548011851005641531313357251259400490827777551476833377142868272659631684217940732620263300035552649011905818387728399425667473247661337758665676098680598465103308499540877741156992079043941539371315862330449668618234554594767846727160900365286327082010881091549635915389942708655916912974771646873424858343345482415231257666544565234818650005893005492676502765523906049824386681584964022593756269346514570662771311736491651419969038856692941997270521590413743632753766143171368066697778775811833106172949983735487496839730456071226669534016650601556907898364661593735761056830086280194405229281110622184804798925524152278470176380053333748267695712592885466732848662844284960475324371947995803937943719822324112633540363908968421686840650671042920823127435086922568081058567011842068956125212456105598283554070061827285012221282893005343581695937535748811761536845271590974358349109599736830331570273400335380283344505861844963343091329309181789104000462624359332125559311782029194969515036692419709180761514972943810847323119947624563296718313083721621108455444919632742475028692306542894851357989239360212328404739689016714327825015899341729282066495650918943509079682696240174478394614212463158211765640352323132690128790473911711372396793123719328997245152656664926340761052967680923930157426466255290038375769575680135928650219310421130322706011048785960266940203888529562992803107212784169252153174005751219891946109307618623970034175544872438089356982055456048831300363991832999981095499179158693616824494649306245420678689823648141834092506825151290998444165793029358433584419241565330915826289070731874995010517315044482372038613005236788332807796699689581076787702334895532291736950705024715749689816658352736758941377287480381844598195046409008312074165910694983071960128504435280407440643565381344664127630445623145790395556775563036063826447990171989334959492883916025394346189781445006495546755946877677518300426369690572932161073069768816789213350575900707855499585114117741073867727376034361683384346804803212852473831756254303407222706993587865015347440947763861590448548089233723447615942971424593363149428582758026956259631272991057591365594570613860122492316425231722288924911849205730088613697678650144257558732411132819186270353074731954090232167159120718014322736658406926506424215755987755654349881057242110209548636391312144000519415598379260019141660756746871755068502725574815136662916822967231829147003525372590506847864493600936270330897686461914040524233514468639239505151467807902921328342031757306060116952752796210532085637060714971290203774785534206159590610236951038699015005736011018272055585217365189795449962089904055764723334866832265231410718520412928339731561050873026318542220141478556578535857844297634629549135877045664982663686901931930033603561378017789254893334510686346617107339990231935569875912592454568094719950491423668995303736046468057099147776685555776274557287946843444979713448737554871821804310138190770517127807863590053215226073839130818604150029428657653155356743360951726025989335659622499487365002617896764828770485323762135420622231636073239468523447364708951721036867901593978312429108398080955851789940514758480700098946159554295502605805377866696489898894737826042626564924928549245895110361228090037202201120380438994782873912072719726909224478438548927044810571833192390451577324658284624979819164724108400336105094905629085933815533452646298719966163892376555049085800512110491930545750894627307461233760089328911139003849155529417477504826430715665387217055016337337250271195384750686930619449652022184554825634665798827118729960801139901068102896181233524494988460713931562852536587796160787410972202589584058656276555693053094418908930171858835473833671783757231486325389315094462149829309463206901367856207858294179479389797624429034227140778945009469341388495797290508028366377142802847221911717296689891765317156736708704624889083382381824970227734038207024150533716911021745096259953356286365531315332313757403501334298558145661974067259728524535329476764297478340347341920768425264291015274646942134900613573982564457140470769929717032385630248079825952740959619142856177998821815203634066442020205894557679053808915983577232785645436877142240554258880012258350246148996460053908947153493320148114007829788151291123622668208111263181140970938833988297768379585495514752657135676475985569809943981473876455760067414326615763955594958516854175363629478595483334636594014489717656074626502645123787478181008435651745040543885462203192672699326096798574292359588491763640338041220546484821674428541966520317957800894692736506599810075028901084891884428705198166403133004867607527047684418884391347938167656664533326188633663645866295485974382511767984358602041900649709455330754002401397093647170191574211472965076565393143307585944758482432230919176691763610050006776769690722083584415130046933075242473038686685322998855302156226905150216657797903008221648248053499646097034392220213139410571239252078308988228902246169049096770947641171109169388665103236588995014108776506768164307867006888719929945616979741029986149793983014421477208825442712519054823885563510627449914637381650033092328391447135617894380155395348960039903505097765660406725846620194562356566204694240646432660270222044462100936326899667215204337543429503114525348397595058851799695282357419954728866463468752390154226385581694069509926871212401199152169621153126761898530147579290283801990674156365569105947604016062047279542500680446741888217044774029235475123157016366723929847258087460577927878619839076861760361336179463049741621625841660756397969063759291962420555626896862916378809653990566949385912220980014515934045260357460298845843770720452179170466468114487204440679499369235130478203136626129806694878551556102350854283537290764088500628961300723386465973979811857719167385075093214249428538554470326016066951872648224758008919008179461765806663204120548263838139131306713418079318859198832833429433627250527092009805492436539671187291782320774116035597891235536216101051115835271914453895276640645495759291585254417657918173916371898804262139113179868165114020191942235666254416709219924282499741539599824682645267044784252829214336768627183805608953018398774881660748790150782687116719889459967636009134656540018066093227474288001533485289155489352031400643456103629214046874415801260000434195075342653881882170702805499213110128604539258776026510701945409537608602588370134842013135250058607744653176609611889851072063065154926710556043341715879813360757187951956082324935134555624535938359473229515860687320865840136785864420696111075455558854043901623189078153058708035622562455182682450427423955736323218125778482553005389445408400481502438069984394060473861444367007347018027933018513976178151882061390688589282983019032566806803209368019403441428816198381601274145618914625743084578273539497767879210854753833148745733321334218984244161590701880785961965185032821437762453731863332441719021939815320222725858180676708083682596960500102157142360340666311807665955447349370533283019358828800506197452250407049196438825536619800019450356241856664722809195420923092670159279610790404094012273025108441076407131007347290909815976877641253372761887019787151855814591856839216089287405858096829117482528996205310832349070418867662218138073840579783720436106446465499125380953950193552642564117863280942431278349493064023468475639345102889232841549486109555237363530944340036536976353348677985227802817342865407352513097468506223054925372724168272128709945154794380193718720121616418117985942618868055478973481501842534098807971681893992324532793109399664455369811215856510026933682307978035892988274580427946212783161133505019334034071478565293144527083102580162307296432919845636358174869825061873177585451806824685357568560229752873879323874748039304475576566554959534681537110006106595421865617760249891440172400212707745612023994008935907549943386077524938503073947931664420409917129489438430487175593338135402928896573106749146308851224973615527934581421964059450612541500148864557080155605238452142486209932183734451978505408820150124385182265424199146104241688676527954487863352198402100001414439385981846492367744797669724287442591102678283501656242980009785865244962297598819604119773427683459913305556860171816927903177120968857131343145738621676471544480049148902144338629701534843280353039642741280924415886720115682189061392607296884845731541852936817276637759546112485054904767566779200519446849206495157988140267600719923275056992947189792107570988479417414821408651935116534532433841558837398105108180711834637719213338246180913259737387455590350464788106228901399729653171079204430284411860878688679618847387077034857916368680417927546067378427843140387843727034151760275181156910355693806067134629531679898694815737238560978924137996729182553772382810096853911799255070714947129037744281757796697617703643760522121216359672959951181830833260263067880052462966700150819199497256537505932082727228696413120326916587681930924288043965336162511101678740001438910751432682378420740749616340227373619611424591145733215076388512596259290458576547804458997975418103707290376767424810668004569895533626164989483128661546595826766473022229783611378336991978078646309951139789290522724439364186326547812600813926963800626547142702688285553635792625684693482704817742356792343848734221925181547776714153134134686398197719932702676804873541868704665114786289768067844493053557114973646884341786103327117527724684930946231872206466247207060744945173097553840590736640438076268334312636247074962348825631983874415227918590500955133971403567536018415693472482570371055605944598114124856328740857443174422956468140153712645777257074596336759669346624782102006446397640212744123355004585943112643446723758471972543631121268339943688277545386205931596631474390153303261098989950889124949906276380069485063645087292148486003059615981525021049086785423057232037593809268693652065839090771998777365274261069310195496062879832679180775157663790898819769329973074007633728756358482551618596741743779381787000408497448542382616104224713987876221802738208461256546211990457880632638032731448173136005764117471924998546047326734938698854073362844487476749681337117944761656922834841638516969616489772974146978312818276395826688895894078956392360317628028281449248516499967884126697975078269509223142915599132506925269453739856043836067866975304030315875323176469404358165674259951702986712482932278503926573109758565875902002325641741349298441061844355313745659410770576649190352338019438936351982947256579125736962791144193718727441617428784667201834406538617384909971861033248731455076975332691247784096067706401184499483499147630776217771839931381868173405788045466165912794476186023709931399345499010554626286226891095447484555343228389008359218084405186616980973294348887716655829523075137175962708197549941924628451597263388077371103966888146200537718274242043608655210643841806143401995216817058937123142228568852278589496076219845888089087229719031623145831601961056603467213733959838431501390660786469714461049700850332406481134973245159589943858314699040886692157664148649920313014834599803149706172472737993444573028996000473205788334820435916351386405394543666751455223279388836364385409443290564009902111963930006583597580702959539958267928871019832877622737155481995134049516363452922333863628092871143277390388214677286553198360737723147205172419553888770250952443768208383480667524557690907774816613101717792842004990969765514100333541364751301436194775882454160195739748457102773377047655326852814185596348771726504957795998978547179567744169473771053205169354838001241176510888538046395815353627476346131216463462009643766565621973990526325342601684454114752002136587077239327513194358314897654768009153752598138518619496664757040808461246605480944271233165638793637575255403717073404956807059935020215204270771398387755073274425680988170660390414831622498548974384456054685485898645941002945114230611344811511756637782004758107729206375843850660095942845543143771222161520765816051323436965017805835696510540749372113978138162246366602297894694604113459254652247813909552424665366764024269781825528039793704492313661105201557357482700375105926254610600070374666684438828853871028018289104448980548034612704039873236693079091553183643552991665691925207572219155422883512804653470253599306368846141852057377619018794650091005918558919470177939999252164385332188926766348101855496794199565466647510268566085680463449178486740384885110967119839873595723207533578632502533662839001304845850509061398694514089966539489093110007497551993985289878645105949893919210553109698970772636444678188481460177846291449099893388093209537172315691618469790811902997468750615325736254695331383679205038150788067279287590024478969827587509916517032155237271536549716539161720782106583020237219340292823027786805746147623163282694124046284673096818549603847289898067856227596648583847849644624980572344906538229270788191792827958843515005251093101173204073894706082671714116432506601458343778464792524107712221622577462447122286887749446592081696933808860915679649460447347738745052749724334426926355019255423007949033246407653418903067349682458151275878660777808242966269680712501148214320680042278745724864005781950256294878281830183896714659370090401621893936401765598272261282697914606162773581145673015054201468531636325901045922351335781980775322794911545612902877842592394037551184203291333834473375659879257487911580305287261436697434098775313257395729673505435923170418995868499094216595056619311327075299070295120969319943177159059354107300216115882745808795395973665752554906644490583378379420988505431554446610152052733190018273870397252839791639243244871756272428097293122294229609315320902497476832425466594574302656825847912376178565982030495130790218759192744513423003237431594683121789492487968711146935822824141254144357286004187692085081372746517078705950292276069482625646824161503557893996643434759158087598047155984759170745542859952785882693146183846026088558306067875730063118334222432575495743172072565660195459271029483292011089891334493031781764751702863291899205294833840112062412459138757490463036212443291706805448231966984881447999441823460740385902278451634290589359423710980143682430560995848014190873559716645753049411017345987262365264667187006008810547448649956211192313105444582305316085120679649494996852082137994275124188970698487152979794260666088730587926616122133651350642992538567324990964201756742147079405495247320375076634826252556408151117540586853096908869435807231774463530411961892388447762489818750497291152987334950135423734469620909250619568007664661963079586743978807329197566354906893795249739002218979052440512189238594155266894247250365444702842037559255740182871281622436878056620585975629562217741051084844807994564462352409269078343708696038021752373402859278769498171655953524217976077833063705890728185185155744762544456262588787624075868016449868881905459443917333961094497572023869379764596687232149028648748087317837460185020003529468086227193701934107925435742073457981093908644831069032657110233861711468385132426967549450898091287718474348125503370435582506697805253985628351597609377585989560479094846657045970063692706818479792797381980984284531412328578217690620007222398772759947633715162322844305993931032434273913281454541695899889883949564850294124605922695837528641482415898211846829378489096201169245116464221938081515205330033402685495852476069490292012246569538293856823221988709594278843850483688690057946398440993514437831075427481794913577231766472291847176042763347575012645935794333217003352435480110583972007049495141461817863367264888345955125323597200195146437688375435961837633433891781356747582207589982924499843158399781518223052183647114302259882391306306119762114916901960798098881870463095291069236742342398296337963779435921147469703828861416195072261719006486850334779818438875170949056439186850038251302632177900359639728948411916924445529119721787840450653187159579120696856273295964613228571633683095040689494360933940029586272516800384759633859692624806216214526508076075916530418211604453982973909872235004341026877339800817872233162332408063524931330392610979455319579873829970039364449554721453045577260130582856976649750265522345254084091890833345175032868541076993090191657881594624315935666149585099684949804871609386171554675800354038516990787024126504778853194991887903827995523357540998826363414534450845554095700395166917016496913906862321651301925122959765811535164665839990483136775990054390238954255491707193546106951898085793023981694764818268062505478196501237188546071715256484946310448148548655608059684314157216676783567921367452304108496568177269273119998900016320176295401381750211679520975293968845391370575553185334523335396112381077957444464912863679724984183395857610567573780484460795398747454123650244303651877493830660712185418732329282201171490956135047951287998198914663192468383580174680293009203926487344021378799230353421297391766235949901061565389822090694724126900382705634524635583186064961032977692194183422518152178261627731170711753431469131258868692360141921558266580829616011167305949815594770397856649733495698518912305003416749600274536833697232007267354600017405113894306486664947440229039464333608798626677490202827542351597291287856058094934244735484430598241104144825298443636479236597967777949860945039252819549922608513333042016337620026872464157473460536483088560660844551668888063828454008666084048284287203172290679687394773994960817976510678880810024328745491740601003905650432287181233555593233172346207806923827116642476017540818405921430394528598866560193232191800020572599769727143435213772027559326630402438973123071640842473618793291844286201671295511592064378385540194075580187147400013253100613144247533671504042422028597483055718080692920275316195855584762892341849534765450915137774617397166882935924779958474985187875839441562297232774329083244250624832246488509524347010890038843719988287957621788277182442908416433392103535629812477390761401931503453450667125050907809975970920327033839652104604829234381425067048955803275884922178359777606681149159244598422873312724413214789683449403001877282708918139385547362060407834777265296523898296601429131292655420354521366620757488476715393284617302100017215450891326453091934396579464632436843939296434312890978574918196148344363989656501904481512606293481499174219025217393849325914289742358783118367829940963101040963295924144056438017704198340175624962745566757297970111242903999610940452414657801744050186335318496132933744543268849164287161975900970746833934313500012837212805120939314424419084250360451424319389325602113363510691413450200396875678707179460344447335867248589158860706602550583140028377369793543794780744077692601142850794583686025971330777403873069494739608715451602700583175196107206430660943910321220445592995813560630923378573794580367683518565805858276924939992347467306050924083853317016689837614125309441347456636249351944220518921332052357982816245209646672440766282159018876183214537121265222167501096281718688943894972466314871455296990731770830087827012024054840823465385132647206885104325774207969881952043331091647766206433646981056840351683846723971242766784093982653455476570629916235996103041842864609536754765940760000222736615849709224826770697567550673002904589329977579796239453169552110198594124035165474780002126585500876956545040099811809323951247071862109306443091517354487251297246454154855868333967564211750683501766167284020834315285484961847204284862454503570931161863928812143927277601169444178020123975692695152058321692507260767612141699232724753523764530659507010387353079355431471505662885169745263572433757947422549676176432241940132763819766249436457194853989248950129754589032981184181017079679282615951643686140780712172897783041107671960743236271388246361054759330907503419569569963484099397418932734568300002770999143035266878637163003018282796726075282619334146645562999647319292506422942930536343090441950659338319952661317234057467778443740181344157027214739874642487579186597148768532898901966266092177923395966734228435146776948544546879626505512964061697060678913961340150864277110002056602528531929075770225622562677451434181952108460085908999978982911261805617787514407661039106540747749005553023682845924114767561900443960237060754044559263636233944971318024445059944726671755782315454665319687082439940164174542978435278973118785886793043682420330082893165733606414016480208172573435092943006134410813500354092344325813013095619403328933461116728118114389220311161624549985102243918414219455050303979784467003373349608901925548746839006908784088627325705703689202565297564637749136783836153372308246155397731189546241093246209690095613069700177023666111384146578241814428306520905527202637751767864805657718402472905848575736333479344151854571192915979985174747698830550854798700662338503034518587283108188475105895263353577033812527293630389470324028896500814180741656945486713211665506865581109838735740314704357534634050259216421225153167362497952600599468310427341949705053859623733008038937556324649754437151355995729833946738512744905296743221572576429621466365795726400252670834471591809526276428118048506290939370862508130406971323566401881718521335054797862357887877476307575217756178352564796054593060771912257721600748926844080576075692778203452001700547879684602599976332447220459109800296455696917804016065121742851811413297941175653963012819091281974219304883645566873872536449230351316865002320563626918372803887150297296580219165196783505155887992996942636186366691147143753730467698990253891750844996315808913157988985981242802953286288916406115476602089900267039054878021383042848861398034441099979469332630187907081545879600371035710635688071414912267616767672431195152681711821741101682506972585096661769383194028583875679116392682956391688558169809159031191001634415850258198928908864889127959260782530119235831526483425082436003112107453587594823045674673397984425492993992654894345570978134899161035302229685835948028429200684306853924441178341199799956470564832469141164092509708628124373978899494398169440475087216093030030054213556062960651645724077945406651336458037298141306048372739463259009239611574770619728954831963835624955581110183268462479463620334806380533011986938214593549340629511076204631621037281092607552963187229212990873390336287480303578482420343454767580961081440946217163814105677857111351819117492754159153220539244443243345167713905968707303321337577311363734313933513238407419884763205244571626492517471581498653468816323706599255080573767489683153919187751893958462756317585426484528153952523707088881217083257406226066088656746300024142736671497126377255746212480725749706499637706667122116568380701814352129941908625896551911966602255756659950142945054504907086733522062120694756795698175366663196850165541655562936817359788270845199481205862938543257896811948797625946819260591652108647094676803330812932433210729239066830159021304208482282661300007330339952885835746407098334383088256373837839277147237755248716469727318267809490324075128560279133866958481720808036105511695032194675373165974976032272937747886583048719753295374154323703176116383794119847143049628738658610847686526656007677261979051849676020723742597926251512535537386396491677114676501693789978839220784635296623226881861316564601489474105082184150252961053887777157830082745309487311612912561613446595067523731359628762316769396529860833906056945040857192917282167679666592293283191177218294856972814279943812721006821175620138326988110881972870802885401496511590436110028617792648284180541477430382178862959183436092495152601411363485280164005298150035054667247028684328624441124333975940130015390025538219036477273206113687777196176725652189313055016282747418090498610310007840497621779087779470595243899502573944586238295263849310289242532614299403541752320209430452992436726122950302316492670835291360466256668459237335430419677076700298629183780579840822664372558479068624889803984691710259995780710922968934157191181849528183668498828198271144738695290035224771139447895754790798609879319946419681723668865875754595209017130522792177455900022320081139982493305930124492642785216986092890654661657252538076684349141442673804131401333718537963139189193581766859836253619358598769082836206745454752137436912264192259206208999301784052618827887043912981709949331862199145793988709854176067011854163479533499224130723973942150989264094816036256896266097996764723566819374254585815409389405283957598822734902321275684523359390561586148564671161921413431709327716905258337909850069342700405520841244542697255433940307576047922144759373869288954819860974325327036906929722017380138782161338449791417565737459701133044754957418084831354940984108576747267052618020147346911063745615967654009833237144428137594108881741706710153355440367334687897652325900498101683110567373150413340295067823301996534074874368250241237681688984748490203451090151134347935927030473697966953995480354741148393218164675234109841747191344854141230893590130308992838330609748354119258885084620907393066879645177666281241553645802164624626177002774339109693427284507812093040199962357846023821168060662338340346560171659251658555527150044297010940207230048407504798602925993466602137375564814168052557165609604526427044482406197323055208167645597259010639171537554355727570086976524977029333833599076835623211967622437103704939860304017569123155692785738064392533996755273136282107166295503575008803084243116969783035954462678995379973126535822756862414067227675853632282104828600997077982701137216395430408702790709605997456942654697772851502722879591344529174903951734213612065368816516654896078050191295407088392878783331524619458344310431860606525608180668857343166295342933822466443222376302333057139318646411488565828057408408966468535512900743812398202082603346851661953798304185774657153642475415489027353356062745143665139907796996457275675728657866523000817617899802096160800297596651042290762387900800631920462917039483853418935977422130387393929263088259351233408110941137197916486224917637697784097596391022983108799931974718995156035746021715929436647545263997778749648856114981498694877757563806090636487386533787320570264311614045197845785391478094031755416272938752243403208827252929617409483051188888213828545993398459371708082265273138277108214190060211050551881759636986744772016588673360219550436916811899841441201453241510531990230641278184580967577610014485283426052026052587050566157080353828908725703023407575248197865960019830193785018938785678505654532085041534193453963019853416914817273163176299760273398833773970758867128508778658021044503783771563688675264191058489170249766523908847478960204429295596907172369955858695103083576835734639307293415948995578281829987257999870714217970179368002544563449398010341446088024052130705392533779225160952057045070319363930827574424846834209157886610747122047008585145592688604209989255288857075075271992497437440339528486200125879436945295274342651403839157150336397517847353646200959856466542664306455780852695184529654230550569426803555773498935490799663368703726621920177155488203776778574200769202322063323630121928054813175486740818003730453114363565874213185327671280815414837298889081726816490482383746771489571172036980034523726939162447361910714563883278414311881357947593164780741011220631332834090747754503194734971205639977203665543154866146429086887165981576586323696536346406991686098528595535807768578961530437857502734675579175685205134645780646933948667776615621973782142157657017494453265406699381835249639778468611950305391673206454414090816010996909864964718445058635157532509460188910206021700276290450713726641820429162609023966160167848232099691830700717661166577790827010058948599377058692915978318250610028812134941261480186788416658935228621521508798593726740169660589280043454076934176627391705306745397911072264024247158730973649230563610917095992431399975886997367052175499978476152004060931725897937296674278295975163001274501954467401872950745092642281179064068708302638300969690617192829613783578674141508702122835010415941717184133866819772318226979311263045193428122036816045725649959728524391494311237405656453470314012791196494144221680605034853830446406068538220020514289410861628334010325022805224429514450443022124281916720676490584003644769023030727871746335845046917701394803674464168846253691658641458410097158391646619420474214175468814972679106120023210338616727527236322273268208464099161290395580939287596964389398294270383843646089084121286390904283740982391040079656763593012402926375370057023620578869322669570442897175706947919510640430181219854181372025546153007970764618381467449952033979724675456217242955292075002440122272582588444111072075036991318900645897757976557711336983532943685262635017095690297362273593174881351706764159367465669043430792409461851822703082533558703727010541132951398654068646001173319471229294747769609460454745580058652197881203762319211760326258679849937073668295225704045304476767064561482901342531505675873460111586755445162947381106647328434698576138281707219449278457745398388367582015499026774177294646626878832832137118954373138635170445126874798776293052852465365788889606052098352613379566900866177878050423515856897443327360756765795405363313899544050965963045795366790582192346701611636595652744047494060348404518677731277369618746239049681847186221910838669987550179986358755436966464977205582606137866687272491727697655650348115228022864075759550754078364309652842313020774606246940508376711349769586488351202881461232167315642621234119087226004560968210224952188728590823090116702166760763404296192568572968522331948764217408927921311764991827364789778719136556999873266848949388703346956944428848951230251596888325566802666829233682447845619579196419323185486218488567713607912639086578512268795459616093405062035921222515726538927983753029346093974653290094006344279718927121811850485854885254826489787671367267704932310460857631013075500335442465308111796202259673980667004531479866094332588441291035911699137402005685340093955710537600553658372448708116289556120913010914074357479742234836868505951203702699033643259114760459216286833945207915390812348826490266604199378516339644211335119712714881907904611103657500256135556243797845213451980126144823070268662596051330127716203085866452928102456314128939950149732104810274677930948273463393309088397154220122051907860503928287688133136209912196508089189338509528232019204729060393539730347885233594342638968643720277264660567811466910119995452456465738884291835957556165184830895208094360419180997688851634607119351519046332375184168729220161569881083287240499313410434323947441290572371910709193578153434033569183113860224294079333819922068590191389349622062849820586827645739632932790371085225918005900194121542607198987977506337458245497373805257741942311578432241716161479891390185137103169138650179286646904215646490179604818049457676292384899764023188587611187428841730220030782542767911437606506316251337511752815193119635885621041581938283750096294098533414530801891132944002901735939351246334313804334432147834554404461668521314573533191970136325593630925932271524730665622906628524775532774288178057603855086645387225861825669325447708422389256888626579346227632654845237255703609250277697520749155351265070163333465557313137160051319619484039457314385550480304143155677317778274889888022075681761839905268524160815412164627550585548266147226295749776720526202263841355309816802542251125696905349931183767454547171152762202883273950160523699329032231068437303388995124581625244294432963025970861439519173141240914599915214596736351714524355466791813092635530554664970521641911527175754014775647415060821785439534582690404261308276333762818129841762384486836059550957835545208572670230770572688069589141690651735361532384479481676345798688570444358340817666675455262647675076027608502275194171120412689694866495254338398346972655150111676831709428613489604418335249882655212152183289003380779685702394921670986640839274848413619377507852979402031761913149293752166739120166353057514881321495666049936536371799305705918885701846331223111769909321647633016575213547878568999556099338949300211302484337475232720772953129860735548614547294910329309920135933227397636279070440170868846779555015597529000245182011506415541214119678073999241254895034232997739385889521292083461687255732643300287639078025868178556736668609217477534356152926478569391402502486009159206584874220559270929452713748004910484728443873480457888222006629062245613918587433210554340769143225613073414929728577460095282750684505816215951970589969848455964823495802644634521984332239785732733168207945141911974029632120770528222784576505667787352978808137189400543749123741515858975485930230230139154100309212217489555523408525204382520128108190786191950589466387682384552548440695996104828029636972886567833539145997667503165119118776540723504358416938242671389200220036839796586961118428316635309085980163659584717625164474130619241207177286080880559304666450482104129922688272524218346689711818444301518610622605295432449479000785360423245438255855394006892113478602675872295150316432551495350379992289433291697146780164411699196327252956073624363118748128553469153544282891200211728405611218956283556988320876064745705103900028034502118417079426861620258127345776282999544532594858865102645467109889901113935884560150648442569657989234759523237361702898979810998999936441259311273924936439634470845741540833773157277558203116688813926782143501467468013935110269508523354319728461649105401974883735502316664340641775876390169493561406924192326243248142686110917997702906961563804787853824933019825022316945685429864799689846680819970234667968051134399695706942839373340015019808166811588290755649078053383836219116879333783039800720974696535200382140008237130719898467150085372105968205174298728626300924803513610213964145263985111979559607373023460513389371533494318992288979008647138053968840827107737755301181434661606173504577255546733848406834103453639800348453090556800692265083073337681311703756973336058710870278793382963778998736447048528197273665213227241184776259198447169447779865872449976556623362370339458578638516627037811382447527277364766043047535455843918854411709461269326053082809622531806387062559150500708959328747865754187672119878982479796477879575015301630721775584695907954059314479502711276617206567046299819494182957915487515970913612329845587123124788550668139636792543761069349095792017621897211409650021927473726577355823379670339053224921281623233465476957182726772932453219016955393129765125025482997007315136850386186249435802947433384423844515591464837581575866140978790116402633556177925268325501700194397667258865773878273167369272330314010357484590678284800991545162730871591341651859959573476350845887791839060888695737124250535929590744465126026608086468953569300082960575711785663725831275610244057427369870040706816241883430008594786106593184866235526893380251873396830169412653483066626219159879561660267970606667404464251872846322346645581036439427898377793119421862856929623993967098802529857874277805366558857780059089368365567659267688533443669498645529491337457660079145125637474311652404996449184125110746647409570208479888679420340353051474221349569228373080820607207426382371488140113788876264405892999864060829794210740528315645073960923943207605938949694080732799874853493277648759888598518294463274539568419296249312023440942659906174638330921737101550809908298455440576511622425619158972669427084931550180210068797073711112892814784558936036141107022867335742612470303047248253208346590627742681235718970822116348709011843149948831752355655510186995141739856412171919597145748551270178636547554024822142165803433412735686467003978973256759790631329351042021806743086149754230369920225827987593564327817004817365555122852371867795038053322635941129321060421955622470790291296976740979018374779172152536315715781903224340024715395200146075785285356740947089511997978600187171652496202789351390522477194437991744726663547281282358636737765428455689216125880118971760412807210307861115235712071477194042117806580301566258626168100890916681953057989436925938161259071953625268130175484886879843088727095695747354180608137093610585478714575793255463414976194945117674303200546928372444381796078835875340059189662089994462647991985366414594840765884813852401627978344301813844078247139025849393162791475045288719959761354217595069988331991367844186350476300356459296270704035796209130589215149664214364420198806477602024890711176893603628061309368339552381476799792942611360227770997022855869519035106776337276707106649715945493263644367127645047371164234236069190342014419025176539937110580314757794513764222802268213797954110132041371458280558077247625484422645031256489491446336716822447360396339614489695252343072703221668953585951894501149745868630075605083771809368941197521155845550910098007694231122836360462327593243093460078446340444320089613771412803136730505908018885100330514727167014418964242957192649485874178769830379252790095356462248116697656391877228473180062238440938685832580986486850574070377678167449498870548942277070706736396546909771580911947659335196310942128464088215143845401975593170230518772590543599146662900765742104569496849880692302247705588608957111228811681121014154736624515931343031228109137770962780375451844680723859016736323678025272048801271399636455715322560804099054552382077794262673556808589064466781814242229066912930918143993385414245672420447153610272702753690521263931604510980602353245152596900678436217347003822406591759391815857462047728233215995188895297332204943231839274646069989476062141459753751017884619804924921436381132172393450344572359011006043626240149706094860533471014542613124533673990472627805443107424947567294775976499290085038546279276103326280722270200220604593385298607934506707336960741491172544671067040169449204689702267466573478746078779312412406620384417320729494202930964681488251496297621618425215780825132744846106120953351424947445142289356156112613164892128011633934902739558172168444753128614172078007736045507111450621078428701311239907151292733006748170379843931770133823520025034699700768845879136506012357269573096646060865739707138714330036237896028225393586313251619958290577648573173208569485144174643816811464902800393305489723911087291175855589537586068725113355082010820524136089658558423005921647546166696675663904560084392847224489133838734181261173987506331367181197760681010512029558715402341460990077365124683353864372203358252309472932897413491745130522686939225424277832631956659273848509057260036986563654525463807329060836418209341972326510998926016926175368676682075235101804396521569601230372559098759165547370734842403248280792946712321844626525717345720758660002524634320080913594116924302366180664834468725951375097539573242409311120549853972276983768540301434744924940047462341937279179584034076490214975264500389390252408194790686583864790808078542793724845831799114546729064952271775549075194837024247740406138415973961987528738730264645570944971799614729619049125951147200919151376661951057444842841878069748299974442080034095122458080857381931816279926046510521347113347568082772078108263360233833001952450093038419362247409147504152010554886583709271090105546455181128227107420656252717159102700371707259199839991158846539975739388999773177570408269468660751661571878715820191803675078028159244538988579145352404707672589678260939604488200053023156879098467009176549468493992030091210125598759189877066632007605851707141648462991574013615688792638312761787147507158076062371037489998123926455112245611383709373165081943199960021716575651286786840975667535791415173517969102773928070687471766037805042403703675342052360462092545547900604004236381696694262363701914679257598435519902457214528928089290686781773316986304637759611252398465479411117365916902816115731052055804254229903572860896545495173772143068911209030343022485473301348041924268278040854622997870822704674224865602434900751751151470631709878495671008713566592648529034947872686974812026395416561335733530807918176420940076138043887197504716308746614527976105361748560747352435663135015947077595116273643950446696346142882959535776464000862768859545043139756716667590550113548080577307121905871840302377923647220318019717036128010896373837215660023152410322940272754016213695113368413646010932623652902200206429082362903080740070667868641297819838123714887980429885764438759271336227898797669750108785912644215320224333954172370189104547517303900221875125920695626472938658238472368536731498086889491870131285074940542082975145547351957542754237106861288512775144342006807600388501345282808370864799023075266716952911253598889389632998554326020903940957983758309927536844251049892541566027723297527590905800751126716829548954544654838647737598157684066008970882800768534547370012152285448854114358685691340657494306936012806117314295593493257419498287453948639158141117125591524961983722887294341478461766035241019499382429497786425146131324319859215534012000470832801199852322596484695177889412568659321413929185585816869267473299562417935843218081002911440064712242203773365192694283673542559173232071812484709341709263778919525053563913537502274627472442544726161647861906385811745334799971448512193826474536846187073076247179387342488599142024254967816458557349741975996495438818098254618943817245659847669664891035610729832707086963171754147782023513955416529392696080223475216715326412842814115058890163857325116339072224811299097601387132387929892281767281935435133140245035493732872521537946094682977068744959960240755508127598012282340775501095874668005116702167204918642790845767153299573674256546156606260852779357396238263247342989087859937965372619474997164293823096522489551011133573483372987864083725601263376206319957485938172242062043143887424233995539896408367946677760459165293079959228577884288322259568739104503511017173390829489737085050685422427101492465691796980132747403198321957309604756219240743030050599147284059159433464159353433049285981333149592674506213479698306750265462880235450663136842617803588590978655857102475352700581330447156748226420556422994537243721213361919390830984457230601418629927606930321950071291589161229514419010074144894445401385207003162452867902392089960699763081006790667006319373299263965270792042461906026405795824606878237335067618369973241160692818476224343045741845769192198855626751703730949742026165646889116540650559004531838775396357214470234448290333060878391835696588101424574190169306268883602962563328017774835885146413691316030617934113890355745678187470971073728226536123082977207902053333396062235666275452205737076041841887695341367762291562594690126262177657506361519611118096439686570377082624047437274486553152647564136862135678875759531361330007989182115153522195473364480169825452283346817630203446798160389541793557959254464158342079129510210806910412202006615972521307043907851809211598163312840302003804941139073931471920803516417102030978221189286416052839460428528346934099252252055533350506107709703662638043186175445595128334609420319948293566235361928690456167490143934639320400240419636040890794460943221224096214494843302980043649062751601623113697370107039966333710448588444400142771064174733187711116918279313077768063797018660917627812981328378903274172261801057785040165348539212333376556626944651731868264479934973604522880637126452100342352536935052610124656396828627726087167440573760742188749502642558059885054116357332453391873837447976409332462049568613382383041315021491830247323374158037539891071184255145712136094513894252103508903432440532645404659776625739892268454884421425931331456412594502918379114541973860555450112875916073117927362563987836291042527014804357276692237315946837786747986553050932366031945634297385223834894650942996317956447622060017856735558941262140274522639933049194179121889864103115373506257877573318539577696264441775257263920310267757969237432209209121044331111903405609231759014216331876059626251085739960366240874208333072009486400899971340220408328396440816588838372819628371866438120111192596047816834931773780809560535709522287603413106853891827241647603750089439584319301573543935213331781525895526924579712597643313700529328919730792400047353136615269577674792790612207410008498545050796185500107352758078973062286159367010445652595160206222009108866530538764534438373502039519245616411611612964434430482636017497796570259740867007938997511982253435441272561528188560844988071054249925959406588520088405335327502663209017883570137552646133379005542182956512290588624018469366064950870048020061596022079137837334090340773067321932820735578252294963347870417710545046791289013915332012151616945654833821797386630157145773812023035206063860185706550011674891969613444622659324299185510732704969527275984010897440403209179854924949636406376720442713350996426392902304694559500686351679560929587280437513655998882831883201483617578150806297344212299603701024457025284510805805339615564349459469260199325283277127100814614207120394609035452850086886215919808347158888369257645635980553274446784932236270719709620698356794255287571426684934462809960745137503242080083538659105974766384758201027660826270003235864995619622467684889285450457755429573905864765070379474431362825187631379900367398827730682754985186778870590379502981781269387855510623312121688011123150302040307632677057303005533601139451310916072548281178537885169725878553783652011269690601403450634851798621855438572595322621872786656477052209977756028277760181736126124002729902923676842822923791318718240156961761000106074256430266152796387681291390873347636164809660758308480723173748463401989241484102976254134290111352177728654550171120581503897787190858353049196462848189818357358909039498419334387690359710943208712067697927509044050203596422964740762437896971772942503594675808933524945167762627546714117254589620991055203166198657005676656599246983833245191213904095564258969662423235415499745283633945787630143145341760017344641472262947000920162171848492833900917674092401372244962497652864960207273136189084525358725966339957123342907663108906470902529045003190186733506056929507848794731014135556941700588217758824412265534780147155904333086267636932874226252529983492890574513425317463442285275007739945441157472728881444607284422765874120350053315905629706286375127282977163506720583802051636771227157547423898134124301140045051861048813036477872681715402535008732083106617675342799756337457527960513287791573294044675434276644922707030664674498514956203235921587310178826127723454353235534350766462883566700076434836799437207015093812326252243020946526231583361159690983770180398979506181875965563698965319901422825680472046154561055517900380811633517445083699326734979970286887986408592456019331304481637419054123962258920447437058100311400171417465001971139448485419504685392474696078210320997091361797991401072687047878667934425421983473466388537209301196477760546641320282510888692401529609424486295525278323678820811900686696820591573434493312890402719145265487881904016100729546976342621388455818717423416276085012169597091185605162062952602624126042269265869663261520812066803930641684016525984457633229029900045084441191878426471940670812553780406838660009135561012371732036817026669878284386366560678313717804757365246203561162819738317674584336416706824559242942712651805969025019183037925109735220407786376981573199896129831548358260128478752342188014814420062347834563109374020238667919549063729176991434770022749478167968590980538139335904864922161512894964315989703199476494049074220253810490929309201967658031609642044150802493533117309178343913203887310009606661445865546239276377514667422485215414400070595910613141240565692528724037872083515513366158480928033910985518382923062329120490310299587192051221230354099554502941365096959291187843098405015078757932040290574528319452918170649478373248119395026295880080052670341232739096289817760269248674425367959776178077230731279416036584936220970380131082255466113410273497987685075018939070547519722035872346004966372580984568803245391667826616558093508558730461785559030087765127405052323451320150358005968114953324055287101559229913707783743453945928127797864905985826633816085667761021926857104203707884175582560420458883608651899852519138942223591485481855643096226944388256972361792129031785812601181395447572768304041237864954815088388172472631503689778113277508976379591875482535757526213584207143209056675703776886180941120646324802005984554333995472209645538098707440007240642990751413498737964767604144856330178758849489628975715267861191243325476987165770519549232496910665047558317732936249833428895075734250418849803107114396682007713884901471801078090872985816577915181084136269885155933736262521552549224189379189106421634710996653600832939804824869653306220268090418343057655607646955357968844437244031455362420551899217872821834654119754720544683635752706028776696188577728440626528852882387298045784972467950637713132265962167177149373331844100400624246887806744639050260534785173616608558874530661409163867457923346112424157316065584772349505567093885120624488792523564249201984566980109437497802241677239364383336515972697353222911192914047697853759191874436364065196957904969539443146546824708024853142067914609085389163971700544520757718503117094801161781816915451332718966711075807156814699453442864695336801950107015495441027621077136601116093259341613652528958665012378345340402741992053680435608524183941733339380490845837476926583269001402040623021278263367347380585109457786828962047214918189875483162871631659230689236345146585514409820987835234023797127231251732868664576327378731683155156875254266793176797229013942812684802976095689519423033645105797392746976911946801606895467390341455818537932613518893439088649367440938712960906544537958315728074835609998174152079470879516264479763060485243916294151971054916084308895051018444386355659357966135667337419816673427341482330736030332403837719181826639755320440450003692785259433439384757739804733581085760759564561028087859124862562055315436791307277243209711385045182237131564012377548254062343942769482729028565647834682169686955965632882877428361641629249581348579313238824834956945917980269183856023229734637841109004074172793251169255926760951798319030836517802682453342807847053627988084902938048057455707455778295932512894669836723910563186590284971055598081876229866767168022207510948863943162723012508148630512490170243860127360117434932760757998528869833219476540179921086697969698375423204913765476112581104240668646660855893381583629290594084457941721406837684621405488581543316371807035443636174757134773248101946154232464972059283950261312426613080233276940476085405146136776425440159042486524858405754936670544530694408476383971037034748437475524470829727178064138261027804404969645254867601099698636278407769999496764088096812107603673675388412023858877063823740767232156903707334773453601157148027104078496676748841716548981785336975611855736748296153219034637177097256832484966042099925831110220588398708481236479381127996901251087843317071599157816623287914368767105842417665099672168050616224649154713897612815102900249833115206957748921598442479634422723000661191856860943218510266872338679559397623151656959511098914670958308385688359638603174447478415338816270774981517021364289598122123617292781716864477189654926274207324760625160065016004900342840312965467072816461974930079845886232832997338979074561745637850533965579983191310713064038227622726975319484489669937253310840201689139773858671746455960757261848793676897975377774627232442185926068523920777349099616693160434101173731697613271290725736866098477017243595479428051136482605003801113713386180363412230506548843483153579331722707301978034743021562446279505908741634197613873213242184621900700485609597742542437104184709677348294628573391916199542478963859214123454830368549272613658192061844370111678872296856172077957406911282361575930072605480286926272818537011267501582941479601243622388395300950254346629875935827604560939908684742840177745172367101247574004358033502530750692076760110521202822510697633305038919348861864542800513305176283311598910651103462117792004199006651338954464003471190694568524322735025969854286835069915484469100417943301900120448329302799572012678131964773024946844567778296971605288704004515148022069441968177854904525048877691378905267690584205532792319615216970530584654245760646428329373305502054439789551102371746677884720587007456685668810174128872847789887334932336505942305336219441507333367824219822881951392589956836259811084762755101112757613788457045752066876730017095302432872647218097866402562488249163871605414096713890696334849262559411551803417930625638224930276379241371659076259928994797314254917001314569347334539205868493378042005745191263842306016711846616903483731595408190430740510128632955011357752893628867554752554590887015953100579656814768316853932776239195539848759715809927864576824182927249935391137052249198572782800380983837226886567387951985006138835444222360164848027937760782899712199660665205143046601915262884673015007245385479820334316771108153367382398656490786975019137386060543699407115008747749680005836927174080729406482005015768397914170444829092284404636029801721071088347432823710825804924085637420927515733632611875242421676870054062990395909727598415657371531501512589872105481884676218590426864473882892304107589247930150794175039866844563206565005615368354111449592428066110388650612022657978359203315889311197894751255461149443361498836047959756527689444358509244905852594252108338388999707893065253915261384740099577833131914084852796086252469815541282738945457550902714474304787356434767411605454717540565085538469173952334945053291291476311789166566021320136950418829292236889375307941619064327894963980584546091175425326177721866850647278508471990417581738076728409424345523030156883731361275364852416487961938216227193528773687599689354746914870412045307193543360505152179134607584167084670191192234514313201701187799842267073694197743244039030529626287343383752677903765335210100965082016192722186512897655151362047037218401068599200934755133077089931592161318150229719242837809359582358786146451493384194241443677608809452926746716872007044620267492478652355136571965942192275251966644210397547158193765359330616593765220393814274273530048995747991592338318509209452477634038307696708038134413817800585679451604075655560272262424487111795003682696332200867845743934234651513691508498687928522744959373266347698346853375108124284956509518137949552302082684372491063527932803896935282885236259106303733215532157231946885814706307797163432875317523384783462527565131244719319775797294529799256919856187324119744070571431714556104942444433917140871091154341048339013209092679768636308486777308637489341936017933501429464373409465064950815098539924959582626639196442509697099863256449589645348714855865667505802586011731102365171033804997482456765661323291823707298906384814593653895219354951835326176692715743861010312296392541360221306308647635122119339106440106261435797816222317464766178118687120629248434962793484043451616750567206127506194119060527336763727823360714191952657454540312503912399948023279714030377956421397166365218418290035143219533874136703781459352937946919889286983433713604304469851802521675645405708542350420818619282447184334171714511272138771266260716262710836820417373001425443602506383226770837535765058279811668132258202397737602367743080097193036248026142129001504086478057857208800273642824684870101916792592807463955905761840727704781618879138042643084344266288104032904262378812799508300381838535937273273469167846182869356496192109939623287272944257527616688622438900039116604954800694390875310292646140082957650401797041009921477981706365977282317091632747532015127806392918860905267371943862251859544456793650738392068166561805557008545908685969619886820746159116611468786840028919083702074135184124578986390768108843997350716734189919230358963003307601854678681703979576169594717095519021015941047729896565981703726295925197526272243347817161927363604686008606838717251711546756215264802302165262635505051403728880449763393324924190227007011779149762907251130971017236165641988772731086418290678140453179445510745743523659651065496395830744919985766652047686584418741000815479562278154822184700253138676287336601371862145110718785021772259570077464794624732137782995526076465449069832430834370212291720088784114151659858754898875855672743199588062330046767018170211778688828123472903464822356153138308437568440697645254994876462297879448780187723970643384014655602717127872628940746858680602617346562862364424727095406019598463731815495792959456438576957503429380869005064125531383329027073508840609073985676292708793509031421083414444340092390628465695078684186432162565796531553358913191917750644471235356395382701916729798307454003458622147115553236318598863588866325281543146633709403100978703650854600857393509001935344202506458136477095940199878385007464165714248752285205496077810861018821308948649101046376046967843444714341544455940424531567559549450867783607994014177180629403405316648510842047432363184378790053714490168743211299073598624199907250420857717554605226760680978021652159022772224773023767925553373200149431398374806621253978710458729711203215984923592385867142583570704174119567595256012323355599096079768254045221673482642623300490817264781610420500717367452554256421902317319315503908993427152349785104396275409152546231871521307715223502711751250806034455685722634066483368439423858318218111817001233015406013712448727197488554767677963708195859952617822365751819686166287169227909428891063113397962682072073818471540362915603034309841173050470081576674272648529428226096505284083013668690058838007025611393516528721876857777461644640501039769142490648661883578650400110735768043432561807893230837810971539059617731516378558219179772865304045885678625478911899029561440350358495641991333333777615680033454700948265340001492162907854097672048677276252392465319092918733115719155654958367544595613431614220598436521407430966400273543571894803288875908560319489653244592011860792605815368037532845659595221117327407849065976753730523555319272395160199208553068988436221119862215629980706629157041009755965656015295091399444224804536549809761186546833222824957078094007875642080402371684102697577670675107900797810422632597104196028881568448745470239187875354397495751729297338333916422092197564318044007337212087214921790409874287492507798732578302262830554577470886550163520067115722961475623094259047078709165933543111547802114592098522288410775165466513597631705642618292955579551612623925125402055503273275202437464895444631648221312897569000365739909327068850882693576966677663686769667564574972005527398862896203150497621878101830168717622468125519089390671223450805919656629055270252974794593836252847289676334257089665225720246348794060784257955605501823198221771230737620786924900547348549356279310686771250680931299867396184796930169274467310250377317751044274884388157948704990848893901433318643069232873761971711872836990902798128608528463066608499949581199095882447686114679043053917903918808321247400441644130231654527198813728436098974975596035240470479615395351946019061088363715954430737142471452358477530158415799645988740342936242678771693248937637901330743054762185034978728580362921994292194622276270447536964496726671277043700641011326359371088814760640580265481390974921604105885054594338038925656930465993155055206836898025950372933680217191655143111273194710244392694947277815019413679299942781165008484173863159218064635692578877348339322951315156828717805270586092393690165465591697483290347146597868282915527743387336568134019610115020871359445797541912355453149447827172668092444732600526292023997515360437008664205517564421836380594768408171516549693166767455660222418561578819715964286444773429103563317911044766312287083129860781636905489917744378765220235786569692128306950241809286358219621613643044578911502233013905280419118203383955568360647135070357803077528173734500081371928020580515212276084070350186060765880358666833774112316383443797588777871194084022919096758938408039930613726905646113557435905501955470920502037739345066740653458650354392722937528357112219783382197476442512500420821332427305718117736520654472854620499938818856090369587600861922220524584043227016378502833440654167074834636012025333755578472857326053509666761091912240767612228724276403311978088817718734297289980169022823318604029953574271681284678962196166877053089871043966068520857496923409373530457934572708310141884105710668882795438481004476377944753915366927190758278672361575279032234454653461129269599448710296689021960504967760985716746838518070327432969176663879597080532075606826964568092104462716750468381652847390643343516438566099079934515190937306238947160665951972413968833644636785128204787183425294378626437986244270016446024161349919140462595425259489636562759040081928869960294022570461109085290690999419461831826064314524499389813805229029153792945854137639043766415648335752080119669989821468405753981390941454872528620290532524183425950497884569817442625160880269983404495083990635688083049397552716222965684926561566331038751589634918183841877416173022791691689914821842736271769832050228851499810117106364843872152898055590212566033846572421966176816814438048343345782675984477560507723321927121582405665560136965064736440540810865127399649101350998282281943292299730902871425804592696507335743555769647145088781878475492785290498096081091254176810640452937418951838813383929685626869044934098468160312977244183273290563349128675067355663409931389537296886792616512665475912333978025621103309969147132792870057699333583165111317142980110945233899309649812548345044184340258160881367176613747657280542397261344621088540701856159060718284867064963137688670217753744824024146891553638976015319066938742074443809657888678607208142967543722972492717914407898459734753350567526343982010541188326560690043369799877522419661473296422387455791328162976834043122454378166807702329537992810767643534923863544433666641591847184599283843546212141072098023367011422729341447304306631479941039773902671124886195778319315852463088490105009187403189545409212141439633149916786472556867141706816441997812388049299616863930554563952562429419717569079466691731838553248018437465660960536897330551500686956836938992300668793546190762357247015730347357176065382303462989454546441675883715180639729798043127447218184221723312007703423425477322867628219708082900211130119079400912578049558052231069789663369309391755200447623067850551324465858025642604545242517986507134302113636247000139339572508687752310791626489132154249463655814140989200819392959286420234270534808980423867550864642988717023467230995492966445947386908674705496802038726359410277372971311135534848012086446271638685382771747084519884965152117314141396584241280900904636758063103266938688229407932617514886039043871520055945521675338970884778581968844107313782210041754217876780982864163730505594847668438332244541353755265073541292315155080269690018382126340962710907304965923620208223685280108030847326133250007792989494845148904755322969445313122793613086939080949577579952310607318793300525114043558041408112318847138450299367363000931524345914291165081960970333982360608445638247063993509986293998294465290332774679690746482056179013439916154580626030791114568193317064956328234159064846362494015956981062293226429182542330105950766779021469444573319662915709414130563488160861838293432692133264072201050686001801085826896758141139139976522788846739990502563152575485365773408975097987421253417996863828034606194118058637604517333061501297826142160430262943651203450294705435757675902637783814545258461079989710563624232932001143453180080220302194122440969853553519399044636266855593234272723037526801663997070087766129884258575033451095542310074772566724047472360096146189394742600606519221307668792067018607613139623692277711524128149619338494725795726858541525194466643865934746259295614043370522976795433515013597206728777888764594257913885549351505364371924598583667135996880186853141964497846209608350431420409297090924781799790571035955300139505389483379301225242036862987903351657894526052934636775913706204839702725121514378240992328089337450372340240633922207467245025260897250839236654728590427563338504300232560221207064377255598462927421305321196114118393779570705439012277804319973009969724226266427569820595669782956791972874169407628862113332080097788892293642386382687705561876098270850101773999292882686650280300141999873262334500451389061839063200056656222966861265024356014863247550193328722142188879476452555676278784599128934451236828628496491067855708166221053523463703848112797904554914621731882061428079618703703955994870090351214079414079099810302978679596390505701359681166969491797399836498248199961367213420462720415259347020496664270297031649980467893106969848589655214843249388082044139643636788157682714128139465479724563616221442895176964717104076469379612654350677048082233722726741945426657453021577691370685873557149902949579283990357609790269541918641514697670841120152939572324794326172127350914716567918057250265500389373739669815446045207032543210615219247845751966379207316058412611388797800341324949203121460650965087156681275137782290603198947338067219483969638102100617361912900546403870969636602076957219502311406215738630427296167429016593456012975333325711140797687462306617504654210356076545405102567009692514986258328888300459805751484719303173301902771775048246117782520374406476182677162970235758020122699666000621808542218411084490977669578067477770289431299190779599843255816980536402051279805335947165428659909522544366394351801480350458191315846847456430737256601945535216233805541626347160903341623710061839220191112400151907577697901236695214030251956346738561337985163145832477701420080218029367271818369541524265403859007690742540212383828926924294057838230276985554383852339856415935189049518649766939324068775775967704428360268393178121174281849168734341652795631678926509871266806663937908334947603339821634774355029949437651674349011648856941387463114168766374227230942458145928921275288245859829985587338098295962562025008781898901384243103723760446799437335574348685990416174006937489593784073432925357354987698870543895361169589077969013633932261198218752802840287017886473323365211314703267828733714180381934246111567872698349803700575732529925485819174262360089907401156232415429237073001662955253621085979527361338732921648524514606567313392413446488974826601991944946707896162017185819630029006203940550080457332415642306128923238407029056903077345692932158894146145559354116326619806204336506217021366952709138944829920300024939268549693992290825210865399413566535044215234535723575233214950762159442898538500243643052362770031701790012178118071626688962114184602045980473015902773526349193116008620657771111556103276533103803034780101876978987942171596462282656094898933612742844773856369869432847498272278232999791123942220331625182562885301980427499557640585740014994825003937057279429117043545283374349015585257512175425376099366541896324303890386648505920138870494796879534329649347119891860099819741184692518396894268700990969011925612824284119106469392685392556071121591915661713237243521983850920024169143685004233678163284540071590898369152828389640740376783163404857435399098923255982571045032064878937743252733524553819224358820289016984061738371981063747050307242125541121822200624288492504515119697977895691573356830679211903697439455824445604296073414525017131089485289350143581843982499139511095800289846315268411675725544101774052887623478280951106893637434922258055663529665193064968323941807627722536004079936552521465669120713793504899775709522237236091587519744590111160545189714003715929110233053677289805096954093051004673546102373663074056518646045791366860652345040988546023559657171406603700318069567391251728698885759392550357519523666683290303202512117870582949316060513842898617990301454992891658865269936003024958186523703549859956798914174717131001888594236421414250021083685030880066269466107564250662518669424780984354218137185808417937816300418818253571143868399117296515215721645402248864402049003658082080135658979980317428371133219802317762167277945334905459099199277043547623584218163300337357473006579046707147947828894804522374120791692147185636332515011022862249069516685362954312013760684331584092117459173385470618917597455156496824780637558340328801676667957621280291605305409872204033979119217247777758937168801076968806483644218239232345478320520990517216612605432728269144974186360017883471975743672682688862231934716359153110225103336077357925709020358929628965248865647847999780701072721494413118481583524684213705533215166008142341694470308785240609194073468984348772133593813432780223876613737882442701750872303021924542481874096008187880224929498674397693129512981541306128448517170627900395180084642548701368371820969393056190537089384977029460986333884584758557639750010661630102518812035009400342408284489604968086528995723913075510540498723681260654774030083409594650309727912283684621868010832401929826958143815257375188631252239426226982743011572026088608543203278675349045756939781634203424088840063139034992132242536257322159473425208721427317734380946597543988878969009003526515776393473741342872099310769900048306025370817032028370223717860956650380749549086062973262493592885835936464849729048046023152237537665288888456559964086818555476847384674494552525766042490137315257298979302213013285707273307433621101194638327128695788172389456888380505417413768700418171104837330791498517189435603674466640872701830195577963823929489296198210662897688622754441204355750565787634106057911052281279718286528265291443156034105870722035970938609827430376513560027421733472307518445562239005826462535014065298436722963697018549096474826750643505974178720757732003003066795592938304466232746916954408296580909190681374616070163196230646343978518951008330466426659228307292908497998610213397901912533298828151138969795471183873970409923488747854611434201994470963390645719066657859435430431348422159666130460227680999486103073847974044165443243480867109580637044208715844310095587342143857960730180728545479836323622635185483100384361649055323419029504027682493208009652057903229468415151078498233662710034038611294585786280929072513093124806869635588196283059984857939203353032687142046718907853886474268351223362170578704987616675409368717117592276752111321457971606542962899750456957107736647222728198028827703751596517021885532470647527470317139575156768148111728459674032406637923254128701977713630289850640360338477841861843994666848957514212962255157177808061302988964803150431219764071238684454977052194233725405465908975047360964273860124458925334397322602857067230171765795134828207019934697440097245231016920707746989662192193362770146521431173602170024129078736952072135597658438149985945443773419331351537739145581518380677601984498752005201675032385313987758733128512051076206798879185722529064667629821252206759711858857942196030037399890174945454329098960485795702830299798754809124509797066115946812168757322181048376241911019442287786627790751759164745093070578502457044540403219678991137446041652172370507598102096944655790735355201460958190032439830178061094507220426339930819400152917671080072903303737697805089381310428010945618635648374487127574175249147167216323441243558613709198437238994685061261395200505294005012876145450405837796587486176439254836524079335011587509045474662313224961431513126992136922178022816707986849527505092940210787442398098893096766253971656220095309659516368569568179227466711106388607939819046205642996740756866779862787298408029898556230781540020675000785749233021999193249056463137427076358239266466107447643156863853143584515731012660898298004628120521253394964830738366025842092698190833345412756605705442776809428423330235025388774903051905160707097911176342971540853090015853933236236222943566387372338447128816105717443929645536508634616477307236500375316740319925551539410410116517820914808027167246567814187698413864724503663579789504427133495088859069957045442923026633157641922913885632452590353667754804968542239867484595351906362523975511532579270204676144368949802930163159850025690811467253279363375133360435826487146943799974225944336631109292403228119895973847984767522050083820758686680946916386516666230927482949081680643412068721493330004870252651278352344515954913740176813835841686544527173359525706631839522695332660091067489004782839613572957947523006779739378401442605656280090840823245589403078552225859287949353869293207515637278220541911832041875530509857787894025142980970828388322507202551497220854883351305765582354451556097440333943172644997921477605951837657032054637083808835240280200936907353595928370208853051976850570863942373538641597903460626762059689931271447428678541655998712492322564900077829658454903991183478973159136788529455252692660546591737755421785858210827820606063830670752546252905338071651214009269698279713657142954864427307976545845030037598123692859549229340227907811990527206597057329061734214550129965333040753319771783512423244308624755531459707161663145903538774476665009317398891757578257347463060516589764000029934461576460293868930532591282510991821564369752039080826326335308465150916715533517458232472985478386922760707703208294091022808296544845498513671873112298568615273922316186750236931971210951280350772501669227413587282770472682787310952442258530291794206448265603684353700262548363979075694517081788534875285227729603856897120632880989543065280292125320970468657514223488427758725836363115733529429455258853410890838449703019439153897709278836472279507384172643037417078810525174441869758875959490594133816392897202741847977118347421533524217208426915542935905358746244706872805049476279905170047706501618285625256588690509521329069357905728465670606474012807613733948897126699255582422304658386241565051195438073721433061572194854897419824533995888739606171730440245199310623495484381582254051963000807357926143735866914794275362900826490809112331036793639330131481706949825090140381380264244570705119045052273094144848758253033648425737185423468902123971858974835741122961830091914356635449736556902164491222360598436545333151400452064967347975580965152798036027532637856327660287347535907307017978082700941626653516699628596948963072382424712157934151434263862457471554988403974776001296956488060159349018284665781416907267387714930685500280781901133600973546282270032289795458117542804267659982087373801795933813316139226361970400140543446136129866493320345506279319231155058583810355705395720115251658514706109009252675138747829962979243061154395940448860628209533252315627996283695283420813166856558686789857760383627887004797452506655166792885414453033616597154684062026042939655374272627372290238103561582123529490899765572936892708754562648868336145814179400311472191423226505670002430228451374180369841821979622345357985703102864483695352097098949696459880746408750155180340266669033270576068527151585546746729054455124515810272125489763798651700854926589910081946758945716567729979573760651100987052657577195483658679414597368649099427322868694109296699154942505882180573745104302921854833149627831158829214974859863051570403547446046272834569699934722601810559584375031819537073872519133970716488151368799357982336915436199590439965206538413654073135814610021035318061337278330945186905929928482917118789455452882041943704332167965022853222057924959442880251852542686650369564781227948999597187016186715198924088453821338797518903076006692167508211077566656828082634170676725442271682982240006985747185153608755008428342869889718445132770082236014139953640927676881324114776171019380095255710218084852734033373900955744016743632979763379123942251896639741990185399371618646757567400330339897204352378892842351984866863447283452254598686792448442700665326027110852496010178069363344286190917159107313862934770240024725921282865815060415872949994237650821200736815806925853015664993189940281504443423519808912029678305222524958821386072268023881586193633936550990230105425434873313766088165135408348756544421179841118827179848307714550881144030132559067754215225138713541815811531093952988852299934998047644333322616535839269328982820267515740173331759081872110800437735105079095884821922871229145592216653619332144661441891701475711479373682531056445798343742325093425260213095551474473613152880685685215677149789490936004044731676929489105325757664352863991937655208668595607219608681445521943752393609406356368745781866186219023878351709716853804243489688356738278882539273402425964006927245923573370168937421387647255044763954240038675165911585749872226561535236827370310068303359487606236252923544567322959352362250091157103767550195856410941021079983660015922971996611151525920339950549409642039106050872704907493455716561380837200920451816722453536766299215710571378091052484510521955498294639897458403492000426481564119160232798300043077426837554495607852145197400096693682050473741501157020767582047813079930608488721633878345703911793242257555662336878912059549680312491344597267302090839762986959076637050974499336861067296401693505914326594740521140481702858391538170726961410918865592928247913622576370596286691309294384440692213777083889935688714702233577566970200689558590435920201917036608435805757680098393217237912129523655733482184022047629175669579633048184862831612526598687534021444726354144783969962365861498724976882795117597503535765540689463211402983806227707983739030907119336202836913567556134523795700735941809221871062674164461816893478968904259126863454767593842544080916483162685772502769531743296425016956859814209503590295939445902243406787699687783895220857101509558894119200021009788589902460357899142598873905533933849005508376942044211999705853697014187611293327846834280003689763746837805160227260878036856410637358933639235738150194001090650146623459819859089011281148922622592242484740784053315137104214602996694677136940147558487217408202522790596242626282182811433929700654728351271320478242500801468341596643911350503778959272025185101406891895239637975248153175274696510028074326802411210195625283567649815862758745067147091149391921863459244517513770620215543989145769343280953927135265882227539590166169832831380325395779904513414649147151364294641292048536469744237886630538388519305173858022488505500898741040461278788242517567309844664860939313967031035032799754498849320459955736188040889418184921582652100487445802604261746392100257179989610360189738797843415747560507012182005578456969064107513651986489998575347186726647375804667512309473669252313298870456538634070784274966436476449586373523289922811014925186056058023440104567058712426183303923334294230698441565701603487338493833498315422023844331582455981890254481600381006099478775954366860202749401074011492947368410056864443140753685553235913229149180237708260936746444010829645022162235576298251451158060118695961157112135001467692103593391687503746898802553089253534224213639556103604941328257173567367328570953077628644011087301933491636121087298340904726718795601312703193397548603677126825813662652807079182211454654284253806060810848405435641708137104660377718227545933611774320179991815923376275014705476095187809671886538212428195348599164932602298632351810669391578645286147708943638681107438688360336115032974746048860809881657152664299779601887525477233769827257453795195770124773277243067787792734658614857049138002307105021113915619963569418597298242754742112497035354500295748214348164195016083030909616838924887545233433139439445675878252627034086147131587646442426155914716406620288001368053732414107122785099721456262737241813169980166985467794366317457112570911894903540387773064490685976379347253193584659996796246956034696692677873940854366305132967810152571588191360477757447065721187188373846896959209591885600535856629832072664679872047064790572921913319433297849484444730211416622553994639123324367347665811832724289895927245826590773629399742363657838276546962350940070351871927301137466227963678686182833884040512070925425802269564986360712433345991413816115724169316321278799035332671470922813490352527952701734951350167601544382561470985323079372238789798403770611875509022092618510636739516506314043558214060628321616953612260786733605681719941787136935242259965326463131242685145350396309843558341462608109462486001009353083762333665820401634568065525575647220948510645536075500160987659549674358285341759584472400137285011025999753072960841040108062149283374102573392431882899299008335317435430691574116477474895103021415071208358357985127723418267214372805638469273240811271600329141614533742079349288193426940116090287227298722387041745217908241677054752717695795822045202516221470325192744475403232321813865741373078766074485281267231801981227258371899456424606456639149951810124619958760829430934835594203493549689479399811850628482257801313835676701505589604158129953283010350871892690486036499939457361555035901874795276906233394572216373021828323772031271330569591299890042626553406589153061584377372466601728951241803762148931002718215986236488697101449880171829070196450913755281152738622980751447083111582608789244510471907800727456721627602675530314871134025653120700579627794519176000105627919367826763966475221116767430747399377767797521120792012852731406349410269469430282064978441653895337082665702659947445633865661069023326857379364432027997934322904512537517241493305013633723087931266022319853511948559831680085279866246208620069130458443060893899835950743484358617865806953646736169480508726308272000016075518521049884542348461432379198296034923865704768379487827662054308774588576089326518636244252306062752852883668180019209334298412450258298993719039049600367683405695827540400325240794406457543582988073016166740175177554851458701022863456869473327122757613799991762187080685604923730614516584257508441467908238246503115152930205433345963514539856766380414362996939932776243823492996196410365949585548334994030429057946320854066004555865113063800425999466707543338886956059093364846055705657427227480808786440255326973863663763739886026392270726150217110195301803433774094149158115338443421489901835777926856647408698021966414163612792832331802903675987748501003294011905043705044348351661203514390034246617777275072883552080448188454147797664089491502669804634524373470967516688271450590163215322395810553398892967379775184659590910242881082510396723261646450513488192944792339235406030863153739866385788179763930456049091526868679967617064220130792199068740425309452082015477707866459054305489383471740878120160234267851677724570504557566657782083430687524067930648871641601650501748769935631160666827042654320932502943897705858372126889228300934667883691823683262493577454333596258887812758720458003498479756092426055748955802668954926323305483224120741224799917968562038727092737029034329809644592363580315375193348510239954633714238740866660034272098599008941226975935791902029159458766264377179107131917322297944405721259342385163731830947097579213155649637219064589724434921352675480728927794683388563485345926628583132477889530222816449414276274949395456681005163906160930321916626281668309476321700175220191779379730741540761731875555990764155969864277399042356683470307738580598146162176288497199585199870239575764388755835135818700967288533513999040580199788371810499083255779264902348190903715482189021705994617260520592685924427164950970804645066049288776442290935890196415252618503126806702588085053300531377286876983430401712966496017720306049910403734754730077569550054371118868009235253503525720603268268488727390093611519505961447419050283414493675974182506074429025701598134162180945300936468952134953619979340450605680928897449437043878455139196512272938982146423160680054089787169152454914971456873390283368515968087807143294331791979198573038257725394249233619489606703549052541650996104884165898496624869666880514846377991275395558082803757645536712033161626912495233636688174969980564800998858795062948321592598656923976087875575920310152733275503413354644388688654246912595901589936236852107643253106427073829989820736115094778567346858069950597952002397068022250460843470286668730125074709106566102302701446786689327962542166394453123051516575113176817810940292888134387589797784235371322994668997132239812009579139426328167960822730096951836513310381159102164547306389598310653925925544919525639526647804834092125759506026874658477649454364037594192269758496018949339916996442588837455570194462759907768455721179768915744455652419167672234100770677589066186207923245814443978823701598911679725641918169034787441914752574796689537579136741563026357055469849294799549633281056114398519046184656658089782740465289087769527188171310291021663590055469946036331614627660110170383591409496990379484922528126959604072073088444452540011230559037232970597134646357601083656480140452021402567282771396657914916861393513330573223263638407767023127384956821831029806178003967312927531788475229112844370114854518068081681365964291651023361489186401721865788391779519040818380600661058324069385282501387174108922467717231329593440452641215789469393816415165772488114175854673379603932542241151393588792117105521171943407593937633312032631254492798451515124880327937331191344616436946760351163551421538722473620823070239625480653181997002098294736293891602828342693567904151787008417868606659473273813860253769220680728440398202131788946688813884759251086220326775273480717091153420865606928894463545434204558046891092632165967902889950758248688044684777606100447315248968574348526461231383182177859505598338665835665935572076296750740490385256263836334955042762777177567093657334170223417361175234744827532993754865693607878511083422452963749390212343398868991722129826626523887960981953418240455961685259777880679661711427890809520348916437363760254704122661878235037988429335541576839941334254987805197286455331442312634339640397310467040784793380318911106929353965791734078516076433918006881557283418688219915013048194476121697111570066462220197723086513623041600110264957722271002264899326201608009340687255269113420545845152850514091560639302845614316313382765659467036328187216954745445570478598060237381266430805494594174022018559379774112197807847602131409163575908415271472550766604890296930854604227514752421454367117345250662563344953723798669445748017914225468508130657605896915425306834898563463477526760626361060357550003563282537268516752022806065435024947023432560765025465635078069451872886859414573267595522249989227675513687689789949605797705895563359512265614980117190897693551713348302939704885831879435892079663309643309476835218766597193218137789854079845087183047237695072401852174920933791812112865656713648266418493673017805315061445252354015643844332232278039335862915481042346764764798984277695009876386615999901091203814388816018053687728450323786790789882132410108159400062897839445849387834926614912027627625053774723559335963943395265006752954628410661631712029051911078247882360478017277540665511194730521831762624372535797244285868182216143931997751547167611717953906906309637448186916626395928610042260745713795628828682075148268865830589268535995208146076562746975689845883001139248958107612911984402309000200040661950008560106288608849486699480906030389769065935856454338698952636767073002997184796420780418647149893826858141955044035998099178924141069175548602379142302424933034002255873149903744113954764942124473347749958636801026928089879304604460718517903617902306697804177761569400144800910580370029508983444867363241557206182482525273247282849411425330588912793277403701122871010935560751068886671328729223760870861730436182716713972416705361686874703510264499377886707692674835200919640046387544876398739415932191966009087036891605539491048360227753592044218791890193244907052425393791776497814562625784281136413499052634120930228427966332476266562497627882783250244715254676266487610542602670098910921363173656221768563411585969917414598074666900849971139010189558602620892447343154341014982155713933642924469648089821616932812212843040060584800008731486200581818090061246004421070801389688833034379060204901006991356294697694535535542322937786591474443138945559254670388949519643677055131566287051927032884853489080257703068465497192579990614983182903071181303987971912027271165547069186636252793103714985148595235527249131568811387844060580241315866025885442196232791482336925325779671388412073125341185504340423653344493073090788787838413049763541335743485653385113539125733951870707563150950164117518327128188209096861135753075499173720228439854576523976076662612254510921474385013110943515251861020049528874411477065328482186772393089969602548863209589781075287324695895617458650535544077216745264544067272856180576640617567200642653441825129440074912254802872527755257297561657372969113781470510597228150161770035277163471209027450030748856258502193811289196843834820345576772462326559010718994308827722826074686224983927353931688534782028517740026674257459648340447186208767384289476178091561994916329659498520262668749789671660898978925922109647713598988240847742059211789729472658835977355362254330754827356115962376484675413054416324576758719708902537241648777544746881279580727815338225331732832218771206780631531081248136087265058637229528067866286776775559439926303522537376515344908621417536395813261847960308607085416982270646919498142265539769356137909961808017757210189796453531038262826288710481357837052055307244756481913243769366343442250616627509578034086540904556331051901037023534556188644848998523951928737346316140129489581431870743547682144594434370698181052408931828382327772617051379375611479847268951687141163137510165017952883992563527092504219486574012914170479383745080886957113670806592484762492577106990220067970584258232758830754184506938222708286414201220289922605608358105696649201568351491796794793188063242415606412826512928692550582661158708322444411221304862559034629339636621393371888959862285549283029913291576309513369338220699924572337267571594220289458151265264969634548349277522942492454891253792146060616380428929303241539636039741554712863313729417646594290780959381849533778293248483671279094745394045192271616237077589892747067813826448426700521945053653516356689929159527397007695059486001010959499373317465503982506722391904074259245922254568700362138081888813123118959579556481937856923356927497314562854952185747610032366676412541047391031561635822051957014318374498799791002962292995174588785491469842166948428793777960596881809877170420464120551404339475204630634489587180896036051275413200179165222964063443952748913231463658717504385359950098517766799662995663671775085407429069553655000301240602187692945549886625807799694289549811383874710081885248644261724476271792701465466363241494999167832336157202533393127955138582965767102288108089129265647276481239284328765247738542831325275972748011928834343108248266945391086826533012190333989813319194752630101174236559545068693348426465339907451127478015804817420159557274334052798386416175468790264289965438783389014276373795969794944234102218104637213293435480024957588720688931220921470611538344202238467183518276020785819635905310989006231635555719587203826989832940239768205358701771042847618744712370275680422835599914349983653952679975751466418508963163256198811568186981583953384337766958305564007853236618893714254053634966205217157804466995436153793086252430864500931721045111031910926148904385374248563703946215939931649534411243582407600842875731089591063594875183515223629559952373992156715243928103705474899741879019626911734456646724787402639858766634534796637726576226016768500440489723891175391600989409440009793513343900863179898331730189284109357595316106722698782178404783034431348558210766877670799060930562126847944295564756340070725408515488968327795136005868560729846768932464133782523019612840669133586854704930329117172559435598851333098289037581580548279447466869021014263702359016870715210685466675480278297598159323109977242530079455565000544382772695172378102791615889219443966215703779255228572419393323182647817213402094804315406597556510389590000608134940700345018566354842930109276552659070590563822027970294361514785449231233689014133497077773476550011296198680825007408766333802175824349164501847007872173480551546526791659369411713562036183601647840297803668265845553486164525504497438377029673198883757869232977024089223913828869561081769969238970678700274393479664974039514194777930477994781066741784400923453239137127389122932343822786838046047768041080134098540318375076704094095371015013227965842152452649975321511217556099995954382517466996579446560529665822929323923790767897890956497355892466608618087642629703942029796226356740242218961654745223005613630346969059590734670579834061598250555571486884876246282922387352017727263236619526664449175085296814853371183074395341358470789024269324312469222092998618810461683074483154772521245057166624842798883501284249025768421769179140628850196769278804804970326765055909616579646163956650199051875565541162939388264125500975559001671771507879252240722608647495789202130835648709108057743353886800093291505291721153054751829786310055125711484844464253539860940238001192168536861534054901658841522460419840735666469953868060230930502343503462481285526234265485333420922030835064285037044475537641225939917103383482980285309033278731753021478341646272712863685297362429280512236154973706943166276374837815699952516730895129463212150654890135980749736194502932570298804114707611363638316721472667047720066184994206025532627006271340429792350049163858606573775392496760999911684664556280330440630213494040166754700085819517769882327611357061610247179602813645064807277689032129466989107795541283294239726947463168659350655121229270687093116454536098344507225599946384635132535228818445694816689320661234496650657287236304399389016864313523654750725343597544224948675601289072172880867144229199771376941681812080875489671029500444531383486165986918226218280904826008092300625150060568683737979034089618630136054204097172238429395821952629818699945457138717775264113169849782239064356017373867222746912464515696904109020109307553836896566429031626437859971616381918387430598822839902848620922148908354662189456462851906034561912080366995039774079640456001741553124225904473602107851371262310481091724240050885320325690925667199990706646902669673454524876889618654507996018007888912910400689987124057010737678586912835599855712699100099477088508945999216809321574228434466220199038003481692392911954728985352778617428428038519730243037327055805275900266131247576524483501958519091427705726016315387617488179313850924550649363046959089269134120367847217342950873441499922240622987459828285438926226133695060238711143327203975618388276837668330774146817767469265153247699626896204464569386854637453427717313651241880724477632254832412251636811486830478334054289813132526028291832907892375519332085110735267215394252102009294110639533258481927660217592286920475527402201190439254973788440343210473469479949789956798964017552718818941229642353211722111351081626004279103683871402896507798868612210986500189716432519401735322988943393680439305800965497931766667729456223077346432638046391235781140375529661651398332348048480491765989824514455797611103189005801299784866190944810351609382814340484609931827144370301427692281660076154198793326256466928525791058355803412324489882740506599961152393544581068824529697953301331183619472873923157814200900723964835736983581139118278185468201054845481982803695822484633438755121335041410039584839031592983393999548494189243685766422799496111660818783332200738506865255822979321295099509667217983850409553184402765967567902277233681952457518881865380612408456449332478931258699784127975549925852121186391473587215884472289377499342182318788483041563654274952638391638824019033481726406345473296799385206465543312174002577965290558035065178569206057559094438298504485621325003664533095832140257986187789522034379462149679809175049738104776403148320627139118763364289961803359466936374429936076635566421387989223057565379176530773095586549862612022087051864367699418648680036813756249359828611527883036919143963689089867474117204405212321665884957851286439040466051853683946508901404216044668622363602495312551535656437774997767461694804801108888929509664765232549343236598353984891782711671583569750768564931842729964840536958797676735090581852109943967836160922233546888796600238920013212334202364820435955361015195849878518868399263604659990908262653917213836153666169305607185474435887573370118038392745433482499321261150081339752655685156022199847180732055899899664198422912405727762382364501582196739397190548385226331678886435198213102888745299049662360630789549984264269240532532128866765275638664636783781710870774027540051386243115480679712388298068814074307051407660981752604935163421873780672986986204317450005773768056384020949541693873797468724464325027182628437693993743914314117749075801183802787582936593032142889040244165700774442668061719766606677028461236564138027112345902800142770846687408733778941317156293290882988359824356391700624851962361499534598426531211727749942701986247354938323413316927492087381447610037232598247097585684841676044578440936310999853891403703254296554774320138824543572816545632778163056046160809929247884880423081328971616760153156563964222706680003093855928663016535706584149979182431555554646221147163116661415230008196663839790276005761603968845756045165956790031840708723892784255250520570927586463709833641343634811601145030842090653567370727474965034000890905996865752844654386975706802056618071764355517345438370543647661230240605659313991505526318501706152222514255277999937233630518063774886576567969764575875976552147920816302852688827149106790607768708324945289472891001432919439843239565142632630269548144871700116283590183755684151661778901979368180257344585788440817243145943047220382037054502260233273658655658399528807609131575981081604494903773387484117139575520154463556269778942716477865982469386801646178502383706804549287166671836605850740536548919441175559658832611169325679797102293253911782478809150810329084243234496851800521327130618478930356962692245700787698414077406967009950391129059751004970546464727408698745056652347782000704372854088440102292807353785812495736400045644888904913194606680439663730615222571325109846322654274582342956168699129300472304551141421005369445732671058964805463717695407652684912243387728550285983047591188917224554395943292788666488903230110479244432386350398748341204512097195454928814121906971177066315565250000766959553841669826790115146113516300581090851442659606880426352771429785300998739686039360225240356385803488180739352000744414850929503801282706554008836201777590372293029175550241692980005735120746172980961727851342353022172944298839716906558360817835333365707463024570106564635044256626342987732566902072209260996204887651807039944803484555085673838894278083936810155356889075154672016724540295617321049528998410842373022231689967895029493826685153969108776467751491776508045072312327654983248498631229631204095595452036150068668611425542929107192056153585046927907179042076792498768186143198390678382305456463601232015353992701091196705848576244617680467254406410843624907705202818492238590330906854803295377108486048028404150156006935119267168149524762428482172554090737933585732055966783362082149650167517680508814457840812801950874403194478798345701709778113108561447926678087875265382334897481019527023651110829616761830074842693965254569035588899925294492387497047691937083226985420149287317295946497978901458188575750768316063273427486994626568013124554260747158615411028495181679291874860728650612018083828835597263668784762360218184616184947090448537461308021569487631550132093168800234113897121496985880496441504613019321160495696558152764023035338994449598446857216220951746888408608914598758993986899753942029504976341290908864710818537143184661998700363805575999077689886805913723135502942326023727063633100460877214614142478220958944299506957126633759862290219498552664547388120539173299781809071536823614673999997385458224387838270063929423793751678969966403738075090430530358384970788843507674970755633801329524642473507356448951927136804630713196001311556130351353242546157882376296790309237399921853714782663356443357741006752640675868216041453904840637229097770693819949669128171198033161550016657807152151177382005257842672371641781957543452045351381644961780152287004084186519169017453688132815405020793271667666377590108419700158118576556554966538287060627140324328551504743203003291846028019229208365391896335652640044031550466646829431557893523537437420353554403498995011598260003564426154464086168246576241874694567665530989011701595107994995861994827465540402942918576614634388627156248494631888000964783095188829735386587808342220721075150287983011620929580089034185536671257762464046243239817469441915708831664075746038265474516068043003936950016551186795933486837636626022217357222445526125439399999119931465554958093522819631215455198894684437516069128380390459962018839817540824603106978227589693158233341047960114551990685404238730476489489250077410663021054197780040312208552795212246194668106176426015190216818813020331940060114255705697007199642450766854886062359259791074059083131826902021087149699279345148971569123483774492590738006369013590642368805483069653688316259021987477007216173725863359456433865609652277996179197943559229257958948035025094845692144675197565611959681921319444613680754249545676877216246696422145201884977403464489043658894141276610560984606021331732354833536800479008431717524150172223508470058808380070598260383761065531065257263117394091091437479766877963956488524029874920216356446897081870382442376784755087086383394752030842951685542436940992159495285537444917893542383345473241987802071695458210095544170458294395145764459227880776341975507700725801487077539529052637473280021843443903137264111837776763515456240198613787847090755059358037658460226571432312652521838025720525059718842533234523601432198834687196827265791982969067254764475564716170464678269081360909642196612478529754049250971177721942489604259134486507235204398757432365228510267198459198837218214421422391187043695017380145524237474420485550337896358258409812554188812510211268182669502461799755271786211319836516173523387779709645291447436743629085154051016305333080158995163019529767531014728315003598346843438359667690408722556778371447451704622694493871118954952216931473448542990989598325100622446236261460074164589644797706818089966901599453384733942892284376493003588897124317018584145326986234254503513685139894715699591431785830525771828489733780462268960155379734953142167949753541759998500464486420086438660044688192729512591778485890728214620973600312062414952005543772024034295889614143501041737489509771857928728837169657066738656747267475086335572237859397439471667882592833981501581396839167732112943705449922601100731587640514664915695819908360547203674394600573347477807472540027862729727477406231280371724227387438030378160350785572813987912259910466826464371970591114412339668190626514031650108964780041181135935114234971852827382571745265997395861275034863755538725327334070237818476396703381885423184103584921811684432947737878260717554325357030475205173816248648586256182402995677005041083431799988263673842199061382754061627011641804592984150522024766668111684276529250168038431288756321524453272880118019203295354447931339725416697380534146382621831587182497461830447553299298432258094184703986713862532157651989881890442791222045898754529124717130528950447366342916771172649988587473352819293124893938447241275935771434679666176400500126424564477054709366163274116283713278722550258430510539765039996469214662535813001103163137777406105428794579094518628292580601679661700541241654024018304645727374133857263236853283908363376780901861863043998879343171753572226547102253893872909590736845632578704883623456331303354353126173239918845911179064356580613572906513906924161113128103640096581196837798591654546627220762229241584002783663479384798468062931849228523679391106373136047890854922331351382836759965536446760291232948700617742481944972837098975467872067701671718327608997946690425455599215861587810406560325242875300422234337468104029918857993453448526513634657226101555367801139740915286482241724230848594426852340867598500148386612907384387446762706570388464172795700600049963142272182827656737467716744695640708115621550081958589293792954919580682060189994709467372386445705395714323568791088363619545278775169099410452526610382783649779544032103599539770424644627013002713420404296869367157167098505734757048908792727089436510890242603865321461902806638658209506041101502171362362422563732208582065809524136251555094033783159691968450544438097772121418742960563175683327843243869627222848023137960796535967659505169228486835343557734461567533357663886177888355106441586780045334731846458160394802935248290985945670426437004272566339766640945160976595029227856696685175375386755033371461678862184402796285259023008398944556917685727427923648934328675427868484555434954509672289598405185675414374567279573954638717992044513646306477859805777367634401620161275662281525678058044269796689940775533191635432324567104959014353680168249607078831795377727730015200272704602687022674236075499538977797011655764453863059361227497385319389534765379793203824992128648356225897710237268609907594726907252953215187035809212191663255793878358760561465771298838358315703930148835738430991894630273516873455501879692693588666557379470808100968118058615315022450220215946261635591014283284325020803525894459663097628075405788803504997918851270319925463353042581862467663001121692982233776395767787091075371826013394972580048972320264327742476227019237494244603411294348358846387563684403761539864631568406359368680891011411920211233074944797795218940727298625838981505503385098865458353761839702148403077567238863390691408709273604018692880014946180617707438037304333996038094477379961224609413669572258896920901249584495642137703451822094683705847987351299670028252866487470051477693563180663528361754145606082038372855564959380458886210764229289467556734398518734544575338751513460831828344250476515564679438037069308980274775108387298710950719107998018551811245699613832375938115792526322663698870926801627750155918460035338293976026723178905649349219039722356737410399055515251098727296963039744353105782142607633246713351631768383702089555161150001929397091757743826483035909358268263675961845614354594055724492406762016399373310837263311684930639105436586971755601115880968083859003469167429105726684380682327774587714451425216466908988617270071856421444822045579994388254180606690869733590165096617521710543643275495705615463892639432734941621245165749329182667168179080293497154619636160099060013528092601839255873608296529566099281856097187144569977844048832963682124535649895566938780835007454548420437653983491302478409221708634155770955888803603927304968661612743690110596251696101901813100619410046914055753520150895852090476664042753227297238539837661552700229395509012772463522449088636879423353800249979064357360346904806096457012865670055550494453321310698455029761126315219465340585655763612224842805168221061679424443264869402222226427938413482856854160055765767154841022195192338263244412295347127437893247046404626399108729765002235566234610958945876913895540331816306917274296837569423872591516635386052525361812967035370541008036212126046676051642242517786818305267131043537133769566881237461916928598925131426703773893667972200760087183349203700156039053939629946978458342605297175068390692414736088728421936730228909897011610324033212467318630662950854817165043051773777195486820182055984113843513857947056652087000752171962904917727670996014921955111922355791764294998123336223514839161105892412646261913899952583106685804419451176908092255287884474926495900096080755954001508003201435621013994391847558093971159637238831975385674705317198891383806355812021000026434903637910080377977010072735754094629923538973831965563026098963253751018171794000753735421036799309550655849912605953785861718157281116452007287778928734623672075285883648530238753108814529217297721291290158426967471563660245290129421125156119634567717262123714943649635730832351828503981538756982793053494307897023566676256738481214472091024489036876157609844764894457770997538997586652369259373240368741395291995329194222294123109187018532870427936147473770245632062428155282233343721850078541425504911017047192863258153854749851912866382753604182374981259525568553173973595326162578445934500511986031917032979144314946536288540060352643109944049086977734708513057281864649981805503006823467421032054376805117730572235984558003778479324623987521601367981343365031032583924000802235372439814893465282159040838306138619729955861606162894352280812568048594418262678995524466797768293535009722560761195240651490865712443624866735548360270091935329936622561545003764027191221697577391683072367851205402677619602740789791310513391186432117800767476021833034766084062286194807609919075429614097276700558757808852199929466954067932039167446090030456332452351070547769973269762529977112565142958809179573928344461829080620262721856683696355620453654113080219295967939224081573137077498224006373651894782212842979594253057020112813886485466195139724233461119754057268738891850995064506917154643484405441936365761653567602889485820463750183139880589484741710326909123791229331254912155155942088377992333771173649348760341409969264099378348086866804816696780094075765199076407030375064114785851617700610317450628831716762467464286157517544473126889053513575853959887442274785293621062766963971920119255609595043003294480751247161141593070509707147369147664467735528720621497266192267675894563503388426724220859468633613328784719258337776505000940894453975132725146824670011379043454216688489185491921468972223008530466076983711415170166343697112340634284769249272104851584715699543929390673414895983545289115066161623904386702995727903755236494089036635889385342271574274774836305347019651207446513026586871384627815839702861374910118086735687498986935948461750078090056212410281441315888352818122682429833618819882596692578014903144235353709094614571570676688905167208532511792301704681225715695748139384011220857925100880336473303903571976158183328229993204865671382019811436158496680851071260030194826004905363312782006114917751668324616111083032197739398958283896447994759721948968784335935881583741939613040222332253147749049945218290530197237822148996643029850405903012843928503349498791374311293277839960273982134029603728589719831217839502186465435575968105682774273253565637345569503243579370413785865825901933395430492782733773670391146480444161333779688689990112709016781645727498591025851232259745745499522856225315602447906125792552637386525343677733894268033434694918110521774209838702214951148418564242670644242734822790894045211158493467397136932346097419419490849527581063880743163202453130456418558400055727531895728312256783699516905115168365490264903934538299825987416580696039801765217283716629409487367720446369035186483100650901234543786192055969979388388543666822531463417630931204632437067421220119998068973564223561758487177610069541103781056290049128485640278408533252348534098384131883640624377641278603388779377282322964903005742887715558012926607044643026804991089829805665862100240640856622741770497233628459817016938858106924383601557571755466621705709424635655334606841087693622357633056621227887954906496777667455830217703216799264593508285147245764052375679971145594959349364768739133320338981397671894127839348947450191641383749425721411131317402780207204507915789749950612853468138384641993481777900954395394932050742172116269273730287155927859710592869057552587740369545378744106359268382025661174489925214850417801748834800331265893856574523855354430399389425881508389383154178895858551978090406356870780412433250146414025779371607954323803942038387249101800025175034107718639812793752336824722565216844236579204091824715992736027776018784821524949943960091109641217545345311481797343375260575006729413824542904065721505245036258644733754227405387136556009393958201559563774689371576971151634391454851658700124667716675867904774280204731000821447400659699007934169056330564057439293243207303411514221985164676940562887199471929005093187980310859125356217866424676043556361184288299003793935733352129943629632846600058128985032034600984057946661117202744451718209271605164381007777223468521665315651494640870208082688694432820664111863105104935193194227101905602038757082196268889151041678719134788680895107435843548648239641322043609403319231596428651509629535087539663703457281701776525653743682447310161360143863268493876246296739347662166660050038423588098348731843410987975153394485160593967620992434011187691642126244300418803038288742525714413560594424737743188082786551529092437222000575422124816797726239211657910026892119633503016023621275857491195365271465106464783901076295065064775545632740327121857400767352055373199854263057010055239556787889654367829240665661752974922811897800371968906842470122802780162261604497696657796559358013639559786686031444796679613362428522835683672411893644033039483437875564766169912830561332060487415313088719873207443639692875086847361753813534215809260653498595593195164655640100101226004668747120254589390834151573093555978957710609956494806249969412262913783314260863944743651739879123070212149282533384788487757966727504915087480577974808745589685501339633501889558345602063311052843413974723438316161618190782468425303432064706766358559216610118966845694819196822574839311702880526578610077101392141848288223432187384768348514311850056908710029081813700792068717499735059095301191339669403457420615053996230843376513041837948380811117383142814458225895535455752588868259369825921272540054237599188996580957737358249418862162341702977167356969228250830280701845718223440587241468754079973199733588843448553483110705135614281850414106898362419246265187666052836740451548086195911306470092698632245693913249050253925601374370239884533316431192612186957618066221821255952967564109721754598613800089679291348565889406591747773566177451701651162767794644813057002425400996144261483081878299384125197359014125499178444948319890873235209156457212044830083616845538440466859314890131743773463938642496505773050322680902721286144337584587039624901309230845264176179884834670600277031805472689075727777459223742425644091372624138613323127573723006435951542075002258173089002977492762493928335210064875673667490242903314530157430631712279782748170109189824251145689927073582327177554518897333433896293396987051285155398441139574852140901263756834778765314367046986503901874049591170320754014679115116095136214153930314324403486076874714009326875070278974011918861278052905834755747441725448058691002947560333758888169522052485541482566126209764850456077103737088219554177478705869762945914359934173324869387846115445286065838340672778571003150512059837272462388329000954965345089166032546854320135417773814427920990910881583865454512275577567636070441206027959578281339149014523630095866003754460079399956961800678484565424413666466919846455435748978975505072160603829416310503239699923109240967274687660723472664286153698326633396509322226375247891706078437110385151814861899481616857257280796805897274941749332495036783725753385171021215299789684006092042277188526200170518198638864218526652975656494076615390429781529668273338320365169896866996963917952717249436428485660535043651718252181948558948425347857377690608538807144643922595959901331612217773631693852114186978058550020498943091807310764108197876528945545051052756460948042422227256844869934490455813845308049999144494147067268695239638783304485322918425200048069808582520665575219106131746616724992691889990766128738716484463416732826681546226232387404317960112286056405100760970453027059394971569270672632388444908019407278508051786831955420990462725564268319378305831229697352016957484025454098541801305349238837055293136233907934932344497863643496647123665303382890170314406789528448239678419496588045634748810069145808612298709697848543402558620058729589810041954227491510932174341238252461691136846628313699276702185848013757767267835629954684211125581516442334787935199394522482778918875538561212445730131255275379482325105810260600861303400621884372986315028285869284598563585930507963356984081221003218564892778105223800338981699655483480221266610860167085071140098096401822266292982449861422273829199947211419819352792558595199892760349907727976814123234549412452281373497610574149778902870160516746323973040675449796625729990080585903774683972920105427951405155047493605089347564682344524371572749835796158987569829344467212518368704619192297978934481728327822735314988854964884447658104809238772653250212428453277193169602197064253431537733958616988397779672318447591452372539790176610914492599720003700866619188424819051867250879166092546058660089364466388409339485239125343530894984193462463923057546234083726856123809105148248041240004785274184413830136121686352958554933638738697065246515355370574155235564304605122436635579454937329706001976253871996023247436762730113870440638381276080100209290818994043986910602403783253885853406076777032397160785720184798249214424678714606042551271285239412440672964782672755571883372769083567056414641349754034615033999443198236175088795915156340882452897875192383034179859290627067777460093890613549694973363287591573333401411886863805083634033542468908839923569228237452043532410761857500079615947126572128294710243825012778485912798385991135422611063074799697834769095177205402413617369937678505622282331373193875272217670128358209638965914939091292597406938755110813253702013690389260616681249540550792648210205930956813278328346247749442020695545821278798039689407645276886186335847823517561663895589597765802868653447488835649602554957019578539378354385710224235601668888622212461643246025125295454474391099007729430262178331635052941240820132355112432235570388271346935994977002601812063353720756413021079125821955781364991229031820385532310344687886429406250218755661794742443060586433355683525827383881810346389949166298489459057682660351541873574284560870080488788172073507407343714198994188668037550887830560996038384205454977557357852984897058639055042018258581956420863485971458239179592136235841567175061799990799641038105268767185684507394831362795959423620187444519374786285877674589093402648929784101972906264118724471651550245668710849094501951220240714466336473446569966998419543987669544797279532056591110093727442938600742479897446593545301557353251193955363185876342789056542552121742546092019384296266651880632802320589525639866551557087849969415934766450584502026931926135653452034918680520220529364219334261310067330278227708315053184678698440897116136897288377719446124466971798694045740828972956035442886517108044895794358450872953667808966826198316246573315714542951912153569109887848366262160512256239656297714561855889872954667967967024045165432158049917826495434642637849269532843083529189733700247367096139810650065203169658818792806069666032589584951059463507174913734190864050355116682929140267729719587964651151379534784518640493879753146135011504442563930694527009631256399959905500750223460242137278829593051270732324684669294291814746520563051796845443191624263260638036866061774070113000511615032696087579789026193387027963428271934290787053348809288162859376069904249830716472704077445458153957636282716458398862606608608629594997561053231143679283140807250348234838137788596672234133582895928277445733363626493053437763753248520401417364766602155527929634279462486484374391608909128089277776228273311809714006677024230636906827305624215839287233708876975816192218218515214635682593445985201791066432043053580945651518663008909400570976003439925141179531896692122389375634639701705396819511798717099937968592881096554438705445150118150068430535249277877072099752928490505430328282746182627871770732988797770494298892635817828543040802734534028565590420262886442421841257695641161788967259466331808520186172520190797217874703494591474829711127108323713080092197317258391910931691295557843852477811805218871010070376708172189178477418623560220200228175492336094785462571300295697728290245140607324403127423503103420505732940431954027513030392029068600399547692642013732089903482590873320800573428998150614091706055621694786260543829426571932334609662722085260436625031794117240815842808989304840055118001164114029037655000505200789242443034391920179204846159167234779765310421258594108332892899529776355110375551110484880577656766335247972810481444714856783998460360156643699127940291085860876258226396501491058527124845959242481463707746541648608949373051226621387720896022290251860633365793058046030541434453746517425243739941974344885750431849726371423772171603355655928030557058494408752696568525617856784957133300862756771118134820632655234849704320330081196182895283238108219752756796550055755423353671461841488378177745648216624369798125188025420159100560601190463768594538518852239196097335256362457147423021340757590586298606056081036676344731181514862431199606842135779928133251166903391983596566205427475133221538830794147435509016917426706993878260030206137531338097485203034459655319843948835530684502515468347712516656918795634307868208307069141855500209348658754076280021119825973584734500157480238131439057342368424840835921385317486131121688007388540723365691474666136042084516731329400701738076202371618493304393390601591507916035125372130654772110141433652441582500988056526920147627447411740797616317600457272880144812552683904628971032419770385845043649530309446226862624779535574275150638100079312924032491990732630923611108549168568747634037214076727551534944257142493955402710151320456257353754725648348723978830554424273535308945097361347610951742880947094158646978619975854524560356963412975136678053323307561695834754384228603836294571534174704699492894686625293654865360206592839302085432183611686396914322098798921468595926778122810008208814534983352124677255958223647072533847053539142388732546308092193245605476115712698349438459057487041600837399934942098708623984207406890960742596337703731629031101695685772199900309587853263059867617231725100996403217748060028053723317411976439595030171120156875773860237356511781091663486551688470914226499458458611070562945123577178254881850241837462890409936395695458444685961357040330535807716686479613479817819234379458995307628753720577624444435943930675109176023927500997836308782702061686516914224678003237507662669798679453740760386482443225151198446324817777833200814640599718440910325032955246908811947579305932901929088293078409040557647637950368918953417992256902441498989040139742244273414193937848842741777686339269720071604501860331030856486751123177630329259692716615390114085288571585352479763866511986021411844845463178431130562946126825846835133405977035734323538911432765571563480046821234119484015011024333229622881922071446420207756930451241301607023324374606208265845341217067327060411538242173577799986484953096057698564213184844281107310792602131274188497494237350308908877575794444436905583857313860092210630385245152622746125459733363799698387788110313233774006035741192853099344398954147512981856396439748175684514587435974984934141134534780464528375207346728818590324142925765827600734023208056303439206231741545592629428583053873902071088927928350364771988674424383710417575164703412128646798035315664883221571970776797243444772749926383187343945652518986712527121068974424089361860780725613508122629833895515687355206249361071641244185082278489621226801720173275974342208845645709360313944108085419623146491948785510734339985849791297572324916360557040261566255235676697480440964156997590001154986026834964461153158517232016829890802126283495042540911709331858984961517680834381914258183314184739436122909360005397113460177810279146422058072644202054866948614177294934819150895958871630537278242701490282674438014868331129408084908257623406242021813994842605026162988830104281480923128808756634388045177997072793716030296147352785556278816864185149800017175716300587705992082077747704656847310611515765777027850897784398803652140024220669730168821948651253851805279960740156020541082515874463846641537474151316695254672701990842633642241271207956138034477217814188501948408577335549811976932148884610671120508018005452530912303025891287517860435460315631214036689522871409802814639956850360384976239933848275818740997097450725758820395317611377856199435407457926256454190178167735436312917386060148088537856343021231409161131058323012799647133143279989524571162472631487248919985162678249967544027615854806566125855039791262376581808192043926553916400653159590046960355323405721446491932323003226627417225434728414274563806504039046163863351579486314466008959147125473592731620709887991121500967055681666755292243587133587286130682978790889958546821125783543380965054949837736563483112169800915904762448821510183803025507461682525954737162646211553036211458591964032688321151330745875196827975958560787445051849936607152809950704426218979009746755427667951394438948909530529816486742165642685358365825211194753406825369847483083893992956083320648056813398946267484404182851848355499316219844386716814409370373467849220650139940735161053708363069388254508078708910441373439063411332773701759565739250712391162365755401060505057052349995756791454877081404590782978856913961986889035752521686104371159310474018137433379894841210043974303854730895228183231785737343160524670542212699193407518052311930247494118332053129402370208171524256686933880413780238028415812157610059810212834904107468368788814833713632065862709789641546102216313123747690097430274322208708671777986730334035771228941852878668328370990854819109908018552208079818940281765781313870169204534305075501796729621954530575678449697166708908885863446646008128228060991466558472337578311691027730279023562106369695967981119604936431616058019238187440473326842417744338920008240985072070373670174815903076369614242527056782130822487915856762639042166093263314036484435729980093517054633878581325816229192888840904294204336373298546998116505468671177746160483698285626782100089106172238939986715166761054493949638479257745407224236587277920044768204458024979916890736171459290722047990800608353846063324955992017937734918449103433938338069280267560333159455787939247264874250221221404215648227424747162911514323365081646257455458159886890011670593532419825550723205088671697182483200959258982561875057747673006402536382113551792592465178636938234348147770182845363610036505341128866883469293947724576588712088098339009731624982145586635874847996542278343542476552672000523895216256237519839070239337452994336331880785552848603685010046191014809528057368641977710918461693331768821440192049337473218389306196657999112242137848380569245721569603281142073294591933620184933661330416113076117446599006885955340468466294047775074612469065687314385012085601208793240596421362479798382285806410111771411795431484985556631982999052093706512527485340224531041288007993762949595385015421019669547348612444665517179530369201551629842451431819236061479809032639069636816428575042045814244786689499381402468233981162265373119394078177763283585144181200269065914119325614215665058114177361808547415197004218555164641157929404819061707836603998949534648177389118581374987287122555679023420637461568786974861778119644914722333329746375434940849688177676156135103888748130065321564498351978932154736673262837497459670268034812957648596305926604133219563852289910917234935029244715393951665441712500434850286789038680628573725075136073847099116549677112747354509631427139646657133983373696043770233776753432664231935809813629555144032005897872229277851397774371521774311099248385957161783728109215926577928098793664968868745661994073870388544614323244023727004112831086055782231484730923253275107886523539553040237365297539188975465587767590197069870768949180094949966291528995554886538786612009014612837102530342798894279725264448432239478974262917663835545061921290302799417186380617844278733495074677932648278887983285846750042809841371563011431557087047835083851337699423536438678808077128041508118814755673875790340649948000749381536501276311495104802264419387826351469848009264853212888085058659690683516361140179674906427122188708068787920452994157661345373043849792839046601050606872410737611696287591796309392895949906835797943979432476704714796387432586212032018987785583172680372312022784886728588037990623575080486977571391137230262833910605603464771404773708455651930021941064437063047955248093669564570466185400635271022884829780051904956678419151546863448897310960442182589174463130454186214162216821162080346550016370210537681027448988176445260477778638428900127634350594791698212577715287228580168904011383712773343405999606285169161240302550263648754098926313849090720363762709029013389199334903138408277779671870363911566837040223964155023571125749657096752936125790752466367822989360690322173931660143674999217601655580924054573302119331032516709868150293326092718012006816242153643065792534959557559917752335901209572726082701725281693769021346827149521857468812427191898343328506347478428946344820963047102434980344323255020190103336452911616084321026578434734422160377268998474032299402963243916660802112239163348623337810844808778141933253028015830206452204282710927161536834369341602707146844651635717382743688197947849911284170408262631034272774822371334821294618706146587469376626359707252167651562530431897945218088233199945987391523095433811550469073380678724569889193811716732531290586950392639721484250827449534671657408937903603167352513871011533950354766957803498195026754008912967753557475913535948801962722376089910044391406742749602343058102575089850910659969939966666934916782166373390903544414708887054867377714626143131875231161138605882449877727719289654196524766747575860785565859066409004118674302360838907872344502663417204711249354097075278379810075382386560590480213006397832898204710433140843127873352634622474102826212037162492823616474759049015077888125049183714124038328262045098200886154098374501482713435345796565955173584400877241490724709061132743517582992358388383260181788691153303913396976296109838015126483410743158144648380345394120352760884603623584434263427935748920464748024273046553289516132265145722579889118397226920428292522359808465085657793372185380932460734053378058532847760616607369748521390803546106605351345004027551549049371359751460972047409299711293952416867791849613809226527731398220376961322424791503017851881977865281830134546191352467337577073234928991409469120451847015508467811878366783170289532330102220428186865104973671500481759216624152226529472560812312687510976685113340907886096376056552669921397297928108524277427483581960989340043529188312814172253120632608900651510453036960205046485762674388912818883318456918606593402434738964421696248302784013347343142650803483514686384493293828005428616663543523675517870631166042085435193030226418451955006755318887073210531730849748870231570245344840188896528478262988442641835774242831233348015951576229220704733482668623611458263230347776949956149668883538497302716722595906685670746091427995007703281630849968185895250496934394250861856002272606211225821353338417544275059427700428983870089379316856527441061505201864193971008955887444160403183532352063042452301774913890774945249053888957080290537263430309760587379632247379496054669812719585700532612544949502721551948276771917650549054308726719721167741478442966855986631503007040307733103711166737855594368078811650739936361843920792204283672210997590405636072263770683788635678044810660536081209417624943986399236921293354830448152281820645063348823601638480051172081085624923785074206667686436782945840683638028075892175917046108582391632003054912760933526713848744887488428125092392307039631665865933756370552186177876613883699689566090469244082045010069124173803764625214206137749446546274901352179981622895612142773363060511191577546619001632532082008698760076922741303961838900242157209245200044424411650661716628080494810564327991457741744150460789683665053491328680751154050724485783526447517584397085224155641428639759839843147741310698776311215053030666201019974245359294999187547929290695350987190835753810764105516539933214556011717411080730926032104251669856787958390308314908191583335015482012112171456647111123606090978159805756141041969127562614447707399202749605690365259311896285154668007941672245567481092446538172083383449208221401678048963181476034476900722120363752564253773258856553345285685185369613536785739764243679598168448225310065435819622501079106554357665073780235709255444353080854961472076846392106129387928281417537218375324082717083537758414253013279182948213209800723213748480555596571595756610852554565759012714512808828833700927030017695980631801711249261756007869994480045593540480879939216395687602407981861350676000163054565010320547973317398400505972588670515615981493061103558469273333201091566914133059064535688322585222981775795063332504186217431580740746975868515871181720382240763298244763856945200767859450772617039972265155643817698697241549740053007271944799819784971403591583197574694482196028337949110329392417372881490385930421815597074551474524452406473270554971768766857194998552313003322390592974402985420158385929363015465252614427901172282582729726479587141463152529222962937386249154684195947799395350293966913686100574306201360077811567507696193622929019962777426012486779328776503817910452996931041523629437363820689505322342580150244083198605696344679622270008266692095119286926955840481382647346400673824949532493148151001939172182687667855127320382605600362726290271967514502667524925662693610304334788528811047823395201214677478570824557203782382616410650815551044895338964241493653129069239307061952148647811091875697860624410283781326063412843509488231670277706380072870459034468819896725694213780055218920417972588047546915076072448142056805590487495399525486597016187054121833759373570098288446785960175606290941193200795775396168534308725535421744983402937842609412586926158900781828577015092961476502735650265739909831409241056704663114554332180044493814487693951755982162790931528943959734810593391797998419024500126831168262693283354101446667105220297177586978757916281524941348679115510352455834089787773172682235457235732525411071707819749607304190775388401582669295113688046790598583608867900065662516603798012591530458008762807838183591827311516775794735616986020143071996580453662137689165448109347815193257120662879371243591701141719812113117691864636166828576436360234299784611051694982879110210224731609927533263412344040207077822302980036535581669425292412172292545549446883499969351986521640044434615187360469624070193289017115757087729226726312574836586533352419049908650225782546224033892102014559578677890192523015033558649136951978320013232807394826206530435911610932777216980335114669356497213985510755033792168557902212813142636950136784117394105008591474527967140947189044194405018162875769255041928642670133830429453768086083903941259800362631189731446095450367581967100094672584122786084805494986004075266663754477371474581766723632039881136706325242621704537268161361829878927999801348118204063569796602027612972638837376543197528845405317451864523893045532613191750741883815152558978435769631383608841711518572249017261133230876833806964922068098776891087180875376451943908116687177324255247961179236014403562734913258835854605151848280575149577620417645260798546163218150110868142684076067600478958007591574824757081165228991524237802528673055559887254092347477447778891124724625128505302891575619456463010512317668892471602778221825592081972777205416146371128797893724947582064272544312526046937612231945121640641430983338806089862052896953513086941083541900325594554048797560575323493503885277408691477970555411643782584448273060289959165183414121685131025518789408230487837360865815936969859066973443984538267837249316800395624656615350063131885173169557657579310144135657108005070624884907900484244293496348149702332051419767018986883344957442845476552913902241993464906184739026489436349624418080613676248040448759426869288037980819088534938536348909500318406056556747064364915308485215574428291078660634821029689282855392543685526588451950107232953486175962289118340983670666199055346468608131830937984499289784959293777897172586691222978743077831831808452707387927747949711126227192962336227705441813396153697797583033389867718273769091648544559279396341137075941675428891171930719806383472938720817457467014683882962593762427421221905946400427390767188355203341177259995390184198250178504062561699006050970757145130052260615138058184503395517632540359153085440200198590326739119384998426922008977599801784220175262386807388602406322985228318902063321391652253594423993979198219085592085279267922666473519937714021360291913596104437054700791145555932800677979234307072831329653387845568627734626023203048580051432575435090920405507040100468825299763196180568398195606404579859586329588268294287063262501784358181885192342888946744641234095636643606291505005353827746185265610416263325156177307374758878048417767928638153833409377596519573075381898269316168932556421112492797956903173201702847744179713956017307119625437457359461962905748803093535430716205628182350450341370815123069771817569634908316058170286381064678820343071028421082732280539440556929059645363690238489757158088284711217262298837170473024842855169694233755845292681518480197819334927687398714220386324846211079250664062966551809450402220099730676830910809574767522311722833925651456738676181755818565645964915685287653224986502256661932300475997419017619855016100271266887898185175973577588533021661104990643283432917904735202477956959890422543152076548735107117700176089012216747731978664509164021523079295254172276325222640424023449812242211268282544195441194952395806585922661236700183074492365892099666598499938256936922111919816002296595579377117979988958289596940398863832589444747575160807312693407007210879190273320636041748157488417690026621824696037883159213447582805005980524245863212413099796532586032994070769521485589994966813698618986241735265845748133974930851738347127365507073130265316423167628790604977734433130381117539195973387816094009880795895719059388794078421447304793894958536328449446727522094628216756771800165644318303253209694082907116991813016970393258784000804112604651659035719981221477183657805658874926609658518962436643010870045376805738625607505202350566263226655277064832066796052929300800249277759210144789950655627109037849089537624220471473087203107040962630465403352983284882899303533035382747304902024793633027850601681783358061065837239794896735044081712860754832356611173455483603872105063905008116273060281116092965171284221381813515730615387377817085991345529786008183188810140073681526903312053111133027700394697703374877079037053241501369625594452903903704746766941584826260335570879418106890896826790037738850740123938999147267353641508777372583717962516892701142874756621163793665955652095360494640361556856237482840015932255789302333398591359168509554612931959159859291256676668074149378271208136169773929527333356636813108242984572505810911281427686938270213455098958282481424889594203146285769307788246398041434487070027660174176554477001645526693835342956809502020708352496245929451609387209219458268150900099684334654747946928774001487312465609217280156523635014238999336159349066322993818749345423816975610207690204074161605613580326210759669096135777568431723859359037437484056338466857042815775466965948176260129448991830268004740998377119614822090638871892656104671888085072600945047424847631860979287050663837666857764726301776396787573296609550696190253554607019085528091533708905408286965673753196360865384159269400459769349336953060243300837247042493073965120332324884051152029179787096219573598306336564764093231602505092238486665127864499801130836550139098482677665613720005454002364165262182228237268209461496220575938644458811405906842411396052951069067263960429288559230280294773444494861115239696220981362036571728552799920355706847033497492394392152857788676429144622462119948191636300720872525160214856471842243456337221358600365458507704859807831021623482208847727405391506168344247113677936114080360821977852280414125193296228899061572354668247864970697185210530152580638246659046106379684782625498076127955114723610152422662721331722027365177301510968967729332981212693004400163050219872547999998245632008177235130430555020751261710334749202317965806460297414601185971680392904500131619291864987329215893430225436871754994999849799414411801911401404046557719987168668464856406651546073343746041156419848231640799900815630630063903844456624868407282826017833018016458422111972513302871709866693542987967994366870391731424287931055819809570627678852181652768746423086455691320059189813866463674088096573813758660234041183486279660005415623969038373851466046105414727781334945017461257205227667205051353023282872179484768057290671103008299427415977523085906413808667661543804720839305007623137457541796485935801143682655560232550359131045305375440261961005931112246318387526781041203750885073274065525305903550367826237508686635153756436160445344082773716756816788633165092779381862370493536606314595133157545194410114218547459125648129022379414681189870030420098685500852779910724288642122525625387983608411716423929118069108370795064621155714531888904412704521869069410615271786570639195364171404612015154241162000897878063078750366545549825807429464905941450205070731683241698331391529955566892380933009233985023800664467705822354240449027960708910235901594679159988810940054168936719812463707883345705550087314103980180805168206862843265106180288228886904297846215517449259456217822627792119897588280796883926964905052646850163817385621597849216943055053111920569593278642743615062540930371566469059585529634958813430622903675717778878731615777651356660208833819682250846474699178722616925965919027945756355337766562434940700168140589718620973454605096714019946839071584333014002956096885541947858033886511517482527148550896947954408227860226056995398861762015414597313638211878020101063392265868433019375342240397175732886574669855847799175846668849444671117383354089173979987136812306501453132053375814134461114270136935476224091213191337397467103603031218869671532399485908279766931332225596301527188275613724665136880019456576831711967856022952456715013229450356837259597250288988679650457674309203563966952336999185266188865900078994514855224061673815229224009402476160053093364677647543254770272195427339501880928417498302857108489607570964381790632248832932534937999025640017254545442233821740483206612267362828205551490531444314242051438329980066812266930457212237345351816749382325276220256700418194954239083299842784260396500497056426268580280091442479134119932220514201090556321360953369303160874684734455411412395729993641855777388909753816694825667999084993904199910879319790278564562487387733010215394878914076902085270592003765467763689542292966930375613957022417742221301209009034775818278988279723049779481307523368959694767254028625166574837181753157094526509651858483602471067275153344947669581426405443023151651331072455056946722769376446273341604961834539750413089650684871808034987536641118765616786795283566293446516042287182109489005663275181361705199834093699739522022487971626006714717720829252719002703707685685160845686569105473596729098568352659107084927774113951023913532605247632326024263975986515438775993710281725165808744009950685663430948385505614622961001214498233359301744650400585047283732089806932615192936240491395501027103351694630889838967783253993827097851365845736735690241394997390477814555728764407086205471685318306341641206586706376533604039813350162944792932605764153350168670590122881514372334028883768652927853491325246734038024930777368970677963914488375119354013814225557683616751409633366552256756532428792760685764513972426658337945876654518558108176053994699653634234988488636055307438424142474543208535244917892932579096734492206888571722875996702728194061421857474791543503010684587592503614765497258531288817061592094773559602819365151958093072555045782062703631895020790054749188143950227391615914481859077041260076309014424242682742201121045286886859113165215406334733137320345618760486527254337028630119000384599147969191745192343234495796625691920482627594257050215524286842142390799434263501202632293516074129812379806559053343887795663583131847391651026879186533765966084906347573469364141914587176369357600065378478426633244988289919572867257420887709505345017165266142390851859333595483314229195910410151696055744115183478504202376621390017514546617151558221145146295872938644843496080771206990609566708016161684462387392291526830844948793474245991417581130653945298371057393681706143456299805795598163002523076392924659623411339291520230246208574552081169716114023977847386886740146838066067769118684623150776029878169388238857922357867893933358649674233331181220854503950749668970561354295135540076653983941146269073043070266175598909997315728912370739637384750340143201514659809532604819802874516234951852199469637216037752137359452066104403863829260187377027184742081408039087408946651002974964945232757770809242772546974505060198961492102452732451786010148675481252330852457111724341026438568275852837521716599577536010535472303154667279031114884673443521701952884104450794536851643484799960620051787054165606350191083119224940044823665323373101992120209315304703122876410038282913175467237287134466082823297252776010204754509209626536980266269723943168884493703266445856608062170799650695781351858967033740259165272877473612696100872505560100867393405029448901294052206548840682106661471546862474097026839518344732502094159484208629783397334938008047952129559161568511553461382771308870981781573661788941023971449133159262495642084522097651795323121849901288980163490211208882817070366820376759469699466992261279538701880017756897843401550039980639402441854531696874113822734097994057590556259797921701505376991670021090409742785865288823755567053126626549857467230221597489906677543818849147598159745607381493843558591211699374858682127904565326177757169324018472960798463362131561232502013778841134921559890127961227549599100169076480598744032560817863472131019118641946315837566614968348158356597509800886097578255487619862305839707243338038161140197711107442613625177240424490967492652225012551537688294074780593020451000191381422403054660779907376036145681186896223879632707401543769669996467932750412909319342399223226511370541173777138343823938933752678614731473206560877018259808550883122759505559649644319198109677175101973496182745360936092000410501302895804672482619205908469455867708721599676617765207178595549551312987119758153825640333943211296324657850987788874390854565211637694578616073873833436455837759767967422990886767251471998582951278909923826527930413111017711617941307365526500571217915298668551827415574375770957741747031235206732705612223878010136014357093841067340932220522092987956549206352416836656850564519080256816190122576269208549103820363994042398487756707671181925542653534112778135355577659194809308279454253744865207260609068692932791141103485596701322641392603626488825340351365142106387736977801674053137775518265220856318154682409513835571055651927033657936505705605472606481463203534656880460747496639785309558185320159188659361195244480140804333097739727924320227453507597895897315248449312058847147976843565961386469291534958092347404048443563291585805041376054388801987370358999781557079883624022471436568142934502087744242068271306148306601675450554574984247251634710213221830669578695649509530624797280275342613054294759802452761395325438502653408579200067652741875353865975234477049494354444282701886087158878292068791014437640594952008670252651410327806583820199925430365213344677792759013181600515615790434529458927871982666234680133819200694757010651704747866595484044877792105593624052059528319191860457807483484703395876431420751324185453648477030926329623459554246369950958826820596474831016291310315314880069615378453925282593352281284762226199921682665331700903004738027833872529856635445280953716228366236869535420991072603503381900498854398508060861279846023326423794489091978300131539962811728641561909340175680407525168233030244222628036559587176394332399231869273516333999869211585062446811381790097000869639559680953431095458839759206703505610377656789260468424837584493562607311193515611176960507012790530339924006433948827923859893912613161314907861533794879240543640317358519851515269728956344318910503767482826197704223892786057899089759831184731886958469578874608303142869608202716437611304987481896766880136370223030518018867488169715268929971980094122440556918122182083878146216951247368095754014941038942895502646096440515814222719127114815460250776310904605979864426855592369774211212030660560589100543307606074876392761442892271686476147900210049425001582990976242284952832673807969919722733754986822828085976137689785175463151787742295547971946236547760844301682588792724547231368227802865826733030993721128661852062170686057221187165485596445973636122685368998983568810188509523313959109162756069911147224721942342562749822455327118379289894068759530576218705275515775148694336279879315001853715333405743479275698096726189138329436177461380935128766556608121697718220525205134099757503749928959408888970601173581641503143759799270688107571903223609731889613325712097178433489409727744925557795074660528147705243286272092714144594644791583116226695666435395769559457329921254486889748331724186349306868888822679451003276618317145649634338030428015369844167396503913515238670197302702763913104519696560549640185264592213807254325988519618272012493540038181899756691737800369736281019135805850805919934195450472420864547771844212581419456597942887915022484006985945886790193744201530923634443666956525389662209941181556589555399988891635110350389108914344544727372120953551349357938383676106150760023742650513076688801352122765030236365599006599440640438781595998424093772808082396695593918148387767592503886299481152932428649422119530107490724309909362350470360706020867421263947393051246512841626975683260735212068034350644407338208067643021395608249087421903770333034261262274505832875509679781848984471536264783124322399159141694656290732391030193515962040864279261142157356739113918895121187984038615139186611877392830644329055877224827273733648106968694066425100988677696337254150800210903533883400776127621220037060312478603888523776835858017995986354148245326823049763978327350941670723476649449694165957547740131253844706963913257979715048111713814324240103717966350851459627160872288218510564936734292795581176292337266313413607884826534825400498397905330953454009605713989800711081776330358821136881076883562147341782231581610053331611347386248561883945744655680807633377827156020044783263107062883064363771840916975031129742119383287272268172581926657937093102979305785584224358718218937814292454951172029714114172381412439955841510212871172954120198621961752432075953058176986951519904409582054101571434782255398033645660910371526349596438237022844017945873347115044601927789101127420627288042763071855753610627507419678179432118227445923489213344199955536709722757458211585759199386492373284947293045760987369368616413861751470674743431106315028931402400176776913287596876858608935801332714716427591411230929142197182710230648927515078057366115350961568680111378184865093087457062391899894530309951799212979025282332665823671427702990554617124103093263547064894129980645789966979662973259491201458802045750359241052746831878394996145747675588852422585221062685217924904544754357624698325674867882168027068606091106105896408432233988220460715063215087435968705404501809891767832288683242835947722511736254800955450788959650668588065594720480627134154315094744508533374953897891886595168808799907619535377963680699016851810426196553166427071951186398336482774817955275663295042271552533562630413791791291215990342090824531979400649397514759949025290874922999575065927557735197753607849311602494269734053071925936545562041937378015753563845851929289220914148932122951714520316555183930331820280458560356869644011572020135319372466889590722989839887047484455320251813862933991042273634980705572754668631156331782930807928397296322992329078966460668609627235337560923522584895629646869344879362396950474615039569718762920617310948499606841088339070618303425863615990432964556398284410195468728458793926625820776951964110377555873814161649165234331743927614894137042219071401824020241733202106972238278356660230862875812727089658465120053788772393781507529049714501076105358900191838476884893342030119586717671830890012124242377103127244143247491074754347483644479934599368772271999198663837452291162028285632715772857302901210985902639634178537475064779417941960702238648701278584460205225280101471511179125489140335934658757363844918690791068842796236852718968438524632400741787399650679786734690276464984396707352893887923262083889734501293635358840832862540536569348776322053740978711281639817506671169865810271396937740695978952574316263555931716329105442333312836790538333290114297618816495633261689488490201939222005821663838237681754251275510181959335229988658403775765012068399516472796302825367093135896180997469731087046752088940887167619013766425577835844219684928222790285309185909950586018360952427655506616525464227084184071168244909577493640365054311428764968477666699939825317874258374429815841004977020187816253464663297224730359407152832210503870566359823266823705466184427267536440696317888372821582495578186481507828647922610176977375680362596710878997606009304226859201730701204838766722845987815992287522662038417367112890112513029140895617662885988584092784870688859081120418078353683616268272710351751748592952977072352776035371838698721932503397283360817410514849646196480369129962999595257840316841854897067886577659817495830086554581083401647832868338876506045312709899368505370875158018273205955894541785096530341286308898113536742667924758997191159551728864630827133330282797666493927300549846620537852578966869091268268205741843871729566997505526674796289873882548356739504841462391388078590372223507878917971867936472223536658684485053126195624588809150684752247062490568338756783447659084435946577214510010025620858314035348535737310058306275559939611498392691220405945133211533500490399605216977559397261726653920829586521603535652308890266591525090917803569391697578016624226328592493129272348008819882209166245846845545017533030889250745901838673810615116736564172808726433537795693901921111557662857322736631865341775583193054441366350689883443529648344607725181920780320895358562864174882806376781809077015083498420347112625945363712403548234364664873516211701218170921125850870719496582140999691968363196363186951975474051711092652556871669364299259215895760642680093151543112348747724391128383109117641144343762711089978476896242395514347658977180797272002654482421737562985212698990901296143314740844561518373308639763829034499101397818972180626072529807806965493850106508567452249777377307128161338539325310769492894236559680430948989887053743682686102855189849849108470894907993093624090127916476659980273598954363949110037323504317941579666924577408059960928018236412834145639502321135711815992297929568240447881473295418395367495356113865392837519836335189326938152641202965119728544156630365393416795662266696560863175106298347451785122318179648463198425232545585620940171683217652240984273690037883649861450329788591157239124819362004210347946511069860982532351046610648871998297129104046264409946507614227650189473892508496098979758207811989702643039187717048489860941803371326565048454965821258710215640872852431088785431646579261505253249732089329053099857180277497688651734568101707596543583751110652148400506321712337728818062167859503191133317973535401069496449035843224469762061575453138695501972853199793662066535658874178889850791989435361050226016934242188251201726102675061896014483112499425872679665196875195967367684120315943209033385729840853951370941087171924150856315720886883241066966643431643291732531689531025409682452927182159236872136750500626541966378142245859137755014808832552678346557681841816775669790310105900399539937123788387034693312418759372737626423451446083330612949088197420099982015554561401574119898765948582935949869551865475873402240210475106916724369147686169999334835099418553140673822725054098475952921047642547269809040080756087096683387843021285754463621762888461031323576913783258863594598269985307058170899279910704810740266552857293658256702777000453805103275216876828822066363690834463564727701694428151772271415869513928158546944833852533975763202903849330699646531475661030634475743349957209344790618546530381383625588728589248470870182140232694517020938936429157247653147360440730280451325763780751813934459015687974452713104694336841841736161470834593649467786582552595645241690214305899864058028928780709610113928384861516281715682315355158287926205258779203195283598396718802972978773415963726992146555166300472157738766125065472999130402819934111401408981800916232045383795414205578547613749836157029757985221945468009843978689580729596922693713964980311552344375880214460047373970165493179546582170777093306139522742538295586877888078368045668477970370974761408299188141286682795901329187086249804483226241984758293180044143308805231596373225306452521963193126058089069705559952431658379422797804072137503151637567993300755137446023640291595722816156194642317288924325931149672658379728452689189470782419117007870910716681116202223153038836711937800643932450040631903191449657011475957854515938388687181040406306509135154715935680355033730104338038684825636478891808227194058771073740877281608453258301182047679190663004584016011962498205620951975122029783241863003647375429054474682746392997346408678806627129202743918068546826933038138552693859969496658472231509484342565631052615416557500493920747010277109257684257203675638505839485388197180972658951804284388584831184312192358241685019053857548465044725902528138565950747372894549457610948931212973635629413723289112149218234745202561287663014644097138389296557578293534657714531462710312623583549555272246150505287129194582354683179068831113148397879466992857990124016370729318434694977612400215399576334426277918082145032918327180225974694853102511248551676766652682707839582865542509386529655957846638049100122591492177512935898266262254048492122184319509352335419257967799848766520334028674567132895701805173616872741855346304371497866258399950296437186010621857297284608242922222112216889379185356692803118019465294331032803926429073891130536135456778222021745221802435338499457037113724790574186520935279026331403760065840511870148927534327277807293254162475040153569603451662502617837119854707047127978763284404406952790893621495524561997991138537031059964265492308901481159515630798837840522629979973251944566991584137097092841306549555035267857827909878451190918005188055792872326187353451516856913298737469854388621730187216622638985886940546457459505495760245509492338437295391089252230780689314483791816156946104891327389492481023811510935627022044460857845502491961033023703707906317409081644503611844562079759640783922929454679565505305864189388218583893962538193985947614391305864718196072149368865428741471234347866066628203718423841231328778347012686597390120081573443924197844644941506129669378799291754446222163998074654613053187543921480528598070063737789115979295818408657773521147256038139634689177806774195835403195368173890456228887418530112838855278159563650259620867170155695004907435543847539678726441102092628919891038069536308816047204786673390735696575624751114581310810218246505852153495425549070371745278822348536566852164315579766403276792050921292300773285417915892084980517375774422085331338688648522591677320529886533043374559632330116874701866404300728879020372302197776646978576164494082424427334927356704527570923233701305841349853538921349923279633378914677157692016508095625000215303056229194699020777917426398149497845504740690168364778362757722815636877149907121400273777582079835828094810265699028182559954931433668093284945380223866266068213129971664558725463666862989287309631080151228892992891873156935573173917386891616724804617779449562699811213155836031193564421577039779502926007697011863871681087989449131500260922101316216967432086758527436155332372744635189495569447857777830098364870312471967453546486306317928594074191879074988853023404816408911719159667122816727870869257044158001653192159366850733791752807504128397209411343503758151456226775083040857502084962948950128493498375623122004981534794772223274850034346570450433731042005533387082410944385775774902927335910800204243494652591022651464985149360806992839571049751819443176650045096423858024850548706754227078939926518003136128807612205854836074378193980453245978875925356747195999677991598015357037376878616041821067440766769886596899356459024630039566291214412499938460800246870014749556198703926636190196312007864265164721798849989563698444669091207747259654843348627276274258848046302771612887237520004086186509537133405294823904488065812026138719460109955637536208044795927678847137916376790921523992495129537385148334940239773905592044623245652736654002783518717695241596995056817539110505674838767242263776238204846990899229894129821714164329071925172860928074264258133030050997167365359424983011592475162705108411103076699531143976034842170450115006286525625368190227695813173812635208257883632507844558154872969850556126040982208035372379422163239975927021175459094777503940706406541523987834018147365733885105221671679368368651356942009022402662205821784346018950102084848412003822761788919953255166823736993542910033706282493554429194456745004176302629207587743286923024108428472476041119755950468276945316350010715858574492328853610278651243661123201054996071126704703243724691096477689665863977856383288695081689269156939857471653368417635448560792162196182400637283900317269774812668103999107693522246884554465351250267740826380690858191134334791397028046524783900987070338365665683541394485875546335123052687839857677826094867783557588208084580057626107612319359467299604124729491795000661132356061292629471115846862482505970321596022275159576895158466384051366967101249130568350276468527870200898943161499280618821637284016193262727448397883978637240521409845699867987043752899552694744796135947749884226491816993695176552716396178390604583744720857016987348962385993951826087999172661251019991413638884321704911858607954296970941553114226125832284895582034764848013663158937003117175117355687061679273334465915542794077083773140892830852462286483357610426038039161079342775304376056609515678962851065842466829025410120716826139799242161442687314406625726846737612236309171796371961259245541273554175830036493196246203000341734153911317312680932547343721531964374373936607641068564862911073962648589751860676680229700661435205027830551173255762756013071131482672754739745585012246214888259501645940681743322819894738429088328233209619735363247855656195459417366960382109891673182472809645163000325300781760458365483753144225489162663764522033909689373098022878869542877268914848644125536331639063058482297732202449015675407130915833843239399641004995968251812880692522299733406376777309280882080731007642546587772712504574763512075023555580324854203768163639931475834497253764533613522606666074184317774168544430657969833578208310025563994151834545666388118744526787336243683829751058505064378751635501360107418841609230107568572136075146326294220723805524445538459260427121227435391346625331399851716145649024142278559439939848207881702914477439844087203626026755271741561149827386723417670871410151770572040217498828977789822771886615636500936772129305537017752487064551106649252772497636501681266582762296580199270143928530429176168911889178469318495756837952307924874608660986961946795907257574470937984176793672193350618502556304215710529660343650578311753440152576973903442387970488565800023233142168212485066416144193671491199051329087803119341456879470397067530523797585569385597900278452889227945656229355567410144922590249502055261067514150075986297247144550632475839712493704221237889789160265378962896845367161841731291306902151055083094958062147064473473690465449951239850814484839815243754287993198807578724761187514080525742586653958316795852743365143375184033773040833945660249656908058005378950586130718026353249839413974050147698085396350251851803910475756474143626378042024490967924329336311627557763123616300546930524713556342044220656150744927696982146168756184615124038422623151395975679884888468847533480762335735484931907572832283221266526340063250941959374712452364077478705320075601226463327075573493724109114907705297427889875840242814469181132215958868812387564340672666301994424027900982296658599867847402385075254056421615442101352963067524101130596335977030585859636596968533070361580814973662783630737015174779519556068189924472663046311624796984096892825926717219650938888108267244389448912889536655174942740249275459966281938934839274423784983254114003943163217367552235412239584417382949296751247689462873013400039828750570151246135236173202119732296713014558971199560990064498255137332454709338223935753212890827109907020146606939076751982952970909187669557634610640770901714590144375865644009774346414420005403276629003756402265484191227316857662553958391646620951940515502854201152967316536056783243928290092573906997797424416441378879201903627608735152979219849311160519239591235074831189015462123435551513759119520263795033612707178351537427814789148474142931507803009494994819485046062966473165406182530457981817598995631027384818257947032490057302406473132937504317646505670981137853584685844462037869496468877116183171760440389271296748514418320254973130326937461656333260897395894193619858512509881484585931271625310884520835432589213245954897197444182257068585489747861222590833786822159570916561496464176481040097168112766574781693047046242984373694088737275214632029973348745359510587511498379564173246450646786682375572524797855115783468990210379265836247391264957899330085928665264304211611494633413668230678118645948047099601950872645434128927604018624897951896618279843022963916643147774661889932311550827392421383290605486555076088589549922773629667876506322240242051183568520105312839399409161018682582855803275795743060589346880596186287364543301903113019966582855997455854655669909949054269636032577937433029039406894598335756081618702219058859837176690430548571375457576720167294937201491323702993758695816709840887269405355143934895500112408299576234040565975317473394560687740740765096551024015529435693403188059230285198684095285576559018050146280332504125110091477875731734228406642773826092519059359125884522407917029166206611680065175214399043263464272373235063961660315980732079325131668198852258527309017474761613353216099558345297383567851706821771540283513235988142696327047655822748524594386948224648443283163811011626158495721167124386929572434349509940030677957720257176598221162023643634155906067522773013808889036027833028537155396118832246977429198861832116237578272464659832056874540084983072189854969279424805435828105690758617482977479274195541826680009702749818817871398846925674751487930828583147978826678857388896199390564186608971542133331570661276567876450068375033904591625737061718998925873497436540575195641261088052823773256318787903301604105457092854425047165282026490013487540196638042054176033893272403022247290275705711895379522783849616938860886272258560086168484305677128121742359478781969878354394593486141162083042884170741294181294258302942220012562596572215389367442276301837456205181748778815719978522836648377127309468260782821213091119493207708143810014556334429002941833752924122292516268391927200805719706308106172417422597563658056207404109809052749399094696860028731221156914954292539788034073932842617273742160577395764698645373714862097296232638409789138572541001826282770961195470625993841438366200535049585720305930709590886346272261971357045790394234443187657003839809398388945505295888001765317802451446611298960634955285544336144164299007429149831763170741931097126476275102461947594251228951071896163073378660830826562587898182013647130306546233496957682176683349527752610443643526766305944230056691242338237023838065087554251067655198105390804579074168400300257642758509242826463869425229225667044687827807417053619715167277872227149867939729876343357165078251262665552399557615239564290382002483920540136623031995264847260769312501798966320150660347230452066271245035333105697838443265791514798471474623062800405590116691394161970353642628350695535786972225708010663890407847319710333086275234406191797759245085604585465836912026558073352460322595557412711062587331731339190198117596121575622751174275704766823601990277893714793205614569800039130465111790383460190845403444827483247193006312858480696741394527335267523837714051380878704208845203332269966966543040903515735116394654250209667941657152054485113581899574197444604483634428197555379060287260365433359924619561469785279375621264854865830839512239966708729148020842522115149544106576524908325708325043284753749280527708343505064619734277496054819040898812943582378225483609580663060423143627891346027357190769445567555435396528759270608859879055818874222783039282673665306556417864454075478149642755448669223579016712144972674836914641940902308776738331056760194623594276326825054558111944568293850856250857210796229686944254468395878859477118768526756106996300032952201267121251721322187970053303557798002594202416274140254070379286912605719306070713938281638488681803442616296065049248351146061311246034153993579258021690002635150953743982905841775099523380635473347277899089872403407577011815706296821979810564664036743526084704630403237545694700280476436707071636787596082550892727844993564667881615893271719615340052409833332435510837041154469561439395861182692947327571453880744139968169163100839126817926939972049237506789192722966394993631701394636144041412812059553201011441170510611884039231422557483121960918929577768687862883135686113735790351684868501544639308193906519580128614183538601821527388970278890087417623576995000800833652588904895701096366004134652563600127021494849941143624293570560078677866754624951769374799119342737029841719366746707217345442392472842470650388431747874151604188085018913727942841154073677775254080265607549222280472368405491768849300330692957425260312582286211871833955945777297672539880430471862465047915019042905886859234324604925849008182320131442578491360547348978189851588580756247171592513136826621537818687776224663394969543460553740180009864739955653065329954468685760384162400509652384220491497570573990089023316298098814619953991475448050315943439425416649761844856005419830280416557897423898658618074904803906887316537768166949809551166362612726265519683438654419497216765912383466251348771319886666357960912404448956532365458779929908023573653937061556027965071206357311643604518314195859778010039797821660665834364345660571149657972057079532016400569949649026821906987844146063672527125634671555283173579466461971699068473857826094243947919085151513517352633554578954440903836407106522130257823643358119056278251163308792132158279600722487911369826449151226728180854610832648483403200074458906062369203892780372653812072342900167551387541429703546191177432106896861529930087542681740817651571724943029474705129898321396070311590141334622779027117189432506062879657411105719138485192712084876946430290564411588970659134457148162873365677942777410070081660468367886353339126501196325283110625670669044070808964756308692017142702969379388772772715025508996765396912241418415252055585548040121672907822212232973508951890459709978881693669714271450888920979111130403614269067283200929631885772829066456575588733544223615344746725122828674414001892701943280189333629988615474073124042249780263077723423064645919529406855588885665152632203893788860534639523668325375816661937660566421709658083357691222327396485939162732055898747616536270510452113921511321305588242462470687725655803242641858409548248337262840368121473087902863005522600057641821661622517205787083308718562692344432321976371464579710161926694256503964098977637633832199865085235138934817762034637346070827013763115002676032543046220152415208304372308105085879405461796933137860750762946396756598037035541610667720893009146458413615680442658344283699505676532648412809587000737614035429419933837339845855019486243529717939001686403652750884605805838282852013468802861712529675972764841097808359722712432517254642732162952785938643105677251554087945067927298767451198114885596194390132646258730151821317498520026698688612858022582362981989467972071702653786269145163313098681375358347913237449615272098970973066766563824247078731998861305292433674118056527870454755643768315081983418940955329878408908401523530892383391680242809259389247199732796242991543588668624158173442041654604203602879407513649352407797524048952949442173377960479625214387901436001699800224229454142925448003506683498209253311985516188686949378104073692640432277583192170506751652019015905413780884560674164887256984422464892955562615819066876507301075965047000854334489349934374330706672319472185740295932729459161864187118618596233425609231255301470370977109032291840939295959232513018406526965828922134760715424741210428499556285478505168755257218133241737231462459192822016245610072645108464698914421527465305767884447274782290956004669307185045063681459087532069352315946445986959703587362283614519788388486731187499624600938818282100130839981093023328248692580502919143941211779303290225434554061975283051105999695703812659252638990598810079986307267973656095668066542374344851664739676869246734120257627715262056329361689328089626404779259087776847631497009582234933145642201943354103061116041495751804697820475210883978330286164988150480993311828262063134019092751147810658343222764355924587147879981742229972485043218997669543972860452810312129423256754553667789487109038642313343304535625239778511423264737730126409399463730883305870827789538471239077184658151542786527584673708048202051734584382292323798940445457748238630595345718631722564697110463050323898725211534708123608126524164354984807903406911722597251893400747780781142430730581684266149686725964767101134428534227457541444424522910320538685286702505464606501647207114887693151772904820346067652124569042546408374194260875489142192101542713245197999255027749993883935574740720204176652580296018006305314354610592583315647231491943292040083504020111643471708125856669596620598382409835636513712543377611128920152542157390578326289564001859053841551950137863150207913277312697079113780518918366752732024150883506209705896059018176970171909484375085913131077081532039406377288117253282929529693220336788291833528452690762662972350480386381950983465610605650646266803383329120924999187583477888368934446951272082283643777341502670441376601171730751695934704872576846523850059200498191679074768350295175821278249412014734873848626453326714621505003077220676218203015014189204979134247764085454774583702609349328106451166595964718226358644617086208472089461593853960460153208119003129413469603049424281209682856508430479884604385054892558717881429746630332674959070031147930294348792079767501189553003674447076269241833148482585065840208764388191188363821491212451158966295567553649423442173414552268645564513212742834201896598283278994317132146730823159156803127920778861947800256025420385877094078712144649569441254695580501864535907118832368459054618448798899294532110850120531780776456148497770797124738344268719517682413913436555138648169195760066217999837955480120459062119676505272055937000084455019120386343741493394911917977353290596013568305337738046997818241740721647370832788149561625634240705900805532002111611070416192016525716926924609935184489890387818326172903110675259453752817386603302745612751400305793512055445900319660455531999509735807724395200535279699428728321472309948098892110519262151920206105204856047171961535486874531383509382923244958219614328171277301756198978858961291039240792187621669545675763746517347926448871454891833049138413310358759681290185789178747750093401056509169783460176012653199088884037896012507540552743512184426296099407573167281555036896752648832947339023868415423037986615255684976735164220673733680337753505697953484300257728122843733814199982017267624709521917080526042390563309942934741454657921780805084520564605642034738060899668831710907932752988898597393183551924002994701625381815371539910319221271260348053695709033212173154111005697733495419466147041117084265071977691284603512029603313449393459030628762904946414044562880334778894605029664390880423881958414830869525681450643962712375826456124832827246596903511268911453980453345017305692145871492393999550074291175795029485538771550136753850068416755141209154174585511275967583006120839756909380943132748371288394056417909986031659384595857685426434339515625224763112294797587137956471469635301416766459416488810140255751545684349080508531088493505291955276585899019868976877778213162071130048403842113868472883187883743900709774175005781906781220242898038650396790211796531513766770131422930316071454765754857562922436309028633132536060274419445974132215901367320802518148882339049377519934372024720189569867057189346781483106062426263305666206707847345755155259896671227552006348657589167381216979067654147024036203147944904463072965020533633594809141012845226631548174919378873024475994283381617796262929659263507335484998528145698777583684263903710220180429715952669138490638325191118639853390574911186668374691389144293608435316327673211351437473511202720258780244574585724937868767485131476742924332489074580627183955632669839647934266148823854324349945917863767994051507767671305142385041160566717349888339082718285255716499157470160228468611703606576055648084720009890046860392613173108281119137392705306117356336234968819092750877568320840219977820820379510882635561753854196361060509870923538167569294008308620679077048665764524653900830457222765695799747726472698189251508932014411055625161485538453785586834074784181626188920048148572410148493831954074678973649514463325250728326523137963405753612875680200371138555256297958084495266280392953036197421256720533865374358000418385704897048826159411730293759475215023219543237540831324267925825396539508760481083572954809327312805174056983643778469570378132445435399817179337215533025495018204515684861039810461395440051591229077053347604262815488545895915872773187448372851415953433244936805071606195854275686545181231425458539022872990171297606975875438660622979361287503522289351185353908831847805811907438517201803863048751961962935167380154536118097400548423837281363391241959558686782021597619629478870565977249308792914949529949766493898255029527493892069682698420742830452159264776778365193122340309606996468863911167166628700737645922971462489378943204263140614175649315260259385718014433250536483994264683494984377826830305462827531030425765425035650902772144455342268078860083684122937934427960064833870064752771607693775772535575941260943011520488325728488113845863493633953349728614957145914576767299455523429248190584628792516963099352918596800692167432325289683474958909533506227248666083201394156979266885714410450363763688157119778526437985434815235395211652641521812624005099145872628411430609517388562882256812312772491352127211338145758475905835127246699959675544764243162546792621444158251722082514531697298595530031484373251931144552083170291717355408173672397121096351636520166119087961225891885127374432297749022850724747556508534559064608280810242487423943908054834627072891076786023246261451509471366278840949472630388607856358255713890975316548860787399075573397610432903972334944754048205636710552780194760652172112533326219429757408512855929557555083158095880961223081212938482825378181066615037095430672271143738466528315236852925349990582151887810406933878073218279411885867700273648659203511381584570131965577395617566949305787399220251701603895221298018344483540109450868654324481018611906932576513597300677407976912472500587654829546944224134160420191318868135509296597321061193213652235294317844286721453971375246619552780347326284789646486385373024054444588523694810384830702101502573930877000806855997265136796440408182083690177362482157713194822528720778314404597686407432984353190910363965283111098911706880422748550824030616592932742074080895610506868050673275556322724792481889489642886556694993458787297171370663505392863681041332782389859601950840164931753289870989710521081608362115500846161354432730446709716280813263541335728249742362834982812738357657033539947425411460107891048297491645608863687920682105200801992668096180835311256684400526099319139881546481936426155271920045520088642358202837386546724927417078504985779367647533382238636274446192125714494206300743855375198034033611589881827039019518001559297819986542002184021103613926262064542829555706505667537687818296585692966106984417398559510033911268122457163210212041232952409437849244032222614011617042242924280861704529840752445713752947362482004202922946011440257915074033468052106034829606637254641920459662457643921482924620160341498911401757748818904504619108812261540773067608381768906026942733300391820273395092042494863245136076663092692107213520114065931221709170941548192506996026713751282330633183386665913386728056218812023891138012600216539278006762916436644609279132815917344841802641272898582521372476224674181947913481295490678588334124853633413910931722197505989753359917286966507408675796962383513225289239983352728090299364580577431313492902866078793359646066088289415896180385252032135998112171716751007381000328312597377122742172350061059891906047635443979664018878232796458718406303851029168545307196854310785370189516712330906756810651806529128720156110740994884492879463055719897769900467089370519667205130628489143862137911384989321887666848576455690272067832034374609065081530895588218863256095034991488201309968723918581970135753290886752754113777767109979198077150516988472763699861894848530990357058063007656349563544853792242427991779656839569202947144944440711880944192674769770508255331451481311146147599857791348784411256989685339167145833424071440142941263371279004159805231544620136370060373006725474047228498666946124256194172358952888861756825955325655172444843972859668782666402183214070732243690736988976570480161027288483430789608194223383413799516390672238628401592042984003947183317889704405589663918850834252010519354990083231210399415079191347425434647740460742514099945681481480745524338139335536179723527928150603917880248650623309727655334121378927655871769270345465243630220130415919892096494105887779613818643096134744036701431178295843381866155360642262236078289859415912973300733066507849989116600028057718867267573579221998161914682936735377283949638808442971722201879438479148300475000776996387724282206398291683462061236804291485787593672820939456622188906071487891358552915731512149878043105010954895502808340663878280269295740053469556171318457509434741831514373161931407397795130470946172344783094923497168544653708218829136644970074650583780597445820575827581873887346098568346942943530926173428987494536432538389630590685072677614922597066609570297639774019715687517993634681275851271234540865616251143557380749751294567410185236598973407195500767078336818301940526862196549328347932086522801061925892861773400239169050861588739195208275832616671160918678047492248007281686578639489809798140442580918231646241508686373244757569017503560905288080292191114142988384673677893220666939466869556710984833916906290732205187619213894952641553532780808512562587391398409592729064957899406466477134811208972559436272236354907096418890811114222766473081373345153901940773063151118456303198937688892862885484424512195275286935565444616932078939629373932501242773464614824225708192892262310637749800260562455975221600571182121380207514940589592873884065992364586449895531897446472039674155226804106936470309023995496504698746548409782790255074616324881255095942259393027415769900891407931965667145557446000641532550857300483525093559404760571629444897980542815311932627459157509745260878717026270283912993806076025491517986900084977863456949503854616009197062852951440168221757088282412338042781803281492424583052692682411790136924865630277743197229090772672890786746913740651406885467778471848078063970729748899250060236442311457680024973781688148673868578331878725810667336985146480670833526928062294194681244240116909504751273892664924250169314040268257233283247863795642980774772920685968152297629741981467558033814080287319808277796458550671362743298579786810047857165846634876405683332713521032478982482412152450414925781375832675785174966042476659662773447629885756889960327759656720263750863629767466592251479539300771907750704186040492812119026240926370754520464490826096078864180345465395708341856972346030687761594238457348969291404320777400625628426225923503322929868057441260747963567592696832036101792500174050858232837323191310676734806746872394622712733369513193122443062750841299229055305586114957170075852332864029192308332920145540459163002959457853805969349667193528078733970452783218756715432339670423694239901877747685946866945964700882010063515314819020427686728695454678828663022965441159616043195001479654081135004189490338976498445162796322440270016032657512676960223347938276188700617206954321198359165470789907853917590228988425574052574812395888943608594639746036182620467826538820370027797317634180394174010637560615545612635492317726706286040752164615616408612062729743376706116957523826077617645358382528295731598033982694541324146949407996519092408785236741401343738148343226330871357249424360519136801346471299003127723316236009039906265429371357892738106102507618492640920611890576744951611349761729135340828761485763884762953064532953029845128532623218450416164144284816773038724553492558285407743582225761625398396880087199134963254039760557667190077603540405218257820380954121530673128754049057145943520695071747405539038629105980853785316156839132849107057777617618302739600804087900153767852732594545984923489216445207586834603097063690848929077669976670924074349888689666447060747389119363801677470530768347488108418032689856214600465180694292380808952801921835946653753101968865853747767060269121030247765653452643664284359873605126957364559581091916341067888430255945998169642291108647669751111148655004585617287553518166307524764943136196494398819768722036827406600359104883934975057919521112226134416125242186401373143267317637307415209366574540106812540624075656454460342794384142318992220782336866459341935403315159318749426804028712859798674576798569755042430996583005476330247295995363810374140431694955619481574880093181024208050928853425079289144122277035304392032923795718093387748841896765287511814210382615844722837015285513744304267075798003743490003290037664367819079981849611127952734596986062482915872072043588653993723765496363679215974044142189361285484787097368049304039212845275283076862175036115812453358036868103835232710499713282074520628390218499655951569655930485020485289059080511898777774005486014910016068234621699286829962751108234052222751287580761842712414502697554925325358245868116695231677008234070485230872788336744558621425706571214425200719111465043460998840632498427911450584857619128393546675031301892579139587806983902339384891837680678032933737869970969449192713205151897709401116963106020036867267056517952928064056750448425902204982924718985737109113374914460825490403186396102451425000829581603750218207419774648538504438419521871252384725562360219933959586980094922716726924566083625417365293538757928778669334365079640052996541574615814875802329448790112851789526834337692260590955686546345944931765944899054885689598045062212127559122213413919763469389492776318336384031663161569548667686959933781422853370413222249277250165237450517672839066106979185742639238915052048362393871623998030480898406896865910926996745409782449597841670955800091012141482319937550780304012711537237972021981039823386120441782107585609739072594298994416423407170935987058108001067890558867292735289477901289313199721822243929573494961413485025533181755906669118007949586566547490082699273134794444800354333808237313254737113910171813025582714811555009005517595540554893526844106843183638136500373431803204461544049164544215774584908593851932546528798907302435484930371993407768155242520754386996226315577861458502806330078911594389776994959427846968584186334464029624675642332099317977226127417288920748837242787463495915824494086510737938773701489578854531405328120548345631974402271940893924384140946885681004937496034688300888644788348810120888290630198669941282563505143774575839353883473825169170790290944263397969580191438076549902326319371846443689013765799986589228982132939503923752937025540428239943491948943563387879184689608354981533473315468225266281394015602568967992388243512429844298184125430566938469257261466751811986619839728733924923932192019365458217268116693243868714323712033418448115902365652155673187433711148151035332903420356753884269939810603816582806350794640813763930246286023163300670644373253064588667431615203442340532451721679820484109716008142379036304288660416937207893519012955298092498817575104576042542708799610895417720939724292603462656335657748514329958168820352967071703323744624978709102055996598456641756843181515074263405294769311523059003228588853919059792520947845179261535427451915239432130940438849585807275381494876734987794220583028120555631042394398290006715270679567187839230731487153036511247568555852627032620345424583709111698765278526476074768817783142121795553871558001420726496846427698956476889102397793157853197016758131647372043381664416009616405170215413491603545790433983586994649513020096978253908334630339506037563110936824723206030011772694748156295899577484589186497226620956119044884234539580076410415344915688538549290639767197654482006035079862977384456363989160385539025734618008386341838452222259229163104042218322830645736359659203335383900282746825386102237007888638189816096373203271566419089185673411689952780135803742772053307156388545369391852313718392372069129331170069562888370948097531690446232227163142085561917925149218760544215233193480999725355102624827873297501779061050527927983428480191569836402426602748657569911075042187956017391499670315235135190281338870436764178723997226383443343029014085822222209784660537158413639825410088136062384807149708008254831934397923499855402854628786573797904835110736566719866189342955688888290203088937772814534095697598370721347250884086057575607586252524646444835040025002813672139638045863010720609834121065055618368311009007164725491410453760782958511014543748714995776433664765150133167387425797227858393727322256481563567069890925205743385006823586777360359653304268192600976065942308783443151119013306591662729491207903840189499203816859405620423916253220715952325681007290753280701076694900868550704103339983692085006186017111696484535943862044850056796379906324236670816372032896157604814371391149574110874442449771336117859476754289343700293831585705760872906514645266765898103261071086137801626701870998555369475472769564630246886771603563917927576399727650411229207576609250094319629585554736112976547114892536161999753771167019563929262180541955958195023970587721061565355901769501179290609624445307990550824734780537334167150128976912877172298738880164923176912018231715237677475117824028870211188405587355345775860279075129993667086295775219078782874488792998553447818638949093318343781288591333297023174341057813246046558145094977836520560949220334801930633526395893764277262724320552331029318195290997044169973873626184044160225679896657543292676672828363632169510580776033981741242136956058709281386805205847219546223130947095492585185433049709059340953922908070259603769422480653261352815002111593937152066706707398134562197590096625171604972620617350026107919992826734183594096480956084668514500354620295631831506228143575304446451307304280868021511276073735679796586539470611873223900310936781520058953769537210590741232183925761371955450568768844327960609959745548343477237777339702654005727565237206200494819963337072289126273534324440618781974821485388628829446518834719536289726172141876788127353233642402142644192130918648653836423281988066972581606151943848911632220065019294976071090333123752134448717173206968713800125186153770796373340987895125609514156847014462776582979642815389374543741511546805056256384211581743442784159053722362654531629449132053908140925899979319412054779328697353681963275118855597278415868931542927274657904420009076809018552169830055895719356667841003392000088804818670848686810181828437323873099967797801114611116344161653497801085851957676458230209946731946678006980622738654497155894608358735871180957346363179336274114060684227189427760563097057227133583963921386091809537986831164157421783249401440511491498899868900447581275124190595885470809582264303722724913391039757522514541275140655676933238462413647335717840676026007746077109459837249245115955009045550294019965415623655289682502753057809586646952413161403690895157851942833318808168340704748048759461625832781662084417871733077040672075852464545856580873649307176199708757048647445667994923021369103586766511554517892213983041876448211708217660562424731619849858242630017379089311939850301835653509665754084161730441025910940123971102552776379532690396235888578851128472482195398314614169241690375175179727022617058669857736911323155162245213191723486853949757538972340168675857909085477985376982885793394641647330474887974570250057128056527705317501322265320939713572182160140154024332369946464882651025494564484159031023823895478599717901953837251752019134068985706933847728054626792866504938432445125162819407022304753539496735418729861235914252745247895189581663087973724215797243763262388335516152405715554113535493177453056591488998708207496795083684382783873412855538233965295956709195432694885258504216545063423331171297328278957225777353430920535560958665536130023689688849629604205075106522781832496181996430746053132598400099093770159067381550670712776621040347887037202154888829434169352528733621533335336112329708851682939654131444562989455572173484844133623024953816841751706517397910546553479068748353462985635558271833061270238253973774645870311945102784056226726117765080837789787747882826680259957118306499935218272964129286042688949269128820767092132029142056613185013830208906679638844190993067417739181961619423425581906615344056165890443955556556047172196293847199020465137467247700753287351484666287443341826330361801880984498405419242496319714583653694102840253368141796473419551018274070546938899883396419368369263894946624139792406106715072266267545743168629217118348246622461369605262855655401474606584338632256354810027996639386107036830506529617683334338967732297208805185119482523189693297285532018137862588003503249816607683836182655780395561217352188090480841750726035948014130248904462410139816904620378196872251466476898282939105653438273131427461163508298365758386187762311947382807703260123880178148991585726033250831494481169251221234333174654588745724449428089493776127773762672386531544083021397019674311860591011202916096647022273489049033244485561526647864045631010659634185442494841626927062391670650726607450619629295873627923822875271469321867605368691559232831749977965960920232656910212825306663439548793227330485246578822349612159388413498894080930651674328157401309211323578609717907877716637482809487881342018211586585213834216480105669523434810781646872520427649469434670206369920755010051447844281253323614197114819170109370696774639060551174076023913314306417922582106316352504351084281002099103971644129405496977395364018350811276084153082840618052555002425270755668020264330975831983275556171290323606530096570067173118463104773370386791209738308781260714674352225853138870828914475144164283006487780719040432198788281606419292874796795216808532334807326832041694613504636265746832075915683700781260654301030635060676712888669797879643817855431857351720071596902556987680136703175464452662655745920673097598005067931018395787895606452115673116960574531378560805538054704001974015938432246775152276266617748938780616537837334877753981521424125661578162096013880733454058216416629595475584817097966030427736887222443286748353741334780697873957266944280708800605106954897709922997140936157686998599040441341697887204593924348813800654155065842419458792697140676195249422429221605365032917806493655381050924819362665125341552719727388341472823825041305182912274987797163062867519308535804347214465957680246197445781167629860210144661157255622422344646109372180081789167182644756191831481164662937454539480330758674108690635359361865964938580099363666148272551008287783154820554870637089645249081563399164405124132366736570751775964219071165804422074832975304699840729194133147249072755631925160602215006665057478829739913535409431910496335856271210868889093246191904466869714193606318413919791584176536041780679335456743387976160596427581296703531204854682034704250114778112451583118993228613091113337752112268024660589886008825863493685016274430549660678610205860892174021393175141117104972716114774250652797424996687133865486919975716061236522749400764302550596242164492100272731788680760191929593717166853240830870548303411855557942017296811015800901318189761960686673563512670109241062733456416265741760983048342675975041659102560737141935756571288876847007981180531076272090467949817978565387131601974139198678366109971129752907809083864128029448365437558067919029902099432216842355784111684362979152335416063399833906944768113439753500966192567018110773374830669873472937514101127087656899139036499895582402838048405916452079451772035511758758935716461518844073045294915196534527356577629210190593949437633118553697050200624950997285762259337845059308034954698207224194798146779301443980933338572257613915581515989500615684895224568211585977150715739534288702483521154956302071939348285114078500745569171531377207250674319390573750202445132988200995426087599943216401373265888830958211872141393049734041477431019110246965541347950190117878142395822853138775902223748043794954549998703715536371773585514079327570000281846740529864777184236539724496120094997349579253973238812773813232913075119888024045124695897281116187801502980143798580879304325603624888265834047461792846104648448640688914409200361840522811049955331660631577778561505423055485581892352063514049325412933036921868338068849890747881004994561098254879404843506508922056956479627728449564443686692392841892496675890040143658704468558326990469558357719185468713965561850712298709230507623127685039268856797333802645474340235650018712764900702494598644913506453555420818689169658677902038093892809292379188344814855943067366294113491566581521113402961418189839607403861320777481339783842102515937625203575486831766085020188561814810897280278090282180100051320069072362939346530819077307084027349638882868671100547510269705746282977804252631812557214862568867028991265718530573208688702002746032960723891309818502808562092522961892138743478099441044860065353717411032171616747497591299810967559682800652193441405735803034697346609661838631678030041167285849966509263705309734375056862787813884488787718858622023653477124082516357978232266347265909508149596514084933429265930594789475856442814214306490002949052560098593662440117051373563826896232280962961267554165798829231422796109361137684719071764454999525210854387392038780762845955934498186277010082160483422643226694701894436091794008413206629323849461021740902154651361631724103846684265185832434871018276669181144175615176426636532865536362418073974163863161562856836160902360366907873634216275328034692221789725668535431606130531632852346044289584135483818336359807785699705778054210601846789199582378271634899566232967800301221913826908645144633394379135999099279851849512255511506017393879081142126066591612973152414000857890729024729334642477149080622333561234357330355378740270295787274959351253113108380108997032254489522201797933596247060112000003989068151932716042140659717860689015949018888228996029994355720602495179750617281187857969247457834254473710565726426794698511833422604776745427158401354774633467574186853555820191300030689975073513507129070693727400901379670037947746324531257409735565453233486191106274627162818910245173344163558436255351045580561206917494652284270999305230570376224857760917667044044655305106356357727107995941512882731709231244781911219309128370899640165521353475853605942937366693541546414277233182602651835404506458745518669234149094626953952798439890899918688192028778341717503596549419172656918954916513018560994403286520983248604832867061768862451264932779323234740801099035965758579749774641592598277047047487153749151641721620373787684814308950468207849920154955808835292458761347432946667079108707555403708484328404424098041415752285504417370287383058038297944581875267621567645927115733283173720582745476757043981218372459373303646917796463629172991830640126667625874325063319257564972136094413877763940509246946976858507798022185314474689440648173132539372293128663073413811700539259222317949732829139397089909558162170429878504756481161937021945885709311278954818427301282485568027791973094844436286736657922400097979372328685169930451529840521109834254873478342088046174671003774727718021747313083596023003583392848091531196657815724637228594698871394982023746901719895151696901842514018514715481545609308419364896431040448729096063761495548102187219092151740407778197499686955326583877682192765600930403162685093212011070706898287912744929977833794274694750100237086277706995199202286194018621705114602920806436242792454852496050392486112907986161762768332925789580568050671856161548151666571435003449113709345938565611884661415658617160109407247493629764667408801962350668747267504777834002879947136022140401696750831398192176975658404414036795075818206670312618185102090706117487641747240778135863230866275336420150603668017612934913170938938278677207591429054246268696596267278609663596058912991096701893103081520678813098269058764187138629382810678968098635768508374910509812813122870498684941928002559130963947733049543616336024965518293197175525533837265249635287398199317738418735436049086611668711853227900404673958742929882383944448620155616703280842100802104511128894516453755728761657750094063922326039077210338083368020055526888109894732535952981096340113152826717115466516552261807272811575981149293926003825427588142692012676177096957645896441150796301032705877428106020413979954793372735483289266309771744454748190547909235699126361005880557718676784337361652153323788519954960355854729932289378891788308175376766108407221664702082302840202757353160178096700136052023749003586215027587054559968047972914736224526306212038254670565954779222917892796072158002253225417110564905099901699964202559656398857677683900232105825451432029712371510642399623094128211905854654644004642363819941212214674633233282356116419528912507932533648481319393392866277415232209227258604155147413425968990039984237676956929091367638121195227514278842358783147630662634286949780490835057527835882670504312331459267007413156712221339619411414074615210552978714104332036200382631952495743333714015123117627604312456947114855258436207200456011066751910748054743111841615909262368771287101534607238006514697457612760963315882435599981014910314522757556428038398506372611647613597846310035436855874537386022578111311658922477539004296004342163984658128803407916058544624063874055600025824582551371993988599019411843797890431324052047596752042707784840813563704134743845868914667615655575764789709261028274457663819304916701018753368086872785077647180234977017412095811536641793050267389896578448884576392211283822454226712143691208503095166926399643623227510805782007143224133641505030446000365409717473028224048525671390511535437718377140915554356797885443238199235627992756233481771964919177621571543837551200421862990357526256271390111939500213886035620890904996373841102758980063348429864450849107754204480717161318242480045185739966213196916791612569654977560469801715913422639620651004950834991847447703187090489027209657624849351576362327365324527549654457382552105410021439983045517540221138474315620202550926131751737353471009657082974233162461206733632677247587853858109536826959465747101983265346886520600945615630573562503473782186089387899194460455791809231100688690934103839778776312076300706814047505027306090972885841706559423985662982245334670480661825082582083027465217862705848795875509126327495913299203076639867953139723706434694194202499345710657653883240308581228998676934711871878708724653688825956509457487276786449550585967615031394836266001022528529696245315412516035634877592216944590169136026524530595088522622993277571997773149567496174043598670855168628174635054544909527506691893600160001352404762373707261943100119490180179772384995313058708694915579694115599415640820158316668438710797600018354344731286313677171256699267308235204116095168475708117178293357487862722692318240287272201791075689073186844424489268848630220797180034508911987608776874538995797533841707190037064303078696599864181060101243397889237221120999000204193267504872676184512556590406134150116675349429733169944730828243035706546451381741365150189759121745421044498334334541588650723894148882629577667351914199406907620384224789319578250608024214940245257783256823723877542280861935780846657719012461776736222909411307409558789072603904124557321877628896599386631095816129821843936810013768442864093298450795529867432699649065745538109428167877670056784575797000039239952242355218876948519213322238653537681991214507138420183866606840657067802792580930343180034605823590807246846839494460968936586120902095944183457340788991979214472666251789796764349208313328543146691226039143452038574973866210091417469312979159539031126697998368864187738652117554510300908424694306132025301171673977534098394993607573572001325306084904953893259948027378995901669937339370794302347325434193148776842940170987409668549991344524263575085080865473349163442829243362361624333027536491366182435733249095070486643789831517994314323417823486380952324595708883265235512265446020923495555860322357218818025729001386902632050586768697369404287397183844925986372585549543010327344168046857993629330891152739175903841764398696513507552514560542503586953015699244270659365280226806662155369128633285942825733282950926203112210026175929412547697040809450664418637454405188417563877545033437776742440892540210897322688193070024206422819556155179874324322365684739182131943410033937245770989751238811610539112809818193093989685257735322154218952121008496943847695564614381739405100626336581943145566379080586846861368678376273606937135854843475732203904088417813191819035231881410688048190117473519839568596643011718114480830354136449493396001534120665272987256679324752634773643838829231176976445134903343754318743762258086385833192781578236048098185841713836033777779757733334260902105191319662005704229186471892271482926082245939786288729025336411571683166087669275418642971368199070123500437010153436734796604290556322324204562036879725322844118535194000362325729613471992595134276864724881745806042218087442079831639716197480119019897631255934193736380082739885798592347763850229030138977771674354139063183200807633129583634050609445529368039172820180057468479145845698410754640758108750407791515304735810335931513070624559351240436627030262149630468588445000064568214314807303501901122442475876582607884337861686998992032502457193319192106965577862492566050789278650475040598629300297696687623690565240804630811856149858145243389486844426016120635506330846349569072887468518943182313457987361027930728956318495322582174665470492847285485555855547550033601876393829880900498081621469436520442178094516837621567877188279262763813163280316196328272638356358096318048306250782076577280915091467410536949831997710631822322326157136791142203890997811856618890395325557452403919428229301094295777325127915174012968206115484607568872124212338129754849714237968971115969124812768173430933123731821654693588145746191993470422226485719126307736702345050909922562890884114509813166315380200982245311670171920920138787954561590788652785769537726961217596047225591243687726817150631650895567617041534905707373245701307619376695568595042405976519276836680458537506731091828170572144466292861465739311095035240023131359712844809870206015047721307313482098015507154342478875916211715932582076781326103808682126586143218211611200095681262212068287461639499779540412269851175024953319891891598733742747630831727405586952993146395978131166619170141557025708368410416569020976763723746969916809649311803895009992212885290957762532383515611270366901671270093614172142144922915056551937523593512674863683680659262009475245575245057646470101506911849696848253406892073107063853952841987305424765279126598682854970806281835978538943537963114501018823265324380254691272514808108800629428923427888735135074188409377994100390341070792556231219835709714199220330962837610598257954244226082748900495551469102890473845746617880322124854010790716889261954569011637265774198782488239977071563212931235784055249508181676670443956519462915600609348175111177901761527645859993338396898588488465866125202623359200355458012066354881068176134912556121510254884309071844380290668133502575950241045285930248396226576873931508411288874782343797652366980374211549824612522291344491154411521405531759643094753790990824108752383499658985859335193452435576078662485810173985086424140550137603483341279487185053447531607124693375196268536984257954764299707856909246995651471891320827286528088978344986039045578652561341857575037946455808891064397087398417101670381378892320695399675439781421342292647951331029863157348437039063154280419442558509416469615499767555608542771939268386393771982010781502526283456718125924257621227876911073811418504082591436062115238206129092814963552275292700501564847727221739595169987590792177389687221802495674011603292307156518375477761979362902222241476615430683803735553697876955978790543182894104839935469969660639029720303415191624817227240774786338081241019215112424993049158037705722525836050646758453539127206046421499166290497233642854898991914022511083330541558725314018144477279437080840230224621386642762415522897052431590554184790776757145949160670253966918747607415417319869860896929974807434099032032781458352250134725610517382781251855992903532126046796224827168759518424088184242107229124764832594631217159490863636103796899886001567886771393554189401758617567539553127921547795975002212072119887147854834774836219146036617377298485692859628664598667922685044934252329319295432815180633913991112391794339313292149982869377592260582984431632009944820858287168830242160609899656014546001809288055748011264132923962043798718110187753060255910899745128908696401027291835787948014290332173123822173283794984813946550198368810040624764152866731148062119876423463218236675614458441001859035133185719168425353801044410184769936184458811093124820740472411499665538557994033478342171820357161565104965597500116368575632339633523902109485819979432025832486119025204522858724419176406929131540803382867226115596590579139397145184847502422166386514346307479472046233121207428100461701608203746289439270742537582352596724377291903430281113538009920557898269696647980410110240078518159469022611215046445460196952438244420623424558938411259299489834812622981794793640989335661136826451301027609470806096898285077383807713150698102938619422388703652453272914460881883997296798307427062769081952901637532180813021058204804173149993799987111245010444634590884988838983628496757373952017384166689038727560387652383175050478486197103122452537745372355385035054553516271290389157474087770878954106792642514403805517349455408890378821040330039905927202135498782390146560254394596642668292718509934662185421438109767421643128258872995835994022536173233485081880044600077314252911821768217150051001444739169749409221213974069741494690115521433802112410589323311062434786797234024936801963494726564714857096295742547801133642998235022557261413461590847377808003244395094663898939299962349414397037377596572788874055159067079209593541875613301240041267892158114489924563262770386183902633860825144927469394161960290939415108784286379155343386464559700225941454132351902510978391061182261314486865649196169005866113350748726542137088570767314263341945145704662893312066302809888709898906383617824778573160147982199729716870254018101457016608751372266624464075222325277704452505163508263138281525492455843529687400940441860340876882465043945437871350900840980386091144732382008637772345682252802909197250370989328639774604972617385669765816263387315099152991379546705818155814668465384975036128729736315439210993278683591805401850803855933635280343820475820093342955000808247430909644384829176663630384327389826540202926884961513835437810818525515114857194343064793067582950647884870812080530372769244323150018680271382968265258765523528970716647186818303660471534271442937045500875281178235566277842505059138837256893981462187616668679669426293005295944547940963558854149993084046950023859032621601031224495179734839444703352192971522180635446795452151257355379709716265050968716629066198620754131898364593018959515172021810144247903956059663777218474242889684555217948630582297343265162441101240216208156677763513135111093823180214636155112476577989377130969465851961387174730839918295311766243181256962401883696783415300472597007594965896266320609434722499449398852353024179790928787273518810224095605905868264041324743626924195607676745890740181594769414198716988138037416614171504759023244021978617837307247789850611803447557486526379551672005028915128107628486143724543535605154375813800986942765223058402073297981448282601507317487848450430082260417741329275808635388707316573893766295906889175519729285543008506082267642089715296220041212702462512897831732700473890289634717715331313370471067606227672839460347400033625581301870130224914935261018426340557261028101244390056469863649003984047358739811924049842506947930052612546352391651080225393664890648731823100924166850308041596336821663710167989527396530652769306704753995420932306905613886716856199305567967430096466615348021975108783296836754818482811132235914647410815754915806297417500511861320665503750769240559024489985411022160175979196478418715405310832379759033913964861478464562447560913788265579174176940425461755617338237882690161765268130605267436024063493848889326275310832457008183770888021231528064464925944466567219341642962685014539157854924694501443095971185151006803380494396923606750698962799743403322728520999706764886263725198703064940275758913420235608023992163839073171303272586982313762619807271230813389481533686638093018963791289201054232899809799838251432798704089515419239772015574708610036349419595494038798271126918119684518055039086566430597521419802374953425630238659337933188325025862746599748289231484294018449981193057450018173762503649925345817090266491368768641885053588639720307283929389369850304427572348915301623405688990091794832117274114570636954045275693594996772346040454859472293024054544440942849028595679669788026201346505065114609844455514995493733838317943432356472315164028883884325984282325865877211721899532319807120453299803824329389901005039317484797704441776719681669854572063430907490341596697324720828522023102790913909273375488865277406866901452711774352338264621733274066781211095207370819167208842344283008588451740998452059243934977701066297776907815602715155795821408665945117906406741959843799822422495992484177546863514079535496008773270274190528014240796992081981493831405837820577211487926655525701734512266194700200947697799508629503540139543168234550840068096383721158515111652692321837689596222085730961655680068227618337704605183930961656964424669722715839016138085000810178191006995259072336726400457128480167942911068414898021647454072279360618453283832667001422561230697837167084508560781774741292156185331444428231943364290258663716909482375797587638468201610252407631478134885740432048423850230872475985278352112963676146619911045769881205760088042681676462229344826903178198563778198146384501542217172258163194670091700353420554244798227937353480460294210622383894051809957706159016186477032972254029494008953915738655847991172690518139216942192177199027272118679789886389295826698941964921945869074987144175079338828201664492731636266503245810461071264060487783161782104699520313002984544407651639939180855911426870019047933029620322210084455644505640834151980204557955015709754638361732477901763318634124207915210507864614822017278787586526424707995318287707639201985261007727102621459368059323515375327684586204846503768718935190501842985499183340922738554955728166616574400519267623581488097855863910806990196559228759985835203928993764038828780618477711623326126229122148290837622596652886337328954772344795179568386543848231934048534891783110727518702058380089334584566755176165687356421581827090343286808137955025360603741208350745431693730714099408765949633678574685884645335175946660336745248167762733860539661251420550324570899259931411272796665230527971270917155323841408044724191270055802049140533829336562615653626096096359088285138664503619223348173593456393734630984190023380346403471241042628803423025798814737902288230747352615984769371590769718750754738141397154912944630126986300391304192807853716650393732047518929355857080600105987593681256826145901825971924549004679143941739546680943837277980386548674913732597021610263713815666950773108032625199788619254991587948608704429779692759716507023185022504456579457078979666583095519712517594808830936358663786755350722768379118197721657162706159961939845799265771851490569229606154300993723653927596730180836283671154526491474816217897250752089533909485006613322044402749657028271111211758501571536113917506661881985910956978268392217338118105838504969310895318419806822511832112840618544019813911646990662526501576719314354145096561314071126034016523451303456964083974749475121330434626631035407609880825748538572479222913683640329952307167566250063239660715755808325635728934971841606498227154715256786042119528460846646760709767765337248645767829929594804240925166636147045832038052713224472818865462977584953030501206825584528527071394528664832480003820720930334400931269201562523863806093375393591884883898975092244444022575664910945165529296268592976450384549848069555692197007342898841855264773650474998888743296576981554060874495445525069045912989775796608450066475036553593253513432804677001475930037521938738875658803897150679502728353870117045631455795272817498726679620598735423208432594810022767216462573044860435146914075271372136684279814083925552381747342056524068545916306007559824453264286985913825917123622057514108392995812777197106439696281537206046292305979492732352499644825437981230463901810389311434007580886326783184048204991617946929222554056297948065289147600680996422132365080799014432147953476283826037919788056049953443329076352296215454561778666791878891301152657294348618393080883677209237897001446164099770532070291452079035212312580339364731680904717136054851682191588503596923489997979877860079539600981325725710183708330511314175740201804613288365495551959756139290514630318970973504423573331457891578873145595733643020404037074441165389778508004924116445981621807915487010712552808847708874940710176626275643629759913505543968422134160036454139708801099363802595297862552962070969020841364486605962778352582719779597621046259202517967899038650678667445280002946157323391440033916097435864992638137887807566491120160471895989676360782258915544048955395772375107487624401820588463740778855617120636586412145186005891273678211560616360854233956991132034026702495477029854160937679191242877101086722943063862672235502964739935135625572272954639031830921153574187547235681385610041931494391053183210084970713192721748739084292799113043456223874139472702879692727162929116311047145610660363198568287092172887320940231086612277467843489888600767977069791398875710672257182841522468825647625648401671112829326999017968171146277011963750342770295395726781075370352728568189386870648540553711279799429230356872735092507629010559243603581114934308634365652361459751838269672150621760868431624247560125634176954717241641407176997938046364674635149214457049162592953774106249920279956471700348000225986962565962180027364770590223763073446396785390587783650695874458259615314230167588053346672867890327090198702196639193376871984130862093226445719940749472884095036679995461058056213095692444780625952860588414069670204609539815452693140165881827549727313196447813425545631751268276152541860358291744643465154273394101375698486010881659424298315007385028967297827437457020380727243195775300083379913406018951556485830893301678063572402407094448014435241894947996625785449920486904399230470623060712986876904483413209097192844307737715038433567435376332294706910873969305633502549134958352510074112354803655914063239009976914307307011332517296319645283091285543410583149075071517605122217022007574089165433134626410252368302504844833491399374911408110725137709579196000837926651015030484981218806084778694554229004376597707660101070498061972296488121433938139799720427599707848419012041031975625442188791972967588010140120902061280956571747224669529703969391913475409478181825387513780821980083178525111926944298785236734027606548244002167266264054547816546853208140968837905885210570030343732700058687473286095374698606945618218980431017203761697910673635643212675985667022389937049597347612487388806088073412932548267348675267777988460535507756253553127340927005453339930138959603317408306140178636487774202603193098597653662939883014278949215372453080169365506823255042488077637173658454557409780735371095079096118704778768918191454300951517277279554149721121279413707395271238663541137671740599862991668360167580714698986257263608173731414093065817120419092020077028002387919317154963734066279345139043471461840803697434872283747318578472697117027055783683949014404271737037754509949115534610438015433726703587870301754115211504484870910585895845827060156597852538961225510323155775404285116374401511449577775724950701501601324904024671894641535162967418845685460271404313034144069469128795575294405431268399057474823497256941483785993386077193311846831906218525475729090498324729611437711355262982320189105605502446382838854177004365758206374643247542328791288954070735400932780981891071589458154786738991839859799783732711854105628166907812435573675783456028105352860284041135058769339623521216489513600546610865580319026129451327279826927624281055349878372828743194361466267166639646716167448991129383696866686549675488532126001138601838654882518807042181505466913230739250986405533834440458404624087715877008928938154779433300963856682741972636003674277258773439552730822682658484356719910949478900237488871645062915070287605690916014968120366928147896059308082281989983728484401880994768549162952672444393289761181915236549532557332498813807665147616439648505103476624417437933676354022353733584493529043205434245665763576847363664567593479151665172023324250248495218301060127108009879798912161430061068436550673233852750441082122971311180433752614707816259095493481258521129558563030516395122614049014646268869335965521126298269421389843573418937692937444918751940863247149278509249271365509478729623072420517877883405174406392202365626438415355697521053651155689480969103406716897776388587002506105451193782768453598526041472632302524738757389282327302028970182253073259778359832102544596026842176609499269435024036021492621180939178786955115294010539177041704820069263552320614896091504075776291518247620809101983386240931246638433104224516967607298783402003519504665989978558909447609881345532021166438155113222594621314422923361952096752129303384795002609666489797752835670516800715769442055050122125343015499895644958000888440872587176921492446440255817722371237513955665806046347750764199445724572731315310668908661765054367900929772248890197242962573172531156775659479735589549335978104580900170738612881089778289249611144200568939018566885748463181160173880645823849118190711769757721630567231498550373148912285221371552393174334678752333105970457707363336321650315808932752741171184697571603802373532284853011362002563954174920472949913565755628968329736293049256722626361412436933958937984940387093897554343822730236779950475862104552527767618881124879170825656921071676045121672543716854172360732071138482594889066661308583120779357791639072111707995693558160041588938618946041537028374225756980004940949206412844851014560458032486188044560358267194683469107434893911938062630700310828105141874312090751619940635088511171489551481057649441294314282778686890025855914546214822380334036305219779761539461170551634744933235706429768410868826251353057701167478207622281284560985318659487022502872992909277532514084653750883365779012781217777645554562461710513769793363334955625289363998081090375739039309787721025745447321370678466659202512045604581464405640732643045002984364010794135698536695279347610296907232762289802326849829816104273713561440121019699520000362237080049254016462493253743767146599504996196872299044039760557205356804749081704895304477827300284608649774560718202284967500696877627509041908931110715503729517396715433691792709354120685057235321592720013932635392546519269527696375449777308780347033412198207655677961591130942135654532933686180605783203654112952292006332505772797040219792884768993185761659973072874351652143018367488309057094685316752952877165090786567767956185883079880710460605084720627277619963561777046524990273949726549675341562775194412025715031311026589257455366520800155944024227116433732607582490539092155784001781826356143537188923448807015998425174047529732505847941769088022332880439509943651882973691940022650897895658005188828356501127084081261695563262608627754641968267844674014843874451713187457598778393333620099933980778873841653374662035408472582403600054216281937974685228823399844340157586464817820643821449144685310819053755009847395862899043833996268063464311629962407040314129970568738960217712522285851841005201347743008610321370444636617479660771030416192710415847548462947424054892038437700979977691648265893256228374018227334149220518247810892630120879220026615028912879890472863294682174703692621976975921836559872227079883590651677984414433460356717492197766755672643202719959118961369217498434248956936855432577839669906997169395848013731195809901518594647322172381600443751817854036185652890724165171423186802779353616285311979925388949412235310478602630115189024357195031380005927121777334070489121148554197414941414251778988927314627547122695341916781761032984077424985422028072491533911907543842667303766961798555053452856174112975510608535127413845633001641683299384200283357300666475842709030882457970062141471586748663481961292174041007728841809339033820978407990162193668690032482877157187425337203547677365954203643519720661141054819006205926958272522653350849838418804458500135346233239563581094117689090063029616724280877363141126222739116360786138753413207023056875220941763855875567975108624944316403621311555752003546849166738656191146823576305663121653129189496294458519834955126203870764676828747951877955789939565019698617136248121508286854604320015866971306821187594089631460477028168877018610223402176080284973062866602463330474499877762071217254368020447037144546151378037973487253406430916609089970133793992713567071291792238555081387359999224658400674866098725637754719721309046646457287572837320381076249398283099929349998710978573922622120606430538410871099346269654593112820549564123508142944149031352024857691997147091207554028663585168147857008577841262148985642634000265822152677855090439797952499905185359156174955037613089160507648227310438100908536544388048513495628406333666268031598604236569965060088304691798922740448891730313281401076094068242829137822398384564517800158037582407404876986076937481029406854322981545049996886293082673111360093720071896381265901037324046783702291988467973506566323707858210295399004152926342740136641836272578228873037386655699869079773409942812342761495936656540061448632710774669450316925180987765834344320358325466897977897666361386505860628279294040033999815225800558814802835641654599145987069661576899734990518656345672650733097888164849015477534077146257042974280005119231971006847985975321705557460899575715108520509052940408853733434305516982131323006172115727585980725659982890792759357711958899443435065738004088302982563349159435495911086307062332104101175591066707474558923560189632648469538901813244815080922754383135420626178345112803863082742438465002163860531609126004377190509292731328684162999200588132551086831562592022537586584752719721012915403239353513438801314299696017855857491665777918686401419795423763156996073510758852864193864111164648359090949708804254373659244501923318272043416885027481060209167599562195502573495126977364642419726138326202294429210110527051417348266860652595759902808179567218624729917653786621261046258908286846985573693446094058457180090081830136616082934512580549728799030306020643332126513616002957018482536240428334132361002110575017551661892632515344457387788273982919614980938053655876994676128475932786033488737891462304915574074354552655900077755378646305315695104219344646427554724124782206365522697948626339715556870908041920589046791464753888207528150765722374354591445468227213357427419339618528911608735757111361486838067873087501217239047667618487192630578362552294696607019709484997417401120528040883547597372352945579121510015125207283063557974417124652351199342566193487783743595128900271583643800989283255419152874432281706001499139207562425019300783546020459507978039016403331571537064358512970793860536038458746236268308527948820811250192773320243048073099889410159049754922189096861731009287973859961751913161683028076115633433382019406599098978442184343583620870946528372649549517289233639329431933820820165871062256397701387598774586872448875183528996442727889265805103294099158465535962710103791224318212695707150687161341558263209421433236869493016660790902804631946532337651943350409557010884731936761090188970022072745266093251370241052425107173175287295100168891648693611356805667532944199681057842316894517806719021307381710845344612851315892174560930042731402976680008776013357539108893812437418546836234081865855822511129209573714266158654113289275579662064818718974813338474047961365865561329686913612586525197813658084775406043641939857497094447106362099069401215902149174965725315489063130366859570301870478681535589997193532549791713882564204302242980149885464333154479090467189309044945902863651764208883140999402138079212272058660287736502274008351193455905746074238781851350898749983358571159081971363712223439527525085364980625782154586596385070689518694306190648872429939894304284715062401398579772181540534073244509653188322747845204052906912013270880145451070579547987438805827452462503594344477589038647028788274395484459448291826463737530085285988155071966145747668181052895894044221039483043731071259592415908323007102970141398142763527520387322313123347089392071693583118825292009838143251526842715580371400592827131857939961012569872891409639958119224193076647284854299289844458568007627456957787816221634356224992994603360836373992103814366738069001502776929503471048715550364295946972645317784911131030781169776117826676665455751561315670244031022613423652329388124682314840775603195163270966545879168496319205874834466498178880158254148544450003661587201890178490069091964253057945800171150361234216083296966212030478688357331726296412484276109386623645593940622898525192592775577834923735145267345262939573852776193849820322060551780084346627046437976422327499063049063124134823013026228427043644651600561411535121939298503099202331109045999215765483352769128596471593409606317711146860089104961359605176362424720882385878672248407493075259476555432399545334945496115622110012983410374265214411875320130035182931783040944016776751921392631033311775619093135420493816178282018168558943611599896435600494850992255605558840715840482522698887979515747571851145306385934136348272381133102416157534737246131743125262486257939058667324479413263457838342306617258735699362613980239159747607647665123301331412641219516751190557562590630593747952580487043319871988896628045392944897262669284877983885790713925430808074881315507842955096656061076153927500852147124510380525098563982126233515658305720716092530518113209980923893710838700206589771835114276832174073657568816701149398458348154425679974606721387250050391908238364684294496223691011537049116399642354582693083686311139757162405373040261600859782376602971387310482894061445754915404520820719573177914723391327022031954594414188248138855643687590757108767262235484992125890521694077582363137254218291797694571034912433607682082462066854352127673705439543349328578510339300433630624813542989249939715184620288072638362111876272402251113718160699010672071481260689334350251623774173716604219465695896166035492339458928056281601947167016984640315511258352175217778277142287054686976593280379007859323421262688860077359181876189089420403801668771620733668945056312280459892489761180718158684239762074137346744415100606546766136853803249739856841765231543071511339347377021832676714461397981456211077026477340421242192457979916424158997737558650994768438833218181661007997755689958099389259667663930962367434626788236066639934248834225604479196745988361582097934147989263466479804785946751972758210391701285898413673161229633363964663749523024600196563103113875224171944782461509493685036454378309543333859699994362624932576051038757494147918456022471664861960868668123670933517333148694977005739549809053902921995219724430129427283327596109464215467831748317036357248793905166766322585471406789763018453759042942087189867002388787806143558190229956577808256259754745012937720727076844960954279053427455112934024632490275509931432471922936252385171573099648836090027800447758327986244915125594736426979737014137958791545096152662123212364676500534500843178167840725391587867836757490740230596130346896244176442377911454186892286770704173999810084118172595874422715205176887031558084929101926141237134286931026723215499605852910165452492803279862969996909403479335441976146529499422791054486214814310564102966557632333338429481490181317496331571954962655990599741667812442138188401058714304077821876549817920774124070156984734114178999424495519619825623770087276475044269755304974003074812309225829773317084132257621897611176879205943518414993367251748951887494986055472005977118812621200461607843738075071046847876146236097816767248867375556619006598199266516950399469876742435579644619357530644618532066412022294223186513347590031589667422400735887979803465777064322907305077662346068434070745838443383452305517911367621869296482560334577463032770920680842727438545601869535111132797916531547980340405789236885570395085116600232953565064590012898395435142027120310392570183964959903837208193261845653530643639231205814603507383062676927871120109668006509416379751468113048852648797800464631663717324518002303286894743059743279881739405580868637463180814544884802377631859670513916365360707852913543899004427560560825062131040605335922018923252936122899776320879831632035223451496320704983427492212479144430202610567909796395842144489954632395446840842810390145850739471971493821080027212854929600908320228528462296306418246707011835699405927286449637555020623233827226685124563890774790259673702163013223236221243111539269358074212199657242635174178496448648419222962628657596839962968253114631455164893798440710747319677253164907832389629850848738288408092582719168409281719957780283802647537405321625481210969726322207780016670757739311952642471167016510504308646219073924269000217765549772885990258383024513168795402081795475608364712173781816649891779501621256640195376982939277323902767114103500458398337318844004449193436257102933490286257356695248527611237396844639092458602907461878812131434259149267848671706592881323044161869340294527356321647372494282109830165172055268497758102221975014215188896325839777222874905162260244021708038694070023119404237689278848596282288910565555782854426907763866904075102943558080734394026533261442050103765244305248137977015845272810945595985937784265853089918357934086179029732228925175692952792372129417500513811545699236654053287890460169621607499277804226108789238065921409381586885874017640523538029118946565377213030361542948444854772451177319784860155124518073803420119707873234464059486354039176783588480249840326909617703537904218611939016592399727856365858521147567896612733806063009226640890118369508116126401855075012787254105322508573277107144827884686739509115410683462651374018692620106144171378524898313128705531542292476473446664679966442598425120482511366824791160953904579666992401812876965817379591422310979944293401663185980561443437038575769355011829722493495235241185212702078968959187344040164863169378632048928460089542576550442253393210474595917515235129265134928364910452419230293584838537235646611521222807833786233815162688929073838013975341550536718590739609139170861133341717297360349861486284431192179164540622969119201598370804335228433291615312576512260828764135716857137791812753226900360514073994284340107776433828450148511064053563698174190677639589413106152798212525158842259587137118144463680682843781865215758560389408146618394956291207811548177501907295281796222821491064730254358882444184412388709499188791541773588198430695029782120113059585646443988909131753349426411884833504238832230966961731660713369969086187245570276633658401926662547219344243436940540938096434808330661765408880942742056023239423770669796260673567268254024138452714288024775045856967658654454802300219237603292534323761253921745577627733424109206373135330113736327109064634149860527135403946326459501960840163406277323471996667751082920002580404445809465057704445429256713512056546275280948825253228548528031937973810319312756655504440492956844783016511716093690899053937683138602968106942254002500109830328540806252214511172914711569689113731214848670570631342684934395536375125128691756606302669313465524295569373658578931640011210848842328637693765278592951543400529176985243749580071517802770324587844712114431568565216517161284216372292459901428330431790555409543029584542693779490948119945584444282964571664544894067127411342780661156047467799228848207718760469830819956261327363998207608616770029834828527917676302045667260817113476273213350751029782567590004539096912660160397758373975358815386387944305735154531338650593226151523378548623041128122453647112007439756537608476447844834222702522143010958260856040809006599719888498896817826389340360942996144153462643040781395102498131204773260716123363929394515468126132021016160088762757477035060359299770097814195003282958939127099208566658031441138810454692165646933738083480461448902298281641971720508645016154655536443954946674531949789751074661709232909609402433581133871108464089834044378302259340273499123007616114199260548979924195640545072020651090436418240058406381776635015654250444416548560207690817495013877641274413720691319256475363817139421389298282046974864549049093110105730890024923586659638292698813051061568993646148359395849555837334199667717130395451077617641004084330380641229335650286015319811835291188143695394068419920539666747585165180357439443322891793629063823662706615835534189684463687300197718031599579363688974289804004104306221017882533425561894382488159680519104689487734390712226825525203975837154756797233256919408306136967610855724879490576811252665061988511688835203270323373116615352037346692068653047455673090620846866957726015950888914122976059254026408658092484014755662549508152201528267129076120995018323804677347446099337422137778454640591640193878739200369295111453795332998869788347717542484048777748705619095483108625004096750419389658979939948377627042151984309916548147903223850318512973281897532146160940388726876689985911557973972200324749234201888173837328821367161145284303927153677321068515582554309260813723335407534962807063242226318494749114569737812676718282192430720361299980752143730475944540925291569246259801070617281159505936271490376051748759301984577247118818484979966834239325141348242257844233411274955326555550643286740671739325002282243004701377559273051876949963799156677927140837301002410642619410774887442455732171873098454310973552437161784926939050855301935360329294918453902397210177075102983895656005752527818001285663951639950865345647232006330752906163812967248521611440988981057551062393244094855230036807318036402743606534416910698829340983596268302113778117337077814239018474026144774105880065221263731047000429163112806261992303243204135777214590867215700216301910362504528073309740267347641454518486828796813035392108123221553906828999439125912548107184944641004071027667171089312033786319955943450772657807121608667293884722305907067127035351704792266854675554895795919289508881004054272652284102160932856931191428488446646366070140670388094072542484692151816879945069334696333212829043874284169108380769410361264125586246325070954909128049690063361013127228318424268407445656848212773943828798432395222418683743699631584899192140021355747667344219203939253849913053229877756301931164736667350825473485541780416187247384029537946958168978161294529258443833084027768233045928479985458737221106362383503677508519696628575377371072987603764742660111779981067518460179115779030679724669099812365220807658908931558063154296153119953024024006712954409774512572082804483055770418460159354502345556578315750706794653549061943149183054965391065524754823332113280733428980788108053252200183943699234945927973163572080184658085854921565235084378101792823643383077824661885165582383532417453985147827658168808089632633921128282097764336461984050402240700292298305897826998226212812588738034656218010343918785148853216928602714970844094548106394972224899362108639803044979598936034804906635167900643995557360842715872782310883510104092346932483996474582054850780603590213275763927225894129809923967486909135619210549106853607413871934693647197315267909338384817628082687246281544187859285580728173789285520372035801100237702493643647675796746428025178315693870838838732585994180235576806210381224526577152262481083128262435973029367120825112281589751529801498303946128210468807222993836062975503344517422096608494414692270563342051330693440578602334643467011699202494223561048634682274508929930195820264530141143127615177906559601194432820640248143212154160532097517559854331475037576020267377632781655750025951522149177841977379069237275193527666123543231045882375922764401250329093140599588283568439465665357275114719046813492237506637633105857824612264547782781693442548774569093667706187701334189685074401247233627234843743163485399763415475421645127996710057818916451225172358230076520757364920123252498784022427077656161999215508690197268327746608584074522493061231952966645962220338307654516899363873320717436641520851651762217805355024587751581712209856143834013579984565141539088300010445038674263851426957706678060529427266807177776836014166159780902230821700857952738937824871807196758448234624381048485010913717137550260351639587326695279696712917397170722974338422318159314833152658590458111676629865071829799845319185134737741773573291240308372285127842100684112998073611331556281556057077699791219289767411568506753852672564642166733948203071566558640231104228634046675854160597099240548519063674318795445887027826823219985740332900339369821740564335720740069382764454119709858202749376519262737947297482877671309009955466041085394793937210998713722251710410150461001613687967168422726879771623778465902420522280788170092305532277744856365538183080633168181743257109341642895669989505160637614513750467719439863051293150289365890854792408107048650408624145054876909030953262122222215753310697749394619088369237476892250936171665685760317097853163070641679648366272533020501066065699881102437688544861460917904006584170525413822592838094555530816344962888463470355157692384829847540520920540367290384242426703606212623240825122271230567032949901294757129462944263072045004447450003085305807257840880344716996583753813514962600818109177107092053311679837220732062984430459182451553819622780640386167851469367501711055895758555438783603705389395634707126978354104712225518368298298870283276811782894516257980871633777356983344409620464172616109393072993496768914721162948594578295959314705532843053936317445227675540181404488916263054013675999089721300140444379653709820291843855011811097619941795757906030711148540984569402578325541721361907247164896204128999710261625441349191904804968943686446051089347316956189556862940950866606972950268647210162801148076143851258997884123558486230869421862651236928249207179310182682716374770666027455972368929046972367262258667366568116517242055211104831125750228748522733878941348479398052077710512316449331982268505073276037139065081153665999258208534684745946252126107128178343838497753395517650539623168353416062277814153417899279345207964209225548743155258083154049789681902192771345976641591323488859993125997815503703182331602266171272170523336142756084699905555060973780523923567091142598549706570521667973491411673207814823553890019659394338989674216559073151899421931046099159567232130005883681099770376748928992885451088244245941975254119150896578929876827492113800395941588394293262340711262814885089258712753783020926004595693250739688889892169833427416584404132830249560419374717600260076247774237232342735550185904502331506000606319386140471691356392459264459508315502267438094020779337306160843107325614153104772340568566002205375140510492639461333469593297173572389306572962004732808527769511356384562161959948454729784194810967510492670269384595137329699513371790788963660015260460498582342941953353246840821335336087784578202290367445487250330258749609721430653276505385748506155321466321334643797372354407463103756775988067450324039246592361944268248651262132859701097604504205908076001860491406875760345961376931596248957730073765771524363505557339154107267796960753316054928601181426720080006008667149519343902789998044722692498326319340214690431766228969739276823192621505949954438359794623773543951647351539779620713961089502036309171570669813152501148195904962591839386373562001626103297403193642141381760450575253314064012220449442581488324129085159738046061233688112877493528207248929314811345340855041559719487233499557516115546600061369358762562462852855495128952528105102976490957190897192633546204970357014817404732434747511229722210921698986010550859464125397874112196429415608812138023502275091647254565594654608321720452280707651079685932598352552449821292559647998036907419752624754567443381982820146787920459208960877829435703737117081186533206781274947619674564699042964093795986255332973996219457588795684100215550697656665746109663881238229721754399035834549271531592860733626245947853200834737848141455515942802248479421288887459902568618468849929687664389658621860176042507584719692869294252016985427553418524331424308158566053007206351769674547613800690054452960483578123238070323217225223336026253681421502201593651919212469894516699258504612873343691785116658281611165334046164027266962418709850887400883078046739707972507507266666212452500242886603675271021647772791372624881676186661462638119183508223473850304945399048338614013882758229771281487634690465093233042269856948785727885780810852756154210039203932243839445689841549668333436260000846538780905660765758601614736279859139330478667824353297929479199874274390119527937529685330525480421031655992592164408863990449681453810825952981946100316617104326723325922377486474223543640188462545237582140450624110100305002724552498232255597553221907062084134557250824723193389499878367144095345430229109985224648546945939370794362941392049118698019916246904912191139235569337981177962562407378225230204643068851501702098421851869775261162318063620756997763374566237288332684875206432025839821268912896071548511695662029675453699370754929209959479364229677751825155515955831107781479248425771371489316336426659841111763429493118524896510709009523333440457183947047027046997810254770905907133383658522670334145862912725995324418173606666973319403098980029727348790988801391357298620153305951782908884527216055446719192807877679056440957093988128059220011745632459677650982414466579153570404008312437006920568469990239616971857702938463423046171282134494626504221929977576551205712248440567989460808930145121734575545256374233183189092330133715986251965262239256854072847627833903572892222460626228627130128458774016231288830975543924797819580744312517505660269819578041657385588803465107772029804581979346917933601430410752387229855060879146282708836563717259519781247239966839229040201516984297288347874266490417363822639070213053806477213305492495351793821550759891810984172466499094735318925129881146189869649812386442536301540939877003626819656408438798186881190543210565696545975341482364151812639275919638280764092776412028912098626806311450583148945810417678351882800914946857004248191774229516860460745275260116649516927606139967702813888415842111485916695127866759757078778836419919590696223873504522141035376449519600250776619203193148382085465391634499827550937663311187703231516308450509501627548075063184030447952233166687709290006034026106051289092161763221979948928025172467900479507648554598933775502092225384891964233716159360606642684086063378487754485861506264485331077347113256969793165959141879365798160889826651889407563680205516342134504645186865389291005176652322098080384220225441251392651990504789658953682341933455601134751452041840573421946307937855420079082496595004083881173257843459464751481370244596415703437048942463187042679877718751320858377356634724378210410665342767155257274967088798344647151795030643002906774974538970544107975066249534888375035881931512097466863948277862394270327819581452018528368610370156725718933884282493203445514647524715392490087851088752268138082211021499415043978361750012546186483131197290754749339539437662538591901279667266226648512457947747668289698126598216426115188897710171415719549720109552392807332488959404123596757915446938299960413066505736538796708627027336096143394481856574334400730432167949694587597124502214503641491536959045204481233140398460967839571688207964282396110187851092571247624095589435653107650183502140673522423081863152162191310751770995875638554520750675578392973143271155353206182917869248217054521618755836403172512256053750010149242349328391960595694727370593854321777648170425093217135725869084132530052967236448158314654744248987676999124952866885988343706117914628827360460599404979986605913159119597588872338058659791440745252635375560415974353097219889026729228538549126289029321933736579958899835675952217219410997874043630370091732062070924064344178685102523357330167911191928759762093149409409032391367995562807242012944110136277450283399254635989128335583194784581279746399085035967616662337181932880607830370223355184249862741792920188662584700320557547620534515937585957071711929212816003474770584762284226380625011785705207957592796129269837005801012720774949134742541539605983930578581073359328876105564388725322834523103571340203400026497453687594816553698014497363206998205546109911500524410706288319979950812464476793430817509232295298748625764135014424851116655125958578911335728781841801041159197299123189531612273006083205440959700078099175882369698919395249148906119040225279950586207362114302616918429608107513243107597378989097309949819792760372702745360418269403828768258100481518056370523302386613839031975195364780926368587281680658687794444456060133246314958067260661646131259348138456885376326535402998373333988066058911104762410945029767781220897949334703999346584401866070565565299758900984118889367578804754092533237280145255971308154252379490160800069412034596286581350180679067731012044674895446219078244619098748603863792935855848789254204987505374062095453379398692768617401756996829750006274853289347094650351655689460873972474465975588221300638193718347747191088713480032265837660915460051599563820739250511360180016596008852507633456094286637455043870946429736597673422332357866413020588671881840915369295963210931264780009576107905366820460958880807943598551718529966995174299682847192861242158544351298893463009551647623795367760816204961845970802961753209428562077716891600164303436284704825465028322559562854220031954567857494755293701271832342200672616740921434736588896607757225207427222636817398447864324523859336801044695252895957359502544226063435563490632923579308468596419191089813505696646210646099007814488381781031794873299360715245399338446550565507125947208395301405710218987848039867197944785803189805034640782068754043508407900163270700393961678159807866621813628854317626611585921733991147032554770571419439139173195157084818805755955183774347186500509458763429668583301299116925192329672240417097719502542763813348372080406559887820250060446488749695741905790355212794412548903965556509851239018465729053944547182391925335911386460111415383457060009472949654787353400439871065732902135974180476378483928335906753147091125487552405453892283251511618036811871396677795482338126745717196194468902712877763108915091363182041461476235558889473633639418320460787740612334122568884343711270347575578949077798652108737295754547343559470081071489532689246837694796885138497466522872939066881758138561971718118577723038513547680654689613835367867679067852740470476376027753583515880812205489192461586919087914515088710889658690875342332904331245047926161111623799014210073913364694457431073851833211567040257005891760444738765156172554541913711341498795566364515892425657093029604967959321659062924456189270896219136706152786721673479107850375221779232113755142663049188064364527446774843450531456530452061226666876745825546348956830188271498967113634885369138718701438061280822058551627185806069736170149883288165176775319825532479291732542038301428278332884005632162943757079940801890625026516589584177459854744112837177621743650445040381868004649570484548535618771859087814293883453470828742397584389340733312681474147582961960032690996380790605982649684175034833549371525073633671012775686742277583319395338935629439605801057281516910327379959044969952916598822433661723839067811293560327914954180910635546960217833849527989745795949585124643410002958893568628398918887093313616543349603580420385990521539670957776402542350502714530112100048354038063689899102464815008602346930016857153605339951124592032448153253632547711317197751296074448274657340516157089506073545942659923244136492287029283270874300893330687603675068257930206289840299099750109303611176562077623316231584084903088007380398457931947936366259630752060630122327045188952354712632477933246733159670474103880375714167880792100365659552276607929551643211541977277237518150579070278740021269257272805631997572817450269389310337300014630675113888552716770326979008179380880175657471722172715487736660186032703186637573048108131968839453604531517920527597501411283363458736393778163128862551075434733079119098526713497235276102302746858124953154307059184342978639838563570726829279357492028925855467176634469431318243367667586010473134549680360666713877115845726666393047936078864868960665002246256599142503738343728331629190868649976785030669258784364229295569995615178854658663961411186371637914879571455024390601321551400998366203963088874746384438711499290402509004439317571099224872396845643697713852340469153729433831711627132204127881365990217577379802482508138543581838575749674637684082675053159687816908680195357812897887176016526220007923972093020975948123999160205529524354974518708363504717645308059389317904897616741332438019753512561443961172513433054527629491688764883891629462842812121085942243712421952652908829114644583339363852517950845413209395072198328534962241073276347178918162378804026562995286036566944731509238382485018029566618892186677174258765850213376931498114030619488473063995745008474639524523159551754572190770206530474076987239824740968648256185375859949345673285828300930926706048591371852303827234600508753055292754042969960694249262998517381384333853719148900558512096713110779973865531184599028307494935852742285310156685397023605653399072983690624396896847679793555596529808826761631167985790625017933004503300084616539377180702876615393475917414891312890833022114449995244846918705776360374893606435749804993832355825710968388593317748265933064094044603894722637969866240825051000952984464836745832674444963267653962710636723627949381606740066772743631072105734980024182200154770281315386672076032763985096417141445339545254648065995805534790079494613210379825286028646228693327681065620552069222935266766572213592389435281851483890855225355376263351866026982892157169869293678341070007399900420850268595363799870134166920486386260409235772236577663359942162466308115082623394072110735245053815503329178500616265552560144625626084592782947762883411608733063489108759295197372356413890026171576514508570547598656095712674350842722910565083556129220831199880440880587763469594989916050304166143587867421713242485309052967770245615736179190973340320145978215382199877165956253629897184547127006583897108526298048197977038149925180935291743014371698211542846845992526129018141746094620072469707243433222988654766157515814622919745617271850722292049067086176324876135606099752657901411519975424171307812501651754375825387679909108406239321666433350093119888034749445936276460728464789110651566492585760364325977322129918122132905267965231508730365096423239470258869746850081977368840575380158535475221976759738988115743558409700120755255508293808554334026668370614969978796719695693027396109221375470691001810438855584699317371880860379864513383842802496855939947900562971770917806713606474727850491731188228976596013866796593851105325195211208251962933896726640313838105399070425464004955504656220370068038381333940959836468044709616336313070767617726551882477241741048193680602244898674794318892257972578785964529559081229320426009613518084075409094307220831357548797355303273981797579618280608164949155019331375528203683722361546317096768298446866239119971474325024994772400113984566123746529454299416516168401447428861520592468890666534253868356521272150218097657169986219108690599680433477492704718190798158360997888817687396159305410612604134762848856864910355800557738725373975183411584436822338672643122047007329241928370119816350264777476924626537673485678348827985259857757697953882437498507762223275094621258958017736813002766071590938089509467929735001194968412784446960102220432101272822526235421774456001996133208243547212037631336160807735293338002488993713237595183937243030846494895997819802160816671236747555100989657009116953266060279231700258671794929083994161833091599905724372918390199673853718263852925994465668605421316619143878607788763232520089478845137879624122422371091864642571806583158044294443512822433634984424020248921546625747184290175861805500190252755845939251653353292688853395063217168207026789716187243383217760925231258446084214426541108074057748021770099688677520411614163302802557302188403634356747814115355133373629756518371119479842210546279556675449714351669243836160983506142968035085570890490555553660536010095303957112134223936600381541694101681947495542041513107614690501165276855954161833610181633603440119771073968964083339464381592074389354367768888055979020947567248124253787174171368716144590589308528472217077158092084244872077879381088735663962955505333756515167705522020324205851527741020150911467672487218615975313664808632996332458032214027655003175035032847370186510255537599796926974527404147807086677757991354111885651148192327307543521596026658754645863984886546817280997964378355012726450252323153900456272193755720670070443954513964952969511058620955255997728246430058937648423199273058513694850429043189224422154232186146099363518172462101888866592806080664437452703804089793214936106851349772391195651333870016865517012206343274784947105585834164179853891577478126917565117876829522534808349539918666358928337897635431118269434405025636105663942822868096513378211907950790413643604469517929131774676695571751402198132057394873969361079662138922167153786560309024838790982677515053224000533793972050865070983821806677457280634527732879565331548770961529455743564550141455475393106611494484492944075527492041486673296488537008048155664686011797520584666752417897480433390087707634847419318553020803347892077072450512454596945281502000232807895071239353840335848263818778368820083471529089153877114312879071698232467803388470677920935034239230291921186727162302454200650296632671671510755908760631843185534413044274059937892880009867686532544971006353781094239666090343459931558793452729010300725835673692565788271344089324171958448455865736175395585404117906068551898231575122489783518682394538132918580141120451901391381066755148102115665662784358508535079623766963244955531987339309213519178596139493612851807443458572927253954172941036455509923992845781160614727608253414024677905595436155709655729478906703811396080267322258690176542893728217400578134771791995551112600933222855411650131360778574848385486403520416501931129338242732694396019269895454469296410211790329366546844285176126680497159851371516264028879987295208199274136649076180198901398298032389172155329688008957098011415553686239578212020145742458029948641326774207939384793595640687759385507498432892849201857792124211722212249603090043287320103449862224612438004631456541973573464217614107129215199636006523057009702519608672552424815274318070059172342458474478650579505741885212276788318057570221179914035526864549123348389533533272360213454456020424731628543048044351914608182233990573376348627755851621491227424998017264987744251460332208746272718457545685539629462573659359514047910353933356988468657371669681023820490899449384541034289999594902998218191429086045414902806838773404886269442862174314257580411453277625900463267115299248583746082413478110642984022973916406804055161107044098875546106007850596731948903712484526613399079045787990194344910591254381659002060897470007116719223468146395639358708069716169030162188180500933524358375053375427437198647001681068686951527505674148200145534348010646270276109704270121662101044076630610657228139647957593400193912841060006146472535014698577426136375605519386728516180000561608614502506195864455579983052244364881735725123698659693256453272232666459524269546876005652516993052669648241803094192059359155460518456425311783139664469984084514648081769235935220405483434745592334829258213961799697778646120762073687738232139801077210244743074833824272379484081553896963844016009861090391735732976220224689360426190536155539607855028537755144678805681627359475287672321413226879727827174837826777176219265712975578107779145416486948742333776946326573750296615737455672075466960639692893100981017213986267672330796550535098433635397688230857215637453448686792323718528605253203405317466389671654608075990853895313093061998860346870164990882404460264002068130781604598641816873308656509388685804249029347165102569016688318575162372467009626668086822326441745054511190229677775590618204873881329794366319410561276425819414419794928648717069384512007233655214050549913878026025509929679392064489804765386382438620388051013340127246430610824323013760478644075962702565483920193545075028929375507899815610562942395078633444559878249015710222154628995677522473471205749359478196608020480823317176618100736269679343665994319066184153025998382147905374544505496455830829546884449428320753763250965833579085769723728230540175069628784866103024821356158179813273373775247104676651455001550238695695393155731503388448414546189697872512704988528430884407225378981547146119390253796213383433187532649369699815939629844857162575573529055001819001344215947268369008253822486054110692329779188720449784826862060827025534775623859467754203709123805251113796006406481471021136684074825570592412620190677639850299508179976142246057837091211511471481967544927772563582283000148828334920161156283539686926179944253250793904896617852371772708862807490900273402312414143359434839397606478274785847827505134692657482105207492265733700155426230312652031510628427736573052546370656182555037409717026851930244027888259087069563385281535774424550842570427898123708480712420428251630422209615368483075366534176967090306229668434067570088978546918831256797036415550630801173282275156540176790322717406883331952792159885592274424382098234700642588260823170239774771520498765008286967320527295923190705855582602681255291819243231493367900282430372106404331415812595968901341070295637898220601195510096680370294430284258037121479406468060688424632637734500107657975913434315038496259545458994180580814884639410679643904476049738285791685084548687934735523673283025689212072707380637715579110115334719896978815967191642933192922186445937289254354927151740713529462359461363614999197818339311295072337800094365583778146132409388311311191055055280051151731089289943248970882372048069637021685944949401178147123608540505120398340532472703573340801261929532948047961186340386640537683283225153254756311801547860735333387663897393749518277491019860157166113198604522752112124643036916034181313467999986896055879909587752629274259344967453125605061793449314899663214846050329434248414311677329486759083816875064397716851210957040699907114898527993274751156162590236942794229859738400861064390286979612115467322339276482215153880514470642763485423214482956905836204198039788340092814336016966890033006817733253351423269635563580092199706574364632071433793264770530053247224424431365896152096348642826724045559177037488458247101277101435925159189420764053796518885604609487758467468291163908873780483219883361165918080691456085514072061377231707963560609058378581587990307587599011364037812884610241469125915642540888815459534987200927114497286828101095757333526211059320544302798568508395703106908395944174211379982463199244231914607777804317213941847334176982588127678557876453217786437126073124472515946421156002270289991188312802344589437834502726611720144758366753465950382770169454570858245747861888582018602098243222377427751849992796387524388537304968184513897427377074833033790261177443973582376745868507228125893798264198766697079281257459564982318742602801397458240683886889348267878288957414947538452431042730553273080223543441042199423369467640473053852513026284969723232640808929732009242051767947748607987532362495470461676719086755765995639494190569715897178176924250655084461052298691583260300572158271119336996017526405765343839510776285153096721880232454613239953609938827502090169483552622044873371123079746458211700123351640884210076339660180643362819521617708602905200699453616010287993301552968638820854097143892826952007550147885579610051203180050119156484924774633851813600555276850375673121938330573726937371698317690975550363180589529270942435034834382730476786194266115403617533807352493349915555662107771824754707535910178986398442867624717785854807292285756005087527707199792364260447674274824700126643745426420112462606763221205051740636060342853034251748472048971237377727310116779361510792534841697178931786209124531397501443218432901881166527319929923833535912166161393894601010888176446763686693381121573375345031761833641694529185234931103614947768883700303002747177815043088530853499318438251610033762413612896643623257412746183450589458280848994975211440880242145180002330929315068785915837991459957343248793550626807079019086526052095961678492006000062545168794847752643543537184144648712546123483784065697446460501902666050552687076574149626152521752007985552107667210877546622434713946676757544084982415857041727926400694201821850212701839049360788830060711818131610225464278759723321246954996949745926561992740949952971953745211413914064430897464176534892722572856145008932783946617464518921056965257520694350965995855716708776324550322690288035505348203245367617787654178935888731872595822416657131291406075807241906522358011606291956946162839575838875843092071320370664862440424718641182730568692326183834942435060183726971570943374108035086229678648871432622925753601299941398945357613106139085853925521593589826925336609135023315540457518865422039793226438392605644929424104052860174190412197174340480834306104025374604312234020488191638223650271984259637697779637463073163009457634674558257768088968304819426900138501044374106331544916167974422175197859332243444753917757472373885295896566542453150552409683400876513039466373771422476896030322086903011536774427016966687206957860100606976657550836326303418336735724287927114326510523059307147466923878072660573521973548550621145031901483513406216107371116689588274912503991480040550730043453289543721479170313295948408493200728230351729602172420344282862919265440119000568570350991979661554078899471764691785299262221381648656113637998496561288840225884752736949433396146905776580853876728764383575576889721858660470461736237906306347286534313745421623066811167163517273222124941289844308915787782245943081623022259490127537190405611694232867080268855279979465342113411097703947600096759433389422548819854151504044782802922476213223155536739366080958908564841553869594589347932188487004967641997227186709590210203617201138399827383169658981003455087856335494969815713107149716412854029175928093504913299719364988385052744189389830111967957499026484123387868741281286174443329881445267221367723285524969362749930705316706540265208040227627771627977883877476839920376596988474084264245946874967745551737555425312553655042996864888263352557912556491042909802000004840942802805378281649079848347841806461751740441777824777810969748112970958859301794754095057087810771290457897140509074865642228139757761233733507901980810901906368082741498368957078909735245074596356837621068471144803354747415207206101087049518721753324249242762898943768140092173102716870482726310901152480701622836831254891211649571879263758511625080332552286487612862855849622832565601329683315373679239708249894272415969393577930835766125140506534140433417380226317254570328832182656396292721479052746559242653499455354472460475244943259067915905154076059278932488378876132708188795927811617241010809798058428211862015709722527229021574586553168210608383037220210914659999883187786230698350954453251887837306033966509974284780918678195491782923054444245808616504562775755735807271500862513143261122726019661029267800381275024684981253409886451298227348137510888999620201218568411002136697637962174208398102668803612614646260428673046079545983017431411473267893339283991574825975723045364990271072318484152650441996345459667755226080724230698623527375859928051000534975105977913774437947536473473449502239930592506392219606475762645173016009111711073761194837615135822451526198243601983461519708789310766724312945006656734891740578764241182712931390442685507446272660825697279182392451084991725872462651511986801255773137910700502820147078698743467677979885653433458557051696987380243136358884311086154587295170985163349141994579099715979052060104607579962759631257278405336143674019249515797598889308094083249399932634076455364148192569709004600998243392544866856198912814768000088611461901589589027472802430878687261852651250979349859585553686604937656897820163656056562354978506755051816866071853204635804647453688168520884530330247963638894154814150512964281759932954947832784657228723684629826834312709228957697660695618401798347745477970474101241252826009883565569401573328990417163300285892754311709085226166132781290669986751400264012684044931816844314195901753067220390427438964905449445087734636420027632709320156420695688089845667724065452880863263140074676901801808148726144736977298680220356368804323072148069125263295420917963194045618076571889252529634590657973119531163205339631681161030789505199619021429895364714774339734679875830350911182945523294790481343297630687382169018319634149526444197440110741220902398156012149187942272139087273936782694952893734108880957842379981309799911660687090371032571372049667480668193730683529874750868016090488684485299683644364804628446510339447285852561362732022801887600692347056701406162864448764824438885026623856348506823587337910224565092024188349199108117544643491831514310077015589798545035941415587869379718913644225934424247162161818698306421521347481962577478140665547217005196990329086819435090230558856134708035579904246925850214054492348290161788902293726719275610520753964090790494232283241892858014651368350545817828595442538274484276703665648101112787729987599598782729180570964628100795773423808414083372852491141803290918360088015477734590247234830316417215745368324929288967844462300692138230862643977245929651327818031081135513384855542680323590841897918498217444670501289012142580664303223237983615938657154712514591673650126408452945405320368980080373365450387769533577939785071760436409078309146673927527829798989260789193934457805461108792494784534322325526410976345978461229721193878266313524332941811075995456731033364690092763556690270269771155897287920609064068081663899873328875205145212023108735433454141582810263891243566383948448789085839849886913589488051757494801608986158713349967537628501164286641889599585665307455969399171345453638195635867427656111997396629994941291263688995288364072598994407522260682328720852222710383515355993119461587803024617979934270979702496002080131174098050478929539469075358131378224874261152306637681640525052706346921551233101175992979034122922692406096025479565456947321015348926331949172899059314170325122055743813914170863170362320210055677327790445269553945452085082360792823483187884952365298875660673485578781410030427585242847135224857897419622987955686315951394267767590480465652897104730982163016826114174916118014153588428847084624465328460977707553254797590361723318274653625110348114889337257280207476335364509489261330613684023807065198109700178779016130486618217742330368760630558474033807398543183514812593004016792817698823002051929509429433497039633949759640257206686403955515208622858448790835416921160786772275090161795395693372809064679834077502308758715314010166288315260234804791211053526921287505248857681068187986194137194880933350372947710414464410161397044253982320856854074818476817876653954943375972970251946279707690189515952177569937982551561416589678929696228323516030496951021297573125648684829630484597084265818852949916963346532711727347070868705729693217920335524751783545922721175132944461690863874908457766647463166061803394414922209740298052022606183100848909782190031560182162518379501521489196854290575471042050031191648085479610840812599810163440746244103076967310429563938390726722619439879424668643481159685112145661376622052263320468319580487292442917085701720128920939624103329784082161032608591635301041445331415147949715838892254647531496769000084706378132763887075599313211226419261253506707452487002903694612141017487897581503787448749829989023496369431524259545997207879468196379253444637528838149022694209430209334624175569849263239875462229944606306565103533265767488089462450446256686279981220998275277396178852341593849553715408655602335703101056303113483173576055648781174844582069411620891666442888604612510166140250177895498484894820680688323816938638637941766250064479819435151922034296282707694596431132963230118105682569755278280702952638414105963901916047481226622128086252437931256436619765392538385732620457712414657660904313616301248165375050378336845874537808629043626742444880603594774066149164379421964963047531286502471730336191958922321012236264637322744564467282505425743296164471963569753317388815361382523477845114372203568823188047529493920021810008870152070921033676877841275555636844320060806802921157296327947305042334970578127860734337299794375598054547156446718087358283864427581353206059832666802539663961274583966207647915695764328560124512401925451393606241833415348892615520339439602776943703457916964284930126123041725019944618898634419658261089096992149262669407480992364710259677267722673923703144282967615417989073948888841343097218363177872086073223580077344417058576474710303358330684507022163748179706344600391245394111694127250044924577388142303230775991005364807692612198568659823668828753288915028973954540583891703997075506737917905982599351489717502016686466827729346737089201336412553164975392752139987507705033722891786077881647149564975302997972945327451834033102729789649470055308459351428351366277134068942330241908765977191987375569190405814843284040898653577240648110114235919856629207012083488580523877856025624194659454978207358108378728664288609564781255462277587494346785218311505144397825007425857202916124843261782155968355779487071434440405053035769376537411642949030734838448928241841254059472231255539375302922829493206256691737968787571146849138123597307653139617176375001162911292665739573752426350273843084886098763686639457611981815761828807405181529683726631492627319447233070753685624362496499289837984851993725795305431321412417443072912739830135171705365974449134308284516290173378528594344362118838815742101968793640473639721469020126814753872170761671489114940144437329470154873069828554589885842668425590313693079878234074398022868619387320205789663230060655265500634435611102922243657227646652131127632624211574984992675662659439212979003911011474597725203119007600928696056945717065266752308412140096368571001932419015274856656696463709236512322449019986271799482408053731686320460703191490741495058081034641432429693750648763140821265311900651669216921226787603471991536323781233708272789618159451587700861531404980103193395978734798528058205304770094893229528481553806790291775103240127224654826740491470027597665880735721019418727144861475902357750974523708818165974472503231572788892663073060946912738989264263710262961540567396506582917557130814418879426385418011380654488662652227599298829125111877761419336695095370056313997898530673127294793453108477134464861417289613926867329192225479269013977408226366455858957247351985201830925707318406816612622326499007622500372650022381941561281178135461796737499091666919208105744938452097726065492272774234187852355767578398185808605645969241824653968341127051503904845781063789337206782576903758310709387892499359161293642098750631100641368964793053297118319075880475941706558716917938775988927176914394937368643822331636123015348648312910230075341217223253433340868419399085824968424561482949015762048353452718948830927795995242753820250260715800932060486341094043906769660265978227852105976134936730786698744035907698795609580993946671619497867920351306223758208519168638190925482202737336452635114049712613111938437588722002826813792306676662473760384244146380162584049955084629319742004824306753105742853166225347002241310972406396079856507466045478636044169905656837634203209035751719268579438409041702627246524765561367078818911520169953441577211580694751156136119368167854211307553938062924713095736228239253992294443260368778718084940323612226311383387010176342910261951952811020232329941938338716246534683093746384864650420845219660542642986942014244258243611301042409175782465330563448260236435757344353227231771355752838804461524176780792628551460753297488145894392789030358247892856830333929885163937175649657180044289519176165641667147174003458801038170078143746567978008898827770680121421078082262445160430585547554725479079782715990997055450294044864739593746309844541704206972348610762892673801752556253423846634561809566752079852697063461422634209871903518949300075500200031144473055345371743088811475738802663556391681134558893119660516116151216883399445765665916369185101763882874846871897139800186291012078510392541303295357189982429475253761755610880829830259826658538620721666797559385962193545452110851244740682752902572348265421008113761419497079804413627179189123568965753541795652845775714288601370483144894080806204382174727910729113827468436671075707736555049150036496547333091342087651408561163880256768443359439866134061291019623447462879705618362179012875068246451844508826821505745848505079456779812839211160468223410149773224202990542020266738775903473219928536379879422261252464689532366021805345226259143336234806895131547715343393502756450240209074987269557029114889299940669315179187567644353110229906880904631948229804357763623124111572174162924032151739009041684841348994907746713453364358181355269103138293294089391735191815961822464165559488091089560009553363389532732500803241480918050355527284566044617947127134477210664121167198644247650663916697697373998275063267227727288929304048771925394507667276957445426430943591110860865359363426139553113612043670161024414984318012257228420359268772871064973405043955436977689622754233285771102665876343985057338457454442721390517791194875800670551733133258782039507790488398886646037895948196767193661264966711644546985440446634244854422851809636737337639184645760426468362432123179856462829297388483433586466618055656820575311822084628792207005664022130387325051940152210985396739007085734556759391436013557338414455772967652811779337030138861858537565677420112757303589951108129105115029948735999312442169090156249179588126585825089557326976335004470200618061089596773367278985481831181122166350652277025158125133989771593662749220801528694748051844536257556897631359064417532089133441871007822423431576980426175266059757115855103891543952643507318776757779932948275324572480032448926028952338650927092432566164085105423785903125513308495836019803428071865801422760959750491633884733778053908178118485787243961329573808426666711389629117927308719200177518295845466008097402435346431466398959448179804798294266382495390046246303545432868058886868186505877457683385710052968237082963280317283026734269948924671493933910911771079662412366387395476880721692560146122029301444924121208182218329461192889188326210695385600616250959817581707136846878320928507031062106451001619865972210933509589838062030192623433517451989360645510739260876724534070168514965671804466680070094642543300153975559016471714961060496225436270353109301899838531902263672033791137477957179663598187950012234537645208303005269099910108977045689252281972426282624218184821329603405362176508252355234846570720748825128797686201391451559875240617715776352716315319779058980674993630368709393092585555990025306945551838494537626656514520153973878601592477033816607003031723526469931183184915136010910841907741338163722820917598389413964832789923483207858384967170004491805270854703622471597743079555279622925318956743320329412934508597701889921038842871107549282677240360861084567922710101321954207353642225560543909981352539924948125106662964921748745973929331179061147814998901979078030581152128303464058641958655575218806994525072452024970959794753873304642535056658287742498379420214329249597790941903008746690255906009592355625890695202119367215532355896854910231671611463988075105521536401228097136679772411993990974843305610611404667410960204790696617130716940324406339489415160110864712426616021809222534347333815053070986807226503570555798429397786634366338330435748022889835267439912513291399804524370141441061468238486390449867248565279092314168495941620130428208659422619925349639126984960823710512452928817780111932874287292772557076598367131958025057035089619944201622158016842980185614078245843241303889065260814960257952868283339696034894169478872101287697989862869354290764731121656953677291704412063383096173809375635577064016604450098259669772735551198508438689848002381490225321751528675282463404219399541110173550801536114253743565690960632441350132540853239964352426416844190677454919255166729861022377191555037539201091211187274622393641618339096440140798872591506787027559070011916534395874556835287104383364754530216132539265867275794642866938834505125974769935253650924008320224859333569693962415221146481132636389266782520688852251165976199311548943163083911011761853953811562083681266012574459460853378816588492975574705525030384804068108814915109168649782437437159157116319137358673103282262811276450441810008274743630497327889924248047267629385258784994053170465089442731462345186579649399334994460304181171029024256237427784243607320277634388980148258028619968781387608128948191998751707260849361208182865150229119153488922518690795323107844006984528153042126010002097791287146369127939318728288796949661750031416242930801284697856500255112201088431474508554357198039747787420004827676534306905679599655862006665965552404534700284312883714434829467112157596495619734754160106163355027664826548420660286231830344507146322413086665295585885538892692517295296641705175435903117647915957970379691907614314708657506596466440356723479720069640298519566092056051213842485586813746397712863165852498901271975289005154237376108455830030575437396214020577260523164027140864480492542938920316230583365992858837616548853092646072188113727784662556518513823163507987179410485194871497670107431936420899598760661969494990626060520470016455076812501732587169115354132035818323627003886565266037386170474568287973995439434104118421223514324492621537862753554264305312060744018136947706985179105587400931309237630372908449051139702964559609585497255993509862736500507545874567313420505206398635179234321720473080861797199323119388130880894089680909833372886338771430891770919564561740494022049948926963565707737548272668007108902221281134193189157319006202762384353455022245206486176162811156549154347800275181909171135720286161760948226301215308084683649860439026625950397747383807396611528882675063272004410896769066225476046925046781149173859349245172506175910329453660088108523928716080754893873833003255456539159453628256817610339524176699133698537068141614201892712474672207239766214947206890683470560037047857879207265506081048976169543436239434970241353818052234632371006184974229180794438598943860268365390969237431963535533934357736198882223186683147819670788231248218384895184728357483614365249248650136262420276577530958655573514331779992795127735311142328224556718215352450493303259831805445449618473307317439934492285086566027236883216787160017519828104843361071052209483986158179072543222752221528578428748434288683945685558118688923792559256991898195320621239513340557207638636208374987362692406239341321546769627296063556119627456729784929850059076951391802019687817354234394102231006026154287313576869330283166298143215327479327823525011164940646076592266433836427180928826246491357541300875434190531864410378070727496790162640256432661560395208572252651382842730327862192672909638842687100131526624532474140474551468106875429091317394875157550931694669400107366596221385260626086419291753394226272024051694922034236381115210964464041319623693119267626753546977322580155051780195848761619172556844070488936065070037792011917388693869803246954003239966157885024940000325616189969769769241272936072243263810999230317239860506820360356375217671337084541390591626852891672693582555028182226861046794683091580107797211793238940433652599316955703517285831017144162930955468319125266207213258160272994691051353210708646591541247839583684508690327279990908639135984819270961349767349861521160874213930818503454154233520787913108524193668943206786777498190168963286961021883132318257973053069483411868063142522980754291931672559006590436778067191613534411153055693922320221507659014141550584477631028405578563734330886083315089338096316094104220571705785689954055343335680518636855924472513318014589072942055311538895194445078057706686578086747691050054737880301197104295945119057400105226580592893488624079023730765793434073495564165534873226939725076193337397960293056132145602447130098299147975502131751551466413914189368918626629526072790205061377423488112417602568165637203892065107989974172136037757519910472044372417400747774922300879603753423555803810049508792470997383459231807577065191015853984141188606420421197049580470416768176459507898006262844935842108874221565904513256102552772534747851190922716403029975000706952652994995644621535073889154752293209687756007592745004208047234691398177067519477461967960604091750635600144449368120074342262763480691218265238283944396271476570917478716293931486789524496833360264487517327911388832224501856887994097698807236731061009068692466763355689252966684989769877018970319185194280046746568452993784529273095762629078979181697757887875180245266969572437245852463904336999903869184714699813755875189413896658716299416735355567251715378110266793080462845343837864442871401098739442532737173636499039309297509098808456217445100539984469267842732831316332182796098652884122953354670943715596654774418637935337021845472490265215225391520068572831967307758033923662420505866526215497031214706018681311154279104020047860705525131441164616085217654351844496161917830543611563064964193013755751511851643022952480169847244977614285690958133117937524929106027952300855795492210163783979265634914239389845957384751307654431548929588349436137653257863822964568477978673441224364283662997863504733967677717054724417755640014823187764759190803417176611736199510231101541315111439949380266542064318079544887148192899878758056872039976669861130770136947715128429598738961734373063888293292658111209696843294266113970525763575918909404420913467928751678847467976847338706637334930141890546344978301296746586589353164207341306618453781724924727409543985676071690498728766260592264718691369318784625129400403751416477242393004570643082580948650292791667364026034439435796548586142806153672994186919109940124898196326033295251399630090613873371720050706228578239277637694976942490834770169505449470212365075471371900320287283117304750787494213505717302797541638066745371379765747042909118378725241731534549602512721265306117047210286311682547331939339769148836758514265729412921312001780385463675926733259294293198823246877555284468646680520369009231395117069050735733699875484078647369869225530994414511056265527687804503359255610104529170416715774766415774131080390646499234795908830067809562722106046720920078925458372790791056559241225525907339315616234483189575999761437617244543353529063407251820434784805715912393290586455118807581441823710296182423083709940951576298776266190294231508757820309937990438332214389321856614454357139576934160407273016519312886073888277169065514252754507649858983115781402821915614808175273492754618914744180570115384784497712546929443178212234502006716203829303278684462992235047722900837700144493651476504989382555058228566166978844726889149114329773496729553778882189241936021583692281636475975345287820011642260670012121214128978952994967795349834547196056812268068747959261164351697572406806940687107574050335434447553246292470016149305356232283643181313146760937712104164164163885876932797071199547355384431649924336248996437403606912401891501096361988016369888547764029668524999970489091462109689589717044324161422225912897279648205875260015289758256469091287540431734863544627556243097572810380421839186650055913140861439716488593484671454393940944356685251733490359434425320238607333408965829879177140242371375135062798944635888778340308759161374466407537209005249695141746288007144982700563297572958969233181014715572992466373270563142309954062981744340970902433514457577709882489959462472941873248829200837362421874875691962620586620682493174719632845429259888072749613542997165537180612401339589505249538076129781499570713504279360956031679395806193129483769138144371551654696907342557737943466175303408350854656189405521995932363128524772546813985737277612379870888294853047160175651366902336592554841470150301775500284049596192664812225614565954055443564550998178630227899682300345665847948376770394512813586225579020061660801320826291205255572108190650773375609760889690219355048734649032097413437392127298091158646881443011387503934221487774496074184023891746667753583505659970205818968749922279496979523293373497473332863458202716610730132969943880096283515316054941804324969587957983358317204919422890001581817944529856611671267018465197932554232722432426020736299062588221021699557190912325762581838445097725919961963851667507856203961704645315802673447158954860093898598333871135552635182428125905855449174272164481958803429916696557725500577882452487036995796706303928885795102749657458724491665572972233544066851754301191967922859897916972769373626586209575316178943482013828856724273433900115501174166775646184820592162533585118341657085660353932145994456349502763091957820913210497083652234404430284782574227486884852393028714447628062114525740640389017588924718255090255279100104897438297764830310668898438130922722182243661525224983513025643148944033925821386288761809040612637530006641342540859302982254084428857775939137584284451466101585867002062711167650481624196061591429493422766706622556716374904604487627763668262940046815429966917252272334619612448996272875596359276977028629048559663456927537369274377505940907616555803048982799689642488744212098267237617371516317603231715073669189109300305399687242129399377902816693395825429330712948531121301705376141784831312588784407105168571353841327530869126899704052027767847910809308004611956483670202499972891510326721640655445048948036824106436124538104084545904103944370752783665693126028218500741093704009373320209375243153402642036210810096064258541891589909443784371885191948077889960637412476511074444624067527703833713293858025722391442005746538643667448121834584944072056432855653317321815319663275243852771173752468717977904339440566429539663970326262774316182716677322457854431016944692858664911850872102727346172624448362235760640609535963138645265825783204272532586192800027333156474261171329762451552218950695971558438852068187651475836549528508802020512238920347925835457296188505361022235170678077825589367317103236462076824696328205523181309146385307425826104075680011843300038784958088803608135998703429639871054442719770912170238435199437478845222738143680845043411931585890942026098860653297021400865382283229058131868861802915292624202432667519223330062890788826914488862172688561885027140407113203326323066357017572870900156015765842921106312992828009440031682656352374360168405973169025054940483765911439246744186955109852914770855302895460140613134590935061088380650995497660237054444470281430535497589939922517062634258925132425542632136050203439023931568640142504520062926429773441598206678502141414346763084324465416643871770266545086403316737004144337248067287619680676237509406034935681484412929526125936856151664523231407443024811073118669568656361865396041180314714313328044014517881400352577336486713064832614628560181465517823846696254707017784725074918276214088446046989416360088255443683614923402801888254969555186004809516605829163616977686405808026680563353191370648698517488940205729402725226898398505796562585256748834170167878910614335246944251637593478842040304429287872623743649507333539177529767133169159480617529339486962912355346820976259853759553191997496357262320861567484778818402361001205471331072968059330153870890970635001934424009379901174627729509205601573806809660359496639821148517044155371561851052815150957366307277716227701500020137929617944489149867897374523939546907228498646929334068307218643522029474147103405906413094614272920110784259672437241865279376310703633985396205129814875384410363713212827489971128978071434672632804924316342364402715150910595529089781152945309318217716864646385763626647199944361887235611980393640385160052363500084382814765291825751130182604967019814194371032083785205138463211859139458478037349803350900052285424536021417248123165778227460036618539193390898224490274938582018954866043481993138868799810024157099204575123719911499505732536616768369784678219760079646163558336608839943546941448825211596920768677726949356044475553859044161504699106056388997944327837003404067292174286984600246887160316651150048604791062676693216467151630345230499409921377444086419438621560050443477626666013744121895345585576717635333831786929884177801782977614544130856156653925874740091949917050112604320701594497612160833810327267115451363260701464249103759051569454347624200187664443060058710392064665028941886732829955405679387150177442502846379283733112874431931114805305402528939036706971908061863668174430183408560356075057029880253069504347443879715331297817267505986329734288898414770960325258823844027958033923681662357362369332080031609056529076551256051092930266438847602044853128475213699892238647415869752228501195238811173182168103086499967247542926539581301730743779076827175173481462260799201764576881575218173924938351175895401321001286415579887264834238442773443933361160472437150687872051349965587224268611988771865022456978580439398285583252859565523822656498715566436738645173393963846127454352015047679236023935006430788683326980131436151277356796218768487277066427053606575205923301120148757674283878174642305022382657108442401321476321150227893335537871651021594210420681605779223760482548536512630140185189468284050010044486466845939307713669694722223698764981940854963231061457646163985629055000534507647222560278768774965447943413466074178000806800292420413690378348576292468824165786298047516251758706631071756261183524939431158399658156496332656149432137286304363931930838818664922451256741887592891657744751200607908855928489688323588908391813562361952620919983575376449418640156762315343053660370028110676045404758183642619227304782813569089051203463712277235262493207345543035964501266410949365310873127425240543478551819562297179007146453051744205856240188189914342633566679536106534509799212497654988827776496227229912712906273972449801877338180962865526919221206502628196249620148349241707295206348350374489016798561850641936468668835011623304520675598388637715036724017977456680495297927913381749209658971506083103692064428668974200480131311301845280849519822334274566042181669305857294881756533834376104730207102708954009943245941586649455647967199131622432327119599725179490799017691253050122986502830138530680556376811843213764098306175914003919609534484233938335032042987207533355242001615086595937109404315107728179814247378453052662656640289435528401793403376410811729330382254574058507476260137061813749050353666555980787833179551743727981868043679204554457050795827492706904752573562829874963010272386944165725850407732779013922995736216042096574789162875228986654525848551475587133813827133449305461730528907251686233980787780048970738794671437075015372558618501413753026553079971313778815707984142837220775485022990618854694203671321206625503515437820303421695434442052224086971820035749215257174437115837979851024149136174119021978805074426448755839164638606881089391724805626607753931322070099590622385151695612074716610562611765989497038504817574398460487399159311293635370754302427592226607028917313002207965161140582648687939269857190183723302221733200308870172042971906828804479835894419232010392696222306246655468871130003132223537829617179483533861904451843863594098825541623934988514001235518551571043654371622538001994204210379637484218602531024241925468470128740329176495501204969196578778872634918885984906206639294840409986003673069114237138140532380649145573916248728363444640530446319793716608176656266396266704736861106684274272397878358209959134105964842922314928023964201917338315785366714373634843394887461103754861776247883989205374755159362866027618307579464967093163646875592464207276800100654444867008060970688878941487877123967965463791076890689520049119968886649550223189016443455078877860186866852666562966135968116511275877704112486275099285600336646081527815509407871308045574186164915245687407996285011446717674366760547106341908543799584258566061903275214684387028434977222201979215820209124029588917781639576537257372945531630183771948471596620874467109560770172421286682666517016269163852900767922474541828446400769025928576282281186310641503461402289513033770789610188411435460802140010409622167221260430627694697879044432225204614168457419980369094297426600231423667670720796972022340171286128952209637140997395003203759923262808152421539687938680562616952513690159172347275353290552432963107617217955055053640141411336925937975162514346034795989312522757085747725759775798672750553757693960082531211001674298572945857135397673108716690828759200761567296844052069695436121738104537296634810097970842436592182477468588569834375879245702846973847144338954396391789123860503942098399693774365940501226179649376813638125387860983620491297613794690939271726587081134458819909364055822411555911627572341214223835784960209151225121741463352635764614355782083188794423697846748138384523954236724207436042963417891196542985176593733943146587841951655112707856964928377188643869643518835120698589802336692747717414096686665857489979222486098690389747841883838159119947866096383869609700070902090235261129570026106329769058597899353131220451009940854669908643501374857822229977500313947572564297855194141383615238202417857776611438109691883767298456966398889211544056783956607369475629353925880525159733924972902624940401318670456779492004172461709386759074078575636864039962377445772175869792662017491633808297951317465090372738465931632626858958108657298077764761191740220402664690803509400472661831242253073274320053584901741516801604833487520935763745205023683583799561716089603913677879240747345858039046776994820855842036130506139342424225419050154605598471020368454621666708260002879260306995049544859364680329367872509672064968825127091939893346223714079075377136729878700817944897389737127921688183516173237977089790227040797018385810753962610883747136968391211412025616761617455624558710272539920076859332546573418492539502584148053571802137158533011108978356962328641866171374101086502571020856536542293208770447700647179981630237668359299180846832483444576120767906754153859132289723802863041284181327166395198507370044582684718025179392111432110822696357735023736514149858449335134219944179468158739560028589288296963782851614457350906341999999200601614633230915103704990160523631223755633910067185490937816859624791674346689039832094060156787076451855730422043429991121597205548467958618494639708312757953257603796124813943852440901637183431680947544339880154151333353606809735660117895827515961065020006889922754471993801722664271736377832145618017235574324799882580429232412010302941181451038171946696729238266034191920384512242333872745331624753443571131468789276137978334406496989490268535432026224697849820453519265233796961696978463152497144715810721840266334667671674753071883130744782076155913593260981192924198220172398079721138808862640065274223280056381409248493073897197628617118984038815750038283653840114767365348584034222713830923131671571482208505038678196337580035081022543007979832642159612887812341326086252566999114329356261353583013441917946898416197310970359769938111555857597389465613813055487706696413785868869448645686472498071588438791435038574534420511640519833933238146245007153061208266984657218313249540733916643577947527122646418303032671298765466730105483584499491594315312986762365401819100446326381772251267527766450169665898029177283170853041509168738111074003870759483207312744857598360676577758776426947340273212708245051584402088400870851257480204183608188606615276021175921278089713709601915015380084700033756706727344658409349925359417920907747703418647965696035630547074269799271088356032814491269370491497357935577588013931650624313098370756690212241799455373084942435341637984602257826309539915287316862971705960979923140904931357175806837711227959754559314853039019193417693833674983900407034274295320134446092328700409864177448367995427972929936646015285295014169647338893848686011067967179132815767590964258421449761126153830318701496678042924102226893846248796630286554347289296852989412808018940679850808959177905202481399121024634464020080548331395997685165769399901781587137483053886587562491949085890360070560803983928259580409836981769915390526947348518709726673770629742128587901973061311264967577408087833425375390767482930883354465658985687502609938677491553271795163856455004027374267610866471676050946854840561354582002009414010151957706817668049232576991720732992812044042981947013310619389363129102297997263477317024090902041251053320447817213419341332298003586527337608947414661314068520235344143286600833070416204883470420577494938875963339057547596577045422473481091175769653159616618351354448327042876699014472004990516105611747938773169256617860145570179034391260859589770418155668024398141927618840079080582009951345084432804190440964073056024634885167441270484399996699526297849126077452864796831139694279746322115661868529395182238484519556155639254925301395648763097928496240810537935391793404889393569078477921409896130025272571641635961662797587740771025060667795644102465149380307228484995101192386175335794611489830728773065665737619370981078750056557687535411038409947480819015757886358312958337501718083727309763818811311722437756729667097415795295555491201657558769481517365348572890998040500070264095222729637804385214222799104688567669611250396999189938531735976834619790876877325936039358989465403809478261192245185021333845631453395841609604640321238161771613284811886935583745025914010903016163527976264220909621513353438416445220937285280101422766100617114926365150753804740411645553715160538885980101032028300911127883942367016498628633030461191058388715025889702929803844151539321617534929014977494908218184461805781028343276227762915758666838302695600631227973257742435889354985563514443046132288523212936259144052911546769776378051052346243519040574986408458208585401260122243746482151845129805625983737613479323611037635619789575907128202248224506318160811498224066764648225001059263911936942088807111451461673403286622871201387560515144842510631654830768045286645488353781953510381409078228736724404158109255800038939555435144289909182523695175796259712540164705276169731641365688658268173818893206919799270056443698277965712741789196673839774369173432785620222735083816973013682382581595787655908516008912551466507417859520567171041963223970958029807397259233133415861116741082920707781220960850918456894801185340146265339129294183410744146009084332380456955724738300101243751147996469740735887956433887063837951501681953356292630721371779814633000982479466350490776140499646558152554914064583570022006601267568549862233883814933842059835149702545348450561593611130817972239842764720713611994323129161779075632563582514591950981550598438527219050136575649039568143157973127302336230184080218321933970432122148449670791119827079323994738965373740442713311304377687562814376009553492244539214273111492536594198551403944500519313915297706133126108306729331590075235611705897873489904179099777264925067957273835648849790949535666856669157380604321334831395759099305488366358553752664504648153270618047263340002040832747925423819451010464170663823490307375376707187155965840830867883412920421591611399826182263849115642031717048056076219573321160334926669921109385524479360945936573230616583497449249187366741175527391853721587460594936473799942412475741143070157844024407753028083324896735394837864487693270233815939652604690923712846830969234909207850338110942476692039511219011476819543397734802002580693175073019044766390703924523431047131241294549626535161526570887580208886426045011700717530479185097582876514230425143478952377140291883938904408124303317252752294022151272355359047918928610793529229942700486067980285130355709025548401674614462737649774575866085093606603701526895923577548842870616772695960957897400444316331704140800430591660769667093784547609350952165222188957300848732485511117056685155881731985348586599806593427394016590652562902270940071757743199488952415067092380379096562017102603331118622230921311732769137655851986450968311987323108647960188634109301149395487109107563311480212597206738999999562998661776901724036733364786869513083040514121991681040739832167793770825758101032462450475927928284534253559545268124635393508067030548601438999486590775043174764865510839294296058417080878656063968401175063448133926914146682163822609989494925933582686631198957038457917800507403587177536786286504771751820149781652504559929477726261347452870183195063071519256826771810373884727290825582571951659011129676322112749913360206774844130567315634190836412584284435891653652671385754104086892474672514290391487470435844546327459014747226179511109198802243103076832247572981213936244287579936908358945567399755952960033729416215954684456796944301895231956609769441701921704807120812256540561223870052979455819967486162820814593084071164215821484779405893410435297148387602004955931474830543368528670784678070629566587803527845749258576591675462365741178571082950752922868742764792389414802869785400646643177767628530349327685753840408558340527655611441865512004992681275949099473119134695309355881378785973334781547310024715425645664012601242270638261003940890120283815426132571309876109271847105763602686979534353428292593209061576601014360562246027348197380908203453524132512392622401626155798306151185988004329027868300867479897824979038968673181210053581823982598125424036491646750775727148499262675317824947629900228684591336054827724391768814422611083670167700859741265450344539605885672720504397283461764832069832328199964452534770874640954888859510347767118588178163726647102828413967031665259566602103680064089638805251498295056473690708383097761957530432420860637828886233199538116343513003541259797480968964850405726522520356285332662319238128075227345821330637725298175344541929333322881448224507454377486757965389709980673033354812928664135252368080076452099677710458941765642026111407754449528688984723834376637817633639282393202472574974755573111376385583451875191212711689988672925380386788904409527785413472485162918272490498831522253810689431018665129459130500531088664138776040730057788685807739819245519891517031487963442314333250908146542210168679889001100068313973912420891111440319572809632225632568471187523588369186780190292111942838144296915829427666943460551225481092590784385932249418017064189794546210640852581773333062939722465672488626060011176028389544017143277103800519151718665234332724331673534188506522681998787009935344974489860220779882514424490121851472660583564123882675643697813264426602079283271835308086089749303727281644357517296856076358690175746324023201721693793656555659783747642060190394540679903867532220941375897297285697369577812071986657350441036136540913595311119689091847522053566167118763263395872299142128247054201613749296343577494436139472003280925545419226024394759265263728391832457683331586814270617805055662982185846240045174725334508839881433752898537147554867326142848038319105954771464256049026926321340936783900774171178121592168801071073507181962964712673618095367631217906392008660223214928819123449926803341201458716339072926667103880073352952415152036123080450394333925992042805556601889150209733249448751692343536802155449009547268828986623919718382688920583871130072482758565617034258987895592831866405369188198227391739250279392019697565548294877422439626408200867394678606031685763347165801754315901415121705224823428882107637530815403315624994215447780939960841367044763998695697645309264890114938305915034052290886469663886542900370794925085998073544022745896680046496677446649629610239985296948091130584044355763543588874857609093921685640186763509277217741392395619558683876467320310672097746404437890229033514591074295264407899961587186166269101648148712982905118941238951066470546809722957798485674323388593306708653327248889037820058650745579992956333401749730930171140334718209542185204698394452925927839688149328637478526169181091988161498737642094730308994056388645241398070275750427751745749370807892142947324771146327539269914912876536051246726430463071139644358421776403277996377911851292315547350338678902257636549195642961215723937845536606424887518436014733470584685431461543087674646014607464398371836634375689596579318509957856256084738448383221271838334148533226496402752066302427931542809032282786000666970283753903800010273807392162700715398416019886639635469466610293583837263612722524972671760927704363746194634888719717318194046419113853126196307162230105792288684297115649261714077495961210785737077731019818578003177211339737568808098990938251279561182483372224658024102371693789091466577563649673940724627851685425328534064310727121469987452433470078764937380875109574341484975008214663488176899075608933224574252045284614550752608361042803269255720196559623234728664662199110828310789037431556821212791547079613545954259910457887862448181787778421950908778705840470290351778869017028079835271174870238717176945509696828424713205039353968692680481567591283473845396001727246432030074646638504378044403289675414822593797464477810150126979352360677808304856958250548873982838778822478241723007846461897489297640697380466937805830818180401905173640354795136164544311825780428811096219029422813615895119505747490172489362921696048735387844184511369851177203450771349047726822132629209154103681986307148113680516852363055717015146222911248303164665611189990549455764178438751486760330807029745133907752430795670929202834961764909260484911218426541333199424327603397120271350180294975581530924646956051651237740820387351962338055171634174059495267513061781490375291511530696904255646535616859559311958387353786463682276988319139028520740297205255871108569556350993667441078113116468553080716146964823602848435592047866891892219015258171243268540856652110102510151839072081543478209465165565637069793332091300122784919387594868834796528661196033618346021927649026102905983674486906940234330517008448969064626515745381253310231751599012470100581615093715244055716678646155360005349570341062491883548069513886613051366583634532757924780366969818992032878660517069181121058567166783625571114727233402437509472127836738420962041444843763823808567973354397806891549308724630177214676938267893083289389387290723989859630941046714129967843787791522723819800452193858221862417907014394133274126304548475291990892245600452557366325730187087504480125801625639113785995088288692025720977829300212202731092711040528240184682315493670675782852533384084427475698408137528638255046824562895426188354990305757590065584798535984636647049648787079171116509784760354686562048700676632117021753882877936279277419233088383352262644743922850491691816043277569903132659708492993666161911956792541206692719628030864875867521513632747375740246191515553814714903963988946258152016615355003198393476670189670154136688520692446941202015386825822530285792359876477321854310751021217948066461753651966148754794176698717909598562702501292908950600974249165868187966231037534614084319927607931958635167253224746368027859018452919025679373199854788654551665009049264470686563368195698304859354945742636751721254427656997634827691340682441760825105686292014167017957094802924720556772479873946750792014657038110891061186530309549094844676237831837712678733723523676306561134125927387730285544118507102821221924560080062708591644010554801178228703700157602953169289673228881790807634787026841455666057385409526736436712597304110785216761153184179496982332049192443604661971051393932577994945818370808503934680477531222363455010840911815965067795221552612994447511631601360409864772749748427324965241694250410381671514370039343184249451463159028183666000130291678590408316955641132188131056790704082792853488652435480249076869647780654899057442317800853145961602260399333443406826045037985964437893378550724909211990525565997230938582994855634498620568412099996168639211065619477186593655939569334581796470975756811372869824200462269810558629388468562587702983407634308379365095118370483291300832133800427094010888735612200662007192159118971377157194639428292471262561700060092773639837472653438024196475203078923257943190375833334278964152576802638939851375339118045476730026977107516943591743695439347993106286561102944834686521748103801990184936758722041438797573031217370384594126586745561942820771403109837477750782617416590742441210961790759400171810926557205805828018787376692627830270450605892813288910150778762815583656694011591710284764721422802887171584912769499530034744348772136802135205273197289604013062325367225014831253812242428038841101052351711928648033322320494297268716362801598455567274816326595834338225304672259198895856511402390209394619084296570109251013070227206373588249513369526302755869170265135624247787328379209901302950601849618975494232051747894337318491538971399620702659779328305886631753149405176211000127800109747832630737328039855548292519921043851448668317314688963942953326674505355994523267811573068120215529367345523482076470710488543627407421580873830655208864692244806900021787889342499276979820036340323441319205123251556500650532492310977160783080601463571149629876782149424254590544785334381721570732240872079798837529408112191693414037525039648417862749195003812313209351742875395187487234953595818851643255550542473790138313472725470827016933731201931558998176958692728841978312794607872383862519554470160455761411718776586706268134967762326290430485868475192457945267771304017911431144383049942499040198170946904760987097194589344842391728857674443633404392831226644912186552106563797194854952046726098731458930951622765442905551109838417967029661689716904601884984553550419135104234040472921837361418838099418189755714153235702674299570490263467632060794696087843696676595860087856894018242128267999821489911948657140020414586834761668251565682326430600797858216232009956452444658741579828915257319627206436742151383631666807188520578171013174160512503663403476295679681574566507273211848149192558051626179508964024793600873493669920456859740157362556950447606721470928284112397888304813220650034896644043775712039354789752460388336378440956314065321636229853933736944135472292152103962722081435834872336772944581152951325325472090452825991784847763940447267604940502218627086337742768109596103001677497828964428391837255639804346459845539037067536183850766097644782428955182369018704300471403563760734140467751039529903276127722672237612846880829033954216620746375164207655400497713270922640437077728633821900371679945790305028588774440636560994754008074103392989246137772240882359315775215522672011330341194887145971225099473037227062916593053776168854340449189943507555305569201896050013409282143058803759748531644414062627496299546264022508478161397962779855659434934921197973771458569040159535847779176218896320518492717274082714100036830791316547706034050876851569517927488364824507114985092687575551563923407285531204389981876472215976630512478401678495734279236576910903436412162993976296328701622812334690767205358592801673936096421038032511782236143171525629046922834020575438198010836189422033614414853708949103021474874352121842433390143310109896284056492091786189302098184908470044811225264220613875285875806559573581092104134808331745941878183752822330680222827154882891779860147084376761401124491101925001292079685361654366354685363428984714599611006879705627921574143540468790401253538218608369603637050145987287985940457814138190688930236497240914351402470204519845823330794547694984970780746956019934233504145974707042734965543774249564470280655426257676584271733417890129269090044953053239096849185201650736843654155940761396835388919807280881284038094793802330837776649770101683607966391220469165783244589575457490558234854555785229841343224238942180837943976713765074031614532258570504771055423910093007352491469869899886257847088320852085494449371809336964505032821667688036401009373749891772738222112925494181296652608919580773591290150762302837328954403100564334003745758019986446189227146438199870383040211858873396746908146717205477896403861695082489873708287691270932684325401586039677509169479633610485428814599345267199146913980714830718201517967719389797064039001561984189253246301017134232791882427113436824025996992470345923800723876610361613062384673407811899657113082461299642796973836363419325779980141233189713828612863097368101381569545865401599833762199012979203501419049323663581679250502678064874738551869513509374668022439438644948125895087809721477595514649021265734587401414732759742046452347386714288837145923068584427014096353000554496937083539288059911615648168452790427792148727927847737800401492568292552641942121352248802140900359629409708375873090974513773953363456160592665765285208783406555251848288230137622241148024346077591792338280983981286661832928047545775348066885970045032880139463131189633267209930815078098346157195328339476438796131310388378240025088960472571423344540522691055729547743068367523330991157003557312160315312321202615943987659600137530823390508389835473721296766102460754175442812582559112082667794573237343022942525545367159387265188526677639491678161671490104189802880228011432100792122753135088814770021605621795713135746792345685427183702180080722555114444473340810238242471847491320157102459536145418155569748385673331473260103386270743211548251510491591364711433179220884870728484772624688087129112035351668467914782381117620678524486923319517454078630247734361711893152301754059967668720492505834524199875282891252894631648914795435776106711580020749673423239343887575299176442778425276529683382416087119165681647727743034732942995510146618536701348547100139242099512887848952121190340564776268390252249358910826279406152436456872942974377098805442442319745901392220086758224920653691361965243598461379058792544918543258769822388777296046854107466785054974568451344555609327632986530340869211230570615796671587241787688225610896395015138163114080042342020865436165746857272147939870662341403582113417414709941844865736219474091118995766826879377099322229178650499258835026006577792933437307662984009175561384669081342465301205397292821524680149476870310898102230407716449113392055928300811741309569273592845629236814365756266697535957518121190924208353507563293307760188273948539577102503998737916447103208558331718968694099254901419307457239481815647230996296107379846043941603883115522750173624460320882503232308874618789241995310609777325345951874484687358856602886563417886626537292139006016633707257406595984953934613520827250499024166497912291429789693032969750695062446314361005599493623540299581152928299615236541859514909443562404164798006023221949594096313812548281386895434144292941469574403929999402518384256231888865748122315058775813041225164660910863397328274681965810496918186878316363621592504272620422497209554055561087928625674464395317844901820650294979921631970208856964855828036003756613880686769259711949552653869725383349314612100509441493423031480959148011734845484959855539726581544955770443874378934326898763976523812205056669654563159600611744539195635478954459840497199695154820867333474515611129226999400271736168538606049000723807314482042789473912087583786493390115969667937976540039925286887762796097974073356606690123013790748666110840346852080355741794232319832472823027839510829488509323613489232940572678243476481330534912173132116240332616578711359300616291480623645027464435547259378360907406249170692827555391790954316971365203143927129966648059693382192155392462037707338289937796162544293484199078669864181897672881728471440309542913908470372346664347340285427308605219660575122736492255654431285490584471245837445587189894822376184645329198324757330434298807515353720426663910081060410885134695118928552751669535378107326010615414894057386099708806367807682157157965887821007003748847107529869568146508187865326181164810961781680869140081704610325243164947011945069012378318236426599891164952693738980458679638578123348345927155010252171214867290577366607101573004753038581107439241276826123842218897285349183874503044808866223644559560927379382063493056984124519806437572411220767346855978241250401428655142071931365978779930753487359127216614488152939227089896222852757105069389509836269492558172688010399657912701589282050487986897228473854667389200893622586557752003721747073638793137899857220489675149002067381508741525385616635772045086333239800172474580508699959193780162748190224100938458843256120241693568475193897425214486889402058430076705569979568600723266023555118271689633457014646616800926687043000079351587054502583328986005649019765440946675469946897752844731504251107552117214109601984209306545505202023387718909898235757443580348958578457957722028859263840892970928568874877895151479512236362044148222361238175875136727607732350438044287492976068633141932092870514741722034945604145651004504585909987050819803603449025178090321989948053105738737651577407667489472396280430538598567890809068697653127569701214007827922050430545036909881776405982763429625307400135953405678460560975708949805072781220696681796503170800526702970009612292039838850958645382301527859780238690893144474964256204955780808012163120543788416908091193585462956499722599558640868125344571603814015050146714574029620824361853847000771217451649102135364325593862114821391272062439376235311981436735900483173207470846648536194536295727446929050715741897014493272637538892143417321448269940778581757421286294286736082346776595865727260526641132265923279458452392335678531740640240429050480767470712439316723196313147646492100761463763882443214342175571536276268532333030299862143725715615356111542266270765905143255188428630832838718334159650636376541810450740084035830430437363879648056570346304930339632153214391287018781154272530188639235148862328828377761861245133119878745789706925794241023560704254467620598890573405013277779868535084108600501028169661330430922070704989132587423683376871925414974043159133318187664010453114100218959945831939863123636124747693747515791510448455503484567222086113090832719249220311706964730675314677981287515088557041590343113824821547808032802229917899982547634069257105947041292164408855272054106896590572899979630669447288231570338754444151378929627499655264044744952467838192337926412802204564659588120852806069354161622742740411002312334071650968087651194374809806392918988209946616311226403625977437852585067853053232971260099862291231271570896680959452926378896529629026256468021110921634684794621812531879787687227877347385134722399298551593732992713474389097702588130742994965170115039178642214596759236899553662013524018743188362064910654967481617506292676889664698427314200711005409868825246750282142811206419183292648183079486003168659019685440939358229073905808432391651086555632602464173818890555105360638312624014860370221315546653622837727715100581864095464250323702540126656864486389285836005488378719908899162299286210917466217026494240025550616613463853859876948965948742224170905669627059519179611255805442495044677219329022491860993073914946674290830775595683940406956539579108012900539396902383436359612132842388422877456873232497933729528118341109192741984668031204233223127079073992292352624131313348961733267246741417624903249473429005924694588812558716062642490543169084143232426203806725397504852602266291668776753061122680278677420296980862325558950235976492873758348412652248071866287691502594705946342523186033144915414120950019465994144331462733266494285037723360401383981602702030889630668930802964225651999638272023963042395958493337694959994986149920434459004963726635645832113553224514407789458975451444205507501738954984466915599704182325151755814164477843382264366985139983342484744793719055680393295062155976332188775746540771082617095677755902573477702155948174560928336032245562043386420536487535920161311936941042065193347075889592848705603304714684094750702050305391987998787134808858134272954463834144707657085250661115304069820537803561141297959377611092271752360592673572090100860094338271287857587189729929342236420397812905333691405396567517736371696976130929430777132226406475123509846928929107818347921440561588702468535000793905056024443013125638727577953040207290978232580901526145261898562255213849896890821862667623681921409048875899844099671666155284481082392171849855547559769201482968273632354268226588065125445917836864720789922503368124649573026291285632589925124990380555798810069349547356768971862565679615148582552713489317494103125743487995711011396405469809264027627296447268033660067339913765109782391003248258475728806719979280519956322067121196550213447528248386089332316179895897991723160187957715818593880077286044955099759796797717145299280841714367861464562866179438686926064550184617461097986248536933027239443777494814505753083171059176630534010839775833095800614530055920329012858640232148616038817603866856247806258949323079778022175126757266214982240555754375473766777499797279601928814853011120993154538311076923356596208219844025995138953063168233181682679402075851027063324076346283074028632648722454186830608216657582734336496487951399795917131904460921880622842887798753027340369557988471707680497525393355887711463230984382330951870624675089615743994983061867991166757209145206509582187987195007276593659792759371758719842300397393098979925888407485612469197614140067336663223892534331993980005427016619891522066793995576543519490459204204593412102898209351377214845522017839384525001743732633154480351481528561226319153257897644186790216679047674147993656842018663372177516708232870000975698636536786029636070565252855251034300080405461815760253898865254232692375690784991658952321659254981660792275636709783123285144391223518047324628306279035143232864506732145457574865060273915228273017117497303465298735367952253853571456677783933181016243422393641905158964294772649037890501274952689064933815875460503075373148900878476480603659310379205467814295052022089794678726911272189955161847158658003685765300837235646849310993050216242830267214028153403865369247267081184202665423230900661866369561870095890725712906317803465663763613814762556536158541774915317490218512281495360874788608744417462105893220233960413420845142357087558421100261554202952596933788552772204966334501266677235050559878674861138721753560754923115500285196604025943183124787883511928996202006083579377793666575206235501213698165448325603965318545859046756755713059716798791050055950443900081908509260709012028256620189597629219458177575524078866342805252649770702858511909618671917901491005694820630322096256386512040403329541677771672614625390312965026312712496109828619046247401486532275261051516431323293199254137753956501393303538714830393389211645623611542805958666491242594053158706919997228917904163378407225772217096183760996364520170533454957295861931165059526532634454629918337817836808985587641362326901216900808188783823416021602985113117343214123315348210241887912848627827862359093518336590141881824149546579768124480181364550391176725862481352383455881944496762794733016865056158628857914563121766569064285322050670572322094188254898687667793558407773899451035309000234005243225322628119982069107259694563040778195075315976256546074610019802647225493431654657289694775756461376191646826098051638100586150693198243827841803772407102163395274590579794732642096979600559427384131026667772808996453390567591298560091329439992602847187778348452722181159573781666549736829602016805427858482665519717927900914729786296439355179212173162062550031722164963751085758356676323667248806345648884521268110511491799237158688781232324371386867307742304892954385782968549800602740641848163026844275532393985964572934291823622790963908079785502021036831263076583408099012263072155049573632137943855240252615306415996601552471822946767539606779622872724868054573039898786091926949634979638160833284770809567062739387884472006022284263969205430035055103782607523208220731770979124500807010757303755660719595003116687202437790237123639298603475078673496230450627076586271141522315706937831434472175126942963339460515818988515513829909393744245744811503537903858385354549550141039628359660987885137595912156697140328145008639566037354421311500630761468590367763572298799887146589195206883995422580635484994526125096523659700075198135264050433766813606297369327117771453418057037195024914041913800464503548821362680558700454630988569429697294638678256563358614534695450730450327208711592745673161135941632884597123080710636782453213095647332977470159225033642505809556981436273337921052807227850920331188135856275889251486407530213168289751252667585395464043362239056430809142808095054894231573576906915202698509058491988939102931544364861500051856722279580753143705467893046871198646913936742166764500673181451345331255845072360662671344467087310688595778954511182623373517096929810806218080430237578860362539558049500350872530743079266840641900018055739334243845278447919106033394152044288808594683131961660843891489541642926752652063579598339305998980560692476676892616847559627924973239179355742923330645042757408936603731444987101189808899166392266720595082870090591723801880972672532814761043653296659421786887255863271776549212906524689502842493404541410153163597439145365515475818455283320418357053984688950448603852362108415728881724127500840169925015976379433889926829922187296069111654756881240384797047876642921659353559205183217362174293418388153250405110400150090973332582260563391168112050990875752554391925558385165123307995051539025243408479975365321243029960009628098351585710590503211235317807381956585061294714050772484680175424495122848941661452835142718290014706181390791747558111526323802178454374330444005637194526411189939981588906095171780202041365629865160608182361698929537686697934793903394218053774625553873880155920074021099758495586194883439021443606046916968292372000088657740573948949164521843942827258498381832024130960898338337325873889669622419342307049992336945857711667420940726046404964659817288574600108672496471824965718059715413605291098332621407543033110315102303954385986513707286566064195268403607806040096683723120330967078932915325406220891962067652863149859276296424243367478537681688622150184886944012489324119580539121048434965807054318497828960734877042119876137194187998854428231278492378999771260575318582543992316509832221608428134610620664016001861336445900069144745068159949298672558088051375107299860951610759107416620218035455507443710501641079625086805991144498801071558432348860068656921937368734854718046849571777312707225482612233597175030651952068982097311702961280655726788919306881068815693789484897304021163172956644037119185012592219251353879028070698572615707438086114063112348475632310870277666326380857286909205911098576159105447245612896808750063395593892793159854898828113969093122070775738715100889212020845170074770980195594685777647303449971994147846854955887885619382759955240370511305028210785099031910636733655459758430129537212704182213473736250320557944405015443375139907341551080964849281489611445276919325691279202240111495553476573360894562042848278491139662530952385164780601006158936787673875449517832554152412742013941551402994781943919625265871940020626813867923578503385289216903169135041480070353474263982889240195748738125497641470337627560833025050045612528632088097408600126165381821528774902764239050597052282029138458462695543646783227749864411079157754493511935524150074980786427392404160534638274824417773664490192769985854492141536413630757756581299322886816938249623052885270290711024885043001547086037357214649052114193372891447903862173613648224610352397224256019388875488413863230442667698267075049675713624585845357369370307806405768670829089008853706784235803640656204412950784458651364272196774642075104748410937793775863493289152227074105955593526952149957252931308514628240612031869018313657303230845491302300832863678938023026705009096586202463764585637437490069855511096471247883344481717741744908128531187661173126538289520419035677311163720854963885498612366998570941733149323455199362548876525055942375497169967087261167043268705626363781111868226233731077687668819730183748929835508564646237781053242368929237180051131699327422255749753713882683385654555743323133810543558753975836151170147022653171547314885035004995518060993250730721290089586200668725399701617428142225392470805975275089346890206856411615773789358402199078639258100760216782872794237208635948275226837423835282121770167999484731922292777972176656626192855729131132616533083730455819440562456952876424546009168495295661860783628357810876443299373308704437461974482908916724026738872961121048400374041758727863896004230226557695222626829250545481883932731765887539787566551534990813920112990991545199858837164409036497052326266481289701673416817116235613726075654528084652785037306407074956319228562131895082425831845789414415096242599443387882476826611492794176262294851874495852091865038365822843990163161562888817533107981115203188740746981630928511552381310617524272727996136981863230644615369382303792071482660741179651910606958757117965360143160645300523549464573533316832599613945719260714859045743875364830659005607734029825009472302847732686450877757710056237972724789392010503496963174900356238293852046803960178831786400260818164579481317215350524203067620662568201610589101191181508321334022536873456061363992447166496818648279032683614378091261268798136176105764126373465144270703109985281000486907718080634183816153958144055749119921094811311936147970514445508648218192002728863728740956442178374700369888965697850176885867524917015160648797679778024010425336438968722755641866818947719366766316122339136553992251172584149450023849806090640347936347714994449142841942304013247503129122247147842622189744022885808554046274167287615476037285500253401694741994484175190699318141488933748317282403402245643964904091328826484710062530945179572675532914467077447024886905660995013705067660648669900982223577232011775887978213890463263087179509812840335916331784514840490202022691405426592307082577143259414243776614066180064712965663777363104873644749993356379519750815315655372899702695578129443105197393707361079550110351585725948283146468324306571873125081279715695523725088174333683606463624277938577979455516679754966513917683249230448861818524539127573236627740490709963255590251573466204230736655481770897232511309567830244688098952460005459584290730347198420042461094918844321342195998312383539576900283955896122436850082298546006847594888117370231584152342044184364453004148555100724210439080166734101683751595953210624659611897967997960614829112057764185006134855533655984327422872269601626736140602583606296499639776404017667807198411765466102162002328397139141857164592203730453804320334712291965559735676011046015320580983986867032518743548276831239819801731826443747111547232163989198687987485614198830033550151804726682289709562024393730917762589585373342424586128126773005504613850284828549432914845306996919875155867775525560252628379724907427934712072248142586596912645950967657599831115073146744823979090279170794200552268604178772337554131775796455916787129851226202066176853405147536323743716644918570548626119839801295282073615569556651481949096330707994673818891700645891593038414046393414312252776434242696955396387607557491441730393080747274215293312407046481548293048305492952696177181233486346925420905073434661343223546473338482034704559885217151531213756768167851871790480419151066714944612715597653247419132107004767831462468540422742323177552812525415595324965392037369357431149041370954939466583060946819118987516628887891674072862716989999769929471519828927041607962269613012406595456211751233566031792903326457332084715072105308006984641262680412218567663698216598162137353919236403555770676661426424793014952660310569376539953500024844407577220565233892654373470093159040595935265790745716685029463198655389912242404743224613146217017863148603002657637383074468581830624753195154126072399554523825230148947602271724978405711476118028114465296560689525640448995129978594092066654164837321602642059766403963315521666049105777504873563860383983754009313798472593044197819634355210752786464123736903276120434961460503030947974724515874344195965602599122233100276928310457845254613072969284613232498847748265154032840996915091342176297023202660916095542857362230245951092205629907653268680095119579705438725222952757336899881329006669429385437157424798450776767065264208558498215976866427314755311910317956018252027204270100350502606510125989418638253316249900870914318977308866550018205721992062441209021450358738351888151033118354722901538922141666086169622779020862047900448094551251533605489895253156107630813526347271803184349602470949660709862759980915503263236343752566887768393703546071523167728145771808034764754823341083717584531259189632611816876436666643827121183602346429233574350596536771709091194023609155026460404999751878347317690600071268465398896538246006360300356245982882867735422320466809287606359202031951141303226227443510507037321159528354585852839604738852174698694729613589661051064040729312287181738839482187986686867110939073295459485814833209011273559491147339354828494031423035600792951226252623229215987979124485338645399701468091282114322519762910919282271763817530336830095426571769238624513500825079175106103607618139463663075664543677021419531630391195578756859149006879732327020419192799985259758053647971028725739681551574253456078708515371678402336377078194917499048866817476008688116259816711345318905599946005707787405346601625533048923027319580011996508477293827746201127892037804777126714581206546085199924420387157549486480735949822369605638393249199787714253742124032541790478677267120294784759130548269663403643627320776402682309907412425347447467046642753463895473819595246211042457291177541946637907625217991978280843396953799358531345177141348786508469808561417038603544707164503881706398658633376513257797429040596307121864109309314812491618598353733721153911781057512339222133868104300706170438778713391281839994800912052674898873544461319111134370632679446825213503238157833609419537968840543865074729332845657596251101424516639004653225632860898744933107932477346822139159239339509578318853431712252128580042618901823097399517051341309217282298641386219981618795113713067458610781256939694611575251935285445924196999648456271254180369395529378669142996735715411821701381713537191799001243590825317121677451209314321074916695664278450157853006673119983396010636983433829777076966211893007119515093187137313984303845227447316164264558164573904024176557897384943772039343192506273551939113817656097498902969074729513846084853214887162556798284399181269249795723488950852348552166406538831322995152191593510519403161123384711244489998525544136908866818622441094776790954952717630510629006042442310798499616667951377259892520102215952472979639919493301747278913287845050262488277077280273633497790948240210163488819858206016688004783715785931939038721351675897324806960741985475207568427842663937839568290218984241718802164540602656090125696810660316960210423084214708187338789459209721593129937243663415201649072329032252571607156973166981522290697415415265850136196520694235157488016846358119293448902566681994014251449658299538964738932480980423373783751594666208841790826148681015959912583277380258895700179059915896013551384199929916318549767377629102711710705902704797706495331631943207435253222183170595647391594929124206372272158278367222129355780749366028572089561904646815432750617430743414916825030361379929895548690437189341881209719369108273603603554876814852984454856934363633357432681114865169330138891576735256157101913602044608656945797236671600131588421356243261215757071869078714770118258283102943122237394133702781194948689339906847439394689985491789999753837327992995197558111860323740069333333982413289189775907310970921247377293403778210265480767389551142432630747387968267813484570062043561613326778743711803254321698993294973698228954388170008980979707922779955223100695265642707872115056577897622807266231586736964084037162908958436558635492423747669382045951892365503681543287463898357128961443003647275781382481107028405784971372723297981487836466736822054217767217373391220987379459787776092352715743705743029067724186312068324037613004739747577787047099514482817034348807395040259590026866807271231607320553746254918556274497233981109335427102760369764686123992759801643857332173927277328157733082318328162848376734276119533031480616280577124448124848149708469885173149062430951690524353303185132539979613051984356559764342165232694836092688309432083684025314467522810040505306209569156213934724175764919871543904250883938190502823259161195508838692787507625017278717080417063774808827839870404091029557090527393630404439048759540043532128338376458173991776145781363480183720568310403673115055161301689899921237147100839246603057369744959221414786749128529352328216322524539851045465901395278177135284130746639588570279664317723573199066574400345202288922664068722792200933022911990796943869415484658638820523192794630972303473645081699750517376335002448305106779657341720715621093674775817212572889451142166118283512213939120347119048300681098050711523988569693160002306133603501113850332444540162232554535783351665638838715891216429736799751828257193258206292408841407530183741273265464739877782759887868739876812045952905121387185678108292329181465682570233850980857523031938390173641438910287307939376082179501349642151388250668440234322918769218740499477132860165277464702990879219752764332069573869952344503447783916768453568481157537049665150932835392078737042088863790299635540029437809809313010362255196796295462568135969818725263357375386254772162509691077311713351908064738775612274421183771705498528643731668865044381810598364727205049815571198017979067671453285885146653798275866210710742651351909672873845160628648624507251689959510710789237381866513533541709412006109334215964897646707493555035899979760976961044703695442964325001850879519403769683995192080743307395931514258991803684288027365781650254028050948678953231422535042051492402929130284961965088305595023337151238927426049770935282968308046586601460263767678743652224520875728485490082910699605204068356137822561158123579789540565091009195822113527560849388277246569513977307141140630666176730177491317111382424416636183644214988844341851780384827249919702884492502748327977715036971289697715069504182602994809358593345566232798063293865617415626425063207540395318819291717145129472402188067512781236792219614855525508991311032724354166664048547698605630097159013118883829016203281759543139830349626347904782602186444247089083356100866442724679050698718218058042391454322174575493361134893352401605049128207235861575895269357547313310127048611020196789422685421937802447676150268221518315098353236063652750823678506228285342239252464430883599713773746123787237878381261049067019628228547033542894010699201305920415697374391850702775160301923657417851181823568536379269594261416205607731427938114999692848639011680699191268852278033027269355823812350463089124520670160119182607934916567133386479133685195915451051717076777985763591840996546926474172359447251485777051860521670531874913753203080102779589201225413946886797761896709303574941960979059592066503605887969118971115019857164805344203381776965146745926052873237120159291420299690958604318473031388666869670584248941507187107263683593151099375925482031422665973996235411088194964809027353437593284233859094543433253376813257224467087822144028808436134016700800562239185341155368750776400526131242108635888568892491772107801369005733532708836761827183415893532520658459999174502720975117943727696833161809882271663062303673166681054834498271263322727173190061238594861853355304623017311593529456009088449040006984817920484836256700160218213185436703820657647037803385227548115429164547946207785630565874500086966444268384772514880036778098719382541198370397333237314023134769721760796866078374304819373906357756204903571113259998968850125590377633416095554241446577095949316023608395770731028272881911207819358917920705480649850927580578823117145547765194719596965796524824417170355476624753441718906301709154320384396716393585715297425958388962281778128941921426602994657970532948826697447035346657727195741499676473979284736752110277470695339503813450793051552259579562294400134549941003076799780528961746170263476413243337608909505139962749145103651793057488141616998312397663335878566550993550997944272489249771222446320216059431699728710388974899219159588055285046724742045198452127683787815982592368315597741822159671529302917423646063643693278413393154455943909675309069208093368620289721782563242247468970012834504158685325444471484355214139957563820806529079704498617594744270385332966275080493510715018588713099499952924483005457493925941980833194282489457613990578846172084796363772744302576309643450523599818320464438242222132011107003389126633980515885790765917646057668317586017207015095728205518639260773444076621092058121866778311933288679411580574318470584774834483918741528680436870999650577739614527720281225967626930702543471134362466241373104202198993228024554504470891067698548780336464146396485082856951342925193396297624334720923287340594890338860577722261789700742932292861236315552782566309998482925543028839127380015284842048593046209686966297196474856104266934594619199269132024457496243184413813226187777172506907365606783413503764236878066597311833604376456674196862394776982357057042125849221921536889967524674863970708106287078586331786576266353474359815464468558899590140981238452402949964751173604799745134589590646949106208134807962931615383470819521943585594707154185142018471375966826015893428494232278335618528886649208638199649706295391343086932821392532313402889478736698586302546104141586383167043467785038068579393404571014626096365251563738087169305197210125239278582874529432826120926906989004336593158641843187655535176218445934396661092245552752803928367375162865042209440566832717600384964590131839271184605374644381466021466978187494179923315209932583287574985413219587958904773833615984994925399356541917394665619804406491603298862204355851416705876367043868437245171511755291776376985451172102742078981274646363377096113033133723674088884239147121981966265476998870261102441166286540146152229073674266103414720559385893648984080417367963358462807267031227074344937324113454187126043557391041398167933786968868848368014925045837630160094302905995781360049490524194113062120378199936322220360090056082647513133947403667434138048980956978075326478906745608499956674709863731458275874291770607599919638560254308924632933401091369791435504814321403262015486210314191986628776787484066303597722811108549603863392421970256225595149678098359015877093614986320437630235888945032946274208107800623445974721828360325643098638629347867791276448473594659398023889273587139050117602414983518549770713248250733332486102888477632523847909865486704346446906115659242985567433906656509827397974239826615333660340486509763083280037440237121303826237719291929978426835981478353400751453554972786509825812836409655499572669059414905109429067189948645767885486362712613076142385913079402824625474946744414492071236571709274786191395590311344249387405530088200820192289090982092298397453302929109547757220039583867063674072830846637873035998890068134554856792379678013587763014046668755662118062122718537666473266635589236364191682235081416048558222242197298229810631838029610663849615631161670051691784957965446512706837028304702357462675636761623026879993882168327783295604525317387228577713345092151015612950040133443137659792468754577593473826039623862466928011002458312960561263812208148158218922667254119651584219039689663263054893056314155533104025635071007827410745337762679985817830531973396814474329411395464452345220451196609960508398049274341774690148467662253319726138035743344347220621174284651882283379866642589706608933968477099059741241875424155408996841298892994290405130676785730798402500682730833038410527760806835688579695266293458811175781384724255454898362231117485515134664299177365203448257272900547775491253263145915441552373779646890277280768951457247159141995535235774508518449192282820833452761355749928516504910193665313231198407853840614692108406480143695894001762601032320688179088867479903993897695646589224124736970405913584227769995233010733748997563526711532223079187449598015469187799583102756442165124565683574683520167790194505940351459212962946344037328691406348943696919017200257245709613414239669707404397545576943380487691079896350384525362611166957357425681001349416818946813392199271631761543197037952666507136055673913621681670964740431684117637453795855987872234756362996299708483063139182923247520571449240826472214990294571014193832999374265303639246151216427105879588589750582573217766472922337898038136370825724729623686243969785230349267270288849645293691881811501952820002374375444273778592970017176933271302092478415500233070272051411395208066329819914340138147633044485922477982911989524420571442560147377876105242206130736304768018407556988660057215847312606981017764310533271512312273657977256621728247391471121800170893447105376668310276630075887930728042845901614802715631725039222963974951382773870068496967106548922103172346574295888192761506063362232949814033114320712176456279055341893515220413733664541854950101268800513492641779680041320023868776166684689478103564987249229767755984266470913201762419964221501961704580973561528158327105095057143929276476585339005322200557500017966574604579389279090165544790221488570853186404184649024480133833067586624344485619890912327304429027025884090331968048744150445588787488051082246821991234753758029362157337288406939233368750674389376606600761720807042204559772069400614568888561276871463487092256681304977855312526310255012860521251108736806633846775013174294308817609798295974120897596960843579479842739918835871025556961051120910099641147375809991776285749310093888171689602871139905430364099330706583349703002597758931680302635702326460970866577206264314088916534126727362264879397671646879622685511704009406854708311449032042975795225063083699726825971917293159600886967809052279513373734895326412553572804617076617586515405557742051230006706922289849756692426200596457097520241490923882182604680093292421102664816412776554581624010427895564353444348681441567366223458718485058931379954231524191564703537741598906556276377031194594204665275319412862821512401791372546384856783260687663603090499498188361926867488167169184038745032009865072922199456414218361439481118333942422564384284501272620150144899119239489519373419469173783483929616813106302132039414775022336434274377550516211632411188729297860180774429110557034083051790412916598970583560402105910238837228231490701537483116375647746164397596508268618834644973706111167011200844594831509767861514005816729688037150967518035340927570909046191405210853004626493928542954575136820625323384185563407290749442686412871451706608143106105701380072826585634821451518414810934698527710414011049182873480205480925240422763589818225018296293568617299485089667321815843263483404968888348267308490439295065263973916277899992142391389559415085538382748209462860365015332361039918678620801598146782389768760105145494848590398591301131685193907648934107436060131841587095357181131654277080608418739478759425050011628705155979211910274587981970847079700324331450277008948951884882695111618371966952239306182005286011741201070219511188998339938633134141665959057875598421503856036189624268635591459598364286323977165761102425145309738415747021500290610312379361301138532592769704074013539275593766755359152887689266363802082939759303584115936129057611031849689506268347143525591176770426079522372969044476875750279905190554309224982385346056926707391918566647864638455203322988295871517981199893858723832932796347334232755570523794707793571664737253251365473743025195751214109090743189655600338094911248441388771324661058045661595703422961476615715811850536864360221505084012612758791006975586731219939806025064667007810634598065555657796980811850811199932799034937412318844602526573281422525806449173599937598211399908997885298382846506721618798875597254432771558344233218681580187078291295777024508277239287208978596983440990677409538248741805156292820742268432436540864059803600897077035404962580728974696419204561427083818653086634977718804215709083273807124667721954198523027641033297304201299952970353243598459338223835507110074043901699103536880348594690579869276198129767646692129984606578683493152102674982529182703692720724314487961275743031887029590568165372387138934410507438965815543770882981096480599847157350442195265246481000952103420373928407486999804706101597803636117600660292502120526842970484235877034422624018073656776588682194159325461051061269411038637417856335777795622433747059029759481123144410642859621575581940570708179182050169722038212501256301576134497150733826078399027829493463148843217026345048899924529857731014349548602045964972493127242637447963827834889015489569982428038958604769674475301313966924600256714909991386218999638775858097628929631442336325116132617543404513528740714087544955458673883782805788074272986883114357963578871197787599186753514067512901892883556132184083611625103955557136932287609556308032911790395523244798647769657458652212944114532834197834516776326443328951825920099976501893273947737241662898394325435353701115063546164213793868580144995938648151543390033817585949475747757658866877776251400790043654937678406888248381867963909995381713346332520776262590504878198373377964911424302806697771699559170250647456179866517743146519311591826782273902936661871445839442662269864051293665506232551631700340446770373196948814825416362455229219057853259946313992087719757010341115508940811418025964014868036949489704776019817626952090913603518086539417203230227575641552887483057049498976532003190248040974411436029979022512253510985552829058706463714384302726744508556875135656988546645270248939664153664215692175975450523493552527257380915001207848533385806193013566667535709870780791797375395523537035499582355655102245521557583508520261334686921197965368072503359563207427568038798701667571887213626336002689966495120235713864142040113419253118108962183511751937836245672897322429023936661823561905748444062582818914763853690258691313292894680343147575496086795234461290949964445593390155336747209675351953687482102530194346245654315558224120892091645958578088730169984184672469308462877822338776012133428725239853104421855241473786087799110894268895457280284691515555393273302887620397257025878880755206472438427023926599160819981097426294266432390203294008075951065761418691798400190913126149211094264328000052751860276896512177383366094507353128628499926833426379818107871186164850960504555796474986993040663920182289835660819409156794176963484111010050409594014383879456458026011941718457020806123527713182766238517025075994130192292703172304432537626970528324968224198198834872210024725402229099130958089326773239675928517316590402311230977900589374051988718253967714023408979885147407492299969030451647970808962527670368804854545435086486254565961505255939664666849297169920820920137136027939155209191872504727533354947827681690708576202037907970424942625255485757218118031024637322677719613100973190535271134315484159577657334620908534252630073081355096250217220179803603380636806593124884778661371749634457264172189118085232990485366081933055121261716848843748653259581871951565435807400620391342193252940086622075865025408001172938727264213298794060345944794498807062821693013185771101968833230054672979853575410389444397445557656916516725286188864026745991402179852827268052978032006859789672283682014956001517459256895314302328640425852074265410823492921250186293485659933353409846638211805967021930037665881277119071461194348949775225504040634232856145807460058151633407894342693318069933629396900252261187677987790976053241693207414647164911200738590715146733049629851496653112152083193065409583743755120818371233302784760044804846881816756423999891721915386942214127309547166806729361502509385632802853849927807459804989688526868624718470937237989374566240870867439547149970460509541709685837320164937033427966833135959167020034316458609379621009127191754033899110534929412674970955191793047983651483219164952256259341904624809644660955933835084538208017226095181980385107703576552969382503926187941248262027329207968759821198376010960550200932892191716077799533530360570831980797429072245819726522313598656959316187244838036274113921451164213774155025353979088729521798002542715643592991355352068271911129338762103033510489177759502880585716211331322398022440343268256918165038267127313752628133700260768921453538519356047520517680242862290189623400775927873687635637174780113237169300996263048298858588558360102185048395384759112455357066729109826306464386375442866058458491419221380178144720408309332666344770734605207416007562682862464316058984535175619249394314291664778591020947393400434913442142923458828412942372416559519967743752575633833084002432329147744384861789567698183329522500090596839046757646992538391069641163982742142844847669221658685210783823810515679852438960083712437970414514129997295230686157004497303460805452019433649093405049120344004037414211853488190195418096797893534092081585097098307977156465999936870620609942817092725397297742672583571344112292182688910568994065181602671994633871706717448186821938437948613413278885632995549043938809613652366433925314216632345795057836400790089464586288440523514974317814997718442809080575976635799830560513060762768923820737201883937749479635624265684054811579330413603095140208609633950376584922992526575676801570405188826437358314891645282431702598743153226229154244769207012266601855619190033627954383319436879520884501434112680614207234687628449656220011277167747166821933770941812245921727956361801852020411987887793082339320904501179980062159004010472448655406589754877106832831866296784763016449928701487190500173118864811602418039077091185705188418017611572504694545750531478540998576443006324130880794044189918911974802297448287801897812968330629327482303079594558805079098235382427787635842220027960151147520115001101816618450154688571853564455556984137078011246772551408753131669658433506701358703814805581124526605561997261916970813292383629730843150906278214225878705541649488840881627150123325449322662919547636443974095846929167189108243366496911193438399897571399310414559402229712433437370849052353114728506082389886219437954571673975226304905798831600982829662532630360453097804567882527117737676026407424826945335885530282236684454015157773759225142851903546354425065815018116092759951844172678268627338127119555368481812564437796616023828496908428683077207070800878445660577081856016170414787933987757870558414756379146723189192710693291887858593475093495658672114507910245499911836091646006454739658791668510775831165380249451513499713287544522669885559972938537482416485592621607711796498696364301551281062985695470807659601009258760177886518150437092292532062796070065953686076629579505259325542804105788130210686573338816506487100911317625267113154747971518903555156820729933360095157095164745519517064585730239741408875897158294700132528718526523343139893570023699867836871912840868154623076295267548855758159262615312715919456372651927028816852169734779349193173851182049492109376049146108866372125435659674794462514847056967282410507888835101404812573929745029438292506419921815824626868966165960472893194384067095704649296159038671107949663780662012210731918965221759302214537546412793835599974929705392818647521756746910833634176326785839709543392094095548667636269100333902987766784076835424752457551509535429394873036585827761065015368561849389028067945441528282814265828638122592724638096688936528534137378828866538854113102605914719127816075795121053111884848278879663258049956083186977872130220153256425997343806650060136720978833780600040027872732036915881279967265815453708365960484550955738924915141178225580284617749623658820331965202461945154770824048094542795021970923634748086687661124666645262551718208644420079265883537581892379295766778679476613329805455313359569703696696849932490720799614656769261581563459436270089921422120166763823662793708381006410357803792814662518079473056381209513969777537684169359149318086046804985341560534361392623233429266634322183182307703554745493624628460615080035689968019790023342072809658805299161026190879408274618471010534240164423727145358436435697491983944928692451579359175347272551907556403848046949752996284663774304520826187040160205511295950436171852921638739725018354556651971716953443717635594460386687235257449421353656824064519322257448854488495779001388393920108869298703976383900596480516863872713553978391686227695651506705458729327768791730703627418868568722666907832632743704256263698872229517247928482947657060576141489720243615090496560751052732659771222973514041782833169077995968758449553905005528414647843683671962386925910975676121479595308588458098161188269352147164618257740651421839451311423100210905409784442474589058867954395899365440817059111551974567441932782078471367790274852722766578711492930111092149767952782929598726751130557321647925458868250539655450665708111581678134672891220820749501684065873609083059669923805594468993423228228762765103343047935878627803108461942842132552622912144997408774731179771495257693112595855944887638756403842801526716714257616753034942761176409066525946719485723502778710243084604736910824581573590942776668992373516754274970698301210211380405320652322007883840587278862906795926789789530459304221659140887986174105838339954886158509466359326210758113063141278169513602153818455856973046333066782019613875441967999198829866094721618638857346659371694099892835128158036949153385189888217449737840827414211804759539536867501905341189270587168460167870611359345468412173608002052108927030651185072110092436590473376440972912452021714461494901583113515026386500666391766286700902619735600311294353382627659060226697648822098748852476858616575749567427059632974974174059235168504370334940058073787108612211617074188802044943940600919635810419666793145743882356492689016470101509631658631815312311570171487728064534601272467183678265610584598456882826093789211494570392818636381559013550376325260306433784781404632022153257065343057954510763244631123207987189603275534306908280926978432511955404498497952990945364016509273571412161323288148380046812086457812010368522217546325201614918537766304357171843123089551574747340528735664397110835501946303374674996138803753215295394450483081067682093938042740188196475737738541828711233149655630083591290449003748361749609401789740371072082932798166154309411121810693217565158208155733929082715632617415086408802719559635072091843920416176264350752404806914334372992060248222149055140796628573888788839861050823131315924888618661889594089131069282041614936589408707297112882018647675290172522843075885407204702357317860154472579237283904032563609288979956548760292731441821634296963360357413686804512843715043164123682736496613212370072315364440465717544355714359763862064253178921562969186215387592947980820611696493050106868230943152966215675447331744357863337203582783554868365731569210418166474570160004607414733980902874952188973243052683235791143123540451278125812682483632737170368705565468442793531332363336853769651821021701139137515894514800987670814358809372046640052070972848049631873872034740938854557070405086021340247422298248406979117307521864986956482207948031867063593525849307478972356982837262415949569497915837880549304785264904092846280205745360967859338156809869456860362931682559356276217913540490618524363198209813769925481967382252734171961438564524080077409259612013499074961360867554590882084391701779625583324140171981984663781097477508181439602038409032811637008623471481755799710264929209813386156950451362733744297553489179344107908424476010757247285997223488590891909850961152250048232356367970334102856766745781448922830785433550021211648020909164731955476421473776594605922795115086429630717485981842704340673854253743263897548682567135793248101467996850848174780174152869453066074661070110314684625001004391058715924062561393377969685405218059882300508710787693513429718365007758811101064058429069189874987162846167834208017690261138263603254720570820262154301742046992982075172684677021092275526770645171074695126038336175171676322202388174891860695808035601229016086054809268506327522923235053087255995216237349379588246432142894321896362255726690135694632277437046434984021849971536940683319145969728663021407033743849974394631229751811469436131432444950767564521024309903478824308499240229276725316748163577231775373881977245248316998047579313066286974965166074696737181055023609305717476198451300455161861554068483643221005111904979267466776167645394301316718259741746541289560586326965600584366305441109690878806590312242637552331889568254229707772946869361735250432887396321943037547386567251334987038492458252344438577231064422432830828834060698214536905563881125170670014379152180598765420058420601660052474259601141721723725906174223687926309234180645621947707176733743017362252816396581940130788092305383194243542005426920470739724066355152992909797124115071326844350142211557021384559823450112638011031125211218949430031936967595614536063935259123962001669386864022836347480468368942266772319836465773275080621748519833938244036577594226599875565828775282452542321815845785766748588465991791597804898898651233013707943999282045924996015199608858694098532312618622674199346654530709645454655708902203562042703920409405025903787670258024588036602622922710019262825779577984001445311253215545031546966735974271907082966294430599738297436862675865067551762685163133612139682485897928923492887584956949627257148007818673590790846677183654218415853611210015746895996253748049032172068769360404276629583652148379562784432795917180953187337088120889680204901509565081171266838621916052848761432909039052968946547244096480268002929009807010662249680444179009256471721387268874012479260959971174212755951455266112842414820777803135938698211287033764552710638188643327765404466310838668456557358383760359797489798187971522888216587521856052951643136559490781540533009496628455826869675333266733588812990108208089571506907227579133253478022569971884823072505095100140183257030094743892754031007074231190294003055776999097779082333056781731616717598449860917329521511775774931682463438225746285296043101706079798642853660853746777546840146888526370581218440926704903859630153937705335455470466670391470429535573326931673216236451128300476845274212265673593505573524843580173329613525047119514853531273714323146631508977849502338590339383887110261003929858078578463174607175935056245216479714141579418940980426967892134803243822000563642285826746822467754248372963165700621177298129408587216330173679412246705987256160217410941395886888140482472636885524764508030187353175899203236816987010415414688500657644363723642728454986957724685203285302451702087777712532015281067969319650977762902598321859779459260788469294243651896543008720633437577378106669438311221540527951399774614840447874133781027331127638724384108278996190212780510221201460352096951881744376204228533525121020826380203711571787437011764928911510787682124880453574104455384508367185129216449940826821962630923702596148623834091468745790921757163075453213339064951456368156430201614330112386537330205040351181752621715168887378393957754284440391706620155850625684583002093473539957102447821582723879660828811179639542228209669334604114545182762991764754694073861664873087823914623278640038494136960356199379958350261939903369219068651940465706751951046314480478157997954713012850060785749019493614018130167969188527209938915504681642868294900589169814773759132791977215631181695640312777359279121743054956211941294497969279126658584024846331609529108499593467568368562739890778817918544981399789376401169720814533936817430592849582133571996271333719881151757183964019398070617436143914857899619701820488088991238714176490070340703059246144751254790759531348867945593738403511361192380557934728985856036108096393155259841588999884067604923453841273103523731601832711037570116187986583934070202109335738042632327510505084122482062059613866815386429073788955320363589138807437880111131353962462887022371811270652728141517090598127335618015779061270885926189214242672689436898555775459890188581280262659291983440067976402021684418955234066104932366635027973937442472203478334789374127600753766032328062382330979975080581814624680658481655620190043409359064850345156688623059008645941718026393322653058028793920931652927135616832183572812522112509171035027847218772963466403439899094407966320859148230335365237882893102777540358157855302138975215617813825865765940153844651368812000104190602858763914118777711125517583928730636601120755836982694914518808010278998485951137585376280970164133472695848023561043656605852748364303957836779509671096027583896885852732569308754577503208776432219532391691053802935963072393044806333040234389942697461178305158556733134809091569145864747864740458017763952149054552115795174530493233457811421105087167634899206546622366325751419300263357227534419336528004720909455265799540111849996523019921635426257950744309689245644544991608809436694908258225274622367307510374345684117053113310800070991427783712421653479145002380533618937475216855351208471785949013644053614416506688213732932497398459167730498658167371865455146375881066294797877268763130200705623182433128845877225052582042121887526016384965556645991275930449130692261722934318781867344407313138350376615902770964174662218864317961955768173096239034744142289353101462503971208919529757648536635082471625851299535402433895594409623323435596789237339530829522488746621107930366063525450298833221982707623207837651131362929941547285956685758047265808193201795212609947279588301269540272283853075610892578033176595944094149351372504609716622778948861749794884369883770717092849563235892050104888951471437363467353658305112971780398221657040186668236227948344055056188730063309531676629136714193647854956961018423417987906197427588111920742916495306617357699723058122484250677843748545843811450022021288134569213300171936653061406401084143068162805467404117993646554522040511985320520271964445215036181050602611412680209020960117732168548139272271810959579744632685738501314357008261425653736332664139865518313416948099925863437185121723271608526914906083959332580050475938323152532977660838282146173819857647070551381184538767988026516367850039638174268572126438706511446401967077204628136412628677851783644285386972465122468474397502725149070758072672604931275582873678394849083477319136389486156702920533937658670659742582756916122913902770217899981409820624298992778249259432542349087393265232501581722375984460154126135436176416102390457699753630755406981729452089176699462150838067469603553172035277596800774338800449507311858823180133594368806911975754178940354532152426800802065024857750940477607900612641117304939256080968258080561388032571085533236833964767872472572420091576361590113569157201426641525884121271952054604668736110530291152720987414819289090064269488562575016028202760318835364733296382501209992002582526960159143680819913703030307249945303698506972978570581986710907803642395137086831988447537975530021199431017659157918324728521086810904981014880885546958191622627694175908135995617480698163671259864981916842513961519973073979784444836246672286835255021932570873407980074521028625289146394820382490357865081288099436021059949614684954343456529864980153348947518681211341515171259148137873906506689319144407670468419474271684914332863233905473804148651249217167506852079385899522791293597871660755821448171002990590027856902723569680964943397041000539528800547250451346838926516294998431249086791307650502207939337222106563452043822139712601661810213098094605256291654983449679832476551410831239748866912978609072205194115661066669212420309726161857193257320508061974280467333592474204149395617232277482660880564109181408248267851803181336156504919203977574516540724705547724016045025407078259792053418604167684372145815753144254386367471684941903118883792228560727286456102111187031751641447941031593687197629746294204391491841601786896576453248631739692646423872552074711326515187439044059577242443824875351356829921251063356538196355250857022753115388837426476006431776285299376333396603587438887901460753189926248371431258215588835780764057842456158601004204277006373382281342405479520056555484687234133222500988258233964838162014349256720553738098118783439346484300415430432387894052550955789496660685668938458211291117701566239716646558264507703397173338039027549242421527136640296374751870204149566669245599530836135786701912230852541482225456355547474866266262986166813198783699655824529042020522608481589888739797987153962537239135129853434522788889589123424923563404742880067414608786035293164920049718956682214794951772736395273149952323069538817364564105812286956283432855108903069846345592191253111457062619043605885672395102357656572773851303297902643827856250216779993003872004284409932607904385594849186527950359962223693955920241707433708549580111709854209717133478527260826344567175718358056391067535628145227779304405551882067877184883290519718707723659628319847607193323192564723609045951534501104925021480893434093655373663948647479437847248808516045253456761387153266397991533995905033191462262165854052313311249583919070293418951255912480501697728087468035642297364764175740031137451452429492933184791466609738499011664945786627561251661312116890730185704743437295090345875483737924292451013270377575488905934094758742567096289286648398914529098800235152049685124901870033078733157659495888921487078907428813784546913883535888300576341053420304802016480283650926784866027434276967786019415194033715012198441495789815648223177512683083316179223105817853125346208682648232726010730654016346940560974558611039374871955529922116888566733064961307920176108088497631589562753489023655170865249113724293006948725559804636337254136849451997810380592777134851998383139148266998244265862670951424096695601709002908532980330924570515349516601497762104473857256981169880988543340291052964437273402508855958530558494108675651466563453818435175423945233634498221748453564148222222233110128319530578864025847044979518095239158741075521630892309517198284339714160218230232964519021109907121477296434174723936222228266686614115571620377058836043402218426897641924879539830795036407051992677703006440415240651015794766753339011794051179835974573222859184792915179462095049090906842319134258556013949783587258199375923651874774995411536572582555156600756079481862184016455280893375383094918135558752659577721046424604666968391877806192467071814791256313772704616494452029201482790292650716635961672460171343904331233384480686407442830504567938574446384032628170880139597643452367770003868358114798609793711042927855008165342394682658147007341803482239363788510355637745319439803382459963032707941587469768761616198083113476111531772596781024466118220843433271156563550191180819852319469722672069174995361767165651793979440524922993771840128247145007544829418681607455682281029505057530128154890854694021562241922966387419341948203985109885644118141314269656152409979212246358893014959018619053234291376995625727073835450122089640344762498894860127364858478003850663915615948074582004782535624592274970796352458212288017917106350849086992804296298865053782773368357693536469216548290511379919568613668513511737400960286692271877112705468914622467505786132447627861087710210526186476839914772343993825608599313907852375855673398836009372586044297520568694320574499758548042580254028233238518413765235929313907233817653071285023433030765914099651455377657266439380128822600987850058997604331778815894219996641478246614885182062223985738470563694519690970504464514688496866145593637542486471520446642650043546295506262586691545839617029770980108969470661032057240544371378599703887209466890086813866288012824331816728852929861147030869511984471144010842354474821939086552732955297858326935851805541456243977998189947713242687626852077612989726628502397952920410279201697031298589010240999184740482910638665459949692165159688642233649248780933273415042073345528513040819989061556819916495451553219492234561038062532851690346350931416090006263374928745891933112238265955600287123738860259436737859114920344913737848378445199872967173912321772675450535990381121679418364333790679035498893309765794885124862195046578059087961418354768150148378099661851644338337791221436726921886178046987678459704732049443719548822068864994540214836732428481499658301036013170566644456258814510127066083043267128636419919599668299676042335957693966722700103024101418249927916272979135523159667189013368193573369539759190726592528313054716850008652014180943014849563190868628670525724091146152663966807977732192342251729328840882993686445411372015858713045999094859556880260582318556393722708066260017753594811594956038962157697510419104636530919806680232927862599419506381438322127369543089466740805985588708435308171356969743374389607402948546059019238914910752641586399885521544815714532959546948770797188050262696966267510532189815888227406454782666694528854843500979587047710085262490543213887370796895629682194267351840361011579444351068910523940271066367276148726147595645446887814504910103928932122890016701894315078596472706249968941770525361685440128040160584602346927158237504137000132911299232506710785357613468771831601101258741076014280622881113928359049575449426595582399220178844993074710496102441532058616034242918060311206140045336033676186957156240510132620078962844334522668807114978168891624031623151287464991885778142890639073344322917665010614818212734337687573663825184275374094611629361462116292736601615982179105742737144959752121353899475282563120619571330302783084467138225329415981287956806620086606874696154569778091345007670702205318333063196155138361509899295026271042425867897848444057262929907440167485235828901450712808727293477781179988260900340185223019110732399247447130800296189652070297375034872056291587160177150789370173438458522327833621698390345891257841467574254990929129392853621527463911258345936836518921984353131824996803170775681907087771764112084899961453644097369725330839952005943408055142308973827196443848796682252605512525707854763381438551727242807619547165461842135000680591049379653708798050461208868000846116012420933291219694634222651572552005028105751818769486644873396654812165102110837827217999309705608470386171098054033574687139689552715521942990493067690745568322027251835504640280258867386127892542548614707774781837114250446612016376448253904620492357597723419197890833221595928125499378406055584077912808209112540666128809688486037672083948365414456050379065180457824373947282683243282262182685157933533608914407468376959229086324397941071752492600103904635753234852093625741894992479640270394749712429699079000011999037327753037487849172920605391697296605149815504146612273732436203377056976847011824439523196827671686242078086418968799353570243023597636649022807486301110446317891776907356343026268261692090170439929332706188682139067548242975112533502583063958491579694733013769856821507151835664880994850000171694681673748503114026212902060031894053982645265195769198555956600622351878955257263228692833781989163480337158680101000443611167613212613866258325597943432127836994284504533678427007957970766491434062197566767499440162934809596035161889398116904513799475754516813679130430545918335942098424612377967843205016160142305781683396920717466658354024450565083527740584260763547600087736378557173750254622341541155770743572371816262749587775559528823772593627233406592083492246918322851809577227380020628881280432875847112786207657006913541112713805150887749440485668748012131189725909909044015907156747770690863525346707574094202760257080155082552284967268541225661984608937249337547117916482318581637176027784104886040981085877359233156523925314970334880338518489581449444989858181299675220369471719079074972015706183200766053921878692808099717777324825354312351634354378369192891397720481061724861998290798902270076851445957373951895468584566334912555980415410602575298636111620796612833806669631559892736775520735191926671119701416506974050855093869231963246340610682148879324671397846422097487373916196493972156726675746609292730254535213631521028630235677970905301834640257367650427254719694293442546736389040336428122941902190811051413774785682059605623308848435763869704733749558106900985481743422462627220709819235899020833960475061522909601426748899938046333118445134825805955421670715736064020149715317687999269514459909082470614914993015947629941447737533434353267689484488709541008231205457273646045605567620110104183990276925639635936191388305672108645712455942356249185659387427892466615155397894621721595575797165151987713533009418753915460570758417625936376882926010377835409407095609619976409943343745845045560842561361925264151882435542075929454372694498893746386533290383458141275458558697746602742343425037307214357802901593159731113754905020338698985468001265687101848140724430507822590206827371600354863939951090580348780634531474007178310709604037299997767377326826677677196150438414653585960928563515121991965717928379393891396696574702640506235403450695805939545971713147074537687115950685081999644851541187837449009515302409248159339368789249767766207097497123248107909247147423933908640012297740681639081191806875499749860959123354204270242982595361147076279259391662362828270708236835610434532797619818559004013335004467128080344160525979041039352773839999815115767438446335711167566272048588136376817487791232746800135138615432064615265941621046454290124593929864667002171099788724548303540242720246538453796484283509567018664882693019707134811012365593034338093906835639642317929372286850155406098515462566313541852488499883422552914650147938647140944386529257904288724575807522218735504016631847832810391196845704872762760622610846284658627576073072688787372250562336405418222060353939084319803435737909155348460481306288871619595686449070585410039922554259035723350055592949087411883603533487390268873056156834034210454853365553859864084889585502130652822513520107950983173118998173270506024244363067270721347485325746631870663195060089251911195737087069283358393657965121308607870576890159105696520244890639493541499822689223000569651621915764624824682592176068048757793999810026308001621949209091636372802727228514068236288451949856979174375050240551939437480120215619583002187215321055601333244444311780873630059678026233023849890394465726651139661568773280339447807411418885565017007334014870332088119767627048105352403447701353772018465438226357554279401349467172355380056914909165080667315642528650990810846686576782080704866653021387628414803101525620607445177541240338015245754970646250185538653343600504200606268771377385612224928938272139070899895123116030894316112547200490681895707027262120902894769839385401942681228154498612534223571064112281804907023419192575286952121245669958290068835661247317592946353890947252460921172160321766612638915727713473076886674891209408416625408780075777683074982093422211662792172929020987034531670328403626434810754577281142065095351433591402472732363965951178342399214611954445490950805156396540620471908516295970782953680019656504475193341057246970247771513347781204101769956482922538979230994243542832432864582000508373527388234336112785315710803039024125012598042437890425333545841641244041836526225580247058985578422123567150432310146771422225616575489009789186218162780386842716227459802530885594806212668157677259867497316140579575961145134847078575723181309229815646442433296722406687542999008485048265590193492924032887187874916327756318468152276125887525639274339050608710949407782056579568745976266330628930960869706332684403612779424705958508082670081723454198345131168552711103968753180749112837628150072545642139005412059989723370353028370233408962897122187477008460473735496160075571352338208135474631997554217121284626878697940760375403250343496110350334276941181045090630327019165988724732385858607529923597205323575860339780868615131113570328881787019743699738484030255278079148848627403871415647744216566004092194285375226508293066765573271325754138754080534518938735361489965669639106477678617236723748144342489869972204214215364941763557992277161629352412329429552148786180331896812029564088182552931890203150184195311568443020892154604457605843956550715434442971703390342090166866929848194908580729553701630573980381927595723731912854294131381594870977653689510074019073884821359172501315786974642711724506511270164048389129516804871756421909978324477207732854432175168579632591196511554738357343430911286560119666597508599172120744733892335237414434665387546768626106563099027986787745466509476590205920213241191255275626365965767635370338003841036797596901550557337946764823083492083550950135301414858943556529661319240368265601190112344949990706602390973617692953775181598953645202335345514730957334468122809233547968821256323471491413783746327101685967315647405575011649205446034304584625457972262316277268647106481588931946738745179556626277495154430748206398761664981253535392233132875590280081329567294845599141701908898401519580877205602191256520397159714584063942043335959915603255368357377413878824358518128435090844024197296758606062514873092162444575486018940812970319120325508272716460326515840404417522112489693012772716103882834399510434258370329190641698815079946653723534784448423764217099263347465496214834809069209190683160628855832882305136776749996475486597764076500280413327659771563001511944671857661541678716691308886803719015280667950132171247462084094808878981273025041142867094244502830763917852865787410633219062540462105456096653850161090566128129476533584963847726891088462555068062429767500894597961324259334823839432052693509945696531992791652377991482815421249992506358796578139857420640688383678843981983604448440585167230290984963637209111266293395901807955620054418647282528174928039180020488488002253396094504932143723404219132435258458929497775185623155577521918774275576827808582887077602437430983465330192994571583596105318223489912856698387864310206780778516000315583334911948956581726363161679998903411265865584512464193290282449552055838153199623355283660194162978669785170840117482451521034004681903579235853222495547485322343710736679345594045967203841931678279595481952948296622030016036695605275714700232113008842482664836706163053909766826248932959679854715493071966264016848714535609764335277558377360889169980287063316812290416363629906781470235344804855703266889312767856982956709339270135448650217800944771435335314340275100871730989047109583989305955733574746090094017111933060545979125741534432349870524551378792024587177774657455789746926145838687788749820410192274312986105906823429585858882984720439807989733172101116478611939585759461622065399386911137437707749084318324851345691710311566237893021470625884301009051709863655319761132090478939786113977193305539863939983635011464924339174000813435237341200362894610108526294923204461229273700736218037580028338649472952362915935381672585343683327857796568562486730250026816212568028577629714341840804493601713936431980343047373473322234615208571792105527258550292061615037816771318087592703985562974601781806395011381896107349158984829709038130946717371379908584437075305785866123762903872930485484101959439206005447060100544928554322940807002158865146822620244358069965377397643879546606465600463181713764068274983602393910976127045942427570254993608487936728603930598387239201152606083496955881755840673156291822882539277489888530953098633132254333502915091727748306240818852543873893380514740709872791247127833253015454562445434418693029379569007967417473272306155317785743870455998802952217751035378883571839245551330308643256217148375307254608242639898657670156810878130798567563454164617336670264341320074422176636461584744725942030052482481616240859673438507094381934291167595746802819426520224626714012976011767756807926363706597295814613459330020940474705114926887082575781321022819127496205584661124868104915664502024363341659640869262170690606676293303037493557911151373911700246891922962105566341175504998963192729358835410590491360202534786993513735531360343197568158763122515979044478349966186153233510173191873828100787876163340044998052519793185260714875654069966513781417415203443042799538476027317397333058654477908779004792523806374858899718727101426863071576263663493924945812205622096260471117573948105715498676305832625195312501204178797744862392339567516422083851883676340516987000562258064724574102543429737001331729509874268988875563765838049470493185023479350285711248560520678872491170730231212760472215959268663917164348988577379906746939057171315140755738666368585383348020578825644392819054307338101563988395644910289729323122205652263376124682235633323112274595854674608829275551219491973373592500616385136346017157318317065616009860976824804229850848839611192861402930361437407224803887503985274833532011388009103282535871555416357041836213084494280743819358146111051833728961699973208804135998560304869067899915240156465257650787264191431047339911969586854240799019367805974104158524291946188417188768438561023763363037352640596399567436543075263995664603355909015082863770991648632216052846155829232106157048847211945160717245620329656260236543415149937594829688281002219953396330480164673234882131825138170729820671080756718825630429259898607445582108436574267760186058537951486434599806850103224987272400779926395484547088816771942478118931916614006578360423277803302742092396805154016283723894263299821551497911101360215779613327679587671176208705099624657437598448521536459305341637332731664515463636415529339959726947163172534013742780451173840842787299344590485481299422316766582753389845293183892176213618643103913157529662534741683382113829261887106303396943688834521988908509124822081130149128868576840062534090487514096682082781217339863688495612465372300061065396424532589772553592295734677647421046664993410857326822918833406158514351943268244757219892399023982110247842999054045566696401073859148665818456695228289248742432221593516213579345369153184702348922804445022077365075434987110330468575054010786543957858280608173323901021145673444159012950163335297032205557036338264510645560574839230051121134045975085253524334871459114407838955522863677943717072555213431110150269775668226617759184394807347235985359459950348478140387799880713813824663099789910303878229956962608375668068986295834306220682906203686890378119151162340362333775937497419699169856543259491396633051614465154216017828267975504910090616850298898915286089361084732293818305461914690146822483887892310873184600472649723486364843264719740127050641320998348786735646919545657978293052517837193233528030321241186474377196878903646168390473839467825833729530197736676114819017929109105241777298318795323464704162091451307705745186474380497051937734527217490734113550166006080989361765193046796861700403753358417571463837180384416609667825465700466885199391281988416117433295224131254417422158875577513425592685161739411040026222663688478491486174006464898182622358441395495997812788749307513910073280249064076634797154714338018396546463581794097813691453977435131571794405599695620969881679002593079398643827592685248252304681580192542463541544625963081239167946114246941716142912908401619381918681718794037919122090811699133427890981399584286556163269703254772620657222019865647735950782166809673792482390231634376412829095351264051561471962798201393660962444937861233990976721695109252680317840625475095778282353255639457818414738434521716077720805879629371553653471096321391445861633150411459743991979157685563390239430560810892389594197266709628121642017635145154830422108743726993121519287506117358090628754559319797053135238663953298630418919066965238637133245595287344965633644350303944890404274572919165603290759170863884361548697398498809911526139821063287698628320140982267532545122526382323324186977808500325650634315478301993681295832641506185981645749444311127221135667775939170149465876770707359040509835097884114796855178296204691114081973150256324234752146308330329915985566159716702805581040526893899653603308082018831813782205769507364360653036719171093499998818269678758979830714394960689996074897657414481825606086590359677636107269703195948218761812789944461804703158647607013643455130277312006319075276117469066758372608695467142055595986344824046514362939060123556286090475984319988254251665032995457374278233846344842014841527330710595739040725155818179580115906118257744209757381586925618664783494314021268219489158642471102704014631372671824096149453518508999104303018012679193659342428250752889737057194472670883303033324756085153446960106416827379881159551688060366166540243017052264406533810399173210892156681723607044462545732571035194551742415746517290203049130316463865194564606514168066019911497101488420725337958801793765779127612259499265604703856539005215607372542002099026809885849460606642440691825748994263409763702965667063067159799632441230124057705246366477596115731756053875219780987645892509808662400033746214318716008254809787577841888278135427659937358162623268633768445979092738849013988997990165778151269488140264145051675119949292866729815933927645154059891017974126365117836212929122928334712342818151187567571159581662681231276975771034235503638075657336631760741355968651208583967021158115158219538874372194752067932714720856981434624714813633974005554888482137280860839527480202203025575069851774486333638464266793203739409848035834251397339339035983812565759804252481315350402204413617242511130770550451366231751911567626521442092509800916642177015945237108316668933108460068119119023954522036647618920420415437243890786135594802840952891124442591050211249416897757927406870936676772154578768954854798158942185080952891838055804721684861328242626343296248690651767158634985240826070248789821896222131432605720414814105678634018180728387473431493503116208420533532002909594636868698940902429794038363247766298737669473055588988943122035256537409780755302729966313218697334507720926690221771321046515111876273916727757648000185797992856523826943063711479510408805114594043096231085455244896624052551062981105458135926190900418916355985909189834395985410407186333342226948875801198204775707122805274832413425155330619154368844378516927261391251998002439687855585865011047338526328163242166483053208831373181677349673542598221934987426478667347818443479196189819281827200034522913123539094784694352080281147290696901926125527064808274863939372831564993069877682639160054670382174004401070193324399652423379026459725645634920281425801993537682514304681698893637804030107442261250032742975404404609151870565974478000395839930221846283264941440257851660302527245835318968779857017617402798545637288495607856403922618068813277433100339846177599509370899298795547847946646772354879331838825854638102503422026472267248108640241681923826335264831889412529706169744159721242440554845136409539714645591816934326602255369091803773837721681113730014556857814734248944124171600427152396348400475004429287885265718331603305193507132322587935964935901303933269337036519852092338585751402248598090734805455954219872733504741122991411636369363041090890670972944086065078085426688468305241640188655885897738086463944731813866324767635784429533030966313811103615653725640580941846514073307047299702737764245880296538730578284727301911092163721548257872295485822078483137020082528445632162917988220427879353559049616424628083445485819862360493435163659847013311215979245106140935977535254434167916488962038024904656121445412224029405297131182939234091927969330181589795949520355796388381171345179226418448451876022477697809447426776995360785367602128622108635140448588690038527452892573091719474903315071258890885339097105607425242762581368572453348433461058408232363505832617058134624143050390551384284850087376609707015824814026438315882477291110865058479105556198339020408061026260796088937226203403360431424849630748866750621924887261977972491418910086929834473409374777690459006314364414940667498761147661580643960173249451107890751487189073834883734502374575167033835971728575108812445792156089193729920604168658789696599524234505160388804952050991713353461582160801922674053335299623012511076554603689392331284619236782016879296632472633450166882306944486261575595697625757068701427654359685703467426484797672788377610382359901460592061323166157014674066697220755294612397132813591718011144082102064414272292517135924411991889265568586006461359658239089402007273737978484464647508241837355123372765248693265099066216013795783069018560207028530944430795255897178729326128404104390143804682166573765774902986800546742548808873796022909293697893362977734150988483018121046391202796410802271512777415476348453264592032229382176515059364221041393609995357646795031747243669813835766808059639935698372250602639214694724895545390117824129851851220241760380262443085094773298007923585506059112953370427832576980189024317426119945292263673168030291872504162424623726428193011008788139968633427152936610710486141346172494968566243283497578182863770417205347558889382007925995829362259617708706402082838081979823650909304711546507004190840522557805590258830078564579094830628587903533395987550023975433996618634414015719613372456614128812576115545841466358152181202434396063313261023999837087699504599663033539814818090824878311259796677749244514997265883820606177205695635850510458689916632245819012551502079354185926325899404957758243108285909856889424713215011085434169385182693732798278874956027486305529456515095965064200133625439765073814659256644571868584753941005955580461311308579309130845568158904488562878288086510201657743352615262744295749153741021923967843820083062520648037754824945447869139704651998588995903139062796274163461560751971864673475000083647800132627840165906538619742461974549018725083066772899006242161045375369129879927264138775040498885490298800345767291220122921092318596390898098018559657963739767816732919214035189290110324494442072118543554367739024085550249112904732642457971948197743024238204666120378400791306265373444532956778908306518091201751117538378191546308504713286809785051195980384452533437736297466765354758342930734928991447712573709950996830297332376268616754136376005482704356938922399304023624899459195675074074017251580018395982791961567343785642322981587469157549393279574007166112862798224999546126045075957557010653727716444915503725204053842786630476138050214642945945197234714352575365997651256784703464473335024011850609835204660296718015124259018268452113143054070276929533257488256087703763983913095935470385498587267545623620713554497770554302508420482876840231404992174637399734178065564322253661945528799347530255631349758658502863954590758999254033085938045769958503027181735996233495014328408802258848986122491488088694172481246268402765716351139841979493440557069166684097897490167056103922814071491167463110936461665333481752309385972936584280271994529173652578271380699639423234866718765391578257108145761815005531261735471763157225593883913576824069433422579104457661592232569189962166503268053345002260623501371444553791999554122632476985646621156098398357995379216034621999515809010448133274440792942562795277817495476513325656010123650857998446462933907332943939686476221032973172018508206683268486248298862180933088067915357582726644194804214520386558931659493955855308091460157875895510085598044738252167722135863272603696138340463721243988943296028177677892011371066010716167136811425931948997031998868813236131293433175008038507264105457317174038918706073985513467078992673910076583277788314877029241475503300318654035376179523250261297010692338179221170149940802297051838663783495994500192502831984680604476044344092614047803218696106973975094835142853740010152787015984364352454246934604213133554447595226867270540821966271927006804177726932650851861671242077356493029052999230540007290932676475320706806801132714933162082909190063435481425077471296046777681253362026698843541912634031684536089222998032996919038056460849936614081207332144472466792959812732927272346430557110364602650536385708775473834243958235060906556522544972390512845236920278905023240343038486921193668294234988226283781286899649191104341719283835806468748140032958112017113895768385526576546100240309950484749188650908444605263957314544757858477655594036498626213545590451838124288667218440110409924010546657651574740985146884136484433363587997110331483735316211079174053272861220145602388806702510682798520441674602291607376518590181703125645901007384667549620197071026704649694980119420223327445100502727412436144758507185776385652699116840878045947835354950783329618661719181213527662919270672789107904297881484858598881931924696157488515163263507475643284175395926335544721823572107068821781024548479122820567405885901500844886213851287027636021808985251185944369982881487879842056813721642574640049267208110757136719595154099566778256161837378549662240306273623898652044684082413964108144744057488799875879311024096529866734137760641008914642005982883546630775583160694027854947867793470481142109599159740987156529777280899910207572972231230636119802368392087794591258993353717975258514456235457983530953148197736357260922103061477968130506309884186206240343435282169855528011769756373793803879030970210398173665540946569968412992319520894016317996048977132814439443361769155671265290596355820622016563252920960013443219122571914232867258101163864518015214290500703991473560222426443662319620581447340630826525248574786170289139890190097158942238910876496778125999342497867140278484225236877940305527227596891888114972809977346724921579812498954452867113502265050418797306398433822610522133945503254905060019559225818277806449288400847767198055581120820109582855707393459640784226470990583922575190527918780157086195527925337740630226917990927727910425650949551623691847349877805488337481795165505228669960412426600269221801058522717708416590500414600095375616795100935788238386045549742223831734175839698620759172180460463229093157267337545513277737180830991436654171742339769298845814101822967680220058783740839687934131356829751740033976867088854343481796465286798988045177416346778872056389967611686048383252593032999871000631954975618256256839712880558318831898434495239193870574253916105896545171733878238676252195641101417484599077486318356580238826729509513547170765815847923436021485177705942094214717807017863559193914970972418357215688080473192770812577733993229428698424449044331762591000933505020351379436587262170490363184625772758204485724052444682451197117318840823574335232736770205395052998310609837617246007049623263269319018296590562178709068216392270571725678131084105826071408676639683622532949637917857136123986559737473638151080818743706357077976752458305224048655461695897089814936538482903582991425028441491608491030828299958182953386058295188819476497496937994926371182688929885842512486449501189336392931021904737243143052129428607504389405970807885752359099913570148355115774188162891833218570091942100258664927188987084895897083047951078480493351639059535777311066229590819990799409971813578990620344172411302579044091303158296167755010092251631118880583545359142267666730551015581528471422444486017956213488801493380052188157996338160785689079279472770777736265599156871363780763222262517877487896893366466808655627694478812251282648284510151889305007783679497629445114661234439054817391031838272596301039071074084012270487183735017494727469619179516826768484201293875099377752373212754139588198603435698878308339609072621736399046186189771427400348580199675298544095946393368338306295655838888940859419716929660675858338914819425531794413010800754973723230117125580509468545507905287035145701672348303902718315390959119927723549295899086744109149487854333714456726258406012473289136296380102247279506504248516979107233094619279590249523709672999569136789367294895417813230083165539589543620845670396374852177147332289100085601955398761470084291898118851640150876036506737928734952878360372657203775230087844634152765346046941810059764559438709667978252625869055560692952860508264093771637925294655931705628476244604846880059634789024986218967914464545472659171934977482685516525118601355823588516165476347749997738006065593261821347886682447694931794130676672244644967152655107286583491614341611475936878726446037469471834009225724412830314573502953805960033885994647404052448980787670346827301336990578930362849333701468570049598125638763398933811456201889787908690045704705038108862246419932681497979568033234226589165137323676082055304685828043899018282944249342731279110917043622576344841443959055722546010820750369402846355330373330103957014526761102909729742023787533415872827303681967896588930440314017693508153991009983904194199772213779891292419336071025573703342351493787234932608297937022326510975787173479380209857847396536083199030043678432410548204597013826248270958481762273838193629876114027247572077878313237342667771016535413094133797093777336685560816272918954607175669631401147037726008860053818091834180346218267045416597187519220836014085779041385799719133901205541270887762029147716161322802441043953902931321001417631584357399386615576234936838788152440879946093026790413179566658635967168718217888747428781511194801421032324786847541622564691524908611076406318360082553910661435358150109499368315787191874138544742704465519879672885535494375491961957491095080147590199625796440965306187330045806608863363527692734042239986263032135327751662044307105726972336834173375205391200862227606911137267416740317993533187976460670985629923821623988949542563074841043180972140601767865993233004385421204482961138468386579834167710905883519515341802428382423616472494050220686146770744466529395441809368517322242657282979908609074195345290811642765229364284341814648181164269781828239702452165712407793186338612490952098586709682798676904004590447646159165163511146745616149674851295897910735246929918075489832493760771024625154232372200133840125259925469047697319057798855121233137466292735631185764537650035775115772792097828909584500343425820732766497021905579612047074085474332201907103453482088713154879140937049619750164212078421793659340962047542571411069184246317041056046728443741692922514283037309814267280767327540181048798475487611640520848796617144699083271707224817360146980639713627984263347064341834088869862756250812654457409984423144180775744122147454159948141082397977151169263315358989356358789458940549510533749010697455866637018724375144872008744599477927580854483165151388977419300717606595891146317519695096145510973730073878402640437979182027032352676570848361979171807804884835711706169915817471401246628120278461386207081863395266213538439010771832229912834752889255345705180310816622894109076355787411883988843893779101283308403570485280278418084669793003780344980326096087870477336856238611871691644298774775746362052679961519050034232152348805640119746016689258152731999476794216256696843334812320386795444802777711535845834705979983895109748658733363861119950836669658788845996500012887113360296581469555309994862617439239102294931983428831649241391216015692860640349566621948630581727384763395383182848646546751938826337544995015712752807339230352012311535308876358148396310508816741603645519892531048352561173106923377029774071949320639094933425496025778241988373809227058366363778924554233249245871771420346957774600102131613578928827688299497901127284823307340058962272241701090243708579073457934209577935937000759548835955537237133142456765067528603615195373682548049535504604122256901760736048628490668683252224963738328453942800088711468771587194481614747173196376328189036592495090470631039462230234047013168353926700581458899804350644425302564754095377987541532987867885493832353032660392794509432159414525051921329485182529327328379087022406302346078386193361659935260860090586228415583112679524737592788167289966767033229447044224079496559492217179548120367770065437474993754381236071141926039582310407693901949943353178396404805221519662659714811769097329822829585724837891674542668580639062614829335723419422277774975477174165529694510504530057555676421196946261536673524637005829839522739206845003110474598782260391623538220731860895835712963708322792343127361377001877353868775541784180768904144351775099645746264635237333832766096310964590463566594048475056600586651551858957924012175744349543981549513087065560612817347636783268007696872520478760047362448303545286770069593520160325262925565441113900249470106085132749145458237199255048471976912069479297695789841838404909041845659136573837691006541410547860798593874296364822475607701323486801000481114506449863382888472915300104195340726823573835320746514991628067191024131851645875373142988366875177923129850575870505132349361755563064427391966176589669404968126082641517698801710409865120691965166877791939350130031203021331444026761589253248309072758069125181805924452351545403206956039875009902901455428172189877753141571728742164439925598117530690648565521864475446562092844580448871109864564221582751653051640056228873743427848021742770847579450240677686465796703366676456905784320148817852805599284292383861058970469037449911881265861648252513582300356152959808520601052701029669760062805920253511512061648822167664333264712592786675244745894579968334477110426300537870645120879854323056110367031815422283243996211299166119407253776405080323547042191924232831530090323319745218029270500331969418842956273455682154665041748054509204469395511515952157835382509569191013535734927747598682860600451255668817561751506527857475681599300372371437237812754402737969996400641903393001527808089602751230342570239934826789176207790776757939338166862393720191040018094147004320948848836097707619229197256201872245873350946949592199087046115358526542826593282846069616090855673950941109789486430780667311568523295880390557577389602288135744724922621011004505995221071625842236116841611853162378288923348999151207924859179457871596708309138036731823908316523196326871158461985189317147812642133926382100774807042587860180491383853902724987701360240233276356624501492874082412524936884527939291425415332582647967107745035677114432147180007039121714611082515214321610789087350447512586200804886916462791684383016696541073414701851001281195383219183376420684841111085317855749448183180019921562248887332080393914718190176661475657511654419633312465786207418058745826724463662099871026642090205481358377209241713136565992670722757544741188287898262217521980730994101105635105658231032986955868391703660943931376079775234570361696328718672285250344253483070905807755411185903873708283903648053971734759388880453237918293029748899327713468852181093207924768235239692975313992037613374090317610345531074767397409110981514895854434842871434273113671041058176591925503860225890221150890597067158723884605730583235722958306127449587368618833773359470999724149620725487952244214755849187128976336378983012937181872186179363467756917964169804961839249414791334226794362674509835155182637835946283743042364687093909749804537928013944153081606429549262733352313344017773486925937233979156315052174900988148007596169645965133891405152509396652495270173925204982678583685473663819943504368549038067190769498070302362877738913430605523486235147014391538550331922855336922031014055746622567190829492838753009844791919053952525121701104980688657250097408266815692968919504451783319245532376296108564728381088262642365721312903473592508674885472450490259132118096181837089845099680538121514793285513493266271170644414090492950873321321624828842607743389181848236872142037344116502385785666105645026603909201176456830605929335977374891398561107250031032940549585510695259599978303019435652443536924957951058924964859316094593057801775010576719558722205829379693128599363619788629951829842113449936176446336739615577355149588684667175681405147676443715634680762111499248257039324069341279551580173845314604178287441788401734426977002786049425848454039739256971139241120362372744776384923467311218176658504622564698562713119580672765693647023119700965093071104620462633147754556124484026682738444619314745329392541051101488641520404966390825891396321326968722206608840357679418542637859915768919852318323818143580843431517207387821709517250554406772232513689156243256538989941496424215979507554774044881982833613832955024896644299003366530493515678900503144811047670505760074487987024967746721197904223133284203225965753530301897459203100205015722240800928711628903803746683822422492690465092518753220496483185218511752820268072543999756601949540686881918168068597999102564699194451369329933773517735734590334099847620733165524304922607397579521807079163835392211767306355633682775017408656588017481632482151007272585839093636599958994414034088114755743787483741415734059724485181464896991468156662990067793778894067611773751879732203171714330473634334517603321410138834209811293152328173208489481567885107481862382799043977732644076735964225665696603750592960752777267963001217578146316423585313568416468468556956272104245585182086985061490838804171360831831188385125490952315779596463815556216819737030184965785977839879799209839699964390585450125554136989846877408511656202856347706470768707522388204933461429378400180044348730461203576713343655486288747604007865593337440743700523351010773786520384716372101486432486429391494674045628099059012063771002890702617909045420330658842460214801484224061270010478331012732899153693192808869411647276691725543143829607744376956269055096970426684053331302890290244949751938099137441279792379822409050992317223833379058849096849955038243110869835553360010104635202560347413672446856371786393937839541679564626122502873294887085460314372856190436586521992266506753617150660314222001385376526687770026278663134251404901911643180089689609905462953199898595177391420932419011038680821439995415563300511153956396950065786002250125328233575483003090375126107875648983980115367306937017173714889919283056616707586935905196094591278168538417021213233569797937892329918499086462096572423545491949433636487979525710846013191159506940965035226970894215509445217415095816471477827634860597849194325574988074365749296757795304396594465800668926188120671700040046426599216067847903393406050105127680474750390856203696736600275267391651551149916959290770566416934524310253293656857539795308076394868727267577840992397905096447074736104017588385146906212290415014193072606308536000004951279351418294991422283814280559660135680475741305707522639689723831253807881064723858273209977615617773434131548502378013755902316497487938468761095759782661908159561109822639573415256869864588599927044525172013621982406490137922396420502785762193883923743341253991505046716019532804146643485606499859078274462838346958976674900792817906002282752399182500657577244728568344651575343224738948467317852196837304727502808284563738626470949316941744549261496696262982914716895581548800610115964734059891318753068072026968675291249896268941094577434703123666261349845097116114502303896527602995325706655379757384657641986555206922990242502910645949141663675847566425949601959676597371174824444732058480953856159780484196493820921974432990733012659285393210024661178052196954525856912205519250725657986919493348816538213750816417532188256739669482046534379817577107375370493124535013286076494742950192220555123851137646694507933525924861684222213466054779903850872322716357990776367527330425299311620570673669027087213613397649875201474342918912497364900038059984491668194505179860374396630092858910774470602200594069941181812480615098666513761643008188920518326550325776082038545921224001953840449382349981812258471520843029716833852345933782611850113821630357200954835348003405337125407444191762351408621754551006437754076763784079785005486284104116602729374198299537419318038686580081754267424277110048481378850622333777951749633522556160732004410984503993436283839593168623294400151355157913596095803962133924916006929990626662889921122901211312773393237587168681808884120226239876255439735222723458114735426900034464981645204696430682442542038197917225335081140634599932726021115985723136964788005090732464872952775256208393244640468078959335013873820181847112017514046934121919047957791586806530807167615231390726943640827183282411001437866109943312396514446673153256498454479373919914330867340651164583419371357077107377933038106175497829427016665077814813251519330161544565904955761166843563969362827921067006947128522966175364076963707976363960239229636258155323425372421744055432181164498376425653350734390070854209959288369660235150806744156429953554930015012884802515052568433616913344076967446421505967497080678034073810153765658294460556623279890387914708378768648174739411089431807360086061407864351830078291452140275315944419231355633019099602060376800399670162323302282922113858356483621697868151770092934829923041168049384050376897422040976104871669911520979312603313801130320778211433533682420443908534262629601192653255316323908977399658700782658732024440444066406733366752113453781039316549810179036836499955048913971602853627490806183202918808054809578827077931481656053941332457686513193590617207740173201079332459613484090970910417640689681446998614340188293671387571205516492440586383737287128365589606752252069015172693910014894562870046972324088131935615119496837843056188258325853779694836970055290793021861904218045615900872586855797348530141442869679496115405983773857387904839936080477198016550467433112484047105822817360262606452190205241085584028539055010085754622558022348709231829375969070465045618069292438873497144019687963253980739513974752629317087245117952364598858748482894037006494894146192105534396187072147441259012385568355012050992665242077798085872656404030431337203640754131749351390951502552938537281253775675013179791837150050190162021274549767602522149044761240337864989377043455290091416328695463143670987693164812745724993777619356221681192678440186274568526529039904397862334658521733718977970429362868293761974980471533747413961936467066417984276666221230577858558804764028055808598311135793564148116404152193099379239391180810649991855730092306922518230091605513359386268342285796992363223450008067882844376951245732889470376472116587329022795733523128794983195631233755978341060526012669562765297755816245293817655905696906742950057947152487651107165130987214125187371303905507638517902583471604541885965564646948986999930531592338079354619268086140611578467819411200002412547874964887019977103792043654373585432949586921860821953982348702554450932666176810285310733629783266782214902537439113971166761059655006332545381564506336248204996647537542177536100431266444161176517107726656539789815614294426147306243003864843596156168307610601185871484763336970313450543069403366933431935411449271768323122541299285883634384306622619331169097171816291624092704180354285044156919546910189695978903844468259911896249896543273535408352351765702416637512058630925879269059761265087381871988344925586493414318795557041606603379319241901018431525662305294991126523671505592267379843473581403940756328602946389843011065612753333681764248133030898108542877898263190019132242449309664236671287553816597524975964050947921418109645144529814934492885438866927722009075355362700659334679181931805209078677601068289071230886294168019592881263042817865078386796194616747167100146975074040277328575542975378257466382313751104631503619652733236756151349892809675468501485933690591245332644538411869117157762109426438955438323766269514489239012245954009723095711015744603363865251619173019854581741424671676320857979092601368253286260335272279709246926178112078474822469337283257492889679762471125922087879273072378303672046305759530824418473082415714819087326106276332851890383727983018180172965184904286337280115045486949345368788921225226505562318782693983048312166479148863484385313157213785662569010243125475079659092052317239285062013150836710488019515811153550502317533407668010674689962061004209611493146305433428709797996927636276800339223695897732820927933465682544459699631291089340423889586459839694176640441831980013329121503523683424049867668985746399327291625465267614048168684554393896325916159279411527713299973406913311280155671194428577354591020934775162724346542523453723012489762482578914409102276476465705144135530072155016270827279655159255725296717024625361847811029009640577031410385242793048700061616158423762775612233649559457029138959992733659805157231539566354420402200478201783708772830594152610584086417861471318229379068487550190542617629663367612325388661076977319543484551722284762346957976075939415955621699219932308603008747059710813678592660403899420360414712099054093543569692196525482050785766965604570457936836875104173430120460653047102528877497602134061157501014114951769237763574105578648496070826087176383317064865834506679609534488341423436944773297274313337494543543662529525109163688875451538470335991455278031649729148558841696107124317623303806938605835587537644529300567923568517071615774566035572444799699339830515679942777524724178542875665339645600192591352793695325835451982634678389967411008247840413106777984958185735804503642340453818149158720357097376851853089213499078413775150774537745948227455409009094860628655723840538415294047883549365167021046330562458848136619976524020314416613897368908453116808780291857434473951632375641084238240333772391423712213725901374724138355790416604245843458268055678385250861022740126299281136522869250159900404099197267248835549017153954566671001030687009070863128215923096814774502714338822757295198946397684778194448926629169428737913149747579229261693617143650039342388189492078365859695954524985179048762278988649269601121156621003709250512311791138294620932925267418371823585441606202397090315380487846602515834363894148217807148078033930326545106855494495711532265574924810529152843431317954920382036909541068145474934934652081003610855363329655815753167690453523003976671297664575070721151974192781441666748292102016562715035684188920321623174074507449306775426206699328408960392910077447058416187733729886811513006531597760695433588185321675398317458925675825807935610106263446018907900168315231896243115402612718761234721104839027149458497761149637736764950322770600490722033506495180499781175150115436447004447200511381835659938152354600694526369428754746179609999879934363364151039153452727494424558759284038127217481193766201433441872604891698738473691525631298683673907084980878355076341128821273415019099676349264092477946249811615894820309524546529687759163650409158953623041760314218832382199375592155747878388041427572975437645753653309050844393468251618701477291939840504251944104889991075918777527785860939750727019553972760070664349862507766133077459882247326669291184037464952306161254964444298164373794315405511784504498462565331263863517137441470954191843610178293335466539715235975035159337683021741702175557193080044504019020798921318018693054694268959072811028499587016242096856067127708331768636854891548007697182106426964499093246637613560753036019138532566267208674523316365216009397328493422633697040603589359733528531346127327247455030338759415098628529820267598826498164247557177864332411267658319504199010213505290425771881109803724676150882609433797734525166439660905440882632080422054116621143073641224694979563610085956643150025077127933247455533503006667355815553584597522100127854476369655145205483804353886690409049743146055231904322303064840051972790617377332275679837962423732406938857855687020651817517590907658801007795997453037151661550510902114422437474956651508301548326229898045845464207879289173917737067495285508501001853890129823938559880830091945342185695138889656765440002504377224329719337097213330317386695516500694654123738182293384023819489495002731427507309568309869565084158685498530058405199821668825082670942814760685060698034338099702839259502325618650279404940297125211177009465206313241337230359061057111616624200600637525652187415958198330825474709030217776042844249783032970976090846095529572361931249947399252982456122896090959672602438102756583755527210329592055345929874556192435728099205345385291502205860495310855477376415843703140084979518751985625586816639181587658433756023647723493453784930371924382652193050702637712330252994497629259741667947234698329497409439311072629027184483953502276386108065402556326734661915641005094179779560904505288824704317239833950740201844903251466740660912715003011594985839259797255227340301745381916484593644349846173711943318715773437101451483523197362052341715946689860930068928306556073138547216194649426530901917236657200523457777010094549467210062662971806848513481630065603868738360106355362459032429037055797125821363253960113664279732212609985425800385115005733228818422281079073047794584209051624774926152255290522037467677113059326971593333788208230854618299706014168074967241282543036840843064727305338207478978740669930155963509755762963610650605928933964697497305628298578118383523111553199211688240099361992665605060357340840343801075901177270411562532066787286024865908250684035908015504984065835867331147467837300821051174878258454909605792171610401412651320876632814122955833211116445943124855940671707842439065019675201261008347268106343217949437655084851241969652812296544672210548861263185813931902209901908211356671758646084702767116028316823528674592196554607641779761463290159688065773582526461749790221763333542535783290595415362487209528307554454883913422293229018687808567247945936201316646696895742527114407021500175553735441170262506065761260172040664619907205277626537590165035372496347789894755986485080002285377136231070892526201048106932877442736525764942514352108334106988653116352540218491930594321288444677124151318364720901383195619172336482641394208125575430079097812388605333030920378291016411357832456075738422412126144718376027758149848811244072184142964151436242213049578365275612112851691545032734588567834948290439574974397016657064767410817507438758743391344823189316232199624795593788217617079115132583637494395869692136957653426157369426443815521323074672257998190303378046832518395123918534041756752597266848596528356870965387354543319032242235522281656292318856232758634044778210208740957855801060003469278846682390826234126633658896683338700023871483766078861523051212871403629034757700487583764270628197018169106655683909397246279436160571089236748119739946811906769662383678568310786009041109728694991845347024851224701467305708265054133729443776010963573825255114508319109031974126554217599357883110641300275641047175281825287943502772354113450178305276102628659452357539727758888978503939268741128581927599249569667264476835895173767657544955906967023190965798935470132957037498172662180948857817400069973975868492155430897963226694164899840552687981511725497340034494116134065001773870410975981318414267752163811677695537686185539022499321107829122305861837297679457981317947618399190779398605656630250650824879192657806025111298713055372731409496456403117308474255773688928880595212250395995556705123797291454177757464660487460758817122681145478356938889013819374330151692320121907590957851532931092833743395754238109935430396091558563211179175536782311130569461400707708518716744819646874262409056864105487168496269079941158009463935415905069168164943669540863295437571284794802413212637469907557839877246454948464542635651147368914297715484507969416298254683341496143608651563671287177060417319348831215293016417657518399843577420501248326432863824897787780355766520747354337921261731939268922831031208444293698449570099234892215564396120818398913087757447691481233991002896976106604896962878801881762584499670003287416752235702858407163880504533099450689647161807768670259890196148618329347657146810762168145631499198343238564153927038426681225302045770580802455747433064939418328825302773224724657981938398197493891447551936589101619487600839199202004327942466552936779787172858119042593472786624659851472234573243949572262998727800796235950821167412489262432894136515690324942278191625230839578762937410752944668735014410988331690307634973980477498114470530784134836617565491279280917662181628740578071001170637414106079969437417874521218716865020844798961262159916418391541343116819264542450544785340478493316762870991200748238610257141630641250149087183355853012409944128836349856504275789462908528522018314478957828056562226576051016417543162260528500224780607425542956103498284305795219265377987504652524973216736481767335680541293939090386022375201298898123829933097182304495943261239705287865024264419699795280197340055757182115017492797815921917437031876940098574831649489814916193306870039464003545074748877478611050653945520054956498424046218023013737721191217754155464073012603628777527438205411405326574259391567464355070164799057501603950330713685538991301137512911766125059241299866411904735619493725395786487239722055490605263814871258695703773374730723389401049681660752514580320150390830855310719816226389347296532274593694618273108789956655343054088298128203951460845149110282134587766611495697750915988443203410027380450582603203827392764081492984548766032657637019363550722731345295794220910338775283890589938822120519815111885673184429697371254205066555106356593066880511566629195097707202967660417952235396652402701313348562265850342417027770937640895894752547311193655925245682054014011340910748817076173551616836575586527587434905130486965793003706727933349980950403241951859337636436551295277125596261897206634745398986934756424381332644081019223648244494866020055910605191115652874896368673231046344705993359753894577381794628317403865439327877339033639644405763839508599956024714994178656634222670077979401750140327778639847246324918126286256998184942953361408789014502029478360157738418318901873969916961799318587451851573670142021116981800162192028716536257642080509269421153956920985288249993741078697806365432113871448305987503556492958005755077131905258699197288669995865171597193188713669183828728513555929811535614991567162995624688513608721117669326962230448306528706688803373279250898370032386999120619081706343764557848843757108669602582893205992728852328824843113593240355090894935464990075733572221373165283971373327889127829925154745803897578311362202276208962177693273071394246234106881905712329994806422981887762886912355275136853188669545917947557863254550666249146049049547363263241648938768934259086166451064071999953117502436511586417179245699486575051385997943103363509119171650283145745558260021980056026655669041649137211670794088971005429648944888026304750405678634309878555533838591787574960987368395707108768933904099110934521525031149002896726565972595871009655541770833316613267202871323642019816434852960831001525734170635098419530280235208562054471964915728663348103118360393244859729738009074894757328279110114641087937521648873766858135310612922222178921284571995903582923812209401633101574055722826404797148324389858171716240044872842877211496040785843557320406854637246594651065368340459586450095655851685568145554413200789212646140994383250159941254701898844718229860163069206429132173500730757797859874073545111602990840861261522623607160814781313132045164137659176638840059353615682159143348582675882509593810133617619618875589373597757177659393927127775534676545938452560385165638707652947601463027887307366706183691300851713284124753592913244603328537158643471129504294151242677155652995046958723735683599975428186956252867260348160049665943777198358580990199940360952826372227558524453564135068195741773881621824113817133807345269266671472162149293319796779876720762457647815840047174307301622034263771750151859070710756856717786684391956912658577434646335677602573020986908817170675368639412514363269113982038064034687283602002402375829804456462676123486016578397276361288162496176564918423478710124142449156730022167960283935790533494060380874400101484548633457043646066382367930902560894445925841549421950449677296051840810358728664730164440900865618994096725623448259632718745783266048745706408776775182599897137926100947672168527665029052374974764917606991792734890861783967542561523171838724741126925597837604677285174863363385943072836030615792084763507090595379416825738257534031028500450891627980139853240024376818546268250321273463983183870862450465322696961594289749871076575921410681804244638448471595407352423814249840271908797774210407297686661373372355628708340832097614318298348596768940166847617931239383414220753755869985755722262406123100081470366410365450190942683500699625076485335941618343567982503986026804531055062444233227446598969891954254808703908919021587455502565765013053248361078455566083305207264764835908881250773495013614632348460320018712104277148589337993646256502872606399227395261836411444388332645588628928110595358138636843003195237190714237346234170620150794457935244919377527454274452210649560587496108941251513416906251077613295391496890437572689915909281029488820615194454513429641427331527234671633517348707610482317702351540872275356313229775171405561198679942164082321286011453035396378051463854400775376436306695831036130765178373082995764491567624115335422794833931416359575077870252078028647646912409643459829067397478427525474392868060831818790012108869990349705131089455779916205857692332230459516784273506919011491756687241218652919755842693993018529968426251695874940720627517657209974999650446168918458768551241964587432004950307092864467084296600272255375986370141022013751408580434914780481706611929291635308016553478822696453916013399715955285442827583127264330191585589595317624510590720954383451349844889906695970460402782584652265228580018048718700452409405710726288087133462314381192010861397671502864654991482013543676920478401551425844917174945752349385748644688418154466264172265940347176883544833498258158109293965526789728324387720774105768187838424907852699263659140591863972455778940785910371841989176915315032002491128641338272659928759609290290135846066787595541278435973605529081492211469361727532856582918257616304621770050945478769341396700147148573202629475958545124566937280824643423301551646904092560817891803473057860624944258619684126692971261533227959445484618783991858545375176446186182051303702191961061708672705611395513597257668128699825714571346449351872845968933187230973602904335356208066423290068975749664291954814863652836080340904488941045146103868234638369507073281865005456927223264048904601182613873455126274073125036330761347528454655487658349789944326955801958455903293254174839102529871213858914720943475070191786357136405514711378022243693910523960540923565567602860453344079478300957251957627461679204952505498677779296549031982686680273234765544416117148811723447277964968045678402997682214974188457212047349395722516986867253141642625435140047924042937443989641982260915242180372150767187271802344988603361152989420813891142690390612550032539223277148701318095474646935847786207393518227584381903683172134207089212786548257490577498569622283292688062830005513320666421838964524244634802967025084675465358281622963597492014045114640910024548229342991936630972003390818333514662617845808298741092228393602823383257354097911146651658184161320876159756060574260421310112158658738477294410245940965022273624971345114592476628921909223672088677272602210264800137290088143306763549897865592201011704251179557982500163136546999546740665282233434125889009501334003740163561077051517359626032653613154598051219890068975935905413821658773080750245656696631083092189854925555706921753822888421647073453756125261797863347794681796864004245138086558327495682655580315764571946831040225091508857185713684659201543332736533390391554393197396717769101714556893899533965125011942413275596987951544577884635503095910375791169061029869298718439821392150078107170792350185574213765282536257076661206042993829743518978938579985838457679052870946004342512069892593324212254192126428644855030880702648549584786674467382977552658948384370636108614936573699244484976728942222971759145097960845855712353231977217853826104487405785693682277626348379463979048169389535068790873163554059553777179492621883698052217799264567377702458929428271503636896896239912026859647142935901043381211293542691469561336827545511194837402969125409621838308178788537770622290895116153229781485880572860750039888129694788076197328514247237721172360594500094101662247811647632144791457495443787785917394958422777626859068346070695145154280220590821225364523688031738794125782781270136871867743762832467775980388352771302460980345713949950606509347635731730507441745778693612789783920048782003190228445006125453769450151614263090052852778200554729958751586973265353809252055181915126475180942983054641069491256463115428066672741236543406052747193712890288286023031403138353448080646790116715326085115038522669721555687843165954398322235212964729802103849356124442699537821979774938914300543733172117694649524612893849313414159933940527725126022200583162022995416946646662160561744357523998829708119902864204024468069524125755456158624038940810071314371827402799965932652384085121749445187295693669255996129145898366680742651117358680415524282659953766802215760625561983479197246112469449973979641044265039629813953924332371741171186258491847414011415841577879372689724742795523477806974802281258863377887308809169409734350183858946110433950783056449450943972967391386032460578615303623297317077829650899323399210509961613431155379576223758399065159486135258083451984305539155729976703569645460993178932129630324238585714119106280803335807317776977101116403353852920665656958761478990709759015999012428120300730326180158550943306358888073528377794845817475415371661088451750464151211372336132005728134221339272976123583204346852224439495645098603202565990826489813037169854458385330433034922086435854893476358013147172543421840858649505574159895706255947254081350484731269602869319753061959568928051079376227835358255515689700003755498240018077601670589988862304005498388936838934152979833529344575754937878779425401733372037867834250036660330097166281186215270131419306004198765223030765692196891543595839669029723175812823351114330425288562252813365984195692438614588108571264864862734828113821121631445660981453255986603879790248280098977417905217857725915348058207184732408999540703395664203157152781701797123762141249770789531564843679260588419767159393586037501734913811109515802862066980860588932967361374727128680117463210572960431345949783226005457674304601412123648627290131016065570286228777442868446160813253959116855012097260514284156632471947075957063387972827608670830861160936138983976001350660647631824382410935025719487970002736494319782022740013599337776907514459220088387238677787450360006304666239591911932058636138655939372884579923888457514663450584618622248666487042519210572863853610113867925713148696707812507120200627230500428606473468157769736692909371512788057610022492852860973651018904130666961501279287905524504692827674397923966707525092859459459185724790751906118420699448530805438904591518982552585816196083036818422278653622880991569622698533067378871436520314645696104600440456904750708109513901667228806750586483643868934903970595287124966312039411212774718225268059622264380072674366093631681120148079639666053742075453301446847640842953687952646870372770644436410413424884217107195067809282269416441556967550276857299346316819940314421837515276654068348786136814612500518093915628518419325189814695101270794931026999772141867941272195704594810080880751771805251202251092479490526573802901785219097369806671692992298081079243794679530151113088223756371878139375634298223701803792084190338473334454784872753286593514717182075943353940521038776372568571499012734551662213840883005720496142406311333693084191286811468914751959779243655244913038214191129132837712492599777905024296362318173316792252831126175198961406055441916037014180410744570933753242591095736248731922293879391605046198184102332100202406971393763517601105308289074472351750324954567297889275739544747781113973498515484451445764633973527768254126496592556288371084399587857813014799245385237797672694018913801227843897001301887035813162180640476825402803825908109698444714658146994774178252067399310405647476661843721663505984351151524742646939466510196290906795688322363399051628803335225730144966414313342232014522888008905754509162473166556381447134357544977940597340020129545581197287888981161280190329628328160677535230199966138645985906008195553477085819063563654008123117783957255041360951734125757147229335472595269313878190857470347271403282581564683650071588853859700186391684133282385810215142494851156503775069642460884911110051773773298068556705568179174606124216270678099859874138739704169512917164367164224832363971667449016027430143449318995536930358699510957790019451478566951153696435625240262096479592088414260302355132761220730613830598006358743431803262236760676258283283684700654747066634827674004661405431379175629773477502221793656182107440617066924300371620241532512054465015377373013356155501749309721388709543940030201057664320425806946002470242079779685916523815290209335344630461159078759987611338930049128223259170043295878876799829379086032055176146197006264101716437126922260556000280651565686886534306818512030078307318839394986684010631006895042321649810896851708323557625312712042272684798524400664694971116221822866626556369687335069562816611470614827483291497421109615978877196731642052945830156100327134588105560571266180758939470318109543919582613111071129963477271829840148786943284437891521586491873922769056705631449776696551786741856405312825534437844219811015017385205748977344380579146097828912293450072586133456437862001834785248452386772850104685370701044557599716510690330664907510879145363277184887241535983231366495197678379833918074564883564240628887757923688950863445146445757854378483598925645873071302883135856350693992103911910638408331103072128724538152295033873731833348966693263679285631492415021671741671613555918630058344158081511167060200198145297887269361962760196322299058486240290679701845551258315654971993784059196937418360405124246381561334533991910864242147125147955725297414076051855616434160146442837356851805231001484444944384372251861198687145153520083283599658732291763659298852219421507050322207756390271118979640691722718203987691666656021614771824947505213940750873249556398874734279780140051652263163137629421081606299611480915978424197624416167208074096495997001301239234522396040911613319964390178418483188866329061511462702678856522237408393730674960444596072445326628715087140583955308016597767492778855273997363211131388679276598473294572114413770313870804182406474002910386059920751711350564716954609640773048884733585129514011792516742134383124811402114647125617527070246932161484611715073980918368975551689021672115321052660202756950037192712983497665065351554707029685564693791897443443227167223049508652003067106789957409722987544678220456916159525310339937354514324835086948067182503158708023110972377542082064509454863601995144265612150362576751868045344594974370705791454561171427355126971214008704989745090642975024014673551199907256213390997547340826439147647536277874225276138770863821194748404549618669623720461412518345135919649648800596138708871838841675637323224415137430515657867871461651725347885449655287212159011871359258604710132573841768665387237848149695852153651302281275418989631024704158540618785853382464089764028652165298969081582476241706335585951065460043955433860939991311233994023008136589508575791295817650625325384404927483082191286373364877091223470535926766730653787051638133658775973733297256790066742541302790619923448295649772897884203371335856862481709562502128195243788377473130902739385526724111631507102885332491716886339752519721862453123856804874068797488726158271005763685665100601151568232361297417443188960273188814079753406726438993140705597051371479414917612924569977049813245674963890057534891449627977756892712130759500322584069536752002618433580724565432910269438529293515358432268259543925117986603870530258965546060638615486590949933007921016414101523674368545005610703537585400197569991756293064401236178832950436109100739369818019746526920959258701584877456673673968331327856890149189943543213063867322533123266180937025965357039772705629504504934828706313656514338212457312688799355830178443195527675364182320373584842948267341657972217675405131565843707683531673120365543554380044394231833933199661353588230776212853343356830073414836986264214336088426478302860235684946451027134139121621254891827631292879174445828294819007608756031424358680539152770827301361103831129629568460585489002712345489575372254831066752934727268946828087752432644449938126958627364739541680869118016343875641994378730021421806598701153471694119862591138701797162350637424210085796792824839084068060883521079939032325048043052490409021386914617228747486271157572571525286998284903132118542304518978384360395727993429727474605662487236749188313791577435432108512918233186537273023473839809234494713205132438533695578201749939636361955279967864754961513059563898771942915856746272221703928369919636145087236145436646079851627265502924212443130925837999773750246716489534406881244503862286088813517836323068156482721240373808942693549292080720275868536963269344701993552372078365303625534676269852676974704042284240698954888014443752690415142731737320306473974571435704869493459453122549417253005488422480961109814268083427611702885754676611663464086373021112131372360975618181088924647790974063808156761621288474167381609634619216845940836927755628455011181234023326517657060890830367571730342428065294874303206616969074742243875578028309879948268385335583300705235205776130249940340079362204428943329662265035198389742369423674972934412226231220056913468623935290312440571093439796329175361697112795585788192673253245456989842440057355985003955539594032912074519212943732478235879614523122957159680290804678574949474274926010556546103558234478268396648891983427726399437231800802956718599919160565612541769736746920101864981364257115536423105748717389024015192893648963171076019496545286188074255749749417166961517659629676511034446194094520455248395788599357742354355647109538881229428581525127237022363658346063777797441265254136091830443137775374843311543713458892540543846985370515757386978985331648844370412703528822114801583141775154060021109340107950500832744195259885659817963020101486133182986826369098908011838456527307974631429259088473303856710516030574340795923879390315677098299730018624804414799513340631305388317413962597898192897701834735606124399867478117256868696025556193678604218299888136181744427995578893625977624242445743174040461938711038812066203093814366030697042622417246894696716180250973145648612286874138767235850623613317474788126734330563822513983976271417220745412870294620869966605831582889938926053552300984477913201528920681975646441981567728618705154972024547687069460624357253656350211046586373770501179477410375574070676985456310533286537346481840784163541366246517542835200893984105034981535563972165613363753983360186220476622999462826501647650006255699946989025249829348276013589378631151410871511099622236601627321435943431629456896237613074918512503997896900736976420122253910692466905614659992548503556378874257856903656900669905796845829028797520753727731612831527503401085215429492086973679690554538241652433461770032641856689047715859234731493696354176057379197446060805184734801397822446290992918486831998603256024561759013342156726087658181589873231363134985325154330466747336129017712203867339365659077589758206935969017373759083555013046449678530820890907145145727097982468899435538846269092341537181847924450744007043867334019100353147905401157376888494260718851764636827375696700617540508899723343918064598505160615025501759120630852099473858260036262535796687180546513525273552240236005733055910425526033289220560151430325660437625208793844326563852654710044197980669912727132502138597292608789446337813876154658337805739616803192168491396500761036210983249133496930378701642447713512662212583001179587074861225028277960323135024580344823594962247281898196744744596208864100088704471710840553148817079476911128339085974344627343169083311568059485096020452128775283573342028931696941899234106213750546589505921924737707023980695449301806877089724620490084882876248409897996717931727498076227414446688977623393225218358209331401386217826530959805114793874340808277090489750021512958927344855558442440818567514807937441860398330510515960215189397445024758145136942383518233844659098340270997011398618323516410995161683177431372804408490566119783111686265409756343075549205828404163734424344334159281046171795320838360130548132912375698565542657902267398897151349496873989629075286942297732884117927088573579021255657137841792291345438091137483274052846870731044438377173372417670717516826955853321438163589689746574020181376330656221035472993321200773603034924142120572645117010461340626238386556812457508850786663227725633843809415274867844254234186874011088028412845182771021799177458157529222672746711273062655989572832154403277302092662224789028479046986794796817075414406562555151281494138893482950934331461925281114545405716620619099169582754122002318898180651580586327941259909841200327506805195588197414964807304936636962168347285738282442723171752393568944143786595600153319516109150153119908531573545720880971987986124952791596449708634733938584314029526494694079106603831130317009048966025094593150198075679301340954081543680261380727420351872193506651768820468421624950943309883469729113976334832505401408394044797336243725500266447861405835465419593312087564524992847737874053135612111578998479951098233366903652371789923794648400444113780788377902040964952270573678980335777461588943772670411350792350831045861204599988159561389066812144909841033086484910650048951330745862035354671844825364733094247951182524013910843722436817742370848757404490850255288081774335268958964485606807427727731776259589471566742459005424491191966301882571463580309369993971793345389735194506640633406789983555157006605149704193743658479779748996540403969609854634334606991792296210797235650232773641146317012841085469776411369700913894659719131789561380037241372767899471712857252994723012340010633741286543659242534047693068040877524915452111523166692888947829648480305980332219947684153275595281418631259313918009951591407833835843549024126792806703307660864380733064117352897592344660677866016739133061461338806910500054697544665034614992555562642404494512439918127848547107677243784390711904820391871244036587096858649793400920468588065474157171761304846950388316608543513264508208281534013461345978997178824325317021574214293311515867680712195832894180065301159785298327192125660916687183519213910718076382031964055837002118641410912184158835304129506931067910189703461800870085919993132180302744251260055708923454792003477302984135674436602482225871114049456740830814716165617493405455625147146179997261354638193627954819376311481963787243251496275968013775922948976808776320105851822669917175248428079767940949452301321505310273543203316784222834395054017437633549918915278086756541167615413431196296184404707990149513841992112953768297150728145505520536308923013101598176019958910950622830391636022963016722950908791096724507466399820009942006835477006202083464322950271480538073867607315696118268534399797656370376093616210686526631897121555660803094502923732502970021376205448175167601303728635056936385526588839803938353032995369028383241885665879482865459526947108176704119924387521332109504229986069056062008632091905974588400800525407985461722771416563083942192683790632421067463602259933562275800717998763294114076017317652290972394624220362051858143381996702113748934355329328962963944008818425115267654947733331862606030447755093117422043186010487306924677217457586643386896755916045722348348066547157662910118581323291462862615416998359747399263915761526868922358631144279593580839945058141844401591738418112238981802855382558775996724085075960952484482485134874700426519109186240258801698011467792621868348420558101609073549077804842183971683160959426858321246048152743149938046060198842219363382632879276228892070768583248247662787170157313850771866261825049438066079822059253922192830960961766197776407555936424036617452513535344566802653985183919950812795022612223601745385139920554519826427214526211588072584482435272091922875183050251214923071676008585247284465765126167800265641713749778606759116368892097109830187217366167383400460517819240034778191479759371788303193072074306396773348851299053975014973868883061701695059311676949804160223465438007277374063730242307472226041098718790676428474850654419366084915475164500513302387143893109019537307396749745304827618310414524648742264597691202908540979579897013572629469835203165570615855509831233270648290826812161418833392424304926536491043883954828733927874915547288040809632134785333017625070155540821761428585386809383515715629587551683565388204529469616463846777589098277373719672747920214168550238874054289699258593787528225631777943933277275059074190404901405539486819154829619217851361542031410079551761119261390056740753493310952496750589885546824975555028480660757048084782072079493263415474935648741857495540648738412207203139989069350097891235292015393486439700015675032219241446869875864520240524651946913107106305319393467026531819827475166863751086310586407515404623602736734369273224358358253410815823816214077167127135403791471864513598790361644045516178538851240237425862956299768716047413949044068064772820810539609240834752998928616734021768940298429595447898638939247979265292026225614490465923172429644772685211080365060078455240341219103664249578280855411457386445370736477724519971451932595215384397013851341874270902585438450157881907949782751677942680137579376583742433583708373027007196739071845047798675057190080185252276257049526727356542072432066299872111920574582817471488157168702842447446797723289577802899706517847921851256866711344759242586233970969648331344087724722417503109701280657613656262331188295086847863778284087229261994082042259708916658862054428520873663096048977601751806363121609656464981460283616380341078098556218874712043885877066617125726819921525723752233862690257924266306401915899005911413112774134065603170728102476193907026419248236929736135786722385227953348458634823232812268134438628662560689054601580436117554153737812496299100879118860574177279122088044329280922880151609760898304981781750640925548691919190588110614051938990105895118312180584220204047210908594360395660990038184734472205002083581132894616383410882425889125631442595055680959698999353902455263134558382915417466043481569608989151547336652973448362174830284948196177421387158930787904071742646685049345434702951018182741318073625337571593365191818700270520554143536541919907770015786984159557756876855945507556052833802958425871703866435296958561155429548847788998730648320578694010083409636693862163133807041035610846321667678152654200883726521804242919615431187476134550516714869809330756542311679409171339256582046182359804980843285623719590897352878436197859446212758822108632340376648016926588016728794409037426748841435913402182167902513549414643138581999253268296468763962636998396193604820016314825229353243086773648757901404168167398523554948573833936637489362924290522498892917262547306128231381012827321730089773344273885393751129479468179026874610718747359030196428784891056273598643555073579701627583949836795510485301644133711686449525821701650768569577043914519872362085934007127593124332916025836751162947921928879440225572293311783123892253310393930157227546698453190610588847219070392767504181189569861993133239899349701222229128934352076484926699045426259363220276447646150043394797772188467012659538060662225900905202540882965070548049163407908912076628906997339214424542665376261681579511776686655957798828595194224572349978156484327390507355696529160678700777679755695097007185417519197010534679258703203980243128223552852050893897058769448714378961330016406348709937887440096259852653642153166968731093549013625504341362045887559770714020504381919094650033604392498206583496308492463601797057323890147437502715040763764266617269846341733158400235813294592910151350849669921905928939202270926614157271476439291393544742116282496186273914411564064393336194455901374174095605177873427946200909448215150486184324957980012558346698523806158968840466169596356110607582056399651278663699762833098296390976474248517034939810660435198591928419691700404737053094067013380376579450265707220742344365922185293441295617169903819422613007204178355574748138865766123406975321997485961281080180949442336775927337359633593285629965831839775651835909449347482905118506683134110535989431752117762425110368506674494925666780449750741416184855216823678409777498168302005761780912747195334040806135895177750641841990523924565018081575421196165644957439370462021545266879127732121647137721580106913346754504443575976424829903266771136196994727231193411741283381198221962635274898368686012687989513395047529761643173761688255453501378359100473838140979090782918760175041641515326808063472163594194531072876589504049497330329438842243755984240788287707128950397011759204091033379454026703067292104237400067783378196604025115867397440611741054635013545243639003437215050169017528739166136334523548382698315380535854714824906458878653598226803493552345459505725636608121342645157820554386614355335701499458106517366320156481817729208264602268481867667790778177491897078103975292196222406268173207689928877583879588919491567169034641004600961441966906099400080994299986536906316251883627882389224890502079515403998590107181333118458203365855678938600172710684133010070737710854560394012997834801417249283401373264168371235096622115354653508148336613333204146376697207689427841789394694492831979001875552199342436697355101520782148806991181586637967338073818170091900661518933657371207801165797903094204986683427966355871222889421623810034563887340859987862581373373707610716361484129743166393440917887557365814620530233380446838717041809787331937390423602319590525570606628371259103861615881551294983504655897269354655216935896993623609276456541997521084583840540269230673235498802399007205531193485727849484301516296852940533182102224211703114391092393882969033424804005368897041330745051440739076161212821342836490047859111112472736554883447608382129249403075458625908590117721039131515272410294226271068950000151680269572960781663099467153526309135118755178180306102050778737306150489992157177068714715558427550703887854511067968720826411533318987636400232591546022370364418589042485044508311256516735141720422362127958653845234571019106246032552278726500315633504979830458477945083045255569282601311219423434672817144041880390526779604932765698299288909798270311207825948929449042729771412157852721419304853155648238342498287169246733390623845574752102103188246007823206671843771260287548543917919407068633990114182273428268240438830494204748207995612789711080379325744157848016149949999157116726442358445953098147259565505063456125308455325151809717622459080968835015324135961199198502603637788870187991512155508121424290219351354015159637715496086170435134657523691322664592000717954269827183593089954201907713211735061967647508881409656643149187562718058186070578869191846585330483227501139912868079203858411600184990914173712182855321165059160074280348546150937578009231951372156771477613798559396609484316046444246621409300997841558563515583028356151759933926678650155771655483488709882445178105040366224135034765859821401943728801052231161667471903925140999527272391657278088654169544874677156293784417313593772827339144480675868832983946128462897067261599072887490245840346474278263123324919504642752405652902869006191544862642485911374566706451946286725492024218032052699689099304672574885691881683104772320607984807982347048092763821818310384135060540336786198577248169116301944293411294257710315501243741108152659356204543787729177159599531053421605639072301469359505116959511314948859787607319462375334513888200731217657558987070718396929040558522302327779023717352847515292591697572605678777161571589832681514255875592975643729700078771714947742076368570458298354695835682676794719028947857406418121992709742732925518222148492074780979758860952887375651014886694728483593510952519774901140394451626851959691329753581362721782641514913560344881562956804386740774357006776032659847647942627225441551916590692723584349475618635514621250178900252533906223907251444868379091883855883543210361854582894736229504963754197099292260189737105084119349530945195030963549372448694878567618430379119772174259017010296169263935030784511768629411876703414046329470702966460451938771349576081285234184775631135323805679312212943725336975497021659561048411817634101247808126741696093546449383155692838766214828214860739616479908420505337308592304299658828109531686763347488694192757293233720764518318884391386381927744665337549173848181235482173931333378473336328103603035321611351561421750762254337071288574105385927158381925491887395885724450787490913661153650346182674417832481362481489183731367019703133452104975784217924906763153820016508082177379023452330327982718502870990024874469714158953792824552245204168951900678667535702472945718889025240241988091738101610513058629634337518454960362055864993564589466050203609588064077447258195260756868687296544309307643157414275500166091041129268639750012210587237087579296711942293989580721607632867970403100160245347309668799012800828899018148547976512915400849828487984967961625109149755038469708050667314556134415890984645380930656742349087314398495373546540150675647309020846943183307491929959761669954214808433698259783277866281354945107790931611251597662285030475549616098064768504357602270992872076635486114029153095621695437575697098283704383683438465680877150104519579546809949959675691673588536997650909458018927006788650640627188179859230189684432190949120349715448027189912005946014789204149115374583094356337911650067155639703882149426419960697974130003829276033795321774712719995041327555584872342588007295014438483515416507001631491508401594843734935731001797197981205587521316923709747345948824652112186443596310217691401248155800453977607429378058216085312327101363116333550889357349562976832821467716664048317998873672762328125848428127825166380745388804686599785413305594717542640975184622006189223203445286663586107206578156791680840555607392127091996494176484992547399166034269952504422658817103092907493652048280051251456564351219065732966490355906626382557966793845118880000915093344406968707173924999228953646073076691882475439974545748919122993371861412136292248917394594233391112032475439780661202180237898720593300138534921145827298361210130044160005974272294976111078187178739407707870428681504389864815258056046408117338229882360969950576673818739527246943526515273021586356110480069826819109868373047966314018265961805348086688221449660489755042474892106315872717799027651627261008835112037833532417966439128911560832787641099910298246296977644720375230387570348212428185287704041005186499385548107953279101800152696856403049849406434163071068739491565318879237783948111784302613841230533218341877693111667452378787962735609446731673165811411520334203493958401385445952492417555200507417172490465373905179426157846201994511728964136059680284132162610769611914664526103047677889006553535655057483589687594704721857541207706603455945696747862723599547145500357995138820114542582810780880456216280172389048367369673589215452060372956782298438447485295701983852865781125506918576876817865620862122967976714409727621594197774505734542423973926630731053826292143582248050740992833389301392797273907106958569263797175532402572971421356526693911388283434774669315519091100612962235281160666142910716115104323117957960437630413040613398536702910058116477100946367114661082589160162537543976690256679315930076668876628780202378577116150025309977040318332700001086706887379944624341170805129104015547819536585958081061001285891950267076775911694928758009847934087670252845380923822238597845993578377370539387004712900884440855455614137951576444377709412435655790674371132277370882565905525720232851967142463200047009959414896562537461805089917442640710020893627325568151808519876274109904681828914742641728585193205024964072033683496135096573173337528495605757979525686431803282160473681151918591678577411512676355047612047891249482074517798617821906880183172545779087935992474476872728589219127875239873297659420245561877143663464539207046861309994368360457022743370633605306940908296444450613442285292280005848302136424637094912226106535173569715398396174963062303468239163877547895930196423005945484700567248204327033495497678543696578927484613696325198744552253844977164631992706718991601545197060798014535959698985955400665093511455669160985266236934350416635812190769472934396833492913245533395653176464250181685837520749276762807705371289823946932851297281528897599691375711911091429804255759655914217160044352141416403163255662639481409336035616151011705162238423270599602312167261303266211455816947255478829457996825824761637120860491269852496707070842555819742245635225767635336168706110680689859443749001594925226926071296552485910775757841421525224823917360138138819270482395881148137654841118008235845275837979563806708815051299763994931252209304330597237858160156156001817614635158776448983320823738985765350348933076253060580866158881518942048138025554135703993581716431157152298652688229676346122817835972341095332751614209785654485151382957169748860115524651629841548048411445346647575072752887469549063968874436382985948077801601408569606647394729326468253742220549615004456986636323722388754006956352327820878555134316378538614751528290022454939479898069374232401873381653181949560206151924456984950907466902159238983053371997583210761105172098823636863868179466212809715321103214514953578752176403637299412079221969983380926466361542937050413073990824426767402574140573202623611621896135651981743823059668745981224980131926236315016071786195749004772007951207051744577883606978975065139627699556593515632622200473884924445462256290425555528639993788077655004650333769174901630334451122998973097184081406575958519104065036151530355443241003038113955454082410682992053429956928289343810823110399545143139305073223286403835515324402989820927205949232483854349071256639823339525252202289671092809382164664657339552636646172122237730990259626700426874517585448212095981709922803008013000093060943634488396594620394376634644012039842870516622249753450311760597677814458797996761695995577042115504791397508759933755809042546977655050681234425726019443442607618140828279838607435336518226571285118018445729137814001818467473310354259314657440235547977460756870869800127809840984628084102232227449022519988776264846064701144177338895399969453244657960986461230631213946015614365187528178146990109512193333245593532959964779591417044679560190709993431947997078986952666539291537985545830393789208429806776944367991983820798126742406062766285422814076537231891005539965142921102577737233890204386098176197863804938093167094284546479073091657777400078350879851797463332271309962844273916668939251427944047057022032979738373315963145773557076129626723726916499689526667385603620600820679888788169575002529175815284126987884356485509676619960464629074814271628996369832337644367048322928813049433568553557495594432912309732564908388761450731653275428069409579890003260304178083441381726847914233080788878779439443905806655432635762730278426467481181925928864466072699246049446823045969362525456185212101213114128788009636098108486293518374548591698087848572771862515188398885566240778215797590679602314171570105717543218490034387207556259004954692226538135142762855753618391027341314666193439880684017060280526659672731562119761009227961196381487387229433434338873555550034280788748359122710626311181620438770894495214976952168401867729455595482681400989897934171941925104763476717844283850643143415123822541968871288306558589619094505642490794480335535682551649221702162715080839259940819585254796436701131125446276618949739151087511869242306790988121568905749182448811569972705699771435049130045450503276764339932548444454937319840168564943278188641539687255196550430392264611975787334650155840334356312330198203026579698582931481312972577710364515686179808152504184171900040147682603154224969841483776166906106847990766848972074796165174712937992168668660255052186919724106604447153987000319748776101556261659893240042209732165124268947363766525695523633041425598824191023427211225592237566021387149262712201793626781946632817789429925504268899995540589403819082754672159572632137597886258326525763271011896699137115431916153474640608771170447018524457298946628617083524032221434976999374111939600991903362040621481667841973524679315867302128749273443349552449153239774418922988574343325666692428850871347493756835219748522978975108734717239592442578044992827346194497606574523836611316660474050010058975141575918310806393946923343796038038062837951745954119705453058121648464058316963058142464354027755882357837253384942038742986449752836282438406709673651025279962535537908827372327003804029432307447338949926586353475027772490603441652393030293109370048574190445826041468656243294933963110101774962042912581885231774581727004647948762568500877813222847716209296744656354983873678310078489350597461227939614612554791602556180548352232089483019082832932517025638091569248329133429227366337024642470491640703706087009973237454825345846125882157185001904200995581253278761091649822806947591314746843627378999717794643012963615233496776758020539952328650689162344701142028358977025694979716212643579485792779554905471455724211637776742712604031722342950634865641198457862015251813009466422627856403093479956413423941749614757500010860896303384094605626569687508041770393966226397112358792498741051746545426262329977176403538259424780039689244554097033217838022876307355570163134009766423530773851715931403446379686605091876536321716284908968094929562058024734350052703008405679336938269637555198377674919496218760950581241046317238379250519427309120312563409712978014346621997353466022824950311582199188897217961887850930128381269433378167715741200610695523218267190723605544138576474543464703408489853013136944790252407418824334767281007521044336012723379658822936573356217853572571691120344672147635147393866274620614241207832744775028996056284126755170498241503631533703701680357489024337800761892410734853793775366452694793711305434944162634586498160337252782824960461343324690552130256832914009501410141382372907363649066772463045882694919272893337670190455580809176242256882327604887610122306255063043817837895743057559904846977067770023325251862228430574256673661390550046099570819951197677083852049682085446278690995964834467007354538601654222898851636881160062847261984475574527726389227253791296332684894286240951871917393402501597667808504551335711737327721934932540169762715741149698897355274963573708291320907323863787633080666177275145603160617459429172779166112959256526129092574361043880335438370352152680441307037237348151193296384806796910024140548595523997852534912519721258743365502855158884921448293216727604204896166271442852517226651180160015992560488923965309680992638098728640129428061069987651107022595143418653752272494819111429625925883995516241314826250436097339990638839074702630281968148448576183858881077890968953136397469206240394961847056476029942730693376933069867060552086691735494972147433215452661436891387566992128166408984102603747607722000634963919958815295640149979207278967731606104840008336042558911317409488327367068016119201410942366955536812900442781723746279749992556219761391074715010686469550108411395257131811441212983504076906289699973528305908613291211728328345332080042807181167833291169849785318667038272241458355308345465291708838611914809126477801605582671916855175963113539575170655337633323895109568509023148016728925719440725692079459105766576692046497331178691313600850630725389550846311782315450918096639977953608957616383391633530878909791863259234399313595180158105983218234393557442220740684372656227582041982203396632809699381420240443299806580798161421380144252745838042760864160148607401571754885679120796336023610381273244764793146339885313044382352683051285816321370753245648605792360613698197621822580688943570617174258475480338511715744313307866563133033052661690271025354679908599757242972982676469036982334566230522486924507585099121250401683641828594991791546730414803227275084132068290083510399107277033043444625973601049105654323122192100801567185145676764674515978967973287743840103859297774627851519703720892099414524297193741478368582329525562279256895573431550312458096889804224568375214727135479634399483929856847581529916332008284520466600737702950459709962396205286258999648556513833355839606597659300300046371430067340705507047752441373964155248871899069867651311201089372353198276707707475965981299221475876909021392056810620431211159593477483967304959571262344351378593248997154596044108068003553049439146997998922380971482148865866338346136327643069263601326132966066920565868181689293943950202704489170916764067643413791868003302433859309292456670021973315821616740340742363017905766679978873287941760760154010411115865995203828885070962026995750791052658322554811525434869238228949075754095167849376818828069162520042311054278705856152317842100073425958578043910224051909368030065962337374814965898253845279716049005569313692569202243516339693038797159531160205581444094062253484824596992516067692663873527079324350454531971569753072082495321977838645040407288368367434355553931999735099963276834235143020052383759431442902766771466461671975083875444488577729980185897755298101634422473285277101720693133843154588059728310455170617941289294976109761782066312657557420591526684122293337719811757335135191634096188097214159605875834891263637950089379073978937447795841378133631062217165431119512374199043536437768947672446555183427464861770553902321891034161098101403390521750418936433485215368624373220558274117688605596912657838147855660986357969571350247173285082580797885581835965396080639858598205676358894383918909005298770544498428969341673428067213822511076279534133085340063198852847006990108620201854424258237437457034175303739101931379709242560868378462841560122074407113553410259975633765460760371862066775612715208306341037454317392877855512893114769175139428807813620508518269440442282601974347960586581446566101291041814603961473208534565054956701778387246594821050418694618959115134903648867888681368458977255255445367564162198674160878583851297647945131321975824085678225537264239865407698662365228166479082043858253510521876168295801859465751608805916941741727798560840190497185340558080026706856833935075292912536301755683026412387623984404874854370384258368109400771856771417419638917848882321948309153761010189348890567671263836656231000765233895334468492145120849368887058257683946932961687518093399710412218043298729003758704723333117087773679957515266470103330728588010379844696199725210662522905103789881514953360869231925756601788813829428303999266752372878951415744926066753606982602698898346544650177087469676598631394266686151711834865725237472955187365285092914605683139662375885849299367415885443623384449167139286604483818756314406859045723577575466864983222358024429633370392011006863572028993807136058585770739987712110543911687553611562393602620020443138925576729568506907263384213550173982344274175475410211685457369497277756672037336125443965572590366848281660493103645490075866079851142065426368597356468813215504643265994892144861207234023519810721844378477785746946589409854001685269621779055441653800840942787919825681375197693635152478866355711155459803158157834099533164015415317335847293197432298837152945923325983535326218426585138825134078425802645134022487843020925483453309901190819985075741808916636723202241162398376323567098680605302339998401471548142825529136385863666664558398022843696720595104038054051683350051222751591955923720896928644499020746433151640430094286723409903466976587922765652840928114844935523323997514235843080550440579315789298069609913924426356139440068937348679475121960744007269333697748363616288331570768370399579309994781071771065608741353100989177862451267892907153537538501744846685604905951588856505448796090125814371632675242394068202457447710709949003444379497531131600474155077465079707259499061721286869510930420055758479238960324162659877025338702012834746851676105104295397572849148982841729307735843018894523012731310200564460428070258737777152891343161827318671616936029272986346611590963899688523077857271179317932042867478728964935642608727219350435032155429320176312394217043052648497801261809633479328738350641191708399656489848429029573039499832318190020251854475410503779967798990247863064536483349053236639127844053638911101433904592759953387439286158469608988451118968972363091439405860134793626248504324969568462758699838741275306423313700946583775308431018085154809321731838477168796293894146386637034801013209766570216355767719903324496966114755582122759523222970058777204709138829052315645064124927974300035336623356540690315817745430793954971882872814668517077522874601711005830330602559670719528585694736155534196595651513264920198497167732450951101733841795981920735785415944909862895598365098590408154304203495580547273568692295238441202391195198691756438689276834870449786807828026539595944552522013251025767474782830632536395737604445678216326170414337124849447028779455586755770143015426939562535686511098369918108829537710776318629685078990775149368650707395931647637264553758295924498494691550296346688826971896479541259585550890050183491837682223639790861787627098716553624928049344994028759100294029881841762037133020877726186478026713793723215630965809815984225745241295244055205501448522491803729094184448881253273326913962935720884532586676900063181274293142711064940016799577688200394893845032874710254441959723486250327102605273694683837991608397704022413127341806394844586654836971749678829082745743712774992325357156832165323850884982191766988383486414209772800805791010520323319857174270041806589645407422775805237238260636873557947355672047260858015125823127612413410591335001134812683655435050649180910217477934876836105981397743811412804369167201663681093985321243618870472356096544144433363217992254610810152517975410236185804419231897347047148428673372091051591632381845314704246604291916185033136011422938915928593297233591694431691241357073734429807506878049347163663630540641395835732711191680402951301218875751814582952976095588221302636753276238973598553232537612157334325442246558378101153079811600676110617590738288977561084179468529234427187364456377924596840100493216537263232116603491553882262567630054374633273258238995181653028901935481772858822143899968763853092730881960294992696705306222374390055736432406886976741675523108388100795507038782830499253532433795944284857917068597521857058331782993738837487576837145587050235224183451713758093732236443159814500736234169297064339747748058130017630170199472258819841433241740206675635319313033007332133677124256372781165932982697517571618078448838629008461077435499578005669732559772970664632050657499428021023470944926708247878403097745151042574390211357165756971716437543654275441379571906365228818180055822220516713775329107669428742005774296225802919686473461899411209915395724694922640651726738809212716149438180180241603057264387877717422758644086514060285370900269308054637679096047065493906183139017298263330836171113246498446993837604703936435100520200422767992597485679045458734407141574609731549002090478559039567076983593137957063522444514042761510925616726870516594717954524247900591934013017813856463154116692400892575171279887598416290756152868254684541624777119081919671248244099249155495189631051261459902533223567550474229123178879037616880821449894828665440860341412668215564063421457761925229540222861748934048235792004816677034490936956276366484973340535483396949087145950053596054888193559741869627910651372903388780870483867225189932336896567625704934178736577741031548118042481390570498904194199131238357063901451558602994385447772798401933613273061287429818560409935740074527269890925476031107526158270999209926124896543638735378434867962703819098831913320449444436240982230219876187518530360472723212932576907520076758536556700765011435182372884067990979253324919603762878544351863972912126092911373849227090352628368775416371829764149879340007554524350118984760044409798428008049281903842138897544251204353016053747736759326296055322328261452259545546893010866493169588598821701685395329798474468771557192559108980546791846352169803091741752398505139525628350037115576289519121941548518401287291158286053161790631535850667271492263874765980914684878044701465495448004176306381289647469053855040209548056640737141213455255499647188306208771273247269684432420245811755681859091175002214951856314008856135118431711668803277257700412034169875377280727528194340131255253885140671222188964065479715347799054704256705664449468237236597323261950665326576503526807076210602308048956639708650236376103358771182905959844172171594894329384420859822068780747784870652852787612645621191943994613726438684911792519815610687173611135137233563980879427954629591095982870038520692784581983433066694681052393651320493651823067177326456072995955637910054427446011263264163713265838513587753865314121688337354812815869526291829792388880659535656324270029825723347390402112508802876675091318068530882889810909805961608750658728312326125826346826086231739603111942963794343038650375796306437998281950746531718302855398794317651338797888467268617670154535467574539109405866365877123214850639960123157417730043860946174275880185084351051344863730628104458902193866428902077812163533500191068855589009423252046907050570235625785200874867379695815730083325590873770486709347759888883719558913434475136307387526308497816219376192179885216402773943713911864170351502172620946413872097798384758866567676670197229233312747861029054615949627780021903087234169899552688020446211499601437823910906473327145834232499411211929380835938644971215611219077450311665320494696703492572505043884569275474183377579430809175776676507384965382967352357980432760187197153608172581324775220693580667147470911032448275334572521337749331152258815188494311474877308519541287784167933775372222455460252849407375825363647239913006886072996524380549399194861218751076620849604299947484474231608061608617546924603544987951638039742647970496342262003669810134177987854770171848329131152387737003833651530312057797261981819969545238998442401382727240226111536081203600789847517796335289553254001409563196666535216400654464796913953784052590788979409576805893619913812845657602987665889838144089444832916702159118160643465176662960669985387892983955560224392217264862175826345072099379388423335173517172003704063055023131292030903129863167997283060471258800872146442633802150621817275666633197590308204544301725133465323417944328104186062379496991025860184403778204991189714113563817749551974427991510158651611819638297847465110565308009385619876319141402891695207397446370032979090908096521209698400285748884888881334363210282866358037384206670522102095116391386488734372290670713791895073300003200297580120564367116946111374139149038410073642759712877922685554974992191616776742342338282192727520377329154178952308315257626137492757919134825754699510296879596176527045073013727610209220108026655551206990422965058321717571848262610957966836297260485988720896423893919507730362594068347577225022234951934405085791820802973656877498189245263181330883278982407005383576591307719422025281225576221091298731205623388090681290309339510329509550620965402408962015443121615496685540897224859698054927609403618313400727563645503758517888233957098710242029808094397656605250281255762713341784856198734834361402950139140475722155039050526159303868860984101260036612091969400018844409251661069911827452267235812233824436518160848565712072585593139056096048275038295265265284944594382718306138048626891366930544053513424058793041080624701804561931724629186043251057088696312529307919623424907186661754033846089975911202119781552836024278057317276756139658589410709145632836102845900708627209845076009754294221910512771958439947032185045297233646883765672022729435256584013846123419870804553759508061627332205308507180492847680857339272746821300124486696872176306622771625667347833912998739292590046303819885911654872934924566539647513607388604526448704494493222747355205193445382757037322085494532100317817771478608500442733845446570531941118254921075166668107598991942700862761758819354156751855592734635344930824822683901304923732337815072185015708120105981032986551424121559706390036342520966582451309642666167461987471435799328725652333389327592347984343686944598265082933516791356175604734322954250113625277190193203631447310557784310759631471778187508461730672924290569663975825515282345759658235019799643063541927992523415159436383493217391471257512114492752372513683474132956818186355890855974920099680204186119884080001450285283448090036146597972858974460365849475236208625333478776276283895402507495257565230430728076108446482031727507490030756470925978722648127644468851450596648191988233111619737723332573700335391439043297042919447948656290175928665404395743466075277200338022723525620111225603880347492820919223470147767256967985852396516713440596243748633336726513184538245502662468975655329132629821323487422979939569964347892695444030671243307521394100376868173628299380964783846506480242991728310821354136535102335610182751772154836049938591990167941087875358480076090548951178894221241957635522526751105582573985791722256700917931184288162152697677148789312390403302980291856600304083414467055903362912645902261465186417638934266230825077710457444347561968380411679238353142315517607675224569690345463213106561882752011487985533739378373035437112992717868122772958338861956981821387544217936783223329677154893389962221543432638423243600729003901337534980546965354429430939964660412993307380931831019769285146383962934534412255115968182345011379984977782876573137182881041273858957248009598575820301903178419968553136028064039021885764969141653734018221605343594594356356698528610891841154996420194185064208093919812210288716682505732043179510796198312918059345617780818164775186220853768332482617944538798566511860342924177901337966714033685143632306778145109258046098798358259057571090823184815989165655029099854617289601043666308724917372619832686552671854163941003654773784571024952818268545995687596656444299724138134251377719770218992172460351377253134432020338591526807291409715102180277092528967130589682954261642064656229793021956715048531828008228449033082957284036459799258432042571479421920639555371111754380086150406213203017710314065173997491934660764214836437896614165208524446708158966099073344931320611822148407275735206718049237846490774792931180933306897657673950329646405425154218532677611160349388437790577105650774997819268304098302475077757002617552763813509198135985373776138976963914726878882303180655618955131395048843175740533205357818011986076217127276901340930968093407020025301317625477518633344511000717997328181547979511497333305519346640330184491909636796253128232628524548941735745941700612912307339755449318236126972871854357297755536417015633353899328310421562807208407888974331693017666612300018931704727567394563413443621068701918209587023605287669727450514648985339693095248759643805074330514169016622038338869604015342927386580846094553878996013290434280372924977788429729226416532586900375377137168888649953518467849923635200706979963922811970133256626858356173936627592728372892455986116169266824242140169723101113954673460408311890404266662561915825448175205149481523493502210486158948353104430550350011243705435230410804942032735663604574519890517790916357547122931890706341195226326758007680469058842016922417059914108348828459614681717607357791233240296074270880354655169631442785328649261715375054779873375721213937971925482794597102708498934409848072084987100087927739969124865244774190761615418259647502426439718276790563970223080992933960937859902796473584359408727864227033200910550275175774008747493744130001784656398472336709197715104033000488301710262047797997552792193130879452685486110469571097915434253029409481155231108488170430843569008874531050195900221159778505956915505111727116515454208797380716751629536968349950485327633012724955684445826378797425285855490136691620150264349094899474382412440974678157590733081975524770816906505519245685766102048892876154126993258608353978838459574157044381769537749536872194241685058923559515238689858504861998494528115037808926400436909971394507535619539764879442928971933180913870467339192680787615390850870292805982676391422739688210998290690877857209295993150509363705106108217500003033276609180362651292175756471382112020581035723853193470438528511712604631104886663668200922374724600189896316986778763767014726152465638375888565403576103160489057352857295041892492386200527089795797915275190893466115530812200204011838781181597057086270859691523039586478964090020956208442896193128252095977742122019397765603899732580467720955623693845788109971049823218387998567192091889600997758314221536223768944656370115983876298175385121232245750940019207414939018961733743911325357690522224565266774128286317347232405208631248181462924592589463642370692739941577337134774550525990848774529861087112509809761710368117226264050091932046576501917484753486012028399890928956188882160508975379557518179607402894541825993300558834237665693789410729989239068581124125794741288742297380242076216636329168822091793919307917208593122234534365251043475364790952358913559451332237553595245040382977518144491893080466744456596708921183168138387172549678234659960647188988869817647200426216485055145570211412759582395311798239808548182795278324927926169084469548403602277115271449808036931819466711846631429608024113691694730181579148154579514442241614600695190831359967730838705671229693678246671660154555854550858295140911979871476356109231943746104038925317238900223623619878945312036100516186312776759841179449457299594589041946284556347913688775398653447760336737553186093446020465288713271983299143899266426275444978808651000401118066913330091241648614870778627501377786024008573486058310744632471544309172616929653446429280961386512535108600596037224189990862066638299929100130657780384198708990395832377543724387232111823823991823733184775484250572441490741257287704062967098787307178747166948155642308959214484710855110640615856411448096064780246170801576502887982600183432410183565004288766547167178273038823097109999046792024784223611620761898446547831208514016659206614513463052666894082840784885104538800157797399260960159961911203191442688499281848840249077878475829543309693173995235078479652159315742652905375670574406792931242809859292923764916042045742418329041120648818587925747897033582513610598540989506840536127642639352744060573822013059029736329437215681587891434599601984250684359681092402656622164811001076169068156017028051069646628376440231544707669871694178113435007193112685193350928934256661024060208699864935717149943278900098984471022342526121205353368986528567404992448716861907459390295246149436584473539755269637582671900410490915507264439069280656700867460982468505648617420729232496093547132911218973312944570869617635327193801018821883546975474320458548536639260250510576628437648996336902507899108385964883361436461291131361626195456754623322987468459744546251268535272506470243776606241530357151296814628491273868873335532883118680645869036434410797564567692694060669555277463757525764891597566685157505967491578216467741771336912576469626460052627910013406102754525514548370500560453789061056541142914990705231762123160459974879802567773066382954917311557966714605842635538702390005193920657746005760615638770375407276728386191717383502189221611224879131346418662388299232846163846221532130037841068061205428774172544051008324527290831118435312607823338577724436677047145569820786268777483161949420946543915469693397332887009260726062977646547583718767860344898418604730028650365203297887838754049960961002147115506906107764934862067707662553603950452236806208208325226343522730413155269872198867137126296479049221184609213231332191318636747927671015806902200333340644369423910577987491483939221884895502930320304968141491657362943236321884617943070039897234791016227369999544828711379576881902573180439118596510324184273782321937765301033243996107585358416839736088890641824980711507346788059893463761669467641551504936086958732697930496270129813638364374387242853482850637011634649728660326056753138880288280326085012796251337081317173824941192021284163309814887371790181187052921879197826727491369785739484792267189336320075327702690057072615942636676621925077582193929418285857340388584731825463688840151416403290449419153692308289989950229537140310072443323674187070696523227837304946791067850853587701761328869173845203676782555937463354284433742385888634348945569680738495134086679761809387296682075471921438414416009385318394911049292357683487150814764831299929657002482167737440482707309750095675268531322392489574394697880968929215037913814110124116469462225926045525710486274760713596451292544868642943951865213375219539957101362864348058843076846690346964104645550128856150645246565369100619033489561535932871675197208504757392416509938778593734311956991165575655486787354070711174927875324643350385478319896343919198171714574251310863589412114684190227040864548182732738766169525593400300331672767540326791158792128132317336364890427884045256669423002930403142615281553472561923473887627513226173544210824995792126904515232727106858308085619464762401016477745813096427109336157744029950165902788724199507035997562934778744897201280670898938815651874645220292506974667947642044756801454573612759216762189415602371279147103480355809584031181422481309111500965492690367503447811506964188976161830971411486037497167291384845147836703326889040758698958089348274689759938905279339924602635774190093693609404326961687533086213446393857000666955652447061259089941732487974423489192928372401845726060722035590436799477731748485353401629431486217928236247236213302650603774351812608410557874274746545799997205419690935861064898319445848944317414226455160089065107947297408568710269274895865501501443160604477499728711687791045857852289088237857838019668292977484842765765560375185601392155035260482054415925528706685818159641024610766574088236249226769048613162299347254163372738758654832965534275892544724095346302912037826082969871616346058680935387809998331627451034950459099966749682784038350787660784617230787371606475429362725297696579172823556961989134930190764896662265821146173656068806816217567303615680492808554159161416272721574842295731102475699384587029405304846886180617133692725268852214885021491260444250878501951265939502875665747275064122607405023664929606022988811063312248742651719737479531771436009501303695081731158348952890818278137580189993846567049077701938822741357331138872646092917344805554510754102157286665412465176078154365258310932844575941333725859785646520550747650998521910335094835607132655104318498823536466586285555221150878854900673919466019911003764913486213667248283254577025175155058438459830952293277077473119310842404534092326101754772892127563421556630355749721710876839631750093488381772184608080167393506968464918886038850313521716787205144677376365798499277028314757981382978777756216525816212353506936895775337688246100673974845233882344777676122001574086646602057841386674447120241094564919289491143748141148385723540284371950803717269054863695057333641510697797219075917725963431345459632707782983135426533124368565884260566520393455671471498074530428278017074453180778439541182978954454699445280816643262966186389085399154335074731082983244632392631716304908057270756884059430490646512142889006252639016511073786057433239080371743876544713302578117457639160013360315738248948874205455439072083496934383202328964141597951359721007235335735623780715156074426105021560381867697869440785804473426095942625646030622419138424556968872428976987203522765241837283073805657323855870095780424604993912242178145273365468045513798155186323998640054668407227916991494206479949243184990540132155182234957643500513655411612997009766730366709891988020926060482765441742444912757983263889704853730048468668686328833045253955582397332022680534921693338041914548057975725281440505255682613961302116338322271225819761800788999870790244854667564886384385198671323520451613718482342253713933931345104935398171349147690482693899357514606397346052841433073143848994942586670329204561187221304101572389433102335065421698364698774932053774526903821770574564950681979632400483922193489560107621937336485543174824758626637134787914735119050989274072906839996167225391059265449465459105085712853727151301917766869831922934403572928906325164886733445769711178897106414455714104162799730753935078495772510881639681664159763362581594334190892515300123102098029428679541487583948276447554103042171190840944280659461148054332019977049281900840834048287970162533169611842442529735230052264498300283261289664838171592617371210459845957382985865618197641996892797533140787972598204965805896855102952971705473866691711674026985001747217452901756177048736824015011941159403350924299036801825266604339127354385969006673073903111393238568037047813521151780950609369457211067907629881279827087844640254048349110245440552008527831980328077061708274077534220528112704137908388712205115914436848227710919617150148160164167277354097976983186796174151705387796436165576931141734851376182108572171970275571094182637278032881485809972419261789425172401714840243722886233398059816187916840620076763050391102130105918860474148213211337134135726665235327190322849673253960848681146613517370106824728015169797141126133807605245637870247739492391636747370919203550425760563907323406715583225966754886851243518624206368777712409375821305357437578163523410642607872557732466770155353511912992073388963870190194941518981618105019107495796582765535851821436961947862289506357604746078594737912373370481368131605009366690895078279712536467115426832822109072670977746712015358480099245397114762604637003871668415377084959501082102933043148925960235370091674722591866164187636464026588900131813044134994867970483413610786381070973617932454038910430193992236498416682491924327981457081538288844740806399003957824682173005674960052140992986816321125909525037380995925233621940364398417773544697266324359429071805358626862389076700661678510683306829673446666068932385049658667092265969495623233831875841743181336683082152254535175896375308366656065291820016131552682449800582773550895336954215613668572784359881731667200096556469629824749582191620661916427604640655556502475662579371822505893575296897313817997079242011724899785170478393663839752528287444643749869527846974681788455298742844480298716584833507465802462424349054847375499954548399996613339476182496205780368754841834420867703028246924586381004942636913926523121931805850520963093688985703070996960104716947167192118725814908428775955781033847391665011728616569510341494527261251157857877251459150083755916517873043596087206327425534570380804527603373499331887668038996602760561044029480832817911768003726889587265284456015557836207723528151248113899419761090291801604032752359302207674916988193946720793143633478419938032815298106649363516374557900745471625400745248337501363636797694679890431845001521089585774960821253150767368877392131369382493251078852997214112669655472094576086292481082549588164282417681158290748386118454018504813955010654386993706927740525891035966168445164796084776841641746678062685978392320548740287368533379832914757054642281622015393861798321481395973877668256480355105795620575034272826585752027938548916213028453309910710240649231006295193666660249242951865237914350234731262911250816610713527935576851571890904019355054737090867260817351870608671292100174350754362286831502118496584650158470445404526999575968566913269696179433130442032402856095863684192167127836336499064692335490935018203119549060367348474666719744854394919243525587433183232292997087672437525757598275476256747102539129801130206226961737073428626821482570940200654448626655487463831534414347842338869586960043805081378197096045828769819601591836560841731157370322528251503512037493567246780463660798709641655270808846368819394343114479454726797295451738576749499768380804661080837617939268337013591206526322617486959976903956603734619409117572046164511080613917247019027661804790698461055035485229086278971718354692712541134144220996721176702400474829136295721757622983799027958505044429173916331692222812625184795426505482973412496231490307557170376228452945523421358488088032439678222486797997113329743747795006702062639031683376720306858420293209167641397938713904761725075714757177880874232215318831281505746719826829360443719299229891466301048023373748897988230684800635300464247437651498360198819923308341310132924127165959181664281358650651106309386048165041872596731962639903454552334928521071675036575477090341766794567122129281499502759958527161368074778892342742726156026204413403029522259591376032876228086126186543718202079635165423817384118871143247186024267205173478574154911590608985043893154566726928740135715655481398734355579356522483945213283537438525967017746988609872086519473456197949606327377534811652599687666445382036841688135382907069695067473162780622115998415239161959225278786269692555380983257451888188953500160481464700676931694265236650970300309649543347941378172797964946626818762928872118726065127856049774629920515915189735785429336961129974144854974558354325182880711285757165389716277873870971784442770859180105049136889436910205163176613023367023896730388056615009662947883504648286564190916844137292557150554701433311943503550311154877027734442199519577024341725617181787472410865692984113066499202329446545064813983238115763152596142019540479432993678178038832875632742901094681928059817475600015953752364963885577616030871159162654947716708387584483484301708948407701249732864372861662298693576963704021631569976114794894219852291060571970650327892914612497077980331348331075128942168084860962754392333678503081018646668302904279317437278399895972730444086611350820548571085804258525256004972805011056664650234004341781101481234184805829032416092326147004496351168553487500374654866734075258028950253078980809522194119673243031566407441711154001564531772581700246054937465911224951934071124028490527833039465491799144415497800046690630939184606573232992443434557083433160325035611492065010729043624659388858908099301652210556879445728145536363282156340743271483134710277104865860163156895664787185785073427737310998049905470345016739637194096687580892137695809129865488713312566654501427504077638495372470081700411955385294506420776709265119471023195778721415954820480185943995506551142880042438967527033348335820662515945768079712745605777782787434243050474069407260333323799551714655025469662077493437527851165167598334012995766064282671480377262632768722692575809588531457458082841066648777165067951851486893226271658978036157652732082456451831329580186647882866581706808302485271215342033071475003326394578610757092916435184420133712678921697325272505411663782226081686310303884673288655573573099920908567312027639095226383812972191673998238987245465886126942401626014633062588290819909808572090514939822868800165837498866969816981051547488023165868598557748980846949270800838557474904928713403660250149509174878547852827299609216390029067207139131381914205202280261001171518965785667927507834511044756342789759371701468473762421814082213296738812146145509939556030704626607020218863305697772708686725928842541957323380231318664437233700995584835237374093847568131989994532007574151299555798779045979252198277965868482029380441891730161134288064768178368689488692810191647092944071959572072054703286840910936634865919640090464246657223495257591504136165679373569884489371006464882782196714674475536653923303640683525404491560303029758824973075226772708323260488511774085447103056440431477674903623230008972997981538489266776045219368149591326485648291723525897720723162958549130982841080357465133371730211894018106134421846194374324885907044484371099400909113519779840263468427018264131014453518927989049049393159002753557402330274792715201417283968293446154008518030647867190687618774586285738092622856426628042962077642696344743535938945080155193139727819901378690514631785577635269551938277240203311938752812942993846765691490917124035879947378325303595960819051014852190149745933895911654140215720950651584321544885631012567985664349163268709640692079039467597378598517283953633517928452147554770668426865662151488977843276321179183144129942977594288116824524806506467550158363415063421138927333469348017839077610397496718964953976624927822873896494306693219075105157841843104935170953361449923728139252189184329355814388508129800828518129842861558352128257702739255564592694788910097347409341463067281844770796325977490245891455438971754091904881189879256914701858626000890947666972667602458521935025624538142966677268550183882563316562163585737771387976960685048841206995356078250973741748999885571041702020471281033273940167043722917840231997290805568600140810919443085857657430498152101283415210846307938739688615428129669646905921968600327846540264512821317856630592797633967468585838795682307510198477432347299332790487084716976558509743810217186885066343071604138341167198466451700129143754695066001597760879616650988627117533065284228372128218341040326821608129532872417083431142002910916580314804369603770274789260795597542490786270671648529494257959747150322902265320388478763494447293134882742223757809963249891781502680838874076997074751333513806081959827711139960473544676626018291353672474818675919785853884675200600623803648952560549526465503644859240519835263844554870072656791923560294448241159115074204040653930741371746796179013356477466758247324504838354364113764448564514822479612813338501809021097976155570107316111890614318766553764485672705710110049382614051355005655545163947227805948027046475022441060676027240637485969732176995507706851969637931374149477501803277626098666604607583654062940052589816488173801805699071639409430777779152694181480548887552879717103059706543344438524285395879054288308212382226946846072144517430076663517185394136313801761748367527064351375472675474399985338445424270723951431584198210069522747210240678809664108346430791572070800679406705182562014838977513881528080064383490584252812840647592086877041516143929742830549389684448049251753679096280306105046848833654131297323680378557048866910349680819792583075918265351781294682559866159306286784258009528597485266514859028114921733378795029999004974170995128986269765059234387712836373011258915980989572403833089647541833358899794381120817917959869600433569167759639479306804696806448494248665352900829072514714822435985787956651840714077468406292626117249225603581345287827874839396287981563462936163558450541532993329077024267796829578364001933448857207397858545920764316493622844905129898971750963293318365624258092174533999454258268539487767412605150333141794345409423759658916765270063367382716196985395401051765391352440709604152130368964404782540269934011001007937062894234881784813227960942597065993567679199045067285755153274676540515974877748237877915122665381619287166429430032600455841711547746657896932664831723414932727336701560013171726001965211911502730661766174369636264550545307013858485182253420464890238045101824098628570597238662832728790702284370548008448835833496681959746708485446137901446943879669091364155450156032830352792108744449980994222651509526280798027197858860762103747699321068531876352448307252499130191379068017398339950763188353414931493035545903655936467084518501465061939071042284283604239413390046573749609219037431876448239377275335293838202948836871399209999190446045702041041680681981390592011060001471097827575488133844509637522444318487617688274149784420140120560216031994534142986552642109091790049107712479358529000558414607958451601464897706737116574788976360369642909190517315599322747883106187403704533976092069412445019388780134272419543869626657297858955600027050741139064568735087997881975589718805568828990440317934326706245945641728741417327295938834123258642052301318882794816785734877425284660190283417664480427553468732430935685515693940249431203911984789884507489647797394001524957892953223145889757900685381323097900486783936954936996160168162251194964360331960612645663294080275302372111210260261047328795311289839208960086321009319344470867014167173090212031237212523372342966640092998951661149373775652958452486222517980160263701760528927744756058638541485902630360096193487697948161313268069053740137256466299855157072335909549065704433004689631072391279576220179384439262782812975390682235786013058719635474253267037472297907396170656682105100111574692964167922790258537567546253235552196445317484516153583358334854368642992889298422704180271539173612395154795647841843658186919531363078243549890417485434191798861146746197190136459314167441060484898399942928722590922130449134306614232498540432298284474413743818255972610309343681690031056760166465294782347777291726789884590495017262682241961605573132631654416786710885030697638193566260135924215542532394479113008827293287066809274741819243011492528127622382559903629002095979095271045737657832224464368224725672352351327376239657382268194456906650091217760151860281870491220214789429239968239123947879646838978265571423791274279468952399083159856343263464817498264461848024459672666801484897203374988269713527165102078365293180489675379979332010111004223760379842890273628295712796770247283150590296152484523158248405191567340331948549242357380577337827714880709090115051867472641001196765555688404858702701867050381432285506832992946893571067016219340529594156123479454933975861575945438508572698625922569331211096986429525489553594155644373718646666716121589999697333347930814551028655956318811807285644774770453584682772358055589612343217559058400180960015360017485038611206147604374021445236117637401820585125067789750503833441131940296260315640883557627068860570156083356393034251576539186570327698844137488554171841845201472369903001166695738133227954233506959194369834365677104437832564707225615262612614922964277226091847685080397352503028689509845299400416240787975160366009228803257536846791113876899587558929087005537096257256441145147796884838876437774661388076137581013594695274766884602281313454256634463740914208483694052481009213335077429246338863729958846123311430818088906913397253848061666426598115556195352890295948527673336290697230708145580668164449720060023611359189062847435833787002147255187771868480950726895325416191664527514443510868939198197504060461262355660907767029041361199875145021943969377284374473099682713854490532603649138515649795479886191895959504123519507169366899614106234162947439219256268786231932907494113562895198363002191563546654959529344447804586910798843839612253090882477945809449126952070575869976199621313304696047146200829528072064636767868628125769309144496009431397982536336045189481266303370277445058460583217003980489533953903078571015638873535597194171817561563461707684674230885439579038662354810576288908552411783704411180359307331008416583697594870813091731295908629728815713366344673540672817109005811635972066040045491775429260337889588927527174478719304933031586305152355326614379338119034401986227436374770980839649671274935965484562182723422342422557876503004734396991399386511482693011606724009813557753971777472294464018959994873038371874438220221346687161319658583237846434345551274478436752144688493432983338360567073508368457717419763242911634260032978893494941477417743873801127600418933251282767497666400986100048142255758063643167532861355301302573237852413565462552779861997098654446900774862984623955178726385093509261927050001400146439138805540160064362246856532222178364639390338790084095916478827625591044618742830144422284330929351390489567569993555383643405111201842972336500697349731235738905714217380943264906492484145301267219392521914168699059059397753487222048211239653412352805086687506528437069175866668951146453430605380378127825154472486932607078469461243154754754453550795574814273612865639398869320148039470094162686736004171949647407334712941904864509252421555374577604392878943867103781677815026403833870360076361122160633763546331314192268181720339546027015732402454000994922635076015530397124220544369151043808177428827365390513860762951311645208090579976904215150921812572818678190604232388639911653188767492829897854945579651271890320720168768683954701496866644986694851889730783301363722712531607978202821104215533437551798668180561389823937925759299619145972851093607327275087406393237119972096071580485570452349906145587192467231441868798057587203403705689039466839750110894329078416461816637020940997017394995354775645967885416916392275579787688229432267175263593535641143953320452060956697312413314666625162530253909197135547246328529595813381587953600192291873774339161814472351181578351308435039714351573858870351504481866829889057959465347604439825751514693248546543198468287068897680175603857901899671470266025458249898903372501621455909757752857637081751435619955328229188326297878502731352119981737496420016614177423216131223011328687452015564577556694471426230445169244279701627121451623797943383607990109635347747502076028361378728909539103202958590503869353192863331812792871349854328169280373804736148973148713422809636529491599576348655343358648045800614041615469192509256833128986929596140423175252117244798935166180536500923677362632166329541460150144165931664964797799529986631426607291588011743488322346172143848743054254459228830859526957721099857366548938857180536896504715347612659136541886075226123106942437528531865734698615274264459124740859093516879722933013902915610236744299880595368130755222419283006246839835257209437613791678484016234919368644529029751053883919394818715013040260934612190133729798303756328600396739839414451659751389150500430357994442475245708243578007962393309448408124949815863647967466168284370388145531352569343176370428050318142046241701936694289698320133869769244036864990140871652274635868252607068896801384455680279140023527061123014465818482917176738533530123412043367954414480652350324303472764183230551681673196985140349369962742982707447034161661966610336270105186088443380728348557896350683652946937509354455091697105782421580501074892518155007204845317321882772046953131471114772006756198702617825091466344408837889750235073405682024234825080030764232644526048556604339162223239606771029527163425809182077602782437934477747609220977077269076167640871525580359626455172734774435485935202009542102245111151510823886661813744732987642705729224793782549087683544411241147080817562252368927333175348406927423065674240662930975702741211972499337053260664927106567881853678054205729758163382051081036888601887713757633488413179166172044580144347837608690211138040576538003746155693773259151956329772653366869122002950310933989245665906733011252485707360720940620758997657847847573633309697314523196251458331200658061970358496422739708949802490115556757479852315236488383677305571336573765944163858324547589424103379830455598776167669798742172884086220757485826168275566229060721761229317334717003263378659979406368798138887505237058703869788340955771138596858475186385490440547636470682693660016363973724096117591559616823779495529761432711998190078851129692823541643475977483229455367701554616036393086019115883471711504961463155508066826481266324139520530537663363352617489740087792591985925711322054682498510984208481083255024233771956985636280159183466583284253891400365794339674228365095683862591985992790515906861415595588218669540303390410331968729439291910983445724345473284805743162984730386311221399830707890157304379372577642751024739930232299213505111894955396484783843852701216205188375183076838410194546925196048508837405071219915282827951192288584003172966809168012465414291974095889075413181476227105440672499239995398856202223643823638322131323770693394628186367547552657410988928850744116430602859342847179911503681859326510812873705757368671998751831062518339863250712198283762545594666858294259695973774949593001227132520639513102411893612583485310945498956522616459294215672437443669321631200895273665053290011554228023399302202765599229933004451672225192965112726204465871326715449768529904523585077962206678364023895622758629742422033065132127110525713465898745116838334559944082212849754832560005958507937526448410910826354324756416109337600226398141467898190450292409779748186249919370631013142595153634629545351465295420362874836356895482913984400425240525682386977981760463722592791836780972145349630841162303810002866215328868686209800330431723272176206619805320864691367103617727623156002357525748908255122249653218192630773958489468453463773196294132959359775002088819957747948376344230973999783236874402016561855834900222675244331821193047172854051073614079177778744629963695383623228847106035777938691875634295505977839926225704497641969481835230620124195849472649733485454678762856612101392477587238514133859364860809333934468073498187258788181351188424234864606230203281288448362377150480254127572088972688937222352712032489874817887009811232456067838438521778699846238501773172763990623606358906115614306371274430496456921048292755197523361530496773992744469720888452874197740802633084370577871171471664645359480694954243420647262594028642231607148061906022733971389622965494064527159677788279514888310478375710391894841058961139448410887522514126117481123747891179548863467167951770707128387273580080130858810096236867213990565963514117182255537854866439596991591778103192994260767303903313166346643699855988684696900533498897582389914511984058250136945473871081995853860875213217268327513423543310542689627533269013858490557331098812633358767576953164760193793336057811697338035550026011426579933506554009896803207617332872111107726859954832702824163113408864573074266819521810270182205876961735003161015699758472646715454431487493090532991327422549648018511121951418083696059447902806611186236841732119754015311340973133350826796309018821119224143528803560868997966557669542639689491305429640357250567220608232628381327004334419665619605383582584332971175652066337839323941600706941318564214383978378931518869669479610421046228426959338727858634789704522916671047535674025159811547855939613180446365707221504175693724185019779749858368246886393074446600537619772385985199518358874427162063682210882697839878938092143605149337051286633683028220168807905742472580579703649904042068484449204076023605173199085980402714621767097666862111257800093898400672054231725404916635588201172837332651726716214074463918271514378550203098325932236501646950371405438832949160836671233057752580324236149535134584398854213943796574801202990422959388540153404874116557917791836766230028165359935399133684400664741803385238939946353801370411302372974503999199865940448154700774182359419817058786113946028895128383678006844626710349001456759502886454649807817954032993096534490281119861427308820807546099729803943625756059187099518013084779921820011756595084487577676110535967327922760009267390045747839006402453973592787115196403798054813783411830252496591309763135216911126406061049089467646750486369086685890790716256786305033985800756054183660845697215570402622734078979088548625896138712210299312898773975591187443906959961449414944704624537616423718868981361894118841476717390075766909635714766076574105544791732732076754655014437651632711926087181320842213948686370280725004963942792594767726117540949160614675367086425050333170106649893071112860744688870391981381220491899198875259658413070496235126946250833045575571552373172085055985290586100902810073068532309081590127578031983374788521847038764530950286261433197206609054840482755101781539773399322435471438577846487869238480568064547074207459088497628894858015279849537868306840981115944891440799625934270088885696354767963069913113818419000039594868943029151438552971594131930418551807545894744940260218533657721588869832029232105699691260388089093127867307858630863386718473181562122947609690424184270614121043672824300261574413695551745953994387356867269417460860663079762405985963833214891076480253461695652061845484576562653599597233180766899609881570683529530252651563523940730790056909052145567669524095341974690773372071944102309867441583505536156775249260498712643195574772758015825350361317278567855369329390478638925334966092344783231901420233335735781127769463950706992741270749508596218013042487222087958977089642645406772855954906925634223496958708394165642318091914630432001245242915834173440581367003505781506105751627338522104505307179188345425693284680453154412507978882357367656896086109676550591829822683895582269584382746206200176042501199049139060439312387674608720777919461349635951564173171769403052006137084990625318869990117809241550360441466873511073882528325470809490823935733922592971550903252822723864631361481028140709053393955760578395830927079878161480944963683242711896171817634998033859978366219042371727662352842798788307508724678945347292358687050854659940763099856577405255023319852754774085875696811730451018814721379717555846158684268813067990961470010985574666550521002769073849515170124348806460763295104629118590094397505740894101788495614173693110604181548732091304822265164634425781071337973169201531287727091832192425052417705703378421668429911788297769877396178265795362774576567037462347865199654715531582547079689261062473416128488158290144516078037334804986628971295335248417773392864588866429134553919773045091246087272400374969761595408085815178873321550818675275283232866191388351945204428653972454910443472765368494561684299479792807731375740770707797367397506700751262520341625385405704114838216858988793085904725370377357159658248586416674671208718390413134898086324196907954190830568788737750873936847241542956863898864834716036511174664064083842911992953782521834123806928381210240510400075708524792218447649315421676439847335806127720591397665516474046462992640620759499033189457662753637171423353873367342543335601625158434994765755561579041029043894045628622560749923710294176967494776420035535222528567483711376154295074621115980154689945633161491395490096042910037040622283956648915027986530334149374360043194351141652928985532403777121212903287163906590900146884670242605315049405159257795940965702275036258347703295029020503161176129333523936567144830752381458376396651641301325059351528271471862489037703233189287086844615156963673529589258695729565697185570709364373925408074302347504475390216042592443628896569264698070601862151141583164875767330313912860052475803941406523512494591333316646926466428657389898230941403998540892838020076668504007131914600734560225637998529237321806511138989410613778270420249502854336573343847955732278393309060024742041136263950628430508831523116452964042739900706406523110561301118663074951629947080516015347577004025198019778790799765383473351741584918609402692767279436413825251898798368060167021886872146356383482707692567350658903379703161267003263674201763629789195745066409092694817781394762964261108733694692839860223284814488430649905957025814526666004222358215480865969102659570306251588816132915278060481980938424170711805295912453022180530354927666646009628077075724748396084168147541256847701259647338702828228083722606918193799906685478443916261139591336686734672587478102800330555008059376622673752563446777502820032280172153259973422328492985713744022076669681001950040820710677069801322072067944539936249575409690745967326910385485276067399719951287207857887441500580108067803595860761761495488921097347443684211761494562998295756246438336847663028258174729286356118649045649423599665640881171340801634485402796288681748960629409632527959562849638950787028466655019231677741761673580936214559352236095145383373770201313782587439723816538063437098989177887895423932710518539687624538790088611410563684075335140755112419280285615996607812920178621989167780740315111614537511421988403287808442408545033014670332574621360508101689997861515835857246469026469485785805192458392467855760800595556963282448591947536487584666376598937649284354599671684871097300983782761714754144293351510959921423898358059910405187324127796210351938652236482684132754566649049219665654741466469949333639041437746794436182351555600522189954254511330543448831708769851973869948501560396531785245424890806246926934067488284064771414512574973630470386070327028070179984188180543591009012654481819455773392977071327781219263284783557128011738069593416812658983233529518204962432674980262846001429440609769736365109860127315740360856464409752593198005871838928675725613182491949001602679300491613336815944448955068610414626979667624686991281522142529389323660807457707083370076446941850696521110549778209255345565660978004420300596221024904002134145099290780330265631162658114128862242448444214060634316031913190147810152653234407130728288400859204890201762259366350978087607626901778917921459887095270276553866419183238260389878527339550227842296667872498544729036135590439688837526454465989303532561123924764821252777798230057648545167019796090563825281945090256357216565226923780021581423448867018747382297188568781482869279759273898778638279273726682102087754593539913133477468582118475466895147358182822362818290049184872691333774882104346543092160430742024984084964549200399554205479910342807722462449657871173561453245405484836059334779811934196338972410603762040392584953943462859720303247040042733275280015008038074970793250083901860430125018557899003761247116747105666595035588614152751448646563194521847357755471105562658553648344454599832577310136445110708930617914028112993329852898655994567671509375091045026695515320162882003033481417231165701513361251511270725649270023852179600112701887694745942233385127476784928872314162536339773452272866383906263405303886012379886348542470778685017606078774105260656713056425720268161368591225551690478350610798274239347382850944795047702800485386017556137178128656881254509516848582556932840899902850536079813804142033829574910821576144055306315200944778592168568192879200007242826032174660871478015856071605415706108266027435702903220507377551641159252636376757923298770187002041434798979488823774065470062436221549683317604493775487727087300704573180519977429009780628608222121416783289327444275490039145434721698255200947528111240169342415159532836573112476026824581864921098366764748565500296066797266836553588144306164278455561659965961296462042545666366377048244487008277601353936081403225704187620306925565915463321669825854190898316800164384967918000587727982012063368970866524458001524898217413661483013580672784951734406547440135736911443657252002279048613018136956819909424242971542249146955558309482297957808801553853965852418272278195947530640910550978413006961719962273467260008114293141805779521323741235061352245422141855234625498282336805014623857490293084378186229541507442613058814848792992796994975625242403638718135707411103056483663991180254144510127223452221430391785493573263684980846217795550221189808219952735283070548012753639066975623365526172041452703413124431501144780126699229600477939188961030256426540284369059994049639323317975375415558912170222499950356588242000370707777437465533714016331786174256983812932307156671436789787569149888291131001219489060440207022703847249010046524978992484417962229813850843137060683469489325309998225079849651016723427221021572867602523442471585360696061025212424182970310108678639627392163731718961584820522438899319798562360690626020692341420668041285466006525493823807662192427714939028035447790166030371149437675142067798780393133467095861872617402967514939702399172443296208817598205581614994191402511010765900173934955811812367096127040621580879461972216786419406025325912655694959620582990501403284772410512052504832972777957971439339202739190048856832112569924874484045532273325176281601249820266258347806672470571595933201052466812993666446484625049364045730427184171310773782895311390531181050122087026274483993635445667534164785906896943010467493897077516846607530030571719726333660718637483264023511561899919149376567927094531715688338226839046257519697749515618571340499858404467690933786773171528750111848209443880823960117047607245492520317539123518231823906299856834630982719208162677529858369240840134038796931898741239873736555792783912359065523651285006615892419029133101063517495574288647792714579206957243571901048974379304599570940250584509027739073163212188371802347432936082078705361965885419659651672059650090603824730872965682840926549210248628966894467986250645685220112791758064510219560796013401945742759333030400337595454037479112237987675354797759923541674295533499245874686308608341930158373800786634004327187753507781267427974376966548220509417645146590599221814400914422142000194618201122130339604811703508437811209460490690810799078795545421254324900375167576518197374169601088622648408119514545026851224329886459552965791961418297600233165807700179535052945123168410051497817136217886098355988752473418560179370253064797150489512488056847114176193699419917835221189637061277117364714308464806710322004370952691669355265049821530468419721938526974736251511600145590789898101708116829594390455685403401052756644148228753495106322177331779608968980155213849671232238466111146498431114201982988038573284164300179387960037629120487940001908363468901021855307296082466991206968355819114631330266268317187716184732089556136899720052004998077662869507037857542797322434644593069765952417269762556712497050728751009829354961205917504892023599574191140337413963964586871591300060263351158825392415743957743103285632891963660448626392986215328810717730553377535139668130017444646668268427068157258036414589596424963397588934451348177155126221724939079746724234562763585273132557812654722254747368574360315630666824742894100150130199328084106561576749690154845625985965113856352973590437089349095354737554885706948421435815588341189557243226720017597305167263022390442305010191919929650683880115570386534336892981348225630774950753680397440091972339345054129113748638725475347726116251220170693532585263561144969668834956319689192782220596344101958118538939818267529218738765528031102344903098696881555215813886517004641596491863097281764790282904921878708876472001914508436550712871869229738179180285863064086947784323747465013551607913345713574624493468781460586386408571533515229386273148794951992744070810645433746140644415591235801569341813262962099543926812946363534989550058643894744744119768907180222288460386676314250475869966808412359715460785854194171049469171310589710346165249225340342933764138203400834333928302676463360366239240358387913910311508444906244684844009940555034485420236896642307069331547943179089492915291152519978557250711680610659798921228093799540265160090705706127376074267900343857651516359597632747612213001085243563607763896336537036405715321754450835611418227931918519674583429554593692821798467243696317901563797741470351800205399419044151931791804523245907692833132204209894760177529068728765681745516970591775071613938341763680988300058257613560655535408489410851658744346872512593586369963392864654975444669240645275570464657950051765073866264157955653686719725713631506906146524002251057719593146922963392032339483701929495479645527260129378041164326479532708253213119592275060157805885975785692400939636552992836489848671455103153959270513327566214346461624290089110971394465958762502344141373957481804508829685644847851037521350745139616523506604876515184289180786906457994618676814120150256471125860999073905623732001615811660075628380746115317832626493486746908858120233353894163493728502767043078942113040448933457451325126412548281339117125550672324811643687381160372279456029414696981468481589219944722063267793055594858853290474291191029531031376428922492199590351075814589670681605509233205010330334423834129527253560985956507617234734945232386915193363402059252301714105964797613154926803922406500235288330868031762117196554929683586571743388757291441465558014447576630712480706882709937590119843372326621647151285328776504029718501297707887173829510188183376136173538233009185802939859456411925547647924881869577576404810899449311161142578760359652465373099197772764429597648927705421274663113018334142910342646371789284158608399828456005262339644276052847267757842007047642781476422884046101279056623144205217781471404113898530440180315616931409623087724348310292360480643100763288172386949075816683434870214391221086380282265677990950070274953780108224225468932284909170625857390525564472402875149147674747255884394187499194074997098544348121986097488536281856183786820232592059938378335399388678953483908531882398473952298451590645249101197148434999228107779097891903596859007989738996889942022006693684373991955841894831715906732542886553638870403543359280983480704589409530251905540073303347970985953548844197536241700922907786917787970448483390197702366622763881355056700048829801269131568001968275028619895942529434418380908542432884440324472343817257264703704208767686141339365372818755838152864767812237897057902151076944694683029505613709538371576209282378417851462291645796794485921081065996500856550273025780997563495284275404361849087494661071837177132187783169205755416075562503149927014794386642558414906118228398136788911753357994768658050427110716733464316716447875053127906753945461697620184482888239450272920313872750147920526509068295307565890616864633872141043801810602852833503373888736043213121737152591448926330758604206621054429962917061004907318272860307502639758522075649669250736767982326490489932186403290563885502956320472710206188485952917386160186397044192797007447071706206912059357098872015819033761124283092729836023441168915589378904035414807125055509212093383066521641306378996374466371592442321533879559545412229495081925513036687009652318869173233685456076876175950948476465436707224493962846796077198082180247035307569606384966671010506788910632610430077764441921191367491503492518651858815663486901203914096468181139932841433931349294833732278896897374012249467918009993801431749968723979166642440727030229106861877803641031288978336650276589070032902785095780283101166129189932267513258606585840370614973012150113568097799812732727518463336911431724895977657205913083162241824837954751423452106376677955054275105211163402758942853117351878173969743256783047740641405172236502216331770421459717311956386491251594487835713702576005532563712967715511603329166917447263208993223879388939959246499371090017302358668497378769570993773830501743827697681404142460774238262126335060291326623051028917014043511286706579958934775313076574249950165311898984799749507844677699403153658229266133450410593729744454031209464876083437878018057334914478550271360147636436734464769740204096601396659672497990075946735217605894590967790739191250810780684782134720292061898750950370828968539929925045188269189732531518395530642632401282740708032907022368450446759052556839977906719804371835588983928116153350012071449711242913589859697087257291790720368725518434554195400989530810364159145692242140407577418662928422203443968574109351340151074275422997905199366301432807607026629301587187484766812057718947123274987660439676154083583739648361856280958453686372019142316688925757781768610388962028781919584679500139021319114590477749806675720762114765858099994418569314578139004370279724023732649718902980652520890782352620605374947428972165950467770565276328027018400763195686175620978200437075953926606605026645033184610164663192045088067834828941781358884011049972875362967942234118744121023420151488958288844491196024259071272974566461761554162151450773896495945000534971312234532660988670680714224925631842077022567067617165736859688170883700165626154992886332792229518835121390683549207795312578046644707790650590643714719961741952105538015995097856876589319652291170210035219789630222744906500145174634414100641899525921313688435300086896416573779233395391338382951660917268470838062096682847655667906278972004432620546043183207181413232834227612082737305492129799882025380492779556141490156888509211175517172741844659892417309284438854882591431016893859317311873723364926971470495358028210631935642919026609068158267931403959863920993890581552423542122605528467650395514148296459383230263708844416015103383671650078284065459693164235032155568489778133245128884014754460758490436612686022920161708699232812638054964076684848573606539606861356010958759910035184724983461438422046918002737098865604216494861347156251838947456592675339286261090228105160358543568734832532717002949169111186282825998190917646266102785247541960944801722679060991509080257170493996109927372034830681336011479762335824031981143071453125268036950830273856086714439278449471402088359563854442536792485839504001283881808676223924125922254198991686745893170552243757375387202166233101365984039558189141930255472273773231597176118469038708589394701000732947927610748009676625519977913990045875044944797363991488617881088230620948540216204009063277297100853296790277084572288458787832688107013339400162387452559779340261064627664060048789988739338648184547313937750074489623689854205093876803685015084836783753080754357957616956406480795854945101311459563883456421827535551735518649379779867854063235516704995351056730400524808768287119519770801084531455477412987385453708245770476870930821057083706466463361984404258082491791396570561701667094874480535892679330660386605858821703507608604558376065073386617588552431778555008283381980630459441817973831851545358421727706494080973224504921212319646449902805038110551737650488988575299336672799409173034447056324559037544868755037618719088026477237700732139606584943937864077395275678161516757146445675385353858658418365853536966209317021266424647471894089362472904963893801178095539200458354918807669376151682034591097146998161399626799962334804126028373565791286586925825060566842895046740203440199316184882830686006140139717069507321074353313096077251121318617602289765063064629558037884195027074191171952998122329795888265030280450224400378484587983017609072298552644777668135454345393199473398376025996323007201895283338751782633688924816246873560203796441125242889762344736599416399470950647031055712939304525681735391632790186640706583511993577393014528692654788962774609290991964531672574423644522515350746321154092554046799598169542628562556676265709966981469634249955674215094418454717146396328610788175932708052533222040759744021152190804623283268838471261205372617231186986046667446655136931892668914254475207271117271809977129353676401893654951038076682957677020925965260269054863524113965150256712156979749803476067475843581187948700479975226100910876485979631947201557678564816588100918505843852239806415019626724650099058045016815701409136770572035110170550095051159880782226454889791915306629086286176491398283217708670806198828844943973336208761899470598842192371518214941615593719927001657430269112978229699317146768258335180741023978757102678555174474935964418097877288805999638719176672142240914363899603265454580992697446088865980040406008185476682359470779936367532497745414193482234012127890809632107496564308181981341760859051677411038194517355126411912496153197477542405682802702351270705131346743722513265525733231392920867127714937490264389800016303762199215329116639020537031014360758343522765292966902176865366549807573082239785742802070125261829662408266460724479573863596301415641649095880751918701657999488917707851758267386115787754408674489976112045347403230476977998821430948332706731413611224240360931889994223380939058966864211970554567554917535213735885045157297133957880559887913764735929000553534080546099911504529747209557782121798081673546452713731781282071320546335140540179007477865756343768046170655409758133526861994291329796562424875585894303803839327462384225315893276059194821016871163340312928768830188579491449251994842149105993353686871711509138128636346099372242890338797594967880858786214495021180938522828953141641890365158135103812757032705608297374366581697165386264413731711918679381863159142452284339650785518751788735384994903584343781124380175305715785805246329331248322622588787987441570451104742636064080084631317607883063274961977060135535216080435560218630136121291371121575981129818864965999547640051240213689273391478694211726456473820623276524883834584182881100112947580420650395015038171198692220988467549769267724801724553728930446408927668397150567601594154353176386726005130692843741485917841860975336340594648587060283900291241644600565861547347342180269648910432502480808520666633471765759195078057632460977311045066097829062033988284828308487061316542175066592094792909420658271944461083496679493534255892779261834135962581824635716909390989918487490123626191685677274827085093876714860421273113421634606279766295275889945290438518306526089754440237261472618919438850521591182862565484581314738988438996341577002946059697834469395552287419108099627386854318113734106841888680778587368947379162829718410308581449618585811415147281143508601656765552780395671380359119103385055617221577159929436656877533479645238948859438373791230430387533875604224008959993529534128698237420664674161844873717499748039218448848615081115020538524735799711527629440920747126442901610595430124383302095209574061685497600289766680251793782654414165359233003706681773464014195518427379846178935618391492913341330530153156329335009457369731438629319856352018912835266527312718335800383826070704371185760030596041040811556911141880585685054719562305438211238988301740159976289644659586241496087050634072446748725954903280476775259003739543903569787834641595548373552927752076218785707512075032186534085413807523149150991179035371541853385745461835879438299194830010812150244495189004591661029938393335331274472496462108708979242200731145531912557336491544095404657401745109381395738945812072741124742749347575795058484243047815781167463564028809424284975077571146976683662445277395608160817104926010171180411086333975937631544179878256110436604929080025821797979066818853025487830318768647936107493695740359412525708447447557984215599041001850643422871493744966587822025420442963796017096552043954344871999308238174045001336025847393434006284578738553992953144214863342105641767654199713587130795182345137754998991769172398151990984225463806033719681192411267210696953216675709891958568715149025061117008814181062065351907227737569654713323385319652098794098215866819589734514023287185545812627217310926614773459096577445764745710643492645835093089425943171265782013089510586963407218767938353613504803785553182848323873371600518470765830884063667790583841796747527750565879785344745706354374013736262535307854879931441163434974377232099195834722385698765086420198954667916009513746080594098144580207724769161804562139634835811390538741420079635261109082129401724749336177596578573244868561666197074857821638453768594951624821431029156162617822826261317965932410117128550993468646701621031101310642457847619676857011917499811856824345204479831033385473931780704512750319923486633453139420570259975560870248428346360054592059516028639838593582708835497348085279341616163176978113328291300731685814675641911595095744128674893689873409470539105344097893669420728630526413373140976937939803330775610027290826224763910471338797888853785320984867309289596033115687321753202516372112955789865141335520586447628481019823562968734370977836317654537749833755376076284480533466296425543555008290989726007387105430820074582474988674400788985555253147729885419420156331572795206269509217021829554786765307224450091618455630131334940904977645498486234847155107849235607022703760131199822297384145345299313894904433806204390970477520151440579727658792864912684578101813642527114150425440041169341809984754249930047696525693214592051708521788307979938853810652416258371015194630264917873243980461797296501907124077446391940291360790567435516691021066338145788490620150850058486030132799414036033968242406065418072665081317074916147595792687169840903115698692738314598844186193424094591534469186231136921507978058168839984989144328340473825268536938424864006496531685874488251943924351340283525878963661329252516583828423153573779983605334951785437948922811258821940258853311586648113257875562225366090637363573397744097530475814566585891896870276820254983794809062250494986174028613623719428499100462225008309358179658709632614566094976672594158207409459427592986789878349640290487973606422226984231093482670688754536112182793069807207179358999098561675551947210166239596206009916039103250525664964463020010453170425274659048879301799367009255884153103031540683101771412126409272719945353407200310314688912073661341494843887245540297646594503758539676707975721060094268556517785322276187511350980936916738780552004985992521521821268219025714920355153201888486703167254243711287787946168048052436476470256799689666233857111289301480171077828871420181329887777880593626267181659472526617720516709509822767493874427013840527212770401265992268874278519036854834009371059129556722643154880844120592419727555418490994242041603405347903673576241537974214213714412988556092127999545577805990912290967588155792466184370932476353907517065973731774451437316886857219433100582893965452687414789970025335099811488716208074162067824032677455504307804893212680882830566903762073706685180701195899660979142832566442461705125517210363338062214675927326463815249575918720984243831150742301842756390994739508600812866891330237117091755460300042644875892233953532416993466155808538526803022548845848916001795356856073628000101757411422205102186960783194111908410861461022191688623618797947871602430575834504651188366940524109638241529448616408691950309514315202080996828377223809253455609562011618427695973637630659736276700502512383740846729140330088599096727361577675761942801564121883144281789915013640704129297499801947889769680016222919293789869214570514282220980315015934752986655826076859684707117351532834539918321507127229461899188884170125042231115030385415729255849612830752811325239960019305317926258765210583351610777808152849377018866154426981202687824450028915679230720366868231588917791237350856254507885029742749028152426016587257841521589215508933001253996351437047457988839793504852356241249620089113038170592016069022067867755509488988712616196155041888062290610216443471297473980162982424062981334089724710564654539950045791082617252462597188764863920020049293793390371235081818818197489226153023320043433821160295959364341866044394030455695083182891068454657065908209916207222785473538324115084481424537672493021115845714324357128098799278371391778399161005821501189929068333688657917966593100353630710482087228258816254197833296213891283160588205411081833227668509524444086458395544045151409153469557061890113657624190758159942500990520557905908426033960795535010154969964362285541395751387486713118141151302746970873786328802306205675012093721138859516996648072587114409841011678837229860660037433474078931922271497189505936012419503450555087414068110906113317893577503477675960793705381584045639864103199453646516830674998217690276603202603610193733770703882397480291034395106120831923768429045170467586834244723370145086760834283554242367692732460041066444639911139096755281739680460681528630716029756549508103009318401230444773264655171812394333011492326880661350873434025204383836992245420648503182054452545456372485125398684372351244114642094502273953760699584091186729785305722300602342288325864624053409055051579944400344744525139699303063731474109850573430805983836431950630428345511753169168379409594836971382140840816698336570915722429158818688784204138642430569444352639109838843733679371229914565958388562908807378470380218764900976266778393808876994110005364429737953090776197370330531323469560836665611598189384081117624654059159665428358568489783323402220445716166330360933042092358643960887727212306476904861957068885573811757898749224018602861493340622875828462644102102034340697457466343341927102097447421039856861126724904631051100129635863070098606860034843899444855141244560050060202050294938143142968657768902730413207469237107513455157272419309913415066817586929895344884276157950933557849669643016522211475104661067776493554570377861353944726223684813460951612631552968633168532218113373260782091662326186974716123851113434149599322983040494299066445170006090899003275191599901908835846058407206193443780103208750293925504923577664831237755948807182350196232664972372703244733019444886375703983150659150167797409864891842481571477832737663313953577719893479188970844816732438316053752121295705492915608864569932770136230020065237325626312910176118959292315663402652160305599404030499060079177951170003728015858130723759266094545935934588990265214265527122810015328965313716383967375805171031299633656237287868949153903826772126290646941081167435529277064251560081486709843167999801313570349119138019528412663421922805338406833266021811396853279226458803192712104453938182655014510425172390350084948359899326972890379683328473789951192626371647769028455332495211640002055827628713744459983443955413485820478441717830224129252395187505018416735679056508446911292686632963340737179511429178399206083559826233296108293923026762858734683642218206631207968970107142646040674226348206927859632642174433560879830958997552548904782967379608251123633998710802108029725752055981712362980674907013207541666491675993888427952177071212658633480290682529827016661897056888618340774286349586181150814067629931815956577537845697926800644866756990310269989321305362630386203015400732287064265216751329337852533166607762786945529486835549309851114392663797713656011483361716785980020403864703027800383879164466366227631603870855945982433362252652339004546782858331756513453250518833505121600496591174295266976740787650133807858557089636215624864899539639283676187395545099198702451986528028716958803429931382701640090481146922171055217305057457496911718705974190217867587550858988130689215917919367978976862653736583788852565115740396464468674832220743420287995798106497404932989282775998095529141950692617542021526890036097488664170349022399071393265207794830328766187786126616185890461989842439188345931276886457584895999012149972827417722105011331790271053957315355506599393468058332779649598557587639488848884393600840705140697091064697880928462749251565450739527026674519788998162002416694884355230693558954493313585607762616522765682139009038250367376462491278838641846913753404922655524975459890740414235711791364682308487400051975237640898173673324550316526883920352607836144563276767784289525145555392395845675528782109629634026000949711444721780085610664467756777586760682267939746890575609945401383761525834067197422642195289518516733767981065469736024117598184505476061010234037742574728271987294986539226191233080231360370559483036721738097774327222707488699012222785956172715727933785079985265716509239053890805990333422679503174478491309115313727502917170440255811255390523104631176710288283433195411169493132807325073065872372230971192700336389670529661516170223651822927291844792015681683618037930927179603695974384268917708575211588907036464728626318996648631015498302447553594817743487176196716970709978758892656103089840040703227723391102617785826482472483028883918647310108609808783717543291109661973848466154850672285590873903554389105511958062086139878475224889861343558830370311075031168111173678013811089935036596362115330721053698839881127325735228835630834891688979455284320099782281981168171265779124375010583271498812877069515567811920891184167350662690370535229685417517999426833067654867415382765507604734028944060894594586385560488316667181958906558272379655691482073317522854200368865912412139860707124196664027655634360155698526291329471508885938649996684340677539284905967523938895630518932911200541108338520502803261359055603287135072359779404045004117956197299277974127714151616230309156096512824246583732339300110099991288677918081778522179294477214161946220405151076986462715690833432887844405205149284731300738197298267679498846745461255175168795757290714840612553322242126649671424531634946280537313036420806528794488741718409823964130752470089592184109145270529184663143347264568455521172475214450209350238974901541482372980700799262488439740510558460879491875070728997691348320259595039369166119459748923093978395941926731129684319704901447051888376652038736052145965775428850214708697968020291482015993411789350901093179903379189449305659185476285339234088479307098146249501911907794752690766108680313537734124385870004113187858740375491192278279141499675619992206081080211650880993258880428676332228705967948113629839286998323646610152255162197369400977517709676570913320206285799428916190770593955114243985178846435195236144421683332414917812881155112925428775773254556497845517418240322652323698406178121112192862758010173851818355522339973066795159966078987409896334361946116449839466884313771570258630711345211858732216009402087477702003689626636510550873440712848881436068060305267680774539178369479475770022145301557406881865276803978438757398165479142121042178163026259434050848884058419421311785827075601371570556428135149381636826851367182530757578998658404715224029880092996440084457992503089072033908906591532631228217241583033347107387689817543747797929263621414930396947968132139442209138508894254419130109433204005240548362716689139767974509425796430549601791055127501748895848034538264924276218349752890760448446982503157560976661299216238541471741891603254936732364272639265537478446986735750026990794471879533115042815055452639311481430565171438350621935780832127769347753245431287811413600930310235475815844678916826927280300077931241695701796878100885800857436576408124227092023296589554446802067644828615135351276294820225568956228213577932135322314704787427402901205334566722182349765917741380451148654539787866022813717375468198944684013777771166486157290950052450658682752993592737375017144592683998616631232807330313382798159207216567818289625105815435239469061601815983246172918956824280212756369480610467125238600600946089373360690898733500055432416138679004124864343809074559788330615924629511102918662917263351901932312873632483618745818924286018523115791389032407561064983514065115881249664208643229531209132526990031427563232143739335673303496290087890352519953726135463125442852941182084653205931695140395464124636929212331776139280813031663394811726084435901862081322713344257960160208374599391580712080623650692646007251582797498538558498380667281169025149804203774604887318936188918879853850249705701802926418552043188315763829007605814487449551368042505440938548038583441451903518512838065722484256906780197707392496181101352860079376969742135529188054135282283419314804604093766803831842173349054767605281422623573807500245750614349778234497481387494633480897919218669207468218575199845141581824069241682164509767514939645351917385886361108636226354662772059729655934997209808803377664111128124132642194722421516343605784119332884899140526212604612762887955408960066466441225270729123984627036554896243110551316881581887156894296135605829211099600639817774366211786913219913451306242908564691375457694742052719390363457916957545584694647044623232969841873631721781352603881686781033068708298881682727063364692319612611778043711889769732585229862375421275456434449340977774992571464799112155928426517901877282819263932405566794728449561473190814127950594868325334650537838418592892023017739406100485867395290833643754855404896131426333609107776116435550470248594901527707170510289440319158884767813755156503424820700225304461459025171271590100887384478623686613886977444339852142776380077892935383395229963018286620784020200090505566842880995787264747980965896806460136672867448191578743256894290916697317824861518524863816028095253106671063986537754967116574948441387950556190385611014837295305620200594646334078414271820008941368643932839372548771681446620946015940851236838159362341812455519391117820557537485924210554910769456868774684732668119923487586767217059492896445943730271583781318601408951981477914854647293014417628550234034422632316298072153232034141733538979595284101047996450265386709229793988166211490239700101117548080638215971752557114990804730561399974291035063796300581496019116695911223064603335835984694281630457113254602822511378719708081237919141683409086761970957475700038579538259871967895529521134080268288342498491930893144375943349629850032988938250259806970537264148075839999987742021989715633411265095604733173945873544909995625150569497088032476312286611006669749466827634171283915439944476122341392439753255164470616701208757850898822901447147825337858484702680258269854725360941533589771587059083141304143542469340629383974327075921313673871737669217472878162483366358108288725001833229964855881964714985424292539429836617991991494296069314989783489617972726913674093118337273073428416127183660432710017786357940926833106994431742879475092883987819287691835897398541228393036386697217089591033559875835448471141868577388122167974730335813706439650399625337030427177526510994381496765689999016251695743318921933957417392937445323026247053077928069018644040301258921500917550935613368435602335788703656438038289569649551269108986676275045661255518102280076095985229725692047880838925979553953749065655973116666958472811454469609513598292595208795263442047797781860521252816368321496050298432403834823571616369862964312522463012999546878280480545334522460449120011906101236945234366110361359140968765696654178720000486211324985780441946844638460748970082309974260307863550517419098204064045497686998303185559243083790355837892534812979839511717717148348762977387372138101634003867723605050537064055084137292750666248474916794817240724525411421632906031330264090712208876836883501627771131785213462928262109467931466923435559040351946239584435971881150722966788806351477263442698052954018536191973989571613317979117022110013952810367480607951354481287034249540679987779639984629210931823558458267751656919693991517117990820055229895660761295823013206145889407626381206994663225197127134998278511544659249483891215792540536380430591387466121971853340961200104482874255572143970691060581126668067569548455245133026659333831596793782131879066794783053498726279519510041707141428062962813300207075915818414652766443204400137320575141207792397557009638911264105572903046670501707443224745463040548272259242979855255627889476106267592390313524956145274414827955192321954271971124417975636388794248134141946638987837717534952801165504660645203866524279228169806560902952380288567932905896252207117044859262890132709927645505214362704962892331412303335722262565556617588748067218283365342879433479657375268527769632893612318863267208814654515062168915448305214133042272561959160749064788032124960020393628280851675782607283977530958920529418438492398955781084797132638038408563263914079805745139516424168735415637989018683455142835965362708686981407869183424495002342532830477103197334270017850723747028385388133946363875611977016894291367778976468420303583608434804467713488677620632268025964966630093617374867514344058116236499749269522513234711915390917010343769369398126632428704136737283408567570417351294129742173660553037514235427146222665051527882946312547436802848678406211528110682055331097050033821290031538425750833346122275576046727187628120917556125500185694131968515964611834936869566860223671247557431617529732644694832775604318462624856065911968267259382929058799558717340259562396579804686293844630035045158124347359820821998519569580620397769997220168055069115494802059686105485284872788357350245165811440405680964551596221300795146228273491660071626054953296994340807133952345529271679103327411466075793293036923507259585963294697920373866983489739342496976098135842950735257131282945907789153225564178054854979874936500254685630246134670916492622005107644776863913966621284279745015552248459207257886428329044485446051809668100272737469501369654759298587006020241742122222426772094274844841006181042094693547630060263254490027402353241122238239098110173557881101985602417724127201856637656229758681939609382477273833813101181480346356502210640026655356891911687939562048874037003963190408688134728404220847644369102899997585756608596574046134033000659440242023337683147589575000137844188416692193252186914932337275712834938189123122579887914066713130605433436177478432520855671983888651936323500701384752730336900691339245734124805355942995868834617068047699623148445594821025822764083016033565130012032181377797980578786373097755304581851221255999297744798752016266968652970371586509104242631726428369592010876548816109404406474235521878376927499293959297742372144618303952686590159417154829762636849454323718810589094397918806834376933772139675796180416279164322236829164829852853519819476727985514370908052464796883403040126058763505475076517091570125523058893092157318833111522191507663904487971769583187170955648220583008337905525725866441803031962159759681226437317055406689308253800580101258045416290057526554544345509488077887588270410828418741351850952991176642092907851447254412305966302875639317675189241697366324551413746652462383567921076535953219554166202899370807052462004892982621227406716443837383504564332107599451291683134986117182734558997913889256112301062293668770111271054133120920075849466497569241399389427131772612522741126930903872637324831930171505300498167256936660816821086110187164341733990483179328923530887138147150759941153236270882638388157406972485492988149023020709510626274474138488465941176014456959773148493146090881792653113305010777506942391000527761142185896006331379153180645659879435766832945576838302245362452900961592773640365354114950769782648018863663226353246488552206087133483526826596041402046762715996439989085281599951093482910764447747558947053741991807426600707451499276841020350812480479178239089442482430337145525359560505220344052785280362928388148031677424305336228127529376421500870729304092629508802038413487931354276476132903395587794844385013168951276300842417621536059135863308697935532067067332809042367718066097685746685252698153104379294106557460239416154994281664460004121848548338404778194043207675490903026374077304902600674643848304917381436388755172502857790005037256650240388901138857676234229510781431906856336974380619140774301870181323701608152594424511715884481054469893334431795295194552337208632378689043059248503267118893250159093969724907154273526738062223615716351889126549590487888847258942608705421362650376106547858672452413392008554175334768701624592410419148191064511835215789554327486089770201396922510358726968619828337005947752773099846498860405351732487948701020258702104191825932092267191136738706626392317452872687878594846719142392696144291673777951176699319142877159503636875278390824079780895258098551602471900244489725751069708630383363621343001615418547551037609291351003627834967569634685822564907476741002349540703904975471415685470415675020696382517194357259669872015835601164395866082894812663940152743676408030222274178108977174305561703953602450849775689522212296538983445416640923616616377536021001698258864502991032530936866303544852023524021234037414006080971013164853647998658524241867663502059375298601651341810522569747911395121112310380160750176963473744976558690847493842736631743216801311962659995900996040621484715180326334908802597145608734284976395996987974556022430517496994018150745692207011674022267532904476318978529353880363684908079997009893922343074811828851521633158020735049264394533552938706006506788751513375885079381725188917604966209389950762969591830677910338532970911872131089359673363948257709448022364062215460634003211574867553164425145687621753216620050990736485079605355075464381124816330657670045609252059779089903368555498446209056481608331433773403863917138177531914065270969916031752976380037618638614076815987617120683670381898698737889363339051144822900161081531185588153559242781052288528646753626164257277103122662526038495098442673289275158448429549861906782400855260074956953639313739782941917827454272837297334327165384224138942597583713947066681603720809389095020055854671685286395800278958191048781038456046352980996978016687388161548699863974764551174790073694829508326169841436491341968558905248505455495847920607108289648862504116064107727123950390372586241986547785875557809291496863120581880855766519616873739099465660347317954334485428976618149719159576323122316161665728954686353092297729844936341587797847127053195123301813205070401587801078170472438689851396830943160164400038166439369921921582692183069807049022240191176845088983631780404962248386707625815750913953141951275978646804113068530250230007416823230243444373613082922835743681662185478203721463608217032132806764767646465994719328113732805304256485940871721055771139106532769999770215405405671231076436254540730755448426666080811504961091542043599059000794287705277038516854116450703852414519005087969133415171212911340749994337927117045978955221530054155660709654502499287616284551447736005019144179923841810809366131761898004906107190148054362022169469178181920678076652346026254294567184920077234279683149255071516563846440985304066386388723731444353221866137591277564370406879181323210009182964201457865503453311125290033553449358487125809759002223814604401039534066166547241257129922709173569980676309643269066260166794136255923421390230751993824380175719217049311972620094980259005252640758065928250935384209781914863568424826474626429739227252801054240490620721181998424584155017996628609817711788039267547357600916065341984742388732802554369679681013718993728900118416057992366638190224046650028055671227302256347987950383399953641942441980101984684135535441243961446402127798431304870187396576735127602273966667876451565036462624184867388906395104793338036475678280059967787412559558345432861487013874023207793818646917529378978237278369246625718262376966951717749246889222599575947842207346646045841262743949341421913298726954252632505388994021898920430381350620316572581088290066697039843719179033433230361089441341604687173727277441873798733602892970369728976243122668798839937381352326715075122153444912105040279147814903067061973444972026489573508074388726952311287344604279849511735911911317947487967209295620300430132869570881961404874537018371788991698504013146088577229099605989630451565027551331060735593200278452713920180161831280456552532135246353225800761776048913572198268044638480437026322135057795725199031674138301521933811970820735524494430590443244917499301358248589307857588802447022030466144352569700788451698489835719049453597607545107482046117834898296357312991069733439469313439243518098958762173912998611501589760233124564079222254966376413646094466909080474543207579076699042106993470452155717846105165461100740314173334849970846381411498724971956860279944928403975717776406672422843652588164527640293026727861400841243246141733625821170883790762773022433503150889792457493092663248781412351497158844259661105556117749384207504214564298081977519427431064182600644615772182520739234964629186149664057769457314388520848065402681092122129082418767325896879026417214455712077378976600810949862534209623549379308253496818323997403400181875593579912494216733958571784486675722769323191469857533589177368277858038487107683450106974428638924517457149485543595410955658636906512406051202437756573722509957031499422414881239065403790246252793601126621470780499166434950045196507390974233989132106529012271650635793613950824119165079760214135399031230000529022008382191181233980766267588132611665532856995960026357150925514768852821665434075644405647709309278161378427608309671553284902386178173541768876387726191657495100234980466019281596439586108464001834743429045040256877694359355085572357690539430507795121940325083460471761826577596107899993194328465161481121401045981035395171081736765229431089534316799113684529710955158059902876148787607459417445364421417893040959413102379809644853907822722481942233422393888108533814782256155873638637405118906895691280682534165006751375627665026652313014677235076339106507128507133997344039984797955544403501467597859187589458524987519290020018092691506714762145606453688302820026214746706114258838830907691677515949017242811855302014881221661259493956614787039076549119957886440769250168688238572914147026122916207206612338675477091448620770846992573309149711552092985321305851021252502016853967611196261546690642233136790843827432512028936926154362105280530854754652728719440952929762098446047918138765157986973643753190774747910636921246055333246039496504746649938668929179926959947140430599290535347122537372026393538984303083022273578675417823455527520889188230506134647593378336564663595272925119839473372751887517652751712878615512012139415161250047399708807884681174325323045697133806786743217712237016757062818318416943491026914063541529523697361842726063143888377787975920098015159424726909934422388777983292745860070570571796585678362701055843625286358403736945746489869676911916295160788798421260593305367966462838996064922997641955437914261551867615433142767759773207155995458610199040402375494509370451302004514018858842095659790233184215124744060131809602189701638038155181860083974336533967007755805703683401418538038793854938532759188793083742921462687979996629486975334767491521735997815146870994965958171147194081231076052793249833365136160419138477190914019151711306956468074672802466693519828246128799099478372688186065555595822214175938598522101477066987677963659524652826284655444421183450561972270900044044898210891734507914923853996886931977417433689832161269975553699051668764008535189391837383083152573919955262906976193773416562923407609480445421165329927598154754950268454035523188963906098506364769222532293362586613965149293491910761946740062746989024142021996080486938221091894918820649016783474554123055443048593971229946947465098256159981930018630911673012888842993815428157015655711803851356070103842235715316988721438947064085666295808782639961753316564918275056433386639295046562273915455520380143319715679028842927241713788942784778398707584735940093726073414199848845481417699968718871871649392872790544101643121407963205234208306293524868113238355419409909631409208778386764037489885376323384184556460799226115941642959125106464559518929770607628654505261140638782545021577389816037426142935501688536549761669393057353853882535137464349122473185639362965417729032435780431216174446308302145935811960087630285895697505648963119554844264051084020040785031351965370671937529077499501092544749683969931834722148932393263043331189730257342824906807091538553945324531387588694688801639376413204726971509340106396576687779041482220824090238588932181281420029816209945070190726893848453967272347165775259713273977676679850641599087644354190850512746733878177586890847000746209762476011962670525628527667238149908601321392925525975404725749953537134908166493412936019621806148068101329018542343419761619758225581834530105328292726576621088218094180349256093649939665780257049167452010535345907757862205496603295106683426772859688214946907172618040779774042366612985458750228838514906686841256434196472918955787016716872890503315397764930902931025428207767880679677150435598641375198905955841126143589469242988993813011840701261985636184940265888892479449100824548517125706375735975916022055636752920301579664515772370949777442106832258827736530046983778469541432296381022657864992214408555600053869550160284151616675381052171009823540851908617856664572877632793429069366767848371921677195712926071881146382675828793439053684760704076616369072231593363124009822729455558495887309832521737071459211636022508708388058128628012645958838969833969978337613855375157240288108830962330858677696124782794329195211878880248557014152764260968833422780018960871539459180539463757439165229708578305655318403591692799577875434160745077744759151864055057902996553391304645895609079638500836193282447070958389220567646759485656808474334836541741998041766133632804511912769663334633273500446370995860297578850930768725820397904925312465706301505005712346224616303001850869128183963848402845551235898284319911156000918894412468591074495890455312818842642110004836334319103852811151376206353735634714593799700038654862431501763151688861367559057225908019820833783099503082604739247742288447688213466998193002785727385605473250264029074390628951663352520677687348258004441959889416401556565419629736854056419657141000207153431101495485691307697102374211645627928753907448824604849638504786676994733923988611619183612565285877810845137893406247238937263729881247673497257119168769476078357634997649973392724228557939032995988619892597856308046138344401144718127804293592726972227229746304014252520935916156793888888696665776562827075880010377133502971149879543363556814309641481486850719505370043471885298527616736058550581566295623578083238853643849303710000225740126128620788470280405325623970827397327683966171117667614583360328123666945940695873887747992889070710921600475937768065171806253174336247606914993628704340388416665490821464240295741126826810541472012696516522030557151657060167256497802032026457158591758968737200297557002326530968858655847317192608503871835156140858311874822001313412682969284423778369473934110986775210584700387305641362898188345744605552235112071329432935629951920729818282458656504780233286290513508807353501441981484186923347743570333542525320017056303089966034695650994001035601547358496647191475928618335190953935714155659162414947549532595414808011199163664838607552874625084726670955574043720728549195792180606795932984212969035996094788377983286407709519571560950477698672118502369470250762800470231660539198535597790892183257714033182337467623754087133428400300191573117374439768314397209213298912978534739500339155258572473093778606656033699315789974413455317184134143587563048583992668312227899678997155509396929327834166037993334522361660934344381578345807394134024928296490765739953317631334408303782124474345796585366997583544714176656433726945677898004012354397529351552560798534306327733921459664713486542603904211484096617577615284950068073002424276471064387375440097901527135754423388257942144617974827944449996432312043869783360765063305750994704679864104836823629595061743749804726133035099475502450845470232824887403457872312382003048714886848200391260084615541384181412972685219263082491126441436201717624850827039298096336046399893557810479148869706209113797266146713046777479085238564964582664737337040517863658639342568710764741409511746166244231967520621422968157670067289253062790704924475081235739590875577988911333602608424359532487834456390433983641258488798661068669239961910374474880199029553219870065567062462354658470020648297373515214013699494956234465721918589696176568583636934849970442014795028419940373050884171175677220811332854666329534292142866765294017007460779914287194525528547186864607142176393547852204144935289383252022765576678209103881264574898887210763917770268233493803928628589540484502767833569118919816587130504908993244204524684477758750531495369995506626273059273199252771412242340484211832330662516807461894868489710936742958413914879693535579073479820673598799588214388732036842284575305348083210250169870712396902168680113528474433992102624232489635898025552277320223481065056663887366164370436332624970866895107211370644985508365881084391782313055905409297364455703149096154546390368788863369651763194447779980498518366041915578243877909475264577487722068033310054667161542428527878687642951247720721038215719887460671616514439917890499496995149833856202279828709442555160871058867134681767735880254997872258187187907182184864378215185105401982591452176218890992347279368506327541911438570514372738495479457963193820884468294577757937246949032269064568625731389816516362784765264744066511108376539563560015777496801042968848416620875521407268090290100638325218702927666990339210629493085584642949770165101587270959907332299063408237903250819599257521603783187959801661129469179980384344108044902781933425885179431870535837760768000306743143748976840216259958554429516375582326357857447688255186898548456470245665994393408942554757485721269530037437010665849942446356317481296625823815877887908374558392833125522540028788111412206231123732344352738216837707758725478722340946380148009895937024944272702402991872104642242230393630780123878577152888952762744767251524665606965759638799547710722041184830753729428552110677589206196650663728547260872314168308744586262755126673843778437301019848904402006404117833467071487581484660994145702188341309543739885366753726630397817341143261896981307953316978288952270319693132078443941139269933578974678012925917530046049789347364207597892258327833506058744530708783039039911758518134077931375934016324316053730471054648433904817804167321886266350057120437661389154446541411676314075217123509403952449319830307448734391169141768606553111909810189075926787841416263643112444791094722437458472505848646350817073762096578107878159779893846015344751970747567016566234620907911552386376673550456245901270834649359652172638516187614353576906669902142388534493067473966575804713478610384879622339109860575755495257637061617417892425464744420858982895653432518699679386740113693762518834581781785273008008407602905120300042726910141225183204375030166336499148610400601839755898297369737967507489979769712107970957090556002546911971232015808471206736558642785365587890194345519140050151041901919922947968210038250173715739120722301604720556621267732848917014495640715905602524974553670593926795285056444716279319802877865048284307467746180599712807113442071025958051625774905606737997435817285946397880341253065291010851413540683548608911648334193695448859657790323554406038165138880959443797376123883793086399509517037857226317847034650778379566164227373285016246084090956732270916180110089986781473225838159718583133318000405408655172751560529273517559009838659517603132263013329340860714694389676975764821239438696326929380731944560743267429072767211824998659552612217755967573273776392412583231523403320804981290710987594536190081057573916398076912057040398759977157814379974725004639473073638705763354775883479645110289415101526243970724119028464880462447000162352548345686952375164599622957576272977392326079237758265828730538204260625683139949893572386395198641131741666089938105759043271410328388725516233367569280612965875895859301679805361496326571867322209571278067838170213192299300220949446810574187109378923082741847041256891362560949424847323527002235370583628875607859431653606586438448305084454089712846841880912147360709398192433523127959521564446070047451273792424601253823201633455113681519626151340720406094084082055164779630310840907220611086800704270113011328623315230429059419613346840966416084695554491841272102126251465116416871046513429399686250065945586944342062775107581220910330075696052344312014014885303783116329422472636613702713654580752525887856727992339173132807796793900304435287264990497612176576056162496692777578208310201757169524917167023512403234950877586212723756557070220189662579890391653780161609621434833881849461916644045195080954493976747275211881384596241891977445960100561312498756098830093388644758399243726869309814462397231025845901586326250833509999411615203090477968913311326664700959271383286932940715686778592088204378674330551952791095694794388124713784897848419911111973294560831439458804335151658824622630928618819527433923537206322845521144560605525301649943790112888423147219610358420233012353235763918319497466388409465570795653050040597601020426863141557865634672370132923694553805165076492790013529960887096366122445121499161117895119734027549699009563149726109953250814136153309701320789094890344400573027305261067205566677408235819615555923213304051622203794001619646576779988468713908518452309011792929244229541998956160801242562641750344534553182674261213631748431544657204510282370521096397477838899456471593368354018211958288560684201794509197485807388959372964263990724798413248454611537989478311989011731827220336477936811877861788846094480216651140723026878900467808115209680475819936496257781137706294473896115637517304940238483575081897721881943601331174115636286320157284518638391900564201838557734007473146132750646311882767762485803443897780272312437187649328437751209757904945862343626653965614217775707213156176551485763460426776923778869130432803404266649118203954396004638986849917558837279100475280963767109930144643744509697630158776224695702111601045847082226523778079352411887107044302826744871524477109714863608215034440119856428619738530400219847796850747337370644329304629078448712508409332995109745442996826489994789972169242818593544015540549014039253101244787747233222664387386743552659120359685258323674693943187048451048783450213434563055865343546755930768067951617946794923571071761086763411683592710709547199838656017870485958274255074529644183303325001089251095665124065999777219635964254483522016619891320828566468716209976059484728275611549638298810181165346382868819919607812140854418184375172293086363516958323912539303846403344140364400091117239369861343795930306102612544657711229891709440465983029094106406115511406479126730752621613999564580762055997283109691841236055471451284627516863403361885285685435579854617562592509458538512867834120719827909176930712690381291695424789125266522757715656182481033995003361127847358906271814788332162950343337198492607767160519464471914804106523334922080591944736033570655610108649275350772432634163348535346072414628343005763700091215034898268664601990723151786103310136343498517766057823159949916311126667290576057209485002200043107999455945588252262983775906219564350469827304515257465706804580815533901700208224736844042951902616238876568721566814294322821907276034158285713054905092938993955748664190188959389297870227324259831339031150562624657770450290181994031514041924571157055617826593637524773595862213751113904380159074650874719479960515206357546474981395851978525485735187255889740252821580654140177233068804260242836482574246624590022429005303787300572753945361053005740200997229243519452052777349130617318323496116983945844623815176022836779431066747241298826389215443529253015421828707743691032090774740366008048308087298641890677674638519018356509594541184601205646190662104485996573936689978150432917839154440220260232680819877382743472216887619523289166491185996888728444997419818282650872456272695634978159178391025044097699914417247898152580846083951217839412076112008089852710596412098063701459924997828378314885016482464645395754679409096693578429923227515076826060370613225509265611579884403243194685168704748492867438320245104157862696543064038721340168606578954852519970007390870937893009484955502084819834148874089791994599882535733323862507205016150926323655670030381830861825207478563164371328590915602830466612489314725178960150990765878658855397227086422398687185968627395517025763991380589302959492569969618443715479586412764682285093651259555992195426599002045163966177023049839739256411128711003840556676623004740313595938460879870954849109238645501496063215552371813306065554391169703754942865952790095613231962363556981227600336260975614019100091207872430785475719745077269006905872353787993812811989913268058248429981865143392332498473438326941570725977406630699013679127992103438836583207792018059538426937563126701844997502041977616176892888289149244389788618886103359864388715567063567630512837553755927479823373280536184448104679714641630533131204740801786241328385006222026470855609946791924687086764423611805944431903862979171601688803902136756545471625668173500717833792896219069836953150671831990699536749103684684389848717404992920067989971405501009611240336099688109174238180539683966314059196450592815441768934208870429368788628534195615582066894686016890788236158622624178372885678235262409863158290198979466148527053758985018385033159836396180899636341219015947699592779073741826582209178015046990722673069582458883907297094337778562760007003602712734790543318502651542893542829908313234298391203614295631971185333767746468103352942066013029253786365082729169167127660045874889174400270931105570875834437352701860339907467198631873669845686627780524995523040180798883108090090031137649069278125549488280299186901140220627254876792739382107984256877376298577271815472691350750784800946771756321597361592325599465999359496835706518990792287681702547859710998354970903663417908185822805608293670140463794881521827063560182646432710193402498262331948841150175096454953979534082427027646742081014433093892161814337649961844423239307637349040208336969580573032978640583125102483965212620153448421800822731268241843016052914835672678305703070673557243144773092026338115526680287780411547429162964614511318243670016297448970622413989558018418962771729286040232981525479256640187279356951332090068278404785101958203769806758489879688334960331780252357643594973051926756259987299827936222275262388458804597087059568979052292003714442831401373421728177644151156062247819948676401955982362308363271264700972523551842501689458875525685449415169112942843985741226404568751251149653951001602340527048925265228360770325683471425367645945972980157119812089920236092653735246287529233411741981479499858927561427169414141931432201185321222570489175919169210866478441366312944281455777491706915887691012303095162355495968119843046449171213550893250114415318587821895318097660337087268433609829709769566820621573367262483992363949278079625579323723883586985039785773435370811858881304470051495567845301479165699607620635908531161520451703173842017711651643620489485995037469609033223943345422399530382515188796647540925915535090014147185822031744441381276624298299853113628950755684000898707705793187366334515581558745270009756423296768132895870983002789731954528968399646735560557754417619633274040482954751249825039724759387112274580113812250331952545733156567739949947479092067131533232801267408368794256480878861322741014866525849128000646022329048463101979477982860542389098706382561912720262618317641978932353085283490197682924308237816078296088824868451743036829327540650900404934821322265350433383951753378844131946690619960917363838009811196880886852218537929205440890018086770411959182642545666730425721092996673510611286610881423080392051492003738081433836160228550438836113933281716453651735146905592309898853501100855261831066588018390180471509411182208546480883893760649123479854889030966471046060831774558413884644859627330789366146333381939610344655260929023350608084261350877014904532029855269887208897584892414978327472870444864736344924879636380433414542753933905887102139766117060830129707921434112964693467147525847078516027415423828850853101484724204195781961559958290235549680681981781366442570293377371390753104527989096575543139035630502993107920372655163630729175297573994288126923398068462263347986214593598926735108290515732359991427566409325304337818417880804736414691829143570334460104090273822994431990851392426684872440710956179912361033552602159232482369436274859777435677566103454747421887436270873590630954190769113734636893309844481924569767829821775335981328238026961410713424984726351866204268884056982637873255789792811813030828947464083175481986222593408117555798980182249258807265958720427653014266152860929403246451061305969683003555948006715118929009257680483590601556331226916487937916662207053471744433140381968413113337907190359668051815813900317862594447447743431617495398980840610685559210262988695416481522936067722076567578489468282354934400950452717284493191145519376796502271298321104712889132740674724770907665649197824407348490165863886414507283146843029587613754030303890079429502414416752123365980003386533921044494456437535688715028437555488710195141807564770026713138543977796389046728379114119827602099870168451640500626608332621938327923240732023859426241299074890992079281372044156041576321783474748340717213011837103133141755812660450905113321889474989450642221225674679995473642443875323278540987530538346309531708927726563320883902886166023458650405021696649214170627676959042014070670733672755941807720252493718975110916559187885117318761039508279752333387342558946363462616951494323498349106958313797299531778900661416421257328030360295098393812585135956348066547877139166580828989160454876281844603416778734015850531735468242283244625840283953084883330938082205220240753665974446983415934402700096534263534778937281768295868518077381182795489936565054451972454968838518603054988940109794887445069584776013414663564434488459320269868106984696406082246558338067997279265267285854146945165125963368056216573885384669600409286635959248966762144594881649892893014370844870192686830642200560698850795631268854886686653541105775529587696439731140955887963036384954845855997807159749635632248912865322856893647081291325925431934007185393891122302445495725261164099919158356341305709009463973265635093203558147664049243086288823223420535331816902267670190383349998208058400772420435117199248403115556939126801729131903537754959055494096106287974223308090273169411280113534954589028391185850869840263567843764524312417414481302674267612108186634467122186993762092169635692577195651460499064534494509300527104272033837804529789326155925357798967595594815949866008280327774686945984252024119863131083835791495955649109634043668927990580262396068236531845718437362395733591881340249245879928540963856380507812993989732491387356448759171430914967153491227840639754530036153442564336651264133389639498851495686996248366801210859005339864595220557253654150118148993301673779333542999708319790379130042101797152213871198013522754658038229904824838700924626683244172809809325030236246941808431825435249883129258721006585235979649611829410133018749565042511207573535554142165519646664408008224047223580734243951892107548995010124816219793065964038795688905659957370741213797839884111585470297494338813375757443859422046106548290838937814418771477308191826689830339166158685063018959235327358940283846224637434451262354597542242339398365716335110848395417795806317874763896035091277445469354479223197823863865230444616502304371202612004785140183136935865259001158704835462645759830542878350409254522765295342229168181629023431881192116685363398955976594202331849418372785570790460305768887249578976447360555151510619764658948053858545662784843506529745110305818821668771607894505654854167402281808972919740482831207669543719238317223718396280926236144160523754284373608302905617291716942295169703617427552594160315933418824872449688111043311062960273424894728478911071275354153394280702919533490822794246210916512008468721718047740606355827480114831920688731495944456648266468817078409142635345761150929546079237016479435997403221415018084365809608640566621292681388479806738301420268191043942544618171087291710851753804185564794880223711897484019957725734486338661636164640689234336118433936827968736030678286636196984401639188612383118880837774707655044373064086757570407682539652915494369430723860032568937233329683220219905234625520462191547372641940513477713511250225868368611606450278164363190374554722509787889889367943356041601583309166416052454421941100300344141238301626963357020001300215104248061952621080336358187502451674526966236394815908841037733984542185312331911449529820906087665473443995661881932452130963612156454687257891432483777675557863549253038108878373751402190367711032798116723386156080145092771299325726192920293820483057427816749372506826325021082704608152196951338003704337821371573755960805785518073618998947353280768378299708132290688826803786930258905737027893700199172053346442887207543669482298005396389280355680410511079533814912468523079902959883546113738746945386365950181769109204719982269738104167098899690561204518456371098363938514512075922476052905028665709762885473536993839541549256301976394682470175208524633018495184351928230261890723562887067564161491149281928107623010771106098820766573513811797528187712049684327728646121739952017511194603621312190290125934110926322196425410726806052116989505523872372239889349118130139522820930475423955839236124543935456061795543782307841818549683677532374407920342963778852813564781185190733705081611769405455274704286892813193637392093726037946978621981235831886363976627878403890526426784572371560271146217438607677672715375956922325609762198417137555290920950314623598146796433311488796601523441577036105857970479655233314487027436442647994564127461009116397056746783462332666657259166383960565120412660824522444315247771952265129148644730480382302755724846307310838155842634308519514271679078796140199502669169325517230414070852161561397896533234204845864380564539708503201135193320526995081325234698538228412906253712449809630062647390399208078989480472314373930891103207963619188525452072790106952645200515681136608878346565467350555497500510866539679548259359529360138604105333670374652345810961730846513819015246643403042642874871081086735029255289561600147225581730328799860076078498108417341613685844776000927868815242243001303439725351563743822557453259194605684618493255074726101147883075842798795846655863441927618611489565849470050970660025539490139498183979627948880713285166716958727700536812647360856170939175622393112975621013503535309651384455698530407003386232718427907329607206530140352283587812689486674624376556625143009441122036172614817155472376128882604160130583979272389896020332353442751892639282274988173203258421055478950828136907313824901558181251569816981756370203206704800087121754904857484047808280231337912540586722682750702905918402324505305883464204566403343451821829082360420770940857007975147477082117409149769961583942484943660483894159727404190419610952811085517815453569471891907996914430825564193402156931762357910928407181226001673303341310265831340936504914224332995449439414145494745788957707020232499676236436727289698202606281010132327433088016427471232801543791631291973828991558150305201435632958486061207597676588614234569811013302851832525003233481975942103593264916061817485814494144020762204681956494993949193637276726655425899238333820731710135752358583301612345540974925316336302051265175124992575363543922596259577834935984172466517079532936951276876530393450008190338116901343827806277430445070164955610976471265521103898259777921739295229307165102684695606859985583085219013264814016087511610955299653379967837584299424880660016451777457674542338733303509029784575925258040979206912705749677820067929008764933299133062218582307901121940688264425904757107314613608912022453698076036323284908909558119265774475163629535652462299171725477380232009511123228149331250551225193972342329840777252217932987799083139687919255083965437735104951700745361272012183225249912193006113007877181900724340808045183728217119954242891643513471249177110328098308799766788013453430802277040184390036328410011139794729224840808378839084645889191469633686457605311165260176746574079524422727310624443634308717163618277805941459906419453339165682844693196418979043349092686601796738726603189557011314909195522036628900078064314135550992327861514901380825559539630258699674291990715040288673375426812822186419604195350501582616384344972591408387208365949717168975352694933001334765425199150005726533700583246408310316140518332929370139364094462535430021165938542776440033297827615595841162694821369487306479434102639506214723098370379264128873614206048417689182887365803737779401379445359447677967394919381983198975070150544196027186756128100207308244195692464825904580460643984158077230522671499887369273776746743049262038048880146611827041579185896139017231500486583313008124699538770371434124978099302246266530247673457266082290896527825507737352066100258348808160680500071249724558466978410937427371309691552852997405804484831354518400516295709182452048643759383216543569243193250364492836942323698169969370135993462613538430652003050391053658882783480706653341618289200663300030898986172210739356991745748473564865193631579210010939212471410153455372517035958016107972873754107713735514590221003370540882557423918005304000122670530425451328449363187768295502449193936012924454831390640829323730227743422342740483295334544254236620251013024503117676877100196987508469803001752433820128654214674988327701151424984098591130328708209935278724975509006356961140821346374294331271299854201727722596071370755257354970605795762300717379460161666337492935237144447192916014197734092083577809272848289112706257518335193523632077220783331995317390766466805898791357960283509756361134807451203578852626341457251681890708308870538589216623002738949785402425200235609003595611810124205819034641169774592895549758617207979979083457789116985172951025811038110399553933409857872271516051609863914234606595241396828433415114830811000693607666137048853474344234613921338265774887976209913124280636390338868256710322775380588042067302480499421610504630679590166530041846620992784011560554920123090140525391209449904902634588064286123348183025143079430023006858068769892091133476073131956316858369671632726335089197219164195789218985658039035218511655351557155548477458903693007370690379171645590574758861477861312485338608362800490642953739363974013260836151568361881514594994673520190709709451238777442443362011976186233174045655696809587921229958188088513988817661161242983376914959240864739688199212362068745430041360637946826280186999539445631754835288380233272999981678060291699321582923254616949920663436875578579713062373012579577928724382094080594561783767666702318190848966830590352374383613387711445923802029212733700805270826936743483860948894267989457765603948106098119363573305875142243809121411407903211982461691819061051476610475634340983011209094249447510408160392556480614017765841778858767001362981820960797571540176578492652405739212186637891728031214907251552153605320006426122870767103556514835437041980944166433068133484975833603903917053212529033259048503877201162065447299267451238665068837666195308436939543286369745414410528129876144074883115533373956284782804691494470181645759765321358804179348735439407125155930297515162020251438778330053019938481619469551638330678629569781639504962167925950761815242411855158832337277918999780227655124916485966997336509992857384839026273012482032992660678864566297237015859731934551807983677683093898551256669478429513376566286509183134402995569069753331244491872130373367632432479793562528901978224890887087862632931342201583119451041323922226523450116666214005572688292186036699318384980959469247588361488907908752654004027929531852449404452883769243842620628229843801068641283062821435763473240700277576925667895872679815202892335397367023166039771735072211618921323058088518139177784721542742167597489649323826102803522879106263316179004273112689302381039326305774329398367442091849345718127517201079678091204375493784188923013486421743562399750508693617834431735063017509092430546125664029965953770864240737306736232427692720414553934494914658459607557210304258015593812171448212452577045648521685782296651606558660748943717754223816341332569317600933673704842383592016451052101701962570990077268004127761609072757646313137638896278793746186953336518743830949354233263305835145825013765274919904607276480408797320694477376103638051308378748262230152106017658944603361492406507740734730577786120703252968653211119224687335951142098678350045557482794562672541723918061478358551584222754036393292876275478934564525482410197342394210310245984734113490742977810211929700226500951834995206621725772834797910759404313104978549554197727502336870434687638436413139850068691853406484208966181470218610972090418061532704947059296905583608470692800756390924397576672318221939087574387194569252490402991848293285239852258198538222805981634692726854876183099934617952308272896933362831638647403215932803094373004994763886694626793460805082446517263343535954101707551726095745580648354555158379961998632634670935122159799475431136990379772041327535707434508032484536789729615698759805662290232701751539676027856009448166148802508332526905152701959446383008452902661899151875177463680911103080410403947885419448521873827937453822790714459836208480374283948258664666480496742757685500706819216100321523484282947406100242896338889157406792291911795216844146985115559326031465503611837079913567367565941905224220458350672006809871423158212426199568930784530846034143760440636022849647951628419733022671621305326092012489917056758293131923195668957921898587089314945396985265944578846256999265305286753383403411599390326934166337405793009260142504627797371532006283029377193854577159209207976440621893682240808858165644972744426146695057355669465078934153997144013354860793614942377126880762182491340596981477484487460598884719657199720230642629303759574241986241206587379463905949982845094448697473882097767779509229946125321915169031298751015634896169972798975763003920232681921599506368824998910530013143816805322423948132952755284063254326981371555432075255882160703641566735122757339852936438582397784003706688888832824279460047871605371004006040269135968621971939714812131249370772951905704230974141290609900431895409485655455062103354412830146549023516738076271861681108989595070440422748308601852629589585639256572956660378000706574583105799564596809751438773523197980266391182764259981545899626846710234340797339339516926391996670917588345217292630986018953851893026806970530569538559948441058253355977175159257659331969214044444666636868737609124332355720231435378618590807059800936765600613917449316703271901558437814085318299360182584307757908377217792590124205893836439036689346413262754525571108813272000730134451023100265427014798867577454117252885914360423495820004023758257273908942757666614062135773279085343546133287712047287933978072224897918103761213173335866601483485580235260690423151708020598372311331223173697578169018651553782325983852803899748607584162809786032506361694530561446138079494931792120287897824128716424638938186200719011868930241491415961660023420244667770129997005613598488422726559679520431660665676742267862906659050788862372873969581229240997967899017700134272303991271546195255848810151659864944190247112767368758820264824321594102303068550246210730273589770166319709927174803161084884243433897355527835507687518285476343233627284798448873442921372203702609727614973576905271895091323945316677533361311940645356549179820605376783029661194942020929499037904154922807588825163748693690641427047781015601338890888335555466130972385429908061637724724440128181856108540715577630053262766446832593054361794200019838417830848574456233860564165705913913041660294953614798787887976489270418071839683727951284147432471731820072158119551269580429729915535115183701177434681296034194470643853661718694165028542690236715311509063276524116442513482984064133325837425451658016112403656849498178901047986602528556745341356876019998143702517949608945611450684977987541699497921439302134840730405798011247130383342869748790330823688531776705380484615352593794193450382022392645454444553955046721434944872338468690245260256528808367041132616185570877745926188299122958574292582485827509178302221959787540929153304621662238638448785251880939427942564756121873704621179999573376600916198141379685350733357286239324689739699487610356965898871084704514267397596614274421070086326656558589779553571322450179447765861112677011920598477540291875165286543632515167452341437378909136806556095176258878495899573124904456022690066545124630867566424963250355159108175054689796329315259199853774564438510834924244572957120015642537715202942065605271495981230660243171273428463745414361246717100061394157647513167584947507256899111916307326815612713257857604932919420518238655609733936744933664981648387186509496115338854316854556895811580787549116329301656523735858555422334286898478005437212349054748108971076635915127216355527643066222419210006899476817339247963530592162786090287951511562946687790393614700032710734130698933717376833211975170250792156038018893491648087710776818690211092499292880747759818362191827833394872186477279083972884526783648260166854320562262022840006847032835373384629344412194123683040628156385559904027782755464764043755809616072296580381278757613044251354950573562717573777838807819348279243374378611127183508707813894674707182446519747013935753365408552697917722348824376684838309455661417648737070363890781337323144868878475780666681550518208108136309760137747927968768977382108525730658346036230231434559839689981236128536443795660521650942516903529510523514735820616374158659891495661770235094735831691001162439241075864316991570726104034686981473194415685029570664110270058422873075306582416617527705507757395019985754714924896003267854584414779788932545287320886673833729396479982639895375121402433794057758499663587190915292900589434145330244070998717442517230413544407437958487884620862296976958700473961381199120504080002438389303256556985475588005078763218858802367201892369454568559491403929883681347272592609541177134373030592430285924101745533337781061010964998193187604994967442626012285001907737505302764966814049258134052474255690038435472143823875563755120899285885797973029961134426414301412258199271799390085335217940675508180209321985403932234888828326874451673735275996803652437288277819403281277620623419097197867031243701617215306347152529553097813048856281151283415171049391032456054960687227317609144095367855403052092700566853444448882248196274638682444715833317620790768150760199925185780487660798905214243088683130505068260427396164286759449111408554450519497227199562439374990157625331576355935685357757729793115766999289054860112341005252412646784367838773990058672642496643117662741055653031514493693791189932490656408176264505403584819052049287335216522227389500525470018655943026205001825173453768675271049140128363758516281056398303745783514035694974199229069859816437278497992417180005925857621272791845984937187432524434498766083880731609843958175235475137832643554212092440131359357699155779039910070070617734740898923102818357717928540009209473173547812106783415083135453233991051623342217466021533850746190491774051936602392034229548026944116670235365383359408880588264965389241255727937921344949233882402529048226026073208968801159186069664634934824233990777898645116583302631732068657138818305038802018510161548013421558397674646677851401684046669781968812110741902445614638627128031017297525056927740732979738622937120717624437933681042047290782399706796157619805556869696136495822663581927200954954560625097371245009736636835875216932992159451516243304589636025447280754399648039164292203700920353371195345891892836516137235873681468106573952783097788880411946107466682566309730654501138507401032799734584736657149043680754673201160151187582963055000840733785062555667119361649899975900406719184475511408310750071825074585260567976969871792775617741806575815986251324264348766975195075228905683118325616331939082681156999815894445750699535624912294944597611184117193308323196557172176490886327001381469401959505243121771158756962158030136281353455819249329761908734371878082689814469971586597710973350982203560730488542824538106847046986234737933761901984629765547407121003258301163673133203493722274321372981576277479727357175714571380833596161021715151333803069429005428694043394225443213690395652713195266100362606561764229560727513804189831610987494957616855088601289725843405129026561938092036337198737580483427707328791585877301248248943621432303558367448873460815276968758716484084721198148477639905647329840964989717043570925343632677820843799306297722433822384825409478455527844471205464927825859325907413179921200345726186454209001390723297497668100754210022968617456808201478899067441091671474819314648331364372865945674659059090003914630301627541242197099745755239834262222112063225984210691476309169146640875739407733429231664458786364529879067390078524005518236856612612298914419786566661082603988418274852568186660157133053002455805257790547480675206224612108069318880046707272379600361310361718487998441272458641670503409216452382252762829104267560768556355214932529382281884200113747559476592897459289496606191754827118177441725712209851619587004743069140822040380878934835591049292420129817252192772417551610167004613721022275211100555891207929600079847512310798305366133042788573305378326215351765987482878933864598456412875900972739726247052868504370600334580568879657897260598941561521458815833236019668340469230382739476070043140183380942113348618114248054654671092013806314174441068492331030633958447072304757261017584701376338919125086539300516033633873604783083005322049641590742850200804170322571869528451702697248756188570268068595768028993187739609140241791329755072582814306754465469957068836947535393456726540117159145666330530119376379411112470028903173530680218908843122037191877907175611359522064418157295019005837831011789133196737066757244262016576343955732395851912363640529094341420468118381318848787050509112954729471588986379612708978315760388012152600672482978957698710626668244353966383140677405534008130738902822059691064427398805015423322011294056226934610773908091748941420916937064658696551474255178728815884493829540539812512055419190591909036556286084348810082544436426663733558185478608050879627048950640774458515972928119124801642624765266095670177596042172270080795339509694823493492699635674047556434331465813605678368133155432807308501521695416882611296990611536877774762732789623738089473508820273209001288812883292636942109841163602808849372726427977019364541428962205961822496467368038824891046780621598203600632343125013590234702831790877419352805183513608003208542837659154568064340113869248157044680331966787986452115711306854935093716717294107823089131903295503920798874417784587973951139383525364174070011369938384263090472378025367595655501339415077114190745309270534119442339773196383419176038543701894582100594516863865806467587484334171022390208887907379371972937550723482812540331686744548739167826088160567124931851390413135887880648233792585740667112897928196613916860753476320316760263923816667080254835616397249398942089856378989274691909609436998398593232251371874125336259876657335401604435010357893623515996415443159243355917836186649890885886036892731223655539157812432281946449118068208849956387011473967163491997904627851039704539248150794036208366679177112487271583046866452488847629558525294859350103441542804681503677039198069829413673056229996466976949938371660649162238379228606959469387594658923186014445833761062673287370863770193584137034009188290860584420585266288634948493345200531203500096071918208525026724202032170641913029301068183067484277741794149169475588630302036270777216782461922488084207035890265859525867405535959300502006346178621088405334492517376822110729229121722085077119674396439133124039559640836476128408793432401850318510253179284891984394537201507100366782973493088068189581303296020004176809819916927862323502728282038159664282938114837043293193058551666519572489994774353883611523292786080426755223875552304351715979678128329472587002322919565259644369833867575610818852292492805528891440899012203168383075587469520493146541294146059874622684097391917816926715843776441858839178235568166375600362263761558071119800702880995768133570769819618341593745523362979722468199448517683136367611659821428458327693941990572072277889946969561295332635072053813746761846335352470889993392660188473999124854541728795155766384626464147176519234412801484119564000363982140407736822148182619898425865526687410619459844756728983095121827127821895641604859758352553914429754864326063067715374452376018144845324749920613642365755571649775038946618597487931167442814594168105508985288029327960831590297405606775640213751153516396300173866663498174261806376716033317934361144622098397410032733562407486466609243101950811422595018009488375922764861745024395819415899879243525377353557951361464008359837371719981335751910461746592405541895794383352483860898198027196233586165811827448809640437715481143760117819971218551510263363723790102015991884689136263732134551111960489291250057791403611375484873532690537399847894473001865510285438879100135535455848828655492222870358186924964461972831787973032021534170134032592998132873512204680602706093152112387718418309463424278394548302227564502205114701082295491681150375017054116003007917197600638345090525451633268850275810080138112677345002318983897242080495836636213870256491411206373627661074255778680558317094970859350502885786159369959181990699877259930539741100917716548349737671052961059146138453450098307340033859953553038176176615388929818248568096996602690866524702031344453121142494905361001661112204374301206051538036953334074857854219319678373240981726013683598669742162685516350242118849408869293292969026858269995122085149334614221118078931909505790405954513866333533761179966170410317979971510258831944833247676247870013473738117689185701259851010168811745077736484281621362714478909894664202617805692959808602789021366246169403576899288410044362597994771960955622457490765475234894551805425063099808491338076148883939242633539095081935556032362767484921215911009440391869828425110023012600555601272588243169020096425300942078645257090652557947080142559109316961381089115895353536341055574765602395963153164810949422804822435066855713877819690142231868445375015650077659762273819915002097118419658669830321714386279330391019249452981044095592729353674540871597492215539863186506014534053591597284842412580885856350905769832027147953332150057876599874187613447984640611748658170635161918258491269408301502392895243948100888482721995968005168549783430618973854188647168237129376158058697724292779307812410821897716473920231061495289058349094827372953896085809419480979058641514934648138388447055076695064769495150339681880179291613332114185405076736008292471960223261666725481881417736523099508231838364332125258685844320879333841575750793035260241707080420816287961550502907448694816265626161791060794941518065290585861281243534902458398820258701703271607411570186594435724113111728878508091046432603702823522224550962848791535449612633495298287029890744851394679556318477184304886828889805690981539663909212606170044459763795344697206448743125247317148793555495184015457605816150701496888587145431398117644394140456350575032750521956507796459182271422215995263305178558524549812677817233420216503756629547850104677096001088666226662601130870194781949528125185981217396814075765632359253913765600316202442252610661672614257255361755339698587026963030433391184241356158048457591379633091399544463719513560035476676040885992881287051187751790042577784226341404394725195597883631674513125490596902298814039503433667004028768873998891901029273377170746641974785759116496903953453481384361326350948414876433773752914947306767086860848429459602882063375912266249710864871445217354874332274127445804960027393388599170662621075088335065408235272562986023996595742408237235777860906621189830248292300053931725387272289884909133619383006646713114174776412308732213460387700003387989376658535424758921044371982404089381197934192928192269479946261930299251865939805503595726243846432069289403688601463621825591079501881335390824793085392190273229008800328864637848984881822188485372456221964003222437786041193098963467753379842282792673571385813624524035592586302560989364466705115698520314596960197457533092191900528220732790586600379736007577466169633616479466111602600423901794331934794799680436409079720931634641440950776248820206387035923176320387868179235756142562060940951944147672520166319314759208832278906886718075073327218141294974119660813346544624254578492823459465397501268597284904054453565109520655178796541268435404278918134248598066666176286156292589094452784624877848701039745003844882539527888533895003532443188117837856256277527402137969320161195082460721080031792881561420945244989779985546000431003635905953643365781142575137018267383103209826465126293488831292457114168148842395120515307147211204488434319641260641146476010788846499384219626168756347563331762188101107963060455197019177522691965953321545734169417021940035412255238325305878509902252229224639237927904881786679142043100608621874864888762613223576179591507415718059134318560304183893539065901604312188495456968667195625860444451498399227369615113684987237485204058908986787010316753827629070577552466760153608405301646173353462706265982944297195300015851182025875353715900710359005471482985398859697710533340976992715964329591408259096390623753383638303379675731864849919251345770724838752002077037605559724469162376985039005321227188145377394792226565079547851373305146982907318108385750442382476553721416044275982021924375859394789656923646477572161163358377755195817644217711327969196857447752082134673042563905079636611182629407857257112203064412597382299263585158327093522411092243841488548986873185038410428808280150316649296608233011333414090273831845254550396570567112799030404085675393969943727163378228059635765855967706878373039569492450338857493675639469770869361752159796007636339625665929810425172177477459709884050083352098301584549433275956692495127085542040788255076535955182991478271174483940912521833504279735717631492659203017418523655261310052673377760344207645666142676996265757992820168020834219230734654914888524761096949153029448061705662222925554210864925231745522956390449861588972945752955488591508730905366837456894776675143563240618637899500103455193508882585077996859747568269241755079960885599900709643873874653315316044460739131441072083147321499082620570127918416139718116711669830450120978738651389140567659706980023960547857466867513000394473399946315922317530120478867450762302985627951366995060731450148201834425418278867518122171835626576331865533083330025257352367073617157954202820902976167822370391685199953862752246525950109556350150133203374241602728792319758092005313809985514050854103138004476284424361124632356384557059716650527146936746073895616202955177718379053883337619739305053886320195862782071989964143357956391806813513787091441710399324260630308583315822744345803507567650888736312138885968624340459561207055367086207635022439013823539744261128052579139579071053275808276471264565676055214904939866154259510884009851975539077879063348152172750937688727160322736799078488092415194212313461477017821396563514303020515092698951146198319645047921477847203973931625832902900573209922398914548251297800681231029209313350575700580180955909112694230699481485908593510646070782637175728966865856424167252067346349682511093276036411911093946052786636991734952252347728110412196026355385794804914045718272435840612400896833311591854437924964722437864507674932012974149037019051177074662354064439536393334798396959736730831492164647547726349724558634881704171235878045742068833739737705305473281802430736409919050678531595663206597567166005639819539583283762109425965648184980612775507840025049947098161871409901145304780112681711146458546445773131484593512825145881706500842295783840430537227607031837028317889092370270480925518426541682100003710985767967449216212098885388061464767515348299713746132746187384576231673041840391004408916111489916591074714458357333742818674159258763963741320277671634005502515145330923790369293106228438002955926574434720016970574889559658639586431699638316280359939291239895568701494221562580342896073537541540760302786629943027668577704664152982786297227463244534585589830229599946875864860158972566298158725353946095630809075892518751199454616790128709695257915872884221201997047280697992474468422244625730094665712585752003270694094551481191459663558426881905280428460416199008891695200570835886351643250695819999857952210012882320064115503150839467474913824606669312644544583132747209959212452663095338792643239716094164988214573398474099250049702091459686384309870289681708720863911161893895368971619285069799627926378662555421320805363561728841490674130516518461969628015506669945017933638565991295969456916467944443148344647541645048769205643467040698322763090669770053845686973622059737562802742433783005130551301896611607037878421716891233555632762600214689555953130124747863011863542713940846890474842233709841869506514740751120384068266599728469994215883773634115428642934608492143618087469477022157037691770917123748440313366579167164879296832844550103141547791414758068155369311379729780552251077429976856171914954507974732722450086006009213174699751572493671049625213362614571103402608905543886638515068812326567672505611748217953642269549636478837196909721544231885173094124990519086673815973307228184425082753405161099886293643439086761125412989774815029037526838883706804775504888605399719235566554852005892064639587370121289854903657816258358287254669985572473480869326559602314775981184811490774124988236546164710727292549587197119260778867763942114049413448985492893799207575752544048955858556882612888478823968275417936165196739150146381615635310799034124202617964163453194320045433612974898133183023930226788971387379332338457045212311664531274021819915182202946946350180905773271409882299638584035889448102298696013577163253707554068811689118552080564127663015629090417703540563768764779626808382610653656525213154429972411233761649092843079212195276213383726374504879042222813860508390166142136322630697118248368708786176433963750438252103790632409043728442903484528249714222352933473097964475140842034128135537306070285090776824542390764827150406035502441733259361547274947719496397594490192985815504234394708484732468498958498067868020030377973868627916751544734383158746230144581769938409111123622089889446469022272395917756421984883717747184324518766888461277383208700966143827259155521239744958486025505312738275781988272315220759242671422272286831897476749462411555789249689275545771766411270833613747233144523639436070415491020767713508748874700677102647939557037189096260668724014601345179836110031067532987184398869711989058033637599871301591536475550878739529215828951213444182736281846240369304843755470366939874206047268290726370726058176086917815752300300315719567226524924553782411771069072936571414618001033820295291536417371005451178331932484734530039112811636243783268805814963998522064370816949014812619436299487136968562542013157931896959193414191269861183737513224327187075384375918535275888140258336894517834761346500872062225681231838277581391789710066975474835688501929455057561820275365158227853271261450178756580782782955415992832335228776404864624728401375285230103635283561822779641236940013422444689922843244685642775760913699805221165054054038883931391043194990884017492156383656531022214710063121979158886121251926451965253145072729046797252564241468335399929185093100209265549988579876627707493685718077987685451466220713471167589471804251065649550231695789316470279759807985980339819929850537728817667202370671960113520888297113057585105903742585033197810961642533007101034976513600598679201735257660931355632597808958207263082945425014334062204465569050922188860887231767288415786695098198149915017605508387252441573422131270322635450315072144248951092832192352608598804538349317056457577408043130500888835897615892622848636517542901516978946621596538319645479944327894409793422136337780104563803733776521573852175375297832607193685177444194304393282677921120300199998531257068063316712615655954218512920046647510999624511305344369346580909230314939992823574507151098259808408327946962013500924073715902586153575490636293454072186384828882298680246820755786352288471782800341963834502646584929439506961483645752306742594334037556271985762993847275515750376348149106175433693978088225548507997019227851428892951313597243522409549687544012361084626500198447528719198987972898409878906684550461602200406632448186530698874570196167062907125043332508711077068935720909224517949727118779084190525139546422989200372743544540812363672863842132824010516663536227359940173711522987992698513908402067072248137630841395902054399465253650451146924270549929466628781068592443746674329278755654202945321667230069295876948516517524287783302249189562513153133678896242257102223015569418898441585666734203836781947868916704459361318248009128285310607851659243368252661352943207546864066427807622574219014279314127662109832486123950790285213907071187717940911045857746356758317752449560839051138508017553769468138594786135286079396806705732237058485001408499831980983116009932819361395121463685691126979250237976080798990635878968079177274198418833593744371001014115939056907249165159127840318626223241680974487029907045287593753143467158408062878895060416292943773478710745733977321092980506362500832282868133900952216909833295834875826942644947676451549673458445079197549632766845899437080489552321978589556707037120264595021519021086148337792422090179928923943377821677152885587059998880002291392991723941138715454729830416395712593356874288084407607499451002550404100784440249110113602302693892211517246234804430066683023799808174844418329413384745266329714805348835973244017798287856301347587054318064352734284338232609251720426218646953419540960090686414286483949729108369110775950702947181043165443866790654338009143765927128805488013779807357869315699330238831216954398820026689050885856159312811147533664397921817898506595743815233698852265184887402059573885107042396769496023969361298692211074632940212933008683060222812381734071436714418686475714343289073020596761314384323734114029702060294567781838441906291457061781525008332481437653387635370915100405706573761336782244544355410706948915422396792904661619919841187110598837785870938224602255738035465712845388290864105666883232137430161044834946976935572590863397299952817647021739037344254176274308742157244820674090889491233783622719643223313660416646559799460491243240609824467634463560864794738214555101078389487060835663813983035239348153770695344649633799681970172549885310639881736420710525315116074706038276211021993590092802715348990176163967024984781526931594297386942166092493175992257942667875210737720552247555083092461663523681770343066233544007294791684485706740615022458012778999184089771796015948226351747209095263989271814189345629658798486041051943185020924804479889769220383107167859268211919361055427157014144982578849604916182990295513949626810247898016149996056237918213259210365623450306008138219659964726608607299002379397596761101055605608145251168011300514487620851667172679546073153482671517984214298951967213929265864348961840529579126372702369846726834671243821771420778891052144799380706745019510431879951559735135211625059687522617175972474122049146186816285057616071839506724420219855659239425592570484300129936515061126023257107021844069850359745806336650475154764335735521294457644444578055911471482303434541535646598518786650305731656150480848786121577718608147299273084075228394609993123482158027806092311909703161939235069380730967512900376165547511376536145235549886268978380653752801155835243039417732771376470781022506963063678244839834176065146707896806566247705707663400068969921259424471256256988120958114629589051508540728098501589964102377078826456261108736830921586906951012137134508461364582056870525574554678995932726260989740562771009174338925238541574856833276780377669541392183503665760155937384502748045747779971979228203072392074092724534876165269813606019255706951982673004454938286250009513993323209895694032218978574993957687878486597811797522376707266529011818787590666398587874756190860567497154225548706814665471650931954577030960873016270117177295716528054625649512162234002851779580961041450153062958118231783915973889053000419470873353986050190854313537419031808832689896022218468008394307747324492065326126215470127295684538630442223527445555819967703969968540500297954328945884886138039912650532306992456318843357165293707460516536401030912596480413794686155379719710870737465736523853244772099491562058495090200307761358583008244031037221071725965625520236879836162716075821000104265271789281509251053614675503719343255263348099377415978358312201245684962610455356204899379454760196205345076402990029592484321041985116242289146753716798670225606287503110575158481434076548868907182915589015111897340623046070213939957428047442481777737869192348228286105114640362441788957406338389995423399815278071434958147879100827379654113740923473950223560092608159281661178872731580336318327615090530825686989179352114681625466200422526483561295014226452369271969573224234544616841714224881276464639900109511489858884013283795890783402270315157429935523046648063689500260994608859769794426346412903049917365017385054873021272455904418058054619990456111168900986010633965436592331591695797577313177988070081249884060754994245275193267206322350141738445124579446895194527195834718948950577022332704686539177667244982188365667537111808682637928593891922964712366275760599462712800310009584371215100372330980868902204135437859779354154300159460499126200265981793120576599887225505642603484655146221175218425963261036512016332249343499084268787784296395357800684365406639112706832550897318778242463605348153699663349977533521967488587132661900857366993246023229725868991273815238105844119303409642994520146401626536682703668107997225924878306293346608324192854103314682753603282275545651303514852173291442980358447362212010713717853119188795740636453401718231522692725065100949283880685362829704285508588159895209809111587951403586402566587764551177531622893647050831539099389511612879956412577124773062599809927961993667371115584270442947061317885080774579245682466251201726331366577672502879491558828253908943206479372774158211592512722696796314766651561565221030925749928342062504754966596636077851848393516430866433469700681721983653284833675618310179525235500778296301816264818244195712842789144306005890100249296726803169492511451153912796536534302252378435351413605887448426400040786342739027045497143742267903385069533458055006638573901937822383100640219922484583590482958727072627227708727786786567464160417271324510747146854656056642790742873766350268079276491151505029733970567976267581589448351934816238306494215467517673417688375741599868710303186645956005933904292538085585979717506697267185507300835872777114824712737483583388163666306132874252985473458371251804788711222375089162341446235121436989773813599571632521550037757884113873595075823636416248448234500760493881220707443863395442413870722356131930158482643060071755179075961501924941337903267584620653296078113388551291072799596835183847902175583507665802524294404886296680194371451034881391082598122559535387933853726892998341863037259144736144433661018211476942271076808395052543167669720019472382783213668694070065953582412786070570422639584076670069436052773122424898829112598969065283403967983098781744539268259235997846649938485972503200555169935777406904195287773685380536192809751141918927589612651536939338517762117311391652729100711488795028598334213100754093548955317371155269788336617899606002611675678859758040997161456399281709862317138737482212364949884389415058732183848163782242140749552814484535672336942213163051313201226442344297665078193826882697370331311354717066124594115815423662420019374914516479933893451168062426989991442037357971503161951437177583597006947885110315252699957382579649333949651148772246649528387652268591223716901786665791938477788555175040132162656573006795335188735715167428073364195481093474266923397598423560481441168416291348086400918845292181417665358016761526621419561526738188932096249295003848287947514652006624359718426191664740863530862492362238903703150295415740220420462821777210397715805939074423431411155525312850846539712754087954014233684954827350674783011942346641250496516934580719267950732648552806331096060704027105323806952776169030619097020843970147946989303528460521912422214134517484768928454262403140809743357351239122362531085557791629961671386488061183798785051618910114204949784314851246564527692379918100656245306302055760679491731370842397364463195788590112419960944157146760912314415098171025528569266884023132499119193639411952369210604277898264854398066622019716624032066771147896404409964899984272530854398864273693269308389879969420276370043311650533985325495922756571196620612354458717652529390985754129343601908417275976081669195418064218461100359074102188282942566094375837423360517565438136381661351974478105933868749852181992090167807466900130208804407513530249789509017675000771184961604376866074906603706975244862448133511497748344690598887938774359777767104127950634024944496121577698400991186010625934136660538733017008446339837363030660809291808912746545637799146142269466050650985816042016177498056774720249436808213695706726481276681860599590129717946687668515661013652077691386674546032325370108342900615496842879202568414438563265774448333924030298924499349802284353659527861093012285375851193706610656472158832186809856597739314782874952088908159158642316381926902462852050651458530791715022206972841130658762076260585774916685118796609366196183271552892917915877394692642942675415856393772874552015451290754941109496204341274529189375442282170250632131409676426917091079920083295848299007999358280837726639633862459862268226843021696068963000083962115034160600947813689442977364176169175573807947120266211389175857798445656560122453534461145529136673204607184250084090019152215411679245812037472428746754568502328644872654733146899034600357645799091905910428639704909739362805988325097230174710234161318217327361790088823488337989751165520021081154537691236195243846862495198053575775858898429147351108689604938607111488214521864497346088165748120093310253077171271635890941814722960429786691595896303802049290451571348345339420099788275075252972942210329631201674846723265955851825810204318866760507130419556005605655229527363900298374422191586137958829119010364133851990096846746508271183236326950462397669177381410199338005183902846815583997384976375916088814165968679163394863800565738838212353500352262337374173087245078018509799872337919105877862189816537901391591945212066887606190674108103558865696294843498810366186595759243241587547038475997285589175450323643211738584562140315890644594056084420201631327242092471394828921111136804119022568083478680747227199851285581937001707091522292531555975166208733454030802524600489799266738413187727428564823783334328583611419952768345373361270643503427290528875322002029178405024170610096320838490411996383107137531538898310720403329730058282221925498945962253643387046756384135828607753943071423467351974753678220230175202119963887280338359608312030335046485768493219186779054077969611116935477731215180716269667143866530462088817195657136081860186222183163705805802051941556889391528228417302544565862168077425160934923616601708652963098381712712470226122484160443127593813238172875110872291844813860962203192849415095295591337682527715521946217285984107431409955108642428069086153472201323798193736807566204688660574710925718991175437176011196612119491048048807037813311589957575328465882274680965181652172774952412649044499286506396205644306263681205941907319851695905360854072600381264217311372910962283238989334751260872017207923921681973294439755803292981778218166293008559449158516436020364392924795716680788817211637035052791224867141508317856831061420133289454233679159513552692953985650822708885774869603531365316988477232825487953947255416640610967253884554254293827209066931614174767374777759179172273762694233345396989108551469656310343558391189722821431814488609815215836578838655748727678339430612148583359481603435233334762036536250756301989084090262688265506355798992664871277216991643916614049215782463429535635038494447332873067700116295230816020132323030570536359285143204054257716999620061027248754813510097993713157537187468485041033046055853199214885665028857904517430369260140702020548563209697254537501870687410745555221393784446382400157538258437035396374557798057279733492055106318445769710361268783736880027065721688389205173577916600629558825648082281721588328190826642525286911054268676420823547210845601761395972845721714297089046797734932708912576863908094867745579089662727926602270808061243716187855570574280903469010555271626851081686111833427915830296019128092747147975906294848263497027817982982080823617509594459127242262077634091129486848505637011085549291341636079082592623561978896768561512071299574072090185726350233292381707102594590768517434878404455332179184452954488364373406682180227539199838055340667378183624824819501310516953602886653915262110666115331760462452232762809018796171803622747447207381026811317988244894867297920554672613275391580736332594739743292647411860404991891353643785241365625881717824925337146253324904265067407999162399473419070032319824784820159126414657035974442211374793735007268185307553983514423258363951354298606659430009164540222960107988350854688894134713752864967741296197562773213605030708829991176636940477302519854664630638084397250261499458174860875603265495034213846485811472986791007930569647597853025085607595814312825932418603660555187065245372997166118855564201782403739641931493687198335435402149878967243200227744721211666879845726345147731348890814415153635272275293702650660234698409023036838726854501695892290442633686963528727598661778357149517345108068628103683946676183674162558103211319039710266848733847137804321378303608468975067900899099889950606131799620228178274378699772947780906880281189390822623421850849815450983884335321518498091805434275724010458685465563256146326207364934030663520120559789774086683453035956474159906639218656629085805339958147791230231879909761079404165897583542663582537729490401859951049148037296352720819449590554794367272679403218206465829106650038531496777954359424250810415942623980535171354829572602331287226173516664868900429085223198003104011957120113191381472935733045106138873130913687856298435842230341463094290241239386479731154050610823425359149067193002442879280966305095323193482240959043425899466824459549774162270883111224362804666451806557028885297861665882555763210820820647103907195046732107733282065396953454631839981726845451468761221053566096666113583376126397735982907904573417875454113670896364856102056360357831669065693750732800327710701875479132071956898155987261917624670306951128136224714855441495066662500864911895095726376755973068521414055894015135361656284764364673781375305000719045083092249803706692341150310416482291873042716374776956949956217289515486194796807750762054596610084403969788828528798404362221298061476466201112062401849742364449913373958648270471289265948868562366264334848869225311306137406362864626208661935902777608825341968657307853623000285652886936776727585460483689400481938915857820428052676034199473693837237975833129939989924413256963128112974039659104717287298583795723210069571632953214087967259150936271562695449732456404948611657336180424055980633926124504826535309701101763776886031852095429339921898500830768725967699397335333554644933980566361033703372715156550753226811444996847497858757375896839416305316006318183744914068475504525783098617255179893953823403119369157471773231653718902740075279453206501818420520422917979622777455656369515600243974542178859878051590623460321660114286899844695158677849266999449911781526582253015923288894553187488792852644969458474610210331865385858212079122170845308999797346650820322424739401086617650977347552376215933328916481974502844826698772673360809924094821038899075391359230526129152875346681693895490329191301012469455298605047486666188895329276298060449289563873155610905110165447359816025877222108142355804942816962625597443757722889530649820657691396929960515371435414552191542372950553731781199891123143431931465054646809496871870007366559646935842760972152845544337795002166096644431347168115078834065436646692931241812683601956856632546431818637811754000619295973184203975648909785384420750579598591798265541947350824194862956211787336108713141124775691848431149526219751874781341893963959895059263413702386853266021983794076882120211392973976079743360050299310732060639346114514809100612897243990763939464474810070277893273803268397244663000647585447435483400051464165528161945847345418952773875822868177072907051962105673733119556463055946623339591327388229649775194026566860551374866120532375394631000462794183983985970062881614472364048595555473344216207297253224091679483180741377010741307416639336817751912070507281905512561314384608436059224380776901156263858948954037866038448320465762001935362656657121730823782008236239517844129945288806165078428443811917487433745650459471705084819330154801041066179074932064981607856426173445973306297651274366004426224563037127641103301408183925917031084645401499989480754974506382287245641398795075752433755159279393614684459079835606686745357695022349354966884855277903519925878163800105213153606341083686081895667331639345822710945393043103048110934239151649528750859418982047301861051823194065414790325256139287828086336217787934778086516291129744235095755093710003047541304509791478664841511583387559979912635315642736452250493894515683440441400264074727130973608280759694003550893591405928211051862501897984074114761087554173775680482410878577559236669235055347813418476239729496892386529631408359021193966163126437253999955790508481535984747686667828223378309999187887881967283477384337164769976751698090808425464818717753972840792413823395344906662569329292208304440445213718266986928227894227221306316248705167452258688592813828916136260285025527763723304949125377934083693505141743831591746353891103050220262677097125365240069317459849572229968334716360620932022131734669823879914617437572827719926668642084969748954219968188439581965302027051319839425292517931988040453586872503921224368942949978258861854599585357026239710756944367964426838793596907501626178486714948729883170496995387238747658028578091012277571662540899218462364530313531728495844317007885405796884707082231334985700736360630674564746213494938580880136337061904321354762487627118101933372510920759497696715363219417636257889284810612398544857706598373379232761144094149871702785389274544556337210264204290084756139322676733632022212636325551081514707572302919894309253292223752807760314501224575910012452421103257062926574482959244239175706267324985669816474236351752781344043193708580025921808786441899404500830330632386435357866210352529532683930197722863798588226702807884843652456222353687185799059355726169106865874079035717616583468908200241676852211375664361342993024350836024702346846807826168661492007678733942418316433131763121591256726545745876911919054059670511729416667593549632695105717599762975555740712580487691731235147837626776989172138129864581952232860326004229923412869223521977720892406007295941867875309997996733341836064078106820020469042723920485058800180808374280679337433080050838697166720689349390688783529236231116172883756295849575689516072351995322695658818050021665631650581642996607097036905055266305890640629183664741017900079972624816227344025364841790646734897427061384834333798927855480513013315798691777137185835514579066963409491865112536451732751724291695083580138255455754862936100016428083930107522946005977867328051960774379206968202211430536736376178077953569414085103935398720790515372848738951712197423620270631652164060667374759244880173709143508147854916086475755635630257083202760183005949414560929289807143216991170196596112598903475680966042100852760544590892620190166941658734567476014438220658857967633012669672225743588205625951822342706786921756203324756229235234304055037815070397967740760766427819636165907175495520527178452064026348903820363252277443444871336057873069347405258866213885728169915083223685895822850167185298413061310240413289006514693875844491450336172438795033290719560061363041448484184011043237535369902111821658334836666725335438708726564600228856697270368854359857624600365322702634358123108765315575652380993091223025747653091601657489964949382352900396279136156613739475328364955086130107820321504390729955621566486641850052399157425726319756647797013461263765613495818446283308126293346360500043228552727812969278050108104032775750779722453929974004127892489531473799545243890976801738310936580967373932152069434436396001206478010932082292720342031316850169510561412951752931478013553539936863723528794532743000077264726250751493854583463287284925560021202125477342344797724676276208440773182392027357054422257779567480342214169063821090138934861156855291923583195894456304490849677495589901623440214121101187920258617810343625388295470754300032399142609164499518717565760819457973769686611181037132913446690639216924830613744200714561522234668294338306433767035282788120982852632390759378159983438031890848098332715022029839566872170425873009007988564425757518424805824616595369002782163619045143547637948533663845184140190839610832797879226740311036257894574743089583866237374326781083571210482092900965009574310881303358981262899453623749844671041205162998681043875740813465552733406140801614340815803218045924717994982611775326743579535743003641018150939935354201640048161077532597869654664114783248214859626469481812924468038852230298979331712314955342280424048398176663980526887596626274921844001271937686079818974295260515015370354803758868098898188664938028264483569064779653496701688976784185839208387020888182818697197149009978962561708871922287589892311920198458816063116973161896996789811467674696039956959184297102260043352449916924015315589904511936932020590440759058839500307635712982599144734950806361210425155120262099022097053276941162333499033630025712245023775111259014723960528791937386540481429255314702912393984624872975370085851251784768336963259687457018221776203841268733140624350098087655874966399706455371446919795641864014233800638055696152483856155425622500498656474552503502423982538036485915505830330494422592027669418603264769196954785811767902380806023507823155272780846472928454723394195947130365282188866575432072336861686560383877085829456349570788712387588611723119457216818332088099023963533711076581430606105158838399795442189966646396017938945106839059345057499245494883484665878263763150130131424576910996138535510847543150764219254619991877436670432815512743754038762734385452294922840822450204671268807996275128180155132385495465547675890191392239522025036621306562030095357348377149085571952214075318766589570950386173341312685680527425385392550035290374944885615097796797287478161666899320835803120080936748568132553685210102073441873015172132229226519425940120489999015694643485205727157690893642944832367169310268624822390355313088053153421585959589408535501568419030624510079203756056336348274742199479824899670899109546769790965885062008659363028925860180420290235022878591402494048294013411081904263414915754970091578950595209666609146218133989070327575319035331937495832633983813684896474255070808050010484090278902651860823938167380649358262619833046742610574713111632348135904500820252786122279757954116688938667873810067484947131256444730196383588151001342230226450327806784108721683536981581347281411387859356365314608090149109930882650215207287179526065924136334148940497349451041061589423080613028248279193385731166739131760253353956373678160327333472569652008110549217855850584745785683514729736901593892222307856652216297566419104049185161481107226533883811946623899470085815109897097033574295957258601642467516792028141575037457807112932396261456670300707443053553097024170749737960375327264240083535173190082802316614221848830340933230775442903925749738892852961280724673078100560723181252038277907517677329362008964154820660143028618538582269431889493810505074659939340900669437020889009747686625895219365855033369566958187061555725870551045254284877922274515114113490005226311336614419030282815075746854855881686779778899891922014328104019460895017458864325009417613794253691450746044199256582956414765105091042647229375319626458045034140631434485272072633986570003757448364013977488261395519681094235448719236359877188925731508985730856823708439449788949948332976267657750109806949063962103365890969735552212204860707096184655868281844115219543141183869930112853876036820397861379987682393309658279048535489595306066079263082594800028031646756263986955729759315060840893511777965065787638119149242224744082394895487392947036862424750771384562814594163927863776131506177456596712582533283012742328629474644587606541769928585197332659973518847776852781738711763894067399144268657335950878768015504526103192871443490875598115335095974984015696663508110607636325251089334938135626418633358960751995611221038165839108191279966123586890537499009372122041997712569973157026858785015088070817042830640733614124331864328451311115201867289095063193143997002585571008013184678106948265898175390728912537095521707898637392952990938292008572310971081374328768013438458985925225920316102933524510635681111622508380434114456685183385460442914985980035117995632506151172414184955382512919678999025846269011958334316420312048307411469856008735112602335837459133990661036911356756070577993603669749118500372887957768655518264155666157377329134794928365770586109810458363551614855072152318773087719715597298127822849685541042985758657968522494796413749076588574241537105845730109586456519238022933581325477755618805209882144150329213378106751144641674255289681226442134886092050972452947418910430228581667400412824605872331509405256543387932002746569393876206278364496184125813650735050351139995226593688133624155786009568127806385681203006602084199576198687853078936148184609653881049512600278840124358982853120909215798746825386107101444803627588353233837907535781031272399067753020640872513083577725289828144346940019871933311331900015878882913851378175082776160859536527019892888668913348359466169578029775988776535276988402477412527927778344415051159664148443516030613858293895724476644631624473438158210020142935717376668548387186864315732214820040614113364271946255167275436851906980336819469636390102761971592717580730661123805615519209527249844157590813741220311006899215368230640459276531213656935519472434967576247674389537699280174996331220980969988495929706375470807933539381763037873479428504960691002479098535864038499522706053769667104980301871971735211978885882536413448407174812887482174215186125793882941381299119974881688236351765319400182098217116006666293806799591334852708412696076413364679219374141864988724276279099809083008613958103237203368340789607788922058933326906727606103885178262061288620860872710650435057551996775951426415302574068829238721210395620390855679296751591705405116358936796146231358049187322912494719860488009942131184738632680800417735728687129249436924710591231209942898675021607046873699813853626104533295945774603271183992327711405039021735641630254654768962816708436714441169487454461161100815226016281110124449420223698471305724734316165228677270154973796402448334702492354913681190088158938454090960137742020331872952769680964834884744322086063630017429235732558521496346774635415309155002508949250599223944917962903583858410557193118030725965340362632239367400221911316049966986280335822343873125597550471785718540045634017943724309831330779935200367909360443145127695331883231038136222238476926594710306192868645096270159098364259391017266768666486147925913479915985218108246549105236392656299003880579569117574784979382273198431112561682149207385981292811510867150250115707993502172916356172662085438502556764832384347026920071769220405005669614364319002840474969822453993775407482181247375897517426983252780361146175213280450808655573048593815007443318044839952496251057909997590227048962882464330295541471486802916474654536153443268700694571742226243861482512760919333652371405125303139701781593245588349141679360577136996528627017082887411565242711796888284694854275906027660974788649736581865678556473668627267635202096485524040881211277972702943906915662269840526430636460567367696412689429931940723921372859198690689005343327922308213032547912640146846734466716735656943698180212183149204583151529306943178358017543698023658226937468854364760428755213413771529719858004968718101396913887889740697354941378604904629985913345591066590741990718484638983081870326610673410411425405972611496155960752232876943254052754696014533686372922283099414358315178239561756700583621886045202075675618622008830419691397936252862445079945644974511731094398099772833706653189556860111734936181592283150046690244994299497044084672643724370707066522306718975256813077042684267178789893836608411707899043281877304645179189474269959126519827677740957662742971033085968330087703741232924031803923153391511951745607609820510929892035242421926076848082342806185925073941348570694440505304409254490968945991052205610655597457090073344655246533887150606187735350349802997936824733188309982113009148838684508385062234545750493974966814138865161468432982437723180440854630498874553986530220564920773333124482685533480736737572623071660623382689050509902980679457679777783009857742537996354829930856170210522899724638478530546052505548246865992373010213199582688028377866513893450656181505565106400919035242001288594672680289611264808079266408788836787503415096802194598093774133430540944474714018666111101582937345957399716734439903517339611356888196705355135469375064699697749120087005727655250499716913632651284505516498560298165249463911478359733765114854319164792676573572305846753224800681470590596542539903285494900146017366336472408550476370029681020685516623924277399772975245284021257227183365714033616066453835594957517739715061542237749719819663411326946507097020898707507549788072649614363351930892251675949427218066641314338338252148139730317435222402415234238168475390671671367414811259526074572592665509958833170685201161449955793893331621322681299626041520507836525911497391576276678217625252175142343404940967224927005443010691570124666293444896271990289804743655211269211313327879903639817487088317375113546791677121363794871545256786396364571922970708772551187815221327112202793605161659688052844152032317689009861332558782319797808512384769861075359865538717171061399939187879985224922667889790473570532571145194350583544936362545282780810532007927207679928210396956978443721340414406572991820057559857867411643964543964852750819448992492565689857715371543791012854682701435048641828969968332509977515848772384154552789631825671053553303873526212610476935909451778695934465395517702274581806318499436413898895630436813457564787926124177673161244740879298351717900151466713622324148054521698462218572550945911752486864038496015454663029845733616143260649751471897208360993128404678905475191326941350550742976109242783925259252903689624845785681070208784341870483581229883273624468775615424429945756952541999471191084085873336034801396319872725658527664822244232004746701848335545155716352179860188004899040920610749253625769571163014761571743340946198941578362345375961502339668563005410469454618760645625702631748800055135833903954525575023054405381982049621981246377066157624911777230569412884016511695553775909673516910982655307452193159039908992208750024874962923223983044424540365349710934930160028799028341328885164741152227822611242405153661388413889278920695197892389674005610421786691567480316036960178516421785003535495107052712818284795790888378066034877362559108007663266486502095418192241797554311350002592175405096886591929954799763226272801097000288798681020558746342238560599373979221628969331483018369711333344726825706957826068594903019714191635107386086839287420538316836535852510611116797879805729273446094535826734809502809685202502735065786486285009468896926977816089628553730656043473943931477011795199732879934998157168056336115561592299950025396147287046945010338617305201809690045028996911406077652132470616533532839495178572082202504124223106664141963544738546215897203764235507497653794630756468500596728711889607203642473811662591053276048968756522900099442838609691142850273367235933652633738701208369745409360085929054214438856943846111211509538201137160393462963730861117527545082378101594556433662946405394283140192768291755530871574580045945225408888649809659877193976536623355139794865219326581248728682335138164950765932354103142668682306691993957835183102504206445605966900733803201492270678787829543554945565820245881467365276736991261497104683194329596786851963118150262470896585679782886581879388222371886080178263431055460559931605623990929958385610574101094082917303534997794053708011972952128426111408675959620437339124082371727983084867433455880742098561917818759444875166619588713138188062853914875275428540281239896027069410770178138329049438867017152709679980760188380664499738037664277740742871226747043206989268142719910344240048963266120846516889772354483214509222288864198042352769969950557591583912225591592481604378047528310255204703096725049518751576124851038858681369051195999954276990402999153899216595396335391399402483925859964923223603014494843471518285569282662872251056565245205075239344866767048614938264898203385001001365925082839761533593639079993217883220242386665148036090027479309004810948105662271484519109796249354157353138056307943415479932453260396877506336559683881717078308274181577806889404640952280884532107403236098450255930242418364521629904705678639661066356060721723560678755684304510876155230523842288494093577379818127596151678509683263815370578486720464664511968781126753326866875947517356904754983555794782701287738304646168585583935034995435762530412607300212199949193224428099706392981454573179619797364380853879491899575822579100527544471554403391727101109937933341079196325855458963627447735137322808227765933400507104367944815160166771481446458771058626961855446672706024790903167897042402504176583284086988710159614439367130299052522402727830154961733137597193371183891760986818448429486598220406723594992322794537595984210266749804273230238848623862825372151744719379752196967140396942565091149320276508331737682690670994668929590968906521889378200133163248529410295790848265521717513798095594710868727772962381187401750334756724077105856036756282573154444538301063543603291751474320988552565224851491249858241292277294141876271503825517081050905898589298106337029615360753269428724178249828982935351397435513729123195699196147279795568440109240527802748252682148687630428336847163424632431051220544813895244671165686913690250281481032873207360247283033154344237457077591896286959600891744251351286550018133542475114276070890519212250812912788159672341243680900830580498677007232658989035928799516361697240514982058636488697627674690710204511032961410810996843892657569427530188492765452331096515262033763680112221005443871166174062277713800486236087169607148212802899081038231470429124994899961746604674272690790287572807241746484510836078681865113999083317164610800382089665977609825184967286557650869770920646688670680152682604609640830527830826440951526209089504269941639211030548590982010798139301749672622460659679694965411828783229822868187491977009420275207426181698391712283195821746848051701589131374228974039096701561144077328030728940049057949795254471059060357269662921479310910090340125672665352530969115743452014565353085483695610159037880821793270110952711888978263246858717658404966971222464049109037495466476033476431019394701127897671641005318651545035922104567178230628075258875702655768714429924047108330743724307775353177410850479351015216485072168927643327197772772846622343380674830595537376318523232655371167366722003729540759051526446310509909526049700237333717523262620246479255576077330867024324068697091159345051806978976730644230280756025898222315051198033631698497855869081717916916388367156365113121171619930596780418657766874593279634804684970918055967170119469407623684739315204391432103232899153154590084907544749172489674432033653674477917270255551483759468501725743166656181470432963670634144764919753091909657995792548801673855494237767745090596854578979163626547329131984518569943324182603070549249542734068819630705956045202320698162185503522744740183538300848659242554893955841838999802211180445255409409646087172723404757723514518244553452422256331444177278493390769835236315295872329728769671517903640603051678884167321813717215345278132904082523539281372279088033605160054605136255607158305775322211567927943562622193228726689300376280698856675751579446458878679668470747267710247167196892135282912149087317094557711358498039396188086333671887038485666723473952725157603751658033694807092762385922846435116494500711035826460866834659908077651260299032739636777682354867626529979188981504277635098636888112127617915264113808303778773142524927058442464797863439583707604769410630365913307736173118949794739122801932393152549607685257145036595244431185338785402536897837754184855372457187607647328737211273791709401344660471360279926435580176252173268585863657093354614646630947606279971494674976058662035251868852674490884405963691707120501339168178607779343666087678329312148859818511177877528486355653108885469755704543809698397150333852612566300438147497599104573108500673263661197753662745032978321015633865788401449490190958590466010616436225438408138451562690433838777580964823682328014798518154822690652196560184977322143611942835783801092754929457380289002618953865269470640296327622592576934125373679117743971103423735253517537060293808415901785240452699860178057549458632443742212025564344797272343735703117561239371369859726064333123046689886786854694432653409090723794413095081214479025293160687486262566956403341916636500841100585887981489532104595909545998607181374686884977626107189686931467805392043053928037095957077594637789707584610285741096018243319994165678133061712261192680587158939078834414077227019191901008999379360938439451339192693567942735196480164847037829704795285195269765108821869850315242313575716699240410795683000882117034052358902280367667995117959423891524189277160557857531724323325961928171255779055977402840598453473274878209917081290693510907602532882226319623007807459518665303548880717820887458065760095162736666021561216637810503839104721521543774139587712458844811883779382414492727104805921287587241278265136372378667626113937592899536673791650540114781572608559326436993637183665438677370492514640144009749046904645428852628084881524628878542934301316690180755716176898750807472638899496073840532275888007126160997733337132262593122953615855949341108386933848476157389036553222072498150440918557950561271960398792197287973480313515297779901240010110336741655872477095570172255448618046686627541614640816617624732246816828139979332660792828583663507976261182466726808194619007847693646166876518487495836347729663332933510353398248477812807645849974069469018995832092871841712764962942680795924440441508673243726012196715754175785384100050651763412575502465812675221104902588486719280530303059033259879937577724839821232612966887404217224493115631479113078889090494388672538589487766859944346921569971313463708664472764077364524397116080835914444723622169163822100165355238409556208026049933896215499296705948375453636369765673423658558340563175102650540896297017211677536979296089691756334932595023346422946490974358593470195917005983733068484871805852781890412556376194983542050391562606813273693923404861898893763279929829399087084367806473737141918931334575478958313272913265499716241489420679899507593480602046093225276192036101640390154523647322509240480942418843283878150785534635439147936984821032550858420744357989583341636321135051928418198190602635151852216872845280643950002628276940764366658887348103703034183116463178470807837473087409854128982973798486506665612441113439877513463692901633497851150096657185470504512985514309217013890778427735419710708242824122994681635552135209167219663240130194082001916542580928993042209280776842476180585202390012806403315051690389032497504880069903163201901393653186426370628130753799063186933362065745273277491327127371027936554012025991291886341538154393875008150172416369884389451869015433685886604220757565235675566258518915171023487922688164578491384129335743664533401398734598462158246545044164290173265116255329776987072162667242629773254617768534252784623046109810949652751877897680745367523339298037403043605371354529679567430154543069578914981023522452607034344326360136515096892344973746291683383680367754287102270611115163632239214185464490228393231579754384898957692061876351685265476832533061277234716122419060163513904522246614903611584096531065237432271496797693027215705440344490367873828093695347460416918437768661768298326245940224173917119763130359868312675052592663072743824870234390207788186035154267237703678611569967452101119565188628060937024641232244606435827299596192821599272930503132624240802038975220666873986891692407908208421620792159262939011180754592391794038915233136387173400495891839920820663596434428526684867124990231729382047256695353455405575384650662376601172007506928362086665452864606282888510607634513221827334692145245930036936267941475823043744905850999071618681744013406507282718832558718391416555531981594830299054578189598652442899571959155836187394877900990448848105725630440531706667585650294412147391573392044781269049374433334584482870158712985795305737309904055357934539838659369481328240000297054843321882265050330247458774941330891978579407865923173721084191233001849566668254408715759847049793059342996452279256948518277790347841460807096154984604584848015064548338504378814680098025111403622668000083737538476378481543234547118312708728811687524327218298198945624904336589646453112706270145283342066354299909992593676257189171856576973903261865503908700578708607904127710989840269464418602447559584789768102134444262399395998500130882395220231406873466445988601678453197824061420132900546334399477282892968955816744150045883151279884988672699930940331972563331987507931725880776030644801749843653629266796097018541524436033227437193399705422464831971287301798625507393113902917689869526974595142263149587138463042684113089179512632956015729263404332678890442423930327028920858265713693833022310440786365791184527683980530236024951634094263348713546699805306443017791743199073752947307648801229616050361730374497038014971327482756594891199146900609254923759938096740480104542352393081001378641487465105538646186856337562246857507242645386636544275859760219793199430212872729421301963190013360068131288588023990818978622882465577953134640885228408031672798561169147073177602752706451324050506645964394755098108718577505923635355657235853269395511668881037034994651141978096837197300757765006233007059896898691286389783310379185559730252356140711508064012840671346956070378633740213573666844587597309915992318404963057352987709239564761410899840466607016801633118285278402398416483574296425091676810462625139055710901406908198019435234094212069966068282892976260467277306962333299792012352544200747200608332303890043692039368015474222274639961262740014332686864241698203386408219738599175519579951827983912463907058283491105168967474783924106714115491034945468772558888333221561583487173404168527123121356789871046196174894374940784571180226009838001654741750077952453426676032594849433194021199303688524506957816982562369898810413569316082717237360195507523108453615276715810633977620980571160564142894656063134300313074242935662886834413097987467036830712201268478431244196901737813475120441959153259525203817424291452938568678838164646399646213369908405677151681743196544821632467028386305515037099171660680889843383417598597642776192623558854215444780528128621285462084762155572621242177470625125754804355604282842624691418804812638151879500425791796655444207449416416180703693342855827772876701349644575863256402313712024421830582779214508368444512488195281573417312292381550883459479556006621771290766684561742917948803398341382719171922882578602345105841572647190931212634733294446799523134847487498701967460708767648974487362293916150563641697360938163343493556722827483065196671957039042576110974173766146956356520372322851378358111602520753771223351525759791868223799019885950704674262182351917348220456496342261142696156829072501163963809305191417070154943823895946193166308921344658915499274637325601595993832765751074530285577516250561229232956875744259519138376317998548285389144731095954861415601853337970218120910164410684778363275356845315058756636773182389425383206436033444269595920920372515807894492054035739020936606901294670158438076039441228172779064057047700950489533805927050493196585670211710088919844170649195205672343776767998186536115398947269530630294210358137038723118138657936425447380151811308521483772257268058435013824328425615491339322523947913894725130184444399435602360601877090382895437468494615437362805200107809253095310643531222558685791994219027491654998463320333337003659826258263495095215365628797310382015753119797349283991647039019166462540994287830770078957599203462325085741249391015237157311040342574843903382980582158471699818361155189058208683098210119977563572960599963158338380317603157838400344665576607049093215784847074541621568549033702653255848166212243739157116875236407893729240274920328255636655348878522744675652735460599271889692316753875058490793676423145647642381207917114681528786761879860255146132691492429244728474035506377678689440420254837784497362326258616646790735704235284091226105864685284306426181162481226727338803051223692376403116722785574580945238016876113032302314919801194453133339988890292031401624172136650595339044034882796285880222738902936645707050273031792289988222757295620638407986121145351203786309784252717504893624876338207947016441499824685830783207388639348563338228815838952902226811578602176832178758963410321851690033068950163334312474846339305821832051517472684872914885934709946585463189869626627515330847376934870319550212458899692007607806216009353806857393688166176624473583251084944061168519190137321607770149077431898317931809405917614416931582306554375828923791203899340521069492306272185527174552500498216105530079646513023213820920107458283800007532682272848539513880731379048563161362491043467038835153956718767634534711098112888404586015168356106689144686211208802886650202980326285959568842434900008248005633348755148324997413288247066433815440924935100661853575693147389588993993364644955807722580581342648120684548518192712263650097770347439225791376196757160452364594427697914015464830311573837413653394667001177648165074627880736958276559739640173558111133430963821468972596793322145014671510583765807936879868403900121198400806528459978904943460439567968310551228765174494461989103928707927770376459494329481242779875363811063379838492950746206746393063425362268773611419254124101637890438841282338103763002365490989752125754651245750559848724240975377225495599409998218075769849025627321744409594981737431751628259899148564772320648938441833700865252985930109502826720819789436047698209840490142137279929531273787726279840931800532106273310091590013898166382040981547496398022179676564787318274573121855911076127118279834360354166730031350240874396953939349631393888813374376545220118293481774774590892391259111909969029926176788260879665682718239444630818638017024727149168558576822473657829901696056313412348539295048660255573442511932095792438857547986733218368428371491577034792059027894368263135850650692801514415007090187560878369443895002614772747049234712718702070375208722217926322262644267152831690311233483052376195137661737360684573980460345018391959047312144423059113883671541160142076903552210185903820504912301568522458283305726118544171630928996938584798033440489534969740838611492800232335201291371189647430748777803995343251599793227314310270410541371831525916171397932402246203565292321079308260576167382174642527181796439424148565364611526131810475447200188215422323218389494104791127480788411699680260819686870732369997800568454962634334956751866498248903657840802362620018755443285826501955650681063394575563959839084952478656676600898006838424734873259315893394676869305981589573546232647764563258400679403910552102552192865864567680467886458630268013136112391289585412474378399052548336480396260060659663155081431714996240450090864031287689337217662910640259781990969415259933470403987014137591178580836537978070052177922931663032151356776810214581667385836041522778360426729879406165268707120390169251022818608959753208633657765342181382225077903683640519781742403681267476444263036904064588914202826899155682268515465416067969788936231921231196481438746506036348255369586876643186848494545785821889088599708057426819884013651375392293669837443502613131600200830868037342101860059517288355009975197597768621914058104972203946489623549733217655742802045754463318770525849099158132659453460831433232336647087078698728801204995878059116623322744429599785530130285378889141156479923559664516642998165878971644407619080202759465569856479200892220682872702220719560674387153795918185080134903381436659591951885034299761952716877632032176155883222491284808176686684052010896256499106728560479846791625037124968593425553535574427089698292284131265609436215157525959997739470022587718074143692026835429017520817124732109209353742508806721490940444923131352555233741000152364707385042729148059857772946457384973300830486378430725254767225409879569878888336084522010340010968307783183419632259161378217933855969495745787481027202734600303473601214267357433151975624600579811000729817672052869701307831367300461152624056591527195064010567622870193007026577907124460910729575080378107966263781419798651591607554645003726248225177888451197494640506592991395361062602699436962327339015246363641819793698097177407784719936624543195206571516671973991522190923758362706622143682243410555072820099114923607014960788975831923353215302608464786447410924342348738953688083913817910955689946496239921023742877460708223422130793038843455008299537019407999196968288672040526779170084897098752720253077616804510106017650400398530996402138047054853435986166587781802601857326457281500368794527887992582353794317431430784038054179600821453473064697537691581106597140577845398929614671117256374769614410705486075803946451892506392798736774635039011323627840169971447269759903226428723381142394784021954461509126348294934698215956896043960009221588208713727513094805659854095507902013732756950122229441164834164405844857357329619446024696801758569471269050933681052901118661341258779870230323417452502389787601899069377729800571136715053550412865163459462989568984365343301192925519607371028635027585643406029959720490978384699572446040982366936847240123481930467212340631223789854685256737325661914293588213088251404642719898502782232868192984810903359199530098938907071192786557912449978934000475737356037303096914055476347317569469811232329298190514785690324120793110513679402096152384211737632909207369050258421159519183537250160584630985806269255191939956278876552398282862825537338092342689685850315965326821364105457786293488275538990439699835790172634450669897716212486301188130438956117873293690977784857555982407935639204259948704435470838197408389799709243981170591404462171405969497917751737058961677607503702327773375047267802390701521786551418748314801469401225814162900765774040215701962071995563395071378710592713053666783593751878285961543308995110380769806824209256926023586579177413109635675810176574241953895686520816577952489396358505136513451484735330853390924802677614427728392683778589997241944743368759295930406045958432057503056399370923221487493521126338931856301196114040619342022709182021384988498889086095414536195682713993564028609250785669418130612470484803720414552259671718574909430094834480157934366945280364224692727926979926574374395020705255967409618476638578089921234461726102309772954019270133749328787851119441018971269388963044786806879422426955276475996780031498345401963390762612833461647710531637783652505674708748180605269856541853575494084072818713276075272973274219753280292188105837892801930528752002749311604972103769663085285192390001499842705015575566183335631396760065177129896222629603107986562529297159550040444098571015276017130865581902634119559635552231091103883329032559115823648023844578383783345007353471417219016727291973835093395776862119843057903667994555003457425335024157916631150445024627584557191621564480901452593993974490513210011474103681015291050455658233903418876116578053611484166091830301881982934672548982519505241941887952619612684532844293944711012884013366065333337541761677215390170427352337061999916300498083874589835743908694928234427375001097035759170231137913750084241039649479695425591604126080300648894842362739212842661729515384713101776443729767067848426959508665037522406814967016183385902681759999129972746181738756689581362497497780720447521523698605402272261453950681997898996689239561131201915917205089903642876211462410112557685053907361052715684920591712516979336826113080573038561890498167509533802467423599179756044838603412371586676431792782752146226769782078627722933865272118069475298620268949094303526074003211954741639370820484669798168827304089888153499261017875162380932470810491449608194302567577387405631809299177249017374462638405306644733880225865068072158120176406514474070655372217785278087393078678542347360207260884551394329644930035143908984037574178141765238109926021079411001414334940199638228575747594329504646282009543217987400141966153776406972420915000850361928176118201085627593119029660010356019926661406943617089006729938980299212273364229347269399473451721417722602504449436940862918060742138989085863759874261344434910488346053889378765073751683156677876846317221490058581239705197234944479554600163810644960714093860595565329781058663697987272416482463730495222196226601036666457787139152441493067558147855770156287272137037841576812239723114000694506229498448605400852263691705222026531038658089757211926773767799338726530153470970406123073473359286304888336418750449266440088983748989988021656875582928173832984138876228498294476463836813018706363023719479232726925695431477706628471404040548035643763971195635311263122666547344185195115450986173150681866317176448647158310215506982982253945550961110707627288079080358015617907735513252469731705282480285378563577422725292793821866113520492677014649545185069339311134225959873258386865844723442946907345255752285858891836648353072446353757722786475879012580429439766104037588856668679229280073997226320601346562852895433410925116725047078175337059351056228382871974282998952122309329085155282209898223464628431279218312389193230125463393715711272622262356502623583369580097966062081272455612613465065115028851659089768740024167754140390367448462048404639188746625730779656555590278712746402123529522172093589507677560908505226715058799734908689780072349162220672740194769949464497255456419979864246850948268835788294199210827545198887854985826222386561447239149873913984411306896856006258234352595410663832781693859357444788752683607081834667048967422558011529492237323175984611779425164696228608654304298193238845988967577568335746580821113314330812231244634462656284601539057966328996681991518268655855605691864934057342507926736491844695886666736662028093100240946226271483527184596138726303685233978892214339180534899632780575414328887440100672198982509385370077548810464705865736556672372235001609305706258880892821049776196386245448086367330085280087223081355711975826184745071508118243009889052927612020932557611457543963071587794772392837099792402148489607425541710307349464997430401600305123545056695167855729138846112324741725344182088920977172775128031507084113213951169650400481640466700326062626694670540854166820594885454372364205843560133269908780546609643514650685526991472167653007342358009980230471624559774048574062745419121066549668616493821888889659944582312233327269629678192648540788267857103047166014378692823552390216177745129512012305450350934726329916717421449925900393180874586459657730122346817007074544357287532245979355328132887336708656777623207656686992856279112121712733220005625101306749561283504094955653737957361956234520741591918492561059810839751975103403167348767184059069372309616159153835926670081131948566009386479441942343154830955628189442808417074958132848450889094646949331814316180898900586123744385870886820505486389834517346604688188444111159959694481986815515936581834482174124636979648587609611963520297281461516324053156742857948715877159720142246412660211963663997779751052482830819210561088803209939672481281676032118551549175179961944182023118582554820967790804552833677284777401434774577757503805967467350897807952121769788310725040197488913864256622886499697190539047083859487979694373770546463092580822311050297559016986527173450566681970076584697282352221903421373168685621489742699361787332790011063660816928403900022202029795208706963383861281322472169705182383152133215626586081850011600456705793865455229606006629965112512742266960464443371688875950498218164450250033274833064118508949184252632426165365655391960404505705354725316029592331285791358575527805814427783018236586162805852827607014043239377209705659308154061113962143150678647669707232150709657556708433818940565706757899659317847107242984876605772237401879771628714781279580478604003885286365943837838436349621706123297509984846437572354085891600571513641991060620218419894044116730995285161536448331266319974911160835644238561306782060147755394929713522158538984764429324572421815210651991080023320133543251310050159630463705802217704211501723476130892984355608422404015266356044263935151629176852065836688908320686405512537009192188899869553897985142941712978015447533739964547367693417471273167228171927197203265650722980387170829120298542307969128849994292396190541900154688347153431701382509808847471733968420136276323710282520884413557752879596943782567730626833373389183907251569616848184128557386019020871022697406707584369692988468116187107227731280142778615039919509479434101404821679760084116170016487800096392852322156376849426097246562073133187578586728794043018334236781505615730468808636350386889014518372279658582113041261653419518317419234189704374749110555508319110654499481207477405198636716665300859042245761402882621748155042894067510740216850568138420791298388394406383342074819807870838092166428246561484085346650974343755396125617318359967459171267095841608691812293859183930753906841072623648858324553250812753777295259349659344105194322628916753575791593723754208169573301166878919910210250856551776567057173802279650959919533647467129438874619413836606033528100825778174090827260502172573962420221651124659817455764118343319612368793419909814941066008198502070083272353765122690307728559929100146443653341961659290163938940863194402279862739310789802027335326062281919196861075131156539754722771628373810202067280129860332639507897945261129403056692421621178431347567344912571668723893907785086301907658582081816107488228074872629873860011516190625921382607725814179626594230092305924166804377170741863680396807660406436206229893680552697784439274703068697437348514497951117180614345232837497751432726612291329027779715802301556866727176287000884638611892817408438222272814686850952546141613489050610766702776838866669267250788375227011252162986778582273709931915385106454310543896536001518867371363915873449663405816305579032397990352300196237564211604676074203795102672035106623507079219370836054245537859671302116125856970020997046351737474341131239066994985766841471289361079524331145714143163907781873580976406869513918488533984603485807628184734035170441811255375220507340849040755164842415708386132022929307356184960594547997732123133475595961473672851785591452877304116667822876168907059609933939257272575726284578058936751566650702483347349272517314680940530105289191231820694944727724082989545052085293898606635950040140635552754507928541299459671993769349677005438088796889088410670450749228827130242839732908205087020253064723423730555650123850737262598871467741697872957858181256866216461417920972394886320536122317061518630997615380210622916520666049678115202941741685537403212675796101094520955663196853740782999473827383283915602046668280908964732334322248245494063217209649370385699097570032306093078179618425153773470606910814448896986388009675108284397961904506301647575244509694000577333158421968237003941540165158201201693382317923468722876894174875455064168246600873583672385521636298840490270088123014398236642618903842749797317644500976383190599002070611210761871845973891429384159321475762005172939156079295943486565406301627966449034208865353934040492521824549945682341996753113888806135250141700863672414389308447120108973287449959906439031389236056382481248888697999414933790583218751709898771438946449755190676302672981596088336390654491074861101899355454115140682533112073246380794341527312866672921455021680606137261377268631495808195579100036713443590368701499000048926989820192914948898404639383355460410396406275897148090525461136692710213175733902786304673173362451091884437976447433097764480888855956061627474540363246589935354641543789186707544162734952729726390085526348785985780772209595168189464796756186484023486417682663747987747758902409381126766706477123757978965844324483273173245397157180305981805864763563640154760118029483939569203272028189656747667507202727395622927348540774294577981659634764245336116571193382950248411570384586110558826835620042460854359487413720202511590722027646625834032182198253564222090544085464455376471817643061224484745379121510577770034291334625385345007707592457075981663863107700905742945021607362253165297990615034103571013374096930463851481299533308916431362159712120456992399458503814629069372524104166175109220616383246832694037018783098406256043444250218420197128030671949107155617408862026880102550948697429873372074642935960824263790061106105440460476871670801707710667135754192025069349759579461466639762098553014771962396457699074951044591021634930827968129014982925454489078840002893132039638868150816482978864162322679658511585298663813551960673804919684592572684243982472892077329088181759019681531127647962373870099567328252689263023630984982868507089054160655033195528022957641036205391102007228896863351494801838818360935397548096641130169868744168591856592813566353911861473264630480167860326548558086216874521272091366970928362395440438512563964587844860459396676567473085550388443894643087035399019743928174282205902180692899482083447409855818939172858180535320748687426730412940496399831863693713320365337949529227381172864857821000351211163713204481991810547572826009344153724117520992631980090044293485823735611248404873848572225841570839805509428342803747154167619740952954810643750537459542234500993451269026846724882808914595752119453950438434566540763726984276775139101650746003365777799869007896951626537609907053379395845254972148328586538549374558325497574289473386948683114981751239314606028015030037060662131990349031733503815820927676218110406098194057014993283188993079230628978414812873660713646922850908637699418309082648681986670176026757113828378929965163306450699297211945249621082935399833254205893124590585003402371997720678259404104213364819546369846483924318190231263151764385248227422863612410743750195435756408433726347831950691152917770412458001800430863048545046780713129893340272789705877243621384283027737759237964761247268929452855836323180058084443803131940032994141641207357811820097929524126637785682666893063327891566041778437141870170787117307832825352373044851207872289714113347537578255465339726853560122355866591885247252558062511110561167542547708049506790364195146316867316882101777324643257588619455010415112452837610703646325470603448507780226012950872757529068622276445787997364544433856235052704254373049709549115641432237175324454544999877571923906142589345594655641681065984544474971382894115051521521503157184728318639644503411937709559475997030044742352207239659767851517906498647458655595480843113871949678203204587201741655930695637813114245031528456859985065028560995886168105234146597887340430661410398776864934370179123004598609952491995707435604946313026992997829183558151237937056384591092799421268593134414663843497257816254086241078655572102225975941344183790088627961659081165957466702869522095836877925888668598012477321436755198665725093622927877080403338351957119918434418862188046565636944361524579565037652860183846435158461479682413043673098023416107081782262126836947205076732711530340548159576981870030245852696309560399583944864791578524659852327289038267094019335142805979470716784720753817656522807404579556537101499987783870275846490452342784997365450663145419963015269412024578645452579305156768935059634771455425159081059172033831271798089318620526835911905710189394092419479243896754288486422515536101293337633403619913106020834946390681450164531450602395764431291569837049710112185808699705258117197292139735712981899068890532491280982747830268358644588330286517106357218942797107414009648564519023094139167153472156601317211764285249430421030820212309259859657209770836566955374024814633503770506667131417576427321755006247837130218987018925063416598419410500511549359912507059809420437128216357850795799702053343973631553486287820898067274438726341224326280699480399892687283897856680382915570559286137334086993097519751225761746489232119067309815924588665461873925697357866506727603530285138289996089223238260629226909787417223290261459187912789794492389514059733925551635988561800115218887159461148070326754919892201582768735234209788452265548390330669282220900212519103637989859423951981882371242457593474421213963639604745490110805684220703634113545767830627491881886594428309201774774642976420996689978865618057650449465385429106022536516153576506464495553305571679960260790958770358118432181308764289682855291111160386992138677899339284773372920520029834662196039162946680797795759228225262453996594489265409679316929469474717089772107674266158615981185368509051481966324050989858451197606413593725150295008332896557036103477383536295589803821053557864241481464793027042637422354241601025462059593147299213180245595922038393538182480633360735373022731073155330074452666838759963087687132935015862491517664442555137057591678449135520384204258585956384807415066752867222703699384063712853927618967943919716011942110101108140765292824913240484902074490058418728612784624308061161215408579951621406684957500270693922744121242460442355539365599395921149764728535627958039313069086498317435331073797506233554678869783672965940343931895584119496465601891409508845834850585213392587394729128068931362735095242943216692562081936998908274971327293444679837592269049333602457619298973575244443517003461742013151880787371360024183330857004942503197907431294770293188061532259833614911305012974925415348509959148990503107091208056746071268271153523685935974777977099412373151194050318402003420183357877744088210278297100147862224875713278587895754594549249176875325394065314484383166852173627547251855398992677560199778679717885282056779768600933264712966730980889799106216690179666011217444837160918189272409589466053005121061294860905462832074114346030812369802966179282950023086424271660055192067371174763772547559062450871785850529830439237089557912279135535596106575666624026304966015662527921639361789455016861492121552394698989985887427524134632090082932713094540867522210804226347840684121800984764411611758405171675610381199181236960679267164930379275064459161824630638727852764701661171275019032935484481775833213236551227638727635320589075376381371184587974596103106212221284069631850449541571471662324478271832797990759599467399434696627642258262200102480352201978503707532630679897762356064622181752324758439492248873967920939277749379035583571572373314558177451591601999024074550104002373574977821821539421191734158471222530000847261138669085081767945342674998822840365179097229816487551536272726730990939034569051352266009192874691188182712971983282490929021182435283292527065284151017026997432470237749959252006376733558249253083511095977994643954693317346894782099943576456383101939824734764963578815503267844577819021842530876183298119991375151038951170494277414257240526400717691219382386602014935474069897244198507418521285269151788197179077328019210430048042026548099824459947492749816960027905791214429906086221287032335908094314671737080370495015469558985548068951687355690626695478233338043434020318076267983325053979940379638757076084004832078659998265021930146403476633357788280426681016869252242881988915341500680990653267588330802612476546573439266534752540249885471065036700111036766303240372808554427424278830699061524207430551523241178593538907836239828483447870060125499462744280784023971739508202330449298708854334316527792589073087584289348493175994042070440277765611677197730032658219968923880666532146327381431166457732341646407272155277414758858981788221595115722678674094018059828818795612761882507661736783270318745309363023279951698200868324814467742534415842584330750834949926487757196174491874080315207432681894934357614194235248292743990544313877468016963909379404615873595463085112258506168249511943857119126596507531626368124917767701626984791617799607976510147474730641780779761278992825011929331904436809017571376108082990921955806969790831092854590125648459062991078901145575854318749090818140321741334197026329671153675763536216199887378319887086246311352640273210263270278854531563984005935224675846785031321530076782982878484022800499260425804902603337542467665246337369308216879221956836259819139056188480878000118075606820057603736724551549483083995083937310778013537225771496452200775727801022500540208626080310268936536087323248951137505620865878522875751876642118966159543304498873660282984937686914912264736644379603671272108822852634444447349306930546414357895017326133462721084840544966035488917742680738306752634398473235715278075409372910059144531075160217853443674162526666516941920671924017101501233359411332388124217694076640961882870242542641281091255251144375811286373796150131030952046175892093257501614310958565052119144237064104029054640298423216173920729185720716704794229106628236508817744185706260343876479161311009272972901827341198553287613703039869332509264548579084058966017979936453034396922281652745004681820102490290306569466146103305819756372434762210026636329910208756649017774004864351468360384885714907355650229728489749691251579292823087566490360270919811745479966576254056959348504389456775474124631559462725070436197115893226711437167831930683654986121922896758251299259766513744644269339084634230799477259698575951835348058056323219176942512958864474704114877375064004515783564776536759475610646091411844533985683949320948396349947092598689896798665254507306860012862140225517120906338737914924717664004533630050658310238409597769085309807789050913161926490883814028823575403611923769187454107769395154433565931999280440680055842033866891468999279057070430731219842272485542034548668819629984726473160201503560102962535030385465838962292404360066066204114750291176812103330281332909217565341318542105319055821426629250070065129365046720341002386674624295129404955281525747672866671457481593786228815062528680797727925791860280449706916246499047172922898302822676240784716584342588894427696589210896077870700055334501454600615576980462646897278202534706836324880186097613630771774988885350694189907793860989008556106244915872317344595001976968798689666306666196149233703748766147144295406892492961810832501740949606196612115156471904040218145652671904176389603948488204173513032943350408858158708623987081455443546120900964358905588544427327533791734714309330596663461207738694164800894258738617446483312514269836888813483629530567037384744021071241930340053727554316633325509432968596787535929709829781201422686537807315105552289815094390420684212081941332930615416745625242101488716713986327017661569174723216598536432369063668470680844144238939886599258834190749830926195038571172855803879496761875249719459862678008651815774445882277291684772350547727361391914437213647163717411879645118106576310261379995959228241405617143986331073539456892297497036050978887873769507922268867229562775222332450665710441358609792425902321083411833269610634037199605662356705016350555727005912563280192930793766752123868992500604918980384824448319783207695839487955042758763136163939378123977227283208963216710066420380139269760567812871100928306516975428972411289249242770625658268351871493210496462340698750890191102190463625344009534690694353471750598462084114499051806973832322003467223551647755860025580210541265786925020602073874298685868714385721408509406868054965436403609385970110752012422636895170370174485102482850674244232101643869728411388223061914204045220890493525229114160773183422704455130179235975380864015761478966517757096642186075538469205650639067959780045385655636588603576826410931159331955159237742739266931814139940414535458507041805108190194059270500979141962307092128193564594644122148260618915805057731252721118936388424326009484481742982753848687684026031636454210855337986292029706563430076581189290812124219814403186982132819424156930737445702071265386611340918725805472283343872540308389505922519424233205015876761551559072837476163071182190634770140110366101548979030982431185405391824366775846213980757296998590590115724451310106879329416409113035966861534381648201763659401457945992179710028080633080705703027297005028132835031626198666781182728635269825618537465316602414366452754109064711815376978873120178196495008424929679406124133254217776974215052173567073301693713514556249414340773469928303018514395546752664077157594489206092596274848285520662043032622760094438764463551173080669726133411508844177321242669772468185502720121437924953082182692011384767164948200335739577240078021534883657582380195364888895755427097181024494689103120532181072922538009059896651592262709718349836231050068754231617046698841005809984022187826659112910836991024404643109423429982580649569082977862204361857090666281808681748712526235089601449093939509607695787158441210115904069806232180323350692808255537163355895097142457221028895198392483336151027947176636146424793973949690972098831488275486769264636059866931731225633393684582427948226388731920164792545689659082578535425230255754989034265895107285954080072248310741018679794617174579402348452699816131618422648292476504881354514763802199122892521870591799393346370178475623720781654339320080119898055744582780815431090794894906324042774655545550124505370217128213600682829114912870283719181422982453924051935628801680238138535294499462052125599292802039255438845013021286842318512158072173244006864632755562802226613437231684721386118097012946883028367225832072019251695193274608513011119148487571147680068660095543805076010716160858437339899655502800644559064283914687150827180273493669114877688651044586468391076207176036836625263130039492624028575706893862923681685151396931762446649622003925286613143249750110819479739749273388080599014918134131165339708392620469592860079901653310906381121670245622433388357856937232882550154640197630423391280006528230040573280957346249209878823798251337772017057974780245760382195214250699996802085667440607153092934092425584512338981434163379361646523702568771930687880933924056184090068187709516158833487081456067470728002916899573852917515874164021007187547127451162865059030795358646698099400539199988913689650345154494212432512230369685313306020239774371386271378551228808611221858698081212071612806046230745663258936952789866662717235336295993553892705885878460363679174007635907593338112948023113774466923341405465420683191980886524207024279025888314275298004174662127189585194899741457280909744362912165016206257608215652887758617635252258340844246392084865449275282541023189341215844900767986540498125914015148777700811003015274568335788775512168488596457390262419246587642320967755883371292906856368625737288369883674463526045825618756845193631810675587204376240795597294129342176705314016913438017248410336543579497287540304830487226239700207679334425793722397393676073849662020012265507862278199153705022450654718691150361328347641416784427698232979733325425077952681725547871592023229039875421913885225387470524214435355566668935076640909822482583864467274911197595361665184665782143590521118265821309131001930719989229167553892160585072637932670641994548187748548939395591918221321566292262220042754997389068257059418846946205268016628220568056366935201137767064597889378826372726614036196762573538246170326172494665860814702647961092227627031594983566954253419137606145976932293722974849035570522173653084450980164009910015381189550254353978418886778687509019359395995151232120854335147502532230506254656733037068345969724205507961139806303787790704635179899838083650047749531100586592604864954679855455553250881121852506355622581779402468889239175491723272745090114075990334746645852858985919511150964231281604810793116490505423676457593701790529013223445998749159420998293807511616309504016261334320336835071355779611498575693659341279524528525778063507628860351758998976181417480996245846845170478397716184246453646869537389320018552947795913632327241849934814637528981712703485171328476407648558360374922600732055456172398144189305462634945310200877346263812806254720058987904390040477364812955412364376854087800099337605109047083422756794680496822621219435962734146587931208340723681779587541916360759315601034923084086103034822493061620868000709274390627269413426225712712455322026088804030287234991661597620593026710064106834117430875562169421455654548987653065951274776147069096154849006897213765427831943479422472907597256320212609339232421233458406210928531981339095722473189202991158914322646486498387815609160328704760248140485793738018552722497320889137440935914471797146728086200961949882805346394778215274564402214965911100608129917663804527315628002179774513429312747382524409110363566511526187075184715157845942138813898090043303704432113282515231395368760881168478172577922310615643650312358629864432462132465092255222528802724149521333460726468005847863163663477462586832541521798812725727751455970191961549906611250298277891619245638236662307238628088724509168492813764716471369885933656805680280187151734267462011846819114383179222806674443091041216733736949421605957887018803031136785457152761829361948122581509956863702582526108624749995045532485687898640452516028078152158142079978696419931742116890864016985553354333180046351895280147406196016098777301403272413891198573201281577523085654278361536274020009907457769492283195078915004866425142597257551091336337278412868839868357242085826796290687359459208850136532928620023747920875876685161029529117455830964532152785154027904273694921028231857716316691084336904236789680200477353489405312153922096768911063742707150549701764864704583460598915639005305765966666250393656015782191205371809248019587508664574123026304772523169690609515476597159350186067225403639841639469590113757616277675878474637581637781167676943511005485897052128528209380672108125903394731203646881685794649610931256921753694236231147089586650761944592763098800007854396532443808536114008417244013854656184456689106842194989034514068507763201328256622374096024341546280384821387930445515632112791483641914223210143908842540290331954459318627572600691707809565062612519678515911681712448153848673577526008137795613656701617002466040775698932526046578389683359662817184069989555772782720858069947190201340287478165888965994432370769880115892820686296447242854504958413050043016282255774966935056017227036747198348359546171327012626522662767312214651832867279891520312729019870351594486430157493313594928720164184365363044170865260250423090217666114932601968179927866989719584508747790115414409958383304021820914493292533993891301356848388908835713391173308629495123841201188665530130955760293164404929144362346795647850762795306338850363391067556883089050739452735839121613843659177239912836269207321215340957373336046824592958906759259522172647691036794981936017168336283476464720604038346285935883477281626185135690676150572903303408847711066015103607488602962705149151232712877844265365304885230352421112850961746890062127662761635532983445690173178950907130828796678449824513470684222854585640984126264817779334590531370079802414541354474533727557167918182040619385451017989610611048700915792790918495319111953922446764781625125556900390453496622062489670683683033430866214664170335685255534694687121900084789089313027850474832237738634030642233082415140129331765825976284718152467106029240835988519670539531347080254710098109225985862521319583606529472358201109623250652512944010485947410679535487214796779119283529257516157497226095952493726741551297435337821792753997140220920170628518424705639938944479627103003626839565228665253650009140090572432993723180804132836982795671940519477178018091346970732458346547425023712451084939075069070284042599333385167609286579361139007323356032289981783535424174983621032708866191278054165204552245705089824905569715241679635556755888493215771930258891152048288411483172861786124900790139807401552425124543666295268950790806128873221948304643134271469882271647333818016726774914082625176066344621879279565160453692564763290620008446485658860994624172239892327613115730142163347816825962455526858071455791274672997776958211523024748168312151989902259988698076335647285815376472513619280811628245969276056703144786878257094607618233108583321778903431105805832815882102196883401514522277336982715751527482506077205686250717596844521105308299505384359590686351422709242661474236864349448735169250930073170458170008296673595393132889821102078944674973629596034585750870363470573345240283606284497866401161751488918372364795889838245824284028021118390847219589675144500814468683591972923134522543621352087642537135567909633286221563132485340611271976409563897366176486228205110551751057011995567800043206501411116540734133344663468213538277344043326528020530654971620791261260379247692889728555065486038660984815756249868064245406725378126386747371785116718245714471273174590793419931702610057181816503246853617745530857808316336278893938504419295121190405681994631533607611207876766256989357831248523616671889243577321048443727310354017307394721115418044373544474241489914246500504622214245518218214644821743717605896530953721026021620688208956211336692749561021321519639788644361450960386202322894272210728578687295189876776982905593509982344480588557509913544920962924032887206651457390882085633212594941805366979763143551475794924249589848472200605102901545948558462502161578851981466714348313291890497780758150783021804885359763580172145189298348611476550618648660244536401602898588840128234434535148603169694819326746152222408843058870898610799165373708388160610225685928352215715048606919539208173075236096322032520750358131133954004197662593372752959920272016482641939470863554011609981274444742315570660225307144341630107681185602857644865648340257511181546159028498024471913460778980423368680573878507159439291359410864790898993523556730759481810505478575607442677803430634412547470054939121034309011971878552394795585014345763400217936144394045004864461455672326558843776757286236947152012475404186572959492418885908371106010628612278172470563127478311230869849547827267496014294342333818402989826959850212348142084166357489691805057482333915916833490999181396916796576805949421175373781465196560415277315788634114867923231476289113461875116495819417126641650471341862505351451454935511719035409947423814207035017746579790254224348378137090736771840665452190215600117768260579594708275446510231511436310935529821583045584102255910674169697906082219905911238149705588470114395576429375428273313558518279332940244295004969832347264517051274784629171769307412972724856730889544184660148472303757604700384329224872330393395523452009545540668699256013445926868117736801179900330587664345023484433488731859241208932742783454146452476882797223442579709610281925905614443107349731499252539781908252149045752162928880329664788919365444157241968790693335950129774876251601239363567231054660239892408109525626279391280110347347052907470849524537752987176416538140043006855774498735763171256507092498253995633252573248535029616779243672456882205961718808143823914038576376098978097516864753855848896994175731513777570514932693414493773200715827932664648290852803234617903927345657289834999055044135352923182874562742525976212592742620950466029649842818025552346240300197392435443965173371170986232553430999349009406401997647217566326337854487246567117315236327488788130164255161880506334285566015215464188028656837575153253991455937398000895584629804133701996227567959310635967759038367557384452057615706394772262205466769957551877024508923256803117842294180315802622463531329498191675804885931091366438042018346615623455904773343713223137695053889918353321772949012551890546410098696273226845161077257122494640345671675707312843523410342353969917319887846927260790394083024347634204786123389356210066850769802969433400293649094296790222405768032952364773623726433505264039131183623257504325065076024260581144095605582830773831659031426635965998907418073427226319972863963082523524213939111932527133563098135818590510537309611921559025535855798335954850228214334633418967513758609290594930227122581940136948143957587091882089630884438320190915545800449845032613910922166646190333564538557389136459407913376336414362384606890711205834078035985931190387229560860957652366278116250514658108049140618812580241791382453938792428034476749619169155703493794098171355525595135990613891779917815377979634645354724742851895561870045933384073328390856985720342629016639983216928076691648586355320763538449392661273781233113670267150733642478307719231567424808306013277984151814565005101366245768231138195819066368363890858548806487873014535077135849830388791505057233702900707475260931453463101763243730085464657618824299011489538651165358455535606291326906857315231358617660319382805430976112874923103588603851943682829816797148883990057048639995614971764815221538832051593347565712228071682717880346103298969195009177147229307625134530267427263163248461481999932136553021419702945933134941083499056191863457001469418419861903899774363401633732968765398228468082283639433510240740971638535537261591126629817881397819647259922016371667251169990982604746294891574273310213532603353907804521416371036343941017197545431408374020451925119930904731356815103343270853345308808697932409034368982797934813412218472473839217950517640501268223690438903468344631561448428980247694096827090571712108051551236772868460133868036763203286072250065863718038653957902109481827225173243451985644632831080555295035050738127601228182600591908712756624309726026892478956159810131407627879587139814800036108961526240356032836908679374271099581941267743789613985593338957308606687115237357136130790673580094870881681631006225262043580851354557002546682134239448809129066325853660940143375182392400574062009381963981382684021985597248704435964068020163822708774011582573981447156573124416688915140035510457145561653238699605196086186372345553860731147961620339624081602879897760522465715768199599894490801690832550959668476513769229672698688600972035676142575195231935934302394937121521389732527704762519389964098128354745271851648707913119000439890938220097732633848648943867927364562460626758352679967875638022792404989865425636397586446986662243451381751082234871281062484441445073269806478957123106632572907186313013002816591987948157791529310747746013977125341866241556357815176373486263734612881305955942893139740071033231268968325849507712255625498752097917356936890588129673876300050344812862396904238343970906316311167135545850008569572414674252693895815452802466060162918304456968305537512059160192664651920038130497502149731477637904162671564003349983383915863398244262581142054369949317162952810993455265159866897822729886375747096369000164167154691691029911024080206693940153519204509896690748948676813243240998066859788045768847310092896350338476458858646289879313232505214060159830123477361356974226972012994297249978269756693726235835170363274072304097288139759877729305859473550347208204166902661710679623161426972615592965427290975673602926594833355237768319756243074213579792319803007546334304373064994407689902544203492418487268844236856917017701940072681341587408451111627778063099796055159187969121457708042349211303525245459412117366111818792536350379073747625894222145582466414062023198998920078130397070180604780093343788023641110115133130269326572334393593488649019529213260634412703296455435336721813438358794397430327712796524333441671579553704701412012041394331676375401663563734524690815027832757734022557409653644472248736958911148401540804952919296896469269354245566729503643780020980101046950495433323589348372658728002823677016709806238950683928582711307065918827284461235877335138260413713282525906116574609864885259085775888848259640784067270161025233046108587728490145976196176993570647097447921781857050733373515197835332877134073757801306538971422849170224177355036712511116059680561684523430577074658390466111574814859103370419475388882500222610445579410390514197189759918389213566181791001764683944731875849286002422843530853445295728554292526169833953996741996908831735425966514836614092803901857893630569347697299498287285900006938770853124011995235170604860560096459148088564949269127311402893634876056773877210637115451060018004392759462983640312183895660637995035590163895334606648686230744892520692873274858235437763204384026738161618322544370051814876953576457769617097164777258375402882476349506219014436223617156149139207193391764606836088636743918660236165032068107025769693064379249809455115255367505392836489628116916557734294862974275847826992978277740303821585963270783654670550271099936674970255523529606619963474772079840583243426348983368567208091866621767426939800722328337439347312281544046267434088806427275035389587380289095200015350879500671359931414817671927730291735183827546468476342205574472780482102332555513166323835576843507247432024785309227856269893419761442333481419075670083369556132216500432936583423706192792147570763335397709233773422621305052308314722626340233487724709879419870822338783228938991565304103775040331379483140252691822444839787663649039938823345705920711121992250818828465062425017162277118067361927756839625828592149240302045257808021799969686542368609359466154564688112671910020001901266003637024950088084326965131378563727699343382762764294964735830717407694177940342955381904476192447803681049066870993027574064857102349060227948524401326952859987116421098881561956320881040535856475851345270263362698057688136085867653161553020890794291829371912748813591385523386397937977254315655328077284964927983942735708251026251210754692531847054448208077301554790615887879271631994982601661545786824559442026193786644178363866470867908704833217848601389963349515025554046901382475210685883088252993779025019222928999115054881122443709584173845470250596231516041146125197677267962409844869799290756932459504073937403752591098172888235876956771587465344546389453850866676436604401124094941030593023529302788775623130682279254094005196540085056321737047524874136557183646756806526904847379384365895080355124880387918220973134628660066344387418404401198928245796637936190281855471211681245379686623048117592811554160620748762719718236083849135270366514986300391958442477259139032305781159116472202080922580847900225406388968502204894887724019544799622772145798616133742989137597729859631376894765531143157329363999044240823617268953286215865188467803158779964891729207492654904440723520498986802075504470579584342828167283358751454667776080027952056277787088616962595152166776389016698242126803746873143846098573530776719314495197802823383484266881356373915854519997663482323502436624395488367195748133331213073224726882636418038587029942113090832927705639445770962982585948867786954321604432367943357033797008272166085870022474210494769288299946570847588329621583557714302060842517098266722945972006416256899345110409834645276156676926035808864377270435453307643944281679269539281181673825063584465913935989594312390016291115731416839760551984804102638731920377694465283303532518374322938554686912060386922217498015772920337837129119012325001743632410019166041289869398723707541040770935266556501742713874133317716696022865065113659484561871528140980775948496443218669832947697856311748427481606494049418179418830420262146447900590459196454986507483913073369701164906325199778964696221733095875279619208890724149077043194474732339660548595576908715492972361022519052802752177642247032783138100600889422433473235881721668404939662530862365208356552538678265012897410645148578749973195491993081731401568893596685801170662502615658889062712459726841132809499365600660725267404782742071937293444420415395380928766569273017985498012475148641467320270759223139839855934504362782310147361312602319168147767436571825481249548684033188203692564161138535598210177278837755417119062006751907982770107616590857514999254079912741263788907192950736229887328952237716279584879206587340528021208456747650818816238733502675602626720244961375228296114163749200356335781974624769353065731593546612273076849493483129546223336468181706151614825362261314737212106423992860887257200971548578165642779562010262359046511057166058015216012126665532774156340558973413709403918841102986053358798702294799197498949292387399778047253362962410556893607343915777875905420908211289307004701407789021863675884740921367860417276612512335608060552916090278670653361782344318975527275899162989262339682279075475432460175499965553089652842975518839897432562194960268954214754009032854448916548649637313662540616831828865625030541722503854109565252010639729027397184278980062675495357060049182028689523716363066612698137398143737096491239407354277115044142620504866350368730759433792396500831274741858480814346964882582999155929012847754343753655735200284592996867478797685916937559575883887862846105884721389631996463917352077090586836515447930392887302377276985375650133209879204123640782543051667983241973273790687971671014132388515208426484612259438092660034669133407786773258707664411275347501603568842907860425241066880794129851063559115188488485736475757321281940349933418677670512929485897252678033337901343486913382200636524418322925820116480605919135198291404126820043479400933769020588784044744345933011812508587018696880993394467317304059394441516262792057394402662055024769079149394281018094874597016253717263028389959193886265570294813644961555052002340506241572701055804559084217079868414865561535061802704386745906374018452276166031686959194057708938280730575571780697810018692077978749119882360614374724028921598857224589665902027343900370128400597030829467295294794096307362135249498501558591210562177422120175967620288510140278405802311119720384814499813956786387665453131733473402723034038453838335590176840000408517609816137457924114373629111548560778122659786824065509015904714697951566792920817010058966305808523880213324311256628952698894937717325617860435360151218602766202504089638077578575324394813760674759023133249075865460700956623962723407577069971459856836724390332746114841252304775651968347437288168934755883842718949724620621248386783151876732902100126801666205260777987347171862168213183256240911896558604738909381828146330732632500422185297483212596509073788350308483967094018107120690461076722695945090856246553045580346603475582761037160122123033521586641636811341481175938752903977767006755230058697869018577647395752716740420583478113045760580713981812585265190891314175157024814646318852167955597090867643849357984462812426566813253737436452572796051987273614834279590091534690604423032401885077528605831998577296747895340401187168392862357585584929795494546142468555573544848146867699932501497204319691500410538044406519459381502457455202520439148462436535896694174699714265632989115131692127359918889937587872475116866630827356939212222388452778571121085783448593830912516958603283554903031452477614535637607700330826612810582391268204202259005395714908044227190697917799048062365031456916112296433037017664863803190849256058024789387595441519309635310454526430958641239429518308663330198973989145789617953391281380787138589545668811123485710397353799474793578832380233115339268875279671416211518349807178422749209494949662413794048020498930733337899718297327093910632584533249153295258482062335318225640642922469105505324920709424204090377760916789280525084140244118752197348041879333876406854624290534441768452977378096368893204092574395932208703513032244138799272993218677593183463721314033462976517996506800615117186069412448915566243822732320818950244090892993642022403682316630128123804642277327026404580987510898378269976427831839986991913513342732361510772936391097773392112794315663622708066429978344214231324446793339685641796485164084645067058757374335479042624390725938246049015977275879394121167278989421504479589267469964530780358290223696503604933348426659416022597668617350492078553079031719198924702041803382723656739120877509680212524073346333140010234492882880413153082274767123615680164388222953655975472351757080960141441564879233555126369613083812692321041635363291234251000521290309033436228624459259346163765487789701120913034437296093254792720840611525894384120839756050742530643098348798460198174898931039625029952097146495269447835519159720791705191217381684661276977940200777117031664270209139994080184292558216793932102110307125728161122233383529569640551568179605699083092268333919004037999920129488948384470803001562363452306166513961621646484715423177498873823445746369619807550001663284676941463801228588163271168773006028726523957319855069715876513778345767172600553700831685581327777143183733644020548171163609946570090858678759402843709167871535467293342675582492240994147433321810188227045660120910365509381448986156430138137205482714637128590041440639271042279467833827280109348360901817668768034960534566832118848334993513628761856600179851796052820467938508883501850304112159577375493063981515330305960996114989484965121434178912241628851536470711729278348473685603529254071859639297609640155502333681878188966928023294834504946020902809382308492699743217803254673878859908678527076112216353588556461353400133003590776307249834432310213133321532854813219418526097199214961761689402037540558913339846058365502548090164094282559679291069577230996390978704948117849977328156553188123682352278822792495497209731667369829078901178138597919754778424063669254242974086392719451913385727123257943762949904530952584999754650162479439682338490769824563869057652920438844979398472250022913858486948161826509772009521559565719807204619392358631054150345573076154214601998707768993728598367978693247213223659564827335163436616321054035449427382413549686296791721643777898847340135555131609520710932383350501783702973430814378522387518813802737874057690192407970524522441083704406070491884498210190776345369989835022047550004906723527779582438610286726111938073147666431919118974539910251564742650324872887482028082748742461275737650388978457322435640283598172150949653901445750737537004672764525390486177334331609794023662735589714396236059304389619959439946561900672601814791864698001278731765973974602313684715165035981571764655332534776074713876580663629537796066863891678543812806192976350820583178783100625130374160921357122835959096633277870582611227546936644574866438970639814609061644474874266994432298562857161863867803743324490576434498650905270953674535145354392995678117818337933479273566275044286676518290130568492711607514981275689654120309218045606773359829503209091174758741894851678856071078111266554695291410995287644002942642275626755454362216890425576530561429373599208913464467380009653704480343116300102685456967358160100523839488866419971906652030090184599365099409720617411446773914626787559985485916786557834215489228588821924447053568881829980693786478293327673595692754564979259520699271228199783767761220865068132579768407732579462605421272448032511882209124168471510691056632635335652214135609892917581866849920313909226830860312223696951538401067237125368520747820851599682176745897654444431451924795553350363081861042013445347936828634618426992958678790293318767427588698383889195933682246243006002771437881192102472512984965551718282333997300709572276100729299164743308620378636889309593766816974213807828316333151188361648924703492249522280312662253482090116659233076784533843593445419213459664082872934969587873441828708694971044000068193173111091071982676407221757276182111206707558613296309128549365843679069076145789677963182549795823685910753831040958117494317692078168122613258974784497841596448220011080232085157872817139816014431143399214488613644801384094899797356192272878120808578099839430606842199349665206012037640971133255008479445898315054120171194704620941912307456398539581593612980615369919485047100028698098458104281195301392211773624704692942645690034493302447329827319614209669188037671475007266719239356772402968803223983200294360002760533693333797321924398485432871883932395290389037127868844930493895360516461937186503983031464680699422470444760750783665471729355193029946986545433369168490283981104987972941552600416799950371370296001521345388975527761582200062588742615802609458833951417044041571037483135355667272560933786622129520270500848955427760285466203048160738738450014919560929803435015970983860030243807481045772169184201783630205019379877051941630885172431830319840294148430406296555095034161793219692976212692596563115383681479169474201160950616668643838835729770860050974947753129091727054226994508770204149823742813665195046202965013981540877721306426143451297859800521763693098343360083823211834366433458965038272542521383006127627478558946922772080104253462974124324574920197977930656924071464534981650021438879236594273236237637203155396317212526900242468450742150815888463927517718061738623739248490237665689538485610343470366482075087417887771507343465408358688000694911327938288606062358715120375856327337355311225095283079686534503848798403964344454296492534723908007403037092486142967982205227502728551237833498666118225153954710236305253274335571214501567455259535862611678114891748466878227148446110410737700808538511005647836099356019401751243970252173613349610639839610551170916842279658362088398843437742031291673027211422383667676232424192137837725091102965550789287062376969651577110979977627822987456182555018008007032421029822511237327373900080352036943641372965584070285599971952675770455537082584015479641597619320781627562815401255951719227761880832295175157817815896291333185671650132139267954162638603520030110436500079786550026727842883961046929150461216499842433779667030882683885191426364162027605443764127287779013235380773956571174667053338086369039239756919101166038031773541363560024117766413326378041212908007488729869455692864343813695718496763012391379742628123930515689273031874052487570768677414482584122499654457823104751928763393228209891381041493998076296223995213253210471534345078867184432109681064846748611075437670127805613575394197436466699475789040297409597787285853817296477283465430025174113353579373001007444092589013163537548119138570590801999154957903723506315932648677132349731237519107422392150887508052674723113692161010328946480194464703308317440424289073259723979427059562496146472975130638473028433969232482597593803975468336482259916915840982363237254734819093361200126508642742872938122908188676879030366762642522161929219479662983573895245825992108646770353427223665091251631651527852690849239334330433667491948815966557752301251098197592671079510132864587302966588202281534013320519644742117108796355476766561650077708478229856787854909817292277203087601979277258325539256172899644078721276844262357194503969701898880740114543202764744914473302032198578639080952619405697559859049003916358626351343841356786397091198319680340573239030154859134274108152635462479845315723005316270606948782494348102810911174909740851079271081091875839632408890726088574004532677365922600320051461368305828463369854780984669814195760648562990837351491128677716345069837915185043477806981646651227389037541616370175492866766969711228337742208182955250771776623323205125912008914265652158408502980652984083026853367214168917902363842010767812137850328821394474417975542682699314212622142108332022745368799714589540766038352868165733428771982353484773513316260652443368096996033444489663022923452945438566841764274197462213431521707761502828322533744423850820206435111395627299138919613041628943748467628384097515173344416310477721209418759971221922581222852092017276395243196855724234659676016884861583428337654285574993974216289164321280590567296511043804131932539614862029354795518269787925974251519383769989175155339694107808488913705958079256537762555376555811424463668379901128713680107133891196697096276217340636495128253349745397724490478205669690075485096980604754570673606217217548543889301956679119254357438912481212846319547626219937027755839022570217408789898158259199387815441916900526063714034760874802803450435373740598859924730770139749646679276997092869409274341945103866866781623465655945520342016746261522062863702960585813131739165305526570553267788151398585375505103794303511830818792728127201615564136790278766691247821604010658406876359110497960848247786781086464650040636748249126765351021923446082162686331599740478759238784623644072094712915424347699426140253128185854969424505024704976628806262113436651777721154291366984420664769425246955878345352105833899394209623217993347103921271966746833284227358604099563331884854672677846753443777957232359990534515791213247899470273854342089925318172544295088167381083995205306388681178973727720294125800259258618530008723895530706167184897547751005789623144535948141814780241670898725434792582443307143174822449975749632755319381117044507079574615625455389052949801865712780559648799636432777653487002028172647877971408410682708132646045444572844669774204269084895417928047773757054452104369350301491299743729000297413092804417393616865295548763585059476359067512823437430151811777765974585415817132904602941182183817339623442379630248490343531013527052926002986270218085245748241289862639568186098704367874648725755853738521122116684462907158253275107528708866078737836893620546597978410755527320308547340510418263959703159127616725055957067873749271342123720720812017915472935908746723352709671658110134321642195497184481914938242481878562358639790986904414286654031766601260770725352960131309064127292382938696510524744207996047447972449560735342824722787636605794984657404285238931827337344297229589478006854736537688073444914653787983244065982840004574403357697591820073060804959173046932103135006798921070996106780364069749303114216523638816985906837862415880838049248113750624031969600943534887099336931160389424899557061683607557549892450797984232171552723281957716623186254247917839660850409668619437018373119809119921950396934199282450511214131210516200922523495050923273153638746811381145510780777579404555211594360082759286758874258526101412719877224892347229059127648953875264690351532361437915867096213795673036627433097731000791204266703800750827156553524282205845070664574605345381588707991667517830944971198027576366703290759040665417557146949129905668761363026389421937027769841998503196839586563993802500485482156697349202330767259715681384849289024855941440466516862892903096301366903485557899811030294224886764030856353777886890928824171714792420301951547965401377173029058239957219245628853202702191351550407674162207694812993505009635734918470947165388831992381943717614549195374514823546598554864689982384079843211192854690180272351506485993373222953193850629136342555555965077092693131767017727832399666812549681441745005587955470976063482069275865536577995748381289687759960923754816773283789867114870374330927833290823417348158751451648661448658252139615924817289696078660984693241137877056713116580681283701594149176130648943812198275440062658393238823110224595873224122867688854166046662511106984469427144066520608548221340866218335819814471216089500020585067945953480581230625450416916953418906201550711012917223277822444256371062901086714701403296306305970697685579503104279468257686908329685899464336838048172647816508985884461096913490201140938445109760447272600920620153393859659642829820895380272927209109223891105849443899120514756815826686377983532346143301302975226931397765556471875226175619628939341721166624196120665005145195821589245484326368146897888541861254655359505486399805701438785525988344868650357005005476042452469787886741285983787084651238364225897346670480919578362907458353780379423761912112108634242188896750041909645571898070387319961584536455697307828213689055015571886698636738521493690906720719476509657122857901962813133869261417504382636454027008397766422505463329375623876149347940782737935676158853536027050326974522740545670929026164666705374413718135358704889939511945774738873332585047395495474983088789847711235413744070831062425848133083300040628356889128653177411286992432377980546573819745572631136216811134647059319550382620411839513001716746673267184189990492841825031099899528296321687389758064850260384223121181992059046558175272943947199258846737500746394863253631017104759125148198170877545404843482690183846295025363602190026188557028634279460015255426681530198943411048084604164586641021756314843924842839802395476043266540499284765581725497809806038997395055249728877294083049186712714381986074786055515510049959222729203651905739359123103979532203653018868276901731409030958101341575212688138901811082967806239622700595213132801439958803830007626259420709414256733933992595920444963693081136530735865840555274916896364553063488908335539300713462362716287358048186128301650025292868744315976177741727685310294979596445078139208433509480827325797675728878465664054489641080784897343399596543099634800449085545843722741191895945854896358059570398167717523196950934639657447314524478351845462667242134131814183897752679014655188293514059647645062027273838220327724698891614200143851703500771290143108217778831069702817314395530014295606055077075443543632696849018046557179417245911150763168054974023248656632299968575740081239792375421087487113638761748885174759782253033267980309054129961371589341578797574247980568281542646987364194518000873019113445646793216019577470770499612690868544955776511519747564644770086373237299494623139055466168500956731258579306308076134580643167474482686544701276619389606848133239030558444060766547502627870220812877625478348544829691295422336827522585144911689118415107575487386022527281272699242498853917895593552558863252722460126025914117207469807541018865789231845045812160582867239097350033653666531233133153289025020073538310250383028930763021572409781409017259496901064690241706978930151987081236724485006290057066267645694659064263959589363238416070786410336101216659228011289020772663651483883684554400495840910270550611534745730388393806675603730016018522892184409983899472015639937826412319892277476519420998108428921938325552201513098071437962902688236427378513485117784547728812938040755594464933560961479060698559242541679596667619433689654291209925895474777864897637009712547855920101364420014151422073483619878736769665828609139532372990766478601346725333504172523993740546729434922057524609444126386244500378535216028516548598598460544268243947257873024598831335543390121235628652923033339391336971923771484394545942865347459454623842254460656324272433976562948270080235496428012623574112332695250021336069216064168092973104421244267695007565853550361407282256568222855182205468622130589047505018266175523134267841037559332011797887258015338540434633488646488943924207015344364366226068310022508445041459491038360385200618457810539361767697803812828069450592324176434910075526154272965840455777907630804992716450356170497138664464187743067636192665721581589911479698088005068004593874742020805762029635051819681080670771387689959910539114457747667231244909482059355311334483563807590134183088327423648007961582349888921829197719635719834611783594726216544103978247187839911420959108545906109433201217080252679173943678405668454889322465749365155017909953292528181732636810268533957486021048940106240904522077020195860881750376747899925782032058331397138480234182994870999944939590856096151641413230797115117249177234468478372802669531021913468332920607526068289145996986630182362195133196149386711531599978378953780320392075472483357322127040428551786871020414725324289505013135369116910865764621842288137820350953959525510406934534629437916433530981164279866543662983193970759322260663831089923159273412422212747490593294778630683486238925113452086145357632612633193873144228516430746087534776962178597895640463299602009048731416980307141707216969494121505056599800086789373807939685008919810907878192498708634558912346506490658480729318800849704429039018576225602192643401604112013018818045325451594924441632431349847504342410057255455948321880806980689673167096193879473835932410815644211824013539866256319244829575085183036364676106699492650405929678448135481106447948610548037825153261892124947411839118475975530184596297530159043143449740151668902949808584157289054678064928612078603273495898714720986230976391251088014198982131109708470772281859228845948924948179040614731549867120986512449260840307708101149553424163762017854897056019753678489301911259452939741498996297914469478501618526065676361928149972416108158046973104090676488358326554001018555409997438530794522209975319907848030827588863310912048434069933533705752241138637990795951754753139627094728308079460917172232294165857628283631882956233264039860066639579400288148295940211149411651911132678528418058929799675761688156543956902314836902653774673005624965824793821508183433504541304667155461554065764891234706750505353823636641923267205554567377528721840771539891138290663714038493241798355934386056994942949238607915737795908127882337820239518844588641109462546525679761969935432637087219129706430264724636006093958041326642531006379683745564035068413119607316425297577777952478981419024016565774290437110908053711572106082269134829509820836697887245524369747662125897082567818222828915134628703157373751715437722106601997671107313378814375203457380337043197444408781648937563195025679058940827184489388348291290760287361132573637653922602362164565528760792938287456793157595788738620674517611088470959887222399366843218094822073956708543283270082939049851393039320077384613336896433652677471626837285587179483041398667719218625362340242298307500960797813855215619770939554293345686661868143717792444961561862937868836087338023679350027346127328000930267748439981360540203730852387480706741004247808913289244402097643332559882054993883817210371372112608417263148871146328879188478059444116706204056626008439406890028139713940425922330061689291619939169507716591975569764613096457965183625879609213933970936307078169074353511427448957368402229959451486839784347115627178290591840778105527946475141492845287057754987159789472884030240222631089612706249508396013927472960502622167778217074818803570021231927866690244692898569327548591382271049076856838478252907747120687655618617532900871186786339738043267565593994748416601077380850848935533408884387102579395625093170935854719885503591668494852975019809071361624364657275081576784624086077439795996685829838035723047036289251201389024205759574222667390995989856560847776471566431749665902357937001311365409333028908925059535289100233207872547454808552679619269195680860170180475257026170935087914615734377292028508751768620330536194012494659952533665257218194512679854453642097257544996514583928578476935685346709094381736506460171368658405435533523032639802734668584538402951486328750158545774561715237318755335968619413959208881407591016518213201531766532089606925324806406740736182854728362026420626202617466402893512971418889253346334280639087561657695909571107998380155732911344704046200267840823171217566022800778643055248907745947791603856975988101899897655494197498876169122780258233072174088008230778724340814346545357582236202656650296331680588861311365008343650143466720024535691377588429316801152626183098371718398634797484373898607682745439249517133918152116014506700342026850134356258870959062819993782009447326035686828209840616001591073527703090978350851968063166037922617479040476862516974156728797867302172238442638386555604793810931627510518553551089280268123557059692558135831136953894376574028573381028374575026735824311317085085017645038078811791472606348454109418459761901930074550255410851546125911725477983550275487317278767160299547124383793524436158285718727559537865203799647265830830689288288780013394909833012490700812800361415361334687633454123777290322774746182793551929789087750011361335004953359457131517273009747933314023533998387169836483579126840643724389608121313184067345964437949183088179558914102615066366559780309819912819024385301090020044664544867348847640124823701406002020851823289657758770929046129937085672394965051461593583959017999453071233611332942059621236413897322169062035956981026144729534326074543753833714300801397216973852320058105449626282210567285421174157608092983413093686000156397278780120153100664142147681670002361710118920636180820921641048924255329082953555313109243368819701621688018170062324607802881401019145016617636490059704200690893551569968922740325435610138502362691037471185691895221999755453088457653103492787092413409185822822486041621944028000503230378970578601474737789204756499260962992872987161874472139204806922713276039904587283965379351362627177994353510330879024800274776871875348451173682898874498556852739721100874965739525872388111810744573200052789340630107506707735522650249851018977898189474877033583198661611421082084187595472891357499932349628017155099156057325759571529947682040874033843518831485296951382161605555684727359815495664601161396751870494324388171466290428500502254579007679292866934997921916615788670646742170820054242694822850050470158923836311088732290703187944014685416367803019448051407774164147737687497717127249081278669332332097722508569630259437871155158599278044885016254376475298939294070543171950789408292101854690539657506166027999682734140533022027924216226034705404233895146919167854988884106212665962937523805377297040713539881309747631442075371175182520648579813940211580243025540688803639236410074418311415139168101884956693106240257228523928721309276532149113408795041137138831340277054513452397781879488467482185124416086430717106920661877994132947577581858228383330487162808326181241226412907157294511994169158999709228092081019618671568358099450485853214076646727108588169296403328899587676568429316697449833165161974565676042825616108559247283956799885217508397382027317586434090021367935173565920475608582918985915904306113308805219218529673357062368023514678217091178048622194444266162505369453099304300315801852081209605378279961313061420305068266684486723749324453136827222469882061223155050079599503337137206286940327270473424993341707036010981336346248082188288220297538858192374600281050481487969544774169350140493449709273073312325535797986405153232491855063354658703124429812356652765773604618212057313793831935217196259416010509929312494519754712196375711485618323246846492159531813331258719928106379546599971502747342259638746090690234461346704680813820564104637381495778952787298352733103665206760848337106246509458554887993149071949045787564283176441090267937131663845888767613120734903851989612490935344904780047831062438793421237493368223284408909954520343888306578705453286532770855834960584133931231566835250733218020733906926455664840313117009089036437345018613535790482026031069401439041275413019630958004659873928610443210557609017125025244398495494863618908883340441904297849340857808423219881835794400904440031247199087968460322017940194880129613105823282635007083960614468353277927056205992850040285621757637821359665428792891309646153987036635917007949291421092193766712828993146822243437126790651066953607406083556618163065560497305258083531361373217411128340116407366491091664143099898285016353749646442042726822991568697900069812599329381871308043249737607659958231467714927385210667033851381813808596671814279439650166976093588915764683081293921658301563899587541246313888555634149410859901236866234872994977077651890130894582333117149008480097351399488770105008313927571477627493445456510946482704022010515946614606418334529895202598965715910863713970216331962063013231853759860826470152187667856740178044942009855591345730263467090389271583168621933693838218419660535447900049230648256415820263906509741743113306937439229637459189618027667900228870191092298209792919825372618147759743870091558396680915517838270854270057057725273425286396238296429372831391039756776271019809266862689954780478123782799748770226252976818517635737684879340304827635122966377052376909245291248367483515752612566824283106430188010736032737193383790898649999132124971531206819131703920799904864245239506213126618945016425429678039221703552859153227649721535116533260037473207300415503917804526489685639758828751107354497123948487649001100855153107307461791276362926987842150033197067877455356135500098401052496253047125493612165538427612121253459554677942013498012876408871960972980452430626214737528021401120438238678273909458198909318217884783518318464504940528594644888251911693156380117784523154531585044533814341364237675747568744819332886785763203290520981770997023620419304266065384188272009414818851167790716589510327786480222794451124012392259171648409375350047351817874408824868337506169997008133836943353525095960644819378897071391350245867208809345681477596476889416852513883324636413460233412282345913707189549711192779753036921215042706901915511355339769736553551542600045185312710463820217862407252061806829275653765992491936872873870818041300630505288386178269559912808250254428338324975555523822663571603901285885081525098483769763929844824551323030655242716584278942750338675686011928284331017533238105189418276742742091290493063547066180022999048978652663101734111976482109368754594712602120993796884914388112534354636001429693387153668778599263050960773659088603321473065298094515946889174306316389469688381019309065854225850488209084565199980621371398482556429709595404475269043503888401541351581652476555689933813050428240800126364247552322287448029694467728345115340313646044311201364684439990177290495044449528028932549778920287300849744853454196069281913766175797828375570374350534523423230709776498080905337397023548586507354440833490140982902089575203275376912561052245028939750153934187521812370856747329068849218978120566083362721567282851794459229022955523064896718666936743870343743504360283480933458723594201172216128046720036540129821756375405836195344776748168776850133842208677453029044943469020619153839285043269602123083477587661544986078475906391796700637083417572968455117903009019096153239880429651991828487134681496840151838918292401986975516258856733122726003971045637708219464737569304957360196012711364616424473688908525039315407078821836889595699257002395290824337467088080035609892239834412934276787315862587187505732029122927877096227662148449377630910943381741167617106511938126932886464218513978892497769896048460437558473527029101089724774223632685550226016441934869247838578625254267665650225510413888206097284787313702559378349571044179464397293661466211569994723902948385009276936275281949640176158249689426966279678817078177979906202483326573152247175606095347813202464677094227627682929132662496450195207907832755590834701949826351867828068723902171616527104960238438413892306659313508775595360960203916747101551463371614278921417816909299519731760114976486926885075255796265677290882716157116012525212064189036918379574776163164880000581963489947407370849222191360779350918108604481089745656969457732940288586027594000002678498569306041112348996960153253131862936093631046641166088379055431214529585023281418172492952625590692259757267752866786251569110949453680525952606920392048617165857954251334591010687882176795331721815905407245551783441298330515742578521194701783122817161236563944590093104369415235549322809957621910567313414661182170133444352381283806746703180283910257374250852161009279226277793549292837069087144585810930061798277965866744294217932693904286247864052081211343305378641790151562641537777289990605650948480024737938990325295801182464000672211077502306585674268329051905439575127819543376716249352982710448586723757852973370495323777670662170452403724080866448487325004749518485270066873193755840811910331520231883711895875696520087264560082652915053245974752601534706911816306090821736496344612199695333302512264089000643154641857654033251833867603670763292339520481056915268128829890079361187637545176817509859970540593150880858963709927816858091103791936580146467679969638948305295006425966683796569183735167967772103757853389624432746753974742776937065840653189538074939397824923367498462807524706243808933604019787933527625183498058101001504359008374625327220954231787255604685845513227839564834969975031374192519499050471830888395272755944642717040375197612056246384686765464196829177155145349540552586199821715393859392919565345445244663161742645822040300627386007947795015836154055312382947876442063763634961318494635362732060073572650679082762478335440442746120932543810080147822851536286013161896825639110673317439000377710403991800767921393665465861730722562844126547790446649117464595907493107060625862486650322775216429896886284359380829175567078427486725588143893601562874240917525009574145463424755892124668858962638778758902493250183238546549843926703699291481192111413310630769299548348706204814674731163376193173995262626033381364964140558393034237963543653809546225318625770246305963070250898409533058420855542621608539820254113615140748611205050639617123253073856753761456901523344037779206538090595161181232479519941509192229121785084321490393258771382189597879590822982888865011451025004859678469620914766757972530085325629093874469561207767937562826080150774477864294686165603961441989338932599526254481508074045957895301092474802700243044613214320558050995305341641842491886340490431072009532600664239553917255591196951563478496292458100925545310721136184626079555449360833248063508649327027071176982401812387742986773098753460895772244949062610133549925593354539573743531176764765390517711048223987920814552962575173888949714336620149788462489879730749387496625174322730160658886510449557832004527358683471624540142604147420381366307413793120678680907764982870895960820852366474194846212379686660308156326648273304078188067505712596951080888448653048540473112882857348447308212118800497428817779812075338791987792236533609002321491317484891699186605210801054937911303972356042252370025123259233939449793483573113804679542756407113136763120291034292549147412408473297759256334005410491116664990079386796867355869679790144098574496774119805990894669143459997923908759585693882371057772620513126687781449719516717398066946567319412218321030781214542295922851291834565025595413799929421893655345920426833187694830175943338455264249353835155337187103854334240284008725960154374605760034612397981685617477088656861807728481736764321636150158510091523683060729133862544167813505297900627320867367893390636327331156414518492831862080586371788090661289560869137078483964455798897601230092138009042189615280726355065552165527160586930328662438349019191721495555606561713635635567684106848108888232188188524569687949240888856578310214339428192426628852211252360399892060038728898238295805987640720869777115873957600467117055218571020787039220715109672031104796558548200745158311939445925621440905688657432969072291059658635648821160250645948062915185788140504364871653125969526042902269236209885893343157332809754181960928545710500461629916285116106500534810488426773688558740086322235470218237395705660248490719996111564166347741403500101736350440537471461480139497866387275493398664483523765094441670613349571159782264005558134006632464441017247688556126654802267962030797068367344626113113918203185008281768165783423028890410410847916509782862722448775083040072173491733638345456883021955216772843110191589096305604670486843382002720657041227397966213170180353624723957896429427449142032483123654703176613349971289689238897018268087238604106676104220210518389686484462837269994791840305811639624736435140194218116113337782891396754037727123019922909491069101710966722523002752610845929084477154363608889450502618155241958202945204555350582595594730816108566615158221034669183127370359905327130824142121478907701726732173946880200399663983366212284659445335263679381979926832598653996484409239301892643580831095412225409556662850870618914209275266676653866429612656711908147546967536568896177875210621469734494980579912564244415976923102584510035080006315743714329311657255544953557599025916831438747576392257170648405267854961666939689336580810318181322394822027749808303328805393990889913171308219084149356643671019928664723409570568063021859099235688250236457314561849084304240393094044755193537126086253744647964646813081460567500646298722833398796431479146483326783615397123208658375242067502380504705696334501499168094873562562660357206802392101203482334696053519773405582231229111168393197134165036121230439380038793886365446678761090374404925789981950073489228701585948809368319229971996339982310657344965848358968059503306460830504647508816156927748035598091059399100737843535410937365127251818949323598070730017329807469101733025702580830147326406176062417226987977242522337376025068282955190223261880663928171046148861183063243671286639574098376491694488712656588773046171794920388813750485447875029242897334281337202833384370632665910007600980862954201903844713273279913395019716417572231024055125441965105917497766103613192818485825443456611188702966329758976083675567992394760776810277488548772703480012819110434973742145642877208005138490305145410874970386095681641520647523239854028397531567109011460335928184225522289741757834235052187705513621531211829404465088294089298588419991446430016504662922748239335672547117804268046466585905090882350004536890971006293846073974165909976482576557126498762364443899563077254403978378226125293355382045172895306440675814033113672414986887639962416547902446678752079899883809096276150345492798238751919121623215697761723653562351947759162965849788897376660564577253299919502799787071078698237398026020044495061749709193414244660062976217869412827809174600114599277952727455516182632107294494366907336965728619574444086602328468237859288293276311906501827296958578903033000187923684440729388876910850277578400232453906088677550781014822227773170119201370175649810697710005054812719327091389666778308177565747126544405302576869514068868531913566906407004013008534781735476783239071955655955500595380220937315719772477782141635024979648299076184915280895941047583495217801235747613980883087076243554362156497496035029649864530391121712420482789834145950133951362369145198762216812006411160361060056695215432380675702572889248286822382771586360850660920922077616793734076744950839559230343174898270330820327578641381835128390590519234231131318681256682977425153401755602652419026456638112817201147788973914646549770635580358514391508351659094552530803401735677497889504595539611556128837399366916753528115511287143942691825224905227255402745418925987618375649721350940673362167281162118464775456332751600277836493288865377853918103198327901154044859583962155259461225090384079635484941649802427686954463489933912723736164556589600186805923067201290881607219541225573838558446854446688922421333216906427379965086982758687972893652188496397429345569767485936113749504387003122591887654185007047004429485668774802477841258651568426528303009045347718872283936009276920456620763457288959308543720510071555775604484670655940690817219381587100355439474299519001212014897524499317014267752031301742700112285545734796949432834996022574027420963439826313423807557264469921910929925809301460211164628326728512146089766828418682574022744979648937129125137718980954672854885482392150762576386088195620741337203512432587083108101091766143809957884011732083028339533296821572174593011344283778747721261843645848389047426432843532090550928809127087765870614095222259949312892573496613899582671298667931827416965750385859534881574386850895414477352375312755392417407646691796418936993324286501788910462263551833003124934367383743750800595403510507720535370119250276773203791750514736944889667942980155623136238455904260734865073363150152079845559517954157475711733762578129949166213740234081305399097341482329036290904511192061349792253022987557215390548843055566483392133960248695747941682797234565279982128555161073277655822246156796848149100699777535422180339768898994438203343817039337792593854489874731388238965972090260054391362238228530725080666864263048002649665169381319380032019159263941509662805841606920596704059896933671822159789819036550027416242376482976487083918569434979813927260995892979875709482380560709455163763268808348806488719124173962558265983178306114342440073091612225976281502916359641910639539200818254936329966917234153163715808271590658381911080188193206429249001674751307972736725786029911374172867622616618330411793650979702103983682072484242770031240903755067019741936303701716740447074403865610326987788591286140591605088373607607328979703177291985420919187976866252998340596324608673202350524921666061507343963267527648998899160695622355361437084240515433879559910459361019727431621610530608534578915680858254927717248851168097084708512308245033590598827317508547040630425916777485556065906402037364865199214341539151539337710811931178451392326587970655204651445799936550632720945312468063402484753843229835415247876150291287826628957389919606043658744155066111458311691019086327612089415366497614333740438081323414284402296058563271104131023240260801125543545803412174505662361214326253143371501632513612423714717561431190727838134052736531175218799948450473828692182494878724647316474642768780763316945203245399973456505845697646569622380131495118701945064097405376644990218858073062371326869711028691617099870890537718752808659680627637806109823255865056707858529643959844337374498491301211839927850407113234277235757820739831347893541645507695670834716442607245417058060323441662887696721731308296065679491015253004305836336281068245803110478803299795417431225864704022203509698164103494495992893555937976259634284873968529854717297737163219107913760358790433527271272002034861610561943222812277242078213828471553798981071304982425419143267358506577024143656173437440421868890943014382781470673366132562522663625806483431779626675061499527320442578025958029359501822606331844256007758014473674544710106081321090238240312118482366769860984735562602296457808295706004892626089814404293941266236902139156901892630426680564125624049397713296491053790292002589177370329547116346325253161364023141903239676959556820598193498584505704569206341345965835799699573774024551222510993688112104204184337550830968663336829878861116394567054079055444378581701820215965359610548521831835243739045222961604798322601706185885359379563453269238935528147332151408845495129983472512351964986973255698846656041842411239262795856255894753732907602690042646793034877365095493092754702778000101801801650041678818434406416367387672650282803403854986617092133672877804196228998383712919254477018855073045681976785707202661244235929004289887768294943805815900011349788716589088703945907719742219083677894271307683715595523076068321576959980343700490606990893992766838629647036643885193972882721910439333623983884127913887315747841778611805237156138995453684905411146864338242313011292335810122894696654096439733808797755026564522703391904951490211480636558591462290960181435316560306604970316702864812550265800670584021217790548634296721010026135701598216668162711245940999340837891760107356555693602286281701235685069232788837430136163431652745928060689143241710304535261328527918835244579440971031649105549965793125580863843164504657918729965252185350798209090851830467901878376222891448537924027360981998590199176615043652586462059046124830434158561649231888246169912651456055599609470000006969088949920225834388250583908647164481075103618967269290283343003337969531680435041568107531903680670773135044002041837989564307802361487622775407168321886539291091519515989597607087965476939798042319227017280811664328864019134732019517175719135590561900287950807876982173280155553970465666969039333678975332825695466912162627772131891065091182408929612488084284918836810487745667541132811003394412777279017676057141683817402450665280280484034031236122922648577387395417786493886157608175351520992031429423253666393819613753107017326107892919677917828297353344696582390017687482777195449569465513877302744746364563116547435124302312194498448362369569696951105877227179960295027975657333186237942295646780767504792912715128403603879294020434673784507123155840584602890898879913282133736234720272802119450490102603664655043232257108406823511240272486255833948717431789427939032087264334556326175626491207747171521330926143068030298906661319977940733128705416902751308996455810050584588422454785799220721283598987477349064046057891924000325544978007349374571085204881149733229469213044756772001374108619076538924742078597223594840961974254717930265101051000867157619354340546589743721756342437526424477471466809245769457394538120512795195959053075678021676645373446619333935375807526267749565666801193536458913758287113216074779903464358064698904267438096927467886866339035943135801442779675243156085980159434426736510671118576553950732417536310902663399706376233740091164899273003034870757597514568918291713455073947624016785582136391701089833123267897266512153025292619919013520788077687947579052217169926600266628323495670109629847929638736772977645700386104954744116461455759931504908732994792468373286115206247616363059958340814847275814536985990577428686273253956878414362252739577749039258163224542801812646443750772342498343662775078001460391158559942582791262851357205458563242650187521062531239230484614471812810497457443683224202510196237155673652005739704281385869172732432370746470729521603122002894944555013974343887704496296563758735508334588807909610262458982685327503192652419112817818518982876091036359001610134791585170411382208311819778457277345060337455413839293265220979839172319773339973908919456461805664283084242495409959040106859624277404861541425955229472348557257947449108476589702785873281501180085450080188666739868651272262085692336081918814031045500421244256172014137028714876918120169697580374760450119833464357584100523661101162244079389600324393704852944109118467747688558998640613701532586136311316059078719614661820818475135883807471479925917236909745546371239093053079184971509985833795325308397058135994729730330137038157257934393422600823578540734618464542829453724821225845578437089313921750631154812573270857069365943555209167337191254697776394938896849862386588452257351893586087790755487673916234648913453513096191140804257322693639112164196909327294073715901940833914720565864056959228227151851640895661885073292489889266710625008804160989452172024065617577251738529434831489524834656812730803386118008390763885876478215345011709007475332205097974597720338487678560462972589746593560736449294560854768256843876958072688235596402155956105201889927439781540956249015424667303675394357036751094759219517332241161884043320423272715525476972707924514360610714782460372887016477210666008196705185132243577832349581719528942898870323979588314010312288609248253631926132369348533497224352584987726623624318862739800281511351180111819539866937609243617273275126868785012838772567794425250027486683466180840868165356931946503596740914784636950421914213549345115266034155337842422509944945872404048885142504441318789362450688469202025868872250796577708573242306052183769696949110275001051430533161580627497180133012085414560775652514537083639382301986022034479313090486096353252665196505499289292558299883442565376869763148289311528194196889548488160430149401241509368404082652387220004749605139982625532897200885130100542217758074125583753235645733972420869830132108556107365347228181650412185751728008875012684659125212544498547858743382249513391252661730836104776066184233226364041210571939073914095115338198182897841545441474539951658723462003994599192652299270064181963101194269381307333260104840746017857588473035712157243757001765980951558562143473505605206172536586088409092093870188407132920908737494770406909600285104268298585659823193929406173695642720538170001239306478613727189644420847216351638883222710870114608484444965057659146910631777142936954564825924766654360536915640895560492683733601027206282543027717921123864233477701081997406045926315183922860031132570163185241680781865068493388346886445579539984237047016937719524805430127142586308576833459493784537343802924566049628147349064423238161526829514453070494468591269268568012766134023697869781775436041732056872124023317023997912908298056260078337426700699666403572221374415607218813627281678828277456601177195216664504263322217713149880801455888004243594211966253098294128595899374077569473774206852281390883365064007885664092683085009751979843562013759357267453445292011314868599181374802075711116256737838078193290279928528032609308595866090416631669403847483829919883759999259684314534359580247438990682584200271284912580261866659102441706136462506161010440594520227260274445330940949545199852768761874322501433410388717873447707248618672774618942633222510301679339876573835818526247027676084740231329963674236097486184758365765433643703648159179857874198758056376815567650866287392240239591321479524866089389158387283597131532107860501942152798843340959381479200467101494746335968476103281066746269459060479696429289846000037826273353890419978662333597219871184641471807915202535300295831472536659706369785249359703740570507820479811276638339101064894126727963971301521552745768034463501665563957764402074117941792928094296880000070195516314450206519979126545365074857732705123920969702603567257484012499932115371561193414608141375309248423690384811044360897926805650165711079417884620385048716538620045074230628622172987609321256181671339173470114746229157196001535662374374024482973751190280745400874699951254023454148259008153682510486355016515670756155717330141671428976435892565120238189908217260887372141372309833464066575333282211688081619658147429050970920963054193127370786110024421489088315176324344987063855130268149805530455328402754648574207419312515723387207414922989509472358917386541628167644131534214351632292184926512232122919909551050914816766221605781159407622124402639000020064389606341871099607768120851049417941414689100980086319839462562901604455403323546773815609176577341131849241702147303622265003327673202132544580751826562101777908466233341200552466618386264565262553697903313950538587634355427240017646019954251197323632818206344687942161567604757122386240976404433823138823759644415388274973395747947101596386925250826469195331818648063680243536598571120652008633227281330240712122795657515010541720358898977990343554382275070493034416600244228542534901489851999667017366979746789642669885482768100466388640656167833998670195112032851558848058109952883999889072351059887027543657941090256315957887386360739516192699783309648964937400973935450650087933622506706376184931757426725495199030274452133455511950321264365381354697697477337138120361108437643171336394206666374093400464511060760834763139782356928077646277332194506060724824042151413118790399559840438945329873840025413715518224380160409097081090881261376243091178226627726643259972466204633735298436305778967671076615012459887356632680599530046928486255122054621646705852208852980716289167670431567710977304714442614657252711965972250903427502878385709504500148975834400398482550636069149679742954702946121836966899321563931391101893044992336655146013071927048796227408135524199721556391257982757829224929774329678715554911731077069327023590866324903738172114047897098549773423819267494652247845279228250919852280867068098558982105414643608882508114803557603834597323883168538546228621395449754726240448711639974771149998809871517345727816977820368466671295006122920953422887375015470114064719719010125898785547029618340272664778168288090928882255593697863639967179979924898497453066711043021941379386267428049155935283119286957606148233908802888288163776041280921167281328534895844815995857528724308185030492631075937755148967688935705063120314714309669594893665143262007482928248295539133612132732773139861650315390039445104865271282198170799712867316205854782448028116140119170387650622364073455571387250747879259121644197029845961386531279233004585314801025049524702615517449182031274849430377262978043723449110312987433215375671481804982498532155118818667977996814637957507707809715930924190532539341855151442420101598831899408602375696187844807336734534188886526598196240125211820997278518258689605838271410185922117236685429471720787064829328800002169213202252027789211256170339201057359406880059969668640257406651502913753161075244834167206310789560022913077804044053453177220490661648007409369601139489881371936912947827227152447450549083402172776225307913708690057302127396000726213369038320666094987951161806732406567264820115263505501591468842447804811491101553186271397006909806002105554022791846394265306491453772267444090759108563389660327717267173122953283218288092620203748272297575509009587994659059271159904165794178239878298185784670942967626205444726464217650083906532080433302986422586584908388313529520280315390754204664490621436865412525771960824311690617750779040952601040706985856391402745874189955376555225922560533706699285970823570467296814327396495687428244575381179230783323011505777396004916632150572925091987870514563264470842593566761975594708473850656293721003389751591253150356862909112666716826075126370859510977953253890050166251889938174515832763501428346148526291181564247514462944696137410531484650251892876296456805112974676836413064124209244637959407044768494852097713097083160993999047353869384673519752662872292837691267502333281282508665056470673174215946067509812008171371756632019379375766858925107058443261326510873942292503984374671641792323945100070656391075382543265320312186985299659632368323213937229603933165429572582778699774095546499115155533420844251937679161743981876875795551713903199755470862671740833596260719364365384932838361928216918736536032055536056325353846505823193258891405661606613268016591208735287359721949867934222565115184021630659253586447056314427143070220085595322740595606605930249986556916302150192521704730900389783497508359611265768987716059556580663909059654639055181700933871845827649180466090453532697466001449348395514473597267615773270451618163214326200693186737835771195230858590882547428742038587853464577058003929880891436424069181429431346646660711780371998903682249564760639861428484148616131125097136539016288035718685332012796689134371576122205285752255232124298706256102685499929656945880321559821669795216494938320918442344608283628252540247959783316266831837994979771199220185213290104313699753632738719496795882283421536968245386827520162330962546956010028887431836462067367809030369979347597005573518637907041125260158596011601476686150461730635091755341821215728618368374987267782335636092975734901839451807920494991798290888995334245018011030691616312543843574489120612573899677032761426619763056174847231005967411666907982390558911194208888639013336751072094213990398171675115704228647216605268626492216241699698862248559251109807678256624396996487322825432262293504287574627421218117521990275392789481295505427626937386841493562908407915375162462141721452297002472701283490411990478335659756936185709122809385001053286178865065576928282032464839132418263123677724434052701205576571034636228037330279331894628227973012846553955534888959033886132109026270868219036791990849442118251705747441430030829821288477981682915562582256993997359787134153591287652072432610289131862980283955844661590346625199665037507589009457531068561484717030248668117654744850479779623950372747990002577102108407726948924627185513609252258251772470746070744239109358390143219775582244098673043815150502528927124901944488463381415646900039424678570341686134771923541871303557211918674645985336572765976801750824569199892543663505460824102065612535215719796501913437407660669380171489609609351826392269303915563548953479515516516830987269437287813379492798892308990978350458679742882350908781793330933686564907797332721886411394749550463229530918730730712153464798747255853595655863376177598810920336996924368325113443027740915692492773044254551488379797177468625945702254477859140610618015010406186779696646868375334256344001133744721101175088208803354179874664541690144578380154843934660686580413498319036957677485755962038652673857118225755906993444441764455283183376396027170666092049053397140164466303980860747984836395804398950754371345066609267119769842949854615666452614573480793175321799254513903708749322787436724210178839350285814649851308500628678922486597578816350369453922415668046270472301895658780923448362338230420217073511507776203881279644942642542300780508703185898089832687354407328569488540639811942050713217407105028460210665767047905880689717400576420607032068386551394125272646966099469701205381197790730527489631936450231053942598343895207483309024876384583312129650556830800859577647355101088993002510821884959871762053591749827524949946120366562836991280478034222948344652094420080094684772134845911235476707985468758741353521292828679469617055257847749820769019355559986273823302509089703263381447709324971538330640415847781444190801640682021554120343648582267241656973313263617257771353235990101698493921093075508822354165351092570822490139799669285928503874751495917988530972151382612612462188216496491326635648970991137752278771609714904171853129074791152410975941237479007123950174888681125047468754797499814785794023670068392921454579497847127333231404969388517000102576200846821482588452091654518710447881288711698179339729520650716614957016185364562700403651498306882407157913180020730356040032413807557671878401711307407363639451803284641020142819163227057758314131294758701133275143325718755671593734707882232824314520058906116463264073936981494588981890702038334800321321661429297662654501961355423855072718043599714965724080225583394607827664343984106397518327570225941304240805008861983868818884451827468198663525721007340636980021837376919827649083852552326564334872091891934469643216672383151752322063435360056671169949743584339750758048508565004523466892651494828593335356132035831772505532232534739909616370533569951103626916782953116199006259233744746577288201516001683165268315745339409968609360260846253191384523838068853697135056758398179224683635174755404389694337862312133431286811714604444414310118700311166108646029733905378722073065844764647905095366211235052052796669485782369026318164491732974264445281447698225702580359660445032751387465843207935886009171248068540388257977673546868336127459339397901190322397458840023575343588685858446182975283974966559542419234114770327338101570584075003284808550709464142629859762929172833098640166482032241301116767621109759789102957405211622581647394932948494075170239786615846874215766634909678741698349388159435592162087405140014337941337992811510406052100442309347678166255127438736904350671936744961004104025444236470108417493132109740564870892170681984671966042281376966945209666637673101954785432573503712370039277015997846754774338032539215322674301110687081828652120672964999274723034707968638193701893286932185531216206120882199597815388842984601782307498062853182737069046546246495816118659873547809306663074349182422125044047755552376555380847562907078221293060631666940693949823905491334007601068329546929547559198788700634415415262121477950759035324089975481867467381518856769406677033537904346334009753223720260115657553857364538473129567099509415879902759929780153466352140019965197387331812627200893821561192815630267421732389128895559006180280840416265914679998129817304936917648754011189706287518353908889976178380038899250559964891395168405313085017868485055229339653579624211826726363797781498410591051973250654383655213184212955496945233809528685900108941344361435697977334677341801542852473539607692062581158249273058541694897538253924264646009844722745882358233551871849940857619665114183530657367867194414427560002312791791948862369820561266691023611663787004893190114467215017101482860011283733468458874211155032729740604583992265051743151860788596561695721274633941124003116389291293197311574142435353654573463685122776241241770681700687112806031604094068968175818930671175320493006760644353473231456433007308351987806047160074161244817312049689924326716427726035104441087978899491840119930942236079772040751221156866939017807158291634422253340815171959823859857848226757813437263821436195741386305026612910852270666065763139059266911486790137618121519929596606678719453701791087399931635675206017597811602733512815721227702568533683084169403202938746824715849736838324168103033240069883006994705963992382319724420735583286051515190685675409364530694482635167569404974752701134315854755506551399339037929788174764495077637860385839002037191123349148967733244492165164240947474563971983080761728795261679598012826064751039138553763713204220411089391478194151640280496613293400206835447848595453911007709647855259819508746445658150533512953315026263260002120327197317118709837992169587962004776391718152278558678171254972743618225580236479079849992055501869161151438317408723897500451408253300661040609897069114846226520656978335072740478019887371486751769074587241795109079034662040171080515466320714026898318822023109348154682510173623344112958144124266790067390311602929848969291368435692658196579665947043272437683712144581500213780053501222320805508748023521792846761850856770981256209316588708912423254204654757458748036906666908066314968310991816171401383948614705643453920550173024300074918516247384782764362373696756535108401107130634104324636604088355905679079169893054140350916717733112179860918823934276932384251813996765801783177976114579667979621658691064452630515231630678504990071004927957099829060327606365515395489166864139098496771239169637863657559631075840048626628823912708058133936663085108453604461332981927767473203982484184788980669029959261919370808465894814637555085475179977486206394571688139596364449955646031651327029091966875476302289522716032333044218503611260912855764845129281959466681439280307152134598545348390828505126710119429985344486066956253493610164211208982342894326872754220776973584508427571942490678599988377870346006767301539878368530654535668428388019021392446658528849812635804731795905915247871707136433169914500288008644575034946767697008936508485286967597985948635233167880077139355027850077267258316708788867838206800921659290862362373846699071245528833344146042479854497694673735396647782104187554460570775739835067766523116495469934183779407017651440996021331954617804489726360862793387192856579647275502465839376116628968347864550485762813145598458142299377008453954038776525783365200348261389058541249664830041720842719849511995784582992378992967031207294419572156062138056085383013942796617270148133430897304769263817583505300954866850241058117179635435178008371595344666403154057840313601051328165686200069260658358542019311470909596217300070682792567682350338574656171271407305846556484075449933711922561379481604796101467537597670045914712759882383436949467312171266058611439396569827094374094114922780740040701241766300345156151402085014061423148425319525969334011777294800404376398231685179270722756901655446773927485032695018631255181742905421939632211854093427200601590637519908455418120573688213530334183831974629381589526912643181445110055559151879301935733656429833455065111181379629970856994441702650756319180635929430969792060738307760794301283740164352676718872353924056179738321494276971483958969161961593403081764249700205618621987313086534493515426631372285451719791705989188965304810802436177407548678977340587791980320682514049330081108990539227699184862964297822507096691273548445973961825359647237823711925844023637705244433836290188292793391378729054599258220319585136318003760002265104208817368321249321565690925600937308779684540360717035580319546277367823402985328252420634854950962366604624474429511987700108790431456599194163550425077931650117921872526037941971762349551524492457289357746097935960456110169014586147456144091298797090367197178596311860263636557661646801375766961571945478033161586363584765914686442942111374910850252168750840878021568545936889979427244279302766103658519159608607459607278860624444131741273711669924870950345106146319176426493125400211745709860085269267542541248644064156968209807778090862776839545473646970874414836908729263616124982081426528968560318960376199487423231657107678826671906856369536378914735467330423036088227236215166040414364755191962695118182311911975639726551343280343145990784471186456400226126334153172564410507867661162829302866655010352359702482218744334618351462305142514877847297184924168107544620926222738724085209546507631564770564866724716460789784689519547881663899643725776067184749678156640342791298258723680199528534692494103831347616089175901040244736361719308397719795195293829702054810292210778990212510242600145334460606890437470032792132485199139095717976679177443386171831274039242078600317218149771248686988488557205444489498230964261196054470529830468002215625626640409526413491699420145097081286050076833323318024811241988026797604918251844376248088884357581604871162363053373760628295132947236525762709122295230178579192847899541677041030465106805052239064040448699572091199219864481045828614036308686968343973659766847624237644955365355070488023407048598137254336831621983322954953909132929703893659908596982749267350931972173062310070528681645426146040675476059002330777411781573565225874557315826710523186628493993643511172700756674288093730108199148152656725214726751049674148221812721155747340236555934431995832234836436526225383434184492136867343877499993324798772501859904457195429818012076325081325645938645790085357590764787555888224912439662581043241915521254464094309469203233071346137987352930747344782890805479188836389108882047135952180616757180935225274119637402748920733831429908132429055839983105686197875060521554100093641832160648076971006061562882700024196076983790961146893618881967402134053813992874463187433403721723056275467184943376307132942141838953595639228096311615641696676211240338905293664767235519477178658985979969766057383894078197107535014514234850582117331634607846279730392486784196225421080331436167407215426178727353731172926949144193882080844651515314962929532730985243850982372747495617183835966981208829258971063311098050426394572787661870363637537896614130599680886807807788355563743485931413613945663088744096519605398207441107889824022671912374111453089735135311157649933081944160635730953219376804393251077612293806570952594775227464284649072734366896123333201494340820230767708364536035882911005669294428244046101765565879129457021689699939213599459424265809071338477403713910991061526478622096825173002401463492137695170554435224036229454684765560623130202853821839526939461806080235246996196908892209322496176303423924265567343710081506165233407893939299102722306335328635772346862432070376807874539379947061442707512353717890048593956311084096255155623732480476094564405484604994352238305932440115914949803356315782246866922170089421877645528035929801553546750361424559558077760659011341108836016945251079040987745233210255434846101704033038284037695037732115494508244967765371310121486962933015514463552247069364159303942257838746390144213816444759863703887150507503165341522822674859664056220108259763874165026141352991966498690753430383473291674713906885096438231535876494757681507981898337946556596326251484368339720062107698589994275525804383846914079489339130542427606727845531996381931960483596558945521305871655646325385058421578849477204682685692626614890183338471839449251844791135899556090887828549797383726548075585218048445766431678748096345503770007443125361505313293294145176779916165097138147419417408731954540092075292426161442808743932874829907230492678025997445016801657237407611467589933027604507689862951896757079552054745269231870179903301878673499214245485380153461323380876025619635620799564095507091227317813939467624818642646488750756719554885960294620036454194477750249537595689694621173158700101509304437153841190047323130393257951584669306633132814991817946008145508831254600603334644638934915158640034983568266059936665986167546651019832986362272334710330751840695636940699303317081403620500874167117590987690483482275304489578787018657635426507434003821547707511926148628731061891247638104047777278773800240091351506168023236545548284069623801289779938419836036247578221805014342058636525515610252243407845729324153110483891852027757191897689032348376093908226755789119057253099582349363911372705709705625842065537795209215222028010611848950071867485340413184413887918173132377250873630158627012301888445768814205896337353624132451178429401305757534584983607339260114753911489278104318475583719447311419366367771736926095021605734201769854251328444222990093323303815782490588538454017884021157305159821210539860117866336346655789407299182132106471989824917017231074765066076925535726815229190172384848183670899982606348013034895548163446111667152333337360044155546473994128042298026472189931870551128501972797342722609008378132623775486782476197691092279555768120149418879210516161608743576301812100454291416942991751772910592404087484560628347842200929900738458459242960508916910564504534273867281726788030137292627462452323939930210770916176941327024532529290047819264162580883175538758896773633664501924561828758035891672583399212047551006832782037153010330746410965223720244031869535868180879266903111618410712607348060250690588484985661406135483659426482184137035451874111475985617585999755993879596642251784943343223084816588146774637857741045755142217749950168919177640659703096147184627093388142240112418923170948783246743692964040064999760080343809853171771520914859760236259650706023995842266793456842473243072313550082659299851607156248964593826894941306679171447142712864781139376293874659964200307526628843090763487889569868988918122997233461372160417930545403325177622528738484096790728636670862960796693476348550446142154323039522171147832322454713115765039110251956993715560679506716758867371295759249922408630043984504257979027053381793552279774350601863672393088883281433083599359348854072534509383477249980600658461670027259547810331975533042892654158873174293316916246797841826545824626707871036402769048410566972623863054511647389888043498874762538233538468525510724146710224380657649658693891663419977279857575043980923806070493865108241597660577095593969953872657799530294734756481565485776996627389820270915874472597225027853551760966409395515767273887733899066700451873834238564649624168720060323293607256586188393944055396229048815428937552824451451138027511192373424911852608214901184140155394111031122518001200186499009587876770107005535193732980929368773170813248192935172728217798882534639430347222623519645923227155707742260338127032351957268139228200773197579135496771997959064824843691179668847572821460668339931007225316804588896212312171036472640747900802420383830492014249109279947519332379615454967681618245169332098845690228211315725834111739803244857144696009582568475740888278292307362519469873448976127373340295778210839547567567275363906231107679600651842413120296587491751556204710365566210793498589744461812905941067218768588759626957703217315743248674299283812844909985021133698394384984506919931896103550972804386080255204868542465108590098658577263138634607504567776780301716059483138663196865309602344062773768098589986479653007047809070856288956105231096802176588951111666757173045100407529453255796676651130633409685729775338830289971455372376245290393421712286750312327526124490857723990640272415043559005825570661773526858394906565685626983972936731171064901159073268999365408677944093817420956994654332909780588888009338668217765179518827540668922605170913821138851446325244990142444923031080778664651763385605554562278286048590761582746377504766876438118337345591414672624796379665614129861324128141424522388968234582658186714449617914343247196821221579292771552626627908545364053508738215911064098877024601255151306371384656081816697462435500733272456226297802320245286302594628019755757830853637481495707166859420362513673196449295159370048589413871129989221049521297977358408788142540380841323606235034594370686638984177357644608645835951253678931799738038250154032591104574671999865468539163154453932132183729136826657329454655000559502319426937243479429560662796350335583701465682401841554185842219644219396952230049964608195616613541215636398716111246716050087289230263961339686558786025903777862422686388970005824644456423634324807943742249936043097021514155180481382617307449335821055391987145701216721714395441885653877417287004447197408724580944750260085678485726355684578501461777592390223314878857918227755898166427365034298315061039474929340732678227512256383881689884039902216397224829979163417938061130034225259421666078401404732645983874786856515894955565565143447960370326500641224169307337466007896213912179959784719297563306065022553203191607218817352012933025407072412193721546751136973830142299648080758875008967187652141356012511497598327032788975235057119724058126637706807267343838267714941039685241094693646426102413329292403918181647830699546739924234999226970944966215755368615408202140166799299764967564947591823271325229851701679343214408389772432193094024705825265810020491468632003053904605866461833540048930651914189280742496797676169292214723125091975315378091294216414186361217032920587300908030821873055089440000831930767752014449970285119958082749887935281518841217389529958413244474862839752662141882810862088134376921893228597880273086505596539633587807584588830071163689954123297932370517195701794926189245972195462193371893083322944842942949710864047284284989782607049861113611705054639650234025530804827975223089629713880071150227364912911511806032026158745461217514154392947979893656622856389655533811333595089866146945886252709204427721190333316452248337238570435883446918113154141335391365361442315509477290215050012636275335807707486554183954503204860835993935658613477046742935765432074996218587331717030684716779363617006240246601255362270503937581174123753507831963620648309723245936265143357698190494690452404555925860061851024585867625329891974195060706492559053786494064911485431412788037944279741267283979185369697091646989053115648392670174977181718608157263926499824473128318827143261642117024108984396696945924302426965269067728473925496874734159342547189934397798517495905566140288524339877185716781764143719093543519699900590181465606929067473128176320458951507578542358139431708666349963935234574256252689158095194247966618508245725537308155695869705411409081084311333446848124307755223079283044267833291685682936060196992533869265493689759211669234395307460819954258976789100702657037921337591011777153284210357042811634990115376250867548840983292910028738899067015507508877382119125373245767642257668592634622152562142213915453847993013252240422672266057792255258644971046666654586518413895265669923710661303054537794469868975661407770940468525300421152401228066786289527549121989786650457646757509551262150743174329370395259567494088576167641399983550406299560389455221747666617721454747828288785927246664810369571113639070773435825706580098403921507343134094510399773640940703797512002353873758226030675444054938744026646256836309482264695259808276458834139449863663080998145706849530049477826346115674124238683056133694361610745807883012929954459226945920991049040359344615116600357591160505219842152106081596802726739357686592194377151783702636936263916958245971352703964510964231974222282015252871756953493897438049429647486030134426669679683670011504393975046028717554761672527700043346480173375429570800329372736250494694420176579000751359660541135685755843741262862832999550297130524310008082743724464921657590730383388191247497859365384607802267604532013800178677090452561419963174630024691314151706564269613674549292192282112020246808493233788673617100417146110164600328457471799875406823795890624853241016628378038646209216210634358477661163282154962021661216411790938132677176914294892453513322012785455379974697911581046182926412459483733503644917773143265306088547033360372369939050245937002671838802833724027657884034659547842614272111186309128335873732660624884568506191618655614837399828163425227482894744257245737702686108602245533519373999313905596017729076697371088963027272568710176562869230381515193936262356001053094196897699981703282069373181797845103913546123165604484611482315956640483731957077743894904712077325929244459886623519625469557155878067796242502680648458751945563332445376154388260124997551646895983557064719312258470621463928504438738173002089856442915223214969966956940546028003746115500440657999603128070752339028647959226416696089550978596350393084313706071090716047037175640256463965756710843469189847977947255804044526381011619340354531311030852198614896883394417973817116055644782672438461765124912051613235551299431840101304982628945048745714339781093444500987213747876535271588430928196505664128247255858673839466184555104732143919194568295051659552952242775067133741903703330680794057405268416808900169704128310539128531833492249510012188254507920674344474586589228710376212883460044168579273446526812638131875732084233928132358523437505709278379806588791337651857956651967612168016556238566564296736234196257868723048885392241234057501518605539158476183915485652091398284439577938768058191913174956112953137085641822925269543421088570641225529353139436386005190846600949949207513592320568603862549910130642010171202082843903516715358004693622140571900973957174073209199502754695877008345896182762984735172440771530453949396689494461966664288146089497333988711054196623315717887822260528421934300117545716700675551706225303134490474873339553410146872230537645913117054397913279145283048997320533825308389126887190158207807871909757614660850994976927757589697964969369197737083850825490824212708768250562681663150461571519139253486569385709257457446072283592420058607074632689823299093585733917620427553741952390178076743931731203177307713748577845611394060305375112612479072116735804469675481123288226618663876874626839812739479479464604113021663066685146858787843530451906619772241025243050061879400806970630887158935902632392141908039388014682243065153617747429207155310888491622489248666920883808540671836253644154016167569304620512177903208628081375430838120313786319851791162526115088717749471013247045236700050876202885440051061785332351951159768200062227624401156328531838996086337417983511899206127042474933976489629000311813562919630490841237594597825113647207187564381160350771779281029991979215002580802358853199943032144201527912796931141148482771001554079215679800813372697265930404966995435477071905728423432872345059399305778850330307205709480776275021287640035264185872819279814813482942799734720859018338758824729925140822798336705798721797289213724979097426345134976026578358335055093605978185109993941846759360936784993600248942441841809750993546067892251345040163854392480083491497056096713086067749098354484903204245502571909782403334349305295962038973285736268029239097102405601523535365358433468756305363145842093503805440241590001886419711752142175075997068272742943965932385493562576646175250926650733285148394622580969434725353276684750765883178774504636485472537550596133737147623113749477729941726644525033723673850473191996957011526533563839865774910292774383634114056147640369149656300265050832196714879108366097083822384807851337621863916635900872887126069321366402032028964076372717985740560417393447190599260259286013228140355944588847753102400912976187546507586943501006981735082533364758899064955163371948518296955558906858547708409224511684195498905843009084637699670932439859450807927874589354479229207906928626645652364868951311962145353097644635687154538875123533493321255682593775253384953812951280309672127302971692340569507504234665815694894842905039732681083187438923801817614530831258545791000846057838346708726787018935673076994326551471470225977983651354455179448314421024013551301387074783178059792665882193855973488529521853258486329499749739762702603878822631671306886228859386472903965950979786002591976994243765909820459211704702435460453648390110703877931751023205189874679657073010892572608558189329901628216443193105276972600286754643837493928421315279299948659947517134660708753158299236546755938515785489882846515885533437379547374755101475620986868370615873383616940657269441523555382573183269052963824043859105689312117450413652552845992583886617283447596883826176796757833519822394806501488360570243042653741777759865299179662400642805575389833129961486120605454665885922878954242198131349525365465359534654340082737095463315534925139315460049542348309424760586258884606725440788436078802439674551820677166651945835181495999956314762586556607462505877588368548835437203937311930491413230394582919558838389063189532224923957964894769862058894156860469009386175429113669074952122130339945836369553143458425527974610041394912557850995228207152120059937489124798566074087637384778180583125276167558429907294829712697607269743843594830350720887962747518690549218814104026978391354202752991058944997134263390751476490058165827063282323740046666386114726684099662177613908584614190576509458196464321396333301716875398775527512755240042165248435586416432739690469355348671366303665828234538236496610978999082795207402652866014067009028342480287195555764086055761741514140492468720256976820371707046402562852798721942313528187823979376807950184531758070309215753493488814507065703530882447693977983651058305158187022041281757292417934993509469881918234453992568114580124593171789518389094499380408068167731148739253792904297750976255351095135502698731087944097669426882967394033374592849408142063685620970583937769770063778101785793064214169345837185769062582105155300833208378060653198824222811298578401489286029360462153015251618643295211320892014323352302861718309998435771108989472096255791496259060037527326998411672075794340697569232884405905057298911188377307179566879610961146287535185030423528584114510472542888693545472600348767031132026843622427786977059841485872297214021646123774181171333234506876422635699275729355537529973495493973742076014520007560145908199566658143198305778864534152180369539296650472784405332292027046747831076512477019771057735834311140069484941849635286965642517628662051580003330248650647820553922199390736727548051208557876213879894522994239384186714727794425869241108781396419862231448626013386615517064453629648652740510141189778215201363681798308488781431101880716765894904063714890763497212599739224404061926812122680531965509197351302169724114470086952372778317818474131625145604224241483609355172345039727615971647702774549369752657606107378120294387624179694525583768151741154404455923666251060773551476476286563896845498593331244335566226956215988754769651403985213532518976713363375739390863681696149662612060169529219681227281338735894263164413740601246718038145678102477285735570691680419070662640551531731544791989654616546094113888003596817838307535963570523652991141053034422463337771305548193727337073313976055788540758978753208007580101391387169676478650317886813791414454038861396700357829845651909701730184831536050350326965962697325808577381724902849101193200256018382110430732731482655895635827807328216716183543691218657111713245481145027419971859631520921509974403584726645882106009646289541320087373283281201770856576963289707110479478739731005688316297555672029212090436394803186448776925175845396319519447625491593505697787190818642796191714983798583485519119467025547744259562338915646585590741429595259890588557790038520984584052198415462868732743699295149597540439520237576868053405381115242939761145463304427455668549890434545244875483160549274481851366244038410267685510167497338432774001801670761593794205385074224724411776193220754228840643373430445817243880119189815454103293893673875498581243841522600364401483548797019309254837734412659353154234595178811209417569646425220529385543751139891764367212052277910347679987780940411212433623309364972555923055671263036832160775297040632121116428483294514382587774071413751533510582847933605627085826929904437517570514214754046896182790714726403645956399257859177374979010807488836866159887424421681646228262844082442958300079874932371557674030726394978152886676648586771539562542289207663499873212683856424155501041514330708300611629473253035252728963233551053442702917023310848166004908844240230520043392066894772851067671941363795127794941025185878655121759463154540898571744182299750004178781719960074144878511306168045175555284543436298096512905167096313358584766020363922624140820959386919464589112379486813223359645663190785956960012344442386352095067284044853912349232668643442670188871315828740421023281892932932276072288581457356369220933130832824876984588953660358943644454653812202415883899736941639439438000236749122717154722342175762963610386896463972153438789197394837485868039330396716384386113752630931724795967802586485324866115344891402149396685447233637370313229230378627749375534230433215492592528157671267264005204644745442324502579586021608583206687374566542227750442439966516627290526677959196291246675774297327999173252348920833186802201793304493163744103368213768021108456465664316172906631486789987219103497892039555596736153028705735757939557256450477172905124416544620695388247516924018822954829826389860105533535103992653435688922738145768700206280190801206761295647975169301280838218213864980724364434390385224684504652151420001526255094171083541264159720746740793397395352565207456627723177786670790354103777695701317059694343353389138642209456290374414711764857548617291788208696129601779482803574686442319656699514567842484962482281752817385207831235633549562593781715678885311589543863220700345267321802560448772863277378270428482100795267518991380378627233366987544630968291831132071157739254856744176757888155892900783454665232704636253483914640425214757995062660348098164987067108205971042605646515557152822312031804924464295590173439778544509656597057135167953125455124895371537828347170631407703217276756289695567150787313005026229698471749316260280361281275097517871949187168800585142569505429120567488299836710225366663086925524321473993518974175385405781099167178331001124719329379235053673185686434149214618013527419441471896299627865738980574144928423056535836957315142298207060186548109245671969254742321610213422570114782928830495380814461818756141756718367513151148237698350179648889617324617894123903559389584696168587134978206087490236744741154190320313697892575993888556943362694687906782602650611907688278454804311642233444256986704726366399177436211380577064040868833912243730875056250368503582180315071871162380871304162842263215889126376556883565135799847697595908267260740052714215546436272136355444089689434137700537601276776600133701003416123179657118464264743353578728351963541127226349665987526360158568693559950163076815994679445709572164149801067246602445309242644950735307344230071082010177636573219646052672442093852012680791683800681934951544513153163230390449755355366764092285185775752014314146217763554853578940670938029244893259555548035808858107288123165187929034411600618701448393448602626779360309759627179815578010723387699878094945715828587235386426472676228956519998917427034917353134117014072484260100577425636496783743317337187093538079223594659205690341178938046010537549946864515072819788431973651963956903173538970425803933945133762851105339239981292260999080729799307123388812341746934178756121865327178659461001952713494441956071851888677592717786019128079693660015352392470165083743829533811606585329948846899457903594399357358123447242487351268317067336689483300123612961150586970710894390457405508708314680151920359149692961717061064475023354722663450922156926616255561042061245938772098280584025228115769826692574235855337100728396751293877066456214767643200967694315624218018942726015903862415363300281034674224309855104213671798167076778451931621092303316571898772799742510575363772276937815132489690048872657186676087238797917667244351187585770763400616786766419244516581944799780563842304940942177751080433974240826680413462447226752919465753715684372983238278037361475138617780210826380890985431344398806479506092043722922715532060325412353383106753887391163383355616416265790918423706169229363343274569086710436247307244384871705380293960870360719011687451107628107071275833451903575113892433524664563194687320396102355370656598398055314245054414237884490614764536962530635257137152812749470072325622950239191618771226031665031587052532438909654896242180184783473074090615572375082617235798935111098291891584663494943405202581327114711701024184278062646039665136525963263160141386377672072381565798013036981071500873486070515356352758230823171157355957403670211280047876088518127405053108742328488951938258446579913188260578255321625571528413087252016734178465609128522372535771387353739789622482150633042854421646831058596620562664882353576837063099774526718687620689032272418717630994891294296053629112312767723976011947128261238625166937467386011107689442677484588787925029523301814964173687559457623191444055064043611405493578309544187953796263830126492917074413601481542215220305307194282371514785321398044853887718190248360623707621762210394610758258482451017571057129633708092436274008514685711391642827116825385393704556621910363844687815124356504013015434101557388983233642403002630912542577171632237841932732516026130371067637959002063325399413720492300168773447346195919589206589190622733500819437303765491877840374077789536427872120901180520516534382931141652745242220536420182248537457669004702150534301320292100320418570481963619251206035510575279847504411905313351602286880179135046493314182209400577182262034928014475073951650864938259327349256713742332303612347034902575230658298208476257734148412967346819001095414387057833462751217203751059544166215197433942091212217317187176003246952512584010669502120343072229261667595591452544150662357304485568382185405759949954674517916653136508429368458976145813488857226688105524709118131632528042461170001967106643147914063887289505134603642530216803648515805773332267592300172804497450378391150321436322717450010990018258899821137220577684724963657434534824913787598637953872298844176125604174493137800500108347748950017356210253600186748809839437006121098493708039250105778707710622957849336492279790970523477496664415791885129477171215549034321499559823114142140785253218031341796428346865344716578911316506361576544174960735223692828774099936021719214103972742380202517720368235856380328801166804287348044120603039540941393826055164244447313916081132693298635595478487251003383945651968520541744605466288965199269451290041459638592545618605828494112225517156093324497488618261589225907061571286528552803515081403824598135389587169491256548373608081847111950369054373947088199845502454038822397651069983681372889397996218890420847162829640790257457733878561783717066493115232527412804496140332048692804911233447745175513428310376504365404123423549842889170740173552257419739201817559517449030551135549939121058600702442779401185593641437010740279945133468980359808624126968714708658727525532572321631223162932396366036819975594815394069136388841221588059694213452743673390528578458972363694577059518720658315260483233069397361849400212440696345567812583949976190460022727091989033588821022374354912863208412666285017568579650348210220142325683409797891027074185584605903939930345735859348734078204490456625219720481392536277247790826502044883627629713373165879566264096415364834438472815306023052872550425612391538162280466435864241445052723478332462480100552645887185816654413788533425175675099339644362718158045622206414264088805738502592996186363885215997985664624827843077571389721499602399370557072634095951862706845696197220579136409811764930465189997831935630325738753993449505996610304198181348787914070584800884938568830093666660133307151498219961255565197959174041048765705791800374097379120813112808575714914642661453740444074041418862529322888113056671119513932484637433449915826592785268106477257683073459292183040700602911625014065289786422042828806127091494513002399495132204560262091982546265775067485528403709792094051501348134771162249863590957036912632529130736479021748863655377218880363407531303013844719700008721625145190252764851104796783188074932859440858025726113478642538636560465780796695291809117602898179120920759063361517495441607759444636215045120125060723506629531970690481850220379166653323961324646148457748572002879832598687594057652498675886236015198688704084675987072455694692575886323701859787404854797256166207794393679842580479471137658958955251324600580705060236126697774789695035385090527788834348236045347902546679365588799205859046573426224022922567128554398703759784870803128229013462953070511923058491899487117862227789281456883873269215509562520993430160110752140110012247636410276028221378502741080664787312637457094175756897221060843309193177026519836148837991145628930369431333052819687371924413315275196432695739206980548164948448913612684548195266454462099110694420191958763809565079875794485615880738422457355655663042762007874308011485944305540231906006648793308386983712912257814356182970105058526636964651430089441921950256395663565017498917557806315087321561745801040356780553670903555733199729420417688682574055527863663066749959026899818409884957120938692789126695430341319478746270147349980078600268765269378361676283197904943153899368815288376657904639219739083016782307340375045023582980422804391019652705837408907970409060769793858302493480053527648365016391967457925286169793909671159293617055170038696934565823163024807586122154362394168298748783219378536237760916817429049071404597328075766988316100570773945901263953531134170436625119229967463684122245022558946545555142586799434851657214082110656746127910635940097960980010807691379844739673170583149037718102059960193589801632831657612784097072181027034329411653284488263822126175232530837205303454286609614739563640046966643546311741248728428235629586876197871562051929178442361763430161682645128360299571587752177628357586227955399235805077242745318665779495400523943868413605991524334779892705264552174541162525025993330416542724937724761009830855769084375358980472689837428739107657333527675216832142929797776633862214625289634014710638589996978152055698366641066020346856655222643053656142543939440271674098294167259534460175247138788310007455564532517879402006014544798791773971556155103062903312329640593575756228936512057189834506792477066456687623251154031824895562906175712079728533331818309866782320835458229114838804359363667701555705609736405136049083342619418183317321012864843728025547086707427054735716027453846272834175464829789501105571636917487043069965550715105644843969736453802284677153747751976198847659818317639804580693538131180721316241179058579324599787204144885718893868101864335915667333418516699243216433496886005824976652791455139884809194790743618843848995376562474703168007646765843177713104103813412408434292821294872960265773703843981043262674824088946744279954741710395770571025003269435390672836968723810667475074422764743907179616654867683424795522893458544347631701461605854570550880463978152514959107581947300539907388524209642803542212390396466118971062628747932213175078038629876262020992660722331755201774879571786035336873732954642794924807133925522742673700215017855220895456904147134653018543686167877844664977822533370945236292896708899501791728867913918523605630678879248589926966029455410507672861134659702130003809613811851975298513546079712016163364410767790704721001756029991316235856231789460236008604957827268940395510343138061818928284862890114600836565108313809250559523290983801880195899062239970994957642799298865802180144239381198337062681739207879195082536698728373917832586055089982247566071907074155343008536421323721117834524288485583420702965405778059661804574398016489977369080951715204934239462661727048393983376540889719979974335519877389510758083138967780709993629444048641132969242886291267740672593250707582050933030182550475604555303230480028526770114279389783607525483933315446116936781940314783951820096321528612257055783608730628956558262005778611250597527542497171928704706238576345440598450483230673358400853336637072919822798831487169772832107564187367915433350448873207174354092811967135983647014809273581151596879480637849635971020224177464376125951899251604504672314478007208425074100708400691407836683878782956089975079491490551710329281161819674186219042374516804459236121832516403256131059412568732419547569601664413602137750668451575110992824005506957185376930543710241267736417817707718721240534971909818073018230403093609685039720608468373577821558936864835051141363476235031660705426872377219817489012231748811741518143886638542353236217130219090490406790720158422244741889967217238489788944059045395740532564088316645978567770335591832503335009564568269447963323751947859805520290658014452234962234913646427444310985827011200885785255397758937645961661072959594705949644828461754464056812987199484588897996293249578296734177246612171189260670159529711041676611607775070293538953746678140216865570989417359607705824325762036490109638591295797141980736262095495121074585000339004194371181736484370717967201961783869131993421583328975586194685272181861508096312820958760190328889658886115548828668123753301503100396377802469962872196751547829166949351663472215884388454510756864585797562432619241321431061628455484687251767351455359763479952677027306789389510357020819867765853847250986661863085051110915912733323133861197629980828390428014739994352823655489821229138357132600223701066765098797039569271636458683169921824202682752162414823832582361476605975682766384529794167747546827141586544133168604925835667308419744307759696389595442079406619684756863246524529140926992024252311068068842518375451695690097300302788816921535279393370587683912237068721782816121838836563540521665078136590451717261382880199655554435373488249141880369777627077074081870023752245218633842316585498250142113998829057699056821200002007054464388712790303552776404690372723168534575208761909536141111797142510822057719830722996855916212768023525331453852327178792921285127621885637813641071981996067739653554712749722832005104293370472218636047383049213783148953062014593083600293911846126006562770895924676883771915205819888598309451731539737469651873283392814686598924899884352457491935081416409686465820673701860881408570233171532243094607505977164048667344244700778904880902954472953386113622196228487988641271469833272875079201234187108815029186947867980844581477462565048955236106600958299009132715404401715042551831928120399522412873252388554018851985250932338553643848176468264608605875571421833804494702771767797795350040791643921050712832327778645820510016250449710042191705245481608684920479974379873005320984138093633513625857145699500891563897689064384895755130451728195982941724224237394138685305838290158328178364447889454230613437634581272818744076411736408392721942189082299853096530296979687873132150447220983054197080007086484794156598950238761232088365160314925363737773434065638794966529350061195806245143695466240438483103274607457408260013062371044761861245541161288815969507296104931298312006887610065115583908955804441385234688754617407478471373310670281664292464347265928713338116184160607370699135563497804640751624296107309773534284702846095744396892625673978242893874218658636260757635189763273771758435705768138199553745808249279951495911839086896441684810551708913215155669362439129995135406527395881702121540986725086904338381597291967689087488957997140657355821928547839752979779114702309923156410591109226510734733734768068028311198632502433995894172893218631955185194313414974811279692175218822261848776873254891718987750433048285893923814951444375121116102104783625330193979507945948025697007942622563083435455907970059909677655595517504716002855149581909963834733369585091931009281660569009359719698917029936916999322563573971495558198093870608159888174945454649984000702547082035843939623859754669018108788754953292446834431180586033520359773519652683145499606902334572222721504811172284392017629182931941869253992153692561946963982750831572657447913445070077472346328875972812666304677472020182442610541835368462437744131944114157832157990823757491409954820384800677234856462960851888126896198701673470468339569068464989892940870978066396266418312124727219886178797499229079570204597889403667014300826013078145644722103523739393573209715745622735477581274741431546876497135008357291611084883016079363544611645865747968923350035772001850400747328041401890360154694695389446497694980045685803930418426956177240521517465672974506368311504124018541763480102057921213935495693029954767349353521162395446343017677163769981042085345905037041415979438042571048519363627407982762857652951232340590649047269536449259498541955489303831270669755812359571190485486205129441919813182908211174731874382626731756630440841537779974838327545071898720497221973171484453408542702713238882404300629382697209629741629849047162805468185790871699524650800557974320502492586775961493314930486138478588091636048909788720668602270902220205460141115150920506962882290114794196994564669294914588833564485797763134837502988227232436449670544613257512678372981708444136351605546287345208514175455493920066774486736381445108146513199571400622850147175333080842719857771452644548893462644448234593430144493297715967334864353079294645971861045945979148214408339954323728922904413693962160206155552176663817917997258160956535848491380679240986212004181335440253219395800035555768411392036663967998168322478890198395333985378844892671102328476516677952972267380088379317174803009029012097461509811515620496746250749708142282119239877862336013628340122143784664605501342736749852590391859078300885881437187629330146853175946862705952995508364193500534022443074434683501130610535780261929576418382098016024378628226831615646320983090759759298200253829780712043117092324558604499556260437089843154868902863134987574587430605743584727692901824540685601055363713920968979069839442605172417360738481962027474566115626356207096909333105636756543603029242975866172225977048883890461202830825149714375101977281628159546354787350176975356029509198274127747573111959744467958305592842527643110568290979966660510807007779077422691172405761549893911122902033396343459456121996390078421313819164758862040298104992452491797120212598033767784723475522547841104300872826666136729568068330003284110517723678524344076152779106870561026628711330222212528620857096105394437480719642649815337603869652235286120639818305523490384390963775795978994533574512812683835486723371901281339037792891183384549305101735607507646696873273631258808967117405382775727850287910027566402198910326383586025525592751382655416868400409016785294880085607512403245706574643315819947304893986985613604436163430125142312377609168503704303328704616358066974237920065230593043835201680310241116495630425318700641337563817065827666538258216480424335451642442564548952415514179699631805130984393298350840917632673080107252776024278514807962862147383653149586600360881112502981037925241230323971846467946262391029053077058855078528530432293567211838074223840094578946933949995921749846955314281586043524002248849048728214614235363425657377354945879099548358051512819928757183223586977116917942697108135012601055999880590198178452645240082223653517164253827763838146873090957765263798368901351567037725063374920545059926826820410366258025743560297268708621609448661166560983941501530225656488936550701504614590518864494155835376253539140550018207106631196222880093287172586211238066709814065661910629055656052608721679399383959386081113932705335101489995146630135240331253535101102667444163106130410449351985868137470232189461097438820134749405530024193156688124499679766840270310795328335422039335336088010318109344273426171229783276314934147160573930023346462159554928587964388224985905204393290332995994814680530460241779505757910114732040859742767218990338931271100877499531428031272192292281470368161661030029737846867752821701466129791802938362772811246001080529050151862705138226817940503694121014053472623962623509200964690262626584777205727512490799006500817305881006619094027901168200834287660560819840754531263107135981513010679885786417067914182736064881385802624049628577773985619215170501929885666084558539363032449495205213890530178916199612601230832611708969875302113438862996521302901403014488797039141926060237102354010121671024251976694670191560363661375248470633699710319297043529839343582415786110253394658816407248061864962109065885319781160913878560215089661133246900826873438278686896226141662345076108170798195161549007201619744753607582381100672381836946481650048919478730673001651420847279138334544030832492103850864061866272184416214739155318308861999534966348040222535693083924333732864810164534130968023854058914739941270322138201309116003502485316007921174019255773818724742991039455634002968474426065694085788659807476286067642390904736017273499040332796278593148948837372800516746929441043028416585082677758114112689752850192886341800222095812400030997750947928884675538785020971901216469047235438824438062546453759247031450993618162328035937936226034172133734966116280829705006609380861060463809901836234046892838798527635702279667462055226598149707765440639782621274168792826685030486134067633888437794833572403966412173274624585179982504967513635999160995735127812526355811773019743230602314746622409304020064158176884080716717078626992908628928628111427975747605256697882283393502781795080367022943890538503628050400620020296117885320363691984371618549340644603745116556421560862174990067401043671688422334527168986127731436256458759129437907750827929619998227476084969218532329185546508060665303288396104473057807450194770376563978652239336409914966023357613020683829582856049249838809457411982241644274821852587105784088720801549075125771418297993023350177021674357614862381024732725404652338744949887557962920598678602796458876101169395000302152875932473087107705507036490436653148839574220413344739607567400598197623086279386354113478476482993092139666382181846364376548408057702996595746943197384203746828607266303061427398460262663921637191011264849676533840260209809600802818698460992245397471136526647611890292378944562247062237443929505922490027076157399536971198414945442611167743320821698029897003968295814991031166249305762778805675426513406723597415446011498816337156686001889332467087958437763411884107876313474185393012659481003322435777048058260128825388300809494130405345830585330612653488708199658071334646442830213659215461382064049310588740313008280989967751296746882134927589506817202853290297209617689934882404070090147675021476808319624370108580399382256908691579308610849185875233256156552972396775682124797487986848675378150752398709807214121837085634678872020907752177014249881497612715528914957453684274503359820021622803637405475412209941964389959768694697823450530525088157690731679912009610275167917204080069066710984161260536462861449375010026287618868298209677760499329234145520558537161373012237299637010004795225077415565003775073498625190637871177356195010858387956916422954370232259635844086533085184969310371716899821323237865376491622258144805656380990784937768296001814674959637549702046991422368428254542232202913042129424179879637209120304074669505409733420911012868545841951035132608359333550900254283426161584270465781247291435321970518601311417104683238379629079682963279403045451602284743069766843853861359003779358236799260289556098699448996456301079199203644132628820477451696857876522547695074243627714546007733426676800924757976432131048946709688859723226601922815712251538380940699012837542045188765068376328485829193908870386167658941670138523908530578793294921339593056625770572491105682118862931701431118498557109174872169907682012262084719796073180533304270111278069804941655803331873906887880821722026156210694047109679961986798181902033537207529178134996390742770553367768413009902218534261928368273130445458605959896271045678652149241190596618854138185504294377659602971248279329102937934340577405966188499484614000512762824359026914332327029162210555588232813815025416490264467755326826374954476444505635909367445935078679969317671197797079079165951298847251535262692809712552819067078026932945761418555988706012106954558940316208610733566076641675372061429424402028956179500120176723386139125328095667148334519481882209326375822448067093866222094734740311039802198018738333150981763202159668026880880451422519954076257958733337448690529354973592738670524470357604061290161827957639794164238655041373160049452592658904351096800566249704389846255445827134957694324966005904911230523684926556789312088844731846422180680833087355750364212785578311686682874585766735784489315542196378530008532139090762373786538128017434992011350887619179672099015179866366999820963101410929222120688688627904295228696061337355141079704961145842446107330950036110665885683719904825850244796519551046917685353638053182220104100384350235815598647674936702883703316177825530634485861899898681365999454461226381398602201897682527391664926140888086025693551415594093190870967435679266023101959968180868558406774594775507980609802239181461531448665298680115743672236138608480075079843938399485877291183365950920315337332960149369983714062624383458401829406641280247009893688805042302030820022727440128510514660342693306282308918267672697812797021612323375234589376934127984299341619018651390585374375559783446976028260905568322242084598275360943763678216407866230814264419426601557436915701961863671661729684610786504969168542711866814389261277137440649623219177075765316448602890697841646089702395091263707075369014972775066213982744934219476670088287522375470504540268509670111692178512037788209074969278842922507190457760595823561575908192969139225508963067897466871915704189216789303998045821792067719287300653526494256493104621144991417606537283324897728913400204999544682563527378307875280846298182968397986983967595359276950932988374067852685233446391066692759027941279233445576363695912473990893478383792230765250237891398658720974731345946554137783871193677519994080336776085391077495825246320135895921043333142274916300090274966778816089093716077355631409117903562988591230284243305242240806420740321076372549375410083311933036573845513394432628790192243695937844927007351236635164232737818541056347507450631159466095165608528564019436349793243912300586515304812564635645975126526365927410299467134897940748344178561408778148099293314626710837971282443569021109704314201138094953897350059194689418348515334614577605021182690712974983502679465352562570270532637371478359203537684225537591897750723764842216651386189545542031699736997451739447809771666390122085329950834392997021759593197584548024481000093374782553610599406664896342211010686844731189122190029248864200956120045765637585347474728511430719955573311506258363355734152355007289305675831021988964424628945081209068295071586455710053289758676867490328946624761891769834611320973328884460941831724648852391531980079357263786722617543781948584070656771980277277192334833204135482391428073122174646965411521117415734219065263083520887681357222583127811609083948737965218896917620647087540936816617576025755138950817289406638611649461760835367731375453672053757164844068502123630142854756037841551769165658755784151228584056749270921939452261219999703499738068173892439403099909778399431338832830501979269431633558139302071029151174450885014057189854890426930971698378746250892573528686234174673164830884101406724808844974243003418810738155221659149370269648779231990928319546466723402164480055714262230487321092791094466010870918459681211470934064276852302348019961041243172316998720054409669407619587209340320520424587001320352557071780839233004192787662897108772808906368833758635709295876519517346027398720854757161120245883574736741646317133678719663902576573686932595511229876251348148269670527510834182792039000307514847283272893202440126041481427680831132311744828065000128918605917353430757094493635509221872618677732345422652193155162105498130668526139417111600577692828290510545723605285209454085399747054298835722856798034081563525787334796449373837324168589972567531145060695607424996945211252820677140602674008289599462310424606369248109812922371563712490542817456780219906398138656943436165057631629812783328373318088468109895702488509113530623474342609919349268082489211354917124381369640735523191299350328757104094492435095971700599523668040385313476560051380194096720792237446234365233795001297322141708443162589448592057857578028217080465185126710279308384637589876590376161710664760009146307261180014147573302021078564774529412995185391620691413498703769947682509539993028553682394756740848701415265749164537718133248182246088026246997479522747429789022881393167503348112700085205636716119701599347511587429061674013537734141659619542465948935993126454990100845213375860599993242434466153660072751392893265421588487182995676583267058120034607239899854406292565615214759610590669288171901306066453491691585333685386401270943590223226462911435616799870655886938968056929543195485895865194794593247214423353406370785334556448838114821596133855184821872840594837494758701005510091475402215405530496506406931645001904546313837453353276878579464442161807153220709017708510232050268687201343839016804844578290737942399066921334687793401950279184960319483958309680057572472021644637383230905434935351906236925839934334646143560068594530279912114409205115005363674668666954929582176688704881983670759233145625688945494033035654517431873478737456262814270148787143364606332513023600767637862348422899550438556901026448313469361135816480904003664200932016947411622959781604230416690891486254470056733837493801574891019625206931317511104243499618817585067310158032449974109199875354196312871286655244831638589151940235241204606716871999704236470489717808222616897383609050775767259242245229016981069791653518244993873546418693984855178420658253089692032238567060986904036083260106339551686853226942238320861737877835462492407202965391774596159180411837092867497572429481573249620437309335950502378654921313802451170290159039018652523205357635449028602324468318194581240745602520169793877599286731277401784553481406315344246123190929141305674858324006644390496684624806337396524172410642486654336362822994501027898772651842473253047628996615393544395526269554139598974977054527003906852794682047670927267390366316956367801565795078006249766794881008843029408022232678897519511361887116601928427468760186038996447744280358521886404178774852991094455951758355951676490797130391526005428730091103651623959216007626672742064401909301528956523341025426839525284788222955071613940150312402895299240955451439217507602435108350202110088258695713995068744364124848760178873873459097624944865548661184559362666361016242709264612868626186879766555692000303732880870466289599850496357695626090688654581790161161515783169501455916792739904391679120671415648836184291806506875608196982777539742920065291505275698822641874528203191317580834659467055438056116616629496825210989099283173061225991581623130965816356847352557917805915308290853795573385003377807738119424986888425655792725378406395023849772562344321608648414382842040746656181635672884224507339198652732405517739359735630028518151891696681496795736310747028406871226172150823594719351064457274509184439568056755415475747966460561302847305666605349712217793312780708329740356879365419135214105051703220024450549227570599057632473635751825068042969501646627828558797494930096812676195652063118236156567723373086210263498495767089661243146173997132053865663100892476240307173692466674084287819121040708353329516396677414266932349716852605170888334673074388195641028605354193352076800120919166272531125544346816046811379481511653435114714768540808137215672346871853396245992373798035419212783101194971517914512474260330693770910316107718698570124462652068270557063145604422404998552463507216203981909856102231865021301912775764945681105430855410347484487201165680525050941411958432530013609811913854626746751238386749586083920945019964035403659009416955449483200075597905129910480801475397627698276324890388947487908597505644077121899253368378567362592002391669412409397297560989200824977921200090740057494391786074683563400220202603574281518421342470564952088278459185750543640374512388440630674722135302390338622972265049596976149218497814430635505988148755693090778944846529902472667502079323614606580441782210167449512290204420557865796464879628087883668016039739860809350864972153257426815684428230351220301410654898844092223027204460552005293017348199438450549435954548729924371521684999945248691321307461517463221638341428649486261187605574939143944013632616017190947345093555652762418549097823697653470366352366835995678861063690969164404708754698426339641573539320153893818197324687622361121062775846210763828371246411193392973488428812938337894370655430987064142907878259373556348655536449087268547684196961697638498234888826622466399213686241146929045318923943773716470421974506216822828718362887846597842959881023228952487481476167369709105275064984749039896008545635327343225696232858283193695294141792343298293546579242287052309347181515670920946554573433183228131805854063227258055157584922441093519127239130902437615648621809717300538567324649494645847703761255728252577805833904631960262098596632316078696087159114959958557081361888719148532975559632965408243870366180257022520334237917585369051286346242628325677264281002984538606072426992189823299058282644586995349694042946575539053562395108886841886306731253717534326778685791251957243329517259885346850403793755640980180122742914159034714869863807892274547341828079433652621155609912279405656577192586508882733249487367877777075099089122189785621999441061715495653355001685001353682754009850705298894023443179743901987515349391237909982860226967575900002364154887577488456489277960749832949007423777600667145138647675932188083021076482979891794809936968854078849538611342892998770447098803753197089851930704260738127542559107822479320969866992138755803737555674065659987202016222233395945042666262216630662127357790840655695277106969597715915948432089337312925404068971112611193549375300450237176078225635384316090148575057908494877622286493995424163092653062010328073766769660761302460154705469626517317023119062102975638006078302981972063968107648280219531904180288220638248700886915134301742907716639533902254245427289965834937172934201033022267914212842377065589429516056337743062076588396729733617157744881053084182090082378950159292121781768178276975309835964643313811831466479551965017290278551997890576537896702453359472991252912164610440092906210462544492697346128312826659247863288903763636410156585303642910811552491165471829880243684004790315857271002679105794661827903101949922445449520357411109303150498474544351936480679111144925979937103692273388988392402193508294743899269090931053093031003331931475544275451595297272581108966911554516991564949611112614248084775139535752422487979800534808198879291661054241396214634523997034506362559279732132757598365569719373406381591275837539546433343137671512836609153577862923266253376790910086248643627244682843553765801372461991108053942120484928565860976102983106924932074150060282126144875861263164856629647952202517801623132899903573970888386360475980815683184100218018482135259518563300497931668715691123251918623777734554528995586032839740406717977351696398511613049380914018149356423956180428591756756591551735051995912260788740417325937732553061898812848926158595361999845361213372321367963555361806609123533549646668118214188570001946590009348669660101601289815594689817854801252777552733141398968414415417425503751051416606124055313222450486993009135994621283851078388218346836176421237170510784862310611411491142916217526465364267283030208751690594626084831929934522953994441708716287935704021015125303351834707675283036919241695635034447984191597836387464077949472351562739626092741448467810730294982719392168278938315071192680814710909349293927159750178706155332630205666681958850693507602788420596182609642204137278963860011562992990271706040525123419206669786823984145200573532254661377781313304817581737215556221123767141959708528072759373947393431658737167405442809045700331923809917596209923207635406007447864613815136003820091861258542086810630648955967888365227978066790567475326297709843320303939346152934443946064651207704423331241061155173133414678263238075857557102905504237632520715379053078808875598282373387067789266838374296373414987395960810529538246951624657236209826837824220568880734078292038578029372368245627289748363484130092344107492800089809349846495775122271763906683078429891411683429501280483962696977730514893920683788347780932544522326915796994051419424886226160292225792662315536016880808598755082014397520112583220697833501515996842712588386546490210983570597277590984534288359679739588839055066937425901560013517581243327689960006844481554735924288090459990264728541140706466848060429673232174814404345779775082230744553311814415164983715690720527050375312607427052106058106238991918898556784362462451202403990179760830703770823330300917494653558805680901521901382653041479248653669167869399730431807079379265685761937547682682923139071943406028493572973480575770018699780919913151144046440535482857651276654829659607149653452936852693942847228578208278133372335434583793656947791251407990990787083282986971142420304288560902747557086736620419283751444588233430479699488311468318022755154699476926631522610647531865295520533492392528253941448847099743078458741712404009358412515603757824549127282682636642256313143485378764282919785455047786193179500840965767313429783502612585810722411671819986426769245418612350239671962392612738125556355125133124460601737913336050429472619117252042733244295348983360466100439861591310402318626616785773288438261455506292506592383160323888425668971114420048861590570251925416470936914317991755422544329221010669925741420088138456777018909240081452194577684723716326832646612924610223947595057452769552669655540172340941182754821215167734886397541832807284613264358731849607594152649664288692122207811981055369781403123554596627853668937264908090581628434357848742190144564539037763810455295384944271789184906172638558000921113283301379659583725633479709326988826705333729838999150831335064779929446998185923731477561330942386516321148601763395965704635940755716444500448622583783383401241124667070125388867109001854352777576348244834448324005093635936164937856186917994069335780942778931202664068369797873282089722665123899510421050736792775099349851534871644234424608426728706366833468881093511280758756818649431481060762639365855849729818395267188751179803955766392885992196614857479899205458730816398827489652143756008148131777694764837481684052744386853569136365869220718797351375311109751862871413796362047372048505827202456802175875658733665633348690457445845678182611573891138894043699922174056036651112380943966299125522296776561780343165844263139696894120274670904612665005336426124567653182799023646323334138930096322472036354137998008333943252881245018427778903527282283245302914426536650829606754260836261125981891598414303881737052654099089466650920586681857157633635961301814864976873497483884227561746678759627614728231882649728941149812535920994718125306088206166811471021945664525935775040502714549158713510080405831101037824627845604625438248642049711070464335247814318014967001626821851623972942794471108016356050031365487884841033493915377407742661830254161164107167491696312163421632256791241564210282589830366169605567265780035466489165443778398870950135127547390693141680263360053263800253725136263442462333692642196614914381878523886060336759311569527755556790730177295599337753062082620671485235972485028442754240054084468520057944808685890801098693106795165547146665591253669639011274731863773289154876905951400825618589017871124819923571541503964537799191236300695779583555633862091949166725408721488892518451878070758022279089257305821285837866887226975054889738859101059048135056626215419027846050141781705261758261685259500527382490547622216591153328562312475085320692457160806055316707924370171461328862256645998744520131090598754197923338457665462101809698056247638477491593486136658367334531831626906915829152354281095521181113533518161705280404366664722445794740616318159987542269492411568206095858193641460256549338514402714702146193157614943983413156244278673127443346579326916780837511924457170556166726749772640801436223626366112725487169522137864458342268451790348064925311923521112982164063355421997894383558144233256051790119382205126356695384063480905274270583259252895209446628761095399404688784048866983466012461572326049908337789662116756686442814996109641038713150403217658367058442244125260552129997567441685503230379746406889268739038901956127393341737087905965936004845163842422754472448467112690519401280025063863122493230919891112652922647383106684450843616569457207293236805193002994195192951621746957653034343942749034614890857556218893505349202804197947428161285039621174468523580508000849466039194846240922665858505567113428971841590077544513219930307311841109328241399067813496656628852254504189153598148616125982970941687774424249034058833928687047614307106460214916038484527466421066014001080366638104239737497598981042697867516892321815629712634646314827185117390165537110206559292870920611283681068189500962021912019845146947321375182252473341244113608187878536397603298200352338710802299020613688490800607307950723152098402962933286958501047119022642653488975649742589639409410460355807637483164435744714673656855823054385564164386234059294816111077648791866824928339644087799192039545212983602320931015237262332151917519463431747618577144915101397386930885305993564249614004711690890285055600629848919814306016609043337405261202289247295441403326447982679939760294006915458501859390676515395386281273691617403151723789560733821881769271171230320437072984918531702518183926285517758718292824000610368489260337363691205705117306666491952366766378283967903326931810561991544693810276777298540135889719927586413175713556850727703344426620532998085061047394868440670573959079869113197103933373894876742828306983213005147297080327576845234245511678843509498130917257574090216213962317100908198481612533042392845105651046983627582626573113884040672070303740635471998844805289610665734189977011726403201347933332164462859205628120947227348920381994621505787634991344450848788890417450305647139296050224159467619423123091678513545172638308744476326387117659892185455599663298354227249214514049800412153544468473640575065515335458473782685209696750396857375235878476058128013422163266496687446634889445606355352691241970391339549304134664004782915061405914012682491148557511259489145836273812616467100180786663408940827056511656215419707940851479639656449662435759370875115340320302504356184204566417064348126016268648431585202671661374233604245380000502172769514627598476661394450224642602913370779775633293824340575028588692179420552942552113875871534226245186354043319184993712226223658227028172784038605409195674523603374614962572555233935950757079811697480770040860753054864626709069067735652383981013352264602736176568290424592512851017002221615490447315136441482683332023342268128788590746376141942163080273801698830760907413981140481084782516060836630970895865547648051193673562678719523737535586326915514335132720281469166103172172956945079427767389856541407170740691894815575844263582065141781755759748616206063362730314270833901686037518204115110920355797640696143025200506572687149315670453908306343634700548090359814029944624149596105715818204859486996988686379415375361426454801703586430126488179742115131739427576587620695067525849627656821039615397578779414356212071464581280437307024623483508983171501874250485545361588699130439216289878831000659918236714873480571981233830614143590123144203300637685505367272925084685397755358276072234159909571164702903184777656494470613172647365332121266914024489179321200152717950985883525865688997612342480436986258153065136686298627860476814647918179186556676282136819507247264313210705806377926772963357521813895952149015622518011594052279871069832948504301276404320576351051175588371321365294159082660053502970957938229937324663920076627132375751408619633797976870374033066859767922930744753048991732896746465013524536095480018808452622179911001782358637376188144567526459739498893064582595707225089791415852547915633154066721361832657709149945538791288080873202940714525641997726718495441976623428736991023348425382663086544929411772971832318773602221987102931522480214207057413549599037893557762504345292713886721114009476356687581956332267039253383165251953303809479298054540040684916368324393051274306141268915085894468030301043167998735260676719011914750396963891088841781934435776139217628044606829634297762010690404716466017572409287813897467918213582460130045703355186853708941350393021427636779494109957494053853653277715651327925399952152707121822430423470342155983456590630787703552180440662873119886091734119226991450798258978253112251581407483092889211639286841728943299684360527262797037956005756084970127539157505490917904511535539975043499756662567892840087943867636297209296303561560201198647138283077537415170012969332537901497855765500740719333394993993166776008800669722146972419115822355685427862084673015629942393586680709593572388793950376232109058317610558586058235485490957871198915062433213968956471566090601535943420575050229237513948534203247066086893530008274288825614131981159253702694596308863423875717952462690087133571810511590925245476615554917313670194536107443531324259157593400200499493939209133769961075912399712753505245819783046314862882288299870289118788829031656992069624106119555971509439842792547743323141447389759807726277063896308951407007412494424961034895057948632503267507193148597678971535404004225512326568065885821463849859228181317695466245201729808418452407101624528205570970703041247306574497388371764710799209413602736354265612140893244389065366440235808012835032325180280225427095867634672885020090031050324761732811980033262111027539149697096708460853816980284298199498798309154287440957724802008386643642803202774788172413611833292748913897336670735789262388014643739655699127102074884276124666224300780577567054294439071177539678248013790463853036193228997601633717181630068222315055187685173478090227783932567444509234057504968862231838064611758561243920448914613530465234165476874896504584963823973648655251618260245596568800633407538428631793344548434470967927542307849256286911913094752971644981022490694480347042228794446684251837410809901848000778885339797889801406377878145663868504012221653302644808054305536586420736975453868581660727617101099264495353391301033472214926922621818706794270474849058546385975695957533575881187909455002795487383477327387954808283581102418369722883998719168254610073313172783384857218184458025766842041053121866000568609053616726119644124943672474250445606215328614023100105747615638945192140405604405891092693828540275208602666883119226157476362209454476916929043994801018566180345278808303825142299608801655860748740878989991056943349404428335833273249436902493735554869475522815567303095369601005920042369857366857127911347362301174012751700195943126368303835660192052997326034856695422638026712881543103080751279583151272947418382936994649625970918880613882768576899570500967000900842380921511588642287210532514714210565558057380279045743877312650785728567574906096258491936723816452787947935267006709510133089534507952722851012072033327218182188558223280443472845112911687819569205050362835520557599900961228574456962734815874368827123760393507549369285209296794413618995851937925630941867498828187674552869606997632550898359152251471197119014740202419854959261365979911352804679303390961496397171748520254483430352242743648727727807899950350261495004640135700909195161610999280305952870523491469699390542080800038108952899336357674047937528247479983521219431628240521922987742514771633491970333282028637483139562481512149289288343895506796394813491626718719118886980300390585407502908416574275240193371395887184581947706366772268926853926513254992424875231858014978762601953677484277570298634853809752881289099907121478765216889248255170178649792860992252220364339768321116822772387714208477576835622810755761397485287393524807770285527198829204805676386737373142149683051739319790967830426535722805779536230035549583950179522764338951626814785909751020277965706922817518259323317896606186907901878731567256964479357731553291979995392305185203288940580961984704619420487314263354603909849397906240543086009840330104370778222981505242119900072134228583521636086932973306168575361073345909229133999113489392727367262793237412027724579075997427128031523008560205712017947141464591026241162455002513884767998182278271913391324441172536907288686006990372636900812714461429023525931962132421416475604982604284538455593487066998839920579008895562334203879018864522683244198979457799157947825235506796702177770840765994715538017788133109616457033791382947609148100298082520429862914598000863766769147621159522328258991658851562681526453601915057251562012773065917211190382395242155672495256657244156836266743810194881212761851897413250342519671175431128814780752999738701332946605324097800841363962524303209488680027091850391526231978216538274041029746104085751721620188107670976691167464737985269215052044504162943672928018373757652592422985641132446500249078035593497538310063803671385128579527159693673663576559436383663990541434652806908764284146932669410094608192011678658422230720435994313803872519702329105883823234361255848994319640137996895279447966971378533229568830587491696797626735988191034837728084581570952985095698892025668035802906504557959733882529538489516474178928952711873817599705508019497968335570249868172379523251969846568203062240625456661132752108803346929536301466621825261035868015540787564651332947194751702934496796893066186907826100847602912437931689958770354279604636382587540708068048713190127441327512105400839704776714292673391831865177471481222834603529447662466581555961353763505215983037098866579496804032734837374484141127212383417552430569319989277038260230476797518501883090223708070961940205031986534481942709640246731853402083534563187314655124660794619061571758160650393297582143784763616167688053011325939578546581082551431055968695313837152933653378542031838910447833568573154363864276261203318536017003393325010095236533476428792357935007528361873267578825829052738384170908804003094026499124914631284646633243601603323348781130418102790748950314475845443434202604656543415968263836415847351839732092018555098964006770220675365920480235747063841866936513416983488025529882150369093933885025068682700981950944285921040886896382985403599638643546332880680586480813745354290835417155393117440147738657372420925567696504727913781570491945465022309033613303088314551251589356328671643632688596722387833454078991733036005037455697983191630255324582061548071632490717607347953259373910863929893614353743326109799268963153424647101823231808400622198245359800438875451135447109079422053569117397007613533439293985251242109429752634941163976547593405350317126944984715060435594821917932754028559418946324323985432999126140636281799322368184951999136173607335893814817692725720280621806801483306987631904538917892128077725909268088229082701569138300502843803612012803329527032472725958299898198028625289315355698652454177228366547426262089826797718553577298859725074887308632259685026645845804894793356171345960315696775015175028285712729197014682687900738987953302732126638394918126466868342074124129563911151038682763296860189851278661642181488747579426484859223549879513420759750125369683554830439617782270728700655659597902789987120268044915425243750504627392003639512025878177357509212815913737268919485917337213785539424343866779006583806760380285641633486736495089321014903858716697930057663394370320677405426336030301762281575972509251068196119713527577729440201183696030115263693702279650551692143131397215736540163385144595480569175938635269962369717076031816279914069147648749358586355497360987540048663694527380690531501086838601602892029918629362585877417060280239760026312999374791914459808396753652145222088628500198541912387503049090644634277074813309419271743536129260206126992785826784286402605040572058411291266248633608481379860773667939593083023204052837602003614669808402906491732927221614451509490418128554603338962856990877455936542918990880591443953328757414460075933026527889688593036744432255628802214801521910578456084651804619495176188572072462354475519606405408644300087254376841964798153306544683994386967703402110361423116527472623273271934668745897476068369289283590482161874804246425309736192175822415527097145949246065696984163733911519675095857641417458206711457624746742195362478865531723933101911127149651868094285966747288629800819407529695623624166288868096012424424627442083305097351516717027615121753659677076567744380233814784101722002380804991628477874431894615416305788905654296601857233453867560877831054679399647392112056196242378794429464250293430697591734667435368159904156262590644013568236774471728515176475438418922232840412319046040374186745012675806431408293703791606245240629448985436829132683108778655988558627750839639124579963474629331055396698993560668056941465350762617319632955792227887041026070612747349253370301491790517189310023550133568880901397371686808373648417453667057285508522799704000824503579415504086705961861005377096012159917678091345961200164169920484339086835852532705846584313306099034890108449255420805270598211625942395773514234312058300510950986723662445336939857520304632580757410135632443892964502194408091072959587134602237935535556685646203011986670672365545806574845839816624449241988158567993276372258173284989310799446455352163669163005962669959106136338532143880390097496721811059552405185363761556629857316215743983224227510823633440530724830309225734520591498722280573332905891898648304314289384225692288372676857506022152628959782359266041916416124652467470843302581115700620575012525952682468762736684041096558595434770311459421195602966527056572057317598233414204436390032090262532556497090909917002559239471627410923221983596496386870177530623197181714031170748171172162093584616753353436748401064748511397063340613139131114057166444633263984999907486503761190475187567831309142851625162323025218575532669894451138881886848847679673277169488662114279163796458771304706153946333289346481049051612155058123734519390403503219693058274374089497765874550635016595181606878512501616781997477801267415426494805933114898696745401514261846040546478638793741416896522010241321385539710726769836788197084891483175673107063168245362934994505804605630404689967028031757872835574684670311828514577023116926054348201147846972984294473210973608391890613245182319065211258049514030677343908675799198268639144783694516829188679525125495296110178043988599932288668723758079716008676889747279735299430040205501284014783751600860525996396107480830043620110522202564756639034564080307865122897369040568330178595945454163545314873898421862224259814818468055443998200539639437514058585388219809895704066146298648498620643251079242569137352780220569427361476198604362070526408655909968406446670322095795163817584732924827827579565704881132027809510153868700746740122547440515252597858587968569936394238726875291310812874760480139983876149875709167789336502476991918201031000653199989748785427993205208885708999803294036458459602589191845526293841926140373947591243882756611005974156961052164086447376215859747134188776768574468277694627071683538550261510732993690566710250881978885098554104065354734582479736968055170305903099796595710965982439176943116992626705890211792846000536730123125956506531301844898746468425848904657978029529246722263574264008061038287242541783734397773803496973181235276054705289170505983660143293495647953070114776336440942283898002622022283081385386417603951017677711064755164810535824286964894916140025091087959567211050542497269286893431925153219673964897671054022848799669341768639125655799246709092426072019746854884181168463596402394759440297208277578872324447457946110024094001352337626397734614642719536262043696522153954939244104676993467680801171305323304736234173158532962406077406934688847668366866708277182819314428850293182771805509747444536326530360835177918938062237967891094809653603806316883657759925614335861869571211008269634466859713141081179298691948722686954368232622270043865284096968626377346829128402039258660156960757806499079135631518421251480835144389626603330308381099084694768468838918835471663090962472700139927460902924474572946604224778929534226507718112472597501256194832216988448360255985770757520799658142293121575653916844102224554678105650746664582663886790107935219886159541180764320728325526510352474633754406688043048107426095041730251534485380224159529230650427435016447478512599763754135890521778988992038689919920962786002486536454215660176847884216755733153671784401322227675960942308462862426723727468473835376565363730399960899914718631881172936661555594749213015612838106960246016748858031892081412565787753575969374757385551103136071823932930406681747249087496283857307311067318709157653856944141357687623666047130424346416693759241378044905423724479097320135779693670899781833891767995193024412052242564558111048480181512025828974123162831166842231265497867889119662775722528316641006988435628523609483642385127003542981508787427503139585208802714074822212237472277398012394144903504322627392752282779900948987108882275213511675442735847922522747995962388091691641639411067685647008750375594064315905527779926023827663218409795746205309742157090620443546231465083937290896648079073267359959563037708706606735965547774075980284241738976090276328828695474893819732815418464756320419132472231168435459689496292872422509852916742612321362995808576614805745956492634958150784228430632103350783804705659808659154999759087118301173125775150281573572863792874076768141433398721280680835617223338999135658236800770492257057458730471405984589774857946565714468758838867332309612832483062590017108102517593256737473228619635377931001108580015296290941814413544920404141942376069340810385556424485627111613312771828973397837015165704829624868221881815372175572033235808942836327205773804492478908731695509363419699908955220515287793247006455581757907463544140895842967536909670301298156437646838683684506809760500048492996466881294689465309701782895520866388728031649374761920507602740713680634046599837114184713076291891889848076789616140054848980183097631166246839173581882753775516292836980586872381853752510936971677909269387989532768547633688173492132671521843954890379121903414321768200779736709104703117428829411861279141222568143694364453856358814499851387905538788777300890946830481821538700656044533406493512681383790542578722974294129836474449513249534749858448325698934199970543603082403135731661993580030609182819853172470795007274548368850277588052396688107939285480605658563525095663562960810492513403756736972122391209651045621784018022626134364300715007991209245532699067458468348106248161900442634344450741225460615064666869631110042603578719990551001046501891914442306755058246436952231739002238102966789627803226573224024439898257357269109965383207441229455444668539195644866290310744183425913805800393668761229457621905342350799652274658327384975832036119283561171774050536159662499278081991916721619252474881175969092662664542456805071255706497954315627162598082081073444673469696119725260424001928515634869238271534554916333863622692592089663626084303520848817713334031666540734450093132441784953615149736755205135010238889773572833754288658828581185341518378264838028999435294686180883969508249430099803881060510219915930533770996822067482308155700934570154033842176607879984779846154841463662089707890161419056817946126043618781743382197272569142009277439502963572663161066783174895229273775887121111099624676881479937400175233551737150787764219060487358845098592389072479643285113262926701512781827480791154267871888636382489894030911497720684911233512497762916407679532107863569838813153696121880731259919051281779478166145959694376565035066033111837965551078654471137477668942438010044741514699561778700864784172598506654852853785938171611987033625719308058061649851647113636118278573587695259442612941184219624857986858149670394822132653852392422720427845420825271377540687315504013536449960793473696428273739663324385569302094614163866613206619595898513382003083203676587214847348272102868478157412790397360563622262907300215899949021893575237687724426737200647883215007540623114369071694132179147168573744598084248476526661336685041728576633955199088077253446665196870819923789086817968828981189396681071987613492655666335232700640718923943759745402556734365430763955767581244358553113676216266572093402228387039140992797397912121787388203510694776249908911558197606226290064800456599933153221391421775358393426249187434249630075537187622033321393294554997757684675164023389086719260027465534850005249717658432269065124261593345488208056990126505919408255413764117278222061645841974306326487608882348442089274796792949369131245971649814861115973707056566415324055499308877818208437493599410118869117116323531430106160289403902122339258633725311363772622514224698125205179762666671851043154671377787245952216706083110081285913723046041629243066062137380841562863106494962933806148961485586114705413604709878936616089916850011816424209593783953725647562427907365782304755921195215781715352849151877579963153338350037871689659533149663051407279785791810544195526195986227262514111922323157838451963458931152578579473369401201538889203488109348975870926721490872137350028724923967767141555220225905053492992264412715241033423119260295314245286135813148121506133443200989761461102462568168319632346584501381141676565365655721506417767751662672590645088917685285158434996695988874758331645093712530747065956668810583081391618391515266734556234711521792703469299747261900334321581922623907720923656944824964167184706295587385497099743546909287827252164343186752693914311357057984039452099534721195620194116691001175873374420337204752942416708686957207952674049385926044451751715156194634595263555279983207381107760959564516412884903218440564923177034731716220420077489930936834567498437354669024727954978125462242353147381545765176256780788244022620079278254162954718671658169197390834129815795482916259254057439710490166304437093166732020249109808964455509609593339532006946199873846636738457302943171992385518976159531731513084805499427244902252951913376525524015851682015372611871663591562544075322140848792126647953116061661995073056737647614147157703774825329039850423747438946918639592518537465435229429817423609221147238004112585455767567490132537376860369844977372866410898314249300590963330800483341576163618103244864287705690148313841232198612276752556938153615140431805423537991527148029104845996755175195621928514077159289182365527930875277008475058736419652731002348428663057685958852279087051775280143001763471471573446054345923609181132473627383770894982159068548407654935725973103465318122151475850428555290798521801068741195618249344192629872882172730639714257628996026390729484776232252338599450174502924278849551454555832611121501291172956122975736074140094525996556177765389237646502641385892809263537913653052965314254452096743870004633344981540459167232422485854113080575518268783499181399854830719854074462163873884182873087613765735201671755867343117826023024953809512622197732667996170678612616415356423062240390094343438244676805621058083247722132538663485484930735037634698112567392090170365617161590646463003507472718442451622502032717067794401911097315468216581853005288337366251579754078966009494127337789817731323443566995633655658582865356467795502350200424463169671512247951972054858490338956686401146232967573372868385775424928582553798409482519433127787594620463589461734352419441811836634019425398196601584970667861338386621667224383238219163185864313551352297844100662906574363244664805803068880278999863768901748125141121448872285000120952250806774018053275019630396207989249647807872813492467144019358130605968196893055029074851923515280823722620785780613317150736293937426965306362451527613477729185712623538406882877125906774919327899616926479348787892574553091144859411086496483517932385855061054732469706836407817911702657837522968323855086148778094044376866593578787465239091945913403959848505219639903159298546495101223571403410619848788321116782043334057421345947887135465877242028086501200236807313390501176146529338311380021457881752955851702782848429086415755246126745319163741586586156548823972611659732288870052791218160917849452740315193980474419147527315985470942125122209535288539648448181374962833723089081609096728705273588942061811336520138568463875890007007701861340271261994966239671140428410224047053819465912935801139974621275129186752266977560349723494420289153966545219200840532884820025922175236437334347405780154726617990589661676976166288356635985983703315174874490693452286251226364670400540772127761442803476951024449307460183291599184387115827620910387988136994424639826223428324049698235614064229475849945767997895605903418625819650728861074727412974804008282887893704828471893266869248039890463643603104142912108761560450968144426081249315606828201459416037250968011755390522778226961520528400277197691837373190662864913110449907443982506130490047406722489237114325479393421432101127622962953414195939077322669858523430544015109834570616081954154123719070263301632624636729113448390681156779195077988251325840634812892554443919924850315847696687038295092298136321489509941936644704642990623799478246702921393845559230060105302757740486573994576344012838963146784113098241536828206281170976913948476144993268770264459076894155806287732374074338215586148909401268213966031984192841147520502669797894233526236686224334706613838799292382310661047475433690298851149815719674297944480542449556104633916749895669126531070887750163251799441179155888750844159414375626888769833640671490458738120134874249083928594761893583496589865582490758066615797534986333753162088762550661954798337116988612745716148474606105174311950933918757370132502279597848906314900534553302081624389734154715992585802655366928876998850967814414924327336650931112421792946692427862229273956391664433919271571009396639394471595761109870120132894872270137309395258077177761737044153973044252226581682442157013222702139603857602804477626775128414409041835403608444561804121923920001154582668786006478923606038871524940422853846462928208117937957970952544881309283280233399879068402941675359184684308272818528868507551868052636854113268377102092830329392733258421598311506814116704892329563429801494813551159228195489500409698287892942858126506938991114870228668782673480791807005089726742449719610301388047116969847256750132846918805996265816419756351677317393382691370400643579704999403356447566516178038468593487910331537884106028753434300093959171091503415032954990428265487298249118855360842568016158326950363728702477797160143886000652159178207704439786238698519066707765243655525869521978979889660864939248621824370884182764834178819552103001524704031087287373433023859035146801340076661523890007422394738289372840847158564227941100250437945045140103646966412510616803026111392318548150807979141808187797428150383476360769409124672216723502629514710029795609786857540262914616188688551461029782020251136059560461612338412556906168908172084347894224828834206656359624046715672865775420395436149866081347493529699078784064408236279866787562049360037898409429560011092871020550786118271166179959610928474308575467746089288232662122968332284857630811619892570984089541628215686714818675820153402494559652179345619955348883095921253687731105926576361181568810320399655804668917718327443345044447219940788174386506279897544859103255739375412097529867525310457346452354845214555159312477461285635295627005496779169815103580172494869481441275155551810716843382504848592443270989695634933300947610206672533062325908314031729214869796463864734040314665659691281049991645238388207807750002793412319649031567107249141285629648900881863296825909164650007441737819295142651961171034011671172425265468806338485253271943178560603184392396054259535004531941022745615073868152475231418634880405983831816496419995718036555396512243073745603796757271776324132943133356898567861391971451877274216577794486866497587681757332837301249299109120297876686088352783719224809974825735934307353332754943818439193452006277110824615713369410162044605240720114122681391920464065962788760914239588852356812244840570221448964127880957539039744628587834556617606002734731937164944809793144250433062623556293538274869036926930573678527894680604787383902923646971084002048557960906326826039686111290418026350633307667512161387203306969011129666972460602283250329271734060320642180348288283702447776540920893886973653113539454109229312618584133585418871782730356150068797678205405589119522996448781440105293789226353021135647547428683065940212574377264411701784060467416560412077383896517536462987350599408637601990914000941882803043515956407384683088291981701015521140780091701532019249553988705880067009561217725879873989858615073232506916042677367215398617662164327811080960725815778621457858632558406704053758393263484727031625753046960015036901174542557190498444565394760019199555815295355810191218779457444432998324884832119635061078734588447326815095841247064068323557891825338985021279188227760234521386366139335301553646230684764080754902430131285982404248244745703321259121136193753049528743551263455177672553166495997294551269597282447929828157433474857055952947536061441839539589769644093880216652030868993559163960467791162417345055419137942451995449915648312683647680540234093349066699813183133241517069278848380412958274422197181786663774286990409487901580177004219239445070747118776353760382237137165098566706005781986684157933889754532173410081270405357502655241064878490756066696397138813049655152813192474966695972436768009983642863867502402796323464622654403758646633067902067920571539711106522110150688430596413556719646096435321361812564184001460625052964249186701497908686636653284645476381344747337650388614982371174790361061288839396087540702042588927218217334783851545480900351696528992367034949945049208932958828810234187685677919844485144987072569548522084962570078063721268876644021992775572868911086949115857120398627195495974703983897117083803999724068632160369008609673426555958477187344166284223335426905951541461999089551076642321925878019526481784885254054611082365481360268527519331410229498379915071022602322274667217238708006389884533645913759618150439859981048597001867699850028987645141585580452728741466659829403762670140298751634244931759163633464843889166488196504375974149927156846597599243427467955149224381477841843986528984191779093393618204964356234017704014300483317350787781114988831210896678152815245422440327365013173446425223350763793700406272145629901368218007993893265462059566464168212823570326849674101221538236598384886194822243967584412910713046616780196746512549079216092275036988412926303354736476527534174812657849145648845528898148260096321012701346798733330061015492620536341963738205654206951769128470544794273559516402703514613720046288828907750729429897541116700349256531150249539817589112485260504620417082508262774132331813193377791612518808970594456738207815772956750766804285581384428969447983475627283796351700775778567361089549891417212536837321664223311422432097774162369625748653367782616873364121116282734917380395716286481827680496994437663299548376831572746393919293416046957654812366422515889975488946551477997931106739283570047141587168228297548731640725030189965511293111533746219832214953286216702099337854208383114160473350379362593714832587860883014857624486362607569239072863778871867163962188381320855136083587396972413355644762810975249825247323699298032387846295215106628270345931621312294098293171284327437268537049765805915872057787027647437657465877599323943892668152366177656453803811141379589083243154938938775493837481637018528403345212638924380419849697707678215389984132668933533048481700142841191043712596507258950721409404220213189940126845118984148877904233861495420622228044304129729757277457939303468977985319755549614037520240784851314757800574973028477801215941799629732216965608660352570190486474685871414906641553885505074425607103072226351961549747626191394717929150361866900170847441118648393461004387862992535250634569693378387637758893314145100887332562782834392587694904682630460372218994037487958342272500731786529323884007755877293108616095713518746677804827134838055867924922287825923636842324444826102406039482289504176702690341647343994613773863396687162573651076963016671037634751495683232176832939484456298128263720222576332231035517374878978380658163685087710588647059015223216787095174868820712508115640427100405185810286100605456542666152419304170887971710819183999721711709450328378356129395680618072229823037681312528891384552842289693179270976880799962718568544517552363907261220748494851239403092211495247332852770117641726509816244329391236362920886887389013387828727232769327465965373196490521750313001694332764918007176290775467390056230713713305692952207026114697634268523690053254598695087501744309574208250148065995378926695700245704515907313968971238686634893237465792557955353029687545916094903662502048025933592192244573935774306710763453049146148851734406120892538267781117304789995135102057321188802563247122582759450986502313344038234549189538292828355667444319263879475039517746548363185782378376713918173765349392470345006203756140853428607047267157565272812855136496762008034568255893393717516107253797668636727264063732465465389691072600006697035397731927826964547923846550374321348467129207847784095320377465900625398974106245221175605211770982350746808777752837369882021959575284874200954526075018747282845124010527189986678528256544647583350162755510036432790657021003041112841790470233971915048974208758834304642161554051422249881517770578272122211938208585810630685091065215656518919714857410503540431220206597101267352078134017239958503209342164884240436929579964009403316191274140545605186977553668585106125258501145918668615154540279928996452432797040721128792028325870545739364905074776382135476190237084898818174417995342888009027511115869793299416886429844298972091697599301004126784621357756175740910646936386464366249356987402658536060829907431352370317443978581818761351717730737009177240079379535855143834752255497604723258562335609686133093428176460933117450808779000702828825853733718979829470493804038342248218071901657546788100234121040425348671098242171072140897438071600828453424955694568918582774355656328226072763100244774155199757219211767808588430925779337801726704193670217744264219152581134468237875418645151674728309731237324385703044239436260908438827574060998313140576554964049662360361349953883300701501074031299399977192384942377616214119432321440977526190293235082380898890097675344143565291459469766937715048544393692391370072295697487271538239326341927944092969944833295740377030686925728710995401688106841042042912729443649592699509876883146055895755697228488988142037140768235546164891596893223467850348563226114516735302504671116280958701356411201347731830940202506860699262445242809048630006442084518236636240681648035609245798947510697956335889791104644347424311033038687716349513496732642418227711028258180606789334712349536591709347236313487136627951634560177604625385998704337733664776637413996671239055394011477154677426969414870180669880475296063402251503516017182538970549895381809778288955707744535112454298558258674311507593668939395122693123834446207933852985802955497211141627403622454647788590338343488560517800704631617979491538307470913509223315297596163953264944634572714352374662439759248603074311365428811565878287362363495862825746715612630348148317875726398998309005940473553723322885038629696266774321676537879320742822973685731165030595263395892414255819005383332659524635766396878200846123910256455633099035375072299198638641213252552137666140190968757878250666406543276862130002030913830286111470223236073713828673900277254802491199433211884022968639623568433878625745058396631316158353400425679443972998694344274819182020671038309745730636291738617045969996769845573004603745058543264460802039808535699023427409108782269969571560700899212595400115371483158854936804112366312305176511599643913923221313528192736426315777849492760531505231975299496672415452550135468513299023845592334381880931519447627775196535643168197389251636517986740697088313454730685684364788936200821887993537913239787564873239995150850032398505028234624174161473673825254459756361385480919164882940973326548887590789011577873065396688853016185977310929048405691331063855244891169606705340928214614862637210232509429055874927871856637047154386287844463827223139393090648453137767157929374029492412469872296766368861598016694851688666780258934216590196927161081590627063786983477694563806848404002176807418631195439323027892896922376621623268152432690000905500270320277987535204530819369217264513920895129314733644937007706306203053167197578626044592318709107616659682475409724129521426438050708377202678487176439749227529144111486176865971094163094090386181508789065033003037896543372091102167013447366308590861499378637379721774838602427848308598811325285449796227119910939456334558081865835135366166681763536315847786360329621721798856385453638478189547148938453814093683222436891708955381268444573509487861285776101594200615623762842436291725654780288962914093164405923030769448169883241698574677646352024479635536447179088472248529833205756763153155926238147659098204790977036143186604150552064778835886448753594457305535988080280555786315381514277156012563501340686704311594838032316858612316311402226638301650650886517258039035460050763557944901343649684678220280099287130110053050257005640933296752217296534629478882867311212058156896687395852675123736933057214929780525089562484254531764192441690978287861145538893112116229815420527552290138617857432318451565699450758756000130791313148967196528258612875668327092072638780142124089103482558992690790952197713786813242711493564820245259959372184272055039859200767023990138953026077138538296495631339789788006009713385774630688393618034134210744446714330996684582091298777414079060533444440212857888342943250498212925846396284897692527802948550405969558897706173561813498485710935017291076757966753597821915441329410383869039289962331897465296079244530918764582952483704794567486924964240270063910812158597771331322822989419191781689558818440800686887469698590669102928344051413761682270687302057635544609797040536888287315299985741791415548504397383770231993362188811498709410714320870348272882582133521940015691429093915211244520095761762392194768025041748138808139544428865531650395976285720318082052208569065360679551298117877324224473515198408076650131358759812370587338584334269700990382374555721334555166875607292494845116094963712724405554954852427319256804039421646403161782689103800598229895560147727102035352810760783120943502612541186368809244035464425524036642310162354682846097286898375132016147263272740356149482842982565354986168740846161108098479385711967751799840495099066677093856277734145116734479536557776594628666418315399741576918386389047623272663514705163795451841752218072929191945557965649256303895814560373648306042981129414971910813263595028193730418916861701429245721031141031766334289927959444121259445711444305649440724572401649723389185596093781821897206450990182580875965955463153286401986484799370465746329820353165613731480849092637642181640444973873122921237263514580684492990506119017683782290471944520174609239803535814417313411255919122571467256915043932910420331976225755643965546315621612532925671446537913595947532535184694873288305173949451340027684893844225275031312171665159498860144358039280285051511422913082081194708496046211096816770669125148099401998017801728613755674774420408617787831852131648649296383998862225049334646285586902347171353859281957407954982751004114728733443885786398373372320051625962179318384758780767393887928028931217752452830551509426837247965069761242726665679872640548858693131790867326472980047617691217887848134378536138210291405061985401397840716287181338717753833679167894113469705453971593868186067110553802491759421258915602520304692160320982874838822790225847689686365813524705119739295454845432086799659584561841961005210744078178392910799768410272308078004415006053619684423401476654827273058120620589393318962208448028458711101505145271098837504032645112175263045117783594840225222984455021757621384577925659698197631812140242338688764887773572626134065066767968915467548526759674594304678013827761141214786114679510601678728704336292946037744389104705501336540172710782596122909647566396057137013643969466641149368546612812345039235423819765020347791369300984859988099578026138853892430960051645066385121597018162839053035121963235465382067254840147655150189267668880623854644322521412559504103650093304345309437451367713881307385966172402841200299416770602096464952164109673209701492273470860544533388784292405825857603334612455834401158266298714721403403014944418030004809749299619261166780488834113514813503622819802234511261071547851957129766337635933953910604754114589240202456905662930414240993172598590035843848491509848596448373487804767589335814169017737424231839457680526201296068173539363781063345915674327041578871965293805695419582692179944763851593522799216882461143746527076611098940146602167118895039180341234264526907565517681501999590394875849794973745438097049833001456701106450178532181824980547745726256206884320642446333510195077603340412056516037563575118065266354686418580600145889955337446417456369122249560589022839201830286794427463937702858043479135333250033912298283382587162289087891738388079043196143346632603318835226979959551282547918608707693880304451771347788325993472389283852522655181890468003002383896055750053535026195802650052581511585931864809779853862241869310626801446316204874638696602411184911280916540598129915659373219513448515000437364601240287287189151963173070782349918061873891795389444065347566992113012792176100966752168628049621400782172161609607234467400607746017607324219885434829131937881420731412553389681812294715544211013195935787471076668782954236162422595444981567730480489267685927734640109089555377314634156207560159445383741464897208933630783364246514559202639017570375239974973851380244095470011385389360612295329956422172778016162093593923176448582693258925090522789175257216021560256830722743481354016829282924084960738749321501366010651219602474313895867964342436587319695396743203105440277349130468677873837041623294568480492072219194142877596493919579983844874357550412807842280786811563352533762964414616073539552870034866756036276591148711952109045815701635299279184314069475542004312771505173806007730005568056898950819204593481578121349013966267092431500271457589056797633058903369867098499906608269023302763378169459271822487649620289193093803983680087641833853778629793077478869023206164436368083692044448454912174528772971912002710632930900597797560341314791965696974983401929682782209060164619475951242925170063962451263056626917123959452967882673934948896738040667250869492643759605806245469432898076321868117757540949138257775815554321784945502418683724104367518280026490550140970370310174874615122932696290238004158820991430214433362984274822269552588282911909545800176607087449561097170277156787877108088365478987059115924887025767799870062951390662872134478975826429066408017242539769839260681640253530243110952975285036789452845597612222971638390166807536502474172406492514102040904658000610751264347651445187283020806860817685299577132683420392640750829305613979114336096654385256344288885478104648345380022118146082779220070535345669091182606344870358625588925878075232123175026914719064499232195557378232350303933572467406361234755687737876882995189440962552264704772252509955369845965460147263086902393000523018344374875544724307824334141872582853400654040888685530201890677140351151129775135792802565404732496018285185160317471305411081572538598997319421870743425049343534443009927877208110145390465312944675583508705019414620944109615513081251648288551533363307714614463446590686934418654023020295311459271536290173322519269487213386861607954002296025869579773562718370950810750251325830511134317353469737861082467729891650419672292679341151884564850233709113695200326032123111738437638660063727624541820423407853824034451133935310376927315476280660777723970285763462596870594628610933966026870413289888051398770508349433049399260772816889677330042989091394492883509021869196697626747964440386203983517826858507822358278571498965842739766060595759063043825774948870544287633297375542756077294471342616832553173171584623655850628417157228653563089552382831309089827401529192232219232604829374500453649504262668623473534110651848756695127578263144403172538611853823351733141102978890190664185971421237860576202348828304131355420020698154204724950699983077856771726534610348707788493582563426799097562548846346576543360566200822332215579957741761332301403925656853556847852614915073178364220594970291409621302248953538494259604597632043170994030112032949235818964519423543638628175348427043883220637486114958739566645809683004856500460741627262939016041903941561402228966874146334483351289753490558484411072834677389555410918399082664079744341212766701335737090235813288621321791106962132521544988746037306547824092929619716069750078612930232635928845445715671068444207407914952914824834342309817217057173447881685622180820985290487176285930568590702252138900323553522048520258161082528909014971973989718735009745821313336804554843443219782402460109573947386963806165540532182544886985300368493425059304890493733161306780433917193073235685890651788653488284133274746624789664557489895694066447212373238325249990791089952291303985544108292020333016243715439596854705170146585056671436027354306933909195891410131850327219019201459579592825888217845071903969849529531783903857377958189624524043361750390362836588164634754578036848247956429232068333121765618859112760762360660963966951381622721923328533229693522622116688731955721242084918070635480767838061149976580865691110094031391909543106485193352464027492930441253292500860240930151239092796033663724570491682652322469339382144233932529576319923519073890526062411216520631382226235477589559734642851600244641628207043792649913985345044831049161462364690765833097209932880463472197398847566200877967624012572405883148219822113986639875171574714432441472245614501961185557444566167043299527635787522256970100723433364162957397880301048002040370037510496033471092558862236517464466295834292061481328303864297210563363730970905645256281464181723670258067521092084717144053248281644726896466149395570716585047391618630399727998715754960037169633161186678920719683174034321996706112544232024850253732719763213639019545784443191388178605938384663019494986293516739288681979733936789130493362893674348510824796632733349616204009103487146331790620187308299487431716781209037821118340532108829003295382151641703272709519556733031816329669580558935622283970802975821709885652190188163492879558451836735367873764546277938013419604284488378436745443456514480899695049168775322745204016918540255673738870580571855267561363207827122782768860307188006828582893017504693463377273440077424480797954720006758434974033935056851017036929727920419100584992542514974538826331356951105337800455177151227964773062550663870879058015447791551659272697581696091663140221992985262068980958912567362591683283608822856701354347546699433297400763301109973543374694442507414530532842986574734928152929166115225546340466497119546990091963436654872635566608947640082534304771338444214132737600803312914960716680751709473568213286765414142655975894253632037051489660778727677075201310880528671688704233185877774908924957484406918300596904708563267845768550980164264619245601160393956327890847827139046458890825483144241430658098137990637278379978988097507909152868623196185535015566966652559121343147177115289974879916751011839785910564557333942464977886746939845444152993817945724352612227066109369394547100695364555089019166548026721335922659028656731681153753818554190817644811788955066391241184477736527931497803912368661189696421681596559818084047640964315239085888673355022078313370495070341845341810868728807906316762590448300812328249799075954772497362293609989179683245704531410111404431941965167364850420239284836287926969558563649470736442241406104954305825429644307915414890722779646848692847603133516790628129289680201449903927571828899916434110503067769273068772643727804132275738869572506792912867037947562903674125111343000095298128094529758031700256233796669710175101914858767582000186088365138249715715273505876805478626250372158290696305025411127756102999992967355479893235992882425726071732075996577432380403217743770968025309375003320213279460522944938161188893690425579872910046809373610656269836291456876720451572933527549905670078003738236100018420135830532104731269334841973955852476833267734638652568888126402264736751419047256402566938033829493555019948042177291640659714627086361549478139936647961089243093876560644041607436748842282609445551915369813270382390738538613112406305097833668375693050219243022615880599683459145322128431923112409178902372761711754552492788139480200944600922661188849401090586750905720532838388562145244039446456190814740767014683735720924771142482639033503647337080154460500417129849470607102297767835799707165164127701345688265270096427721391130668024775888616392288573347925835334735799409419233359715641685867784644135049280683730863416456417345189412825362155252349648250631407828979089249804036721659170326741487846696323595607778847024364871363844368309725709097281249886094794265576856312865458143952662262409726085177629725369855729908301937360669056407594626916516898256681313230887556450602517693598234366958225629976383149352506416090672888101670957134631765745174462282145869186803804743772188065078108704175115815971508854626351706729464503382077002712354830880281004605585764536412118088041131419434973887716932817917200354550241312693553952771468968828833945262537363503663374419798765462928927197098384472662464673316910632342643925100278513569300093752694924896464759670218880727081953928484471718539095369606861966022346421261711003891596532468195281969679698870426491059693459522542557616797026006241725910447160198574020423463146713165284482226399175795355735830030317749571195275943502491313968139642347143865388644074112778158194053851040644470143113824779371533345105530326280891236810495438311691213608250752192953902633458217476117634493488164871919382210086778588369060794104213237504056851995977845477637472292054637000901198132119885015207891811229473467953576307614153460702131987808744449829356480608782779890489705899404450469988643580701244673651793887413143563330057789172879701161390536513108267116455724459169165746891211267976250896685561414675054911000497412788635838291516059153225751582668007852121962166549412992490447984564786470308548381648946988820120133305142871732674541452094489174058063293772979419635743655522940420612930576567129575915881376788247379604606193126469443529327454030721343984431563555807094056929833353677799024746537953669451218931890199058449600692991410010834049362749549200792577130709124420684882324363196697110088107261420071100682387380098065507053277305554537105532198676330839279851296274077781931144854844183057193182099179476041260442309779100647625096942883540329202911013198689734140537219621538342285520326558711590206861667825233418847407482097418225649399292452124938532765647595963039665465888108178383133920982519696513544230613307623743074483627442540682490801921151137808541770808255353510332686888055555145784023364424176934027913426916996494053896979446848137327421102110440441367464403866886695621434608272929314871704470803500997265327012633084268381898414001542431045631418454854831699255861107238126150324863649548220043735094735421679799023351953433251564719202984031699791309502422508802724807282558041765593863223845439611918354865660310461176461153426921434434958418322590599051113670378727824959264556059013025448761684193953190577266247353569113980982931791198485277627676935670109835264275892000520166089824665880017587568806724193109055214634190927126494431989221274171288722601210529175283708495228559739084593657782256466871690794478912080258592570147350091678743376067269615196637154704259196893235212774871994321671155225718589557581591611911875426685565103918772762079793574959113798035726580093929814177642171653019022041145774444777928367231596260054647376332348404255446347019392320127637341058638932572228024004671982948640645437417788383521695236740151607149798594522965135149996991857244513440020164294012609826364443079456477763303316303496275262509609364698440815879733458000331249287133425933006028935357769879769193043580229065466762596504305343931694685299377719737569576068501746883315082531412604002944597220692412518034664689314386755627986647837585122827046190319351224420371768105725733071927677150022255380978363727333942795299030824568024334889952729633013259864566280329290237112406292088546723634797217237261820232515851019299343581983305219811541744378254090788826218411997693245100150800168752349100788344707777889051167877690586586639609352529501407116740187289893441425880207367661264807113582255842141422195658654560646996445629704312402154059642052020159023924696076636654306135312373066826138213302684279522384861597299834512103356574827887116737731808145454423168760605235851080646081548906205612296137796656711144627063310971724367858657442294421821039767558811585324485181900415196715846639877354669589728194923457686879951677194807185901052653465264423061701880792147425832483863316385437294834398590911885621341969159344864853563284152962503801264669296707107368632196256517830271956253837881212216081303411368999725122493238754798804782566069971627745736773724592851989830150658477034933032220495171625667715470221165542802858433162964781055846014020873641057075476315982655864716271695048421303134548377677560426108506610422285992206452261368468985642499216769207984249801138889069193931557050189026757689532665099406977457747406756869126178527175875280329271406676381878920756212909021963271318253222609291207905308639142055694344896094716408258883146971927437620478988592320298927856216863485045545680803847299778852424069919156978047916470472058320725301991137690178179530642524827532815215811702906437943374913389222427205718941139412938267623022736412230386312651845609095489750835860211477638219425147060657821667462927940745121593860282594214239878780900009931959541383093828381614899353117667487439556427842754667804907422168999520484045592981565519280097673196164120791498710549607408256611001130719410784990071126167459193891021515632438241540995127736426985945776922018770978403351158263594647725527071835983257955838803299038401464969465444700905682253657160800696780298659907727032404444689742810991348537681935387477445197748159300468522206963685655659975304753772276913676058489543037706339107947266072603132000616065474027887875558891670420051958602673652722306533989969476888998024845979799276697147687782377058482399973931028329329728333997613046672141406096195213504627947201519741762231048990502428420115479222078005784841053062190072007474162841164408638589833113916897224839200818249909472994930374023530190305574075997145254981095911021281996888244993002472144208782127284911923557542251006275285948869174117923841677989870841206346324004061833014128157488889697067557826720612132906150905026819853425749252116250429017418769683387673350855472114617494476233993571229576821549034320140367453036889703156039466068377499154210359448517064303916800120785380600056214990665091844007626272099586138357650143605280993580660778011151817975121780476944780339896532559620572833728914536711974147082590681644099733547708037853868810645131441262176663921512467940997852280493396606560051159392044846823744459100649030915421380550566191809449580797998179050401808935271659647866157302589096503386936366688172259087057422065244529789150276392883346193675000895519559961429363187795908048260645866691415663561644803229876511234393148880502540301726437315056413960495555873644343471998228364899079356453120560525569991732210851915228218019656133885470205321019458195669909665124766560827940048206267839589987909217334003003972185681805990758532247171721117102782451670763663241846729415914636059653451408581905763404842789265078398569518347557589690331681826083986484537041173977220588491403616450448546619028775439429667765302107314046496183693285693515411006416171527636680872919349954229833332277433400658927113914204954359647007626558060312417395688494420403011565051630921844664023456912905604335653686296728771775917432790941325979285703700006936722750503135477088801806780956711044891089643986021976837441907157907398066233398334481542388301400809358954383388005412355850342165743475937980751213195530929827293340159338214658894362015557799996219774562772935397280451167747244499105119231113241059738196477264509362453323658883459371140746889138257057494925765273467889881316063355654962803711423936539592423058051726577220711590634661083113534029433364103095416227939660849536149539098066125734014320473511327691522975101476886257263828808774767045473330990128325273987573658526379612310396912811249517391306610024858899270450471238647357800785139147741501036042633702509060449922944703905363809142390986915948907386202890473959279744581810912860849954600809658371160574582692971958421705470713945026377507223544146627008998303398105482805770359230005564468978115577594539071191899544081074636768586140089545497189145791066780172831124566539700031654623800810057772514639607712427849381687529967594626252751270676977367458788333981686379071896397029080361661495915992030186195290462262846616049563320878389697955391836116528616750320112534103738600441540784953911543262052654175282792011732680039252870588722986069199777680700262334033049821164591354653779855382937770972773592842903003451706364322942239859712569213191247853753052893602218331708083515672818152972927714688970393415020862367310836821600761355594337348805409623595423695323971188242957370139692961581583445778609294488998221113817703706271927327500418571438572619964258913111195772997396594873172653926573016810675985525669816514361316533126474138337681304141237402959039710146618808806198754716415688103612575858911057777539818992917346026114773335887925746959324581610656279776759763018091785645390535614994086919004934435099054370117656717039010575075968696023314489242623531009107042994299933985527364593767646828337547671906103737613504900992056701827986824685760100712380394109337043330247711342050958235199565351067362973191076779755358274263146796359028361067541821985024417319717060515861797815659210035079850809140106461590653517263816569332216637270066610142658096428481563227649516828321977745475542172825716149660532152854987478792520469009825606185247496401659222115058485145221916572870851755090383522228374621150086198534833544405081040501259955058852621838151008793932593575906092717522934531652033720802415124494840772722527511072593551917402107995007716972603549536580272028398610998813342945257889848869159727351755222405164054984543820708062776436258836345187884432500653695075150619736621405981866773611960557601388000631887893745120043678772743394386112622936201029719420198112807848737016994386836873776995658911310609475414791315489176156834190522246632294468763169697523573852951418009575092046255826657099202488111185847556530445486815988143155579529345301287166362328147695308592078579184039274832160997855958748486941131472903733177943359327048231867052470056181460626235232788985190608634000687693904113338156597299238635943683646089665715798914782287850896093225443796531065540668886794535054606451954779451977745595609123501111325264419131715242594750894013143633072896711428428512721566637546815000999380939771478756237878372693151845901913609882730100209533495290737969423474261033354977509866621427706704528156456862934383327645413268071442920429374317601474768650079647081444259709839351954592731028189649998942511765651272235590570573402606704785214133342476391816268789218430071594705927341948732567388293421203592845623163835520165830814774090835651835579085711188938798155166988147388717576634892537866334956326904901615401227313427562118256140451870214694959417244025363187055990590607974423348059186711749138449675346567019149815638109080636033651943939448867777809288599706348783350765480219932188844275834888799862589095072930844157469378578546659544662641295620493089813432400051849122247748889533549671326076949692068139519812886735849770222699731617934699393772878911482792210075628220254282255212187139474823611901572314763343850674143278530704745216046991499320222520347268604762938707781000055341716760382252560005957553526857964378827794346525553166738316972036152572794194010561001780579484311422881908903021880898251836522543673407197521031513984697824077245529527247182660345249987996077071932287386571131637728465802874237926239260741856158169548447599180221303526500913275089796011745602419936404226242947416336764571278652813573471772416475861595651662529840168618886495760717532829841212477503563274614795928437954290719761427964301006322634484518259982525206534050159818396757672191835758188813760590620506137268124442123241460605912008049769223339479447316330884027832092301138463532509415717730502082038743974873880757530594441600309241131179774288873273420377279103029355821436668545699962665818997672372624159556610305434624896750514817935259459201581403288244956595447043444738853868002911444578626174939064435034837197830749296328780766664298038788331820778858121432417670972138723389803672414577310226284033639658341966959157732194689593649740145154137562147040138898653611252091179743183704499564521986277113974846893543919182105447677883458282057827558722611295375634374263744544452758627894585077756906719514037401488697059382205913833924393441642225675745038225227333653924245151208632900364392439432338073527415394841965339245917906925891581867649617662036282609093782463841162715023836448206102169185994012773336118629105580644464936173129899653834030603593473249471757241817445608928732547418580008829326523938176164013756118829470876838550303268339569650859336761526685538526903211454590207312681216552796677479960278241033932667897494644627428754651196657250627932912512392747321694817580413354958538431971562753356476744775061747221282607950983797606972805914764952510466180784046585929276264689357393504520271308755413074041508417232617528535625439301780191691905573401037404025719461238193307958679012448396392906379698897609977567769080410065041213143698175836383470022206526712947130712511294035280631354232718818682109767018305849276480258755269489798757928673426843136497395445010921831348551078222798491776519260830946448162679059601536148773997500854076717372283422620483048390187828400480312792680459208136933765378090135784180926815076572312354384460492081577729106295767875883397962452343868133244743220533492384393060088197837055530501958479968908903628480130147317407812216625683285034021041709116099814969521133021433018242045703808856973469303717310467172385165878976547031818265558473732684323750629922641485675782112877218790512283310756643532557533495418220286516174730102853614359048527438691927173662507284123246523719328018324233728896127686595595125391917928239929452283186946859157581712409731549314641660297121611595519884927814398253672911522958572773729784640882088225499149350257884144620906650982244472094640640235126797134389669267662309520226620310080029021334373188586032536256782521779717885373286479888688603017933307830823594506403156449709166559140479447069962690295937402607474739783488655491080685058150684572907591409578492604062881331486207952341795958853967250298938322173140700788635724821863647187283808742285545611337989782054178180110647752848734012774697335488434644234394597357959630221122733182776818867825973900785345844855942769215764366082929891232631086348711046001716677801911321086819684875441733450221511168349908010868160344381662013943028766233115159567724550557946427401692112467993281447289011875527183579187806434899178161165553553642157129215500415993001035706631531336638167367854792036592378272591073695395251979988519337566317091469749907915218297622803046960017623654072036183917767347168666212466570012355078043381878665177202335108560632767899300979506406001485066878505822194291642718865669618689446218536646819904529670282911602960725687145347355357399946320521799491290437574018857379674678214011138632861496491835017422540315967647743229659224626897782566766217214278440823511041139833743599683292517589432610502639285116214392910182150902204827332674226595239877734878527722123826929524960944774340756995918858850586263412143014729958234943433475332300031616467983957619578171562596240483646778195577388480843897010372395475609965731512238316455084728957064137042569022106005736418081716656550045273264262187665498099620456773936625570688237933565413389474118225002923267639980077838337342793591771767456781781525452373182930502912044937585788548993571512254342173961115403759687886178819528000650699941179269967415870017803354791075365850144412684727045976926569887337181034002371009703910259800999478701796294539314798076489181569457648517095502139846169848686802642328310891198234367222376869433444082987502385136696118685722745496788488548602232292672157743943511566452531858907905501144668243527640353030436857989351328635363089121433185262878917019662930493064736080969609075714782123385240964259475951254560431379072143302938707865628139872449197816293205970383729550266175481873301775495325167556829833205976251994312757723936922691429633982681491986099702945781997898933799704409150914394710150670301681025703927286705344848031140261340845893679639163598391608842431616565255343548836356486044540709116620562728052787991816975786084287690782038952404127466364449724498999863922138303964076070619338928017723796002938045840692901436499729382822419165149389991850036812025805628136899909697108718445700164053147941246906407692504755989972719268688375914725948376946793397839528558777260015977482161213151641074850420678814495087689434647530332829648549605000294364765133826991800782525797184460372388570157828045450414242113115921676355535863193197179700127023313147343880945580218547487248191803501843809044342130845897166708973169091473454947863710937821808195405660096124817404489493145807681853036844666154180888334425643835166137287137364721045372279713028816154161239818722362961327027383325634530984558392255941455217946436435830813877905613521470280592312848172371592022925515180121355565370938037640942512096920852985066472350311481505240656130931938613956698608026651786676926028573891957257117533324291017543878307343948734579687011966383251416352522200253617964579014966949824421711229215357591174262324534797166835401556572471613741127266897616470445341051955833096128180472105749659958086368062644834032891665937148667875263435588544878179278015909312473701810268498540535983561955663425273262545568833601299569228209387508056753196373109278238328505096504167890638778541177721332406444438829784445590473769138989686198636496332241448523923754641561659533409458238043450920695306097945081230592904583871818684112623596630039021967276636481412752834151510834726458535356435093827774629680124785707748390815807249102781238531412718253040754469587874858706475384053186398327802528698416229706606662733830675952407124732797646778056430938969405015967053516696442575476785104945668353823101770750846316578157918091058014544675782360729171390412505551649422102597391867476776875766473404951943841880390220670945090450568085548011610715625309452948698512817944323075420597985418142923259663241532434587213001489571062126203760729708081244980884728984736489059122908856606452336878888035471797065848315103176193972721793402434880750740942991166371797457410556134611258089318618214416741380693976885707482751077048652267822588717449303092974911237094541417817372827925991734862105854534855745381281697504774762165126637521365612396386358089480645823146816781609781461626607859459035326640717870923931036810844249616435437621974452030990819231918542390478297517291148175517572459790509279551607149501503469458954843600870408686928257013507058737795923542721269846455564480009249211200295113610883274675385817821958044053619735831875856515235915150174964735227357361583149147008154788701069477055756222505882958404130260735888783121382518072462966848784074142653436077450355490796071864042302954676254102652195861327324488499237191327978950575944045441650907709022910307933704177047947579545993309716995123221006258121814979516339929461105468941316854368356599610943245065927377698278978304434438196593570208054654979408859728819373098986086175999567775075389214094222415496680250736583984761954948824701531472969487376998584734515248231263285081348343884607255951091618939664301476950536784526630974662715154954451974646762481391777084705433513138918552253981763312883169630522668970205374896578279223986426611781660390172961077653975932742656576970564514944391879803684863259936428934772441587776459001055997948750164524237506432617514650927951273993970804702145306263852961859773042522369534621648468193900413074561878614066639249570516250710514401097713604609969131301508358529606152554012311780920602532812812488499237253930278609339372513268471855128422968412444022217983790615535161033622245345944681164007524016870291263661786940332045287914637356858444493355284195690883569347514838538117540208951488760366584225321973560587519926109455133759226000319912554645496496617540551128765225932584314719240295087679961141867214277170548398726786195860828965417297081892428388715444876478679775703436344835977947377923813102319932932567935864372069541701758452955260128042064236959428839066401492569092123319830181509044395748581679629097321196902858573676901535704614314837577286922384558224330237570826007386592372964114111272565225065385424088636121030367753099011960101305337974057172004158551719821313939892770971363946011462404153998641856732527632710795148371723340928437659075232636504147739117628732293605618371098113238751654183053375890915038474579374070328937349381457849780263041139671115213519114593161693154014069452200901703836587599979175833374524592942190799686754091157293935560746849612944115817125274932217566201148574803404513056205286971287918727777586209965331910042559661767133520649661121779055453528312439469414703857039415647301228203654381821137301582049060134810177229111190315245402540166531988660103274131095616191878450343873415408682513126027089332136860252882307924907811609736647169685933349895556987422605153845531552530074142812931534244373252632959010425878692682103992818024230697517358887672808839171185387169413537107712868609359039546706778469685000452668833945030236851755564313959105359927318422313937969542154482084784320619094203680896364506872588274849813428101066238069264596949610705257362915882558667271630244318847774228252669259330127078651958076747355863338720432297910772243629686306848676574612970897003263066809895284931393038275785177934962542949626220628029960069030707312795333529719397889603726811032938596446859294579239664918944895068254716299118641940061008190836651783422289336235325833266713367513580998392927864607754357412236846621920701176556706986591228423140961014977532226017361256414772465235531490729550790458477537695722196195591976227402936163168891202840827277973824344249389273645331541231447341932916319289502227214555311643798599805291447012669155841532320870826189425675108249179721467832375385789983628938324757163214676271985910454152717357132798067744813143364079586398707912580499353161363685499478586917113802107606991291483133993034655850853688794570576135630712349238345025761915582108107967002724284416354248482709455044624621930040511970807461912973929135686594859377670097439053701673431853168466492544346199323968759507564052941456880304339475966762671637286642241922770599734693908030979165093644449982563362412887221847392191790501135381339258206896733936259428955382233587373740960690197691437557164273060981337686742013838141717610031501501057284370890062093265066615761235413654049031486720327289271644708650161386603403285988072810520320179515054315232521717130362645657042902704418298397939919885869646209758121682819901337115032885643486926769679670921811588617328758339348889142711548855735741885991919680003910936277423933166055544119720432035798858433259159314683588177658009674254058569354148176861320969199558244153678375371391018547754036117839728288072309834040660962914163061937993242538042666426482715377728573492330140214862732651964549506463370578014796514641029957403172273716157458402115102538040654816409133589433417850172328445816892405604857825969550639531341147995169742492730665253541538289424631689267272720538143970356194833464942921350099109340612446427956149229771996344303047500238137684753940475698336327416952575657142189524155797108344113865483784936068398284433259398688882195423363871344085951347778646079117317381177164410654604323332699436666546480134983667726971042030148989919369965411203215188101786465147990674159512873571338045605280247186607449713409461116496797430384776005384879943503353184775081396860066530063888254892325091001111810942216434357056399999411958051921260623247397547485676491728948373904690378328805855046290196528822961704131063771317969141185774177191634225939446264924810571481686039571383714421209507711534622310462139605055151515461424087351225995194533700091568458121674678494307379572917647259342572747630055448967218904826224099597523247070942420589936940367660539644372668853271331923017714383459096960901248355411941195749045237265118109026754410932814244037052928150471702428828645404934737297596407215259975100566812912026899885646317265880434435457203221772927688320323464862221412601695923860425078879535270272343680793373459272155760931893223339391981650081836758935634177326766729344918997000224595086851275514378332644007693758567332400032086405013437169058003754238421059135140679819971021015545023611582968891509237016555744532234714709282423774272226922116998847083260939368436154804271650709752470100029816041798188610807719231663057080531715055020838234144573273908513047122653063465694814837163197852449249858106138752475507812575580206730794626572710301479630845252642684983289857302943675266929480453627973977783705002375724417694823798004319090340599796332835643931545482830096248769176018338176596862550118790405553405401946696225468535418145782442116863371226303927580182838065179432540934927926307818409549182888996442175236491828582068412142871414318669125909360228472410172076799373987717554067422150413601167831025912375960679396461110710474204179062940067105047230192353054793447177344016605832896702389575557923264292562810633401158591317578792903632448340737392839895874249791385423805277927951720092465684260353150781955687789888439045822452937216970284515734703431001855098917746712114724463811077523965128701015888117381862556485744627419351847365204227298161822576393374997839893189926645069681039899472706034301427573481869531982566671291692519682453455101208871569121984052399679520789719257481450230881669160063459976918200818464987131711953412328422297985832528522218312294625678486209153620136268937790349251230148839812040087697045702628586753600691275541826489298073014682519273616516667336717917428027146366787492407091212536824483538209858015820530629893581465316941618422793330515805403228763285763285516164638445057350765131647107111580335484903459196398161669160884771709860081417893726598711404703271278395139740724613285333362276678407164383301769996648632110317170245163662145689807655618262757273538516257844692231595087925301801362274015910857542386159565667465570701290385513519736259635294574470782961917304554298672898545323855430999300132089555902083010077536428469763692720198910957543311557047692220621658004189508001488516619813113781778297138856349602950014036097026605829580196184687023429227091485984991855087261232485350986348439419884709923514812547490270285766375624162653618935943647247868888426727499308419087077115422833845325246892383486354024007320069732024637410387855356284338145821835466669248057215873521992420145837067692825760942364824007539220020298844185893996699259516590722979107349994499452114309607164788053474642922240182628768385626514114720141582430175816629072305469941515421230906663107450098729749292709403605193226878610234349525651856075637993344583531846389547801157958872332898337680549012520445351231515989221177442425161107452203059766698230194554706821121905123301613271630834712525951502427489858849804582742930327234633264881903005349653010535951194771935866556831141533133456800043962588207392482338840968437269716391914724916130089446455454001056293707051471650943004940065797061744375635453434013581069772311455158516155042662678361485567396217075142715831922981813738960309527583525119603765620874180616843008344458411981280344056623398537046394725348256354874913385905938875808147553134969847078879949024465801709274652316547284438582216570374371258438897658381503903606731809783492108605278320866321588797584945857264040675099974067187447080810680257709228800466524690213702431139505567010762946142316081645850859897486927632958291825723768233442746462763253795896677767908757566600886754694000073436122079311658392448386739824689888357152545726377738707806155221663556404667421185901781329202623062297604996703603376264637000602390737272340822861487073486383929785189458376198210210321623132765752934554042284058009977290457742270463194560990223432118206036025916061751910776279670765105533755492175943257229494759188871558660105611459932310050617265302121646750324989292790496807048393094980383890585462405091611156887324401126580206529776173097486184287580159010324949179550048259172164321592847394040453376411318871595665926420303358951117152095482997093262732820560299743669943460485856197912777608214585018219440196322488159076536293054495859921672232497540539765938290111591764634337408554894744780870564713270743826496078915716635850748765061623479797807426721088871306930275941020918181173064805190911212735028898667935484738958784006644325582404224706221602970020788627460364982487862617035924267344658655702828854877295575046151191689751181431432686996439110308182665421131892193103466554826675107008956884803575183975990702359370620205245588691484175059210163058706201648094277956576510226634009956538779068216988774691258077704844946624931719063642469457349887441300820023428282506153477615654623802566712077376253404074529943069276206879212204927914176442547917729982762699342214220868368923513406516167158937472466667270271035745139517481201672303733862572127862734617702573853165211974525744656201794842559088779674422102526353199736026229107977083953658884962345756018155041821740603955199816444279625518574358236260199975127734480956946669186005330797408357854299664331798933463123200602072245528647983110817903187389551861711293645572071537842968556793750354886605781700786470511181959893443983359444986175719181953741420339295609918886549278852204908509832139496567132063151013584334228863396587124879499848294604030449572882057327954188410804402733376715155656380948152547488317377725898602030745468360823060312626439080046099155280012724172983744766361229032768238817884595144467138345362244148889362028985379739050333915636664318146892065368160410134507031386649250110162764286843423428483760659285170239606589782862886256126499430850052674929644504897361375689758113054303817950632444100002360792729491253961473850027192020614921776731860083952602798852123920852750916128870232305500790612748671038201217387778682208197549489731394248305640127398853456678728606783921965046555154882000412094370984234783647357447674304948599790440880137614180144390398184911300751834058008678684841043783750511923684862808388740275861062876600194868933037242866195909627257354138540519139811676330647637329899647836368682215648271053636730372723064308335284878615235734827939135696449838571635379160708532578461308184228220012658531594207851555177664961916820794918770104661302274749284400067323518005173318225347440903352377815912451220612952338333454554864845938324785011273087911387094458364914818454782958483023707953134250168662632131851448269191496758507665225092148392932599297824437678895287105640937756720184837142579069527553003980778157632892364937760440230280447420243094545342958326331045837348022723670366422105877843863544023240275535022860327008508264668389235096808582892358049122775854849531005079637460641654713922503056590248680929447822257955305517580730271560113413226389978744742095038458109165578112583095479690906501470477698648086054019114958842378299288536889949059681237433642388239888250344719662330505139092151673590918869869920076671579870412137133811999932073247836137135008539180803336637222848237880774883424626023261041695715113940576641614274238760857329973493810947201233809692214113425688474367688002977592583916619759839753684750451450710512875251845905411647865081335595820943414240639761877171570508222037298175687446321812512107087979904522723562305380011183442821230427308661677959505749735971895126230602809823647942870323393074472192842538155957932093846571012239274594952942834355508697732202313313890341044018493231524338045957547805607211998420742393399830558345790987023730513046345377405331835268685200153644554652542739391307343855896310774581865391608375381284625843782272107346772830364778827285648571815550263662995013427216529773338933761071207651520594600377022510881407380949038262003831834817774475257958190375944696708533216462867851617158480772825681381329893685134031520782192945942507296553957598280721321112282145139009110076927788608918510478767403263126351336534786331221747619779431031150889284340315614198543052475975709073292484836223200243669396823503555148683802983672365327892329873162923604729833697653091473484856492305363664321645081305978819331460536714748263060650834437505279641547430696408172878964296623229488012560111138785020260612164404148790704198617656298889106784702485001253645263385282855959068437939993333127286740911488589741169443125458429028576741099365706881029347860173185712958039678751818809480549622212045090515548913157732490628425647047782864621870830220803564437547691142454520282700765841519877010437449036055450762414667259221965372019230523750779114051719409863899548223871951478306336618084563255024047899225174594306678207301287772780787632441266742305986245880313683789556101676840494140115387348192144720062425863299946522632286192352243877469121389192284986043052402071616663338071580012226736405483409076073644635055876544799921614609820297064499609429801560155709257084296322267902005997886102761957358134936101139901442330452698770103484929536592517661411671806744346063663239841593562787015344283584788697799993394546207828204266583055556944423778664507049953282979772482276642449958802768228980216593661532106835485813571156499814647755387326580895306043804395956414490990966568321912190130151922890378794016275054902693710937994268109496752172937055925509439574331900732601101615512065573942275384367836077014612662250118421289361925498176404081323962676120835734702492817156609714015461016710299735779902146532918700979896689461318878108546405862949489433657954512926911340107024204496247174715634853278251200510510089275801862833326762675282293858481632812328331493560742965103060617929901963814657565281349352597562923545004382959579013168645593987179050155868685465778639632726776302864406082677320080308803715349453925766636117975194236033890099879757777308950362433343963678855464468796612269804949177026726410507546795582799027846282819165987607615586332447985400768563452099323612604867590652078024467610669640559067365532147933345886663178297956211433748816646338438586788668233048118251586597834360337531796304195655776608961304811245290237758087146982096456698644870028577077787178640296061307360465930074395341410482841671461284116759954269492737394139916636330441296143662469623122918201775257055034302012235895019167672015875871050484125356758337374001405655234194316929795406313809197039706245548284617504060771659353664775428177259737177070318631168432438251828156504190025637269244499322484340865830589477919788181269635914243224677588454032333238828090279259961262270133331585636338311759989836494606444883656358262466303895196264128659148290416771521622278590648706102107704157280736559065502408808320628508915187701852716912068960980252736075613715950709842644438335920190566609668142926307660304174455627024662808047510269887593736510693778847911085613206551724978900827156730443282498623587212751652470042808369930321459444666842174841480505057884264871094581650839380144676325994309919101955851337371256387685512645600786240239692044871893104784782496031581091841814191470227359520121078526819554865262738248263230868696363663897737248959956959392383218412521599310385882879224847318185720840595210074333064804395833214484306414881783712225822974641156966648854465097331185480119777167397560365948896443991180158154403860735698927839682800245321172037627409685943740436924720224056146410065841895574353402070607955891607757715472809342575937490201952028497135113085113161911224997773225457819877901599222685505392703645174488451064235699252647604413416757414729515607736769718869841721105019577827569825410280764041894092190668509551146262014420289598653239833317649490610858230577596923231627676966361722152865654283820277175491529046563709921125257739648769174477039282372547579581101221914399470425715415106879030585762850144664868685337921551400803310512585970844691150099979864115089291683387423669784565854898084590996965297382966028570232585829340812067356258284184927508115201201252594125536269320220259821800720261647079224936433331324910119229842396737607768238513664756653032450739350825282259760899816075368228806693639065666866645334776688429313243918798854757752625984489229290100325986704131319617866507162398563494833975034820045056672438223821068447529979746455570163466727942104591970034295649683053614146754057704181478327095144031357468960542737728398422899824944551887834741272705048845546066462014313227845360940160819925630664088622292626132497805076859340372843407768112041933399202316611320284636931466783525493650446868189574225512237413857615652674320039106304348435083231063808035673539849812915653598310232896078612130951933437600856682180895082781418191688144681040439316690917191362784905375725553744254581599955708040679298965474584207263420716294003918869719748905623985388530103476104345096225511130003753256619159357822017692645373200378979080206845248548260007180038246225691084816409488025229247196404020932467851336932614196770181587437861362312507445721451461672527356071706457538813595375235280638288831486187006899451681116072324785177278106120419051997881948429647269291003010539824792561329132297417463163046639954892197469463903554530309173044701462462318907717633793095607166018518959824805460248493365876484324074224704732575090913783180885294203912609237929818446713207281513606096558156941116339313119583551971550104951162732221716611787280040896203595399553368193196172108769996459500891999242082039468451243397381119176586892883655697230901084193541511998877788395134726166419924374038342089567890485117468825572351146113170702328951807573964143460395232635720567498415478423653038385716757919871105925738539362092030016376416833394133476346621693072548578542178001364582925915166992558602705579938493032698720691123384781583722889164594964218935503718909996355211335556548897455630352263050385333216218774441733921495645465879225829149659874779324875398189171713787361625615079188443659314020831570829787678186686736995532685556660412605908211522952636816509900896061179764647435642858723302711200403826265577624435504104749796814614008237504804455035319275881588915672400600322846169547531487045271305673140514590441002783252292235971447681452180411110215451857679290878620574380498769191744551596572816931355071351745203184625966508539259245495515694795741095286809935914891793247268212552821605702319968995711191200939593890188502371702044395757676381723711348428490326269643569745144799105301671348098378752875396556451019916065120458936264580189571184223035721985063948421459300322255135686424867054614422829743765837104768119645106239278969968753068559486106531005971297756530003761979324845575160221071165312796310869434539182938917111084367546786269315721096924320579653811016686498463306886483185186437030279239292662919682645921450960282366414533039231091522932976723747689400455942369959885798160106969375048943321718931017954233293535268447848485077182947062799252731008606818355367032966880565318073586281725163661808703094342436797278871531749281674728686063903165904548925636864217034931711162162904982351615855987964333972735762072242258406852691327826815266612762482027027153968618462630701775902233635627254796843193492035339523715641553723493679288310804795686305798872304290790575272852677715763360532056286184013555856659637400225195206542556895533328166923146018143966295185375052554624989276507921652933830519908300929665320799875926700140221811532900576902958878378709533950558005113933502768450622665477627359747166044078959518730895461745753095728236614802796902917650643626298092858217200182157814052299244998357844733865359866155067267435316754631506864575191563128489787998384071850411391397543431843807334585222373868894471576244605138172565166765952330171950150875338867691986181682704945196857999742786649708764382701304090768353310770763143585711669992508099342611262591968057618687474437994978802421313714673533509214316638785319860835825546784123312335482701311024590996925153197562522919088344793674936525937075543538009646166455666558045773020640455476699884074677184529296381731025617119632268993678524226460518218714782623683987341203023103713648084469938728520996574929710033802722155392683967386458366332944785631268533447948064112825012618341724016301330312350875508832979917769052743671934421072083654281654845184534606938095281119147403232988068518824518847450083671861593137258170406549101869496852858577801506433673982509794013828705274286738910579425426580901499324721958179603211708015707971470151837058863072223676932032830723451075858800307517688688494387632082762944097143021131498608258330179405286859448222473433397530790396426502390254468132796451748400784571934991432698196192132767694662021079079749279179504945306174125287341258710675829736665219745518865909520686237610428917416101298668506684946944574612324101657957439199072485426603388368909225333723160968335694269251238935464840769372123982049103294467106291708073599183189009621646092412621524727133546811969562193594509150256270706256158913330695888680936554489069583851734784548473826835832128314462741179054939066889123951489171673195521914222407186947020559190838774228386824385865613005243453525189697114448563951571363204987187082066983621531975004274203970082719507378558465896688184993354435840221726114700135654185607329867870581650074873884718877610173412757499825913374912150365242698767959798713747612142654710706864399402428994761006942942400446694299529844623206283958598350927723571938679239493465260996676391188840076814282598179351167768721118824978597079154942701612779888183075400477427414907735210365592811605572335810108720641633324856157945657504891084093033579487639415806253349132173944834898240974717063579897143761717306330414140728982779295675631562847670807112496941064051351416534065705325666455155018686490234091287799814323097827855199687449025789697751075796472160504355824349108239196887270318387798557271646196566734294182048160033917684314994297567972693874674503561313219775699925561795332900915952858772473627024427112445877535775679230081780701418525328068866567624853903847493158298220306735165289604817289716238797981306081294337015586904872711319632931015801209237718388712316129668805617345166382042014027589675154282332606143503419118593014589811836364397315838676245950092877273599496846399469693830961552332434540015869642339301579613623663051734879699956574258517465051573069338704554193452835519036045078994710540169619354630057065786275294879170665365411025373309130238998795325558362106095902806920980054530898442916992221693919568953445349001609074721922879164723284038445863710328979872895310815770951538246033771434574198502867560068889412566523252997201835916386085898521558123162945437284066807619488425016853036356234863790070952086574591614754498436471079435549509589140113554524991952167811099873998301813900901369360201588979684094262590385316372727533146277334082205301021219012305367346840169366618100935572797645948846554481693181834860480656522745312356951676025233970807577685587843570326919302130158965189212170486420531748263798749133682544892817032138969721898427841374688724559446683543890803800216606870778078766770544257939403186756893805123252077283248458785670624916070192529082656343667018227352701227146112855826310858140319757226091399681892254916414842948906439607754291701245501033337224693445217626185677120576295835394605922982399394088072061413622401509844008309126814587456568670681513432231219910067756644308730625995278582215083135256932207714786072624335588309223867625585836498590038748721902624494260436561101704653179301301278678619542262337480872013952685989387404904136406043296908370855390575700208680368232457433490399371588072495965709043089734216022991228178737219493212620166547371606549612012378446309734289010982015962502027662590658449696926480646047736182533559147425427042878210868304117298517275051176646358220963650735808726536551481564590644325232302333957550888218050715750647103749866479259522552250965965289173504056929922841711319666678736844930035960946141363567828749778076768455118863499975085203734247841247289062745589072149243017393911910242567277588392825634307200606833606879504960674891131212986801655060671248082670838496283729635315012694106049245282253371846192360923672556986217606515700511915320989022429087358986916905232862354674222267223373180224458408316524621789072675632693730701130003274759561714017076848459909493759361155324695056678087363210845699065219432530744585757663655619695092637142946391977168244829251660742553944685125607350275307345728339117518756843041961313595443631840104808175787447653961701842444149568563146613259591420728646276934569347523603906766246255930417667888379079819309740078273749526086541397074164738080328550516164698747991787801175166442189201551622788614703273249889535874934420002072220746041466902172632617276946531302344672261459438040961396584544426862461216435973436718759519631946019983677844271663542420301222928617288428716721446296321059116003671508466817327073603957226413856971745446046843194576080443815052871870288037406617958405437532772361406254414946716100140725853189892406383998281462507395902129485284128441728579503388189106609676491059716179050883088656168550025369081590467355097146708510501548422232713582216692898363876968024762991660407238442410689356176771679712069703622658911555148861084334681343845871765896250454768555470449819295766445122203312581638800003983539965574931967538597404047056228160606697116135181374531986574062027697669448462268514396710976365774827885621216711015644652030282631283676843334443346600426011656539048986127003446071217484683255840913233614566393015571853787180392385823633626620003868061735886872648061717253148962334537783863804388942184583521343119515260197157123271646920904268661609001269395623598463438484099348055332446618524593791769234305296686507017969262474900566674051362764960185468338663872668968355871281173394582426234675943010715637985487815228905282782921166301452866553843127214108146758855966220170418698733584423760724413753424762328133742893927281645049999043912668638056748261513014856619425954507984019378658288454784247431169840353528673493651458447788418593549694129219691060276667359393940532794274290815152490654803609123996696505360605127781291836761161253815508653609996915225285198470926992834960253161267773749325293863101826950630001869554220206368448272275466003387256217415848699495027249124971096051264457386487349907679408463607773631291330135602445402230465947686600467500243776431266978108418668904416898378595275566791012734613258092411511912997567411859909410705327231112361449610311303330730819013656485147757121153949938080692661060321819976647804142790678908403001994033129218699644561437174564534123729641390359724006819502271025595906894654961760122483072836491246282976727506328499768568647463544952382894877311234755746644628227284436600632347289197389388492992277644069265306621446078132097659823658451516379922115384639277801032016361615056744059577284861842029205867482160402063159795511472618368147519001499949448666087538291993361175296943289241148460474758002468136179622142827784620770394347085932605423860847531416314797249009748355799557810278719600140369315708043859767957569833945868236159574226846456772281459750021875173142205700110028731911073980882991296688961366593548817101182226085156908490705407644878741478248177571913058548366574518668947678059086856579747667746515760546022131148896525837475281364595884652084565157881037258692818287131216120588875351705068313484035992187135804211884598987518126578001339459985741808858087057704784750386009635439847546493880060610685173843991551082167301380562613810582980599252322121972497847167793042353088183330394260803273167393528328646356218730594496340961780830983139618775821441237234350402604157866497676286957185037855707757467615846506044860881988066286197902668752496634189818269915568662961782000553965066320365974272772281489407153445517929981670633876596909335723295945219632020333242125602228387841192304483619879028243266834652792936894572505519507712480497074378482452123025382943353835443141155456672358571681983375500282732201613504509692653095548357551499722933237453057089699202071041225763840905740685600663937694357518601540931201551377529558338176334961801165544158730115121341500768803032694866891397582401985924565449893053497811942031223863837823031316705648343996116004003360004663926275893907891370012757373291617352254068549936486689073001844554899028873698090468546601456668654044166888927479624685650090254299533744030353516317479332849447603662579957414510692227353095261623300493008044218932578365429998874448037467118781054948030254401351374523010124927422161471119882681444763383892041691374509069077806356925570027634472347750648867410243036755991427741598213583088146995883471229604896470816039476075356525262539274109972175930718599507257998059164535492057588130965915239808326699367379080700367009675376058173718713693863133831639186263799762238803076637446153351981127197115730627384389587975371318232154396014573359562449758517390028893271911536361848847196156423370171783002975492882255670991934407401775286867343350497779001973583193632134567179086683787048016085862922638557932525236895065390038272817991603335305394759350265661448986634513661662594045325389184053164115681965844502303683577904668586310060285760227913258535631275484911640970307281034880382322236886032785859104416709728011700232460320160731978410233437700782131697182118545668124321733570546685264366829989634722182521186111491344115745304613310306466144331973250221448254151127215321644277767675068199405208982706197858196295988554157358671676559891394982202832991271232418603619595943020396968231682387812392947582375018554476563946793946781212058659962389517139582408020357154751007144733486750284985625367122768526330354979137719314008715193982767170960301536263991127261451345858337809265401073932143680658840548245485022364041413343950722587055601602101857633868903958961984923335796169862187745905495654417375156714586217163803180500065858803384291724365849514319019442359808946999755152877993304932357867409439169159099112320029198171941683589230164716244288783902609176372779875355573781829455741132636113260099973963951158235881554992850748670486605281473685073889428089557785047953448857353156558821975326340547383471401325804834222336204110206302042477448789474473764153787710608581102927439393522476397993088030644247859898436903830781561821622941293817001363469538921202927230034667595126914953940642694088670611801876919490614216564053710728161938902867268819490267507858805342316785583379851057726832802861832553017434763168644977762708573987499942077500133867665608980726113170824947356638609958026191519695309052769420532270697524405708759636808855178451030459996158323142818291091374073560619448149171747260211585203290571358805050061653496859433900333246820735474969315345980139347851997099134420048909879875858567453386961618350271957483151567881981263615970594966249966715999761515534399518935372979154757364067669059642627840839086005714462164513907151684299784758384216403627094395590139504761926956633064816419136936439544657362833026179601971857031197503306922747629882919335377019055627457746377070053621813793029773668314994126766064796655114005070962423454086692078308149254938499012697162763565321137558581935371753140554231830980153140830938615693657828221115279318236997293980032425843378696173236730411962975087494102849133800378028236105559552745123886291737013408755351812500874981792537356610402008191416876970734070834166158180500018145255427989666536438127519674650394342662407917455761650848397176065199391352487752998376779267056086590053238275086454207052490422898467571786649054917898581534128995890426488627841452597480877719052908359556129719941732376087545564695869689429108213107636463940780670432116453569389726926836498456219831221169783680325294259330242950796826777546390969936666498604727159743579219545446195678302982938812715481758630956420817667735948598049897197394798071601916617080182491055218053300889585077067498057858389258168791648606908958175900379629074421321328153175639047648785039851750918906284610553060274698815955046951359052633339720056428838653339787095154508294062486616032722822743881514392487345325696533824707214270923610539202881441146985116333786194196458757786005573269983261177937046048184945050466811235091285132525876851198934580996369451650206512394386502817008790516298555074195861129183312558155049184869181507124794101711505703041126541005747724521633976130157758029647456470886097936251597375112220662933897888215596320934198074529108797628970878088917518026961232615045228266168585418066224551767490503579392098375499477746951261230195135780181926081782792718237155196864543960503504821201162079605133862370613977899757848322137484991204242238901163132112534848681565345759215891351753272708055983366161144426900965040229739128871562654710167608424592726318321093372628127982278099383824866345037810907160785026367390730334634962463403462225860163131883438835729448710011697870270084015094050946690839714358448175420352301991127775889762890268600068487117924150013530140491049830792290524076632962666750329553128676097546156545582454565163927797451632065834790427449358508962499242725426347586013580578240556939281256733055661072277322502182721265789766824041730011345482939564672686655765146457307941965812045870116039225394456963645282580732503436380760812072987045610669731074815185126465075093856302758706444163940382585814271081932445783398915689837396496381783128774196657871020392382506727616332700695489942250699202993606935543822901301361219531395926737867425664302504718078473618035953034132817340781399729062730344378473721266671585522245096847094952010970356344628811184058368878553087120239391303766143253591706765294817042633269394392132273899926254486293299716555816364036417595576682073571437980698771962675161110018007820601845235792596047622645255971225964672385537324647641185462907730565759537011025029531090196048218346356399309547897001474496682756165734869035924945067638095020515570980371254693838995092972338782267869108405512007700715991816364902906740004547133070319297408870063228185240606635830178471094554672519141449077347603931105344174622788082945208279603597287578872212952867030192513400458818759191321176967807629776698859616560656404497553927931532997227682061675339997363450656283776169537786876078122424970549288454615774327097875871588434041719781921405712531283615319589896597395763209545534283342429582862387386193683213192635869230969163100717959524298996205867610246995101306222733187554165188506744119384758422843791486864479290613807186254497100298278822033401629904335357472714503877538853186627062632528713565785319861532245480719096472021793100805626157102037589489752065258318174232497879253401140951164345906004010147740511445804756003934694016150307899876242915439028608215506517118167165596277990530912268996213445013531295721317249450923173079564904627263352925822000125170314054053995876936096969539009284894161699665243859838822082719542844099758473946873612503300860026736773547099030073544483574946172815025060370966384045905616536880101500012788876413888636086609706015858702784374952305355097560426895040511588447114338922502861804775229764658039777289621941680747970400911517956806490202852049004049998282021860697503007985770239457575001972196001813040042468084222139338467075040019524151018582662277930394168957389735055794791833570990987567455544719261716973497576931261333619498837249616480984227843449318480021632341941020681976861993102667725244338889531718447467360715704240043005742497445300154656530103015868075892528504153033922812316297766615694789538839626887574408525400274644140407365964388479504852182961688057445054132909213748636124038843710543405744362430888706481933754054969279860685001271178159964730625212363331674153902818533109885498139600701100177096541328098880999012820742190938606201622709051575879174613518953105350379291442055722811963143043147238814277562395737970719425517719623606960683713375446240735131670623299770862199973609438149912960561994965920893273780763767959295448698174741068792796031428415354087253438717990237239039525537298532113280325104166665570499643327576258480852313931497386872020164910940546051461258619190025091766049275631655850718461489920664677188464765227298045262599009669669181943971242256777984804074495204535416942590944210804684254923591016588262478697429997598898291118345134526741223858199343548757488597105320659138293675999021113182777982291310904860717507211421023613903910203453240620653945006039545868389641481879831919158923325843005330823383960029377466382039731450725549060059042039620115949556339637664323697377200887115380155895522499440412492637823996426145795208881624122171051994751153314591978703732617497205985674035493270538154331630485866069335218539755046787642680291053416061014970034818619994365496818449552472513169824603169935832270889246219489295031157695936836501317171321163112623459630819997820677443724071611753923601520283578197100735639224220737386695822216115854594410191072995209941686319915218594952831974692828542040389054832342011869365873694233099152663233834573057513075418855666413181736188961591488690658627935843674609603094184613966237298458675758742687058564511975961446167514931398420959500095520703316739574822104822710866033872716853080245615786916297527456754369289103101217655580450312578228284185059739100822043085226808660755954837967180036473650431047894666158369028722007322952726462373280475795777839619286876048236935772019347182781225799117269667466792877780193101647091472781061063838694672500506459154541556754306871346591043054961964693139791932479735934136735569576173566015541706668849817206976679619168505520963575621111940812953740386026552176913566620336287824871528843963188437037277424503965780320002712542257173992414752026265641321299600208310827154520641265120867998356551717992175824531171607536054027710147482484294215943541599072320374505778933409231832874618052873644654214793657507424473030314529027514867649001959479103711580292820339192649598951629282615800812524765457155216737052237511411894049466936344909953656954186041608291120505781509544322310701357566766862338688588359539726305470936808489441714584331294243798088829483784384041503681787376915140948262359484023805229546808995630304846413491385008766312791815086027762683396298452735413281773916122562472803343166407806129317099197057607732031943266194249305316985430108574307739214324601198808649089311201671535267556982022976668817552599947715260355888410311463551119030600252445873139237773785306097341851323584359448028748839699225921187979628101529600804966635111041855534144937371009803019224655162820089218597212427108473131788731645907755722000840066326561465293289458809563039725470256491021168315424584513889009261282566311683023314118683792135307940728851186587558504788778261084876103509844784901903685663017940585409063601618199750940971065710236467213741033424989586224459812929559328714872737628168901965964178709231351449832541112369844101186756401264457895034243760429186462551068917591106961681145689263761697905429662223590681524960497033634501421125732684311327822085805460210583334449897219445992592755952219497624128844709357268134612570394270349167959523452129485645563027850759270347477219240817418032953412601967675741853597166742132022566169858090066202136059727967843531287000439153888689706823639658003000526206917066893027480345402292851614532869145810652828684193466352794216516744060639717020023739484972824694636484607500819496368798790306705311855604546706350120713707944984819626923768068385412010190062868433201183075456100847000726744765761523286567468349857426237426376139775868301465173378554598963426437322301153514300195023877346610145610816861509291482307532231383379481120079187688576328458085201626392844215760114520505723375394059149056115844569872858482504348820283009975453819409213351210534672857578251319331151150008418834260002452997709663469114634702639456169099873765037051910996271675423607608689860032689522732447894479703269591143451906060415577341392543965696999495555969118179025623040571149248509134503634806463829794903116766394837898761823281897293443870041456213991040918682253459909088621352573276025590110776952877130159785799220153717324547894557302536061194170404094226372051362410198279119994053074470434155777635595240603211549603252436731006791463014402327581745218127960492544399819058456833775851699948987772391236148439954522759274185090755493711883504236729573672372666450315933453708584372212691840394038086936008295137241591541344548873192905409893683456039679688617838434543480430096737786168666632561558312430427998176218832359774570904787783030868870930490574233838678907378753661581162785936344183078377359932030648728487198408009864863491254384300351158683669997850648211899227194281401020887179994232901126667739764399968925570785829345372732739225359644857401152376916401672960188623779539743558813227519705079945840276040915978494219416469821738340195899231909337106810340144221408516362050638767109035119575444381976733831270620310321864778042532591160316778022148467865496743720107749491816428084339081296641024682517195525143596576805908381156456717786232089233265066671660496967494664712840666642055922206090170381649447789935972533532314219804833885684819395030461980304022668266735242028424194266739856762881800235438517698022059017158517591599261822961384602740255843765905746525731044994709730926757957243914418351048688336435745554006131618192455685820961409614057842333997921835289985737444073022232656831827283497227627264895702152940759171454243598356392086128329832223801616908669933910814040139381886906325117368166828749343030306897964083414286448101967528048288128045887034172729838595376141487654438956140296072358344340183463685557063438789897416030615800459817071764618797190808706374368034560887323671785801291105363453754531207578820961734789538945864847908459455701763387231974912260534697757593458504726754546261250936580631133880452008751873372435953746922704515708901893095392907480538051386370023967693622045469082199124024108003730062328614150741805455428835848981480297260793666033996361414502311177261102973591726657864886656642627852030171610065875617210949366696760213250886631809140970119281636247508723619742048528357053093687956975853035986528432819212307891973730896124997374730666767363484257326902016511512389181862399562659104589839937150451930926107951187703200240266291851752426367822690842682703370664584632138532067003634202594125157831210836535575448225507323440115671838086829480739728859889936847287091763286929211762571816466417350609960434421435372178394630712175509035789697242934440474515631066122816452670197697377331479016168641912820996375427892189647290503686447131104414390162781531539006063195397135192734230982562062093167305216089390710446035165684629845866308389101875042646628924444309966713697957721293575422883070254399610902411637200751632694141314858281926179727707773329160070662366125548487580743457505302913059431840997158032572103558867046528163235120645591047700827042938812783389680193334476031909538939974471227395844096052711394883280338827051068051592855648040459260881782152742898211379170816865686294204014323368893484722048010978053844472835403671181409667032548150746676588143077930045959644641965181489129329366008151635731399437937099724363499861072509279342445444490674438227472166240940017868989163190013004653566223034251432575904326225534510191997011842152417136379096598692361446580931454060607190804246784926608417337405538040378478628753018018593795940565917876546357857308904527777996573648125084287479963818326697659575055393121995746711888550563165624765613981888254932025898159716197583956881791466807725915122262901845903945606753866412295911024065970408186359287776716842258305683199511510892253038250015242279899115310243877934824090069098861282760755121069848672901629054290876186946298955459617002554290594523879576741231697148264478491362489595394448511225650998402866952292266343461181446149865453728752317761901058785209688404497450284557071688346925413953560713326616632604598879244920610031232167384005553921196596641359092509781293930845009855338365649508623107919089031426837051535449229035920220734441291067525871370465317950897042096112801906156269140650391756453801674636035002486920786807345492627353250118664510822837211579849991339438137289686967789783425465727078719543982218533989842837086045372569847274839324248237209871979916034348506683946675527878153406564478277486321487359557122961717133519237944259502113800017515869453805841917295421846046235072114680612517271196004302961011920651662829655542085140719925701674197774796736193809866676723025206206943085495292048049166183721888777387387410637847388154767368277105167760403721349472161184838917158899000402543466842372329588788539829720392483717114886615003073082366163067061082368583942907213443415310658070898694782574690099861585223011244209234982030370760738925475083894990612683160181028786318180018738441598272941950706846428301922103458966658370431309051195260008152298526419764209832631893125745345629152984508367272038445992267962285630291136668725150655597923419219047230008298293601725918830527564638284695587557507003765933743702936716266130109689494872895761131459883629102820376495834253596566456088863734290613230564820228236382905074676630864926795166909302458874465428221874514245994471050641758643386681568822097851410439864556299317176853130181699440604750884107860993025708243998481731248885965125435137669100751589468251775574587964690169835103261182347650059739247988128528439616038790995962368932119175843796766625980502101518260383365959493561365040286431731303257359093002733190963822449965512607280034213187007088237177451599378256448145263702735564885595841078111418782045223346867093624593222164158306520416026591610980933508820086715641512011108668694569701388892601068733941755859011570915356883102955974833283346247369147883074363249503142084847047588449692093850118366013944162878555929028041816531460874073734305377602909254511380397448670530745056409442231893986994024124536463194194694467665101514932561029608322825914945391433059209235087222686894094809295060072561637580548643486802959204984496541896912535291060441096778242278481281829866444038143045724802170607696799107223832209893912655318804719825453874236169876306434198407175922165798170922491782823262442306052329980878968521855410377475381614258665161262963692537832979415398618329092754569775239716351285607580292860605922454736181047901763037492649540586750232848414864708029314318271897648115683618721851445632070771736723215313555629150181473315342266317342301524464262479691833135891996473641583169341709530200381593554747284313456998482181936351471169990426546124774142185344159163200413879863036303164214726816876889779404952905378143300226096891222963657567486116427617377924899284901106622917499468453732007188774068640566246529054730226367403205517249012619203449330278728780238463059613241667793450816692674421036681016277485528300331624770158439073951534134933863809821883887557607165775586526686550143049176459260436476200163660154388294978327494844164853676485530638703087488351961951944692393454562548614794140443176151937703760132333961163659137330331527810275586664281609938157403691387195136562362415158218744416685408911560935604820274433463400586118912487609628384626334244733596480320554475901391799078153620778482194025590146841656353753353470111202459590833505489446435533620452074845450429172872718656109789648783702500906265873030619105498756962983868504513939762317212405209204818469454071308399083544712997502373879002114884605744838342824127702768559687798709032240018074256468740946772262649543211723114660118372984380317706169432509498946567268612145109873013186944043870105175867497829427978680060990357632492341330618228734746823062606331608530019011402806594303799504274012280007409817315132674913949384196154508301539837809013033992068960691840565256083286055784807022172022683168481504405866808348070010942065523595416931321248213712271299232455555218127520246219680306495148485201549461424545887512465057145856715030264968372246124146040537873617697686835833123320440335762862307825412037576829653217445685271184367983068843460357652833266997450710129272917181289090819369740477880274568681405857171664089401450294316312137387395452925315190160078809947217046973419091504592311430832789551663376507179917420695583817717379133702557289504973709625320302222476564890834234049678573204448604893973874089691622619264005618896753862109379941065088746121086016484142519698306614286873087174127813664175261924963767522950487649396821312091845384266528445864649455918505055745074439236693987867946122171284366782007098234540984127996995795637191925767137750145883737351935332055146734683315518696257487499436334977488470428084056957060814096845801362217460925266145094329988786551914419282802116553652975211057407732754375184391549226942621007769294181394350658393749779034704604903366913112154552351308202129121602100839637145917672606594391896240615219758083247150624598388410341218404022744666389401823338009771779766017916920069430853820124604129497236883735977247767821013784168166597394748971993565422338852647992362142471980243236303356254892641054969358164304469649326778086138528337542998290610596857093895285579147130467162493753670589147957604383697483617321332963555867572937335418513612493067439915089814520106018941620119993376340229455479533807574343493417578779599692099860514513930935287055414835902236656751401806459542107376376298522507669895709186493166291821819242684195071112452918861309876417209612012137509792543697789123152778876804457098943891709445119167300989623335712977108974720563242159216717629739522124332947562432263179784078143792891380943052319731922447716289846149885251532947580559025897711734419446338391466957756482260177852417943971803229072800735216161158985134041822835691421499211998813771134168359938088523853197801923976294940742705111642295450951130214382691632399395683825851493168638941875313300254002471975226062504524120895127289822778136918762019017894950100928559539909750472784554102959684141151978946064157150478655954479021753951055932462788144989695393245741563059610691460022208501672182477753559670845734032787331005667223013818954612270314494806388614977175036386740481478930775312699446048320312671062204093574242957458830490305273024745871775662912416342512483493628532720891394934845449430314172961797642480390789083034105531215075894013561299547420906310773747048056729350482061702281811794912713896516583651757869467025460586728672494602168357643030750248278773680856363497858893773651722550786991476416403287179995200327396282814099843237367052478439439938977245479467659810914450896957021234712923434777455328778119150789603828196663575856505110782108492825602886674493847589027405575855338066908741461661697959784757955704256299714823588421268764810046174001636398527852338847868786273716400584729597406471125525238569600699424947696352540176175634411995905248998350663438027308947352687238368010212057849893633223417408666349216773351185994202307885632277086594031611108285313313122755173759076181873699738764002005262727289784600165588603193137039222899321579180547134068919322395261342701577834137722212443965020646993212842903401231784302417876978708949488473299674436974881280643818173834306491118595728658407603928124348530436217153727993810145096099149559681230303095684231473294475945363914785856359069007882941770135584656469849967730256713820336652559905315703617156365902043559910565368469088579150670486893092951663494018452693662996209858577245509764150882413586678535805907558190050170552977203649432895268085390071035310816111237622746593691084941273414547434833816085333979805469645238498484996165821947563585741601028002001318786675620727735301039471193081595940144703412049541427745095993176700239780253871660358178103839317533580062844749201748101219577663412230825895247097441378762912953484820153729180014675091841150630344117018626724000991296050300516934188662034794825809545144034438996649111543374532627234129242887220357419055926898750919382304244389246374914769236463450194246937198741716038396173425096179229942152267233820185041387104353408526847406924536078491784478464680638691908124620585132992058878944720424884157316826409599433777046040474300342061691228005651387291436605162485798887181067273390612431738002931461523499573425082803897699955975874594849695141921020231519283443902045266707371114845786115290917166006396594954925441280338656577246156187266772626797051081722032843907757494785623726849835676347098569025914407296174372444994000822155426388749266705940161863675428028772384719035328996752116814520528016058095848375543569489740916472611713872044223058482572665214363572418955713309205149793000932875784834425621424389540939540542221567185343098873874826851517161542058560623718221738514844012177150929115351023479992174721918030149708650221074560301987080434199957772370484505463991085934370419572193456092687192629922769378640740523178833681643680390437681236493045079200510103734358972024111551106016952202004727311462564985798763126992561908470494711638110250048963675554422117866360461106776837387988722174827918687931417634596527085112092128157311589380922482672028410412864746252940973563749393066076000704255148154338349419625340991387867943696881316442537714500635116683411182553666815649030830954606824535527899693290880951016488778033026552482693321891396824962166764900865331403133517612339584728726215812297122051613585794994433321830992501421767253447697320352085595649809302556071300567534747428568448851693115763369244950371852047834130809328942967055539499918056563596830357724799281758597290383494295028328473916843966546423820831611362577254310185994895095394814497190918411824497608501884478622896125680285280073314109013144708766605550184593639844863163086804232251229930282516683402923800135512294682088848461554574103603725926878809421570560644952276575755608059628641083435142667220501643608488264243890633868330204868454600934793115249917583342031427383475130937648868654785326523564926770740516928560204145145856941656012691675625703623755023118856685377832039525414655208975368544239561065633822901660319590210140426284496528511682469456909745659783018717852648450962992038973092282049651442126957955754659799609191234156150300415538883987192240551575262761878112198354627822074890136211645667607065444927559088178210928357671314447931774373429220857658147585882246987077174715713502653629511689509527948027475894675804352894614418982803676929919971702459140629266186347243379394477975969371817825573897024115388238379162551502786599035069597307145157154915427037167488097772367909612895522149522948712781923283413120326021962110334423069927320657472502316024868451977373634013745700063180038373778160922755159245021596898250763492251299579776181381101265517714498395377934595683087762215276895032459073266508515319563329503078052249744085967071608969591530484623502979744646521232951415903388176033201744794828780678735065696639374430014779694519526158641319796199627808856793356359633723165029646970066045588991513583615721219369326328905605160314007388007904392249087048766047399038726836634447289545997689570194479137131859769547645990486636767209411801025797293532147120724460850476879945689065935327927926747417977971153060716033080283457811237503185878023138242345037399241483384348867000934451287424394075900096963307420566161356494507586769572095628240232338308010707481185977544120635886282606091655906929893527336283248754979991239959615804795224024951604865462808241596806941074791028826850151184754124904676116904232638894006395602171979894716641466019260268845605106403405309920339574863708993666295803462531692463742848583981464268464547318048783997245182152449930808483901601877002964120916275327971032628962963077498816502727750033081344328659194068420393038225672204696206619074564559885156827493828409687722004297646910808790431510078450404319705383695374643385344289218553801018058330991621350974080683989532445671121951381701062513260643068316939156299538643283076961928124821214377066709079730567658390915217320573251842494094985468789933665890896373024360436121969623221923698437829057391006374367802935169089385419452456975631473547181020510768306884943987256245476704226818752591198945697185495780241598901523023046850337915990317968701641997626490102184393706175417780591412151999559194610533481835316640402415491853603264885812221393692777743291349859608135263677511420794729005370098490603789659563175194970675286001948664986555484539611238138667278955172649492651582418030366834807310391539869615129218564094599591334616334933836400222481476791970128745010431541949833119579846745221041274530338317354225992807396812778190240204858493332232864957055315915303064018462927534197866421803279206746761302994355644638233636412719864073954289954882539694839256950530975729030579038124728556209650715387715785105796605480739163200880713132585323424220146437368198350506025279262161443263837259717505226592807880891211050574958752451998935623152554058462359788896159016930654958782698418130774120873075687449202649336920931096202178523138948935074826755627816655406830341087699022146326639202271584672739347747908805673218146908285384740978726926191979933707470663987698985860427771752853623797719380709636050828861763151936066524416178460997821048853238936433724080127233568152143980326708741187000571048302674967816736139696037735717279870367531348995814709464488033009412782869749500553075254808928318062859061422188189453911605538514575658421992707815535674075553985296403748302734773953896452623972726641809332749574615428358003535644854913069062304561579967408630475597953388216841305955738559257211612257084864630078026782208115733196937898457879534196908129009943041792446563147216767923036927159362165347598054700102867250695723326953244816028077297547232740760469853836720480455560253667922937188342659837767121130254163234327576292939417840064918699674341661760464608449297985174318581214981077797247647218874816732798635975563241172862788919957285897177857648664317233591611763908459481234846240748598576879672069487303180672799866520080657301443299632274262827192210771193119295087415432805785165461233578392547901893187565214484027960455536438600298748747719468163910265756135006267234980102278633969840222513256513769657737171249544124263603474250690558158332916945670369771781754512068568976515705208856825687394489590243598985706769289584616922146009491731973430912751401631375838058953125150955527722164193177491533012897191273228935596284946176256735422143864455696418851666497231342286143008244658485782417974179176346209590888919029923744671247281433583085184618450169097365686602632563395526270006845057019811843669186668710011592447945006182687923144462329482294945200353083022231179431103737272597672131372808443918195635724205178466701881109793713312186739818463485512821527278706685353130587406996956432267778500041246096065735969437981212469770357708997708859102149747701933310865857640428181573773939758581051935058072195151750050085084620110703803131813630145826917940070169901821052563545577387840899980263095216460855031051669834638658190846242116607984579529217493080108317638547331067965067900794389486729502478240253354116023630816825261181021594002273396353897836223455112864245557618041415179772882716772976458910519517921613602576099642650228016633239844505896277946119412033761917107959074844331540139291164951721919538669067261482447215524248047258142189362780049248796574925450201936890237125353771938668504095506937940247804495578733626173415585429500785425700641200718407034013673403402048426244069287329136705688447449105819389957599532059081607428559313115928472960180646104334565757592495387187175727090958364794476352649861448069893403653411121191021715658628370742680047573793579500069563398829524707286707398283437848020413030326451398528941645950481597515503810328028928898723419988107943497956901378970143869293503292811484192584057766505814367712116756747565598569188156521975417062924900282686556327213157401201599586032635224095966061411141098318319719391192508367683168962429579261156026238852366905590866302779466341517352206419251963935809072935644134428018036496508069549560040843548900741297262727350156230412769641033470049393687444131970473115646630992670021318348829158334741673067650556771229823397368945863334747228377598350902390671373433168737770498739819044604361788910279177538136390420835676629956523487193846523604560854800319637135620016877535202076269870277256808157799876293003677321609562754185280049516965878167938125302556459135988997324043180310462126801381543569293490008087036617143731961034412267771640718412656143202643089522549563164924159269120306484473348041907934460142814140289716492668163124369174213017628118792777725544669175321469854767362523615507409080611720660464199437969432283084854443249357942471476766076203223754844859487325698612027862540086668044073909898436546016218992793269425271292706827025474016449876366890690740526622071542088221875050823590297756579600589910493632360423857214696895930877410659500824757806302048610256941755852318839312871269247025491404059562894489733272094047638788374365508934996404492007099524197194700544353073964364427155785830922786585213386823017586448242049716964278571087230529634349906642350623400032092254116271966778735394782106087633045707332623734512529881951741913701479296638618934330074839486982550510424824483759077071870207507780459001335195886994872974647131874557888082958195150730475301682263104730771377361062464566947712180971862701731324305280140154186291157028997322131853386806601994991386417763160270791111961617707085488750581038526741339527559284338033034995896166862062302532469134022822748086188910550341066318716267089169772839956124082528465056511526430765461318734649095204575023274909056477212765879400939304429762841557795375415169105989861507047281840339810424652740163787114330900808395303300784231262167401723498533615179462607315515528070657609893433156919094712397213026941178995630803331206992134217463670790685099254025259968109376962549247222388828860137898195218672781607988840068816716620042231255184006570481772265907480376694545938276184512983629723679946643817795205424279894367345974999975289972152442397577093626542451688155728005181140548915937090984489598326619308631412862887388076308195613366274506770957186372408610236663748973891423519021765599582170985053398386540692585407812908050021276401385194377214902488416219551550433809274355436229284837556341011835241156505056332865897799254537578248816316502757239012733887652141912862541824831295926074886249188511789044353143911659953526504738525533759873380416519478015879486916149621253795343477273597050249289168183202548730260726778623220001869134070875571977280344202990840591347905023466508474888550194118469582198482010318166965786809554306757433846457134308590477531812026175516527761760899823397924053866538231326735209803414545945211647318258361624457630881956262989551478326592082631655474034784591770100379654169798939916602544609705171052279089572390586013021237079759052184399089311513805877590033961210305919012753462125349608054610240862370292469175012114545558645422020999684956114601542405733483704021523993061847121048340486009879354909076299545552858582388685459118747893593774700157860285183511447731476995437000270683459976824393650565595531582149968473443472464967023690382626576421112064437023630796954973394696217806658072935498317681573507108407663933672205802854230454201888912433159719657842494886714813953435648437075972770863176664423050527557182872111967443821133331407672604886487261112051212002483129656626406399823912085975717534056912096886721575315905642795358137551648294258046861395412430647482686620303780935672155374893237731309103632075356099124993204712530457990415411618601053096592932607691576873676611187559359844439561005846524623915534347254344360588034320909132412218544198544277827233638297475905933784764195577590817446846650030514019935008221142426355528827377259940676215932439772661593137674166320435410398739651814808999686740443733306846708623751900713375090039329707520249897035030571105684214877717311662342510075275416430951625093876812214583747475007668163758365373584117223027933025058715446013976069242854769386237673626405368653831210515248440616725181782787768998929475551037976156649960209946882227827822209062061927090974046867578515481323156442863874261168717575902905226103107543282704901286304745035164547767684209403516041039514414080249207499640462453351490999871828921326386268955108416731140131076450007605393079254904850533337331251649855756291606144745348157239594231184319980096256489923397791034196358452591594250905975671336253950679111745340329013201060082899906009128040702478660323217694822105419771425081338445948285861114208349923889635638195555672812108041930602548951626461934367675230005538969174374005319134133935292234251367465014075834871980316488122254722380175901365280536791098154659373054512079824944708223421774871182340406157515667879319973988225986361603983012403918833615929060625233560769425051858226721956072305202839527107444651306369351483460014284360102897379647094670235602951726202328012475838323647534818382112746209568203913148112036957014776195165946842414413690642170344629422438520688742601492758410457509508291663347157034902393679660694253093426840691119190368485536330944644532039369387776010634186784545152237028007823280918106938110948831201405356670366283598716782361801976489426283618579394984797509761095394482483175875586800749529965108034521780481759316875577144964199186895799016347400335624120151365140295083164041673364021518307680347812485680904587448364469552904477763787855365633152760767553081412752804138974113763166412672559064285975366470418234134753242676017028235800498173403151564084520552191424602027934628419380525947315757447879999365315693971104626892436223131066533104658731175593940461972233437661863324820137976756858652156430694982626034874671152875318813065543780500764369123732496982795085448933071515013658507554165415252104886381307954199072895353562329548401671872895621469946571804144006001349816784926416691425393602189627687782796603696246768018878766405085507215967869598780763506892101892853281393700682803039636366737759175800658262357162397421806548155037852184032021354382710329436726883788716229038903144404464531327120724472926475641877393213476013015549124909007212831314720069478840622109696992226230244454750589661801008464274472521135498832028739614857013257395742952536945510518915569134206080818284383411331363409870911877351405884951952435217314014003302004416718463937644459886526451370165248577498627519302685094191136879113900590564229373215501813200876796551612706256752301552023820213558673351149797472049973516639497738324891513203676533376214086646802893998430969033978590018264502375425473030531133656090010217297634871430236920319200237220720317566477973104171879085829240938604338409544725511167345850397414629695670699549879848387081562974960998669277216042547802899158378062972707902697115444807677269805798454518648294046677531596291648271265309512468596956592775008031558499353906811442425531234277130596345337764933810348136654898631777968221352667039315858024657415658468068127299791685698305381996584935299944638376393000487200334383611859108861437004407090753325444992353696544257254904765489133738888032262333183455755360978692317873100163190846152652964987196588615720339778730950196810151068615404046669740030733895973584000093225607674983145214653670326535768812621888911495120543104551234031125831317007718477408819559899378174788010355124394543910657702695209772116969898758459071066903084325908877250681007156462195007187224063695426548949422799959602159121102073001470468820478546834879430712429373577560132287119999331214459022634923704118578781647769055061200874958408378585844801512504604592464250392632246473492591982148904173269685748083766151385421637306622789469996328702801420793884577133830679109619379337712156382496324892196920605104605543782228049175350534225258309211942933237495328981768338221071208817879718448105663588259726615443032639780386493075526661007866960348397578833551936893643812049925150859941328721459304612781636847237306082545527395030751790780066182593111560605028205463248160003740108745434762839375103403199745953160233420595751366981939171825277703208023931012369698191593718312334182350190138029561922836509878371208119012948321853344741304189026375643434626720847690319825751637539956367804559478520773517082990104736353901076314624497046126220810515921730927008118441143268882980931784954212272243419315338388356680275957891914196657329113203607213946509406631427465178025334118970038357497825824944997699376424679937046548920602704820482084233519434661883571349493919186139771037784196098685161845971147254057018617612947999087664955854286015590295694559668964427310919952423708025226987713138415827062172645019138867097616136225340298942620173548779071951367132838450721762786643346521641927349864361729165670354372429747011438520856214755354622728533232468494415888102083585163611502532004007950114117931636849267678725021954063209789433945018081971799962869080895391224666777619738684147764046084437966301050129665872526352353838615693541012731519328752532840506672755153211990250985082835354712440329587992779899619114146248179554351567911346982906685199082382785997580744497445465173721164990200598576242668586251868559457555882548872183032669957450934862000961164112545157507962186179783249350692329779932754808361431331785376735426776169618303027041203139155057233310873118213289437281056159198949553297593112930994847367329876097448279177888299227079471442766543299910054987670913433296003944821320581558271626341175926676860334864425221776856247940005761983744368437170580395231173073837930352425705701190770484766859327575818182620976722661609166879250794811606868582513585271272192997243683195103026984107558446039342038946196806899804180857921805397095780016626956168939295217735946016821974025691619350924884724170906453878600146561187372895375894901545768025880421392000860209856890587612852580346525377811445640218554841553530743269739974580298215685360669695136804129396303461219138306883549990299574822248476245164771465200599151189157252225653577182750528848572952029122437180828788065704740676869441917093883245264885366685712370096543891068671100313076857936616104403302929572341033382890379188573507610199634475530443274524891155759831925313417562590142457317252577439283853576051822672260226217852215254305919311655328536922463797080744492033123152006185467561074696296973286171203217241694022329554515259308479426924163428364094561946098031998523880972853404431027650174027467524844095264570145785854521357132086933696305051958393353540711238997359301049027820377358084240744636186096446364341027733191280774288172221258635509704545824027379941725594761488494168547909993474938985062471978983056991171107702404550922285428385954312939338307276961062010621717486246817588040230387365781001959339170253089972280195102976166823635240022923376477665337031186698937771939256482841499575169989291241896479447172775443521498692818834882918933225547526912929795737801966382976227164534088251486912198180814358593877441312463592781479956547152672989056455246970453171523773425048672275457859530304776402196811809502570224774492731914895034338951376242934808001026164507353543212117700042641696292956145539542072781981300617435730314848953279364650899717397065686625532111233257359631956975645859361831635218755780984339558725146802678376371101494951386592244990940591728972886746011898626926313085936337811836902855878560340953608685574612071133523774453348408137285279959433217247392509577807133219741660120606456044608247846443569135251676466632740776978813934131635182465460359997402481671953251938343872502955624218036771298919929216841716542509240037700316301106054939098438647847602292216524856997303325591017339151616214930763271777847951421551615125270470633676098527945993304348538694823484770910455488142710418631123510600360566879791947879450369814369348871804323581604894841518927997405305157215196280460516891475675930578452375889820857519926416397316653984921908850211492247758673211229840649334206075987168985500824425814841829328988114665284740167178795591908523056286607825775262742330239093093202746015910428980912016847502453116352929969648330654805747611710602867074020124958382692497205315398104205585126977739144360267176792442412013940061920211895949734127292360495821924746034403861227746153374754389296445131270021762026569817391630007059511617992037324480622739439444677983190699042859692319050587872890605746896585518176785231213708933671647136646683687610575503766744496208037577174028215704571158875472385885410632090330901146979884859649982979722756892140429484482731069800966815378173014520535102256332240169941379518233128396931387475234299476458098199609463127364462053520307910537607970755382771177615525594710926395208863719266491373796816795601640680587801038707441896685293993552140418935525278165988812661276933451344036571222116756756393386561620564184699716879723331647429889865287843777801455155608207483143483637558775756191739253005793388017220247395353155832427368067264432005880699757060537428768395330821069675880117963130003476895505848732557693425647322207865591269021401304878065475796352581150235478670990401971020479743950147926654443846507702844302723973164515094257169532500258292884833535216362936569401157349138057148271355338166999588602837133295957943503035658407076634738878823743632653049819295658773085694741252478008506392665108847779483410603192369343531318139095089832944745060690651554298765087574832245439817555998279225185744149299595034921422838664993450432910950110873316394648423916485106530584540326346885479883892742826634181364733594339545800067213309876871542222497408619593350596950617412960958465932088525078905427204685325631812026562985673402274283081024594331294018212566065276933767587471451611284697296329358018070701410515919103522251932165855012541927001580764501835971303522974642594842169001156651411248715869516841612186767072399182376755345527077045629416166982868732022440083508857138190934370897685754766466491998532083311358065227971456716744821353638705219916270189308136976557333773301508301388773255987727413363410179389333598226764845821407665908227480046722579510506470955520959200468677855806068258088266813406612972001620799488485636243023722846781339708348104130436415094010011882295259514636581687423383340563626026871948763594157098719475707870154161314957271969998088506389159923313502594444498655450614950056669420451754340172220943466791350334727477743029801702351209281624579722164410998109764501009390892378200190770428145592321546801009810172685851179584483289383324816412227550631028219584015373991712620766069566518457174448094920043433841364509995172063512350950131115920085611828590315732280331500451443288330259600990377437684579432680464660436983040906772166095664321383044426597107993985103555263689409142758740756494006850060667057822525682400233301429701014051638297057785727950590755491264059890193146121680443116484662147366181995478119040731166557787096364613274722976017576022023128789922383395562538196027199937740805203772407577104980501356895817083015252139302033820728151963311759130396650684044979413834986164861503159658374028068958271412968497560409410363814900583224054013171774691613112728437839245101856821965514951172832629773148289242293931829554312503710181291464488057027541129251426839588676296287566968575439454483541423634246676016303553320781067133430348718018620484275595358456199779110472521228933193771141858637228368728884626068312212821747864884183827187517666850134087662360526902998138199439365404307741558110785302879072591151143836373795176294861920101467973118706474160994233928987169370356250285259981179956636589228937080868845235187311986224768195532510848367625000263015685703925604490495440065180497536986535816454230296426782176783773753273421383175558587474374278677370864182306000854743725110792801623236496358281862293126718598835453302948150568516926109370353557327859320115735807429967263119306452009306469439018425266089152047778635815417521041910086599129858495639332108728095647093373107901423506932795053760004410909163462093378112328654716663581573585991764783064530827303171113589509103375434992340246031025739428921549550615628326288528521633568097921624731341489666679070752596359506191065465658162784657362997374833827427883924263250200922910280860205375464732157444275311322260880872704115217066091118852594077227485664283484857572818719171415942023868704709101987668652973749606491952246879046103829111473754166596953651154043235219112006554915846195861890910909296666149488664284378573145873819980304703980148070968053865690600472026462367999101244390177536073991977967454227416003730739555376042251347364091893558028177873724912754796585666671737518900766547774508212643456342264415138770418683884506293248198713429491637491346276248582069680616272923937425598183507242630617975685160428758348858380329304737245249175946981265706064745769927334340548549700750134294198200702643727104587248115354106115011451984369607903867037161681426513475186409638637475871619949943681858654324627103067647904911215573169524958952286358640491889957806874693146108120548151020196430454771650107811570487544031137577306728913153270127969600289503780656221633092784818604478856345858794609171627959225867526346941629641398520682409323818086895406405155811316584960191003750216837988440173010815882657324823088594462615150640214318751576612583217347001928690867819133586632533456412647361563527498661566080389754467892117245336536962457872288401749842832681809737567758979303217513606116867546456014307100326407040666466434031796686176821791674992595184347558856511877263877004775675985930233264389011969730406582505579259226675161672576180600289520346616013437487226228896356094558647503727149242649552179496044059715653430510824798104804896594022198717383003573062297012809817617248613829694932169753329363350867870047522389613910501337513608980642941002468463509469228895037681171181726355441147636662794418137857945143173712790088640094829634553135990061355203715441149036041879261367721922957746669030004483163487220334658667265231751748117144263253544954400678743857894321647971346328940004386504445863280720850694848043917052071711846903380283270803549548245977222083859466613551340757659681365377355556305232851126061376770430493185028016337090652254260011648867580004435126320707654767744240839171922761775795272823346136933635405736346846854116270689343449691057915321760923628102583860301783059711389574230971769214255535923613444680502163399144981550578224769820991216469460230250830018285153443850070959563571093360410350309746247137987374849115719639409372605972854773379847734216511128281475520383448979000352084500147962518169325356840507246815830649845661704468893268421022283972663244589081412488993888587338017553627743106936434115775952076924394346120884390079637281857254220285293379312258589963361788752247462713997990190033799741049619388502904228271735262893411805311344242795564947311242545139601535225874238353371800255600264051398583998030579019494997965455627257415147581014405912905950947602348806495293213945342486397870625672400413472292514526014684570494709068645047261038571157531862449020786183963546312177946306789060747813091202617629903572463688402624818822824572869766983218717200694635808491635031248517697295302123080485499534616549357732978174502672451618003024188718866347519380529702878085405499797090908300270075124448264380431752805296566639629931446326705933172858099098153299457532443777781763214447660809823954711852446967762791600560108984002276168233381300212123746869372339877702577455923590177755690365249315377342510113032325414329197115597307474019839048784727886119758720831830405905500540332669380895160114859920957159231489314466863797109675619856965970044141279011242296654443177583375171165395922649270534272773497361508958170846319067192112411233249527036308480184230696520452826291562560350542886019200705031110670251721896344548256787892526509555341332247228740864125634305450774644464457357953474899940551567618053747998020908545861675949458290667211796639301819034191756915581543354097660940718748517599468246449726012446599619205201334546449061910646352834088454815886721400412866697333614181352198880475561833366718289287574776224563240945321175103235333427724159565403094540937037551863213753571030035656381601003028488143954198444901391723818731988310490218136186317032090284865216685813144556102595449217526809578306028894988366718086653418957260259886563772090903922741440998519947368691165354482875360631434307886724244011241290711493567041433955189442876089135726903790290612061174904862606865423366044277618452753072411270831404229838302777350382158555681455933528828135678393610741991752934132619408997386856561213844726276570474465021691187814508118978985580071323879559402633569211488214180518077440308519434388660146391004191998129580700936537272022213543056274780673295793116775063263828808154692947257338481418956565859152863938969233353032353769754601135975060145366315029602910379156869342231937919895738628349889764868508561178464675599150533898874949665573280729732051143373747132334347683295375592887068244837981527702218667925906904204099667976848540678989028535164815749046353625940629833592048065862728846761706738491040319175055484331790838614534705172314732998174892361245142792157533531695278578157067290895654935635652748386097613716525799203338674960585688577444998946832163518413079753552638955708353219980623054178728098007284154524565197933782070383571419983280505137492146201088245769866905249646036270331845858553520190772130330769719802482503459702169249641966405432473787646862368790177032309215992275685988272175157603988576622943362753522711431010642484590428998386028022806435253491655909979572717267102374796579865195188187074851006093091769056506343548257140894631592697533519252014887322763638508351359206729088967684638225126248259616015336180823463642371294361117694272333304659967991632583817711469400359619754604858361473893950582081716753737221677224662994674639556266386875395478861290419837591496458609360424660323145099245148311912424941973744004149329237802117765134829401805991860298562982308581648711786176005979934252417666981301616340223651453558643098857703957292997688870688650152455399649778872076775408576958866437822968824064184023692743611512201521351707059249525585132621199659468851149354807357101055172775927941107894493906358918953996889564409415771325448795223526558681495095787130242275452397412062667053718849536737538222653730222287929260488026050524346534558529468734019121453681044211452996876494426060600230316684565826959066088976954831480190824423617653476396735585202877985233362885579055030127578153789523460429417522170141234625252626824576627996009553675375819034656187917454333209252832107940414022812278962513239391171996231885558076265056395758817312158619730708280240913666371818273490232833790264758690623059242327894539469196687039080165740734281766914362414340832332925961887888200997954553478354310410225330940262724233110672561402356925838191111125121375874695552468219894796698420100514389561022810245232231438942782082405866257649840345144625050614466508287826318449682555903745779450026476344133065912112588650923247096028327746082948065771549374348340177355502105706407420421462096260261538627022608223937844376007809646450529753457364736242257992931334759082193025464669534327476190259608701416810847139746998296199045772344829435892524666769672286549472523537524358790917821228173482415078332040701425346556492421687638568990995150317645987596680814150647992571734006120202079101699970200092954486506241338215438227155118643478053029023420270339392386507281728212926392540868471943383082744220765905432802949413117710587297191232669912665117844918133633692896388795376389823260785189788318242001064240757542900323818989945076812487612031979945661492790411347661079373498213945389578318337838794023384666198653767813857991622652400865192004494436634675978939592361339807365046260896978187930513208284302947690794626166900924208118003693806744278922119712177421012675286166450220729449008579960797688681211597994320535937507743289655261758040677117984982539279092500311789906592882833580706922178157243831602641943679616302249227399069683565505827718599532009979975082306960552683851128139154777008231415901670912593365611499374599949640856803067287847266319350738918192162153209297756213982619164586676193856438745208924615229552758664792130971123859199916936746170514314456988237206242111686677483610353735319104923790117118789206441636989742202896227119220661953835672311275190705927248621944379267447687972754640207956654913808177535534973494460527148025411233686605688284886761470225773257318481568777464530844735377872074807824206685625801048274749886119694944362143144297393393832541062390852939727034235210044488351902242393688802416603822551191986928971480319002747956952708803173134521462241229564559738956800905359618055337941645623459380251292727542308905462360548853335920177971111381324910832635217863741864980791472126572988573826121982767120134252132173270644646388092914649849809932628611952995143163128984335245205451302277926593334944333142438800105817795667829718714952919108593001198020577485242670897097121620004141143402344770069900292905804614456334306933858071856907231132069455270619676951325712819191045116124389009415460233410865633101339428892956597468934210987211381237111951525945555028458828268858949588853603257815003238422915397765103488628574439737654989902225153109152719156480519124401698766455474213937962026870057617751058969092940181015795579608330200756843114473360188684374135081777659896687699624989400737952858505649802750680501738543920143818546002040456003917504759747707577729231011546496242252856923364638053469178403757386607745205498965904052936267028380546030106191264629056516672908895119256762361983724588621781837721050437858723307824834944208058232604878474079259811203929921335410619402450897141398025336502070154161683842272175677121816143368031272858665260767130581047669251837105865823933044832830168789796246650505085476250587406769990844650311042643832932751734944205289096420598262664657718921437374714509390913487620163727614311039098217890824439885207133451269050078354312580252584756011882711421192544062877861284993199846249294127839477344320079201302935006039742716126053231842079588103611055235541190395538156918097771107761736163505493081745450319930732656510192271047992394006461068031715116679144258347175283692002472283161797316218640415249339661819788264190646647895039877839213640326158727242390202621999477268448619509555873724923621913361649744738426441913262553947086958457023148780268134968437686071154949796600884121330894366512733266201574652254917403571902045142935680933409971712506867146245982936985912142939298502838103169679103055439941859081701595803102677514944398164624374154767233504413906135013541596040633480226488775508849691286838027758734363202401790618133490825474779345623385932409908697549767984700487946586038383713912748325022236000644747115670815980695365783986578135002298809724098383706608245297196276142450897519653695080561683880150902090686934062134480631359124695058737134508425869345179068961348039992294207901266398174983025312989251104090513415678705222249665182459256114275428815968161850166125233499583030367308224108516250347923850070645945434353083596897996969821665356314043013706780946211996186294381906299986234947336714939777506840596532020554137764952432652995216325274976287985440858391743070724887556103293221180670094982382002724788284052258254285479300530315562013053349536178877725337365499810313773639861967651086384901393575970813288326118275804898130988315113190022995616887069359546478985976189090490253896941120567756017952290015219770445294375286321511764925290570577759864492807964022591345751283570826644715432116829242915635920910594843304466975578577915331984626722472446322930964454387258278538909125285246509513643609037550466538983209720454717101489530353188174233525803500216375578521154609380184633991749422952719793989122624817904465311133715855894322937314766402862058235942207933731159775442406574752654045314870910849785211079405162714649424852902192196234427262875434505098496990382562710910275075308844996616837324055158696126743164576840806411756877646583278588586348434164676113302679872176289222505251980874264426719299602966460639687640695449383301163875170559998851112685755861188649165573278231571154298809577520693900809313083110011997909347006065075486293312608169576399833185129680714267000453407577109592296362972056932941426459299882738097749871676314482407362900736906962661485248506813927241031656009545746297167740925321373039049297803918190212013094017548613948057020692394758297683529063791993773722804835396814085907488502724466516000089624028647115351152901050423827650960134418543235653385815666245951002139297185352839295769152384216272839900596037644871880943350627216274657194165733732892450846552488369776779753410310022759958004974127981818114008037699972688423262645852026022512721817945673576437134213835064028440371811725526467505865822020194557375938457714180683572549469200457431109769206431489198373558446865617687911539581054910939887700322536376667860545149742914348013908786709284220077522208171554237040472906152849117069048575304169050959367830330992338033234161219167337997682720638340504168192515694947749903522084614648721413843834019473288797205301317594122534039587234477733299524952776013120149362544068875185940918694373017810653170228739665161554427399823905037523597361431138403727556831069926669274684386681048151948983268108551916309776420435458520600299577978523652640834731758404283427815826514696279459761893928233130849263493038854630781370946996403485920469920059182645964488046155384487775117131768039295246920145038103694869908432356843724144023079179766496684966124862194368547648052393065880160142681620949378766153849066813960858256187898810977953769240974207099650533841567831175032981951899384180885076725797893767205482392336255081039986511798709921615798166010891017545533759154095345070208347606405501799736157934123566558909785654049350664288526504446007575604526175953615429199299980568044014061992650663501139807306050055321137939188800095163304729048110834226407260086396066630613898752302649116695312975830707614907218868243850005780804128919679393012247357580532720346513168885651695229554305512127709693801360531565184452705525231338833886408204335644886680895801908173551205164602913096222783442180911946379019716109568353133820345715105037619103456790337319385278862850209624831925560738067304332768159178648010033688952756033633242786664695340847100235653946921217353158161539419071325053659449538848050885190130617962832379840190457723319010894766477472834945604872204918593375814325826733199643212396273391665922401446084105999944664191862195720700485158610787654169654445010202095479377760919507742817368733964626185640708991412552941537266092806574963826926197209112880559189845371701950919242025472954734421840755429456869830784631672243451773084988250189528091974923845372654255145215671855249291590920914269172673987845406517104382517897332790160675223020678385635184331149084962850149217704689172223878304511709721813956960103439667909911655285328769511945875938928185611772045101543971753501241992774233354075566160755988258196439009207247365098274865386248885852186868695172587287456395367071395134638093091930180680497469048876238602117675136385600052113188565276280994465175765810550769542298147874211934979519591738991777012732595921495725344240853992929120172378035860047449025669298532258473724416454030440297594059042253755017670418706358734290866596174754514733999958504652278012635996427651920032642444203093785522861727797515388078714139263892249373226250864859772047212030521399843037212829288698989793411901491380823709316973400364073361873302941162907220021271051427844879711242948193894896244843215239464457547533184998137959908829879474454767852547877464285141998838324557932253356428747239636485693126039561769950812786467778189961481180610646541465885021193521392908924316504950265716387357262838879096006732594492259941688437183173672237209244596518542668993255683893962276816484678587093600069775419954512015102888865856414748944722534551835372360195421888943889140814690031717639974659133074300972036559560697541599471733736393610423523342598796766790778855169770403128500894841358214119068220722451183737716521571558372298384433596417630195550338989743510478020680188145707855004898136220103176659121140635521233594193846307005999269580726370439637112413459073426424266867481998522051704658549160382362453388551442291645530087557944807597505648486140886943756823570443429259002049124598117511288926570373096045444710709740205311909651509769371144980176926682383575065041907151321089086490635836094010185114139686837756706656563960467825870972075035238316758647176977949756169188400826916193998344721054336931385762405359490558965913562055821974441509747506154017135611303447674419186484878651085996139804800581444951600139447924126943676569440015667833715569688179046243536609496422259197314123146027241372365017843910609959061572138568540148260549861019855422489301195288811101774355358668228963625812929037594423829511354425690560622176977839129251976026344141234588353706823474560138235323460441153774332557625318250538066416885435952265537534162954914462679215680356101404408152261238505685320545635445114321236911629556689977745777907759833334763346087533388915924379430714887179554283123034849225605521925401149261909964341164391078160152647347035753095378565516260086356970842759601873329998349777595129610680592827760969028777902148577948064095871188354954908986618597407326179331056983193646364469519008303530263874912150157962924027083795666609752054473917787705238606752375560611351765011251864611942242370630556327926671974615927954790543117125725801139960809809651545453928098021236559352481938178952471948666334520942889994453703196634171869584974000921959730169477729486848783553193267767197462111493716930263911568629913249183147989625032497352080531730500710732718265903645387935259186844314209574955243806337792304108864172915296870988625392260173123720732010284666972438180529601835759171453530708383639866723298926202726157157403686537090196625031857684816657228690927977600599566412241013045549889012269074108261878963160621676008177309259535699559666643551069226689610389180391720887730012153623805664372752760840356351218561115749872293766197383340045136772705891200362993280799322933445051828119368282047038000814514166428833665445192320267904133752100307715988902996037755392700781571087007337925435164553167098884224081249579596081582527594010093231051897677190144166489833868278245321596657462205196444915312137671943995917860431567774482610347534260515967808095733451746262885126460898795359092266734665824163867174353721668705173680236799563010840882590506156171103726355290876371143469828317092765236794860225059465903926834055758509123756639430411534745180798883139809072736718403178456006062881219400377673222921768830266440000277513366235478243202768037384354258277271399191440109179950754608190858391131214410100016459583454626323071892916503877973816232841912551835963838622426357119981684700420920043418214826129561116888866469551894016237793912748955241969722516469290286362164234294175693275379068469569762311115511255351413966605802287877633216546735651960192927089715383676327082998986873028972026322523810301378292055031534646975747883403515966086167882605474171706396405563409365128228307785926358863607109090892803627385537927150421727358301331709888641911991981814366897332426250013847511776896548058666947738573661927618097566803209373096506302339753177661612457101368491153500999230091531539678677618170954478371460862546894914423944585778588069478269308661417488137989756353873575858280520500459347283433516975376898994632364700671832828902073300493683054402524057888474056805260259588089784438278715394288586150966196131166167386166879085815516002109607962463277360188462939867792760193598815346321202992525217361370715056076531333421371180568330392987810025050955083635813776424935551716165429662615769395768039627476696449656783041478650882369991852224797520088282138057437796822495642243184331812449328029559977284475453282976695853478063458661880594073845277318133771789982316436111618789978994178294988768702975319011890804497916705556652858687730812407938429311188392401197088881471392595318214082377716123594625796862052654989713615024677419288429960610301453809433459819654337433711447554560891255540506474799626274943057722907871982553028769414603260394639667914391650251493024962088205835391058425336124799693782167661032006590716120957317031627354121345146799207289738379555655542104087853500205917078012316694204307887540628037117131910369881574813526493884197286445228486092916720292466765387794985169980425795670153351165250665930018353577017217416250352004906354660891743078007782342980169295885784974017686867823720789459593265487261943118324957545641848428489256767613587108728817359472105213291581299940657245747940794205557460628521458325363694078335870756769085078488087536470796843554583811309442051773352551704322975314437792297908801065102838259124716993823289229289181683618403889555355712868059542452598045772005906496273915292495990328321243332062974002938573258224682006227835487585256729269730986662636696297401087525859006912125057557285376865380195310041568456267040308081066423970253996107489803500980436265990511948579981601315393164024178957936840295443852332097076749132188654500454322296137261053981716674446639670811005644805317822596805227445770506287632829917337142156985878653911932351331860487432889762879796007595691059140219328922468329963008907057113251929994394336738333318786948933886458618000361835299245326458113908800816925102549511545375411997240289279604690387478415373971902501104817288718981031096723786497852266682302177945461837144212226992327367501405586705599845554164921960589396755052451716085784331034551375604679517497337661568349056725370236676266492573976985538481737315741231262172807662503843494377589623509593370634228519104939795512773299580836633884771453637433713450807441526865234629411070386468852689800161375509428759795595003232496747757512510050264954793917484310589689462853648206193886762138774889454267225558260061190334375400407815343917906201853193540350037916978767302423394494874727988758499765908811243739172574386613071940149494813133753217674403236394405593032892080061844340797312502042841736658270423020182518672804112810794635059806900994416150855029566827858840932368164638947872559582658517957713212859678339354862005875423549677302275536845864751656820174682741824446587500032598613758135910448780421546488391383279283281023957127696792291387277284513803179959845229699737381664025768082524528812177778906338020550893798342658606847575606764104921468277187878565026101214308083115296821929042465947972338179159636709531744735602888550210732470326507169015656196830645570471806338040612639172355970029678472069999796205240125609792606410288593261086514388748561271115382237484913302478964996925259523040868767591279085659628385728229532868600516197568451801438871378189576413422722121777020595475342505180852029390627433390950186429056030624965359551086780080142011667034061804762842688004103552900331082349910059142556815372159098091516493827799602626876544716091054815078519858061600856178658217431249135588777978818901023195536673543785424477408671754235129387305933010845462752524794137543572110490991905107050954764797422722982237949243353727101677977195247157689233270396321629943555765715878077212973588521372093984143540537192477531720790995735739353060493531134092571119900509234292317624968370113901665029451710628652020297734746584762170586016723066430572299186157295973743039718090998304140720230284137578006630199442705132028670178792274796761220730214655210758754099440130691955919059390268474972013479085175526207176493808918586936247554050227704654715179904795228260683968216887034698888465691684483929810474212992453166090795623260859136058935487784600466874159081547469002656934500887584362054519381162471782354643515743044301677771279077465386787349664474929462734019249333829285340006366322124353816775674963769302675551414752736190130018326635918279275411926253195439207921993788973833408812946034668509496023111088134712518206159251149268407153135086554841515605439978149947103781975580100802428905711568474283720573926747212007036700869905104988896633476974367391053816662638908554117796558780708455980128002126444079991624930685812553630411044316606442824739418701915339269443569432741260616564886324416452591549080432999529150270502662043112307798170137469489830018842344274070353433926457604530609963530088629156657356523695887223940665741493201594870047017060915737790674342000751775294774292742210832037403491614098872443735957817216739871647117179153483938638758840060946823124959501349482937613224972655983981424392414481911334048217886336864683181588812971633320472765759252977754961827360694512292835038796651624014209995831977205869042919518636709642038106684823687535329907691251407210217600528452938015567908350265127306302325768761795231019857523946426800606552747246851760946473717634280184115659373500929850970261382996471859160917384824690654955063912557997593721065761350234344461045812122806873930284642855263435444305431983739828214231507053902325929958771859130435413675225390233907821318964007524790290916124445917786020804576307816774480813131123037114616769459760599022810308021302970202302136738033679172063541992143242722484367405662786696840956891394873661051977534306009449808363935846826950591866826172216748045300449382209331396711151190663604601783017219455150036433340608393233010756861173801017047375658097479340163338614579017678653584248885339879449807169632024358894156914304326555746917093045302409387730040063815498068444923101840823799965820707607785399133186498827773253675734516362389341823992139838151076558404590041321194275880597500939842267475196215665437887858032449598331736242550074700398516386538906089309699186010866766094217395217915092643743036903292829611779167687668959838821015623340497380287118564437861349051153844699678593880008931483773672120363139010093966772845607380639122310167451769012702238301686029742989873808083040748775507023311236454482307292211674435651673745838144724143296700833317468698131028697499589375368238172125173652500723598264505051345201245979021448446902767452500067704567043749567891337219227276415931153562595444966552924067549275796220792184622983594789747472909577047955917895148088712985769686811778297728943524757937752509041466663264037920365328698475077019424562012435515665814042745731027765256835110032919542776126219346346488299436385314894516662101528296159176552534171490283643853871411306631853019791724857137765758952344676572085946066315235460116567571385419840204400354384373527863424092601350325085529701843203284337416981971702115660823599283509674614739197638132390314004101896401269468401347218755448489649673306816843112071859795722348007570670344315173960299066534554635722738442375962543476118777731979730754927498533897490491694612615665398038117079691002819875255841287525464440316398992193898564516780821937091244280266161529125560560972367282860954272181608303728025680395975979225830562947886393593983953360283087852409927958564510604895752145701496214736478399691106623459471390793513287823433642343060604059388900361821047744868208194892004282789031680567981000248054504205255608625308419753590718163232654774742741649084118946902714767771612768002928915152612075179274007996921967996029969628322024131178959478684632880979159936716876679435954151246215585720958073989796452266365169831194992640785074889102902296881788376637665159645520937500414991053230398952989497253365549481835797260064433017397902832002949641818336791134833064300954232799634272624347312561359357300164511578382691962689918699737824642221964108648032226211605114421924570117424204330720682850104172163673697355201651408865949326527305176895030856459547271751759876368369019469758282429329635392818535592207608096491847215802028642095871465084690416694554881161596922391104431482723242395763095022606801439215909610436166931407224659933105252816816644797437583756894363012085257733649560950265295645592784446584933954990030665628552417930883505708813804576130581238609864978883181944823032042441991061189933315507919046328534776504147277065546836705426509076271027199274699507302070160629694471753631355020593724699056018403322222514953885520949772843359997591195430827564716214189107874312325373897916503757856937924814695190624412329914063456408572888703639117306628092558268794787825873886517498945897906623820430343852161550864724866410725662772362836895294446193643545691489870356935309462368960572375548219333971859207872656632375966879411701523119910737765962732838489190548104712160088920566236368065153479362845821199542649538008453692957354290615658697082586960999676433341743095315420456870516124386049465388053004851610831644007799697739392816212502037290814978194783016126182062964558721618567105254251508179983838990467306429961504954362359432736759923267955372663098281683299978185375137959661375356203932271531192453415711202671768006268775351729618716866702949993185093103986937610344716837755838382748591325355825363112083740012188606454841817487110124470457337841890194946584256724478918920520473435594491953077507282929497816322084773518668893001551282794939711190257910692423972950559306198368972441959250843305343872818212381726249729550092808661514485102950952116399717743053274950530519335955540204637569148074974010926450179588277674143033585949931546908997743489476548487510812199473798653098580272397776707558867585732603248906341740341840522249908561067906246166156898491141215441807919786517667431286936554833471240070380200435818648756775437776601829478620891459480421334653558958032425452502507802632074838780042603748359229153124900507502732755860126054999796859046092524889299962469877094435965112369083734130363394957589991069231799953375405038074675415517405928202703129726999137298674786145053927495792180332045563664003224397022293372072833081641652561549964298411578106050123029937578911469614863043579453549042100807316072974659680134877885246184974970660061706363340559285704653075919378970518273269933510010214526401669226280421968127727161799972091798107262812180157414597715874398634209821185582792081759471627663881757198230026676662766481083757419609023835083168322236621720723790690061091898135652540870562375744936778013422756731835620743806114749271357472006389083431179607862209256034501905380765061104541848811074921867711918862298340792283729245654040763823914921437422838316394904540038053688844863944196129386898027000324951627711489801829191660264003261442171004641528576470443989699434866543290419002968202821506131128960260507542010869733815557899423107095869290396043089610492914166134063092923387870923027169036785140428115871477782296705749322644337842015188165233634941781795845348451499754731050617882369408810796310035061978450240462272762240064647191296979481443353361146130470413579709902070313083524139224942463445736594342159305821154745052177672659248348124445348355519859611239505489949107053950747915790091611971776125416520119965487782524043360837941355148860613381060802757212889036161544408263080728147162688456834078055292838131696356746771083293608543923840984692397541249494582600700983827992144780625621713425077653001152012678603077353123205132391479194083219556639542011891481277144880300333216681260553386662477374586812034654142688262570074409603287285570900346815578054094960803632091113441825670118513967532715938687244365363082379945660166012603142564964835346511359924414518938124463863886185958429281709145062700047828721456189248622436759201207125183652197219844852574703267310272332568888542695696490457692306035073054296376878630823866770347490589185315575398985167187317096792627594563388360381243058699334905422256213899483329656623265294587195752391171364264582422743769320415075282405445210181253002711593977284885705593610490656577002802067754569571635837947423431699980518218537124777230697309535812768054309673252772254579760445748412310016800991794786066629398853314011496723744416940177667123950446604018086835166545795331047198351283957305435651024424890521965748293506251703209324005573615787947674279492855757919915202013696541765932594300745756243598318621550407951672865769658211627080446152601033339487417580269412904509353770153001496083389154879155673541691535706741250904954983504203805872411303318189503020637916485080641635563059736272482840067642757320742198230747786901069077199207162162311747366817266299376221612528150353960729382511164620317259053757794843945910702592313522298385642559250744611098489754743711611128756324013463854162128284603020853011776655105431100940766108124534137320394526496759672178353690802540658535386098714255439309131365833103981731919712043463288489859635459681247098467859558825815755600401836204256340153511255460681829518571331779473992843847880804641458230196057841577725412880002579063941434458251741977939927466981447069788886087704320255032334585667779670439962981625859695441905284892543617232281153408073914234967335499458302074977986112887207829832164347111921582631953903707967214106043225417291025066376987139787524802770055896902859789801152665328296098091411591951605731681140651410418791014874465633402439168536342087542365870876561772045495961633697714172731711523353077111373899940099469220123364800841613748320844154868907619635464101877523831837469254303335524807093998471006726501040706228974351468663714660023379035700021412739765843351146190264653627945281159163958985345107810414727099075660934589867774325593670590253076628256375727284456616289613649396987053907872352179275456706601601502886870672264127437626390689334024094698644802842907223605152522353781403647756529074546216149231485151666166571919775427163164155871826085238821605780679496405962187260310955156454330090065286839399892491583411865184768431851292839777588287629296527647863325929001951845629867993737481575598774786889568410526589636610042249663583783280963093136548256545893029181682439696480017291086644204132780234366638728304789455701471109901611829058620514359393523070457126677869468563881142036209317510918053277120049643439803676159557083351107391394675299660777772139579506299530444006428808345607116775594068825607517841591064852733694833842613342745215403385124509092633152735494389446255580091315755225458936171059499724289882473427763759181016470789213455370762336193395109104913513698304463423851778605256493034070238144562738318066288050513584715676992801276394202259980393422848585396820492499297850523599069007953482712803915087777152541297103850883885426384308423786579185994408808296092184296993040092581500615383052217816190158775603498234400440049871350898107084683723263962104623864110992764469916804911553483978534772176826218840008396059099956909590882635473931843467420580613079561482564314362274775256558758970237122460306389314007517481102852372830997575159452904779251442353553557141057454967433529830229235820982399449564614368186914001354330125380509913016064187562355878389731695137843654385480410957230238410320659044570773383850452270287953031186493303797102400625548447539067618425560692152393003140415439899256012372499392062680776781966560287490407350093770704479646257106393620216326297681324453491647119093279405139744551992971813131679803462905762880244770542940544462593218307929773089765011015984230373775742128223930456425678561158231932295342349047196488728030291711932861790972827102392694998694689893410789292882635275016230451005884939948128702616575302968180036665054823225782812320184407289186009625421259083940751745478971975327709453668155423478136064848901046136634830102388691342714187944755334907808756760144793995000843181883741480377186990864724793482241748466458244222160154175127146030007405884679029250110054388443427907301599575206900325808004804105883219836677222643770204209133959565928118453590739041618155550173245871064015447122185140332424995736245107747298146236050670555607018532344695464527568966837245085087773349464083501161536678629639453805759573171031695957137490501940283843237843395779227151621087638389267179191827949478221310169503656415490948440437947618908628090266756660001652701829106040023001058584192033613098491711046917171093195060600793031782881591800845637958090401688946332654470165448665379763961272527978005531513937389580255360634117559296452104252985379851502565210496718644595774649367836225363152837069616142728233109787768785049883911519383013820531409656176659032994687732828436141621902409136177162190636758391158429288268835711687349326566293725255228731095068052612488899889587579096940684721850685796716739303084116042097969489604395533886606381331436381317217184773785938820857062590496220057787289920466523162100181217834013975508438200873144871456494788711188403973658235358291095329018640904285856080677200937533422560566149154269844979543312788467799742104713137703614460687029345716542761829815978031288227217433945620112214979275214970645836433705027402400044888184500719267008574560721326152020650284045213618374912507326448428893731384193157156714886871029378448078264813934703465701815465819468163485472020334762510781230646742556105975574782763737376933950996483456549286879935629759340869715356104433371027655954501956223046464980171763086386770723778491972455701696302356640899525771346030071246762784436169511412098260201604226122675348215924491086254133216372964418685997310608890891424610817710106511053244182975598809581369302846980590065971750585977445540337978949925007848260953777585655759335802714737768148672000134471199854443371118838903786423831695746544884825946668972377681768236365432329375970889043158885897944327204392387889292862647594927255443420022506662668638200273458373729712479915106052525262779542714419762956358163854786455773913742512348082226331545596025637755526652523414025647563627716108475307972970399961918364860900029424678531237305648534669779573718392851833596096658724363514897020006735776672046618688596618509370969062104969462454792310834802780168338621995249014631102708264575770013411187645483195941672325180232043017892739259781492582645943131435683553595995056767402136504144480253408652260251602835160634900028713935962477098266651812930461630124268405346939415881453238819561926445142407065848660188620522486926095370544421977384344795740879670563583657301592005743555548189604398086025017766238602909482946466750674514166670881433604247238750845647449484495545219158421486920336407131886158833060895751576305566634484474605867348051918735410655631027171449786906802052752122362975458322515889698567094227635569205005822472155623324997266759794165302955937525931446230105268900374348360823824470067471548503412515387829537672078735133883597284286758696119195264766275648023074891887652086166276639457765930391011823062850641897709656618452972333400669525815182462185354284720507875771936360829697382927838004493285681636026072453049499707534475793436927429166035022232670760793514803715783802321120992063101337179498184792185662243036270157507678274084325398925684765417359621005033621901137330334833792254057151764486576322869567683468711144614793508814511023312332963986287970866762451109203515367970166425592752842480213147499445809200046800825907915902733613742337659625481313749352103597580371295337407170811475998544227845055693963161109367383790111639820784921050698917463652286024443594254669607110888147894887847731050786866391807648258839512551820581481232730311022630370166688064549274563659747097806717264376857738403283663857821840335157586886513241027431408209527415811356931869781298602435032887638425847660778235179825549569804811162543146260848971963606483085410287484535729337541735919084474626883789949550008304007811622392861698148229046376781257049065055328173790186325254732696392088261490977778384418485278307958550658500709822332864215374344109474719045089481621081747343868219023875751571761271704726720285212743499804255507840038549536842057220045672663051420060293947322182732640174403068241019874636634882737119170647754181967963032493975830340929854821980807317723077535925781298634078201638749063445513867943595934478451201846871441737311439277615000874272550853157557580986924853976528465950503082785841188785500177606716255923946899926692616830201735129786730725215921018856609076600528750283105563090307349980485339323893393153708132843876730420256622493634556351814481631852053453655815004906205529620127001758970495805084015917633368698944949452416251976841629462786179522566772955186988798051322008639462167352737100345937534207918420552094038898991658294091287147481758156497641185698380542138348749639517520138485840678293441831150660594452553086084779768620522159599722089065706287536142109302018627732414105055919205969672576521323307983138499647799784565464585653309310645662869653670480032469908237937060800838546349155738394859237979621607854380502439435966280882974310170826424879139379415025267287210068584452474382224565358687360790592588773746893167974072826560586074036596712745129304715966954203617883308358303646566088440203611893195144495451223110151543524877187562970649766227352733010192361312478334795337309762476319435825966160445145057168697038390417573865571312652098468052009857312297333175908825593108026373077043622043481199040028568673216933620743934823615605035118330063815155955899903318694126811517623355940253906451892819246943058446557171785890814654890309279219609035150138311100698576096531462797615058504261194642384828246176564351688325063393669440752711697180492712774871866500118546744935865647981786196553361778219573773117049190150173100143221602191542981361719657168052577648959801578448852904864948471178246770513192780841646351062613627317706076078024034767954337062602599691511937401663082218307080385696063780570134688411755753441386698014198343563536799334020423826253639956349948352770277166617910554630762467805350821351922431811705816480894003021479932571452654340068386750518674763686117326708233578639277814731294175611100143692163161436165441437999616117352423460744503166960251332849699003625369786335434364849372692464189808050544104777661953850747331761862188559202306126190956991986545876986751635782443083908862567360166841491602549580682515994621307390878761951389687878327351952560061488802564166543564825255050202120822373472911204342322160669318122969112873324147187200909432910703138617638654571250911257044494733861228480871006056313421242446583700273627669219894620128098360568790171640376548280913495492560270148865085177820085528686991078931376184479764372663483100887485523803782893730233116330008339790870425742047434044871533234982304675707746537114103029046645313527927197394870916586846142082892377112960885696787181139356585374355314605104272502770652946828176596913018187717913234271065377718241120037455019888182860540548887743271360637305166043575112997912438289047730783859520912086615048000396390497022272763919814807904818320591916357810598084303361158612833470086243956263536960904454288506416492575789454371621756395581420118113827788955857094064554480557638877191382567132052501085633488463555951666170624671063206242157333516996524754419590079517987066858194057427363889797416945775504024527142184163933497014447943969712449307673656826845377342395980977435290260850509294273005168601463567391620629028218171469473465712352067772756388599229127363111677241353233490357802797391294251510953361139708003869046577992159013398655132042817934642891366465268400259596694703327506271753761256808495284412631165286480342006033687287227732801780717958200563725694252643046009070617901898380563465943458022874140521439457111387798129199074024943442726891063536253855624044162599895174807873389262994974215073200165832598472926167360821440899682502345149756051379513179467437861556615504624030108708755785447800184399038813316883800713487795062122219546449569426031014689400400184130976943288237760725953252225642312273871241206040612276313733816922280073355479471519353804058180494940948680197099936601267935192269948509894730209407112141258930493504304366579210491704646342897284048661583848003502030174061985560765357772706248943176777317553988416943998166593300262801999912482928028957059967378490573230234627642001099128187665731117860884118681510300185050796097602850212905703384488767270185359676174206147705675553292833236333368616427401353499801320007472210266153992048272103395495732492536329991134851633954769837867962414032840377746622490310469731085352257111972110263223857024949781160649189507424020599525642333635031047542796974346094931101589523828228513249510771651118330965205010128513957822008711656189615721481781251786013809636932112298015144531448845511263810466921512166209680334720116194165537357942312803581101000750891019713726416748761885335083035055133754466245546193015289404671718148194118320069440168069083935509290237704106374577431467841784673669763557811915929354610078924447992539713535377031227039274586705681655238343203107098095712077618668500043660145112911811828069805303785082605677989587748586145620149749495676070941223272952865156078225583389610736870673555750967072993086138299175284968301117857690911586240246213350389752218430533330218297886623607469346074827810228100479312453160107190364113010298244335562327503151753214645010670338211729284240478643644502215334760385365478904711112964806542407754851232656310492415664557394802252499415177870671199195063035695006594260120036715079540417985676960401958634367438985422882181349271323088828495331494516617073161983373471956602686346604854599157963517842395092927229251404028982527877910371379345924144180172193728893553220149035518987577991870262971822831067410014913945059198639264048027943357394191658448415901298475040392539532004546667200539725321277168215107285512194227058328400883046337156954008183579881977624718933601082796986576287741892262862928576229705920265720074805931513769121220904675142172755900966455166412513561972038165712601516737953530002264107643518887941797847126154929144689113535355245956078493713426960148300855055445687753163204865045226966249379655138564304441122984604286326043532100073693278387564866948232592896122490503500262087166858162502273544742541779189477090581123431468370634721636106553586239599486021399871054997641614553191961069925506836574094861981535464236876627050222610563908383689148020186597857079509150484880239219318911308043741724906632215178245870634622503954161738483569631503345318605802231983883939587933246031494735973097475901205630617485150045937296904134250853594108060149749814838791960571667464949357092606303563146138115943353750154128234377593908756515695387492728382822527266775589348720517951579867150598603610351805343346798567192200634751337299431746904134297181791783635837925485235834303983486098314823316634566220821524646783377029726175119434923673028797307572717476800763979341751921770101632182402066331922992196025484341524683150220758214236336023577577988623047375159189109272665999069563350890004952270744628956992821199074709179426416008649366379707202152901501357501986194874121678829289179881928997352372330953012867547897130827480884423512460881782471883329207021926479680820804665713349978437867116110645501857041365603723620822788538289725985826265748926466556314023907615569476237703017562581808041323705776439407907751211558789310582042740071248276054402469665104855302972112902134374511658582665384677705048671650777909358776456673216463236056704231920767027517993832655473794519205623056361983811311688713678399568886928834024397915505581463889887078529882497885080305687722010052901800886190187401889234720332327991030205444117894933572250837825848503049031676781492144605838695177191006591480271556638715309094788327881674946328022955403688845815700905504818346562038548266820458080304149051150363721426621477170412100469435606484541592254079871722946101672147340664071295113710613497508307230005239382266625732643507080525492017880332654237302581256078036864212055178518607116962077704269707304211123132511930374360682791317565251889820929473638260193679345783852346383526006845018709075747242667554568175430765579958667157378497780990214658062332868832741250806573371087175999862057765314405767311478582714091822946596967717149495650013432739211599063446625603537345872413746519384254992553553626090409127787705623081027765397410004295508217419904275475817638128920222329554894833157446384650861679894883868423283271111005566240066182648021532677615074101923024072177751831273246030904593027229293748902144744356436416539402295163261364162728531250233980287458611570107064721499728898508517325586992773016422324823354441877279833586981589118107914541772750097820985918362308703705075847917039176662108174949879431562332778606707965310928465337462425003058563172211121940605719599339713880580814492199477855200407594893351152001376302611706476892017526243029251819496296605637101246979241974640489678080862792728317686855212226736231510558983210506404767139703891257980646041341766823561500732526651503972659961074854489462577166011502574512094425933709318553550290008912272829806552569519304961785938157174641000354794797844127765850938386231249580254671915535391884040767784390548500409553946928065246621516956222793461863721183877871254120198408363300060079488227429577739434635605092314143084721865105080166730283479104136576479789793492048597907683431716069428873306968894085054003426715440273984804701871078461856153315035046014985610557934840471398903947528329525028534100398313356788694553487293624979227548464215097926512111884485294295751039462969643626098477408168867333356409833708393945988447876803950978417489638291991984193787576085283678520186113843169060912742576377599340176201223905143955411376410689388939125700236699794984647195641978782563529827709424644560523352257332371882338105369873010140390782586819671229094147814569122897854797998174343031792748946167488062671959199116803288030427651067397904903872136496142019539430011439701298169416662533458143732667558460323214229688200490982481616083506206503258955674814925262890378681428016426431453736750317977916213378260166240940525879328980644504049659416412038438269442217521857218518668822616102250304246736326257406781067973570749307465774909057945153017193935899791909713179167458531445128444397113667820144666999108747712280368103482521104345148913466000782614846039241102247548308730638248381085465379025686272295031151923090229772417720547920691211230075202287016087947867921502930290641028564550586398743799268990025513400303918158454207144608148251650901809568390750898119354313757732746134406954693833637387939333019683201813411254707550333380958340619982176395102990826971837465579124427521099915333692270488887595680100856956671021939673906157962487668761513890018792458331181550928314777011615314273480530359581564675036868916360889378090299311477771919031021691698889858698818978219504683849769285247421957187025334454473679492133374865857497736554713715104122341861151298778023620167975681929747253346786116701314756602622809593651525486591942366028796397676402777428605410332672518729514948294143479390247095092483371739655326884538509316985007973149820660510082340974121692672091155327018015163378003886892273507802705557133914918779163996015001510009712899488410781331790258177717360002357170351441494111921024327995599709351157467972379250196276482463442551937087917051712874558437028782163726429726645673465045372363735470882759415323571422633408905218185337292886044172413256048045230027100718811365370663527332161164074204797143036719635681385995976483584986802775148769793196582203718142416711779895852191083520261498167921231909796860052332586419816972673715326094489969102687386038923245794182609555740948147367338129170871318119693005442021801182286697586270187470334995242922697651268923322192646274350111637816855934752623172975001898718226371850466976962080945955768383646861190454704037364537997648994764743993937378181475238815559837375123575522693832407582418554228966684453725907057620223140898468810374359034138168052494039167252290490365096954649054050982468196974072192222430069420529252895497912880042348647830538381229703229029635629888833724362085312731822715774123434326332084748230279618476727071477219041122609368372588792490397120167024017509696750286319318244399832992306136586582028171676465822638587111682513554030283960792442646379534334181923583795172432956534383450951103192883600515515430941706183419930732894439999106185915155959223826180424750798106875418822450374676102940604793862282480294042022442276591283631570186306980429857951254735254993634636318806657576765958899497024631106511030743954766728410999403766528090555300661682688015185103354882656836223483757916038365732423146552412335337984644727558129380325549746224160047578694689340372946747880211973700377777343907718016405195586638878697363208991940681446349742749974788592023695855902307591463188114843713612140761190452288202320573877262420903091819817396317387712161698441636826278813308094103899479846316356891505363981071131161055564193952511456746851647905531626624953798974753819802034101428136287796197592744841392525435979562640125091924904267251899022443145627970217602718410428362366820313259375559225273315227789190650144059525739934118510740047835345753486361194474849878675077819310395245030322974888234843888058607029882129569665708456027803130143134906500597575766402325267209121308536580983020437652469003893629572902031060346892352972048517517210885887810383894628828365321883380193331344225081385253459275378049158878512914390823331103055677495859641676052971282207125351963962579789227495795886049337555026560420281001097634458176168265766408560015287908831042907163752208064500450493033209697344692947197795179268727539193975389881922974766665229442626107820713246346131232811028870010919101589491501945783555402165804541539491803645217586055055029175164893980446559887006989343214873963912679591600525728244146718623665931422358222845545112808822493201160862710580621175697468059178881180414191070265267145288626278869168486926299607937895091763155031370970931780416295594981744815698377882377478581683312343461656569361671050620882505165279413540828013613145194222174393167174966681802790514282845395466586778472084831578630471166491203948167807996119206378417508345722104871316243812418142670065948921778938573502326175595620476578227250179182210834776509728269133196506854936732279837447749993429477234215135384176659641664699629872091659179235061298345633075148093013795885644566128494083208448022796134895512219967660222485864298715817633397317111190614094482396511340882460100997518810679612700735526944295515275629677545291933900728691965349155366248843096336698080019778828110511175329978832239516508731514083012758670221600874776968632752447425954765072085094707895000697543179816813857474863961879686776585143609292586283885902280859357881274773461861509958298605813269166147810520220249246257243955545595921347639205158471785167502611168037402879893869303239505425865056446729018996347342786884614146409921284083987831660125500058885750942854374853348654354042707248626007141609893198072637149731124079543090030251980005578647381499884520684519183378579203994904977194116685798538133234288684746925995720011413934199030639485753482292318379076172370545978335449580231040217271731212157559050064174227095670730088792824786880104304936428997031413592214892446994470821593474182929301128490160644943215185427193727888463410362531915490619284763286288788557492237611140925578977469657387293319955414554453535656854914253702326865570765484602712153341433677791959148534774280385327321733467408622749206352178877638422667375141327845942495793358535285564931966377511285255920471832754951915236405956643232888772507808814188821538892004587312697868664896065878537334949007409567248899122411293956693747242818775545031764684898194258860771508601795273082503399589279663630340582884455647418388073816978395090757737793674789141952536347640520543508507209913909133632304032969524292003621440649091508747889064167076009775085689753819291339759740200494528159810989876980132669052538454218071186403507565241704208785169581144463818014616941093201825455224743845349728731507282310037999599246213263931570434234087193349897861090436984391827854182165525741405261068175952419699641274423912285099209557867600862304389570737965063171067859331694389080996049512845503474078502539385410759554490218987795160776814834534781340740868385656327158721296512390735970760177891389209010864523204365032954234996385678586579107401398554577786667552159547981524672414845519363490449923466399843442687030863864067976887944896796732516733952283633059250806301328162129760703918480200076012384298439978126643839043032028926442709300307434755941796242051745887588809459727948319133463421757775041430727026830093819424354271269252757696512346248650853172075513867996378741257033411285623374644321390425582767749397756307945095530558429024850269738843289656292830062110986225139673757869376262421511271533804536742642995802902997454332044637390979042491779161610052400687378695143953492823127465895687922541148199588851770904864523817412138456644298379071194663524102445703916067591213130444827555352108085066287384796351115136182902037819360425402524163978181081284496273491414421145730754996392398493891120166035983751064823576516674682073629424231555300973377400775551955289823992434475948581520589693990446906468704313273400913531784081409110517967716087013214373845345839578698381010715652410613302538493609661136568473045048276925470934918015690516639671312454061663198025791217637366969912595250022343752748113232085447705783368981957165276070287407605984867641730516800713328294206299796225000047456810821296594126722134346904328539344607062875431692188486637389175304751386218683322699057571479810981345195256762625813040816914527691542093410748134702984964613957344786411856790510595617819995765625541869688631309458332232172635244855109893579836718568089692577678695417015586405362152034389197553224314427219554042381702887905095749084074945998027016008630015245116138585504041299500616717554883908118395503101149879852364195428134071139137099242143198542023909587200849277756650082853119908807136525334326941542204816192974329973815941175807231663155166959652298875625376963979127908110991401319771270761672773952198799878302076776119882623205271029652859465226807178681378874331773637734547102850519113380751109765950739082975521344282113728735797159836347291048083274660566310345542598821228354880917772463366672233583923321602067445649839728113473850264911809504012364563252475490347415979787935579235127614290423754816962508887574375733635324158459933810052005532204894700230573974699948960347260343236221287878217351343026499106787788083772144454377903179481770526182313586102888297634749895434233681915887073650162714996748912863436083039269618350237274760568730349312399256281229171894951829807315071981313620324171399386854789438783428936064118398863456626856585451928744352549028917551412866515813390924810628235941185458570412924787637332761915577388116142005357845317949582410280887257470864192853247689516163585405750504798321260524132112348396147905844593694578619733261916252551665075188842641874148430751216145754748125758175411361446314386512630366784984940272968324439320716734283780326891200834390386543640872237069824296093205504139855258337493074899741102864200351011247270307175922182078850993105834345281537115637998964579261360793616051313254707403513006513473857736929252150791987611938088989250699265458849219537867178997591789582352235695142590894883706776602971605253039764219824384536092860596397923976595999791264801829513866280368766460885588387051650297092919101171297505572987484312565274215426845602312499866384591077235027162440840827400895315041218870380310415682665655509279836161917326858122115298577894180229517064263344901174878095795351159871112426285394158476065580357820649980958684899098613247372877810442356430582090426233952284409553899523313067436232305258657093084597627922928143953190067095374317411174391492029884217888188477174921993149779015130655582206433963583389408428479089468698237287900305986167122607365724436910134070571976730326806723244275115492442026425632197711181556197705166283489512875036966816377257494678229551870018766054215619735391371356128333412321606170416093172853694554101785888470882609549066695754819282459453867287081261231505721082385694505984527336503246783466574802123408395169578133578819136574224676962176328909771566740704148655582309150775847760833578929718170235562215178192023325714203607246219292021763836955348361788812130936753547227834784201748774745425153318458474547535707199164628089142218225649200007354201799848110121019097756551904928975491291219523552347023170902767979585163667653498117443458023778750148869453914813727996338330873434701805852760710523806429626829075026686663057827367093621949160344775594650167779353489485998381967600740482437895223999848708756989051256177694771623242321436886355702610543595515444175870877468167173383323106394306277803081638451053055676010834185821132307323104213023880036153020090933526696611779417129831879039730988501580287228589614227264827029279156572563092283477389961150361442753280435200621480059245700156483558596786616081130944367440192536792330355445023393963737109238546712424616342543584362383063568216595392660562730057200952752801511328153259812409359240241820568013768076033842348384513724458322950983280472890670584921403520801362603045398477461855424471810278547659726292283205127803973424132541123853491940992687872092134673086248530941308799929788830003553261949538087550688503843506213622806157134710877233366837759603143588509956912151632451928013589585953875243425443866427524231834494268056732326830297650377078470572375128180867262702947157219379531540398846479075184800309723160293763868743804924984564590272948399992910147557186896869139790802694378335779302443116725267353542251881755037580386932902137408668273788940567319464641830949373372206731580857742051677067853222715952256868886479324043718426592052239078814163183122340918363722818517740293447635753929363015386181987554614414416523944873520329984030306012412593406720950932275181246176876017109171577184148829667953387510501718795039850358552662383936512936260792288798690011066578943341914623660305695350398874237500986557140010133562466344955211811394186467649848058294280091506305457995224280839603899502843345341291694482751075432574271448338237460525695329841839975591685705040233772395967814430888594724772901994346636348688602177328028162349479465076176796977383508024130892614523110185771988920666865858562889019104940117774095391752876803621490218907615585907467532586945554874366515320538842755823310709182473751909075798573766682078230212321985534727017157681946796568700007963178881013401913913319186865636014877240020322851460198826710484738686894856160425588798448490117218930641902416285656301466281894341104305853412551502008529169061363720146519095987370312239844609044224670748974660217983224709677656733990670572846870019156011486246141736751979503521908482008153503967465495466331086382300520661604956450469589430142721101963911972982557470246288414009968171771203527242334227422711476950330874795277762081930952003261281943043265151314506167350047033519025110839018068476680772152243421057315725922699540122010364542671207754205757845694291766141423808608774298021154541619849719659415225466900317893627144684339404447759945063084648385643549505403216229639315460865859045888029039361613800977501852866603079234071362644336478410786671279346769943295243968515979210284081410447309694634134127474897268425267983696958568620023624489970260028725259722959011640465154324524580292627959933533833478070597262165374019053880970081968672359754345527949843368420335044642575602682963550187393730665515800307120148181543343213998956126550565318893810054374657015807638436647079534157579239293736448643506172764546416867885964627870719423738720630828157921740678282232224986900038648471586971477792748008492350039446734212393906902250017930621031367668057877711033035380585922352583011289650032671044266089836812635981194397216498470979674472936200636278558867546461160714999858827212551851228850474994842385813443928873646743918090337392727031818963690213405758383862639938938197982243146356062928617125709114962124774437190300108421337694339420837313843284340687354389903504940956045879793869556682869247159080924851197312604128112459299717806246622021955603913412963281506049594446004235470565643127461647743227266623993088387429029487045439617922271937860398838200309121731894350359537660832165097916389293304015473081092310728343736946497570143611505682317451554204051286930220202574949593592213189125629764745450847612218637847343509875634977968438780989315829081032783334962336228475229794851260471563345290363814627820688819749191868589355477233989184480058740538969920524723996710984791146684447526240915679611245403442927501991909170243845591714538642219245553850987974652756041902882686869757759942448453482898770711309768104085614047603447650553353353536548206713300857457919703916423883394028290327414444909544500672491089707749393249803569878637831531718835535980516077993385746366469160385571601801267575503560006995305806142417336846819494901267664866234046906794392954223508988698959200483236021431225649096161456661056670165392103479114001411368122345241404880755639366707896242393792456933637113521671280088726260539085526908142697124126227847475526386375480941514386908218506526180408014924365620462243349058022890121541993475715270511454671426889100007736334042385242518923565093549390797125334398037703414574685880518038225155989149896444172230051798735159311952301320217119911026801048237452951011518344260105029850840342984792866185438755797354499921693203501341797547130185506143170435624467733516168501554619456382607659385270979896324736855581520720612825456514724503860106813385445388590027485561050456138965859665813604923623975320402812408933952456792346599657712401715649741543687698738795236872678033258502141116653354097323967100287292461967138836859439965348419290013672953483210048990307951794746129294526105211697927367325981669702043842003631072086863269028281828979058121202764982269135273991465360085349066738934198719997459447245101645822606984768539539487745897462040785317017722947657275673816549704243271380548492505113759273499762490403353430422559531746855573174136754132239579719329034914047190779824927062237777573482329101222764787153298307018062581455602802708278623896323614251751561289103460242039488600249754748004380431114801082815317405669638240305213127008588426194317705573910554522331546106296443674574844039195716049637549887499395529666806096780288447120215764022834249128827544721687494044714766597993845385013768677207813955397159591668983047504071023049546776202336305010560167025904141807908930383010551053798241915873429822032244035399182615228946548811191381997461018005656024257265125797972905425744120018531617695904128178124720965086894014234955173645999617789844267875316414885034396089807603684939016936997345240416562640750778788567792560420534775168906551828736461904310676424629776147319426426708926854187431592655604932748253042631993807938766963871594629818400507769293699602607716392407120652947462141105262029389483743263095746392280911506625533657410036728313034579829410597837901391967301398835914231300154767308526806752284827477242661890907486778187142645952577744535259765107245864289216166101832238325469744770555972628183125722223381516015516930292374234417167720449149493796791748081155852092300661986614673453678380302296252764682587277102251388091498149596854987197576829397474714960861890533069026576446726446246072120608082774142602642161229036889589666787357100933997627691999309295996657332046237523907479104622710252466959961255418594290736614539878758266100751009457404730127759414929649699540195202321494223948247816406432668448826796375094882570560573677279954600906897198985987118128249900531070150652045353120787073544044625479262320068645552959038244485557599893448593090475722826625467031915110659114145544510634746944516126732257594421470956935767650546959835463361275103395591544623429649232592331873359524142904285564378485482172931356125241614099379382721411072040707016798375592264246031406653630907062690771224408003784515519427982755246356362265053231923472584795595678150336682561511233628834885423386171674312146581507988797387565797316041541609822626215537009357742238382886887304183899029626537214753267597814251722827319803581140172889738898237768861711421779064091870917219581493539617671187643831921588079112340727876383046882591543074002338997586831003203772463859892937991831894494831845970169880309741539135950109985428954499857662259219961204449832159521814546881031066063837845345644347571537696587971837425864089233953415237111544499199996244297445781456780411257050943855874752177239315982684957926174457469660045067404305343032102283832670893940707349897702503219545608392871393022533541466025914280505115457709047291358104188142035723576715908178468521192346795188916765682862293459168151309099982247467135524871709285666219944969310209249222567641645984714569017455813941029065333950628312223971072661975097948523896260419803272749762499315736291563178065748977823809953361285826928843797572346791629525327448882631402855518279178961648555570915079090275929259597671909778393248556468460071858442914622145710371823002992649413000112697099943382911348569126431555583717802244556232390798709270990471318135794439270862055195195650288179219974739526029756269401785117375712892425845875780402757111592285018682420030905008156038314963216693536869791266456592493845335414709786387950965458914777887688053816792461236778890389748818198528331668672406678458171216664825356893269203941755716707463746288441444819731914187159986006906398055433902466521329194829650279985681080444636202305071310054172127531980146850085838552905192557640932652759346456620421318011724288147754052819248861562514748106252055528337319394001041184343562158012912547565009087899621075901301492072825810252443897446313161817310891237459051642421846642635553298646168245880339774300613507543482963220534461288620867098508963470309249787217806754123977009381035809424967130228685261734734216584701469699322607268151029528445905738906496568586217628990934355039228276704087217794955950209488483224354002846004521220248022514881786149064257445579995602653961858031389209420627721639336541144206205838862339872266783794930300845465115455340047917114633311742313533261144428964947685048983006267679659626760441003099480130348461782180754221533326256844382586583007355066213254577407044049481477324787283830517560293995219016575590648332499235031686518573333269562085768505685095553399534079083791100771384398387240024357648239338039962294879286181185040402977764081516083540060408366371564799812722083262635348635471900383131418779539552272170482632237029833082221558518854310532252177009872191835114969804921454592197411417017621683270898023419173403918046179921035635086109173297831576903579454717488688101101890963076600877249692300286489208555988024951086604300076638745854439773586157264661738308387875507822383080172901532860527634873632074337004041110824657199048164353972457345227384458983748675070421065841383437309778392518600275242018283624528509767421920892059195534723157299157380690346892996952081964872645885951850725227403367541682573423545414618633170426486052257163205760040121217337612308004457408035450969947254426920733082477449779356406338627737819758511466305156678654977251071478523997473293855828679005988739910698570061166257966592743071287024672069124457148746082337635800593257397331355750796113384911803845514275477578743874718769648504733998724667402448374276916481510910965969850333617523545860604883926382442687476676930593504053367181676156999687476537145761180500611484032362039165537196038355618306738477629842570122426675579217677158712786156217839254772835864117287348433216220952992749561404289165845118242225489920113854349236161352455924714700948451339456526272851408026549413078446546586817564529484643322657263798938136985642816963641178936487554159658225924794356452355955789064005108178592454115889789808359715256962021433462645381789316632394486716260839540205677460632455158682209699851162618421385240735257865652531273652396780639566156449531667002889658526330793789485979434879867677793082593465227318035115719062989438697291606080828690370753655618676696614357704748612507407278441156062182517161894330235786200508761851452667543858029321279394378190526375626153845544326730327186814031168979561481800571538890878196491397361209718290628477311250059072972165374417732783818152095095569788339820039827362251128209737447734045441418041624817154363162766286980586474378965802813570068538946483704127468652459014234580360098199078966508265958404433676901200352034005504076713435103785937629697376605269875704733516005733605878818814000614794203720711011424139555928658848574549464615633320133159343654781469703874247531976184808969676924758101930108196729286893375691203953399960027205025048543372592565803171958594967784719924794654048265040443356030452152549276562204693896235553096082571350224711718996640498714291313006910610102598545893469201909088485839270499217895966214977678700025980456651757354732224492318562628254476220545898521334101755327438640807723092474112031052939049191700021137667130950861968176492135432401711309564369693388865471441900659743833824063100282306824736367315174321773866343681180262613074725822922447493062400092862100163387741806528524026439543760881146751252788789323683484382023661318163421660688874920371866335626673812197164050491679651099024486023605082251204967769811048733031506472600595790582998523444698807750881086905150146025161829441694504731651355517186230848693621950275493708346126380477614114389929799985394444230053825509792160913929008042919780982307247713878713474746190041290325887872008322457401070244946273363900227847564802306306320003757877572777683341461666561339310671481817522853361461400306318156601838119897106602900734800885863079610631625277345323659045494146464200274350602254391409119388141236629449696791884581722912508671161762928857182487208828946431603060121710471208668425127865830325429893242545598647341420562497514792962924770762836923695762124758123648083577004702279632207285753848531364438207705218955158190206005882148694999392092563478648529314283434857857029681608707514217357196663583369782888779838650466062139585098113978546111227453550250113057891462594502962051306561661329341301828098978440121035652510113737638421624537555716733523890832858026134006583437831759551641634830207796483666569425009387586261947117165462730865429421118624576458916596193444178101888810692227307782821681621628805022852904671332442799935495040580309300030768650583953342499212646232142769778689587173866816484106654791948943603026907948602856590194923197713308458619004970831990442188369868505866845515116725591418139778520453873384126827501958807418775692581275330327306732829724768404438597198894762264304909285246242642919372073859309559111322729480521806614799690032014812319648305446783664016907675016423174564641357103798555524417050520805167316392872782555175443635442850767996695090585200158258774113029294930808613159309730066935232155676956915420866506282699016903876350711783156547704113626643827591160373617452630419220996322306668723442057533284360257176207160506587162314851776226959817417278284768418558849982081922156911089431569929279771219746422269488488480787916993213699255109939850624777329410532368201111503055821250165624729612604247533313910742139231517367690859943091730526547425407575519263654649819853975235860138637809917017461825368223995465102335145156305760123298718923973996003990547019670731501544957448276470948136911563681911903463745673390647149408673662146199869287975058663753530114817945840962048682327154334058084602264311855651347583561284501777932508955564719716785784429176504998710970669610317478920881288618496202548273137842862533253649953616598477320941974145160336989874531366007883840229784723818947105350658984856432435566465064921675492469619620021557973240174565555225786246489723732021510609141521252442234698201903552199805025866805276148487451902504808390283684294319311949568747193888839950435357176645781829947495981026608946067836513934021667930720143910584894939467161358025420384970834047742800178896312894543974057745798838685862691754655651891029911495974216948184214924876621861647062614107124472813350107472027377240987422078804028286196111285014656171934246849063260261959506959661350088472355736163418092932596875326817674613999537205199587485967694260820402308807485155177465695875244645866579451043183225870959778321148422303923260048657646574816876652718855326844704888980547831010125869771158238618322608237751107395868352942735662897789495905004420261934517982795662137269749153950798333160810574087777157411340689407534727832629169619393368324734124011917232213122893070262295613331580391778970950562841001815565731724375253890239178114465786612157807511739608443318094613689714024538187750266286097161403418829301417525292125104004085803556904374108583902381351038887497346085792493865207669732806973470149812767676419452420421952201632499582671065950385456045914913413546812011285675378713199495967071327696314025140560948180532247186849319080538124730302970647586808646333355637522568219029935812794657798804886297832525187595937040904004177600652747118205177116967759748822483307255128306843679348654546866419580434183147893494364361479545157060949150596812201206561510954339643734788167438512533980463593026221627986006758544855836914595975993440421573793487898202352122423011927425446317570967641278307635444203877129131375456855131681129872902371574924228981616011326042449993677342867463534645122815876760686110710171332405824430423032249516258905287211468005601301704794210438948496849701193585200880225960502264147779074100192433488250914719274793408006432150663533995734627476733420368795177091404795383543829333928596848382855694689465812846922222068350263871404039261739863521000665166024762067290178891038086471730081238258042640908159492135125195833901177027288775647504826559860766107991398852759790149590517067963796971350519641532826858583580322691522574316742137640443970303243291365867936936032723270570418182567600012451245638194840708935001616755767561613311159838280199817799876127688631775551138248957773257514341090031806284222376065791849051483625211693936165755543284332514781211876282679859311955354776604845366979305270588648106787409620150520388357418978360861626994323974694616597370274310402919681634614971678362098016994014234756141832776560788504876541245005231940448835253990531137454090888607931983729398295620047886016395935745075249602357085131205262479195991042631297194956234529210191505010075544349732924424846213566687834353324072949228717871468027294887676806276848247153176619987740437327974824265667913532030623396614680389662477918447934428521843236281376092555331006162370519205984729428562486095529457951923417329495915048203799113286241405754403339290410088507204233941819559765039288501605164774216146548456077225322641238595914015064149611448245550522137555419072947206102609449978760138497680973386716004944852835882531060519253547018672238509011512822858929906375961763017935574394538326494648474521748626544284500182249799107659366693162338734747782939555024367739916026744198147145333765501033916030776773763025422758912501484325836972054020214558951979139917942950327478183666696618857707890368488349614605195330754030492552109930828489876175335476346423287638577687770992299008595984828418991252605927636176044679900572984740799950840303881466610536120203118788563519261278695078953222947432888143344221197624643617110147343284662226581067041764363883490263819690578415655271711929518185337169433156532810727778450409377468171872894501459590524427899675211182630212655132459551734970584301083669595669878328459593569723877994806577723557666689543212735962589595466237433183272782189672859115703726265617539375903837870595633062211304887377482617434159636009443721918947928273424465307923083136823214597352694735382007253841955688061513686138234541407902401468116469081431291769993191161166902727693552974745577718244623884758293925598983354762439800771414888638311393307382107542078875807381458320582978100363671970628072126776248127098688556283353514169210775867502435314289095570328000495876839905957158514989821250125834967881757244332473172373035810954784279006541974518483632350227408925933358574921928702821897518725666043429785463803583873186492300764649909729754756393425675912558465574724935833952772494060102476213072797052133338722310305983736390757798222840257012099496403890403214161527131798363909045805151940352275106790290423212250258966351065140475211091355120043543006271794426012634378694009079126705571107174165858333835521996221198093132516913956099901634237843322057927608646091182708540329324230100785326494636659363782718310360031109265081726875003249834619799177296726180263727535444513443483772971369500771614051529566754826926736729107106198562403895962282983096156806351876211236557238735608442870961639856470261972120186526414672948450187584830600489839389027853364006514769370981012851715933020008052959729793446122633880645138267245840063684918887190888277415623186664702335210285219863551121004704470961648395768553562798866794364251156593537600345915191511578575891945769157874966390447683171804643021651705346621053606002973176400896743638280764601390254209900565480766187413377279290579743432719240071238879749312585660720045161862013673562047300699314749930385089913365221931892393635555202564874058827449295313563756563142086921595421710588390733409051722826886491128656751779813044777195855588014738699070462385730348286019149265100724891145873359888110141442527576460037095795858350322867250946760862680996182986356587369873885802911826449524060666665434773081288722465627183069214697358194481502577908368237574640594768534589708280652835494557840159546666375214239825555601263773642434276440165068265050284754982477914618608061387572853484702778930578948493760315658668596836636745183692231698374443929792047457163250672047936283081216429750888894418930406707260864170696864380964522018303571617835049242201921992320915629313115581188821544396314155498024697813743165196629700853669532869957375839642864005823945772661943612640951379815061079947315133068416800239462498120542705781553921363918413915575096492175959619069918984049138947486824440924278088004939777146429369771226491424263511477596531763390492284082018969247611006181922846768195012169636799772319930834330536194851953772331231097414861838754327528890586768799276941911482953204386588588417023594261986637788566922599027646626132925439537890541054532061980476478795327112754354565905043259123294337797666246799464779342553239906649706727748385278295544731575404118010421185343958678114214840198664083184088854958187835306328034627039415753193966150915524579834963792385227627395292009299188678541779111747323663828063278603925819426187736591573389444396099864705641029672578215084907275685239239221767325295483390954786061793232027886292534146707634434433959909444956559711699479223345793147421052007043263361466886873954672255110981431626172427658816127564267619667676747621710675725757948504451981748634985294894117014414358715407597253483252526775665680990153593185609742378959304756605817788266462796722246310546770730146432004379361168281125837199250835988951787224501031416030412883151611071227271794368230664897868661114348476990668519631030178275767077327601446543118733193928558912335395143321914306670288124743077829920359142679630733402783667983608140026544351997948972706061006763720273895047497543492390502212257891423580387571871447484395568087819799327284056804702393531599076078611316780407344015807710869811292247942907583654743698953238057117568349284098563552650043750101461784103159595862238861844100340960725188444626280390453861832661621140401672623429289962041385402216632469521156666008189666378201942883170917474661796698675051575659720149955824123366919930426022652456965967092502034406240041484474613482316654476316579913643976358412357215883468471355433590506430594134843988492998168058792733893362966150012140020290080524684784003994088791048886146858865707990261619663062228416490450736894725487853084239668167432545866295923539599402942761097691830102877994120250439890077048727412849754225934014155299945514401093513821216542515023966711128815955010895557463598434866691859681087103342129994995354709893495465638462737865273710709684826074474626498917801178980239323588641571993338722205996807234377018358043494637624498651250345117162515113766184784583894674212373247448086304345217310394774843791245141240944282149911420681071669068033133762295338290599549817941303798750425893288229863955571844178090629326199756708157297439273164691940695105799072064491090226483660764691739318144322593692424007026962735830058968550982454464769669559848421564343978896544243103070358504273297717927641840713022413713669960022786026157145996076862853105118300908041203080160277602871317336501930199764841852365081155669197439755479787750351816043656325021039023407911000225478518088502324958798082264090027396514928255527926350910524565297498858360463465033002893079646116866158320632989186491980317975779935051950171854754268101265009324618377910487177330755327798329843777753785199613653983562386920247059399752940240113015617889709049684256711940543565247019625997744347745677395150996657958412028371144500145983611255557936441159236858507258763590348411057485397925546855865646839803367425328168072914876144019667714611616905096272387309685570213516099907034731823569862131608035015790252494351725734678659895591372722247777753002444610247727567094317359687936872917591770298232351077790146285086762463062686897342189472468810091638982993575806277170623992834766679998269544035163876602153374393123453319626480048259152788294348719657727816822111276219211685316207362185228411935228096601420803788155494503347261923393275126519754541584394798844461887998077337914839946916117023325727611215586573659308234056870263764620247944600920160709300255944102752480890775609977247195559067975938507960613316156570446541055175642313665744968528709047009806624310720611441499611947604817427281293931759676142493478896874465263658533440769691611796920515330437660706163564949226763347452152183220649016670358763983837764752414317452549978943611680245587517640967537871568196832043821126738488733508030847746045794550544838476471004768097813608297900184057649323844672892226762141161718049985979807631645157432486556256626616910041228458636204044036163007801100228091322753292332643380442395804856865233622420941899265214156983169627322766058862561543927686376464609753934452286048226310324363222550243203150342012499630294221486768495209592229531288031561188882400947279860980812688391275731115444490854982889703117465160732757827158017060563640000363788010074911398311495278817873933397229418105454742803729107414530525622482591730880893427985799625790074432713716112361303022129820062949088196093436118449141928595039430297623816988907855117553726963944235098430724538123603049234747492496385781016756068698928630910797314854112124556882034622961150939799206887680208730074828561777463260570886368903614611167517376158985377456867210878268427183809020937867407694132761626605327265485636036935065102397740702710578273257373915409698832820028881750299566162535962187292079813507117467755189951365934766041596494068751585347567564073412805427108436627649564066503100289695241428414286491761934759072360392872241901077590196238088963847933434422838466037506368216417213249257456344498248108125257927581915639462761677288301496546293285738700552035393066631729118997727530059210994346138520357726585773729168000772089350522967114702399035938244611421205779411709959132950283662163605966294941251685672046255025834406009812434910059603115380972656190088508277150973737972653579637289650604082268722392112079669535886192734152535042836921437543742567063045247703754049925391481027779815523497147135297650162593330468858035076007104071595974988602798071702984515723067890811965406708842362477767677926288958482386452653308612144820328326450593365417601763172746290489234065572579533517869646324549544167353742274911396176461834947124079883679967155941901651143536191441057485790047021683190882252458812343049739511294331428157716992528678792723692667373576568060900820718797995418651022014713198044756461765155079314482880612802559323092619313969889044346168741504894186928097175862585713209157766100060889599920506104266081852780660599857977510105577060245315789748205851647562172584579815334236355215145137470316613091838755402910004134055726350230067612728770916040733828895467418129084131264199061764927020920397101086574076127334977769420833241301261665348874199271847250141681274302220707730161355178241094346400104159859472703850329341492204764564961660778377814917313101777395389502042051937621836872123125302489203406465029199399712750301521026756888705784648657283118860447544544677961837867265048294264632028761511113408743716045930069476270504510691689694199761841604771235139974519813752099231873535213697418882930036576301104659759035360145540600754547305435622656204631191465063083148018576954175589690586525475898894915816710778769211060933057805756821885489345041600718133010659119077045937134877193516915206224108748177711133093257943189064449817910621428777118368322711435750977542590498541472773990327486396444195474309910429297512151188298975641661784991557823571606347299217031983429017505602430632085148204900318120636730573796662560549027553891577511252818093908876091891648855374112773374204855732879113447045008940448505722054940101728517200471376734559720014427086891310470082799814301915828163051717789882040236858968663940241894415595572925808751067343989298064893699737361843284484253460132838210149652313619953124070164462029425103356770213865983014336534627145935648307036530836014661578670818998263851756997406328175362299516881125406273648485748605032706106535463279987957435392015047656940911197849250571764048369436949933747911352749388663929419322460765454143083456565191625597974290261781944549135044064217116534854479909765742347663602291106870605389554709413539013263135550915427237354920531949016386672377789517056456407003603542860731958274769251909667699957534706967326895724326727044192717701265864711366891582450772297303761752364032476281290818577834165504054309655222960999009888906848268617065033955714151335012594847044284958247802501791501944053857107794325857960451973693349686775169126010714248797502242155633241081448471632434270035648619702642358733284517217767878298250858363028580253139691796719067093211678158194777102100909049890589554853679023206377199752604095908042792249412944551851329354714118927148762763573356685623920711974589098743880406268208832001792117692666246156745300799729777820349999291680819022835716213572350174711086908413069704911532098658229736479023767704241184692769005271205498258541255101501712335260796522698322240084767536800025845242408653384745681802748150388179154407500311304271231053344380355949696931854188448689672244137344283259351389505589276354801353085738434855175986968686883597180587563280435772898934719592964495021274355835967239332142495779716395412441902417851283242094528855264898621108414252339364504309504875006797833729673004125541136047696091766399113541614376460303875970535786346203673857606899885739970615744211692801002202529442938836628400827019508195635187930377316580886238396264981388231208368371355375356815579306911248300570660338389038222485738896603568845009938406004103932121542395570044076400201080049657139011783451499509204787516641371663571029412322727204416862910727769915610182553258263574047103327919009008519861148454372961545745075765494692418439477816983663172469242294343830462465164415375929925374216709170291257787414626402831615941531297371602530230044705963737317969447902672758607624577207837267778807638549053649622265429277808002442880099659097869648459703518050293189882906945641721636397251633983489953894411527014892164890062390547868316888731586038920166702412120587173744003991330426843117541966904526351162836164892697207240885956993818686430711965812820376364503422652969289259292517964442846750882235574838606283176585209829392874107175766155231107861610100011555372639592345737542823185005881676906694749740244104700123161296643965499976125938193463908865154612255700180933760976661259432695034953832055292794171075174574199856063221760905208046166144628953242114687178150980623948839792152185231034411854180636637845511239535999041798886376877893623326607304447523309148027269906090534822749680034982514498330815927879930248687469251980928253714659942537343595517526501618178990727190913042939900441899961607438467473684201763587608951462266789652136084237404707290063876246824475332442194493608381091570532968805661172111176916790648480339808288332379906820453275854293362525269353265513288142090004832145668751370187641845204943230134254749177963850961723721043118202731051045997388085900975425332691075204091054381905251864389559048097929438414918879579842430432805131492451881069153181506569309598282621905984444438769445982651841932220661254689462079930907426725631893201014773892176784671125913179340106234701256180339316231160906984185751222942289916928716067723286590495891918978884160124983220449330059050579621664801539732351386343592348859284009614510612305332874279880926554496531337853062840561992509485173759260618675769541929559999317856274514104952751242875541572410257773445565244599566032066191216346722155853414979811797849368103846119939854924249629680509971472717231012505537821832909879718501433842678137350979725158878995053768599562369461271331506449071129995858952374065968641113073901494654968728594135020150521474825243255372028520600105893425501625440494760525944863311173566873002979950528037767626390787481237176527555230828576382525339313221286575611229616553339102029714475333693800514769292063930134033599640141706553658867804655223446377128075830025498744989066335595829172438217225661559948472366954969114772576596871135513299355305093498662258338974675910509185683477764460584177011641638409689642971835304854219954987454345104098097010629961771311288411828158798512058698945939667722987020882818138802983152221856442146162856647268664330898359541855470032648803392720489356624335607907407307830136729783381392003476290303270707933296277869980947268921815087779652909697947386951668335675563045624414472938870250644022910317954669779233716593724733487385138974055639435502177863830753788725030101687229973908292559393170311520302306543170666584096741347803242615967185927029698029914324369900640452490858310305470464712079942098814505383838299938025009689842399322338319579033370982430781394907278084478821649418697034991811333247046568070541546219672063575238243412586205519114281809594510908202791029086181334351668905052467616327746353003051925914834687638183530854985184382352307071059152808227477950414809339773713323636021319488642143783895309667228251949963291545582359035222491947500330909478397581145776616685717195119705962628050134600369242549907572697020975788050563176131088928891246047823979825591458408794014852232749942449285526566802915458310089925565845484910912934367852575169653457734060122318281715502822869481148360753236241702634688938575100648013589428728651235699763898801289699273907876641362679301483223658712104411079080309290677530436342463328842017524319600697911382134062108422599252937543828714720458938997104284879032063105701230230409036925315380216113673104984522779250501554250260186651169976182561441113828037552628797649890598222608578531716051721638109532055575976474838790450143284232692545592892429666341394280486036931324007223556838105741025331453609848140813929772590748597930583261679280299792187999439142588139465206520339206314341727880930692796892827257644940260667189818871175954755700806052253439749504091778135948744533916998986625693579426766157827074631437878359586643701037452844804445314486601198054533022140723630281049675032248406241631233641935529266444652802684367997259536107919928036685377614721899301198978777981883266648431401667616823284703030671949735494673312845423587158188610070897800580592352263742237094522607565235253897321837472877428435945187744000776625390379618831883898895240506539134219714652754870650583330342375028430411389631886957057852601831248122368708634588520493347573199559550611540726145449408362489959695516321936539549861314790153406163198430882457232179210318925314819726006527212180147960205576674027911303345533212213761158568830035221544078088012985536858000118378925907281769976139811661355454059898346472989019507625488899335831997412938351268411557037320376914249725779567782163949146942615120382727231934980242793094553903804514174014506471027831235518608393027975140203589032993609014641089197460413807149434981887258797359487246127754288252108760282408978752710312127739844077253650570849113964244443930348362691452967941323742118414874917199795788694197713503081457304576922347585265142833888237956607292492898755902687614525178870774946452143846089930175593064879911557650439999936664046905503406475537141597688385758652543327136538905956421618560311398445039083770161160945650529380447599928085627771758871455640206213363605450226950610165589219525075594395894928089278186904494872405535461296533319671847118624624106559920363709106799996054158497862821407895859032411226500685604413704731465059085257546943189167039739099428118740205709509585464651222997916579180495335502639912035364633422123290364758872049546167222285882444486283670035100670730800721513537006480992194558593668781682413421959367384549329493295994513915499981422899761272197674670587016081201761002277486456334080640765551954849716545296110187156348788745337674637721218259004887001692157904245457014999406019882657193707620212617773929504995152677857563271479029003117401419825739481870427680754942384102509166815498456278608378518594253995388710773644953263548199168435846983641788900375204507913541083567333431262648498223915679705919166473492703249701000972191391362923938327164979173306364123927886633919450196799493610008363236915371235302377993051361294528455255404176019522022253271578632520086266072576258280107229778111689566312267708419801591187462128015536498478241242764520144505725623985780401323322071600289367649514623250918477694658133388581705526002763222773352400688493628782097908592117061439728572357987741944917443994934963911147432109805311714422483466652190660774219442028727412036047915146059001714775104582974260689355642938653911689415534575510808516686336563897316529244421622598802062232407284182510744839057735908044811922122646736656425257712197109693496520268151067130285198190342839556680714867949396150367792152335376363358760204660137657558660006069143790573790848933114182750065225877333936668611383503303509542977920420260590113656134498502737364766170075264293645400561366824034641611023570176091640065468851823401274210689026870758444700259107733370452020135771613051245566814704828289382360456241466458673019975567037925635284494337124402678329032699261230590190656156049804472391203043347515245479865953083284942988073338050698993883355433950506669368813091623102704543575354599780383125270595116178663391848394126086686078500452235087936934451154703168482169851767173918117151286934661926614402404555976130006246011887038627572736616020966360686773883830337566057232772191691603924389350086439006097438884480061929543592769298828173043776581563378965131568119498185537017346287586438301237377184246392899529372417104494531474091790271496183417396730861792819175193109619361177693164566057842491334444909259016680311251968085338278546957659803163921449938301969846307896789487309497277101146611294230956782032609026499068296024626888827113358744832706537687101371119904390468699502273243909929811842363197487173228794159671693814987320336639517793092863635985220414847040417650319049676410123116212459984860475846958647567942085176673347617133284327452704230492065591024382068319120169704281031084418953226823643988409856913453949426209650261870388044744434320708302591881998268829675094913398023431514726288609394267602124561005310428908809909961502199420339335519247998527736180944463780739352068747047752183937988022270385147495584244326422617527998344634348674448588125039993391422570680519495881253053181383052795908774695968338248726277868792010652108363373793586153459005790071213823756413039729405523503654009380820045178432533998274955398751482597089180910869814504985605868469995250356325611589213142432746289883395024973560159690456708563939976966980503839280186282423288895074944904306028449633547957699690133910082966270572660821913841851262944574939936320544280168201473677853060054685051300806225501560325624401648796615891576867105395878569206696943143965174413856757192125457319218049542532475375893396869460318376619022826487424092966727281009177420511670075864699772312542867491133862911155503491401198144264782541187954180839774506204807611426735671728120635469542800678143583676361346535032242931506953616206046408382774247898199426897213152844524034335500752564735765208671412494623230476365024269670209645426759653248683306661381408357151841347331149561044711803827650939101926740962393662471141838781737549835120054212511481489856269777030638852193891729995301527610448072439245934096925361852987552097473124912700877661265283117532494057725759848278397892627004122289799555139024232384612279253800545994250074139159155816954570473212527679506641124080773868301518444487033485388198224065339102569350725811267739170282439004382769111700291929648274955268786296476227523066104184353370968849410994532640548564362507583532309120105710825257879962477666607892825959457630570316869215178770772044331892217090062901334651826249572229915154809984230127423544791165541094696306410884593186211227803704183076677781226431773308675680594260933070398834088232852516733257120903732140725222070215373878032960494717207765353765308895052925591563546124755435357970923188138391549391298638433269484761627782821217307423733410142211857853625374412337072498906663962664455555645619706894921998099697893686196039064986791555466932096178984703949038201933547808138522226350602387348305816363522905175134851362226817234051824060197933201988090964863476020360143924743779564855323439279959651787584129137173521747030896470183259828928693275812265212625472905002608760397104998905325669800806385988167879080185453873007495738297071208680916006875066614480202172714126782722243330549736615363822016789367814513500924101306339018857408539327139584760199715611168216235788576820675343904929096517566892390351918904965690364240012569524790780840483036040179763595337700759987100948206379960400790856228700256655533521549984765932186684395755093553417858991541562055087582400704405208536415305630252134056121039136084845116390222802700860352719761910629871025688098994615265915698060117795990227801071216769239949511222129520453298344787147833167052363975820603897900164044274962992772706512953420975018517833995315526947643172180504351174205539242867915972128704372973598715460968630126032355207287552078343840780019934646904866427183347954274678723951406485387839228673652436190249300307464901967607694382234946197409060708782032132686221625069468970140141094657964078486473554740443238237219123366659944680834734573057466276772725435721342594112719333493145675117103506735951314618209983675910856717524645182555888135524817479494517946207123854461574773279368421577383261520427978918533963240026392116667951057417894486537836914850031537883490270374431395724863329376738061104520063435077434571564021330304751060698684345475019009669148271309007377890546391923447026520964944711055172861230986324282486322177117386496456989273036990982876598857080698610131900721596535712047332909987013344715277610222764465846202363307917866521130984161564672191139023712738171291229040250469075139919972584113234932171171991663523741749775478130096013495614441770090968214640616013287225087195554427357147133711727592354533729072781316598641509512270336542018968822728231699854862718485816829263421820365055810082402031445412669923139361844143832591459202942906309163862726779924779184511162829938299722548523524485648200624768426817668391832802430890867524106678490422514933538051467231348022968129650047093256506206222120959509066503245199600849954018965547694628267212383727988896242751889722131127827966297805635402149307092788026039665391477373261537229105673853244038961472618821112854734712123733785416784643408476299148657205909117766820220586080333947572297373903468931493419024311549162762780085502103017774080807363085925784970773515913268893100331702002252680847241156309978764860433172070956489221417744770473774544067875977028239253968594630847140600799311735318322253509460165389086297895232262236763511670920768572871159938687658507451524397204813025038896658529104546790369047651063770611803226317358262223860403894428624230457746353236482591917284839349601480156936948224873522254753687364137189658073844858121488525892107644486911915806896477985480776747719491502928749290987514142390429670286385847039523670236413749412044083540527240426660955537784503461061443758385448615427030485101414504058269729006030791032356934735278748549654491438402580315032443026222046806456303573206175552437295545998084164690134953368954375714867079815652021683188787360357663827868531211500872906446961106807977653167700288132517543134454657209301404080986938876932704707852149646238142337771456410752562128085837121887959584527167463532737668652091620123923836294989029534219480465407774629609466541624408288342971414737554738126165699606540392461405350054463401355061703678339448640870699199863627567397248733249047806054599916535798877563326413528903383475036917996217858914341699499759694610762050305546074899835672105215605618618531143319853159653876884026612179980135148349116107411174240953402863258552503969894187017974461860683868258278308586859695290703191801750022197873495088058335372132287305945565149635275074367265947781518003173987100268863123113356910419232631295599492486411670940917980266771764307530899278735690277847797875309196252572237396857066622725335859387603876149216111228528028845125334385550076312159135535951416851580642465336507894277539301853183969618921407182553041066140452009629624348462589065906545255158138109275508905338924557802475268491261237670159902212778030391350063824390981837352296840940170833731262586452347413894212893118983581964137616234245641702919137787730258543787021288858803641628701582173095102136233216363151009611383959889564445099523995964747568714346976880519809513397505750491575679871504473657195279231503158570736050277954846651151141523188947108817796084811687000893422072381649286626242586423626987505093687862677930163985368318264615840839573444092777342406970684793834540114770838432340094744616857607438367363017801887605926784333064943009346168514856762562847646119087949103473095556003492631514901338760805101077626223286155151820879967633892080278104608205709857806006577072743519860015822359903200727029295279687271913445694157380017596591843154024153600977098082193620064071004755602685627366689103730280889138497856564352737550060012993363486009630362343585521368427547063171353870865206662175841948589219210842171243502880828659471063563128263285687032191497710354398770795257943931302730484918634163428030641721213732674723816939703272957560837135633951288925202046870750438584456160617343537034900258639411254494355765075797370800915784615748356946924851668652392798288592066157788441120520467994775556967691217019370254972838391405450927939479978679726834010068572872593177069529943216093833192735302929799934678703649621907113027732516278067834622669269243135499424255231077432760017177791808091086694222498294011598720591555039668620814894641657409862252054911830518920865646221275563648521581920417694076410665244278828875141653528439201296792289669188533704274373058622311719874589462349535117070775305980277966063736882710084130437725086524463112542005018610272487812429109783162149978476207843520630055622539913247252695552141031240120743933187359080554831217501902477329832973768224052181679045355157785790689819806549009602628724019635797352202401094220385691268259078064232661440919749346898768825040013992925924080913260641429089577985555959601522438457268024462984809573730570648441985954777633978454708550732186256381113939238396716433086573212135521649713529921906578836321302414862266895940075183592810597352110769782361707876802300975296815381412913740546685374918280534630278004769910267668644261773953614718211417666713992592229570870270475991846018806764847882030177351090684397804822731530571912704972146584418178514563635923555878640760306828870128638953739570572006766738750863992938108271069160265138326541354133561039553091833632566007670311961528491959544631813248119520039486745706077669502680661141299884281375785679122234740645311221947605509200520164772808457687626943308350342970789292279603140552090044134083664005717519146034883418044224032400919581165354658167137245354983086664627218589661044520810661150649839659770642854914351156700788649858915527681088035017266815723658285278983487590109989173749212792358979909233323189593189233442961375057349733984066214468873732004949020889872589087264066575307519933430326754005264174439918903189397108042422706429312950858297525776666671021294318885521226760400191036840202994151524499713431349071760298545363985440571432932358747545353905897682092137328687550889945306679989454285297990784794755617643837079602949798997717848976330525440537353343242992130507992542919148705950505623418073769575623339958637834132748709061751219441916809911677542541076409187598028336963782397767084044605137683189967609148761294570372879877384044499356236535828461193136116150153551749755365386153086783546811100613393286916582716565650886890845656212869887079522769050972773431916111387423575668654413915219417783514173310978649777856653615980010039409961980340774443959609889035552169847683405704249738556525189477122526009138291090723540809533166585317724561393026131560133885175738655901974753827024343980384360071404605162576127913639660084358368757051610396622964055523541477190343801270311503916231675053187875492237869899264156971636683320889612460731844266851439338669075327394129251616460709542322975879413922499488531124648998092685177407591386441730027400971127488692781778747299651970279084755597766909629617357707966898755686922162689172240621108010847515494492615626199544464905566182174273002793913454112076697020260831547315302648620816060887637647448431182243789102879510052641313239565222830183421910636626537850134857572583565180315961368609243793457414621922087845928566541643363053907951719701466292901113596377457750449360429392869808591305541440878153751892700761597316068192074881613328222747294823817816729600355599381234511353133293768937876926729412081981228551433819579072939724769150373926008754417484228958220965588951521541170129444880116840923427494799092481604943934754113527961088372656960381925690659217536839044863809853298482318671837526320502401940593509976310280017743412997915131811011864009056946884707097212936761571161617793866852273871869215894427762379563113549643185827233035057922790893476390918873204287967280205492577030760263419927800854313542665897062819834720436229721137289583914239349836439694826117723260548894850071387733627456164461313083223809134186376380376038821681306084998654149449730030771421543157685404715971431393272846165912385037635247825247842741039570449619665473252027893978805441179668650544606835994966416893923286425017834088334239268257735533103207540804282406274766947657718561495459042931027738342420121852908384310076637555067517824471739119312356823310294715332834990426240526363001063617407023292650166132624752491993068877170491782312550061155956211753947651150479325205249842404123779213876705734913197968894646377955881081650022036192351258398866549257032798392786605009867892837133097579476913905273854603995862418427806706504358050238914258263589852775424627756079293827551117347544278657894681898053510719700240045102810205523272050170432144173228986828773877164279694333519676505494931153094516499327941113863748774249197369976378418220701246115201322469838764078224764087440667048881475435615870531406731401999626624385063828025403280749012557879750250932272008155220881042985042152096187711878805794751754308648457666106830707146218113485358213950231748259171173554790655119243910004383522071484963222411959549758068047297062287757424950843647861491354793190767542303541844860364155472470804542801667251441596499891291687969995817666119169818569015623378564390413660629446192781794855213381528024931536805527992080170815699578262458699373345011235695783683075238574566288930936937528828936670683108272008917730312007939965172124814795721667619767650193158905478847556106027407420877924655109496773357568985421855803386715919847711827111717779551511356099607342122335185568060076044741936215877874773707097688808908941600853453045085814899454546760630242650329595332678604738684877951229667149399428045735914889501265779165521304719218086543251662758977595417843311593706638055761448836915137045348396251182832303077098126577749933435023712327712678107810496045935065080123712907942826000048425727440525950127263341716204170794035705236440745561811969630160712518089003828778595942100386611987773161754746321000300979262304272866312138222089496031102230965524523775418983032859293386350993795154366991055209144106977218454512815149182247448796593290856376530716871639509647647456888664706892635198281807496845040500476708388602752806684898276623515191711336118697136035850374279022753540906212293653345613372373809345837447260123716629483873369177345756558111215111916272743366373005378962770069490352515355312754555390935512847712969754149031836618979840148984255615354392324608618886669298571984802572009430181128350931235893810598088311699625930836751030033872213858653042604184669190694037809965718179491215385160307525417376774522732153886273829212937920596512779553605645363106588920563618531001008847459888246052371455646659568209480014917197565537381971417630069478787733761570494877429986685891702518672686239323145848816178563280290291457273273681338963026838896330682754129799274083229859904652370256622141885599669915661004489023530471979740420721246616468323001808942380343328609983508427262186005673205652176943282299593147384130161338633043761838417300921360684046956474424956119248245905228764742646165889696239027833815338610003362465318854570859153759475145647420155434261854829498937727123305811935360157061749604546115755751158559802528031376290943252130048777394610113230731213202531880910206576898727579675320020707569219926832981263156309186480487529025260549016777895105974453435238226898329740259551912085006673728525335418485326433754582359739095034706448517480442806128582596698703695176285620272449817000500270158085151698244491628390181056025392635843481630187319823890235361406504836877740436665516548889822363772846416640918386704186030477122762662674091028414538156445496823764239892500644438659067799590343333489306130551797906769520359571101863187801108180351027044289878710880632949593254790831052071246926621808252988771145717609391899884519704182357096398010417275448982461965510706498210125693485174932574837670958478241512971957839750525390671015452324450203495463640136957164567240270804420983153775064226512290813774141258268898848498181420006006228113118632419223897326256928956066926193264599528577209084628327611172741811024140075730645577752035636407786013698343338057313429330389468833585237338077762091502487053039918482046329315863762222361582121946682990359256597974812391701367330504655888716348414877060328721014237858733236243214943460477095626169371611161290097164347410297554149722110030125828805932899920907059241624890348474524183052015322739758735762867574306506287188169438684091389259559899183384855574472020107447245723066277345118366254896524236747938911082579390148138613949417243437246780376694146282595677203939114808649577064882067313987334206863039753145738662685496918689128622019543151959169419365008923503036177412572781693700085845130653271945363484935508640066467136859201818886464405311740206883574122170728551720223160120841116230868887288167978578319794994024532507196215807188544205210801919860308100964700284243531127313856302019083622686175870757686694852810406458103465056492746782150208983555829467268323566275084966897048427322698598886092619814086833175713325609991515986844018746209722841558224522445479029023384986382342908521077870511063584723860510033656928982253071312529246104680718784387766899311178905056341435678108229230951233640799713100073619386194333924124368931524997894111653382798453717263455306472795436393661291212123930414414271140905121290687149647760811547507307544265812622291616572829707596985024451159095266517906694381777233255596505013465778449900431030494615383363631689339488335244027241661171474747125700229244094409263458446419834146245223804685515815537195260610663539702487535712111685248336412315803705758343276771575009113899162267621122452895723306161795037303843410962793715899685824782864417480315128242794644425344685815297928080548334581820591800086300855920234718238760668284882017444441089904722980907097101620391261594053419876775327110047651726241689535702809251455666543555640542228558581344783661245105611358821358096756272579083165576113347703278750186011946932973688129216564486358312419928580563648255031669129356103191134511293570947808950665014489547670699282272898809604070291075722201767753214361110441649246162568874641305658596946144288812370577575871062832796234079135995733363997437836520849902888214263410567712046865510166198267102118214370001586273762007760462058091105649749395038265336597944431607588835120773026170940454708862888889799713700610178164891246398748288826063022436116437057398926400678650059727956818530503564474951645967712961990888868850770133160699796317000260128569238369828429944683844039904157402212210847155068020064195218651745792210145489928819107272418718545733192622539259961806513558986484068150445843790033036443206113187683349097984488465338729039057216242037468919379309073368525953604070000336657849934895716753399987084133352755511452951262585405967621996888346463930317357721962155094967749086942300946596260445085661813611213089898327497242317828215415352549323540334075370718715486386718938835619208159718069782458902302269974659273537106441526363496229926032710862424615468506051030242505773939314113194614060164431070971823370914216307768082616314782505504390980705045914272007589881942182025587611960724194368602740080434936775171113394167029741067838339193976933941902205420030735901845468331029165941032254172392941936068107670962956428632822897405461449011383065911785462880799058076994180820558509889116146791353847063948669898139869175634045816864005438861229435970950629784668875101836509091457649257230243710264844327303640631071831830684709632781500607026301872966258285887598670179406741270588208854438609177981268155789916122432632061757606859569794728058459635666298622353613872293453318915744817178832697315711273490249491029757051042545608863860499042182064280568423910571869133117327447662028289907100793017111638342565669089702969178364820774700354784797165895516166218380825819136018559404181682324860306622993050590998655079033563421367623925529577626073712999227692503850547224166522262645774837805308466728577459898757244793595140681503646422993265863589916967353906125160158802730659578347305627860274784032449183759965483555618018063161007388662816148803866313597905115755148718696351878651252308398872895680269188826346667910083396489539060023535343893541923573875858483526994560591256668609404640896329830821760578360285000314172869103409405923993356386861667828400979132361824026087416826506789134106955203869698578620177187371694850918867950078163810303964989106124291612101928231213473584059392353456873995717103959394387866337932543719850383861019079029209092305975349830442529879367848569714593100583833701309714501337648288285740066342226479024385904345561943983541527541908561304100544788306199767968506337583665590792579745244559825162688687136865400920952260112832425805496586145186589652473647754242726606515366543329362813462265202214777182825640264869125289894138351650489409330039665655359316037444125648571766522331732088960634886075280667329220150337179779651842328159012033219941949855911282376874087648442572774708406889434950607124514466425389017362912438916440741194972596299056115344541974862320556883841783137657926304093374000092165408207189383287949356284598855501885678618159685251009948721421627290206953553994354900673837225392168802104631394238540702474698440628808645389077957743403870958720643134138619146051500586006180838609936777182450648820151679989936945130362440105743482846069359523498141142951956064467729844325773398324726481750934301079127052121254995649290546896526224957012136101731399198167629791419154561433824251271927803430418346222506048902107262132417387483347493699496815190776900047721060836229290028558570514751384916050592352466737985445362067707150866290178525956072704955957134150737073518395878124970490901951928413445280326859066331554042733893439855484757681066587734999695534858794577563600993087397698084698007845064439479835636266108531469846879746881491669543604391015956477059736656901882586695583420715846416665764978676789171432950789919686227421928909917337715293639655871627638062652002106277605677303592694154823903629743996311430475597833070137440834678719655473701015869086481639052704879370145320210153236369416255652623203507891505235460475558459248793524500510596680128244722160499359616399469821447671250958617977721273872856050521297245941293892068192365212771646081252141643521635056642967122201564966804636261133755075301186783859942812233029100518756301686631866338822933334764698565426349774610160137768761574380808885032054008899644746780380961342566594886101728371820255959993941514312178747411130164047695546352211426934746450257360098541654000726099561346721821311383279126281817869231058528993646614143685727936851928476085440714904953328835914248042867961567175065309282512678927368513487497203512937419113318598176983746532890218186147135859892271884513767987366768661231607814847008582000434911888531298746695923498645795677688936319860783678836193713069062337280706057824464072936068832548266488443527505083628585823294031354223413399645354318005129595861791246798402679790534981322828275920531434221373941876185480352645630712419290458924360255240264380779477563319563619251451302765204776914731819353874718277289014891474649471786801625135305480986840047877234470339974655028263848776341571220598799712484267103637387353051010428652962169158884326931286894772451178818224258374382348550195453657417060679705187497508388719706602850680684535459567837488782450730259928103492123092247289905015186400647470897923424614549541690894292421176965186294019057112463120518344479603044540488925544128030254380306976694423418164457545500942936508515231665465999383748247038416739528445799124214351840007767941075623217414946891126029421190069672344020103662565956261953748783429735374344292084012455984879421346158382738925623746453904392273480892730131504654919094565206982827599246835867784560120493474067955326685220834919564351124800495287831461106408820779923799748581861800792877097195634106353443146222489943495083814240063543597084934595162857681698060390969061470699878488189742436653117191435515809090151215128179397095125524211586713744578576200402968814785501353086508975856684393281057489093608780729400514241440562169815774711832743091159672657217324624426313215724501841870216363420345259257867773054660995762507330115204583363049170072856383562817169167554275995676967874268714993673987920348652631013907686280268716644802154076702136890492977724637000081369021703403784973491364633181864149465147000568474100484792014453792509007702691357877370648114411214946700045869644240487734780932377734064580866700099423237589913569930424009953374393436886273812244853591825657114907920920837594187967578499460081517932634571640861852949176361637777201032042506657325907043334855297974058572656754741153886827612831128473047835298881752642566138153297268396662599309982977981158282369089910755300711834961996012798162168871092898820434063308696540749673354736291146779972587713872171141131962506427811156000717506273739873617483776267332897856732295091552718049307468542488482960011856510741452590803036536975847579308584955019003200938417188800712968967385701269874453138628407646055888722106196254522273446793462958131252136864271001734204403028648215263000391195819228999898109758517398102945760195830631965533659372784945950227890671051635941023662966349600880912151771244971120536492016120902776150520097951233911860730476576342772020474673892695652353185837845201906736302984430532072049828382096035664251384541676138013419670033999005283482001586506278012175561770848442401406854218537769921525134835778056896336809586433720539782837660500198215692818193249796746934683180676949204943963674051636432646620019816208980991104436065547446462332145318198292564592688142625680204955570721137761248448594456109584569132240459597011940701412904194842785702890611831689084214477602924807313125840636205931309264015729664513540599615350681779454772275576825792292318903168732611796980396413952079846006489551549172011314353206261146598793603857940334505326904627796539337869612264031473649216540522220535241542269585117986738110632045008060719145552968483909670880951364637864497556451251533462028815207860840351011136944913350457970324469244815948215157944015183667892603501605599589015889720258000725696605184880681740220511475621044498557921375136119309415005734228409001964507292956446922667712497771415417325224206478746413150927983549652503354732786605514038424795929945843094655426411800998707519958757788346561182176756875234205402465399855499833608252218205070333751973960919775050809691151004388072109295319804782833830743929264877170760000264428614853646069657729027076656611343633291088938762237269349401213524532558794081890814960029577845938207974624227069839391110988194630122608504947164164574577495741878417774515130790661548309738145442370236715584321807306490992982814277080006437778500288989810977698870640019327551310242073935314242893333330114381164271886359298693742832519529640442527668385474998583243977522903691928011512668155254290630573731525776455731189885367719786364788645234561397732904751101510779090584066878524119918395840356463733571382558281028146219186328004531435830124028886680996827645609204450516877832507315492739495513070043103763415905655495362495490986795357981940801827123863037912264960664977720858082962839172436967248705174520985825514865613736857507553683008443392133456655314124142639264974971149323785425392406243586065139916543028337043224000162888765968001213737478449045044541834766354238138473468991405928183102690138276250324448871754641292157991304880659970364320099933962939554536890121327192711206180709186275563749489917911711913289746517356520956103635597051658353133564996508310934534515463764966774932461404993576022473000337591617878776655311404883724725043663139604231957329008423857293795164318320741876625851207172632465695055401070685302675844329732354702442490568232722437757544255555069279671813438311216547308376217927238754623515318984156532095362121082676991084042402870946185968511694902234333687658569596406190520610366517093825695882173441021665593419656942605944517690474836489185763794362750997361650049637919563565041354220634544173485020068812419188212654545656819132871970070019468042030760257428536156021006751334606218475074444017260084114583439204668902548256248997789923935621693109926626738242396811734938251722853967380812806102495923463647193125856851136799668864684773120460256252035723967175782995925129035989931963684899706328802049920270228588626846230372799758834746266876813068095126669975884470069791971211460453856026286823542285815022210030270826114289004185388382323181438806511414859588766572226896599110294676329042670098292427632853405113765662650418116115895662560628856813764092434630628567919866349005534225419833769220593177930139498891373963373434197413831674079138673817463078282080088316365027078366504275174957240409271143498799691494663209077186357737796768154626508343981988151702223594556159573159497074848904804698241237782568861200165431337700857915026943957807426045443048713325409123380454058644462339135641379655580447254424646487909579164353307353441350119702277158507878111941164517752554976610581048826668830285822975829788744350141389751221155758865638227310021452357118465320921220706527790633306641460128291419393161953146882227164333335936922383603236558545443881881476634271927604544937867612479388667912557258519747284454223080223056082532939103255941262073542880658745210145531978694629665403092736370387163248418589366518122896179141394820139264626281323247136747885663512087833834059969826541845402814279200832207391389307515491731224237269511346044619287884963951778072580123816730459843900614496423002646832514500009417676667345293562054720250346071483795092672023268187183369444305192916752812233954256396933716118433062216860709310846324711762591879729292066090648517970270550789162457428746813413542977941768962231424558652990817184667806030420337981382447940499058047749844557761029156636918550291479915724200656938439406343227289128797282192016511303567973531565341052949176673143028964071908400170619322721399112292887948850929401712485387731061408058925888143938015504289414519138882469154090240462545009615231524811734301234924485845869212923845978381012811341078505967822527579610719907151304964374566027046904138634327279501798790482161378267428938337327926754062315381104763753929139613621970994737842388669283263061659563144369106336038793966062271153145171428937111747803721438407326499059828476485078049040100164039633576899655132377695173551126165189548350870943879360280216994197664487777999420575449539617706203057556932256218726246313977871408593120924127672342562187319846182954438276103528483884329474467799150164973654259763204139979982426885040744243042467131344680102710830518488715858096997054371766645079665837930274136875054294422650205541595080803554990273033951587600184453772773454606256814943090810974475788196793899561560204906967667682012395076374480751072719748509442579062867791424664617484701009411348134470546647134650334961186793030873705308042796537232222647432709465934610008318053833876125383283775700696652771522979012870771500906022568955999812428282190590797991343142247273533214586425685498054794060836933459742233783265988904353632654820831498629815589333333360749613058613248851785861846796691717890922969692869812459931936978886559029409147939608949158161116663576231461830304846037706370315792030641737093236324890537179768211270852766174723539619057039472030849499236519400960032834014613628781282001950185479689761505845020965736587408225955965749454383088655897093725510920421005288603128942605673368173980257891774895503273527665502668984084610757314392137203540450377117553766818497974862996476258823821589387134327234394264884904612945241009297051788779269079777010774706330783851526187479602294571161707224147507835651733996215659496813615581180428600986803278009308715878025004633657436572223969874230785610283167889296584821254370703474892189286942790294836920795763247578669132978554222381403133073808508400812956292167003814121680777978104383211354475104075313235189604338959672799263261445435519646653058962410498529236823136455957519528704767274717639771881045649125592076009592735902564821276915419111948856105007441373367359395760812840078136924977646214298314566063076053719736078627441529059547063805417747681791608422227160447154092892565866916530712093016172411803453324470036665011555300531958119863364355141609410996690627269696537885130113630406257781644101881463379836642305289729723401281628800954218955548813789144934874146848588228223020138610066676917972487928940128653300875322081482783627951326815500084785222263602630794951494819060314651039876452363139780665483128923608665117134114987525393468526741823853173302793981681737078682016374796054597570821077520316133916461815613855132932554135295360250146368161278943286273755759568209805449694949292067453839600291305131842953963283007365096583629342047957043688643204814675528719896226984335573777282574533500008836875224807048945663860278128721419923489582402236018061150342811610830952398473948253033486300494161696415839720382956385751313983790735484114482401424406698905183886549608269885242567440942756554548810076565132030031258926854020600597279387608263764618226247308722517431324710719441631790387675270100962181173051300733468575185568249650655895188360552720177266322811288173085010382138629581531014726377325219006687917815373206467106341573684995327243114568667029864818435982287383069513880858102678531254798146153299291747067770111360170387062246827678938144144096616587411501146053759254691547002115506689728443427660966685495065677426944925276808794468253551076205671450122301580089920679824848639946018732154613656642072604669944023202886902320673927189782229028547680392397664874884188836722026411282587830986812632893478718668566021907734187227918067629952387500123288095557077812581651771423812017790069692275385483257785460191854449286740796367421437512242908729811216209752656802362173773300785038917705378742120423414163309464889543689982505272258014101495294129719697938805975641933993386466801980297617820412163897182851722226730115519486214303565482200860554267661630040886116282020399988295437227209876658105936151387075811472266696423233803584169394900347325902847787324565321573700869921408029457084040944570343637072747342623564732676926528022769344738120180685392068829118596881885431202479168582452518748741801058592342857095887622634368708080939137414541308792268737607742224051056721644843437360397323111771050177404680401501844017393918194595805708445070743455619155786374731955168694616777036291534031966331598741830127710094311811175660918548415085298888349971683842777848966990454236864574058068303991378722493751870782521325867047133592537556809477591028633104615782703209496868096657361357032737386777232858959672776037228026796852488707424815393013083687223436079026775550974658046578070496988907317889673308844300017313781807114312318763206336865467274990833540896530838469634369311651418577919842255089338237491347777398136754569368767138711341227302073150226039472797490015492319070156522257154963348793297336019131827095020491381149171927960274198682222903422055006831882342005279124449019657134980227403818072370938265992978627501665962908097946112455995357017982241474894167233026961797789541401643734544929988211314923980753956084685212733238643193503276335601367464279331676963699443109193419598960674106419871438426014479188251214672552172667264194443515543002823456164751320808752654747583517621623655742798729032047688734852059179863414150802028825298015320594893459055529274908218216616845931007238741748205242416446634948493176492134371955116809902389162576508869270120949948695279011954092805086303199847588490260405313368209022044242612625480662548615253399331336031152110469197687237281745997085415227860195784533422937967036599561963610875988839442649784075445658719658846672500007904288371950519718195329447569467271991937882454533028091935508908811619740646416050618839132585995751626051505772871202905077510706230695276421541822286200628199656673282505789059132924902712452054817156946515022051213403996875182183948213767755111491344890715041203045018336168327954423963478949204645319895394526503796402896284143972288115367244596596749556315822547290198162571004782632849070664238752496192935290217564857290589998487634345381088152658152266162940575061408136682152808083776866340848396214243161664663054152782727428185233377592018980699667788874276597273591612358852734393176908901220863665997573676327327588475439950399434607843166094514609299360472115619095358365468360267854655210057203928629198807765884066457905280182137519639065525834907331893091429711504604142323591695999100031864818280426487392510304647780394273500978181720963646442326787900354006596721966581794301661489741723670960606840783238270893807357795636783199934828212136598938416163948294150451624092599173104255370152957709091633942560501737488111525214714297973767705660988369065798943312180517172711681647095520369829914807708540498580758506949336041129090856311714179399864793892821871947322372987751874043317916686874052877235606567493202239963497526193613639431144919503074227058715558200186208987945336035593254482135926014597499452941249380319725912521467975793006716168300052869371750604269825448485374542451639298942651053736709122488893803104557639861727953966836022211848569817013372853185736484586319943775451641701918456950631126886249151975569608303199630725012652862411983467801432724152326898868824468003198989401053828378412320895927521706265478516557749846880696094392244272735123797950774824703227133034995005982340960117393327492196458964829499864703477214924673439882088147299664585928828305811626673156091542423518790769082840208579570219844464046044191589660833064547964324803955219617449310480420973620160403875431332581898242643655337835870935046283334997462448785641812936499967979512629371864101097754789934538205974523340506231673079954256279452740097944328627393696032056485576544120783591294341564503488036574206388815184488718286520392689478082777180876339113512643612717654572401203433233669839713286609607392578642748903044570880137981097543642385836632479913011041757058361448199306135675239625949322895008806987520035135128444770388049884007257517719938918063398815563927250391172729854594051558569864915389011750975132863474660710038443659100522622368790754539358582240778926763110254583231285440909505231692158691315056821428868415007886742347874419972721437750249384664165526830345091974005279505197257859501653239623094891686610279191144063458181352702654601520666808312646856672167774020436621471412303018413468285145042858012480964822603337676976759533764611961586682118368198083937287173128301822601101933932245161241955008054848787374123345020500374292755569831027431293316972959275928526552256811680664124036708377421863677671494259782013823707774920220211850721965530365152514338361715269194708030504730474850110967527000516811303961574094416189610044805465471437027273074241765572568250385732367967694192515125891738927784965531251884273450178973472458395866700266882697472157109251220738643687951850339403172216743316107137479375891142867716433107358798874141951060137646125361672264719080537448376374418939283019151838281835533486152242240824614633742891883177184598702533474464518683059389141338153132147256942490108211656292057195124272556476031900590530523376949689859083559960243568730552280627383951673876450435728586674909246917966578368124820725239043996942112703540224089726542390669891347040754134558766085910102215280324364886482584321515248653793013704889203138683536753091861590083814599778738811565222903846178239999136978322573813063450089454679581097668387490749213537563269208578696483572636594945153697143968420666161287641038799135797422596775451307258549263450308444325237917588484979720990960832206409118865065658015402892633516813123068508488193780910928699629731650754156775286457370072885099426793086481109586909194575459450508978437525978658288570231099264915645048244582006012104281146168212468072750923762076267479631350543375966163698244608150218708907215113084218005029239188923482355927055083921037749036706954932335551707302021505845905133947696112490316169344865763360887863674950369749920000913830158219764114603616178300822202433972521225388507025794478013765731720784519472058116384753709508596211659881662580317650160261474489726339259686383854746457558898050047872133556689827093383160810058088800738436450666399249097330284510815282263339834218055867686810005135648820408904910768061344031615563945461045404371055038249451319598561075876028934972743967493212505381068034659964682699116706315871883736472305090148554293143903729295344208864172255384097200587044110333699148750338788293257994762557113825897578216120078192563226236181409600188709337518329589814128385388814196899106582685928030829855070250804317735232975773721811025887151042340202998530184147535703583124388122532880164582796831272427588431031608351138573883599838339313279730454372921924933079804982131571910099157666922900637416077664422338788897698799238083083728326037520745828246890846838260916360176487977245015817065225397255084599736418706044276897555479353769519746595291174299338257790087117483774044894464540798652851840074287614995037298825330266908659494341742683811233771986667866878851188809163322033426758053787979657214990617104824266849017862237581976844252997534708600239905112932763177157181195432867287588137026262977341359272590508198846932796744287821581666461422457441129457277610499244842437458165869386803780687191645962892518347438500720278667626173000751389536354572111038557415951410710886553794016747481718865273625972273530652265058420050527384956802104736720259679725071407826123520136062207659260765952952615537146545369578170405443583963182063994264194189618739140998011355473766944130692271691316579496504662958251639798104698356456708248235924480418996501902872302561048065781542786069839086141826153134217280179515916607163517638180500703722631072048601372297690195819072435642820767570557044823761741969658468206962592408367673840960543170859804547814309887427600442784043504879270321037368424589421150219136292683815936264251261383117725740923499762843932522443671579682694884560533405034070618961006488391609899208948581337664029696131632953875933251271976685240290001040686003805195840777936011979005117096997913770202891116716220054580765891385112118438336242755681660336109622601610348217735897134105951555340606068178278186146235101564333543566717845692060451946202765955464191875936788009992870585500659211200771192614476944028245829040026362136541733282515383174291092507026712052692733671528527635951222712487581145555104978697901042268152999949381902928488597634963270306085802183457478735768429103637673938300188504652533595670535643036291524679589548770173852086191048503762944182077906907611212897184372446978138560977426426674558316751444163339602764869080515909337287707624165954234931590209706954969754077753720633027319427440332388033348701091097193412716292634022876987167194905286990133915899422453130556034433694791098513073033992423556480464136488928214480729544224025184476069691053591159979863692621343518318457566150383619968539499939428107883826845281737958566943802387855705671062782995338410573379487821160061278751637125595190032957297606957176012211773030921767487378505747276342284535563562302830450650315327181094816219987196493679311406822143244103425935616417803120806546464245093898067295985373674029273221484584592892861345445305326108678153857644002416391336964915958375837382993097755734185925151242061422949702523699461476871106151701155029528293526780011694203299775670884344763738810253937503420341771485269069305284683775455906909540033295644004204731612735250262969299579424349466408761328872439177841341696132663177572173253278179362653684936031205912238985750028934605411023300487738724524486156305888892700882828546792749534165054985804344884165008187073237861374400837588280771847817731448052882082111793955276251414198322208401261087462611113556143968701419066505429589392559888059404187246013171801900391539743878806309676207827675123546862158005159488744699250250688795558872004102913104317514563582771870158386471538793844643957153747452651545518696814463792496851613685177640470235165457694531007054453910085833584373730415912857084354633243042580903262918618622856613309345537566510657349822037518368709812663688038683184430234466326402869490462658534938726155141698759175700838769408660790753543710655915392147578459039034660241588817313825890730439314258949293910278266673600488974213834323884633397299403323067636458390091238837783456425403838421600997185445519018307196426833001968882506812212792720249980889322858612777875016481578767141573376115446497124362294233635722337390030927719763644018908382231205954049299696993426964611359672792552534803538141097953815462005980856318395698693203406512438293032326621699030516078725719552092039150375225881659565837423544144687091705029998129235367570088130388033530989199220609854093647527421397831595470558540539210569978746190518902459517013259236202613818871589131506909526450794591076806140109276830976817821701105854907495986462575084094541218665621466867246167470654229403175015925965984134164943614766656482662742206691458307019597194767186784318035589338452065868793282562351517609469842945202095636494988306935985875190871959348844817233767878600231786333371160561416868326902825608613212057967355927579108008543170971427031634614351044652679476008397135863298502975022478387720878157013526647927116977622043103942864332365744416216332952036840037782300183977348656545081111324060000878217894576395427510271399055354399290331443059036678687781599867493980419090110647530445680659369055709322538094739232227451801294393401430366044837867825003658774486184941256722585480530829967066435498388709284698006321903747095290252056725177032493302582131413023486373767065137033378329181857054017247089805704996846230744690948538996177370419611145156705496113920191336642425472184402449051917506693419344120810934007163310758289657808985259740960051033169928190352545514836219516549377500827134436919577000608733397801640667385118234336556757888259938679463401389489492263995581410837280469510061648958927125088023144257589060095711123821160821031558747955729372410876025370541019165344605889476043216822875218143797746226433733474233363537048358068795384175515458410041226074565141263655806141715835402653849637661696376653534599491860103323190673418680530388332902791045872293545741833688992582212460737757268743522934958591162819994029786258999987437035771133892841696241133207360983751634398249657302466178861426559530352289150769947124697453915756204327467760966061657319980238631546414829664866593118979879420753344275182990478558906743992724735940458289216660107361722778241265697867253585703592656462430293916589551589327877369350350943590859436263787564729179704484923225717348940995192770010345558389203167979410284566762164266111183334261803240031910462402283986328041159981684164296247061229048723398952621602680120265723193730856231033050794823821082159556937463902145046582521883627022933545807847487361080817486395565528714164768860460091051122012535419169150416829085265878396992502666429009775457261929559506537821996099204455303077837557407286369107621119819173064218801908686354423708724633991376405398890256031706989006731971636367965163405371149246778361878026293477707326591124389293720266955673035812060672240051985132316199275266683396385989018171393213344773778176311087401288483436318732219609387211436205538241608275493261058708428146065246114906965483420863758713571300498735584482055402859276603306003500821674097510777188282050938382263155868823584190295543162445231949700373678043168580825510486893669143236938166028854341731744464295830279905783243176215127176528131551724345485791653253672507995206277749521936886009638456488982952503201397011219275661596920736799743468881925608062335873312531362502534872018397449411490220631884445910264314282577704328149817500492488445874003548118016065511594256090952626984072733011454810433898356458450399817895724359282046571028349152335200371606896126217992998489851542630985545808345401029816755594968463121396184323626826635097354713797558165318429159219578308748671485816262790677520141645466007495583308220493488162940838399489549583141395681135770727719421487211924718352850736786123610595423363521125214252951517840834893803442079265600812834956439729006953326606180570010494577095770074698132841086697719892104297273112962768718194471798855959804439785941799999220402978898506985040750799722939051951864094762536886131757325074105747951092387382365258792186256952484073984908249910475891673135091456218706656034796642045842274654942203148284626660860249955665042681388581247065651163118581082901514732704134897113821084133974395726182302589809513163433153098337367708491751375117879441762911170388200265606122704974919892376943545541495058393590203252504565401187142393749089962109949832695821969918600679391617746790528410865076104255991895241452005994851610076961833034323881089301723290150114662203486225902051612308276128877895008477478439472212672794154169538192221821169995638806062813573059528471787562436470408946408839895460240169933451056035181962881627074287283456719061052292667074855954322286542421501243069287894503180870172921753571318326783916766978356710855394645621765047988797806719930342298768832375371191388833466611730782548469317470531341805964419879245866021757602267248811296093700445215429745546189615847900437688762499272398860555200424275547804301041666741141415298568015462764360098260100199814513719803001660928363689600287483653063010829879827173407024307788959021936806339474532127182227847760299580251646182689933792324955262609968356516466502143941293521518937211131421980574764578525688912798901598934942851774068854372447058160665826758703914248768103768166290462218550162994623758510037235550160183304978375547253394472630344692404992761529080782366444304472110757536201100939390964388136773744119809816824540610770265926570341185093734316993327727576698225880001203006049761532864162168153544603238041493324525373351536228437836739520038478515184426289200304415706660360768345741950409244216359758415851812599299937536290200441454046895522779100734846776327061722114149414986442331450653678645360006400134649045350204745961294757981244559010235541503436002088765996098365141060285960572169031069121383068994816508461224863279728972640716645020321922012324804036426132724484528856089711321506708231624657033460425552430036006669901546836654623429859975558416586274605822165542108275979811366637298300270892695498679695429771347624908030500131164761176974484258391667581114796468697377861678546736812610990439759744361913191717689329635802814835050778227306137252195664238066851075601208514773108281411177383638916585648789925702214784176052714805811797913839690551004998544898154219898399561369170724074172462530436031772363714759698411353996894737239857940410655950908803184341184209946193661587166501161604452020944857811460855247685772227238532596698055978960745650292252596702757863022198958347736458401655338100754260809749436870095011227181049075392228131311102799632669414204230587688078272957793713099765047381327874773718069139114357189626886611149362834038276851741743428282921037690449821544255493146143284265092052269299425454709320259304855488529525945241061565043864725253988514322195462442636417561591440492375226409461373853347292104300951527015686587046890894059057918114406976275835069450617142581621799212793762308966999067309712232461553768413134079258439003726793658221300414419735149790687663426814446521238358859150931812409505953007003735524129256107693699543644442255019535426716342764949068930987520552393279788635046610592650045678977146317941090734108848978228330853639588652044427734561631765682874733002879320211027701297036888821224506304288935261420730809615324366974975094190904651057824241116926614590364051451747269428305610438995495172841355015962600101215739931356192285295782918517962451548213204201135419518703952914366203652698036594838479509999759131518659476275638375331174631856561945124157785825393784073192811352827437979758654969574987496402526304605711955444961188875665472317832283429422987606491236742194865105206867733061228800942324390814250218218709487484783598159291356610232269778980996867599786793346942257491193555206724500437684760350784586662560457781987712050324498036952953886805636941032425197709164272798587845039298274255916594234767234706218369263632727330489836073283287722341336652168369084537542392937040765038126769286021858830919579358336023772064169975445567467551196643298749406144925988398994118039615516656680345143728316219336349070617323627867014639018873120313830213684185218907240329061619173171628263185686876107633525176274772777450905600048349604345213981068578122838982839191281027688424125824634532287410512239481143500691598999221654550982638196853566748599461720420993235712233766328883400112254931359724555162934894541353657703042873370485896344189206005064773084052346122591571376657894581475189233344515247883250271619751585504535924367672629540751075953069118696254208289392776306666361512984467772713397646719405605257914499479643635810712287297251102623618052717494302160564256334343753394312397488096418753697915172646947372035212452261146129317112839418901080945603991584839178705873186398071995654444210292864731497261068635500079139468064582086455012554833213241330214242311836287119356531970278343173225998459197600992122772923781260585639690267910661044574859017436618131067072213655642088495885767029424200543926600948968299041787123984132516150872211469666172926771566716462271899793906874948864176161076724022643936419288966629127098801730573180108088763346782643380684933238244150208451142586793841992484167202948127477645555049520028237351483659179780612539010541832025395987614869972274699190702847425583835695798823043028306611822199541722816512854329625812990279640246226402007163308281553944026273837133186249588976598457771837674195712056678703920876131593496010688770000695602868943203404185215812784075844929916406092919941315519204131850598481234903072605183110156357163181437630670636802641600429026666426350253120991002051582454815012031648613360352532871987497186383306429565546753810163809591180118656540448553318780137256624065616966371407518220195287560118779819688723033410164717848858105727383944443342081910150758026219097754915308602914395942460169000191791677781204549735096702648390449644542842711934631951038609245107209204360484693470062837202153053047227522052260611685302870237054978488367510464457301710987603178651344861954260771879780529105100137904622168587616612909853458173816341398541237329227631388043731096011041426295132372142190010161948665010983531849729409709514697326861420103944236432955626075205904634567734988071200437774300446538744966107290236901666898385000404956942889634044114439044272859065930306477767418637493747157629344166802338959786396037048393678877351044239155598709533857001639095051545796845923519958300955488112251732976196260363259701374860208353885623275255620860789705812653991812911460207641727688299820169989832157735520738318345014273370120783872514118788890113580396856972299261901108601612760580005572036075031849622670128726774704728564221934158870001194085514620651816936231989872144277580686223170986386915657246400920056340661650932724639217767031893634579164003016060344718061569450199959665764561898546628324435747192206493755263421240875212604107901669920024228074883520855127286061998434936169182469819770413765943280904562374642783995043745538866415199391385048624153483782145848608947186547168057529713099573478419117795248963785624707423713820348940990491218745215873534122799424286767277494794905971353481164089536557069173650227312948067826971260456925967923046528359370324777401031505412320723128296085548006276668786586323989166048360675311933254977162872227473680370614012768891497105301177079060020650904291184549793519361187941400863722977190377157147755127715166209557523374703251691187854462839527924861082807774539987723712673525688926724218680150201855795765396584952028675063756515302002294216558363153472886685966568771861043934067164658548435773829248811658431422033069882971383007334142550058511370264736968650113885324103973676916885412179829959679263578337330723686579100972650291746753065407719508721426788339186120078761802701157030434172438044319366332915092314103143224740785721828944359686012904455284708582992459218948255388785035945570674328114236785206202559681505428938116993231709314567861752799223766612479023646256532332817737830748146489560543448050534154659083919515258460090600212839099013794473756335522962372337630373371939474395616569571126947630196973566940866934198566660295122718032089966039886303578004195148238989997247716627028864408487777476576732710238150351251221252568243110090096096518200307227433005778227339165673728590871847727466918614446793183163876657766205728114491977861740774016275459754873843241592473202255793484002260698327166295527359273501645042755094485097359515609685511357756914163306777209287618992258208021772888230105075698446439262217683189979486879215707385427908293997704054275697571171969828521971727759175013758237524468097983894842138676288251934037109459323264493999852995967570403059699025723389587378503037813607330657106609702300602297301355385494432597985152931810425254325400298061842154306973822290574251967134289052962891895922710097459715676193384675110037066816842897388368132151079249815686999685053382897961508038810494558148535643126976582127918102973495344033239081929584697611792505537224025356675494260271745874387663525402005993102812268549873839395680961861646872915100520027611957360021377101312985383282046871210632767521891589744514307103870936978460452039748739937493713518679723678985110583732463675677338220958032599406514507184951485571882285571697538633342173607442342744574177455994128416554053594255722781317201819474836298640232884450379098423520525553220375245221632258887898911853699504812208287326861280904869447004018176975734563911995897136936924378714681588006759004119438184999812141460521054664792962211060130719391809614504432992092485324741524155675734741318993340702972011813312462956584943986891941729151018295297475020711813433522228476654424835517512879064317036106619929620206585143091297444614879016317342970188783215588272630750807774387503346325797031825543868802871599817828094153253906593786019037935361162095604420454181393483189785994882926693865818208974257750878274564422305763503142326596926682734929724825836860792190020647560471258302214183844769227441319396560392599701626805248651899646168628118935703962588897754273102585429020293528135912791601216745772515909412397601947704770908869191267412690922279456043103124727245511969600195370818238810225125857310202754483538411159609849508105294123509675869681241544299850460427989142208597067529930004556906936016428065810925095002854919248550396040159310821217664461256880855674274599156311313020179486625240675376790858784730205800024879859014759027237135628400040881479958629755592931061758741724026606401060947977116607348485558933658969416838940465216580211067000849360274025208660266906811061951857700564156190490282530854455820706653461315009576681227123966920289057555625095462436230063775352514777664908204509297666605999354658088514316340078273928166311352978077474536089621945586249132798757407150422058123280666026053362461480363992867361548978488970037204471863886512233941330656688557222098556591891311202144208039746359004361337505152306698195826190042947315088286709644288279007594067858295969977195520595278595355757442418999319068578633841834071081029753094850028604380132642213615255236653216673157444983367675228269443659781189825701020296267491422771148334874691311195140900654391257581389321535091504684923424096034494879558212903411198911608275686740636178801575149941162649431579926372960773152859212190084089472732082114350312569101626418248527300912643791743939335111854235350532302070812393843040612510256419626581049697521004213615126082141330707803502526935743955261233558226368322153936583410937068019310652790450216769362564698280864800139265937275310464008775086276067365705322188279131832780256856750286168633281317005874059200929804447138576798739440694324660225145919054169792107975199030458623731446053660096204905971954335900933001703407667521002111127703267938710808412875095616968368448439979511194896798221689995891901732478457194673922870158269258523221655432496799221809386706479843254550201651821349578773013871059126616143874689769736504976165135521349254278609380616670200128295312837418602389352163002909417922569967379524225877556011487009342708290168598525462800236623455336428284112461299349053676618027371667672416461393930368916882117485692376319158872018209681950686021198044032004034909775127775004318736885035444800667086959595405140168045649185313563751657385700790595191780646966436120910052364904044936036721926226324129657702099983124689562796428820768326535772058856768025125786553018630150616585826499682079964235019182145676634265873236281373504734071723914953675065188204872975738002547969419379701723903427743110663970099138976972448831003656658526049757190284478301927516638191416989530416546001827563683072112644418828798423839668304586074263561849433576915595819652265426453229841741786975530804181490045223736673111271827198138925566748755898236741719708909957861567614772489539780193715750128841209519311571282474352706929621314848789950550835224276276639056050261720090351206768124782031131424056226572694817759715012504269000649639098003209435037232611937640217631619841790680329640400899945214017402282552332523088604124012725364572247552491953335513558499802449965744861916190190077194664874754357893955728101497410861005725026541361680026568892196913152778716354539714446708797804933620907392482590049280034446117409796215723032082189778898718744530782449957360066320326097347674841326139685443089456001565024719113669381582321398695812456504596595814201261755478468205318715661223265875762918087463462427646407817950114426212767288866132335452909213630144513063948435651152544211606934829853490745617928148439342045288500550122163300235862893399741488834981901715264544460082762332026263563401842953321160059831575499634436003194575263565811285239863810596928649994760973611016508758543392027557648055129854577174348341663397477281521482284685054769579110905274713288396815557284686888161116089509302254809077631003550116907591048008158253615380112154404174473995565166098568990796525099040341277584928042827913468100755063399726005962659649281241804937080831122021918001199188790533699116780480238333089863838214240317386355166667602947052081822447632457587448380671386338371436149769932278547471213670788107155717636339606738733131319427591686233494424557031521612272879646037201949255899684328493599258804491750761712430031287837558260405438869402719273739602631220266064874285570891118332375075955274282949770799945923210691971845886301773636236985605915185503089172574958687659883215297412376906751052544808976419060566576265683910829179493456247934558774538349525903076871714517755471902917532688931677165083577481655501343030570743348098078728202538516740963471779787924968908678592943703106410091613605935721872907938738360419122622171072804213024593389373736627493884579940158154506704521838193277135658332731771103596500124418008013740955223908461008601528299622683282472107298361252183624272694714780150201968303117694374259855732591931651369259515409681942631160783617381356007426635719084832254123440773777372246805475104962091763195492865492899100981379289216593468788296306753193707824321151223961265818394447167646732257118222649437019722199794350087929114708496177810926497020535021769738594418632814996428687766321269280322509911985876252274446303520494279974079394523568382683009047413817078926343725739508952032327284810551104071464526258909134964639628116697942064951047592332319517621530192341383051457482124714054285018963748945490391727208970460976394522121211263736121475016041194602215896658793039499509563089077017465380369836149099338334367149251043236359103540760989301940938843284472875213706190829196835605572791073546306151547844772640482297347679144113842394443378616321356915511713580455947054534599971452267076602529438600735909074830619586182351759367315469788130196396793897590594202700219727739357929111247240986974100409944315227460254114499286461133314612788758015603654170903055004313594016988404531816046901257395956475870612092636172264148596754306939644399053560348081441451724481736945555672480024675842075251434142236011996090008285645707763914146987248463052131770634192350352842395346470115201705225360070261301223634941585556321817375265249162485839829055317762104937417958153298985758666469825379142771829159752087595834693034670212378312705973650094579969185163149324324951787076767060201594954128998983232078493338820052811046530632586067317904823994255729929736333867891803621662384934309047304943878639521535525454257976448060016512124593356996389824040367822204353683436225427023114836045804392668548276920162392259107559371665019219002640162653675938685886967983863742091556536921148863206121814181349416897825624867133003244431298259868009566709144786716402320608534810050464786169746555817108501583943782686484922330684913966394593450388826292884515072672819270500599101645586283470370701019564715280014723196473522339830453747799512471939210245055269657647505941437888652703874482663563042225789690550185323874995250572137072962474163859338929365844207927828561547669454799164005595914979552661082010547719870988078982660216022190829016658971151518539621130404592308704616268817399525525129599133354274184775174995671190111891313498462423084287276129325268881133131277667028949027343626669767534527626351210841116156058741412831789616373768178388185288935701921590681905186623636714957491786537705518811805079476642372076218528251415361455765721004925178428167821672126132048296300718562506646954328456142210852673027258243386154173106956667587971819285656054157447833864151311872787192147166614496715458813490697065813846462268618074247827382812778351466752207232402321030115271662538550770740779445352919791968449178347599319230091337254763740076436773638586281453207261900144240518610181030136741871039735369678459253172967261339677613138827680497034556184709192293270239611731462777403199176887799214618181634223746669622132024858950202158473485185832392140116665553426191894666442998842515731088634807041496817189644592431854986212141293961447429225145451024890689091883207800178072971710891875699914115610287451632586811414494469427668377745105750745793444330409821637751279660223120807283847229295847686672169649755728367064519327352185802915978196924977300799732069061928491581675111455322425811476164142164427971727399389508108683828220369821811647023561519831365523117446550050597876654997622531156699389624253549306432460110867807657568318266045350737962546607904417294357229429895391247415563524335661832486866410091720578399001505669533691265750010217725215192209519802685710591568542208756363181332927054901589260287080930837418553453587483245141236175477540692683526551346354701522073547478664453250577461047330783437183758036400573563969972238111400112170248795695499397319064625398667251652742917799479534425692889380912811292896808481875086681483383215797230822896037323908833007386119828357857251964734721776218619189837760296443851119288890426352501561644742597254542566788980381312947865103452480145777004437885209858043649308801901180481046320060473927726835261738701276090666083987138444767961016479712861728727174240841959431335038300556347190453925576583941985791868348631588306404767266059855946398122699327352475722434048081404791623821222372203501981894543525174791126650353425793399914335573570684905598244069600028434981943388386691921545302146995438451792339903916660031127190940180559465500783354267140962198802680721364737731790649931095039716036763524495121486210697448658781104564201283204605564869150135008890773271810348476767062560844455350949625479583781035580545184511015958352386755853313243845945598367732509818280884391853491776579895696550263309748173618641240207821377421387838691466925003097608900954237647275698731111228989956132761890796848725717898510577062791162988351822325216045206871866607227817500609433245570952435434826116808455080052017309474403385561975997846650797980702148144396291265550175011330206763839108327677601251305183491585810588402211518075574663812169287839238634055707170450520055247825597184795882689754443461121120308795801396433545123037672063729149420403865618211061841368611821387902001068904243844896843032026168849895083666409770567220280425171478133394021064559296142643706717187879977382395646754751187261259258592200629432908794005265856438004407509151031901941912065255252400842567732788969680542923790639567307086470198610953557762388607246820918339146233283414041389146192490154370732366547745579438433104592870864135448439119294648578300404427048845683622712880997513465885497198105788435825619770829342335933889949033527365038958702924332244585549683191398463773891174566446933190754528326532756787945531171065937169956187059805469505537643342311740035817681915963428174088419555051395206755906588396096393887952606876906426200430929486424890213191439975477633435013314650733766798109268958464809779242218507236959185918991209691766363799902336886808521733815954180226629405193635538982387199546382995381618189777401843430908302382175775759214985059440834137812295963547801478728883879750246026754260780452613629982883877637711060119223604264930195708059124016004087829288513653865858231432283045501717300381950466455755822673588424311897609756196340661061649324445934705443819344712051099174015074405888363594073685381886647631758600067702623468032937756825020923615744655596685921046285577094866036645767714213225552509749965621570512049666436520837317532408704590776698828054122591349119459737563216753387606917606509549893232027133085742590877155252778908769905598290002878268029760691934219275007106606982219146510754934740872934455107210291051895662622813211974913453011489731356880262468055851341735574621720583890243218006070956392190924845069855675544553755510695138986117478995193019438830508755992235342378893424613921549016749007287908756527024397171641909002778064019448468211606843912173693254814219547785653612525589690647083291355762322940083913318596254715160878071665744285557087241996707448455137018871598534834801166359280143009613985096605141966161435582059932529113358070701793775355447269742639499568517814779391247399124012963607816048976975925233261755903071675282689301248269435088096775893137298245603972836479270800323099197876911726857278226315912610603416101384041006904638908442108290331476115859144536424479242860559592709841324152736253452505444121596721443596772851262910232461575695141099493727901930987943725475802917294507836974400725839486070020164993548739509149971658618717684451928064495602371813029050325368580734563135924985721075376203360477781808196259002606985691654761764476673155893201774055575485362725724476127262508825284177681897255510652759785162442124148277968904996120044621353303132806262878763831268329944785484100404091578953925359729494595921721323940818340969327298920903149653844726681493063295115814589056160683993927339399695432909688068264960147467683540324124102895005946823448290888473315733359889630053953208923478782260308208726428723241869649370082961884673919159857996948574739288949708535193782665534666225549044329073996962671760179161701468114118357291675640696398933050924247332031404931886023910680109105211439133856408407214858966234523305673194388259597860428538470847568369578924030678598687448528865261159380283743064993140720295630925292280408237298488882096032818334370039498521221827496803296930705800006695856450956038446617160157839444348247519118333019052304032396483019341376856051691051352407877713300186631318996536825804716324482908150500805895783444655896255961826213020464695937242668923918521079234166120833701720726800864559541923067704725963158322614148835858655862089782685957084738458805539587881369562578529338675319686753190513900310223319298479226368990804920327241534345858924055737201448586861426541663393619089227324153809099234776559579622779711302227803382232548634952517248398234592220079320786355136951964317394225507517869886120386267520950649262471227025397397889381522096768547426569386248559127952076100640394422018524965191784332328970492691653000522385143852370128092152146982462969353205442708768000629615087655997251511124505249537638417059006291630778655957840748330586077150847011288687244606566048366212190887189455933015963968409218120817373017956139422895030089115968954753114891917623903117711850988325255356658563088384337122628936047100046786775638001653270575171347614393483706111385782727770732245190734989439715295152323192768952169127477816914801143143265536020447881652868459208396064507167213837584874534995174326319557004510139503634893724104427444528020012196824900383151669564168539659850679025273339852525076136908743534000030214716231686173586689196024528179148373172169484661683294756604895297752021599212220699612596992687122319488740378408380994280620601260224603968660519367868619682205941975012308061019088569130232287533827205756111815126938270171072833369272689991248770804128012838965366643325222386633598227994880279650108681513867406118834470410120104222027051144546919157752690372607410895339819215346777227099068001426244727551576061072740352563844713948768520138381082603876307563156679903795316997726468566806100822255540360368452921499315748857059432899139314770911782964890002514228275519150407235044590113082498518272512741757966270921865831797264811166435117984817032456732726696323328505502834116085621888275834317624709368631698463213353461477719210891452612555973211365445634136655796375284876280430312173608585012828782932694241525305588204792145479205075330179510519208920381741730091304296275004755600280361419790855943299737898649742306378272327844115810398380285007858292418381056150963029365461568284372511380527055146576319370096701850529314347550676280856254434009837655731281279324919840962910972209310614707805251576655798691119935285696374184428457420130714597402517091707510486753389192177770595542304259819283312409955253163677427610046968974120411011663164948139948791261476934863206006895592100919738881878329622075799385353163302500625864776234885301900323230388235658978885846984932719839192073821042619053724184420777150047506649506381217455967949393258548530032779107020924378457708380226991506220907006267518374238757507684519381559206370942562995955714085446142604398049166798995872137978546057679098107538202747553151646441259052035409431069460845385433976837722562985311320257508190077267976655000961645418902369203620894247202581121611683749798180969418014111397692856334091661991068613367846781319327534196151063102478324083439863893719153165367280852691538838059067454742218701724845632119663394016617085648828828051238768038123628915860702562187831716233755640213765938759981165855332806880114163192821408070436871764536536777917371833511422184948536763886490645549294163414233547075208790141670119517362720907598189099507659793774323485250795281472516714076008682080330511091595869113401724473509525326797675470115311319658332238791892572601649779883233739021661321372135806328184093362729888021264309510134608293594615190838857101027874638329181981671737819467195683779550495010125193268521641676818565606703230397232904736554905012104256928571680052025145677247384828857114840215107629466712354966930629199040653655646639165059857486875340495097553407311809153341465078423613383842406811942670923615623515279266191912801430178420688297977173948077309171753344182512714825815384625117362438239206229628079303409942863782660727387707576869180936981116089305832441600745655682992925888112480908805796172741182346220979672520068094299884086513182413502857837024583571328387122978300856497607219285454706435477138226512341449081192356311168579625937670099525613690538801805591882808001804418467147239128664901706528139279401662677761464299812845565607801800832959655080110898726817280915860949736327850320847946447027136799241414881177673158165376745287261007895084193298656619893245430625119836519539273026281153746082416320461070774795045167534869138143361112828717750305510173490993519279571753304121657821916122679142974952803332396780821024440708752736394592658916307461703786968253265204968725668236795551917767481677435269205686670017201040080713582508589960390039843747070120511594728755590020016711300354377790751894872506548368054580369534073566745402624268589318998538092990019742396901113528185754889859582298989656614348005147858429396390118528064922523993225675086650477431605393461272286229815310661726189487342157507860034102819307513495147665316384941859360924542338369017620387246137350836199887992521499874031446498438888549821526526219167584850799504415213942226188064563703290801964266155228558882539688312319157578035547086879472261689735723931918667559053761644955894072941580948748524958705920180213934411783385008252504779463332343973913607568531574037293918298181851794187005335551200134848883092966273649510421191188949824153651484521736396390742007316506239787352099624522773820719607825361966906130027684408885420472742374688772629767698592299887824554734054429169058375182333896660575686070814020879555769061296344369269124161289669005102502862292671401936075676079780060271001145474445535615465433459186648785392960011884283943203658128621738028772876459201126839586043257960912827321234105326200702767686439189065203601795603893533871278362110372413627389534295231080705267355684326028930693801643940702907807243405702942071110299133873464366007488510580970153796933052978772792176876460373451634444240379971175988363874011456740751626274218255192099092619051150467555845918925410142457499987121361897241603015525824314524932999254117175926700520682471194174691603298214565887484457211232285630776852714935969128256556858158029445829904502596912865553319097544410941270649366533804121353441557321431740332666622803514472534103107736134854661464000930372673599940672297299940387425135001346186011452704348261772701757992531787686339339531865084903040134928852595716710463174918115312383164860949257362409842798788821361147771869374054019731718947130958414317810251923049033284198619785102392123567806408449560384468883540186615807347305626937042800830048451064386709127383823764957909797771090558710001851272057284162319860276370733652838544141086311458941911986456043465162992624253923590791334223949931493205815040492135520439729583732738031688495810287088670959667557778342797858346693999193109852849816807753117417791175725780031067895217012323896516153204209651158845674373976961964861980479158164939927645046973558618398464674697661934480962368578074617254761813423871240795928153686767210316897085443004920259423394560625913224797636541368308117816108774330967287078369875102127425087721671155103374160006271020048974866149776916132428682170365086585067139970660106934671950003335850049382759036426963826737189890215840085637662374426798502346963718697576543738030239246258471959383300071215090721305996730173121258365071135054963543003652359695373038564097906017029967293045666001922788726111725908400200078037914838829844803462007747054126350684545695835569508362589831394141369925500895350950143777279591631555186509107955062125084128053820041297382705021322245178606355511694205208938124522110116147734606655411485508850167711450070136103111144355455707664022471197938652712023289908444119193765136218119755906794532482544056390223193568564199415891441519491531136371813405336071203525345344035479486913774132261222008905926363404299931352914584733667433009579486034309221579020234024390385857137365948727394253689437628213615963835526387825219887352581749100309348807220070845465443269034663943674911681467645026262859288656372049738991385785526025385561030223837485873657066155784518358612204596714646906134182571564088731629246361419240932380736560553813349240371678719214524089793276363849540211229279876097119445951664590460448154915198221013674195141749488922535010433607602743677640733922323519050474106818352290370943905198714941079820697338471742311724046485981964918819916257127727584815840980156379893754121894915850145784480694865063419142474567713555589319247890699431794188500836458956553060303685357262865959449203336263899153003524325344773891758836315320567510170402998968233663440560739088779285931958986695572296451581880015205565147784252070500315700760548541330141172808277598566913372850636089958132341424427889712610168049865702491964263502216424289388347171207902957062036659572390495457774401850392961844321554038160161722365199992449876929866663932917176906149639019357979747882524971497151690824227003917502127319900957311958875742721432899215316222416553739962512948070270146070893218064605963636458979717897338575067000300115095100338309026322166002060683509084096253294578417763801650032108135641630704133179515021651416933732088930726777794971542857141736754099937304574376064512590173904987848843317728218394770184083521728889954061710521680416495718583077386076617324802524831329257295409724082303074736915494565846223169804363676870184782022390716254130233497605458463292839604743755389598956450185109277484937693355666280330106863830441990485838837241909195700154642010188720605227198305562288322199614531050845028293489323093490721001874990319635022667859242192931651096392598592677184096162624733583279956058064211487808820190639235028231126946529054491251288531896400685349011799669793429343538696455602252275094545980483510506808180588438865028551626136040313217398259695290049529608533654423154389208739710716113406380415531082750643929722230892520751118930066134377247840975530773986255478487945059109842894863936312653122500197221729268377912364257923572340292513890277927496686664002200726575342019173540775951106646938801643617493685703755068522555463635696981748917271877879692842382875367259758632109442540501152043895448174283708582621231732597630244055539890090818926318447749051255584658727971828799303811511625242605348713512568222119293088488123960716151306221242527506838995215275292082273725744230581286223003497732947966007495528377211659441948365107326830789835921536701664908009004719537772587396036074185904597562785845107805307876620241826693681374957685335996133950600954898690026487315469687396967595883436368595789091108958880035289221336163211636880483467137595874563555608609945321903102915261477500004364260774774719984860480108553605433571644968211092802845261983299332777723870671236242249301074685109735325800082508780120166877225486362593369844050862395975134337165619658406651222856940650124432153558553882428784916173067157034326394290397814307418858499609932122194117617308832369448988708692507069539804573259650368541750629172435621636296043627577024155555236177852169629790672773841765092367611831933842993897675277601490490109333000057518966337350232922027476381709541271872071327876711447354085635516462637288284003048090669031385224990641211758349364766652006019201665133721072502988931182115910910777282294990332485233235664307836294760374900323639704169349727890544526029368625717379468508360484259654654113383647875925102321998121731712019789879482305347780086553780762873393454089765265028621072192498072464205956137854795195647640538675413834032930477804207459737931033849787343062588910866474609946740713997830690736154417768713232351398778824902889437467672382495823380623620627202841267943634719386469038489149562586266225380835294444553833736844243266111066773619497310896014014907223258031739135898645959859988721359478463949377557063608597198862740603682128522771664900282083423712507324808757975072009082609496815687774157232410111934491415285094568945715398428754403777997252693315048703334311083911149258215644102165238870570832827515967245915914604184697497297097944669953753565121975247917986053939814632070499264937489089247198689390037741146656949073051186913385025098341823142248253852848352912607563961532198604422344718380121910006579344623558069289392605356142974979455529556873856171735226902830937927900037780866856170671122996357931603883240717300397279208772482737565863397484515733967271070303695603199576130532350788848039219448055885873954933853169160389624787729433783904233798861631509913957400950052264230665451070924186181314702031674173079614397661076916072102714982384437583129334377885868072066240573878640822987498246008785436172606589504525687666359638303409779791955337860059098024745118086624741448229382298143237332088212295346069268753150772723881493283879158121349654694488913995386356088641096884416873866498652965696492930271360787322891687135020401027110380415069211548362291940595946431204670872660891885262686094435093593854010166493774905037563984890969705877851211830231320606411151592227808915686858520252707349372444736459062355673043238239024822014881890598671204917627545128783945672526517087229823387909776391171679925534609657173983101978768492078513576928049367347660839801733816591723138115784985218679557263709883426362460287688345321290775570507472894889142065202470694203464484059715587634346717736860699736606738657203498820563712500501356681238568400995344270791827210171184238072942005443916482993092262074542839843277056780103422111389682564845720521995233298288671354726933797881360086365602003920853949131678911055173287579739160549261573099426334140439946249424011634087817285872930485064911261403007723652173714330921606536497040124342316506383341215291691807720966338945763740851637829179398796014559525006950460918089038470548981543664720541815993929771578485476035361328575707889537459630171636568536095916327929562692019995122792848303764556554151007569889633147658512513861136592627700273090554708827963032616180609804694732257777695649540970028538605464562844534213780193336571940266922162619099331820886300562713333784804955073398721821876974205515688282527770605433490845533578414251407601877929360041916854186027808634038541215981061637719801755193628896503743781165519634317083567211369459391667801601387308604622955570762372243540732231966639380040523383391613769692553305948129867126918882213459279986519698250693479704287090813818841861589884504466120111186034808227549642547325992432332329964432719195815929652102872448163339438326344225046594653804903448520092506669533940949268816154841085281782221817566627818057939052092904831808172724603753450090435387479496648411020293081803147055580045650291030448100803282496053987880185084223073899421012894997653009933616991087048106624932786484577394491600227761986698916284277934306978100579339683499489052304029531264854572523175962667569745211978987123649565022791810795539759875158407762335210884613725402679103812783299557850524560026941029771673774095747065083262589255567360970038008562722399288091758909652200142462616047569803554917581120049641204382840035769224227673952537782220071105929655598746914930644794804075222222571795922229208528069274350562990891463930316419068819249471955014648520187042568536835739079369688275151350225909324237954113946212100468364801098702606829771685107169992482232155677276977604266092531798698599430074731662336434356429211608609405796593596505499881579337395563699730080538959218625741284417290316750296500851690684819225348926169029570644502036204425554115934363516251057581198083119818225733954099000852477119562716346007731217000269168576463912082965674293612410552841483196322254195910395514319907344147672564124696473308424355541940137980458367582309004830241748423706935218116965855076340150238511672301784110637956438408011383585424947003056081469688465217696749646048177751809953169610571595311129516236295998863708166223663159999883096822717729022592990014170379885199011679360646791942698411782366993948749690234749058450005296194042477865965859102579042670283730491510609515499086403370180809843838741619215378184183771313044792649292856910123162027225905828855273128898495616997644108034280775193724416962653439924718247847875958732577922171641156479419861855600452129248529708657609131351585188831522512908192255405379161752542941150244146258612273806907525333110164206101717021864937418595617609502622135361111168112319572402573773634023195204857315215877467792347859695212517366806580521290666963134137437438047270596286068844894755915071999846889743338191927610299375728921391608158757390766466088885212972956747902911112760836607561585010386529805721373527507766180448202025818700517112146518815088312766436583313080413459740248211801641951534623773930581483176937141894365859283954261644489104647549274180554919568491057594234388659448170346629499309787401254162356735190821870684195122672550649530113655272252882866641538294867902578549270511847301993228259899768137817615990132512963963344077172703717629579782944770734518619143079228944767820671176312586938346088229978507558693665397573670070042593527057355424599456951830870616958650101919956820445179820195194046714800473423370137053561702110390299738576828894893155315845287793104365084438001370672059372172504314939709713468973734251916667540449088217695767564725392123232181967547670962954974799340078631265637818203343338910148113155362715087873146109195026196424673245759661927897908985648037841073519832439010550265615551831388163981053695044807784229680055326598164538103963682288727064927935526980617335704684999668645026421698189286412665171423579839521821318596925924300388881271092374136893747268846434831362502630095154320316771319502082892204882908469237707791122515150739999184876944883120233914419481236096909672986975339482335071580641985649827011592886610749211411789832642841470758992276189554599127033087826744761276562587967459658094405323696316280113627712424311363259252002708614716613490566961477029619085663591603152065419199373193378712078931981891467048891024060531195836919063277715838827258298674392711858705226033816927651254517045702198424325875770918885457878926058975968388973211301010962145544006437002353696894615615406685521723884919942868175563174224948054578381904728081480474743103597110865273270866808279801714659724759060386850783903275303361030042249386843576504787950649210577846232122091355566552101991573365371007037249600986232159701522947051650361416660687970452790958223875619542462410744891497671257284932006346689189655230351178231196382429082302152539154745122142693198214079840285439786222679920024091675111200403990257780252897344531354404686545944804393221566629262985566509062141640777423129421936865811373623263727738221866507486890589836788600366487929897221714920927429670445153370873321777671641597675054241633680024859135821910769009162003682212349477772556027629850744276839508912530245044977225016090018361548969107110383263161685765186086941827413483269827361234620386466202074282657214004739599351212090317418144434020356176582257360976606920534944339662770717978120809211475171945511177044567040696496285154488373456783487976869942135550735539167233251145226437798068208367674626678786191145870804380796730642244901110479429122303613428314309037019612269620715371039665060625803782780692288155506443295004899182056272845495599123718826104879282013507557328833892474168744872497983023268435674197282230958343913737752008224161149450202590540585236685746624860752458026825005304619032094054333085944240368630551311137218865704095692541071470009716470589702120798328988259506631472405849637034231856836113190207350564612922599107534611204709177764475480637120952491810021684826340103854460766797394977722163877588523246565451473190149956343050955435851018016506270782792343888873067369073787660599145895955103553251748093786059442736581867089743603876235265660516347567201876518182992514670039776295278427260622094714929328380103292658991505052546909982036365352502776453730384376256880377699023343453323436636716183856290420486355250430359918813495037064160147450794986097063854230962383693707267715911425817342803415349433078433437019107158859141794252586684664998173327967995024667261259073322774820891858694061878294313587195732629284777888405175411114640893338368459773077797066147721171793330720346862063132457524866844560086449845645639602534103149385395123216088251346002910854362494989216120620582405980100054340511279314278822344293125685049346101936897697949689344738068662689896254154224139264985406088316132574390142799220035680988990709578305873774981235864100997321332392255824073900108650328379774418895279767948004350788713608077984246239913807226890754544540671272152609896692324160960988243262580740584784590086162974516490002091158690032742187669688604312046668358067280387470093157044533237002184247368173595322214747687994480079135439655612340949700002642212067441323804932229355254717807813290524015121809969111145385271625318857712446659164663886061687236861896239099666646172836007876637487750176989891380608559180783322244615380260169919664292530194927590607641453167888784239128338491101828911790753249849606194464533988793743003456333498825582429851810207908056963922837373096214675085328752900660185526385672869169625812600761385614983240961115468903772682422555621009641876431573986811417640537182000043142978251816897236929253188403671244028512740588144398503278644730153788578959693827762422832944225176984330604769295829122266669287013851493330810516939489828437032336996610995728282395057116265907834103010640100986812618568315304414159602918797785537398561526428906989938597588194549794481919226066090959993613381130267022713027939141109019485394301955431054880044874262642104859334062566839298020693484417743709043771040315860607778104241980591504626008344547179861161352100731498653052674452499351721666838495621026192831731623842750881098795597538434268769923588903109598537652128668653697228026893079001664132405121727798125231582364807424925380478122280188656303372083618898564194899317539907761600580116555271648484509538873133206110541354951222752580329921224098887299935740009217203269357884713861354987905766679625725337211986786834459840923684295781801513865813831331323530793583661692201952446456758271552272699419550857059491168044411351399434496841800640156841897371983457150695067905582493244658779720154394241596018741445108125554494657022741063292171059070768725193275872907741765127435937305660640487376122824143975859929250127434825799869129211507748699440858250103676299629095908011354816227454741334224867445352225298127899021817292093323103762913383289377198228847838451272180748521831529573050942861541612555903758415691917358166687342388848163041516829538385397218581063838122931639729524056862250053075863195581773791521701134474099864856272240860320589675007186724703000698989704252145370490258874709923919877210503806366769435621868332905766687010374355095683109596305436688767658262115600272362482954656909966267433401857298248189508162664955858929503272438538714102081496951232944965639279428771883274495540123287317987756267932985224918734753319726820212576460826363450591256945953786639558794118407514212056399513021054643175265443846317324715932903056855781890102857687678933251969807241485930993225818756759443090307696084275079921697630049587215462663529648898950325714419787489834370032466740943168417906044217693476016930215441748959465620865659734726936860100668638042041046093679150693954918054149363705711951047322483921473749419644796843004192741520351379715221854017989515708286591764868418142375616657444164205951769944362304215501380895186169970562363977447908043322357745278665515575559080983773764551262103356418842854664838267670279608523320145623142583086654430575134829475871156475635469940902679660085069173017658666790645629526798365514421339469877113715477542779043130119655991949027406560880400088226244948509864279781097835350351975575996174227212556128911335726664918463524270561363589701596000863941806709340168280805099430072639842770096926289414707279011237946695218346150503937464457591136734772740277936991947263390669333966879697291876480551749502164292858178654473013759694313070680093895327789997183004409793368344463190616040035233348374526376662882409513827151551997081736774820362156515602188076195759415821854246778584411793690936810814358713873974338001935727065174912261239931860488106301747986411641052567805786980122138194705341825878485275745384046566304209838241230828676434983824997284502634859264205565578456426378441272723989433546626923951203792617609140008049152367498824216882815065019139872886855045631792449492121232402922502766136165695490451921455872487858312017455330346150044444072783318772156682041758830571503755829889377826399620969012889003631281111083603633449143485068781758520587683215858028741028445260843095314519142672154389120687941936230782922045035470275066160291792875899151879698026217507077317553184790346481621922779400326349461648618884686633946598292319577759861262429243118110254020229813954221201827004502007634278970960244705892778242808101067179852606239811105084147667137716533592304140254145432895928200971927654891267326574562836492046429309640551571973675749831727026772441109430270102920490117650025597789340682155107992674700024176280634027047487586389691342790182239524356002166447273042907979440232752017400148385730563979150251514709141080441549444524033057194598677207315525277302124488132216322763574456054357972392566776628198343982973643265915479669461888398525272663941417080518814694503887863057941593703738223949115647939226349400474477680658838853500017615484924725373943830246392280826706937708812453738422557519294320598913691889842687821086921329373003145361312758097937585146838687667694772158738954904046172310418812634266192929694370718989146485180068565336660338002843680640145367871497833654808446911334229738092293856530731662274440147331215533594662742034721549233303591724361730569754088650592595614572002222306712761374273522362816071888522036279408690361219383024065870859267824716846048594522487931833406712912547915961711144789226545469750050877064528023797123418182350307667198737069991820730493221897403110223298473793751720492646904235553870134516271106458183455284753786774935305035133115694089852601517630188657810559353630749149394854339547592794349830867141467955321106551681054576787349734177366208698654473042244674793555497491433194642923564248628156223865238754959749778296097579684719267132434068237757392480459768512717570489435206212571840983381880244291575620488153522488601576223844679896776983801071471558510185218528703460162313206718243219959459962132881826878086234757213467820713219810947359366999253986954422451556191031629024571543063867072342049205311776797842039479785759289340758186636301644587186585022922295908077341201131376571883892031767261970252216597150720975786560246380139355283944701129620690286341921434907082014632327549421366057641041852845543323455702033338800317800828807165099929633883584082931106223932736500936572082948887459640106175473127808916625906005507095369320845809078197675509276654381892218835912762571601061798307755810443266050141920441572487850988387387681301260454279973759447274299860127016880006575034774933843862513438390908150802308731050201048082006556055211224026367392842829440952539431495051527067463537564923597731887176105849105099271258651046702386352648922290300915309600176275418941570674886479500427515972476679553754981948016494029102207128281754788113484397366618064681473394609035448698388202635413580956272677081370463017486534608512228590286054713797132304635230516850081542921345292485698335790045701529220538905963851994446593306385713345139345150880474458832995043469804280660938694943616981737540259160512201691609507582759284006540512810177113063796940319596757587212138184392410247198127111934826239199886192878609401131343364425603717752895008517320615039196477290135731739301496403262353658740489058160736200891623021665296082636274407716986731775254953495345533020749580699220413992250923806008044755988175518592438289067267723511815406060868484816741376406878840565165087526691800804144367984967161984830963847704777089504634251185472999700555966448927875500063639237604549598424708596142160837033469469315237946599225207523444178832492328411679116081207450400146978674796287554671201801555310317392000878580829462097444746633527668453736581856534687061282059056835403549559107110977838102249455880631603469492598491976280190942248196951517949340914502349530098744793762377082838878295631497499371877821889113338349356617885207461713834439061552211994034917162725391176855710403322695841365405338505652512643715888086678693237722979568687697963357746581980613932266560090350469614646931945120098587914934916159239966677150878913920754441327992482742866206404383307645461660280244308676332162584567249478963501621871788363618173443436595546454554424207466905595346101845857700439261226651512032135190167254219121671193670418113697447244184189037341564284746173554477868331311949670385383356590572514591162389287043788933302846203307489544254695859006518156316620262836529713806495754885175894005765344362874697981233900960681275124066716978715942038762787808789311922628099882796508427225433074303807967061937122609879263269753239723063045475570937608885470530413023021639546918970187344239385872797050356682613124339891337012875933200237550802417583913095516269497464369404634045372858397279235900079606891472168311958312204649492226431410681984416290526312191913507867341926889416796797996630778612097496332435244903878472178941079625198947961565526726045144745709252974907992126169453580809535067554767153810016527003298707697780456592316657123411093044858109066388357966741612173724027294804094785856984572498950269253627154200264322837384891162682664179052131104819514237330311808908739594700162116175645534348796474241822049281943002513958966140147921583458591552298945908318934189503594463992959001993101581590304136349135505704074696924624728732451123894288620593226470107436115317072496910481150402314452102484660033374665173506770132139625900660681888847315811313242968771902076169087639801333707779325135849850052083049133027448482920721035071443495647636598399724539697085633561265392600301644391283562886922168141885691903318162532114256678744882327417266018472185559280840839140953184451252489030856915369970518101522098078831279810197039476628711083577598962603705901685327565741925253368936397675121115456802581616343945318744002257961666029044416862940901569180633308121184069211782601671846104042898838253310173761409987750559853585330819705345604249908312865181577325017944524538293663337180825942145573934171390314348413230867651081871341026380265276111942834529314092793988563310343134269536848243563617551631550210157386347533481044930927215542962488303866437831329460547651962780961573478046448691031158294766748671472874602849286824103005929311473601906130369827004378434187307180035310290754399856237851930359512929883431622471784409615226436738972984263387243307084281852872730304929020517498106776635095896601769082228613118002847162392606820576006041230339304612740453071784676479184107438224305238510635231823721701175937363424396486125453770932342001947566609898027737398743145249660062220099441132653185561408302161678807770866100068807359700813560208486075228749857640585205850668782647438003632762022936565326823691155434480762674744451137108029931818180182256423453886463018886268379258579731008394531382891007730762219143595914445977168111063234908021743187152411786581717994925694566185465030168149559198377332187952294656432537140359063621779613594613814751464184299320528030481340420282265954583030276152133070193374672522141376983048009256564137942015225573672034402520556651256443243109537545628738924719299218898950171163238535617595635392231666205380014926754719757086929146662821833240423897589709155684793317057895275481740406275336125697360318941920455511034533158112086813191006184189764286450357448651396979946624757821780129349550900796914482671295030380546875700920986586209947217509060763946025792262796790524142312102563397522917995122643926574987319007303508507916636386682425168114378509681219349740446814666237528082792690958103742249270818777423854529316404517310016636220269135208587661467011128402280927005469436269254087679845345630456110327515576472823340736980344754276463798106117363754181542495399057528630476843208076111223197585431447692696674725403279305099164186302099357762839716258720415979848277771930206045071054388999219184466870882165133574839679223664705856900340171622592701840359281470099277219928272329142408365656652739372063595882923221367990252818113010587990742988102522922057173380499314789721386674464788834464954291383164645811405143325396081891662505951261923359322965416641586192557403888440580688232624357705468082703305114952645196566917839073907369305427877043068321532710548023994733735655481169700540572204509290393499079536826183917236599857886804602336974369077431019828660796552572514804912576512848348712290725075391445615228735264680342571479910289666731471127578684997077434537983276439553485580479397555884559136537799657161161236820369100493751718497899385844264963166696521044324683938755173690218817310331629764882199673841108520280547409517025911615073923804686809944721162066670687114358459023718506269760063905565605366690713434853350584184390899179637615900703668545736725751929645011234691146608984402675841665251033566989202404276487814738254177296151911542157146665859890791589573306230271867794667541633248092946260004456598053775919011942800213029443006278783147330665503563893010131294523982873826230959407476926325200560619104165093010699130093835374198966870697825647287653095484766362211570947115562078833669066974147276508179021383871810814713945611715021385170333649385321728313160572408180604421807124542353877320346537271119064635044466925589365717908237446510212165096682685908461329255793172585443639186565989355228447159056567590002220409414807086519014268989402486317583905148821889247227090997465510226579924508060582209400523010346650545489677634059288828284693317260626424847182367062941240458701625033872256396101618742469993157686516661046367048601396130212566172364457352547813168651907529654488077014868115596817351262028809463198807273744412997969629459820159903841868750143007403542011237590644403155588346243812616314009246214948767699730447924431358382738080193000132299429310993461375832860117475638128475207701018905387923584897375469287195362106460838115754774012401275840864229838002484579115459783841891631287877503962073421912519165353966779733159417544178857387403200620341397549515397325092804065537029837315425867468372532319053917887221840571458337732651825204264472134684159171134628874361317572838982566397923350662675328358595977242612162819645890748126554086049681139027146311634890447019520793813035311456486989281749227152396041753667295865334731886129091096147335123472891469139873306357494851163362475265366932201598251026755918398040859006639111684896224987699533908134144620605982697897030221706883995550716685057117026607811559619897011746991934304613569818286407890480798419827005264531670818841707951309821563378656815304453410875616298508431950965623755291267560313828727641012379903076717340546281134217319652740043121498364354162513299294148667521866179710727914926708554908543770603527581261551351637634359128598530192365177768100693326880216212249674984915836900502351539279833354656807097143975144895557965773709079073183936436641407440614072210400946418748937385920897643179908546511079117592747693144963928294680435172868457500866919250952569021343117853359034295411223222435831319140933218032276331634879628925682090150957078053367110148700431481010510263867922168114564032207626360674019197921034160719483867465069409692543922988372588486680286085214435715031882310768030069002106528586087864894532489397610849702267118192246873933651145960549819834283147659636929796541680598010309319157274945145029506431984056891948898865516931458242569036392539289291154572294900284781999226438446235867359474083227199050475116126347779619031040483165538013253472879098281384700853436470676738876358531330633457752210510982231385366209626270557428233158686258491181975387873149613093492194044731786207747556276695542936304064685744080386206331733181255540747044729401270743641579629399438609590833417841312504833780258181466479955533255503119167341222006665062969948664311879357693045754856830889046085098941559828024288643593639793442187404211602546163345148318678496503634141467385310186582066748125732939876008169371194191837115908304773859453662096730767937429009060593354701543019193411967716306977066462581980159671930434440958153653272061762889691774529089253558154329927283338796742755435041391632613025986098403730211048007722221190214285939408505694562710694541609224022643438898571735955402449855783363665999456621533202294283536002146119997331419920377823294653062737501797571997241973398609484670883231743482307037763353980896478532225356634525319205407215659157544689395564460278360629658994831740130898006995984382694026387688547964883288651942188812122904359239437825847643218671983513379336130998055862519433843864621512641340686858729904373838750023536657550851755675170831906291143439227879339480076618496020738584397025546380783962514382487752660119616403107123323249711658545855010542339358756290209821974188254683290306752783201185265026643842278057333192879213573676201266904755587913537580390961284450227790615356145510986479006471870908164958443155066542994588014395390621208324626984148223610695808267415303416033682402208355836755102849893853264096126535930811629232694242540079435510908677432277301617423622330390993188019158321308779090861725944389538709290555028713311667851006228592570447529299220295691975378284098333495023901629387590059166505465709364355882272179634112354200712236629224445539535821274925981333707379425670573256720884343181370650494804278284845171853174302284550878442778528923297828583174206235706596750726542334060291971731899471269910742195781698432213430353423509651310787284952921611120699398079354514944576600680364268477248533216718059087384807095749900571177721074705356918577458507849462730410929330913816555884765936121667673787757530466582945091129605918395732897724523079909966224948791537374234746146350877625843781308837961899319418438774577282514923930380458787959897825529397033424195534207452483814419539349336069715470704776645443917789812330380161952415757903853626030788470016942560319527751811361378921188707044985037270115592666913070932393213769540971359809804491140040173782503209795372630050131291911302589424586183733518512452965336686190358885792655164994470207297342576221666836887213428767166142271198883746239545032041303756069552950695016417360010157646853755337219088070769676794519258643640524311504952405165451428085972720710456884442349689724299932189267065014626626974529573870690774256399456723442354031356312019193904526735280762513597016482377900352883613966170590955225070582942254340685832677963782217665832942241783535352998992300617033327310099513106993786032857390173809948078212244538326733608014213068328767848629036205082235895917392069515210115868286983730955955897963564594830139003582829035811618003802782969763081782289471991718111963128577644998209182103536013958795905630422568226310606746518196391958652768378977510944968558691482330888814799629632902885543333944881238549293342542198665733713607283696374846878717117573854775086945800081022470004971371599467721708189287130976662949145204018673223140532447556476438346821394373160390282737231618822181962908543368410762065417868802491200014590319065675110001465524497833580594812782960174421586393357128392112537076628787101784127211463919809507810819881677475409200816424429212633396641243399909646758639771778226955300003345136588741396187882273486257894003450108836733428272865463055504677097647860897007451236699118752280401260568128118495516771978544389676493559627775475651381411376550707080508280578094040482736169630584722684513975654371022860260858227805731463946689212954676971022341837351764976256376887599645350409461082279385916282557772484116866664908843209853519619565959654982046125323580945389455223595189325480170080966047868202872907911928275680848760194367560584095769157639915592736227572190728516654214236364844339396887767121571435770611711259484314021506759746142808103804391957023678921652531519146733876086518285733201960325982874164671011632926020837941004459907849339325442092264221581451067376381161323697359967824832750280247166767153186956253009103372951854315051012777173255609443750708236271568265120393868590073872172383135916288385298562506423634837412268409559041390754306927938465278006150945184573092318956213512895045749352608143896072898220180357497568487785565368285486318557967325499887467549778842503070625273382754003801974016390877105878798514689053414391123337593040870646623108438692838604059742170041130612914809638559119518439333589030380319213241732507938341080168925461310823550923157669626139820178444930194629054970516893806217896252109692198752396224954070817570143086991484971877838805908190373917768923993773176479636848546406673756813118265872226362456066172373019536199852755001293996453688818268008318801731346061875589625403762620849762501245510778297615422554529897928304928209760241219002763681036260182362554473197366382059124398081646303921997052417351796225007749544866493053727060655951653230798935672473114048570444752880275349725328966356919098239851073541241694712861120130611468133439848703725562597321852016740054410919442909459598064248027046829676200494037010331137410541414577084196150075434060347630707624807388031489515518136099806931068969935697437179837561519488411053759598266295277491913620150213479062013306152505357884292818096896297353232791691870370920641231706452196880232700523207134323923952665967621050246254354129013168972325439310946206359217911206940437345815950295094415073389622844082755811946657392236371954707895658383263764353521628575798313839857969528370644298007456037123031403453921157567247166761234600648813656442165444872661131508122244104091709558006853274634983132348413154608474574837479096197217989262355440529283552771789516296000928451469820127302181058790810703179623400244323102650168351076650184839524421839220169923986760371822401986722287616179374234373126936248740091701481875328758811343655604646503935775227941823501836026385636765039240222306995128866819973507520283395941215693361357576210801741231229326966489661344127234847691552292639574489139312256364817562783390610759542644830490586467019015293160085234257616499400891497375394157313216429795081427529009839844824096144444245589795565870729309220298838640079838867322472167587977996134423524009656144618299563725457672926784590690866781622185581597166929699927995394756033691426851114725484486819612519341214426339930835918081383119893662073346168628676900959064796175656845387123493037822450312018068424996902285871861444135467627448025805885881242334037996165820622389679267174000305101886661143428570892930874529995929028056980050917791848596723579751473354323245799041727633496699100181426090744033345991722129167616869068257538367497618211502227570893709728100090189435337406221817880789732096488548990999994309289195193203870404503301307246923888646995180641944638153575121223949743581194974963802265235632207675629415581892777979083355679707880568530415591856021037032538413570995186013408708985708385072810941151434913039898239564527279857872673343239030933868360526279627811470639067518874718380369998327775105551427355128399558525466427439398266386992625719910442120642009306070553110612694589840021045216615986128631341922185119822552358883572725872352123997972410838183769769501435594410819950698907017018335811954176718850748190107677989095439472044247108622254057412089296797275104988971334320948115796605134421785981057503383701566098713451934474884948425471565270151053351091357378843249839029108152102284606421776053139347652960534253406369353114926513275909006323530494641575679513682097802550816319437400955201143334831050977295494573332656233594685551083366363084313907782237443550547037033474642869078402388578200338879868305507747010981686781792839366437828259492977471490905891528714504121217691458383285885765919491443043749245841628648579238906805372944909405120410754896864577193466854208574366717770279050097551263130883838070977915172141908823906952682660920620967072365293395139547445468069182768470775099574125426055765287892601328320063281861608691676494459445682731596478171995101452302445235510848157826140566824944703751858887208340714867732714120766274236186037929632910136964315395204809495505249323535289524374618864003916612305297896419637589923413708889441405080795716749726397768992007282047857611430423287362885186819644565081970802255930990760794264376263527451350697424395072182943581162896184081794133243899512790645563024961148953034107482530370517205853535422047523998204083806541442152387125247311658659463127482574347768644325078553723470318053402268402938835526924269827023275670041936714699760298499828958939779207593467731338341805816768573920312852635994303635103944098789325669666995648661801848160069914227705223027727624501714331880752442136626629073979936843181017820092439624186489698985246360518237471469191243380412713292761337005078009608467693030810572120499854070330622205302836114887693220555466370469856610748269196220431661723827145501371010247838306572646941474261611100600795986296448937675156196277832558394756633688297092295893246532001630158104988232108934100549678156969587226208804899999700916263044197284384098788805280009896258807503998732830056543748587660831068170080853718592074328287086666508364564557334077517604349946129093899338274669128134566744736305239228168398070267666593155797468689094635188736714546451242166772940314106599743172382627119047654780262817022494527780320421459662428468817887268406774780262148686304385023769836574306699184347898314283604181119400979674669976112674358953755082389946057423036475592203800718011550920131821778835688600990209996227806214616254166504730895472155594076256118693894065468000521316864746826583578067950877712034773735140868741891849961602990758572823917602802130454222238513193761141472219965899024147598407309129651630579302668509516699125644306606626216613075235937902457252128795433966269140807194764981778397922714962827424819225183028970813908749723283692979498681473170256254574776962381576519721695013936310457021846945824579932188256131382126604142548897204279484205455287800900655080591751539743700143231107016886585667709349964307658200600814002549822435887813692970741252686135250663098684182630192286683391509639266807724853446824976620101897021795611996233060611180188802983476520270929610543687963499097594443633713991426500474090418356783390390094620361478514084332834824900715635818501063644693794329841765815934915023657657558286430326714161220022797141421568813153628762986526174223559446664094790359859771598963995004810419982079076043495538387294579263442339026497900182856957121640300585974743658190258751289918569834278210420109442423763866566882246227076802600624918252237890045222667364863271760651867263035686056858669295316539993512008163752234219512273882933785325323988794310975264319881683917443412407846902287299332972406096677828103040157962644745525926068370057173230497556287272220046192697570679169831573159732694961098727806986649543665514384803561341535328763130195162831209725444530821099440871199952766088050084139744511285700048527311247067219268178690625803920353364180012056941158424299443191248419824618149847613965214650846264274791572316817871006829970636723112211248905038572453711016745617869716660019426319471567558051670173034810053815969651181391414677590126559268828052552273454938339445000691007443248476838481059841856488719475244871438484089741257274347653945424720573872232322227425280657027997795053593438582087144434191660278946368349900410088886201382125581454609992590737023564938795654030849291343591696697408914280858753663254139230748899343530376701572655963241627580200416208845368766075625395784752065834354157016692333147538078257523780860645007411932010237132339299323475388687128221853595971600365824075140087424597357047697193235696634996966587695056977969575158086649697490884173828304448972328548759717086461921493345986707511460832601166912564399423020762268041660688797447045383504031979480728389449213719630151989446708614069258757669934744465511539767806086924998720319324371249981327211119631957141350891950682589595831065168761518231277445737937334547665263345153076462287434634610925220844435536323625551960710701693725111308337520276770984566916954109529484235729423855687547531982144218466470202158439439477971597039411421341013834802550421892265332527092692751466215379175307157432932444748650926061084192765601333391731933490642320170891018431478918536229980569803978081189270396629393216653816026598134255827614555059277437399429162729399424187930905920604868681785139399288079461642000791246140118222220676184551040476902037263888969861316417758577696563521889717866630611870140214442795414403271574672464719916853736540560219903974379574066222298951462778904466831925133151792854803431922700871086897573648684389859296140004962840187909098062532573952522323312333755257351555895691533908583019611889312132954341134668892471362923633267779834624541480996266606103140600447582626271877725164192623356238742119454751193858898977913917697289004229650740205268466065957659753058924812903855131930588662179717568547017660403179835369975352192564420848187725617434478108735725998409021580058019223345262230058533949961781331266369372178289928655813606083399778680039004921500165292640922249949130219582640900941507115622830766543658968799033924276682919256468672285484117297113184488385212896979255514012926812783208070137488124354243850079470796309421887500202845637500673700762170306020918053709151948152458325695208694572378167923647203442262689875007620268347900485803662456981029034271184267834967239547035662951970730382242727594767118554007608978350018151484737716240185627728171563317696164862530445871183121799526320173665779319347712556263982211085843513315082035812110118603125773651430578283817268375897936606616128935563617370883738500932039953037144628774957854851684977822893485933262760276137499032631802333343042706495940624534648102949120532412919606639129125545983168975008192050350180792042034492826632182593223892881768408663300487768906262841338730885541276240138770465598472030749746898633578594859237617477869622491689583724550765046666536686633213986892571786248348583489712074250125638143340247231183733851054510598739520666838262124087089400920703577065426391319179225510453110721571622478853844542307777611928959309536087738854778178231909071128219048483668075792384158845366967179212391803867421026852371955249381777689067590585058748284274921350544601664987703314693448537708912281004503848397820974972526506700439103442939244461337113961132364854990238547456670560127011262717306845548284286863631491496182992895850490325126678391103082652900473577509267558302664351467423659768397585965342870539224641252076207158648694276055629301794133974641133629526909298337532135135364714600480425651572737987531697988330864284042081373618002615176337284965594282717151451684493158114507928326056035319559612194900191455540800035292290665162249477425044723446724879697583501326006997225541352400794866034902731850641858551740682094187028246763140949991147404410432615103933280558339532858270690353283303677151967263454282297490992669809025803069643412645377424910605328613467382667089187355779101126441047349834013594777060153233443311006730909253788138098633063240211038705083360255687552781232255672997491274269984997584584145861291292426668885674310041774571125914594611031752105135949049206032399501582279253145064084118944374652831470727977369837418465509080636130324642215610747265286318018431183746699999018089373612796530699596081298325538233082344172255269650733742658762290544610068373502505629710559543969063418189093160705067645660702371786396241275389056686932965636407489092922082041808722660563481515522548687952260935530741779777380257161031503027547134221542825918378928722589989053047879214170262218721670218613677344572915291846199762075448008265091602349896005571022103433644148491918883833888425902680412574325299612062712965080658020319238233563455440738426951789414578903160933097889100873866659994769806021475857623074478897951468287490775842641406281662370592186166474883244219808088786813205508615353608981081816822341777516561891312194112475742590447110338416816852551919500604564445169312437814842431018574230122758944141786730883307185615832029550241842047172647918404148839419039440605287740843879109489678612380860042802867443784748540798313623066590245217420281273042901416867431996851183818610613301657872166310067738106690897595644786011836123507903209088434542448253030148124331554934929354981483106091964430414548569067665791183973997343113889350810689776731798574176775748452791398747248971370931424093073794026594098710251654372470624776300383692877179598359957059853632553371562673379652968392465463729750718129588087243474217205833032703540881992913272810336089899138365364016978159720190716605749161184994053544600189014882990530146761092501869377535890761241815070794563487060755089792711083132549790415838004377152633530897479570508053431241559737753448618025789351394623609800059097395297300475073734787997517029312633367874529314675806697206357444508620363579495141728156161302160951600691370206106655831336749523284736497946061044704315281123350658678419412947087566394077097759032106368478761139294309227928470444254499802734503878709882861273592199129761250383930299458482511006987648523486012478967763000531238698347033972368640504840286647882157306837466990905831953147186688484536463384106287052315472353536058880264992264659633321159725657300962926762029555817118708468796869214575567322032776090739741028572198426696368919017001229809094077608822054415247661507551478532060698605219792289882929634080921920375202645116678759608867327801916606456074234388184364147506201170071247239176032583693408735419022400866254876444748205503912577793036704648282377824476184806668965260179378001977731697770010426987888868576391450283352043828834436921915918895631747313323484616989349511021469012508371434551044701346293620834710159482194486522616678712940371436158968736459506162737765153722821756429475451639318648312332104935630360451766981651882774961707093452780779044237925342342458054622640519343651521696159142867430336414682908635096974370111368130609710966962373288515093358929089762660418901961757734258906566983067472911127469992988708399638650888257388228449730109428799445777115654451227124862100012318082962440217737489416012633233690218762392426713903400420049722928060923885083101339460570185665225732519100871904436967323764490053039913418834304477236106566012510385842090781226454750142317853068439181291304801352997542050481958325390350502479179120579035603041187830102429658627303581065643244383021590522041028002522308791998534647864530743704087438015944669130507272013288024922475974314178090485516532549475752462864558623730951947804908882199902619623051532280331204588038346747341977386331194338281781982899139864413946437186938230399173803237699077839605446593746234203271713460430465749845527412894314626614116678721650411423087535084915956876955434959891195498153839804557190863371105575163878014321363780793933587163990960212302567838933938433518716184733749369655171325814055698015724415684881457504744235133536280085922510045894641792710351911734220396676226597018231080456993168735879424406118271104165586562508136307716177470316106794337399832090070000277636091923720315286303750711140548534805682336539944029988666785781367969261059679972764087186818249527003441252245229398344562100402012538986500959069185543192965093726563831085305714307232174269809207774501732031801137330860106776412881193832823372784587363735854350614109033728832255757393723033618496089953898393519118883467465962134543402189312118160045427443485909735961686278924569870859055024388151095923597785940105749017842058750091839439780604281503020400870729212384632136522577200590377814830474085744640118650622278574199367565624868918272854123447220449956903119697586396877402271382994279892858339595747604213600820375400202889825499215829820928292768390028567718679186922574291340828344556985711772489531692386393286685993500181550624988388301324093832134333182089009850720728433373355817670535000655036472091495960021828515035380083668529025447965629881751451686008051825769839511493024857582583720810810682231876529463685930839555662478060593402987349942867124037501729096590830029170368147301932645603027977488758233301346152805059671959504374118004988623106018407478136961736996102837655263931549239760896609306297132776470310327737523583741629238545736183166018967258071903335965961931359930699045844131683365739565567693261212774935743635076091558340464106525297844296267138651437836910510379659026869228210785802233922964436167894797993754728117856155581818056768825628839648300143528417794566998945061840947566232418185159116901124327068424632547587366807338269581591097554918346378783221593494117351796753123628867189437945228411794888809605245429727888548899334918955687091508964657820094166973160284199542353236506486973353988054550833863767533333673543241412635696443520602278666868606645057672987920937596550245577486211853641849097576270843102776900472918209734048711342261816266923191628054563012491997747822359912614312332177976607013989291604546960632671163339760154061819918615808042653261288258958115640735622389128008202028352439044646547965582986909567199448776694859312130001865483748970826061014667908914982041214632519741687086928544765249659930377968643590736472647232358732182819308729323289875184581093706917363004769519145417449180920447477844708530118783413268580158806355475089610637031779666523064217643765595183965031621071165272823494890377254991402271844589988296103388313216166820443795351299397561939193866941357541587828420474081541193125738486437275401536993942885947664261696417526220896441785413001407534737017061398430943710834609880568526510224240001812301105139597230612551509633593517236436978099741349460947455663766730017117956286590172708361907264987156406451149375967252326394115675123800601420591243133324977800352065559565713018992573523225585642022045046409383843929014684989163591855602079774272902687864273638585752781572698337697658792053708205818984026315488667708768602175092058162723033082985147287117507688709926470649746814667986741697446101617737472927664561971991230502476142082266114996080317752937481294766935736823009458669658675145100053791773908006077149730708172556188817121962529551555252038613717065422008644397066346117836646705853924858192166978879787433498594408117985628354368456211232217133126068840786939586285406460828027250699994842763035578648429493414925638041336954065490261274276391484104365279091629893154694529147258721203000574407061239647861993651499019340964607506100311161124520906378850690935112789023487611989777004830611626449848443176803122647229222357335702864725852453958510941790329822576885768320590440552928541580313902132045156905367047487651834418898366674350114003119209553913307853486267636325550019813431523493979150657905390105531797887844317353901372640342753012816198017239987387342316167643174069999584349069513030283849614197963127966122846426240410195435696978183713478118474945880185279012392603174191373481760708284942650814436339165762147342591534950561213292487889459482081586282478781125677417671754685347588688610269827957628985662451622505251938190514412378404948249686990304026472854578472106476441539174850881224286081383586420049439227930376251907496228401637898623477491117552074979981208578412006631565571703996324076479077905823708264353765893791037935207336086344166809268831461637511595975838912286179867286213372578744937925001368844415609179890396063819862930080346381535668615027547587898102136102528855069616715145133104202090046238357196960403387164729700775685340365825840182272612292690742046448669776665638453956251840576122128599820922636598683324062490421040135210883646169844761923208357893618089345661949462008262191486123357814229082043760870000288693886525639770328163166510644312101037390295160545557580992607770322647595680557094962709024609131086513109661636644675101376803705155574204097885197771789145773720022305454893850997838630024410369197137260709188738929124201441252825738982751097633422948498286097318046073562039501671007785749674905468936910128054226945449571882749321425402511695562166903557580035870917382978832400352789114732221531905685792196019428887688106200559251120294380418016779354886263189139678704121964134873998658629170641522836541168462878354532408615628470218754567556861899408944721458658384439308621816008817037775197756592602170542928218647399683218331058493107494644305697817350380402007862649968180434402106761275946320357748951319560734582434105894122210409004958175274627999929903684104364651382258324129134046612959938746310554666067872091012988270808216995477099840300015124473853567061714099675201096880639519857215254237433698956548617663602693546437552352609178951907826837636768317729574706283331139764079423966060210953123612052328424577956794545803180510383017746821927655453795134842908944925764114294277486365991277839126858235773480019446129652969839850720414606050801589079775028978556565214074079600174136330138611172699305531176101039470442674917265316164140149414071910215029635560987156406682022772163759692250424616934310867637326312932594051097398718799072751913837175670093109877022574339015335583482797476118970678379254842853928583408798979867940433859027918162336510232634991087753757537708590942365894597163426938044220182679681661574025610288214388389508314526676410675721394298873854201403072202784739835813161409789644490743793239038216371832621100190563867708495251637758077179001214304753918702345713336538960511668183502903507905498168513192283292653845270881196759373468342850469221976750105475671187835765738218038105376097735347909635274241667573282713096100044831495692115839250791872080060064613442715460779068408882514018794640552706760338798477549075625329699296279251281664320215089413031167842296745388620942156539878503017536794048473184252062106587593334739109722383304117404107568478877740991113961803163959641760098152724462270351672096212756636819281075844251409466409740645374168518087170476769227110090973052792231819044621282111617929816488853275984079609298141879072398497638842050018885789179459205900982561137655729766637423137973809257405855501952348849948775943327852695669128341699442736082813047289446927763229101252634801601423485352385497821908415288098746977984813603938881853372711297969932030274030539158924631502466723325570294340017683380700186994337121077230633330950278904004391033117556598463875430424242893476051078053981971627674263919488310251827851804280461463311909113426379784128788890292534868203743864977165035336424416130025879456811106174953425597124573856720429176435899969334040639067682870783496163011313124240615327619442553402471201943108270319503926599260716350361990723939766453759247046310637711276690260901701086236368855202849834862611422440271341427659202720948025404287066166107298481035418843415102126425575238580822073385508541479619305441431754505063882729796290299284804515107678175311471951282712022292822708322340738733661015663722545468587467516721255457294726207412858137630960492953403261716801702722814558585837080023991197444921628432876923262069177737723078023251930413957911278049617076960761660653981578890413890810221442581385072501321691467394399410775498935439268902774931413255124762072400958239230681911600337115728543831277761638709123198174726897793784320814662731845102456445701139403061507324249968175517569940654354545300232248434038239075122791504086914567330353701769332526475756147412380053991534238055791845564450416597674185561794986739208969588684524253159273138173900805453358137621225202663734753948930978952447806598994261458238939627096723906175895587006242214388498236183010807112479344968128183152214942149427329775394518536037584207948249696007774714140964575185497879386319104480085649232852594603878284215498497684070962301682796237494673302248098155425174637184087769980394751797514996946659495759668978888285641171173127896044298224242649473056347642879013975816921407134421976022470522381490817206051284523984333648391583356003051015650072266580637241801239267444666720885867373961687883551196334005179646522550863987794551744008636456101724160010395681728319052051139853443343490246680451305540138570894639594762785560180533184830246453369804936919300671933781098251293460181567696181540885622310816009179451387654792419066634155048555822738862021668267944558608265987535304375450177405608526399132927267515704661216283820710303426309006631803384083978333267615488425077611213816706953450865716119061228676284039368683739061127969140970151013767429142753580830708999167832250510811225911389402366321058962805275001657282545671227357503163396659950365830006272212475549652086230479689304942291280598954097750623725631205249904462856226983233809246058365557141499730776677865720742343979712717671343185023769243418072282440217987621133891682564547633432849798935866679483738824940757875799143126252973066886170051009301376205410716269175068277904451608670713459084011244394237633504619249971892082628224042956201883797510964158808010624224509539119713503742294425702064619678628593540301067657677633519080955640396721614425932284299504650966441202225297505477946627480648758624114180945227376434056839201545601378345830070074294773995963607925973518422900756954255325676235513321998186925921162032349179982368948922415909420527800755878892491891774528892472142730680042338276387150986884452012691682864637072047801028527698771534698312673157682554634443644343622561718644677590869726323689888700671310158602316092736430200350007528357119077227342007065596302862790741488490689598047446672044344182568180360065002781649223420962844894803053162302221325246251864781280343099779918235555232094930569852795572060215780074307954752815756320187982576200098903315376967783006945275517285331596491904971502716189996533472644325702076747549753708644748326474150031223732737950818200726264758894078187982940067206280050365220948328286558448570890232489131033134467934370682188663654843517813258901134667151945772966690115676003997594818666159950418785760842766932461524343050641558776664931260880472049246910730541027899899449032068616464103164111859052463887913178754175646631532814479366473474429950120461757487781612772048941336741529354591490069713979521364700301637566714175396538144202617610901403781629606990792226101199788049616269106872772382322212597027868851402751111031194492299060262830841570671960912406430135312114050141333785870224270805873585779348596567430182342916631090288385581333588424529797867447567570300391940539597857345907058296996078960813395792755741861855778386632337853315532347823680670086143172110935342057729709574757329883488665894340650639027196963958535541863681797228644525627299691084500453183493082150986994848390011393200089294913351157182601696372859558300234586669816597750544802714598741704652528500188314127219398096317562823400244356813800033085884084150248680255040665558825010396032870419372792452238014169617108192338770572529971670171718717831628474246998232847571701213251649341227894490801788057661532604856640058174453168629628385704894405200860767276285538177492608807228045532569611923933284321718164833254756460640521218837766699096074743893542623399992605839549481331496547459050668937907499100918414884385160376449161081711708227756941540538236848493318932634059845445949018101321016003488958695401120287973078754321430721564076762503604292313061635784626811362137322502457289142822337386998196446203550057957608191315071763079255731695261969890646605333285690953024232799779473794995146298583865387443735740342770288276649790757266194328363990462760181083708317773389231129766032882660456967623465382422689749886738844747340229893116255550353249387087921406732963714219665831118182193216772869667272334199923081290781355377088277729495498345236570236785382254550273561814921495540484412114019452633263671715646376359529390376627231800380273616605584355890249357977519896407389650728346794379847695560724382371838170856829562950630489027186699876180821671285618963413947875675528718571452161294683487130894162822282960394196095575252394035086094812217829483645890427782718880348659160761053728645493123759427874753774481167182362630899064972809776234125487445851878779009130701729610558286031974878167961286384347203670475822949805500302303450554993547461617757327830464767434897019917757112132508237350228523466068220349006725649758917609087938261344623189032744243600078541127527572645822695741368592883856016552946231607737999282468356560705217158442638477931924905476197497111986717906074577932475628006452042638958224844403930408050741142088619958096790517533332710231737505005571856150197661819450480743826632702166687350562661925360800679900341912321592341150800707130068550888435115565456714392734676485006845818312775876748826747243887224742810633059165172009615833479927807866993659887962797068506709526658392068989439231325824483240203483958647964460965248552257950203615127249836886632948382912389459136113374886139798477843323734080974439876452302037417119601101259213868966983166443937706372568068869061916378696738380274916159989477851024320451925074578294406476159738382662225120037330721800916961530053248004861476016526139677308191827923606850651423188441373149937261409323808536153486950969362040814781256641075164908903404629458841851832013541695393478752329486889890421688627772752908957401247886716516960552126804195077958599444102035354492075007674927809699889775352456408109714066194965394813437304060603622168890262788326427587386515322174978052591620004783394448168869260045310961057023597638148829974294355373536563666164825484356599789980389308595119491382304201682614467409928022700648408659575892624737120313232902255996957988091198644932917387216382672519483349284706787355870834983363208163482994876395031329075615239107483837514958720544954764901703297038510127686919963184164072958526725228591043314915725110694413424324218622386091980888016004044977044667716489505436233716371126564761271372990693365248293963302187953270521997052868502981625928832110127147888982154755287698476314157679598651128062530800882658441530117036817068776014241418631162222807149803172837555319664385728486052279588075120721166361737435380213134294425844238648128790620234679197644655445752129633911554908511489861739336251789553834803505037511820855631515131061735649582608446795887882547391761322647604604721085234491532523087859933480479982000803153915360155614450707250963804794249284523508954167270947388509528955454656122507585304970752527723166742982778247268738444432998988473663781248340416888360802282822461205816054493381442898642806225019169093259929353066703751633135261436722402249080582422348329264121365595515698205637241648363268033110341471878520418492590681820180748546136015339327500555516614177031973676823959896581603696146924791805988704105685736745446591282747646274179389969585554916156850555411284451517228934812709267126352161048036806531583025215596116203194299598401284736106594499620239377037928698940799301462843820238205697747279486970364030013110315085476552402160685663068789759774282006490889142041217801456678416200951767903540494139112319632050791012807756758135330397512882937305593949070487111460291687043178863010837623607231188325218478816268828169920907208556485006048473980480662425588951905521560844902395007892370113781807217325012994204731382736632709074168077410022927108328831091341813295307431527847174048206423344326276979197228715903377685022141241672372664976972239127359962573459241214380538304433497752863553257248569721161421982835972544050063413063279101673293121056242995932386075832949926274083710534789562943297259022017289471927913545023283145475119052293351510824814956152188564667104442712869404118411575001834951732612328993989874641963596696597836148148739429106630872528031649771782585159740823509355190800021105927169070457878387950328194819049561628204634653073651455531983421085824949792270600756960287193072547725855951979393241143416752949956926797486333509152215489017631851759731146805092017143446203887675788558367747607621625945849681761525984126565452558982475031154114921286521438680348370033522921309685601996386445139897610933007868346173169668987607965779104634110081144249174000236398365793999138843804080813479110686476734339488374438951778676160863788327562720145826946016374104589717478592502323391959262489206329236299003775159020706658025884268707166771311078394296823450195829034609141660812232480091836207132718521245681470521790169164475966111636073743682685559668613031871048680060979128207519709030354302014795955146546632260029637894852219590174928806858099811364714292937105428691865646389316440505246110245550933179972960772635887696333959329734522063883092001606030988247077277410339844724706511791528174172126087604939250590855198733134551514292739194720460951652193911810150700817128451988992978162004753748455043247354576474436130606574015753503225717964129976692268695319737606202269408741936945423559048918453617509875266722892753985305044382942170950227915812153234425627574002123196033868446505744759624352209345035955139305138715379388021114025423745818108081945885796952601217207152929671286370236966377637070322774576016872340690489125458727908735975341521111463295639393356581955460659247328847390045084951755157285963233217181108060898973070911003616304464973037117085692702495688711746185735308383446016705384413452325344653513894299997600317455267305999640294439849771176762638424120819658504004920023644965405347758803582993461166515456295426727289708683848836044108376456692348571406124892046720547493822034710498305272424672870870883181959210206290302738265038507457299240527370600828784491408047951871933570364007320332422865998113103093469328858719411202799993009245243608749992236471401577856934091874226522549748639120701506461531245809517636482353812830463064984174615335717666223463221045661266379912847858546176018541957374938723062323638708374055306061705378187234395282717680469789905420864552049076753604189912187766554904921620659358888733053281155302839623187720738729110306261421631954176190545606326626136793926714157386222798163231668576205869358471867216813700943890474460246180461541053759478916417637476692925825589419126605255945859383379637784821919786487056534763577479101878260721621314618203051770890678767003302720987266756064067332545234632959771415958516495901677381867922024664514827337187355258825477361657665130725433949430212243851084690952810800995958155419904354535929943872831829730946686233322023044929970847845737815939726884898914607214670236986971523131534706251704195811903879727515621388410981928995047794777114697698885901416056187670071611207298807831248536375025205252718178839357782249519977159887045799700902659235127928029827308157260987239695225419041017996472257233905949728198810408760782534760004229774180585917349670931441763372164845947536509642773226916764564173180655785756585552788640628951500060946667656606217234644237144839794563191253409003269174884513546899943846485733690532172628078796560339547857394616700384194726328398028119639631759458173793085065812207433339739699855564853810590540397484379558893033743565227162820685509460408771137572785736688854357157014372319306534453394672743081783860226116930525638366670412928352672447603481272239930349858807451981944250975753517028352794382164482388148244838598796517005789562894437901996402424780385012862679747940363724188860807262868181870676168530536856091726573338641567094529014724744433405749861814415264969850502116008109036083431369771909831824449908134677645480483597335932505860522685086762799132161842591812965792916033342381391153855923367476210780148541085873634560938513019102163068675592486886000635523060474233372182336067927696063968853482758248706438910066870580448270506643342888345866188855056589429638610213855707843352478417459974939511557545763030616550072538740624675224450546091364054617293748731716971314840394979330795732720528164993465825789655643211233969362885169645114227279548769244773772138050277948712613370783238225847617012114266133995045039496866767571917746713379195020091401951322283720497113366504704662243169288498432267504659054441399527006099780025926174376228617591157719502309728902485694260232301447808065358340902220798821098506314597332315539543728175971447302122846982828514965709369183666392293892142445002281866964326127312050793947695687882684077128828161049564994757463737391413143341557963905974359356413021829999691481144527734820776402279662323087741388465815241512337826869033830744630138531356675954157055576054115129525558201972078368245820336176643530912174140096135924055974433770989014713048310221359114685066265750041152890166456532310320404034298600983231183744912354686527485694333577280916143975736952128795789806321182143800233208667495439120515691110442379991399646109951448390595533693302110674226486012655896036069730979402323296050674860018432757841647422468126926819523333231103773739815686716270858819290799630553872215503002180968355099268353220641068697354179423333576106096527296357885929872951235324316643162175202924558741324148141550722087454759369904372069396210524756327253657040909246707169978958903329527251336814366618274398663902121519148313639023776348777024198423926796593694001719074186460413911970320249796104191505727005480329029126618262868061837296181085852901394740439813108107004430447834253666219781718318346764969983948347693179429446649438204789915966972340940254629377232949640711838029117242567247830295753688388375567357075074986187270610291512980196823084766713404597991649285777723229958361219691086943448394795397193556248135379588736959233422280280745489809858279700548361962984344775646601575062205876082912187812304377453075071794665744454276669519515973082512473052564765402207984988251433929815658819477332061348820574088662755456579447224365141572786383901939660959552582520161669491565540720361204007237510759648472440817756874605800332778813112377544680740461975502463795271000404604898435470189194774352470448937714415298842654178147750471715943299554172489287265721488196436242050135537449459743961429307147867307649272475168575459525328225708499603474371534880791940910814248201349974600887803141816167430457198368558232896087029787258005265274851068203971793048683836131443835371973210233907539868718811337112015039995635555896873958213787067225666051756930571693623557549567746719637728467473382950194739414463740258032418628548317992318899414329440497107576675394243071275919618324588039284177882352544670440980547486084503115521632667151197203779653172727039156572689307207895759330588068041202034136097809979226057459193276800443880869858485432733317717591490219258046177986324210176368099661865774976675409500078018700956299306593975173552781831737830201824197349811224329386566518053863479348935965051580980487085912886595378962729539578215031214987603645706044300110450246600113481353904490863044423507431855988493440983550492793106790042111854842021970415959774630977494599934672211224853971388492775879313221420524394054261519467125380383139563241249643391194377326198347585424733134289557120360445387607772190472601743381653853332426670939835073090376104652340121916011936521198911735676341683088073136762661763160841430728955626495907029852540130647837231966892715573313026851592743295424755950843462909864875621178202284122382986105691423875056647533266522547407247748261480260081543374039615574102033038227886848043005377470543307852574871223457729652497036343054195014564601453547456730846517189647940728286872909539055842572741405142375706454509661290845278097371472887811075087568542839186836328959905665157143999278657295448446936101026382315885772166132192733356722929885322627684922079973111127803899117776599644263895131990065013389964046353590101687515365187953496959913998159652448986637666080680399102301798425846519625453955750923789422341543712353309071789266557804119721026066886804812828701138897941994984624994073977665067898728837941581661723378641731049496320619525758945745160175603385136218290169603547582506098019643892292464897971215491090825516053474353051393780640242165668569432934576126243366665926990700129649150646332679693745576457401246366744030539816378822274318101850117417245282910381817062398965520574720890064739456031509106704887034632691521458597024109496913190064597936234983014938928120613898942952276352715141173970765776016334442019751995275986976117773168577716043835545785365916706435583255552603083700116076254018421451091572506632590330090788073758360091629855080031033064701106926552463542892568158052301902505610705416825716280331164751699023339751383592188768903010431110933195280277635059565320778483116271699753041534138869845419137451436019549049688017347890622924771421678193452071948275700609400105658311613214226158540670301987404334725895643070155613273896323561236666437253827095506849600023351326884727088904480025877183016443472028844061892747311288518390445099111675431353398233266439934824823059851734224526364247796322571596871571228600969699788516918436587756960532696813450502260422103387265416859681585213574948844973917978157486425051325816308650457409940810649553361303065480736607950045437252137045874848809064291495873242593403835079395121566786522683087833964600589440098514917979332033166227647595593389601303533929660793477456238893193028759941354621623882558360848639946723433470364414157137519208502773660713298096588338629352089640639099528884996318613487490236246787788072941436226126454058950027615537881267582676151805005085644896464721149871606641719637995504119277927812718791860949275457833241292850662625468918130987088447863988573327678372486414411077117081416601280047336953645069395735299562912133067316706929029612248027876887846652246580026478707764674899331709449829625029805840748975259123908920348638683759849925572324608349853338957736745746589714137509333953458525152016023851242880874432222738106711881952038926803091531994675795239583845632461506836394517923930226900397461455717212106866252711526306270235770847121952431532274224616662911326368102450490812943259018123114212900083868919489252546975112424964115394267170968537927102901228610345845549696859990895836306543225646137022538234370497008052027302741835014046394385369941827687150308256249478968194293560621325026013358925487576383397927842310328604440759512015160988093167396495276898023292843882868793384221002630082954736089111976528037462661424445891416413160971828008562879893158267053931729582627936093298878930043973431986931654961486751724296015413806668464885117698188344485245201020905120245395998823925179996569089162184725062043733848264120335675363423033456851828693932111483678961566100983716452184440077505456172421151723954777545778317517542997070364735185357274571993129819586438276405487343020947477049533208386533894151889363898960993926675979714746957410866539326862192131925553043460550397262461437641624054982031180209412520512045478689304244223379388836023106305443220200035121968199160823633021334002522550664099930076584337479995448668233359443987174560253355395651573430860610289252332063327581556314575475519899022892866812064751118812330113241298972191309673675841812223010326260565750847232618382249828161004614982672351241327869170053345309902606121498744822460291934218148866012383472664313749437463885386445992465876907998520437194478560372863725955873687263918054070547247561633730609943918989568326066283729196297342768998977408999289866717979468936264081615562539525494699214771990176587175956697655794210720371380545192408307814771314960616794429947154576706135236384449041902691851291753541337713257547868288450602758504918810595766834139083130510378807561899917740362602573166591335293704291892185999589830630210044914797019606412102745355387227788925073434679116442541690724731703015836677773136737597475104480039603733402413996991090052009058043709966952755507304906345786105752211513125792259821008467466439009940079692931179901000297551723656571573215110254967422246175001119377145036833538266630854483538232351432630974097134412415836219497474731781399778446359595892313400723240798529134686221364740928613730112437012773276141032776846843534882806472047616570118988216611964248090289260816076969573798273653271830890889813009964136538051761889771358258718613902239019937892520545445194635330232276311591360527756880152379944930759268805004156278436745888366851690732735411394939324032619935000224885263466727056135224765270374970953615822592772422351302851704233927368476678127916706441858415731413168084665233535027975909062618202101049112903812047998400208540526751268436655592588310740921383704782377177830711553848599959406783658625213832666080509093836349544256029899908479378746254775998532358759755372719414021114825300086348459706184506097455017911453825991787851183742210553788181449816949489689321506859269150986195762081689925554503990274843242616681033114456329777010502716313045998004762566259807924771998195097334604122961368410733327102938802359709875941882662135995245607171272226441531308730796527233741682543281872291895883456465702427633387268304635760567215133270843607550717974903076154389907054188394961193373493971199314028298150057081707856869013187321878387132711964158275764377310649410964019100822270868356612620699410885056983853023170022081150183182745905894153951266569061007948744529025900940712765315441947901439739698912682697825067756547429857664009751245858102697359420771153586158746253850917472248000104768705349376665849098524207392321391769423878636026270231940389781090457298827615728899353327968695227166925394751866108520802593492102780932052081672293425684286104901736485328226132027942729538288897082035521981494436095363780855735583136161267154573826530035785327201760823126473488667411988195832930329917699238400379957071101277065938400209787906492958521695432806984685709438584154677430791250899045476563094114588933260910679205956506510363488252106836814832961053072363616730507316412549547136036481984550165706651619852362045040210451413000194626561765438692664454368403999209526102853043546619267205248879449311785211203827161054731623309757643747569009655062183111198690850508440851580927355239831278132537031592520192407326400345781828984860694250086079424308895033768067824492431285250513971290104748576984240208725306295126553188565051807111914201719668611833826669531562083049509751414792384500128779240538340524185282915541797636207802436287154036654979452162400856758323618592015157027283947329768598735145863821869233684324125868696530864438051105927580481391813612948624176628335040269724064048930891190372893485985146799782883755568701483930003735777315403928560378787474573633996715272553033720853100776381675640383230133617807138180327663614912127957751471859504731134853514414959225636290727398979547793220364540422707781156189485013514079414014323247347087433665547429653531395785634074213497125493446823908298393585447466190616223829283085043083727020948860479378308481694338998307453599219119210115397332933820586511368377669935732904940198482361231730881999038006352449509723116114826230710567580450774455556266032673169907861053102361298399226645919928968324373129791641695840728835060214255506749881990574029466429227276049293356157484700291577438374756569075553018586669747011118306555991762243033382234927340319597829457238650858802767378406677631540944656787682679802865801338997841296473451675846698326339720514013801521822711891333105524718574429162798349104174824961934331102384765056387948116111230942833458707619915592646147166264050050793983741821544364936227647894500861957417982180208467442716754199970616472257525511676010055115120082829141095550490492885318303069155551520900208005250133803860197994271866616728609165571896526614468944241447164460891969607905621327047378965162184088530002026018327597375089587229807075112514967351124947146984088741941120621062475571310153389712347525812315481749330951505630163617562498938841930679855368929219468547550130447993309402497334293357599357614326866367536835375751401420009105613893077979724336221503935568633004892700824306088913324191179335214093536345462747663884432317116423208636868342535764217056584344653005490748337745643304969356331697813585248242369306048731485077767803380978605877988238057017241982466080341122344876984446438696171484368920936410054774186057770147077343626063441571182555460674537920134592369220799430065842995023010764477894695614867171049185110035297878931931233136635193571793490215547011342580338393829721149244633506033951831184252588767732912531201292879531069736673708200470333625658763506524269761713729692935964522283949703202404482860724405901055079679955560243392770374377069675596325989838642144914628775060592222509050978033873245684621256684786319460237146821873291419759727197820841001326491059260753497808775041420552265537001395927650806606438439809028855896494009932515663497734870693645619719915891694713220068254999044465918695339006121145452470753460366014170245053960454277073329847105979281385479396681578487111717169944429099200856328104621305872396405098448676374999730673579720521485526728419324423320523848813251090069610460461160901839927538279991629975220689213071847552655772835604951896425273071892166814894957535934198008937798757328420529251193230275681945009025177554076664332136634526984006000575848857627134397784142705409396837728760670998924966299764308040367773511295452844140032441437479367891365381363201992328540361519046455989786889576033281891088886228503148319334018383714907847927208241549556031255484462045216947762235288652542333103689169392570601636642595362239301183936970835512931289766165129138227139713813576918227371858394692435661266261492366936126287104250582493039060082071509487048182670427975790699302869963847787011820187546388274731411241871380323380153595778069952592873434562552128825033732403299386136606652524750033668455288972147396561520616545309259505297780136015727982227516929863223788978693186933845596714002583844733923474040082045951761151277813324404815661743690017332262380430228358259170045129411563064470738675370060709829008937715531085274801670977426516857489663793783346317575997538448913929195187052591586299196482840522882886427355886726889369034729586937247517535415767451346941319494250148266931698450541045509830176416690445711122992485685404003265925127713771061023682966594932239134296251739281818575786196526057295339960284691476989031805245185954829357664440750261434168057265915667982276865192843432806601310383616983436603789949939178188591930236892810529049377463011971214151039681987211301949797161765717207908210396978729719941749956086306913909072547035594813307271302076362879574340073401305414928308749243597375644743363942867923122194086847802739648130493641635799493793156968264864749682222199613796223357094972783375684175859114823545451935164722199220627168926071704619325905383032326740552747072501627580172251642171664202968230573680748898706430049062668983436353116015221104291037918472433308424553541266013355388293624952236405597048598717374743461067124272884000432421190805615057810638221293426930157956835890961787985515593815482610498529369848606940401791504265918147105368192430760655285149475800294930127672482145908922737551691442676096993164345232107724063824313519861148753933326466863838037098022286792529419209326637031995765864203182976374531150628849526481634038889546730975243739432140080918459903094315621681645078880456621689757375599759515434732674010761125120637286487660493089928795689195435526466925094635848397334160355760007667579147144092279539994552208308731991910010750228098282634556166697981690924784312724043989839403459255115598200995937471549286190444001243458502864991507600764436938595209371088330172500725941259698396162336574666059987493260159295453209825377043377747006907722481328309321728955749396188217667558979713388913138068418940817329028507740321017543922613992096899526245299261211795545349230041376684725567876586063516393679803491144103116694811926416807094543591226309082854288962874958406755853993004205618658514236291195093639322868474627849315547315115438881582775240337187796798670640832730381209126091771306525281128357192123763620938861592334032661940333746847387066083709228841803510087707506691884500542430973621871341920298706265460125507032208188020828559840643447200300480888892683770487996401514667152101256337786388582410265937981998815976800234136055054009569790197169996143870239238933974266717517556433368630501097934629942647358074475993076233480838066204377240878218899810367490973623918785621702604160550813042396178883017182790495311315614764246704236398147711553568540643636507253931634182549953044995606566975449785540541997669059952874473573806684955271417067217324637812145519993020989473803174395111255031365060349610536831607397577255176198029855066286364735683653474226484758809716063825916279918071401568736348263161591137008410088431791436729776815465703982394006700791192796845505042194716796475909179222749597766261815162133095290270842269317796897646278930813895217759930938062616426894850829645637910485699953428130882379241017158824928030636185934832959370887966396594389416866759261015553858463030840781577439654927705722053091733256904794304682694831400982971556847372962358955214097381806653374431044201194554844880149525131219057541138566831507635104018864706530226438435339297859507902704504114875145537720943032127422608095633415703517140700798560005530573630509320476495521954830012514532429641743072636011701689086474855341587170104341879093824032326145337707457217316155370127618381213621530205931731971062054712816599168089770873151969376939930638859239069682587820463378447471312046134154980725862764124237045970371724391906580494428407104520986374389975071509705933177192894843274510255998900861985613876872261878769707187269318339501050190964361886338212931198661634513980592298489396108232720670509151632977889173331734542578048393516715519913158287165955170497232190202732480580451036623318420154343816689308412897411769014361138101193774852419486287872475717705330903784077774578652408770132657217216576286279088302717619824730700331882659753390664079563356020330086948192458257345204727750727001431331160328192038947387546198642236301921371127506891261131237060985659736478415639033948790897264612809194394622852800448151671362352670183014198864450713931975154673739804764859596478234305099886405331368625895595188097677591545993564697400888189218329068343251291311655535587346289636831302393312858066879809598185371936906200055321597820983355199502762012467308719748640501039777162003956027812830507002586492623955272873592188887327767131288877786478308866344908902382202234003996742920080934090123632312521928343367402543696458375944102029396413137432496341268012601982844792849997101702943514944107271756912030281434439952722966113047175010100873396905869775384123951458851311526986136486436862401709419754684830116296057737600887296649863320515959204027749778914204930342326882792923958994079295942280809476544629621350815361056893440678571493597365228965849402748422037633526951944716504319520348082299385053470233711202582164498942010682826794747441746117654540805355911015765087763459352504037705296549254098039111595073208417303980037975558116500269465055646390308842512915883643594273712081133475052840915894244372939538862385767674392144112169202543704682592896393823058931459698727002896474439042308174712844661141506942615930218158481978788066933193974979848253135992055794729215027081191669627049336687053458356332694440619139441024498255603584129310645686054617799776486113452701090732675646248002993165527085473119380413492676878847596146178351725928092952580289760449299212018241201575580935483779761231576313604379641076311669931414627566711089725407108227316504859948547815243580653903750574912046165896056227209597094058220923536409576934126102141178709398548082576739215668687722977919265152109460343525360895215668385439330738286122780978068395605333850281409909137836030308884645688602962562626181037109054943866866065490932677246640913314695389672346342285321270427818095993779905438528507587678937038096475768339747853974437411061210584767838292160259953997038284754227273118036312468417284742204919847055665371662707671832946113726799129402559532840006913107518785915997070818410440663586507494539205688141023457996154992901843090450910000182239983933205193826324352401545072014547659100530859448746151304946086842586636748035494338942484662701715609203753685633901767538356012374736269972839209230082137553379331472359389749998763099598103900840990258017092810095693209604486466949799376965231372563592788343155443783623243977472415815122307382275459199279331817215586197868473998861362165460429447834997262616013881421378309959040725759836882377278029657874893074205503976283568986010866596825135983889796660390507676103921930928294534860309735718945304622007379444782264687867003765454101773852998396962851676948971085327332410222495649154391463850616703274942829340556329370548539247522440253259568063419436068255713876338470512480029869247662632849646476036335855957475953990378710469985243212146004849468256427270250168838215677427429361344119074829944565490856903471869686918785074208613364243558824785106492207549790919160695566952616832678824543897300592508828494207924489764726709369621015069365218550417976166251407507436656813133578925988424352446086480484986043734741229252200139767377759453251020438567183061564408821562383803810317158464446744904094775949319216265198777892733506526626841955587405871546488030772468640357125275057182300424657663249504651887890728024317620954413307042977098409498269243451273698197550027107479274193926425486195467343017587611817384382029142209586794576212171211110143587510603804051968491496314391845534744019158386990460418922557268666429202416122794710988927573586490051821397471455161339816857088257302814904838364838524298862396545459822343584411279226118063784350696009161159234762915319185735572996416993327655594140293571955360797226363698032194205090536162501136227835167983947249605050382197141885029095641710208471611647588746423277289826658618951599864378867907191001803630483409536644857643021964468824409148974178991938855125037153464567818025391877651139392521310012594426894720502065681398881557293637469631259588650449849338701413705310151754570485841068397608932903229252583448849488257468681380632726232152979085964075761925314592589816394406765781300121711068726926429788012712465152478872869874746861565488872035032555626312627695564594910171495510055601403487364032782710802171894376731672203141328453767146814886947511983661315555345074806894871417688857839986416890990268336959427227174505174376640495491838045101754734499184020309208225734235301849139944850430316123828158609103873938909523300016508647760062111427560879726644064864224029814318542958550507853179108367434847035830846812583436652149738858827384136202266772015067326281992117964294826581414829562552834373412860027169275221559974938771424222885827314417419078045563745238848401576445180429502428633454776017914377146266967319949432098346768400641603188133665356705943299532327553284384414879639114960752390002098820406796324540284692382399841120766154894916801628477234635632027845529631338540001657595328177627603809871446938708664467299336628037572941143734575846127068008833064980516258734205735670330928561290371953947003996686712458270402761043452917238420893371221794993091207170197366396730977728834448480380348823216155443766420905318112704456241183537169042232597833122490730272298633848600860806180624193767917023510026962068061628357910634719739660374650638534130863977180265437319128774289733096401759468653963766898864363818970256283183040481103612869365649214015126055363155881040350813435561465559336685094129006244250869182988372847253407943411701433108589626623862631545694112402719232381676513478641419692932963592344073075397763953488759117920471972571052516235055041214159344601877068065409244078964718638270541002746628952428804978592351359579750775902679199579483601655681501853829105846465876305901867011209106804199059342315117259565027867437874175669969820551158149741320424224122123498619628559627430966315292357240042699269536475410535498640092030660903748817181077186386252759610984148833606289448084279818105139589542669611890638541049170869138172606770507634380474303669026508997656932654864680333389143338427324132995104753706711899285787010287310538378146442929384961377477033326809229459785517336664093976724868655588094975021344846864017910275429635202750647441329664788561388634513578387582944569525826858266818767119650914039821256880008913816685026268991934501734959291285706354948910713267385318777212984680141254052015760103878713752471025903582002573926034885250849114726652261648559829442120779377080666283671909913052525325413429096758310157362648908545279828235099434664562666546437375422989039430116343903266824215497380764259160289833752612447416756036808153376121870080853647618694721506935744422604196806659781355148166259848857452909369471434835480921584317975689279917225433532697896303545593042053003401949225508343568919231702417772409453796066436640457527125966625912697021100360763615648687712203409944446304894211549314468300286563156096547792883332719868134607007410851708079251414167255611156508903715578522376393775773682543316940670655496016222852088180631508037876537311316027024388278758664087179803070062611193775127573831361765018962883308386957720377171636415722061360247626884933927942618025965643440693192721526889960666499418795630511550096253455705866329070721531696649149289750737745542457544739276535618623213555659961874632995296991909752618965601641901975449258471474074804321074608286608361509785351292713108665889986471652398134479241155618628524235825833397122431969631649308782247849296477823337962602270266823497718738668462950277514617781396931725676859000994416179931652259091907337644314974059364754104499645781947753480087955349107046063073342741350269003965372989309927719089985362688519986443989262668938603961550739088116129828462874825091562658620518829654729093399333679462691231653559145182015911203888111793987123266895911970519791783657537219603300797540154139144270340781469764905888620439807231316830033582550049615455909683895114046080566069184146309540612003889351773517237058448703865660496422423084555487609480836048673259175340239097620221749985960237528039165516452562229163472008718074185596358613755365798492756429636441982104967825541198420546618575411379370059158406658945530987265508323971556465485769089431012842101550391093810288066508605296277431682231854470815938487875031579831195308047872468331372993616201325791452841504794971252256923891424902269308307141060995129767970393297411259600708971741101628686052513887036682049618831285923985004825172089978768913829331638244119682573860698989610786634813468092827463898902721841115339042201438668777406781404530363924074891782529797576346781787717191230848987563145891747253953148775878471719931228566545303352042364965658272684487280811028045740469413977395866095575371597966417689968632015155683734016127449747603993474678353653520067107089917905708856452131776385298939165215032593671290293494310684086499062399201768724389319748242808837783252673745885563485265581029514960125127242622569099952654289018657889200050879655203131737182771364152517831976055245804100485943759114125760090976483538538217770090569502085289529797769397279770915260559431269324872028946041598752293859653681581266809725630477313736263095670386346278926265238293464043958637736684908072832420396059362831241959210324322964193662819406815196949059774744270732052652194101054380124407585709110201297849956043302485679924593897740294171884519310844088268768778598719327588371902061261905944938580455737582374584549724080147505511145017977906667913409389956012264082160974739851544267168918122297853937425692704340276212494421789542103172374803794157652125781967346229092684499148312879056277337541538217851274920541149755194511216985357845850370734912705294543957646109529508457761635992862855315490706523548561044656632988002740108923764743927023041014449082580592597252146892241922638970763618181094273671269795795599525044415541877064484214536043113519576201849799995345697295737639462041668624537223492822526363694219310253387769162792713344182471830289836849103927632905620210593553074272751702424657229238126508467322794097825174978115611843980460735292672216465446454237176556064846308680921204730636671844078149854472789894751023489859862995871382215908859616475986643495973226272406457719792753294472872022460655333954432066182052041990205115114442935053090736686004810527595037445588739500907757094781198401853486250889754016350165390851307008888186524925645758618131338274887443680022329521637330351345059421965516304993305287913913232768680285787860365687843883129773391951905208242503198406101709118482352924320450462613314938968206870206777208719827829712778952332964069442368015887841001810068832611917064922630699449156109140810857161271398505486833252732335299354055158892530171430840443709441077182759723130989117571217582728342294712511772923935166741575056572826440083800795919358329284721783829338722556508301942455094146874097135188403322496471789926322766030269025475853707447798802121773752140490428720699444953146411437933546681500565037011001354865665737470781631679964453748740619325126628312754902367173572539382431472374296036779529186614392486967911003224553367782129004189265739056238276572433054713300677311283082688687520193833140536054632831876286736986494817505304881514635120268748469695460060385281163810124637060234798815769417477604944284386582397978890739121212052861701148988464819213228824055322873466623033093138151942293476329473859908488274010430284124680006405040624073657287400909860352511379107621455324390208311606992448635149947242728040459722727155078781440539633006634721869379334417270466718122946510212858576699092298703233242641922517657055780349766251285827526886807482966638540041893609800976215560920708401760391395258045788136012949976578587447986837420309839738923691012604239868584894036305509059394873808398475033027529120182200603049246527428820592448259629364645958868830821956968268758615534598562906607417663294803503539413072562806853967106413949409726544767042285952607662405665762893787995556912449246924315825832417596820236193792128948890488001835097367006351278847131180491756078714376157020840613021834746683235515618032597230441778358446405204318004295230963009335179582384475878603497399913931090089275521767428322375290716150781500282258887852381446747842612187577850405426770933738296457932827945927824703937546395171412727504198388014356489837639060817695663983256462776229273682170997043029150180839007731216064528780788946875386422355020554190299572627901600498363989681932975362156476737911800863159162913996927185202051636570080777535272120490471457325116518264294871826596616311458161230148417476007024259322355573933598128959037251087369953979450261104521013649153079592579969968841805506183535241722461602220421344187929493247214703472920921073345579570236101413798796484444385259481518328221792994020870935929132166153202371699928706971084560903062790213217048469580181512627901765544419529192445612339648647613887328123876263070737505174190041870168301851089563819828736440116821719564393200064045837776122494745673962774180226937238989957242749357784954411321470524159943647921573064474403853810387639262351383247513860899101424867272905675878044676426032962184987129346383147705123939112259762086205559953560167872455571081124405446267982815492010770817388315094799832886421444185884671038916117775801039863082903861981005534186992167638372304496004506293098628288168988358131408154964277874311648171187420745277502220024431378519932427405195096984229107147700828110752658310226776766673911731524549174879683100562777587173839424814969401480864519600826579512475103312766765433314959761788802194654538138868059240467206135344998682789236892613560383537961696857223572141551351521777072638804571881153471193881210406674335841054613475956438873365301925687065301998085999008524983790940183068622815115309807037525292773485898842428842703331727206131889013569404212078493162831477237200757333033771381150066053779725196127145174828567230090035896027165496829871529977780332656791926308982853044947280357559761481488201326171271787955421048578669351160385155318046051832504908558632728287356425256565639782137296131345994453744441196392351851893342547850329221232650970456732562337831453709940040779200469690887267850934119302234614877615393434147561905172141806423909942888514298363953753437119950155666437477779875494709876986450743124182277332947975557673960741922185050058456521930514771086811717796419551981029332613497285986970803619408933238169799292763907279489283987566786083816072839585160641403909286796333090482440765267535246050593239184052894509943124487787023960181597579988119907985974085967556383112075099311445841169334798780470446795548095365712815417391416940655762818596521340380044976271868644065423824820209647568913558083782544145465688275091760153707998030431768932971594397651203970978746105123053982265558423085899074296952958836255960534706453146347204410635591255389969437621800051926199680537227528927399751777236160717143278394465669126945090599434318717618283636022214287852632403716433308787098321332649014669353317669442845176341434200371346778396520076381682362661519612228313570144744689806518330048348884578108845744145795847701497808635262492932227959637336218220474225804913359024207276569035543513929126895538272077763304939891508970835460230330036368087243601300948462223122420151266692136125462697757261816491083162332087950744001956297879070499462925182535774760309960916779539956932630232416961959854058695492855755761580450374922674492905261402263435537616892954440958536195271994409381775636631590624413906559202677324042052747127837593049038531702525117529467586622805367933945885675462319677867740291933911632665118286879894094510475289018058656459714428360345350068839130800344941168650186465912733925806170239221311498990195762276810562063438883569008348341303179451419009303422256108824679219869391330091096797131595523674746346675328719702178472167821743213105683427536424339244789603269745377543256157010118953755128950202821656663967520841236688074037007826969931478582537579028403278114996448891614137687254395261720729206365232980459297880148393914897916258513729232056909880846071674418800275162017740083704155395244331868799318257394473596294493482114344312188881380142475945647568544619203073915119125167148483269610831212959875357513653730570567034076483301679264794381547449082162874659319350896043980118519118868529100629061250811001870849959503821268609659407785194053383961489088320890711807017858298421843241656709138644895799757811821628571650947986766724000377383180658838327265849648064189523094305962242883869118629842090598082142635583295635420503751896861010412690914319251118100047707300996794273672788133156991570294048224899594518519401061004019599749284917205489860034967010940549544934107394478389825398397192249623091810355783003100248472935222130226431485818588297404368464615600842689218971046389768422533139406078543935629265946758512129381844759775825004805636239706348176835446881168526070686704417364078296992859439660579431013186432908969994474378138444436179630669956932443685551730103110866353670824950822757855671185386390665335741591031117551389435754131732912519154083402772854432213307491134054289494741037978589672681219890721146066430304535272656743733047573751292564147910229572956729375952662918657894805431399257735989527578665914645235718352850522504376550314037716018334359254015876639370828183002298184216267376498074282908744721466595689414616899490533961171518280919071593437359231723635730046167311336819946855092798790506822318601768218507572408812063411429530111896238056469962229079623167083212096615456249811880206102601485505215276387283283822494580728755468899522643511996847682142017542997012062988910818943575088502103270746358545046308592574660102682960857750779530221793913971365014908314333902710393207906111862287777858956761034954662605120008463335646743492566665233002868351381259048235622025209874428230039959117021868871930967834754625258163119430272068256387448086632979942001023285259419385099185547200340902028419060048798669662820585040407438333296028972284839974293326313301866819928747532936612354090957600280019223285302679391202144327005423666205243393483491130668181267298633993472432363388903351355284900614777022436193335222745734817216547376445317856787860043565195924297633160367147273035582190349268278200206130130645608398278802170815968236373452680729746371276143149128293994653471413663410092208906086297664382611882339230029384468982216494012304652939549186325176208898130969702380296747445307241502373987951250059621770277819408733765140881961124983951600183076015715286789616325148916243698733436842033659137570274018479389007556812235222227166941688322254174186258771724798024587292730884086755431705453566055420245318839641307726867790737706578982225385679353773522882107140185480998133424649317808736384096898122349613623582249802743241546519987927975606166447422526904422746311396190046868071903206785441754971523040116824233823010405724626159984301165979384385050726055867388463355817849440681266438764362722721667693983047015607343194172337798708185798659325434217752406332985474751474177985403897771104848600786115808283673992617887379570005064054917232892451153643326441646033347080898193881128518753773804429956378730101191205461427624451408544814099300548121255030635505054230464254341119239288274453930374465800646802151855101395765524891536976445528773740374184663364484931749888490434696139678718276059674861271259104286611257950248429623669907724992175599485738765643940704505565095812189641068423386152912357828435842350435344140338753068826892084524562412476151638262984308882009766700026492454546308268185959423408108695036018295693310417109495155582516273440169821064755783343071291666792858894173079808962923474409945138426246353755430194977907059995989288682770822213168956561835743453870961083887101810075562616274854234760434344973009760786167342919061494989984616868116868117589022541838932445905712792126248761508102966702256907175008595759009029071508695406045093888196721837989234180181254931361998690635972200797362391528945466356319130494964326564061089664786391951790854317289980689314397241006152897274345368461778080654287804215846197678236735825004019513102597590325966152663472634135101904807580375943905427481183251749197735003322160962083544083666222537825407111814424839807950892144595227760163030825981565860902037045828828351846620167841944031015265324857850436232948326801112899548418282710251648812596831642865607296954295695767406970339132607713478666736666835059081530057657129696805253749018368479447031245256779180931233400590729105147647294933808186429187784077407557657736985234397995247296573034585725318990119973279063137961399537685163014317713212462771584900521941471192658839988110646795220559644915620722966279877089858275009490938200035873148440797688695411156738946833214600844999891686021266922953305280206834423018344042637655682391353502090884848810063620610025284782078395201109882037161456800718969197724262527526891173087789221249867663167391800079905151800517549051919161249980630977613058281023719245430926016398374504170113465239662368465234770185284192376626126728448769835824434588756623834988373797214836159541495403881424072677674987314740767167256247950449612441208642019669221838948234950572089871875839109113866370894653893861529685586247031863610920204273014022809717019122137676721995903117366468432903603664290651572884844079701895506452112492267247303808767850695310061208208540602403510184419973057398547200249921246822067808331163666431780145391187094167906573696485132604302658806185784588099653479813294121830908011752097815433329440916104367194790638560686395304885032162271173216769452499554841252813120491224337823506385132500278794740119129022917113873224648812279926292505205124067129580419853415928257401777740324971959424161184190900223179880516036048067222057658027620244489962425739662135447891496437872519701341630694208274899198669024060943822728021118882432457920670717439365892471198692845748863758720608831149937949776521819242553825689484770189700594813351290539416954131870681784126619492264386697439832771210143998422763794132679005517791865513797456988493234403495732150354519432879327811632303859143179069961909924327206569664909953346321257942509397018579988475932042446305640736926580975686189501309252817899519550393093674281893741453948636644380454906994254716281298051822730245129004556158157686680722552657645124972693787231114255767002199749256868667143813593535530987223870253918475653342670769103488301396130935095217136216584166098651673405831722157951541432513636956860325248592583132767561813436632376556411395263553024808405809829166556547520112683488295350693864853891794932813701907287277182319520172374591967679686841702023810538048514443848471682998506083219051778113867530918598053953742570397371510327343563749270465402220701570473878994645284612496312673339761306850360279039835911473693037709423909302236402559108023564494230110588278115553379735540345697699367284405688109780655753703749736144320894578555962748468903053062177662541135312496055140871361349385907626518542760880840424249571717919465607850688958713947027544004980145574753357922924025625287867373794005898450260751991001776665081090560009777012264654400606912799363890239603946201951161805161503954677273417927091955383274221945053878114220881062940577816248603833898514756187426770063026160364128819434241235656332493575243950490384216752539615728299247584928399496619850258719393782220097959540291319989532798116883885636779410775428685873935368132434299453161897718795121895329176970925321554458086548007357895680382605833297312261457042790034621856326522434596637655258419648681953082729899085669374073778221479252366752661604110147443573439387144433874864883918840815121332472305961097988052446818523822454100962472253389740799403372846723825930839079587217466137770327083986844696987847750576532128126835577989522951532345997823914671545168335909477715072477333534580750145542800259993489188272752997634776980099751348527567950994243074715237941320263074984532923447121626553769977449629955479442817537879841208938342341215002484888500103294649869604431114768320122895538531184319520424715278499434957145346467056845234856413575148182546583867384096756369389077829616360237031510774781478839551756059053541070643872450024787211697581437324875433150018398504714850432542240747088248770430262920395075780079404113164862052991577791759745361550868119610182931776842304151968784261506177116255885282732124294375479698519571687629829750242373523004997101531425702982417262024618825454460049757795240229711498369193340980921130066470712500186791159028165683742976723093158614945066506890387451090310349560354974683305697183330304990566710408472157890419899760344516220060579980738725032318933300715576164391262330203105029096962244209520608231829576152614476550904909503295609266185001261337059829812842593258838616248728548242100276707546813139316647735074436522724108861210149882785825887388568287706379101823202950144825263645748387494809479908715628680148061564920236530980936978695284189086937440118036942638733596560660563248957055848005568423184629586468723550108432527098589301358792487410850362525145906958679745800048872658177364160558534255362924326777336010911867599493201003370718386028205599461508806201221858390420320681786344596921679496693698150858766136868605628426455737348606793110895358173765444085463060158145722768220023341837325243510583687207396070625245363993958637790858783883901502423297603664792350063905229167818294471109560734783546394966411893126587998487393329262624063430141982279930971280247604850825347015821986704685261579238041532600917662067170644464456799294192672275874941450167508788230735126017205405710188550457707870362762584265813372652793366412760243559918284622646280306755098971553408160057351898291323485113296616732760810366601633045053546307563086909857002684739992148095775927925389742977177119804934145918480301243721882639895905923287771468902541669920630029996136594832183395834233329354171422959561466215671937186000567729076981599930500682354378671575969475944416689087414378370553793350874483589831086108312174759669233070495174908746883987946064812571551630421530725238753712513258164433793688999942797903699823238681294002209907735071245979096849225296155517805477697301491417515132533132272981353623373009283529183725743737314578616967174821288551419136206851635091954989887881300089931926830930879508898867867415476940249546995089991564694271277872667727917526505952032639801364775660268747222369327346411539509389740621020216686462150086432727920483658189421049407177074613624337795496998167183546641490325021898746259721630288413804032033830864174960761899413976453963356998779016257014868418303963927888691956180361275794781040576565267784796966693854279222270189307870547348163619230832169770403121977000895138728445304483367404823152228518104122296865020113704987160381860994690151744073600257182966158645717469890169210498232539518082137054289082643012682348895788770335246675712334081039115839989005733385504594891940504722913639636949891876584418422248146594406559303347407172476886760644593237663257885911269182078767932038768712727413124961081085946829364883540092130301507179216889385136982107842449727699716699756070513965345490699497582431154677758687752502684298506279457466444205357923752614480471717282762264738261731187159034637123828670545811882030337836071361077006844946770652125855609843103551106894772397130983468924436056807680494962984480165735415694832144205519644293364624161395773564834088935992460766162501564405191341246785950351709271619947045180760037930581173493283181157647904530750211983569367336580056695206733430269988798351475746036181343046792172374331517278794718025247999041458902267190014741443197226868456090287876290449989809160137921242535777137636217925004767350540419558970619930108044436958328044954200180632399395659308732296298323161740571022023621897593458653273887786216745378990186764031556158758598779140983423635228849496908558507456048825375607153090198993985981615887826747866213218882814165915666948834207162544037591899038640721446183713137587910381210315721208782118548094017331839347147490983900473054031168042420122957778012343488212093453645113892593337239003394600347897559232129367442473658039090584126811757383963256322129795543465818518693068325598490608960106658322934046282211835422797923373405542634173300043907326397400152116205614133001147045829843928691819811551581536375669661060209138456161047145586057398136576293190681186683246438708141199593840791731175057919065003941763973499227611849104235061926065417037353585883739479153979227443923478400444305660491583327097458688826712283564023337104878862658082734489504996238417532382983468743836819079529713509754951362062254802363267493415076786661902200577101578335498741077137075071065168228164626661815161119479583985279216608429216066984131972490716581766925367409488153028315754253916285536649385433744393193915720663567405628708848732642906230834447481228341013981870531103670263127519462230448068043559352296676428149701870685840048061752118926005799925623976040492465274292760077888974436407064562950901549962809373455075839226465903029049042726851513216243516286730664831598300085110220359186927245823645846259648507473039477861402150724072781528766856850627480342403456635147576809838236034538719583794951868077701854557496743758906868923502929335435984831224963336319739737110234245669719755255136595643262870395806472592858156761465055336313016645194137612067660216218003108679615527312983716047143338308673152195806576970283408465108025739312700617872735166395324391665560167579780924415514931588088752542772647380939238903944232795769512020695425390250294915229458427210566535873938292461754475081020547681586571536294716776656802027845265233822458649510576805624102016877814071887058994599059108395739382413709864098531477830011453921266504067787045619252416632425253141819760776492994528488633813787216159923186444336506438871988138247189577674124022947056288612817500014773116758723062124419647482769638609771371148618489123811055909715789254774741305568729057804520325793096764127720158000730780624917708089827956396115152510245282517477817173210349552272716653335037442128986637449393057603135850871747296884711660509701799773037851286585938842244663495886621833534698432696187145693168875077787684983434746910101475748900816814721950935104380275244463419657088580928257036034310056091739504761270099082704568372135767759134816332601023565018356899066066810504315689150575528366568963070800269583675835820916556533382846133275365677810119126849839218738807603189711462390274922229109392806742713229085042330946988946541403044807055930411102905514419515001881676298177094393613098264292260913300217399164147306356753585573454579540736504209970706491071507329027385282458286413670439436284803066814783925032145619619622413453016766721168680406421756213525753986800330283136264176873058694030245790476763512524111151770669967609954043345399583928441586271614629560513151401404096438933226882020748975340051370249738744735362945988939256733858451894923638526147282727668695725080329179286249101412203817730206797789860116061956336211992848619069365023466006729034429757593577839172922265192847620113186916208374700603083456595593429122167916142478062299822051886271869257221468908759041180955984982521626022980583772752532014646043982197900502026548565004287125994325258633205151702772041853372788961679865863860181980571041994374175155134291574296902743927983182344722609181510142507190676384085680014307695863128492740265313459239206263121601213512509040430387443621713662714409679152599897601363477678068559287409575499225846967978167777178556970593765815435260792982465048139426712959057385857025185403304811167749128740074464361741500123954782339574531439602674446239830997792333142878897884868683071492024017215025527688217651440005474669331127725090238764985313167112696555866382308163759275968013859727061508720454690035978719032886456282495600589659793153804656994596827044777694713059867253226815194646810662027438438865727264956426130575639402914222495980936513627176494547822841223993421395514632861807509362351212079627011333969554266666873172512190839826787125539636882887907333704688596904713124128899846206540120646163382285607499413668317798720553821168328354610093134585257255684382673893815792808936054616708493389180923081277520846508100989133840338464737490085749632859708815415845499350871973600622118665486233686821983288991905821974921927415985660370741246324010505556146065537709925940659965729941458558689617308390306954083788819856924770902706757360236489421418574815446460478241525754814541560932141352818996995756551582201306411541267774237136308660418412976834431888783306502039225973370648545098392074344508279930843500101779347601257787403912472527966687283588126938257712259271402924994513315498574301810237633489896734455890075022018106858086281562636381703873931734256294923069636284107257239042590826876277671215755512789886358658347406398980067119336176265589778576200395063371026780078102908731047542385787052801229346232485682282859746883827253232469136017678112045068830223618306119201799247745196618081494592918636618529389760118254627339332250595443536832987065002488412285267175524254800613030335246356389344321658340786339804062927839227775384387293472479426334640842226807770419824947130499293764899891675564347781472404828205105484026157777986440389839428707478116520611031099615746211662021878932516158730577068110057542721194728324522367360122870335650094963097017593654496366102598901803212949910361370813527411840527425163771893529085707179676431861918959867186752183925733572167286511643796792972785423549250634035377400967599011472653153228456084029613004884508576962603880277497646150547365020371792960926320717941703368814329091056621049943723811992052968342345279478978679124559667085446723114042781447477130985730908817205029440434275843140334400604358778681240517587684567523416625551342367547269246299644746368417163227859791851404401175782024696813732658552940895674869350403622498424765701736432766115131874861858635719553306803643658270879836548846195978386022516833046307746053186298493011640612894337577314851487608175699571033780300232911232129359570093382864376520531655397150271561916882973949706435803214559781369930856848627697144546304474191098783943758544479100118162406476981335997534058271675178518846903658907875928191165967714228137300703450108726674866655264757675454287643375027184547202933793147748093863433813804045573253520397070346393833178818041427858438791938099024456419470817246177143495038447446672453721761818809149818392618238589260028076131186866882283636275429213671403525211457653603857283839397133240774169580366060786008943166792111975027337091556408282320698131658895804669663863847472217645386522341869171633972600716438958027173916515590889542149757438740454296451198826218031978203933432000346235496832175953402786725005445162772874102631106853958661695752732113350012730168543567844041928505957812813338259099370029776201445915790477054503774482007290230441291236703230165955133252924188441385177303991757695925515736476453632892957723240874858363322630791237901277267098053925119243386408782499970990222103687118824027543765518774969295440586980135224435430149820634643618713820599624412263420929423768788147597266849985015008725777619552982101358331173538091432755511823917032099777351758795044005292244904241252810128901481005881137218091721091420040417854574902262119361781656307566573996449128094716279420552871992125112687529608774179745174062678251432925374421408282655713841547214333976305831082774083529784209861232533948252747192799258350876094058212590112328093327369710820863048182453263258265060006479848855257539317845522358327934695222970051247796754417763566823840269436472633883267249678430111586890283608181202188311020517248915161909659683592833054979025746253413176564928091041115685182764080275857782937747140224204536323026819368138753897730248072615744744725079602633923978146784624855086750994032115183162970057071759714072103729192535406363518933851882301790977094824808050318271175795804990849479841486795072570469836044181655984637857683166681963477233861273238756895230568391736714898896991121283742766828254828366331438998793213723714521694154946574899222598527520168876213354080789790475214856868681488960761583727354230118943306748738675172150526400337328096626252630906050027402534164631997924919248258613008218332745271225738067953163540684546932951874081254888534542148542681333566779548592568867524027765354903576487522293963229386227089023979458287221077176526108577396125534183423141987406002138611082258904572645091936472505740282231807565693060599383439774740263120125153246961636771816113963714878270308303435092859664323722147432678922001262994737721488188645524686813208624995644185938278330603926780281580088142072236250299184392804241250947396039905713647876761065624982314293765586112371647656790155011351925479030604489080716168913839602011829360125230748828182926826340184060694893043728751282266350350716861077113385344458395893168075298845319790249878698437295358056019397691204169684135130759658655443477662316429372469786670950830897860889683744353960818825567140062350972396954364118124821231733346617762630314403280345574540657642461002527984881838347650823140751651368493326432624316540001530748963203132343094476103170270623434286133198668915185228330330066625417038457016462927201872477783974342988270674391013195418568352827812184614574779088654416308981320766170807984920872747879159131702613751309199667806763333433335661076222571825785245470812591493829145321563755597317654270683140945979809680864907823895135615870097012420341529515595695119176028101349000919689198569391411845601764263009913921314854016226587093359826891572654253156873515567842996478097442650571847617979913927562912518934499800383453793862269949776289037469359028638370032080263090381147895133579619006698154991035319295241775070225593084952932988758138232390164762761382105889546094859611248191929142568346972881964139999371107373158739505090073246798009936274899253258736064759072616868784567361034146511737738703043289397189083089130564114252961107481774473875618848874602721590298060834325723403503984200315852037702593837728458962515922404736365455061537566139035631018501577780159772818769342306684154861583684897984794112011363466237762086101236094875408077517522873491497238641666002417377260682948077346710157604095921397541454041266203535160935194215161119314831729765788975792153635198252801278557005058985336093988791919530286619733735848583036918200011562630288651812186531536897534992703910301350605533290236152255937142596687816618971924694349372358609281534539707687875498100225656986035819221765578679421924012590627803518349767072681150417391418893253194545583851854647372438441835356035984694655639861364287760176539116039389329158253331151511515780857632133858874324087215068898231729559798470641534528997153863433295803392467693475509686306490468812081160582963000752070312710407447548620701886887985897912079840386824575105407953560738999668780067034569071836309112671419477722881891668859966667397106824245799318559086478198682270764010868337944227359915855545052032245041321241990218930887188739888287069872102320410571597365366487734108743389004969363081586120156709379248364738230194539537488786668895535725667506264215427393727885740616666921569613328155752174597300457141609016335963743603309618487015001417833058488275757879503220528822533853733980284265382648064084758175079459215633403186008320287883401211566142334257918580230293569178770336277180382082745187776010185070972857763093303352579724050169571323972716481011753165510403429101383011044054980973700624574580600646330934147396828880756762755927768141273586855826360733141513421605562914714117052380475531406910726627209625342429384702288330972537809009419782465272353944826465718394948554546742222535668277182179086867578668567652786008124715062731383411970192965406919628595200033562502178425767054239236274763965713008652061340945392672358168954581415284587857943624614971364953839234476490374242886989248916037694963628150981094591145119541758366622053410939902676123377818924817729527978644852556904534656568398803453037309040994679759812272502279075784685643369366021686371406877341499517614671665835784830868392879833053764515339937766635404841824233216087062334926592201960173418091639004105745921481602372721900153304555599718246737378569488292908690766398440197794059922654403768518117030384082846309731561426315898988219416641054624735651559831062502037710095828288447505169604798600256488442348537081115506955060815052515908281332661105483082922147657949260289547103401886426990755579262412721074001234588897221737945893428354423736309218736219645397872302122947402429389941185498568340200169056933818895046526499854845888662723845495985214642369929910382649103180482293325535844351472566505271085653388479750425736274240792922106666049522693549985208193259585119252408133784133685579427257353905005694344172284153378509648258701793844862213690333380416939304586341820271228970956766497545906704557154095670304920622335709741574273027528466986363808577423894828494992179298294608640859414587311662386898864003773273951664027014315511711113850860353718335357768708493026514182757897575325317296451150411636036230885804547372856140240689187877269508184524022200377063518542681190991474259280555133139707019870319452059611792462007151434610410003647905456164678802479820888132995906037393476411233089172057871574901860061573579214252841762947298483934080647188028936755041098521843405974498329959069112639219526520967311315681660106746465173519716450480681394346152236663907401386391440353701198958960994149258701328488537987021797672025658098011708881629170324725317527758136849196567964966961415384947161771670898382488965945208947804556901664140308254355054306816795014037309975071858188669625889969835315936169779252048024540860649347672248192241779943051712249850635136987014270660188891869561873566286856018491629659149096770104591285231293216938802760325284408288882461660335849860357183379546772526546067325679891603261892669036614020088142390332793211722444035126763913818857737314847455050972360262512478287262641308224062655842568793025178306778210376995535555501820429869442664347299874492597024996801376637912069172865760262628932784825488145156422618537668144381162451020591761243049812925006158101162571458034391411127745340340933289333314033959933680707367490443397034626773021283510176022878045173814407677065991976388995305666390294649896034713980431557483200282491156995825987852913322890366773483807754630767121716627635542553704342217029518291590165722222602987764275068600375698222641755280437375392649644734722748521879039136040470829501832763704194558337298463877610696360658023356168254202859913136741464883881477496873871774371701301671297939978523956825258178515245009857197119163101563471911978916739039847183878004500550761869928371800000657849316677540515559187694778060131529531912650730581772111946878782084193656589991285199178399042520177413970456743131461387903395298568815767735998962252540883337004266276130691667765175562241428078357667170040104720176936528649540573489988759739560819561093470572853176484777417085469800875788976070196839087223435110729661792599419794906256617789882210255428747844696550468158911720105658440251648127035383027526966847084290666420887699961804042667806048901468863411085275857936430218831027032585304368883557103003006666522155588224104057715574692527303983867538874237249255598541790700554353306949013098719734770331979797693212458073129329861695869075495418761504439810263051420817937185120215488352487797204978544266903078889067743664819740378756886404483913789238858703682565250419216641318985292606660616311192243057395729275534927788846042542489038345274239487246305913668797231460286261240213042651169392728866865095083848316238119214701701064631098829381874647460573476442636157766868871421233944178893993296493502016559513065426213390378916695149953092008084980712447994322040888181307673272738565927604932819535823257846518712329451505212048015030251467559290457165194211561140685190979624339054489340945261189293064655729646731275788149744897986074782573679767238308097197283843807365328791373584354172384201529061192557212846897137328763822094818527185888081603636511274010732297372806121566711021065618019220290474613431560170704925746302738720575555052908627543670665317760702250699348234631321866881403965281679275023091814434685627292003086846951271866251237785102777095629201267193805440722946825642243668394740956571184080330811365843886157670422583383721042483004321396591565662647620909492378652019609806958934129484050331291526781113790665392150667378353725082576885129157001936505040170598148894587329088047249789989997003377302852151114956021518930560637280076670712677809985553488185266584208199392596897590915008769156010224867077498445020582378046844941351519465346941529189814731987654740496075535141752771523543826072850077620281426525480252607441090529203334788496365596023625005605288667371044717058742748412750729044228339218409883899567440652286930056257503463148347790912568351304960881965641012465035919464208619359706428507702810778122008581443028267416366587205305505920320550519953115545294417209037329965507098481207070066030202077886913667644183175713487836764204129927234190340020339405260645350270221654603593244869067247376072274186777869196435572745878133379137879143268160717112570204920551759440586524272595365381688909336743786043699657364808991550241571952221687402749106517556709393496264248874445098306769707364400334695761882600817787091981121040634060830975095862908624593586763451280415850969433392744244165421405402383983312878783396913280697971421231994651463710431132095262852264032547405084857333427058117609044448338473404378546233944554906372715746971067558245602317645306340496993611620724591419417111503048585643971898540199561103362489583842561427090296623344369367661076375002030145303816088039952503675371233178789224978778150633021157476881129017547631063258496215863266957530251634595905632440616338473640595552257586443403232970150477437693241988468869826173622791833322160178154036511971177029851595276442472539421223520454031150731041016186339100612824778677117400430720611990044080873217651863826984283623309179269297008985822038057460222261272565289308801035630689795132171237692711184165539164024079881889021899362923124316569671918725471325588802475328951690670432371967701976522967398604461492777045781001224478112252744013171507679794374982061995063008922703907265748901846716625139805857124177349473726306337110850481933326838253653833600972787415815487632096991763876485263084467983908017250205923814031565964230240640439298514299883347691064799269684017820319714349759626463577922929882685670868980070266173734585725506633279571781413383863950590353667516641975736425392015058570163912119292471717579924150296223972690236818306444965210211350088332194868701149955225049945683608883602938161106328341599363850143928339481088299648905861189740007913995367014926729621327447944872744697986641808521629556169905758129883054623382580954207045222243239510443507876353961144371248872152296943742511237874614850724848820437899998299068436654930951645108651819265012400978701356234630609044200261177564925872257074449106624252163846625212338667994199054834969515499668125920206337758994511669617243468428787252219199308727587593549489752515306039949962727764505800366632044992812080862784345155864917980730352476072793033280504741946016496579675337415331271244745123492004442037678189501333333401127033183605784372643480426355877399927325851088902205866620536569307187280363618306528711403429791048666406417258497664353711674492786915151445009274919884862328068485950790930742091638925634470100820869533917426901706367558254627702779581486497383702585959825244268289157052992242250198980760544299852433212597285880358513441906717393396810463256629898483645584066699576625157188233173690641460399329420204022419624210446462892055650041001585883836550924938833557801565761188480270399389634507464319640082711592324845681186268998899988649024521563962078420877861745973867624005117891340152025249880561792595493770448984041949872434837067839375030759817920521532063383641075767846596690707018878790198413096134892660903029797426390276512897926003355426079635973741608368978889043850848816124226766676652675988602494511257022224455577183615751233289469537507286958371936911304079160170888537467216224198191086600853745351903064255480444272627344584602607626899878499606429508044235433456083796033781765863859875805342603737698744490433742415994574243540559991432536792011168116615258356942466029782856032550607743750819605735990049346222941052869103137791302232246271528766283533279969122842855068655771111337766204583319580594070277177825330173210809508871949956724677203558520051946116027525515472381255933349360199711994034127187992087493042488553471720958123884164111819261893298077343087143867882639866988443740019722878341347446371176377247827812480768352808869803545099746893498620780632008331742035912482146241648311181059249809650158626594451272668690137700376872112600556323182812203132576233903824686900917767089113457769576927099992093507123214136012025124077670288462950947379871734658458996954076624062530862050286825952210415782737736618682565870334282325800609988732224660370369053239557980434284634094222330544450769383448323967196890290089524165542489943283892214708784480897895869183486867214073157364238156253779137245514649007026456632243831818432999430489043835253786036894160608642678413050695906527413475350799989205588370934872867998999371562516657863473209812637233829118442412646573958909487590130491962142529921532649329987764705781112835066693285848305909718994885534738352005324021719162446990013302285953175470461624748845938020818521990058828368011536940185051969070688155264176762717757113035721203182002046999387879284408819166506849947684744235283190989973538696818447495711721571685620759899738487014237314191720526768321473832338829406054385100930242070847048916460236261572403645814292625064574162727768292388334983970286916337741714648147551050043631147535946436540676928055904511567523711590849557417124384986607918188212450474725687873386160496027259412444464792780392046788156647694870217772052674703657689656388054659503568108852012564614931605713662625640663485179283533254260517154977561656293243430219284432573354722781006627903525787778955815439240895697423087709376303630457470649732185734031392769086948221731768721180683806228060034777510359263382527079229246439219888805600082058489188941549572214026711379579855422897510371059814635578990911411286601544613224215183206701026741331513037573295914628722649286272823420211111620494770380101772167973662721147239776857628867219518441338746158921898333848855534620537494730752340869251490263476228736244803096499036047523873048938687909117789287972039218067422684409714472434168395038900240183942062378367547369463381655052234302607123376560636458530075365910264310840926020780742656575044045022490977170158208330075974316497547105328243680325619123132059557713443331922921285257087277988759852497560399352653706658362679273433386991091285625731454991610550856784332118304115447908504973720579632625292772021857622395214737677029699950056349333631950207450702967862076850493617502945924525110219996443198579464501287228944992197103890831587928111877340383042874373522146753187218575730547804283730213862524620111518422211104309430056106948993754475328857621425770678706433309338319162276892797526941166434981394646332903500251622781150538387914223082091007610097662673249528535465634161889997109110527409652784009099211186259955773510197318618907073425223239069532056141072488345966330720170774543477471432075099160870058564455439110781211095130701434579513697350732303593054868423541035994553632092532905162152915851565600547100481050135982160514029240624871418792571348658147460906320503537389433510201004471729402748318689960160894233866874969849758998389658172201012230717026569643215438168048932395445707226257047925644371632747915586400280205484565007500389874723942596575561430802877554239913212919862759046553269715379450971866728888184910275978700164721598036373539498661494439591728487083043587007140937652968941756237604199475469581274261926923478918215139933005954113227101859839603968757475033578635135948122624117031611511050705927776161367186159550733056743764022578486633847703165814274516140581388174589559617563700426187953948296060774316857606676698164999915170688123507761725544174851753716124209474754021274265024641786936141534386882557850913942034433415676737302057195965709120468036687120275354858058252948606638987953578925621972113766837070767387258469693751829564611357768339960586455130155381061804545534990361736545083246812619783970132170104346205691613086937105959095803271874608571747948039446263217077395497745262277526698177763154853494744140124653035172635016453737059904686967132114412456914347382436222118453416924319284923667303188680902587058040142694123486318600552077483804841516213394582928160038371074909182734452204545534381915448272419814966695079965607921198085504683608181562901126858029520867651093182553806405372932299489805290407709374701055844221357601708078382739922781018914270112387450203435749010004040313019901835401368578869102072998276560644676983912395586092764967858147482208078373793996482996619870658515219460329972467195669656245207738753480759283053676572518714900199102569674508814431980870210882932742199264552717252632212546069998801703871218313446061545367904795314174500742969227606824459779021451686686831516681396864810416250241123502386085802471683337649727031656232251328814431622782136722560121873504621216023264041286666853404171107091163532942802566116838131792077938340463865017366284938094725187779980990283591781959514956353240355427449732335968730515439760772604150452764477748897153012707153734900700518599514413906299584974019769697841107220118421734579599074152451950025927805809766348991605074818875654569344254367119489373805116624263393024798459909426317623397992027008285915514276939570196449889548725133556397562586700652969511678098005250914629251587191319568965298203281838666798538399677836789482410913928561400993154339086661344534645331530714131957968996968378812330813243553274979135016151158070989983829571167853132922952210846313957276276946342665612651556444551593509868259497266990963490408888368450508149711772258035657248950106855169305971282811357295880852746646521362226074328071122071195980623095604977739116344864268336059902198411262696534654718080364530491180759111069536246889146349393603571552949814826951670623244885177725574672753482972513574734126643217150133531116791814127646297211036030712076785453932142998880492968410890125710461394480049470322995054199156619972076443883066314175821500735225309867785770797633904847984905105797137998250852519469365770945372167788087112744082833557694160464243457361807082776216790332001092454171741901741283198391454564360225265100333567483189668774089509870446858295127693430373483159296887970106095281041525097577244230347664889005682784749754752014801039576774515943372420234736672535796526791036552491427616829127421155209717919627307354464331520735443251871419636971080745964464951540255313048696672977046727826076667735891524627790511875646567255838904598399105326170934429572335121454910338514637118521392801792902313679167089518580835217790958131138894200745716232764154496389775549688080981574614557215975405031852482626272079001925480876089833701091732334891833325872569259240622863234136952535278850645236175983804589936437050182360634760132438686451917375595131119033827341499686225062245984843903357519974255890874350703116131585960289232812623080678076781911521096735836408998399890366498899713101983829328937318756925216377104666853249723431829869365542057692419104799343500553183316547685169377880785919053601278206857549286795880771766828802416389221227656741611956124588217700264545641722579331352841066936744478033959435598940476628616821228968552661846884524550188981157099430624427142924586365106230100592766885050357600498304154864180620687689246345736074965726497327083139916977309873472286655562016734539393648915371872375166934176225753377410815865745883231126189623926507309855707707482831077792600271914499709657646869699194737515228989446780844798334893978864693731003258058231033336122497096278086052509574503792376226064252074258218592566653760530454322983865858418303808874552281370873460350365423680015477415700444174325257290726945156144992152639025094200149662167029849621993236085434677323144841689433664281549054805530326443293870929944833975213296036448711337434947907216518402948676201728838211218911165543535889108227094909857200857415840416004271595272200929058683765850398912062183438552401404597562885279870628899876021404901905923246786669113160733990047765164482192535767123527630786482215129171176574654367195289235918451949004134392727135651238876185323604138695364439068836025688915071299282551657366248080996401227215118710697698839235291748702463750597684543466827110332481426351281780656836012728131968220991510602274334984090762763166069532371299857770673383970887668970977289150128443339774081670191604133048146786977483331503420876461461463076835907699916480867765892737496276785999202619375059830611180509996511599745264047745246178773067966083608302109417973403693414158643408276917474650888276434558827298054630666311524464314521902555333567073724075899577685868291602266215951629295155704678280366006014577130106071067128575805562502164651466149279479510198423510995513446015626792032882005176290488693374020277811063304552594517250759503405023999945135716670335029376144246597888104820279626756267392969152730891967393571676540018600222141455522253232601557765498773733651068750560062117904219517993493246804579705843676897360862065994020829519092068308983660721137014732621735348495752276416510802641986892538636284853944510721953046071675532645300341452286919291270415580677232880928812726108568082959366530365054926757800139291256146401761918338612820707664629364011927663275107659129908248155474082113528416643812204268966726824329792553792422093732476865029944244941826138648892066100374725145383838088123898940351079261324302035483593390293393645017929124348371670005561664756373860318566924248576606450071695099656285676746593094722384470643136043822619992050708228574283112493415051323913063107299805293634219372930514939370437904840457930144816742760666436549424085830322059082742596946802229690114218112298885738583622901190266740234356230756256558184015568299131347147042862720995260526771839754167844871373929420957879154380842475475448735253018206964009833713788281929127146665036959259875611856046273431837958160664249005651288397177678755137998998475926214585380116311638357988103058201603020837245416141584168524084015220016688873164645938751558536006933218774628256314520515281629535812750250513228484068127477674862985737745789970620190948990094224472149618406666247698809527819611750142005285862986391768182272982100089875859476727710977984409231385329890408129205512966388070415951056505210023833630361310736351597862758827602984570679451088445510958267742069342342272861723041389213171546329029689376237337423068884191987706226645868772447272037274928981614345969580970939935740465284391303682493038517797396029496472581327456890645259604434226139988599897748812440429931226908415982316586290466767195096616478804952590399062562764976622925092562420489399981654447388265797320001341724970379325843043370840030773269079022715342419887221561984384156359976722296071189024158957706834678430716792199842739016159619253067907026196070308794774172047109267699483195799127051908823288498588919494847941784388549136597860812262525356416394887469908480280515085293234253316736520964207054255307207564958893263872675057642942998492275202917047211463752270348919920046074671469548387910304998780943774854512612177865392101438574209194293594845053566809517496200951328888578213121733539643899805552466460122145135483924982134525081701980214648101298166789193682964342159650273231307384836372438626485428496135346635348744067040316346927126465777199307315029413297658511238688050678416560303145980958285340095861566105418906776368232726856281252948939599002807593062801682056118096896587914753363077137410676943885181146172688275523485753934524093759083113368811976628647882773083465358023447333001661139325610854563202885258402767039431188642701839393881802729013533270193199026480771436357990704606153119726671557694105591243649300378904393957998982378555803208797053174585319387672832038633327515633489600532640037689326444410666320024161737624464717698313260529452860952427801465221660125992428598227402228725275696833859024680952978667044570458762606854883903876470861814800129232654366830053665209989069831781663922815033304078641809491009930327101311905834582448519025087735088335709239442450857704730832118457894169293231832426282438173563490698312961734295724233921453397784762350595030076863258798745501719671462408563893768903032675936677076875160218108945315070574032210765330143342511227491545506243791938221722554541943794272192103081739043110242628960488507890016938129214437266837641407152962239119176115768825546178756364678664036273986567427051585631218837958022141493133881043472783121782022961590351960723745783867756861417255324317777851559543509310459765749919976402425301394620465047291559049576148897043233513220145978324839744305814957115368306559723201381968359839472739731320575209425189817901688243713297242235733316477177036682019544074829544198420054565624959086111559341004640180494259513710735088038176024795068345066846383308232681937311866791767105364138260524415886835703598981047717212549489678237305845487056611291877349564296842608577535178292715669572028075043191275828446255238845122288295863471638823452823004489871775927001325213086771100172842049009189860981985701683934782752926678959923326627498966888418915335827444907973739421755225919223508207331932919035849674575747011327542506518560913224417796902294511989905356076698076031056961083054142043540826934548414639078061037975402203323378720765839245844944005908765326471917896627506343821934016962924525237870787628611748935957010615218810507874734153221954098302978977401223503508469250059699001833032205564278826632197577532713143209767546977989829559054607207792183030714393922177076166311766667749264774395666306479143156285190798540031131192824974205080141108211312846321320761029954508645240826977734628668060276853357351347872442245504287756263909241357286005156097218233932221351212044071572842219431467867313069427801601210780280058795707734888359904895036772472849686444137434516619608764782711405786581664042405891020667664370219792687575021393908122169112582903534558292103232684756115182321605316242308373675634730651482596542538208278224534015614494126760807298683725629811274553760226999382719631614777606880215986764705071087839557963341423252139373393623813764185834550383895198270728051164588811410874662988514840816303835405571344903594454816040708319351464967325436174070874501080919339752342629092271503254308699359479898343350456149930947320389203121763967016074318144421831855815039509146165223144883444779619174270209804122133361649820736265501966796422709141435386291856630891529709559771194253185759594604232294030033614007348895042370229019616114308690825332341517145363965541568948115726930145420905655201149249900164417453124937405143640244527819685698128997544675387114326467095979430675406485412058249713539779998180085474887414005630853801185859877074924761166745401881248098713236074278591001322065228313182349834304268042128001218150485539134130725581237530498741645479452378510655134408024146088077344204405727811107173926646884590163151315524793482694233750332368003425647516096601166394759073833548310796790623717216671837298089507947048215366655342790106851076875361763871186185381069566076843571872976583913725560169726845204562504989138313870230755530597235828170024923882210842763029338711355227483451006633512420657151504607628916213983589021561028149616983641447234962618948919016508394199719842375362417786292230598478504285096955327003854841122132870072480084046194808638782643675834197454555139679954971366942413715749771559796502371347976211270523820319288767038837046116037651727764452864633769403052190836663297817024369003018352879571136105508124309671671590083014536115606757611712234833240141291739787107221427540750018144750623622636440029228635319511156521003659405840673093025932450419758466150057764123114340316796509272347047693485298228357143708300698288602786460586507247789465912014556889210508549327271317918963054053219651068053980404128506484087695155875438122282833661878038750028662641374065731951349297315701351130497093451752336891090683982640868134493734254600363901953699264256685188382248436728653506544019839310380350006948046097586100224804428967442777718778893210765207149115358767114720470951575460229909404235203595917812024655508816274695314385561473388298891134150405015862248206877870818209571647283632728352982447544156638865399836235552960889731654800534405559728585906521702140269058114280219955749520468835004294158367754527588290071185736218966986772738575636043586167199973281744373131814128969899791838167007073067964942492975659952327277942873256890492114052550341146476632463082134270675774512454165712145626336376725060793136886213844176753511888279300759917561307160406339696947420738685893618620250233433700430525800999829219849238318533922112520712792873528091119417713907884379060793017591032481500183738572853057851463331337958976406857934877682511269021515578717792619456999041299975527807308858337420999443919726179553109332310607405446497320192395392122745651535530240587205199025656132442021588299630149000533524547536281573167883615270577830471389780451395233968633833592415121966381007325733960168405400056048319624130803011078916852602316057763217318199941128742823753821290934812458310746374321991429324057219926362433752600074475330102972060161751161028848386538813437892613346572600076364680420829262038450382456370976390130073433008615861854029222180651573848590895441741411992427753578992044443676361598323961944285422648257467619226134461876570919313904902624726138897473435442084766831253589358931246857030536465101860269274315685151813349866771768534065878429341716408804559545739765690384820527143716775268126104863553078260831327961727781000030842139188214167987862003112769628236173093340363288344075312083136132625714769936505367068222599213248344814580273989885359243114650031574166933733741321218579940495424947610953425244905441418716069565282239467458358828808788016389592368591039996113183397047372856768011627572921942222803205419534757946834207770749151414304430425975541083512421875133150711698445975919217302930987556567066717080127410650361636854785800803475235266733859687327276148730403253625373173261576505913433539577653315281671036650621379521520977730771038025580512688711118129180290453817111881901277568663101632166060359084770612335960727329089215019032884432037321742158202729174092896616988689261868975316364025521356510211294775808013359074943568002047679429009107998576128107577329599095029323909436220158906736396239836553463203730601880225065017056112052570531569922575400075189231233718925631134411468276571771878676295055351335243020170371607737504447083674881552768450698801522218713953400213057364252736981069806814518848512616919434788263049180651208351750922264843313208785623980417815012763416945949786027285124954159508850720163716260660362094531236373901642966964883336296890890174712871875664189608997420240055637615151802186488493646731457800820237878870974069674995323182325997422427329621356238077247823470041852084716523269959160928791965880680629534322996157429059835124665303565274563927162376051079496813601746560306534674353883178435455993102448845154627425082585326506861944278003433457391335888082499987560033720188272117480199603465209643497348712402576738822603363753786332189564859012965410414138733637967090894804432112019762677139439022513853185630728541457988290490938451283579200266805175727926589970648238401637295266260823347366275601758582951994827089601387810835090154286116090432978493764623676662361968922291164935942713878694122323501728632373992443315747167332637847528924839148847207562528904563695674958076060984166006160560335256517834532021169789922782134999339165036031640844009366772162738996526219635867257456094447362185965043528637370334958084510645873609266436590643348741337649872877309596598038392264532605792288486429039114833984268567028943296340509640542291374717046939241395177506718481420232810887450437248239876336591651967842767615795948103397805765055135669592316015088915228021400330369410817731822618116812756235616496922312273780930569707438945623024939079388649397054533244690140876388732039620576639755856598825113485570409182679221362483538333664972592734295489168971857164070843807577083243182784203759915149703198160057530181287508433447188146704455082504849015791627517088009405707570645179839140629338816865332034316107167071769688309832574541172563251419842862694464476548377070042543046896177166581727861797696547664056549335709384528033816690610108870597406076490980365867447432407203378186690803612009914353583871145567142185491123189162563142612684825125278723538710328472716487138240744211060621947570148558647554258715849320272167229038762327309827974316083840645025614183715371650868148902509759265309225366597861514185037479477456614562940090994918143196438234541799501883272496510843480449043604888548351064900729968976878953815551495551652559483962006452416710712620391513120994280485888057031540614632505740492310188973473321410117842076570919981421830154684740811677515467224562109264054813622698884986662726261534893663948279515583103701223194359492719565391640124312824723933683501726652541175740962879541327777443759958333468436845955600694969750208606076368835934114913941809399910429061226518921806924748545588037052871858716357459578104684347760957138020520835580236195819248437494202342660487127574082973975562961599602033491872329201078788475891456673693121822296827578541455640630347565583399150773017433000749937463054214321096214630584234194151416438529170276816909736938822979540098816683043626190499161493838599314365938873247815324393321150636045695547712510641124942871437464772361430573906207134507728777772928121964109903978323085797862099065351589812519597031104876379336071347406328152735395399907816303844673956187137309182336838606492679639507069651204547018248015781056575766322148663762358592218640462898523775914842100259956271891821203617429876769386217429530766053839326512969325006487765363608581940279007015612643061843771887171091626077136449777291645571544400043727943489830195312202169183403332296229613956274576865877293656440640288997320391944783577598781463888749738148334360897707037912096028442587340657764940925580317500622337304455595190000767178266947584772863269629374244534862000405591098458436544624355708280355014983469373286310142459819710349272992131757414078890832323678957102220102446641844630032189789462875613243343605715255179501999150749551706534076896181257905370056492072507783184794136944571153272512389365963191111783704194670187484731201702748916861854770350980252696931657480148827518540100169510885587564446783501385765307259018753399511680680774560523586594625576355183679901853386772285609529960893556104443722159044415043008813344493893372101709647644867542794532215144765442906927468647249645538950513549858125628023135196717500816156348498194422565635826088427923251689939168937720854001853751506380812985209183571965218100494930400819301970942628468534173828113384168564706070736307142378548223180645168725671941503744965901785639028015205317717677595438263532952180325773531145505208722149318144844134910677666229447813616989898964867248660811350773801885331055733966134460464637030179142397382576414260813340204612199887484258772189299259455407822205111321304491085948104385703459951777397222141737802109264919276944043177006352380104889330393414887503053498584328125059299549952766176518635220489427892657463036664621864510702624630823083566510598432593060559719260152562105255206077193682631707973343798961525697883537888518242020633923979199057530768152674003234349000803738014531653538007859044071792104457929544653859958899338549238598886236020204358535083767300304011247763164507164372353768543698014570384218708569959352082232793687856785144470384166360119100755228431252446347625498479364315457674711138133568551577313811162769713018186979002968744629259343010284360309612795923038436644544526734020306942672907870364324281651386225519074474227500229559988253101075152312628442091127257817938429909301116447891417078006261779709397978577862803110085131556979384826954941845813282666965787807172461768467697197730613225880871859886561230436988902510076107925015864295531047727233524399928587712794368371751183627605830823101707326633320952975782275837757078906805133453350112088047304801593514611077334703540012514635705708669801809208865132273534852538631526272211259756306586571026747511872273734495289116078246749350074723336385231567791394808061418765886355091909667915349393828477340036815636239451330476931553554744250239101644408339059455124655215657444697094899825353220305866174294277942934022240544651626881348500662294982625463913610436910008166112743778142979990697543924038239133795307272614172819890040729418977567950894843267048303103717750128290524051020749753400214216112677479236632634154070647941851970298643729012166560439580642502129322709190888778977306740468288987342638779239223731413007648666273648981446959389258878512047102411458305568131368490325608170859152573959545452376081632538662912033085865619589104321912655471421908916193486869604661464025909840811416994742481961412226757906758612579362988046086864178159915643467732988973640960869053194852417270427075418692723797327475048262536258678300169723073796853920880874136770533554150108218409219896022327847290578923632884033098868101821382401851907189781315086845733362838255672099259863083194141592729003294958641156529079368519278320702317546691999115332368976245149246034155100476121781090450400187980622236268068214132509079192596284503086145712202658994712567126011280542880544268923114843819571002360354397907314828897026992661551796720243423070314465407312441013026355198000790151880291838792736123486005929705744735830158360384374573999512410208686487673064729780556218646646094517125436857362970755203442599530584706345868768163018500196092767153977537017826004850198665446635875697787329862679547542821135705981511483164414882043736175279706049581748527050750926092672453785399299773669323443493086495504213370423897279422158812544379430010971024951894449903926755919511996582237882787009491083165064308530971826187369406506706159290104074412704081592806143756555872388632349996123602812243807634043421336843496164952374526033718636908610591438306178831774689671919201088428127654633113677681766015657861442565326155002328279313012869655604673137024025953803819937940002171192097665586768826434939644779218554844654282116879215462605213947678412185693002433444954058462693294604319680198193124071020676529953919437397196975197928475866507619967301642142204800197351152184784829075404518484198092281360096779620856572572428779186212389199957891589793584949406715674606080872023836724306779571511159970358327100747132562039777243022675561514820256932218171816353060842685702018305633969504796941314520433418385841604812791681199979234283821318067594250998301085557017523932572499485273786801666467659278363631248057718789000872408806312546104105281168375642820191105003510390441457740476988910755108304516771316098126313383043324145998952362803072246982663598466869821585175759466357468714684461141221893702975080182821769975109600446741431942580168048506902342496904770783740817383569799100857188588582224395364803104357509005572594767218735037141878942144816597335276064936665090389484876192135383509068604387851249319725880430559393644182167754419949131095121397081856946628564087114609906093652825645985899774539123621366858286431622013769570850822669207466925191994589301022001742441190841585907848111270363745929004121507052113933068504119358139912555841413550775985695624675315175441931445364807788557204591034296017555544095561264869421711743533706908430711708128915910424930078783978183914919099712026069606283656901631131362996505451500959525883588687594976867833015742812290299270822510574647127432596641636684422886569533634407038326769626924843277529198680531447560596337485691753407238863175536748535290558228356711875007740686593359679382001586170630688585101918015646821324048222597158369824234078102914112801490279169904016141337912856831156648600275281163885617410154531164080668600223772319747212008269333694071990392674545700499863765569821155932656513352404846310568262133206823146618191239907636589737298867015927739733126029389427256398837599603061002485796519931338096481721637567910720993962985618770641185606998897567872694115042907330352154880954804989392428576880492272364996608831050527362254278699216157387995732748606280240171456187950587260329643422678350091397925211004868231555322868419125449304562511650253225780587242467201796447173084256882600123133724326597760293893405023060504450687734364882160522016440288791610871509600953314878658198305167890326148366514315398156128528688160872653530793006575167029483683285225904564081023825128211003937109126441311409299217749876759226914124988093020800873481255402888986825313252217348150081241829378660619761225325027075255389942902257429305525755807199179915039824675634576877896146305909449390977307393937070921984865405216324936837548803876398000098238713625034707388034487208426908804290962358670777833045514863893152552959243226724212781500315771549207901963090467743036889487924273166188206528197254168378843484789751360898795778116637067200342162306036600350700423861779528001203753132657421086678268455833242236063590502625118332624490283456126318972801091029145342716410690702890867454371985341354336343072326049027991359029963312240263776311902083238114579334040271068076664115605629493085968363268339644166037935545687826652558592510617416768137069186818900102529131610118617186730960484891544812714223543721880055780625768170183237425456094453993140488470666492340639863408871152664576557377492978415588562873514265262361580338365780343319540123292820359379927725492515271806731208444283579460554440929197951501817423241158410789331457801884960818769328372142992433579129507327756573793449568984045452460453384402581679477958041708029885045798397898307770694786034733503306702159658598863353366878295808041258756605307950625165941467351343687977148617142658562283963462879377020920287376096261806043408177120130090728082067614302539977550373900325280692881832371574999930507636488589555504862861529827076509840612944298087021498676699138097658611828951133756831662136354216904858238910200803828324398648107506840217718035354338399371496279924951445268979008382023075288924590089521013885157105873370297808536742005327268487566861701937461877892764355815389133531662493833318378683692778822321612600932732245767635279646226180572160963196363351888852907979194231280577180471562862592514653771733541719537117039269789172068881488792003878818754342368623163901068192267276238421365177458074889209931465925421532567402712220145941756894199897045007084837499015196042946370117135950839364185115775632791894343125395264273056002263132981987282766300850315107915328707351714679262188381415799039109807950700893110495742041537528834194671318795278782831465495288411480533308530886101039900391629997342800825914427564541441174693609452951310626085277625725632349437549547250554207881894476458953155427672684227915231668713286173212347752222533410426590120944688896751279715831947957431246555014137097350455890842811540188362822228659805606208302462980130968516301503742582888259795807627044529194176932061981249688182797496603139303576985889730972599849066669338785329929064930812469734380686316653514600932898254901760980964336983535404364021780683750386277586740623726521961452001650449112126426589893362838095877525074060157690559718088508385233322097399859810491702000122389488708991903627743968615959436643953032609772547156788281220457247896328743437162323661352937340545576328821905743702455313555372503542261967403938128812653589733066595441848805755589326719604037258345592706855222455540676516037906578955109430914911848747495199954926717128824336474819675711147958500956996848502011122914152330701368399301060010924508605644558556636226736420106747175211514019480834275291671210830240595186669283857775341443802281041745747927287127354797804065313405072823922383810687046186202417552995530233273803761816862672667366896692939318500644911217974837516106721536575545993462047122678493593938677405926153334210489895132740414350654061574974694125613782425548941453145996940556553741764277111140811448919049548856884472509327028903552605782204965718778502308670579436492818080931978019939803478637653257503169858669175738557406310121282964384093195477076435132381967407275073833138755393928087738360411994276246721682140486153794034067642321891788439972012046140408843840360857807903839922110722050898163130529715823415713351663709135703571660544855977105596627500413458839944398683957515344203746398422118851393409170788484093077959440165261358061657877886704197642471421602024939889038052711500917155187907653867383103487250250761447968822753274558323934611347031891140710057553097829380038480819277483268670255008933819579151233237787710856902109681167870872503069957273547358704462683804995006126690271091125956720452740736774920144928048452311439547615433302162425837359569555584525244114712668413344337203641071580550500888369553344223426449735937285337529251423706524489463594605401424050287819085007517317035657210191687431848125261447675636671540701044075596187913999343367520740835995679008400123909361369174324500578600692403325477316695167154205808294508348362262837013311931520616115167812540389917785242131317128842466849167388390938422766567886320966006062690248515721125270789984529705181779607052946475236936725094412089971570677618891098823487685316252568020346017153584307534700412395271560949802654949437249340841796681875713114545204056330755590324877367619859845287235413368106074991869367795764455296964928391544078959423182446764878085852749678719627295489103808441293268445451170732148576153173523335180811876052298900733488694532547260275059645249172903229240148236788284378721813510023898081994193499770553109488715880064552558529929718826397710313064576287081581686614873565887037231593389373535646069717065984041880627589237292718291334357493118718668085851154008791456775355179495760286727043798979905185827521802770497853644539021985709961556691158323047514570304927742230209692787744669267179181141601445144885859723910235606078789887556780270656285954563394334387062741960258138980572382972992715261629497709417795811444284318514289585023676968210410946458564811310726604570638292665179013270711106116056446148017046964840262425465841631083115941564478766882805113032257920756773424576188702438599570251485530869580067855419423069696691666116680030780253797762546114247092209663946429488289100726828130198720233379125131229301597848574199032797585318208680059432223407622719259253875452818438175610800622433995590064879780216640577097305750308112005390593790836062475896479659268816504778605112903880843377481043625949781842018748287580454466874933874885869880808903481175933400191942858217878280065147257499157227807764707888081829519415765880632342505802956867050257104441831001478743314982561718332394644494237701946339078361864291963887380142444813113341579200445574180861900161287700900966759784340021032368473988881798759770374219388137835856236460456285475755641266061483762811925253806533299922163325601104332636898772283474970441736149720043694743064513816734775664383517637351660856672565723322358442396819286757287020266242563959903826230547881995079418758346902045255300927515575131697814971660574639597908928070917959349205021428327978014612733655681577302684124418981351506101819162010649421090368065489237161210680240837114008657386899451468928702610002159392235798245494103389881153295501657343947652074180179160644055413621866779723793158450111240610324651056730366970419616047884714150635996253979465837546698865835363898221016549935989512617484828342675623929330066658148505153898609551672670764104983842171867491708263039553490260053830736380763417887372050909775747414780978253675045312177138718935751987421432094010160939102594667266786775981737132525458957264009225897108826962577940309660850757999052266412610927112255974920187954152885121923384892240429991752386552406720446206674276427872984909149041442171739738543261800255404273689381636788171651573274674566821378217507159763451098679176270091610178658644829602181627426811014797788154672812408476920346018441828480064776720297432091307255070999476690819285178822038643248931867207252191865201920643396888182051469764807249917932294478317999509528431669132243033354010110797130155127871230909108704823378360147242237242462756461865475195057053886687691427834586238633927142874343702800502747496118388053753425214485963585427766687539995536679149961722965980733167517709621329617202394571222905750700881484887994298693703353676392800059881801201273351710906690113047272020260046709934429188859651825207059861421340018973442024974941537790899922486827920491574505814607882085010677080238700213789853410056574674338694329841868655624619062370527922020306143398156590778392688872207911796990173386259361292748879408743239183916613048314790849655831749902859444563622918910287180121797778680632785794209338237482940285774622676478729573834875801813272366109601827684068107499015052199116001727715647109053353781310875746071948801503544549050647168501807921051468367408874108496793308738991391283951720466139017999012196717582199621517981197626966302255341627900994997874559318219856804731828578864399801296288254050863637209503612059225646043470912146958019327822279444503317043359705524239800532573690535010669594694933975577575336842166739177045861863418831879479691480423246773785892620245369654330828784315690676031965097815605102926789434454195421026633288674537313489972163747076726168538178043309044993722018567322546303774033253320151680713610645273103088486375687384610851455324920074360160821315040145551011653867901213380613985110133981495915704081101705168579898827873629661783718423839493614233886735679046115011053050227806962240409069669196988698236772084272942509679953528357021127830955409505450462991962201160013381559375176824042054838301944427977260811535625215128222874668705281336837357529778290499789034760970027295766082118274799969079597490091917939041266829074411479537840100394390258432185653510438901645491526077426179308550342344677058730163320927029097033907756815448442303173777121583600293973542566580524939833118905373768521845969241768172282717006701362260524098340396337621324359844286304271198164189218767692922041201156465885215719576900645154633058350157963958238700515910486908959464926109621892800182538009754999388352179557070772743862791725374476045245064294696885051836090820342597088220801988272234135511450772042695309324279518282732009891255597351859834391927715917309164294920806509764785395865435478238986470987607201853660021352634947132051668838530853964766786805838169691869652419760443758012243950326434187363095221980157011757549725234191648658818450450159244339119470764627906093684219174067343582545884638327289710651170943095418537137827066192760144805999211266816433191287701186206527615283213733519134589032658652952879966340549577803150929076569575019086795342207192785517743621293885993770505051341400560888381695202054964685466126175073058250929821443835663276441738383623925438527130255958247070791234949043496598234744789442690055059494493105518985134116117213253224560468800187646723697155750120136349582348933270867803081651161907066589892349877818067728500065299927828982567961894333786525079216918591239755343634129677291677812237677929252763403041969093595991694070442915736652883364076144488076567993024041500316553955068217882414483332921253294179704481844270692872615612458017717346991304283372716607418524287555085819862047463168586997305024668029135181472462833515043379681524467756575320242089580485609697726334686642343059131586419115572833300836758630386766381444480392717471451116205815081092092767061033137271988267803061408507174074566723970283769258518862361076586977815215009702926431641297302293515019320605312929054537976172636407319576631350452501148142397805835724449140150114040892033001702782024232600538063058307706539501305948335635406995520213706871368598249742462685015173539141953636389068977757072416626004284412016247121155837548123532178914469898896021795923093682200415870723235292777205272823898712255914385097589424475714140575017252067558081609549275813976658987737914899970720628624303169158212506232168878105597250021661959704281029301970010102489698631033332291479656954439906086110836771223438822118459288188756382551607158985013304375004789722413331536863439303007510198767118543469191444267772642954784366570886138485299480386816588314784823865668365536545930484406340631166967444675394539890015866301431156089492787062138065782870081526643883129733286000117869323999207626784325871200624335272451271086057141995906590685225192901022815151317888532045558434781309586237646158985326188720310486867502622958246668036066192808601329709641527603697849494111679032748094488156193704354126026947676964791082207676020105487113835360719645782490478298947941019970596652984151944870270475129198529443815536730920188500310074490464200886494797428974224158314189580467953527530175289645342584391184874953737868781743186522848413000802487322428993050293565663534886205414575686839826099358652266772894271198474382354263045978990427476709525806789477385064590238314098018326475497710495305313630962393758117987291448183821351016243431537418771895659643193852068396752107799148727196047148285051661091024386867335123159336340959564714550509440520520336559947692278331528547783039154915355095766626708144120987975587156603118279484801069763980794676750017949079660535568681668104220488315532268032910065450038736663545294157849517188858481915442302902036786239589363178906904777986875252772371901790811586480316858536320126225375693682509672742715460368115843416758654787967972292961503854238505192946282688422601895648125962366537324479934055514569614296131826654745397183678791013618395544163733671118901052752972464618842736875422900662778230862756653078506993096691583185487161336639930703653237056247794370138263196968051284518491592152747390475803844032494533211781092860261753684798469437850347497550132877785560706515322878456672900978631765310731718450362476170465262286391136849365688083969107496897690005350359234860711922676639646997710491427834847944716466170907157336423054742435914738792152080042407622038165981406258438970480788132787381940522120690305353903869155062862063269479316266739729183534651018671461088428056983145033697501078932960420911552368187524845504989357841388190311533529959356976451074401649869950437480254036315494680604109389052186666953160940357477100273074103264308691816605906612940697250538794097860734966092839005909717435131264283735203363644735793078552233278489227887044946303173640287545111249735589416780987426089899956823734351750467729274585441086198793956019775914750370658207270871571233234200384493481591621421639597102062476375760476946581843642036285791088414129103692964474386077178158293181275696036835077843224413587475690976589525621997649630947576356893042407291248445689673772360679597819386257931669603817120654951402492740441397421390934733256816799763635956657235823671566359162670671789559049477398987595452027146710129280390192426413313810289799887656150229663996481288930182303522151803878987836001989886541323593971884797852932299527614610969062959647269975771796169941539708935781584658817957230605091356009832225893172843879402715395413344985788507254880787848823704258641871644925569813707376087387315729731766800421559370304514636135241779981650018081214752984700753639585106721208325919673813049398638466830460131573450860861584512134182940907704179743365952829707437569540518791141326407838429944412089505240955216195213236844210037518034988890581020478562004693638305447477938186102723614916428589769882329114613959905888358302127517666889038466861199874445498325732147176887213240474243091658284417228753717810720089790017741137579857677160635623059091373892259938707726332431797422798116389182898165359027001375963006404551136466804814570874505122026763761887766315488212155880976810980243333563011874797948464702226531111044393063908200656623002291632884879392064279068081753081445749298611609588857916620579819572472015116889765533311631093507385004647084760696469915033428286310863134903257511013054052719607739121242212756265605941924403801646210434641726452379002567693555347243332423649091654900922690295272372494272767107278646323382738288447967606998419262632754034412290513332932558062768675894014377426985111240280926426106730307408357063358228282976236624035026624936944788494723132181388821949429875270123090149273039606093388816427407400161613995462469212132294899078541260566071309941895671240836375896072040386169848414164854474120796118016102598553035052041086157862120029745451862343769639202935518036998213676473627208870080258517465797180173845374186966317421849922940921170950161051426976746801368102878471695752264023603474009083221866979911602862379519191421582802261574793667946043224463599514055513366807424228940310052198112900304005131640807762691460685305803669197990038797761663056385538767144933865905768334812311030489060161756558701080855509537891332038854709960519373617559445270777513819408349774150257466546927457498126910415238543943273009097931775573032948144248826195095376518279788768101981186911339984615233064757050009456524703443120277316993965869230029266081567561433225984766321069186736904072494086912046096666300456553524863544456066841517266715909798103681593357852758954777851047647873063496080844614040681465802592931610950455704644614869956493349403712858188360935935562113700154785016026453512663342347299734430433031225307025372577695176893975466119380878457038538480182183801880404772100025358272841984269239032303373938779397556717351337299828869866600034376735233695787108351179090990540629996162569458114492845282545336887743013469724573042145927000648874658357766806675282677728605693125146111423528596056904433008981441880799916802554251260464063360958212100139681152987020806954626046699480632403219857461605256978338209743608914881745427505399617005529746877101665754095152168749641727870120980836283283199197910578121662084928193240443354931230854396951317782092782512185321304502000988511255624636398499458984476038816987934153794007001372561367280199624954674014893161105227264252891700617172226867581422028149110476859895116899874707284292857856980311084400801817208065282835562039490381522209622304442801892142942020225060514506544498947775851279175962606784865144144926958921563552285884026602240899150251436728573059420129570869426352015280943993299317907402434205564810242985045063265913859111294114143717887650071135072169536731179117312285762432425982420802839546580341605718274028435902412631303922877692530729783739845111866011717909965447258616907288436169959607128201910166173807676894182295409190660346445929817626192607328501580731056612249073210316675060617929352412779480627953271744365724543717638227486638151771516459890603281764777284096320719416077055708955359389509228719516772367897287775070907569061592478903177782400859841052543569565200978393388652631899484751802683215935103161717503609073774986098729473332688214080752048324546537207368318217865654771195581928618502251060903442282307338211807833189779383972575872562248389398898061245926345930507165813975213475814752228590542280360091561626954444444679016090325475381887540096279886966691155600972175933332117591974576591553830493980416140080267736793246321411342579521137530795899509614959709180257850183682175424854073096386680399455516819371958542655980513061516509906017828797750281794547446995075534171781420875935349612830816338511253289992211818124790614111089446194063554781294648032381612861270754565817495101111452106076201652532165388438477197865724254190041441579603664527117845837081116744148265632385591375527307071401056511829000142221712853102930030485165050315881231237192851244161663491910792678734673270366953193935022572944833133967722143734557336481253317402312175457093637911904796829061866701499998500076859138674746981361614288241119386474668359590270038747402471062439203493204111652828570001125943914876916708150142271902164514142832417848196970180350007461350085425190059678910965050045472298588034632408778645593755911223980769688222970620661535912896446353854211197916326012352825359754906726232446745221169240621158814921127576371721251089615547083047787621818646561599810890701474290762986834629572042703990797234567454573313409319169985503545506189420442363643365114415271015058111178737085336084278242394330229802544635606169700317192358919724662962419156339014714679919203624815842092088937431679738704336379382354428917338115460310651696974945726947559941549311999881958861713361814215505202027853506817773524893825305351513420121087089137759762046603692332975873893590299572516573285094025023050915662776654484511549211144096929889137181898162614166454987502002782283887444483432102548487481493990914878962989871132623972185703170870561010765481676973746167561042057353604574659723460704027698330189503848472378426935282752313089955511016898233881009055877368899654206642348964442963752325046856679705241118535182885528310953295619210230755044459418515629649067771233382690977571153067048291222350125049661072481893652013758609627118916434680753673524822671091757627572211732555894012866010562045472521260452396983200558979301263522833944621502131857838216609716221798004276844462900585435466797805830968491249951806481787245607006150836112376850566906051104296269946005478406147395380449776017072787875262513517355225112101374959505783935240262242083894296656296726181073242664929941032296273763935700562819345480576416182770342847958473795097927153129290897963424127254931435157194160791789057790260677650061825227347228961380143138968539761038731620307474491646246543609456228254466882086278719761421589688193990881946126741766351232104685580065850427964511896744028356862532639543834057642636692777476803881325143042928926447885463834574601994730544422736302496242221366849775195019285371148102613606390327898148768466370664968053322299515171414095413125105938705725785322504587118001225224068422816135162466295801300090523365055154223642121964734322217285646162193294871001883782372144695568365376620402618275804533429504303684699539412734458906574519231038955069661746273695629762358444158235124893724135657982707832498424946770680724492568514451679208950251640316042285080409949357737968137203582127713251494924355406256779414689623531652294723645688340031963149593643530239215808839615347139004590396148473293873313656475634167155344248044366550739424261898228391922500437788386791672303760279688781411522768420321386436019386153573337354976803091036958463427677046269896178498709531901237420299262228769442831296404590358616618416764604867534793648144879341519820085033839687441372169810395990197303531579993611951057297472546375095297618386901382895550392920509911337372021138089833722522664540679160263664252826176410890948186109659440317765410436699151464911949884898179056751533252713993577333374977576980673562741827021491988520375895330663430279047980568665871581031779297228854645278630678270344423233068842627780538032809802926794568876852183236427271760039250171397753894152439241105287835063793872634979034913033490980688094779541150317273978946693831083339946602379373416141251967762559639222777287549406684910074813455795364883368738395225987755914757788637879148144206392035805884420519978472444682138713669995472538386161402064210915210908195431239520073951999005632854836931560211768529346775029138211198107437229514572754217441192158843023546496624029341018895018446485375512370781328892022846657977811402185197931778046996633735165539641907310999335700910342582723103417220818680838430691949596087151628439157969900296969479661239111846649939411750810120406188721236972470039890395435241245786908239082027463280483489697056499386035041601033039518101494265403506480572088425065521148654506164131255666396265625270674837246050427341994018086746393957515577687902290140774563953363667122540685984067438668361032308774331808965849457220537601896823329624914744971406501182293405591862747718199467182064223631882915751761455846689153798974613345785337095956414266295230434137851216790678063858168748695566465141415778144110518254162038325877587749549828087034001672815866558449396662199161425867811894215205520186725359857755426178216119931194558494825858912670585846946618021407196863223525539300958055792953149363410034441648322586065136954764829194621112210725347766743337423035442154124242959499196871037566844440461498907967283228192245103822171465489665046892901788340237385570238002641384925926809523146993502563805154539464429392583177110864865791421529923619341451107048955066428221716415460576848372498777169078646184819843795345983438227939203267262405058315865167072181016006639931026408739193831427776923043888183373747108785610149300902308474065615773862425547843924779856933773051604981111732873251095177893979498272981548524394293403559284336692045235788198125631062550280746702936539394914661304178083371852642509157054678739821052653063247958629304783351439092952395087383733668786127291302906604502118724217767294795889165324387638407491841718476484235106364887189382818802149212254898448103534291436130901483156081143890054181117243240521041649031496879428083640278633675645404442844697546620827381659704196002788322967656112724731096595207799697720727883606844824333954629190359910642809006048003401859228637826168227972583484856525920375820292798375076208636751609151112481060197721106307680335908934770844471742055010599399956356453800790817488011454628816125431803478391837731899032133698980697615464932248880295265625182831266987774325054430246169829686048051255517752085274709830861157706204697499566103163099571787030072839000999540275564085384571170806361364854969097426961055373337182592201619240685466260815885660174773419351136752237431002303825294202829176607647049948273603226115355828446618945909269763726587928126049926549829292463139776163116511670504449659206648139755995725702397537649663197734970466912113699092682383674363369536900261775838358195444179285118281982323633309371520581071087287854106007419063426938415863963421604316456065014236782437913461974817746650525187784116130946782015360154800389586074326812285944220712672967189598692632972383207924636412145308779117399924076846148990133663979393350358703469546355012763264338322431092781601145688824171487262758375575688037114695718871445690313147244296814222830801112300360732852346163087731246018802533543244638239582260422073817428883509877349778700393963751406157538801914920625454016405616969593419772210416808728613200630286949011700708038358701556632317427710980225143559261337844271127791615773652460125864264547422238457235897941739239183503671511841355292074501118067418739816377192969202141122400042369903707687165841059750915118823557502068693053937922805852751874888915909761177999601747172388823383593212756339278494145042526250423435312640026929284988486981951727239159133450867681279408275522615457547194382445884741011242848185949895596033664833593710482199782573528875345178485116783087165526648254310922981767460105040382547919212688212651428960476393003936058005085334585047851086548062726753014446897047253460651689150610026678815403053546458357605167407046923831279502975697148744763020550937606185162348805279885821086613864173885554992615728928167842080867966228222753323967427192812153992797504328874491362493418793470346596016454623668499032628126795852896662763293325853514464211884727270506629562040709389152449636523776677585646692832531247412708819990734845506365705352146723718141378149982727964919518687639565148216117687643461069285884393353957002076902184246156809553764572179824319909446932418569980733281397947351620942525083000787124119637816721584274729393997565027847539724258294586782896952214906397230033512517640893266441662807149365695850313899672860865218521867461354570529274034696338079092112851994110853984175148165353613124420065850059938879738094556331612240561965111155975372710135569651645369826529037514274948880657809645067682613779456611027320230091232887876062771785388842177108607919881146582447242043605494604534343489868711448459302979857099841006659341666057420435819136959729022077375956051879825330791227048570263625800443586190165146344104619088300592580070226838791824046499240335240527336247162440748505076323060019377362341277707529300562776985690111936124960711088377605905314511282914659958599471285882325066938619344791621288592284180406765131987218104278384948894499707424186394797039318849549530190785470791256927910144785450152324577848412885179240738642280017882477656222099936877536717703205706477020732045585333747549609573145138077294935868555614038634481063302495232100593965683136946037011515254385213160641956196937207641352609518008453880378134279335472832690962458224360869828659891809271481507204506076137473491382169078169792424290316678289077043718986948049438763949369767371936250753346976560851994390876146552652006992720526135832868233215015447400402440597244735124905895254968323071945525577723270819452780821770412280710704079743680273635080534055197728342285980482517695428135749525966849292222435982033012227442215065664478413642093077667668887557209577550171223132579567137426440610773639899725138851415889498131338662552455010599073133476251288125472800601402142762613366230472778047944313233996345727533460859568084067527301895848016076726594849384244159578220639648655911803283968092930229831660822435850744093909015034164268726539161928676157102132031899898121416140539784328025592150682570558959275317441808034389464327375324392465369815443413562703747666812135670678485094700017729821255083644877370205484223249953130666345988686578849187348157600592233327786921810802219320053884308848482692012672661528664964011014103686082454839363232089828753890194794476688346225532145069767222744494281254876879654478214980867107810210197133518349779515995006770789066554084018175851515800135876836552724657796866500734496826412428286150148336564333957340598359339983079763860151570012775554396519800599099577222336074933019327543147667767591498669030243696324873319796949397465295232614479036986868810193601959222769926498979176469203509464295357489252860934423365434276230609668297664393978827430818398522514635898783664124369403240676039952309467864035458021928241692636945448964646169525757752589762064586662125818165528739206589909844910496810110889356263687462320881808254669756935567063212463142452443411103276010693496562464511479119598605245577656013096607737293260291388219002064460606311052750777043850824112449751878918337897788444333220642227482216262662594008147123289993739658858580876485431706012155304335327841428502562617495908341113302830229287502698384338908340738030782282045276639311618864020876442539234309350413947678911543559412083967668254951104641564122039455485651008429006795470517127797554576561342836303150673943053424737747570450988674154013812248950510741337641519190244947442911454397815347555599342145392230668355507719011739731546477393754892666132826034931527877504478874276633618950076238088967829323690344171052225408726148181433308706508266302952790416166731205292357018466870499490577986365482905440430190813623268506398040895514733829731900269440389023660010741803485660053320867538781848235696118989599243685782506989138759760114403799606740329455917187982430040791605641022323041432789260037248869637143438403260102137977716953259817694293863338788433891904680451769867373910524594451332051010013625539578828926442043247471141590437898208725023940496473991378793372032544471041212706041765751031928282561362967247196596251201170375933158236489685394186782063411499101652465453818390688579747058539865889644879608462083331980357750283902750290984462032313918504642387593446503655087078521264123348997437827429559502741711120499631557185737136977926964004099964177568147317357999443009136564571157978430639273325132919673470009500716150269227659424269592036553717764381599437655434759432877316063899625770017725940575939281215185296524261881461414459397576465914770660259177627736333699994182691694462628866759163318205062394801103433018923983051821554452195783352157727228823960660987538638560044445831686131511016855888589283129112346557080144019721146112749859697452133665632406703721689993486376011465395530547401592291023533904382722822794092007892542919158838731159416473555606556180343852732035184992068314647825261513710635474381136972284823608286145450501716975937897941263128460947305477369838900076051649046421911657889972181862130312303730297897315260911585390052677657904789400719272220749527641592689450196068811326906977023533800625968196860422635643919567794132002791673311963461739733651468257232646658229886544853777943181855289170199361047007854180957637637814425633646097845377087057482900476209720111019875849158214215752889741921051505130373702451039063549372743069994652269221865591579122222946973108521047645068822217136355676884469693280854181043325382674520119857394407783196101608019528313384145117963540723021326196236874616314040275722638313908185706971435906870102555551513622796261084622110900543513402979675441691053417959481559658050257897271581131773751048443134094984128332267070072171007942751980451108803643951567510944899497039881336750848523164334672890617508969419841301269105530915988025647748230488065967450062016796996549674641642490626042792745457843325983738104865292985026761610130403996058375131947790479257747697140242709645179414590248252748418758895631939086191854362677624388836596237227216588849993689644483847530666863985042015338016293505234208526510218180431117460194565371898421797787013333796866384881721637860822157766840917289569455000734948151153802180196454868838822360431653277093788998033966448602931172763404698222076677362573894877251244202275688920381732007956170924450110056047387949256418208714467032108762520791356157281381537618926382746733460093289208126059806221037392354520825965237678117492359025609189766334623234600146698214227950434506381774652807354645224630886318475269205478356291807331593439863316134496569384324930143702476306488432607025789685325292094064939376901621382842352684606693150481027838699078915566889762425545324453766382688931716346466895137848991369880095902607393831760289406588757992449288760114387599104587647984590067404547254277537262677910522232977648129666735611647565129116606694273397011085275933551456563720804365342396250255662016795000198810868126388829993592477115169625293177122653603448342969706586354412682114045312684571254240567230605847828604884841151337034169788448697649581752530519771099086026826576372907553511693936689463865649233458877066336400072754560888484067492709397033744560149274957413977048615401391562331199032510661748559683963960064696986192278161455887955180723557059676223888706860276718547332913720539864514539223612952915228012345527127297781181785076242003622947417550893242971389671566879345265814964647190535820420776111412461293271430116288102855631977856549572549262283325467385064436724467682071469285860501670431078724881235471708774017987204405038242923140254505308502839982546114365462392823782839441083622790171562813611528892566863051444117541497176767760882124133626158257255616935163732210264162705195339568582699506318289846755112150529457726209068131660923645704425214900543825566240269650921068340055891343305052685242747118173956867930240579791276668617463975653468594823024162034076783524011157194212532700270282528820671382536276475549283659204149540322317367861676873888149917987587784542664834875540704571006215349434432449363127580503588783400969654434049878614771428978031998759294240020386551209294264584009266836230215187953452607373420414386634351934412429105915640140424285690971924042142521127922526344986839565221135395934121084505253653189823286719229339938241754460932522269790780863149958315567825858778934358781505402331536157306375601431571781457275469931345554177220375124076832159550850482442840814666096830933711094533619859967103101793014151180863313931268895074323868993163903029245539501729076996419287680332940588983630587757945223526757922030587160948321448219631700668950550473572155470709918625458144043001390054978401775066237499665416154992432228217274789301494731643324605373292851466971398594943000077674079701869629600333562178439944130920841095188837907798175320682256261210367407736649654672317594449930954181619973314408715051305250910080132721445585332536463156511919911982212633754328820542292470521105414236827065119241272079339361140506018326541579327149543067225579987763281722063201972232116664171119626779685496403994504969613040177809001455552730330948090499571365913265619024702696611547334561390729448054548822953710687814326033280522382915826257772843372154727602406551662739819161610526096430806700419243275223089061270966551995605057824975091128358882587663873057945909291130584081508187736005730688003097542881588445715414269688958786817402533121377289643204093681018702834944692170186659138479636688365492434303126811141523545396820082497145958130657488868571189883826324289083207865251875678198703612377897530043214210033897076684958650241295023468660209511281796588858660249783090610188066575990023466986546742496949085326650499861816630081359426290632999576519859556885718979746524987510697707052837524159100511261708963931844261020109198481150915571615968239277111979665882066679717538762755702983446796970496040906248969511438514336298226132404764916770473035746708382560906063301207384581577370914902491899657929330137992801445288301440014994195283508402548376930557667549919833103775525259312081265198257367275227290974274227178088575955294245801095378318240883215461144223520123508398282154064567424413553480134415686666340208278269051397563198524897780949859158138600607291912103019443000594218366471475142721740236424688540636241202119907568743630143162358919763267401585525251816357554578966681875305431158415090667512671609080267330141429740616062926659246941685814198908175852906759322341651605016564364203383294799847959984603285468557384467236582356875368758088475007500838315522752341851317255451849187896743452271185357472071058072171192892790484408712217940051888318959053615997508317030423954541288271512557867213062052130983287966056026448704263190515547435980669753728860321536470025033280246508736131176025291695637164966874127343320466055782157197855344246802393847117758956001760167718273622691959030856154176662151179136200276344641757292351280610636362327202480329484254620600938351571670717814925924688179312621675908529054440048674039119449098874606853172399284626221468775219947808041659184850856126999363630223006091223633127695381343059270518973088685794481834700457371333781456126336575645538411372206491509847496765542842517983078850814652303781995143564819278456846283664150103645194184063589669262588876816850126533384839548978218220733069695870253789486505222263844212993297243101632609545599863563715143960738000139298308213915321609557194713686137283054090292423250447581906808371641167473239607173227437443707231076276495240848175239106338367462266392552266455550330134496816248019287842832085545408373738950479822952637452091635943348727821013683910481868145692570695653451226308481388545421159739986068529503485696952522869450399762717551983063004776911133303043502100097265724495387611933872596988133131993724199818340218564783471860945078155548960483758673226750522350983538617601306411048120170177442050852085499975859030708176084149406545474242517425675862273192694688891493992717280407365240577653717933866935601181651620756260043559393862823561556051447499042025523710000515341896153481347660303733697788272712180838224007483187963970872400587519048857080655584344562567298583726825944244500309328767610217054180612382611535109832472427379334662366788642729765631811078971158909694093793279826299207453581116228729649844624946903051098947184311626716697666044715302079370138213045152368878367714847745517793031140255715670938286500589663003620259247898998260032017483204634271638927940635846169417850232487518035972466754945037857461658072665182156561665934033569344537709886393907288527669217306819667782203408185573546336893145695244220382737962997830393742029915892433221690464741106186114005111613869215076687267531194758348308837788468284894242114455558078745170540838281662265416536791352866577982037909446947534342439078179621005646188049796735359663742094361413623060366628536169155220598152825180130546848684134180961827794774432106807142270361474262041173305925151237371073165178846578757802779468077913527151935043654822541879019627668236716869636011585468476175825468646834390527515337522363554099601564049775505980659759014727296195448105241082325853368827198236231602022162193698241069240879556901945538204136805410006108640638874434817648087698732762049703464909486842238667263716621376449095258193091028660416149493395974658156420810714803128841741609397552497498694125091058450234111029824333492306277319929630481601762032598684031426137802024899508518725680148397575863248322600211724819364745610001229156522320854133561831770493837602265291399511662266290171334824786001967228254388383211850479680857035090542433394889544882333155514939386197538880459064925176649598006736794133579987207033520045603537806882853249270254699995686015321678753695336187601624359468185883535382588615842375326654458459030160873013370892652973677679762975223052635585254141863698026550291328367975652540383891478782028984110219391360072090696163352553318909448874483830310101912236861732655550104681062130997747555655435755729818898227702058422129180503266319663464620559409861593013598246615094047262037274365638296292646785342317532479600046714724070493104610042325288299236779680967382668024454198673748434773173055863956552910946013077080793385609059981447485081409223583718786183282003171850029306075760351492212345062669220206541716026195650696155298121743891555303493668581166550930523542973233468881450535633725553953472522407823996789311688783185230842542042638267007348270661036298689778003679183811644142096275891455507992774270239945351147915004864609076415794172147571312263433961007999248314792623796979486560828890826423536932021027549704147442194374170742148465712677230901055467475154220762689461241361640250370737785412010971727130894362430271057362098717807118688959376446934892921977134211961705452065117609675370289046932698865383887315426402155418532502720218722686488526903851758200797214431263816458839862527130905646952074381130640550267653502502210122472640488479975922705468419620472019065093438578116151098714333285628016580727613009717049019026299260965922453583138013103684387071681128167718501652375650521755059307299456353468599125256478220116670067710208851775244387010445101963591776749472745869363217982675935652645947857727416569402381150368976411635116921205652541645286286072769955646320845962001980134704585448591402081839433346726308189841075650371215590546733270065193484968134571276910497511364291858759399049664354808906360834430828477668891355262219032771229759577056311985704245112297363742749721262113843346094612287891342614077358420448900482559668070324551815656997466391653516816861199077916475201346650806065880444000055702072613051029285812972268562614368300466123704259927698014590390013033346824273359824858109924523684386240963320118360205965192917191509925549293082027420077803336336775458812583535888907347650107501495920743821317893389284887813933617458614335203510935693467518419454123155396630751990631663771102157299452771611746972417888873758730574644976139098286911192365474230794122174758469805917398021515796803079438640418022997972532620316396465745228525541274523944692951422587068480212964549185250638930862191810494526128753862824327117367399175105020987251842740719386669368832448453703783324439583958611889392401190102960479206075939586214662201579897498262192442367270792327235682807798990089895888314977628319552011785602873670159429544599556410211935226522842179081852667847398397624218037339009080626417841614757535458872819442994270473321831706581564050902235751122668926899367275288291119463232959757825359235779234119280460368517800638532535244070865697423178692583202506826253836255884971159750211485080265144768482441054907562588993471887580943037342750576778612863437168147721670023665664652246394710440845516156287952915317390522787569445783154052631972007370440734838573345075462437917292240779978597062426451103731923580281400950860154484261887317723231275658719553547542800049176649361244145901797335767494170320957758883152622066370551519024782565434691243917759723318778019954079504372969195442055814212495271451418717459738096470464504874720205763500411164424586545514070020715725972286448633537208764485371436515490647084597645536863335352403998804964414437013504620618954989891018283252851723606480385435042384132045384553046226658770732319302164767801981947225208019993024457675084259936844794886249745158160034403402525735317468915161123471616466905149063887335744602622814897874302863588207321535179835593055237477286101352899588196493876302556763668345374863075211347716125707423764707279397189700969413971429891880403194516630049579596988712404641288151600865380317811566496300751907383958717015447149442299954658703221126760829615195793285516558619874308383739495966935644608833873248532221959860774229557268601848271191389412371973864992488159032615026781624804145616367222364160854870940617220274278434322947834237780883413452468882534792901234325665915108185021486797233994810636346458789788097685823125648052607558195462799362983176138110668944804994241581746480853072988678330738585677924435545141085717849657526150616496273238038953267917686699943557077407241498253800213841011586128919790344965245489742503917969861563584168558876022648433667150463463815690318383388181677522063090674309898538896983838366486637057718957918838431646610934620050984146687496232658280188290877905474947821818164454218910582683501833752310962556856219981000879589441790950887674278352602266740318843943693092923174173291349177607557195159770530178642980721531285396798355606853962083815386194655536290556395084479160844472597671706627152097701219006099327089832298330220304200090619133582549077370141976705140142561350782124571922911376067395492948419267984058664822447463930830535672901125250495170677242217716640114533302047743430204212114013119815093171370802718147034139596007543418027340271601755034888361088265152164057819665321171477364598446815679937324194906761247841267402003692768381726349489826397539419386483990111070010792732501669266947528167267803421701358342678060845117671698815385174342779539944783581620755740160702636148005454372325009194413987881237639950513739260686539733733596557619713127879910273482618995491608183815766896803579026784944272612290343866038350381237001251176898953274059047193328119848804023212281735795730339677447592546772727737737857203626590502395589027393707694374380986727598747144097710951629951490898002500885867637752747441463494634580181700688328459066973510366621897395915103305637032446917757977843949361503065552272343529917063526604544140678988589609441007877929168698951860288516351257920970758584670893362093985175817423183743555491837170395872339000816285765788578871479082361360377553000955000754754153617628923446399989222423418784279277028039824036317002202918668365422239479892827398946410451067605586811178777595064351090970283956056741033750043771551569077956640247388503538109185313256981266788539429429921060119987420312075130286481564748623467425720021724422467122458852305204918968087455363427468984909253860307527850651651465198388511275437204390756833630586074143856965191537585907071164303170595337189034680592145062956096803639117034772327766969484200340788788911766049638722638363735597351983971281719826102517798771891586776951822433511221756401897803253322803761948495062735751952228315400640717574086205868997049251497023100993984928237905549988874114584832326759305975954873512189926417051314551943040407660450822803675444292216518174230953183625013242375612249113710407104468601539022416037175345334131743301723823284759700571713763831128894581275423853951796562607067654760915799702024144426796728934216601539975560696752265425848081118269209569335051007411263804854213235614863675810775192325923240035126563678892848202728071744996169180699224074346164089099304227544828489456520107945681532015658001831271314985844757514004735751481630150822737290177712095169070966059722299420587977773749821147582078671127059363414616499888269922233120202024643016117294482276218206413087307801819157346660603438072313829785818395237279667986526284280360830730045660942913456395138814260228427240830889329830288918692787049012779365768623796931474844778398375825372569514158569132765522212398221780174781126970809257842855748747356092343840977155004742084823325824678925989695046853277964089988671004469732893903949084767656827923069796500336206763363775492743451241801865247197122198809838476985318433226462605676534758934052627162256423095332205430085677257739569518602765958170941372384823281385915542850163333943116178378171960946211695149629727705741573071469038829997596152798906006326460727372991737228832741601682170806276537358149445995561753651633753212074309944796127574393881226757096968306171788992297882754698594385252229773908256904484262441047736334803961847700296303149009058463215031091231026766703541669399329498184370161758768836800963020268044301377635044710011581651748642976075568566473964104960800342430071322037676528595970480795796684580484420728916317523087467455985584794081545593369706786435913390733995398748560468065475944351894091680008135537904481173890561417305650143541229538606029119757897056391005700980074632856424909050838947227742843877611506046468106802157510339265022748098586541478026078282393748196282474311184930148058926586994200444426801458634024059800613942222335273058750736365908232571879642317301987569022131500155316599736543425924708330071831013629858263275466987846698783577543061743613305445932611154601569509688739603548946668678390456729196603454949152601028931027229090521554303074571477325405555044949540936632383618267190447088721937116898649735636498368840354773976825222565514410953501518210454643999757112872051753612435625111874446866619095911299538838602838712439561573857240974933506104745514858516083781159137417186613983560144415872731335325402642003166558288195969045754256548643937589461836475557769936850356545242954826373739197186515926961659030779282907752023573746172287250230720575514327385942215286846003905110451267765472054082516968787446825731485175338354783225956188467993015835155681239455836318402724787405965421565471935495653873906302642361335105139813001758974004672936081138916450791435341088105468435303229560995852850330211882741871866823156388496457579186348647256717036120315479668976110817592331871110352833526212045224337108429685913484469193408357378377226179087095012958877768454421747536075052907176271361437965589311025858397180884270489358974825128193246552824730832664977539876492898998068138154158749919816125975168252757293930307274714319396766882776455841913458597744973747235620570597162229368909611940752948439713784558326632014520812325393218874000578391972273183645478697565307167223777586008202117815895974941251062790762295044434556154104470508759750591029474529281086811628880953612765729266622088622585435222231668641236276095219644501107909880487075702789632423990599355835559529064329423903276943750367938653607433257024378002365399792003031946811368337323060072751848034181454556872979846689024561914340157887619352337898759032638232429844133653489594395627695097079498026392829992810988179811233026755642846418078916863344065324059622725951917173808257819793044983057309775598506532216479513963813191848483500840140955691155637151735286176995403594704056151180007654769845384048069135877056617786715472748095505845782139916120174750037061592332883769435054606611861761676996247870385565569354442862431409018486765430851661375641437113692771791603339511083000232468277494248191288203700593582151898024177807402927606851374020104460052805068560865294289365535939089876037269677235361440254152878326043276104364475728359636530802683230963511327380904923593026595647624956321391733872222380173026990492372893829112793528792408572538516988343572628302835845712760464873026317715677908570329265944505260748311860625211590982481553208353718191747982129666791789838258989920283966244556681401086560226886247644146840194307373900266990535352561017393223017670794150475473689028245350781342550559884962222114317800675745527119012821529141746569748417021687750468031530630462051759132800640442706123812272083276147204997115389151945800946408273415718276783280500432485103650835499059260779821031863793936944852094084111042716629503536032375161087255902135631337768843069880665715592479741119821150159502334797135490325440404611929871625890471311688703411525930697434577417240566522720883256338865636169799877396690104048922218860483888876094792902745739990765431700312028209712010380861713728914477119683238047294695140987130151197822075495585169928370048228914929643070725326075616971141203042497392149351424800013305680051026490411481776906993148938439121315997753636898526841899509266373786570650297307878564890185297752043961667062463639864943142432310398021593836045730020312393300580670985635218117981899880121010856109827864636632183008590161750334500872168067069303498369575130076068220915972542502964030223906387437520282769142923787161304140848956869675340319937551755512957739180141141011057466692593317533417621449752826963099486784307396800784480586694990982484360803425381200432306478457205973744721736046021466485189598829200514022659832475839346743012698229627501243401532404862700552627314950880039281438319270425618577811260038376621182917497457901300676735150404547605934388703194960671663408922330359094107475334942042439377893490179731493355800164346170046231613293652075132832426088234317431497114403174497449025371510755971060590111660294497643416041188969287799211680582626608830139466802479822080496153556737721981109872067014016754510210304277314274757898233117998000087664394874389506748761405845848853827017383285874177205140681916779061141741188693937785682938801206702026800835862865874205335936304674666240946231694313096140494448317235467440889231482067801372665795549256825355085635130940846450381689233108201735834935847085255766257493061599083749958136056569375584235544134544293046746444669915328931645303090660968000856532942885777661071950428364256931820858440156868128969349205865458384960919527102111450625952344613710830502122460183514199882977408141046064606980114104720658553040539595506000134023300881359622686920045760051894709559660526952584824305524480574013932500424594252483534340338745111559235985693052123700542329317996050850367624973873151554441663770693940345140331896457399057545516958017235363811212539078577444230753124450642278184602552611486126809315805718200498571733094838804876418448518129872573588682919843052655792975937264084993203549234819261548460242440578309395466843112799292441521659341855830519243463336211869739645522490436050772523692076117382535333919131266884208293035349806057860332201290538745183498423840934810326865432514838819343630575538456610473099553879479089804361790411467559198980402905231497627302760676216116966788327774724898700285834349588127002002547194051204880911047972353381027288099856768714348921889408538902464738583972808498298073838298932185324322337241362239797538329412619030841427337273485437438811119177577648421372226386966805485084733987886381587888448264320233040863608420510893816271065827129624301265204719619277666785244260245257420224341322885684232891593122573090808218816845485638201056920393742647742926167867913817809739215895363115716421009689070563626215864340709698772394111533219176669154650137600184684935403696616155236346518607254574831437517976313682501220506379655241307160973160530939075282848057170751665222090129041148259356265758050337746735161496428937493582122596166927651327976045288349839977553540662382904269420286161930373553256227757140375265247223215986706485497247006417224108834207511302018738604057044158974584318062714825818243070143932575291323481441909109010888908242456764851983721620745838938085848602149752222654643184761218956611392381830743367584142891676189417304853566566357521154626478648309977511981368050176942802338466675920894930582223517130542774631747883716041792870360794975643025010615693526998536995840523125014170600133610343791907692194767844753547864587481388096675593709309606144512786011821852392016837281102610123010660237595678428440001140385502790100206922396459100626253857483421120825022971247954523552211537565488859097066545434849767933679303832997939857164427339103726752108723394182684723376331897025264046825164255704672893250331959239853162745891510230448748207928735561963378709502249932101181101514090511526694391829565829903149151634426276842165880265031694455607024203202737591440833386395493616317515779000355490196122444140112545832677417884663136412255549706416761204088143385084394472449993323331599982218506607519136839536955639893066316343316063237221681220701031265917235782716169768490675539169132683966493279230764808507972768513670334007950789040325681316809312654084140218899582037107257158703133167102767280698142540553282781900120994913962290697010926804266467426901407701682532866612832870347435628647636172875678365803571265386982570887570601123511253319499060215059553166174447159984665078422112703481859753831608209631324697807622544372649646066875756057736522284343497558704962060572870578597702319216722587004650513177053787871500292570902881408939877838843962856331703319600770021202223160294260977030703977941055177233251727279455684665407271377244887845799274863883792158767323272198572126773833036914062841695837443848952232543829004824421332335540135840181290610241467877538337018866602770030854643087075652767636860173154547916320050601679523750198666579314893577320885533268418963668939100734822496199563320487676849786236472884119022125339167373573914095684693967218311488313969340785627162562783495941487593742776412114579201837765930399005728215324659922917721448898082745472179758704165127644367773368731891751098751289980805129437795062422719988994689718674508736249327698271673335865053276852590496665528184494080034109780155965050361894721070363402822187006448884786932180117485801367150629801596287320262604760134532109672917524562207985114565399206086002245390265907372792890159973195236452887187555963176329713668935520108976705668313567377550228522365713198285824803869632569651422916197278449593253569092758048534199790078762702193040283218993511004732221487137070505867295274797176811408760391424012909588033092528530991141402709093935958487977244057165601996160228792809089900614934079403694779337842403617085122165455594896927886223620492097762482820452031190317159863292294485409340584471295959651729732400274884988304935435410615670071078166865683269063930265414903406359709845509094734918888356256319570359983968994637792917888532970617455591836926039459784962152961447269877640646194038583267329251939534680880718287365123955616854345043503456425719122888567245258926658518528350653058220810845940627132333628701025420794255352316228694698941752221997131444743074605713808010425932172402014259057855004451252756025265208912314543068613998754050392533603489934705193086491611822879426551514203844781410663220590953611704135022559538987401682114166232023818284375594046669725714218804091969552134704479419228123668655042579268857040112249662269625551390328185276361806233346497150294726096229229438211059843677544852112864309180170936780069568821822487519296840970683971398049348681318204502610805731936448775627055593856390669455308648226384763138797268302011398546873733216581006395014707220987294833200713464973906015838622275698203620492558803203165959407052069129793277074942928563526760364538823645184470557611767642660874733137736815557600617234803073550098222798635783625397395018196310111735069602347022079431314622248945778584172531761501623283182451846517810944941738057772256620110130562063215911453704321515590329006130000909411605592639949129916523059558973694591936485437021904547030254725425725761549133414563522832946012220508209511912412943136857803603584141940250938159045212251300280206902126990835042894490451751852643656782804702214179410552675608754433395363059021562440823617559936957139427525318956667547858499724368969689606070413835463112691739035970744243698223054683915804293532425396811250310464677534135798544273173698906818911963417125444109149630024418124071041325820787782348800251376118079279928875266665470809547324044059785549776044870552497363130431724764600042073166154719746711207306681441640091357378363282757347417291869149989982308547744932528874658553566223540950744973338444807936358511648919775636363798992797276115853572268030734523537014983992673119637323439609951870800812359326545032180936770968644517808975998974848300208938290565857284364626537851809515131879460313748207095636191046389404022148502251526608538669876164483351653385995070684229743292780368073151039162367893687893098721879075294657084974767976991165601396333991578987904744382683488277825945879930342522720141482735948386706724208307231073667814302070760667332754172588660402116310706544875444018642829988739099914801008370184641505237598287917400489060083670943518261012099347589618064252223406048449652424785412007772637369224569062228134849652598264936446468682902484952235731942926710574966694112486727355025999673314304541090261466559032889471622311367345558215779198248849808953740395864374384271323755517165871966715078775408027691293181601533426159516397146972275723163367662035003757366771579534539061610805857528954049796226012173002032059998755087064425093833949832937597361820437663845403432872618904690342091175707448691775113312073604390071729594601932248791844033436648322974913506691008022897749263044791698837905693001126848129831080581165200571690890513978766531485710959107328034593052394903969835920097254882541481328925980397695782042676321726213072999226884995641733735294163905296170004840198485065224010007604672564530372496892917053200104575205272645911874832601088472680294447116586518655807465659965132181348973320040545439795810162534201329918566488425627053783094563563719726522131110047060247916066470126093126555910094837819119694957558083088895242953428805139595069536575260520828594888002436610659504822020146320078204012629867856909050836668667040786494662903015973762554492708132310630440240229224039887053376396637824944729478971861422842577182313094962191006891591807603546820409560274985543713583508745512546988501543640354937842723836041789516388966817763422121757095101940084228650488560438483273283779724489905997699192600467835818323875963634237857475926806993393463945124103147053250796686337256071447645668068516147091476527472055329088502331836682710010873025927866963846092456985958475788157381715630755828281479942031947029969730215369380257607229650241294897521415284930902988505849368133424388813494609800166238983995752553039297371406768796724382549495115325220081955612599922218370801145513129184750083458519147947167612296573934927751156073887709922430417919691819965747574637615826142607858052957938352157782907910647711390599970920622595667798832196836518590246641906211521754889919860218513471060698392270091381778696719440399239043212530863628163591044081062375580488241154837944884917887878810122247301837079413892976367118284201563683473718503511525240136620890030351127497998785163253042020959879456956860164508877151234953234904096114563978923746378012146123139203716721567606437061879099084972811637779402746936461299056188568977124439153110536458916941228789493918054091696216085713915338597875971116128761843172964872269499513158756987761103184966714275211178630568437769549934302329465565842788774591771153074666556055345318455454205131006255143927199490325432965013885201243674568412227836872971107927651005850691262691383412691698982039265603751461577802156693803669327460268780460443243588958771207543466162030038659907955696530829636630932152056421828481556989662145039067935568278670049693798274536779081489353105395881056467961117185165251202894592002218441517110120124829265345463220877485673698618307761920005607038099503688248632863612204555848425226887600562358189894422100381069397059025106888528169456586334500231723743382540070638263393229163093639088656287131688742544183563330648806830446247190678544011670158940662499708061016481507883140009668496822463025972862641674068515024899412671054828682232739404448815672692896344332718532897428381689122789890664585778729318806505316412559937576678426021696481255548341090249611847665927157528792749268494450328688922184597336544240605323405618998366021294529201926829575485978346460470973020201786900720522592130896346547984854063129642544684650085630962070823153489906152944735260349396712255312247166831259990414235313144400789448310164699542724909081664699439201591244500248974876617417796366814156480244368294460908867643749506627597794130837813207798322878527987831018472128046133241983092880794412059191105662912597727087236814906335460166732029384814371623805357229796690268886580142869598749550553865922013969629067591953801167876792931116916015529078600225761860720243836506034835605195671203425914280365518242193252538590619523865258588412083709751756953715042829668668737511072389626297254767304330415409419948603372342670753535870020626008673040619593202443201858847625075917128447673459615922176684773355782372543486067536569395137958066015436304172013411491750726714207250638076267056705932968366884449605836732361413300566242091012201694275566553563637754148159810178645617073230191493062539843048392141273793914136389795762879744603457418952053504046922182431500644962698743568074303500309232907413229344664359989699283196180815065304673245909594245397500869440230413598110896795052489330990894580940353121715511879397678910569922313120906248396583112422243622800016588433871515761672019191846611385039935064855570365886168599402575664094745444078501141407082207365838365490062581867189908409250045771008496446002494502412512717221540206854403205996686758527961240221837724383126691553758790395964158046825296523773752490707732620679971005738814313149541086208764531301739547405459408493831126938774933267401317796652684912128368824979299185146390476442438960249783644775670294043181413243397060413623855182309276932243014130641854665579555819537714943122716573302912209137538550909312647407064485236185607948846586865508051845503979018464238083482610497759478198580221736854298264847874452690396573864573836693302547585336065765908140640794532843604696799871449619649141028849066977115258607096697765155182403865735450105749101015045630333293598456696508640544715823462510695795877109920297683198702002683345877571258135349078893551504064330023055943228942714437324911221851973739995512184759094127062772748435452663230547825560008711890282711776439613462825445568737663549460770386352059587243149535903016475819083084667965261562058787804341058499082167256231916813722151320554715631047312404840274207055030498441228835253420034948411883817611555368861388090361579719236005667176509369457587921909883898787049102359845246808540597547199090491727019717605548550457266573112029497788226805390542370384553142502637253459775973538762622083942277088865072130909958067436048809626264727748518924543029858906273517283471612242938200649698412202310336144758282206585178439767817430489968758256659767812389932710281425948312800109077049180478022936615925930542845299690535707067288464920834496912229363225449637457349860834076322652743506366736923355271069004165859827254525266154243668384080949879527343968381767832013660081275530740326336315975523401930921921992442601507764769614873354630273098505299483969672134073168137802757514379047528911537681577293060420506159338004496057393292300998748649761686628309199268802202147926911685462384605825846550724136059912355565344285372658593911214255558439763388685411958717251029593873535491126049973477316817207633203801800139507282570094569420329452371498936080855579760498092409410845307358541049807414558879507563432044058753841192656515675875123242714510407981472672412081788171236031130303968939401011140442569488689793355507230985539136564421990086669118313633685000692246198552557489649013000231458892597136356260095088280811382408356134662518003525229660595650517223345370713260317574122270862866956449157244784918715507521499643860535401722846526019997000584145706186383802002148796346634258985712462949183087814604883088097168773573215313078487365900707662439303588988718685024418277659309959332334941331264707107458338304650669820017049673651681553975418202774450654781513021966780256388795396066376127979123554166935907503537240682160370753135033945502321110842105240941564633134711513686136433879477071209006320479630695718056530444329260179088320439759402327916606674190570287648494380118157141807672434521080419536095403847235209537057272788842242997157007186243325478140840618603010397376857783020702083024402528956131008933438999739723209727753412391669148454896209495019928442072606413874524996117133721304393163713687986365739147266979993844807092683487403363290976322117438995074074865257644361405487493407695884748327406547258037758650942238485555240096886486778484545227260563003077382800916533073701315879450275975328464792977942364677336148488379027225226021074989966508913385143317458627691532949664155299770705904294420428602680178288551782594406341429340349735812717094661631294358819276116760152712899915881508225987381654683738677628280530558462839101201231945202800817071763299070488735884375454046906465528226415625698162030904528951364776965262452986295241909638493170260226969231475756332623315463403755924344748515057100126036261895815162225988767511574549765791026221868063481664311382892907705959341950173859954866214591239206896554616978720292126262666042020377663118585746277683315463043465502734678683670372743650522487646119196844047231670066512995880389752297036210759035610449566493354936643159099245314084306107586245488158372051828077633986309706356281597899634968103189128075582231106429338395877655828984470045810199697794488130775614093024765380457946803257651765707955732647451584268365961318506366332912060308686128151841812717167246625739377653455868624041484116361922774642093751375176806773260564408490414035132084023198384981968557506437320259771937207558956234235606677864671135062290567829308366642869487354290818940811706478956335168456711484232063689104243586651822935547919114105093391134258862688833617775261044510012699217476595056981682040600167785767046796845891480695514843738592316732106426926390018981212399866918354931933113013696326870028637518504486790046881185826286361061174821481514239414884122445143248387398296891895716644429109661426152495893918761519862977253180424917304229032192406228222196618311468179553578065799754179050168059563402265139351488453999118156308846298617124441050704892217409807228611178540043334095601550568046992543619485471551429988966316890821332410493696454305626016707804620654242653829245649350664855552437299288463009239674615034213987675617098877725533406455232097712370132043841508686741383200225716797424816733326608158645669580139416717432090898343046270249629440960980571939473730679307573879134462537090388228510583544383596241570857498135263391907497021306995532506893110276525614350883098014996050585572647618022060436125216264175445032258308581694869388721564634856253256268068973237437605283088528239165329824257632955016545190626986426385850871053141382026497720097923167491292211932179632028810077280954169773110020658471469434118051687728149715583551398647317457051382116997641015788774607012028045117009775398118475723396460457113278575780971040711779103565779276746607947343177833671234696224877313887096383651202445471182438409889820962176872024897775010107479533480057459211640714647716018311367423982606164027072844145160270000836851965561964546966492902092442156254078754270089396436559727054104848174863931558627915717636997211708627390266395060858206423038012018283098217168799148010712522582771526875204842029631333964275748433059561356555700153671158850742901965271192571251871286960151659964444478702570221174249849887400274614887420372639586054006553685664989672182862380392234466051335063245953883129469484077517241538368298599185163582258342501601819875817735878431966063263661679739411418388984303992304543113477450173208483438392912978749279456767220856485244605601470784467484022469067642518372857621010883743324773397452151623217478342759222599681060241642254049302139387482616681736096231516425359655675470216925747740168728078584607958215055771966525188929171218926033862949012515758692560141879794625059605561636102935980220057189987136560840439117669545272972677534385872203497735985461768846061741159867418119542614874038306962573167266850140402288725196476911770703346091922244432077401844064726313085035672431842522633792252650950327374174203907549965454564299329503988927528663910771433623205177788191715219490020125081608189583202152356291485876313425446561644767370353202843019843311860566157273229348106527307910299528687174814724556588885663072381867102833645296720054765455146118098651425706321566348440142487535476906982192601965657112664461658174854845703644918015328219764240789399116422426691876404016260914913739647835970015054860029243361886170693327530437158917221016734299315318445315473557505297321533595427598992580225422563484658626138112248022549761569214289278450146526157030139786560296337723195311959344521266841015506875376148682718641821389363984129735779026535051659313979870534084161348096420631560513804875257336561448336029146359009183791163264885605239734007935911079535352359738885228163975145966050064721266391549052531142879608405237029549796209984106938141173550821553450980207637843539044593074966696177441438579167519281232843674985212050235001627502147884776790233269130138744788547794892820106819981481631441228984767681620259864735733123977928267806806350724631677663919279497534847070129196238043184883251076275951758664260589247337573433939121871382719649978120202238097511420619968966070506926255117237124665245476051785057567471660669282494269794817559135683321342612524864472571739182585065872169065213177013814718730229677469604600196857449438009810149382747796263590876777477251946365450398292543547326531063278454545266620504140222178888200438395666926692687857632740278179668932953133739726411347670730933658376743810300794982944146322069101063265115302371555000253346916769425660742745873316486360548182715953691065645439292314515106306242615204386603400742196249620405333502972205511784872417545619634444539650865193778745060060877242151935896078003728374585735519673918324550759733519216216251221796969440012117034591133327421803131486718955067980390953192983527347492288272940123915115973007324487166065930312325665147513313342539622228826515178374947106749284123509315788772524040692037532546205936927173412018382698426234540292158190284872960212059942804458572360645397381299759770272794262593156354081457692475660479310066614791759492227679088202758190181637098530392601984147331063242411101579217584002517747639124223795580139540775969029813510157013004038954534049308831137549196164269194168895170959472051280264950327326522791620239211305751631189330924966185335268178165340755976180342731103619742611026772223433978183611076777605529510915004097991085109810683119935992981664636857933072394106748266010284517696472264137460745275466181431301451608303778170917611368734305848620013615767980108731822406131080779883257692124082077445111172456410613706104692938016796538398533151734456965699814616825927917753282956738176661603278276800599943936606203139803866797851099488434425810404460014784813117279228980812783265878878619202185744119518784740317605818867696731219407861705268082950631024774146908328600829556598198058428982441266650556535365441975853188681470041381948039958140837751242974089108886639447562829238317900163808393787247358866871033563380789717610856770069231138158733286387876203951560284177616056586959342309907884031435282669322080085093014800553029501617999080869489400770149285594984266992960229923799444467689738631112555232270777168051618868675113536732358179145254437181883565163053010629486190418037794595792512881555758814943436545278967832320913359358000942064801057694004755792133705494952151190813910174242175102397630012945948840135705043024442356058105292373137019872985324646537258309309636321632049089513293553997612477747431664923023174636786989201139065608581566848685378961029356015833269211355399110272219830049163659122777789149610033043234747968331564250537431778090363280611433588969342316358824221258932044688799655817612151519420698889334797593482075924487212878614463322513965994961154666778664751295839112822818015501763983489121389554295538075797863638280998509660166808294222776220159742390649718851461387401079394405830842483339082008061799816819181780759945728052459613179669721624851901223702074195749076623949336664931966930810824134984384377951598667716189823718196938444794993359075713769867618319927178980100389221005953773534471128647191064868584892930565664902570887104468333937617896663634831149493226466761712805668823671727190534723103645973848690749303232929384338980733089470035298971900948507183112273150486518188784429190760785284497576867742057726203326989090331709179626788084958805813761307077242031411583995789696120860164242259714827121770548466504382673986874943893565729834008764433512841903474639075427844527922464358828318225435410055705217908617926252193324071855023042908343542797589464640973171925053945121465936701380234159240237728439848041477724788412195956246160747569380402089336372009661800134616222239848385038282261857429127973023099504218247143510059783708685199468370466190473292358984394497623884679335864941607467641507359702951369180918262064654580681066746115425211424073772519226979384372323774770540179597570960949261511764445431549197377031387859310561372352900026708995594426450788023318601989337956586163588444920883404112121856507194404935861016949670034288715157955179928236803368695449143578038592153093110651207650680689457814695677579274685151905071963054435339880078330973284319243496984797145092940829773365503639572931441457961196166727818237192670628725885563913759526644169412340826706290400054507367674979576796299838073456916400967347128862385841738805681033522046708441286125815677079588677395340329981345270563089634807069521481744157723978105709200311677836888189284336297109319154422659831863585782807832637629908321179277219845121854874792138389045309279614966670378431351579456039603947448076281841354541587389879085447792255024966022619447032303727545561950680878879917760066714478234994938294469313955630715150384193908766270063834974440021733766104647716762871013939054305414291253906917640510945799569010541610408518143864656043792714674069758443464440220592553143358732614923044112034609324406181953679177264149308024044400033197735520262582304790719722360512687301720299814887360706207201873860136795900932476491877675188261417584925939783786863266163794699815029625682138678095795909677835569825876914002951737423065508792475189888623561576931045170553644904534928794412646759437669688396472246596786645457855011234040032792767184984008378271355185052216676897174560644125696804444834187540576653104915795808356512760769421723388293310705373493081094523789438674696714352054652609895152898669816893619400728810541697734319156462364120780678736842715310421706107306958547493708682362108689704457949200377846036917478799632908411388284440286853567922740169873865963268468238318751788045422256838152638509087775977890667139626106583163022284268794116241980829075681143652956346496725444343125717014887123055725885510995634403594373766089480559991062992059010051948791998486495044572821558157798845372676526966950349269987941888901873559792180187842779708580349149813324364271546274188211251856485667654667262174709706881798334515539375476488120836018366364712486361002702478922319018183356660223695657344235311944088264629944980414702636658063093495641984087796656598037649284847428406717861595524936568011068196699978841481554034552799498964268018274729227131939842323192721600071006091959655223340605200071408480499713539294419797257457961650530319264608806478544420659333866937676672161580300460755591362226925730908362722948982875781531440844550919297451572989231329130891055773331440151900751030938443264477952115627206552089796031849131257868829158227548360955903253848973633110686852887288607359481632838090802052262809395831917078724403769979141933175455462152259028371859749117789383023960411159777450959963141707592032355616064681238172025783368877096506235613584531587928747848360535858059535388128465457315351287021476384827631428336003397235569348001274759319871017625307835766040864599220610995051912530765502024503027839372107553672576611294528669025315214584443892477639360464377851590233948953817830740918881372142289574607023756340978935696463189234236887261842096173129330325504954288823691063992811474861256877149371842937044397866675457634221659470157137637955447160773804358800855837176067313017728894594238563781354181842636257002066299530612999907831099782057248785407709136701423772700138725383645315188778766111883975650088297948461705524439658838986075807757377810371053779914783533149701737517860157242418428893771700003363792016046275093128163115288774909170210890811271671961914701630139696173186358768624478767078727911128439104921179673128186033503813891420386697089130362364137329587658440413664749754803960057991099289084362227304020415705430101447132029545462479528478358408706331284314863420304841548406933429607567255575375561278191704375932688908998488989306297827239477638824508857312348874522754694751301676435302916226789588602316734085366299594062689566316206230259480194694078935779118907135040921908669632089282336699769550974108307662976336418607917244131621576371471314335922793695545179449027870478202362567444206822590786977063314460437510023165048729508990337629553534745833405787642821008322616242155983033890642347800936869007107997269622408388997959686625338929494906210356424205903010612771756779306563544753118236959103358175591809604686607783835498232474125122043461020136708296343415445404246299176255885605778251795605485710459960533907826445833243584541477943188664765310624741403602097168448472367130946047535158795989292210574832462869395159834057539565678022589130319675644273803603199585635357810913135448266732418201601911287355467887475002268316790039757944335923627920834737439459271740920627388075665283444577425812584960404474310763420952145160349696272845388321278466044909152725987623239518867159473898130324064649367926468973363785290383618256715505199851787799743096820923770814523554619530578086438945377020233150233513475451738283209030332681033632832532623651256984937172790552759845667884491348087526420432007131799515108548193475416660083205928888402300556607494066987499380196976797604331222263349120192460669694001150215387228705648013776032599035114085802016616727881232005111742640823549861256386694855744158026223157358362372374466426869394476920337791790859092301453136008840902975470870476726024801077380624489795208622273513818400147914984061338502925198209765096451820173133898269443507930560429510723876049828645030812587204754517450289679768111016564049128131109009980063919881010497451771767494287058821546048698954894798423585519765444189300569983989728836888507120971612028958498566108125776700769008318309788469752854231633953239049480244779000949970832035030063805828761333404104201714947267148328319158944625285039551118129124318713315633631673868262980975214474856113159560598166048397861983449452396578100133754873624425339835983523088582696018489287318141329250820228361988961872484798533735049918370300218106462910300245430421317766312881805197818917487794861776830135059552722315257529622507077010158588790395643655804994259790409088042160254340787144499773130814570230058845666626796932988276590579126584297683869811805452590938864743875253961730132997587885238657571786199635854894634683099992652473555071684164648132802082319535101571629775169971134864664215475658604631473284536129074532524253129057364112762025601585641446281349996131622264636077874578145018252690541246327906665274285399021420388070944320583584362708875377818116263704533890630804765979167529955034526948654320205937161582469635652594783452336592787926298430857748019787923206365003140163713465511007599331128780232744450550523101957913623790260546041817374108322239890153049434839056941604709524937590005031558040719358573877873057620120578331852043957506883727597926904775969920669813893834518021463811542780798045218380614692288346275985507585080441613129604882080136546656630841671093131586373433565745209207637003307726584584338649836784297841567699573454085017413598431137978917329767364919406683065841876895603477529679811988675204566830189117192490194412940561273411534904354158043361403021230126778063455426809354288665399130402946926170782552445599822088213211638418740785546222964900861466142143427527981317567997610832622210215709631114224511799467404179454505785091706754583576712625729432932954013104411778036296774329236550605240902164010623512773914767091021485573792279969360491672546806849204247324382494066640324430509590193743004988316166611110552678602454190047406891420596889905058004857041422053565311658177800253188895985479477246457108739389187595499448566143853990414862833446044448112501417412061131023082712602787248938169601858661429214627459487235705241329842674168277957815188165924932811358471103424226212045369938593652946931915034140767637356761392577646581968147412120597950381708530621838348226308059305841152216006585894111649493169112411608691695446469641084613565414326332485799519747927369483046268433786227215809868494922444838438376992288401837608983835288712456124503612170404965988170625310948911567463626338487713463696087869597743393114817544870140134020263639722053435046484748912071704793078329442961115821192046147912501448891095304387698219791808257748937510252347516592235720409234913919590287261671617903643027674616657432083730513310892881644263742636959526969124938591586914145105601641833498554889849095760271765848312867102037246870754810546675070254499278458093746599837672982300882381401336928099996410718902665206703246814294046613884975940534343763575209306437090664511511616147456765996470284185460623582567377701980372114991118476325958856603095648615389132946984110468161289729075348577159583266002549027183746878387833653457101482338199530372155858686821869429962391103894925877374573962697823332684951214693813456642602010132560187383996028204070237375231417671839775465505968495424034559588259730429666178778999711512078705820675008447062154014351357434198020932597658625835324069262816600561284972172098517522753993579080999763149677088942669565338320068352231338823447144142697548773200526728011529184342818335154522625016673520334360351219327120833037899667016998224714971055290303839795721554184900192198525668450016498710261603473560326166651872431415562759861820786827043483883365738769724764594003830267232416688759524034780750714292922828922791776384320446959938337859518826354223190248222520582745110450335700329158811752894632282193900860601636164829836427437871936436031870522182020298191209330060266974011947673141349860525672324036611841076834121106828538426181948025788252304639022198996499194693858864569898081035029261707527481480170122379450967853729589248404091915584952523378519771627107625824478642936375719705505492868944240667111895960391807888772028396888534643668862840855045927349527786010076052626894466697442731280370428552082220462776285360422648274236550296669736579767130961814962093356834295026536882885117799769726262667104811704815430432441542035108230302930436741473882663200384932650679108383714704965876391771355759697761775195715478850553992143792011405304818724368573810095709370125704007451597477991740265323344046946291630997294269406082777589205746678928247260001696734668171814665498108366175436328736069780553526724834672311777960311376557325202135556321453056025623469924224067564830179719881652897574531747457724392920968594348927089504537641079128379054533904456916234286765860312860674547256314061303326287812339806853377456015093312435847946212191563895751507143758617697320733903700869518612464496310085869769224565548920894332014451065089946554896253629022689371105784784865740894946039740306579557485748839563207351494378695594368639747222503152989910061167431148749437623719716577348746305162924783096401868233565287138221188569890522054114405733701842015392660563004358319499385632577834192763602376914530115858358935860542322009343164495286814649391675183197999982995595115709669843081069454567621853874309421449969131990686530983103295303300980129323949044974985511568236392502739756824651248696004402626892322473619245650115302335766307151185022997622598919920098136837290078887818200981470478087780413622876241031842507228733136631368187392039928488259692438793324805443934118188456909246273695319821650939086816067265124281840126694229120672129294640170929727603452983665505347351554142422293422081190972032067779137346679978167783471647405793534996490766222195241634713183004587473684142864122128470862397445095831445456078085164929550538275245347416347315788327606078596974496307633721413160474345982187199304828442468231189413237391174682209786304937811238388146080928045517734552779616805423131964953152960170857726349532744088785294606173932394808558304488228895646603720093482251221830328223166125366877607983361112535553367365372703453855076652078162637758194134757542793025964127929751867831546800199254220214126515500654180618306376499888053075888092140464507836048792545613647604130608734792446937032442691048789571222318455380749357221739292911639848008506600819576315327009394310388030022618896648080420300223190748373362357525725306026016868912735869629411407212968029382396847949258844304361580109979024144935600215606008688546761361441973124326983662079017412437855288495016689093528700959938310627803887820903078392127715180964310460627963896419079022577874054373109171625014047531771931401114116239243317880579379135420088006612597225102711495884304620143347933317705166453099075316809846090013363972927883843789948910509985683704189857332306905897981394015599043570413341986452792658974645378472722759095922056429955491941257957097892600544118970931949420275273688041457652197457691854161731731511493027290237408417221746182166487009652776824393697040908489186554969264958520181403274896013917175012693698071264376772247814788522458113442269796772077355351763577684468735401739184607964245275110168470123583511669997864670260636236808897678064462091943453189830022027485651703806379498115164824481868299771327643501338557649671380966512216739171817983269146144655264459452472233509011865592805703441120776630368565700364229015957568640124778102481123510538599245675452468264096878517321284621865106815380691936209270221925452266186811172905410802115354157450932883911772141924266592224462203682290656877344278337521941396614387318199433316821079893229373676813790410263744222346190581643327531178820057954944036750789858058205052023983370538416772010956064110470599802838905834718164083778197069973892571232784621058600155565409794119095381924848539562872992960327681965702343824220620945156361547706934580898807247330060566033072767648453249841946754017893029272019852287560804357992484139139546919766022618020197628060689758493050975002380145222409472661924494071538527490534912966222053437605934343266096002911876990798640260309731804300570296412622048299246881991599591512477387376302914978371895578898352567332244935949991864996466145938459818923858413681028787839946711928871502108602506919571275361273009319231310862232009702248857072360200995704660056438667076405178601200221545995778005664611214776807061760330993876653851735466216404866356564655659934943145757581893314956010420413023729671628076568671728955212977544783158207524552115834062110385544390121286014250098399706229595489816501138078447065811799322154896412170822377415899053092363087473812293772220516445295073681895783610527084514158977560919758256701917918554582104472112540270834844126199778901729021417584328757351068928323069561183344092775674099888083227027535499606415916875994004288714913610762248426455136377771620553866889934631655992303545944613294480208709030827482232254073132623782643983822424515498629651204647740324061277958279926318224300990343649418100145615691195074399231511898847803064153366412655576619651115197931699637916865810195010507262654271818895660367105834770464362583661864925502300944566636819431442927335185650286732994268570701365168038999298552244158292177549346792411030185326182655112833515012669388844274442782468206205985966439716791898788707852012038891007922874729304467553591398450817861821238120225590488278857322827345798814706090429077684694065238934943270953880580413189979802689178585091723692951908462390622473740324917814967288296293676016343902166988922343008111815456354243586156135831406935264686233039108501973440177582522793256657714557760020932141477363080002079222288469419777160077079556998922954487983604905249203401141663389714712520934921525457672318698560395270278500173802616683819019682281079176454026795732109954766119583126143984060590728116885331312420442358725534688194601585791735911353547733584034940794112775908547316337879848350485520877765189632528971142055157299728325813653187331446194982162099996318766964834832761589524019828058752492847018300651277516427789330909665290470051222156097840471826230164512310589645347263934556551603395753718283952279546722285945029780420265861610443467709922564829671775082077255956721215699742007188647838057665314963503095820358117680255295643145041869388649301578002422365747425586212499524278386637288765122753138103622454083916612414282259557623239452073606020593332591622521258552885544363103673111152743119219974507119833010176663290075146813526262163420997543149423142300088427579446714735247375443224856965540878002966344218428285043577904950649589310561150957897005255385173198935638877951361679945714674642173969315378689081326025805563565297342787941676524387205454577550416996575598763343892831577667719632828888209299092122602839198016102558252795304258125681234219586422523133053446663967316826259375306611574389102926487233968006544524783972806220301131456531983550348516628186310652365142981651093388667533067212620346600607497679089010319275794697761716581299757807949462022051653982341768424098634327697599935730898349814464141961840471182038757290879928956700154722514164741666099285943710726841985475425046144126152052649787971602299051213810812989697971796422029564359922088674935541598119040533542691592419875790589980628844656262372026890205217260812905760186878306309861599583293085061762922742505699430143428844748177576244319147595803810277930898636458724990246362713744634428467885454994803900082465261906237731774290798983445622964827468919617108250651374934572600184857720710704729085834714221692895418606464449918053145907611972565937604440052860054350486867329385368876101869873420629412333318578506239252283941808077660218683119862452472194025047201560300059397919956334975574773563254157542796051439342702350451702571200563560984042649913331931674501488484309521714932246177421311278927488965419573960801812875634540175530026611722013517120953093633877621777825335082545870374677766440398174969805517480475677069148512630988798145287137002192302997240311567539363101395405567387835386425746794963714485099692526174026131507468822851539693192826570051985376317522762059418456470271993171180675489832919667518006348839935384045544873362316972468656376065454400200883416420195322916541978163136259735287995652579647415745077917393019243234513857701739708712839214951868459293728080023271488919963351555008678600020559376860482311128089214919268588268648653350597915026565061753570231934427952023613895982704841434022609557051281277323486495019343695937333320625010135268038746517734252997209865034241817138690816599116064940268834263181759947740993960239269078068895640132454649169423469611834148835440983851016690279773594233797547641476200193557683125392386593695099437146310940433802236477224639378426469007417801831940710324193285977770493873156353680468530197151176699666451409387215555398135468393299088337963454495477359532903386317518219684506383347188596453979321808863175854467036851777810991497089408644458439935386207361236273884633409244380036182018067976141566904966199172817037770792806439330585120950675086152411402970837544461277409781377703176243396299265089362384334545710599784653469832134338573734982988334812415040812698773205452500215762757022417578623966140067132246067487445230381068063739130745410377784531607567445596276536808994539521165592597942735038541849873686423312527994846211371815159954276784634592818692671491482556161104451816997940719899610092809413881987395714475866692048075581896475714861583060283296909607988043465908513462681622295137167615234254924397128107499814920510789283125827587143014298398900962847099745340347065923769599306403079803431011382035478990538950198608070501203056635735095420506487743131360947231323827258364774961173451336001943918732666950896036764175541698749234808783513165977382319334760870130545544952061152062103496745958726834399571008437414925861307334066860545234919108643146817030678374029041015584700702604935016380422526184742473883003933430197184743693711307997431217905971276072348466930859388962837989356583837662243302835312932628868146438399387312147989420776101205138352649217695193679980008753934673920040603075150860938931391249608752137377161523780158757490701159954657180774267944295236796558055657999385568479480132722241192127286455575104273897725583060198065252342025588294369593516786010758334621820711572704035291668681775835065238931489429347702807396593544133435732623550673771181451011233247455952197100676997786287902769663479174668769146649174716311423820624165017035564120009313895343445663841116337971993897950529396106353721529998279500861008771677544694268123246895988664788520284298195105913790717626618622681559122461616370291566756389827181393515662879481456716182562835468195313715038588287286846052518631107157567561605722682543214508292689752048759628524075894362514449062077049495192883419583642427585337666538336158357014236895681696066890490466943921327726440857151540241100011792528997019785016537114189738832724529829948155614824768580078709132234395964419490374623737639271575529697756362031413788543756400087790654626482820509049640331217788135486812868410489115109977835950047210109050997376259457102786833025330182798684362637916641237504422493051611008987856639217687591364267532829115362423516519969493753591390729658598166628081555232077642066977991396395297658538643437236604718718294262971466477704207857267722795961999697552383169467229258396295878991446897154322250156393410694205246789801339085778065549245488430217667948834741673427540514173276118471146099505648472106419622302896412326287060359167569397072986338803067026183604786557057950444032824748358656740428440173836540818094903958737771672879721805379980857077275860505558775877845249005461371698188320568389023012830012721978215906659843744388450177407664497819646210705741802986214550646287483395681286997610806765590916089998398385145076882079034438646979488002199751931562274680685358882633142291805064874758908739839648961322121116820932757618999590165595822380760655932949294202037490266441740253984006118791247604820810234554369975571376664524609943955956070799349471850131861459409606964965523596760773287604253468195737752558243924607876163097657058582448814867832213653879320569405077948761214242509574460456067634135302049216911900171098556285984932972266990188430294112206376594317884401190895082873625652938293505058355021482276102680773357415807837779994460233340438604145950325189842858660038439405432668664006918713006729460580868532315871696930460576542708078559396194797390695770397894844824945324698091514575244467357263598272961529444435848122983777875691239449346241452589817119431322400691118869092204242658898814122056298425370325785990645571119485126375314618706287261428192697339710174674919942972520889917804732262811040377557416380971125636919380531883127364792551227950226878808443802010397791399288172799532947835778583526794058043722627531111371385917901665492168219089570778481218446080612061916933336038474716099798431020002072102910151792603343662966954408799165255194676020528596460953522972851765214150114107399493155566310653748965826951164735613498660584512015955667251875576286658891231137613762362815150206069356849648472156994460441500143312262719537328489084888817647097323103980226488026710704529518799902902974482564032070555228806720573719090225872389160257783918709790906927162679464372029597445012394317316089660861874050682787264397488352190824088213685428756478354267608410886374976832976966382647509235738016758007463229797358452282119547049254403101371572745374240180987907802537746269371343414440661441881040897843921209118821280761972289426657485259126386870289610036619213584614776611959747238424079493507753137376208047626570327389599542784861875519694968565837108368959119134658971216172210407056673468685368653583664841039544956003926335247054927567221950513543565403732757350578556469190769073965479901870669482240890617501358425658506444999197723042236172750289234506853880929843026373580681118678609297663267754968341206564120442905746099315540801087246357802922818440230478009561264931125930842850246528217782552990003042783733298947865746066990256235931094360220715720536666067949966256403899950006176421415347981033578428754077080150783886763591427498020768735647839051156545860621125580172395223949755783608922418146943343156597346690539049544268430807883440894572850717890472857359645390125676919726439229406789154135689669310942688466945105060580921536906282029800685139344450846576252863785946442630457974973182665346429555941143197414544343007699834495907703315800299470499091833784558404634867954615762830633337787459946305957945479664350659554834745535128293754449420386076739379923916101393861154921850709478333011383080709945172902531194937803877852606526999100637844193519386395217706915446039014932344960733121291232596137021763311665891286638276827589277073585952979894377366114340290255042339732966406973381100463749819770914790271663457383208582316673099975787519331889400510948680875685411849874966239859263584808744717260487874731146237453138446427417053793669290007539457690840322759612150808681897273624401638881706828891498822191683056018516105896643722972024071170102473948278344617693496673909211628008411280791489855436220772962688534087271243526762925207604357558523477460463615165955407698999186257781588551577439057008014796996472766230808154649398559515933530326505983208322152251126394859223971698945814227690837741575302768429427153229070410974139666256024129453034253773233679021104886458466601826063140560856295017178791849359307402632361010771597821565342322665837729357142008660597719227402619307763168565138893543803044900828698566600660348800345802719406377243161999947412860641428890676079824847780352606016165500981134006094159671617197654902691100626274400314578293458743444125195000484639987966975511595134563740303688889191133286786115403808329954470627027958093654029544993099902477818424952518826694251760013781678016231028249759876115433280355945237700481175204981175558580561998362253103634019339862801153985335620876015470758529960480442612400214427565538032684163062665165676546976528383630393522662903936670631385897630099350008576290880038728073901055357980437069498109326968060204299600708445627999862252986167148949515797769519258860128727776257056467817622341356704203115762851984355875730588668310590132071936952768954008047191098312263094100280264845461780539111004994827893638648713124594517322597964633582388837454599853881639365894679183510378671145265375997523123187650414540719428728722871808424015535829252679955587477570193530295770007671204267515000281521657224515319549899353128740619789595045488312934867853464201317721565460799140286914024858696425874635301243335723661935015743222713037490273668163767635051944397482265892352511232662224105288586622063341786581649195417851423387253708451818601251508776369311281070439970608081057327627052861397712263443732983400965026111610388392257234947295995043931721377949280553089197633035890932683036875722996963838261749356500226681735400710822405160971829183642277322897850098572835353232454063415980383096388458996989888026255146583711868066278527680300506760699347574191253277671706827806928695328876938407706103277914897255158074958305490060666550119863900660014235087690840947396134851182677023088992917448002766745074960525601654755561552144476541255966420754235917588528211422502179695227054119188702129152726901512749460290396790967332430434751388356194072604739689506891292662639801443155021475122450205421180120836593991131427512445680136611300454022896206574353534866567296189599054692593228057645094837661554316525476942635502032338054362321881091498035031977940749910756353016489346596703889589588869648077718602057984075514687223876438642017550964076227050677540792042990572270358661656564033542317836568340552539784218630392671635611643934400247023969195250172031826647534669389702692276605916290797147916475197820938598270792723118099929640138749463733740769519630338125233961028587317430879748850222446478659475854623793329504477643487219424525092406537502516886312357145324144361143121618133590158173029776532781193435581498033653758175849448002383991913817826666517748794263547801265090548695864753351649088158009567144620923256381494321951056162685386722821932218499965456668359557043458868306529179027974367604112778050856997329230481015980936822967141622008382182077145888036482651405444598873311960167118490207087770346255264001254020152993194014766248405173913680651976958846086694492116304108232548205547355963988415852008036940966798867987155605178197231978819704700305219346079350310437000621151733062528623876557679994441829587322352261352300306738699227937349419490056916401446482063998566441514798369190403805739283340369223956633841159020602718825463008699793332991582470195504503974857236977909766437213722990710841199612746051827353007773137458666873298928368816811829080787586041465902850197947445654213423668063419295344783230243734067930655532422601798144872821276511740273505433660951684459726804361081268144630851990768386073446773812496924548948688026474098066328971738406389173623077740827552166854876794163352737976123715019823776328403652660796007138369209756555869787407960531182085200580544787510115306520660984622724060479270535307129370865967052030044641589976423728566722638418941494659003734883242814743146047059740696344059086440654149974749030767590517042435539073048787304230191392188557193192717315830984536966395013630730615050717438269720545444802074013212019288982085353406883594081279970822607562112569930533398774148242315457253701292532604572505254887257474781867547972342257356103119434150466468334329969659783529057281221641412399805806883111584427208240149472365190228760179344462835833998003989522044225135266439678222338767211722778368424345857576363026971877795691611970985260788035004916097492169897843396471146787444643188706585346193725588847997420184163069503302959142897212805234163874402868274011990573065555737574354023412038874069479457852848719737218438804291811315149013131360041761475578648018080861617153508910992059775401805440879544555681265128469638699580053854615568235975226276816130971474393921995144783964370802372865097636005820929048135513810585329388795595208760822973136971452537328006462428770376013453007726098729164348591374882262449563036664729206167476717172736618217048018091212481096011213671356901420435671934283223538219409653935608796147796131692634996167142091392839991316855384473560456870422748076036724174340731232596946693528042150120308651790552934780221721988391906798793488628884641231504800888284175836000217765736936202431571109561230985061129562218260949753154956765730660922423667554137889752862574887042488205542293822278519909057067846470997576785646818633052466727893119025996376712948639692887907113367846232704972940271265699678718286679724233482637828283859626414510689138183349875482100064112247723781286295486565470112356931465803367147699562194677452489741454392912029541528867050803330465733523294382248807512379057749615422351854464685295793522211933469664366988219658006602975731042063516805988560832026509887835062645600147416090511945796542302724629234816573029240590158452912040235303165788044790434781986117868013717538897767291635327638892194417104542420089329612268649383494394989515026204278809122172578292595449919889087624859312040061078279948789497868300493945501903099815050284270099851932815445485169187742229613773726044970661182810325155569078776703406933399983528408327044099235666727758552803190749075028004129541730549730152510829487905308787737364805190193847271286574261438413127169851739707742056007108974099172769982871444769869842360658360201664617229506310924559903643873376705562219026314328128924425098164140619161393109283405339789547870722712161764687585153847189284859257497287004262526877933665295530788287258854164070138776522397437420472437028275865266899152546858774781822094490212675400613247827076946533368002034179869160746102834517545526921467437357270845233665110793774220249656424912822255016945947824946169258914179117828014859755285567664503228273867258004160601136387943446386334366250356368630273440569630057218197462031350039684249887255424846635848197695182183548789089680629460806004951858109089175282392337299359002755046534460212037699333120452612920787440982453961612932693344892971853623952924040897518983049232874576951477186745948846296458712992375510852320862860217966238216983623454441546629309593866548384900792545494829291420284931498492351649067001796274539359312075479510730642431971905971406643440320847902778905945539497912288321142152717479460691811888957173367010953030150657834824053432813640382296272071159263581868039131747347971288618128705369132408299517259681900105585658653999520841921953723510731695430720151494539938438502094624974195897590695369957246676624039046988734017277302511078758872675810082275393867898000502567839264500347201976393554011938890564303101779469941217960563790573388371959277532657438344866634026692289521419577152939655178220718733860531253297260593334808548311616138730234446081751229750302826680905636435129930250571030276512718082913470029175839080274989545144792692396994973671156910049404752106167242169166601289603311054072759434312353769891117588258986590502347424510053939939119212374788848920387691254490357846139852243752600394905358530560125509960478148531085522395416976187154713165673670338153583309495397218063506771757163972781141535520828493068023023422226488284065410197595977654860231244430588763725032917814554660498630927530152815550345206042063724343765444502914954624803690896578548814149789059045838979960769231120394535554841155176551717578600754661678098968965308577840019991566003264659188241055459245874049503470419670009172906722288328855248111555518987383759326223435668979725492552133986103047848049289496633392920494383730176685333484926015155921813749038087223842363285490519807167384337508357374875375378625819583621087814837555956929681204415341041992200586255633110854855544320904549952086960474265973875718394518541400219012954698203867007606642285880697862420908007126379522694603243842343340352862401477614444846031532145056260402258401908279435191998787237630112638170045181420171908643133708493733085571736318567849344458493283005520512982410269626428794552212700645480678025445625637252170915322836994075265281783245850348147132332416066203222398665783130766895134152812041067012343667852310404355529024281141333656618475138087631422277803260557079796925844470618520053364966136655232056706892450360230970858634386314330690641280469093151364047932746617739073645858091348382186655315837128208453525170121999190820494055459839832277321106929862864893525942900303764252466470616685106965993156465885037324274835554595558963728058988244846393994701055656382220469964103105716568611373122187967619233341066853072980153484250647015674804869191752390939159684261513394802709714445344900849133336496887625053940548381169846608371464104770593085856485611427676115837548406049512167626259015145936182393829656858309910248716561669741080186650267208948745699901035747704844021168354960833784305511342265424224658918295604894633149044961014755084101573811344378388143145281353054475066653519736377898036040988081609359629480372222941365888039659123017852200552947872846483709052788269238220007602267060135913526469328363314094907393045791943614720400576940892146238089762460417098327588062882072788159458447994364244175951556268908550624933876159111173813866177530052983137674215434717407964461844347261088037082846655704982898357228731277249034237843470649430093752520559276632564477695118963869141345370366640549874697614119875500761393431711165976867270856425620345209872205223586292323886777516222227511171920029797514321860997216612094632401738084756343994898438221301337453039648857488867476058779026146712117454301909898774565373912318014787183459218337499629179692465679231915049425094418256525310777711945734114615113278311379086156268914242733787257000227883162165840045205034701945469792361783355997665924629963511944349592960566628349605014387768971145065943677537553205199833205724729337685045043859350533351391098673027184412841616440968052131479607718045742607472884910727978635647393477131867306631741438880295630768409165077804257585490094261006219215690580381643799603546739632395832802214886244842839060920005996928108616687758491313052963287742572770854348159998918447983640253017574034407746940945393997175106698256360809107504506549655220164482819170852465596452387193890845171932427814803133461886002917215845172023732578122754037726983830789004923090547073923815123765810804060015919084515460447271334401027046233978738226485157066938023043445874055543602309873286816771655021603335272556350259278214488117746652318423251329055138445268493674057778018242075097468524024400112282120077100948737692323462621066165679880787937103701013683211955720918223847020290627853887568892279132347774696835363280808878313957553143756138200938974626301457716109568707847617110739470127292670259650646820312562821166947519083412130186622379048770127933693299468236443592459003407838730643970042613037996935352222268183573547380828139135497968062666844415631893099699822484784368247882508789672307688983638603254273744716620027262818663622650089026171360706555026370917302404774459101816278193477965854141585537896734838725423624548556846213947867496349954692123405487387715845418553115373631658322149933406004380561548059807098758093644629785380875576608934154828171897404974188708750360178479169084021036863213464530515897813012447145458327767928056726338957289141501994602600064346067207360813758690358697406101378390445436136056234596226577976159035665886138608039008316191491492857279336653475402142383740239827526511497065917644515836417222594989272138727945742663740987474885896797648947471240304234300553649371010515183367652420197678556669699529296388582826280541020784494267529795327351549115108704238919654203806028893158965805094853361412839013342149498818571007879255634495205766095859535257698379882981987424163216571900194946895377335840310796079889740624606643124414754384999553367585467004396816892022129696014040618896537589030046761851879001701094641863408273165173174221735350728357350221905138464960858809230390421585340480571046644445085403988883509078830180487275113473903789551425973647564285108291691453887634767479843165844110178028124545884739062402019060427174462782345895209364114760601537524723502486665575570210548541822921230588622634688170944628405553101539600885241056308255376900657641578044325466940141458058243173884524750619951926407494453805491347148853684982310411488588135704490732655414195557917994929298100887829587350463075805396440125531015126250947481471854761404834281097337312147094677917873421262853213879127657025207873161164143721771707850515371152325773346380839535378604045701753383925036173820120304588284842148018830726444325598232136899911421173101532539311376756964000334185752141866352060052762168733192714073468587396697819168435547886429042288395060862912437874404856779916404499853566165854776336548373452087684710120692374653446385728366358959056817194834260261787558976653131324607101322266013404282137711509251073685107257635498031278872872889528088065866016253398408820465378436760628376613711191438535593942283227608440384873037755048428059987879851315495804157932686089832433700141684556229638150038059078649400276361817637153395608764087577491520154574958933023655835176034136687726095902996250447590614614446028213902795901180940436541628162597374629286663396825257407255538849134794457591593332918764315780173147576359547874595413379159735467811018830616917966514584209001908403660830861693213824378796337100165521927154856120158678637333332435087577496134825792819866122033695753736149612093836362948523988807509424996355570792560598463885857286565006222587645593449198932036628632642426053246227286565959857159071368588288454267041862377375146313200530686030164620541715097934267640428939231822056538389051398435593846760449178465201885608368464780061407292707390904272988221238876554590913372271921155326735308065136075371371323537463776956542600492748509933320497386746404585682745627609159400887088008247247561693930702424359056091971075766249345468119270554574660903082195711248026828348047851292310929846945448629603827156128840912042815628233912420804771285209317226245059010428320193985495543670616897045201794554010289981309437720399086337326293765048368321215396320707364701123591609552259415588141227788553032191107815107803107900550262157582793710622366897489142923687845556377109510570546190520861008157088838317801244400872851915899710668277744430437787628116970970395554298749602525678983322807290703561745383932002745980815962094791361410102502054562570063482429086746794531426479858316906562421785539285109398444290906634673776178007305648033665934885020699455341267551434909687876581568376576075606522956085087782207636061146046922207448719269813172188011378757317743270973734244717670359587375193192129384879999435411936738204291813474325172646200121553783643174853346509896408233460560509995409557867584490488127472596330191059981543786362262049340456221895743793120997790304961555576207901792123611571628337082195911606661121428589215021789614273243910967649455957571828039225930977738624142449650536120658647014622829549193976948989801420175115702979699457550689491677672165453512554263997294093013912254395573116131558715780285520018452346837449572090317712796556046079696930643239021991215233877337390619122131395784175879838380756062853446334953106355728975041600235972804969871660176295190380255247730222749862021176765574112708761267421088019883318340741151773167085809770279141026126018022919450947032165784447846622357914200202059991088129503752998931405070290453077437129766623196889490479057018378264841899792243913203336894590103960444060303874533517294422545437888685891257032501881094022113497091858894548692520508074728549736994661933045273807191515500256461495277207986506701782940988532952689657669670245206390651779764624268788373003456671300135517630986309796757473263270104411680333837243999959240682487101056644535617632633260332209274622750065433838571556625924072508668785002293593357314673827165979041094926394570069473703906949248839139348349123758648203854429061451731061975010014727122232660787757411945878844720595299418247996387259243486002985886885472362192853526569103272262439382364462825514411022065910073047562770014446901399219423408510837590157899626318709973619101298345898131639671684621878779804436609480980116502493144712391676174612472423955573020920480949300467730994639382868596545706145562950049161922092285282498185701711133334912173309613985024397015840907169683915759427046429761111293992871993315326050458494231610580233357113397418552616096955934501684547031465829154693547888769448822310798439393082029549093947179549866981252717715701832566290895849216791319783457183030756087048622468909527812956120944606064893019010417909994978850055732587579749751912144639766459817523541139222293948124101739239117189132644892147553804158360764573799055202203460014517657572828020861197472969863681421678441159180476913429717411864082412445302287660353879193112306964766440752509309531082854513307803190364731964225513741403389378027156768162281500564363009724103208860770419430757000635488237068594181868680380257511886043338664345790407947991291699232488909859221956419888170454095380130601265737246300202029794687604200010713304517786286761430260976192650190651139372051963465899193899083419588216368906278622970379935277677105007719877760260791037530229330297545722707207756477151279586862016033741057527780161126349155256952094859670273511879601754625436752493447289337369308181987995033263108103947586761361537685298208547896910849186829708425443052462074420728306739360324030397932875180138676501989960685349380280889398015999504008077171063130696484263391366148525653881991861826591818687624096190411748501048438071090139388662122446173565537092350958993761467314653669649126821575418354540261909178080802392252495893338274451261265507753320375075949884311288552690049605499090884505788221971736951594037477372629782858790404229202415673792529643136242164901088854099776687400275601033261787692697578052557027409571758930132587917294136096820914194846092245691712325685318846729683508585995265175293727101246258217786593388761935958228086441483101416823057918027128988329829343308278284889704837364369575384449809688835724708621295021087963996705055813212204595682805721612164001306979169105470801629816974301476138596270128792828803327165020143457529420855091303176697010732349592426288034955943970529150612533729817493718933567710263239862476206319519303529902266762737109851444393341139699188416787164576685121969127823108263029026221076209458510126287257215685314818645490636586276527152029461120742966742858389830971129616817409747692732014694783500208880637693116616920470588545987449464120917570393297739867649489640070270804914276527818563485103678680439007830180554994753853222275565955332705872401606088111109298980891688035239057777487492780849206089037402199313215505218041872167120231968100467536606855395324190248356329961086091510736923441933625221946440174377954512882685376966300294223602602148765409920027659451238795970025117310844648960381809041103423355437376658994466938315067374566637061730877420093052137652462055200232017224172450965728089583663670817080528839188230986018199796626685132813034094013191997641077442066941894809910712947593308283510037493432486664628585796733501856060042169276975819633191361907993555459456668886929200708007104222988394213510514015656461015086540363707112547292852478214220852282842340353014055454679943160031054572371736779969094173338380105525797782746278687559682133844319289441630610031704447301877966147680159192705128537048418527241408087747082084884720484634439539964372236539352852489303792283706039892418894535453088411392859113632721542121366864661639468524355051724874242103692682505732621208592394685424915691866645854312124274371088701134438110168462642879889364754132372783926843647335019371448672810461392623207451481021130844153695976040673801189935486833629831636907595249077912320331393144347207090522929017576375644991726927316626241859220279058568128968724892586665283696305477035164056790174672944460635233019988180940541963427565004071152058779986550599137862138046070249894528999713948377845771965763041408273213436924433090358227166399413109708000415501421681596197586469515519906965669602974636224929207474576195280387052256295070264451444075435987830096570852470780339997532849934512200656415340286872464303441535577636425229350746319046336324924327339150569245816902298624209117037776849715250466332659265690247137255019087222326370603167673197580150162800583891723202594659280811676222738554468109884848535148322041510404772071005762871063338688512568352895761352120461670587600528493568151520462497359674315265585620304442097789352830420699081394300154519171844732963066424211706870810177355206683001989603172627060081718202000320520756203875485808894373644730759451972868569901979068620991450780589612657597057503230494441862797500887221179682035439850271939990733344770645909774737787468876880593845278844521632061258192840166586765872668855996837192231514127046613229577301602172542342450627800373854805355245799564096995029031516151209232082164788655903365498064703203878850769112358980637152810527535978101931784924613340594333253001408700681790942007645753656212635465172957792652158074419652170040971257237124432984464268165244179697572973420577764934844711963464257704710989257087907818030700075550979962602006580276382388448570670190600861655911810892813942800918583817242970000304793463526975260741844759940371964835472439513078243575150430832409332252610393060653708915091858818420889926369411558532695565486042728862535840419190502210330261049530802601547490600265117662132555203280899302500145638417052843584913947423723652864731337881025373413215424490290113914806719129618602842591471679242233867248135565599475524937648782635038064073207474285139390445951662917234612478937414151192124445746132697968628249386429170392325883979435250555714795343879964470932453073211219363446177345390203810713981231068061032548710794718475860307074395097334187583177718872076504404115479613073236857289505305832670586265548966848765939002790674345319416843572732995257633321228658090897555228600305513699021577177440895249827057493708713244781743214305965957660536619150000083402405885619168826585420532738719493212066096508058669357940143311836678760608178403548164735547066150725151650394868113556112246926897493196376312778394325625204000108474348098259601329582713582005410207401656341348816671626731948343724603325016872747530392976548534068642561728961587600227483003468079151683262106322624279478513812966656465018486863041851283475714198666151117266925515529044373960555426057613870514009856335131117726759763610783523088800591673655108140618676412539976163739305648963511872388881236597425059170826639012891917377330790397300499666538084619588895625228888877459495924797160801292693401738798647074783908339901276206140388776556652736853692831017599698243033603524107660813225062854156279408448552865902435169352753849896724233860629378317470838831506993257244196714678698466872338043858759474704597844879249523681410513105862640325278371298380752814848772899042914347088212784381941167719776629493437436222139430964002571624867125116496692999507924230497032282392872536636993334480219196270025129787169892682889168119929868024861566238609335104703900424571364373167914616932571670962011894163349569416436066474687170476488814771262141941299068519014402777507597186766566847052404368507388001478987274119452213893657767566613677645712458552287720127390484543119262856083611404581591186009922406941903043049180927330156205996127758872267713138094990670413430215612194644843033514771202678196906736111953266617788316841255181777593554449996124398698958040985616156821625718626548197756812528259177710130647291172364300941715841162193162040623950070141217887083254231644720870598469112528094841800666857693337031565124102323124061951883162100884318566174401977683181970515405006173872124734827535476055774343382668323188452551216488816164525151678848502596130943249881795349241487599319509999385055436921720984494858981764178681940063524591596654389327909643156084037152182542184064298739996160113476362975084088342712596726923135623372629526163370830395759681144587595613229517828797899819357956177576772831982636456066088575842205028715986251359617025643221919969925623624954454607668010019386763157609445601818222143136510450454010960343027804447208515715394319493922988027807700088942875273243541420972953579721840073374014379998646602369027344621716109217120683221067555850735599204977940209356870104745741750852261008885654809727468197510721987647947683588302902791163948133421276621229077958364948911654628177096311383510710696396284185829092701016101202460289944341674233860693341306459293507666209748784894687144173345450494761781916726214212474219169352321826025896555970650334671031341134193466565945253663343581853763290492973261288910903299425379942787331606213789192381931511935269817086460242849717808108857289247920622966002327073920117690467419688285995684288896424776585093000946502356328531979595104890827361293452277891511006772588524007611697572342899243124265734174195561685389536351940430867446156797809954057442743278064347463428463968196163181041146697770538959126625413860084739202114917234622226634335355991098898536608749774179651982782013650624735449121495675358063581172337936860604244487580986767529566993831149897337526311159947477900493485388501609957305253236730841080478263054115427922959213807170433696834909966583144523433842607353783857259324545079651790915229386940922318050478004123418007977698460551449951060833858899723517485456546584031736801994375277405923135041651649371503325434517137554968546080728928519683362964342535618265566286914978738915197018899926782750533522872813724336542857282839580204459624836749828917313982828874073584546144720051520679713306615870660266439932619591611727098399939932747856763174398581716742212275788332803052538374071191386147605758283077257428249676430075441104605005412190790133767914884234220651453688235997893679794563601256806766984067211466038445678532722107619245300527781925525722506754241727936762693656301332470238593572884602233224798378477086736722472657367099173745566504504896042439057119400105303806897743021180678367856349874741019186965013907181556139350348275548946065834663244659279649402014520490437789621111652491408855762804332641251601083745539483166330376064758159749258472654110441623182632765568673505930014059285416241749564762689711652664397270967620745517999079302462676724937872661812687931021279352480098294947607545958017648034752500753930703695139385240428366833912360831658106895126705528112151260924627673420234870079376176110294265914523178378678592670058659909819867835119587335533189066133396944806194768471268179905869301903857573594297639159988804697602383682585567713857556567194748593373718282183158868571794813799871784005256366054712723486792394584448563986037865389824447674351777741332606506935453388981193499259993933387942120631004236311924630067013188929025609757578191749506478599668083479862445968197053183793744635350199945108612841344015745920270644662341715013750259482772252227802673786160002737008830092946723655088251314762883148385371819271531120846706649765219987594560793199835928600816375631225970923952377027963734488955060820862928470211277479371668561789111192385665368231859711627084535828188603020348054200651743027712605372535202451728452213457495042066032685696295401374694560594402134447422067652876773747281509845492335238665320456279247946410288478880647044600376955336499292758872758883314180782068130819707654749656777845543718000758568666704195946277107918303369128735534957837613705387045312345757605380440215657132717314340140161652717172833182866694079680923220051487365764735779801662757337813800535563075535568725011715645355081960377749648426224835706652171366315587984939457211284075023003902371779736508036456684846994660354663360537426368646413112063601766095182321813517995967685091881372244334453121321242308522460178713905169313306172034747946459240761181580170884800637787241369122407254494807481442954285315850344628944451792563601629210508080373089302227376323651059789360226878975224255701865931522725588092425401305659244193839197836966540893547236310373437514216793672942151856697232371683131325385215303980540549458641678904986474943934613748122126766225587123354014142019913442324316648916032333053977630084591878265954337088985976868037856758470712598847483784839925496938522165960065673625054989154108121986280708380088207808236453265233575914691013648231618846667481986135833459696619695145075739571045411586718577718839479694590813923790329882817225305512592464620211384746808980287080050834680444700848272366323599054846142181062208687508382014705288555430197470945402762012980107871718244124318975874498194036813058615383433070197038940932998307924342845657178029245574646502345094897943972551863427693754138654560750881751236655476609418394100378554603637134616831281292425363391249810855966764628250431714187059368128003846989065245953030445545601676436677722135663996918023180596917464958154223975422844958223048041076951168303148741590989446526467975966818261468468285216501139164872719202073365659897319994467033555551391772005179096744069427901802175542333646264497861422673653245930871213148942617009348479649060202764400514766444601710477099061347605543833699580577434843397754280740846128041633751382543914325170354496275453990038637709865834859505835684296760325642481563511775936356441632253453960141569237855535625780649783557156485134955171057446164251171459947093522140721081257417665699954874711266043998367353175035264350011417772254596242887381905869369770213806638399779477962884819011171749130164482470687706298446405095458617994848428895875573673805712752678260389214143763273377329828911751478183004179924018987556248584045650742890091063809963602550924460954567467856178736192875204968544522672369265332408589594433431747205057600230515002745514650259230555903102943711310331203230974622324324447164040312598763337603909337485147488752314207991467847539806482319677264153939168377979211656354342303588715125386785006134821039666333013096334250649317392541196301808497904403039404071186159158797022778621386194716214665436524414406087563498395939384351047644120739561905928461089133494725454401504044670930427091724339779891743686135074418073398445299707888683064160749805156779336411173739600853546846429240885754109885770682925664679860892594969212474617796691465156992417667613489411789468225596013593561360964654828030719892982881277232180370955293729371122490874571786312561811421117807559645790266783644724691577614735309959494948495522713201692604914766274335182849429981632658788956242949801313066979262437314238965738058919421123441923971454198141704845402381403177561135301285490976010087290328863813090485099212460421331415706741855528289230815399160784723817383412695619063461539244535650646755033800572640582483546013996428490788169111921249281014662806233065724647130327524360929936319986585521254413576105962211436402700673669450191936970089700760771215485529274760008007239077103274807296143051331737512735884005354099029772148133011951026360608167139252434968816407833393494665702262945076113870292676824797428912745722210731906135583589228824927593931415238731252873114050549175430405810875357158363018131138211476281291335161719016677195177445601198900606609468965761257564887825725504903799195736030076290823390796766756620422526272975216756849760978987966178036003517996563125974195685829403887059658407253650596667082269098293609922355692764949009977869346502499886832033330181611571706922198504524836558440483452711515323379237764304519643421708251983740475762607421203059060641685752527404258842980945383124787444934790455814642409096022174419982518936934158419813320284306114823567429019052129092357980337682605360930702354497584416295399806608359959504771019812120686111828836288460011748085882677120462082842739519414382833461151210606686442327759138406178025111888497748689135406216738263091428843141105650292852601054762659509684910251891702303319893485923843006090697375760372834676479143415628948429588397705458311092464107552534423514295817814550994639230045794392568183064420284727158128286272937422956098204637134561438790945893943011437710493655037771616332724661935008533314299948009744447187857346313480150475559753625443896421431088825985304993713998547721029888303507037716182424684523439699103588941512925476052282243611895973404035602527561406253911556494431024794626681818914676978220129631372086598039648147299756387706286380059220535511646099600253514754055575420449339502700007257233370540968301771267998816435002330025049313715660878925274442540649798238841467458849934651281279828027963486239211366806375030955607939694823323245563781756974418762294612499993534848130406180957494928607195761456025407692724161807521964726003249001410804228205315795722635140419282148714496069911147648523520079660886090298445239183750326654743040174434231914661368928438456635480763052866854303681686419637075781903703115992280508652737908842475230862757700375838590074533971682616666828077336982511945227445406234161465442422715389183342589687526255211224962816285598716116186803351569435453472341956101738925057057985442931227939080314917343922386481418631695560121028115232512107127701176298810019356951196527551714084920222909718805082477104551073558788146988463372270358903259269821769509340435211343115942045210294974945256442936807198752836907206855374766534321112320031226525529667977019902350600397689982571007669123216338805883503330204634384599190541408856932184966581885323067481777692014910960280894550995717714929198089595783831316401684173623707842707236817971552493445063144968077849045166485592648227468589058790648142412831021388406222570304887209570124948622382531364299232014017349402611056431686818167317701914327941434048937162165613502192395036141678054268559759031724458800595945182218072330865664278349687820673574992646789016920473391298111704948845393701110500457575785595826866203593929345184182283094049403004751080516566399005171517672620821004052251534137250645366715059413552149391709055343850565661157210475574473154315810029243660860241345587222572779533623574664938097062290610865177995986071646738130754138140470814279724200302305432095286904126198469129441937379141627928287237213100628115720570755345974682264446818628049660665918436372674063847767823013699706646765061354524186567374239544423092736946595103150347443452282003951816745668169093781833942892663207117664833157468239729283343744610713695445019314088711837354317239905092646718157623680005574080988179125082330771181093152604986819506384896488158069896835532894097129145957242752452665826535462622944123285493861152980273327526185702190055702096317111481895498817986079519356075470558952893032443585313896055583336253886725272381841053671235531320645498422700033424240188163014466791751054370498046915042698423623400741871111838259551779057981407768815109997212943971388575303325817786275342728092304312021079155893293951294387833473099752892782052550014707547890342802756988981557946433167216374732949970225143485369180474513409723560060509955927087817093384682253596451274193422610065375548578085904873522133720502114249225937117737822821390469551753829047343566899527881787524773250794229525627478566497576426262126929105603526834638599703218299428945215029006529447418304733545570106040263956035834598788852768610306144437918212478282187513125168621475960348186461914619376810688435311982223363263072789497981777746496315065014213625493354266666775703658185169486397840751590489403825290320532070045104872509302360952773675237958463488709295199854951035905470385053363780631307497608911872260254480800496376654740315292194444965318151863556975278234595929420589407911280014028742977967032352004158322602039424260455275671464811871245370687767861441457373294812149197991308192446441175160226537001895893772388991031234972130924328278462396651498601063627324298010306566230328587176550293087999867066465107290026928926160915418352129869052524293800720046726432247206258362885701274539978919573075548274615473050634380880789751500747428380207523978666634021213993307064847538173153939553594432900022055466981549082741168659068571143469934566578494148384211581763175012314920664094578961546494776436647134285030284076228233972187649181295640284260957887452274050068349825134513690169517415846048332168510145231815015360664032302025547918720964711694334669350280808353580607121840987186071087904237617960133724392770238074472999215159441983099044268213055851917896592138211521088314801114095350809797044450475448595880631024697054314060183835653270461254879768732578760499217010971409589013715397018224758222614536528549400130576782142824670886074133901713622617304692579037111939938439914592422888529379034576804809905894814553421524449687477099025810847227765052969947215807664216674598998261107437577472389553736705814145463215365954213050076381316799554689583309724134252139257252195683938619586422170448238453332290631152784267349352958522772277939514131767277455920526438448362882529591971872730601544724393375883372041667919177871944710870021193481082197104405186050247648430977495818242550145108123857683698383130109984592430776627838150869082829500340228121490578824780803891326501643955931804703412728181522344507939739299414160646984796988699427733852968163790286747474306458871044863958681124188049237594191375339925223689415542212572970004166910757043517994515654080754335485110907886123621751218053947712532545267784699613622990936958509581777237797977878986217444415256130981965256456582481989111266624278903803320416787041012898828922046170835382983254916954651879622046982747679957890761542561483807940860077847908519034543120535980095101818911760348730902544742551744853834422835688759646032706391712904942818292127089925685840635995352017701162115457718902003713895155823755998093204021358208756560386737459923132515924497428696144106434271614816190186157926316376227091530003199110570195350527545880772712729846910047136451137789537749468124867242806781367602639920160118196176971882399567701139295497588455065815592134123516464475726086988921867448459732211742140036060327517112189054679564484834979515093437255974595749204811505999118497572578592560915939846423642425189868980749646986054015793770708268888390897386619038588820168285584005839412043409114879360909322963208191568944427133871101379993514846974290616785797398925236877973543468347014797579334328715979076903544812605544759764870773264575815070183854347365009419889940328941746513078973724738044671291855978165448831746316470841888369915305557647513423248473395314338279745916560737619545899404136651518394588546954331255262893514155113144939936055392583401621919256994258980961280193270084741890265477147994673487886226395169271588459014015307153470045146293369392029164038635235056926228226774546485433254351554813783943851640815293282104218539333774432824217100327468474019201146028924739250581027717074807245101434381916003921422762904271271297569464366266967693284893700506003697039366899089726514748766054212855087946110712210041932139855020119165205065736084810138866632097623107674305826261000111224890992716726150903332036831592973363092981316129733729692602487950884139553342443390288613125511569521153831772613109116629477339028137821997333367058122061574781066172951770577034865650694352539195592059596799273999354085463287735261810547919760960233436550706757905576296310489309630148960847231437588213883359535525428674148127923231449120745178732730154256186996581273081192179924718064230272526150892175014489203035842978696598594634793744894216906587730501987823589784134445504650408695423293402388427058590323437534417258574071742865601355947706864324081706514143388626255554991827463295296703168240061326409634016711714515126845355660029760324714934675401018996310332390986682143994107911381122968506935238083217081189904759917242345639023402641754862569987974700763245526472028151372247769196734090671343126875178796079165676442290127691958288506926742207244108104397984261771919700738731397756499711332306534083809651367456362757391026087286964391859654822253472464253209893415769660809320726594269830666047491087784726247395132713840340699476611228070395610518478742128963541073163736005792072573319421034099142258969973668951041225372661729409384607146131694514984232591836192385695852006733801254334923845074314105127232574681349025351477461463818155842087325232239396356781649694450484213309931544274549342432523363852774988152700532678993310530251135453800205003677685700189028041417727029369941921552291420243408642918073657527994737410643447528094964152970901428924295870854576334817084647324344911534118401805364704830340825329941680941385799630016347513741060247726791441713393385826361619142435928161881042384008805042340527706235169103472804268873179510710272714984838926286192163239620981927354940074262942582939580695562049845085871312651730327190670955056938316173904250616110620842199880097148390597316263581921265274405901915129527812532040951343214486223694500858588606754660174239467738357570941507303246751421757417979112723716604017009080058308167287345119961035755194073738082691338314309082275470344549212151817791101567963189616458001433290546581577559176437826297443712143893513147167768926876195474665283364397483226300832459664884070821958147313050124851617408823513587640068188778393922384153514775965385107274332136677031929740825590057225501904267122995792136760122371431708946534872213886089970098092551502539621926331828313976685256437070542379951586226268614013969122959208590834877766170289295857185807211373264822071960488998603532507900373360470922738627356231007338423274070338401454167778417658516116413601439475247860864422896596144132387930691176238668830998735844630539263884469286607834209515210925419201617660106355876816216061093904039777925485186678592017240738858654715272103302324891852713666360807158837048984235039516295076811026467301719913377086474101619938260883738965859727402261748238467480474099741126088549038847133314904606055720905525138177029142434748703745582327195521008864421990171767908228758072313305274658697294675425101720378991447130368379360939125229781665845740747971555380547906908913981549477849463484554803094058529785747667733006555782677186962225062781455472617009538809247335220816676640702743484165184564548257014028003067343477380789574585384631329215358809081824788899761574700490712639657319132193702361984424823914419280199121222666439051809838429241471842004779378220391630802875033303570670699103419902384243632867854266218567997058159661676927576877487779437234509978311855594196670067673880346269558842883054805753046778267472098596500284196179418480641586462423321371300980956098118932331025684790558638429426323777909818941889939142167236257616539332694191834988595194752990762850173382664966495912715074278585374970793409649306829690374580312424102466162394137566710287602118060328531825741539501609330677374283526292655457202566090284994856647169738280030805069919599786430726992828959948585664962512878906696435631827355247385140891940575539712649331765002311104377651860598978157633856568444497827773705253006817430047730993254540061531595174775960178423606526163622528353473751040971404577307036118029414090816769242753627108773689775334198992969790595331157976946023199701425683310833123847750359688999277749291470214985934328865949031101224848300449624245433232359061295530715221796985061089916448828822512264032533434498832649693605387864372348241810984545655620010916120858754468925829940368943414197298631534596441362981425593739964303179586045928413158940243453212547054734160461808800947148980573430749139884883276536129665505464480815089014115311021928065577202047806338672808174197913991744267179548829762471186446463876534050603143296256581817700789429928006217548808421701912779272866414750221125860512381552453576787596811014852293346319998004373260666670837743399564435265918977208888895790974417414862365696817158547685890289940818301474084306678049634901295177581521259373836168345997533821227878176738525444961869480785776087391574008726779490298025967414530085127063100447532832155486989766386121950508236583813020635228838489362866968791715639086219201273932730382926205036860723943484285234989447199663142102619102698859226784647572785330445643450737032755193257223992966002011043301319742253660713335346313972246819478812358247525409132316937356323842585740936864552223259149041284354070374701056306414972200381430398889838417193529085458705673626179267436730237355401626088280702975471014937552371946535987589285813222296369406108726461780644601486363463769662467692538105017252432408017290958104805135069008044809116730860158287690127757015209411879449348496701989304894804167012257988156019477805131520660301266183555257581519409682258661494370642588680367593354982806464676814822693105070832297943434284089825376377275638159035280456532486580515763606780664407845700294241096105903074244777623924045148653911963232127524769747633875625806413162594517914329290732130116315389312946999768512671122997185602462549228454878570286085685969199202556887413827590579584691375691477425522256519173442060157935997095805759667467669484971805452770582074568296149417980967103549878226605089247940064709836864251218911469630850429863214399567033251095659651429773724256775099639475915642634808964779588475388431093113153018168094031302912155800103985452101216253599608918761920812671610658244443998722299722976171030393930707701281336514976922747801596448068407020050328896585061107285327886102492138605357359815126775517790866298067446647798321260244431449301533064544943119083268034890551414497909375031654940203051350392924037856865370017153294861149074502306723041866921448078002321460002407828352001172814810998746112602822162300506069479933821174720657079209134000102335909668842323582100736022540434893777539233580409644695345343740586138145418428853774504495838479841907477441841654068256399728712699609494514506388901761904585760715261018155803649386593601650015107342372535224317745604193368033122530621493337741491436486579572534225100630462172797497764472442580953910017209241263276572599069004120933002688208710282771284077602907399398736790671337926012232897862207738321289447732334263608590009257273783539852609354937589290211070387602689978088380763954812045138345891825177754614351517945545699689723720543792475788987369157221515869175203375011377469419614373100487590876836169646492797454658366607189519222101631030228887723520055395537766839022453085732247964441357663709089969852925209337807875448060724064655321321215279887773940404860718347249810275009186463615015953510826059545631248873523318021435780365677959544100309880516775621957390421578482681197152208341374789898338366942854614373561370591362477728458565022212001487470451063175388790726932454499456784456490896120880971066243539839404871903508973018001430666620596839077609574299743012428818635257984547991706027160382609550717320409902933731775383317492679384923187242280508825298249567892808764557276446399603258684138283445974603407075927259503326588169473486682841856013054552816857560009313672087798744067787416807496158374954965334322968459598195677972705651284502639804653623915001766735867512638674175471905323418489027787245368531864368418021698856014945119821060779200110680430222216641927152034789722567843877451147533814250543287655632329433107466342889615575604478540019016028978614919276367017255563049062992149970280341967739587460076782424684438282165618353863669861570816346050921607205509443883968788058697462964152822755723324141297954508786632751832634405836924303625409805980108130011181133782873802238120482834571709809222877562671914780887712255152268924734093243733673590133875150088903654724375010253424294799794946957947454350432216637948486740362394346694396578643094142543545423424586812053537754174449186688891502920253417275920637099734771728277280102800861644571229184049862312716763674817222228714741247607165794612820914293878342926292869095341175133853247939804685951597586141431559288860510028863720421419202153631855090257013278016866111693391500017689102195848499773275270845228968462723253525702059221087880201254375800250535173649504402418596947260075731566869296252794617901147523152886689595580799010146743922719627353960720970350866717133330902601328280586595023898305525932891050125602554515173807810347064843393155618641477669224384603935300771827030272443580016213465196486244509295831949742626810336083238005948452206761196661895624484495221853462951775537031340623775702050748168704738502204272097786486779707842130115604031851674687966916180381690091283614648863404315073928810482692846962119583050345005998977937278270625933400596074448660942936667657593978966340482770281793359274998535344852168476929496704102915150910879000388627420636606305293594202951279027211310175000035961907787935115266106186609377472943312600869316757398188278476024758897777680576731094420203656669636238132187585976752280753782545139999763830387234824875909624852469983234701515132027837640270835688914367658588049001218422331165930432492078272071673271038930343186100544438259154127707090372372362986048733563589914440812794076131839381106913155509967070925712753273111443819378214704810089695863531531385821626055715273917055468936202939201129760078350395121501339056101092709633447551801325514809041973802187069911476994522451546947305197831953410430099076198889040831088776998616530842659796482247683025814111952417999506348740674569870940707520551490232564958416285833870546864019291674058624296587667829516281255665389932146437474940301927269674908114299699370259879058120779605137421099933615984019454604050626326255380185380421552817916554600961606186362237378614536422184433879442019767009056455010728464839582200148477570207885903861327437026722061045324357304097374530057868423373520041623442587210706796685236727226975200167934593084005088595274934390384231549407921171230191362838144757615913840305109284511045848994274643743523430537269443895142175404949631742272279859736806565507676504711384570099440410501030107965772859523389570275959330311960920138700029120392364108136900422501262568629163971099980503194651193679969507297575570824224267460179275146912443605020710613795071616977307875648455406075368386262311970694701169239666028633690198754945276425609029203876867392561450469156839627109506401565139562067133407384387122497276085634854619631663968790801606243869288769953588695042190907076655250782404331035214176583924277789230709140681312131916357021583547669041371305106766559172746920187682291199077412742892275895354937258344008845015486223127704577995079114946610627741628246310218876802664767867125085875652243087069496474875793649147395503042876124349676342501358030137100791672880994568344354518260771588121068540408159777523869494089359720534639779193541172479816266115019459644895209517920236265298009521932680152175149216432328920716527256584886652752530423884025973268512798872217178562539989687297727149580315602591343577021523930003013880229040343332391583278044325267729236596658200182810360260637175655007837127539424472204287516126329041920739184687611606068028822415715635014050499328283003492617822136772327979993290485658255427883862944725779655691291261825393937913886970547226020294962668195704184238834501864598797729314843749078169938421138454374812304225656185262343916127900351499777154465598451906011731155761589399361817104392128646395387316793208597076567168870006797643251271729035796866828704859750929879627117769220858722951410507523771516148551513916204718402178593151640790618182024287553584253915974908864367960081345181113350679385689316381598862398844886489126247309000269628699532427136286518385479119666451669957164518093891367083873410959229871594848865774639750658387868838553832913065588341381734890885234763752089778477474078965779352936262704658734718626959237044473602772682106924659321348660934854652610871588179452878093300411173155538438567470491612254420760073821874421626663059320157991061526352240840755957457396549572198197032719148702888375141885532300596252189961935044882277138684735356489463814606516015823762022607065885256812974663016848839631067875557599102945587260229758922127185652940525202857833367395116073952791475088570826430916037090745689671753625267366864631780568842310314065862417570679376865907347689643708520405425262905473342712544812548663448547285516830828407844599139317274770693010078277337875548681583015918433297186780089488974819960379975278022405305895750665369634251393308282091418205645377277842300896895309371520032601572210865906163847209807230944024425075070385353938829881318976182302608437398166317475120195947192031027659817480536828732245612286468433436295683105055396424466921833900760563245166180536263038113951778020891207597107528592549119877800213835351840493735748931440953570659422996607566133806707934199971285188598961574949762697726620582584476347637541698426208734010567024175439050695171881885466498939011675208685645266077839498502875721684347330590023387265913865825162030949147889643328517765245843139119579901818886074188298094760025655846768038565980269882473688393644078721149080730323270800834579233978095428007228537268007159714510882845176600750412115777343681838712824744784425281550037259365505777652480467645532131112037563678930787372869591747696338766876926346923987660524557165611886088225458996072350788886569974885201357051527714555803379509726424227076760503324736701135854895535533694105723224875236955480766815635483066366852203309524142677122946843941625701821619248756341250759180518042548238417032478239602115277967487476921050502096414213208277463662296410367862625623227574724520169425312126996374768231095605391783128470831779692628908263791797444573063202342952760102894693815267871832843194959283863892935071207907456000677458942789769515880275576830314353724589019218291408612134396359584631779161189412264699068402531742546210463224066806554211781921112097801665643334520553695507933004493353865261537949522936550493638507480769567320514997184507435341006116532190289228149251597403866720002955156679647789364117666423953758714608802294550640979235764373364738551426162294501669686831166875797975496955221276848198255100707006313159848391623922785353881540429779311533986967226070067612274612244499218299609555754574479676816417091342096474279934512291388820546226020141837149003882382940593307605210370347803378337630327582898902003148633425683617001376996937351863321160232794912069442154408337033578369767182720667243783042461323234313404203340673743509274602344808373195690518327586331517051692801524171634854550175496021870673065791771522151275407931395487303717074549991675939956102532083883722415483470605503856873033765621864957876010997170621090236071557080309313476378753968306559751103436879736662268050546467849322642546349660529388122534896070918399546081366602288904459365391489730956509654749004038679941175019968393170237738291106852830892413004256258232780347574229425732435229218256191403411018206718928821636138095101206670169729087699306486173786995093244531086777620613268986181258648532350686477246311870227437651848775568893113834593183079110365947445004452673727093941153192482182992005923089052972624973901027978842303966700832965746901359233957363440411694256677666440934955125736312589852647512178154226221600594444450448983181647872699036990191930051481463481734467944168176253387563239110037629466151241644774708310231588607404271552576439087464516915973170467887527776383449706835902414468806918423717582492681783096230646453962684173133381673284523065610291496278197597933863743193207003256083160397446411889935289074509047033990943946215823509392186759943468271978006553170060358589350533594812506102512724866014512445727836586628177288772516475914976635909223333922143192075394043755772537928442962717372610719854091058947444125544067302403498227426148341016964925164167718532691136088398662866979360450026912635132337112405565698676580175845065758027666437439695608205236928967708882665028157042093424468429094080692581441303160248003713185659695119350714123330768669571777256633888746065205905938990978162083719431514952448637062869202064128023463916101072789562806631350363776114855421118456716791520244689855687706309604170695789305189908290621805581652110744332458039291672752469379448063218804354770688459305459996993568060991025698886313123892985989267419086132007897279441360775765718119517828747143626714146044777601443178878751648655179224192992539869216324090828892959005131670201062225335047953099414281912640796964946165033774924249159178956607056211688770079768386345949169462621981726673474928776626576497522215997358185455544323337388138186723049387156463578331262145373337195318593583036192814196959359895703143650763947914867961428827148327065334010844859047121736574981107579812050514259345804466054591863840769988230622972730326488577124136369745742933848932230267082250433076779316433423417191529727915368072680503915191565240862986306409651774052747862977011682484502043625485312351302322345968499735533401546306851554004037869244880890438598450522627017216817105423381411199460748089351740007827288368223357463091481540718278788740690693190783886197539069394448930784489810155205840853638675338631212223657484034997455211711202732248693768933222201944150496073645766624109053591145499058627270635620634044873515985323159386689043460360844782410769525956080332540811698642190611283503812587707722969077869384849881088962398151845360749524566014109487152562592954187393419163062649576493667895607343461894613022369650459262735462191727495328186875685672188563414507026655010990659073801736278353593317962200843309527138974640630073699613567627798466750643491704480941618070347344465920967236236949684722210711671353761971886075932165072839304522474400273749973875503841135832351151863126009374946158610519332611625460949998918213516983395110901562182662773408526131247512893639318368160238578769767579399525375494506800808209793603153738597786603684828216214863744414889459232581224049801968899995800639568347904460113465772443662119707545293252140148677672450269093046150153178046285728180777808078713528090181406721048704850905378759758267403626609283958882631523041551411074332860044087122424174588124953550129020252767369238896392075622760395528925266968730626133236895809471013189510371332908927497261954133925949926727557561789544577050410326606608573312525995524960920208728819189101307714808078650928377909998268493546201921886728130662739857261905994251175992646508532314187146451084881521092563799969503636710236573536870915299947955148054528961722003029369572359971199709845243376737584160308676454913966657909466041753791554264461691590834163469583375626356621997209500744841592430293761692582990063224013808505964718309799347397652781376790210298175074185697024283581886446826549338637650541781242668967259833320136564438530905330002652254017076255874638467010311541202352767033255265735678756373926912062036835027707258962598837427127534154185085186812579580417263873588607199749899807372613125553609758277056188593113669496190198275698795013619758213871126920330282467167934892688507769422810893001273048788706809941677767572210431960570381396626398297277126812294417370958432469529399598431398033107844883545004039491701957848672425483786041823902940755203829493622027492590132685298639738185134715708714078074595468161845975941508336131552835743558683343579162749723949791857648307421851628713055344288583376265736382209265996608802537152760825322687149921914910196488823457102213745516379688060321703775726631212017388381051203065640635194830281440125383015243952281107076846182864012186671392517880631849972185423758166991677849648518783306749698767055698368949518114764395743178267207100316535776229423370289063207865198880412201914166196187837209980126367046263508192750854988363705354693561237864561874176242528731984913855178129014058833415535886980984231707804079973117888579920073265345508180067414026604673451622780283858787156138368048294323482088791837370747354673895321732742342179090411985351501296308294032408318071823251812871884420733779938429793411886033467418057829413779695009321832504996013045952217828166828550204225539483496828935251653930676543117319640835065453618006828565917089525714400178373530898990977975791720924019362958984981568100633539859107228304604239088692713798836679912643945482424437230804393334656481444877421790775024015164987933977081103663087669048750671909077947703256612027001776816536190015489243747842147371232309566686570878584786172381838165024231261436106187357393428217053113868577986897909100124956470619550296337976707656404204589741681523441483964287374943919971903487031015260173832889762381080288631418134402734409536070456644396652835653127041066667490012609416634251853307296040400647456396215095837432931784795650557214747659825748769098154741556909360764612703416713184897751270613691220465525724395343854387880834844489994017613014980176794718529917816260461346578765003019667113697537663811131934809522893179256120287642302232427943676262638475777086020583713546899859490631985383028863427020441323296836436798300339648641047718043794738230669382282015080920035718278703409819470845162349956861396526809550949957974813891040356934309482727305010304815217948564244438803519074290288889730655417871590027215533644615252124470059461743964810293191830947097078383896755088788538718595309884656938177669218835178263678740432985965315024069760656854896596000749321729000410351969729000335209517966140402234811955816646085959070482600985317651862774510251686011633218741788982187714907551475212899192959767726588574572237647599429000894003055828561024023553112212983982110519975673374586118726436199002650140912632295311961703445289489235432058014537390285547184385874240837966673928758874480782712734526082543994114753112988304818080281135896584636908318021830730747995604381266989766470853069098606623676661111499132940390953760781392825938730376516009412151100154765694672500681537728578020355424889125606096656868314177257954847204644955647424594059322112993099255757563832996524551016139247852021712349846515939514050892800919024917172029338686049684161554205394988616675227918063812005984363616772362922933919897961174479416022409882461291033891324421066403998774662114243562261547242923790413950149078079699923792656927853188623071945106865432384176013291403700550258175706744751232408583712512269504080617913434989626385268251107375938007153716289164605317354445122747870030167439476579442303938840214534996927694215747561880810986194090530610377554738560808996819031454197113107271929450190970292543564560856091828664945991197741284866287715689083490907575078838064960143791721453019700009365133409144716335366494626410358694995723134471024116598932874075358821895197315903262775113448767109254872422327585795807418900027987502873458154137971633275823076410091727546752498792145508231798243604386743163329709992938866964236742530475540088111517063474766125185358106697597575334457105870197955857241000414001227230944413406532027135605808507358760292019842622131372788893367473984535628553986462224632517028819221037476398122738195229412531752006533745901095189864284626109345642672790643995540546335059263554756816131765143958730760873366475184872320799403681899646706108188686202867113890702484226251723153469752114728126237858150228061777819398127821440878543632789764919740107646284433138435315491667173283656403334270445105956506932931705020179770785971727919341704172864821209827059745674811348115126869867554896473862134473592172648255004239793378906611417396309208668450770553855125079828237977375299198321025779072517900384423754437780149975359052444493247036288011389153287896349693779034394877117301532861832377448776372020860943855394820864034831796946214920919306538279147090125570068352319344684549517267762052671631247087102866889755694084658311756077490621290362274719897633484877923889553370622201738092424436432921082685524308280110622092156840378544707302015974579620744090332693185335755598819074652432727166981332805614582357046351851473553254530412051738228924825114036063261935640538545659397317796957095723054739706900335663619204438713691343285925693405464502776905170689655510893445302017884967685922256488504850967903442861580497166213765249562593627882325300624161723454751134036814609637251720794987456823948368597741780728630810893054227752572298376251436104349701212314994817400032476522412124222176932092495203566769951354347314776334195419268460099143402713466705428262106750365586002999897726570529620580086297356685871904467926764136555504277761335796875293104642638066733380866284798195260528674844359469888277100949486128053901639591685115604960939324014978611005722801104049674747979863926263437567893938044024114484692090253378919639118274589873000811896375303883156132497611266373375223518047570429118314659171470330220826408846184786261093818316531822913905588210883130119578890627648069878890734440429781232531690834283186938738809592963580082622741367446367820821021589360244022047914555950493466081133018703422002601223495693827461644670586211206241120012481012881591462655191596945865624814923963497939988874732888111495842762478496108206060805601143363252841942461046569155752431416660965758634091694255163975773317062485266417734844925487687453305311947397508059188067563696039415183649382902090500773019466153632977987480938725240666567923967238035404720068853054516687029440605099609499497020470420683325786328644478178514702681963688185752224790344907719761127741221523054002248428060812280015602379951922835583844049010970334179588152217398728978395598498562968469751871484236032904277970327387007985846912787112298037464287222453629314921763986319038563609200552707361662754704780159805859684845148098600866123999833246027410549100330903911801198840045099858647189832519374204677600861816506877890196689239998224261934857625808675384319921679582229222400233007458053158385556849550958795908867083715876030688226098577339362756829339875714642618070426321384041585458808218824334910652396972550100004718937730140620538758254994764083288629129864680847850702186002381608508600416960766527250358869896652520277357504700972104232043120161603573470033093386720343646700320751577262013224990657444832951123637588580368470095232218595558286309924529859030374777690474249446145123441566144623741792177263385836249453782800378815512215788724084948437611854409655252363944401635999668819166672908994297586428263128837797925428753141437016663256224257579918583756748622002512138395304214460141345507874753152233122799140182972315104255814701555802618544930001358236359629856502821229413239415577118596945334767525260369020777235541399764658422455371186683177797801112894136522315122135321487642559170646799130033317968432907987253149921350966524830081374513546741790744691660602726286632954421675302346259099915620733641935275327278369982589586963271550535452934494748973131479084099178113587731920347898102732807228274946428004584828791658499803172335371630626960998890117932625430450953618381504897482463083836272656560255371418354874163500174985070033910740493244557001755558136814792643554920147897458859499550730727703958376281088508051757640192584282116920917598455977417700953793351013250457745524455992792453638808103768783565247533408650501148623659838797039952147203884776363953430403887030485633025169123693082173331626895009457912997820333141489562106645434294280134217208126687530853477918433777919889828006592014799777807191060452133174796587443695072850152074967469870676990149351434403766907617243014118196938665323404136629345248253913069523798599939485045587055902466174599905625612760385353852028907152846689398655757211352517332558507062698251826924208008203518253851968871166523536281759664674392180884664825498771476297934563568448526257197786849858737292476466202031157387580173761672414972487030450842009929042389580339661059940603939207497733802914253548298594491606145845899658908832040414866041320368385583943987130667063719385206451709636213926950197759598720226576978366288668000810967166440188048906631976288556592984259077692021531535120610395761562833142791610344921470797301910333999929747785586103368119991279097811532859781839517883396683426333501880763001691782397257053662521590569958823329879031260895411159222283656893329162910766265786379276795057038973760169826166682137631031447060496450210909253610395214761892643516145656409037207467040971916041807465265777005191449620305643975364142568020671098835760993987500671287325755279607668200197085096979507105727048655175186338480834162932232162829840771135276477440911777503594022101382422992208773413512666227869883401410381185263615619165785542560375071839198970778306779955355597123379323471518385139667986192716740530669881494418560993500632379494424168326772088627745147316948625966717532645581543636530468027333804604723095610699874524205304833678292508655279018425716668133276190725900557236199612062287379344270911094324347619771754227760233935238133928917905804301369740588693586750563634946328195559335075242179889775006295796264654582888218685642886304461067321919271685737745414807149355817120500130766036645274164558001406299912357359585649655623039621487853221278817969489268699646680976122824114888971119896623872872070900099985062057859610112294706850445698751541794111050022425387639067240873934632139008999039079985622000295596366476485597755555463679394443775036609290373736504532090063901724162519562356068986723930821393260377442116343787314112895732304801612937803607978528415167171254045940336659709585241668747489617760432519014460781532480080767878400812113065036585972230638731086050265733448875898155813762693363255147312930554857442828378276128429142531169172243988259476855821138505274766479111755724981517064815264536932112814694496059713014064666842387296842561238412860588907781908832561216363347117588960476827444845455853487773173510923599984466072596971113647693483637405926720063551849539772483837889484727207666151904290316097577860783102347669601553144251825104628917889083394929808141495529730289861638612567938626422790588605892764039686300785527042368176260942072346316843956295900785976899118852859792972939842318281844401182076369849021894495788152590036395888985029298734143569999137626729827754815615485853067954386965205766581718754440758073878000753735167485720561730016341550467469525810199871652373232146891805286747460383677341548660922154482304366644110436827248742374396598347386001079739318212811759194575405622764269897619069795031967844960572201239442599461546969443577864621744530956555091905688484044399447577171872322080873180495795662974052651249585300893060341546230870482225105589084351683085929512549054363398978087062136995858715171675284499571421569588163171012044892244523810108939406123108138135319385192799399264543080996329374426602531209841243207745538362306851094934966948115582697552550222543706408872578229554515417922171163561206110254529120731104145503219659360584817810522923617010287107752009097185111846873369523135110058665367817285547385046373300942646482281271123777466271655618915519486201327193857836997822656271860499433786863908962648129916533764738778499078019866535551526856638643682532367436915884543489444224139913537020061477825773865838473373180440797640912075758999819499016254197284760865406430514252675054673820652091641173428199488250544818706476892920806726551561688869624322219838986342291926352388458681177224823897220865530551355844233310949479533834849496096135707275514116214877206786426487728498631824308139349630667444873423415732193726168034475514945325911141057913980164144816817119055403601478542770570861347242650129080610997368379447715713190033051175786284998726776445982549021895780847692726808373315189458253772519645978778976386649935174342147070802484536368446181497968289663587396170711408082291484764533840840626068843619447117550013961156696573903007431561393843184876352285510095827333723602141384693730127197357769879141557370427316943662768237643414378532164285867881809663090817518709297721484463541621113330557495183090316421041749593544494059379586596341028464697688867763063927877206740618053886857308965993549144090585514085549347617614732798799531485855565150136347324316628461125224794060355176750383672295190809318682827873970483480791743279513219265166051993724562875090358548863708655981506868463311049262228035007126353732415450305267186452238746017725705346706622942428647415736906212985427276280162753312771930959507912730423591884689028040277957252848922986325037995250296018235130019180635402868905328585832257778197347469375581751929135765181674750091152112863571752588930936296344550762754622384725444085865361474317857880837563307877333979804883597205396576469354010478862707830996595510244119582698938241407864127059065078299624279201582570808739047078485755610413268739526455610889860932556336753737525156593572590800742280291365902264990777522527168494779057289764442647280142745929541452157940078308060977461914831249196688468143781617255903023812267167552333801995232759207300193169666791233661766871704240584899282788500171787038679049928802420132301147336933344644351614244963325216596221730512541660531749326898384460936338544895499690951056856442653758557188230371576884145026012471138896965087595542018148936351166587191754570989578700132211279912592149624663679370754069095444799055255638987598362170459818272456819559335909644700948801929111257524294403509948156705152608347743029003225607286563713666370108838531005790793852826426889095823417751111023467418585353750127046609857864983960708655487068622759254264805023639709412711854567774810336276899919679895373187298364804536954507547137648688529443993889363437298301442806588091296043602090406452217121309273241801311470369754583779688938657815663907414660552191630532329755221593327758671690085879901899512154859572501069906602174883959153954586715154735770168300320760538558862295428533142814774454461698783628745835470548260896554485397765995441720573864936612837364170037353307306613389870565551269217763876769824156690062191514055102989531983983335176793983769958328336741232406846413559585503559802200040657671000905514803229252361185508769297460686725774720038408341520202337525335418265046737400386394936374904876807573418005526834536032142723845162879443676835478731994398173019087455444059702320072570005288538463529962700833282505459953173650452864946124384218021231509393915626342163819101124162522659392391680871372146955929341221728679444099504745589451760347492287363209564077484358113807875712240784611596972632505845067700548711493503716565741744869952288351515598740196137614701204510216822425875429518171362916596347664019523766656942116892977302913630780932307559345113103668803794490540026583590715950512405697007555702256104030779269285017292387169566785725659459241761774510679866223424352888904218706827556333993244554449695741163674398479032591886727768910112532992746210348941175202606967094234014672112837883323495663901642929752387955912834058060483206058461746551128773243109680698113078249544870467583332930325066497489648460954438170117132688058423446858244865794853679418372824511471358542625033730615057537110152029734620067299446297030595498300441859914388130711783715066989386059519607341926813212677109935278089662518841568807755119610201972512266890800557739883003451056346124311261465053846849408935921621932327361858863290551877197918504211844035162935454262062969479085569010157977512712469486188344469452814362338198548838033483464795995242676538645931285662660605860115402235659031699643021527949622868283184731324070453577881742554635086972989538054254226533589168022948857092033695886561744892994380158636078329939412760363935788575515834705316832094158670054919665024873527746496231187867988892339622904727427925297689487757397426892228889665173791655904017041424077286668351999717001975033529641852833483147261774427247731299694319688490105525003821442635588922399143759477576732402896846550925648739139397899509300859659149088417256284781231226949254607142659959022129547809465688502899940273801542073654809918903857487136772161615087247329163110333554880522406545301692719963271977117638891387448489502559960251924654319976809042786676300690144621032468288362903977833352010233322210928032294212463636458953348796081952597335869758593821700874455601808014695625398856715226721862562085633770887081075605304469636671334183186439789626559798465028623288626963203509893984795781492582951127512602428058228295037939379668275770103780964432119366905836875705142333285564891066749758292658501060085340631813557284257272435486059801966598406603090842873778942757488426947354778137449102952233826974131494761745593149376531150820626078095551783878913707183700297830779878576864165971896818918040829475074666894552093721640693615686889653944487328154942966721003549414367853738152228171947984935441143718810975991799741665592188157807219604631900803284905789291136312331944982321943353325874559531724707428069276273750473527254039440033954395261758703424189989555287790007333700482325066229888084791158751080896938902239754782914712431766331787199972853387535400075381014855488740991448291592320798859129433404113257319973267690601630851598576718367018517285645598646706440150897531310971749565807169661121590509461876019184949488138027141906448372987730019303835164776861374008306682700823770030531709294216812282845055971023071585425652788155672238509400611037659224943712267185968256720869422829740781845271340569640248800423599198043990493737138904690718834714493049936582815279311283774146204539150549204222906376938198289804416695993592027127403125591759740572737102790123353438917538678076892108684971257112295231468407003336464723728767521261674486528466389115240388791858468687160948965261578779618093942823530067349822911472861833726057680064486592614573852020314337780441536671790129042346600775609860858847595701045318096777248897576936707188434143610056444264742290426985069905770268673395655474875601493720933016691233137072298282816912835031634282049339660577872232691380856230594773953421363108827523392573705829146278011674973351394544050194339078981967118378275559398012100690389357596449387485144726134149574801163074811101833234453039400313173728791498682188350821853693085721344019725311070916471844627213494953520465018636724759526375161696974695877942173820589162752263514949449643457227442686904423316461187923107815796668421976598001170948570761974983852831338955631852420106382150775027918492677894594307945525217713159343586528610565958432181047493378916785954679206669923231173627585638812897858334537008900232667880834382506518847611748363758187430971818773955437032031970710200450154460506811774051190912782228138156047409610552802487331490954329412937934882878398922100059664657739023606815356781562749528851888342836925081172573793290614622970204505584195687900685437334044652987787688242501717748995748477262754579398796831149404241608525850775870520784381176843066842814583743601345123701436078240432736872460371270463250044842356078699236069109517836701489251354470516949040316881349560266189541418287066468109682536449964032194701711039322381793890601952528573996766559399470016356101572503091310459143015903892363647879314870381484437790845118940986202387617794384794918096756450089314431493733821598923334829469223402379203024614375660285441264437680371070353706501355888339582330910153247649427139797596743341896149340507105764128992415262857115459119684773536059930266847647741156592514756838993764438979309096168106603682320415278592366865754329448546533132977889118899155806268026836407661571978850210271864980085054550619486903892210785415269611769442044433753232527182324154050440285534965068291170692545774169477296808409196714552197274466829418373171144564137760680492895647441396905767101327815416903661079196041021654322618756106317329923646819486071458624056795422543554357081619261188038235840056187708691409110989287349790426360916084999704920926192163646298760318291477551592502644712621881928752744983984275737126013279089972715604102982230749457355398585031875079621786677213363608393055560143657501335983088585395400268017112898713167476441600149706046986013422681585025797680319864445333215183175733663176799410215824471821814344945154502850174431087232568618795896789076740377670415913225257001418429909287751848414354133318796691157582955547158033658003156811431257211013604971039459470565325499115457751390969883953205476560369628779906952565019851360379675128053056985185759377621753358780233930403532836534632555334266303769580617120983921966991659318270282870816192154188357664131836469835933315923325986806737746733073226484860246493980080485760103973535768700186254491961639732811291414405113751456470719054092364023221841181707855309725557048374489850361652821642756733938070740473063552547463136881567237598969201165392005747199787455225430018059335205721807743621838313192008171968931299609910711192452457267351028577594276949117125364831485083332907866711380958244781756262296846751778132031233252032548302133304315248649979653769660758719472375102395748931022900469456822627271070549293420510270345975819347880023360129356707465545465430986258887655414171052109898244138477880724081884609040004643010885434115588718591660366150695081920833494890481511479476908119449598863988289962519809623388754442907798650091891358990179832977699809500685003185654421043216955996652863335129520745191511442128956494704519628007431321788192689276866088566606003507385395425251412451016905778752656069696249871344886904200073310404758968521050464128799422746483153161092394452630798197276929638551755181182837145843212978340617522848524227638091444526881084182648045036730349314949770695626969002677660347865842112889303479077800846435626073542775680261976336115160375250148061282124825752073069140743299662770506809721408439971633706115429364459593740424433617386057431455526811076075601921027611554668728072030618950907103496965021735973052500243697212394254281082835863917695628957942752942522450142419300785419273054012909720625509447048572329596854699412956404957115916854291635427582588009503897074314497248942731839181417632276568358091601312815639968522652087107941968641531517428706739398528510276890874768814558756885700365368292622131155741783087270453632514158941620634346246855549195866707907248287434289494697496140801337426205820837710161287105899628402875962903737214802982289354844260945641742034281243464755597593021615456622344930439078557305258444466540654523661548360858877680307852607629055053390212496738886519540997408237791987534861116185384586808410297034100838906666906437634785158992592560249057311231083729965295224198488248159632126605338884655652345500077675829350415635408225292254856988787311905013164248516368422395195412118363715301322274830662129016951175316106179284203406058098230476207182744859089609665403616080573159430431037889315397061378854041969263457824172389752345979830485529628384707836941431880401558344430892580674389736843663339657977890031379981437189662461442016927467188462477962961486777723136015561646637000262749756673053482203074383726949070923218705478300016278274194388468943307356797480462293386237566073743514180786411133725049250755181930336019064582230878732201854375648276249930163136059196535664412740726791149660526225130098327530939350512758520227644349185555408424908268353723955253990708603098277679153538653551102819341045215361529867209559226738886574174345378114982463587336748232157633139755745474970493944727123064873496930873790988103689347936545803448483306989803359318180596499171722527038217265201274346115310670364291801164699873094342600618730944968257579395531693376240009428182743945274818879489385362023854875299976122623709355949948027965770261420189402500349547714860318528530002258644244205536843099464639002232422892386268302402810107553282302236953248030676537023533935533686282360425354514374611917534052722521181187894416787154397469195022142671326990736766818175018983861303810437588995644589152067656747187170295557172192333290577220563826959118951820883331395934532639493374966749543998902326876394193704717062674859176949112267720053509011423469151763856365190236536918823142355438537769317518738961445967381803955587480870840212826066043181490333447476480656764656254659285883150329625913273923725294858803307234647724634137138489868360023837451803074314670190993328404215679701093254649810922828140556908684191614251057737676653274926533218923144320784697631915308782727758209229032402971663798208004105671307071478660016722339798006296037206848104753730100489042373139593382727111828431058258423610137422010939739000114568253935144081275734243154147837878759026265484727106334884325580937814590730425558784083947371997873447095569890008601066824892724197143055541415510730109821287680856421860655343009620707997918857380408950340447202044993995042183526966628563815687059920079538633326657471401892009568104255191137224834198668532224035347342674720329977063277059820995955373862320999825687768475444523718446182340063237625854958952211893548701212074292210254285208045866430991395336664138977548445775695820283538736486606945372625862795650391173881650866910810321488188615041826000346565170965669831096437600753745600387493733275608707719792448601630380495741616366828465256058507459286908230458466639451473622695777109283979928278781771014979051201128037331997969904596391187281261993652146820122470848007276019938381555770204422043374376324643125531664711335757818320861638758909077182432159183556353066707873645387288878203668726671786819910291391998660720130200820323589371043514132530089717079907347878694107067135911946569771943702167882914308668910958634267362972352168807556393880394955361556228567403345225322054101819356587192510501863826379391792523819771157034471869544602845134802186860699305489537234542912720132194779733850354878239801071625281572126198000647976265221527746913334630706566010034979183015797192607809283107823865407226464528599992108058875899298483430563615284528951963539937290366748026001580260784367288122714110083344253436981919691210214462887508438814895826543573002803496171437555937311863092173955840812129718196211892481123511376622077324162109769122936573661584329045127535496661247028674722293255606948571672986147874349398260286044566011088021045043555000748519283495395582435642711444287342901801577036473085501409991900072179177562266728337318802016532256340154160316174622838650633049434499140078923669795941462127864405299524594476455421275651049608021497390976426870859028969158501242842317914332860447551988079906127856291258673040205127949273064013150112617919340701609801712432759420809784302629972400785444515733747145783110707130522687719652633422404372937172277667552342502311938805988611381659805807156779438783830590330640950442369613758122461261117425149377658261229569749090920481200695378228956811471099194645520471452657360382183811144765677876364663192855386413246572884795867131135798076546274508794540565225085399347347224575900603190469808102840252785483500691548233387933668176339208717336680611347549629922411630043496719696811806997580524059060723531387888421036367409674669731619427735252040482994959273422449891206298025360000352350320135937679806526968835410289706918161114042809404298698413347253394573399445792278448721158846017526140965076758278221488449428413597959337825912114430534775594423401788487972255800940441251068132220215010896527996472071650391976073506627057063694848857038618906195406651567801927682719493903323746266011414423003852604270484410831725345520988522373457047992018813582558646819215568766365926170599728928804660072502134563107795392910987481467869742340092303710987857892207984914462981616683963401468071166288035833369514568751652983780919578029356428017114198993020118754372654528174626354950349664479919765084454968443483194464863288132214901178501177288435730365098133592628827941244263596289500391793709992443674730484293693473070540223538352197942076983100494248722472017058922680934922877718472827483278812796680074250653597736717097367124021651974262609742512122797096867425033349627412064393914254117933002223054272078822139742701369967166810549289880237419567401271201998664641511936105551019308138972835062252169328718050697284906190395981978899386689100292759875780318466819217329236981005426541906775759834725840103685633158257801462647257422002194268325937474453937131618489873630517427770301559336520891800544640996052117580269774865836188116102688239801896105419178388247486062411672494362138881212213215068089781874546000207115009150589055122472652373844255554075820450405367183098149743326568844110999528046123914300792789144215620761889674593733145192308907363814039729875485279048732077038845395394548604271224304781727815346965123224823567058925210109063531264188883942482444913479283943734174641597918533300084304328154906079382141611098665773555935979424404929670880251441754312116524984739941161543428913104679700360833084823481838950189224741559693555190016311874128371403270463453792166431315165284326214818028355929798911513923575724645769383124356447326463104335581191142810451826676362888563490481984758828407434828109776711552360884570299391942414232582573338785715381413094051254081981142913106221594767360456125488774675498572536569897084673158506912118585655277769395522366476740054375689017173301709516972958424058060122472864320784272872631949218333618659179042701573832188827807703631466268476780711870851272830380016610429747995907313982140358754523566516036427867006781372803509396673746960362554214572567645675795001631442899347161376285462704001194338153984384340981770718873187674351020105937798608734869839026248199621293808698213125928278574227180501169351895838687821166639677292604987794240763634439180362157552133441226973495181520083863182690362951391854573433622055097952035347545171024830693536464597306174770632993977672988622242747322894679471707173191537403476857168118040709337149866656767070419856393355845093142566238783479620574802503809567347734900485942180455215172915541083148803843095616731137599842940571550981372210292280718786686633123579186195923639588135999458605463687129149987782916678173449221171229164840377749645290674718082214042785179198861837174342569941117083583475156201790300368472798904129677013747640390004084628526054057864916111736109120605360650164527104744737270585363578020017715555229817658522124985521931335214728004923662720442755271437841901745428140673903693747577798340836770601690909587855490609010631224436939529363403605082239383565184819411190828835681230086956887936902962725734674471266040498865713701732134541317577383791117936256077123666466014954311478799938276814870931444444785190928489509675689244342717265944552659919396425524204388309085658405371655902859128974277000418218120571471207451844944703280658334796459982163470073221146801394487733290646485713695446472053660196554786262139734835177574238971455071665816580906503687728512573199455841434586049397567942842100170958356688804207413558889788867107604428630193611035324244276556491246427404032827527501940194114207550528714221524747001358119846041087696816310499968549208049875728604087508561337214241305045144284919354384100480491188287382723208368167072660718242275180856407352980980707692099891441716363166984306950639750089033815710469681714444163702538057565336252523390926351993251017134271129123539134146379325208620329758660423158613366251832079438548687956177426784257218843181594797118909996138199998184182355446184243224645751961522038928816273092822253541110023324131863690782365296106585057288993305481485942669657936096884050554411826792755491356504602974884675245904457344138202346780956434875314542718764131128327756196863892234597730573399423987549927874722196630506919363415614420848788248192006775688772517510678897163030395713029424254510863464417599740299747123899480708242399630433176913269368515783139808685386487919773806596821168276558167986749698319931840266670645550009155230707403601418670006554496905963539275290475386591873838913667182359519886736688762395890156657868191519008155213243885981728008707513345397783509827366309401251813260125730467438197080838352813494000102678365457689986420985189515729882840428654080975508040878143840875394569312836873411654564122874539212449721747503529818778391651698143237139063152154227031131807298629141447486479098846642077518136745351819681114155682839346805089507610123906876140050493794441354531072214619938214484969983736037694653364892282100025262064640028924714064281863436192743073904274848265578751198746077975954117217063907290034961622026919331100509562364800871810869200396331475884969815508660648398540587145813210614921763908604925336318969011373321594513466216658274123802171375825623818468357670612955456257656853781893402875045018161862337974589492669085820995167833252509506344981430221645669189431025947161558281472433684976597645836800329406212060555669741250587507356174623496661216798959510445981254217914395507289346409083717225774064000845435055828498475124325786503867328040878506978379713846957273646702034381780503584263897510797849397762783067374931629921739788305750919507859427641140875960874515913452044839969024710039207829011390421484670486170710560372301778292366474800954280017757071901627954328072226597387362802142770940050351298998106802951885278851730101222804706263852997156372010928519153893866519449204788680524528884551956302965088082741250731149743742588416663583431001328756739625764945733209780436316780874816603620057984477835037178734940128743832674151880862719125677223556960532396027540614644526180210744515963836145188261715643665549280813813694875903034308143671291809392275450955619841663389328297475230855413489082721935065353972174852583250206169294854048486250591879265661822327702104587748852363468722527376141259820198417980841257929436965725481774626855468298390962924978543954483629117991454975143793508149449006840107245607158799292635841754519849455128041368230104551992144281986006331334430073776171777628876591184808298901513962754783623684399000522425707100661488372812321330222952339106768405330938811309201175315789427501009450623926695841231785193064275218133983801386942638122025783420488476681760891642242483201707340887953859564261843894117868369501604123994746513535980004997560144398588663469274585661602729941868792080004815927931255430140964002210387938509920142760714421044671368293537184549938362219381789457782653895568141173798357914246093451565988820859597197673442666617951030123036516326317769982255839577732241312157871980970586994077831491267339384326030183144610496183658329235130012341294192274551218187118303914245528101349726179044069975053920175290634019533406638324435792505567960490451532496513620320732027300149894868590870674885863940381968957082075069297637995862928508741975247718537982234996396879286919031357744471216379919971319958132192927839080517776166328804360429347494393392154150453672047131821475964872945659303910469109143813849614039357690205608315066991520439047195640731933029390109057488911267580011683173302618098699576551306720580823702760480573781153252732927891509189518970572528013489006259815852636530170097798976537878050602698086211532734922753142931906358998380909509458416891412103823653921651072047920746749995101834767640703163587042686736421978659891624571391802417374696880684477313201761421240976463292932283177257747798633133140574440043340735855511193312254683049109379468980968802743032783060407202790348315657038694382679182920410871292818654612453697988688911291985362022631808458773138568010457183888200738023761822296492816848725765981890464805720308583034307063687935219047447844921567687245100769679226697790445048479409170984822562562317130991786942315137426999730528152595466937375738941283135375212080545365708241043827538580541350828196634100590652575478101923703177510455563588344280141054439825180588781412578021158207105257341951331698453439549182344391136198613129224794728700912424941194528014329977167978069108630529248688705092818326278357756865226618440331330895258852870269381763124844087240410113672965503164260215400677554058642120466777311628233749174415419241230143423891006124663353191390228627829428506334201217513837668741148931565158021066261800023689871217840355584651768450674671926498511046751546727221710521316879906823479469951011179055314995420277844611879166683233790995715185288423367356157787468129716648023275923647758861067576389628600697322063934176869685425242132550417753928047928990370254719481467901716773271731837886547756011885646458232709301816230605467929225302178507134379991431019067329712273419644930415629452184424217392585416635642741717090846202541818142844313808106037080767115802262992106616552834703386463079103424962910666173947116683556219062532062779020675188020711565852957353244893225368912479784638838409170063626117346396308231896555978469662449307143868748298513958456534592124472230005377853021523103651850473061313325117193735801616007983656482875151362736362601445706697782847578089934796444283577302882621753194749739505655015468201345348947836645020783620323656550904281505112734638991343725961969945591005788238549159193609624809437744179651839371805905781789466917712091400803764787674218860570185515673113121724226690654521025616104338865537771998511100420778514833832590497698886022536332345666870926797730285155072063188759868916106389177748805479567005854345070093507064160955116869144722259553257498751014210660753367815618695992172786805301422433072209566268582780530540174715461439678822784033572449463673917157534565333421799704733143335914499715214585547104085951695259024538775149769571858491114786237059789231539051289332553961359392055657251710795064917947021442245140128232747319426902727929831818519026068433711980247160282902501794013290426637079900990866062782342277246804423556539584536098243182128064110642847734484690910580660854985030302874741709565000335873234061983734472264252572760281304337971796713040373603083026141666956507574890500103725638051770132824141608334873016106199889311524724657183872649537488968468484980154226659314780327484519703036905770781655702202634524038109090943209361579575677977831466176643250575890679457321868005028164367613926284564186637191351293135399500271726349692108652880571384931994665394097982724029274634995410159560056216809106385355936081513957544615122306626156113031125285984051418570716878501599475984016366503549858076243573928457055885911054260841722529146965448278952745531391022796077184670639129408602958983654644026495621831391928724769067929386795415151893919280229342726380425742056763739347582541773493208726134372491354669911088014199868492153344700957162075958420974214547030783474120102396499229320363088343784021788688882364231553903343948082290834543997410734775373446907729695688046166653161961304592838817453248300036823332363436095724428220678972742537051471496618214415080589875822310371064783056405113366827748494476916201338111238124835693402241551537204023411347422106115480784504516084398057766758848170498564199620509428716735510109605912626379069036799772065882414240153371770513647697061078539421906595406502592866942551884260845647085733654774734924148408847481019307158697046596289681778303581938082617412773291013342513799899480594121288284527930457725346226397001488515480262843694454835730129751182449812181154280935888033848138011525337478073070490120551732487184821590305094962692189178441105137562712480720548991049796871297404463168117161992547073871026076597537509872999758831027551353332174068896504128770380948406301448231936962887521893532651860335296223214118016307507274635226466999709719717169740148166158573693836725420385821390672789485488275140112625546684667634474403606510110306404528211122854197963020342796189984713875001832265507509688856510841566379568792517944891710867218858013258330820146349139452814225359870758427686364168409824469078881088337108090932496339314570768560408510763399245859239761950170249073249629446500317280671836729007572300190729558028468742601352606691672187884203844409185036024293320276978614833787996964872915256514449755309150428118421771022864533300241035613170396655583076740729900363123906806331147167330098458885150054690461698376780217441064888801663621564016635052899781141777545334619710992967335778667791827570474008966717909458153416682937706477411111708915426797501611280453549373018975831832038720629362611317756731829351030480365782662072508747925985114707275510521166514730611016242949352886159106628224805715687457782803773208437672612261400188595448633118436072796515447922080954047664163644419133698533083536722088439919235296227065371305493675117338710419776962024794193171128789432701682647301604480124648302605268499766978931898354908420854177343579485587553874160903303509674123635883755546641230143050231475396013955955129085671003163573223684700128713175604735012871975986246193500426822517641064536552175908312650600889333831115018529317613834860302870450675431278894837026603507890370745752709331792589840183642849101413791252102790859253464648972751580283283036363851531774562662918773579201369258276878522760170209046952261325360839598748735999118976540222059226716721982272879513804127069103725549935411651948813984412801854904777659007077348517871669214150296274615972507469974663645327492198098879142071547142940115330349041931471647485153378814412357500244801630252600978882795432979974344396897065878961580160836036961644289146143268963969503667601539511132199399685991670690225942045079239888907968047823057787706274849752635555785717234486645668443831379843489685836078897739033100858335160787828139015366766322114083708430410015616101034225850680254729366236338693598630927618286963367752511049837712210588580325378776382978208224845715064160804314470033881427663871299516411831371765069212055983710338746092540270756305255588616516044706139920700405613624224301722449430801280477288922882903043070042033747279014147831131702394754275748626438904515849627817247319098148598885368486492774224249505911873580922309289289361527916538551025591477072626428854717533204143930546191576928347508811650059661543531300548717346752688515597128762247057284931087964713428363952489713807746334915024893257386588033843358956019300213347415520707809330702910069552991923505809707197299236176777931183756615450997553917806325242481040723289005988112409962071299705844977091528536512469848057984135207847697285761595778253382022249927808092858999280301293751647906383167539109820818946345900844770242545415845642870758428385159642680610858916198569329564488522648688143581650836858503745156665661785161090948706477462394620368334633097677641331168743769838585738262155122138617196478915739261136598906706569515349910185642558630899509605419709319626567325165035307683831639073853304477368502992808661522827566378488630482689232184388287634230311974325180904516714556495349258158633214868488383612761681296909092195808869933236513867342542825579377287356745852594287352713875374138337993745956343148332336839186398535796943365595631722832983869495156746422713113035368135970923506147908714695706928444113193268826176484206279657048474649134746104342641441065449616443393642441359315271009738339940918039119175264396805865172466356350686407693567640592618315050604032760192039081443678486437372204171735333487550662231090043990884607838735719578832521359463201491903173362268746322449539860617918992548213267057620100949737002558125295741243745226658146675507443580869564231603462461615093879455723860864799344731424058973276302197548372501413064183442330217697014090868668265821199627244149653129648985134382857633502169584956158021804674932202648055933210645195169725244253515508932654388996760219178942743432188299679917794999489506430433384046159894627017629299011412218138432165131162839862876331712486768566552064588656272722668224033883448004135369431417155218206147580991399794357996278928390911983839166863814363857671531523441743125355847227140081541304181642138526315490648052879529125781491942127158108673150304286872978661232027148224367228476238685183295661248263919698467733644505211587523509060905906340240216385430905814346445050852758385135295022788428132896960007427166942864720154689113975763134532374645151995807855998479116740175488963866165216817761031724524250695584913850228993427482706728704328201801478679887121381728513696164662918027206491252513851561559988661336946503738419583958157434764685126669891903849183459302451837467762020444624681336965694603421106982317604328826182168993017446235674911827023440204591564175215455467772578084708863016598768698057713311476114712515901836457736510393407472525377066116595299456589702290808952228757464809398836511683308369147478126475166338121847284663074230872683117389295176561470775660587413180128179561320591453850446547110992807182384625606607253489530042544000481087903714605630994406019778219390794479442683588229472653930718916385710343872389824565859071567489798637621350612757905886495820820204574569426139995508093695189036784682108329201040809191927762174720419045833586757269492271913694746360425454112595944078987353264659180394289186086903506781635527557108221583403836496312396626238575515560383807728531409370675827644200709028324291509693062078830668042480930441451511586035124666912052258534268096868362792486077323235446376452303953125603379198140449402706253560500509703695339528819319425613133975135554547606550960255537247850429442750581487160911677412176747153618024433954377069720535627367365183463025127606926248698241273929127467752623616304345724862823804691493204413131610249268971314220393735981937095156005490279234493605700023875325642859406493455012086805388904754797733962672078508513142812128702723053455313939320482918664404448954637772720213461000983997665730686594571981834936705691189333030289529263275522809991066900296214272094836449160109344779859171776742114282179973032590981981216206197017545577013703473210450784564590066606369727486780662334448115388478106268181286056137118370327323596480595615919332928993983517688964904323479541686447008197201476543971291758313555172276696811436481422639442289802899869519770039400791941667631054781397176318684165155845355394932528371460585591023372944260477145822457409408392474935665462627064110030740899258910951961050713351847696406011415293066144856194444355425242631945398144687352705011712501304043437275823393917408349518557104631831619935654617206502037661658448217312113468966002484538457924949244029561654959023587697959685068459370686769696295589288128602898333472219754862539100149084238645996452869763758225071416806099443356171596109306472467056133612331719772373370621925668675385705779255613452130767818951386805120196398361587073843710851309940991149926159068125334791017554878141064555531462732212803100176648061123134576276939695158993498545490735219702247766571050963023780267082958499608747366539521975096558382242952034642545717973893291318484946071435198538625610551410660845721268150596002352811546371012520105666161955249775987879791749061709221817945437125608439196243008996363337089172696593579818518577576808080120015143344367708358766886647182699426164235095599978603839159490289628201671296094592127297391887517407620835233632457050886807872860156382081117181605802322999215890522293583366828244243648771925647878548661480113082951447223074224519723464478012388473262897508660029759509010517248482623544308491825927761271727501676500057381610073906342987485038394538689618015471769789861236272463226426838654832468120922842327556941155921155617895459983374327289471396427941183667047401020573287248763412898384542732047910605273381597533326228390080731686373928517812328173260358214500202124984692760831650344088338882169475858638846515764333346356170753864120149679164416859105119647362062132166445596105793230590836367118375134567988482561583971640660576296081760389190547339480113682359300640473915786839699307119429392483080771525779465920162026596578213098719520218928812442464738783293002260938443849275397344833205640228600020593802990192340478982961314804768606249354102836697430263971853472531108190642652016414227841825664941339100730961824853563030604887075182949280146911591564855019394110639665836573441943987809400644253447681992118502926052166916183955141246866659265815281745236854810697030270922334531962229786690789111611815689338125500115388254614471707313862676150701126026616944647397500427430309853641100089643875074615330009334852610475466110575805850261032740947946889960670156900642373364481749504821561193274553602999168221645559421515329190411644247940870815406092241915650099872786461136965402121066464844892806984148671754060722294011004514478475813945719006168392050373736681146625740058792278550217489177456290590359184982922277090557715732755048701011850587017120681837038911610236145013760115299332569046264767806442251379794059410185714032315744293255544775391160775959434790878581974076136341131227851759944366012755640125766754723021254286309622463237381689014737444736653177051670894195054140790282525744605491027454722717634166118234773453689850179592260762612773111954637957632442728433299365133506543157825294329342304140167109250200056666719269377583505925995918458429403806705414956537872145007423214558996124712616582995466279921425318177589625849631735869155840162783276310765975120560853739690382731524725844100284306279400941711187982394955106098919902550132194164238961557983811255978462434324793804020448634636066063964003555460258163008779121833658415082764215899415198583454377862402581289227377687931699255311098695160367650933170341041477653698672319820828156371077780918611508027638303763011209634641438130672039785513069161253708240328686543203673494612253189634788506623471819489984187967437254259579368246336410299311133327959595808194911022564047123750318809641976268813963672295879657340454971385957446168722224046425401509026110706011657751817990814566247357565158500141291241920985093324267531411027504840484262602398588718203412562083887373544879714953825532672649942685897987770992191096415465484835780011197587223794360058366245349967423616808585494130348688100572051499657804180395217199810141919016337873436800844814236617323253475466088764340398945200901214775662837711393570484136597807049677589829185962194278949407781224438623724731871381265517103510104113578102191853034231284796786842381987875769813782292369102462830708126838342796831815087213546211564269641068543480687412453855430079949425888082418771064651508811234133077896320695115617540764473435073589551930676333677964651395129838055494578089842026807089790337202210726234510056355966164090333130138843053920409861205721652992152906414278858969534880222024891017988776958567162881329362623665521897884640239373826318581542871987927133342927366931401026228976827498829281386213261827236992433513807213275575093829228096213502832367216844111545332518421889565564378990330293864287533744818272261566248398019902717191938781880852353269470174970559140421438006662603260323101341461354649304928142349299371822934167148477860774201440043582471070282724567261432698218513028206104045882558080732013680904581898104800361198351683937329839300181275497299041544844031247598051194621689397252668712230047519531969728358386063287682828681929483382092569761021710927312817124813234525722108049461125926252088603105794787668858295259798583182389596838122150972401901243236082216562425434705036213387072221842346704215711208245752668344774006074996328013141530432128649537170133636579498801467011181487939201592113622359502691940805035094867087579463471892211310169176846109919058796701144991267816056178059147960950931001306640117297401344487821405292103080850128953333752017574514659608435602452914276741844660930634725807064937938223262826218496019856153754169385144769246198751174927969003101467158180936374974738960276342881362251852997014657730912064747342380152269216040053307099511143914362733593293407503403334599850320873264712582411452734515914854590090570384616659783022363823037528454702980995733516417286552551607241340510927118337973136470570652421674126800099934761986335423097135623681478961785697380598390426825114333279695845150470652703327471043276549968251714234323288245458011994981186297606569804104874462508019376349642492942468933429103728946902965817833110843832882146356402676194971521485221525180052874587032192000378187079802264015274024055794949994764452521475051165412567784813390828384481795252137246621632077987877274654701082644816408893415931395701334698965424671806413782102618589540177673313678551894502200953631985768565855699642009458598346643999920452996837151519238703026580037812068508811729693861992262100259094638223826993502872505558166341094187012628957245016786381397077526843158905073429529924081256004445722599037269055237825508881030470074561313017535871919025106087129807218593554918032279792295641566389244086972107733490285951705942951661389462177339249373919078462931716859829947184155343983917240901012472338867163336734916062875056646563446184586938305438200787462174712295029239347125579786595009065247159521344361405125886996873829065403300473164676357446258232570040650591004310448331160563891775327637526262732359343719823261837235102014334160579443275298732629357475866228469688364389555216578416781148182854006507125514625097800708060858009662546587074011788769481972078577089271216556883825514620965719125680854694181874301188303025786482720999635641650458497158463010569859963754412681341208825121694580483159552734955795003200051446721041916404198330750241240715476705224817927159826060890321331905338720611929419284291331592013877403575088494095124292523797059405181755415855213647540237480674600334710506777140288812638709052685901169479663340283574782199778331226083619777618241480837124159027264420172044393107082980976914675973712673663830982483534146553303338796927180278772055198050665786588833426339877963516244272540840869116604977749061121316259830393303449023852721146028074608651400801115332943206566845783402166934289329640663908459124706190934420716200142715963838853301148599910312399205092637380848976861688610909084279678269720158256872821664323327498129592778304998342364133883380801063568797045980491720892530727917050298933287375599475506711416742871815308361889615781996385630660429107054002166377561659280225514345565575038116170827216510218127459160247987403332808571465817990848360248464773023836801887563518313573979124600608650646924172537462511139495586085725687179610058025271558311927516474053214378237753896948319777069738669819893073215108457238432405312361621517789243256745105423796379678689511398391779400340525888598310751298891438664993575976158556355773160220112748884277368612629547599294566816180710942349702829690793461009420526414999791811482732110750013536269528230568613158944193870932853510399907367435123935071279355122380245638892024708206790600225276416065634113866795005931384832911584718519325689087902753846314912173152900796946033607033582243684826697679119945381385639668177756107915743897307750527898198124754136505987669195505430204056674948305467182553437346678389767378919496756960496561326909283445254020937855050747767103404511820629245844252005360901550802796659772737119032369598540934435184869763860295577802206968330852297740243060806334443719739121809023437303499163456455354424715399328225968754884724025164405277555053244132792103350616579597704887085031891846742183140043017950453242722314508253166194920847392348413083474921400875165099678299354870736269591575142079604632028797912711013607627422688013316893076876952838406394077411098856769813454995780787839716035163237272006199201709101090821355711502960707504788491675590200607319106266665981482210244732866374558124650500607248257648178995886625792873624528456187893330529088487397105858654284622305186887788563075614799378512505666670040603660076759264124093259270740011613328856655123492703503314554621974850288297475298903232046623132146990892392196032074972238207543735340695429412922714973171437498361855473428751216587027052071589036901198730872570093842630662113518779997399820845668320845730539575568610399182346009132852600025920282940992854394190732969210259512402839782640829062760626866123210128989765217647177287193065969531217870224256512158944047390286908592011168009106021494325153929913718081359649185659210439772035846188472966546756153142803402409968464837675185316047863999749457907940680505024222507552829019195703295566304161007649582505948918849526396329643873642331529754944606056517618749832226089712871564031045487102264636342321198925048372656171654141991030657860270111753092250405499569644383446490479303203956892436195661229356345658998584127903735353092139632872371550445650452471343152671526156835020261000836595700402711500834280615611927464272819339490876817916039949848582349204658542830530676850000422680508509124900347654923891282317046419614996937806592555550531423992497867743105847954047907698904549043979557650627244863744288078016655356167801488094992982580113579992023076722120142513937926947177435116560622929054238170056790420231711650145357466847066498716384508402172683971687390809995585411093462414345743792920293344327160835605478999271982712062384868464431158714055322953372918974825799446788108204340987761780815842025030218436403471138475459961897041473043052853888562646482453889381301820171746389373848462327769264012789821085894362894782003634194152979898080085205952293388026184219366125652539276128649425030860873779071369019800423164900844090330921515233600320764737637994728740910077060468585164972854288632522107818901897853186293345765669775995857610909771924322399838801534165138092961341359611601791553371664767630673332750701043828853989900193786167987853789959190156702911184755686180030917233041066382546415578336015612637893271426960826842647433142103488420083583903798735417607928457609478318136020003636770628938744068448356029030582893408743040656304117957942977272643250760356598594016808975178578833101187225725399898841456421726280807930031504349183117638727298751368787822995367932119145370883902134671995413494216977441194829968377622376731892345753814072745949782254705726352189539159190242557918107674083159539868304852630931851513029033329303167381920962479109920859655627088815498512587391252565097903260491176005318035785478228250210340935545101812065574130157840567641809082766716646919111789894629413675306389559057279637875866029423744986904239747569596859644019264777139622778260371350704385649354399210098360747146231865835115015260919638410506346936194952180954203853290805596537765516696274907875693790632168681884726822497454028890656756620338284950916073231787896995666550853924164371288816948062305022593137303814436694375691022806739039194301863098905111495133311245537697162683205861441591885336122042329292404811242992790553678795938957057783262988287340488890134028213176986506630755752494979319625068984050675646098625733139886333835740555199994853289802355245403834928033490712442922546373327788373388917630366777990595494751941715112045111211113434372857397203895355569202503675535975122319472490108524126022016335374259023204686585231434996523143417730091145219260834251893972555980610088727281254965114628833311252001267732338561891043235187209931932837959874164421418502072834917263555487146146533134368871834524246125010795369499642821976055431077398210542075131487925204721419916107684875440751597245163009102981912656662232390822388117752414429795540975139913414640462408297453079101907526581603516366008481047595979338730489970809679896898629745033715874404272072107864941527671688363623715171573754463724159682804946909464077538940488202758231843475628754117510001293357618012840114007117917409331424295276648836621591732705622363916075450132070953201678067750609419440196234136934600696995109366231387001387273833064862111351243852053076670886350265432809597353189116180813431257841438681630638920746877014709727620914087772567089743164440243136411329421126948007195920816523745834319846914212565311003983353401592435008196584244834461922120493262243617864295220167355118930886266078155934894917633181976448542283276667620603000819415806143752852114010447904821959470660639654545932349452334468856242776401105568687635796454287987058104814385863970440149089028351228952223701471395268003097561749105811598959613805990298998693576943016714760641896256895929466592409574073310376109734655723762792293842488684080872145962641766752392868229772388521681850798686159464335508131742320450681044429580691989940177722929442176182352963853623323045965675201573929636863362592364456386410804881619694685519809651993368463077372795842469983416657633052388626275314146522315002713398027038798620564674975042400423193952039763213640319659829844223768908814578892752633170311674477596576512305281347104008856217691095517923731613088852579536430350612412935849017641367210371678610443739814169706222408799279371209402552597659773377763452937137286137185877985863208479063552330447335813761694307683054095234024292047136910200985781862282473393416635770559598688108343443909632320826924341151868219570572756213633224153976914219149491346275393927775400776467822252215361819806975949138870068542874153198926502865741026499306014410998682228748785265600783901683543042187752973676338685309344217115311403910656827699010130383539347786864365016642714487843939019332819338071537447312873861017738453625146378304241920177486967978472216840319202038585449420738231691160966202188581825718716623691058101650783475477397105873721291118275668494918427085700265221907278780723301091163347648767721176403668348126806071807260731122433006716380621407361062144721275087176838987215517118290663756246058025291859878743641320679788437965942187723188574788596653592207191743025402955071883938473643369856794459726361200215828136472695970566102412077844729898465134140241907458614255674085138499363601290920303421368700849875481998698096993512904298693378690770245392188818843835957499602322723561669667154098611483540657964622858365786601100891863955642044388709998477334070129025632313599318789187258299686463794690034350501684778728896015033151048398117859767844559261745371282464757769287697415670328968395417132387726849451978491051074982799854840829856819537190031818942919986793465164238190007759306415362233579212810400848474367450906463218750826782319162730718858896022638300991597458491414875598410847336182962378495401862885600082663919095610636962079348024300338078144379543175977441578030308186010888518027836627652184968222821149355559664575233746197436634342980514835338045776874855973998810463629138367452632590198577677778766426078484656343298886939776704085296158280842243763028980254214919229961176468306559961126965509612253174104726121123608338617375747484446806657488406673020401604938728589969548885881854077904430088554708469521755576618037740259047829511349303852981700463276376060507741177403089317064754507516006036838937987346406348765052287185270442078252709773335840274927741127083917745556299234395419397761338590516104088603829231786340394950196392642618957049109935357795083360239259508185844541872147135888733755343644109141642923366552187506817440081664047619069103647389184277000529538542126954306527701139019509233428355855321147502665206524963328534224542185215578817793588933401403614650836460917984829745926542505172193312894391595507253180190594071974254210938484004265539366526625128981326777656322722456135213320044123454723214190530137771905145406207063133287728429045717542161049995681795143822172115251629247818514957240721698261748445494585042429353547950179193740038947092842938813449269037018619263102923836876979537430272132715096430266258062377825553916909692729898103276760793293850726057130633507597233504703059682346115907234053103555577960034152603397687721025010223467762138736794329230704325933253669086860562674443214392465093673072605773452709294975913400391315307012512586662615056065759992410482142581489973998461072931334709656627005143160671343999149218125295773723608401614398275745175864088640682559750528655778708855264175496307165533915446488338394814555007111885455671821389407379156222310413212600655673045785114210577668785026716079704987836330968084957994883419473546220456603588455933723036378480191781201741651203010597600618382938278043292120947228203879791326973613776112518831942457470886391093756910370283433340613741607452960442372670851317099114317422074944182326355791419142273800196113929557976704548392477805040413557415280920037628772872176378862138849694422920883840376893664093571711865240045380789275436744938898895814119792636428926956996039137374979353754286761907381407112554282916043472797759330358887748328611802273094305482110222184573296359437742924379270028790312566931792450755561677581516696911514195685010382163875972166243910302103415698731126091722373080254230973399087663845605570981806256331335115495417561366967454819508889912740876897724216558691019642033807901849536794276430270327769367782479254159587569898309381604676196526527789812126811213026357163123783538718287691702283628445083738382292870683721154084522162355080751191520814391074348181148916003931973787724744124759558565717634562374288882325686124624782804729794303299971819917679891937891046937734064288033868437107503756458303650453078890859803625754028594229171520034499383795151548749784285935556275675119062879078670313130097855797683710495381218406395188417254344890272775122585446841881935765629094398231530289294452555937105615018864255551683769303476461799399470467882227672016153354424691294007825990294549331773052650691061134503605849491625347283147381090916809284428556588158898472602728055892529176144861825742497769271951671456931262716304452113989678918751345627711370967087230727103273795705018976955241876035913328691413470072253268798839781732781702810423214428909674095317167273998362224138265690338123204941678846515947289887699196187238841133306961446699065590473198500660368230690883101650962373775747330529103534425878641041482951459442563109357640442360947099190622447561156471264406033941704831736617876825924741297662693643769919755344690612010092919832459988982006969796351153152079512995055983162242716229678680934441842021427923879987112595809181754033309710878874703061604864094269953674484275695154322725006245036639283618390082897508684493304604041662743235214619411153825718392516070363297458040769897637534718943144195481601774387515473666470895415386921434595934439154167535535489656731810209779749349437897587824998846430689699556598690195311892448219180676803579860757522891526876110349372370793915264581536244410461177839879011469473031894824799502982702774972695595901534384074840395070619590046857254030720215849007084238297101667178351546807619274588762218349308102258892049212954478978249390845970727602116290302440596800954873833473629948979409519864895590235063643838824941687790680783610650486351351006147709731288876543306258551286693070522708543891889800132180671152834249936701595206928310145453791451755287029117129709725392122576192534352237310331152578774820982999193051256011185184473688055354348689454215975173291934652378696241925366363383477176292828138811531030638890464133274381829755765762522311906514570041236755576480311812006628459887271419727777398399851053246519938647019448521139823689590168775960495242063912816496119150134363627870129585917969301113064634463978127349923886032392614087377233892311163701072296089185028030027426057355607488177014549490184860322330359774957399073414867822072344545530761934776270094321915744124299609314867450645506611474635507632365095596373239124851605613502637089271269437111078689618401831866042406812208418539229219829331410772610182222697834256652978577494145058200590012622737429165027309826243209031568340401482933660827612939572072202514616741007910073761038580899014886721105372397411462101348738685241952532129198239097576489465354984857561206468734083922284328441017431028894487217169452817602127192928722508502932309654964787992316116677288934909407337418263365605326970942989210779304793430688616784913472127112731064794921028534130305178935139185904585749310107946450278213215127964746222175014263019749674514515015595930615568963055616361053621866268582704519316595057355597935002949684475153867129622484762545680869439137946203565812037284709693651118972544192115942875741077217848470169719872738275825464009115864850666451100273315322185696987603181906764383517431325554106195467551452485588710070608622721101681439691470089451177355682208848337963508517512237805188306386586577434306458761751626556810927193723614891423720792504990598311080407965146983634298536318569277327346473098561574857342473359724831311626827710560805094823519629896609560627326808241144138780690087959886952039977480608775953575367078936863515605000483783670287308842952600067603300795619907683578913160134629769316198805474073431411740763131178502888034369554756968137668263210777636058205050477979130622977887266334761479929488123086043364235658320472076543973270495707188754523788250126826545062556440080722563871436775886181016360981676516620497290219041052869700453743477422693026400472896640704650473489467120574819890203266563346255822812612555210542209212893716827702025638793864005311846645816389334895585727982550226728055982797957353851831818839779133352539438585558757848150834555017015385895252506352831426719021305550376774270100978818142980795177406860030133462888721839013817575299871738238953610621741433927148427355779824204060906587765497319555952589907667288030602358134383950515763200059499193183649399943550509151388521300476803221311600425256754462564514903300168977064540354131664931906593606113924954610724118983571072549149320311681294196526722355741771257881551838217829757729306105480097022734584422841483397093055189450726630300248363440157002405958866109675038573440386616538564298610767044251493383297587011109054365958988469982342369140173378629899784879766690788607513309980176276846747093923034372222750425509020379132228979904558189226593174132194688709521211493020461746878650310924758534700067471469544732257748610005117658028176031974007732815815190869508689846072990051657795899474860776767055609222098221307276787363822549485789621271358665520732017737788509190764027755230531248203991169712816364665610899722089809512700628597418569151742602189416025926184219549963639341917239797922542018409093174232228398038165988899932857921077569425878855042283921972690424657276688710555680517894784298518396023293717114711294235308065532677787669203706725228974531926182575806923626496063280024891369377092354329404640761273044945275736721973185152800981986655263390581569011933394990855847280021614597141173961388949701380082237355801726064531950192957164206510837179561112850007913978501315999134761254642736891771135860714155556077732887418941022374966654072221415926412435149686056848776320295866891355419822140426443675931981021504826200245714301558764082508196603006337819493871341089192081218678379006174309645744035705026174416660824631260325181936927084949020897612902020078619513034233558232746856014253079530444091093761889915996150552665622433391872712816043439864722289421984562695811304351519426175541180045325312223349776393804645282032009837210776055292153662355045929001768101154325494532835708396385371364207627186260290742149132920309704381488835133355746326543704099957477925891808250628923127109700711231465855836569552110415970740486040685785704388542276061897172674237453117290449484781282730945482828648798269691373028757960771415103644170920776658378200127802010917857774500717341152319927813834043808181237268725164474868493113466733581438415562641881508372396500153508807427419569234741925566810869980030890446602385811828872493112608514995123753640267065711894603273862877442019744293212176474343926837542136757859039429995340833863827874986251889204471313291394779017979892996419838943534076394182123963690546470827342710285106772307874049817778608527386531283572114668428160689257305881864757505508002685522875368992656366343084112139479754450443263521463410934302545990799562948100627004381495064736016432908413383307464205113312900722590928793500925541344488317121876453658584906531084845682829231268944654556157303617054428318078121499358494971953937845095306177672526380458506949077366252095889164139848660429716722142810487786118086348453517527493321625518650671475689742332582452393193534349458166066067859225722704428588388730051499726666045417506641381999957072612742550670609204904997984559892476097561539013985136280127709346027347531450684975399824449464618619281368492824466116178620229282945894176078880119355016008285258658969548705980347031970171050518213196105720027360656751310932872667132496157089906548666336126209157009146519224667243724974513857768576810284102126901664088962851308594193111422361260741157628799707779266909347179464950154722122971901986534873924305662508008161642328984754990582602779590817083087698981259913336320680508563326796640437455467720525458731654363356388708675292564714823458045799921666822586122038994372492672423327993867474565340850477165571329970641523596191874725461601334542861782606563070059488363090796287281027580484379848058855713214795377459941579528682055805891781574499811842464085498979258049188293030678525955065963971211269170089306990212522328818497154046889382837972334925886684390952832061549762634538623298518370262058199070628961694336565078596477490523103490536084530879405131548058028724246265086513746340163009416716383982039081060583024906172302206732553779288445740214434536816605189258176436009045558549097743780392023713122724129999446033710622790668621247568642528301968456602595233312241229045945848369664385363426953251680618537305333262118921482996004149435515843358044596056483457053368844261037641960272993177537115589239671038242967195781698464138791267095704714494410000171876379420553259555911287142560455750464710556496411090113351697727099710804958382129316647902167912263091342890146023675151886096074889716326765244971209021085952524505167538003954054411204671173984492934642485564528418535631981742118561518422964115973717502089260577651455591655329519139088895121702512054420879784334367569922894467145182091198416523899550423770678740443477838611593236922348507110222130708195724440274905651838753806741851720125794798861118252457882083801835571787568857922458781988908355053569644516547913511566874978801756159376982978483727373385462072225285239407274491894082531441909261667307634967988968306796608362934321211974592661701687832383782410835328869734132433685524676641552099314216179377635651379289122281073606736645342855125563682381599687377704064541352611641999753439246145422458714543559933146293287730586578884516191138302672923737108010671704556002787848201144153211869834448236947986310547433785142070581043825375488183459614859535415225187553607562854661959503652131418250872579202444354359326578793723844026323147048358712278586340231976601041607835556183592429265903876253070358210094788610064411804755285904689876206728123359030698778128527291982878815886031236341099451108136599117864580574359188475809334824563640934767974726910245841295577438278050366390529500670768989756464416534064372043517944017014569970893737504976213118579542153032203225759853252170248881580494655802442128204656179454807807406718347565733178717379879067269065180442044326117953557787494879725404706471559684055823926528048350729012284513439935047777822948987569163476920770285194031811717623166816536663386931438346182475904468437118531105111908813708688693994602164640841836470593456833244384151381687456818956411575090927836393747741609949637485359371679868455769883662810622345318726112438205624632003015242428677625567815510688186339496132426622740464304066743013246963222231622279106520079860837759108225455527882647361786210089249819654272950846730678305045281285190898136344950369386117724729420056096244361295048402998728633985841595127467683976617719076362989616845869255364212908549915382858990334819791954447577854405705410373062048354819560230322677765206744665391504155034158036354031365773128721444629387621002562304301927188934357163678307599678067595218574019458523620363221266513194387344099392617204734372007748429941472258116690100634453119977708947332041812077668023223515581340095242617716841870933939239858172597037013468331867230910440915912745538925646633879541038253302263825869104294400256377140170908416450106064695521712121916664414736992051774087772381371458020835461969260379924547152012401806901416829126195955160200439581614579087010606845604494869488047522670163969281687038777470300847209173144378455117646668392223142908871467805343484505487265339066427903830310578331588099009085826413397816035724275869854014483950838224151601313907116379121031990614439062850964262105610156417047496688429375706835184598073137650519926327588240385139224081602197403241479077594422626280390033826512960730642438327863316801502001402488078859925136515614814005461728561915580186455077736945616262409215818955890307042109035017385857977482207084784112601626435153541390102441418218666024037669435398097971533996468419940354569326152561882172823468783010752316709303667978702322239721894767442577489579861710312293780889547634335616813733543308148341262201410747382664385343121054705200839901598241143132854650791794192167861216777156584932553315919192695981905449091229215798877740791472680205358897951443657991132263450276256685278963707720511883103001150790541221000621337177315765583725891096601552091795828827726571455698225199351308416001426791377418101621391608349956429059080622902293858955036651228609647571357768576596132803130660548676506058964926156514702926956057769771855851417620593644201500429781891448715736056330168161597796898855757692043420549433570117486755558256272584179626512264940820020409675200450180937334424246773138553462003362672755836727408327800274337265526258401755668774663287047842014416620550298892044351676545585928829805769006975848721167308013229354692917218365886440812567190269560095761448862606972299093174651702781462352868774265121097089136804528686090189673099888125069150943061987587316846105617564248413335010926783615524630592518224617709534780439517038240894693556631113542091371458181977150007935514619219171949040473124349890739345067957109687077985711525374041763111040550160148180406868006380740023762305462812667589201177269872884098135142674450191718999238678136051478716828920440329328296774944708557338591005984978456248763374220611205838981591035699362333103492848429187709508547126445963928462099124661461060849863460068415565817084237771270793074995406944893892248968184180917487907422372115225057747754402181434003425790577830460019285550229031667917968455223056801375386538116090855970415516154423524745154070381884814994642290527445549697615332831800313991231478634037174303920696683418240912867193554600524245147318718148283995987932655838058308620772227161717848929111130201846892356761894011470351026843449133375199665809868688150711977389360327647778541963291126596191551468382816963025213081753820446855856129082136714020362380757724237793431929708913033104892152187056710357188983996386360749700718083029939942547341677423662268448717214512161908086847397023866451523039872814802268866945748016237623844630585334388199592013892201143564444736977867179471623097726479625775144011051769228005029043159236142282657432950509091721391842210332916499118841540837805210801693383280814631631687329095394554672199418488169260923486669930922115856932795754293431582617366810710686643180704448668823416070264535229520031178073961269052070325539018579278177939491166774391745670598776293365800549297739375148304285472919231413907354958390525014677806428496880407576071512465722234730604884336853559150736420095741816796702482184489067616393840301546784303349539084153894869227130430446011201339067220354377874737423165270882475878000541499801447876631490989680603305457642858992653424341598096183395402500839847334075241575204374285837993044901485877808480163422583872043756720351137374764765504608810254716679304923150568428443384893500140139617369066785608650078646904649020875569573220955018405655784901535515502191453884347115086749601790396871818879074746107282124948109714333564273647367824389087305911063803598207706553446716954910613776351725593672907332950764058647890572816653954107603241420754783041929504470731839712151089856400785521183325360866119797883649235314231018303669830367775328389738766849012867884528683442203238280421430616884730619708515504974148658075934524802231562970759709064744664209236079805094169758198654981884395486850787612101576371513033095924061602174576455648317796854716734695585548742185502391986998187665234326645115388775696276690516183769527081308759028089470501458048893621548211470439692275212233823969331036590184933792618004577624829351800209804087589677882278951598813173181630669592182456502909977063096317836580007669835305821163846686443485855241820188125775722606909614853975523506987189048112821439298721526720892538963064803410320243183928918307330505665979813391332323607772721600310730578474605868795934613184799997166334749404873161496444733137987288980466236075818748843718332314981089698962129514298231962018472645000393810059492585800502139949873240532952533145388469232413769265352446359951555874014474149985096695328689514323069923360534562219799798221731211569879638612002917323800671888255801112132519790072218898054245750292041026724443198533421386266854483594525027857427701226985662436472729707819274011216517529559421155993232609135972857773173249661500412416282262424931816597807585629187946975825704253559418449793368223952637777784590327000271288404152631168388220950417935977258970137376236775201593516439879656825205604420778215657103303536769839480498205989164410672052747768262647112059950277512262552787693347272522838106823563483709926840180911094918431338412219712475985789187427498908937946583460524362162750367244055785280099785305976510617078214773457323871718002726823006528354921063467057270474936199866280060613984085964864307606126755442013659099056867721200051313368627831929855816532994910188307666902918182441986362178661684740824028902786162461670677176529542240666547219966911688590737953691762770393371092029758724381959075805366272115375588423329870305072505730179534453585328601784252686254101460503903197678015110414986224645066293211747519223418337321700054539119046961873781253703195515428790283625409605403157727731846047378113314277115154510081087787234599425675178826352213495437835868718633680357407831643237831323583390859524510787692552378011206423839098519098933513096493586338609281662872625356138070553356039076755800776671010646485845317239504599584233618204182743067591489085359870248829759416105669606959435978433112431415983002481148168851567763764199499795789881801546039436290420941272963112153816192336801965300984218630948702682587122605808389038950023868441604005844659940953060909780757785429290986794555228160301724245971294769263328345530145815700061144100952687565175534997408268622399870991701712503547565820586525893854050878765190095788446376331608688169972133577206839910108669396273845867079153290902610702314837503670595556714443307181178067226744013031163675386354836359397252036016804944127237009188585229956830611219830647997403028303995484973536041662475875275379555325196852190762822932071090057597301778036270332914065327483759812565165291665867532220591220358101204994995626586546050441448453983304933587799533526009610486783444388592821596138942761735883783017050654855295310687126568587977706926500826576965869037772371614574010886550589046017191363156317500167488740086085475714881094975649734603614381052083910152091406439195766482228218847018154862683110983068326800036581037230234305551114469373150279493379661700045877370466349233120923100841833483221291836305544122317426126867455469235238902790126596672363801953381553284796753891079661379331121191773178416505984421133785422230110439588896066040484814318923554164775444167217115483091172381704858322674824121841528798497404812470071832159924522278614928074612134268785449605517430974253854981151043850339013495182862074520546683277919592853854885307743761820731180346761113770682694560830240925972810943311799135479375267265625428880509019786890585708024395757533649802315260163197678076871212595656677253393005020484254425603627700076033263845802061542608080214686746006686127411976656756176847294628768901303302278738227304493614073758094608510942503707648233560649429651019322520749076069761457319691682759899341063506744777578834358957772368829766649399170563725147568272566421888002521395536403319878518247131568293625297225823223168794536587072673892533472385901019901642677581124115354403196603308334859665167371399729307814805868034692126615850948726912053986506112251839143773306013726884405062629178262390613826514889462628476206532003981969890072439268044797797352252331107619167136914648331576103040483128346815182342611757329842140125550263314833334238292274932166538769388744111652886916356501818448682670777099352543237231130988604977338204324232269618282445116521311193007511173056176946860137400632890525368695605220382463811276775222672698803398469724850393233467179788108425572055626600413874590696553874992264334179665417985927641049920530445691811754538233426005886277675115231444540190207704928624849741012709584513932788964751980612448894831946608649861023986121086368638327194984604923996477492845119342341572642570457150798540303293887189787979750729665342090102664591393471132272911659841705746790258775467227192942317286794070831797731312571555443968659589830357211179745111382830366790527923017385234367437934374188083909521794991770232633521675392274366563596333004943377835623590868239899852260689424814403784596962667011654343344036430820829428439635998676782211773588425919523285416237669338113444062021328550301430501989144243397582120623761062541222116388372803924276988240861126031892310331554008070883737066433072153310376255503652993166073191132010290520782377054966820512135221821264764061155414046027695917096891930758072250766823516607253295041942119254619426880844380628826780090540636953513973914541216536373809057820108108027573406072115974052595407351898730125692302930471979485663565406475840572370333118923350731376677192157225015967724103685160350728753960130583807952053131501012674359270758605895162953563176296276045966269207253576174274127532170123160630789176753702266524708557045982996515136690199461222974396532544399913860485959403750414061951760420013847992248801775204040045468161217370391357418532564039502300849903181747880585845053915265026835006077475599776712517390574574720321039532494260872452056892319498413712500335673205908617651493565151354230506415291583430168728230231570901375970809092429920105159105250711492390331097279599859557363765209523843219318447866983234414204028026248141128945945230222921053197842476430808440805662859345495965707585340809584810954988078182769985017137237930109645412056260140827515497618410235570854083360737971603620510956214740490578577860117173017455706025470834769828839039529188693639563945562095689326113096003653214447337506981290993128984659631733434817046168334362159824815432599607100092322169447664105866933703087997488128296469701932429850606483087401294191255913876429140626699980527409779234635462238814176785760550951782281283422572253075998498045681009391721362885386773163803414066761026773881628582896898869457418988522163982754962014156529341034752530082446232584565405663075948024269844397155099555201662313588889363500483141531813347269307214791017736390497235899595652371451507059175376071745825591551227332856007390475480233603815445990789546614151762247713372735613104217633304789668244874549719956378449942916504624524742805120499197041829063083349082428588222814528242169279238808809151924442990707346484444007511218523391595407682879029953984439282096221797474003057837763097627012822343826602382171820595871221957730760915158716515820781268324435758555697557128080801140627574306852090834380565778369409238815099063500587868247813366635198018120512307872906863249325468283787028027337567545448165705418995077591788398983192406987831709136992852529196169124734432201124708439546666458718620882070700116960105621370831654575064405179724211118941731412603319717433414748655963268195332670343601625834417795308425517371547445146294504975091900240219005590974340831539950499232282605997477263324838793954380642804297633440125848714445551093109626675618195969353626232892383967767395680679027826231504660214826771519527238356942378098680107717841239166446188437478379200570740709440431438821644437480728839394510736701142673766298730234799050703430065160392353035869727185499198102227893423845789915391836496011505461752783559950427206343928505774860642596914906567897274225632544894197774226840914850120306767665821936398443690658491080483847509906736127478937510006110009541635181581741758415404895616154452960375961902826301397172639690126117678129037094020084717394885980461638747576593958650342567967776893817733232903419099051817391633215328249171202908202398164463379139750377334755489136029355153413435176519940899867911337197938391171256749508043680017349750575538613949886183680055458794882156921788817787563709828710536369502178395037762347288587607928732109273992018349315034111127068938637032518806154435062901760253794496899810412696904953658690233121186391593950627545715324517017936659829626065554071936481459251934909072083321239076873290304621414468626582214474555744253814327649662556512943051204174694439849252843743512143230828325672170036992474395104237427535280299368933013281816979334334963723766399991982452324795307006911982230655953273672241378395500076175621748999619200107801103809226337013955982986848082496580366061844314305552712052068829459348599450301343614233021149070386937118743099260798203987622166995175178905646011638922580106930593871630026329475244292318186931422427572039533453611580554806255199482836298396581125615128374433454763422774385854909673162908301301512993785706489720568080733567034459869061947447613122801004816134817315497577030265370230132224380353998151566882261968201997577699342329523922822346313291712092017434119813146276209906297699020234020208674872479744761151717608095356962119514654710549066634645133894608800223043686313925776634035389165449388629759783358157048105740249742315991677639518270508717360222866768183998615495964886369041504121404582728196132189773426525728767877943036833739436661065133495061459087272118304583069405244687137122900735374312413418632065039409721735837039581786318545863335322514666648450377165897484184452702783261117781395247411708467678436247467514396625715059200075424760509647185702368564791723030803319985952724811978502660744757997571255711698692654188564276135352325476940285292253822280522739162244775686743956737747816543632245512375985769931807496652062616271282933197094711655059889303968822769207739770885614518544906264412003124812704061377894661690739134009658495246973033841943184220278934020678120624234582939251557226263704921024716460735323677790774963828332409076326349922622967795063793842614702550449332436869875244862686823311412424453375452085476389665307358692891524625152518010055124557457157517696650703027190479798366535961077232113555658570976170861605847283128588526790349728120847875277775817607145969484230208226560521661934656558826057357581278813488364725805436920676702594998226998294241149929645344324865257631965226112798072912263144604536432720285282126711650650058537106359729259546966772194017582074634738277600532189222919164756169864144890990536133218062095735518389390706795119802895395289421613400147400975718185166714997244085904352861375320605785092991463055903923038856031059701138155732666301918039717870544000909105794106683494622479016229898447782560806358053140895124709751835326828215886815992805062480284128723517435087570720020848911827266480742433448973788541038495348923799415649307828166137397275291484760210889303142749069399322512683172328382333077862061841878051471539609618403037879577454277047412867398028741596052000071645443721377093780407999691500729410227062540560928043526288295160912098477487751059784268730970347464601261920026913625604117963874891251065092161426865450864348588674972179746186455421660421600793340829096645362625569809690181004606478735487443385666220020247465451017409110932709042039147389600951891814389523750436824090692288529556155430333277127070541714522285192260307478457227578377200302347552321889866576975997674471946190572056818824616529958630525086228467714723830674234647780510298858804990169689939999294978525241620718423267785899903973194295674355829709929043412914913478812193166792467532328200809014136778775953371545093497980673218044613107636884895885578728328651821291749072190514904135821563069251737875786629095835448169654017993307109400852902153247166586288571174841141277422721040949796074604729828478110776234273571361709820921120876399870069562682213305856721572897329948098062097906009803975061953951629465567198970648572532998170932915836066317378357686431506610160361598050618448063867234796071651074320995183988078681002906761605465078756225042483965168535011395649536055106775768195625190830141869931315438717769103551194180020243867655720065403116366733436236402889922467316795110402101663448063383835680001918386704202745952946906485862220401645120339724218680203248995432730531161715548766458985495234398075114906732262217983306514501005218162191067151325224343996648636101738662756840958060130008881517564322497494806793327949460147282039789311761594673195614245530439065012449310346234812808883484300256781682517023310247806299407974453209932671128087008657618429647719905489196764554284670048327544726401677167154384478222690330805084985224901432687743044172957164384714336518467050189292232041156169805507540842071782704391257418733496130864147538396990367720016921227795100320875245690252401222404357422975373157116728664054532913196389252273453100735267590972205149975328801452602045332117512256550662299235967841296518906621196433748230373543342214974761758951912849754182402776358224190274300070153673903382432959521444152210089943484603844938913679065681546174124900973535365089741149322688915030592184788160627504768682723921746948706857124480840265516250126692642871797122591453277989155160175548293166710865401578556696114169932681850712332869478564771095429697954713276963231854072917247778070989429487277454151020262291540445991097644169942201420236299849782624913728819634534947854105061068960454442357756932098159011511634104750043800069496807590112781666613806305730454079646263197864333083013946343368376510686853108878967445431568945770320038613734232802063746613203160683072188984759888305032112722936448516273961863604482867225217141127671585373564354813262415529907680255846260214228242795364166587591747687997306453949608389548053220222676899931322561690809242977549874141558034915746858951633621569356188627201031106954553962187430537598853671041527516782778201723431983346694438939261720992357274398417735210612151914841006059760839233196444558075848323992925933955639392699336881997990085321707414560997496564453627995891071104159314854633867741410335438951259894035052127443437731493350766421760056342526215892118058809222031473276465546653579612640721375808439650346362464549115683644213159296006320958916237702340399771003505889810712646769649471200038038126804675377932353399335489424340192035619758427185300387713107086128265622925586787413572821138495207892379087611645154965484389614561438374883118198338252823158008303143836292304968328717802945750799913153725527953910134171743075858211385287750360357042321719762054751278019766243130470516306118195220040234278203643878542189628571567325329693554382064186943038742010797742554619702367490900746126669193744852487681868347158393479542357408065799818961584825110371635772852436258555066258220720999231162951504336437454122555577586063150428112070189324796636960032972555462819985160482822959713240055142505294196264809502316093058876825233642434381165798750742364096420010950949061643251550851928166433318610339186285946953748939389866157907311513711602346194369577737887775763688964032364403573561713166364216351084558158988358468517942732513625117540308507448973115219999924823917673014735681864754582207278344135023205387990023233436007884489376308003062486248666733212327863237975860822811100065587003929980587998807397413727516862555278049013902309960011120466455440163049208138588131463195939737891871411947263351834430341050760584586308407041029800908873652868676937469759248532081839034787829777320422757732373455961259499559838067925043423535682357268242997727727762760749870975374036279636233980667618841690743023332661027058827038574833014984806792243936901529813317124891161320743735688487716577039844724785189962248518849847299159964054657662594453397408008618784464625830008337764373642508752672220232056064363004142023387730143177348527729582094945196320935232515692693761066634003187491100932378993899667590031474118564689311842185226729282609073389831679902458679059658502382186671689585249516416053640381622834506532770911182557086608938132907852038862748533930265191906243353934086842731000809194197897915584772601177040268207374692641384297455254012396526871347259163084508941346543361560751689081781818057284801938059095594736674868579086773117105927418857560166294981472341131035835114473507507386801816341951040141423880111390462773213947653836436051049341056917035665647396995836387430918698649962541712883548377985365115152400736072857003818690834502998486371250147697262083365913990182811616726350894170785354009184922682759282329395429396646222151084318072520758057155809496620677173597282860013915873822017416953054086291195249426477191987293705921045708452854081094450372349302757586360983614369367065207481594957853546789703217436086345962051264556079719094834825797318245490709727612550054628532704035117361938617609761480505621650176782697552850690229886609060744903936731386451819310763084255951048877384364624982224625143226989545274819690390514981606715145111480516554638137819461015640113908020569736701996520245172160120948428833214361903202073090444800716664593656704693161327253575786087607751243659089761096102352413388735960612975927477988671236636422364440052655037594386674374352738359514731713694236240799015830704111462893031693604498026933719552723365969849691005415074699511332532139548896506679865569730404744857932671293608490342450541109177994208757056160372978290451071255412233994806092352615490457723425575105419070537049796713258888851037809081079391827672817792846699031370545743694891678135363368653440531182916599907298299492985210542867400311160325451749862489183269684736839951259415129530676719870772626160476086677496159742256550794918450365934049966543102864369292932436203198935849564082071246770988894281855845288963134842579049179804970929768043494245284284548118632723912245700361411980119323583019483630178269939199880020971978411827945664065093260244016039433398043442522782680329297697049050748871213772431782623674629296053270460304554132950801859160713724290559093857465040560161617636594407648014600768767059031495242736945025773911373980709753787191224285859501109095968288267675659875814217206276474042414994063782646514687361240785842569292259361141639518219805835001303949819588031109943395769194161546126089300491133613416007543720946249673568633932603405323249460439265241347011526480316254731725070744405200585087918258754479000116954760661567447089223148640861433047771277314148764877794782550198446432741562031309956614863572495072926462120778517910223267626353236180360735078052122313142567570562652026545838304916719586024082121784620111246081072640290696434719740780354008358647863719816835936022368907722903447244144859838568435217115403622163704696392458387339029023063959873059510314722719991920457386598186304653026293043953130956169265536004661596244354696590570125680135233080183773314690266449465259756898557654320670879932369426461526644921927418628512763090463155320558941515388444797655235207426342097962963280742988582765982121073991690323940746014791667819815894792249414772742750876145571009399455957058023000978168130533413018291062154475741795380543809454602621230708886768391609747199044646300803802038397981215210014262541168133227674484487566878228198363407793558262077819233998569663059931285180186466750012986584061494838018416949617512345701898621055069908106582923842383461457795549676596616868987418255305541392956067612719989502380007649304738609121729218860877930274141537440338761962057350871062272294214324489869292559606014032723423879274709821034879025928640887713412037813615111904468929482870594551267100580271897341416155841091160707793755968875197782500506130792072402261655272614954649670679602087537958651904345436039685039220065310174149779456522487264351324004362345804534127212856747287402034415984222817454048224909280457313350511628383868254911268812413441249621317353434630794428984686436649620759479742698739079099301560525787349746473080821348782900824804053828216517584185596134610172862044492951846393151671403673353335697210717795083830746756018600705767264523184197898687900209720635311047480034382572131251887891371405304360894030758349056739299968957266118555050820927584956895482089954145228584781981197794891981327399076477683288695086269172183830724602229999863791213650311419519176668699810448304132818016926008073992588260863872251639555096342490912659838136782525824255632231382879643824082522125277278695973408187558685726014712986684427968262093004925520373622494451768281091272998680230266869138760257909410541535143494922292408573933373937526387681988369330172761999469063534639938623803649495126249760884793582674811096553024394343241796327552520320455655566656232932322005861922500462690027436972711269296971894366934058830427487202604383432618144210550491126291661661193910584990282537486123741440847569299601823153989838126143975353787633251164816175185152870180595614460235163347389743256359976299716144915725524916605723226380873673903240144808239055333810127244440642291173941851868459494572874667747420283011494647609086978111345244593016787794407552264350109936108121161865568287127283695073082673556465531416310601616682514519057989475201227850428142190540473244741432072505109827233108516866482729184473146603522619293216974401663162493156560603776300324085172336429236823761008087837198046889056924364269909594875522863256180245482918549777853341796346449156576875490517843213549674449299670173912326132140215765628590733646125163081014113002215886791071358851985452456026575402609853692213069898770627253678146171621670789490393954313374872765207447460781783805393976669120536045822449153361061595151493003746417755676409403688957607529169592151984276858556284784489685385157725917644518639796126843910707280922710268914540173197829126334939542452285544805618086036913007589712258076199342332792323734564503301323624548651580069147673096443408961217441699711287480223715249579333604113207114242624919291364154804580880274129307466360802369713141118571125383663824015920697143968076523067881505334712624564811026368964252886103794337005708890734901020791150283949514677392806583493315546836046390497525603328702289342513771755429563648800248122160061061511816384064521887323485294405653450953867672399715738511890799204927690573555956042215121264662638809893230343654115924153904079793563841866607713288039323506924075440645908498914381843290081945025994235401370907129797347052287233981621435794057981324730624831616880885830787546142519449882557766389500885530441936029804490329124290212944890992222022551477113777680546682109603819143607500209356959442285749311082577833116484143881159958080707158370865046188030967871815335313885278155292830236042732453482176030521532794098195423213248016309927431335307064374914136395472992673228480271028045382962446578410197907670050016596242142101309939520100465256832212356672218373105123696718377095214886394105955314799613817398073009337372311927606163872857416201534735983733514190141212410162029629906146223136872137718949482637365688286915618448283996735176859421042803012793688979047743346590727757873740574935116367423893781344969298423506032728063262787474507053921234988538690517337175118565366006994002618887581149688601276537578756632545975218352193475538808534562659211302570124189084040601474670844597458698428144919646192167995509031446941118801872194025904992758117433570688935943382171851676306620369142687904585941706304520291116044654304069940131438142186190940804338780183618775877013499954952275540796882133687842975844151029529116859284513459461408542739809021895678180814293763521907439042552208589049284676495914357847894478670990948924695740508190700219661548756125774364723891294274676641047310886243064373193727403011043261429596089147924684623388167656646046640184566771955600291713930684481567692907810319314071970139392082222656962914360349245231443292393029051847203587687236531855809984551411557606245223294921594093110151293944997736286199865151713170385592661827374910200905758854130389831598992528703805993249604981914626367481991196030253570581067527076107537688127456895308456916756576258520098812790381971274369397315747545535554976618804738669117034763328797443034434020906773885821436028456069213669976385307181167686948493023878867626930502220881709550458769287474647343856763481071462213024727662117757797182792295629596497027417688333273712984999996305297390229981938913271824217687245084585244920490498261263363402130217444420415330786033773512998892589251691320965158503169939868033348013932959465090912153417540858708223067196661852023841879132799162376464683947450727637550828495938071751928161085502695450395843197887238709323344432904195728120092081683978640033809611025686925707046356524747270435443718242815627344244923754978380140310010641575725027294842923260933924180542136571001360470821197661835225580751689060138410785911023632549548323702237810956187621210225086117621090518004794291841306418388885121785852504711384170640982537157720682063661472892813005096918015064149894200599451132480608373506216098661790491320838105637347790044502894595071330547195527992225364148519059809843517442455401559892911682760869888388852418962540289333314824357584819708282819186696435317598778524642410033792275338395709836058004588742297619650967760781148963734812263444208520067990629562954425217571214690739491477789989028903246384048415205861040664828829689742003006338643845184546951898149470039385950443320758851546260842643609206094184062043003425061768087778064679840343143340580484341134998987910734815840635733617717711161548107957095026320734842619438340705640920772964092809395571726314521596538961948526444577382017317287301063669049459866238156649299887021750168263030378337161024416806020064309379185122083723762333547970783163149543084156056769747111607621551784615077266730942481331217679716000500023526895499845151244922949994799879485192934837941387162411674369801914238118156274933374498172542798741035183332055178312438830807483756554271925166662114816455278116638281413625400179710507048247448565037811790925000525702079426325033788462781921122504513803123169738491294901130720284815850064805827219808853427708629282837196916140150547161375138024320107272958567374336516892772527126297713936635237566524081110973046711984531551945193087886092111852569128964657062708923418902043591483454891019335238988428551892062316152533067982066677193944810336705652735289597108947087074126193854349581105923659675909642211039240162186884459384006206894902613105676360115918109436014685100814253048157152970374150712627129400123199656534118789876219322711110288439857551276041379049598884195460202536523554805108969317487035176181962300007273098138377381001588503202338287713148427871147861356396846235639903856448620005764536716159384941441832153079741432866018935634842359561198396873309830322518344981130112507813085748551306401875847460229159130239193117089354145544991169702290611978071185914451960332751854316659643058331813279918215013161613320254381195645637048052554375526019920447784569245761254379397727935139191898401393284871581399996622477322012729873764088995882364393782653864490899758810043770747144284483855161777063255687854887764527004458536900027371464342009424047612147669318531722095410714444615722178409822255864487563792955970522433853162491906667214723296503409317041863170318652265604002640156471551099525623442450671560663545682104531570157016587417872166282405313685872618686728846254977590502632776511442912164986976699087394058467294307270346005424064267538601873737204994923707902642783227699867613151284925552749869012663848885463485445252783942243945107117720532947696606957116901663307773259640424704305732860975784503432554475931397415172347195745691314615097312923094491282172792380709165723634589879034922325683496739950438993771078248151541558244277539833037691375940416001771520678837868346774511953099012432220223090597764250931859441431443283523220011335812041810105777179041015342210510228059177102279461157716620984210102325090623780318419595131052527041110141312405007253644942331037238201620629166738590918878465900874347679445666142418388709550376610413554804280741319731611496422655179216969856379894316389441237580464269999249202246392644468085580217363560184495784787049664599189504258653360026863685172556796496285786383649640006806275058458933141100957978033639379403517688325871265480948339522842211337834726806032391431446875783668930783458280289069830284138780962628779936414964204654268834571473571054634127567021055569674014945382244285088697044582290247341361298019540911205113769000385284776336314966289357429528670408010853911134561487771757879165969267025964414615734367409212117076100987087329235704290546634698141970342587802346394212469120773076333586028768216978440371489428360876382528749786762845240207034215207310907321683965010662497615715388303844386761060331261522271966024448520556347210751379381940088168493083877611927529489253737849592374884967449783787553759739647827843245910559957795873881884287654045865573155577535173211825231148954277268986844559652423018297227403559527370591175701757131973867456304805481822238966116780582305765443166574283393414190030606657148106839418454643961492880299141263092644934109717750576689247640410636077815334693704846697985457389711356376415091858457026754542241141196569861894574638272190729776615636280936639677360500608030019786884900156595366177868177279373155949519018715582623057257122295474782184384861858571734825325217676399778992356477029636112021082325062301879352005571752388331029941894426138440890572322760937992044881831416465636420693045232541353957559204145936692491620470756722005059548256112746426606365310543417040611185699562542286300018508411986927644780418289522552486435640151610307140253188616081210018680364645808498055945545215201516962586311859997774007952265339863121873210141457693334841717921846275623642764437901175323384872935746299679039041806775217354546695631658733248689823837523260445154753380865237367337013568485832039792025193286822020061190626168950599998218380809521463771168276039862501888392034387926405503382982249119334162966718283623763453274437818361974059562718849587277667168840725122520733945267304682148991765639578627662340993215964457113273598221239377596484625483071315823518499281721824031266845510521249883388100257371669591720576051894095678184938650871299770570082760894510173549287962749028052919103785892564501180065294306825607294141808163292085751066909199909754423812705767218218105532174169120474951009483048603719091097011918812755970509816370873732889270872030674657659357689031738922275610196695337807400963544032366024326969293423018342557719909400383479110039074662103900563599671626531315811539626217225708211520473166648447606865690728815381105297067237949994843899176373584190219095579810949374406552002895168479626024134931937704514090109508000187770673235627915238834366910973175952498134801624789231299966896966852176525607875085276815105378274899879187544720902336295072251383860658643743846992849053950066941830574784307338726496167211066329911017821759948872169102588027295156181583117107934257004264977611219285168664374594782935071944292519797915833235734085774271624107335311486576654049208480673248498526904720185938473022856095648397214989378368837220243899237141343846474283535171256992880509460296043567293587089592204023792221127405069556674411365758463395374575922078377664038689008703931880288438206339395136233721505611561277438131399837374197527621717263076397306239708717056082304919039658399587909449137693640555019719976211697941826699534764577955045061810517188996269969715265435042326941859508811727302424761514171992946274773173356843372871548361997904829306863732670104175197209761185351725624458459359577333661149558712605272913492760569125967774642623504808350386665740589895243488633014754089130870668676386770541221341005953511198768297407781585867847343606771266012555714909576050142340505891861055842472507786080224557769086477541967374189515275351684461484617315627453486324556893214169227580279436428606613797743064324818079222755114242675711503585113965185442736797298854197526205117620855767401046807112363644842754048305404419413208944214908241048787771952910482462502056264691443996278354107124290002340597312583238246287073832221905832830309461032004663840469302963264738060212569032719563065984572073144253417327193564182549938514965485300252774141723632726513767764211035118618038885092479844302732300811742294580225937259518932188414339184506554435103445455301048765739962708612457302058511005662591215560198731920438007792269326820196426145997588274113663769090749438628157195669265995963226200867430749549846891138169139460469199998400030495701671411721431310086289081310807106043542575824838604814661392705906320475994495503947638833649924408106689003271193703609801538235579304992034816423884076610742975810596483360276842090553772717721636764780974057447416372121448872270314982193786541783457840640847286581842478631344222214413197375874787813623877751683301658960227353860201265053169396062378835180548466920385251620421336066562476645556829639494762374277296403720783860503864726172036492874064813366476832631987281906050158200491678454418499823125769285776385106110791186309487606751846058089615598038426163784547207997720808139972446803474551098239421244535971202325406796354188348423548267097277785541747957101980588123769882805393122284746893251763929894705427321453588834999049484860428192382067885691744016842813699568189056465721535894872324035527074032867985723249124823256694541019294702224883871824053941543554584978696517083791052614222153306238957571324030687502220896686191801731098932493914556594101431953674630917242730344193475604594751346591659809521078025695118681464349304430271090402300964492513770865838320765204023346018244700229962124028059717080451568964279247961835701150370231163989025594108840508250357816853909864347069624859108619908164156449665784319983127962105099988602833435512080587088253986192028163092795230388903024198830499641259187684578479304739529676545905820520104510167851764672868533050125803132723141616661230563161317999268009791643902171363224659363656802820709179550207752908916537399204091644757316041274789173136403056662495249988379886340551750502887904834421034568856524481582486756284414130633784036267959013655506712987325505704603551454232390677194020926736631577337241888527818222705863561069707671562792139020037513958947336266344352494287953063747121548780829474397194044632364618989205365927308932677975259766856204863414510353186536574697115838547663723152894217390026483454948995686906382989236717389258540606653559852174901578220441416501648112232054391564529277781840117095662191710354987233001377889937841573566825149711508317346050924523007997434516207460245780836787751300377817187884039042532711982426816624386097072413320862066761090773714475428063034448738187054976792413535556996231823304762627381125048798371295903047805479183830748247919423248886282165644046310336214641307118808346240996863413571639415273864221646119588637837840400351326888305509545569497099118756619012808357863050052542262175700796376050426332112895950042520180524874151166413596730659212222291986180159070036985970971947702861479790599779225690205836151113112070480181000246799736472670687348938094749387094149317373865186227568416109300091664470568675346020020221526276820337128743704228739427429970088868582495195327291130769302829460640931687048826725127277169185908166609092342198427331195729696013778787225130045705670160040820814368465608809706291618121019213966560237006540266100747796512657326539851021317424827261513746119018122499418162233352889431584917383496213915857513084409903835114203218743483474971030360740200411163166921610331111537741302573856634560962388973015023806880692213528578433865480906304581426923056500915317830761410969924457239614486135272562572298651442132327812454172206324307213226977744949588469094628140895811297719144542674857468307733861617140247296738459378990795268788729789821385936692357039534496491516595792166879652727695159896662633509734700000820483816005378166243195255802753667541569072782352831638749242080200307569566019600674298840432501536329732448828825378654968291971434354306325553788170174465840446218134442938008069179216490489575459080350893732454273994526904130270167621448428542682463171587650246828863072375432527403809468086353353831901396032430930846577171703459661640095018135025863202754205613136712752346311512900533634311828104415027051001597856505606442313017928793913663559798545643027309955350611935967131761691946641966495219800734949172050779067274664771736918578050145831211031234864445993963897479449376451686993470803247778427548003702898421657565432932810993627972852237611844656210559050874347639363678976962730323041401814577019676679838624830240708223004697602773748661230195874634146752296956101537027431486776794616328057381745734590398011100401642088313036090379911061047554500741092768044108638556610711679943567495208255743408289785673129011520019643508121139516031048688522884615091999025224595618100997255310142100914037108364071877268070904484104850112178829490832731802371468127098868960305008090547197669793757132257852531214389220815705429862471740293714912220819375334410251288423501847932830562332459263801264013752037428340709473917266547630817292477932060969995607314910817769065227630374164235846169685546263669390488875987546262254150715698830973521240852627851569268018281792983225594453007792507647005239429592905113950812267454758784075128259773584690973750624462490678255290264597076630950207240682260594778024811499060015657497868515519179380418614503451767374141472620957135887715320897462880259022364153999190098333257041477777810424687747713606216328055989140006453092786131074819160112219590929281537623311689124195423053146693456891283512266549885178461627726077078788847638968725920848060817810952870260927699187391438310026341560629411209570177864142362085662331262729339669381206982826582674625644975860633095653664479660653469249837441609711586323962849439822809679870636210617456737230606928966363061117365250850176291333024377491594522557349700316048790989483572637715254985422701928888196951101130056733112500954653561391106882518671648802892727688760438320240572990168104987842578551470071646189964229693496946587632776950106170283051306973813233221285613370861780430069470889089294872969571453065475881849253144481114892379384187655470826384693950304019559468776385248391354342787191965497709974595730782394492523415331379291136568524173123171472487470421622766400890872045436533187284251052306517617387563471532562691255059846630593723004162954061604696347649030919511135592361056532543174572494478326243967807914683020256532745911031387374073027921433771052306324573530464334157342591084594515129019091170334030530184912522086808860309185085062601350105364990755375461547525587823269547279065703649024551862661589769502097504935573030171877629658368963653641921843776099506305200544191453659281879494233187050788452492092903419950064550898799016244347111357980162319049168512346269846179367489500791540101004494420873151855828499905109022827010781518856240958535599971253315717230248774752938349804376084381305866306064463898833733847566328450331279827845884888527240946951959522330674381244145904983316901715451376314257276881987001482813066076547969726576986116964873131258474957125886722372369521249428696183812853931468052869765284321926475634645681424423758886248887663797492487135907301633815346948708974071394941828319303250427618369931692201633947062868387348032850207914022536675872345521312256930009332566897518867341211372354264602433984265269276053820882512827955489736885240924717900680607598032567526196485553067337092549919600236009036098500786841488992760721965594426439778877177681124009520473031005045085577005394986997700566620988568307821988174642563260695972831451609468631708905852118425753343141474343128766952664772845552885919495060774226886578129813785436508469428277080581264671404101731795195791457221530384312961138807503334993104989629219817562773024205371339586556383774085978544352303908436354146902694712524041371751765417182366692705793582531986510801829585943249554912416576884565427901912315485010417586334951919265371701202088477614696126609774862993242625026653694599212128306468257514702355004915976497531948036152218521743737325990216104534102827542503374789380035423011027120187294119432071953857909175571878127617183480619980860676843402613765864026216426505526852911333067184594967635802255306294608921164619837828991711318973079249136231618367628667981892715321009832463226199695743667911569658508177086706707246320053673992639252792352274721829751486649898198267350208653510428860642144874057713249054097112960879363412160125196140059507072683346924708045564709882089780398818430914265463894538339050013107911824399779005699113539954248795174078856901593457190050961029533547771678598052597711988885425233362263843252271760428835911976914487099413103326054823512869747426157416154296989681201360440130041875979593909969611705782701673579166008798720613974058901116667394818179457271098951026680679839587626110271573783854969373325196327510837862947646471949681889860879122059914310614528558022303434675027139845800403997796810641531594580139877004036818347677943007846190236147353295058759366286886187556896645839120568996126167812531458649543577186891757445367567978114450682326241090988682506856044129684856498795781193275883700148514805751222016410944435115621354481610689298574717196774367374736654169551003941568921034630795021899191174554044397801025942869433414968227473599617051617792822940179189999512453279084840998452246561320579361479459618066658076196432327700016247396876590370932967592372190823692601413301263596002440709668537786149378901152078722587463584861170103470654005547872711460976399471672401861133074718356128829712261563042022601148278272561543638195405978852423041456651112235171892060120543723402525672353915457639060702019111798293170677598246402409931383785459860337210909602315776357129912598435485064193268916100087862484774930568302114424056665334658495986299462395354676602590128264686583180407569182278022068981116941388675244448037464396400243259023288240564933384816090939706993091735668817333177357551217734752347572342827143173881753441226509806340910231939512170860056135901192022144659326240380799655764572693355777008848774922368026026741630671620982015817885451079901223849802165885707046713372300107324952300301360631143616748829652080669521672764617241433954968751611306371538195936349660333647168896746711470346006417358342008742815983676285888964362825943171428020549387292891713583077320446908921340649807024407170762876470488081905071492437158143537741408581668682662501478017211018754975816549411362588135522867095046111972083814498117969679401326445500957178877269334069445345839051011119341284745116713423749539267167047559615583921094468900949813831809834076894505528730670891377730127076907122684177812086619701236494946114562841618673532543636033367346142526343896947911505925275157742988725980346669588035300318024132501102099933545845127322514440525269890281648323249182060572198166920379688666711070111546768655502792827993586013617532731057780083449379829856839825390779129609249539918224014794537233757965824591167247984307250199296185219515698998819590190163347671381808407013475275168801152690364850398988313883827364149913181470926537767653977445590020559987736473922398758265843934240128465439212038294680616789622928958576511790591516197567419043451524791329159237115832701340166839406471404170731084637749822001513599839898887887008530433677154285106060937246271340098828807401228079764883820077622190388000984223131584599237206503673376328683951894466552925111115268153582687147696716620606950840619428798764026032598397238890595290740304287544454962729071013602848762984933015441645276837933127795755971788515172065136993536262313059106602491360513669111503517414214424796854974244563901716978693793086337245008461481792738921131298312538428613079294776213125617676922341657939062906945845423720594992035967187008688972691070572561553252899892139069627564979301209881676449323476191760055846602294259425538640088309067996248398590941118381326619935198867151439017824776479672339669942257671030133189423379171285878539295234742070500657101765971265791438508577052785406947082997860908922199987119815940819292385727930788321375565088985698483039108506593931212792711349513494833835730892858509507788088419392618793407710377170709405191988240417365619856288978290236224268980993102610049702199732370635138754293959625237888487897009979970495293628015008929329978290936341359677834208401408377393838261621255603788570995802369479346250227279679151995074544285740935483057759817990580095272623593663857516628945307839611536489317002224503954329391771917662960132001479157453412039258808832409999633806125949973521957437166856644829588467767121874431581308695030689588743849328918827084460881620836040187643899677522307582486291464365198253626900641788577471118696092059507315907111961906253370313743668175195632300275425912137034767567088200946136420018574214396092547426046552616560897394904908484993818691686607923153291253232283202594069116417142931998200734018332076294438766607651277651907085273920170116124385920055600436310566767401013954631316404679465932546107894606471691341699029788956223421493914199085065558021491819404188593316376118075676125943244888833699454128521284338541855722155211273188230834666655244238319760137437179900377205508216961101933290464172951322476689243431643882410814797406361402455771835161785841273577746260445681749669708098128796760406661416823723374004801425846146619160604223893857757456433862586217338590111500215413206596448558965426586624233454412417436836000716061340273238947097041604550532473475451784732637645675270970918965781786706921155254352707365107779485236947544434386090558351574066049289819516931152489381924365026264345930406776336950664077719575835997860848635095445581939868340420305878331487962963480734005532045032537142581366348374742833092454715992908664033878434287049761284823197052953132248638768365861867338968355896597765279276421827526485108654345742251567815387466326127080188041237838764000361733435194946029253105208694053965743884454441875237815248186262666805036733291475814788363685058903363985522293813157012469988224277327036554833833555248497073019775200146965743278816239309572023637085847207181587103737300408341817055855875321099439726363825412270907287745549153695982678030010998899392635428176009424539039632777649392430335477559559317446795207218763156949989557470899983878948082086461149252708354199661437669034508829708798352960479906578085231322467468948009869854941477447220932399467060624073428531729786692719936839219746751299555187906293830239372405965199185938888379760844527341246926098166552715127124953608231986958054995188069711973148050159601528571124189212884220380690777871328586947908192824299555285623189141088266218245462544551118094278478416912461046134619559971690047283481759552269055261735876644921810616153830570681355360150899437312823794085213797990298730041719858979177244156780196179425426221911049768898938744971461649669741029117618626595880755372224939869752570958660613613206690420389823554871174389398983181938713587931759183899013159191771302794274092817841832426215355527319895152568436119103404134166437816079227134452405894438895382364314753268149786147472098051247344442531546082298233221760194810049863495450918960158212135537987263087454507175361022563070639412522427050736643309172521384790265546045368387680803132394545261115073950520670063964789025342163667917973695004118082402621481160721532602846384398536188725052464324455606887125019184101107210596168313566239651437655420387970982048134639175186752680721551777460780388255015306881502954961717908514200304056664477278803944814816033587619716508631238537235563959453132562186283031489937266426292549164418446449781599174076884134110261394626573669686565811359916151049301303672395007522051688300547577169005564593518165362135840070641513454017096113638393030501595051248776276633772881447901275389810734792973406719272900354736849399910738899994115283574577921154649074345578300600965662457139738924756139207576752971935067471075658207511724669211487488324890044268152393038179201849715212515770020197602314539022467085680922268931364080084595149002935797240493484716929173114570212098041940785235866682988236099641026900661570364526823400174959763368957045346429484955432455049033799823248828740800244033910989729608576271071059456432589368547571999678556269582365140894207671468435564073494518880806098407609961201657373243705799389341439252910222282743262069238191719561955441020306878103786963682211725483639180817255606152796284503044950192650502773937674502690455859695870700556339776065641142802460878447401492541729639487313423170920755830415889052174300112537372032550799513226406763392233968165655505322861724921889970814628418842515576371065518330841307528754429172663089007717258557787278542058415364415911871570998162841365056095438821535872163810083015625609979300583917887877341935542792071631497954847090439499991438082389618192746495910444762254581983236850574831296843102548996979392986320598467952401612640511614810265042936046166326005712035563153884453171157320029492062437120205246363426216128600533345482437465819853864930116176298238596185074608961554730210809999104747117539086252152538536431686845272598925552299866878951242721379493925304970325562474913994707904573414671652650602924047583422947004933681434997343055689325908822341516614462601852912811953968727546555924718506982701564511542978163338641966016706554441208908822185721711765864570161657650245090562217576257236704460227643152060299571460311409641916650715543787176987302940759426535513862091076490660136895194129676434406400410300647748430529758143218047329875496958716583059856188370154410312159062547854051724077888686853684158416058404498097703489694240979066339322398670977101168207292299720896384511579342567139656443134876026436112867823306779875766137558345245860725776792274734582623144107895415112154238117907215262948696453364477881536239916646709088124700318822555074012650872421272403378247228422222668119213611378330519151449949081229447123406072275183423220879796244308215160858920491090670757598628311135912668914194471590089104218710579794640349577148661569900667009659256551646921862410769256532306306514988208522699161253919938135536997434497969389252177052545159862549034475516733037047045307603682683605250087812422521183396361081885228097803971498677494651677847066673302023106338963793884586598728663505677697220890969483776766892534534867047256523219239906475303588130003740041200632261962762587523457435890411579514265906069024119193720250171293969579779048213989454401662446056535797240838248563846770802449934317080261328351547565368969031792913045970945289862731856738170552073016149634651102214153631025888012306350626923670471941606605673254559123326244672347766194376047163402888938279950384890748686701065918931885098737916288782846366961897472140390742703374044799423214036637874627231158477517005266714287720669908268472592489108034843255330783817738332789877607675436548658103227366145460666395033198712093507646323992489821170803586120082638323231963151313410696658965757210071507126223537005142019204109379161669833919650196455091269178381230142795384757780186265558150975069786394076234596547132336015394502097900375582233978467671559672729442385863580890718487293798751385561326789696576970006654083124919657213161710291590602438774528738941205527614483780721016043801692771991210506745576321619668525915950154449181450886880273438184215883574948902162950048412619291520262740750801368553531851225867606050226022275494266484484076038175417700197135429574706876298905060971518134707573619083478864535077743056532628300170867292862205113900060413090316325364061087580001861515867410590419105872251460155148433208400627729482168271118055094275811639910282398158096470944550884809810428611642538340298890780930219566142479631434855094425842712623951770581121710060883649404093793637183646754374353512371318401149865842827953622412559641192513068443470675592799398123728523572665971485809740971460533595868955002841270611330887306076614958601760780828800099265839084289037271010999819599281023240571342988872749287914818947324881992485302214353274937532678044216967987638553299065012568283893325540278221555859057751037861281438792089812249513595078242298024616181330061316223918892067439042092080927263256800771007461209648588944266264022359252426330041201403290438371991821768158234399165123838882962986179621885896324693562728759496923392200754178429782481113705856662855812650509132090073389086755637349215777198125968960446338109036153548443152382151493920077629019033567849137182802508806699833145710910136326448308177071148229175577789722798054884928200589442277345289098926929796324329150772967287069229325659910806195551409751129214930619426346146866562209069411830583547805088118579801575558629861023188904680177882160537799097130902519553744700435054243904938540104702099289739251660138575586164326652161709707178772875387937307513215217755702898877577366481300782732707245220402162653031093011465719724860515370928054615151617806825612698666974056465209218549689885571426902965002749595184875963576883008720941471582170784279358699760854683582130847414630678483317608216722888269020888498166847094308551497616302899328361063075610936614690432797727562324303692892418722996570065660023279746702359335973564998464394803712555080440657063289485480492335930646005454729665427653175171665416167420705261470772712906658946537072471795024109089953740631284571007768508384141014445385298029269350867058370895200325841189781145058615836863872772775194620335839373194604487264953328620309149043973038828059940559710426544817384414087541995837528883363036768043027303337703461854539300288168917802143734378366891726134303418789903314981552827078542033991013515536720250654725578107867124924201949798124115807009101770491051761714004764963683939105317795191320293321691291118547681246626418248722729021595067853156054616577319893104546982260147574273083857097015575468900999541960893969636251603708549568156286732607846749965138419978130919148238105571656837262984134347093017175510910556451023977068730320452079563447367590118764345915944745695745130647489814795686469884266387113269577357764712729673374237851764995523453844033336661757348867311159830809976498047137052845995988477052585621804161904153123714775721865240749052483028153867560628551406311766011929380453127365854669090620234189900756573308842295625528317081922487386320598093527441552766220443292973554047726760817720530821859897499562289793266633426512761306230340832857450232312763579180914103540140372924151104671351691344090775565906101158041597838588231169481821344385606793296640727074981075317016923800411841955993297249106506822778868290333467645075638241674806616098579629535042975462869626203853413826411449097750946014265259147543823095392143466143159497250834164041871520785715157391695256662023814974918956593845130143429570386483792614709402580247421234500584015995682002046910868151594626700545420288981655971721265966505613851037487073006906677447104653444695056262169535292208400932663996250847909546207738132478218809613814115840241159461436429270438099942078963518563457972002537389938159473721185785227139177951374571142448444513636551940035907067725558977079071785893912555044873408038023798756301236447941434306686178698180423934794975486973233106343788946962049006902471950283864780607988442578384763212955382348200492543170712966007785966201537127268511132295123970443808988824595212462718757621799288259275065783008456850721228388480694664618143008393530127069962982457593417375126331356474125796157428300401612678186506724886650430808406610927539487538676254151845827076215794167100997030085601742838953683157930537108787180346152876060087114988187434070725466891336773038849839801387360389440773932381814273831347937911145729953416404287528530254562657154716944155653579190476997634340240403384655148008379599744651595885685896924323688150807287268209113721688721286091351976027331188800187380123199274133497452179100648167335501758914946519223718253293024465869047256178002643599921013725860286456607627429501819275781484963244278436367697154594413860516698319001799232391280678502646256402173906803726326074187686960308452085530561546172901618097371167279519141727279664773568230141220734660019937523742253359658714756178045908438536186199037094367712454157139326208264451989731791432819904884083025455073758029682569844211953229565328636594868237744904015446602305017943170703662966227009438381241739226367158622551616681948713331400932516416066470652684000980282774698420941120292385494138442180650310156525379621876759980286009831439741390493304726079912968778308851601826800678629852430028366291211186324447236793212636316099052356217701817946443779225288853787034989356245859718047802903571080701626981153099675510138696609351441993679130229346950411346848391119814006163246232600197334040058253600195900438620198375718539790781356589795834756848369393486121550024805658074796190666566842606385149052279242819220987855229521943022369106407275330971654640296256933357067240782786094212128453529750775538259751200669953626374820246041783366884829880113973900740686549179746740891188994166209327778137155926203001927294001902963928380425056565377532676327511530542022502053173990606801579416397053658344567614683031885946995375602481683491269792811913014452160159696789738845115704098026032250446307244889725528926283786668285732999384136795981054305082174655735874549282122307118022218371286409872561843241135394330656026338658474839970500703013833082488017136776213773503528165628419543819779211682136721646212717186051768525768482537637354621053048764893630507842196796097580709995658430143631028490535713741491564355393270681395890885966014196187011594178340518968886912880710173091307180036990287744239310981700510626236332629884072341312513146380046467958528375820131091299145988952414156273881643262696665795451054499316275590351925450106225300889431462741671049085773524436202104058678616891742039316532032514263391200259672045465967461601332158339623448367442291801155402575101746969417588086350094008893966732751365130721036554511313386986512101770037630636645193574020242849042770872306850717702505948810631903065989428740935057574506398366581371669521534231515433795950725381001683012954886939847772838322340602204764743447373166250169826492883205504092597511082758353768742322133984525203810698867358679372360722784024023514265818205885116349118186027090760955613928008019094126270024510953562688656784272534594446156001238517444718742529675747055004943219133276713653070740897728968732894570002215388364227957756499300700973388621950033474709553212496345592503713968055136119449327483719358250257492781657166392250118576968139640217719549653260504609642446743088553000721642979532495517866943301279634303180139972990096249674158558551286144918336958194087678096425638939253177664943203605458314774028843036191721862551954114391310760837176863356227880499591799346719712042004883116977722251060439274068671658011041986807289808034769558828013392302801072064561406499661186009985100046478516133515279229197565325203781830796962328434085300565516263315638576104967855275580612463327029876039982537542271300299154713091967850583493516703217092762072456465292555176184993529455766608789878558271435965803130287937554879760166220089965930927552706717484551988342893986762218586612501833530663534867395211496343059439232079932542231229332659498834374985093668406601345166756405402804625239266220261962816175474832510384431679023517153142420434112824616527515608417892905759894550392847131988072993576194825549026214578915888299337824398499727915786154044825890523698909869627966254484103278561447859138748667471634761843877330691028576079014922580299413791261019509356176680973741006774168688154638089721317715411587185094660867259231407293372021458226854716229381206742039972225066921291706625914506264726764651965340789539004339129504050437890831733726630680372262403950709609259494600170364636475536475945042302416803639647889876974902912078538919840187336104242020941317434757327493609087256612239240152700563129888376756334060412193618887388605963980515805649043546423118529324309850616830700014520880573064120886642043853391658025617754643254623364602759502822716267935608017287768573194248187698635230774236511127289914552583111897361266088203711212687508849457900443254172333380777662470844225287351089777684270536970740677990298434119761651580343259850383532834536557549270639405387608237110779365054080024951084606365160352212153848541559536798801881992933226098144230616860336352165974274950532772239391743262645196850232975473938413195480062425904117674846215116212189159649371041807330574466072322513051583673604534760919096413035983119017927387409370010839000094334896493236119295764987732157791626767824978074014365484504242327092854128886974982365600359496238263413463368133510581440933545177757098958234201864321210272950587652277177537637192108628193429470601489018975160089805219649714824829092295741136463784337024534081097372614242977003017742810494141199319022932332200382467790214710188427079407955203480634727658213112363965494880990955077448537157409030652300682432686716582213604039369650274745528996419309739177319093078759193032577694237373235374402498768133330551077184293863449650385340869178715847067250878676470229312338083545234305770204743884355719918690499005080651101395735292510976745910724383237417804324383304717850083568892134169519473397890247498835968042028741635339845513959838452491557149926949189556236359473961492975714546721891117554527847711860718227648015579274627453414536454689244371196510200157971313882500002027756446606559437748516208318082175442872288926189659283788852103627374458488310145044273865231101315846511275020364911143038453290681401379260815473303635508551916901177165599848242329007065508204135152971570298138251750669540562467182704112724849914198133118351231751448314904243450020761813540675522303951806495358280818930178903087486253414142283638768743259506605990302607907518176339767490113850783993516741873036576154302576062991657066018870637348504607905018763909223598721656802603941883319285677091378874349127316083886474041256918062509033900454163336711398555835216300264427361071276750257950912337623830324969289515056910152397291497067542548251731992867380696488154616016104204838259952651660260815378227450360569214072052679877540008202857876569716690365366089583702018879731263632989213407102570940021482383330817727504783804543709288918086550723512150809372785471064022567892371780573635074485303571359727808035030471913420141484443832625595553176610103846688473184923754320250278331329783054914207612000483628599435384761856564772785574366214803549351553958173044663056928740050940914848845835564975932627619970979699402411974868041373548003763211862086915362617216135008348588685797827068764557219285245035958807392084908995726257502518483281852837277928112149732915909450547916575128725485540910681814095913841693476871368441247399176181691313998744949815461889724430655245309378015043596659766396464076411504900304368986300082558049912555429547237172199861125186933589935708211273463438359996453670434407267064084182908790800395899678874859297367635205450239367251250579167973182237491654157597005803920553686272047382708566374203167175866992312759760613449657267415721096421405849661271634805214629877970527506520002497094855718659093464771886884098858661583240744569518018864295694905981595912876291370337179131881060306649650124077074486592731742208017859538097346433589734006719249433820609730811927239787415870039402045557688396697286597966687156253378083224517613925893097805109026882566121512924630840992619884094837465144066589554616407084283967532233211159438526150960354323735444895916161411695534812195642998522974532167526258015098750675111166818576640875341835836984135863725930881754192948000698319137319915832335549095242353640318744936381108310490674069712867136416337154996740269420331121899934659916753444937774514790817827019917809163550941976966747770936882801158396570194695988463535780930508236182506324789623002397325997106790341510683358307334731655963648635431491425581141073935622809675075687886246650385808999261066401657166179125477030426719111291548500188355529221120756940121166001000603481313318007522199615786514724425970804455004551585592749985810457310719210459790766864356257230686180884788558249799855315525944019982352746524464844581380177319088036844777719589970851815595914159044655846001339839675041506524310302149319273626586372047683361413719118210655403178141915758554500301582372287717484618608407874453493975262005889249253804979986444638718655867034178507679164801987584046997083251186950226080929588789997896635633092443084357464304248764813039296830585704673127808047738639468151773727673490143730487820456214674753783576049308320033016202747408533555520956782313625525053047363841746481206825974038450240075494029049505835708017254732291609743899968425601683868725303699619488750636097221131048839905320553776496423330556777013710556793127802655187813031708216446150867717236301723469723890050730115751116781897640310444022457592515141154627999289790309069817364984134522462942096176420773515939908490840628595028978536123742903601564147606701904467075916033245644269404975229336476405281015891347337696244952281732114087630894068599038630642801808617829475332096485901704266898079544984876224207084585988128456246307670109458348533968344078229464649999048249918798872377623211014177085629487374411472528218493001971942896453396345990100428202234604382896627287290227163154376794396234637106446023188360965988885249125303980750609942723267445703332561615812211116931401692321341133385629194814062371471906232838125227021049644358936429037024383312161845710445046003066037904233664874467207317870742755229115695213752851660304880893167879091158663018165926591396981687214354716186819015901670553927042655051797582816346749051013868133190493306325649045368420658954176158817476221114956421229374744909461979529368382334527896587672708576308461612472663725723297436972637955181083690748898494849401104897046886786078996844865407006573765694403571244404173656886271468480251277367210653639187320299443164529260920842252531335606213961861143012435541853374849519927785694614566869312325796032332188966159601462408512700526398299101033605211259308397431466814668146570469936984045803007703692100773970915876313109334245685011421068464945921385912675935310678455186759345970257985755411100117592038727689820980204009751976029393181171052692709117699469377784919285319108633713333618877506283418579436025387060173320790543235920061012621811271167508010573425495775332905331432760310602884984613950702567813559780431099865272251864877110367979619652771219585353295118397390825441459385902727331601002569482241993691653824311967905108648178966727183025520243721560610530994051362660823166592155721125305033835347765774626788636263170948124335729295988061490730476272922755475499686611229587126637828137185424591325007700707176211323172164229726680107063098900902529434187141454146740419524618860829037165530227855180960462758912752448148070625225037163050119237965107665218685763506933155877331872196620755835700150203664461664701133290683722966852748274299206261198238768670002475440871194792750406233083190438040305140718707984539461290117342669323456266488261717745066263123856497827589400657476302656097250473567017290846552631562090376927127661046728386665268576629235779333459930813842804617380089124623777728007869689084920522659838271539459211815738853202514408095698705234160056860865796295652698001682070557654594111957250911070967630478002802783414681106318128263565313206730247323780974458531482000545462428842248080964367912012064551047733195140691095889739326850763802146578374760926719241957010365801436172031377991028948589664761126037986705855177762729872873867560058629959279057998211034983808064687274503208877675728831906318608901245401407750593559868685793371536706942414082386276859218127157087740126718648454609247938508264918322883690114583757757648368364604597363256510920027315287744437396166616557031350904743592200583308521146020067830788619785838354231570902454987142776378223517903811039344870097562161014612903508985092860727032346612823844121143348054741064844285451369048778582261410977802879639764681048978184745297424514597765867861731494705799844444261322570010304469967841214974016349970843325696538595973195120665643313056817609049151661000820279057899758155708426493406258012720496427082536504074614518120159108303411095013204111606613715238095633287273702629179831077206585870651686434602667281796242760557490329694940454490796800980398577522369094571740682289144096422207237242714045052668890255065003420035919278114241247738621939101502481661615646179818715950043172020956580978523215650968352155462727613319635059977932167525706398770463449147211737838746898816819671712021746393175501570172653886869204959203049858431187143823099741611060698760108614163825015717449978274244169607910558063600323580839313966381456974313008562849966771211663345049849646362416724333347154810169121171093678737585264870167478409455502817138357546898465291591197662125851908391145975929127205044873984697286437261225282550041279278110173680672098832188888957913820152426559929145888744708588219672780106760370440017909288486184461386729724582711587405140518603483882557671843558106528342358636216966076699097969714954076252049694295456858323830192152015828679648960310709186712658633182724613036565114159245515116530690728630284946299628472637116895275711834799279644875782372359686079010536918853432013325268810486212050170996213210715265971420231021256611505121654867510413776380367164226286547656962879287478410789691974994983527624970943667442539464154822058362041847507809409258920877310884834626112428704514905360371863389374469810637705923843979250779197007796573745197113329262450431724635540521115115384015119610081428758354162413576774270198739856473605984475540834681593454081931429888158741335426697652623865241708382984794344629038498661631793502544611347573943188339573066687435095945379317899591926931793061444803483772673822176003412338276927127592994223791103023676007589441588621210647157704550618041338083165271093660525862054375608004391139449815385477335599182158738094865147549373210915467012897069653985461000079515719809540275244479085191129071402676933885775667344733626419381430119372276022648989518300416625687537544329170488908058806053159915286291628863352228425758269249943855152001170859960769098240004034268590903446846761117509855446770841465736035488373201933437968005909994401889321251972119738453216570432251951670869476542018765377260048727306394425318464040566094610359995364857623550832779329507933715613256363162125351956543135026365667011204708478134212183181102100677043995403716918532816533810684938931296029041178784051451678200583541271788315136504068521652544215624157745377844392937708530474854810653748481709932110226053257532949563693260629473308159029698793978609201034384352958821422286100358387952981187283776137239012267166837897856742857809404056466063142264573968563112965987160864387971588911642174349198881498699639249012779573687015513095559135532162138602556117089733460920375820298746044821673432574570975699714856182447998783791100783183358281478686132886709040807412635549026202754947798172582408804768997578506924075965496081452703198942120758497529616434345772177136798812118918319521032663018514308209777245294150277992474484170757857362670213091879142712864946247396522435348264809139180562357197270451699945585258636606435632708982773089722645772202201428554022178763046583203917131699293221854006708443215490730905369635979843980579132606752162514384197789714028183201707514325134023053963065439260641555402255317750135148367835047223070789402495955420339045851241024786742629662942275445794182764462742260904205870336726833172468404178843943912767862847094622381038908261655829861907658285830958398395857537753663386460288156401634015500306381948739817060384192611574670384275632341494797172932233276430212356122129937844351243063021312036259376542924075502901024704306102211658037418041803448851911140315692622069561634305914905333618029070289965611040106088851484171433479287098478978820305672753582649678904134607922909552878484891053957403313859998239394289736071211170314703497608816680696515034163211791633620445201015347206792544217491520220161884270843939024448255566631791178651725611038578591400991931295897228975533979828502039838032029135703984199138325125197995245078587108354845963681466021397689584565821733922228639548481599641917823620331563311898744723069752673260099638178347597292047465260002577073540299357060430278182300459455626922995052669760569867771921127359632080962058357309472023881748083085938489989914594978116512210839983616055048385106590067892129471095978181366203658145049693745678811031290023002720694194105976501334441835503278379019944269220989104094519212958763120028213701420103611884178171297435296972994659395878382776919231528167521394274482974575656577469497915207215952783052928857439858112913815503239304558292526502350181279355911576195351253307230229185807036749458499657817932010135297040195835137135060891113258993342650604345353870017534402315446780297447971869206324857513019334448570928083110923320555362713609891452561874813770929455070285953738659426528141126778441098763983958457688366480944596525244171422005211243130015010047580288097870949507649279814533768155288424881746541110091560145247100238992291545810691140380556612832953163092998206090750112347751021842060964956198298472431618944512906202378987589559726669279250808415436344477324949230893485881555788015305102989883739563518707089892684603337853392130627918087575415150876911681082737159726134244205169730294941793324158457666024567872047414153908790070837506573125843014210670231986875794877443457244077245348797590537608805509636007636044627595481338513899570929903303810492954919112210708657886705147609983165584135233770662625395250313073509827305807613402812965345740354937729654412015033895557132938633050731404296189532257339277295336626563015414815898921128804222827563500912638907496402116532386935537579286716349237719139338179816326773246206623061678045452828062018531074522736957456008839288521196511470223787079056939127018212068449925118394846702460788267631243661931542465379994065826642162813194129913781084913883027385892541064576285681769231861394965273182125067530299631427967463813629266655296222955929413097651067214880941132687303760058232120190879089639230571218548033668434815919972849672534387836453452884855915309165416759613111024937295073934191649124872817876802865052370446416293283113864761227471099597745699613626152379732241127751640399388714694653780895184433579254818002458211100758079418725302967682242896721820180467441873253191378965503214988787686566745014584289202864394112124217587546496560720931692583536147461441197746212113061374891695922924695003005152088854390626611955220211722412867404389036271181537171846454667989142470099962643526832238578299382824342487104223230685851418470704143409846364226512306742403231338615796274737235324917030378848556243680101891185254518197761357215048943775059091209454389497377214771578922023238592096471533890802124816325495787974456420407326181869030367422940386165182890500727905785183244878127532587651329740034069291754791949700822349595743158631330938117786605369857378167934004305253474872073174827562798246875931846653357090688282660860485461961065370546797237826752260760932695755461826632178647793873222904448631032963853708304493042457390767372472315472861981689202571990110144856319726647722752580958374212262905408068728317655143723088634225308343031668265398029792013032479057210454832857898754310726600462450204346087418137553742933966887759402397102036499966659570526396069228735429955155685558515187705394889369907836717402479896937235220932240551352245895939741769595184110813988242539968594117016954135884789515345403462582141278813721801420785090460871067588015341617307299640629082290001093535191301552946359736895616836065142983637383548771506506530265450855023292368836723795496744609852931751930188583610792168431908984914925566415426523893448882779591579496828386991375659558056386536320411875543382384167653576214664789202857651619123395941672077854028289344756470339918261900521746881121635812368768083528591249663667831797032146872412913343722842441125793009664627253863050779137484201000559542251171547912104721043622958586756174785064117268149904161623685104804146948724991063783073912317262406120931089154403513888789097144978347949207070181042396166156032377708534505524733436836849560291386749472177668718443326335887070779576862940890796218613938058270342961265136046797222751722673082753761953611381658971976549175688298839145500607645202902815362480445105438657974131248164109066822296627130402238233918459973303339748216382202317048996829489393808995930680725038714521505958973050362532930340509876936199515467548231844581091036679766352400061192915893521072004556585918468730558659795459779957114486642076659664100899894409231466268629062273357015308506292793696775340154083792364521854263087123521734302393090101339472235685642028307283376371141666393985140660035595944802340245347861854102735461210388284000310503553844695178540667693151449320041993286730269395640469539765292118063605651384891824434124196834934162033891764596327808876059327596829988081678775496898150304300188821563268356808979350402438915213009721495093571143961875341771347531937343599674224498114116253201580250680623347761001803766696601720568616993523197589260387171542014873129287854055802530615678704555987730182750669328289208647077101214555678456124397114267584196550926824532112285438233196998573387967513715001763622911863404165919370021489607216143392353393704078244146710026786909852835150406029678063219617843687928726591968377971155812895241603541117665359834468706365034020465024549596286694104710350466348866894119574969255777638533378871988407297428761069347898426658239953760077011835336320341351030345303467532309288033725083050147411235715928748938815452016066893180599241632691027499838450985475979468929641997223550267849993705968793212461477118150391625286298994154119254225060583413962234263885511829197050762770625055868091656039442064473557890856237177315587628286764979392918930688730591033204615641961205970146671380809610973744398990428268410005095937756290911473344225207913620164794835235099716094298014245926404816792153162378486004405168040825592924363933850271929146988386139770942061278355310735119427675092710081858469395478520483914906263565807175686957986883180837441811801592677307357203384373884198823124712446429631738780802322701063115542251610889082275010271101355011723857131944853742860817773713936540553150877970030056933939864218348305158996901815559407199827153151451873142601233714484279052668961060527890146245050513183429738458888784746156825549812644437286687590340498696456056227186680319751687001419180735040977618699705753951034522241338281129043239398151770495296204329027833366455731016744970539452671618748194252782369699243375315160817943241269371406076047546942470566625148967177117150507097532999729983881557671840334967286501043392500108782499459562600186016263343215901984682699825396901356926093113806918283787077678721206171621218699663004658700442267922091995401225495830726868149956645282328007307017666026713435736414721148601299926164980515887002403599658551565174814306646031247932827498246236542572186697288479536689762189633372419542566971494789958961425486368111694006862907806232750384406430791008960019638888096313848223718843510642351264187435707642871734151101731454503639631214440930433720862800692911342278231038893696174536394089275898935040097755175818529296274622079417452013622874654430416272886751891915878500420834103817612450041153682119049736928914990109953208005590000258826710806446170123700585877017279810489034926976124419485966846098010983588267332578103436532189961628450400271290532988900655139753600069547942221522750486067576176091374677504237806618148320472595363927318762994522365870004299431540298916739616061713912363714017984936601521304219229833242795199772080426398127075880035938428190772971783882330474012197223368468109018986566596365612750811861375938502357269106676764833490726017503253650342841839914044722813040951899537489532749169578096004018673551012311453109722297839411817879781576799819450949437106968791222749643763122435877203174460616241961140911610865017193761267310003998885806833466442149526428157703743107199933523944726214304794556371401948087415539588438736911400347169370935040731164734239372871860422063683552792300005554961365762438870230223214183282619122754476838621567561371459430712722825636709657318412694088054355025715587699872592439739463361830387104039889792057201002347313884857174792354642988292613145984079885524847581296392888752379243965107760785375211346271328935051690888919178132777947004487277027905208799495626048426106523165608171961148165342181787423246112987411228388036384322989573626578143626079741568560303949304486651393322458493052974525549469910213071346078790183155454630656421465983707591690978837877749892961932331348547324163764387289799281996258362463502894820990087816630820346015020238379285451182534330954617176140085081429405057385723295743771093589786382518868948732737349522833231483930877876241165787152770353823184249606314759068889274962533845155678176447553114549367817988605294030275628735403856738293314006093348875647431456674026472237110944959542589086160840388558529288797652854553087982258003156272130695768122143104856326111639365051082852477382677699744078117881762920314896044269569679524357849489409194172110399068389955148645010594833312720416133947471723030293006814440045892922483687201918045889444298113988206742117336515473538802437220145651886877613145767773955192534495186862695850355771252255604654687594666845972181153896925851433034817943678541969135926902868958886500081447909897448526431104875564452709277439938638761493050723564969049200449194844240732555308692738766109561543851624272192302881514065026257429043041617235871530735685468392374850274971102546713402527103067496429101238586093933872985886838794940636891306465452739394736705656165362682654252198006158678970355622841806284056328402115168509330061539532879177833292696601868004413750207653791599480561532314273019513835631844276815492317797082718149020998175489204753284190717519301706965321786312170027159880250095033283611683263314882693379158587257192330152339972382386151094425551696967601717817516775200251946330719858715332817817955148823656988842554472549118280594814910668800038014340740763268221497198436642747091070263381506788006876803629081298337345735994786244296765005834601627376128553172308005890429853252326608079157282033805335450663741787674007605067497334671444091261734264974441236593195578180047494239303339218155258019451696970568908799283036523345333963810783362562768564840887915093351789988683406073071103407787807633119111394031240633049012054778453298467238231845600848682835362913475183797906209580352628676641222386509520158074092763359016819268298016676557389399752689252392690942438717960109370639366179730920792280666199146879872632769761608189632584381409454508393741591846238880236973154099715472315128888391239179058313239452492320878674045085143894004318374486944212528700383000224484772693272875967646082182170796971370676082640297074133980350805263464070992991798612779127019326229163164355633151716846750781704779911298627277604185226514551427748941874185695614857347527661102360910279520981294007180799096624773620871714839237745325669840366931660729741654647721275197061093897994732231869762857342139015776341249885343802752212440167593350346969776628501452187057396497140782140401610765258948001832180516410540499887068682950299332019743842409712211352635866440475549662787258310444609085923226236267137190425491452820372684097314800331398089973008772601113437106513577275275997901960745703289992631615549626129273411628421228572367408622228492973341932219842508415021984738139643286774971807687582264476900548537876964958952561259700453772823938374488152582277063893966554701618698714029780351269833693501322177294594763553214177555927449161192174081571512250105438820937218769682413578265410492177209948467839160441295371335429411974031704794517476786578286543776410016800139089403764717956341485195576211723645037897826052139603326508492344539388051508704731331839782360002041870995417890454365361666074191312698840737927654619219220663622591493350948852785546043474720755086356572203458373633308347241515293317947779049765295847209061226226437675378041762711818532798637682059276865815892957766720687505241876515892349981992112234851521487518003886467777485284269981697583555806537607216168019413380914733760610206096635145828387654980027726421019314469277596749874840743095536398670588777791378548922286668044721290462427161174808338427618840090063885085931701339809649482884259421008000773757566975569408834953166578070838893625768386388325811730528742071274860367247171877761572111900564173057764415774366381971129210073519241651704365435396516835143658065227056910310697956562342419621527783944965078007453905591505070670606477212294137735113183830524541816711898173251362114152633778338729161916588704272289233803697670583726138757707438350942679831878706456133694747219958454269250341540072206892502033531701662244637566460236429802956415204883383433670477838933660303192836134456325305418219392956970899642015394732553836354502086271064733482248254820910355091051885239908607055175233999468447023142117923537679424217096118063065117547850704885169925432628204911206444575076008169383115037362760921521749031589895585430934241475423661865114261176990128576325189051459573001749047714861897862732625012118585817175952088907020961861744838511771560084363428297482096337012419133234092201366731022952598279328432256590991503843301899796330705810095539792043627667737986577577629870308646640430512338085699715855027774526447417924146012468428738157826172848333923267147118821250452154794269105846716445141093274859133230891563165666372909177279136770560235081003207099294569400721987707779405877676543556552474871918161603399949630867181777050803746154611405856860554680043310958084320808200685494972307992782214051790977992524511860519113010615197818951441641007108811698284183864354553428589137299062804944062968293783240463270837682317057795922378185263926635065416796566559799278270361879989567910297758993679056737816444014951373276140869350220327701937978330174837590353411279310450046110565570145184450985496340746251617652537782526898709585680599016230948418644751495965546245081777929595586984745126937766425049993084731475157449731422171897422632933846081002162664563313371037391848956345895781834037278600484031188450697759651648310326340909207850588881099171348206082535522384581025306088424449336106105928764938546582817984817638129986044309036287057626616456971669029884723314935298927612426587265057920625632100802861862634305095749080343151986143609365407372079358751209410182864080362351594417015338762670200482830688009268859178992263848384989355484888681491475589808063316718384478910764739774831358942790737922716660102012525577001499474185413455709418273320191691246448583031391099600498419336163435460223825207511539838976542968324297678189107675412529811544315734558037225003018764104524590421376038600415896283166871162541519688495087015140923058720251689609895510079458989430822056064298517398627123225106658587287999958270135133416836237064156822991061743688042688747938285896183639706002900743242501146114945685053588072143842412065716362290665156259115169215460226564553139347835641275295945182178663707320151664765488354957552746631051577721871588435023498481293305439130852176099436930249664375835114767595819764522515634418751559618031546962089353019617947933098703084638632108948336831948018497138527039448215212791654754329861061328727737799972165698224992384653143876329195937528850053113358878884099038406898656631957166663374348551586520974012100048785418890171514525903625592091160758272286839707697490232683215055465894295560796742776115749789681099987531162429425670793104699071946656722535581294665177821847979447955237936030922250769667293268778662328920761616105882877522992188843800769581625347160754249898294643857946100209080024744696506406189030120080734420015842377148209666121983562343536627303650668266724218424327601022559363537601596649883173818288173070082504515779271974405702647128571068327264655531262029768912385225624525802804575925355780178893285870898427623303963314717375019056746370657052497862199050148394571928773627388233165298906488261023587118286760965291572790209571660629358337047572557300364495238270885463112431161028948115568357209353243556720972140365006773591804910462462359818876938939931687637088063943117442434858530367084632832656615719271803066580441552502936187792836738028272911777269664545511884328616822415180619137963413856206423682806457079253654506863702431013282836863173791958175266876212821576563685449337175178436209544019409165742154064685960984262594087135508894163523273799408384350531566041327707046738708476348118202628530803267267142574631986105537770564807185750809059056294332901724529791487119925334874487549531144920209894546632765281786977960787439221983706118615043287013971092201545031096536747033357280301644854814567548992776239942173151609141655636215256550646190155176431704589744668201750428412129075889679488254572308150659399454903006520009313610687174346262333089354448619488911605018049243065867978408332885237770094177917943692311754944778062113043834689002271488651605703546453475866188925193237423324923008658261912928834608702525484406766695127385693548434216331234087733130319122155540338886724141905756088448941326824265775149858074493096616250374330685418121640729131236707018414174605011738688098091038610896627492649303335030482975353051916654085542296653952802904630851981408242940741605177207762020746593175921612059809763082561424644738726594969402211218751866536352263878389133569489643986341883250547878121499842322883893278397191775881973204478821342030592213159652437689709602740479693801745476470557198758524923276067452569992202602203454956816914611336898759901879742078175700324480681710737966637879021688868162913081617172594529499910638694092534388148831398844397311857090640224835926335627477732832528851357250118006981522105374566347752233014436766758873697332469713619299458950790803744518604617794589708095741827630658580250062616701370284733971068380762740802116615712779897669411986284799088162835116203060846537110250652438757125100480760546725145426918020297727412849881882779355232523042978244293755859899769708505278980973824214710255535744028343012035417665674110854892718944108668222716495590834178289671967170187350625580993025963760234302041351340605566691639483295008458637659941444748832639579079567771795542402586962778877819174819673492600097667290174483241123237220728786068929761298448921999651729497520973150139737325710852055924897558243950377212929248592111453182173814089423911202994553066820519429937341647978453305592190233370142054357719935206743067812443820695168901434176074960876360587409861664189887543204785716296843246477599197392364154286524329406974096293283840368824944589797635761201600347204116383098665642266143648371864242588442070184367058001542520705401410361362490405792879943133928056512289965232543919012635206118073230264246315382190912959389561700453584458920592644343489100496926232197207824396048536890367790391011333666892923243768265226700026453002687109696127780774188100600678420011687073911933488732860741080365330497422753130563874533872410136841031458799030073218729226324704453097027176500252016634323223090059799728755026725587767314058714339207496016172434195880796551694176871786571469182578112348802163126437416735292362769865053870654865817565429019962361539446998833480954652959387159140289515856761716124018993281833275190263711979414298043883102730283268219859851555227332008933724747811196582042621852089753907976280328969223108848431344253347370440344120382182783085923636876625391086406513746619593694329585718716090554591751206462597202115838227817420593609984563681739535158782194372888318756432151736578063677203363021104324600848343857763328356552434589563122591954727414854676139489505212980641912179340240896644255851201548713123979817675976097184115069841263266612356779313580129793372718396401209591697536151616015653582769625309487616737267721522496528808508485479303696616937556976333297498146108564498715528969997829388642429029726019400479887073249456786940275060745772097538696722390914282352001313711597255430601931969003381344713839393119180420848674721408213454239839272703632307964009980265860352897575979000707955982447809222355796897950783930306546450974562146156620912207393982623099391590211454137701616939444434706785424151618997443055417872112198304397093179302534473546524797114396457767864374827720332887778762322036138876660624619338892796569005805590621055892852876148761650336189109669363586229256783904616347102891939700525714112142988293133146824902504284451721476123207718960124643053003927739314605063073252422837345842959961008733909562171391838466746155248827950320807431474380105886589448114334395766368589765106594881117004589029316110523892436701013451832398430122112215256909564788905362146208883184176601404767050797519615617257591116346171901442810503079521314978284905941645455863572013822695818848289688040948500677243688727365786651372280431062112487654706508494373401308782327847523845650478464637869388279224979382793512181448069373716525566911239786197970549339097206162138067129213082581298008267601878113869059977247341196149351394555077026466091588566278308501087179516945553975399830348231517104712818739173510118133955321574893358068056770583436287915042193210622987689130399106854301583432245945460911622679859209998513044343045792449696691890177743555579971000737233388818373996622690986627019891250188351563138842038449695005672068805067902876454790759429797694602180321285970155079317433471701656610364180687869216360138881696780365894615772453325162967240776991305096311224383371427217898866925712150427031072361405133857144769053970341442667948666872519647689886779824659102795712561321404444489966725979310709300806427468054255789663105456379943999568753861097802073179487781588874403562875923204126678138499312336079704294892667291528556426883523426735488195558884662448970392381681463374149178200413060029461814308958009024454084660915621049862835294483696600502707839390474440324739506209841485923645926588721034462365654046165128326205435098356592138697300163950662801757512756718176788410427419571818902151834237511936389209030642550986532301114323555328377874687373733832345765542975127372364659902109816435540493302541889042063717550039776872683820918293371257322768302723729503865345173065697852638753610494225031850598374690304530481896037131798513002467121690625212756709665408686840815964620454133844697067372485965403492620848916810951562986248216594395827038252185279875071167814729710058807542540172901305188762301077016500009434913193646561642500612288823942599589576742699062382109169243228645340806660851669943680330126875325371398138103138852175190747027272222357274202189936728456010876416192021098350590309871811303751702832839303934054888123449930083186674640903624049621828386264324195883533952749967935039456709351125605202996238317965033581516756165987546317605717069573907092291951103061318855496197799657033924355430124735037045484331119305785399454451871149081723922228015964301383795090775533629400178811415022164805945066677976301157537123693334874715538873909738860129296910453942210048128833765023578528135219640814390142726715891563887859390356581886358018293595867203119407637462374831079470405608791256342990754159002203162464392224058866733217377334758046710592233137807841653202953214315593641293213421283138271287251636642845890128352271257241448391966999808002308911183709629481690153365954588436626448822531604700893000159750032059710802582394877582577313174546298488342352476396723869350341429187055584724810252053778717939548268320504339630187090063767494652663861611078846153350099403998966329315112610597156958211884553738432432333544956950302203055595293601647972594958520390207265519396543052178463663164283438783333114847986399672461984527762970871923849288279085693771550106085948108650827760921461299791700011118679916898142022469910409382229228809688368542677024689506259036557254905833694103696481134109910023086056989146066551471723095882237814881698187883321936310577054786783822616785551023601644888514869264604825692465833282538742800192702565308118262318991646617968000615827175707213395388999414581602806884275600579848983757376165762932150511123873014288610335129506124208820717850307272691087927405707916064788063583108589221649184131534741859860040544724572089951582159959420429661082057715330725551036050714348625265922067136953646934147546492785624011413259928917458471978252221091588584041055773489939908756974475506369194741570806878900617586898400689747523206211111625787482948319228853533408453964060257798796548334775710624494534380514422211119868855431575059976941369065410922064840891750125933251636475633354906012444510592282721910133549777566834820226563985888750667137386211943900703009526742156883215661890720051669097465047005058558697067899628587267081711417127645519711753358177046465705639690648667250099875043720163236537693966011305636852749344170092554238986071601748732492582241130921884677517943516444919345105102752294654883889092272287118842292196634479666166025193780178957097539052606784910334793780889703658506763534579807512885496803506734714314106346889614894022848297766750541453506861815245952749460169341864043305167800710076791251365045246720499302307152147518763148232956316421991856413518594539412723007233936244730351997131596200042143844175936223412762060378733259475334283775401728091767530689406938262172723911322647956393553907762503673003284951585789730619466247989804865154963578137007911941288019287652460687564953778319366483217495652704264549798033849825560231920591305832187639455089054584291821272919202236739037389334243926710789948922140078241336743219671189822387256169188155634147889484868874918077366731449738201417540830988736408405976448770375532298916146492056506611443562335450653338259016068129908299751837890548608343820927419929981925678192509682274364848620165637630246508747633512256873184631891154664104959976957173079897647805929981662870877545367172259152927632571342452891625921462837306020912380182662744885397799451942251722996396507373518124526725837595304558990365741182464514076563014782065321099117727271406538882037625820039811102506822588933046669649485254621936724395999825565720533721531280301528214664143181242887258948294743509441246950096309608273516076751471586585176385908250998976768487342621097380443465224501774025783623863404752192602333463555003484148169536640114156709848133879995363370334857062006383399695459071777177136893917749974968238399718187730548878994365869576899125241952896016898636117582632831514039713770698302146005757096446487492750249961719317090840822820753308613089471874604862437232905913579271054080174542442524324407324585100199527714728239870304987532316988613161855628644567524947305916386619788010921017764625586451272493202873521334606522129934568310852455710270171180019288144315124663555030331315295095893532457029308820837618018204554030690855205439520669960433107078899583977929241838788998128919675979565091793373907772664834964811655999871495808443265189782043052450077584545270282176683449775368278313364941017635500694832165865407935793866803215553213152740889216037369262208280365666424068237834306983796276474434231406913894132525361833641813631011401349427964603992336848257008422115217848237744820788605739544629760488759762629730556720399875288885376697931281956004963096687253654253283306591523577159482108049673392269034825661629983937685449578653042243450749358872489295427596442297347828575566631022277069725548458107000544365708090625669807108959278969681393639660703375874920500187139703465823955908529471077560938022290651503777577139502557709736387992699209248321852750059853430267503799763718401384050783495508438438317420140957437135772008409784106815519803935225570000991082350698697031111233945640118858932107145311505600892862318287398873369068421595816702462537450981812685547617072100405746273855062950228440286595809438181827903739477278790167500095104594269368218363415603020472479341219546050945678675177611713912915327649572313604915297880449194883486005370641801802039426808173794846565496547563571527334153289853903411457897267209202713163217677603933322766738792543051740596615616484525718866286270790452814621081185474075163757024327610497360395824039078189074210610897301374643128834579152279090416229271940135261366669315398628843238835183939282748172215375147757837629735312190197510453088230485721847161947861064693143021866505741420683598838839773887208523391425654541151877801621557178595640184344215211040965706623918851857752240573866795835315193692577315520030871862315797917747568119280117750617968610076035099667291422410809197693367381722946197764287226021829708756515010939011951504210368127523927018147367240155983495409959746030966368326296889116885537754708157286175695230053184926909117237148422108743392149830983807867157033797565968827507034566028269047847424693558421618239727503166478734761870992809505460238078525717847675664066933258015308527973405624223195391624667050124335857825105316414652968171845513224480950298494776467826180243886738232057619318813596944856822889751119348358196322738095462709764084995095017951265077108058161809029810796925478741659293549438134203927217718374990409143033426458902249492098731790949903563107694859819764489653166344297246709155113417034830066182899578769881095911571983920475727128939279822970629687814878414051418181965792784038154833189917522654456789639975695916494806257333615884278187527053211617386477053431555372331304410737979462016779260544967426924987705505587386350391784665066295854666042154961788509584992243648292735764583471030416837797547966714175166119412549599229433240680766407315199752337171153275645439458652591700734370144452309239834939016923703502921795912198814998434510634438008011762427587176449244630411729525846073831203417556312245697166769091875961324138992635458486842768749940973906063238239545493431308232551465864891036675534909780459152389819818480192795050481569671319657278029466494902418933042753324373410273032683754179694799930995100216936321097766864822994014508223364523128573574494876826582176109620174515800991050095721192664663483924416983385893390449173609400474350013395910328065221795091479923721555975773971071211125337292544664839486006547289959869876003720288057385449744016685939169492564741866178242061967401876956113997302062988657242880625967839560765712595586792996205412126687061766302959945606713477769492724186174927318165020270838373254468196912424690957243916804405959171654126245544201911349709292601738510810796062770217439400941923220581164018680681805911348591586734749624811427777047132496270514347624141621472950656631495732970670442406996915181520464185496566395771173105282863560790480826926954526151898631516772445377010905620142936702307157116331268296864752697671607828157463626182211780618212995048545746585493381223776553066409591835997367476407354166424269191387405699557037762236933882492142775272170379588669455450161414118882162750514450705429060455785842162694165667206812388469165507493327986059671239230057263738610159729801733119032940498929420796908132883299785529064910346031026590498184042696155947608420564560190131968615329404617073780392570246647020382902020958572158643327944655686118109351035643502380053692755797410491667723895532982278658419801431740875747642518365686907629653525804608798080855303230730323875299892773878140771843319566523371662750561652254591174804056619826663276964816657621442772032611383752134339807814948955576737639596794338641489297820949556736096169230304446066405600188411344892399025232091781175731862474628273025589940645346841590735203349818543329817558661109642541955488496200632735138287571795729852372341306204706178751972180217883821465783413887651431198851150947035572040872752536786337047259394172453320825843810015594975402354606756664283036947950267222880107810963405560824638080618971730039992197262290651384622258556356343035783157623101659232924213844070492167385304602438100088564193292626842875757934077263784612254132403724663740458543134475347979306603248642790982516193245633108592518455471427482143299774994759255422405270758698176751741215992545260209296272467225426693109892518079461920325067044955103603615476764590177515138679270597761072701938766013909769471173904289305212901441548287952351770369145957735979615685642008887397414635595980741236912390069901334669205676972351684902250806633844298074672897671029606852523469586976266097082116768356074115619047238646812561118880221583168888226703705235015608133592171658895899325561371678017573117523290726419034899694585042192983657101270360622548211847897751624953826633308719613279436273378822119206070896629641266301727486943323259755749249581658344228678368524526735824218702913113918871545141458048298221587641012486871647191877880536438652943734782921472178193054786917680126724433012313014341345345674221924059637898166432050126551540947958572904244256302052984763878761339803339456965698940250009316944729875926218051309698990577125677690812721113732552769023704183194703256095329415243623918234295732586784926441811406997135278097538793464332006058997383179425592187098886556687612566715446216254185564770206325526652229901205865184391692721963744279068349268766506865884779174966852899507603740073894361790992388344381411107403415227173004230030425902886649619312570791190176421299955444097050652854876751177756545574787192837978710280737851262785458865707314590920802178428495647388291978163134256168858408626043650486524753060184113295607254648605324208792420400470640464972671565782500043363235122499335124876103754171587704728250588557807682322786470851195269278608333735271315156269524052866787732223195137454644388864999321395303335611243007497695725842194807968907339486338034382909119736921031797835666526989350980693896624658152055210800533054705181022323393869201395129878438780422416532224962017065693756816968062239987925360268319503944072516998235338055171329270162970625951130082460155289120569829187244824741818456940376562155929314558231584888073869727114525521933240272158414660569602553356549698450806166651706743698256940574622600359594030783559510795631033640986584079897169599780102874965825280376252680498318376673891208877399925774313505674296940780854917558672514959230947559645886459051876717987237355364754763980036843569678865097063640563949572022641177334404847947894297323500678318744023328833125842959138356000986162088876640082527998580374942021547075550905255106831032250854529000499136182910952899285487131750130583396397788321795591370073276568092518370763819556249117945138158428161442150383185141303952251956213991813243338120111474240176755696200246424886047454953294370343794564050925079504765356220229721093769098760230188781179110055907567144822796536564168782931783973019722259519599263228027936374118345617173250055383162858926130126585553226858529440831755317487269666900855839129583501518773633149247484266181361395865349444989550083237104732685973773744328432010514221597260566892410372425714433436182321275663359642227972252302272478545378377514105267564727967322226710618033115557078078939384729044577250682311445924814292748892696337816929865216733244404230991695532988081129204008351745673393330434294653175588388663444946062736112014860055417943395477519649931133839869747804667686817931181508124016545263128725392086688766326501726073484866813631781052048150338958136722803189587292210482776021321843480832695308496240223054849518765118274537888848512763025219037220165159254552889212727722945261179205421154686298600804114980606196952752987738620621102758610483338945967768047958244611223808316198051322999556834231519783080250035895530853230018770767150922116533945473238999857280598749963582873847270427239103928732991457884349409579568891143976579539442638339443954927188241123733097451146446167490230241170763322977712767065799156646293133229681754980306819949155624888573830207593710955174161400727551955811496877945145162637089589527288882144057175741212293027524308172624727079583471619146726897686029058483142188534765349633844124388675609833927059566508673149907912323008375896378558424917256658288906016954474203717173286247866368312266936675362417402924189656233666980489453619369559982911540376434619701995436845373688026282836443049231176489710292234827514659836788306012270256522821095542112595044969489519356857436346714026420368081104986733781132828428109177518593543814609496188340369692741996790144904471648612088261930463246652620507542187129635620004332138623852634809970373840810752086947106334880661650854098033156580578121237651569684891562745638732743092118011941693250524609739059544797214395848566676763508921477933648548467605776253648997288551586931088366587085773944087136032745585957292392225169265230424497158210809789007883073936787836874491369848758026451733864982893696442652487832921457364165100631123788538024171386782882720728271832361046107671002880310792647919551460066583812464217051440893887909596876577754396985848313267518086045479339675875681838680840844773412004459647557900457813822360432582468702176262867091030254936961928365547484882724906427300101368634220223199752993471084783719056017936807433933238949959195876408203602246690554800745128266625868907327789601074282493567256909005851400799849156595644135196923242304938551926361208738427560605800609689481322269880788878674195638051398601123263946201745488431431231033778034668539038229123774939580584288559685731450863886889225397569520386485903923001239670703845056572427403208802162557469353854406518757921636967665099613467171063764911860082021430354356274135995004637459806427090660766371068334284149503514542155153060757305917982873526165247269253605446162284573117204560639056497390393202612929031046798313448729102797078505463766092837373511995126919187641447096854739708947876821557906960088844663451432803742308523167470110509067576452101310186251413041964343967330078739329854500720413895210467412913427690237141167355955098978251644480758477034321280493789560652288682526778185755807776729878937960965204033015204954084547086010549656320835236476059477349413527192985448342148786973401767997096513623977805020502322968989306427068006033962575416963202065187998423276695288566918954317084975112352400103303495910770399635268258460971674756071629233857497404103837194565175103406367353621230378342468449870719365528906462437271936904273752088337102089744673809679871975082195476697742383629669813378559530875573985262961057140174192876918489816474394503208870800419559147295418143361679668618357666183141100490521233203622963520029340473799870895338121966059356381438151954193690722858152376572008819644441318104782404213758968840805392260638001622013479517931097497618345738065932739400054628000120402687845108592903289555706106118296840309129945640224907286423068331411908395490618410493314433854598348225704463138949090677326255113203987325131225413086270757578865246436501843063885008473816408669107058278367069211001020804285635493482317889143725283640724189927982513089863192335378867593642494001322571762269347033142899448306266141941795447434725031714465062076209791558271299719098111465173674758248089186284663476567571470039941889799451775014167539292784069041339243231476951678301254001595060568593225524391874158191130929543443860430654254538288958703361059005525941455314347225785884603971923021199898318448063509583767239051231432554446557858550268860225257351201410203500068815479495795806273020947970593950703894564479527284324779287864077845073963865014739205578362967560985344365700904719555285271644310959823325560491013755865216527735258022817455524769303857625573753260552600328184263532227645649263070618767184469088438810205203834601059534347837054438836566231180825083240865792827569075633216950038123270742050780009200727412468014172349248737568847227370825291366164583524693139462526324158893139600180537119862983607608958303631657584698675512318659640103545096745487437552581114299990060459330728733068567156591620550882121410805015262649422567336750727340994293334693220793480489030901054811976026732643882466452563948919636661975295288741271989945764070668093946278311054053378952602818848271464046970737526607111772540224078377522206961146624881297725392498506987641092140616401880282642415655019373913248900506451580596426103777941402494421345643650498874341082594376631560169658951676117755561367596807484477887026412723192693568362553986505313227394670727062251105432363929325576991436599084763160943964154494898161816020086881024982673235405407428489497041330674353122094091528851142709651773131331918640107599871072721649681219839730624790808947063282284678892941581531528966919582948983873096239239600008030004843943295528347089744559320043401141179204347909614355450797544045122529126892031769544176992471727443061493174487333294426611899251683593127646885391975639305113866244983901109944439947433075081728768994952572750076523088984992357826647972808001734694601367175897171418545251005999466770950436724685014180524111698077715850891898465774898552801899840202316806515037866525188288320054400884000730165237234044045096686769359358466120678599910762570018962229084785448704764817941577171869700156930875590751151992197014767121780089779800359581703679051661745949411173407476387394326844146363119286090442354819914899267853236686032128867829686974286247531577780502278382899127573114676946376839729834225451630614821676706257891720788290539897010161540842806497817918726361442570595641898111958870388799194823300973350011759690675152816771617700830138072266624348171819089062453239911120894765024005064485315073125649189224941411766557370088452746284874572391230521874817159351796425363184155336144658018675117056136531889074836426482429818012058566535206293085114058240490849015884084766313600036636183115346441563541624738608645461673372312920475526582747784339774342681243939201057232346081210348160537653802129020296995459383664244869541435660544701765417225335885223383595198683115757440980817333539444121066788362350113357951572597866912224852747002462817070483797689604815122073916546457408832554412416447093658232252344456950120461715335528543448354733264596176334373076420992186079465171638014702522163212365550463258396700759576240634595896011554696975793388445304211917963756665945176436861682093875036913466759968599381566640375901333085831889779261092686958286894027253352575199400933330111417059545014428204011342009436526240636647914598623130865267789989761556943510864846644614823663332223016513105574089879783608336340034465900490994573481701314524637143758819003242483469574625097136187726689554184723677571204822183706699814865733499855737568632291693613784630410040673381945769367014881484300958324257973591381041710689372540637712384078390450269795709016831771149637907473643074177669199728014271340532006312694192241244577366136479911761627740137250109312669023017136092269763955578275656042865733448938302190422922524043982438772896044667435809323951406127020087770593403779751232075576344054211288901739197252156733326298738244679910572693781104145493814804474052986938048835615105337078402921632902246677296361256532301514316015397012983449252458474541488798458289083878152706239262325105676855579689769835054605363813357096175801262563104549215864006016785811107407435501056904137287781996051129410151924594375889988695819469034838621542184356437054080472187458988120287577826989346622445952524309339508251454155786193475102024196654720940349763121454206963826295838083251129949528724423360550599003250664118971686086898399253123311395045532363889062907594590528563251020941430285013335437659771817901868372472493738177662551927607396663660350369906591498039527740697163452019611716658480620294052152230916447476946020908688619522734839914515458147311752622209370726193064269682940421309030205854548539913835989763700408851669751432084649855086665606743813220610026637993762850580517262168963024941570225301084217327678840545819766789467385942458070376400632598086508766411027793679425339566435157471790517539954493003567363956508492834553159411846780814896246531264685043932566536668270529687053785752424359806116599724712100256175885387403799760564446423993959872760883837572538435312666925676491539692141198351170135875675726341970277709745805198483263434301974305538728199394481610679930939922399342533348096421492931719503391882416373531964042905784710525485069657734089509398408533574460789861292749969124392849306590414514932774597364913667511928820364359418562269199981590682864123068432793438134173654277698744736975495307272957015316341401921736545708141787916765149894752933562370944138144065467709083566573653539002497628095981216315998723736609730096777095202173116538617381547501508820960617615428262643341501549148911607884395506374592682389613160517840546513384021587427406519955669523902646157106364712964591214585524379613235101425048641879518272946945976691067808501431232015980603155814351785453876067728362103113551972955078218466892387811225347304051325009281996868303965506056502342537856902089528870320900339282023065838863671080031589676675474635597443790951469073678589019631987360700092598724553129037093967134879714818506117899908440486387677822876183205086687632967889078851214865814191967780719022069522970714043996378694125487083177484536159632734559286408048359001730937155150806382909319945135866862967667901443791523324611394346483777035651315781076107974293491502799366982210956100639410337341004406715128149867701543240814415629873494328355099953266917372708878713326853625342499709756238260882336568477265880497987919086630825914831868313890650291013453269600210855603699688202661671014648610788661707584841840746177751475475270496795271995759844669281757663737259874432928987615793338906565939889614486296432417377141650555641041637911417280963520267804998963125724682084968319862144382211863131379505422191855862678151529828208215561345048970495781265045812856575799335180336852037426393501829934012678278895032968208157052518757849597039712193632703406785328872158000011853268849441494801098372475700595671568464820283444176265322459861047644307478033422931965087100140038758873345104417852856066531484654739800865738650594966712805889851633971827490708938021909282569526776693583901255235249215984209402144743383964199370013180780026909108583429148548269087388953510517609360493375222506765717329969021553953957096614734539345972371988584014900996248742730915971953501870691968806325977337743045192293043663065499572597668014846424541376019195124785154641430148044609121857604682574854071124477026047834071101904854680608553708429241049412276938270111550327149646371748537514980048992466652086874191594476275195989180885403636765460844799778753555215558685685015137931643997126244020705747362988422960515981403294274374498671490588100978375175753404314123455492269890216892674879083031719136718037315410070118197778091574750401806976850212760544762666720643600808558975735761188626211304907070846817848688219002311347993306175372254728177297125854338612179162647647236281051958417890355214088250248871944063277153759982939012018870699100658335038767475146366497580972889986034553608410691308509403284828270269402238169866566590493123504567989744734448591809418084478718378860103485402794423471826595820505440130694810311566299543051006522363952412165894538555621156311629955770698215245510927915574769897788705395419629803990066782635507071886074198654305923231273339116063084969016035954974672741326818143616239764282670301942769518033150261827039407492970502523078384853289471539496935180316423911317710890752645307355585081485146637202087862825697482234928834443332735656045244746722978777531597663675312000024712738515663177394040205406606718931111043637816727606736493148174403305377382438557185224695384025832781893784021574241017368928871200847769391247675062533418652397023817916712985746776343366078873034148436193364977631524150781984096954566836444612316049032715600258049348979760801987934217673697861646039414516860113049062912299222607414453219899302032664664462746672203137755404555893427183547675364592177275626666173916881686842371028156467057730130425909869640113359249437646696480851131309014079800458797710782291620196779561670074729109242668172178050984299034400923215829785850580352891573593967697959072562667757374702493293331539179772212235594808992988277492632482456181545794539295661144777073842665591756054754689693594847424833829984670643036909286275872224353506902403147758730295831578649969182649367693551104118575233922815163336928096282537414701516589596960289981873594394441117966839551544709920733538687289218480583944835109916333110979841263279961648414889748611075667168560402110472146100886190414690688370568461067056452294945452463135241632270540365283710240236680933863238625171965349446302034709513605246314463655287798835626971569348249474956380169945645480898322166557261992977371114540241622900452018617021835868579378523672928967571732958840165334624799775802367282121413806803275133107077487267324751185734160697087781768596041837801920009499410889623069405056868956429041858738227454298223543920875282947057534894640879672254574826376299264277840577933901073021719004484920062370411820077808401686679159891303261243427410076065495370636456435150790502790384909284200495482538030500633264116175109126467920723564720884833644078493762187281399707942395595171467836337035498273717953913502269834026028197972175926859037845806983233339463798272639992480305546666160956485616581444499164118550133328907774524425400222925282770630044858464999963011037185428918513055079555521852178618435887253742989028524297792692725481056090001647428887398321718106096098116249993267986824706226214154047503415129698910401107771541223302293026948175313520998531846677336333644504917783198284384781154587162101416233496724003843367829456605407567762696605224390485440024546087061792847394020895464628118497383281703219440275622304485512371854800915099813289328986911719386421498964316057698115905688009220079977517455489288446879197479419015438994961606342081982368834385757930563255940425230246181774476045887864367614672281164342097201265254588570126936231824811222776651524525714219065328887072494572825937674927561625667604729052156125168223269930892892426732748047311862264277650329946329649173006667923433929462080460629293422964407366418666652898518214574563865302463493109105065986255248257089509097077689240501252561549078351416615514634737260819516383721454037500015018659568872201854120839768516481735120212861489272800394508833380583373553340673517762843627113853596677371923911269989589836674362925380101743167618311673931571399626099479614355756767815337405030595461522411329785296565878549975101428117156306358460502260492849665310026615097005520059904845482007334246073336827933807810727695590089793865514560377915645705570963147113241118909039061199846138577728948410494929459997282875511773942569638691800266600549057648934549812593883805185006646872931228359791045229082084519769405012676381868910499634705000803547121082475141685821607009202969827526986260562031056919453082657540586130075235003882150515206491147677719275462854197461858384653661512995275805699423791068180316422353485951358708991328346671284174456572913155203320304043670638142224358554138992186407497904118857663768223686969833684527689614342758820189610315615818893100501019150078768283773351511174263368250296926572329440662613082203474124853906164851315312029133756400471375312332092309575733824671426569505762401148445561783842737021091266979746125981620884899724811096627838770471805650502887032018109133007155287593439721254789642362762698371482406856722784506613337404090834157665420071418411219652025410647804999751871540836607801484168922587288876547502647852961811516961899137928523363173948268994098130251540654960392223532872787614960332194524470006562355081315886280695560299266093333364190188571752378696266505703311129724208290092539606356237168951802226257408091470082379960241651201400657068377921207914499221362126864480460461441587832572942216772139955468928946716120522172471419009421926432365951875812781269047841726015911221405649845032095442386783574423992179628681614572531950511274145393403371991930432960744572190370711212474887322781143408868419667436387655806419551614768151682372223217319690090754621036597102751086670942536947888697173154565288863129793062038048442312640005729829035628605130910875504674616111909549985730931507193726615254151522209191854182515971759171963940550210321854934599340368724880915962480229302450291139214417079498618512692726256805765834414726244823330569807174834386562394231775200517912830756635181740175139927451293888238938312389501473986174666208183910344509241067721306711252469756936751370661114761936269610735824465645102486434527271557018827424064578098351942863805413669286443099541484807131424473487415385356191256504357028258372891521168692992800546851501333291667678870212321155501425912074511569912090967602124041385241287831971993791380096479965269388054784132594261000061576543605348259915504505001609776636779395856770801325345960472252091705070801619221981133141430553988212196278346950341621482435980786430162688109265266385724679895818222793229135901912898908051056330839050344052098398431133440315342616065196854240344994662950071678545934564823364253890681792953083652352900353559309261232074087862433930940576598529723722415356422897232098652160711340482790297428127564522960314298383743045709609116463573081981658404307116159931932140397144705838099955490346716605533986140776104429981087263953201646620379353575205258771721999272776206318380297261984349929312293941291716822969286617138782713656145675874786851418338841594422530369970203014220246755157686359975978870982574285809169617874429237581150164468784431004926079951321804633288551092856965049663307222414596506774418128854861864089812344509031598172566143104211382628621346463096257019715194647665811429794139391696522723754338319611409359783674137716222606423618733480060994321046162808237216083602222639576455526642797680183281324821733594018763327042895791228222845573544537379162966707575908313276384818763918796070311680072614051914797274094909699252024936757632564431516139319358458449731338202542337209737570452853279783572210977156933633408482134297426147569587350436361774390316224371792334878432668386698629547062797389146237108438157937011966663327807333905476658043377455785096391127057864358801541414494370265611362112256295216167029536752549005723351118756172983200001018706749165365259531002131859109044545906845989829681506663931853493817300589863577518057349535623062100092474385406200869697290306871234985380882448121860234222887979871868613449530555769516722825720419756257222852932740544892706943753853767701794516416025064426008920785254105101950146221599111744859515903437571397476876809003495971725996529727933987253095532248517595831365043902142786716209174555228151927076289731729692729542342832328337075598654215332861513297323972880564695208440086383573433177833786502624122495668032627010510910536291126663360865269506916713378419916596300969638663127984252764773161945628211065763920112340484072596344120366712797824723885657654946450104288391595939503188881828366185079744813269706208995346688012493066784784995545401563290125665629440167508772376433841530694189755905130272574758004982823742649678059986967502547273588793088560422901226380960093715137560646290836180536434221444262863956621602048732717704596045856697115679654581765727209052333279730145751808682244207271629294568152536306070089659771303152845954741244705890923813487608326717831778472073681896521780091369740381852658944850304357512947387675642047574220689061310235336640325197229309534441251223918739149677100857128928943982284081049778730030492639210617101043829831912099340738663045790488914495309130749901892174661739385720361377464464235612418846333173644292881371008805156384143403805159259810957906016351008598224161838446890066529813424842265027158286945909909371628024915397321642394848483255600017703194661892404736735589262747770124924287011952494796555841286326197444737345342168103351889208827556446452832682637506556056342083451215975644897623542511353957933769037640810903258346737729801018084911116038957965656147773165026373677381696637992477021044457510952818118012468781511168954714322516857955653246088192244967518577572965662161982443955354298107104866558577709815691212277397141702884857680969870453618555447824392036870343542920589001020212265299060619230808072541904737936357881457673726738707578763314139482550512710503671010484732083081373444861009276993839968335080215641505311445740150437163061847919709066054345215563676006904774152415811170414223928800931544667061469310133271005002113255452069510610508144615411309592226815851051762915125676679165872562829680814144197842395328924026854808101647702611924051708624880537046783539347953261836366872373389445799526261185111635443626170895657450839258088675263769116474978105909801341514924795395398376518333273740959157095281953673324103940696581101460157883899696982286050658292152631432009716916906638401638747599353115285233543112892581605778795896322933809389960300621559931685635677729827215067267443694696545980231302566588035774445783267210617572500574786365743789026914765998064000215973155264473690591966152471467380544936681412451175534824987376752492568644366492188501568672321880120578806925085286858503910245357543064309478773647062654762820512024797663323214067294583575636385449518033668420510764068712655207551932034923799668901567873717956682443313388923164460725868236647926621268006938072482272212965429206296037634493790335901086305089827253452568783912146301404987427590388507973551439283816182223393995629446927211140370012537479121090973664420309897029774443116647117238755462519331656586388807259762974694158079399378092231041014136886923362355490424591246913274590381259519233643903584307354967095160749901561823466372128794925216966618705426645756944484942187506874530403612275537298297622058479620732431822214013255048258656320023985874106276961770888398559850989964556281613649239247981468294994428181254289435394467029199231937130239356432005099507608083212709744344366829822049598187129517809008385375454212400965700444641924448498038893691801559352632164128997435573394374824041160415693203035517902595452964782553412620940447894274571327845627542002453222086596279711176294615391539326639531952547571482215072025511865961807147851266433302817915385856203707243361058860453036770889533468142720435390034318689596631647617884361113413826669228820657275264827860674839879978458071324265710409999330950277471080535030046965506206567973324877200342555216251499341223777137369773061439423740690321983226639197268029292556251054556053167927706899537853167907554690708443384603309885319094270474477153009749294889269359026810875492174811806941488434612575775923748177649761720868376694925314159472770767913584329492386566699329736622333843920639706600162630507645220264357098497099987037425559440779363989678371897554318242451090874157699657931377772183113904096430441150585506017779536652090120957886157769755795995104882851029665924995787002233804306608529142723694213739881204843197462061633044475705307204905714647160760266040294558908280102741797723769676813461521986542188944510864265890907439209609025295808733438281841136572707957087446394507364815536775930099420687223206372769326425498304822174998724907971993390859261359866415831386783083791054030794714851496559094174977579653487257407610577683794201372892242326805905643328033576413656530567811575684156069550842580674365893801740829469753197999049932462883459303123932810963994787565773082946859881988445925786281104899882773657916456793940181381393426647035615002643178274005640337255418401704561105939583433637152059488621194579459396850426115938363013184087598330961473074832046566217651551589449773924181563357520175662406183614939821094590007974185703611094697097547387771957509593898294460323874536010975292398652699922907825010196029970542266081830645392301614866162761957232502949401719740542313752639172600583306064816725659099072098412581959252773782199376168820233343365208115596104530180995786809724557400512116353304668547485017808878291143161157300808709149250946784782375267264921232057318509492390922560133178671164583676596843968629254199418013269143178698846230890317123192422090574062933891620144837867221962508911213384238266539447190801938250839583290102571419949411164722349226543537387832558323792903675372796955135117964054067361432154310488208302101951467809416430942564414782075381667963835698773698534951855560431645024882759591189890176941121431632541473589293092394787650597983729920269344608893684795820703825545295509648980430248433548973660688018774416775947541203244894878915162132642855590770651346535183941739537717655388919394358835643417738419751075701032282108594248875225190043541602371309884434862383336739066502924560549243981353184541993852733150777335575062651928545236123089316824292689995925618825647667608316648898866273432335841118209460642560262979108147968515507221461903232217720614803892879519451502781034544325863925752242032128565235554966314695072638676239433749472916807202130465750221297731054036874712328391955978299513882236014390866847947155483044049509057265743754744337172644109277278249684642854389015510094990090861980766479120823916529653713342844998448657615323511560607738602566814568609448705358925025550021107775731791838921464082234035242385397162663578929852560187947543668018288369679949012281283003490699900565618071305515146777690065597680905757128410696187475995041645346638837843723250488651775876029577078636185584083272914872815587271474545202356245846187630111240957720654506929839729938184999245515802240972652478283846510656707322246961065739523859774609872511547235004649906149426580686601639599287518629296048393785003810681127649489958898466084031693311073086122090039822203835408515536080888033144594637021414004000313441387877843030842396718816954211694321374981215114911501240308232564805594580493162910543166501961708306080021315944198467040326447167737432111974725252285385605845524744494012826878701987826888098845521977404107651338740579251664021138865796345849427948439427624059352711838112408062354054399981935342069770280834406038430493565829409361857775809498445022715973761705140242727047077212039007098250713103814386429419247752605305601369794430077848980842814040566036582201058238498160879013752251329270831420879485023221064670496511659672687508199198626585055235371882476667134659510059497114865341198457064462780622285142011642518446293025700850671045649130933347120337812881500037417200119735198535929645323619039558231881848018464280743480895745354507328453847640743971171592459089917120253656368123193631958723333956090600510816224743946393538628831295598702215082189448124629150982834211163916711398362969369057043441857491545365673093929493772881279805994890692129719616231723639386773566421736089443865371337407417141696354988725115921443575088081213171467766436936382929334077168254927482006717649851656884448326398894059702322607151323667274667928883424159217694864024203504582761949708254554051672507078695571210287467763548012256306707208067354414324562294743255263732349447459363886321445660843429366602673564998169870904822353179704307230336579172873849080618758879843195339947177204857245208266826374893218430186622819130065138919347616880686437125652826917787171912903158636940706000586616689409810970763106494885523409176450081765499952589113721945200168625070085739669217281049117940851641955638430842586082647791410795184538054293868871543559894536915439679534981821579625199037599939649394777731584339297494271320546879771047466221289958114205389231359756153740956982772964908241965601530661241745421929666160674960046063477153445575791146721010903860915663405382397789617010019233822830047408846031861414002647544732586605583813926131197843642803396443142753445085128939576998950040176569908701809482116773848564430921890652914880152680039305769318759592561208619918912645761362459249199388450700123648545021013044180891473835329473462995345587228580225979473783872904576757841782691749556107547379548105400865354071684231366026559058017288470523011253030468686994675469159232955337966473387478072110442984557423865052084116733961135849408713239052395081982119907590867432835373338773222139031265115212094757098234220542731474198180737891916232638101685676410718414104361451297100569071740969264071117795924803080940699785763137399180960609582997413735526097790463763167580821970201815838455485364835230802725459911036946589195927353500285108732566406038348453606220264646817993217990301160275016570349750853086724965189080727023753555273534493593021327408589915215326951659405137138462651067337613172526068266996950117330790751742420221471347930768702331486517353906134414164191816246800378510125393119705184959786760668359632232626200467191915401101207440986693435104562984867684655429292336761158594145676494862800368100985322646888055101307358056492170442438916406435125122282116959643677743601709937738747363585720742156167106140237103930350687135377846777061590345946256537116870795960276568945284215184220387475114408427496001420795663574158079572289915336609561275881912989940430482462393801166219975230666760761384961577659143490776517830620295845460827454701094972494525604149768089008004373584127149342634210346850413955617581515983210075670679745027351943210737901615902190801623591221064936390318597663778069150065990142084803429536915705364261884519978915572598292654747458665574311122023410239209122658464733500297124729668823562872673226850437470367026635385221328138914259519671598426974394939904382041800255273571886498217959974950200368917628180946860352078603598563213432622111398070362540466691597734562067795072715603661552992264888172940687189733370182316639025885732789162116459680989600517670293728435714965140564015773902208009869727164675048785780664675431019964336009436527640432733833860644167076249373941208058032607243953147253593954358756666849639273773215098638046549978756456137863879200073254947346027124923398628926173681293123128410072639304540868970545225112840102402865196077859547017475348136659689563692925409724219147463370531677810751982923879936111610054529752312431581175704810527007892411118722964230922882248083930072278090129134359062998254191360391338016785554653703409878059180044592104380464796719610863410409269104664783102527417902671465090520435766622120017544964180676482666613253203449953204255758929271080107675844276749890179491092895825125491130453992128226322553157244479780231550455076025396886452121177785754476794663606132609863794713305486382337838229220963945341701342400459207567012495543809974553866730418500434311397452185706653901973839531661008380068986300978603087574697709610155093366183073372654014968900261653099028140264783052627172492760311454955915153873973294773182184010911363515444746299585370609565460488313869236937143865301846401475949896610833434658204626429631042201885351739544921215019157818082476172739429857571831934974408054103327582463064831150729684202379671433529660526419496138583265607846677548128208880349274236556682978597317207102936172997404417405277354604791547018049518512630642665427448082426666590729528030728680600331292633483206610768128945220022976806534063021973064574121633378688499298187148749968161762904605962483462882848755982291526990044151675706628306107365340519294940325395283226448565298899795878283352801245540464748614159244540569900587607541080482601061890390973982127992639628414722200690519867019520277709540981970903186926269584895907337602041156229244794559287904363814662759951440551975160779116892020602398124786258162638978529492383245039616824977098258913228115586703378653670958190689679629737530930074305591545004803032543872597002565385049579250520822571394009350455330173792004064992449606568217749924597659932833408021210335670624573137672809725790916662663971373972317554909436536948055608754466562410549911316225973926150860917340588466520808033568739753180996259987672620462031915656965848733521963428116588606173122857513633525114209076839040505688944603001144370749366869987937882032113045463294814390096626156120055809958111101823131551863322551567230434476457689528454841854600782588314411564949185376767559366310548893699630385127970978747332594270226268473862404291969565653230888790245746437556680387546932892054598341354441526097250545467150475818600604767411895425124024887669385593698353247252588557697573188549771666696301055926653579984338754915995770875610193292776433702661242669844300700580456759088872088103583484337866127230620630778641597601410919170202292017842411563939048445756163410800341926563208481898003360966685410166678717393365603986455631697470393384133210381656003235412175522318117704012816682182885932397043877872398838281042889221826354029546507926471073283614544465748107749768798608510448635739777654461315796508021066702226582522370771516097268001818257342439041371294512740260340608733659504193586032916465371761565337285710447929039043492522414058932413302243288250555845501887387997670048860228120188813078053237246121352194299935173595108871563099691375909864127769434312046971681403719931899790073236545187462459913870708433460609663803813898058585373068706314608646124086269920813566792443549109971317546327621367787288479610464914053107627329907347963851792026892578256631988824261133908962421513561926966518516039088818255407111836656553125165241422362003558074149849352731215148201880638068335334215907841053990985199521978912838490010063913732501800445000897062220378949786501551993163262674364375508806531816172485500690147656133190585743440602024449926749902516906873930145850249538944953192918085717816155860693911249923366387127079706828568269958220933563582659135890001591527305701095763293942141569796590753044349795651799877514078947441228977707855083985096310805089285068660734932302301306220206212967129620282956108305828768423983898363498244089478203620983942033142785567082439061053677092499148800942727689536393500801423453313921210621810911345872505490320791469083793686902986957276271706505451293006780525703241983491153509706580178347651549801657497407894916035219929213768026931397935249868768996139189540329714281328876155100122876062025222495162250018014054431040013204913059532199448598721300478103973406683003293496425477605493209413800671266942621380068369922534044320977453233942049156767554327386643702475609251375483305276048572845007663507021922896713006105912915573189796744114443056714850833668323802495586580277606255821270678922424615557364391143752495339569248570459229549051941312968210113550729969466877182464513044437711653994651737282790519403715043316089595815434869660684143404214250330700845114410687518527364592025205884758545720112195718053445478942292508409882737030496339396374003914162761701846382496074674734339114588724227868947565973889367371839569105998038576512616179548650074896368936322845508896931610189529699535778857266601643030543164323221491572751986484653587425338580568009398002789343544092631617493781415008085284889153402092036626253445325694121364876732325003239224151074525380213049678265246631935744887557139506013201169296478610593805008066990346589957280764994777203289122682118786196336802625220517662686380160537617761738539457679093993357181968900511059340427193070931722923451242580604553907229602750952671776166443938533515958343249979495651869130907055682369048927104496755138005157289231270929246446199130480936787861521243436969521217005794820649590226737274302408158636332371457943286937700176804648334467443965816196686405495419191699554379995443178122476387077309029456628458680645642864363422190697517914438704959468334477866010089042182421977783770396027511557860403849574842835070977322110753324787818362622457118126886374719485754271439350490627415277207247986444153540771183225924386277274044154983371736056952623081220851388748133874016457787043471586979051257394727056190385967432001951237211359318925220940913113927539943480171675006387155084475974368317944155297703498561516387851005187470707929593576530204492754740221142499347315347028725642281866941024463119463196766963479722397782971080833270592714008565954613608361693572943164281287891810710476222996026804754253127899102495726464124339773981071735369397347559084875261864804123436147473155976603860782438602864835233375566655168721888801516966104572074326360045638573788346285448600037944986781805690201525741055631778390500772361877624425771782739234330428097177227727300365654039078030047425950709442409909316515520507248779616188996574459616885232957713978488544858506364644075115475249449313010017369430907872339790053615955036801638334470917366419877751409114006542893346226646979538150461604019540191383754007432324727536030847221477962542327622337954191247079089838180959503273276081086011837685720663781883604235389509520432043365573239046734338090970955762706755898955734125771776698218538835130229348093801248657135464124953803496307061140936980782065242932743586204057393661236981799523456953002240259909554594871930515019487273681142364644558952552573104226815661173054455122416533324340390234872072901287873368824908129519221155258877756044667805304753836928197728232510164786332439986759257357753573472903372242030444496062676753311622827855405669530678563232540770634140793330725621742592539788252738036907216601480590930989862201993707618185889750607047023072546156679579608860319217014448512972973897524331211660528239279876481801122049324505476062863883416828373557776928905001743794407113392147119786944718813837671743951527409788740516176847212072749551005042076022949065417409117044314539265220172793868146881741111052344562807021910853570032609506966797578565785586476458661386204453253235855302192948941567951845177846013537834045888251942257814050286402440528609822445562960096132255705091754553083541911553831067748867713710105865499481529392772865586456275754417451305190262750529025711414062355047175689639299997193189610206280308618910863152388787164707997013535418243456687397093275012842220723273142760170756828053309557358479125562129972351867026557908223037799519130617761268154204515065961599359687745394338959508812800106270213984566711383876695391042984095839438376339331741716329424615288735148113164885472285975842416432531177156220578402665247488975323527570643642891338837389681812063526569122888462758222953294855880857213595500540063863068128007804444949152445769339291409344262272760540428340631477126307997792710212919120974453468144132159604114347570018945585432740317362121905867491744456558456517837896441739908239324574415582259349250973710940862339950232048722941081873863231521284325698544739240725625325535009699592708463200449820427854270035575551935402695485102664680858596070208525807684363032694375790767616726812619649601180562708178461401757335642242463326430365525904975778339731832491221366666542550808495405121610724120868824742430123829644197540626178598242523367902950805807895720393993341986681496005462924083959048740848821976008209156520366891284615321301139199069627561258724224717324673685795786158149382194741000461659060586611209745756792383969925216681871070409382061137745295802332467025233171709543052182146885291682984622314266964294670468184246556485621404009795920690263360805285993957075909473215696104134254384517940981951838750714678388815508249729927724330330296828144441106199382664670409767756863101557431803655707703085558405926072913117124680787305894767120321826015722816053538707166563693278710800022745760750035477645517809573632845470393868931927740401918212473280437634989515710864435955829820163752960012080789589973999894999809415633803921190498815252787643518106143029062044675955306788732441637485760690309960386122818767334876507256658238325997455464583165219588148207908941068983504527445229129645317890608870396798016971607986063737541011591241690689178662383885249154472639869283832551100098739517988632791199918830190321358627931511572856259243551981979749107603129994117102624392504472417445678145249355313694248519378833537089373989392791892889244325380998737115915793047765508869365368760705642845269275928985516146744940522919524704088913895861629057023863243682397873079137794084965263566445615293363377727858289654917849862850001809315264268665306369380952286664741570661605700500799664026146956405172134265533215492335380791625283141408746736109591727878255959957023854227708064063789064592864862115358095823832233611089862667695312380126969218162926184256333498728551096287479480385093407091757882199204429617343435504592938910176761430265519437009867647080123310553171172311843684834564834008876545362845626303509082209547689244884054859246235808793758357985857011480447891459868080520876114187894500820545396701666011785223202841245569721917058623677836375027454407091826992644882826422960914444433522181687429505609786426223988183757593705443159199225556076128184923830469745165429141860480093384025757955893393625720322849334623896104568214303198994376088679594215812449493727491825663380908243089455402665509888442681228398297745774104531163433938895481779208399586407517802027695325284329767612133503422765775325138196439659673819442575387128943417546112410446556255669759962863613627989656028232672709407335447814923713396565485950280341802882007534621324737880594128288655978573890053922500125304995071728033279063647897928672043675492982338423016890677872181346423485169013552964399155420699670690723472604972580993717431509864942199480253346126259649643058641689067296634974611447172792726832908404613183516409281044807877746704769044065792702411413637063435326674662550382670560124158185311120868155766447681193448901500477783598051420547487956234133969708018882292395376577261872509585051431364904849181093892205043709110398751619758093676746579653996711697067437528779399433700347547677053893208750127411509496392637501584918884293682637995692879675378804392754295410720967440024469941823434388450315232339227314045610400340529765312009316571943595227702307638468345885102741302594674645015095896445732114402548517643397731027638997344324868643245967923198345655167563948602506524064649992359376942577209905195901621442049557928648672343881001597350667185676246912665947481386627998481251107263603391750426712913007218383611998263233725949426298710773662723004280086306879242633028858630699786757401056223160363424271360524953185075204371053686440648425856485247559753450194467203300723687571954004417132079806224367478761941879091725393957551603137290793471400177694021029528797774650396141346021206589898848063438153165009586277851196785418139080484022953449936552429420305302694589760156318747870185856888324881172750809135664862534869780815465249742565508572741941471198423475266527281155669054695618458307143353109451988712380752133640713158378885007553389656978319463591357227952333555178676699589147769701103688622050236459476001959236783555890930729197653828621634504114642979243630306526930138549957451022486831014957867737515247344852912699143493434957290916356827782195403378661240632811015555378072682285565477904586479498704364475118826804859641388406022261344167868845858203074767708706570967490845214927874237375563904212086765266913019577634979117576676500035771311503784529839236959729219617850630929359102913028662287589355487733873200312368463381362262994412809982528062437595990369609831194779675589572883483364317434077884606040025615693554417398544327211892777089027063495689054652112202073303042411199654757363223807755207822785662877804301304488367298191535462080803837919178498156243691800085416195288083362061691127178566245993820632466384996065035330607806014465194111959932057286057319332141289522644986428143297130973832232260026371404681286226514984960991973068115589735610819590298858840457843771177741962050815088569121882586457063961729264515341216162217785089637529001084111682153164775763156835202585814706835480872266951170967577832247472877347488399256473244019050019315991479717409514192946479310752244296217662062547393353942914630973128575334422612428521188834465372309291678790675003031968134301546679757959581562210814521948073878942973086729065619105495388771125334990684661960441021079421104462684012027916503927091136219629688180942560756499549914295284169379092805934108162643711192689094603107458260274385004665321159139749868578670337757533662991257062366999007300206301620298064244890404489593138952081281241392058352848537010051387215222299179630323564367029289126878591431840449713907494044265056954654528149071743468503887593493243833791268615509663167681028486960704374303617194756959910732467219218100031854422121233062696488136546385173810413621753506922916600644001716305340100669623184245813489492010232014085534948591328677586794707042591953814327211891664388117300559725691914607244361644340939784762081181492952825292112705416348916229436860208569017058816867540095591353073786863944455576371086059568678691232715374755790774541462464376160968891697706672393855946316127217355496616793976991808234507203244996126529930086668206008868452842772726447125612085047866863704410470826998778124438529797716488215111309727574017978970298397481541214546995710568818666585584449345630529723600845990687218538044779287832232557200545653577824671692092116082342933919345115954164907724201071326399918424138876143844781238687802514391844566921058044285344150038815758783273199361928950702518120604216435072174228332296789927487702439755150690208147884903936395635180024453041972578206831917888044657070151045733817935945316345466193346389032306715378494197349278205456709405522179300902483201064204792873901677660282461035933823919875629946362982752511579025449987798329903910607816279413812264009309629433294134647215700093674865182145835642184067894778729443404958666286824506826640717156624371594449285378783731399413255528133830641769087896967284613720654363023258292745810547027243087577928182836521565382541969276674882117073285614584662101152456484137516619043035556449263413062208781259742526362095683000321043729830585666953288622914681328830804285964132245160863209136006022018523852044134748059570303891984469118927015286936147152782700945067116921771828588242298814432934356817044203297624634477628324828725069809460008698340126250064435901313992363550705284307708602635214153670647981319239373365391041474356658250205380022806184337564020785706348492006592899134012546064989152384548838076152984995047008259923817139394085288684912837812772174088844757497410911202093295053732969543829529814625386271154706671983418924735880289961997050948916118892602761044685031020222990909900331707255110389109050004168628663984492460637615850794437961695342164422974692427082880027433812321739417203658173997084013419361187347363268504444147049375082235981785014798458003229076448297107630642514119138958168065553220262520755426264820200800936525630141632462370368965274906454284606805543266725721572573101813197789980272548308206942608883882538735364667508822586599128519243410320883070826290195109370866002310981405019795103670589282949954385478704158059242838187235970412149395103841662995178249737005499058082368711118855121282925346040608035379376279483323396885595946084721895007772809023976215834190708620745709837335890889055164891085310056794459399777954621617888434731451855747909191256378110738597401851189096709578165066506356803293004199186119457768135833783734764671757833381527279478738265263925306720973323076050866587682556481937331017524297930996003455902583469680050053144950463852187419629548142626038903655033439017358036521837608753336145577836069637947822069128536930251041056534571662100188143358611226864131488062649999878801619020487567877003836981662066204322509564413198358154365773115092687944391473777382091636976803835822098112593640999607864143207946536186464786542527151607111945110711924206030471853408030203808898971488219772285586571817684187659646564446580585857436975160941043191982053497080947872835371532725742489828742206478243788150457770017437103673809181917951262076351063410527930955414191243240003656965148350267451630820631871350434906792290272023107853406753863832955807453344816116964758833035345538112392918180901523787245650567718363152207657045262669995303978035976821217554986076781398034899495644076397915852597674934357229192106783851534989065044401434421884523655016953324934856354167839233010242758815109252820848820534852879201174091823536473308516415034236589886042495513310303083894534839805875406118618220051231340844508825715830041983030471503444997245264684070580425861926974898520911650888018440629685252791924798696244887809978892881835347230173170378858286619549048447272416255629431945724049840028055194744227632639238286628228513404423942772623589715802125158278429603813940625539820317009279813833898696105890253463856149768354275596920335666472948114597630657759945797534772440682068008216498613614748023371495416993037623260452166321631110523216761538399685293015513148523782692527333265346285744575846798494651164397851051526289038839089917217655877635320706657955942934163122300930280789735709865640174622696099328083591169987689723551537693640480073968606851464562293205451791428743281877680177235667231610146374420644638801424043940199336324705763569334268693019176579987630130534722111244807685696940098742690603865617131174057773419891792040168797101665977131847727545296776551051502790021505113248909167078650631725187795153234889704352964321454864978180001918813316078030069484600264244630070695236926866812284204739629807252097999512378635406743432936246490996457467669478467738937429912251061283811972031262001044174219771340114920750173539238048675681064178052140545413736786142157525428925485905136667797774686228587436499112342720066857329600783419535299722493623276013204313304835913531189987992563040605187572160203771369207866499264364712895082484791438691230106635546739642075771094854270897899458815800253106688401458267287011542750683117263169928299670182237889720000183718802411656527355078518313481688279412844222762194679663625589632451607531073221321378716925157213134973198155220552071270592810390161786575137285615227322675439849182716293029302401882161146032111785428701460728379253451178675161506591963698322178118986744042399692032670313118274611096313845658113506601542875282702459678457654565035804855800187479807790862330714379837935960745221442506174932735165879738729443261837131057662216381795819350590899513479973673656006945508152976337210645078500531822492087472154012075510616276737585348738921725255975085564444259108193675324483392602449598416692386223134370239720444872460779176125798043966400741890817342012571081592446815271282011167772064854045198809337718049259503060866306098478026676968967822897661926310410767751232754218095911526830503622507361286579751605843279521961866330950374298271399625811503179139360305128566617696283546151200096635627624460493923840575910541957785417436493470172352014818279639902305760174588333100853749686202075861883166086648292590298571103876363184772537875615034352343865151602025026446533524942601524006858330311674971056386178864625216356763219864626619883011834680086779755694104258879970238557310019376306820651356621938508322546458344188512206068305162977716461406583634467631121784869849085697791592272587329993157489806298830679865655898213958612684198162406129884192353487234662681301294194908154533947309776157194972193888064133487290835905554642897622816809088399960119434384913236166834227810064118702209605596035520027027109848418990342162361840618280226771750936945392694960655887939577651238945922147047259384100836752259947409147913318454583346879143444152979267683773263797374283676867816977735675159088856664606103201778091203415536267879656942268577789466697088194830293367655685135327098565572842251577091714438121762051524109225187255988994121070790892425542711037849369028796874669053428402825111218224148015036896630009508724936896486356789477525875073566961556376632924506558389341086177694607564398865267174437438100040285643869877616781924084397932581052272274139429103323951986945085046736458962413735188104441313459110684703043557145479209768932918171220353200651339343940205736756916051059511322209122927691234271974725622404277974297849914733302722947870894435703192755957225752551263650152601177503045299298615195490222536980495733908699912640521836039356096731534867364061778103707226448041799979913806277861469034244430713616855597558597848239391548946563939635456566110978334371244551371515514673687637147812503033242746965710623371262743007376031014562738491537253146209561938871352014892549064089610258625392849861999052959036837890036073952263941097366964751026921267696203776000246324704699030230848892330162016073520024998750215042283665275408268970651972429261328232970619144724882307419542722690318811473814519044611000856754692733507494364370645386137759710123506848377262003932482202681474672066943251554471604044837606878554141401565185127369342343379373269872540490038667859220291230787548382041769980710666210552362114347740534699454474248961133326907450175355270193807549076079489596776161595023479451248598211856735030963648804703835204980126923949656466402038906917644654825316476602831530216776020056457788226588719949862752812638067622131033725954974614010102122088811537120907403477597002692404276110824493797365777121958255443815537678715304906460283569790845696766029464606510017615457672652467524247194643445392059689477648580599924853945489284043735439062899067032992758142311521290715864972511721353407174891939835689720176450712120316033525922976983447706047173363308515389297015229866028906958829241428395535668914712617159993505255430467011261764588283496248494577386498816952788439954003933414239631117897211762595841993648227709078273820534815927242606782182483262757955003062278351469962468488956816510628552863100382652777800935910544687134155004676693359647687663397275412238828836044259909571872533475905598551894980173098264054894721744553294894226125256342177171799829613080951429935273859425455199068378494769113472506494171522570941769594406768818122289298421153261287853771909087728794846645472874541429320268708995124524943354669401633498223656692192242194531084323920375213511852939940285300994660354751895913804568031999453569543659092963779701121312446239560886531005234315041232846950225519798204214724454808388113721618618690723008249704816217210247406260694302033661587717458225202548876343799211687709397402158928580984694140270724676563232345350848487139334589334657659646287706556059793792454883214450730089011554655731429974822949963862028683050659890368251540672645496909596545025984197830011591612204051897769578346585893635159502659097469310235363352700480795949475666468013826417822807004502463007368959557108272605413244672018457332165721664598409829452226982953122346238648032610690221518483659927948613183498328530295879926636547211406176322528058188285258591791985294690004158521009337393016931173591787100036483876724489859052812457979522849988156082830018020154220627102935335974632933885157685077789015832087303668357019121531077778394427449700358978381687163602508514664653020807453973879088476919873337755349999210535158256466089159606388638407542964822363669953055209208992170049377086372001156255459366894910390782761291030601042672514042552625115694320776392349635378855183706139418539837054685415565087561355123653862407263089075412979778128547284377298226443179493425655089790206053621006698535141930078936703636742173802414495733528894564374624197221617810337012392402178070348463015635532773704231390195488432555559583929058202277880944446217078831063363909966959483452978836769497531339901589129968924932508518776908029832853003122988439520812801903862389206523963143405948522908925194871874042982541816673386821059997212449797797418778960708409541808743660218643781968636265024399619922141192876106304237488002319796391287297581189552563082478459246451530374263205035551312454233760718357910566280772470939929149266416707706666173002893471048522858780390452072509039382085262058865872554653468122935625470602977187034944477931993359529574708376955833732166708895374044021956132112562684454031169103556904365436258602517854455260221474952971718017384306893701704324270419408734637110154415049264041975221943383726200560191263646057219535088705391950089823285928732086645293595311670717503314353749813520541173762342404274888606484623380934177087698852817066728723687629951006332175044236384866145381288266162920073723746157269831585339590614575629900128472139002578661738815752697999531138505517201606241597179217505226660058299756685150941831223376714845889945037641296281086981381096783077941434890406888543662110666514712763889140776060622763598436071525019226577898102819577926998527644479668030769071331367908977443277545101472906091034527258776579177240058755723446940445978997069472129844317530007248201474257703736223961886268734012768686405867927193491343648455244166573591559214531792100609039881308297085758913566265366363959889333563058211993883859745288325273590964647928097589062637245675596802848927719464937759120475353093868747487828994803632363298517957544064528908443434670748234715003293176740648525470800443643653997050635136206872709297812851852363275773626463736210681229419090310303364594880999160015327163441566377995776275803785367143875158762823755584203727131329263419235992553870446740054455847090363718972069825085292329731111767295400147309640711894905949514850553311401133344152179712991447339206606704143472141912811336147970426197854273468383377536813619761907961043362957698757561557281246087588755990558858563802933114972582020513527402063734144786376937523750508819094768964275167010961381081257421129898276170110494827105812583881633448896775951728202607223021020513002721605603807952612857728862530579903740999925938044976412381420007420507267761818037312036296351296686101612676186867768884831177610217605863508075568847742298272177065086402563155695410249351045033499298490308601380729004778403436149214275066891159318498229120041072670266438095474848038665470460536871323970285355911712155949989734914902097651842163450948746672445931439953054819038240177638658125332853328559752103470677755576215659536593990701873143555883514169539659720952053112897768828536345017573088681674769460796875855913875708129623852601627986150793653440378586693916752561164632246755895149441587479588067582475529386545925409518971767500286196160818841950441427268165448085145145636292901107606676377415866561678786766914766593681700849191660500259151068850464499460165669028675069807660763735414978845276415686883846277644430208168318796716669240422145754184325626538414154260511194496681080761682846736216065660868434460396068231258160132687008994898195374971119678522267231503830319798132816791844772584502820227474457666721655172050650364544861300859440938759435731775733656333497405854312786761476812952016266842842824817543105968723961295343661290532179422493301915947105368368335098062589351595499802397857954780997844813700227906502951210852224916672162525225248407848525524205241995510223470599296052666382649774516407486569354030776562286893036283205167580550090402522051945034875525598780646789371183328670706810897444443341052720788560082777184640321833898080678354050903044194106881475338295346262701490374291493482970881424899963501542904919220014366160580324388206662910305640476608595741174142394469475468124612005400986604012369098801174139890771686841236578673457124561010336570535129969428144351104937632327078209170808317556725058818223251713428964850227680050114114893381128456902116053024809193814802379122981625908408719696880312819304556258986138646709687460529378071138884982221496955111402975845603467738959445637598094406439315606668566208253098117338921484310615227591369479425310005462781212932837559261811301191260314022211518151593271818352031277145285690383684041067795499874778361549925671410627451946619311670900919630577497228570960460369725469374908698947844826911976978960738346477724268757217958179627190925677007241942799235318052050635061763661821100767700071368487974887256962457490218165886496998409808608355747894105560543808501828308981934316261707284464420723587811232404304658735729172177267618034754916051647618517312322735507968705460789748495024958176251986900118542652684072547355912346084203544837928028393833333802850544906457918366067030867727456291590955820888284357856637710314691302824307269551194469867640566408544620676130931389889352955572631597064433455216693827070408681858474420339676687364126760919423510016200495557333980626184693633011216376027615483316915214089994302343950060020815322282952404469781094890971326161124197603513161699745193547617872350954650977344482325817722643074836308853293742770070570544808662882309648902837653367796873273633190884605503947100153229806655905314426834350721770448459697876949428852812690835480417463004027480967355322726624254830254665995774018383413361083933140529666086598015444081586021004829315108208083992281734022156823737922268531638101569954341039528909814070056479745184737883449694076814278135206058861046028248860485326444917419662891086061045715473947724624067731023742639398489409792449797787004980722121602915305122566365498684577012184194190301737627945052142106833330537698300000478554176527925933487134823689521783587548201575262967393364986510223931780500133291902288428449150555370223936535235864237587573398887604066213214795971946674028274429597734529707463425455804095583708208672339486170148581935024232392117232164362421457863963051752212336391031878592447447665652181066184350318494821352766942608820969232262799974365332017127294568884374487053260359074798968744246868310692940822161296732805511723404590892558824353512603994470147022511468588222174340512346420433980748469623999575128674147553946501945585382527366216153358928809506725246168504595078317022396906672285818902269349762845921402475612748341739532006629987764354043564773456515206319459256377785232338710793017958599331799245953995285291807770065848898531398255891322570527559971451728208665557751458785766106123477521516607064085430324379357685165756333896275742653972966599791529699994264048906263749869740166872436679017225470195869313609804635431654860328681862769448405475299526651085020786821250842074167237527789745591597106118044096928006806711536398200897096189633159372574386362025462766057739817302528342241210243016713714059129483126874850201419117313392530730248292651675681008825296277139367442353006377499818599961838278245655971208671446050081157215972642758889958261389795062180298100900128284172907246722984305034053179010006303050353450540727116838182012259402639250632569474966240992089841015853282873691093030439739493711682133522920316015615593669461528242926012911041733650726623999064500779663510089252462318212032789349181305378972775909777982670771473750576787639576313643343221752848464439910445592233575352201094239052706769119781093410937025211744967533087338686249769480925616246885247804233278640248083095429142538929001738079245161424626317147940506591312455749445388453632778223830735055882835884587592852497351910214070533823464864934642947033165195216896556916414020125227706217218163322399315913162700219323144829411533509214658697499091234219846996950445261399145013309217872598657910454632227707204382076265979808744037758328731117602410706005158990296961454551815272979200299775867971670241385991145720321464825553164092455720198077694718259032682590343050944219969589436965676407089906226493837619074343884368192284508489933961503888587324634263724486167883156733256556544446672151015371727341420500113310542784795587284767458900127199508615904425565630992893674456403006019478830357639997177347792753103769076684580442253366364324097492523163891477202207654350287778298545884672696024196941231181469582179435231093390380789515363878261699382277804591574040223028795467616399513775574035733579326379588756275531801433582306323600129260554465143137318078004926132715682986736525469726936245528356434290676480307629521300564710114932000668635354403289271407531126695115372228210306672647232652162584422640337851582159204972974407416101825446164180649316619442546260841340363993724268264862563617584735016890517674587756231928390604211770969473001302859172455550742673080460823625834001854642026439618061475611180492696704605971047608829562875653412019306675939964710628736551717331386278535288015279017551383410418442097111321250476077191782315447394284524366165776815050322035740750494126848574509082394867264962471847873120215988812135372320952286802291944547707865171854268398696783019492117412404268587756146189088865549355156046621346619354563040873915130011091171997033074990168062582916529476808474339835798008788260469997205314128918556310526698100255835732706856018653833853201726786447461575932491413112156634813227939846556679104810152139535183868516176098263159635515091207676869917766450357850219944215217948639185506009226210753417111234453988995341215364919322615996984024901316688607946560205269529009130685988829825639566105855705341610027393930394708516217892513894849492300577011131260541900855756201025953409675613169273237528409676015426188553951968253484070268840085922191665842620021730060080897231528693459866253513400740566789519880133622728453762468441731680905917776716670146532455844936562777021820547418131654751378321344967881445490284863221247588549871584180420734392719837620793384241151284306559615543056554485260054988292981396865434715064769407827605863138750483477872514386540111224523776438147156108486172827843240237079851628170741031008117175318749272950439015674622017834598972127106209083951932870435979598306026542264645350601571193662203214540190979655778414578461958616670652152272438685093919000114322429368482484608839519170174064198740125940833985816718932345042369340217626950801764087736979602826134429396420633960473944198470604130247146224063869982782973329384654607551802318762463302546318630388965141490732014565291359506842777133704587816292617517810549952275012060026136717472001982448161999357792788930371295452972145977124501209893454014140511961695714774422392679711373877639767451127176389856269382980176287050349165065661867030247069445836712435991825979745311864766765590666207281872427867271125630808273706784925292540638345351720815935706292077071293944272271859311638497089881754477012885749128730190553039131305230031089307351037152722715474105484539159115046326767575848428349757034559758240462714843481196643624024100815287651184367457392779490473364344625977943082634311755738596298218272142757319625005806492610010038568970582940052435618609918208394131190775585953488922700210484426654892719715068396011731985445324209407936479272357052956773996376650673953988565850314715034049362631007088348750205314079839969582504068936221517129157409467399852718839304311785264655947211154322231801966284849403806169076816650451808524135267412165640602907283211152337028856716554509080998547571433786994528119809274421576930447527310143256186810488684930472103225468225219633133286759742146599415983755149012221251374806124990959486550097688405812725380416835768732349956766146895545875060285876315365733419141908580164372267378900169044161140138972147627549480387351546299453645241459920012463362204159517953127897739725470579273485496504187313121164977701935985908440210357629158776170060247516641323629859308405367560291779387415029938508618495461143102947016364763727256053701216736023683439328311131211625557634554788763314775850818685161386919509706808609775689304376791665202475954248522536304456301531017867711910597310444941170337075899499476529190566243670793175491211642278973983981703719783997026121206922392259136178620032519959883089273001588997192545535705446287071227418589054627601899515031250798822557610833330480186585784531175469491354907457804726576408258422913523700775432540204152188806300937881108939142689250019427629436529703452278494105979602840389057857748497555292050075902112289758657565780505299549336582536713281952320927196894147146025626768961387583981767088892953656405495268523374689149532757034153133337832184501776506403545378188907550667609169259386078317234500684417324890769657647714415275201000496314719008159426731017210909154548078434680853465605975872058407309576436858078826499017616381996839693347155311697335654764559831468054421372408430321736814366354498092226635809347462604902506736804830024838194388087439243899678416043367245026960106624105633156945480899680396355700716984819178720376474904818460012093576097672683468509790902923540479483633663159725822918717826945587088104318209357080475837597191961416315093251914755548104444237941191639929373715748197900815804176537167999151291488776836087163325059013915355392664241375335705716104127897791648557892459730751625235694534641621206972178561871373332239639235392838832156292321506472199969353076464942288735200088130136726148459105718068660728142968742398456501045168698936189522211760286554627362198732799729643078336882433188599552955142226287180075008998409862247210966908176734522789495817655073186076935197025603738961254389285882904695461661235596011566493909548959577450457677229158646394165821003752917287723678866635687391196166526520448206574618933139577851586417033128869684385920005730278609556210813415826151271106458761333139553762867652712270537405983174008135492516556815717525514988044436538771667558209248968996391433220112625658550286801470448076034018307609865707048968865689662630833220553444207765256501069718429868392509579831506546491592660786393415619268902083760297288555716026141308293090480178860478523094842555335251510476891053109313102310335922686022195185540231076294528208449749741802943321404984520803503243562521374636320345028459308004827936301265882730978177769315942275794812711213351143905570243116239775666431716102158835211119975707712145601001914573364304169294890491640670426175223787472544095306838025036560235434515035361982870698609746412547073706156493758709690325696607485912577315552475664993571544756445797477832307544408908527242630801486216609814861227484054790750749924383114506384684205370147582197479419711576817129762768808187650775408269318598372527813908244257347252533748018208152421622445224326124398009428853616154133792767089857139885563179681707924509190677917456474928104519818740711514635929748292286423446213610370313895623149346439219517690138274863279845635830183501742166937604467477532147868068524917737103096027509730181171020708627566948345431574934065263215683800666288325462177716257992368697296437387471765748217765099039897603678281221112841574130932781058902573795993029931271763492039402978088210151630477933614010260510413749438166600667584975542253650038563892364859414635103528103437551666717943034951138542395302542205156922477699463079645817266219017482907591479124576580405938287242439413552400213081581516240900315933829184432808439932440429898064850503683598915694909883371520998842387285594047157011885514897976976299787699549294380794642141011920379275747025139324110511978705045741539366530981494610058115121292641741456800224792960559677012088728260196507074621934559546983816492072513762088463646177044660666087265358069050765232712217226920484294413044602152200800829661185801562535481140385613861508466257226149608525115684218185994235414126310323926032297508962570882343133642095179046765200369469030252335551145659455929605206317606427581671107671998622219659554597535951835045326392504156541426056518434129972966397870110848987474968193889937824768667057534679870058696418208919236488618074201188694832772235454684685221447250898558708594245147943351934720828060884679031851142862269188183780520942144622329098252684353597168950365482525863458256588104874753718125492069537392094182415964340616451121666224665024702724575308184147079030174027935739468288489337480638705476995119895939115321258685343818571895895823172044526673560804049461955136995282441746416341830988563658809528079758383259076223961189442544889458013155720851650816150236742582380270845596323257016979731609285595648537267693297910923238981893022385985411788719476645589802795281948421801920105921635899752970448838436790530840534888197814670729762948998174639355823461654022656222095940937352048480191775095417288094646866926802531499827413372794826115352972343014213460397531831703054627666536611522260010280337022011548202119078665475613984309223078167221733800040126423856236787891369518254171693962508257821079579039973831579378768057657943628637179018488703882124345389493385696245133784070139440090733340536871700045976392370462477739429583505929265731403190296925461743156619164804515954766176601002735705170528803306880521535236147212078847970628153509425850349964790332447097956150413212272005091662214687828228517133861537580501298105297504583371323796831303503723734507106638870298537552613603028237322440137784013728684402677379710490494538176833522746915951344740034348747815953778617969274161776671906340355037647400639217843925023057288015285553047275822743824494381087033920089481526096181102610048802026802054298386601035354585005545433769818239559227245518346332312305715676951198795222540111268857825403569184878215007403683810134330450093847803235324505378260411079256856684210071940647277775702179242370573120289366994873555806838147078310414072852089891054342433153168703856947691906621445759511131377594704756620877656740787098039732695027694805546616496186042514835144306145079292679594153252850669503998681760450548577130692284318267193754475023596196600937290501845426411067715472249978231974385666991205443193101243723250147749730763136947868839237484940584381934223361267749633617811374928822814648128112123779549573167360493156523882323318913201907081900525919829291222275628617712490753214449590272456538928279801286780164360579140577046055357211142773883912894873268884876891338724294569975384210159747626420786301770012537125899447949152472373404305656948634701850655082041772937888729843436501424628709989824113137860220145673053084428972088603560402793685268796488331462420129407258125870698034623298302030060582144693820437147441624803714917442375436865366804035055737999919459586747353113148265462907706588895494290436618988657076559682976790883590931969775202472185998559119343928991047043092531966458378504954609703454252781044124318902652542913149355746107454322645545247881635808605445162082694529225507529513141525960125832107640770720940871973740775156346419857242746499195328570346918736865300811229001689915672149622094205091698252287636407586871109625805855166157455715904806603340141992499575087971962247080401152874982461247133162820587686219983149669303057693902442257849265793483144423563656257941300402258808576926553991510835848017766013546555995532690224781097984905905220789238770478460872395761304680417785629143029955829022279706385179935537082725010770247340583051307755344324713073363701456223597629237880120583278188402742909130221558717869291712749777168338353263379395706999588530535842924774970118640390317058831876205724947510220172827703565359039121452022692381922344600439444757386186718777441807946279742790580657534269835800308097549695439163348462226678921700307482230916625928454096060009572208614340896554603429773155296743660199831455105467171478093813155751921419182022613404227063953923616982127533210135910035340157895142111888770584382860944580486846316896028235600256685835842473184702090943504357655215909170719082613142834453072632769997099575324457927924125445164862409951120658363539619094121045924824994267185190118761052350395934078021334349613052177141735345996598459408435292195015383805700052597121151793107965919499891547005673385363776859169575212961666061621082293630325108440360270514884476232531058352809136492500776853207780208999236808056714145937855058323912870558868367987437201661196936887025142385332537881813730548039496990527550375767069378411779787223619608907331949057417428167476628518285559149804616034514181481723174482713031385953850511352050892386345384657715813093092791593028725444319362477135950551215185050075281117658625902645101994218007158140127878112801878342952297454911839529536696533563352143233665364851549060817499387695703623305496977363425204398239622272478895509025727389551443242445875397309372733811140840387894210745655034518302471721414245803136065384699065572691688509898998244754070540510386604647316744007016649702885172416368383153519292480540960850255560473352717367792980620843088417721278321320325145431633661804287186228350544953744729047715623699895770525068224798234431217055715541789754077309832110330289563821602596778564810441255543477711696619957117357491340044025568072210543699909027862800823985358225840648270545959698294415730985764489836679797029172646807711503308112409258066920190972933892665373107289876034504392733541284924554800218256025339874461666854994978689712136204989064272038321087070861064773539869226387595803526915740564416369594389473836389353316812550632825184365559254979380414240469168358861769052154881809775906243997347542253154927184232945828157918606196383358448274582821777026088072245042294366780152663538405049110230724213895339547984652976224446597840521593926059409245244704612998919547687729941451046018246737450535519598720763142214642617231540634320731094144839120654883889403233680189672701848640027669917823625438989676645669487114101941210930308030702210120786788518748772886102391601237866136884215925579285549119410810344521427742789002722073609247134178274905804696066080748566759882796842614928452243312364020556934804849087227684295508138061977304272708478084175205175398686821559743235646120533066808172769503038098278112590623251092843259336125543426972027997637028241818974707270211272362842620912229817883737586106818917231810217224969492088649277943953064236615117178705611913441221853986848010792819732596438390009245048573957019103495295903722528467981710347193817018218044422433390803789461461118347165008863853529350204502573423628252696797265993524134455718670710080914662362672602307025115166234585377826414241691097125947466941261266185082950820144320406547713949464177247048192873548307645152947643333982719811115021998255218716839012988947418776218119721021837471677844274893110860118313236007162568552734127703157270369257644902410056563250317385041992605218210616667224692992782765203956521764408913947733300285677855195720175879021466087754304870728932377516916593720900708209518342695813845042529480768017044365884729698308300595719933845922006766620504372299176577951808298918569531572044628483095145225205885325648262996994975851758502199953009037329490127334623203157236976905836806353154238866973190333792915804965476934983737655668803060023424475760461324675432385442120740419277605184668861054394255956314210459541879073120586332567974337100095321677165236132887258790366778305111380177342502995822414550332503269498293788616514521127756389679401149485577725462558956619364249781172658675209472339500074945383519741057558292636041997503508842536487998826656967429536194118639625047047431260852942450349916765815611122804043771735285678454145915897669554396463011597251599213548490866613837300349550794822198720359176496815342370712148846450033485282493167529334820793400408354570595327347264806475449562092412255908458080268086598272166723364611108227578303164718292754925000529183455809284475911261458425009295388788312403018805740589141813453309215682276106051581806234260337610227742597706010857759525106865665296948000677228723729170762749628609415816458755355793567230546291459340736079415813921223536211922914753112042152124904148962935778614526952953831410738865966766099591199687275182122985328674856514424260285200988835923906303348394263106508271921676149944245331440121413395686288211882212959564009877292822980291232470959440743004134152697931600118861660107312930976488799127457437916870605632925001085999049344554874368968056480760430029170254704939614589267277985196017330703893213088093870724895530648509764636982649690770311891525028017495167330817180850992660547457532773756055066808399621420138708569187310835354229722191188545071480218705178673252315905030964058787944941536741277229946574569912181308984264668366190908250553049308478168103217731213984379369837301743186983051617641334301686304266621287004349578722832405624199123660721347214722933403912924544118918794967655808826802826384833943736324348718128914244997303043886246394521647263879777055222215088907297405217007162598265471270736857529151041999431198752245134620795806898035226922172114825277146079770895870243200245434845067243995300647548848113448547605452267291680859717423776308245291523028910718136460706208042242489258336885083215272691944215761947937778559405748514616746632049873340232548421331941569910412409148823487159076206372162765575392575123677011915920771728284342823240956389972406425232095481824616028635319584426230811456817542026186100796425218977638664112001643090076830153553560054347423345630368748598270091138615234271662586795073467110566169776690614007301342548009591296984639353942646900897428585473125886425549623197481511722340219780248070653167773977949080445697613745610468362743143994380607535760385748741974540582232025976022897833086858959028626734856917126646482312593522984815301823180530065902189405292464551007212304139585681506919816447156518445920033628186985816615542970244173465730844805550361623994246872482290471134066686113561672195419057588035212356752469473855927988937274999834541446775899636536949702859568057756102521960572892087442749963355760805492344760057138093522103134501428720248635590707949891750181130742701462162972275183946938391645296324995605699257880141741987479437702484078395806836879944058893419824050706093389477557559209965778432244027842535569585472046688701520825655075816953675695829673513530153909976571718176564713782448905954475431592950672952805791716480618463643259840494419895821403950926841580995339011409606703883759627498223766032611914894394836617833172236576646225918601509120239585579056040528749866230969101916551547938407603863204917704074474999016420869448651796022131860769999622843338919365832534954446980612491711313976129660730872651868891358246185119991909371258325399078562722502757764592748046337696996440132849492281568434351596192441587923459275209776169919297222682585007772432825203437245140196395665257292139826563889847340826455870121354859998327026542184530504113655259005036583813425394588506284228066614114661620366603912388276148492038609361777337605498751261124974958401552803718571717934231470560797075319759339209325178955155261040651969977622342949361084497771660470866663896964904737571977036824999158552479590932516539866953096499284956508388048780275031572925811184321415534773429042471623285620146241507702472637120291839804703909021144257961033453973696989000239406535722813155876807517223188769645024491875031329412897630103443325115923066538923839722609968299730766379648159390894646847889947400636857336201299473729511839755221739909281491534676514511287471734155605456470438957844215197453825414790031034456202886747344227894205956552770569247620213441489123613503932098251267155879528362216733569422060132346137589681940988904975337448837145115306485575020421339238479384606574810800510220369984395966527189296112649847594593760166759445794286234179521933263324028074035897223865705289945892228023809079148231592609048102432463031053553234228179711304216898788510224723397047989087714533146862831284391539763491787864426747562764130665789340753611200023654161877337586583393663424139275368941809619370356237780605120292957763614444738884506145060969605437091004663613736505068379239347501146550716001852684967375984685721477058302285697529929395742876527492911882456332920096898893998408743812838576951395698443612831002184713611590800520118003480948705122877202635638425678078647068633377494330701524838089107681460837553776547804196938186923893610291459934145401891925931853093407882040425024478868700132211721973454397711586264940459773603057142499684235844644763839357823541207439404809144926590928388026523394913774882203413020990048668282776746813052752931413110198630655232437772935961214813783612247635367606245153707400618999794829619084250518730190455142829703614694647564123456345471963572750750811917253087525985546743776972611737661437392863065016813688085479281705037732524384266882630408462277557952535390799682151558529592839740347054834723240684874304950950823294108285374023139714836218639880684226891902489052029808361696633014617171205416975778200593259830807802596536225750414823601982883120030239451938518729706236566271520619882632670139075670490672856920561412809640515840809812120843668238945896548298972888299417482442184360367334425328899142564686390796769733970022275640852032098901896198699351066594376597998209870991259041218957198862168798121828023900496428608624370258161164274879846722394203543610024703061492384307145658114856421986415442849789989830970813650605257914067186485097110690660122266091302734017442724061436870934836883316614593805190895291050414720952476771493680111466435028675761479404607923958133891794810569036671993159125560460451052020655671794403048478935017821950019462280625321831819251982035161296330641216134326905209721850301460940705414369127203053991116523087682729768151225956612271719266051711122215537785100190887864162486495976372899025916703430599132404842195630030623141607584197301411948844088001559658521673747742885157172067544827802030889935803702851586303854453293957899109417305044625490474882651445796135659479806139045115444029237650950765649570095465352747662616849016781914132016815475287231816214133497071972165191283592721818082969967914212648192538040641199435985708386890221502052337990431725922372316829592393789692600724278354346166349570054414559107858760765026075072172715273875757152677240666453573307734822593193713135876615210694306463402145584515084390427817895664014848900155925226762365010332114891700697809948159821169902770724225079913342242305735067912371986119664785510640122730908442203558383524907092479196243007787577450133707854881355312642050519269942675373841280788825830050643463484075169249082581002646367814112456274386199380982326184737452343117151621945381023938971045499059440217105100661213445289528568983343672202033887116423867229980527816479304607034238973444315084698682212447947278592060605161814376928224027938650709005980477855279156085295081947982718025476147040914090759363564383116675229893634121586073653869974434029975328035824850668297261045882393322957783022543507421894115033149918908364854564564415280896515955856656833127439777261345914217433381880124592531377172383018370002895200206499410329794559878152029628813394989417212217522475356442020040407519030267528265701333023726348444924560666221407828871582413080084609237026492056347389694399372435575380393752410697503510895315268662998392818111238481254139195711714184137260357982548918437977287293082710056540810750218893573438954593204418939227136962870736272167148891747902842941855949240644642469306056517837949023849893637981521958870070116151904591006289811705306743475048804300884885067015461591323631441001920206677860242094606151027908294066581768916324351773360715799539320022667236903896499683233726146364342580999927868680815208693805171554873925360892024600153425902903620795657179269478151671569712591133120232797457550922727677909145037560021005801872475902289394235234020164928363809304914527569117582173940588380076228933482849084233415936679632488610312553341165194098248647193474976794500851179102079947331861545130986254598232322651062827774489639068799544085008934427229845555056078505319740561297342935646090742139515476148404072985803423764416065436865247373652788697917039156393310656592215293076317358752829719019607619758578721052270240946196164507560438005469770439118982986561736341594960485845864675873216136341277946389452897481807020739105304097450176573339112308799407112551369645437441043581935830348492650412351636116817522183759356581638638931123890459846879059321541740401582551611801857832036532538636624672257770302047481068970952990683631791057728026481763329698997790537653140182759164503260577697013372296226107252833258719217959716323404919543581618002448956099875441802286218081840665237773410972825161044253936102771654057218081660879081931347566678724199778152884815259924036581250070174852739492647026598928593590336973989935433362262234986749609568892935983787419307828915723319172930784707180970404040839489559490351242474991603195087473070954759065723561963891321385308319547614189984576377404445153287855020892436231483145403991352866504596150880991069724680133227210591161728097639239113736092330314092787276991686511341118750838770152615387131216879245818133758797048458596386736429849132886728969237991282738343209226987655281898018010234444100003145408918911997516360710206016906103841905838622585874904581803245248623563675691243132356310344324555384184399004369203965196554979043392189613225243561340770048554805570379965930810866673314283966419649752000064260247966752525227843009548237041700724133766216311392300910778477222120641839915828888481755003811317539860956715977504645299686977490508324388437308100619354115108216785499028555832027566354187853403472431349282798744814906728973602065873920142541198878107480230936833732688879070006749702969070924629521045528470556875875214972272530366193479463623149996131774977998856143998860018059127737644079221081116772867918756206212442254922229175810119200186952698677687231884462771961548152708630714392485843575808997492664738541355622809398531184080873299380111534082077991548844308607873198494524310844155924180451303243444363971342288164396540359445417301268147704642610003385109671787119954985469934920450394421426493217242636725257870928720371357155070993500338482975109070988418994837956166988097779167933811704719536579215794231226203487609395587450755932538782041156086941665797419078504746280555943528436574515820302992243863373141357963970552344930593224035895812849482740104184169169835883992574328295341479885986586241910104653228283313458335628011630628544727824124582440824660152604110610086957197064276397291693293116935575039252405709913339264491094251559200845622537534902413982580757248351026739203320518951403059275680552289404356839416262964786027124080527924513136856154095843627020730392780416430253059695058869091445573359424189991667265995976478789464087633776192944626594264782213990716068332266974598068882971023628220123540465471146966564664214209457069560998570951828373908178896107059240157006420765226752720197617000001726995442734936676947545445355557881342873328438734529307176977864667504562822562639150875351234939903172088672496670723447017100440015244840155523848718157016919456281071949446465292277009037024956185766778777033136553491459673427649390213336000200722762562254407016636573252191352658417285166445540226857614796215466772942904066690886626264032090056452061499725864722358508792241356295518571101491502047853899740729255850669001676742669696887882124680387339785921652097981668452575379928490581542181822581613518732736528345685100604876851881164876162982428426912676394185686395235483649505093629367148565925714987977782166106598397844632690495113302480457966933382393049022695399181545928416827740638257513426795136570332163215293446003282176518011768294065528209222499300650168443284945807759124967231844167285054943209004875630138479249401893570857952571441439610421260341772761275469696245707407916679747501711928617614930337862680197405802554663055107958522131790509523073308733772208795125277879053426448412672454187236227774331724194619096028655246685026380086268053564329235889755797653543673368477029293189895846977382860969114410307180596449931299144040225851707827893342457906473280108746696161596188868779224551380875620504369131047115534734588136547165924374936596579903720773715025745422249991502294417192044561319034710555340885649539126757333486692914937722479051482510509137618633093417627352708179145814613191621001414432141861043808250149181246534203315733311110522667683119720673934625465846399771373566731098639732833527402150612551033173329323822651492240836545051665068876923273175164166287698997682631450524976055975210193639503542238649423065986708840031811087962481663526113246166701306421036689416654567801847278111721843968411496375824840768101765139258185617115733088018252245449504957182907040978017925655695974434647283336187916448619866575321357908586531039208275222765367696141073120618071902621190644353417609169146175063527792996108309582982489931756980951452213732376689747929363432032421227342724819820617438855119600008297544666694687538897880133230890822053183250226796163131109508563142969982275523360645410327969350952265462488885563690043375588515378544248183104182246699387277751074471718055351795940986968035581529616838433243267251529213763917021502055014019702419174477822516054149907578265959111489346374116551783881323743241549128974660204218885059028938521989195753348169973390575917091574905679399387413314078220326082286381694857489248295997953110859765913939145316271804259555046023839938131457577653695500025384781980417990793037710280348346750183462554084498547127061597301283368277701522611681370114550840941076180032990234130551327470646783704240786280976137595364912227684214983588572079697660135007793421644563131171675031852294401454349146685846882489884227539780578190751123939583376498262290251804035428557421596582200169927880165135790799360699447503746317748484928855283468790854167470093106448799433731073166499226951233296271520099304293762424228867997806383178408641781196788745930248901954654948760421073486069906499039907468592625405954291031390881133138901165427123588819916034720597727320241596226158388302616928420564999177886502375001978858676595882949179235604234037265332593971456091049767202897209277947137183656100758507877633117682968494408548625688153019550207724767575019769280601792774336717290955992908806290664246777312243595290510429597182714823312666587019543985354283364256746907906917550077022858954177399687804482594131224886425370180392591270407761247659274587207019288975907796471703852018523375913290651732694936707134968121309208187591080097292444647102321419336270481918218167647929387059244286302852545205351764195576769765260253833958523359721233138701670947619271224490024458942392627613368891650968527821292159091081610870235622171232182674856114205311063291600839786301488116012375715162808542450178766392888949207848223990464608370794516668550596995689166839595873000161439578662148484071609540663101224906057397135655066245717890771867978405883592948605298852543511736783067892963770631371847727446167054866799302561790911552861997400884719882942742760645120489540390658543364064881120435284720975246854656544187256603283931261559068700585719749978692941423107357753521549424773495957727417044066800342896232536219667108511963499842869990033301874212626364360254949074211525953311920875231862486417124289704476229669567171895242458456059534902782898283067248233555502154844562634790702939244687512989186699680340978536342706332006962746299555399047386042017596995800872752260673820968897497269679508077931352656948742604116994949898181862792007577798123732652195122316864633695643374132558795068504221247489770963489341941018649872902736841691414190859220878024170703512147935806437423639349065003594619688589132984771925668660722981442306444291821621720317444690040589430050157725764178095886616886063568776714916291398183188271737001488590242636770330581585155067180006580743300624242020353641266284728865442079407156455335692490430162989469376027447735312371209939349197766503863473128286564391367586181164244515841197201908991314917218762535980914608843260315039842809721459328284137249522433445254553384024400787722591300702231208998263000694144329742648331559413622873860839611980038368280752143281084759399910082631262666465686386984715528551653174215282291308079360087983678403234879137608422505779567868842803426775818072707489951446210085781967380535952667285182045492007619219610908324641523780571905503626970049020525147135167459216786709274151635153061994273391055495355018327867717584848554989603925196975278831492322617339959755725287670977929401805540447308082085102552134933813031870773377912725663769655731750128006520482136546653869087543569787278601282504552996979874139676481072624541152430466005188992702075043050088743667306345937926407476744232285449303235911573269725210913248867373501880093075676888800287439133956401626778912853438404777744481245643912531429573985189177308373666778357438870355882866692561624256782053937312283928874441793128593641665162198156263389200997855665220363764223969724668179277056488076986398619272902268124190955458970826271861292718149177755998993677281354284439310704661797496654859448930605624619427120700081725550463429601240595162349733982017264868311855618876580359087220617247281102220663679004876182119467799037759204101364319777006291956296617594718476128725953246226988041011008475903025437296673687178870361309717164393320792551627803712717777008446782443277948365787991186659139648513752249743084218092922042126895887069700614883487456938819414607464074209137279720060803996972775353410657275751707990646529627727141764051076857451309104293166334705903090694228025570438777900785585879606744842981279905343926147577995754617298147848611065768645915358645847030027740830538680861087439560795406884594930510631610873275790956229734029415053326816348890431060704087671036997114926937449332171267118530306624769126924000014510562364776639069010674590050003693290942823060289756600393243543222849468688059019519070091919761000401523342732986421409177378194625322068171035129750150342290070535374746736049181821999676449707752032550310095280916059262314274355554364673911623674701594342439414519843420049087798384073393605984792620864702771673985001140686805449028865461013079913063843638678592647270525410843447896131897125279408631063750681087199188643834758179969991032302733031470324831225012131391308076621913466724796117307169292066290603518506606244998730338806105007363270807977137632156262943583764530674460233716137656840232610107560031964003381782040586752721298541138158059658680936871474818114825039143479311799672098306302295276720296171473673304286201816546037880586908138542809559930591461310701042966516930752286898176286321949650048016479678390022972891811897228636288873095606051557176651408007954562272184167770184861978044149162915488594624212007147197137446318430224599406566195216148519447357896404049328481080940083560093524818553872050976310489830158388878084722517540540671608845150703471942123591216175594731412901176115505332870038969537738667096025239317046489790349070538071114745842674018902275202494504392820714457420295020298052227970975715063832364066468898039846226096760224054451120509727926257619088358703088299519770464100503954990648431148115050554426906084640689563065482054571021850170122596301489328691830551133235866481379807030498737219882855339970279078751976900662912644239174205948977162966027363338574853195875897960585014629428138994545805103018304374590066605143287665698829803028987523086706040950666520015450007899650358748096260879013205502320718290390839700449662167026399327765492194427084309884001814442126180522774708667602846958076147864212831534055561740424945162284951892255772984761597397467625238007613040163978677026782342806356670252790443877918749619544509583641743909670058323393591513547897775438127538590832647231600573226797634416254721371368564909545604545328451642262498039201474470276807183733780381624491803736549279223899503059149959834779355915055008602517683211206152761039167018485377843986000724681600045258046031281503051374602860103960889721356317681891092392791187956714679636950914443110346460854097852932362587930640354716456478143471443322784917035865519125273893292089568236976202032809246605357288287474467969631209436535964488966478283310965038964824819533815934816145426113256593164514687281498260491917143421089654538364267176710921216006977786778573109080767503323849658131511667994353038024837896474075046857721836653002331197627414801576526436394066192834485424422487479244352264341935393847029322192562209953201299086100140574504280220378410205922687497102489851768774496818651976043895476724067948296655773891485437108889997313795797331862556461286671534401338943404328559157243004778437457240920435264033808130873332054156586155128279438197927428188501406768196744579477329088301905042973194554193250538933841724740338625529055838935380133932413586087742844019307247870941608485788221618655916234695394752332336223260725997690398018117163426360515469517439555852189279557643199726414055617115276830514243249034175438380196506745921985405680076009556480411734219896097319171952318935799712357701325892984498934561502620004656448266963785373855242934794769615198102706299304253377559050880786226658297347536901476868020084343828103145290015662589160586201677346001250156454072309065892586893121286094131215289765469342287411340287895255195443425513282644832607600481136505371104325471030191556034079627649840908031367034293935248419886776098057997422483829628530505068150374041243287701383503042601659562108126750328830098798751336402971815726555243192453038824317747734657379353052064762661255298107119604207098883923515509708741723432281728899052984496148901585388380198183220651584765994986986611280170329607367860301158961196625729634177966937551305958081107845211256182845158729254567661841606370429859515672484939636829875422991690992238733211016268041984782111563124777913063233269377468208412088981293829568011928619124793680210139608016657595006991494702355027283564148722743141863943380503244857189120724940599740168993182139904101500646268303693219188392167059735779075656978950632233895432965051592405349305669770813653346986780704154077458611514720905855214435044177013954333805675193727479371853474150349382538292383310059486422826461771538493384353456277325775016942574791173169149975291411784711266138840035340548168607788943564544408069557391548664520237257935504901629678244237540599959739323017070700875408671432790117029348553476601471174918846883545847352420625217647053788832494792767678378058188775200052034704584874586221392117394373127532260875550869453604972508608796171929222784017025912023612358888475457706824297392059887436906728139980711145238057105264152759909284743721361998111230318032662266548175128461615265681578658174932446032697006336507789998719162809661161598145597970227874654841691288994863728090338558687992451095350451962260745506646722893446941154974168812949534690000971217427813074684685583013079180692958730322088032549917939701820396353712474741888728103275048485462081069838545083587429028412203694005716259891320369930546893986645615636787360636791724502382970095260485775255915280982415339708634058664741121149256134621559033171692850981926867156268585926126833347381242931688160220606362274917603434350231698551077971337687208988817141409780498157039450729933333241176886144594405961422921367591872266631854050334485094032897934341680268668225054746704310609196916431031177500597958674763192959380591684413589457623473000460683533046596629499685589540403482406622418944004400402911036800662293967392669750338987022247678526929076670528271796686914708970056087959672714899069261687857483664629673014813619813551957578773657093066127168024806276039296776377829521051358118223476151518256096544001991534883593629510834731954271342853524652253754853252140496039821422325453610508702496487734659569717895494384085027033152305962393970010847576173463253384518806104730439354754833692842183328521076859711623012430491036945111329615046404305292611525597614497146546327451199195266049828529760634163036024488455670949140033638992692122689030960843281138739913909859321694486284674783968465372461612837850552208572330003757847092315346495164080542262483602339257239487856970086028890414763704862064631911181839858151626078253984154179822399350926381447781643810436684635676392731159238303269417476466807351353766550068091841940814633532237388690971877908115961629496095534838628121813878152771877553069090255284493033566217700747184085253566133336068474264710462854299219490144538736030293608381101062152543402464565492468258123790911308751995707828766655601819253557754511108099074674831618106672483200373091354019609221946158256917360699461624879212021954669655210651870229818864153334564726068459801602088397371484571574383031260798327538726810655790174779554299411543635657956008551604216362010284766548789943570516008404147583270244989956666174414249768442214576996548566860763332776570500481201565347654310521558598907181391372268704196588272320986023788792427185829612849671045688611746739271910712158921008417285854242908914941034641236366332366189506881096207063638719199614316764893391858368818552952474827815133205714330825088264852740414502975014733565341050477965025652769043767027843699345712040557751819544279955479965354208857744604442137107994923542288355312300676383520862655324891348482976755531268647429881569438557281365322968895159616632422793558604642779372228779341243208397418511553459842075566775917384179502309045820470700231092058150850903593774336843599579209413220422823439672148256245748197192427221400676193456093129024814638859014853500955176543734504673402125110324273283455398383111747223716407426892904611215089786900483991868914993858713400078240852343778029592479271211099950978217466082595994351174927220018848858672912886178587416299947176380114817549544775388399087054480793177853370406332028269706339382051752409435108628986505822506316553825988870937060079050656441105554283674025931020036496958731324434354866970926889793446352930087315684484478906776421895679981223942613891925319236121690641677661601649316970256751828020215549671031880822157960033492293178597997454813557937593660942809814241284564323576195931763372249725792274106430227204453210077448519439000362213917857194345058299297519342807513972017913003908193085071370714154390545922955810460854833645868667032218341851494355942943322811721527188097640662600548462195569432380182859384039081828368489319411418689012977859471173508919718256883750822035185810302642213466262940121703827328123271360518419589678713500423805473981235774920568542602558395821261677724021568278953113179658368411958819367211337295679269712679926510239487208621846891354233212557171580398056153525512592861913073902576343430180702076613638120605522333561436012262482866585154740044613018241290430154372076221999206141478119182965256735437908333363513660553331897670656222647163966456844554238693354717197897167894326091863383693883518836429067152750917739180148313010867792611848294899103700194666193967307691928032664437460877808410193532784415482781063273245838358207768029263419709991331035496345648537819134345278518372898673322450973165523598485551937935873020664931743689201916135870426751746337031025749155503449815789199464414829669900362435630389515508143657761388442265001532321095427735381384062973795372446672440004978812569021627038208001381982106900796982654287295016057757857070419692597882309337979608829318823075310256118746160144677196077457997043501416984435515933122655639481151099731197687514086709382203720948190163457875314705389509415300025410866230483445012943584843431189838740823969911585875890578194423232593101372892418348518499598752537490012619905204036626321477519731123870476486636031867689554098464555882895125929097636912605363766978416160314795932800938391639151284269619109620783585423868568348985453303926341801391656995243545594459231403643265406133881756741331122418119752269291600389018971772508662122132422629391141482031524341175212114029658752346337896772220035743725993295798527894613235800044953341737728608139084513826196001432321688052528544000633805974186457314793579992734525237509499747146614087587800770961267989603464816903677631853938353704306650213516497219894412646122286933759271345140908110902333782111142526913948159790681559768715500828207644207315975544312308072196355926082864751735972388998782071460119089203766014606536133603621527071819634612011075132525185077840242575402875678405848223227583845886260603116246181973786024487493403217526403678174596189111721547729502303608630880224999090122766236099084949884095629413976196287216907750137667840614947446449767763138264115735540471249280718450920862874053320188118013871094388291051376321500306696695673490361947709679326926931897155646841146736109628629675216798207944994333540196297368975974533524275617186212596392649151626535727262594287095943255107570464210040030597987580989403978876052333060765896051533271900215638269055466809932065342082986242893323355314647212622823825474859189591730902274828389115334407277015366099180724107050301191068110527401717878284782696668840447846002404332295244020026227388855252131501274260452352522120829738420548517387573224197936887086299500951289976849187920733311252060950334823035358356365718527960463948320509095793035365902040484181845276037794999240241113883292105137743242234149945029287916304670286953329436323288057271848334390293993044561178786715283986090684619339131826748690184949955063904121760839347724776515500080727182343867343328956624139719950252900311797097887827123455260541674223457576086080116315710636345421494962379965590908665900546998994897910137985806407761294834609230554805355622564214035064113205609674499875721939390523954013211792489678824328401446464658828218650169476961245735385176791580141042803200735309871538938690673644746749506327678250603535246315911360550646487248104226536654449565771476503805679706214742929983296748495564084029884083980472461489995122560518917876825962311381902901892598093244359661168059059671788016640301169942565370908065439107930039079936236946309827546642287806330753087024772142868691390098446602734165062700417285787097564239990935778180029502161625899869211977166088421659929465412336074987631315565306108415574133769420159931735155695634480128832452510700736789383255841433273501394323820838935880302233710816882973391166958167742735175813292388844823118707291683550400006721621464305303170472561355588462227441625655309424779614077743554239722359164616916088661463797777587081622035979559453275976404364715377577394183112713726037271440010266373066588417939432672911736598570426604625047340176415409316407443304715948645176229895287801288885952428518905229921811894359859952816031623614562415651132881942537189066492792507738292595259327538430504919871133857205498634966974160400047369882561403254449908806713871661434970167545841902698220023553520633696881523762841929659963804888953454500411714271870154864989524320368923193258876276944177078410767241823752438935926435386873937079582793341838619795745943879211929704833250020290239274693658611233981120960220598158572252259870383352953955177226050160369866851284625309963102209321031093884058358635244244449448882807813445480106349231003010949898676080375879076327134791028724932883166938400757293959930025577485975415421946267855003441784569097892003792440606078139683320082740960658900994576197947141213808715017218228126610467453162597238536847522944463257941331010445870656697231933843778733260465512882678046150766198928669280725789789735462539914134910409492301119531796208910838926938056035923122620552724451341379390094552741861875656514226029612200868266294590472591238002181453461580582513524958168883995880503938099089964549891152154649633184566621677252927717443991893025113188895288165584011567646313457399342304578925336382403643850146946524320671631065140459913006045982613294929492404947386973592067488849007104155077650510433984455830230891650935317654332683810321457757961028401650732297746328308124627927847583609935382502507579693184389811434334011744087151824693984278125058845149047101991820110404076303878971554643512972969474955173136579772220385497562421875284105706271452532245957101062269020636161053046857162614950965460214413108891236912990954873848178841372208201488476639388895461461576454210635200672857632775357557015024859978849150793161189761372413755288045290425304196103999181574661315624599125505245896373922325189858138071697143127850584706751997508098213070223926487626287227665019743011876690408212458627468017404984838536239496224909660417386249958664735637485553327944822960323424257022174940410006338884686295535570100209867243450042211580848827016486200915640593554181963529810513343958795889048080632220580513144915890651866199222347292528204697732418790345960743069875020851614578997181440072318546038001957478861818067011577332875554738881716166818564920340593156433773004594143347874713352230626605270883055702080843027670683846941158368845218667766879774647510357321044850588104225842160745713635299865227215772687739529817833490125630123727164005890792596332725449846920446989956840880112497173837506853017541884466762452112644507042546814436291878711227888692139649216475725888054302735109129065380964873463139972951054803734831987635922954581084207583512937615981484557548382773834860496921796092444287490287136851297227369526631077897013664370287325580219988861350105634642593376703783408357689757464568025591395371643014486986059965369759122561738505807237282555770159956715748856708310684949600198662179236331086474303388242683790169445508156491472125342280683298594929126411286548089122316785886456013821652126997048104744821870655207815113125804198863372229451893711779418504674280085499172532955598277847009035874504907051940707623036544046377677215808148906084425627260088849818632950909913489685082809517584052401831831502868202153233282359568204283013503503826720118740490224747725868705028091767298548981927789389993319381279049249211134777644866492260007517432600204197440963691459683293348022907027191565515292662474221495342986826247144580163044029580039009930842180867338872754406695074097902757622554922136043314937522817963462496383695648343376083790004196784581784245852681452923289941868573100125927029133589235177418374670159288315693616952592107479798240155121198094987424732792949314267270668818253914395236509642793101532514794397959558276499031344353216483885767760540828122555823331779152201082593708578851587795848005373287056370953661635329326847622932185092731809362663952506267208642390343149968702174808625437157216766325733595528074180160713116358908891645788969489846067550061198357348103686768509236287987237419819034662927298929169077422032700309940362606970188803737562538525155174716003948795080296864409805537691974676834386297296793363254133804066457659305867132166093373888957842535573972821533170098411678439889266151281483086917800426830281284515482410923266192126808518964175100999598116215983671607070909255699017588786980800893931509413154437004522844751466331733436318523919207616910912476282716886356151091848452932155701144976874159699624510713783520060222945320408969245650171029106394390883252306084228045824016951720820809636234242248153348460596212358906336617818707094540200987074691467073642227878259455792670058838969538774756472804311728689784585488867152428124830841222515057405293753046795837910845817475197314962364575813409323874420559039812394330054160215132784120492280185976445229560855550156042841446753888438736920000596820379493449041858560832460256616196179771408033680127432175979417949614892695801979532794960853261932489777889007654132288301027851543523761307066481105738267694279427106444175425689077294279709443166642743334703312451446301397321045469458951433773354167947668647573909162253093616357460986744703465188300391949143977752174169183784220393915364264708438078426700643782753018685584380808336189130452686041559348779939704501659737285688398838482469088562560388122893971032974493138378584532067027709646712512283046478664338785250455750384593031605389173132245872583490546758699117855718470549994426725122706810666520668940691116933683954700653360143251242062598497349617856167425174806975039465919744530982485574357576428753163252807506792831942343208089548591750384897267405150300146738008207995535194882424875607315236874762364875346888539180142914829008816291997117638019459362491814022519499640289528778532221516099638285581696060907609036037426346421187973463815620309830052490269667623085753704760267863177339660703434156871142198557571636315465756570686634105846641991629988729356621471632415212301328225361196730671187853837881423696799934589508684899715497173017098272267448284258851907960013380635011586202769603454733132250276495933601408922336287955919741744175015842268210084424341758531980396305058204744418196906426670068993708035824843503129834599070892741483719851429168699654210875854723278420309335722627988556975036978124173211318195926979755223085816193632004927772146273309106466844322879655727821183371628746895971689866878300807396122991178006884369233947374459183784688023346790863506826908438961905987712640645648478763345326264438790956417078466496074091014299693411763294260750085331931256126918200716013311961501547024790017213986037152414354634341674845787226302537035288655462745482894764454537664988927414413382807455373696933491216407857092998667475989240795117131310990170719905251748124300571276259997469471585462334383682957892390620224927332638470904340157294536646474484878633360697867066794099622397887903219902695036056871039646494585828858624872035911999454608163938681141335449187008273494103591372397431369983617662656607912174810056357062814351017486169569737497850072569383153102560933216822463439003103262962061902515796116767379760973852105004541702382913537328892453300314196687253666232115313535369576787995765870386130942591708164962315962733065739880623435502414359670102926837055844202855187016577236782381638232149181310131774434776787873622350715227730835128886897354639687151832089487629083404330839676701352597345985858816766277531174302727669893818759793465424284574406889029834297943950330076078809914147694853964395282541369356139738665173415463382163023037053585356130401885751095607529552816689193490582254898572357592101186442614956648752818186097165598636377532274092685617141520396168546049835644132363253606342739443106989115757334287086673573833732380394368284688285080998613275767998641253657087439899873680295039285852927141362208317215591574301832913971058333407486253160691439730894766488578072706645115284803728665292953287284479307543533504300309274697027446083638791031419027239983287668852264602306111247483491126362953906642537676128898313352027363150208099086529352099234080371709565214138900588928531223962851277316489858300588243118354554011098065409457321809301847095334371808178576024055132865527073915890394097247464934645948134316998250112445656073797640857728101348018519386588118709986758619536987493501424047788564079055555363178025424167783921774448014320183343799456591535371860885923333869285401296445634092262938894683679261230304807306110993918529549742392483586667122837891913020140926777227504634512911453422425866606638385554021846319076280381445495445999716553853816758317939421414504204976396158660324665345152235199836091062044836386106762669481159094180837279666289336880439306202963474882498667198446689260036996506997204890730531534367336965487032009065735477359329305645362754234916874494289010978396521241426842824711505945916125532293660241556156580979537450337094951898493544032987971074016505247521830456790850394492557562521320393169757731110324293917219672572600654943530561496899718877449751765553332780215208765266639638088148311933730994537683117117648736576142487320230470817006952164881256566362950874738488533413604875050157074520753567436001445481685745622052982552383228051889150040957462072843964898307362682402235498003421129063316419636009899296238411773145496585878389430098251627906338556100632465610351465936219808635055800683705841318934343273426612129403457800348131764708114507904485484541430868689664615888922299162238055053704466347073450401815332641870135922278619541891829016730051110101991090652160723157131744624637042662907525107169514850783434259742835733407004933560339097264812584799670691602220392968758056140576495099269535932268729578758528621338111175061021555707181067451119952265390781136310823585899845800298385408574480758710213234495949118770498479137544310956495155281765478946180014494583865104755572532051493477375436204713751245137642832921923875502756486650531555132937061542369608779123497209861740195698945714197473184785537311293759015961324310471117720413655585845976530498346274760784434317156747092739635700276586432787511432065317807038462919821962663409785825052415281872260042710126573393278849955935060079574624433021362296848286291511872440141797383472216935488295451486323232138430854352402564130614782205723196174109720439896523505090011308156463356027582780021146419686178182332642201756778702853612070033524095221160200202183668062501196122517099345923962258023091823071234976748867636474590408168299423843395270761182841185968631044073173120781435513588911155874631250039574981455574897382913467296010921755047103436516735908633258147156782979526611043806885259027376197243559727232027303941800787302825800981081489948494106387553080062858747953161058057306843968756606395971895250082916967449968293866500931414309475120851704943464529874774951880412249118511503012085814869617093468498436035911890571326917637814677335285108389607826798756684085200260402564653132262953121322866697438766496196529347053359718600881959483018306604416255546968636345896007235336933580477801940549391947667086987063142874105807645582243958290354224585723002930064802998087399161482579190584619491125267830208346116309779472922154399288611839758788079601191136545298943922700302032058183253182942552056109718144692851506957610453817932854192491433571119440875780440394527763326964598343718758504097873475833770132623958900007909299366874323982843493499677643347661459682116676852065602037671804940236196704498747786213458567816928712343618257473081299069915747524142160893608124204240669539233098676607726163428191629339840865350232833956722148264518380107248333340094606375118023857959514433941613655184492412751090217431758418630128972079377854628376975370166227692635061783699702017065226306985345898666807575163291208964956269320952629071147802316905910084938256708425613899479434473244606603003157741799548238309627938364164704912135814095913800328072565064355381920824179745046366482423869181530589053275858044395457213823695254043552860722299193053318140405335081960520041748701612779738802711512660731054012282902965298095499228456897878968852217900705745939880969875753931148784376355627341469233677789560279502479044489355160243894065426086214967286185231090305899914351555533447287496238458293434585046667361355990877682063899881117073757331095216313738097008449593210548940503025320921561260800023427705837171942511910603960773909971633806319868030168138690424825202737158374089981934006533794063815436784357503364519918029539855556273523681167663285086261977333524628311351012982433536005429758565693814010169976654509582716232602437658678374005019041506588725348107432199838088122748291175420336303328152787341798892090820322713777394823409124780752030857134933284626550453501774058403233610969734636215091711431727376315567135647293809875504831569298671796897517272239059621477951490245605073083605838986977502407600802206031355756593244247800099653928670900653210792913511772154318951814489999834683125408459504820923006570050036130448435526021509982530923854228401356860461574182016560728124981471024579407956117939726722370680593247704441304320388099999442274698038562120195471528008444609548642604418064952668062021912655530255436537510181041373156611516224639515353418421997901968894246064667592227229311278800599204801690662132157427990778351656342124508184389649342023320501271177558379621472776776406700903446217604583557820886852423780669608079823975245065956617259699436427627432872967201628147498196344774439094966382838352306808032988730787354892993318828029234725311206633760118427113669746617218511888692570503226437809012850609953999823559045582750103128752302175854676756976602760050642656037626668163614550843279712940504749809933500982270310631395746246396226627836759647062330821256895130537493815827015214008169355296427334486334260385896026471123013583507844811773839725316950963506086982139867205789279254869037013133303229921866935207225559659411581484770783750626751212856885996134941615403651602532627547509211783658048155567048688773384321986500397222275449759285117889010373615528774978229199271764800587215357154821843374666945729554465337564109610042628241159500024119578722859157362260352375004524753225945559885727079674171916330104257621950484105214237686952583816650598153054019521050078029502331784644289867502526133078137509096218560007772156217139786269494724679443303366947980482605695784323834175467389800703984872376633599694502972896717901191219702525084186584087140029026024399013048837257315320737132487666013819188130253575738984525722648845051932522127839276150269236680257861079043539193360462053842675520012341715364128250861969414012109122414216435953026160356640115458784929960622234440114395710184272687751578016930837716193691317142534663978062408604611796130510393172733671877647954906317742964274244873068822862240575118084280928438214757072705812412111635840965824749036204025570924231175109347492500876877863312082116614821963602903272026621983106272128057077678574651197519025602956873929198729886175232629496882887396949704993599684161530094011572723763743245384979828944226299185275953420273204670083170346321092816425390933474675943308597317594967754759502272077454161695887937035937985743900874055060899052468026033237516566569759844150182497693729324529410772070105855639445343651588077606690652342098594387749731629814438624564438682634272306037842622460763676544228988221720506411026999830477219384430519828040810226237579104008915714701670450428213810742774440020603095243137133367586551439561693649265701532405815665023829033174393793284364834693055003228579911521126622324070083841210678625387383294863091690053939775955434449186891898221916795499332895800678875527341150453370740273844315322481697878408037962597353634494614978469688794963535867604107001479304393763433287922028977466010045059470771372173092096612910816166579060201893724377777211324305735539428522734215277940107028150156529359279180521155223908752658765054467463650172435656251596711276857011778872635262255573042069807511394086466550249702819868744001966325269889817268081572429921084512457864712505825733736133093312182951943956163488664873606634207708554007895138797699379822083536651524475533556518476019257468388792625372904995870634966524953302741423865161786465848927252779100988392939164809008966198396433901477016705271894108849325982493128036063685042956016104632296321043681681800421524657889333022634851780380922219372225310023392064496829515018986340617848727333158320355699608616579501099935407946924533644321715080594586266611317158852726436862041639467332796269818815423907110026958775521913977770953681523245608434748101317377122164275783143099519652795463591176704004158262428347720104472021982070986799489046972596209188307903572088126374019019836730486144517296751715874354233019205549268433302781856553971829824790134655581281128819779548336467915092520014593165944396434790655547707933161505609438443868365436707042889974230072193942330336505323594466705466854664545453290909066633300140152707409808338670267763671771991199423406610341828027529001568357054000725137105436933496081166230703840701577075516540360174849492407889787809044720951198874857667223927784365560080542108011251711002706073339940873971223224101933999209685803943038195071233070743216381265856552260866977645972821050062842976929849348802097281158965302114316634418075906459602370005959459838631447138170610056948504081374166208610697709582065087310911554889073092748640787865805425599558340868095283192450462773133521186209984788348597152987422442703274267107955670526846836395659516375739692312421413552010365313435127842410087979991427010226690209939770157199299560952962462112314609860398023333617204093148769432691971397063353362383542429837472686461123936101198876773900461255628252153490593835101977119119527104793234931015463920755009907355443903736112393639145018601806827980874687438040829328761575737054824149308667800826895736233465756210120579701109741920148353266029703493776038647125864418936031936669118175401074577230252333656580612202579017287446256737050794736117259843814117116942487068021357179413277713130407270874234649169116030694285894906943883303593244557337006539649404503304618331409143574300513555868655004612055678705579994885342462633401634863526954124669266156328852811292828580863894601467403198446053695877296748587399787286851235101767487225927289264158987913576508692201487273024882804305467905696566342566376979752976765946035148136809683633968482256808749129251194372013440670009490915874445265052705327821653815223175624477577029908905308070730857312424587994996129019424490492562452905732539734101090866759488498052012391404749453987596319425884158493599540428961718999157324785952268249925273921253457574628176648253814912590652528549862530830781663896880629574169099531795097185921383342778732134978103283097304753104052255171939045310177170877913486362560411348829756764650065370379212672742760334046787462436559069300140180580745901358487440371839488732318028007718926216251694434339253084017395548129183780213695545295784691509827002979247467133026486496291728115607006291400046411285202389041316019817089912513050409085792567228236450841478473007184128627639566570790035918977616856865161913173682788631047484787403972066031539146862292138795404868009260018772582056931945537472916936240564742080211068826107334603546881988083648494305982887005964044107852299593326981800490634828544863001994428962511638226684034890193827572875791313261946772075670361779599590109419393683647089889330970977860727465176072021474393535352805821683012744842432888185532424125046062641821579256078355902553608080578358966450327187489461041719115304719884867274093662513458279336171756633783906866533296288580113583928659673291639369206009529409748550643569291432878239145644647667043945409191003704923916329660508421088683581448144794352827071715792312172282065373020584906616610788284589304502803929976402400974296038514743386968945220584988078519117209857847242810349046555779547841465543556261190292285423284432375090670337458151088606608285650820925847295034173086829574784778437823500063963511645905295193508678536659874491869771923227701259629688128123684368940968462627011510004631738323664624816446290104400817042581163726562093521741474412392259201247697746862112242126836826769852763779072529589559821910878385311151652568507588996246323189162892082813453545935738490243086785670744944855181428808532661132622661013707119199693845071746577400991841203122455007332418399107953680604952470857283212838671283475487921537533281948567911795832060509239713351514229740161277577735585612855038518471293743236306218423552130640103429610548837948897820750031426754204151856667475764854086282686337341731949098533233031819028593461906375549003579313018790779256218844290863459158872993313672485533234703073307999912913503022333327154661248027745184955466197182231297690447940538064267578365993734760502337275756392778468551184414036643188478075703312032555597903008055968797748249906559860067388118223426973555317878092345909983856519032744331396685512374955825145387381143692793598470852591791854359392909209413042594057029985435204792140011210983843632884317005018085068754868427253370948963764844946752884347112718115993955764018759431470506419964053562030946726876140645800212032020401196866368486067028445758594344015566157392713580315585120019182716535939420645466081579820880538588594963180014571593205092449660020306746616712109587324171596392328766509363818888612574159798173578730352058410289334760524228001026035218743171477567168317624508067235731780938597472015574548267604458187508149802933001118922655554425972302051723765226703255822984227333200839067529652920476721071222713321946671412484709351488555382617794128920507268395296629259585516059238543622488851275815098280121401850072702064393403748782439047925046520723991230807244199022639261563370754406921408169655263636724414070072094334693612054837018388661143237668285804217053572731377772881220888899903237281470450196054172306747466730181844978321860971443911730394345602828851057165095597338811308691795984040953716567921598499105401098703351513871626571231825001775924942406777080012278540098005450825935975617412010278824007451803537563676697821099502211411557652663558261501712160838715612926558547441008685779815113985017765497401189444113957228935687220697687920349103514093396551496992047864656287501329848592744345895358667322607846299954378506129964498301694063924987357470844512020411201153547413462018998183741577132912004798122414198054281547708159875091411217324117397177701474687016622636645336309333110587591383478095300069757531155996899394219306594887946168001037749299082206364427326607778313208046762887065827906747553003682503351441801125503825425467359291917065580672383074406183871405309068403657268168068250809755831249056246470574820793476694285995900476765851898596041196319382138071670838771246092703479373158133508621222775475367064463861513033927323200813042408728466211973101168681730100170118540147382397906578734919818212661222601079074644801546528310410798973518784029920620401837850073810291721453412340814390378817834110830019812255006971145386422322919862271401362109797245888626078846500663324528058082592194470756413297549468977157831709747582981500514082065928359211592598686680441053427837579946630450087110261463580045607125014286297853673090629562715255632267531577142356776003973497492951883621396536814265501073255545610465097449450926851427306071487699109480882604854790768790978160154231861984535063870949003409328115157462748429127395488197072461315915918852470424633227671868167021072033260727566199066151323754570843069900871234031654615061208456427382042589220709924672496216984504301888583246703042783299917147147629177231576588726763863723150525475420616863661790926268751881042216038209117080314298312108379845357482835590600692631049979167847578631848713140678955185722148703581516378001733409987827005125287064529000020503202263504414176699522956473551034648909370342009029013530332748213591753911922836022740693658321116847138232699706653067538731825128286707531273406076722499549613254887216561586580701456701148958170475691305820438792201334791254361041318205810897208743968603548551687650409923960581713039566751008057299841553730664321005412956190341598236789363194263790429498397133322093359270805569213175562941758032239744573470328464037551730699806946385672650446721647468285294051011413736392171457743945752380882738169769641381759303030829148300423016170680895633721521342490329375279704906701985477467010520040499162006946679167101428904804540415568845499819404915944839963250003118749211807622897627800472672613695882769187393178025848845817811694275903956111650281475174417283743806521137312667241247240785806812953589255401120877456726176730129806739522384737520183172494509319552469498420203851875973600190009480516087085124194334914956426880594705025845640307141702798554298485818540217343470911002658185496634329588072565963844994256600456578770156350582710028066412433012601076098747991442021649785081318821664668075571111914039230447890473766408338409681787991588586400490816171108211831216175822938046975051143955825557648280505759385025027072725247488373690784422209142302660907985880651454792879859262822610928719538423647285301097520348907278438241293193218368862219631770682296557397369455751858684377294171742862247161436374444970531081038765471331271094663481546288050932937195205808130911600452081597083957891559115831811848240507927452367941872435222552851234703247891677847268458013334453654727104433654070690675881127863305540381214962475609829569995477142198853937652993869603132260451614747891284149053908718834342255509067849411664059626809300530436854128388336095119223685297433755460292366808649528772830339214485786458995969035240018868526004141665532173704980955430166756865431446199757808793045285393228410277535599344666545708843137795644773237600855350405998606252202421235020056939747494700962670779124455056497930453163065707831941517835880119750248760765041227984400366931108520296842832714425750449364833749164875597974813405418807030670040379755253206239687721354458109433354997836307830850553144635272921316477991950628757328731059554068424871146121875098379723229235228311462793455804955395443987859613047116245516978081943905818925573051637068573626420028948747393576499033884824189932908854123138357518227497911949354861614295517954868234743223887439346986208879783302379496075824398654629307674102490777768107361599901196377203520507266595236998082086057892965135178947842900868525449733988227731244968679872676258187207801420096665229731295891145220336702585209882489457268160278315640656423157824861093586709082274225666295992380220555752138701204967886771968783755557717133990917080326340136711136315758271484885166733511432581253997400772237254241940200364892144384442607299901857185331516599302869660858214673366371266080085142163092298826264643047115294240603627124562904378664338259158598334529251767177467989356983240672338573555322132966148403328763796167922957387634236800903363307174284319593060259411657060028941052255341920628714428492102616746214377291159532916398877656818536750405566109198303665029328903347023271516055359101377446346200709268596876407468691597706377791477213126824690895736169061771827478963196053450688693983479970721458675904887175105465165747468930170481452825197464072802285624407613933659403451926308938182652206501519598728413727854991925101812307940773714502447504169984691967738190854467160929544620231277911003504411717553049862271887857858510854740891893838716244558571741207353549247560290938559996262336671824980595445338672367430084277309483069320903562889543635788372092529147023027964320815134897561887262672620964695451327622680291316468343169818813058783648803687744501460796266604412316883504422353071006617771455763745759611494643755323296800330808458368805410100125439454123917705791296057853318658124816538286037864960636642958554028699266494071249619077497246410626441449595067204968521365003951203856505490663686498530011829984788268085275974571813619465935700396626410264053672126976758457314717867087317944952541794442179020893016909257912969156222589329156224598099185247786900402938078052083623975247564306090041040483818670669935454123308287168792683405122684371261812423344000694310035267301913001790495488726918261003014436817499437407857820698597600658393320624147217504492605482045395498433648058102021062435671592334267122425746814995532869249425067635313270822182772631154133138054908189928025247174909496221894896067063639235256768037533873462245475804604822048736384705058787280542354620983157753733932671128798715435016264403816294593955666926245883702312603859056215660290719763557196596068980982652811027073235817630890781116638948753703455815322201119034048308567658557307980591617019166447021577098601924429321885259060376332131551778370670929371255595155395143516752624814365756351892575749669520350234517402738797493772822029020248767361314282303213407233059064339937262962093735782393047279723367846548588543900874917731016064683347051340048834460179986843767125522179320539189281997358896702397922523291263754481076256507299558523851774001060990327852759937325597125481506962383312899829432691002639190697997236161561589279533706252664905461674417752989699794703055786649582917009974937955035815984485774923493873854425789024834735774651619439336636943230182441749079502648509187856506384216209285889688783486968870721959709350879638112527697546827457343756994937439508383047270391704378074439053529727330075549896931251813869617118553924842134521274227267482781034485782697770095523914355919346867818590285214208771297123921467401571090180554264391971766158983043440143856414370325751743552902377523252239841551189810433365381416426813361649803859935042485581812234691739998871404826917126054441596936318189569679539668046427385552447640311471058130158460691791313776243272125567878015210140657988432353972523774786069253878227286633029435622651432301448151451797080564139045589051495527733008940742343334123969083730350584738882103763858141189010787472692207649057363724754664666946199714042219572254842129484456064432620231006456186937404016708694507625524846420298960182371186265373534493602679616507763173887738001738033359482676021859967844510257813675021312020016723467685911400033814671986420017251770072378423717462157031139487748660172873048902914978047658353072216891885545918687295067246572582054527669671325368688399227521194433928197901559853916462724157772614881621944722567738532362376405876803213881114250170387439148279639625732500539228814491011048456392079848567633249236836794169017059279331085518998024270009270697280151772284727102989152624333569271236631024547876010035375114943514518158290022060300452297599985880056000636282692162595887202617514589976317111462663003331780162280913628166023362092141837713220641240929090420333021839262487721631215638741556456124311339804545308649648036722803072427168331860058902909881441865214624307389450522436057540654476110111946167203195949694729628885776434653899459929895412354560802884551741675341436574232629731145864315150911556681820237211529338065682341555648098635503292383485397259246176233059229270002400455308690861995670877586462121248023699222041093703261632512614801348568126469107195905901581663428094516665415020264259072590097153199635894225882261791412482764255436272652328368180037211050573617509092185330247875207654225219930836424521986735935710365431565079038487146143310076201874615239908462509499687072017837499085814742574433180053817244598019906984919368731595809234646298968486403143402407224588069906685366832230958926662195835177189440705569210141008925330651916799389579859024427256760400865049684115823557839403821433900551221948868560908388163582440176038313936723482170937856565058207853451266753680241853032267896131834856410993790996995243471190513178875891799208833606194373158368822782982724416097008899010375523093232364248449088734129186088713960924194805744772425556226923981053598597161283979856099124140755444543624600140122363755389352840619048405798898063339978262147527948014089242431894429237692571365702583661372189747142642679940332419273261234203163002107319769344673310750575748435087179710546702788208643947473050216706869743951318545025616628028327008752773624509022981509301103033645217747981128592500435597402114955390120308921713998189537780305695661602269584078225934530837675576171957273913534807428411282823254388149654641581559829753580844654384209669428589609867271985587841202037150381878917966780960012899799010712766844387129220512607300218396995910044124892505963926516422487592555084263313528786322462548394583229878825283790098153303066807729631110306035433056084236408014380000980773669864971903822336208607435030365481889934502611586324859514212551191440625946480242782103596005228777988718460828186295752813248474123233371455680878396060528149892739795163225872671488031722347337930957998570882620800506107883142009708174766426627743145517260680102138239187555690737758244633371370717220371405739665244223963982766111569314222689159821577909185165961050968751940967279741129977186452941275113077760983696372396192646495779722691956715359252488820184785550533202163663063815896503584557508528562419731744218753144742556714476170727799324266574226155821303488714955578100624640091951918871750112015368189758955588814387026254661056859379497345140840824702339394930410776582796192458254114058201922736528329726860016580329171796600718269827332352318237631587266757960565095081537014342997866568472050474874652990092951320595207929159305662385114002657983292830233246896208089393225426064499064919944876656259049170177062682376754665613996007098835617368609018995218018503535241951726836592605404705493717721961172959798631129950230470681949749075679330355349952204387234271782245554232737490640278691585981878483080589506597710723570574825616906413588672160395559954363738307530336086930441129786924088633754601118406234148118623780538750417047191155443062669017211823843669731396733684741622247918292435583167276264332426746578808977616378606198560343528255575316539667017902549881892883933353192126623814747864144706760481262662543277930013949515644275447278734330214551078731807308500426080201749215441964910825138465265327609529986161606530317553247509447010367625713650943304544530872998563651865063381421606582857583779874076259245070914503224779296612308023619263466675551463664154115035789652634437748075983153167409409136253097036514279613465235854782916847875895039929696619169822540071573699773800144045553947748728934264250420167390152505114999233601854257289099572846878590488558539361536086660995766092006023628174035235338908478494308916821713343630977898032251427120145093856366436180109833750763692780933169749290813635401598093085927813949080037369204585152945501145541359455673444464390345416212997225460797441367258117007753087488845688868413446564414879525525241172258936179308323141115410323029440932649319632287039661546218545495881845154896785757137300236027997783531810504316447491909465614199474867465115248948153668491439603929097571062162744740313331256002968102194303829672028378145058711936268200592509837823166623180080525809589496687262830402281183548603893844768271950288821602028282693118091502120215523234727054859352284655669366253180878059135364171388707352046845344704180078330955988776806364721024412916691783515760868456978742329001002068325633579968302043971875714362979869090449274946268716816670834730693826758866381115286177570759778973699470473877471994079122420364802726044462353380822333852497158554475970309489366689342927383702124532439952161761051210659671252170886483934643208120997319237284269525843822365915835090722381363908575840609134860961131878629791316964193388632672015107800327535811281071591974711067715830304445857305378734788987466562954518790407379698974580693817814044891578158705740505385226079819102654270091981673824621752895240746809761390997874617409632350498828869192218503249836272140148835423595089508666224471616134548591385346021546694257356221231820955850121198671465603666127184491193040290714371244213079127922795160019300160509359831109618206100247899346976438881584986062812963099340166686955636897835469262041424746670072033221314143769657700178122829454096080336723936786659617948785025543251554767848361186385797611866354446593184426222236350734842064784595561094932235695933331408182434888431007208163699230944014698645445052852036529861034786063397160002093315656874837881418414945551879571738344879959430388954185328852906622852212235099629997202024764871253260334645639315120545234924977132045173255597837576365627346175622357374629613801127878855047546776234797961611607432728928727491025470048319877785979795781008066317712784385757596416229979182536750768201126668025016753398999257573308330511700869101637198320400941525144651833355907447735713756408106100467872437280699972522319853415448868063397824801454361273160502111675440954688904740667496205383167267202416295781014444437672320136780914109843222549068501712260895734622243292615733164496445379013267944521247899168114037151667242085755962035405402961366442555977274519096892805217151172162147986517198894803174472165775818953054594181021444972692249812344277122832326625601396025923414787699146885798556952673821633187100040906050652884415037967962994996329844182863685777587350213699163608267921634742188400279272261626011167221121727131932592888985509695773908646993658649719670272736194402099233881408898667335179117845232546707826690193980837298813493480811327922978246063115332037646012562898139428465459660874779757284885039285506961304503201563734145131428241852124741252140223119880250958060427294242051669429815649330844836456507746609530367354038684487890978189209922896672220800061423620388602894546578665300584522049328036859369648867987513099972651431628408593686968462862427732176988620573235049002565524719412847800696467872848409080921370681415971804658940063849408050855422095014548667232124964976485475844208035366398332494449983566809611927364011926721302525852125808577204957343556354117920369792606653408184817671768007616888846909390705995826443622602266458337515451181692084829203025323531612104063390199688224808888577611796248245053471265546723742472892077861379704039874475642195990401106134038682706979350985883703715842072881097332796947589936966619074567997737504091723351391707075128003345223288060605478038411719090145452538269467899944429419503756114957659479035876663097280435984467515039250738347221388936980958664842298353062244098105227875276061703423563418247986708890196028109167932296846169818387267713645492370940244542841018304106683160415801358154112766400695106756736211386547200818786745583825734528675757662549554239896967375351773855779021338075296286022397515812201828173494808991609119469246510237792917518782191127871391505419621397965663454107475548258230305726667009334121856773679159766142839475324159207157008347160618661618077335890756378937055278351613561197661683963686512407258818943315077042277382073160475992281930764352952569330700175391692522238080543629084103396525170364849373755219978363655229680919803450954334466792191017923768170783860627482785958394080405987119157624314963046786350722230915479827631963770968884630717286074068839264101457333791702867993611689687737543392219958666239730765438936940383452902998875452035944400992122068630020798277202586943160748313899376426237202115139791642326628164981127274693293677840994690447446350072613016901259354306107299021503687479333670710530388386601926262324695438735507482079911675729066737137869450305332993474522956283420653345738912281974924824030719994293426503818074332910252954003672006067849308590693024279022490450116924272918956832496798762363798815621170527718807803451736014915813050697807356519635968347117677144928106708701524077231630025522065618763530375282652849269602956844857816441060789863437209048514246549868287006569587409262651985445679111840187972005841919100208958410287788657761106484567596420816302784127566562978272817614390140044313652481628062293238170838160817434563676381509445574189523191817574602542411952013309305607594725667653368637301244933115007902458209562386411135648597999833530740676409102993494810323500688847964502716082326272204086806976395955948252364037315182568353638767018434227680997536713185057501492453427319559660844790054164478334743042206045129507613983293292428422599630123217232264865407327725555822475314119914290985988820271309104744308493389847595055541674684746553709137714929608223264636630001858810416735004501577284086793627425765933953526617300101205096401411235202008971001909006731711681900824632049178125929796879622260335991484117340309722512436810271973306809944294864979714719326913652029970810511608799804838654258460942507893805163717489381732037224333373866382681200127516651784923573436522691852430314752583190734451032682206573241310673861648264491889528486305673957470641329006328452239505759975872633584261338352587913317298855299447757261137111825174799384346879537901735817489476176104474014112480708410098357904030885411114402562146720824539074449488118457234066257016498468815848747802903390060145402189659989841204380644167873424236681807725139592039314463703638688934095279507974921757312041986933335462191701742011438661472316918743757639615800153325019723909175232653373496426849256462211631356596780573455013585539800831936704291229978338417669832413450570019975519532918557282340071293501790791285516679687207451460644371627793343994966395671575906013520780804832153887678890439407759831552358590182130688508491374905379066369898636647493974110088324706817175147767656634087518826967202615206800957845127209075022061181722887317337525089700024849046916676398837309744302665405931135516406571692669625733476737259917643733167244558403015151018286623627397590417224567847261208606365627997541466238869268487786759195124350090647914451921116244843763382968915377315544103274858108480066419858828653338415535737563094272531667794474486406025145635761585489258275994447183858058226454275473725851568384733381424181061171835412229209645332429631329279913728398565404279608821297006091277430509805366974929921501003452486541752507687661764750152511418180457802320796042157158196850204436037397109801303102086322860773623010913702578034935779403799890126866597596487349617578478493927650845539700011763906219225067353834145110861388879541281556656161376742264999473043890508751940032279350658989056537259568040823327178268025991085303634862007098228053076275798325897114759157215420480975303603685862886023138174386661447214239542122359133024706537205512539401461240184786962643060578348342635218744643060273589894181911357661548757621887940627892471870136724239546005913305507438179757699936527690383629689386910172297589678802616704375629618126099009906705142624837103027778754856789609382165554468053931479769927217726241737289782124008612548396596850571534965240388217780709356949332991265545693652987699694285680324951428425336946956578994860667527517346804941270619343949631653298782494716550791648190913063481768301796680131813948232215166268182169502665960396390567881137833984669213514998377237057227611112549271248194697525336730854310686126061558155068362885645386366619912724920440178361721653188596981492504272518461017455148472259666326011260943346338872232161279981909439023213013732333399306960839905348174544375801312956651926691660572387395484191210274748896526207804908969088483163144932391205631762881890696435820958609539275318243644928645189020899922939091313598384546865476614222601872381168012935619856286136329876996760417097672738008765072821509534374192086633263185133095928074394105577862851235612573107219981097564875135151799490746193361851552520751153956882574304590645612555811783813431484507175643051192897445593876570024413745117697202522555977814943201765636352413586769613211441648367467325207779459861232020434362067461530333141830943064026136054577437248730598109145470094963030839391204428264583910691396798888612278398751212867607428111816540803947858054249020849703918468614071403585847721572069122422601815493970791856162052227748303282847397716766769431251503210664990237540712786498558893674354104716500049832997098234425082521655963232653215142008912705858884234350830696704235474584682801597765633790151868650354644932305837768073778758370210545053316819639108118761190826598692985012832797279699189358213623652588772008120689853564082040979871347384264277479377051676304992373490741017766701416194061179185930244699150250355062892187317910138537246987266956929347065294779772363967330644753769432502922858392065402016993794675991697680862547250142576223735654560624186606394852588366320638186168645181097798562137179166398760540704261652344033541360861612142131178879491265365876143888114985313581694741036849552319751291881738554217544645103718321524617127993455367740693762160586064474688843628157248688107832386560813099210131772854135864820595072536552710682226919584386733267406338095696729404185809474685410301396742472770404169687438359735391020808608281450861945147390183510352486843824031672157946051664361760748383651049330669283701701169279164007480437629846992599970599642539979258745812556301315535038342116060587715513301528020174826577146149814384081112730590942763067232443236398897581804301317806930434069789661632778797151382243865285349388593616303657007646272230608603292892866745830366808493652297220801321289721417984428523023589390882900232831227491601960139845489462514321898673343799230664112193271650426442126027025994375687063108454665909683876532614285067758545351261958631979726991797713168093463940968356449798544215666166594356162757480290786008965247673955604048714969767390980782333333078445665767102507698706247911416749161517200882309207784723250978175782119275660614439517240628439635744816993985744692983142868263650016074557749727952599501220960268975327229958139168627788201432458810359702934444198830906538254995910678973202370651125120869726694172549662307671323167249313227587113377562201617356903943425644210453203304953719246358366136200936314842315767386561375085495537723913142529656885107234524025949515807230905262509519074196925682693936451552040482718653342251671174417042308911741130019042606496819584742169077798648803615635763006794842375734015710254031598879856929162102863644202293106151198346564604954925914445716409330605295582348669203889105748582868411825356571835650190791207077524966110065713661249181620666465957807507781593218685589275673094959172598898460785392881635647477645740428398416693466303981970332574867972624493798292975807737517669399441924308713702590042375603289873687557638263746560186777105071057712304193946336090623182541386301740510551865560204607616949831292488881911210981877680252305092680560493350220929857799006670614665679048480327602092526516448078108172049303845934466813964822942476398554086344956927006520546824782415747254660035988510291850130117960995877536672324309379215939041295067691672326867082837838771046505777298224899785975676017716436801150085397654030139860922508465434945735111109951913733362282352322753518145162165660865143461112805831445058002104988087869020942728767917662194486519405504335285946518897731447283668653770775359704933602219568884460773070340839708703177336917597045298461163667822607652662459819252897366807496493866110611278922973787986430808221396835807522681511003434192259884713658984275820673007322276458430072303761751355977221448696587522848804772064734211205257600305812726706058734904297926848481368832540750242001050127394514189052580070863688114325711320246160865017663034968750648565547342202477853643242044318949168460196656132123241759226260322039643843622063232750623270236685162213679624539288468564946942559770927015426661324190550358650429455122008837255319845736286373781526009932947762333138631113331552003361371945613473833452572069176649541407675023352425022433127650225071547824840646155162484431103646831703480037425481980273212648777183303252019065889968309821083160260762412056048778787859259076620535421699531758195907958802823787134442024060893748464642619087074779846495033033763845317405363141504685029431168964879303039779455639749467346801416249844041923517521093249463317435632764183014404383571654036059347830958801483493154777060991932155196491711511830038764427071141491600582492035882147825211940633222677430357784696417936241157908182053544175066932083203276477155126838551248766563126661044264611308063454149021331785991273332730304512961144461983444891343321276081357119259118365861518118762820680442680275763726292909733458562579784263631121042702713182380111010343235827242762831061802384440599038135489438639238101318576833901289083426241573586582378696209792419987282116401261813148638891771016524610363054131040592443727219723552726988921171129770467190950364670498075358159442261534753934829901102879127646831360352076718287735849322416526314374999243339244544255748895445809140747394566492192679964396563608100381136273994437806185257076651312253302682948577504926396861672858854249972989029043455131270567049634164672827138886328856727335861964827393296964141223058414033990087518334133783184217181938298095586130631239496411750629571096487532859643488432152841925398714086425095201528353641860065075175620650002275837496227774021951065884021273331315013654589710020661662888185206527691346322438383048707534036484880635828272872907927950140428859454745963563391882595573337481297608055462776410914986788259444162044092844365116606635617316821503730708068465240285296073499821102867890984091048050335067756926160212791839848499226379092688092160276010277565834823664511348192731898765998278993227154530313731862739754922403888878593684265944535715758784085083050139027931718108647361588883656837316530978437268611430574476498895110932473310634575650635997592710895225962533345045836198336187850992588219581014048053460326778655778456463910383549715662543065517797645300674510409745693526787766049097673653480418421250630955104699505491742635101811066202091788888209113490590966833356332374066330156949624567757875365403850417977550402119663483219631250986108333489508853959947038351339471051682037050397233761952777106333859735627711287298287100436525449730170873922957671235369643035999555631217140237485252293743656136219182666734407565605594649125954536477239757208528812585595637284550828508759228796535000266833181275447597641379942973144296140039848684961672416737454049867777982743683709536001064746136433328175864946135510323903335180747321646488653732528455846262017919273899900305421143479792929757732048674224250077027595609064919841917270022557929932554152189011093363548835628024003622563440703272321444749930177669720748829832490413683414945949374325131812152383908224018693021667664306022229198139137457718028730612493384426037661768500463572306652023358902231482489625888625671257203173255857476253850523713299412236627327711643664287061619108872158310821628483109164434739462564789274032966287416192850939363567634856746622060889459119524670111812010386731055214717139012251995473976435730782459862862976401045646866075334691681961205688586147790939874544491921327882235773114115024462535445837562639238418878950782165267800652704704570392876315362152676422525422510333713370218223050882024421421185540284397745526213220571363674404022538583298557270108231419792472744820502789222918115538419427526236907042108524639742825298371559165399464382420641599356678759419555682183464186134670697018376533102913127253215634922230684167455898870787209444070569167087022314600320610254706472421969366717187013330409219183529891612083877086724610435827151953633045501851886714085049197416671095787082512440161111023721285963703016559183101602090484089308810837236987142224334297042727379055655779889214570611032102361266615533905534593974408646386841193694728557311097646199342549064374582552842514211168021292903252037410035521984378575951803528483893425611508617333585767669678812114135215314023501605658040852058851365074394212889928652012098394014290066746071881855914805104735140573149039513169651854189418551955898100471116694321933991798744918035791683665745555450584933938339594627040219135305481788384001008938901751884996824915212502519522482876822498625024417386158613473911372001457998680388749617993054565430661434438332177133680159101147268857894870475257733207065932563113322607188207573126591009689853812146467979906679952869810232947865923610794976392165568190383513340950847434332652648569532245501728134129248802370737574036403691066522234058676105589780174891933544372157210331481710372360631613623467760525473243484518537017476515624277251941284966236018454903774224684554586121088555637470258429813218874717844864313944506602219169131779737726598857965404713149853238577532683079210519696365144571806603222462423417073879844905731158886942826813881337878449593717005222955739485829345744800344348352396937893247033816061033360395665771130974025370974852465312711606094568887812686865598574786223649345239048284047827531741268729604655668021049910274491415566034889047928822527936597018763756263493838005401421118519460083443249844521471356163140434286062487720976575312116490079708123821920905901223249892564271499093718621036049458807886572055333174262477904839572174024929010225185481840114988880189807863464197140873906089454060919532770851034028180287972481731902329432899130842964191244395871936567477248087832095917948663352124523835110751857331450706483299342499021394809028561770391641712032106959131294805709916576811866536651121831248750619529754383114429022412211172452623894492754524906653498592188331701885865619574387590725768277859264397369374936991630840452651937453208287808072842901405890557647474046610299313302494264976849589645732916227453331384832244806180286723864256874917071050755061556905069627343244376034238308871752239438038472215087149621541044731583782285491531920219062706236324295876770122438044386026449832429172624320364673980363996014566933863223183318140744718317864800475790573034632708624151685383590123958277528256241472850062748615708705304948855640766299660192159687826414725039471859686559366133081815220174949982125122489175714176766756497274866436584942079828935303728890900462482485726476297019442681152109055101218561749413380829089466043764938761687173003310423197711426773297637485299555644841414556093958837667105355978034442019037497910299499039701367975327811823950514219781641033906453572675007761248742680749368371453162762879170868328193863676892304605252687221661075590409337021743281566388603428166272675287180882756800438477779590045913746593153870293362765706453839237707062079035659265201020137634577904330024179083486518597166420059845417895087882715270509960364578349772900016965924355478846468911479790576512999893133994184749332719039047184222329768304803976732176363819429440543022103813775042442506961865400710594395917440656821645793770459331948902719453238674529475676136295835542123359286192912297347810766225376715049261869940562189137696841307521009807761175609319426434555909161651682431038259350201241765321530394044114456513814299368858777588826755832939842734861306780815401814606343916656275875020030591250186223561949729211425007685034269894299091585098834157445285918863851636389923810573481174122775018157163754642348564592870982629886478483217968267388887320419437574359116572334258487477395108561196566977164026373349141727405670601660124408967550336117575390106133080423615647736684431713916193878274564269936739589308661788423704300957509861473247517615407432842541208224839972028926186481078258895069194334428860139324652303479989794120678371308160458694552401319704302740240393848347647114913396585386058438785377460569862852525926050608037838517714762906084613593267756895868958507568180302082710152641154277689058775959365044991717581071027739163510770785648241705639437727042972674418723799230604346877242900599660386759964448505869010627660502825693515969670997550106046151487812371509546745410800419840026381568725810786062217358458746281029511886929812533190599013937708861193742364091961226199329308816583989023695507631556288482117141621708920469875239064560611891033866704143659247858589905980723143943262110069177619899659152488949748443432233795923367736827358431717669695670282185633912330174066147762754863273412580056485970881069636973916452982187496065467900565798214654256974843228154518020708970529248675955588084811374625107047021608048190882610994962754111951551372206343114890019398331880904699529505132704453656668474927353045101355092969096859238526421431633143740373329404167362260531235255499402874369732528749126442854706332591420159516391421535492116706250656052084185628916358350979070913329137552066218250149108548527779201572096316531193474758124692291369446422790670085753746077980977428971504507271841764886545878572188457962138114510342289003662146655042857537846142416406254578512736010398916694188416901299087776027107447166914559766082515486327928296972082240771891975942118768906825303390747004106938819987308766038230464885327850952636501191436094426953732749589837911857600008602013327409937834209441113041882398358195831577771583911070065705066990355912636407116140725380347985254022026791601282626472334670081288520876779210159453965415517130878251996179079303180233602993029093533453364035225793085118567975460553253640301236351885394221184554158317828593140750080090214935094945133487361211662203858040082587460778762285117956163601012446709938107534264406938578945337327786235314728198520182528141365913995891356484549564292335368891287802258375232152789125781630484724847786297980635373745898506101565005139296906055702819677793494990476569910897296169022465175131881404985223344359939407966031245718218644559047205685412421184745737588697049711939240759578283650398241712270238894127942567722546653112692778287098227540326974958402002075224927250525064111947042868003882015394191873585729006130277190169352453852172672572673613666449782685756538401546324826933777484667121304704163784520233768061353064544444464309510504373897237734679506539166369295177660656387154259284668014371038274788643870543984470948133545732314028912287973300307811646857175901892477992672729211664725740170684747674102876405431034089210624821332442943652656346158696613697899365503594055969636075241830243628494427262797713268011890253095321037206112486342077041651963650765969918350577577468633084439947051658833737855964947609934765888474305715216076822463617384355183993648653948911004492210695591296575002900483550599972539445943893703566345026000594088088760345958840218509393466058826495173535123331064170215003911115656696122057360206254315578418327785802961715263479471332624104723944382647276391916322537363422549693314934601842928449824703378167128637252052560717175296838490509499662534384997530489452610578166721836732848811898958832681944524349794553305331478022165212806749763801005120686973478232086993994937723777776857076923654403655710823476422109159014651413090671287812203557270419811774908891104819893348646585967132747619476048043962562765225695177397662002679087823609680318825009846874655040170457149556033049693160713404543061196709440385843345437961692978981614552781572576263830593447403021123388545723907522354737047094473870525264882913081006941451365792066822164395536588444386955234581531993826546031695813796970231058297687095166464363735834342458517240470749408031646614472464093330292483240399727818561081059321938291443655988451252522549009519187231599895119818507189239251625537751264727766694607831815423307100890913790568847918188974107923403723642359593561292679634901504403067326180325888263048514909878726117761624894645286397132975051924193197874304122760652443355904317536984338490450406428073044267839047434358205215577006254348594203948983478643338056488445589080528409130472789144465009386287173027202898417149497184203706925858429638237359439137759328033561665534502505191878125699825305525291019601746088561309351049274470527653200360059949557871158074380414408455728576438534866071201048111388974365170677641284493840016865979586670352341289754662228116805178051393018511056261433096281884961567441049328906650625115469276468306290830568873615152222894663357862672651569316593433742726877952537985406818068718364262706505755192091377773748163689193919482352360488149398902968286388677343957380773292198017634117394904208644292924989858341559576023105757237224114225470178164226264668162301404990845080524574028803136141779963965193590819175037129051010873373949966255783102967346979076055127306811246687565790410455851146136961484757288076634118000269198523765460556580150711210581897753363880286295082660221688560909559459437611843021080039674666690808276518146170193222830576957641634529511640334532431914561553674350312663009602761750912750651875652837818531303312695642310247243518443272951673884281224993224661689694665787872465923896521985636607072191987654166351022227727091759362275526599841897652557411525573557089801304083450165517375428862472783642910057141813264186892973049024493995838664559598063169312093981608474809089327533894173297222582377413077440232314997293620704086081873074902416701867420052125412175393541732321973866597598566941771735314964653827650677523464200079324220841939242790858674842678680350751269105320553820633586286726349103719918722987164131373474204805944951374881269979414086802965500344680838171302512612658505089889505249437127819365365945654784272296406796018095992752923883862077419756766909793515980910328934950504350756072484525456984251897713839872026383455920772738468019252243128978231138305308637714055002928481770935532091272139594462307420995996634963593667259079192552991061828603414899143578658862201104199533769741849655215819996747534860396842739105967664164814030535534773523291784570018854514729362540963570443147396490783079144407044852681809154960524034318523509256091264307976843711369391119116880704074228309531571943136435674239303399161060648951628169181251061200283215359411204597590519903924351455901355974121241528631810938926081966533405156427919610405964697135046370517249027974548824511536289845315899871362515806544403524546777274232582599303318046963286263007233540558903697419161572440682669553260419856624099088790343269769506159516787247023399392265358413475157657012175125830131334741203195967694953044078225172106803739020240102467706694070094910098778139301499227752524939191985851833163997744737156501330135607032969399525423042954803484754595813239503506206972971618226543619159778140623351487404700339113633658258905172259643824483592279888772603442457087234659589490813042587167001381429553514380371900938350736418222939309051196776664506436300193762050204172974865884003372030347993895072867177471576598202988926193773559479709564933627090743693382108523998322179739557319514465895113558795158113303416218241035115255539795802888895930616750611510857243930719187372390281854109577980312307065231703232263870070803882898909294418577404952240343544281231933151114722061691374992074600905329345750437488002904769390110707963574830323424349834310194591361872375716219506057738690724305034825346930467442841955555460584841135696642859622971725199770702870061279090418174166304990491303716254133625746237647175115630951618758738782783728494753107212577451338459496150137197411787701350760036007006810565651534139228885692840666884059082028420399762994645060387178362488367977742898561352896174962402122162657722807353345991448858022398398795011498332989132219731715827495692382119064034012065911022333224450487525256585305368612973587120393824126732811000900326985636793504991216094061513954922642827335548609843116946735547716567407019561234933067929395917269732622927933713794033541481278975215657730627514138146373656695776445298133261632254465368202762822049606987601909470623817866246215840764051254785751250206997338495114671910810940896659333969479974942305205027223014390147569253826776428654773272518139054637497805315943585763579328664632314888893916463151843798082660866001660144893649264572535897051447614824768115594001033366599287696140788052456017270521565954311812115208033378679780487181938795415739522333902901984553808235775086736544969601754917160606269423515342326569357854439586162548179996664152024218514719937962659854409738661661511472348105321148018426520109842868972101128573178255136340628817707332162048644403725615408998705258639215232146387780508798736165284440411917502655396640453293324393811334808207943360472480175125286222689398917478762114048800251554612377560680974321147174074660552779434711590959721255593513232600883079007439027854363509332888206547865045138589744118291864880021382987170755755785825023343696939218384448462449323198713780821510744359526972512230834701441420567984270979241067341593881130744283788338888383525764429345173595364269102711047031697751309383045817737653497209317086377872602476334516061620822909136757406064739728400293085554573802058255019507537061311898861059570567077530246308223330013110302238506110775002386155519343934885210715096519134922248785577147151498109710759020423444327860840656020676762987644662690711381572658688176489829057731805141902298429404306934077173587187598131151226782221264485985634782885023471186567188776421806626462395785676039417645392649869349489432944732428647751029978501834638547235416316827311665109004833357672607825918075152192809524071078407478099020045912442235705454650657118750306830593849559840864880038367913265876419567834955154964397368641449475392719672266819160525771490418884896088745261245682388076212867104351062716558588541359198972751973686599072923238144336851066244581342893488340197714100437042948983696143457629127720945102639647666327660934210565554919813622104014014040190820921166191883767740970505497498038099342389166273337119235819482710249318776574561183154834440740883283279719216402928402227216445551798239050720526411669455362911230038688810390520614496751057605638941392823078234017676409603545162437412178135157556788607406141369887497076084110945604765948680296799319822021780788859135961313034699021288214151487840930940626311672155413139558763752964814930017435547943833920634978543679149909639140171610497802579292485695122357737208102117884383355124567303496943720140908788863191391825765624680220390340587413913944228523977086159237744814091687200344748008741316805332310364780698024126124185175886727872604168459737599638000406179748558366613372818187430705321095455725978389198167212047155238682776638415992844450560914633394835714107433596691967814954432460783339565370069224121273858218770665358215562584667333249696093296398384321124857890760945035022855846125904779916227890741126156236382869426134475378143480417470319589402931431006205695765425250761135531812035671543254094038101560050674508807593627388696323241841759574990018235570569607141408291039331866477217525766539022899642698326936312026137595440363105465614603890174437922770347896396347771808896376727155522776116175435378161989197368735562326386001226527846236330343374554388455579052644928290446597567539759399193374439659270750915257521458175226488921772110392010794210735669599540741077079913667559475058304655974584108645054320978609052911748792387316700029632238530964100424816080106311692490673109957593529925921298777037426634986293975491142459729083038227301501450462096619447661761380581818627211807980529275083392723715696532024477949343716546295902440002503074323362920973455705618181272569546311818912304721995548295541034222548252081185287510929777874052668141584871965647833147362540441205451145621545981921616588229853572247747230365782490840800032586052404572663570162998329232084126121095281929596552811944207629410334429833957124463475602310668342238910122396824423727765716395391242762728512758510550394898783948334901640138364490356659389382470678525110879565275545874956593460410840456466067269262214695884767694700735041864904904722961399492275827944949097093490526239790043431978740131283531944910749875486286958838739292907065623370895263471423510728602139953503860487233630133063419613861996403800785501741951676873712959883103352453977805960995910935781661725536792701364120278548006707113588062777668740034896968434608084773495239754691287220126027058817011555802634597156551414618834303781817696700900275547657052875153371793959912384406914412130533618359163962944781583682222902851361114088188385475817632162846982323532980931977957744930779836391818934140453204118093332567768991535447524785005207995729451087570327445336874433301484298381858590591035258881128558106046383901312418886491587666638924936096419679081088489140994036712510537790424694979955908641558304299357836577050342360161716961645272351511285920374391214288697809681937413614281934672543348922587421313028696614868868837594728364050595099690456895440395854866460813483140608973752844713360778621355388917169197716659503365747503960933545595412166992650768316025057353671295142893639901250310231269152539049777780623139215130674771221642340703174134718302223810077622102756862107858332640607666944494250038419668419543194551796414206366419573492651331655674607481983929426518233781500325258623135161877411856086453553543066706743840594889118573791535944301673343539599694837400470640451972376330615449079347303927701835157211766557951563852774779270786034317000816068836280202395834193580440641163584467140951210938561763772314853598617312681516711515960638183657233016621751086211287343319422002069887099363844593482775914831194357096848170633900808086041149894780034321745135379946426633436908149552388861411216416534455535109249266180761798183419645339686978692016430273247918847449826552626380066144776080086916846998901522379949609176425863082309331200790051166783095693938032370847337106922365320603365903995314897646530051960269342379708803947941676995744763233051463302164885716797164429531287297103227499604065866618909640115777889225011154346616639405430709896676729528611594543702836202525441727838462562768514701342680191845074863968223654675457205098562580574436288871339888403154976706623048822752098224762069142670368562739594404961206884540420987734884136965446915893593408654637565111514880768509445039935015589782393158526160167513277136334382106983854193931585808006050932061522819983809891098456875485933895151757770506122901764781745773491888292974821769876195964623638190418628836799206971356663103736292682717732769907909419595252758242030859128624030836371484384082148354164468634821257737148386426733035998135350117152663427329941072228785030643870193122671722513005640881187235329620845477785762620952623431484276948256666163123306724905226794799464632173753879530574517667304607333898783911083086216157532727349480485996909114337627627078981917892451234400738346850480673762500300553498301002292448742089409243911687571624808679306301179736546440023498613910298942488296719142577942503013975524415958323379013684224146055680138796539462472807115580112316749140513066810310863713724666272471507823730154895468621736891680672941112976077420447002654465933850712740982256713739391260876890996901599142563738686120215282370499380365783139138221151025479227378919257323175098405035554923464134917152846270446306483429049819657750341327757852224099169571561095587904537669722101949862278229393265139612894986030060287629405180004684151585044551875351599827498042809854899336865897685066655684807934029731560965130872062832572936815315410398359522461550958419337009760724020217620707428409205639072343884401520978220401242776962797692705069875738884973830554363423614422239921505743929493454358717271658903921008135930212378953997362804706800421357097982183669088832238785746704117029666561673057056236491462025223857630060765357130005171932662194878634191565830877927387444148510305130826321236418954416030094695414109919093086873519026452568244690171072444197759012321553752829149814116606917394556020224611025797016012294157353967531115697444376054191463983640293867077244463794358478780498161194223150664885095862614121721575407746276369661628577803164479195086515141999666622943910696436958299138883077181925055093840135587597877607337620307860442421997656234690195190060528499723547947109894281746077987974189996820433654649532959395044953511308534103362385830541828703948449785893338668858633892543444673629922603856938379249745126470266223726395583348298517330395270436711940713014227132855156352210203081899635547330677773338794681993986064378974799360921125576032398219208834283003052865461764074170167757472992905406453789303810643356416846171378281267060615010260759310930097173125341466523582511932138978284080572424462705738641270826070228282320499445490455291735700907539688673109579679721430516975990015930982351604665727952034851587477364966314821460906762992527722717601042241031266577268803382587248446466163913202950178725746197846293212875885274525810794211549490521737631041439617084104082009344148322733914223255251366596813758054778555091201579698109085427594133845029125093646091877120856105536215883851629537588421133690914837634525891306788280219016579952294042011942840228273339305053023086012513627590489422903693597423142492879462016079355024850063984857710838728264811109665476816812157385539431799173346610367626282813091095578669349516715755333250176999963107548700397572023063927513480420823621417440070171939312120389074289445979078741838326346356704786833482982160994146756475153659818334888844387635096099684321125999780606788301844802517923631208659517591682868882688523737903337790289081327766647868481685898432763712743405913047844177046068000869297988556145555919389228347700907207518294593234370229372174371583608290709661902291095599427649484333427528879680593377713494004941542693739153691192117514240111898135209626821235839499447054712130255405918059588997446552938526384606165934786554301505793467763278041082232263933823540426181303944977607206917946233925239088164805497596370430803250056240302284358193696221737945327735180277665734234535950302912766537461382548960422843615430461277414427522460036302638425503902738006086567640262217449712011917056313608566961001012544313591052235911766082747904338453268936498889892137543231880631539568404572239814408784461028222624151533477633058939850104907706234800946593894880367077515819486336925745221553799810759094792024768115274334713013049189412249655528610446224493389251483796627175222912318321780429926338325320603329324241249963888053364532880988813832632797989760624903092014607820008964402246887158699789885391058060036680176538792344253555550017622343582128322944660978729314030940888394512286966712054683325874596046666703838785095846384086849661173834379163110227764837230229132469457012891164199680237218691418485237000961568673504395583642138823718281549948189269220660596651978902289079239047406336950300527123216628258749181946088198946691453908244430473372763522606180983093315745050070167747646294855973447004918026895581855047084876542667809568191282673034660265816574371099223579449857042597328675026592835681458415149530809207049421786162127732632415789936747484441782842723350132856506919387445037926559675330078706716840245954153785023072021173912890915022323664821554554811351912845456924331857902374297401943920855128909437722660389136598300646754389153378063135794479467372658109126994255594204713663320952059734577398142178259552190711286785512552953649109173361938541236961503940151318306650818138527663479943433055319725200413067803025484754405816090691354189412732790691650517361522814327492995748517482843427276061721527989996067511321316923370316116374913784225317542259372338697593474598658336655785912636229620437500097753855107219845726981857097795025280832500696205668814560966497574474442693147364512138094073645575922941658714342625931930669405291142382055127410075278778292121335001372773089553696342115730670862401759012556491535265978685638767962235561487018153425620662685835894452414054756205654819680898051160454988381542334485785298745998695509884867496661746682675945364291678745201044432897981002753491097162747766706996772777545621409918176881573483324404789460519413691557867087319340150731426149642623226903391506582441213313942830811294467704302888301748355681430354267310476684074373392243226947469268917395700206711749008447507530967047329227680225760998240697934648216697456867976225924609384708325294313020613336980990554014787110237372317307863835209805759446650988816595304068243620009083223886486310776422235079050899179819728480417218155017311558124564013313845745024325189749135920342672920162437467424546739556995970580075909825959449898996125374446105708457162577827428502758261263929681731632891066192758066761664810542834301688777174613393075680226259509272292244885560740646727184326753099033104806646899976814603569857502406113400068597216046906779715602772682231081695360025772173720593269904131719875279572675487509262571452250786030655883129047211084507156064697122687856073596640807982171484883385550231561185615302190313330984269319078218154434718006520570456492370735004354152503546090133588997495218501111148869572684157419587707801467470746954117996925102419557569138570733601660806698396843827114067177592282551558199874717572172255145028261832471107071071200676133731239178596704468001009554508709392657136326693939921083842018024469652482126956408525566236313962047708113673129483393967511572778889396422757149580235500903547582273256289895463802298570690225779686770683556425729246018468824817026759026281286438227835509599829783428659813335092674691253280062164572365958748561864430696006753841191960445328683430355204456399948948782223520492848675420158296368353813645283331838774377465956078861622686626968433608322348184864708071504747586216965838970824383559341358111641159853096075449639585445856446145968048036431500759384181137369580396707322444464671999094192152393751900783907313491724908492067130017169323415050526011154893756211602973104880110443666199984997484642384616807473152970324752188897457176193825303514192865656478730834757361577147295427635925296188163295803120335852390258439022019318776377121583403818603730632456073657481774803159858654235013510502768582876147248661922530742251358884831190587741096883391607740406461219148224401343353720925615079366837338014026437181253903565321608698854124884060251845037754289719784405905918158532223823634091472492265019426543740065383141471867875654628135459296353344946844813079985390321863015729994484287842873672740462877719889321786132049653592950247909305354096469124882909883490965175941694547585213775446119389133870943312144642423755727592865784073666402285335593743974704726870685757741784513841979913514495827501414080703622478441576632199355581803985490931081941592522035437942077844578633944582520208064830797280054828220428612214717229703632481474224473452497029784512888905885230056670820040518705364109554158222252421129428393122630064101714872174124542621486928379278963907661581475894652300419987077132370705914257699826564536479521278949980568927683711174547547909318917463278434066309895326882861839251424953356699126432876517246383347398860478007529882843432192719945771019219908734624761158643964343235409445350702550647838158405173659510007030163276922520986769869135493388986290898227875210992473159470305263007154589519473761625331817206755879809564323748112556619482417527728989673210450492220861046556194427923405709499813709146528264364252533443529979422865187638580389376165449575643754232954020078626274584846831403637348980175531506474320710177068141190537266176317673781332187863729367785567084762796499357112762550063864670895420816583080269522905651876846571264187894429054870210765440892249388853040251410869239774392392294818437009201387166150536628935916234282222129468342902753778123154688336411018211394887535468390423603523374546290235899688702224386337342989729826495411416086705833472978957880619188254084582939451777205220467632610931910936412202214783190292672452077630932858055711541413266619316167673140488141584574666657729625779812162908252678599388445651510527874039516477568460674243257697435813605345485548369088424369846425257717888570926054860340854879434291251632310468605042133859231093320921280525866596102569272023300473726741029138653100771107904695739418766672568285758977923897678219298686483689722388942251144200024371538731531030336536360634487376548913196788631707174746845230991007124227183386078517782572542591296935446697695634450435417478700139716047734849842876957507542849832965717895976934048123926166099049292914134894514941013390387166760882576680924952853709572127685755868080677371498044737753807154546678127606929097675621321757553863418381235741548316637003501944158272831372208961276642092265253800096228074792646474921925065757462810918489774595828908327899110712819822757605962448189517434253801490706928263604859893228925081531122421703520930188320190586024437872718130722210091015295391178539152772510173419321822855597976790581258249655111243020161134321156163972528141084356360992642189435577748332465663361600078243620197200731235926718398238039791595106196879136552497825058613363858365239232710062049686492680034246062268778844736006449945705398785427965817213743720586084852902112488095925530879518246385845812161711748738740674690905758385984230139114289831887018200033024925661066647165353146382340325858457997405264928981542117117577552845656705100123369149752200795550115930037713729971613239236462525864777623329755088940672484017488957531521400933044432830859634799152169648749348980654346779514505501541210921453678056360859055021540196617262066059653710631258196090940928695215566096516893702618698569918983851607574084083977075415032978098442730120016723194364219755467733905827166379865001526809395900857776061268569842085682300763790301899511436414349732640998031828759094038169203342903175574547085031979785966549256531126812201365784268396968337564488655179768682058052880698707021042029262708318495498999284897573046024656116114847652935783233665952537763150463170840111892022991172578107082532815571887189900693918100579553615272793429766132160941558642472482204358885491257550308753153941338748676429500645656380838515359588207321164147846394206305696899071332771321618039788047529426233270490588778448397747097915360417229195064118662560583967834361606004997096054497446112524403644803263312544514475648088839145198856301623593211710701504992778655280929877288889828813683326248075782585505906915879782878089496622860852513074540602893069818270031716594500508956907029233722266040129811755159023755622670468399212653773728733637189590746726205500360299843614151988477214561136065187189031777528279712772713422804294069858844355645340346369861231731027126477421562794493244205358864236275387489021111151665347411270096191337927743769519597993856311083229716665303204636619289964800984210761996833445509116988295382731359937201776859539236414644938750255613788534070867063508264914224311464821720124209636147484566820066922825016573087407847990671910775014057732881090659621951312257719396889034362441255000923932753682125667779479827683723536512967656378328585739290106652510566654568619316345195419784079173510910352305312190292203799559792051215024750303939560995105696251457771119880711959935019817206519530397063913173551014484741141513716362240035134786583058565156671081771035199075754165345996714678575977905040519837584044586943785438190057480450610821274222256408635155987701496503560475976499868328975034238606687684392288276993003896396730818696033684508535101527035932626046812829682006263830566320157880115207772870315130828202070448594917668053944951069104690325990298781815527844826697682394965128794230892592536742467390326381662856878681226949046632867366494178211826913872677854326290752647606680673530427919150362529755104133086463521970525418952390781177469592253951760697529432661940664597799973471248108872891112870117111608097649697191495968747057833258240449363569479122063793881841019165657767157853092505091067139047629286786290956167004814942625373732499201281618873759285822421698118487652440058846683908467108294892893539784683030995205824372309697257003536915705688327773868548338446901713259442883099225739992331373749335855515190725924070321211731420501247044343353787394579254970919506468631518532304193869531855642105701477797865806156778137302812952206002788997619091084142855877837630365777796655088552227497818059465380840306799023847894486085675654588779880859891475020325566105580081588781342007055666328948756797282810816133165264641940081828556561628372335626408543981093722978321759262595727222033624527048794760634302622803351761438179343054283154410556884626931229177680926288386795478211177972484996169000250709461188262399874687521755854657833643416845420785571200899132538307842020840951082146175576728379830101399784706354348161551064683918569073895416994956745543914604737439671710180673498815440556742371554201294146967608386279580120555087507295943060746206150227680829559508780897431263341058274778376669781463139696799993390415827785138008768604572308725537058758811859114176052417096814945053085137432735609916879959996779579007630601652432709313953669053024848781531933706050287550405725006727790023614773386210429424491839781553599587192469912313682152683807009674928285209246593028436593293082328765697161515416298073133440447516634061074619232577978504257986304926923031557581228346945779796393611470476349357555429865377001806087047055260881451128525995543408081358847786641208922053908856758617900485716484840461047323261617962858100811442624328410668569692844105702070984524910101181694553836103167325754286651634248478304211871116352282749945530712488898014726379863938967660561313902484107950411634385806696789876925417367947346825035430043393225168837486005902755015601743273705570521244141164950026189674056506783708505835653359064659468277337747429787604291837804396439171217550854768238746671460232343675430219116920546343706711919202736246738886913499579291322959304731765727576558605798364589811071090205937122608162276063465235188675622989443323093879840838635494266094003695294805823014013211855123847946901522119011152147218159246143616253607777653219741052794079350988001811698134999798902366154566313308749307821979132863305646729965265463642294378843911393539967101014613636836570445415967633094766665853127668716981794112834343278522588710774358690713965422114688142346053430347818794960132974479853148338628607197228493724200570928922284279734590061150715447709678721254429705925661299741403261477937383062267836354307064301113750452597417810061153010160331502809130309928066362690222012983712364975270381314450741208912528416759950412819301548509322189308158709662437397213372976637063294993576383018459422145284701258798137124610421429519959371034794595023087747100157271188459920441893567350744618993933863251119892515452605631460618027653772852210258446860562599854396762875858998279315603213047989581896936932387935318645415918326831596681367936884427216292474784081809290715706791882689232223728811444044572572027639232742691423974218908731902275736060714583034871544101261078877826945123306372341407316821164752348353958747217706317608099054361423919862705769689943754305628843779259027501022598318950988614650235564754550435980962288983138163749087981902693027639512218626778733176366142197826561554491390841789423234405046710945869256565830493317689730585876785992621077854146934954630526625833567823725837252200019783486594937100504417329852192680455588785753982220381447492683316606011382417155589903796220254324756791303726345655820114965390929867552599569849979682910340338693910878329060050426372635095893862959761989520845683433600966007639359339126883165045333141612958466836046311956605754306569906528017052189712893307871010224157722390639861402625951798827423042224228505826533374393693530081898342160070119558677059408646561218670702450612931415735211110578965524632920959111964879361747345496062269572645987062059198968194005200047083034812310257725855260076614792213358182546158201529933017733547264994089863893847112365614506853287237773256960328820683005297683156093417844181812268777172779541868643224560960879309337193509012416106351550035975138909661975175372386088736065575321102624729493487237389845847032679250802719097496351805237432092856522295145078289124602454188910336368527388058132397609423877036394644086387316113507063497723035002785509741136917254340561027704921289615650590138931980984546385615560423949404729884196330853658094674327184972747986744452392943480046045432601164439449796339305638523258343835313476766021314922341208777174113591765318790450197632672510230247239111720877447384336844886397549072879446296315842484355038645835102938447770028021786283708006749290775259647948765088064214772722081108844986915489874133865248780004732707761053254385150360853372242188290743263862585170953168789348310627575780203515963891695702646840031581864919020020810165428793600207715116983637422451513973637539905587274971997789849509081547529444897913986513215248111989287372300899461329180037710485788391401107640036307099761784754016829612319511825186151244570466752369069949926299223178894201182248225135363315289454047450669034427594853006570701300720417864176087233903865100103906645799837091125058194337387956948843573878179402455961575743489236598297139297440601935238073303411758948827356961340038880640751832043511570945122053161465347873870132402569738323387139985235834015946020467840874457259186965274169465142556953168598936451512056383064708566516738429066671202535366129065089525470033931809593993234105996291632941223597482610375117576215880185839882363343809141615626601647440939382853745619374053146814134783490815275933903656021027048194885556750126061164274902478968623758627777130228798725126956008166928844584499525059375699183817220926842810611727774024310143755559322113716862419371731592526968084880932310117369224418152809472173481288456192213176874258998849616937361970860402246855742806844320333997708177411015864384379433994551010734733727698852682546928162799798048211211064347810426581335428086952286830279141944353601110088891362764850419441822325774542037093228015156113865536956667166665674863798237217429587802869626786860099734164877964595653784660421997582468613303672695269886107991211911911946034077676410329121409485012640388922003384705683497536663393689362026609349849786637622812402963149799737488876788870374219587927306802840154014332431957901026795442241866548267379828328566937294519544335152518539045348981275106528185765488189987484782035830602140927758701154128300768366287761156541469152105363880854399858845581465414438302213035216469790273022963025222447892313687305052497381370874103259995743526075996342085796232625816636165789992040232384445760934527916297080118907900953128247211491345366556387268437219058125277295571019006162870242499989896842798745600481070090882187517069462498600686001123823993719115617681274811171732972083137145423213711385111604735116501744258277328241709288527089325243548778870087614253484190870898483003915848587492185884723657819941580824220372836551528885397872228925586923682227882140287165285886712414818418988930474044840966936252704700744245212033081531107376043813405002258529237631183303332647872862306846381110198823932989252674823277087407633924374691854183368043202279796410215526521126155035165721818040594500632084852177931291124375146573258140967557281259141527716724940657045697068004100534456518074805555503106925402569221462090759463625673452733202324883273185202185421147138292907076221717268111822059818276284189528824178432861563781595876904396413742209141962277091592588308518108860007391198668219455953449405062870968612558836077188135488689579199754460017205501061826548332800217378374903814757230992743238689433728343537473084413697423724594014015545676249415076333991477683989714780027898249192458697474292975621400542398474365556713497843569914946097179031176426896802265305667220128262196719392586202726118720884504940703367523094710286272769384144454218253160066925710149368254544851595471652612721296575476353476933350998153412902138566539289396052777922295094108726590407764237380792642242294811077843164830641428827405717043460998155798084236064058540059040118655049833728402544625457539349822952903722511780583918745005335454209396358004377407659095302225839873208654998219189823753272922230578761311235617845031995983387973619670531738862944250274553485686388389324801977120844553151237361468273967765073020087991363399380569879048098858405697905354779247301458563482054537128889377828457901358155277986975468929919692229866471214152096028653506960837706035219832110050522420670383550634185371637566655803334043636243229132142002468876916342048294717889810829209972558885956918771218352700805229156050726679169772556143899121244243289595411221779055031003119329758399347611080964105772629970216037284446177848612139189524528216292033821312265279685973960991449361459980124345576246850510621662114510541748875657976317005006529626121847750896708798066262709810558116082823590723297710009735166860463802007581312753623080832803471667682830119934808682365062741501573203603709453825142376282558418388307339718085595555708168349604252584159755125156002449118661533957292154580500196177301001519466408113670573479798356645429657490544546238905487999697010998180422665773930700513439044008745048843509571926699139926549875109753012272819100097618631179612116380638385961445863161070026969265749666551797873617105888236916372034431567306187506994708796074790468443190031433546250457304097723360975072064490932363142109991965836081391602538810046604269024250027134606102265949073192452629178256787932271729832944795016352341242143806771021459775307882466590264634040265323098464527003882161412569967819071746133795067520970741466884335086269453028634200858745336384441431315067252605822917727041819025729374504345800961045772620970762009459105977887825607711103716102576582409844827231474958607650495211361868170434177384015751706316438470712512053219311116843283257773000147845417240891366748057588276753720215663599583478713539648083538347197176060376388240352357355990611624541154194602686887174560565663060446852839483178853509282340911582119363496998537529830408717153757336195860977041624401764221002749167689815739832712897588849156273554597455460624194605596796129708070622185134850242700103644714829978035079470273274513923057126738987966854724537499034134057919574039179311313299294878643465345802885633968435793977868334906382898631245614664771991129267527787333684758175988895327025733663114574329251732603164601598033212203265603724292546727602791697235449462541014373678543823577447028415381813813099714600070642497405312720591480173324247739831663320827974223585276273877207970480372931783545302285386145862493182632444902869926563651527291344388026563025041246029858174880089122662358583265961007946313392859865675283034062251345480620891504600188339449651439015512193793639452605118541803439134528573490304691319901644041473457456346351226780592040948871077781673504712956226155279691086626890750527570879537209767980984262978962521856998423341024166482383779147022039246060606361065878127370723946742158042200023184831849099930312086636175686166705140575957975786446421250723162122755686623851296969229972380286048442804641881602442381876742609246856951932022194541967941309892404331353635102880233635765247771808860428871872980848109490978260864290787825027078689505351349013333731089078475733553637944117086820310513200642761277549921930133504801849954697148541928193588067076151364646099804958801939110769814628145651574668017267882820245466792035343027015972042254591709878669469964580321245483449821305065878288319655383812825464302914706487404619200707572831692862424706791291468085932005702340893087089195186766292998556320721792087795907113279322520834981922954089289668841021867828598908916563293028433839199101492264549574004550061746565492957134790723902709787842356405685716918180444252501047742260912692263334369438862801126864641389978124952856612546787701657166577827657271227223856815633819967212076743432668406414550311521407593110073424670666977754612383563435339342547544923954762624798788744859656998016535672819854794406484478114080887839356143158923632787324122646655710576558244976477578015932050308362219942792141040099367125966513850337659879313038097370328417964079976401307918048455513160458529814824836966098509873337490708791575544118306233295800085210588932732277423559873405896156754329680169368468909545764251741547101990699188380709594772509602623814340411656147889356082601355676396487647694813427564852921161684915255662893189299579499073628057249751906675150287644646899330894910031502831948992430908724608516606242688192882011762390632028042302969527863521021892437173399738416265092943360933405956359993279300442250837444856536683848254422892273115652688337198843248084683215817947186008544382437077240656368448032402576400525574798838793723170017055051847511692643418216971313844533545299026268465872462224019330276016656427254318979371432074165808297243151160057003181058093025719253096189005984169037332561226551498153824735118242140191206394968237628939847086173219025360197141908476943374227480367493762452746205658160091641661460411015063506495808731464097381121852184047275740652328140015480090730681996940477426054445042328854398036488231353607336750758414014711594634186121520516215279954515244054784182069704338085465814968696636884439969332917707874765139114818834936815383219098638810275895337531392315451439527616557163741410667376766009182144587213721236261612887923019073005733223204444766575619273898154306668351881647963931035152101866684476752641515848034971222769198869634899677142583184830836677911964409555974748977443743666907020567618216641998973440403109544783733806587647250310663895812938574522062622307857053030216132153636495494233456774824015958167718399061913604076306131885923648555425635268272858966441706970351426568725711794225677874231228645748821774822389047532885547155569278081231216563159294508505026259083952278831159439718303949387647657381678032074142866412694866866477088784261459322476142253638809222099283557851234094863938046163125326412794658578901385153944516530662679392821789170505928222495115924586755757476246428611045955812431085813494435021734834237745599415242024636536259628070213597534137053540098324868247612696720503457778886969504582571205774043816536208287452800724608877622940967254911822203908711053715496377141515304145130758573266718496698578519860851086324312109411091161814943062920114783933779788708313186180780823574248715392094873221621815072563338812124199842070458277477071483937061968339427754976029943101226644049394643500088499958391695411206723481347123836352572559342758934828220512665080271886596718017120796571871710184095409120335747384880127792666006383869057379192044592851440304521850237673671338482187127116992098555245434311403927114284498318610145546369194161673445169951229107708146409066595255717408837243789452487540167169202182319555717816607958929191411870240182767436837101458428810078504129869355392038847455329391506848225362062439273540589155968050914591279796352317633794052305908134807058405491877965092157084837466578033257031836206006603617169846076275976509884564717963040055032620769679835016921216374388785268548441590545909770998077227876405570752177602378845942022880338884697217076898222111558428615910935767714552179309565336522245847033212628515033784297685344613791080091692733333322369906356645390561762970958396984290719651175249485811856402970342007105424377192408810730983717585552167564385357266758890859074718695251447465849706186821556821818563056664834368125404162943252149462999549135598277034485665208552765011921847620069044558709363330507202572474542846225135732984611535739823160761115953936647399942907995806872646608237335988957237512535276193394439174770929812941824633527855981651004031420286180000264041941196247512157508565435250103912310166691541361385692116610804181484256269620526072044768764165015222640884475819364874359060843049729177107892424041420098566875814753204562407432798052127264577303181917113572952451227557691480079651828527101900114989673605902476458910116737357775033051159558523850164259405377715228491917706955269929683355002979330919863404709313481979104137052876691206499871840285644445790924320390644077379599393685481875136304843216573168438329296155439371129947109537255269681568552053014189846241902811133045668109379256063279412226314069707375632840592709504175874365528464774378753260794745641369217553681965816254767357831501832307963469880904768163260146808532743477930767183540641173922859865276679790300310291167349699454512093099290853799889031368085936553529069822504584090847187838469594701768060977204792071459757424494367770299114426593239357492173472258297502686526831250679489262215743119697815430582910775394058026546645028683786144888250921793835207624659362612898660664066027821799690682049907069332518984817097601646233531330188885105437382775335546658271184796948557015772904784602167758642152627152662433451566795818599910840336655858513929248178809678564911385220730967415921883133165273198852130971363207071399607990551786370282380008796582003308481322504916902288357683313289690395345114692019298537018911911235067682801649109267960788623548961552245900715223935831047735613631233976375199625359645729612322879623091764526452910747905648135276592374683659818074790533530590755526732802732892179229743118479338695944847405833427607806366863604795123507225229958882096827054858093397293089707933773221838847309356601971590840037271064342399179535479805096206974591520617874284801429439082858815207393703681363532955569030495744171420465310066841537622724846004398322987280885287492761196193521497584601007826729962667895268813035898410435028411156252139737970206074139755236306991034148774254792415768753908314831698578078456736381900641234122653874051704093186665950545790128745856407838192820002643394878219359694891079957208723334005069249737760435903191909342786265281624822410954706673232726301708059810122464085002615792569751450598382526506086999688361941907902049026508845766744748782777982807189128416168067051394227359609248919922486079564701419333488458523920472011071729813599800896885658216109947164632828030386375227645943740266799936097494404288496309171523799095465995997482759293429622986782736850879626858582650786517765480551356954354246434125459846505302206469526696018140836541005845185518638917244827292090917304912438380245106241068653197035592456599898655542620637418042918412117131853191768939377817434522140673881377195165327557993620164979593289771686794510731574217118502126192101999173623706435950884938438489572342029658567989668501912855917581928203161993940254808510153022286770416221665047391044003055817080709618244655707530786610654860102059774550538649067494774220064016261261080172502553814208229546685919131795176271938940846343601461649718993271535663252377089091600261867668304126113913370072193885231797289003897793664150037322887833628831676966416426702191460888363416485885309904845060504150826843940292432552854101590361654815641159270707897123485184780620591666742561413591683102336222544106696125110749203275622136244523061854412251912552080340542733307745475353512822549251620452921305226365355345126053526336383490725476118286282252871479780017428673135738288149482887073883461721850880304938195620109537417645182582870604602418001823672909713428215985111898655905020624117466063711290081783818965133132276898401275048297703365904182623733112031944762433713304514527854375629504002035567381721874447036252102001922325203854429300644434588924821261031604137003578799792892885016637419574867750068162273250805460754974169333589363059437026477355117575206871264333961641631967285021077128844359668473540015785542272838606189101079911355657925584770255292714735422406973932956977518381579501864032676843445740250218895855982942844337117516156634604802594520487855666225888357449452668477083402831781683974093478319187340715240596428058618660839455739503158925749122409969713787082036168570766017469096769628134400000603424846260501264131031861765556744705054040723454330799635482787189808041423849793431868463805893466073282191785097752428845299022747333898487608382346531162425861291828791965975211583807584402587557650684832452982455385395377217552851249848284637211724228470817459481604784251229115252120808813331487602603081291077462203393648892278150134732610036548703860247109944305813069550139370303430078420936589260375156843569253393632489598309975936633740355166130679918758808936561825206349962380797842402545976373460942859070436690239108310827587290217652185332350315260035452857136643715290007292979298083979673585560002068551779820145609361746034498866945811447051129118269056543742177733306295680318237002737606056045408021922301360298903819143658176960046739811995742864168814587039891523971493619560419030171865371580676346834295609371026132796275408423619767280851296030650495652322264832809479322010222071972691792778745473169804764697876648657282117863058955266886669714993992189330098943371979210223974667430891397933297422963987891676912883702162276618497921594724803110586427505080812108446789664357602227170689890300673326597568108337650130534052092556504451071943805522777285752778620716828501176533915985556547704695478484226730754230582850038849865926045564445651951398658444061236280624149456735711564773626872346698421418401340287631121066021843315512387353410682754591567934956603109474920202733907087433572820722637240875499887307189228748020079851189620730945644863987479285661681896381755515413874898141841913910423068110544356753075806969546030700986545370431706534872886948846801855312914236402340681216063073572960237498027615330976456844062463664582195952254069058814923037897833904880388758398627961201960522960302420512532260618176047860882658935399422343823889744850309550623344605683608406832349152028258562840456090771084617801598476308727452215259153098414522587910224514969314280747069855231099950747873484078549728944690671881835270716092798514396965107369326889533649538012450007845088682430547058560164376098831969368329673911938208515869068519537450020789472959336550171668519450657157808616632155183313430705858435417567183836849176518482061609650719777010494438491715212379082405758796707191044308281000886780367954067764215849081408726250394518942618617370780541806269068879118891396533436864773519893993886552371210066989041308288505814669187582947585448622887440194469436330391495459404376793652305372076267132668735237328758024818785090831753353859698396221142279340196359696065377799957699857631909003852749388787320065455605172144420194724919189146704670486618051780281030182565868390424385698197240133093031571003726401426407555891979209576635650806460669550950448018812839802727537797844547731824799776072946389076800595661855413617431442468943848941131853921101460143380911800248220310085891595903188362222315919031645218597491705843322948502395897848554471441964817548150708486929023729229971794433518952164608415580272174163907172994266554912418606878742828746363136115548238420009988716001363443839225854521414548823158877113370544744134031312677297654354240526304761640496851791759911888433457911282586967921616806707176908106294080804990650896632192284554404378053520320226632459368099524060519972358686388436482476404756966587521052674713689353109951031235868817389836760625117365841996923380914367269889752547876990079328641169569136016446495204216024041899586418166635676752773374853871202492531158364476052083010839170267575717370017295078606991425097954136571320516558306933956936908007365912401541221442673135578394195228377963601288407278297568872875327462219506907235771607790596436142369043403575158872401290082606525745281248145480923676431838008756004572559204035675883731817536300002217308939519594968607357848483667000613758036558957944902998730338932278782360275942791273531301990420466979744622325543297989433829638982787071763525564546678628903272318702576151944501326574853479131701535533392991995703161289990504472878234674908606635773922157069365465763951145963105294051384324235174394232772704555752473383513017195923888885866131844910003886247957786377078403966357356178502776585539698809118864641871140735797803956664157638899978792324108656527987211999132245458592763294948171294796387127929648514636864691948631820299570653327694756805609107936103828080528284690457499708713259923634581123923626890394347361953181737052002816311586738966047271943513818936418424176696637216103837194621902560561840386314192829519416822603800404504238686584749815607536945895933827516996067651532572817890415209456991051539038172057497350867178107165285505593598462504284725407205530341097281874206163005057884325080009044832895987139221693713643491666806120439150951373165501343864202882676619465293208684398975619481796847748970956757507148892985086069424964886801324785051857743432393846420706061855730581526403252684793629767015206254352520951783376227062129820552819850535481068979453190754944033665545507460030460424377305876622503607907692227722667651946097083065599517510165926065069715638696789346750095935242091228463838010612953694046427264858108686588163157560526955203444093571416693950611096682553335458106822820386827229527655041647742240058267892521263395998661293853680261179683788761611025446432357382583609331389574167045722127164296995796329986565131225353126933713453227449913068487995403911819452134193894346400522605920405343012826373944075032070816194008255734978181771000827712667140870912260269576308918951256971996660550294639519321988422426924647763498241161289460513908847835476209290395899918763706832533451251771870157758850269118985394441131717151034824499352892225361756347505925979883319747110028684111238318430065678584686529871583805901888500013059406221846287066491684601390991885530045713014268369322631579431028829602166314058657337252827912927455861573779449839605382558118009826793424164122199414691203010075474777588825367867580134855855456227705173052701059408450405769561225418918215411728785872272833476366827035789521511637303022822437250396976566383308644703236026143675378732794321856575429271927106391519132185855583839377572659455940653304945334633275275996994268625224238421530216035972734465970471285991322128275749718397162741513266873643099278054201395403228279428822827962886013811304539054694538031543319046826448012754847031764999852511286590221999374022255772495839145124362963989776665300797712806838044023181787640745899103286141402265878422513654497220784827917297176139096539510199972557045555924577077776651713216873725134915518168653643308832175825393766361547885016179677492498325517603322341947735313876149782513226096515876133222850220101032313602289045437588439489115877406369709886454595849726802249221413887677165833361456793125622084577812850190984343067956436631788615187305476452918497854608107324626989946885677135696549899931580676867617614335624382718160484374318169239463598049473742046160554278380890154699706468736056686114588167973830122138018859445494198768776578513685575508782485819854630455485854755567560198524231987013527620163699711897265003865909178994626854503901701574043279486625336914133522469992334114917543573703654616024939239235402561432239392981301977488819232205659485188088393415175888640739008427622133787754799534335115505016210499688661822717854422786485598503109466836285765349827859272968276385230818291167274822327496187665488383517514456727809742230295151922205025414280633071141471227866195680209552942685442163209799250147835836166257492138096595832434250531305258071663797033280128402866511839854827825992930234835027462799932539081507430423549560399556746150998441712099175185924800442140037756315496939744336287192215100837300294808784194969799262981794075233576801772581996468378408096477475813998729833617057038353851754909774841902260167836094994109104409276554906904644750045160707171068092743612183395393431546836091137339318622342336085084805738503181873797833513687508101456364031777394182380013476393289960311749178334497328617786114708637143283021158255315082721969025728803814315959467363123220898549179599195480791388446939721957662307665005100480695338997333266989030345211020306632233216622874746422548417633004194046295854533148118807721884736507848051118869993558737961745755389661668742736747038144972763311425831349758430592830048812605266401814460745719024699377831081410317398657244224343285644100193368567547191612617958773161392438430506546608105808750971042740997173538170684535563730902599321496067823708227717091316480252649705531373454192584442089884932141836931856520852739180921477611081524523055798450063514745141026195693247127858427555719000372843873418487413619744347102816293363869996218604724842136724582061337383332488274538672422143601592817849705438938586522470105606135751369382619849223289356507783875580811611564194807832297601055031912827762571874879588908527089313796954789238097347537266184499894363630219639234603595720719910843672948997382998791545092102901887779078565974085912960006403401512286340461307991050475098943154877743785509034064755779047137692111144996604824171828798878278941650438732370486656517188558140873184879721797236026966490967591278853005861654693748674577959045923055796447916796869296167799897563347217180953748863227597357808548095811553963779204503266561733299787405042422385027308408356670213441184629915631550362768146834175870126820205504629705644920874075006377405639503505981586134149767514067621487560575651125385201422707949420738376306091673002570371246636287284835335947484375322056116091672627287996040303588820688451151479259995164324252902079354609811239364301554020446706371409514302374357244765594248029466471634911308213148332050684547662908988589773097935205996300942793394410307783792187076683103853830576936711458728298775493393486355121228106843990080059728937330976304709446559406320147748847440888721666604963820974731331160073696223018704440979713311372596981635139716999653455610424796339027928416010528158729085904955054855955656231575223031065185821870607957591352518576323145486863129972063873043116437598209600821683756539842079046548959528942870251113438497806017774402415957708478770085449566698585123854749764014441170004025974005351546687606154139364356207271497789171678609036060650136769921697751430364879841304470769533972806087118594406711005748466128904085192524323803367975999237369471557012361730230283886158738255479723420762102281292617873003005442765068956418064974613658477024991358151509906501075097463742962547818822520310011791704308370362475295894284289680847716447392679911382825996840832238037883706508284302656491150736548816590308730407695981156874577017008012418555119262799360659583208503248680358960207411607488882095944097457438436067818906662994920410021658352272677379791018045706558160867090556365507824492707237848458597882957109015392439541949555772785419795709364362827445473081937209222400752676447942546159803060277543480611920191007458604335370628192880408753712854283245193016541460251776875802091947865084105657903911817229201228282649472989926059467180377802498116505054528696526903046586574433706468511374249766353845288975251394071988520185827285351996176607229069520076740643520477061206276581815091842266683295043395311164598050293009315809206040509964690389614034956370685677601057771365304542253371145141127331731715802174695118940486891686559777043905697496731759482803151343579676848416909759048644903385378285332663045335910016552529708043865089227933836588081885727867223836498194843365793105175020100511109375342600373594271385137781149126525510962113161969233904942506182486688930059285254365955717691667897279556548584213450160338161674552317171757940867336341158760761212958068187328573781828567042435718416531102723602502887626626336910773943763335761078155657056621689656327359369649293650627182084250222180508773706458226783829420642043060111119469862772728053180505870588223849027750345354284486141621505419526222516093747217788362682391782008861253306981490108354219089848299354420960408764318564029426870272360913335898662263915305116248798272806890639761857277854664737308445298687380200300730851084947068579303607823676478050042424759479095808475967248764061695512350584874840655921755424976525435758593868980015578563620230935149109801820098088517453823624563875577691342795336454825536063337031496963114240708951659244263169300277580168942610475547963291937405688312282118165166370280023897512432949574591466379104825729977196056879276805701877829458447008371623138396552586704911046765114120297967102110942517112774178660513071559559194698750216286128509980899630233632442919962583264093134797929398536075460795803221079273991922812740713613157224529815102897890517951929603377919724860265923117173026918307529658186243246451738653650445707904017342046155435823181812377558502001213476331361323231207407128979733818400954375873202131441440677292451315196390676720626852825865152143347252238757084060902115080050879521229201843605814844671875388607227563202635323206552524393605688067133837767339715443927424106545237057357163959063439871915357538259997571438439433666980171039765194938316731631748066712806915708447851677973109872060557155287801035343250810739667865272256160825313950695534329023312362064820735611529906404932223081834979337393210549788983851706003911755842715161732573218897627758324670709975175940088956443623477369754877141830187646886591610562472163555456101151251341674561601225682834306716999782507117533826727516050857214707686779476233938237371573028026967145768263256228432341169054092209577745629052011449412172978258247332475607246567645831789158786754888838854186013993625373285846898756308295945903050208333486456973485549999526583770758171673281084603384323721731669492844096238200071145662579912041798752014146898867675967941848991482063128768038523340267321061462876407815013996933465255101189876189625274986605609551905978927516585728682598467640544495890344984666006529223829733839920154499762087839880134283603580474615903891459261878186212823566263235411093509725604144254984854256983366321283536791407268271139888974391348606019271305272867793382128172945268968644556268077077697162133903377237867888362118003065247711669590716118002759181999398594843137696735283560558669813918812213596662113879275515602557468574456481871014102608604477230688813466702756900162349908051644093457686036138893750979916561649728389081704860248553355057119442309544222258083448150955694419024668678868505684592232110397219877573174803919732348088544960831233722075944549573605035390519937610542880949959077967568052839033324091703226775996759182883955783358798334393012735261866383427204833692435388891182444107249191466805220968834596559165406806407655271870446498022536148714528629058280539023827239849492448690189830538032797777064573217019256701621286220652742294884042402888181662121337207148753318690847856686867750919168532934855230422123578939643244162168023168390253994885600911355508053915594716424145371773233418521823097683303556218131000416395864419723740788134912149126712775081346126558532285716074625566865690067717810702796027328567471134111984715758043216409977223466821929542844904558052450729106126470946617648205176557453210182592554426943860495063193595059789337179792993636636397858374362205995999305342923061174105363748848059755512245935944878238891279278010500853105456177714207909928459735908243916817227145915446332748287365962299757015705103990454448517188124606093123295393181573255066163018581218358240965964169465427650197595147452332567448241951683388038331828536576027460650518527963576118871840531574989973350162184243387879404406232050745578315198124569868729695661064541046021463903758056375683087065709114402764904414797747505080307212469929681037879084522308711886638510757036529483149332835479607030176686396815138265416665875275550513672196515061523310236394264453751081601177918420739269325532254146779684915739430414895336009873153583592348886856349121602612143013034147481410876655416203782641539086325749720999340571115702132950699388166621184858225034105161739193320341104542283010835601948315362823217122362550827358627585314885082860385653806000787685921340998944745405988775510111478694753821767717842025154725658871914571714272670335012017213240142280524123223970353764610973993616290744023958137694996337223660228160013275142708379532578645388630133007701567464594470204475404161849597086950643558073931242288553741109850904920532663965618044522575718921293136193205679131775497813939393832639072757053376315043995831709964722566603553720389188569173019708625187449461021690354670865564758944080977992210999150882231014040134220598340056323778251103595277804420410371205662350170706086130225865761555034691071691324014259925161181122086069291525896800455352724049568711536396880216306761052539663502476607321685320467871551245235703730657389822015770075092047966079467086795178071143229883426661891317817964491855996361011755661537988392085811322629137980245220340310174689143018744271060920405620354416390045532926562020855393757247403982041819502360759356968919242576710127380566573528349624533936827651791216588207933020344439926376015288264228296959520704032216739179372976699332900333458779847396065756794106995486767622154878765353002667406881258636637071472207208172795756079530707664753331142112970258923028567237906871350881098533998191640497601553082821892359931369564736780087607678129941980709174429289948703714166401096309414682659099662438763371412855672715692697353831527107028231132843936125040608371888011993707398342917027168301419461174393781068344053509523358742080564354526412829662755452208022873516549579009567252446271459182409020267170025830821383240792544529450797238227883604956185528178647963979440957507470835017364459486446299034595538965743160471425935110837576105569672582636915045457086619878048926067019100455320106968037163030831963161286481028366844248014435982126752958140592655218420572228810560976299484346390136372207415426138557172272301788310570688682905942863596205440998170313359796155068949355358208678801388504140647263094128287009148932251191301548712799712316775967780722196436210973277919724907203313033942831908487257634402402569511026775048414424465856967652615892083680706871479194989812997398595854421459260785495808504335773914718909680939639489046604136379536149898382404733892296772779068722530945425643988875500154915705545352754377482130070175118360589259101846531486233975814178824044666373533609781635278383016870645897968679219819047887244562850933768820337340708418480546228234385817308667067727630148784938279468902674896028448220598134748732847668222605695455998411115650684811549417183727371085104593253210537394155872558164594423657403737765332693743508029797928131970638960490186524618942822869514211570801495142539694175006887598399091669195359290255237177152063665244948444040754641507902189074274660559216257004117338103201652479574760625763100879542261310481423074803440494947823304088287057991874105739924388490801981430939247730707368158312652525972817980231080729713095958444150202552781870640968461404250470118179352979570816409420841883512717406330486941957993715073808804980290559122963735868655121828755845709920112972499295963275096248910839588577919505584271156835767473484438579724172149953491729052614796220801438296346245749578367611875790264971037333081845247638775607406771652048264593237350958760757740015061367419045211972886976023616078217753821713691893161759033100126955544611528102993451584738706203477266254603997347990322174658680547699242319077409761268874518633211943001639163402915104099263394072938351839233658288746289361054345750239806735963698078570594711433268942314062166606163876790579868941243838469651852176693067293868476638095897593987522276293804056877287617493885887009687043064678528088149862031365407335630441998587174852469942389145448401327597739661807440774041097602583725191548178063141205174158892026529001610035645802643569753462495708891536531345235126976019123193720065365747540360198202071390939424915620314654822604582947265322518118450391077981285816076222774539615273472538635560285723604744128347962721702806882024526406509912837892533762401205883432666035270291947839272881494809265700097008781046239618925099703885656962675484380887894418659032457570893748490554192747458036659710574865872900977453244604921506286434760116505330933960372995519184515750613751613025683964476226145575233170309623550367388764451131039468766155591768564172225027571335917628381497078983282326968985382817924002066661849751958244840718921620615699793734258460181269909882497739625324891240283448091716837052018510604911639889336491692434361145205637569084526977311209207027137465734872761158759093185372512467919255720128162943906478221115141493552093779541326846453440760771467522954292646062272502321091859009032888578027687052542273127643119731674866426708325019493332324170745886454661434099035027174227904061120008112399030776944857811371898867402531507940424323974222744164358232384299618535141563593066944858231005911245831912615104611355651915035260896135648264183236670002119749192947558969948953201347302371317327423592939881209895676947376903177150909880783049175964827987493918771430577954005526320984367150354931755654545988580350098787523304393364180782598988749629791238466108975287603682712981042385782252791686452755793502692740136989984833196467266793366955669966743561954480803610419731133157548804483318474483453058016164874009748104336608790357511572538435277150291376277395534873544963187512518335200334898716715778911160376097129551273470381889763598620238481447149147941086323846931212557227705988844413499749495226833641515738590492284069407243371141530401835392895071644531479231602596032590415463506332286061036660856310237626380383324709262330825035552385820296841359095754423844626692912324424832422574515408624116933232865043308480140927085970939737100348247702308159735332831625256264589440414555112903777200586335241337973729895121811917246024910249242096366521718450831180366471322294503830083688070051356897264385286465501176193044230432707006550453868749007788900466448541359068672446083260378535487366250439024685429900343816923343015635425272844152310869085924579952768149850151226163427246260331075288161330727412433357187191040480930823667385557658196490086664531222465329382282136776005644022177595042910386787930453194282603460479986273547010747985012256832283040779945688790111863133798570604650371371181552236089257636806426740185805370953513724910191503356122388669980779769165764119356521834672101516279084267100698493335441148698324400733880243801795836747800182179638424197770814729049684588189570420872214893194493852111564949360823540133394220061923217634778729157478649518741512166258742384315311254781691217667215137275377632149103311180782521607841990330419827510974401467373452465438968935628309217075707075235329910804630135778303337517470217227330341239839753407038627428221114137118524306085198129083607803839488111636869325125596583040014281035225990331154804406899652924725806628167176846115511616072162516095636772369740679176687726953098035843955277021680516840272307659150727000661409987408660710657978039815824630812673439484370233283376508515114712330976280636657152456790182555198200657559300626504125565495557771220299089484957208462415910729595263587703812530072314403088704452062791590212678271876801843523413238988471723836323743034138658606026397167015884345313401370937229858601989607666657099863603917259348588494028708318547767902850920289202390130235643386071027493944180770910908480262106368460112011010343230393482071891075594948788192385650404131337466951878393291411793635682680382525640477501233563592810275309177022299106468098839090888142118574035792558542699042654451146396480656559635186974777948494095635791299035160238282428127045993288026586565242170725646735432391223779465161003340116446445537022952347603315022674731977618185324101971542008254216918921525895426788942460964882068535316179423493745154273743821847081651855092144052039195487902469678289083317050859571469235203424027066141204761784443030064621058601487821936214375994112673783483812997423986977949448477696026838556240931853849223073914340972052135403004220811257940901632015261541322708940753915407946755825898832099253689262725383207912307775110468099534859010972277449926054002713680932631223215756420670352495296997703400949563006063656210754439616176078063084287368978581345490179003906015402539935873598341763023354126093717081703745914230639487091634589815735035499877390015095532930674405168622948289312120631103601658165237304334403367751654208138001761471152693986054445919276016218102129803504195936779266668427846208993112948139225088954921602044334433575214205694199597954283156085767511943932714763480734111479185707326508211313212078754681908625156163280681202449310843796034714619470955587981238685561692897356402131910439750739598896167219074383369811493164940836938962766100120437770952451769460341755564952208375866876535825238933756539426162039919516872766051071410426641171519204031348130409783867245432838556678727001501453787112829460731070777436230485889560938789822783000895284871132977413426978652413009443886582344199952145470026023197347716139097285919769482462392629536272608706787155856393803969272905506882589277696242668933280507362051781147711419425373661361112007315830982521765751263628692628845106388903954632216405569569538764970571969959942929015277545320900070442238003598686816643861642335900803039735788777966742775519951364387942822848615784889583108693695782733940746727798515061337771651658052524492530031432991029314069307470920702102043328629409715568312172301569494786017271892720999152363256808036624039211701041193229675938910268871188972041009735260717652434279551432633227971292928060595124187712819996656293994091838594581023983714476666401573592175288784590765794408317017485068549759243471185593107454965695152715673703360520319452758329688348232880188766415798475592307335165091946783700205140238420967254425923156801836885850725189328939594482184768356082438697855615462981462698869129000890434135362618640278230003529403170375696559597600581646961785897857450945589849476794376222476342402042561188910590289768607369412105105640398765422665177984882491061254779102556865491593444959779341831448633491692525959832239686116408883951228270453988801877747597434489844651418678925281415767822652321118821503325567466221096495400465232624866627231122092572001600352455139769321379225100188612711612387616439806256391201501106939512653800875928929794325444794673999237054330478046181057938213935755211594411053077370534650092253671928231362830452103602900021569514617614073791312786640720768145968180989612671542747314918815101177965678788905669185201345195612476047065114840425643571353460194714407314742681978907748633987458510294926424859217562839335623445852874174901284009237424262240323541342550481040748704457586055034258589123267571123147107790115022015549758707155777577753424942096227506346348997524495275741118598923898098349956505623208176393719432176778847820702021678883530329576191792008599806762879628082650524886431841413182625644709455438091578320144959766253550070684552908476776871064643666222166836581916102511175137615747333587186344224435842028417275586312967885037313217415752631990273349404733485087054382390757781826563829132311928738647393226884499752943984067078181171908201491453458537526133538723859571608675583963596796917393866431566024855152753557864618395394692817263823944402788456832506684538767028100884723820987766050507796736529959142835827906406209867673630830706376601754829545939223338237433023070626836476603028479677555049726379140518690079455675268025749306735926533622684019697518067944545964529645107039802138148517566739415301657594060987698355571728318036442949437011435335307511588827751385664678171089629532218935953185661969270890971567749205507676490713802891652958908734989269760795232065624216494313368012422191068989522222976648639919586233234550091448697385115168325968466989662254790023680547238581316170097030879808944419738808976697651989631408417346511423778781826621942863055759076654717601814368936550541443739330809695447150440477476972492090961791875727006613760106018927013194082871321758249185612845995686461861043969201157887760223672849179500564980213972641713475179410495989588365045354472234492162290270181452284376658333239456193087928135763005289589572531571670602076255942368205057497637295493569505272931630847866348140187393125895752371760219381707739139613121237371402300511885133869077481280631828332634593697368387891674698055104442965521675273180757990014621225218802327477985143105763714437019905213809419139512593318411748043600875037765693521302091520839761587557781741771371021573395100185756777971368541024994691203535175540438960948406720607014199654717132263503016775449803092855167453729869484673304130806791009143596737115441909747137374579669987360642126664398001047431198310186998868082492895147340260399792187837038398769455754780901058447756258292076722761462174475699862311071702635291079554924841902745904053635368825022210079407221793516398434475959066362411246650091280732002450389279129767617679058319995638935327182697197872613669054873764211375960082302272288296844667601592809264651459292416338388878293486370253697104452185688466857845490752144656072928127446231680928520832333172547368598610071980404337521518999304042046887457251337267218341050217186327525481018844124667220050487449670334676921457777451668512910672935529909758431568292834474653993388815893312262752859645103085997842310071793798532222144382108845847436424572026057106109913062964658552501315231511230472199167500105243378330528795994328494932453140608634063544644028899402704715153046388263648975303064231548972433511982619650408492337275628527584506425623335441282002404055022677662202085821892138658976709985276245453156696439022250180184128213906885217456492909634126165316279750337817837991291241261899193926141576608085628544086527109482957625921442187913950014394897641536268399005242394020647831915379472920683801688088227694362831756064374990496921350903508733275244251635186818691408191094601285751893874267583196988428263184379907360876735325456217568748385887328631894849769214216965274641629337671690953353211716878086130210062349477096199319010766252767566904919502935261703890166307073233572360292467082081933969765751020738553553064157603533396394990597454003660198540861927327032433196272565094586158798169383042903348139419478154167481096695008420547289621923790695067030044533715197935705569210749089701093938940528479003129436736815485020928613389910706352606674355144882307078099916612811183521849719427073221138695404805148333284267006793279225101045025579790516617095938832715713734331793340293699246974091157163438919540163568045028062843149995490654178245961344906779540753007754697672693930816595465247933097414765465537230125416970422345695055718110648796890710457713421330447988809743173774550645223731016495820499469420154412949708787819970941405396835353733124358227889904236889248729809103459822894183470908730428450453165963454104028737116167497684091490307939918588626552223055472133576537311036802259624006615777384960144741119791815915779455173282401625581459160310093505993307739342858908674996914063339518681290533590458942595100341749317737312563179300079998798882672987288256247319874912878731249864509663001200709317047565726757403233899591874543421892195518634889582864671757034034967174533527313395851896223772242129174289288482285605338854238146904752211627788523156242086707163276086389990147985237125839985485692383799302949887617271278621153971143610030077302367952941444231457560124404537733870543796325684190674066895883172858369866834413072825414507847981337293404579704570069700320654574426498742739497700725307845625419210725906432207470551003188455987277936661591260615896918207671098988522542993389534442797090626716649992985166139371495215983473557871579647084193135198231031010200115615168414920015929340058499284373046717989681284080465780447872684671132620235434662953612069628542213124385623150935698004036894030463803690642636742446430391012460147263882332726732103684596094853967731291318714389448846599067851508534549212983695478596193042345241522647287930432391816303049430101375260318525689722524145706243293780954479640737860755538143559531298939328025613373603746565238088373649492721940492150676691942060748141437645182364236575158462176447556616323544721487928969588108515547006136611529620979570572704084158750107349286231944827943261890550525703015293618138770706025572916218499869330901562050129656783682429965857159196772152043232223288035833730439623606558523135651810549524995104287619062574924160964962992007229103483080237548271010002910094694041461758403263211348174888870716157286448033152573607904541313567464623183842276479011699592934494695974994626771360301558830239613779886104997490313274391204709348558732305138332347074123341033737376073711465596513768533529755702394265285452146978601929291151996510357400099392412685906756135666531868718697941178447811561627047938830030774465219432963898659410048636160615168125232573972961188252657075419109090512783378241034882335348417835831056411889755263545355163732055265648178972765452389365160802428473671224435943018944142344614688249033811112946928361250889358797771984686331237948583850805979781740228840244147132492432914661186292757880512383813845086404398567720805671851555855536093987935291091948105010434716478504672461157368078995738749291284220694182069099890504240371679121438545366034550608990347772912157995473686939707970700072493698302862360408227181107987996275097958179757079751875772463107718843401379168221010328863142613088120511870106166252883492145225222730308233612394577919484511140757010909885673667980371468190329339416415825838871535650561462240470890029364700451705733084017605118080560133367749913838665064401610078610913200655420596510936480792729184479655988413220925968252480696489718309432928481314366770502234408573119587065715567579505328475175138825715441186733712618646567659618156931622690293513334765033708796313016695943560055779812479884109361880414342450962695989621576295506525020455630581675391608176505890670017799310324979102102227617702289488793829937899834757325321983310362208358519540144683623350766892372243482965177650107458809399892689526572937696236568780882432309881848390954126995358726245570550037757443144551457223178238195499761870440065646716389183887468291192447482682329832973880459031055682628503773835956124312644778563142996517056016985507222994725002468206992226422781020543704798675391707968172970304122645923166285155927758603056409693442486072097154034861022418243811588997567454203659503060571035173496652333214535354256803659293993871229234046324941493844800988034778913206612021062115767097831860799116301673070098087741674184428006877752726233036121826904526667149018653822827511603243098051136365749310035602892787327729335171412525297046597455144009436323075402460622996936509851857648936994281840210714921000734548198091313150225372791290447571450512993759446391273717101373029841613642539392358684149684035067287653448340102462745579549410228171918314687759194689790725886515970904382643844145746120360649187768787546818637679791163969582323553993557034496198497388198020456081267061185560928876667081760102256864626450376341332615903492295250980387400001834213543328802975424385201285742211195999104276809135112521879731345127307014587928509142107054585572123276621113153839546993108798257282982912755728942115700992345278180295181433994953489092196212874045808392845410546336506679149515471111066518691958950296916597372133480391815753601083302459055035436388978429436151035212947379788047958553570569440983421894438772483894125222980953383353438082334012201942418102696640002824997609725253156822750319073127791171891345732515830776451041123677384923112654265499613081015338641851120423475696446321372213720078996350669403163759528825991452197791229825111196198287686297951202118570211155545472772026076341097581171269260644110215123309113185627523631703163421995668730918205807120972685871111650940686574243257863491815225075046165215091932096868714586230588269763056934186492091655609661095392303007348672633623888665715201108516400490856947358653000803995812916003090223192675587382578643321842025269756256665889363380358626607725531915431317788752962514605525614996073534795089761488947630573016394619261450406453469625426258128769587556258935979575338733362888384473123922899275279872136482964115327051714945237486484218264614468176705429154416519500383385059744789922179046355120713428621563467520081667619646539530750867531817546428709850367113663093906182554502503812595875315636333910177792482235306710747436336165847170374662876760814838848218368537900177000721215101354208489945429635799201049576160141720819620857925721999159296769580615838975169904415851398709029478581961293769251149991946495675726938119376339144289473608182120836044351262312909799436794150317623297659328632112826617869480173391970630521241956051501864487817696362925336708736338809774144649397112974221277430125260165317208110903302734225634781751233057685587339327792888951447994549512797329475300249972750281561113074503467708131520143788003957025760867075909363655563151181989132949373140659045924641783324197803255043471885708889462727437780747139584535799333261638426323567757480725102743215632256527058076755296102669745787563091933684330302836792245343222250717585889891101464778300305698100838653030575561533688315161326660751432565216654603474524982948230809192578629821492039185134382053867086334083366956096553712470872539056751678767772047393271606875893573011675717667813830250661361899776306287651254380513483001340714659165092218390244421170901293929138281298298192154733206541340258797859946621611074235701689137392679733456921747735684254443067831895901441458225582111899161139966828913585858881899244041310584012837514617423373769205062131310167472174522552024409570667186852149117615774638413227388759137137286308319935285595771977343887727073761065264782517343955020183102453069332342576825500773028437098018974576274911622008404634155276844069357095481194579310740629805247210639026047534898610553625390829865001297974161169419123579306182384153783467035713713503517071021319335684694264100866243466087101136253069493711892216944683926299995198434545445353638562014615499545358167454821462015758483998552241119987930360906467342661628547844321274042881696291915352868334038949033147158663996527660644165905213808695534429203468110185306799292103596450671265267086248599309943550182665763506387487893932389696221944817598243593648984861466875731780641113625125754345418215246246855066791965144499391268901095134684437670956217719562056389209767214412421607848058879428933875027198782850582473391013716248415654595543942874689814129057049694595095470964690284489591685606587721826174646525476959358165862714732414027011964790389108259132089380549733782431558165556011029540463996936113595659361214580467298434044201573524393002112468698833650744020198174545901808531923233303952870919437492939343891603337545488161797233565232426707378434212148137288382285767352202826418590786547061083180472297273786852871937407590157562326167745478049937842927956073533523900783810187775925341329439730710625929168159910312800322082901800895474464427620123394309563252224583512109864310249287945415235855227842166236621687824533771737339142608881697664300897337062862475437165778502997056096428777732250221136083328914080726147642157001858457566675762771047925421060431956670668644297298723755029149771419337263690211569767689346191468282814244902384251346005269444627002764422639884731393915291617349956304182604043795931919421248159770035709837502513166980641589446049454990582957556405380031500947489392864459037239084545408306724841745139199925861747820868263787139040254168539760110873725607242772034139945368439145934756276678846552073194107287467752949726004544504408530024003904269657569043110876077968906901820911607380046008880591971478213271363102512717870083106945151408192734598532374785978913665421382363143755000345067358913377048239654921051741206877818152488292422637504846178953596939468280249111852178344113467852052187325387436556346748931033808151497162496296420067398341842110884302419792157798651526972165661076725944188695704899728670556026212571777917006262369293769930211613429202118743108679242698147300834554491987998426481515435378890676152505116254030551755401366384486654442703908367833814144229182462099020959272483684629363224244555135720177191975654144999019767661373602737160079436854529713107367925152530708279642115721353044155144550571823673755281285257286374153995291978090474250796289448160039714439157668761764351011418939659383956439990365647654490267619066332820090151704731021196588861154049405564498240151602080778881358412679583553034075477582915478581781779670272180783612933754854632831248344744003951530409680809676455763270016291706218690503218392890110706978092261534055876441768630742930979306668181476305083234058720885691099600487538913187594461422358557214544353426021207982159917578162437947551672117504540413126294604923735245435875051555156065587688934443630354086394481216730654090580195213294801754486763893494896057302692743658053080015311337050442210453589734036758030649547501698436466400492495101223722087471983564240847741356379026348911359314798507372019101245932131222511284964518988241407878534840514963213779381675409638107740272500171762937723004469553591707765500478518119285659552141254130920411751756662059705761876911135124727014443219581962065759258686254748296479668407730083554402334299484829991106460326308874190216667850183363429946026641551855935553669862541546163109021643252607944480435870375851599191526934657058513564281312759652248750138191254721813055887175484870179123127022952140652458533778699896147829949746867044832542788881906734770334949745179578760603037495274923112772644310149393906997607340037439358023853981785974565450074932800553003841632129087833697069158168574635991088650928032275094345843685791404057968719214706395648052899105288219550492426455826555340266425582736072216753660046664362174915765393582055753860721334033525294794949119112748887213916434621973975370410314753345621124424593345206233429281456150896336845709266339732895514988866314137204855151336444066841680767868748398752856522139060349725152210477561575466342604810863317973491030666326468323366100636507825753859287044259623756967963576709035536445646251456509526817688279105158870878615454445195442444688117515314201770638121034131143523749941130729446247559168815901785808307258076750339850155256225544331790755793713548182614531308854952282699723268482210785171449487220696438995733598399237581197732097291136221222365549530064738126322060175664046073244441671870617722356385588269316322126310087839313556578773754065072245196766471604678031862393819006846830427662608604949754714693813548594537485821964425755468980679452504801734998078912305094200043594888782365246830419198257365752542741344053119989977163482715285734793918276781838208376145149190588146921556517510186456821217619749955904312176803910843099643953792656094451901737698135324850148083052430975490446376966432875059225318226985981092134890264246106358138269729990174987426170018103295029259893461002672076986137671019870935400387247298771295113084048966564329178905463024114203540675458713936627312416196099836005363329649258965214457247085988938797814604080596549628766370205365643323427312451116087048189527722282217311802181932960707026972415862509939517804126648645686105190088752281891586892030030735561237519532892155878188775943723850355138014262702647912117397710977415193905243312740693569367966351991870766511807919453940571531473494967292125086617509462956893178698342304069081720214608732281472930524016681313001378364472172007432079671776661583447157704373496460026292366917055266485067770604044234078892536816705158325024635574490140319037870454960468444403796508769760080787308929679291736020120832188637660265563464302627123204487500312494982658252730180039318354340457251111050803802922474151046065418668365077136306856056876176436226331507251957284975484787068804993775949706501423145257822323192843398805477872019694342415996648155324461504918226613633817688628322855285178624936556387686182131136134158366590355066298150601903543126310377845847053057594228688003418056899781005641315973466622825094864913318539989271874489793634380491898954415482873658468560521361648471266747314386791450796111778401813521794166668082002046520331798261443775978158936896086182374187556970994238808640273276437366129439818710078610814589199168244604278218115241731400933300390843784727897384581546436841557877679427430456603845295583287307950763224682974745054700840703722208259732365135096756531861489757390603103042779602755082001340216583810338486931455637475898272888439363727683857428938215675214693621004941010064139439068788864020697610702767157411785551811354663096532597062713253145920360938371611812970584113207583264429797706331685001924488165724952212709722829161907756931586818546669025520704947834434897382417749118549925812423537187676132562240258450398562778743176987517268650119956441128081854395983821210941607199700782857195703967644759167409952506439678353570440004052364528232098598724124551609107440406283195759995024367360508806478009456679843134919629299628087220769023213688547947263590614304387459683062072231064251478148890295086365357172295125639785389553121280432007524598800194746859844028252100857609347703098929456537299608929486647840105280176000557734664588386307515965020143471924298345308899409469549349546650574601978204580922358642005724902256631854008802096606720327676638860577004847708398574157466102792090675590684314541215887291550485067188871203126483034461204785497977864724287499325452797201127940706740475024523649263638281844530073603367135801657978762026814804130234134403100625292495829238401612884265543024317102692878771267588451409894466317128027525206715773723024493792868866925124498571213542070586120148214835461269373080847976954482335037840348190157636997201380234936894306236077710532635064233855626274705324652441334718554164519136473940623262111278699038267811491392342353798762815424938684359629778097057919577310606131544956118754968257444729237326292427922929259275182620901190888104384353718292187621212989992881174124266564060215108777673400460364905795667165380919775828696603321925880204174518861541610568604423232666798450546466788624352507324150867094918424909666188114952795001252027193955677174675567234760499416286428416977947863098003546454818838413949600116075070135270616665633481830598319810715736558307846520128664633870774798591292283786507317806242671686197526923827191484231714188295068042665211160256863876873662965012955147816699935749226041716141710180377479465696107476618422679120951675470263763312355323667050911635116453358739977790713528759788647415351138296609959964038632574447413973538543841827022513063066306131814797981295775724611339715000119816605929606644041062364107844705487448365642468158335299764058582928161275660559493196305000682914121137630686448798468956274211995090756780044632981820199966615713713237254829186348375720537663456755570815762271379132272316916157196105739770153189228663804553371527103552747346413592747777871192425402606314224854788099607636216948233831064789710597352254615489958540002384076704416413548218294048198133717259868662982661287510343152675441015187695484364981398482177856733637693872174219949477550478931995162258537422473546856034049751166317938876291832353138492426958854700684970558674505057787342224382551390651341610045689849414535164186356707015257552021408406852037949222390209087039726986136389412644673840836417131624808694562530037917111230132119734760407366812057283653899277227667871415921718485820896432996149439948872049574969871322364601323806288611977741775198116121985356853944301108969523865488661485850111112407351041702453925670701686168210863463174836054320183355005763760665348313057963626740967306502162878348134182311507858581514560224762032048222906336096404974934215441014844811515309311012608020174513169907411570209254615413576888616017240891919680422069002663276303336785183564770507929303573645595117196045464483851693441347244783664208570711041027428524282262449138779591255081273753118512294034257770758200203246570082134660777035231104037220947350611142260071169387620062481280483227784674460822664686802204874764449668897057548033217526071871169672834233009603537505337880373432484726919080228512281454509768787550892097255618614057297838732982317565498589189113454298516333422950792711074101419980612230694854427102772623378618759865392895616802113073717979798113789288529949718208296725152595358968512521849887658294225692096997620588601244576763460420056774968151348721994639982109418101715288931826780815312040303954969018408988126017273996878540946642456311323560264371271668361614568849169809476261140844963171821499663278620189667007008370400776412760767282757813715300459485868754573068909528197663747523311932191293075987936026626244873335362848671362481837858233900622245774236173254654397909467796140232685918676403125740011200558199876340586071551428613411502114822378360819141911785916385690381297748857025411193184967668360429917973757608186086098635220453484252092195790872047138486067131888011450084629244817300100374863330810647403911579384997838436050824240425941207074554373940806690511851356408684035298760141967139841925430130104389010033480194046473897392905440123821871975640957479652345661660227500177885651245575670626269160140915565048499974426535975241299165512751457512092701176822242895999033021457050268584101333298562298761555988079348001017803973897879280232607031448548402830345327300210853206073513203552403165915761780269250699422406192690931194501006672544595595513526719844492161968959587218023151822229347684322292695145498834633410597780805319917383418926766729517921966404244264292922477128918740489293895770158961965046218964780429029236253015501753906056204534650550628550081363893761721270351184351517169754481419626880142621856454009715629821235194884472296853770992488418268129092038045347771839068795892812005834271652091355494186918510136207071207966273281235096831867780086873636195610424895314579943041100448637338832616228765483466692210101654560791786186464495948672882847369313854718011397985019761323121910836036183810388268955939012664314714493907984144575714069728053989233343054900489625753529435356311559455337541690808944255280456473842410042856335666404557399931540515729661138471561399024791436500936686277618643504873008896036003160048795403113022634659232776732696347031604392828997169738552369269326504835211418977651753017571721593532144745834131745738993985346002246211046174143945245426036870197991260535710411338519933340583756605803931226411411922563953743069817143444567588666630466825901430903333598906020160179453446973941272712543919656813483405898894549940027717145436188206602268734535030670532366004029566299703103874111061677884847163929940552459026392705638022631828430300306700921296452358161839114059819564114260309241202619521001261075159717302567110554826687579737693392600014763913093080508416898878696400188080672804977350521071895676426926830549770076702751863706105474804083614945113597768618030268296606373769786026711053621753380973566980723719695945437896323426142400654154717946247098896530837892895700398022116386088750403350571650280990826443503066888630043882833364966487203502566256060528274349509157275435748998609398476208749970533056461003787175926721918947726699007540853692585487803908747044357419670696018596357867106199735379005390644570848199776028646977064416724567110400033900320793990862548100276901069211615827259371492530460242852531239407971822624538905611664955027510243805494915205389771603518213901192625572802772663876216923429047008238233615257225845999202339700346948263712098138037184883384991867699685174042405459898675879522631182686202081399062248709591545975236014047901206320576362265079186794884041279479273940330567599982412842624372270101464600805644643944821284945717445513033662022502067761765905327991609920141043972551005440755371272091739456369587115426734472239627287920976870786506456274655807427892582208913427419128648578549884858532452435056105661067915415861541275796129721560410665592432242700078056776714354498202267987018162597352100901281458019988738307923096362119402006199026900336811380183480367082159046765170515124364784344868325022466434479091930914991747272044313410610842430482379960999367134576013036571273623023090280289795591906597114287700139328629073670447958517462088976357590620240948687842117964292284603771024772009188668359548924316707494999530121181016639401806177810070883869879977065281838664991722929616484827488407175686021398133187128512379420032337643370450628938204162330698546317896501725789759889482871944808906081278642832878236428568500469574276781151700805107996469611549212386273712090722093661203363291613069203325736970378226829672386029025222990170352307051768906000439046501210433944439786023883389529124163566262378872361594100168441990629521896299352835497574473449394331255009565043170198380903826696665358577892584320731871602143267586503341568145317015682661051722549133583588076925848225935692689675308766549658052452985120673562881652141741215822304749235574256550958704854628277473844016156008511694778272111308209519139158374880675976897323028421556649190680155825386749139256489327301392611009579353648541681341667260484812910582560104784512503057368826080709067720492303661195400388469543398538477596097021646355721117305091405585101193044397042362929463043633488968560073409677383492839535690201778012510576508329778182879352600468453589490542908176230933055389601760000913129204452192938977950487673481414685473077208187303003340497517050520605326767908444727248181312389598196330471940418102151771923314674252000641342328090964129181704050455927975603899817802784631656657861753185878053111125508357684880807867167485310043986441117058437954937113938485920622408308337313988204151859381451592181528745168427813985217115318852133869015681435420185329218049544623093324001825933398610983007233966614759029043368388320961841927616501000932588925917817860136847701435932500558373336882502003291363951964947275543512878367417603044289585231780994101794261518666469564430843917044364509391121153400214885879223037182561348667340206532607624537683303834097999830693886896002902955131089469361461571938006459878708971715540750500464827889424050433117298101774951795493533866283207863325254861390655840729009504232156665858934236247183977358030462258360500689721921049472335177504998473052300490381483554256633321077115120987479512963455933620770336244921402230046277107886143586831147291988167062566637565457105118361823309326129377422105922473575564128986914347541674835316781230139328206384277644045826905067473538552803897108329482074083856768473602421993822523359923296662576795981181959648842660731655424185687046869150356332743103417317559995896898785326506950398794134511299972476245369060767603560211807771093188184810242221790052404669016644859083438576864282911701678575321273515563404968956947093290102155467888573561329973705904925979568856296683119420195344291162112207998351780298815443544507684821304627996273340760635918086027539799915090790445005820211833022151077716037595193163897856329677912855122380928292420891080588421609528183019659421161676342246882055702700845588721505238486409694208401957598891166715229928981405330466484490363609190965726868233869160374461403049126815038934121466500149036085975597828228064481673039779123240437065594742346096952740247490281016660203606408320921586378347814012113187350626973070771552250024945418210212404429965230312733707500557735240257319026421248235932119140926633739792401503938782439391555737490181673052489401458258539282674570151427710553054687814920026428293741128677780147842659581611182157373695796424628729702533688850539201810657192624071462314620546674728370735774931923611502335323716715343125296882677114972945078116938716010814816132381331699774494969880157726310657927801423383148431051259040365081247284659837802787664244927619873790841003940809177603123438569727476582511247570513698187173170358153000035246689855189404265471130274660653985248452022355753665415885877977034997788682795785803471620357710250444200049032683610166630437234886979927775055279400943618812842163877456471916312673195051746482713632241799811102416753684893511136752047867414759727404439841714970030218693794085999378813585878306876482865159316180613260473922817903954331629412016988112686350926397072520176913639569800779406946300519136022829794648409876109358715503795801363536867682149130894743833957656001930022352991310746270052821634205143346684618137574518355542658402408753657113652907247722356990983822457079300810793446643672980381912651327758966101893575025513333066303711869928575906200141851751591310634753233790072577670584369642866841850300494890955451890848800885299754804034983441778144876065140718521124602356518520227850880028167081888914911972638802521822168698882961974758013144470604285488043224075638325272200491316830226042994541785674359552447826904504946220750776581901848002700935792712486944405197013264426860634613297089018831303174362421196592347571792819210519685564798919961205661549057959883513250398692232503753080394836683605907069020698956031581941112742777360817193461317227732858992049473775674596583535969327174574955848833031487647681996926256356553215056809660689659337599152743187283488346774714016881337035585814545920385532327462762238320974654281722178430134360909787967344341720878687676160479184382343487060332335343900495154034998407869474978654008643760194406394399344058902235881970252145531825753916010770968835224897629787874317456646679798568630567786742772313920617952298120820960629372822847343862204732080041219548911251058925485602217203179218610090130058220438302598295250874252213108544760302383001510504514647005611715099781353816426035446415029625534572684969156319217897090573724464548718813320063185685367492584085517757157772105043647319936458180671800250835507210004802680534810646568837528515920815239337672432389178101886162202240212072066141219345072264087597357498841407585644029351467728687739789627322115940619514733192039547654444782131488459730429501563052132701512337051052974579654976060759535334453468875811118390006120206360709811336635111652469584325513120140569609963850393764551905595634721011072429717097618997479083721230802237445506109893799309193799140161975022660411210923444817302432656676200573561574179459938066454851243900099602614097133548461592422192674096984757471884724690215675961615596785436295147129634854070535810520235967845756402435507637626563740468609713579027140604591118628257853498728851932825047816870810544217327697496239832400339684223263170125010641146432979416377736889402648517265905426064925157865206367752174025710471959840114229244580926018742627457100266746397832117055841946016459922090824372714875762564975664151399773233819964726157723104361464243571966927412037085479266239453594895201795671350095946912897378982797812949504515800170225842361109844406897529356096592759320429303785059714057714401048486968508652021962896665111718942695322229394089727188218100282634589714245070692517335121812607641527947110946706723710241950869110622688917380665745372463389301148315682304009628491450464782129122296306077720453051385882705832915991905357423917652318720329063126647397368039482516439709631339050375574379560322933585912462036592354594199687442015579856422653850521012632627682544727476167171472195089526017046688044521334773354237852782328553187495952792731461187752747742594703531181422483161475097047006642984606180235020858932500985444535814331339281978082075830077624973693915036480265095187296075776584860432062881239314379943322478503544399355913693792006080307759043783664553927462731473014838755776375603285747108895413051151597865989732243279431047063126462171086935702864759179038046486977459383879786319088791994090470610552230115434001304262935715765987200840947377059719193346894925664623991489558408150297691398342633399566162375183237122437151678187135834898275278885649900719232940580298127210524082113149138243986988402187407043684644860797044652277710340256079678640320923577205065517646499616858176513196041861284377245751436823196484093647142090343156185563556240604727555045308825622684291106148629146665520472922493222121035227439469391051341589137631881472652955552301271004909431387514047218449051233652161306034438960571136619232069733650381936380564230933191674676707844008052604381515415987340417836358464481439029367250608855234006670000155272735327055396368906131405842721136798612069595656677923944115400255575923226879829152162015372410882365448826050402828408966764459177562235751523518067175106634381311165603297540782796346260181094589400129077116683971876645226230023964423854326781981142712113572932179306001799507221446709530507598199947461980471104228207428033839877646605659464522066877138869583348502559229690161883957180728718222933737598651763682309537019674624478537827854432457162016155873600044154123995401800814262452105984456930102333816156511190124570701155382121361209502401392670323658705297938284705449356945105722992239920499002895055660824330598360944628907224523881222378678980549619387357741281640443939863451573528369332208480325225992280781813492760654496467703552950219455932705865613912788046870348931348218614838783753292597295530105662212042671067810228729374940636404096369764584307170591842345130753820777326217379431201846282818812746548138528687895520088181310226637130980294811855874330819856565629542972683744791686154086126371153692627824523606309913203710093493456683630261965771635055671439793425009397356413069394587009194703837153113583933750799363940276315485877987868700390669933078724797107229116710751996504687949373473543437995424260042128151631340550266840307954231272163861786905283110555492301184540165716845716204572147977841019901781124043887229518232915690885816416525881486355496814866522337496843416841475349050620793191991291874298681140169149617927834572243604004884855372910228978217905746386282586331102214534347580303539255710570289970261173300966009012991897980017272724226280311338703428313257120349402561461912257632516241344247764749000945760391352171491755511531962504213633066088019149629503456485678970985286746905076421261206645523704080527909133108018845885638012472697488038420856627216140419878568284035132043499308118185386533748740702836461342904429430668556390361758090247460205114211692368314229553460997185835766554823226447158968408450405022541929681362042105429676489657909033425283536237994800189391205115182107563427322584018277466405775894508599358713371601477143396679519020242061738897295334850023637334894890967851504952991047084532102921505001725458118747640391302619572003728744680326754152316902595975998081973209476629353168919306734847612459843182527835028871776730299977736649434968619248823386565489397717162649183001345377067160525855375255112974259418555741754723013535240221360865706379637559427707051909511684189504788687155724222719911969474144117323251712164243485739224351040079082294275750994370776002365061198759649235195979140118647188742561169502581130024142159814657311290444497595303922229223482342417785326728323379037427124598369387967186619197593255876415835752792343953208886379020760131632699305917711753153206438882636081784837697572340166203292204266671503302579994325349570942960434973676303984622743554066736643266994995546471240861837464941023280839421206144072413443223956679950946302708754331658133790468412434796069005359562752704557439216992737667934400842516926723962955574304244031422565112363255948115804355005621469275824293289199345148779593076849971941969772682986208819778234248714893974939038993893851853805966123582630851283304048631490793915218506105738028615107017330874166307039624011008188172992637874834755345005506533682330546726754872808988247152584577714100613974945847675606505842396757614180241865509708573367652331474816646486941362680177125049096925417469910341322614179588816743953229751695111710023954507734956731762359364338502494167870308721064115884115535325043922973741200024351141284374418710119140820911287112574495035922232491050662946886710468594956829271496961761545474659747226384174177095000146219801231432765693964909055222394440365131738366537894582317971620599229625681958718664227289320656567689383331908279964048010707174739479409862720338415001149856591452185073624166743957328834107601294811419756162184879045071461463231667536753928995679992795914550211455038689913170282791278145090507974109178959496184463579634507607853390565507631495467664939977087207543157975262422414829624627885942920224699222411757009443141397525912527643104606794132527257703274482999409864990663510844058776971995914050917356232460244060972723773093708017931694421778187208442249253676856218312345431605584143016710050641549669360299957431505695582893319002296450402484469250639923652040992751055356504739037555636658722092909813311864796205165729288600761981680237053118825371525233753904164138195922693612907046585155367677576375285434577302953060071579788499872672554429483664445411283771917508417259297948359849901811113295041072235895433447092561539766520353697906496375622444176950256644861361639756832856594739615086151530256849113679792176664265429031509172844409818322549293562963907903589132763775566470799948083112010567103615837875379154406507204918625676566744693710600598214049021971395034647153340140638758982840020403979888394321597549288733367062307944709501128628149431189247322697946999367670525973032026249191516030373564512775880526050318397853743779264269286298834171643329130377831927461653110847409891136255967964968773528610732704618413910458279500213775053724063408113981874656769362523479378158666340496899593315332045814745401382455671287631663594612422358722517869158047971041354332165715433027542132620397719640334293390869169444228103027192592949508778907519685831245455046074566149821144350348899456335735754264306449407718605563150796961967458527079548051070415561436460745022746384673510568903897677424334037938224894162339996634446986517360346152018719337637344739107511312355209373150861605643792366619339379273402619595663217240652759544946134272704350034322262912831364027808707835364266091847562239092907761776386860159228381220299941839293984857949410461015714512147585637214715480780274993815012237052956065510419912069980403062615592518633001321653605923877892518972188917067936070946605358619046452173991343246793607348794705539602982797533078184781020437431889399978708145934566480586512329813673330390629971214791904578384813618771348637359624057204451165981187068494464177021748240303624049897178833331051794925073920254165388770952043831587641869219822394834898556138938888935027113490029337222313702498863742664383000478720930969495694896429805253126706292107335615571759642740975835605534723488676946905317127404987789333786236367418421301268994468296511750969394733037263776034300980068776723683175839499186398221312302249573978838622217267792336017005891974179127209238422303900318123872599525060478055087650097429493950926715623999553459411264870711214600798388361520212000044350588196879066492591018221243656635325442343811287040692186625890879751625452941545888954649978240205223144512353732077389430869960488716819338658940621024434134435329408358463909680657254513616333497452559761618479990789494414153084521326113273949908939868933654005978385948746714046372245639553300006834272636173886893332222359624250511077219650870173006569677685732411630928220217061545508899868555596531025984990296430664855204307244390151627141885932192283559202104253771907870498917291976127609704951295973386598310053770899302985118716997448562572427863919299731737698287957489224619875464051664310724955982598813444119643394939129596669224245229078895420271698003542574529760949535425391679869568182535214128617467249535304620362623636299345784931558088301329115012312486220203835076386686176350959812189825794643051454752729843777444820816593067404074641519775240675517102584056289298243303740410613292742692738405240239099015000919651154507415810277277638060799854034483860774762241242783807259834086641304152321073596847991206502354099552332766021364873525900198240482384075989319043353210558343529980788396745079001548196130565295174700043897089595546774292231230678084773046767907485897522591171910067543097726633484743591645693632422330347235482285284764319998391614968598290418784479657784823510243617264810090420036457254772527921151585383363877976448324456538582856148574490571936429523914888887575133339276906276960417000001880067704578424248214560582053786754665641005487612158286608237508905522652092910816529756052892085931019699751728513004123661949665148249367277590381980145741443676814138682289361405319225335876699009296681275468421085268867988186729915846333170098313697705317634704667423518702519436480890701283187156075039306110234767438889656775238043754867970890501527390822252618266951995861387275966038057439419297425111285167514621606305605846825585978047654830375769770038725760145570819223616891770962142010734439580432306093966278301708194930266485111439840873674986499300935176210974250176200853391522847637681906590139468862944662581077660095666170931303488968859760635529120400110908173758156967201032045351399708104420487576607370478495311354438048214149681130331000111844192677931367854970663732930109959479304614733843632993140990756526377363317913873931181522190998997723147002048727306528597503343619932828659829700082409290923762413109083357736080212699479782910452672954755145217169052396760045480496473859029988079974406749254061121358460452560113608642444857921349282577914993431300699764427058980850478787128591752588502140608423144744133296160317851591377216289478952798452345886032914862940943414507487210246696262317286157290488843013483129319204543105141246256080020846235677767554500453653872730185107437754302512657135422491938138577684511625804009821945705007904511553645408848961133815475076620187213477565142903948603426943800268853276678257950735877230314492991795833786553976214582968192556619993576999458560083208039821149172292669556510261869489433045704281686971113296787757304781879197065474116204690515009056912057117614852278440886010937201556468908755437579760659812981757626670341889687514276735993523426316258786153798307320880485534917998543653884875210142094777250344876675596503317052333276464971330106708610220605916649204686996811421370067459531071048283818745496842120310033620053272650037498424813745739358936480046677429504850175108590449399595490267217925378307294341832211837836443550703236429542412585388212007132983278968174788052208007297999108183420484447996420777691740235982194216071535804529861668602926687279308285420673575539505234159995731370200145608417808852727104386573909017557242435279793727878872483854923196670631893483612970225571523436321266562300086184890495306286599651731525724420406269161719401001275142622079163939414759390905946865692106384301411839622735724239911850371667319066666198232243305020033067998742854535481364970009374277945915157200114089623244844795703932331273054193377697207724614859209093544133019753666521177062856793191427053657503419787159317816922555687892092485179089887975825256146654731271350330629172626257178766063063644528262062173473173350002445999981745247364569254216778721475811382226765559116113151118787473603507775637914601070407694536704947706407796341623551309472337876003625071982370652697664401066955535279769130908608959716875050140818478529615512398141006218984888748378657698102669508789455391046134999034029259100500951825340890375581170461645948040519745893716003004921635164352450231485022409776891876047893591129946663498787447398238549776096829164060711688329762384470693019955941968592054979977753611104470262008307790157774515200256615908767889634813427705697563673726721790753689942742854073555824364493453964696133251187742122637828268495135334566567198558735290784149987622771613301798851312406032507418483156342816540897201591566920666475220655239986248422327623009082692084501208075681223104639192794074300131461546097559645930082339205725643277326820205697371647129834302430894414727723613839691033690581991825529882867252541060117596741508354870538769067124915064956822185875925635131389671364349185830234994481694166207555772692847774025550569415779912075893000301815861858333118728251419144416315678248479736448935492718164230710963090958587145485283630993173722296375982314146398605208990420797255346819003129176046146277308754962328778123164728683897435906877706283030405230201786996497326685189645407778737989633395252700663564139278375879099242319319575028688002218312950210307577922892816348706505602282874200589077253451724922057310349776767372446056858688083091676498631856458338333441613517840159746162748424521666313426795200745914092487684195731209028985887234546628641138376152194255085372006450760265844090221856746421263793539582513375814165419355456010362068698321291396536824511034029316066335895716900538789159270177777016545280002499918268292143336693379564422197800615656902607780542947790807180344702333698600249263686594589660387060688853678862981190872287306460982254332120779675932510971278621851035923838228703903916569005291801137967913681062382123367437362508756748105351222011735525336846965387227589349892624644188955011327348206760068957650514870782885399635831530535628220502596285439733698869617793209657693322448311747249376632941706433500748868902857359808071752907235783140670862851984398665717937095429604550947820478269947139831734448780527273181056358034560117696645595679846525441881560157594322530333186238913237906269886105852727547866736137415317332425164959540970434715931767827858243935667255654417502853605297231901611136127610731733618573156330558893237407705810285761013349844743550667848331862602297773878822121174303283546682218583860584953435264391189308648401893658584613973828573543760421326091731753725211996168983015484875850652590119416850996504245430968219926014156162959060580150028450767569360181438682120302616115909658697962210882302377020647746750096816333276560055569627714733325932763338444609946335937707296868352220436389647833723032147369645385589942424534332459164227627769049752510134586848830433568333626011439119290781843091101730195375245845053730828700970730340556396578760851751040822757942747749883626448174179077765454364099043232255583870657571410081028373826928372156959180861435290533017810418978341580814256031607277059954129896548279019677226541790653173471004597259337376048295240521996354001535243306563947648395561307412947314204298102692642224320543197052359132243198155953120667766898021922471400036280555323107638110429818934522412015929736989350640218102884183032097663905421891602136170757744669791786826503576385750289288029089746802133835907938591284717588818693498912355822828258730355912968358221911616409178557606597726649514353276053075550106430456631120836014072147503289067478092516319305871721919631030005623320016356861398892669659993964283382897580863077321376421913722073646029891292629099240963326990738953873435082128215911689180512928924329186519446535709449530283562421846213764674928614573835035198806033890975249691385913733096185564244855713064469134430910958047452628401937674927634071903581289152364116963095695571558562458790794376145486364902039864088686839082416059800149889994507157247244588517177518632255112651537737172437662613327734116635382528415231584269175352387545137302529422357022329734625211649061152342111070908278863123743002099555250536709681727090891580645954624320048521317780522758684785462271989385889008452940209302789981861764643642043038923158115167438217000980161832047348155469884681351205931435650709622932631469119654790894349434592968776827582632151362611907164009919558889365929867415701109376360550214852286261155909132404179958332650169568691868932697873535558856690945999130010875851623775993740122638667825503292559391595037210958007589127935903948423583724025614882855706383443821023305873636456550294151549129725568515105030897267308012436718011377369602619103949589541131571232747944283626699268671664806669079838776098059481726775811656177973920260775058245663729280051811034677511935983471139792691750422803238970077483398217983432449443626756217112770261785565297174433500173237032180505162198371533186537435978838688152044247893449955955537893365867757949797130949114536227609635612814371459508851508084878876190974996434807758616449680606054555736078514884863829432995254947450734398267333847056257013326239761214494318290842272070390505559923419873044682295683986002008653151843035665166650912134479419752913117328191906001157538860932473804051381884082278154875922827765830057618131624974764739233810530129543228686690524207516624936502745548801965323710928648310093916196728715270500266337359003466654316072627297282201101157097806769755502106508838959417458006720201650452676908649923271348179540064847883926703736790203708590320514937566430618181870285653542163112314106886590288327309149196219951181728150999066526002244731329289762474596967857146283728805411952061872465793029048298398044486534632052608996148758336932435489610559970883046343355015149711556588718933388823303829316074791088610734465596901434609087823488974072817162263814507910769228247795899605854788439666290681821157940495644332929602180090239820484245542528967529615889249850354772942191919461302053428861815679334187014305153695334525886876188720582181768201242579086643210687716172154623153275856759112219992777163851610951626322840315264979600134883648558242575217874119176438456500910150482642450716823750854740634210342008715567970816356700246767577912304993805318891263200239572089732857240567299554221759337294227688064514897806246716234855075128883230885684315551959536244264499218593953255436259854316582247147727056229791935278429538107053711538644874597849183198566669864116870802641598259995490401121742165709942376102303147507921178944658512418044523097816621141456203627486356489821927473852393541367421545088866890734883224509324052121228663038623291698368109586265920819046052798948687601715577742346820194311422421950820777426479078934248394165393596777423545293238501893452137666695677928446614856218756012349561768773472899642712121189073242813595223793459929144885182047958642461742754864383130815364088299017734660668996050722342223682948975422405202148803945500449003343855636385132480248737082662172177190946258878478968728537115475447756697639017064207364553761678960723714628172434000426461293865310385824290344313714939863209498745247763114779967995394935046605602300793695406538508387077791231153448262058724415207995631987172047321374369028684319295962060428629960362378439184841538554851664864522188295928039400452215328950075079444423019416490005680738596286920465489893208315639123737432074998718544080623691183048410001300004431780880341347694551525854435158349639236109256457120313972423666484793961304108685012752722001016838668339403059807471373932992953889123332271115691748397313257472227665268182084275241532839600752278069035624000424113620510241207786567613817892442639120139550639959772459343304751310961074244118541849057931024632188880152421527973641692976637252633702258531641545136798463933759224535628752212007766913030947869165152549173777061083292048127578169026253481814367981260386959028004846551845887585462580714435523948103864883579871435930885632815406051621144873689732764942456073249230334836933170576359056550908133993209551682678698572250111775494356634749981857786451893760874072913759931046397573025977400496646836055199017238733780938701142585249411846683980047975118315311730999244437993957368289157658234953881326931669130345217784910417836459435918735161034243135139644446023955625597550547149402152904604772821893218955458102996519990846044518746033872409087840303847112457530370036680266802231606202164228323857010129126509483679751799404904395502052565903953913602575327462992272508948469101430332242845074667353984906087503302150635624696999603606909275074316206262026057007564243666950132609121749417328306638506785194168905607297689164079579112358534194047223966545663700013262184137162276566044183777335803669402270244564081465016576947371386291984412866407741271034378585869974533415500598640538960820048853917123805557080381261047115728252151868774325859844650426272959942395277758877344506781756505404224426709021046497948117288749349464983136303074240754867890028495396046756096294972464132431709518438098696713306493180690327153600305098639522847523437723425002319124196374279641772584396206439210577270395844602362263082060560519613169727158440138220853141549220019867605036212043505361485306799142486484812159192741583111229879012519243754985818793670938078021478999191258445271257315621568783880395649671819905341671926991106030554948976820767170916680387299227961447403520178625363880133251547801379235933023848781918312060097294971158101024941738692788290407615731165860885039777595261278487638606413098327993170268284432986535601740020893147173795758391400304915995027727296422443462340707563804216120280961595409949955938306758132339603183750724417255938179510669500454723496943637606791400471447554504780604330771215520638024592496268208841637918942820721600934489587426627557318334193454749078050036044717887878501575514873389595323516862641149938658140653817433234820365534244633572816161545789493395412703796958922186752713659883388402552049020830025359969264526627677090193484017053373169724019555468504436721878422647475367780030451466268126197236677586562470704729723344538161157994143190760188912783829785852664610833835750053975823523111645447223962372319190723789393172759629568652024774798280856293025840406286988129620848693869679956852650525469122266740258809665749035238127470554382746922229493035742780017119764783247631076833358450532995524751034340956977073817620972944051346553889932666721138507849273986548527034039348642463665881995035457197623173156994526259011121421448890231614531532889837235903908902308048368675789540796761038379989290616486390819450551757523998792366888647556652319255405471388613072064148202991020765579048959325418720000879873507033978115852423548569042747874110520484443749589938894200161726986829051682354293582691640703842884101277516667826633281236372008978256760486487417889418128251550353617294016447210305956008193367715370059978540224909808662738386896325836201766189685553711276544401030628551827233977860447238756568537900982519900806195893140941630584687573393147364999821962921507011442620759780381044673324759115564469145946990611571735198611445565039484102326861877079439109771307723605474931365538117017275927054367818636811795884049076559337282357391592013933787576387485543462197557344367828077273306577783974579118055188961033831524154568866925168526622906470365659244738085101340058372366964872238794075055778449642939363646614982170943774132737484727694023961060012670628972901455641971138985022677394128662860099818013053597559872273449515367247373862745504617901406274687528016779379587170544143943045509019057345278408728179661798800482756411661627566123329319822169358034758138271006703359342415711850353658316043118761831918075740220534271265194817341745324854823916695883012713711412647151247326573336408806599424361926651250242686600475246866541652048322108130025605645435709834543269130952319455438730979524760234499723598551012699493221170358586495254418320270264336398652009000626906783925076579401519839795480595694920049546560549922437157927658637312726693147752341419720412203064056629013509803198575267151502603679533953074791588230881837810393673026930022098793250734372568423167103328095828687346037682185982861838961855662025037284650489111456669892407468421598472850229758372069528500927593770346186410018904878285377447968395506487385699554387943758353742166627444017075023036080198530949749832049569762181661134090349919211927766851784838691316608848488025042405617120210775145647511406838040618081686067865066793965673909741183747124235866921615647467010497157501031439782038777310672746672228688079635464540310635981647420212904349006168727100711056848300525034116031196810692438779563268038839926943276896734255671685923601834164485112457015757480451620014065980201532121591743863901765103010870937391015997957193919517161211508277135771644455001674971168331677120587414559955952569039575686560253479869008215675491592210573729177707110333159546746097385220726638913618922932313469047313486043069976319453705654439940731348088207343365422898592148612812577736976151325160916361302309052036571716095814470748719087297036183299864385287920317771200177256998897939719895850395319190007692183414373033373261698522987197897099591869051780820179745727618511551870917411453566376903274721814468782662967595397458854445122443148260103035667038247159889149153460558369214150302236435984394161444969500112874687253859572467308010113141960044752895868190876442413068130384767652704071582617817684605079247325119465318923597581139658773377392330000403157578779797715770589377046726638277712942707173919845719058961180898857509633743068662320025476879872513684795800667552464739492967095049368287761154532300681742200210267523159025133071737671250487540273204867189671162483539422413518909204421081816906492537365152243293668870590798206652067024248774255748773957560597021980224893084722955257008120946532067956365644781807068759302110673682660411263094362050017424640515342631705624238237189986607164168027642704564160243332097888009208376525610038369784507649867586114630817748623920468740080706777941798073301125140082181330492538531684280942691834638910553599225248127131659949441161097902804642929509330133026651111574785598674997779005393053965658185963562053982970271255519519346454188480243439791940672511472346234911939279684247319850466217774217707623993942464936976244179002275393874618888824569684830391186625964514265998665386253551788338187350709356933974750443370236427037395608226481427003127201396284691456859753016848724709877082569837644976130381818791045590669189537727566964567783047764169933218470943914552988427367761976823727752216401228284462330508364734261314275614692386936117426399903791230496100212361957671062370940238474019310414913418857477369865026700249534999389617476132114454862167487894867369689907506963805855410232685713307906661820430420425551452102461268346058664370218551919964573733996938013540961093775651476524735845588956609380638660847323634231318331355394079399639980999339521121487252725266160502151958815917339700886631119368095952276044112256994730166368236834800124666201244000507736869773792360565623208333755309981929986964237627776353933250059884008204082637257118884298328896364309430279658504976097640331705017408412453465423309985279005749954086951881579718809433368353327793166981863441420131568458021036503889352408307723967094053754642287502028758730234081541422092537193527514003820051120688756714680470521527209640890863780071103125397630346672299464072262468763037610025495044801416014475809983132917522702017657118956128158123065916119731728261655860002785160784797977889428259415930622032330108267297996750949280309231432325860684352908736829713967151064700607885089532463388568176540712579879447388873736994033712121570355970742641037967477457969986180223301251172671130458230026657709759780614451857158408867163818075118188753188999622026596094767561847988196801299383723127907574545379615213211345213404381862014784920501574373200988182024443620758435265886295485742674464459176722995208271560878650973672717205986134208784616884950103598089157981919208272405341976335400088536737234174712116881861551418490967958688766932510469713938075997894591351115666396766179824083216098993897454775637343864659895990544813758592377289926197266367979170164341346169831189502881143839987662119426692761279360331755234570104501993177264197097633028783355421563702841524734651005810650872241242507355212538890291875918944826808941827734949452154502773723938549870206354999656077694008181672239572240551223352613671229459024695104492882819556909663971832096892359113854195540106625072841779305020470306947077873518467817697858303742524499262485950428794403780487822607670706165609610504991464643064563829697191906555528348662760368674161604786925494791434356866058647626086819500549107100350227366803596319575250958210580179085861021781091113231306084106825308987553940137361795086204878647515992154210943725975823945114070388618601206008267782390876738693500728895698677676858421609780690720788452702760730088739833695275400584035032668853199859693090955127191432644672303872317515114555360048726389072462469044192716856902483049934467058585899489576962804280130903658513483849650072493924846533464241051671470488176975458593000580266538379413080006652247864083131828024308987253505069577972889313758440427813251758843078517956628765730083006434364601453712151478623740362062994680987186868414385418691491330825708959291041816242104009227418998281133446616762984273611818206309786008903488290210720854913863441035966555181069107902344721811757412892233760189470486608619317167501103055357613469856203158119340544249152764076774704122645862732450379574093511336139585045506029731290641228822634489682481943787239299285974160733526865714229404977739923603242832569653082974345962202027760847333270413538917661363126726791261584489453703863803833113246872561588604359701068180908335093928780036507369517855445128107710110105541845544648354847527306312575911419879983630758918383075353887460517782383026739680178074670733104432291423128105048716132584991993599884907358991276932502632784628946878776440095038032013757405317085464482828472952828046092988815323073221211331004316835688899966852670841395709003935198029102328641766385386397017086943975855658463167966831238421775848862384153290853097180598769908370601443395224367980109451235773618383843244518778524752590158472363550454758733310831047499497664172200616508958555970815162885309025922751956007346001435096835266010146217379932327665255242024635325734100098145779838591188787710891706384716686017115106711695804372944345196946239816186695209400614179932194776446523251942122233759832284498997056148835458395950099904853554200143100449840841079126511177048571633953758911334183757299836247757468575789541883562157376833433453794389118320743902209010114855187885403012252387065804407101288347075612823150977730499681168067062713012911483004210321688604713563769410731532210119033097964767831316103301057955897244581018539633357265462807080572158888701997029956205505690490263135309593916321416305298353970193091391377407813695370831805227672672477055975943365360428513047799579106515380086528456463718614284114746704129300788818809749638475612809939833900974614500205853010426955448191820295576625131119285340295246005876283229268921945475211835885597111373325873754724122864143459439588683766957250801291794184793835502451787289074437405963059055902566126563984746577113169810095463383647817348307777447957114539195788547688161641777355858259218153518676447516396386427913753988847706716011937338161862278206394645933590274717393094879642291592659862965858336094045157298271344729559704911992141203601108112867783327486837076381640314615182698185835142785896270045141986469450064172636892889730866361152981698048470973163393537809222737772214788814705193513595651451293337269473863480955794691030746934194596055083346474327270321679024252069974328184712837237028443705429223296024975353733660866665113649253102247630485082642942232851827316659798271507197751909569728875100158619504885462551397641503734731267696032167614299785427153312330606587487547298285839882808221546660330728163182717442660974799613493118992170639015029083481685425431247479617001286913883945529168328742709181149765591722678594873159857203217283705314750903058730967206002483015723196682354163671266156029685135367288254186349937082248575569677145928676348685119956046801830084797124053697984429832065364607468611790509126478748637045489955613242693193097799806162391554017867574298951425729846685185594954151920594983857117428331962653657731687216311205116221253249472880623617088956918945370670423792616418553444427514501448948201972029340031050168679225529942826412636898023086837491375181910899325249471918334820926685578835333439957899549170405514281699950799146409457634275369006120612991417473685055673570520454364989779351153510397525980800574512933114422344918904723174564964720775163026705013213181285858321424021971169610639827425070330122048848090282128438767264618085596827533655726536229803906966506239064006598509200503891665136539489541631404616420678911345775706415542164272471434218218773408076222642727866190838610656410721643034187354862913781239076642005529804256410359306701795265837457768033608910105688240580044472739869702360966026157021546800637481694236258923769641633079226751450618962626997055484231092900152556986047726207512744845495945405033332596536927243579365084091783849248248277296654787966747819291504301357723774359885987130358986173105762604043973689142811973891332200375129756197659675473488515199781797922087694600416366558873103875611725600919872774246251762156678316352995508896186639362634399548487466740264354622033793441676794718067423126840566823904717674502208782632298488682891351421428419919854314241146526304535570277695712295688287216583167845628213242881820963497952643298864506234586721412387748081455945109992055331769014721194295743529354747126514843085366315543868045998630189301878152237285119702192744128962069092623543563991787354271957266238253659841669117819963030362685855510202079278015669982155772559365068721002311010825086481833697662247059834710208609411415572574712700831680027883791461513728733809513237897502396884564787198508605627604297887679775302571187561962903583798584445727073616855172675877473381241965745298625569533992319850046131173654301720181701266520114345872079435979826014506872825431748895446514200291389790344511091237215852449988871717750289384125140891654917507292982904103528637006395983166612382422798319422541367735879397033092968531945432720694773406514647483182360331692377763714526491754767400883111105435306840923929586470018875517432733880364177138848197434247489203797346549229393260120839563218677797595833253882620765369978565758253422906231632264323695883319317239396053975215674737430316578573158429063551923246270845465134336022720694111438900240442190073409758593697087017344148377281965023488527963290148499361123198282671234291045231599895470920188809194940613994303436854172457646888772722604852460515927669349409012105733028800281236746575159514471389512497417891466173733367040350420950788309787465834876594152409566958214579958038988773572730934795100569116830351026555090611834047667556585314831813648418260029509008893069033733389084089764742521034711691659658798252609157916880177689370355301981600207730169435618608779280216507416644834507415343807063052826745860946651187539215043126109905796955312648881940526746842618861263053909191267063597296894996266908083538669113802465144327367650215691158212650737347055212185311268996285583241534399153790877467975334045194569771589137241476376190973028570144927312737638628769167602052129985758706044761844787837186280654566036829434083735016778949204621928444080524716202732042963505698848194474619718498531937926132317424407497471453656128768923227985471262563037162525884779815719545479077253535621276882733436218698858996287784914374427184274294123585093315971611065731571777596176217307984222594942413113958494106739602108112837523716496903813046471437304233769601961048017583279530492207988807409558948706731771140004807795705710371969699492277871773579621765955524029023428017243045056090876267484214614259781377768020086930313217355054927505940436369122652654904938853592435893000169564885337942179685128809753916908194396285562835281515191146107041139887707442202663237480536079427241543402586333724306188107713486711248056570580524088981381055006139959044969609920147419835925154711247416367303441432565250944826658022862236488945199069633955794136452558856569561213413137773836116362652887758246703329795522790728889164849559485667518198269709347499265043269981466489284311817849204322393848234072015768723432066081837356246823905595564088841854749016205663589208026446406930633056990687572692632559902186290385710821663069114164570687462166208769413583138584177982397777074449276548113801993502529159830864532202116256466249346187645412213671073189698014928791483633464843735894524138453380800770441348170248042904007715401343691565711751275302530329686245258322514116966114013020916940575071504304330839537443779125556418614532247297807756632382021649563902272873727824334119268253768471139505540977350252001132473742128258377217100434290657193531299345175353350729779301740092380060860037129589355703481268582411123850431403568306431868162805318168236203244398366547855150967803027841119453025781365473964868386711472221547798715322537562139946617624565072462984608504175561170388746057589046762440129834812077550844758409982690176158488191015978675489837498282614359834806568654646911589187048995393782291405887807896960516372501589427926211461053326718852770676458385182890934187970510821689162326734486400642318268435902367126038991755794804517269826691534689893730228823002552273802641845815843935587445550832458712828365320655378669675470103924343686171518176452981356689350338031524739507418999559907599669094579635481286501645700105105332989553820906335535889114547360507747617606754985539620602571349723267375240571758854794073408686412942119887345913215247765937430728553342239944221660038980890580056918338845775658979591517204945882211229624787861709690496883044945330988074110540705938455258611193225695944669797337959885390973505696667408656913454400911312042888830537301241759453205376217377376919803905885349922842367477320018281509556226400307915854162759992779210420069078071223936200382244549524309781018909000023176230265617242432954701512726545512561140379901678642215544757325236912726506891594333979305406623770515324591509426519327173733503152149482791867255987195681493690388560537864706080592787350731528387770926881575090288394779787773217716996913373880931732535725962394471006117342903706291899733681084303046957149064391866666492711366490278729425296244110992183910305414485758116734310919348853012226255769290403732161938707627254854132610449515954857312838482889394851688444412528096668841061971033571497333617422779657148688960252472694590867537784838038223254325583265656009862559876359550103044008008183066901220176317087635430062744495877155876756273861377484509844332445321022045321358664489143481363646563719462587056024436564046594558667564182011333015489883831349808609240329254649101165471559112149407012536086752143840281939724439523788694236692696664088737629807834481759510616433184948989718003785622726630422546740966927656799378646701292258031819761870525329794114027830466019018155542053989465605283830204125672038153625668181669850597739516071021862850357782925304058193060672770279737277133445941849182237536792053698223559447228664137442272571666814855999980620455050561496337868363113689374636135048453097684854240869855039557650543264883020531956793935333483225500503862183570396665880533529164591109124993426858692414790325502249331629587475317163535720733450204379371045824390770408170145545832396735996964912217665929698345067677274421221586047967797063232406860082238721068384286962296867761526033792671262752370747809551063088322743523438611977962988492346379883965114330333099040848458972505577072181128021125848606327527799545836718925336226012089245309589437229767754864557589857194620483444626775427100164013597945778990520912472717003034744486203284639082076422107978338432945519993556771791646285965902045261322807832455180327124490712283960555331656352485708768467665779660654009357512389805778385837010865203468930651023367903465950748840524850779248162340093806590541214146598277292690250714672189037586912223266719823340223545919597337017698958369569739266338030329699962042027201633268713555229895263851020246232221800920860137922208488503244107436811552928221600065351727491151669638060493882521558569436724574713843177401421169563042266788007777924632346805314779970042888063606116187435674272880436227443902151291670660541039579580356804859363115312279559977024291595049939524778205255263478187877229428976268810363301759728313558504726412509252738339141799482382895554211328367794175846131622107066619775378124864829270571366990122382973496444149423112855490265871630622106569729678620984661682397320693755867099891526561928464687145028644662663498318128879111002275064379437395336985171328702813423027336174150640824916254893203669970191358277259784022821372980890695919619651961928220965634554932957445851153292781228632826350220105147660047784905361029227634583107374618309125781537998660899690820455490129797372368640666057551818361589780855193207525209669725665559119607752687879726120773431790382667942125790906910480489957651874694560469164220446191127292959420336297270616331172072778913104050017304488805626932543028361368807635393166875160606866458889657213015703335043875563118424330575505050056022636998767435592185303836084740567604172152136044097567721717317605585177481643912582721146423169052212648281623903070541014792199172224230637461749586192416522143593765270605672455770721234245348988199668748511709220071183531892439902541604068605896072360026861712237636105895285040997870306034835983560625759794633457224809724037165644917934061701734326810487930192145294415056303816316121127549969961647439469371717791548907709585180538599634576369433905799290220202816920282760426857493658696736375270991793765386098616609291005986537597104303765310411180232539551619865648318248438172668989786237077227464701959185575912002052229665290786160941301471337074675785231635209556751696885786462037656779530116176492579675926871330433221695136131197114989997627882465003556107121094441999858274306138826147440402195555678363380122555438088185836571184448602206388974529231041293302577026683994576574912539637129822747037928796935770313485148706366878425240793119095784834945805874088233845008686614238642873555790853353596227075739356629972686048092159765617426783940161098594622283132201173554099744465856863030722167590785308979963244731150776536803384536638171124094084725213770209149553613979543206391398512564163223408560017506543300947590279277274636121637699685111797689987917039389265126536870681126251108139929350214840867185961469505382245465144777642294600030318781550097736696216347271161067051886977736750092721714923027593110577813306988410500272485068550415888539502223993864193353177889337522013574260623912355294042016506559290538757844410399070491981052122710697949880369377562007860065754370259505152409023851173558569679727304474009062556561038518946597955786776332030281633805971851017291204367014159290151160441936494913691130191322723363209440607243053384921516947388411757898736704274071070000161111525354193760806074299554610764411484327129153009864505253451168003032004864909665238938003385575425454906230313438944301318867590499828390361887455580875567434257658213259614630162930385920489929451330254029751504097613809265671804552771216655658093440672224028625432166019421907115604610370259106587275506552142785115166667664224413819236523931398003940100257234458423732803186476630013914041787420306273122854379180368233466990340286455386244401539033804850646358216783558357113563754201510979195276076935975441213929547967874067914661434710246735947124824215043000546431071455104287132614743771278304440507656573718792341203811932210108627652581655963157791925774695583035689377453179824312155894538902432938325607733850595827347072149936866443347133214701722013940976686540887566792001036495991249202194978542801419060350213256883892022714439016909214709919552692611805828628552979670705431388683865310343406029111823874815558259913970504773581628964187740007337064822043246206970994613992076849419776992562763796033262585344293799217821887302351564145985148546566511706147496631687911292894224444162509062568705340221433442440424952759023501783012678397993239402021198377777392311777723135336939904838932937689056116091632854343542733751641744569624068936378291125012643569177706167282339859886114610805247104231485062774397021227937416292570347116950347948656333792848215106564704108989432540223412813295543066218775055362209576021125937582020688843187587752934372661417772554988006571499618458084884962553723732126472174466821237002237692483551765956343949291595402870961501295610018333543456474994734481335614009744098948282715139905879895141132687584741100714750145276145566129470126967863979674576836558343383937187512233895613700489152151191532610574230209651444661265211108426781168498705024453970415969031659197933807506282074452522203664167265905522769340787190424424352692697436047570123084942400329499116532980940217299592576031874086129939360082361846251161934434210685415431960938154446325845116379941228898250050661001171133289278721993088033617219322898690679623232944154190098374858945914582247239811056808765291375936009134163393342835575152695029220814701310522722673835233753048118465113467800138645688413409957422838464491580397642171655376010802271781162721868816364143032293583477717379830310168187910710605890054098478763724665139714399577103979355769651276822343999391648180364685503238654604372359336671448907017390792556921900489880021436244266565477791151293074055759490361711137592260833792169970760708185530900427616981706658198619439373208180030252233617094802355055328578374090423805152894853835312087262386746033850007461705066827277367035276710721626621895345640802210405426612007039813407512931518525741950139927449366601964453749721584872116869680981102159851260077847289989597821861102087798303659052418212798445483547508490445180028621888974058657716584240370190622611821066226353919041674932175041153713963266907983259236891492706995602700220455286631482301622197819231243932371745834726435885045661625191960422616577594964504152380266967439056766740253672801117714487596198784732927238750345502115879335328109904183996354243773198033553023481487264077759727844449494913322835221944507830527806892604327189552393544228194982387368830285765213909150741297087177072665262565128780082182824503144171646909142247299780236254022802483110945316006891270138939471625986634456341230467369583205099212116588890694182600453385787653298390532778824783787980479342196998544195001848755537015187975970256439777012468712916331201452767720122825741953810320252106048383447819286021452282175419001125367387753167758315175936826343891920338639267105687246606541698316839877148064733083430389842387951299320574879694956149954254442488995100369986933625367968354169863644751868202579840877657033275419956595619167753007233241897419395153118380955709632115227684981498458899613988580841103241178339165640608601196021314775045974463497620229431651420920952110695610787748139884292841185635125630352206718782876365115617444315556029281446423230021247712539512588377793634266642861860369171133780636169772535428941574275767473912239543495237225841480912468143065572429801070772425558627680954769056306951379942843805949387317461535004721482774468220720730071507526944583624546788588746687389074621980163485474484582387630957259729223110647734644962467645125064169765287635739251026787870914037006542987778473409983479058898254165645161741570974835643966164826349797920910129588456698420089599783342542711881617282543322418396898928805868693705672564587450646107460484236909388062782879045444199551030583020787422633138759553938033014903765714533217460303805162789978217384322789520052487382731952024288175964411657350204200879903483166097758457928284694454539189519248901809164687300284351646912302030686650163487207248765646095041929319264903998375166670056359143853169885645869867740213666696088424597635035640007217993037534778883411312463550419815249110673903129111503449946280730152000066273199172903451659888938255259520994105408368603085163941890169528217633845964240043000601745793657128702851613416379077112607961046938485090654011395117762125433394958348925727410019166191285085670091199192742334819679362801822047378229523516581038395101438638876319722079215338094032256538595107422221464382943113866636333657252161763987486000131875813180570304041547049356814235055204776374462040307124744154664096154397479670742660191422218238708105148328041102843288864125305951459776619773970734971175894357925421332349487691212676421908228102461337947847748061868092706669827752777196733408581636516461934825786708813781144619295941551976862208806174393661173177702267937879348989728370975825583612929604767432451124033598831914817402535388773615810535902738835697220175783925464466757133820574411284487629393971144493967400183812064502568380506476228703547864154884464912068568326263731801966706833932645421116171159493635173813761766090181903086554754341265239430216765045097369269792680249373342047597611453845470961124041409055672275572262151456138346119640450007190175461433174412682480541306498132069378028312725966667461577958266749720908351454611522399163456593321306985756813495004830544558931782387646848504166446230658307342684396007761250222216647529243725268285576088081417713110290371334877043433698193503590233948662095349919816229460731523571025222557621814406027143763517326893098281832352625722777134442340969380246951406578004110733408214956648200570922230692604319103181681922525200904388613070822940276298767634885443434523966782734992574788710076110967003989434565468023137727404741789193684207032125566609580673129094271139277303090367651908749314749030413644581393726361333431966872601228597782194443068516021627765559502989176383025731652682412827586618360094285723751729075796612005504933029234722524446824581691014396138037003286855387322136328184325592771850258931073847731945435306851270894234028201094706702890035198072737071297040112809816582858794919434624010390369770786923902747003150345535089221769674792514134333660880022944235081448388806804182208879078640404235627082488213359668879913641148781058106288620683424393114539265284307033626288612505059826695510377035668594692404490743298759762923683860487186556204894927971836764244756108935836020415098463220901920000454570110266567350384405412984497131687194667288590255113677902120767072447506985141939725933448378783263713323891649480029088302802923752050761541962724496700817121775582131612447386991764326519198654249485736397914731521154094950906207500457114932733952715059937102182899722544464962070258840330803628223196522154049764132254915993072693920269110180429271021270662168811275248318023616870911444762308565182722840170187130237348289102729591966695158203745000025977361817147925709882386150371308153884238235932147710215875890966579668877956459697462183566304976287689480436170209141374681606890403900823133358625713200306515133972957909661812339094330838171762522665115459101419482041566965210863230627747563440492212768900774591047673965351123761740512322170567484454965812760096681425653217834553651037757334768922311054572711340055664828831573089028457832900294078150769208500086934265896944907582377446173107819446334512887480975923006041655034007353205679839214532290417677873116274339112464663473990686115741685528924990557219804125507706042589888421600600180210264775019757763202585422760843285632553340029431739375939712014444092544122291152125427652833191034650685086031309974791931359787314114465093084972574020207051108882341755208719559248113503586771826370109120479549342803971320197366924864592051377482747629551762189667034262624208916655922869410536378813389017868611797807605762695693318582425546655451011358808505904286101622515827426916219772414463012406951586439792421438340494680393337404901980823442808069303047525148702521267799229606951758342992745344129094486778026496838376414036699858944335195938965594182060387652563360959159698391215065425628247589231225367647823996309502057531447489877421905563163196231428517390081693791770269492425218024636839178217933466021061230023054596403260419042012228190836006447543583513762390737259553997981237699893478110136660889371281365949111795914023286214840881566333041157229429677836391650106357402478711033632789460189822680846993319658789124092763568016831000114939405211226839932378477902441841914072042006807774647880862708955100641853205272860059100339310461591428237208070285943991293280446323692291132790290905817232180208784312295683533935474122553799259904891486050133678330830660738541874963681567209635649448204745047904327544111479272802348699312146654764624504883483415757956414335613918698560833514117630744457296488010858912901000281877840061649766859457680600824884977665497529829692075254743912021655330856720176614545922391249944544087651060970102982789226257209032731115199125317558623106604308261533370489574843099014447196174642730740259237883534619603196318395755376456131540425821984631293762656397118122512773357412285151541137375011239785629710307672323813253428716399199124512909852615978641555509755109127381570019441270859089647681332802691443143554712137543986969255949057608176094508852739278983675159926467841125728383900477409160268047592529242041105732713794713804427635269908232667907971221898936410125426066802913619764418858150365963337447569983736720741145572063321061646329980761189350249895179349607670585718570836075393908202136436163927803150799259398318074606109557511728329699408329390581346361349247278503024130346199207543947415185474403061434920644523457737601287639676304314971371264154658847383486826676459612726583420473066097631448517327062078124481678414357521961522883329231278602250987912806459755213386944174622863478291819562716332467254360734672176428015151679340883870632716209966323017927792765635786694933820659674955431009768089565136560975400399346368106142467684462390120212293880974369356960461108161386674880894103557619362942846864237402352441876354083315738872679548822241961886769435508534309876428765857893626767362190699197956257416124116414090113677555561129079798761850810179981532931762683769455829819486148386124941420158920003280478898907295899593692770737431422712684042567423739986854876051104908525868740149002255968485691029942390555033011450305458689802861478371179604340769809926157099877964988528654916236564247635971383063393374834925301489706007382682773835224921754186876288675502851662601571715507014953916197099570611515157353420643947469361194247065231019741942837899520986622573933214240671052360468225423082522738211844794546464008230722697790187124787714275077445094364111410459513034462891814022440586704324177438320018157959248234878370178890611748877939385487890643221422397781496989491701016620708416396267486110297047510924535649126026930748189062206446701261739595306552978201421779894096734325274397037027881770730211221943190924022255411159482084711029140861568016932109554750055523702002571676051845431846396358184344639140043242076517343622700106655998772784137187789997756396532260107928084314116493214274359923342725148239137049510174057322326699752667738109370727687757995469207864826950031168399840665074052582002942483265389909840698398447019051335430188149212327963848790277778372533813184166920244685565469025191917645042184482317408966218325862995609510947293893712531715394775095073158783615433742973490203511023352594473157690857558481428388347332493720117423313571840081231373122673060961271706563280234260607561136400448982638232793538935877921350435037176723975135203367190417039062634085668225336504159851212150244111699481806565274546793095881101113333253066561608972166654030689012900302966818783660938495960410274523125013502855629391088183788242473396810346409948121862966077175736314373128505482879371312957095807628268118525365412034575201577608116888008322984172096578904054576735672826925040685101213156840317437256183566841036532978881720800991965911762737279251887383772635517425667971915752912806269024582156496381333116507705454003171610592576023916197608669944407692623546515379924582826085565008279807469077800555232190766123643422698405030628108406892682517298051756423517835898185835682215527270889503597992313976131736013345040273555155277020059631834008796689594212446080971943615775967449852440863787636438607795318645439548605454106989725677127060082773722876274641575893042729426868973606914400063403440812457685096761831374955653797843746899440584483132283412863431124580027638422521145574332690029531095526950230066043245474863236704345313226929532803001518733290096892779614574342339448629187957040276220481610477780811420415665827326032862709603694837641900940645892913169689821053912006987971488870613351367220453676154361666151220464266883940372474524854332060877710422390359847559918358419925416883608112468706720161943776681501690990349167133571752933602904454336190019654893124685393042527835605878337172886479932345028015845983741244853815122325395552690536389483255105432017567403522078812450984678819926873608085736454776161219001608729391196144303900422453421009896556686704123717929548044561827370960795883128704678259869751782469893444406335236795469947697920664232507485589585547335297105782609996986085454562701049476266952089431261973754309462995881742910151493160837976301033565746602739787543915189620704170133585952148021699348985887203073708264231121981353450517154375040980441322072699032730536502521902274520242621037452842474646240496041676222004102465229628973971931851423049883923806062911651972958803393870206438333176786877794746187304861602203550294130532230434281207213911203066271903353578522762260869389232658826168386053363373270943780000468179951294612578908345293006182068378058520872034036930974605296355196555786664386410574423885151778881125148008579237832491592165045476596876935037014415357183093362963967670017478004516581887254348149805231360165792384442328858478361405623871615153368090115337932783343256181751268951775677325156786710022323337854616018280894306900341048731335542029024421788129496317392240192448114653088916250074716455620961767232174004207964870905421007861765340788056169183056693909501967239107809496056021718999457997678351787325415769155597774252131476237618733535248519107897876841740032927366694868683686475750984587702769023661202401202214809152975859827311371705059470972789558959646081596162748751188386149929204735024847854813888513186700594882710946622576190966487506337963502717265825084806125510449642746075294689404582856882924836385146431846437152333080154127841293238840503075154901465452119549599712062727999233146937941935056569923927956432240755463737929666571527042659570621503832995610714350755324881637203407830646128975505390665482741248224520714079881230198661666012629980549704565329301382423046309542276348277414263425452166548940712475628826916876911854448240125188312835077981312590409153641319757565911887650406243231265980195602725554424379233485486886259769314254789438469875946469049894852124836462457809885560779933310033561687654665413567472108535794489178822862479960438022261746116220515093825687238875787502386112786289731985784819394595980917820411873020756615822388579182922359655968419176138903114905177064438486261584782232367289793881243955040955882957515840560013701955956043070516381354790610210512465546490460538825277256061013321346384071918586810160830757865087785418408108674669767664769316008997981279231199024800953643660420640972172573314997530187183016074713813141778099255834854705781740186017266787152665794214736984532759252930811419840312582131109198911673970809502987887174557072028106710258078782814190694190325120365234781591869324334833919128778404411300655763305030693955378425287312263527085793070569062695933719984160910254261945376080728857563665779484384979207404350092036395712664202636558296624193625622906127475083326135650349736208777667903178022854165033205703173585045557343718129021483775155925012851221419442017798981499523029719240190899623442258420163921986935618306659379783760245911449950537464503416655342773331963933550233041218635712834519888831392055040861615596597726745746520632923006158755715329462145782414627056453850433035819899225050840021247499562525666402942455426908869560995733757119819682463507275520081948767374005229385770924084907236906379120025923479505762692062642663201062317825377854270789421997759936174034782215277886509529324487866974759346597305957389272549088267115787827618251742490582832998280874099270852417461607670894217831896810478734023548743726075000206369911997568708058979460255792874773165007605612032135266929363715619752298593806870663697169520029743040948026724765206540936367579819317525156428061551387810212976772254246426981595602242102093646370645903112444571108132049393663790711772456737313347730206015531516249691859054804445620225698922701647041663175440628167003757559186168265514013284843342129513229184452324277892456305776614903899142876486552889650120168399743164417290993038286481560376003167870178150871837291550555570612881902571304877356935074514219768385624097507115182729351290971740220601817438955663213965076378094641118485145620346931516665538565500849469268664266776930469909017139936778807203944113945221794710475884643006566589667707315488616952215692562456633258011256713344000784153623507543185295187600281912374830646218305511512407121454633296742137042773787829583725157456591228135030815849713700480754779390626757841069689102040996440721891147198479122828965441871732432802653324141541377896831586477829429690092169494640071365139624645749606661639221561630717042684841992658614088891236078731322422735570749281094133702750990157938419230320875418262622271133214101409000126243938200419192210628358225487308628654883218698052333500504278815536002719467541493983589754726303746224195582736750308604520385066537752124191497396162026809842037909088623041776484717630867495124127949379419926876557096190722839694744459166140204809624696410820809202342653499385307392229742954383075980681609606400521885777777367220271360449374493321045051793567653273518219461280697195785191999745445492682772431229547513584838024659437901382310552001427914701869873012749253515281182339667175804205764555737601613750777242047297758023641536831887877453020413614745577732893619701101746853372070043976766881225370709637648056639709661990777904927521431499430072663108236628008441183924994449049594983256503882356929782305332852406727889710310957837831274605835850798239216865238837300153081439332845861171637736103630943559332228464648436797189590189074426380706703005768702762810016208641574854772165047236084194469637516465994214122530692294753881011243069518859379098797287842538354246667083409386365331752597331553658677573621148008726378558757044249333095584814883155842148821544464246109234776757879799339715329278393266102799229936992768880804705575288259894021687429991140737343743871024043464131073898951689551725596904189627097669048008450601272034421724618315236701755529584490075656015873897970071076546708332914040082976474123186089676730036078759061124714504402108653084492324117392011232917645133107161375197821853587110580077987584504896389304305495871968460724556861909961463662782053045541349884052196108800205267290206071426629428198146808957660818729313429328908239508558666491628199610797221341595053632942035719573016909093819803760690479647481799609656005125440126428745345274976525483587183000286119586877834973003229903455785766561258995030599653870933621330390174377059107682165945300976299589061425337595205391371431270977637689640957416355472703276171232792913385253809980394843683692643399366724303853682565380791117607399523304251400116332220021939004362360870354006557714587436789758023281594808644228079736382948299238818886602378782551248422480501505155806511887157192260722590824979576413901241377811226529971073935219293338395019909307614023443624734418714204555593443758115782941351426400101634703794299457416393647536313069391795532466869107265230776295964109315935096034913038790577841976284835412285707009524967326285331377420695145553467449552553644356965207979841011196004992127864335613584819887660453785045204790306413843926924700333565537742963481565757311478196039104526408763779724061497099835383853373556041542589078024197748205673619662506710588731271991966408178792725762152724755616233697318044322978815131524432715951878147592959273968667276374054115137453231377349931135404722907381628385265803157150690696838995412537850864727953310792899345234479288255844363141602519662285921574109424659830980992290279169585994692073905582711735518749992917617932789043850646710800977036223154196703503806946481369789593438179496787046773818159636608952213662113005513576315050390297426586874350633518725931080447808396525077959820305453430374156528485982862795530308452964029686119712156813549167331673702650234192038685732422704354687152225362823071466439100962931533944247253775205410557908029738365379670584626224969852764499264634664192876762748084074183538025530925559601956824409043217145513408732777618926795517818897773530372137647012783334859299527653065844908729515399304685582306611228446220869541645254585465744545696185976756299201198036687129832272661443405072053816328701730297836566818806080878714525564991836107100594195571194020498301396819007199434215410873321444307628374104762640792958273556820390426281260648786965632064385129234779446628916913065615110422989976407146943209322347448557400706390954746828581788515626989755475166287424627605409495027748981455147893271702362269903573688425980732378695846991464062102901361939168248648006144558323552198738357161490257610286990947946117959664881650919282492446109343507895201432176628223895338704565963514086324993864620226185979506657114711321127858832144996976535960370880987807283432704869973938627801476381470122972508982263759483747529851278091435280692294216871757262995544206341825535617416003799064229000503747770323388886804125221537893023141409809658041632949086382432984959716032306996707857018359038845352973745554316832598992601222849343261061614849899389036029165712395515965995632334679510642558676587520030556580901455046011084506063425944823232607455455490239890298512185256577239656625677399525149134305725499853826150077029316857236691863900610998363450382386822320295637218246893250937904484982295378395720167594948015297141510035585113753568347939611804280816760907309232997145242694938462300866529131632348355634369369182500826727751257621354230252398294620062189911279200146212499399462167317597617353346727320095020044356871095910748671995993454478248865450706055037754891089117634718111217928291927425570555916413046034834603295901137102943960201941891295326094946870817743515872906809701988950931890376974580722075080474485251653322626805933591995267081031829509890059532054795921781316778902502502714566196413418512801561407794390216693091937552760872549943096691997159547318439146857983229198902644614836138948205615475890467735493233720112532346599471657457735191158003231104532332752118244284154980249286389456685047004241067644412128685463532442893146912019737467940332045688740683420571705299237434058327827733420804289648639964554979978560444264691839293229466614223815646935843308918273698992540065599985454663632798886440101215499322609840510479175170438494918905316724063871136749235413454829138540490644896238573529885496810805694963662173228234805278991629492881266309677709549643481671771594387081368962582760015082852312671850065479866556984901180549490490773942373718993752214806786371609796723954851031632127573426947101493953945458458938001390292223642162731484835149282434536854544372846610587227471791498630151315601869872610219000845164519377220941991600385291074617015651972360626394998991112756447919261357496623416997118411458130848813003893274803785222853887110686815335003213543022932848711988015035583459384260436891219327162292898977396411943207126391097817912191016428196346849425895256405090975784426567262399312929270111470039916381071338556700559135188179380481294847963196878836107843788341992402029501663684425007986988181166517290116080311376267916250986908042676224298743767923129964676585165544600483936315431481384741465378597693281453864688763544502564412469609005066578690300924024422744556866684532353543115904878979102845594503167903393786834876069403529323123578164424367394751550169411790707450011017300277212091431169509678252585104931049619463936613639719207608126239226225362985219756137453210967864004844011899788877003803290751691676368722450955971120214411369824745054151508671866306346772319846144502485533573182256153547506185775551087974919654039434497967338420528702953778994485502319518768113469262533379637146288896385786368658116531946151512821613154079883604847180462178705336260300470789227754859798308181886168143634298408716485745025149523942339927054447721038851946816011233532753223508256330542350896546122422240952007079876157731732744858241483653663324177925152403569600394061421323111581337619808749594350655389926099956530838552406139381586561960971027625248786400045440205916475918934234074399202858143045799864717919862695632854646191973791449682978770968421069502817115261326399087671088569025971261464760088755145751142762461405997654992729186731962147443393418377727727739457838921181162164298636102290784583102368193569049145292303316463912253065820723856432218036025959647147606125690249385936367263888601343475289406211986317767271222983060258760058508045070148469649992049782710700991746445446960761121364475909041640179336947382132587825279538743544518484593013173771457988585993106942651846757216099267010186609638563651751997376683818713239148612385976367443543461387307965665482971835522465384086743304854473071289630998004307180793804663879244561912077301624878068462689753020148232126474444891837472807788847222736440359412246754668082462622486380784707368536924728321097514903837916327881367711965211764362266566542338071030743628953144866832003871932063317364337385666962849217026215716475946417398578934244379898552709281116229105542181949429611771190290047685399618788805993484885239827200523502716329925957031595342137588754625667315005413317014418713039564876736934348959365792637518495776568854127560864961918621836842606608495893500923504528613907682081359450266630381217652757064914089512845958141824999797067468035817677483014633488615642688577629440531146095076088528321736818190720345018044508421196259732167141223907586185208860687218627823571088984986825102278329633626255079041890468561628748540130314891824076429027674726618673184120914012025250141743956661505479377010311091551070183323496360608665163556820461557102456967111794963491080839883205555196832491412959781767798481226583524481935169428576665995588085005880150922255066581025955525744445667111776314368614936957986393245380181509367071452885428800880387211397406706802681749524933124933634626680658306362946338836191867955483075451193421003029906280339350087445946395810608410926764566800638682240930493785267594491124064385242229988197919044269034949624872125644523073154467027786342455844313695415821311162450810694752317515615760382353325330693512452289990427807323680269566949009096286569657562943757790553431130138660226737473356788791427263363741456099749472532682139035260184792026164451502938910142345767972602868945020717936722201664855524414417284979092963152146787593745673186818311939313931598212331134570565717058498493282375328613040997063187827379390161238215605963081550112534299444807215274175145369733141157424563056748256542693932479921078358232222972217507027911285809382019482342759367178554462917860879765297261193722660551194009043069011524427183882672077482135187866609257597331547723805247981953376179440189065563071249773788033276197052754102592163402226903524198573346317810245240137227797516896006078507460541513950501827181116779541580170569622359598375149036914309950589653453377473141734295974894964344495118298975649330700281443897241946756182757491961062125438746853047408249014602590030457767305940487890918053548161974575733567772355729325047048184623848821937909074193402500852657287671082608599830525656330182466250508320609174581950894203778860658534915502925455221392650368631737367576470995923245815736444054300078169853502549332729226587406001036661624245618152766560793599999135064719425613547694915926745925924525113270628394148048322630141410628687131735757435430739037582238108236797971151485395421700326344695704462082746185451940503572603845610370578089756630614470578037421768005811673903830563794184018732300504842458594497578998512241881387442958078775569585404105152113303488095057942656555513506534445647569561979720872251810158170873428039933215530712995943480563099836662902033422543059378466495454595502681630109962541355308487438942277634345951193003098563792701960035363548019933400841219586209330253254138825975138241015688890222670655048201447953485586158173068939255196183692245036560961880319567670527152248609523333536639042807623238470939247274038074866863297235615607159753492139164713970876741078581738885730014760481978998687819169647358793130150423739522501868712954838073386461226512437085667873883094967738824602108250912779240068205043648733677481213315300195099549325470566883206855266541970266747092065526848139875350076407086915858055531918036085580879806182091034205938226762559129195690196014825890327887061723275578753198860223406909352211501609449127709272810647848399690079839509388672002428697061150295327096122733985638284964645724685607000300820879941429090467034760987945628027799863803359478009868938322269240083415785112159744625686793747638849418978153919244262293011092660133978365892816230397767237382012426715920538451535191114146397914971396433546284489587410751820294306783576296063940518118090063353426261128222899393629018816203040322947684764172653713179460427326819385596768315908541560966386668006459790603539892607717143972291446547470434792777599445072967326629382482186334779680740873940589316428155194526741371603026947305478526826153095772933562899452984905123659237442725152143653768059842104487340560684067980473323396072871919617693244988629583701684045792298561001954480802230268452525519143158621580794205899669251418859082317558925004888944954369071629600056034160118723129206599165916726268306427514541110336746373611201787223511540870565586198500665740267534775815159413537313332470151911239175764080863453235605097877022830839300610973532137339889755165408330616089892353165320127482128017082491875691004578142401222271938704196297245422177174480603935766713518151141799076825608119490042990257450746094009928883553821123819052337043607002330220020823265004087536599679091734203333220013911197815216543406062991978163955768032681501271227554084852102282317368056498981646284297931376615475741101330913185260470430250937248564469547231519379405706854509814160630162595959213224197787724896911733884299806548225873819858267911720008465056637817652925326818686331550804883522407846604389962874265866574781279395603856689369550609005013958443986170705225934740055211427619356217285109109062570010676438404897911232037317452913806430789682029861162569764917786602193306011809104193535761595312109947996962122315398826355759428756001578681621292492349220387145128002933724298045078881590394458704102208697677816725189199101979498750253918734541811894644431628238392744020655437312960073405001401524986194560326305855119294817903500763817887643931619704759779641582921168831845420394750020803486430354650786990722046522847659463680477480808005669595622607186904299094340289787602412263579143462638583223467566018197533523515763662790643289135627509293940768638084379039836042538456050911758196764176469621367169487380443846762581019488522438196032020192235757852841697580539657308954815451400820237461476104412863718490420073543023186375631497098245946993943062371045193526734859733020744477310280262959475387423958337449289823931634120012080919374227082681552911466523839825832551925554515866872554303571591319582636600883544315421135660493648347198676869992595066653705376174369756545565105834171342264683274617564699587606143177290614214295445412049292944700820877059228184804173100811087559541259471245769361450073951509459148776536654270968257942029166742431584993264450928496962097753486824295266076984678562330184802573573995636808540173818807517228419726982811256155090125510588560377911995546736367218840449110380698555637772100073160255825026955073082355636992698615202978940901316709174294452262792794473864120855707280045267522731966484511238817804069253143044983841360523925383078147343056408620502249696929314260302888774010389846425549441708647452862659636695577498040584017229891633071284826226144226778281379840747662563755060923430194599198802500806449206358215272968740020939572735411975533398992418909205941023902440498643006793141691950223857686811680347902688500444455173551743701794377541652164151154841543509788206089979577826628463235483639540748396934114111526214533510117996198662894349760295633101455808782064510243789022444171228255862879291360599113431941819703375347048553649156511069637723163325456322690876143677393290185415759447441149508323052021016521571417889254831523329252300993574191416576688477072055180186119083728548518594076091161069492184918455431535286870370851089139027296419956917456465945233048735666528688707795408604161310853221739949540288585044471966992766547079782382714219689109830781731923327427966817868256491509504926297124861275286078961407003902567606996540266833267586163975978555786220194719275185324755700222143947794085144000720746385991776623853803178522836907510186586761569002030603403723912851059466600438066082813864743391660293622477430708947783521784305305005900433198116689253148826061614918345564648234392154256412128883297753658855741281122145861023504539805655329047329916744626330546993505352635476839003890846788943819062881234859676141199659156424078897503958961788168054686558118625438357536629402230891300985145558755016194324026648386819815748568899523616689142978181266504799555310315249156629061614663344877354969502910696756496881200495119042432437666067658143212322460255369001892453874755774788155776221524410249586316010677637379319474152552214499681122044013397817085529069480843206896856718889909318957088301882729029739466263980572061044761764972650240355713777227818963330733769844125813144883941802647882563530537977924294422627174248318001506561451046593583051495885855711237228330089899703701986156210779751923904951175227829029363515519362423999350422945992315051065778748372474827804383876813368508448955742432905267044001771791926113658839367209279524817657257004699303368743327778114889245428855035520567328143857569905950580580741546046735953156438354382098258595783051578506629874422541478768185365615582461947570909058624216271434307673482631506096939422444625446587068795116376181126176833970343486813520144224558262949873444523238986791653772567140912435392015957031677695243536979996612805967934984374858568499852188239194828730914415198832089977736483569977607439583113609601358520869269832096130875460345542823308652256054761070301133100630338933601447164930095123441851186746988098995220087720212946785506992446956105452279666867403045871527137546113595998290143820997260955465368165626620167442503856837541940708918196907889563481944781961844451975796726463340445740660898720613297664304219191725723547535889654498441352659781306386487871758993917722251391527528354726397729444292517150018587412568025122910946122430508126501973563158672197465309815192054291880171613841284922771236874249085899513957442317399610510854694656501889394485540277059287149211878589433641170855820737086469770268754319157704522014652799818289575791927169601898697588734529107916197449581661981252163408136603287205207734644709530833272966678722281561451066987501331369800708188837944575113061166715266684036161846896618685129791610276781647035955681411016846974522720886554095869522573353753068912158425305838727091817279737627123740246821600126393875056722632397382574174594957085758440881050774968442785907865203369402523442973859296176653767423801783039613832047404897398332034491598200423242524651013576177876217011219280166551846309074181811053396156232982499876898953085138723508829521534728757155231171585786538804803934311085116971435141155795811926280820778532093228591732519044413499115657318305991709338442745220386890296556045727785962617771281334679608753060097784635459722136752463113988633582830071836463962376568979200331618695010266877180558485627782047918688972941977228417622986400467088325942947289620555930349884078838230510486663981657455920737499880831308086296564478356105705894797509929399432278139858835154842772572052026188254771690615571771504118765702865628329542359238198271754708157140492672347164473910221710783098950993334860004781477685420970179011818049748527053884895035896250561131412797162934671182736752013739532948273342803618159274540929407085602973494086741855777953221848526937680084106126475754371030627584386219099239407929081676838933018614704263628724512057270490393514653002835962648335315663435533238953625762067422621458417326388670704866639752108328210290891438253983464332310299110511546990250079638386698051004892145659928377570654343964964879419391792417914001102136553409950227672847980369737499383493539310484844491222337791726908971091858055383172125125470156288000477209933911189338335007491914705087225711568818409860658874036101909754134533785253830942078993322057390352390775486021038792204348774558404181298446565199388450512917417680052346800937604092438135629465729748111192316489316511645995879730914098797818625736056999966371537918342521763953821355467784626159599592149004417741221544615737494740145200131730956853367323566058325103237050958486465715719048467668359511895218518188301067645145005553041236350647628981292165208038032910908865058097367204017735801476762593061487692183343827931455834615910845329984628261304203190897591739390931020857551159597881663269578703700210916889419463148944171076798496088325231602867692500900485305433107399153648449332086917373135673550799514362428143065944150185581700158472366974629072345842756166654174882579221159252573387387325222270436741651417220401620869286903528804601071894052716653533832221641833583448137792512147063259655449310825452576005430675341308105644789000624525125830185741480240142571453913153915943016151520689722393607073674260218507194352793784216113087571702961635943344902854630471501232817700387183542606585966643653923429784739343380632580006429261113717282355381772388532689877912252184869917580016661957431131976232056866905847011642500454078043337777892764197087445719653019488003565215268687328579477748834898698254714176185245140779818808190334882818575570329062426475014475614996653948080507867244060446242103403398599275950106164379449936577183825661445072583560265172753511051087854724673898681596953531249684539472242872960590692017502641749700025486000339957150351584012919027400542075823302319178007543884320150827028357171761519695260048128459393822551505772206067499247439783853411607295911834406894780982612796359693336488560989240592078904519755020349644354552891850068425562495474411227938140287857598352737376825476084627815717747322136412294710293086644749766960225107249860017017061527743969860534249446996599857155869664566390241380842749179195975719229895842450050670925651182954609803108148945055153778968842526317178327839480597340404447971384101649867360095016704238910949695122576380669693279784552203980831664792270712814064425538062197434436762283164898166335473342562190369829967346046881218465749109714468062787747972357650656256759347055819572719260340144019415255418250561836126230515326275985050484111313069933044306297163092020861276161486955021692483327131411366482090254517790945747218054746027907775933069495084596309994790471267874302253024340256050646393583617250184079450865509050938403741368978947706775772394516982607150296184504423406045411425143234397306339584583002698931465004720722587583041280441882405787239817418660259735447227899254359976356729759291660850425206856274635901336757923706598856772906187066001135264858082809260040122808119214699292900296679525634899896080054163151730892785177606810775337207571387286413229807422080847622210374859772650772371777816386189718513409038173462840650901652532754744751400031296553273486328024279437700488491372340533340670759948736006811316569275494304974931891011303769528105073575137554243179554671219247750928486930915516098086389212503002601781456562626974178615132337447051751255350473546104210629764967217669052391388659927853917664930579060170879301516453702578238009077260161281185108755421247649262081223737156314213348886907482800107400163337109487595997660389757636637623222791368728078455095552016687464130723898722187405036341926501719243152299459393958306077607838997010353563840967136062627764162253489572312914660943813349266073796207118686714775400409646443785394508371432869252349170943885070748035811639054795985303666495372941431842860528727676110716694190724762596485644894888907069294343750912856353968512433177010057171335904773248333120155558846256374709861771630023779260468414285028229763254214999192826818044302530813578307331536054452004062896259128346530237342720093065400810753532841337230195647161289883432493180460510583640432012012546318594297103858757149262778544928142236095336099132063383739377543126796304123657108576693546922387081795171776295620938859930892103084042513703121417173855639857522594561958511445828106224465276994940972424897284019330424673606342266776447503387828546843022381583160785048777322811103947259231833332214398883770903796203052733150837248371940744008981995267011498337281796392392918341006547771032513894817734965873695734481896106576097278394982988772835095322092267040507172496714325513665951834959054216965619899187758020479853981463950596623784871769179305394686013361289850029147655405616306220777585896493698573626539943883423186930347389069964803438056785339816885704660469173674245011596723363556191240081192460961220801456869032253941464949162606248949464851436626690142988540019345424782926370093717249665717658477644152745906173496769350690999176712209461410379327604677405438817456858957687638234808117923959334470114245360158721442920814927214222663387565203603082897677190601025467810765386862614896603702342472508795439693340580080948104730850400317064213150188626839771328418966775048375610222267955357833931627941079578124484066939715135348596314068106298895481395521648973492628859051485373175866812462081644533982837648240076374101809388334758981034244096866147826284903184595847569918100478199418591219595887425247132063847518602789662642669300342865382071965178538587578472038597688360949834558092408405627521510493833797849645421109906884320934632884737102613049697063563930416813013218900062872676231836406397501610342624424306913857117868772165411533646314686219033294783621521500123392708730064558164467353057728309190268863866296500634194470926163691407489538316796498871397659193520968764397431648290928946408700200640696494247277174288921807285578489492795336449936233367207609815096397124593161768932369385104502794306731205919602658663905205703303615287576459403029671956263169946636209590635672739403959199883595115040367091742913924529785178002335826315906784216028446875406817051596946735973826612751466302537393632612830830943982948337033152174577368648048069363487407253762617243171382420471087616136578238416161002408460140398069419169958101826916444464377787966654882336258659801059170122493158684353049556422782145648919869074981280109157379375830013478770224379696148487117048729952432182926594035165515199036125899351212892259361592810304558268580509466549780693040315821613243097823383098067135970828437820633708543191709023943367133331716527736129015433847229879411473073489790672130957381359174602140207950392105302299773224687617175930362840090178083818098553020676018947308070934021174192873857487499355776284276289676522218084214332964477791494083921327451740994593147206224528668672430913736876073016779768467833372008155311486747630149101291279725892711683811302125841694297657550818844609317418897218837874558440719341255921278051604944770449675586018989927191627903299062279212678037494103381449921238548196906885828255772225271088233047004957329274388275430713347229947979113662607254973388976408991025511687516655104777154233985794057931114253356489581502502766289840845796267175287484838453420340059753070836633081148998997093909152340877774546858778856423106337680158665648292311041634647141624312515995707936244303726944233724992368167469990616664553796585997322834242954055972486817395479705670821352919016105976459165142113620454801588510338876726736800707732936023953922001402035181571145531498685747417388067925288170323791519235015071850075977659700448565237272662689010010476476649889384532388119456885422631654680655629140654758279067993575574421158419725298298286409791355374107314201805851935148754220224207908916524361265139557578436722780899594615464365039681004255513582032400437400343548547049748542888336381098678664922440740914951799597746971013881205929136293657175483402233167249052762992423238552709428130783723393702467215642438869076335865907604566032025757497772614567415296827965985958632330449244476722277996818027792547432951498026684263269695683467900180441412225510398462990774673813917566919853093297301406007410865396673999027859888312062425861495392382098130891224775161349205174347035781716079822760054951269215658293135117770134197396647106098321484597324456045623178570174566640591020429536093323072130173337002582940287303617478586312926961725422025695485602702545605117576320281531501089982676569033413704447056668276001873714981551470915060108963993711846534978544792108995853244118018432873308078624072411028645502318659535995726812006147879607003525083789085335496828391392529197145922730137380988167656456793642735393806161506381239892712422636412946916879105894344254917592477244410446523199028812281658440074688569690899036908378046943065110741757363809303917696013664724713139235095212513719049926724469720476085646445665812590030510955615869401779260061886224697138194851314216588522122011240010210744331278268265916404110450834133349965925718212492423430219909879615807166198130615683716612593179375205825879705665663934753486907048893217239467655283260025885619544797907698785812104982141423736792602248618395747813793793868268062464239770848288822899121526823111217062805601137770736284868283893682509572143150331087374430431101519036069349714830615771266083271997283742640197816785710081470403810843957593986524943462057491985256831639383050596230040165148003553381556992615482617117238808889360362436619322933390232275021438454408995427235950976158980628443492755023732993777775814580127519951123935827827925687657926074602506852411988858806535216293569186012707090454311257591287842848514994826029587778373812925232458747551349265028088270916977101674620867876562274404648044999905503221411288144997889229284827645686322920942278787930451758882251014649717843366209939528669291387819766315422171720581982771987460299512446898664149169774711683940181095405542496478436589946000257043871844090921176824739155615430793695017992942019654204059080921713700922919049675890426847581181673090813508717364609052947429458973694826495923095832218481283265207907446076661024668438049340880992283638507579671013511088858557478928932309660064238516538019604662308062825315459254963907683741189613796573157358294443226303201479682327755827846490972979643635075394309415097064301761229369241560106612238459532846024795794584487724277878806872387530778734605817279336211019318148914278522179467394296627137601039590636709878867319061487351350361045472851588900508804861119028959847758951101489101321893957273413993063409687116197277192961223965205203974343074297759319850318870504065796890646727561964219955278315201601304751601018430338021402242985125324154165968666279270499452164943048327096054314692090861955464269784921160245363846504813849412081843311642273690545388259339188141692907957322615165299005152336419003030875004982075853042677519902984031890068637190222812201742262674552281373957358737158495851275407161827119918826506314673447596136010456113914872558994381621891502232451826275709768489990015417664087159753263982782010541533404735582059394449779012877651854175664176318914674863664670122759992545453326534439242348414306138753838029220086903446725912248833787588073003177362808034323196993666283049535834935483542661515910409579826295760538278549844339063113029729287471040630276072284106891829484832984421948017802771628247457268517025673626225762796529822828124321102948575151434997070724967225334546947442861258998598222319087319218472096128698932927855807110787655597694479825847689368869310780641679945376184096351343242307007261577313043096377302982583001933199324760850237643780871872126480413871100249146067082882563885573755470895814329045545240740386224792032148737840914325769317070456861499026346325994756331200566632056996672829659370857941868666370898914544306562353925092314650795623225342953925360702170665018047432234673356326052721873145468112563026654262684104595525658934961981274785109446357401835992295449480647443414838313124295579500633638222397178843481493514404995906524366475264971765097524304806076347628369310624183977352938078529456324812015084748353177806428407120959190293044132962069383332841067587703377256126790553909881476608014412384352491801342634698316128630208973562190590053960275433107634990751356912934690092634473394111388610206268672850874505341996998682225816952998436881360395180479284838442478462760364881913824262442826960958912503654281670761202273081346624328264535846490847241509540783207189169799377593000336653489258861846393830918236769703511829376396297508319840389303867578609351205360532417973229890430999647327462264392968862776792531368317038542117508001222101208600482234946583834415521730450236602610522256362758066436434760413331952906482445554081899375629955878288884812838230733216498400499106383091478499669679601577538665280436879675306107810829072331096178299566044207075935124840689844402952973701854265118242743656962067346682648008206141302009981171943714828563785019051117791861055542359585738168951232415515543617233293566752688112324351566005047827435708162830352675621070574084267255533264622003101661116091213765928826709510586169691463141724805909526610520849341430397367633739664847023078138680739467723766089080156081004453166808704204539001046970963006904913217898709793227892875246450485067555852178700607565875373275100353310551679918824868071621282599629847016877463137464005418429173647986633520047384356311310157023955107781553918354650203638066851393191558742012869803040635648744332776930743639611102487582149700209964206406691066453273170303491782934655556027299856493624425019153815118206567859720584243079529679806057233959750434940200624679015336354904091545236301656299231555682898448961851773310222334299746168647248116196984806162231039374885726388920192984709195214629239943542324796414942853534034347204558573414263793602648905979428600996912418535487211859140279983041633441406779892569092185570030805241529978735604493847929171940105096141262688969160575142383224759051139705241276985854374170245863961456879395567077198889395790132378203018174138495567654519168196267892515937631531726261301773033172744535952621397263942503771394929659295393405120307008564537117442858647673185652618972161421728686351729520759951500203597545198810849471585316846618520366822680353684282363320254555363533906624750963314563213501640211605961000588552329665108771885704508778175536685323719781135239799930406514897455438522436047939074411244069342600525101611952427104194699496407480284653623396565917273375929670297041406556904164405539138383816157613216167938605979542410820970181467505282868919809218557719600973544302556322035917622457522025014550073778796969168446752908100918959509094619591529109111609855822849122768730627085281365894105297034267551829270080354231595952576781802237543656897630217216537394611176592416486368064709435860838583699740300783377263997657940033626060090889115607220076734127276185661446694887384622391018229581638196205593983271054011623295113806146460126234345166276075007285760470691144492387924135692019106117650432191490287543455347343424958340282292820285582989727544009094646577863720013154433854962572434236769091987378486960034862373440292591326754770478662686689673447581523030243989362612721824548514904057514473248226179681974121744657871878283358650058110521140084649976492825028289464176706748426698866589008668796378303458976119356317913314373339984936830882857189379736245526740486262850782800291598917247403154802291385759447213594237589512107192163992213185007921646625470756658213779054089354616022432020684026924105272523180604938552250228224681677040855998374090027296285298018171443738879529805819662951270962659472008265047388271784128287058731688788143603401133387676162017725232064682187836581070629261411654273116436389113695133603243191050234329356020436406612035984493566618190902945577881257472741636132086110373139177401503432343269848823506616250039143652550093012815897145493454440771702503425450312465214534885985876992749521766326795563359855849658917536472187263628176608395019312100900019786581404763105961561265164238227900064711954850514764617446767768272974510214803002544037965531826335729365334431018209620624065310284249164887675393237774130328208301904527283067693333406479650967310626994752314718420740359635529022071939498148002173945836666941667934962513608255444342818336802167141823619632114568483514890124257567969285187055915776539219091561269676220131995041275362453791102507858714666184081071325981814108956864807817391791971595595323244162024479827111932497711160624283740736497775674427361368414313431802346061675240558082233040956920159347055330433323253261539666394774867858766680015550453557210787125788483187136622595470791211299048778078271223574707191866437604784653634752105810469064883948389971055995678754962099655658592948517818380152882773472612311778919429646015091305260816626332391381854182760061144933765100532512831067069487608134521352934984026502380192648023225698160038109791337077903190474788309675610906084672292007262494301946914590955557643898995637204559156003033011149134030017610215051706988672563768526300925672008677078481235203676667135658017642494287211865436406270830199066006792511551821182758499120918042753601851969285111339809814342776238163416920282822504936559904325553933147861100996689416792615986515102329945390993506297802828059528043913880246471744248477312705192270742635300271087888223117457937842169500170569080739082945418269590536444132727611073876887169984079535315729152241301782264049890264598354942423273068843495597025271915130254701833750592030973001753055028649179108171200513235414022033442652001164064341303590548101046500122554280760085257563962830613591864543129226140034187272956601457555731236105689788643033153486305335800185358172243025342649348246940377803674876712191132323109899494315494454956273857756673227794487203567959433612266523786352663262689932824452357505972736378172232328559184744523555688987446981905772859910096496929773671911382985296863805891788597999415238607847038658644985478804639351398768604505651544041803296169585430935152026117451199293856336323280737345914812109794992209220734439181883513267968433948827008725833557071105015957610979633659438548692932399172034544619025170079719215278675676272534646029005031038816530538012507036135489714808589188669563016479808940771679430646884053844246656476993656336536602254925946302902847452655979783406164100335803542396020518390734736346732860990131459341337583300956850026115480497156405019967584030756539884864625557856695176626688909117105546762620914504297662448369870503770341840439079985733379712103559264087276080840845801849450771573685410093351230313612114758772866242013286359597225302853393841450961923693925759530352894621519474368840687299437694989299347990072546812248389659704250083232712398940538528816091549902123205715461344308931595912373372127287902903146002113205726676320556661487986665286391666077834751066992452455003131088823542696702116912552231978285037372402030144010749057383697734995117819827185027125342062783447429755756104306483630850201646127269877733021600677413726741660985977141019726962530623397673647496244738298561173251034368936084505163649166313307617717570370634535561033595754655903546394236628168257736837508484173400280980345329628429197358460751720957367377386924986787183981023561301350442499150087552247002469807016091394728987241718744762274576364238103724095949837695779734392493415256649671306245707943974084572402864700720601112166164236417092149425221380658535064290590659290980146104420983591101315628901463804948201491595855890823250395144107680114938168167965995856414515292314581091831823154957191069811550071367553370267828413233068676371557689488146316443601588787321523322635133081762538665278945324005986841719983059190170254614381467462753566623541586090903493258474631501442439272688855310367389240189722319103167490832419656868756068105996794448761232334625699064761288036558421818778540920607133508795386382434145154356328046941371163776826367231927774343715564936721110706866580247034801428668007203474248242163405913979277227119479008405485111432576285939152943100710953846723818478141137520526006471843324193024610433748814134041414900730121180176791251659679358866979485988695734191694376013973665912719855943466893923569611438535214074308282536265030321740815240588356566952092966367144175037976595553516457345857295780764329128180926554510125826049776351267193349979989805794676060353738696204108228792160832851584605889296702395271652543453377636724447430878844598123746134535417150134660344965852986320496195327134412619198370908674515888298585812675966770823499086136572297606244863250214909621736954980681727904209793724014525582317010937158671178265948156803202439369833335508439658981974228731000949894994949396559540492990221731473513303696332758148453867214845836696159326797785901143545194707011292016748783986417540873274538793824888958016853897112904400900866937514427458039987119276207016141209850122140208714536432641807164927173495578342341049269839975598190465042366013370433972066768362134963264964471205188368907817209173591508291905478603787742454544825740904045364414277121902464675411692621905649303874050635577135848044106474468460305347128612044391189711842797732737303790071146226456627619588641546000195155535119310749100907576862918253328453597602369809143043446300310276981367773027294750305910071238131917471566591464562577416001807538188154017883199429016241427337808114755674638422139838138491308745532050316206516169657182764031126476325569060622640513196594098020978260255061486838625305112727872652076117737721652924179729116831838707391905709256854137367646058035198267478727107910139447188614899252461865020171603138671497360118099322263509357736272644497081535287191517376420799707098939897503074649545352308614724931730362725382739032754631969481645103199160633508475106699059816303154881724269020396815359222538224551171042116640045807262239946552470417868138664247928223367324634073342143657374968284677239832612628710963430478556548685720077123341354983653872438448898523867536252260070363585487536479062174576311430331648224419917154577004094378647690914033592107755218782541256075070045106291576461102977929197249260771968028251759115396688799015587951936926144281990000652677319410320496731787553591434650594683998047652130156792570807064577000856374310111026817494436780651793610096972109992616702407062304051437887517390956049383159462154531526639945355748754029017667324651568381437276378825601939352147847245276998024259532743840715147166529962513177130471617803106737835371253763631266296760457773618762487130081273322842499134470296185026393998397858074488475376819459451315101078130988383947536729670695993995838480290260252849177091761087508436013168838593517077786259569380319078664903542374675722874397461526757535034513843975674550845971831582886051141278339870482393227908129162100204551959026107409052845055253377093115411498086202341079513747296965518952890231394528058787940165460909721902111660567325434198494403289806613454516556208797735912994951387154952305682893698019873832474324590894921142577551294156845077778580686406271327816781989702782440736605512849932972041409069992999798255591040483631909283943219381664192074690190310730491064079301398844946838221932205483416773257619490583050713101355225686184106369523098434428833709871060060929308705078751054496553778203003684552799582299326453308742858173207586098312719294912447953389686267561837129590512402863714873552520322954798146449420401252088265494939585970680134792329791364003232713464305665499073008041270053134483830754458876359329826077099351472926106413272705562687776315357928705537999131351170321788158214029824457621972886117468122841105547369823612319031240478480550520722843900270680626523789507784421925183541130800446981115063768974393124462960604080500295737541394098066030408511967304670377446925116691551241033257439838964557720833604665199121196564212503729326534117942166813527677742687784088920928969768740373927557267583508126340480917968455630153828609474837913179529042706217663212336319221807754486057846635841642645068510837048532542238043487518820249151231262094701172684129376483798440756594021025439875079322650655063402735437098794115118845870331051695282839351254007155761674652043336325071658162474087621189927543993001315841150546905569264246925464026761570953201860795989158855951981542559329174850184872662612581235672764296061181555964950121010137304108751712650660560682353665573872789810542626190673425161374238173890156269443540968025229119706440912024824040145179811329652344960262133871018047464083456565777639280006929473313932377609704677520866644610458331601077632596922458199769009364218178051726222960139046027638573946560041019414746541128315918649578263475526697116789771210845608115050124335782238607340918071300943847805256487157059444709822935444546120255065295273641701667695499201646640894241519207605488723480818526615947253581179874597978679960965797819360281896003579985891089676904448381105559742962466000305737181242547092586650883539860234573754445063950013547920297509882879562342482918956754690369528878767219331496626548960499160106846080576409677500223539791551415515773691797908115881871607906659750187024220296884394422288643021138908185657573549064352676385220665548727683760509477576956544528577740521792954312862524095962779999778021467115310842006601786486610539997153028604930518507841956585524104795582098489642477122311829909178600437338160087394227349392233830813723518493075900054322049869255844488980407895991568460162819746858214864598538316670768273524767920136980353085936575718833429575216764227762625533309328233224225741022597940006262925525158407612166554336455967087753433717123515286717789585819177272459248990033040004564914396290026089393503617901072750945639478413811914629371675930546869766598819666372232989870532556568597658759736133218263181176047472673408162796593053141710602552445279990192063512688043391933948073678381245868434518547861788604225123922012544493660234607210059075370814174078690514750251059659507503693699529677309951360922983995351825645943578842501692594486298026003859211924802816600711287037563152797110897443334704764034602422301119547676048549769739438217829822676608508493957621874082804551212932789234169987723857316214527241688771293921675861455684444898583553734025772865847871828728429947697821697376603906715314737572781452529060792441650730572600495448634967901560269154830512771708608644750822177542091785634451306846332494690842540165731073377683658859811555119467204556741645976834010691956487896721156087615981287642777525455302100950212046233518621345152520113260106446329544110414388403068829307820361046984745578040531304419688956550826082003194489235396451640892723729671760836379082028097456705225497238531352395161533969631372349004400889422353137010353123663656870598208206607489163063237409889817314741534262710016146119294472350809270958009954080150546165053089416740137033303259749264871682031782999791578064819883571613839718114559802639378235399208854281833732680371194879047445173833681481745001086061025770800862502894264342331589130338969631050154461870257843890537123133749660785704048203597888097128163914938076425845251610789357134410128999375841379626166843736554062198130160234178012671761428415072134557710121243429501441460812456066376460858739783929570888212766814219113371602260756878976805963854136429782657276265074310240827135494503572744888966555114624278180710481399708989494665833724392662271772736836204657311563668701369113474011310538991778056182822804320931064931946260302170542762908097601337057966437118161235837007736988843680124657106163143577885352341050898049431224369137140733213769969272015745865162910890233532996345422643371206878352638673718040358054701111229117349885524295806917648199407281314580053667628927744328306928850508430164331276091446115942798790913022627480496065382110069706107110970677885501660292562862813174925814405149199316659482194633229416652664308589493271376692587959212681534070078781311746121143659577513847038471851818530110119105244087852554197838645722201958208823482420891104955937123771916618322422189883544694452871868611311451365608874537193070859414731502925758997719466351541937306379335855589562149237619982734556335850226966179287718279616416118339086013933698539957841283014606870482312739711705627051763470053410625770802270747177621322219076792537907836442705796608832795200217681255558835151726709611150544121976883610947577206428022501507968009811653836750564741571220646227861021426386320726622978292653996771961196445858361783361069391165790328614882262494396941597502768878154403176141260217237643198244677295739385545181099281116444098932105871145840385294485225279190242392272761705988874025676223981191917779677940261367952625837273822825727130718753341958830896995143407361849845783005236461656081963260585703177471616648740156719614551832586057533376453052015184090627321743876701888939550861391106147702625071691840085418413873708609929273544472030381945664741656860285618414214948131290220536775407647481680829946503701373000654112612343197328247014445538618005765183284068636006936435331921993543399583105145174717863853117741980438861056821115029147267869434591493444435202241524323091908709329938977632641798632470707550627084496331050193408166975225863453286678027835635546381076258091676420972181181404148436681763815427289590055244286519326925947226785134954561251471784667833172441500486704172408151828994350742397569031295328498634247704347285659275728621179017163520760621943176590505817317156665123758461551896198883902778506613611122185200569324679658894593762671444570218392101351118323763494558051108365820793307173698928800621700399328137992400351340064456252841222580968094546249249652867811562136472593210961787670070674249341996392985556875354442687191238934308941176474617358089320608129555359506492229184880512802578481414849642328716078559961390264692354723723064350220817920986559719224708173741069523221485273520347066882902207697840579846485025844653029145041823608831931296373968180194450623648927033968367948517554069435944361528612742581923446321133429785543207043021069821215096904179317710195377744642311741225934418723714423266153299087047336276027168069552098636483422375901426601985961698552814505077998643669818351170700955463515663469708377271041377325229926058345884590713687176995725861460147370133348851792857974021372858390136437252107603620525838512152166843567248421900525730101955740009474746832280388110040399319401804572480010654202233814678846512537592138659274568021957222609542918477581869762870623638791322728211508298792687892566551807687901042526545105885706643412052695827955079224458283441071660038169196592414996118309817980064448001577052025071576449033688918447300426799614581393679438142394081483688731977153275169661404412732700219894332613284848753190201593214208039527853565100194416457100937748181991926748158479082196530912259609190469305775506967697320266685908726132831553227396365195132324595366941154444346077229165337120303643505496904967957548533471416322360992907277548834940422671597506220863570691539545223509427419843214461277968749470060125668223994845481437602629116007468770214042044338675263919200413209519098020353593368689679105351466976371282290831397189589307208062466200171288673157281810460016504558448148571637627235093949649763738934147981448404698473896893918987558720853288992498323743654257799333710992536122643661497320163106576479297179527521502074579831923463906720315880230525659245309352716397540125111213552280355716766051665095593341239465009393260259777171936449186937999026031189991687685762307389171795549236596055034715233986014735511281565293927437451380750681917664298050912714439290524910135106182542259154331007349305209330077643744191080120828567851048761156368197510399349180926901569448214505359646646380026415350978444535694464054162787963971595823862785227459587772490840619357761649102712525790386889989831293146651396267481953411013148993860890847742667320880451311826086846302657415172319292728246147645185984110414496253138286091332584279521158346572723982568813202885072004544973203003982372249616219934802582843363424565459929622578905499573479365610940558982841376398761671703950978480220335976662853945359243038328931730076177083123465507417723697501704591756448849269564506472196117475012991130737148907894056771597806327809791163453481792619558375661177954750840674487666210923150133929043620705092552426584328230400341738380244865699464167699037229403301707610226310262352328425841070057609614838799433000250494754152420555345313566163531480054277660696614088289851839002508897830472983229927805441750394886714190045874916207365715488621099322482177303906792958216343295291144106081459490043220400454603239319583047187089543749074795866868247385593074357610394503738988991173207283379537532545975469906272754720916124161563528846849968181248513437464424690852686308011500716465289578751814041473007052027404625672880900344531974771698509322990549072477495509295297779339882267321406241050160876701811284857052712605197037428392389509450818049738676914091027309425113912074953038125968906623035855936972530317990186150184133475682754216166099511374848284604969221319103074161776658159740554641257904725054147462270831519450252401321116484275301194448427833199418164391124086890703194154953197622793576042835678175107406363224009201085399457259420838547854695034884825713832912331254904827100316753714513707369727404809917965098282462397824250591854471719241482245850936572366045824687697478563603916050964670772815654634758889186019784885511610539906815146644618334788728777550777566256842731170701450676492053785799572408804879859016335227651977975274737508343624668773072032320780426935918244244823250862015031742637955503213702396368051090823641506148969560986546321851113799795535704687379277838518177224470737650958653428967774593925760513433660787489090803257400726747051411081741962605286767494720564695902757139366765765001418191268237756177539914521285850205996954222961257067618905583518811117914640831637735687217223266530505610770935243742064670152507938708646585901294518366318013444188676904268510312106066521558516441621471457285986196357764231360657956000078383865453940910126545883649449344647018049765683592896826387129442981310570186582251091534000186748668620670095298907560458306998383821716565627741923251307843586327724655063119574643709420663710788289353693314565419971051322566639485367975111626034436308280570536350453933230647784323219274830719345569876810392599034636006058848770690803217210461936938970913952819666631277592712405705341320750027957301126751393745768747751165031493730344758345462644705198417277521078510062578038953680298217230306226735780719074258985403825199952789302207715579191592927557583698623391917325525407086830781171473150218576410536405939382318902233432496586291772943976701788239893502017203505478893337893154461443442153064268591376098255154844859604311583992825185165774328103637301792336934525554769067812081034886282270735848443582672449959268809658782009078355609788625029796918185467516771384186364224220178014828354838042733498562214616631339223585223193857663171789467141440554593599348683691276386599272055559141905526534077832230134942946623722152101190383427007341062211089662601919746096542009583295747975868325299746638388904414930859194266144334832645310010132002061157303014264438634512042534943800154022956132073261344738087068664488546920304183968350974994267450504767993112011859809933545877442257344467539276121474675674494679240536962224881728965131515986505368411358538145359032134603671274239857668982923901305572547585162826999896385336957339960469073907115782271881114417573552789893814349320341959147889926459970385865833538737470850794216799596576154295802404912824381915299084543825059297732070228972282718453849366174665552971736405442474943432279437708688079836964601158141253701912146524947642350143087921760917355936023491924992462333199885973554157782647240549193890051824959208630568790649740141691853889044217314626138726341871922083139705846073057513999391226177673474251073597886858785659700541100230905041699850961940346561527816241717827763961039118975104482608289562891583348989909132152108649990273295703971321733546604404063722310733092028385352227336092469580574723293745397846530273073176935525088078681713142128042548931341795428816185589022266792928729531117143520017181671410198376490801666466082163148518705997700403558802266817841248029392906145072951727588114897485488719992353868568822905911155313820065897331039493833080428489617960503217612116923429297015038435598216649140027764833659686034565357385026975045079800213108143295469764162073837825083274311362593124947657428364250136024974203695692685778024546980500722431992094668525427757513437238573608655229052631710415680053028500815762595541202557128639458312397718799641807165305922448162989414469206028546731740657475167970429520969063908073911411654704255387203098448925531572419167828964540003699706329591483001982554391030920378587894016477634860065246520847866960715663408883306029262586045951550409715385018057044886518172386271729831678021125678523451300904520712997642424009911366781623335692333407450343362733454384465810627380350465847208627694426923288867650522162321997753623456846080129890667558567555806149023192391844830944313016752147074976481973732937577360530672960052966659462459483884919248426599695072729558212542548122060922581824348769864360272136637114474988300414352852938539871337896742557955459410834605512069499534273428709879166675888474532257593990215770573285987696796056661826623385487427294428837283904727550647502642464906566863752268744619432679108075765129283847065397898944666637858912092550168752993049974184139009262058770327484500902882821659664726490679725112462996865532268763663945384732185300469229143799604740128857318721730136053550065931760521044665711174545864287719277445602977472225323862007431369616040087358795071170400833463860068541471842470988232655116539065395724366039093998413647361454507583218172324230024075734160713538467642585010157386899284263423036793779068884330947226994622565043732750419838146595009666390936520777670038430381248295517524807251437437435621058917385979237390863769763621613000318541300916285936855937584517870899229662309077778977178766885677624106682045581290550670178609367119881426142339696612901865413136904915390741920042401639986626336973873694344054483062817033605107349074105633980004510334563916728467268619307394935728641525479622180242760263769321917284922226438787927222399540931796195653967790890005033028129008132871858211132186684611389887260315892848169393253020356154008327163174223986584810664750941290302691866729923588935905474730164146101696280993232685322411958041901482929169205737389864834625255368389443581491093069604704139683292737289543564550310214169849225031453705991263186071834785527281459424525269526783919292611040967504126809841740204722201206688615290329473755430493860169494092522632630295104417915510777880863641984691686314522634586014900403400651548107564448275479546433438544677097379294700304260534419814544500471937582868966829337983400457418746867772284761347586701481294777677417397099550448221128026891835557503200347227060643040025998554318164767080006374022038467447426556333773751690190518774765463892079302941033897236722167051224818626080671432215654371779066704173641286024401352067812967582993097995633661857451588150183246397317169773524480342247172214604391137745621197538460043054446496482705213600784808997503058053021003885136898090686174726794152029573753226964216127746141702116801562152353423488927855764411619846459293880587472456815088408629225978842893547134245756538360794575710986273503676017298807463497056724779215292057601715463390949907529435763547487588579323262878788966523750541902442980866163117642169436210708433282957664361527386566369970108124099020508747162720348138226035693964963901777170196480800509430495097145931329760012854649774669295564288307063636528930772305002692367499132784220316344766037471454672136973780599913141112995247134223031166526640220802864832562989083352435653318381627710185764293128809972470401187588750756636792570342204379886280943661615834594389431816381687860652884965956030269479998132032792962301327935141477660367491761970531942827990519901613455971187123966572049060080010532913880475732994756841134989990560430830727853613640684539722469002736435549262616201094554262498964904909464699333841916484841154136056941358301159691535431610637395258119122451538085992457593493080351787226479340134764877744459392192341544348866159633939494175019759026999111263532011911818268362483329963135671461808957704446138202085627367988377038240170656210964622967604369601163771289330096682811329910188087839696225301593248278169296377693576120012864912199427978151050995189376827608263308311609359978299783115692919192149346268284595682411295039682857666162831455988514434278939162495475327913943756445494077827160883831435723663843489654099675963856727750399607296822264160698761363760615091130212133389738371943745615232741439071497676881353342465963737072124515145595985427260629415157893803691873951658656718362355095031567414090842583408295169309642964687001021250905031546941278956417647304177907178696425793670807905765008994954752113117609646058357964461780193496908639767875323336435367983779702379363818125071997007045164615203237389265001130433997770148045788397294205314545764167762561458854309158844006510776779693815132361947748947856188767657202598927097287277336684204512195952948241059109930480740072054177551100672746915449474279016512423803671374698096547691779093814249996565477708747727908449930921945300303617859100746264484783280263309182661392244884779532939434979218649397409673464295432133269456454960852220423062411209321998475152427623775266064268456291188382643023943513502101879672003093064438116139410477285864728016599081830592892015579595347101660447136761005046295782135201458317869172895696433303475526615982456674183814799573296030413909731728306513866263346655514060408297569658161321440141379971395948709914908370380258749499660025699504006276096873214346789190187183867347362034527146720637658726019466000991189302075845466433490864820234361551793564299437079817780409447098280519435947655926262866228821080765034913973421939761340916223452330036440212698434477265850716240045345721844459617613971467402443803369942973322793110941264277661945829513294043873736629802163159619371026642354351262336162505339531416056027558436157042968863305738811221415701815450331678841156112072097564461938595316293260447343516707677956872551191269031062673238457565820676563933358165439275694458845752366538893956713647305148018060259638516945709252831157065197435309957144710298777545920803740028085214883452671071517820562308690843234401191449465779310708602074448417452003438521850352998101068379818790165164715765267829214332061492771220214787394344758904933695554030796199354427081510767087698052656920049015861215152690622488489032184037763190373859510641422576577143548522255027762946905325424524572986662726003744285697371669033445316793356496470592335152496068406437352559891007735817620570947611767742462977693411936100116019897412200552534842986340660552571158738487182415250385301862724832966787301967981354034415967070436171576556181644527566986932794342964074970399719869100980185054917963650348048746813945489330351286757300967327574791363912817418969163469457835547684369540194449542504509247355643412445007994939928939895697938871605038252094813150326736069452472987112699266908790046395878337521497151082968648354170852111788601850721003587648004025187759360965932101240778460121121911717669322900595192352278264309008304553952371979335253063614727644200822776076778400727401957113223376944929403671065557166242739601424276003694077050322205041122526392153848021178304241088613443967642315578271770841497126435584800959759830089282829382475704613854028172043447933451959935491104030225860435398716286130394432495460448480176689947647019490365031010121141390708593735855875522277002404445440242249562937000659765467497835112726322231215221326984398234683902691652583873546513652105800302298896388321856654413347942648778754561213114610695785996945270145520363308290999926540789025766301031452182407582562812875985421633151253261366917349691146377382657844593208297855647280087656671587079538737132662214046246388379650182496654245101919539502342955946855385934219692849281626860283063615108346085627989018216438331211424232368575990542649157979787984124556279118239134902440680972597066784055361939144587154827600809716813897288491218669139623139661498220874316012853163372570312998484366159646207394073843651088255414664809704674973157937416376440683299941242787774774016710805076865210300260788448018745737473035326543241490938451800449514076760455433086860038338211424940815788311797526161418542316362957649555699403279623057283555811499772898363145158793259980152227724922350990797929039991947289847989924484559660185574483371736798521050669614419770274946155043453612997663872442352109399156618916470601152354787833333143723913221772472263387878403106146319875491831784606138612071947033958739395775649259183566766129559310133979963403844822570020499436789234492630289332257273665816769588790380406262432776068449145990985186942147275518629357314534478784072499286336292577469451622374443535047875275416245230550112786823303923083431578420648295940208123602022254678194301143616175586525115329205790657812201429972493037732171439070557836923101090652294715335581924010451056391527769024037806196477817986118967924008641231202329917116898825713646510760107041941938344671310607298382849681819473721672393266019324934608233508966413781626074945794699248850311174356174819887806957586220811173194383527284219136563929810135791237584145001789068005317696514608106689715588385034176177276420220638307068413440986826182792475861274884567073022645950530049003224953874785874376685949733679951568731890865407423965632053636221505610745583538446664250667833626916897705496322815548827197946936924235868252792679448509218978645045852519413680103879545687308905061573865906859901106095416343648722115371019161770192381099239083953921552043514985581171368618487197012158506142478306403992422368708401335841228190250311984618210263740024187550904258962432193709203639567970475394761597896485826197298680890495394217964156364566052110316595350986087563765332004347099082451706937564190392684986184534094863528586038863206115103835606437292916738929172925251974600410371328890011595257798218909005585553215124471966244015449819527695283142993444849012403479548891315371876609784957128536898523686715469732771652372644689337121904314944284587011185813284043404470920158838954826368283019336080259655302138010320129843106706809972899151616208921239458496464911259077611286662661296065779663603994429882676125975586823833686299648359921759915137989320004478913922207920217661094852449705321531720996135912763597455576693402565275452471295403288770519742265678070003368922078441613517478379545074640563257299944304490132746060422083472328963409560771852372857980249786715715562609434393054695145145139976369651432777922908987578209169892313436483275510987359242587013884371747694722664944246123181046560381727001612104753366152672495551003943488010463537344973278855070241347533091631560743929081623037406422396807842768129475957327985609226152626717583624687972422063202653100829381377559700076419660609372705031313045670061158401208537078153434774000381599587476692153257658277957765588254225518077483035819981208809101589871903839594791038499922407065557408074190430319204146104107171648539772009276064302215418480519057681443348890511782897592286747072202362566501801089982758598504885847692852609534365424660320407039023406655117102806418525188657367603391616808711844190718554019640451514403894634606250244656265320112305448504376387010041874456000064171041127718259322754058260429243094689819147665520631280706384572559497223536490963318564176603056588554941046600775450335656131531177891446859052852168784542201188397828228588165710181012210053332360623225346881136525435546424401213589512720048577861118027387520965586298208678655142883851470383196638845423841710222049091109211667319693109977926460960676204052337759311035590351172773618502282640456714619878659444778951684208114661253071139313159229517140112096207576731757220707901710027304940615057484311489777727367956783239102903455984656411833820116566352622534772611076245870028226260574571009266837882434878042570226967679893196684389825914110481685277722089252652940882149398254072744880028078642344259264026079821132281200337419336627441226196898000722472086778360100973467295407590707260208502317330772691001964235158842310540420391643963955557933312345374399403165939175287158913308687071940737571630777498909618254507667980316051538819139699509175828304399872463058483493077775547234267489757760712448946891649146560773098015400505006155792245090480918247381486220957259951243920370323935755385699486730131441305996943532693160248988982988548890912387583265415048700973026103179242275834748434857502165111675937219567847395995567509042385849477534982069087254934619237101737710033875625790147126660434040670474860355222118315090057498400865008507969733765382868190299348915876503242426622312223105180414496197849839217500201523002291309850089785426957640851831748430988264584769869898068558197014171988451137647279939390885723465724314785959749227112732590840881898702829973722960266020175584263037498448982697903718961868007649248487645997607646976192110145643317474362441088236850960477605297172430703744762854324027157337272797219800782059757751136678553644591963875573026450628964271227973577359319518102962690818139447971852014647849787872174462822872089571902388160773185273810450477197257373294903290951961544164785773313142431762353662413602567231354130222060144475717416706973621663932603930607745902611289115052687990006977645390378157004972745332430970523733143831968703128318908872031821174643583640417481254091200329425669724266613319781525274686556059275581265156214794761545226957078721409108262794484061330511923101389264401390222566054381475421630038046331789020414899387726636708573197536035866302223570284022554440437294389862174129475384045585250861761670074656226943958657428542807083199087886908994355883679237837149948286607675850196772170206882674658197184784849382923382307603891368844998539020848101572127510642055974764402222861701231964757631459086777370099501155031269412099674084234646226541618061109572220465934496896832160597735759472646096369145856651538279819540272909033433943187313142373574469957136071553824653804604710673750870796256842329577893533400387974724588539557193028691164002698830232392424909963485767910938664443798521281181584877828094717557640760947996360454953795636612956127938107839192313171936375417583568287143394375842515742588054909925008643528006225153024276791790158408532943133079394943921644281797325695999654035961013598734759333919675654701224990573750921492509703847262808558201637349279617212546062844570800067506380348038264382681788511314547233251970907428664928058279705545835823614210010855916334298995722301094083592625223872280605553436968555007030402384137571002883223801508977643844135214420529987930031836531750347800977102329545252836337469998822477043357676352419166962836422036864138661018343227758745110169673759697532588117567322456002340958177568110866464542565815908190780372545101144724438873767865514444294756910753693220696664550543262037443902256487614450170473154611776446496316963618561112928441693216822262140937243644018442201090434284455573225979660082199659282721955265672796271540701088657315824653476041087396117729065281911519214067064657787104742865994749793870980143119320753929055054896530310936420285452301022519216307152569926408324525574841845677917676192205561281617884799435546503970412609276162022604757177076263709916081610044264849258841961994520110444608897165998040178295387076325475445226992059853114081488429053506455020821990495290470030856585230061943530928098813827605884022362176777132854937526579221541314780334199079939902496181803266014525183654130457058057707142427674103001291432600712405162986327555635090072966335378278299505186681213578864905195221272790618304063273681141356108893047485606058962083038686521162051098243635046259175936661793602607402339193581355016757489935134177127696115503345887511564077458413137616356669766095431848101408914120994863365207202227092236683499540567848425446539742981419791682180385046944397441781982451822574928275208037109056473609334290363729529490541799130926908010337623289161938650650226076420236138251221719316294973505905599039946410997842379473260637161159603663266448560811797273222594057803751320406704734592613639693276161533863141869083579818364040943974835625462938039674171869902403846910852745675666291640652032452562899622896537194531622824830562755716401744592942794611379718543954892049555614051376188895321011773935826798859725851313207942807195584115583151706709398653182681528877862175975327324371862147898161683142562478125049031107000027972536820943765295394720442527865669439622727074796331043538569072654546645790649496523730772342469256088788314634914960660319574285537547245118319019290042586830937760512058383979894206429429268288722977405494145544823511389022900118003023513458710497656248688957885969154199890228692998934863548731752618610257991606407592403507692470043282353431963262745535464638579937736512575704487008475042995443827738206540461634885300860544815221373574311565955645979758842031422734344260260669199488593940645400444710869049107694358508455704870843930026103866942859378406684358346970096889588215239800188741171876107690332019085217759253638039532801762865622015440854549064431912941197558475669914291555807010255053115066072237747383509641826199576788364019532831919713024617314755135549267294200110252308579990712245318976469318365752590807261429605076433571194421844582660382662926113502802072101557091269742754424881573293630716302378311801782564447184607496326038610142408671200082503413667264366956333757819630227860950113457723688908437174047245559425109949743867830343043091945934344064865620495567626706425754900873960238585281068153093355897082413654959213941421268101177828885515070110529807086513111994426226067194420061765142227136491529221939204200214097915194016898699473322649456864233356217695689411990316929769394184381180379251869406437208740879483240795358423888330164942883409044660589752084564755172711257912893268343859584790644477659304395265443076643330495347220174964944296819809903851938011003761141583830644721892398548845200499932565527502210447857066930085123943340642231087236124066144188542119803227488118491438475408812941134441518774064835120954221168700420053715236272848892970799730950058196537211322377423231599335962788491064281772733862981675056204005032131157294439275310626768541867092319578205911611859361259185164152071706825979759533173705006087240168596193095237583683970843969704196087031332573908809425081485298940174118393844353678233118347815148935303550324976426633860551866030199940474995052452794414242540567551510253024486923028123458997088929036281220543370328665781708000753913388569469043934407097592287082347777733294555798618266753566772219639422073513393607721464784812859140263670944568023218549368941575629933896303687314851705691891491048414522415340394414003321818339027504089493009885578049343541360902083030324417034090135167848552395404814531141052100031249322429517801037926758241109975715999680170644531068378289626078068296212169360994945701575156628073643722580788674478285225734061554209728095435742159411388932223906271438368477397498216179832079081993622445367451221551868014150639942348031691762110628301688777392875481956360078459716077987542402767155641433685555084994075276579592789115545998469062003232486286108369457656758277211901674884868295769730249574535176273554236480326080388105007455716937912311005847826894117518245056108866294283240963168106228740400029367644666392959185368035304566765415898496613065209556643602050407120012811749064370404875381226825221594018063961600320923975664387874524440300287273154574206935588133937628775503039812023757250242394563656859896719119995501483282357562046567366613168789641059515226953564220044059544550137597680733358504803256432659173071060914708033586673967507716807481949399471241121589697049604383554412670368823305636316432801864647549515351612363380050209157347161586131691964736558859425128840882153725803733465182117628080908319314210926797566397580751147442481099702916269481146132494344040312650919502398261035400969554623688268044697823900176352435796721931657149145093792126395593485591647758554221294256118474555822259268224893534688212237354967403027972714390187590165149651051495567510428659438113735443806924874072622761098454619855115540371044342641919789690477035142793402458051434262223371789376946325970707672178123190778392712944111267043519416824776679636704897661779940339934282927008658802476281963146654834675812676458599345566947775594445182433957682386685453118596732590461196846634262867179353270418741952460349754191779658989277125946966049350187770367997006653175095226493746965062501673606178180847237943833268972701764641978511658858855211468098319421906766346184669178345867896364515433498239632435106144189077305395162672050077769175851508176587343086514672508361907017185667939366983078859056708943379829229570044891001300707210043033366862827236039703562944989620728912840853048534739970855315768208412062780738117660699663097971716679585095914952507888387179645210364244445984392541891345358288040983675552370489258476546733214079554891028152890921819916910078871390202821376922833171437249659158550188903254939802608332047435751974704432582109930210281519044595148140102723955536775578302102880329731930521920422207227777186362112620680086576024058686367303161492220324879748495872263460556713131263230463954644040238625453989423286913967307204746900082330511934025396869857385758200105245216752671323056590289260179199113526435066288404912555164349621901918658510822010061695606078200575627025403934272940602568328575041758784282180860735536625224916741684496452015949173669661844952262276161907316768435238873767004696376317863637568181286231499918420463446157255161921620812608127647731160868317042530199277241628137738466447748902356824347431755934802183350170137594220709212976170000340964945513428679286762317120293777457611513778936855199458393462488825102487324505902557556715892567527219255569645992617333490986816136758231980372212755749342543444222419164248770275188396308566488593496254783385961641517161286131832559044027086545679819276305347897139580576697356705150774790426824639452344205277324103270252442192636131708378278747898588872840665349978645093813747139703789265218312377111025125548273749395242142490002436160218352713913174828600136470064998546222889035112818673421873872150315666902531128007946935141755682032157398912517238306415192128692863158448529038600795702316566871015547416764444728149181095493172035761823389424550677557211969924892308878230655123454429045254861210024202638430013800744208583023395831886915201821669561182466462721310720680047863957693865623841191193455233488969650516931522452823663357662456565138712709313979589001832860687458229441011830774464143700656333185469600370333126454212894039331767478031727509324217937610387678687608753915754259372437540887466738946589859497832941361067226172320019457853869559310859100529742326103181864452139898088160222103600989223310584078902298158714035058640622332695493363066336572594050814560713932011915883681142046382118638170566511620048263559895083227226594562643876466975426035819891171610281074998470988614828947313995409772879564090161370010917772248867918027088391804308141127122154317038817177621704780589371936658203467145743708514841534678437509646795233614183340032372208555847778318551313780868874364626194208501611302953660166653937600026068257124150393773133414508409000779136418325498201009302522796149967164957669407763441552090065453028078923195804943174242276853988403381329188384271534991930989293447306970444799198506283862828243789395210390595739774500518129227050872881486906662539815229147610013415293175055068633381666444106114439733378017098366969514354891020158869716189930797994486742556290486236569996442209986665280888544691229796783751708863809857552965972570658604587842513553509032195769602092116191861201188808479850262866268244887017780799640194293468784700976457120111565781418515025215900232349199998278914434790707097694266433022857693356173309207212103278768420098740166963449391996943048484509805567827040241574645993371752488992166611169204191262871725906717684625255836604205530414290824989668281820134513578247043025205318857606227737930533677328837504531882584222881372182633468069921585791079972571603362954003201042224908250866508785571353250060851320379425316653546337392631345343128295954036619033061891410333874256995019716434625697847455723943266106662307176560888439270971886775810277979692997983555545388414801453416796900637722890857044115600589058827409767274051446286533508564020121344745308270086425461714347180608343321552484788470052842995809408604887958161922675203734278895952198097181316545147521686139390524122614197867071154959221695281578737697208174366485288060089771573424042331369366269632339751183858258204791084165196592201998649767781332556477506530615105715291723834892538968061435249310064410227502474176919338370459810162538032545368152592736961147716965150294597364886610149497184636956321472088516100944937053779135484104406575875865284066339508335765872470121334727816472916023814380412284176183402123778496220938208357508087506560155205589198864841302247105689022372243041015732803062561279696567155834020807582424933928446793104833437383775143908224683821708050006667683183117053791693573116889605900069760963004266168113448403025976366794601351103679808381657352349852207426820947446533933408721908802155016550811789175571906371798841391266224531821850527284001696420138725504086100041616707154397486943863089316990685914423956775303406336115532912821159944147615055749978110279911603783559571243359121906863488630490719841720871097872708475927387208501482275061784986010953911576174581300936961580465484971865592813084168994376889337495658188890663254682777492338230090864824549844661681182460998188146560544362329988853908142197389736897134444732887638619377007305433656657214841650976906303032993676350476197275673726532860645113304664057498862894328845309600311385089158115362949280790651912818562285672782680582511302701780957957357118438779841976132753656908476842194893563349845363055096756802744829405177141236671485664505275918643315384184833550041255306492609313026530124743048843525819753456113376625692505214095599413567842141926285377922056270234090240222364364492036073107274889875602361080635685704236511804549178340241106945347480975653385010032782860139419299568606015114527389813630414161439023133347797339545597513477273440390874893521533120850232964986835081858780739394027838372627514569694781811623257910546046556059827505468715673929047721320653186538767554390314530046520395545241163514464649191765924804711531710487079624629781499995430193686186379443435926626965447436469514751018083164201337224434185537142164893054347429249777184918508285819449188219575030774626782043110740961510354297496051167618103283638183345828384338300904919549161441391721138229440557780247995781175753361024948654652320450033784202510260419553198028868063632200312288343259559289312640792123930404969382325076724095022951516896878049717954207181141226470391556026381886782172049142312837045441249220830195393749599085531007551317006571520068465014751265684597099361304056775151440073151943251978315459870308412397220639452857983356223437822158966062428656113858388519354622206347429633589543461418523204027052641813620972615403354273727922688879639938255790535561007806181016105262893975317546342552204337899087894774807769480384456375511527918961429377853054566293301108437662840460872184643495937728259662082972964804641376927883234432529596995053445754890059049119098397631873934030943306744905335909883453292743246957250616646932100277458521675515288854518037812537692514974099313778540360540219740309681248013598202071094661867987018452376486282745226642162648272404159740558516543502141592118421589678557612882157764430569429623548727223201581300143576882766261919022380346827005658490487607158015587699809038549168541834542641724100836102124130621436575462156970258857844602443130170314609616757989240289446095768244035841898532131162622566729767524390154746763332542150267422943258642001268022202661732413144902470716391048647312334776886365852335338431637263580161248395036498689441564160812415628475879239750477535960811136934289304444523843221258436230506166995004451837249457197954214027751227722601967545858065943205013324295399126851769102746532221211560208874762632597360702903306101935623184570641495933756144663255249893849679085035358197696556145809742809393490687714233810399487441435975466819861033762217859870878667550739094261995007626251458010762116352266058066466069315165555286777294080285357847632017349949705107373578228586058396766698585029940700898856934124241965168726955802548330828452775475653548364826569524923115628332555819929708262072010927023169874460253286170730547863102840846868218863532281577355867378124269088913805205267507548556653259278391007757246572088131300749519525312050478481987627559665002109689927063553727298736630248401267244087213460637191558872317426902727119793294365016050018759595854435559852178406580005983809450058085012658530918604375590588066250718705762859782453232769500515858321101283807439095505592418142630369257546501096797214679068858584983186246871790377073059675425699530738059774795964511107859440073538818162131256710974909448487849051397228583956778010568227814617992170469286667777085749665395399324504446323562931524021172601346959487832183316251856669922645681680034902117777047266757908616233984236990752128127978780451025149632015962100278162542799313326418365717191196004446235743355644441368959857495984125520367834749761946110272864919383907112104590924791451405440442948796745858265854314611990039606624729916988931454835135202772307912982377121037480386470036427579158352052787406372471184471151971163604025810466973435680284837279760405853829889037112872479544363848946984357296034864358433040916227492164609682722114684281156439196922109316071443501974090474845395700484103862337982693391678106893913352265472989001378530289709022002415946320273885105733251483053181045113753815960696618374984664415833097848134169637780852289442762444146245574363446508202544088066566090203151660884064971743157426432310864690684332174318860058943856941081528920042660263581260283675509970878929895687596657978000847330156004822578147495493418519039335424547204263101343658531929857242862126441175031684949490384337401083939536374234045247283786480796087942709853609523093509386467431889150519433925301291055835543475727422160485313096886277924169753839849100931257328075163337022414764154725442368652323183111428619937674562133971802291813578913362096689930701610906877782962037118858122756397569835945565840125670647599515461054250774541758238828471184143520824794807318494565569736977266331922969259028285374969600220553362861078671190268717094205227629705850916534782414171037859757750040548949437562635294815153196029871658843277109796252842455637204906542365304257292754483161458188635461601283886586725351792528038242699458106280023454220417999216115491238429194712766204111934736636455856397641001589277282659010831059879731218906381766989210891281404050362874607773421534597152706056606878985839288166616542616581849047114015264112207239428663689316433100401939694931223923161207606536824946380880066964883479813511931615261773999785655439976212052041215977901464284308080891979405581772479637864166075396113295214802091087333358143481100224381982699411304146620034254116421703953351550890391558719267594537678156464011010597604082356202438952647512903690494364202395025524188204763515395089651606912123765597204532393994322907535539747143249621686685488755580801240104281610568506309394048584298044568796634594369013711206595241630514547445538981635297567034179242327439203552033376208902382660598041713486587668332953052860998480468673918436336022249967597952043398068757115306245837750355941253440384797259444643683380609364908662984536486888583252749067082435528398696972305072961211810349609897583017056479698130531222361416053928284104527478757514469480505762208454779446492779918374891019262253368249754628463450345720494257195571789650944179231412435096877011645647775641035557654137172058077979405972882223948578470141683185765421656452037137843863640134102647896062119395008224604221145806210174207847857117135741499651160120413003056842193390185322499149480769196210391011496839877186784340797052709510497705841300549818341981692670657007861172933635626217524808474623978622766221500996327718895382416787233398502182137119340295852350517045297268441399246745953495856770343295559004780707278552291187371251188825732130135559227149520916222080025355597938070827992708905879454200334060262079551715439793947596687896766351057320302884973838011806050841938095177199934867482383244700618347948265004816948245146895437367651330137315339466548141747030105461785761116160159260062471732430397250818927406197934296666334853535660984398288586744972830564281102496383067244400353672898821220085945042699034913450302238586159426623402378383348240251764061081870613640797663901306453861103950013098659241491532172945504673220997372308077969524040726902580285552859499802849142835118140405463510855737526484578860978500454552377602877782903153126561555371662899433507464694232229706540800138593334981266585053146445969192930704391807921617443700065933759346357671381456755407716166335659726750207985978072733286690112430916829040688708414890348857693573957502561223672103744946287247826508309421319458853378582450272056147726730836055614494568606783225601803334717204983353951423431145336061071250145959175370961369136034925740140724118852064546378870845413964693100086501628352272258272096623095007772652743560893778729458496113842222673363337579620085069996990384539914660203735306897040073440899903261948278333560709524960827464204294419175043476377920514547175176126916855515938368275962251246516141199691313886404747254760257056538148204404238894556269358361005149535848850742688755919039134301633729995179086265688548677675140512054527180980517905295440370858617103442387888989693184480539692679240300922963888259733150522786219364136253398657716722975321296038446779516390400254476868477240219039697161772535895262440033209301469046685531414520999429184386945354367942531157527205086491490564813492006001710407555504822536379797425887534037076851189387265758828800850330282378076213316194763541413009458246442475360918741777056076242146081732258402114066367601266905138560788997035159729597367432654256396591953373924559516456659719614673229228811724608138503909552115869708984111205904757703174532180521503237473210154486544838245670520763397804636237945918090257910554966955023322827231869752575934941466303316435955102404956768678270701821308687933209075226285243249449614648094276167794519633789093318869445239860719725713521112990092913999579112251993617145428434743156314070265091468878574041221995659279054044750984277842628814517753239906775812819644912609990251846058460275488439137999422065627686910016274900706605014963482354442797318006639402662630829392182222291074125497659006341222988188334201896351992648551363690449512101891811941819693243572076757539174825902402117987175361873970653578742201840781061277703920590539418740728418300699678634386715041081065530903914926268081953428216797118254952513547606353737736845966030280212225991229701077919331452362840668839593346687196093012006227044557860703121050696869019811215610703886373524671112175891147076281818010462165915245326757770382220766322975281308709661834013568885595631793750597380127466854293207459286344772614457661880619737060111488173041389278913363193849446173079184277259690059105642279729784583087457386300339549563143873054726644725565529561333416970393680641131923399678971032029540858200825402064560626761490138586865761984701609389502284123244199376568682676580419963634158271910548925362614816296727541317506172523877544941581185055505669895472862724247322261292552915339818181376950346601171226150888770655459768261483062179004741906948571109778188299918193173856420597037845136275292139573282062289762303705255153300004958396857470259516352178119440076124711803536111561802465766282149147671967559440466205042512751669895480931987423070436781393294213354404218621839834393499795365512828443906974295750041096904741788949201036477540034450546660596596506933223420950157901729800494858619097568128732156531447841016829584544505635269248172228372982546755766189628625515176331004899159227465679297446512030049730066718749734368603415816458806616624826877813557789238336297065757835844028010254454357578930758556615143522119530502977121462195974748908030953722821383106636666279114090649453164331705687479547963786112547047040332784674008881927334600542869865823996463503275431470331839017635499721052821814832358186854769647405132737005181173829895650082100718107600676282453693046157584606834891094968369418512310433884877719958825750928651565536535874750312925926903677675453426264335504889802030779148638919277943384762097132287197634441042464014732262514311915721169301345908766429568998912029244437150175050251917830563956946723653627637021598512538872807013116124641967589514912200426323141900668804301983816568803956953819721278753346062332184920923717968822551054736273945613374658790088264971322704084767181668336256068125904462457828832563289296550289002832238354983172177482989694640657058261185713181219225217933944112414465465204426017063538838854025025061848807679949253359035745274045601423952470691115590112031232485215222382035408048582794248859647485562361313179327157675836026503299654667942944106476899289777389025346964104824530210675865018344513054163657952829150759895691923577487672985964036529046303233933804030036753610157066080142490842145229068372156670079434427283506546157250798863882543175262494567058891655970978684376625598726189108454210151000402629614884659289603392952225508872214893620953655390406180090562938407399878774199163969551031184290420341425613920189487694872516882983084831242730595756855129431857353576225374208165611713010991446227417941010517164021397492167124900554750313282289047774415207296993389926459721126852760982441372092175048526794838435467331754004824444712542436414342956864954713110057219028774955511138142276595471608493718649191952587624416106350412872420279344179910995649635597533848879894720337100928285558945810931538425481100802868244465785759228251603704018749959775514717219205976491755749623506230476826314846379003727391622954405381777467765253551275241759868578839243224017939989038024531458744558856650644012766707528864623737955592436947829094967753790226463370873014124520811235877381152227524455132433511248760667027271911721965837276918082240829149136223721204798644738465540832446967794735455644922599917522790539111654302371473873297588632863416422817216873964380992762812687008166181482208646349371409443475724245222626342083236980252473671288074266875345856074068686832941798330208480680397602608375380273272143441683576733395542609053738253036047004347244914498340774868002678713125718529749783562856140983852649502346933307005351263931234772884284213546737581872617468991534579202805968093053070561192501262540091833246630171345036590391054450650311562787918804485400999051711127545584074863754399218671037380236698464836113727786060296960984980026396482561375502157881620184979811108182703263961289394194842848682249254482530440809509497644344331512090128368411939464238126808907975265900518908540542906232785781867505735450568018977640702058710061062767999207230144895352299029776727151351248421742597677968450578262174352717143842230312314075195426464603510034991418564368925348888067427626644714594678909829743772997338964229402952013139319545945507920308690088655917061797386636303214222543971973967933064350257661709100491636200331894176866407160227575097513347506850562939575026385232513686539966894049442228974038103420369866965667197987537392533708084738690896357358879815720763757492564496413057271509151929907604063324292964492242033648119257068911163691991174235800240085962102563593075623149819284758389230449913183503452691855719876446147587983205087879286741989904766046344071366240161810483779437430829313062885855310220083089339014297986234023541755739095583642709764714004774806207596002454002302099569287542686067693355289867071935775374027292933520099424020207100655320662130391159589103277428001276520546417065651295966745014554455617021668131289295526015432747523131307999758050746464903612983444608681308864090920066016111656360490600837374173962956785255875324131896639429338148268478062914796250567270895322514630207078951646638059984620073729523054856904485733287976963328128591742538127746456810315351125393239086714227190970942879145455366191982504283331513471347468905530956312743698870002989089101631892115352260263271384572505846267828531708611303409014731103999350329260265978020586853675921227264126499669163290188649483695901595415320277119068373923502706492585826054066802134044490501867057501609577280651258373008411434046853290793537363089246592468724814708345567098032992479225072296113335744686005708054784212978277499029790840828000213535404080167883426055436177614365555377052410635228503735155118106673378098918002841856305069521051610466949055757009016396363492328344780541747366351090864187452113981472122492652291894803514597330463563664642771046532244207435016585768962379372769729381569156816329792984877810067412073929679250199872524978896031151068711442780692419296209338336370580311671045557382102462201643800059872248139099396112629800562404017800298403296879682436469074669451734646888051177855022278876019992909246527173473404025884601020950351948330119826064950258652959409477102752450941790952923628809756028543664255310678074555782645596925765867831451268209851236256457890506401685267078456457440096733231335954717727858149282620400483367740405846152228708686461357475607412642602536875248328813050821379813784108426616370843690395659764009628457589107326577880463260831945126254032039834874627197043761610945003356713310987250268195899486707059085753818511495734532839853157045550020170230681185602150798433378537371188038656233050909098698155706694162313074979398616186612910770375476805085020497792693840474141941653033677818708659577104236619587601870519597768940315321676961672185892143002547192240020216737416095335163235829680963370394872192032965453078154252075425705124538400752165245012233364168119656657603655486780111203820516078563025198968910070052577986270568350853334943085321010120068879769197048558153794683299219416062704470686302219507783548532482821297777250282795418504318042456675959000725849495469353121921759820653266224341814222650434011589008448226253598828025040494689539379336438070580713256087408615512884924676502486897777001834206453232748366788816993791242494797421701428312768431777151358028705989737243153013461349825683937448441616220112126082283920664229150738232483570988372717313738589404715297266617960863151280567020533032375688207827129584738599470407032670868717015189162569722946808298450774039317907416465155880551193530190211252603164082432354018748473068560591091622060319931860921577847026724655257688207970995891827457206089438152649406979608317343830493973233979397117844160339784735885203433186887950489949568982133173398368991512286142512965075839851016932192002644281584572932969898029983571694867016136755835654407336395343809763785071680531084860074656068046189699835145219984507520739796708880763391921646626824298975139981839802050185924776214248810963064892846763525404117113625536405051002522206881667720561276618071844905064734865085721925465735983511387228312370679004089966128514790724418016080503969953681739825512809710014420623248228600702384177605765853960534471920942080820470418405622843056627828287600021078504358970291844865887106463716452431683672063152688951828288503938039622401043434943130065877163039012017937223641589562260321948116981826155001973857564037350098290153416422170432286918270458470972734485568590469186081398189483666443346416149392152706451725852699461311187422435990749275530661192578590485506581936025324830077513968147705475533378257186003257377759992155978099714286413675850866194822598158367896551195943127280313948389906388392566238836234800921301207931094732970495390093892296157382440265580928115285858496937561283383436510205909494271846505529973036287922050013966124597203366603174423716724965797099840648395518547985029961997135359178537890654617583040556177051798516727288609100225703148582011353307650420171168275399682176893503274174523656053408850865292387921214872739867415863216826432101511622758846048575546761427213253494775931404929590349590568640997898170104363269551392271411343602494732655509527627955986465569945146566726439375660612997177048282176805463399284097521481309796658774035668267324064943731768813753651050508498484943048804362087931347514916625204741073567682154634213707226170025074669373371658734297228776335114235553008662044127819767762879934062008382947863363101982390085103848698888527487192687384433444921091031699008118828511782616375817833416162719369703652112083181908892112497745984889996907512471439403319499219820506730244022233161768066911788968940189380920040497275735643138562568929569943944224172914824558019153307569836222721407122863363229999945508719478420279470666027614495681911527231084245479529764034638074009883455603279051936865390430084884287627252723781819892635556137263992705792439841385357086525058436662696058953944483015225747579087017862975110197023244767662474587407622998978295224001977112530129871104577305295832237121004663413313752478878930986039576971726705044695186759444304768012224743698917489902081735180447965554011871468588786059055163541510086219175062800453008918358833539461890830452373169769627160259864390588904288189320601263839422392824318700098774115904091215690314808321887566748524019983365710359731223746640052188666181746907481904601156288976948703699101934739791051547267845968219518045955507007511441203701300162917307838786504968452711982018400117530910248431097533560300390387712118165641913468310310893022448995792908304078491354110459331202911593288785690502246747886194199715792218960490147687626593755065043876781296419316135726700726357108561119471548273953114777453833503536309387637850130943041960513981516022673633143827953263633830840294107095317037180518050470624164044727626185862253558834601790659275798405085066982369539254977433464182611114608583820848331616127728498993144044683589346179859043189184771228122575319027769502857883658576292070391170820296654512866423723179628683260582589882217131406697387500125428134369026235190581734689834541911381594131192774407674254764925882293717329046236516069829175537917638322931204712610278919297619249244653222744599702836765850433358799758830268585147503916533776492101061418105091657989917883304951750998207433834044479389944939019825448368191167802205547413386081165514098739970847192089887745831366323013815888706750931685152473548055554473651852275693242814753762504239599606721665633556979056265290058299174267346137638077673780141520669378677261311130999028966836897503538919932722434976379616252775280870833907250272722623909660660236058725769711005327068458315702653600137757299435465195320207603939122593558360668787957217865671077010428128346970105312343433236973003042794205793942120765688861804387313005123490662917267834950285122431359678871698116917912921338550024629353921302985113824114935995318733116182990181120191154742427956461753888736225801585176143468736636841255094696090966456150347461487759197472139324212931683408899881496663622230731660553056257067986429763080320654206589049551973272193083699939916499753480558724618837570046967751588485541934147922137610150255999025224886428077404228744501345241431581192104999784342088277826243690169218121710506103138483844943016893725839468064826484299178783508079856818923867829461640404627148473587877408219182793743879430437607929517851380208419403525613528326304549774602111606633023746781408081680110289642520676832903022714055603483161288647562181445155032347543141450407171500295401957169602722204674986716683279658857097816340732496328331406195434945529694629099683480847206747434343627880831899910197848670062342391429768400003753957478360863273936458231783530753431236194011164790232115704852548205917427900443260764950365326838279574993872756713026926943147201929789050160077437134279345544405524683538582088625888266232606879423932895736380171531524824648245045283143995152051564662422510019835520542788839574138286840128491186972759801732636181489887294199742758184970960858193669832087366074178568702596644984393200699173496206610175157860213257133709479550677640480824267864508182551316820401578663868311107033401927170433439762569493729205723642265289917439143025856872946771863630711809134765426157041129182881949995890007940936611200648960582857992285775255039152390686829559381604784682444831075756597620480488769971857215332492879270857267923067934962689943610325038321656114986225354338449186825412481905673836375426321129973059947561361077605277673199012523188516313893546770042854695048309123096682369843462435435697445490038489685166418350092311080758101135512491630079145562370031174080590036843012702342869118998133047498018945339099907915162224005721978318784066130146336138682772929570777801328890741196479665152392237543377795608582695144688616987391553158736729089259522321947204115495855971714430038682935742078207083277775266512207719918712771804736265149969267480060430284624022096163452558860009448478964448093309410308489846085419386506634193029239584064120565686693514442340724627615233925535567996265645681042252152906872443023836131516391955245058027562042981902093512738077081606657696215386710854042093022159391392555681821701219790445678856301191172336356435991790224092375894836717856473247537773033347159796093417587823624733326212803942117223076448754611885276839140916921735979041207370370308468769734559680993031908154068194088754823358819086849967922040171584411082883348280395519136018377282849729983304480474766598043426306239347949707648779807466311571019773728388723835098616964976255144598335402483202934761598712738931978727245313837612236911493597397728141050404793710864717836673966378722581572117879950087124995791621298089756653577906917785570369406869776271966162980051647980906662076307144281283035758439714831129924237926615388682531575273546105932455627894675275807711482835126715795906689970654913523502528167856902418352508333163696323474616018179497722972475145777654036838578004175932264681711724132086802804255454137749044636959342424178111338382164916834848646262259884736783465789505192243811970543234656156676901843108494438140294639070874163699233196331510334020400284473783398307728303114747297627584923141142060002715310470735012163585351467740672357275841873546012694787576573857715335637924797254987137093664640214869483385302038051249099888780948322627145615236028866928096179346869900002332060559178665473480884776275718216147438282943812359351345370068197001808796942692364984747898658283344266501214666615595517222573051143177217567062605194803904597904607086128913199312982946474807978109815318692984794563028119349368251510536059786702638997038343069334316528911230145571869256742408037233956728665232159455487879059889133285651409527472610277218740733434330208272954539417995363804877752071224815776433025702770396538586889916515362489478526377704957740236192832732359504950771563426234547486247493595593016769846632478280254336202050520168282151309738222288899645667932609657435501701736555811246539956596316172409839395584675186687781985777457995467827083242416385782096266371889106053536660965586907303271544764516622507768360996178554277268066563048159279123457892492278423538437069588961562749764078607535190269321892547249191563688949916685090602648824075557226280384091778114678343679286087330751389199265909384978859706435634193882586345652664549969373846058783995775567570442569775934626308200058018087594304772711736869779811191703936688136922160098415294761817056616843377084451436787604849145668159372679962563593329281543206763380308686893942059708185824906006008937979517322052163339750257315618132833235136821533418832374931267728552932415731828827123951359913905748526433935642908182874645042779581738561837102238787786676957166334085594223867234873945634724625378686505316929835647470330232788352456327852620790846526316360083559624970945053944259736069802268897373047431284119686460032496402729446287472093697967150643201624449324438485003037324439235717878853561918022951751409921733154583828715265642582194784718056186279860405454826631989742060554936860442205955078993631725938530692099577478868789794714276899320560538268187924386222342365478646007097183002356926856058887239576768130652151649728201251557424385528786541407956157932291549053612122492297707127007501741830606377867108044819909802215907198306795228790522553987173156505303443269283467038273686148665439446131237175921742313960803937087998542942942634157105638279379477416586219331539442924677792483118360600316636346730502613686332130079228889875102446341117929135524573760896465522313474215770644179544257244222226391772466126533136317151845594869901567028108530040404458360387685623122711801288299485561620396113461001486125324783015208083631706007768894813774417190477963268150195099804951339127038653513597227175255391780906091745999803821412512944085726717145688111403159783632280790268649601357564791746532252164248599410716125915579892103915066782052561106797645620181939790990386079760881225049962622980537369421034843035122966468374790684987158222440446873279983734695637796685417926049678086191736547495937095663107216340350112378981269708490454730685027870656834948798764304813606030858541697710503281976236575358590432288467648200363413933059450338312374103817290603252242101506364993130011334970244904206080386415728979117580624153123294474023881704683038584820028956628860517726550761345052824300846714100751334420564779239794735180204487287012378459491541401119950924742116804433503739943782309622045005569891309270636686073602210583124686230497809317654962178310525501127336609193997596434848165144353190040969690781435080890663762437030897371933475676556970619398983674221782925159015926777973445692817426088955449587390684628694605638110120136905193135066748322255787970703037827274823826815148129185949663728577934232578793238281384010327686640810874676629210232183061035873840709512257690381718195603092713345541556353224174316413346616665735298824403663619090685418720521569238463588865376735205317833371310490880554320102397613743406291066610412229007610039978265318653449620751647899872398997781509152855744937692557752947853557500500613875194579540738947011332152284752227132691814067030120755356554198131620039105377125635548914544483673768551110860901524055373473958979890099819498041660413493840178431375407755465045173660508461455583510747796218030223770762739095088284421326640998549893673596668242774817663005836546062095737171075802700044808548798569587336273369464619459000025331814480907134849043346130741518519917616092007168847232521875228175361025109599321014129534222121270772121640520587887260962057959710578837883751773868363344097010901431695293011409278248921587806157077801185896608908254917787209253410003236073605882246946301689981640661451704787168104071362646194223075802948747393700185496339965709195363591751212414649873488550511229972421699974371219245460224461831098630542746406693626603001723100431736138274592271203928253037593639810465654538958625937964560573153380308579808271447652792227836769055481148044816106848203448289778773463985748267537469627623773463032067898173797012466126054066094654360470919282652241567326602755219437251694301152804303299881204563490563306465186634912408278881058868209726888354883698169988159574885138406515087482477431531734434639728685363452818327775641976833070523187201988919980386018920067065054690212330761627116965769036413537931749287790505597374961968808369007876075255341895264166069789370643059541455866894792185533031137614172323260479674702977821514766273723296277710123138230526799869527580822168055143797061817163267349662201098698445098744449656913628725575964050766888162158646305914528236692447118764751116977541453309118816489859635841318442522406056970012916214531228829067725754774227777516063004122306312470711936327038059185364546739624498090311161413358515821351944924956525252358105121051720983079285741217951479931156713558541044922931622912933855864905470827282484602381137135936254183978135405986147540595356547697814650010369629257853664084226478032462706834635496803831387189927609366713747798916907131086012529622362594499885760603253630788698360964220909986009243432419688948987848422649101281742267700364017681565230233137926156531481398737773813206352589149476336159697353323183992038842275564944262883295276062529160339470637627266615621942395620909037698411604595308146358739243891913540903755598432397789459472023739124544182698878170212289969666941226462051222426454230551048232359630316226592834235341345036502178930410725977509275545216960035166327278948586078158569005465606204241479535852512036425025072410885355370105199344514126630359588160999367905841057400156898351982684052415508958008777086930013804307647808909802562773125974807609983282374260216365275923204511395508587182056679478467340296825463364798557326507881070316475781545060548546616511821297842272346468344703168852615193128427922712907915347682228613171848375617654666615265248708741890624423967056603425527973599556815659560649694588672741059624248815792121721556739086823205837367842006904195911389072457589618368210366553907905668821954961218341712148539745686156695954300657745979951100902032152022088793613513453435928977559615230588173178370643872158100983633031112362714464785742690961998433880212225160275430718012592299820697186690873462801213237987097580505274419736683958480598414328064686684982541416843991481428884083481026682469134828627964352499604404837373424168131984408523892193996843637708520839308928809086553796876686765885870177046748967620801338749280539982768950214082175557346816145541669797200723321310088444837438797389103404018544096146965962499327014676297579365855348657208845444878256306948070719246698438071125984303481415124204812107941329621047765970562660304519452540305020617523634959232529523551853440597095306783828311356269013447519068550138602853248939672570937744794868034871603907697031655182429871545223005823853841698453216502808138554230083385655238928426238754966158314658825942578322756337269021237735129901520794123582373551293615994691857896489620348072501579703483622397807408479099752575067817018643879769148488953481475842061654544127818306925896542577011214125345025238019644817368287315439481013180945801805679086186685360280623034917009815953473367933133411257997436877456025263850005758708825824816317710316534824225633198095710538853997558934939990399152417854943132926045697648197787484162898430131292752555011399145677072617628787662128556883582324446317350572828173477551612816980446391197838562542149680212638916447126838784525730887113544327403671221808189269487974592417847139351419913910784167952154321769203513939139587968494112771310211795876320393159542805357310235590467814133960703723462677187572140069683398918311078351443962308738391658936144298137225536505577329044739943447999855952440406631456277745290476632054178558467857632056168524381155282123010926728667518078992163501588256752999456164064428820580083788596681286588329386566131410762062068414012717303057972904793587695198513628510710709268802690125692947458070493119142225275784872487672691458466670526823481475829374470666362058659446441019172606463380503146112418108496726413504438266533817680436035582674045133560612757524671623608603915474646292158671211742975019070883037423818541464479076308779641718027813259714845468392380440668529688521025215419850023826267541605964046947850261547870433092203424820282334980205509780891967221497525759052548072461467684606306271711905947126746240575018136150026633780717968329463922250491675887358966923508962655470095127706129553108462662050570746137643296536664858761586645672660222083270978097933031085707007414334565232208570372641713400061316180461304037464259162508481435342810713475153891649122335407422431333703445632640281431433849154565746043379814742975754724282597947448638817992469107214538828487492302020614002215833801860432270193060394946780611985598288295483100796646155932258808354183766019744358567443053971161967850030772386141400297748230690407075888352727170492352654838056725748810047457796074909242907337083102408843850899378514363964959979144908470934784088393421716417973583621414010639578878430215916501351525793716361933522706744653092522867127252749179538144630411410614618767747438094117853801362003580827419647027828746594552385163666665064128807415914324178143806282010299287897066341858936555252517339880202542647071429396072250522850129727357196870009306783667082641278578299097431218199079082517516078109403981740485559780590233154113999986277977032748439121030687212502108678324151642942272495422146496081672861971823105660058128966379833558021199161806142673629146766384258775571419821015556582544940159248997713927032700987542395399754825040502170557671533428187668707013371582838402499135142820272680455331453044886322804353535117627807069950600305047012117511119436897670775220642842759243732335049632491244444897037757603813365315646830903258933704248950895176189818745930867862873430193687436791533380766177588822038590150008817315164899122030473807970507044772762954949146008408523737705828421580404814512496498166181575578615911315881942666674697381670737328028836407749221928637890192539577601358536832707815337641432858418926631081500078991506719509131244281525902265205185340049928879105680409567311910519144135988789655577255716845234724611632490762360276914033178676411718175597603722713162039840283812311487668713600822107524041490281032002906256343552897753595588244437788327283005235992589347396764650700554754188128769759773262948120615437536515659826800423528318989840613993154987234243878119319016768513660483274651252029278919720232496172281748193949521276554590171732127528925050604801235402449784585277841942530595856201883438508674292267011593381155299084828279598193096068687346671127857255592823172287262814194901791674310717263530306798194203006466288740046892623233420140769779592068404739334194738597889290967529662686556545593964080762358524545974547055932609247119427619960872198181099203417148542885611854626640615253467060482319358868718750493108510465467626649207635534928220664408183792663132130794888080416994366661813307220309766361504805415809222923344833212382175007771755731470913896404083395477940226387681123194028523347900110099738145613674444331234383809423527420695818656372253048958670619261932682375653008771736105169841013824316796996894615786608172347637677709685887600395433143720887741053338775899556520341044411272155112239338610465724834087056428822651577848763504755932412890323540132159272624539631012700192514004454702241414206373409004267630074656706680303140405633528192959724975595245522499074097013795027079076474727167857526956168466967893110253756450751917262539669794620080741197958386333532228080672469460769050797333139996108390671914096603742363420745950147534317978815363192741201711409496717192265944941860291751163888779073599992864182702992780083013144765716056696281158550947439004635320010895787054379179929913793401579182296340342083432509745688424172807483875819232886164745442650271763049135503643605961230632406790316597144796337697550197924620122694387668382841102858121329633255317827686843626835556214939342480636492005925537992541286743938280297982271532285482954200351409512384917401709595300817249944587534175138241363994918310373512065287159977357178470293201473767703404164674647114450910147117140926339030335341829243902573765835301462176800737826308116529980660559138533969419722304868072691921692379623454788680274792936442491599210580395548733053700598600810675848337379691050327471935104512660976147615119160898527698629205882596982151440481427050396199660018818059029628481190078631845894886168014169345354371860442306878001191069924617173724430794346386559668778156436170385820195201737366381981189232452549256235754190433980233753752277147348306155932018581942627450517864739022670644354623098022860377855614022493721667586189191906453441642842391753106530363588086656026418529406317283549761253491512936809540494486093745408358821796149225576782464393821030019132906419671928703538025663980531028757336592748898176237385420354661893349210230471707531180092009428830003821641819221934935604273362610092334993991974681552183382170029675644022214502237035538807212673386688456575939749355815482516675820079329364786864420029266895288828379069118530256500852748592219863366691365539560597924116372459229124881922552622967721234858320335182438909257198359681588314777007606403038757941659448827481980616721197830505341358810667002728660566041175787350149635026690180259356626873289129491272027316896701216708928265799832767039157868704423122390350164525852060878943368802043807435715255549981342733950511460251572208966160352893696647285199470236853950186862552254334570633332454068999794316265349728953169606093903570746043454890112058142392241887692941749689547577180589302226773045618068002764951302486453161711216814166035691242234847347895842582888863916922797765019362975333208589703732212798486478523876772934041452510975763597401307741320098666410700358857244979729025105499354710298436370139509519700836632126285151641774996744390909561630594933347383356872183755123903472766844044718347474705057382804284230785156648648616922010048257028291641781043017769534051927010098616035085696980857905652560197286301156000810322132924792271240407452666806685995456483180722855528345514817436723280204519577961819422536804632637932112603864673193939028353090532549121090306622142313292763547134222706000853512935019484025536868980585489324719160854980165617570688799164165684296013867388251157126809495910270827058923318740714071679332222158222760482499819104323819543377216365901341647683955112732383756405262390603848712397117645240498373981826393674772000368935202046074942133285327386572651325977493009238208425471555771517264590567225721927696918173059309232725538478713759629282990636067177917266716024791764170481374159051478017679292803801836599109656432595015718465154712656516169804032510718251113159707495130324839359569586125515020192405102361937124013033724665002893458336760676994652088109284049069238734755386211456456935245039699457710361217621613224451807410455668078205148698312906204311848672713415331621729461960763582113471047934660615590386099084643074750181782648700131729720601296675436809484734348685349430035946210482298961836399597427136627866839373611224931796347471049599598469118726654988997319224308628817782910127423470808148508378159922933660794019210090458235330689629965260506875549221117738597425977901273282608975150527129033002168870710936504501713887820411185672034185362021200566433755274758540462340471097652147788001443123824780808688624251150597623869490387801691103710525649315044156550179203904701136784990176411042547044775400527169842477392847098473110414102560871939806863982075447562175218931367239407977219853206957772592528407265937900264739984190508756907377518461870728924338687148428098622646370205748203692713767446613006751233383792194843869785974811959712295245239408806913292491754483705559988329846979842519175661541958250993418026430700612256036866980483736376586473179573238645583217470223427241399117232699585361970949782324699741069061075375664909956748396644530247818860917431635543096709461483751864628876162286923803516267446510769611450489663606909198327441691502491963852018772272107796209755075235871815321710021867694557952220278717985633495951164587022165079020839088577196738113786082301170503376035353806723343496188405241185176336171257678115016238082025121286873219986955985384232886974507425174791919608869763858003627244548920110979282911549195465942250661709120232456014598217799127290255626620953263230558295779554029684718392219123411381653999599313303344294868359942742500251193700499380548575851135653547717984719804077115633421351477077174263811186749281730295393478803751992186880519431141829120669574289108197013983668852062368506353150772458090378630973856223607352045004737922466017860018486063050146088598606281415185839810810762323681655603616147942934023869918257200190690135821006475557466404174739766007434657464113891760927658730218491045190356729305908958560072725976916719468820369286316040760892129790366053556391997685010623768014229113788390554336164544449196559182440622162482686033231403860896234199388308157066911297287619349332550982551283629939839579920113282646668356828071458845170493829532651782107174996399845261086615592147393970011299407571101749629916065522097139547191732662792486487086041398617060965273814118493752228296027350579466074179563574206615869031006130662372005759522141199105601208442017148812770876556826672417171111694671227861334199845075808987711198626801654156937327689446424637496680068738936340789516947305348784707164697139527300861343346111813544917551810558379637259944324991343166879793708219585235912692186745979807729873415823046483965704404346021440529236118225667926952420290060925295181514869878381761377365547004569486868400225472430426239401370562871462740272880226257910344331892810820927040257998306672678347248256905564562144835654367735043592851110562328980620375981498217331226053710169016995505938727113144484183169268382371812846519729248535321315079051446066710213432357557251163551018675597117994375627479671070953974471958438091609796084531202533513939493688915915025024708552154532653626370181654233533844859618695465193883551116111462701276294213809292510848335821305566438647141257889091188150865991204494435610953527487477207244965196586785987608909041850161526799580135674513463609083959039334851526732229753202839414232111010619070945600060844117202851696287342026713788648658040089499426608762991333516499532407319491856255235626172119797895162276834760678204659709820631969406089257783770679808615132599745645031864808609159679265473627331397149916852300363123163651586242160642714509043882222178415952507157448287485800653960057678702892329037112114141326888998356456235841357539620979058254515256660687163018718618790309622827249246843982808865954563440237566612074288149680072832108121829179639982240932998472913809759549661099181865745878762820006044666272625952172095716160010186035531412583071472361353472072542112040391317160924046516579628805630631263971935235805068400930854792422700011925152158191965778993672221590428063371074535564726703254706126944081609590818682845899051193213374993486059083664948715921444504608346134750183853837777344516248847511041764622066772988664000519524734944889636507470785062228476753032647481052285750167467030478007705390281045210008490261718559226957260190719859480737860709535252099372396519729580495503815376038086329049631312652515059452146697358051704241444067845153936543671123412026747624524538993874991073841104038428091124446365742148341284669769499159766328358622877953721166596224075534798809098677543325545925324347347964335928390493875312125063566259682788066920660817954416206366624485110288677441670967029424953153746912848983534031344937826995198069859748446165982538627193307397269518580833119480083908208987760306991882075324200316066996834900763746009234355349505925266317487073376387014225843700442445098926920428916050670750498992647225234159196118571819140355397325422840288910472011761677549742525891831503154498328956513776110445591056711953694949341718345494812051082209498643566657977171057608798573649539647679060486783912429521093645316353785686176085322714468181905416203482236847869953503046496788206109624788232811088433595530507397786105730122178105571125873057853348917037717835295948503881815114925906765271187009221776179909342588314323665106904949033149407289417148737871431997364554888583248417354701502155460358516510085769805454712042463834047846281628893167442894986725467830110767459274172249578544530433118230342111809810720225743796955300988719306915045183941808027887381378234899608685635731830794545671633669409916986994438331247731718573982195076060159668657273103708700566292686639464795247332436065096230487114595507650831696958209512590813713904003501700337473801285655741947217419970816683381335617222651859866558533305237112327684657155854115027772967383534307246506781029446195507124603456531549610937107314921188221958211026431657291700667703886654114005121851402406437750016287760092205352299612214236795369465096463205005185343220154494256304661637196316626147608360234582078174450584247839929261278599273710678910513596597381071086834950092261811936082212644606241726963122762329170533273966481729673791034014594883189195297618002923934620459746745758396954177265894269104201560448193708774411805948348368954076202972396958061395387207236448193536050009822731998061769327580740004890476085051348448826214141762068464712286402130615895722944236882673307977567381002013787798834200606118354114087212680768834940089514713329541256465305922274930170208434722839925610186805086012612967246505370749460891829382690294740198980335010965394060502451950792449516358214033359464788413258998279974162272692118601790594140704055685038873618154145805626405118158427056323547509833467595617910034193526079966795925901516804492233419471935318684148658853417375359424194771989341437669875197317021202025036179601696605214613530081248221487227087602501398664811770313120256515402245696925262539837201163918503831967408185591787779671877040081522972751083222875190503835948477598508893895700514092773450548886467633834467438637494969398566551019845498916156314679527655494072234063858230804502507590814604388221339494285714063548197743461251946322339037003378244254434644068591977275854775275558593355078415049211311901031255582319835092504783953351728713843574526265435782387111022221152732900082932097475076320897442609172257643627010621118916236766312303545610019987540824983213584048678692897031996456191592909608817041541020367556888629596648611544469186119173984814682086268293305054277546121718583988591466223315080024673001332554143558437676636730911036263712257495532423280826929527615386525113708984291741639631826712757790114658012745835008856239193342740556430708364583234702308818132991620571140581327645713671594112044745326697352208040826464551141096498292927405367929101737122681398713599236685867039512573688006204470459278209352170673789624893253524332706822780247596282792710743622387339636503117206714326658771378608158134335793771628676588778338281581310183115600247261487608934395460976830539682750834670543370934004617581230020096469833639679417195625089297773402244646192284998995868190273316688509981992867945498519527653520516107838405713120713819842775380453561994740582364401802898494855277460200616926210912568074182909663480344538160199289295569496480287451554275817082846173168402826840439572279156719757020054939543422474780491510148197824776675302955070055541941334548129268304087721488572391825723355645887562342856144523327647848739505089556921079756210248288682762033215138686486966697626341765365871920654771034538297269529972046390613882461710851860077358752137535081918223920199282586146281473187030995881299599791060332814629626855212376169289558098740546939643422918798076116312053585373446594707412385058278849514738004180715824109190382315994326406320581089877706323897204101843281026712620796911658873236493208654653807755883508151966582595723805798064604026228049608545401609990030603750074894954264467389691467835342963627329189716439854697093362311922882798705859439050743808105361653277056942209999371775179604888129542013198234157863204158788434420502780706848351959155359380758785013454705439938863883683445436925463691371553698426118575365011100467787644399501894993320692394789886185989668645670095927572322125480822313600324843156096024555944452679263691744784679367566580548153460109654012097579317485614447429794636006701552472541461888001855174589102929764694768221261514001061362899247971490242102283947350161614019494596136299466594442525998166812484707348423815943320169595349714438099175156069664279661846358092491878746658530590382083616473616615592297321644964275868973847164979038151697064313470003485788438196920873843876561886941550507316760480303244664613710645803700260818687272324704936092756370944522342910011344925421680867903427923315438850478492505627719214156051746295361327823278383522548713812845676560122044807611354903036510191520934943538397038692019177208998061180257760699783578898555622225089280940346240466334636373684020484928194599199626184026302755294530519972350837439906368980026241829862849682577800585218877388697827045732639471841796401867928774591156573004270013695458661222429360418377751937595089535531858551738340213153428157739414940121421032976454176517514222035061666784833070080391851543515427630545624414438943202502640204354426196566472934507308130066632902424579011730176107744745796482661768455243806367586171488384564673368047494437588215257806441451925268628035631827036406487532222732956281928682081675944432898727947501979738021954815299885518619046896139213301496462862470279348634232738839993152646962332958124740689706283470727660339824892552842001119478075529771318389144222131208921212906457545775227478976816038790963716767482209914734878585564691323032377482952617107108367057141072215889151871871616553563960124237016997458981399484281560702545520210814575975492801235646756742495054375853491799346609224277909731124399051589825205425209218992217420689153283959412573885559785598062865893170076104009931081815606241957301878733160688795779304266320612111769885522868573140253528935284534433223505247741730150930303830132495619401301416430321651929421405070333569891870311499108728696081733318147930548832381448954791377307903080709883355186817627255540025936193219003176686641105861561772042601858396627000350428168843456420266841313454661038441513919952572565663328851848165519359526463401316697205987721493102219033034874299869707998419612029360299699581806614011787962972835750403973050022682928547514046538413603383905919918746480041314789576858572333925442926881580314613266219888117178074926062160147964096009875044209975806112397129437951731207432960778316714317003745798163633499813744421628616368819660378465159380598829645878080707491603079078484013317187193621133776257468745617370861560606921410427771499213002529167071493897133396553056935891642369754850035445035694554006516456507783028002576119659247450659182828956438458884675673381938321150854138896820740162852563552419151952562919587642843120023674886282354547764815703902895983044230368949970128837571184017066779365934232052777670856543360982402310325051390579676576337818194758842172774893305065973345012506516768160853503506986332953488354561692005407981472952043472004985828301521317780417758355318972469473230822120155288198061156237117471928439984329921833035761051283416610294983214620995419617125816968215213123539818499739432064019389387429786708484934335246745902269509397227414724362987750154675276841357018418632652510117646307391943708601685300316973477365243145762515445138554005297387269522949951047955237668317332857162319759823093362226430663008199425600460053154529208300581844597818225539595888166402067472080041519453310737305719879829425866941382894966451816897649020068547214768694031660096485585227509157757817878373867297780711190104724902264509145917574242793196221433738442095208603799060890735324181902653489398808683101722882265393650520688194083474193784834775407928016697725187875277689749898145238077893789509020857235297129976581658425209465170451169455961918325298759652022569039043828086491883190483541178300420744600821390854637724935450224536807392060279729606949324725421671310593856802359060759335520684254356070493498574540578045406466571885060756927193446596184719230097244308253792133557929019368429419198392679318721104366398035635230121089254921844886085838681405112732336379775576134265135505644374885150953419102566802580634986102848257471764977054173792348058652765875695087985559666152404331265380212955596508114503444306201321942956340625924618345536214761351972671215120947020526309900101863511071707862911486929283211820197408807920618790608338019374073730846470073912100617462785555407808756502278039834855249867027033088381581039606129466502445489575566494859714913277068546835263097683143662398044162400192926061934689558608190094255954651040511116235276844182388403168007460103323982328067520993632858381089776026556849847817152066957923156080750644758617451814407577381830547328150013295876508073666828408481518803666968860359320707920084045298856694988272186507197690217110477090433412093181221128200978792767247408241730720043957155170633260252953805051068376537991604575596663705626239309213074782861558364426740576224366654633787561400170119751725925186533905632336596067411213579950396349163550793178084558853174943108041519335479600735848372803072491413838746442075780188826595402198532199761152765258339838121399938116215328913830902604820499418886938881878903118612608827665180829433190021393119299804519331592254041969470764251056084648340317475298591148622896381162606204625065496936760558871121582040931519664877652669227624687679146777716785005671340610891042762348848854763240613102497002602228881863858069301838952158144577791789066802352686072242674265336685437242738092259243328168920931236150721665817633506306279045408168802085545417585593901522879565656574514380306278149668867350778212428910394809912046106250090809371880333967842208504602219222103830182122606557449901304589785700016749854556480237885669010932129372337977363900786020363349042419937343943886474834139779402392128354765339886802102229275858045179968810055877574080201746948967975813120328773114802490443700812144958786330959834643730416304503490014498123766367742255813051652875656534820038091536259602366314553877496946324146956313981967273381206269939992055117396984770347569583185827189329949955505238107859559173844129317338453904043693557290709670723722213035314196297610984713970886533031450519106131172986641892167385999277369932376721975068398826662216493112792028670420819876464960189871682575521836498272876825161547367325356029592506301700078524286354329632928407757140326592355594173917773306083640010175150388909436777362654937709567111676388499574727310111269154652833652580247141239569765296459921607702838126394084294218805950499774628936834346799811796715167773556245098875422280378328694198166471663307748686287759454711703814732631394167064048246451237102274588434884812349953891016171912106357174277044239414034410004467958615998716993437554377278591433205436299844944698034423240077642675083908062886839894485493972065776883984263540868691104426286588004033064374892312792777048756519205484537097775686375521388998312855278280671630075413169443154425217606797854900074332680963099766512669511667317890504830511838854110745782205444075548359687344261667554289285969232794563337624913898644749985703453956889107619924120880818909659857710059247922776270803198310107318883500646490765874862824789478049370730711212479147116970484761508944975332012620628608706532798957481955170478764507308125849660440901353305806327598454748245210531206400097909156780985188749534531608841401337426180524314947640051411400408985376570858318208562047632624119437753983346163051688443574672316491665754874325604310889623109043631240953091019353757050753467291300735514970398765713813547849255991185081442573578555261315770496184333690446587747917117893411924751580128986597232953692275436061138787464360863242318343389724292666583550545264067500392266927376492973019400091003033842813761167463878301859309888158641103654265139351607141492026927238403615474950688815793841268779080101071042868053852007514002465351611083163494757085515666515697405898910521225706807347509543439705184170621965298447966745073488129609683013867211560024798337790743440188310325323572600286542683971081847608422984489484199575565989743184926369463774854916672575161961666350465761356621386085210183972574636736514180864525506757650844198605634497105537241903625544706874941555075597762012388329486258863264397694086185286699106297721905489257614557049301844451099075738216721395443769673727147217681159454713486115539095243339760034418617757088757573388833513722455774257679277670450181809962070851282062590418089481914954981819245510954999477123085963064781337747527483535343766836492373948190218409735264528673524223627812907225643826112042818073371148478063107147227334426203703690771493861678559548252328696249086877814453242495153067136873226095077670193962075904565372476111367555384380024514739052195979343193213692405671158369603351902406055539909536412473228276925714844160920357336564284552058225479121173260536027725021440816842303979057720877010369663225641087606278405242812996062696647906788897075718534098530592110459643208560038578944901608269995868274229702231322248345774792546295303958219390380946013023538242337477233397728473849851762718465457641535700581527313447499903628659569596149646864167183091985142357778989805217301713307021410910733693026757274232987047470238094765950317043735454155816365043631568790019617320422739252704697826888693783631360295884797852913893243251363624544685460776306731381645071190961184148344790420011896740266141599870006691718218609084099489547008620602828648386389103040850365697533461867361729103605921163851187755260087093567467209009380478443072803301502924990779821050377638174229615334912040924870714084167162332906086613528818826581367373808627986092074284835941318001253247655872661085520648361554377085596110304802511544338431407229261732347228207838073209273100687287909981397715191711239997505300586318839319666194827629834193204605718518009739876731834658304278588037955198046527971569516464117917673615954062216421222998610820025339157219500060445553416583259934504875393151935538534064827494486839570690944112890444892628112619199761175007610240148339174099359436688228377458181085113402931759190651884270235429716741718413977917499760061562193969198992995324774997721857639006076171550666173573540420817122971680297177858033467228617713808735937131600252109954949477134643876100583879646048757671501554365592917848169085627083176110305988115683083241535441434248852903749801678055097545122343722081432935729159560385005180221735708762098256950713561143108820435068157674066044507755477060934011889620424053047560798130570827694692891934664618541683860917998089328653884884504359956675036127015818223286026488085293288812715358545765426931821080190237867992096589377374762039022005994112346261466281040767801644904248148177399676221008491273275248802038802883687193346137799594924880611759525525519241543930865729084408332546822467895976979273846610908364293782335890450211470250836614990572509869204991147970618532943588503644962725263484042242812324090179530247752636644144030609381978718219174434159420177831429238685744410687721067991179163915644577074026851094594430424775353529606614454549339471350784424982279700636734855489358661277477612164592813678022247606759278372862817309268505341870061299587940212920598913151741953479527983246161294247296234238078048218453016616856357537964899574128824988306206359692575615413020138247552104335600332078626446692513240117402372086506869511011714672027810463629933384403534589628889304990640032261198102363245286819136661156624992831163558845001115810829989499086456336293163969564654731150238194208093083770333807507812894801337244781354988502145609322193783981006392214881004112998447400608548459535352857734578978545341450289676190002087056426515999224807374864066820754300218632504437342891191170592569908248942980409136115391705119519167880277699240578441024187287510206242890469558311805046159693243642290131744016281343887929962598286652207410016088133084148917404554084897235466976332791962810849607594582409154467112907638620308747782196870857776558065933721706749866661299145774702968551267275259638533942781290581173706996861500934318808052188724552340185112114382772450145765420405297946769211375775556212596213068619705637768384158353510238918352734008364952720579032926763798095417367974374732299485191081753220883749221307993983253284260282768582424403788839971253265406222936280264955473002798142911514792817173085146930904391111459240272372210196050141269413811261614395618792193179752879164605306752102726070559839341967157275367504427277937573582214642259891825702450556641609230811085551038716064038826881534699788239913676595886806446831029086200079121077192217106805059666412220897332967059671939404084255363780167395760570175076302925062069630041304812645619661431118889365203451177343825069783114665512921141629407580824520391606218824936321017365015808389500950982561401450787523305095624758263700715536032656755974384161647525528335800493763265421809023422467437089019285504144937085929800185641807237253218455620837539520063644517419825332361419107842539283904273762653745911026908901262161461251777353733784525696121690460020944741889396540405714534669539661463261926779649690663173324529360943251226449598276185839953051724138699750094296325767386042052021975659755846727688872982094360151082601714189907460431882904282608199349180861314980214542281372501428846192914357488579329288951251341765348036648418890063172229387127584534821578682598225537796468530700355652084717814890388013830720676922184356586586625704221233829550145216051753096823376745799105110347877569271412164503724108675356552555086067015267386998875660715131073428137804711528012076050607358378913910927687220188350073844602474687109457723211609407161290118922467530472724825018458654123333600219678728220998109111123336439304812682008413428773618761619542636094112748173251419023655074465644887998334817453565912473355043471514300866292850144942376385406038912910270582556835099676941459468583262746303198505505829933128999988839007107817876649369785870341161583521629455963725154280745436755016059291943905132872939883036500317413653652807976660944774994238956602683303804637129437530570320143239259570993878750628319183236018260011778300610797639068111646716994702888743640647282253915481806363138734877246530701069644710738980886921499307594910487294158689505311590114525706035348242554134300641805119272100126260965472007785827425530081772541582679367273747952636150201797580791504635876547772127708562859184680420551175221621419795446618501217781147090867528841773035310949020031141458467363498922034512865466683059107080551570270988390173103173616655459432644792594842657577532290049469345244569256116701695439073263961077124415694760219145931770178346432602878553040687703036536535214727973463773287705368819355046788684495586139414017360247807173228014580904817707482352961072280948449897547930958563241072135309695015949434622284050531152160773331305250374783453810045797319680455984310412529242937469716587447898674635807482092989220154722163450643929509993383370570796980882920961950222293517800120972769158771579233748089941739389853351840096633634968288965023947571444019975305595404472329506687279377625478198468249637341124744538161622145730250464369414136246940827952097773663966237508935914278435925154744660911548398790001948025236052996038942936414915620111759616474806017360196747105888298908110307281426458196051488642292575319567237075858280906696199684926716516645856346096710856326383448162709447512305916452888259045110340229716082274338361448895600962937145667708914697090240787088287052797808547355123703351314091505800789393745574016992459626834037336518064021501044015659664396813458875026896284491816992506543651122696625794888525777273641965977157110701849002268005080160165310327631776401451806062115689043593096379349370929642988032413057833215015013647618194178414281634704726277536811647838756624828022290880528159120880211394307376820184343059343319052301103687498006267920605894148672914406188011196930772470031323012466037539001805249601620339677112223346279275873216691927271692727540113311496702633546476963364762480075908861914978972383769208513876637863793297155023274565629998851352495312025435364921548049601956181439369995201363144056137249689840920216402945581489726667899169171503612733315934101904204560787979445517952782405876761186950136004661872784867844505557287624415353930474687965639534846598363323225272378761184032257116075363475255083449587816400523578423888208196068118935355921612385510191877358133994620254507389414764710847338461947495841419068593767136437203721498961824980540294951891674557179656815567662306253082047553672670053911382490786555366306313378690231401388322213473492616406605121082870572796924567772287080917691083626294460294977323099027907139139337503653659409672223032213981698714397325648573864646402609878712422500207825397341026081704141654168075260587268879760540063623030571626653650788760098016011607219129802573582829975314723465525555341314461068428725797199477972023767197460642117215006802987658225017121174905219450695970248215663600165489644094759367355702378656024890842296274768945760915572099919926553530985426358907064238339991505524015529821957589071811588772022477216426825158100149970300329916467678461576065567873350591124507315050125512361834131146641370111062963134748693292760377400281043615318303014589382311668858256952877681533829351355860377607548974533159947928813299776562524795979567429314327711424649170214624682519577958102631499268597854856138090096514119676864206580925421098333544982622508836636034473987424198596049460240565854923258534014297974634154150985880320505406481795315348941692703258389296243321674356782796360591166968266929650064001344002339852757691326264727898192679378586456698408764455847806704608939827330555624554832278112355891025415576640082409067204592497679538671842197896106129626250797053842490878586205494010512657234776314095712584492089885026111909122897432800142079000845003431888405361813761992872399742442072753001406161142727542730301556022049890330604083579353057782085763626035322763748751392642399442115541448932093175659889544710422393844328525483772126618564138804023407865724332377819694074819056578903560340498153032346853771598253330816771075814597071106019463157258407213696234128031529289564914562240996845780531376758895340464483452066671352899021984707596216928267257850716433954279029573043420652127451627677738742772943405738394880526203168031998318058862473440703968541790197120538161157731971833581857234117075745633173757398209975125422055291399770136539348992895621533844367084235594447806499143980981562070714611342418712337707054342419751390586229509390728992235798749004290759373610068864481272981732764703597547253553003670626120783522318362215984947318361428332286120733805250527031612211687679246202350322143916437286929657908845298228730774843578840736829980799845797978737576730618680638165176376368587403558421678521116040320888023919738813551989874682135889308974929125747797263813480371262190484085681137754988936857887233322397965734275894944047071944286192011379240910950741845489154432332224747552428286315594297885872975953136579937060781396760781305104373701093327977158531984748776013505176624834220414024082844270776746146816836978810786108671919607205045221510406594434139615528914456336199482406812299762327488695062486651391253648086028725181474606293068929230145814353732084442086861357152624624495225375861950451720667072619398867513702799666473335153518193961346096849544296967557037448989274269822378102893965356753740145006281084670267275594959532296660150698921061920776619568182180601130603639133679154408370269141686368497163831799532052781185734167607807314681781388468243060813943704734365425925010312757330871284917273048949824992904666930566808631231025520885080351220593113461560265040047999093094290165725947950651118625266542215936648997308922538947242806948686979486073530149993885450296017445172119973793958364698210066750555410700060826899755855406936636289608904345407282457078960206382506953498395389676165625654191823847555589621926947734323785354239501959221042558910428699062783962442483940550777387877613856368053572026295962409105584895926057791322890040029827063142887395659425970920801908052847801117633257468674408324941830449408752865623803583353173449904196524812624589224718741573735287975233280684834388830036738729439860872058218464993949996556601180862531614161873976528079441039340366175709142373919349411314018172165155871875121082965837731944007713946109996308145651921512521992184842274507049198619610795141720763785150827270744501312585282545220616567886120178937298163546284616882650597005310734584062514609179351657471374872536829157046564287530450206668759531271633323665488079716272647435261384001088003366117053618485437727342919640802454332176461725130436780136244290237400356407379058013518691354231555684211397122178066263737112315006919950878200232852333186142270045356306818300000049539030686387602901892396503812683341087017678938535481064904611751671602435996129961025618253129693245989163429880389027174746370602690707167835248873920081251946034877599185938014926318672366634729048594810749197502682869388173675417594903274358581334578280909535269282307342038736722454015275834822679158627136466967595455946392034282954754245055717920555509499190937863753378835530561091456126662864067394761364865059589448182081436074937790692405387356061928394536437888669111074718064771367193931499695071935011654067068757158176207966657550256552193855153360049178481511222779197940867762455617161412993340687186328298079688093820297670094745352044507865901383303301952422529932509286296477370394806089331388089071485128255983641414749487956986188282341331347422788415508074947056794722990955259951054996814992628741765971393955635153027058212405523887039820922881081750137507078190934287067323945723457644833403137014163389502503428299005619504312288810915784903333426577974061408189928759478253362251487326774258100737078265048903790150217224491807022678239334967850715198883546683459790010813531819007129322387925385480527091333897404256408224075028699790654979032833706081260646615084305503535184053032201500294443899923892873835703791463598971778965030374492402444720589590352097428363816254663300151727637291552074369534772229733426374204182407188729612386641178999135544738825607752706012700525296781386122069969517965280207641520758308449744650773745584959197516349404901302805733884369050251671167126822252243529696646940755920745691614541618657364384618716386924018367843099441605209040356678592714791776874713713735911212316844798439994358968389864880054618144261823907282859028599039768307886806392702331390326730363475089347450312495426387921201130887838261126529811436847828501351169059494789122500558963448923326240733701883128962169734260800623360274714512685011695310755325116153308151653006005931001724233089073585158146549396076885923101907423971880593777570769337723443924963036038254555532611964478985892807421594338081887161899082948740838280489095050771660553361489450410168592693463946146881126848206475323080167519608587220638896192944369047221815425880239429603395655918794207573447250104607201818246654067726435987093973270551274660605451486837509261622747487850770704592383033845082869176400623130259176224242872237414603484945497322710980675951072841050706640835416814469153864031717647818259438962752829437007507559455844087310108082032049207405773075963310834800259095614107649258295806347239515064610358324897607977393835899719320640889978255820194560414504543010555608035404868711210422789154814072244468093043550493410655095796523136717410153107975207625182467741206627947822231558489331563186424579046443326549632168417844999574681034978031040460294148717767811050906515238299234339667237865588072003617055910221878049375867538597464356391677505124188856362336374428180133082848061633273327267504870588127154458130484794310167854254297349666802245649452037294579547972864572645473494528518723562286310032940827705710793932263625708580631245092204609160668068239651068099395508957397646934482973962690828359588467044792484079723902088978566632587297669353560538445635730619228930247496140927279598134384308879265058788481728213734624877540093818997849066270331979984271501286787338790837108661698233462273746855259671889763583044693968830625311387338790903138381915929950529890032409269634958288865676302782778274155599149075074751021607731516397928659872831211940439313778087296432706344075201070009977148868581396142488784265127672873178411703201522945107484487706546616195581976285912805122358052618121123929586961872625266700037947420535900505236738349066875688027626580790220247197813446342459367126794366821715659763380730079211520316960629298567307855416885186592227940755997045232721833333326185774415785764924998344458780063767627082208972735411347471173389693674355144662390469928525575521697658118403164550012757265478169866388041545804849975629887530191570717901748531091507386338364817863735957079667061460124825223413541951640942538058094104812768862027260253961535727166364828794159048150753345188503912598770408574502130882167256651142792748611158553436852347810021981346681097169416991386021402973321256282102489558197995044866064316252621156146599326765362290731348000547066311265157004400309423845988562166918594573763083955118276243612137068458139712124274988667097319849832372092229422486595228974186821368653709160175125278424944866183836882615073410747710162723457511118291153956099439549732720660687907996884316019853101340330989600304828760880313500514573928977446808976741398795877147859049905092407948489734953197493394319923336402086492401494740456812800313022247472876635570267703579626856097369790243170425720092506900949479968838403661838639353173523476131346279846009191285316252231499998827335434135271311869974766293443800797036435127407048867294560270103351959560115055889614644930830636599254113284217015088605274648726661701236783765951407021806491484230249357503545321441490111949171766680141882982888037080529570015951552901815959806539004747372865651146686227956966523609900101329524484901159052254757170796991865474292774875021718999580023121855705620466626426386061402571468635651647179067513034179592795168462632791102131508126791457838207284056997102692853564394561792461861362859350553879237836355476102372677395401956943672425014472743612830040353395366025735674189716399783462165197966333588244930957679005873066982374149635178854194465255091135889388211191270688860791695615178687839036866354750988601344214830701599690922011787429976670011064457386928839385589141212583707215355468402578578725224748697329261464323357616109365330281585414939112256134126846706063586080511070404022885039754391128058225867543597727263912087047013480378207701501662072538115769341896606951627545232507930804076919092901245908977506957519320627640705097257998865799386808546073309035649051167104519294318341222859390371486728593343141808879300681605026785042725957794883654898939998474919110399181836136726011147168439117402319946846814551750529520307336808239068446432220469695803958484771793589676733301676139913384665090883492458268974686710130460112941284655012120228805013644319593038710487627771120620337336544126073144863973747987429931651899317240920865009077182870316894552524461397367524363857487284043918577778136275261184334106217267235801903029058606943008270829491740875050766846332880222517404431861569526804427319125110439549329049173648313729271385702543381195790279181343098264620093689917978559398041966773569478700746573376977157984727571810788978640398906183173800556071597889070516395325977792140585397413196030728096345500789461693410162862343084635723248256176076569361176319353741137883869093216249997144615790227006604136101825321464001162930723933737835737383133480287578004223515637716140284315271196937310328393382868181756309833623094662804979983695846184529396265520594389608461472850773046441565571989418253293741156894434675434705122691047809339073977474724169636031065374075706624660517095654162809785707728272306030386651044384578876462711097030916182652430335246328442057820421801863106741076341463688279606262840564509910877036875281434949294442222958882957902266903755292608675068685296246850441699079079018459176249783429717326859919203766215138627914030784397480809406683293810172637071939360503000564307139213797842280125646124089080701673517765207544948214985028658774360918242435375983734526621357956596861524889743803914192128511785614709716296338019064332572535828402482838120542827624730064979946832107588816155238512730388901698159650584359204791977170332422435969599065230899462158175209075196363681308202771679618489854092017750462944964329990114056095141013604743114899553039475525835052530067743749894919427172116845837101310283334627333731018436188031903326828514351629828930192347398320977126846138414590318503553729613589175147318381714908679893247388735357619222213546452317892859499915340620976923398823104538335091456004279676963448117233659348730647129726892057820824801739403896338571895285471634060627252980253434079404396757982729863634444470428143108931224947939592585483376492317012550952605840203403213915508197617724914671377384863033534541167489576964399571273851240940643217933725891913614510793181542202530488597908336812022678717404135315274627535228463461015739507921557354213531562191057857295895521455964377902039084266931449111909642609041785061598664518851421793821670774738334736112730939984587431855981838232987905082202540410112949810874416176212577951556367563455265244260960607282388129559660671517772479041887427172689115790883345169625548195931543545677327218274773355863636738512690532956667675286929899469559107262602616829947874467625005171788766666078460344518878298124512913235412562149346407759130646685397167297018999956512077430531959233606966902130516185010158720426335303552939755929572387154521594278147284548658513802842898361887723008926243228095082938865192723305800343586628112321897379748584165998855945579778722269279659084544296869777567793372570297594668719219034615509044648015048577772206848873988331367508236624013327127096101124367670951920016850439383692771394298577331773739667521942517208645855787526910856564579265747395417197765633194348204930045574456908636010118052456360558669688390105293126616111464134855808863782812979405288111743531892483681425886058352836114540164640789675872224129802249101870119900233886995073316462341067717013510264937170864839790443556849894740485941035694089839709473793955306068748868524129578783942805931043668362498287779421711576225732938622868039569389283893490534296002064711320624771864403423406739899978752635836262082429889556541754807221983136423478809735665073298422209947712417292860016985962173079834277014464794411044032039650461761616353387197826931043628044509381759533991000806314845534780046407573493399206187833472464889826148239551981914460647129715532066051231679892845276305758606694703949598960236467098141384997392455036598314623858173521266802528368517324482059638869974123349101685276774506984954363908711044132969029588963746067691920708779285817834771650010605288563412176966753487150405003956461806257209591922379299168995303508830236008642606031523337412375056748672257914682906620591402414878193280541884723184050445872960752713802134137739741451510194248532586792421137596276371800005590693821420103207818790542226147624762747948776574710685656056770342214749426579619870552296838083955965424088840089968565148330963744090870255268196064089560884904839975764141922153379393338050474695647530879898346985148410368556278779556418492141164300679408314008227923475207908412265914033394445025873409242311948392611706688087698776555771380001768793387279936319640375468933500905473335001198341715291815528812052820425593522276987642876062700123812774038729852602661007812079303089428604794223354008864854440153583295420356427734186758420506483684495861990187104048918092949953501318495491375245631059907601552452482538654078471259970134714628117189846100410421244874493697692897838918087383710086760763520928678304299570281235481680227192646146127982901043477312835899594200587553374699218956556565829019236384313862208570011807739235121679963093504049430563963409245656649332899629168737228350838840042991020755081998976911347604456760920614539710344362016802458152866355798862518430223200566562488730289229324801185103157439837081914239950380112075497932762401743035167425864209792146329225962078057534903529228999541557792002374445133053410721365214364586212847685371085368924448439460745694924915476287175960107392658252729788429015778665060653892612586513086116564470735160161486893309918778739771410631405003954131551227861470401650220087743057093234266634508654127286531350922323582389316613729045028494737822804377497911066322427409070903066347868020676155700231179085399394659574191775901876587510523407741621025080089977840374838506282926864137528744195957583335248788574354653534134188671077857930553223399143156049740636828369130652866106332906098575013508858694322415755341641064284332551298131435054695229439681978940696854718337598529180895661548504720058374200709194065833818414155677177980677114874175488045556936298723924438509895311892524320134157255584712104500813611795635520171923246719021576969000091294946099264723228501163370543504111641159160243197102528284341065202489175294814942855270525356058812168610239561763330525633301351207969769629655254752494540483719443260227025904410188519462832420470993987435310556759358772718242335414772539680669776281985938521898907438701174412037691759549908874833856548503789200586935494777403535849740765199351294835480585175230609032364248438453649387082648706536711161237934265538056151359777375822763833105211264946162316887519946215422252707337366679534277890169887283689984890248038517787420427513998038268554301203708562662745190681761016793025526698235105559350946280744316699703099779215372442349650310177770701488654242377755503292669368812255599731205135752823972338304614791377579836450971111101831386853249697886612255765569992348873558233688602445750984600396724080859273245995485530878731056629501167951616871812668881933416896421233567936446702346857093253067012381933247963702214695732550038766912103451947949228822861354327945946930620969118868751568402959117616193269395359764721376176285086365943289468281088318955643704780461197670783220846220541902389916243824257433586498411366838760342071386353262723466490601438627699586417803084057869738917636213350698046049641330489620817620850362488075644936399410074181287073109782239852423163115512687743740431206685257798496231098560288043991120548208492379327608571068769904512622331781555996805596089216686004119330002459351498139515583436844362262041440594582639184808774084251645109123612460317059594936266949938027958676157150334621320129773293712875766459661368543194438724833957605070068054515246414910847679608164787808684069826844979562841187419509231773042402727611355464993268786548635589148011604637705240454665806815717641365648675596634402371072464030493924785015457542820292048064392052394382307157898657640175124417808536072957150186321095988599935737929747538541496950192081720253762391648628175507065761675557266529552128303547640205682068748611149102717977939683226615846833471684205530285071770162709328049760108196359989656999034180920695719208776093382785448793827182332871658172008340107438102261696524032492737914080058492540702267058935940107699387555276361897663998255159588456692240793543921756069828017438790045342787964478685472535945238307058002644684524976337241938732398708564111138972447361597313936216292703999539776648324403227455612673477836128835965762648805009548303503137564684033523360146976570650121196969298027448738180368356199378352077759522619257824097370741842082882416182107565916243711126365980259763571007203610784821516281737426507260464542665978109312652464025744822109567197192021149925652016707168186029718261075086416220894694599874467926681296419226520993984532749269180744980119968118264609093151453645349844974698879920590758858750438037687530536067965895654027864806120207690911317568118878302397502095751091704491279503111483941893378458351475179161620169588067408777900244083539332195943834477567765931506527706833433039732570341583756355871947382385524255892113547316127261567804750461299746251536793786575684826404318956120262883230141305298502614347842756014657475414024222950679891710634483509435767370360187362126202039583863014773312223591456029712370505784164288599159137635223824989633145417633465763073169756749432258809009487977794046794940766547895222770544592467327039773197117710695111358220152345402118501956232075648779697132091447045276812195981459493222561125455314009292489174848355453023730218247926732315724904666661760548217353099363118034016746218326656120599580734313949040064511193858727056556768200163470207408037599952690579959151921165982428424410023920278660596101826656185610839526554000380939826152560919768639104522445164937353257773057674878922376850458856385652027811015584380539993042420714149571597645632999243541321038405203343849284635320547263789861422948986461527318537712207107041087154863622438526170533427280171181459870781887550485638881922982977918558286913745728256863905216178010622552571037214972113541010721644619590141010484450739902340157937023587558346315574071874221441120262565202806594173910771455838454924858643488597643163082671818099403044229897103117111040394693969494228594971205118465487210932817239050160546914544426418105533833811723836566589944302168127077512918546968776417923431684860273686535963934387823636152241485557521283629419973632179166272419307464972899885539176066904169236997219161987227250077169622637082885406211533723475933655792683624072427725374397134082781985110749634473774658702666953041212344095005774898624759325002462501749603149543826674439558825721386535976556132939430971582632463129635880305697265594937341549913390310192925083085528345393253201734530107091066105778428188621648302382273045985197872859827777858404806633540018141040251565806899033038784516521734375123426215053184890917472395271495356611962239278684458901759071640241078260763946747750964672788052312899750228085121705423982291859349098771355319269951745702107844274382468318842626511077793723932656264219592816273122814580139035431661001451966583292252012182999213048417500014865035762151760687470774859228779542362767398104973422900436528218094351007863997920237673053495725340625001281404479007942270742849385650384925080638580291772091493501752007030916222913726151873908441300084374864838603570328244565970995178047297900357539500621223402344229786276673023886031886007568417763826684877011828451384058989416421578360155108685723303666992545508483561447297379674747285945367735195713046776810889855719784627526119466779499228336845418775884605141908807309831532383902423032568481665686530529253443780268403445867787262213219740315859704519214425659933106006817163966263274870615301111216773794432247691278317394423355139556600696408984582849425702118198312066009852900534583889161522594309880995001664996200238342864159125462876037462050207535127098931855605552073258236769255258951512746706626383467817784533046170248416029596086841793805683275460090556156973196723355914534584726082994708672898288413808577946910193857084230955554997322315896857419146336097743054933775188210332761778322930326963412203608367927385206678434327572314654046737943398829219402363841831513763351474426322609168811241460320922915346785706888254466495104052186290290456723092016806663602368820919251308308274007002587359129374410262398340584738431949505668985969924712010829168149928154244227969005846315901541899727478432215381140688796268268529196895899386078595535680211027365194840305644110255572378585217776903163874586043385628105094224773722748626393593855874932606605950979916043270894024118259594274254421426223745414023006190990098081899364534182976510304261351934055852403279734478347817445551847525431392006006572624712937998015799124364539596827638325644500595059392516910633343135750362259034137172243396682615556894820451958682748374405102867231336822018254643771001283121921215630933141548798607226932233868212358419706074847502212780134526468095399729006760142384669855369091961210738278563865004941381766557326447293432394527827118711221675860792267235162421972221477236725718199205703576517467393601551616751509649710832781173622854379644128826171600426440276450112391199201656363130437493003429515672932192865349794820320208924943465102243092576780856455882214508430380597623187272771518090380321939226752249710214239294440977035323878190689980596688748804423957463219586835106115522194395773494267820558952537654599954501824018309243474422827802483222420924089831304285797334973960607837767152541409192905470052124861838921618242163317445357092065558860597396962101211689958417840069667808457786484957559743144232521220701165816744326246423435046249029435784312435949303498514427324408570767886498932395650598673863185646969324350717771150432596709061004026037023381410285668810420550494733472781416283943796435247437564091105090775040811019477852840110520873706660208858525682826412735027500527369505140453249735585875827349076997514028618218322666110780639485223479890455352343223554671501716969233050642640307249061847928425568146862937246069144442258761060845880488189491503668243834436936236822484554152998575939713187910687402571572813353494982828252482302776285686530420738976440106111351567516232514163443845206220830054868216671390871133924172489684386877104747934239677294808121214340014461871370803784359877490187869325582828305097778173554886489411107854369405202387495998865614011448903224996593095839639975555169123289926811455387033279131841028835685113148648960588204040726257937697865898779696421316994767133875498315492281744690621796823738095782121560657077846180254596445109472253280557287685859998100838969696726764482762299990440296684700347603758651660605209806614000324467396374693381831030947693761094747398011013056089725279870033513293324763294531059910641059167551411786917144388304114493060923484437147706604945934835928003810457346384720675928064204292819473551252173265093821290851763828401736226463062824350946929342102059219945366929311365676989218778622617062345745715418450639125458722171324578616216989157402445414854531452828873329326168906000555375868211399375467213723255860942914069995146677486264244997487471171131699298971476575006530382418584288338064573912806728470029116024364363657475077775014018929566996438780256979345570945679592030484922759570089894704495291730474224073680481788041532820025717123426682952807332024701018541326861749380689079598579986732081927454576821946709164878569367601941869169303034400817727430750960129156041595447241404125396451683727178135571692691373770997536241309167067165901333512711918933274884567600289009708243941099537096586896625628626695825905863887612976641830389653371373293889405967650082787471605717334835000039699814867777898420955493948444319946610208852401242187670593735933020547830112763055674155064703654333848330609898303413056341043522560868067086860613551453469338360547760882100628376073972276731408658164131119266277586523886337187805934461633176710714981209969231859060021066604637800193757449443347731356213461542037027938261281191322420156876811203714607344519586562722599834423525826201286424016759926175824988539365660745396707480894588228901126188432523906604891705703387531023969269050775997203113485581689878333456588471283004680520973603548788143815090341202183415340825035131422268337269470610709649872254547095929442820960834353857596645752814179954066263958116338527209640069263838739910275217960685339561137812100153773078839005113554867630105536376499333879276745114489090048402624393465993320378343412197298054555003173439572039261314796837153733081429111945208029259514255998342808644593728594031594397081971321493395735804238200848934277179685543193674715861979642770126675216338844740886257638796349707884094805348824644967405628666288202088000177869871094131328568660031415948515963516870021358543471135392984933875155771267792242989727594314503698745971567766819921293226028690889912381706440150803856251806303830994300074346849728240475770255261800210776068641568994067319857052918276309164480824562716731750954116520349341791093733524669823935798988484272594042552450888583133970616669800166734447502820349058289230012252449517401703796529071680951544198542573692520506884408600398109688764132891125995271943962155479742527092266464036667148803887732644755932710977745124364527159801085828565118628289021438607975399985534762206613326822918161375570212573318209873860210454954275871944317109453093979604468214875682302444601231904576212120510441468224310203750734747742771295208345023042317271398331215176499849406023482690099239799015328233666998755254327337343798140300802155669197435934603213776395542309604644089196263007008091007137480454634650853692944480642189142663313328577854353063651372984360240923517638529609289384801953177944944836474129366605902214168699174308440843723184268617539954612280924004828144682193079650000379364290390843881912211104398658610728657247816171128077106341218427858176380761383532444995731227493902969596476996654970648291344260839443876910033461992667525877212239256391446089949428594955649861896923925776894944013218116116328862941360245782432864006498660370854940971202414020024626730271773360574368539657022212767097713298518777346296110495616347871643811444274010978625776748751761122302336208260366822113694202667380631311069186849998691486965937161004694381239289530904743734700388102047759368880324151633206416190553385724418484973482980508492009292004333749618411343936357765085066934580588940906913761063678796726039765550381773703971331966059403166763825377295152750908728198669338716527192061983142757005602777434309761502143591590900782622701341662787503485683843626855273552517035017333653002515122276596346601158590228598306819636368807824624638576910457539566769772248330928583094015021569813695973523290403731202849003766318554085914355814327105178969321413834039603220863518760472715571876106272971825931827624089682994660668650036441343028832840440930947254968722055152007381071961461809429251115492817356378387658566627369016789365607819284393994587422175322338407795308517950652949414215449931358974163353411214891394905006260345773273007709852237885739122248252439362232138368653194930179615686806770761689563977062736303842176395581958797667120431120455084843750435567324805750430507970054866056011123870460878059996690967302208442327952320810723515302438143781108890674310095306988171764406528300690867770110014534914989639962813185324542500206580257831038857325357022276686582393556947086504912783001460858257433294380240937888089765840835206937206375765077920062323488746487890855719638771206192825994095185252276906273539526488127616118583094438150397660876361057226030071440145468730393624520862131783376746241169930574690916978908867232647532107755894739157405113214788780438582788967903025073447454267370977740471333400723543859310138977535710771725277687882729352596661078070450625107614909875161616618559768101421412435419290918210590057428659199834996705031235016892962047962737892951962220540553078035864488190044266164611107585579785689164653825668979512511250102377126797878412350992915237238432752876823769125008729378386613537831722905756320013694633976468062684403052671787703255718951456679412772008532675580153680367651307631324030038608681102509493970641087003797247990081220992014986872977667606034080990297025906135306245040291505671417091904950943885715884507464101772333662225999366026966601982534363375980134256739717081998797898500609590896453930548348316289003165174545114745838388404839671873698418580694880740946805413281482421031458216842719899659167881446201336160527881042193089665941471980174901059776926735039695705703262580766339586044973517213424167670484181212023432811933198685222927036829212046571953760409606789359634763983592596926547175853710826115577862632058994878831877230256116019905372893367721696850291097378178407129612019718454138295673430342886289918434659090758137725609265378280656255141634041051911996296959811416150927415850595561685991518112713607723290649734219300948042619552835458357515898380239243470313557491656024505666336745631911865586591472286621094442658210612893335214331695198535321197716798130902618043554309256011225650526289095764711562770898333237628842377661163167231732485296409924817392461660145560859434160196038841777552377099885744569387161849556110872359907888766289322054620349488071915190354097264105953467750543955337281942643640206480430178489826174715931127824432035358682493340870633691069305980301614393004694323685412045808107020231373340474719459083234248226840298381113159221514990017968782451223024150110158027400613557792451587719556858557648276879610667485732814470839205448801176606438686227738022799548660096156743079858481755679458202426037244041962101019589314659870893317505583861754320388803951056554051629999133906404148495866429948122580290653881301099932948667448399017410310965071584394274058297467668395137323816119972517485972863025504671376879559137721939987967706972823568923994501128472661466241653896702690248833963905617404271241031764460363611120740386424184156440132303574235093782304086922064225165421102540026010623062109767624092225591192924878708825937703023029702816362798536379946487875369823004054674285890761062366069796607365011969271949577928022600731235509853824938744653620476272142416711826545394478230687473454141074902581546694694035660213215405528344692796893095072706256082061206597526808534731331626276880223440360067566541974110435987651886658947334331173777604991152354809592325963707213251418494520584018085365852071339090697927298587912062908426968211013337286396282237744349925761967112644461145535495999288012675358762083221192114405277766024267225763407570323565281759043768224877239525946836786100127895102937066818160451027931573800543582537863100312240964218300148064694817372183486331144863981752730139228021528953068999267017572040370675068207991006565770746191922447311481359244511926770848607453585095730505643542282701752980409941531108798066797418942968917841204076779454493528553425588673071929185441258791540515583727007558101599992899200587068837427073035997642662614563470331404783260137751860492058971692816028182519292422908294081973738559363008460020959162438167926034273014022257667921061618072403634748781416916137219548427960782265212045282556422942921736815981463910464453484168367015648421832806666910306345414953237983028112194501219107608920293089134572354137184061830972343011543916640734006602590232639657685993645745534522079824528447458196329248280866940296592522571914068902511500452364578872823137674543593049644778305969856812411534973484785543370575536014578223606249149087343654313012777766200341363399432083521243760777273600937450126300325781163420339026482343558082482981805496763599004336970697204096218262224963413669238080830265170452499767862916834872204356606746914072265493351633709273206424069237373850769996918260129913598373503187641107396387120966508134213802152761626816209173663186653760440567195564014810508622914586803188626135589783836721305139357352670557122013331712367165865691617522372546793817297618486150245786746318650640316751771614958822213258604887999363370223990191241672647946602925751901519181230537804630066494578997178082952558955908862851327477625844174869416780785581212540022227401737957816965377214231446012003705579387908347120159356788331195653086123689906781535454987287015554784292021580433894350277877472119337743851780599773962434594182634695401729877742847202962261445284437144482333478209474315471995159155547824551750961125600710068656108687288099243229190130689053424231227403954333653542667035375029043926080117032431140362375049152664578226488046437234009215797567057207083132767107700475768558910146707014486177871943463596485736401995153443107217032030721493796999975269583850431312455144276165438238499614918722766407785580310449427852168358879333052222702976647271938728015811569022311475953099135111663249150228648622223993975543960421355649478657686137513559138537049540013010131465363177502825626653850472644239220614315411830860129751694843121183375404113997239675677274899020584543137499147710100600670588284322197706507631084813329786871502647197643428984785567130177189799716905601112177984268459740488780297713453609138877479509237035142644533559187561539937678417070519932330430094491103949288524584287222982878540802196194646357306563729227385264326060441193137492801169055998953552668975938580453444884504332934457254893202211000548611693871731198251759179361870052253570085390467130596107195360263032692861743049125273064890125103315216218321020876375870065964151174913610038852928227209698585617608804729005696205660024806704696586610038221848219883296759924907161992690135239825601114449624379528511190539756855945595185402243172548394247240992932184764163623877768744764152547432590093110033317913787335694961235639841943154742371039128989406222740076850053463071961288676516596836435883653036472289109510835197543712334297991739216183867637205564922395216860600012768526406153748411069451255034762393671661141530299387822501347265096434480586505121859506317139441756659844093404147672618789645678138975124714538662526401303290327043516811670474163320974499562837617776874938438807057524039415376493109818324674132891441055256608738091391627110913146421529438228551333451156561662730239216034622924995926599668878126197253564406741524271374064367037913935951878691491457278474742301319250835269253495509225589379194554334939191879510084088573614416395546544791955984408677474127126589368733046312601920898190680327863533391482907279874054197135548186703563084509399635917251597362011457686948169981281135379028892479004237482391908065579029414493840916054481744732913086236883238993864947578072042289917466818885216675488917666606926411117176803923361994974219454334453315955318673385637849464176907063637117307857078460286941347256302540407127365163194793517011342439220312562571996169510903716692831089233114770305045426581583704217407242643852048919012428785417659555644482745910544929763217185494871571925981652541258863235741782243411424543009447383152730707821594858644017761344204190603437423109191852089326269226515179203267550357839578679629791478004617599117301896927555718134113365592379463248221718591275776376642993963393262894793420562031975739310230996661613224925673560376342081743229264471433309903403590806617980424846832789559551807799119700636580082069429180993332307150403999333147782801799682563628113764512724079833049068202258871374463417425893316895391211187199257091562427832349617029088606044419909608561170959996211908422748759768730766810181284441641463744392468498214150327687855070222690158296928303316815093034078462298258014744408893439563214785186242194347663421814015427671322032615389126739851762267554610527372357723010235271410100511453871995755791471738946579080777232543546408094857034302067119197911060983437007811145006196652531701257918709729849326863658781701530838241344015208210519228243669154915206741332578548408358483846815271515600981317624091654279657019594087701979292617465238638349944958393886469625633708044310529699901195750103383863499987057574916187468679941233296697811485843267019610431086460583526026075709591370703509268800316312121077686148789091981028766062685416194519760957474197819591350365157173596789109041087449168447165629326126206934421790294379695427679606509815833366848641548717350739377099248091421883975492674277468628249122627502473714669955507542814001590315749838047745100941059163169831580361479679475338827849262936383991548703243480217772563626865562141735285539016396661879954368218583241757627254032253843426425416825847222279453701853681127461290783549840447286611887220792023868411083899080114632830721957663091942748315106016226164900943951299055138268095731620756761030588910420820868377181393956715172898411214102347966083100654863394229345443838489739569481830701710003116479794684196329093208004091608450550114376675771886436840910369093944032585389086339666232700481797042179966066087236185365803273734665363360498232022740026922809998229055071477856568087947809477062140714442853895123533181132228013915923198435849115413295204789509711578273415249473909469678742290173600897051531505725054745472710933067825065300613322222469612249385208661827032986843346572392242554505618695708697369922468530598868727060256371563266138971607461867893964328859477797433860267452154618076611739033489597537237255027996769281358081180765270142838683185594535325165988938593967918996859569270449568757894993836311592735621461567086769482746126182904451108623255371569109863682839240221751996150921932171460307988407498611022037344105637561459865465834159173873310138303653063446848837886367383506990388575444714681159863539849938132432702617864924872658951338662326726857951071223649778516704679768903371576936849932785026616884238692197729928248243601868569446796486337245143894094985499290091999442698329669146745384831100434099789468244469103698652145169954169686700865515014571498604581105649737062868582922964151466381793016501506466760006842902439161868904780339692582958288860656944979479782271057535893531517897375950603543603909282602060254861682818971806542482960580843932073354476896618368358589599242305895068564524725318888048480545118470774621764997746350833986571572771142753529533043526404166917082412845569698386242006593272748963801642996622495744269606606228849940361561682910511320748123013457347382333970912609970044409304462123735119559970695657873013855749109988645487164127055207623736998488806978145532377759408495070389267586193037777938561490781415611595604652073455892515876963416304959519513589119403395689363422019038678224154722790718459670432290226259855529447737337231123178952202319199519380476732407690774473363750136313312302496427941393249860089074318209300364098213052921146136589933136726812501438080117275189951732901303436386652932542449601976750843104315405486276822112235480884750423981478204823116062881745333957729691047054457383959963032557234993834766614733645323334911044369731845099813105424531474023774152020025355061997383260811389832657369198985525279681554615129982643532812895294708382579011174264339341855039285005877647002180983231895300997900244756565188212882468721504632761208197800301415971171359204234049127944049175403160616361093252395879984779633238722128608704618119136290976558643217126402864311702898290062629062354386247410132437206234782225169962662241512012047264735481546473185891763094272546537588306539268471699597091673787191451654861761050053015381439557913913253079633896884815590671206858065502421027569981561977324072841062352316946549469477039492336056201061276920509804671254598680132199017157448908254210475786515987812554121561513987494835850099626339798888677014543481414366077766640936725205368520665540262420034864907738252250235735808697486880752057328377452871458606480249542437325637532362149511569901554051043775435670580357497111015095164515913489492643568631770320128656930245919360446957047682563806018451033147456774646028989223524679775154778053811374805889157463635612236145466682889139578303486594534895274187255700227792647325776040221322447742876225959001493619346022829252695354335355477094540063216844296083591047405221342059363448367744262954167132982404102713956118702818275079277369057729226533986110518097360328395726320824365866878832492111690687258734364445231244977998541979850224153587894230083785595015793955072057377131640964252492387233325375744762546031624910333626085512168845853439285646877601289270395875567229389455280353792548235442110180733479966250803611876459249060664709894522991280390408800208230668077450016224097707152651889373189903275008053056709143910596447651975847095232013347427048517785319862407383934568649135469085846733601076174290219126789717978558387494373286228357140721354134245361457299333961371587845488190217558667948950372026326326330874264743625864337057595878943784441062259740572482449343616707826673701573536590059046086077754824210783357550280315843343881533000223422684339935267880257518450688393926809719348589333626887040611996668639176951586700082736811257738915785235167002588283386004920528641329671937635413138051520972142158041473921680110529484559010830212861072301617993334650293729962190509009330388543293366442387260350201214762057751415177736205971864437312850838860853395289888552410038283717230509010363062555074590636335409886834079467932403718670967016729797269224772178631361757559099120372022874547566328237299044898156767063888844684763828092251317822245480478074002867314547725479246989473673171051526286030214158212488461427477671664216591063540279011795298436987514116100438818292664535392972607058413899292020990577740938224930070924498526990619575686498205729328878295492804248750775120600585923342982812161315591720716811446485186909319649519283839991607579535819224105569476977974505479420261668053239436783124582240106849641011534975931379284283967604663374892564955254041036538917001139749545741920337495995404797185917184872211131240221359779480570494004409898646176809447536217470035379686159928930885724412701030135861689553030761951434426990628583542232724193619125033978183311005406087494367419217577768189745199020108949231943830681697302047480456688114361142477020362322867504633326948922198484822681359580359208650690031905122385915399987703510881911312744724225152089075680677926617109572119340183255509136632100503414012520341730064036496640097793457071527213507309099868642853834344311674837408268733143009727149679347163671804804202285597813586393571463862183545989854028098866172128478055284898914403784944015449410607160882714192015464242586219624394284212858756471497316514444907887532107630928878753480412969098320350126504317562288700063641855950908130390218629979634198476472883283062753035281096881175633395356129748394512534745115080266345624411803204432033157074316891991163327547116727466919491082215455739569020048468250287341910260092244654773467188642912187370169568714976883401036474665894605636891955626917178024606108115234993749298882800347757199198552455399241499288150008780730964594565331813648197388667818548433488455675357206728987657211860791495703264126782616035497064466807897519065657297798933854402090985273237102603623285030587579266268435021991310641326752967596432168314326012139272588996538629067997220782190294731560124932394682978918942153070788650617192037413318638569780803551597671402913771114418908204590982072763082376335618171425418049568896807237989080382307800567599121240259077365061201397483721303264792229536544036541666168355322387209915290056852768236919950254504904344642413677960200656083754833136664279129918625130413949546125872906796088561585311974595582281111008631110811049117445551253312628918909993827690937680801336181863506255103833610435057264986954181281358896284160025988969705944327933271205690941132539284971194424983669447681901890517148815473370175549841407145824905168705027605183959134286540996133399636763731907272088656748592935565914075231815532227041990576911837775056515581425371715553816940247206490321757249847207983829560797637287784695401045992786141103048461593285045713918825688327134468244634310661045383380178837403642969480181245269292414060523541484899453114544064366922115400128967274258191975945988001099181686088246919472223831881923658611805654340112222330534450166896502400063472817955314624408659083200316630455034284265355718619594296833022772649175558134344224683669950309140014821611882007078064639623843314923074087550078853844418083400817126446837180883702284028687282046608764198730133596894140201333780825737808613900834773498192327130096343072229523794226942685598746275848679779850013480913155150753953404427840882814275228142191612473652663320794903083533109708924199677047134257955605249075233105594806848032712991253577313192638297410888655362878815360822314967070438401715782634660820805941317200826513194352889071207660541237153418433765772811849744535564137025071121881492142288198548802096572850891924180621148589739599481288210955214650460933766534354753756221865367469058739879485409399823253821059901021821760998750670064235220715991958060406082868784815514096759852026034433311620328770933423780132537622762086874020237857719034480576398605423070809401060497929599152274113968810429476913699281368952508842661683439577274704902931766984332636314033669179749651620022091527377375910091804113217177356989254162122700523360739022533480098212559785251797967058199387966595978527082613925646475855096177952686643087998261924839115259589216228679220750754315973594148648795721978801866101406681754731793831702264050100839224659111222039988869637060057875694753381549020137329827012384644581102464134060585730016563904345853598536687826473529915128254645743359420123356235854143634935914211717237904550120380460529145238976182792390920511421227802393205287284044364238423717682238365646252025371850079684266243192854929588097885511511648730361774277359248828758778832282862782242157760674255645688315265327763238662205566896456918620554771624547215133806783592480064728092166368746294032512210257922721295249998503080352040523049379970745899248769402064365157726007716389125390997921867605462235518920308212561703567389646425466867767605427050033431327209180917063275585771157684974798457149575007122721651438834445566918211155754557460499537790854514957346560512324861438250772106621357212247129163503755711058928285167190916941574958228902619295547382609919277227568369258834073226763883259125287738488351924587348104546588599196230757012602428193330409951816448917898592451938065166007952899067384071201666397493025537206929037703397799183316852794115212825047256009717449115670254691310607421214426041322921750887797959642035574607869905721498652705324801318374749711722868655920786949185351818520576534459406273940409577287770646367803280099829978478210879811967660986283511443395382234356706441120183620045896651140010502465881557764277698843139856590891927880199650537397576913526599708681975272635583998539845593457800005655396403917703997747228719143905955176518630221697698836967529568633117473741789364319719671721358249342604403299801124559331803119356866280611637709414305489898673745656853421025104018970289248617568355825020005075283143033905586306956117532729689433983413721227853837802535614416788038782717231809710485828134968089870556604966425438212871554889125278065274658470471150140398415534120636066100658315094455709584113314097698978280329007459188407051044165727636827663351245196859117085211943068932532386731147741563528732102874285913278460227079395951879763294169252338092950048268146461237158115486318848667527877784116750938893061022500613504599926619900848648957085300369529747819504176304056232004471554594172784532896496944983767559908020187351191877017240686555334091662723173246819355337290174199444711370683903514893529498757315139359131121156210932785995994183039866987452624815818694451333445191096458203268968134002179120723869527145105465568001763755051389235696109496135486427702143221866776322443782173318956129326983751833742205537271539046136973800437683524235987459312691235455911737895212819519348308970687242464477562183007943293530505305071137999095476853441497254278302216129237778487870967489354962986783600979790636808956772828213362294468901467350136634633729025040046740623339585229366708771982781501346167797236743252643262726478051986869798266958835140844933201009824061027115410409194610870191414589012659478852861326864269769406071153101856924801424690089022434084386887950143208302455557790789192608936956883103669970683019434768540305728281410560931397051411865256703579535982451822905586841477320472391027925251909402543206733088138553413035845643128910517112178990089634755748812187796062263118450688518411982164824289981795229831715121508332715264604220429283198084435665287354554756478222111729620890376863538283615537174009154186273861157159857861384003653844236162415977042968279872605784075744649691119993185298743886189429350805611546575355343552103458785510679533793419785311881233430634836043267628169911121206443454940031948094083284269040264234783994028089796970446068071275918014870152155599183919537224719435730166631072296504042435334253701267689993850893386598193960248276326777100819263057835484492125091504472132444312439182167162065082497634279341101282652621931146974596759658613044166152267712131688471248335122662413344195394676759241756533336724463952161387333440029594790178858153888946112378297633345081136294888718615109744945950602742329462931641453864113507810505339884228340350654665562925107679549174945469074236746106655452421843235502731050017819647907380421141828619516012350094325832927518816385061703175565622997487084108229174764941868769208353998380245690708310771221487247952009653305132637367327854370030953178344567613874318576682058201333772704675218526873375636751289221670625182906576397726781050420889929802442182644695262995414240320793933699497491935782723471159642368536758971556833956625391357600948448287375076452797551164694026097742449017773952425016615920390363437702135263667924031461111683619628689005414627042576291324718191807444444908075365675578652862521504688903748232570896825315611352113580714666781549241759372927585072969569074577364222568134281126774028798953644345646562581177080172991525421686724300651644380584220303218368263514137740785763720569806372260310335906977966699064170998971496299667644373180904289926534193715064261177094824542844852835037937445196230904845428442088793453568652989903177274931691249381681637535468991896958280855021366090169401520931143575123120160729400167234036690123668796925557795272821233865454199765079197887229475880416058531499277909044312340046828742135238136762943850978880827312756372873509631893265004685430773803116110997350605403671318359860197871111956918019053569739348988700716787931962844286812526623668403925004499915427429160867705286749030837044461514409988010728103933944932019856148925146203375346661394372631183270472838314884887544507863291161014226045245673811128698695196522833308925816401158584988503980692242645612033937830334676019124434192448528874439028285228542515996385393116573721526775205564313568198105753610962816487697739729607434712454547679849453061881453225558482406590078304373803949773061666160321249082629913163481586148603730999599571943814820040418303844114899992020237035577135516011356716369771732268838119220446518432610786452657671139797778864013423392763063847727928850920182242514870510054855779942782412934954243051304854987390371424618247394410699426205326430523838802560104327362852044311763679616300796456313950232264139858440932050831205080733914140793672126949825287196238159542730039649954063336135991721402320549649141274922027874549118427942664923150498808576976001162537432086023371850365814351772484723870058366969578929043953464432951659795066387465410681614523337632525943695005115994541431831437191837216475814100828843806477354493400164722673056810997707465914502500231083263666368932703156969858132455460075690196766217778129647744683209919447047832211049041084684882686938448802229373638980252743660275227802635882946687707393317517093844242474083194043135730727651208294679790089241185387233484640357022006742297161810952093177057120105177984767385293691987920938901899516680771947542532943240556340161628934414986560183327404588962935877911156363547126383185813156782835845360844272733248851977423108112383801771650655231102851464433508962620827507778019671032347404737493559885959127753284348009540781574616682010057156130363390304126710200415763121109251994047274815509263442615399914851161303925659664335949408099063699551386969861462117933377211011421974985166178309277317604904638657866661221637885721205945619684542999681292318634961788735558658141482519959004065429507970785246310503939321946475487447108546809253029820153035245164132895811450025716047792256209011269650829509770168487748176631383525464548308033708135677687501060216155172232689004807758896933246778410698208707509593622193826984816621526161125050341408985870559830187337038547313760374388397381838498763294560594625176827717565117823877831352408675163638758352066617059892958794505118411336082920714497922991201952936764706593062840247901822037146450620448259583627952268905841313807663969235730404132400058276253642543901976258361477950695426666515274654466749707719140018790723980912992009898510649259901747681434553171862294668918405728530307739567004035654070880083907382144324142698162368606740318783376312734034849688665745898376828460402836810646419646402130838049374117767693480122319811968190857621521918521330574627371069249474368516127253322083262358693384416230309785769453766812748092400538607556823803491755628357474319723184268051282183461306163770089750986912860718425803671982480116072669619313308875507179344808531971231456194816167753109025465342237583560068442600233789087364319317631899552502541374149893429690988084491766782603212079087647556478741256306115285530808378520197805261968971655823239337414347920995849906740059860352090876914443585296200075921194681688304906034253610991527324868085888280289340799608068780450915481412749667969150970489125430917726542312105558396430425226687918004619995811634924400964756330276151685399682912732046554275454886331822917607036591687564846508874879765321643668713569195869910434957472209735545772948311382390075236639826734422470863660636829396946273561400142642430935752028640266790319606870741098311798473054705137210140889421830110468340776197145559122850787599713463075497882151589064864409816300316914517959236791053087532957556752114946568487130266199938907820117043600805199972655146743679143202075434055308430911719366185817888435411275383593693831480525969531733867297002815060170884965615253156374942959711562622937204575420529334331672178968801209420479593103929622407747831602958649700427325134028370527690593408631976865305859724789089604055237394309179589490049192030676362384610022656935127192780438996134544327408740943377108895120647518732819594320110786880207990897945957809520894308414705815493800740364051143674053176381294669930494748034302462682110665521491536099301666875040282639989942647664250140730676657418942059175356843544154712172368432559989471895779109230138263850988042704646915302993009872082229336042375328052871457733052303745133908537909247579310531718589325319724713737960919438757617961448446089846306833134235800728155698090886743004771422322524005660201381067958698709369458974087513062245535246927309330799245227036794700413123366535778199909227211856360218654960845374199064346486825759889824611165544331113155701823368089486035057524767574547570517713605822314661208815816702565265910928378100386178692740779255127791160521265118465573256350077035533248501799903964656133767158012510111479382909249496176182681028772254284932138120715314364343162170967534867163568810206912666845149966952656682787792556338865969022977030253083645488383588628220353257690887097893498283764911441687449120502479175932957657627426460424771584411653461988246765533034179442634340577716679450470282093429493673723188470668320507273390520690005984596117180975022541320013999016838770150262136704643952681975433511206655400861341900980779893927263696827871224349178556361852622442338825683056528768642142241945326681393686186382662957712006522704438877637678282752825923369066059053233084503995339900385164164045295676229046157680232972984389186375114474524749501581235611275312302013900341477530803457003081234429464535939294552115378960073021044614758407191679598496397412186058184953273398122952268183496275854919963666850436767792460404107284755013562736569157938479627897521236684536584586657138108933263831598549316369977920847907899486017172840559251105479697165799396439504881529093746674782745028414155791148160363602961077494370793796301316180489570805866266592418987476524792562406978728688270044858551536172768878271127710567844101500812251346740651153695583131760587629947146697118942373843121084357456092605255242574932090041988285778544952593788238864518131658902845656631622839418243370214461882406541679692143676025715821952143578395639457017936572517651430239507606055457782295128412565000911760729050799557419727867892599383459400776056662248116132644108840484132178539728902473003022421738581436800228957432576557043945631034434568401160435303911563281685145993134510865468436715501102389827055027116513974633559810848652523180227428147705478777857148453285100598609347407186564782882225478921052993298166612609817354559508736879264316446785007904927202293799064788446680892898596985063112841099681431764706296061175724409854682590371545732843949613129635286438556325698016871549019519184133489958233595298577009492700252280951147997659008803506034820872388377280917152531203269776316084750508499002319593864611181529464738427206007491872596868766089031554895101211348944284650688857576821230766329555039971964014498239351412348316316965203896602535696993360655460116755055415238646120380768697964943189000475148339768649876538958596720302640130878960324356327583211782579327184754380468803972624018997803440902462673420523757406248386075285217030207842737832183582914745009638686852551292605791390575552538243408527562088192620975193569802393814358379303605607646150547792576834334667431331371995552697759700473689818162510361312615915097084726241301201825090818876689885927119231661228368910794876647612805237119312962898716163949177708037761096519330295969045319345859651104312730328847184989184121040869381527314311641711858712295471280061176405542839684713708726512315537701831564350477133309968270193989136800305635449392776826340378746761612199545386220946167058321972253232846210835020552600249886196887934326190363011699483146775196182360202402912738433508123818202684340219389255897564126932070029119901182221439443555940781712382481239847238848394863734576155520160068462508297709464156543426201665619574002659883216130231435551293259713949593091418091016952110111990499843649561900209768184048986135836462731948496764018433876178643891874803539543390979816598402478577852412348686418241698019396307988780272705092436572622109781798015195894380679182296676406564997149016215127573713242802150761696723404993526996432358419838981881871483863105744129877358730708388593723068601416865144543413287522179930490177753051392787078992730963392701476827257258316983295642307109984477581459491955308050103272154955613788669993497447793726231908625933757629054690317479424524638458867528737190721026985330527968043679650715036900736344810755531858585442549186249325775693619711263019486504437204951327492109957304018666826528591418953442901873604559126710918509210548057942692659678533375471889735769755349781817772890145467762358944994491021353617892664746054870617551291253934914499302231896697811528273881081949117661999105742302635044794340588116204061216018566448646458234146344086627531800233092089170348441871618577960417931364466118875949776971557965801023382588936286403952973889404576035403776081440150759408721344248992342417127099781750587657998500974778762268741975032142907403426077752847128048811380170987509000620171859912515764648425860170525665731623318967758194541280335591808973217389383610729397949121604450468195877214112767141049846433983668050687999753014505935849242987207753709634051956190136362288352237224956607612917066701745195045878330898734043125691677543169815453019117303403120599196178047749331922867841470606757534586642653941314263017800285426160078984874416177812518659387882377157047317976643550307811887640143152653532284676629701072726136485697084266964494110066548163587703087775407188605557946781322988755550036131290621788711592676244971263551437425256199110097627864636902164911002562314785596117612074287842286703429681423974536451189422539055174702056224468670117904871058292766437435914791913073691893275220563873907594127522827712960022465694202016733544287371677189601144976070146608180182181902827156953839604665430358324160473752210315906240413358758656522582279536243601757452129288753565346570246199431634659644836588002494213060496218886590516774812737283512112301804017260981625431221277392820288692258822590437647515816473764631443835850157795777986525691960691966729378562403862368613582291672817363500865263375015386701735078683307529311374127643808448954420013498644603015110730187455197664473204403401494987810096678724677753242206505107871495276857956307518285805525006000085077522652578005830240056450137970723668811360238922765157634703258534757029826402735790765287851534344497134194708038243699518047553262967884960081699979265028026187258986633483721511672257690867909635092129843134261735179260117411737274457593579194910578546198674686353119797251124891712656581763099902834739041961725560945218968707226087365114769596911171227335513671218316767253029375122389103799823061190823423085006782291462306640439651850724190939132579313229579053104019766680224998088010894765946268922984138176903635878914494927283993413615584339443825446807264010332014472268677536785419109543781782381088373280569989411065679287588401508758258871110951225903845536032632211106818041993797291557039075756904725142797296528784193977460846537058461399716563086872356504472524440193089996008824737577542304555143007313570761339173400365092867251658965040289747917317391882987195872828785451579473273757683863205036464925114275388318553316748570554248067309950538458651467928476260229077329210667057672254471702374485341538063318098708512596553726830789220719489644488370774252615526523089515095222495969223191490289297636928635749176636283275337634087151092992585876471168802579969486030230855403705490293254750600612816715889091038283534002000342108985008721277648522070657208451802395774384139341344882249892114658728386475909977090866598044020235335759602153960443984844760034239213124186183732016399372642235566045476636991048819773238282541411063292931497366561901564355047947755377953922505332013728524360375686889161010811934482112786032019071887067873490389159800234238986249708877256497295912642961236949959563000221808324101089687621390469603340794840923000086176329247740828490948857172567182189331901382726334301665140713659182318342638584925155575865911889563393652040760252613321696175220051075713821641775148727710037926145153124733995506383635502852934133175151628908323458829732374075045312010842854371986961503375853612524234332397976857438612191335380488912648862505378751019295783681260924674964239271776466765842098472643841617951713954087441149416866304155864902015835456777324029558585794744181936074924250291234116471832203082342963421552017334155581851501698475854670170861643740319554345489898701208542383212024224865519217843007014016105242268091460123083554975046310755521610803196927101170415373512013988512950675827377986000863735365814004179309328141271879776304224195331221304421850121229291880640370001703323185780840583658093809491354285940817257866947843747637560191782629774114890937396637777976571046083958025347140416279746158904702002263183919258066848028587068455453507831439091434998641085465515043409014303945497342005771854925869727573860269572365129409816224183418601214789051919407734672956754474537341357099469465607273066055290594205199178588200915146525474811664268520158090476631758880874206027595379666081786121823557757830126888600618682009470448959256692438614044581740909428889909915572735781092438380249910410728825458195320510173881504703973496018908582120572742111132563747321574051547929254035101294778037894321714045254798700790479448871736674136233692999773569301901919639923266364180416686907201931035673428974672566792440689173473956527280541792877666531946401101043125273997004967618821628899605672458724020084209208213522333497807332034497182525599534475598206442502873941349922390236371796080847809850985577802928116432684870202207611812583828999406087374157853237899179270140135344208968475975623695382260849237572472088578300623676012647749361081514336163557483510466240853786416368436170352050865200959149421750527892445550491075739848996079575431880070045649870543875086898198662196095213179195305148070096574338057829227572924971468908070918107347238257566309377633728269485950295132349700581931698964321718016946525783631826711579453683969146169117430199455954097446910900928208208645396399416617576004684884108920321951819552691286112982993974821386779425129143680569697051928245525120743510564423142840893961835363105622765653402363190284527510566659584104816498076015162481246519584545737207967791208976282760261152437262663743919797043369227787740792882944946662023226720344172785962115923705418153108586205891401031233309529838149879384691819219364014101853138412605377232522950873997052831287749888647609476291944165867951311012177560667119490524703597734237395427690529109216377178491362017890356204800640536834748836837371497581130178552823087181961084435712174152055343568114168808777056403131139230764054847320923396498118061709192914047851464813646205885260362984639811275615666816606923303266735505103374039451343372330491273004209356293361073661580803005629094202503163207028344242141118408120729491861148689757993674781813530839299113966080428442250033755501422939152230550606071146425169451728715007633374363084129046935812707263434340679465049329413065338260966517017281842154079723634218373596277206671917060064029157926728930574520769770802583866908791929176849813671550527057212377613398436226068626028780638590007853302128821091444718952510940759751949246148883281651490746810751952657580582272653182011151964876454781596016892228372662476997961571326495908789623542781581897610295995130169580698277491443312144183302845996012230239865651217257862877425727783208355122389070143863979093763566013803132809688957093379333609654563143866644884777352936307923444348541724312750697158993303187358597142231485935304947336275068276779659423444715345576786938910504634316802445793691224410874185760902669158036298525512595952182771998865848639643315323572422964794039924073140925773356942173734488271352464139824510665186941520523620996016896955373909990125465988876677572631149687644709222807098593076163990230926836970060392085721027901527743643912117015467879728650578957300266704641543321230438737004882793131627803873646925416049038402063830652596149152912869188479447128594945663769264789969836386038607441548019674413981932292797424257965604313202372362441287979972060209399728745127529634587157745385768393123900068291713760062743429991141675931036375411811336270498246010796330210371403278854249241084148614933503839488992658301148620065876089441014782870397668342753948820068624915080710582137096798873057532608140191608269923134873835564032116938054106872793705809763380614248173825575708992611757518913332565424746327366718462053836805637271054735866486842641649405353566393462673582259971953777395121205003866844317678835282088878697543079384113934102321752302368139898133379533448095602884206050665430162172366250953343393231090484380487349208361111830254009474190949459577426954267245090115106602507007158615653343907762097035014463995785307889991061634064067422253448965560655527872907461401608359500291305639552158222133037735728515889577726332637543290562683771286193755909470029178243936486449122628969876924052641691839670472750540089493695441275126917304988297086221174925644389016555023548097927193133647064135587455682190802120156725279441499250278876458885723297158218509503472367993865185845150178457164034393091711109515475081215312044077593981983285603488314248828328378415550057421207017945139133671464641194037279811462654245392514217764912601853097674372313894114445600762043404874084813786430804192358387648317407251182251590808018002044636052935806376739074185138380077431503904668341972569159629469281117364832211392337856773660390338770887818488224766956962402182810692577333918042016960377628500160504273639105859007767562541842358542492998672548681114096882265705268435452097318757432829377457728205492832042342066745557860998422808204986351576551190826422025038393811377389593371368389581370448016703459446546085417933936015188468591449494098066978761941458803493056926188018072912921455356739760594516676837146566466519827051146529461381662021314329806290946219789683346720145643567500819103971816714076674716270791506041139128819606171508256865331437621873694836369716291604653098448968241763680453255861535044391597486955021300124543779401694363220175251263089823767400949012667377021331986470903930823254889498783237453160500465273048316778980875376127781112150183761140251069573647092554274456734924889130872522645711851265520525212959649011014407915698464096155217509787437590974276262119939557946741656123513241940707685472941534559329113327614611743642604471531253354195757634846767052217518761195499476993810286977996258474399664524522486378732947789766619610561366264701680299819989224728021909506212598422889668656131172829493722125893414661178866428188464564631679661769291101996074608411894147993792391725430628761855838100013506616550632067645390611225729205412602773173943161677397483346237869871755330579788953949615485888682910029095288541408052774227481263888858191324782205337703867088213750603267018979766219279428748440615775171543679032324009474131513417825157165926569504889321395597047181071242573600021432240325820136806246135949079009866157821974429977802434286551597752058594443689682283677788162493120920562989641975070547259819361819165388574557727457891761506154728457004434262391770809590176297489435196515590212573320752905654387080765830526182520387570041663379477100431683428225164269853214078827633090752148581048284061915653282031084221056573174071922105260867202938153122227824731702558874267001222458131395939351054547525424650751514085130999401957154537493347514629688986312689429572428551370835690771263439686791481921854588960105721258224493414059704449114178798354702567455826970874551521313692102368762841586815699531568576438615305367309033199681405831574409648076205790831676930956308901609436080391381127224424388055557442413968673880646052781111310960718141218013184359595015573845364435381014637762311661553495371481032052829561392069031249712550990217728999355506314149823859226291619492163166274028210314310464253657660667930656283224010591722409214801658329952359023579398930236896048344480598337706298462767634987205389852783362792765428100507588809980985763522533465291894209949517659961198640688384534718305503870325965943292830138162370940541711561785862165702645289917230464730354747324922247319600185825240447743107878269380293882075992174381502681696826869816638949052112021145109123135034215196206082736762862804981726283612433081841389622914341647882431550619331295759371130970079564839429123128063120964249287374563170445093374243946514053954659573138545386198790845941877991430899374459195310209798553444911450714263965238949904790859773184892332528852593221317173678332230586570521287526533466744496707837230660096354047925434206725487366144152279850430030747831697877886250565014803860050905651640057165888036357056822961897579389154549891183990453354116957575320393729063211558992589829586272858616613255607627714948749355225126209327691121975346861172739829559472201850453970725631932783707479093189548808268627291684642688680556141226568090747587289058169802892996183763161051443814380235520573825395001613082707544942892284513632859340055442784518873727621802125766635183801449111643353441973004454894426812098142258613252381087523812123465903004818655542302446517359116247513185806490802898370522093567652519682923975163834449613827030055851684606417195237009356458263303169679864089935997839065925851852541504795968085888663829967910159356874656278116523925825235002310743053501903547622091396820466314576683120482219388165092397793949068261997208990601584905008440478935673262586323863890765684225399516339527585245189747130242704634273244715956347792705880099912860922857602120408761948031108231119313471655810074295848792215893347503142117229818555331472524315013625635557316276280838996090955559608641127921332544551169301802699707821191134765879402560712830460742178341573016349103525379898881711723330750324390589909489022248248949451402009650014216442688038792788731710532350591680684705180396380619840287189970464555127059048980306944757920587470685687795857439016116498031616610158181616939009399218620268180460864780873405798210367252320094129621005798290728722561974079540091498556084980425956755328705183602612584386660308403978246362788937198986949152434399330766081494954244435933783688694821290667269746912971627995572161503782028896404900610799674234160117919094146771684690517433784780525338289618735506745374089296074570006885405396462685816504661858089063352400825468469382136312572844960194839003666296955864957898471115371852298746403295348269835696249793158436776836491097955927476777608152759434659400799918740361786861178042268331569621731994028537603803761719337880534952441255028679005391364580061888517442629859600962271202245330508893261323017107654342083831555890006860690273630898446580140047743176283242170319701839806753021979705608938197483986069216097818218882740632343726228271841342303567105622119005399976693297576704367001242159241485655642490676734287490999572844869554689544922466630455252421242482000939569071201494965737905490321882241089520839295240259249582569516450692916463939756405643756751040930946669708434420066038604494004920449419182129245790639835844745292641775314942827187612875074767307956916430052385845757453836176590810255123043282258461679341030732172290395875351445087223799412106479762542768491967539156033590722343094539824211426960722501547249547912106493168215359604796300693814311673175482604328781585289398646841173658067795104593414011588636360811989503025728403673644528863149242696772318582437545116062680083518375533928472616019919359911696676189898143713398935423758897345613457094876188813969722853869329416774275090728427359577462809381753011435479426700468551500032395338188947550436661959896442262865058047148252445351618825329062705105139698763508740116349889555359692051648285444010543907582057632453536460193264216380928960549746998139084884225698047994472918951892264832234723405153585910026632402414469204762324236990613589825284162157308361403418006681836158881770143913796807025563687528139696799121704269045747607489900913583562477068141021875991983944431652517196684513198622620303567552293847724550388463373329739330410422235081563226587314062847474962161025970028399734958314311513205274093666741286312732910068282359519178082422189205868710897664893536445971046847428821767877625719071845433522155324916998945771798803614962568646323378664164339787395239062017497954929497901338690921304466626498837243080974034687293864096202054180221260336879967801402441446104171357003918925531288983709416344833355853765926821168830766826977928851696962533205457284416824436725109537243901514882496099703665860611906780539999385164332358668617029822529788197313073922528170040409959710057558210730417711043037644309111241569807199996346411080405851422553479530944991986492428011318974258605785151915634636014896793928211521381101611931820170382651480346569670483966930367071878707649925380813227845077703984230074847392079392937778622191881741604808026810898190717908698993504318522267309736828364637028875973404018286876188834166714818482632292008199251246703780738677590097884524631578702161757217932823951253006843245311634531229849057836677660399915189618730026202129395175080755680108416428547288703796595655803395491650626396161945301466851759530339437518364599394074622508460800450800888010277958986494273144117371842524262321080557338695814376926894644962088770335202879168718939358009527011114600207662125171050492037888187501540042399106716926886119584648690544732426277258037212849558953488050511090873825121783041274233690094341659407174671130420607817142925469895348892984673953736051420961052527024665471929073319632326307743186721824760469557100926387312202709370319361062726586438888282144936409925502681861416346532312864835662774533507062894715789273376197018775143907621477097418549992332836827092306977469031386466133281837665393248156200432854375529845460104126519377073105380265535737233212237208098669215842745900138655807151763270612766057006489479156627176983543374423793776195480054233282505138192356830406316837760561201976657954484876417528346098742398998732513724828821802792191877483313019507647454439751421269659851115183084304781535260798697925950399314257524471854463846182287596600418261079078721857256273074716511275156762739100041416596863106693788543167956379114517818517377751775230602408041019364289276304689811412094812819599100188052917393699299403742262052109622771359518483736334351751284186849801014096434536545847084553610587380797342138580438310686640651807682637804811777524951687283967851905245153629647806692413124658968054103446324477497214941960996017096505536790354089498125166676527290862442043343618228335870441898738084979674420123042078614249225401273958532228827980222980186057400609410731556549835954415418893687942354769476349528466261142999043065713829577516294710823472057639703942570676695609011086177917792177671506407051933569371096343049452409968482038787636955862861864816035135691584546485321696586189859695662509637609718737584295828334634748810828563177021240114696865625742081515346464678706069081170833600511807396750489562557883970475906344928619440197835963797535427737575519930316333271341194932028594322727350681214584593731097112779775731931956384707523165277306757623797061588713928945468555718600878346849767267012695599380968822170463150768699945081698073155768219755277164283127336316752738110448730125104922014663803541431418540182101391463896640716451434308348216165052042521211165745058448619287815036987289856340417894015082419830246882394203996951383481079105095766958837504971635294131547491983478634644412438039087256839845029400598346689430013727020103328947333686412530581363367971539037103846101400745480003000187007334345590679328238611379895226932493353490397922048200455814829548151219135886836264299279401916504251441406948276583852104543014485090196710427757805114952031863484922482629080927106687171326586421485984434549515054491444459615755610648582428668505918942144562280164590979786608239860456340126418675468876284688629828746835459878880629009587394018191797129689781812699542840705759759892758047258463646060147709110694129242006722610301278227207380694531027724811325729533866532880061898527648216050641957587119023273019535047634055912533863594579736698555099032748366889734482236185544006196740940275366083260986190124803410535470067493235584914413567797120771004618777918834476513257008474028154787745768269552553523499722359422603891027758106350334673936416660606740436680340056395118310850603771828619876608097753454933228958814758670050792463287820283130343491422277737444194979604240296276920676468388213667962089917466277933486819604176281927717752931982735082570340145734136469752785866415902486922250657079380031479497367562231412888198363583504108596354668023452073497479214163926955070400636883626218168155337901252002926552910682505695532799928134509335618218190720780997842218837979797754644878421615447996035319145377499658533321700400601811447793059213904752012953086979330342100702363053177898144879083266370948639278358067807125513313414062027568610364356638007845808121277952350710453349233816851194922838747982953804160208562695047585016994202391928959115654295162150079046869174453996787485099811415767137508437852872165361254497115831606235264862571795975131471239825742491431298648340338660579465474861797061354241443019547427103176918038646193431044252810544678059748942363752464255860060827642562662110251227399730523074521657529459517420562912013565215639577819276122735340394223452897061894017215301420741672893467015609496597030182213461006847160528780387361908073200492113919044651207100843769723225197444763859841926054340376357576794579137656318631970376303346576940617460722893534620801393546069657156003243635312886954223248354248023616354831665198050839308053419060779637270911312872067965246689146344483406354276739868991925691888358400991451756993939559993778706278412231256409363016598414860678602616225036348955905837897798084254653242386169842313190944856373388922251743707107304670434697625583048672355552735146773418296154564640920421042487696928549696651080329996300292533463060657798127146590255100785083314351676360641687685687862931874690491482787844613690937337584155443812121900872620407205135082040888085319553329274671317708104869238929107189141977212444109244976412580988354842353752489184281072596684911198517505756104868155935169255072216470928345771292618702240772627214784909632483695159454534487233854981445025504633359009490353069143968600123637060355651508701321647355120355754387214367126013697809896884968021185161269804379779691701439711697271059894828908981232845042050343441611830705834586761167522551329230743118479730601289892262333375609288928681837193271498097772508314770961272127463653720813066378633514299586648962061473391658892837815441764789745536682238005375827834000343905893039894246052508935809956680403671906945704973797160672645405103432422695390606396445335635399328129619613887894480037117703020056834062153757721584146301033944438291962385504402199587480448460472622292278889684959948869789904819786869103371908212135404827596972296556674737181366085665143902797889125432425496731288505353283152982025282396780046063875863735069239862949922428818241748972646951543407071544421872730502682761522912194564671908050482602009566065940937755070771400130234787618694259836719954429500925341020804645882227128548579339840886135899168612530103447809296785568741095117991254205931318250333133718708551326527452533385893485470406991984151759526948636145291709373425562287113470795943571303876244701750618256377460630740904723782945741287109072127615828944319906062808615596756823852372141039543601764572959086118971455809875553206993616364956233883393071177740939988122973278826918619872402562976434602832924506369813764589489323720493187610676516517482953633835989965343264356889704710962129397036421180296866552133752222067707814912161831504267046630066540304008957339021909427964534158555052921018796914070777027699701235586182442172768254392998966980332382316861054444845674319382022250818469145917291708461895401580014955322916454080900633052582411868319481325412108580443723982894169903561653650317570667120341982743355530361056913481506051716395128448772307699131351589250641381032249494172980484504247509547813952138052062919445598333901684900720446200125308880933509158834876456967395555473783311476017621411278377949751904689320508833962888355924486787857986980113140746031192973523014220124526902840810707311903772254379120390987937633085823972266421915088997941699394394466194490511545835496602952868184823062568510567027214803552646558626774771807605013816697393917849540807268984248226188426706374418303996509052091022226129403323688971823362942018831553662211345088990779226426407184661900427287004798753108911394697661444672646600431442069922645728897353753516321933000003960162987558916999623427049846802941496854687505497081617534191599754353017360351553650006357797848583650938348628953543999481198867677896360405246785901050845559309993276974531137980890168486926701149425975812254171594329022708910654030542937058725225293588357095009548331531982765164780613729251833426760814728756435326471494772399210490302702674577678370450706544080139453463591992336677468038745824680550437086240835957038249720494565096000490221789785508690377821698451818798148068399712910361632241359411201813307647724659871861709899123199396111114925475728925793469124904731308664500272747218672299867454581212201126905480223812127658858563379651419353753775103882731715798542405413985823715761076492561709478002947804857010459501277250172576011034134234245180232847400949890532989608094486878034450630428157907039319020980462770479840098371221041135001720435178374898274308486380906887098539919765480317087198237855589056684476721886416467554974423233389166596014547848296889737910044884228557153008939452580927644746288164207589098586982209308997599353174044656368248154042182969148897158702766882859540913773871887319726677488786347320359272101857044379541416679452816061388867046445312004488498305654733741449959421375687524274822868364287980406091894311977382368091938232726947462947514011655948331636634932073823174932448693663699266781138896078370796119756429087740927293731810617171008961959802621168466163406216999914556994994341582678617634752751689207160026745235867352296442830928657973819031412881745748253129042305809264988149919224694909949067920941273231118384579457899020849098284068650567028388444304433085762023675978618811945530725077112911833270601517880659654496236422202962697276074981932677001870050816638419772651679313859495304486806454163468620051094506416231506795129328887804822514149266029373999261235556432398380498393913320047856626316968592349780740283994680028150801158727154302588841883239279326452319500333372340771465902646009019422051870410224994365865532201996260528241471712506211222475316846422313666547667924440638240792983880313824330574761141582911941758131410512409740930112954887910759983804183965670008596848464004001738778763144651720249810018296430560259677528307079797098718337003219697176968652416857037047305656492436843647219057937469449495980891152916176684599315991366861585822938964921780925585418071623298323828523395369803391561625954587139968048128685407943586734399863728385128245161961367612700412998387192514823520026388948580889800196015063528338397338548182404740669536765409590897296509786917288430959777788217936951093306215245088495714598902225908503219807187169136302286467808749628912308930780196543532858742568093328760525951383449199527643930394950917684446294741406196906858553758037356797696486629075771354144631234723709003933110955624756948743472900734563873314690962757190368411710806275640848929764003284102291850408133248716629294328107853175297672171018019203152896080376338193627615661092762481457376257619523836745922292120649889815391774327295057324622489505365644225487108906912123006463277023026164076822924420811384184780492179592670376244664211228357482466262720943559339731806532508093251069925841062127675346597573148738137951043626857591034838942242737329722140049571918003653292781276633194792202119165805321145494317276228797669605641447788272049646498208871837961129008081793395520019382841596072394289943292469197334376588029533383339895164476381165116902673427801593898625463298824813646770806995463398911701285679561105843549657817902412092876302592749774257750495740194997058164319631265167664741785783357435993356970644680339927238026260719681937333059529814912172920601125490933311693015762002659293731438816951462786284856081715338827540262433746333474658220722909691699065181402813056695405682765467153586825846133329006254711599941188132616541928900529029792607557100079899670655402098366619832134983379174524116788085983157063665843150987178848708960890309380926250018583754185367570904767283535184243357315773601841545656847737325378864347617411999503056266800300629753241429202759698371483685917839258855531757785569102279695884610967716297680136677456332118772627220754386942918241221453480113428087728759892840858226805972339873655546950491578731452827370201760913468404087671313298568832334491404326307750556103238877090635192198840555991906301346036717228474287876385555515562397043211805190674066874168093329034655099146655982205081016506213958821858609597363454010822796882709234306684518203852738594866611558386476594571576454975008819431240333565552474899787964464478826235664695888711033600821616399369338074214339632872507466834705635074638842034394377040168250960755578136465534292040357525291470839379919240776039973323056725647482701147723948185152386089589546754764622000179137860203660846003717610841831618805328869960956874580993400343853046970532662040313418156574022273468270886726867023964229061263476693000181148312821913535550888467651227378928402170762501201254405841688610372595446544397961152094735269511055911715372614871503478135737152075647577390126150466621840512334213146864257493821185578416450770430968429488156639433680286077460452918659683693477499197180374044718234949097617342125677577528782073055360817999451199932079488812655664140432178816945747587575203356858594079544327741352840448480886334974869155865531811968047550769938353562960482058043356845980769494351315325963207337940126969249530567474372076039856741292461104315527244254480484564211773583906033977468362872861583486946207653429555521190312363681952083338117695468166789955135299908253184365225714563455159134657895180086784185775106525359265699313237588877389487699206433942504192617085582836240783881340118534946632081368231275485018875431049605194736943798416389186660030996111671480996244791066584685853104515008227383560316048445046983555006938849869123218011006148641572395278429808850414513452008498926237188440367853116124314155188306806900602307951016315958068583057708194448808236237183034486040069674288789781579147768985439009677750736683560015084700686385174053937434299140965028641914817368302187998769094323126375238797155675538988893370243264139237338832551643243365764613842566307653121455680305308283775866389473266993997904388419975824275464979556439753289765493803601181163693839780558500948232807290843843195240098313986543953114517063419100141991204511653861640066720513986920538151467163055495991410570001777994587720551755497286466858631829382663433401149794480946074798214790848942322541493038866560170644834225091798459824926989566013242912024421940203963658781507479254290236437485798721044767588668726122129871767630400992256217011785897373189786369872057536625259284070628072348857510974835757124354536079306389783477664293956641972155049507178642378742961129727918630417548970672957150231317858544553281337377281125827623263505216113669485814443757687974810267804686075908339094745993193986141071354260779720709480006064148143513784925405719353271937401606391401873413954639723678483278785851509659969856092757008370094185360275885074024333404627712117206837076846452283021977381238882009469892598093232902576053997940959353207463332791480645354608709763914963808745699534767863750882213425769425513557562815642389893544379790775449018544855543952255558518479811764854553671273613589477640510857423784958940370033818912642396212866713588376595920864011409843761175166483906114695295388016177738997197487830818041195919027888681471323245550571213551874720529222992147850796849561591810874390684316359907159977165654508071709818152190748600545953638010705116698842229161113261912189480739196128058163690462730152318081509638793700396565490297375816380188792680625130249294168670371640406848335564964513079800668958432498895008802225090012533740226912266640661193046800509442616495762649451703496684551876818054083237411271352143155746737457260206133633490434953186285180192204647029193000256165948216410614005239707871093040579304621107387789021717856425540315428371024041135393643295377157832678420711649678565125036456102689056048259186994868245608744764173928419658569268340331555688828954127237169890360373326692228315041132264081114381330974754839837217092257460327892444701105666729761802867762293446698040776246058406561254213181144780400508517355098154822062534737071222369254913395790373995386480018831013495553731729256965337295078419673980868355471122137914885594283425568901507929180955447342779400378898163356941357763935189833729745355212802542922548879826519414909962450749358140208277452353973436030772568310381195205395794570899943225877349320990692954107660092347316176663112165083350012741155249022130478422581997948363313536873343606869672391961361731206168325205918565479967238173683162878773705322664457353026871471268019643496946472951960437139068607990214581872475135849281394676410663019757208806063126030125405349231750409253809422817450576564002904082301179466596009811812976795651471765556974738718546917888499728321792643220916048635593356468738854603372385881727797427256890317845479653826623527569536904318352030458338090086699018532902464272057669473253597837623269980299724273705734722411186873950747573057212215717721739916543564560979977612541078461729718785501144819604114067280287811232404623219179177073938426454247433104163681971590015846893974556962639571199466505704846528342328018432539116511160551664439175758938070214089094581759312335209469764891342456774402092393509909757632932933722224029904574876949236945360766775983760161242474613503426477319574194467482477346495081139499356316651603169080495600469831067134697569036623567641365625752053579471517754081708467894832555864188710290789040520436183436924261801977786805760051055831203350657021079240423055352831561698753448599747722382868104563188768969606118861172617476069736187155076071361415866746768551793145777449389895999803870903284379881657674386437705608287135432661909780239617159807808152249159781820701061436565358339879382128244168251705477348691199914761335279730500718712371771969665949650358471079617581628766180393535006610606126310599636779505685630442134282065636029599283564221539499385400444356978691370967880021476649572302869914015097514611818525806497812382418274819506285757575674482834640672329715255621021321033468485649478115283511892088022307706089069352034532507906737581774982413553344599128150744087859761236443374888092861580350500948690827522222818690745765948707046327916731581560351633418056845320441175751402605762357970347651366888407486813950168211554229891311810230097761709598029016590089432503090537921616966546647131326806504369004281664395654937628420089654694636225431558209512233406237227512308976389769489769677342614518586280402227161036333170393797991289399150971890294283113042735712768267945173423173582071612289241170791528313126687269510369964072259218916868303725683874441627654517032370275752403785491931317357087394499337963852818527207887022611606089215298620937535909857253627297489686603668711040751167959664317806636814175636444641072860758968716771952757836043985355519214296504874845246692639406534073796660254903078542917994320152171398640825910018980913924441801362958863584168928654811822583621137519151061537621716719603021469468674253761175485436384854667183243147563179864347270608235213853179175370356272535993231289310659371902991925676297230965568251565830913856756134617996646008187270445366183806298879535245010154314104166365337593215872412517559701840153128815756423702151560480326572243790196090425657839134615991857849341429926946345561400664721381052997207608278084994171881648508919822811279410161266147136348413576133015955815528107928252117240655211402206622307859997022128398564674167502078300545937415451744173969937489094768025574480072903099427991262229716553140918138363694352344207098049154475242236939483361969058527471115266116426111297547766203835669681649320890406427671252757139147734385303474410867309321334499998693372330045671183236551183268495813376462892305803871777801958361433749184209317008317465654099249968682631527913905235792955800807323592457213953985531336950695702200023907825487461505060265047916384179993404795413493114259011696268256626842652046648762645467639393545253011838761016529461741961317462591662331305283951368314788971882839887021039843597018218941488653983455443569723054124688062806086816269644834472386298135725915696177463082367705884965621109493830448512608598555724936541961913929044039888466637036197889733684580806589952836049755596583568982058888096236925770026585534758225982131091130445068487013505721497241398297062958628385425473958465470582341428136264013763188255406218753135657497664841081463494230825927984559086987567232408382523280687994839026448873959904816308354235774040252329392435757712312895475715404312177627897517395311319095126885374762683355178005431676175597487902099109555270511228820006640972766612315131713556415625384145920408259380700669605565031475119237237243004691555998091973591708156218777167170417299293421600596956675643350493960899092499807103297122053297841094671807920808395615210038647583607427577243592659506727861382724067793853809811360661722967192129133434977634855149392691509200574710845441853411534254597058657626683979868985533589301190031464060788237276287089467165318606253921569297200840182983554643976754709098362814009685457135522565623128038243127667790412513985433833433875758327073983732567359040921731316091029194527186703637869946574797642853419931487419655975217201251319783483149557566138424482189984007160127284917058388566081244357624976179894636103167606696495099645876802208698638025894719272258933357735095081139764515192968015017016499090536742415605044010604998066524307488519077945536965215142312457309207195031464273131259869046229208669352415567834126488056113374292061143051490381314512232731033631828740944516947926497463332615006607133648492636134898655304501381154001192725308134747165480724057575535573682323383186860006233024541129102463718201760040867497770350044043987899350278571655731345360039486966844178232636059008605833150387411504649483638277229216252405773447229605507601674057779742099385994123278073376140074325891811686837144114001512691535452376477063776103042227695160920499757449712996988268224507575866610029562496273764105999851174641861080521585141883393471938139914488156156648660650799908792129361919653831757602633943973653070735342978410859145160956201085227238353303957413390034245052632912907209343267292094833834579911248742533687346915839941995693511218903332253664107731177136762162670381675578961036339728684913250495086800431082912702969658614240186193524973428633115099979924914043993905671752064881261939347699921608382431623028456560085329407049993523028834632171638238037426208850190640521706903795699272576334127620712001464349371327233096567041731179336198265552816982807795252298610439056795615168716059619934979535941303053368153092058025025400714738653186275642851096765154046479911588500239943865835462752048294269362273519137709602742554109166308634312811414815083011418191219644314151708928602604082510301458106578482739527016867786682550874726139215730810565699953971033765070048989050567871905849588387435506697812914790552381818546379973914179263093968924640516789645225988246711658156364845131216363577032110929110122227235029051667767821043107436712743254466816117252088732405862779166094129748220408166709572910004217328052255823621976513619214495653146403397689085992215930133803061610684297625798762655674948872067485249613118998096235869272600065196368572676189892980534350453485293483800570301097958943200197691112601568977684679008620830946561394924980401611627311487596932550331063694995662093020552790954365952646137096716318942603419347816317656103877882132815397576559895339083205268649544279036433824312366453900216873882285863889156259394648820323394590502954206685496654280230418189933305920055731101394567470556417258308655021512535771112108549707859369684459902237202536713328944370972468985409908428853928846241550623560348412636891563609016278376085980080975069954893977337433790136009599191673068827359610555524315051059287406099547241463578272445079582551682026610434496346696657115040953512048892061389592240679886123409306654800165769410831414432027565386356551970087092340048395499142810528863718359273524454468995396027183080232642278993113046694056041488029092089995235282031239106293068354156720847342459562088069747142243351268429261985919471396335295927842642134303393758864161428902346957567546946820882814636787763726111201719304649343156435519034479077609114930540513674279639885214412314260885104445299211209467594985155678659505451875375638961796033463850226622474034230718590668258736218717124999129189884069143955118366212043685053985099201302065031168723473987977692566764135288100093201280549210487734638360572993766161889793285497687513409563896739582512378214274520733175615630661448737979628343416851704320454103221432193362422326115350319432632632138060212939613725210200172579443007093791502011108949904705963942708755905549351902087356799291557085201099399474469785644409203664014797947404958539164003343486837215974580310112311240088560540905808869162160243241673322301658607596592755751106479648011506597266263885037883308910890048548623216841329648972448781565805197499676587659166532638989322520104367497328768299897176228633637109626257561430070458625872624289165511825600367717785387807543816864047613088885804322145222956312278960989790102833450229322699299636069234380634537394992816302101349420052035180483562291304451380717942680053167044899209311743766580864543223987265047855507030318846721201343957188427365487436210971471822382940382806273891217572249993850072040677747898361409548040586299643069985902208708516496675545430017451494849485012774227485498565527985570812902224710406379780926550393779873979551837034434702595314149653730182211246973576866534256217578354052789433755306527466100988647894474075559701785767336681865266965677014136036150710216569531313149166015172919681455972801804951360536431150877853362568171941114939250037621538645006451046525294368998628462225222064356546671498860822669299222831284556076768376061633666212669812324761128775537747834044464048496650861286177695096431097168771747713998656941657330407364234409270982500234366297797593658746956442140772129943207490735598809421126873243844169188169944617704660603926632239409380701996739781211064923486498658826796093812629225879182922242575050467270475158316687322895715646988797772687044934635963619221583259298454504852406746100740794022841670339269189918907003020810977886476433669863739255665785366359079079421716991197374141719030939771110483956502315425748240700474920332415054975874416027254928571579203160787663592508728615877022270337769962968287980416980725789414914470066699509605100097877101711160886507946260181256107486127756429224179284142838688744170762589389930564628232517181638429077694996361389436845851817383696276546491266955312574954057660801347807346177750407152065638591237135396098135532333303605422089058897242413510946119103331838960407685574014117705224756328734446277844865891228652566729815292578792802431732839927848062916362288447451346317122904189787028975833614308907449372642084507750031801440552074058645805416715997421307871852664154952478920190794757943692580169884719657168513594261614091982736281861314339491282798321652814575848192373164989038113783147205255882007773671372481238112711383763941049590975066002764889095318423594160400010258117907097348197938032110061430062733273174885355970170122332117901292144484144524058309907043597329232673755638627614924869356151111784376941851043722287960964970472653433118269737059616507414840216280768620483697838783957907309539507681957986626758991097569835571242313135695791475899841335932087205172529763532920344428178858358730389040117043140340372368998403165178609196323820880437593484457474324188699503522094553546925158115914698973509454817461342422912371716376475561009852631393935963274779291738991612528800984115404020453230835622902084461721140013947694986994661192191583679308750746275427858508665888628478950963035110447074499547032568077494576291509898759779012167695462897577588290222830075952123310698037233503272088478801151317492208135352177415927504082653527407711258721639875996090761788987706890270286418741067157315671840209211764450371520710155304041341329872095119861098877448715684927499040348179364206152573749726952339061011574151440718896622765368644144362292811363641926770602524920140861149251413253514091007424602224172246991853464475615084013592474926856466168130421680363808562647557904505179631494714210981711218530518093220903639806000429903052762068956540104582653509451823599114131755489615381873755407958143351040956669075714901180069583196574193489258331786725457165330785361021365980589249417335703968153660072080728405674872506798745283855112867915549200605000840865777441480818703176938810508753899721619270472505030140303449328908506302042753086564729528114715327678758330223147043428539973856165004146593777311096163837304958297390537061859763293732051842235303587200195381377733411445740417668210628737548726166168133947055635940419627934083166366238027430117318181692672533962914275356966253622079404572027457310379650207511553499121409651104865296635040731598736246633410580609212488918533049897643210128666175248377894881085077538707622615865522969919734632388556786327165568986446504031577268454674392558810855894324900200670740473749730469855009281730811377301165298577593098352610194938835386224746813826201537995497529753846964663392072897199151175655980719771943241129998352170320224861427303748536416091471432715130262615711594414112441851301412789018730975471173730522338381822118581481482209520668142855588990393559614394550699956887034952783923253393189884728271677025727532838583040082265402422586292039239513015541895824980592568008058655528882222001458384361125540333422548023043041572422112381910970112601663269961950982977058038565329370825618066524084595582920055305365000623240279782814678880628302686456834262808846072041762196922112639283558306212442622321860406877914202685590960235652240336911540893675172127447602419914024438684768165473894895861610639248419418206999725347107243147040663992568782189864213815178623377163827158817821027806830879361403548872506364840951951461472770014800899067819655120194371402576502942045074345817268941317102743349826014040322162926088660980036212081113709164908891642949943023181536354146121755470074932293178537370674019693854652100044699109241243036089513875108701083601597361423422389688908058733007901281595877284768286098303610289091393298738177086258575398755220123904885883761167817922601119758367126362057798322661215177694849940360918840995173953099515475324152452323284852140511197771120162482667704618771263826396238499325743734033585078104208187411345867071789052463743579751972106119363329607394505445545117232150359666893140984845416488044585779345435372552209633589691526009625730390965375486378823093508322333663227010033820948030003069819218891745647958625248109407030045619635280082799917350495138986451526453438260827375956697585928150952042176838952264003494049335519188028188851523738177467872478939333311904146299771926941009516018687590322461934095293810258179954086906992247036411600096924209026665694098735689788427353473003247556884822645426714877933192019874274543351124590484243314808692949927322009010200966400727098757904772917434845296853472831105351265122945825976058710726630232825415208200705997015970660824708792352989461321937455147525163886228039680572465319300425701360988167208045697476249762313868869308701715194872988559360682733088886277181849678245008997340714204002621928245690868729217204240614011794396365851839141395466429684874600822514587888592317491834547497935010686112062898537310537440083206134388247874901593358907008228465905026489609743287992909098911043572219260699056781418191869938708605136236448492852202185734858699759618704377038455548525322391958194441732020835234890771724946703048889979245980313679909863941701338861259532469295755491322494096524353499984932700900286076957554003060427704592458611642904941639071035501780945524920104685061736626239021456526501470999640531214583574279999325726062396034846107062005601015258581544545030227565188278629774590373243893333629432179114341455429642696254368958737290108583136426120729209565638442823399229304369065543487172654592561841579073022909054920750386705390739822038970116774107104692043377169097446581797770856846068544260952795457632867058064229395826118978773157260791481199541090034902320586653492001593169244148466848198224462748052856766399964715643321294755683979688772111578406974055040586228010865858805545077040112916099790215536290251623007004081066015736571680079314005606532719647682583646644749702475892198131783681968616113584852088541510260794791626031000564831396632396224029789723458061745685348247939490349543314578980342846304136749177321948422382558526948171682286975852667923906743516100099303588634699789647238786470285182279663917898721313906701188938461182140414099859818109734511227851804985462489934304626363565654687374376975009421779315909340936200837822368984413103486312507419166948054059203038009892629884960016505907270933421729602984188515533274440469854990098287452190910917898465834329837218618586197533415802736871098283529346687679794495137871380489973781476707026168827691313382548892490833873557464460084953312694156460038752624440814553724512037606918181836839066600079482015805326702484254928990114890111251236319115091523440229197643274891684047341493806523157945862915432110749655260072857082613479952712483858884259419686768677035152405618935019769645089257807830829418381109073615634510929565770450821252362266369967196404830029945864700567613057252414952953070903276542542073797210785618985083602278684240260376838315285503331710604025363613805758396374730912163000348477867463754108117661042453494856333905286464897878451393841058380178451260195328958769093969082996959998005460276186318949700779770766288149307757994931659465485020204978534713516118733266805749696376566493354860810722066131362760140575359197457379892740173608581058170024856461551766383696907732280788659136171104969853833486116933779717994489183157677087727295455220072785085205208595688066781255655161701752764344218087907859755882596017784255045749338460213875473815232994746559766656182667500789338741974913876487834960811459010619706767444171585345167936742300390820407066740567192913419300517432642172649019634629332151612986862939763796747879783808161445110199147381053905466428558162176627112889010719508060378255429832485333739682409024651727237812981072145158093546615607778127777979499323028024574576816002513803188541719778360148782810339457731078456050798037550793917843638568147599120420229384369923733371317316825170336192290464414928370978855410782717582614681798825300210242208404897814268806250775313356069307802060268721806867719162981822415787439782568235611572803493549955852393721226224686721275942059209700081904651405338574268157587048337437294670064377165502460415002257896879828100255995094935834259105700038491796797091882908524705613186605833368865841990959538095572492599198227282526133791123641507917690732067368607123712832451402063822372564973902138895106978111611442065497191900336265674530523583146216148921704669132909479149748376472100807095109481944386464738029799135304043199865371880025801272557132905629246453579395531670778010624456149732310311986050674968248220257079212282367031445047293921609166236774396257415219731373305404533559434568140371034644788302787838181105742495017867003947258345601090585931021346306161065529449416222249206651334816429414577536916020869863516093519576132292271525094871250425178790859480633814868376604907486186404272902434310898622822376660179758966977253242001584853285900641587765049726281223375897709730868999218418303772749374825042535013845993789077537316182638047187538441017510581983365267647362286010633566816343273358501283866595587251361768641497985647580344836458304585151050566379578241304300045869489216724386642100251190048001324425064099408476129981843083000262343658393203193063667828460793498578783422836082600245000977238908912199374177206184345945614275292802603895864765056788171794459794755675932031834374978463510931156630878153622915593050434881398149559907474036236831801964168199471708052047718637863721728045198567425894248395902266016611966088503357901033033867911738249218609612417790738339136966911937021567132161728876634353141259129930393109746971666114513429583327259362262081011677104478062882455901505137024350908621114013666203097937632581032701881117597259903763542025772357342414113365474558502370747862616952581681401489290866395958667323729800942339646067049606856863037683925632210561361455611405574031370035275529317693643973453391350945987258694248363683992567548264687994741861984076631189760774418194973779207481592134355391774665126315065918277265389695436873605901414982579053068148955733783073633167963799757000707178845562344409656007650228084607786525102904387104837677828582146332199195031993235150804052327797172702971275439841144118503083683641398584416886889327571311248961893433110871654057925695717937500189790261066383098077954656583704285452307108948058410253912816042885772780016350490132905598784380680146949270216832788007211071333906777089151986574604719580424349347937285774197847235554101629501567660338638766006848994017603416475332981051508146020160350968112349603017009142226398872029205904421734570735690018514171302452826082173189163485229229824068899791204014977178234095301628312512988393776692751618907478750346906125253558816255414125036138156500754279773240939764147970784097431993580752784632703797201271429956746780996450211619975160395469883248601745049891221977781434691497548859902003416615427644971019924710611168926469313350437384831098463907096447830455024267654278651368522667619752712339807856414765158650256452941247526257783002326067112669876097318999683150447153612854722236713574687589755382939641835682743914561451668272239260617179615184238443401790080317037379450430000070313457728191349991652788080719009814350857587197903382742082901086856415033322919651218904607678458833704040023458122365291434624570936653741637740384485376471115946600981757826035899743456088479071823586148699731671161563861113659710439491539835636244446344258031064622553077611600648382558465627406077975841785715471816201278085441260254010418517816242732681875127705009186991463666439953991447139593469216205560493502618643812090840306305106641660924573194397938193596778749666188441994968002625029847304310324573848144720332261956560489569399646710175852598378949807180480418151761300986087683650438824475778414234182920579020137762516846333716091098421853551038371467824460431940346497857214039630638179338963554558490772703513736021866148836840778182565171170069306387331455210464972442178145555011666354430384436447175469526128426220416063509467137088256460797707855021508477908852693083409578384970175970270632771686311652776852071462394762361843722859292505481319709805259785189843427633833630985155173418410810302690757214355241053981141974836846802949517363674899456755389197186492739938391967027863947631761330006753134219116611388068339892293881625002696355384334707380683567490326674576334311296176360428914631509014894635612667259609472276329882949596163000323646308270035699433786427933256317138329322900319157550922755817741277014489275872457389885325126706005856060319356726141821799195330569719255535625863794731747302409006121098122080493522151039971418224867239045754547229113925564883562883538298467613722800935230507682908772181105454063213799829665897828344777819364319647313966842564327131658872745735113372049908598006844890628168458408738663715131273679580963330220297050473450706875740772634852506624660035844914957369500755097093569566964677530905078496189702061160133375187200428058481022589396852608414015967969098861900449482979066416598324217897495952787330777122388828513350492542827944671130784195518122912091938441499213090989369761127490560872441235704920141297027816976753272367043440126852203936298596628390366617331262546410636142998085313891796032141213515596543932434636291722283266687894608582586205351800407298247759391113475233486310209123783740655596862665849737712838298226821411292072527778904611553643042969552259188883282698611248769912852730375938001232754912957680686027540375198895140321715327523297135862283713811819195729820014716225314172355728187855630233210950295385779229575600383000887645908833135708888552095104396454066586964496717615966468433809134082559708827083852913700511567827350435287205414632677232432907560575868053684462264780078826015395155714637578718908477524285956836508634069364970618654766657247481483528021483955939301808890248317145179331625543281566437685360327351252082190330543528476829988217239067820543466793470343427133742622212965321030602613524203714566863150888489147966600895726935507959135288752848857930379850313462459214694315925969933957355864683003404623236349200707671935913809104763504332894865166511248862071392884296934417448884166212886402707627329186630249063732231196285812798580211419223047650742032692444176813574450169104129998485311838085650929996532888633687686473839047018105214389736282274507335303632478772852112216937477515300648774954389167215240540951457744933918677074017463095870089844460887776928010482664344450930203686848002422521006854660018787717701379089822319307228881084627595615713283594266678112363858112344292439202454598415975741396940590810462959695481174716988523238863479928644693368291359899859883417018755757483166033891719143996048197585689858607128963008426561167905815735551689717155286606701464404305930822917540986793685202619799917715821460226336769121116528759427260501268957978888717777673665580781743272875933167654077073753778041230983127307543939740391753255069748788862391453540084070991728461099441661049100869230297799298355819190103511771148390027087000636411426814365748792342105035008392884196409879689165151812750254334607934532462598245842557889116549353869762704823193432451764077593082780598396613336682938372631781058417197466676972707626573038871296819323269055025862526351339482777148258727515993604299363811144352604416616869726117179851626190084090821215472979271700754238644946374135666339845438521560295975602365030832506254465540662206861603561586618355218573031224208101190068535883385732219914690620578383812105898223498687660179470017793519330798450925780336006815922658703608181091351787282948286298265477460449957279277711395432023804264482103806075176405396229473759787957273220970673714952299309374655853039780386232992501353951610606734914722156377868802830108789650419008232653838545946449784601190437071836428958741861742159343772808845363183278585716472444243396550877524173350860395556522851775806917904282186306854252186754957467267118113472385399410689069278910795751699895042260860435562497903402262599089705379045993433807779654759023289637247008108699636560808393010723080265732654507064168325309697138604047958582615560368950631448044176264570517611185233088122074560507551719647791767794568565499320267165065010085600905267981598308442508708446936804821881230816511660903320613059879307764578233339689394913580042746392572498783980653187593412493472119926823901159483530711748297787003991689249827730684777709871905437396653304825185647788546765347407534904151756040230247151485811727345851838517224097854018116302389582775626108402149674914722918182263704537752352274661792975332016646139074334705300950052903650231550253010949135678964852635683774619635707038811806759593245688007789445899282434788831041199262762402266614806193514158879336045685782304840130317990811791392872758060391492664093340903172561073205746180983990837656917158313062319078100734138027226868650842324158534437973724079606223978350192150187433005190233314000921388115994877928811920172362208912891935323884381930837653537356612754463558255920588471009459470741259034506543059298127566218384337740501271020736679003746091529669304656677339168317264611098549562919974701972350051814033313479462955290334810281732936596832135450133945653452205552382467629738677785801441298299238547784684267434623938482101354425740230734496761148714128244319302699643224417207847471362806850091417414907593593345456973199623908444489293120873776470755402442566495444139510038048535942722285305028971142526245553606330310085409988404105728369426167626052765604244856759039442808500188739249890646538022517748598177111223630791942174787932544059611967424700924691643078988021427611924343281282718384533238964736057067830123122295804724376060085121886132706381234280923370096635351837255194180144927179881335705541580319604506037079084570659962341478021505379505948521551986913203897269416895609020469819164235220177882247920002267512564546114516885735671936864695771183716712753087273196806455188344378453332422843409047247475372013779710182683972527792955731972262953182316850439491647136222107169351019345554864429032161579295654655537422087474233551293927973351155051629202728205129701882359498100157369318736676022428632878032358500787567173138658929398311585280234935330381481968640984352463505551330654714025478196864895635636464773967696186659567887903769865640240319493816586091877656478038322175348156794854890674938688737354910693870408222877451774291474612832703114596345768840229701524728853711898268859668592109300079565065863830672464403094586023211947614518088728103147209451772964839466841037363749726395530798499992084061931687458626693223983019413274092678679724433987562986119878040895031258989476002421938370634853775820392483317584750020110665981104638690356511165391965646132450224587179541927315356034334510035224325397264422030958606136520870810576950592552690112754247146581766105324513597718493165890765622361938955040161411672462754234136785907851189048039523211451177356896976148408057141684144931518218330940210511298109067663198397446197665542782918346138522857686237266644426169954119578101628097585036968633736666512227494134386215258915735605499770884487856204590341355980652680472652059913818402344745093256830566257732736806471542374452301181640068018007646026956544459570283604194988752986133064658180713010806959592354980394928602898216355498872657931000111474123808383991706340515755320675388974124604420146131383032924339163928417626621110799748043752130269005368941173488981197111121850012235086352699786046398971468012591780790736214573535505918982308395659741511339830641242562563567917932553853198623745757085965694274807101150794455501933525573609677194802484812860405029536657748364653257087195516906758983646141757560016766637684555017432777807938003388860513653764827360296760947158411913787543295747644828116922477000217461937595155496481805455125464802769892458002474035121271124252064315853641782968506628125206593134444805884992633379204035208949260455856342059312289216354635720969573567220464390954194033593865508081204532929454869256052460564141615076200884827918294986787200576613818230826246341611319335657158215609371315826941362853744989717130514404654184775208002321135150636654945265917470060010127959486890549147086489928404449525434102341678936179281343114572309064573485816118647728967686502994447849842004134051460322959380246129063193486565227620357364381680355144821135610864656249411476027526121456155531837994681713157632691766953520409454552960953654439171881254497048072153148210428466890734769590109085964803931993297022672846194569342164648996187467671190500523961197042371483005492416319593802125043187109584724088278238999993636982046685700197786513426174965687379431343241619742238079421107489283019039669251458397895232412224118278949435057173426225433415918382628443961658286324263085604292567076954689458671446489602886171359122949842848220170774423991538056136347928573661666512979431777571126494392757262719836020397101354774869243153088243738255604329659934753000377284976610281443242923634017431977350567275741996735856229737019105159528476248600993984304264102776543881126902844683837031142772194694328578115849217092593397236064780619363838907890868488658061958078223746306082351638330366018593404285788271366794331079092682900440462082673566924041884481192385215476700860993449096036484697350611073016581512033914667493280674501658192680466118727448529432533453348307021375130960118720360322065887450409594918029719111928157483691925728271837474280294366091187682738037802175450806400443040786980542886923871211449735118453890863403520663989431643642560340245006891148386483387149406073940550028356063891545837183246589035485825560671068980853044099565315345629309834837463013886100266308090095747728938071272624159251698854267095427492038431035947086626237241864216026446639253095612476842162010634369465664189806596970653203579270521858522152937588939120994682152662774437394372881462130939339185304873815016043379413972035711176968318513185171484646552602418435469838789851543382178697633183267885481934830526828320492962300332435863823272727221682012326426159933259783985426158312375843182067383370709016664119484514507148027487952209573870820225279628254606310032432380308402404715601532022267410811747549010474675123224717796393169962209185496897168650118310824315519001136267986562167374059605544308901901085280175043703239876455700458624387593379761139618400115499823309886644238260216588220742889980708597602038819545878193545395474325051724458401892685546610882935335064270265636811319060614096350821424150952273829562760299386871720054660984892426396116221411444918917695800664815241556164162381477759083050778024535079598709930705590107741048834477273081607100145469283493437589230897354471132526265732542499804951327001664894733585229266197005079314719462577095841334331265160663750116680862000844457940254498583169712510281891597571430836439487378072029236513614780723562378125654133851718476908051043853019712978494874623725930287115477523659141072462455470265710304595516147820076203086159554048472587761366000003077381615069569521265985785981280894812500835430781421307395878557865346544378616079139241580817822392152536372765055304259385766885822599386344385767546638198091458596912002319592713083877047915496383001508793797283655264916059417501929194938058622681293033318308275700713254920530086358744791669904329621255259617080172471306439753483887748697898731331349997624315650722928178487408916769898597649555899878172952223826769080052109011764980244237275658312870755255397524172123555351746791259658934164843465260772766688262958009070817569552028263252426603074962475884817308923626246008256910671047250982044904720604349100509634375617551508047651530140915200237808816042641651431209735795824966533353863950275125664460980148677927931561215646758345844906669404096732100352584608107800317857474650216984320445879398426791002966548844433089473419454413260548206440189554030681798159502082756859111910334266025466718328131697665281479111632749176344906565136967504559175064072831824848413649856442818476761560526163260375287567604721778560615787186446302083429362619136179162024505257438548617427082364625062307829284063174357047379542056539007139879940760595398545027828486988976000550999160612179736270435379406229206573271978851043066919942489591156112517486921550944739593735340607125322433357745623083908303175186360082728796038178416798435655886682066329131349129921670880547811699443551638560372235293175676669287773135477840633960592747314348923402322187222636503109999353659068502245148904840451891683648158718512150389159775933505477036582585596919949588693938521189826432333706343473733082601584301777761055350602036449621123587914774083113958700031833311607437651926279974117652089168280726505582013877424763647099695436853720015876506391845935671935960940998437846648017377777115558902066073687053657022484217170605399444128504736353814152663424706388854590420562754757202467203666267714477539450117708573100808448437373896725650248606660991239890153681631782385943545861441712324705440594031619728916823693837593606859579752435292462972921995622779730457637165980742418492560927419343702465868481482857905383732070326552237366543347906351668559541106589824874573380366309646221381144322691852551259992474531228540710553338312008668923946155563283488312174804071201887767743528814869340291148737094012392585007809122912468836237176695900868711406778769573752426838579239310018307650489286032301955549875978670590014764958373641999903710775892004028244537970793200158187932735718563009081572043032425401877379246111594555175029249462628551377415138677928091941428091571178194504321417198009756894519572771165303163468894268803955630343734839361372021299524536489754747315490845095789967569378416173289251123795664252749542702297343244690417118033013660886506179088058108377949715036112420126902283909866635166036454793330136594302138714197904767647178695800818126234918059834952001436166678279774598441840932940881674782963989344971664675625297240699948928320911270856430913453173528605604553674661939913027547272646912618190400687611444566654261846196025871633172535919540241756714985037750499013698182558841343715008775609020854854528284924138880443404448709984193255276444864025820412312254499466422949288223795239802034712927379367020373934983477899418883676945782620678334968689185778207858285952663825128216072092196619118076177793349937377358787208844462338350189290753758176036350998657292865018622002036711951161214130426794301906874927971923042618926478162436554177349866909306431777057524103873009983321458642631089043453428915054452285962842813856664592643675781490510265923399052850834266983670951644399257167636134507766852196503292003712200510592199731729237554496517431068883137990939428869543872744047996702982998008320051044027782265376695026149321232637125758656075777509844554562597887317134710027096604201192270935454522743900109417649462228947725925270308989914287799385534621348411556706168855696585731344382274626867618144918726956058888769120328163563807320224894034154678552413725451038814015675885534568549978989248578525318918007006235544354721537535118050378692133332121773911393352273429727345698041144748851659091340648913850282984897106024280658161905825059919759176349348997884039430662879248571145409555602324979110052271031153497665821871665902898202312362677800062551312508703771719113659387972429831891967212201980976302126190647391434129053767313804490701441549164454917761712787430765358487509275058887338174125935094523906180681521898021110715192846344175628792164739487114424367645224174077607133918474748296669616534722125425729578142488205094601276519497617677547858656189340261282233118065994074357433572210577725443558779971955259935228225303806820700270328704080902372353567171364450285979057353736660932747562100186433064638902149361444429152558369405431249095989824482105064887363613729081454335164690792207119138672162947271644305469429481789585857588607272991646258005372752873487525930475232429909021065066003396905046596220159621025370250068401123870508031209881125426215704407450478489715348865971134038666259241084095573978257521005757285206753740547827493167053219832831538862033878801958993973668098665640244140003833052193685421372900942815817428889477134605357028136646094207857446751590627993090888918721962550078996845836722021336878037240391740934702161401378026066056107142694910563159280832142568381926413284364150200802396707938641378322674830500831471956109199391089666036321272512375229842631487217270174944146996301707315158772780140535153441706610117557428837982958377802559509379439952344238126666551196625346634647239604303050184650980835890821358929004878441350331275158574966864061091844398072915059106244031937191403454407153335025811257565903988072923322915783018732859038491804260326072609170231053599778992817765080580186290984113431605290957664598733549143960661516606838826687808963412463116694831215376506425834983514049209338353993369874015498048341619021698948223516535057233375977640643687339802836816206456370519727642268003331093729565196989525423449900926653133614770797067424199945291902117871487875268681658155752522785061369096577411077842910015756833280293979507447315919868413972776888476853908038913894703893273034610660087310110497520233090844848125295220795519196604431466330372483944060727858155941119601551617176671100171491842918757392407723123157709471652637363324974754818216379542451602973807442693886922861707881184057913800595906371139080779838392078900946131819455620409451097671331574199269970850719285363045516785355762672968834377416948432869851477515445228837835089012773527326268147524301591081990048011657792904178737218311200965255546874123972744860362396024299627276555835199474353052137221265602281916870543243131941495397223772448897507899131434869742963043783893137922872675247828464501345236625815801886251599756124576432651277217126470008227968741538584683428183684325566117830997483459742944414460664028824957632028964411183918819746833957375754551254954768924096276890278748765095208797832669627325329761571610827586190371062674612370625665878659770440005596065450214628355145559448099477499997370613969878750310841962118578993867168872271082695778046769701382663564286778731267049947532790624084108572223264203257699399702361227131363021143170442959500209858137424061766370957248977878179266927440409849307697074607078242300547695664333112755608742783459306126515510349625096782697649158310870450208878745279232344143608136262703317452087654393591977185570627182112329753184844581994904702141179815432493858292324149731555602455336127447192729345602925744309668243262518834872721698187163029138582679616709491800510481767913450801384094317906164319969710867337063063159601042303156261365563372271396996408402758210163600457408925564557994849075584047515462764505328110920135453039090065535695458004945007820667825124510826431314432330871231064644245490081257393255985074814180908231777848994676572347313470055295188523041220697596661839298994478163628387854247023817151042190707761135319036246993919807367653436126943437753698988456365660435589474555452200367626293473940888758113218218337732678162669128963585891610077893172628190929353026135167283588791190341661152338018136290823670695137613050286924223276527580669611306567057324725704021626611826555086450739692832498015591631214807218047439670050033842884669871455959038705061746637747951953540560120833224011004168193698155577468707860261600726217046551253967807758382491444863533254394566929463261154791152228237441566601229993579392161063721061751148849738258813416344395324318195315731708846625553064111319712811424085000142803645101943468736485931317604799035102775375705365819445131726636493517218020433400023834166893106638632585791877453335769052038346715892426781371852022132026883433391180324062401342568183036367397879779656866149202732961275071988866167782513523684678825660041626557706074189967027020845035793308512423439878730619616425373551605496570460434351970705404205449469600353818249993426856733891058712772775837288133763779108995441661178254843556391500598702409210339608417024278376554203456331902850726086118065408688140461290407011983558233252605482737422235176621390763608530517905334808740661309072422088842934866810686706560490451924725807163405315072670927326969645945407873526224685801424400533584398003313891585696580369804231174466430979353673438747982894804257395002791430436206638338091899144464260727408630003369296787053391961631197438021894288772836899325425402553453692949444874377972551760148220533131467911445897414008013726640867596347388747893305274489214542031881328178228340585204354991302209378064840152423560826844381226758305781685961998420074222773038861939401674968296499410043537743301397879449833959558578242133819020648162465239901545152901237943586688514315424596619186994312658514767663206067962088982825157204474616029585791004138438274355320377782001865146023268297645242916666741076026217206328839861428681777670337098288003232647484776456216432069889062110110810144888739882697311556050755555077638362946247970088638803054843564691481408167497371870894220213209128781619677681486605543318201990482844280842031493365134000139979582137772329769127520489410717792941626330342046053984438880541753379258720737636993915115757229458277874834643197438482577429402436503981966279476251840949989398450358201921588274318511302424020923600201001452942137199908100362000216006367597219440622957742032749601569978824786702212260267313790586836961791802868240739362785800932336227141301216605845282015173797267541532669947259379719996841813079409074018841859589128627291484966186233532823494346102151784816962867331201331212511750965100576600214371078383777369742055114133666824179455696329156807720000382059786494981049786523989840914652609429520173678000823374867078332396145288577728417211829801835217601771940249007972641381267400415114781559652498640543572352094648681125961684781432165546004359124011660937406649550076388599272751603480635795914399093977230896127267205782903401871106279543048783399508206161657322063471249077426934329893975458234111807358434212840285972211448684040306753180436751417103242946921049417860477946769859813501191235375475226677558376188229925862450224091152823742383435199532764337356794086192368496895236608839248175910549104511566007387670651485502335849297494820091919331235748200477618163417106051583974072085280517851635120238928339063102563763427141541007338797862324055875670765196850782262909291954186818840927229795797008576506467472489192381079289612987625499668491140185116965679019914948862610916212016679861715070453107840881128439920327561214144205650732739834207195894871786649795990821568732656271199332437143651610680603971468467351589684395408695615852699295704775208943366830766272573596343644253651867834870211918514206876620738902697092563953814367218570983546188934441951290834430291226970180385388625443773818910996222925882021004536648774984449548781552401886450648448962203120473442903210197254130634825113276119972839884401784185074573099763744126952843509942368667542215921704157720916832630772811417348952388025768891612471150079095634703607439017389163819986028791715561025090088588483103996516656062188619802341505664631738846486748802248777588540235385851070222658512982822564055527197639245422192683088826158750313064448305023501895653314239121215315134240665029149479586109031734150269164667045516303718165871095772985927064361518453884870215280486600709107816452195166417232930955210581400672204496393308259166263151673553621580974625068426412896077842646129847008995956954379841153967256951772557400788691680482969946699579837707302727207609805751209984977774348431431180280232558805643303961206441758991513509142676678912393386285769336260838768238921971388988025046942373504819892570706195117065864400919850938995911237083747204327156622346385828816756278786506319497390976930942548519066966768207936478821735250643928102846101002060804180763198887944972528851365350418822558273846018465063235302205780606736993599882163051980809128658864632646933470984755096857033178885449715739162255015655428718707403471950639536011503133225197274998776741470932585197805785746113581253034042736613358106284262808717148091763211701540270714372103978090824360682864985362455744028029044258641481297903612281112056534007174577946627447378658464010027572500262593160792563777467248768177379206912450869372598691381500721447257237265732587754243866050483116224755535970134249209380737121195688790675542960238450044435922601959765809132072572833876579145764713696377570255765306764655522824156203498662941458318960933045318554597711361391652368163900610758928008043933591713145652969010655022471291718343354396537888039951364379508863101688117644265722520338969304196465902213587990009391581382873350950107450641923433003105269528170212766026866687736575626188189227910460342411033904645535235488074808352571285017194749141366813361928444836220838171418001980888684061678739390686908056657431292534057515185736908023024711256392047197511735354136963679967002981763263204986649618907997222937297697304154361950293169690492315564759097491927536877833046741339250024843285766124082070552267423769925831021944673500403401776055341475656272161239763542643324628202352312755176662035554649372178798786332281178072695373053272682505483615394623117523296137991740596986816624257413345336736392231153336284464293797472123626257683985069008227043314982296947710771813232134590502801019038807418248870805732409757519191423850320755673746322519230876909396510374485361087254262935372257063202981798749294667263050795781005052034242898846391984830948919180351670507669592808183306923932153476370545379952191476940117237149455092171133121954790157572112869089147027046954467233326301168467823277002991032864810223000344557088111014364365847048035800221991089055804414419244399513868134457502092863929211639053730191884692015684141018534676003551343512939188877428893022044915130406036167582996345373192790984130086420230296877796023322080594383522074197941718247505129345111265570826187017404185146026357701939631084455085529264637800126634120534956233331099244545690926655610986019118994312473183281236677848325599294831341102092327066284932119050498053422529370103231576531684578200983045620671011739678416407237555686665688810317765927377112524267288002709102042178387718695504786196249606359843520910028370100678446088539917947218534930042251708561889357465076497679212029002346511677867313699071184107725504939686624727596399924013980624527966681760932811078083917319918861995165387043988402950298988871458666910985974914519627169375319566886124156437931185182978108211990941122216672440009328230148755370732005432847387788507584777933379284083532403247730640225065706813294622762417478791216150809517852507502196501431938132312657210718412828483286075846950519477280332801792137080910172507845612308165003794127705209132304674633597824879100059476693362840254273234687853900407327262210070863190323167932499787679799480177308841357676858854117913767108311270482476274524666748711541789436909981170698972342275080143556609007204468898642741285950576124670507706120084556829921929758199003684553444107678712158856389893790583131920745756625232893555248393966406111004138736122890400859474362755347019887463296169669475818198946945282218250847928677433438134433361411755702533615776705614690353581152586780807830878725595251641017088192288373029070370358888735174340252386403480541261743116992076997694779388329309936581937370397634501910077386968524265587397867414537069310733593686561252538196109386323794670562403624769585573091732601536933606762379677833601962061753970484847113019734250940685838919978153609685221053285480481940417670523443631614500562063207156541739764426240911595103516531813813425284287233491541842207179084670102097379375505709054092419353839856157018142168772058095918418601811968498602788930662982979869782218896949738840520444104712925666607613519242421090005481776022606296691542515265543223743400128381041890260918787775400389553282221249975126644298039531980191160390700116874379961636075686138684661062593846162530549686175175321047655914223239924232120931296317057730440901925107219762795921328776503847010233136596493949404264147619789589209419476651929956601504758618051632417237343971725945212171082113110261149590520190182392129072814276486659265081029748446498452462664576707661591567213289281144248111860709764462146450893794076860280165672544565202333464126116520476803534514095892489989151973254139741483493772874633814628146181489875366780314833798038224184024901440654467758583496196855025729634470734670764850083537263072964636037204325979770242685509879488969222823940822608968443787002404637247775718833287429340364954189304091371752784904060550219715217475078455318741940668695249841325931806702374545224998490199957193543424417626766167183362312696317963331276526583577744065454192253929520067720658150379462424704461118177666082236616868863051709615911537270342157199669161005289105328213802805069964826675249643559131840984486042290687383688573147208821432809876753666881614270999641120931914693666586329529825345613988996789510659474098402734479023495861851262941168049991797756188849161345615097527116250862696193658970041567662714909283106522448716539486263889975721620345664378072577852287234713456160830799565518244372273804154507547159944772438291767422095602088209498527425500789808698547325599936771458271609866893703231624593221383759758469907022629688894606986088306171381707493993899176198940624560328917057010500146350025261481879819161870217181041250077138377031110644487386941342899544765073446925340953771402881750977344601446795275372992165502645209957304069106518425637580269872750274208566430661996122072077963183918529464979016967290290195076706841224235996356143840471879264972035583702272974067087174150077172372598247011275827693680419815533975563762016511995176868051225258770448467997332160901229844233036912443623172981653624866447828976262016877279072467692434118106263301885399556109276730860520578723581104267952973587315023210466004998298491483570192314424504942616074978014279494842130054340093770490620005670015490365364211210467456057695126856636823719122880113882294327052926864072471817103751756743131052036274412117283795366286580097778593921508233265286895342141667955845558592793146042968239099539573980654217159519626059026427506065353510977983071804879462100955519468008780929452555701512907204979186880820771858280172210706266024627270162909406218550176457330123171114990755029242927058570494703183395515984741203825898752541492723833466790992164163147603418874104521672886312419762893999278872220431355422132574090136497376752517383290372464214016131092874589803437379765356759720939006067909684034564644861818038325245610702309533956885733326258208045350663894270217307787986399905691087206337107023652673118335790774901458778257857258000648031487040523990848047287844108924695954707563527127720407440053402819439055171022608418746006120590332785477259890707218766275638749409850111377317602773347771662399450229998871839452209418853689039433655682625929126402517380461511229037432382009001770387744878533788539064406526868815746490637879719658316381209599818860358583833125663870537840242641575521914952410863931060944337684660748857018079255945518033026980485444267894344816034498342904573128556064155925792093218577179350738584503684338977698587858104324187247569584061311659666048694381959694097939629856877397685149000052768548083261651242927101460398265439679333799520724231980430918682860785557316099407339913104758014932199368136616956169273767527817508613100362341937417855469182153961016589176489346448036795665126590335240450605007626042364511317913296566963219817794192567573835585473989429598190984711341330024002105361636170396941962985282693886560381679136781769191224014378176314605709547135498680804509205907477833011648006035597163385250688451412666015574105883463233273544891143917867832314323888609869163392097954075898076287567735461275860499505291392449920071325231323858859956609407095914182414710937953789677078757883789108714096191682849647536507492560866338827817847951089517165866218674344243832731599930845499265789334965434244183926599451201486288646080190754998638022914751535165772722070029648626613197916848371674706738144536884313242832867890549532924395297086023309068353816622941072328934939013952529077629975415427441170575649487298461508892493178836540992992193848493681746986399226011336749882545422725946763839179460892511176047742666551885270322911184686300834492733966957214983736328567964695427830235193602976187503071894436394928001627002078485445468391803564639808067879217508851347505688919030150726899486153816470110674672560988074396118757387446699477594072526297424016013111266228909092224437760466665126518092355202591461152560332422722302218755955297703313511672471741909528874161836478660664675234822455506698749573170758446092172565886641559724343393478935369478268711539825859154500972257228670213237020122733096583776497390575124739470328235554296868879846870238143086696176700935419594551322396770769477185018916057406102948711520118058201001158197089057594094450086752244641108609316976358521883362286871986647103926089916846218142369140686979902132224049293263532092755592129967937309358755551158490904400136624338040911948233150700988742377220078135409428356871860415532463369432521703585039840004252669045877451257859786579504986214176745125986358942329571260066843027500572751859917587359824955736371437708296433616686296685256256005101642605769307413184064513015032112257400913859765279598508149613048876634046820576872211237939317508102771857408424081029057990248118416066377272310642544348653778969588611897108811281712700845280785547549820397789231053372169888236615224153793021250779320652889429015450686471586550902619536742146966756640116668416383698400649337888357267433197866519322895665566486607199483287899522741731629048635101811447863150899981835627875372073681719626383442498414212969654018350545597436729482447367942691094780879964397190504353092075091404663484414554747619081539145024372938739971023323751369699187748374000018801770829789622547891826081915387792619372244060326633022434347550961047586177460935712219937728459815028361089927293721037368327436855699025151715810850120434915710587400951156241119089833343119866865932206771606049212570223334660674518457503240293831508598041178303404019531959373149629194642714441295530225966395039838483995416774218794272685670495381783069803565031409903886248525112291491227197194592309557947295620021056104240589111662785486400654465709689505618184035018406774581959750487694287744001973111081171973527510964079628697835334243630234265815290748142199571552390623778722439103309142679370889079891261157828422294425607488227817663617011927389884617594830907507971619448558723185076735641131136052598282276410950806436289864894620483422800275725502885658528809151112594021903398768203227500415287049375645191924360565517592209814579531946892487826108027060589874148886234976016754481225946321804032651227560746691400176646367888486626239882536998567633533343478719853820517181192203008026518619442098301722710382088267714437802568430521143618035031588168993486716051196684387326271450992308048959881973274935511734882908213187899141123039663129308011130929957695055503436910382110012506001678041885981687144508566370816266771175756919845445261087740521281100411506281499694989745752106643364515261243755893702146617894213463046345218894612972532754584174279438599446716853670540495708424164554706245379725390557035401132094826246573425116632809025059791996523027146559584106941740057475416407082049354410861806986368782390746336544430613021278616266333362401538391152733693648068350246398001166637842666398650488102691604372445731465874672405728767536281721951985022166050967015568575757913784266195352735760833561494241604591045277139500396875996597984004972784770338031451983836896365068887084798008039379003510868701461551220628393876008398359839876695034819385926391455919361241272244895144364436598562949192935924946154098943618919493582495541779453402636099902037136883138331735131909103659275661847108164544879033973316809398770742536714003572287270475186565958323875263004605526105337827895883693666222023888520775546997130634016522127313223758212212513726086253849504444675838828925565640406460513780612126525387749851830443803245415409853441512268479043042758104673881338729113548522490179833397598777255702763022649542500482436036435015089224046125208104381445682063188715587844512911129838450554888358688314812902208044002289561843080045609888231103847448396930341472107035267322190246858611219302483100213199658888164016081878677758564529601055248924644740700215142191616146604570496341001512003434360503313368602994366022753546873037898009736333520121805026982401541252215948103301595119509401125111307927711769608825792667578284413318618964760854759076984747427502666972461709028524576423002722443838087498365188016246331349003495380742852970194551170107546209365346755600581524220066365879802509498704084712640061296486895971178071581486514806530447460537173766155429073018354793538464974205441276697264950794509359991447913042272501404045569878443066004876879840307588684848480467888832828469620040387288522628378505136252807006120630285688443950511248720597685031465864013776860938041854261712298705452052892319096466787407900342559677868216221002595390724971326532648479967312606111433933762269119015258300613917303501041728309194592986980175812911991350727960424628415625069828361388160309242585029734971741113165833442000701199742404286174055896546097796731175143732540303692190130364388698451866654823186832249809767572225795773937885675698663787567355919812764875652908407378811240822173786963344719572262661941249010539490448177797636600058171964443744850984770880235295169239058173323873234630187554907429870405661904190773448843078556630057563563439063551083465687468160751961810883997113622321404878437352174934298983621868287727430333408701237824257218758628287418265344227709061320551341273081449127079999765393075275980730562046581816484350866008790235249912603210359378354705375449837847997681967417970799455255477730330491187762056266650155037513652561649391905378014858348420090464513356864788492588791313974440512281107646654394558848816367800809502415725609382092740571144291069428431022883368023084536874274338590022711328192238001612997052148459532910882699807092401059586355138442786217065943833826103147679559582790570051253522482204433867209591252839649786661931142078090519530616908343922516729971453317280173469896986282601404718881599578929273920076842755209523759648496820872858657165478664416753370901537502476768019297214294990427711802603558095580986487477667144049077686943596062231302379127124001066398915236174013053349737180270166299452665998070776331252900359954221144773082959294826480462156634175816555842303881220494230768102311324697526826101556251321307653401894957003253835986661367783077606326695054378378280134261876232635035258275455414062159035838261534318637648579931605682256637756196174354316288664382040488492352382089413185172115258791368727854823079816561268497048031744001818890948873968032148774775822226938749967344647272299157758178879622945795440200619695132099841774203132084976580139050087925958157696536940664765333031373830994454737178848963714918235376357248357922673079838026989862173446576940809349835935068722486811881340136095427837368401864933512108711836774585789534734351493050709710320718432525998068546667074534228158405296151928446529155869975802676785649266464744589419992765271550819721091835883896635061826518656372469993940092800737187482313009529915949546360819266071723762541410792728229326204924305043171359603094304692693166273205357318564531650927365509897448752621156089155362037491618402024427214260130698809964352809344419530614466941750931942455579797345093134168868278894974567660544285898639409304320098330137758963725346257253285236149561014416382203786577723453387136845997670571473218864533640294893338476387720448100046192640046391184161167227210352596564137712920737572098555076074131299489247847766153660727502825484834523309870282894251991961079316904383657403582475568849500707219666769109686951749634780950576459905951811938876283954288756180187912228893337336093160773998475137295670402104095370609688619335911330677142350244765410035758676908998245115501680150720519201065669122418267741366671362218645710095010008303705022811666407220517990421892744241626619123456186682154908945811204223274970156026594679525445242713274264329291301346423607019019256324827485010570310146167718210436525228718870814484042372712460991133753885359373781919531406404665450607739079200354790324585787618188228249659856546745612539857177795865707973983363671120495469449510852597802247432723277748027104562050713337471640560811428537373479424568237217083625677774460738994347226049604763844844643335974698818233435369835160813814061431330537780353693421027061682400656571353225845253397539408082990294272107100281705297530217719541555069464053995647694954782546895294193729771870683803213603416340613936459373384396322781449042676797965642107838286989332582613509236508188342544943528631871923930540700899858769460836687902462972137046462277894381166612897545558559281270232970710878551946113021693527825569745557521656745158131836831676577989958000351147257665893020168926249140472215310850948844761797944682259860843214158457430308036317616083770305352276386559007745255234339283005419217827984111875629738796259736684109951729653239884176116629227605016820713461374731647309584446718880986548398613682417415539742629858206452760399738370541343483806552312111593074324622316535210358692898664530559179527490007765564592182044819040987284431220724633974354488028519737188636870650319875132378835034676618077434897720467284991049999387659741685052735198110937667051428503833308895062176527762979910563949026486680000426282600065342383322926210040740975653549322595441741017990905427910194081892566861684846343310177231554176049145637561088299291297650301050593017868352874612895374342017813841237055953744428144561734530279223445944010866101776950736468659709206702032615681673263666250894521573004843074272007534895433515385204368748076018792154513682002231302956719174948567655713776526900768506174868225158026830261990277989535946787948322931407689875740587812322616411031709343304587298744630439775165073290263824177026055385948466184064309568121788219748867714396241801406382416697167065300989183594313244044079773012313446415345025962671006532865676486129603855744627360279759522349302403517703881233240885261013171535889460735486276457311400023438677833345233610022728557577910859587990264984736706728300655431780565555630983779925609598716788091770255722715451449941833819275755966633756081711237804917202749375598947122030998210266928454669260061395059149545389542689042604687251693103621039053427996844002785732479034833550362051011824706651086074661841033860251298020232720033569304668688756374157924178842231768332562239489657149993443761341305095284282940203362685227535687461183248974226369939056789752962210248095221785453522329722071783017199647607954754930317029725917474178889488805387001934433938949868783208990394914095893079498594255447846053818332549358747429016671832954134081133351728892078998194073223542186193573502647416487321735266115649874210497413625478646342340842223167130872665079595247120538878343733052708411959075166535574103451783291236850607558735181026359486931707857843418637373434415784407399661682832248833092610573690607129272459529704062659771791400271040929390044149456416410072587545593870557797446197610211438971901873676319473289543918980962151991854651058419591215283056001418180707415456972838132602001650171305014026699965089840044622689779409150695681600591352772809329639613626750689371759893051288985753639706804710600322853930581762034057897037543809010418270004767465749832232104080949774554884229860193798455293297917974435726701297372216596631712027594863299068593061895800259868295627073295670462257801511110046177630229261890979334466267963586109332135563236858290227389072464306267423831373770480042109847209931881638459014975203779872991070297207430544620518731064164881211146609936972097305558169966040591080033500381987808984107462316105832836514047591200804462491327507013474962935646599362498669576635199417876740473030313214652249564305791297632824213313456045597936242184334521888077134960571677144039812720307894594689649049090468606788779175373095605744737294537155907377630126352772647131511530065272405265831936256078836579527719839938745695901118564796534346820199811857501939314886761667580762799275834604723077906211057550223667735194826910994077695227536984742320460997975424520650438472817298568328735055264384717317971042385390879610264888609647359835310066865659647581097968518648525580744822659657054207032799698990156826784078013723324010417108848512417354182940189073252612606158682708254303173312862293130178877013044431312362906175247030083731987376898626070521793117031187981479485871594336683028405048643328496073474250682020312586579678428727409355028116756959958018596412103912112145787698464758019818598771700409018800222753404373640574274518678869443541008772900906634800332447824239696331275505448787422191200624997318728707723045247573543805122784147932729372317040121478222627060069766306426434419179933278084963732483991741445274245284325225050093094727988791501578633800448959891660841851268306237946877161734511850880931757953911555593426593400093620294740464399585922350943956270894105565756638130883582917678005761471605674049735138546241862194947034167829317479633675991675313096861079062793966139461731848050785375961722922846742340037340366349745806753566968422252387472187515204061663060031495737067981797144105341426478174750162345386036502239947508478486685462981683375367473260753682138257985507136654989076563932727224456508313451658609972104859133951674997609067069481292065334234567708554754179875640801454891842056926552980308670767738779723847202532096998316195646054615329199895232314980171443187395107783951437134576341862712562793780920341632368238619515041794522147354613186025994524738720917438313405373319020304100867188839591683218854805119599292706572742829986181734321489927010183634579994854685313262776030921102264592062702729459424136961220946935867031104681011300039970455910234013845230210403824634024973103251050043396343910690398255269677681866104253952352759030356747876644854517358322235059980117472353243933803391607430692580569853010181509393821707011864804616646074446465418750992878474039187578450554442528435793716239181387804068999084033867660117248665117860663083604624343064093442889500262792772571252582327205728710457663453853188757225618486471061338060526430096532235849271733050341291849623862528568615400888172506890107763714725015137146980704088079623610691604191013468914629957428628448793810502425938062830583068350504429818086051776695282798903335401415201191323584565982879320762835590430586366252177137557038759428180473961862892668731159272970112996436395429974160685434194008233014727930820238766127874388946535168757338872262670441336105894670222124287983443343746893253894967285565794620266733066532920443121663668692563140124089246622071317339654189068429431671737270721998061049369319927067011317679836671509500053576451818176633911590196454441893349051879895716430148710603653378454204477311061746262715428363388320255646896681058647468915195082439045543293226148514759115131814687533341532334180938497850455114772569524772827772197369271355297598150150461386656247256570882635193331725370688625268721339782394273897600352446714025956948189916700488508376671931415965070297133559906402485283011071382382826642014509388820789671821938045304341435639165358287426760261327412320568781754920706044398515078276414122329555761520098868578768676812266385522927978089883118293996768596112805363775563114830174834693771086152029100445633526800700039983696152282427342418851775979660204892614429103663719136215310639228474725705583220946109355872360876763639625330861784252790918876901153027756280384330889646385987126782673979640799403934950352895190234437922446241092524522740603060444883455405200859120747185102427061507475423640981709705273307113489582852875501527818336136516608920811688755727470697967822720741870778444975250066878747519826045248026665196043975826136019725371768224666029929537050036959878631720040181784794282512544381777336275884379160736064113711673287038945315496342820890639927812413632834742684448308208451201326777255236738682315331973796377048310238634376974628153239980673454842252034098314359047269537699275462479145670400532128748577173387167166875542983802372833309224815481333902131355551369916619421648329886729803581950629773012147731738988151643818242553345031131282526586386020717546908785476073129832821534813918322252787232070402346783193758125579908232316069061348803448567094773706363703376954439362966164772530303808283723224498936825922863044674307222871983243828845435476079869056625767270001422847882139855563222248874028742888766808994849640122948211407525177926620972850025945238745088428789219363078432324237384217197979607976778604662601640664402443939851425266235111867642515322037104056625350739057352740075628738526270227019301506290957572544395481408642007108799709389361281605001030997650584771549067940610735175304079664841945544308513298326009508909648658169660670932023888992368255607978661349634111133209366559995946705731713067580148196863016758762232465655016431451861679259791394371317990768803502454435702308769260238955167864750427859671247915228037667748607405351076043679798460206807936337423813181109699297553803723487609046888897847128983382497553455827786811815302993405648997904653819575486269496132660376436704004031347248430154307349397564861836865722585772085898993393389081986879009499909299879492182266781977015467475640093995466425948826408157038341308540986792337637055246815592705644637022318334706606792820107324947493254240817899638645732963580170318770174345092340077124927278593803557408847684962489368005592757284421221655233212685328915496651036561836764031843560963121792637888462990533310207189294487017812045351427491845194463154400110982310301929967398523661545041844736715543077109283003968030815048881054217206005437091375404237389385860349297515278374406834332466663165007885410080981534412334240289500488572485231313791690832567514236011196866628266398300832155652839321240740108606034274298585939715342107687264054150966166957829300203029162375804801699717827489684768570451191475435764495099864524478558719266917382168764633009692930870639802804355390656907944620276680168909099666250587460987908443826820885450228778006330411529218823009906609868813438674683919359474769356610147782195347939771859181277011011758142719566215212314679646558553563592764229256412917268892802140203511452857405718748003327184619293340302553719106564358083439592032947017371467559844945087133677942137330274075881049980177587287500883805446678918740112905823486165018105160440711307308451214953942827373872418562016902955965322007010546999903285577014189097195006330683087440264213719242306421786328981106297659824552712458804167519126914002994497587349299338309288039824452232040115627903044988052958702884594959169108495065627963791044060369345065687230760813242401243023937554234101103157341221976916328063734361865767768821563270558496027250794810894111647055429778070405724607243232875316599099758393610664705060606457988324543604865283043656693074491526300026185295161645139495728640391009373113698349769325449689377388821243906015981481284722560042584839097450303838329492778288622518991395404849490622294689566853992596051095883767347280093744200646281470922487312843316524353496335366888032152191907603318322737070987423581825228543667832663703752670279037949106972518678658865001773122757340171584534688525540850264190197211873044430806725407227843991144702518541682801914146164211865609116243211606786277959994980519268095777070441717038610416038317383998508117236836351866874836873208184398383384890064789703863480561551021098178560316054468990357786098800733056215847627647261458125560688464505948667227665766868929203496662179288734629921697042677724644847074686015735537372677357598424608568929662397954269010334420574667895071504736315219149833102577703130031212115835374816382165679444658235290942013751018930672539790249000375906848210979927274283450332101856455761840928779889325360962245768535971410730132326577385104239177277276599010995502922753252622735880201139616064510077589653355672994862382989654492408587915135103912918667866633859970022356754396809921504156873955158405415095942720217602027818759892726502372933407994420343514666322289680336808189442278054617210934886086165405756150041108612721165357871473788573056988437690169877608347650087497409247002693747501586556888354981604560216138563243402328167136808161513716145809079080323700261051139209162506705219342365020721870150171691595019279970891069688205521942838467209704214471518491143208546527246844615055995815386557925056354116450195296784571374275776396259133269300713293140401303529710497819696773171444694835480468040867762487460772963616288596749221996484643016235591183067878065627326222981447527338164408876457566677614159057675791457076025943346539715539728037043280917226395539209274353310804914370897953713843954963396583421373619248575017391016132534507391784792558948721950945731335724918625963435052468545296776860711763807755155105582428401480378697376369838324760468889880913857790490072026665658094839082233960576536349389976347767761288633690734078788605152615870839514537195894823327970295214381419617898508518995147166259106297673099386096997776939073566091479424587253068401424709716228125606355178342800621752170006326390428859192818303925900598169270043094551098383822271497405511092998567716988964332628245663837726050791014109839121539336868724507955958227100408589972641305220530967124786567076233131921109553274003564909325859470859486063114607219800080635934733411351501924843958941489435079284858031420835276545119583779361473250790248775590209965926820221616308918967964800048239255222765451924082921455958988115463266390373275703387825479677070948237473914101927291169669806696205373238175753733533698590630918469926151148524781126408970774579175436345047922329967367278313842457579903867527126017814390149873993149299362589363864078339869365232034117095056657559017575638444697392127576720002890803976624797515338622810441975155543865435275129969622530355542456012488328584050943406529036343613351147521109880948283379882572998893484389785229264338409043909126739602888999208970040761573899984333519520581235785456420689631585281484949919127446801794806080959619195120696463589185693461863940330638234189042733250286985029550530053933191130427816193736253301155663599298223507857156571051715443426361891052738050693355806843935943383684664417129522161951773683326645316790097279266245528990171507179439349157012102679255735282217961548328584763171870532961672090816620544802047094714663243236685238384820717137622815971686956580087574507319871156680312436225685237491827801503709002303095384290663012238197351215296920420093734636181270589874552728937239731432565384801919498942237063359475205589917885222744078846749378137675784422006250270511954608797500294000237945854098380010710015091925601491873868088270625261131756103546122833724455774553826370923542931504018455768672671723666939161001813883159936612671249956108919258117996858157648120262656869951975203347517923150734204315160693201451453558221555239749903994345984313197944678526664425814614099622610485977502458870920044408425621825556365611065877381734167666359102470290983214310395434233548153578879478479927926952093868091172840100226040465888759555456512856202788247504126729308161623630331601337623148443638963270476616953201220841130582610195712481672462629618531503517925033215065643948360036222685636438514231682007332598144293969367269519496804407819066685957649348004543800364057596677334738198716715146911389394444269447378106713757390121216228224912947487315488209574640056643826964538611795261123442109334162515144141375213298276524318907389722119642113570062082912515542931927449424402175066655092637509013001320197280736615250555013283080455896319726428942437625698437724168342998698174458904170915129100084892151460109795233626514136012805839668805269179008970162756385535321061821424259419885074756669879803963838300170809004007354535487706307066380800811610385119816234383682226153763048789974374920883900002462581006425145367376710821524267041826711318813723938708978484993728723008098956757568236469716301278984327546403535679877975091649930890246192863461670569358488069548870608279552434777115102839090508679857742732287788845800543516466291018141118643817768907747423753668046284342591403538592036272733470385464765755649714255701756348829613291802274200384507803601766554795325583464251441593710582555216387026819814731974368403970644918000369710426460581302255897887609033565522151919489371960427747134844044928473996338863337736841707584005077353509871716005326194989502837899319095376328188952317842898609401230290648488830049789752661684793274999664210838478622810616250981998499344399955033866109342254610835948798576635842255533479004818014052220949596041007109759218593559046130741008229463324196451594493562467210831537032320030527647621948156097252820188355852862089210992499689708079559359116058959647723867504676439149286353614684947887020028870728303737388019762409483707326966344199934280668865615420845983370901939055095872534171281608689113131584435917189649497787343027048114074258457442741269047609710049454229777101491606736051120845036533237093837457017907890462258082227551644134984449535244053054453070083958439283435377811782673123358418514745543322976221691724677910941897046271686841071496236754424071040551060816854913845620319162153377188696588297650938138265532253349877290442328512985676412391102512583980388425615034348185259682268015101085199889970273226686058968622381086806032279787719162869235236021904981308967634736620830107057636211781437584163936795161068245303273362162789550139147965542873220979581775348729533888181952351070942003133726112058099573929749484191508919308810045876935801410640169542887839243452074713701631101174794552915472940473758312058546705487128246039936682113741955705628527496993636666676532038337238768791888956516495654926563286574409879757662224056269822440586056630322643587155670065048611410900263939383004325755199070766236409541818829712250279591262297943681530455336640308384449020803086102342630089382070802441945088168111661566395399103253238127134815708739055648929736428631165855643871769802612976437434750257504014067828395340321821487134092307594576714053358758103613103370180332434039354736376499017163718246539590209394788329451332565652733948944389277340983739342077863835307526532106109916252150448049985916958079267917256325819830547296745833980838159471054123457384140205101516481428325044929580583620893140214363446944997166172003163703578180074366759677314352815775450984213874911705826961272347733045400630801349996664720560688920493472662744649445773635846240681601503439226372420319720005435141379351158099848080462795260757080756338569244103705284688416141396437601692588882506642272024737759897630102986103416500834010040854220125254157831228593373618874031921687263731831297147178772117029766801640072625534037716041274558346156624715835036901400890270292025580091686172539893760545344807846639628580652939804533621745917398459669583114521435454072887663279659208268102629452679909437516890044257024670446247770885488234536335970320270942829216694023636757146407327321204443287405326519848013033708267010319817911804048085358700974786337079867880346177547905767271210446308845677427282615655361838607970730200381384773044380988795727266764500828481386419165041870449137664692128146084921218362514432727464020424283901128640085917442268777786314191030329224618725901632165648278010972262363351193976917303613913461967151652562409868775203530032743858808518131136808997946597364509361316393251515249200555168605099758292324806238897514383165616698784796702342000815131292711493683105712251505034822131163100882127421259344412281296105406901043716112245430001177956154016149363547794004154807943377555716243088348456035145137671053945343621304431357481316540258689601873606897601643041533011441586602558433964859251141335095160829957398526938203535723150411877387962497951330296431190279787883764391214796249720224200183773868032697921289067624947457785434969703312733829258133672949470942483882459861979578943535092005566327869189698251444315030705865564865742536315186337690184245439816230577096416869734026382385001508494700310377698586749924874888016399848142394087494322782939473691099929591238757957278998068400280862302652381506553944400202875316987751378319732220248391935547325638758126677379284929302981152421659751681388189000060871046091151678228357098433284186321825101049939644631312480475386085646582371405014909475125202652829012975284579901110349510825384381940441140567617717073032022041508118610220497605290325376853086096474764645587635767658985505265807739460902155639007007191508145199154242920128333444092964877920672535178324484008910950157689767667144349032580689837931413647817882877681852331376370998595940111967901184389727433198326031776514567120531933114690675610325550043878246809188084866850325034569151638007575400845505908185081600971006434560229946250854380497734963892570517285726027664272701013576617569951873399803883785229993693267668074064612669944485497019052895114985422386517361819491571736868613452293816641777192824270903457837780633487952082483499763571489386258473851896128504209455209156969937586019679256344219007394228368688089575425199704681689031204548495961353610052476038763410216884473714507984584541654755691195540410965714070465441507372629159755321143436011478009878094597054991174125306432966336214914976195396461556006367241018782704957479210918932016953104398004265529755195105018556861627133480689955353412397433158481956536931662903468488129876135731882018686828217643237227588199670838489043755881266723704610320014673346663916361449883559036833552649021608444142376034577969138434193140706479903635518568941108229696122795557523282843124802755262315421852686763753042724547255382459658363871134561632773965637002188411394635508413027518919340635381839885123955177771434525864582368705484376512511098660192993100010997868287675404706411927316291986264194099016547802448985093219927963783883155017491393624801793297444774513141330008374557831554554201584019055295473772300316488026477420444913112945640575712301468080660154701849372397332627328173074427587501597887394291963105252112358289861611259813030720038409636038647390854131269315176774590799664461055942820472027162297610051150759669358600122038395221415498539173218017805202170659119601609955498270248974375287024333567132345685778734452423012431992683474470110160271891126349177289702972772187184499646046212847507352663321075712399672790890970608610383050112466600214642429805653320437457134169804592404992729996066314922901118854256753340244380540895265530871147937110708766941801428626665153309588206025958970747206973197461852970418886729286179444020320601783876972465914216505354611499047483733072852383950654945619596793310643261461302574150185981249975457086435069646468773591119197426676640443570084618499786861684074084961808477133601213817956574818754703232393695440725186174473928631045526310857751876861898032780400394430526884311149871084706886156090391910640260242878202129085200459197895860977399704054698236517668985940070981595456160026162266653885953497215586998914394691065463701756344109339884123186571034016466514449241340577131633184606190284960395286576095308414715894222246701557708559897792335625174715731136730745582080694009531678810646180354502140209969479977426259315172833998325832650570728856728834969587030312480700958423357357875392359142713129244504627364342779448467335354882374352082548868832035121481109758881292652664142637297032783118404932899727640200389095661443658181037628919354236658823140420281460836430834185170068742029508425880009934862728316000553726949321833139664726524514554720161732758947575888981160694146127039505264853458358702072441802345978008464314451787449607273754388335571042877486676582285143006310679903279748338860041555067742544036802137023794652728742650945288111368686438073539176633887283093944559505132561782211368644948446939391892947936406838707320608689363990902657788550682439104141846209246251181717674661314552843510762502090107582165061852939743355467156140189993557811734969851357148549204781196200590658836868556415786043586794063069166348091270817358652328818294596722742610529877445549191283382417209642390949966558239862824115754115970104469776494308664941729181035825320993136461361024248082045313079810796208801962311505058996045015051141986059106316625230502679869090156315311158221934048355296662221156408283188772103380186334801387944249906899755811775291919110367310843554178711749155212394408635127371933874041997330313395166329716766393179530548626197071549678266958884024712654516571487337479093636514849278664574624889318501594572021190858429579308022084320925333959117165844755599026830642084274944763402498915863174479153019916136182757630187129339158753441689550293665928956582209397246907038306637129005148230490599751526833871385566458234140136532151910364119690873397746561957611834963722156521680884088743397987497662222635116950103965399190531808663118088601878943973265485170114717918928006743320468210735253956766204653951293192771912824186551781043829160324904411166583224016533842247636605973330666409646708343949150908743262916185308237381586076832540413171259876829476315959500181133449366015307909865518740716783538530109084389714136254766146949558909748622849036873468536530283098620545697425322332289941784933332141652056657873182044162701790114948081193646543634104743467858856728606230028388863284587609223556698679401060774751198552800281845249307555066531820208942187039498941087047975195057083915225010993293979505305476094826136654237642740570554848267937404764021590213185290337710662825849684785703773778303833734338929977859169568830372900131317890097977398477419804713797529813281733779404004111678981869175412920198957458560120689548918665153025907180381093731582183587752708129523054374160162187799883311669406425292425597091258938439940799962090428503167711322814916503689866011341596441550355270850132795697015863457700904407425381255143707165876302810542016762013238938206472937387062198401034350408761389279504189021590027901661244614126055325003352079765554091690824150491310203314582387809645082633765611673809078491213498321206385266582500357370197789400909989994294796419704802110930315070374707967699783429112516921067664283734590380156918049141923181866447233882547711877582086481355287666534809574292403554245639384321507914067595387723706104305876060032207070338387831347234068283537845666740463315942400206843456912105030853444152034376468457991440156954753262171092026128745347925800084947874186585327457838309276953169541879004514857858716206925891109640677565961196115757852630653833174492048278220124739794850945098840902940829225973591801310636368797197288618027251024049148592867028044722688780835258031636125095023212242916749257085660907946011252256680959814652153513836989951069405180393105926584092603704866263734711512456855067199062413775438791887418980939402537847011541856315958273259374492798374482486771784526415675016208141628518388535253670643378201784451667190371487667105988796345531595466969229218308037910053048486752687969779716589279555314873811686889785033864268805507979358762185115721549903127572330478164417300416421197458089122809055139520200159423829906404640666009556802943329737061993551478595420210770410527516512392192317747424318208050615192771441705425111120001944774681221119837522775439781159094938926752787929096967363628160113936074841191398541299172188405751701790938343619945493308070486341539802193567671814922294806466258082169004245636946015140593393868888466841880853824138216462105313205883905004220362049286637374358528926060611227740788951447801795424403525971298784811387983872747015374233831254991032424664066838089227828320615761993830366370098410266136558671799821501414736041568374864008802207771212746192442392864076785064130297835847411231051923944692883917043625728702214363670787269451059020808004079231919038905438103720275683559608090674028706141724534179511645775746101905105677421509171131448727471453577651929246345042104413415386833620122978811225203293242476224798582669827391254993710602766503642285548790380195259302283486668636129552405768510759053262057372842392852514109479225117049661269584112461674827484435645263110608025972119598202172976589902080900803828408835147978451487944160978577947834946420630796321317683426014817962170306454108811771695658009948751173466663531151167987598796491797048201209407759812583787129868408964945161654664583113258995600126927913433625591907087246594753735903166958083453809285928602373841512596849747165716799630208379381440648999472063358082284821042026013570662351372913918679052419745193800834728138999746914028156318052769082627801382514632887338747626698566699022177751752211940617940276137378727992792753741202685620691603846474257220218631650629537801458953189796686563909790512229004915392890485705127488409932575567828700313567940110423713859056127329147755202748274466506518365368287321161076197232006747243219027490198616681133104504778971737082246413456669049440544571243989046350345039152347525526468484735300653214556855897922706411779741186138065814544284305686990229104959008527627008402872019945386623691108391617378447489653269635352948463387764314742026524228497160518998225718054743089086638994696727591790841807463871250759041883211390083518262938379857896887591274722201330735985420951383171304009007626693456770691713901969404500064605839904805493469846123720101503491900933205406477381913189989119981539425409294915236779241455429737137048973532299858991405671183121531102192291507453807127005975997733164456115703734234155308130412787905861782636588420130074766613407378437706336944766900756850525570552302865790806376592708389248764719483800386755636390730688989938885650922739676013661772543492535977448874275069269468953969583539224671537800280174207479393704497362548908424320153277316148935263826098098506988558960887766095683013709154346767160239045927608293495884606879948174835650423248293157022190734723782887073506783004435535901842914142962791832232032033248452818670070805343186683990264778334590511322535693088415586806020210350694532481940060100733331438488980148765164488057127463985276537122069302283542902166497558459672534604386649292702101836890496470636489262037079464339132047598589178717691352830963430900364483439511300184559015511321110842930484671760885520688083184256782228534105803242237151649261610803287196511412242912738800263048950820852267519963865252916908892262868939288186910070607925733751290515776919928371787158815710562818496663585698458628412433071210008094187606394454208213549167388760408382058986805289785487532580847508867014711478303699621217366185739077282319945379701409631310413674122197779062323243845087624574907320109999509787615268528806142600418357345334634303810413218191479523775701806977617319524157239365772194065550477295818069875408476788602880935993413899311288508388362880680396361055608910568485913320562071983440424561676179489678320270817108845661959600146584523644217702031786112776663020023332784789247726938691721946487423582981194753368605301266865238836630315074150131518060215947696502744184766408214891573229933067182478439579068820718208451415956512288859394410537133809094244402795053903721229748162796827151094529437249658995148824616436290422118641752564184176476493807771993238331679960812690309326527714268328384730166968412850470525130441789583221234834682682300890080055963995040635073773855245513798342668126072385067680983074469624794455534997744006204804688257934988605850223006619178253029931453717923579850801243482368715338827539422067047487660454834505044921807137394157164325380355015370978733370901604597207596969611862262365018893465713202243606265078678018193242178493581976130851436235121389757782210194891135955524561315569925541957041642765227076098337981870502756138588571876542258008461655761877418960875890066304089623332563456212506160116781062678574648500240980069735934804418582805987985574565228011897642939392435680662242101454852753803176571935897936147213071150930695644738323942567924367614527644881840132503608103318454114288500356713726770554498844317883966404297847880123175529245201076339988496138228724494771913189448051878114391850320692943489316806876723352764341572669581141375210753266655426092340436570601442112431293544650609384396022532848398241599141128555628988209183534882343037924455287868162119558050240967967239467618337428732735988993576577443585804534958883428075865975000923537974471838794220492518302169043604389206057532584719476121134841553248039152122625476559700940297539280917928784302487151818213331332606313809300045212062672598715595263613190509468875678943379775925175750538754138325848120468930767755167772539701610550458580489188562211091663900914892336022313364813882937058058601843544069778363474222076309843319052058373117872103106235501033661725497506245235642176261011597807116724228639849158537015462408367298901767171428552499129569448145892241170861522013758207346867227249255391385277828471946388099563279160434691047578597589695027057926244461452335645117067817492918103364431766418035836558739514417416873291359455593438327187051366325793352939389510915442798409044379931262347894695771506441896868977329080136249167601992769946768046875944044047288295259728176374463556771757268441639313470354486743192205250398603860579697324655896160660116876599667612452071111928607592399018808331969626507393985254121045164492952759363916649452321637749053254292165206085650587100543370498027413565860582181261538303148030690040228193576904862654178409238810994593334768958224795670400250408682597099077757010709394590227861532668004257508850050430917528127395073095678712844716624916869619372900386092759377077561866386500977092084981207263571674838252243860750335230134440334996922952975530018131832615122145500147084053033141010961041877745279980564170322674461413741302719080968578853728338915194954377234514118890469388904793046423434210411231280781580589478436583904644453462360561549608947141842657221602948369314813845758787657126818293087557301270485179008211555036617904192109966165678078265313665936862051808331401342291719651385239578615041118977310119554686033521909784297214202149537685286990780353878200944020773403800603138585734977922207112715256972223725476724041532076299339426360569137387455732429524900469764618956224643704346966805780346109849258421864027116320512731443478975198281001324670788962113023160245115936537774645913098821954017478501053725263321631559477496446927506511764242653189432532869979659405866793340249428166796535749839274358816691958371710701848399039869098938455503591677313405324955678769468424850712690414096534160402466721170601141431937477626980985962982472570675975134560880483179832652805242790520987967196423497306669648265092465920849402828084588282257399997083679881597734033658977703823597457470088263594317018574138517278421286029486801325863372398226823450414235963617895926152021264695767005611855942914622110917615761773312625310962718192631243388977920270450764683205412623759697933874219321819118184956568285120606852173967976956873851888244332469440792535242668754377731669162586143468198523451378697310192264989762584709175152305470063396093606859486319676169133528625385401930426216859488028744770548839578131303603911063041794787823327002714709372463569061278671863447893055359331353319204856380252779363995094695356388780722300302830155870166012759608102592955657167028880596097401482566417151625890916249534599898486768771442566934032416303430472003960609601800749227490551912921639024752530734135236154377694172650461319287116242943383452916868855832626224661749035574366372913002138364647670778141284242702828761960875234130369884026618347476995228192552559236466620126337053129709465307452641142032696013234925854823735887293144083137191855766033814890790352038291005920437562293069329487704323674554242621974136174152912768495296104411677322552926717604807142419505464417431036056996733347993874396900552096326669996351963122324859465489215413681386477869762383427541996788908102956568705252106829653147113589769666365548829289220799082590372950245016836779830483073316240468375741751529145678842222848010710008134842680645202599462055543299558564404206973471308481981231739600886768898701340257803279699957716561673392609270728914326776480229368630416175960358048343527541093586525231132012118523285335382941702690208403594996626082904922473753709614047325021324015775950728980154227736004536773896007661255134473130386943822038320330174613906605656968643606248408152975996122319819214881098739957652433062441041561107212598672597191107769987599239409109762871765340130132055003421629186530739716956632056860154243861124240680393944348191675489291441198022376579153128600203137558135246177941419221328697603777821816211992915629619993792744397504665524810068981971803957066179487829817521790756383755688875070194563153379911689836486957366581674502873948230756447594576402351960018802740971923244560830470862212853530155987085181267171545237410595400997673082888318544611409917888657273639107751167269998472706670571636177690620270082744180891711749789511765813906111467063639175091234787656174932143491091283151188736847221436083621094316159421012328120066315618171782300596654055841914777095086919788154206127826365715280166114581118512663967918673570483623097281515923072328155984503184739223357705002235069265684570727093497280250338341146451531434241186095932284341531716393252304627440155042717439995631623977397113190796549798117501252235056457295134344536825420081979437793991435358322752645951826436792815533075308806572919881252696794073827936247555299960052200628362064291343253371489678217522694827173190601659983925533877135793574314449817176661550921341831902307297489717592187812355150451675180923462349539389413918099576412005846677823264053263607799229385269561885591724657825943563550109337845803432253631637620279291806252335857130888374332820243618097762648472831566437007122859699567183062680494266459177217952783881142422995938991161284945665557803839695220485689502224958304141108582172199073781045952872719046582438119653068231192853720136968056431608767524432309015695531674182815202019977287119034325650090024922967443716086300074607115833711181028975482614785707806072840247583827416191191402253938047322363976944900773020890472844537270906021814231743291905115953516152089030212408063372008467426250966904862410615106928428016546187179010781974855067835165400790301500332688920900554647204917731010826267522772025212339474258183407001576541599759925531123057906060200368613057491547854734179702477265742368502226646185150813790289525690374445403718984429044055417727929072411252261582881171132789450440621074048168258830346616445122445823351533305121181119484901961688731397510179075600704983268481235653445269154571471694770244761152862672134493361676059290254977012401252154646222313747140151536837073325296533257647103788571232835089873684201994061914105730824505375989255566579650074773432815779907549641268217102924115298068967698280720243158214375135260470797853092766853780388309071266842412199847994954529871816885152615064206396440303811345568979523060610122223584151530283592171627103452357254125936568731435029796465119901310647969415487494598490045861447060572166121203683192596046065381066427359121385666903925420990053883761456626909420317016795549494303883387371235416083558794263349491137495074659641295513967800264873131869950969109266222414405681527057565836988422131475073025902590349323356548830751019694951575426413776463516224694869295469566757448165045178030921258568903183442562666757796654257673070597265472834373970136625154343605037742590787280862310330868984733947704995807655970535815636295734043976668828127581303758343263609924457933022285388419203127511127793785027332897783151059132402789940232685662959904268505289942386769610076737388294286122152190336884551615511442939919979388424130959369207172489253700544205466193591105494256660713042126630903351685205385215577068913327422047020220313649055805470644306496605960599148952686239235800180648049965148645939387640090077116406036282060146129386707051708548103940489906111801157271696884963598018736121466119294641420437473418302177494244389094730668197574815500042115224619047232699655858441783446792409078434970805834318608344455153512064298916527482145861582874896855420992296326019234077875099295265882559733420675706947199535513422670019230971177722124375390190178258573067214364866446962622709722916617091059326139610757475497974562919489852465673093469370862780037394142280427193908118937085426786809905420913047972623930152641868053315936246540494840620908205440195032076543250756786207208327038357083423436543038916571818299734780959752166632464397524863724119004368521550662516334669355637011694128711301407098135880065913704906788846428290408692695367948931601379014802453639315422599071988797623367408363114367399703271091176315985196800138269516212246086674753998666944152465744798661761155252319887099953110868797860032482528777972451586151592120159570524040158786984016209315200882019669764635635531942516038205742817114320108685084792665633372113507990030553878214145301793317523511079739422747943717628338385632711299550971741198971569712838918315748762329007256522504281104563857696706350948232828075906087827424838054120579485447464417624912273289935261772612089021960615624302333491459536895860109959725545063418749192155572869575160300533607093645207833027481149798583741804986147331201481777613171121291083837095374183428198891239169787822388132718396790425993789125934257601354799028677835817792538663143184180190380395293119335598935919618901354497138879468202979001177168079182303845663289950221551936904904039778200602973966144284417541469420789811955217447966346337872610370124872516912980622958657997215130860122452334964796199504986583163184689556189538821721554323534551594780257739785085311071254883392076702605618305867355756281130661196379097852663515191061866152362695649369513977482186685405783686002911235449826143668479358348134668781999404262930036833406727571840201711479335455775413566430753699661225786783147003304111688716301043962077254662914477929037160115205404701512875161411228312874028095003201135329087701240395451736164995343790113534935760596930936773310351795705035435218899765435953720443724052509308377076953528097947681340132986012815280772517732906174988132258281015454415777566568570190983898897870032303729591172728283498021046879578388084953470889145062711122130659455658347792153695778488974660589235530947376880626931864173185416751238165444588518287205847303369560695001920855707158850996060598120900728079707680894463855853131528048288199588870171894670469724576666562841155674408661806863811316431633732877322525494589087294529000848691751648629904214947607489693331052280161443800456663352707946081130963531976952502475302934563577872040182230681325526452346620998755091751249142193762975148774067194185526494509826237140381894728795569563250392175788995846071149267540398864557231949324106138274840776115825481421267869991635705099631488355442639333811785047023273227448269076068377424389381143048892307017627109110932381235284429157532682581444990068853290038991154772766986984438911014302812347887686009235028358343293488523082732320360936271399597352339725645516676450975925242667155705940037216844064758306557813427400395364081844818868701561485336783928857513026113156818835936402924975104953671457784523291057619728361296723374439375742285979556091162007697137417860443086964525271990701167300472549959107303805245412108181182715825629471410986886333978294626875643119671268636807070953849714826028570836701843304341675170149488341524101466947522024169858271265293118821718714270301335937677065723072559776952163562139783599927779283984824786479531517195568973030100203801921048561243770140747336243621023996841816405757420825888880647760923890617128943992220977762141017583328857461146626497593304859500691492822346661198074907759624016810706353537264483536798567800925125020073887099209085977055618843421899413542862260557136666873707801614024067237334907102205688076813409472564963135046850733864652969745487573553883655714361662512481438453537109427802119093767329319858211246487219360589210046584033743036720250572264718096807011889353810503483552359048276216792169232766585156523259515303868533221592968889804975622291301079274412193454039100177345030662421168005556864979885829985185638258903028684478539048228743006599964849320430519313020098138632696847156052884395717790230608394911490945345101742139287821337581093860664125322774990150371509564539381525213593779308304081743857913454917659749749021195256731102009894880042098265050850234033375757520016504825225239384300098714575564442414082359007107960485995090054453513077100309693450834512372259422945479326960339455397039031548388579549826502363349787544462729939903142643424397490348597543057067011246982323654335710245936421124582157905858893602550025096922865501846119640598191168732174697476927854743147394657357223410519368142973289556474897125230068673497008939609567871000990174648759375926755465896695431577742003687703300701901309197114880381690887980287003513168280666531072225487878443008694695304541698178007826805937171211214494677916988522163672859172387498888278720510177693207567080827318325009764390285221826102409452564009116346888270942458755993401326375844253098845464842380677874997156428492874107544382804303296920549839783471986045705143470667263859408987066853911219357213972214205479425697723829432238867709495462097047256746813491835081662384930807036251541604862590698195862666210705403513728668878180038729171357620229948755531397232410153415598105919559328789839786044010058066470890449765112489899528405391244194868234639726134120167145108508973507566398884283451256798907420684491528948324262621976416829186220747362429064763900927305929487310940488141418859983096829352048983616032986373298883156004122362404255258122960531611124567366393833435270925850785119295331780377371021555473715216735396999192800375662338734321340731423778684780099141174280590988287896710056618534222692430848757091432745923541178948049576878150282767662877201708370610965842339221552632891385561853946176052566993650126127976353228903314376523647569553947010016359540297904260193393126503558791515337243679566401689484002400643404382796022864375221857423073797949417698973644806554646634371232085319244826124294404135754316109690079142946640429154123573300219950638324484808403681542585350232284114404617928770755972946052289875072047326433695223312353431823826254306258884915875367866375935021058309684652462497036707876322924338485551983399358910553380026774116759595296880802843054635040666268031736896784509208179795247455924656697205780181325975561099263585571114150350169271765238292885834731101655307112041697471256011471954942215712714913460234309536693547586649483326081346997973297678099107849816502583328127801093994463528837228241742132289358719724539776303007343518253122278140901504662264273220667890872350417299189058685529737293919812933445742049042908392333040494387813021638772905229947981518898268888972272301941149126639111995469868564512102522791389389365916256752984575644213251782859394522033030514062565969998067064314951192211296000531330106090583464979293324339041151218550680279519913712468087218855281970064396178191930273407149824174120456471912269731560540899817806347658640843307832919733241335437771580212973868254014662950004649463302335201439388007338621596374847024260396606736400227266317656208492171885074375577178321254480390205593932302923653010170324933945035165594194913957226327168001580868130011121795739059187254442391626378448269523049135794281305955037378310902173866750652943845223454020886887827999352874442025633954577569609882594877282027227161737518594028512941773847672187909587081053933941924617601075190154412731272287295109956789689244503983227299194347153473859298686484910449568511706282569921218790209595851948291287502640072754508241221731663925311541349077196796873928007463788992747082736112300464095461485711211376220214403869139775912976253385707971562690658995181618080881386739633198745093681019865345933278059863557040336061810259300483441988389123612868707547047234796798880135531649585902972031734502989479594634595411539012104286534125224897018310997613331612607943226844639287051424718775194016586279034783571896104160218195276292223802726295434055363408195723750512943388665958984073832433427735811872241963441825462928150556636666249988201501126437805845547795362813850378602968464134988027098772790715690924526771319313566895939631156137621046298327934003976648685943741567307191032025806973691934979720660500899170147644655016833707096815663285570118793242652835220328715879418851114276726643494445598634296233948398901282909421483129401700700679854611488398784300221123698993552557645828035979277047385365111177812882301057558756231406323253681185837822942863430157900743027493606115020220719769141675839546712266166879478495993659057379024593713252224767235703765961998185158608231083611702190421086524394803144020944682204732835607712849164594842576966441271091203835733673350921045970512395877792635852688090114517567523545279106121569089860028340315425572027811075480164470152856622101032315794642190424930971962179664331340316979275658003921384598077399097151739093013507231069310634664809528788193665772657319982748103019281669483345038551854102325785638359228567034107257726603063785582478520946006173489996318900306671648104959621956959304494324178483219498640915834806264665542253270898618315352292691554671412710717431271255779172964179903075363466385858688432571047496790346888093816495342735260125074959709419545358571589394259190367589000845796195204178889636451863883862584830946933433377016631708087992653664387442180742330323286070809591348058785410061209067305336203126627922444462402658756740115259658540175217656469309415887989614587578796093276519675507722776654422616492467184421771326222856353420605742194705835735928544158206219626831150089831923513353911727411213234592723499245987694468810909277620064398349280864387026778438574714014082260139786308584867856309889361413490407527804548404591972812671989994346584055836858799816956436534350402145609550206717423097993373094190383618889073308718312794278222937163917934308660694433867616133752551864397993336702557307706949860474373106089620291499347646038775127978243665720622563837247292040752181375942191511410303468178970019670041135452009397620676470570083516320787430700631001079544187875110081092036620105326720212352620704977427319964544695008026204483864138909589378367209050609804548419760522332336486963526584326767803194960309315437100657880405494221198945875535652698004044223297075681012348651727642532054831518999997167044619601345691905660916965952725803663043114822440895837874345464210312825993720593766013333036953389670953494710782311996439075046110419740600278027627323353140111646654034517346047494274073037495596110798359498903434288194618750837843463259740843055378685791196572713800696788982555609271154809947073464501472678319073130708092338976951919100991126978213813447423170225193872603418504852954072590519222678220076564630754026194967608813757196368487151263864792261762850956838052625499041874260407888455320064741592232113723155974965839833049510856759746961308920916276985714269525392704608582419237721903840847118633484741120396393589446066501162942464898238155599304027509963130564244793550194474366280477212573176331089672827269246942801028084635215938630365755243724514130191180219570232857351297398692407369726989871770403629224504275730721441275230308758163512785235265905663401215771328855378111295299352486708824054104276492739977825947629952467266281990137274823877146771827890334782772453710925146888834548518546420949017565703150073053598996821533862526128179460541190197405615949506747109738918419765035715278816028056980436582444966835900910927779870452310073328836609007287815070471709521377545674452269432072375836771141578379602986945388318430868489933469994190755977272157842254889277789373247399494815107796967504933153877236068656550301723165880372336817875774822288935666041863674127394719353934403815085288496961848265984835305143680570135247890666133420304937763707531130599624431310054111136261839193669881043604434971832680245796829482154407546777034336963793237465011740400198236780091948700134576116841839960397348362067398342970342231444266715359946730795683589019213422525269561006517042196732116689726048518385446245506356309236375603324429454149604032347200427355355066770180560238120232516906470377537676972064024617317868147540235502787675360397019517686319132953326687480408635578566913796635472235019528555938979633954210512564239623068786589369703028260867185716506282691762531952907356460337922263917846123336015914302144095017593675366316937437463808310938513730357548426010720910537992656466188483035072780284869393451629565988019607893849190594706726489867508494372373999694098121511031815176853218693059275951424102315399717093350568005885347226180834742541283006859206722477906112975947084150788509057204580368142434797260048735614824687168995517286996330799031797284884779706742570774408856152610303262801031760995520306925789353684125884255164989946768244454586254982716484269178816304516452247598482479360176861085788023000860737388511810869437356776935976828541336741288540533668012818661527658743785302698730092222748622884875715897059192718754701265078439563819686525483505390807770578916426863393354009264433072552006695191534112384903415204717416582438994792856896802751686148729999730947763163251168008127410236326726960788373007533820818215453094849394128936134473903841971598843680426953935998058443179640769187529860016966890803416110611631535917691518642842293696041010902403120348101749215222540720708407361026537991101549271208175390448184250141899014797676665063016154513935129635018652460419930111571920061971964948919042297783997309275787914879820643370510980994479525523031526650505765518382815549117057046412268236880256575121270808413943001926157717675104855903834085552972726581318541550656676195633383191083166889819169270587640842923597614387418556590744894972714167957684631141865405205341676910496620726722151361512540201235868772925176967026937876979027045203457664988812270753786769200948812900654670085918327239286227400437241120069286675163650515564891753000360501062773463719654927251135137558760756101337363665822903038010333613385544149925909659820177538773242214219920348310092909763895041053603037345206234932210154104069384477964377525799358195176907561090534482287571097764935314891109749872501341735924694166052156984992149595877282364235917383253526246442237826169644291133010790357844955014346353135190455478853980827000441251216910290082434066076419516098666799597765264089483452029317656947117656443034833104666195956336517105630448427739764889586253548306515368009698301589172565090962649645327431772533958037944148751526104960748420652004533309214381714715400072763768431167070082814189576280075274786958344464635935329917466789989216912725998954787143897533014798914725491843113886080149679397964731084813138553181460278083003096929306015972762458491351956797712838253618960728842272166253518610945796711823832728781741502397963413484671451465462039346393826270093270166937198028038655710008344857741584573555436194957677239113409031881124500099547771765542362865807899492708030679412422204788720685991687440402596103719457552900845580563373528203948300399570543070862542309471792107041066618987541515137421039059951269395210385940644004086629394074999867333577956845656363674691661298020770847368096512159035438446785526453079810580300289049729220446832923913888700025025388042408032297910397082643906666760439913199432202090151582643542333586784068473491387546394873369268199207432917652376352460482190448936645941804119964118570122039984394081901859808003212029463121711218351472495261185192842555789927984548720727399547343016549032115040258746634509596887374744987471553144888795240064546900025780792980568345177645977125115062547010113796132920639521381809334168390583712845148772326453376247911592084204967353632557989141793686657334299782713001967591258561554686526016303176974018518201843548217944304623537250582836353005527016594198232566357971164051781243334837999100138485616723828472201095444697047693677383204039333248501986260603422863641558524765805941346949962938800795320181910371042744259949314921351403747089765019765611011713057773468318187746471695200412572505707442386027188737917702308345398847641864126878292343474082606799342390246051053735481632315875644589592998521950700717476346213773989853155931375453279994086021167937438010057413626158333033415063810864692882197694598744675424306792073979906186230961442875591080042973186596320819533551121522929957046601512195241131993360083075368856764254575437290668563014318429873517657303450342303534097311940929866634466734810878372719553014040143527922823819996439934737058815983362042492579045436925949216339107784787740343666550312315121350452007677779446384194005695644858559516454881486754264062867223409638175072454728652363075626944154784332998741708905364339569565203728336685239012915217826705862685875148514678992128310932671868880232685242079425913338142250503118498401149808608989685141494851926993120195216147436223499750398118667258545995404413023319564885643761954334617833382260342763999404918256422250996470331953760392418225464900541881783084484656039144042864644287152816322345005856146053573793778308061535432574472364700392926076122780741593227801188087204318948612542958849521529027495537111788776203545030161691580774256771686013159790071879402151808719253123245719274175480950685526974374091880487630260556216136514678539617262789184728047878938511678503453428460257691191017758625530375755813290633240735778541077958140487127426912144829262511034867022087327285085673873165293657628339029760284650508558265628564435290518750394509188465333723007036831945513198108903355166043943571273234547687697313930918883014950124376960758654800153661112733800660935030500162670001186646281762930499872733659301649356757980858545720375727219514516253799258655408544513349180168997704278218459205145021811650087624214461676589878917488033161861758191610857965143783423948947205756341410506325272614406430127289887397295128185366030066292362424732820926911863831176073991507715978872712380554860480348917884949416311344463617861623520170053165128254537857168988589438929402575190286776215901178858955773619893180555031406776439313068290109261819915417233248012764257465750081508655020127556202550762294849087626471451142993392855112565466093212919765081196931490995479366717468589380852818599629607599371066786812519963391208744473183437258595766282937823713845750978173860923654236096556623632423076132038483146058406385611955766257949461720833246575178802544361278019123646515212608697822712461229084304689154161118261971960943073516465842047028400133897497716563469113913709211173218147319074655740297098655864844091419338576946074324781794503331523122042447399842250661147099577741174108254381802444588628125983522335163695878937912684698834217323598261758938537086404932039137238682516536373647130421953797916452494474094861836297826603607311629604570866248246726881488226931010028469032291062665313666438010463135529794416531654416730534519552960879948095791904322278507664585483873284685321698327548538420457512503465218721318945248336982652548774663302568335409011069082429558618554000909049975847417378788109722812168199083075618017344841374700681503452831637408284613957837698050538700165680457411143759190109603288953679109917284213287151710833031377609780224147280057484456048278249799548260030576241913007872188930344497720533208211561110149154852480074606106096929017196361968473355198195560873261719449801994809871985025791826718084073597746878412410434305666552877439003174338482291285389908303820830060982484647200242564223939490228610949956951672074153049651030746095487361223268218641118945574089915231777504049308036220570361309415483336416139916812002086571477463248583384845828188947209632657854665551588640581189315159731694953599277368333489780075464502854493383862436251228072065030225675228319595641039553987056157213912357423094786527298910763622380644638756826196612618525884811688315987645381941884330204939910278199660293854446462747479303275513498387293370728585747699930051208035616878555443764044576036706124471243130116478262338612516451424639828269929234137897436445470882732663190152759012148499902778690366090909876077088338609813395323829704501202162523850801356094929922675137172695457387252359210365742531560097080997701313995099986924479717944387333543234895225739349380695105186507184643443730921323244939379300454223446476396995167112703362078137509443451098451079000429297278156070536245197816941700582071776896603433270596965655862982052964365504253351703267609131274236429298262507674347078614645330777330425324159511601223567236770816943640559372424604710492865391838849777856935832224472428293334958832802100674596192688253122117658450773627137115433600507528641430112264612281626619761234631068132848470898327816263817353371249756869558513526055367510121032060656613821249625570013727709975790222170264814492838426228984237143416677770266836168846237029608485113258808833105106490344061521292427317016021083582338203963589769980491908442149074020824711905713293378018472937804940778029788100184280438720088875964412864803100625356351896650010015011891029939369713477801013523120654802488863390323712613301816424882673662122852050954891985762903815302887072729722968370228667090355069463184292431909928882815475386591635243766754701905968157048728867661170306923024311196289121304990375051385376769884888231282067665034666741526937158015332575252597905147103970256169625003000281782733217292344590410166268326631279483122955705181599417985346803356930124562403539728429396183192262010022822314625994284058863173763490346621919536689845975419557662293490946969266601900654767621625903608379539883621609502970781160934486723228621877076860021221717706467489387247629850564682855600261747418329748010967314949523903620815011150523873675052438457582119604086098167300402781706925379128567059682421595996224654874110375709428125749739939135219771360288506141625720222035103757350190334018673128453326758167684005674305274017620681410185859839478188310481288630000718071665927364140911379278881296012255300842586292357734155526730769245729694847011011884841950773597142598006371834214248699084762006541346695592809721428384845415857516024272077122458900371387234215863570680860694135536277993859171542458156474493597040280860402489931247610768139096111521778408238436460803820260203169717868259487577631528134637581135267340153807794165625606715806186209335845055198555785539361570752592297182187548886925098482551803301053971658426747998355237087202173012633846831773770802691651560459512349198070488101510097444612088971004078228181139175381947907800975613382355534288842524113349274553262641798390078660427810078853476527748257614399548490231101969556781444436577876847077903498836183839810574029479197099531338812732433903691005774472666306308437034758987721377478779778089356037757455161691037048396997827984366727158374741573264237248916918609693469911843039225570775240287914806538480744535121196361871773904432144809896463859647982296154257752857102040503876676673561660277406205088565335518855045759237400309064047780506109725948048636401628726006976681324690777461016632930509670062939934090845834784767230652838755195840929117326096600296998748390947367312995303256137832614772220478875545508785185515317586111300604657688195308735258305622249373509831898601026499443889266103277245167325846289291006664006418235391036484802240969134142582991800715914171725332740764576245633139015426291565926669987988819507139263451482419214974896841344460894766152319436909697494607509727597852724469705877794600170155387516022083625358788679152617208271472624022653058584526547769819424484361812608605407817193739985165823330228878090193767157962576429818957057416227334909251746482682294553496290073910079200180167458583198092393459678747399801589195225523604395850439525007831903820395159146253842803078913175198179150357567698218210529740539203547409360398896346229954098662521037789819629858263640921341570317854943785177038482439274868590638907389928447458695573501691981607069832406840565888535720974628203822163240608292727086046110872463862793453472029077208917618060678202795748999052582376786595093940973319801448341552428399860079649786627886558180705560106507524625197354782313196251457793673144540287727241199142801999825205453732519637665915075464620571739222210699985195684575474927258919793038569142719970210876801890192646618345691048547861886529092073055424946882964262368817684170472071024147475757639981000920506759337527874258106251926038743789816974254988516723876651291066201700284078197670870899805960170018948900201644620504387446617856650883273183803106455284305060931167082622217543408832004227477898452962138172205653510316818766302289014191213193968220574977112191637988961841902578598323771213459256678366319851692092200476984065124150274398377482194689637211349483221757339256085320766677726717881509193853514883357384924621344949994354166872411931532512662837206272407341286303363505649023811931640207798109990710966499955887495011981278150507531920708172838838295189808818971734260736957612836214963726309662475996918565590708522072635520615695292996296386843230811321094685748699401776282648760997196402413750476034937940913545231390408132289840163324273061201608210577495737886363856300203707142812860697596434475806116591457321530299117385411853431320389888257876421989237851553681150920245363414601964579432177300564580397069372327138653954335579801912648058632522704232156126198490486058900095316644105964911749896944312389945307157701540807542879621827651684249089734240794188462881097056080899873154341726529441200422890079098007705563905593810921176443580814056854581541295679702718660135796025059280723598738889001070265969225362002286646413043679669531780269324088727580843240538681429870712816368535612632210601709190009024397346537338269847544739241360930311604656699649639798069954837865311251625372337064626789602632065017888110014621526553459424630671475648099836311170966089894213561594201211368973937254712961418485179974529033140900294755488289116707720946115595513296187948222642316402927500405118976854764387900636610813280936526312674134063268912130702720790655962269013253136372020415889824069001193515125354950191981200807024912538397908631841530533839060555178530270280330438165962757320421642301417105858186673186052585645421560042431911235038345896075449887690671196921315274933997812735680895084289127996749896180558862113244200720765756840019218554025665133676538687205054946949836777613425348596050033885131534905401183709866199428321021905631204608840780321933346701617092812468874300872666542265222082424022228315761141844336423142090675324780331752786487922582165057237923750578847823493601676405915926308992952513457700904410234780214881469817132443100341471152497712222611318165815858557000415965936569513236991302794312743148560885963968802097584415140591067139748748842916489797951471517519571564907776828774507099598373153721879884734790416709813267337968120567986105128832953523694283547788869090400051415582749351897777395474110100621468827764506130620863663762062702646643663737211640111526458331654696315574301418507320336305006518513070512652313274333104728336095921395232901226075377822691783180847513224386931853505967938672822119110506029376185204171528200711786945695276055449355797476870604731188868067680094084059572776023021251700410402855944822261845017968092363880705680303918843137828241733046231675043685655752807723587373977573743691782507086333683344141124837653390557874768719633370808276340848188359326364068276389843877394221064786152829734773428804244941994852072748963815318620749087292272978332299167016507849844139601020652214354476262832548398476043902126454379760282198839903386905759781098729113790120342122106201885167768217463478289662417857462453334035185967521576017002547824997509154686091279093171688042364208497264711059075341911131016616245017624805799416359878518452516666300215642720228660714279547281252149642802653237177378966730142385310663333603042463193768124468400623056762350549565983193478964943221566953812192297137654479412303457485968946924002740792098299040657721651600337747149406381149656796670680836279271382287933331231154784156342656871162039411429319545933436016703029627622217063049623319965489340069110489996334659693075652913883812192545652949703142413780353635448012978599646492025374478394341589465375707514992338616821653211595534209476519798819896076073239285438854597104456305041918970229787993285802558222935958299785710658779668360237538739773818059400233198534238769769905003522228293207783700201534511424296469132273100233024496050125244194234137012509529172661658892955139544889559083491570418762993057048869676720597219339718718045823776974278081702168607727282502494612470820866743820155378431488523466034495768704650725009922205817300442759381593394729934651477681478322263148157549418796428603881034722429128336423755506734732330178452177123058644726622047332271019675435619718380420280616280569590100765357770518701768090586797649148193622441647106740208271604344748420566888582781126118164291072104804574189407358826632688939672690450218531720690977606465999105358429956096662092224057928651225154624282482668121307240508193357297076642965027216573621835094193420967874183570366887351039016358035166611757489384226964727004651575874722100068281571683800668076525659438018610239553328022906068162511128986181741124048377502428742489955267574338866704012740008230609855910344859498377935172911923178959778091825226866599718379516570475847062026059164773101703667088135503806944570888323539819815570124235658514572938125896670711578606778412107699117844492373421646082347028286753694567044477496149306852125855393522681250084297736101668111195862593349797736737132756012996591142027261014676041565727291772128859156467239698661447986347449557659303996659952422194910906733526444234709078807501270832362557808725095275524393955444670283567862773306535681343228334995316118971166283225158313040727716308342877544207817689325747916118039418820931565946870617700917907087303233837675899559201000540327452897847187644023323203508767629384342937334035267863242832578107594718401585061503502746372472164130510323161668939757416081196340811326787610831872576900873200995514661116319891463923425942686250478379478725005260900204940163757694428936687149613815989792434859139833891468973711260748890265228652663648136702225943513098744701497547343418677252151760658429389968906545029048873894400108416006296987492912895483935373843873139746980514139267719759380650885632362693490883324773140565102497257941631887189990796488114879125280354998494358226826156760719622848939988588986390403503914430686844158144412746064296431709079293246438174240903230360795923720098998873727842967507134974315374898762437539888969296807127461464440198882207431470999815644239824849081545133428483245861536343023331969792823845768345160824062796277983581752911927846721586770926471581136555104101617323767942838241804267192323824160339016049620278435147297654054107049946782347999088755046211747900573221061050482507644901620821963265809849182490693728816997985932308315040092977162642922117094582682066289515384529559618414914527014382891045424110046339238422019065505306962087653259675565196070614481044839645982097421128296043491050733709928948095883815622057550776076544335699501310906130328743941685201967002460693383498141273835692523790316569792795817526248834429223310739250377763892262265015941784603335052033597092527242299812270155475551833362994861073318565176719221167577162161298493861746197220598051041569570312136589404001905256966158431632446462221941064786335060942715166666324100695955096812718195230673068245720713588595030173824376634557589620768733058019288613733867011648811766399332665963098707632548997640478149168192240531030352143144872569020865090744366953874295612661527638247978006949318720289974280545811744416322227403258673260497887419160149945911509894309673636940615077410387431678045961082443956278370398659530517495149405849537542616465847966282505369063148377009165457365608803651420662848604972428995883048458477452033756085517230172289781907042980557687711263666643380399764210147837180594772746270400227891330783108978857677949264390588905479636526115389035442641579979807455225418036524604863404444531061237845199784306398448109164906726075867674161062138470655993458952046954882037450546502135192610783378494567244404321408006495661757199301189679701051533699501996788144471535232528343521792175568870450758004549110863167738239748374025385540451162197470524473762211673793094585043758142528921668576089235068071940521995473790725089975171800048487207144754079833655668970737119449793991068491361069592820887534246429611538989920363662386608042056970481411459278788118069103835943652260430693219006660422908905349790280192852249363700977463857932831394008912425645319960936735096172360332625580909516798153277817570990625598475429748356707402760525319494840068961377280301028394419900887533660772426175794441067753120447323588450431094718244706153851868032390339383648442492467123246962642076852641714133975786721846652095757210546954143542713219993174472312642596240803990112916620684027461637236912131635724830271866338078274070186660538198559096668714266693909020297425484880921849309119152164480349000109296350803031479300795706749067173493086019667769994676383439527669067924464497721337293521406059862527643055491621144979304217395067511348061633676519099242488559879560743273365968771444033048515744629297893998799219536622528209526263782086807569048710151192591366064496562342597046867519339544175729202773933893770842756291649702627033827165897947319324033085989594711527107248700165862768401869076386564640594252650569358432912529710865119491196896541291489363967863832634813042234039972216954719477471468800259395342219716402101199689807539301415293332901279963234330402412852008989759114623985936489701225574590195571391284430444471196972976063490478422949728363612817508923038185309987039508734232502894875635797965915626455897850167914713308058349942472692649906658120562625789669262619094421104564342835072650560342219306515443206735228935265583119265372725699187367560813580855002886895259619859824906445831236385710648516931674501752354092493994368493699445840558331797067553033711835673455877162918109737233657486079901179023759559017748938445000676307561592574980930517589870199702028053375512515994936036321857693402362802508156405429780799352348086697164313882661847095600308595119646941799836039143522283389805997465539867876325222402905719136864230707999734380240901982714640735021654689709071005019325975858093671565015436698966871943027582577834982713671785323084430772892575003584368216051856904147633660160234790406554156340209697835184010523102577641595292170063719315665164515342326159544988670859741860008052087955179194223548176377071072172970365826283247422007062463344557425949018910337441494111632524083814051965661042756374260805033065667556084743668059883387599049437476094564259727485774234838695846013086806789563837829996254354052854561822053309803044368958378288131791526631052633818970976697635095153816863181470773645514156130703691761205915899547728589685707377927032778821988734304062250994361616711180989120091447526870226097368937937517113764949502211646470152620343283046989360619584520628590286755794893910854470028935462648786398061998809325711036785790914106608699250738412684739776266532451425803070133316425040836127101637074526344560721852391603019277835314246950265919597684988316230718050491896091703509943703943468203101210144897512663637143917985210143121695746057842631399263592452784900056102079314778134468239741416263471835102871549982090529687694112093183514711684477249818798568217901395665103355513096422289463514089882612611453933136421705636002588535733922121709273158986062281997093487724228798237718075032191008818466088421107539536766678522575032878251383152744590921887210989665570045819172367810524441095730812247041417358185707709232131255114411417904458433627791415217008120484931679939267987532752028714889012232687877233482299010700386238895967804651928485342555816174951832170886055815467601410023841825424283626360761842915669080288902032916815411681421127664859705889761761339728929187881441730323099315677938133761709378385742432740301508290259402729042717027440679437641640548092669339052043754272730229690246601604068755733186753735731902159200761266190142535391001387797173099291847314619016221336295873256783891166962728412432243901043666441932051426912031395954689763219742724469347099007172695885235994462849569349224293458377954721593826031085304822237521836005110199903824403077703611673121081834591971610137315323062050582939639023693790870836657990276137203605127215353986730520650660711566484259227475514316545322409666963858964817834209766915745633338671669784352047272754531559465766580307379450177741770632172375161284265652393647268998612591153891653873469273930244323216668515692339451805314913771706599446194484769923333728592663678286083794379994487760478661934875595026961696544343427733580635079928549924867199877037116456888817300339900977243427316820224735730739592229258465834798911525435474356192214641249238467337092673861678712642220186819333016676599917635026640891148506754701003690347631205187854761864486552935315633719790630465614693137405967496878353816692593465177307571392985528985611453926180355637633972930456117739373637596010939695283796650074769515757501286738823969334535315215405422095637244147672839035975469701511759550293221191004260058273598786319992284285298750512741421123352385559619100907547261314590308807116240549648649219859563173845765602337698375627955422776524635014106717028948347930640831170543405056351289947861696371423639679591172109912969417313616304330220633935620483248493566536291841663007633176549654494332097426024388641244063168561725893141285820945545450138747408945208854215769845475836156070068437489594882741357997307465774943640866332141680746368499875197168546744221656189044826304571903824095908912476665414591729549942739972612612415878125324908994463682125998297897853555287314784570147982912500946659102843540458292001297948825922097262749893986244527009115964268326027200568866404442783695138373536824841849242956847663252897988738601257458920355082664737499207205894236266356860650878721326855426218641210461860849029638361006541583730728913079690692894102813080097979874543481612941854037953579445196628780652011055317568727134272631891341140323012380231650000612369622959990012864399983557533347027680979513916808857182350766522081254415151075005980133159017677082130866512446679450539911808854982320134734369062337292850393038228336845248633656661685728035061963107520246746205558433500890440017081690756013204512525225704626480047925575604077984675660485698252314479679479166371978798806307603229614734635552100801719972074165865052376150626538831626374243847950512967613108777537329414689945727042238500837474833564111075414790907486692316590513146223136036155132547239576255768807488731749994201306510131056556002583732624706522940982494094820872513690309421781542498049424560076223460120376220040997943156559231513192180370479904129011505260617081574185556387561833967451759282831831335922146878694377199606767398198862279010188107735443025385010953588023746816057999184715464596973181722603820880548674690079502797132635404519739248145979718816223425522751256044184073481880851577363615929555630883345686872845368531452804168886739710458405206717084029755351044518643164578065870695495828844705783374315460059935558570176517240123623996124010076915947378842046840316356246580521419527839408015917845193936726290822819500528457527891670464704764398981465975129308605424482368473447604059815008322386111170115562050648518966058345483954344772238668144282892336793231224347685159901852618210199120850557827478986117493949590680809651471272515204422990353380712670062423899257547319809012773892341711912742060730265535872439122599357095548847653965807493808985700575569907363365256233520753611146525340498027650936797079418981696857355159539718831108023974321796764407209407034008547979728798740669570124821078492068917240087536906928356419588462477861915125320809531563573484628743671351839069085706543668131156677084932718873532890180934758432888276177476634997277955864355913230867664728243422616442173445845906506397952812306702475804174081239813328627770624679085803911408471803699575550047460568972154963061393502983166324623910309215315895460580237141152935973585535208943722444065215150251002616906354959289322256689414152775274299086252346946303533207424351700582382297228672589874619961758323436375120513554624331612968012371309574630748418719136783295925429335376711087074528373625081403544211625629657077229557836412034211824822258196149569333028005712444516228090670984445556311639199438222696617693519014541045381220771729580073634168882456546400496651531143850111673230329639057572331004591733662075222923067734335217272381819961646104635986435349091298975260397919941487053064784867490453876914013290168081976222065369933187741857021783339624000936502805501386930833727581962953774408192590447240158870216955358389937659336957882569712950391378828498456859597459121892396484817045208771433095570530553928058503481755488306528036865758059436903005678204028873133382463408409416561980071274209936173110897220065078106740019022386738037269953869577429969916771692450649932284761720279544607691045761371213474393774432933010351850342307328900476806812038263057236720338808396203666937231655385298841227724960402594844555846953473891812574376639519792334029440711793651440478074367857090321133815701281777380648786460659923876585159105412371588516471580576861480824064583484935170102436090512599258271529872837107891041440020634826729413448792179690459552319539126872776430023162635623618096127680022434019614767271663278993999339125913328494877656082891865275576075709061779237381925708913721549574549872429170188860174228155040761394862761938267085833992508295454695275207295073576230231294312084763319262596107858623121705884872325782753990047613991550919146335847829225706911214656544426926982806875625155418653629784823146346985610833425839698184875687805760227052758684883777431930281650777633952862793915562809241803316215223050094266445843228121191519217902858972514546161520385701302781011554867736204356739803173540095793735427019749392666066955685236615375197810304002441080475657933369898059042007395664425100309504691243279691381626204486972643820286130657290325237245481580946740159046862999337355829702952621251438703891215969391264239945763185987713713757088036164400712205703047217081880181913614765492044108865381781579996950209882723119068341829423310590065206059046054930586064109673292826740153300201417213569021235853735574302115602216255876718163578021551387153003932299498435170654794161730834208906225225128519309850979900159816146588061095675015185786544276446558088440587719178999334808652622416954455347139279776437040396379114344418014830160198107011953277182399080149893699250624031362044349878509870369957515673632565044061532265041866068587035139187719026870613358986476467764152233612528735555894480745368335432765097502657509120492117457896806395670888622530647646538106960148322275608987735195391346291007310910284191653504979463136956755457012333614322336577291076493209436794744651296141424115470608949856224489830136660174681534362750146071242511727857530146024934794011347502217277905284498525167779514403354245134579484272156078511292530248778400578336447428135039102596558193422383304093027745743084765183564132001948691696582178886237006529695863429027384532942411564014292566626795143385546859398496433295265724183125672221898185339635797130235713943104637849403895668732157598807924619901594270854994722272594320096858846263778831449088144708731608119108377709469212027427348081711913435543660943354214222509475795823143933181646194778390066164607994934910067497158222011296490169000019198546443032114000786628761646921245347932058319450073200731623575926819110331896415394880313934397268698201716535071302318088698144440454760151837947956491968152605406280704033078500649393984660581651341850671203206136020221627623312615087180490962519947868233625994165510495542373241085053085815353181802777855535319362384868060637855760357908450333872615380985225972678614660667142944513853887122358661832564712248399707146484650493238064622582959205254588658451574378953169255415432276570430017707373419028518540898658817376869714109456485329919908530378528271064114889058626761607366436694469975701063807922431587362452345828326684546730102737496965096478624823399220518032372913322299816295987304425122925173022163587272252702795962535313220509830146555024492330652240195112712785099615771770735418408447724157899587771015021998067989106202654642226626375279782032405340422850088676341037943112817828297283808847643177657150522761426814102389969687808255938731077167160058402865062734542642511140815362774147959358850574876310792101823484771366761771017581206455459490840330949080834137386051462743402102594848271861663163364492581934512298993366852675958396656543640213520905099127217440681196119150154900834265053259853055916664278603260552351003393695725506472300019901829153403990466591977244585137516782170404430436405077302465571451756145567636111291365033853356675158752197693236180711031065288384027815494352826581777634792832346287042246112049818219235719178895602933485733983531168692974964139668076467936636410053265178309233391876723333582627898878446507409169354139340490887508455951178787500666078209509381301005021834242496024841155706744430928142262979824505577936779558162855177395356687118154878756168011165564385493715357293359918150403261488592036774348349440377219991664055915837472584853571832620426636890901452356186323992865099730105434443821730921438407093449014648895719407274836255768560821667561910269658257461731981045118415679796765905553807641225908238870492560140616859368142301363386658415845694720846509396877449164816698581034842187354032618059446608516252171389472632537586744637570140491080060672959091264314060295881697522144242999075396483888314869398403732946161592506429993987971240515975478296072112403335756437339938002637199931678014371950804701258347717346677524195844869010796092346977843571875620415507252409670839647369448081013987305006390405616717312554399920392916928595734884940130627267196901364828428775307196756545508026373014293737555410585961285317142607479196675867193081527683522964120006968578255111161379844699137637289699755574059752712534416276445087467559082508071545568773768934568235153253196894631003535076634974530126744058045210755781045293637174671519144908802172030876384453355560913705757016907674504818482833861773904874443645953829636021408056961900800911613593079913475374607048821997552026880767572822298396816740565135214011092981461437322682989420278809502746498935614501129931978789357788994403039448030628278824896148186442879468945558723915323943072397035621750518461369188649181539602377168613691804485726447583296321589715219576000020432315981344311729566022880709662794038839476876533031080827012707623796229958650801157641332776932248646162986102976163446463687841530889930875137365796365295968922745997023641713773130127117271722997714448534127546039133752992464891769620191524316389043045598581574916167370304085790588891705623091601324965267755298151427730683729779299053086235512869063675803225725790124425596217520087861426977743792246439166529386738427727636973324056168069663843617607695569013632094774779416782749177476145039428417336674580812533824948249608369219461814712926014887334426406352291278102641775011068244434018574624380545016004663513338047164034277219410628547027508629613496135591663723155087499935002092678364626241780689603133810306467690748715242359124729407998971661799930396456005649088114035110160753062652903883034925892164426931480893614785967661607588415121858479707363853286988362359967911245235016438594108273197210723474188405500387237427223285094890267789817547606316327573480398274080211351090541071311186437615449990170858136677435370577430151790118811801053018461588989629994000872821459267832303307395094502608869809041315483022830239680477245995051059589018262240336643262189654020178133150617842963552826051450009490435462921769406384441083851772486659052855963743038041508962526508326324723306175245270273573686265189903104566184292385620836643913222227472781955030671973143199655543591024111952582956332732948783120945130753782631972832717188217792827628637603461841959099398712896162586305091832011150959469543633850491743840372571314184885643174914732285339594243820822119861176789709457105020943383902908210351982388409545424303643951997484203481867703361368431654542865910562692094660694487607382908700155509503821209612780059236221462191943240448918853026069933589450788926662700061967572726296960345321429180125639560705270685738876555910534940488215763477121614756936453710209505666359397436361767200480177054654295984299347703493869955522547580973987277463266807103569624779619234362537232976649946943917861044164352299423796017004691422268342825085080860641495466243958104862323189701917857163886168300241605913099957992605350379640071836328298991028116398448286400363457704570009038936524297686197322520061624118324738958813432202826957549354792519805786698620479870371925418595467798321733137892856954038292575975837140503508182571227181582325778629872241051869996238853666245885143214747686946409230753871129358192741912408989733205445018045277233143083106911817618862133113138961753169862671353629424765350438386693136404299145974129200596668250805549304155608412953197884212570341407798502568761486473139531057570328343059418869552357878297806634699222352937033347532490649860407794063186682258458854979480056097401544663595026083667068400915631484973825161065714763443271990855220420376514862752916145338431657187584391841503046097181386519538269083156229569693100925443016008561806672321489555474276348106923130077570916755740709777125587930141372154772627239160514917234607958129150139651912645064080852513256175310025472925607350263055312187341216233179857781912279692230826858481256680818393541498569394032578215268072027644413709469048861286021223957477150615669366064298411957489961889466216389382707956068701920808079666115332757013119916749682495864513938714177054034766020985003580012976799917194132570854162335923980087628220469263663570560298247152163125387848028277979802283620845870470126032588794788601974798845955187053192217668331580259739171481015583857251044919630303410371799643522538109595731633922239785046276530495784521276602848953514701471919668038097042745546012715456149262031686106582132193158776454544888900276561351160450042682623950094946049830450661124329656909175555287400902296706543993716301774512615436769243346135530521218871844604121822581124030651597195968145421892594875048922877213513267888980516976233813574867909249693606320713157931585527905712531004462465490157163633890071157428091629747200766355262085618300894941467046515313798175393548545592681812539167384067228810184638269090764265180968659644650300299585890393106361857995742993542691949859416685162796399455762936153933402183296705408478666277104219416942596770669239616747736985080062149516724017876193598883561450495008802232405889346441026041985413646420051780332284104904021517676977061783506118967520170156438298518208853742898496215053488939657414327724138922386104322173581996921057612139896728203478920854759697746565818060585022999557416511872038980057840585668957040652056091603063200014226980098014200797198859068210160834374265077521678577403205942628995098520125861298849460036757801851222859467158635989039921993598312390029992999459013455530603105316130224589899527665586330277916053232870528759375617495074946985823339159562707657216017628691003841933515583120729341267734526605520816000072688302849975691014759226690546904246115424041995789714057007234940097393036984045334910847207602364366345824860899010809780273789527816280790147643942363331694812550414311936380498792324086316930536947160606196506143659335520137508877302642097088181083701171618841286511443277180290804899556182904867657367214079374118868046060918529812677502479469873403841240255666656207098883071984734965957448966294176045830367516221822826990875837800123762185781507327700968038432654141836320633181243662834080542130480835049984579635389896399474436299340085570509214832173810033955687382657544621453048183797923219209195614146210068966210011782332794945874689813785612800802617260776245999796318748476543931782561747022143678909110764507512640486799998654112248592992038613635292682874761785513510020996864643238465883587221113079355046732573737340204818519649128098047446258647080786698856172196645442189396060877970499801519992050723068055892838067181384801995654768419388673492385763846976494887197844813168919594367753074884691899190266680365542102997757302182223304607620827079645481217733229230564956235356205543438063014438566641406416987035734407248326716997555989686973195257592750637235797052295132339560049683303922283554541945579811699920524994056444904319315093779677292843976226570202279721526284965520563538805840793597248114355744109934675790545975454369871518017265961513376493846991873219674948248005660636286627954835625541545456481272084482011223981609993631431526177180300878886050426611329971084246527734635696748575495887342494683560143936236012118452893014055389032183264098404785912775789521184861094103913625408414149354071410539125802703766138182631884246496095695705345600005741898982295924538337768741410594347310470561807212282261943250292223600452786898398239251119264809235159988022038630811013845320820881134185598986440807712077569536075904706994750706751586628487169839115282773235777329230205699796254437556862359820829424346417121723655266789585338684808160161339254004840421141366300191183329611356414979588173950797765842124243957757609475295266961209821679831807681591086455744688861248263844737606621073481921179682304839626510985330932565185121700993744603527430182733523276817984847092548338916407060165217631715712232323027645627285078758597381948974174709333001475763526937962148674476323809049376656178505154209053911593193913403865794086332777891769720212509733159936413168207784807281232114750108664414260956494245938633129577381265522357675744847353467900566145839635643417515613663599134307812607186614820616939858610248959343244339584076710028144579534064064211853845511659468345900349852591975604995111240342014471094569240743724087296423463594803090399383971882697177898618188294271890404267732541384044700891344906141459088068787067856077971967396352147573157375627057332272387554520065461363626510607073997012693817059506142601920657604799135208210519002749868195890143709894642020247241643487519486354554471243317176213605247092892065355245549172581966292933453449947783170247805296127996582742292505054301604128692884533354680516415455190761155894570523332524936406957938031712720578049213915255663951104298294304606077351153721896185126118117137890238680607988515938907713221764380234162343288308311788943013591229731415263272662163335168853630635278286678809033713166958718788765494832551408397807762744903286863967508089938866567434282856390842550491854328871628195526732281894037964546928632474084292603181728415571228214896266754788992389246587863559982406748496785608901063885394331776169817716922579449185304551715463849405686195585290553343876257391340011680680175159402505286777083367494321389144481439367590688428498679010017374191937387610945417160768908670940986915009479050888783620298298629885259785741605706898288294047933007878914802593950207286156935669475527559817087046961961100187365635945222377927633927743564587028232179204220404119229455053060172987439407130589175242874400931598979623901360928514551445338229263763650791144456416186232349928240863430667336383229313441089761637638851977851456615208067489316015241108964517326697845793303182035952590625196543581959843777917788723326528269007075419623169068668904657747932838650425913315185558993916739215154046548800199926200394072687903918415695779884591605836855780290277053891629481595965724576905308490967502526818420594226568681390654288831647995265188668420022238420828379102578408867944574208132980947129503219220720240677471961495082587921987882409651120407178814329963288459406440840128918237645086304041782989472135670581280831288721070438716882513644142224300667207939621190151232952127896137997786235385430154758331113593176155976916936542478316320788734587303357882631880969287676529779169807730445811121968775533726233832352147695963831323666629427158561571005201594884755421338026401868402510730166290494480512332823548451935050899613870954249710270921301701770690555830991868003822405859019568566604745098664329809526726074953555033459189669898226318656435522661602952828419826276226746642791734890553715074225485629359188647359385373789487953556803356051545613200387649520162630070458449960431969259784986451563889899180386025373527359464667579037094682345098422031117170224372177305284449842339149289517937575134529565566866884733824655479478659550634006851138302385083995198186441537373638614303579478236504051865534290012567890743749114220017131819411182216934374734224658385411979605283538170289399328564908417167683407903590088706737513733040222301265450447909119262454452466807595591153897889337053528369988558101847042943208285405585472671952671504563617974988990645316830612933723704721185292510534575941644442091672946170630917759717830853971341545151400044990258167095383895310382389254427076803765062408574420638773249232046629258137885730211891635985471367033133864703852818906630773900857785418545578815029937624268436793784092824575083812759245784116166739361550045292126338477955783779185599036304244915136451837121182609811896921595654164532489536750745177970142750500899663812105595486744123757115383062273975214126254967242138137585316881069660901287022356189219614372901853311217168558369746038854900614461208107042221479476659941698756901039974724221670981513122435260131480052761207550476774955172711866677040951278797812298087193855094855584470694385961107174861383120145854619248044758960410642365461433006749044388551912553265499318218295072309429751778221587502802330049921098556138432396358523366584798798597364090849387000831799828064921189231784408301564847498580925407609503993981443388935528492891604987679162740562385990918323266139974934439944257374438416951401993213562799932080348668273873085215069951801087555024471096309838490542980087499424204226784747613299241324444499703285628881091215635009425288997643540351326735910525605156967612674665119415582321750914140785096553874348225815320231802534494494363829853582656382279542853518242583941125956431006897019468573100646411588606297572271089746539376136252386428881805418684188622891198998600717314104133570049409692762192059519987154458901551775864875430395446971202749343102574734270549218575134599643250196499983755100430735156451133363864829737285356642980352463424862745421919123353549857089437099890222353242135093326026625883681362653804678856403382573651309072931587201041576575581651237144890260307712158622930009133677490630159267551093029059855269215580757998027021062977381471071853218670451813294461896899796753775800756339833903828787183273287121294555105638751326463000485805782129388565231058251776765051056322519597020739995426430661363989759423005336153764517049841185924681719590596664274519626651973379393217893742988863719575030827773681469691430767989899401277363106060516577287737864286890298304318484651368609423771655549378440840284102742708044112600915571929769538317092796411314880387855405861640115243088137003144887497212022002565384572920436350758772606644219674862525625543070795389923849990769133491832717826325827188065816499444317630657802649972244888323544853250057851982020458753496442278632192134155725411042939746023719368614788442595451426845034853636012605509951749384319641909931375167911715728991176229943444365812675138154050617879397775916803938965554272945010048513973009291794900801556291055192407386001555345405652433786222527370902369204961241923744406011952127942472270989072038244738206064093991352128320746795707144393804560420362718922175284768481323481383511836270442813280757744204986579827700518222823638309607271181110305497171769877949558647743964510308528548595096225494419745384259050384544660503911220189286846633017046001395495925376936097169110954092192286333951101577056321995810234497149154830030851257806229907280148012009390770706629677467865758624165986210406142989045895836129547223833051779635265341056559391961656474091062166861566314368599656703997867544625183751265789877215673794223414946188114456609322898258276756309309949087959486305037215127405223372296725876353913531244770238536524211497550396226349587423441961148646661530350602585557465996542886479527539050791313460874094339268795087386153450159523722168750278665471070897675525498445476460456141139501636482005116650130605777521981027611811857290881481711533752602423196367050675323424229545043847671444540934716825287087022687707192468303089981799575707003947248832650743488236904611741006593972586450910800562469888313534287540446610470796404349460484519633399823229464832433372308119426457580974635702653353864602609397476062204987874475581675816681076387669234934997869506087551875569317394098244257097627229652336774470831823295436060731488108705154937317805310564611151986842505077641116183450729698214016176807962817368826319617496122328189117685664051794390711631737582191929368561067489921485548322881219564766977341418782155013590268430754563838362082076911033465098843153171035508485591354882035353029113562769015843348395031304580184105285014894105147169312838325465259955300466534080544835479338379361558696255121991633902924725716181430349499594885951124079724120463383045019241833451660495320328929832672852976126379648099771717497780678407961231162444577607729099102612055933867291872385346442194941636079176673787937084986608359827315466796247167091036925422519970350216752668875090296254147854392053413614776703402730745784039434690173867229848419308481605488771406998998771449956902061013244243048277057158852294461721161431327072226639464010939246902070989781737929005922658201650819388298188786225573849995303706047497148697156018321007246696356474011269033396543434164914768379419663925209763462029086566450924357154629881880350129860050080883513390656560740898534778379398458781355121017396780551708100836082156845920179505079086337194357908580523608754569639267957781927256506327928145221199222605449684536837283465767950724645407844582313102254925029042104261537990428738262945336445066006878112279190330639218733815549490594770277255634356230267972238425007801422626715510135710579073424261809642583694680906366558993264464325742789877868599182494799598479036670375667005923524358122432774263700607171699635189048542466500044969480100383432807132667432869268785752048371149339518062983025625044230056605512677276193513080560448259072454795946665833213426307051213634397323845482823767244547821760856522748552246752327852845692237909480864351111613327387722234324722544989139171093344149091317998927962669374130432059631481965035326943149746901733073944203795025399564937897999717643534147464315603335864581620330135084143045791875215849679765947236455606758265041708820337007808921181346140320395024503743568708394631030494176510235384927507083841236667437693646243304559581002517747184391475129148376602605592582164223627290990128715657137167438449500435862204738999102949388911875340463640086795462944889383850990714205921005634313919957410921414593441018616104987115190644378485332797076760346437263252087208821236666058118177156767779053496380995629636760650348229362715295293510470855587348789077588289871729921943086349887489294413894916249666716189309783061278576310852289270676967442905879745575250887499125587056025181770407236816043511459190681994369582176555975906096837938631059892578254365910250229833070004672305752980566515397798311426391101530413177108016818537277893931334858566557290905444571404341848234630606969189724192292904848249390581871652550471071713851017355663704587526326731399596988867041726940127759927836252556768262835291459435226835764515532439086467577583885053332076327117506393515950661680054537230366680927975990229687181460874292045996597151397263466067168753764448467687326889208897265541367419207311920341211924476641533314479895987450620493026103192782481837748373088836959175407985060373871542559484417314824299608387208429124575616845471110164402112517879893278277312533407274575203834293718724838852699869673242411639098661521835201714628547421731068385353101038224800958103740641913007291562130069933813511973653564277137074864422392159232898091444081266049123890976154093146929838324227267148886982108894975443853288871142737789089478581215043912658550539277300193652626955738270697880369456140940107695008380209012374011668180872625223184603172450237233548219284849616553755716142205342969075366953002616718771341377473506649138038601332077362040714835371032459873943382146110676617619164505546636538788131973411104012544274689648517644755945064531064937398563055528428033842196407160763632686503428121638911629814677377398952747468493848952801663486367042951034865634843414819203954635211785031664140527505257624142767615144679411760529138912090879989407073374510148931263143303802894197198562297200838205985769969313139671433693163832047139770011227579570231189440523973252948253255059830841348332388120506230528278189403523645448635894219588330696747119532015998438973836311041983111202501057266557722462802110649166760520075947034254250907800143219157056869384740326931642917959596773955125839754728748113099801825232899235366673156256683272844279419941630718506470220145965948684863239972826591749867331393036478698416737297706306059101383197166450083098650198256294699911001691837066153098788698904341848948103758843466945967811400885415952119116453417505744894736617956738605619137962131793265192254311705725738693152913335280630967158461024206826934223178390353420182058355035958556037063113298730861009964459752148868445522222934495127747241470132523520591310368812446050036620821438371298998000427124951385463384103418362813246160433945304114677310710860196507741274082536807533264279793509920198723212473389589800096941662698816315583656426946860153537414702863289155142632774245144351598884361389626174157327820394271688201453694000636760321389764728396874432534375617668427941480050583958371947611104919395155176062354271458677275855397568117070268650810418839364030340247426377140931894869242464209317239812432274441517313306462041806695736833780526265667780930783496077814140011560162397872297685645859946538978031168034617055335506028407072459101763041536621612295508560076425785640650174483461977759061228469124836649166387512948962175851167910383694519092559002860042870255079087695708129243376048859125791782813090103982836115276496426832683932806850209814333055014611598193148946897667602377937211834146534059509316341598847338929384964526804193793761625508769102442468709393407627719233163671253128866492661637954646827361722185464303298123696968820927294986182567539221287214758997475535282818057315310137903734693321379514293039268308333179062781407494930711707400611570831434059861567425754660979077823016564190821114281306353319108691245602067543055470407342647086642201045215180843936086145441485889933206244115811209013888572939748508447012305594058932385247153422463363928854623930225980011070625376517479344196318151984614524860953708303343468036710415751890260179344967197308610806556473787688582744074014460483626478502061929845342042689187177688609933630448451707321364943605656991874000859345058345731916683887537979155685104471342106075934303763218790697338568533441887119165880651408929653479503592570471534806647795226974491852847925398578837967154463650946617542019913952532042412722118936770208521878570165225233949256072270842707186696989019402858156010980121289284947457913371317603799674435985331480979635724106073358231517633264936714281889936849087572302004767388360123200030963668076131163045699861420943957741387204976004011158875290700510150613219666730892005574799463886716894108948798574494830394662974047224816336053115309534622215619589770811456558044558299742123282601338199077129915155692921606220619476100559102863909582408764130675367317218729113675090420709872613421608925256701017963566535993009135814423377513875755043248515647700784533185782290516127338087755843470994304844759183216301256308532999050868415964209045005333559232401188751618250848123667011925678539452196996966351466654994057352071713483178970437174810831823941335662243153050379149662611371789619411667415147470676278681204962096268683807003050291172072486110731373979144801843497833001408673229470285319107159463389591856656059390131650382644108096862719942937958383264056463632940370267725219278160028081722792130379656543599360023260862249091643298457871113415955778923608520795664359021815027237478357152804486668790129750834530872910982166267110967209256512574214108396513223047974371331448203218564992737359551103924354666715767361791631292009921206092617291246880280765790209573463025369257716699467929484033727868946506719746331168659689189737385023294469178396216983394312530297663801794981217514401386365358907383253318994856524651040397589745677865478951135230597019499981059104569877470845199506206191861401791945832566516622052136332318367488404964771836229979029136323393320632980188254570364331879524155292771264593319904365264984738969684521073427116117646081285646336929850685362812696690709994450628796849585811806974197251988958923463992256534648918867526370300780401779682663254276388675595652119483597460691253593639105552068808281897936137726761208322886345320245903080221690526388103029732861402930695668214811642950742126279182319811373973071140161820146440794810634345935160828910062033294564256539234638733464329618887834027443418891829651612259053368334744972493579334108407085812553937647218225042176451193823602391942223148351231159057775487827002532893156457727163134033691805933547013892860089036551607276158066115904349103951148898862004551399113207325351759832182620906119774785567388664998107107138143016845769196080702188941551730659025317885476239922561742621032570090154604266538722403645886041198292711299760399721820953384482570404340735348932814897807511747208132827244857916625407362078759727010121318723867154437643406200229552247417444374667424255599923271796269792795173489594640342622191338904187012456862728067445379731950017228255459787707928296096915440780734571592248932180294235395863339202186571979110338817309400826402538625986304621933865058825156189967821462538854209173789808238120543901065551062271142954587509042332588664295289415565746071544464443558427424497186042227538408247841168846738786327127296537842155183495906242997487016775507182783313704892480996840457424765683536221305577647013065646929323578679790526665289596890070771834995215408845952995002943002844782545139406984661379487102414571468890302369649159411450517982256496296180393358672341234874377267092775351119764451131443199379156860579690058297555523647953110327363875682350258824870558441103368275574967090405602923622105471376808098748236687158749863020119367817557195323625303480355695913932747739817514966477677091985595993009441994146720859243302320157642827033439182484979627555648408421533566537135754699178413249248139318060600142054690805566844292868100278672065344150591950927420733067816940669294172982557503656114182892310310481528819485675708101683313424605949134352072135856922933448400901830530885673018558644788197677969778474294680865632909645193349030704450894031469490533729201753420326362546556197668123098776320902387482725178550791540122280153468597712698510077034956632867673674063070272038528985168472556819740975575777911350599352957852450092422671192613490229261629339588837144858441114020485079178045607981900941469217580678293558198654357159336397462594658188829923008740207474077950881622202235589867583005611970688446896802545162109519461859811474698315190224046150912301260654115919586585329419333155144854482016402527536767088051943577914701313994097552973535133495268199873803883221280538829938541596794971108712644736037887400601671499584612415719011590104379645041274647762273323526772469206864306335839613030185792661659880857362846073386972346905634914992021293385855957806220893576874001526406220325431466730948196072275701472195804776373114521815980897126904481565202853657816593082649590305568880420594727286478782599300870270941438441435307504781213684236963583522682294672308904126897643873085950485719619281732676973726778429742852315391973118470219265339565851857054381470571716492479333213687947348509278738783010598341644151224718979327856890676975508542884737526275479904129967416920172039366336052672295437303836124396368518780462181004994769518303502823319266737977191543381664259694672700240498685258191755714656098993303299176444253410693416903920398340427332528060530559255623997009085265749336347647293420619586230791214447506318506479409656921225111789343066967483474751092128950364744831289474667614799783216107360341470307359481912245954969890020796479959350098228673707489974594472934735576204203384668477180118836375480878026442792072372342893879909232603192203279196048442109322317944266638009513035778564175877599727763369042627752129560198210125653747975249555523425232887598824010224699532876684745997333158303454343663458628871561825377263370965018788536335287233698138509170614785356275822120314221340557529848655643722922074818908742273594918649412252283622746001096875631742463820201141616452219807195565398822891857498879352341724341254806857040508336917687409188764607874274636640189439892612300732099688471082784890209065595214409964492152437772248941509257588002865817828647159519429334600203942710956786991350243562336840945053143172304826700886201840954551735241153741014740009050945519495586841213617651658185157140151355435256534866746720452255001982779539810769583486476661803207422329058672900902426453767880208707234675249757850834437770353773300867757813189572170555478058500755770339763514887374638560933867701825491455037189553765562270770893998513073632953723898565412697488352191486247519562927316015640150607750584454159296795191511422318864970469317898246133066530157825739426820852341641602468214729354435997035737254318484575334172804348756088564921153614738948275826461630631360985298817139175942763259201631309925376122095855885084880118702802146693192222009692073707802604096792289082154374360241703689197944814929781507048140456434877411459993250406536093159464167560394583676367178300837455773811194741282431376541597956059955633956191956262045762397549156437896499042937571992842732387896978685254121303171324005814461983718956435544974018235787996518527132654565569435284797812436633742013711530656003985507041584031313956095415148346200599292208604418950741250122947413057628159067779043559269931863244402818251468919670153236882982295010529756033708499605059341243723800106533592036123185800594948200251381163334522354950691186729784287894554781515348552880717332474056959884185558983241970875353115571263601904999036052153933392225545951993864608522610249606218591627721375825793836020711415639935126787773845062852358108180334927455954987625852705662680044252546603886475932430102669862316035454307175515772307981404851802215421958905117895888197680642740140370507671157471940961472563360438138113544895268150315711583495267294360126431537509827217729696149926965463344860290809532529561795335108312038091719284156517552320380389334746489846632645886996710287468745657731425627703967767171564901767619737319887712248656374965273509667640865718262398941760134373602031916872638653236259141455989790330041865079798181480208856608472389197793598556580871764219997567666221518568343852557922148374176790668479541239589083241689209919810345940023177873495208093772655362919529878195636353543963637719084839556582431866896441847572048616324537798973917029168644137668118409077615798337561893055078823118310273364759364484950845920580480809175468288274349952152665056215198573808897259940920326156638906414959971584346435745300582990632512264037651420746404650334472183312224785592780487576135046145497442674742667466021800978995992213411369442955853750563154603793199554752394813508232075750247464895167601447671267257824673226119111626482395773704763988885974640553516375267357151599498145497585734912772754573026743018635589367536943489910374809666249308006262209422849093883280194590589114799235565765402755608079901769380440881284091178531230379716103064771924705402034840627602173360850914795206940424108718713709377074490159937791267189670912296039049792139790202192361831000530873189552386652810915110315350527477709065576688077244619152794507133331128138450374262966410469587234726796731280907789265980219116032696382709340134102446553659155352729212928708169374841938235075805415141522250064965739227150749926145122872205444941155080983285836697689439781983898971171116719656496049001351482527616556115558619272933160385520407246223801987117139807773797380343395339114503428791237835272618678515988488140967048422472729259883740698205562648453878407700982259104259380977401298420725785562926994675673441521216227033536646750103705364265621323759622247225941312276518362389096976680693386721116739061785015703362540308450070499803984244495234846401358502833594185500274328223898868885043549489797564634771143401514398400713912041889720797787130369194527803297826838776111855158171397252721694892307225846858754970772348863750955651446672832037834557443268226185921612548036748385286487001263275946381177391776849800275187170869460710618853963325204886702378490915509767768317519998568268763235605078048547506136567489754567834220219056743219947677963965087003632976304089256316811086053316655096145200717188393423047934777537212662689690746106574016947571708732369242152044874953223137249482702280222501248006257713317617195660482106349601526973184453500290875196255980881696414571682210673234181647999610643700314738012835478395061471172699623492167870165224658782968507415964569300173185694655959869005575552323685927433407888392379384713239557877250735985763938668510940267263905861696175129519534676165703157812897968160634190927246714015925343593610352703285347595722012709772904649474775977375506488745742690336315932115832982392050664595553150773245942952719047181386625036782416399987254574742068207925949221199213591528487594026530719375461368181321216576005392365422897430274376909965911252151992727917637833947643180886925570033524794903184552010790933534950060648998830008456506081475369563887190410179429763816239621829518212863947833339194691754556442708345852028190298900690319269214817089437780224341401019417885613893474519514122141768471852253582852767819304476589865508569669429865790731979430336068071510552434615212125873315427080978790015086573529869104143894249315612350473613205634911813078289700744913711299741203563339046148566176475332006501369399213080168447125990649426202131451652498471633242473001638027886127882165754932003235118594137356309154949443079823035063613531507929989447421986014591358068845205177198883764104765280656531377640084252212949606941538195719066170732660212434770699014273482434864381213092824989930455468626117125220105585546105629385714116153039405068873028561762759857251653604551513819458849703699794105179802243858576378224502325282402035316692065883016643349947113983031280079264586620557820180190757390243852644892380274495656529145606736321578425643835574700631752685788133471402828269009948728023933116284548462750131939559742781638137942783103209505274716345938535073972583508746631799257597532849067256534783046401966740491554144079676316535286746275817939011206689971013800976658410506822758697534464906901887238850530055461595948318507444088280014673579453729260696761350547941555221098238377035119567044140356234894938332595107602690517398299422405697269847352072013745271789730272365961574508999087505820136524928192583406600288301245710748147257874006921994455734966396147046840053037920945170725675966418788616560673322113024207736062889688170364943223630094792317646252352324908464600083554200033702896473596212265613652880245961942696132070905419942793300539956187435128902088582947997743917450330872601820757707399465452101107982902511878616030289357949435487544365153311640978440719266636713734742734124975942300282255179724153952397510136642388558581154704653491762190642327371718770950401189107992308419221289597738134706414843799949540100133083729682289350732131363066869392329749586886591024336710328632038707681635733459642732222569598971516577805281176337853067491676642282877772557283324106012414992693154841550272660900131942546973383540886411417934080640223278251545269528473013696730954621584691177888482332324988142081090104813301482807906562373384137737960658886738183328844391971421952573831474223540942556580491351248071453881228115706483216446230587060900073064708276719513187692013310398453308831440954706913648299119899858251009824427565862401236468281277568206455253597082704197314913325556558690831975808392403934422797842003919332117403515234870869085745343752784851260475115178657466419924585294213990390100370155392840641888456366742239869074189283327893571285432914546763250542830965825054110456372723911041466100791207037303859497199465073951487668124330542939810861679262056151045901771135937793466781260225044898403266974267095159280505271158162188830553621265401502497960364573621973667866198133335379986269893691488138479525041052506436425570136231469990982252067015095593968650373699836640166118725045577656161598505264902474472431366277860758347355074769345861064724660691396934531899519266491328581813420583414301050777563251637255992184802045859993147423684923478107579445175637746300906864424705990422019899063091838949031065193698069220997242757019650916659594624098366641090695152728798615990147088911754051992336754720386905463537755753565595865939851382318821332348634509154106442884810023534836758772982631575133733886907748090914317224848655592950897003909380756872859827416994261845659836811614185158106376368986570838474836118443549753845232148423950616242326277657426712852798518936634562213185317043278889318796077611154192517270352444571432963971647899752215960648824471791225569762167864739209373747635636638717403850521173234183748716632162726822246637679164153000360949184035237167316068738752485818870922289399283838238679403049985912945704245673009821124394864864433915077803315297638892019766869206106738173951048736429252686760153753338212060165339116484527541710948393884255257538448868088833686023459963880819036942998242217782177922228936595782149824315977364977314047124642920579916811952106198618913802997390024013799679120102866195705628332523106044964630197905194250697228607223456320593708253977438319175363637258659853934773202258635150231048472063826069790774207846661241163620056136078976433476191226630804639663873674573423731229790674751068247444338020239396181408269010828039163429227649953458955666169377572570088462711759450465905876863796142000877875402994982341094434576441070340282606625191373300799297327565149657769568144950987681119718114044843094045845688345399218736861344548507935206791603476817088896510161014814044766017237016078376151699131244143376801186422936159331047498467105991317083312636726495389190254239105157482495973801772145390059559097236165869361013649470107870264076098911401642367461383901422113166331966384060414513667889394495450806784274302497850279153796731229029132179783970921343582050596190711001756569719700716147031980104024659302497724804692836671942980658597482403645272166280567008329902394601248684916112860942166543967342022870382359094809087618226658507484181422311714352171730040388847261507325172265381030530524737985556734874238213032302933710967591391003435768788712765230418935378564795067736100954526216245435352916463780017958352130841452718174108605781684594928574242605826070630489678933136387165122427531372926513225082228331219455256483121944048606228417830303476263186586197112545206514726052386154186090949592647057489517430469782497651255280884292159581194801338297087331965604562427404020038017193094234660847907025434967072049150249312756122742113781256582706902245015572171300207315750532540003570430827115856380694377683164349021714284061467704257136791569309892989880264950102659662077832548293372940133073681476629157879939356186253859003529385712475122490226967790129327716652268837108466634850948234577607496851084407358976186532376605572623533563675002844244327123431061983609917695822912239925575099285304533986794330823561194585862005527464936805169267412147894844749124308320669177586065321544487972234150718957134438367762960923974100096945972744176682685860230573805747594159500824700212552357739906542161786640638692395901383690856378018181654295887232428729294621221634364252234842519588785754263126904146875614661466424086463291062894201430435721546665728263674939968237448905471265573753623852931251058484760940016295353058422690565571127647944638408564047497908338701218164369250723697067473873153384662550811787073245520893375126262559567455633412390843793698399389873015691615166939094577007624609628265252807232191948728704624830709981867624959706199795521774365851769783469335197483345895931542000554243067457987001951078778101934512794240947418664217938850398516904511077068443729119050020773483240718009495269406455829308319540328398228971763147551675716947431371176070938312214794014649381687933017797454184645983929175041384027845989340439397493230767029427905386603054164629845632989073528649919863163845869413274888715586765612638776421987848814948073680998644587648678775753558857228646713297890399975034628885586739498592809007418466792623832073144705036164158810885310101608208783602859822661421380630391232975369989202945077917062550404198282891949936487018776329678010708787652745261865809137260204202662959170846971606675403112292044841902958277017050195393932670075839692197570008806425235213580650689036005185426043622994779260118920417845850518715158224815768535868777251011574145533951538709165146090655489713256619126017934648744370460868458682078251056991151572878011478225696810386970669062019209957164725649961885980114981951758547121816966019757041202084763556589837900973408919885862056928232829656928667112721078434864174049485697821827155216298346388477239011203195031728760247047511281302411968713370956298699373771529519984847824488485086271591342788861553589753449368358032014685862476058384153444031164205325496839644078438091613458066016505480255032569718113359372146017409795676841980353615769344329883077789111397514177823964429710604250655230143221470556660725733967844922580792096304916980940190493307826151030480668709002824303034654457866818749872450509893430902636121363854420361354379741796503709675945132754377856814945804791994233857401114229627396943009540215396541516173449399524347744719168752810647792497184090826212436906538214539273970324112698413420714991383301881695886444021740532506981906708961146360553128730381236265161844028768403289148873225865479262164337483101249470391769868486312408111444197767947715345866853144046933548449397672367310502977278779810457727987443634684569356046865237077224643729201553522623716005797937811942993975975826742876048767758924174932132716043734179095700878959323502919017360920969068608870274120413409353142870583574541109639529711707404540663424587339072793652197354617715309799535387620253554655619805294546902912051102240905435984526162457353973249603815424927224196742383937860104544691535854589621823573474012825358799393747224937733141168113433062712467942681787328314833338492618787615762451969201282337478993779305260587184057033694493610287066264754863050067034807453969557996183703513968375621695178978574504183728762854947194625320689704961089467678558018131885743660824715134597562280852922045181920270714136704119444023194158952028050852977595205579824851716101869175218554017663204885794284960333270042305599418814455821207897303133141679271495761322001069745776646446679323499880546479695953368692222859202178318996888365411451239583672150531319297892902244384928382610100750108738664376461020416145998813426882951691884487255525010720274499890651061965041469344776939698784615773249378220355326987791189569536091882737756014448214284455162324893327641294053765486748701062556469909161222925320248074180004192851672025901369729346026927028468886627458042138643743285541402619863884468617239365991205220793553573954712011190456497803953911274520658817494425818767493012217326920943894741712193278586896143957992589124669944057577010076943404267109365611060649755691901487411486296552625660441660070388353602170501403731263857930559359047327124319745323691143491490872367120564181554290292477263806982319099631147003830057390519178941511793465961967294476182470458102366207682106063265211622402646379210510424916760338174777799774465880764594314898884305981768749361828831677516375736821853640777982329972769471131885587878684871537038036179631637869308200471384003273403759288570210067921811807095583734850355889493852634743587165695821579334724737955562814793906950744173452470012240200649499631542637662087826413166821367169267169544219206125384352070878074544205186327618657720481499024342950335724149744952105841323626958418416788464777993862309140557690212787729009756738131059604036792433961846443764838115162579545986238849028733649629405705558244365228509810639945635463485943355785451039221587064099879199798433462688191293226743618249834152682790418948916516156408442548226358476145745727339939786403123781686794418318473726901021147025731370094161426130827681058860095678313104931758370810052455761660345950235707219855016872621138547311021932956984268951989934591462420087261658547969969994736671605650026928057621367211512611378380298149239577471350203832508929840054929908512682922742585923267687115685557196502624011467087199944893708967524149183071104026804999914011120253504117874999795563830058050722939014574634155851657381742902227245099073169793722750988409869131795573864079393730821960428368278567091988087420687498933165342018049794679913435949713232845579173544026749500360034164454331599402078581708686318532078459735213232766893970736463668880341398851840191174982682020011445359338974893839664546019716403941757524720162156037030647943390056509039458863071213223002884912855813794327470677295604876813532265443494596133737421421390510259629484333856822058231401282241669220267646146184206136623420945290074149110548184420194310629768546115785791123793199907357382253535623403791914889864773905475299378644254697411202077236791565503296551795288014046699906652932502244417910605339950980365397967155764230814993673758290225337147678748229823268539666016412332800023107082304889862818421192356127224887857158456886753039539707827507001999907060446251859986088261484839436534630511118502032287424127436487334547928756965310941271393019009273690158216323172404288749249390823107490620360513024857656544784459280701966901144596971083972271782394402704548236987205646469677511760090064267340634333396173526087898933347082008420316414083191080554964697475129588213463279231580207054244064177401142426252723230665302584947163292476213852986766983847221222327050913555500822061818759900195703138866497627830367571832384420173867724305819095660259565295231690190064240124920735756565332538098225743593381917752816372332784742051833385217167918460851410040986452421668582846506522917371075451486974380680464887471304370659064012311548087303490140575470487486254357650759456277981555532173860204356584537566372187554262697301645300366740518185414482780982838032148710654386679720230364235227305512857314946789848897555527852338896687049444513298558937981191113419483027884720886025013005335435905048208434683773119451051677384295303255091755916450782769638541482405489410119533707050734614973668098825293530321066442208641677671932632835493544351462570777810345925768319365242490270964500941096006915019119007364451533657882595576213416450053387520904750203088739715450369739590610417581163134428110547792624255135441562259596522809001853104051674485274113639072591006287540926274892361411844823515661656827875912326219989062198092709309233206419252281474442125096003687731299095513438276242986487113945310355517346942730032721299346574618204008951427450387127644871019113849405299473247725434512784498777553099774147613356179055339340841293013655985865629379451492797675864050886493083259803390518426606738885256544908152637530379138821897111072918821337680283926401097188732881324357779267082137583411380770396907661836962619343494776767488912088989452535113833753307963354136478905904467970583135495973202067577681216230180251821622030622021750781375922698138284224854433303153740123596013101662108187307421758060026769886411320093822807553877716963114388067907912947667763711110970868338403020111305683552225811687363603476069219433411009050300590714999257602834135406435256199680880426326941426688622700686325572412357616551323752586732437755150418759567940474953693961133412066675258067325701111820064499046070314523301538158086173208763570012257786525394496737856019505532150295309382264769754589323349766228160604808797949475137164686465424682464690810736230699358174011351230587255904348166735849735854561265976981329446240945320767511447935483070382188419476075884192763835321967982029703852417392677958384497844080438013033159778536349504797675772046010120837245394116955423847764590408760359917228367483299777545929408655316410853890958376322967434890850646595418972089680014522681712333767606860949104068364168059804712795328656235563585324567104968677903186222934166121320505552764802450461799860200803754499212407210462804302011115624577677760746596656756592834321893719705047694071747751045060850493681790995450155909652116899636926192451727252086885076807542929788189783408762935105427450316934746234960248866352699917851677065825907730632373168279142840773970963692252567547562334492612424709571118611510575950200759166940793870641355283396400257392652500279963625714000654956680780156337596772123564709648207209011992186367289175357367349251432258418963912621203361210590785750492371976430070020181413314467013146082076131154674724068156234470720924939176475062557161784626549675718717349861007538873012760848501903098514693085330120856380634150407767281462149929401536705469340745333588040716992298267950137715290626630647646956439374050860725705422131060574115442259499058156056509035796058113022994675873473327778992110613737853885469536599121114237018262909515492235325209379408334651453820813552076319345588855956198452900110965916798216570535863590923886919688712581883839773833376315349208081845276699905262501419689373881511834495184563523420600574793431369779453939796110658368476468800754324451101720387621020917929859154807602742330770117565712291563825601214750396764551612539348924384585302085405330687278747349288250629213997454539267026370764090659108080340807328107616806927748236926777504661588566410405270450063167790179489758100694903469165706717289706047244794049503355667459288503035903760049014242925389343128917334025285674432676548785083971577224093882240746094425892315232146351908817447526135514755744309028634625660256025631420515919409935712409652891663004325244224533467859484331088448013641533362375483968734655354565410323443703298297181588449456241755668517665011571662543651853527380780008390751059190882385816983319543327263568653216082344512743005241640249073309875910659330284079894402917313665297820552801919626467079481609855800258794322007355443137390125611408778647203884069790467642277117471237668553603613893976395802728333037731374107971735869950437726022555734606776661808839734083338442551991310114150689260629535711748895662627733223835041735904311004167304725417496965432758603296155502342081532888926559569361094090871019109859343736937136667019007672469120463664356966013116739733111153103416785570628275493699589467052218143259462041141854788387934394377019737389609012274109814570134850982234293601693123741837089488749994557549448834025506482014219511864807723504178329252102085951015632923094477664885951148747385558850209893312973717454510576869698714122805431235723584932435946872875128903826991979088780174495796582591064851741534521876765140998202444924150660736760051350252954190027203858253180634182238767546757976049317438825693974447874381800828872643545393677137869161808724405541882967812381189861354224936976678665091885905012427295526820681695082104871697839456329941172387495404916599087987351975567181391144974328765946303607212008105868949203272388010783184335706415942945771431386633896511879631281933742255757794171360565211635012458488581369568742704664034570118977409406168898346661153382470966528379311203501121708789666834648340364366398984004927483158117121850082520210586846027397314835510936549142947661012292597513728425340698131576406198240649465762808672518687102132667309758875541289199995727856268033842484376957257320504672914748228101309112181044620319786490229937241620884204032496501723201369877540603253584390375597130324749522369416649072435849368582001388776977029896354223564729065123054139681134350402295893193594349079745145859708638617936285460025174290579184380790806413370499208547253781015364270715063348773463416665561976961479374159036007909739811226447473068468126901846811629739905230068402756023516608052381907910311382803439603895242853360433571161222194787530949400407561513932561925623620636384002703785535601651769511647688968908545713187543018959785743768096793840582296012405291782288414881436769856672705697955209174268356056905917023879409363006136234383762521593348456290892954337433486989547700587701763239357176085632065740904556262990130103465417049515674248738555520697679754864868719581399461356105064845787280919639032716943902808781794439084863572540883883061502847978190187476129872528501737172649048292480784214679041658366998947666816012973268280851007685125006640830642049052720361395411718869046092118365603075716802046620051453453460382105494027311222871802620586980184813933352962712976654489467061110573172955710737709363768019829538291373103057370427451221499354621064130191148864261466991066368702381328608583160721352498148925670176369387772856309377079005023046498868255022184309797915325140293170445713416354162917702795273017290519699167721226907848588107664744976221507693955866692154258748261443183925095002893458711282138478859471880816695574025670048516419987248469017249159310901303709182724997361094189563573197048867967516175472744449434338834118855848879956401341833070218864592789320084119664237374559478700853242031092306034029082032118145396703657773039354258534745306501141868575484193051706161662990893328865415356401051905041360532021700868303475690786791602994821092256733606960524627511444247768329240542999756620101334524128608812475879328396302638278571956425220565804358431531177790705223411603102696188919272331592400418822964792656136407646414388043387103505427747572393039356906230884078090628148870860338906068335037175435120098789855533427997832112979750356923486161052831699845355945443679744678737573890829022684931569701587142286879795484179962625599845843254315784701334213906914137500517664710693073017461061362387584150080691303975006778344966700576177556088740187530102723467732764719480104039693093725409396850355681798888944095546333703747658583503624442018965953493597120952055976392153534877594082328525083351905835384827142235681414089182304608197722909916374112252824879727909278622543041202510559181990875827177348483719603068962433914357777988926152938089477104705561819153720166493504075196080892131533814998432016994650567948815782515602623355110347506023961881022518461891824727704943156572718006884327952434193264043407113236645311571403452769341677569363706681769225727837615369201784914682286950554299478491426743384366973850902508961219064829367393999635472626889839455066153408749521476717642258521664834321170927567873603898289331817978815824595018898400133772152354554255543247319363309574478100803031732966595351496238366543281427249580896063321459534931810948942020063930475687247358723139342690781386075069986427353867162707317647793548228788582110867238785054559671382923604440912732106507084036570375781596142890149980355024750651657688885949875352581603765364390115099417938152560242632588228170444758861695075246927309135101852509717796309023459257284161964751290022502100725568073645116792868172316245103191518497818787170756753905744621687042148260162295944442481890432966006089829163105594697249097067545735972940820924829088418699585036711962452259890481193678935555913142777794230772716658831647232113934806660398211291340684286710149103507690688654204322187931399241152327985455744222424791901302622369017459415597628904818417689649348320929653891804171783503476807589678602929039395133599667977446099073849296667111192802230431241970460001093041716883775294370630833693057051857555056810978305822408126985885334688456266296185771202305128933707712809607538652420413574846887955798735491283995999027997091275798137667539085651313440128901439706879159761491436885576383872753154466701154007176952715352735868298052997188925132212574338219421299001278216946806483073227954572025752204288650504575212239015211244843515879480226723956208731739545612114109073420927011456189350614910456324438344567197665778408622813028676047790964100243330595187064431818219555715222618257796751851108473830035329775696950837142324929314378597071353535901584027066674009485832090979698490457014693852556234491161665075229870891863445292391953791203819009329363358494677094287754809598991884223128850105249295878428827922768296957687195290820609413080964713004996207041308678252496784526971510346550126958250677254694918534787614536510382914048264345108664817986896236500534430702133255943160675577125381096209212713850399170697750253720310328275705512820424678070749383331176457633777725030028140913591907396806533682750849489010117854013194812958766167792329973416182694132905584629088404828977699918890035069292174885196076955188683198423622822241983019080399383099164958236546048306667257343764137545226638494640968051959740384580015132736380634962682234198119111279132710519115617905080757419310672011264320117812596964012271833343780814933876931199253742393321531700565744973889722165556624679066004265463036304553501354450666045277467313450660611667268142789244446349073550607135233895858587297538370359121950008001988569685471666077811903654146084619197138094104933660181005965851302695396769690006251547263032132780902011969944768330620815895838613805712989267691993361007306936782218639199883073199999379741118809386488694757473028178527751631869148258019462716920752917151368355877756514038744184112910969295235305414453510141481948124728407025691403645877247369137149585054147491557436876616857616215225618769614655673670114140508861536524891302062408328364427054949076316069069492694814761598576738633380454645010698461283268671079033920534289540246591364170690277322417736003298886169740681746777454290098402362039182871049113652825299495261767861312454207041859804093712161914428625846254571706168047144701720401663641520211463126314395836339119911727800524362506882491093092070104573771575179937643661278495724080800813645068132448006586993428797276098405074326130232184506308432792391284346222900770238452170507615927140146755637092816881789539847666439565776120998433620636534108799172693888055402237450669777017300648596150408381889403253544318014929655053314643566799699986893696060059636153761197709069583660172129173126471334481360764610047617626302189016089904645312689649587200582014215228540004165611616142520627807793731890167175214547239274134335287261117026730695348747213800593936996901904261888327646705150525202462403821591281176967033246091085342869758842333584676718765915964109753208505107178065788307157059365657677797141310694879940108517328469871162888813038815232458416797810401414788416145201519697117324493860960243970346015001670305937532320076183489799146987511945001653842488216391974705996136830501448741551883858664536188153344288936231982609058586207634600841542633363963133554998566967612043828652369348843931910612968726653384455272873090125713938572105520432214241939077085239800384531606736305976497572866643978223840170448947709476999539730559057150371363544196287657194604112189026052778968581862759129254453526696370474723148393816215928390972122505624355517139520576494390182978724783437188911430245673600478281844281256159655029193474181393211148659204613197279819546292010526159737072635519962958164045104469970111986464388587814334957288234880496444248876524006218568094352237711739985365515756702123711002050281412588410966281065401960862969935186439613665026563516662931428549093166118273153023647705423579443326851356086118487840807608791686060744569110886958901427274104314081151750965499561789884099547966813123677078468471099516910133180868764685787054621432682533405219539501150063760030664310634753664630843463538160001797287134729709573136817980924612901491746709451995740341768358432622646365809931366147231062153344508610367921354504903657156448452735648382235027185131633243950984178136171228348060227441964861765388408141106696099376506166818765319331628738139217544678217588162896688179568750818168002425030496611908188544028213215366902319014386147475780987545740009830232208061017151645848950529912993324546293353310563495208901829798393783107239608176326326272319531720662004974275993986171166408757184389696593967400563873996947845717061435410385680777768631004114864018113227367485372919383638693489951899824397523574696492518231764236171238425741244670170989039337773129080369195109403608319059748478622803939414565071883019824261270265031123971425325217953516839137353973130527370670503940232579827968926048319606824085930778030773855844774306034959503143653970406274792749460369856470347572212535006323018615461371461859804685375132386473408377400383595993765214753356857954278288553090137818569046312069693911819560882057284804079095127692681879618873164007114653204585925284278802278717107281641221643514348675023936612834719138801789829227225287192781562213844665472992815467168708011926036981272980021046674371858648961682385948860783487865000701640601913168033068771154268938934797335608002938483336435133053412904656236417446439597097727739404827771177329318917762903779876897226977748592211959945033793939807316578939456797617605037066492531227854003534452576795784297759829411315852372483530284378541211412163474101065918754828623171696487280820201620602842802211718192063509128374812870519896487839256114696500264383168034583449686210376240142223033573911192974544331589047530930401399279424717000684695438526838913385051291595108360977924049254042706443409355381656379633525997194576621849323878120731013694033418589150201227774552430819046672168206620972055928260872703809560014481646375392487135946169330061058030803296264708419552286226018198990187387997847320531518422406501417263055089746617138702972876520392553875359172565213986161459127939438897085652693187852898817139810785569317547320212792240040815325119459211931878633617058392105540057380308837347462178999324567429313766717381654134473436094289819757085660635107109282859934090222775053928350741813243047452075503283289594377051571975087026063290116320261674885589609190905071689061974846533822196296496858043474972003543023437704177771624145020782878503059529906729592409622649945909183545847397424439779702878989759359265641028314509389747634291597656198506936222306484678572238751762536859122670082375374260179682039589765267794222872504746536359313071594871602525836950997932644564201047724254017883281420849432694275065598240200927444549059766544618487419354662620167926350895715770181551623541140327105753497654299740161423644531499370250001042224010031194936110421001076220395648967778001878606100348874848252824431107224743346037535655339482320677364724026413836482442294286257176456286610948008118280360827459350188176883970546307676438217625576427026054488751797079205841743676489403561383931439277156311842521974812392538094252818344877797513728424098391682871313336192397154360153344806166198042905116106959759149981131864505548429019663360610955813675668718226874283644279585600058949061361172246253027572880976538992746977931220191658624974247627122670432676485788491344500145919334790461299151178016898269327309451398379578507882585300921111032318254262773590783804568239697638124629717348370404866775925876195244274246962568378124824302952972141068727001840821394559435861612602311335942500376852243459479832290706443619289286739008840715089991076239430180677835162924065868850685538844115127572415544857743793872527634896118874090793345097329888733710488816972562786244957275577543094229449723441210499154008967093069640472339915382153727191615222401170678231771317615900059995113331009951641357635569027008719597217323441399627465452113066641384404046784650253268582513591755708177090560937466692013866278011604100464721267208347908029867050386139616469089628418898283665809750420208363112609565814311722402398806725251425158026300984503061281348528359421443251212200209535069893632511428874705644878233898726204360034818066712945336196344322161176181459146898864014484156879775246904825377576044347994598574006106392191391326528913697360514627600096178368113314469169265064476850766883774385742004801045397608628727257704483689869471113873262346377273399666748445644864092192946660281896636789642093099435194765394822248730626473722987983767914005076016962859489451375401331790640414900216373206978223611050903984702871889597977256961451332513883237113182200518223597923601763459888881239439159449849985602518030039898762647197566783868165136548539608802585506651332250246089120116060138607542347181888439074943975076375336105292875589294274776118488356602003827003638971654323040010947491139216845438336186764760689501977032611321103328640350731226830677144718812732149568818484822367428656118818712417106556799414816696858394321079086417926423477697516699067320585872780710672406025300546388826443508773333235776466144982776619818914400163478466420948114840152273584321754275602049181912973601899359084587854845594741794354356074296511634150768351768229025159638257789168236083977422940809322069768490246828884401984173785052875436273916811557095525318246765226491979517329912741772765721383098703394504668031638903372806301286178116240398617742427995593087856939721311502261048622785494331398326965912111612046122778943095320955606711200630742219138404664825225064270305897808833557566883082823988734725118781570025021973827949245021230970426594463740544515399127159293643632756423952285367315333771805151582760773792056988727647861390014721795685772022507384030303926882433096816042536688744104249881872498746987049003189169248292028346674255317750434356743448097266918621595318387355973971882105019938397042482841659775965363939153436012831293833118070079281752196126150976532287015171704873045592812101935029605912195243146515652809600643779376602524244332244690445773375719087418268488281034989636062701922337562983146439920480534428299022045024492910741686813031508515423053851402127497645220679502842997546100418542830830834199861584908923638854304753744085594830060685616361926421628829268079647893386949250840028914706246370396402581804339500846720432067366443553399857341618870173464530065440328512293617692201238428888448702490560672799068985239746915552087083273534629336726533135712015252985972217010138322456826769418025718567355104335519685268064170184108936058907361336245002731073727048785154596339026647679177794212215037859389902454189250133670424306353792001227892280102235488554288194960095338049000119979784302985164405294580105200672049211605459717769750382853299883268019348573258046279885016010713867774208594134320707343513064742370946693803953635716890415761591002030077962754829689154347594912083781313392682783293924595763916322709409978009077944008138475900566899636763482366816769711301387700309359814814386538403903139793994470378211741378383689684486419482406638304297121197728082825666478963031396872592378436777306895323408894781083295139929254760879051695364432446423516010256633349110341222414270927145436915140587909832380755424845619036087523017046782924224928782200630679942660159057924783195225553574308042537147141842375201325785038750692210326062472075995323566348926828357200712463091408337289427298232652536332892941120638058142059417520386238499483774266422264004783930717448959380862912995418636283030848074470577560125615276110032688957841936381765269080801437256429677411319262933177548640809691224853927309016986692589645355241973879902835173076942054588976041049970040093671875786265399936742040300190736788685382156785904192812426482567914806638335659336506041651553989712306557207939451359347183452034549375756782536189405309977873142105534061291253721817851736425286240256612579973409943264791485736898584981584766595064477805762140979321509949303796266197450089061791283413082319589507018986549470169768021463373194889901890838076632746629471339464374558306112574924256000938506416875994047375769640903380366153340294467863912834640122167341289046790921547201844153109473360636639697802289112052813730634585064070779379211832859346013010943428684430045123371028056820743513027788242494200813853505667795043323280555674328803165012493557028308143361666935737774655716015306071288659313132077937033529585944520080998581100189764641436418136122688932746145396928678792691448235230128665314781577827704296827230453819511175089771285358478841225665481050508210188501635787243824537733557588428933813893364204243612631434654963998705148006512904156932008819082460971594365072398998117682434989707211733084867312573699271496880374675342856246230080572949019950119176310565429467394953971689159623331316882702362945335422358877092722093450573083572112062427361942765322441624856652477876739036034269605538935291563654486040680447291979645170539832215601622838357977414039404140044224244322202844231935916156718002647491036650963294056834641485246911874112294372470274964274194378202901335491097498523572730382643293185619134155701651775802199757750997770444245799125831636618380558120189524171264115887241834388202429086152840376906176955639617023852220710478828629934691520165633318581498846998429580424744129427969909394363229274963616039681069578831999776422381671987406815869627003934535243443651929194728202593532382082214356363815291251157768809041260710365383333775567023537666706664875664403117258401914312686045747662714324628002014258734611177504222437697728120722974922644807801436466574472774246118593004236398497617132323851379890153183415685423366622718000701811340085483616167845209539680420523879259169449539299762671356577791605540331739652927861087398699900295413283939972805384836017876333537068962856008033731362826752234655601839784027491890587572245869021562901696742675730352477156422170662878397300183118084237686976148562296875187382011905303512595232074793315117881052132914455387520446353215975428629851910126846754233790659741828036915569164765261881013402232060614284673693034108337290616438132117213468126431560190589377673195763540829195360080503408324718214941557938876161172109782739475621436654166989153753902764115585643093627469452402328660129647684174873845391228199928196383423320075822775484899438240520605510425262123217562553697688084965511647810817181132853784408851773153832415139265343723086576083324615716305432977687013744104907635286880933359181227607601870891690128128490222296966402728191741882527141443449651318107227728118712393689232436745930763217783815747597251603918442963313422695354292735254800689633050602455995013867026786822421208880825435242275052540787902150085648125844877066096856075534689667148925744459713370402886945830375013584263256404323121265560430764318506568882780348593176700418718443519414271326656238593535386405439941762369722845009574830596900936404441096658847007930642279740988025118312407919402470289400657678161213276450392634342556045282841608300781120941773117738692437798325749791681082997007179032832512114515302366360078154695798302432053455424446619162237464210719021696841231824157849539660308114414308871010563750048421975305630708237943732703792282309405909641734332343845779742466733288330652800880718039804684042153242036163002290331540306874267375505455035040384759071644220060303966883393562074829778419483685078923534169568068134406340434387277612155696325450399613204992118272834471747210924274542770962793772716880476514022901664232462656110649664841983072478850991679439320518618354440460977831369860803588084633599974601100403022504232716443408673889140857261219047753022308248381153325091567944317472153276227225101806988166559968841063681302387231583101318226107998775348842734531592070315172656804058930159400706973790633941501825955041199062471671119367972201411745074504446739718657968462033840045878977645820852356657756936636549843011400742439300671956999152387710454983184962134819509564261604136421328250406795482960718393369581387714307818702297963272127007805656506457499685999929476118769013707372753792172639308365293490553204051443428382078155743807363342393440793787667605863623049874805715244519420771775801135978167176419943046515590298432392342952435493225671028762366345668229367080526704763861179879572903403661214714760005925263218691639943113107318302872660983462618074143287053411896842220854963215904071241472203724926036658708795638594020106632253603198309663051363370012904985003090429592902592166897205354542989095262977168965024788022118497608432325122272430332938662154015262359313656505020730843854908248028267852321531446334182648075182646419836204861263813842739204634712716083257159557586742372739865728114736766186818414887859050763396060415936180276127333786801147036334037927124461821723517312170331017440928891370519070797017471655797523136359742316808807856369184097366511303818172467350270157060307327001293126539114469286796100152055260972633991365505019179672528382904114270327578294910687255428014781844016886020944619574481974586187435492837724224411296270612150160296381354814511698062679859788177705139450833026944158659538197859161558172606193189115135765634893420406266653282480866102715784700414240116624868366617637439987082672535874599002819660997167464630318316686734821749261458573053538924268159200211070663706702629168566351471786914326480370329150353633724129034471291249443656030069453081907749162531840771964471784867045856975632435410951218748605950306917129827163937920337025697536508773105809889840518149532807120421036574178221381394935991775206697605717274127823307223054816047706463691444234578662515110903451094371932603544242064771127282947084167456221036663588061715579559746931736235556103231113863270500564458410181566950268928404279089348342473101707102820226983921680476581599488935645448801010885854595346078408726830600729503386782783551934333331137492279552178670193943148347877320764340494332544089513416583364492695023633008697893439508601577260663224300031208955238045040830442170738678850161858751914255900238983270341854561500502470834331712517127720348321953246756485482419638728140892475296887172342801657389202173702501182756592873105594786837276560931253680111644901485886985124495277869483714533971132341015662620412220421480267824247940162021829432104681983917989117959638491057847036419693967827228670916732751790493945577799291201907570680227105310211573415491172868559882301146910953324852716926885479024094465014734493086147471532480738152677277954682032424122630783086501171235242883476116301245250838646968977529582644708292260508528432635903657193299503928591896061373078272997145161462976743904092205456431316718523827767121223988575455048720048456571108004082232318906058206242303294410581908502637940945816493788297279434587411369802902181729801759751969938696836681603530319698922034877107397802518012114175205257126120845701211722078431783785451337787717434328639689698370549721884935252895709383022471704766185760949944410113470346158521927356851667063488329215315187663215876180127328314926940401627803510663418435853892173999807430700954855037633843195529546956972606058515178163599741056016753091217492527431243926050494164246111065972926688090095769308604856819803353404398203268155316936404166176662721255967645328518324349697844133288050683774509941855433306447242835395096772128077504372416160926616421144633213946862011436918154053724279125519667734025987511520274257188951119609084692040845627893006620718205311339238366989472881783495711116273455842901279443451317715914815316525070230526284255546505977709924040210004363467376591143399353785129955204977210224828034161406046579861451169686278571927845487647423901035691728920408586284879920110058081554028251396410823210982775782600613127992406619906124783843054227266657045002253418783797934480754617223612770949958548710182511242165725379016134563379215103544459074919233584726919679797942211305771904959007008608961413743050896207010344403515511114036971839342225687241176297657694206979143135339977792094791190035502952319102519693995092128945934825748669465183936816448259240078785293824631807039952399281588916401531594594656342680182684417195650800185612589041383103306925959719828165763421134715800682982749184488404347863607015120139465386584274892266929040739093596965663141199614448407161695087679330153716034902201720064643246164161573707409950189958037489833601491722714318031416667102252593793957388157805554962904660393173740251433497615348542322903148149360534223001812323855653301601939068580457166937347221102388067252273746219405425076245247613709097018584452750952276476580545795988347723610438455851196252578808863953905428655304554837105858382692793970964134874581287102964798255928274295764552136598391401693975549190569025297911405289251050087948556792003035229469603251762225272992194997388739946212536962242909851656255615103789463989369519118254845853764128999386967509131946754616862933037897227598081396350431356245765369640995579439908914668657094740978196218514863577006547652676085679121669721175183786613948227746989994863523763885065941709308515829130053948614668491296834137181478687324206736370396826025738737653640863745797962323266902649001920853341371837010791007650630690204556813171379177948748339269854546460716025382137812447263301139260221313278779634006394228017184456380908398559578200854717166043639023454467779944901997963918164750984222387399581446044075499078992199596677947581553602345679752527518766946967186468525161723952899889238723523902867520664493002797493416414426888779495563206076277509104096341272932672788255182252185270429578314924790483750776912515493450077574141624995379795021997091864462626212250787744976728326574666933483222505461019375802312827153521924985921476561928478966107534709797987462457740481516917619339301546240647005694222820791264716748883980894549094374439892954758190113926930403920934031607574835584217101930290656201290244674765031418532145574403560810748394311079805360297298106319111987758426598668508903955911726784121197339893570290934776662124312461949252753975132696471583652432769641299231273808958037444411546213726237975834037033050726034971680315643124054875135992331526385207755430734407964095038842510512850646261751818191633119242318411105090055227567894283453670993983336025206499072344866365879670904358194557196850927112992002917420369709357801474961297534001705589076672967203115409134882985285914023757308020151054114588628770157345719819022496132844864150484780452624556212993370985745383663085491896649389103791846919084181131772204351770879533868689388924377945574339470788138012364613002226965400384016453101669442444632497241957059434935220396035713049058360284747710076944356085951612081784826749577961871949868835769979409705057393040537281671447928323330572761807840006547136064388569948829405815177705396862032140390610559518610950085502331542591828110148416818108068330966059724786055691377632838304881128940658526398303955402466968493251599459994031148609303947505913782000310045314153428782722579408139357794436009795278318093819647881650622859457207344704268738721356025216744496799222172904191208498669425703376526069531545500656589719937047965442814075282409302497503741673803530730268526630211299569714814774822340101578375253398215076550671106202426041341900869250507308574595838956261284051073056569885468062629735836976885964682190259774394668256819789840398717382095213146354336521184264651040342320446607851873453260167118498855249107826407787076022103500166337880859376568531529701243711445675051023577509495983756436368212200574673575327231811698878295494086131455577615033876721626750315735533622361325634440433845648895040765674678051175958030815642453063237305992914122147402359839502968958568063858449726946306773134949079457956559643547427805887606986637025264963124669948066468800002644266417127391230446837735026970219101725514311709619955651579113977796986082121858765093000639082120468380275609056527136141068742745220867958027696835680708072916113020483807509597068506365411211352014552180569541141518058300236814050271061657107052972821606489718468928328653049989592300427689938033976669851248154384990852959066299144550937139856919930175439923990047251180939013283885277339432842098778025102320806738814076288250271899853179651069322988279179689206047902340019721483675734770601280259991379468564255775545666699040089498076527643024546790256165916084902396671613542080781564879317185167354137222022335181578136196213532230133292319642755552915890432422300366128177262700216706718227224945309468442828235181218854557781987402726469821976439833777033909436743070817959169148749083260124714408389637228914783938571022741860631872325182745717201214071126182916382246263282090383849305083944260080419855038818195644174289963478311207452749178950996744667801258143196300943853190752818091901405989425507820822309884644418517978516026974560671595983878518293252779894682631701732527625760145938933266112318762914082407721555212248150427021140412604990867754266430865263998224105696843446519012708247366294814986265204650526114860835460603581909107080929648741308589707764914169690807161614517999556526382064568329560772198810650758686114898015917636082445042137476022252655418439337182678025190124496102937198085091173064207984402836195568031158613122948558519590603669033874902956716959832547120417200974591211886775560130463823813295927455416694166638256853889902936222299804393944088324510264888765548659907267407236310128518614484338511463541405431741940135865445649210186009307269550300194078062693761625944749466683601825284095348225323811606780046807609570605821144084358434302203922333561578469340932492802975395501899497087704509988158526424062475009577776563490657354857689766646809090755149588144527253050920715235095715720786663147970588347695235262055438822038997151157421729953723851955457608721878305133822016861047547268191086463394945653456175519714622379267122979891370897479369509336046830715848511265568343901630601869369532943507501117260673344285531146272467628217393766082591761036853607455649998567844933501453315933553488186788008076658097092468221703198717257683222865568099718222746164470259369730028219049968192610704089347331913900878163337529187720255111960497663622214102746433931624921541202913665463026659412646014536900462945767352342483995133298145781572832713275033029519395835687666187854659766267002321367147254597107648686448797271796966234632871484097930492157183708977901678081514804834691356686556362290732361952941311504743635781147030340832557077167237115761346857058849870546709390498650857022847222584942353441170502575714338789384137562310590446768979997608808187881748317771127291339770189277040883923954118356090370160772308051306538481322508865093903544379623012252430409167081292495903276590634758300335603505904215921377032766191313169676180787121279731857682580200451294225915736436878260519574486692739465676262466919632067850953951656554196767655893600990276356648651198960637366240593803269942583296226387721892956920410328351305657346449053490186919025451152045154517944762580220282293910619928465178379610119238624148432726621492316360188178374126496142069186511981407750703456779722643496387787571766819487369883450142125107190904619900595019586123157352186310201890191350138148873962141073961302014413374211053823538986449307662219601849945956542433728711898081752716276174929416540581591407299093228618422446265665340556037663935578272286374787208657324782172663184485265409832620802866916757814325032516615824882293709188333005908414391817132633880228276010890590610620496215914435309941473035636151093840190430613228636860757615877241771546083220300855792589551017187227871609823077641389115536470078245924664183204888726294497221274642169596907611492509385513523678420395913518244954841116546751201353699230975850624132651442353564305506535000773619844339243792995563627506692926535669814666592544837821817789348471816966064144732301451973761072320095276935730983587039655471373907754979047780198081666573063878519222403944448137498409634972711239781673848886442020601717028906666610778878452010661686980662267149678385391122461020227732953812953972068590913093489502577137981810778196354746058891639686974750366663017115748995625039769308500503937817772151591262326611030604250838818329124292182210009959813808500878016429966454331418501293877484224051395707442646458760415850792457928381809298827139901382216359195089416533352923968977042669814283850437928103566175797513502273442425559157393311004799054011330734033420677496503134186322634522197956807916912669480700991185483628570086345909342431756068948374681499594026479783805516872892463616563869096599544890217496962415224953782910796240745540564695241983260729064771048168782280678335671231194457986178049563828390034737596292155400848779333725083494188882578017827687177620902185357732733172734122771614542674600948594115366994472396192917363997582413308066533375265320784576707673043082254177675403658424388401438087660174109916317250740944533946620550967990736454493913878543177020956208909004027020432778242160194749999351510666125947502587753086663431707514678878784622246510083076166910790433513750958048542002106054119705669371105003824330598707348647359578479325969330873832415475914411330953320066452775451752548867108008562059296054679243291388459504032574598233219558334523533545441976195637109027156310580455132598132457575927801460270917339359291293030903947598563084213032696681785824357940027232691010139579053477130192157924547795153361488681297351124935908016637614841694934469294597331162328438109615224777216680600260546456722862229442469254444520600886825570402537131672967614241212934831626595737201121862574467976051311658162556585143732431213548107749648736141077520240811018645754150931384422169265913020567416098824322407181848830857834629056046417139902412550457695311517037134460912046666419877976437851081292528828943435344953248962223012080650646957458648422723886619175038520842800189520868196322058060015866120639142446790424904850284139936197148564097710746139994716579469868309983702754047163868774028066148191239148824730690273486480587412472410174782626635195606629288600960649653170966083125878594096202310651967310359888277783970487172850565444569444189203486403591428304656804784873614267048785851865998334997239894625628207796388767549086676090641548901840789724835953305480863331778597211618377206943903367421331464152967814354746810080056409029036794446780940108391747254830009754859020490357690921618548251262571835829147276579807817155562391825706439593403543819429241895163643742263250623577926454559476981290917794858465830333084083735653055489198847122538470924270224761136217969388385263802826472441716199077783706516373905845136179444344336987516358622115639922518313491671691687617204687944129887936657785938880574040543364181863221189655664399302641967519927614361408140485296533920366124393295536605820074570157821286652939335552786017436125923970129501341700272167041122491431617477722097017099601947020269936110447526867938344535243166659825222345525886916473145929978714023189413193456797128403634636942455547980194084540297008765517261006310408615580548056203664130186197279137470371720425215589679206360795682023161409200815408492775443928757168753644099954081555307116672281203445235411717731019843068424582268049618723321813935942086105041635413172969502551678415804113986466312863571657978992628827366710314187462593133614038959585990011986869231735780557839372556735931614993409732997423220904793262968166599679703891333774669342257306286375958920141164447993620995368841240601758590691067329608273063978789514091526092527930003419912700623610654045099217013224715938044512835397260994053844879846315242963400862179099897590201595854942453686801397901077033590815453772005129126882110596006416377040636996176589035587905369890047580141311859698199607008043013036320642142884439298266626424782507875116817632398974731708031011706854587568701652342409345777946647152449600389689032811065651676160150271793202591874729293247999041938670546199786105672791678158885488303483605713907286417830222353868125215365838844085814688643039967566335372617559003229580419935437913849047731040770274183554337733544342385790541395416613188408194643879930615538533481236425198013147038752450563688684726055597897440341587816598434546853491865355894473049373287267549872595004923640593933122715828541924954218424220312527590250427015614910259822914032711881576718650685230123074005292300255272839255948906657000074031779739525767237206549420501275165667248836302151710245452162918489975961122163118675003093676117482146330994432210899115515933628673464586219515547667658036962530243616409316801116492654306524929327037791355873848839715916871288653170988561648930762719467701511647139701573891130112343428755584583138142097414907765669513394100720433989779565719115024026008466207883868831209121674207211339876206182650715300541105652169569156798298344655623801122148646705588400444022045920268883666190910987697185151914537835475570008874945473483992365483950835053519259633496524351774809458249695792059845112286507105598024230778565685718641009056906765960469592168338081574595127950932700320104429181182320308716016105613686372538574030488923631055326911153515955175489138017913410614088104311208181111546753730786544468388600980353530070395728967373762604153680425407541718427642877207215990006280490877775971755859159108034566682251485911538256296640279920922606698479564894134260994655762683291065355892726809143921452857433724076118230099746928319826391306525175082327383411385060558844801955322790896314305412289727211666508220956452777207299280589586433524654333530565734490176410936177897265790568912114699474418337686832950041905543213196386962157761199575066360455487650464388530136966302583508433165856614850154259183933605845631352471547268605877926332858392142853487725505881183630182255016564073445770919425750350269822438391984594877625285746505389245939315175235106298820134168687118080783687162279791048401763605819596448078811755970821983194867895060821844089269268209922434581129944522173054960563631600120164983109359306261275984238583530554642601926289309822815018404541040532028618303391198188948075064430959211625657685787261558481084590897417500226482678908936697855334050829832751290501127587699405818561723822076827531904548937132733528943668802207813102472591974829352881243202007578413775932869860223172415477181099281725477143915654543730617099495420962977142413010003173675128678144149464518647359272741344425407362249829286197702528119555155267877366189031385746907345677196424721495754938662618308189111444838208727882762801839572822660955766735525321430733291825409669442675379971739178920796243937490943538996806555258535622115340725326655705243548095011231259709944282087553000989923619172417904495755009364787994713112483643226210565229255937614299594518699905202603355309280249362161614915132427179267993820257539027461323373891358030015791767411837151911779746675629387390822175677260489025064567884892451446313927990435376072559646877254435356954361825897534680316789946137101979156476879657843686893969347583603324166836884745415659935656234066269022088741939640890138650017628627102738233083010550440767578858871590837322706170527144992444309502339957070552062624355655097257928749006980776636708772561271082090211870687717062354303752953104535438161699998015846518686780660223759351206790313431283453125590168436133822023995805839813809448994137756423895708279195565473220660278734325993943264892703071342309945145493637092663784032115619092075851859261220126523067719480802830860349126440675997499053622061856682368224275556530673586510982481696825583885735481559861821810211867614564122345985086931104335981816991467464408498880581940517749921087367446954112534964482736936114854575788612747145475198581928712505702498403203782059612935110312065632638408982341452382652367646347245691105658123460640876283690427893809773187896661216713240857190274800327070190534193549428834975845092182759770461767330116267645734092175819657867005387769766200291755725597496777311705000630687695183140196655050447268630227390161378172182423606241616215820542420554971834799065075643999817283205295644615809741766068903738735087403929110725931920491419726298682029373118966077924762280733723951241272344412806923518009473013015594419772052365462670541481681710663740082573378500434628978103210070364708766847702658286907463197667381229254735723425248961657270190503878207078246685497332163646560203012135170862027973615823075227385583547150588702935633891633548232572470234167029802166565910666654522768527740378671271598196673521387854388816603879955754588695655051976593341350934839294765584561930861515633836546361321173319232855083972536695509968696336391110377447781669035649900332096512927446732839603487942811065578523719743525481929445976884696986363303544691989248589145834421763251890822758789160471052828895085138357555497856877792173427629882052678433260559044866227431680414474030956187878906273230525795154086849921714777598873253509167799155939096477507818631611028561195138829773582969975158959998319099504626014771296733523746747292290405575681996052149384640088213560857382189699107902141882016634993648487661882408448545034961757896229168517061048601147526608684772206183010136209109754583759790946683622514570849889835806823431751153542268282480790961540402724765634437095103265553759378446210279651877598717314576158255768311588723457205510734606300026621437039099881424442294901152798260247019538616527247452818897026365656765984025527843502905730472839420961333774316610288902449464421132825098166746890266431014428736601830046702166678333184988745833561148652738989907187905099085080939619370704120427759892486679428959522949867075882255273690101063965791849746456081942528904706696870850720371124215984245114172841843449045795491868262424229289670466527678315079511497583437085549977861444832028614216781565289232754387892964262379332279720698483615896879906528265005985007771330319698169511829190141491471808837348228921555353215854822909633458595271741702159324901143470915298659644173044725691438734527166453054009603159479680979570531785467890262178698091495129360209076523514399973447911377126723399793202108117119956668993577338471854998381724476636347851381343956468473415805192753574176913409734569972231763827678568663585392478282922714494398392495894980193108605482885828052291259450909771528716915313165110200699564873784269204847119155177963300865604233601289710973315599924065977701213892502634657428006960709633056497439985587956888993953726965287429259272206226749991481433002475607916830291274424588605612965446624100150107584592229083678660201414916677200448927882301863980657242990401999530968964897558140051981299708636725021467145363929192816756561418682625326916956638985845549293099942061649433994209594429265281793309521581626470283768724772189642298943276082910264362350581268026744548527084204647001724310474072621601585410666644506935843393955425461153899777958659929586923203327401593650183661371960703043990821553506706744787717212056799021871099959466032564334798645592830350714255904299668806092038184418553476638594353895412030335300093967020291726566090404434496543813632948056806140459807920488640606128697080726705099496157991435644850073379406591306509904593890655260459218014124419288321919875489445959317788605501295307391988533670255969427603811535842717475529065061139510438261707123776123717296581417097347480552069607752084925965739093078547129247982042254295331418820021781796962611565186051001273111387608638383630964217221860629232739116574378825675597592223774083212449991506518949413466901332473307110488272625341055165090958997371591430124320834131918876711285200747900376970175720462430978115160645269121687508316924294091110930197972758755952322769715066558426232338354691297846821402155297502533800219575935688687128892710503648218376712001253747747513771338567836832190260703745940497645013106425621220322841336843431563854724294763157310116499993836542040368896225198890552763371924823017557359320048305686480854844330118090067120846240205482257549825937610401983391879251979816539991202271536552478765580727673702841727594660200498319487452947370372217517112495045263535155678062069833151574739084211635953636392573555664430906958837554983680829901087973493233932007330554770003979368255610449147440751031405422010453654026749382109690062804839352037063849836114700912865085550167404524941033414219319714377524968145086110016217857004554614812264116350248018652018015928515653371855396804735782686319755742392223226448369854827690010527129491190874333305408358595529024989908923943486373327955778166382343121458890853877040057946856844322657740838080570859838235862441244738690375833501442660880825649201720079821336886575599307245399225277124493796748444986057252839569055237031113532520983134421035259616009482271628437576988120615363884783777808114786062109726688463711759307994099592175694968116980435489254153115031084142489921958853738264898368302467131095747572965818387598203333065525660466319841234505518972102137358732263825192308134353791451365959998381753418836903157551184221871144597396650858869198500082046538949897333145200707091894418143791067594064512622978036613605495605195650572936501124206071101631549219900491399984706299849084313502076875016167619399187833207789056603914385223157407550478627432398101993508629849311576902397406689870030437245813107357557345202251291062469131306197907786891215233331194636889081169960561839541398230738073657529636198229896524454506455859178497800516590548036255172292414452133537636514812814569561921314854984172362948986542389011078862211431657695952983663939821478489623720268872304383760957186296827019710383089937005637793605685205764345936241681160695475152923984436011187025778512780312303139756608400535363518370246549167427014631777126833567939598698469397849405504021812827547941319322627009319343956476251642737090729323141717052835943031829973712783190626892440426153370397052824142194931857188072982590588613633819300355585491437826826470542869252307795637184073902299469159178037510520084801802853789444536458962700063624751054195851566895571955470302234857684386051100906214134887739305807883355202756804924551183356920881497993702370259174357420574882474885485626939237290729250678658411602052238842270953673448215017158092770878797314349848368100007902673886641349129253790328610807211804493114408132745793519541801943329469397285583277354309734983555081232443668207901695094566136666564277343096485915312316219469541963003533219717839058157959596478399627080021613847438036118459006755800871982451094237965522624007047968826044612781748927382581780059893223232990616060301416527019286417864729136459502238473712520889752596635080276942690952114957704408079576015118343495056005253752123334176108111889490940359013842053736923151540788483351231399765802960235708258528715524436704805450590814945916058932015981605866078262584064064655116916959686227741354904276255262873330956002212637566076279672757388399693663575622504725177904056696007374966693566645694744303148122920278487080164751235243332121923408118131363349078234360095821466499235660920186196159060721504927386172559677179295453611756233409862501000900561383670468952022703008102556921028985809454239795779390126304965634443366825040493090115596229130010623511755879898058502629470085324598704179736785706837696469344631981615413395655823230459064806541614211803219140308010603975643343478583636717631684109317575435731937499051460596546198270520159896011891806527982888975131348106846594325568178139099687306095752547898688877605203071690481575905455231601716416319185625123949368631405395006649360213725778020722866112114902477360154569881341711897500536966255145756089720932669604739434027051781401284004975782011243701729336255627251177765633086708809369244901045531483462066765146080961717808745716061002790324336841854383614577716796154689837405901157998444149305941100669113806379969937685657553820292811857105782881836818513890322778280853092532698067019346040644058868644853964799787320730144831544191266841845419107704188272803631971196292531162759000348568628020731410912906389346933216422659639429184652134657623524007502943952267662143749310836168224513315929643746472282276487435761598439926602981785068082651437793168274996322237477109443813286150788263555447642626748760930331348193779282220892180954521063524676576088173282057884901653404674577820708438016040303458943821404535030235738989206709657005887879348977373253726907035371261338119579777122122903850778497153905293132571312637780202624549202105128702019941653844494195772151279017620215922275392150658641512862223698534179275399708312700602519126583735733803039785270644015676402124274929430701647941458958224722334245417735461322379813356857426095661241250073146854721523193355814225667680956702537330683585379406254287865522352337792317003782688560766436355990119251268889840331092887225060296223740102433536425993310773845578864131049112753841906581184020985940184455271767040920180985915537733071534659013470026693197023210167997652119608525789035503292379120058988638366034016085665878504427459195052638871025219746651313260992982140511466920177027382183959708496988809813729199403912035179462588075895600046157537478149651626658737344785121906355062899442067561377927529599940727789115559264086217533047914974329298081950683949616681514072812602430454069286335747337602572495024328069728639905090511202004402937348023637480241903996698827823029661794922117112129121430441189216952139837902860174192334450786050705391427328739743980622842883127536784534759992337779525021115345293618244557750680255211195001595672906889258601282268483053788249133389252821860014353233589486964526638360930982554296698981395464904772544237631994165069184616699438121396826561236092278880197235988617448703238122483972576068260756243376590331923159299521555621806846948080841310732518675481691914665453259985186086711798251890673289840091358257114423951346364266824185210031604287293724099702611256338344906767005145946856428429743326994672448978203465517461723981914853925520741457844570541686050651737610970275452326626975183955403736946521972599033036963317570550535047317055984820938883209539024994108329392633446874899296511035573512411343880863903617077328022250222754940361706624204061603033543626719502360515771425659325465471356151378002960187721974675197558850494257242867337161392320127082501210064297747919506296125766123495633119076002936129982435633329452709561337102453715603995118289698961014192676820536137708411597346428150322108161915211947718010679152725774531310966170151786050539141470219334681046628933465510226823674859217551067993387065820538404682098066306729225357556380803724742307073678847266133236845311847313278260156009606832883236447830543099582543677369140391953191580648104910528989957365621447479669544511745510337249148588907858698646380423702121988048369591205822841582747231716304464462316230542169039511557041337178532258036611384238547401482964115433242782314611423525231927199929477416602426606553279309676063312645955862264760654349447978383077055699897128307549073459238108881227613533403488580884192444955461540742043360995624459660822654752808649630341585433928589913066601101321819079864982708889151707054612789855698234606776041995820166114136980131899070926046718067820872620134656964123031086979840161857673928982576827931523513866049398132393950458553045133045434132523136850948241191885229122484506921050084473953509510461588986313009736816218258444312170300084095354722734115892368334611928063889090284035466165747803620905384654120500961676993436388692093419716863919137326108612570596963831056709037347286294992036414607230582052438732421616693271431594110743104440756801363534563398516308686804735970686593400077534748056736937965210619558917363853684930101033120972615830264991628113218842586991183872220327771121537917275547390948594138773054974795715195451547195537787425110414227047980951653793892859308797085889191306773207371319664188631376785773101814162714333243850327962587791067528558177808005905617316607924220009210289984823926619005808721867014397798607765606179141910656396545244621036547100178339098957989220567181465203139451530159524124500433486844661975750593637581677678123559269268130235706670750044932917454114295646744967020870149487826962028369612928130126465776043081531116055751767613788205559295061070606119805223438113863827263274587817525847206961742788609944596491485209976043242844381883863513456247831195737764499898282256798532488281281813594941243282046669211369860844293392422476168407938327539777549249464546932496507145311348759031739797958412277651530770065258797492980226658682468972103151874061558467754824244153062964432386416682004646511000612569975884438295695762747320326221453856589026337168637208701924145695704683825259535132656107418759856858081565315768357416679530657714663428890155725202413927438324975762793835377407700350652194664652208531292871595154900534767161427324862389516650174237899609265053251722391709244759694430568594005452235352360116556135135358822294612499195262152852551917896784701937143880362091455568664222303761041912475333441410138950932440615196511655888667451189987099770241116512261847485488851138794347156608712772687284674583622760121587874963893636100630741607437220640807664400392650991871294468441485689537449280219021656707327394863052384833945724939437803680152241222545626123920076601608288866147266875273125049461140021713129211062101582641418168341429338293590613634358328440740006646616829590105741906600410993952196364846595715354204526900508858772080811372448268855441357464765253896714138060386261392787049226575974106252503505557977627248253267589847322624777280334364637176474418113594123527183679802647667177118834609356989312573558912343447140186548019499927500813018984120912484701846267117090338109612170750785759000446260860399152226539615643110220292822159278331915979020896398579423638205384180039327929499307847786082985179057177239387815114601926925331901802092341580582219433962389875221922701315922771756852894783991032971222179687632670045302422812840762640972494234690772016262774482841576002905283728473612814337407979409717207151896764294991482010358334277566208537009858891940997108694393509719912528769850181839632012381025653931715648398443617126985291516700138924002204870654073927056874562350828947588884465377997080794042022060502161856382900915065548043512373904639938054559462240766430376907891654249651102408239791051461041471895865698746120622771819024190709822149120163840333067227663948579802783092287001668160699776958607112135207671176077753020314247597247875339693779847051498150013101679372780966986184223261896738990705402012629010647888109892598672629933543734685679550460867469503652989387597516450023387669000663083563621685378119750138524791978283297366708538945293416435074559423971100106363352620846921278403763160359840707530517690450057332839613735605597074340049806253222391925509324620968780450437161667745294189642123794848588468985993722404768300877424394501723871036961401702455210906864429302755086004311598769802185805360960081995970315620360970555528070885368448356386045209797520892549744564908581733939599295432155182491342108154172484247756501250499460358434824177066753779647857787547103080692631156986940013155821154782236255362556574125096233820547996519050531573976383491466933632744319557604191407914063799674827198267537064623702068342877857438634398474734647234218071858029066544871658531182807060717121092852026496090060757812535497425301659189472587687492122318339564441231542383374807244700464583543228270382152800158992182577573314665585846377536721235117550154158452164284310210519212779816320650735673877012357714260946765566337303878950493050614734361832378123901571909730820561775309269934166363075441363253008545904966418956545717465892271277517848385463817263932849215468975044876109724774372937216326027984662553922566391245220942246215453373721664400784721050909557856256731421207627469026807096224483571200891193914267847455372617432472460982411951667260949887478215095116773469712830262093491564273814652005600912443091965947387331901014546578108042633344490729820799344494644565884682130901903868021181036448482157474154520428935620382530103311918378483696314324709107969463323853024367901216227669985866733968407525523195427375718598790541991821618392330810535177819896739718392038827440306095424579999813819381513801790810291511404522011203781967217766089813042438233019309099097451120546244006361208790360777233604791545621789778360491475116595612062842081706616327500773415664743699867423621719836630130201305745758488738667675493457388485146494524093877426342076009864636301031144546147855948223578696677529680884403521378298866519052690105039050745883101806407199934741239087784804601053790750640125580179945981917546472165174232890288048298366363171144302974144794299726563054817959437621318456390340284860109750930276991258814482769244827121288761511934041234291728312671192469838684388070368266194237417554185695188441787730698708200590656824549964097310119335996490246771781382925095755494196027788429688114571437459445224348452811565454936478769747685720621794881301171947490319358957334505083781398993077999713979798691505437584786428143187219469884790829622944757274500494572634468612874985184907740002800578249135927331258617340773886091440596186161023221251508833244202137808762294386145310402959110926247422091437795058791058738603010162725521734718837237074759575163112833227344536831773165417457374819584266863355758530083857524544511624855764431424270683308778932298092143279659132756648667325448169805939147449674751649250522796466142085254895194680981214814910084627146857479633612189786707776670417582693871508170457258177977269569585272955864185509259316590737271068318793446320240802501064581873302497313340845743312629110484303705945831949727486149149487535516065544747625385045808561525305575599294836080087179310331569884842890467703844603550839244764115628492452942028507164675915286567355566813963411162597467941752852468287135046011937940249527828282979359260075984752955551682755308611690132154501376284102188544220915087428998580458988067423834966989949954292691560702692288788226272921910057710831026530351471508217194600647092890120477969435307762713812405206843453626939809756397101756717590948254030134035969385264084373831729951361362653107302827696659780393218647941124080914495315506281966056715065903897409614315212418743505755390333332574777206805962138406638325497656653162198124483846175759603009861634632084487495168464790176488451012512440538391314515947203333258195531082552243211805863325999136249351083917636620476225745417839238626644125241098561890166938327278522588384487018016613647344547974487359393718395049798742089928335730530355589541814494103508928428900467468763488614578075251163193610667483943169565623275311835072505238926492627649824628328637157320058775876042287751425301655836320969154425139537614661267374577539715258573930293802082272398577589609923185356969276546003856861080855405274933488258202042860279001666010611546325887549108923112497670530498372141852345331890656001151701037205829614328374700424648334724424916852184512371304982432833792844814033236497086673529276494298771191477652100467962573089613914281520988761910663351880264442247765430396770424524665249632784245372694406306765869083489802582806555772273902757548050447262547681478360892427326798363480506027894039740614780317374646517103513643120515563840045033438757263247463995483759564109055305338094594722905808231548869277887587661871143009763569055281722419566381699269902175435062551287016442225178384029747780792345110367159085197410054893600883749651083804810316500191509608728920033204097614085309801218454145003557068924270441777612569186909469155655321924350650562032097619575702165563758985189312549615129559960267170695902059524571083584418653891256710512947595034471412172999518751939091754926071535056510169334747526503255340576747824784535105006557932532153378410002020325417086141033171924474023519772557429145241891573050270038555830068861320211842623951535902575373276080787326221778438034643245367165413490311633215990384432473546769189290749878952169563288229217938388385632567803896316725265449065034156379398016942635365407071474648372266782320599515192763997478544558218402483837455733375474442472430418060556858980550289791222079226051230466540366789118555476998022991148517911728435982569532700280240673151865729296667709247482163641600580348703648935302644427203666285388266678682994447932941293964876780474899552206940612163949729056488580222535601193565886176157933172469553260620170885228939982222375784384013675641523604403309944128519166517927372040424185548737391802146747736936092086194026238755792872999284001457777384044188628915943195517475781799818917021885006546406877690864899399728382129389972279511037861150312956575330906576532655422430520727092338123903220765197153278688037793960276174221299544307975344453337557675560619332699057666095289854040902289806871563353601297523773806729653998028546758940117142773636498849773745855822767257457324234490678415214789989163840315508477984929538926807814588827970410053881653767579719646333024702884088500379744777903902556679531751724958449114598613535914114748648144045530934720398578804907331956201705158404636320632479255261840975432590353174367395781000720736683186504282401480819908075281308503400680100575184009262577595118675579080763503845849299313188188431175209556865001585500658912690387239089387651283707057768902363440161883495939918632970538211080147148761030332143829257095559538768849907579045639467985340686899080180783258804652506239304414801902163578940974146719162467900553343587591894163910097158536993659740543535400594438074651071585005506466686763849714016521115516749928610874712865642381673384336965148936054497302046743468258971381182984835773009367096024285470126206797447883193758399666050198268498265228840903397378269765194056814041096336666858624586290503757410520485013610214208534788606604435343525879808862636779069952246933467680394239259238998734599160031535756372364760075252764146983225506819754613333998055098514740320202294337040082633583656480148983676305805992231506443556292721623784589244859703112215497470516319244738317978013962505703983990262928348002718480648134799419867807665882782343517667199605243603134137070798252333149251312291470304844000017941346847975659767977613541764323634430742309660483308145198550346789387805579128946275186404466387864736077124606762644372428478108681716565638878917072026273257410056550659761465186264314031699436967661920691640894816760303046353898029659346330969048654464903964900974307491644321373726556410066609059949488284176661547429806902753332948003514695415010065271309911168082298668186076816805987414392845144796878719777613289028013351940296030623254238383648258779037693113562195951614070901300167466873838969741866072721898933602020148911955950816401784301817610743322756830733796300718326224090857366602810291559521477139605579408675394915504017750524008710053100409519874874603107447714704558145586854021403310547084535139135208401166084607807546933878668446189313522508249701316307772430084594004822589338213069743634447082534441959468306344641793764022368274414686965156057105034630436808184413243542523535917131512009329080838417074456321058104711166443802891560491604096309131111611325981237043237067716133371754723640902902950398874528403589069978328745305923360518726809603528080685583052438578282978967507913734720133179378872540546310702401678049189133902858186708089902025516042830613188381572046779646109363658600388393808210110242618938315420399726258535963958389510212957743761331047226635419741005480906658894869270288591180722530554993548505811980750466148439996516081777161324730085553715841397304052481195964967627267953478278457184882405409473281809484125043970056740354919533672182849544641166982650111581529821910088306394622399846460888374093674301162915897987602304329514168067621607309019626808623433198411962117034430849440272470124633600794869310933069640784123054855045366045689267200761629121731571147437206412741550047731374442823310989112835490064639581149426382297297537702917601245036683778839058758822475951360516116798499916333949516758994082088783124526110690294446781061595627475898292166422557855905545271266540885251748361894902038817223644033079389648144081028169257343676043547659589697824568087462489349184768351234922687301555443617029704887361914547225982677896301489154849009186788945175576721889111684411111118692311666919194037729316696701299938640703130800210247225486123136568627757238695449467552008600217133071790862929616305484000858029746573783921140043868783317008240447386464834917412354705149869174287837402806516391939522093310288508144323125401810581683069627430544272094613868978885938135378430634638608057423994548890288601622569388283897187707411590860476482041392041433703111482957712369488581088072269654674315432960667267406924296806793977698491403340361566468569941166493234926049014548250104723353261856494797276850435422961435133847053684814553230092134865846671607265330195975548836723298562371430774881522776475232003468300497314094981149892909142158442146903687480350804027496722435425773776014587874197639483876376690265889428145468321647837499680730005059814116094412531335215612436960062616262839610411248800388944785463068603333426379510249823383215513735054427116146986585545726831137823642480152429686546753686883332269364335614956683066462640462941173219865129250451529399781927201652699330695297423508284946468224076174591565628481115148051728653089010740773278547118225928369865734869280524542775117051464053552049689196396050937555705580483290382728845864879843678083400277564475614764888176241149951347084709847903931841195582758043669016595883117788280978661826128332812147263071123048482807593185826264444830126298487324812395570634209713582963153931481903076312622593837447232877402679837405108407609809642166708360651148838028332216310037837750183403232486707851108589778517907749983576016471434454267385652486852458251566451655595697029189197519028359482043760262840937221201124683722564399190549985325967296926136109345798387202816494579271447487409479877037070259388427976373559864967471116185814801924176734675697539285612244939284097499557356573170169292236710688352953301225347222384976859018501027581330917565221235049378253278052926187470933092881036687899138239828234447955001713327574862680410434347087320926097316840565210161331413700525733670297247652249943807452094839777534158106469342598589129181812470024971316120359489545428232491256072940380032675818569929702283160835973009394524258855652636567816726876514800639433808341547538891696401820470407841951947778902378215583847054310716310317638555225019889972884978539768626324109297093550985103708757356068341338287961439594897766573238127315837749738758206784604465549537548873962046458729272514527767950701910675441146273886395482500496269864720678602301228566447898096641729901305127918218801672140987664431170418560463034314308559537142010988370972518832095118037587915958366142936879877796511003887090913908759872495335205365187502154338865463299059635466078273315572106768464406291663278407615136985432742436057659254344015658426389277146207632295177318555470344670761491004452458051080437874512272108446448488418730525940357954820739305307212371198944633547059372997222870818282083791484848159085418372679866497708429198444638491838885552047736964281788342094180963839448343509884396868888569318048106591050315439639952247502106553144808884098124089534888805480738470499127063690805759655927871473010690159821301020305311176350120138480276616302722294026693247965584817818958000182148159580074542312707009055526630639188170134920029041194035849538098077787737870880338628135728623308804354553334481870037485987699629647240769052355097653999670053787866318472156810823437342168213633924213764592148182966627364544448936814600162568928154992560963938255330293498823895788238557636456680163905719029806497192921629408174575695308097544244709936942825369067207679220881271388543849453643540616836967933629641004256166698952588450130688453698775205024562193643156525768659289885672779622464768829395988037917226483365747485938820151164906036450262561173518308432379036031619915615802873757251460158260053497992425644794803409623014958781606271469655805700539608294424068925518989691204846116086801265073246062639602911554269889667446558534942538953243403346775390780046168498382758160484263061114030637124952148047425578570833467971373112420535310799101884685747755876595029862862036996168558304091762166295264905610664883995005960324628628605005381386346426037296566599070502356549024714117803554281107433238279116536158976607986615283934008475434821792574392373133359787869656919390462351413995084837569215324560054161877966794675863301289538041759789207661782063271996900517118928988221728038473947250572035093967673506127319294350610825078962468414023304563567025467756684093018628587312124031392525546688482376394324861103481992181700811718673263782928897857228273762863119800227058726446669939269182902757211890608754493077411790470365309613215714661079614303789865067569224521551453580169739077915294137035010896261905063072830748151909005879085363094071273297698718054087371595847473030454093417837457994207050939641839841870039405112666864685645320312521983920277985216621230557195949579857071725744218396819283228559781684899670805980001784940326939470994812752390466832950914165676023013470436306622471647647565556922360723625535362745589375383938229649513219808668171502608703031959509928478820090034768963128683144162383362516016289311957373713516484436856387119121703402554448443419903744115060249358000976984202397488125858600326016792897350054848841952779820588987933841553792752446823336700144090050901701730697216639217021689191603811561558726368143225075274122414560256388376008787322703153631430438321144803532509077761282850821818972010849041681304073983922336399490130901143966440824286077372504603486513629883459591049433436366506420381975448397411286749832917383179526942835484006247620860374324184704035927760436131911127058129236393528345568945214843355203412248789016082728646785043196051924029550006044358668332981996033402482643812827415190683646086603279970038545461434648427065479633020703346709459040518242290392637231631761471835653182629738562994634839305193120624194965862764023001606694661320895327022457203703320850984499610182720914364507620663522932035921382480950727620598213501438522477609796168633038849726666131949633584057351823216257211370216222523409838815945796449413522772028235327154171020795219967470380885112881591948762713101243071155898890921051568541691107799888582851912313843499356250172387480314979289598309709192610919657640454145895367400053886858481552257678550718719512811536895165698407137303259661549112293142909458430756364428357575965337885695855746023881558760406552672155317171798347967396844589014748307611967864194840176910973906267146991125903725703334905972928475286196264132635078221306144010741673730167890047856469604797278649194677699452911274469655200540968707223709762492855374823395313688729908920192648535010246572792669521602719918424851286251136415459701213655823043179459523533803609023245287965900814932744858432556582869346144372175353420407621094936269034997829781398631219176635833459401604678303425762831038189975937270278611598760363842961513021640852230174427087569055768092316374370867605857003097801212172146280601006113053102575358140767179002571859450794233098907319710995056434523615274993599876633178814995808769944397624380361530423515091315696192133453439187296507637369877924547670696747703730205430834038859504103141939389444507749172396858983653056236160039640995969428876471035608800550785444418144862520205327901128186983812449632327182194287735006746206696480457764146637451655843312510000980145299327679529232833408927014793682788176459027588204103675248978322690949208429658538495779566925292442273758937036094171842473897417377355115443945905794176212821127006409240999651780745329576368573254282550955614279140286425613030849823273424306415455607815494666726841170315738750247849025374721123959626561000034029239590242256478841179562667648983343240592913296266288479417053222500479154753044682874003559966348759141455998994102363124360574956278529912529555073975734246810197343491612796908145843442881305881424726440260078591113751778703648803234349695295140931470999799801180310554464747845898671683166215333530995332988404531715385619358166367520654489061481663674807875096054667418923772426032691807022220027199009592775097565443640492741712119780066456145278751292786236023106821459051984262811883036092544044322535745522238595624066737130299615209089662483713463140938852170056716050210777801239191849888396824711643923628754596567447878559801907363621347650986551561507197729802613521564312974642263588425825151438278561944005285810309763302847959559698201387612713931745161290620354288580203177362466091784055153076547039271356698870627035933250706646299636892501991425999241600306353768148640631847939663451530383994336878828343889663647360179315078979757453137467895500727602845653135079520047092931408103458138217092434369131005642156232039062990735359047113907150332299078568121648735018492327085239435973279392850695644354807546270764290081484467581332564123189048579028605211541111243615835056591601903688741794884087397124464810401414453330326278821255892282129427867167726501902562758775437711590667728901403947793783823853263113132170459595426917106350652683033405524215738129254682367304980752766018244757707986656472079280952189556727535780773743346065342421272567510359337314036682514111373739054750726277351441043519307431401973942267086030236361034400248188086622957584757374163261241329433847766419339946844994289965638743312551854229046346811064874796768924341855337523110315736114187841615656615076297907232741021318647114026360531850717536991524825184942471531806999740588759487880708428695339151343937380886389915101209110478331272839707536606296225131214421983012789761495135532315651957112116629815671994763245285105862156124944971294553237222475556730348711529618514478811662939633175233126936469558902326234676242490112063031891863688226718415119152532986102766643821181230828319449649518681633864975571959588049336891844259940465561422043000765270348125061329173564594686930100293626898010115499133984417368759592839720936462157527776096988481586298210696236716069027777718724306456997409749079769456251409585074731663607813159536138031910194906004294444747350513951658035049010818270766745254777468787891025542750080386256740816432446061729854343598222441631154981618567084604056580507708020587268566459688112802795663091877044185523444910617364969504457349160335142583190878729795901479164200176987010709375115772812068084486520986410643672847799436120432378810335358356464722593335259149443568839144086739182208168817934717713706331482997903198373835400554279684650454082530784262941691290592808344988181225986851452954682638466647117038403752401904612787160780580887778213043711369965543329070372429219617076096945193336848436357283284839891880421248831844072395529763341524528877051546919954018199723534094595371233961442502632627958075946808020200176037153250918020084896211862780262416431283146189980621385589636387747796180012608943946955281173592360195236124465684331131403899966975327321836480473322793520939301990677897458687957347401452950341145452486769358386396167559842953088657004291051365325258425064184602429191917463164093778152533906547800612433877265997155031765984581885474836420950816121959089935962104983692841642192106395065696068664723777899390130040378313381816423837594587158407374029501259137744154076799660606922235896976088992326540070148365209943259659002424821438901335101521555136909956246100265930924310033975828951690483282095520308004378293935539240621759184556227085087986770434042301044199654550831015524299832032824653631390933484000457320549691769893149017777311823429445130555876139933699830448324229714293454846169765282916122295988467304716082882063002673249942110213561544713591442488546397260539951536567357306338025884124507871504800663888535279417874004087227834317606157549254410277989312180463116810663534307234373380305362727562928903145802818875111559376707557886158329608065103163634601888193315743945850604521312679904776655926860596059222038553855663898954222827872470956987525297293903552805665947102223544728547236772760794525762246966989446313349187334597219707542208387870218052828004897350346203740585791101654010759331530235272297381269960609743074859599957225646714265178449619771132853679001854096556429264210808593635010450669248854208580257708114561597780033640504728211354024071761547866133325672318479842192068820111816279039291940178049949248650064717183749946495064690131917539296186250372144047509808300760692414673700011210466039107958679586050199342447339257475744701327402275952685864518730548186692009329810254333240140171737852172048038037617170571079118811098646798371234788062829154258817025031780735769382607314729354896758703602612721229937826043080834892675666588582973251856688336623211054960686775290571245519392604491153144590603251036313427408353075682251375923569500524775722245530745607994734064625162331130257110052943190082856776353727404531805654405447709560866827972516128960588183471649076703516117065559373279383569440526569556310004494885861556346513882158840592319464324826662194289551313542818073466508936711456714680681413192983789897794025455585415078136714348595885261480913508005202183302989699196505298724073215812576807227835943903012085201063409710859637743861854481612847800925756812568241511885974245595781076067773794381873023578843861622347731872237240484681805623421888166723919312742849493257006466914264775306298336306117947228735687826221648402895200900477773117732936016639169659075316712234760705180797714460337605135078453857316955012915726297725540973294398278626690417920832084547290173898738227928689168699070949275061009263578777045159929811233148323551997157262103906391080122397824639747604287006014228078347017323775187684628286998353638947450400475759340357095472395663590959013270547867669298827125175113233937476818655048195076041207813954863882178596562259646681611204431829657631875818097339403798288548720772511754840009469243716146951621879556796472478105839789808120662948318160904698765724957608632995136329340956315650374378772155278976530655871289113369253970049025512879934066844282844472858549482443816414374904749006970735693235554823973876832979306961560094180462366211948928917633073701671396006662318903066352268263268194260882386160396538062965209165075242631850578613855724669852894226516357818204288866516159536741498740511380250327277176088040273665596448505787620732880008740213526374589602847042462727702039547205030443080473568866248516254934747474606441772794277551042055802740619636390346514202103165804994393579989935301576324587135857762293527986206177406525841397149720913909902033165029010468943046741478654104182130506828161440024885077336764631086814271747548735389720328882608972680993551511897513618329449165363790498653411359062510993410335668970432914298568245294932705836571610993339349052995384910345563118035946585885937949313285774002390049711953965127967772087947336997648405271905010178734979083531799419649076519910029944735439236552879064975647866646892591799490289654849059524030799670764580690979334829659038279414193928252174813617189145620429238965452798643934279260812689551328638886335532052473203134661659433813996018148678166430469751763839821093819779274577985604373112754749142319829135078053160100742937497521404277012915653150037370940290136277465513040081006507963555206567440804545171751109765201209639294939560502855162381505768578430775369736319725476039676784660773003565340064988037078709292068329507331165868063112000941833223390505145467415272103095575068523129569590485866625699171391010461913163990666611435707782051569501312742488454224552165534293156370189449801371524399147262195072502798179736560328660004145139495008317208929351472025441441329887803600814360937381179783630317640232438408217955534202459890354370428456071475067057455281349155671871022093259941516879735884152182539130677122847944367129483021378747654932176842551411971886723800030931332797313114061441271797496603848820587899115181182891189206597573345632690343042955216149346268122364837107211459765303501492793617604638721382728941177458943084575963852924425952500159803080735692031088477581545570059169754302410195249884783951493292320806314770828640488914639470626596177373545254687000059732804097348322557808915929371191244174998101580983562395923055262800244711873243641851105296278002565115508650503730680622152910141248833517053763727496162966244644842687219257207222597621479795228659658228200721175406552287627795253917831504666137787209131939442016510059715096667437090314868459372767672636487195183789108097294722999600795817454773668820033312078833983938701291810537017357784697526873004281017495448272541819659542826378325568190053885299417290131869370756365075593273571757316459634250517689175291925247211482245672375659643953820000010556756566202378306806069231729862015334295575649566543945283946251107798531212203047790887417136424614574350386074182059947839487663268727736007289300484464049689292788863711141130316576299347115269682127526550721809723317279537494089946798401112907587520556538348212580225961802970746416031016231091297852793409584822952318976660940179762454429944233966854148380787162313536924222665159429751601365014068757882235963098421496584235051979690233716461938062647926728290296944891771115550447209812967044379195941218008511517497520940086146781365896888985579280507123951326644877255915861268491329719338983354456136402395720209391319634797897140103586039029899881113015898031898105324013052276436503110052539529041284721865451166395401285754620632810268244759596199627295182243533738904493822895985610956209322437382252140844745449789814742946161339943142217873633836198927536877111356170388523630854564427756507002724134532085336732784495612602335656855970720689619583638487320988454892279359499290518588985222746571154152746602242563378701251393425836176131226984726196055055337786320824376214443440071243838030085375974380315254693334649535496459123400053861248882265793923618607469247387629708202622831921381751937508802917941843776817498387218328303411731017925850490018546366517296802100354417419878413067240826266351233943291295551057857523756610439815575441964532386931773241742196046489978314171359394400327546095985884675962076480196718464977223178345750879277705470706699500729065191622013247319093917971595949142378344886318838273931085040155540900177446976319792924851719406750002874913754797773092717647788668304508469840510304318790364858330456543970371490144956330596237890170675254979070353378911149947728126074706717337331504411699980882880303777206366558140555354584990137189262179926563459681550510866508086122318952236305433315986830909475919893842208674333658317486873909778462569689510314670317746327159321217290007198033860739811256266406598523462190314515182249391952309606048922718049652891176570152629226153156819089448068078777892680324010677532657527634448930635638066190887223806995503041481235751970626389920858195322092148138080323551238962481599453806505449551589497438459251526069213563291327044925886118618857400943113346775919700565833637271491263923362022121007560699958605198466553562841425404290954751671136557122666116013072301982490366528499724775219187003887485748796936108159286140258058374019187460450175669978013329407228035721239956814112410429420783359124505105221440400954657824622978952726706696321094263839766643105902311649284607653728802792352218225846625184308749688387987004251188595017864080321816170062589664123491084997379005874368609821714159434226300744443451984742549457187935357740630549540293405816075105744267096789187295874615907041413365140572070001203160203243202202096695218799785175050087738427517810585037549278021576611760400417635125081065770807084576056274008354028691530057509668022089230651714676713890655631197688276627247736864734685004802491989978004818939264916570928161039378988054839354536307658190031532374026191703025985285772939512149296249046027206510864049193878442328998176672330944814768834325046055151619135298612385660038510631682074854300142792992141331072733026392137921369446658028114918492673866042523826111479107731241272293118917362144414207822145363564138088645780907861627595864860443277138697053400026169281788816516998032867423274649886696409670716994159681129399260294861879554142765405237275588873599433929778191504618589403578747384016519486883867389500426952537175022687376234667549749459982006685522536123652563535585652627746755807089587014596173088204384794906379322996224966840266611601951286600238941113327872693425351226991367110625460779628245269745324505317007357110940219853112280703503046772716550607581950687036923864641040416491823686816679701862768454616320708226391091559881351438624176895881556841989113118353653695407757907346847926283439624917606099604553204865107965619959322457815025408264129823948819660969890389657546176195197863097591493360950843709376236472960456404456405063797698620272205851106946017529069769399696334458085903857110733925097378230929056148872976260954725511072545116561947840064788136338773392366106942153801784848306553569735160723124899045204324268794782173152769917136319208661046475854467241157327837300729402191957435999764492642042774153418179745025592690751234089241980266700421899944718818409868516245815289573685509320636040867442343633225522228223700557532942634388215028287720790658868574845203833528068174645463888562538456136459612999262199535796511522160793686592108226026303759554853616694675263275725724662602042731244119189041423794679619093682959330046785228849683729386630808111180668925384085695240981532495870262568176774173502084311848627360301514009017787286324513027196186852216112767824731275544201873094072095046472736353881484848349501124014955989894272785924651452929038625207109453731666904310221985433300777560018302040278604188746498910392137613189678179178646601449594695420206095565190425709705618516159267313141094982428329886398556575710718355815179520784502767885379537913747286183407186079244969923290469851452428172973306744584843022997386311337148971542537571861944037073189106924821283611413046164023487369082551541963602313020896158044982974185144744170223922852024850714874379993623359304186220526832524764921199954348282379768321311005726722214149888906306721033379239065184134287406969445992791167696548811606532591572944061688696267517718783430389983162101195402821601655077977904462242956733028616988243854048450933745888113852952896110989474207597508654623205978988126792468903015550296521021327519290478643823648421377265793682137584270059094855040298799504279829628932213300449480923411708383869645154017351207719089913672588868498543691584986783103069228333336262902962642552329557813660557530201509921317992334099781300284932489560967515774108832558270465644331952757385139958652194470284733983368409807757299227193655484396387763573828760311731443568661642744757206578879877794979298362420161129752398112708629401118152137117431188597265760875222355073381197622388741331259569829660760336747249152229861628141895453179558814839864924988158052253624519492278252990146568043216673946567732270864332969464452322484725691197530333763881419100121179647304475997135375244451361619368855591110456766791976658220785773152508440164994813468882187038542794081273216287001796348911993758418520196196999586302130231770356510934475932490869808103525285762229259269762054925475937860981826966957999678493713734137890214128715672040298304968850718506926313207382313548549677388047800830437922528628305099248103673535738859774055379289997243491318888382600733011560898187658331457068328746655339737717390111401968572785192889117556333310168395032087827474710679527408904363827528992611883591887082049003390293612039184126446747964299541537284029281908065632928057978874554702924094845013947249889811274511389386230802247618982888770777667130778085784896351213404897165129539111595502441088294014851140944846102511107109075006902306095943012158309293682278876911698160517909337585539185500060920931009942659409873308654680702517064155746716225042947824917169626506955330812865831751439251500227375003420495430193294580113405055367059767520240567637773819442410372795826090295442268349817174077513276218306143150716176987331578819829386304770350495399521041471562977695423164067433483736955439024088923253684391855952459917054716324266391949873245807123280624097606304222591222450672855480991438649922741893572177287361426937162500080083952046705249987039400506899750551406394151886441481467659292847385493598337742219758250969038286724068577495733846907990942753642510864414567439730393913324633817531552330242121345310868720797155212069466665347914197830933787021652253527427617906892162810362428485039925286699366070788210271974574150615949989088262584260298800983335962455743769819441087416733954223764509225035113858350703585357837341280799846793512385692156728560778620815483441707854015811314922685781440864467764037039250028162070532585293971716870689611656686863018500991128031909128229991696857067267744924885904886274134196546646809520276369256361604742941530531682383649115664750665199737062715965962118844025175489507284706342164601965957425562371977436634390058708132365664156175973359406745011287036061146084073461917149968643486541535864543463443021118403192847764046180015184966142086807203178088022822824726894321656718788904416715092345825018662353168785382692296485979151559974350933441960718967773370954136412216102837152027204242169322651458349194403791963686514359405641699283684751792724297180704898236128433238312621230352871060714748072995376638935400008663516397499553442305798445080675265818449410611685468181419983299195244284428846619578326275126145458359578635526701239867276026486728839170462982373812380235088409398955458722413341717208929919625548863776097139384685214211590409271440697473612673665748100506344158548672995953767786881946474169378645785546803756730020820612449590012473486257332621203159936031619628036429235164117366616668369935637416043688794892828988565979386799056839969101758723478433645502480804866980908460255986079142624021161124688884096764356968382294533561405310885521972967062010198558414143573378636314861961240290461467195669261482359176808362483488214148303365368034993414377899420605000925124790133409099861209149834267861140335727718880257401190409318689643467391936470766852143324353231953326017177500851483333263628804873622332518063544832809862885338556084978615775459624775599782751785255256979930330601809249563472774735582997738874502865101142005251679789232750796840358643541433427483974335804250440108416920381853887775059233055224933352654445704577692073864018744940884421505123627796375925615356494156466322730240845904571540667325883901277004640779039479039536489912872600990183815763231264277182052984231054322761132705289285271994738516030593304183947286562948379123824799474389374592939847413299347867885706988462862129539656740415247931013338191471202011853745348636646891367981091797573807833008201382720349579351823061067881112798630675045110163580874868072651100119958973299542591990809752232732882315592105796233977986832453402096408697528910178700194515495689750248423446734630361030395727743198223484925259518668167918256431106407474127622275771495589846562384140451111235943762728512207756703757311213565715887578167703423115205472980333276420832617193067568903358488583229473396432055832662846966599278508987147753168322669160065885534209773836348897157217948141225833806633784944639401762600655101653786777302021037172301356501742599331203830159265165647923952601103306630441782207314482476692704713351029395433336529316478346007120530567586332598484815743122495005224417727658341812759964467554178597079878603555693051550197654408795789551517906778976828875336669342117382510311819263316767339623657134031247742937735430377840827026785178692495472260051207837535967098603389290029189058529474969150706987984862595678225236718827232701807481387664728920892358932783851715324345670365237057631015488934502039186670604940651706201568587693836511279304013291538058993927959492657855999306812223010106347570052449328831166131138248455881365752150344326923100975341189420860063269730079720554453559438632260347611929166596430843619989313089224637194707400778269702076064464959421832769175478648389991128490709643856622474785278351581349406175278620119364761950840583087162183828057291855246704171339179751237936221117487840882656696947253430603508952484776204683036168000305993191797733672393323027648279508153772090164919617690388366403636051641143710398101227316165733042646494484664246849492976443524935466425074982821874677010368342857269963357893821482319413315247084264636097185410911219969629712920635658296127347385112289120189146998047743367041923062913509991590220224702818845617043924517987885500268118359823188299207755746673474475153817406940088391811311158286300131295456658092253658555693654196834438171035304943078701556379640285958388390842839653769614182391875521698585636011910069602209311544412615047696116877771602723095057283188399448476520992993615622397614999266938055895043579491270761495990629083371475043399847271685717405591953270404819097617177129813748907344593786481407216835103360157288929782862677142242639773047514523162922884166851022841962461796349256215521969696254245543312307992022361637526269948691635869358635861007671013551518849997891876689122754589654597486743641254387951552641761594970458998089404828177728659103884830614070993668414224609480595143501120240014712947999377072466674634753610427407407760145370201605195815106504315297873586667992483960892508730987012767844081861661893682567901138732766212966857572072848201712363240189224896958172535893499976905834730736873266670418631120883355613661604038288824702042721724609991567980108110237971240926638122189716664720303373545787821193338355344087936068501929382133680119521534230527066312470353214801017300243687815809433960814897716218916696995003894655247974142405804948803756063511764594640997356313594865322738913317320636157298005868057609382872072042457329299384413444828022088293231783952593531220061550854462514216747307404452530819380863979068056720543997902080043587847285396274223303953024696098334870621821056662726399751303605886295144555948139091488642526989836018650505189302794970351479495329498385840471590524468620923020383439835800512596987040617289075502562862957998621402800657900206071820065903029154987249904622591007196935550972140870897956848643710958257149014420575821313334912958207199854903657855480885555929855593342236981616639390946895382767060548656069536760543347613632184948681838654816409701622661818157338737763339419824706515781041272981852005898733175714507826694254745238399369734376467481434597502248312427303280712010844803216494461356754233114076352722111463514945409699419364811395800191450957269136694479553628571284223861673767135009417771319009606168234435941641062690803621458187589117137397509846947871753332305652334383349574096472904341065479312688885141580482651270713415429981792479838153638971674446887348490837713192837338419052353580797229586427237198812020449184076133126442049530645766416092311618173690751772257752279216986114453368806317909855298276297367596179873705851536644203726633215151526411585529579185650766284889240854158489564285233592589258679507042950693404321050777285495634930695455847933520718267751251273542971023220929667353891622157165660730920834719451262586102724554960509720878083016537701697226190188699721006460251785577628081827296305397385201302844860688916153112694221769077392081662468924311190392453835852640136462471477005027605278062793107039580019373259380853947112527425388113814181224721333729935787627817750231408491513414931912727103301260220756854978717045422103640367692153683655071560886615879581899477458811177819017726464289640082277958739084906608553073015210475449647343804317957608872722623113164665590008990637287067919498173841818122766659785346321682118613317786051018470722415323212792405331990818138203633939671472234399899666735296132570877676934905188235586037664973357470472273924547356567122484694764707456242933064075166500357340822962075491547068576713190703476314007018484404977955376565546978926016116942901874987366253356565686628698532831277085261372826139408921566132905426318298555563969537039537898290803827451015456806891151692949506055400698020117877795570067189565599220018330143331228699676929682007985320804675952777399200285389649750206491655540790785707277201090274845256847131319023985642751277670145768509471895352517432899486303093185162108750487777738375227272164113668771000588177828448902950946630823340274341379658361766568539721627411319927888955305917035632834662343802393957559004185096726851958780026438247594333714877329983337575441244748408719621919926152222635091224823848490594759453546674404415214672388634403011153564468745444806609534671050430959446144126909319773378315891140600238608562816259413894968615285196950313978631429987655966531662376451856087581451830262202110531493297287275063595762930148398340787621997720882356272160216873241385448277445252885529996842589739576577481006732199525300323148543495088929009639410987755327743163956681274257629472247034497470604442636313787569135520005683577781034957324718870316872488901030602574946620971168223605161719303543526569349163282470235164512914992303633633308145540398650753151482649973488682191023464936620600881447631676765163412253226106814152586147336687598389042557451625497594402430676918400770499953255894874192478368122815291170483572648724612163460201623476078330519504260597595575703392788059987960415932278870044958448362753230175260809072544782032352658311901234909587339384770967075726230064983972797396128101279861205779236160545089413014707335854251169672645595798811375090754248756553036979541202106239630966533522795317418178674266016503131589286581548113062390773678327230087134625628414200281942390793080845728149782036738279225386276762056278350238089450645751500541952081799681032452900995608189303112865402809092680304077321355542547534508506361813096199849139164666293430246208156303011601147046565309026282154501133198069090076583928214352003589457179508506913052718051557917218816470032132917096931624802827635775128795268720308771306324552374602491321728246851452845765239721286674247041112684066003749429169011695110353800392527930327584343839039001655795798562485022706420454676227350036387042839872214273859851570506659281907686626571158560611949253629040114973468557214589029250249819396939607766246591469387845559585445725069429703957908118862012070310370593391553195027749024082765951131701302140767044956545369254960184250028410190533803224089988035394987615650120808633432982901679569385207568317469948927607522211524226130007372864340288971308952393707954834780426216383009857960801613270630411781710657880240625396577677821391596023702704065727039667205509112883347977996555023862126217512499045493614266727226457118200093539735392522272907123637766188373150877377812044041572610019822976853538959289181740165807510059483825315466338582448794970233078554684036971938466483469108240627057590727526744798007537953494546919777192800107361210871659154563910937824140826995828681086025476848804073098477405227317948556846996110724275557777438085030104403229167182185612788305489842406574634725605139750647694844036171573629773891072929884336803558514758963302909674902057300798942353665901634503452537217776749756199596668208198017424677388991740353144915116724942555866941407251664894186349141735531691317272821752556493779026275682508403284696404892931866915561982828071969209725118927724583122646973763695169099965340719346252048092182202895293423012982030812701915542219814874393023188964673281198698965631501069971931209656947152837155964606460420673614728042946242518969244222767119505162269373578797645571822915787814803324122835653996986947575624540891749503192077550873094259561968652141425479854990197516455800627370648564867681990555117327078001556860371282049520200225827621037370435236851786550075837459991965324852903217311620684163963231425345351558023427398708746434222728731056327731062523405094388190589560316692364696483108217945784507905239506677549946900582991936975032352103059579957103022956006249240638895387635366006883234386549479560477013161572426090048334412782958857493658480064526864357081608845887532437566045717959011492941753619053805811182290169444066594384434848728687966363326512479368114035721195895150289504553676628173201058047321783395474142018499942158382617214608515054548750086304626635031791691459523049460159127511866647749605971400574426485679763801312783438109106137198510967853919028223252360897011202876403274207025457060146019772248395496319451156676661086922145176026544588164768290482886099614708691417632235550769766669901987117604632711416089835128064576893747248782082218639594451627425095205525357187539470984634425117023156585081486231688218103870742925412264725971643732990796498768451707524046521038981808466397475796143224200812580191789151926947864728737383835809690788849017210366222940358789400499379398386244893502637796208846401006344635846353164703391755978543832741953858715355816654243853323697943441319593655152761562135331230655776636688833531422402074131157384131499875390159977573189291403932952464130751696661163907593482249607448642409959389715708420580351348938006974438815169042268082854947764548366350751193373361313814184594156766967255429914685220941182869317234421113647658906930894023003971370007949344723927344995898631062573190616333979568424120909019897051682888647465508526683159859357898161276876410894894547215815264785849540438370656025811010898716875413663814946006017411227022726582547607029995567868927963318620894632944450439256549773942828053740994371595155570279431460089931878466596571972944090005708424892542662541105671428767717865558767635617288280206525753508149772701210968497760911439051046916287602521153405184431510632373566644336488224022209721999668560676840686905345527401704199349900951585983018650619113731532751808737836795693086302663811660835280533052388003589223992541584970764134411204281378474401991724460790106749578198984001916631551417352667904477172554109935608723313408405926486066633700353029722073702754341987023274224341923963662124129731881783981852226605601148950741615632515691256007205395403319490898463726734880566811988049708971205821453436676576259782049108837236388630766075540141994897120214368587356033963861931076181029692378777624883773058002563589219548605118473264031382214943828336698564410299551389364792124189186706285888848599160903189053733914016900027558440863321830547840277812486478548240352502515088675563144793589464904758015598842102952293822198242956855366304323730916767862518810114150522530825334997006012394410034724461949343656319755966045287038960679247139101115089682277228618311611178744739995185463119615625844326342105727664593788461524065850290188125036282345322241513867329794496351230810933907274819841393905981347674744410386829395722957219501357723406318634168361640872262628028714054550817556543422678569587777645677800452997263417429776459773312773920850121388531807675768296116803722271856504132730554789662725840951123672413605008373096476064263337301711104928528382770384258887763489278250900412847723691246147879412102333496262862001783667019949473498618947478886296942079656131960032280655204360560050612069539327769300265278260809432883622991925887280970577695856400818648569985845266397875780527071570163382159422151587349993051976011425050029359720212857748960366976439714292883751934267062174152424186307959575905557497533976629826583088573339430241781413851185413937268431880076245664853372585056816696674886043485493654693500428451286846778688529017338117996302267066088166647846211995661155376612651859496487780289841418479995266690885045893192094446265458427601108838889728985839017716311537970168353775715812277475801076201543302649020420816894916843167740727514267715477456440553451863127851567087459592564075188299694503311329785112083587815470846955958616876234700055732824984979051328082175208610095551509776517180533845776208802312681451762086695886231518495763258677456843926519414654179482900530448082155403794543830548004047418043180061461573047228070222262447950192029155629454681135960378441871540350228253217009392455577225952597165843164930820071941521615135009262717387143862156251728366737294217397808215466454061180422340838277547754111922228688623099561812643157017229406851997960747277036404611623879642009662787282115226653252320738791267571254790390235004345811731937832156700605508400774666690404728075263756148446989049581097339884064165563737551680504195916588759654971457928600395711583039946835659202192178651901936521584916091432058879521134398308534534981061453011729913498087480185041710963458377826414495299879131291561548466776722093797875935456039967734862057190307317597178567797880201514526847040297451690091010079341102658419844124024934174840245840531206526268997990582922281270124377203134504073806744992665698084308670833096946450557252898701106269257913277359026194079580746040382517204777842820571304745316703006334517467065727846768717045940917404133916688012742116593252945526981831410455251456077941708422345167942101756408600096008237267372160069262593064389583385306432058558734208567475490441628063749793488852298829660012111062909231356270330292026349487225646489804108346945485361599075816355478624178529796402415463805556127093032053867817362992650504436531550839248580467289455580932665357011810953113672642426023137179321082607486224137698466987425216369646783175239267412296757372383564614044828301874006815715609642906200658597099957415278499517099180642810668097352600292102728111462386953111736846249464857271143781501496875077768569092079843048681080432025247024374056394164138533649873612962793276642196568862932666346237461233606402087984582293499320241568238536978197967114636067663411055479173231023767324415185880479047456518675859337496622427253466328903781813411042593742242875720820219094954071573303387226389905541190449598039860770794776440428265693127290693880845910472275946096888066010242877590122455878018020639543086694604613995553045068300249136723642968373555293999100266828677310129585676163184123675522301988177062862584962284108241936384804996138930710468956117929194262994305655374524967944246357259364963199843691164673621185074799251105244187377666917200184042764616201140279321262799341659028243453088059970294314307465736569965072726621532714440004610891970116627281789701566919438317517756975402632184903676197793075163866826591362597430101669869557210626309065425624093219749403956983972217156046093990066069036481586426332838103211505893924795638219004930741371647223406962354123805081207381511449256079289651281979267158129537173603809976714401787665368103102647098215746378255654866585580999697857791529231958695782876737353430794513996627845928632113450758457546900817984418273700766967178750591372762125338105738328062388217738829405846827509149982172172058178617124449591607092844976685774945448113920542092564029276889091233408033832081990180918920171657438372747844599840352657728755377587604687274048524905437821232204417236089547595054599904943109414140172311028735601255481068470194386362602022044033058715282744753210873972829129924110198501481656740439031151074563534525604611507509626988949106974838854834178946370955249536431838721369968007254302348296876544177448365121759266951902381537063310595755117717846404710838186304842457704717913164939603281455262255290746372862365647744489257955206153905719512897064529254283968325077010942873489640519683655938939400302318860413196152758798176015564939621202495554094716304292346879534804872681008753539430015285956029199709218358681406326306429649184053670791538835293304492790810920213474065007411614240366655686423888233148040763366977234716784968373305846979414377473409060779317537560688250637154091298946395976382496730932243220018000392074346272007164030782521088295180260317547467276166275503336183941475655815146963206214084779319356445160931307660504664446078450147928241481603006796227992678822541105939803719146706309607503904964828020717712898082693497925997583291294391196245840863039017442609553623005828034175489330710511677289925020628532888558016144737529166013420727822030038954260944947087169403055817590559081620711206217956011127566648212517469186120357925501351459843199194437007838683233457181437408129137707765989376485836092255839410588642837036218067978406909875707679885687651900913233004603000694599766820187349362964048218837422918527056208098513850737219556337910005437895717688710470364921050338180981911477175444240845556502234052233771720934069794812777274800387978656479119289002118247095226000009783741943984687302083091357040557362331039037965000828197335559414106308192453304078498256523316085238992634895684110870380310441618300654313727002751197952002043095394363550391016759747286044387342164330989020452658503413515942927425068643465451088090172360318130095621435329705464545582290968602545661839784665376901125798490456849643714677516013268882382314702071981286166297920693334094333735221670247158100355751431890270837516397444482720008044184078087677245128984602929960729652407423035082680274903320567326773003681443251600141286452206021724016180806757953439166594656326337675926678327962922598215521161010108664055441478487415748059142574239937866311298483201084253357361647512341322414459028942769474884613178182740993898675740001138287380097903152069644418239501178510768217592391447928560162343112025233135649491080996654576535892432035143135570815236393769236489209823716888576018736470511052254932152452456173165075227883612106848420098293696742971734535951599220327025425927210671409549280586928271307190171648900077968551401405482348437981378724752904913785393053696828835034400632126103385676076327918368974471471946593125972922550122328291085029859640092813717361228389769156298738742808258679299627500628015105945865781732577554916977331530986276507038518860692168830473048353220955996863943785772269128213921606713102677859644031763502687380439451655593438816092944593712608696175198390563596982185712465213308283866283178143781761766569362770379750027128505747108390482881315528002278623432355013561698998292003319332308807444937032582335785643511243028430467085244240204402043495709919523026644609726379754430627288452532464152244637386325896014398139894941556548646907548854562557460720404401578594877190952299916892025459149566139585140161151425781586981502264572078853292910532957067290845840939419959947004964597519099426950521675165011953925165148923340924185481804440089021422620280768671760220002045625363568904688719402655160020315943887479302104612360859266981056948446909925193090972448161754684492453241257909535345697526305007301748949792038945123603340368513698827316486020167208803006703803464296776867894235689524997528123634763151426334215121115367435798759508043122080457614305587222871993690055780126102616626250362667035005787374792457271802191921030245871821072837071599124152616975978604078048513403058349498322451158958950283473026530923956655304773232453001593058206020296618609538348395561284640040578789892163120852901744086451209894178792617029993926155281483021820521303677114372657586781388705513529805009100875006600889499901289799477659356007634466183050142197076328203198575952782113072954195422906004212132956478117512480178605419718086364751962415959642188687293560333883826890584188046722878214901891646347147357812033812631404731542253033923723952736563693225604425168786904016881169354025555045185736943107926318047011796666853407687781006778565984281271859073669637023861774355050843526678194403551509414912460606231727437274056066539503574906109335501094151236561243608488770277606101847928740378590290941072176031328870326677764291297720180891036635305836031812018256195258541692160410058251675601481696599199077181788548163720893492095313883602498109847041216052526751423681568190861509880783226141684060755713217294704856859355682468940753674096660824458420715118923488424294658760113811195411514128869488835647607223401009175119063207011319996740141053522812651253422606673823871639763604848282760615029779204817012397037045667408927862158642426246107776309869954376324826359628493666090888659432425140959281874032607738671124783540689122643325223436187067021737903057896440356235079130123699757241302326108492576777861655870165601860070782792516465840457204262331859127708423656265037221022306533888773061467032110372614251543907222303199454221863076119136459997667349895010919064502949967706285378597737785919677092944462782854829246507541151745100621779027416309702822162906055656947472337109280772048082625306512918986514364268559804665136369843979718667258421792294104590717110074593624324238913089243131904632669804926142030034974739179497392060883698225075554060200982196126660723767336893504490378306758288720868125715965822015769592644435545378146549158535991428702791487248889627002606051120105974710242944814672007645496232326794304292314297858209422049280622387801627633387696737382711571401419722545826212461076600904515583241972036159831242919566682175868510991266633709528102554628640606909712643635563459741937367913540761463052211196162940566985752895594105294756648888601003748985184488288933031657490117338196593611106090896189720944571596403542783756982115574391789436701927413410621307835524487221919215818845783555894174524025796187549650610346047916383837691355436089046510176680602356801684083771538068000751921409501646751191725026898356835073224402007611486087430428327217359177718344643018350361103153553158827422219535572524671877141044850617368934016432130370616057693147102641582673664708056689417624202073663578072530450859655845074629066881034631442214949316892392838254933778968862730380698455992670742654297211632596646538953016613032318211156383670270719492134587982964099551463187736949297632304686542220401312213983531544195066439392483357171765133297338264864875109684973142871709982021900028751721392906420034844412262114866092635112389835707783368068306384094645274492936548623092594117914228556688711145224733344739201496456936049419622445728797452518415018020342739223865532639594332526875642125597787068741219885799384557788094973965992801760173654021462512135683258807421956253821373033787738121983293111245968744862587690221898201029586497478107532133602050122409171686799949626304651439713105732567164514094470445913704518186684316298519545812375860154703093652220005993369361884326880656008453526051551286281222694958151595861731532839597933902748874864027046349910907003713370777286782761305326638987852394469150173515621129226606884379156629728626989325170047650327600143240779530025869372162077988900887600525768422852197474146875649860493109870620867620417098255051733379137382447393541548274627170131808657137381132459293433397289615056475920480492089121389907690319171547329994911819373984668954193774849088753022212403206982379550355793733766203763882316996594713932485219660521247035350177707988079901019779206547401601314383009193109229015154595825757841832427541916157302002252188699246702518029258281742092404670115677099935132936068126284223632411967359724012676087985043266756599798094746888992728081881110504264834187484752191162509925104250087364874221989262078718310992228872316028881659193561441731339531656477003400135828858668396983598667621119470414424281765590760204298489254235110037613595187504850114031413999645791379460170034376362336166874024285307134829775025860655539617043931168249816013819780950875542489017542530280935090233351551935971625253683275903815852667012963671409345252564524581984553939754421062767791128757038376312655324240880946446350945973782881249270757552926942213139346475211332853621759921004487803158151301707343967404951275460476070494180562868158083594747713563367827939338417095347383189691073584766944193329307676579417339285495148765067035018539829804182986026081665589752476645849930440330705130168277449588150768602494688190148239997122842918474336427836953718975723226885107355191720165298902674225121227799816766671819991450517850784763765066641791026454583832754491355246837712242051181910499034973588560010157395800635174367935821229196542054219705158544108111422526531751531888992672232736614866332179503254823246933310912176735610514160453764922440008959902517618804669316379527176441468367479353240161724214997069008838756296149502706399623772011318331739829721688746057770310216979154333004504466426527538650746917198447489528785607824134011386640843720544407829516755393025752651886581596039270410382057496658743993973147027564847847226600609137453968844119463031051919897962231251960495569614940317931061082590662291282778169561662754174776800176339925433866921978569924176112868265420382673316304143492370330141455312434117684509561560801797597549156691374704129357898638691430766575364648469355694293961355298488879867225800911379041667067570112374784245510830098116970610372914086460789197238999962208776405583508857395311734039818230966728108091513226052719525786563964563466597572313576773188992948797051796909585605956262846348686986857745230141911139302863518108049710523330308220286364766021661957231262430844977535263537993917952991303836863953753303007478405791495041578634554799005107457987181403739915326269033520398634481577561730845430842920785173414534827048771163769516193179309979164677085260408798096195155573646519375107379597923790322140423278771813468272131087173160867210833064553684750188505848704038957833993047865862418215323918194831598326619695599337610090067642572309703589617441380269204406826542084614009652718512852337277420159263695472280101044566663154772922654003460266541572876598327856334163757414194584346600871593692944693806340815137464394657557433805331365459517664087663041186685727871678505333520327541561369734772258186291123239458684826820455368538461178803757954920928496926350952874381099468263600844881968903105398703514588161483076439459441216979747965268976374844983392661660043949272878894416595876288188259502644835206658885836242369927345497254933047120111307538288611607408586768682266393031249534404311391588206532049574026976815164607392753279816465640914786785455244502785313961406607153568169345052154659099424880778658845920057498521459911314298902982787520533453575598587610201006676873473947819978565329815762473020924589250305814696794162593330987078654189730516235361876658548422614135297693568898524704253118203545603562249753269565573472702850424975844190685483751966726429805639251316885285085244147493188462702009490795952241484075600186559733515180112393540201950047259274704936291786999098089560608889826558051078932376347427367461448338844679540844706795401671657056869812526709455840219573069799880961764061721622058479339480296072077704031809226230156717749136129310961991567104981640227414720883739591914491826031872799378088935460967936979005293779272804200829239148356621140112140139781164274948832166268802189535494766686361786709917840181062272797235549680276316423695344286095178697544124653756438025853209191368563429133636651749307668340937008281590695603636151386091032779360011402452243472526890055880286569317073455474191497823901097948449512971265857109153211054855231830241802974620584189351616284145085134325274680594576029921556701529419293553643846026646013839731645964306039994552543345904381115959887129300423903425267744765336977073425000436135594924076484631069978747860767402972600919798224457645743850315831725039200867315265802361052407611194977970191598223160455383249796055143878715704948038741326269601368716900987570312566944082386199754106888227837820155939861181871932574583860481458040233090647563137118268721884226618405341306240012249691057056851334288868844034662089291701231580870944340480979948616873875713860735432375524011688266731902872431689778597921063241968932886944079650109208890613485403952621071888877211885797886867523175706297182656755019372968548057612046169978514849107134093048991444802713589797561485529831115842578579960203707835322268282492999767163764362609370204603465269270915645277987481559948619801943805385894075512874500807115083152644223199125734908704036524394160260616570186355455640890024204117819477673938678347163547101749320755780017005687679111504255312487419164314980260371779283926980661849966418815210415274708171789981479024444148243246214863510257492633785775803499098962347888817303620936968284887103547712359351873859408745217991853036711083323746551367940280182816407301200513555895774924108576682584937700565964371584838986463908217708898135479177646066787207369301476251254705432552421737191464291754516013991102626752101621631858606403401090879471239381098150329845751724702005534253712674703241628978510910560995541882544513171692291433553209374062841080736241579805354256848595186287940834294948202220069055405325529548710873841879456517265887897389791741849077802558663303400814623563684578489165235594975508162664701701613822309209503940108271455014837355642494766953744952468392992355890051413454332972729695702680844401650228255014709981890722575727750172315519371566689871074622713166655817813671411133464415666947624049990333736849944884607420054028308912995820745623879157602855177585686806819448991749190461504191782974297205929765274568518067154682522123771010148626042902207675238135614635180229631306900628764833407331429591587191451931581544987438776485751151186086061234455771195132370141050260875667312023023044098598679895055367692379558993686244345470560035016981278092629478593869282567342262234674726420357217131721875220598344103582258600530554709588167386539047938794991905219027977268537949000669986061594426728802609068953330510703141816137199149839206210321727496764763384471831379179670946062896544161735022746419449822514265509152234979748633238623308993594585388149814176701155799652250174197881297932305914717976379909918221039279909747107608262612114742115758662621013950162477214466299891012445462213101840977599655793548257298663350659839091718639376029007736364861757846678251860904871325499286791651749972366853176758052174821174899498528820875620740460675186525040457454491633189354963402221937717478046012231199609979046623128925643020199291675802109960546209326341976541037110154949483825664317418091159998389972441428466409359371002298277033702862363910761383149677346754633859591371289484439838582926201247421486661866388200070216558579622585839872973033394625116048101118085098382669717430665978728328650805481319378585778114765573455466607649204048378396737646780827236104657390981650828062686815590241219334530747595726198155331423015585613498285054961610109171991918897622290141218534372766020120228255123450902928180421995281997807127999174832714769655261866397473166427713452367299690688085794378483701285319404322189651871569036928713681905328399301011680410386522614941513591387263244597992166979568102803069944759516861091154813103702101844577657595094250599143280445501223686918011836665909121892920094540036018507165321094553161632724818146676593013494264674294785631001235520860196408605322058017321372643705355008680516601486183660972350081853393756903738286201613238337486754253047089288517252400343381239551088159547852466229292190669097808702206966633035147815874338393124066373492030287829199954197429938125203942523766072564435147694899943282488922429803210778608281033397767142651400168046675234565036328957235564343927443588351075675923258079324133720833755595667622129835246337544407488323229920713814116229289926510052324745432792785919414285051397193566003159079408908914693073546611074375754358528601276650426340413903551207530619052362977403504848868026423606257354229433595250402012961344801168533879359212248554383059704946882638454518731054672106257185475990057633409812900852481599324206519206169935283409089263278321475228335725885435025453472889658533138964468210088793047646821170348947434831295898108418389583749075565173268353636051448626541043201471369714198072430091073865811541833059076082982303825448432168106429153187754397294341330979661851039930903904475225941394239180706749879645649930553873051345518092294571514375279656778292368627256650740426359957626817814643540257407526612202004564084561904521843145950650936594838335539755004153217254169362398619550790629377785544994016991370063984106363917866172572859944331719312468761401600540406276137184149126192407258325521441615892412073086110736468162835202777388211165122734265668512290483047845663142866192906947190602438741511089118619763452002121389914591507720406891358329187318747012902035171461846290068295170802876630558309035550390585492931283427814024880749603149080413469458241570633624928967857579731766923254923180845997383561965390871914427088359122939283827605819992285223395475224221140136591106748892069027029243773681473899817084123623926885317419768683765419233825624753398261439975352026561106164119530106919158149270582304274270687980838563355821649950086762611359125976303651531018312647426811229879557350045858097017568362201298563529768646563297981710516326405731027547588564251345869251273331647336842848153738390364354877687864247454192944324690649966362180685255192416306329694181339771208360803913729695541851770803142591676435187341147369100070754249971941182944828031496326290145526923942974440946789824257428305778157296674051991178693295260964405485337860015409936737319123036162707065164975035563745911808062921680195199816098954502913066810467298416959384704626763146666196916721577707328247213069619416110280792289356999900209146894594402775999313290332145192116545713035026331504472938037990689504773515118105289955384256414296688601129450381525233719975040141221923568225635641071957829248039271506275669625274672175836608710099765750818391685890028243717854861993683146265528077834166172075974745691254944011883322858843057587362383877838745092560103015639847556446589867672178487309614430169782796691803228468159467251377676444840986334202171736100573716566967538131751263899100574163036058890815026249605825237902093886931847560082633162484038434144646857369745034609877288247449542053552015887366572200510256839322161010454906806281545397879520496353731615176684426486879996105788706774695581630756877128548803449339745638339675970195621916975171138989202348602561055716749019519870462051770238442053655393210367404931459470771541142442766069316753838189744646771224946927207534495994517915137889768099044921643218285104799655227147670097800220021869707119685212494307139294402307699289781362440622960282761094244245755635386795466509829949427729317527594576743397336887404154657524964394665171351093404279163277376659294811434747530673659030028563796258468404002435201641654327030537005170527178693835909347197336300693592709365021500315332594498905874298096574213352533687765236813617389975666689343636542832824939938982320877622191827747761760602015833913333127387680603719614574574466025147259000700718870692816955084683265195994590316160242675673514452621362043017569271201042062167503591853400829438896945790682983322756252710309074049988736086010011175848943206373686971854479395604256709671627018800557526145408805987520592917171871522464546858199683043133245408173532421361490832678441182974138221414450055870311133324057333655423807284174399468429191382261857007792829694513431011424253060489383080866398319267514792765559954957196385279387578619106439437891910230412820339325126550573971862022501442506669597107386965886956301447090637741469018812875807063739946898018602328976489918844006946423742897279752446662054097633350870885761431568816002110822821757229796459128066712787814750880618054021544685015028286903919903144889515768963041954323987834372062561708021029478089225513679927274578507342903488939695496668767421988770014031017519596843441108757271430506051646924092105048525145889672056166520561466520671095845076106933238692985679039408724223262575231533060403705045229396201952732323111765580902305675424583897635750696994421010517453560905651985823239641077608223289377882547609377435811005910932125832462055530484922288587714123512662967916624583096540954113784199028947601043542719267406621363549262270066931824842874040492164925141918772611997925028261451735971036559177425631274459071857734256313137234714403406358262167619499358622180171781469729663213286575716339495441252752638927811679161741410508623193545717656073542305090090374544125546260996624173230652462048820793473034738546329772552623304834143862854449519782710711677649482415482640444977504434303662173038190120256517657035525995342725300327705404221157516358790744729556603184228747197767437241688963776151890455321983715927764362958001952188423350708832151976644188291532193422087281858399072531478181765285287512582797172711759619032859185583070356472166120824070178128776243182333780783219212951667384843077532621553672566359227875254730727907719011923333340175066209650366311397823857057249010112503021809617998880464103865409120404988899937415571041400546142803966393563377920655171877700501435440168773494309488200635807744189055967058179068317704632107556034530404276154429189020613229304117917500101858914279280805475677843220777256541574781018167196686167460599710900765239663937846287947873546276066931741197821744704491301147392586285611849047485990008447267361250539226106972868455417339044476443379961403249701720584473858067742283641608366168383574095389335232039885957294693159358080727582150721424290547785894631064239919059996538120692887759832545440753753056730931541060684238285603062051820897327123407014029027000790399112208253664925455312588054241410336473527873137364958418911988518176860547559214811042082116573059203451547481131608846846717799993603190560004514168160746311972969923534062929607829307353958982797721186120555363073234504990719680982060436689877185157267005379464658722110405140960597964214823577616802187418814378414935085536416025277979165376519911207440538792799519798273187248295190433797572717525444215413457525229928348218617823391597112649529620308729736062990021594325000333785655032016155498690306454595387517921937824191253748401490407963308143559333583539764285533269397192266366005093456655681551217224161332962896959786407114038176841540443787385938616087284141506396001739358569054513720574023560321643644182825011578223732019720307674846386849121840966396180490239944414434580307487463033164137837677016594732027061820496086458797783460495840431170741678253172644199987642847684919056909946274320283718484528684782108413603026321363254158217193146267230243849676999433318730618749318413083991213507455534787638166838751237099337412585935719737310386380312785066932984945925273380798107010547654622205144470107528783386015024239911844863917471365022655234200367827165245558532286194775126919918990382241777251174614617653179340007509259989411987598698669717959110044839048321590021833492642850016397604555487113058411134759889014259536838959634128094963355797520520080329643963310265942880644757970334870173142175724280785744585070706735473763965321970292353169993283724677715090498010096147090259148008978605935554950772621598828229473083383920707016855383667713387135022314364912978468720082671506102302553279908127585467453163107018722653730865901340250672473297508537558995921060678653134272793112016934491940131756612699107991814282352944061208595945681189929385039441694122176999096004779675336553726358196095100713874265387556970756927297775112561728499514264312419307021625632758789388652493266251255725319159895623672838903124356698692196548461911748292108281593869566553984917271981471022829054354665140189642217066265929879661520562479429347496321861510722560212916717163477931568990819972167857949385848335010101916619046637112059808317232232147857539391617685424207863734368942638739229988970754148513889500051694083566885780217428935848726271338602586384110443844687845413755883857222626476435698047364160015576340149947871160198737217273542638737142968266234960849894797740008319596330062857404015020729935778904997970366859163973493669316517480782638336828470779511255905054898180855298878500050766514760264291825046181060989748030082153681893791840108936143470524107569702166966429234304759691876574953813007900391045039451393482802915736881597123741326486334316193540613286555983619640810962993136286988799752349374931268093168958803528876640993090721411957329519176650517235912929389435055669900796341587439858747208948148645378231722527931913777004546442656028178299911849128778717286016568266984553228215309550942066621670716852159272881667327501885318860626536003064988827232952074567796362013250178710647011723576552782689042858867174647632627240303243358936624443782484121059827206472956040886136335019407764269098606241538741856647021166422335324462844433946737335707806812186066752450325187074065966194661036515239172560303308084020039839564396121797101171934218104460041643327922294655105515125318045358152096880354008497483147415465874291106404904601155308323628569643155642449057963555248783319857013944007365100646657177614624385357042366122876411919911240846205173114541551193836628081479928302173480189694599282276967172663808308428458031878777539123158239869746191029530335157930543181453623982244529663051459026035613947221081845313335265168361277108188236394161984100003478246017197476980958337066792148692256990207090336691920924557788979562841096024090363772214279871479996485428595574198502805536408339340443252420073104604132753129810831264811002511670605054872298371656308487295908898236086923526232328753876753185726359320968597662949831341626921685558244051903021130163163637247972568259797926999038638654893426562588438834590421644275004831495183590356557632957826371511072835339204966694616283576168667037847635652043171619767270975803948671626741778305342464491633706943699634780638319335905862745151915462895240629686568382970300566902495945271407477806432606631012782499204985932856663765307975970026819549847642466062698153982014657972333729844500695511275204658729409406168799351260995724551363959732994612093319088888546220588116831553609139685718853392898729661889511424845011749744264451928481334146149277648070605684882684783345626020681144994116642734831481351449163260676456738331912451202409471233443951966791510244697682757499445667796771985322618692090199969861138615555497231648832642980256719316176568423558704729405368733674684874609751193772345466758559595015605186265849124424577203443095926777312515326462065902256791104061534131241177146234707539327414615246566857668447699091483608026280885095366207219293363008239990723318300326525331358506038420869390678993750052660620158041236095946618789431703173135233266974074708255952561526092368339811678915809377817508209975642706252846791466189153967483218436781444960523835680639286889782537413044095483644725145914739141485629923772462565097686619812650887673900438361723202435890455007523718929981430990398225644152360734120437234483147950338203832331359446130758695963478830846107148256035686418718511125750005310661935074297086284929500928635379993670382294459942037928521974884108914717482171495378913338810060207028375801880443394292898932954189834648080596610942816554457683586035636537793936166752000264880563144289329410073697857035981982687332159495673818053064930435446997016087607801294516073843046127857036443349987958429679935198906827209790544774152456459518643513329792642719384434619645585653093040849306411670897239439244531967589323775266140561946166790016293592314092166967880956083717748230019039736938639537912846365475252632057242869891554756329787845159661102634931654874741406931090763152682304554195431921257238840857317694390015846630378702190838861903917738787305940733300415484143342144851506562344427405702220143166580816504484628749683959458385935243282394015839413570906908618480216378521501214249069077885288228711394122483252712591545588359114008501742942709913307184257919316896077741914806947539711453675285144511691621123317070314797362112410428048374393252203326932810105128355680928466882206500502889604407860399671353679633876737516525213857225858988154790305843681270713649439888783829944406575165539148159619492166125275153248874544243527213012917375552805342457075176971639224878841522188735042007492509094833924912698482947902340706567792260008688008248055002812274920622224481622370401202250466271615974231947422157534700518185272588481016346270161953154321246750272662986381370180662276504386870171816678279575877029008370027200794553907702235766441784838080031286864811949574053047307580816846575407304108009872250090783481567111640774741309453089138548024221300648450023202228096684845534899722989722700781700848284022189725734767951434601544478593278453115250365479160403390843654365243041564263807097652706856645057861106595381498606683491452026795299032408077508332239206633988354890368820585850912172927385626576467001260040213491637800985491557377857423852862708784445466048100574849226406370414634657757048413921230958746291165971698161263711056844888956137577171807015265409712755301646828652206989426471697067189092915124286923297843462653467721750518932744768080210584450671297220963023590768994883174024904340258075681188613505354146796255160927238082561615633287972047088870259622505945913289172679828598745792336855839065604726704877025611246128615640370828562286485666797653030757772617207854225326644976481247925725302967594615186853283749374878792655268687992755410054919546818967968093589960776988385158970108987336550219683831945561145378497561587615393824911702365458208824127735719496422979891079255489522323911126734786456098462699761511867749437557789076301694967854039783718158320087749990813787750081327015214314320816153872536125499217039370039087028939780210404062534108100483011742777913168899851793484519168610973799093308838661983479475398371126006272616667398713847585011589136636472978405225039532197513763339919686339029546109940658567119598907123996435974960862503729429127017743358988848719457660620963276888905044152449651029891373113284567333835867943864332190623725427106725365365974977589201358276894784933227550499529129641845252514460006673797478244700713701614925765768016624846174562075590760641829466646815048619600563945227766801318585447364229462223302601576218365515534336961719811035441517654828084791658547979550889832364838096550622631509110537717718184459261350096408376226920074905375653290745257828081906318512784760108633870337974100048956638597713987726200113905601760761432794426200051942826685923185950949875766921053522280510695396897415179212148842049366481379981218856371042079908084625283994258064900429278559072402697655029127387122014696506691356942817123475292090672379558445299573484149354732042874036860290756674406049851468157235558160741028554429005745853521726719797146236691848852153323296861458944521037469635772785269246531916873326268108944944222974455272977929627100818453305352597174978300299948269789597157256857411815801376258820627753278188609568539781909517940424740217982466201554560107587601823693975534006903145866864610301847507725331403737738689642480497525140337566740786476722578335458764433967350798147791103987004468718033192453865427272996456315068821650881237792846708349432934352518667979431584195379716079307520753932655330048516828839126944100432729321884980662747551640211509793604667390352072056974632979619123851327943773843276140785127182896426551437444031098145849721750872603328002215290825149955081413614107920871566617592681772251548719142128019958591606339276014225350729181809694898697515747953664632453132337128661731060536091971733852395543772745085198011722267816652806920343347522806012018523823261367180611261304789458916100855887129484582055746699154963177603300214874350036768789157682578163889454471132123239653251864351834020082918772698316199887758260520189103845047555484936825844236841182673536990093930768627319208984599199900221386493064517033329427676660517038056218891735109253171684416027183185410678757366924806199870626197405667582154361548891995972668750889888378842892578658239210134483218821513655492046828831709603088262549162482860235398498551958965355288211142037893268482649719586210945021872552795631103254835716324649699620909385744068822944337868676889192515867335524284849740318411287011764510414792461713147093112824435948246478252560864296140572319860300795073409453820578621522548037039362045225065646720140827906842621534153482774854973925779452326576085586256032987999817952976897534592904629116724736157967209476098590248458600255734498138026444984657324342959289286014061235962329080824897258911531739910047279902791919848141775404453052518040217899720476184955740512403521958022786082795692279331170938596229059329466156403738653232057838439581600838848617409578812426079093099430326764176524426376577404692326668911606416019156364437860967100015484885541621732301344045427077979184406883902164866685384678083824543299347939874382504522046907158189594525877868362814401769842186724824120591451079169075805688710503161852332560666665125623170262198376317186719554153390527152220239683213630989852828172639506520684966648961547318696803115949500489550578718079128057718369789277088549129212013031268827018816053702713618132893114963422385186227143204059610032223097433694283969728196992838542292993059739816229852310400546609967881401519445959229036134080951141638227574730385944506393385384830851222402679285152370170969243298560791024612406585575784332289312049453227533505402297908825940915469933272164530754171659560057027549679709079046767654006410723879647897311529629692928118638657829847012109236358155533931694265638340236700816913665447990444583031181261099163697340391053311769927610709253512886544970456652704746776787502140968630627213087178603722492666264858015331549129655980131554389632973679894838091419335726682577878486702362858324905583399307624841342403375316634483190692248575074099660123910074405443429142108464582182230920279326476683063704546143058667312284958094529195046979576952686218469518869945947122126055899872395543222644184436929484432311845081297447075714554430717038567510776312173762792192056017292605304791113602790576054037176166017196896995751618660841775302685925773176694778650010356543851670673152656612465468751609535504777962952843822465859677409238804966375031620894240725537505221339603461098408795420077878430915920587517253571482256914843966623087839493575888859678443873600046760689885262318928596302304838937211421547066719218735649558103045585910328436884011370786100529199169261492870419553352817203648772915573628457457562611908472442190858157600615519432360230816473859494164910816446385483404137414878557128701955911316042894391772295360693888780084609179836904276825429297552850695231176806925593522032130765153237068756883231581937896769113585000908879672253374876124406059693307675348266918637396543296299842859909022444474552182537254224494332328373583517451406700096396882621818843123020324351715370440089673372963294465328058538434176010132504261382180451854585525353099192516683064814442642011629913256423185921587109334798511175848024684130367194397192679714081894458518566859764414266332795685886047372702002864224965757227004360250147833860593853188676119962785287634214955599465721036001134670966118808509009434809396991375201887224376251424866605457114098979768925168406115687914017662234205542921639082811521043555415409587314481190732681915657385841666812538991257709011181180137898863632548393148690452282719839482608554259972221586938292184978383906740997361188989918765125227843258308590996311644374490583808270570823429012530398936640681768668675267073560098087577807331243260856679083902487720223434420498874943909947573183260125824050903261894412995216654156219117460984040269006282021241936431358099184421368182886156070541280384501634622334611734130836516279830188458548103667379711631623164299964750137035719608768144580038431351102250107940042051500849700635827533769879046133150686507665658387996047298066649857442781462531294503666422685578771558431019372785264329739419157146909030637352454627000592232640528868583065283443405785589862117972319806312871523459984545926449562962493593526632481383245085606489392663455257835100605635614532292744602644420972327237355732510465083492622356258372339819754782703205974046138373380007486586891924970883158178282303061263385955307905653849266558756613726763791321858966896808106757156363167179091380895474111395502332734261454099854250427953469677998812792633438012383226649153052028310177659012348515141021253391154314817937952560153068455891208410773753084534967156238353347312005743535818126049124513705557131095210029423255904902477820447680807087859940280667109133313009314605154949710166883817800054392550462737080775459747602463187737955807604412155460254564601005483263120214772932763301393483895948586383961578638501980147077523237313107004677823865947555860232696048638932263501191795849037534176416923882218217308200436560252005700300347611745078326941736987528144773947316880708083346369011419978199551036869695106681033907632039950337945930668074273517256918397046081306262127776504591300818758808928553830958074683577291068155519625922810687648158031479074566931925028862359074120837071723037783017885405632240530029291714269492287159353707520003779737074370446327727170824468547668827598098328537847995311009574177158853982827896524707321549825674687363049145471282426401650833794497354724740327163473477617431599052237907238931321985066660820555307196504393215755362692971875885230579526025688288070126548563453337544720497383685634382683918635267094260442495525353792023329879390075960823071227682130349687716335666875646826315208774628485490056008214176294421964966396692784026164674616689198886037084322030638799760452573611728202537300207793480041014332735496473934074989112665760421359586891781321560159333713567765577785842651894549029536752087569083494281089100137265549028877797870517595007487480236683080892836239821626486721314562761134012889928001228017406637293781945244775406659888243427002410654843593605489763768562766198665430737679566815129164600009544969485703852265108764152715570662473556381016534862400447533987616612396452115827871177927979855321185316984709963708222224482406390396547341952515534635323394070814469639042368398505794845137440164513941194375770947936218227348332244074136133267054473405146721672909475763758118915163558490281325248081772804789134174759870071409929802194910508484410141890798619294285983812480571378063402721940136533204860323239198899027129131306128296172102741029059573791164700887400340630804140391221143639962008942257603302374209930522431134080922956687963326475284412089041412899898713264241225069343649603472642470966632770007499956280950568836985290275098135869071361216913991965466561685660917278024029767684574399947921181944939918762131503556825782231955749027726886450991918547511959502436170676603337556605169916632168495018926869979394651183765570034775882696383624983800947626935023936983489655862606547280024588305605319804507259351890081553923341940506428537517574745417183455501127031159050371722733032199622142131048356348223018474671033519634837310556838998391156388656624822154210494231494341384681646779177525010025768327147167404359444906794665113275350207409271295471048849154479262049089927490489448843993369060267091917190268938580515547221941547026766817511327866590377241316329320472299194600908664458858315543450888460225444759077668929179543644489756152427246019761378010560980745962043249253916179044170276105542378236674420321024435633283352594397481668503967816717598698209531342620856405255356997901177606400201154043408964659369301986262962986730369873657447616352207478454004406706687310419146324685794504949961685535394299808396126737058366317340510000720991261455124056239432637871019465249905167823485464527908247228840121226832965282676316614049860400737569325949639544717172852880558678333685732335099339959213006994153533627204286287764293947044004044359122106885438590047615713426654470762046616025277776627540582448215094792715913075766894123335296628540746039891202256642062911925359443277030826376438442721102481938009108685865744200631760271711313626604775642259847703909926883257435396586353696987688151992372588599432491019108428854860253772790485888910507290274390977983623710434699779636431304779434298077529040915875567434362829613214992370462811392983596291155041470789773232548331126888784171003201389148648894211745800886747137075355749290609935544563527733039173761469066546095460481584005261190485604135515515836927945843057213138158572479461698785559106947254558325298012807976949967096323133159055129743832569229590097717448169918286709100264029839383115625768990672398059243567423101271069007357876961298729078240030988281343687747851749656771740553419870222460196222412768651104588099808010377723573001141811907366307465038454562129897993371870793874707277881483526037195869828255110584884057195189818267345850859071032612342331911041493248411702942823957413459436744835038418173668045931329006800305104797783930605253071272545479848981801603521434859046092524785669620852064791369684522808841135094451496041022857164493246579567816792043857373477694849247337060034132223568369237546931650138835135128989719634885535890104100472449143107941944690166703887888108961279140409479156431208577700306213650547553632767559793679614763814581942819065817443132346619141453500856745960047431337502725307184571629102786121929260838339790468255545028347038349374056675821195356935020163974599278802692230916060682345516235730388320014650184496494903836294639437200471129805922517154560386270190338886518281193282335222622992049462471002083786221925005805273121739528399999324025699048349428151034512615160943808537055771000077377757806304555490247665986020239010171991033724639266546721900099852692551337603785936374661929334502152951564167519235259053686023933412365407137465722712880956513396546438824030584857371931421413591558123340317225990809299626496599174406713116275016210876788387657936917363306230180012495209482440922298611627340652563037392948566750876634609734301793450142521366348517208355563155391445002810122966938587633947239733161029090250480793993072661484431802270443478712853755362357417613567553147576890828523550210838808550117489818322720319951397702401155196007445117113467465317576961458229790027664969329295934500940766162240882926943586355945848738313639189532857020197889782293905927022783685488822480438972691243307187985060067092310048512133910022074531308087267414689942213237402342627154120034740855282794955636907791554189472985459818450269948479915601160008054412799352976593328210805222246091171624456010349895341907446865818934354564457329352457774616934563970546663491218139056503946043876642467273083408067382938050292259494718910524776136530995562832160043638326412447031296993295018935189077908638179727507682497138980274776540855939245037178346960677649484130311375007759646833727815080670362098590921686100459683115078877897311362467218296794190282375511331296931522951156136571089014934306050526133809045344114287102339281624461329083769199147381959561693662207589925467005354310308616549191859668259284779639001818361339386451120435923511583039100227147962875478074528383577199196225224858976876743081438353052672199337903008739681470620775803210750216514539756068812399301477087412166228844355273425010701704207609770878954475632250463127771804124220057695944008009188808577857131754738161601627654103739055314448385972487349172231922610480602608010963723806366940709134595358891116959146380309097994786533080890607998483593668275147215704772635434656490898735648511180408434401248598184155316795012757028403816823247692198683265971103511091542995942588848639997209009881840202551313044994849997685425488140291242687679830813237345260092954413567029482419235084803095199993173356551532866946675348969855376325476165008714817593590620186888653148269487492266800613047452985149843026523046527436579443293024791410674930246928700844845948463908401203134680069548354702429347277133850239860437804213130816535846032954469538856034894852170041844114273387962026515470689885749867842332125303688161971317218747827272307291901023776767481032430797924103310431653803650320587230375103926525855460842107773427021333506921799587723063328503429917907248938968808982085467940712210276150950030362558527973243599588103076615276022206827825994253448485854410667242566325276704335448908848079352088092813902693333788330577324962308544633376370550801343673341052395397475638865595032187065950021803349000238278069371709141999432799799288502829630107728291125540178178473129450834979413164136995048227428119467362101279132540282870737155416101312090880086889955768103579121152311332665969238889930687887869179940360141083099535471145547374217370948190260675100306616684169000347923548442480875126821042275035769695698712137078797585239555749787131168747883526483863735637926416397363605415465034203375932947821106325517662723675967049583968966034378070244644601025381016383147232625071566630878560897544561736946681312687597498695482258582919534050470008741520728122244757054777583023783365389231850579309542611941437159331202573867476947851029976312752362328393272137713352594185939875844058570792957622411158704341906193362870773924222727371524039191847626797359132981939818114143374714906006485854814200973533815586961983918309534967614401107365972137140937855189462614671547598391348778320490724034377534929176951028099764634136360708350614299553682236502990133333419914507592268243866170612485271294725435865738548495171896029275470768161737543023470262273178805328886421930979587545242053492435769406525505966955114163165923168651994574136555543451907309267099591424068457701565841764272951020906746490788788260861904244224046785077152056054402814912700119494212845311556192377912373717920489231598234349293890589230411789803634273279928981993650063841696849223406790239267765658159987097669376154716880798702835748221703216451351415830839179488661852763698558018682477835704723476029157477992904057735583017081699611520810281075914281445127695791125307597249555600919331016194213762567910605690135063263831185465479689591329066581072030294988298975830757768001016534508195818383572948002515628621462806448800680088328289465409459991827965644646596722763377483261628216121242917042210026018001947064488310232790247224603938479462731819584713757523674918457100116787226112639558946454596207126663259045853922908190366759149430036388848253117471244816519872797679789320517051584271305281693455376097707156618239142925611111663227812661532001850419461471847130250765888783575994696084831510157738200923764707686296360982217110982650166481908481272990153620872203023226857945802912840845679456975266395825494493914290738290285088588607300073720461989276204355844418808074246707054285421990521914233146671004944342918579694245688961223329337586476301347348235630265159610576757194798172846747531922952906258396524084496132648236505388297809534252859864053821067371316890156857978244276259723795979304910574050704677392774892878612935791197910203805937074329228066744352004510102249175698062671954810332939845179855748416526205442214596848393937984025618153716358976050923935764821944138276755448578458926299030279703988785095620389645266203660386174684649637073675555018550124918066744888585721316564574674585436599552943024910668910047211749439718567787886389747088395319567380884379349392272284825892798174901857182809908179438589066320799673475576459362114520407362432210179136859104706570336016263713069626375955406745204702397743479794800699421374190700572553775493906054394113349571842574988036678645011290507414525632166329732120295873233551533606391670823824997012804447960461570481446799133955995008923840426553587066607526383577725434218208714183336341459057868609864780658940872425036102568472043877787035040785005088232219506100068578233846840890885973327444274550130213205465413178379278348936494007184115465104658435599510303449200563160247949779396544543418978037999889796998636820729834852686668719344224627667385743118101687954219877885143364952962335325831461066723730460249128951734618741237713263264773817570303176176403946597853738937009430225970345422730229302178154417642722567095894185549604437744085635842983696144243767079762877745171897627698820414083140668305329234163681760751079878671014559060878914768758143950018061196446311862264551975871107895350840477454887746832920477139499799158976937902566314479482240872907334603512335980311291948799785415789868381499826072250867022475097895908833122265571878303957195860509790111022060622497168281406059403510074232004724215312607047547772030026057317687183069397653474285304988959046332537203071397597294683125904805421511680323684720427810220546026350935155712787887941038375677093710276336252686277839141676234768794712882458288564758866393900571012863836112369079048872347118853441010042621943625681776292181404520846788277129624508344550471732212900761689917161962059084693167175730084038397650710014029605371747586101384292221962721421571721587292209904766968106746708820540832439516237652162672589348125116288934574239954323018695068305046977840577885653981630257575325970513029210528352948975849956121716201126468140890355879712313899878397933302052853374201816098023760518366725144643657252422711965498699745946602502096968465430913203368077178246199631862421104372921093072059396495561331957180063755482898285687378055015768163656622154667577543153207363947816646175835821929775457829094568337052285472333285964339616780985669443846716975951382627885626370515664640976406789883041264300102626730445107041436505999382030470089778284563965502572476804248564428154497017034238681495383275481585007196090628948057341839697497545304041037490254068761963268018504317185190570244052025503304760836794956808216323660494976714875465385382048161583765181100495444321897133458176626835620497230105411110350878459522444385480285874754114125634836753943835999639035642187230595517725833648264991442873409578991039654007852427881337612220177015788468554726874328477853502478828916211839978249210547312079776577962840657615754986786578830513440032266287151231611659330664260669833757606129855257350589192217727628447805942721149127347477326112155165011813197989218485584335112779894307188440507011460620411031578529900704548722984669177148257561745072875139795338768482770310177749437991181923123987087229705019221417243060037932128896290348473470284970395433380343967628899574661808606978354520005344057009962127311441034733447906089507078400350707759239417776208197853383480837632479097583062330480674805871186602086202754153436331806928923022280174159209903146824241406231265373799825805521280408224546854481900077305931821088089492536373528776993941873257485952049188325757428633358939000275936502564237772427143762985216348977030586074277604687710251587732178029746886024115009811735583270287012151996883244825989198487933196057956286148215836588988892302536442329814980494025673192706350480001521592772107691796345613829283316684373697022301081394709559433085650441608509881300425916814302425468617253144231236115557148198180609960642611978940684691612869888735721429139736947357559213895016112374494905214339338507680876131205912657042876798881094853861309269072536657361335130267608337798191460989522376743252072236122107314095100382934784574043352098658904311406550214904854997934871990443136065045366066571886103445564627365547501625573427309635659383146304748688122514030453877370367646085239691588671473618988767071663811317386881325228089389659722819119418026807722579080387679316581112558381142061668557695244365034145707423727218681334414818092968813854817295700871605488816896404337592365456599012837741978800587431557101840710520944691131625335283589984666833064324278961249411859820907580554836118154593334827269849531093761664799354941370325477985565508340883028375698152348501859281450591795165954929754310712458904697105566348837062849524901508238781255875161471726547995417406291055976888298532954309734575290791587807789827066249129782376471523164167967252965739824706262717567456074710726194285926254071543618893599926711503975282485745778314009364508209847640978630844153832674655541856153186889899903771892259739165477884462546493351230799109937693882431664894808640473462514548012852776982566610696031692664626001898854751175586861390409213245158121090486316979874184116147328039374102737854043198615734149413411974808623447366371947562744552736065766598312628707527093690707391936054526532649259597664710976290601829460097893070164439788798945070623598099349203260767168166481707949887593270780012264069854164571645969643105043189338643385418985786990699541456608525514171257580347826329314400993953095006344852759613073869933665113770617028650234841380966245128715541915352055366763559490187102274628431786781964521913938384567902465536444116880690329517109764438680103634400210959758273130320516348239339393129539817716384925824478029898863437175710085610921328289293272741955738654516048660504188438333613964264766002517073068081675880550910698845191999153784414221456858568088279105827330830212768981647273954240699338711288914109044867008541356600754492539808757296223370283199115475472147747973380828986776579788560143757825181989418221570973577239014350208641767316532838950916949198519982639995390573335472936349518675557622626743573687593596580820844654993533176815277797257396212700200578754536205190850088798186134677261701216143714779030184075111891401255210126100254240720116183691287876595921464623328835057284509119899711677492606581787721947121774778527263007040388466879924958269757612317331011293335784522667839730301335547799567850765431502624016275314077313173162572382019756590855060851353564304906793229116758295655249677081676929738069575822358788021013627228515373169036906132456750511727691369915698748133275152660894396804239683763542187247791863979479224426774275044157757539023551643230216562739106085228029882083814830105637855297869917463488702703332487314974261849437495896941804582430092785652225912098239263237561926436301250319498635647770399229307660052496855050882610511222906423581046323623501412726101566395342299194188844866107328178855269292147771829314726171934765415979928129833619488209728873661385285093938178336836888347845228798455331242703352877127550014400228456368757516495304291485464207294038659039596625212940159999897703674686989566865915895440756347011041351645137288577722887539919696875175597613991171657031894279550199417373164703613381713985522807034354456887602208307750520773124788209329862762831980899762398199425406432724942627657965344799630227843994137269321711103489208652754813259411372898070919781464996193042389997191974152873312942500568770741729199099092404167580086154067455475042052476102346969309964049174311384946722085785151346330086434776623816252550970907759119831147952977171152711796244813879491264694075995932276461197164619845075252187872161489485589774916519964776362741731474668759140389348255993514244150470967954321146397544945639815118809179362125504537652319399378492222910360663249086686247066236456183765432789927765352018843231242365461051397175277957080764351125445398024445827683453446070047866750530817539987320868064945423951541512912847710087155057851119118854137533747524899509810115457714831600435088349867140616014245637365939354736439076421613798596576636783346124049900205411140547370202474054402913721862392111144280624680640031863564982209851052640869682334562870410036719118722503735799042599281356798998653694570162853538959839759504792114648886335426438600465112969580557579503230291413484785482067351043648845910388803209213476923187848513612805124344459652183827439794018961044982136211102398634039488256506172940838357681390476886476214768587426593557893429008814069241391430830210319493607636907559488509000395735396868781090076751399910908799174414180572758753696015484371574696008928708820275456886091171405178177323247564226489909946813402704789850825406735401382941700695330953379914767250581238181890745808369158072141381136108477749148002878646367048286591542992473482936574240013688649238011222331748430319585488642493378534025164133424387471751981747400071631771348036890276740559913142871592575156289580298807014865036178123448903088384949427362063611892508637315306046818132058484223514596368333519007383404516930744519700021747761204276615530433241981237310096905287551240927890691069861199237530938889715919457849441481738856905632420862973972274035846765372358206135380550032332631560320508968672318574026470008780742579596234288072621450208287813199361675984137406110771167406628483583656728033071725701302667089425577848603962309226717762860349363323387418278269021679661559994894047561163560455465465948622135987972812091620852732077510331556519550762296669846189511711641813548465673083179942785972597782741952750397098607207730350427444077731862923968619842444679750916302447555300035771907733759164117253307159681191945536229150254960114532965687890639837557006979796058836946384793247539957353618964400527587120928738998252940173520993502141396451744710051070321707157776242442694083841552555134719897159344982772030813095640125658935743017649843855099813887087695113355425326794356850608771026999781020312880317686622885239888489536240274505608918742520457623317260132477822412535055730390520840027683301277059458525024093535296598597151397788576168275215580928084291224212125958694772095478460530561265383361232175532929463188937180789740797382847566714941791493850837719997563339633213082797558965744616184149884715830218255646716436668163891643082077346916219103396423573788854458492514207352523640947234073870981023249433366258519037935486111175683389897616643659390372769859451554549014948273176812787714104922795549149316637803403905409929715880922898511270885638513735022703294126086919691001177593094537727923445152565649191273784218222237678355557329807941995914859497521694326443634386187654997560795501142161343978180421450914221229318194687839841226072562214236051595359165765104897213108753296343619465296535026909790695441921448871461903985497740612953718914171642726816174267813556332472559247625170960621736508925136506006529240860399678074919098320702227012144530079236768901648401122686013033224542534750214285210287827132178087685251388553507415045151560082838546320298022540641121945433363008352711283011441499111153868351855713336072039898335510150850289623419651492110280409719563689723244787846043067864906525959424778587825565531684782232300916085691470148059589892203116300353456281633970486192580090304479688225727525505801781055747619149725834818361826520994257324427193402386050892928098801859211202510019098935682552432283771219744786291355843512343320406204395910252716055649765932430640967191336104828602250983280127278769336669622552589256210519267178698497553574423169852354805655461767355980755146474304454464073173371088645359837843795711974228804470078714266433448829581561849145377487111763639080079821119229369062992965754835236486820606933847227045583711607721721769876886044144046362504472883364905788213412445952325303137438256262642623537929168431199616714133577873134339587770176670872307804316301956175510480046975732465157270287088361734134398303209905274831945596105795198692745729298730244181778434610724537290744325911705067942845869270056586289004666810090329459247577495949441122835546479843905345169738101422345872462245496370478624147365443568111608106377405376174443008570723740633855316297023883288856187196341848880223381384669023939551741984479371290078364738358042753134075176995571035138630002198329848330521249086473355289749360951405216141755684060144186272840796314331880646673412347652669962635219268197098296329157079084674731964285600331375724295625033476100167040820366743719257536710599912100664608604827506642569518877892535195976911630714055827669375169921782959586734147276080640305879162567846160158848293359843031774875215106035105742301727993542709193621929527454889654861388050866225935766460459326302082243781234261139747552639945345549637016568818954320979458501776812469960109638528665486508552194796768649677037478029764111686316231211096417657984029532464964664681073260269913840598962832095952620771049710905805372162606010262011858100123846874371280389809400882063900606999551359895303569510010418154155069125504951041168652462319988751389202294555938239013549790491522684296526472277302345575097010904188601186262243188450870221383818364013341987664633915478956161588101212793796183149139771338799735351758113062180125406406184045165331096371960417102839508341664565650224773624872769107503236388415922069733470514483512789228627455318096122056444489024130217673730612207915863796762121374805760789477321688344647433904986092877945289424793973796363217853115350113538114009321587578068594214447925925335383578295400196513112454739365992351488953414113229466832077691828857267692726549679087082789497840959235589802175276382236372637016787549437347263959447718202008881126498232520116813698930373615503244885967695770354229876977359488920824630911863803555682853322760557902420611255380386639775436269963226267458800926969723543033207466191632898304666353584986661961146132544143160762208550607118166727388955558666648671362873943700974207736129973350562527216395149075326915234940366871208962896078345533410888117330588682762028549104725797597808512964401353036978366964960142958613160939883686227511176511372968318026571476461665639112867750994002858438239220773788861588020519484284100247856271014749666557300587687363853358130335266436450403152531616998726292649635194315185885198688765092177098925041189854668682274605653223481653253558653205076968334961758201874355348538963374387557655472772539383878357005352905552178805702315545349263525187220415229320252047644317472108769951453149644350615944828405658039127292423217323017698126702024350452783661042052176989578658393958993351651726436604037081864597314051515779627501525900208735902135346516052146489737356329099936179670119368650900137493075211235099528640288786535266525992715259966797543398749043026994810741602542534003792670758251896366292630519385550654308065608109434539462922324988957688749026367267639251642892393180507666324889345087649869633061042823202041019291458077956919116774442360151999887949089747344915701002843862125432670307017672312209418055270039772374848222492883560530778163020895042667359740800145679130228046910419632367754199054799389224511422568125085647271960307261595544176463272342258779890657182546351006513360700372700890672071481559922058303912013141757144973882868977096433379409417081145044577206668739258592173689591145840716869859839649533844403970211077443053561928609997339242252795573770019043221775467176253161463050600468689660968962927311407700873381105789964496734563705158206518960558240002803434017379768484569628716207770672459900987145747547006380879032946214883520947815981303425020297116906297527654017531071865914691993302049175172862768362389796902742755995763764350517842005978345622001587312061342297598715336448376151068645275727011416508137263689717253387860219732615930919740318752800582164171609138356955083653519529891688402717718138286320640018552590235725134960045103679179100887406652601245146358528525184223272074088913504411372004760978787106764795762244347053972574006219233703406963904828053997581104205066801810072235291079123034215540888975591985716216631883048826019691367384514821010258532755525287720013358731065087908141501161248928105691819183615124037203560899753935847240792796245316486699645365383096703413148241098673139893407071582952019581848103156873176562993802066884032489465761094694026191329062992379757473852202258798393945654366943826286053772058451166777439732732746476552918867280750269158008897338561252685559142022737831551263808472900786814434248552321872353703638990920405839376927689158819690685757856800922508936035946457890272163668738264281914076474071378584860941862970685918016578098103798863870608771728575593266836205738964193601512590384819426105408590261990740209219369505281562828800365450644231945935423672592734823157992694496764038273334560171878669549172482369594527991182839484610494149763943220939524131230303141068813162717117624244858377215976884309899885473163827366618578386177956800517940519095374670221345037908705755112681168480508047591460938356031164871099351639045201907045742552162827342070693325622862762468249643662876691621669018352631260033830166848011544574680317119330482905967940814501374435774423707624291028967619679211437841032305276494934922390793200314449736726261082322363655639246212454951063842798196826330195774282307206272133904803433213734392647842071423033822913053592371606501757700783163394717147462795870488977989771218260136545290702676559735938171164535289823908409775283467684329755131093962566003584849911044273979151515182075491490020519584136270820393367700791310283205170727756794701712570142675920843773217253148635219936686713618817962127607039948372555698980619336205067332591664695370033588060021894606952306839192412287042398660737774055355733390234584141260457580209002469291435790300309642287996954574330818516110303039576291283170368281182428427394997618060608815526410448006003083221538531274080072571193713903496465439763564617510962999235350109994391814946022481233057815418249598669379940577109101998356005205454201279239434401551781729649762828677011488748322374271267056180216011544218641639875503237716532324780376509053889204740784874535624032957721689275431783173449087385221406811795773037941704988590465471109033296246189452150702742299325559266577886523294419492682143196742451094646926393418105234124083652759465931731117298792779590704546001888044061805563307882704059332344095211286575405675275526669981913847120064129955150505785178014839637924606105110374400233424952161846961053997956158942346574161632569211550331437177594264449933472508462342142790039783108730275721179471786960630506805791902156522058554122801398628299434922679317569272431588866472220989073252631253997283236845941623730126959897055078423973692847613134271425906425380560506624499539127039407856604873167588439805648479745059874200249648376434869031723073061783064810453012808618546872232682897137831227761505142314400930692479597787252189318862171239214576994044538560128345699406584493946976066457210844603779230347437992208772607451325615938137063078063113340768723292057355567052916942888603141601855113030682285520136032027272005358844487429446883263044740665723644344102715119982172982392429615454365982551525764039419954017336815707375739499634296821633949064525257216251669363569011834614211739246512440096983835386883657653450494496759347228109697325135079353925817432475759369870187420785489854988722169619490051486083440778359777356253614512015006399198937958708931302588328382463741848726892744565218376759074832837506588027845803676134591961839739302455055491763808553825909401383349196586178711852705947928685526211766288054298344381613942491270370469491348267479897165070201431622890141211019835802741362923833796414229942271284194671581880622556132170614006054830398413402679334183769394097478282812469560727925501128397903072943715622423469362734708904660747776088125415164996298700711295885652904956202466809623145679058687585974936645341543140935482866891289457372120712293067867073364238360920474788029598373024342498567285015370925743779783377467407056994514905967497399682455270777530258125994655995584245466373996124715387032428155466771751917332933039050478894650732998975789625340297775493323190191811193533297601347500825627057903164296988222552147949652237945127745138818426890712120330205371987510142502825758607149424372475600299285605192365648816743345003440797882503244700756696831935408602959989389557109747592794393300536365126274262165358021534773148864069028847385582784036515683163573837915425525474462673602718324864707098926601646715222683739139289494404106200619607111523476195641718793939350210307765716772743292675832589364425494159758878658909535329261605300781487607913843336764977793111276192775476748208125267942242023428245496251456366829729032616387129875375708203948415856116802311350581800951872642911887896512813302890742538739598322331014398742066411556955629295143079731797530578869607150668047311792986826381585047441956622390698962698944048882364038160229827492067557658656501975255993156652742477492009493779610598188541648617575241123495764374654270409341958906891075990444450403651713387780840478873857085958050837378024952606839938852894156660348848435231158297662365201722505593978593347674034499340573860868118356338114943994202990439634503815681525920061395619886336272463458086392242599145034452778969111615864125070452842757549623958377652515407150099957249904691551991178072858744193666390357890770390802085084909172626061266416019852047045470561977102765319125729316707958627804447231705689893758722017591595809584583788164456609857202731373859758393365988963211804886468899299386477735436197558879865377313941704415302828852031796338631345953508791644394305920597004245167550768067568012289846468280546991862430453957144076164380903417663161802728078609848028230177840540893992878129563227350971063638206921751052496126596461810607616969227174193093439389640005747159457373859316930796989101274146045197227478954918759001587090441773456825448205107842480685042618299826843242255167946254240050537933730239961556294260223603175342788134978977959113279812218359439670909580343312208084274429883616272830497480428978275124874282824934641594664012710966504057624520383788954174306221603362970840250153619942699342527240564626778795927914696358014379200390347975374752760313166668853085325108070951613491916612966700557775664337560844754774305272756407440543669101351293774086023289567363902867787871191257882092730877978554371499732695977519807522222269671664855586343725381197280745158646997917438709477924453363590923707093685272962746371798824086653871855974385652241053623484798036550564774603631819310615144490891614055425731954777389697960889851275428596360920251337761886683037854869295954225835596455841837237613489627907645332596593552490475746796177945400415549336710525455741493691419318461935539346705101968514731952988725865203465385776833531241645999006148728160540096506578086283728759383179926685255977603665626148956918009173309782102274768791339263533870950757317997333484613693043520137418546442713707227126821921447443818257473298100010371879104206728653501257784758219843641097762579095818300324959280456209248829845634999216789289799222046876193483218132103257252077467470112681758836897462190110840625189115288934278680492861016400035296563907436987993359536841515376190435676944271649107320186242377164204179147164724760542495710348232652862568058543212427314318139412726920290649767556700463614187435178541406608813512397368595713459831382787334698651456041838817631155091815554338375672417186218400197514112139197336364119469920755973572804565516152096313761467090643669680070425480687615908055252460624599829204709831564613354629014951569284370303440186638518911143294551334622076898621030118095964676214220063415604691273318594148489691476959951435341790727542744893356125671030513832550348255699494944994325862364915984862642714820574179070535958429169399603080454601142964284833797250386191089814820939204580341229485540072215779531934827728528666824573834136771997805054336105593467182854929204676106862004562123878028464793399514594046867400666002826772422981925537062965278458452088901828445962593089261178531101134072815951778890764585103188449095455535985429554745284843729602196600518306359115958242436073255304323555177565457775741682667017314015149778650495022916349290232348319114219781587110080274422085401043529026314594869953673452693099318299287981164188967716469929893192149417787914855290125312589124827507386713192499421870295243302938214578950785058718342807857495915763073444155233011905912954105070598188674195552055155851616109461348927400515867872382558540783481402791332812050294110933423746697576574284759134425717880484567668783939805296095671279907565897146736162707477791981683375922712722054045305857703663437255857424788353098097217830901677590601223643920079324480936627075333027937312200443479218701405575931515685749062576481447863316214988800665689409452028442083494255336352436930320121493267066793636543904380348183817503709697835705678051135111992061700404116052438956187979548611073537667486892741431142584431396175029848124005020360434386229142334096229557426115911877298595256022354925418601741474225757016927252697355146008627948061651534399716386200713689372764435461524263151608027257263572124062487062046244157978956224100131259700811004980106257336659675981139544153705692639570163992124702490014310918494799462211178373239009663156941144700351427639162657984948092190279201644417016376674506904230423764927489731613627226767392884284172197082801771508628223788974506486468246663463802911158742369029577109081859794050685899984643001331863978224951453432183741097347863471561820365805322543571132210608229724936483829186972905426687120835862688530065231817332385904632239865373307074178883701834882380788070783378221934247900473058906139046472145040909823564805145801923156718143887795012258121390519672706764415676188376498601767263160339895952603943282496064652941149963357959573888717016555430878071228517950406102074645020085237179820608859707446658947617514608083330381968994601542659722872801836265977314208310079006862996708540999025771481966424540767291925524422601034250941751183686768125604178415040593469192175653319522194145756291099047060139023601215829352515201774829445811642305869576448209279607775953091455353552231260901149932009438903498097718877062384981274133335018743141597181090966307822964477755045724474560421689116351534774970424245671711066507971560971844873477840885368254559349038322122477345500467500289059653606806330518095473454484478691170206209525846051680094345609110185929491818197023477753017457739099755462515973624967845534201784109091474815479539082497748095155428925577891214503781308661029029279004720084978167512649148845185823334730489356585253476312986356514734835850037309223377127460329125390841120989665926609751094189758495326341656511756405699918732240835884812011402622019392044548610265569741829796835575861942373595683924398153247325645794913067827596016758226494988005680001169732396484044207415625128389069020277648437317661978441600249575635740359015138871927861596248833158810580661628099203226256078930548141850698655937701259933917309462681467864342480292956471773970592770596440939131667665510318228323365832085025763125623746961267927288291704178488965510516841132588425582224857867307691749141073408523035042503969533971618899389001263673493835736241399026914888586874609350538583981014211269002397880952348676487165435907761731108271798073394643564117948245559414414898125995931728986083146603945471384686363000062404099701096739294725955844572285558592705892173904426463509233851429344256942826506933984851736562503487376522810406741972507194001962993372757587932627005104741533935139916307809849046767479440944519528396426071969794809277775675403523884616207341388060895373744291430966182103372779590250370687187193722769837740272083535575506549367627890655966553673554663751425300737060080251004290081842758822274366999754214070986286957440196463367426779865552645910435579677896795475767657982685211560914427031321669030004276460897400082476824376535806481176304115120612678499720582897991797802185643811697510599711881367809621281320554102153907759623446017186791837317617150342301282316461664380872515607517484631092035019763822080264352478136628621380225919318195196101809689844944653850897406997147786171779554532018846060636130199760685689742700401049591118116539991680940220602829551703459745111158001073434928885398094734007648590327938472365510306256245773350982186249201381854672340482050936317629048976720678320224474686868607325551785588394662664286019379485550227231141550779574276650313121047687568207295543052345809035631413350733946148444622774103042134069923230696364154526035050326576618160796832995118861839485948195956408789656688761352301390034382624882625289255302140959581116523261161886058258691119380146765204695874740962304347242325121170513782758977073785709562063158000290077281497600220036061074694873745881314851362549316706874713203873047190978256890094755908725643063871722068274979931277594309189719094584650951649929428352604917682393959741389695006957747354913165127862172113182803683324133980987162541376168626413162094240886562925448092096876828913249035119922778221529108032023482634561367718050014470955119103121640326941678151333392824662985596155244092701180489296983038839256501157323623847604671505610461753222654502787895902253514475999057913002002319362122285294149382207128753996729126436277159367758083034121933021987963729427075710530446196801502402634848250537422382022519734352887694864533816225220347146955693237082992667033386716470758602281304990982852756147965942277790260601495296744793595930298681138981887472788984757423137356850314923725827787896767694103861903589977495958356234122808559500267792181339056266595325111303166452167621831136989689552148493357474704257313021918247930432222094736323676977803675276539212554515160741722513894953222964347553341481436613727164584479119789089005666487051753522587317483280430599874064323384418405861455888778174236760388505070159481912793722171407777480268103953670867754510122541238203623462205210070664960188869493865509259228342468518796091700390022698636716303031199510682831349075500554241449414736767342626692567418699982516941858154541769373736430226382828081842080819699154720277225891676234790792529985462875945950716494426105154635426998426694423820176065505701253075454552414330815734733587424170032896867118443079957513218749539801678174858334420199796529158829005062317542169407099320769000181681767148230674246749699147782063045211287046496193033676830730764124288002136209781864272435632081614843299383548770842228478006160743653506693002865094916865331699286763442820234175363407303797569766951566546853603626258435137796943074351486540853194699911790084515227829261286881966646284066965051629232789470545309927613342955997932014985050558160793010022488441118177054938134614749965903423015219384027486402743933028102665678513045555412923221206260834290902759930685907808777581720341640265385834843917088181480322318794581744272826870595915061596577712799322794030803533164229792864294488692391216388315402682446177798322515840862969757406734621976673005147829677568757385430847456707606697346011449306965102217679091425755284155441187405724248146918117668214798938403047887902781356137809075557009540429128356963494987907925950521295276442039937827806984026306576244968797067036734883043325058648176591125712206772262088098823216837088340020897787403486565655580315943019744353648081688134198846906856060240618895161687061761437700595062326626180065536984826592908460127525693185242066149537177006430790953615619765114950822604715430889013160437350792169777374907519504060185611290545492101174520433095896241682487518813975523989990946340546392674934643411337815107416717807633837740268727480231712234997601313224487993677154575523797931949110553203408253270217766782850051444623640288571635437050662937381094989747152015250711685092751589301895871566571378933270215228261400344031798773284042438391221386353782006111107171213341343794740313095089728538633916614650498329783650870368657746147026657123645373814773437214673624549606582111666378199065701507793721810198086112092658240703789810136626077356020181032862516336612781358039652635671017009693986404624086930821657644178826159973875820898159420435207608696947375864425206240367636735662378596610082079332292322830380079571153509383065536406119572519633775206163669069992726107550741356206636393580505811639908461844026899750795804066647770377188928684801215054184516454540873825887973422212049848645273347195829866989089212158632929219668144753338115651912403680599024688366704515655672891144550148122002151760033963610281874300764570526068767504996456018095462170310863385622417359784431738027431106027298825302008558097895420317355741768122889130530047675905564474722094034225699994333313591090185449061685509808571156094666963530286748576594651473730183493644318565403629940319767582472249014389447330577518038856313851465907895407479518466878938138207000846411822673001617478036156283769096832617433259913594598344460063064561796384275538681812550953222519639421412841010846491285265620451557434237505377042271207822849977754704490602037066373511118090244875821753234557956359536438117240301320813441983632017227334442759975353686917320928328784977631369688280508783100855381209718195427652110548005667834479420581203710208323851515560330601369191108116237474798045763689260934939726368032969187907741097249053357255050734198527505646849867016380009653978534959505898830280306635513299554091953114490925451346661443991112342136612223707341248252907401660882588972517258010775141533092653171162782361487395149104701680920298736599067520206369340383913087521005701998287436535270117404333011077302872280436508050086943666485212949247837629488844397195720901578606354242468415248463770342423770694675862114525035122149616812683679190345621470847546796613846226202734078614225325063908232190855902943943289753592796170139113072369967679261184713581812958344654252428698778728217014893378148128523207127961218686763688073938543542457863409277333083342470208207702706234750106728518642615653610782863159513163581958152923868749112971386705563666888788645899598943290525228054235879020371603930877563330187128295330059169989354308797190578324904712495866096532904589066365793771651509286446894177170719608093630769461742455911236669909653666575046052790469417661268049175204995174548748445396422014756442751041016871131741837989356277183516403877932060231021260157553740623759976340832188294032055571690023341397367035547336891492398007033380012698920850781461418679520641897930635350302321056868193815490065595655028247707237494927312311598188910114120734472046649617347550046881365479996642487631194838542416497811162031158784065773252476400801208714099901232106326164021816706114613494577818092143083696819381354673344744111752206135465665632753636578642277378880073135953343200079615842920212116789561304630432405163195584839284563293432126571527614316693854693074573116427085487690027192942082190443218777238787965486927921940568006837081553010841423572112124106719770517577000474705831546988298519676713806538280452777385140781119943205102931439813501361836639688160685007093080896562449095698178148226668037949173028627273366757437868011836793020173642640163657491180957187840454629406096611011969283829369819715736600247781999463544639193500502175427712238779638820183627904406620485405494512906125529878986817277336422934710429955987985817956583775371344085249416416588410804017938838399087537280641256676484686105468473271697816080838552844099219110420502687402569349170438024461957033444370985816898770578752489233158047201663139114478571930515534234910042028809725288973599999007873532921550961555652272740585766833505626358910398982987472259575768200952604138267697558680362109619532567938203254786495337896543108595229319054751769845276028666753922207171041219261055926545915556622840653989517838965833536216059951594502981381715856159492189811264601859311715911604137255060099669446465888602825274461083881703572302067216229285445762870603020245685763486521677070020745170563453545002675302296218373647356056128175033856175951313848204456133571584126194125467456142426027955094850845237187928015482368262873442052636191990434861276627091533307094414832196628964423782683102514415233106582489956627160458646837962299856688539031941355568391514909784542964543199988800082556354967844946283826741623984931722494932578732897407386713726336237375876023753207620553856205450485541001104063988964814451516542164010764185780898462606134332293509039678231219367617917693453454124033714639251590686751235574675015061391774246460688275214423802855471833180235482062882051791731212686283815396660684129068593377253249364531540448827326718634023685221677452694621881208908340592139849213950624945840367605540903717000726515322613497861662068273849239371508151156842274196551066357875062789359814185059482395487172028065044742487456917894251707835378602095180729687639673056969420107248036516977509808200316518805493022057010181507412564729771333827898796832212182518447033313506946665954056957062027647426326600854253113967753202498110622272156882279987136476298962809218138948154937286090311299879225481279811504145488869715720485861728572623855934535422387820948050034944756648759933250759023553289207839102578330968167216835062715968710920240013872832923416264976666866955553705610821781475533097398432925976329488485175147360804450903262963329795710584591773082903229901181418538596855871376456220672617661484713318347479570152171214777322667932215639629422154104171445530059205265076959917283257633883857249762765529748150003108805715944110711833905628509972934114100973248870013870360958648968174497824489012699207160205574705548483068457926516534285498734905252611940339751142568715784317526818145367989404925925206055776196211146005016853587363775163841156400153297984830087235771050029544749581247184889761384174101815754360135873935513563457436995857166970559647705456953116206189801435601876693428713091381336503084098804534689427727293174274568364940817376714372520922097123449537887278933241957594245599230316191170716721089115213903205022925928947727769507052963825444714517099768133208625104996373439561005807284548288850296806013563144905779714245288309906546588738482046138925444237679282218368273614683935089420041971016586606791132277412471751927560548078456052617000641421123925873614159073505015240146511041043529747915892277529561234489010593348470087117083447994078132338085773444235545961311662214325748944447623827475240896454397709405795402755324278925242556806892166075417661077586740202828886283923829895031635982924995789547327058885048119505043339611311527961897919532530681758107937524431234399837420144308522391638627283068219314740230458242469457127710649765015831975486079413831195882478941497745452095557799197477010300319511686432104626427148922389389086010845605943145028387603653431569557493666088709379933879150921352745523553063635828729457843845577028261122027085623937161140760791992035893306382640475410559877366441459378723443074847966796265207944785008478718057001106047979176058457985326534747718203813650815189111521157715321920225923710243801927428431716898481619696079644856480388922799198171250138221605904718180489265382388240928154031638307546392211478057519785109223351898539145992956806261157144846867544038802857881001648390097812351488903896999288707017817675410859188255305385289679617253922989810820179054516681086495597081131694511692747713566750988853835585222230014770150768330101823026216178102292856392202296105913300461884776560548984008052613220538564846962955891012354093457195659369419166265164381401672590924989762794813320315145943837453034298609679314398597640258090648181022282817385443939470663517974047184107150479734709094291701618516898557606806006515036669276614519219270339720997486452893705695354752731389120276598528332610625704925550693811869332295636977423741278369063862336353881764045094378482967154146610550848395684799494889146801356740242270619578454862796085360745571200100062965375094619462304065307323876429883407088428829289247970900508817807233371847526394744594238419002089350868667244595724785027726436965387899288953621468691949431412040340426005680881377870678010177532274084010471932606183133753825639275575755454895109955740897190107087299626325566293625935674115077668543442296722091517345773305256459698506360571244389280920956994573937254608769500508928994153291909212876365431906644152760051295823517054075905160920621849628086012446873487786114841335065560252352444398286119315857735487473826266559835797843624931241942958473055341120904564470218409201017219309731456075560853757611328320033918794809620375165573222305098208203946413583505461573316478566771878916343167519481102250439996629057981164639442282942451272102772373637660932789567246163749415425759805161896248711758359301657096935951406208172089852087252726886014977424554340420414150507534244760644542645415354573554430562555663053527152225579196444945353211220799601360046801920082787100616506449644774951513647231495361497650159588788048736022158632188016186407090056198147958761903746665683964408906403358246512846071184060712298531161470978399028949862672526097464345682626945020590491720252548344780556066609761229503035693875597393751209561254952944903702362383701159894141299670265736890736415888562830925358721491989763299610429994216443325814776775489148376171902956708032846914176128573568179295926015444628591969791524360556521626806279501622433154841417895339962522699944931921512915477677210300248908233665870360548608844548439154487947832058647939542760868776803587067239922518177640704899479301045568449468493614283192355672411100501406186409031530431767778820236248349396633052291462300058660617051185488734743969567430830527071341849170431297007391245596782242136087785356949492705706853237391128287295315592993283546026189682551517403505824058569655269280335518119686725328364153401489598207524418506905303003289275814384481987418783941982950398857865535207440689894539690244778112629405051995044928905343447319136547137596539433242902501102193456656523701025787022347507010033389869595980325757298849473493400915696622992516733039016613968149809697847000301605125793734379957115285818162333532939154112038918909431377821951610724061668927869156096501875126010579162666530048919102048344745543195629271039474796018935676378195240959800247372623106258064365385220604444371896197608776432718802554660881643525741130851415910902579314486768006551347364633840242508911674013094098367533879191619866595088001296689372302958859971077676869614511809930267961979102834017627354159572461682561670580756797856151131338475306257778779275223664953115537312258232886418574938697629028067804993002199447417549115132916556387964265779058352640364111477241583943962954929859156976379197063090055251938591896091921850624830023619070828050489587298891430471646567524063254226666835719723603010560636107806876794457356288789774669863760745133453699373698761109846420967380992130433578704754648828268897242170003361890295338677891469086945423398212185982858983713902848328876605558161530727417360932224780249561278538962669950893192655114064847347806900371928671827292305884711072655531232427176481266098210863567342328869331740325464556999727783145761017245770918077034390506997973802002794142330442817988306940092716480578025392306207537943370232714719747438471307660526107851256644699279754075335705765850986904313215017911100739286758670888044184164257907989990738447681626819982787386273129369373311317463431700570827086062583400382969111221024776873125606158927964387879935336886802894083999493096877656530610625030839440171564641402515489037158119710358295788066435192105688849541478093699489507988536772503199759049291878333786547226830853268977897774493623474324856238566327677635430337187100127185729265675466260071770878100484686718947554367094291005087252000202932037997449434026146085534349977769283483105055748804821536825907383321196241022281432919519452426585656636619257530213644329697390622381168315796145371878463898249311087590732235847270195707279723669417171978402232313025522924257261540209125020925767174624717287014346122145778987709805065080436108551976095226034212746591955176610466001133753487814569802023313263204413471489572005256445406967609002933566042035693684809245972598324961909562245330409745989752917461872522476847033865275051857781434804745358011398288237496850259183189391899552378151965379304567688087449616991774346915810526038849708479401737248852328702757264831882482093662321151912130116475671377019592736833891809399378385222895046263335370608855132585220819093680399214531666272348230334758064949210076135103610015014571180370003451720574081725673908949438099107178263885105951307899421359287674151221686689531522542044830695338834028046527067365525757054674164820590852063867933502002646096316258819945984064223395187600594103078085856140726618202160818684182244262343680063217115212756470100585337379333125074699318436747076260902505283808132577580273916300520106644189139112607619862524892091431678595034025081043280965051957586397233818498205835652619924638548458921928682874356814078450348153587432514750268583021180882216142500217831565372443180490941455206390906255026397254124844749473519487211280966691402956939742759360001727995236117160134604537466052045041701087021841371526981466730326295750419253261162076212191717094118245827787781435293636535285069141942089302865823277874340038358314224582605734019795532710491739441535533206610720904923120342399630331096332413272297616048096618870846268151167563805713786852574051049560997555622810303533735906968342814722428454816144978407266239729626885408726816604013652056522245575778029242767260009407331995668051864696016594018011511759749521146324078306298113308281622266017093946819645739799626562152943252485148702733959950126950720851251922478622227494144126160427445456886799069362159646853956207790742409926179245571032889364521193531583055661043783326388172835894818588337734257731474010805758686178157616282089106392937451784760375221110163284182238648532225313211821298730942202273698762496685912259588263383435634637446574707863827399597694446933940223084395777683558522388822922685456285513126720522759177075694599267791029862182382711176227585829725962843874282417139183050801212960587475016917268551107407393995930358561663940689166367032445199627493645668209598130747598944286606799567680180679959117780888220519317240641343383969975663217585501138563172302953226416305383025935351443627487738927560204898894173007163242537791542363410370179791349850690019922477780781693374333771589438150579920629724807858844734673016959986470517769886745796676728776926586255995208062511944186769627083775446082836586693109654326794666587353139497520367072958095817487292292400528018653789023971919684151819085645006177844011005333977342755817096166127313456061093569381960814062167036784916171514199231996305109289086376499832174892804284087104309234653634283102488523274033540685107469128667191180516252006850422472279512550824231921505624835771974588897119527862965930913518221722580872022095866445333603327652942878108156898019614758396145670115784394051610613640262312801880156724794248191552317153822265012642421271152523269825455039919017039763103619792527427038585534710946973238059870333422443421713481168744699700447945387455187617702214859045245810787110173669980312279748687199119938453062918571255476861347049668730435964171598309637337498537334524547478107198053535618578628011767908514079956823795303136236071303096467442405928053357767209130319964663209663377180525811605741345170786000835560574233845033060443381142214337413475869069066060437688326947526370644221616049031927291318221012842586460477749705610835027043150249183324166857102078912544277976392908435053823386641370540082303435800514071043435489281952814972313828780948360146316761214275992410724353747440954006564324299201195401844459199327928018008615568272851589619646069177727115598575029197563217212584382600659445537055210331543643142240313412410450417767761561884524348539465701116498213453190113267050116920669890251240551953833287601415736767142489663048871479496964418531781547835521587570596522016120171275942206904491843376499684175182263442618578072385529321239909971480488995433159286895071379273354780415652875177741390575371896746383408492335087390698886756571246679391778580119247994006531972207401064589715438664391647739068766462832006341279682398366407603487673496098559958782236753301853780736801131421549523102465078729296822650944718231698047491288538266414887324892232114459573581797648200436653389201952566833335926327444690711068249127483607240736759255634071399843812674753400586532733649103307546843462389914819483304638345675013620057824038372183121304267378600584743672466733100502492967039349412450439795152446063400959737160192930803235832163580168740057564254775074475669135007031726910803676783182530065984989259825314080670301184921187603384014229094790527157424693301776687481344598307094933106319924072270354396436378819007340375326614123618165552638744013212812327588871362447968031769061518081978085888755379462251655190432767424040269640356357839373551422980041338821772264349030768512774652077039611586141235497925085963762607694113293051616894164384547217516749423910835873446434555968136684059575874021902316546474462030794380921945673115548586016923389131705483344309955210362812741363356145065366990763888474212772920021797584945268977332531968458602701701876965364574859675373919755882186417508515017166112874572559887118290619160018175424020575835712119745879440352975255102475293594762516965003092135933773105930245615325802994106214786248833522837147309939316381037298854456902383808835052886016893148575319904030383162276925398212003572751148524344099380061128919155182970458662233148482580378288939867955988846729046646984758526932574902131935908404782335662062688366132864693584092998296725879642871217366810731650572946195868431871539159996535531685814879573953518426671330869644722417215010613194185559721114412096328867226783077670678791929142702013969874181596373564316498553286723800409317464462689968672803186245513552605963806481797944273616878131631776482238035965632848913473671666586463302455773518333966876236184607619542052467392136731096604227462603051929062828757857365352053590264498799408615363376211277019475635406281612565998391603985502369582820923339199537790301468915259507933255188944052646697103613984186121369944289133157489470974870188985299982359286172708253998631416782954766351485559184625164057010611159885682859787737295460769256758229341735224190183077779831150880243870312567883430115355447706817500339363676040103596365655211886774050321055938935861092776914019149304296575919429964587327310331692562895118130062898470670198746009676144255575456690305394048700090808065605249191884415478526613789817281925728792191796774071848653799129918917596517439516149716764446850494339275346745581378740109906879467872732676514104272360157932609165201938722442678179510281455482165309644699767594773161928941245411884965669389045782870575621558590379208061636403152132684998664002944198545944218911679125859467251007946454074559518251673189901719296745341769686621386298183554357116813850117037229814007873575876558578483567423004781908510377596303478676956713816515057706880889344072465977754437412307371984034964411925865394624402627258412333279429731891843807088342788997172956458117109141555630208496576403779257110377312352731490602099693162859869384334135379744641024919921518113103138373131044347713788129811050534274574768333919964929510184443719434264349333139392314126660640548760154350892493181753109421731096029178782834693422014240798503155972760531970720604307929808110751070290145095143445412135437902273042181708463227277339627521321027979775280040144213470487812344585569724129820458611742552024999607275929298062489360262746958706570860255042790745368079771043326961100578329742148893204503500168219845436276647088449196122396249263895205972376490002862400860532575750041511540558233438502367137332352891224630456533888559840903061720285964920305441036403420272482518687959436216725810808477353121159291113818893576591484185129523536974261618085192712909967454033041221058574675466646174167115748826825887553116205905694416848660235721574208462352990624465983490357498041130333263516346384302166965274256510149821113643611825663743031829092015913109131218485879988758692462112380639856543469685804821988511414230208736292147970591398835781949321847525536942159485588737812135919953478233648967592268051015016704620246633914747185699747872736083119433191856307282328759052035316112698885433052539142097446659905204408901268617481922838234104067177834492472248474307034683565682261160215823185695798261307977386410519260301184631483466653379148557926237199734823185797356827369732439006659917221180872672621782262005610842293960340090306300819625072002974962974201609430556505504844456833062596870039300954122241234248338933445716758182744921993562707261774819371536553251917617048180669835260531795990047574206193029990015420297348756587022810273760608853498532415255642944094718865373289313950794805450784306856051771570237355701741067974517579890085739432692155934007053980419164118723413444042882353062280710817529585761536695641030264773418795443422300406741692005449900560257868760788102247923877523000611650505911044314861745747385570758904166677279770347686203703909948690769940802636756174427718532183634068479752103324360760735599197643411668073072932038836403491271672439417295859593288634738017820078163150818052032224933721544408384214123183759543199668536438964598498150934802601536530911515883683267227345810683856569047416396476682682269170280543904801215709755882154905589374216192500493729296163598028625796869859876574006601250589122169470664250100231386806325691439651512510402573166933478397847056688994141085919132136293070775871401656073277740750008992729933064165760433790192013370267685199671980953169176709295321629997628186768134386688780058578399911655806522440219971392847833689044802099884841853514325754955692241127451436021444812458991382035070527851961649653301654008302050060198076064003525132242605805330208274983062343074418290431654995393480814056408564337101817158507162808414832463523281557487595044264690838252603855547624304117545864035658941547423738240219083736158415064624365950514974185992545090089930670045254672758796979323148671900343045360181423718984802736916013864772848339373754386362039879962172103667730567826631948664115850684300124379062931580958789131789553714019630165857629210065959522022755309237307813290049116667296964959480810953168572549044720306833098357302452540656947507658669173240916160314294276371106674290529742213927182667757137988177072201213746061589721419320900008327367389946410689031229712887416726974239613645947921148095905327018073408431283986398566084481720341735373051131788499791019492714824292448435989625490216166633968796147628080885631965626449527241629314297384995212648599314353637277350845463536331262875377086264564725036400294188019445734498326118825765118549399445661136841188233420209012974656159700731904814037799389252531041561402873205845561981331662629802106738734349550435303101866842326353858263148800178116758359141484657240541049401360192316991693450956341403142111146704209113527786595689714895469707294014000001117325006493684606763070517681764030940424345004399557940092022548327058401706174404302355535261166562060463891380626045921545980964676759638972037849983464429240729832778493995880787323209858821606298315495729311868999484603905034150532474988130168684686408951706084419062728300515939970241923736786392652237860552237155433364004261832971159929191399144291225373313893939647297998709043328784982442684942517597268361926005769878140197442775923170883285050052749228391203520138880484161580943667509439366164058319631000748859654906525301518986660129646017279003684493101455549209913982942565169038496876262455441192763879331945432924229087297151101733520941117376341280490280376507967812817355188760187354217383681261665518853988515317304738649798033247454142409640618996388443748336483175155308023189662603328305201309310618572877549431777198796707175008862882502420189345685451561896067170303277489142619845584502363397850241142502195323766445697945688245538531156882195167085515487477190807518727502970879391220397857535496319838338349562009306081355949091999010191783776820461200538621491064591608669429930587884891027797880353419626982122141790313694710969946172203016732503881343977999933445004381180557516060756351097270327713637368610852589395281278469653061175490382834305181607677045098438666534133036535500137797541590057168149734103194096517611198758875952087405243069064041758354266611984621450398237584754930670438938663808865568363514176767749547852724770914631845936780017093779441512112588770272846441842777217997708196542377291977853522005512095863254378163873364524767191854721031093947792781791743147467711742731534791714008239258852737135217655942146630658587877568053705217789149461549294214359529243767561742873674546060913270674520970527109070221625748950501866519145717865366748489809667441165097310384890561144278455990952448194077812602854945691875620455208997560208739677315823363992366733470087339606401050106395890789579802012943963773599267647984890980689871874889783722531648061147017704791049018330877519581860370050242173290592723898650226746378924054947786242992521987436490419134831898967896128363401526449506995043413549351230613302787762552114138318252732780650299058016310741560738904990720589047382838938208025747936741431700394077548860590884835964771900505843214507531626314799986327909043113049841358170972568173279144627303584662827987172355307247975527252429469736873703210971002525912977077953375600874505742937029394013914466269749495433831423029712706927753379116640360472643145379158657292003452807769954946362434328144358256837543405594244140717483764757933170800316101654466816911091011722760539973078027388822831114819927963308307477047420967881084333974173072417117123255143678423186484630653047906803140175561241591806057590465638190314974126710323228852149416407561635521312851470769748424708757379963421973786135957955619017524176645998549707711726873513607945371218638163673663149317983872696095601232947758013174175377484968581406708541223980424741378723094516782153628146222042780692188911944928605785921860734207270014780836435666992139991240562776582884349798172225050947052057652251861359828408744388819842014511208625747545332829411722449094489462736130041283400253332775000826893460436773844077437543193120912638720205211284319193674204968559744503305670124225291009639296574445184149316833223277044387005577251799755914374685997103319633215592080492840440971851506629332844180095499989295663611053606659640121482139047969250941976336953860008302799422696212854614214112230527609135948526044554468400961808393124520591239036986237848238690418199127651636291270298727308536952042383762008223612359500811063470129434690073142376942401010814452819812542606529374344481672158846419188674391197926905698804623833437487203038885949334449286675505455677929206735980682722945550629504511298367478491184139876015265503817358100585544318828908294970640933000366073879903160415263756672357906424374533206841465435290642732677973058772082244431343395090355227865626787064311125918269550957319149132276892542340085341706674139028494367372392604852917794170724571135634593480932682645572657635661295058084746104617739244198197314012995360018290834349693403615520993791488165995774095095969642850301643618443020878324617425005051567333957569266393474830192253643833865864096480469934076253938945143148979800946836994670867550860820003248314776771615859631728974902181373462522082835631090501847298988757090809785479273265758500807651966908575707258448607505818843630272200195846082966474560674631128006964485307586998056755410219634485483845469605553372867697584591389099480629852485832519977726568194833011037711201564215659508099750348621318492824487741711444073148527176540775611883622138203551724563819641670280987643950588930695099461934033150237977583322020133805084793247894486688532323895947457820231279095655669456670902098214406372715347151365344280042904285798466912937179914429033594181847860200772444183977107910767828154140299991308313758731063764321868044744298146548476403484817591669873048584726781073639811588645696065546058980254878982831852580284071645956012898264066002587405372863564861303572179299969872313237248625022473866942616125184566907257844346320839543961020873424985620044219879517999734469701618522799969356185676999169129148300548111689551266470252662792664340299958072897414597018406434778375197438454198691639908595122468060071123118462474925532914545374298427138729251715522449828707943831252317850282492512963849212684320513052596353108768866935265782835993793610463102102550166035000573768563476440799469052741653331283484171926775260442245902652154531632726646644412639744912512212355186248863069003331841864052437098161248580492652904993219419893386902842088529397362272344007285374325324712037141375421785412571583681831894924878914844694151344911857168811884810786555591218563488483252814619970258657451573062779908473069784108634526548123545911971223046611602226042043056313315825982751537659420024747143458862788923266224113358778003300072818160601222011400358642175543191197011954179564190241016245164023935310860399592795953281550928160455524745611958768754784734296857823860160087645728625949424919959365775119924564243492729189643877693783330784725274820877337158721560639375451860545597472567559599778681661426500572856337725238956235028979414972903479362971890386743835072031204921221290996040512191068328384506245594238804866143500248063070643346832546858160712759266433951205163357897999182154932343438462839518343305942407119789259852641228454656963261185594073044664385811239532602953602976088242761343346180057312726985045303073324422586114319679313640694080187209884790102305628054765767949391549576582172307289736075512635719726888815212327778706178709418174030250999788955569428558185027160888353023558916326740441348742524368957033575447403377836696290573539245687342898199207393853791430964626826165445954211467407893846546405138748435820165857630624880165749858836652472931509161391598851187190603346055139520738241089602440267194566829588091296972582452935749507279860715908263472118860030353596081181890896258490394257268694784501833235420130711541595740162713042514630993890242498236567025496354295945792032085701704401907552631996188585264595970770008588222773296019273368232658651290290247961941833600911516350445539198915316294768707779138817268442825342632915499527920314863140540045432905404544658817469008822969584484121025528201037693111784226360520552977768288234268276850040155274466401071870512437823786186087444870571624666308087262566998118892645548498874523166187672104869033846192992466858089721018877923950381344425148785056640215823071204598842127503166921686897658136637125163308854555304920815665418434772807380490415939345546391200186794761858323531939912143640999346216751463122277257006237730755004967347595178322869242583422392818425347234740549544333949384932014808333621815024332453749814735550704740144849910699871818945088204138471642039161334098200840152017597628991999675934109312473445691789611896958998806787878507746201441661963870121678366226367517033691674506871247090816976161107993393831329285798722767703819690524564138270784807334564543346702034723975934037840750237601173488410326496208644974587876660590661618703174272832583111058383701963030336305934326630978952528458049059235659965096235630764412795576574210630743137990499385270054026449171857519455381308411618498142377494993954907878479074800439822982694396170254268314249372550319117510522848024808926527627176232205489213387638514885773845782250473689356538956407660066843535846597097340087456088875148911578498352035875473682996829247136376308775178065295072098006732437445034755023052314459624078296283428486826731101206055310804433983989570223927339253347035593453293938570135938752786714759208881839170942764537665009707599067919654050942549015017236992000431420137108206694259692386800503393944829065308415609463821760940337183649933776497787801913282716600210043820046562148742499114214702987488965709128861819184878471519816467564906440182554334354958383743521598940608701804969394128333892708053467171468946577341840879547452707845342916748803187975093597079411142403460244539685289746085438156589606864666739660071019661838286890387787536707172291043735107863866995523278802709811090474122602204578084427564883995753474997591925842271110430967367170774672106369332151734021129075625729574228009442284390584410986937070389363361573385222654704507919628560833459584844917860500229018953456570272938318920027346549613274538295329171968024091742439821454077300978950928790087127707028635776256942381475872493071271993512688482987027170126595899886971961657738927509478180362226694188488149661522209367275071319064048295482331729675222142205167942942699882799047091770855862229128823543910528998561981334540758673899945635809168512737798808746246354084044099092005249420866154637447101789003547263221959423504382140107895789045199934811933020512124753456527667808739067269859133636438940718454897631729365162300419694118461267295585367877813456385622266706010524724079234983053871357505242910708843530636959141988636350078061493815026536912648409726339683672703793301433264794403735346745505672941313164633511938922002585484719664948466388360108681781523583601936719285752935420678487490189500512491077834460914828386032735822772695704262160840823531611836873277866376178504896928453842011169027965803727023302186291424305914031058889853220580068448150350914986256017827411356205526301147226035433244934395142065247172351297694330224319262419289832085417826708469582618976908031182431439712124527266280956047439834259868346923866227248921592544121275509572002690923476335307383260321832487340702477221579713991552365420940723415722215339600918019319586533753349080626101647767786079251339525290358291165182843287968173599374356273699244767573406558407276539260583553061948093623090811843753339149838877010442125168721444019386016660594443254347631618205119357774002040010748147004200395876552703976807727914508751145550002530785736119644494990435373486659292342700214119999023352929713745971630254485885790556371311024609693741361454728989661837600114948727256207899672411519521849979793480914220359029804421171720546831121798809626375435777304887810571054816198711709347625654493618421080757000544719710540358227804136967104767844605374724998310319052972710038090302983058939506399654033641884562886600192429346634138597337944421035146278238350748012289643365054798353972263974874289632480987554142589352917789385533852883282641441266385817110624991886563865409548614030342187271730204119931211483393835993134351089100271532383153330917890873519492816563355643201089711444436284984185160067918010242096144134220915508360375367563968860384046597473889830404571971012423780020507555352434601765196046247529292490910140324116546733903165487115254751418300293826521018040116333621400505562015187605771953899500589186151971239287255403569174113761327525385000232018261247777532995136440989659439553078551213210765439598053394733581753495739379313792987118804100437882778384667852701400714872819619143030530896125346409319437746348550324153354219946992718932961567648676548744947929966537677211294782190964304624478343467121775949346163270367388677910977443072759270948076203639300747880758807884521439431571097763682395122776141473117685482180701579011078919687337310867857821011977207459117894310929847461752238057846031257755406570278219207494663385217257521136828219170391675536962992201169988093998295165125810652811936886610483126544914938333190060806338255222285500738983347103825863562802247711479865773026093842322183209747408561446700390315375209130843847262431021888951588629634888180181344035619070385622558512095326610766511321604725867601363160314534314283160867559425327201307729668589268561888475886034456111067759005749368560355949371857957748943767511883900363256311473185453453982217230450568489581437543424901443958628640380896880964834681739223729569565557202956885098786948846595667745612612512060060034202454835045328302743523764869093729276868573341114626261905369152233841787204699567684567679966500215883437969526894505674974623105107223132153276081888393766417502818570721380177870868627564201780925012610588445199769539493759357915488322776341043724579483206859406865916279415661316762610521865733607079750132929662742147724891837672334138745882683666938299940711271318190030559399730172556294011906789393773785410490877597743033745971355275699841577583246844470197703841872291433081433073721595573613418973268470806809174414322591920687892619675570456641577991007274779481632328893961365379393871481696499627919414240128201351048554860328580390581415728028941810021918251408005200825467497607458966753149192089200651421529662792155795600108201487664445727864028054892433867278234540134646989685168998958746120111460544617853531101471695300332059023293607347897667177192047071185524386985593958246400563276034927547386283154384109542504155451235181824029359441342550393939916367710199260014648933272491482493869771700251258677668188287314860029858809201839644545628595852386630148994580449843969417028583788269427801471533736796298885229845617323719298751762351153303393422567857384116232823847404036349223752637544408951290833698891745478037576335481851280373244545713120422838294181793595388547782501980000283913607789878830578215409212527846237069849976660199453693307207006568131190045426156789690750709552509934421967844146231770152229258003840965358983393312436605597759322453911445375735421157029700709010115461391022314715643915563887940401744886757217446249168849243034193527003140805471611017211661121775542694425712162033538568069641990654406279083994353517180597865322532089517467537011730285367486862758376180808275894511468248274898536601610301548418805641688912005829395364927541597979625700393646390227615593018413918392560374607862123318574631341892174762016683328517255476041217637418645029311212264817367500005890284307175216294934913264478395946164959776688446235236414847707336764313316873028430057008358996222818461402179884611624967709928078241733888817863094548590674970471421377076734887738965302698648048962020969391247281440383468060456706274957074290822769658871409345587757538154323024611563221729011324372755895815138062019054077424989012851449095467890134859319315690619978808410816011052514361496975814544708402675296929674146147146982150761195427423563035393512207302167301094616323440567878493874766204328851386859892874353244308272812101193718214804990001548324675930297125862731057850671490160462593484049645855247097813997833844658063792025790597371007689040026133750197427507661676526585920975494168823548943875298246477492056666196241980559498407390690419866405320514156880823591682370361314655443172079475707100903640494499014057141200432861166861127538317098046843451444929890122393210757193649346264368118608114026749646125696629231799054038883225813056810463786939659860502697542664010935459161843041766503359931179797242279246626024349957708371252119188514677694069549891515556216258212792190993757687199868974849257941358989838571704103370413417939235239963078098221264596285567421775679240102385137368157687231713561763602526196064830854430651945845990825811121354503627996314885359098028177288324173126303250309332850864242465010655948407286694140493868021434991048555569536287398486923350735055260889608648155039454542744804966337779868909792827415144517226277147033211913308847632909616168257904892311226270271959935014973836461406655786755513309616676161358823677881722466294159586418440717199236898949962719260218491004212438107735686679662359456675730886683983045368312324078509097324442228857820407501310786975138648746072039462675086627493419346268491136832670601418695721223450164456874834210680496968770185896590877594262840103422916522587949300425344988474625903519784177343796804684032902311558219572840049779732515764908364934165109013424915408413671546155507217190178347264814478155481061420686827218066725454319528541990681846960703118309796892397394445067557015705981408963235665217858637638976649627862903134784997476760830625575375987285936112744363084581755427744079948033594249706357672578996539844722392692443377214445979107041990743534767989302158582405964364103912454060560907887339143155474435557940271670498732191840961866026017499197421260875038005949870298113879304707947433583574074148401833720142868002150376857012260327706689610406222236390998484430286983212471468114733081416934802005887063106027578284314311639447595288574010619184801514835908943755688271963512605351262410948753847105946669183539529354315171082240116198587806154939323700306738770545586021062558426917686398331965372266934542841089077235435537299547556582892157201776450404152145794820776772912554334785975251224952329961731154095450549030990775779201211835161621305109474730681756078620627076151995426950827012400184618187046397502864784078617780588189089937640328167650413852329801241650050451785304776058480498465201623750823709057341836892153295769588271952845035404391443611172391707127005003230226193370592263698400443247644538309386662990204711321419542330783781699510614677519891995064322657680572236530085661813005647881630066987001810964646717818675075647682829571886447083482063407827982405451047407253460617796825892400545734304882895170382730023568945485243995642765869116737612220259919085792742066697832601428451958311957535567941820324061307173523247919632276800233012677509239424036274690003770843411537673790782802564413828440032969351355469873830171065717051828242219383115762780261847679450558897449928895406727064698649811476282367252498901383455896497786976711180939560958108141021218125131147502307398793765467234300961978056914787025172130351349086889192756401808855158763662071700177218068643713101121578908058821387811644698369917020196172729113569241272013577679996518572170528131868138512074833710852723351138206288070191741254754981942447912748135516932232081429053230750336082768173736704210868488257834921307573021363544107901034212098471730177290736799420071724709045453487315084921510587528207230584208445322095397073706394782092525683749816451409986392635681637047907027894334067556453119262474502610370637726416699025387220876852521979172924934464727276878084481836818738013596210776320401114368252972171865776949813955835474285681977719310913437306764138568429549374888222871017283683822180447406266393697726114686875912624457835445991366275757884880187614583608713229026707494362943369549105057185816480172884997472244702853051121802144437329219544656899848856293517193671123775089121868313838380166046220085377493629064478898111107511192936615983241414277391743868075372867514776670922130444826886311695780076232061064142241486503878308282345675506778293815711931468803593943864085788976372796138246147345305908230455048497529450859275984882281686460969890919522806236053152308433057542168498601042589607405389395556977003723401371198623793598521126458764569399546520921298733089152698283136260076525542955203691192420298805893058831641061689656996826585015244688344247528071022269968632098783293850225125293319015532712734183956749557388598872280533662615687842546722840147862039611120816851081688436275226824096011716916690011657465936872959646138865520747200019307222418639390877540330605053364278027730896571518333125408058938784773836052230036956200432495582264850246181475736624541907437268401873528146834122153209079819019746238172411710302126004613496485532283498508711779146673371996257267590418173052591754152650190825849859502620039901340773103892129576303627401257676431317079243914090918163067614070460722575306619673463799397391757852419351069451057777937302984790734945889706001873066227681206186093715768846997220489453171187705898266400476548552754749776397118551280066629752113184078849158770579856649073674646218162200741707191506953289389350610004578152756343797345858360306199902236965103995792191059153886667254168210475582887658840538421419257866198898606890265817106454792206857483949813452654668851503613853698545384347235261833597271926352087223241798997207272751671087062543466352234714659988454691096564722796869566833240520831060065094442213775884505813780396051424515009226326281515584613465824252939827279690381477644736982186524725786074057291722367010260166045220912096790621459943838416322529767844980527519386913162431101948357277423605518126178122128970200804149706511403228633443441622184310703820151153174563869106353221456944505028687533391792203422707381393413311218965478696947492051216111342141206226101830469951763624037139908951953181818666901711139645819107927207270726659941441352154842664224659299780325685084468344511198135331262679080805945501605095051396620083778865475364121961946323331546403885177612732486416117020299809855939404142130231880782594448032803028684405749958509232150281138450696750067829388384396312859819046293384736599470402137734744242494240084755252730395994267349677343375047520698508074742931567183305164762186720274452200445972513033949547018702928314028974620625456303889641166019834027578902914855664855967746029533121618548931540152845092491623210336166148861592534562947529899963011015932929972379989814555525431807173272664721807966631496969747328949654313412465221831665763497044147800697034977854645503840474480392499234398891516728556766101153596660459524373260559222153564195972012347795740689875225338208161487295516829245725093391173755778342702852921763306927797392569262335653296661279313683581449469873367458137629037066991926665928983367888741583708377930846102297486824358295417576403588170219808129631452349305613792727032466466003309625542047863565936144126766150239878244631767624046902276966368994614272583022155148986502478018565926708989434605633125950057443908328183581343646026593255351029462609050809558621600146235474167614427367970653534450655834636593205795050255158948407703211153767174708102657171761816353207585965918770833490684634039920708581904061543934245938918474633553186932607442569403358240255277025535094413424372570508979834219937346498180827052264075349719412778154201726091830272298015094281609530910113356271789701397797591413574810451265194976002173174532257469224403357589761341569339063983169182922748615709779714585259845313869288222885418981759121999531036582297452841799043811365074254119689249442886514024119724077706913099790213979150857551833366471958520624963641741968429644917950925977999785729219146934177728079688493288365730408550473175339986959811139257349098266898559623265812493976871907845187865026330681758163092572068767711377471753386244444923103848343945277393255249614287827304683411690272613601362829612615399410855555699396881346779902095141359641554815984922382490388113109123623322426218339583804973126977756845184658244578723848855975928330401119359000082250239575368813626677492158463858379543365691105115413480886371375733227094751361047368449034789263842559347431855106842052080959447706057516767362012261220132044483894245834530440372687419355633122224111347700612081513550512046631172708889819673178077070683757794815849621605160665747109350008732954540011801583314013372047953498379411006586204373882086432423731733556177212788008050155330898149084958295973993199155811637204011248198308346536739826158132116641912256152913592992147311786174938081701375451933516240898722249142778252662109419354559596088319969842970444028262030887603847137672594485843650133644163130218986016456365294542694688553923129918743993878449844899357169078850680964196438399792374525785024396356434082510115531094056463600994775037775791598023827737125712536929268550269746333321439968731344981987608835323135034847587112665080268146790825977699306897795670142228979898903664902206786287362125286511124564557145612195867597850338848827097645977984740057646362528378175330393245570886151921899575010306984840718171589684437417329315409190823024251580795454609478100746179740084169337762610926824748138751943520433464902086484210897326092847509449776920739609513357907959378674224842315642849011076089136187453710382055639018884279023810941487338252916879460233192056684294420048360051093238932033819163134898244225848203595167201185244161045500880012851333248957923436746857743214452435385146173097066192524426286088217615860027640183930032542815560267481374491342567304623253233921680127705833100860079969181041475507817708545915880723090049333469691227951064984688671402722472050011657720358950168231018128135580123548886231475345806122788631059942157973845500383841179031187206643388594535304817291592211101470833131607303520601660391710296680103429273722486331483750513360449917171524457906128382553636730794946972982189099765220721374176256998284914381786514574880405500890788839564069637978816483048936523808948668142907039713363723588823464931430477691634669148748299532595332022356213912705220415793226419904425427891904781076073765676477790321188692462223011217027298421502934147448773002303661944745608222374145056176785904371669897865090812081419402190847204502237741215349924572510713200327077940221243347378971212427274343624584423038532730496986317059440893518073246493303976149672240093423495652470026839783308663224631414362473425887669248189428125232440775453089327185657635021752280314045815231817791967919928727792432331602995235683278696963828097778857105949408257481160203269805670426413926749625460566067984900588734399417479243013768106659424550945756231158894092713754917791314710893675468761609188429050747417696923249060095589897563290234179076127237853020934711489133526606980726026636132649017715173072958072062344285438500578729516754138110950379709783312264835983916199041019425728108568549303931475112926433700932901406719642083416071907966660342197049459329996229368214939400121106727056791129801658601440275177877126506600788482847273606238540446542874505347424546392789901877252475124182503032189078372953605731187922363374718385053363253054335403682964474284656828858709110322930459280239547512708354615208094851209059854623069620354105226447718661810993287240149744125037755874606317153453180042435304243046412686870065983073527249108280147483099608383312985903450411599382442885022823435737452640076735085071005591155934860512226094660247818704172889165502308858670776630412800359322375887140270949135027165178149491326737977521347509426359143450281297759471600748587212382761200652103389685873827439126164181553604530977328925572972238383798402952554874194238613945761071451885555473303233790728289927643933608966822503455145307749123296642510931407674284471203728914100744986311365768312786492313515733423596834716267881611840192152105831581441248887975743424846673738208482122190154694421132723525991368002921396010468221835119024746460456233338455493228789282858347416530812045886078492141617872157216790910545104471790877263985098272031071352019461670650500815073775639521754815476288306328861642291508278949338623971850777295089375412588297504430982611071013246161635189791344878389369426143236584836976409745328799828582092578928551157926396651799643870658094802261416984170005186966090172742310149711204693521592731393856544771503497812408681953912785394245491343626441509790754014047913505717072359141193007050978087600000139149022225643419358933550066334444473342701121812869507901033169440412380084933789150672479659796358491914105502537573336963727918240608320587465209924239038393111197569143665217502264807947557993894801418763520576238142149480627786954866024943107762895039055333159828718761050167584289611810626947163687263593475802827395293548573634336581611492661887171967153435772401967709064004841924891773305513544971296210107214872717882009273267049024175406950933340376963266572873325649826558339938377049313553937206842853067589347515418974370833846447116844904801133820191877494352652040625930964194076962407319547796799265859659239031467130862582360736799842228250948944545367132374259942256684610232685078773011004728567764226329611880824382788068833830877965599733879094732553743627553288487997316160925400609815084905114939311910676020459967361586007349397327156787616152814056229207803435377337062966630933126741515754251616697329030428395562970798172135581446213820209749649796243365997304067558113987681085360736735638888510914185570884162027679834809903017906995095421419599027069593185528747013664009143253374738778957759020661934950955534404268350419379604215997890963869425509679108816332420707659507424615848393267132909384481321453112438795121319955691828201989011933414530649972671486742208528262124770742622976198654246236410039553119737427209067431194567894885467954324245831902837779775807424104636796107803476568032712267062979987516395298137129269894267675819730823812818216901717567066167366485149482439493160927484620303636015408929919278707510320587941171691058994726405325077173665935290760647528856085596596459296773631470393858093272592881105127832891160974126916232044277944296636712756075401450250399508394021109104228779243110785191671106755928007768375046935032043075861278630020419846028123479305125018836741732278111895029451764171077862368516007610745099704140380269547015260353614277104905637877078391256004800576783351807103399873916251543407198579107031067344361139948693842249228937255072109862078289581852683179703819330888061223410685296408187817769664044098448754377570912601091220768605862244011042758029015851854809156485359741359934855473713592582177622429437054952696206187209480667754245882048831837630072557449968351393650294948952592234343310540960353762306277906933005874229729000950487257292855328938387558413987994795463563083948464178317489840851293609701569678609911209270035159516176853601931278956257516017191187228209492507125629339969746349751194228698326697474205188462467947573065877596688604603070385252876137666500095156373888570048689681338536444609776221872144068768260548091830280137950757893694363279948671138261477723204061303509933708560577000497587289075728576487155415512843313823461941580456731772029317654850339733085256448307591085273465618478705442592290151351590879626122641505586155377070846348962863555044747774979783163982235074835479679334220604755444524862240333903321958262866080115290807562593954216095361228002887572522721172944944054751486155653964344562970367950417745876028090509555267798074904227253816350609552519144286717734941419181564385169886392302834402349604127070621484678922132696830898262303951624357458603694480522658678345319358985238825434875572486659940157751294512944531197350344370014690281250306289873237658647774280131526879110232870598766747624298210991931014963404080045415248018957629562253942154195969117742287653798866002573224930852576932489560777829285788216125143316177616095061240417017094087786683451990054628736969361633203543134219992715464277677011508164869781488877737085896367892810577440306998263656516233751054543337961600899197964094303036253766573297815080114211469716945589100130585289762004077320250199974090802341657170690298621922974161155175624691457801478474470600751621653151583411027037321595838056023184339745256632994610950085765254535896033422809665749106946332720127749851253773640476470424725367511824879374242967594036251116293788692405222849814118234985404154275520937915766976529223909121043676789568240259711654237967218709093958167627179244654407723315287074899410052991408305957954022892248707850215404624357180217259683337473737085880455401857354815470022195074994980446283410009144039942531710453199242473022687462887005044956677466160980587291067956302238402354155962636798006919732266102929161223465855016099917571923771312864098426893820047445014068004916808499804423586565828472324884900586587602728694246090825118254230037575339755856682614438376344489571477062101759708050996322128169177556160568949680969432907116694581956069441909744815419252571777255984686889531926199080131111689223777596951346594449114936772231399805189167692495237241039632910606565096483117201361558248214747623009635183734578592428034146311313623108915708243802886055954980202389119216863477758030952441177004668253430486074859936619265033328205881442054576356157134241300155681252766816654205181672733085396125411869225636830634986422175752088455373163187173343955170869817044759845605871989442639420010387419978524098119616044972411388489286660441493352851171013605996510576477736274097807743800952854403400816503221736328196489420345499769383046593992966293004306597722490255555319444006059216614147258167747361886995808397683090812669712516592131227785245470971022000202916775002730963103052922972529650555474236914718520353643176794539571972912077995427535053467513211718347679524088650121834509584175875503934399146855990869115043777358108342206956459273816750938498723460847131001721840663669567286515272262716842507264820056252376150392916127997132306391276796095048758334663913823089804806637398643783675659770388174030031301435445918724471801299987795512926708086717660230627279779264319992411321159800260976715579917285557285236181621136705165297206502461680299014053580330811249933941319196203311313306285977060443540279722384014936577772100419605946470539065691967396939281744327269537825578452016725716446561324644671444163358467623739126594872871437491001135640125065712695448833889364260568296444879668136612915685604110250713680974252258986572345599232945764366020551489884260423217901059301531205795863280236589123169127921505547047187942506660685629088143763956458615981570343493211628720985224108930470596245847110993065170271166781982609114763051967051638800800209115345571232470133959197524560045430374891844792214410707911307643591712112271638591084011274799758135884830247267352067656420977315926523990103333000372769401492380870786320190915793048431943038865013519169190273861177490159929425256467571172271108915838770474984385230294661957149782536062617024887770513417814545769002700008731346791939681704064742089972767537982233794325259861403808255411934969852759765363443662658393366151594866102535815898452038900089734807902814325315427365907084896769297751380571287547993265824656728668871075777168760666713345229086144441369903243349799803668743787890582708441324980237021515880365146891495931236020975694996499676705037625054798849365572840159928726109180088258211190124999615067993981295217413607942789987456890966711847330348596916108894715991397716620354018173754491755323040498412519365117753987218300648401150385215660402728828049055016293593237507059813387247393190087893249644675043139199767433899660388715071517588336311071477718800872141724099505545957037251366977344314507360455287422196710647444450909387412160897960985926516231644818796413542538775976066602368576391687798097106034573680128734746963786110016908159549136436425199412770028417981233952011453785552422113385215195442858689759030074933053108615703549622861858896763350521836283248815827958067406231529799666798147310039138462683421642220830640714640239566396067948661432946140748385418642798948175900957230885942256133828969297386132506275136494110604985866143895347392289468325307547663238869165794297344491155256648770133941042516202663664093728590409488925742683038484877735514864280510564370477191099111492299314099940442957957764730281464916651098229206641737867228614742523297166399368609724560405155858465632742856337093458475855668443716918250791328317633909770214819534322675218037717070425108543140498075341155555217678429760810824926635836457160006149747139286931394950579785383959816683627542575073680088544262983503074960220527960297251235368221273258100279330972577558059504990080754344876729517882116725035628394750679112645325946403862546746988739817329058012920410101488032603307417168365953071648977776883450018121719964147933066197577408248453607372111717695900361541887398198092830080664382324414368452320494839834590318657096910890442486847914154937613590499182650715600307641058454082527358733949077252460722757744711058401944848930340748632501652232535402189707699661930156601765458026832457422533565602445715035586625128458544335672997132926918579291466069627403167141761804331938199606885904158279878829217481847532679854479777163869347463472329887555021561248479089621822570660522458002515983409447312867033535773227744539633604701218427935891505723132107048406331757808670487662765955114535197660719661612313012430109994486679592566790796110362812498465177553797748012519271179251416280396548456191058062503173532879494506856923897673900228833923525576987990602597284784964735759349141063781512567531066432438915057501696470238847321407006462565091156550053689024883169086318926742818241646656873563864717173876677335384248836456834305883582063145580894611124786943550691004468422427429021926057293541964712232476210993198578466327630233335591541222409582061639881281372402055010282703418609131316019048350774908195628559005593887331603635966372838983638945538370837757331968802335371688761327571400763313817313936258940546916033489044203721991777744515268908970834463316412277719480487338166893732441346993143476482278290989403421229851969806557553343914052989798400923450590940116337494824571433674214685151721426833109291918154246704786349775182956009106852236944601211649975886913827255031201970081523182105567647748435724072238196008214456278036718045055945507095445184224500573017050760393904348939603122042691458425246292223362545000980055896618906275624338493373191324999193737865324353977138916188658026373967027936917315954040797071568797814072704477573247464413577879574311605524568134412595247856312268779479066055482701805786271510401739664063100726681971114196211498974074165889054726826734693039622238109674223134359333209399277129355058793404100414280643863599120429528478318420012383778786756167953296942083472407324360332216420949638909625634023144524306728796292585440509894243868973452907973544815245047882699710056041333203475134590734355339240879269613999304836947094904741021381791206333582411288202783941981474582923508362625140830440936342565297306670015530171893830479785477070652534980547431489571133541093574375164382425090319531747237101256073111108657648213483548866034391505543207982736862103604001947235502263767228897294581361416448682767471868249063410264903482093785927973309731803350314065240815852254969913901681898638629588249107173205348288485224328029046454792018538685430655710486524052918634929183773555667092095571967429568807197387901731986771351202508589213761731760246246915062028293124358688196188975406605700902204195651786955026911210217111315435470719554950038771513081103789130248852889655839643714070315577769172479036188015631712464606069369647100381507451630182183050657417932766711528047612992345104588690703286525403771111280031397213316131433871834320480678208575633443793174895165557942736385726671126293625521357615060908038401080627181366011189847736506352737351688555540922923843202735039859441513863595662282972122139662872157197712407466110033525636162684114336727381529362338186438074386577250020616890019182894731131741098046734435209479948819756919854331686981431682767479096748407695892368286596635974367324739630104839809116140908123671795413635442193799621487700246060466480934387323298180167179306696307910268239630753720135112623901249558072098603579318734322725112540120252843431543602823907793740248977968050116913452145168774568393647737512973734704808124923694368684140768949775010782466949176492893933676083128544289025748615951385301206309951573501174291568534625000569618229979004077780496531360469233828411398400625962844891611272150744403992253413631424375926180922693683431471812549069859399643165217748576772545628603800672362080955824193013323598279312600956097302429839162108477392631822412394499588504557880746658324998466842833908456694222498880876372758902813246742352209714273112778556114194515658367535385323826231609723690988630005076869286199104098968036839847970972146591935284160378643937063675950417251429920224182183807128243800857963316082450778628210242421657773055349680895018957068713375749440590137921023599481824458543863616647480865625828296986417579063186564730378682662587173064425037204877529621875458680880111349413014222872546091096139600765476650880738176382560238152174698547847028006412247293333351443950817232402543550051284294960570168819249343899578215756136865605359279216018049940012298015407273737483403749615695674830344967141563325508718939569198029402821735038934900697522724967777190004550700227174114100635779944986287232496147180199132590326406344953275605952071499039028185043325869438060522336155002507642251928631001246894184793525747643226770197917190502413428124614498031946815593757089256101392874285962066005582071450099215995610708260420893497671739278885462220675660865651438840919178465690701749724917658223799907814188399800887005410202269121201436571568158061157384908519269407395279272834900274571751332170604470085411259120813144752194217062008725012436354461250313367387691053079005396946593115742316615946577432863023405791243528711920039517730724247018309447176366165422870018022389793150434113407336334942708907813330745417518415131044636345915672720293052323552863205024140982162719787623793588751241079650620472960781628709266628366923117473523909587873048577640029265152403400077508031355477515755904384417095236302275793541143335789800607217463644744952480129226585546175503779664201908434005052749229213649551061395757557276270137145086937995656061633790251551827618382814821766265405071247893312076651223884218605415828520036066853993372294584502580410153872699319726516520759479719633283801126008481416021473662199239739996657037450011557579727637390036225736085114587917619935862415805028474488961499764501754603380094802837953024177863700218986701712812191245912763956397573320416894277556813346613101836411686499516056572220254428608188465708685430999371350517493141143944499880564846892928213488434284517212466842706275138365492376496725254918273407518361960646736735491475984517802438722519947979344643864509100745648320022311714673940439199814906902641105142561647175692990134262347006045057600880736588882293228911179722500386910317200028449245825632313999841173282576466583897460696210773849131856637341286335903643816107536194966640401097003741205573570530347749573900027219367061772350079384037366032645466896226875648110312331168427712502293488868834667642710648896926578065412579944744864629839216296612014141101249584002891976116013270845259907593438512943919748107981485712987752890091267506602606696904930928030133502815895816582714308112050715254663264511109095140458312858599138541492239542505231877976864095082309196358465976269183175470259670879019669257343569314089128225147838813208000023768796988904450797452935424169934090693283720931421051004898687736710885970473919688209921959753134118973649736753433062116594901812742419998570974749264948163986975081630836947009406823239075176324704697274436691923794195086240561478791978044503296487648350957725702440802547456449163037127223698512278759267939225051126043563973078582413309491706550456426595992084463826657890743363896393794059762767650919592797241171679960745069729308490219707697320381983131121025574521830821810411661443738877733769011417752105075070864057364923289405370264162489944750702843947260762334327377970912046157041001651610843806307877148253144919812249808051210833737155229406041246163298222550304452399863952806553297480438775706479321519864740407242945558937736525045926878334190710598312815258816698509445667236450387994524643268593981956162410297662202957744479021223516155491002136230695794200818638421235117738794811630890241458531592537945230106030133293913961573783035546668074690351386777901857473423799246040856885459984170137874417781182651857233230287119320604086773589001026347207966657421087710157605785208305929174066908501949988400388783635764560589847124307925224011066544435929355707316621604219363186914530642291972164741423670036369280364897783883780708411242543807993869869723144861667377969799305196461691747694644847363764852218573686852412070648396745599804107066191679261083312123707410516029181937816629652038546395479017297745919177006044950415330202117914794393122383937740859300428813274579102360476197227604912565702630605958110761473970547713391119720888366799477106254250188726207811017173162702303772072467544382219528880615396745068413525320960148420539751173237144510899869510367806123439753136142923838597882636618307809121784771141851669669032260924588341363542125982699732343360668007298458807580841116307867126850367210437895417232110005095978797282626851547402791139618812987147427193446646076871962156594040573271973704659646540442623150443868539778079279896380514960527252599024550712856124768164007664384639994750067865979597912027441067512950389987931536852985814584862412846855846704366604780962174015022837501617894619702291571425797117884751600126136146220326382894739556758430137012508883793269685714910474650202353000568700367918911786255541190916428288690744819642886867733251526822743104960530590065467623686551274173833767945845066883449030212897698447152830956178521147326463329739970175195898512458140700176414946474119181086234519034251546864282966697261082061615255823070856681794584222064004748331243820561475408364580735175568821655985256339880143862010451512607804353493472715342256939145631657319388298610638301809476127284798988342174473815996146071676467570531144654053454257764762772514445154791671445889001049995071665048636963519583759698084665484114322453753279059615456380119980726111696265918954524264011909507890275342104117150128210717997418872361562309319105366896664342393665314547542476561692052859053731889160266568924614755545221342546215030481337521516609039968849285453049796955155111989849125097848271108997377626401279147465771557194397765255399514833671276442865645552117909290610728422626332713883703900710271506323353192293821830886722885740281140286684842948004667698314233044921698855511688825288286987230222026976634357415342676640870239965342187066061712474416612757192959678556939554941134396321937067144006936558177587335908634102965125263194124781351702753818114727018239136701176312833612020033545001810900083485469989129917086721473460526331131753499572418182295012585333446566473138060781477712159332421833775858950121222835207531189691310176221619642352894982643555707876252303179377138975765985032452308349555529459675892272428699670396480054079078099119324538601590698772013516805643868126692949551238943613897149085095826834600464462602519656342226058655141687374897158034871432908708391330061802129811398821020797131108990058418787382765809451110691918523436432459490757777690999207801835501019625702525065087465082328479326647655302526880364026758988612869349989994995311066311913889014568654710706092339343466927561016950666219772608704351875633002568871394870163960766678849289923833747244328765979502136151367357204188624425615862163785558914367169937822235696012747894317738717888006370212600998438639299923841388493813289156156578926284912162447743729143617550783192457298465123234703261451942087117595129074394236735818379090690068932636451096407489852676008863643497167323449498987705719486415536850592570189375265967165579699281480774718029312649775505833281947002076495218890698009106419455858127367365363959553029174433801678674687959608521635263856610042045509365158738154374523467831644296349625922956596740131859665299314920727441974069884782137035167162431956764963625222735291559281272902484902633400910558820990432295390523891084305492502634181450699654853804707867429481030485873339485035311613110708650710320121270080515790458056752346039633660825284636387852681604426968413508566335049134386080326012409561851749461363628400578913316943348633876512545053173088297717806363865243507950280320065189136621361989039043580206296958638751696488473222010450339790992719067307839393397225045921772806035289123771806351520602930729124550825718396636758915604579581872182480545598877599703679903586705499277084691143841002900819841647332171690964264630866639052990586183604641372808560677497734767583617874502815573868519394189752113271646165786842391308935108238737414640605617620594037068672950657250216600878109684329026794974471399629532182460234458307970429689204865949443650926375401198351152871639706187071939363752382060079829894484104825113888870394657633747715567368984541200345847175403885225952479347990251921803575188079871469026920850297281576930087306271812793636549762856769684332010725965861989857964904805818699509014494040780918714302242618767668806134584049147897523890878880062815828208420741651480208163486070433855204822387238558585153924014759679284654699463001902454521500170405768361270721879828899839982265516416883988012433995770402314828770842117413374139796450257894717956793021178945240244302695659999453255756779372505377531715202127210258003227385139261878891271160845487695637774844465708119262136400910482484135988404419090086998293222940836998653540801014038369863322947538830571272978834937695146388327523828406656954617068185049239437417815884428881090050540506906846689919167024186383545144613439389206517099311055283947541923242786760775460448008836938920113824506020707959671225549369441437779841176922110890616286649315445635279879815740333539868468828894426413112269173525801427562751296776885097786994725481098059199831071517798106383444881082189959910869292570702438563992731284142589461321983657278736685619822815516074474628154656155480268282140884485022310972232923994029674337188600813518361510959558051995437862010125587581239744812319941051922110415590766508400764142314020054699947736810114014433798061880877370724381740890114460897984053137982234619041033233519476755944630068403236562655855829912092761249217698331980714534631899069338537041213670087154033219194177155183413166145145638864937707503727336248643434655484063048465871325960985420584836834323537458470232374450177809374480343644605079685610064504890802081897063957782890091082732818650511144539865087764991411228126725021219919414847042283947555991963756268625616755058361234294638294225787941952841579333127252944443383280653469746981286657750172086020007470816851088173750954763439717742954483626102142408595951520817417737929570493489614198584155967745022097867154750201744358738841976283113645614586123676619804574911249336965058755717037280119390532113974006177571672225017604559024525573471722123967537341228797730389842331571907943584815636881733244263060327625051069161269143365449851724138689550395454751960814327323813506465385444266260071065056526345769730841207699913336461460033571357493614768192732528420488350032135114884159887010968834012737067432938786773915111097235685326780495199794426709716327487834051749134250634870769991747114979962375538160142909737364450686659792586724513788977641801743274355069626955687351247296518673545475782987324618185638980124207488886869578427541696121592110515068059834634801993709246125249170162103160746331161219140551934727733319023639949983471105830138719827904804802197471823182647514991767315424178506474213197942112222974466185180802277963341922105261594635790623073221188620150225792893283618054318932092486882941784243747554645432315356062901126601056110810841797691759138032772885568291076518319438070540994929208068450127256695103036870120723449859938138084753922072261913684009502027976042627246257397423642821898762776545077411401031416777611037524691193202804518336148143693060637879448999814376140369614782466968152149796098526537594364769881053490566027639056972190913463033260425468392203288432594313876673345709205120977374641239054085979339445759894130422129712689697846682020634389079034451211713094909203194792846648747559742339966444805669193805073882967807853977412263624355866418100353078880098403488541780403826121025482923677091023374850008244003285278092008558990030648273273859608701181740567882470006385080871692083680242543892969736605894950919647269635091719784888307633115589498013186712566869219860124166992446132455141904147706167748887274933371918306702648515183651726634672928995075082199236268553535970883573682221389699864195952111914420482162858266168777276558904748364800361575367596820246394649689709527140601980693334899387240416881537544940762157186016792398887799920704731296298624740668611269505121986923534286352554356583307674478813027667399550504979026973482877421114101713668333780646727568408336614913198165192683200692737486942380823039059677163512324331146892427618769624916769780741790296449511408636096386316414177751832784101114778219004580545377556274142278611319432274283179896346185185214710142516909497818453843799941267818792981296063628259178977285876960689775140392347014083449423368125747011927508651588673187319863607817716843339407470573737915959766895874807156537402116651107914718988568167352121334268559920481609495588771902194891529898742218157643456978082920297841666653759603793444801949880232369671185510918849631788576697789319582780889814672582762204191682492959311005610294693294223660253596814370554590044277069001883004559320844859163624735948875563992020934551567709202311551659484645338696282873973425141123419319246327417532391803973472601649835003000048753913277417731066936426140148512713380312101478917274083241942772533697681872833623718453215858555677820432857883131556409903302200869706027087787532555983379274601589742971341502096006812064598951465123496203570329893415709626337065875303344601349790457902860650413204549107108963764453757855591272314149964228030596361118110617349575032352425463319090530597658354158996931252598587699321130693160284925572396329378715859909256866555950087132193885357789662222148304801298031899204431589819225246500799819616656763008206150804692138710878497372532295714249730478399943439110192740448921914740004276262144812751165786099467164409893776037888466638887127676724573079359837561652676338788993006086373133664322358870563317392586174329344481910753948774609745831236544208526708209114764069971334793997554744982145335495382705433305290468199379998099848768711018954680090145855150830862114408077153264040169550918613496149646698742380599762212276107534858743943667125612045601603322336792560057131798728909588906143168704095183754088712171535031365831632663959002188348713365474278181740753170991686897347706331233870061661251086327504637007448750035017242573468020674562091123324524593576552013073996762311422582598478989461635277381722157649977429831128459445207603678145841478726790293108311187385648843510244769234489988439817379687763831892524670149949255058423253575888711748858004307904816820654980882849568133831522611310468081764601098118221870257452905207204593656094274654283205827551222517990265522124802488915531082730083938580767647289035683977073605998230941702208017311853912687557786788312215906493980453815110301465843871959700777485751851269640917498173804492084251789801168348669704259901726563774870819132248330624778152392915609778872511418045781729690386326762376678190448408932842792044325880604413347958820754277909196671797010029639749525147381432070078661228385005316916210460127654412892671629138455486189703030936157569256783437346048592197086035371567616481580597473985194555948853499560127303602150546037831689483204574536279978696860381573931500618849004788535259080572085791654323494179481985520330124130419544471120197328985396028223194707382155673146996268869155071502316638195589708358327233925842879346759587023274855973960327959934786974483708582826176484737624013504856373048995958819583742660925231964539480401171280716233750394698952945032490380153642660947660620797713925487298541603096302101896939352518860788959113472386412125041078738146591053343390487211934519276733496039308755179391515322723035063744442144958902763200775096222413918209426016897902569540582017824899521146040764049706702944049605487706948701364611265041827622968913679819939386053637144544344462513213851124366075967721177568852167883420298031290919320120330422288482363200430725227349073921045462801004234619812103844472100643062579796725766012974746901809258521688260470429080184353038525974987730193000365315605917754323113444860540963014379771378250237937491723525926316864553674458436219648075960066385746087650051874632042730444049512119112555946556826959505240101827362561825046967806449900256298546962832523806271579481581322596100644598210744486885629132057487124261628158389856529290111639750010446769812431152057905341861451503125971680681305183990284515482641343058979546968276713426963173323915747569643976510984931652299040743603720604796475110601467381064906890520158674544476690765745487611166205003172427642080306809387704811803523004195577455176832802340079313557998020836720490312529177246846373561243772376832544538495727992281199047598483861712889651821822217009600624922338066017162444885595055484531949815702801663454923804814065371956879791520602455077796832770212206215716202076639128613011099971374885664976313480611346928655355787846650937242791907538304422352341071075635335567217777946737948323451409928666049215531378459630002888009003237740697333237811652393733308578063622773034503714548103730823942410788555308936832274451569795620718628208470725410801193499303171262423699504241956705927418906779107563318012933443308319467083778943376212678910135161937199832470236928107270206810780416860769832139519769472282358564530936923900659285838685714959884760274702267199113925547023689685725477016497017719759506361050893450323204185138930418523367235758356526984969803085559867123899760054334507591921655963503908147211587882407881418786189080849087635772135509486070574112140172926826755386551524722701372566885163876492070596339901116804351623699423570887809198389135492027476833626339707775392212342243753858953845738643073709635760114897212822874001854111157526116656427798971203337515104478699135985997516479792449679022655706916628297879447909646126701011885465830283008031550949638882418832073682308652035317682890942100535549838372467080044690069730503232775864348439367449311482634911917165176994329560365334603354032914230973603463318253943179438439417108297074045868872400720366348297308932469377886104706251060202425246589786093747249439331792063401030131401625769150084920041435765409174133234507389423768593144650305132893920513084408893139091001365221364571392262093748348063558940875625783296984627285661524286261117338814493259672141139357672606340112748177344019362076515112636820190039086563738161552259495140552584063981964328716064355789835031222921453504852131028669990292366724472816276402597450448623540620450683964777070454495250528829433207163289039790539565152001278320062456725874627347516577779409055802086197040957393644519201576944175846012619811881136344662057364125925447037812203536825909075333614285575674114589379353299251749276187195914935641650455054108875698657180796674650912817780624565546604101900774801984758946242672091562963243615741606968106732120282384681852966816202436510169060485214605430493944574702756260626243174731756830995630415974043285658191851667260225275111109359310394497879876877621926762122907285993538999553835662666643955569045340450884504118169942177098259842520097949324241670966098657856132612155040486821091493434823751255995656293668896980424381800679376357426151819548752687936116408294778278935313949040225020045245968309326107482116883612750516028323534726667025341137110954627386302237457910962456872430229818599447091724031920407219206521621215125176341886595377643978186949232938399968604287602011865156684648976504468648444738707013610990440885702660045834642978681311922131986024027200176614283618336953965302249477182680324001226145398331701499798549989736952163092904067697684498049495546407781781781073997134217371360978553582942072790490487027911952975670714287840867817342383543919083899742404912652233796840651233760685828087015027699861839579664636830788216329842574502944499164513688995145894447222764610533986532077323944766791076327966866033011276219483300078219894624486818140836409539731650424847395788951940418083495910942699723244426606781302834271321209473518289398085288952563942719379745515953780556694198249377440247412895798049806374090275892467097259785196644868802840650763695516701769643947988109243513834041656338594397517389876534984920079618461254457323816330278103586769424251261633666789056220616718674133564716041438165471443993945559960564281441949523428633173306563710352101370759385384688266096370124467807314789245918207675788852447002976324272959096051717310602965832278584829206593756437344094708817192783259902472703579650701599566845315163031525294519935598024008667204374935724476989226214774016897296248927493569049573006252968258510463992996538096548581645849877040992835105358433409070742154847939589113991053761566421527104644442344877832896321153398042331972673424566253902748345696117898902282054492238462008414538522569204689050996816213623561601872811528546253486848125983209193218680245899605547864070698348491648777815565550413489213533008527668713108162451281023827261437281319399998290758996893399693257302772266122988069284567938500840910302980990723238706791840077415003441959973283758717321984595004417821837471043609976072345608671681629060067187720249396366339916975616578205930057892303163179728520195717375735073732068546057766940049829775331245745110566109184397282925144992871089253031031995206455991128074584984043556444038479117162016330956977697803656157636796411755243449048395763672644851430682654125076649376816094692684903827069565534235447655753149698416397176579006306818207446778754330176309228652400100185858762951700116011113048725451199196493960583015306119293787572026723233245599381600488643129621812310817017156392652468180471256121874126932337864257746376900990781227928816857768563556527315811869560060260062906613816036621058234533960749179718850469924803277619412861760288246809038812871331710812226813561696688496457170237439911901419606134282330744062134121057560222794166348941038228936436470229414745062822151784902102008486924169354623177566626187717193186372412328186928388099154957422020705787802754845020613784187832151606755412893823302917397498822046640168523824899379319173439145955182423633742341136151140868970715994908396373642676774891931500800767352203788619602680008110580779272889896055815325244625698739595898480196963917620645536811345928107387467486164033469082719958127985035081726996611378431714355880333888794747726498476866347687228998975688472087454856910756124977504745255416290264766546042092243819777178654087838573670426550466658487266935973166556419438272098458423201336885603100266793585111549522811119084787710694269041257776098748217823489309610068021465502679062317758496398619647557411974192640715400444802561434812384919167280578439907681734442031174344747820501442870594319496297794130664673095930469815525648000026091664042486064974465900294796839733550076450491928753529732537517231503402741400609698534658477388040536124919895115651942298680196341644956823715202515962445831713652483985679544916551567652309386966547817666937875985792718339396198469842222725428066829423643953912462887334845666906157462362027464161137663343993718650334822525675193083613557560145544278218588643942876594368390452861580563760480622592151707739164588227414259303223585135395612385465231189484109586087083165656155563254571597388710136872770727962294471186883960965748619870029493968157438964996529101344911332882285309001147859253123194701575407008690121057237397101689856688172353213376041029170732772409530179636831131872045727996900348701297904537621360627357759334867300046457014123434855021221147467118862318004117955583376561781060605742700509755888941720646050974862199228179323443336561311604186899250382271728067029285889901212513449763413868509471223135093837022303275386062198344228470810819304644774643616520859248840596389310065324802309637503692388425030408159093210199818938869857005828695305863599836844985793463279646242894082375157694916971057078698132667982606712496915744072837639074942365462207561002101063933106116244450835924009278182984616492681559613266008776020547886959075086987209129257014902272298465232429206672232402725083607808673452206526540430596878527363908382600771294931112952202650951577195480662494167334020402177460861779561039867456267145088338471444674719868447950523887685624120165397156552521434873218529588448624583990340386576724220187637991959329027139673366385951645369087196741667122352044880601232922582893349096263163508134939654645530902122044928613823450548756488726119957108535144302076548392777389497250017638391648995591916111661520423113228687399156772088257760477691797673950171316406138788715182309789054007223690651458347071198766829143689285660858276149867350299648650224651618474180527379772106101456538874328065152816276874326529355302049675044944877565571775509499132672846927293886873586037489071347054345884412648793469503879590156171588415511120778424870768517362453208044653318204697102015818528130855077343759687608267032070798485576757553237091242349911992082114649592501008473226085862895093253394429075383911779857362849796655693023617774202917031930442824049946997694028522797262437205242148927804645896160815240711066630839460826630078959674838636225917967737643742600997022862170114375503554674022239418498109056008179283527372726425245739191717474932187223638053209759831422529241712911634953843886265486604664762345750006703102529480530924081338873633644555775657950727408892134791471930066524159455682385469351249871211468537231637865080195788169972018233868053275724288973739604973428301146255998763003034356547759456186849091291602843215290863581797099888224739534298150774854651869430683902983993181205486473625505089869333324565536627542558958333397045204376353375056849367741843247447473049500663633187624967728845396518318606368738432460116031075948979204214556993194217470733074548349835497908118049044316059248368829683048036292333426812490728079713644151673885404489474024063281967115077800295878837328548680837427442901505017324414787582981610680798041666920356856417552981832086637766556145785137269209750181687259266922966602112605735899336581216999502939266364077187419388643394516864733663392966830805439339633033969704492886680099585063796707993299194792761766338713761884551367444250649974443058978668767292728712001286871064249086714008595606011026602821690356684916773120162440360183381206837487702041708773388429712430416957107588165604585440248595957519024857047869771872801798158941018244824763381728255431103311329573218982293625923581451890053027465445790553159847554270377495121908081252602611588163190746328825873216606549623733866967112242001998327713531785544893109842261387720878958052476910106560915985240617518489696141890378367134037473936423536982077047000126145814044744541360032489346874779799652799940240973951256280471036451857651265016638332866228642428249068359927909123145331730553760915957876962211983376637158953100757394778637806587903854394658827787424294724194712786483970319152826569785639949064240188247505101876514814348173482476941884316144056416269794002579793329680452323810431454664417438473315274743234272790925590583321353951438322491649043387898254896001622713532759681514475866139311080142133494806025857353890142909577878157690488103836464362172567836252636170861674959933544030968833838317659193939762487274148586154883920989410719438507206373361359942808924891292800240884149294104272293293310907742119345916992058964780579195127878023636083156391943336302753310425926230808879011883331542338947084678067656823622181766972172702042045047793335922088163469193373593142128537883406078698998312826533178109665779247971699317272899375923072739147227910317527255459127754929244309204249344526884926574950325854585002828554525640131523243379921559388095838939758953685991402006132755522213968657393639089817094755807078894925252047908702836471671148063262248297817492852275575715831561069524140888730156234527844549804665506708629268172378985674746868281213428285435200469643007844596537796732777969820829933550441154080613630705024750823731230748543282148957786740364222537810233805815525783059683762103985657360170001711186761102862825842401203916880277701200270214904892752099183994899315160854003588687518835086616650590115247902534223750288814959940688071473680793124109041096013230061025973441361529584707695636014356302356905968637803759812097236294581167084076331427525094667361286668187186189946172452467556416659873027242230007473757711536882354725962312270615903788700584186287391599759088845197977297453355633924976981178911554617590468474514483662223904192471720081739096472154552227047119925239505748974368477733100171004673594065915151173398855061263055649194775394775456475501487746709033265004185991749957994081261637432806839632579315153409554522170645996602197106887974881960026629684429761081858755150539139979392371840782492421099028730896936321345538436518552428779917958356357109036184916621852537084444580795786323879406487251027644677041731878527964720695644856104647802163773230008749919209918436892535344035096453360963153006018373245190113128377062584581294176783049945594052979888234283037126140979697736575375717238359840409807575970744521187791074630609740331905474980031277434193522699241840064852664819261631528869325806586251917409834755039109954182464943161449137957481158065128961749191024110043556287576782042206177517742287229597320335064230313779909386592946702754085565594299291819470723864423845254768343905511540913200345537949677496549627867996518198287374329608028809073091554828178808437387158862591699864857826526961016815070516093498488834242389376330594570192646871484344501357257844604631131272622739670108324418723250958274899332053679835587434732360036357000088258483643400755279412562917920782365543811365077117451015980797426557305689216893438040460753369696061928167843044017872821780372777989167134369963978102176743311005373763813407505929912214279458990312499822176645622748885238465682758496185464544028556822268646287701086714762123450571766768722466848146027006338757151544672590060824135049851046401874907422925152657192759651167277828543159415225522134664171788584731020751618431761328836319847670951027538298846317529008890988953000636708379741589903799665454844718566754479856950701760826877985491619030357799126094961715182759332346057341107260654254767153470872611554518380455569126829001517759475790669206956693823092075186576095415814462417202115964858806289667618547139163933777768403754904558146850756635013530130713070324007005445965739992202247447180835826728441429570047790306998100445913640032240910588304727384782838509374032908642802122857059573329165821329570103784232058623601838393578158014365144665880147067963314709066544462473866830021299677268314246246699619394769979780853078664734978945083572350155589894168152222414845772232488624649523732658660563464468202943384735547791864306715427210062571066840962767132159039791812922761062511303038012573167675184541746373012669004861226329849172233644312866066233380683247286320891026635510165166464939422835212593690570802203148473832027782402254300792819851775102597841038533705894301205890338928775931295005843808525874486017088945179439478997324371267040100226197632318622445341658052198097538552660499240662022849353806586310555350276663535515044369955279888552964537030949382165000110110440659403775443501271269228585192455973455355167486917344785794905291351751180218927633812045762370201418861598078711110242013284185112402878289361019663451340963407599038446133889506333565636922205144298364718190239687046359076821319589865652088612027271898139092982298288205622458373141140317974145258620023016132531380435230059163172624664386787932342100697636249092637200270807316643967807912418190055268533179667986578615388734745627281693091424045636334980476490337893842507094797902781466292256039202114552349112492209740548923170001001518474122978611243428318782792324679136902713478770426134038134392280579267544860144986648634550957522756758830668872814045592892088797905737629145352682060665561994966245786167837979496445162967576808169095859015370490481232099019754148392977172458350641824885660434390577413192650960752868151205807256795757610848892714134434137402829130212625677542755759175606795079926204497554943138283631027200881657929402387584794033312492629280226488750734835337024078476126853067820296739111133305026552360700758952308946622554371932653676585917841640795802593943580686543716181038890016558586049829994808144177612291221377901161471751985502220694279004410978902114151525907115473363559078237928506394358034476774807338127193073547364285827290241629069926120072170498041139082155544161968149860049748907978850256857411157435262599564054063595153267582617193602019693013970082043148036045365656964218566124762530171861992384552096206115916329193775429319459905295415404537066775867684124888208997617329668828891456131145944430165925001313331073055853261064833880926124656852861250556714725430947728554206147312606193021846910642203895607993510524545313526446395392545720103979916961252203623027321452602083199771483937029418946378017053644776909395214845145139471174279111806508641113685370559149845891782213456596460368485556971789030526277388954546682454385447151496806030550747033981897394466894323448927509665791292492272452205452945915340236604708753136672772750638480570794695000375033774737521903188944489462892815775413949753045893407062201100734340763160479427977800600906493498979153580191593201501001713442913245857308617011757457986485329079724265954191004441162181858209507037792531165607573543143620179318709852118337740803509742058127966273109072958437415401926372804508358495651592374177937613108370349027297627598855094977694461093904303335313927197507566508352893586055436468932680346428508716166299183650594885522054479369070356555632106242017310235861528062345373306673727480653495931853156215504804379233341129548519184008101593769766178754928158388910957750322922861537556955789789206952821026859225150160432036522953319311003951264127500874714585959992681534901463816294586938786631636223847766969761319557278031955084605408043499579601334649486818838981757826927826290888517659704957681980225675411070430011020422307681347204250392405889297425524723758150083138552739158147930109576306085398174313554016392487465234847623710448124202761924012280855196428984902876945373522055641528803799118689194864851477662339545400941696093451072868120273088264106028280248681895601109987322136491281502844884875946479907857264730113590794436241590562860526827217614956928654473250658370263098293664959632736996621646516568692746906596387063088426402816147488820255159188338092450490246566962524467443467242064891204031531250112726975280534271276861325230581145558627977143407615532661479169893397777201074446830439152261615058840800116367622135258813230030032776156980667195763606132280027834871597353068502306776088928030632857650570859647865696247167180910543166492943731077285335431080984382310888152519306304756696941010446954293860117307237799501808613297537720957350616005218701987075605339757000293196047683214729773307515764809701301262477729457636513809279797271268871152708115398380402669812035517750828389883047221798244884641996421784632636509048048089964110194837586837753107559660116289922770771955809740861993438723809036294590826269500967698502963282808154539966728745147937026635199535775058683354091205006194057838476107015863716839831982299180798223772695826919447976813147739593026211034588684652112643089648794368275670921533822972975295921854884132806860721287349827081011825019164590859333333196100860696680454626587657511948576189815739421970229327670064492079850464130813357243728236285309793679166153508970223278303124064936747904559867993417329722536055318632256865296807640470424258448098161099514898379221707289614027305002891316219990659454022883876188832481196019784632227161365006554158289531241107407061176211756091313577576959909298325836859219568844194968084933149731668637339853976131791807794367580175785788019422931413591700009837927869845617940487210089786668565244283528028620683352790112275895237839540189405350229427482280292301042686735027285132858061938463471858950778826231494922791330315120894772053736377092954417656193821877548757241279886555572345178834801448938599800882176015663342176103350145583552009719069959791972709685183723544877566083157210455563096731824062801150680882586823835875734496459546379751681043339939746921835441478980048271208147585661898910154033562241712819451300275043950516618968473794348560538098864827050439998076989855445561208016359227439494882106049914976906476072398974211513473650575864430888210189977269782017035682671079381478723194120367502081048590700131544744731332269166947751834853641543672864748061298408727927857138719198612328338482642654451474330676727135290090111291166867293302997442090878431257107765052824164659702396800930844020878740597207840335136552649288775146319514529618791600144816442910029177839277568140432077246713182965401410037332090872772357424583260836885948385564366059111953267427390497728014899254003265640220721177707832585242121389878388187416021010605249984064435549466063627357932837930629298860526666692021601878805022313162280422276489092847577438754611991332608979341287072019274102743184615370186401724754674559990329525180074670301034721609431515300258197093380438039847340988503151288763091043302168275080678425752396429021324232799370358071427309258865163291751128144469700755822837957725236376213506290247358264592448875775116867721809063101432212026549581110941538937700698324735834943493719569096403501804873392089766245657445271822012333002891744490684873040618776364094018357480959105419462105511886700509348892142622731377896907415640526973500554995207420433464542167498992738407433478212027940546364895664908662652613824620413607020399255715320416369201617080024915930185795491213315889388210274029177883590254231709463423767280802666536255634267219696684148328115967964666037302486323909079505881152539526811333847513538825696106559835643168726588936530354382933684193980040377828893889402104672749508716881342790457814324407577039456377554312126269980391083919495057124750601617874111630990935768061783539224628334495039142919064504760711424865711243541884453864859886914488078965789782820295343821303470105516239626115279848887618863929018133998909791930718544589339646713791550112336596123966897404420499427051426302563273047005511593045205243525567965058666641235375717153791405458087001996200156003638771211653211678630221095850047970476602557007706505666760744457306329201161794774461905355463858929915077870203887524372167550391915386143259978523405922239017532738753936798856941545749195194842808783882013696347512248838448021030670985819360824081903348303260744523723870129984758688025084101867368056925282302513713707107688352532284953240366492073430728175833174499176813260063907517376648905445210353569492264014515744104481752869322863558471531758535023119042740359981673585547204585286390367098654414362734884902808032442954996690814927523455894501452913822601005958060187942420377041688113978322780032628230885605292390584749660085500543568169513570936957648425932464455947961218791610094290000224877737089489251856258629753459510023205955143799472817260178423985436256392719704182087540956885539136009097624858756309970657045289468301330215251435763808007774363021084780149078267000689017633089282285733729366710809765029265956317083034145587522620245504274940984552441899921009705353719060417106751527072456501039114041436960694654264243982440111570365877124044877371309268830908359307227531533291484592978441182749537836038011024974142445833071635199104379133724059614739978889705805012287336187020439213357219948404290421712766786986965240561543471598226993869053741833676721303977439574874786994472538053781298248578945417107885648249881202679844138418241904129305141120151382176437193816415871270564734147474352810291256514648462367845892477633892881545388861335481275785983315586095325199114944309799926594960123391507655493902047552898560590359210122391229784530937536741844473176120052169906542643452538220844043966921170871076247190606660458457696161480928798178232185538028772968314659935881830487301797840760663672326138482542887424338360052301713112048194176838737248003499069941933928403838152889239374780806062555214836023482439783301071375922119519780688047282869194568223253596218467865928146580511288673161759370985972250967765551930807494167785521810906316155985614736515357784767420733319469872159466242554702427439570632964095810253938099537934264273360680712680762167456001407811281925584014039918491916381193896703034943636429445978586063704004627758176027033331501671348923541399006885173493644920348072885526984780688278607432308868632687275971632448849020443061939680568057602272448135227318174812867272019783902140494602967724492882106242138305202974923753034983692805037006317944726779943366221981419777271523379243591511151683658904871929233979414408563594713312958663678910413298204914577909671582592644064419793296415324236520831483321986858694339637694853552820931762210056451440575506591017478691332834265122388798410902916970594806507196618269663225959273441308467556808535496206950784780337917753595295143762424216391313785484380208295056355951069503158065132047040255072664674193044420111226270753189713721627077340623481185589598771286964642582679137634999004706861525355310146795352240371107459962744464313809676475095146978619112935453183671183127110686872863641187527200089823167673790799307737393396021351539091029674263021846277756001363744368617914166591528313365488649512807169700751092366957698516819028127323735385170656920318284672468465663906568902199553601435818770675582171709652397557888387979195538165355764056632422541605660990479344303317511193789751400103465946379602141349962252592601692082804765863544215057825925299505466887085179501885561672707772367560662734682070011202505580938197384140479435314607485250571845180893662316560343568315792021952816970193128128749165128946015362034180901682988685359981162777208341599668739404195084956747574542579388745297081859080901469330679667193150758588856138881963220632003231743066021692224186354283490928606621636220396260458239036072244563468011837938806489975806984988479673209751921074371567551328710299474238860682125614215500306373519922383583632007048189015526518620406866833959920407858674706991708796887212246384261663815288057852522507780184754682853508448537824502309877949296141183940342393890919843240877274927845554978592508995728503530043662649695158535022142375909417664273426324701438547491210427497367245862370443455618416110939735869579525756775835980030691269953749444646285965457013238669463699420932347103343495416889022256301925975053464568530455965925992187366709704295364106026835132143930487584208301580683756885838086636595410184725833769390398529795745885159999998323887187462560971954018256408243409872143972130740131644472564319169363122340783055121484368332792273715096183004011256092582400545264015039000679754353002774885092964365068036016486136795223992571827905909221228977029948129601274326498735379783011261899514177848758763676522421785841730119969230547702527713105394516285216620094692297653982635476695337799674894606659138643699756263523635491420760699858705114049664471261990260736742729944156854555121380610773212476569547090612272232073361828881057188366600894849288939457503120199972858445092078955202307922387481729901651463267956164826687467026720513229254736721198340483840019030284233601673435310471686014932082723872471088899400324958862500412990611246260250900676395796454169285442256383189916244155666817732635307614530190444880543805135649153573062131470851815752276870567768505729369791592915928919566548919352885435029620772207169898809475316041705342677250750239626905828807520686028270047772018125759942138788372979164675015276669989544483275754421949447022398746405018937886626213160685415350143454924831311932188661733553578538610597284490877738947343254412972775368632425928238690499463079938687125142284417694435578030091862804381231034994014866834584219896602963848996424799793849845634030039442092398614200359204023884094147398592034990530442548118341596802084271336150715466988506318607800854183746066189570552291077925271724233040055522891119142890534041976129983838775297115262610961713029123141563872288928919029363633974029512706523790330703652258900980586210274530065083718228587846945146570825342118978732927387713582978469031349508691171024520060633573353612348980465767476171437978755064020694242057369159931772903005424674141650789890522946723302443248936391399243559105245267361985971938528175090245644336312024506674713603936933149582701386403730242960173951771495394208109780450927310931616995024768523947708426835237629033222561270537967679804479112784923612076576424649730272315797747393958414475312998072451464173558641726842723030038290373747166937583810769251548318090382462345820665793035463682595170209659310933842383533852697487195187435155302860764222119775427631395074897651602724310891213593854837557440362207552360883320828291886330590661978873805917199007083235540268982359291567255293223027167470585602653233996496527346071303206230971384042157685777970414875198086039116478328204361797857820290869529411799174120930468935533881576196242415343348917925812099180193131974818791435859031070964431801999833170368656870012193869407967191622112242489829680701636754692057534292883162256519661342791730911315746376326140485718519420979667951532593475135003742315578969241869332613390396938537922336862996982237828760153720652170151252729810148810349787225029936533773922383003446197923142625198705459941249167081457375883611002714739716469221490493769402449150517693457573140829623825229328914375123068333466143903896655571379413001482375437364605646599917903250692458463412216864581366083676248191775785285809619750983411263902621695921056743628646230750698405191369753437661486438647953687576271745883499382769390333407253287553426181787825343860099150017962835981745013515435653006631784663144090928502613340494722131549102890810871857292074756261722250819601303190706463492195119018953020731813606447171067096006107500386090739979655537724754877828405493468881011948943708221291733858529150476644941834429981211400476148594881304897508992704081345959532382544838141499875638321012794014294156682520045555033654292662608171906215869751336610901824828303390288987595228299952964554177627913077611264617286027997748993560541269670333765146101285319253087814932520506476714148664096511023224246386319465978473593763629043825427982740876658861924714264795046768895542149825309509989128370208847722133406804383671671167482755924472663427774966828724394931127540491201526721078484006104163673382738217981316899640404930770943105094301707710316020697690188007523101926999538264781390234274777390578972031407506339001163616463458015468050404202441423433041794363001603413832399003818284072695032884748321851174359259075039503027203910437355149303053443759503241813977162656351438630635258705616168372072847873110993056679945963472760760910465581475618195190486999111560846588553566416230683290745820733308888842349871895653548243812506083311908175211193635372924573406678079246968924480820162283860060514631283323941639723862494385421861038128952770797656751548721961951478488695644342808682579267823408509837311104514036188106875530226830943391687526669603985084063024240587477964364552770680943396061690297658450743645341294334328519781662681159113040966071755335426031476743646379016508978513733213786544583730589778226031618940457691852710857617557639622284869148441036119090656888828218257804700569508493459395857519876799752517711206954754976063830851755042948439172471706408197498492411675206629942335265113861435781930469368621445594919430635167637309400348082247880692526805572611376070400204279947118201355623677580270607534353777678027791914278452005815013360709027120731972578033945069420018380202587021852793726991061624624312760162299071534325052563726239478181823674307476805676409216151423783664347475992115186555585840075640215531387564181668283679625735611428610266821438039285372003165781504377411123716924461855740641805365282890163129699308939026299268146572777509076460911719827744228936042834347919287536200343486796210546208772689270058048589282166925116385915720905872530649754161630407395392542858346083819819404653008151361926571973623836424736620846217516101213784587069048722465165105074146873429304877215441400362549097951576121961373135452127132110645837612456112699756147996933857318400731530782737710208053329619206498747043299959252440874173451944686598234249423059067830748648016669222389728247489109831311803238296714802893467183618974791561029493139530823716914023991695993232990907255673011818426348013637580117458333588108585427485894328983038155974563303208802565847098078060475199717736971896803569758420715464151923544427831242421865697146610283839435609419731852438047683206447127823532279217643766850667077438516618394926260254174967649899232719694144598714811921628921070960892039753776256370751540985348390527786560842182459333607008236351275510480949463369756561938209815459016124675995766179258921516702752626438828474196931283251771992188643858916046638281075332284986932801900296933660752538305760986057034260751235659454090510358309159602961820886819642602589521249704483355111306294830180384853413423240930370725096648020280107801638614635827600730903552453036713238743997927344356621798957023405999047745586058581012182843171206794496259593971865938222191628963652876936295867492535981884957186542758104317131176003210718803075313351190248120914979163706453525711078096544052451200318880572848250494829927075903024851289295669346786441598714650884770975123571694889244661628901647454597913016655699228997789526417269217225021930618461805914569942254332227141314598302084923183728947805608362360154953130456056932743601259845393352320722529039891557290242459943416817564632367320757906678611147892607083082532931093448268419040254072270401313976113564030550960059168635737656572803086147676900591329963875713221977843388119297205330761142752577263903833741472818852384975306902332519108341854970419354350379179306158890251278772314289153850473081940906813680207600457219933707571726836587251109058008497367355228865902396520665703240097496069436734065133098051556664969070441001357332300294952638482784568056881856682218363906685953849713563152330052648732798875479892152581725481081805721228145139433852951712302606845702474797393897443352215808219666488240776324210601907189062338971742816628567562846824163568336736476715966542071285198325580520150222765044428953003460757535202680444988752804716175823261083064357266656398430278220852407983944318875417265814802698956822072134824094975726667472297051988111962527554127425814836025800218758265373795345900542389562490974537939795998843440818764003179287208303451852985011366173943341336067955070968597660813926908823424847568999710492966847644413358206820890450313821738321771581142881577364845209832176388095359050704059024751950897147223441344726460715909544686708272485251356732373695379050588340811993346700541786428523658096218185704651069147767470798238924349652596117336756877595519924247882503264985169736218776069299208654432084316891961413720576326034511220853289576917988352689690933250443295684503393461810417466499535559348517454386289850706154475404626191780259871509432975838265747841143744733082239471744423462695768934257686550875081433486120215138594152671589252212803653026694473991794414472498483691532102502362608483990897826191143071096126205693374541737777405449764966837500901853200628755188492293325042070315675903697506708617271985112309433826303677012883828627399481929714147094116209807018868567836934537880616365653438133347661635009288626273543818492859838443564457185607856354467162065422624488316820754338237184600894262511320824507825715495260696281234579352317024371771662072900170815149472442180712745470073488145743927412729007148626655094608475587716367662808525128113368597882675525562908065329759739527302451972605634575511844807579233379611635534411945594709848214331122249572634300650167107265449429228278542194754065493024729366008780842459361316557738585405645428623973410467782466906196915985606978656164502791406945538455432892569028168933200649541110050979842653689277834604039336987198131054486074255865905788620937099867651176023316941121974146241188332957923057773314681927949975631825381964072494080298323172777216754358658827842949414152071988918305511249187584453109690862720805541782530362084119724976416127711824084963344722113987876516849678420644101841097282973370979930850097800019797880365376005529610689031360794937523794087079175453157475232795047451367753398247937071591773215012465324232897219002829790702223335776625075165275678815454963051096372229891356887426204433160160832751530599015760118246831561082976740133161741065489689457804057990999059991170808343461779145809603946289059265213762795058020237533974598087729040401766833120455479112509774795482656527908913108314990282985944958076334180112197242609757614670517756243376149422683763926727368805358289632324175186950203403308852521334969500018428767654141601113326801260043638345615368918885968297634115825373468502810351253660494777990153701020535186033082548351185306350780012180950479237004552914207594186296129984510021252562993810179617385681824353932821896929768104535388639929084451417846855301445249287943529875597427981063181164333363383313438467303689103308748600648636148768332290462400253301359636662117811677681718141433058924353574167712783686825517399597330109624704079980925423702717095272366086318941572960584178084712205142690280791957835479835629512825771615235953558394449399468094593050650846441861088203581259796428889338669595428359799184882462112819402277714043312858097608267231663562789757794234898207720818911262137520592864912107746252077315998458321410542588298630440467152862331152945223553788497078449496494686084403413796529634106885776858691925182552756525117476549027409562778756242494150127841149783963099579488114280588550689601374852511940765919262717777912490650143795581890015842270220190786595322779848651224101687116941780641217818188740745263287645556433847855541169691926071783632890895277502936137510466141427632682583863084308320276325753847170047581224644383818128222363676938410531563419977842096379782262927201842439212902499781364561681015633969206624169557158927784447314631474439037305350416899313352549668571529393464690884478303191544970003692195247185668399397186368534307739846928283202158003545663457581391915451503837771071148686409969913997928993789409664096812036444878616538891675758032002012283394510131602132911380665635561501871180569625694912715476531958753224544827047247547624088364729260894143810357252881133164190174611642645716777828613699708369632858052172516737636497780807531459572665596794338135725221614359549458543357026712060453597132452933336422468525982710805373360660760205586544576368490803774383971410277225524563774614323351583480795365025891019509561932800073305285813810766012553045545937020377662950350828877769330029054208780440386656638157634875803020767064913222915633258755673622044894528851736982861577304934804645318689924401512113643661631096379131694605411180948746416553962795968715723337004120089360042019837217499004325271103899034613857238795549334040772122081601844214069062231863002569749917880390872349709387538790084370078835021723683121423161296715134674053168019395571500382130255743258559132574975358850291026032690000072727691838879110600957083330699770945113798183335970413163616791442724849883861637743552773678130238741387906523072373611192033581764106596772542495628584221266414319251389800520453388945560267807148246806389949223477236651905736234670334929475000134158879797800024552541393933568248910619569152943223115533490787195845246428613835083295688318524826967185358200604113333523689786666471847631730759721650340529291682507976849816893173822513122178673740330447456502210005542072068037747922390000351703859386612748275318815154132556076091726549173040910583927040856985849944505694128194712181456471687163211043768199929333443465050688443092503555259054580214280413515080809155646327618851651529735127269211304337448193734965755726334769095907217012533250893900765700082447484724658705469091977622284796286069717237031624405336510785010864064734971135839419932249063381982521371367396532276487249821235940831353169233858369316416305426341247450821048135608254024352413433339728573786530448562991011762737295224996049568385010391659837366014319781749833447497967763620767975775206592277332826569113651835712184475518739660562426432628534809923881889482486072094782595312963427868506439211184926881974008840768645610878824874955521281298865906951296408913845135599807934086571683029474603153967893512556196831010172588831129868551012820521562424000984501877338619912071822533672788631970519609578163707603381984130238051023708637073030721925886871162243800176774158824082306107630225363067673703190270037945210350116647087220241094018945361968701019259322746535665100353859943907083504336781188624124192740402050871417255820117714659380148214124203414481863901078115205702542532577072369366415138737631666157865765729843954986036738535036769187115922247509646293344473513400382190036240984239584961195292860678175949781931499341331530859629652422842159522523229510235464527956928844514973253842876395578257414141280593844180512501209721129875983744784244141987515398183124303589794021635025753981903166046860401683765584892215117011321927419934467840501472251282938956760767534981203972521758046821898524257670175252723847391333165046792065335362181865305153991644903712979859527817245501719451336946138337382986461601404098368696981088105116482390173565862730790696227494304685352222343623384542817855974314804399547611720747819770734994436771475977742134700428200852389285433506146728698382407354934471807830053725606094036666039131019893182649893740570542168228082552477836038931628011152903760068427004245719216628330178781781524952629536165669417275959175840714562763549234698096204524955998539128743746336854719756447384545997969839800702067837804475466077603728323856212314027584792499032534712880978597192567338186320790595149149269372320979371953011448463593478143102655755217678393126735482705837057036252620885467467232287344784500574106968211495099770671996755783221056286729479043528321369715481121857747917059517462861239775235221867439202852443034464499050840677247292514360138839756254338769704172816503268137122497890451590376399413399864514713914776235746759192052154148090794218272368508714863799434200767573146060578587476335134920436808290475028396371775835985827644264466554310548196651830053063061821453467436316359178145167911240052684950710962399105787214258994319602871465723799486374848799544125463835191394973845682473098569987644390112587331297687936728231474728792229002739275204666420994348522952164726592385176977764191974697511824736168213450622860156931396720464899178881444999852079168820466884876481717771092466618140776364057237870082458626616888705396402940247638713767686749850401443495304963629158682046003858201146846285649020416057152443092550887285801022732612798324467296386464799877066145554941160207117119779417312080965741975411264987102546808415804186112276414479094069046766354735262229011582893495702036151888966904362020021505148087395576059651343224899902113096585259296262981526524457318904736787521043667232244533925865501623591368997582705323049845749503074324245599631741210726398979611271775755638129518641469395701584722966116946994427861102952201676304798566717983417865409307753191185272399035205202349400194799795398243219864624838372513103681117780917503762763330315812388832113159095755190625144887104836444024343229214095098537349271551800328677089351269739581197975777616923258892817745849695258541453531433225398015144646200164657381828079710714957394762240363978535765534029908434997132880234120065874520484457840330774993540258655622339393479009830978486064938308584822564261200638974035121499145042610252272073703308557492967639940812484644674000838596193273232987508661367329661387358019414849944253612451137288168828071404651092361970818193929498131160332315280642743568015279553919323032933268552353595882712559513954947282181284049698123498605374129417268792224545711899159967048044905188263575631204400711483120167802072085810435580424588412326135297531128509283764893768281333621048594305266739653022373236551091815125587875164208746419663334277077999027938817959436835134042214713459844435881855362880030064376374839270983781219141171748295589930838053632740974875542273476566669079857819933555969028799787387145307260728493205302086808909987009141779085381276961490512181311004264355527482396147534854920576955940439050955478458551262028483329796690594214401916956358658229359280550417285972087507428558608576017788074594542044839339270118334625493670689993744804060894044692890981655625066923088316616951787682779622251816782581693613153187873674167459025512567737277427034059703382540339347769044352875218628429213624465237165777113867826064254681857420659030333987042381747839938590319236630536969639906977185208911318149169782150445870869908025618768532299526694487199724437811581469497143053864194207951858393923767719084545132188200109691569666489307588018006163475890474069241468444025099943930816417726518687107316059588593118794499994749891514105959344516945424544764314449994866845039549719218140947677991629287863614880344584127598728109212997610483842923846849842589215821109772265130230892468754968375643687028077597433478997024792355706111465424310902840413872435658957069671025361411665740470108595523982091930510881835677424831208998736971020220752866347995688647755539686249076703609602018766423182938579221937340096419403199642279584129970307917007988208751098171554370785618201764185361796298831606463321867519224833705022793082664860301929625381226761089564303067310843208181678296226315185438700814642391465391840525886657959120286264536991886905246056826795335461214542608255520569495730057723394685453368687630483236483695743127788330456868678426475616207906108373355413843000040370296452436629652063968533948642061387285170042364252051929151291278275123781325828714609071901366516112085156851880718896449056551814431522713393687534448500628800888319560697010611913188864270784370783473843301117447165628276598359137738850534052266662911352001445086458036990044525650754316323458180524941418194788739877608686401418197702360687443598620392086186112927943874182519055802836800260074966011662807339367055686903399182854966697405728355832246105513648188722713657907402677890813074247733917831240518282920673957650057956852722334537609077243169992591474590089400734819838269899690932240972866695073774554873609336194520213900622700475751996668807082645626308883420841256837485488329367176570585660184072588964610187810161954762541600888021207074046044053431622502815240346730013411577602995999926665150528149315791815617779874791807348060397735662936173100004850990906987844024585150159057639013928026583999731352299443927586548641623326708460124945894539140556923632084905674006638059407087828168320251181470317491125310359390190165421808768595190414686113787645104617795788497324510728989871470741603811816087275389033749805916286247241637945089974076155591681704895698533542785400286061192935942313279863752192090719515503609472006745463526573267771564212146873617136996058383904447877443745653772415640538916872459824647234185985766582003526061802278827589487645226989475989300089403698348811259587198660182224929822265785038615924303752138943828698354293686674926833312418990814096385420530783699085256094690883522837618758926179128769780849563816483590600799982473401473447393979202254380475349952695616468788452704088720941061887784719481335372391195961236190481739408747669796323088681989200318407161957016239217844296542422399967611626979518549108449322023487623817762885216290361283095756123229602328810405702900330033702290407168296679951721274768558204783072638552402034346908407556436075628228975763402437065496951148022494290268528708163963022720005943546920557588114721632502970823930824551573311833856724066920284456396992831431628985972531184621894697301947867629396411770940938037112264180415605062034873960407318543315034097590025574336620258901721253886716644364543734913500744344705308959533990328227270993390085407761182263360560446900114264487830425828617794026014058793602346335301766866499413235204852063630718547744667062877459919728874835927264774519897718952815029721621142627945214021574912755698296598355895000697208264095805040113477453852205559935180740975263312876357514633148531679980144906717477385806190900068296347348190569398126810105385109738210769397343693052680487041414395496282563500382060925213655197485731063259204078953122258657972435573174073553047089611588537003716140889215920335308139087942834950423780176970735411054933030589951148601925692674478979348355362057372549834509071001447964704956281113463516234534997555177686261912322041287094036200638319385648854819649983373372794887635878128166374323733896673054977873874098397364200682909117153455768519490227844387430297238971820125996908285762072929457656034681984409832101920994438586963419826616675562049100395142744169436914335669393887399401292867478602233722815286157838193260253619899151287568172857335508223591883602529585665090590443077665453609828453453833124499412019331827531355561596108456917988216753452139512061378292902703716419030631468479741585534820221288435709223707526596509878008108708868861642885218043744900338202183512229505706357940256611566550478558374479532165546867918927541376679401347544580734902166179499452364042064924398819575325343640142759861924973189874807350279783390663178246587651219569169907127596571371865132557880855927412839095842775185095564698839271668347043634391451980056022437137275455804435509218749166426247363689207332018059429134769281141215864330380613938152887458568494971568023318188472806387175891688189404213873823292551717194064928034957076414405005365040112359718967155516291511491286576463883562206511650908753882158254297941953467064317166049680165069754807213069328273266364082202862696950132789529892603446941196059230853414805118377070393068303527779917848014379627174088653343588671037740772848725534062405058432856177814403916725699874796007411380833491169819141470746438594250005328621067484385601140779336889329762024876350165944401411785412572213870947014859298335822815105321616231022560285355137203358122271104682768285029157991556620988288796665442379677945951053597711446478544568079813918493195507494122455568597773246042430301592699528291487194252695277893194744890420633844052102551660779196476415735786882995120853529387849518863195780333209492375509602425810727827057237021497695647898620067921299441153219948343051305591854576235802694762413107438518356419931671666589649387543102991364665923085207888007502160953991405704585612393360695596398322257997504201295572495151744311900794069538886898751277492845446868625933538408964164926288466899665818340769251008331633350765979435387312345086121849306837207732560369770581194486545144697415568271897714031080627173362865548075983119892386987788213061549231295200517404295082490591930569605978272972489887232131295687181961590018941120386478312323476209176543928115869630544776212745598921042761678093998455792983388808364286281924724825818587969984478797153895460817391951972715507201553003156288476945408030677185526803070350904003844043202810900633370964744524854777668341785645226161445424357040039626155874202028851556716055306157985474351912944982573760274369919708551129515881017882438628877770022961697243135397242550841023220254142952495740544397487418314579502682950881075589801656442578379843408364039201153001682911632107205380265658659122007654023801065404303643566802103856195886309861143110113370339682518957140673338031024732438465521704481446458380371864923108898835503090756601178060786605969670630670588312074757833201463313266858528127122298249326961250762500653463675237452438142462286269812629491885853792414137922089487875018941045876957089459141625896928119471406824089870625370441206583220543551157510299225756360180532333535202153014470390969498518504355878743193114332399806751976519086170330867320630158102031789279294601555568025289510859378667442854332463822576580373376269997649844921223720846693257238461673067062320394198391593002487037223494974822188139327214886642423653870547797163096286747554677896370830210429042424934901221074091665483891596904968128403975250017745235512372505657823855572880221045188698232751471809396067577260120304122531539429318533032933538954436833964776617190223475182569692567265715531103165936046515460124635986316146849482488083222742792006920391657592393882837942558803716627435830390340929582469053515629193495059510952479904615257670478858627814893533076968395304827732479193788130455445249930788620209974603823815541976007310516524544937857618603535921333138145941399169068767186733460910186516501160164698123499517421059692901611125783368963813861707789075222444606862359091789380361759780335169416808037258553209341940973877617066858694501648693102671654762255197422716528895170859334308502910893947735507483834987342608199466884866313925570092590073898542690716251321265514423786863540208144255793934813273559512746209119276067714217469913651773552698642794315530960151233158619100663674624095830251740099783215798240534462877415607576394170783831637943354087761515745390161354804045055359739992991274185281346459765960162120220254541869099654311247529952436218065518250579694457084245564679344038744351859934147347839135745068729161570851559084393441271576862206848778054184175296084252962545627633514932123835397826906630356589930114787276120934291992825887457136380894900920791565047905664142453904195369127286322208728471721120199678042958625964797603713286180082951101396847940593665811713807207782531978281555684007441682451662370605771378205690635654797800293394312664667045942588503895457348924907438246427653051970814562246409287099485600811711396706005605860622896665680848706564081826052032181708915114806223633256316048760274421073133152101815023776663318531976298869791528172408150458413695932540464719904242193381195195665941054142261049682887121427082969891236348927796379635450336149572039857823639293466143938799758404145611865276735249107253427410266210190373196336536447729596823881891778727720881590829351311569137987255837789380531925969805803624115125142184850407776003232911834067513166834973255253301659826174481668276026209399248183603993437450948796456380838481251134158100775925364386278583351827874002136394945242847083941946988521496428160765311829192186716531784377080363506456015388191269306813862279361952151567480466977127237954863495181918993918548953488464695818932772150653242286960342995305522674252672058302644662524787697253289182524480636491961241599311028737039587277748909071449854079394057638606976836151137495537985241474074210641385719017225602146425600065213439663824070271602012048992290329064388688855606275498059351107430382273920038093952445890126703930990601974621844223463764128556703120661133539865023386114173635657421268165955017459932779884213475049966031757726197149946098679388777068023588683546454229344277065116903048627160057244359344461399968518048723877153639284881874330362465780176020433319904449418762180935843791427246606861609543681004251576460700468061514569706223743432339120686069730561636918516087639271337207493392735573273030948226335940370876046550270784739161451012592463843563574908138046051730845859147787252196106369664521515123287610253617630985222978650918748812764035321263245935133343608236794564831244228685127189800973966693005349286695709190298727527866628439302342451559545624404303440671233680370383537537600298750966659340520500627119203646851332669202069215134770934714677999656978250284510408392246519568651143759677851548688585261822325334497189649759799989628741932202854360718679661439171179845389694338665312341146651005727436305162725128209359864556635472576259679868144240129316445596928707023314182474140759947106427107928249765885605614981815062850187192859092981362241538524730927792319786797220145595465721910608283672613116755176359027519855123889539583490712341703511491296792012731146763067886586098383103923177381016601281532135272597518460829591338871229580259218140831840402742553937808873957784085401098060243243981170182082257231878267247222021367585887010412334064323954082573851356213533016387763559606396206430793051663518909793324293647652285978128118674499849089957380386638290915015766479009393378292381577815326465980815724263400572840329620318816257573751207201082197222122516586113692102234409923923812218619078894903228081466404830872787135446563694715032753175516382443571364986909776886096694653899261530373736262361010466541446998672686560175166005422653732611749401720977346154397361568458903984141915045627825172630368901501066459405317479807259122248845873708335909812692529343161285524273267527882251984734493042006865266847799358785097039031279126074441290713060896635132715592444314939080902285995194706914513311939606141401299858914129051938100988385319092165929684189390213143136314981908702520868610457688708525154134488136673172836850521384437629634867191359695515378105428308878349253416114159666668217000590472215776401250536753612757208045643212940669387117486283948585265143227983793319519599404155931591098064458452172861073872534261947031621622737255061106710264492664154430936398347164340233259905328802441195445975144418201659188785546505012988867137313634338474009857928208765986745088864370680186201610537298428887997625001616418390824063432050261857620182110108507418266435912271711122878489560455509964930038569564586364237860359938014134910571088661229357319270600123462904912183246191846464970877245908447584966490501490910886993285896364013863559044129844528293295221338135688132249258201371268244675803899718356272823085579220284200670519473515740406706003250914553888850674557281607355303723999668025233771264513654627000893758982815938191810631473618248286679831057820420892077511715669344323906775559602547031267603017342887712033587094409577005973583260843049609640963214506465689879548622450905860023208545385306882144654909945225273547983054870086479991359238561516352377782214658950482201162240356261821797603373945618536277817651813945472202864837498421332102026468963433339032322043903969556867005228235684133101258531803611104087891476123970215664039752320630923913716523979636082129021455194287369476734319818642222928024596360299597482442161905376973122428269045600889814201265447371303675235863333912451990703391557692862946866856309824995512180155546967519149463703256211312353508829673803411735016148165531095249497805038613476761571838483829847361005020928604609196344885239111166049158031441292261138672457467936690711517663705718202596472672346160193087581915815261400491716004108212685512889613259900168019872781403868959931336939027840722610373701147903985955975104714838545045500815368020334037925749262025089560347335503216900254287030918011745980304566752330248997778490516283947422919085373234821834775565253152054311168187489637954134914858172408387183093983429572371155211937088065443051798132598978783724763346536022985137778987338246958414360747614478072176119248324736692227935514582764075961125568319353377811447856414241865346026846117433108579582519971138308830017230403282756902578574164626419656404637029183281714489657711205346778049437495183209991952664473122168136268996799371221148682188706406391712147052312655882386428487911050193260447190109869580579052354713905852291483580714806722732758513892517380741770903191601389102853150097006919134077266893821283547422381124081706389506717168106403800079157071283071581911399353287125439381704928321364835082000224016039061648549974296612521420064550765988416992909822483177442358104890327322187623235416582212521176024535365794060770508311920257734592727440928131419866019000298141814924396863560755234393451935756266186509819598103091714234675619290378423284379530616395396891448180533752245078538448081935198412849183245102973211390607075117469686466955727059958502378670379877401386818936013225539913681723717112602667052903086064608445851888192616982025343366846537101620736501000862074209514889845611255928861150226935824147029041158837963105579472397260950640581614136942127498264257041558006475970505536967769509498003921480021150692328781628283332027848701920296491768750036046497755619165667082915065734268225562024863844873156813457614459538560433078407285463747628198647743440760420015005121258244472799838369246876918066238237794682011639611853027322673099946833313100628044911464675039489043864240937121141717837603705155697336605915588111266717098374630145642207879976348825191851497622793738831746099559625258421911865934902642660853080778990322635698585634197848331828536087234498164435069844587838541235536109349414547284288778701009083890712907634246160945839820532606318561140528793990235595166304240812673753390475997597653877348498015052430611978385833763183672147828375356944420726141648865525549746249593139453788100422824489475124479580228564530810043307358302228030530080386551056108454077101754416377706296780103025655759416885698791938309806884072333979704377483956900859339778443687409216670946127006871525998837696661834308039026537745211716312501455666166431864793921097840021030048505182510793939510952062422549306139674276118685643251776846318339809479779007623016119896820094331039100365967427413357984077483984201934781884670564159176116343581557948231516883445599342852258105774175244673422515818680748140703309830913966637227279374269705807754299901989565288098963621669223685016926150242343194110999678435276720256181218492061077465344869359013604882074578486158530021509530008616209244169513378645180038689451471348632347341282065251854624535586806932686355525104529467881183984187605920854081198444957781199392178030351997194947304357318839055940006652326068598273523349404821615970635627316216706408023518767437990042818197299824520468877071560389332957304617948887174680571454953578462557584199833235885461842169536867762515092312898376165622320083226791114072250896239250807120158194303711638527928857780525893888351993818791765038531985470161474028395807405518458501665703200921015460257958634023489256644517784105154473474742014081792388816895788831539636052728054391888500282410256446039913457797387878911763929384313619739606415719790557154667427259784995751382742509861595583818761112720190957138683906945203146360769952103977599450024096467753764782900750178671711452807415442072847788752893385399453520217720462283318455980486324914539012824044318241218124541519298072342137905081425966775882213398312657505833317125246090580375595064333896671427809785154086542896629473715207349962791841145760339140930402598235214577307902407316852925089452284368727264938326288461957656659099006201790807044578007928153096923227007008049244345574145981764692926638439516817818354505466709502069869623425118917305388381711938302996994127949215687580373535027664949111886954273547173521730262555917571037876595847943180685480636519502754023358824290637103499168463862478650947688339201826900169023891055211698576237238680976342596392925773203855893644599425994971588161139333606630423745146446145552486639224561461670752530174119688021365085366849625771455403127998919950448186244346357400766369400966612711301906859853375212647350014888723289653182524894465583174018277953693872698028618851441408667194807091300904132380936715369857788448312226704549235978469527830375715967331883556947888019537079780132873603017884388023238350764196042686887127666145291973068307164377053523347881811363633165666762520058256249794049422413180507964755530952314679023542380967024215833543293362364242232909576598744311087945277762052761232611435410658362428255042152703471607497593961305493038221657491066466590255064324509262964077683045708815206099187788944713975286215532935137695983771509811904633598000667442288478315123085343179644684041880813140701553570437953974889604021735970679371443056548053174739781869565276330801973359093181175854113918637903577381880481094220387994990498711193566772640119587058682448057960475054016436899422313072299249705728436152876881297315986078209214783982934146841586098611710590413642725181688841018718248192355059917172871301279775299999856440190700144813744111546956816212054500318070657037614943678394247214188072819040663431941480400732797880812514435464811065981535829038750667552684629918044011638306699946300751022021260351261446840120174669762475361854954398557931543476829420345147050296280299778586835646806573924942207735967664976427197923420446226224241910940422388422399825843082461860159689276737263075886273613303908607836540292100043470083484433024500393870662665450050689505774679112951128030769767572187890646524513793057909689656982182813273665507217615829508756227654366572657156030693677319626494211357254659400634599281177165124045198125118942193720030688202722960536913231124188769666357914276508831216197777716979989423863790620755465242517551575869490695937772078969444535826567900165621538066267403263549597337737927909476442369511287117006499532491456962153131135240621460105540149252962610233541473991409231596422757165983017402847486240427709695593924528758707995494391034823109287645257702798829358800372252508560346870296150896221758937155109571277015325228548072590634281485747340381926533723656607844180019953039692609346536174818453693170303417660354361746829916786366926419530402274076980173178316950594639718868101134705498114863146995130623873803390976323723496077634665823874151293820221240624023449656218997785413430724824891317585569486060929308787935317523473383014579450885394684133317028134944848049850066293522091709195987468899470276286346690067703395724050140739445177427797855772423592858095141823342797056208002140607692603730640122032394118073043443998569446413837017992419295903919285043244741081860790362618198597118100909335592627328002267084840581018656428923011147051317460229578908649120622705182296468495615460994431145663413921399998978631227090136482128718897029443142250698021125180210421867593942347944987633111382733145557577278730072851179443283139915344005351193472443808157946378895849373950861080814006561306986690327537529271743937300532357347403666929260348324425511714488641179213527175870328111766349990892661971815141553726496858829888730740326220392740041849317041625237801303350615802719824282564234414635597704230920250482950021942375888122939531455410042458742383082324143029538098707834101152736789305288566915902064727726126353866898443882169428911329477764048914009275680187057127205753013181436430737754609315167977867682908656860605259791647605307435196432477942918153138870804080340550211664773612011307602999301177135442708577180390446812668973393038719960535350271891616748643093066277958970536555686447599704789850445724894235701175549512492104402577245963378251631166129000078537271660334924600006183727909569414652972551488236022905264781315809770657344019038979767841601781355247818124146807946407868586244656192635494324559764646216549621005076061823609479728498982773831719966733172209842397255533888375617793795154826737574250288651843863866749301626542165220440739584357645598652835946500451924444190386813455018835440375368581169406092657390289886507077725853546943435851337927991925970070025014689369669332100427864282906317581288656395130459480416884117972168130597472342360912953995297914836780586259211390093134336608491125858000871408246795556472257262872708071488497209863739221366362120611893588931623525832807040254437487887326625046990306611475929582206732423275216865558554925591993186322459139936528388201177951190706092499412953503963081119624447473098340051396130411904262646341174097292611824559480435781711071484703852197120958582856673590083481941445337627697636576891098474764229744448476769935365343671735320386494884138933085596002507818618441143944992740101156160139797877729746711223394104002433207267500864950657920950753354761568331870156570696338352168488681392317694005482833003507516279922355315596478546154635235473024184804523703988836947478749728580264612543222641039040754537641267792262828671075850349961972601532536597389638476370945537412568352876085161808693277137740322622701811655004114910801723363007631664546120543639342824575229635462900268752124794251684945138869359851495932555790399586745895693757162431157179289023911602666118832310063351752336499716374992404456123263837346869415157410260172890680569633059571402832440710483793571109101892051559294940576505857894911572833725975255059440115565039133104674943206144417051217151698152146567947843887749831293435371260441495082647905061761549918528786395852632123862026421530522064963670404097209838182559179007667788675969542632455249886613891858713835236486273799342887490956890632426868521869514123426633472255430891614103907144167404241978184200989555188639100682701150565019202366182434398754866464588566088755315910553072084961390765160752478995933352175044549734531425126228686307430505074506703110391218294318857863269817618911889227061981714268411120246236185763917409930804590513653425539394824384935631672176285134767731521459707784919531222337048762700577074932642726638287981706659945306646262767718780337408694015976957503058161437533450292035663245845389800836845289783287483117421579435572701776601382065179489335518971735924523418458724438217232946991588678193346605744778860174336819597004548111228855837476485365818297236687516609508584979763696259844778864748141617012322819652592616893912008254616999997964795339682211392237021492709950606601947607159539650357760510311433994553920405126646476900257060152017873177002232356029450544252844587639250341502220922841578413036759763464253936804250695828495475293900497248190383263068975607894990815470715314772174538395459855362308311777301998716456026011398979957640865279115072806332090553737363908191869610254234809000549380917166682823581771274137307205023698806253996240934738987383126388304916103665293546683821132774389088745753026648775400632694069065716563666300797184720525780508622913297612861399375415833839244311348695684628013275235746589185116667076248641775720299201992445902525426308732200948781457153648704913105481613910474956876175739328345551473805707243587891099544289018068127832546781901319451174787356702984596687241377582389286113665452837882348320840524364551333413941494448071932770061128924305265393305513485762607900182915281697228205389673430340367222704269693666106074450353828408186917921897207141825546695925843950528480464354041722247943381061231372782219824603307504747920985446216716728723019329360443658228892313781246871981451668039517640593857215339427547515949341523750236291618129261561174610653258924617122209683802702934293039085032020135965646618846553026741241249390650666498684023505933393388234234239785503036429416412023346362246443410721228908684934439162074119926602598282688177106260747141763608258066373700636834843607135362481079410053596884641949866568175898759967434361349808737680473921680514191013936246253331512779619193594471867180694690540982642376981287350989766698681643622467991002294481268324431017884284406584063753103437178268385830044402944456184233790884844945344377985950827909903662389726818667410831035238313871023876308355374014261737408523670020632631200926558441025850692489329029743594660666829358613610843753926545703055188497238053280129901834259184324110795381830655858829914332961697746737380905332381402296475353845505964680163255965626844085295786191867629827344659376884088043232981929313620129378537316763884318994086877190572985859439382638614033231771679944433350187838499810234193489013521539491865529942836620093767114861271992496660448041724055990005720510707575472763321885336505966537882540440483791458283043088029143054041612021916870566535970862188898489452399419989384111385050526919499607106845052957900879491586139981675185514184352425997038918620531547489264259462272634795483681475507958377986167688326022927459274651961419502637644327941222600049949717144147161920328774786176952292357150977896330926715840002388515286637948472851290632439460137052336220777739326451524096661877263988317473608978016876734372832874930891350930091598900112041012845435988200841597242672916856599891502878120211817063603828719374434023715356342431770067546325792284936485851116425952096443047036166925992125856337991032042263860581571345050343471400953070690622089392518751760984666305435598084921442444370280359711772415763027142855087353516185164725626107539870760636658886456049036316684978190613294079338778926682073550992522003517441534308145778867203843639338271139109524450280744205592877980584376966937406260925514839302184131334721475271078497287883191593834695372537720142395870398511568376542493617497235521555546535923303061590906551376770211568688171482973513387359602025995350525678473665134707141381218771654838475333178252676420623563337794800027383461423960267969800081892750999777078331848298334237250498054048474215846840244482270531804026841083467136179670836302571058163649787932887445094039704808103773066529378352174171752378100369086372646720205496164566261466829382856213259881241903648312344294181015824640492364493538217989041627051643570920048422706888591974988273160010216567579896030377618971635146182781260106433118711940126363818371967564399293129689436182808528327223919323100696810075940862626890857517458361679663743577558592654622473904896920260510485450542033184118207432991338652044732215966929571228699580143429505893030079966045313193137670125100289707120190608386716576622605192580308119997705263452761632335626480298506729110790422148432429441471090221957704171562108299610008845567822258205563682736912481913604229841058348412856644249799450692604990220981587223949381876949415437106803968677801890783676787540564665416833754357460343679261443395697323232542133108759088245423346410880227030510964437720492893315190551307396775551003088807160859248603612813783838013140021893123022638087861871085092089524231619878999505462818695544819786400647663191288940255854904511180176773494947011827281420737798532693764012098317299750930202847896714165825400594833919977762445386143617615220219808106252289474049614813586627358538613690391739504055965391506809097980484437141636328021902686198042782895083032117179039637743460898526229563330256339576632577457524066311207230417420089595896917878340101537133514876938644793246235048872344777810322734327373937233859737887452011838285627450624471388767874909810482878466815365177357946233942244118081447362461509107744953462685062880458948330247503387981239404091810958636927248068909391341238968974688716816106291628624274096297623942569256992864517554150640368741729686458848084011074129950477523824850651853081928704482794938660093040955995652863820222452678592171686871575641509528317249087139100267758698343961649621847933964556661087043502850611710767059957516588895627040485560095481782652223391309102203969503351287510499370858718748668761545143076223397463442450634510597245923455765591564813585650397501229257935264701418951095179447629162596973783169816110266403619824929630311133709792580231223469469661376274742655611579308956868486959428039420908629450998121954349208644425970530639944791865682434003316640321968646240860435715105263608071571055789846151863465706989259328366056590182289551367908981486185914549783467161099080287515191655541860867635986604850900766031137565077618203373551920342308943948077608182890186430097678153564866534818180050105793750541276408183551477716989924185187489151459191602679466167780113773630854114653970108310333108507877541961526173415749612695034997511203517545698023495848040727891178957043545536822454218277648608561494182203965185224515504627770082592536915063747126586060548818718607782481606110254135365860790509568029783581768249286890047385431663245899368125513540237139937796715710002509621991991790319872460500415844320889400363611956573787530723905711410068989257368974431323876337216589528760777233244162246435918001804186723916473060055228555559063492641409589299032659733900615923666707161523058831913950642847740461274715426630998786899158814721211101614735306525656879754905371385428370691900081869317227091297540665023922669138717104500988488991586853751534329677863191696882250648543778160456984114068529106786869509260118668977937460860531701580768363013980275830993063547182705941228616771173599612012060901296419197289378571394299562997672663655237567244589781336534393417770240045322817102668929886535705057961891485267333804502949839438491308057153622289414334832293271300430780785406894156996228264534765082931052794652186637694889707042401837821270265500451510261051574750835272622697206539216000126414592832199332526982167433769124004809519228165766431113480467743297269224046552564416521515234223041376874819149656777012763453263345842035464075113116070644924476017496533190650828544361386152325769020021688602434963241298356993994469755434962402712581482049804567744744501857407187847696025944216512919998364692131591069841002566126588182359337361342409887902308293520838565587628918135096528221769426818784791010022820406681075347056576325361112819181939000190046300289103805621134119356187713800554947840105767405981108899434717035696903682923696051122588623505837212408726600390699876081051828452270303668221848076406984550581612512720823397080813417395376333944799801505990158444484709613369035076793645522226072221028101110920524701383939450204520993606747690964782383774617482626771397156393820898761789866703042387076103794895116717211392399924294730732623780964006061807053436721153623958496590534652960147707632679379290101015137468028856850312791944231428790202070290065510655020621431982973379553318540330527248504888643945563902199781211612044850076120628074668164138637701452966976777571455805176728482857600085971695418698541644282189108981538718398669438338964875730851393280721812350359734932723197560596065369654292522141946514788444913417632883532666224699056057862992390805803832109311858651241609889769904300223843173920076433345297448876519110429104850773593850616677283884095532874044296525926842066375522463556610313534289966301117073976179849552299696837503298944869214470922823604918464972687362504433641277793812210165041357040393247662988141613866785393080336879099118616480661423750006555308703310446907837790512820162408767586893034439382486787664079899846877060935719822009496570287936063474956311221431939978900457163364507509723473962361476923729647906774695646283066205154439613674283388620765298144242053793181801792119441836621790229409277779440403266064970783585447072410848198024612925690588112807640959100555431970999717401957384203000615297356510453881402365368462891082275377369491600459062200234596510075355649616476465605836798941347697007288062106363914437670939813735494129623505284870965671621321164064441663748233152079470379140616955457186061228827598478825395912647329814134846669214129340015932472936120375119659639928774228696672202114762653315253313974505992584920378806250490462141702935060230264510001918720106443768510685043736977754695486901541696202863104289616288593198268318751031401540134447371088274013833261695017219229675929800521808618642963694893048950988964761556556617005108148454938852115260661392524764402028563795210631464578724307340348733268281137203767107455319198728501885298268205239838881822640676258548778168094083947282463978271485955714838952159851660721786142110031180005568565800452914506222856037267280238511631342369540372842115549063518301174584681254256666656015835792453141087399025431855064547737491254454671747674277209353611641029229684613051257168588457244013965358797413596167351145168649921283911237245436815701677439818236496677128768499642669388708437883136664582067375076496959676824949294634572978561292956594427804812302244822439025915454405468512990328106309901908896427678317477029234566578910493087588689802352315773431240851720068212979242913075896717757673290924689822468026796664886223640921842541393912435774038052336722754831268100350224472173977196548870312191630560918860695796381835837865874978543202000635877850854573296284440262769347774871335703550201276444567789274285690925821421877529269388420572549091118096419620888918527539342926963103583310405598660665337863172095324831289220433635029583756969803659255461390112539757715760105377265971168743123894318027519191102702601355624533701050213141569546507667538359843434212786659988424385086592789117754135648844496705292030032829423313858146350083037186192180239917897333454599332641871177099996517002726161635845411216890782939674631242471298459099951948856020840658454967180401584613465068895009735338252728731216464609699479566419801428813990121430132467052824719254326025551087127866296417119520343145432220450596448561550227255134267764153513781938913016091625859118633231207237403759672744652850421168591530395635321440752267912009522606147740993931574340571141235183247623736694157432586599549432212668685669966602937644599428281303363592272674033903828498795783855760108262033387879474010500091566657071410895789330383453013186443516534402394406057347665907014415836677015511987205684612181741331078068710850317797346780173107710968259030816539224685297775394795625775690663091178518940662571482531327449920184739241168824471838747362568210095896616819023033529277508968289604922936555399796142806724029256134968453229306125165300267607313927387173277686612540722652781685966048367423791933935933036687188001730303030027596705050047432641682392379642817771951071669493723397700056872390484355667161306737580062958937199774632173273542744306754322811982254950149761246386189753337330963628837526963783491476929372703449270544265629852197850600940473938796968325954556211096335433539355247843783478938556246790584334061796075949624657114912102410759148371428147826894453680233856241862795499003123649275587759172485126414895008640594466005315801363014657433589094567311470603487394276828961661920511905160532431586411926043269727318065609901494048101844946915078961870600366194583374941439804353676318874580423193651917649866207958493020636998792913844770767236307855851572503339104752000817640369418499028015639708080680087229786434922042330744090390988630057534945967262796480451199533355983702280220433247426605663552250020570601249170496565178535122361282325514702400988070510632912618686697304165110539412630581815372129295624707365383177035776886366232829395487902780269242154645851732793480237681302887902435052673274735467287800507457693740925194861575526088780812989971021046071544804028959387795448752216328677143294222777199749471556573483003966315525887534354106863537833895736190703521951451833532513448412364310693644927673330682450005892539435547290272162143389363264333368704372367739389241197066439754057284303331500538670482640832665166907518869763158121370870927915457256271609278745348962623669465186345378321059340117168660824217006453323379305427021429459507455794546071161730846482746425303414334596473573554857852410628844740595843811437057842739931571200258364620208772594571193793473370504848668115225263160873219148750178940019493554255082085584563364494687748426127424347638280531046262665536692327567205693933252544284058815229493259548734722125745449670699536291676830962699408793756082333937848117352766385488810896015118783071770077260715329906343694918862930580479081453651370121914975415977898506818048847426053699905750194951318996757556368958178860709282639959919803636527662215940830970218624066168941250161589620146976932460746744163412978661675211332410861239796416216697098758002252498180221764984554566320139842980875321506163525057392030542006883167929186599767456197480442299485513530715046365809010383979335748389042026095897070286901540829118900528946194611133315817759568191204110197065974977009203085898678332061916039605703671279373044252046202594629856552108208402988933616589198681973419774106116693144888597914162226139124255715789868444877985565094918280938267945729653597337193375833569268494232985340579082790370931076907451245279450352799789678863069398864320306517167688598743291929477123570715261641596155930689430631424647503241387160299220713603889174540285790729819146991584072697181923404312858031532583901452015936202965130453999573455943102991363525967215686749694565094355906045613452563386445990462415332481421908904596164942550287679943082747382381597847942803578567316732459015752301150122114806422555173134368721472090978408780747159496514841565224874174629582166551261271482804614368263674671325917229153393217902366177417844841279820727636215082872791223168109832614475588957559902439426561861672008219266011585029895475194392684735832309222034419054465820756872143814053533628235018781682657877960274639989869306669334551955021701069456975631220863443656391832259003756386848825492239988450656193393325133373035338956951019169746380082991250511124029302439572936234543045259870522679343272103185425173979609251059458733610145204033750926315843329366633258563391344064409327712118798364901127757982795127287262933913288547806258288556324855631062124262645394524495838654734407116995840932249459493803644660851683494148686736524044986075637030297777625326378380146076711791679548249190338129986867130711186458474346429879769830366314391726605421002334446048548725399555715435200244147790500366154108966121151534560922890636088223341378725165296599535337775152225812058966553087604697635483570598662038525231339578830563219406574635354261027745789529987844155485978135431880757912770795782875540378369685024218054749864602911255911230725803226723504154298075364001095455180952276280379271954806114309454530228257165560115160163775627851131794652283023535341022359595345135583616980241844306148145294677705839989809254884306356705374479394732201178006834591905764248648048725492671788148223586248295320331828698652285124000793731049840621861434751582611317880001383742386920269614841750150149714306673663360321766496900776604441053603207821389344326063406230104966511354549247549290027112103351287117245757141671213390840634126388606192101711185086534280346318090720658509866941062554125981958546540840067108323681298692057506240471086689992451803504956077181265933622533625120385181347366708011054019026448349422878594953915041774737804353295691724480414897252813366805334542171171562664745164100782217411871311129464708502304958192923610817369624313373501627873813710244791533097551909228617901437028751308886811264965035408578292509633258113876267077491900982053435170078877001711622985368091007431334190214248608421261933893036219088427004179205718346173578713246871010452454062577220297928077053624054804420595624267655688719246180248640462749069342768495872735255076877717502907044430277739902844510734591350109516670331421173523779459177521069730881478316699843900865034871493510089670526982998312761324913387132183900563589321792968274009567921114184669884355208364795114980273731771215988694634055862034293954097837193260707819615476240923014620487980830522568401666261952468205983722322935918303665355170006160519119403403935792256697810832242663192261479392102302286534125767052668936411326623117272553265621719404629104386168019904988856087399355153951130352336610361037001248482285718130347624475407456346436092310260079730624306229156040735618353495548739989144905708565149663595439346630953345488331908721621013626646903510844984816870704414497499753478963714614182436303351490414269652001869300971359684969554414592036310363185247512813561245471643063074769235883210418608737805756838492646829406331903432246701622811409811438036553753870561723296627932256486314947307096057594510558271094289518262492989898798861038574072835527307447799402480262477267371114489975757447985121964330562651240966970655044110920952122777930549216765048993239373644405873557000445899197043238598417821779517257949988802553424823179333354060512307425398704362488922209133730425115268727732009493381384128962124508327439804652290126775249685828365294139697368487376135664135177479938956508747047458616886998631643717014110084307923387217219903781319952335781125638631275400584517754169632689313159711160316135486472586180863761955062423616927373182609688989864675870908836754515311963034635171210561838621499556925784539925209351160399296375631349455149494023042548715358229692042817268276112235372467198215497529153203054596234209058740763537648552899348106540117302298522898460409291493900422790280580309680795569410752290954821023501623257870188896188342029879537543570157987798975968119063680636120344250278672188908552078252391282135622624045714699120851784366681571838058284671442027490881881226232907731785671696008444231252862654247858610948395917132278603146300475401813997100142023813763378607074332551107111102364571978785563977245629418372832191461350391383832174949247925530238705621038423415935192521428322356697763551265013082635543619646055167283694503345941579267103148399882895522983372566371942200811461122180404882199373028295306888791892080930910252136314650392685894575759837516970688052552087026651776140405649144894551336182736214859279423662056309092020544247745000307620743718656005681800012988477522013938269241029979526767080334623110986572274633323833100386403702752102941416584593179692689703429066977890235795346917079827185542335582358556394849340454846313113214839496957679013729475008897858882110218635505388627325301908157219996518472577950276487447339284924389937504353244384403465951217322952729613571306634995532153082239756598348950609410915757247531542393760150980865337962087532217522170357403286050307421260583971248604504169639459055277559736013149695256977241168931314999919189844028273027910875552949831261029545343301397778930799980887837090494009944858228429615016683958613466837448186248934014715002976705536849773535326937050935659615368870931584787945974362762084949477453225151361215492940787541438050919917523068948623364837247797381600242880235635651578043536390253370497015886049859827657272804160069620335930648977082172029786566530784836260268574200085299628110143283599094812013054207813720214372300369290823207980597268401115545993347845031500882801336358064659149659196407806631216165960554146982804998982537252338657271438624237554597731537471061528365922143251615208379141806772196041540137461877107118170031783106862042500524275633397659592732294387371621834016628424540608931364048112837185504070572608283515884831872480245762942015893874313611887589569227363298319275764057846299843119905449555929052619174205422377624461974503824095372839341021337192464644652872870203750365483606928672729239623949011877581708014526792652189651133885267209556482106581820356102464242118438773732506862277367873639962032784878601053373255999630662624609517403602260979431216375823637235233484577218265055663496725631440121180295148837105162971423446822616598815781821716501468356543016300352440282445328286253212985186626232226179919747520684099679593865450459326028685438396736099434837276948984607420322721613050365411483871732991283685964116251586939136593980042210367111943812192650794137521253523364474551433098047067312908589721738341197316276265233584227039227419874328474965276714085951336004075894713667521907885510113215967047816765547093200543529313978500997471116986331440830471964641106772472298929851198062035596375248213130804721416685635026375680284798256154885449773399948762451150614775908380039531336726135840426070786114099592797738368343335002249080081603871178282244013798742847281883525595858066287354030977733476835042299716122102751539184947385244776859731516029043412356698620384062688655731605274351397779099438097633005041309586908011978720259982213854465079596971049493578504725170487439526765304398403528545271661803024637927637430403789710535336350278397665323941540301072064267263237122458938176896298524243200782146635645024119290271949119634796321410436888421042407025911503936700905002191635625225057656937785439675295730945432858468686125740843486660164991832429114212475717557179308593067934021672566237022763694739568507685595803908198047076882204179441282337100831721330996246406904324111663897090486145394804375303122112094698113787524927424569995313738512646473300957339100991361863191060505859063114162854178656807370986292151498073507693190226376260084196113253709503144991252645595758583814281607321365892671355245108375178608974989805255206040452961389143180274533894750716104509538461520648811199638691356800178039971164714838207655069891697788051570976525389537407969903218864953604093076560999685937889159144651002882999869658565071143501967711404942213890229984325305537622663219700514870400786928633454136767860456332800479776396771596790337577486507723308988244437231603990828143483056481040635328127087625182119315017845754050380398965224764789526766646420365481226888845068807436103816073269458653791766761528437172632410633304735363409722399580558225091358039664589191434111669093437014051943542841384440840695603212196378468165671038920720645960422709672327846018955683581598160190222460815011560719303588732888097055176208740348157335304110425734696603680883978473084263132687321755178551051992124068987229739630661144167285598329211123197866634376270189610563790094387753403227261330676427790554213176212651943694215892958381189567779068873275275677401414182097363862720855992157614081744221239564988504018561864322657178860084869456503990610739258526855403728605219873213350893518693470434287140125486092385669194814407793083511622419185387310278032544187920896411452231061366955663695403719097051031961739903924808204978017153314382714945356078665740036495494289633172472872420533870772541913137511428183036662039179844002847454088655537478788854418667451635859271162046810384994526871841304155257550307920057838476691584041249562376694663479436374636146980820444954531543808392544348229837064662468393749517725485329213728236596725842173173825400931807561414688942995487613982711564244751132706073485064452058969180590385214488579797667379578662138064145398051893351553218484373047326800080320527069598236296575308311990256943412550791482127972372257828101545116800935082964116528734116728811457068599932585103199729120337009351211872644995222916547938992833203242060564612553649503383479479197261552337902222260341218214803252480453917302758288783175955464212278950966049955024402267615731184338698618780115594120802045246695842187523241032358616819959251673539562144588694237194645178185581134271794190217643689513015257367458462107175080390380397455711586535117189118974166056463697196549789472257927708588771013741150334620566024602194511234842919660563085323591290388325563456382199192385930632465655969084251072645264700993543215437528612252287447262422703296890646308672479433491781411726501945290912046523824256307818500489453424096775747136625148991746129172310286228084545349222148238069401197249462159901931677790300867216100017359214603254038940538897934058334941406231720452381291917053072367661991448225840315094483529271553463369533509115620360015395273166084499783546212557284172279858915126591532546377500647066924089107084560277801560437779681690493723843815549418696615777871828490124850521274944531288842749754560876196993209322784689806499576389150209836316965845530105227924257032011527956410262332172180509702105751168728336645309531365255647429651803675905757262705994071893594344010843895366533149529286842158385237679308730767321185267228024017006446210852136079399097028881442722525481942371608257088321331624155965685544668384314397261992948427806008051374040576643620365700435754114401365669494981199734788140257017715314072796452048704639237595744423565578053175555904354138775841245807618792083316443240498641882453975720573136019864020938000979199684336873812803359474804871393781052318019848928103839288452088409985340938103948433280835906500219231140644490838682771346246091133527783330294152674750915493573053665335745831531517321738614495412669343905018322657646701045598696279934079437855069114388950833130914614423836233612843795636231784667407262631937721212255425203950079853916194295015967370192702340036736636925639880238149066728029344250075184970239245753587450828203473812854106162700307688388609076463558235133880616445802364049708779998124273300516612871626098998623094495166610256451769278718951779141655874071609534171866930237014216405693098936840145675535716282946548673152322207620138787563800439982248556794721999606036684565627733252542378159730774456193357647575627522839381894143508987364865087142715130178650851357727141890137973239555311072290685034576244368060043249649447856706947359601430838064297973978922853715494185334944604339741299346578690201721297846173029937104909651959335714267289823531063867624092149005504636376748658134805221472710883114652563141165699582063154799791339205900615525909934644306325707479553273778284517334627923432262298032502708022909520429038247904738073122696395056196881000513101640275831287989626825665907067645008864416862548451555008213697636574632451643393797570670087004657275026868113344134838396231400758736628591833465731495190837033201623030258696078410169672889974274225806457720472920464221912303846471867925783721418107421386881930935083249696051369631296875735890631971432186587685076177502265498241778403615089008988543480092864338746362857528400345748655759387934143384748403842391939998974684155558343330997854509530208951201187094666178596717361872635232479441636604758096403197234507501164338743335074829212230995317274290889655251955639096197666673965651000848382884613788154115853391275163673513548780624816070866728712762241277543953442701825271546962134334046648264418650728765632938971205585808359252827435878523415534388159927905561074081943563861079237054971724508763485321469588204887693439678723923246886889686231962889829888570031388667798565726445748416653159916420682778342962788653140843957414812855249724005702966971005900793918445894373736459021588261597259164181755650918224369295215917742188409084628843943216502247209477009520451130063208792165982174139140973527920196342289362526393997056371823201020095342896924909930328508524681111790608385979888591620199930782968023451452287261518594722443607570099741298332749972702449766098504444467669920867282785495238861662947822508055344237267345355899433808172546161022326637518557358555325732246393295994987550085208391362441391677451046797964987568055954901112239257411397216416324857887909324843198315132395743655988919209907497896160755316849018575635599350652341451525023219934560988693992343384085238079735487260017692800727647774520180424198372243557619453812573364505671141727765976279453492992355920646673159702020735654323217692676201371386649011038739910599195696698119666315188187358947824763094034394943925127405472084340215231325909229463109875597616778587304709173670611502483290072869502096437123532205676110230659998637782273979703101047761278437126971343597672837858877889719078115199087346730857244930783987320632688329573155686791401624560612217356836137229893611170328330789767151173608165728845354214811012275841568316835126270367338747577732223827937324134733749261783952504187884733606068155170573449937370535080947536907416460786985255354405602310006607641848886009292439266226755578793130481181914973079208270392287092342455953663242763451413792831276826407209439943102222669038082343811920468697235298067215057549238854402825258974668765144413315825520602745949389730218100222726805895753111039960835768473012950324410798151489279123633751882226347951204285595066206853876425924901844290086043939288457077658775376580741118750465139558537232652442648759595847316033877091068389314815970696765835207031342208604744758029906698918067283800426893572675553809064012100958822301632461720892382754799770840148656448588007936534500982481828401269126857530055492040894652852681010241809568990660535354020125989871492278916176108000868715997452203052947364199077490040382522370484162969091682589499754211680170382863069814536657012023313660863592294844445849231573753893511181719466667763127966650124514987893825881465326800447974049706310300601840329088436548870435675387559839094330859678950141216760424713305330577517134357630924990564947873841810619201404394664850437011049338968500852274081701532968272143607257864143969057591700782295207456967379539701215748261078392429426955236853976860389049825359346842248425344169505762245072126636475925772752795057104622830243001142112360097754297090088182364288676946973929598060810815730103024729317416399849055179981717816304627937915916421271512940590512774786352386487656856786338519810871411533133727487750638255038309271520408727255937339075329682118399677955968540296954764106862418139168958085624410538638822575998812800802362643828840048009858837565479360777888093807578957153312759258131130498916072600588341809055493686070679161604648419655100452742712903948390994754380866021196725955022036486131318444295292215623476596845073142180267433543064551808263285856040864742770304110933868482628076029005363944123635105725222111041765865562978224106612764423838898118852845194003652688761567596940490723665396424108360356706053784587346431750722287514708153721786988736175787792896515375971093395307527862964252409293486110375669980940295122166919509390434322771468417433464738323275539301168813731445756196283582390104075330702549418008668286900376613568723897672376326463358411162185087654143118839777476150646421308549851226889206206676466100111790445373289302530855479829999159372175069256804023545521020866210113027603855094533939547644265714861597197438565181907220691542210756899710464680452605840350088039734246943797384336449191519507877555440716222442378551583526253889472995245459716217106450465581447232339483122695527754442749915008123428586932498433726424614099232369743586344248790914310160319913679259592088245319873108944205705581390571366794927912283199479420666985352074612149924412387149873445359179689096360187061548799010240517077935328513123844994571737996792611406113930680794795945860619775109314099080980422864957420850572863438868462521465089793349614025999325793002696212972105606805529290583630903681988934240724532541313305030933367294109380391104440106884649819339461404308612614720198870239438362735385703900327870825062406585040196294504846691486124639450997113889815188259342179217580502846773351221794679715514198342471946020205822499992587448617491410315888799819673066001010048962880296458585658391875133275668711588651719990951344841972965597759068922141461143206721020799416383836856590932697016877194644255734915059617218598134372820250994747682283664150220445135919703405764036809544503759051605704069029507113574748824958734383293144152024035122475319871757397214774866755351459227435177146924109804142748757388647101585879122956900892261644033607850031552170434713946162212158628246248120162691669669548803391072502881001910226289371032182181373440869587053196621853258576538874262333334109624986380676208336582225049509890795817561352480394976770050383478117042460984980494734674618995896969107654294413364571633711555100096798393972675473517809730213755174884485024916707716031269277174875934581276986443489160419144202123899764308014957430957634545455547700746646556449426945617192711469042628018224528349424389603843345383040808702226462395107519663257573395238757578474773071496968500245211304606540384121853467691131693758501853932632718064214175694347282824994833718434647053018765489707795285740565957932720860714229766904740370015032003565564385430232744793496542345117511630594761128103188243426046039985942507162757519673812946514361800474590036245088853927099621695682469900745090669560498852238176361430460284324725941311446090661357687232847504706384510225462238048011931318243326867031478203534719825818583337143823327454245031849856728108254724000997509420635158040224715719827690402147657149088700498084122696199007760713648321240961728142939632793588270287424413608923969122124633960850653657645724354339518646253835731353710964745437653046625280659336780594751281536247773395646719085941649480752470066334505477002082051441384329263515672249290738763157691098112280526467539976731325434594661704238306592638752049813762373179595977765232037102695121114900604292814337778431590282365359672841628573379264727025115330757018555089699131371756355190031058875597143352420959809890815715834649821331732188217413394533713257794816970946410568967875505886904335299188567372814757096420089266402440540544964722909461640031387388529511162363642425427236809663005992595354758457420897174727647238397071204797494088096229552840352008959833364675002816482474039373382134000089718282686776983584999199619818658603551768836554658832223488714983273457022856975162653468507222593631009281935720559781653100057550339469001722154540842197445061536951943815231435490777147773512176288443388526341792943683093087204650217199205003954960097494990057550100618637970917384798110732701764852485898772503010712830151884000722790136832770023382426994667461668878535384204719968326326942094206461100672152068833929844754900371867077634779092423265433178786591957591559476849658993907728286792067313529293602664269543297784532334644614813008510245233348120407555726211534269826850451300184380433291646032479406349551313927523294790497725774916886759552012103127172760368086863995764594066971771545688806460164419403067839465771597102811113155210127330625705895430486035812575342120439929681349454747550953072951351575742256883094069590127421248657013875631300672685481655172226314078959478543298370764463498543881108064066864755539970210278861977727235549678887669782728069531780241204745192496202430099007397158489241491543795806314793527365098927847540949600694058318993620399538193548630110124806139306632461888669801913758986752495687090704787752363266936512279750766277419278568010604096001540725581665492462491119276801250153868911335475101658011096924521168209460012261631505953388391388811839856732079003064104646471101184727594456521899766378478285797706525726345540645547173071634413340897220952011667305190285679675049736047190857987562766565293762005583002152265651381410138854053164756662367487026277030036918073464729822129038867366406069416927131776081469751276057009593339150152415129292746475906607034524651286021330753978017637177593834348722674202106036951340644606903472395370888882028347214618208066725035193672291570162056282495282785841706349693207183598945206898132156473758407896123951941369033353608318410228844409289483684378610412921391794345521293940182409606895527298145279743622266185613430359274723010804677832801793911967190003464792710896250630177111042540014846727096761527294502198734618282713235229345702664688029328053327611197370190051666890969239965242293520235157080084360189841549998165493812321520693585891712612777630318540200443669799279794659024658396757666949405578712092864606560976251119394399828879259384952359207014720277476517660058937592081958601508948172410906944179651623155487651059215402140422973335295050200060296068611044045566138605964387557573802278988905238694610216112206938825534167359234964268294384144374363169720899302396122860571011475460766497582511852846921612556290898762380733920618256046235752762152235010589803722453869830197389992918934642830963558161743931051167332242866589398125895718701386315729582767582293490222495876354633294026230798453767253429607104864366409998871543211782070167837091494267679469249739423941199929660767389271146366099768627774340195112898425103543651511216352770238770134763514723810307553275715313068902376283141477419929568161145954633357327044004053783283342181009724564416038442045702761589987190213898760408233545496893141306766899576700161126359594240200326307486669873937850263447869318455023196883058613990602148085201918087618115405704146449407562199699991427643930830428524042012651796340812982129829483340355310639988577312330183787701943615857292589104121265959788132586629678499804188471807909444271086041616029488740023410033184121752849443574446234214486959797115237914048677341178665779998968037573155093126825981512472998333683957774064524308676308919153206917729130290311009611026820439133553468694685767079981548863387141601658663492985966015920936923490082335249754370668829535712633504272624478677706879914317024265972616391841492528116591542695762362677809047762426951491684700103004238036787353397171513054312236758917116877938333299752185860648520523595330375234507036323725094388679630702498085883679977893455551077712058767587949260929646567120396678363242211730206845795355191766887193236813915976191377554619553824921675592010815523541548655097047957856612276752539293043126569067145571809240071959577403582304501154648951992943461873581565965739712873111990462338822675069470519584182540841772525119817067554891746816599157373537394145223116657742145349247112447614346798590145416192045241378869429998500325330455335998950466646459333661705924701766836373452151775612547133960890439233009315036153868681898230265384636079978896557932719430518177017606176203763224873591767250275202740570169123195773943927511764373538583622254517101741221594306890526618018626410070152532822842656957281210641723338669397205029538901135367664187176208443809693563668198582062001486400300323867213871637968739556216667393058751416830935343602057237876752802472671278641469071789622979453097437212072216300768369928254338320992555339353276025568504694067682967407474781941907229925102245881308774702414422357741368219071071848613196046767210543086383567551933404296842786774960840914657075044641411681859976648538908861039016186724572836110799168301624139182708093872036911516570600503067620011234437054731504046061049749524042992111278405238884206594090556370552490541400468124499601338418954583727584446755774671490571262355496129920368959581549458267779218112740629107220540544677129064705973893450815318246875413046471292556415971608308926983410630499891390407171069562607196327777774552979486207288504973539184992579200763505777359776945777461774924003758325060222206818166530512693940675862591505431203139212733849145312411527506547990533969899956622339386426321272159679304227931818596830194257270242509898336603226504642227003690188430298264457193688037234368029416973863079795560399819855684358251922340280348881619186709423560589030504026522825674283871249934749733698954560884964408182945526291864166618190499383906172143475376218411855492728082296723866177275823713119756654613370634778504372132732392827485244223072913279055177126283174586577787376923338781955616036168047724210849308127329867007595598414460443639752379082310688181834927999421046885543061375425896943420991646369175992499032550921722004231418970035995324745594955375559239352393274961509347517601266937434121296042433401303781024106284725453077678025260610966213763258917195200221694975343773048664761502815635668903131356320207075294087849034131949349867954877304694737887521774833251591350318278439447304105545542875118057845035804740261580293962765780920320455840222169104603934128535813775870930809098133361513321219050016241537656382644471479074269622522269091901545706677903287361968912826570132125675816470013782521767353434087282064654730692867223447249240892826580899192698621007366564718076263680641279854148274715906022366809697138297899369586613053924428523827369245855289327744319728100001174992982966532604941479562782605371493254202591582277524705524347527274624010976266264141223341944253033564992270498210685347551718637573708170681557382290938843787339448677497168001176807935323090912534691946801685472819334944293121450533382093670064645124673716646981369188836234021998151825881259912463605201178197338274280667701773441130339042316753928479282262585541990649813845808622605397236204334557752060383229140602573912270833402154316744981966140535616625320405212688123584981865002873960969662616092897321301312273621485168824727732677204654626932960171295040120872834154366307338634508064032704989986321183202855864351601195523923095195636472636956137595686757761364971108735179106674462387358544687864783695545737077632655586436653842570792121815351543984830418138575565903035853478022040630463169358947416344107667685043991037338619498595149030191604228884638191499166189025619965385383306128055616234448723205138862386668495828761891655451202454177449255281707639471502618724218602274022678847843049957149227888839443040648133373751086580278272620599057201571865216522002717879607743946061650716705284843497279241371041286405938846494910120521219346238284280366967113146636392991117945674470409061799157029476143976460394824184765562488989060477991946428120660546761791983190362517654267239385056734130324072349028071359678075861238243151301865769982626436319341161705735138508424352397842919949627162181675045531335843948367907206765914829379946602734044478337738614421714227202976491375945541345690010783257066273127478977331654522783213252555896634067455395003973139273097048584499165243284011835112803349452052567540968335368657032844173645617971656417850678626655340838631979141191701843276178450475972187346021736980228459073797615520109341605000398692198075934227137675285876499589323275243064178534756452837166457303702871895776587143754138829939600393680126690970626690236008703664381496725629187188843672590108078888739063246712627541401154697465780727613506785785976807855877436208266563844352152956928136700757258464230231242042232608340677571188041014765184261504008774497445224153224432943779715153102827667705587240447298591312113752373585718717730674719544352021532496990187990193180658710918670253631285978914970183456808287016246274127878224748871022220657117655871059397010966341637580357478403157523491961987179875510497320162687112702731724848155024263693032084804633066714361001808051686710716657489130078507151180667472718067585724546000847045652345352353749479016159097001089154286266119195382660566716784652729948664412588627259395074385363089608112037678017302232079512129432868338173672931924110720344929556626289780990483713015097260285523812021769695998391932211454465958841984447090649466440184234147279153687788389542234620623261232785197897136331014837974928029565992266818125040546136366146523693877466670516615682877483113980357327431965312458334176827181079877425826057971540443312494912662983249887426317062632479059483275209676168028101143002326105126059995740181604230023033110471369118373821323308444191693062322779054337663087981152806741901069814581600917792818773564313403563489084137756324100908754165759283445145412748150270642461315340357430826284611510790313826710615573489219590965929884460801682237412730885917504271472549611618705886697602908923378348012811857791838004300921573343417052798686553945202971182892736964542117948787022647749601737156422243454462987417395632961780262324945800340218661295935833776065166425498876505438634810354225380436646523294233084497228585233066568371982598053636828128830626849645924065437720494158605157784855426847710192583304767416662460794142407435558602967524050202145298540993322997817789996949986857402030236959300000829403067438377722947947101174389755880688002813695967657825809805355628749327162829459366063275253618465220515727870280858940061963523516842143801535567346102849669512978235987435197198110813579164675270130106354514002637403640102998466601540854370257416789966360282415377964108019443457112765687555709168467407233167777302117713750473617976638489116387505154719522286786945155776620569506405712637687613487210081571297566286750551063584701329452441713550565974671287786250820679783448209681302717096395114112911881649198900160104460616581572838212432450929435532299216969178543059903677966867701706323472193992491821157964248333023728737734177428887743897065543309672769479709156572162463019308031321774100879575177436332183802463146554427104788732250308511253909767751969719936728958882424177471966169795978615434380044742976575670361175818028917119648903875417213189884818608390460870691354296300398250406847546252334338809881201618841473240099074940567318378736470132371133542207852221879638634868026976946712341699851039481709133874059631781288042643293046614755250140455800143902865251465534756902676499689012197785198210966024724166359347131780179869633377007285027167629622478327732711167413515903821215929108133582901613111786976965874207987072122981098062357328135727689666607586978289347314278682199452027274447347439161771759504954991423574250893186583400155328574557197442706325014709202260476188964729158262649736728723300860628103750824540131682885957910539456563737099717788117313514417135954620427699609508521670899152468910642137793955129102960042462299537990256611020659862584922936251138178371718587378047302128073123929270889742044705630787638371636676407394061690992461056614848764339765773513390925670220598336523703090510300760208773927977367531799931739629129253344137361823685508454449464436195658432706738457151256475187259288838177499886117334008278253269799524999599756940620873731554203370730340103337953088134829915382162316432292752978447552185413100262671777589165919312063183879725275864329936104881996743446598375693825381192005104867048540309559525031277310884241184628983378814536992259292259125697507959829305277158617889977335962752817853462067104137229230278396730992981363116991812871716647491707866145621780034793465257441593753093770554126924175141801496029228843046365452075384845333719321148504183487364641045274349126980759325383134524115912364658629146644274306186519460777764984158870309748106082486853946116984010286917619275261362555420429095038020551154755007646637024753761206853566070455664153209544503177466074412724840475675763873361611893708691120654543657429142964677959175298853583741172904591389451100477072841379153142196190413694574590286628683645401506628932150277591944697018973537939780462544050235769624357718926073226073337194477935227792152343408572095340216704155760642423736146454377727741852247277481397356170410306600001136893820646618982788796506422369218531165345031985966961126909986519891770558021219012676184322784451704677570570698497117008122897066310646027570245289518770027760153660679836210721275699218160857646979049202543919684732591856595826747780200560807763551122115547637089357356303400304903502519202179184419387451901970969484464076280118451329444722145788174183792253440602335011612309958050634213177249804392812050913559123729182803271097806579522875628341986585718147762128371688983185173747267970232814332597753048257087961540366960487821563414675336352592673869513778946261957504114086994879646546716443678099438432584794267136840189204958512413660696463617384631924277927965450980992393137601618309347393736112754000934864448750174004629554582791932576579988971112258057424630028618682064026926406888246636923590441237395699631762323235982667303101676897920320966299341176940313690352106011548097734482747416043260949554242211553808965081594750051443480260842910841422078374202331924666103344311335192875078969329689745147659483934298233613910447192640480123463469578562342420844300182179967212888150831595417464082420152649417496965931350064527633811002231275893612806229763525170680203755280404603357251107509976051267013423683896455257331513347319187874135187545526684510865433128489743855461028444643040081540187141048522460335791609233122250941617532747617087128765004525101539096792965639596534167109911238892808746870801906941873582550848112592018117049215708629376801156193342828187809169288497946494058761844785891650973953269251290312185212245616854766187458908724066514417875854656217442024866496582399218975251676052232755062876584949477010931492046053374590874870259592578079011553021020307805264564364411498956738832186653151341769581683164899521704605528695256756345457378597395456913527436003660642688830871024783401866764463792842725890545948546059846554003933038496351101126629130660026935278797342290440082543781805146493911102737634698676187675650041248727155292660848050909297638347543306479144704450885213000653870502657693040877212959884445256147056156815364147147076104378778178365624662065248865061439057828960705988544815615506861104417674524994857077708205229739499114866455889317453345555359179859111699657843568701328671325688178571588427804911415333320860902516245173464618933394175723862568578111994748552236992451959083830235987193064794657711383890971570430792163774485023158210240258235888507926284607036539486716903066865701186919698195780098484550909404804249951748733141089683946849310598786636013253371196495616588495898962805030386916903129999860425903042722127348904907309597417566778199115984768871144135381430851341572139907399546150911536976901004700462973501407166143694645676770185923788668709524835577811257216704803557135318601922055566580752132501166422134244623908600675644158134488088786115847406384516030783387827544860649738307078557868516685880912803412591270765706338541146771147252929928678666154608027502780395158867795512330989459593759567559678804670485972165498732646386880798321792580360394573287781875127226174765944491886579573719045551610885588915511773148357235981166159457910093509912760378075236325637287969912097628190755005128834449188168942114281390096874171423375921866140259335109656108717335995314591977424347039771623744059614670435857437593474166117121270942268430466156548873361009554816947783904390374826986083800747799444442070379255491689413258571374212696905291235027938658780711562487715115217976143186948949977062783512824795558752925634346854442204022597305018038512150049989697237722904048710156857141204228317768808425712168371925889408528655585340737469627040161843975867970602905147403556217796827726567951906036260024269628677663490225186473998885230066771690128352689399693718621114744289574510383109411720659210682061866151229061106376056715572599802863917545098117856714102895437225561017372267710351814771119080219631313294425142865820096363085486862244521457265728603623695804115904083729446448435945024864814069516158108137682589590360275285364156614324945333665114148839414146829258425472280562642201157623431215642192470068666170547715861741737001374084983785067997883195525299612667030845401684748878508168684200172957674227967456511910787449827085755897674964235346403070742525304796207366684839256986211548843436677767602614648214566858533564246524617113523607876496419378861899274655552470304258647548839469405965638958463125431183481908210250521731456455274812876919953271650535684579916313270428514424629552176888942318129705547621305247776523477043137696154817939829390762306269451684356425560110821183333099880933949438495704566607982368644557106114296050611469432824217855745876631775305181318212207498609944742335238864988159140352412372718163504493390637717877517350024086251278647944286808243511758430938967362357913767440050824809675801819088795037801620714171515581305302972273832729278630387569965131979736103969754516775252149346244452295665035099455797500024264591392951198784698790503349267220975410404596664356049172399832498599301198043967887487329777749305104131780400548623166887096917641983858403623136311305285209365590493303213453733921952041908250382542140628024639883534725606454440224351863350320649972990434788469607307488572368849261107007436433410592873336418192826719594990968455664574715042979455575687789548956455049950234712783047567243871576273883514260000226722210899250563561756863676242200834809855422006812963271961662939921117242389013097502354991913450487353101847079695051227586471201214334588865317212660252404750882426763196369630159149218634937795158836391797253928720165491270165655102567812809496923053224670967827795607919234422146863503444753507604048891136019328351716851044286838915830421073925066772764478307022412885863548084697502709923486183362283658014602280465591698595893368207433944342478923729645829748212140419295207081981260209240013821797246825156066452014117984177247172674240394249364666210739380010285113120767970101079439857546562329872389428424094191481687715069494120966445125273219255337109207540802108606313882570508424576681689386679220866714537410179840971397345972315550587173591077328941457902531695362869417630427103231104639949805315302612567622851002872159650296935964652992124966684235349970266415100560682598813392628150646146444301282528729510727276810898717287035660452312501943305381984056052062399138932786118154226623669900436101171695929350405372917477379912965905148419568395484576096387816537265889791743003394906003632960501055756801372205810868849334612008089481827017395713635765448759753483575690631073314622015666192037391157247950577810315487705074300656444273554148337097242216355598626007870233616152122591714599837052520948851122970008224574753590091550373200585076932342642779494191512057233926413975822022063253866737274232902773763912898642944721726810702762677218893781395843670365325764028887795721881776289100367329005189233990698881018967587149143080584729045557872277465696897306389760358997558589187235549097992810062151441545930749438410580976091209034429157927707720498479943673804360525557310923672011382686069314291587683417685147800874528399714592368076756464640523625160404982750171301985197023830945690374836181931659168566368093990540154584094135437502091721421610621815067098690285240828947842249193812287340257532429764430369939370189065964668585588598145914689434427735976896010811511061449281087463943237061810107661527705194590277171227176621403770193972165776820864581229141881768279159748981100623780839039166894285656169339829709242266674283351008896304271452445724663526008548951698954602103384618182133835979572825870270536513572838226518372892974860548788969184623577781192836556407715275806280253186206592576959182241273163159074436180425136111780889745300137365562181999459132638054374975233449415860575258684008712980374912208308508548086839787430925628208500489031632636980403904192967598260899658150884011715605645626867753365129149502095166730229776985186982456973061698675639491036058791718042710760385087766282879566956123454416935651703058453894277910433557731963900857628438968687843302699735634854292866404947297663362426757047308079265630595763603622960144067976258678354673106037435980255332095540016026465916109545613691012457342673093094547658094041747736884175642206278885488022183601995272681121579444821357078546274239646492192251213626647470124823122248599698617574759391805715796487300408738235115873057706948037168119488860122622018106876602614701939635654893282274363916110989342924115375715125807882289105479359859170796009836805879304377399431250855706272489850817395558594475677068794380636222702124676136299399431670648606711604494902273882779948431573777311104499696714073584739217755738850097622065302349671214372158070667239410581664233062072565567387157469614899169803626993717376053142393237445010862999783793583586931677589372146912059322839332823306214456479641104758820746399784356505137033851023918012570033649160464205897944377528041588550225307965810668985675613980942093917222366437734140633411202485663993826099003676810390626630414150624255365647449834329403386671874511307659523475824683827057917310290643149620602413920879473853034291705461691871986917378756807142752383150508384909453262262680671913484908359268741552158254393953644861768990651655508592105198275683073951769604325852119241602511570531489310289885421643292222575853028958494349127483981299263920399024835669158517319451767919906378248777524028374737315199551024265147193375036950357058860855685481129524871264979240693593072805849257741685533540557822919618775241930807157081490184746236508666880954537360303516941997598015060200857548206328300977378725786057330567848014825092944940003410934155455572756169087560777073085564360960424234768499033118334316076139860608831961817255225444208960315950139024189994097448241647412946063143707805586024887136569303391860432167262142137438788545369286681549006958845108194678559711881247199608939212094019103457646890457781747862100484397524123503308990650708121043399557343298910403050275682493782993034557040339420124399477668217029504798833047968831605596255665085777329430296183013687224420824980397540617462678510701199227435242034036309046433369613442199656746120723555979030202845690808593791752919860239199552374576245956821506166079421132614381449073787004545634068487589087880573729937001202971882404673730671240393701026786177035991718531397084117004441137043295282734175273338854258707712970606898239481099039520151088130985602609420658035888562728541250834402014132409040307941562032471937393413413489322631326077615879639887432548518906332921714102616798814917453896537846866867766057982616028074012935905555388951885048192879947263018163869523152927639294018273637506124654811106889939825418908539880628591523699220403540526395795640198825096874840284826511555763992185331122150003550038127783267624065705039847489465275596854610391735771061918118568465104717820280264233691657718187548424185565518275037739014338266188571380346649724571671939498787161042167153637810556365760233234328315499958283109204953783604241051458374822122196563855156802001588562033786337904738258278527884590296587181678371682129275507537664453599330932884320250998901063652134221488946939804041080881548460250260830462425997973201864350340024827133172779900401101442801834297353114787364230693294083049397467054797146308599401934422469283136623287961714817391454829191762054063937916311402585286390173333531575062654876401892574307930087221920995413442286829391300867909929893964817125918652281702438639167724906959653512888126771062322935288446528773545720759302585795848007413582521605690426151254224939656917112877471702304925848425743226484371739990668536524433882965855492806241709243784862528885675380808179865075939813797995722046181658555909510481770544873043666619453874974147712959654822357256073534751659641985212932855202074068448094419513745582436071373727124921767447501219642610076391930072181942623418071522007083129367638025466703228367359305814600464779085611347440474083990030958680079190997470743438350038419086394386668685003632701157686348438265426800086289959562908774852906344215296335094928711414256954002020037388414010874677380860453068731106302074477248083774608927179098751212379584916658391719451051281694778980516186508850642584709158334322644939523435018026299505623812860105461318858313034838661371484665200370212826893227055662688770551410014615454689728625736329023968666345665537832665182665265034754422283502147029079464800785189317558351793980029072604052440922717687626076693440302869363440036629570016341017270827600198407949597549600599167906298488527107488316703259548707733268127875693925737617260588924438519582343713247932049729953837910017731756656534534692754106700666601951174122222359048238539998861012447277281698521397604275531245511520503709739050008249116159700320620328500905638799918223308296040888516163576984424436079653910098195742969093145515295128795030486047199097065209404503535102516502130363681922694156477704074913107647251244847864952914683389484564156133958656947414430326716265108563533839926707075026753902020571655120896247708284389032779084898811407095023676423852007064461898169492881925036217522126790692105751843577224561016596318295915670890057373942338818151681562027018052200854742424023116108818085723869133370446838362630265199997252401512284320023260844453887407932487595913868868401509995166809257432572521876320944695343023566961764789934142629771705628336743001128492300136052466063934001054781775485525388802493925427663845955646277997680833853071437199566368744490082125399401150676265703319474370380834239776376338942655505297441561813430953494272043603624737037100592206364098745038916046924831889373946403724196517528795078371938128450447305881373084515048521402305893927083429811228602806830208827243261093794474112120145452356796754721300889520097306689168369585540704584279650250627910774578417977862233575490704147076435671669760889590699289180135187627478119932006968829458753458655571022446556061779604360575968056251242412761710631483695506362475605982539137756247237517958801168328414758873475188062269691704333395798221638523991668333666026968085991319334770600200061211345798445174429692106009836578181994902614607945199021524517477631314091290017394096031523616784707858908363599415001200668780406553087725087579816041619408755623744578663802801487096649774034293221941279869175007043345639640885033554654411216201083035628435952411626995975994961407097737453156551208975669457416401300333468629778294473864359485537904358158517980980800353770609804685020563127497584847792601917042148060514166967975679849787723133497224009572630828373309462229246749229278220045923438327931035463533826747947823812828883777514159133510737952217550358136210184310914510057049677309167636320555912946886260855712693860562209595125648461056354976784358610324553280689763368119806203697597072623047820268126930466263264295562697113409226686434063575961087073306334378689305334686359560060608052028299918200909692985553597138395583178025034145278280833578731660579444799530419847934116237610690213658180362335438512718088188897144499355045915751601602539905647650440469688188089879709328882062681061053225956807350366225414747089557013611581811215388652325078613694613063592552612275768897330017327969850610818943785584412056000647216612231191306038977493413062542754837962389854020909915703576303279427696067275395888765605889216371826253201584455752320116749612785573337519684714397282484346187057118106727911115845878502434948142383165883569998385286302709428534720050466367004891798877531857839420357733933713346585378213009196808802926302387198959803377289435013188289270843292995844219158106704045161694847882045647572578471170831694023019626018584171617001778323347267937509717815835903082198301806305594813406693413301576089788998788384145034920829110711540267853911845243261499103559655050510880294847576715407726507270564103177332896854616769967955082677919032927395997522716418768149857037311169709126503973528661088745148193476230728686362075831623710057894165275490597417365659106670923618015951614098274487936335462412160376389178983730529540904236430222882701190985050280751669730042938650864266231282878294084456538901431469393988897669076642651018953189680256989732972367034536873344335890047356848091655622821720669172668060458556690586397038620710950451017330038520348516744826154607932569200502292117060068429531219496117523749490834584988310766311722231518644259455025715110228557484499705073456390912192764827747780182955002827480629794562953115582134227945549189126953158445527700229090598912900435177032055771437862478415342068713015186911710393533427173647757905187638411283617584412048691991912045409458772701772832054975401249802012171977945249448384259281373402028716573893607243540952656543994252955766681606614236525501399823652133732904404295284663734937029520367336102356263445761464558216752444517976739382565822764514977276576698909016391814500652019036659187158428564736917550552093952741853249587108123075365831301994550437125080947006313696646584931732615402260427658245692830474907533321095999502675167168142885803161507590977724918924399473886274753738941368902016632086919028472222280992777381155468679392389780935507811767962755356205375048688609903887581384508276437746531868865066979594186149716060557092251031623119891922155263724371440486983586674566466010495090242492832552220121279496024956817267954718567527740234672971882180720370890705973211367067537198731240693482200986091971390000904277005249337962633915009715256444086933685682804865757611473880055972685310655204906938062535838968244723190189044493528805753651511645747730011385503742116976813151823365050238250176074193822498084359123445408812583439248838185552274688698764398260142964408254231719261844662074422116195498642919886743555257211495573573228306846432349714638007881149601241223250350710383716898201352042228503492851208996531469439254573182461104518955071370428185003467503213810554374140310455308819101340250345826936144895188386380261040488633593488745472003955156093264504011326891606414066998819807893006531355512842473705574650020173393225878942178124815203182236590900996508738124794044142364209965169275913486400794914598711889867840381057707063705692539687393255278238085443545252770056531768163889617346336891177425691739202117174482230722328399395615457636434723131533267918093845795002357830836321141846729157867928645905705035234821423216825358539364525327800838842774920191754574443375169399860224210049639880957672071681188662271419220734456955729402504638478864178202443763493208854992339643248638256370047842471966375120610237715574826527287093446955343143410621081787494264080207023841748371713566031688509941478748896935890055785522588172448831908213728551181683219327858848864548772213870551458711142207393458782148367249181170700629468333196132570817744399492394037243831182783432449754089241648135897478130317191426996021641703228248116279210363902976182421220466112100212064911259930608100550489122185235385542708893641525324351283414267928103844613800489863328859355577511583486226393543018352265170525696083190694769206770946919254645413929205084782553145050770992033166986918052976120847082620187427861173817295404997805431145911241219009790935274293658050940549553983948511501204237507702273045265582543326180518979190136523614561678586964704899673394132212008407684373862390403854759965773897466326130204383730837572802010623865772645057208266844384367559097061014480501359682760520862975253115435251064771802246647646962918434627075760821132141677025461939390008607012210556028850321996678462407759817589256537219500709954588088638589878487283733782751792411482841898680938118517497159895798132446279949760687269787035994033245533687314162639956189796231938347760630251629018554954204537457901101663422535917659149097180484415602574114551193910951002803688685124090167460788646772255542269157362872775517105841638050526256527395885691436110536788493756010006547045000259809353104948601727006646443329309212276166788168003362421275212186617329592274933398034213587524378809747642617765819444048803690941617900749289990041689175061023502580730702348827183803294025513505749431588990554502437493835906499255786649678695270361663084988700987155064250123328633070290934563277589743746844207765812632660632232758047715579196196618734976210481193859032368304192034104355407531992102149473816525817527226752564062193934577051376541770344713688579537648298584622348303455586576908153612992229428358713031666484661092888568082083199596614141809032025063005637071923723523407811919117532792314066985934547721399840021773349589520960740059136396000245922814025165134719585091052231442518880301041264229443286443143877702420607220804366788974976088775970852027782864427154613924715376059464199226029786775782641535843716388291355415721050329488759766862773795635194807849476726995153575871760547228035705592908439011912772628184734300896695476792942714708634615216565421821103744237873350296988753544641157589582523753837389781891555271191148519731713470494417509180784064428944930472505314910977317835511636611204907984733190474915058614549501756238415701572171405619670222539177370293067701619576332493749186707548942550608211382823925740778654889934801934618473259401191158445917593596487156070369050817981338838115573806778837166621982209383014549352825063598194993617431525924019491357504944116026151651683082669469589515810854570251181287840605067578199173173748797945504298640297339519785711519972592741115018624538919706620260237453351121377705549414233766189702566680628090928396831889398663490650375685146874034696374277346321307561872092367819033676561876668515752483210014193953049647192763072782329851865874956282778726395029798821563284040278068862133028294031400962980688394389165987841719638895839392509843602933032030410335361372382091473718204972015000190504949757098037685300010396090877194832653536073697497072079141436140612081219586418958224087482948796208585298675081811427489951390472539282625149445528081726347043438369896274325794904733145542020664066310252215205325627227575548468154957130623204144370728568068865859646635353682172508272565646950778045177594633349433571572803250266475741292246353409273020744764963709408698673964471627119567644652536033427875250246394104751673339467390268544517896470427211437189382378273235341281271110131361008651608178757915609667378017637569038963754945523227670131641214793427139644106870903871324965096486705585849415602579274003012841785158455662752526949375172586245141643207441713757580994388593001821832709022717954516364477309062718915739952622297633661346156411911000393398616183613084029254771206639378474226839782539662707604273855614281032519247978007092231806901351137161786000844273259596463298926375780892803519284735551054734214053136493274970915693616730452142713432831558227292586488389867364065032960612481601441955076156304666907209962016303362324266176085072608990695443196497963343532352876602705644000908451174667589232084897753447695202264362884020541868339568650745521607737403493019656712720996601490750293017449142261086191355201707130009609270870903639860157882266138141446858292546067359324736359316808622941632216349925047060572201623040585198891989767459812625134190710039143590671632786059908307691278957595676372282318022776214914847671626775626616547983180413673934371252835219340030879754744546785022178656141157926136090440906150799635754508796675287733229040850074840064848978348262271057263196866075086599812629298338340653970146545674788897998695449560679208552657200750211772132661037134459944420067409194917899767022765311950686568626335018873852674308608071703387283296515118751137584922160723386234311837728214146638673759144973759041733867194544089224543432325836214354153524772364609842804500798700450714905972350401965940388518802231861249360116860035618531766718609787666737023340076418708957481473602640660579417600722012675845814634535792532657839781656543050777783708722859375404305604713189289675695504096908330122574626849696808252266164798418992584100843802660922488704890305987658326467122692492033820176495611539650290503205602958684511400306252971641087293295881319738870811691107075272177625462850551273992289350916327601716197265122595299396379866029276507150139365328751334282989058477207559507476538668803476369812568244196911557336694301552875992520339615705145808857443585411618047688150266103961032373755105529703484635113970999094274332507122473058662997499458713442086431738624920888503644016150807329042116346892373987739235736835843048958513399953048249730439403378466856221090425383696136522097371338758599111778582621352525585181801069201158209729885668854512791027835920934181158267259355799468609447893330168597011867608991874112578631333723755761884358965397814443275784698581952451854771621250122047091153487080096304439911768005904275088657666202685648055002024212541845389287409035629287644752245831558077355970088298300978218722738644684828153903506531056666756710344441434573026357441406600673503381520339049395127176576341306778936129429336012032502673056144957551808548946377492828584878569321107472032152375392848364358270858515213651404053367780391787461591775459329823207269111740803124397646834782381252644544186025547051515985121697728214306379683649830249519103342546545497059840234747735272188855776422703243768179598098640176352679423830807432251343534258355496572669318991984980266540987261302670661885871711291242665331235351991053176414359610955401160703954231377172013835960218069670454510180195838022935701684327110509223367357880715749237731467939007187279829181925059966183163751863354584006677248827874865707288908962241347045393860896054836060447683464771299596484186069546069498422730495078931199607674377224081118063763886279028396107743906132451989200644701264992376570637785315824615601911101510550971147661371207259484301233001109708792234159403153705299810574266970604877956291452153395962395494282080080950526396843210474204356083927938230788596274967997721060082104171060933855197592349030764279985605406234712115870694048042025921840810721912432063898955355050584430153535763022054732860352733483360560969612575769371561441834553362036792149436682511416271544287301929989892079148854110881569996158044040515869795410076235669876275126493065671611662075748187851054438418973828220389442200160065375178020501892074177618386112971039388821909845396042193516136245209722829646245351304828021680676913942038932754994816912867304333144404153404586365647663037830209574860946776495242858788076989054593253089147613258849675891976573545493932529168856253444442616838654353226294734629960830498002930785209758094551439435960346531897830492640179937925373248404383133600943878810206135940269307637758300173746300823873289433873047079354521815099619891509157382491193707574540194384194182411329565468638566269057865360163849413966820928632474990516099367593285170316414922192213518487042544714206075838379675899454479236332750030683839044340196478095660004598381046337436594356163116094896837244589278385248016924418957390749074501915738218688466031205561204368517010111669921695216779724474413702831625237814303182793660968983475530889312609355360520545251994232495578769812168838728995604530332371715484370376172338923869139851130425351762568674164886624737898962485860087242269575595322716699724497359147535388374848222277365047077695454228873311622990906616390177907439289022025114628842339471203797360051945806974414490914972671394735913965619359949998616484632110791431270844212490560087434463037159806159625797379606906673324382896831660811314971699062990711193073687941535410996313721332277820891691782170844330812184279034333772203831618750061618920529765082413587975875891670362905530500279814500092535182744975655144461010307045490889688047115102405683235283222192229225051753314536386666965669494665318820403845548635597496561997747812856066183624845501045256060671476093311231718723953716829165724179963630993829542557831864417550761413065682300680091886137460703771484173874159971929809297257674207541016835156602821499311020304418730435542700370748070227810234027570204958887074862101942285810359360742974815044341722082294154508336758720138376251736388926681648087490216963954170249539381653638673752409155122977073455823959998493914989725374870142599589719056013491721060368830299274008622646038552264861478740197306530244300672322309031398456383818499470210497765432642710464632570167102258595620340034806173713438343977734909408635335587173024807106953112792431791140657747891831533521285010172639113497929150415076630053391674316782353319139917392947716484023216733903365613230303367406792579202261457947472384394392957969180440399963097559797315728083236732280235207261424690567910774951717131587163175663733482112798813476830615490729617789690480478190894847471127006707752969077337212212448915713410511092044939965419174200740250253431021314550478506954123363844022604551486849468285009586805430638078269767811812988008391830280213337457687700900426380809888450958146347887938895470306685680161148560804950184251229322944219923226065342748063858042096928788619498072006848530841115394950490870585480029361145811127930834464764516616470158389829701161627414989556556635511736912154120771046379271379473713698702740977275571280918114889601441605288133552554214896337419213044545358495820765309942527718817094194976263213951515016982609977168814158063292136865171181547800136872166116795241017559697806281818265045451578536751674886982978288179440078641905368426443956247752839691557028488770917635003289967572288231866311871863403567629533393283584942629830542823298543593794830845447483910991538027397603578069755151087329575276685278331115392003345294304313380511798005041290927053444991681102426497046407112962995755491813834049089136465671992995548342444102714173292849403453192272598762651844568210016314820119928496169746751870380492251191287680979433605827683264688114243326714960664259909194723133108930274324444681996002312291268418510869052618691116542036380724516431497286073137477324031815589171555495052126200146347565153377861619370574295855887175660972421482126792775105115230560490676156873497902583825240960643979070186169292609463526142352622076096469778586564069717935682444811796871461784825778174762594900955666580419420205876195738710367409596848506210757582163826486098723050045037538083275343313031200564907781638787413550262228138382608877735956152722703195021516688400817489293759254906805315928098877355808936048642600172503926065308894992850383039752525794987751172550795928229853306046005866145073499119465971693985070344553116459732912717473400537060267484953989829947204783477127275379860057563025286009172032124910985435355749000801329548188330383650213634602314786870794629315796557005040257119357142521535255492137826017469795007605021356080121175640865173023616184623628358811053483630214863861984909133186325778315026616813114359689102385574537702708273306992605819934932209426874759622583241827627062637822141219969334241467140869973836908061901347485555049884209849662300322354879861466236551412622048501214695021688819417433256138339901223955500513464516170049096549790465406909119953478468585947566308043159434083737448206181126203182432484435201239326968305429687399003408784573225873859022624194705424583437730712733554010714243243338225127207115614765742456903370651837063982134557965291881709186938876514894749202230626847718689565598084785566023736402916754870294585838762595705439479680409143049422243738693466431660014846014687322878097483485821184149228493180329127610185700294064013896504811371660843487065393276005811243416504859762318753396268851978814058785343944972216078084053832849134771321587731499681237384009974897964258072505444322274717132802165209894898319728985115636423254032064047761863314459294909021087943415109222928080533778371899763461816931956453103476431734133779157882373428980153386784650247271662981980212329838294099159298964780172903081635177416399363338414219834519613025873953969215752475517309395987690654808915890068895843015790543653784951490817329712518286979971640376647781146255587073329986784681539218996285947477688474628184686657022888747345248446400694613070312387350160382060054429783849272935215193372448077159282088636099685586324854299890043542207753323334952388712606364859934133973015689290521293331536783385893887945353327293215921220252389422622450197115442494518880279622857425833818695119977827230673601272685614099675565226409015017040145877142309012118838623581042920601291434643713283725476995764077750053601059902557015476542056510673216663547768438606586585697100314224372829585537355728210992633918073312247357822359753920747793585098186320032757837389752619192543137790120271669244341972254013721817688348558257530699117830578767879104895870928336829107927076674245988680485729106956124972081552346313429140047612381466322968537136925345186436647686015268780291442881876908800183955660807744102278982167445567897449256669357927398270291860720522396892499654960658574337693530184752567799009697477670737320117334411605693978486135581049352196400244067248530616503417566216007565297167633244782703251589735827369157009974556096799645279616080750190734519161041553960888363069701840074328947426028728298923387711855133065899799129496710246773649590548018858657655345074836838113798666806019389404465590753668556471625092766211495336917198539973690719082803987623501354684118284737573254692336310868254582112956163802124183342430414865011644796941837837124460344780230015440368473303999840216714467982553149985644957064578398568410912237704716455927850041453911395552364685664057663400238766219510129418223289761485285549474041741412585363874884299718426473609997414049983679886672181883812544625012838900173462699230154684083410854791864190322672721139205799227112090493593385240632698045212607638213737529097796253510191544509663743280744767553119642475532332666064776178403212667884267654537734638144731107531175296545206408682175441365527989212065650445260360609702577598418873584864561469283707458002326219506053908787747578083277251929481846330148185736314420034314698784676634496724230936047019841743406810695599332279684794050525794534428962470443098266763224545800266489936178168119356124499983077153384180824427078368297232048185914887486694487045109474991639730936309930800271415479539554085215666482663333857635556940314012310341894923197670508933533367357003103913203423854570551553241198960428383573739768793099855835584769869378798841721277834140494747973653895100055023042210699196328159816832109145181133560181047299877434899656415086647001753742646315207900813449723033172403993477956558965420348818389490552620808624793188597104041693009337579852466457313373804278202778192625470185362372495264890551345386417565047477850805594840577377781731369707601887181817246748530355360760959468464571349709285385588851201113215550756185360945778090639942407660896519134496392353865084001386978424519011972143490195878571521983487422797383595173058988860381316597998063610699914430859530414006945975597004599987587655281435119632052635770117548723629697229174222500346380646994666265370722266632595011049709247372787025518595154652096554101496849165983708167501294224343992789215292840993107252850806319897743486567517388646340954797242035207735636299218058816723563473676105000547382024803954538772937024896761680347608837640821358384014447518026724820909220971431750482014423309942852151688072239117846269046059321492191785061517378112663509739577162720991708747421805734602431513400070078126299938181433588885258587178305864325497186361336764763921198510491044528577762184358818239099009431344583880788665680714866421734939146954691851383640697663303879009513540341070876400298921876440850260973207134979344161518853830133260488478309410501077643882342180210322151535481996518563414283166777685178492034048189587775933822363022250638323302590126152699057180900244996374168223693859665610155655136571366950051212702379979329354275627325915315672873344609833316037827599826252709886498979270431492438627241955199674368557245128254671410173184024350660395479520470729550307176763227945746223545672913283399372908208760171654481442065267194221572162416011852609243234144898979598040606913999271798317388684743389372141293676389871161282188897092762384666654069501960917682994270932511678389844238048948348600596685626185873593534149999005670765062755128363115278203185808719874044526615822683351615785175789788765246076676997651372259006055062270464744977926589487570982383492261481684771078978090022762708943910978789382746420440644013449406402998155822089649060707795081968010549098896520277991043736788043148090198631238258628910324706748803045300130897412428711600587008646202492914949281352515285606853272144886528288642948252767718413394044988352010584329724671494574508967311359878163452727042087481631249736799958725470652264659283673921116165554753675849284084607028961055394106617237633756005630471082322373166745025460602684175698076634017360299064330364672128513451970252965430595538153438845678914029206806073346530539182155744513194442012482604227155307672999611652637360366072777849490151789348929293395741655342281556682647757490424106510457841292015957466088224317777291116047299122981309255028721759657457256743280917943250079050693893404100747109122732499767251223062483217913079960540536282004206215266040045751148072049089526908592802608386963487397320400456649667980938628331868790108016460779083374210340116851539171197364892727485069482333957881853316892230935561454079043283780339677122726066305017655805243880640576820232708903382655172580648269795539185883595493321386401044726133798175632035573080134542571266756136400067467093299778215041977590414267365030949855185714785374461182883682596037172949513904525767083449216618801897818105086049865878811893371726156735342749441604234767532399356184442495622123476174806006426153986558452121552247868767092278435077962581939193123480757513060374356371487858130803795280470072458340776968087570307389062250959209757896579835331251760603973126306615784738791329882988663864635475879268785818947528939877156777843421343147696167385599195371912586406294900034829703956962744374316407487085204363521276043067847515352142138770079791564738842918456889629437628686279795079314897763392280462194509305263401930068611253809851351279932945678104545685709362140210972041356739595100216683879989256308198862887668421642299779426697777691722573739689957528560721378782893728371457661290663196801059572968908252803626511523501382357863122597139483299563891444597164744429273102365097981919320460571100100848577870451148989591859468128174013497343895158699530488614739972083190941769829650797959031334624250860280437720536438731228714850522666110385524157713178146446250020945484880493713728901865577522752143266621959717811510622862644831017649081600082950017621616301739619370221674688717961021580481570634016305305304257444164353577296749788631922566999000444008147250146349066898862269910081717332270216615978431805356779479560767899818244111453061995525877664072555820827565868294400317887128001297061656562226432910125794173353638151617829960698572433236190151918673014611558104635516039371462677068825033445133480868312557751428381472963321124061174408229609994176178471245498909639033121496868614686305886272733469158611036445088637512448679917540276398907217004346949451234603377818385656396527546690851117056701018737940658676950793664713042943028052359942581563926717717937154520037848619219548221217464314147559704650352187149732762122880925321938564638785640236099757977488523002314010146544435328246584932055435029574075160333822874420100888373538302271217973468656278976600391589969896445268945566968910049425850367376618537584451236331902468344576241953078949080701803764468806413452487154675039824025606987549362372022394281811999697785184978300749711052627629720196553624123241074168783399836350312519639053974348323278236486298594663602678638143765048530478721483161930384723696867640968847923492143288525530980276282279522328712990166136759104729107369759158300087118805998631400868053442333822283358898201486039898490420387664780376665386945546364272463713631776138061609459826790765761647272587272591640171752232363925894886294047450605332681908793687196627196243775362658721270920020385400870811082539802013692411603414327762783461192592949596584468770050990809095078320498708834930453559181551511341046106144437122332485180024757458783330708446006183724136744717463709729788609837277023962456790167788806127361642176800638516845050252389930958685380669742637442194797022906357897059893160819515075126149095935777686213884479817113492300873612005800154538518096678239017558301634148446025427455256087787540022844844394499654239939006089206469733058271542805447654892511928162453309251586942544473511687061677243923539632434019368150587740937140123868600614165395916951350520461206479365265457258467949820992395066619092193473116232215005108715859092664416785854829917115943849236760543496003695328432914818498382016416478789985297996345659445972742274742704600175479901832949127039722077442546272202258537639601773133733684542678977945618438473106817808894098479133987337031053778054337980403810240965592660199966264640715951159815223836282898322224572748036688500009048544222043665171615701264971431281976771457253387003320707675632086459715973959657420962460718033436456394239172224531821388219715903295654940991646617954439881247593731236629474292314094950147935494321737758892441711387720754316108536224224224615945570229241305947981710169874173428417632935663874079876167336551490138324849897563161905870415061721595073963000480013034964686858927965328991464418163300780804306883606384700817118036402799064276815358692529619638179455494691312246292488579571347152986709642060754534144414737827842582098962885800730677918506180672405204292192684776469121466923622847656122781849693805372147627364263026358527450622096716404851963594289124387068842637011637624161377152309646051501196710709637737029643928810741876518034743295050878979473859436451619759248273111635561875116016054804168908942076394799725749663242027318109255449339924353494507129272322507657207132968888771590982403205740012947239285110501147928064911783831958518309333581665547040048064687569363276671614968143190941011402579507396200532381154080006364612138222413759355424922506705887285175056918955499269399420207683240672223350645163365412989335642555871616667981109737965258844008524523166614630924863713175260345121751239242645460731080090572442423502280318884060831043960501315513164316933934581667099187608092446353166293237430957049328908560182764794568601004789693271816498525955269851273173752481438731651604748870923091297483286578897142123157308580691346051308788721601915758328136014230926330317198768089889850864358825200952179996783801976863668337463422303601757614809037686897580896728015260360690604999468439572363339397215811738011585796588944777405288939171487661888767250889733290819834347546604279442778033147055372049206712129213960855136079815947628888281257819336541669150685474793109525472734283744456131683477574119485659767289843130983125863101423388112697282278042171878733748251026261255947196653851564091808516770072688059392724226229606331723730857046761843556840902651538598329539885350562217044801609676200780240539458820247179137420927296365618096857781671892258223223237002367158099594770317626998567719337625647208675945529600384299879316955223093849861403563677195855080049954774315013210811699311827979642992361208290806612414347899296444615738954325446967156416049725318547090759668264604149610071786257194279270100838166248833514476501569348656546388859145157718414689444133453178108219980303853821266574233362567340680872046647194889163963538610241928119177326907358422762918540314394140945929525623609234241653636073642630625188993664778748452086607488566841705378445712868586750159414336172470073452714178376891526506050223092339821261142382852371917425321338370682812325231569072920810401706762960150406708124987637972851808763359443563189782571720423157531380500337369482475088924452287369904249801848600863110942920664911460493782480501110505295082359929200861305284269482857269052759870500065864611377986460131927403875353310620607715144572863713727457822337919178049758945008314217045435778292835381764858396171384273745415525016951169470466713425675081419191122212194025436510260529229990408587701912826413032108616116956095532700382119514902454759978500220380562447143217020085015924739906780226988431047981404913255697271413255683266071244024471887633470322643415686763239843900822044316451159929501580119969361772740748200898095732924155380190473293972877553856104151126735800721286889425366434857724431794354809937146760656764595928631615402057795565559778566247124735551665234122929016726904519373204808322437277214649500195108942121000459803884007037990097402774531829403850224768169093275944702577183422281160870878725031050999384656677693652151476178628515789561121346447756927603224456846314795133188095308525766953110087795677456443113777037061310494994054278348285893653956919808478078729283111407822555991658783416807533170530448447311502929915202515268854931939620497606046877006290250884356862282980040854813216255141623784804078249384974672843026857187921768457981365700464804660157625661391774808189498019353137817680130447448410538190001606574681500340034858227929413473987166520005726612666493413954802891280627349700271430749215505867478177538852064567104914343366835938247500780548051147681076828360685105462159640086496344362330893511062439118189068298388729460756119903618213314799173828938102426840553888518756418738227957539115513352694685939337138536615482520836459964238083395135587108531291751517338306831374944681588563382460848466403635802805131260279764566415665802635767760751391224314871368046540624417287292779819286578763270256359276571255494269155490661079319757002306625131967401412523876059480899528867824916258505710119305155646739210045017456169711892716191437676610106000254534116975890978560360430334444808836059333289314128744931619344992337769039473447444108650432516885542247322809165444908807231547021913494710839333366375356417431250582103371977321607635765202601435555229591428827965824392362990405751900621865897709897891197482357220573578938957751244377153577661558533931284645192311049876116905415719325070144628997970493252160160635488482672109391316372220994514278299823308346328802106478081837219934849746090142296294277231637237710705198859862641578775520331385973665211976198711924557455252646807831666615404888284890741676929910691755074526069616982068085324978649939371684308726835782242788501537263412301797265929928721572006976031361853603082958399593111934673071670838970970157540245854565288457007490788693485460161977281046923219064215708809706358911006070139453826182563078493345288426522028126929881245581256142710190314267555509839946043106855281157923383159365634367680258703711181091211223786808224862672893690889062298928562643611305996563361668797743780172582248111758893537641804500454465949447961379034092896792940148053601007806864066878490831180148739732896198022198617465420748233892033185113806520977109148299698021555520273490936909906345772357071435370346992606761880956751343966513997013527389007180338022520898149857821343672252445160028165805036571027152523863690088157438042235777477773149356648183878058949059851496800443981065033478577911344575714024231750354460749246358381722587747587372845961816008285301735766693331960753463110572975719449727302976967769063025269967757358292978807529164546642557270800847093473280327716099199092030636947766680308071994499317510683970916172480185190779255087822530612418442688711356395470527188573476448626700423424053024580652959226398554406498691586143270518812468645410685233307017315060583435150702319370193831423065240462297083756733596773747885813415305385592668969096119008461013936468403786988126043272752692993608296759609373720043088852712612230338600936928814111208088748692863335934624599402633243640017013200780613558961948119984721265146507681873955076894062699167025706491875449717625540867755655577741794586022158666542183842965722912836458381344094229499360799022752454076946037149672248394645006751680231714432326634249129398378846087862843660823525089916603181349005863730766755046603113901923306108920816333481336638846931283193261258099182344681486612182735975816470412154923097840007183233500615070065613670495124967823112457989567101936742486895612821109413010864612443243540986617563778475648995590877341425876705202892123139772574278604915022774067746093017659528119237875674094763926345628748693206313638171403551675382900179466951541694668742620564833082484040139277639593561354337865677555898105510232073476992662428010299944874209755027036193113980257560727610211467402789240369802546127069718096150339693359968779887864802258267724256313204867356307932783852877221916609469506616966060651445329510738962204233589209584460891139900605612157086856953758729426114650454923548259234608965474721601972420010571638373754357345318638920484581124958891374299607311800636518852555979174535078230778153976797687435843471138778377936417395241962755065268049722072139762327005359190932879139634179060667436593028327223778179481581544082564912910914964364741483987867963212146770274408560646899724189746701634404198186037481357268296209336204070074063443301336500483948469741070716124403897324186443548988084339143694245139259384438867077357875810612508509948188272592582952288846433705956417659915764067343048634447714238018726579201570074286765965448558143424736743342338159233699026089091833055695943432129801951013358300831409561499579476162671390806582085769730228830116934392993528370923945428239205163533708670439917633715049526197855471060626896227740578496399343234761169500510360253544716485588836361365241142576956361861283051161841132478759858123905856557685734523129380993077364289848458427243640648585862644628275607530739736644728473490680255233734666674049063719867080398019476906836400994782844755338177598552906403354436368049938498768620118920956354467977143079781584934892837571778494205507412692186615316816569565784729505032655607595299168767030881105170383825885941976329858180354484113328364062278793125411584071649674639483570966680058714741779981923730637991770051266486126499629708230945074487908825853176219902440127651083109829751411728365300678039414423935980525123422083090513941973235762886264036707178768383745724784611131635675565737956467799220483969799109920622548250873334502902821843848846123148196521919881761376949222587724177579052248329093669166802886325775609356053942178500332801304744209633486628287492171192754899542632966946612925638313607797380980337082013909567554454793525747015665398137068436867482353590986862694774819591285759269846976921929082508085500517526783278543103300504846478065241774948964513564565787296757867786296781189364531106523978372257952789785057756593760322237533202703864495165286876839794779353665670503895654043435216616720028288798609766231414895132144593381480334502713500794120839322264584438452260305583218408586099284865840181466395272835881231115734623961238912657247143409686045025433635234328236628751864663121094212784560258489945783398644934564372005269309800462905709951053559229253892487099142832079622844588821302889918503567670481734295635747088465466792493987231011132878748611827079203750865390013260363138417895968315433699750314158038124954804178079485297260305477535837591573908641131044178360428306863788179574693227729875053542156786603572058492423949152430212012617622149563379483582715249411409736140963197183911532817982446563309874748790641941482937529648024555176209788074913752305867945757266048149650608662566676914639310948799375255630761894735253607154821261688084548440226715501056508232670490902651764919110656303165768925017137407032583273858906539050104419641993088509393147833678953531512894487273294877491814541386068635298219293111209448221039127551782666661374944215331794923602709837626766380839003026832203182781241669528880254171949166649351848544461468063039836082433108296421368469201829071849928058213533069732228173525744508522628171907807607498445550682323866109445113497463664819416544416859411964957315450856945261620236571514641635226925802642499759181443215602171176161302550041460956764913903208219225284851673706866218222929910825653231005865082350425331605176636342304787032236265098951023115054691018162363733493560146681655190168358452641760122697497902026683707918454626180308929851788144747696262508824189916716679281134268890793201076223720469481518885950450801699599154408757328744062497215419422144335610149357894983012177666693177769912120587555749104670951162865761557451026648563586837515043216359886747478073047551912663176486111517766681514460882242829868931334700860069368308371662926099024066455947628030103653499430529333940310851773539179094376230107409276171398951994154890986210260307086303047347725628903082466185231598385695718272509171053511082883197756698987270665090393644155810793519943315443785670020558249226517134427111132167495710809923712847283300562577322467899057292474604027376714193256673287924840981033641064388758460771897115236399875537056157797890434393041717693482387716599137154487360398578233773107509800294469911770220917416887821142033656255998429854594258208402927823725748823305402961177209222816018471333634412612661719765845896876527948845400080319477744822531003796873594497471591575888953061864178335955317831819388802114920095088235801274475093491291199618701659212021567530550137344957692787524151436240393619221731142450282380409170565320693269246904943886624667748861975502742062923256188820163260985650155292600084431579618189975640545250677642561797855804398403541975980760154807728397413190183223043763644455973046597303718513190894941337130275699097395783597264849575105353022617487743515485931643636145578006226184936509348320677546903488254713198421501486846462970318332075798328903218667024246434112380460167565151175866301208875158209033966171126559639722061099308938822838708967251191331136364018152067816560210723363611038359199071353706645370639369153046091302941735557193867790148316064806282219281829989556229945471914004693863896164598616951028559870704115853554471646762729195795376518802587491350222425211039415921409031200017075164794309077309079436710024753012202111628595074198660594706067954876152143379647522517274525267329882012567056742875109565085394515943110000767143398435257346281150131722872274435379050178465843631978040840695372544635381541159303404520574784494465016397988118601847904209417464364174997582057114216226657782119808671767313743077768145903603243107754577938224049758913811970165794643300706365733369431384354840373227073173694754095542599511694838320079118610031469086004307605130396725747375256563406101238180577208663721360308537909098152798212635498128344387798923689148808758690035969939648915917558863005550190374068213675905592547813812262192628814613590433145288416748317736006297242053733513788397013892828397406151973970273220880823958047908976106494000944172066923531077226380120151078960869151105014973497484236983070282902123064348771901344244161949462148150041089882420324450036454022725028557537763038673523186645006579730344016501344955950926902113008387304689160874121182770600395633157864539550782048938292178636610598111704843283932123746468242639719727786531526170587017913745499917720594052891853510908742560286017239507189767488450230662360732284520831337116351242230665535365654563147506127542012970389521555297984671739781789164922785520809331607511611265928799462243669685388539715327663406000627545928188609999246048537003324982905709980380229940921178090812416719101285777115168312132358552756626733828782751578189649023636354471947513060170883098388385111685407865337277794090037752639566224008465613868399934454194622413241413712185491816983160587311189265743478218936591272925645572272249152282616619620891294185051866680301690796360707462990178700005254738267437502034631291410358238174155110495079039717649400230865622362971294482194210329837899665047647120125968937623122611844454595412384965340185401991863252803543270340370411364728506043676315959572873032749693855978223800942745301249258066333984785066561737130688224055830980564550653837654531266465817248586106691781817307104954559343559774233976519465012092749665587127143475907520435552147180245166181610497032151000236696494824589539891863475602033366582936939210815941979343037100803978449313711447754958423172149541289189362349635698353868779234225737227973741930900815203957116803752823230394565125529213551128106356658105529178611087453245292593888302248477947467549864293811682427132233014434541236448358885051322927998724798156457637260843237751397237120818197474197454457490726648142153591399308092445196061831388407659169918352157353950893487549907116957484415405666208878292188588538280504793238121506800090906297291445228671907737794831182795670187785779526685009758745179834819528861641289357686625495388144603822414837037573279142323384678290058467428989399356462256619848327075496739405730188469169668658410206040407244222741969823364126368471372222425696912963950499932978093783277744882433891926129051929313402155277962157428089176440805745820545183109274162961555279544313433548093589397675433084139565121713042651942205560291241773451875960096390018321558002469783078279451098962949768136592870580267487807747671336423708989206624286516591328458686675192699560149418271626289425756106616395766108521062824027157371443601034357054867752740538965057134337046899912956705710523212378013638930097446720891911699135709335228232905209081601435533797680174765664214006819357527085588515743715927920020423626363080671069392291999907373058383079860527052128326079973974344098926460604442523030361316045658067027621750523902580579873575914301564625629585267222105169907305658234395854441884609260412391387757595762167605671480256341206850428196193308460949423655633294601008620271757297423422497683355311688317455416464930991000450144644924573576583046942747041104435246041105404509953589455753507935784963154242208140788455466684627804099344512528853488313914867341292040811651713439129597121420027536483061932399918684885775484653782503721295150247054035818786865986965032372876396765012160451619855963942515824945118364199197019604863966202640444031125237344948503950752662380864657476318592594693319574300816182054455263679362543793815348687320131726364462510958967156670021194030046030016811473693955646607722887422035764577579868662293678002555301857667907546187894878583214534678034152478038041450217239652507989231875275961013163075677641745222696210636696442815141082921774690647384490443698368794762335195446605923007043014773047915263612713713860451277232654992167029019242481807393638379659473446896831694369938308164021972561082950822726097275518938568683824264928091020338012340455651881128112854870446270462343847613625106875708320973702810539716334742742513663038746094064435787275453525902286022058958191602889405077919620939247243281052816105307079669007424336559280932036347874720693983881472650768448465540932407161768591811712402011080512816061731208900795696813035834416802677129532300188718602303650358413752856508322041337019534646953650035725519532430300505299059019075012751989383769324599801845915168353866805129320953772311122655449438273685566133443555988306423383791048749236601057052048728742781105360756716253500653650203131364200679240813367333030565728134040051150720086984628367614723631068916286536374798618030292843898973947809212146344968168704074786541091774059141622131021116765439957982145206521896416823714226064098370967593075455396923697560049601895045646384458379086502384018450579139507278654593033306209786348681962384357879341437104560007657724784881270092954164094974136578665621291511592471790344887968104803824348547089113371080113595266425758658697525276234994868593667843107751882242459475778323072905128889740593497257639304948906503859813695746730067558547011829615078409743751406070744480385089040180629185228980646851956431756918425715538302984827890511269002621418600608736546654996425677802002996069093983057268944790716610016158607301138330406010674332328950172757691281493017844552816724649903088907371023679478880731636115407925975070948244009376644908808374305933416178552391671562109670597846091730457891918024737870213646263683364897051960679631762725071272646187513324813358075813882094032011886218567874414570969398214877081663289152695657502804774753514587098990070398961885540322427776162818181602004711515360453146658411694070276736520279031955692432282127785961587012485917434954784295298661530584807302571962117137430685588080814024578674640232410946743801771428198033258978934549164007513819232911763148097052980806164423040783790970617619301047925855685541771444496029414305699169690044322795786464494067444989346722702957725468348740829217351575424678340878126200764603998680008498244180473956278209492059583747243873509396028726279718770595457368105952836734226177332344309604038427890086774627497217903068273454483937802431353424117352921159707121272108124190911664733323552708670954552503102333232125350156707303963532176104653904771379462619287396923381251346984683117814086795849817177758216479213706159223992987127156367285119670061894419376759188870885083277433042580622526987935133277345025966203518408691948800991587476547492537601415819110342714470883424051749473437885109699807308276328210289899071486432529549811560045292914402031998495183441319823649529728430956530877679619033407010215626187295521370546835992415957490354703968486745413940640442286953388696004827338882544358356178704396484336742130845180770935250468554582983706003970302554209926245202185179498898337394544905344994441529252230578448914677612471722415453615268222254827193711588895004933273443081169434263000797205267109641513469353569198901784120190270253229213796922555110436490126809423640596363545045193538764964177801264024036311741113482278600113842778561445870302025644050903517221824683102424210459707836034329418960856830514163478222436684215060534831317529564835544001414241830959282181341748522598283884377470855759030727700269812062430571465515916815839903744526349900088128773529062911897529607406705974815241325735484671361622184247413779765668082118077967872812023505291361390798377810889484079266209549134799660365086156362466766466950502370474408299246848685097721182469137615789020759614759115410868788762582173012338915514219003220610337926434495951696010732041345226715782356485009052884529403222494715771196828047364248497392638806408731515116033395489713906538969595266124744928713527470152372015734712048659612127376524410085955896784113769737801872332223635890153539992073392944640339216603711245282533046905443414383510411049252800289305995005123093915054105787072922259003526705046747823602795030035451594529701243075631971769548469635665281454671281103059389580561013810683651990186888909731123392565659111106400812688141632097010821282370034745099985337190155787101530997717111199968480348193446204880005701405960221692238650371953838937500278403912071743764717814683120577398643678415461860911023576097372418108241142065381184760977945961447165602087005012722537904594027617187529766846784279865350481942251570238294095875816267274310241411289071650402028550208817998629649839098442024678711649600588220292457919397953791518256350881287467750756375347309001491078132647392798522676931223182351866810401385154427838749053477404986397031009909699453739301980232513020080870374984565269866016166033351148630998192456470979692124637903887743588811622602135896729219844970451400435451353706707549005043588610234137779914476711252269648965996482523732350657195951830462857564956289033657852109888317123253016301904904606665020166984800250968978786580715096338399450911183336551028596742691405380171750467278184511440664644547411546467048375660990795197487176211179984641810367233749291767019254608688334710320422375611607513259710493928751583706230487179036310956285129255621583579394383006729473293369202182073646871469178583380726165992665361566150215914548975073057000759072498253834125034126105297476904616575593146063038802729356815126082521195840149889159221171553508637373381048131087318690815896296422586849624875412079104827696167628841253680018755861935634484022063787760920869912591249280975562901090716998470601138655988199499484947210580204861259758031877625404019582115886235310959463805709135554228462631346934954568651944699145502871258376206943267588168335788888055050707867651369992393984108409363757579028506801163986575245529385334129705172938694950472615242392715271824907189975133567525764042474382127760662391608089254167451303432898214194977724452971446484331799463648075671292525176967690204421442139353816901735780612169792897676235779142118987991444945636784146730140775141493087840863725978540466810926412588835388234749425664331601597731287788947645203519789922570233003417567568516840530480181811464018623357555122494121654879781471093426485731685297518637290128918537935665393697698731887297566507995691540932725116169118716245748855978944706564240339342828765753630576344874104440963592720778547135239668914965161612300654190720689422465464773716589787518067854936254921362637746376071956851471045898147312229466018075258830678467537032594578889051722771670139261799849819801860005350954515851924949562913639397175601750447028976163850312263881626416361129289939998089852856413718034148696690420989777562435237558768483250197417695415736462538101163833960833857136244094431531428785370412080244759406706006887634049729520306160464660693583524923575955160698117134581521494738874529106251669706514449796590729550049382154660688737067963028545236445214845110134732784144248455597553767207514779636521144390608293866330507701136456513955083017554815891062002736196418188847735221002342483949904013791306968984575340511565445372040206706867068491272817557417605796348770534386288802626692084890557309735729879305211215844656966742944837840710286517652775767885021992724431219282687738042032394664887233068767619337483048313235318949391852094595582719566954961238520258567103070799485399714806640485568920655291787930126854023991756882131716372047160494022550070911049344742858350596503358698130865831377792270539554308165887173336578577547025680578121816995691641356633589753273242934499336393271631264650475425366619948957459245603998715599298160011294319075696808558992094465969966125311289147713443656736870946750013696390844604158084229251763728046936253308388609353270843983335523717902314514325352855698451925367253626120769475991867710381977200493818096180019377680355863978041511478370130174056103195125942484545530666576945504945149017743088744487998763107370666103087142492415954519558431751978331275293829660103052381197316688925358429321650577575541893957050221488555335536416247313402125965442843149465113460947312434392592484292004054267432123620038112763923353699969388937569209579981297349687039218444839875609696227526649767570941954210805657403575729101989295710495548121172744456305982546230492713671908000442829899706658927618159171379118979629931535989056490270436754647113663373841368621841984359132206176656482302605982720033297879442713584835172799376817981414200382632633680567305949298242533992517241636898509287174045690088455048821863592503559800402864256903648111650545756334643758905791576811899081452343766559419951998373878007858359374338638472419921663532821248317775192631927865196738365142424189151314120436100774676221965930671262057983998839054171275719980338065439125917892900955361403678600355241400355154016846907425267732937141650251395063086997483968166630239475652241002596792208770160183868248033555350712310466945341052878021336396184878545274894900526321396036942328464165454749350073557963403667521611762621923959639318760421029168626763988655319036434907088656797607740346667679355552219960097737578913442996676059013987602164167538901128884827558809430603724762619605824352121828131580379747407832642571431339691485576620739626127455861670708666099474739983550523878037401871541274188702606404925655502280639306821979426766783522175151606349029607092420996333614091991710343933743233299656467946630579457334044575907069042303294020379119008282016755409681946224151241108850085316268808117380354275290671918706937800997909393304789784799060178847548952393011717379094054543333431243510141719396457335054295331222587973540657193326207791327675489308682172805660455042144343987410900279312339675569396356362887818528070640413995570004838638802263749725783827282984235404476121973396386936346369582687627990240340014175177191623889145080559937694165511519984335502757006046242207369172816686852252869449613185919833508528244488965521688240355178275707109639390560340811543765362533754625367549903153456677614635328546207102741625268564501518223553335824520050295405654700813917882112318691940736333065529369991083382961846924009655566566833660366951501498914961074175235413932622914313020769927330876620157308652936295125102074181253370236252972499165160394754832988228463071552778946687648588829842806028730979197270651696657595333637060388675828878936889452135617955805942500446668178693705003056977780079626149479466219229590989228226730230840151273568127940231200752006148622372140079865366367483895272127034013214410560625680726624278724978142310068381264015150546501122523812894064709533956577699505049545253110601860218841604714875586183111097092945232780430355837346897887415556800144640130483002052285568059321703746437001852383803626765917767304510090997111612282637051874807916534828144398502713321268257062847336216688704329618642670946727244948896360153656091521751480221200429157017954074118168430033279133921603109756978299451896332872033323655879522192690223134225247368841899783386394089214789917291002709430191679223613462987231127750118317555101499387781794624765308600594097919900629530014971160503748779456783140672995649883713344481509707953670920573678481056094224136227916294309324181716783063932044298789933746930605678435658321266478001637045531649384040307255422007395494316808838162279910361938791166125659465152835477883948043592589108042050843477833163820411574822576051140373691681042848653533204315867908145824468988029918662378893653558640924715174623945192535434214838145958152217660733996061511165529335099614137156617822714400369744367427246213501659831843292269166246692283413529387479641695935851140372191737276419589756682304647554545190574001946774330582553899817122160607139299181131357801241155455850199452651800552010016884301180816557628548145752066288472854088061153238316253072824345501184994780948492873836030847487796472135097586134601717404703992696994709511144200862045543767907754771809237128279123859268491566676175724543575657464496989605830781564521293689242806881342495469426456691907746122027289553955865040030509844600491897299292233116364951536737814329358524424061982133032539732083454041887395900227393656924252153043851666382368886898195920434918724222227956051593331019283527553091762161268516078225757719809187267402548697680264724993021574290584499823422347205341761488797108047803683864643122508752992953455111745900441454126403431635105627151208439054008422516975428153316166649718044580631202518328747824564039605517959455870958469223655016603679996882049047622612965075905939981205192021737823950511982857469463407277071330507849074398143141949287604585827475031051776405121105230558706157919060701334156161020424146946349417334453668532302128002050044016642088285545246647590672396976769765308934933124867397733328742822123216955310263662228406383782014007020724143468090518154831356291141494677102762423920982228152809089648651804012122167475404175588879013804263511429707850608621515218229707582779663988232093690717612564062916427444383049411453858949093985855437367265987303909733441788285743188542508274550435525093047013317706548931898892088901590713847472610215164322885458897498601888320631867000310448485222305346414299712606097038853101199853211886372262696667181967085949793516197005059481754025081716456890617631303428911858676087290434059537362936123954830656008734753781565520972734833163576522247990401282606136705013579187750795951627787582741156862358628462470776732849501026596623925540666668561419211486938728275510168676855185606262557811483854762661271756621112168660197832322855022864981968823495797696761963400203344613041901850965215758437502773393977188964756259996734207797056586591261133889915486008102579968688312827527512823516825193554757019257359928554928716255466237913905751459377568091268743992221925646798160071512799884657056523319249358186727666210035090869398061877384278140019667542328348655162778689199959749899410092767004531444606458603062385643401744140941715818132341627387463594116248477487961323738978897149143322426744685461829333408794880944122945566216849328986583233670627420700901842839689699419145373330735880748544075953557263082977936637878867645084929633907257231969221393878341272195333539520443246147394861167706111689573977460364605553730732380383233776238948707623186803893675129690741143087607068565456745680809028660962287416330952878670052545699292467135894186996243175268790846256426998342375897182186957322717027371497698892875985097130917339582074857162218744837801208249112727359012613314094814671423368106164871910663234004240515909669500016544598056305676870352057612650415439730682685446924105586905518433276973332040944129182937422333688431724413162000554724325472099959083828673538012952025975730802398365838753095101013560399337423595788590953397347478727725824885031501708432983358390709587838760934991072381710099039662567111621072961467319197971961040681839146596427647433270297560315416308256885383826400112105067108449083458327614033120105318674381747834321467620359384145242558934524237887327221437306964503936843396906139005479581035832399791536553900406050448914743062243413600582685529962389493045177191131409276527337421905091179845955362096487076469626507523744298413864853304867026960747351936567572052453769876031861287713452089694843780538551747015442532201378566912039778818673936269079318608599968785337208738831796882180968149741316976036636656240923070373466049330895245688803763058120976134179923121043405880775216824790456359842405071815962358909695881954382248383254712492607748190410198031098171468485401324811693078949433540683593029389951512030749272540444781650832846827050361942534891072060876408897847282144294352521270799771479161552871856176436516206525531008131955154249317333920541349430929719260356931743436282771562308321318811885887816806007139858682472140540303311330548253341460410798212384545390575625642448454018965923930494742457891036427017619250467268611633137812332853269510369421931319090272586831766894480930457355334899034495847548637802265674591656988518794393452457317341182318763671824193846811080655992200563342196923117245996500192107571092436979509675824194936299089775075950952895213937843589681394097258968835918484993057233422011308988096618831618777679860139552895625044493648636965844736685542989244370754515483525580271902796812961791618096903571905555814967480595905852409726079222371338301034081169518731295908599822541831850920569687130129309898534635574031541291725619222700234837783927234204899241231309477432840008285624284969580814975290454550970164004060877136931659557491192676784909397897817537815008727604892924144478197516365376323740510811686990452357420859519158221485733157939088771049911833837634886065108822416381554037744261672242110883956139205397962504700499935479557776837740617474787189966985541885402636247918712574052716105143612557476241078924161697271941327567834433928369575314895617118580864669915181339074325776514643327031630861088985718411445450996773485913032789747772678144275371261774894979302480683399180111881997526705882152538918485693868521498226485100255903212456947440529680332988441774476636393432203595398108321299728022497457731776378330792728228289886168127236216786089563126830803414917160535799120261788142141309555190562517730294063014854070967885238973450619311749791506708245288833783473843578649089611650968027625851494942001922113243260344883324117167746721770586773865718111816051730391667750297616804326650601586350663145674492370972845016041122869517906924040872994429068179525638846353045419470401829262248598006759128887028799130510038759600587501472472810864954544033950192572046722203326367098876725920617308517706612004384077066350029989982348785660618334288046911380262606802659070689718179192352199586065282173945993767578775109302847927610683021764087259387639894426475524946665569782277411104046118499864875417408438452389112618722855656961257452392759839228979662983131790932377512000133308761571542398234461714540388267125525356518799597516164888396562485145579880320808027175989609946505760659137614574792069648800874172168490432119928186743573246564062073340353095758895680701583558258220907880510227813463005578170765000804673231139754514395220502225837063860194255331040399425648024718502964337502808146087877340424649187395855034354988935070169005565342432964154605696571677473544652230921022726393285458412343421621409247634060771304929875838423573295687217662736564486405207192501209835405118579715600724158181291927067202284262659983524138231054949447259050846542069070686430464414650417279575919779790682141091876769682651634753202715265903229801169862552899815117852217328860127340189050393544983415455339523753206102419333664783909880715816316563238147924855097904165975547165268724296264495058217219871855100924773176229663347005540899472113896489475220220833005297719709660262236723677519278292639246359249112444319954682675943153137661423444100963970123636599552668744484179067444843034076636107990533620075263211067793812906945912805266933485194633979314233883580574635388985678468609446067907108349705653502614268142450933027075573999401653173190942810694465052336979225624939492595493266597433457717741158295270294589519538070310743293704146695793569220516865529532931404262202229613141717199456836998959177585814586309107491505317115342283399706749261358851296902321688601448800004211631495258506592097835734843916604935190109514325412730851184487426178485105809778235826243721104501001767685248604143056651055438630262477305555748136298864880944735933206676982623772436911149919584195946243289277733559699110638876520962943965457887480064505931203866027489716684402852727410163805341202898079645080702329108435484148350908799796283429438763351003533978246132881260620233068260312666382805539161087828720262688820956270422593586359020779326826689098549905988375582793611834356198132746166269501589280333669224071962502180286280445857014259200485188300668092833196064829867103949383391384495202286258954895225255825174263901919286313111577612299460783496421793462056440084250317336558577421475403069215127523570587449403878704921034189267868342865358689425223483198249735775872960987180883172620183903835821026990015274110805164433150454118993164843205381379666006192568463021479755000112099535111840555111296876216256244854637097659934931935287402046838775267774763690833899143248439504426115410611239981318904737567930336545610429028347748580885792865332019243094098750057987519016733073115724140387040828616472394137089474407648682049142352419365680574085413185617307782898448373382048607231328002988554231230524213599329150459270028988169956099658784242076190072574598709928101434165271291833858071216568511355770296610500052977890630500965959688272839943896529013677297924881681761075713090810592309610722675728519176108688014394665858368584657127613290820157607938430174874234682289024174435814609823625986672037157135048842836529417460296465405409431147627600560716485605005250994221053368439080038079321282130398373939917784064436316569829601974129588333125912776242449953206596096077333537512479156291223051470804176584353049751104197013015311790812300932406039202719371655006826601855526434806998327482196831436585658584906894101006987158135318709082000319005106539938015850626028447190178741777424311163872500159199397499979793267905498376894408466248856290872178756547486901381130144552103583694779069127832493257147713945468974956594129324768483837824783914022260102539219308712869240014525677556450680315766003942465758467068800239202291103991232519685824691108036935661915412905618489229032324488147292328905044594191113668654279663391914970359786487569701437182157779560727453779670539316517214988656030514372324318996393136878594763194474545474074359902421859265772329809487358054597811210911761940790472831556183345803632229849453933680569096511446821549792853200206455093267824126540260965236884948438895329219010121430005118898271455741030961254672058706882387672645083488251622791802751418314534504073977849316414021934186730291448728524128990033387436099437797789990987647245531414609220279664941039937015019833656287492730499426701192396949814591274440855507228705829464313292555522867458103430088137895913977703595004821152983868739984407500469546287586775594615947767749315004274094586054071113390579069574567403099554545904778349475727363494663228347023621862642678955223656361366752310642832560478473211779574094333208762179046537488265428187181451189921121306524904331570665395008568237650195404195392489795772230404179819781005423212224068251530830788007232405264715490767536017333964894896869838659589940986365489966138489707881712460347936195428460611054364782556225685011551816386002173131572403511321810307732122218212772004935531671003891983762084503757486119845152537421183996238339631391975984396817093102449588681173328357649357028773269285902605572741467233930442267023570869119821041200630950604295007542471396590143762968829040015388302820850696330340584177339589247824980203086404965026556962294886693376995722839473855739767282642502263671393154613774537293750392231958815169548858044723393236231141533613269649275027890182942710203391585644821512844754585186333986321693045826163929390673986844910105595968432119732246995020876364546669364440884088694468493925115799624202410929161042204219205381750055006262360580842052915923882313731903511908635095663204830691894607434272615851307702983270339422443263769779245300234053506502245137273451080121585308443469270291220784430096415294020618582621072419482738919788925154246314368870822781573811317520909274937739722682614393444363278734678547198740228371818828135655260108727116570675571981448863197410471578612028198897907450241970651794913577971695584972021922689600239244314979411903216015553749110182489108677542598579523465239387845997739266031915011761598941636254322014725871779709521901647845427016906398166444778477102478310423227619099425508268045334666470988656798366658251599500815671845985702093227957486435603500682076846696522303588806917922407933922967401953319196844133047682720498959217135726659074549969704299882290480407291992739089796771531191309379271538888839991962565019532018783167538686414295463809447929845231191939751992033570521541773965672058668511151664942715402245325556370007515797333593225310337881912691169766250059263373218223493187366581201106165394959841791205006168446325562932919596521639047390536098608677723112903864504259237041668027517042365459977269533046912095312284031440078631160317883488361527136646728314535356983866279016527008594458780924440042517684834716289863028956352115129344050302680366706569658477107204928785596970877013443847244010672502770166767952627808181150426758002797929673174283087509218865862305868485366882873835188387462893388284750512405824007704497152439086806369091007722842635774152981755312955893372486013154991740147133760926368433203363080860332860607523277165937069317870692060897549145874421431977093031280290162097438790709160325310222634834057903097937427814362609339771908392755095775169143531573432513909343246321235316705339060884919364081804747511301350810161040537956972100757625493313582432661286783180026516390466391065877492424330200957594443105616682369207551234095455930622364013624165924738094020817509319505606945484521367754121947398204950596886760861761221458136453460023530274069606800948533588428549177395072422722521205764301179874094638245163425744161713337788766905450337135687754769288018395288298168258005501153043885279881747436636920507171114418358904810955626986649269041686769671771935728376391914676146623305740308076950149263728341034084238785896965552147248530243247735107936804388589355602679698234111748624816238961851947876074944355951988247344447041587632702676801901939184170730629264754913416457546931571539042164027660649140157710231686813451229179657961127390715205809986773765863846839492112447970793277862114371159780542234904128156494930831986135375826347086291339961468671435850070547621691176230631708956988675926351350825371472196376873832229070497803715651587519130175156425789485059347175242943512294768631871838154938519512448881608999310959612316026008770783603308070992942920438737427377079150060282126863339338458402223257251840473390287723462899670001898852922389297906007176708873949455024088881200741362900527712421745593917971370046655328528619337283762749337658973341697782098848033121490295268823641597831652152818356638286025245320323531972087154877762646520288405714056937745491284215803332261819514891811353051087451264889788386108010275782175875847975406288242596166682424343638842388619224807193478137188831870078784431736184698334716008111200769837544537325189908371337775650446236168754054941272496778267850569200543997946993056008541138456860699009602238620313161232203857920918743066547589206862392403095317649874365918329668078838143433157126571249838730628669135660477906768306647923873429455486017989015097664196338880676286053051078191455820817344690435012613134826756925728435177937408481659439203793576968769868873392579951823974084075461586558663138785984494567929506260189423415172156879917388503276509409466169929316645060415034454675696329061477214929201213049533089882396327745298585665127418884519048088189973159885504755955848637555120000926370362122596282719232983192113981453392427082461026905750694723132647177583360195654860030828932410530826912868546090001755110533443490311821156112272037239198550152277767666706084871489379258558831358406560544443597159184871291994909142457828996255247084574402196084679831773499409922863524134110488500769880814459071137111601359838600891988727273908443877661381487732719435100689331421868131602743390431945250369520540133785503182785939775253629127727671139634806981712534615912562188133256933495343675630748749543800263542925198983914201785457961330193955039272481007822332122936858130579829199902395354141517680636801362385392300284535260779777456308473094460402669748810676673013810240221020602205155717561342485331093351413632682141671227621964113856560194925261208351599971038145110603641352138578243444622082041720776716321796327710655869210346143342492882926386047551199829087562994031067945837340530746525083830647458519166153491236662878205922859423833725768741780425695188695290298708290707100484419752542234858978211467618554375657388807626388685761440902659636365910900668350336818335687078148125346474233993231556779206833083953216024825808496595989903779120074185675091582297116831115924568295329706661957287757739118976416739742696982700857657735068135148613305317373914109036543309372489324781822153574428972269568594327024157933088682672734446097451075329059822272141204100853821228079232509101406825086301676406313478386517525490426060474043829707840105064879237312190205791189069640434567596462883141706129247384197056973734588378628753603061606585494710224747863504739812354675895655177024351567331895422126533884169621585915353408730384069873970566141211316018202537516685570109536886659661021045347283425881009934544116263752000787316685584999982262618326103819734924026268023648329739907026441035786048804386558697027896891953957350442068426093256413693101084640759480140635776153129585394674356127002525179948905744798736821212942875508226066815863414177483947529850432874773711290531365721621000808170135885851705634683413552289343835972819291162313308782525213465772168535332265260261841139430597115334559129163321295733725581200552079087093416710676845365155100893030339917483595976806674907865278594703312744503982628186561330340676634444517807408323516300064408082759999812504491439304632360676686751478542821546049549330950662196536229373317245163819778755245024676818717852153103210026208847436718393471815422557724676194103537704039575591348445355997515593100182963143914952980803670504712213687812582834346432022206326841560630545890645011726594339036388405114041688516685948770496049807022482405906094307786202693135212512425930331327180522909856963265686519150777840818928216474143451663730337330580522800762665861856961214881945386459984332767255731102812176712870562855537742037446945827817017854819788744745202793856318543386712220675968343103597345984352170985187784457870211288463460516175790603731098122705672862168717727930268650002613618573115857067864659171547001425795664907008547000072316275306994108160217528445398555704962356545152199207386873141508854289503527328249284439073404656436675661787227898360683213799443138934504840946358890880519297586897185986999371708650473859356073032328891236458255747418733130754172344966461243737995011027878819069756556667793287678769930102350136449977181301275962208702765075415086612778651822185105904088140936411353466835847666041677697237980119624347811022390542068076721263660092459898659575769784562766824034226233810692608517217008003433214281557586351405061602815719624851945202247716193798072077242983990342700007212573405597562979524326826832606024174427110676328161928335511647836741335815259181584232716292727130613422320323950597067273903505825790219699910872924719405619670511515816905198099167272528440662373193974299470316337871575167532284874111064519067664515818820495926052902440864449781340734786090083758942455308346818089624087811917976053578238605177948897289735112414494443423054455862481739471705946987690760037305298746351589877917518297380906626230134839399813530524549709228579063257251425330830640552607992448847123293957627753427556921726592040876733948288389845068035264289019116191858209860841726509678547462507644906611918128163359283888038395097662900097501102444392701857942726989680585153647547584770834127869197887810895983160920112334988301965890876984577881265610307198471331605231175823525745550864856948543065613702139613538662827118313364401679409454670741718836814193020159525427022829494008158900493221323444746498815200586098377947960381402873850438204554678831060379113206861053358653868574698783431076190824425070323384609579028664504980660894134397586613820024592989449512105078857001950714482107248368396423354767779882284113882641311851768819581640801807726327212381056635113637157012906100130898852426656067645584107171250284740937884657632815342340622950766932160118436236883466140908633330669267073563463262566568260837299024782812280521176404579924142339110939725553598004292794275900188002574449520303536672227143986904219104887052388261573522329816624448115885678910630121867998046761087176851262381709292686687746022448734428426303876291635105207539411418265442981533537633389763081159861145757826530259732303849461903872280744376562809333687936545618806364358661633260170964982108602042654734002934569233279686604024896333161620829694622237695707882546326334408470687150229209815427538322403832387023251038683782728753912424970973019499534007921247499298324176199249322967541198512238366923013470574883836558080737224903133241698363940750804416704373328327271439434005742045857590556190874802385404979992553783800788807474279838844103557197141215602699342306631545581066583259361547610122170412573041052788205801046871436668292848825321601901880540755174777501089280222522410714805736328017715141887298529671828707946580192787831552729242571819115918381527182230833623187614838485095909964166457692419154668971503633421762917683302996026031218255735050221875346624746649967320241270523591936322171423058824589636505325557644837264252687299434612557075177667276737894093795653556105771969007081467954348994866921919811822323279445727945869778221127539180793934539752799003437173325895249785526494228810683700631527742450297249346930921626467908237413414404439741865254532385772383107324871845763062063223241073639180208706546760336693087515556976162344062390813881796622406674085342387982638370890329479598135621402634296415161294060746326542448741826569217648396210461227023552421780799325282038287741880523204054941998751855286231015708652468547794333161506501072976561762057171292249135229982536744326956374964417171409385978829657865259947416391301040490352074918794187627604371764003033786777060815217438270297231933733475438433236549261925442771551268332789119409751444838071685132700699216925597720510381313200783156421629947405537298579722526850376413273695567885911339003976213458497433414995127279825586026932690352299999280503892432555111950114348955430340239713284118102232116544526738913467751358435785791520891469254080601335933494619821316766121247927553724392704699997870511701632335175943999105574244873151980317619428323522198154889514743679923545213431430799745390610550115565148472349022673735443799208420627307736550519097822183102326984341198342352326400146063870848410774426539988149153782298906591080676214136593711909440399138144255144934141564682280961838351770907723252037988444013102845223325750904289275312947184551641219405677373596372776335535395326592516604212084045589850280671597327068928367384250468497626568616495948149953677386571481629009086238972323264600495823754069398526031799488991627921335648832257273046891031912577340641148879259328063208898787766143586751733601521447300304527680974521396931062817966280876273277091501339122109751563451358760504763169547085561342885295584579700116539908739967927027458494200627250971162893968466212388798469395695185225945443045478155779900804188563339980104868534184771713160456604741277443257417986886473473371625764370463873446275137953378724171649122363095730282787744843130578643530245621792498798307687253948301150122958145536432946597420541706065475843037648517046317732148428305219078900260515739074726716250903566281035453975258425415377084101466975699665734704128274305974161865108019263698682850468522871428397022575607328234256404237476793848193961679415795029450724701629942828596162988023468343500828576744558298231341983359166557326071162105259347674855385937261110857280780631542727837105124665374307081052871828348534022354675633313791626445401022053679112990880334252859707314112836283064324907762962262246773213084084112079245351441579922052432547789038511658564647358134534507940545490723729293362039379225843254308798484616208093954117732864847727712493058583654432011618388035768480910970762736037304357765742828238380639644719438235063703735005326914441049334513583364505465568318851755658838267201170691686712233640635804935372953926406622738518118021473340584395182559700327017280653893330398855791913925972806178926951143230868438354036101144974354423118275874357362154977679333871009028678234609849684675022870708334984682300101050602641015881044455202607446564819507864645539369400162762793440155432051681979485854598090247260658610457027449762361908421365524952326409635053874715072161145449908555386887197016858355269937768980600755484408214300465950782446380341373063698923867199886371504220711278676380643873250727159752672522629878656885668260520651783691978463463205151553945350905299215875340840383236354067817947762868164142526896651999694800601692089285567888886349570028819868357728568067782435325691020711167166807777544129916908877712319149336293662915585518063843472853671198580001030880214102593959340901194687684283360564826864352490132979663162160586510551935839845326459101671089986374646447016069986711777774802128570119268728109109119089073534875441685629444530774534515033020618964090851729537863154159917340346326390353091061369217204351633868943605321006781947617341201409827442456869176367046752229403323166758148428469346148957217876150599784456985211263438889971301322602195006528630878612494676167768212867470988170946760363529630766203646810491929014766188028969848394345252362677029765883225721738876906206247589611933889526104360001177109028532328209743514801964291099753401645367914369376432713617528576538469540291713150881377701502134092118262219688743664297861834542448585609467170427465992446596588994581398637593608618980428527194694144155847876121639335599247472380114495294631524522797234513536086615459316374513938411924767523922081931789299509214228774922967372256773146005320010844488790281242845560057687083717368367427913911987674222114316944006357387059847384635370212228298527901706415087011126563010763454487808530894086101979736859937823161644267340899391080820697682188872781483447987488877743756169143882168620934352721473193421417170322836927400293763009528835966088485478410617508850372267044297884690542045281710061726492164053952986281990662003632951577862389865309171095728528317147089107836497319151689574850930053067940577260938757392879617942816010577335393287875376144113870937862389950744987995282533897459042428408530255746381105371245265288029009703096597191671625651154240867306438974128185523113461141038427335291787085054526373073792227794402117963311163875264088005356334997854791221683625048797675321042723780123882602929665521117954758985005831277069855654493931027420267445194901197619449836927938893001701302435952770052699829690337483985567218972009968321299693313015656551825132387279454642655301575765300946273444791004462050456746137561958870519225842087774918999639343428988569949243227306304294399419483839491863740261921099094950144406453251064164826638767765863543528089903643673825209859915442868778047159920584763087159654998561819701538565807528379231112249302436653231877113576823432079592014191109622599716741847722923624723322951225749568816850655920347897096143309253071598764352730566803941419376633241274946728174062024344440839015800085513005642703741875585546593916264163980846818385689930772203191687637631917208360708486551717505153492318622150804413989601853954769023212913320363688635517811966948761468598986205425602482016731146447399405953959681227170918476513168407822923253897542419835634871976022043593908127524034624026406097776798299898536952102168509032012807744083616016760758027061443632345198459767565586525266465701182616658831001513518800360035997100555130193291478186735931120444342443873002784054199153418976802408604774545361009784471832609499490929060955187496667203261382065264448556944118609662830487359517267314178812204348984557840199412693643271873743065771982772717384051126332765116801534131752118682434171186006435985837684988562535677577482806273497991366806237261086579560497787213074578667862233145053709769282805933422486304480584482757398325854980440346137151836951955170863589406815373584771039980963274541187176269031486311322016415740922134386543523295490843490564630343354099733063345279712531235720594582415727785299551254774507468982167805597310888089816922419477307536841080923768942487575204951176356218297210711776425331593904288366434570096700417715307140504615159162527524444448852128591378160017663132876822080890918388616356228084683943687985279654760315493835823126087275328237398689039743607714755667177220839317493126528576995241415542650543571994930887054228746437346304672525533825808852098940880537689026341444177137651187288582118227401167600873670459667526128863723463991603741948804960427893425092328186317847400880480493001730867682097919731480041341867404918637548312498150324811208102805426879558204927563560526672487066516038085401543445269247960303499060287293329366066333200590747681030729239018943663717898093430184967456136671616777590849850376918704505068213704786653886283111037178942859210046065867483578608851901544308621813553915030855756599753822553011241007246701319600251205841751251755160986575215833575604854334895182565564740306513804507089675502153383280442135269264699725243101802935777712395169740688928402395551215965672985285054195662521946105373420421168979672556731209901095081925406014822595060401068633352936015815489592850880677316412401200902349529073338704893316754081871187317171589743505452995334692314478879208519131943122782737001993498471782562999532228704515790085343069198385692020080080529535377791031015728876918430332401522402115448123077833374002075803488590386745838552046497990512831260946983127618614229531924025183980641806862833399394575469817323667348239077871347256937278831501004842028351982651172906152277113524094688730308981647687707021765803821247742131177166247436909941663220715987689844329714582068653262750298044341811959371927869835769439320860081208813034989065728609329152505647733361725034594496759225163933613187356977636244987338180169474445254833581580226626592142239808034866327551475108443382514611417527261359010233346563583531121732458488230865925794314664409807908636507649643393923674615735636848062938987995748294185747405495541008646235407463921059444418732572926732197144512105998947164642412799757541586756693992309827972720980171890755141066406979271483054884781674202143651472668664376970587912949006662995439181190849243393643731531952295546888846973075575580819867908274669264835173534992645892728934867450045981140737605412856055324128955305024982258018812115404963982953000073323607290817541221887575710872735082996123073900003993687992399228388065715196341514039143144723668968602021790399671008198411206897594111449005146254331818151697597261916754238691325370459480876137515493879404731985007490373737963155484326402163951291292527884953721895040921160278519744170034850912640975277800564775129234601582069179788965766422354683880338109137088459514252393480363771686284657135207334505291365487170603299271429206568593082071172789165840693268810732866966229624275438718032196840544009032683106605902264478009867467804881849159849489581908573556871762994588575368760270412813900659101359582040288225258421434327555805710998204059102517173168775825567268793473750814181953458140146553610540866992752793290177666552338618727111386691243635559650502039976064845237027410959734447347459942187433018670224401625051011383529560069764892912388740095566451010704028552180371561602508947415317073736714524379426444493987501299187570318412283521365601725354901263429838286260674666784480206014951461700291302706279478266330166206220925083636881687513222311194761883794542508204941468275759846795388031522049810799012409781525152349589912714576327345637889181248496015897870666626170804723255833057891242369977576848690955988114387688005462688178152807507145169541015823548235678911587574730781147528630510815034761099951397564749189720933391108482486691592105647410542288285956391029736721258202816198660822670719883117755424758726163003543837488157799085813901051624360508497554583444649545441977925428515565851098518711425749682387357840773746814198717047657429316420005183319425014479130395192757377484811724306646989093135400227294182275961174882316787793276163499051523625190236339786154714216525809481320919137228334948808644274322516018930768606464022613982072427118011778281256470228194614484773210877351817087642016688538251536337996341244548497189860712750207903327800442991966738399489916451532451316153748273060639164335025921330081960627823813130434366659159113457703594755768107051092442517418009967945118453391858363720110336411110840862889970149298455503572413309028840035837646731952266443151888757265532853319327987858516947844165563056257162813634672125446569221521328703243981033938525646698944359044069332441934465801780707997840028533932027556266845422774223571281662615185578808446171923686842575628100612091650550968185778200801525415721641671286242263799666169058122423323849973846724582941598207066714063352785623485081286115805856936105528392492202112881598407526938287196538039016624774150070606721603791404745456573926932143781806532079262187361397984823152723771697059113681117103832573679055663904527865725308340732394673985464212967306425243944619008721411513931746450436726160619527547718532701026487339137352554869363583455505745927039079312891432976874840573932859288964424040519140967092432875075174500766399678408982927289741460313285122609468256603553736076573011870120508061950977694267188111363347032987614293793287399713675370852336734819324345203276795310177404374975672863002802021601392109708029832405385758498347853351159424209017449850926889659263012332887297060300800815125401156747729234772958032798264809193862780505421586193730035321356963108402399449211006704865040734270882198538729386428909968304009234841175017904439606233793680126600465070500926693721831360959754631369626770351192787258677659671309622618057908913642048825882695319915039005739398355302855061915088348688910572972524019394273003769241909195550351039536948627854835750022225289555908325397646946348193440176347470702869386853151527951823940709611183150800426312637066465192084039114232952266316001491417827754788960605509964972232043914004316368969816282369627598036154674933921167913763330831291355702998060664161001545782064218926840905763799904495204091623924316981049068664739367361293681910359805280375188709301055196737653211889627406155286854628905221900683351950243560227200396401478561746432113116842145728809872376328913051455725932501075804818803919774525329954276080486059198318009390037017123977788445036072251676012861350410802046082429127093273707040129152810795293418686461535436360321299893100799924881383029162486271766871862779653632801683023507983217694633863134367048298059537750151702081773955059425082189213433833642124005380260327483077659048825495685851501356571507733682684753038272685316284246703180529656474266039965844390677390619932578641125252092268909772034300319814696367072308726051597479999472993638478710322016328299214490552630756470346857207251740988991706078418473898498791674910880699612409158982230703880943738014830871491926635918687220139900488562146136927570248407840335643762327141343702936187124748023345338963196184600483318612165077515929948980514029465534377800265124481809590756136113615751160208036949094129298536488360783034729106606661324582469687528077563958705051916090131518397077422673717964261950211673869821595037860696268322339160837016163859574929318732836451660948604433537094348609028645676009134174735489123519748764980548088719465650242289747556419509247381750833790963562798168700065367947600912959378915938408013523516509025269928746959342385622751682888668005037700428058992902201060632353763287419263737309300779156399726806788233293787515653741362357622359281706122473876857620092401247141468850654467814594533475844098701901049699967563067166485543664277889723734131855510243540273858518632944691808655576312597523642589923035481458506622786465649496014372040314715375612794608395437332220271867082832957480818018176069452570221812088091985826101409334640200300239069576002452092531092878845829242789243335174887936625196650664595405618816891600600218096909938940054068917855867077425778659290226584833483674841289290856834765215787608110644686869869035378764603990399714018695284014461788824851086659045526117979055966405164903723009557516516178674622080750741774044608005216657576326904805949726871824061652127138237822840464949447750585209445309856963757632084335583735771037031997845529412406019818452116975931709278407265334619228496862924946022890684097595804167252707636882409157048263392529212504524431669226520458942533954334917100229008497106514523369285009221703354088922016448675827050680955420241078512552875925265966562246623776419456784721976878027078647837569311145902189529508606418801701899586260969610746161375407101155824514761040015211103007303723263769206762513958367409728411182749295227955670181402821798809734367749713488182896960839304178339018090998124030664726932890161233629524357666777774192912093155745845624739582404762960373406821286473584460246824170337794659604193375932187180197130522903342516886454486208439188205786042795050739232518675788506687414001082758557826411503777026294194520854746649690051591242822003968026915447866694476175693895391779784523017806016353670202757913737587430491742927377404913363168653682981114284090573805887808781682061681580779255470283625812591939501570105737437832014219483427771203623296970791384784108683139948352348615825627723833000268507871192563131856438092899464929648407837946126960945146917663897920574299548110110064031915337102764249909442007988454589623030247000893876550046925288022331112897530580105885359117425547078873882019622967747202163259949443659054906292676487011618603908993585440019063979445102113878481885107426120694862976601940726596373801154524634029331754381403100869623119975753815036043306752508625826991473823721680287424563004789129300252263052694757357927181323083120078554884342968703065613924225291814912501777466832780978093607083707819414360650309093898823393869158508631649760824585291350135702942552913853522456966097129926220378643836237515538428102246827682737185685980431887985638614359712621967383061610929455926425900069863405970574880955764517146682961274382710734725116961620512139040862573183983805514915569035353971174653218285443414417425605342584168487029097517670493137694025775278596878059975397863142103509114662656733479297169495760323717862977862947414290338224860664825346895188963126369060534895599419150301977688705805587744316830251378687195457784351212194943145122614398963352196481929486050229233788707874777820374704673341482705963022843452484853295029337619197958682695695950462468533084010791628329946466867280170302494905710717442638954895912028730969166569245761016761196773998357963534804495131940300377291213321760872599960899812431719457425620738009292432272765959185356218385883657592500244817960585477594204061870525600983223760229307091732408812790833117719464921293008862188878770413859757967302533918959183216662872754679311661356699159030661057298232956475007377272196968999518473939688421167497532884734702185034215798619114673278468277165859134856881540201617856169464754625530250364693781254201138200096582112006672488702694055936683558694830248164312970000097567911601153349835487398425519368230175813425095684601836279778683889852486892581552482485456715436537829411181068144686707275734345899996222973011513089842915412262228342239937560604193790989008683641811724329906718796078660220620999250121445718257723205990724634226398615718019423709204129094371093103585490679119770194272512893409615358197052916694681159955789034614817320526127179033717396116027661761818338320326501512735906548828441294266170932292402877869497947393403719944678866703516473374523442418088852290137570633846753906191856118577488837524083624711152348740280460414081156762373192350206092320529299191602488757332380125490499232126759991012566107541582074987380919266102398463770874061666960054004123372116586354855812325122492086100129074603472340202449253470171624455740380784808922525440210776548283060577231897015929822034494158408127859835336322257294224782483451991565559914862230560558510908075641741374542205201926283538866991898426248093902533324237423829870351345890460857338145227937557265542814553358102097692472497173495121025365905067296943330906019266753481427648955552864073298744417390993702491769182978677194795786818079029782889158750850411960532305140110096457509720435503805267897345362148553258518419613709024595715166187877652186011945262113217863077666446874205148823481393760916669962134495930337300660814373541861538964237149024881785839643772318339665636876376007473357154091528134737852016856562861743626926567403012413800584196693987270308264486307336262247023131854362280300537762793950161878881279193048030630844069715247769398943440456849508497763806034477697128491087692884068547290214464130435294496070311407521271966163877841473600342030756834315447735117247184364242264616198043161849834060661742069509998344342609707316486767301887407212999730408631042410712696081978141022226177938633322476014954131630506437178480280257878457066395930081726410401639736835828284041207380339680024774633437659892377456257564048478266846755504076263554057483544227549522584323986025355594427158101970404496820703988187189416863957456770582787341939350512197293214936111581127198033828930970405100481751297461564328251537976409049143199856914426892209192824059298266678062350251839495360450192683946049652548337531580271105226002786803506218180711889752686211309813114339778837500489768515771723478138782468465969165135830763584434374723408735083741276478969970252924305157048753027218882091330057283011123288029284388003590651571314134221139387700728476293660393045168504358631919461683344160277726731162241159236836249012710794804079433295287511610786431059915643550996050656472878958584863130307618409583980920437810171200218191846556928420668055609168578838828249130563968166781915150700074979680605771214877576862970480493253111207073349409499902857252183840106992663189452165746599712786245980920386580000544215731834048909154611602752625526384957563519314516111152553701660479208319097733322495683338053124518240530259802195618534539303314586568830630983103303877591226048099453208216919120228566016340537872806855596627515999865520591733414453122451082641785114456564482705333886766420405049705668401158013450104961019338854384467936858952293261300609164111774465540523504617371681283010653845046320916584993368121792540912839008258815663948821084883390093786854835149777236705720149667190461558420871397203777379986645018115505463729361032349495899703699868240816565440427496427476188472425317672106524447174812934272822004918235111907166166985422010238534035803871155834418543839126882640769987841859616680451853818321623429483446896609867308843180627471768174115779301262024548752711824753615940515424659213717829272689594154337926419035993390401937037073081304696770166482067610136023011123263251793312346788887809163846171846284454643905019645901798446467005418669955626011630650722396721415755506734182241391497782020047144323932176285683812072207687901717814131416504165605474347995522614388443820658945020427245621419773444644317987964112427810339633768557843773930775081294821938871608687253807769024291585385440946458515696319488257103095549849461579055170426277527690087001401024703654005186543850206133035945626842390898303518145149548339539193124604052935293658670917476092361615749649321368533763633590529187482915313738307695693275271196778136207032529141682066659230949796296374259481758422485352371567171614540250685295873595966569343843513707951606110381920909738145690786981706772653990263904284210835353156030918982995542265023135822086913333955114777806097035716762138432008165200161227935812492371839456837198662310105372310523422442261118104826500198327230569654936818167759236702722953268476339561567776481931394513523790502165445568557867697216688919343560310187278841110168477854773044077578494044550695005888440879154230574790125856914039220200205851600653720379866597067513919108553080117961471043102565672005218337715194098136517020494949922288172652084057572063012621866513180521190197833224483924265927179572476394439730276665785874502412456111725372998749598867443000647822869950557377181287539097440245634276167578060358685457584863174781414555564713434767921895366893560625712227084939465315495274640681409670246632970832316414066494129355608556449167572671949198543604478181989077840388520070474265254701775090077332111463774052059698516879913316871269870870356303204268166840152800986419810965424508887837842240467271755487744523423230483223468573783629780559699209054639545438875943421402909364166525797506406162499112561955313294189490923259645309864605310696239733501243927847271003461299002748831002571255786360128448328146231461164515210687456404522950920582293200172345827819873633159514098397229121423426755072814419679304803875548101759354562831209652751277682731423068607860331645799445826048668599308146380221233067682750280702627792415671895336162766857594310790046833461443250185575183029901123773614418923839241522961928809185852328589431409224385730721833171596263135441202461171112894456855272622445331140194436859938635408250096691912060660765290667735668982119056140159295840760892396810255573777762350950217319808757034791757189823303343214190452733915379602737434144240052281160961257499830510021085804193606560853364753099046762691339316604348098428474412938109181225820542514357602448768709610057634184698669826494486564136929808312267643638512437737663970581110930038061739809898200847785361800642428148483347537049349710349992952720524373170350820607597337710059861792748898488810555984595537026568102029383955998362101849099388347178985050150268173504262273520779321375655860526169770378390989351649835145719863321636892768689634203164756930533464182439771205367260208106790798087147464893480303541817785644414859548830539778018147127090036504357322614085444043375209209547337130874960289628544790227815577891300489126125044909397914782583585390682700580958640173418929934934468363806920124590505929722600429259507873660817255584630132174649044449100570271084563641653791221124181345125993780722020789280295562647584581114050618084103456766961608058557808107960268791474628531676520887977295255063704840022662511795447970004422483465008147134543014439336940753973884679912159865769756166996933684975057079891648377465918720375629317922547895322203895573305628306638501706481479623896290394200270364621091658372197962506991690099324342006074540363105023477690761600029871471185761048088862850513363175484753234488731509610392336984154648243745732587394205945437509084112119212333898763142947979534868497616720526940863790433443311970349257763438501087635196439374548524793459987695413271220775464964211746640589848017942216486016062513339333653896429860350299635296747147397640264765305263414234134084932497086950230362494615847692255544555603592731325122887245203798724813397066133636051663786515543017628425160042719794317168608861466749823879028753967477462490485333318107634937009760878262910485043518714225104874448314598410669241689377280738681420532463399542913820216521096622940583430626193411535222746384420531979820279384696310508079302065658567485228127667433557793869442029054612539521977667818698776444282166450923772735321097909186642686118342797706991813379266640040876911179616411300697837195151535386641180498313723001135566623521417103910161429802262370552652198812448578223236195387624218439351159004104513264873409454327724401284143966135952858084590134846021830860097873250332713332093480127872988932765024653056554320959392018981229269204809559531272509264327894393840026542873700818908255446029216990109946549892284333389663651123728115691968674731061844561297661139549155263792183663485214546949829394027621747229649250436799811044413040004824025411020191903570436526664833027244346724964612075242147273261019489554325308442430696852666220538033809114081684105091761256807140294502421473271346972053609230635925540189991716679546970252692779623538741904001610743813674292285603786612282684447802161816528470584501186795716036328435026621796213384054937068916910867381138251545050927762852667606502895958144406465107901600458312413503756933442300813098756871188940332412696419241573101866700358881985103522553845607260393455499772318848871834142694894718532105606025256990937145935483611277948314532044092001187763332225884268606250647803958127868443115198512033330906906678922524873240793390714662467539018718521537228279942952598692172141398146249750541565786896534962435414157482474417900018966145159559283058477738888904190537478898963379799623987880930642566284256606668751269836128223408001472977859202939880648549798878379665247983772621464162836796509330132420008622147037040772183459508433263423809644300229472018830356401633940471575968608534957968798493126266554818058946605947810384155411084892931704225271204197533498534230115595821783520521333444355146273530847927384635057785291250466734340898051113162982918209389585377190070661680637052147618428724952417820915409480250204701852064090670358752460026864770850883553268134549585816704459217039323662110606177557560274163984158577985616385542893713044181994197432645737155510866958774616458696974061485800815967407361935929417834824853910890153112779303598921703649498248464879395367645342508180896876995141013078859107110982483500586951493679757622977658819384327141226024646087616691555629349940094178670871307120162448928270221548942826842137185671647670524205056486615072529084856843080636869276431570877547965842211182097653331485613105869655607227513148049601425193942958400065524847749657025367831385938604195268294919486986500838545562137513574950206971305690189522862689139661899926417333476468997129907787213994548695414431358298512685810636349499520442246951634318219153624431577199674581564774521989841508952972740333991876091236895435486909762333499622218973920140308430234458825374143575228694529521942664617386026645929006032339925392984182273356718131619301508833452497080565435332371085541626708984896978836870661103855424624452442390200256591550269613266386892929399946828194406828633471810466597391197249299941046090283312892159334273584282062880293788478157274259345013044640571591418864501401613047586966744583638382488501720520422646697415178406700908755702915301758299992513033073209951777309300487815810154293151899770191481966059376944551621059655385642579853629330954016302826692167692693800261606970031964832308392839652592598554089793800926170977516845422022078847577453649612513195516899337700197198605794990220665614290983873157737048469105266717108273844038471375340913085765862195499708059224087671280563320535564139550333329189167583400910648263713846559623035410925107150016375779194507764350503311338523135932240789860065432832627840868439809976244873377069064048290225535638492060374309454461066498809474913169106969396110941194100609736190347017016550321922610507325293451585654936793256200488178787795763338076251901508801577402329468169552202198419501191598852382641145894508525128922777860598629079958866627963766076941924554154406512757641475616030954844300865014176825094140692400030894928907746932899745602033961849386503576181102149804631806568715385384624679349469180067335777163874020571461004079837578818589142548843856782065893412295416516693170329777144980608738545197793469779512881476139643826949645405730387793779739569098293345557071714784103913795830681938508962723043948278507862547086466160578707328476660300914277964429978515512862994317555831838973602520742371024862271960418309921831726749809234224876332095616684620728336071482970051199525454472133566064817658523741155544995314477833026187613918315374242769069159411412862482791985612272331216802611837148377750128821284113540972060536691352467359501935399557734191079196158612010684251487739469431041176441705712187658836101357232119445469364023633725536693688312337485990866572062418483794543495646306744382214605908783436656534529751557558358739953779127335161973635454742885922093070959036102589298450602320155199142799444345473141462917148384669665376053903443315110777226408108088431211746217360433538868261206005698729691122338271027186578554321128361783881217868821140193961325363321245265379520180891816158290632709960437221357453891719803753480460342925355539157563175761806973585559555553517872814610040602804370893022001030119868197884911896921292344344130507291130950258485282924360807655674652571576656596889570471817362859659177694724618602092837806601384732965813204537916693751864287213021160359631700211099766180509836744013248153138936755936364874888531491668244471392852474812642409770782054694170873462497830063266088721172762410565576042360459236933320160466977693503670019681038192260379196659753265377721098903499767282329392525277333107456195676163654653998584780532649345560343999265858672854701840879453734897571787082021534491734906372358758927338773461397641538327674299892651167664238514592459722047864709320161961492278072798274387993668812597723486037489245833452059747538679569240109671124095015440971750940276080925300735494492825019473486956712741404029075126306250270634363276802146827929865698005361755343869114192109667620453901802884486030614109216535841930402184865819961395861060199504138123814920646490883099213360527027722415516388848748693225450885881412719411774376115856982928758542379778166994496023590742645473441166986964475319048423697067679795758538750530211963095494711522373778009141645065508049483832085730570982410401882982571824423950418088493215203445463052177405373896115944577810409182751939069174480341014301698015439579545098019786697580670838453654618328094966866438798383128899714921061453043928821611227296271050823529303498321436337900418162365395632629564320375584960009483451177087511166945795373772109912095258468429442343735224241931344351711981482725083338441336881163049138982739991006079529380659121763075367044429817411777491192872711728793131126150838538774558547585906579284318308824915528277609975712294681794478106698955466099994583156873228522898973608451751164533404615849926789251623257811374744853780551200596545221816162182051290787110499927384102394419504233997751255813174753761356472112107570217816322785817425219267167588541526859716454027143874140998501221481721136190380205294520409062721113694700526293314222451430286700839503137581894976018004341711753263305750815036395214889016504399117746310839273012922087686350903440542144597304394093030023812779825763364683633807862471885748543407770519792107057847062655525704820472629526474365098171946693419273045291451868645653211159638018937498771732706161833695607871229888941641667530586814277395162946783387670319139509596828848950085353240630847758443821576488884770649661556063016397001067388204044049434928431726313268336591622615550710352590646481853048146968625790974280966086026026618860281359684241655626167230948060360786001904822088191607380685159258238093075333997744947779571077248186554396629324827010563929131168927602950955109130752702334341185790293596916047169960931474253448160157316894532605267682275977430267083434258762410016642583991071958626734668671940183041155644648648548494338772733799983218113063085280010143291498358616018802129914065164092897783622748816324323816642268655123717913497578025722238450488441378474951871617064481327009895486823993691713259364911152917364188575787886806106015395984019119604992734093442581012472848104077673860359563687342510508711131279695274257021559442065736833800453847969032406075904849207646905218366477269663625006326199386590862349778864705145189343802162651044285516439704774402057971029527942077362623516478114055185455032928075523173711807587367801240428028083899242781167849032468176589754016020020543327023671257905207364098664063301642756876448014006546652887657618952549051928558453258438028075041768527875427194870537899386090474420846720835346997328879306362274710647183060381451673032982210031225456482150222551646411753552909466436105586208678409270016649982050216070227312600085635065100362667072001796130167197704388769991679741264896666955225405944521735886630675886087465508854203948897761238874675623953178351271897149203080995901758742503322564800979514663434258709770638237457458286977513023674720093598683743389802932160636085329529999718758235123865631634971458730992802497665379596588217314245977249928829894854561535082954471788502189080418251882499520753315557977203020317315535519420465633486418213970872547672923208639407048503319822285031375048106869592792756492802259796261109763668185095527924315469689685100448927777171460036435874770529613041935836123889262782215890533611314340400706154749704212800477689801332796421761500401359319876073992371162448133964008281561133769577606327941930403787492479139935982119769840707107686144555719509022145198099587575270236850398441388994819538932322411048473734089725378110181088939479330624115533422151075724924136348718237707482328201640209750986264840727205047467804034380000868541940602355556414896043672654025495949117305519820553205431482727373874044519798818744555864113219981007577696255055179485572067944064655044087415336080150177256805502717485602286928388873919658595249884616093407729001194634300004802855588254346246842803644822515442120954581818461834834300548779719744213761993451983528530366885726977658278470604389838746792638851308510354188739905828620652114851634607086142317820125001406625635159233687550951976500104682484367841509385281904156529981740848188310803634678945550316634866341958795327690949374774160855102143328203481117774186381114978335615101731872337521983799539332654859914393458999286135615070773951350880639266724676536791914828110901597258348713378500420947325275864318356734434634694901619396145493063688078166808084464477894027630745931105830862047394104628561841195214631113606547832979049937510357807631428838594259178569427922184376045494711882938574454456043422567916057039106237695855268295893415880381107334650163175652737535573184895694973335813911607860900286738222115350501231198938378432345479944106374174728137102083441327506534117836969124460358587489709255395061789153470201734690238801264502322988693513636055591372803648380735874852740360208447762439121432122233080165220698938278713602138978453955463019857860392563739136999406369965008325469558547809046216250368795386708069209327779575807950514157451877395091991360753987624294384648267211225430296333301788599577522993268188154050402545253265998541003785491438814726998591321032134478257238792182646099931672578984509725656994293563217034621842290824287898481405613327341015953131429549727751842638197791608375440207092410330440749372598249814890855475293777006587777212110447865158239248701564699518305602877244049822921566413183530120020876594924139220641689733437862104304275879354035425952324261085710319309029906331344585963759803472896766856879154809267435545807359622347935587225220006784999596484533012253059009283239202896890968601395941577268032375253596340762852878418715038910452613829557004074857043239575290383256633748079385335738966675859141746168339057649754595901679603919472483471603038566916632593836555840506635056905662206040702919540734742678954539589211647264888421506529083974850180986376586619121855303650057745951595511111299178426175302114986228799818941864560727410314226095523750208407766721319090608873640031421594367061454052453694027376851520926220084608870217657935713264647726675719273724453721194153019547917023133648693106995249813008415065883247420476162264443737815132426929640342377471278007694775972051028704570787055831667778110321499506216652618638560842841661015042090004598003230149180877830246718254503082753885940915458788347522981061133674386775353751796739775067201964657948523721797601048596653442003213815937272095872688188653668336092920944594020628864932934690658520139358189057995611553751393151531429464799913819424723048438366629974396344100856183181747182219588994577261931396038450888193788939062388760183846648291146484354410590187264309150398264650493957089066151641600188386620922319345177111491341616850701053747602121508858032479095005070337120546389436637955433762191656469356097926882932713081671339156947538132243305319458965671186715212463294618617015289636599898245580812320394290943321954212711174625756552591313192854757986763707143563476626439871046822121333114691390819351407269582899607786805686578817011637317254075764046370287541114211235149268481723780461286922827932736123584291299165376835560382156834734221897377543173837040222629471580695493301208080944918418802346399809841033475692692009271084401306982743280937602769193222231659523805310777047495224575772459169193633236609059692853903068208362281809996884454873024346886791947637154190035889174813635998022478588658319928569529080159132380948307429467603208134855118679535810041197319373473681234143817835771829937760639301610749829591149639044804889202415605170155739424030304298201332373062297953000520675556626005348356523325486123740836016566174710494118456332286887974736279524928738708514363821659450055443912155819270096767563031539703924449077716411732857156757391451795112539238497136662422414719191634507000940836791214505115804076173717196920380387628818266243363067097438816661550436405743618486053854606935725089328177577597548583689637556122116155932092535494533974621030058824771725962013566715556565689861677066582902554068861523183959278842902457195647453779625149930443173822396561802155084177596232855143093279627679349268233457331031815282215137113249345250036886277550172520838082559483346437865233788114501777853753016425671861597863580534679023283991006911757023750126701159580043466827479516893936895311831999708472175018927059242574780920114670843088047256595306517015153450206817953021136214898784475112397469599533129885467305377827352727142028004243328675501490799857009843625201973802751288955183938221374527126762968801446387106746299437609836626899687148094683475304388326366658129115293084198728462656875026849813057625673253457078478344106265794692719823699129675734403133499315653443084910640876108593575131392898403935799145200976826188299603067732747308321089702186042480088760256626630042857756493454984104237899081907842455111941216519819832152231646767984727065789681301583306173692747755682735635546408744371132044309322461157021203491438297085600014035279434927177087553814053569505794168674908649065925509788264351964816722832047161859863798155209843666735807975650343354141828688500388544855836246615164774098489113995051836656081832517476602401885881491603005170947960615875380175950905949290906455607337934073324084425472609409319399129826142348572906159146353268310829683931312970615924151959891222760183035315630301020939087445849317184376759028436143548947268366982589599254971082008685922690141266098088379754861285914118727241496541849399166416012666120060327558722809432406392031815008086841813152193441964829414060860419305337206544235691596728917212938887058442895474692731333879766643272003158842959498604483350103187080323633950921428004016815939048452533548451633428477201649024962465306940673110916851229406619821973914579088691472911710875205419867448581907654084638968783441794837975577088300437490439758350272965866155760886418404034446263103954613239003687195711476937767429594866164973312101915742069225195118679632487078463110267860883012477640155032323773242019005920770842713755706210536585708924106850558011855573795939816395582008358495194160030507748228326818543939904768868252264472865608217594114982542747621317444090040094101340998099594550270100338953304133550947909144951625262497603399695274238993980408114894478936683865507455452202676566682797435605704278548438976544676282974304204794870257747244521983260075768917419955168686934074356015910049202941660058783797676987214373750945634727397349943816782832084012335715983540538742433868781822492627515309111422794345144814994953531375929141956141973516753482458479180534974226292110552358464993128511455019111229394310095788521132739185447742580898965034377695231667018203189799024883153875255777225769502152189582048651314598861440874100018352036812538128497920703676265177338700196734504986033263509564852416142419365506932002605551589625596221075906957320090276940457186471092804448708550516944617774233509363482655281052693768664473657783250620314853600913280154332140029441504065632493903136809093431570843125748740371435609507001992033335057999417020582297533795301954699533939027435531370200338627312000316804084633816431100159599236907166312875344151098662918447441078947208009065514746312771482659121850728063706139369626694251469909961991707877787233868963030771773596519190949417139181295148135896452813930255113699732205738770240240273940235394854340169315292975230744323470834389889523216983195190706576303085828848815908651157941078218940458614958237479662730048285726190966031265467563193971032308499474648219332715129522705829155547958087711894581744612221139896701884077620903274263570512671412252970456952136673748339303994628196774619367273013609938160642655404482582263856904656774922018428827639279839823225814939347097915781076581966653505003114678726985800613510957131671662328200124624655255267261246221248974946120387248108095238924691668972398306260261923737835432006420947470071133441402538070492590731452772501183705054331745754531493639913798371725637543726498852050760935200019003729012432155079780190719712013834018365439287557333900330411273841613743431475068225473144926532338401517137887541821334840847812675850001354505729984718514977994299757450678171065362598088502706572245841733266842712763257905643646977166860788773862684128205816733420140885870094514354551363034191137964108372718548127526587297057062176038318434306761905794782530082646689622244427238172110812698575725084776969959704679915430978166788433089182396500630974858647618106687029533619189748365093965844118204872438097791513329184781928034554883402641624345848383820402491026850159302023784096877867662488276983709171002874194070115458882079431921375087613801739638797558913613722167962840167447221984272911587706577546383883909591538472427932955213114540877535424427607237571074994856696935305090969342625065066833038082684087681940564512698794165989676075504351117510692446371368636257942767152301256612184360274919575783822651971634478406389993539888216383695073728417176745075763373136525567064915330082240355860659342566334218149129183024851749027126574888794424195908432281564580244587738761859732808408771217591531829921051684734735943460972480785838612898568251825206711620855173032899275578883310503194482922391941943744645255568824258907850848654606775498457632861306724521969113124391467626584310280690212128183930631186305246009816194171303040981414164184886818023776293473558979081703591709324199223307234205403886500338768358635532156390244297861244603437672330459342765337548299244789547416431737031237929080428890615980350559944722988780046977358989271003242768102335327722375290840676541436859593463037702333480070584478530082866362932450378788568597905743207276370131148469304573812012409917619871759620689098895804757509135124277943352618986801871813912345525114452185893760275199542085538647368527913438663740591878790618616996867097256330410093641689179351594401237020459638964275266469333897204384909006740721935325698055466280361561925238460692885444270093571661282598239950137531311844657617706425259468266755238916294965081199667046068379383631974401948973581545352547149746659571812999853301019552774208816743506483848939496202714058896666914859241475763232133923672722733234024719869528225809393533529061009914029363218465802832948798148498548190103924580869332919187239236816743511306036192424277381361756253381237998364456409237602303421582827340362001868836787244589714217940275573065790586953121902782969398332555292952089946046826085635560977080128370380946980554013384847102576276099219335232609880764980735571852009188969349022161984994761117671442358456215009385323350041884262286551529244768698282095015816192664611704554961283855069871234452585185981408502538381277591050134698542948410894139648395163198539639618763101223869878979796698902781443853216934054571620498974176854377809066028946353265259172790628625921500072169454936406286951153786492966611383239590997924548980922395649395107773527475474584051371476277796410437387352742129003278935911499828939917591052082818012065018913103676393119171376207042176241870115333251815091799042532166201450359047536688233922365773452048986244732384967612079268567206476867301415414389755384086664897245608550114975624913214544545590243397633599569002165216427898473579981538603553677254676899331781414656564994564581998769842887178325365668040282929592028267448737726510705921902892002900635825286388456211482971684972719381405772138803798331654276345379203677463786360311276756171459864140253459265726942958667717751333631998172949696500761273059073778021723221804424750301494775951913560294650868307767668641367225362140091447679430809298481816393247978707299163415942975160355660612788702810205214667184761908334797401935869536719563143837864257978010201582837560347394462952930098561035982647776901407433252890565001838018794715899372434068451113027950359315404002227070187483810635758512410369142628603445255259145886311092352291743948997588175442158150648326818727455880370182046578237452213570387911683018250103440847144080818357871751638302661169755542883335607636211704063729742548808429602967572567501441334131083630988826419382043206029299768927860730267963416703992987615591568991891095245586617928911629375614550784937888740879700388446862403973092680392801582454073483378800788272019804871817836907357301080326814786359668481610577765249821145535948049081241402635525536450720955176123922411455999968996189175183618525798393685050580323835196543438916922494612753335985736380023725604913071969394832874929665657700359024026475029161645626974448150126889354259197798977364097611223806723822059444420267628058096481855487700358723845619945549121318480523096876737207026020850560864248550348137957248576911455861845673040363611384264071138566690644189680204815131668082693805983433479297850393095691880346003135631845186835081082930796154835531686556759555889931914910533888375614529211667144725755958396179551641227427230694398181389335621885315726289395060466893896490475825193781090654943335270659932684893704125746016602590511958882389694553533547896386297827423484935605689139857914252098674043805915463594520430946067934466888386653681426901866022937602304696671327518300027231444671776578784293456124049737464456450720220697021765346023556122269226515787192079056094209957902051454824422922915676460484192068359898705518297192245205451242631411160224254974157419532973427211017533450742647701863565743749047882609750568715892647211074284960660689424728265747800338036438423250994416402283509649761147784095034285340337896059344471110742373336798471421535657009042327501392971035475916744543886742360960202117252680391790493602687378466907992384995619216786433544528401239912210001724928171366171878642249890094893659201199207916107696250381652190880187628275979139315347167310733567369716647044587443464718829434554069543486796000488541839696607161901279656967738588408972798845080839116208499033009756804029621400750607409645598293398073958191700715607653382515443163682056199327371777574643685014698972860074401711909328727645305678825350078817688538135407395973445737240432254300365606936388900596425303886131221242134036198356291570111506445035716742707135778992681995386222644555434200417327134277603660020556115970847633221656578749432088738688924244836637833824960653796741385683251172913574317750664154712252018810547871897385319761583192888160882955339187268549797092388317504244976711489573508334379209553708126471042352717887047342791616135988090371001557103626854296651464695686544874197487444043262563639047302241636412286716605572687980943800832191470521651930092887014820018879910143221629084977018895445690251874432746023249932566972008603524024398846253263783522864046355968168799822609409090549525800743205904206012360530927990105874765610121418714454363577382218835330298109224456053050461615027807953941694388948319145001974292175313882210378649724281800573740315867132604236166363848451987725485613610996833497029882263539849464571463022432187043813405903705550476200836761914935058923849606687007186931248960953296113987651194766929009909321292259512653701424244908180834123670360793677725757108169895389739932373614196805670181124659147471990176223463691713182331622203837679257604120771870146085039695561153188158627820835105373406099830583273971980356051030085627482902486115527613178448047501856574238097348704012115109839033771745825326672305975850389525341671595819916289868154876475235717282690497550036315315898860522338687708908352837913752320896809856568220557529473431801629217897349054981910046706599248082435322837581642891777170518885658436138602870597108942512592593704110058493414892698036596189690967240469683238416468748662432724527788383424415787171502712134031804868765184586322873447323966269542509072150713337841636369967790546463584972879924872158530362358205445725212319325242532257840274471605477542039643451989886447498718132126796325033675346189698836271980521978099714028816824203016567540902167869581924294280703370201026097906234810399954582047854426334042261348150802992524270810433716733592730157566016493356826820196886270066928260281826480581965563126041987916988635123400731170878200221706659906276471852308081286599764926037037036631390866728758244114456448651658585907954438329726213845530694407356791405883619599002554648031289020483459306884359551135042852939523519102927080422991145908046998518409137892283199063740708947710982198036961466553534231829092549883984063849948758725010884220535337953816880042026634286916197918219099331669874979852060047520911863710426913512747067267081626126526639924933784847287262099045347447562526355393816827669656010632069432146309236015358964103833832305226679227624528258945281685271996916987895859045345489890686689061156917377128600678201891923812243905144574718480870460574285893346562623511795532780845760283876851018208233866730351186472070499821555409006261048822235405639671380443603627191185323000951377290984924755769798461120729299263616010126211752990174328586529473760587661995344047299425259000411702378482282956853401544046601027343808486514317999617414489580496845331680462747341961309089594025334201000817435654735038665615741000628818064692094839795673311974811250522709094580950105109133182799538350616681313625603344535750707311205134137985686358023401082430593500387634244182678202162365562745286551787165596739563255768965977133781685772612467021939914143303845046523171320781081614580824058725436003480586754695435814335704483973368085303043597509421715493445178754009135635873452971094717795545571691420831447285774460756090709590883438366973541064441043024128183529613004557790593060625890218994004723259573460562092887425172461724209035369049565031827905402047401244382817747052090408125636533854201432863989302199149497365734441813357746998191153364985826457399902403335586994192426604961439507740451730446868332519324997637846017358967389571438927136922525950528148997832946302815667633179991768464222189484828118407955690421917946694171649299321758024302884492433460610630922122920908364916477930660747420208135274493548015936576171436613182831448594839176834103745651011883920463003793036146878164154544309526248498187519548198381323943106401629145549416391033097168141564796024062397609252328997235547023213739521701236626544054346713603120373454850970597922791668132525715109436963810506665516625048666055576781964987081599504986000670138396601342417857900657913935534834016579043081322852125368115186629983071365989980273862369891255488296267830894328656608392954001786655647065624347443747020888224400558661036294908571300768953965857682838191032979142849310125814346943994147683473849633949930207590047784905050796525420212319646484253982631371780841101395674428997628629089156962439915447353145555597602614097833209952583800811047721837391531824979642818988588424521361381802814165938633996607712661925083665115485257318838016576434542560404546065398134711046321979755516828530243898624317763422289959869372571485706273743217472170633329270703983583729426232409367892037869799035961202956039172770732562489148845618505096856039759443748899853794980184372257346437600689650727539326446832822222494246698570503956949178659112400411679427787645603378994173572683289610905122066462927218462738458012037380529723243233362256782419212698285432938585434756116406908130272569496694823454260488898321324906979778262843060633163690996569387225773060401850207083522922672025594062858926200011359263691760530505220384429642450813716728177147418759696593594447684869710054438662442340898274809945618229306293217043901452778330815713474232800132081696149869962036226008716428022635479242877707775653579853782970053623669030282916429870635197708614457354501776616735207502087532787420562584236431159120208516027945552366697745952048701742565637906373868258544867296831895184557476363485548852633955282346566326858511114700971532214437775786450765402369442620182931035433725027238808145862356159132615230222668522833823461302934915261571407425692133106332817017874157686324786752897594940400574800105604792792557406097621160965695728173212977476443570553373058422295470615915494584962138073256152880948356031983489661550658902498934269458358098261083048068336002695351152280237171579226048233998252722482501896695036315561238883795750970200533477116960218904522958758965743713258430656807611614994441293420168063010984709113873070505317613612445258497518630575054919255574555914715445801169627430428584283998183468537997383681501041057668185664171053402642854749209172980105737756730251304712765900503907024964643451431917878554822576078796487177820884862201524454833818309208365839334559799580703602826545693289131301208032244317683344679311170523496617231986920309238114270771565479195996009211085752775919630847212383748108621774947794583334318383379235064262481017523086994803868932227038729674395143297908132304550147790565082081176220926392875481971739713060142599974485902941178250711510351201643633989124625712527259680206312095192409525974534236278834345709696331993781069710588769601115313117286408484761877310826572365648500471905716605994595606176442070076902599228679972391824572264618309675587503777513949428906013260724628004261738806854261195278011581223115075863448646708597097517868710612888211836267020664702003962014769263995637892527335117748231059570534544804237332948182784090855150290223226490497741329837529431806173915813737411242758101636381704634182770403644258321546590428603804963956684968960608028639982082194510852276487856978872046488160017746759577513961873992446448849791312048760019408189425473639488088934784243822581735720862203957132576330132095846581812336045967848647155369392519700844400009768423967851650174307855029715903280663611770387561636417467629336236602806438333615553782474483238405196603475875295306472131002370132148595688303180425633094567129520506174069701974196286081486751227011809510881704093873289648858632061687769611967823065068261354584800181161780375929017728086752844203490868141741393926955929319592300633405318682639370011039544876112486688591573919832888050817217789888428617334310100018945190504145871798818483381791136103637844814683562224876637414316545682425233919828393069293432847341817425017075441415363109487115713375564541302329046136361401204101584817097193177089070463694994286535978419354750620359756844992654984257675156811842041290078840719542644438574338587619571508259415950051028898371007373920548743310626862710349279912460032540536470452242843488743060445352123209608632271231566096114156644823790278714585567852663117712298312707185683299569148732561814613285932726015576218696963636939207381854047037198435732519223657501713050523434135589119050576761657122503438183592469086199693367435573724360474091384798275862726262315601883026205644653868404065690920373416396847577079762109485992486668296069728188802791734391588410358403026612221103561174159166831867007353895008544210546865066238786461291274815745348125791454558806253310312339996364367954151700229005763161351455364764095897432999993880561175200387192774899343633426257269711889227815861541520718035424410556827292908160617488968023519960565342623844615057689979844102119359985989127487963223776601370408954449522487199005757865424788190911219294520365721714220818719163197000589444246314109764304487159565047465550060466034834307931905731760972667787741895565756217423660499881301332489663283180774726355951439753635628577463106040480649961068405686677850409028042352217915910469379514584445053077125022536390046274501551841398029633279037041092140333584746724818470726620256934750008353219010382521452892104433192104893400345221651629155344879244621530718195752579365473280530999582642576004989618139804602518698633432263111547738469914063270833107407115557183522293020716639063981630589732249740021125716991961193374197905994388626040790887570556322400415958732352404930085241223062081460679219852685673078276408021541693716288464940797104195559428947980525064915218790980282578100856505160673978831389461349024079901358912265680952553397822197374611769113964767663638070179604326989488710739994845963950025042551609461142030589305484033056743683113296656048649729720441561198734154131436075311126077776706022563371686923519183407344689900244453268310271047766270134867077495605679048376921667060115773745487122117921089191754877560595711739156232291495099660753500791430102079638751021553065195760796066866097237028047998235980671754257347744519803829602320092439622771320062541847154553410878824373147629405425859609721660515088201013833293539914261899568327009674052738351090854644942978701427679475871655125445923523408943769224643739218394761338251512763180193640761652748681132860667804755715412054288609786966822778086871392505013888621802332170852451528423255760668866719491275728494234671524309414621573735090659527802745076092171128187177920761879546981470835574320463391550302486555208703865407813861176170088917779108626177139068330598441140566477764407431460808484022841222910698637985349055972725739470488164436398138972798889122522467668497122629101941509884292747632028470603854983220197106077021879654708853402014475608057168358127981225238149222365642301561668668237054564348720944471079614317963607446074123279490524649412531572275179617428041908864213064039236310895146129106103288749183813961408957382641121137333687606400967262208339087339835397912574161981864062169195704051051771119302080745635084397439949795060385596388421178806558852532805667665177515295116512820607880111286524882456072384392627177246382844843680179891876368515451240715923367973248103033626035389622246318537043349023170981668509381224047738220785025938109347414787641623168802245779421939352496485043742705933755049778586182719950811261425193168662348832651357091601847481789840172044638534552616517204107428652527480026472759527230647865847911619178191194099715290262727572382368541056216245374128066903094058778653463965380909133358053432579731545939315965597269668979829764150215957903962310744574123224460106252115509502725195038089598037447907750605057180094534742129349268559711015678752699474899485750037615252997063629577514999219207847813861738658984288532197521506089718498192533317897590856562955695581110020945911429004302084321484461800149616173407754950621658038398562854290225382148304646524648520271863810855269484256479200994768243908004620383694420093413007884492741339537898554974349101668884401111834698125394020004434230447086802444953831950657246868835284270967682040422203219983022933856256247865373007299181870386305318576236164803891303136940156103693307578525670913115930646573137963176631455100214741452987850903489661506649011734116321196827691999873416310210972403723860571865402327374159933143450707490082656412163482986111227832522943996722943866870727270553603090435372309653328690181333056472399612871497815046204305717711911528056603389681736359768787371177014985860730743919896552442802439134474666831901979476722564651781938794019862268545639648053890503889266729852257662356350964272056744819589633928187365572723586777494683286412463341593067712694698018001694860912220246646579073969792993517820339366393628536641046425649673971515735643467086982754109606341905564677648838931698854847972678162740064798041095268288230781959350203186851889761080955056355171063785283067936306803945544542470152039922911297633653146520314804224947239945164135673771765583262843346220533902266871257720498920851346131262102372947855891316311245770326933254985092258911054153035600112606620780667894724918153111392298113232647079407282850949409675011634546596149409150160881779897481439177839187862410416523227429843365197436018654675199075439344668400830029765109703649740211846549502674810909601081309163919240294933760002393544236777600618888025761222824963740799514503324585238114369244331804971872824412203241107253763132695800542892831142375018473633946174145373425417320083428218901121625255538739965515665323771340383971021420211571868940660043927482465280285508214195688820084466204633487778189970580612132841465276529213941490780650435951345802333773169931918311823820101630203252029202350935432025863507997593961802111387143212831704732842501663993208916673247143990200692738346638672590168481625644904684784953914774937305074700100236567952298812586388971254526344093021473247807406158237543401154196867540166966406841448164625232682581525034379111499251454215175131603348189147205740636325779429795148321157578585606502055723082146979758017036710953380325099865186566777746246049441687307286738479739190016648213094154805062034987311844566186078525889739666828373721364483492282204554968472985541544848809069742270308167037443371870765199532357816467479151727607404193800979608065732473644025099949861925180970503709090925636740148084799904226561508897503208112120006049675644937478903432833467098289965588029862064030224862859225614037308381179832401662349750075240369672191720087092590514923036041850472678471521734230909844158668406097620091730401874865255135646183401730289265480127447329559389234028069484744409354526963380661446275036844652193210179948151904144872715878654035651964432286563904844375142566774362808226342211895033021106662841860692072058620355777784898642365232594220233892520413715842112528247731068309922872069377812545674822409395479897601766346276775249262173648378977354476257515236304532879972363805098247769105990160005493563745018940480426995593957787147333532060842869222829771272089125363250767123630309090006097680456920297470391309397732784488315963523809498651901090470571747927712511903778913632466997766120795767608583003879193537446986300918647768376702453107882969565286244287800832428233499417275795203576363921820436767308631076297744262172918125027958988114134075882645866480645878664919572852960708767900385830443345259549412414233846924255265188796464350267907460275388589872734256517664585014084196803345390068796899513450071551342192718891739228307424141299664756575217779809743778279207402352511647394905758874414495167932215108908886809144992975068847673006024493542374576246368138431800230533978726062178484220837188855039652884050058192618024775857048154703548860244325087177520055240146357400314762135693217737298623667919840881547156334685950258865940591122312675389551349438223686384564770439297077985916087351940819654847869008464146587209668786230916907962125646556006562923239870491687418093289391824392547731281040807275758627013726923654855399964171119212430557367396896494364324117952455749348323849116192705024714271186064404235293371486177721369314259887812047125382434774077552182412460221491862599379721467185748385161548081388657640679435143998666995219740309691144299950961960975971431378946281096150997112175979228814757091604175625597220484520906659504373118896435579142461611706825110908778400488684386584372625540608784954508723116333523472184728390524567041465906708269636410488099647119613091151627989922522796977872111909440502312289601506961155158593601766292036366675904397836930432400526063347357350704283930205006578876356863731622952103590999430908687922594852661430538081353053320580719888115527579080346261730189052899109420988191016292900701345145045101524042574048114224692465784057790710674095754969280131206952696078800208204567603045110844936286222918540804569192996427344133085121411845613546274352201855751992547057015397130344751506103196262291738562607503573189927472638782540397939414455010451968717723444939290298526668526173351333458338268005811252371274098909902599012345230048193457467674603255671580569227591855933109811811797923661757236503580746828321548534593813244550616877715493573678556735500041901482316693697147450015947847734336659411882745419202510788578417712444889095917160311826456979330135363140994342089575651278384835575304210665125698183482464945357119683641377007496807508993323058517518798422786181157417737760957489624146859270354432584942230976865532462705042786527232503080597736669002810109835279129314634200186277085070308767168019330522261103013154253715789931990902051857538842467112433965917760545627044726390054212734557481336003452217126598875714189801889805265317279995849736401475314230425902355655435249670659648154505389215455836152816420178945260181558214402208071606624562088442050775120767449871633595882245694584656415473483141426185237790392812001471232483330057919777567816558529675495859448262195880634816123784409609033009906755245488893953319760213052447656266756154613945556397080318041383616344172524536539320086838397057697227585012947980365672046671607315145499177665690532758460507176710648669820263557456600992334335939639654472358959833953029538244069342763879422351376798391704913723928967437581491444813963038201399785091451532685645263400823742591028124319782029391062799624250660470661945636422056128772741691873914563648272787641992913249314986485838092012709166728581295568786627518008951258949556198872149166846282599106084940976575092994395738274131357525211868051743238094028471529189580757779309851025973579331606278229943092740276164608144465969641829044406824508893494427675848600715570137513668762286907486239287917425745861817580980053153636444394034311349390153966078390098292700565585348987521060942137893970061990408522113902446014703334772045323904764985017815101043195160222702168567732546524025362351597912642041350718001178100654440722088950417505786930982647462687643312850197811400156516507521335458783032380713924433070292522202415554784641195701221141432530684749685198036151518339511326111740737824934627952755430047686695934483982157851740785493214495638297331490287788843399686037639434512767637437316765758785713459247374345004039805692314698565065576197923828756120251688789327389831684900129908440295472838339680468701100920512504907447146105503893031562281030267190985040288674572016108255395589281331627591454878403951037220405837485076960567197576106282655847084398140779158315877811519567590120391977103686971593423560376496099557362689634102080544268752406756432231609744060162810570230740019758747540978685429812876472322429846396758888264630816731730327790100804420978235571740364621046818396455833855697489407640446487401167038896253206760306333977954819045451144822429379152201579314426865884700389653513559107244885993238793559317641177057527686846713512658148472859678988314580771502243637325850426914234613202459508892194561514489255472842129812377124055801725886863754752507666384700508438291463727943796180457259303352305919371841850394556084395658394191696130585442071766311499524470108066378433485231093871502533778486183867275091462167007846263604627358616630340330408117423186144516670404507791972215257596384571293415970960130297519564615592115627221958510304877974144966226433745631935529697945812903988944831560460463452544994446454371570537144789437324572688355700480117295238166056658681450482395547373319714539063707421762602988420104014071931720367566018395193944376598520637667359497798286071808437377542055901625218756821965265725524934714577004826757163297373124429355024875388922648656019873057904535341299790394851795906272445057657464692367799670779011773712043616681342066364684117971856752346164132724233706781231183729522014060739740616752867538100907334769254524587755344250503941056658438349467453880331112548897788305259172537486435069016944978215444788878124869330862061083157108455085242024307174458819881793730045306009372646735196869366387564340745748450600110903387962330900524462022245667588796916969568950241409525508522389805526354500478166124368313872230480207251010572763762072044336243956606883807847806587552989963421705469939242961014144845167634263774507194592584815305962458475994417562481780458372071536339183083920163204153052928116154863891899501228835983822622129768353119960502323362237717216862961284495816084726068000577829108250272323442001233927975712272460955847888797239057053474197800471829552374204417316363605674216329050891688481217930100438105110213449653975961583145108608451614930353435810118334507082719398176475312766338434736402723180817566529517086413236682508324048954290569478263055237248061052017069830277600600979098110609410550810070911888267874494292406324178821735587898734191050308507664419717606883764830625799420033965180348844877665394033073599922318012590330780623758057593925162867956061120536473556432967672766280427068419340309702149650574753072086207372426531656591887785502937213871437373122456860548058362290933263439540611167953365079150267167398290600241088242771341844277314252724977552176026677037203011084802863657574358616852740099554890510070086801451290025613472997801156410537676180964824421083846874116551454137874567500447921986831094405353453295578939089703305673549201959276337110484771873580307183893928917007675537109060102892929972580946628415728968857204782472896129464739220456687710747922181945087288964608875680535638833854204967380501398321647457924408773896234879535268670015375051838657368709010001014120915734006775584753880295029797001166978124216201818069623773907023008884233510685607664958357993163917827159062617158305380444396800675280070641936763906870952013474652991377027479796372455059311160375742081944117323658250305301700982121524832836148322543398390370779882045999350536246996072249562942384383524385492667253068039356491839850408989160994992361432622931922820380674347337312644599554575414717301280848546120287067501164421783977912759846376910694385132741730844738419347327053210578497910872107617210382427676229196225769785260159513772355684220557312152192129369085701334404806178444578249613759980794220241924206151734761229804986317419644573850956328973049916285462877470683871729061765109331216371288207930785584342590141278060464720561097389924656391266558456558215639189027045066807266772693518378679719760294633751465247171813815247302916766423216626621493280720405552176236326922683129875487248937222122995399162076610677736595562899189200364922125322103310154366803281842276813007795366395631849567037974673599655848996080612770138941178794856316775957622320245885665208070384166802660595671283285264090036774594034938138373187221812200958245379058297878856429103910925567425095766845663011610369302142116191433674863589928772378683082785819868563056814080828224774157590051619071719780872978354743311216311104231182942036221353183814352965840060422528906309795672301392047586745735938650599184048406350991444443148724471344618653515650086861998908926111457127529897469285314288783560159246463225696898757791694974127276265658590092371739325591272248553090360790601194126561636812568767487030835390164563786803262845486621212885373021237841946292827544814203159019038385691460243978099192885560272124416365588774435627690367190634666172755550348632730943147942230174882155756392054644964197414100588056162192037175016662253953100204859241580395811085437327461931779701621110387507221462119437811215771159853878468979822691765977547691501602606371590695480322272516854218523239312549564966521195503000932228269561402514316079224387752319079139501792446894012208044382908277789133592400752637161331543328888315718897953553540564297605529835622384365993336032104231312576914200778550334223845503936509568320257089516008185603451674365066866873779687816063430610761483982954599039993584113270765603806194212615655759279754300092055657626176664701911680285918881251862851255009490537486115414350211276859934190849944324003400838322976651826990139013438227418220221461464532932432412510837314591227833135893233725848240492838454903547173935116727049500867889486332235354073486980454483298899028793721308160930150078852804812165937502296656110166252424524348595466884694120551077817744834006415693957290124287512381613758968026593982574401108208289174986254333139829242586407585947362918645594203184415779779433573668284343033648520304080124691876703404984837897273956879592077090884336410291103093405947894679526132619198612176587630407802607528598584894905142006070862896400272143519502518952426626131089394575695901829873282233428324146860487031054596541193246133775377975802570113319187417537316272784348974317927155365714466474821424797885700161120260108939333805952948444308693546207603370099186385729746994590312446962853489763627736151864106730834357230975539505563359157930096417021631192700263508854943923783176933656180269853267168843459196773622537053727574677419273261538268441811094028881330760683809471860613420908193482260960155664406894326179073411855395975181914827720074778065706761343746498393213751764948585405475133642165913944041682667315435395492846324336491062975321046986742683164426550226442783475021169923862904099394696279688149787677134466148651767680886361632387983477041920320278057907883409909002993695917361806701383630132491129545888819918299965099347143168125797979043878178740391501341328313506411290105015808602021639883864062962536659135464684235183981376238451169384709073331552040151905470588028997551056209480701507653050808251989054543667163477375621990660274878965348226811864595752990330357152304777117075318034580585154878428368608847497233274308764483167352900825663407085803434692644747171711234471052344658957738905757099923589338675926393801662221023072547565523111986680200128764024003892927530619324300317899699513409687816841233927171317081611295314944728558187018001249149947403733551092386773235094863288086572799345036138458419197741242263502366918594282868942138874703235235582738411616949086357634772173675472711978063258132542082635933093967351896404352975564065602826653978052718940624501299078725681734628560770597670355095279299157964084427515077375040050958185425374850309426081480126212485467621979330703861405370330092243818234243794386649523405310211252827016382785369996746260578098081459198734332696737061064159606193777976606905908531412351201914788820339045644895025679980352460104491354827972761651545783853172560432873732142319349022884130255482172237492566970239957306528340299666773213586829597440667952000434900623750591936667806351929722412477380323914321706285434954957826336049986012983326474514223529107782177343655646836075797337976918279862829364578975204782464520567510970702510767198002679014684953316007695376102114948003345701590794385475822360907627347738102989767667237683211169805873999160500539323436314020066042661583053090127272882042957483701370353318044721783733657440384474945004783733414314772774505273099054963311981925123110302774894038527604247818334989577846768734661829504523843177801026520823520971056838381991782577612230964193609578977752447347671759676215891185926914863376645193690754081272963658445024904851608784101920508298421405460832000291153995679724902707696876617978214604782641887125666865868551180226779063639881132820350044212541210277440246688989034756042111966710488540076901678081947111372719582583875924023229506010158823381186701724880895795832733348912098009187755467575078498578770220414179278837256543790435900935402844816961309218741138699808131733148759468342395028049376547230426902966328440105876786726576404338997664253503867664175512218463539297670332176063832347098902058767988395570943145252611711554192151427661881112835853654234286578098682329262103473963467255683465819577213808456803448961308266289171240005581880094886108227250871233220030432700521258454420187850475264846040248054675398803471938352152700903069215215624916767984915748228042287148022226882688861545480206682924966624486179921980405682565856185973641937144127288128963203859130987345942097236972555765286877393846975429704067922845103152376694021752375009307628706331909534592896635482639575316397075823934959865292725315070605401150593072753756420904889686850481321405243181874126951838592589017333773561754920727564374685404313206043368285487098044014184410658898745385596838357321881774553326765452202361137788701768846420724503197393216730525087894454150879635141444879237326360375499212529252096625260093572643752260408349262507052971261818267034380176726288592147518331196484225534918433291027733203618362514580502301956718538698936920872266548453752962987289528856240023375921834834798053498320348450560192086892120245566720250611927955798248955492002276153998985527752284975922460126794744345874211319274420815829238614830281010809469895209917446958290227822902738158254773573353236267767076823772791400222886592579494302070806001403849610738790176272621686995160738968402687361614864321044429461950254758558417415986387332168943223555150936178701092595040803964693267015311952703693947806734952292045851701508968011817591638082906628412724703624487716753677766456977544802446686581653184071977466105359540927568650932199276820802157794269298228050616623238676666838582643844949291511803275592089650609667009765727893134737060370500784337384957518748499080451038594902726557052697472307089657390223632859205042457967750887763052863803618386428606239718590142068794231391436713013329443298030871287150048251589526218468885720046126607082951854756594047442829264447838160081228913239686485187680464058033439961085429974268862125461400930097082564230124339522248829341466049300852974303403660125953099525698516881848521015616802430710972472282222413531293930757507923165622210383335484425291220029619250188144153367406416927606244623835798503841204793669813055411585088440429378392337808413245606922444272076212433739647092531813154276791140287906041776828248069186204407009824499756060087086008485079853827252840357449202719813780331936528933495085052524607002474294120381322302025981163235025877648987460362640750628158634021812487165588545702644050050660379942027478760276073196986377921309402325969600338457528810911410533822653666850918268160114560367648820065765514280826225492518232592753352742381477528808116715238332204680749276603107827621977817668924746912938719000436603652204920930033224475242337958564764136948662211812764454178673680442605849217753804025967837667601953615432658633064031757270476450476481253210821557727945478827354894359997498318467453289156404151991985566012569856726981045910680148280568680498921593472033301008761615307331189427078500430245377055929312351497887235840641248558472739239375291762049179857562195279618234372561794969968297907470922269605728275388934069764403578898904088875581791797085663067088713523706093987438566230169236458977443941516811355106495377372127726259713263850868872196307851599076895408812634958046624105100426916653002644981185263566229193744051436011803499997857647778065045136714378655656275720906114380303030710800766713135438714743490915448487043124320559549375710146380493343450754817062439994429188671297686501862267941926460861873631647463787102577795784755462412271942405327809836480825092597702578415505038771721699922192012656047812403797745934584106010799087825809738120200813465055877700460061002063608825643131130732195853931747542065572393282954453036271600789428013327148074033998306041684335564947004336177999192292156136205026883956965412540933708360297546243433853593205579752289048687558377578065552530002701982941616041546195818892304341774804794991115207635722945948861834178047137899074838169666326991335540390069276293233535373977435619554878536484706587183510439163117998695098834441374081305363279093713158829538453027883671636357368774984375213078999670204145159977534726259298462004889634029386599900909139295181507010378643295922913979776334035014650491754026489003328401582881436812897857886535502927194944828084264288845484123127312317709518307495134183935769211882321381365955688262716521223163736434927431948112622033285790575258322638702791153981550849146795349385869759617959111091567182050697179720238612296186850590715369948217972263467307530445272084063994075427176329730488743593518937864092626895771850240181919282510432794759833980322563216994127921406894375080496761286284331948649677034497310199244756186598805568335916031561091578518423124198106991195340214734370358814032584024158250780067166135282654733490963817634958146486328198372302726829354385663308562448225677406974753413730047524684715449330908125889212482001315254464590342314138731039749769731082903547631771991026209627084056360963143412108208460237855171781160427010543291105974230603671809987854603705717629433051335842764983170384893385400939511373540045937829291694515157904337500580015915153019944409933397173490656308844285442769778388142718412770337676104535444722288801182763857661654910216112729094923902534834440757172638817660214798337743442445761037393160346890532432458054440579667942918434378288494560650553864403928550008409701294724173149272477875656801475749345719847727545679506671528295424735797651887799673954419272143925252032266205031645173571164465383271773578071665776565005253884946127901459905297629562838870538274647540701998933296463933343045749872783146414633337226841570255626715081563538181539062547891349177573384196816684042682791563697946512532606142884855969872139219350195258330296044963263541621198161366996919500329644627937322931558606253383756429739508471447242791044078471537997197639885271113841427733095634996154327139075602711514099139163873711664565085679493790388357113012422463408847519722740956065049684110661658223599249322489324207015901689003790488593042377175271203588153491628630721517911146824175449065474340718088530461182165737509980628203554057135224506197593991111400078863845439211063036206004712198486581324317244245989426296113803514268452842541040386447654037726801366392054277781879371473697158095091172481528107670002396891303343081360991153182498825872436576324761422135328010680869116359075088273723585318923130158582627208698456287967141472207325872741595411672750955277342076395195553742219426227727529780114789781157402259472838000993172466586956519237266692051743463783138911423792078321650560904573150732519225858013533288938798190587192454091940684049021444985829005536071981141551331795986848996533065695796161552089314857457498535931269840324098268431004125538277352282429078691174056641203420823634676364481747904779531907036920586987152374461000493535091385091780718893751090871272223763012305732260574476856835722627644678757103405743544928417142284850007933305227235882462076328825920675979704690095135749333970289972656542207709442756212665629608512963215130035736955995770097899842495455080950820304822536377595237996520824066478774743773745171699527899236148304981953650564845905906960173948786384627834649144454680033562351833998470805425477089617387127908484568082007655424519808137610718454519068995458147725251652465128129573085559434303387544064429792715621103117223469189758262372611214250958634696444978953208334634855168057301647784004689779508482224432170171920626364298300742803058372755683141702269608064226417869652400778423689069592743529366449944454097481450044295007514271123405807904605590856045364131717234893685528032984781109654954116933157367762994463445916189976516502014646267809248254038667287057743077260508351352474901532595426891646841807566503807265458811906870452334997191968071479183731008780316976908967097074947284612946784136030914427872094988667435579674828895128151977705029403418490814637259000925683192915158906556482922556813775911450240266108420325562816390595666365554285014142112911272984907711319704534135770600069907934888251042416377347739258113104511729720105194481671697727718252302218130940625393812555310506433660652107927064148931989047849093926782205709920074726145568370704273407626247346513610017570156935605977263410058373082006484774580196719541393490186041751521962667302498778408355048265239794613580224818706247746241120805113251892065325360902153118386581159784921407229632557512933800094674362866004792914466508466634686082999914252242323952777979451322053031011437454317848361405555940439358019984729260937007648702934729799226621073466349792568963572327531177845518854806181395299012388039340428638749241730424483689950940899400304374555634646716695097571335116572660510480778559863901907331926144690549357350313212885853811436354629253293911285029095540536492101210940838594245601200897177224811237810095422956368502140098707089513420170348919387335690617097025176017658025585559757950583630033909629349111262674075140165611969449960453686472514395173667221342223194874386475840960040701184641854613975794399691077141302620546924213938530787930441961494265992511662031713270019456420105282898322678091365502100868982273139897130698952775647638288243158946928504258232991882372729908421132494623517266493606721075287104920079908586223161343118881150606551659250264274398665228253821550022530905957984004286138310756367833362627518384987350609506531141236785758163430506525239333655869744814382932306382477287420812456696663159680050858970164650925285319586635148846750700211211797769071403623100499498885684199318518100228425740419303390928423896859964180092179673725213918167492708286247156446941627486945502419109848976673090798096768215032347761415498625764783280752431761990083873868783329978752344595755465072075252601401089951461958191950363302557454545482459059267379775175523356940423919508819673323498213928024179548955806898771014150561312887517995487778009478130622995231290528896324241164461387102755406043017722084121843258817121515380438441714562254398065462202082189830023847597310939817922655212102248202719086672479007669043256374477499934267745252552900240002997871737245021155500945868816499793901168115403859160460798794760436174588529924597425351448870213001294993350274964673042167735238737117383740129013034464476249838770986322778897859512539807922240970812319342917238745275236772194531867588851102638439636598107717024098891654394559368446530124186436036438317167650044616356413151430782662911855161874610799441556164246587226404176441179506351834492067411364362398152738206662998620138908502549654774716917312863183224901686731306897749841074537206137412457822704079429310601980943995588534866182121035549776349003725874832369471393970645031191563930433822694601879790246336678187307195490640563279390384604291439792635285768194835125250624366937350031752018397572333020801586676897295633874450473348651060057830899513483969057317152502128970862356193399977593978853485519214271044213808771452267651281708571918960814726579828618730131611634193706799044254353763910210778738072780247007395380004751364860881148173882503610125870132615936934272109376286435347546701615008241445806117887173466277702226597353562629497669767371379665161416151366807235171324682226408690448046251542114515346672992594613822422128607003637664733193320754913583933045596957478016344142150827738894624780601479857035306682937933680461463217561529200179651047036484858856203431965144966143658606353559851299698787619309669521939130732411821877001572663668621220745305824187570327195845104239400217820347669535931861663753639665650785266062848845858119096737322994308824716101239519039601348986408145299334956376916339898268772382988215778584754900228297176705795830314781330674998625670027286977298043221940959752489709832530898345096993250765199122380726866350582044221732920065434367929654827630492754369566315269873826986410716298857948163172622186450427584049575161606440834935426318260014654019724360917973358771197190713501919301989076864081650773203114781084393491977424182668346612633465813505832976324360041212165462577665167181405192986463066315563366013630580549451942708309715978093469540774649119495980646751979545703266357194856579765019703830153461438386187280581340942587657728426748267325430574948869303379875737732388818366797641023978804225831522151509809185852406807316285287325231809392176909077766402026140217119557261953962018863114269991344780464319530415689989876247359118541386899524560562409085981205590399167042921124932349008719707896904500836786090412119823538817434787105519056290398652850515804853234791264375791000001172735885602975735298205846665321553719339257914463490758853022059873468997477283775191051487957379818726519400523529203416082532934820625943806055164765584716145168660774565047563492559149606185860548765643387875348948301256778752546297964743296292557115988168618002624631900934531361993026628089744716373456079174976303421738513648847984314589848254762026994089824759201761746800948428222548529530615104069495832984824060434022532902054674949412094099276781189160151109261812531749157131238054061205063331058649038724816447316117902145476365526275125065719626753569650676302815441184810082758810680588900542478212424199320085171491919145751953874254682027819466721528374204741009945730240563629575589258374691067790071306256893753306852441575104125684382326753553669318947111915461926091994465746806010197175323374584117175146170869459723122247461728447865261393195945055705756738801619888106643204298441987044679088073168701038627949761524439435102910982007217905118178430038853957238641166867647096585453316945135205687198494935469530402979680487039140559029652611479658296338185275344530921634704661787965755260981405588322089907932065367437926398156752658753794260335257194369050160177801501917994689470078392543348139026264000247085510783224259914889363400999898997496310599924890418698194479515944215673427902739083654507387460454389272161679793320176354951505828565244403764530064416677482337161637927383639999033892012520446032553987641466088678902804792269500273483407592935142159307562858672320931832471149772320532613398801007774554729247146626018457319504487238935723963086022114445457906203625079682910320844518002875671088698902783162022381381759345528001801637440357752913878646501110811017916267083637862094356811225105366756700172764341095419738835387788661154003253248119593459262947094718374902383738993382240393566460756561375430321928267078039342475988228800676027410445279972385236166594167201839701217968095531714207055181781790343259314549580203769063277014987333305803793128682517446805446677210194788217252116067436089383120076192804909455502804876220596383852718593991884037773818160664580897798039967996587674600125720954910662620972977326485384259860695120579074235312875696034783068005113625387417034182501411585793218009558231094415302651878739164454502831419934454624218219163373431546124233466222126462002552117216872960048246094781237293537011029672488813776477965371149593151668995724727443924726477055632029805700301687239271235606947197405939865266844868530616360453756343363690928783314065357355343563338724343698330327760037541875801212697935151854157873693526900553537315657356742485848094308318462614161835292972567088064120556946722212218172964885770271933460801347121758578966312565111300533203882748394405289566416668419628377768357881125840634693978277508686616220218909506548642411110123474189613199284925565709342855006513147163907662234208283774345677701344359437461107580355200357324588731009063597272086476734046929090818809849934732403262283150366500546980615909818759203953975139114155042210659277487096884121519600190380758400941702061546880519503627322657661786636167889784833895505125506736326410607668534722055535281254426494304554169901092575596297461735217741568870907459727905341926079758205419422702814310813069751521920553653096866160308883336332144482971841196837069526575540501838944130617342820171852166635076137383529013843596542029060399121298357431757166866492261801803988731849849691652279110597515217626556493827370092917959705560566932985047315191992926027432037063882594688457182627076343677719968126407666143570343654719453862573341473316355979005223246909747076170887443304468628183942679042244985420850003666867162937645316736202984096587191149244654605291778836369454985031271974570827193186388365234310832328478844230142199840948444653861532231978680857758094618132531977570361114176242693236430659659671370529008153270575493274693097969047558118821822639905624142993230378400492359484281903596649553638042303518732807874652946016738221695098658028644897081098616676927859452167202240870542510242855126124422904613556355836339212148520407660385106428557571374288529698907221187096659585374529985685884034759371600011305876579293636444062985281951402964291402531094798993177567224571907708912318793185273171134154357661756614686525761143223784926372672464171537445921636206742277422237264217807272072245770032152076999721249675728233623243208430223545007337148433326779479879973067103181486687127574838237404718775031420022032271357239703751803535017018558483469967718430617669040476207370173724850291292564471674638774406285041720967696774982376249118960710388979442370540303214239359850734745970969949012691567815508444638116904261305890953140652885610616087109866100342331728843290018866227634971611425284337346770339755916252216889405640836181655182856177025748925012545840900988801759341933195603941567311965422253458841342828636958017866509512260943632892724373666658590806150832414199568515460100364741292145672019628302146374966702593550380665123917370308150783649304082504027542042008919156986015857702667708177563255383819169242477668863014287907728335289501613594653351062194260077294335932604752742327861010609494123738102394499735627082888303658433873686902223190532356637684284155073222709199160306366791595868640947639757180781512776752483324551913383646362572467086173149737782181842083681349531545812729710410259533781932438649151835936684744248943019002216113445835596814827014093628059718437133747322969253878241137980537459642149601471542292698176173447404451326799973975044148718074886400379916160719966518026637335617773274439640320891595744289944521357206451534150658289536234242638317181022208905974966995070458505948218485347385568543311869251646978575887587127883288409278468486478936828559123107143889955930287149987244141732927219600270179494413470189604783324209151567344341738234030190270659879236071442696329880522347074480880840516383737216786428857864664995531743474205918995049938259357819723664035467746920486510319753453543017783202831769219085204231563246161621308766407984785053689284078584042451043706167959891941014554799551190844330890337523682578780773225222369102241559612683156189931673044452130149039857233782027561368849984031955968752076882493959387312725948029325767639682516852631334370681462776892173688413700782389941597869403321012379081441960644398760774919153935344148478284862545598056258295038570687775474255407210413593910219494113275123822711946981188509865646153575856122064994011130175698571022017614443804586169456527548613211030137064398054500339422454169629154963778788299481120367248867069262480091630540321765287362310859779422295028102542778768977647528799345650068477745056741702072541940308118885297442919675188670922165379781306899700356490888790533561768122631780148024548953439281719601142840322580660090822246095605634607291810124615794689670846032811586190777868314589521470757568475593500190730831344561503359864948455251729785121186762501011871418946435084218733992830982016794789465944450895414249015967280191885143645187805883418373658343786051228536690739018472733709357583098350430265081061663170945537023114182022183142722114233699164812233251227167611566525536710533943361390267354308218481256539897040603326414283805048992087123500814626968201149744208928942214550223784631844626986881556024597345882199787713315670484531771038288620314996045509032045780927668583144395218799531789823372600652213243166881320944554521724028780078299620391100383454173552075669370617851003547258605852795616920493260596297858753166873053835668156548638116082343227396462439115565640731210837631386791515684429204336879849285057389442757336053155954402459657998075395062690184882206070000771807750801160397300642388879923999786159004434163675425013635731532854989092077368230172570377482208371941606739689107847640965943291534580530826193413755680231402481008275333685919637609747098758560848132637261436499247727088576952015447146009541311149008571927703773916386353698692208489063378274969776554015430579423099455751571949294621921440321452653883884333865074610385125920623404793369050990584864094311451292993190546717886717546048495116214575279562198358370184606598308558745765502144989220922669904725473049086886693670648607280290096304163473872119337545362916652616504503803297614238044416734754369353302668480596863604268845119385576258211299685307785991464762888904807363025804070796267111638161682518903503422761426763118699289579819200269147554563119593038470482323293623893724839987054233150537494953911400974552527637126866991502346083163724961741810114812400259303723742656170028089745645854321337028461039811914507132345900138269153650200085927101929699890568125413240601540593485163644181531449337391561050141528199610380225488330212064782811919872070055792977211649329925872324271166566745319643190142934129223596530975922695437865676514474517801382323811673405513058238266487332052057128119558830267684320665619303480162309533456350938916072282406774945871804289161537382890732463169340832578675160842658735840422664963033469462970888379733287910906935100688557618499314325087528959229469679116107662074510906262982732601572491924600552959372598637583533475294546723061690100456839875625972734309284747602559569409207728423157143319911108126850840900851202962350948559625245492878626582419551301749253195884405926411936723688401990704731055279055123955659721304441233012469821537909793726945934573595194384284407253245648849397923269882157985572648014362674729888340557130064068767809899166201513598863060309270770586038092134565511555659912164613748496112410665364388306210500644524467984427623475204765368630167647123820909601772865894065033064026944903806949559659950008468327827393526440951074272857323224618023629313188177910640899968660564241062891867593822550855105500070379521948507069037536089474493033438395408885646268928534433782925039335096904739901348854761508579980525832159863886196058587193405898791930997209212031819477901412028810279621683966406447517723891192256018547699695617188176906967308854473843506428820071322303269078127452811854138624834559406535945555000938028642130183304860529905596823165223431597645200808302410318239775617594428270056760944727710344570098235670503788564551711862852891127227433717048774365442600226410908534753511609231314824621432921855114669970965297964974760761520704190845161603061877178573253100296703124783219258353991493400451652125519456456252926918574763845780690581260212008993059332024691431133010039896710555475008225680082193527453475354602054065614501689737046020163931493519537100506524391147382102620694905175416240512547530066492474650195832579405572984143956844017942394836850893061163553544771600713660072224894840210246918126728584797316902881192392967728926394552343792879716663374726557010046052697870636756608192964511876341993525068090750772989691366069768660909271880654316080126525940574849924242247878934140385626760577445738892973092567611892949532868980622805680727200310712894279020233568190300527718909680128840935885754109576701597594548137499347306899681951442287242618930255011341446837052647664945397043447545673948462990350028142429455919742426635873549835372014268825249346861757089965291165864895994539258676610183453864718571931187668970926318485628283794750001962719973366325496088646470809836958737227003771277878901044639585136528713556041836588959943650522765414068858749078898923139316992869974699368913887318148128719425004876050895109954801495325869686950822127903909341596862011944204763934967879089197642269184891154409521861393517520005999775115026201655384412191098574158893090950920896087360390569725404401462140010200123983866916671575333449160731538923647796786376810946465798289514157746142373967713096538021687940737813060238131996563520231864466046771141512514602736768373116379993548758123027059007652505220839576021582387533280841360272164106298465003654465435282637256616716650121356270947627476386211839503626321579892523281537568051188425116653418932742196268589388525655625118812824455678388469799612195330307145408012506238008774617663698705889261883247108841877935627731378536894674041598180599339577309645802139692649318053352935061707996708765564367515790357332473102685029601478934793263600556088584844857575843837899506448014873309785340128436937399698780801130347237583146077309101728667485463582484119034446963055487232795583566147448320994645013365778810180383788985448072502574305674336137866435518173960550840838886097372094929955571732272553623721451998355695167244696364026508203768080934826339318204905765620512653053513368389761461970259163511183552702030427881567457136128827836257428318901406861821422093893947968358382320848374855060304684091474321557240891379614466981355562366511179010171484818546865683777276363275745031270924291857566830534681496246831626097552980315244757410739106752382245468379968273922973161357857892760013612393694754676493500330616137760895769285199656485112529813027320562399732724214957472364497571282684224907944464062091092146531436203263396313359222925216307584676236014760033237836212264174149812633794553581276948515977054263734220402384905916173608776902579790615997365986649686302409484260308216834271143630210051198376222348820170954904795502868419887441562379009854487391640972448574079162601906189308113855577547656560307954936381971222901753782485739598328858486748757682031566786382068561641851534798467022292874991892205345454039577540179889704340849661003674537368624250317513894067606637579322177801822801671943416669710968084505148355331778229391843492479464900303812470309681655498385338942792134521046601894029184598916627634680446165663590479544365823771194212042727461954544393070806838559291205315825945411063701820111967780310932868297668737370743530277078225185920212414132040241980897767358406385947018815536251757045999508930633260610689077011085249882490460406258748040286048264369166397204936470234012164901406371698754937868324704875462784657941406774845398309406711910179624260441448376860806627559496938584379739672558989356738895310427736110390351125789044750631252941351888686353722444135467689385672224955481406092675511171648161149631319011578380283722097630601690981758983779468284457242986503397721214886513595809610247663147629984770274509227750378421233539575010377641765431437138867088655049849166393520267281134145653864442730608930357196741971133261490317491944428119599116353296159636247941373085856408332888522340834030119216706263619310342046417788274368655906899563440742581143689526017906703459913108173286586933088014304943391409633248658308815838622986844307883195856256007684519911719377644322373681042916066291421907398497230981928911541178195517659230419911727848051679925367977823675737307109230665470772026977997474920441854676314746515253783399767113365011039566254689752848959506661682510759586238755465329705890252153106285107088514081357915229005575729565122854737344065404378985647232895807716123377196477720637070788664102129056572087121766754614047226825104881174042309972654017366257299809136913617747652734100215276750547046625934481508146956660634316369033474561097426513094239349474906005794084735355518141362354228138429280947104001873113175201625661705231691559302640403887267203660441258581764594797451467287962079464887869923204293599046670175389056782028951457054960088998732641630596442607532083325376799320781482690320360942559707419590157675945567132884139643435364419622266541750467301721101285104301345643969284245788242741872011273632807887243000165273023730739545651279038909825577364139245952140391523218483767567469769399647504448482485532506493588198430860501664296850169961173371360841933826970219927890320681573547448280679557885062405675890500064460032478848518054346210876994634762060528638231319824746956842333553359906531907056804233171302165515004038186833988929393851219084744052295138370155238564093818198165328567185012423105666577295276280251495853360833254412972331848417049288752450619255528990795952253825969973225761498968989475594598835223821085518875522970494601919211499752869099432241435622033535662124290596710720282733196339886021578081049156966399617200129402028059818121819690969606615517920445017597371965368947071768046883268576450351456068608868439781174017403732560976527471585077980226633199598290703104512471842058051636444791757581424745030783743402007087568865464663164701135223089194554081705688060601445264889581040676026131490289823863315890739471874316161102235898713873328844107228913969109463582706888108818185229281632854791899697136994417377727467193409918009829182799566845806814928044832105715321998852481756877562241677350981833602074531910204646412027179155816463128851012362519761971453561474049545402814682873151580723127473343288280789598782010600780658337014937457653361065136892584778599713679525336058972824029695484021069157147375678257405049479005951387275168018713906193662588885788904230057565109026640801642892453538790620509194517479104877924087846420103141222180496364854155894740915749935403565291106786842213741864755172515335630108618144198450741206015246933959184172438472251028066642424119796168492615670787459675072806748470580308725811870888492033232202507266682622025200712655382635056735675096271020475036712897510438241644525290255785202818783886221618681408179811233672740376354558761884072743140369752004412025112217470470595897406600500402823128703623879203115013603848147795105326195484657827830497507410828364193375929259703870126485757486321743479038938337795328166298430860596903281945838299060059686077871150674758924474724124270869415796399525039134182081494758101493017851965917667992543281012857681129683204256249994184251846540361015085276322851783816414371288522725301255792267340933694226118059882377317872907384213437253232121227905682592649501030169264928401904818765203937539537304925877059447233195047341352768867140774017254353644434953813719177992640264059130319812760407578814045183919577672755599775874350443954985516792497202428822640132581078202354276560352385171561395555970712985699024346598907054475849802816356968174629471879591055123497631941729876547322197138815633598108611947747107113809908876938940365825635652701623197626872970192115837161197617262689348959682094630331785154650888044296364420357310497139282465294702322920786745877426752653945832920494068986899712090898806704975305377890894761763093155075733129048234078542940366265112737134750979687251650577777332363264340129653877595405955791795130657775678278542623926122400314471036388412656482842365926649173660659549634225102600619120269711256370357539295598097059887652083018507890119793898364932962441155221456900704762438554442063242031709963812268178575669412550737987069185978961299097880667695088547882746439454999706219347838663507157489282901505803535203515378978946775976230798880233729959910562458086264620213365679449845548114252165809358618548823612605967389086449427387677640725208013226469108682880498371655706178123350623489103166652831599124901116305958300441156813087687922184000849778395021264248609408042066557382094980692404476147284733203030547582734383383971690197221756601565793613449806575645600347482766046428508196265315393012301989543756458523072392344712290153210608216990343961454054189130842585032963531430536019779492752130309550750977440209393481665895794324360465164018574159521817005091179528886276214785831117600861419774693510648555364009384177241348479231549739399630195417241513314923106870020418273529990110360280631655823353863069535096224297603108143015191132451913048637081958654819280577946517099271395956650773047412024206966013076595939600249273362482422156805476710011331518333721712875997631712598805349551009918599001354746184638611007566662365930613996678039377001552755534400853169713771165247093174028773052551976585192854240262502522421839365029903658546950606654973203052487560225758330879157769051259963996648323789577888745235055839413300917732166243115542167095812672396110410649298336561359754817979025059366789507850245498282331129034253539458206694456975017884754583758636322046310493936873558411209113100881102299958895704207517637685906631617496990344593755929513832195857792837874361137025886723954253966239882333713293771508792436613274027612140183540717068782748683668575286931386347588349704537677026197517260748596929725857722487962579756394390516054146242744214313944584268992437264965984847408769092390736109821529112677553416707965776567713710191245630991753057157487720060267126659583492134171830031184309849335332348607977239595853673503407162467219440951885858651640239749694337160789368623657085254569954209178715912265544508667942581879219873278000653057983184808339896871165807154360477962076615671177893086370544606989375663647661699239830641691384986077640683966223086811931006752458647869660122693754364233224197338034604460844890989002649735363185593643688314812174774972318198632627695749986487117389201773125277142565902203020801811295656235983434236255281379456570302824533576990734124783827070593946234708914241871958908692241515894003356671045797644215768756798901958684516656131468536369918782028935143725941673639048475337683372373067041591336038681481835704962832607748913681541214750308696750856611088020545197870710219816158459490979383043490856148396849365962446407274542599105254624677509442903113174260191449719419162767309342488229073640286241727460895258226048737222757041329662858215047559491539641705457828007481481261030847903653939341552802738713171182039083650675783586509436895671945885616364197005473728979972102079403103266473531963519056587101942441483893852665152420356016408491756697654422694379297365457414652017339452060051898279194772338699377108956527592687173394683762080146433188019777028459366638053648978528515999168566424503723016061511382039120195781084078415089669867566743575299263722348600729289753327557576903785604319005359590719088220528975951507087274275838938408647332665348923475777890096699659250003881015246864677897188857721042349895808256882598155851214141782603647589529020923894616736079417860261303549523601218710861863616435173508466443772372616079447240391804430479514312670269360692490658300930155716374029269338570602691112054746712341175366235653995215776048036233488808464100789903065576090776861661234273164830393769692802187961426639400946313392564010376615678042388902072948820991706458018678509809331259396691455000280326990612243999896359926534882743194352111073098148884882791495964871615170398300123158796763685392299820102206973594837872964755276636343610186449017931347858920866398729013361448754980290995615838099273440634401343290585565437374945964772031961087217380906433353841116020353237049284217725693188369808996307628932392953308937175034968166029808579530430222980139064076983861564114132488022531143987948553090876436272271491188471256183625528671877540886984692706556067280197187234299849714392918925577178251472278955183289139309352840098473100939633708729188298538421942042560151409632837662325286472297957633835162479111990927813602318631125128199604923539143761325295704220660922591251646930920896832440838845305588328361145539642674804927065269623058097534817815596548520941920583234220745766663728441325967389026847274300633797775669758205121327733095363035186897876560034942851690744891869387705968385400737430152424581966652570992251994547295523055560960251997895658250465887747599765863744520156436161517765594325286947540385589428924872719261127086834570061446808666493389458532911724338423380424574568890599702471041087437735135344560417284697818330165209183902576117966666523728215930390869823082388200522476264792606376711541504401455322499412320571009713685763067252436843223937204291686556479114632159909302320170628004568695935848682937085947258977727483456247253018552439302149059801310070181413546578985550191692767908365292743212828432932750107745437594514407472446608326513603809941872769732645980178698601675907863348634406441657626483286156363446197212401696480443004182646961799957408293494996218239256728968519011909320434314891525858711824816374067145144801948653982665356387286857225803483241822731730713422137531212715760465433865468117835189567070886995087942384264956676166125953351356892807588325893605196501197158757729076936717731397885473000864370540116942109897038651249654375923975725984700809313303814812650291719198331554571589516568974601465110085770479226260027124776802733081247815110085387105105310882752099163638378612556151403246270986016707633555116640621002518373350185202332449155088554498146839608933105931505772547563134725383765134298069282173296247546514157756384245345377107998699055791287032398018872929669238797012480671866085146296189475525889956769797098009174658887035671995148205002991858361682229798662141350225317926685956018311737398832436735610619137420747687267611822065572337883699652460450761841890624349833989601093561764449221148734472924431638420315573534880076307675151843622624802273557513859365250113507398794227814619247004947324208646331718389258573842622692950203800656175885101684789781897247554660637793189843613219041718334188105181035071205611922640397797908572585552361353219495709267618004748020248991818562401027800667532471733899754705164530880355853350590804103978419943556168367169288144611362545449539150989318564634999196251273423298695674702112199087565457745208431952296404593159034536805185353202222838347304636876630803279798291980237895814320160773891911181596528786016460322841633432100148916767770726243846852561504293510090698064612136534109277990086787461249761019688172802897877445190040039543249888650423661325531375134395664284119247909782776805970324133606593115059687710465986709261642247989622554739973784353156406514649907752523278417826416866542112745891330386699793879789310085604399528385210906822939321018485787830104082469304323776014744981207678824622706533647099113000923565346735555511526272133008688113160790844309640440413212171440424019149798272733612623091396665667991813637957530530455893663912258224035927499466267343826881744234654165454444507647790084376771786379051760008948840048285332709682249915740000463418061390780985684781902883463625720452351267191624057141086383164220623181292220124092586508407570382548716654577444191610608476843325405688213794336864973741199869520036866697494704162756293670176903687688906485897183786538242974594294590327391120449830572945693201675706563561496313082508985637474108366860401128926193153877284578795394284432131843080670699969903503923484715141270106826019375681179563922188634895124309610978782775664278007440258542759043209011810400038310576832343965507428307878219883843844334428963404636722715984354030879649467953479867293596561965317510830877126700443174529356233758941002329431322604620985841353889385395304481076912815633468885741376306456865142583846437050945491555772889543460719831950386382854094329217633044745215330016959330985663500172016879956478742916792853695585899974430243364395257224067000428743561939313172462065716983522793438928646039189826074876975600000478298869017332365527386346667467879715202142118967871954493560215209366373916261430264781998899229247834232817574462717729338316963485385597523361557647223892504433666105503894820077031866178726550291209918857524197534038327875584332642419930845638197362395971873803245852199526525536953722337958550279648077386891320191900649278069630652287940351479571367528653156841926688345594972469810003685453465652260745511311890000771961999013555833472742202596005254485403847455724916013107804512268653182284002501598165491159035861226569608289590956507656767961148545237035571858312764177289882934887737604319613750047277567231942467844054261460605350009757980583766032164981440592289029003518503436801504914389651462431302985516804077838485085527132595824300543179771999149604872803885020079489421568199154689596410725837587527310674079709958225901488199265711866149888314698073139853393186182849074016315721643862032121745346185633867732008579630105129642993249552484309931177808163222294368882296908762447563927214806523678800460345373370821966163953157397792644089838929996806226436177117584003477908997213235768129859808229734887757795263605362575216269803350815003772763088394499782533082798618308733484655469890211584820878147305105025009416146218130165719491454768219882519142479662226110953227190541184047519909866782436025422205929216288777992277810246838142023353497874174274223277877771983550424817704464184968012540831403685505751327460979992462255836824483309180283065726032058788897880228172617057154593658252720284358032264743512076241638235900010733468026997619188552770919056315843507676482571269675003758674435060887753970132026659459322505649788355686842093130065406634504628887769922656344913621229785237399321055066711298937146364944072077066773763115815299409293026469650947378312902421920361196062174212127927892346273421871837632381231040124250950547831907686504827366624795288092819874827485069326370478154360543164793363148170998982869003837284062931973749869437231085907703351711562844297659028358901307796837024347131575794434442257306916342124021337116064474040750718171000768863065752923830245358192162264078333213083043651951303497243441438365558424390151084218197532338083436877475834939546958037784629935823037628794154912290880728260501400601198873161659994248511518978274284110149698251350003191512340658325637689336992447111876867446179461684352569561052628903559929659322141865850411522505667654281410861904778279056237629269497908361172511118383721030315789693321428099334344645705276545580810962922469044359897472819746791688948323090951764426204890460371734866373978630230050527038865481161066061371851779801684943083815329939775427680702549574253159822844003821503393618899411892162831216488625076432205695688032400888187403891706337194229861141774177679486782406358114776958135708145844483242314494396255399769106483279303292440414140581085104349946662043250075656166358393642162283721574182932357595075452938913887773556698614172280309410677153953776605774164911183457203161016663984980194621106365119890416517662827174144505230535536811984637810359975014991578739995797219986603325472107771417700059550288474703195069422642022288526895009423929162221199952810105021966810015385618707657673545340497963632117705011372415743036718746492794361244033462239494157866448341714401767167089625843294299028055690225587912124389375955975995810452072435888022759985637452275935507630473395273317269780294553040501783767126123317338163194955863192018076528599479865149507317610346064774501025419053699000722164463510795350604893143207760871167159453424066184534527358602630138166633863645694044594199165301274559280220358032146900953422127266761087298976975005975948775313387277473659654908982056320380939539484830722094937038881867863536708818451563016316524925687777421756278421852411725191748594287681124550543994734757078865475779262763533357265454865942547276880176922447789411984160386955237930872816092973891233706973072982350461048905918456032436896102037624939235029955695850028464337344995572503538031222695934280227892264438601395704873153679373086290113378393182684089248421089643367269605067207350870752868846913769724663488112233621074173414064199378115714263050788726508712502975985751449674906676616110083812974513761802713620569451771019833324611726850876076499407475689557455561338981717997053496774199772189476899381117007822763000352691470380700319661329090544900899221234254726197319847711489075090933952688388070899269201464285947441050543379832692347406248800495710168817389239373009829295059891502598969967067772902050961326585643599694392954983804349883149599344300051514765422885590755478735717279345095290190860996921111359515336593067086454262228430116735434558968814221301880494374285846720534570051545869492035515764298111434333980734779463403721468129188274826966252459117555492890417486440080468257565138735148757836862728640250579956324678696662923863146206735313930699665381844729509470330959677350184060908419655819040707299353358641275442024495231409825215459698108456565641222812227016252690409128236188082714786834531482087146219768292656105593562587660049222967819504278077930385697580133607986973850955589673942225778133848181409540591342966803421996242985108082617458929613195606959575809587370993309065854563270425316041842403846558379010921861715734250295705570169380417740338255740417655971044237947480802610576248967274578552793438833976237931921911044769817957051851898700235893185919145299167227791986753394536186223520077413473572852239624141747434621834625695995017809424134585497688993203175663607079529763976960574984525400319918712880219158173092424217974238868057932115169644777431976594390959636389275581603405416679187071036887965588320150361037009342439291706062744658432944059990631423773410474246700031183153837519304123858153700151978532336709200821245009953916693513003441145490433603857983519338280365855446692768491473707427351597270512913743795151379482442500503832086532329352124836540087875210006050820109482018821995162639185003474379216103536005714472040337790674904438120204447434430755394189310655716257073778429034043679507631993394889866002443336647559149909844053720773268929866346622490152509893766734859842778447535022136503970255461236053526016063688984011547864281488006231916896422267699385878233160827702375295037247527288204007959031516072280563919327318920002770100225015404581390003134105608031476525240816456138839742447709307936035834769930172071290594206837837296181526853788934010271405164440319451758052683938378383372352187542326656986788377528908450909609000806989178362357720026315805336966506297479801142108922018750458420561607669626911363874120019014399134194719442244236289848046511814544547714251466445098703754043190844797370136631886173093413873590636437969226838581639387132712714631116110661399518999033975317745284178513753879091606979536180842317719706623529787002810115270571673466849406448258220059389628742229909185414083233682501752431340093093099386898859515831983140380597186478324074484252474922218874835669616666126581057049639603594566254684256369454746787819987885795618941830321857305328385127509501075787726561547031814365765477345180689844396053552024887496951792967279975843313823761168199388223525028121816745732683409441371861495213243941018055055966666033508534152003017923478332649077339874943664374955702720904959732021905219259497033338974600771488599877835531326058947951505760789837430603852909587635509089992230476134020665327600109902605328888809550152467461589444340965047832435133583222911246479341239694857589493453187674617279467369778346875545374810343004984388732158007284164048472467432002008432627756332848930936663443997188716681097022641294938718848927938659791679217365919832402076695091204343524382824889379054688892875911349902256358947788349394857433421605576082778615729597769129144557908930925798640568028177545379783943205655712271991062578285876401396481568812455136764993394093478239827105609110656710303453104089047959208310738669720130873614545344986619683256230523790435761550837154946882793351203883915873908319196451992602322150221020838008727098090349672353499829510008114927168629333973008140678780123788882830249233076652958331879385878556119393532197165655285274696955197641070755950262276002679381822306787114857273686505836690480312213585401076026968609352809810191045599578084980856857567297679408282229791841728481919275861703722118393502576224281684272356834653152994098128083405606412571703000061706923831072862596911218435936973356520664593654364873572617065453210065961932626454790284640418975760680209702316653882851049476924860011440838489347597413757140055624166607817293631111160221748334958265625370697480305360514967581552827237369089606826833482871493874719967816697063052690660239135942279546217523165428630233842121652416228978623951348880510595511643379099409533662761114228631311442808310281260591700327923874187053134708812865338644426094923611790968645750380721773645563773272423157198892538484019811412083450281553948916663629346018362498394923916867832797831856040530306316870371584201355898068300974487444358039204895405509092908864088045978182683036367406108569689524737065284081852449333648803268291251768393724751792736373669747991708936587282069487420111450451304391322594659746673895098555876138481825793881783397881254045511925307307753376348271963623863008271133246039808005740886550710098417297337835944898967083646926132741803839662053381837608232586344785323882824735563274314127209872528024852612714395288048110791971585385383071269108294418476739198093680300231214872465726538281128721868416844909640208837507064113377825290720482008393441293950010950122204710774222475103444775367383094893087826594677635058273125665714929460665212700037995102601210615148134013332538275065978407841140347884833951008628810279504192426750263102824814424738150458243242259657463913445582339655624000652391528747349386417301767413613327504919319550283013618235397241022543597701134664141437586784581454838261623686418269828284309150955865880440371269431992863215453716580382201119361953630851302808038539334298990124208607553354425779531171313382649497697957934525759860351613543727545160139804289380611973093927091271258946128965864141789265000541497560651782644040127626699157795255550480195692434671642595556381637338095812606105928867231089599650354939551032355471946770094592657165932555887806004450772700485921256715394790244661059380833818419141942195348783407292146809829755763288254671505989790460361501951448160629714506472423165137648551580275055806384870715955335402759379856748484532520543521996674561693041085294165293255015001101518292397249802214129688130470256311775607937933914437133292937475985872895972213253689036173687243550911227915158730477707262622024122987747724331252905703831711014912956259019467930116992234003540969067279285382346522910079783935952739181095225523950271532901211035506654276909965133365498453484904339716305292144091711453498548329476275609433552167045225989031058864257132773749164682784400075261051886895866578409392791409434629582788611944533732871831009685080910881331376725856716823777638518680402516792169382244647642357931617061652034788486358552261374859892479025579961670891507602441812129583528107393921102616605390368374166479757578574852024974650413252002844579199161839707576895475630830077029164540904836309731961752400493795996796262930303916829627488631978034071340933786156671167326949699964117177663268864441822008697135416396327977632899043322105937690360275615474567943484827469803084775183195046074383071042644782913956325247157772376028699578307792008471569095144193582504836051027076227518793555521507515294375273408411556777813915168138085632341790991102986293782150796655083215744532929279904226217546142150968080776785582042693470510912012510825496855767989825893929154427924266930359130982289683601899445163939653234388038030829306393569544199441608550096205433380252619907468758388517526856538099263333319028057007746779211927135711160448366922160444439363827977421814935957231884554704442525394998555583659312449692364994411103243409999989978025589372507248638347822582685680273818170463861881307080270829228650334184116040016213091031993799352579129612519279608131024357265487285337002852657040032368942172133000226951509216443033768301209306441067837639245782263445371902029678608331415101816170024597543366376387152154397087476388150761215892206987385988946444405103345832671617318870970764590986268953562438920265263231103036670162104520449225398510689974334634186721184012460460168504789984856767607494051202953149698733130368310728267526268744356519766989915365824387901803692571516683582572053357283152085652095052486748712902744244342397166781136087490346430013562153140050808327512146924846557227334115090820253836742833729798469816034618799855623861204917118003540440469780542733242946475782690165757136009614682933489682434153721468496072346414855490806912021941559425302111245654000099181073389767497508097393589804895563007202701558329535363133726957495191238798663553435906665062974606104347050248216879345105342373724195544777915790663761143013458648606304428293566255487568009638207444147215282985287502669757937526142513100241552017568325129825970145911922294872686127317494441408981524946631801539188731407846771502241654898774572724316276859268674449166121935490773049198170762855216032373554444557642780689497327329160084361423753289934559817514979232713918900575338597690782999547084885264335031414231254355404306639930345891645961480190177525537193572472579940223104815322935124346824594968908554415109779518089541724162210842072083803383710975959315161369855515565220895980499700740532302071631960256613253662258753766553673132369361893115304618729851322379126631284714359398763118458288447982197621297861223324553915304731391120737356186175096749796432653975881420291447842838885405964736329927524764392648681764542675461476981716934776519658086274182254082973393689558145383789718527300063171310595963587634548026502589605763516882427065221810417695918318025000566606163846399488284736592728506518390719090264839573430563774095306895752523817739830725024390185110634018004820088551067551579288340451359651304439206264501032588303331025667102598919525372485906354809159008932988209823096430547636308561581058057332734630853946182329771301790381305286938960386393824264369323684732211160744664951043294568407399457018173284175087319126759615497377887725240002940495848342807508710393775449706415384915952198272241284971029715210126826826137392728105421630692192987165373405957812217036531445961216027918440344863954090141241082024899511581242033910271416524906238659595798571111910956302068379921339369199377624757701665114408283964301722883700028445436329919809986866042712137241644039815005314617963086037134941116461113383117944419501005021415097076917685955405136745570267336007105979419187930232710861299228190962677220867981957571512730578851339419514967159158505108788371819982514849104151073680096576129739923272049589966416447530516852015302195771105960462883066979478658815200753670936379407503790956768192212139545240808129273835983805620714258977932851199840912456436222163559488783784304363417760465641261593879630374715450365133364256442083971775360984612315537177528917281210997230227712778440401441960504458964042320252171693700337676320403614353418623940826234105572815134812611796014618380738997644733346998966824865929653011882001501743671518299635949700449519172468449036100001736451709553073347517550066878061161463586086460584660238336981384768105747969037530997465364559530986872394911653043536799236777429297528191554840124792613387050605703564793029428128984401941263215479071941373772342102413543476505053289570709900476068671630261646382121336274700531838757796746885771835274706885049268027789872336929457906848311800663352825189630932321196669471209430805305097783350267719095502973073260308719417601714529428368068146431279593921742603319751869645412212483161057121252120480570352172521407949566416381319542895389707690049651858046221306032720310350163654320532000990636819200978294594610060690419838997617065664128550741480396229209947521171807460575041680068299488597044064229482577759067556887736785842763410909360012470980353212557869319500955277226191735430812164058964704893773978289117334105014521799042274186759777255840879281423088775824316412570904839618538924397128812971082829456284551318916381658699529065942486820922042547613273668122692528431454155866258603092304894265507493781731077738245780578195028558060601226985068566903540891673587956682531110115034924794915836709288499478273548542368631091709619306896214148833414664989748852989863004378361104787709901196572378752228593284164648700381277729755863539101769888045820805360908416811760986971855929072749413493544264697177115208109590944667011229480278056501274199432166787033384954558027501876646041667370726590671842133049849771430948641363412051716661261161907853116674304845030133520359826152793857652840768647025682075040959981095698403078872161662834886527225791834441033243644887161922818702219181209997816137316699720764537657325111690731281659356922992045641057422436006120385139577340159740562559685021025996826861074614662419779341864974026620808040415237781427945369388017275300535429934686085211204784322147689882300399534999341654280345125337182015753032374541628551436076615794464645536151053570544919841878666069041962894030262183615660349744778683907584151131576958058219456194284811413772684830621492317798886541994990757103264641848131358934562515552719626347517758705405213817522563573563505052665225132763225694531838224725799058185177622447689457317426787939909062464316212276987746520871784210287578818079675493062450949563496175761724155448057083267514277198534022478028489439024385844861600441030950898855947298955758882666579247951286674353490242237368491988515356928876907606676021079295818156721295351324458650215302749548537558198345645884286168456012162458735335239367734408351393566717199479977811302690483992910383578575187565354378278676016662858302365136068130042485786551532498578547004756658995227915286991675298062837852897997800078587055300504940134221312062260048917879541247165727808097918516621437173227318295931506207896664719386611394246406563296919209134459010686111354706208037244177971843813689255610593464247893078882746487775132707491736395693903870584468524135726988894506024044520384752513996694678345193805883041015530350051435870446276697906753856763097724328709370748142039212215857142505819268291700565927822898065392404241585357985035085223598866984277049737333119938293298816675805520357610921302678642541427007089950365614176171302044444030189440646646724643399728519755277500185922267501147734130867355204296978614504306388699704068594939209635043713599761670137753129949082695670300631650031515520198438904517450191050904935622429253547203560987152228713894657805047148438238003751740860430962893804553985964769572253881964224949140118082036280501077203110016408771861637034810416000846384154066067380960916180205922482683759135770538516826242723517057305473444543844406010310780460161558242077199090728907937593235983319398194440226347243803607573574152124815802762610189205252921721798386991910828791382992497508452822851531726972585568607752137821016803825095177699618412980104989489468989697652432134675842973989721992882167487447397829387147962422406850629446484101605712409208189799036622702039080511185055824030934110780627873954418124283560746640551483707432146649877860154491208008294198028809862625549890337457958465579624916737594727849689715161723587336820130958555753555424873340248189710467833907020267594529516460077436286766079526828070140778339543120917251134807281198424319274614598581035534411268318109187506381962362537428838736423093699831477032734213382058170544994597387690099215767630193826490023803325519594297372891730107236150826266603824542304410586947627978072610279423126664948961036624822046671643123972692181647212088213277822070987845003221257830281258391917631194004194368388870170854010745102922090573555653552417070166497172302938049757224800873580055819425528929488090843310246774800846200586291110157244907842465024892241212982319290410064245213223513200875703846494014094678102814576148090489523745415205677351031983371555268130977341185221210568445593375137835741927360918084885631411639860407369187756293658201625695727947163649509672457938632732360965487962284325450393411056982317476397889994543040518335874172835296759208346986822372240889334418744643578135061974170813551035850865983930826502343066451054077630166912466481434986894598364826991947246161058913335191147788453655089721037199278335210980050854158633385398626427939034037380447308580513431582832472935448356925710631290965058778974890440153806558308426406173708344664232838392164862730572208606710295566721110025965784180992152601689472157659539652600210705054504677971768362471150701129269264001152461860019968218577679339688590232363694659849953344246136711772534997372835311867017008494441021598781578660685632199085962717993589206127173177694930623336759911173292733576385384112868150100915997026221000935818276956786818133282989711314640806195371375596840238521240958873838345536330991093209692551133565969868090154381274998351696867192289413606791913122103043099101499963733087110638787609974207215571352371073461362506086148683297851401010169117582195828720815709050120361570038415536632237930923479844719752434640409490038872381792788153338600532256130139702013345034757399180474420209266440717822733257266757931342866626834552770053376307987479569394664861737211102881604075086784631742759356596467863867707536151734082861642646003561484521201638446392625759059509183377501232275478743054379974218129722644757281903037695480330144099286946992242270567573113462086112463761519853861275439264149278825304426528424777565180405566944708621690883624512051571401101603870392023365785386852030221282790547306980984205637707133704155073615193690340709831322716951742936016650010023059996110251777993519442864840598524870680591137429605833721263092612869730155829688227006767302877479453382988464722931455310145010955042427525193664310543874628538898897476254377890867517660997676945126312889718110694024905531794655779164412823650518658297470727707672493419244061338676508090103294173771005299439994502094784405598390037763558052454178798046918264639984442768201654765239412061317995370715472695603862639738538065729750866947140231460258686504193990596196796535070236695528767013760473351178899214889329513534632737163877251018752502400894989760889143348398409301032432122344384764140872053366374569517499570354018076213138720761322777191206435569959088586787758820431286655273572168789918200805331764211695759778129296356654795061674048708703882326951127074131372340873080974082046290263738567384193349484493801364364727339604044799178638073363312704844831121972884762530739107202825657006640850224805394818085648242949060084812385212254577345442944006766414725035568198134005195926294137214539395136394081732373345707584989559381449140935796119486358996590854661800560996961947821571658836165549216507639890749628187424685939081249292636314048392810542417506733823136504452493716918594342581872742480986451397672068366784659862282402739102389704676702556701282363325731567860386708132130650776576930230328436993666662429243300286364418958894118042936945421694570605977776974715131106888518188006313618239422589697476144747998224908303526383276993042958143923422491117230329288051137313417034885386326814346866359729798436050408162166864145860683829537649435279991655563956035479343199570072845921138606025628601976297397192818637149946904387756910636493471065284069911299767132131293334596204508096490286338014072784940420619912015423140612428516595762038615042253279773417977396272982194792888671720833414637391984718572308868407948363817464535156577245438878010538555376241480986896060692111693988434568734962326485188278222450207950505515695068282835189275245033940419364074469990027551481989786890262379985431915704011089553211227926338368419009832581003087627592979837419540211141173115772243692851258942212028665873825135850574779640508189061382351231809043587115915124473424431642381583009836853381415149886639268069688141539478114145014897855544872305409745321027569565447688359979850730863850579474811904891528912204390130392910945481181824840343905289844839866977403605671513773442152506568027118265175474876968271553566333674488544664898228878130259100039372477498714589467391908043010699825743598208726287240238801743410209782933009493607740767165189522864887673677759891063712914813570980437040548389946493000385491426285724694379484801193738724626862775149670186321354236879655109273381771474887531791768553470084501244826627314417449348139956318977129947777742206113959347310623319290576645542070222457571649185169901077404462681590713639229228177017533840734901500186362577425841265524468340172413317042812658934389504918724125759206583381597903616154633867974806339385711378973211891070957784091312744278956706737875256513117855668334119792159051653380409682175345281080425460173649617733434026329108805194232983252751570335797740501997594892627136534375017375796284181125272404632513496028097522557103730645360872997376311879917439793939617373924750758486339859298540367867551789104234514006539954568994229723653112187577582015813555243048482986850899307608099745635075644233861257538339533080669015748494197283010931950391014505090463202096339087977810052017806963687763921325041542918505345483304539251155952119714668900493641013063970980987271520839266352321436187756924148808738895793002721301320202564943838575676147867084645391211340419152909952298119963499308856953384894690101455592781612506514755793102510657603434352280110135107784737730779097540641209986255651257177203786116636185688321862535337434199417767111561278029572266973714822521670072465125706613961572235074401976957706942937157117475335041618488660232582030791009076818721370670893186104463745872982491754814149555547463381917671788663988488820886385881344476419133510106680920412617916878780895744281456905947221544137802598008516379394188871754915010262342038175004061024472301498508478124598261614850397697931880921106850546408094614463475127505253217862127462276152461296755637119392288450698356733936339073899407296388023073718580957759248973159882912242958082171245043606668624829244467127390815606805349210702652887170618016647437597303997766657210848549267780482532076948511160444723903571336912166319675978367878183309558415857598577140468843077074518808112063864293237157599060393569317968126624601410663142842837080728742300905789967642388038247877928983627897690927258735560326396697569147412794573057796322945913179256249966447228244137830985521308734593692845801551854152322783518714497219158864091129254452223919905762850871980826337899389318355178778940419592290286486455070132772455225234206190023632421613841900801098847599838681285799759026683719065949624040471240803134396076520558503697126233183019772022944114827264402455691823213778423419373175449712111213036054852816841602176142536747591395395898037947012820321637127943082241797090935181002426465578410772714234876628571018082890113673249930069268116513676457326131485444725944843864866627481557645223070530568690563804454202678086792431666817918897613724574665664772903419955735611389827147394890609281591406342152122848918383017749395329352472335528843785771087580079494507411702677209294773918011989902805282633808759185875497593999639241756273508026696832757809909679123771484935509658307626830717617958608648284053607013836754202345519017831241037408836336716917676729913308437493968295476262143077198397056733301842623506431216503970785655937856354819114424246714493033181337774540192795492057244275304954863216558174107053665504344481025059702821146168162114822334260265982627731981461553374838633797153629343202798827189505976291129378073587967008425571107278039108060836297138000299547161236743566625780094093231764508154583006930390242222839688898266349217447449594113385217845851127603843064633263941860431333287275110252934947684767905004514445932902364782754471835943021408217207315649362091510772770870037345729005820322060437765761286980996295507983215490775052822312050114408591381944277818575179907909675991120671189734765040913246681954904321901820581254689998838322548974018453577111786354392600173855773165680649838200610761715337147273166054682425215068447781233290262734111271838698376259785975199914174069100862378042848030874270030095080640241152099381362734454228793008787008043955584734328142612786526457727377205714590983684959926851065140826857195097010192702988489742507477164675771888513218374042709032095178565220750765106809344323772378969013523784354026677986941381471096471640307303572759415402212625978979028776920418527910435937248496783414444335102529594966562716684524086833140739967974981442960803631584714876566003244256728777108316202396214247933979909729201361638905067726973143579632754175730202118121416725681576569322192113148465399067069270343122535643897888695482335996502166684202891922494108626858218624516530758112164149035633554602131422297694638353855189902294005955754052386682416075381011196154135655020436419702589074701220127146407038070162638459931994472439912311075777488661174453897529205172413828419277779695678131594994981378924187057723089380712912753142925790089877863339555525822094377257609955549160554259346269376647884000851529932971073793940590505396419783555777538705465495859513998241167252091531554244624465656043653510298347615878698519737683195713463431669293332923076537374424196024596760450765120629961994254928636079485086973599670725472354164992397823932950725253300948687003998336664102921017482246113883513354451526889118983943087195045654152536670559192991208635705385580716481733606762839341626206100173171833084769686452964822249511380799519348043991585784280132253681875136309594631864633919297501635984594005423439749273095420410224003712759603293609752969011974412249920172897531460818627715364577762992253224117001557345709698256526943487692944755912192354859054064597890294622877124496441921837716766932914626926730471200930710908114882180304117921485595402560028701944850047457417241403072023673349591757700400817938521633410935396367921389201336859136976885476996741453721342296556142593620134223691179585918627745844141058849626571925266175845848918536616851353742673735726690314575364776303261352637667852485902113414054930290758471356435908439453541315236811614997160392135500452980203231166583230234628840995655923323384501226340886470520564839531195626225518101022874273301564128230802876332119953617527016504324324433640491944567364063551499842744634545223864968246885467376315235689531655673638758772375955850727582799965025260426208838988020789415088324156062602430531962292634440543956019941031987032991577185936262979495065577532978123392379925862145848896098861307328287593305075957009312361471632160248695559201748981614658481325859207965670116706045839316358019717315014033726681625928289746377503563454688558871852519152364276012113284835117947901182243772974203135072536822796330358444814815792519720496064271021846975884661950075788668358411379012665323224634590904969483681718403855129818055157263395254629681153859413795207431644978011294025370464132234302385319522749208182083274752152241861478904363440541754023780784202392394284709203293976986348268011715219697376856985498657426945463006814300015813645320933074806235501351491127518845844874971798421161640176993007853151365254442082064115970789812667381897811375146009620668079192442398221634744064785732821149486140865051742156445756844988745869631787926998931818422247442594702392930334853715743353975840087022072531880626055126170284392044576543129398000730101808965066019109213129020142150488665194356932096864479507873298601302881081275985752987074628002563458361844830012745542232662787529279496680857389167554288342071852428005229068940923556799832138427645413707495128609973483779770272538417541975425029746357648534561642698738598097847798762786816593456746168925926019109710377843201088035177357220319478685829842819002106258767891051896689314377186994513750900093263644844607195202059882131645485407785772793336736879375103106364346703613423015881641654779522282466643241363148199945119358810125785752779321221256169684354424539153776550832537703666515380199021872516234047307602783815893280788080035793191914221876678791968060352406984860981021333890123097174291196310591604579371398784666914165197978942807940007325660177865912897141330167181824378709986448884566573401064015914489422775777838968428353789655960187534381750015603655629946565255253079708673609924303947375461419034785614153755776376277644221648627118272155867554901943516632957717671646481594436619349116249280602062889979766826328939078621178711508574396065709572899953511401778311824836274576464362601578756911547279097873766676809646807734930871464612748575987008231836113601881869864080383266025777097117061093525595931095583797737362405064291389412053372060156115989385347380071025641564435759520418782994275899190410564514314308174305848743358870379734864294488625117895710885597294384287897080312430937554689633688841379026062502082501052226014388951914415874271671085837204400542605924350069344277858242234441464160060878879209446007505600377303828667737180889521028590002255298254146981090764563576251298890424229158680168119913691170142102073167273403079874285677200626600238188320877242437917021581796824842707058908985510304418343561365580442549525923484005762174086222578914675311616767759767749671768507244824951405250711905764236156727574465044394709009823460462063549182170923062016461940453059144182223557028201505969308711440684751427315824845749720746519082767296329122217097392068217269445933941683386775380148171173660091968818547901185480903765224035963610009718180284369774205569014263494519470680587771182469339820313934638795644037895298525158302580670458931306051287956802997735382450791279525607791996442589005577903483203926781467094087425453217331455846289480721776368643788190152982062169484223017592450235544398365825072859614738946394863748490563941742562497274791010937167238867171619965503209448009003466191402808285605218159050590153646998097345242106927220370092750990423807619079040153079265314855462485313504913836101874098708847525752182943896623981737917883320741206244578167263828368243341744583521306656622400405540973527538552112685498625044616614568653717458028750867431552991032151380871933060368802053364642926824395941128138292158970692027384374026978214650817928673411092293162711362262568830972333027837767602304012569693033872841746078766504246507076030955160746183594159924291434254981468592013718676186649865495760243523352698933697987027420449681753192797772342620594631984011567414338482383901289574594402201151244618861012544866028021652819612613820260621467500212623395400801151290489128275947174605013769596999485073250506835727230763438099466708767373729894054971228227962751252873191554876291789602241008852843301741028355019880808574294895802904653725510007948204378577877049931043490755856338673733737161104821743224301047619505478507305522745480936644064043309274095316437290232138537090565055151957888793790671450982214325255696287188409137038980960603107974191860420507387710664988271478696400362179879034215303852397943665381083122466366111184521588409878785923912673556931162688042083365868177705533833720467038450925081389040855166710561829370665450694152371409493605145622900058868062682584147569606737044044419270742185516490977343669761971405696216091584252113095606735913491855940597894774476552903760443115194532021549088703764237985667969026793918102033962917644074423899235749036575287973730382317226543694188206429335833219340638661710177208023846836768583713938350709075555686062046546057541216537862170346019803483404479385524500338268364828687327196022113618780946606335955150112588604624860944462131787853357861675328350870936281562804024570969397089862438956104652204269220599065114953054179354429396022608712185283057856334287589745447432534640312135862259321171819827397243506840063394439328033487901124154601691121638095441328084648808757497646385709080233274262683074792745396260882776985044829368059624591878934554820346789574701217684897192369115458616930812558501715149558956552863292523458439473768628940786061121340176373708122023066776884375834274108485722655952721155021313289182925668581431275166299984186897676426861100119842626098211129441607239735072007297698506890736315948800901375166476339322756979503422347531580180755534864049427424188132272640721211335891981353900179751597391179170377933619082857437057861604793453516845408800398771124427560568803140078964864670057130001581417729910259532159319986254292295486227217413442450061208400372847887589926944095166848916126768657745706119208130738092853114582210103816060431900941196083900139552107269882829447549409015066002325984667099536649837769048992867141878699698810825508790403989591172413503512192362316921949807678565558574845062367788150167167652656641310030422310856228029455468671785394696096793711263199064380044035431844184589809720793535643363938317735537507813717818602463084745607090714343660953928086435003849995810247843710129302935432214906077597896590135092486622393721297628808598859647472654811163969686309743477789441047841505205670349031679075241005770125924782412383758397897699953421707273303239660738395819419753807643260413347754302821176264361154737773631827618881557510801299161560899927995506225404126782112643055016302660778633716324145602404381574102687458706394824198707110420159459407000890254881716715146471378289327633461675436646503298698041934156305677758119417760962985638484546588366909020363640759323203422628460261269274847919617441329180686234303232631689040952978341383950658956137116806545236939747116556079080211353236027718093398079811428890967527903581257693939968208813491919630375469100876673146631303457264167480042934475744796278066054061234444035817249148184786125845560329117205898376856217452019885878521405131921430437467409997633280668652585389755780025313444985025767476968141196337283067020760432928827729252549372323015250030007607894653288281536931509408149707477084068534158643875627194728520892455428864363434255195422536421592112440364639611501652865716681665359781433390665836389129109920689054459727693978146492954817113391689453811886147647309934669517347029622314946103105277797769679770300123278957828059338116804092497285187024616567842300379868357765295066102226487267817404957268467323562587940656448178197214700455786930640220811881354702152738020274264060041246552125445444335431775670678444031623414510839521062815857475891747147910488889303123588204100098344105421143505899100882794312265783234070674046309250308931824858742331810815984761572946491900003390821325231148237690689743777976586489993733959637690352802789528482301430880971219967580119584239696161081143725841572630740874725065085979211969566319362809243110578163841175069866320427148369581640633588124465716245289228908342949313391372979766165969551314005241678104873501354840952863143564719541307393873591132563915653813336412335943642721173431738463049753505754506723079727760352806366735608659270931415176724399495574676724934334000760917011586469982897643641217151215299218183011234184890506189787376740499450390957562932802661056992370909734461605216462601468833615616202963766949816945986166863615667740888789437827510315089134539045715317004248461463416548795290700745268157955526069319939793197536707633988661511490530191398711649897438117198308444094500292341226918193082371755156661494671015500225257162573333532657324475492713209480800136385169822930541625308293441931036069388038743169678749737665123377976034677401089360166469563936476595893601874376660516019621888453232834268114649330628921827778398130385206487259730607473434137258926785433090141782253231896010777829047132866324295330057312234814267735403227956814001563788331555242316791338663163532977492963481884090281348796916921491440914373495149012186682418662988900633543370260149034870601442048488655843427071843321859718058876231325769787278878004856072575741172097723155888024759623643442820722206599532078735933640390156740070411035788984796514828159676206699506403005247315808552930767842968938731179141918741330371567288012125036269641239444617040593180860000535140022502893275060917402639890342812149262894396409206499965671845742415720093027573076723810884219273084500350043282260504898351047675386979464115430027450388887168899175261956838032671316525260675401908537680694371507126268274181543530634995849096604185516465398616737764848727571913222256737603228791632637946383417967587615750467813389511411201582468185167332860210126549597922641748263095500821056938807893990948881022624547801482393535816766423121299433450412433207814997094728441341898396945899120916778734493107741119235178891428795621435397788893446181895578531873041798802669784527476266807068832971967919699967719714565512039445767454375831284396218304663050858005792469933585509017703745454094264964840620887764314443846633578145548615296355070141636845609546191401990232146664600653887200531239129506985409607927961394902445997689787510247040116441868219823219584056565316940024958653607303471106573128354446444797584761899666891376164616997221285395625282729526302698639599270455383965892286400848460454038207976449693839523099005479464158199270815022647564493198786667685965002041418043730203813919010989566906293916215391325754918660023126940786489549537560760455355545411400424771636554820697539029524319573451747548566183146262222399647285513254364355536569207740790111528074151230966609733385644935070573254576673435527718573317422796103315422754024531045931660140363135981778523787259927846770427290276764992821926226468457188196165078509788401215726226868106369808730494636353578089209608629650316103474749932703441716598762318745733279750954991856165452222517544724378948987399128735830194576346598695776023179547232513839854512283345663642296474084502927086100840106352439389015240220523307569612012232788716127848852519744128526411632619792513740938798045452436670125852274159333912463371972366237560471120010969041368786092309206623549541323091334227673666250895958320985875409128223383253139175561431776340492703484322617623992511589493539913507155364348191999775092037649432217278738415962279278009959949165931635816525733485908172807282230624793847081133489611997543981961045655744017493109225120009319701653943920063047168509680660558786781864582468158961784694848648085935195212386017165567420840405463425709892637269046882068892666042973085129397095817856852068964470804921755742108462495733215885110088034308827515166316051416550645225397726334439308900770626322875452667392871968169401237456092037237111288566576382349619319366377966944700611895146286947000505030572609979701093519580145011866770022967470013506471199345034105807379167783445705609701808025903414596043115767657675346936888144668183504189724877677127289639159193148702319563571377417206683353708660622580494242901378379657296145466901695003552990611004259389144410802456436817718323869000248530636058252603085664444016470408806076734105352334998247112190889035632244699010321991585673548496481656477250847785348146418445774920841351997817237639920620969079084888604942832946112877000916140790131843042935491253415591769645038715471388702135519571293763663483760472751237686013157003708229941184356571820118546547576789502206943557735489150977179884593085081188611109016650299256766783980263235687023403676888489853132912343928356154304677458178397098625495727209626088028484228846808458664989170905341603329074295554321688737053515852800265615316683888016185193099490880168610664835932420555891531246126499972207777270425842464144786691736019348301666011330776230547473326981109203736194830052899378643641688163486468035497686722054717708753676039857046994285161605374606209175868731537267989316767275608051856363703187355007329433878707580989112701106058921978454780885781056009471177583567804379600720052630454009831581189197392410863547828254472786364862444947519614429773655291351373959236914972501532326006149044400117772143152114891063461232607029710483698313616985774354297556013492191198364150413571998444310595011632013548261778934021719220879337134492205518063284571328727186551089989526775613258672241566039541215378790400890104823230145479380229827518716330036648455679942416796213465725425659798597383459611423418633983845727994103912182664064958162064915168872226114879415767949086104968952648025697057291089724720566799933919796909445264011451082420301463839078358283307794965965330244833786814598645592353708408507995612639115072532566257771163187889501620810396994445321213566043059440172245388174941528470618079979104122991336323947848364535571879019328677984166155562213152901661635521409822849521560302450031076691516142192260430324592685863808163507745329019926723867572514102923815039540001687836602173133632212492272216766913935362692271150487828904923325375514642661657773309609789444994949978259769118380986574425371794566525615768874520471170198550747048422739640742950642573520175210357033896219323177137982826666875408569294638170917379951554469419337780596234262243892164022427230615347832064619366987319068311700204113608926187178132049205624668866116940393536534449330879173756202223195501908841335667286778295909549763424927959833526422347060248239751504334726496149705506441036012105469756231760342421236913047951099553700579992611299012756865511423298898325475325076229678172233422728992686336960266199500321751281336973608318969505303514880343541676210493293615169646842452852864593639732989694188976932997320196608028430503072131425643589310093100749037621337653580098982903703222261279766322743300820540828820702954096254791299789089845267636137931421026830541322633125043855168077511881726677463848348402538644856457065799275768076802293662119831906836354977603617982641162919010139014024540939715920730648347791811388401388949341617561632427941099738862844229843554130861890500423634081659993828980517923481714715889711841808864925848150874841420625905714961498227638918738698593186010341145362380462075700610683232720239588523265825003941784860101272528145577385666720705773666039763644228438215440280729986422321045260550422579935032316796131075060533439484825343713981740463982423975219838474753234354054642709057103589743236913602535266616423246768792561006733031759221110866902726663500119845237744368399184298517073513664408157827204179639554731398031815435110257765016705636878381541469449586271332340135357508244376200215107127639892024585438845054160058408059106218703299259388857959825253044209097162530195221229818577841665373941289174545927647666027642962526061456219829421641355547025296775835816706487743194328713041285397828626076852069420769416744073563420748057008207138395135750803218039260317813638739993630616033962934835900417412581004355048664927105802107524885725080472909653149593793073162567123266791403656534264511678124785993893266756851898720818800188421599626212029816218291381181470305162779593490126599598337448818130664463347424388118157905312819813435280047458378032139136925524542662488584056301239584171498537808845593496091927353023020343637983544629284032958394536170124347108386506644046673396713322485015991058305456675022563021229816027721085180825347629246411536695406584514983978093802656954828975296577467470123230748568801414825265974018846687274741123902857237446950703264415780734959271328082136149228865840012161600517114437353202715355181374185268178753251975739228864129446540208963600026546408979146561437101125494173163253611700966018311420698287854115835182198741238593091022829269935528772192326472133298258732589895932051531917472485349530771030170242269518737963206941184926841148911411375039957987205893807521143500966581240992213157644297101509578833442970848470271542049463555292151535638351451659261561703930309689759396339826322882402793583460050144651654204158144898174876934209367364373782791586391678072102470404223992493747798270589400418692614673208842007356063924372482401337861537533633668926139356075611521002986506686417613237995271807726741371849376002182457206696375367326538828428294098567932860659346058316317088258122355690251132016301778846873265421734847740479073186753262362082301089926062085788042106499876261150555575257323928460038945363009114780492787764282563892869731836129506646529638281563233797548219668656210623298995062449075514966912892669869304048065258184190481262763927296712227181608081384080836611337016636089777825526550556980900798902515960365489747429568582501537482538361419840138291882729114578510446353645711582940685901204478377918537776562449930875908419911167441206711109342885076768314447970222301520358586238982350669623056406536841136760645436777720201235869721698544115179291124691792017914695118774738306240990185693914215627843975213959508449607303687934278141531903691467317825249128319257642200279193494015454923999764908361919674717401365658847244226764975952662871429706324279175911095286667709868563678734763620051440332753391264415730191808378851458457082524471149706245417907548931003876291446188392967866665547480441123877567099028050182075635735615787464921188802387468269169278249739733772193205467730213009225093711333083820626769972782323866202313923724986140664866411686580235750251326439053861097664189137023133793157344015930158764563081735362617413053068979531220049740979723852572974232835198958838559571720681599366089937561636125760041353188803230327440425560563929508627075415337148407376311123243446963253167795223374486698117465466008581257732530767782853257929412248080475582555105396404972597750933518996036847289840480263780486193750314659352209320538485184846957600684489757116015439790110481602560703226237727265680050926713491731501598475966523329132409818501868332986979744771436962949249021290307697350245766576994824573939208891150859743740811941733595705695724517036459818966656735181401166035554247240985659454037859309198703349461224640005293727143599150006921658594636351436663268090004361553706676057765792880469837010124892435311983920815378299641557144407657952050810514365231290255037513804708111955502837083019423896489759105071956707784136709715879153701448881673358748897537746865204968828533696529165140376635237001611964982126534730329104252675392192866852873920792596187116203005661555523142614350732185927097855385466797868397014119586045577044769271852503270180523563154473454976195880524076381948803108737878298291329502257898404903428988790297477605809838794880927069500565221134447311558903647144067557452834513085449093821985586517189408250667718622428342174251021755412111580376148228015947087502335633814591871597623846544772703430122522487195945115244253592777894196969818539251943927647623061214780449039647525619069094964721800705583730560753406076234027485915190675470918010137636421470935220134665243304619080019007037478117957618174132195701565183746938863180362894089600143215396562708717793669474026645197067214768169308363546148471089050969571425483418635912947467655077810449403665362137756808617629450026211515521524128697824466113858360255626405551436223816012894816499883793192408079109274705401546482436355473116985924757599122406395803605772014628401634970436727911353651756290212250729704836173551328493025109990127302088735445481177976494374521612383384898387688108603642707111909514852151103388701371195370043950146501399183999891065753941426588333698159337748188671298315623270570012587853201133155566072822637969764277783765701973183645383085495982162144908804170292123038330395449119958430864506126027625251906090399723776497162233617773678646886197840047109166627146037686801989368135101226970090872138084580453626452171752286734093250827018740735980776604969828365041642723694897208820010442229527200392683129294944711493727156777502948831239515701710923644345357087021577517900877465481607909825819817856582011863737818718965080639356138733263995276355722932436250027740089480850738280666797885993795913004068365596026640302434058118861892628741270666797964621077723154448794600085279160829666256676314692083243303797314783785487695113388488394872354533966553665796532644955753204262542506791663265006304616045397262712201756232832912088301010820112776674789729937890783889060405566376711516895898520943087078959249459254374333095934603607131281442467632130135357114822924891551053176168128344674267986379169185587717198143551563006922875499349480297939699278346176911053791286669651895763342248716048705823641958003909379474216098223571800209295031858109187125089383501747832608085505957584842235264400566400428273390177636695568639002368646653149879534688839979134693388959878534198182750709793367968147093405654423236150730738932407724509445593821667888627366649305071111371568141614958596411582413878101485976156822433101885171110479602616712599355486982064115776192076027969713717725931459210949098333892139862685237519424311433169030503271042964471545519904531467047183821667369548853115102355737578459419497855789972564713534472593524551882257129800410409783902027056226004592949199796677029725557927982016836794682515194956371010137936679078846271315741571845528316653184870353586693264995164566115150915768440747852898437750951019091264780977403949364872007589428322017173851678263037741315277671293589663284089911786953823139872268824262654705171386019666694319023250835770942409602568824695331384110672796506178681052145594889065864450220794982696003729568982689874305425983528959006928928838092380854619519608924683920798247092892207872662917525156091056319938295426138539604763061134706446231076076414032505165587960553523978010629644113032278726087400520655458745404520866182985008521000095944490731520891987045372153207892686959879689397815828017881975665666467120919082035653768122217700997838601670530987944524052273187017491087116566067355806744943937724638620321387119810853588725448231231260604441279655804547286687260792015681385771429072436462002789843356825517752201612777882880057993270224354312857404978012101738057776287377439540453261442351370449189691840831436039804695019724916181751760031925532492840647386322668384439171320165267700183009608355585008959297000500947424116623679009694318051882119477018524395782083628561790168679557652392878354088914931446880364505894463380292673799634941422241076586692917754204205118124525730448370184208062931636483891528553761852112896354203165613406213104423605436857755586740293299458235980110330639671367596921701585797061747214447048689756219586997003412625133252765460025515459353302829898622750401594590237436199958010457601030896090054047611512031327667681923835531513714209943880172254035004431330490813265222563483052473054562422656436102850232439608521849750412445629487755816558089660557914214908591311397625894137587912834059503407446231823716254206480738583443268861603542092971475673290907248421832675227160845376019553245120748828217912149937334660287592839465547475453274448352772160303902068975657064299693699523950512144072044272344589487665768564138905855489001588479013730161825901723839052988337745573301688893430757757215052782470484837020657509268285101988723933489866631008853848071917525391284246433126157727930340226020328329177083534253992744300994607411020366287527175524033463809863713290412530112863953665886167867466618090221045750369971164813206432164628681926262838725127407706784485008746504941015031480016784638275551972522566996205827282496270252798322891186720589562432012764559444540443771873441063508819577853625571899568625430321733493407411973424072074709584012201988633818282624458237671874078009255598224154909505629554828425299661778902757298290947401211199395409054495125159384159097167907029299052387449841682966339827787093842150155067439493373797197034539279664635797081445645480777045582767540040063730378991117133379205872957229537061993933493866832870060253075874395790639349912046807463403034354025027093097166970503333281928608680545177722771443349429238671784326759406836534409148809253753326665828959946774718293879299224653068423129583028627402784308837695550741077891002356524989861658639730708743559192772921611262653633207290666004411153138256732200132322151630296714806700409758785084889323659448914697044573186150572295902888779258223376469452949438649781140543423013050939627454917130985259578994648572919499171725304564888749444998159476842002317568627924536878141333470922836639796560798767623719157428491007260143588945336907625725292076068113207016068964496493506694534919172914163149455596862680301702044025573507358821029662514886046476680257516595601016896867560183352744657842945937794470115796673684209492968402311184151339772076215057207066537755018055755037598127543686475231567452362129451981576559962966589002463736138414009389720021554259166846214331782774365217018185356952757059368232127056122829041701245612018483016737720616972793582844302525543217758073417676474778213940792120581476726723783397867505009406417170303721837302705518811531688592098844211798667621001411972110909051798220281434404220099097135180719029664570022422294826071516382110640861930632771184676027275551245600411806041207324225232314705190494824994999154107869663337030113990268077561512131163720178550566217701952236236758307201482329311437198531014634534040371453157875037913547941691535629227544609650217029370222904042997559151625717886298266160838813661927679248162639150451284779911478792377451449623090403153362639126199532842040816517029714399176539547350191196999570285878119918574698630465983637262024186756098615079066076732647482046596116422612183948964338241930795376085817213633965106397250323348022630408907166963689746509483765314272713956906278768882113730866525308296460897546958852852576430228483830100255497297136513870923010738461630709481640240923671561654132104791262176338088882479584156164222056565944177296884150861106051076967744790831555606069535709428831891636691200013976840348178050251116558692987799247580711297926107225022964327395228026069820577930592468586675536830939910197464617666593306113072847864768066068198285112977842649350508845620979129889941614656384223249053707444828507234306406430224184038895458953790668947130889309317157713617651383607493492520314767497808876725253239368727566795939516061060995870214914135893590263542007845299915310928535542355079600202434840511403175346493855294459491414759420076488803933014447536124600233035458391122128706713715227415130154549987932748026223329956722685608780174058512501444249415615016422771892684729660442671082536845283031521168046544663396472886929118025616066422964542232145293626238269358025997616092250251847875415226083092334866785653815337284339458585395683523848104882343461822049528395373839738388979455801165589788198512789237385918770302843377258489368255822147393349206935335633853816503165430221021232453430013151249333844154137789145245032822809932270213759857997788304588918896287120818938240035471485051650263939932076040111160104323029219783410257778975476381660727854838189596114106958506417913659264680091643055486899809209481401087047755617744814737322716662920151763180849102308332753354780273594320849812503056948823867752879835031298908803650887185288088557118901973124526136352988150535055618596397414427619264918652253180949522895183835894397490478537592270363946716187370906325105637737967907581217119067524421517923187649305776192324497137092166662444249794596637281959605416684867952565184350952025600295816266107898915753883931033865341620689244423940581085706224399303774842549441258861867614542276714666448070963541504113958118886250367274433513925302508821180316033694805385225874602758909018092845702819560428037198298772958958554509714674978954010053725363440185022895397282372515694275931030539421928241861995771480756901639987398925963521254105464276160948002627026515615648767619768703403285709739862189271609154156299965820906227637270356708353411699685359965655960417578827485493327496073905381189077077816652654175835359777476770063448538092779645782247607366459550064760489467582937154100334967030464892796056342253529438624435339569407087755262750595860069988459560392378726189088689070219210969470315160225094813968750259655683359228506417206781528595099911893180221715175450648838020230307135025701349866766990820705311691031291614663438743182392125196605010198964817143367196562305398151212835462642051007573070534170845465874783593304094210087008005082840538224630476998280909869323259907381090744821797042380024441615952421169657608940806327953817433599899392420393010583127097966684842354780890916385799248838639951687041809822900035335631154587891853955649133229962407660786001726581332927269582016823234173939394965037876617164933460797441092407542442309860698541920694079497962833875931012628007198622041892290102359285891008022912716182183937066320648502807397902608505345700011816327624894525482319252328062214116240594536110739615783671178881364308010171423895296869781320645383918722510628843245213905102806336758283468884848660161231551905637190394688772034707093638082615757247203549810197204048247196441954085609406904327772660919838831562725827045964373824271458422575972958987027839664067883027142204774813033814328859525673704894571514782401416464510167804373994028056612164132885550595174585866264989181447361455322910183702959033632517228967743826151089587832184729124551170721066170423744058764369414704485540036939846211590182534165277627126422810920096486917505129469035142592204538349455468402206648748030592928960896562298737643960278496070838185409911093633553295286079682924954071521027035020122950025428422065045309813609782148383431648223209711631832989295514253604350638064998042734789287882474629166612307109323798892840060187374455757029261410235016784676097481161573323654713708609164860493781165369109096482955803651302864061537560929821218587869083166847859924556768599560758669494329134916400445546143117583573679000569931831839212474027335069427272675185284628116566227949405006495134291506937874236563049833637520731779356275609274280793304157926578146643733147854745352581060058135483732640323285980304035892625689132429281768943357388281538739219666181917564865131120247998954171945998266227082500480439899219327590402862021497828979039980947939312721423032968018050139442025862354007226402377483336898348381610539417490665289008650781055986268325553284081938407422106060954459018249633361361044290960940486083147746256615522562988050524492469266810216722182949583151804653609557677101515961926427097850904520081778001664892723625586296849249352074794671485164056446103573247152278418181673974945866480824878590091216671029366905468576498932016727733413384850249378664328923999139584368626552570014391219052202999373537044182763218858245409055371435629738963614215220191441381383528541049926479058868100101320601374128412556712289772271987457448371272731841991046295039899856006602604625666759237624488488256631536604191850676828500996442672045027839660699936114574971668092169869439200225700831822214014569890965248207174682038624056407755066745242220399006763020042417715594675356910967770901113078894757351355532911130265734106583405488718233056379444148119416170839382454440793921578566183774035429951049266790909307961129473801378683425947468264462522735959558799160750451155562755218751324840358286559162017827889155855799948821438777517352435291752062270398571491399156768390079575600682871251097260660008017329892442178684693738479832737345400759229721045651904584822906800413784905478846579854278326103728858245109921004720053140686046523881097124914582267707319250542570644031913927917840465049430189102653592595177562637427107799601308303261207029727915860317134121550386815872671766520345670333308396661578504997013934981830587868838968650111961429908194806480129721695767562842007878080238733641220766599440834191041665886043877935016812914898673941682564335298380120470963791327896265561130125069889846196340178121168063694125607127451509261680386293975166852955732107424231734370490345949464599981849502214281197483150305797115746962997351827243003763708774302406492672441937958288413845259709794579770411430027838615717722623317253328065195346426057461445373872820746136018852931211701126322873571659147044785221357561418625726161772604747703347634504756369499423365931421260037724615636118770888654049274272304023464257110147182352686590159739408655272388169025398441382975169873120285698017964678417406299287878755457318422446752067382510054050559932777306356146804889519324650063833856391585382340544536193582116507000322889688724992320973471198530608379246193197155559198292562923854250470710574905760723180358774816753300473915138991337892016834962795732395249220102262856478760300811516797284998878342836887853552990737663000856855579444213881937912187974544608604535030369508402246507188954089598850803847118519426869783312895494372514568815571683920559741035374893854973983280188251312388925359331539687722420994436015996088674551613535302438064482577663652357621450836808162964022354671491297417287942487592507979405853965466082661567318210392226068987662033059881215402517865582185987513533433050257930744628895129194463267909945780496181867877889261106474186348773736713685528282995424873919988678879494208403736343353942076648054991910124526858772147389034939292910586121304280403457916242246721064303293220141869177820991526859416953276134102905649710582808932107894586937062738411275986099545946446103699635030762072977921411464437725255731044524178059117742132647269039211021568618552382387899485114192568495345070228509114042654553641506650396772061779662506655021762974346412817048202607433155346694861300874769818539599063766190298189785616323782321355553283509887241575388517987975524309889801196275867702076652479067305003884642919831192188149465309840156368455078820918760023488653083972340633219968888343602470934707035174303819137668097393363989151616595842369684748838649682132700227095201787037579924064788658879045136141180804793143018524495859461806214291760584069266295847650119203754896011803556430580480199933538675463376873576965181983655849028776201990008343846014157855036845263240504430834317893123006724202643764241974975682531179939397766318152998648087899833861649985512799955034040840919675962263894036975993985502459810193451470929249185974542456256912298327880497948463919156721448324602560338635932319829583989361015878105277535794220361053716978490951462687483699155256976939502154175175440405293620933198972851010861041071051745280545164812090604983768223411947438296991694421874862143928145234629961389550304385294226017100298921423983486015094187228432871119799959288081250567727997076476812897574653232087673379859249346909688829504080008728601813622240431442861851353593278198796475306815513320079658825318056132722181486158188596640222316623110295927861263942908725297811968117848176544899791371087895471274139109555565407290653838085987211277636758426906084361549373474279191999708707698557482484316014614091107504130324290682633896783615940151914388600688506955111647129217408879260036311197961012707197937197804051311527953430027096346005570475717075443939856315039756712703842695308640499201435539464213976539470599751818478719030500677895864840038854511401724662607401742990894584915888849573267979113784445327852491939581026967714319653777802476881720997772390250695673569668552265300132643861770895673308200404555672309700426558084643129389058902796727073029020957290870570007726376088156497232902414555870171828483397479340993278113405932818479624945414132023235690576169224429692243387483896217549340871084706217401224452963811083261676934455009662060122248809813007697121762774445012103492922378820803219664008192603960894140458735828423866310907380207971195028182288311772924197930348449901530061122176303481801590025160895068755498618565898627495969558361244608801673199407073511883484730025284529504851518149297298212305128583410148619794967439693592089653467154578545628151208287432225678051724536643503224706296140784470772857745915044355014319143619461741188243717734104777878182814352615275947429226227111364807828454818894206919989279274777687151908683849441348791916687260574310812804896363829702856250562368682081859472404042260392590869940528717062429724617322272058110127220404784303070161837922607794354648345157141614445556727870123846583420552126487487532960479814292454871608741306442051138665245586862601659654754932840599230166878080117753962731338430693824800670679402889951896412519276661924670263081008488381224292378257084559917886245399796639448254511583760044920875991683352678559799238075173775895477507493625455216716170070872885272507597718681869318177048127065415348617097358931009489500677292763343815186184316962089870785867593248871624798091779619954096873975202268213100140844189442492975143996871941328362770611940797781878546252959935634449515865453602858289426099552666655533756258003918651520214464683495162367859908702017123916954465688033850551354103635652820584482123779883666899527277014215043875817968671141069677350148988892216826455872456249764666865037762012779904066051228489664090899366962728437649933139459159244714740272636254652027054421741966316629515776395999039825901576044534043177386312401392500828515050316510369350731337177557366360378899633737721174435455462516155383095524712857738704078886084048354664561276564601113233538374407148354323431859468202434243327818484457779945719439799302838927277182262860133530504447230801628450153769878785210002774364403710708303409960289278172451698999537310469380285162566161582376558513066721702077269441701563882066573044965108384484430156565950762069734415880340170446527500800545121036083835794769493096567280243540697817689663055146169778510114562545342586275360021255926722861814920583867156606266198388444311484543820431703193650563755074350405297869077548585301342783235369460401261623745223205154549859758182785074293001584802450110539604007783113736001258415912298636628531062426949945818239726086705182671358035839255331678481843288534826463734321252775658491386606945625392145532884063020012140777891430840302396465748844482987345623868348163939873081023921091467984744119055773777755073203675678611098589454140047259035045039391500878931639640672729875174681176854288550809346508913263881659045474828331475376874685783470608131241148600831537981958311116465637770852577517789305138079612592593761729827979273528711354745474314184324369202640657500862150033710497588380064273704713052681533725477614964246796521605136611124502439204171981083649263308564338144057220914438520801334283032290280939758293449822742955246612747462807861336171676929857532819354512308520586126442392483605248834607708207611975171297621333908867006876026425946728981790931379223191593002278765035251743932088087722983265965734216012882190600918431230664506559918731096001712082977918459058206863110140538875096325093096144562986864817383542058967076914184545377121996306892952715983505334876806154305539930789943341579003348984229575248900075971558634103406193093587764371978692810387159931099299310449536789912529457357972205259731358946642065230597660401576854201727243463245142143479389474992931265302569073864752776554772163765692443406632998143371334045160077552491817948229364664618588120139794452850479446559815329664916671599832985869831694146227570489085411197596171630705470102531178042836654074402438459479092446353276218391715588462195246164775229298740499510720092252269685185938305980161473628506923364657151140632325523551756675169514149044611300167656921907146902784441824507846791201568173224264815529275105020241496520263163662693109355807572597293608380984437486010371631050253924089683631031686738741703886053230313665968224387505079656976473867162212720947789873847813536198238522769848696589396525046207121614186438418889161897689389117157737287836630758301490327460846623969340771857449997348194667057021271397584241478842946472527406623344705516407411954892845609467787147008239852044467241863632340735926884220203389146906508757436689020158645100719495163013810621410856822283377167549798808951184523598750141432617761402110692174776466415826895996004026191356812916828130845065483252714896198221266334148128966300732371301095089032646098015967636712631015914021195890438724523391649020172404801024317883187882596701536316255076671514258511344865072194300123144380982713183362697993165126049040403649424708144211302104685134093439845739229607405787983640860684097425107056966872820517435916344750999358296948044868871799328683837312539552304427295238251443921371979492247376631366100110211422827697203496915416439459110115350177172572764088107100746367522583031606059238185320694265901456221662019050823718032495296585911370153463021863985529717938696072101473698583239518072966673443633562267829338617344938150287623980073173381123671539028344434278080876164223964746140699735137432480991172263531993356281781742259793015435532935903160787690086549294661442313573664932470361344104691824078252296583824089960728719902650038527933414889429840933628870857316276588444185246380900529597158819448346416525124821743534925161682228274654647410045950541236052642983068692108906963133033223504396850906076724482774414173213204515813048357774659702546069397729666015017105248513787849375547395802204008212158425204302333257167939946266115379967494820745703423577012790982424478935926129576177941025806849650260612156778297854719199968179272411580116329168468715118110864440996586115277742732617847092995875142682625569872291685433517124194123645599071989258487721801152151138558933563481042792303253607852115585349788574658750830285919555669664235908818075314804198415769518546386547831841940319951792583088102528278474528022380038112447083811313558454096423305617961290058178484900678490046189942418288678734338540413933449240365018049748426015390403337398104813379255363355518802224925925407939032863309491832559243209432098829140547103052678898446124846102962734331983679906335766062912768595644518644919190317157103136805845004034803785552054448467925864015227116712601918146893770288844336931702230591468799699907434558600147896994619407745144509766318467673923836840460493601446069460863384044356418115170102255452847505030535007173247199514606370448425165792276775339558585631211869941752738781754749725168682534301980095017140487101647910950400380881651220494581402611789381575672549752186229612199791267845948530194530144145532877180373980271010052680046792789333388995794069820571898500346971500546282461813194379467769105968362001975405791832413420818876836674695593404257805698936474601013090914862097675352956312546987634283118710695385656197480985624854016235470135549070487367389791551019874379205589078700193751328461556163458738965231418169379792788212174171421341795789346406338765399907585531276240917318154118751267897136657801392619335471220602743547045316960872585160102725793596188884726279126074820613122413734803779651285639476490397429471139804110840270070589103699068860368315033363607126216716435095107297007416607810536536623591418781641380624787309413131642660776216670377366342134520943069134470641364007932624683459435438572857315063007232604067222269319706788979814207035362855926828178208296382449242874740462783493502211551047961875410243503958179207147376650937766646710489140433738902926671352597080116384177163177786990507256896407082845094159984212311998650843809383595385846971290315978782741512215781896266864568968985260577179537026228304097046197179159304132630891780638497741501821469539246031205792373784881602663988227550325590325989332355199676602277588419434468690854863086827617313207731872091319009215285106742501409213412897875951451179798153350566285113858604989556796989876756660020532509910001967287504489758717484412166258671633048230150773002020467188718270573284943861475724305461996991069311282814632988395624735251049767187471682764487206475052628283414551911948022482888061337568325988651108283452402512175149033947884051752865429905916004154908426105899021366287951254918745642335921649804093310874424748762297993878425815052118070274917527994956959397963170273196148403123848250310325273141032728824221731347910519604879721341324931322635191469535729831596387380210620752000152229514476205243241289101756410724099656333133764771860051605143649749379759330445272967656565005711655366779299625269973335518049542164201716294615081062500697605652846993483756190246087862177382085420575869987589118143251927803323507238767957072845416225640021016268205191438223322355298219731565414221858192132524704858128296641818359182450195754600800514576821696246088209832013229628516271872350511510220385012254078424284698669195077588647847419509570393268020475818890016223757986141876375807264262910154659603861051323887206649427979165932776461698085922673638394441970068515206387103228860770394325651839750263139806274216428646627176139397457833731848603376145206964448178929205573801255962751938529140310511897546617295115905660195113481670183270615816409739164227432775617230930777869272986638030331601283623843320408450372171946095615198503412513993577572554343308035380181998815519798592476550042223543191011814567270737317677646852921296522815878821143332826681211323342351249642674716379230905957855925909263511855376837384853275610273568035412999007606039105238608240063876282591922884652118463605343474299026604320265938028352698662065408825593024189830009381160491544195870326551605719384237161093406984109425175447791859545352396670888692120034558606653811237465976927012952982267921614721855346977871426739392997167468412713324134728775701482261508863406553368818506078092561594163309562345321907678737621525987597991128790415936374191729930699883669105316020249525829954780461198899562106541830121179324355541870589709654613151348800452619660333931897836460302139276644021441370233319514077417368529619176364656194394363665207215017096332034672243346925777733377764388066295155556620284817002425726192451820880158021118112532605908160135150481349983041887573831834603853982933700467185843872973751411744549597596614051299413743914144797531128039996012412095742755025867904735362846061700221321846749829155536837160842049361628780944180592751193667529033964504468920292731981785264596469031540736962077921469025238675394067221343553142185165342386424727080815590010749623222348245225345899697625977096618564535686901489802808545918523475296655946361856904923093900032248044861494371401329136680877558213761073688272634235146727325392201065991708886687722467367827236624946657010940610370655369226121978238557234266949605945307307015563383847541799170775142572197959516701722918239893486392294089859575110972201399443142556595567726628942256854059722039881356817975946539247351284875362633440691684350972609248915217327858414170668471726588695995674140453381336932688743495177896461509394251902698005541503462863205981897074459059596724361795504857970282697395334308834156997521891524056412783942517339124412120381732520319000690945282307899218796508428179805312295420448854553382427124599789428590533926765379034716364103121699997029681112282405805189140736370638219050095875606402219101331540610727567205283688799892356613420072805584875641249582935588644811720279312508724079450869337321773306030844933809726074133499941333292723125633179378745863788950748834953509875119054805017475143781636245624239388480584931587588141977498083104161354749352391150357357446759788139772191390670153143231143537972746549342783404141716129885457271461188880207775273239612462806963562303503049254477861884200697675910675077592775885544923509182176495960387918333386134387768896299810757148996852778076497716599349698831792348749636694551585164066255421837293800203301187922481358033365475801927707241445795947853419809060380041813647206240513447314181048672645877755174188212981593913603116794346635795915612383613627903269212179937607775518755714051404999380509215437872634738865897168428561557725233678904542924518377247192718719897793779369202205385910135612020330016949573388545285594526584110864966018284184039061261441889817919117255271096109393871090849616225849955117105790420725949925149667146147108563383178338513242559558669681962118240129160459828794761112785644984290838609966200012722592309433748275491502917212052913123371872980472287222610439178569400061313818897316436098655024984536506472781475494908814368429972932773883386509725959446192455955203795845978623018094691724258848442383909444410021097313869424117343521854403383610932946806705956750374600768994263428849920506863925038105873858423605661538460235803816825070613990771419472027622375622847526004032698557976436941503942559663189836480862748394105689123777135912372732972793862283083342095061709296435930035299898083751874324645186693060322435492122213014014486838983178184867311821852198337319044837989389809076163176670566592582938356257606977410738061379380677774934340576363866024463460900510894862167875175368545139170696732554959812108009701216274687679459174876075112499870269926931526613492002639634739597940003025444913620638603654065819959962718834258257090894969949493040366920692250419870299771630580042907128606962710760071597907990363640389589342477761815226425025164960291931433522895883039999306712890650549397181305387479983646012237366755813473742506743567324539282796146218314838149568502180036220210949201339209081612394728345826950848087004997692727229373353165930058978773125313092798356593995608154530425885993167456887494063359720909607592197046311475611212736013616024030212127511996060056144812271509167738147937437801273949323648198898377549339785460200539234526665324433670064187470884559296154988980211795319351337996672913058433567487165847664777368389185720764059701462030143122102634742486597435100299301556472477768709738530078629919850911361328879055611694329072449415896898381891771703354519142658652115660748834242207246292095065175688870756473876072524917021037242503396090915919743012734391127313121541133897537460983005564944355816779069030130347762033845930559544972358465643018803597200263569174254294188671988846160500634756173848931326052903949471924667780042023274881534913018280055115688925544767306542809214258734170238253009078706371603725999006414322835058801981952518476468683821793136121198758739849824332214862715639002538881413825793309276236689474270518583420220516194846885379910774362271306081131047131437011778529568381575272039220189752019889634219149355398123986196428643807738911043790003096361746316012144180469379052804524744489739875567359270135354274240961685707669322377992106516740139648748310132036737233821075802843726981803732849920800681880590685434248725474303540989138027408893236397182840283847984387243315020649419130445692482779425569815316163113783794776417761690852213845087801655303184998298414372962216961560781346053097193915150273650828808757005516819645080783373203754828861296286011173292313652011917532242387791532738188932068914114130795515669281189635072926267966851162029745770028068913397630376710027873397116784622812375513840391563607166842026300448197682740324091824340452062632681048735041001901489308800995804105479951044907244438689015646537563360647918198435893877905985746643587397169700616336200560920178099476116664770053588151029380321576687536696574237394569925686725964994283933485950857020972312039050898270673471668821872631241181453675878433000121069557734099987388114950729584446035031447073444318867829109530034891642601917117857195872476360947735553731536704075029645905402459785212052390959474378973367352023978302721371119468086204706199034167748840633450710745503963773962737747751945434649364400225374233378075530589064176212493822093063773429629338373397585678865694930771749314806126411484893507611764208119467744857149697883203097523228789270799988648750520329982987711329899530595968332169140170049831595373140473196515110866587133835426026472340190140400389975354124417608933085130025768050749138714188901413303163534293446263247797270689452937869118935418470336579223211799334666981356173517015654974735834625419397655829149122764980153659750636153713891779258243766852623969545950115540139813694704702154497117564907009409743944742132848869372337177649044654746731541716719470067480898514553962065736598892462498557075806867872102625030876465812354523298901784877826074260350893562905571689562454207878453036275693436352652978701581514046392250239780805157042934257311816511879868821494269337238766383991105320294262859854642904108725339507983373327010985706791699809039143663987261652130215625101765672411362043955902533978503338535168165722869956662047679701805663422784952302436549130230708524344752805975719752955493419833542774475452507660936602901691968120799075287041705686006412128481211023641290422310896284642969703254506103274689475862353053634107625535280690487377876647868438108802747592758138035723759289352881164691037663047136324615623819185341943070756842315085966612466226762909480777677490239794971021671913973065932985918827008727190684692237077357435688331546407374850698011283298644669162891148635015835785046433075804604614776876565347096807552080101068731032483917420714288613203720778689061401457231972586071615967018313150140227611616169503395160497218205770393939229215810172437700306976246588323418869855838117654397176245151485962583104828881072028107897795611391837649358896670007922451846243771207090234432306357607282243167012902138400603140786953487374924997128414979299768972649074340738566690354307384545438983310973269095691417475850409404345845121897193204809887918784863764830808928788757421571682663783940178798330397295322841340441036493940761678532853099407743590795486419831305786035804400493783557641091388116914587740202646922977192448370688743798678942632559366604753522487444210694663917117356007875740267405732902694247371233667345951744772247741164586426717207729855423912788141252391632147915089418323581762049774400258369722009739893492800186804887397210234923910768012858330577490545259836581394221718117567580504124630032304111780026359838037788657808310081486365178751828657107608429648530407854931744066443165469164249551045070929585783999562304241620634093457534696276995107419009550569734706329545721788454818808180820540372557504894799115115592498946376320338992722693178258443970237986332175780523680509349009816031530914333852331814141535775695765413338168456004271786500842014953284466235800651931225994733457606299363043577298057069098177114532588219728876961963864209167052947944288831400746587307371329218852951536247448909223225750353954695913222550069856764406390189588399027308826886284550496825093533850187375595397529675875063770616259990010197156576003203994952308974839947444391561422058805802431841126143256193933111520240686114279356306713425526167040742515980878241724106278504058251514127188983396490009676644347823278795349909797447495639356923077291565106200148896700908306325089620677515426769209456293088054142388057530809671585144556437542524698909898765789467648072770013404672495552921919625541571860812012672345343887425116796141156264678229791276522583724249694856446971110844525743017898597086805812189920628695311182179218630456235864734464326427461442506285753002783794876733010180907336886986591796868432487784072990426286357505877278150321699125151397594852946289392941590325732861622695622878250229624678925119822526228093632035443404264560441719609453618816301381402722268055745181194971748983752729590153703734585778360588357288380367041558876380300953492428118823490077698241098175996041256379486489205123609509233523105319451476105355381541795065203810716739708983553538167852861773710983191373037286864965417313524203477890750061800057903428142695045659511359329141230185509907478998401693723420024771030718015523729540161257401806658041188521028140712727358745453470613476486698439982154099039712260602251002629047694939790614012576837276391242488189074815337722561276462448057826668571943520836741749700042922666116454648602427128973667493331549919492082229990306428630250167244971962543999789482717979971990578594806901761474435337931532396977041517778101531270883977630454047018350970076065579608271608148489594272671289232996805039558260612867250644908728043973397587904984073245969082223982213174111488321742125094796525657269247724696556451869816897157005373924155921185668221320780114508240263460735120625558661203476323588959041558738188813778215347777212874868645680285676808723757187765196653587645446254888801346129670147945327263204218901635017588837030421960424742455492717072551034388196853920864985154895750868544977329614874528028558325300744624344021103009656272178364049442451632757440194849702378990464333488412566310158564118740275926717349417252481444099779773565503668294678275414847462076686541575003848791266112249351219837546320316213142857546588914577059688552460997113897494987120195810382287246977314217703152618394755062961448828797349931606127880930661775261664548397907574329382368912571728510113545607053825409703304128120616243872589357142113341778395826791006890661488298401545659743231467904507287740508268319776649651625558338649789213286733372675587105087309143116897598586805341934800254442115096537572074176862544633482845877586611295153399330004807197292763533992524041094830365618123768882829004706937280541108539549204490388414569048447260641936947368299011557135993457354131966454235761261248913233684229627055387847400314302260621518764218743585476174145167083453315846216480764677161690833789744242102988060477353341851204394314288940507790103119412035187503362499521916808090170833085910376983036859327926780239944413742143863214251314443686357397181405169565736732089766145003355747848053134143531975804315041623765565652739359719114090865786644999900278864654566434590088364356785745962294836023512061232161563221541058585232075401050928166288244506643949164428326622167204196655310288267021055983207361431191997946930279382644025752398643070230651383160250497802928061028993977358020394471679717356006260172452647552895181894792610815198577717789251058575888626634999597418473237759527791249578916949738689225392893961224371039784022481006171123831388089363000107554001232728571692702078548007776051802369741399731868166718176421501734228217415366078247032961237563472431055592519844909760330494001273832030651955779132629253327052686282042243958632401792591414309925906418859113094655439103338386570048051522422385097637840886057790227258425318004700188573702638884539821542912637414421302268583286593785675436163211679941467733240658869795163619707739552340287924761302913144183013270983541461111045179406050969938262266955048235234852865748283263315944757004980031455530048710529516055557975656748848226285884601588000645431084524373431381544850980494315738211554670561284927042473793732591299083205563066685636973343101434182833021397273644104547340103798773306457333385222787021121447951738871644516658856116810379133969704209945497888237873737257517614845570550616843491342826248052207142434406224367189091600686194142570196535816043300166835816423538871556699172561396611389467693453742139922033159146624514473018409510970190204652565292790568823056754512312028166253073578066282554211910278370011928355071413371063779922921098849785256445032556227762736944471034160722997226537623781539312760281727644512706107142876195115289196837821179942402340499480681794017859331522703831797659700365274274568443820421245171152531118704070231154659271485034662262622112375028006610017108766759140356288294970928371874025313377207850534919789956052079121297293730349720699232445420011487840790435110170983819881628917176630612575264717005531317888462671208124551847877221004907862582497798617897661377033436125973960450442240623015166694079232785960438968012117432344072091472683932318716854912811112425683061725391477739234710798070849932959187460920104680489860507895548325805599102477413341916878435211905792547025487875368250770746285008787945871385068092381447843963316439689848745748903379910987172759228542168258711958586026197355001173774974382132327641681055884113566893865112330716346398006009953142387524001815947415794532820469966246554663375234650174916538048366279497222787513512766594791952325795421739403372102749413357290361799769745427982395228895323801191900075986153922460083943507096431275520934534251078409354574757717619731206840918104319451009737397228322400439846546783164292590464297951977358436199906939631963589492883486233736308410170252173941972478456347284207747183463679309799352040785562511248553684141635404930835129119175227383810086103297862776155544126957471682333030693960153817369694483111253507502087474277719948907183445311101001889842834686932196986790703877223237645071030350405108909292040747634919608355915363451578328580280772980749805343918806072812022233215050949065975865331296301216098316457029653418763838712684037076961391633445414867209080392438737174862784243599381716785817067499825285306793518066418213316315110279807538210122502775876605521097336227502705779075460977091514488749848482157818441497855487711465159392629219538455584789222392975759762093488133292262710150004741577869560472759130321602557359957864307707324633961527810891905439395565869282625552963933586502297407896476418351318885711746198749432701959935904015534564254008469355187598570222332326031825838239112977541952023500858551533774682903693358682704272638073923653056391714794979379773278719054609289607794074467721225139503060413917291138484981229065919099057352628082287443949032086194169875731218832397175814589173975627131006963534805257118692195901923669420345894298326342747868588395226007691139256213021478935484789931554780608716617687356669768968868319557907880909198698939698399973430997056336289736227985708006640997918057114271300264920252061099544395736202205804797259205190325469998092627275485261254456163787067274228832418762250960136502799453296225184902663737442068641985620686293173745890097361201189793109115225059633081420019862852934544725383257802334555421613609178855292166044547658299848141019659605911494040372046420640027835188014269487496483008667383362335292780590169527948684424599782146251545698301522488733622545683520857356389328417541661121221059413950265278685816690279405025456359980072038299478265506768564119769757693499864753321696379844721792344527190299018819097096925960133480989933019080609008107349902664527406429126819738138378179021333784144678388587751429131498563815973641279434988652381926960381931196888791322647273982644557394868983663823988299015317127632506829225054195549604756193976474442416860060338337588115509537171934831591427999579562424001304862319004542722851798505296312438326337476939871332794543073099589219287944743549568820773080633858285714494734672576565469768855984697225445885788986173125485587478533111451539064506872131100309860692521238029369324203742145977368252810592204904965579258813545302074041801577303744925053398373930079437556517932789446871950117488635703824982672979116043921773432388650017213067486245328591652373385286703636302769549580347030102299010148003390844685752075454066092042882507089480908152957594137666375896785072390191166536321203493449869297878175302359801894695953865616452869075462368727737719467199750421030238499239934907629795640465907338918798690984374428579695400240071432993730923432650581736502690050841853905009974853965628829846629830685343170115330341109282897208540465247379943441711798688400853027080218256367114820238574775136574873645554444541338268655993981231487672973950542986288477464296128425501615507307243674443248356339367643050315307305009311958022587844881687986425803766955964602911288678513803482100351117188122548656390700378362767391708198632284197352335865555647593189491917547896844433394607430130455113213820695986224522696941428575745675671225069660835634158333427603655024165879839237160561716107760668512919315347692081723968885229636772709839866881255847457848850672218615862972164104236818622050126537172251669370271381986267972096484688023657236023034509378925821463281208215699573453033913353895853945131621682944520565364652680491154154192905626835424776497319174803997163015056809813380251713754658698934743528799171931331878159079625994004692661178234659643166286697312394246768662794172977218620070036360843815427950579436266537512005203485042923744017908458932224957843342662927628745359797651315442474353278894229476321538656078632464835981433133077570454054904848387520289851532611543429723934501312702160557505340607353662970090469080296105312553556229763061013409714100415338991803783706821094160357249557280048137717668907164363649563288075268253500009106622991523442661100111476347607299024931952217180864974981248486472893373446408220369363729550856350787670332403270202804219944319845290892040702548153200061703203729853560775494246077795280918535094656187145340451272228198201503578372990982664453186874384513634688074623090346725404518337046490348843426769960528777081469780063374384022451101978700535424902064957077642493929946509453097881617355836138587270691017067540298069513038567309045959513705018506180525897520971651973317220488779935865217163859548688865962703227914902844720386311560271184658507728474554892156519453427845367580564720775993389829671126765414962429493674073482808120235392690019122743315858123424218759053145273723667239831204534107719690008839330277459587857057359477240074886740617862805070186350218228799623658553690777561799474405125341488609882600999578815369961996289963442171358824625642261215622921689272289565531698693498278888015718851598006963327146738099373606375772800602988389349256065374915658778598605229327067227003637467546686641024773871778470521419691642268956811124405889322829115211867139021056152587395251480963132481020143808923385629149803041627077938357322448903336100571733265811327171465166339959172093020101234682930724959846971950403694471626250317180811782937058868315604189692185592295636825102129257163789232943671356909910026909386128799284659803921249552997084716847141983399144602899617107179335277780555776068990467164359436078506244757618630767533220948988327886256297148014206366257351427742834593489722398388835582416569331518628942270088167728376340647591504159996856978601466570422509312882118095678215618685885126203313685349271389761092561186229982121326423378887291529167509495258046970621155936210819403510241352443946253558733109879569615106209823993531684150375435328814914505060874678211401181404104121319518104504169975306006738531057273657524608958464827737877699162112542950209940438097857456134630395174356847668673953985762729065707206867187538606298226546987688872273794777916093250172949280567432737900503794491295440905656880723957507873795398998314857475140389623876810422143205314376443286270495421125882331637469694515800486238634915844788427781066910332082369059715889733818462040572624381219139401773360036523792003702344755198325370002966817185712569629046985004880979018715501003993786791008451056692150517989127138001334741865000242515877024679067949392047229817720242092649178421983288744375188393323242560557370143646013338614458454110263680101608672386217661655339179037813597378491277895925874776193568257540806916320202905608530679133388161490032198954079927417118881246257206995361311885463250545699307618315631253127861515364309480876310634321861866715314410869319559874441800428501962219380689760824292489456085820982606292477695084918130470812078018346188612359825235035307494173233260418481390640430199222642634192491017359846824366649884881309260504938391021952084488925043459571945937341823693766549699258324148154469298136035960930784646321853160158770814812085046624011178136832811065012666101627909991344462759757740887227691104305570753208302222635880713705075751208867133482633741167050820842696313869657545979310794166527049053167844530108148729227590024917728087081546617184994765395615975895321256246331587056616104655294112615096207054849458325653498511274071169757595700840433612889305569807110563301020461766682028600129934414895080160420454589442751092298634769964468393685254192590804928974925993904188555046858180314959046912555495252492622837269731885461682269553677759932268065277929083361134270718722712941931949921432826945038118934497515541588781955041124130381721240108867345487285976264618468776361861378863590057823540912753061198298172158761693591391678639679620194784979809503076417293040936373939814687078113248990800726053433525150715590384462991577736289728308341615718170130410949171293723301199814674586053708423067153864091916688712441899090345530047814767353776075805514267905480862356324090850309179877018653001520281432991416079115543919446947126732364628577392250968886704940071859887491319955126989668738425122249570529710314518230280784764278509018365462338476294818867448542341436708104325760873890806964634220552151129875503598435544440935410698583166343813712448781364721742272420346524822189467314675142789133941171098674217216368576392106466014306133971089278944283434635024573908011426290525395405697158755800640310438148466158129360738966666015653693538962363357647576849752566926800519496421965232675646204802522594852559069094409371464483538915870737069669590312000673381485895768852476348788971646020318927032242670888521400858064176710534474744307160285856713586924574005886325441108215382387405104746993851651980750424116190061515533534671401881303174064946348922275138324636283841187354752672930716956949523475367650709206360383512745292424489464162325049323175533568462682895984860800671008085935409085099810105850393460280747572087577320612452185798637537268959725758294559274198947414237640657368251220201830060042485362898861945489895440654933781906867777544306182857745016122309118488353385681713791587976160775685871615184996361478744732290369532963871061893555024457000810701123628062078686317429118794093955097999857755003480590484046373498069324489533809170098353676287345087319616680139513976905853406554139220622944906811337975491642068508166449534893994438708792538809676024461602542555486751494237681348982823426301367864251725741488666970199588784329218800262452604756457796595156274466087833636733559902106531516315506444921387876061273740293314504794994832110434631540579116240284307507516411159646442367523421230325995284618815321886194677433408690365704608007729751799239320304628500438523834479229979523137664917402308422838735521260105199079852147157518419359813318643121247592144625513613147653629950375480979921739776411238111120734513552764807413698261683656598082254848619164367476120891931529578282372735495667620821686366766666238265217795536576236277775985078878074568019942456469243527592298842739210567359804875372408883828067259335782449472978715341514057402702111118994726936800360984663570402486738296699821087258536885914926721412911672314550171037770751450100143631221253535235761018868873751780469776812355920141648018045436908836195245022303021920502448484822379562012688591308703739504914692493946681986333781932672116557635770159894229936317332954499802589829751120844028665186335987667117990724617221460493480441747794875074267296104751150095659912478601314710248927660282760491155596216489231926524359942203469752505077002456304538394118346799925289732815949251628365393305684491153113720504539996853263139608107430750534441670042549860657361626709681869901100136370583755190445412152598999533870484104932559614317198724023583771365939498395340389157817188792161516441179515724319152726778643116537509914299947057391138599386614103159748439994269427205820848930362490518194810076357394178876913673517368193656624500750719390566138269812672892138076546615370957648414859071316151051656798674428099092676525209195682614397849377805486376696293675929841001542536816304594737127324424129309090954204004312451118283490473185674857765505050503487869285849920736514874569186544220019779786505620746362389307938600607308401921542709002480795922646068242185609513836977200691933717389301489983072451890294976155753632464774754042102724982617485527926622044060119626737057999612843430643993296941869680787801622862347786124857708593761886996188134444054940405420665936394014688888024271868336291191324915019974048523687843589999609764355131910504088179711318015534061977853923256462748253163608893460235625897728626497540005711217553398171719629853324971419033656842924125962201152108206699916093749671508326162439881222306902056086052177961765525110443497633140590069660023778681158055013306269569125599699243004738378735559356626938697271965616383584237623460069227249249374678472551779112945005043653148734030104885130811394212438857495951640234936370939582775116357956565018588540091004408821019397779062796039231993547861152491451287302484078103424014532656174627306376146348564223026222154363671803163714984745247852662354889763317486917973446924297907255580229765460007345066695234636523645282597793198180718757971743200380542236242455779596852543569131416574377462266503265049323791928389674928307452010120477014688592988171308049084714543765720880669570408812889584267073585002459764297634674621026894148218432374099249765772553954171943925266860851218745511770087035309628304022857500284975239725701706145230557403758800548473921204659117307339824965104736080984238519642531972634250915327928494999648397667143878594730529383418863066706704757464286837150951387269805062208185068057726513898132217206794752011014776093445593136202439566350301338996519469090013277592623634586855336152167545732247727778503056997189393588974450363000238374116646240118229251765342442164112771236123526759080815738147418180407702450867154807123636127421822163741930270625438171053091679872294053185467723643208135625274345496030295038782023271566699037232413482424660450171960640508940799144543306247511336339420392339805909577690492191701798153633064809170645149141229381169234843949992084642319416994503137740986438689325143429406731115080882651152917245976456520167868382180067402077853631232281079308478939848157870921728012965490696452389985140560690115089924587770211771877684480409938850931516118709148690377268766268869978280606285139178111773811750857842772293088913989931338308138084898698409379334810629309169051637598073644145744152837999173326042287512435228013879328296151955288270117243853393390279096460994810029170810385856888379564644042994042501989650775513736180574027385036738705067015856919098279209075700168967736789938771377012528143889069830244621779644858734274252678579047523845309071568938562543043822725556388265811975233497006774692181584598509868931835977622980751856952980623903347587007241358561054882087815003749867906550705442069793244323633931441983649555743870690107273220297502116013127929454181221429100223705211012448846432981984969122599547146431241067981819352485924046957187198594752199306036869100276231273199388075578581170121050771665913344787912674302448908326674280178170822088609895180982949480791164851024852587707906145626738132532460363773962393538444629673223637436178123249340689801492256078375813176482692283226247785056447879382591590214551842320099450881235594582414342432846671893221945629625313734808410885302878603007990550313134139553668899174387302282000629073474831530482516566656901012602744812453307456592411259231448962533667541813936082212111530715127893431366622262567531735456878455100657671807407927343182608424491736741171689219531002019343590117048565491164847984889437207459017694067333535287262334322360004404919499361833983476495725411287992680414973930457876821981112508255233011230790263038918252608584089812606755187889345027450995206543033160892904917887842590193302731510854111740495000038801238165951670762157369921877228217157855947649398605966041881463284150872995940457614741807083829802077470659248051806291496502421927084190496337915677660181908046053158226917657201421934103464830556945274495403947102415806826755006306905869042357983422807600878870151294723717816143463440579352015464545970270657104044732048612536660106678919391436329870681875657565735450672536335384257425442383423498532837293521261810559759666877359742935626330936576535838454338799583046742630278535156756123817779836402909413668099653053803541040093406627982295122148878217718445698009590187656552752090448884601955093650365250689795344154571259424406705999469921472442155824416296528717402979106480712350814815622041940444280396040028497649263010718001481981243265053082713224573109645213539442313036165264711924736669703543351589625186665528307213711699621616331939075878579600136499667058184741903421390568229323072806166854589148570339234477753634714243354369693388679968983838853956384163531481488441988147453187804082108793052198889946442691659368226290530330479952679239488842435175159685741182476274044161885548128890642816917092028178417547952731890709142823961094173978167222051318209869375880974848299639849392882790890090535016327811953693780368086523904794028713724332727863434316063998332968217560554163489023286725672906523044222906779993698083350634363358853685485609744589941451201519677157951093479828898701515604174917251400382687435142137018986031320811263520983467854406010082285641460142578790796911807480636159978196470428916985746014605672992547799184000554594710617476535287003715165805004860527886674676513554287185841686536375147192550867237285649598829053200531892107257108475441770148476167808208458332820219246364545947021898759117683777801113209312131896799554199231820563696178767155864224192155754314160934863014012362339999430875023079013371412218844716513399373437769848567369650722625440590318562180886700192908737176055508835753870640557408397186710401213911479441787822450421459886878164955524294704401672280644391863512258115017959490124992431929264787099917268098067210511654065434342296170157370288964262648199196969261818471984155730031502741829827190471926461362969090424195982606117176176804493129996057719098513939803151379930556879096028715532535936394640707107992636872019377815981827681320226440429488620589417124795908643571424490671129790200371262205567037994045204775732342130576524279934181724105590918923039373717570919408352674772087469712347148515402796072688147867181137778653325649146893363512560780728060743348595531810559008339236936933692359088199652608429260268788420240633516758952685660402074322078843322830546034797526666885614813126252444468582399747181409836119182654261438437188690543573642291686356920389732372593820252690213028273996570704756323734984148118417089592823747537430291903617222282162908445221701705878906589848399126815834383053453047844879735745677466879558623455355082369589935752965773617285475788034496264056302628013169194799864003408337163944140639615388176738892039176992209282875214977294974464061115226195790858769486825284320678222453154642527264955027444869519222402646114736167249606419413558702863287411283285943106337672330559962039658478568519470611984371518020390828962863142821786554998039469720705333220694631584154738110718019992364432660715383158737913367928846929083738079964320117695253966970339803713567468201086012730429717699162306859013687599244074533281752427423369620448966223375486071543993679399750812075918736316961077496730921694334142987262262253562866230604364797524473397117533757462247122731812763829009671789215482359461862288467420490327089471040463537000998445818769979813124937002743171165513338799394590755871723840279063330747047776361869139021599477273059871427096583788013623816511444675066489294568525547744049425234740712930498491771384109806641285355720932017229507828924894833814757052754996746985000282308445532831780631638036640001560639635898221686593459419769741910713957118360887453578579739196124241787360942728792594277902455044176854306566135878025069954705128124584740245807385025357051936779436584413677634308664065673170572668386071070738986872756913629328905084335858760296959010358082937463180040497935375818116141605014816245795984667303757215245930123878031339139058578757354482133143901849151260489536373117274648964216611166990918517785576367403904746800288744786133169260029829992787437193945803764640476842172050222736390995844130031167201316661500541322721297834201894752509145098700911895002111118917012683129538131537777063236623489079336017724851405141935487270729430577394886350581518874381734928687071471785272820974336021412874542630581465890975136993604499165449610143828696223540634901369027666414819571214964866974591986511201163941312845771745200260253311275031902159898243095103419483848241422786821327974763128453717814532752362210354074586191031446886818364072879002252747592933960704402199585409632199175703146362681257831196523801918925784945092747204922974083293354424899815686647353415197107719915201658691675468595504845164862550236835508679567513734299681163713869635394839064114401510349797205131868556936524401436216485765243264691586767598314601316169933286320217719820220189854969418432484855029361432103774625078932711093205160949866314429912503096889745074008182191156311524971070180017950629162111882928023549362019566725588955324204495363663748464622415164642344606136098932320593275300193262193119492836533151675028997959198052434625830063478721577090268479465701328396771135587746862890976197929044273563650368283325821517184813979268442177755248606860380073630892505661358122332888739093191478012307752242813105726699357425462275750079442256522462040666066628874769249863802610479984321484675027916845694893516641477649989755171769162862017677508291666028603339849366627353526788716706547846367999556553568347467352632208872629897923560098627375985415661917239607253403736956786246119486592338770297332563534503374721785722502980185488262877182003607053641237167330467231926594559543435734243861607941706869468764305813717605273648550274689192290211316103867140595000444515443564239715550109653758628280126772857484515149042460161202532150256531201162094095619769997399894947048582005122678395507354698020473641937055370168398264988121238021637147360800924090530528590454226984857894191953973841798712041835547511299016138814889989403164479415977451367634605452605373646153277538044688307412131030763222145391648307576883401749843593217372351359903525954484225009204811219527986957151706032704341456922395930419606610030363394704795029085956314898626361592443612544198503105004730264713305543539351234915518726582544081554910288673535260086617426129126367875434259862731007590840522314004182653158687695963647623452802689547723250197926817210005730309537327228346434080539814867370848772976732454957791267530709921611298677384980707678957678085388903631535654410401850712476768095121858949770428172512072515404644212194540074874988683037073908383235385904192769099617420600357441572076868237223487429586767312465721248428112763534771489250542467727396142137087226475704982701934742699394660019350340504283128963112634495438474932190073375882446804020848267963813831813609784101767030702443216004889796635973967075351952956808828038904422153416179984492501828032090334924533350909702532599135507527800319642460058010025888425513006564874027900069419726125883142444535689830920137488585556605315148610678213929809268370030343556865054995887613420646441292830768087515659170314645021785684345915108632934036993369484232347416244516042804976382768659566900337517879404813134849840368281900289923274630843795527068359630643285680177609985495486602603312935396568485395129116592023712881101038401143467245477514526711826223806022611462513603201128939578554089809854785222642926883693832917374006543047899785557350953095121095947059669080339761667529717196465868898812212531833676748957342104004091361643724627393355217968460315417411041516527550535758636979636702562333901811523261355200927711177212786404328285784648600343590564795179760288681904113924108406950114916103582756536995558748121400276408272830203152969917280420900689019557694624774465585963586604676227046785307330965810377908945717051662637767825530610671076244619877412187280231225505541888707088572856686375465874240245994854197124569895728832419434121389491030883936084781446726956004680700297530782263619720519271654015374652798474751345335092595986709052155254547049882323145114022742899290910074936086307042484065516749998713892425630440297799264547434997924868842909038102309862768991449358354801176501743640094186629391424335190047211612008012002200105186596065052032912033981899199509668950188897146758868558575244025532713774866039803570539579486662762274921015235194472849280997371623433564544615477683911857012962334823026577307130988727902696988647977925036066647512927666582157948708929870058385252779405049024415770978530273134404842111940595057708771205052176735954406207133634616652196344174624037870046646039295688037702512967420994907375633637544800782156806875116578165447973623309995620783676677978396877383094908993487415236598358687167370330101502399258861764735032010668687024192734680299486318827894019773103825660922603082446663552288930937169426535085016357089704177937637512203114567364711879680068966627943962848015668958222012462196970613741393169666360378890144017851647898439753782825822583682826648108129227263064764007485944626840338846446127161519195833789528920782380931199111522257364192048982191199896282903337274000165147802691070931083566733262865930665664329600336655518265991488725793588049262216849374721401988284714970430523622055122607025447030287629362735863696414656686590297017282555604562336721256413160123175129094775006799428351058681578184584886649586536958590647011863934744882387699850139242527317357652822308562884409969125906637962093022492213231481538452803402081125110233145928633228492926761780559305624544883835642147423568431408106242834957009162245923896300926965752529025470276171213476561821431203500942425084890144103058002595248955255087320997562016771812217518264133567501447779898339702964714025185906816104354272318620799439894266253637846731922608242421234327725639811862556795870319428315337148914782444242319339866523281621074434637193497073692700228446129447604134284399407618319635671213592483702433975119106941238432105192218935041599062729970725610631113978686617707587535690671289875440177218580629761807390970419550985573905141717615754151719262303596235515112402167070972229629401809420489487083416718691858661393331478434737560567845015146844810950791591722895295485618615612142031259098602663812404385506829170513286220602844344422637528637462797338029412181145032860194139735118658406853684185971729853476169694053372771319433189416085607185446093830092966411414457818313177138215552257164262406867982419078663498327580866385939950580965717401688427262584143906473467670596020175030681472576839752916590502689075391065970677367151643578175964072014841067690788681857604534130872448669835373977081838264110820289475715495011996153387974093734882887390373917465159096077938363109519891623669250045410554672163350443028967387520946768855087814150625937392829821117762504456250910614770289293032988439387667561525610370040390668030132919687872347976130282309263945989613253369060928770188136813274419009007016535547723777134218536322320928625652293042359970130424651382770043699576596435964076514516777366991043133079532745031858508895597251194103298506990825052828976293574824626127049362278986339631226816304618988783014703038045817501801633887252415657748043338897287208552676342311198125154202977765456876246298406226534353416755767855072696522957317895742350577277400920150431827431821213026486989123794221659880852472315613324165262406576107240341577512816189698128830878574488480101527228346634799447134085185789986871578351034506131881361144894507574871717860212233131758983442814578220243869063202397776558998185010792468120571342384104794273799779859806346787433650053769214657901278403627847954734906208758539339749292363256114467737047652731173350256871292305741349398872946387825052294495590395302650453341163155620128497647340587281195034458857576869841874155012075073221396206067453372115817751058793393641798516754259300225968894671538104949449581290639048449486037986994774698979649134632663515252076747836830245566080637758908034451930821811378562879161224781696403829032454756103236291713407018140355145228227674306161605917952898172014480273242527450335768111993285514924232043151348460921436327084925392110345922597752689265987653750074945337333940036612629774549391454180947824939282565153149740712616331195486793816295414354750943922056419652241403407185442656988793866820186513561333974923921074046056651924391815443088153579929731165999077088839023792933787091877448422652482816467220051422850662336836528592592297024047734988904183136095094170143631916578031889298787291954153777299778724052985610468486986424718009672489474008627932352378708548605251402431586128711545365845482104518284426230078497370068844110606949083270824981161697439424899227635033838392180018921350552916683738709902582320004557861997123435905690497956359550413005356974506621351137560614117731388991475161961399220642235456824956243782437042358297455334239867842359746042544315206631038839862016525247583733531669660743542628587279446682658166859252310853171134403061029457077261703804259829277251159404620464520348767048133809129618813755686666515368206765078594317433985730551386953040960477668133111539067979277084963079677429115239238255511787445813878312855985753410184096408323857289111819301075883829210169946624879125474936626147591256068098825859322880474975426923770671938742560063417820837329404608523635828312416674502829338641816353335971756786303335402854344022134938499531342318340382703291169786909238459502784831454530043437013639987413930458087698683648534696680955196577410684219658819067042799270256221387223222169454610154584432534011991082417581853488342539862177355420823662178699555702756601038445075413590388116000298338822524426551171167206781658309829900912138708615442018030306378971011060733151585427206864703682445247202121597046088769579547329537458582214593004771964225222911549111065422910222234564040702745470329315116236640105929329976594025952490423483462594153187757502613444295935496474064742866189669715245893557124331051994093100011482215857436049773115689360521896339779198666381109508664867850815673847905881948078052966934235548629799890441023320480036551660776706857943971557390244966029964389567331434484483396855742674442134487668050732749068744797788273043020588254305868939464980396163632715875322415294876428913692596252083784168159286479858710498448455092001749897385841209075885682231467005347351197798186759539262682152606535314023915165426756379714221889203784903792378492809618377034969184516309862008407572131800692033175219773500648425349567261800428662511796491154740087598750659046026603931778589208413218819831250050272579882375054131041518421044767957711841961565985301846371412238342503116016950849424052856818587511833306914405161597613490209630195348124508718260526138661462180416354713743369950186424910019144607862146614036303977978698100940925694396509134445705026742719702011110776924994840799089148391143745919196651741564417973819080460544267604102183979592922767703569117490156491051296594109064625928745087701524291302909044174827292237347647154729359374095755697917117409155653915271195825227811553945227555986547910834793332563889633362991415973257888135253182653533523024098855664766755964708247214709435794347555801715979389992954570122419138113007542675486914773028591811755591036371176647759200716334489528020083199589860874715010635818295751932378867796901216273571907269303918641994572147502193882400555736998462360020094635080445932627568412917228510758919359184811168496738407912178269449457486847808513032839132681229183223267433051966003965495189687662493925415469313597843395731323388440997207799192080348237671980818485710235152837437204506319441109798487921232270471951364921829968711424656666801180391318667771474355147544580248866847145430032677274108324654845005740543144566171278407187402140054871519642112580921605775650115896199891749968476613293083951029388155016388367300420362134049547526769364768092186381304619269971040063061364906313532555174114865506407002400086142602966742836673604846813379984126083397640880138352770953188685532561558919092595592023857065571072107276978680946420378408680801315670964178601006989296265780008087776688082444291109631171431524997709199562596191440725302947165939907278877674809649355767584640552614883649967555262360547692751216413470369106794302528625069559174151949062033869343477345108171416077406871569653514505003178269868524219201600567020667337527541311023868110223858127355824234575977180646874586416254189525298727518524617348645384692095788381172329721219221900312524635491375650711142797448441282336733083066918461178984553131604615224062975382900811325889928243552964798707524966159167324556715308963230936497737179298718615487393486448357660649338781150976334292997715435524387197064728488032843204844249448694571673085682393777765861442537765055271655669868948832003730274790744652453786572866104482949165067275962075021934615915941258740416925202366400339821147269322427445490227374073994812324845539900014813389589206326001251799599164403486273121327422132456197275690830278340554118326173944383014822420540434832289130989501359382957333160144756263665895536140640725903506026391992513322133499598230274262035638462867987715980604098227788582459590561055002918367168179008417354418005394744615714004415169022098929240881615776232893549468994879532619978097739808328282554025400843853017683548400212373275526950978831675123662611546895099099686253869246853791442639351987206677820011698941304481632811996423852529446640533084290772057264460271659661740667248741489280273288106870069655298610861782173522783083824343523224839852683864423163110363261942919292695892637457434528899982173384098196018559155165607177009811861505509980858972532283591657153834421059189022715428742052827002226487018418327440145000071272576421444003353822381203161665655758814286581864155126699530228284412906431908821626889769323446771902960811938462248530597953747355636775014819103409316688995261985538318177253974829144323591823700836839018170698993175545065105309433106836611999843436779493576420882298189818837272890702812008660141802071118355997761887061047771459078700889027527034247877699367897605582378276583459038982677004007723670739468871122163501929820901910071201189243672158331356484799038678399271107110060264208068000945120447958144238056838113614656577248430700545540255967280894096996417848105345807583868421036732841564607750230709814485821256329716939849983188482057503318209105178881645957908510362196675101772590398618063885060147895756750277306534377204115070025414900259146185586932684025346976403009956358694388194553320829104716409298451487247724285704050381536399040958339723851371183241096799856569669318561677414562704454255976049622063768666791596970004643974724836490872701592781024270332499390081114596947453547728410571373693061126355501322166527133661826554234811061530851775117443885566122453286620806240057302186671630776946923452015360819030263287766282028708363542253524585868647915250980985576406919508509075343006810894370942104336562004288459579986079394190425278513731889269458726306036564922282070839703876592305211475438034460294952622487999170912332128461346510002112752316108600767334365502758034992514539228130074457300883261680259312876893165962547660534316136653290109878755241922919195596741219233708613315428382668581894794167374727097952784035352731772020013484426079841031195552634554882309005248350470623223706754090867751953286769854479182532489449473286198569895226566673233039309849287277666024577258385808317123630890303523884561237853914597763549578240050853618640416506215444114797578965274211294018288683824146860083994838836709690518536418685178144564081413538078255554968674718665368970813945369402886426830457542001753156484324788849985686395788551539216958692763554215913206023531381867699821887068761035683966942679617767398515643991191260330853455205609299988978395164465062943944077098062198642188476186301298619806709172628489005462676536330914717270819164547140464676591553178825096989650015178774931592979920146316316024728367395563645307213855907085601669756475737187751337227147700910240048910811192141014194822277001356929724468412732977984502744335385747651960615716302874844525770344090947181525593019953837973053650008647815502365568082065082873129772028107019474324643578970778792413871341162209411771262532503028673783140122312481264758312705668394032928212844859952663710021742340497604534365512691822890892109701039506790530854944537352415662700632810135153750828696712929146081519893287962271110113028673174870516495851300380329556138159279528398853872142980593660060240556292811921495398226234342183860793431812084494000428525499154897075513268244001957769403758740983215284573802826577250117038585365279276368784180086558756278677105657489064927256336124757927943028525146288644186152592948952497701439574192719535164970805766106652021823857596943618741343228167477850949431557185151544432701425360859785443132183451990562507844881299134641092377769304740360299148872905115003725340938856627193183811021187237030192961608776640939048369221373163629258112885806773677584177740159158289176393086245746802453309229588839162148990556168302422216408032148508101563732952254519921459560807516812776804148664854144715360723966559430896665713687472599922093360635046406026122261880560458458102641817028603180663876245295197411066063833584632626791783273097806655955078215890899808898419594718291177268023745331821119855756984800562028459248507117588431637237982502165010628013305982311080444616979757518541468031482771303128618199297550835531660026182774356499376251238678956765692428290609937904736795797163437573427499241307509637183939849100174875531195623371992100393876754354650082625701051352400668056602480318763464205687263488789925223250467794760358016234033996967627162119909972667384786390630494387113186521521085980452543301249904832849873321354488343851824598222241868440352607116070145320119591791205662195527558638763091454992107165185130094071954265653937509290341977593984131524615091392890354383792943448132023710558275241299023767332340582086355804026370516859776952356681178995618626460368278707004170284268534248177041717621921704224921498407774212808651481120647504526221322209103707752267190105434285729963221830958623395983523980678494568108871665000403621026318227827724831426929428419708005099861536417519993770565223636670613701146140476199002972419494720134469069395199436768449440432831129711169146901307815872279585850266550386506471957324965056427963855206383803263417770178304155996147189066033693723025302511401362739104462421531847267026809853016766039469617688758372935975513338379396844350363160884993942921697168281807268045818400488081217324123591467003361572792761720737511156844987822382087613017924088371814045340703312719738298471656733997169103743736763984946088119976108334729589326295592819452327668919782351807965214144560211018426210120668994201172572963465689024963168573675733327345585316400072170520169706835526201623992774406402555211039511192523889677640452982479571386088744488249472885411286272873132972313188248143945418500736678217404568621012857734370657739195245976245465375941198857888100445648046998232952377345352264486139171622889555693902086598632665035558996700436955855979906564081276231319343312992238466786332271680784279959419151966197234653766417566292958873446023081500282111939335877381224604124653570800727639640185531259806342892652541439403207558661901827639927285899000913521289407525377077226994190689119231892009348532156922934569302467656366597467531485970520636515265618271257039137980405068148999972585053975491325691076535715625185538553335278397342314697149233169318551453587725587590283125713526004672872758218351033133371855415107424896162772647990758518991318163279464633280252332047767409396587732780819259340276039912592816837681234611659876654668684247932115391922470582126066554360087311441597842884615493437792533320036646442994247903330741893190620453766200801377707497254936899075021652688280585174785952875151257856302901483904581582534780477388098208412022883951827950172927926373227913147622935996799752244004263889696723046661484571782367097017756494625178625642028605513452450226728934772854304770824439930960755838899151027140780905566757563905275929586083381834986275671251774941927783898113684272749639990387971387811856129876351642819828438239559020180884149196530293754823048397588486758850716356189790340246824263750631619150220923044052478174937714882729159452509592867093960640286901965050474556233386861769073402078702485882067448777012635402707059735623044201323537724046679121508254420446412718505546602040926404788583136987512102740076073815123570409285429475617513125774778595769721943327651481645883793145086732917444132032043281822828614180758306058687330957302070916631954498781763793502390660145644319683070840907979383232634832957849570184703482745802264762454948864211705019348155041807039653992029872266633447398753952855491506658815572052286889644849690069217744387025944324647536832497725542128523763411193957154462530067473691256422224942072875944663290933161545176739579143855164674655011373231902249631942794038682301253915601769462503644174816864872443339262460498460174772722293516257315376693136925617837743988395199412484732190795180433106825635314037676872417496915285826682797202742710287757896152386482363971517883215583521578262262193783855738329861000620402794970810327917796682105183799901906055032597039721371053458370105637768561779385704769604394349814746645153510015914563952539281601277274539721396387363917370336005232339958475090004110517670610128044549503109842268147558096422433884911779625321532161361651975739998945554649576309698554400007677348150184436250392965790616679059603364016766284818838792697649939440976391745347215612268187741855905580884457162508616385076377109855375911773861240691242721040776350704984897280768786362035765578981667556109332570676395433138403692560894860561727022025696805591122245643211284587073835596949479623121635577886037273919195637165015961420023475009099068928203899224711048529560331962454165178737097758032630195706017043646880272456175575426239108311204166212770083767926118229297562915258455352400248982883931205785207286138785847938065136181448134804346952939702054796888879728228351319043000318343873478902985302116453482790130570675117787220820903179271196175658614291498227976710214343253989214173928809543465813421690372708395334849179187854144982755361639727314111346629670944510643928845651544340308800624019056575449367509150658806530048690175363841232766670579062738029037802963207820158636880025815689363819833088878069211718614609020417803726305341058673093943383899820683494913609542680847423338706869647547188513333248458604235270401148763999064907244315914488940564070286787490433252721035953778865756789165800092675173436592902993458439223426786966616644431252933121290328480427282230209464177563636883634364828865460054308523939518576145801284245035607035309342973836370020069347999855474981311304499169522293716305893654872844450750693839010828790358230250850527647905354394660031041521399880699830006601582941625141193082465713899261243391549010724976585970124086116493205979820565815111505124787446917716181506055758499846284102523971286269875243320957998442882010632728199013895292529518325014979792440446029632150140307552684418812232429719531318523087065735357012478748249930591210080905518788728001753012977130245908117299923469553286566179878161908097704226731286240527095464852331091534063613250772715080963111872899754648746958614724345285806388584859737131752488428055086292087828436539570707806509760590288554814079285168542835983206723246984683928594522736524363361940055248551399907200871754389645553059530826732856180017804048416949727979395834554841389038992789820971690759544744759876218199520793407165531415075731310738544258191594524695913661793505160501059167924702212817225593994258943014441665818466272253442963543660227431460996233713442836224147173586388608254424644260831648849694656410513055482477717535018859619467893941784808048658084661084201367015059562830654660263736874264804264961086173059382302456396646600207781103575911271061711966261994174505312630448963062194469919162426266601613752426721789273964884599833611630509181086234211750069058828668210077654674307259206542698736761644752722224489288076077391848142022263222042000484009546576973956059106431953360126027407085577623722359817070167137740334145540783692125783598692399077541630609633547310411595078904444987715264602114958133143910221820396805590853610283311264560494469413475185849467937157857049910162791833969259572089325096598999634054642606388459556878004642685327991049619244533822828607708149645191595496620688632316225756674173018725447846169887879123811721863627642658838329289296037377217283589001459166072675078727396642953399853608849434811192405167040993841546484337446231237079573788581326063814450420598773812321462266227630065784666194252010775269570427184322341559410008220695810291216007120887375255828971602489378565399392082604925559671094455941969071617687249938066676467959597160198472335057924373178064213271327978008369364933913523537828721481639573403289793601915776137534134728635948294730226704777565094631555148945042587192273813733637268724838983241249084941754723467825158741778816857747981314816327480501464810047991142654970902946356656947444580465433687990853533960459842465533006686729969698304316876805795595594572918406071368947355880669166894390833513052971266890314272043600299745345412720955158800606587866046265574872694466836150901430446612686011915639513183233206171464784077176025287702361404754535627234983861319261008784850789779141302786161770748480031529495193014202220352989119168189368713817065168751835638642743451388388976336494122464386618699434138643148706713721735861209501253996259057942459828551954634195666686999910879576323473446772076519675041808635393373652437454752076518392845642629344596308145662659285232112627748512481963624019789927676389406804124348365205644919221514795612093713898464943692438236350583809885849361830299491421399532184532531645957047516869413544213338507407674388762996636821613182497496787619708684445058486520164349955981771181099789580447006882868491170646059156931782125586072166018955838050010526727882235824250523749398446086542750674059825814612740341629010300806709712830904663348263703200756719657700608416046740953675038346532971362323860964443774266538917051520072462570281348922199359621137265552312363513394291228708785576864182362256722728133062444673088142660514463344856016287142276110731763581433556453121016884299400824640507139425472964023762391456290170998522537612200395861812824978742879966565265898713841375019331617586861421999343369674910732652556506967704946893813196858405035151415386726575320434443547005638204333254181483615876870100097043506226941573224125254839006323967892650699933532478915668204152912923840207919123603738916039115140654744377751975555511192833371703163940672989459681281768718897920002806183299386824150754696483480482617595419020673251278597047002534845108156080613714666224602805756744726874713819617202165073054121630658161503023835102412346114119681900826011743286061697174076188670440803777246107245678646992166325413957196844885720323863840395076657068458500717622095556920605382921444288143243978710470523493969152528716284426505682813789897455841148203752292338920621211066272316547791479900091874713775645603362103317123091536251763680531774215400176779969501097315182989516643777744322816329632614146839536974067298472801557451336670618412618961652492647247804799113837890560338439253987356038401853584002076831773647729770473862786759185414026402906707285532023893457360947768473334413785840618258544742536486986661049891720449813139970808109442532709218198870819124265078203480500623049710048026563363811055788668245378978552176193523634551644686231933911167837224394894905093225409850728218427630991617062282291177390739014470331564951616111646325010024946527868905777662418419750535863142567655450470189153468243223168770733390339747111022918998768737327463680256529493007547072363860873360597599869449503943954360830202980580519502735666966475156254289372792600674586920844784205294812133581919003389700157272332958492927305539640760197648180077539907534204471629744472472183880030487268804854099017391637572957617875442418205666693385490737839047803253369336369251857937657865762947336829142412161547480553043113912583764794841737122012090239036254288542799309888182471092123253703896698128296740478493100308911665807843536459719100802244326883092136968649480336675456318328155766801053761255661021273052513363612913475757999211780462907659675413911757853725837545511027775402516151552783416583750311762371061752283306953234159523339686651833506225373189122072305942728000166124183734943256753673090202050071694846996809415279674533687686169774238231929600416354859142001625064962785811748583123875497605572282278223018547001179830099365104139387655697244984098543265983777996177517452300734143489995793864737159382212712634992313742964175929724083988932092922941527313753344495542781865658089328531600292496360239357261472571612480448510072678622783676471499380501202908186155590421601750033774586201078938722857992483942176407924403935152195322033510275380254457306666295837611045812384930354746463552543053890705146359028197464529798243253613418038172572434252858613046988336011641260354122221965389944327645920860104838246115492737609361509354543595799504163700622695598191398182266258222644353988639179179913133825474872582365632547289898472725967221122232449247716414876256961818683018103023350439153889218739354892882462830774672680260351829261165560559799137492288176716949812338131384419202790851440393696220780606757570964536922325432432632632979992180929642828436833761582111728952638525189385860233465659040885092750767477884346214259415049086428975529568126798032581750678168745817161119430472655229306434339325208986861987414462889631602183326257947764218170469003658537378076688466157780719878731994837670331732007716365516762353353942778045188092094222730045024297447741654692448771368062858286675111104536053586591049158030235693078826836601039852661342358012290635972891609473596663022450439208551829637852166369532809545245619060464149700899722607495309723232750053589888574697378377606225503230462880780406546776386933736035569280264534348017909123327009045229422977297345440541738718482963936400936187355835111368775303491539977480707274284415627116841382207934947168156461096820254283241470886711433353007992402889254570174239930439148800815806456649488238285008124240331062216165782051515769750889471005532781387090446234290709681830786077297616043687870642591687874142092921423311515034475001640260086492321635751671877836539238533122820544239156961525641637311519074110159516815445190325498044763135462938409315880639238896601784380935474750241044028722637205715036637133888636674516478320233051320451942904883122774949408209725219025651053239055322345577566492464245807367934686026252455179798288902473972379507224909870390169647628556621271944655448138061896123537870766047054846470253387809484698369655654057370751069464042445521412151835543330761164937297374774951553775022905724351746067834358563320628527915256839570301954984835494438564227180002553173947080662078919140974873819123601622292977663243348414934724157011071558161274184661105261031956133256152161346101977584505419277690820516724363860030271165216136318752066747439827581177061851328919172051078354718689230478904859129411440487469738068406351269563079958628014898814971717655890657797104621561190459715079394739797580148628164173758041661727461966708527116228178853049772013722108163491660891529663125449764841211105014617651465470301716106786524975018051722130985402028557330373271912455572275955706998642056496327226294983838186101609525963566558198879354271906866646004360168577037099923284136224548809446354081459470856632057062541293972543638434738823446009086219197537742347848230682614597205473541822479235793973077645106048623389649945941139953684852998602886374295842959415783880988273832874044714760497802083426683508571893193281243303557258094834672068829725129474176044003928053514457054865748799981249186995907367012510311970326922667701089120625165107740103106930987327500545329859257726184374429640795768302066172865830844070862233608317967470524704099207481684324360232359287530163044930235859090531495862257183316327634916161670568999087394305166358461421875898956283419721442663261172090012659386922358259075437237352414309918976412878126147099385721795646388007908344937263920639778279709789526372236358447152093671635009888452902705983907203786039048703498585010277909622590142556400303792704532612536003293647744226605612947756012914502015747794220398467296176777443987536619130903420010611939565687089163248502400423103203037525471346530042961248236745207854825728960073751903337023535813457817590975431182941678060902685956497287513150388965083702240966126497958752918322337699917729948606472567709797733001790471986292123937615424307915381967202578573324169852547449719980718904344243104888470796623997940633513272076513352631563179999921629446256340831206055889770636037567972188235902244388183788063608577281644969851759558236741618224966624179308675144899574522598743867438800622713391881782381997508427469784938116590958912874838454933630642438562248097107801256196262799981816081417969230724034338429058305870233181279454675642879092139629515802528523309649413182760329578612502695576896431405460767822115735587086280178282327998421870216153914783832014310620620265404887037104194500309268121048816319837138335347991292460617816526174728015019172374187136610100667142571380691454383837291375306623217264753513467589970424541947026420526515472125741416488951125980322733099525408371662470354183523388391553626232583552148517728363834956674407508990130577278218059809616152765335414886502895688121974746748332632365025885031856624319019538070247619271282744373482478858832619476102081964495862000139400375088972854448953704743028212303302701644452268767772966256463922481596647603605120727478270534776980570759361683713427218201931465176381958685141640054799825803325823663172222697313292967039342876090400620112281825503748111528243379281192637603538357758866276682118801895374191433342395406310454749463302794129783557736987149215170151729333671154762392843630804577180537333813641236825471631408493998598770604377785575178403631257477813434457095153751396747947112801628537332369099495585254378793287891603888345609620520360655088028445337847474717650859013976135054872009513767024996897018288540584897407053024872385283324736965975802050876734947761320900502820384455421021498683973989574430122477254824312445463952832828039595597560279619264919183540362375952057620183064312534015300563495552564547360621648153176910408165750125004202642933244871754227741626245547297032551817423582988558818584273291527465955731859665587526585775857259670357071236789072182993127389441392930974930304837434974493463544938769843335213475675150207274013183640236552079926086369169331877540782277280526878652444791975095983008971978686571901235065013811678197908810110151787655585527158960301146056817891040758081613988464152825326284916599796563796920935033199139117189270795056402076663753297829491942461232650528018226909694729536280667143778809346459591614634769913460451316995915537745550203765489364226267624503422861042958437339372963664608148656902584239425964376932263723904396655683476054871623691287610360588574236677683917592349747724460602781431676372329894014467091801750300110332797167122392721478926080737511503917286425480802940221719149254089596926839709441567585798571111917565280104636324701569994130763939721684997244899380708523831672071788327922050685486764784937112987823959269237811053556698335064224965478800754823199675555755602206318631909818590273117562540580992158786422302474317650232625870503339177990575341318606446233143550614751436041699307977418064226392165726827695210825142425907890184722878438486251102078017487461310459663072891697708280882370929880431897369862624777752787071706787400286614981048167193914986890146820926720438167663496096762989415262072318988181085689977932672123949971884510576563579797849870171776255340703250460379067300225619014924737260678888638084215326760190942557750858056215401767039246163800261260720831595340641529147542658393711925748900448071080145820883302101818406527434668469445991755454809493360100718742327176236982468502685072450649291220740714170770434325906571817644706724276106172209399969014760406615189385229604584030460965130598765461717325965693217054329419305448445984789047038482145207801436528884775394630847044521317980261594783594945537316752291422869741713294271390829289535686335669470425391081915959905661510819910919450250621410170456045264183288442977256829909941554138818467328074302514833634935911016155830477166404652396758960447908404283999628450339074026719621232697266465570018376393090098630193152545966662126790272393118262211764531467378680352609312861657916128923262445380878367591851918967194117289283124976129124253899034778439430092434759709091621413163301372455158075117899762122051406598803656613547365059068181352039300920962011703620690407465621282766124836497542046714001322768344311127307224244672923738835258792806942556216987991706402086337888896736986379035324692969046367255684424132111453965541846033224149036705482325006523745927891183410271962383318360691567627421746203342217468686239727820117195615866782531626960818356785060890629916597517596947531785612441719342736212381046409073484091062365931213941182199550051779382336879585212531180212262838163963366491034040471657728858508229079756924430242442273048072757268284200173693537051595089728948989069310757180504578510763298838255064777543265145593828759739974702460134286498849066087951211183236057577701967537803565639092293443533513404337764318337399598053643951251862794646928293817373841430159246187239557435045044921690803885616846585570960689518106080548210975140684646642956086636381212346847335288410764040415398580924004380802899949089748130577872305121440900928846755757236265936618478019708726610048793963206884633801189950427147611245725345663821595256713293926971636334000471231803459672364849271751480015808229597924910985760407257232396480254555847284873863062309783911663288684413080537175406027623969564829701009347979774414326844342007180536344584013826054875203224713088725818456039769892391156851586684372550163515236198071788202882223856794296628566085248388835079957220113986436045039639814929562956770835399314742883649973504358169989205751045352203077643712906127422865160746630439251375101571778694966935151161189427394385398081340399550151689200436530949708638364629404683664674364751334839391753969920464162570363818538497380359830410909792046025028479464274332904565362494523285708994302240558866403957885373030588383562245759222592753376300683524940279218571815852671600047363714124400053794506934862719192285394040047424609797233444920623445001462636298516050280240849850394822295317384597012887399091320950133191363400195192280560538712050002579314213274450354530855711750081273312571447494260880402442206891356285469126889109947962910849385181118076152531318570354709312677536367895582007735860955217816968844052454652529494980417703185211824115369556915135247684323995918498286997470667065625794076508669344950984842811084613292381351746153286492225329686421575890429271058941688044406644952809653715272985425173534130727342054048248833598057171009076333241151216018607576840066814823109823724665921077485518581590744258370685366601141911498428647857543590807073586361844309337944442695674608612760238670791570927403596499707500646511199709311148957075980485588540321713249893309186902208595631239342708248909045114706765301032367860116269780332293657387531965637309939832050214680775767490098854979010474042970458928838051103621375693239101909341813502485637340887324574228674775363089349723196473721908378583567599361256165387850602536727986576281120158040920479083873964761339537527547379202219369431326839865205896047746667420218841789235330186837914406555780983031105631660222642732964519466867244088849505389100449021644774147264602515790957376537898736519451099618358010295855259249153885400377383061957254066003851748889627162055187185030793329431298847984941471113868876274346109891604293046263822091785112119457457460645562981136477046083369634495647826852402867773291128999953973545974513049416409565229403867820629457092111368574893229778179902140836016544248704157014048632930118313697119822787238719576206432360894611398239963345691800961658166895425218484144081025962364584476999218570933379529211951827878162784923640607539705203704357657821556910510936549677527011984273273033806367311601793215399531497884964701671868835760725004269550216242355052930406424430899264229603669737564238516181018670826546409800814599622996638914429045068830523440302197065827691035363578134705701402583180233772179956363221825599131139732158336531350894907143650855933664697712349275515461867702408650847904855892178422443807815687974640234022870015300404241998388673954713149960563435586357806250239603594165698920076127852500762713813971896820296401677359647611462904014182247614176658930601984830464171300377152791469151629151472329491538071834468214051164040965174667317815329978378855554852653995371945635427338305377424213482682184255049804323110727767836416649021349831372480509024680244458058243110856492993350111760039573743060465144390648066461741557725283222305180502808613391568786440563748204969521506126939916222897083423611262721230765802071777516331044112776994062471473795551592926284232443247726406583581122957167897358233128008201224683126000717407993663191713481348208476283977484767700751269042466817168830398989666508456881083287891867039400892819115830096545923430353124500099049441184792606520990236761796401787442000920546591916150929126270292952891192975738949123769438568472259117090476877725422642862578276516230547052444990399618307312829699440543809331668383391947460944439593696414515008149725425332373691923487356055118066067318243416195139146941901321997239536815522750759935224113784275662168664602191898610967379253890068419919018075196653954304537884267723106487873242503389422682158661652128672224080472678756265014123830208853900211257459798145915751346382753975972138198347172158094356127546402248869826084554657168156932742185365716850740282508455454136746806625849835854629483755482397780861788957577732325916732686113336184570683006854242463563826366503689857464042110337579476721771123971163991803947000647022422497834112833903360123284245802964270722408943099424910444189720370461871792877657804559270451448726657465636644133225070262780970855086153947364736944845658431370718361484541872416032201595422328823329679533288465207915838300962163291027718609265488967461292414962092040474827004475702175212304594411546393580687963368571838113182515179443912654428759621430517919002262314446592360056269679179057778110741762941925558801989936385583730483545691534221755938823015145251130534398745358741565748176431682248602694792812949583808727179724639904644097013323338588834021585899966755225893047099827818916170882386822765273799670225909708484310250317963443448331420413210260639272479897479488515604492085361465806886229350851247803583430239285450956020806273202294194997670730566997246458908073992728433956556679131507872895684721674528886400782207217030117704535662938792066087854173172552771547926554924674454742946521627778149447163718345150442519530205415420802091697767034483078992721584795581051530595988461954184819981890198892975042029097717559284997448091193222476047914448195930699645859284666204441088448628428850701589091322437625763784599890394745329033302283462598881616419018222149369589453019405893077483218051966195720161576338263214753171464582441846318083955047636418705852095744720239797849910103652604495906576788516822926132024889924073266117364328409748385128416512605703879461689279618502630943440516903220808357201171346264513366556509361083659694717618751727845473820891109596861859052802179941393647683244830831986216860912966267059378776292521840842305076344958222315345782489857431173780566699808398077315060523905741658717989578415715956190602814606508230226762645876153717688395672419021620788972319598111420499947938175354299918662690398457053121467869881748730461215481385867828712980891100623364372657405127513831151920507877233286457167203258803851875968654864636961142502195515470509969000125420530506814478244730603549311973206728236287921219917140486599358837406316436372435102471282644976348573825259139501295837315654011131452174690526129464153961043339449111682782981778277428623278198140193269354678928871377186898031939853437000729896615612596097091439228709997774288807433227490647133680089404573732133097726521331006187677161396737023487521974990977743989495923370868619503210145953772628517639998976371391753974483055109860193863597688591119413077649900059099200576817205070809337616238786383096280933231996453499688621580012547395912965220148170617576010279567120600395624687545900769118708436403829620060497453768795961612954884354228296467743178160040110848536685068477204529170011751068986427354214401381735527240781736631896926330715229111034999424529651954038393600269801687588497110363315955280740707347073411229902990720907436869643058397830128813927351954572252277416158868327196118760285470962874116607576882199868340822904718737844029626674678899715269856925123853990067299769013293751324970390604431904727742601436440817316001111228934138504121144328192112266982969076641268208743420072065668861449353274125087940287993905890258331659555268188533557909195994731216253996194676062728948326262537483766221194107160423126470946036854789597813694311816815743478510468733296995279272640687583863601905970642097229763704558821474416023608061978939985429160084065306958014029234741724304409371233990838407673839434220101174026506036960091294286467044750787955108776046898676454282575131211518131196787952013183192539735490093223358111744968093587590948965637169015779108062210119305771196706281555410556714565347101362645438435434324761326092008013877933409073957653894490809134516386574926383835771867424957412260125976492399697750388804922934777061724264455434832328400670696079728697392736760027666116143830477465887225823898689908939739363843660462638122674883804683949355096192947795714221442552127904885930501889774546090603769928401683965428412339050794248459616178742152981966391260173419393185069010903813052605043160708696428361907614875841248218699173113432158237525488656378912297384570915737332220216422832276397818791807330590020933865499218673592086803544886211939948053397091024092883668196356212481716791048768998634424243554528371391248398446308311981896590978172902495334303127930494907105703402602796182079168767888473167089146483553262193694211810815419022221026041200927756789794934557514391555890473660986395359402245776221141067139036969293469291435715729512376086222166478975320156489899812804352823655923777625901808958159651473376590678019021930192923125371606683705829577761944556045664967665162535173630448061101530186173398541024413360434726800692850864394893475338947345909591403720736416906543776594613223608499218997269274287418228157134820589163874230028478711462375015201815431541498262026594176385902723331333621269557642451255518455360250030008933035057871586031018730702399763574108909352316234529319999222837010674767416363298036783917940119464173427054423475783445159744399132893052153149564794270671864764098629281584870025311185180641378859718613924628866176758138798544749109654164564653719091259804202821010220511617116660273909025656744762486894707723911682560920326477295090187146572389276519768656921235162063917816847171729439847595389899507426410121170480694457992247194235272835152198329489681291272344225598636669549736052692136500451742353209383130493427761443299833184047857174506446666431870713400967199749697744199495494014336829877211939682197228230121284395632659095162736069036264749429852730159177695619734247415542564055022351278660264497178086012711851181375930211968955076588207958402408479249865545123692325137709732583566228241900134162595539813383691772921096703018909223825126633779208909528285322579116995805626418759252380444167759330594645384304758833041305385961332708958746440790557984364569869283337277371547812837710400696332042297091990597341629667261662617140165286151118198176042298187111774963253331201686286400778475337319993187793874317980628494723341040831733042759567952218988504819866461257307315864306079100349676800660466498663190438763294700530185874414126712628395153321663182215229911630902065951695185798224306596335510055253560752391148908085369703997496371201619891510135574939189737432227228905286838599316854940789862224585809535029662544017849654581221192165200699690433959117184017552475331293476858689483020828706966898780950368118140514283945203482819305467990236219691989190757721984178470096282627711237329564862491931853513345557138798325040030789445370009441187081423234422365471199998387806941866857107424473947005845580130638354810502418239912956453026061269495570077782217692790017788765200457029206420901118079309214822236475190741760337108923073520630901011378281018094286082491649357199932794045294097148030397281159009592629026362073648065948889455829448227688927525061595285294786796194615452980246333617756715381359081302565865746584801013483937266957078075017385873172515037836503899378854008032640447264246153152025118474379949768057710973909473703493188978117343549101259675540276232527457198448857344361505674852700525590641093016415658517303510209334127630550377036394836870800058709726277425599846717131911268390929227926968578264508719330809888776997059938704230100089139734643289945204318698287844619007553281754303150992296727392999203144278495423917142276519913447265415156716097946526704299002672564394135415926720868838669824857826131040528790611442416766660068179370715306092705578964654524609765043571978505144598997197121153477536151758256549793800010397211436123927125275696736461898857793302461109358510397806663650088486653713296858988514817759332216173754338414886278766861607818077763673086162621107285567225279062508737632811499879103914305224544727291874638720951180643547708319466676069207494985506324239522480206387836962848852371230912901822824462121091947274657353339864146983737691630652665330864273685277927678479888415138677259859239218346062024756819148413369782187033313332567461234909176996109801406980804400117450129851190069919283431683927343735364096528904509830985977674228508936109075271733981520199482672958959175492948566085270853759972683976207441527908917750115912090097162097678392988663086596691282731345740964913044156576415827554519094016936467007122060422720032572787348782619723777403257628488354619348422884541537819141647112055687429873884563123490341690608598237979954401571958168785090091347463849627096013649389314250667472393818346436409450387822988213308431245974466783905803431916263275006329929293723975590173229000078307509349310430672337012544282675846538961808194323508639453896113556591711017949148218254773165656451536218570487963536144310386346089968524647987629029082410978970538531539793367725959288368945043692388147879138773195090730744966511407962587742444085673937491206181183665142815581605859678400821683184311174189100433142623953151514945195184934999064351323478485564041836908009836566308283796760871597054965727239630734007909166751115100558167783610425784074612711952726553421308979130599224984001666176923735275208212700803105254719645264350705405971471938695300606906602337454339151846467689498767172593084195327448887178016178446235029273746789188333666275764672745003484564518309868849477390691774686405660431180721783410621708917549874401293236425000312613880765812533861149853570827259726560075196524750514074832325143576469824728788428677614871816072535201514039330685468721078402111936765195643079689893998483006966685634256181964057455315835739947836734233619201035066830029438893240144309846559560074589274878192320418572811450889509480498606310842215139250798382932976957874530339482368017606331787347912959717105202725014784701695073019275814797702394637134100002153821144242190174769973752940683156161784144108656485035112318740779941266791046384742384219576463334649077057257190912537095742917045443194388652335476434589822442553585854174337751826083961430925217386275583857987753096142274777664745091139346479051893295842528568578341639854870440053114970016949983114381918561173665317830162372778041111980460559902679298312732871501140484972398703670436585545827867203787686183708299006349202213259519970017082701855610120698868911498884018701404169076859542196681766630388177651326519955561107026042326049882576519662027790918985599005573040971536902434853786960067449975838293193954409469483452365108318647962620199696011398163177204987327279080817108494714843859918798877183048736015679377035847069739771380137939394836965830202519688833421755776009725918239610296816619162309749987155582349835708323857631224337064299724653575156873563297868326638730310184115291580976504976310452623429651204499780890672600858394994093877821030281365797662283771755712366332454126216836113287923504137994768918099332572747329549231629656272161890296898276530270481113345630126765969375803856958758332029276096696435116750002139329863072910522174301648054055108908876473401810353382396243203870434211644092484426228135864866133306073219043628175942947833033062251848338901291466532294576370475010618652633806250493464788437308535384073210688456105414538354424177443315635914958251688421051658666788786778020569131216993914514540177843014922531078673767891834181186600843405400566283895744707587714060982656715986804711164038153364385632242632458763739612903279072669440660595636595791251397406751130457568264749572443901681925007210509717828775628995960606123333840760957475137893316484411902423378543716285875438747742995026114872697267135335519258863537582727100415101142928137952102895757355807802765696804162792914206392599503625053289354016413655549700216541137523783192320432105592479277985797842469754576423701581127903619758931592802115129703678646607431497858510777409362111056509776435068025302823052064742893776512276895959682781903334991050053135690091003525816875957594602767873385525895675214444577277250219420486998587041848256617853839920062839583442008855928661936603121289529238951300835198287749879913589323332032038812521266976452239010557970192085986656900055045402931950432469138649028647099879996656260287023143787845131421039948140197103215931130078980521631240553705928490664655324545776136920028968221497955399929893235110126251318105191355616339012635596249592208747365817279163153599016066451766579119575230954622125375587473048394992010474342022367638838931837772243309683008348486694174034513567468269740773829649998463089702928489033751827649145318956623672601486659278896228116999421589252084385282557469233930849299874370537082526509135934651720174691734761131251713091529881147505867921955027628388639167060252137879449359800755675473970203833232638928834667009825174084676884858099969072704639032515385298272505564177866255715504569758742174401983071474492222905423366315689231604617013256827369888999602002902337050196358662949604435170071527409870018190057057716170808516997660865587493822722023775053087206160387370400383239571728251616067792954474548255643707805242280947092064949107515913473868163795488970201926986489606916254250025747378012708998323606272180061233719331519967072164825873338019436963294303732517674728827599043067076253540081088758698285577786188403828114122621625738068875817737746608795987165244663501917836147410900618497029031154778718920521619942348898397802370189179225267292178946590036322046343084791296146346873020804428116265288436316221995917529577729110701863686819008107176289060126521281628126120856819631138253647131597809110418828156125889888284605555899670181626476076910097087656128340758251144456814603065754239412853841402704376773028681572439127798205329995885353140838153591308245989750049099006394124886876899115895809941150589158280007709168288529731400104642117792859738828852727935765507510887814560787951382822756097525619953225308396425287397163978942655169103070634180878829590919865530565954710938957844532299733027903697779952696815718448859539305689248930614704573222832076720473987512281281384596253340987629847406498525868384074345929124878657230643164167769254507482706187261800248134455447425150647036430281931427543323327735734549343280542689210538980152772378548651350551798153190443884774256141168797786395739940540370860056077197604965668584454039853757622757818058104961253492351700880118704247511810652057378627620878041121865178625913357290898977138395551752342537056344444270866883672744743545464994844272454625852488290561977066880228888879091774504632197469926766025854426129677828123899516799938579185605147968991574926411489701021176393143504702265756335988550486026400720685701528425485816117006219035514506059185907220596461433475215511526473294824486867007072411692258776714376768566776782596255801177138269973889656048946763454990936027038753716353359447647156291094089703058211512346795874404941881365700138659478747714045911033235162434030336369321342845165511926607329178636402981845610030493707679789336144945798603693019242047384989429794810968568050740847628976220358171406456338142571026146487419721042991901476352635081800321868531668555398762296553623771392947964148241657272735841055478982490678846076172280716896306882119966733663175208695461574559562029505831982473528795310792947092832535514499341918661337776903968179739685521697079301205158892129893619707302867148827709172912835189029647047311426614865187536049791899280089664530167022347432760732701579795647565191349525800701378587924868892010722348995175647542590732949578407464112728404393976779945514680471472710907131520365920809928598951327323705137724374704484093753691483418472801194548909540561936880529204901870133987541322981114929206218533194449131563016455368632314117409580992470878652393373920364029542606231282167798570541506325702087949836373803239061836851734191204610283002322546857178880979630545151382762482339821746463480972388903025853182142357285721191681520352852551518956625269442941212618443854197318583099989723027310033949386275102731373190413060258079702724451867371736545086344200243335486040188423142293646847082747147963934471798960398451724367604763713640551087406259423440740301903493147808312079229489651703489813893181363138670216882958498150174699195156378980554201914884112482991856219854967736046596605263324765059591624722171329827579119626271846208713202302204361714857322523522325973934352625827571471420285794406781310178199697098273908435381362410966809567359790309801752775942871856468596107453965998928005904420827879938620459804064455667977905679968379094167141589078794080878378827852827792327631161671160588981921069600623341698082235380149568813586674384122633248804085261289948528746995743201000209737325073140431358226305634733087853484895217913689475710393988800849572938178297717451398735673571884245888308224966783619691831108345236769628822936639030842591619540974795549074122634222801981666155357449276403272371132355711358857995299178760900945435106338558076502237602791549608621564847135786927073033436968034451084472567219837459567142402923788980482442473767991233309484858988188400996259443634336929448103570559108446720702137758798715035502269519312678177750758163646114067243403977978020863401753630598466520478961484628999553200956534884917814520380217007168279693992403997992368643781164795445379589310617214061381339575144601219627424612597325394578666446246380309970063216979764221612025284717009131902813466968977181818543598553687526140001536581357162137621392460233864393328051183336645708550863096318846149440645898720656816250270537729374109250038598566167821062481910561163097246403598726857076526945640762092857325897454654642834555174580890533216556149721512181145290586377767036020283452882679667820128947298587371327654996265164597838181285840982551318886626361321924992392898847660838823591969048992460101355481593100404358591369514247625422579735003982995995481360781217443814899235443621036600756427472052734190268522491736988248576174368261575503263797074057270548753249415041073241110639861986188816840273676627288545314228823082536402209640368186306821469415441374708952887316194696821236346573757172864208013098837206035776900151844672560251794398340606141626695535529245305624589359454754461229911822453082052761439709523675783446319586467248069816363468448317925193468547730924866838653375490710194622016559836611318708200402446475985530203558286532866329611964974804304903688003284920267855013227907768915333334687178868255584547326213124861938336523104125630519617579286490132283785686129602193060981111511461855765245753135059444202301618942300901829033299021084039826337278707173550153058237890977340828471240755642099132715921343836352139924908118476815459232236791301934076121182428496438660055006102914203475924982366862531764624175273694279912773038530132516992656045100670072843154804320744032920708598992034409311911887490040044007271829484169243064024675332274471844213779309844315331844090945343919906625934978703154794242101925597424903716351863140470265289023117562820756410395324551839496459194143623018565003955093655552405908381223656313161086732092349237325199742871749794596780702342822636128367535318882249502135610273108763937043096630781131085555779348867963441413457424064608765915566822169113609182290567612655268321068803811709948844965307450184404307143682023824731115121671095480763889525004128953241141305871410189899834427717201167728366554601808376168531324568276687140905786736821384747971257465063824783782601948299464178810783696245400938171822323039408422855580639601285341075361208687210414292358510747098777009522488954867558650466920990631306940288345337388935049962646604650692761177630701152057306197721904961112207034371661797083679195444360673449625134024160949124493648342251362349125997103912265728777824856076926291197787155496370338994378207223848571033034947171342246625531485748693991974178800506245776848851729259507022275893383569782650059484063711647185698355693691620940079535742689460560426207692088446158307852093871477846845263770489116780821619430579288839441437353130860198809348414540326014406402171209610465209189196456450941582258577380566341811832978116612372542385462798174687380994029325944077530861447285347990809599281798250140555890864608826322484886568577870718296877270839058786643486570972398875029379656966320998576061296094229579137649921159336630354624188877732249862288406364998770819864066065114244860972171687961989647479260588911655333306158732747497425186528727766907518174335668680726083875276325227545203788332266804745250614912444853681636687879885271064895237078539370861269066683925426094040645099241772268781581106471081526565787259194907577654997428738357561765194962125592362376417482929001649105250038094090432547816358676682539551180528211554115353819749329310152195101320071263252935700637900899103210574689886230237347664542980695829158087818319684928331661843784221859384845906939282844778652954698074899966243883073042052337123778186273587841619625799267056325922167118784818268631989315991526297181591030175857474646987711709507918212124347038597685041714151167007188255838314694522074113805901041455518299043534375607378122473903125982270156239270625542949677762461062940615304502832434484181627292993127465924725102449218939004493308921526612480234826481841318328318441071273839494179658108213830873971850141897232880170536629851592086570901846294192822685864339505524258579449386215633088009752796897485380426326505680676595483646960186368595805513136163949664272593740643109733258376572703837460284988267325730731923697402612334629265872794428991641320175499337683306631797334470839269750622999126017283298676584413698748465965247730313969130074606359483784358895443695589074299778358864886959372003565771353011430526126257594114218395858622689552237260990204243894146239615263129138283487808639578450983842441057890590459211039270813852602370064748581173637787747616964966647217780167507694851894098845011722541504711795198433379004630421370232390815500041311362248432961981268031483860152870958712002472902541108699310380410253668089986683988770694607373651971965188993120340409736861026468099549506509779549743372936420079072670372204549384070001820160735057732047210633711917316313838233316713401901128091928666053311208074781764192095238582955056551023622570724850735993188773940241272119758239569484612270595822950765096713435841478467092376216040920149625889629060773312216075393121032343861693405513045156225395793991854217781402589861902491484380286448542262185020852516916090635961000155499294432912126244267204355160344059192396151961067600516286408888481208113915733480285571077140850563190888629797129967086871852762013379129557676636024695612611167764849582440471809858142750792960877947216877909884245649152486103499266201083955127828460386476316496873117963518944338426201216621321184493937185570810059695914231166189483230500163399700570102512809207739299971390536668064701982894755259495830001511581266926002721885759486842772123185120027601426907457582839036141897829714416931759610667613232169173248530296366849645827223691609044664677389318196975365862732258290178529447364356201558556890283062533936575834483665091165386226210300125488252608680461691265939420704738512020075165945982977557745783897044031942775819674131264251630383458284885886226848716553521459907796444834377622445545202318210610021329733284859988332828173217468836036030034391978976301753772650210484117335137644033783945538487798664145722413120181500405955495822412259474402530062118405736455765968225128950813250057731100832851642400371154768959943617621029459520053855890151189321362946217288048782427530555413636996539983503258336419762370062890142363626857518724979595575515619750586127598749146849057772260925922898809517217773333199384619125228439470704477408887844107694842810400059053659940767014842479969402987044095164491856509371083634162033752077038861541059570724800717406955354480424093829978988113000042220955786482919584903567538049812438342730551843830179649886304928886572539814279696338559440951137070956844101202551218059949325447153498310145745671656925085422743694373243805793516936866987167885855006291942508950893474983145824808632776341134273501080651583749909601488958061557393582324566018426903359464026456574626517420836303961317515619223728487612834498719181188941187884355283014373169034075954928228860467314653683786570057581056105172660272832402803642558132304710889051818390866682354147961113712824603267756414035271422053251492793034824070871474233985303478777558265785002630463828046900253963149276749356371108547476933961046361289041647506205936450620932611411381890924995796762375656184437849388411629205364873560937887721479746318718575444255549051858626739004614288299641729558228018328739934437068298927397665167572068607389623959306245001017809568560033729795367443838238505040383222639509803286633019502198868163786208677796617984478291541559184074686392341378502158376977423991746945828236285316290433241114654187057017228301683574462931663247444800506775801856259654719079744559444985256813723372932862488478429492936639992578760906358168417599911933652204209662520447448671220023820748411025547377852709606006207705972792221903866970753969840216343223470157129191895186858404341307037740817368097015213828276897047295678589076646337884314244072890920551771972429709636733741991347073005769645326968566631669671563778362589345134645222339837275465968868887954219102826500523932959030013176715724538758639284705186676451418884619076563589913851336496490180253319963232053553884309635548279715761964927766526497372074252135887589872314102451019376622276489269828751561165566723749725250096264026098903337870717588922245991846610937674813625297428128088891561771566597001266424141924484334120267866182518505501653399642448161175081064896090277389944698093873497510431373501324215060863510515502571390370973703733780407679494117034546974759072171839062213508098669387407908721893812095038224418718806408471803156358651212099224791846831211578554449791408898292190730533351409058966354682041602006297744873291622347621595764935327521581132878578085002670012265975365928281455931133137038671676363629001274493661767089156126619767036892658686068655642906533283788618375185163807428969775189292237368811979963673822948339408511759428482992703202391029947948810828627511885306083361303346570393266617598742452889425782599057447460657625265519742198533542618740069613695032955939924630159858107794234197281356369990098249888651261841286924103020262179312234451521461900717620434134614255904051584105600526916536598620015190449624070837336742683456702815927942532934313890590788798327506633284468666162810318167477249469822011542915301956583024763752465179067987427578490719669449395299246716808406551760114087041126413463445837768788092525785610153352076053409038271914181143718008083956688854714391827438952885627613821874792911895086120524259284847853649269821209068156510788646914268066196109326623307323799531451464770671135254606643106206155342409227020669662527833958513095192157750015535075934303471664871666037154303789940491110642447410213678357411245546480137201799548695111305564093739951673673698291316947347709392351794304329295169064377592496746656758259032872736359358197682055989879762042509459553561562868686042017639382847594088367451935815676075428618550402270701955497914382593343073479673824919063638290646407795070374633040865253294887622212802191155357796573676478872898215036000513550193818632469659377415161610852505216050697541432183362545316661966879662826005139613277675590103077464999108619212011038079867035980696580468294302705452170368800035747690073767357183855268492825188751993572700082545148365982822974838913527776682475829985687066705735346346126400209207795069546696967876696152161675792542920533121874801508611185824585629779207897132348818869890034972835415017866726702737297820868059917290080692669636412875200289293218514425470887958213068295995908350945106063927670792708669727071785560804517591027134273316422606350981321017400199572589760465766246336240758587620926828755976956959957438853269318637047287179426536164024312407969343340707050196102250901983247523742219758741378128223966773505891369420654305856873127128596071931177618903500612488078056080310095931571229943247908605881392559800261031253572462420699768769562674760225037937597334675211216398051096797034488388220612756520515837615014544450765008348468629201132913932889315079697497088143468941521468907448239443547239939755760301351911892742562716859855058897388364042555508874262296592779092827768419764596033044568772257047352269556373768504106043577064884038071081693760677950569571094657016858768453060027021291458495936863460603959987623123673018726215660199283850018655228960260721299810120073873532373827854479411998070082317545285227622523066105670657851488786756528463833801920238959325036270013274860894333532419953805276359939327977962846697197008822634608042067828769604740344110730024977501623653016435930853964589144886368695553170732826842101625779107494274761346824821501497752551806180877987252739916558530246690675614949760790572337297445596173252685649036472799157949435198467978496668852061159863394060853291683442001967133417877320368119991748531801776558450801987817385870519093577877173343280045991916920476696070735721166015986224541902781348688331761351258738246560987603996373141679760251189274218257973836915631507127444686390416860340979190641981427456258513449910223113413549689329110166724414660288376994166413799683406752352933070398981037040440715711933714858146793305554677066657113478898401206384856870830941562658486202473307918376104873900406277304591501985323069217056922218435910614702893494395383372283758209777582730888824416724783659322557678748859150565807845092585148001358287404160384224125520788369699267382012504763474386921660236358309455423000805142370424520925057021590117015127158627193422591887260719929851281586336853399993867772543611730364368033013316465850960704481959413286493391111672913071202012227628734106896998253892501711153543234128644265452000753658650437613733151369089091243882822755345116644066086596546538926968145820891611829401955156877691774187044575072926028593515068502819786124261251034627045254364383613793440366061832248220634112656269915210213717699185144594143981738240327136126477030197670169878141814354514297624394917522551859327244391156604507171241717952164762105365374021852746170299245321533317409434143166375421120122375180364420745094331314747878248331972358563835543498954687807960923025006568127093065248208116265215736884657964577555987533304534758622772759136291448971542694660477163583826117338041132230671228667369798237570399184705428015926424134078550251253122987411322884784168758263913875607208204325038347439176862370822759513084194474743831383345167545565257468800096935179145244780794228802140189793616512751864105159498701851613395732244575664319302599268324290773933675416929735870467568585737123925375736174617522693037127950841115376812710520218051703960920474099454661096309243180181523869921341644044789771434186498734149151418731052956206552406241734809019592669471561799534755439875117050830359044147204016444582485238897295123804386330055698726693589305961416251122152620782098719897177683135052504192312158219317693977393747926136988623859560230831087268368542395023033305271966790858231336797816252912544530710818682688328462487453505978272649874012658760978083862154362969171282031565970647705230328177616405227434071840202418021580607241231157290768734939972778320206728457899972231089254475733671760484546222355296120553262369290801424926958802293772605821170104291114044835200150938502501307719133531237464332683727130246917871628928088028020367154756029193647985158325787833750118874847181887963917071575026143062569983396052906996389357714316544671064071053858535598086730263861201251962626709422033466271324216849414607089896146080271487452250219842662155809584558724013111856151601511291645211760387694627377522279790948700613078542301365496020791747452883378669771187761215023328269678170198980538823818197489423672911336100400205986381226580128055405525630113951515601377285005483939660914535008971688458869916371050455792194098049576256260738184226466491566097192438489507401172800062612251058671682288446869989375516961753438783598065199707136681603985700100847572102100711803510447291461131514934603280805538875409345226277773621476369651140077713199191641530518566803474332617142470600391144413712812632471857071487090771137466956318565588023936330726369578675461457023000847298293163505542164040167038106749893062960540220906659257366913706087335379273066725653159732223976161810607234512831564389365835366154664429760334136484321270512966389963169474536084414026032855390713014242157515567598771683841308732325056078481950433166176751593120618078683274109319034882463045965664605350844794534513369276909545439498154401870875608892394436895986769932888236602669467192832904718082271960888109348482727962084038208230328790408653917066827781907912638013084975178248051579157084387256345549670152158578040508022199328008909289801750850828030062076260426074661734013501781473678529229613160188489742118232758828005429046818672616696681436160187210481679792674322976106063124801740508122493498843849376373156510679855399279565327710097956853251181357888589336851912464290982471893065038716480104603395792246456378945843226621036545341541905543088176362734856327890875426453221296469026986731158122233045243018376177551722670993466390451244631359158017598964914318583301647198997771572506134746682471353478899562840888885055546283022673244494878284726199872077590789618411198187882170808333496150167327964598336710607428847386131547087605009368573723453303561600687314726121800160375304451245617849412708853404027331198297740775349066763806811617770647148539510349421212931187258982861621571513087311415056978674743756969889318570952259157535055483584794943778809249539902398439883116039815476363501970528380095573279779724462467285540398239879413281495838141369399412990984797727067720752102613965788604840110944542636436788064341355683874669299085843902471160156598805936350348064327123492199232781110169408067131157105977505050560333979804596619956565505620290213981276129513700575530264740981012634081117121887582359752153992619438096606969482806291863264984098648965761340288639191936180255682507599115907295993691347107589248902380228453896886069164143455761429687980409565439865931016164200922220938301703707711005505747770572156408191889633912706058570086480711840316726520117627481839136393452151916452897052355707808179496707083432024953099122672251461899160036540934321251076482494131647346786918523944582970061104641184600809043907860955789344277673315085110363023486046198579929734923230523051365703679946454143213294115986141565539310125409768580489327288440825887871094601071386162343683720115609066676910956365940748845249638711200754088255333612832095457442124100714884851595737444156693388101738667586193147548910098201860020266882807189759647724488919238044913305938650828523262048712405298163120176737612295585053558444355204156999757940866167291206720327015932122862078189165605620356237234959386980498937784974258510174253161967928033534199866356611803064315295130937191469503076734880849841099229206994170976143125925499509137703752050706273347464656917985204260478909409077436814625705913195855619317166934880439659622754112764277544817605025460011531822962719063022139677370662632033168020104293933608208279301296997126692539865919373780705180321888445590975746432045431970510767034290535246080274617196972107682684141462665582829506983195264095177962719629691103978563169742287297957530783009203951621945696281224382467682495523812236382821752308135818869065675847236230926792000745756347711026388943080407539233067735510300717173813094105114292478143049217383177504484344360199881049429214821331385303394749541654974952067994334860396524940221535090169014738806822764939901122836704532807989251470654583913332039935714748441434891819717257943136883263428256989384732556298600865685969774836969240754697523704222655248266967462419703984727455364920738278918998829326507327111381497983304788471122374075709595605102817186185085093745635324517389276483109600169514739706176327279385854434728128905545779105051027291087262195451526337606881572636792224474836300256244218693211411458518007720356172089663708359293315610095112980428782750574200020575863183368139202971815733308043442363679629238256875493300894382029108242945343563249071207045818777694282886045381529555581600276813929541719770814698478703188661795808437008065645606584868865306127386594185888283979799146483899634481049592303354311908255171423205707340449659177671382929471161148049084577423644966215943448904575903820550096866989849968068448373595754023325282311356387853193978006316384876592754184168493238533061407927359338366777428220627675682856352946464415024191833753923280864450139151484949951459231332226647419129910847823062348042402507490112315386828179703213081017133905503801457228389223164962688969872505676940724583871732726093513862695297814255378473527039908411074446201190292235426746511362213518012521039283276995725955667565870747323344333923516315193318167375439611449057638089241138973230090528653212750625283629948841448554560077071492704553296973301378560737784820926676976029265624035138208744899883591287626717683884276891986378870064918409702136041736687355895385859505807066138007071016313108890730713239383402406077606370161154376316785536072521914595089830722430529446936963591137466347138126649801291992663417348386884736248386008242979287978922890157325331744170885364927144718911500809123270719581896380877148637311668303865392940503251026591107220825503221546915481189119575444383125059506078255058039835149445673443043894018590143351273301943360002063555997514214099677659774149581244499857358408354295117036116526408135813499012074261809309417542248407273453423921942858087453500703304344122134261623982749674275543465774554240014425402265620317445427707743692181047902321715317217602623991428068118530475542330402249697623678921820573227621367847108970954975998514198416785537082125705992363311991479488512703142688749671899399257692999410154704829333546072694934695091714918319545974847872617278156837384534660371294494142003348597654617064592192189907026993730387902662169963614387951401782258543948290545120283702212414076956064420614091449971911029636266823328786970068367953387172111465826087834420980747019381339188110261329666205511373790992928067867482397721873252472603925497089118371304273858638869549583065713479316850659327435742808747213362390235819910492021862486871919237669201473996362265527218436090251876929450943153406259141047531246243271416412323451697840338012660708857600074411030868316464983559705866962774132992445023237260010175828734834345721765623999518652581274253748065173197589010032330212334152015956552014388753411845670082108049951247477049824045170362924773065549008795754446390617899049322782276067083448910809677291522958092101651029004420703660714312349001267053134572193612095600903073166560365484825874790624882291907389242457591929335055424513963205200479547847078019281046383376832907158892819736467085085089349747500269177572564746648488786996091597103410641651933152666270733761588601619003904236363169030906913463410681158461140448297451367826214836389014539080312700609643308523798923778562507242008113079918783568419483459274813826895016866427679024300318830698188839571683548575682967978615690638274884008096267541843015293148753259146907253329076400895175905580419835809686020744123869073701893960197020916047875834021885386892083151762566027088523455992985011215941716807975432755890003341383530035674475206498506772870567234692490595201492204522674654591434716706688452195818165057469094435676666376478208443378505251222270786679222195268843209683931312342144135092653240456929801456485779728130823890589108896342380048944670843915010378527245366005632126927906668717420641181590391235977187081751837826959901785144467208468055279403645376301661377687738556827747186809360403070620440392274485603435508187890995301836320959258188176453716385860860425167085902949904348231580322529686294873143040698487959003067491832656745620124643334462053508597318527482075628995218992364581431558540657741784179412868047646636918304550162866154169007535930082459434057511625148982291626438855612526857269246235973312200927236018799291815362370725738593598944117773327695768743482126802727611724476314627325459634647965928202412782983131439767512684873202503490409272132028347714906158251583660368242210190104723060681135257965114413450468260221640487823092093690549988235072181964113869189835559721446183915294324926612598373716908504635893217847155580168283429523228447314106564419640536343083672923763479172179348289094471545419713837189909393957395962656330667434234964195273054826223352004957509052713714066998001796395512683516222947516269646649278263612591125739042335021478588615320980651051457176063054360600937028694722815643828499213539940550564353686074183102529039241391356876868566546444970546686878355578050470578589583868418337902996835737822644751260107117467546763445948415049226645509486307312735553806137844330284624736484270951394549056321457828874466974098753709188510440707650395133261009948793223093186240962477692924648018539738591706039059259422148413651639101202680343618055880704077221250176425102477270126582252936520900614354706872763878126068194349089577400706330268264015944380594996666303398369364010205165355931627012635835326190119277432713262596365284056411724221448863699008376266113169853900141862648176576856889131365835883402563145682375952663576322730257029849003423783358814208123354585282107561142603811290891272280180233749123519815973442544711545943095697384691971158749204589127598839985612061484426595101557229931766184506798392268805983240043048631908668016480110291361788055400631891149327890909256684974770956165713866427177108663930702689388297194435292372668610706853578004806815412105476425921258103878657206514655460966477280630706953007336114174025943113958445362971880631718745276664684819121177771871791341499706882751496694554204641208516456310501210577839408868862631937359758864405967307296716946827473513644023138599345927429452090706993056020701249178741644944622164129898222626429557244050401149944014904348264332247095832397025203900422019947367205027081044201188815854070583416137890575769777432418136827468851538189186154203220943848064461354217392760538360634531027310961383320064880929463939131431325126624020710207298246444248676132398244213826100253522826563964006277424069998279994298253569765742656147424537849005038243783024401771620477256133596261667010814471471522475690385309096170488485780354510947609920687909300676942015592729449525635606519025022775180676515723817825540910875466916358292728311092723952381020298472832559727154543104403739271039327201562176198524166697117769322120808172047076746202647887671186414230592468906048590024918794387256025457417892941731787129648630477268693820790180362856530949470143501672273666065086598405571284947986856339420142716921529347252378877427394219394578890672126770891529780884493915282919112047158435733309704574780127263517716767805528840157242770425599101264807597207708599235423882153919286034911592872962864289128016478012127757953768613389189244173346320690871423555907833445474921368340313548955480286068391540219352594634095582610122507001552831264871433363787145031036488164082860548969704630661537571840950374021031218070440195581186228493104838436075134491794524567902843731335904374487121669916191304191893518172345497622332959203901981468631669214434284751219788168809049967219053758856262110296278483339557133950113422337701925076404038745016547767814945572408844274958937499717546130090305788073322942696447298478448409440429477334619228400831748849782076891233075418398752326596181601480893661891584491927216663648833782422413083512465630712196515937755146718733621549933354746627036698167928215345061014735596508158427105936469065027039904474161160366771108793905935294792293657797345115036882792096318295518581373323192731491778105300012041130804349121131942309973092806633375836397161629459736670201925528039318703938539031918888009868874505838850080288538385495278164277557684367525155027452733837304248408314091199454406591535109945565479149934812643390685207146098694060428767994984901359572304132872216849763962015461380167120097768959900384817574902608790169570429318448616546752974085304425096749617374887651211680584255901705937398270954279545432665932641062536624137932535451569938632941546322136450612642728939878669601798048603192017784542157967394827079431921561849492251350844368315994781981182703216770866797546343707106862317316910666735626023987509186486364092771732860353978780885183187174274371502578606384987389524201960896364875185900538595891395967850434100672545481159248626920432744069554619711464923544621171103769130064994997083330434937367410553526375416396946343425065422363376376614990923924608474332688314624027772580480351197321394090482746364581624090744252931839137834916339432417758538230237356916748684600055781443431844383258968739191190095980983073214130952836053895318395030042932172685456382739978809965779462232851879093706232833173327484136412675898851015281003199445314280962997008622167158155738071457797331082306854267993750812522104366605961960744110512723445494834453522314315213998298245260390133338115334320700925509702131438576483943259707224346112603151038416317745034596501598708602272468163743773831984877135392146011862290623353197140129651402337749916894277056929052985144162795005053732536909791178132841380207818803160596487057575892652279582553986926453535331692720085030317148421193749763496057486482824320324613234055605143157787612223924581175479541444538292690816812532777958883246179965125212341601584300092645346180542460557750590808471479042230229900130987059003010346405632559601579329797051592568344272097846671218990469934534363754923579545301566742520288672663601912618427951859489639807827366005640936111845334109718570865426354789706752481131504095341193826225094396655185688090403654903188659409945678007868554113436196300778950963434391087917734528192563675972664052665674186752868286073275025171115070378660078848880003739144445054910353253335669081923862882535369566372636081180186788911425468127999929039500678315458667342803103064850396538833583521979193303846864133627949845258527937577878198359433758488354309547961266538058907295826032266415549284484372378836616272269898018227318927086974747789194465614473841159772580384368817503564419454037405614431057469464309093451896849504145522910409637612111224882496383535063521712359526542000675088295446417317130674658692949028028550566695325115089994187039793788947837147225773172300936760583959384712955089508334501650710506355552963895046805447854361848685938556651158122483294885329688821783421475746557546479743112746514602911668852417942761161544638916175780729701625962879409083677654695238318525902238821315697250581280915966817874358895788081563050791063427050611059724299246997911720333740412616768582713648227244072147284275717016101800775440032529491349213713380415339760276620855549607774020137644068356281892030275503792827602496003728312520166781237694149510025161695699109588070555205234477692493604544466969880674693108759080994135463166899817817997668737056829180022146930109815630972227827347698916088297143944056218029304627293201154877455111654408090859327691867454616876080771802101000642958508240526160361282680329370390829903853417682339195445474682493666027295006365914330119349233850827111628991763820095522339260332398223764614845133224497412339651547459515647864271364907912701895790910958478470002989187441772479476821731929069498125527555267527553133947503989895075850069517430938031326854250188079834456328863204523407969922962294575586973545668343641146542926916152391166912718709784331178925833072054900944017861673080938097448105813816886694334474163375541039506521787898796102700231546019092415266460451609109020345001667202402438936529535241636182783514399433253777659903406460492313986637863990874070214635267024758208565505026430008287723488214003662707288666346870875263959301993173032581814899280527885723357760325757754747456167933275372946533571096797633359724726130853282158202108581116683059258082888655343779453972909372746654594749883247046990078808831408430023584058419407339388103349737818572028594666731405261860163317105246462241029513709488883691283352819625772626101119538506095205861447018847690824759927792775055259157806527859755967741453548602170262640305011944383154794902633287244355653811556086248824418463588386726214824957429370596626244294928003923862403223783962916396230460243769261892638785470356778136918275352040855634822487057444688140341948482025148922531087592019446585124683233566429006944716213253600023500617239111126560100674080485769486357107975896086140133461335467425719037272603067573569690585192546238967967935936787749701822965452783797324825510398255543461993882522681526863811302930038271963945765668220559547818906211505688160776793064762863406231378032059340826723852058715319982424102200083531742090526814678469100662123956188947502015239590290942104108680382704320274109101699591424768495262900073022631423425765156576906283201538658035982996094121487910456763774476529892467893130750316823727637867326434243979968509467127369938578994105888054415530697332965160748754390782063677606992134563459713866149886077866431700903855206140470880954646968722134093307963247027671288603645383643750240090807808828739326987931222970215662254896967825256209717676373842446869264140227895434962299907179330532487619984662536863136063254315730067022611053514936678867265980553732122971012430009034453153952068003019681669906524179340829834913647527680173696523909613463159973967417714228747867072257589555158485297788498836766116202702683199243594752323020633844626569250547755218736834548950027179529635431303417237763117669212437425980487961398817997816539299237513710243195180561955886245423829441839856087715395692702573735255224210707634929280889456626392075580172074289267027574041640045802210599651749317722153138336771058833407897289194258948525843552383982783389495616540262059794618630919636209378417182729480610275091091456905992403797131715497857664495729139018519466238049237640021739752593699079216786657056333252263999730349343212470246739753042119131377422196386726068083926961108965151719332967461095504141507930108447717061323094350415884614019498288583065332244414139755845795144311820704922154948598460272747261303594105671542210918187323963733047042088647189747168377769012736720432244443875141412579054071411541671116595478577257275216785624274309445860139850450212311009198559436355080583203394166296000605183619720919307813445966505565388485692832045097492017817675043399233779441565357244514444325509908464718160715155910997912710676969816361962612158066908535761508192449300955559815929534667030743840258072451212869532961791648182841491667793940075287739518887443162089641367063408568746366341821157473213305501477829341294238145723656619183655683205086677393906120871409693265130656313223608156325649897831122910985959184451092521234200715228926265749890372700714356265057684910476509625472043123502910582224863394604287753814832167167167587742904783856528397209576657315677138319188446074099379544959401442446973345754554605603812667690245172089617086619587140660421702554037303938946321078461279203248024887683652136639547957998754591649668855250875144729753308299152107235850514063002356010736319338713226471627232839024728794340791692343199383394280354799578836168154240448088205076125862954646650218031631170538453894939838041158084429958218674606245132760579708295251549978316301403485236652134230801681634669547883129666089385995644003018597873540715699470672600514606653514518107400353237348323651049747539929222338592453558089225282097736951822460972813576849591806272170985149391554218975571785248764328573286453374737561902678197359088903752727082681830153123686344792652697167834873557808274141622411784796396948599313616154837719931615621243267711206897038488338507707328395287814117949685822217949239119977692397861866851331022340946817035997601291587235442427486759039892338630890591974857385203292658486674371245457960258628123628776839706281173659592058628346496450193911356118975836430931741514627735267747490758204074903815685530977375514559338268745632963623715995023866657622058742362576017311505951738919827636157048145925010128913376128463808659400052211791892814358050233831263533524431164316379719908015939188727015928697138804578561682076795392917926635538696663733111881232172761478299283505923365869076114599975749138798380400485728377273236243718105232799141474088589719945398571046812790035800224935200624714116600143565644376026775895803861754369665404318255087191615825161414823633103225833589192551013798685393747480452693770422684474333157746138967265835795800925236664467624536788191268840055538187650796916065341167696398587024897380852123857704080699296376187963812103328969768916484447562822699603582940257429450624024245949963515713039738182037157457807716671346163091884166299463213229686025399221293682869017632937970033609382244501639049644785454400159958592015418139462091319373225580069627633910113984027382830557353377040538399735379469521023542874705804595674835695193754169669775960876576079536033562045299804102122686635574670293972813630990334059775551124856606198237933779488378242604169670257621795088801470893237664545976343434102476219327276405404516254737643611059018928661312713536190825591138114449080832353790818250220232185121390913268648667574512946891017362089950963867600097244288159833337616099673910297158222625001469736517334139983203803883904474376872613568333039927843016476010181433533046725310881179441223863238283275217172238086448240486298961999012975313634696599160429227030061916833223418436936938721982028443001469129893967858643678159138517953133088326754619994330662002456489579057164279227058796574475386377471934861627800378954881440068288124755495110918708397076089449566784370205152579293250855390472453961078455576063696662798911618826394065411686556155914941204122528186225501333761160655572581312674548173711222934868217040569377227057556317610696552670848628651379634307215277283840425485468536172004773484634374009450283849741183584107533391731296506469724436195339094336146000129876504150404499151580494796611180170255636083901515859973673642246052333663428128014092263914950286736934581726781405103645677918858543175157547311786484806651486353672048419682739186761400350956363690107179641012766370584765301313642934254552201913661218291590605236507019577755512697575677996741326075368735937792802085116554052765701247890230920704759644328112361179665343856431609944873822560290220457496844872357921511400256195705458879797607447934579808889955247424345095863321342509353298975837262124045497165086473056487699800360631200342156903486684435778706456907468104622708432947207796007737753252577571878810049901696206851280379157926503560128711120858081164119309902413422968580462206473361047638396938891203563056727595070491098879223824375013428365407184890842552997333033494195236602457497629686198896995648634444312778071534508493754309193945257730795042728050722978925459055825755767059239522596476824077211510386343524976353835039435680400556567916168687793499298027334229835273753716518556255786221909986561230280485537046646959337370933463792362609469279897100009074788751620968047169637166837381598085002729417235053824158347661202715419413241049840340174253124617906973299261543315572938481831210166885182723781979856075503016490087432181183435749656100441690798544201110940192746645943385392749161148783818545270686348956537046039109124409763268631798129404297050034353921425845359267283559200559120393803676194662275953404737325170471135741145835147082571520269491798248326893354583625929152970221902347043059954183950689375504493568629954339711140280720448652410875484607532047171223183157290626585153466355041018431774365828234317839689205364589890624579119074288638705622162298479125869220200052958165623201906766436507628509659663165035030946765686513499016970053988555566469849676100966003336053530631426273867458134217492635144764430386603116700759784215544316303249703047588989821730766122177807683579495119487635193128955456760878399101864408728706587773445245437651605571106255851208872936058835849954331775275547724794883527604318436189469088051421055511977094505910476546221612255652070877379010137532736722336142493713426202394065656870427451232734179079918710077509658901620963167313517329118276193683051408156264141492007481884898388129968669362243036960054794585840071478297215101819281834022289073633742671755506193574149832367945844839120152964081232769614778562228754964932353328105275806178696645777984855761006847408366703821611212039186946480193435148098066101425172736716173621111480377470405548170028614181334493013998286432124485154911726130878377808790176368561700639031766186328412967848712214284314580236593311845580718308467071430231639327043896185512256322961542842001220939800941043862852362691277680729088869306696362696273839825356122670594531043638659606667189998516824269296015483614168679801345317295545444622233952407127797918931223866352280058656588868737578067778738760127407310977924259231510046978311211907079159858639600462959508478202223288112779073250877010844473163623614509878582583763908859709871709666509769496031148130978300027683795844507075555010202638939149157959269251919939218538316665960289844252562212163145952736150279431690921734374158840698772642437947344590286065833045163977235975218086884713239789823080796670631078716497565846831927919458435819523750615258279621337241672841772291750498785302726041558452351507837430462025073541179492116998443278074894120776803167079188612686259036248567144550909948935190867053128287010806065093988684216211719268453545643404316033102395719874261955056618210961009322403849187369280087824727728529698631074456161472081940911188569453743066691009129671062387181060383370375569025198454067766338981998447937208872857237359308352048679698361607493681281473002926618807992645050705990576091087344197752400505874495339290088290280894248170731606618689765906534987258489316785300478611989456216880509367779547595661984869036141938587445105247587630480774169301894211681595089125898842090531841393130402963897984711643601178975056576136141268927182207100924021232877529153705106420595546890738934167596625533910048650448697156088831751331672329696367652362893855468092826884064727235114054169276277519729719649895820566901365569697887041047743473341637994860250808270971695746423880312479235706897244816861768524261880144222498684756002023569215657347262249264505752555042212614085331616510939366551172712389422905423478803484886349369378497163549397780913166262247012195347140696826680922262156549722799666767477758602758685757844734660807046058742102467359769791889146670154008172239434024778229276158546597271416396416167357291234491047630577188308801225231216725552097581939288680607118799690695069662347356873553601973789673058327733915912211307630563361538772377823974275995564078587315669521046139728195086958059271152920556037015407904659625226336451639523516714143878699143895046383165604971069437350356638095194139302852653596300154127865533982938620958478426435342845725896611080653917595430728384589721088523766475587763223810724069825236360604135491741773512945083424407457668501819013851283739054280368739062690866813739595999692781383001215817649706007745391081414214592053074477413420486754494257444762487980412950301033546222296805482299969169330365052697707133377243664863768766701900675190956812426521204752321323965322123692428918192700013235739706781943932774129192194558814147415782451964101937216800645362806050964703891922163211157817586016213711112865353495052519951376806899336637935765017415062248045348678489469883367276292344910806743403246136106651940655235851216490376580805521148603629700526861048316568834553956714141812786756254636151147513812985062769691215363534897430997750069131910481895922933221567726076768699167012846983757329051049799314105781041604140558231277935508872931639341654619326883093448565383245309575872758354700154671922553738720668645209315360270656448044050413397083575753284166188463661918136566937518528455620443790355138529290206035292887390867154418313407920440895934538217880363160099173277676163827578468135220271928790365253982362581152607359490423874061576802450225451146250689395637294393835843276587464706364592026649834507852792912270876572702401107127145871316846587098848698158823813146491828637247526574363372201903023965190656790462893589564828733345397318031902450184615786316049865035708641403930440850888539687709065690473848349203300142757101502026913289197087884169926103012746329889553735973479697746015855874239123108962977217444042965402327351429847048568610077924774634121082125020201581819189195665829304780855009691172932287555125539005858789268634884383375032393739680953146451544443057893471674970518483320217697937452557400638211895255051839599019607026132060910497438881023712569448380965262077298889173444180310131480331169940638900338616830342413222624458367359901343585463537972753082695535726489860334722449685776496218534987758116828475661763453581811246037536207237670234658247949753274253217431711406122214515781894350380013630860770723816812188741093857844527376277112592676410739169748405975194748905873435044166852302586446664372587713225587406410959705130488295174612174527133230892363118074012052208322915266116936104266930767540067733086693595337209597268146947106023957125443605622948329356070072351037537595659301424392573857305253047891604623972073887207137823877121117215820934313290906220014183376691868565586969761747472400714411403030162279542617505070831837220690735718985518530759000015375594589412489994265272741891349249987298471657045697955883609533327522910225121953132174048528681604839594582985238419672729321176076547578949764204455395670542701996724764234815459817582188633897035642675651966628425847857733117262954923769782483934495227963140477072261258620856639134725975940512733073653105496187912779852757073442567175415908020429750023113684199564309281559688429870845571994522528874832351277298893225875205464913139607434298069769365823789404963701290796101228673679753349820393717093202673352422413804376770261750344557721344740755833440204231563303429778647200851172622105258079295164520439409968382364819193754721278247490325810651940993032466822927105523375553988645101893637956617909094176615311603541919962445234196794364232424230486488497502597551758032440006042528416889743660164884697076966954501759371821687112270383472054534485865032688268448868114464811840145531613796231260325934029242880280780755827864783871707655968988041560222042316704550862321830535820744725529044089698395311416792826165329075257691089103713982005322791119454849873983445818500222555243317605165905301891555278954109088332397971757761856227815467365175370818260886417604900451134000608677824502539389264003640946415738717881285209962671996874974460711690711599361698842479690645949362975841053227734640105297740788135009276765508100355521776187000568222062589691384288491573784036167670951620102373025343491025522124610523696359361441365129840896709500239938645792027635806260637374361287320871782913867678836969312403849418361492133816662899082046938946535443126705830080641687613042499346856277032164296269932375540844224137270521923512567282379289900394820754512093357141805004267968526284691337190333550470222269372435508738913885118845306290791025980945869770909699702463321025509819795843277504670672272853246879090230863527514635750311104208873485392998903640462257760635783671573314756999910340458655941880134937644017720662937086440773810567632815509209988456200085163785522549492260070675548686601107877229239608814913010331555993440648548430538240432929109843154791336512890206076336663638171813292966456288748103915652995392315847460785296392796506912593837047239383141233983407984879516148609438510386778284929359918137477069521704832296712124541820214706955148899396410899497872378911504238139600612253035171270316861310814353849614340858416028544282527349563231985425632841756978502727368676476509734269096918291933123528444327533005926506989104618081387118578323832415965423838427325357490954244235338552645587774129840389928573879895976278509466643788628087172469913274577174996277799141781462485146179286844675590953177325592706273993536216951090810959779373710693856720124794027189753761261275491415217662534478796074896310677878694608264870238050791573966321684975328076446307021285882636324285094790628714803970169769537903980746635822248626340625186343083152954557286813405384897471513218521374233209490106916524797162741563894371452725911481480775746024133745382662151424867833348009617565891055739729896500913001108950707493810550558115813025834154746581063460032697430071390175101246728037001817137305219412476755921070437362633874455285984490936073922753171513087018091098403790586787246544349767325546664370085294139595682309297532505575454588891475428032424221401244339458651529022345152501046024800567953715364127916498689247185433815789400131415995642442587645041507452598779068657009380754767882676204638372557313354162908785965826968053515567065438403895198841729811245471760470542742751654464081584243639519752891916549037853313002414227206771262486457984544279808385523629204811265458503614829337513311252724534134305997772266758335439392839510425684736687894872106827858144949726743967682494312362597354308555811299738832412045638236585741783930248900318203785551130060011546011150450529688977910661521364443616431179589311940020940226835201767811032209298461391980230609886683367453085905532191541951486886186155532353103099870576571708414839331787699505691647418177707209506616432075284554165451934137411714401742579040020685707548792289318587001940104942499916980123133170972497882921751110036146232191712707515281789622662057971521478941302805247421890831242380465499201224136864996536702031583082883580886073143592065104100669829408790509659209157055501985199724228800807325144042754357993373984145616433176002102579935594902113780724971800658578806659850138159651887551865460655104431101767666748267831297812404338042107416320019474871582968713225757845499822778349360142408928896451769423937271107889132833549345230598162513002137338208569715720704054540357216250167226941454141639718233228662069277291360080094098499299685445505040288111047331153641831888705143763312672426217718175787744401009533767135040192823993932547002503650320574363390088105172607329599519921410449699921538760325931197378680640175286442867022234044548411042905373629035443068858731042025672237064278330518806619026343322646916326522426880673828468990115979211233467518256869071081069655575464891499188921805148161154965637024545387847927533631454215145377650849798351737936229996980328741107365518885747800523873396109559090129105442708502955740460647979564130346839271608662675999975391064728675115589562442186304495881191787309371927266422310476752831200030756637099338720283983420725712264370839812073027077225303936118415136291639951786704994287969261918188512500669149058817963408678117579980868853164517281772093425623694457211363034892599117264583993558668711989361237921956240359328209861146726091667191306810446556478649945930145496924250318445890450401910597634336165079102171890063314028494155083471515115966215755229646258010786766227284901155624536570570665560476852895213358979188028615769416357629888656232301897318644325042956008449486044035062561957514297998908421484495796293156065496426183878668454602749097984101854858461826706689653272701686601352035133033651750487646112493676456133146374750170242237009162046785845570150272897389619645021769987680918413763703458758381932289544203400180256126516567687159411533633649559202547044533556561763787017453247771131796909152703641833134431402085221996887314436159708336082159484082624627752075111041427535298538796399108369216747270396027530576070773322498170402070398666176916953880286635662375745439166815304117076623309495178655845277403718641998775343931904748749487979708496913916378555346766098806409110237786938106006394696254300889634257308531904662834657506558556327236038470665317029587680242675760483659188541394475276159489524421134787563643808906055786882700025762633305605514594868198004456899505284721583438516272647188033586535759489751567225760978655218286917695898855033431387000693567945875639970270340598813483909855572057685151400298302575671911506500505420236270149407582318870294287401323536206696087559640477447589297478260088888640269811872796180314621859246720522892897556221659933021381039424501529014603790581460172112180677129695706016881252640311272912319918688552188831500223215232279086349034235348177323421844988656400157491944006409706625829013163299617157964227998238768499549699898526647972527149254317822353664312609165084425174241513034923902048233088248818820354008565116667345830175905689141737541704895862049919325689238889588174490513394478672853260182968604220454567325875324320811606018939906393002917979555491958945951008316248492531760547557836367464070435172771673265079432952365133388617563268030978516837774212297106630158821342153099685247139550668277039986118511406051040581929132028663447318755217747812598706807240664958308989111756900644951350162157292849275067878315884584762909734681931384249954410523003260369169718279589070235313388228523115683946534961598899990209023227489601624814782899327979227450652198295636229399739955196941357346092709024973301210903771365425645841133841751410081835614648214337809731605062649604408965874448272562544847591338980372932898339358136724072655813245018293104779889119107900576683284636307841226173261790859739243862119290031777300940194141848331669909271249767849727688820172016771556014481172762401016059287280526173121492735110578071236129683312902145469992640369342872381668131683510564542916710559855472340537323402309965321732203982751826846229637977261545930910434078326586291476772559750426356655230939196238307590174500276195025946999627802867772351764742145489659564775207055721656840592664836716076733509584706554640753550465246592224204930250119982531010891709560790146497062161948378555431732982657747205516427999115633948976014693645549176947717943973909812678581059487892258945292510284964944403315484086702168377982700811201686621615284297135794991133177044183311525534700045332039436601000467876101121941982141971963508644870514833143975821103925155997692095305041165556679561223165315231105062706987277973875083766614140582180008214420745893949313165317784526303797275141022007814369484734454931705891312478910696174810026437275100972672103112305208328819390635732287754142674159130916050609350054543492843688905264742783912278471257150258430696507888972658225787910932957272778887720784766027575031799874414949946192636259431956865714600491516621765308440988899383400371685138362714723960558928177858391484938900639206450027419495898122508490654702575970295412695219784152719739479780783308354557869182052074289686216127976310723564069911855692028823305074886710735715572103793485721714675643088962373651184211227394280374051805830458388512063337291271039402945729057528427581104940492749428151469071287279514555896950479665977729235389436921617582908470373929449822372768204195107558862088196615262545792355135402232067531949167449039631047180707640135858089417446098976709454365713718525178812896277732003796636704867282129806872944539042881748667058690489239398039242315909103015877625331646610006729482239459729158838889298173028946685413812706290061638998674645120600727810296033047841428893553237149547176076462377993115173339317150460003441838394481847906000998457467858489497666219298299072721944631875029226016846302734133568628973384757546932268853180043593705176336092982046625785141509189071684499007569158704650484599181583419192866434164095705548627240214162114987332289195512395228564484950542012176227725359675179678846943605984332553337852303538998186564499139401188967093820165078709085713446066166653122806347989921552679452496392985947524667441740067827908020878682541679818168287490617114904201047972607358934842025128988122908025456195360188263365695197399120487117423305833024201477748098411740083942661558946372865723999838463820264308957097013575573479954999638184935821667830705359458161383522826436651473072097414404212084575519123789653061462750028455456535698262187765675304742854084999788624281204646549163092906881956061754204450421969527797730202063443990094230762918811855579823221934335124003461244385296849015904206208966172439422653254365989157324171522647453581412467019848831565449192992328531193335258397708051718942462173687202216070885377703251961768178943905439489467404607977356574520657937830226836968220642569001984429260611598945747252345169142117508739167849765034743426651907129966552598099066648249186503814161626606951724630819244452172779593865616610365285782461283171314844954248187782099017288366669112260294983693176623498782977615869633836596985895988705441749701093128312022329702114133554135067296492540856045286126653114914719461430510900740484331645065802434779199319828216188630921409163141224917359073418357033755706352713173986330763735172380203157502687525780273657028301662708065624277992952484062954265562694027860095837262245130448894614325785107335524099887678452577926057457307777281401675194549589666363309466515242768811707660110806229810852591721309856479417521409112792017621283976742697397558472770591925739168640285018113707208223436164333215341979800472741971362715695742876698151899290024992870089938276454350169399553180114770082289895418376918432146595142583856734085052754344367385843457453296057587618366013386689066102947071276783335557947805671393206102269351976233916298933769023872864458567048399383687020810637661983301348148817801544987115257765384797960481295068453592502664569371594612394312632791700420494649359725972253566227583474765582984328145948917446389220572192121285510098446260838470571249059779904159441363363635639935383643786473003009548139638177206787648970912956795685245909486372990476227023276540820339155502091334924602643269263945214805908460507444568720919368601559861113481681384969617787814190696492675931097289945891519936050215291526269015167318943095996825090985640389658641769292049537620146002305932674325062141169646227407495772668314426570892269104944185584620776657828572942999072293680375424037451169452453887079978000409254398598005689905396418200200134061525050258709814051097493758553956600435017956098903795421096648621479164186924180490334893598433973609574181078398884021248798488820009879959973187814351254923619899961903075052964075489421387747686678754771270694668624651060675924628455102687469315307193552070229220083321527871159968544495353255534693111174758038363544144906985508583012412733468195477425151951792038782867038239806416757897680813674763529528183044192772406144949206374211553843925470617275733969405179823029780049629817778448544200630103934395399606732423932065362681242617204648163851514016324283589803694724891850798209254610160400569729276026827585932930133374836853400994715273958185540209889843797996128445632842105089680805371858060104619980141731074725158133673135893675772996760912810009157800877543123356751681382087713395201645991190275965773207461608321618738967224896695501515837282472192544002537402614595486235981688374973591262385183021710401272089023702239211937847505673147556857285259827673107334970977146667942737876840381671931686496811290910136432962276740384910800102695980017154159690860580783222404649094277265419286276173323560449956396763703192248109243753516768518057692711603469113994997973299141071359785660388499404677470764211378349112207892160089633941108462585375562011682840712241563090913104247863174509578017999360131451737630264366163314468066329220443177003558378235338804006432592669510860833870734993508251786132622069470647048557734890208031616327655264258987237080302669761995224236837748233988288860477708615284039775028641134426323922105230573480817999233968553299321371768905325779442986546081460299200173891200274198533415690324194796377525433093308856288399758310968225534213992651088225381784802460717941479040259301182600300203344364844433557341059925945978146918662748894967329754545011275103078431727395831923500764119605821754838712107614595877952633159678324121597773676383945908795740090276344064934410709929985308543931956643915411430755832489562712732476182884754947228683474685330342791895067879337832950977193137345586955055703777123400685871757537671790995251125569611699000586497826673832163786148867045638072551778772064547717165198194024664547210127134944970703008996810893284345813359713045673423193836463587973709053620413322665331551637550998721782423504688442090577181096243403577192915508270206258404641910136994691656308849274582641006924291418011113668367883095900920940247030346853777906556604741432848001828649550361651892373874602670691599438614303001161685399509368123323567660667140143386502127427637559331479526739015202416935415549613796328538900879304762259309916806371067811800346214580755936217439168005647770837086770786359279662328762372979498058219035633848182895446120045495365063928051330823561967125734057327986028757491559757570481939829438156444830866208689839035844644291511705222118813235975921202457132519509372487752141596764580274526578703821810712999517966030706826197480688807970041866321614739751500103528835660345987196502341182060272783898960576401391401634185449240670013707476130061314370019909292027090407243259025760859263341397669738647768717835633964966386844015109474852848418780165826273396778787556251822328327345891408437967445762512171046082734811317628034267576499013514444764679654126964083686102117240699395442893091375501161100968841439885177897402514929714842408223511280525762972262973387529285234989795985390434434584452313778729868331423534852559609861672087742109967742368233155251820609200106594065023756373979729199670723611640381567616820416043540567470352170949694406063268070104213865720108713046004496159352226192883786360259062917405307506489535112210120387264866411143179784025642393817844050342148042098090699088067098930157924225590597698029961845290301721912127145588880339256190376167213764232387389491645189806230262932191935129786246737662476587974096522682664501204393571798452008785712825134942824813875727538907156379805457486978962586058402975297048192474301701822809580751716969474418521410089481999952752948582073143161041174671499817482827249466398145712641055017787319314268357420640541824228135945167975635997525591013323905430694928392410689904290798128998824677159759855385803671249674614850379470330169094687447414290226192435275788235246659601411245100627391959701291022997123613029346701421316087666673045356020435859432204864762149289252452744103268268604259644433599625325037886644383844376207945329130454418908913367108854840629219130510742272217657177503564217687283488730736924261664062473778981799984534301416973707537549672197804129206244820004935589964968733943170009205055605155246516088680705458900708814393036343256788068501798451250122856772153762346840485068910209737627435388290713857611871989023580553176199436472942980623994675216831020777308932732521170267218972398349179038873840300016480977864471116761636019426604061290864782628034208144239935426583147652665468058036208080193375683689772871996049970438206225598817958169391381474157973671230832285952204801131738909557000740651056521352995797711157389688997635051341879426464811363801099476036449395427357550529208670967853571007319133132601446193195767836331914333795541610878828536520673043418246083440610294866304082947145974777771696731004798218572227111476786212378898665157037748767384898157729643791815376655172499012560291925362447217952463425410311957624502904172847034458319537283174514541770476254154762768459901355697691120913253062647136050393993257881131064721584965123862181050607222703706317531117823832367103880344670154544038647944516088260252646157203800720099126107190049635256416116030763279887166036024620996141539250075583270463078665012175223623338610897601352385346399345902455553100761797501818761342022986242194575663979654094251188304485321554761693776178927389600195311992209372029637456746558894460065364904885073084328184191347776227037951822602402217177955091000277454818311342704034836124511841635271064566240062273458139644491007037096395867986356941230616302355705846402915422292552017586753351980792334413496760819739189136151890176159247218563493355393493751193753560146755998315005741062094732377836611858030671244419273932441979580454799488237767977422371495324581187651044146795371125091013501660267936290858922025941618103391923363277277004006179121623390385340871412956275821928627551191072017548852221921893107299117145845550808871058209728558837349255095392133754886544757102193757007853862434100569342345927131345512918252680715455802483277805010310040001280262941670923203076462562630159061871811743426957221567309799097645957197236029339716376970104051471159788928630059136511936660670046952312469550588074772969419438947830675593641225347325796132664548972291955500375745483545390859185560049698937388216864687259756427650204295996006970084374806286765326601077755475468339266518679097521013278701150012491747388773937729972534161008090469302593849040695166926798156333766656419289019392805687638927376120957817095054581638092994924104195793925813863684018053997886935311545779280787375228631150968019156922748927848177923946909743897678789048956317174705858590766810386417808044582542883661314332602661935466099761887342320025558254531177928831940464807188668311085180964831248309760163654051079247079919384796174826831467745789890638865351105651961899798583321847666888624404541408174823561502168461596180408061533356753619975999700262153511862072134431830929385904321790267311112412564406042787685396756365081928984413341703430605182764745317903869583641628438864317017555683579306147878521144332587430536054994918878979185710442472915031372468519993421356511052506838911361778702082212483607930425420626017643011384430983736304248430939569216825586081691107752869937969140708956020460272554154857806981297640721490750475646047029376847094461206617976780690804650312730784561285714130904210834448691327608797422411425533246471520926712386166233199107320300320742861776352827424017070996861507770650692371154916713842113538041986711589079587610425783335723447032109411021598370239939715582861416231982323137829339105098696250609628282356609451650306990782111531419567659558174646439192686633160042202219200266743177787612003506399427229827383365034971511481069851992865065963830914203794651183286432525030059621452415595477045425327052570770219768400972993724455551541373191204670340773099382550876464857834180890761970283297337783611545145920819844927148279010337232178529354441025610400275011171544189665917504327762243123918401694771337541452720201635434917628294438648893140794405224390316938004764255929170401550900598481499496765194795269472370820557622673225570018006079141408368629150954342170216317885118659995452002572356371338264160695770113085258509391675582035921896747769616231931420314311612262545990400726350719406004991445345737066686959393191387883049771505111696154235155590714587098378570712763541006244164817556141530128370270265235784537808163420899735458232277710348623028360228833172590558011514455957403487020177455215587819002723314905046704685878705607036982011214156577031733061670242801790479207901851387627183471158850839979309599017354307535745961512573859474636007632931257207389579955186052892615662026161146108472062984081534706180379225409284134132871772219407429354016535362258759682582112428460164899466388233998335477424196831376570239648706050372277324377821573207264053399548359463183847054848053964883619085856344640762078816762861475675904445546582235754808636038121673179378343254568322977689352030428106993798659135954651481992712948116978858224737003080788400422233790615081527694085660043159099283016199284831773562261804595863991577631183697541995115003741648332151912602279795206438300203105160340357510368683384585135548698765651396249004560364280104924751186311993575102570466428844072041549822392850636620369491642111570821547961486731562820413722871051030265867520294679888431300297348010253126707880118316585310451689404207355529072199751850462699567204267239849972160241282486612246318560480516468118162060713297323549382411565211365590114467698246991663939739035250338832034328364410107928024260369972529947686417894590651277833135876627871595442502207319666801015407613691958991706048904082025774159623023463014628658876108591207232708128217814674461092114602834231870293484801858169325561085723185827649702574784315455740068618019728632071227196839773475758852504156253263974890591533939162240853331640620859693247411926965375996118933678050002210958509310152643320440857936787621866590643035668491176798230759718563442407241045791143751221423049344153869097807625433295565215253651285730116076952167563216281271879765303067283376533684028330560611836176219757850616597991592068835517241623441516111018926783899773910860368369869204915965700241348002424699478191435099117530358762353064141930004042448911914696877397406136844595272258993723322811762461320977481176517300241877087482848666755974763735972894776772692083903290950064317550394511839298055710898937204520813291074017852357723257147209292674508202875159224888704881122160812650808591206337778165767084356038444935605876344467083730302982153188425217247237851220389488557197714865831995347593732656150378838739553155228980744514768239653372567642532607110599510581390120255725955207531095588873082350473878816519456242355635545648506891284779187198744874264543702326063712017047448557992750095710781760854061307313222284062894724454293441379897767783991615511279297268153068924646971937881075905962614856013630214010968716591736067198155457414482142933864830679569794654805228423017319266394557977624119366445148425475063127819274881765988047463671207382826509623113597436699052132449173092528488986038415293749632991512668706051122141984894903667610114109514311376966719458892231774620815082683479084805798353251924805560266512419157924164514159294075278873107953151873973476944932675974116485784782545052720258104271687388140808597027512575798424043382997135869465653869919738842955276499374578877853748438572634992942457178051403544907017294834847254652950301542452129960834292469045742796699126713991988574195568144662516815642936769712712946648874288923334113494447448844719931155129194974420979564055673437195503973009338131828338678500718262481053339971815035860978273985663678344010277851964004458987168986069635753212951956911594536709091803954830670034614452016402661108035614274633108809002138357725845404253748112160705914153027232775659466035967989878906919754256830766582057199466771993524736415947837111057616894467187147981500542884763033836032303065894447411241891017829707885126072059385411611604372533086210736965867859248321481154416715634557076249807456936688203906190359315290468127268185188766436853498634723780368812806447702583758424273943940792231541748604319706538053546443124057127659114007898651328663786930728597614470580246374631256709913258808259612641424649119255328348229154335203072580026027421337975900574415986620726959369635176495677434244207092444010797880911598482483485300175575674296849165406732928420664046224459818208445230345034381901221257011229936449845415755459313592587588997314421100801509442391415081475114680260837673880830992265427743573524347028202694992947459652578393636941367309768655431160557424097682103983027349765663568046540170280213300436766097269010560731223376043628993260245673246424968870673741295317907383043538366538138641244285864120104599223819955785533610261815950782881586207904865640356881509457551634472440046999402983344139635114077863449035481168987071139437960861297065619737377605086739892099322905039737206525853899177188655775238152022794341249438667009191198411826294232873970569078828133404023009717704078261874061999707253335514079101313860189382060937835133533398550815235838582946034926257161900474611910271487029649877694659610276989022624852565878951345182044665298216505653335916425548342224260578063421873670305824652139849001168128602331804245226257944219330387696998014093240747572986661913597275688722246745983055086714857929680799227457797349353540780917405799512032156768411365133880716577239788526211103646658239049896783805447191968198818774825950749381572183986817182318991021925131817346776277473712823693030939988374281347785204661546309869521791810059184666429436109659302187241798559739086635989492433791208529349880335147257969199264147392056739011372964074376555496972295106306053334893733644729030493958002776728799746706986154349941671554108714173867752273688943779243749184840272365944113979426325817106498897948782730262019801291190960812098001954509172990695530637339311309289009573006684961196406606511357483215233634876245012306082033241936343908106763555733929377842269322110337094469881327167062726188426545013291635972661772530831895195524280739840589532979307664274662535314925966442245100112888041663056441659489603584831252082904847311664078005031827838788331427150531623608282788570299825494692595772021985280216726001241854802410855267138410675369454960860148391606279976518176412211651102915665785892465493753660856668546774170286447799663450542028251864011821088429841184001659764365314219527018216316965362457846666706172124253842781445592157690779098653797811999007474171385254338250250848212735450467343508440721860547975422790221142580043592746617578100810157560279954186120139768022616902774860951553572566973379155364672043166417196069533328952316088532723018527003127984686098632954976084220967059534157204005584649779248185211209658022539709581697956014128114993740832049935820646644585960810922150369839048725283147871915183448757220730781880799066417042126007941554381737049876764690935280682356804021814902827880447647316555726350306665926733300011971470941698587554180062357057244145473943940730233701429447160945842071684997454862209862646491322100392812101629579979163340388803739338167644477641613898717219616151164209621420877486966960550973377863647994593284977939365431917501734592518868789754002692044190349427462092648641824400520126006544391585856505921142252378495217888760280882172628772534527364312437521721549751795660079364546955817209197201557297486159411219645267431432437367485999559518884601524707511187498811946150248689942095960300707253932233100556999640976666208253856769531681285543716890717421235835035230458574119056814209828029273371105215980979742208537359635919163847312504143630357565109598947829725040762575044873857866091100406882298416984479757467865846653745948476074492633445059147743878777792007455173596364803048062426955415290858362122771336452676920661064442012723783884036324305760996299441598928204344317684239427865817661005801482558264549326478895675720059170059229028779574816916954250286967138175600674843288087773723507067930947742308146163439630205483092776338352721079945624595433021124535348095861057143585278516481051521472480784804870318552253347489292811344789118427046099303082201737896539986715695071157298986418049254082585065029858365797258897650931988668192564962685750455267684199397135434436026493015003999547187585394668431200751840299059260223919908745104232320755911798023235298166397447261352827080318050923104334475385643464882130753725126469493921980694852559757246922430271519893790991662261829033409511179228643444630221754361291470325470575682183806339800135212954818227739872548694285797960577159754651316267429717031484739421422061692377292802946461443033472597323248927150819968939224625683738810490633354518846851916455164351783736572932846104976789883374444119819817144128409424199189487162758803564940354267881084313347430344874964910221914005470674841893789904951070367351635060852531924383596683913287549097825612137520013755333254852307226821696802775379742113175110685677574138938623317080306093775541428239040315175786335443530709456965383883300987725489237642445036653180117632214007423579035106940705427517140953377483396300440922738358610252048807364629285010271912467854015903836839021144277744618791840994592849005146287255106879442892483256336604773226186087777160238451471856596359493619146870504703494516636332836036610951355982330084477984505598865091973385907696787996167242879477476114915839122515961148072353466492301414504759383389806807511058123001006438112514484257173687248168867584245935781935972871523551076891101234958127598647888674113023003398066835531160715934140693214507516794415433395297224966440468842000566707352942448524437480007469794817153914916375494627300040412274065086948824827066622741792444035065609260411441599337169582731370219150229092076849312711728005105822722852258673817828006365953441867935356211744409080061004501147721193234475500148460633591765558954492062093449101440561874672857627013199302069359405531328973427344308867499922174529923163803272057823255926984867488333995951126625059353249387878680032926633032524414125951192753379671758725797318440594762809896398852050906741780428316416997109619402097198309207286361490737523655747167353416262796880446667682459612741130972675249349193447770657647517865361401113373131590261485414762400688420180505975934060352875394177215745500255068177672252251897458728582038243507487930650499373004233379836515658786961696522257638120652571127834211888423271531739716738318592336303289185572884477074735574467867297000440631428823558688559866556110572854646370894069829676862873786456976559954543455372216874274269643650434263358305068419307495199852242631536083714512229867478280218170876301300930128765151861069912786347636954024312425009036784673217870423712711462640608082154948095706561123506148576908294447458613024029115929912782309914176852773325002734473006011606757810269366397892231547482768385723128542318694668832367555893082887431222681169001406822436889614163716041148500470743115973950563967641266622571451368966553573125287920034662722133183164776281803882598946413782473547978911489757152095316783536755095242177707608360682831902569657420415848361774927726346486004867749437212160557476704237854445663790607173218715453457132340904035966806457040424559941295846309595948297176926631285225648855648516634242828360834191935841331186123540329678985505920217141715023042694298945897859340770095692807006239514790445563909113476851988145420844407132569589869685552449440418516115902901688043974805982419852377111221935958481204064363680590458120083339482979934816748087768473409293135726616991855185693675688790199341488847217768558901682864057203106511496072691738234394975807034446576741781440244958480000633540817770112024841538809008266748909410342250404514916888955734305901024968466680895523332303898394257527234677594230765650698193840808899756946245924960124384870853910875100213941403216912366429154607139651984483825465187456077357908713392919268052364118440645742623761674830571581215232224264691423815551889893658383111044025792499601898671304563759854795746488125249894125703549800407689589178820132932524707385572766368605621721863096767767160498631356011903334621649257789411635074093338132173792162960076177154259300104332199020104031372760996358574000361108009248494826475854926175063042676116327030963916792589655332381287915536767612828046439882479259553725280814612084412958042522068808740522904027389501846674985871478802361369051383129521300129166660551910833455389644627969520920123790527899941773464768582490419786448954718412125327035046998018509753037995631448581918736574035839784027606757254469077118792998939425175947821518911601355878204860516051004267641463022569920277633957840931107707284863291345132620192353581621958117908393666093764246862920069171562219080044417944528094292544670415974295166263712910254390700962098270709377067076176818297512647960234774137428703800504713757668711727289613329293180613723605079752718217377530996273417389106997625681889485824162705116279048041059634323241392905412952978048974682363469477553334742794853064326988605087752350914703419522917698027878638467577765911607003579944467624775822697876561059527265644431983103671189451619966631622917512800010745432482320131240891394870263396010589791798447597769662544277975674252060293535688941689997732191235778875579220296357643659903280951678198889979446107873713677724862715335247790314175300527712121093151652451316135662066710923146943441056637885521185261552884950468999870315072284308943004760214072672790834261562818432345184617281866756776611864496746622736573085202031234342921557264680184354299316722466898255219918485699073669672592930723169040742347757355083764840521352992798449590042152752251334520912168093306483398837116958159544489466490239314210611898030463449237851679785778560723555431210095505498078733308678683402167152460987294245304447045407274647653365681303928500425210379874940201356352905509396588962084101518365085848081256879541517074653312426190363114743518436804922908660321205920812334650625228309530663696069281380055056800785843826302196295598771321612410906857330238131256466367184764134240647980416858851539057921554175108008831533662888669613318891085664503206446638657285280135625021655409049342231447209210512838623884623306447667365218877188290360133025940710295842765955359300082593035005886530624917789551928674318052402595210167724966982756605627996893209165536000636551066649543929933104563121230454823484178070996519776518562392982160885398262888349785619580988128729178731148617906433232218430319603895646682000169540717524545302410107337126022399940296171836678782852470898108331607103076885949321163100576883051527402404095812302148681098427060483198184924615723307641602081267107385009357058131303665146820715160322634507711142354581578087705474871555771530420875192675980093449548784602972918621962762154830265477308913040714854633428571076862970769980201999186652739720770991898842140353836549759251404784540232872715791762998231528245870246159712448934156906523231623579117942386063718931824077541828240742881412767874660691201822997817492543735374291810341145743699785418653427207369139772223810936559179043273543152000588856273978833419596043236941217763646538108110033496101800043523556281586455394239281142269061479918727654088742664167644406117064138789507015397258140085445468208657834016911731235414008448015559154125381725655901877802599049317969585913171500545987707879360199554673207841791902774966007106480850445869113794209296861028070317022818471680791431795057233529728930922571061374906006175705363842942100040255426113173860421948091579487077317903835536715474630711949059399824209434618796798654280111975097385373918824345162675770798123046431890245092545004511359251185051284207108139827180941071997211027500488652328520948454275276584264253407026831439000175335274757897365076143692435009181090386601014863766989183218966420017789127358396374019786131556271410262077395935479426185435105287647895293433079900060256434428701660251924507360057230542853545814710704219387288856896871984299261498010406916004249526188561208300471256785573605956314293952234775911222058583087219160058130307737035861139172276549956897494806605204577439047885528622394706190240917693069105761644823150240832127929819173359755213583859340740098945302605484801887214799571115159953858433701814763226190633021608172167340685330357243095489530943031095892914707224889200965841875009062772488539381167097717116645198558117707865035259522412300606959349195646483613516709161255680330769941508753274474513141807060184652020574291021618801808601843740539061216114716863903744460712084633575792308387587295912376940072342720221966267017108893331649717096487650262412577273930577464767738798921409089941691559863787187631815945189392070826804751617520125753295414161013659181496814004039326277891637500428164618509829682030611383099048898758568121634480115378107548917959890341227787251810802960964496353956421343236570226238996457353645484462317976887231241786329593845718170630305051745405384670555340118802862192394049591423786054686993581262952729684244607800290969285333379009752313540710085969675391689102895828959338620521308012958038168378281848608232453330613055816611053003823320520611635676751356537708869643692358384292810134010638123175673441415088273695361863099044013814602930429023661836316241998535349754982380554829934966653460854179128633061549804697406488809146112428121570983799441248394090395249520243768820325702870467388898293231983090203135319758114015955175632528671009988372672476106179934833411713957006262551989416775547490396539324850883000381730155209537279545004922415859646945107946600537921845131318367259676389434741106388225600044430576200641768358435227172688095520856741564982002761591338034933016373171036934821762555120188373162984902188353207310094220885577081565458322544891098484150002026168391875454345300640771448392621526181553976497417647829716665289096736159525510942867902117345976559623363417722435499022878339367380459894642345667146791145006411960578951113390265262643564920622831403582711114629853871636386607049566686093178457183564093576143456111339612700771332695392062069369567338899029001313192556670433370413022575284421677911875893230457428120410652881829450119747803760318292351301115725583543346194212986255423960765496697950779054282847452032010521810656511609655260253997235557220026972697394626039933766909514596651040963491783039919890761972103473941612054285892405410157922199087679060932963121397971314202794520672808158922776730496226562157678574058969925136521251022093490665672617303656391661293368011207845347299899028295515796511745861807771385688270770732159616241534083342853273358237633425901155319748317834565426554245502161688536060663965352487882247937920745735352784950198042117533213983142958225957687828550528874868946996914657529750278579552057498671914941168333387376678278222484218923248934572789951013594110676549008809213361336457399170188918836294635355703867909787301120972893388897460174844908397233251022153339976608495064023233230658799706725524278301524888160758663102827250367575530865693091718268135370119707551678317190764275094368799856063398096560570853297134257545239562373147800493952148068462390127509867651728201726553400641264045426401986755081555298592371213908090136657138566845680738931095261874037659657446510203566154275031463412041713822973020574901397406479107380827151024740848447695165210715247847453075283074713430701729268262650581547839892308443010679429898463081364290956961298798547919490515672702724960379779971556670657620548748092137579031042249982771804637807127541335599265933384650014046581664064318868422057614369468762158866662011619620876147428494678240994867800623669192845773967107051426937377799399743894550124246523281588781087770987879913308888980227781776438064015159046865991379125684418094165238846290480540008366420255431377094374578935038873179739904053586409841989878031531013865538898508540984278562775106256178396050538708670696785436683256281680345583747137587646412744916870115299079308019464929233415556523256758593029133134025125598075625930200625012338197991229963314157131054763770048119763364363937597683587434496843150121824057207923254102568743924620885837362506181115015715479139319133593069214455884783873130568407189989541912571229029376942340703331688179974573525087930112701973665279561799092163229059519800858701375245999986522612119714853740334367419809481787605399427134323670003989479188688443195409416559458673843555577240968685004669518970723675470850811432344581808015065508835030988065702967439993334124652776748384274538186099080352200395501653842735050810254627982634838545532387376758166626639520502642663652798994733717587209106965664657584840339040252591801994481891741206819500022800767809102169889578808441489588542893802053018164382429552729939138350332379325732403130869973978563971031442600282448989245699600901291196327417654663379689973733728759947192391799286754470058442295590855524407712720584289422360709823109278871766965189281436561090606633014265319219822446755456126383049596006823088805944944007599570969488262839589583539735702855669184099734766538732478708233780279777083970480815560026321341634759559189427795628272794247582423662217968898111115684453590056968874005063072765696915024421172162610722477615009303668486093540079119471721166998819492081890788478855932123670972488265874454710231124789670666988955131442943324187120659799404019778491540732393802739085802764694638400470928516818021298914185925122734046819129985537356407674519087632628102911821048410467090630904064925616418412789771758510174666973116471817502582862067708451999110800500632346885963856057876550821453418151104830460457215296186154264343678791021940790743250828852652783277857571789165696528239093718372493782252899104407603529041369697404175312906064315931266649026583944781505835956462124448746952519721332378467300914625840232491344921062360637538863880374562714784191236453667417151008350623191355731550746494243415553003424682776089564050674851824751635346879253879493921877276112583230492218487117882228678731066065050867994685110338007175787760807829478576014997309421705151855582222720687106086459554447417789188445623377407908342715463948658073670187207958630384944701974956510630043061578800161909515003886854596854233625158795276159247063027677411761813308107116010883482485350511902461272264647178356737043148847320122636531121509679106670107565316617903657284291589048069426822778070096583906876114570968048706284774722792201760222559901172120632393621674365550149822446252233839420032682929286377773419188857476283976927786976293472325891034502642355012550038788757678440232858411044352812927950135084488714058227072249863864869456600886651851165312624915440062754358602410891790887893619352896299882621574946385115959321794258661234744006093253768063469467375457306237151506347259576310456005844459359672844807860440960219260006164314147397060716086807560417754785154103286623077413322748596121944100667173244142506964771083514305485300078799052538028496426509557160941072484608609790461849325610288915765797141231640190969581513251209253204325765972503282385221494371437791688338104793234634086453920962353399473663960738918471606629544732019823936937962590739810694440064167559113156797591699198967433213209254040673410089250582496719205911318065333268531799858176965469883105628139451710484823033049523427006499674564588955978284348131531835583555479861587508825321410560222945287520843131873785460193171222640734514350973874412941404372465040181001272702236940374745499114420612609688917084928116758748671806183512232082167489114889147203392515029484593529831666765356920083569709091524498775550592042639908923446878808959359863362382936251255985359566079237996393817292790896296083511329737295590007915882013318328993992420217597872145675213806728807186113157415962379045294614498858493189018675238965725705583498473826882489012035016375005122669480251176735821799470796043695932417335520137541121005460011789119949096398357294882407047947614873926701529981136428075402333574522050709549381785266667307649493308222150243339775466636888732055047125194602836769742957049242344903727169054031949990945367822969032967218032203353254773849740752540005000056741443102887389464154604219843965887443167709873824474308006244321216455192232071889983077785884991168657162030577294452015117061259137150936465119577263931120661045243413995807884770653547804297616779332028076105176715881904505109159887509172542971822087487643093145893854331663433980168037738652675344075304989151226104324888764826838502616476394425466871559782262791578430786284795119144762936638418510244274719486214960724575103500261938165239399735495192745157437257153137073575347187863705006024486969315087151173705992140895328791327173933056585153931106008600357323806634023257159585209233614210752727771640255334119012755122330127431768422406445960334226092525194106028616540924307634310077500335655105203722175707052169738910368102259576251534497553958015424970903189133537462291217405391411895140353948126343276420697695931676198432800625644114252619457870130065141356008460156917309428189033500400032736477009537804202327916930099897440677545463488809413868103296543644065570367738815301918130017141570330387537142670993260355587657345935924109285815566882922642977129632082869507433447111406929650602192028873349487155715967142864837223447027875593858192971894971567068592393952972864790345528576847588818246523850177550995585368937371766269481360814760958962667272448884388551719590495467356830914953498278479166722186422514304888868763361455061064304012056167252673298746200386047150155257474322996206204492175976906521915029581183325074741689738473083723335469569717750818341183652955119989911186270204547121832587185722621095083085467235653945270216164062964021567607281737753133909700266304511542677974570894716492830722756214939449015567062482611493882835969053152304595487875705727900691335300029499506465544114840113874549140846966181003973238396070585428195173630751681288978228330100051890202712801204866700101572901199485233341822324442355701307711967167405670613530956294499884146535998525063671361678486039626120413360770564521562039094495303162497042643539499780105832194488759233282121627606885409817832552579919837782033797992133536147092180126224652807116336155880445609423997290557897411694193731161728809829469409703899223945728480914210586976982895877581469427076139829638664148897822878878977056835213666164567860224899451165388417733816937256912171676495684462686002493249633290580224823163687085716808119099009358425273890136928275307913601354245809568440243957584374756464007310238831155440986712638530749088969404221513706917686435406332294121621162196975217896766973386065833127383045161221288937349597942440937929162101212688131159522779188056442411270844327308277496506566670109289439706253793155944984613775024726906948626947049225455908183483832905720965437979491872796271912713486691799589607446264362986905630998219523490869209806225515077948189973619397359456484757329577230345667007257795874847933375199398896078648986642458156060409564428147961254359840930658429553320981321953286018464409895512195025695820648887111921411861976033495999013800271844049284315790098546472602109581128573494024993749850190114119147765227087009007550155813472500217908387525840699356670823014210626571924174673691823324747086855059892211143322534099010616453035245773629422767397682081252868101305323163939574001695143024906960890926883540639695167934572733450637177618914511300054733610922604782512530661179012464943324618988198299965234062221136360283971706730673259876931759260798837979215152046841609037449845833888218727018605934338694863841484608823510677740350474374628475034876243257189210942598487642433072011289391064844387102318392428671868338831766097503535087280022250873772530190533010000887593176789138747823717871025650658245866955484932921613441702970079297070486105604902196083057920873602655041484785795028392068800721175854968549736120837182359581494290066736006469476770497065992268217857764027152272713923101429818928007493497065728589749825448142714868329299729547675862211424680897185725216319323176550098048032206629688965520608724560451900473439256326356388829437961806833039546964978222328699623841657255688657025512227190378683857727572552573689541191727306257161197851856872674865583649819375369063829765404893413437956048376063060490392149065654745071346912019890470080894108175570168586680198890693524643285558598637393798490237787397853628831937505671944853481319493588675201981356154729321328689500958056857587644918370618877073532462242232678817631244967623781235027401799380510557523269502554527099342911780073983400951186252656129981643602260504981801639884733490383222152299191555043012682632235801251878008782625476061261357043378872802572612898582943352556843533443583068467717413496859917564072475935070853905850335262560286842503768387745900035210059820188110313072848600611851935758669208456768355210744296116298329851323005450656630402626429819365955651443888538528167081112121161243835305553110053120917897440288836384867155988437596154814965307700327717953167545518357881108171477207845057936503600697648976688982383647325660323321585586131954296488927209621815607134349692464364499113183321095554169517620313927439576090532243395357519800258734067451725430189049279128037168748271623496143686474464302825526116934548509412607933591675590330581390287717062100298467661772567827928778623560115369194853337455561666166815918134912745827128268262851697441417923787886331243667461342718962956742162267604338449032556033058179433356549684682635356978202787316141897668294118366166489800132663199038909259457689269272635777201312339284546313823377122146758224115598756914370970212263257077345522544336567690039712128253186406720577270659309474218570855749426292615840308982057616674993676794410921498002206942007096669975510514872723032554432933492521543988401430639246956821684500824647313132528531869328131139166809421862458792232700023538218246414356335719352175161801289575263578671960488410007958285899965016283097792627086100368627166837891855086009753127322533998989248750141284148804071872471255991034497813717318002413294970859467771322559063287107790068663098350605251160625895306795300011575130414385905016138890098086681250351300459844602148126812395464424918574169927645703857675637830123157635445907010287583815044760197053871981344540370980497636311257870589844422685030692554942520128364342499500641086516383563286831027755759999626382449051630185647796653626991270739033048957784802543985860997846553187792094726656342695220159524586342101435296701689038089557595071958715021390385756615738844740914242177302719566684408525353876037016305184059986733989542221096515978073906188924176125208765343846242660929450046178992480292720322522946737221116965864829348447092367770744047078521073994183760829996275346418279587584377077030268530603829318009600571296961501134950601774421011860636023734216852159724544841704479256555099599218477979779216137523074473525238280092387250085938131041165058028697116416549154869909837328658133200482444940916107031371298152276758488942763837434489433941132254191302815546768272617309617708348024008532538210351533852742987784544521796923665523249688671242264528314867499498945264679516182374601363907901164336924441956176858400170643079820249530365130086981781321326485438540060670266479160140171610068974592381689440204729953206171870094776985194166321023883577067355521117337637245636081607404680919166326515533101495614177300048336206977746113141055770195559545151288691624115644108131727505040721698944560087371110541161404123235522929897061981193932251112899702349279951693959508201909265980966417495414991113834508208212676969749577745975642712956916078775107908754475354469123607184724706710228215619215298749795179692061866142435378033861889529663000910272888713190170989016249445811088871624311939901234541112217046651634368725873678550572775528054315694405438069871571076639208964276453213700346992277185771371329451175848014439462459804472334532401763032009681807310111000294276498398274595461111841247888376561085959526631872227889108180227570500394438145386338870694742583479839777835887964304964505305795999796116630358544646518440706399259542016010316362537841555113613939987536249116646121223111716722217776824167520730026955704245425276204510799088060426481950328409734515675580626851852270868035066057328299502455764456125779669937433299426041340004828153039830172469056663508680887325653246238941653307980101269527632923138260685664885078514376202186063397218373081009327332753369822362417267864267320125818997035478284017044448434837854965487728597456570573051606589857382878368591720381813887191511387555717529507423851680022755154371278978789934007723833469736839058095124212015589703330587148954204777213784515282767292528789767341931812694509829425059494841403111930455952842494930582755978598836668797028524431402931175868596953277035060685348457166308771457253049816521836829613041318888847982131234761437510518021132864168274820972585475952193027279992154246149834678625681842910653037559378880077341189278930386889996753421516513422372938490414032552424985849480473830360136471097314256793694875737130519019799306805114613927172907943068697264237790179396396393131776740998934304266502851751630644566473396118717149592754608627736083794882604187301645834232360216662679306456749116097684783444255311848722755823852117263838527778986776716598876023188348237361736921160706563158775360333740038148984485293229993696788289558758077100768921569765553548788612852917011624581499751251878027910205320910041263824975620482811520469139646420981201759119990532446965310953212517318530325639688924442174829420268677447511329475009516634222787525245938903802913299094110394776330958476568950896700562553886150296986040737508613335788375634486821643992491303328223092586540416750458105302925691510516616213705257808014235501163668749118255915642025842242230515457051069350180156256058824693707346176593647492597287837356840868630357331080176720505925975754253944337510922369707422730474769948275497930019882455527645405062480802083992113274801881550799039095499592287699487825749523794715917610406412344977515191457686072151853741738136861325309087081619420653619315377839055471069326091424783235039467282758955952580426246339962641461162918548132162593350055678114913712696797054307681106602298240475639787073170123628450228106248466327570238249625338489907254152505535374173013455232104745863324775033259883785401315309665154309140923478085666176604715147338640174048785448582840539705857542241200628757832298201404528441702569889122446165132409076021073120064588154951895468963655603656103455471508058933095885776264232430010271104044632239861908374449267240415486621314663345378888316541925578002085581403396633637676743131804943605730874580335432769656147331322085574178741362133872408438266756555866442844439393348412904143817573803139126914592659546891618027973813605018065808093821208058634437334931115074711990776676036659659001887448588220506986821475098245184557667737127568725646141718655370652697238287325842039472217028155280409846714883298617589145624674652366803317192540080830509757771882501743038478529468228691753066182892669491941814326171550970974072540377988132422554597338532152363089159614441406134419341736582245154286577467670710947970487491662221961498606642717719167546290157029623127201929881196498526782206861296504100391729223047628985502825222193571139255853007471456973154107572423249459726757848054079369943784263825012157188316392255479874136210466364269295765193082873278800328654076818429254063751704657881729497324345628600433209509829546751392778246858402254869187387108899658420631355854711728767394047836326917900673176451887641979919403194163869227157720735738381441255956505093534014096490845851166763165535735873068241252782647192601455494701896377140246795082476003964974410641536312791993977761509887020699322785206847006588719263664939257682562134001162687414909568866793951473516962028544882969397159904452175109583085851201942866234543402394119007098392652632194492410339446190240214920186975223262985131075362794560943901794312967148984059363409019827286069635931019706103745624370025422755537806586439552029942705915683363208274434586201281334357650502646081242809422167664953211619759767073992908309445369553280268432494420074231408512475625376075131788408509768883129585962036665896632177257749897274980731823526648304970479911511339292068395434770644765277943250555833552207238989672957356556658614278394985414012381459854629730359588598981661398403690218991038979311261674322532388589407529853426328436038296529314258150793631123395819620457917241468756302647315941650130039223370188877459925911537508307451139081813829266645043830546081947003124822381284954877376956635860976638017232611355504338105568181336453408899402340640067357515644868169545992280546208517581977769342572424484185689048969187690367492059543815424209918488085484782947481077246520746668707969739587612854797035623879725372113494394934432884387052597994337140148761950026783934701263119774554842326598328803362239403324130431354526057052998859516858046649208761702142152444779979830857704690674989043471306736032774123167124619217407630558866361594225526598544650471896958031658040081768752867307677241572480295408421625244202739655673897750714262359188631377419547344687858142130949184195145002972338129511851136479216043416936307892731786980909386196559509158122164230746640149883079420998776633629936342574881522255561155034783487183800630521147408426826923482027027870949325286449033475176641819556237879442486293807080243557446710056439051831900956759084675204265438522668511946439972713886926748492676774321363871378169220824925432131259195737316676170278316426678142213963448651549879383346827155342154587447502566429050383004868676422514781058834143598930655600721790906435535460878931720640272384120502006785702016256649687075171167002797071294975501569603365688096317600020351395866777983642444200904420932828610342285378789627113170461753303548888338165755814189140007735986095438047616059542161402734344369632384267340742111438237844221398720949718462104689163130414680652091021641518608373493968918740401809503134024379635246458983688721364506311844517029783383016480106875465927016411130616219481466691795234272019133140507560741237037344063574311535575310124579581076075649842408772984740225823114247681943194314832525098482316619807284534387935971508488251288872039615664106145891793390429046251523892429415637389278779330999406531318449804394902780530646315310301168919014682485295486526274636784634546076663222863314009631717496988372343210362473407148338100858024361598275201690347266162225577227984274284569035088917681964676719783066883931449656968492248720523417683818387402732587757270063032684989448410203563922853860022031295958760810560412488460415163472616808408309160229676726434399536613410044310529806063395127245324710664234225675848901952757104390539566841444914335956868205689512379057485427288396049192963476685145374735818196538292835255692280687776679579818291275051429570245245348311791272138791998789235995073529075874221550769069912875128419513496652618296734368484074699862273473903276842061725410977321369442366411751511223488663863901832997571372998569757566296757646150534509072516900187822066697637036972149672020649036883390947699068709199749240089300158927571183668476351925468339469990054609081069647151394714348213567921753462465139418251671480874368730260099019374445099882339271876981505816650453260482623183578934422581635714746162796139960118548428796550182318899960224813513513699212547192248459450076165127331057034415972612732093605796928696444860128602772988895597127005158970889539730818503518377704879146834119066529109836837957094790043800913455883688876388629680503021101841910242321707196476727559441539488576458263107961391322107819547987514774773169391411548142011940611564223435305974616913565822573679566624013800611717133528696017267701774237473625526499909670832585058119213934070182427320570225676291256668918119864826155297850300311948961548913739135142881349541470147704924593857204160438799222684987030902432526008280598408308756769349598223173515016565613735819142175117804864237018801759828765223288267332664995751807488689755507484612086079874225845228583814880596903940280568641235497018306828026454011064054784696005603915955260404127419111757774733417556813399309164984405883204630054648502274077245578672709767732213192291104187268812855312565227784817194999180326826313057583118966928714151595453735083190167782079075581642444782469554261669880759020476415652829085376279569493153204717760882586223544895731297309545630965027185242615495799861870454615663588651369725199942214938020452440318028177172459538413975726352736623710467336477196669502193981709100303312809632412365559677578494248845028177823527468147220548487511275327832488799262787552346880100499969684725929577124769801116840604304597263492485590726131879671840290556942309292790635839950986421666596128001539153599689413333635811480278586907496015623781128134660819619243065019316327193426867520700659457417497754355883063485161608681319093149888462825322331759412412245070107764970174266296769756836931266010659308625855681315866494638485953539784517972683991950231130545923298403905323093299069483509754600736709724512603667897937980124427255597828538073631916967219992573250698492138357031020880322057136029932853297827959886707004599420977997210246002349300757417257397011247904154311096458825317345151592146392052561042335683442984777081035765157128330077859820500743811157593703524672245280489212544707986536480869376179386498280340112923731219865132945752300048562198899878432468949266094011047825659676766527276419094922042960607260342673192597682616237530979086323019253212122589316161841421308600981668721742756786684837228041609668607847583903291171862631325680536902530552977194719204814162066641341457157156291476886772267494908750518738985450157412463343487009674945605943696762803646535569273062261323634229970631548576488681952062215515648970461130399239059468160472969915054935939737522573857068258784145703057885957731078817593087878276122614336430776847939993885576294215576046357423275150066593366327175217278765318920824490722040483090170135791679148966767474738120456953401960150760308276366108207144886080132803000287405226462967301471634776786811312462872351356599472515597559558220637731602505561023655295911404631166297601297789460096927815502050486688892527645724896560505361847314011294562803260649219567177609248535540692502958407159267039041893871038213398963770290128448469401176832836961232335666068444032576263211733631269572629418518427700769312743230638887778772153556826415744376886485256603172417640671364940463142125872456898249509701210864442564617829559739932193497672143738298194015256092259215613025783387817482434293434547233220534027872110631067542615982882156878441660147414825860134899094354755607152384059020862859545075020896605563495036295778643028624743119779308883861942367541613099523658857690899638915374190254162306991678288298509233430031922593877815950020888160389417251138575010271203720257955399233579708346453776867936616528997438815468204422393832669860692917863595648042701840302025717073068498266516429241520482354537206169446630487504167631931933098230939040009034428171157141324923772184008626404886956524390451657708721679960121718633153528965583285174400252239009649832299781856332955717974370748363383682203112797457428092037607640475380912960960598947504980735515071930901577929242975809164818276850222687944491234080892099128832188184240847965294569575808442427320838077404112493539474030335029199369038893321185496934224911277539048459509648722615787747639224478213303425478320758043458037367565161279198865796581829035282160926306560266691244960159103431134248179415709838499443954345894393226809960694608216650312702429117417513305972240086027787881164627789947230704209068147541077175144723895688838273395881181232401197187468440285211029983666075012429496421971873916232414092781130198224068902451603187592427611151866527609088244017569101928196910993873602514432729584995995621818041762223744154198398416740338010530740265455238273697998654166740291407377900507484625954421708286177573523489527391031138796914272799301666218504246862510769532812778643083450810676915409998847251841429245384472782204592807410545360489925709185631813556513142653734458214917992111142465853939244981089454021508389843780163659427920239314461454086502549126325977053342631494863487874746277215970079663748582751648842072407505118341668521538970258111660936425790100607788564733235510982407453380434290419071713051882145505515199561885371269714480757965278666423852193328315652817640695040634245912822654826322652277856056552633473221362429961445988527853553942202372632880077970734833524520468236901343581836123889986651188279129189499755743605802467869654953632630045792333068003192115372487404370923891089580643955692674092732589394134634529493214883951337570715251041133686216072929698296909004599799073770150503856589490232240260483633607092043209570566523442938952423812931359030238337303647648265742113779694430121384474681515144841083239854641425525826063642231428852307928684709529626479096611870337666150711244097947149205427047840893123222172036568778730318967678547778584280050787522783112444961780473118531429676349162385266436789479722087963329928223012023233706062149294649980081660736196058053382876328136351095255940442506463668350499291701198454662321960864736338579677783532961051447535664774691216012717052749194217771728099908728995952768060316455413399159686699845844513966596259788133598932363144119251338550418103984391286831793374031462516481957355435704564195313616097350085848471358745107933359860887557863151103823651551918340736935536002722184542682139226591918968638393722151721026411120891018844535701500288840649459128372432288609242149643675860997672378276283830795349992482368109461828968032381664088970606820074348432093300818156282733357928016350758453810847626139742228744183012667960096748306696856289263594866715060862353804831818383180700950442623769836818031049916232168574713540603394242731585258912083757833209182076623128689495279364134287419499989592077151482641255137274907140217886495090774669371837127552640782049165926191275500537468612064202729482960978803894563674998994956589660537281137449742754593912430064463692476348283930231557963647776068995505123671709140450417732633876238411960384097916061973576652848249785505767673162007897176755950255328786582822802904638372673208663970854240760693710607067015578456549260388155453968492587555155875502156589099126806907302500141900316436997226875502523599606934298133454649102953939285018976406233579411193110082036352027334454702287380509550152545926530321346039635804459370325353892418357462205831262703691646384725523828731535715895363459658299017407077015050713701425482470523451135850850749028809944670609978042572139140821480788155626535611215108088424325208419550264516010271990780609455389031958525396613615293797515470873099335858150473108886892943561467492647324603866480120995026630098130580938495547314814769377405008090252170509594654920421934923104019480537245583850000114147136816052453049141565148174874898750031132242580649704061965900141551400150752052687676489813419892022009283917284448725304010411505717011365918180396459394925477306345691329890775343614633680397570749408340872978419534355162873298078961665922809190229534592982445178191987145426891149295823553995910549741505476869509799735860107147548757987058210984118975639666297509214885092333876646710832459130037965423187050245694884613187867739635138632765246666030212333908077462316582659972250241003712074635097197437207085382836340693902703066399939386631371275159793497474489139536990308487359121752748779644103234157034292407330145416201573722821824071639118897588354778035377789416814029052882881517178394786377697896393943528669309472063772845235390446346862604351815154218977879678270168742980804205419968963895526003640359437722377966250258756414748534642182527171468904170418805446844584207019883935269329212205828793269558051072443550295995292740784365912399226797468606165517587737389482056416038559030343685055220563155147155963839776676219463462831312232052134864248456945108607441823840888004809743321113047887662170404642654650150152166796881205301406208722015480549149099613612568134623668717049570482264737239309359393332170125732371521729253446437141450969324561108861535081364536290297636904792698896850175759434211912629390164438443032201856367461376166482477697166520489953925539594437166028043039589181408994635691399023205824166338217126955241833700379882327241175028739667732654518491489743407915159125245134020347131330596876368421282824061668391398564763459085083810060371928934257398537253776227638660544613132424206503571668758661183665376476264652359839978597529082690421129176673518685954869918025158522656867473200743439047455294126435175354094857316939458687094402008877104508297313570322805323431854532814376228374983760210102205320244375180943693899674332518514343280230986011558576111960111923134275345846924819761917891875104841551934938435138529900357867787230957677584795527984159231827885112501771297192090079762772410461004501427118834802104578983935451085054696890457026352810492070809897166793806017888470298340382575227522892449615832639797619766155810899515856580132925430673947203888023920224873836734702601440154694057476752521174588054749947941881446126080006766798989857754151258849029079201877652624729542569937508859325636035660069067350282255363450154187437210155124151032831096850186982622422266078578090500634217982253249155220055124067636080180751107355908115586189691531754909266719113855129671565304294437449107205728384680407321742289385817999918810846028337822436546811122618185182238189524542154682383603995442211967284890597210859414777266117920559150011334391943962278662929372424614546269578095722391445932329875461052789158309442046329542910860935967124416205835801877877014423324658839360898839650720608139326790764675050248114476890027676151170755197484483941795689278471445607076413781157844508807398325920708861237985266487250049967397936478516177755734047178917622053218152577780750077126123675226513395353408723186965549855462254098180058453886715145074326062991009897215323988847890200544270566532250388957525885201342960564167241813075630750020394114709484421777189090016638118207748781595173762819789418431017044333330154073334369616330022958914579793846688068433328092511193062182871626233123322435929474772530082504585779240748727520934975104883186909131924513240046602880930204886100630136472473283637306787384691380985931531883343131199776230375680207788096347320318812484716428826584645666542870447211842281532368883470297836264031241212303057229535867793273590959520838703604790904447165280284043805842674756989547430684963005655030936896779114962110836728676258476755779174570318822756586702313169141437568700609579918435587707300527635041816665553775209972745138077441195943472573246630402305534113947169662182275653026582860502843650400127111143050400671968525767804586775625643609261198967253273540560641354254552024034978921727872133708742660557095527683418720854688255353356044929918252235999306283359757374662896512310019528759077906161691020837755445318839147387857113106213075394033733762512676600459432848265305626160217813550374917762831156701682965126518690073897099040761525365119892269024499240837710822516942470076635566815154063323538162241942735218822907788005631029753709385899480200613065860168266422624390522669061146499181657013866547877104325804517845319237504803697099142110009767350517257506885522531240780523595075384095430627503573844077171539222851419578578438362759612749632931322533765697385923541859210498678583065858995679917660812875246664538992592943833648825471685647575051700946829222648575575151549848894662733088789016572492517115062446481044583454296027967448692664078405938973747982318509295777722761830867037599756527077219103007776321896162504614002283644551756502672979589083196010405298609944997596760252725703648288260639038394714282842304219138241656042851308735329114558833887848881478242823066403774191055841974900320368479581571353397760299260438970322869292685677310765347108133846361396317971712469893887705982787945902603854465169041486880456538142041929116490435489642976638959192142631719978741649375281316250600479609323378634970529612146733267924644232234454919293417931470625582771093932055211528232136964450691677944881431388693801741177664311564940539993078781311511227317732839634204567201356236909122164893862159336701840272976856991741557159503724038343366044183373374004367170168008734180466303179743796077633115958119804711027488208808553592695788412321578351199256519057746734615404291322635093865248483615979250031947460640830571820512835209123360055822503123644140745630003096785309622387416115411148119533771693313629495951218870571460812256067269324457282345282969568041027581008567793039998120717963306589300074070912576648952860462562016968683738200969871658225752361453347488022135122162427796260333219223013608645097279793488157371724626384283949971950529069318281398436518512020559158682661511036555568267469954430481148847334464247690182491406654696171198712305427978646479554762333328935013676719927670980904238365045559316289132446713825191038643042460999379077473239992432634080571839511873608128013224782961517183695866912538375296219489147559156863252409865046549157355316522748252694536537350947059900739943744466643587870830398153526559133075104345494429488008107917110771929362620938922409410438192073534905987565403788795214187290355710894018015270011093145858639191298162956182883277796987928008602685913242784282360685431473511328259864572395680894255192672524464675835698316001856697432405764400125660256696864462306849698258630391785466455485322551851092991785209748856206199048245448105880089238053151212625092232020002512804309099615449338620397392429398901335181264168370540491806839637067116869259222315162140101754234377335952563174344617666311919357840666104186091525478938832404493912309207095395852540436908188769318902466614887116350820189648116134384874683928744744096469611856968486760897310304753625480024547744036592716656149243268400760704211867186267545005040034257645503457124108652135232722554291716097086240801258132969632667139096479481000099427656003112885984502613072613899405096797393500158668659043745759310538592670154311242934093651734103473142956904619297283499491455668901786631404489760722690148159339665779125020898821146196856607677895136548018450515289258274647828711094067693929392503678669658631743793952164568543942843146517465591311078438689782713462459773206905509511458527373004122911787175596688725542485315814295099567885417655606908967535215252473298429033031093350989418576896363199668896962827401316059656608472359292775588363127514723776562674267590093415077805668630948457817832497110758449633026753076789196642300681380602979595873008277167505668266705947737832919866102388174316639788351312217744836133477848620940645327295289928082927534326587593864628540573313947924696573840793550292281999679929836471572782872677049769553789453018153567182536694499373167991972636294743869467935736029364279276455192711344168166762973548416825457870373351614387434308921347451455710978582167700990587905310430059258544274384838117811580474027714059970272763780588527948760668913552112345698242633973634427560905442794548105048134411372789383183627390099359534653549235837314864249691589741580305109471187508347057256151623054738974920883343195971106995630557899462485220465343000460743653779987528740710024761728722777365869172115017161399811187554943570954761749491435165174738924950268463264868307604352881788549937491594334688529297579506467788675502906129884203919650774789402871098605304118338638382734917659493186499250874106557736692592755878203983710541223559867293423180636802480186766673081543956983738554932591737167214695820023556573035241331316797075930866253533056192274004596487032980627058578058716428245806657651944781406431212968825761045038140970153487140188270801559540697523972739943707754816519266077921142978078399834759563894255557525948939406230265297993028973292189266901384569745879989330424893315195346460887416865219309258107216373473550809927005374764567207880532522976441470770766723622589800449702481697625412157142636134601832361433903257704038655048704817203705126951555214543238575926270806096160430182626882670000721225848309941900198353233854934455393161737788731451727945868015530568879879975790815910559616002587749264854430269539209952078175158674395999013017971655932724231632079356844371941075595839370610826310728284672418161123882131491597729246864907439639015833250678045123316671898200366412311035313925721592626937434574673750230813638126949660042483215330585758090613498228156873729419820727191093071191093874735862452251684760457213639066724830724750358721139841895135277091628819652771655476058570135946197177794162699856185267340031706531567812499920099450342934696932533776549576522111655609759053983256367736086647721363676180121564398009847073351588953645122647437982161417038433291233936039170406161207715170917753586085866452741662763957897068629782133471813282241348560272563615914338921143355096276431503368767579528225804718933914395785159612923621772931577219149484930859547067166226562882066090387706175393668705504311291397462939008885992041656005104933773787240344241569304011915462630100722458801477904135899492642181381146740950310969619018871653790787391795165653244911656234418548990577215679937952255735452745460015031242485678010041561804879084674578156272379282776289736099172498442337367970096880133571383692267784382284811949183140710241570514539905518761767265637816517660209000421578682788174507762560975111038819080339876211497973708542388776888348182352579042205530963688234406996521769495190173583140453507952117153054165371038790958853690253615292021952358940013732828121968380235255399070698867411584639506501081314306375874570596927496064614121352513081901454033035885298041819069360158512422305694828151895509834775676238341909871337001285271950484831533210665340925830608151869212354814027355120663535454419597329816903917066709642455600959125091593440840510758325926264349444505174226564136370330341065310184024076825536569234725089156080559932945485663263727314432354035565741899662913439806521670576855152186713593581753270405302377163322195799634257843327186164162676676556104520976196924311055211654507036324456129775583318401979163152998563141036715325279216505528224628663469102782022305887672008454802738626676214618497099637873491901045608123983317919669603951733266917483700386844165791231533025104395917279682959140203908786148126575199330009263714926096108353178460720716270723318883277387575602878502158052829532153002683364746512615071133154195359957938464120625289894733042201080516172167836069095955542251581761889427835984951205156616942951469016103795702866700844292022391339821069014756967986717489125046076838350652049149334033508992002807922879712676589837730596626966482791122064081293706604471196048138240731927944132700173791762561199237428344129950633096380288221283146371919694114876850399316287006980551367400519875348059780076116108404705130331618538204107347826582635475001029155485635358499639783504248351055974670235514356713579493136322824849220468264979681717594958692494323716838182411869234768286463175881666275820703351109996532825145845763675515331480873575536957852569859620341232782702107404933624525000178265203410254005008363167803271472734953015177852137910258835193360805160668803177587569819723926212329555402769691986364693142046638130321904513394060543937396007882069609326102245864771279892114840103857647834297180141619388637967407765238666558354403326308408291409650979789040239972314550932525555515088785617947316623229204153836057141157903685972044388679440267096995880516329098639714717493003663414784996203397814032695831732469601455065963470250600114323518921592687331025489998277919346084209194264316600338913251386597746280618506963060752839882362900792191433174285047350393737675103121294754316504511953834948966081436450246599808294053649748895178456741380767074967870856522003311660513525296977217075308018404314281705133053079799990141192880437492328002641392024395659816350842874314898597560250009026910144795724382702994732016212581688785448340550628988169251223592425370352325218300352904218533451500206982491586562142349833213502596344196676507523754483982294737094110581257634632557804545436455109514040439251825012711630715961566486227002269891321902891236830977988851334032427300486368367357867066317134888582355660725688601538025465896332812951785312089803427372921481675953013862030516262717127622554946195448681621230081455578971164406087022106750626939455446985901632057443946105289242416358935464194653429155690571895074262114109937696691775440083376749322814485796724680680650528076259114378000963846678138258383940453817056643591250974763493027136732562513887395695461696317062714031249176465115270407773210770200475628757216220002933280492205720768189388943215837557063108612980901579996647216206527925687701748665786626426804742319603732092777031514550453222019508420768373189780319450765010822886978239558316828032339589615877946536231766197042773623677031326044617432189419829612905526616683248746476659595161818585801160511372630284524488002102145798752669731447631735223144861240556647074292406069793128928801906063407148283813557370361505012766956297202070569646224713032476099582792966589545344178552869994069172368300033553218334457256616117956701066197571443499529008462967941326516430636167510757585034665181887926207976066817413308458431800068487898947953185988834241752457588819377326662005579056343013541861974269052618459831800459469344423222363467855513533177045478639360718571469014018275902848952472412700825798767423388192278626248041857104614559295795476573963792389398435969716905933304531720519199702976468684008665111995212619375971057065641949224986628634111205582204286209078548454177848852914744461990509832593363410701975654766063487237416809182230355191471935810965687096437431169282008227362636558004279632566830871633750235584376212966979494167771135044013504293075656769944679250686830950508663983533352138152084045913999026489392225823498374963358844457372116598559994627139903838067442939063633160249078326739085899047595303054785537903430281656345931375814440718473071858996798695925232326003414833423094070362807156952600645706911160857795861241283811095989269393701653316749563546439587219523695901278772466360614590217033397536797941680558045405228289647798784067678986387511310293797538220964439246865677800483269245365853008608790718028571218854976865265742523961257559047066696265576642084036041066266137665073173094536821484667523179803299566642634940564429442516781605424815887560742408473606267183656995689942861879682431329831128720772326031344456482424042524265542995892199579829701984883767116778498521525575212936772279737174417937049208771504634184165625016131986308834912418293445883827860722992156028929079108012564100058732239475070187036940360479832218988701322980698894409064053532993495109481234797218846750654472518237941762945545994707012722641408528081359601290186213669200403598396986381728575291350444330389783060681920649454516270228518734820544462760934543137122677683526948094966177549809422941570932747076460447949914695489201888686829134920230553788831002409415256843161183310684735421334209989624890908568178180930419057841609668974866464463763879019588865212608852185241981470988509403546589640976147560372274345837837881420622306029648027534867921341372019804220786596739921762374275271479899083322287571534586358598908112102344146605172965103039430457161616060775205162604374180419971870015411697251590594618927791908915284529529509992101192521397415838701989970410665985430055692916919058140387639198538630387755921542818887700534842417338576231277131835750545261640691273648007881039332148987386265400527793495009853769016011578109058933951094454848312974860782902931016548508805158065944096981770803130135942136749232253851731248640242037791335040522600844053832184832653110020468737777340882366460087758332927203341898398804652735310471857185486585550066089601419829398398636003851386437610171324157672622274125336778040113787946677690201633227745220314524441699248474468107948106468177284065545445601589559601828699809854057344450882755779186526563236203932871503213049477916168510151047617846255830155395934789354767229080981705733325804206520782965213332542523481026989745655601730700427268201071235433453302447623640515649070961687013039590914328889160620635484370779170036303129426799099129262157253489804795353706539509276935968439145312384668791327487028060967436710400453474976169991422293447605489261583549911473830612722486850490523075129382329145496731527777874314591198343825550588198432114117504851430155081338938047147882682121033130530897238963766513976999575272368158207781329453336762288285823654242266240138518452128051594904816429477404996543720457030065510984065882120401207174639774412823828315822741013310175370416223375463457252777765608978922681097568719343947730435442566302490979224486915604517057825635558433587637998415820567524505037916686460405572833304486015725577287100771394484394500703672916239348669469926336853178901711802453049854925829815574614815983154333873363349024647887291047165109419744543837169507101615270912446862240459424409902743178713200935738731285148855275642637535553186539220347858989852784326155401070244354090077681655040294979228427303631479990108270408699085804220297967813876269229786763292413868910632244065851257809452395054044814778023793569821765899191699983618483769954034421043914800657493778906762436077465137825972954131561064434617625511492667022725837104921733401231418039892021836065180023789572934244739572480689808247662377420640264059526060123930347226179893304429495351325859346701370465517234428826607506003039635903147557970653972586711931514345659124866046198193704756262384527730316377792489794105855558929380534080272181354537158374175003543418835726901649483344936898934373458371791589615249832007324733068117717892531600649054977276941604504065598621250925286480623406799971473688785426542186191650609219491425729982182092062439506112878469424022832849004797358299779156459547463969893363423044740886496480118814289179412430932226721931853503154340174895382940440893359463503783487169734552740051563118738223652444737981670136832615899486204921001370552636089704301503497843526301971390511357075802792687784930129887025478229331493923605007880127470312781860681778477730803531422091442066192181568348486771269120184498891759574785123948578075286172407772585989888635886677747145432378757854536517918241504345464194403763217173101509232607899519352270473147347856654663512168474757225492631618817985384238701762225541234647457526679252648516717091593450866766391171704650626673158202837939134146601696467289274071569964085965991990744974343727984717294364737052274062562598085511203243987851510350070375725707098880492881993509323764234093887479433349389138279378845038746911662042282864542417241797655479049848678497376978123797754610470311622513168170061195840167639198970268437619353309465220937670046347968121204262431809511063681951483337567377224809476385450194562283959707617090314142917608216677102780623789335600560536808630470577062399912278913831145045118976360431007253164309924248287577104835583660941161944167403897365716791606347757736967687009754268975953809457660234531544565789559439201720736196581089697822315586770758550119291279484605309653651414393250257353456228076991648578294386040436185814466612230236900206118135952523993869409035198357043082976276001493209333308876309447491778573212788327242245134866851671422062875114376049101060379632923851139181067524950177904109319152077857266413107922458402386789412437470425002577349276008204082354427764042628952425067794695883194472086247285914957738990007058402283336983719011203490409831041181628560686229540040819209086184491619633045463666451969802581690591093882211190253949785422014546933497144784303374351271578134614194952607303126087304080395461571282712624930206937626702639239879667167341455338909081519454424419419075194970007833151813362742923739149493082019626653193656515743453363069129861428960978520607601565173521479199237403074802101455787750074660608832337926457836698324468505377731595562575262069323464133145651677381295378127342911671025481479100066878930342002337057931370680900521557805642273154116314485077755106141738817250542684923801775196900840589443518334495880413947805948100074163112000881440511283227308340504560371671236645873879931208750930329330183518955822232322655108465803994019009214058190767120609360400130094653388643637384255781633208594425676286895894735953478430698781184218660810565196993374300927450527090779869797735761851712639523541553654796819738575015473300613381326811529550562006537746681214149455206998634650743659928457969596767621446511299528482182737359025745070105686026206558529982604867376438666396363864995289755691629320895122211728734940842245643360668253575372501007672828730085009326601677656532969517656603517589413467939244944676584997633068759501000609281066722152300424316619156237200593009746641147551785109257046052546754630464786008557456514483631429793850224634238831485413659424252020732543284874717182226854464389955011059987905201699113131048899140131574078903967054472095441750587658943356814132051973980531410598371806973492557764694530523386473958078525412270336751039884384707046496071367312660041412670779126662233522777276436768914204406707876848175105492242981898977849247599419283134279769503857125233496736032245442409159622337775691786808152342827258511010827498929529414945848939295948886823648452043866674222292803997317102801319582478301919583043959157571423176309472966421265936884219051265944535535429746714521181962751220523957888811219780315664744386957568862337137510214615165985941809356173592071046007839245287237819800135323597395070377663418711056210113753608249417373158161558522644843225515623025997621041874450755787310005851126105506862981443497368320200297707231576798998530024786109240137053920731041338291965440285168825700070808129137279803772851304520984851121889426031970121920763937793193524258284413132651405757059215335824719412781227360191252629001047442582071342014755303751774003576134961601407890998795693032484098078955928270683998070906937900620147836091472897209614023054322937462416884621767222118530946007918008902033042904862901880154500219767990071492156164163145060564582485629066312174628497207665492256576018880673464054182772224191792107692369497458518713887004321411484145727629632213779233864359614129461292503305737393731051031199358537398499234369819640100742197513242026427580204124740046824232683559257383991984818989085270009224270819566198332033004590464856615866079726922806178487881864843408274713367033621361694371864437178740876842027845609032802673141091976624570276786503973645755970587593937821162470932857091255164364382029494053945923520731466316780681117941317577803770960471903837188376410684736741982634921500839771823441513618071183759594681118174993768896195697170134909983025852092562139987217677632093939040299835402236172285574349321392727217213462795909849667883305675794670165843740889837417265788871999281766928388173482384157366152510316946425409444219509022696844509684576981162440891215700106809821427955941980546316116611943543992058892928823215764935869336357059586280817870163539550181206142647750383633610326534706353975836422575769673331075210931977879042933676371219143990679937053005805578683298436851929009492057450468667091241521293465628698317130641368395280405428710590091848351654214090246007404327564203123408915507652377189729334354958942426376680682229593719008635952359077189611658331434632789270674076236059787784684835271381603444189286437751480113151675006884755708659240023608094950391961890555438674210712630676183059860797670565293974667779007889352834667155817718250659877473682822271529022337936762623783135905838959382369904918386546257203111115447118674240095193411249857523139531107642868399344286653971878096426271547282211776703716611263273612021289434549843968093400004148622578239427319183391859417448080301880328458204785900782323590386197196292436227884091844216672602334622298383745880798914170396352368335060053212861095159683617305023968850994089754803169716167263708861632764315590264725364077366048922203333107975193894778071853818140696108300367407469581346584993487381230807497708376476625469793579537509401284788517602059029991611923449602696511049865254371850250743986665409984289985996135041563388364946797408263788264473364895394813417243533215749045475444719186829333763084804384497929191025721771531916918105245780139861219144341080227121277308131187341343393442015569082728650865054161823911560062948433247958818957882434254107702734605822238460207307732563127751530994365926522807444700703484470989733050815689259912504849218820061985104889576365505143624377435235209766802067338780469273741865185985729691160479365256528032584075284514248560287583710364978054752776183251471019577654250739524597502295469602573118342737000243747399860748517653648489017833607141338479102611864873958505282569152154702177342218143716874949585000939242036202451881295491303493845911724653788232132239486387788917704026375674566502538722822552990106926520180993792974415852343316340047193080623706372607472671611035225218258531330601343081266227795745090869648136863979552237909912787329855896931533042329889504505468402969549618897478362614376653577122070130065268501634929745379206480528863536442948425499939409064462530692897869411065854972351278905086461220797049306657305110854696918106054194277873054755871263773158950413883849333654117159319025163749820941862459646832845153325183310614021750678959793981086361590633136445590670546394659171346771354396092914404823437839900521327863186123951244420484958271009312749808213303990400121097187626682120752940789555546348022769502784145831955632922443196720218906060717516476340657693872247243161436064805049906038907814013177086311912159741601223157613990954588659298055570490127445645073864708573422259392435051552403669349984758610298233828943958703736869825097431799868857394407124799813997221492003829522004138487174611377205411224484267181657155082130981924771684835640080512774930476816926742477133094948442137237343424454638777585360976933458247500502036925037174712233400131278142049665265382159460936992372400716957350400112224910533962535481191945815623160543258161472880462782969646570729087632296690710261645973703247398451126285449262480621419402660186966305791722708557145057312414936616412426014758662550690357718315537338691123521084598163364589614829595184080561884729331968243958908429282290126415624429940908980756070701158036590251024791618292762144275675582604912315459125323801568125445625771492362641221236227435356738588406935799770619748962654729278963087337039996069002808948817369138109616561103191692799032241019592011131938680020056212780122342286160446551741304372504788869236109123928397125035504055545674390254343082295740095528505778400920306860384051427835097258333731639693853134967133780273464008534919834569106513826899031236616382069087683344450857036594330407152586516801931222343618122027201118186055855686360628770905104463389587691001317467949880486979572314381117376245656597679906647484669401668743922558174923814125285625787926666967129884948461495442497502279135445047007979030843682511491814412237275415118004354761552437902913135860948684998646258540077874667443193995524528029448919837372993239131333494825506056759623696206475474225480411728273885442117847693020189988871367884087437982955051271729068942471412660228623718581690615205523333105257118990345526142551823596063843341212055706171722927251160704077768311995347664283289721373483540148836598541998564513459939026482317430275559428706667239693440647746284926500822983978393329981774082644492826486089429723571273116856517983431323140180062905741789210731464580554640236936907714126564499129737260324489119883643437498566821525282605159516703523798849959382576848478126387579539039705591488636244889814690043683882482195400283312482837811150467901933071095818805302504736183603709600488976857371805738985558134646568811145188850454348391563970151970777024436312600054214791517834752771669082766140710780493054129471816324301554981627937824335309325302502976159545613733682815766540454627993304442323349991707970245021559088766648754950608392680379863600578199467299437941190235408267345968943899908721566988098283236988284132651194929029928543569369258571588530771815952987352658197291520694329860528815118845239573378445799790749283403739589929780399021421026123150160642420356830321197001250323252866364204585582978884155843930339631979877316866044214615166888213439711639747894938177277704110136802566782665425161440737029199485281455940011806540671043462282440691225902246127028586938032373476138894752892848783204711126645695817276564859441369682570245398038881054047585445837908440441716004316002566349642374141658415469777979929728126448645951566543235787743110563314409188041340746010549788733972255817324592784605810162146116253348157483492246233580297621586240654772295834943977090656170624970417718750735621478009559264870587540841919208417561323882750229959308172615513648902900024462656451202077103211717544623342091828410322980755725116261653679858221545283842941114166242369748639679109914725133296635491729612012289082447547090836995119493314245880301402977612902980021033534296085072914382907221292981720559166182759044871556025628838775714387135564328089206378974725062859470207896118024256328615878052206561958122301562499401949242388322696103274647282830829768543564865078208971208513039911471154443543330115699767201442670171740957659719836167485644043307806230848129801099472892095592201327374543370676878950253588370609430583168991503042488302187515393844015669751418644155248559838863119426664885963872266673094947278101624346986086817311590974933498499718400491131242991880474604446089848561320097371697958999721436849836782718351322073361661200200998815484202911045412045833638750469712425044676836279879057875880934303850139360043087374953209396943757331579642250235799632994842118985610295451770155651824592167023640329944460254415701192121048865868739502522416439450247234484925683830885974751299853735294503305688207625726169686081700826761142558880049897135780462362364909004600804259160626315770383551686968622312881002795376516259100340645622351004858304323778861070982983217987957930434453290462654281853356942424649923463094395432206431916149744008620058946380101458051990461133690642722471251131818397875507403152204365084782303472630758073044937160946613194224177849553766088857715728122055568261146009709511627821457602703514786968468804649347819268473618377114022032826042508986512176200622554973473707366023622091399104671928221706200869244301646432832955372877696003012256789256839837217122840251531395416555907668683503513558613199088734821091105862066289961822937585031164610066877930350056674552416454770781243492781493124103394642290112291421762784110339773430227582173882746967052514761488234488389077082325658356164646008332753044565645879079680554849782011304007770401162614497964654023408849728692455049169502171687980285738722355287838382651743334860722254566066705185741265263487783941503987590267588094442470701625362913210015894191092452386267041785336497077443894069532760813846912085598236758154080603878824563830949273644790110871521121577030095264154637675356547363437056231313018162670394724579721771539981094352586921789384256243356538314257565912485496381264742772433195467631690916827448587729875019483221506654080754873097859483537519181842286689406051045777962041534703019120672849451478176579280316783254886329646006284547535191949095348539613533595947502251382022404878448937716649741802566191016358802350769964999100969424727780365287305393940645596881519036957313071934018797092048194102317968661317066095774577772900363156037802681548250846159319899384436586649046431203980652130612436615390051117114892133456046917238292838546164479795513808281619256168525400389064698533386070745159547867140283549811995157303834640224399359166107473213764642631264688870992661144536048811267001993953091037516474873965472897102489051348948070814701223058944472700321354438044964750798227424878265719653959332745544407986542683780877171394260086822451018750712923674294300718340426424488851198596599103725684157936070843898614077485184725390734454166446301217247307070157874663794845676569880023242728474368256748447154499052535181423590286676121376541280660049530974965547907428370518045093486739755133462345844326644187162042742864367859152837007360425410599184820978695783690770870475740689502053748503936671744308040676499024797485830198115036479193610367550249674954913246089943859900870409042494146272046399777305480041902929761387288978080241876823121386279218228388417985778115304426785636727656064940341840293128488542921633604766382565624439805142210731891102473014877340751519927151521136317873187423281956936235805037455182319388428640498149413600170475083468227237348578990557174434988700358294298599350682007380662194280868043948167316666366296607768096772542748044977535932116848266060294553276974955911421544432704667401379307722713781323549187580181756556715761931119794117692178552326667966473752709363439067515875317740080220631376571972455243152965330906939893722584049494481843945257239046830001029276159826084868260807032606621447849911623105090019930491729511912257241844981911889934449746645063701159310388903187204614861292874050392168033155471515538336627377699635121202340955776259144183517254051514646550554479244723935814531874076618742236378301333610921568364923478370108106807132871220897151311366050642766995082476709250943022584184211685297664080107717815711314640580169301400737285613519058544363553131365647692587157673838154344365142952208506141566762891746662357537223574852457390213920716329328559708839184410912182582800552025080196257022286827591244902293288835864072584796800489170780841114391179171731226616529201070836075314272953834114556107934463648525184750026622470723864085278070508152512442074172610714211776042304645236147174334742979472415740778738343585059028234689031562289045218562032986334845870766023675881048217094831295912224310938525872990158873690629058964129672748281209265794340579967907690414219010008258394487781617506565557500590335614508338859144681700819604592334246115469556420481247837011196556949708351433288647528984393331223936232277626246131362350068749477184444679741175278458441430150664106564150267500670226186642532786082126487870180820800089685635697901359272525985131577597499231081233016792026908958246993123521678024114052556386072666218927146038436422951460179990579789394152564285331005433975139303958791638366809852525794339683977996077529471839807718922781904461624587309589350080076323868798374686736861225642013880198057720326431916560020898250484903466636949810125735843100476752253573531803687097190030956723580384278563079350565491721630884030665309902437022360704181826657856822018468266937602127859498103504970942873275597606721350999756685475279574565495339684522660616797615552021046169634331918698045327449199204428975975847358638535578116985083655889001064617302419793802842395087645186946472753384275907186285417809797630126662091447598783976594485015597556670625518488235826189882958098330067225698654410982295367091498322856861102476037252399533689039559478734224475925550758905843219480524870902142573402934425350291541563886078310081594619602883248866899554278898641349928323002805172013894150608627404492795401929205713659450009612012633540134003437353491652048858973089242005252998299058831601561168735725577462170494691719430188816050691186199702622092553120296126299719366670537531402992612313699363791352155474455089701004595321450356414938211187372343396799832712466016842145434299336424979567040797798371904332908812137516752480239317803202518594455454417798453279682639262580699670757549853795101786647686556994045277240368426642722588517940575681519958246575962979027490656562280160842122003645369255836966152207674223160093625652038399461854975195518669207534386214930305338362978804251780272635443146873284509162347346184221702355043052165173227553608973733281135413188044939512307451523798005816050601260007779392359920605155848038969551874350390883453409562999125570121823227002877315404297649373707553440890609246279186662231067834788825280345048314962548169636855886835165032745889705457972411178794577775805968662523505185569439470015827948160219503575501768089591566398079731878745834185910359350593401139536458941518619189097530681068932905611875720236829038587101678508197740439640391553264396766117474535289839726699468365483880749613275748440882373191576299078227956424845810495738513222197321975071017063703428149090596543447986264793069447271972049150307117822335524026611332421640308804504660224202624963165827433013890007083610805654432711070940274090824128667320634844017678057254360645160609995417801018484816032407053207041216388904244496217252313887673939301287680210639463250295675983693498707698566561573456166252134605081962342116742085824981895365818733030890995148492312756131219218756801974206800921559347973907727032444270956775042651515097991192130717567716060134209098866549397959890667825130185841372126382094053499261894979806660164960640732175296205391105310671747865481123614714653381762928258587390378916057434623786802922177380744703562936403813628444856334456842492624643991730128202275287866573962882476033371677598856999075579286520852257812826551167746421373267352018724579088935466335556076255926361117855934649541538185165232388574379793565415182940121433437043581642199497507049619594436013725576506533452711457205828730617947951303264540698756998463425780148756211675098712770787132007957121816134339110038660407533686022652539172371229898751850920525158160753145463221435172985399076653892609518910026527876457410462457816209397549303285280726952597378497290144589497698011952745340425951640730100248383040097457577579028658340097124165134731448634826128298861814985329249460730938945753833724825911745615284887437877173226063208827407385271865979118817253440651758959448548027396546396534899848031136297436251877925897844724168777118068495769888700475547009745384165874141163900318753752623479164275614946423628817317126398780984689130060716766055361186847075076294514905678945440023808422465875528928350455316756296245487527603184545910114341599991667352437483296787326032264232822232363878281970423698130897053576394545440437758147398929772560014338781056581526165203534679210447224628880760781643086682561789209649263207312848978974044569958756123291256941249756111547467160896128418801420852703893417561947903186270770192551304551628489920943185936795940355888970268789808420756120353379481549698720209309270546083973943314032232144574292346524500021494260419200907150280839375351527915798236441025271755276843522201413811479401742538504081481637444867392612418153044815623746834387991548819971231328615866383973374376802790496002122258264167790571160073175492300150993129665578042510269672416977046151218823075734188251858319341765522397567588747671108972499578520717389987585257025068373111674922647273845062448668006991136380451816453961122130692180020429448815130260759663460232131364282768218224378970470635044797807123729084591287125388960784676839274699907875854692480842735106040858957472256225115396720824400634008066478634339783258888275824746641517816812183427259056123535638435697354607802020951748123605707620946417238690187076134919848251910111751505764805885383703556761809246951276666076483519025853326362466658654234816004635939251301712489044063962978091512127480279561554292051780951326130484960986061849461133579305997926576541479085282960082683222208370849414970435721238877814640166047090325952065172848907004032263446179549080947933889546940039269875869210110589758805817566767417724145944643772085402421972480192636739951511299824759593330236615449995778474881493278112479862300915655550489639843235304824391850152362886136512624587165929113045369292782085016724801636663103819555132919076867194097677485897834199825795335700732102288123469338400601194074611042742876470079225251455142605025883853362609919926053789922706158270976599718056752605834448483754185831533147365540043319537535871723929267470948844006395076566428353288513967077035504124777562281132304122436077784824794199080607406502630738248146998638263841202122198592461485303030988097821474827624058572734184549028807627464701046644822685397633589040611471912494451339548153429117671400084020830504958799835874916120772984691980087055420950409457379912326392043598545639742807885885310105622044011218033980170416751926667407454731893004480388176342082558687622588566458622831929251365329805630805997798195916728610702453651419768785626308655004372631776391066365651875340557924334377050186188796967957476748751674473285666529831312576571695219340822660013400142643907133218585960595906680658067780948448121314965137846165070380668774348808381832885358510803611648670141380260869994149246778939680798260761072858890455135308748458967216247794703868787275502126076946712495590024416245852067036717325670805612143811007776872111284413817250145841926942878930435395158583137341618032226123477989152077243252579876346606574400492262500154985905584772830879646947177924595501697612298605536846357373553365254085748656085614110459023632438213413332334598443155606792801665519967854156708057177930704604299016571278609259088305754010659199267839703442553554091993839055459736680267986935660996238410690599803008697073040380678098887149110595101155695856209071427824131370255485018915516431928120060599211010154163498985550709779791319500692570921669715420641332877214829307002501458117762130600351586252139475163659017093150316403946563916047127285549073776347837905687756725940971264633109828599188626853758310591519275753480301055021470021946268497954246229689456479485951615558843071132115778960628375371901531568693904256063155754536905981922878381524064134040564216538467456884046330385303205165325793058951043219096232206124922289472359153255511980302282799466992168736082197191017811698932886970442097788381858376427932186534351339699934216235659358269724815178077374696615658755846585559763088748692720436347316491361706912458903564849600195618390884183644414628165605227383330358479359122319131031503070260228069387429808500591019499033509032929286608145937515138132979756842419154365156855783119566826409863011188030341227280460980993231559159626555198647036469114623422382132505636831731221169011452745162339764399665006132436337248010582557670789080117109444281693244236043527241688080490139929257741471089355392032050860382488753381391227495613147408124346671791235097774788673582222864213032098755889451403116083355998836214490285876087935553396023195011940575488013332105525246753326537405418322811638425277671795277259469283099200424928377291817942008723834401683221118609355423260599610889846865310258376728476172077880131104001907403051243872874592139514726563961720681814318564530560882153653073877976522425378206497648156929787974504207834047007031809487805827649896902455141414701118224468111842008662261847253534469978936888467899034820276465872067547101512513749565815892878566733379787445924734341456113308343208788488546970253055597966782743576561811591602153187762912816070641723922403401538931038747382318360071288928239274683949803827284184030906195761629508813317588314922895228129353620941826067678112199636642730522251393521850648242272091397932522258123026680473548023070306105047366155733615747759050812260461645596228295546035678133328088617381563666175101891017193890900012895261782125041136983090842704540679621601581172566049654094895215732878462426829320314219217401902559062566815685375860329509884166558724365150622068273075688611828875763125342373453697986719340130800713355015141267330775515654077869800533700106022146250152073274417625745913363805076230168290037935188834429970624009351159490669766855729102898012084803953665559738753872229165321871582315298050031182818235073213498582763279950225461883517912279544440485909737693992231604921327635724611775930036106365660657037150262213904299993684595295696843539924316874386604518407307494904851543502367792408055491159358545027459824185983182246788196278527505679425497199799160860621014985895199609294275896000263385388139015288777499465321420284616030061801381945432800192706233238636394931369588038886184583708889302461690623677544952913699861727093401514816672005062984457651153394799645739969424767055653221016885526752342137845855274022166872338195456412718901293650802545318627375296002930068322382769007366522856460714178221287869542327659212871103731146461080403608072896455346165388862466312568381179709717779419183567397485032996747618932193746552646807318271169133342648590685527725966633504507730589443079606735079998856515714159382710865384701350197387724428549572621956863301269438829302430273611452437225412851851574383445708386020136001637031891609148138379746692279682064938065171488819744213252367900458624192835945320960300947459266360408493319307882136281792082905942201405080049105035959520241519959037903129178076255969951060286225905195480552214765900956970264753481063819591935139338918142631382043895662070647933127697427349166595800199404796559750309025395039605068543687133894181171733252054103874363148047160281265560400921670354634421563244824493201419127734438745417778875572839413487571731027375692676006275552717101690037077016225873574248890969025677563757144234148391036672722080067116453905825047646186078809490367041251589385744419536505570683387697569687275353120487678603211690202380648408358855478554156695865436721419123112010928868496422580955987689711973455417852791436118839066853878665024056231175136998672826165149316523182031669411546182095860198408704882804728322034381493365316633689140668111970556074196619978487530789037003115314796199699749271780916943552768851394918131801243772424762640768347997216891179687492999607199508559512585226206145884407199777475694804250073928358867038460555527464525796434942870804194378947417479530621029781466755679494416950164362669649755846593488798235925447082935773552717631952005761003328278728616588124428450312955602241656857181130625769423316764752513011722310620770426993582586698394432731263219968047832556346534481842512643887492877757287315242936961987700690609745932404850163381636823411307661827596406284984347580902255667967771472515331426053077636811997855730410760628598427699090391769122244191770059589396662146779070724689943924222639148379221385373609161806536564909901332882708874370076995625543612120663480061874809871895172392173325806422264655086308746341044929310465654644088521647555812244950585845505175047768893510724578100463553602259961766643186448273899757425421020642262052515063324248278059218237870829269823064520770917255249221977384088267523450400943186554637635557832664850294112139713650597226726610606590122788744338844137586984251642830326346803838911514576229881645129429427120455079811827692101232254547970664360413501910290373508238288393513449903799202259082734415852386934862181586982285625478400871356211436015950593675652315920056927635817461072686813394459400859762924579721499439370005331124434952204588834629703789724958837356183980297992226162321938426594556908638967168890294218157590094044511825326288395212817771763977329782464388716776754215031021609711088410166578095373002559987300721996318220834585688916142261640664578764935238670109743312140933525472096576841945471250672229383887165718244449220020468648049331692566688748947487285453278027531096250044608933006479924418225843510726184437848771766946206609883720658339077481146935220710027998199682273307741606840215265457644818555719240693947319281021589195454068984368221526337438951705931653129657870145042138738044655824888831466990129686648843921522404831878717599545148306013341297781083265840106457432847627090946958988379167615181517915022553997024183195428346183506379442525809037946367836166626527129052787660660277138116242444978596151931868089519356840794479876344712202263459156338354394512662394190245361904196388936362208620347261690533173816287384558991928139252333676729009935840735380651346045935703884560315829790223818142644160345336824104778264991470198879883051425162105577310027109463533994149536710580957501710872193022151815285986442987848565024452252943265188076943481238715037829751446293944168594994530901691701124584789511457478080076726413086657001869807415798729246430890143519311191765136244942264812421357975798146730704773913743443894885396832639248789421655036425486797256303100360986095076597162545587776375665912122797747668086135721473254876058525249559669321025627992456343728368702086909829418439521501698673710383139307798932676036850484215657119866049528064896244311083844079195227911350627797412084107381669702327200556337708718709778089513884057728211610881783869601439898958121757685180395205987085584543001525384518116197845128445816561641246080814356293706051731372269250669977574056768652573552025036143029629494866429395914313534035976945490038457593981051771029408480236181850933295546286424611692945809930664376957166436490149834769651876787071599058201310954620801955444077207278284578591675395456606082857874172002356392464333371593741545437682210874210819142233450800198580496809406672805127525750559335205394115437855055432635114888464286097613769360305869013019900143793347917363752651260818015082617133484718180081945817234091597649296629346502672985234831089572281667959094004341573048782303489603314155668056694794033944177780917667995072744246135593661286591591111063535266547008337843975724593995949904702416518533234678587070855778037129578753552305152703934271786305760115466797450144461156181250983024189807386285492543464868324489331043637323036930137697277648422826620788192925668973413824786326792838444673506742399277232856909725244961193563077808308731177286435988218260659768285452612150304529301726788568323978468799540903198301023346790098388508923313838832875680119671050309242318382005242439133285042069368640564461270212576857140560868234280042800997911131511223471941585643773374116288301279223143849664204236453472787348714948645995902459462969645974900268122557319792702084044825678940040182361524622626874700757277099524892013570093092889540122084173493010663032225277211340421731137543492395531627106017226773408960847957657713829718772837990804793181997105354690480675105858208786165014430760292986775939715214688839274880759650747093733828521978034604320171577026961086923955643620515814077945458787146422572792298666581831495561781686665434706123407420455647887111962561329137745233804840539607727703602603634553387023633104840636052446980310663516406820941336424570261935392189232475763235423759960170500797254479723146610193469854918578302882171266370190334430419333939740453335105992198855070716501885531192469378384209388402799390038433675431233382767375713133105202975876419977771744789479540091975793863035220466704332702946330579036442342244094277242608755749922042293183768225694168690928381930309827933335565731683181088560749183987737964377539629520035138429734962956893323711945882465994718855813168619707371787361845598466833259790928316798044491146617443587049097357376147609061592701814881000515613756078879824971754216601871578372381588749669054060523751519736734429209063511480671291500272985881405597734432372563362207130735507487960515864686254133243050390911188582880425838806246184153381846028700540845562920273108670780054622294583371934375028629129374877707890171224648331569640432005750454014215268304559822686316956639672091748129506955016253974696751162033536339476731861895137024829156158844491031362313827200004520579914004166684656160896260067555476428046824761412255191934006037893262366529430566850755946941604862335832546446597492721631639552761228692827650064629951765289249981976277137033283583680012709185955915912584675951642533255059908058095134941617831008675345832913811378710415601477785426463357551068325657809883738357545870714355878131688436167615567545403606454088250843611467627810537373259284174378238841384954205427141333517181992432223350815961947170342066838752584576131405006176585788054228900482726303047297008625950665157832504326802655480534545019257836756768269097408375469400665681568168919350266547551946320679198388555215525211183531583890435555011292352044460264971280015989055054714202643276334124810946269222813592892478735084090953160708125207838703013712378603949652480810455989588362721698353996215285038198523769223503536939862411464124298807785242153389473879646750956556402699370739941153462090401004207716911173058551628521677640769988516095496607108173204792153046330648176980839937387561979654794140033084255442288915119768381165891769220820263227637521730851264873329238508355664452793931807264953012156220338957956005437537326706951168478810252286443198603662027746825688407057941466578190306238102686897265059360660534015111890185063548932978549353949883359582127944527603181030929448879877012468712624337473754480939491877737505317585170568831674444060815913150343008541238939540651015009462492786793899122685427615695156871016078605548255489274697507145079284783630951157187612909547298001324382225823025299936821603001916140551774845822405001317767860024180655552224640538311130786886928887439489544418025946930083169171453997978134572455466994154369979698805975803154606466577004771681762133479858594793569617826274790561450968664801595671317399833270881457746395285178223067956417059695728885450472052770776399718157246594570747012045127162524640837845018076737779808207858542716283000185711413239076375828856111922611404535942960259607602887680980119398404999193167982790282370604893797848060590856889817112188871642977188638382651297240529897508645307748648770218060288700865278867743833454915449715724863275087225971373809888039324379728548926932884883299976603388214536145862805327351910838825289425203383795609886788735873796916054530179945331616475882526960948623852714642498505974793757697432892563084693042293886770829354222914203100655685092431726990316203135010782292175048238085263763623987179351545149430143067259932067418582064029616484298733275938507040953797283730908429577980064782997656025370624792361768157226483078404079062083817014600711056042867875675700075547823531846622254438695417068938670896460464489944281002498033556490873216081776810296175526432449187389893168950845288532840171336500790018290327881104351807728446596903855751350870891950059505241483884118787041340378419303254463709788184379148727991670960098395928195622068349574181917314646990238755972432480031254478278244340056553667995531634804430418081801880801275221201108477798218642918498625690145148443341941047885596177379810422666702342926092609041754111632566583830333471966852449114704271929961931687411993485377562077936404082927848768990118430303417214592945268009184144933205175346152385657681055155387426522828225582483803243281564238316308461162792024285884591563474472996653853204782946385834466075686557821225849962620558038875790536834170863789780265386086553474420725450838114528952334642060904685222507559087246862615024643211222339117057154150022406056563541618614894262164142286428795689798884517766345378419656941204497324092709040530823562514454076396849887009622952786880929782670873167047943336440354071639861277262789122364004461481611995952130287799799226731490079062542678658601425147604802182244079755587995421345726271775553134292505720948411118165107624058971986058915042911681398722755190733247969559388083297426904735427443838013075758857143962192306633314527029311668323239230520322409921099670854247975548947694821071087744669956808303072346355520049588906474892276166556563385440765448626481297782050624515531896579222713288530277928635176243255723832919304355244774290202416572790271344250357461160318426451070747104869968996678726651760300080562490614033108306479744191225254268859710495020027149410632549423376273493455206846628308123220396023805885318908451347696420633370712747667192668837022598701942862604780064124600707589403917182428432156185120927186693288671503976740144539530158953398533889577508811478357844748736351210759168191416219052079986865982443780491157005329950694864804620481600286163984034163038854329492804048625124255257493537721527915686923267171375643075695403482293361440547582418072409233691311556255992222434576353190342323994092132421949320418884969601437049749423031873139111568369409835374327586240399580336513953689394060352577878217613012377576498625347091274187375455536396536122980382623609153469444267945324506208786625641519247808060990578394058970209954003127742102073041162995819372826685650468986456142203889711905056065521508807057405552813308854857614878581071458146206276305284456542477183832026274112043163502412783330279407768782283419862964636797721693095223782993243899161382038033912227848907713668613661962120540096327076090320368893331251719744069144349590400331855633706314537150299247843088941725617581796765273969904116952449010715633885278532476756497107483890348881208230641172009290746276920288946522418807455802506751575935967091139370264799603469807239275986754017035700025251110769095747068027453717305899586371258505177997035556389060748387864913795843914662580105197963972665878432550573001718936405077643201667739630864162872576416033551650312163557241739859196083378848860356555704421862263316206517815998484143216694002788879664663644693647233056083075563434877632620379256724793871874539974539582510171392811014880748570042978688185128048205006526703446308971308145974182176252757189115461647971283571385663259690461029545790408951940615375109034085330840921245155052327953047872230804810253764644013620726046389475516078011627274341692947294429712754970027865418467909208321963973722661105243261004673121169911453257782504320769714300288393148164817607188534157069781058576913311419559683414006153120437274322133445793469807008619682200300550719652871263166908026546313154672267429542443253560506645833245337298646028784590544115202424575715594535770200993533543090476056137273406745853146368828941685270426357045712058782403666105639352812381878927337648597314404232083901863280392678930651107742015657496455351751520615643298541652270800806781859041953631663324767280192154711444314990915214318660282619725292538239546472653624503147466890132808259491931691848106395991367724541011996700690916810668959980032604595102902558531224297265829096718299535737847426109998630981515507518770382128578332645919610784204855487439204783912674949875296483846282297412185050279981040791988475108662142952091007985187628171267665643638853233436897639874265806830489798525137450299958247268497610028166536134237196047763633852320844771239170625912463446286751168684749996076199585172636503972525759330150941340827698180729957061369260271121859656816862661391532810374855742199643796389012440583958672076204009455471959628397603422070007132071502545233153009543498622076654377444105574869637392186421939899317554113891370758014403489411599641942152795246930526147150293977057032268867469274086087940495888705771852814135769021628928492776892154493491426317648882468655511153878991660619112703219147209819674361096431894632373442014925479693128277384164493854190602637516312216091555919453825108012107764823030141991857219265329350480697845966760980290602900187521753758059478162610717609436481775141046585766451896496364649819969585003833740924253097841252184739645623911157349836249369159360865918028843154076213325256339635269280061379519037303499500201194036633433590634331900171031957413634815940258335664332129314133103341614459162703398194051641623294182845683660875184633705230535923587647493701639544558047094084582584996905807816992933103167272999707554027713390326323349264741959920647060930190930435075857904702295574766546477652482668520671641367166767168235926290991204713226360615555184422145957754045625974778316832494992559488055453949317590584323655608707633100887046295194914855570995031707690326393081956732040755581797018853186272979843238922031263007148467154705892578518331252053165400405241594625291490102366864501564140148325051544502543941391541488717399257480927729154847111107145286784875820359331423188512547224728102058084793185465005873477973267153807694812376905820076931648406823121114118094295712641432319926819798717501534312144816309552882586085857747718083007535075377936626257621383157650472371985884215876350476318552908042849442729502933885674166933270043263296463369585548921231154730407754738354077512132377105130234856171669682915718135486276332871573807358022488104221916619609725797306949983813982553103561287329367240734012513464394638619224299210415153126790252157104240560430051477025777008154144296324306261843110488318919028310592913083913470368882085880927973812293006938569183216883091302884749026975668597907273808912386502961651834226260279272423091609270851090239693516211456339577495015283414517394611975299416390662293481478241741722891957214559615670551437974014470576058652253807066384501803351388267192510565042224604010687922682928997705903024059655508846327389348998156048021051658677960947208884671762637624125145321703936623336043298468338621915361643904630715066341350238430027059006376525449048484218946200733985617285659929997564275511793231304734891043061529983470762126233788148608636883361005041781589944259214773830986780250535835935668175470785504197689130704054380316411410409156704086680842085898962625466047834547550356950738891137525740487698840915338930868548018833738196004424699879596587582934763564654351029627282702367631940855263698795008207160186013348584100615367698505369456862330195824330307105078662814176170071005685905787121532625364888393060027965400661092953352404305115340128215210865250716482457567184575524444889261371037257187145823347077121386356751931205735662067425030507933702435655423471988922857548850684327632655901886829587903833030204224000826868964486078201564591204861391150884356544440284296385008426816617640981514919744403764746958532612791836641980084563442835230949385248380932790993413760250277897024837051531601656962312398509355127342588456324749915891881755180591784176982581380939045413936150076686735892664282214738744508279766483731927197053565985873309387696865400347072049949811657690114114975898549910931519414270385214154384987771284338456647899220745120552682536908468912532538834562343406820822723101711656606545384439476708609722870880342288323902591834634187974496836115941613882095788350706124423294477758183528852920016250525930029792233272376835662701753134975745748278663023150653968388815555044293107310291289155102274961721761264771249094485816342513009208697335371602655544056088055085850591998515167321938391941324063493625249300754325232094618187383950470944825954845943264220817418258091308725151256421269193668145389947593949698910219704954693079842825779029064248786312205984127017353582335191146783746218938435281523169950226615906165184894441020923819668376143964656314144266188198032480584580536290203300137218098952338162243573618160062377316558144589361926300732237095443300367116171855106149068338696199066771324889886353897075813903441491802244656127620322334568023456354449662003158681433274891085443712253485694115319064900632217273080667369769664548638994527169735761140493536785514546381276218794499264168450387477862829804619048538696360767474000674263968362124301080532275924820447996536318557021365817697652549998076628768472068822611306252014562722890370166628171972305442757970515943074490812417589701585459956009946423816897788407857010321234498085606940622647655017286221595318372378447933068450617308245545832356044289528312412068123825078605993015183620020942925982344239080375589836600166466731780075761267080836729185905901266025518996799593491651321865979105778538684962346052156936678041823104074904187626568066026934799352469687118364138353519503751956943333536247993498810706574145443871853097548647417261177863217557787894059671612722183142377278660315539230765236161217321892978275142374146881144467806091206875845446744450991575847790556192831494714847603212871428696195366066873050597267269848368684912008993185937304308262714428984234875511069566631602564666350784844969722648032076269948196222159142888141746224777606989309366523268451458621422218569763873871792259510346930183093734559108569101563059786559692978300471306901314320308133446911252351079366721517745071398826132874121701175446907361401604131657110155515703129440449477609207171947432376622742042629755775089423967476317356133737098676176609378078631938879720711804539781923552148884463913381761775581887965301793387708574934003088132020165245721375247491064763884392979482337626410166962688070297998512202902078429046236392903340220901104902301357179770384581227518197303186438288701737623662634509067254909095401318893977553513831283003677328229259952233742200856121986844757880243500476483281955268874157178062585829380822574136764051868941044996914366924397763027202111141046164287322649189365051455933474311421418096173689870009477244283075244888748360210816614550735625831852475680682165850515957394132789173006064571384873649789419071007242927531006876947173433303868624614316299221191052309876796828426973446999620793010593836325632046665762703589052441105290320291570769870733998523672088572029684388982058876947589298254157305998544612563239811930749240963440663498207933365978162557094587666437111190795055043406789147563687539378879486558235476992321793489942866491731247857300056822166511195107391328939932682858592004463727399686107162312803339351995850446353391357029464526612438160931653275827451055145807022133466581958645249889901736528605764567910037354807797309955388447900073932476079715579470521182269439827000361915928168359544262051642657981896365028428166491785384987280727014671609677214428837768423383000779427756109321286799063932128926102717693997717166051270576961755517921115830277739354274848097349521453743950021470046646849515868744484967887700619200242060630607409972482655934752918490833447951105733185174794272677870389724786470660527784391578516413898884094014945735648217561437929896083381440864371673298342114742647869222188493812144488778490387545036838036046145793347831006992100877344993581741684655271229948303268204148933651625493803179004529429099791912771615537974572984056806323747149356289142998694346498294507322588701039901105186359311367200333198131125507914526007970327602729487179827206288707807203923110608425045691434751772642922493494642947583415168612528360644438330407398928199954899824860799108901429428873393029834477269474679101415143349564414694538322322430899389434891447734351664584244185017956774526019609981022999689757201869832209873702705155346805752534285252014414792018333980657881812792521548831978675499582626084419089135252881251428350952436478746848928349526126659338446400757712136019036591996291406499277340550476654340868222280343697407185403140408385959991453906639428175828999046679558451331166825607035432448736047264574159360685777291231190688924209984098747780088394827818192479650617982424483431209910326454178349827949606147475862645777612985152177144926449909779023833897720008407865956523133916718240567797054128118105296497943426848355915840201145166775730670808050923415948040996649935572953016494558541490106354680981512076517284845337628346000484813209632141828891183625580199854621530250246710807279638669169341160449346071335748740047387817729035223935879600185101711682181434708943852456823445281956541818777402493826040752505567038853218128080035002189278979195529273675725138119089654812050051755713583809162927033891983851801817476968068027214359711171631043429004357160162242969652678101478984440907322496338844925993541012924647540375843513029028113815199270122261383715203588099644671391020456708011686886725498568217644591150766917337112071194341770714307994421162993883657832421475986538988813409435775638672278515585435307833146896730767846349667354769732888709465231197844710468646626711253754711657244655964574642970514755597989530775878571469434610213795481490623483323326478233736529235170131215950744681309183225152625356716451158906799440330232068353422263312722519550348891929295619917339228889633896523587954824952057887820595801092593636325100432685783807324526111338364261635372822397780279259372063988326122026966260354746439076946569842190612359789827201161603052288613793273628691429232308749515192894679339287777513483121878008979406913511482238906753633418462449450208471925794224455795391298805861813009514314494199745155283331068835818565604639704264845293503317262308397328769930055434156478608036732224572733277750475669626044689128801479370011262186933954203373274802098780681959275218525903514924826179981556459655480829149690910421572402163683046010571981427505313215210867422824416685226025942265283147975236635265240928578891132550195592191285234045974817755382949635534382802914764248856878811260048870316965717370954754142306797829816428196286105984880531891773233274020498642049076821522433075385644650670340874207137000800902866947524671605162230606469916436498239480928313998646976936807132218522034524822728571075039417273651065488517043412649294537836065382042629044249462111728423766629965855348449947373468143308584805204895336773248853781765363739261231999353618183701097146442645341356197206039767887548039548234778658692299079725595820784599976588505102077673374480052146234459945712028128768784279687360626839450850468636600339739521352544498445529671067277063486742769599269695224362680579807793920060721423024190381206616284938172475919040214145173717880299477590216036630805979326308325065130343609004399364592891370160073899698868795718375919320167137088410312642257447674927113447155078692871270797024677002453621982861284841574139843163362584378792479956628130994726471736694002119908264275024357066890328430823070650092438751864480894507548435486070849389775592791164312193803548842084247136799021825996403742886612840318198425742337693047890427661087738611940959464471477641235895660925909330128836911663609726310654939121656717321538636914828770309401386002706898717616821813187620965532374101499705997133010316358651473000187627998277466809440047245157029590465076932064750027772148059214673205275739101868836364753478145053873758168620408464024221722868601681604851528011832141395488975549543578228038047465808253964073152916143494146732545797838964594773608757592748609833398399185524775470944329114225746961497345936439852217682434149995757587088759388942872708692459953925446880516431664696941150062730840798788112533451862214894913471325224609838095377521291015917013809733923332861280447829805172125617194281775383984526621888732024632992134993820179727570714693057108817857349732713937810245261896466613451535590879910667652406907126558148125055219838821930244300644374409598379992701080718423886161711637051050444843518230749038825750006453929055393751320071982237100254699328805019119001710984830218375663710787715638769565586950264344157859596156574699387706112910692977778007100130050086985073417917728770222396406086751707060413179911956249457989364436165510557902058894513367468204444415722663948868245562269692034721766343863946609214298808722712835575541407816857549968278917702032064842024735322055622065521460485041286672379703908283657506068063059316435138608612108726634521852535744906349765131985730970412184562554098712555148146841837747351132235997504275446690268510273123678713935479800759405201112590591586854052352757078283272468607243234773607290254698872737531455394141277728656885872045597881866615382520465243584303480142478092487084317064416882840138604586470141772833311291540902563733832940821611047975135884512796437073704342797974537500338850200303146369409564667315832045966312116271982711144069864561767646949622222947898714242954125809083603582488971394726732267811703792465963631112519567397254840256120062268041456521219859483130301802506525203787282709695933646614555108823413717616871093539679145590283058153507872986063838158873742048980426060802146047888595307446877786943420519302964195379314952288717721876097174029468235413788398715212056664817357582341953402700942623432249973568174111921542539865078945658229699263556670756942741783717374042116327918138544486752820973587872836801426045345233191765553072616859921725715890758568500081067358483018387076495787631516699462615944688627846111906624701298882424712532583479671437289856075572853332579354035496678605459728023832168420754887443009871468201339722402992515798066022391531132033661261222785812729139681795760309822097064983440277877662113756889235015651007480415134116661219230888322198568259644160961251380732478867402611890818506660779056162475371915903896858882289337168814384462887572828365749088155397158169848946656878143696186092464450901844714164550717345399094183366337826773023211854430874307496363289941095142936120210707948500425571587151224688516387104256652592415038796755275525639210357966054511385933465253981339945324298612208335711896215484915511425288573544450291463326055491616751584434946765983702733619285682462240667425915158738868904346556476908535113922053485528091083629668002992373677499261097018213628943852748196897199415434309718164392077057274976915176717667227513396535034906863464154451531280420040433633954610292735615900112432848931727416405309991152196027714676848503830131284817727818805198760711912421791820508066035370786582874168007142291906111965137775211931569146507191135493721949391401556069780355845522463724640843768547533891813140414073672970390542527216975504975905628189188999277387411083219042309031052636725228535324788110571291032225783561549724555427153656125107090558567778919109520949664474083491388478469434789224974771608865427246767671821194009801148113467259226889721468127948530017629335738311346419364851321562015363659183691726166611820346184649277660170057058542974368367769924877880575964021317707773264277960392105279545125853609031674324951252792939215585028196613808175520961068008424385244896893666644239391918138573688482964813063933706081645184522814980633947837962921373193992747784531841334632416926275047793902789936425672871884765730384927326710334598892031628568138786315291793598917204862118781266952229777193746046491124409564983243070946124306227129157682365330280091207889125553453645096837565796555762523983350522576863990674534621330545010956628565632928892968716135057766097397276013253573930314068766771594806186428631553752355288938723851645531483995987800351647772482760869663574163947907197360820949900961297189610765239891851216484152205916859469563665557954408549102104059196347411336561264544940396232293813503824876682963386403585371188172474171720136346063854567711820841123914634848278462001433246619936320269031085800023127530761726031042784059883700434631725885025287006375715429538505754214965989082758955399233377991283794733161140899744736108524935464788172340751100214759470781895342583199650241809721317046802805230162584149870236788604888241357301386283953065801333191740818429843061611025097080324574579032410652498194367703784646775626236450036139641856666226831398533840162123837284400603308877355101455532491966602732934643421171530930929229072684192279649050708312179221658988187798861270141792428524838523286997213345079753466061880813917766226903640213500033373253948061348898422242021983843922507393004800250075248621219014143812245326286570664732771850196311887573472354024894912291634842635313318770753974585236996248802757935409560206063019217723797722325618663396079441652496461047330606509557167751520749278981754226425138999229575788874490484448340424302426093966557531274876987892429686384148225622549163202549625749067419810885246319215859793638164386883074734153586613089718980643393155425446742008277719990678548369144100090191504887362601130208345508479447580666287000679533968992816669691711690480652006964468866776102459678421136789188781515074397296915601635630795284590831366616632308747359066586485189989227376132610828561208274864325695084935375835143999494717510805440873549065465704759555187954716688641047744024648557316352718990574969773974280839695870128560597753757110244498357281947100496866106726601296178108822922518203672766235868868867690009334205204010460145494382945507461043389156532051020686510175315073465465864850541171787221870347047790299778144383744257649183771012359881589531285348468975360356619982225065771291160856682045190953651174000213935242512579068742619635899363772510051825094324388726908737609462596165881236323972039707956171426779166439171740761447660231255024546669230649791888444540070015157739871036862543519602032121708527133269829846581883040537743459069451176209172161387784908297241270765886986424519304545625815358496776379470652115503148126381447642854727972594160834542885797012785334301158154437610270241109404253212055972925218279128334053767935181854178055979686106531292132364178724748522554291435435096623531290806742692932557517521423607474958806844098839229157494171877297788489122057507517377599519801720407417342236366059614866357958096841817080411450914886664259289011329846402356439235161872108753009455423739208847205839656501920748604832449653848162831657845589648570595987060315343765740864173721274426459115900368370470206823161260101638132659625906941295297739492019776483188673386591266428157098130026921298176812302442063535657753062802548711234093682925015082740721639891186125542258815156481439781518095307615260089246669871779404834435410646380310770183666115271596381811149128203013482842776495786501703773468768532710849968072595261563149072662186429839346714882734388563338706971150513700632019889718013997417526041372887853372569812989335610240749418740783099042543125654924596520310396369529228400099130159332125332598004953689084127106485025706125424023950526474971474544018057303167942920046610537152645856705029040575256639615466892481911076617650961583896989148158079819768271276259503761857881169407925593906690261103246440828533953243821895239456468898001438957837932259811197797683625609993833979383040905592813223170412643903266357847783709779425022278907005804722961272726266206633418987307085820739027492823582109772173431691575490475808530229602711971652317667314547448782928926940803430196470282147705312211252879833728259216360837656064815714709899486732475599844813169415853546074722397671369954489834624713692127768891886839471004971567224711502565645104019290795830054908226642007552284185008986412942925483829125391918539510451872191458141038761460888901783410842389855591563929211114155518481136137703248950425914855676455384029727220229429726557374225635793055472367669957505569958765884911753590985417557979866523757705250868413131718566825019826227416750713193063736462839918292027148352471628028656332072241035458944744194432456647073493949602830836328638333450605977115192133893060346587410543197115840181832534298483422348425950489696839083457116544501429343468901302205688460525861076828921279451026663536222482881114130770778587783541569494376566867605797581043298974278361461780831379509668537975401517712564163046166627093450080859804737113999316847631646917299532631577028560430736149192020365983835110862736777627611659575709273018011104434308292384428308524995261646206801101372158786103289475611472091864632316447279184397288461693881376398362677496107532956825846841296891029799272521092743954249579892194758287751830514673654974564586166287039521231576788836360281847396404477487558245931282331643257019201492674510860735373714548875087931467389774261933420823084958096819409567014539489456703879176950404977611350018645456219813642739095795179955192056938523962554208295346109149278109571082897171114200456868758361777508498914701723198041791115789620804821640669506359378387650805191698506696331020276064106982454890947630596784815809531800719972591780290104792083387265382108402594709257247754421924766170543375212534346308455506831170133252179213582760495619169673024136371355318673321176216494558354760846840661961660990125301724955407407076069261200534084050307096452958295385203233482177935049073273788008373182113586459463476615599356034149349302950903935984504616949013466064412466563507648104916942640523700980549214976879756504520905863785666067357887623678887377708268291331171376517300397062576362855843278087213158358877409393477723365394851060169565600030722476411109366635115889608847671865290000181254234418481309586633319319633125325713084880684695392250526402863480974453590662295081292155239270576056547468974132663108739757897761966474023671487580317384853416170214331312191413564801421559035795401643176965089036029789027203996664672743796923468335081942801239976155723897451372515485456273808372722976677969268134447788300609934813092550007929463815422782445208388676569429706232996638152134295089609973416061444716602981659288389715752324584499645037362765960640492484763586324659945143501201537762044289920830164635337956697292005716997745169778448440221617301085324303904488261293977012339818409797446411026388730101834306865694637396904634957895049099771886109454697385207942462797227689399629080716975713005336032247184113965606639841730943978260056109680181033044613216444856800591867003975622454121066458806130956649572378748123528397124120057096687972247533211443194278148215612776051912340794456533865763750545678665470221066476560920668688681311469505931245063421867364182209931248953282132933014747989838428208884905730044523429502038479718102246703545823047861276755009267678483749588494683867283893712298782841927001626800944339891712893357654111397642654405206669731604864593564150508398247338011141248374840351012118502877484831825456471287372612080846463210591893584621366230740386619727756184691358768965117439044756379052710088561501555722056795048840350987310051045924746610239832280196898802140297294961127005224979049263689505965649685703508165653156950499966714561648580806771083198950628326334657247722210388851999076726539397570739882545218964285579487974964083341373920354788888781831393329357411132957831949868042508757236129433535729352340278683448400713439192204681207098338418361476175704593328008344536441123116702737636196460504724495787183020223735500872280677812682948984006175631011454702518074668871650582487066031284206532902757592067229489144225404452512394033777999413915081882114326841681788694731360176247589759557297078889699094744288191519067544567330188527044518942691662485033723744441945746795105862186978714674000103892989779606977814213261395022605739419379417353593662111223109853523983335993560080598741735058969103789769376918407328771986869682609643028060853354514626105141439340414232191057322912545444313962813036442220739263002893393472928496249241924584234469325369946010822032257915887593210599799863871697930700814202923722278766164057460120833510011481967064504618338369983673682957394304043327249215623088807469107330975671492419750530818962308652586928300976494980883899933275595913408358089539514474700077983138310007625803647281382666704130918369952405038823652745351151393517145481996906597396046982893720586963626993503508962179713161015687595952082000342254308327397977197007647877332525960370522836616825006684275550218848656776397825642289267422034270746517577939485971779021061881069020649084384409211602931812746840185496627293273982404794071130618374416054606348550102460739126243341596132739014332209561168352039089362506843258183446356665277448527244147999492114420735147318991177475772393538739435300683192501719060050781687382946956430632920525076759181439165415887906823509578628773494777784323206220321305742860895720044343488512007007880001538347888483977431800122977806330395446048852709868699205701475605710711319615825937672061169118894059043097736765769550419262927606349548228593393867746552384702375311237630132364186543102241536982108716119944123930090752289347429330706649403701712960668719194140869345139860318155722684300937597699206504126616182978250487005429773776586397453150176062304621020651525458996886348931274981557732927474420387576831440787860057447422853293174249925575507280763835462724778516074438743500022032823686707697849768587262005565524870101431810997248587109392221303311755427318278243078968925928622428313988349637043037087890526611043262775648725788088680142075518494774976273662404028665431230400757429983817501309756572144969479141073676840126203870566543513040047783985149011432771042301712731258763662798365583027717675003374776947557673834987985761991374056461425816940628055638586821508023957472351674326353441886937869215921226400710829535779318225229535413864502081132955534410994444474730992374642667283782748610613006788499130597842894475376214951198257553093071021951824006823538873224136206191622799281605097638027460793459069929631360882913757890426134135926504278822516052903301247096441919345420730114999649277276105044196361783785533034346490302446180422442663644379651497180686828421847626955732150217169618894863564205819164129985194358231885904953654099920549534612674341300989086641951201010693565366589303484706774298042422572808298473640512242729219813052191677742859777689198371413310303341517124895626743066212781734518216505082112188899601804331304656648598412711097910075458815455201669343745585574683063851223832204213155147981865655932939834199578425626755114757334384253232667223659152094123594726749278376767146020631983540924368643663504266844833238734449729053322759921276877763624397922581505715297151712093320146109506882884693878711216930208441481166723202622926931473821615129041527037504142478825122161328918039338890430033703229327054383253803054552788497052697243189478795422787361491478599522140841267671752805968220632520615180820555205483761239676304236490446796732030363772577721914004934219843860152949272399165539645499322481439726330353059660121570645067846310038815608815483264301632405285350048932072801029754447064244262282368586887849739704346171975784897665625117226081313686233622360547493453969771052206477638190265378556596361792474567209360347082017262960021024113833900588840033510694087302499633735394895726995324462648352915160529508550730621398541059824427021964364073124445574045598265378315274898667048339888641097314240368557148766234201773046214854736929110581681817392934862213859351919079778292584069646335722249337500361481321858793010562023083748954268302084243808009352374766047167402364608369136948099742192017545674584291936024944014800753757189646177014438999536863154819300515153438940853630465948814541059801565227782405464809581915926973742269558009747084655388881651030885128021521695563184599395151064493630759270068267199237170514445446648454464544759644518421687200826975700449066114185522066341659369307314397841636502347038886102626101203375397900275273331127937116978031942846502830111732328512472908461481744852567590564576370291526318403274252274570263342123564197030191761944059048174323251135177925296362358569362013095050883781973244970325076720124681109769339637317479214397728455873518930226207128618398945699311442509073098168479350620536320421880117507027191111246025395528322415552482061857959873393452032931948055139132791221494283720072920567902979215191524954466441257623170994418103081007652759176183378336534137387071478082951826171366302247610135816051801324462650192834385930172531006738083218782176063438634000005775068156595124300121771301527124181585532101792910871478665104538134724881946800470484896819565138479941978301415969624198727697286094592361744339864314392164928320060227037571793146230472535517660799542976186840150747355466628656022428284046931343553951746140084469503819968177852524654323002344560017056729490556468507300756013578621673017134557423431868107326221367564461021803424504475598348669630187173298041088442404651713096186810685318822928715013135474785744341009110494076914774525911328098254139447231811757942955889889696274389478914894953338632537879529116660019425426220418802130247023840794567533021790077898925662077979405290328142462851881405273902503910254630195162002469207237730301968443473628093323128216758886402455352271792891375148623761553467026908911833920064767937746847899504040192044026526181997839955081041877778278595301561761865893337051781215849331290398061803311104162811698469658916771374202223995224902955845825948600171474731926731675697419168637664890737028916263487129534023014675664115759268928624319969708453633311869404023338609158377709285006582529249262954384312871629364424536712975135190807446084515313773048716400282221578584767765124877278009184715298409278928394246779471625495383272819310355118704585710684194584892848309602624428428954098157849566637013804916880643209594151988122687289785989996572781791428533403666839154615021459934633273416798165796758369239281620055823730020881569538512888503410012362257042393010878261162814950990105885853486518154744247671450874443230253126942170739707303844257798510161462276350072169552781637708606432734453586999202713260535068938454304978658401522218763879911395934275591824844482170995732096734792696319246659609974499347270971443342962307669691019806365105189559420413465209942049579464954370753392696304715317255128704502008508495405414445528546567245023793687238296403835361194201836179453105523131314976520303671553334484445825114320881454272032566572937081873609869940913586242065065249587131563574979593345703418071341622635455824457443162071779812404226774862024783676495925302742659020785539140736735574027811232174620991722857023593919301962684793023491117710100879535407327277885302699463830417998210834545431056248729889343448558094014819344531229182164224861904016218866482337741452905108563685821312714223594886011729870682813025961404965887544194362219022480964600142174128792115092706353568308114872206882056407719893045491252708796071865174891058546561086353825389802821590731294465187489227369923821008836084946914680499031547525555603351944116809663363727613724661670349428690607706230908854864281458092844968336923818762131226281810132739028117766893187767529931158738596195123012453784755420377222778715272298567864327770740904015165495599769457219876431084671190850358639516215472767089238736087572831236983373407233803948284140317685567335694695438706644412337941348192493817494891525316036032175346514485847305605669115466326139508379856733704993682088752244598392783833148623479490267547608163614011333119014735557808560545157283437453134873599394707271910094472587044696793618975104041342158445448718483099074740079535118993680087564011832720548202300041396283927724230286678529905313893548874275942324359551582779906839903469664045318179435181024643520768936251324780488882449205545737695721566828152119118713801218202055716684889349700044299975298445454969783975108139724612872697307395662027170102521152272256452402848077016201122226887756439666877771861205954807917277254261858666224926292501374481721557750211044812983473207716570207983748738375326687403206465392736534079012730116017238603134025564280564149853550076314703239565662198905346134219891067748391059756481653350696662555338773891078476513441762066588919603520029061390588522135488082936032761747705744949295797974747803205645199565678745316021992015710167848885530261189864989007755844461015349036446687732532585386729935552552903158435764074516536749304856017817736322444575255614374343747670561731986771681046601833228411536372733545446349392295502144298607821491081128430221727747665916583471345973977082200872603350833272432184265723628872982377979301712025878354553816632852252158450849780380141464380509444086050090699339289191076410938982701988141605615739336081185924517735115810436046028688533953586535045308465271799173303399071246069376281229350296795632261634628713186919559716020675720982229063691684721418904751571949082409837416543804577381007905899144292531990519163967246947624042194681363105176075137953713151156419852932717557097308555323702275417261040610556877208713957552324980004545801272467621489287248391639628131509523761889932960993840588844849864312308867685129883783206934507476551813857125155397265254696795333552911907863416552512429846484484902371742940681950229669191042601442945837809260608785282916790113183564138653533723158859720326616017605332970784000227081270092820675662588343635604628194700945106967669227429606549515681863886954284555186912209774217326417759169630285206676554479423799320107594148583396808074073997436578815403870494813035369923778376222262688565730941601273753703985988219892422431251321130611264566143473855351751103782828693858534986237177345812079867549423290380722724580589603773029296241993765534400330419413191978385246512273590248450197804446626794384471143366194916877138068632632535832788254285616453037876393090035655492168583517293142941077398769523144187441997898568253821949652804498425126162601001117908219096285184394499199263788807640009606858581826744172989266345202830770841499120479251473558884117285941200093508568412084450780529298648133570637186144076744647198218121684594052182983593579691766642034468117932204943949637958747216743394106838006607154359656126907989081612922803302457383969984475073057130344479241956301043338897268550430920452833126013093532635998148541054096226882512845429376327474522919740768460251740896017487148171918286734463282310777015228743109619231391668982549278626641925919290519278734691834871284279689731518847509364964277016829965062662601275086547287714338526188790643644036374851599035593223526413336679567753361857561432017110255723626848644186045288868396860387539774253662295148641736981855135408326498021142667455145097092383535278467654476574977659128582641467162284728978970737402524662971674005244434669890269167259817863170139972286158801223600280408756080797847675441326754321144912759485520264243865406699784427027737282576899315130322058158735258951920757312778492050964606417815352718457946850678272782792051399632149391252737825662891179062067476600552114841236028526554741327944880041971276566241166147428591791534774219722448153465865306969988659377852672442368399013787883330840826134434209449070696231532647629656519150542775614454296969736997194482035901507281061390660362072180535286158296403875254496380371540480526214250091904729999548642642306255743620700388546134083130832961179771195892784881367796582343943405559707942062941367619160086579189547144704691985912708622941995600402901845080035504466119808004493119188213143091848270965170781205584155675656525036839616719286540556930663343837683757062607777076510513459964482203889529787891932932006496417706290291455950253480694616543010733425518478571601849731579690652409995927329401195622557666386581675193844973343555274549934702285344444644109072515044559135162863213025576821309220707273894490263713900608880906509390991940417548012408921193445285594493419752796200081321697487483590169863198762939713535316954647825331056469005377736437594614421076822243347733936105849978473777676589759706395812024777727769683222193427989563212451190525326375541999324546844543156193088501997265521863031695894743829011996236147763874804528649733954880885227084118241901544008374739961855929506945903456261751741845171554683250422560379574708042847166610237135560840816346448782716945806722292108860747369505918526618013350233857773373152019301446543849511814036213224742696939953505020030123718660013031875773336931457728607111747696451304289943129180018552904765907852230124409164502621805787178089769486957964758876056523375619226583683010664173756791859257988369015720967261188547942942777623062961326749215813243950633955366253888837437298919501157933615931573679017398110709853705128717507969845329425352282009617126986649640991573266858007470362241867885063916997667741799736475064929150259782261317737914610382834572009564245500480220902442087055011584344360224905020072035194889726634223365181263730129931655458984670352229483390057615001252374697838494092748188484134596746509665704117846513611294231127210639861142923942079200349904344900033340147191348376755240005579546397446218866132872174080989903229524715324198571563936338441558928165979800944352087162897751142304776212965302938007906454485904912751636714066628669246282287275105005133586960484674711854203866962866674310641402320679130342348167825508066284172706774155979226068909725179738809822950607115108054689751955116484678814731158198448664190484799321298778771476005678560759455127498023046875028368705421813541481558181168412651475849027118174926471808870240390550992494968777147607923081746421303650508289266386088346361812214362976641959220884678235397096618810671535071365087359364579773452869450984419573749314175400251366780980896793281847639574455585776986744212451775211611705334975998116733879212847414077506219241327611049265326038910453521728239436346450178364332357062799257662714636708439509581291760911710071589378734831685849791567685349563196060843048481518736432323775684476491270476712296609100462419168633197466825505851943633195167773035574754265133524797890182655647348860617485277077813866519149623906194220884549623933263658182090996102188471366448787351330666024801459698938364897288142666559704267453413531510940739554673352319697867397456463545685146410464939277746949511315179132499628481021522796253402543067392321868782679033697146244987167368459136379023826842593701315090665841035621812757053865051877526833706894441199893082723871856529736057339742066005321459823116631070713294985347216897242573388072235260984198105884848569935443002924390190837099818564699040969340226686406456106063690750374406614901848552147183215502265875244015790763194577193900335419725834858265010702647366235047813724948933637449035577671921255186527595775791358154893917792193614963940304502749446452388876213329681149723521685404143751842065461675552321130214707870517060674631096510545079546694958769222115286550062400530277998019806564483383578656677122667151852231087073423367821160915769460235961249958181555377193573133786900537619619444828755625495910500553445881093692742692565032660038266451099161839840576998357608993979890439367212109359074007276169945281588327593101443096403235309006802087853641373238840508838159300915330805030547476126485563067975802801616211410237006800947311024355616331896007156414300904712296868613740411975259470505132221902465070040637562803442860280880905128706897054679642035037506199096279561424594427079237964448104456814051724853732923247072553640034222625239687741647758424785040939325251071694545241730079620667137269020997845464593489057020723676720339717893537480241743140817495008202400143124512375016720401784649536485789687661734220558825525878060717986205168937042308301491606752277415843066333164142872338349600761961260232187552901264082281095091406876446828966905469496258595862872593934459112099663385941839421846869348164463763303765122221175491535124602902712308383892425068011533018943829934079328113437207806046026665008443645016023616223985685011158323798701735090283199942488287296601032707794865560294729665622566521035734737211385979156712661207276148447281839642467793270156276395474018975365274180487668353101563825988531295984463036149494307450352046901440899632740310825574348497721446594342639076267852053535807441656748230650575995710495571399675334586516868291119944719724140654878516418480042650070181820855533991623855612750603078645611139772194695891235133657964230647011992867358986558046361211536691110168401724927426319170054358877029396679035487539849987484317664649083438919131192519168256581559993575722736653049833378312674617224347599560169504995914113129237351443071034353063263013669620094139060807656804668589725878182275455862452467056324551012443376337392194956649361077197436751718424148239675205157382178926681096136447920280930571177721022062304728696667878873328864176913670684704089405819330915269371040751339506112583553130898736245654965064452977815333443003190257928681306530145104024928277001268344039238541402680816683681338938840957073014152011316050286479366699362807057795353832887519381306743957425574349337045010330747219807197340583384153508941677207381860450354256450280384878573942999181891196649308328172279880457721515330098655539886304696763586406823143668386652212353807147066250469209431925799602368704188963888000503604136574655603250342291076158498881595129294802538782704289827023867411026261506395244144968613446256697315194208557118628747585958558215428236711337086464659632467559476420070813699912159778409823374694869650213729322767946832637805548566534350947374860005148439896793364312624442314784188565841079731973486465829009524467437917860972933740601135113694105648862064888989687856503736122052451434909838786000404275584819944087010120673708880781884436282606382228165485177470401643258495812996168142228108405205297051575192648455801003126826904462694481225697250609189683301072795600241500341427169246394333555436912378756007283859757252189922860065666790837055040907618625534637567929400564363619230492959706344986479355034146801988963162953643188663848046582108775457444556009325943577301953646290901174577416661101381093008401656237103163565854117508663875700760975808758612940367029621460348894278865795573900436566715355731658770483761022120900348806107688112237392531716429752739239376536911457015151017777236077308496414811037748670979919262202368785428045878376734921412553593439970670144979846052892878165581690681773180589225738756495336476311649353774277727748818473489137181780268394254383248785500966801361792517065116563517966673100460684214155513035863445896832015264793319404968992174421376981515883731838559326501166469567883879084679896919223175519574850081240301700903834334535593170974656133406832471093316037243732141463268684416992676821721249732573545731352420536841086133484187540691224542839843054072408932087516428637762936632968241584810433028660345097013768602918306271926198368740953551893358654794548627491857371959912344827756472696751147641297560616837801619852397391368241251821700204223938682879293587448429280979493314849819254201063815578294742000054023089756122368739746350451547005758803671419118732157250934498875544278335827882744191676974936533311029191707393387049509075225691569057057521228536970539799680252922683806433007833757310627010391788955628627256424960126463908242978770689030636369407630126376948382826384735443921508105225732928366595178715670880430020654532537005852590226016419846796242467955926107508152691798375338408451341796864826746079715315980966223617366290196224074452876177913928517328764340132647951947497701587656272753553053614432245797474023982672056259015094294708270010618474510773155358337556271218117673008332074597563519628564450640738677329021211719914621308526122936707227379851375670930565297838374219562057519579327942758892438117214563814791982850273650092841393504486101547366015666903828745842334966897132200331236712700384282160717160956414078345362092662720318556367667621211773656508519631593611182124309492182370171045861375527302328832801163184390258979743984180052375355313546229270100937932453683369800295085728954331696088553879636892264615822178321525992061761778958762520680079280126180608756988783139106714151237605977081731624616479907529022653365640572535651690785381412734552263046601488564615575709874492273054272753466704410886617545228497214925917953323358824756783719120695950746853622002648157518406964167029838436303613914484810716253811251695032183440411691922843246595304323697483326388331256067038724632894219434641085230462180103295959913963081016325774744871635362095097579598330211526147749495018343954019000629843615567695601653767036712747404010028136328935531263465529954952549110645717346353288074602022123054709804367112596183506807187211968034732552687520227569943405664408433787599964709235218855262065362372203916812395741709288338562038276059022242335248197276666372775727734459726253424035037331835249151045960265940328162573371195362059202179481023356094107850706792992293978967559907554930358951933365675025717572426661819703232652172741105338597995162210642559364180114494904485400412086900654426536701955128790828524816791359492030204286351958334791570687305996525240089352294750763147168465011835442715235281064548783374965216839560096697554849718075408448796709079510638774565281192402989193579715133279021134217667209202532761035600084160621692340886868132506310961187761913694191306961008295598684599935646201034433412080094952785783187585518128402991735989221851968113655473162093990583717975629869299161724584978611830628450032408690848058417028337010840949063592404745568608802632525330933019155322096553662872289368799978088260786569765343321873910328262653120636278471787727728969061400965874357873140046568190935194453536046462208138585076428119317461366861990286638636046932747401333560582805929284339510963610542718226059828067657374683488208032348327115723644295725830464961459242281411084043002331347533133739375494222205220829663329116252888529719920472616833141453908850781644496930341585709974623722038729803762128595794448232882774977138723453621240731744471598255798046313989474252570710481881896600240200038129895249161533159731396837246069925148583463024401408173581935166500239667526527552088931698347002736697096913177119298504182017066902841368705542757391276403232878587456837437847319486444373034255702823272852059541646891830141400758110822054792043540123588331672897245437395227898567325575294224856627387519484769497723201860798618724337346501349532603676699439732245191416763283679404728974237945220628038911460421395573679031980442951651925286852753937837319514485705262281337354796498288590901877559616178699236158905771105576140755486088825166555781678010646023015323131864386518282319117176429572404709979922259744469243684205821583885691048520802765907871646449188534071179889070071833222745072792497842033705746981275894637759505167971616953524157617755644577393854065673761001988880670758601427258249563977206494258733288019415259444687023238688929526616588307202992175249819468957121194384701060710442568269874340723174478526983636654969815689961791850596770995802438354098759652193272419859901186337411250647104392213116850837700164807479232720876323638612468812661994749091872541080737478348070308981071349048584749874784635878081524022484080301176728312149288392392285807652165902797932392737712957773481073053758308815493599601963256614028838192631734870789401844281110392501404589013379358604676975019203318232751898700412832394234380570331541549105105505366157318433754916461793984969551430802216738365088156404387918373160789075138085519272128756543910869194154954504105907669057967320641742494874563114844014376213180821183780080566333732082863572735446614513115669257675629779184714068709008642492220530144303094738862489717852211507646227770322475157936893906642385971029255713663696222751736875525669603418003712176495695169489163053904420324621273983229200096426505854051936418305867560605055401496036698057790036904377855920447748474373378490698477340965059076279353926069279027277484946573271007943086496447693072894354858330961833047605903690252742325212868854300064790974359712237480757434930148780532595995932598872225070501854793869332353685106212449158046290415032031120999189192276611796155542231156257579246457660316701908044804683340566878461737381048407150259892101177216770439196395178703424791683114311248521083710444376860936670320123590293660783439112905566417268527119214469536896560161839127669655951680868625319861307283951876706978339001388385607792454013501587545370019643042030550131733494775176962549996833143736705299044006173666056452503208840072177927034968804226580706884711172409246979219212287005172461050893801802276931328754286896631141195246233743561563902658912382293710886635384433526350113713600293753538687949533158834753862901692195188057101197992875111058756802121128428201389297348143693954628128231924684606604586243360838595466290770211137419437687097585639036975957759682025299209012664740477942742564860464592945819242190696637543265238628564464751196116431572717619147922893331425631188479632755376588117092502080960707496592613989595681570402464444516479131223505188900030261213828729611901745166819817771816253076454661494085115829078367658320200005477149877076718937995021591774749491198395831625712776456078359756637516169225548370652512539236536989457959336774447267661999291118435712642342613868954228279065783639357281332273578855745069651933252314418720953669009832931448092492269432952150374073609442629152474200563594081135377438851994732931222144155279896217742576898172182116823091076778793413835288740395227149598307472918396966650675179697419390649556979898234896772321157607497304683528841138428007002501890646814391445307383894326282201052945361262601412180638183798666886491864724135091823770670875051827567948477013421014198240524088000792549683102744540779811186627941700636015831287920452376079161594297816216083551450102858508612897031124980213380165191815422574501922337298873428569022530006491933507022484496441809809705676370894090525870959031609574258471295908510936770144960471705888462344637279175071395816527754423959775498082956128644717359627511087391685106275283028579627969783553201850339061053095993143782116192381394303043199246813215614800799347452842402807148444710504406179639124669909332136789923854059957212644455616942164236590052928712638211397771747863376725733884884599836028013234526365641899835882611262468057091513246070745261887523950830877414895924286077029386570931471318092354921744539819950695818930814046741296135346952312251447888576472437704550541619273600214909746960441348308668922308308938068203411052249961230810006122038792650871359676207019234297821511312675057637224025994633602472289182289066418113798116197655132908383950821753873206783288925906497242491181808893974825538598249685620150364649091529251950055099677644684377729348250335878500166544385242882451839982863593825990067731180808812063885168152044414730107071521207403408106742952013868962780287886094678842877093202296662060262360416700927112145458121451686843715875634479733356933454524791429087203080806298692316643405667144440721159722595160750328459639961930827747070916189797423941098121545976767258888864838462333711525230265356075350671497294502522221360113941214640609378526065954100943740930587618445487371818992687342243123874140860498009221336451235105325351774312040116470363480885129410305339169921044728782099051262627257015742216950055994134612857691442876234289996691386205281062445463365205866230378326626413355391570849303454274176452658834611981103576345778352532022832024671951739665398617601557915435194650149907195045621543431357785507981698905416024817027533061287547747022080879330040629015689222722297685204277922390699187813645927382620705526870459943414338624408036713364458581000960565936745987547949203331458638128904781687995210109702117039768177722349390313823503095080259815285280630423250267425459481731998108088476342345421909310994888063760172032257273281502028628358591601853154692700267785079240960075756389101518611855463226093825771716435169244913263417119785322189514470554981181475348569229874304447081154261246209586923942518584120309276248718423860941863718171617073549224892982306431670571709687536395138410683174520861386399636064785599068151186757842384099513909899267450164803029337561833891010491797100208884501266679983334521837349527034731063602783011788289693884696463750200614699173850643321779688610403460086440725742067243535259214240746845921424610876945688909607697240166968527712531462113442708184489197445439438021268584704399728025143840503505814685653462331113463244871014753827725039572180011840515492156561637406021792531802748634810884386116180432378165108217027671578669213651670641567677582420357741063874081714148192436481267939187395289043536350824112019286134876942559800787998634310111976548699291061069439595575560168114309683279936947117208028841338870371719117793912950113986973727356211685836732590659479071115486563227312243967090388622534995908495656562372123238125315454261621493794735683848942772015151903525297605870164229546653466309088816801300134341532231432496303772229437248957491144404018427970114971465223656655686534434543008745977196638728069317092927434116904146776857653934521727179500354950613656966466631389787017224772585466391300540713717213278638609045770484807267317212782675468756460017933711704302563716191745755649123364676365986807943555921348796458361016281429666818983066602797880557794465692261349793375957179010818489613633488832117014259574662923034488915093492510401213203831416511369229420916735280019360373147081793477773214403881913896346734726076090314511213132350585366169119049860996187892338436301570492178470141111409088240934496224218844701081470707399009268394732324637135909576512063648999841869748482181467003689244770958656057313613789778798640607247580368053084177388115438999992086431297607932044231579620464735943310714714823834327998942550458892710379150985124806241055576091158344744436490196985652242217101771529846197147503839651958850819991326838717712030783533474641656638696536184658927940005152800759890401211160182432164789718272186301363581295469188037418795972854039491952607890121125050417617531058365409405545906377191227248669332940331099340618078296411772431614904212418929668860592995296264494955500944751348122187562072138169654300316475768380448883799558412981375151206478084165528006894360171771015946158299558349060558572084432912749005054762156142558037497809736568190488782592053636538812537062884472059344993770938240661610762718332357434550309194073503006501225361874686276096708105207981921526839881552419585687641517826357383295701597763189456835341048831302299343047459252758131062906763024604767118546956155003648540884389488809188495030085917307650306896915174541040435116509439124029055781533936627773846877915953961391425926334451937036910670445240512423071453207657995510719253070046857256180123159589593949646402301793909626298436601026980413398531036581076051439665979718807570411106300388302332803168208871706782581874982546544505603254268122161419987980171671714884322327807589751503167321641218308254241540925370987862959459491746269546694026023734405108250758469301426766706317945335941895955754475624631567372940770255534432144313104118933015523991696075434456596330419759056879325068461345167864684727801812075582970772598621720821056248541995000990425304364102729971052563500412879854304245090200394941392744836442357333809912705001189555776680427039297964704797674434422419470450742397082153463211221400564126551384756354254247058269589599803222526610920587680860646826733120994152946933727820174070289040167015280216121070236660677720607168006353192517046864842171479163031559305164151123418794170960416715325589691949908117499248282917891785005512651162149615455564305299156476903336442407147715421485546582423438539113059700545895241253281553466297501749446610246800052061415767861205261850690609858359257441683564443395586258568684838503995130872037146248067247709704285703109772662959103854550802037058739412357457320982584536023659973583693183798518811151350948627572202106512487030053589750549429989497307584627659273669773921504932314730265513620266820182557677869409267336027088063496644358411613847793383495081763246006092259993587711924709512205907085473615197927132374955853391141914086479029578198682756131265961861493055393425602315555723468153298672103297803581855391864163083043054705214876291770937733332312823013344413974264828616492424695871866520571396981321834887632941658260229461535101494495379744895376123754102651740346991928791187762847780306893626516908394642973748069852450417266149609023417937304531000349607235663876353212725195488479040405956519350341166453330017105425958183153853257151309909793072714572556385950503548548678145205417767155184278981762207176422202006002717245803748919091828035662014862507647021761252942368661568479303918015500926990879841340540133524062686749248618243088167762203679033823035212596401685314620239540242395528527168399222119809396072986344550711706582879619957403975618683978369041658680857124694007358139638541766632690028183260676422033752020817139886720612746903921440093268642274994340749737076602024398238690524162279922557930566354261619702472175850398254906361566200873039101638776844425919406862416990363287188006781019806780727269409336509506695159673636091120882664580743943984668649635305344139309614234127397533689513907444348690742426598676822553401212697144009469374916724682801380119067773422358370411903603235868317678787540319273791158862756604281474957423655318623151780596813778860958817255305475516055546368557604952235970562450960651060785231825803510640082206870338357949167078719967914524207836148848518250817249607514758812548758076592903385932280206017957464881191785411103521005416963068746313527743650199612687759824364734226954273945092556891102940791630035126863332101313255503341999249417084151072710603287728258100426252149322090872798014509336988920334917869612545836510361663747155320348774179012106593116048150588405253710776880272488247236977903318005398788443019258983071168016843648418280085514727438217434448911373131270104993406773600612117706029162834901116593183222492758838543752045090099496865685792744174552350754712836658854949304158336770843181945147259779205118901830084219358526632959488738338708617700617748042165163164718538539283644683917063063092224106036146753246012005432030413535666390565801337252825009517920649564752653618767244097776286705403074053046869922533521074299454950338620478283708538601976566034058410597000096078284836096175213978307680795443555820585198503059254939341233857126427426095580530629528156434774374548015989802429639576472436250255330572149888083921052507699505457650350281475836182253054609197661569661444393573435336489614992906748823080017794551796433949099571578970672460309226602947661496777666013541715311783689401414342635924449693779457624652456646965449583046187578064599912185450089234480387481601566638854039642141938832069691109823499942598114064166800654219248207662207963880086070816551677033418218355137262861166736872568465749331052794701036249642826512279840366386657268241648647385731930317030791512649038130758079745156863949672892747660281075271900303193339670210743067999825413424382088971000613115469012951250589165784522707577109044105915130878852063710024083075468652595985593286557764856585849639706681220968268638507609584632530750244232292640431507080583331360673331807943568426006138242090137941451725167684633382367284876901250165514515661851192649567816555289788272891493540905930188596062315784265044545041156247171613784134101914702186015900324314183719547854138545224314819376443692474741974067042523299420542797029174132560969410347164777707495580389298039263818555146234121703218110605536997337889677747183815129147189410763444063610805829546013232062981904650846519375677149522711272072835422543171314199990080949750106850279684942403310944204251361069005965968235782120020093313486566007926590759021340068109885865731516937685857924906991771921687705337881871228541408368750948576541878111836328215023770168587209039956441068106965396301117420391769453050785451222254904191826215283043469967898029310731117231698293074676838891792955127504871724616760953243858843341888314363423255505461524156710923767098316868932521069420965829332758150684624501801524425254970555053604118874972663626517252115948450464756205859650884815208843619409017043259765305342032240775663333404988204350314331786872127139351239850055308283155344035733382381152724076475516932472957719988772868408007599412365569949850575908862274917650921882810026546485999460982073964207580399911101361298534668353396702948915607050912502374369089801132123692501477721383387415016236489829325294518865808785730608066748222041334699915477499897213958192878776348950224611621282187173921976289476746306859974582081299915355918855881269168984760145701100003595053718608435878331776937984222247944107251588396854027872888320976398251097106384855394896766609381190809059521677887133016124443915553903617865598914071660813228698474133005126256808581382882442686758869610712012444040149537088703449693617612346344435326158412911766049273127355528864602488089612083601473208797620123094677372731956146792088985639902551037547103180583551749524755633775681857114390851628346413709284794813066284714936168151138163622341317340513671153763348757402240352114566578597774603553510131232179688792842512876399914434111736280193843450207404518894083157689645195155359091027809301921735019442554732752518102779136225715750269173481422842436268926226600600133815513613658269709920938498422649647558449774654095340051615456461174615833664629176849334886561646022746940279831098507043783390814502702818237288062636950630434378030353287882905223523520593633301868290629437523854039593809710014187211300995945618853778839122743525152566600646425209495745764004866361039144238809448927376179368941758747488964353116230974323288855661615992239554123733962162560110435239501202609105883145563790142613621870399949215401720485791666601700206464156160465181999001698579463741394140538895853317854321982226493318485217416206513159289872799109609379638595082792901110045293921229237611368995911762371480376669057423393044716025000530341027427613300811303495735427956260649076442839786630402590884437865572727041917082074557804544818179776330692666399759667798940090428439639854119902388366279379146825016659039939894944121315538417185178207990829653393496485221565077658114522095818335595176324903159433164308889781773987327341610606533813976416344534990845494468881121530236624126657674778178040222629947999192741221889726825119898918602030626111922595294363892682960858869650400009396686361855509236994060887916110669567421184606620019671957104269966834681153957498976242745111005083346555046733011084270674604840399601900560643789068166016159907428222280561337112589697151562253702124915257530791793829523210055276023187550929441893693682496438644814806878069135938537254399281872047608170063414419579842129198037472169315677221827523182044557820922657998842618743214301112601431066602184965418165824308380066812985512780209968760446566466288359527798133950387099508244421371707570834120621644282064185545466946564860230620675597974183723194417419707403929547809562386750829352641118959062654729899614851942021424671240782765690399592477129219057023256006137221805662257729259219887018738405253249970714849181201145562654993623038956098224444808374530130254156456985215146340151387458220216565117108358457224660103630794788426977102943967668423370849588458744935510925769952791167235275274677378733856309192191279364893714819293919327135432402636812521075125416040560523180864651016912502059393439493586072810766441902081646599993364919686900006997624547501405277800614244147538441950784675824336924633762780175096099648252345826913595678302108633940685138438313476664099990522791418579255388714168350355080995245891992546424057551596993459092548815268443073233473807213938538304599715247786846239879836588957483911823683791927152663012280713771054774910564075594417999877907770607770312453223219561758934305611517662004447458542711662284580921644970329828012550159005681977223426265659207641196177744368198970134682329166957466386018137948468721439521914711218632399616567230083172191786005330425827101818073687567593025065562070390636560328638070939992293004294040687891199185485978137111179774083138529725141516770203237005726021703703542202602891930970148756219779294695679809570717218030754101337103387760527841098842340425146824423806342588897681625847242424462985277336246367743781305465371005716961859493933188067535184466315596084517934239289597133690192245710476068426322639732888730909583040171096964641189556259291263944212375695855176620663632121269789879598197344022632553535144649281342188131818569267169247415656407341971014327869848456868003469310468755816111153127230436661553779529604651615137015973203641968096986427361145527281947780440479983567661232909831523240129366147315317852863682020969042862726313089846194969598645140519722044762047064105182889839065243660378813491278363965141302054103562394483640706882408831997092665389398478841801133827423362798586690960771402272403300722219014392879415938632179753444050056560707052101892207596083408955414559187832576780307957691201829751468992705450849066919922346228455327725990708254328438700398892706040657699825617441884285755546157926187667676697800982646857813614479878619405021479144071902422800622671392442857283430903336603742108813364488459194953274511241390514259297826797123222236730123130500120155967089768395006161165776618599563163612174634679149486796751069289086209319739266871768269451294375094622643943771011642877782123577131514460600430472395196184363705323783138641186984464553027985391773870864092444449335384973758410986090759763146525264836180457038171507712762466320932084617473158411532940127371672842368858936668556395812589630200993759044954499621706491311237189907332684606043506106071975472180031667965537663701165742620156036033086952485310961933626932073150052482901389112140260461189457782726482418444531589927508943669339487047598265212913953362171345848049281818945442178094055573879442703961826974898405923622349575599445511793691310121763172750720529742533811465638969977682712969122677101592955251662321208840894408587876021824925995992539331152569092295744087511027601751140008590913797530888012699555721170967325747624787454056947860903687490814050947641290884496551736469084043644578473651790182953828097656089290594793791442892542657697567559791431729317863891810491245777930301237825932809213426796384181001604417059106180745106693827581971031574609353159886532106695519553151378704140178885506233531119780285548511877058823914412625588470769322629831985958085628524839900214977923132301779310533389034308772956923974053842650655275745888048227175308321720789483036594601445095930724291327479104795585165181734926595450634155046469065410973803749312085955154260890466858320773645612949729432645737754966186796562105307478618164020760471435463200483202217624827705877853604758921844397411884203451278466745938404084983543155193755436962600151102276636795943968688563927898493119167888085145979489218687909875855093640585225778604372842136482690414186782479316232615962423207256060044403923704909667968999377805744315952810633977631065025269758883960825154395782757191917700362543276710738438343430213273528402525751620611988962539664600456049405012616817158805786609815443268852589643359906940881382060958389080440363146379173464204286896012886571623778013642864148946478323690578836426566187714831523658129114921956870293778219237544157140630205194301726392155172647835487037075015922058588033169342627146681219811620294746309524057851522230522428710512419430759823126758331826800915032807038204952732389999054861852922311902793455106798276126471587957662607938678787335783016501038740819568516964024088769049532632776390079975105080183449929718560364678479740432712599732638799221558349002049802299586460342954058278102877795400851540333928343964659294206915101769507982061483813640543123835719918840630839115399389376604041123573022204193190951860512496823715005906651899322096742729575991974981529910079859913687807683105892833695637027034426491372325153380118069453146497898314842550515235900574806072715311093386964086640685709349389975192941149263732272801772474031570385796643630917506379202797550498719580453678230708840083969451460185795117320717993363130469855108868225609784509204473755141544480073985513019945311101670372918648821405412282507908406216255414922446264218620154212516595064071738776831921490209667891798276502768586605211442823448362975199194594451076543807009082611657419971713240231944931159526217412716418067120116549677398093596181884678246226074671451864386021095056756919104719440984170898519960099014558298288218308981645695021475469575052742368378211920645315481732173888553221380249380509870719591040938008837666686226602142459524855141206979917110881008926263325943184728742013511132690599403986306964040144180281016308447717383029694501311686206337908956786272990436357406335194856642517071328713499211412919646670151978457430233710746026672892784641510044320820667164881833309718420959046487330895948763013172431778354508272933864074949188028003329926704301222062199185159897676060819298503505580673125236870342151434583956590456931497724196454738646811332603231980163839247208535068038464368984563594014033078112638304723693200559206626572326356929044039154334538497089580507581709276215870558765273786575040310899400360165617269325520979740802670783765582204054802382548375599327324054224189927438985664291863929483567773929397364447884591197519253835788740703580605422719954873792589695620511032477844613348512188901447693956709598656727797932208049025914170347968694132601922168391752096548342133946031110352459691375074380517259888439450967876319065074969464398057792856556295016612028618283480161477840657891948368873474237006066030840283579055486398162953379573293450371461401578223673345527784688978813075643988497606869122493636031943656113321681483193898769176418914055746272603674299642761832670559892598116008150586994626311800411426948652186908035368270227309324929128333879397549785303347285217918436351482134252793828005471418862006220056540687697343897772921500191341594261632086702007438802929573123259664755740583705034482924630373154337873928893054085425227444797389787239533846099953428425970348675912696751898289756377489951083665525708102913131082101061242478260747522284417806441154064230204802830225395432528734098376905794689688990446592578962176723197008309159005416476497088783282643939264414325385891701514024813750005850303804993983013419727942237518244365887944167102243491935410800281331786532252150591779357104354735159482859150973072640096944939633653448653268462651365471285946230112568333859569037584637199211484183748859057044713588860487605377667459827475957646385756892965504452254248678422932213402042665541142583416820194173212157337976233940580776322370817068578102334276172476572107141580882061338167079469446376282874613448178773302021822854201067533895137671145406694633775214874706456038486734438440343451481197215926640310832097855419931369026292734629255884316185248894719421849677995628962543575895589305607846300494305390567196389392551281660214978260719447527036176929655493751950664506047156346337893084247336744015862409442221005936604418490905753146440780189189187431706488564887558101707354031389070862500602735246704275741119594310019827176784723337477173574245556246811112837824468957994999656408777391563246004194093772666515039099847984995869262631595603837755210754840395837439817138948723928805074377490098804900371419156106214025015791783733295193971259109505828617440560852263143815365431481383734702889439163487351076559100324446217906453643946788218009236096521589753387531381386313203458570392049209509109072118865284914099834356434286605547675717068585634020595896450808109885825753344184938877881636570532709675969168833636257213421214919786924978186027611276243574182228367000408785151702680686041954309723150456216177556475081430285594000730333882681898944272631344839217727050936939130981139400698212680776771035322487815551376480744314812118712838233190594152513332759085086710006341563061434732115374786201119589058234738034704109833818915421141659483139582516221201684405856097690810901186291659097832148354704575594273474897043389954649289976083882795199304287707894333804394233449760656377014538789493458777300762156923501914833318316998012414226299654499814892867809940350390070253583877154933639107653456553147168899664121944779209102755745671651742587348210264781660746932423481498118010817945356597158843793092747539158134848360980113196091270988062880947978084244568126186001755053781795875730404293218227308525734471242251356721311064260166241474561666832011399119345811129742792192665599396774522078146203399477487516447263161422695683431826827299950328789876126113745072604911202468983676267085448121597324619762858698325416880048519330679230064363503934185909263685437979308177437172249654127795260395742771949710194624425835311169236646268367417648683606206014361321051030683723421108394401756781402991287543830332053610954519331739459136802180775393890353561320468554279278705743177564109404810574484042619542698502019234561208900667311392451710449620131013839632605094153051971430023880611499299459913600445785576888672104868802543554849602518581200684597889471173372952365671583711032549359063431527541228382412102785333421826092357585148220959174128269807861663964713789196353678031202470998868587726155896045527448309315891055045112524653380351126425803051034684159775942300148946705224453381443370236806575970169212217384634925158245270797751193334205285529912281506154743727280947306463331646935177338252760323088875355425958342466527426253518743986388206178627508948440784627950795013079584260499599737194843475901636514023047972602686564018904464627095936210144609873811945192283574369845486279434745883875369737218933287258015661981827300073989386888790246737406472436372683891233301084729431919347296961784646882935201194171018208644109674724518673015468516654332481445779307994599784983810242522111565220148029536104502154112524606171087645864942373623816783083992076694043343678947793184054805513496511398476521629406685820709544935868750250939020659951558357830988987608540609259196009797225359230849753489192406883736950880449825941753222625330186814500927004875234988247103681756656787212053445349272849767458595870423571348644926322693960802919169979375987526593999338956450937915985222775163387913909916732759596889997192682443545729450354390484659639968293360497043836511420665865839798801491426754492297327587837428136194699516772510378284320742829135759053867432789116767671050289157575834407521493717786858084710621066184691690354567665298674923083284387618588628306377956065081087772191723018927625143186226829568037898268750448128734756122464232785613710391453912761966694505743911132558673729625991878380641571701921056671864220220139943696625936962464997191349216341009754748775826309542542733083036440673249055782036029892682530571597463709398336714308522275709727810260332873261482748282167461012212881932617708771068712521036935684332930129058547605968617916990078543442741634657155383292942619021571076500861477369324864207451739577436317978035709373879544988631604410945321575294910023503187937496972103789291301849033734704983773567203584040545228296187324112231383594094036463166848528869975923932067802303972891729844369162706778439727319888616585043791923111709505358035315202105269048867486191383457959046500853538455281045139119523954399690600855036596636017972571626738474181953598447302286760982427391028258823247829080096769176454285357051134504097885078011561763658087517238821158766704196679474122915072273836393568753561560925256982049970107605091439928319359628891209549701849143067166134800623448749096534945837049166878204433662239398436485200080998205283203772119826295250969552652737919690659129889476447290490742981356477015051163524278696822696484859468819203226601728029343096859946352021683476502807725722083883877041267412396267129842742165789525726361479849742280900085665888426128013530510495737500325194695980917284744128960572028168546742065075182676312555471161094132129714755806729920030947939160307882916285683713622318936085076011199994281885559351425038869785632059673408612241270222777386992270554188215467621319091851887157369082075373856200118178549498738591802074579276348959019794762026798767648597621058096046625664308867054808290955543099154748924224024172279109159505780918341733576066842079370920327085538061265815561948345636735519742851596861976677016487714344118486278879452870892507210154272196700132640075793794491222791004015335068123664973914483802699884128796770825075892947549368564318135874969310859152579218637391696343173580190384922221837953793466870778601399975653241177791729069407897062832313906906958924451960528027596389413710855131693930734598051071105753984180126777259073341791735972121595256939281447335832397475534423595864877398957575809183350264026397625548919921079669588379413899234203677336340121262825532129965170240903465804051882277264932596023995413683515928052397543147666530745722824549104953708397495808275435032967834392466928003604247332977664093047842513084031112319474973938151887654228062967007629816343900426206957463102117083505624349223465085316325353476590725250172616936733133963845478917716466221714449494557532266780113014243464145989399161730011150273727634248862644858399987216300453331714794372783613545342554350247684095358103215337293763450876811034255711709491151855871278935531067021329006823883144466253883251982389449503279022434697606250146167581086238425149449014518259182865018080916353064704891106359794803243329217445898332240672797560275234281236581899454515803192848920985833784734690081760601364455079070510841454131978712185034167582774710777228829621916375394282088966132858678318893572196448045310311285682404858751431986037821401662412390296307347754578135158870623405598872122034478209918167464801634129464440103969090681774649600538355127471897575204716688039642224145555729472007736757242534763682352913343633761895046060608785952651877827560396412273183988191908607165036759111617804885186498591087382062233744011709065543593144208158469636295923028567221304407317021833624154523085049427013115860729734889856421410985337229674050255043587051401929671588794946802534595530805406640479334278197559365204662389293146376945745338488209703760163726777199354617890794973059078919508338443240443710604776301483844966603405936071937311092952103572663935252041504296106216253741100833335956774341686520708448219783340223994252232853094337031328323411263978230512186814023494936002514928862338660585556760453839610433584377813639516387531301771684025828060159852825568408317988712635639000332827588353853115009484681992014576585092477636020624232148023432273520950350948133813301144320890875560071676143896558694209586034205320826682889743600239432678826044476737384386051356926749280525736678925411394553792227530718127819928119888582662338270789287034568427220897643996504068395031740260028118906034875661562158455127970170817776864423558411865169341039508306950425369561212836575668288459221877608528107873603028589580955255247243580533697242994929152478784089849608327146095078197576457384506590658889905630340275564315636429995766140659337812897089883263583315425696868405075754540694239558052780059322538360700598573857245923447017403426486102960345767200928871231496653273406731592578603019597685795365247367135570598031249968440742865412169747708124360739533884773433860407826895886871153949573766845039261974590528225021807438552737095575353484390462246504059111367263591444873859265854076292850168973345070421044631992085881184850565703959258099266802496877709852467432495258701729796528716714090398889470908723781811102676025765297812071630400084441744853906847833193072516561041993812244022042240662516847758059684421747311662622073247456597280954411490435985053213105666065653696336456048968433207379278478971832078768039957932421994181529214952989376867748077868884473492430281965599552582095038451871439702087444583969220354234185463273205995505725442583751440865924547415098268722120978884472730155739052199758923375478761425883781949251345417572770235842077987241433100125346934618646003365775206582452885122805714274200110438017307801445097487397297507766276934504393211804561832000973919955377632504716271157831313671187990281237050960721221743286623635755576979974012982080958788586442081482664458427947703369712578497308129296095291215498128515879809886038015780097193541809984181557520667990502078879273729887441350914654597429496740022492485474926569146764040464034751142533388819125598363819614734485528977160449762083137638231390448208972127074483799329330554415054165038150188782515146929947905263116462793290269096594147881523678192226330534201294644780542380732360800517065103163351803297623120563556132477727519868875371955247242267050943200175442750750273077751145749938790321856841734423746806904682494488153146516527123064663485102880776184758108519695232357428812038245881845833027366287049475802812615707302171855807942971365694103807987725890311523954689874539461569248405108378606948314460857551268973399162292321355547920055915830453365672645755621720654002794033231447432322843671696885562756934099529059468967960780677962632097789998155390283933387891720635202538696041129106065916352590658721622746948080998214908416610126258696743903329031145077383458208518865981962512910498252023425299313515167853568873532752615503479292709846270354909331426468088788081271929483690948087319302344746257979501543285843428784808079831160154846295594049029084737287867292979328333081399890987226678055851890065298515417951877091385699004494541788517998973227530944004254102940251483276490675007440313019038425345955018793389380339570210363071228871339732213856909700527823615138801864789601918363869434195620166735414988947783079367291001572138257483794283201996355601952655953901478206423433701521470518769990781934008123250052972715517277551353494153336618846918635316656024663293908365696482840994612823337116945735253828751092799574211722335681006606622765072571331075807292572142517367883451027182747752065399670875274708946458362094325058753636245187794870574430958849306940511118483800517140948827501500926097370238578615016222135993415137660096427958039814912131017631365569808729577327255574624016661362056107579827516594895326194128405993568783791706894544667616813487929991776983865916123830473082363872473354324447073193452591116498455972311779122982336940838276827814542672063074272266869229182428863624423714870821399815343584883384697804785889797268885951274027424051352720544853610435866492098770968763642141123537719842797267739455487837690056121112357791307702948470708009449174049552681583731961648387805027941817142923655644242813034582971019829003133642136566765952035485219870610077040899210313537289629719611045061699383373607009707301586550704509137220014626939166900248751998891485673408437043974111750600626021318689853642683980467534248730495576634715014481621027965297355609880158589889845093010149044102645298841362624970267346358358733678611274381664655478034101137593275489170610539975119620896954368507263439639550959659487039254615011004824827586708987519457889203335551521485237100884336755308006190174324026275846209972842637703363454037402570448602074621933637919259833739560330733054544885461455016409434044256273673718243175059151063374661638590379410297101090055365024852002147613280892843038314242309186700625001490109454073026556804340846063965678254682792028041629040655999489249524951553554661419111987000610864900012802829076686438887737761087787068440857947517232367065516466349398695331840516209944979799920274496835294159299061896764537222099392921423460733653413510609600515003579684229881214506129044730615172563509308214004997113742947963686082353088532112166862888127472152908435727158030541804039176554933508614053726028211175655965554961302771497757512729716963607426912739685147628426337148605290383633415683771708485672833418918915280180956331327203625204929650734061422521143440219152084297111564153873031546696679790052857003810781151654391627001677835225196238114329855109829411499033786046884314889634653735929988729326531343623505121060416340487610690616663785675335333047790392911761386067745009759341264576841814683492001815780695624578533278661409928821261305729128037016216694647182244797605825184256552884659514261299813260654358933569457790216677603721358174852780855112637902143335244998154921535827455852537496769115678285486441247757540692824629026239401147788461803756219449307490166217093590738106175006295856710183175679348415340356050882532364991065317193818230640591324182247472715612954107011297348703462770985281170881195936993071458093726972812725840265003527285388877748669458267692396405546083810446176099766167626343110993386295968103744617076575412107212947310770184831587185472012769815249324401122509350477924404955220524975454582504188457886927874013546083664583971126427684146640870718184040360929696623672566314504129152006053069949579057340969622873641281075568553049420057754795639869601167708679591406303012476607744076905608577324091377015205925444188283017942784276086666583862254890948607099989798827515414286780410119623386288055271065912255933914080071203511534418347854220665547617123554192048509657907907922171874426827238254971866876735880889871767748059129027748158853091505340790967703679121879919576693331225017621998893280916484394397508544302366028887578945447711998790832817214220660494883819815309177893252389662556151050205288491526272520349169362289381776387722618901293498300793814115086405491381992614851567113534669518242216810262622693191586056109437186614567066446602729971064458077805904115554055892642122391798048543659697376537357333562151947817780853075851981060963906078534832406899773618132301862245869310766922315396067704146756935621968935725230453862645630833750127729027256933322481638721123198577800641695455715992272717119421707432289502158943286581948772536582546364028648262307683840965118956722914007404215995363508803826265345541841141939451691029902516845354303975965142909341420200353781649696641949596247742400875689930658825730281740876781676902120270498072394657892650066284425602692494006289166908968813930376644024134477345662143837371801910499621777600342333200970599756945314933902003051088917173198907781332359113808620026092319987245232952438058847703024144173164532131846726091303052029856525557679452328345713800990715922338093538958551473397231510938518650887221036904710902219940018442592091555098546399973439577923216187903491626338430078406793150561890417460196933174665994182300200232172827619006625801768783173197101839287435111014562212681666012696643045600021642011301790249474707927928730054987053832593983948103864418933593015146769780727922626223651737700171692931614988779691129001679855747038419091899175830306084458834711411204826154954729510892357773248533676243771048998779999071482842395191631267873022376475156667778505773865387475542217867856958214116196777641866705209147007653769750940128670429577445278810262269230568917884680310366556514379698844497013532749155808362006744891516324457571285755650509472032881664818049045170470298359211407076356679400844744089481297214778361735656971509488430863339730389818597900260290631583027061817454183150476636870238941400105383752382090976763660545665178437672931615947081200041115507607084888498214148553052088750594729777324745302945180689540494978931766471645960560292122553858236278296783310287259817262799614917536815921824602915455657445350425528281260674615218131253448530052644413221374408545993506657326797718664625393445158070324701504213066469212529306897848936459217952874113267636619655031183135814338761923150844630825329678077052290587984368023079074740596511722193053262613197017289727628860241651456650103313207871252772778220629686791743675493954123354309603946236279208161473698265519632978074274924398564094878926262011330330897041303063757352907665867866960865291236122005537346991883977656106346956672505412017215901127936066644912454672857715243523222520400577710353062551790836264264694382789468356798235356427022666056068318847193944162101790147599417879257911167162175803470692287730203301306055225898277332194326344177635446434958247670020670520748254488469931181790120170435112396635155852052459698970427807623171212358182830897424822435542661879883902233199391886257876533945031313467845483610231735959564270036645651544909453403754013737141540353687402882019218247586200081630103792479797759641412711999523198603882124497965482880523945693141798385623495805890525880050127215631615896059638345335049806989647814774627266774841088891630815565973131749003303659199958650314505607681194613528393868808801894342014545858331362275190739484459296464042765517533935638874425717069035188874506181486801521738742329888106509416353564858707706845599528902134650059551293881842404347621491815702263939093260953066652418352654301391744101285134637488856440461621928369641922892341592080340859379892437722463601073673519170931867937231085379060937237715175656090583108102894098378284207525978983373626540228759677250260339269047105414824926446515506738533466995174480870184582035002392234049941091774013801228130045801919498969045336105936935352554998112609110231419849975705118000888211975923811143738737726863570339515581047389805133992757900730798785876230866432825486764969907979893404730102273025349501561532889454630934038132572160435256525543472708153343901812237025443662920840100944633485275790503310089452079583172666517941876304931364928366763665440023851832687973847192707385050355434518407478800465121023073070118676489473045783310773763254834928139114984928986394287985727866955314558187434018386527139537685263491333373387048269713294222956588445543232718005456878075887539947993160075952670464712102910627410925345277418198373812896282588149984351014360876195249694268368570564365033584729916166522041568523500752377629824048101620880424863586452878092976500603664345615863095726965169064619636259984194905572629277083956828602341051864502310441820687923431939807712355081420433783614195833471230198687479285419774564947742508905907660660690897315046484302865046673645396217581684813828857917795912172270180761122816013819113280279605824621137020701885356874031707264374172446699520194974157408872690552073821914863762194390367775602734829939125758551047660241163414783537654216749841498034506142196574715366547649158839990042232150981168444589302189771868791086196410366097881628985401070564129184237224994567610670423362556951837786134757128241512671717243205201418555101763364517362470533556260175295158631365250910081764631357017856185338372951291996826639743633970850840116269736572290349172155063590054395504239297434722981911005670496294367120727500142346585115639340089684680439281704024835534261598905367086545417886525617125448216786234968322150555451602111980421714746665029697907222049200979661753309142973550293124797038230795622597282646116334938032765093533631980044311327527591666539661653186312371626765083043635766335479915060435889424974790603373686453861025395408557046643194726075580240753519445375972822750559992943987905069665847555243366145834569978174584663645113176374458763553682230266223344226562252327776716382543643144194903810923423692719939688667924898811743644370920316731570736628305579764705199622531488847700153332275345688439925217692830887812610309536485241979803160227624501318851561213983676181690719799840493660152657940423110137772023153845023033167516622357294357374226171087243738297516649471894072925800637727776304840677948657116102219062391100916104139095817658744663898426730318548246881341883565027902997471201672765698022161087607537804406638198481672164097311348433451976634480374600620250925353831221599454646180319193016398943186661094142333686103966973796329106665858797766496835751043707941231044442418419863884887518723218765159871380246047154281444209382739446447888803371090830208751984702580310157712552946075645666652495709484888385818351364845579670467178087665210657965266933455473082117140085542796734596193283824141467101024569129259265506581770097544689117709685464488205462286855439762871395053703541203438923266687711878062686437928888006281733627162542966456188578205910535455960484549221959987333966024905543702644481757470621403782787265318878743955017381576978936500252291518147075263306383900226139319629661548262709347131564983757596876025833734951065963106486257920474515530712552312663256222218658466402255138947077122992063221922757064207856236897069716215495401840776585457594246958949937315900603596971885699623983373632472597291397840377091462471725128549443537729651084179408324894642556674406773366367241555698284153229696673470290490029752530514904907256412398635916929064545359464683987094210009543058622824365439330226974661201515911846513270502373740366868422840175702874755653700408229585369321022918699361492155379070062002026149575993248592218267330833886910383765701808927063487810193562154154403055888173465887990631391167949500031429317750994213785803351495046169414669748803682019826274882133807628618377982573874452255198130370514969887845733720856542933991871529506378682929355000074791165248540690305452496449344064424685742117807474523927564951818331906197680427234876414712026178654002911890909580084786515217133158249478810291706229340006263675317022924832045146889313991502172444963257872062445211148520357978309892747010921345299166989395211384494137526729813289602534540494606801958213636501324580843217018689169586882700714293673735976301380883069283901862968283855752127449243845682472566290284865671136914633418815970460805040333972509372095969525434608916034604595643733734564235510495922706589578032991639284787546141434499241289774235161295683798142563942057520772423766081549520413862947021599279792907946317486472497479478474205582267754380792712593959526160320990859154051492300908264878713876298891731157380642156771069637653204115136361688325883955259529688906814305679119325769017318073917489803674397643820203833652367690268232804554503226848671484978421657390789256647251680346377556616794963610237264862469317993985153343932300856592195176073135515223915862948250498790474193598069985375134693864571214652227971658372657436924412704698638705687517740556903776032910335615242929859898735204839190935331892793835611810423212153320661877410180867411420017062673593637526872788148971306576043531951051891445364652427811408837538900929492647220530836954936495647022148327611990276897018304466829782668834471243983347034479158719381410409454323464251872323178157368173566006675002984871760879798927613216382739455002625964306262574048461508285130124283632748054104757217838091213456268254274834568687663601564857743149342733191113316089480704021670079559243778283727176041085356821571092827704910354723547244652311403896452038786840136554044580922015921638708583500246691517375418874965049421748375652911425571722875753651774120922681477833040015118240645633290962330776869715772920862412208093784559031229774973184749996807842647128743745534334407724320130131231823924441500216909528358620996147394603375643724917523573930405564375320209375501091755156943669884375690065056964599239349644831761284066207461204689822105940773384162829308640052607024295304266949140392448101353562910127439714298166983895011272566371832081107093023813853355276614123650273116316676644259896150244824802745892059719364481596809562925413583132406625285844390924436705385375315007488631800801507152731902488453973957411648749989797517354930258196579770290901563864507293618626889335926487160972633402492176619423920354715398830418993722338365372985040772356440227924283381699685905876770028616070088075983151455503990796387633107266646904722015045352854896845164161985985567563373004024434006027475376834052159852662548487076649982318713561625789873846705786850649180522758320137467928067475705377337333757044679239798467149856274888108859134328721962203790384093431599770069823629864202764998479523511377068165146634408638586096546040599546599921157772504467747301926127827798138721175651658980821945388036707820125543767446000624027309306981894121789320632841141959334026257947016157018517984916999546273220179083306404903958859268812792288611795845813399799120422229629981846784781477420044065986114431713722238420801650327999440836257451924176203515018846007496495201471905683657852580133141992405093907173220375240523091289627709554457284252222996769426617901748413397592038707565845701459186663939140077920038394491465822148622994328540953142718303263807940212382488840894623248502812182561262943409565385169222400424306024163447006802891080604262811059205244613145124727765623043177983333303720652717490548940345566011511246660238178340056265519577485720417962398557133989581965879270372621465070792544171216555388967157600488482509991577773972848230419970354345311172929861371476869272531379745794968487954250459897629698040709536581971303534188438652711272627311116582991565034987507357812903290462207486071121450276578236066101995299911181156370499415004509407059293590080373686419352142519987255565214937700488116334351961898396893355801632426652597453455647484897102318354881258128368469112912195100693308254294444994814133964376332560937319697655250281484325919448410892041863367119523902777410588092096429667340847863824856402186101411677146052919919043944748347265897894630217152111116858280090891877392513667579829376659057963335455307029878104243736371076839633533852431835557781870096772197535098763130024789560605892940314232619052614714131215861785354029034894441848575495367052650114452032598929815749099890313090521370027686814073602940179298351443814635917493315804141079870960639502413867998803316759472619127539020714040298813219999207599237553066357736913613894529527460450365169856122088889728382737973863929054664859411416175218330190141540679817956464469914514031116647031747418086143271087790538280452103495770482584692645029475625238173069636586339275117352215309116832836083233054103992835056337489802071381961557174692147945485753891959077943366391172285741209465953175480410993804033243674624879383948314297740847402058576330794081893211926770860509417281167368173356456043149358628398186693509788752861609631646849319050418349735488171629368885879954751045646655653665330954960899933082487589192039369732991067921573270665628659945452991147447863554448571278750893151801169259446033716623501786167674532659038235849428999199643495892770538235705118900842533985353426762407253409527390051269089145973690617744036013973107464052800523563156038935901840232315793737090006698160867844085746589415340831096447633399925647228780743363086836618276523210439025925530203704554827251479405445500182603472434653314219494565990756417203117603259800891672257383075345328119281031716016756492908207643703469425598746265055056681959809283277774263541832955097283885247681286825041702138765125609680128291232931991033270845938447568859747031489895620030105499598836302943947668092831843391658585155996308886364516695405154507853558296340746244523099069059649499169017257883586315668767402113251606481190310249232446712537762266052192803531347983847837582233053427558664805805258209562924721061867241461682824520316888523349928216485723999275134085506068625726558572261043738675147825778278422303766004261374908871768698629880613838887879254291745270666972832583755409385886880948756022291538017081141670080279582387647247440226457356591578173814052919767598214391570005199509727026541157423597252878276705647866635010277135004516438846678560879863425457000203423953760111915408710579209518576578475759514710331470116202687962854695011815170297096393698577220345289966731897490256438862293809740480804893341229754627093445405232216646415958045350328208142186524038464723180674136878326641103921293351780226077827763145148521090303617452434983856497982253554362559766367797693510255465708938422754364059347942526027130251067901148536347824113405751114009997614588735098934456469066503303767760611454062762363937761208155138004031477581301979242844125493960537242688233456395199778043733849186410199071469121275551694659796580612584529611457738816955841157021476360031189386558728206394561280715736333399636678202373859275017516452278983786710128374680007216987918828392299914391441637004090208679186347237382258435232985669922510508075783012852699822793104602541572552619886536307794259154267556178724669052193738753382808828940489898688560528665486801891834122310099055769075178469888536966489582968698898659655152380691377004213338922096313427359312876685974439271120215541957740692262362577899294028103709342995614295926173221757356075778952503374745348272758318477442705378428357631315472101167798361436821467565343595368536153569539931263810064359832363519636449837447710650941149943568131805728740462123326574674827299280046487048210277551646743081568094179783115051337290780389548057987428367247292852920679136271703948483505898114394958328618985644595648476808937309742713227775551332301594009424795937039762301165233354727814735532743797478627192756886816462269244649568138087236425069479142289072668663429678376069418519619441026294335714413843986964588149016830986325880023303704179293098300622379203225268399778412995066828900931617207009675605980797729834767238811873911925591395967500840380486908661239766847958936968985113966225214345810114979144641911146309130782523087562432011043057801051588041461434428845243207652371121036959577711213971672828039808975324648236389438666420311854885816219150480305079111825435804677980078396280150974606637763081150785574066881631342493463052119586657704749389358311664731806731181436876218317633759228544762555689455264720987836026972071193428587447565874456340288620785618057766163849224295361082008607905092900713177928147731114550775683206859855241764908755507445785792696466628907326433439707774296546754474465303171430609509797176478090048652193654288437046628154612078036099704538426811162895608401439632542063673691764498321548371391214306314828021092782937585125967059620528028148341150703840359374050073365406493589102635478560133713860275292326807806890432779547471474110108009979769950188480394344548355081412298719525127954923431191851651211296093496816847693793605957470637385617842209878120897436741563123009122393640694093907639242239110487811890896140500644301103384689720897601794046454924687164453843254842358603646996042064840905398147463591125574037547962418144036336493427073597392009676382391940697126123164275590788519176365975694242976359040494595044626125753689269398586288750460443136756986413448233679984813602057019141685838750582978366389270086572753435139362726414497092101934125358363280440088645821316203693897474093735009672385775975956715888701312321204603152286839905315581257014061073496776966118232273157890081996222901980644430982319698466617348908040474975831408288555715438960633245788338911047587029751497465744918155563614043252047530338022281634923141789895066652146542724530709072093889810648685045677330042199899268214242690140527908271649051859841820790552675452630845726142430691094393380464969597076526801777925682380505770039038367836189678752112309903132987480387159928726509234115580192094998809615145819901028891278295092961080857848563645393784152287689444470123026886870016304563367839358191610079423332453543922655574914482535084153059630740022707363514815312398746249758589329688456387360134941459791129805087183905780510640970468468365564019094507849704919901315415101401399193814926576180078344327512448689557324001540702465681227952479997593577970800550648948816044334488027669172855608432968428303957949465290392753387405371177943204895098663156032692503114206213796797784189077764502531792247507185733579361243176606141768395209692575716290703714882149356626275133091006128215169581715173747965988311231818444016035725645189833891496666001114675477093947976341070202512012302809657676424976329383158694627181025343200968087156854393441575520593128759247490490070983734586784922161199157640114643214980218102195059194455377391102551522844402054870877315548024129491954539026312543039525527002485663810962347657680050223135009213796523366423080578891133379692753712554389835964347241415534803354753282529205122390897288402593207556447724141393033706130388653836504113977695152266374574850248257199426678294534271759199084309179079998272571325833041829467621748659111443468521472371425174616407199459651153851103225297676492619444402982669185434907410509986859163530744485708077241415504777291579605555688824632178530170890837770064912079271757809130864735342813726079447486863991169165267850223740532564763639083457547415789604849569502864239558022307071575375821494731286508479400771697692005170526098518590976844762707876625183210670644107640476548626540208136720615248440794269483032335354470150910816794407457414515889531704859344988855842449944045585646689355180154290598230910561333393814694936029246894568870861264675401919845208071071930191542977561730260521949696487874623162945384859994007817212324455714649686211977327882363040859718856415065577749287460482056539644726559680789754947298211852406764344257703813434947209153856279481413060002532249517580076307213523614034794241644579323750915253834702496670592526908562785073751915099893482104108341616026707372118456979228312491246095503265922449099634701630696137478362001821978877672652419382683933317764350200678196623285289401605771466252061419177375145146989998616670483822796230844555198261263537127317940425571729150894983530383910255213370471509829435819803549593237886256776967338199472381106011754304182729675916956667714818778445345704868331881695757374506021573247851671064561467234345120191211837180891334800307051941441960098812103198195583770739144491574336043176334449678433934640472292182434950739106558643373815787746267746326242223347070979780865829226445516330794785648840336186157362764839911376989317021808213808458468107700557446096353286176287863098459445952813023897870336618255176921280223511562463059625075454013641240641667226634807688327932375403074513560414916111705306580225387903741139663920898666080986111994379090709324026349541474103672638833660601587516882670735248247143720297720036145015276297283583830140625946278577618584151409591105985835296477845012885379997060643367515013577778802447426242087113233670256500351347426488427008110307095816480004179355128347314615204467690781169541620652908400376317490638758147999997442048012241272590508241520569176509659048865552666653684135013643248821091546544700826728933481043192454335382265579228913117331816638487289436041629299213274122727825714646844999859454997616007231248505369728236537966787892944390474310172463122260858195522515178680511883890742878549638677224214218866875845161949856077163508886770424955463459266418451307274183035586785449471573516355989707163963556927803154465680361107258268064760505656544039388154127438559291474945676674223451479813964594854541930062334801918856021434975238595232255933756427180828449893637256606774840645372384815174971026451965468164050068700016501737730357691844597893065493954174817122617582472221870876972404429367473773823220849219171657953064301794430542540211869874756694261072420479056222161979495087914549861515607049558044675095013517914855033543786255989479631859302705640829932066402524183006319328316612712564418520676519693030969923136879789020977460610834765514787002375034001547061854712788244917140726617515914503835526268454416024727867833888754176333303935181250446237138496328893443116141336033661848821886767116040550388751311071524274408803088235897836347995235659327508766286347516893247570987239870297923773582399337830123109431796509232444174605891503890917459835685599334306220846306286808495806279143875828610210637982000525350211078578667981886468420167227220821336964732547426090482969304561119215651195950539413744688020582389595912964289204051587009929327075922823274923569899735800988467361672805945784290271038280586753122672500841652541309438934897675715830036208506811472309665073534566776634413562205270603175515500378426045487598192950348034094971885033805149793075631055870120827813562120634607451156098324571401744601740466759366379939877296935370379855016326282326583108846754580922803446392156600940506276268498619631570963380698821333622749845337036618443514318944402833119890063356786202799200737800444402672497908314869459270490196902458851292028138001556875460819222333693441084707737595946288699857356507508820638244227491795811016981478922146247142136783209878416424602774918664551930970221472559938036105464230449002878319768187694359574827755520719406163444022113169222788477727029611783836976937740122726747073862909108608028703154084361465798045872079385744523147180500400820160182910008488365980157310473166638084195298464543577751472569988438173771751835032329327743112325175315194654587500288259348050276587343601950267998159506753933350422681445213289138207227390849863733364311764332887417779384597447823477609597924355362275883626027987379204519202982896314359440161493762619056996977609551188313806114208132608512497750494722650967754362620481108852588061863040137173329193654497783128120227152185758525575283962436164881151500707160146599061660122411801367403060123225527504056124803501551267806732286912697314714746068933393838385920105933168332174619696896200327655058524267945544790614436493668742144530080963813615480238499073500368024610628816091088117319578876402811708407773951245341459723815593672909224517270012045457348861122613008125681281391063828187116901222610412724466019856610513426779278823059231986540756081269060123035676143452622303166023509927712658827871239852336506622958969446544085430922275138293044621628957844129907748568322030756497977353495465639566590569975750368692432559717339948627200247758743048715556689184384570551733619038733772222862080573711081636586357217309322455987140864152346308843028795998685603895997505609103828771589355536280967594091737423494115769479507517642544353635845122803730700553761486505080369727604878308087241852510413027556094312603512559055508399738793674917649634928008085842622942616357170354857750533001290213876166121888052504496933310105654832994394761629382829107125636277357079784269070670737540844123364466382724943147929973006508738996475645438134315986060100960560544793829843821315712772883790821668975232774661167439049054045447992150719607183707151033267006254929014907928242445324103718977572050058123858713570894114673152469512062008310239162290314921467162778283187667615867484501842308739436813442736865839444070508467032003376405008397054508472775804338112713993506725258132860631659317251795320254372513932695758849140207541289829707294164005731529656659407661407092360756416920271291544714945992367131697255430465878587250085179907104638740478868051883240597663017347245092818228800931255045419232589674750553909440697761266913120719614300414941307114106857418739877408722676714308100059471984939818652907603072241258252284778551290960966745099758343031666969475880906485531081008726536982642408091384069283740710708957943059886004028642109724986740867974981604329104764735576188575880067559763238207252729807363505626733523016011030316213917393687096885566236320299474351496247238518665409917455345829377366157049147232042211518639688527572467249079197480315184441096370468773992405196827012355172370789981737995893846357723284977303970702037993147485056704064757461451233570118711878904094207774176254793734341600665926694409147555787175207425598653242344128164436365830140991055326007679608875977878626701716000893382491018981188453398202334956537555989319457218978245367424795085520910456813956203403431769061926340053710636925361832332470078061887411113336518376608123246416655465634720779474687237120536782400956560658396304584677479473573573449978921941265917585558920953477869363779467267114222977385565524950462607395306868422369849693621956960766828589509623038021419339525863664835140144703872862009119254525191975236123235696359423108768720441943163856918174294251891583351503988125964953786638767062939199886493631827719446866636653589202801083638869916180138276818920302795897927178508811480047309438076212215100545950073837532482942951260928513725303490901497643138882896314681203058286573209456513979257755424497963222961567124482029811309764387109902345771810171855446293206379351916327940723098230428829028938886870808352595897026826048094935380603202882242844585634513648828058618577366471362494174469875128512543792667912769517869932564477232056855062440582420171863025996381319868176191323912731577052909829115337448027374809754250637459930672299958974587123799048991026874987301503451850338379229881048583664049471776695243042921300752188613159428943330169532516497489524431836178661896849219875305912396023944234060797344143911175488178588683028896329992237585052244997408153823217647392415055729658274966716727519726215496116405578035625627025287950258043739377253170474862661944910485689593652743799116153690154038704542369752508047685789853503202706082649720352975882496224632537024652836810516006266052625311266635192806849808103626894380222178370390207171940661953909429885575211877498648869781214954356938558000968608575825143128369551540560328874388207127396729053539166404184258175599272895566632333463972463229197009891955183831210766919551559044763569979284097126172628540733828623750447635062774772203648755318172616169965567329784513616358689501723758558096603304810977948058134743634734739778816627816142667406768961452367391141258837959204851213570550988358370850857593006189707572765841031251280908452417784531094388975947596836780598747144774791891527992673343061408679306635291989273457581152970088702428003603285231328095894086107199245913172338750381857610755733607657198269037425561330471714747529113719099219900831417480892338467605031067388375477971095862216853559475010821365598315269584641981830375385054864107110287568540855489880974153344728139952904888220190142841316287785160031345944451213256447428027197521435618707407133414763906762217324836477846317867269354482397639092500893041300453082231818131549147223378822123452295643641349984390871385931267046657001126577305821916270101084300280114274516934445012309381905322795239305952810924225240176417743433047466476039975037885354291331701820419461938957570794744767009575865193782954799421176277866900853040893184834778148198416435065667972921745291282198629324337874195461664843845265276248527325670891555467801111137646194272475225102993138341430122463673343733622054185043222772509731237634817778880199293259591759434136553043549843309945819041377350277488857197591631669284343964393275169123717125309355348518120500805610557712726756121577229989110079375960904807288366684129005751770149340448312571108281190268719107621513591140098929291512355742817313506284315749104040669128388161281642757179019088310716461177018788450367880365069678264109831833754449409608697193042172191290848910670956134720336000397206212959581159131720800756404397972479358952571374121749808215745068651149287936974565814954299854275585006070623990766041449873724810674526052334278021368655514942138056494811118564287219837391110034940544298725693322578180639259658170619104510672621839658791591468923109624752012245706458165524438551609645604632450848369225928999872594279323811297439150115831614483798541532103134685177298926619980772831835542302937342674990004080721381155310284497953708076575419555274338971971862546975233238735798776049702134637014616346730569973221321738156629776392091676443352133719468216140204654915112495240718921164815076612571850237819075208805030725301724057567520989220747336192016540871714223895867399083913468805322664428065390426878611849522137250079788423878118444798406025588044853309750279374224034206173715424160296950486887425422457194408138275603820431976091565272682501160629369375933718028773159850192424058375330884053444627894408322081286646999731013345136180590392268785052696266658907465120667513885326312626372070629823237510632689893302598607054231442457213842430960310298833675319366270474437812593771152144864208994471421969714599823904043396756465034266143034654489503357234660405428629533006171364655994768289669901696791587916073791276015618625591766250587829778284508004327297229830888671164509165828595534550505514222074607156120104433802942518285335099789189548111224080313544913226060201489658564137528003298030492481950686638861755282175922415846750686466410096673772274696126162348955513692797365033929668857433346056943586508708628774781425142233156154496994702183455822709820932419637576425442818219410593704789741642569505329823733202960784830623346857632937374889710383434584624658235543495978987994321120179056162566219437431302245185936455496131602879212405950079604073091943656610566354926700580290674933607327829430121935074845477367748828958486879896879815731663418778966593956613701651704241414276546480239324363533318371856005725530868059524462289775938440490493855308153660808107695997235007935888803130859444411342988751369746153588056766710225074974008793948047365892904037476808013243437000700029682841856475424594874089737767994508360116123001283298693983718204323227293951792476031007663104769474910174758903325268192228276697352928117903003319244247857296477203391872107357949967294643632471206776111499273902251084423660865354689874376046596868695182014746649552330890408060717387365409956893438037703507438992066476945628556798974183369294600313716820631258485352327070616752777145093659729427270506980543363705051811768082260112125751317176901907377900036050761343208119847387650616268834872278652784706936802188174420521644408860550104515585125493239999321851835881005680613792609639247939099991323632468827138873305775871904472369238155531557696613050735842140806832829028505891718005872835478567859569226364349054047702313644546932417597759378228072226096719552297200697554315230440942515639958025945417568669962665864668725804688715458717353245882450989278991646410142159366973307545113360849740995398509520236597024067730866314541788997779504752362601035171750363067123399162114268723050298612093243693388205295431232990018135549262226629871098847655079333879681765674565173915469666468312245904997032202964637918787247872798484449014129374033795917978700512209543948714233845406772370476329838422263817184088718885802062573842461321325053008137307021882323167816097931929138248008802222790259999816944472515338826790715210213342548229551333655263483791299142710012384805684988444053860516833931953196002257792500525097238014520409387620974889904945084059733814765502317094226507768275920372399304298155169697787190097783532262902038343337182905615771820376169864846230031314511543987266483803099865045984395885785332984880441207932232233183314189409389436023511875032631023664188940676880079795404794533640993846229750423231993190882047669507203993042967822585722069326582706136457312609980940071803821737540993870272566374053204966321744160980351314487348348774315704935895910957875446365625221515015382883871663053205269071036198597706922377152408366282512653780702184148136525053420886835018799016390339014954540180676235683378262584770808333996906586707698583656194416886456405308065134620038483338682894167988780580881585107861851317363926110753328760850436829655808307589525501510958024044159638583521735459626593804843212882243015554809152252082033884629725759106919053469619956050131264306334573988271032931393487886938361149598641585831462942394762463772982454510968157449652763378372203537649139216346353073367130931705961244074244449292911683318902293686820354002950528917261018444877831936826244771739999006941865276921460353407676311382402838098382787178536322682484104628227606337783642134233864022789267012143316405336423690086914510273152935602108178514894239532986573011650196369222759904875054715082061036819707245265935673102061528788599255214109136498421773096480597932929198774579667212476159470611348288447942611209043735032934256850103144335552422130117367145168130911781808785812253841204020522018374846633352987451452343758083943377921056930372470389955394430036140590912554784763218936733163230658484496235327489246918721651168754780125229004684950650088262008753865952040619845928936008428338451523498184018763079542728949131189069911786031563238930414276263957364732871490278497714206605534140265893766131449865337134365855197432715181925030774456030662582903667149079357432253815254252904678685490756461125107011139768284050149230763004245714005446220819731407867828423972356316475939169086927750404919014505464181311640336009510014646305381848122929207362140347232631068037861171877925703425083723526243474836539044885927178058080984036290306380936256735492434697309302409084089335589538604640475616551060791164842204980629423279860544151261972115051709629096685413572302318482751288312186160841940943753687563297725382182262172072052002493801990075920120842043769712141588732263243723674928559501981042357399266371875204392075873548641272005136996663347650889853101492897587939326379413883988724637859313777944746360276194788851456823571190184767531770953315100079246294519647666330008719089722682394331081176117026616486617755615818328377899933096548992271374127411535780091147760760777257692692161680300596951539810920523163169517763675165442251682918672311981424338609304278319841487883749753283727519414809997123535237178643404915408037049513318347196422406641312828840286657925402775889008748256442672473499349286568967880714367224211871080714730559033273937135125617980628625189554801115912645304059250020357220130233914725371952537218462658249941276377083203524805450262549163086214230565555492975184882437996812152389653214913914177183466347998440892989178810534356936892844562781760344234850483118549404579450204673623558071234523081324233339511996305178366525416967450919111481969964202063478718584034205696509109532369825247812378661380366020605693685075434195152785879623369069626405380270216329971848522245047177098783962360999514042290405096005879991937996200956802114452773688406605705311689264982169399103756011345160076133968711999391187317776676601597863056691579573659150964456008319284679837417962841849472172549680022020487217430516175280961645026380422921144159787811181139010659059707518684062325984064900972094481684253638140840134864847287426372152324103106274266018710164571961724546065424379705915039516622885136604982165451279006609482444283058262859846151117867914413052877651067074976488276390161938970231601586388447047977923630195068528788010582114197373891628085085964783131133952888373560140184020715624892270431288047995002988195568069910046553934666881585759912435724199392425257310416924656287505475101868870190968988704428940880029771155691762448779650306240178637698333180523948247958334101932705445899294083934887362947284972483425022048353731234893648246729976510827100259768752128968360283162222289755042070039535673791368087819344910384599009907428513369274739040758951307475317975841944914033714529966265321263810991271763142808909471485651271017501378591453124984479474011752483192806365099647737023024731035388552220716326638220808185673187442701712046213754852475144109366236885426134389381416791081201272954192556370283239556327246026560116799897242341118462239582462594220900465072237229333892344944311503743430533835211836946673567381161339394955943012029220090896317161223623691453076975595528632052843183017659354096121596223230687982378174020752999072474093985229951587487381985886485447003036731250151681375144524147319145321101653177508138971003319224814203466468597684739589389112966719714361761576064910325968493895366508954254148463575963230363608054544465371501231845669535216993380070693542056847266493276681993390990544307409143227427298950377539661945700984305086704484715971907707087011965509256689212437011546914169599064772130850467879964166218035448297624229738929607519997271587370510941498470373754167052636194038222541293345572859539878818647132198976199546556997307901619830418830482914033359849148984039190136370731491474784024136701021894556035410648965683955004877865419474261508671794137541117807311162591987742830175646849367626317398184715310168012705465001366455242442191605206939935335689335724187030107465654019831320911424095665316945495561338791949079824137790035256352177823225459349047970093474640074436576753676721540215395427210015169654864458329885636805670670499218901330753985796870249917810562626680592607987941157034977020795708238440248128459355115790572787657771802992479381188027892358500211982012599652319914504065930877904554390881673901320039241248604393368561811737107469171040730390653079745978055378549997413276575724870346488261300730080445978132141270476365139533043567184671504151394458900120946244343425281884812522948274783195086250105761383247542496092681622334048570594865949598805493760015538499777981944018910078546195355755398559831855540813437606984447396052377633880749818576028508594539871597735668225787396315530764255425865826047196817717994842085878830378595625568887663910931595821461017137278222310261025734400582134643015808376815391527871499211674365664713926494995381247497265898745658268664655330632710294803474402741163781269889480469408164569947341292048773066018088305008410261979913977839877793596420688473832888854703318561429616658302195601744592346478259220769202654757500040006742002124814049288796040033881476302037835448965344980489608716933712049557454539441859349846334604946398724827683252995759343235437396676654739250837375897849533760723630471294173879611582001789269674179374448942777324915677594564305536848241737089651117108444838796900121977307646582934148305730690184413818268427750923370833425954289269519906101404746897671678272808810944809025311674864824345278381150218908300064276780660413364042959055208292546867706159976669262700687109501716472031904821465349375861276789547135022734908965586426964447681740286412890294534468775257147954092297039106353876055664326403741405962904475326478555205240367311860188216442214858720509973146492406189060578417648253844351049001638212261595108848271962764046713196573441014757060840087591644250803321956597148619092865640079830455580033810774780369736966047382376774655031045340633375269500172646829480640497412879248511382860957741253000097803154040885135208802204392265883221269210991420663436127867459365452253800971470479908887862606580887181913295260720511162616965101406734324374406979709574954235580926961523464118863178336881848951206845686886334001107266136297321034363718971778759192673846081548361828287172322805592533271686401558123820058244830600191743924529037510564868225876582037750714784710969117138811757879728470674681685416807856387012121423877188379817433289754485532794030749402563255101943136448070486391372289505724058064681633849368057264262400962780392129922878803626575171343023321579954104637940271839879048916636912439424347175438606814987706035482758810834107134775135027368983056034885546275448396689389925130980668851456063366325193082580766633137665130700853050288654797475045825459984297058156356726769601277358346470574759910831589497264825003805226100441420599902121568388847233922536666945633101944279350271280173736007425324011204976587548013761136972366326032862780675454608926643550620803202272043660717907439723620367781674541760864757971585547497932529807510403465342758223388878883880312487064314829824522736106408953961722243998769091887114952356231760236529791660125180749173265221043153115244347011435860336525178200249388388794374310384096018053584312497375167593600598732152040711936317470851739987124972375496300319850686844870972995525296382912523682065901107231577256624292687242725239917297552830688809940441007376236714072617402418159829242984023495271107443825206514606788498509933461234336956086233316577298434499679604481230256028422070636677572178993692351485640781977138244176962719852323820530051635296369019864901911107492446347641480439247460948754889347944253869771210757287946470244320095801322242784699900652598810498884142240957301975413694273407484479298314521053206795719109833154745883034636274466010495848763772834264026953333694611777026702309287175528846196343065017795445321280494860891093768030121933807075221152648363704885534130459368529584719620566890612841080101823853965084035634118555553249574036533936092667978078618055776117971153109706898622380917289200485134477064026771868083614136237631377474962139978812877176204216164973287002202251323563964441187615007995551044531105879553051399805647033715070520251707919643902763695202736826020269400778692288296474159234999525744244028192980798588212392357515379742449787740453986934907825025080020274984486206330581963328825609418423678236361521583100462294810513244512960205720451510775817749961795606667821366531112692962727859999378027208385589410921614666807776216780054397326937858026940786849286837759748354695345631748929886817128914724753408779793889187077195470113853099126754255842431350128706368173249995089326347674509551478143795346277813509028746039804289348875871525177297287906766755033534757081169676559853764600161837200672177377079465821661847037810585685918250245790612864451280476174077556774172777187184978402434793096425867087252098476817806129596617733354980998099270603806064195005126785945654071691075240160597320980918767747692144786948493188483938000574940830358008258074738374559694022642272872582373128353762879794069945675996362640281911395512748516563704534046712865115230959257459271536015731019660683746142199244174969521276774774645668603608849490746538611512995122260222061014000088200159686630433123522148557564591329563747305076424599562849329678166478531123751814146956538718966994046619667493080531700073242963853754970616052677249485386733844337802062709822737106151795404115560943969296332189002892246406844617005434868052046311459259620740952537650710565152076697629083926879244748357031915178262047654937243824161727095700026636265085087580297444184629835880503973952946853719628573180123108452987533950204399621509194494478429031017315162310512076176970920120975518414691576979282620059995040889039146600692517285416891108228097400191179189436166944950710404463903088326088703345320387832805408931517874130624491159414183071026265092414516422826283011739708292122574685348162175625928932868493052466203662689426352558628036571490509004522142763688213518507369492970221842777682943644413092141040441356735475067011589212783344153955056989328257872024170587423974319040765529605351878180329808891384675480061919990306561916548086511663555415310978393643834540335995071992651899195729122284128770328519558101279963773496513179226325754942188622916340673952774955616043904208028453343731435294267271258375390373394273911262248349023644577951241986874500445921668769757080828699626980360167350374150870531407439621945309351182790950820698575002570781170881316426257621789424417882152589829201515142054209841161040878664470515849978755594292623214675034595420082834675754125851914104176135934925765747800686326552319290749473434910846436951108992384301513172045275751726794301812925895028253847263928532343718123669506505630746012218447395029014278635935961415900901243415065587935352928686536934662146185817500444403066115379525948913982726005273119180295285576845896755030439626218540054884847420321856531219181250746232421274572591988958575995680874066337701530895834738176463386981334206720287390192657175214315104173946580746812732741489348342148583633590336281534413662349079347482969091604829196611862557160563879765107049931993435585598507630848257215468523986973113064337071673549957251310352021996035493662921666477476801350428781487670098856656478001763909179470796457286123099369589839004611191215748205590024889949419221997995947371211304551305300412994561747683699887279343676312895324603170101037333117849253173172315427301539420804161697707678232606939823895363301422826194289792028827428598051288448987600147585319555042400784733538016172546498910993613964904607559330188857013795171646280644785330574967708592808262056969070003484761263107614486024845884957532788408134439939910865901764270827760751842953479546505852599771487714525397308422653250794447500182558361756577177835183485133129048314291103570773583055026660407473480151413497898501254821807054447611496147680229281641433699365315497205783697602023991601319166951382870170168192776640166198502612322289696875496092465921116546469228292295910679994132071028785669153345265692780108808862775961050053167264852311056969145014373855177057369812963561672450389710926166349496703630202022639401100011448055339500209594532305958326201417529130783868639064044429707284265365202906240825795080235089733116299934237019482723038935026352345881023355344285021623059134357359823835987821878331426708062750512128317866247720891852857333240313527027638252352948766831717731942024444562430663693384989493284576886361487648201090453936303627443765819682309785611166432560950840706132473695473615297312493223760178892739164582612289311925836358497487259686664905976776066280835821394687371936355447157893577971800862662885268678565910834741876943976830820531953756179517832363871004909323850998089264209336211734863012963633810680095649332595454362577779167576053664325630000941183211108423399285487911271501908766672076022072718091247129106587481459276522147206742095116108503686040087763236754721129181503041399584417099460176178222592637473579999452118769589113913766929776365498183970788130715009194031563510055051972289846995843581526856356931560654713561216468461244084516859036114504168338972407128915770593122766121835069238159987755882699690461810826561619883060496280827406636549878527998735544003407315751842448110497610149712413388685755634881909889458469367030912683020061889210865418603923294778702750695783156910362724289369767879394915290021699420955397100603829122782403962379600746309349627810548632434147392066033414636184696096337628668047327205443814443198549516714432453551140098776793985298336671382923134480996643441879205734767581733955717370430957213921685423076008407438791255855363296516265855157122615280133076325422214988894694842279653663164764620029458291444536261573092094364063194377712675602261828138008361445643031699469757497193909337814497825683977299633514858500238776962625013215310850914146744522735546439236840272531895166621097157955497117224801924436865491467620612882161961380430406297853679054094645306978561938027834464189553605785384440713383159932373054311402763940305587724848268746379050280793985526406305438245979815241419772672798719039222909147297165647645841865364753305020636388452793725924870710255436224551119528269592778385731741416966120934551796720526523982492186316042875081265198980343804619336713896157123513115063291894683886430015634246917777171845998900880232073407385683605020394627164057740088869458325124869433159421360053517435086697899727441938620461087188504438653479858376218526161372461713819538096239936035286479159781491990549806413707267390788064710113604548970370735818971211236326839612819805465579294028260127770902379140859526831480620322844912269363526970778320202877134557054132962743037546763924198011765955996874501532892938391587841023624237056849109637538677723300144254879675100776680236802374621278245800071035873702106156230164936389900261424633281525432694787037806778304316079202550274357618937979161828121626259072807624748551574995204964550950563880441204054773843110710063165569036512917870548683665315506173913748173781647278142138935008670777477782445940271689117634452213361101650900333390573513891854491267575582186165761254405016355398418963674058692496756754834853063342299145447706829525059739528693005378436848701223483602425491472419935327099694504858871596860137023929039256220772838226830896664395242123290848001134658380253339821400069468536244508288389611246605088473598710097772373740391281529339533902977664613730544340583409280261836009922206897022003973599687377384325363021751858673970381627288850958642852520013208231051368546680253795394581804182134288231061698416170168953751986739137877617280204482170932476576545967524513128309417390477979406973615207588065500193950367557446633329069552399577167555577307573617669574725869595079977742833653496314655021702814659551856991682212554534740679018209615601221818445566640464947284849374589216135869194904976981481331346545265031217822800739270892670410550467286777623836302263005013269686683954666774825781578539927562287610006213561038399056476956234163321056461892343512885693574397439108569250729201556446527797147619890644353183959382811515035907275730203372491380770870033140584687385266226869917397964509196862178453104045507146357053291262099572917760671912269330856990542242138083291119054227040152859644635296278588428532538105855418995190416482863158551448213981855245698063033780193939152433139235461659294968210521650100503788960870884094744403064969893130941291686211896993374333588941799397265942511300765206655013092556264227064333054313601251400977205326843486537527935307269032206859038538058774560546864690140756030552283957143126437941752914053124531438054518960372690375866221530121194191650009933038967447792303848837809339922544708568850593541134391740180666071605209524150313116991519893878962346673670745831640515978922201599898888367650877684937518642562294603678689053380455312665580273737928454690075003537392190987324132904520732263159352689256004639898328920704688510124718751481909829079899446733378248983977940530867992345460647435217420436133170042979585053583807782133939661579667986346709808013827479595322248674040546172170432424739224226342053933848577576148757312445206101860595259479556245081599808036272011922766360859457038063440860385032183303227411237381826355935835616611498386039422401210151331629818521148817107016764085382016906214728859372472092203715555119802911019987164370511645948267133090659816861334118181200310642160650492839008104225964109293145494200590766491995080951754189568180159258369185052136617446464340172467894459839237159087191162837249900852674369038377215274501015888607225061667386262977340359361281115992611953236145639383230116741613290613558116536753174245995522404510710464210070497829819812471756410283183745079151884342415805011632269843324196085736998198738761928187760633924997121722823876147251293241445181596099891657860528289879748183340832076204623463040895935316605071610128846423220129852016565120327101732246578220693397654509631624241844566337955149671540138689672802075473748299921745045212530754472338865566725265765690299155525889817182531212710286561872914478713653132905616302247632301488805328492023943181491538762621932116717691938867647646868021305837188250755545903329449111356638098188607646852647556183728369766602880038839907466929939991072314892495435149156804679020610887018334952936000555192138118438469022017464136112119798634559860029320419997946639609413697723299021053866899504940181782825732291515885317731537116346475157275103688946876225125024187192102940977807777311737049954503398728395657664084642793242047963649884264279526750083817824300824044710142638928921464462633890316921635009035784916481770120731445264428338409367787182391471817967123541309113937005624554801507730970887887436848096732961011135464026401674408499454376577161891799734471433473165843184400920530628292411416150017266267232722131635243299410872004651556094395165463718185738004828348226781824204041099411495860891598126635563767098737144321618434244317866898132912564788384170412731434448306450142688337303398903311547958184480819878697545707692980672969657290535451990932687448939588915024811477264689854809451191611035038724807744765425470735338930281568896038615068591627327231716450628415561533493621684732019998088994783155185080560846971010030692071419307675753425867831101671563631498398945817537609385531182252607498480405885255165279169676691208573851816608891008997941405061261543353610169069956782829548995156345522068705707494217787118878863475019269069546755390526179540747702091228457979169293154070247354876104631956883203595268865511134962274951609238893955690582343076607313355702099473310366555672261273014064127545711918270825415961292192415313530871969462630686760392809257538411444441356933101552212098548388803968216245326436750365502324824863691339538104691424137692304351784392969269576391541579040183248783301722212066665214774530054978561563358752127925390360520087511597825968112681772311498134330615013807674992733694090458000951482419000466269641027140469997713535777916257044446057687067284843829417813149041312672922832112628143956103980160026698663542582530575236809881964115640455131385422896053052843332872361512670155980790118542585042861352078994195218943807162884428462091314367290898529029677681028715163995643613348664455445544407961067408854229636764894640830421866692724782317773731660812428310220862229283883278289422493771540581214989088289092225497298495412176089138135137245329147105637971533006851272880342753094687225911680848921395471909186910247619098905416518742524376511903646666155355658646848864297735041856275955181911655436545862684508344015525398162244439080195414974458034958159232750438655054426600242472675599805496638450771559870856195577039167748762941251230510183211651217264032527007619799038170952082026098751929683699714393876500421551668901569949744945199288957746979589040188930246428368294235494071965121802585225657513678331820895353409580288909655953228803564260685255992601801738326983195605414161032900149810282408490000952381976389123710561877369603377477090599439523903359070051327441173996627325423614857133544630121766800758148451965602928962769107703686861792514775495459889014636057745125991494792301136832531973770654367393991268061473068940034414244803296766168021646227566118835138711001138472106615096831283443766888708982631089169915226242008228587779972161657223724415153849606128071425424718054864801986419560446479682627604698789488162588808702915138541308114124483703122094842075466329347957275094614047369900450012311163885201600661609774253949930367603909189375363233643721955117903623713538174427099871889430777635889646734509795680225902511664009154855156205307479393174609520715339982384851505470213629033277996930800565027614562380418454144270004564694100127844319881167152475637968502304610587339435085382086878233369849282410278890441963747585028366594483038793266964246160380208544146691215490318846952421938492816353715993307173215209870027404380702022763140026298322037995227653084919808761396343962427556088137922382772341115482523568775767003222189587776919225846378316528305296090099559626616871675663829822314577441125788492069843474020013187008223555142511151647089009907173039374540500077958979552217474172889002353384028229618757415291109567373261504996902605657005501950047273188139731482604014621361431589025159028721260458520512199180147556775085068549375901846431663607960603638506127167048678583027631921183897168418661231692785832452174847833581650204098937021172638314280246973896454214755994910307107648110148680591530355961103072121640187708408672851062017887941192062512118262662060158987330977746286000564899390833260021724938132520875151618538110043103903745622400184940025777280616624853043627779633410509435869796576299934590722709427548432735742499555959571412615092376698889567411886084444256299056155802475276182619137692109605590114481566906287624088415664621156471856006558910554396771243788545039217135587225215609271096319817015300008043871628988016612301477466587362319472724857960212280398038968762336025188914083804239419334407295426504302069255753891641856143650619338478908862287928527057377968481402963605720394334282041552678077133219457865559705399325727727719567141902904638910637756908095603465184148064376431674143692812086059673374007330805377818546216356113125158684427643682690168476492202690005420314000629356108238804342294154879716880061806149935788934754254035974611281753151094860163006487876922242064341676510031040462222420951533400374220568564950834594470299785864653204447702916296144532043384789826850252859683151545087812410687617378208457387637474745189647164908994571241220104512801013426706322886262696760035398397380671379785679673582430483350764029516266859463815883448867929123223578202808297488302445312017142531551363714067836381592562288809938024568624081662542860773698462250478311108181626075906399790487429861188594670623901015403801741341166182478219180340252104305344477340794463029025009649874371206187853030187726275932011775438229382751737591533657166328659258142436633782215385195918606110525531673107664559492062833932697743806974287334447905862741696357714288925295646880739569959636230623749878571289444186677694426909862280405923977748188386048586500412306537229802399896190946492363810734768376684419425502998042045073472224692781208388054596232914607609342081428887693205732353055739087536687482619867971263471515169245218632621196477792443172676999275342813865074894961081788874630962664928093429073226052961071741188388640004638961230707516829972378979479773227599757078998068037145891255242555374407239686662598236797963917317630366080926481004585508787034744308951023122386926968750593397836397795616358135090247848751938161145526325113909067456454146392442731367780689733333994148129248421641143124435631041558518805533692914057266172740005225434338445245016848243730343278826496782648187640089579858013792247190492415524671725269094489045460359817890215097776081750072927080808434052722473344181755430769428534569803054331730103779800088996181911673485338408475070431678453838703232288333705276888934501917966694007915065619145425783694217167972468005730976112985359962799855255344820187181282684036289164886338909959932010756872728785030793279486735065292814513937934925090886367954716775731072021645506219038776707634369243294558014613145514492051009273546320165805283404929657273596843226346843297099974861373261184449118083510341875312316991157256548980544561635584901884845715413552440772020191629771798247758686360964062714058395466403765404570128262978756898174417831285237190556479939417243432923801086270686167579838757290921144705429478121805854022377528117042286382161245250302226273378957833341871378395589521185553249000170705545477574859026258882678807869830947756630679981826960702045918267017131471893700967831058703914552698298045523176810838311708926372295613478940328565698164603604791538568761829749225078035352387037493642468946898879255534900308701937951888992876415707432420975287549761691853656823481459610854515851222395932852222169962389971152074047949608228767676453483073385916662216034992882284309165954373912970599535091236858638427216474712941071081324306395363762993971560333501369193709672570752151511474867296331589552618867001143623315190273150768412117836854418392322879791829053914430410143421205410270757281644266191147983037680198086300653439226384886970461254305016896619407519705592476172896212850904258024042522284045479896994689262764539168611097268016985791592197609282839515544110287483957790456788544713812710129165443722099468263548098511069217369626839590292578765118519989487948819396460255519815440070234505364230317248936081797007119216954279810423374943117485683238410701867308809573070041438198987542559102119375733029673160084280971534321027805838051652166532398339188720412524981676011177800690639953752239220435141597755017655735133708393840162854859368189154837677436214342322973443230798141176714734945025040131159774143072508618999197388582351951090328680640425747272071941762640033985966942315025316747608901906412464172830734361785555946126562371014081183249850273328093005244292846235469811546560960810419373081067369395011432480411817045055612561492874157998411749129351655295265018535157457214172130334943255358692236898556472043565632583023577249303800704843690377030846003284931485595515581577865489229111330110798256242687387343421296340308427448826140622885979175355420102049425105509238352473105452183211385038415517189899726363656351694118251586242274952941615371125553067735936510448126070623916592764440602668158772927172013259834871108069850486009580511110833305113644416299967024009141661456216439095654230730947840669778968787599492695808356611896637188746387570925229773428828162068923110809453517908740016368026471796298587759313650080500559820343278913852112138702281350613674109404651757719454242255356126088733491700404276589376890288559724724338770853626528556181385670178901733173804086986758296141637277913687966448314606653693078552141101053645821379473570251925012839234978211782695110510502902570487605894669983724379019965977069431688487695160549146922057209110829764008432190248682645240313011029773013111867527394471647778514574475701956314837440982077406659787456857623201134441561471199542471369366385370304586971006951843687760756037693055936725361247281122296750025588269103241559637674940971344163088500813813184861794374966914829504862639627488177288164243496686985892640973606504920033199818691203523534221021237115290040328472787888296246963178004104900226065131937788076745357607281960113716999394114573049676670707489335767656014120908003865095827751034084303510778478350573883939135161357852235227081345278887388435267799739477621131071796087238046790910721999584148723341832357385453073566329960566715855664124794519160307580993583554316075974571494927000379928866785119967913006239927276786554476094720939236699228890519254499008355809031980356256067557578406916778975213433093915851653694895490099448569457867261693657746806016755402554875510065714981254339993345989633517441268090346538239473942246593961381574102667269751785817990738615938134486179757227292038777347586766521125575209789271540973640150195640882266006752779435304028230733191442267389100337667935191215572981580563748275985058670005347117335082420739235400345012311199438188710192787711624087836091703626706100531302018310963342191072142056018742711123589565810539652306416334776258679998164316497170949193538578919723758459189335979106583999590800150377985556646022227923972139862999479638720182081382388767516452656475715319482148624612451274744464386627039844391356339664287209220004779564837953839854775613135666320548894367437034581568034470840789664777825977394270389960941662059738747762692044854198205159120269089723207921851143234775908987860186191963378101241685872934421209842581539803876203803755583917841446014875605406736239714377396036261606479384059648982922726220661198282414208671058368878444377263405592075527062593012923833381892792166889181117067310737275941953920698778504509797617788508299289112047072965815867562356309791653850043583531108289634855415398895997476330183769198545145193730574132269903887248935059294216863744149838696939965165285100495832428334678352601257706560176497057027024797659056297060194871950155983777371533165790674039501545137226440469953407636558582563969555373096020010112974056613014145054240383747371703334562227587182479592597620645799837729175078094960498765370016976557811961915614298383898312974621700252327857870959581913840454261492992377489702825069921339422103380401213763767358471462234228862663870057579302073617844237261998192804189450503245322861153642284404788976035391047661665239056481861693913266217744762084271184348174558989249126908512494347464262149747800739286634588620706199807636678390669182572728863945980129330971714422721604815811917931022418581374772015313514388543151604209667984037888296383300920571503595383691747172789411223161682327044798301014131025177775348435845380237870525294463932998472255487231620305235712412219731052094667087846926556365471080410599275131754199601668412820915564388832737345267108665400896030779108031007019781625170651914197527196160587075529714028766299934855054051511859683653725705393768805262560624443721004902411732738623530530796884361421273596119018825805501902490470854081627698342074385388943357611569431836850420672696927975249096973624385191064780642953954692280174579291304411126752732623605710576600153514183601128655809751920976979223914190022115009391167603944766213147767268138065874789188041005176110313981151644018823125831413650609074368447805728901524600201381593607101476578216474371801770190891420404459112660976246236971454758315250747773106337637486164499040040619611673175602170727636249398364860201812039271790802579515650895083052489518959937054878445697369617560510299146376123822939913173448226700237146329618896254335838123833007616601991093959852733552326099472480599221785402088049910183872981841653397542958313708106089256238183108769380577365894789536595223156603994837724949138815426624272395356676655909382256329971058846546774631600535081378821779805467377992462401749225527993529785815271267684442271711347739810197690140611581874304972959916515598641640517599689823342846560542660773342013163431928626594552373226063921725074519603488251320606025837486978130052983404112014740790596299588218354622760113848590618420897851931818343743371553357145636327886761945495436038920646377178929323779814074249185497352436993417320433661513544739963118241837695081706101766069360967391167305780308894853184231015037998499921267168199287059530338174310189901329931097804844394540390225163073074095567498741636528816130247091532128657782148395690686303616497169585495595009714834609461114740638190754436999244088052758837662056379170210943036455037263205690128604874566475526071804699329819518495227405357992988141907324023860656759095221598343993749262092864677367379417604718826056810078953784579068026475097822614425872114791533825624724134595175427653355101646825287643671111967711591942211796123316535704303637771345421502861681845143784452709440228797989204383643365010658619726581234851514094525385038820601795608565999803882470630533094234885885431101756816170936863930691515601540804118607136658359918967722691250715122305202516685164230389183580186277356978957761110565942064199847246043214036489329079961621994456851636598525852877077675840149374390929094098667062289020897603438920810780274284674307880921691140471757649726422963011352326733601729535819565345903106282854741837508921160629621543888748051014269115055810455171071587293421758930599664325116614827327647127731426618835081339581265579816387353697210228258087654450865059098118830991751145903055026552380025133767071528969716698341530281985448935715704787792589029123969532958777300423308702243910732941711269074038408698613129488374931570627431329198559049099273219473111989444727619275186496294691694186137237015424639970878420226613947070285978666616907495847717704424702519126404471918050427025148544813605553419226910681677201605279250918594366953190609542246608787140761781983999138761654347919529109500983781670784458998053765534435955051215854683919894169346551140734505380130996469775837460871525806941933038554652439041694543942753491737435871294419647938449874953614836916616109164400015447379345414984031812698770082295625603430348038376198494437054699863580596470316409815008370780330990856538832761233550605911235251147129518245758042656994764592434504400942784421564139479978373078067992902337510602730944023263695199897551367048514756439095114121805834101804532513434622376080465464354041941617090877063263406464382221716436756601368312891779448379325266281384092497341806261521062459767712266758924805344086259975491429529804889332311399118867989446870220368140704295948243003350048569145690302217592866246295543912196368895866696658526434078970277114670051121550214530452334309157218884205283504724225412259042790051884684412219301408768958865092598407736542998020580520899148363545812088805109847447960343547953422119851967467043882120262004587395614846093552827599869223932816631652123143594764882467143612935566662699620358017753030889998791703264423792722728435610417594992617279098970557978786156524474815558318861305763594056886071843508022312219521451663940905323600494852152759633137693811632778907976179186032423800763500381580978014478051075167711322325027912322010425968696000577285578200971594576988124659892679252799428787632014240992392917922840172243600395815710280705691843324995531850560977897162269898385668497766548658446362058075921699411220210585379939365401775902251551204958887672503433023163698686974177905754762902430655053814007419731861312571173199542670876966372126881148150732132041833095272074042349223384404245918749637396768041119595425014300685997792272808339056527459391472927998663470692475151087765892770068693073150943585358286285600432580074921390584387175564588427034555001154857135309571668140071550136004174311608034398395761149815104675004844110288273182322835525632657475068439542853157586010815396031757516568177425237955056611764374220696059322681708650398534726080773183210504022930881456691955300741394245702784200841311757177215757015100998205411092015763342933670713050796091468773880963485773960523772897869018406067696042561803874750830030129430367672518379170463533424449037388522881578504755919425106778119574150843553436567887494349990570497195536707638150218352893614813046553681021316650003783747042943579062546692556518451785901149442404774008974012085956143104865863768926751546709562578559248245330421365954836631437375941457084874564205878628829856290601234757583310932669764749698057777549450138434809651181107561532920937179936593395539428047403536863752665912812168386011663479375715288681794297093657135319971231198532462557271002761168363543040713891286728267307494751558618200373637373037235857246277401001032115958086350071051699439989831458507083187549655168465328376138155194613223664256955429057916120652356290197034577467219304863490792568753013087214853617562067547911156308752151058089117777901110523568498628129989443702094246325153538308445256516378485574578723543880909916090473573097044086218964813937263703058847246788014121054548162428567540946592394602372868787123627796299617354528230187870659908705938508739013861484871110979815959010130163303935856828490526773357921054890275399327691168138017252926993101994382853198272433401159527573571073385916354028269560182177812551978782833358641145741712668088026562009310500191993208228055029227779893323591263020910430891849694503633796726517540546053719615414674648948516854592328135404418026066040000605416146206897388314226781480261228975388248040296389354515239342891059205443941745701678532486866144458281108341860144405557059496153512162151473072813515600728131510634528951524679779174454226157466784253623050682220441745156291371151022230375405177621784768148880468831688623085571122770977640459277888802901782285211523595738610344436541009095597250797765192512724089649882604060661632795757979893850426374464223136163808247960336029789987504029507464706729197398921279803369099674263864943664041243860027871036960848711786395127102611933680872022056807976001857809172640602141812389556733902432494835454869111332403422075219633303454095441739153789518690118936561459395651224416928365137334155828333146502807281965300261402377059495681154053817870469806920750427986718899421781450938195107807486215352416725823876784482610162251458765053363947852007278143125870917528269286328008604719966541749471007134601287232746363260719646725877130941633412965784861634098693269059304440902774753294154904124655792003353494413940090311022830021878903770062618427126767646628627985443867526798287689145513877452597561626576444481475740686716929352901172094861215309490476216888396234936531250366240427842121833831712754842610546992755967811093250374509505070833166669210886996943215865460246729307806568887516933728969046381231691133484785278526526830823923616010639661404329221291537519050276345118257649484011767810683665400158564679761585870440666967292976779371403557572216542089993993782321747131173670932147206904623594597237074849207339407990533058058711786934085862919938159117039591653017815246758914593076245893665829964782168430687598706433105141335254221922918770274849015078359226187568438212294098582569389573612064271749280396688878880904280674661743329586433307652019227134767537156356053048939021480452678918882741629936326120197161469358588642320211766564163679313170089148663349920467997258289774982698223700185734345152640240760314722305792274305146109148846600180383024834020877199766299908160894601406863733635055012677702068067449057382232207391089851182139594595174118846324388972895139997282293875850258483197324737486812888229614756708938796850890788406041161329477828547101191590855407844510556016931045820362011167227049210997186226513157486156122781201740495738305059319203657016860811080658835670343943174177253094915608360340239095902240544755220101751453944888354068882018623765943567912641481178603332130040419518213336469476817680883833099661941929475520774962421905545756746582211453685945125192405314510981836799593770413811340542985586431461882845896540032696833036405801773086945721021105004942086621420068970171747914257154073232839294583905441170835608307216309175998134148619680117441409846821653612373488989461014450868683130297069257176221591428403412223384357195496212520415811876078382102963986383269410443102328542414980175837938329869820336009004065475278310698928448215247362197745498747169886774539260059958891697949699098119053423833797404659325289693024494762427240351459590191738734088376041978884293477656461731301706583610070161314145953069678353596080553884833842925842456397970163148058737639646130136838768003507358182890521284510401016655269428169638320881682766353521733370969092548437099344099375424740793559634511168033238696500817194020863198970353395366977670245471836688436904376906574313174459207094083000506654169021351445118549320190577873475242998036271414424146537442955169907940613661356676996773540591381422692316295627425364732313409362445770917643790177750842144036730614827515823612172231766347920857713787302656832775733261838808006031408223279864291978035135679371182940984949389666667235186550257664585650389668674501901770955951706646900038886260909285133227549987740955684021731358571105038853024219690754096433340930302657704667869075033485856349971158488387519374094414977097222108526411177607276881135866430885010093270724218943903731392001846133951975842688570377743017687331701316178875201952555242653355209282660295876628354744864407816517502583992414496711560562657299157042187627087479717413100499769516060685715468734749313626730893153886330442448481202439706510045764907457060982675438523803665540766341992969037004100763269364650919358753754886042985404625495669048427490827043376251188418211573376667784066941962347669143314935807356459175566785498553535091245779795641307313050161397983020429564570490827503328616409244565917740959687116232438719713823657226704780448983170552862937122941528349942290571673480847784054577495234843872818736907917608276123979947498541560081333115281924614585404007073235922772877749859021433647196577490034382127460753081658014466385395781020750732522267069286426737408027284751567956371390943877166838292382458472309421813924741665054794480514004942058936077996443688518214384687771481828525424261670098191146641179781640608231166051488247528032270218683281752268320884668252610007203407889758602351034086708973991589791753083250965428772508710432708008099347652601329888847926374978976233410403444698277255111159299788929246071375092435081496924386529424512630445479598599483860287098852458293646515396040055821404024966364990585231921643727841083584267720731975494631609107215139134852306351731576498620664127766601906542847422976495803573499338650479497716439910108817499339673834532082359122450768732074655319962837757054704264677938377950236008704899120868646534027381938451601199095761313179866531410128292013794062357266369797881705152104909489423341227756709842954093019479670326385280888413511267836767959829108622536900396847895642656173612118032630626435338064545513264191560151640371744814362364638576758954461561640253765831450844307449028211092497762185543111273575958257879720773332726081961312272545723258113621597644066571553452752159880961386051641389072101268367185893331981008233398187891684283597287652031238212643833735032710662395542699789940767326694685989239165774485304997653810557310015603966094885939589780916513296601409511825357579846518896542303680139443203367099297575577522556001345859722977393409931402711106493105032753234451751018768019829889596112560984192026896581873664049757615451166231283438313044422108947067038278998610828511768182570984991233454466356588288701722990019583716601503871512333511731119916701589476679760149556790433474763335954465684736572929966329801484249810645138876313139466140499112616865853207064760997987287210592772012251273350866863183949043356303885098377535749899538137177952733601755873217627579945489971614843108472597902339298121702689746653969261779903328740154334887853376892758190012035774014463409074552128368735741102365915100475720433080724412468416098231375356915713238285326257563114734582530761109224500022500175081240701122091061870329740990626718315101595592592461549464436702722502907386493842984795684331835758285885484784257063595429931812933376281268115777902770218653770023669809760125639230604289758923925999607178679055153639419685625849303817295193296260838602201054346516896778407598969239667006063371066088023487908570380604323243315970721249563057632121109795004090143570695038077474617493250971152098083246228969436508482352437965648958245570343756540919421150443404488469286748598884055599731300519774505794619565830887674474984338175436364610771906708557121250213351239659834661924616219900813562173600260279974936505216281279615847488931669365098117542423785589387721215758201428498732817126366951008250176510991533464303441819768504981975728976134713697176379594303309103573085361552286856199840763872954294716767722364955706188985135262550108048422829978397238617677805903639199514413300386913416201209947459083146062990735218486384202171059937973871477332217485323002250559185627367538590426316354018197229507964995565652306115468276390543005708303474483199669182968074675819300975121293299592024102393883182235286969600470288570321087805824044034173602657863919839519783244829934501444129279558722917361952715795345479913663665567953928497765307195383880556315400157013397924856697193307225319134599343279420210678237082795020834573305155250299198357775477062664129488164913585279432284568044443079836339991536996836876033475660321534925956018116433415532452099740884971142025431712303225120389294168869066822663909513579416227535693820432300997423546687697755463315426241783501058808013010663927605106414771816226091691882793430741996912513411589286424306294840339820359856399333113564119154350846450405452647902209891182086124668452353228827899077932580972064196900348292709323444330918863054829743341606049476369574365592122063252041931600270477052443885925292848989994324275228447926259267741691123124202615464050240493830363032713536417766499852226608164575238473014305425934103903908106345234101948478080713840687577556441521773794903588165034014074417659529057883804086464264658382441123386858678972961526992871006700747996460525849810374812423692274386026823601422514307302693135993603732253349381381879048851307817217285628535170124445425945349692120532002746599786856731377924606339307077864459240884657759065318601308009365229517377377819193606150936394904533512013990126924706983796943163836027422915735778526790849605909884099403673211058214970370471435921696790209971525072476797639373296367398126399261149717610020647954312173182584157287350077103568153231158461387851247650298963857855588717353446870584590023077920934394765141983947040587448895129066680605902432460903996372659392864539736721548259902499623483025940604434477334316997111501205972608922634823714439857599490966109944424413222023118716638526519037756068215434401240459468950119720870516892948216044764110590788992823240747103729360120695540789628027596143054477425598445482953094888967666691601244435584125410644566200731473982926194636631042275836568705199909970014750329929179101024695267055701913416197257088571851692345925348126408694393843129725252431322550822345155761897365628213127056017805087907783330131523676910132655572749712418695233801440848138783202701946026903847461316833273478544361939859438179338830841032320838428578302916385908021161320173802656233975489002689673539048291405018022244677704770242193615795499752693648256049223845062877352286698559678680010210288405281694024500045294357398303757676428233405703644063162619135676645120043469512559484294808969769783945979994008908422069858127243703538042610153823636632776702486295324699509388101574911661158284346086817559456395211564623116614714181473392362786406334243003261219497926602271141128647843314410993321384931729135541119406521316901967691369606112469970203974153730309212216651017825836949769796005311090359440665621340366597751509894985597202878747391740644977970517974688332578051367415769010686511780596846067209901339422524533261056861747526537975809175343708414843974343561742227154184515595598243625337265272082073085765070273396701076144183056199774349752866576839498522648995006085764241997134412722259079669282837266340213111453781732784018389291447789474391988661230225912753878753690160397294230548731581520120220772148275277955901912610926857359720346371268610234392602693323451334620586496345898209450708881213394919588133648830803156339984266843605034976020184434212518061366249549261490595598322177106276429600553845182038024950246401271040060323620068605363976317259219735586830595825317258225097754605836415555738129554267440724983884161052249648193899590429192710837983326529725137313287451946667400914667781972018439677474268285152744862301755156156722055786106321512489691454343017029773728690535388181991165919039892388667128969999784515267822977067196049377605336875891753895987918317681516110069732506193943064493788084991541302259347648757767627321608537167388043250843012756790438040881589427646141912412335793459948288220293939515864155546969585280362137929881020905004420206757205721472187971859661124515843406247828051551634947514269307753352064946789822049200734196897057463597675357911981442190651228985634997605488817160564923429227227014887664418336717877860263586737221743953323329970596537405694260882609401727135761247038052897253927749944983514725952181382511087037870211206420868428722674242375305430807169673902200857174656994947856243091717030026531998729833128570977175959799834172044252962690759728348110864102132761633923721855569079528531922487306722248633739220697371731157979710137982629265791959612136755652789662929360521337275076985761731133968859461587126737310409637742812356277141848841421598092033324169661174606920140264111216659187946380183690997076971140818734588684446560603476752691329343251121883126509292795721098911602158445296554249595772403297009839826688908292798575337897367480245630615845920441252980436573151531048862977766108653399512356470376768271562641845509895841929564831347661335242450999872806762327636638776836807438750125279047527414232073950708480158511855945674074343144399867054660366445809186640570587719561041205463337498690105897897456940405485729800830613426057001020109233671833174573308483344875287327129442067959302435786546139259455879981164875290244068548154716590129318256711680007702836362992169314133313200495849616095283695754072436196123304848188070998340646507584534034436949730418404831188223736766190193524406611518288446266471241910203925282630373887252584250652196183050968339950527426626503346091960594686979574120307093147114869598822238084346547519937729418007734070416271241139120214661019968121603658748559446215288868455467840216641659088967217428822287766186946280965312269606688993008945707069625411215419053937703167565791671182944767639761231406097222029815703893563030404761854638563844594285447697942705647798057329138906971638333677117867252558337504227743357266895194115667192514553396759390606712428354755014294910984658448251278157086962423568712860855961385655968907058474327219570638700461669384406365620726632573012767668300149229839635936011146331117976687886510490497443251185212672242748591646976648092857756764126165775446881113277102707906118922568568981601880497837127805413470715649317605807811450295058796394369974576861699034621642577374525339763746576732326445444709256017490405742999418656475735021308414665639626006920083896756520119503652994507923086483211449015621955044299302394209900182773366480637657588775105615832646700960829705703820531998753792835755778779090680765769324621323062108388256867339762182014378895955337726522932343340402570019618483894736315412944039808347137260129135214373849859426612925399296962291842422493063959392182208948340556223889591659885857591166865135784923716600317215623275512836268285433099448164265712832531908053331537135949778586083401983278105278322538923081520691142459513302955879414631036133751632395323229269152183863794150303915110447777078577733762577359663876503436500134174026312689414250572368744775734615922089541718792526579324604796290708768905911496616967429821600159419572260301541327523095941246376706852427894200326179199700050475596976406013951736880279436875850420685193013664706958090869132726756044574784222161960764836678617994572268381643909292802544263013892474537987379958512891199056823736380517844061686806490185024580640912200222371764473583443438305498292759554057425572529485149375835630273251559194242682723937251690253852582101577285504826876385477327739588367886233949658814174893713276505450582010692896524008427430964572324362185610253137630329825700860298752185720074776747443571701271609889072145795695070400797100014239240206123587219228224659415731498594416140162041673478048499590048865002026060059375840051782678291573006236383897068520036302568572014421444680693231877505391361990468339414392990915074836888542626969852846728762379860437395440177852362953004741648389404932495329520134645146739647558126014936790803250814172318495713628630581003141129242193613882933048942475192714215482837730361060430633799220311784816723938029127674971652381665594500505544648801486880737844001775606353369510200488882967033549266901327613657335893228611931450594722837148451067283246295871569176633362994461765568292785343352153993505805425045059819505087199262667013233800733144219869167080441027277009621319463409985432636086449939237026249958983825984502368752438588412730762395089817559405687603542257706943346576676806084029461310244418131346452223256420207350790471179842171288961741464495380478703446992957394780438140920096338201013901938353505436580020982544897871905726062524795736276743509511775946462088113959317187427934284786154397823830060386174827309305247888785717291236762202833104489205163222617527560533724886878058686438300481638610778072946977537533942795705312071195447008959924668882952884606976614737361947735319665449367587581049420497050329982708623503355609648817361539106603489462495956913760193218258184258118831388215052330955293053604511654377522834801503252408964847378565033156244727231725839509244182350039405166202610778530551753678205348244270480191839175906980561526325925131374825097000318526540405920652229469577004095094355766121543808860466423462846780936574120405596333172600674399009055654007777021685279131800891037136429652433078527006497868130138965999156073478042363269156253053293744496345218733757204906941611132517490356180444742274718336831189770452719034076374838772664671873532774308320989857968358732273462008313870038257124808446529351578422914460893171775752001566325361890305114767301624576787214677091028838548217452757328681767678750251854805058634239950345811372976964932061987150018897515100615033817553759273915606912504018566122323698835109135190092800261570980860645415954084364381249372928888554423414949572730628604255881517673453652831789015492612436173970176299232769385693863365932061838407315111106799620053216293570494518101785562645165142376939309985406121328434087411460390313542003919771817087072500872107830450960835430448960120662080870705846784129518194824915714233801693952982143818410463161463624843796066399001339081024047110006246380571384467677787215268677545808531729172462692650755771838378706356668591005594028199036739687895677945676365841651933526178273342629201505848082304360207005831782868181918073447093410057145803094530759953212227670676224861214034959421394941928185254976992933406982386285643977974404106960995606300296601252931210663742150076536838617287776514638284414097552714708334887536258630003936439578311716641572069672264599317707631575678061758974666332966569532271198516280268828907501285905336737006389817411134426586816420722835091580564850438874504275538829553266689403689116572266259304707248574044815090053851393942218878179603959559616954419800065442578850563835816220305787032750544087263546727260874238616648375790424366120292692832283050964401338283267515111981946272572350050610812767901132591283946359710583734990280800798832779843981958487999895715136025176181765100356688682720427857155205006643777487403542405937157376064758158664614376853096677563500235244516923853007964796160926321424244391499237205947515193356250276458372712759023617698250724003683178954977537674731405027317246218403676890356770012873969250465710838063470565213448856185343731475147984713498547218394007945268761208256055938935022328456175534732957127565802790803860562559403984825880930814077188313657512633587070093176769932673179759818171458048514116671624032454553715469149604184509004320384144321804448214731740922644061169901379346639977118440602619380893488731686070594185953039785232545215473904694160631888907666104817318806395332178629932362291741928160549406346279136113569456083430870651742869889727325340089377718870242159001068561794224220787304621692040009810938432208669804816033476136945351616076527015698792389712028322487773402716970265232088789251667154054601247282060761158903398516628415158638293756309585883691617543353447998109596289647900562500476723319486998407567114777528626364629536075341769033551398965390605817896289828194294420700261744547847502684212830480611534472972028260366597684055137124434117656154399148215321757271700980295920887228914593671243645790937682057387697509064512260324073699040879890101690611702381589486233327717040795315534262300026655656072019418784550436107640987446771394986079401585105212804725048510537880501802356286566248285263150469530647543254356219329410781285170027151412471029310956098768547749402473334848989225978374743190582869845738274410275844323396447069976699561955948392559603127498365440065989540339001265361188281061380688121334503180345862501759195260054151957819479188767001775599847235601043284821263967624302148638748668117715684632926332171873999925761782121528973073912662350805030742367736372105739952942181960243044849440963969186733111447768867834116523551298833532327195754713816414227799586850149256748701240085262434037166379021405895402469395601561536055679862519597575201382825989817073417298994612962471133415832798949888155126597479324783546042221862609239198975914691481660181013473652469927208043958416470621490471353453664102111631669713747340101589617707925313365275053607186194609050680336589582206449347830615389557099205951353805627393035007937039161445644414875965639310239482729289912267043303187393196998420258460050827639182776642858652124970004669360187795563762685320822397577528492900711533219020974711967492259458802144229569162677662769668432599343275431105531783507762408578178763373248744344249138192761871265724637226558705149677211810662480177502325011083483542490364007608460605141177202358878658988731981267402243271409251797178921421958154317515460092706900279869033869675060340115052675490118272521608789417582002582534795758211890915308435529600423427671904728436392584081704955913999657052167405149442555032880109791960284229542403067057313563816111821403960910920954760417287825981218113514006548230248603717020594740088035498855556773789655539252075070357254408574475165104381746334757082736098369729228326103910180610400993282386677765017285094098686874936116619530632114254113619802641021146409483690958543652744932298101969378602168172242518592508281055800567286319050369238485955852893422402161207219579030892496822108388951755820800474791205569204938386481093435947938016824050741339305743680892253339687715973063857769275609899732656228939050892792060424266791446680754826443027587540065919851224057585709272658595228090682756032326936005083420958975667314102526820899019669689665842226205344294503712965031302891157453224847575148176659599581114061669848835461150531458105240443395133484165129104221862038423896945819694684565712894600252240617640532975927926204450399367410230725633372313378108314147244607201826537168269250330466076362826007161795679312088128428782527007289233693485969042807714685023047021767535053083350871775995102422870956918049654599297801702277108531655138574122883860001493499577548963875951596141111970033191862619376551315201306804718775685348063447250582025982068461645236420626025903772083098841211436855961526113491436190312654963545798892774211057732632323326421292758531920474262575559465658638882955068706353086500920579668604477500782321293754065419179133400205206217944263328396092568446869135397353099016863007704324723174439429222904339427283125182956148176680104870617191729366269555632155690333931511957970552373081640134601310860700817694858862160363791550289286141731712381636088198063363183954910471435564076824582789430663298330664696110344178494254844559968520798820806307829649717829612889011771552581840882376001321136235134816820544670276390021931264885940910611204564651844312474644116647587478170022566913161337611646266102181569251024138263926588039695692210505038695016261660517455342948349275212616498697066762417024299961990521303786700998074535376659106774133142989663610450807401934129160851778335259740334218064376778874657310574780263877898629417169421107994820744370604464323375585382151117998362915658206129134144560436871342380181924361300828791277185919079705088529781186720850609991131952142829477115766496898893823535837445617741731523630003281706707119303990387521913551040571101863773069123422928247810718889046232487797089572735310961467738185518064633169945032805283972715066751563670480606884643817729552438799579676902524279727519010228162576884755961265891060011763398707274311316609670405394749890000496046242320710903413669724134601366015930585945101303933532371433093494924606579376406213454523853793592676604919726976700687360905045058167094465099198328996256999510843914294169461176575024894904850222038204482005198234519652361346945367409504616552595433670708475551460285437423076389601059898043816707205334235311098211561795975070928537808159658278366766459709939601868081558126197479477812567756377953296210049875890247572738001127279889984884353180861492016029985817927983456334263050346731085330355073708055102135909679458367028129448770208957330945727802123205925248064597225660744065550633368615161402944544239745125954094436544976165860036528831341156406686190472083836218262009728453602786432502464018736749053553526244641048022239549625966710426080464473596240316037042390377173285933237841405846371377250691586908819058085220518109914079138161674803404055063043674046823350969271330358855271407514424038963862487337103614702636434563541896541202298538846063057757966725371444506492454195765829403639517787129679487509562635180831788986359789259246481365199786146319517730348231940539452364252411917899642432441459115528716105696969603896793463923148023100051015019841433929058199376226887147103381098301552431509284663562528030204474213972021288333811001491185692144588541366325757625902366671555345040805769492819756920809910637157102833121553791573837505636971002808372108299587128511576488856117805667620116686799190703674980921160547501953844286373056556031651649119460336658438972982417356981026308036580216597704958232770374510373185620622597564605866311364207612197051789620946925962234143040344259088617147036930123950361990349465317462612506364461917943445753400718813651286217640684064043338798238388344645281950398276077798417797244665352726396704725500697334443882753835973402535357902024802056378720121493985632213462310240234298477480419433057206684993147843861172060961609851252761688256568535189487872349581272172576944411343472050536336654548159881730973484917615693491130282579244989287108079997227706451783334278909108586412123878890414440408140487072990846709212506753923847685578036534638628281798754917183168838432750898690424739371291483952422152323189574587247822821201860307089624541649902002822796600642147389221265940876547506703894494131306948104468269708822448628874552739319425696477969921570870466980936320402830828467466751496382643913273187009548241827743840123152201207132394667937582264070696559454030703015926592731951983972087549902529527866643565737919927974821318021238765660061005307420595664552923991543316652814924890292829712407459260549434004629059321685987616838692451725208724520650244745585027202748222742507420174973354587847001322177120443241604552810365660046977216151107699583039458774392714221438098443547755088724106151684667276296369927542629444872329094503382885246825312400233496016400364783875438317631150665417738933301067692284929409850359857567908362033016200913654838946842329686570673298526468401292104156638263922712216651959537197981891101451764209631710111504280964870488148545562229522704654252541995889445602759534894996055487169133531840757801781804439507915727132235159886677892454673020821739524745321005862314041653297221870094135438022199266480010611349168851936582724375967953211972119707616292863919023145931335494509082487696830399709722951542997890473926718810415586033157709549951019757431232803729213828714508281084508793926592488210396934701896579703715016437191981032581188043313388168044989261258711514430856915903888665111348442899059228555381623401355916638939467321154909181536173494491261513030846954211131343835031785475022491266759629943640911954558967425540952118903814232690001193824350279744957059759841035340473933352732775867436566656221587535039805334495974002301758758645988927852533748570402906811260304776933672686015458746020939914711235121728276203362796041727661128416610174919457214687490170148576603844803916023962103924524414205263502760027138931254996900929615253866923071020749133743193348479849267263004656185106227059599544386377706316312327548978631281327930495494578209222436059230078725477898174090790147158068074739363068833133414512553488703514716281670458506269014242020937710319055436425517385568698967370570561820873549832734794121378875298642120369896134767733511913382883495086117318674852308914938717435673853948691458470654170631644740665679336497511341066287986479068150302760479044762837038944779725128126592570375502819964945375236028732183377191817030475694559582947187519429731426386780265151860736798984900741870264666459997750155993958590986505530958496191702334455507589257033751364392458787611139067272671105552702133002001145640298076157415066388772200450876857396516799239722882395359812051886462628279009435874577435867811132111999074639388635747846356301928098095790922595663662833024452729734988105778894157703122376187276461304198960387923586676603139616075771977483240003283431522023998466719122278120972912951820410679899658786212629518335184311284777509790446100275327764433769510433587296521061013311210527623349830526783181786494197068132984761490258642915552984662740066072391605817505885536799391746458654211809916675499902486657674681199507382049020350756008256137477065496987856944991076065741433851758971453537694831834975967511191739786291587971998845959554054960898678448771348403937187777664167205457595852273966933834534562859965766697945494133545051736595742066666398130534666738154811586717753432336444251744504343024875468119689543019888191394169171505484595664894756088545311406592276675045131187496830969825015791481598616868096687257208344561817289317882260594226821976881873063069583969370202353498954529775570020819805608737293281174691467621438590223877222903471554756773917543468465813120894994010930490988549694429998676701541689023111512347809441135444059460381924883418942285659613315636853244049818704850089416909363556186522983955753765176197157219154677767853789311790850254130086076501609346885701867491016929116498365333519655028287048413752777692520967476317748783919955086622433755111317834438018078730675255193214965093933704164775882218916373529309391270402389956143725296810275288052402948632312873637692987393994146064457618279270141333419460783031879901055842997882124255153044838786130655115885555783958226847069155162144599131521225301261393884905069949308763399567530491637774036615940721042077426755751116125039798747858723763493342831654688669920772734625396691973158591121879712661232180577279841030320570423645855901712183835624707230941211913226461074178388406054020020943654886076184293109370182187972823179247862657513232319286750860295498285084465348123192380717298015309445986219792354414301558805265764931529956869670076248944871955686581915210887220455731258609542448448933139464614124554893959819139674025566431597027815292890387654252793546439442325831986784449351430818237470233932893386538555664317592186602073379188390982623554964158701715444862391091635576250842506652265847736592526880806733722128056997065165061853699225627220014897137316392331090648257692602096504850955964250861632936632885151600036932552521589626254597481740014570448575711991572412740642436092275303611523777455694935656529936389874863529307573162098666146283055297081927898688569764619780432247340080270910953669291541135504011533217569050555752305174473259958294634631836312471979043807892518243666609574494650677709930186070954521188006803866523453565242495982336044155666146705472510644227591064506856528441680328070291240789947000018790056289180914429251467362144380092684347522403552491211707949135954463808834939970790495704669996375573714323671353359726343008350982735731534475266541194955735935367200725887517934983599809224699079952737330826755266211470889841391124914410584768050611635894582498274914565457331595788151308988302093047644046902324539947171585244860618294944622184501192913339911957554667784508887072824507262291853328280286067756015877181196153351853158312719788848054443430832472231618380386317645003013810538245623139399027449823367784503789816121301805866034800316983062515685452849880560012552092036135223607553782719866500040673382453905455304219032843380884312502356757812439389331696308456657155336133966708368577954157805726220881681605293222063705636941454650522332819621212121233196278947082235749342873092481496108564050558366505595767068297788399240707619592872845475386444523706299989656525050164483223609105259460574929372051611184886856199336219055196169576611242569419647297587687320171525030635237273282092010694336349323002081017032981237835369517517814421591813830428519690139235277919217706634145629883502008337802589723983400729322615736530611572961077413343576410457221992534364131455849000446717547055903171562062311293342733463477125372618222165063966191290615384237953499228106207195911333010965652554680267602063621011074774582725958723916429369251610691656332777353883085229588644190663639275668495549331094282631188788302530975840048346796021736810981480865436476348737439622517989362766845071237875401462170078806011897331777290626375786909141880318056546057693125349999669210641795348764742121118180062768261375277307998117800727259119785712515245762467894984476645679818557266672406459722771930079432859451699150024865988662817042401320257840990492053206351407080295803426419558889587006930038286143316701888754811758816984655437223729138038171865781783654923520577747465849996579846990023604136757329067397088389055863678198958907526205603986576152642770771587547175504008428470878937928625507895463802137774249757990700693999376163199789723573048052073682078120932776653922174280667960789565865472927142069607787774346429231577566698805885918502334309217777963726139000148748757289846915510085462429573864251074874563431323879732112797809467484033537096966525825902518513162754062989411193244984337350328439661571514888503753903635053759058948300714785416124004106099725418898857230933143586951438140442332292530493736311654006505795129835828608298579710657073603004243339707315671227564886082917318769212430355967487453072468667705108683480869286942025525921504402878857499466620202761445105638709482639348575698952899437785028611678928330159469931979417412025264454646477563628056314350417864861419398982276873629900717922645102533170472927151367129627267233778721065188040777821961817200068667289563508002319834417915693343125543936807018073425573788307785800712402156806188622202431530992011528580740205776192064718775192649636088047683967479899067232366891485615031292455794487580107306007598680067614319278619261701203463557690995308107555132382483843279464530141280266802702495145140402985332038113584751704275502173620774137333217824025393167479652940409662101076318647510050379265278025077066169892764705256918711258637020638416435107567951316316392869020969676544862308110261845583607448691824839654741189557673778255607462969732658156735125690956096467535974681392512113195678783644738143747375818689731938908458857830076020112476082620181956087965923933972348300298759121462683234435428812968965736003068742525381805650245417796010882266863589725805847821891350901087877487612185105648484869555698193457241810324795183065103879426954992055341032919500211287221598466486839967244889038370429368304147524312230648352330206224235674577618677896458915160740063721664150354991711715092685463277856184490790265255570474536101359783088252445045560392362739650233209142868035301420357865833269491490138244178086283487119592241338248829214370851617679241148451721736986434800174522750546167581861193811657316015416138113829073866668088874122930356055842192328517504776825486923467253728890907192945864878746611869206238199821967669918869060709350996170089302588560690609596809792201124246286665146478683484422150362376503537694949797390268456737737636095412210925430450728876194054327752824904013513740708737821571133040443663275206927077928225138354555365698423556214596803875237007170912332332956011713455257336375584729656294380987080624785954751117420467069289984711485659177716321015632243130030517789715139765382693907057443082672288792309234158698088540403048906252413794194145078893218769941867741924163336781071968023427529744018650045111704008915093967652155247041241146219043538961985189641722857739060479838729735575591168068436196222818102541215964889230334472732742378264433179946444615167180751781478226740329866459958109219928743986341563112591658168034330962057645628868422278301409258769998323577227034508116928728249375658592355980083820198022455989846041172775889322717596588870319977670911247452228135440708767905832064240814312113008363851487640826024978436883447229130062542364756265340346346950171894206113179921991852458389631532134945298087367381122648306042374294657402575037029595062769604431676658989954814236313721963702154657179410881575905735065416070055218740323655433763422279977557229641043387929473316711226232462797432258916964274145577326515325531092162939670185517097052537825473472002405786660177095810642934633642279026774351853562054216479274315520809210679158391314971572656316446169677470124443126614018020292983577980937682357837133492230989032267636423364886131498551620520904797970543690817683974918730187352446005610373280201962080409236967649425059611670717435685865967588932833537687262119388636167959893626039444303539031714236911748449685284282734878853214414716937214208602528107874698418932922875908985658765682472529523402611970016911617403720074143525138908334149613190526969012369326356146748969914746628147879126305860582802391782531355477495177291594607619199236832366261141060212700944199296138367068369816556175282596690149133349004428621846234696976212033840343236693234637345083770527097975740172706540534222434951308093697623235989792749116134861459924857625535887717559512662896613523742607783415033392039680559745080025536770930932210542645270861965787746046606354409656339597992686452708771297709137910364981349760448176147307940515183965201966835321687844333705858875011467041709645404483120330803650915119409700009034298724654211257563540039261713972066845237421459901636495679367172401433996672588207414277620819289458089572261810674476779374710154296822015040528571136638043009503102975307265749309629774484396565149998395069552994944684377780294730795443407241333498554791709055230857609867973048705241653388877340850092897644294054609063605688151239072527267728697559907258168962705182278579972646415985414075970828262266688396357171671373760687067801319124237047113084830131209144001602997711550741162846229166109853612320606652303563197261899313684439105368908137453925122375538256748357580374728882389011132328332199223718743321935025260063271889618715194195415666577144441993885426854120368274555582025038255150224859235286700198893261631065152252906990872184816405283437520450478773327403263983148969071961798044294026253093554898922187987764230828503784586331599073287939383704417535583556917331115673464557390057850822707119419065441598220719288293029558324307585437771219874001990749961189319327228016898427915449999680735381579346229228839985929546948037234930808318254960221265589546368354019338512837659502752420463117527980667707272333124127727897482904082404754244111609360652363997271863265106661437218205935624473375718418927990778904823355632740893568861571800854612271903618724497076713129494928040914724710202270338053761755912695296288893036234553163759059109110756238579428105074709817496765136925335480734348918348458544612216473968901199259434303595780887568005671901392364684410253009928243391749750269634341018435726084900213541841730611105762567692046447533174716826004731912603948246312638749071007550984684005552037553762065797133459319975625925394009002709244179306880525847878504960683055823286337176317605883787073709059316394407295636632732081961130177076015536069761459095848912848746780042990573878365013768126207964978524633471877081764527047499871261340348277431115710407110312868236708325689909633580156313219792087466057538330579896639110023015146806775628130437878651091960769176777292799778958267571248368322222380371854141219513555529318097582247474033681867496838376912876077136712594594509837671115781665074418131463728057361950439522942460991860511316115993931212647567585187447375399775188056218686382080302363499477278885957353591030594131916338334463107074613508281234658466043978162171937291889853701972424909045386295880342648750006153515424222201156808024117753232353228858004820741064290750428066192699340088627781259918826901484997368134450174446919256701057157620612863296685968041021921828229285543425911639670878920394635435600804827746283554040179654801810492052500106674013598829009400981987164023817817492845447643551762770215513915649033651004128379650594298528940189755286665655821631986136842299965040113242353929875980035123968297436487419588233381198436695840294291976068216983448633092140312000220596768221019921123986653754015429517188406528079888816167629145275370976247494920408350199861183147643563044558714808524405965309299192706606264092934130259151094710825236976366548670130023477887415255767834901878137967058002933664054859956815682295076581018160634824855644215450355572092814190285536092881390638135565688876287938425387501094133368613207102306604481056800499522439661981016736741413301705992678504830184868945001862680708835785621817933048050230140880624771602087850894300468565117520435701344449152081352548124550063419896114589473793056404467002026623385751962008310296050325344051801548491534036858484993282275468395505939871463432462528404510798152668044516944447413487629022087994136790978757862902679101531769866637382875519520238290414975241649231557212798996795223514183539654935857917573435296610964040950502520983804281381604449590438585526341405152479507661002210570251526822911090289662795385046228118249230061199888914920014472506653319428708388054654611792552540657423347788401058941145220414210713577864421117349364743318530645405370146833911592044822616897957341528117603751646092285071040147156464486716609197200782329414645504862905149463235163637436575765023068737142845131870699177706212534470646929290686211667927952792410773291232691257985752807958702361441250529567013330381708873858088837707308473452282582670108222822853053403833457432521388233082102323359510925857787377053593032495911950094900082228401662519433377984436867070961702398301555693278272872939299172038681873079825048083545435966748001722475460968565528901889780801282010686343644786976473777323385221171436176364544725900622272619751168479420568670763943079900173448339914366673039134254002325928553952837194459221653631803968405538377275881762558138278156927820920639674297040001377061614728887284581400659043936159268123658864126356049574995567479883680586996148375061228699955493523833279987939256341280016969056179317015378417663939513962881156635865338263980677625617399526172579925126607002976099801094466598154084765243099591692858157658916198755941987032252495321517440731443632893802412668163035996724408898081275779933823757533243243256330410814601304184428402767422932971468149926479770475266362603496005686781941881333812441554172377322368392810593623232195077661912687428245394084866612617702076732171100509696643171950569960928177932827660410194196048134291216306268043066670991437067706889637196117180102175996365634367283309474694821097830195136672185187342853851868328557616516859206172678953983619635562919256588239890759192633080148013868896018597769387060190889888964772760564793429758516277214867662369695691838305417864998925590200541302336738125952990035070290853719085903364316824652870240491430136822066388469609919956041151428991155278740121111701864096379855118993471792192892959374996963208417059893662983493103312027528227656567505379618472223105736563791001666639460300106636491378996865626000886232343073280421120262587355588783043326490224391493925214978221154337385510175017622175680045359350693235343401630361890219578530211451851375949551450424380802081442570947202761163784846070955401560200181085647936824591603008996757940764782537542986418813701226619280691917196071258050440854769142782340320185347505855078251021641197130357605906397013631247743909945056114793970781233272733587754542952084163625683734006460797717166234876365949015417990487399547212591806803758632319545763894324762403983409779842571712325392621030187876537205997114384273878810884034665661002855116470804863901035691713687087434489561352865254967694391035836155235875066501111376938719189916813662007922185002194957374633963764256393407101101327469943414364968301303595420217614765078750788369088241342449858358103668679279386349400106071105423367619180299717143089220949827263607308856671054161276118712740459695401872889473261035685536430666801217024241404190686974434136014959873457560657337861898353746442258446164616793457778654168850223982920761361776963192653974315423550892445957484168528841899537373891685580870401545099078815692925983990480198035904989569616609064642588474166737258705775487950587293994040685775929014264956940560689387994445156140419303102243329049117466717639506755077142596302973310252782316607346752924218581050720330108531643398360183217919694027395751103640690686550476757714043342846966854765825862099530797715371471634746359241140538745569604084271530949682204378583552504415811035172488405814767079524960251869420244017324373557117230901497730614174603330340365738312830262836304783412935469514623646629612262249901597179492306215935093402441055207476156923037629601355686905601577589717633889880754946930903718986909470069036523415888558794629963064283891226073907187782215745315427340411676662169467072363831200696351175554928226504551309872369464398907459332902091409930492321467692088495509976046177054276477881854541883840149297318329030703029273279985461256200915009923192577855009148425838327528379198958266736931105561429698654448214558087954516412667083882004974102137340239245614181860482085499572740723089542596193849699857665710843351735881123787685718557572542727684560570096019265756361401937664970569044440879000386915779708128669434450048983727632352335918312181670605640094922961437011689151940870550917065138838454842753910380771926524905612737436936738192711903423171504126082997011481229382699253751248558560204013089497744193666827527307242191058270017136324805130177463764946294576133047353973887753267457151015785096589279026726991642352805330894842852147678416949292297252316417872502954067790656716729197016667959422598429533259102338540741947364750052379834107805326690328261810695938898482389802022060415400170305974215977131601739587278859833415428066678478274939047958543257270421508063577292650138924146394878025281276394243109857236459930763089928780279554321988740497778269399313079604060869617874514885265290061236112703509657176747039982518051126227827161170266816089656743311337161236360901717563788357512135067520313511136551539460086819006518548601702884361363867384252295861693741844501064020018265612775219527018049058676155382902789936056368670149189989734460640407671213993500040857874040055305195075042256208710003966869601055284475726735655231174713765100740603778209393420473802352701430727260612982475672858054200765270312622857269987402822538945693099496418470170680785122844767549209139014811960042492514912767898323903483591184840699680007889191063302705265433139242492240831020706687488683235243055643119632879656773344968612332354624781130004240570124199047135860382961922254453936249594185393155883356147190488987439692093185362471689237210656648933972301686300835039921293438900535115802040114741845140067376585604258788562264778190006279768548361075314147312564218376502177238570429526552945241436653241750373882783392450446840928182055809507091908276096917309929580469933852190596797697908408136643068533117743818197478547674575280380591898649445696261891484323727495244926330095357638588509600515885279220174798507460031055781384654879631593335649928591777189090221733510160439633774659334562515800951595481090997047834611439735252488669734346519248701048739331427938237321361575871208438500660395608954707658800059856328945495692623067157789008411785383207905483575974663659381478196290329493970058140495548638050435481047365094516372248793701887830248183708109073379044994745630608737615395658897811825616261083111796025768574497743666139398560390514887840104361645312472205017021699749299725368368563833641665092935662766465917549498095919256517741887719571980094618424775700443721404170928887675354856252039128818514828608511209314766722073906630183075871313648551319548205181673677654944475548826418333475851741573660809715345054782512675714849620329309333038241125890640683153652721446772844403599283160736250302830084399404356774604141736641504692588471271733942371558688238288367822443304669691982119164846096477082456754886838738589012273638395062432329507731961317939302094597051803238060244011929374558595352061476419665761169964813182347117270196339802421935091115487338542220635736625343188858199869047603500213857003721772999775291540783713940498486701622719288503425376495002835399933130143689586070327815185514419774127837930875379964160822897447667089075172552809463631099493286587368106059256426519503747186053067528975194653954181665156263102480622862428663651030412742204558036494748191531012916982870549181556156719969320153726590048915756794202067641300774977934762396571862672136934907303947302048937592500570221172960357342664544187437229564464936669997829924335195993132185880791757145036690762591254231221245103426796394994824915468772544349946451302884618959029160761373922485220240356349052141342192644114083213645538526950566088218692636382103341186371730949675038532681343150624918939641553228074979988539324487889429904707435286919352868846284815125424892228385071724201554784185958601219209298970984347826951744762417410433942755098162688853763344394908020514741526568368406546066054767790300464448491709916433887122787840808452713139016697338704337542116293353585397116467076859255503264359893632936655088846239281646633851924593707644455027386152799902636418351197265867764919586848065477082844227079248712654460726455649043712653056796221286490319252793323344642192400904752062342680386606762439587855008541678132884846537845431140847777626206547698516153238322243341768276906862980879503440861526608541399179020332385559191418724251155855720952734631962128609582692318514938158471861299183667178596247571313792284177904987440996020639375182566762111694804103723197185818515269008875891325976628537402746273263014129074795127081402819002260783225544318086524712464225377756902958336418162245142457080469322786154192530799862383018960578237101932215208693458924030661094401221688813267339561185858088536693347567034935743197300802308446299578525514728815424783959690377814742401510125989206303716219934815431321148565770483584790913858279219959403586800515075096379930156908999513951350211418253634827350015605294532851135820680187764143673631330451425521047954503730266266278940323398351934350548530578438541558320067703930278882951217681392652925740061294485808907721155076819225111203431142014001089463985303560088654164614369246099280823409809234432596026333528013978675729148072738383900852946124984680285219291814103758490284209764274916118308160301665908863147092788495525459082654072239075067453239449479728122505613530798007305002085702912773100215457284565698069506681179931174475275292223238917703499520985655364221585895313957217057893893453749726081185855171429723419263421446189309146475370911051238922105882514205008346480627374819932087680551375161843327492439776149621243710982818212621181041377863267862524243360520807435722393480890605600160316542117405088163153849610495095406562249109433816003643992411461545888297248062125140317373198335562822137634861444266890557961052352524906655327999273191493311500387398043004719813631250966619736696624443556230503768989282351729804705976984324837136578817508721632447853029916791981953772937539963851915175636018327077159702785092988557005766046546636199140619167037637521842302096079779395582682300549662750295047737164028864904226494004317961965411157297190968057419128050750310701250250201735193420056660596609938518284746590642112420045227628456962941893475560598862299692307058016206466331919361614853413517371678017606527993579809663547926258245817204246101159086513220873699147013019561022298036085214990950184552065042417074965503638954390389096584752215837434953456297782989820598259855347708372050020532815853063801944768015732332327121530134119336336955118556809104092249288744072159196733090403148145404053705521941490363713683422122297137239249731685688316034611177056096366687570340670996340124718509594549468773832219463426303017242721303724765328882361607534849237698065027335319909895895306204658227651322109305208158583445133995848557442873768101651636248600393995956381506797082573174123105300325700204584122803660613808855692651231873410392205982081878516357598088639411337592374260635958443607910339048007812235543411251089303408011851637276070353450807390065826475876274765442632913817611175272140449601795249662187326591048220566198456375528599466179261377692252377672943568554692187781480553617285248517225596378224977593624630209098863640730185814826066284353534423296342523693658008413322153553041737090390591425907680487218491219447200979298627017323188055648582553688763984428708173589300108431727300813988501692998828037427569920239690421453979817168289094573820173652853277630517338340332826050831289245349724066539020836154205444139497224644014258472634269158471820970621462848870003832031825824888143342800458856089083386643786334785808653537830727985368756566926255611956667033675773064691443336137650675334782415978546150310147414974784557074595274529732936509423888787767103286956374099792683373008491092581188570656419218787735685258895039933923300479337239128269199384358239126814143405066687264905538794776278932966820223864057586606129833679341480383902546500580998822979245651559957647609238490588595765526375266648075931249533001869385602148741369921539740903628925359719470185248097606104694192381552990611583185884364276346884330948508509872015161859870546154097542949323116415674499292438449699738611100925629426569730894375487707416502452151200567982638731552641995636664588245141115114801706159494352083307622572880881929530632125107875940432829926282909285932851668478101238835577764188024322315534321301937215189233522610174907509889250768102271920204104165647606817322254948061721797715384463309019277426110860187729656663885925440801197983978287030618247449741558796712369798504840218122553491034117580372047073592164983651898767125306166107094742172025972789283666514891759580612053759703502014965328168400673320720943200639464125937050452476484592854261360210616426351966397381715289123455228503982125786596794624647912085365973420880393125923712029946821480627082577920315909887697421524459290880337091798996151594823571869283292405664470490817705698627927282891090533874083366434695352001959261818072662092452805399032541511279864511560134838347240955297539059942242034357534812921481026232432077185654399375923582142173681363303581048971599467691598240922564958488888574754137470358900222708249842578975132063197984883050274741919349395363414862798177781359388881052662233024771598827802193432506392039837242429082782602099461975585677270700167162787335422592990356674025870227818276305387934960171553242335779051980799868152305165733052814834445534023008192531172172595454953246392695707599435085991590519654809674992733759807992806026161670522754145812569085674585401381898537136889669026903390577069348897808235325279594022406841260469064388457423239292632076236642822946930978290261858270300777532545493445709569043957924648690809756715905383478613710376278911772217360746506509737347140472609641249982316258576448856710170378207798960523840284128483528917402898619921590752015876078761259722917032585265124939018962052863932950406472018842813565956873894256877038548535022106950345163082419955156725679770164231582950538056563721634324987741037642120001872740334491985338398976050354188183629573825874759689646501531430001924795230918680856140172049695066802966029042652402683251575261287840883781634439078952731590186831535918508850726472583958350999353454266034279071523662242730942208728011001309641328714883099795418571759168880832227744422958899819212340535364126667324111022925582358987864221058433219227307999820860779934951099697288194676287114308765704559129411536302236455859913734723200427694673529830100108680436375385284693506027922463314286374171028114755381008530706564398369862526789074258515675547397350953741960746288859717000003262851825305558927792964380112633612282371037114504708300600294360445434930859963576191271603609103123312157655190149494366110654853534411095060326462869051585254955546986348809415244981907212594967898477575621875192092323313075331779701850115307669728934874104497599044000070687353453286479073605203415438889234213153464271854831825857469653336621636397435911564252262193675047273656345648980039673916129950523738962276857032882460021187089931722998083103378093180307235896891641795896415939761029423485595531282488187032015670854802394373373841445630583187139380959456063558403379845265194646029205799453141684072552627753608476493993246793352049727676852668389509146023263117755190102544263188143421834842775078021272488969753454450893922505274695541060545619104129520126655247924683419919402475140533081272318752176761596639560053672447860867723759956366110756225891104626733865467880157592605799162896415999568192418124606748855043291424494570971077778045118943940606407950040420143074267571368362872174161097110343276385892821846445220489180635831456236705455607272897741535626553057488386394087178778342114850255127235556491895350384574665604609273310195383766408096962495940622344864891920452692934958666809377428850114681814409722020089542387486319802945095989525018177882435281483010893652440380404820838032064765195146042364200977707777478854258111443125158119703388108792633481627043494170585562523709384917021478686552241764924616492067891882822148606414310494557427531052057786957732148362978776493189946893851753332630363783733940807599206052361192672063075605078353028549279543966456559067592562234512566703948894817588373757334305096833224960199166274752233939693228868734710872165575803422111771416005944040935234771508463093698378728418089938975002949139536104197047306306776005424460452670781979187433749605686314220779072774854846407528463069683317924886384945903045388698585298737115130946891025663707242225917049558608683575950412152274673116541962441807467088684820320578881017150281618669710662048649693994037724892744929125293699487978781564397408112639101601951145598152544962940250515389043025337096497309296219162430504552107031618988356712187778846635589548620345913126795359625468268232283955977918948138314251758073452568875054530612623488304340810662190459248116715773630159632293120529181493766503911880285939641694679195799519496058157194724419387441884614701419055874587760329366862229399391221050594894268568841890221978792119843962133694059855150318948700624932936831353447887488919641412849145064449717220621296705693099352168657043907636249115453996918250841044584362304043145127205055781487885415340804390740759015182107290736876575286740469056169287891746495265837157660540514840114034522234086262289933309845957093413533224876150827301747738047565962324470698123068451959150993215832401542520810996210481408502476563328798718536337681243042362261885843467933548134171060710873386759052869718141690080235699705603628173929442825013701931661606566337217205389676326039869451557881735714264668830194264177048200879214368898996988210527400645511513659816579284590443770749535995170101585684072088085554319874163737537392261580376697368815098580241624385208138557211352600133461667263896371620388499209823173906956373193056013090476627079606894225010849553793483920661275256783615850605107744010906401142900541901279403083467269749374944324155558717709723320694302872048263608109939058440208312768083138637863198113918675393659300609879659692585426320795376743847470617383359682790427119968267484767467835659703260248090440811707960875185839542829728582699485453273207194885583237533002953009507890115789985203678805192746655553006305234834877057790284532307831831519702592019491913474828489184021142160081373962219867173065298439757125264581529160035534860805481497836127971871155449160804742357545504617232123275371947498066317474478801325296327783173182760522120971668465648164133378815242069823754223757251024968493641736455678490745206091156242337743011802538859540938884380197867878387538226982590130089215744406483153627587997557394458060695873579709944758397834358805490420411002636981871703278601191809409486320327550476822838738052111052974275645788572421467043043087480477646856671214921186899268310577398594484842093376088540686785863945193288829072713450630684946126334374893541758733349790630119030327088536136732746431282214168999234763543029402446595270444685123852005087546197341400862197358358643812667791284932386940764309080646858833837981374951923470421237129156010616898063431034699404769898562447418693118337257362601189241986553657879696286777859841570347407614518013423254921475030902599332394993042305268166978927805606167381569276654120573930953399403830989055038543251498682874123249370714891384509944429807295867636144773143387518989477884202000028695540019400983634138577671657131209990189906754381123355194778209750043358763885132988416005555795420961667375058517845038123211054454507621105020713239871148798687368439131124895131731524707440872875927688810262599700161489037908978401221953529538034620819055288294883827462559748799583675421571438354797050050336211053081868575021035361340467798817882862072725014659372644740551475836651442583468784350513711669669920310768387999778757569325266927892633599586650486362312738523617213594611589052976269028993309695303304276456355246241796347681032568264008178072710145146412835917707437790454804009305229346027995411143657422122830646645942503936117996071008737158301771993645813257426087634472700970137826592106515510458317362915392004192383093708787916627088903181086447155735866798365759100399370548950098032295680457454297035764147006082723544610977541197451282436879709046085070034701230319057407467055429970944355468825448929503067275870888101423584304995810069859835304448116449068777101906560802259786500273828877043512067358860785585354717838750231519182820761043817113260933831860428228702881778147072409030088171119064267818950811032317585186588142636066764127311122292561342402438739854050441749991119125101586014628957941906092983985192732126679287008573626183479848555489735659637246286340776098431112044194928171109236978324140549328441741726370401422458800293286968489893112324766372090714952970134786115809412748453063111246471985162906661419696306490395404616940411005079198264023661780880477871681727338105223154960359288255636524512290461221424456091767749567914764338351696004322412198209985239664479593156142082916714181886519661019074640673146660203871004410579608056852896326724211622303367260586360508683260225845156346701141359047650613531409603799225339871526695118657802145095481095648881064405063374096111112531231290157879988551482711227674987601270109670856439411828712362641612466271012986471299561050464340983362363150437915637984159688636683761594315828177194477669564157882880523739064970331877909716462541774756997536926326838412943943652865065435675504288901235451466722911596075235080609013300446936441803779380778406551933690723816866181622887863169116612754333928548223139920441291108065962235009169128192233715331086217891693812754816105365975895188559785607566531096631403047892232464625234159367448946277778961260417766081756351182926699585433117848456482464312357572175131654896802997649918462544481284280070556220622294262323646018232611426829958694395658216409086348962300600659505136972648162091078705723985020852398687405095142643426344604420717111011517508032754415803239051752522948121108856745557436941764646165255584645178427310665124446055967426808441747697142214408930796137675081057019440074814689343936726445365724782965070605709789591434022682225485253379395678002608095601526058753329861957525331691390871058652576972265267145447776423823612874169860432149056994828548657908088414713043082319295360366386575314043044207965678375954202433928196837457344892617990299879386553729749823959342128369684998475020224236070577769704061366632901204202731155786576353485071682584218882407123931340701347526725107006009086544019487250880595865759097477581346209081811032967905575882291801610459480932576173068385445485599075430699861139188669802469229643986836437632136319920760393122281171290283653866854064412311411614937366970001900507155309591341230961798103942874484069468300536623665703064941451544937895271818163209125081414146776239475274162737993930327275849264757631997785856210469004917796927826055146583357703090521209159716394823714353433764682207094808418238201853573409617855624417433555902698170698548593183615317153482206756571105279995427156689944601549767054568304191775518673768518280043264778695421615231659344326180357352381854502117676649838471634808598186543538476486893177284821750664609902775810910818149719430285949009593050096147891690798255516365137923850131712575139024363185459493261923889231715948471655612278352637714446338467137913063904303082688447033589581147620170379901880287904788109556793703938980143096170007319403684568935868222948944116335200860455766310470164894058524298909787418978326587691353684771316756761337134073005329291488102368095443732182739620781507188992521129112660117381301180752324975083810516440695945996583680838090094713711356056564380792025803435688847172741605704186830022248209629311478806469332814011214990363756543975313458784967560338149650543722249070539982120944184965702562561088654365716631218950696917319622897724946074275119378877080671027566765687432271577175516138074549103966633888034392911317713550770750130775931407809120979617219824794310134945160324154727933113489674059373002621117908180069132230382539923245423446005509457787052680071127056427418800375708925883893560621849466171423503907963321326487006192568652062564568454815303579324712975630070968105014495880695399421306554373310719133861686575468505092366428456843712878436485488686140553864818204703816130620562271826546812670232701209472106646781977847020132701963736208633739769768272608852192091962388314341329333384436147916910532312731724613276111736398303070086583614816344413215995576292086587959875434903307289360405129485964474366640014393317752654389525351344154305714620665174376111654105962387541740673275100006171271640122589666074849051639107048148286327693565233562455508142440904619076256656442622747069953095212393189934811151179582685057795662698147348799300749411129351514565858550888827287012809085149431166326816756351658904339876379632848086057756376971119218640551737659163470263507719741984125668739122255135675295007269960147791331843536349249934621605995659377785683789049815302682249717153894532999609996857012739459169632472154018032153270329360624495279167738816589998627242958694249003307099870011270527336298085505505010703598127978353727472090199997459454608534303005053011319691471249912790810713538730814982934440329311127284372763533175772552370548973964028474033250788156143639636982441015841299532185361033944188245883400453798566800588397105418853015495518206888565343419043894750052278026562962881761976609870142442722203864310519540839428994588323260969505968766300077444563811911397583030331849623571832622919549216144817898068315774357742061007995039784272320734952924986474200507377256520158482083126012145927543848782270144784707886076499677927806355119169420274372753533338159016999358682229831218462678104215662872318957877359501697864985765799356486381367446283592231552105014289452291653143110891868941787587938359647086889779064942546008954336684268261244283580288174967154475673827670696221348525907036325184710409159774578006099271466128464702044485729531979578832698225830519998314727832386467726054444716307452353074314454765282195330647539474511834186995708355426993846854632907083016207442536806751024242279238868410474608852748691464791119978034525393569047768804397920829030403184240194890649245122473362182451378411014548217145088615335167751357761022428019202242875139070147799655079668704481034736364252315162261557755490065202557727253611287938682691278291735523864307004249492133364302690063569034114783696450284446362742693164190104589925588748440628910849036975037052048869136404421506207782113987166549949696500374795902660254467833858308571865489028054273998221402476891136515565296581922027335477663877049501312814379202583647459998145344417763244102029925535704336286802217029755094245580830926662054721354434417719089779077313292554999418910363750107131747947687888049711263447340014879572649877915919905337447453768797722991072407832743466380451361312575476905226032131558986041331300172297380256197467476674219304275354349813739308740820762557142197633910129136101793427582746520167713299329972528716486877664394028942649917075249240060740736189397646611300722656389740209875432857856083037224829294407335774908205211202548489268808696503944968249272293606690071146924303460830859144553977478143639003160932522667621543332860889744769882261235860152840406390439013534917502593447819433578332309464602953384379353069944087321760959099521348990577107719126744595314059498952756366217046063683360308359799866659587994523753914145590700354647026178573374522428259168912330539873062657257982499919743220485314178339879896236821687880797237015406640346559625866733135856248855963269623763035940557392894901467281586550867381198750211112063015093539935231537802600979543825243345558524755359595891815725702617982037734591244314841745420627876805888244496799945512866401347045807683654002444563224343079529494304815415002378795247433936516746413042007738770800667112012354845871573661792338611296938230553814382533293940011616045280081177820630892428645047532258388487885251411329306883784619781634059057100829327180423040444183606280351930365678188766319151242253262330415667174185796341114491312990912802069257555691809811273927508542529206568987222458494553737119744337653898457291696017946223485802084892402871331629679342419298899995030371954059552718652731047781451975864525402203515273551741312370408270724057346519734187993700280966623971740283237975414663575123381986995715551546930256792139850092964601371325710657877017919273740682110811783312835112079060971175585759294073774282199456534534921397806915980896715210062484162198650804587292848703689158246428780919386694255242898857436191138672814162683915554094579961649181717170276885962979387829558392600234160591869401578335880863681604595249280666479545325327575942929840437608523154155622685358554596945450175190701950989553590303298820519994558355237888917910350131644398910204406766355527038016079415406307998360432885721590723608582321035188313385868765722436939828471649553327239123765824423026276079221472595732059853266215250163168099957200280614781222067111120305644080800015707346123362209844219906032722389290084110162241124770110166990760347865742073500831356598520206774076628228234875534718796643253128965110236098528182542027677132319371210872281627752492426589563775045232496684823185606424680585547848321697909769866964857508460954626028307923812207145794792648795374609198414126171735057430142696303053970899742523071184187175821090134296888596220592959103119287418639055598809395144678095620359666947934935754555434801124214707908720556470776965048214817220247012753873616607586285857342361484852913868415419477749511055390366919581898435586254635355758280950097073030661348888755705578775876904431778995653612519546916454724787086661668134275276842085719156927274715950712141966846471361750361861089454627628246334702583913226977702482003696717493623652515254085072169377484269181685036080829431408242448409331917990988777805355725094120056628201734568536066273952334470650412185832198812284275463991398416934413708588045961925982214029212218719627382386433494716501829346741179285984839047058335113452919782325226937446039186432206647666465548542256290195670240419739303146136792419588993391707936167051954072644039041148632282219688535818415436254118833153799814119353530439990838110733368313384112221177150810872642347729659660958961799518955480445459529944211823985415059149595774791175210910363252788404984008679906071220524812725829665556391905572321796770054085143466969697516641650856369153712499803442784548811567976756008337191250500003338363070058897747865440423408060403275720445419615188563716477486537310286367988245494411709567897219836152575069272352724934389332521776791350701390326495589696896202664552695795125692109814361296743296771633344784320442252211457817492450551549379833749113720771851706389859450789242242828140870318435864829618285734398535877603296862511106091459028486234375983720749968176110697329034985864320845742693033193457432309408651127911513239954592954995155624377485898654141803220615164295815855349519919098457030215264949022658958179029369592723095549920858370806664759034449593115661037704470182763863645085682346202280330089604582815042458601857098690236996172209966770723418524548001915145503049887663451213767572717884166677242870811569227524009931684907582859970106502345703827833059634684946276349372064443302190075956693113485562263801591131425590014483331427178035996976294021607801102150304746766757184338961187437239829499145719701667745801402119143442900264362223691132979002029387888805977722331121962848137789530302591258996003261801382036574636047069345652780936363823215888726709989340288682461731112128767194617406137676394583013233762557781665278627532739772757039654866177165203630683171149393530541805006333082232349196131334871597504518820214147703471050068642316642458856281861626231719528498901896363130862035330015814444061969957474314457402751465072645760282415864564934858405195434432359935534113945216305088449582657953459693996039289866826290149800611454263220771999040553864234338402620588899938593872582156941011287706254413279233298927094964998642802914335182069240377107550343933883034546497795449506276918710475202688542466286032873142701304853116901944016855121473761243957222394434155663888454314264466486936216219732521342857608323350769537137563027236707847403832469408143105192113298962610329120831539671635105743837371565016359021779514646296639688493506380414745791826837970928633294425650556548382594839119465575511531092820241951694984418315819626752146288583630773721492174712926140462053959118796859089583340409242024045062048692535740850147314472705358802773907356941333657044378047875310047778613176503600634225147989528025535395609647703997627591318189647530168897833204232329714342143773547957841195459144133334817564079425953224687560801081739121183039545958698986089503896509733890109687920069008550546007802428959093631974789312986581477895851720676142435549575416271416523266465234290660906062133977144457692089791960583440281581281732514843557851701455117653973559255231033501561446498448777190468369937898345128481501039693665993205861669026613745586349361185439915494123675644659321232610099401380894058033111028272883426638550802233632086644045825740052737173308051338871650865305465748317965661940974489443774167651279388183076675772767036740077525890231832550402396573181161993263956556480697687306522497007228030392619766346505137974484737991320996208532480416779549345232231080305487188753543161087157377919623511029646542965511892945182723763542498056007425459665490467820724506092142038444992643455826562690665981378477443246747601305238405350966112451383800516579463934993002316965413048260400327915145568020357964115120223052893059995406494158790893430083287345444073163457614790253406303369187999007511565958122570298029286358379211249687323034329542059094747285530164249039191880716361979782864370322661153211349861456783967653024772084662564307136325034606409006131732424528877366552344086672465902719829369448694530815311201449024278198898208159603928248025661445508595453767839101128761853111192053732894788656597816844673843076564108471131597261442261110747580084801931206166843896417964390504399798779203508734545383841349830695879035837629908502941914314233946630642158995932402632338158744328511415827171111740605096990180579812889944046627775904926971622047133471176366934260476698295634797617906972912671175368381349223212473183975387465434943611409961225340547089268509144664731084364747621976441068259862942230140987797804826956938930897970674627947600427550805534321800482476914884907617886189150960832007690737218929877517203875156864632852647412870450856951924941544449577908690233014617898045634902594868536745882394201122310845835842041641925540814867841360328392641079147972048902237257978662099362936107132961367519841656405376436835302147971891765327011322111387709401006238282019106398331891146143312886379554469996058669342406296500660867965234763298437910372729855399089719551825628319716598642134758349655144986766096672280054196108325289824288621152630056334325847978841408519091317057557320820973972999571492977340208595267599423488492390105233258860868962943596815242886715004553882785316078623300162509663329646128641316296981987781927290143679251232855660865666943406988931058516948963636841714825498358702355213909155569660177610476582359822111507801650546785871050539525059239493206288817728944116677029348299605072644204173727092464484170541583447796005656356444943102615849533262067163954376270223401781109486843536886134299704409396268046385672365023134610343500087595384311704367062420618366193745213681911317356758570382253895757974454252228250874124900073260099150502436967741969040499193129043327111629654690932403598259890098449731830265757578707608895746762708151013497667044764695536893907197049345644023980520505720268057123363106972885809037435353314102918605166455433042518143623857775892816933104120972273464552250821728775100907542335918112185738118769241844780245950891742944376664046679901255319837971748293761671862833869444062752221820133670405949558048977056324713217619100280393746199663356695304577808305006071654902963956295990127410492416308276771417009985981728153346572343549031454607927323108624191207844677435700190962963010426131237339615598772803609015672421442275705302094510420151814109772670549834379211275271522608593389643556057218090925179660669212151868356022137948155455626520472934291873829386190021915832848125180853333500024921031335612396679616708034483467554885473894719779606078735948934462084090517178651411604413468220107698068149126779333356934356517168777734132513815498860728316664654751232757454336430323788493319941170665264101351416255102337592325179109663038859676613958001934202744605124389426686110928987740309742865750310697020406874043328642387082931062029619046573338854852412130875037254905659001421438935812414461605867684690337806348268784972684490542907265924988448871851273479923240760916049518473599277421142628660444388368980266098959465765375381481963395151270981685752524969559171804136151908212798137686063424065042858420096493292624385063137006315125211849034378662501211860508118173655833065132658004141977186535644407164117288773385609659843459928114291696760067682990257362939057613380130431428767263942655526438454966241259613988541000836556963269665215688893250918220630693069826894968149155966465479703971273405023100641456438309856316761508176763747125061798201603461246745132727981345808767946376444448018730756375859936227765417726597481347674641311045045841641549689408440355979841086283629326342864750027889077465723527645622649383007421340631476380132539752460670690615939407850734302126439434984609412419411127984745321501139995465506148684009289777875764534323075268637955918324053475286228056178984897422896695854232345334303687402439958301089010342884777785884431963417886425497978997244958427364251328009325669762127131746292012631725908637651800045451264903355776038675735064229907394982797444860630257724846637473006753380992908489937146156432985208635266667746747699837671949046743571288729941520938596657147298561167376490069268574439157124221178262026174463056114253222884972320707392764308969633199415811272002767310491441317448186899141343024608143539375677488656973255558570834967414642087158811482081780088346934171833378470910965219444954532973987120039307338485195698361655478337603485524661881613930198941163385327767919539586728243355753180130803277436073568474861837162540700153388825581329990885684423945533388171188827233295959886452232221052436055057012221278655339839376389626960896513616519910913216710625665542144256999001805782061118560760986199546590771420501953120491288603429252073991891900495358132645832936202196388590343296891730244651050943831388001691644713565414618176444408605376760752926813681468714232842940660037078931689344904188826865876426180588448590012077736680902042481360942574169471258124867510953404289748530902698340999351442679286202577985202775730712493630709173033428571080837755446856320623412829206935900381121291935206285391821007838861527611578078536050257576875110348889632764518871868746839400329916788044007546980555006101540977864348093717120504769793282060160175280033210723976488557595452241271583261079403761465035066317513823861457546967074106393952714407820683220246894433912969681630693671843157020439657649541339111285341620909711144980065639417017040722019055670699151764033680499812951676503322232781405301000801970168684111637473567756801350268279462078634934228083790916859285746464311909640668621817373644746440746950007589274129016574692379796311279112362274961775574551162046337081949790199834798174235697448307488559740278040148855007623597037894125586739016178073843860135835163503836930672177674615415225365576366687604351218713389369412813004759732194542086324928794953835467205430179079608727845089691576903303629026539341248933435304100657825729182624133846740484564576824197003782441269058592192922618709928182375924100637563392028707794011508991374472099707128533019124930617547150970014338242766129968835441824708426045300954395579691650123351029134042891516208199850965066834061677335176022914533265275305346334535726287083356276801424079895064362300302972064726454599846519276432455061027461938866627212426794769132091309452926853561249153715175885556303984571722966401719224887655589492180337786212370191509564164735747801411763249720907842055964585057842167234502306807928887583837382953787492283810818823060371929590593237328851899270522823572700268837499575182111345121967838149511682744648711107264574613886954375154136812272056184389150236637792893902413302895344551760559940274877648653785024889076894334521308258734149998945183836474299474268998268011447861370104397034319738855002228544580422591081254158029806981808829318558930742378592594064518916986438276961883436241099762646687929330595605569672947994874770019155020913939526637302575156916742673710334233457032421479820086512891886436567298952878022047936759225601691980359341354313451146833384062211038744495131332476456043036230482670029315743869296356269613349594246785780180277891330292051916195068718472747292234911485851015077834201529677807993673196044658344328473929768102369559750667137587609947578350803382152966513831291183677151766180125151530836539138084044404646912603158803767677405897800149223264202849882401441038424987585057606434852540528984114902277708623023006388223067966602493111564652893145808072569289154172195798301755421734825617367119931324036310958415073330229433031136277724838973789504917872941061052421940991238903296008336056524959615559257711657064237473194978603382295653260866915571540637714089761257444061366990907014780794775630450911547663561877705159984238299019722040645563954912863911888885436026155490510800655823763822334991450279452160706710356698215912215602574284592233011318895652437121726443399345428505521272961929279584094914614707318985702778407116492180365169494053493185703361191482880807250571408753528429579550562278527587862762962730213614182554782623956268867090884498799483982395661963454451125450525105054837052173744869744549246883299863144957981384663401786705003088436734191788095033624625263807856973370909509239724727970947092601727211625932783016364002304480855160646432275029883222544740801891462158496315466977632875648122463453856982094206069851313637315906446043517266393974430608296166607752037346525570524764422210040493762305856874252150154444362619927786815753543783391882807453707557649429115924443676431917117595463607080070894571974381452374633241518678275420729254678323906045043961177683112192392250106897634375140955413612430539949676186858061832288114145265469250993619553088292879743037336197561207765723365268950070157254134782843483115975633406226162579036558651909758438734240479431496109724440425976410891664257551372190103288224143491025536213291681227947776292617828878683993139390281876459891081608301757135486665253812566561615388626833773870709200394782894593826102072144942726978656544107398846341248460257903519134279571281209782409653344912098410229905884287149010092534159846433436285491546484136007010762253803962438355485935106297531636471755361085322415967819812022859453936308652879283767173316604016639732467110019853649745021735284296733419715653057249095739345256554324101106405915268814989280201423309276179711344809532003860979597291248180516315868150132495866357950844519266297518776374741694497245817936881543184113779205155165664984021968182308176389558361899008080754133056463646518746869568210703103006974330613054608694169240926595941325694766300994990952772479224658364611741744395972559951569892996311454922917157752689612248394283117468103573159767124116214458749674574861021429443854093533093429585345043647220162471688747991806246284577121152936230810478962061982031030339267139566553175259519336900460039072095946647356088482011006319822745482778989550025267155905092307847079646960029235643875449018658660248046857028657980220547269738014395102447266352776863599251017859954647035978345906458446154480306260399196410878033658756409311106828376936779049079915379725010643267889608367436596386181685356535002783553328561472755826969951348074257900399674731343870261187190288035491947989240967082544899343374532887870414102179079960246441282513420470038388430119237150426724115823814382309945784164109550271078928582825801762267103623188830495889896987312735600224070028429663791529917080750052017834318449321169855931474311436412702593868595983426067996685570860822811000153302741726536552797894513289642017989613402708609078157903501948552356011982562866260843158291525913346647868456934976690702963231576509140190175745641003748796110757893950484693550721378814596190240485215969571408603253643040571193209225635443035431613753969397192962401168986306980874660049334300396144935571088615284098540086823506539917201860901644213699203648431373798639344498817666383976208112236084797292268808582129737155506974231458631774891632139234581805628235586769789303820532735586902681872002417018286217672166091033655644828131485377147552750364731801271328467124660878992624869704550539067956878619159873041765459359784222919113915879712248650195599668669540789134452063809024082153871043436331342041471341658563492057528929309881700448018101484616056158912964468943783254229595371555226842663082326764938055806875154900740164416042970343508563767370228480123778515050278640493075007860901760105123861218013262759066833043191062836481503460636870835785322753218969812990693914871475813130276863545381589297876515734127285167953769487898979184030367544040793005275391855657677523716835287783297985384123980000754065495847737074554278086786483711061579655018283447805109895312542528355129663367261353199916067711603705162837804436224221175281666239685053758990102436419001463364489281168727797268127035753258340380512110549571341125400976294067408441808594141741510998949693960788068718846400496236328754689499079874597058484056798485410101672935591864326487287106220118011070175185500702078567166828214021904982848586677815120328478872451740228414984504546563258020157366567795617957750205202606167299165479085636740798216536057637903633385193274308030648319894455151191435322564336666653795525172539257256494851633827810275964947370839977599460248350033415158352776891989250409569469433879777807645921923311595741170910525621647418702371809286930825101539790277354508310595167332421913153560338518488521286669229407035063540726477269440125252302261500169717665650328429769975160624940962521499627318388504643751194911521498251341747430034708813332946226004817295004787815956521937395512507130391919774363244395554814079094599807443644277942433551470517519335156911283634933069522449212944010707777664979461709931979101990118736304976892683451124203719337516307914091009278977161369942753821426822708685776663614100214446062502881970418378252860949618905484609063282266596796454280385884343833853360689411485668006758148427850589103970656079247753006753053493964336288619049974075374001928676300039761826724482359637756531904885431440586290809340135098445440629788533528935373836781060910054919664016847402764675480869760855194445198718129626997226075014254679254065611878286494671132903938900728984171821075361345439816244825424100190386878936091113295965016273127985579647697495378775998453198677170528300180243435026189006293738217954106524806034666782610036448078799017426102934554950065008960544672817423162963421802810005215815782943322356498765094369852215539285410597550635314208692217046809393595968565144004869857968951492768654570212045132653593746059415751248131053357333733328436248490553681414136744597661153015723446538824798024385168108830640435369694348171396297258016864917495902774703295211886348119236249790144555060315657708538278216101832150470909073622499451196108527569826797142391625623776777997408642959155783772312825230602533898462582679019214885977436664132115066953861165261986487764509984079375674786743746261475858350941173999850679166515584649907554390183884423488476346867513918009793244391558063656737456660749224018191449391820714598612012066523860723371890913774273041391605337677525984753892481514434809702871462259418086676046681270033837716233127099261884960429683906374924000708484147596522291372786284085194727862118684358471223054403883451051581945568432218933519432728842552145652599189739932575122355743214042652469892814086681848589735272128610093784720439243020638024410355864066672155917355788401798785488740703957321526251076791690743360561313822418447084495917755703188528031666576863894759012018652247416560971739973638571698021214511894056505266015755950099273543896685639849446483542217705934664703568510582767408843056671044812323821138751897096441016661661710647606942317180907814343338259262483977712733232397439180638511825585826604748137285441284552788200442298031618520937236796450938204249873806481928263068802565516827509871714152240587100875061004155820500273305752916569020695445535678094527148580786517517738500979716789763728590773059419848608501894192035780707590922239416212947579310850350626473862821014456743674374986581474264376584367825755959965289132397786586589347260339620229745394265862366000833522927690046039573312369022187278656025128465888016872894013535646957341502566834394955245583532341754344975033278202015525189686966778971662777902735653592675882443851360853462477797209390062964358435620543254817613281699570376451431069483320287799686587837356032896159815218748650550925122837882025525863732947809083247600618470189385675205333241370077051201142910375377338038708880419538659619253344993803678562453397950763438794109618601117566293449655327069725694416651202991250489017840685977388236414616419768638436033379066462997288871047409525804029869513788086149398009452571186094208826211196556969315677256141816537331047258568410256985735756786569453207802920546080016946851399274080737475959497220948358645567308017004006592034038774400374816004314526913660783538020907983232351830452545372216780474926322281237670577172301506493960531611367823204599080667059108174747381518639384451334180289508857916048819928100489821352986890469715830223429474017229154068497115556428296913911296428031764656311575911231475966927897328587118727232943878601583502633734592326647854873242933883232348395767066884436901667980084048440656436761864726463646239637551085044842208646282079576678516976462625229221692231678709099390823436447599971901025211102700736416002720266796919409915638098817474881038759214217306922267583597250807653318241567738053218925046166599498319225581239610343231056409072026150531982684484244385420613000237006177009160467273176356940691070736545776174988363873378848012227467406761859819145874583607647840017387892250420731091607445378998775841076399589728936906602046702244426839597194906386777117561501769130255033615041857299467820790182495144527910369056236917860729216894848731168720953156200825518374204936175728888972065185704263359753489348770007449534260159994152596150366219454250372824395599078480551862266967270686418186590440146696276155410489050067389458087106454412290173915610794342655859612195646868090825404496796555429921128168716168656170810876208999973801458664511409937675155791492396714773608158098831801221043795625779583047384232357739164221393306076213048739122345459994181947525296922880087458110235685546994549519864961272835475166684149130132705292627496190440116449084135533465691966315439269040261900097950692380507899074486353066530998282487303024847505223946930063848104678477215013886346599273109198066398674965085120394710132686491557695127525601595217369098651381275125552854951539085130639074564600822469424041043043116947539289437108712636123319258341911264282133065026264557398211640059669994955322751165173355984941652063664065712254686481009955062919959349008748613633145401911868052094971245915356390607418994107228915628600724785496087458827315478276151483965763944480842120302139951698794947039908483832993054982425116556855552239468240012060097936515381905553295771866268120014853728851710475908603629950415916494470301781269129117725598520155914363654999467234648680757363705331733217488985587752939445300421375810615247011266837183913118060054580346875347008872712041283943905680634642369698546568844469789252780128334279984356322726559959047556297173695795805943028828361788251496113946372784599510843915817194865894658277603993936366592418630479228656235557283493295345760977483461627564887031962097901116585937107412851907825435663423009835115493782551419134287131102633256373098684457454502784916563912774664701583274513531605073290326900423788414296912097574791677099354163401297177566558293094365441290936508864605740279481239687522279829974316858939452033435836337196088626012515256916725240458732813588982790034286095698023868555933018239711188046536017469535304420171184442275948235966474620231327380098595151221110081110466184379478318713414921911178203205966929338514525014122547586416478902286415553741728848889928777989566100992542733634522816348000544485252680642412193375867951026054235132437313525730030091918059112980408621594328329772166209274873084249985538866786723989160345246739429820563994736212224783119536814070725272490267635230479208913747937166372345188643953651689498336046195776515793387821986054930695793437144648182817237212312933479872759164807605107951418413190049120141553659671982763579789519895347094956315817470633831341948445757033609345327752285558987591493041554052395737494664113481951767348703133960022180868321712511027636017807277241712910030464041202866745200416399487112865094998127815169236194196228021553449500292281907023451586600790932103028881463481478338615818548938714406344654910892949360403571748740677671194812284635039841965988474894869038800388676820243589668381170715609118319501409153492578468269186352168064535393945668806652206761978714962874029988009893427254703994141797634456467751008879990194494540909959086648794711692290712894067567736005064066965972180321021930179489891744043177829617907011349200161764726723449109151348725915458266040268451554733642969055737977261098954710540856307943469841908248940587590432779362273499899304064574753049911478556419299404438214496443251114573284452559722578049798424697100482298054909653275293169616669383080252902677536743952961773429733174327977861798329720012551498420318704145884850810979060432301502647338792608587590461956348267024792738335908346054976503913492006844572522730722915934811346049428503610495770546361480024986484700972387615815416533633570523623214952165682980673885530841738686247820230289974818754440258754143936386238622820822956910177653312643834411770208597899668844515606238819370099408503003703007067131192262406826168071873801719510750507942435754227010629443881043223460978550282780653573943764027071212411646903755250240472003864416764533273357095444395487593942882505769469090245906713608882381701269273524782042949265672296257465217799490330791500593672391434564704245706817625722080933145554941848417670935723710592350814701044845412783055700892598828249275803252279016060076475283159926676481961155561153902635643390303253900169253303670131081296058594540081599813885281159930082944587262207130848238988954432383630392609776177352102399092959930610055157833237673807294547606210537092520663355249396979692566089245694440496288656440537508892871119564621279770396293996244371800751515696729642699951972100028298224243147722879686867500082853583360057519358319504825991928692887194098825342225571633924506065503256755396499244845632311855482128983423367940639940076984416463510387379075290227235900597776086076569054570682941474060333760875260689936009018427777723663868915749711564948924722008731190787452181521554263097946955152942192094252928214931336079257455804561679764157531640291531103411969149204623263770641291617213885887002906340637906154815504851773740063067495574983680989764587601323943150489779863244998877677005533558381114311772585791585397515498530942149291267980858903626736335945991510265460079953159860680598431372280695473003267260381235003193513959450313964392554229799235785794547419340876992480202756542612656276809433111778596455929536288984691626126455297903025335420191807406034341059086524314948515040539228651627437454764032705786322615763583497361161801939850188154211807817135817977081046030585120739914620674689525127771039460944425570641107412610356789484924170767093296486893339425698500839064005950274560298370786104608058381483220554795164104315530438917563861205366719621068134425388213842432832751222049506372724341851348324847925924059782795162898789401083021796485712754369384484006504660185304223420757235820705467860836978520005388852672977219008257857730429102334022675202145633259948468953598711991346335474372080848586344875876517991566244699378451546213541004523061123494198705250982585096670346008890797222307456771107260252175141969586834523245867275616452667533608660652476619475932932051387700728180059586636656563797460221567267390873952481610118217377102505157952929469881803712122374468240087446848877159510061529535032900648129806551481409639218795978769617153796707850969416127741712596562133348517697321343428379765484574902485931397184219346340974109816127860595798535870893304484913762243661072277072578480895839959199381879840239497485094102391419826357661030607060763688625239839876007357731123029262747975263066289420954175831585984066816999429161838364605731201147112763547146834222109303448619532090250633443602164093295629659295687247792072998090391550729955505454961022017073253061363252721654880423619930847045764892756285794910742240341694836072104181084937175176279712447616616922875125269301336092034295360090409387006878612814627965423932790908574589345546791831574758843764958246251853184095709173998024713835228692081364387130533714981778708433479596934276527057824269742355387130076720133104524035859370026814259624469308336211504573862164194460905580232233396105039031075225700050342226051785168110915689113235797812837803183552583052736210868345790681512531739172509882703011785787524133302884621471705113089672544501063538393021768812789500372069203955104537492732739671516127425268504959488952066100624260340987390133186380422331744519274262948850860558504780201238892152263596085832266435379880938577087350607961081179306004151412398033840265760425675689843252394611925405140829852280752393908959830915986108623000557085137085656027471983517512695718721535405593899768790136709281630092336218430764048310113860499263260906225311842693877670456683700559858597636032129307056007611338303388312989731483582629152275244573383748740407766173056699902862733654317407938742789716521742834156071918939423971320325315312630277839972559015580013353255811237720947041608060546380148609678183702482392848684737637439010794720116654896911244871046942454227236118881211223147465234637848799995424018640659264326742212394587967508537129028975676555437812325517480297497693373716117062331954566260938077303133367425043915916985755373930827930668732301878235128987626775686307434462108463951040442244109616470941221123919394384743171485048775489258395848468565790174809798622811885208136566390122661591878564657535535488879721453776673083059729577354767413247449501178050332963199219004590016209798107951923089181202918853186545366327813103448513092972191262499853952036076417707699932927207194001502022506405536372107192377674935953762830876477430149760292281383848465682304415955654570489664279613856755553294888715173053921700616102287639595564533221120003574824873812925278481377423007783246530664116133607569066454566959248133336206037355626738982384683045309450873909308625116188570131842204514686992061303519319461190145750332446606044189811755537473684271341217861316723006866302152399392776523412232586519156240595663493597971697310934910865556997191003843778902279306758390873464321749431704070557588139762704103484047815334455531511621152116041872907215615503073186435437952666789257256815647745560529677945145410676527086804875516446705454113667947150849587465927437976621473241561794603505385280080405936761037387547321920703566431498477557634703038740691466649322737972191057111740339622027198407816753270381107994960605580748077142098705443873830105027585918776484561244177524250355023853147223619963224655511806053154964777243923761542288156992302992261693172660247364235175509254294224353967860884613102332592540063640331120814199357831009974599679736516581002527566370769053561698560823398441592343956131992172030900364206807566901155107444192019333602181063999822128694088389140578844134940983218118361723661199808505418637437311354765078630334776830548712285138124139310857412272172566430728938434275801383168554370813736701782299159188321499525160169663399445734256630421890492030662529241517146968092052825316680011415213143432465756671132051363674980679138036369403985018205447137964716413439100991711350307452459688299343565549449724990739158356554194599619179281533872566302258855705028723283808501191668945421091654423327828554890017439709666183482120319548948317595333927311320827651085813037615068200108120184086833517826896457055467386027625478595671489087100756236780575256890193002680463364902218062365095572980732843937108075839290363586638193870998039377705158291876784518303183123868108703338811104318828933982108946758953881494366546448326424607885142673001276077598202098892942860054676750207798528807604849457252453370553890289961421508316299507186612601980948116600281821828859421402447848798943595358168986495145543580648192754567468130896801618114836421408028080143310659981122014822944017244615217516698728044529583158419462059293410723276131327143602359763135392639767631514231218239288077438764527292621201116657665888260964393929356175381937516169519836490282968481459467246195550069142936513067404776576349198082750501068435533497023576817776709974521798411418761079126905000124808472257418740775091029866499087501035648668357012367163141033321867098012526575942031059809945858862849809422065488101078964930914143790441342297877546282396089572731449468368709464099792805956840278713695568128250159204826299529266071594874647046884536177037680660895388064666308869290513807345758585787181542368141307114915506350626917081699018613784661116935894743553458763221891665510659621590641353783866071599337696895498116206974048578784785611899152401418990382626531698333133154917433813991041767597894513435087654692336925736748000128560821897688909585526050367062056130922420826919224715263866319540956591854459823041979679421725510169433081732776467581987410162456405662896598595783235902678571267404153531414938400300722059445873810080275475810254089064772646728574095467288972279336150804872756587743251397775205858558795909237901752429213192311349753776509151118737196580776117035875089369138924648992183839880461369328463007571382239222995543798922772796192689700015367823996282425332846669085566232094224737707140981913253958625680284277849979721591260587851499757873070205257130841391453307228780931901423340869101114580039803044194164662072416998190565719536152812035885963363915902421517226838503087558967417083869224092363433367303520322213883208309691642485716724510455991747878459756421740353650950022362439071096393699821509565900901737293809481573080005040591124053193233087277204208716085486410237497003353465526706712391502672145718858806658396593779216032999443662994621023516894552016692878825507004027931843868132786228059376303479900290006701666739391279824934927997917238948104606155104147023562688545709642534049756909926077805857838734968243062233672820827274628524862040996592454120746879296254843928049117506925533106110690981883302670828562550385963066168700066182230843986485427126280667474283387538268562156752668280543531653586585368550559730950394721362883560398841108711734673716097184757971928378285383602999965246011754877336133749655160443916639801111980943240981652186714512152039493819841807359903322293415912970130367668326521868851205691135378143987860167165848421288109856836552021087494763989411063799084027447223860351657407312266091356552250064101052303406666845275987517279731032877324743520444904352283732226109451675121458725669549139371446684810571821479229868362553062503229028500721993533262487850591125614293829208472933705813938655982932212512302836409325140727185688955882444394392405108428184569259679363385872178057120673345825660929734927489515699428160770204616303505300853068394300629311817244202570150212716428532849695403420197535025253769155843720719856210899052973340086531532455219055441364769211166941250615490621355122006738194323352296641700486979140313436521994115218229354221793187052314442457949900922552006419280822920870013557491167783412420025196729579002172335862701974897785531017998077778315994463622109800958040878770967845170943024029649933188245683400276899915261854664421177476280215723680608533134689110302602170832832092608765407828162121145663000768852313056813240942163170725862249509860110660335557530009263698536340879771619771453521741339517656819028637861489517894001127996430450669247279742512219067479841981721804334317870523477517054488089321075607195687183624754301730886687711148771852039962771668258180079233929245289051040499928090285389718037842720512984958884949046999388681438549372322097097912750123082355229828705930880266586275197713874758748990859671204691320659758819037756067003894780259396452277409311762350935464253305504763899293238986884275103400009433902293254754619952155225932682190891141733727501388095022594413366884050432319229428047698178765686909967788586924484480025306184629979109039366274150411050105429499294635220874028678534598090668624782858441128155263578941284455669179412249558313187606663669938799538567411821401664727689012668651869641800022961099004217270080465672553462782857238494800755931901838371430424077199486948937698816477903779152884563414068639594300410436099949898290182404876158981249307789575320329219205207329595851057755761737800234861614365745982091296498770341620293655690448519145477719123923494303734883548875117110383926167421616099487167180496076924956809306534728643524329780980080121421427925891818580246972324260484138312948351567526705099497209089055401705970481383446461502980401633319082506034046405051167380198076469160768653800206717162237548856837904869620437712755738157235926417951041515465315632271016314414046261640266749440133687747587098298041879690071186155261491471812388952757541823414373141505908281507007107899838401888919998301160300143030954291699906579115895305489373382761937306129682513811840584604661029481366670814080341516622069331292124833456822003170809617006020273062409541085229251656924979341910839483832756938994595730872548128903002976095504887855995933224085549207889760226985704436033336785083920807418464873900227471197611882851169149240228023055559183097999688569717957166060885320981871665440716044856703960577154226299998155843457204108405111270428163839116426747081030101107130986050065192418614700327382891404705971629655074842717058808501802399057042968798654386564363769311074598137361441198056034799019417958689854553722770682206652449901482295567702581999622776883682864320637786154893470599598125078956638196861195684491913887302919165256938391100419774233562115935854689310560153109135518007553409146550985651186095460218002622050869711017541894745759630771707088794358102969723777307714135393216952788521388786916944516486211162065409909152690115439651817989155633497231788063693784054405359235597594997388607747279339135460917037503893232605082837471418361069078351375616578218013626456946271778390448804238844169361817296113499208706943355931628892220665374936498406516899827606618897637331595310042574856057955857069623707528173565637607315134013862852789320522489121714088689987457570288669411667722623535241628169821652203766511490935571047357038276975522216341102880146651473776521117187178358596055213900441642623289753857074247574846758371715419117259997159281820809970960308958015463661169953670108693811279717806451328742475450962829945232073583740365012192812624668218368445152761457307532667436056843125497554629259780416529395706102337044608144439837744043240958836761968471952847616172545821088859790414455413778924361739484396733000304379824564774283931229744423633329730650461680072326082094149518834090442446472139822570617510766038306764775158160117431813659345773309145194840483302812371928416980368198531721346540619848634254244919973677279549289013075374384534848714783677172031815437091079935724996925092626259959720452612982571741665099101400339200172127515362132853069151417133041747911470824872111246678494508706437195077147521052603170425923460379560207998162561934695581591702781730374393037379672105600553123807362965438167370767223702248771606143272020693309219827177771474715092116616311988786530706004980944829222324561325748450681008272738476939334294515545031086007813203583473863787708942812990136555263041703917754863491016722300854451715106310069019987952935813927452011169589314766105575665003349247570526674628532700202617701152514656637550783145870513707654550359705128762254941103439328601608174008841082162491989951134752754993485703579756830969272400198409400429152008115066491239837573054609907509283148598789783050800896007338732623640624886431123218704695140524585114631046394126541144285735190964945374210177673845872102186345712024990505459301453869547558141279220113535640464503175325547243735044168000996810733556564242226072515684722669743547920730837903209976464403893549061542796314334616534393994142263122719349020005503376999716189358367980666176588890373926318011538466869760424417715617175843159567366366492532431077307986265975467223558451991424983379700670784311338397387705108463018386104625568365982621760681769074073621002165142289506110066271130239210864471213638509970333137342210845120058052149133884891114901192671051142588364562167821316836780980061635557193479484484564233754459987991344557773758861883927334188361128862324227121797668302441346717480013053826186906132791958028020000125254895976101290555154904292483231460502922186854736789222233580742540299571422184945462364665268640336093506639192995772599494294469861139831304927803436291464527083786305625364258765104178617891985061372476812641849200830636135953203715806811179815423121916151466456911317260878994783310398758059155559767915807557176986515294614892418987857771801248800137104034261133909427663394840347778972653931939442850476467298310898874354344230733521494288751877238268785830540245189400612107594630718748320185970497043118423868627200393883125755448292221118227899512588344568618915971139069734123551106437748076010947592117494260153777559675237510936386689872050448362872681173956524410352258445984064504659448730893030680620604355961364192558413672529556125222887818226726305521891201744853469058624096868277509451173350068662200723052805719831285307980557907447766950390440381075241827138707551512666547809260351581507926131397221863374448053229050670329230608667945049671811165428486536722481507858736661668470307103749693165102215130754803964211984199788348215271856110332993046419175399781605977115055477946330360756005762813215158969870880281799372347811121666118739273839752002945367077441503860926979805335270098604392192992576251682641472942275711955424669385112523189101450376416139903063201655902009109886349841594600127400097533546822683574702386959963031533696637953063336639910735796766423877537738762788750564949163742549563112842180779723809331546352501189154575743140927769081444791990655070681986085423292976633180696034104411931782812795213729989327092692158950575660465886608605205821559019236841682086898537206250568274101277630562599165000357037308678203892620803719478878253346466869818131211794390970558884866414720391319567077379472153440107789463850898087959284179048706061574123376506298493216269909014431173609580325809758177377360702613650664570224808821478235073605036529156737929506078096373911777996504732669716524593090009750587534049236235586180049508032044077514340313666352723184067041201897569977024647850272862902656682928903960045041279748134756598737843287188269024847549733734682802678713681602542314453601554021753300249770782696575197381332874031247139691898778721096918019016125506907846683426738405395033521795906594189097505308062499904994698651082352957689572726228860063624362520379926488184734358631235184652427517529781289282003386976510960312547149773048214800499369576563380821638088980479512250825809276273594486469471657500275409519420517816959737268310632168773549874740366795968737554029894242156736819104258887804239132273777927161819691633956706229507219134893015995786025529357848759110307180906983130210661631003459318773805779768048130406805194365960829083278117568272943850705603838309543028750111759320613246375120800632984723982537807698736515708720983406679395583748153069000267219897846403485384609260372728839130720505936046441624965367098649052878156057079076080577032163894749620882627378560701831623878643871463821018707461330771404970096659480408161530477183671620105877375744353253902567390157637843335075627410098077652227926226597490788516802227421727502662952409079362028609988656404532499663382851514973366629308349151243244513875387081179821070303899839937687017337613889719005919633402095057511605512270379473106987029583746337022733098613621928828376643863467509429066128262788092786037477804465967487006691571868461996573912766941440420392801308026057808318095974760931963154037749165040052215746853052131603505653044615090804996836752435030219928688819120189660027499694204091118634201810162221744710789437881878088411376326707224110791753130491134808202764269659175008598394434780837355633424376291784640830005993623377497522779508158507230080025258733733974769677710190245827982878236396988452648689193846277698965497969410859770383013353768635027660520226173863420460579682912410081982155792284332895031732519102624015428911101288726983791176703612843665652577086650534871463170474826621705597036729730602792416980522232074279896667707451047133331715605064030018824556950654075559473339259520749514368924198613277554967094896511320674379503419103317540261080291560609792427992146827797538979261607735748886210793515688463538987954434818256320772294414809302808979511891000240644900902423059592316901594880789978885982466863872066132083560652139273470799904612058308603651952611052190922198614566598767774841222949676416226563277620630718741410242289465896227457989400193669573579075750227601780912355149578454319838317393559051159306590302927241078897015872624177017868123139566321987897090613057688093176400365329551311816983468936307889506171634796143956675125309045230380598500319784007247212286406050412912943046878876402535428846092629555996961135881581350218568939427453956715701992229446413371343951348049056522090966786056214015836222989897155936349123118621925891603557790482190049625188256435003526672270185943932990979450426906285774152366914439841074691991028064370349081906178393798918615848278857593102337715454386177362276913944934141882038193088562254722303056409427651185977756744821633251713043535457202978316174296029771325263113890632924860134217132621150806233727864641534322337165622858441465038240148501213400642181360051874669157497350876379273664606891190992551492110841390292023642183102647123441786223125675340994957965858479007717640720310856387264670511611527649851129193905914104261409477550415922995319578957231025360712092675636953928407755238189431426769605527335651751214863032634529086906561884684727873017430365859099599171027635179533221382315984593237327702220439551388228977029859979526158077677307942710185929194624295382990464448522247090454827157545698972321824912504306011528261360033947488697314848503220622920363733146599419553409237876310948627089732268559126019684900029687141817205677459959481170211171784113530231437759547738932847633231303758835423029743766484041601462828286007258673304296774128894814398745625379295612649629568823708315522575248886890974654344855397070524792789540110626461990965643678616516922733239722331609173471447521176664022308698032134244458554783016644291602695874276369382150415377676747891722509795020820071857320490525675956449080815060879095026371145573947754161931733886835885833826289983193947796561625983579364098756542936530675605026407971566458130939192984184661437884206811471166311885571104941418007359275952064511724236263900111234759237546327677387926900477813087226376362161553193027675091110887536340077627048385561854998560874264929205106205478228018255802027521904870635850189701157727027987044534852713298928804343917748900408890355839677601171493874877772745548783622003397580074232816944831405195659189146983056483782549659544105991541719503631371442892749606688215095318109051117752126847290122004777975431198276503063708668521623025345338095435169763983968761299397842734813377079065197312326996181416637541532600041809082273806053400530448610491652697329688628814285288396203767631906344003061730372070809347002578013544115992647208245454015729692711651477900898567784555257077825063854166944372689844163684472837918687452224969980629953570984862603206277637859735288238517165918759393787190382143414321663556306070208613513597492225183704364393815212026880663283938423064716112917590611041555547766883973260658814368899881760601488399640927269930980146643450743327444711796352786146637193024526882051866887395488140874217488050531203813327967035473608757498953919028357200128078970114491802915860692068015692919292052657648618983618067460515378654104005923560761583902088387317515316227808772563716731449124183667470649343878005352329251882483571089540917504409552043802849730912469246842021598174090096144389745563555997871785929943842292744610896629367143733800790512341277567757487783901985905973674160405129306312902208271163595908354872468972233639105860640728167096706321204317997185480619132612108899320567680804130298422055240790076093554773083235759703775214083894406059553438090747241876239463375878247638526482238786912677774054643713273372612799119203673603484595004919409321057979198597904131953484582960871144248131771316573654262111527872057560964865415955070174588040755720786037686454944314055076076663879153479344015235289692735820295122302931988569550772368830712161869353381355785023473070724295635212556666807213536074501940863616216039971415755528112781040868718848768625196409936108627436510758897815864873595306170718181024976464992149454733090133537578880716044028020095855151063441904694880514067220545290477052747634945964471415387792759286430271617437059814613883615440492329863972828978618823033748832917546928954299355741792847605623622098014281982683143919175069993660512612678138348479615177065246421329951639391596267818232213322665267590308474023530219467941933320817450476418849025534046048233865749726026587431054811612398141690180591047123069459456539410558985432182856392491302032940428003499288241514684438145337329371346538426759588835826033488727526750655116502151856042885127056212623132992890435728988962753450767080157446943533243513245990577782921140310368718993674316975667894625831487817774964196104532105288010327995973459752977373681315677103987250327727097626378756064073033675133374708885353166618986412069615651773790768016122556563941681279561439895439324289788456564507468071937539149160657560863648274651461149310984105971167991027400094092176785112570103207846794290364209622447325723988754027308711066180752276748226127462294172199440989984732990776838238028789026106484688886173059876483432619653028432564691680204835322473314065701429054322110241293885794189200994920201250052510220013883438773296324255428855054921993276243928845819025085524656807663774265958218438728637722762690743528067914906950809953450579514606361922216602459556392456424346623157893286820277448142801024157549033900610106789944196709780611035697305357232174405290610661993462010523250525431588950287227932116403295816707142494941497590345405883741970646425372207925656379013151147545627967090548017456292387890834223855623242512560291520326635148550167077244370615931150209922885137239542623566332815341687513137639227303210384451850076380441806132578699599525046939802012834189981291390958605408288204917988456551665243763617285357758703169757595483969332350577530007213615720736348616143167154405540335559098054741315896871547400791134672661208486820043883799400113302784220006059435635673156252936021031629911467284063424124733643664582989438786080167928637658526322190372625313191670838573502322154849038503798111327055063674483448711959578407636363136197058026363970917640138103491612900878070238742164167454576188607478528022489078352027022848111081054429203602105107960619376922548771194737730004564036618323711969904184624902196708781820802437184746732066781944532138236618230257830477471667689521525523936377709663897331221227560117152645062828884114204593294236967365235350639134812288351952624272270667907005139530353751115781781280031869970431081257820833214562492816836211370809891583469385667801832190648751518397553069459452576019594680440829738143776173899733338324035855053036899484059679631735785420546734272014497095551531301771850836690402944810395443947380958682479949278817099394577954834968505915082848028452852415957855242663588080142980253349140750997667253536320397953237736332693499279294233292246780536047317873253709606201568661267189575019058572858413633719149705392137225729521260391893316624734198102766959743482590947153854329632601016132203507177114477206310885925446330597496313201014410123768154000856165484855205911250365313297578155020078193900062252789774682696665162097563302466773383297419267186276169223690121197625446834883557760837336398852597004822825250356629785441897011179350449334875663627848707229591485929258383629493458498319977343801696282870313667028861026493068918516285591840295080583074322815163954063351283482247609220150185700101401187474307780124456107682317221992367598716988221572722244291666002178950911983280440152857699409517123046929502503294861789146883610091213261332056523198622956604238399839996937962573339631475208835086812452724874266603217059979284977673395342399813754164397220038944882346007494209909593898692281992750329348408868986753291678190593590355996000885805946162676392053948990798746603444211842482128602054087452043854902325814611325277985149490897425231370611861481072718059590128562266399070461723542281877946931349208584656939810706265303568431330062961631933685855640091946182171738257936848646021528624886648655675884990003417339954957620857492454889057652037468952687247816937669669561043612869648656094804172194793217761341413093809932721233929499298876092556468491333824884567862573870849633594671805476251370421563055769646006121065986495499934678134971455669027182709088327104432392577941015029266630441245466461027866151636957192798374132360954918074557772910652148096418426308401409588984560208868438209899450858094744730596970324471636132838535695716698543876439299405371992432933576840386873677317814936868893269787867663896530876363305534908800652205727254657418684704207657310803912008505013994631160520345405222796854424324654124959168587850883946626815203318236534487912123859711559922990070826243193997586248400992470197842441608501969886612977558199224750625408480768434780888498502281670966173357819136169572841985031972964625682474325051704305985229689520288904255856831893127286176639493308585153791110527349789513625817232545500935166899778275665692554085744668304899370987042559055641506371532670157102519350651294204100254215619896093500522827310585897161133099071663902286030780019100505547938439780783036229167120994187665675848623803975399344251850657296727056134272892815629354545492518574188610436020274419012143736450932540067537017675844841834496034591440696994476313522633349512012473095285509841059952217817780706479464880441491924948751399112382638733137277176916898873966552648041458039217019000370940946351319414487677270037438376284981790839448072286936036506675576460619355717692862240604001793009488079805236334663080414657692354548387158088997489918039722811309811580126094462479446337744565791662042134639649968883194260052850936950723673162459077253229241532378767605655360337326248765204159424937904719217825992828545183757220253359559237667567548058991435398177033613925485675722775544674146697488428185109666770553287145238181325492387008912771316975117878066874338033010709854164917363933664563261559897926664534601375814698010684838990326033827844332823371363934350215254569936314953455387439827252190641679787890494588957642791752120052273941547025290198711360048972451886838191999601813400685956255253133451096761810046785071059119697774283352338093531565160773964041294548809242503464132701219495935789032112700723214522437915354118525101692503949154832613459965953323115087678286393972966794959773013034031223513944523245005522471883099712159641612388745517980121787294502235306415343835740019329713203127596448524001184478592007130359349578760223924547763903490590528549114168853802674162639159333250184559033126692850744722422008217209437171847729310874667255952695964897851409973689685025314394183346023199257691054634279759213612597814972707038669122984167001888720799817249572219820136037838321321100450847764008077815660889973908142893293668423422946335524400437890200089471893826336379295505390828481482236823779414569775692213484141759185251017195674099184965666655737339182866187732639854747603648022354022008875683932901618787217498301040532424132310067469014909879796611315980838099441158644926787612518013172620601806076888112102058753256761489129066805466617115279670984401352851051139393699259176054977399578937289541931269587696744524173775996702414241343123422588427217690664646804498400596070515788706161629060765957997432673776846462307349207518913795217330435922166836776243673233924709509124137419379165032984675045571490795251816124276879515077402829737291494690324593423377891884821967313213885521753329249901854126273077916229056650955944774320885750021794256611398287416007716328572463732733882243062982620257408864665377259623801900593177502092634007663669792844760120125849719154353906143002739171727841521725109731929547617156430535417392953180460742644566846699820172665389137245794792656387757565931696596917624625072468517538733391429047239369582287087215436996862106979630251074711607231894932167910288039142631415330220816296560110528476500195554462058416041997271632009376769853092784828067173076519933715360976342753587377584705704648832945964106947023582522219516288012750223419149151006209758163382683626392250214199837635286357381506113447396767118724420669619499917539338357401810126644344926379681733228681879574586832908000116286449969431236163348345462112877726275958110551677945987676198295482086947730949185190387895944751146865900614531812030170852811601893845324835346311333276502999976141710879614461397090540259569764013411721367668875472209322024717866901023146410673288324210939650603038557822151163831011299381344059761877980147728006158443082889210179982681551328342155183510651335074538185171388143912252323646225940356747562102890828054042557778969444715217283601794825714743083386675151776349944817999565839741148695398583208323316283536017043835062346770312090357784078748245439538457892745202042477898553868238869457099351177435396762738588675366394126211694503644357774836023116568627914017885859504447337757435135935551860252166287111168427858513290287953077869383704183647232818162023715366305597795640463695237763634006563076312779936293174229606095510227678663326733683352297036455638504328332051932585866688839475468814768998773902686849811024781704446864701387714341944048686004227429000212909919085867322109943800199916889065901432401233280715356913062201166962716180764184160973033783482955064649876197690062686645500147282659559729973397996113561023608841374388137426517272691288861403205419919069937561454190640640139387563098441511130521383394735078431497446102074085049051907294088055975605009591963955650819900371793261766171747373194368876991552965142947869172412187234106233670790598113266608990720454413099531931689969948783537022082996308691509498568894132951949188350925631611597664935454669137339178313183284718221934013667159141510450517017240518810008347516404004324235899180195777455588407155138095687792114158396800528492221306489622089348632977926676259372035781203162715867374954123540538294703014356753152172444297395334179609951412633414305810499154273274298442532095925476236050314086870933045048316583077197940642546067874230829881200625704193072113822931696419674472791502986227471849692267271148015533609667736778025579254603591635005236367948469085613877420316698795162374906075954581056524544117210579469327814884427826385454979650976854253802599150399340228457041302132623272023472943867742500414548620319391398575285090848968181071055039352831555744519650148302163449927108070792560860348205800647687198449951770998260339024535442761679530302018692742733970861349614704616125186478862468818863123073585024738895653323903595298454574076748322329781626906236380656198460611404946192381706245812308383473355517390319740334674061688561785843692248467467585313985546044017628429749994746935961505366029657001628566271880266723671052490780903269819858406919133847688876419376807544504297023386053573578560786772873959456854062510781491147540395022056255077394059207753887261435891439802090376504479417689168648600655024902766362954496332175357308928243513308627148526291311358390499034085206735844730212116954502608152664245568824906026954053058487436212936677660128392667386630866323939155917403180392342824537963082357214674760498842054158899935518877388165025347918903631505153573703043293161108713313087452536782992571345736706438224750181193009055358630983349129411320188020081005716218183156684335731428603155694155118122167595607021607619777478387006657885226256421796951419109765360736761904631294690241894026659214762341642990893111884896517804523388763033446518006280099970934755098767073548538209289234167600205797668695158644137154168799980726781138917541911126094701750168251174106557594247922521440330950338685711986706762289878970688261868117547471676962401799116334400674082466373042193952004793662934963520035637142095943995064103585118027613546605741109671701744730334029928147948595852355381570693472099060198786142985235055985219945309827465870296957872005683931230686173132231665402196564866611184385600432463463801055419014116510090816443184068082462633233735666402598268013748639567951649261363083436948672955682563608106539192109721244527557764144687051183246882897924034494010444060220231536828266733378890829593738819465928995624174333021547486930452130629651843219849571599265593613734256844084148607985760406386625051323594837178391021185127424282807208557039876052738596671395875397696736825718053399039811343575878024117947300593026133900824482754033592863820835561457423727141903807215264497274530579678659135612527842216280170220467004331399767462342290339118816988480822385493585342773729554341825539792181836512794409539682517928051613043254317140417103142112601788766256398854485267352845045627377412023265329550759180793671132264722658450093425616233483725060783198656586308514888730210205744040603022173824792090429738388152653833727962884974130110284155370882572631355225211353604297467837394057202982762649694239759373665004566347274333978298510663854078107445142901074316386934289528158324211425295725751003059420274944509058737950923575277888252851884516293616889221913260452780300995702028689753512275021150130778599880079464757523819069905255395985351915597241304516526024375197137453579740003404034471746890325851337256230346698613293885428771375125383201189483569997954460596158172504212073100565961295065193562487661359650042072449011597578104889559328963773408863616740003650970935055136392542685800183127531961011946551079535694877531330041902577957862167279010490368414443640777948458195022313459230586675520297440386738948824348323568274986911601809354157679389562343852173378929983363195049232016721621660661745258229646580544904105936782111364061763830368650908769081221534565645917727337910940557520700850492305027317418167683074916731605863491219947864409428033644463048108711643347185463277248220544161152649264053299989291899212677618197810185301375581154897213720922123265875431394341033673389044379901022775580951828955092657547696081375401351964542890474135647575008402624547638047246391485413215715171347878946646866111264718356487216886578560253709130104053649330970424657427743243730941252146858215029152629162917945260450326519564854499044244627809131427647525295209060427146042209925752655780343854513202971371471593916712630606004850636689297504151209484811188193610779033024494649306876372160318066964594970321152003229232123624514804420681673872327045732422336797092875068997274813266998306218825904110485161589563296836015691471502279153935352297590574732131991942276379323754678337865739362661428478417667893394157397954717089411960992602275915150546330197742065717014543398626412274598054784557343592463273783863780829702652112816019105117704075930576143997635034667217773739616565678141886020768880637955148842301329937821541148850931240543924237479920720962930056186959074401468728216609609893354129374542629056634037255903153201845330495793859493354765672449138753114798573962474549823915702070691016317162182879581574975547324372178218263991837461943990362988111566122561724193190376961402171444640313136762841818880610151989588886923418065039289400636005232846775961733186940350770363704066933043577949914654284513006523994414765507419184743303126863921473896519704685678906621416604828789478567793896264589511139947087358500218158066239850302067528424634039536466456075265438364608415640721944924981114237745975247035914856241025357137387780780785669817772346731748348055379811725420955478149995917229080291782280661300181983446195220949235981194581670958991503523847861933341259573040840442068954516188236686016775110330727098780720686318832767042228649294336636639771242777327154701578959399027311180053073546505755785437300496027300677813884211151623601151860439494299803911601482293012998286223906590332738957282114629294783018196224469166198338254933268645901065440700205469019040552888066847752974931695613542933250024926057123212132880101935889529726288204157714995052847842106319473928308476241069542021564234538660269089866132699463466916218447235229296414242630048764797092998590780565833044644237328300923076792261061633127486398990784915594995234346164123485974757365523441026187832736914572418412565850670859688324429088296924093712555792586656607075141112048859202683342519464103699529341962964937519263723882255936147052476317879483341450534474429939089239277723299270091448385491064834581459156972783465826409158551940791211835781717253589578892259970512665861248686540537527288377444559182591556230134459937408736567751810563421359847492630039004150844943405150083826448030111179161939350167719944735175393685367034740971274272133316420385764657915020340676819907253171184653856327786161456428957733084065456769773169456670702755807536971169322046426313271678692146745917823178098467910617453782396941943653561835031114960641217854098074980526443367535979605823722729059468741508348806910712152382285038295519479829379060961270354364946904051352505754181192545888489378895045409061440281970328711184666544922880035773626615823937415915955214939532821595633911670064791116974701071600412919583856657979817768816851067652372504296284009226045298226981175601095632251137751287693064733588374322807587615916218139998425035113539589322961856690176326906244812973828051980787751236747594997039884650070534190302221777826463181859129805357315051971817014841628968065056537134752004166664145923253559224614743157073032080297866784636506199549463473297246861219509908535763435110266482094516800861884478617021507433367943298541321599270479677542728781531961321082593563227602089863457704722401706769202568743153300723555961110297595394371938002760405347919855106659250735943195354932248246340896663109648852435513501757883909176005093106224074978682566402515116893761360628323967352766456405418549879596168348054849529269934901317910704677783976584645409581509122879028072273877987437724468946403274430019939396102842945723966776877003859261864736328551136732661488689180363185856658520500531275611279661981012549193962287483394459848602701900929342580172253329049212339049001263422382188374408114211889684711557182169151683503931264548006173860780313159833104133071559591355835199045756587480884099328931899220604583345286381261539897531622162751189683507887088784293022224607528018014589193085023810694031151934441665189162244524958486129897745614991581880463364948358593797368656823296119025632585488689944587935264273583798933184693859365260536303538673026635045060996447409097621797208100222385703471896949094267275094604925792661069337699432102657831470431607453155914001951552886434192931247281946112550119376099808329328187564745483830034724047605522847070437464149161595477228589040379015493836214803738195983507629658080481391935654938080180786543904042385892883184774417499450432879268957473121673931451413512516647080535424178363168644038217789753474617969750359229486921686984074478454226597288072181990174354617710955497495004256302249506768129549457267615866325870090060848339037246049894049459157600771754113520457323361629290386402034632085766394902619029430184084477406776833549712109911454086120327938402906594347701936783664908332113072714626320456793848847531329702711712605905291067624143871263321092440973432513804727510042777406724046830366717159209164484883767181320502910904616328057043663472528861535592566303047465606332030034433035540329791379535293117212855240417330872497060358173228870566243446810137399705837051700744986474426566310823321844821260322011561982249356688002467050341168818555241313970440213900527196132140053344896192427448439362614620605980971414970007421247429371830460875360549801164924756420103187158272773621245395552109871257717686671469663111772783709960793127939797734050974319485905815410903764297835885811426482239442917185584271287239273077265578901368414497372762019900956516381543241580378567199025315647838880850860828641309996200146588218717985556422954355851221460890106434336783582245132413237813901808325456601202829182072065304367848209375680813249766972431505513246194674641722327712691768360211086945423041116224694211813739628215165700177405109159326106720984827538630933039205450483955299269742062537975953217901841308028834003155098667168005970052066154763627315614021312849366821855737840599035524570007394800061488360749490960341800554303032135280396486079105516799805611432711987358820173735953015471416015072265714928965016941245741746821992964009851544285887865592071803621490333349627660527468951483194169522262108923594670332037860613222479451995011193357972904229014489510097016125446703889467548179435139577793352116847762863946539503814592046590774106381962460591653502402277520287697341105999521018882355134891422344944334968091281342828989461161383647679022418638523727603456333195655234158180646607695442660755926733600130744589027593092044046649676003602836961861688131038854351899307595173305800872130274238224954883655598904160276839622649652344749695342338777730903517082418704729650547901643430800057503011189791512126488872355414864171153802701163681491060847487733595580302537951617341542613759183284981178950882609403596561331922743596469563838591430187000010895947046038163101381625764919659204765717492602593585403254992761546572227726305303523389940524073889693135870299832029278024890941836704507783089271130954756787075523797209158517545667288057058032645786205222857005795604770231822993164842830774999526991173954205331783409342191929836283463288375283118319157071190929973574932699040871604544329143417457272471861334426809842172929819902556212483101308850373901850337241315303564691275113369374431243175279190979197566045213019476237346097966716642358051930352152367912760220705081441074703415927200145155619125848877226068997236715948486819228838074213435292130047728176811317614527878042557890499696919399938910543449929879992912811306723746913855987189112100745680735007831320448365412467788005534634912102158519496800013117004825291226750384616859575332533135379978571548008477938114746254447067772663558775033977603713731772974771479958981959331246778075524213979287618979497433782564264046455378743396097482621243472092870130079904709902699112533077055755471358736018516479411889116600622561507273132366324914336567506718895006021628214640052374983301828852557745720460878623423600190103647975877014300614272849794277495592268962216400653543290241712707823444004199461094934304022493704370569963917831870476139385597324548164443779418134881131277052428479379652033494134116516966738958363077571195452194549551223291672048024808015982435175536283266506366504573953950814888596649187721064561313583325803147572701321954142741547719280090010622855680546574190142727529367057848957326442709688848133344206298250783378570916846808916056217544685153746241192768755795691503026304034827302342822503225215198236827521644452412025567063291503014280687701039562204270294671812948144614422232943464843909047495393880092049169089611627484150479699021086201836816114018176954459813804137265629237894434378438007855708416945517296300461247485490659683481060810643605452522260244156654146207978910017352458767536579349913610736575130400371976675693149231723385035084720319344778522901606639396401538815067203538281438814114504515540234824187683931022586412534797079196690413020362328746793216183434746307639750916508104658794847960747904518193034372960730076717481303813734965350751166846195020853249621244336476950087126298891286283622555970064200130725949367934636872619317990550950103955112734877864758365397919676716694057397241203265172983257030551260577639721888023173453469539172139983189283976702449474987627260796510748236398696346760050868121093977075490049361725665680631784383942942158905493173489517956870527753151679514804823342217621303153062431460627044000152299690061422248847480586550210162605250936288985350688141486271019834819198484472383931334663431966693230240402845014105890101091900964320775299449791806387435493940994143140912616345153735241385051438414697104340068851242285200867909407168741873091035070205500537478922416654363356269116770124578953151152425449646572456915094873973698240146825219097568853248298394928873143399910422937082588886455633145719329743917613918618804276424364956638029946730310677905657718621820556380993583209706883786352443637374000479911157213638517287121460782595729907860624286811996873359883085166124840215824571048291040162675916336242092611086773369967893387962606701569501862393371341835028340714504324861571685272205661587822671950666377335770333049039165032490544600703572545831564589626693960416178601418371851414737289669511757157956293246873722914991229299788124108950976833694212721172269282905820378339835291342252686781884016507700538340107024719371150976937972605290228659221889688736909893935051742122238294935605986813736995803223907622862576690711692435272799599897424720572720405132441780492155998013135931104963581096473944899864681484425495990448508360044868744558265122676412571417908469118013767263763680080746199768664276187993454428453436004469356096365608729383837092965427276893876531873551102104208701170805032373597053589207548397613714695968653834035097766264104803729701349410304467993698219614467252216126246178193912207044875461714069374812653362316837616763533608912247951675506100116248088592253308167648245043894620967149116740244504632153766192616373302535332644892291396378160635922137606925702340440835607899836945941297749676677636322151313680902621810452782911026184574329764207964974393877296654620469223899642780760052597810696372380567909829329483314315848251437891356918935504407820562889310179379203371788914269236316436003142506803017728095319514744979021349556394113508507079688779011282405435004937193449427395621105084937333413590969396986893777737425829374292499129399209459738044665720928599662180414952819879516299118070085371074098580488437541586789028711263841225939221522820504321595335257891715489840726839546767715008655036292239384245291859965475609820212027690065231689980931554586284212815341661237243932308149477588992488416961801581249521766357827030248427255394118995949574974401429050445704324766419229845045338598225672341445929076006310963516822102440237752268453116983900616677352909443823543033800839922399281478126541314504891348845458864980209486403026967451403196861727109108669897970978967674700806458906275172214041146951042085619631723756941156652252669661226812402236868335818816449271091166445581779099940697748376112029997001126632344765412223842736254689622224408030188771548932299626020394969085533462589279282730148730308163454693074325239728230334437019937948284988936076720058001983427225875991307060861951759788969776593431579612959205459899536993228477392323292517322255386398329210113090825855873238162838346103046489901939179486857431517018689273547657327009302135582421840014089931435313361985098475229340374457559679757029120813238807705205277316603228477191265331735754784675586665997689740210310122443380500503477865154588087224878283682602302067909394819875431269086460655221135134927987466808505281635672027378722436108321690753688303201935115415584553143267945402854979734371283043626128056553020742696149186571857456561330242078883803590175968975163880458602185566910763581103486551327421885999718530730595607230019164958615427282696885105975336015944792114424855191573105471622566151962757190638382271209339416297169484141033669549803208008065515133229754915370879871884870846876589350908501766771944230193062006058431269395751387106864985057876164423532247099625431105267083214504284166198144261900198586019111702603764413032241969272076750431584006176351975315519830220613145217007558253974148162708419473531192645644260698701073033664221851718943686669469443534261710092750875626135658154111273514702169354539848034185323839618982891105219569820616789121776852839460710135723188182576810615573530872999390979961962858165044394596513084424612660622375276378574904758734676469441701032160177932955780056354874166108887491007161390074482742810827928537062839739542927202565220849940491738432285430630337983843138708852287932353435801949683200056568633419556856842945804885542479288005133581940714142556120119925459703130109180704738973056177945342104537577042946438025146659623000331229373135516666967290832014491496115226582345453861848285052182966087258362575141721271015899269830807952418820608119432501758390756846478408888336118797796911312872682506750753042324777681358121996084566034130513131868912616588613464912252071658686262870105995075002216946460590333824867690299921874542610102063801277303568317618665384957967796629389360251884664536748491073399017770742945246456224437036483267420687038898961934853698718875841124348727304247180576640112385826403747658115889888374551508644668443575124645693457189331965759227172774314105990616389202303601754750993251915621249886994546531865854353142767590582462451343326721615299129735348090675537780274334573548240188061786001290189787657919345239440172728674647839006315189906531163264284339741040550978429906057514680161885988285039637973425572789951739543627553639481914244959705938863985254706157226803138453243023282270306792550086201555437715957726715649173936521239912900302225726464354734091919867148115805199204877719691892232876338554297342486531129542223569003578874404754645899455097049723602514388326037892091579819456325383381386481160882116912806300685780216253087985798746248411906813854581871860291684067779096287181503516443000418112243130585137341177174757242556730275232063266757379721776479202626018309388542021330755391798506486635602003014305308394467436587772202487975140902247719566621762380181213466877705204228987081404775470504458771240297832543756539465339755397492885190789452121780635067708765178745861145635177072266079819187589962914687993687438339677168839855660014495265809695367722072604484578399439585430855275183068977327112644825525808100940481655407072942796829612906849677788973138353082646546882695287259523790157365309830072774037996513639999504897389480522244930995834400251182245863204086045335020111212771689036864199555769923703871603960815246437081860017996278431560136380964664409010997875289586587264971072370300690251720044964488431405265462534615705667068124113770573523272594173877879765305674158671204575938452855950890896728358344763055867507176790021522173789883847072591556405887418487481284117266319244311649272495576527846976988472004159365710152436114952014912331469169421438626514675481845483370789744423733082054964654064629508793652500223855283393752123624005578668482851942275526978025721203692711472360487609858034755164644054963089458301801783816859965561555734069024406396219858791742729329645256309151100517468008321460228202518446531040431399881317551672087277891117392038520925912578788968222366025920025120120419682733971257850931700414462121423596821657971474499605930648079957174849402510838529016879178139535170024261161403810986060014895254465802116919835812667195920828734420245613196733453753404043442407036134102789501334111961318456120978913227039939528279045468504020153148329091544937623403215371022973453928783581638523195852753061274319717143225848194831273302911650305305004645060560772220803650772127208854628626315650731647470839688437766521132392872031778112363433302082839915786048570637063641312378090040633594407427339761717029452591146339055500614488487102444484071348386009437374338633970309253706250944953536552593010658647357220278516018236409134186110196681938618214635781557628155028489719488479003107042978320736438983195762358687545802805647363313428163469752044935894366672057213185091395681462131676170168006934568614225778498882471793709711208146314275228788404539690761423337853311268225507241411691594018985244947681647739994035602227756721573651456562599683966807895683445250872984192294562001958351665904475298111221128425189367719373755227306338861652529409257573892940808452169627268417766513246873490755279528529929586803349330505282876351978131226861041188203449964413462961552823752434822708390630785343677389190173038107655070776833642532128915289137118824076404240411363996806631597685928213997836168683624664213426830574438859032349663277842678582962086359163367618754166526490837920769317273015623424415392635944505014027952840360013472963414299135173472311718765478500740034590179274228243462314552588160666990449760142735100630410656373113489276564206140763770300299107645797040176366117488765369679287151320161600058534668425888599119774363218834494344289095277363893913019118703583828500242620698774932932405561552775562668526678597268232207999004766014901894024003973650973807163878528121786366727290729552935380758063586122439398602463617069848925061102181437046419673172675783429804198003918081524348303166682019633770848050757934075209439250905444621997848295558181129570649349938421896394689730429469951435563794278309812869542018637355425664375594673443140244418124223916459590605677260823712882397279641294329946776591090482976386863893588013773491004081865544052982797858821711482404007419572704808434981165056021001476509986429219488822185894063334162500461142595539267306004964990744708891624805108177199377911047111228489363671766292717585574718756081856611975460057389351783796124738562184575569325396372081554585059919718804214692222962601507763702764678552060133186909678670668660412753919192073239093136370293991201157044061008217358800291380403385448091443269207078277002017452419691645665541429602486752059084233615959116544865327759538169670968099444803826803981364495452850816053928030796799638033317149835199739670977970449211968102779157280694063004406233883942271087871576562258071638722700250752034630757783788151392599379501917633200511799116229726393429751833549841018299503859018086706395248451497709433738636886933894208322710146112718301118111287175651309996378266387900494835968538681307374232559758894246075627510417469830004690943594611233570907363892018523196754854290710196724766081225134691911185324464458373961132191429634325232140747672514889067143067320704625705127299407364528152950444342681529401733804429389214488013064527479167165993048206049990232800112434708090528940694021314797873051498494036855220610242128321365192027521631292297202161367485343241004150146824643880490099264950494956082116454652744420572270329859865099313883401205452118654336874009530754797219755970567260901219138096341445978040106118492469091181375789654929696127515725760613839121269355081580523672451158643247368645656737500656180268817068509756580784020219433642133482534620989708046964174759611589589119422744315632189068113247100591126048856747289602854072283477529232679475666821204488081684202798202224975389141300621006892401026058624903680455208436297303770076487427174598712662525406712474117087801755338963051798194697724419763897152199631422167433297478941911045713073381554411209067771149638358882241379605907710215850004241539386207495549922458921935686767893907908573291183520164164888337888222140420535513044003438829638397781091969111267307336167651471469959257680510132408963469484300541569696759304263887824012173723016893862465531834994938803740210137429299418065595442714597464322081969381257708246344452057342588668356042372167574417115343762915228116978671322612422875229987110663651633069904771578851066244645643986734275125424873567334758056536794400064528611074577721117754026403771897716555116914172499087509511063817233278466310707032501767776552512380073929072911517504531553114582495543519781002057300044780056108762298890305538100282515126392271676129176610439575278617143266010190563452749876667772702085077489952226606257774036799956925380007427391496488735243945688015333249475262459592488381260520821358317886267314074925282564057371687414932426991887180636518464307923059921371756718128928347090852982906303689277730265336364183428104958291949919430412532937816198456086690823779170411025708179149578098742174213276666003238068390302236396224273968677106790750994120240559695419523751219593120604996974137041419082765340266548499246604760871186080175567797432354894441956688845473315279577577894977309105582491792647509272579255955552507799183213181865223202758604245551704061724148713164175115664165585645304123785393174383422369156638453958053451685343826303022854784597651578906726252191932722586920920808638213055302387232765825453303071965979035371185138119346628818901350673472819291610575884528959017945447247150182258201814599255785681341999105016455280397049392612363018451951532994877211683406733624891664083258190081273762633689398808770042251066323577632136597068487710481040641547075009017128157131796815082897358748017772516393404984447159683912326504008798166863198316041005919153799685169846361560654562987433865386202732232103944693173163706429843555597730254299041264564323947903378296380600814711286697894804729288381936453329917537188334211283717412658653511917061659008092383754102861368953866018993786268113191562015068328095256296688271555594967922712044905950601153923974031143391367589455493010875321606932696345379903460371874559040380640146170633771074561441425726001412873513917189074797876587406283095740464303450136831117200177879159019788108948125810007228983555498224008705119377654677693488548867532698391868541517515672621993370475540360495058561391564215498737506312263700639540708002600024828459130091060350338089015676791764083749722214465971600041806917566317244126605775827689672519336350839758671239978655963868951955714635001310008895739085680247842547607083317327567577607131748251903428755281578866986677216567792689857892762509298012631131929969118404324460457863876978187094585321638105112541933475622179538971716916042270495514739162267904755261040009751280171157205634600868645351212135435868035361218508325506893477679719064485069019529727078159491135413795331580462024700639736793594179691276614386712136633225537256788808977898084182230813255404610524079283136327101759604179956835711452973396369944652911984451778165444294356407802682274033268282875683264882175295702483377685140738432330642958318360926155664397371848763840359552736615073545727624833785955520405461327792497299080179703162822175144530158068160424460490615848453450964205244355338160647518789706013335090339629565325203042297216657010700150917367802167386868972087982934003286667062617552897947441048664215094805661785597467694935632315878003395094259808813170028940990036628522538941110129394127944015568638905958290552563014181480885486442740664281679632479760603552737745966062453318725953074824483210710054225632972192885764650920483215693207205522517224796424663422604959473258472778277993592701890396187478214743308808506843849151161144633746867712220059494242144542337769505903814094666591830408675263435686698168601524046480151214843068951331008268721515774474917871136287835680484686024892407965898135991190964257557002735642821115685141989470417680981135576887434478275228296695067667035889962873404123640936504211683875234671491973799144150401079803515679738517300503393563531356789959694587198044659792418495261786306987138631281179220444019543980515584070366918736372484013205802498787550674854097942730614005629508637742576572530632876369039735874880599824553407681410378225161063242488103213176201884650761381781960879629354536152604493847894084890083021711754200950932382299768520510557974967951846900518783720580017298608093618633578803915770715178666250355597709913007791890569062676929607006760448100680274010019564446212158540291316530489090115236675590685421456085230552181178195196527573015523821736357629433320641594775448707284919072139947273141240981733680229375745598898498269078784699514660149298464221810077074386213460618972434175233371923349041376785123163670647198122110357282959487450094436980804510805660295316031833565247753669498975614822492892288615830839917905922677612947644463322088394896497550537334440563249332878134160274338886290470235783965348096398013156321457925976097579484419478228820279533495592472614545596556684454730598354974644913988641469066509591785348133480328582177444645234613041356269244044525716089766504261359995212897602099560457894302810130265216576804665608355780174610653461652929239112383680206035492754947544138303100807439250791448979011317878074301216781759754568205933010614852147028280236146557602975228532521901579523355360767671598206477077217261935745721966184062120050315546417370102143335053803329771226818436273845743744116913692205654812741378655245246500816105295157391185788564709532010227751153817399149956173351914433870721111679102375643587427405970540610631353318280552332759876181018042952684807718055690779818075921151183383509965223240792251567222104707518680440965997324764443199630188210542437322638156958725229441544383286472319859137220061975336566838167748553619007045547779334990431194347986036086143699451038021183089912216701001481320023836470064997079243057044381982162293443750107246516872706704155103497237292965484883516164795133945365368090488749336553962850691770101199863419246085309276676901146909972866423770295699747403827070470304492093602541735808312268887131182095211206463236118946405743371186099389051337975657951200402338266305408655749446255341846136463564945739444641869034851916983110450609098448582263782249361821091701889596804711186859092230496888399263380002524659204384015852709731471778795253901260357032253161139914940395534048614501597960321611827248184403697066010732434226059575920705239592871914076579818820674224319109778592486614980400816192146882393444883008420545571341342558513033986745568173900389858311560485001439844563358650705736793302460789495179325988531014564908106756694236597968258956480950771398191486627323178773963179731538506953059127103637331745846908732331050341401441613929752792919090314209544842231972039561068035622677629014500486164601267022837887417924937910724268057148613662997011603562696828837555713662900719398962286476155920391442052131309669542347776294933775549047306601918379226023817512693450317025399808497470175588055978739649524547794141123866404542298575834476766643361810213011536433040747209010514309809403365416140372236237201861247657903159054885111159443543412323211412370942649130887134633668099522877312358403948890217530660404831098702800394090665770275889507515282690474363923394744744354762012885466385191030808052793640187913158230532027674884209034134504461371780380305971911648679910072026411443536321729690123035047362220152082079216199814185640774949411383759832368374591270139689316192758208187177303319237899174663708081563142139607004585303585805642033514533171965065271211535416091008125147592146582552353748567327449182550730397597902327262549772680597204813547290953006665517346989311352491264682867519567471096477208695639314772789504099097919316729386730219919183614633444063346610200301835443963996450327831249685586614591321943739489851186987998439583353006584212276277631645599105231097274584200153244532752751165735297329888933592999769976946146515273853609364092872731156324750431610494460009320715796786326850257474221932097176692262609246882802734557659283316601703311624756469754108049162662316486059782765522357869016444195509533445836287440325401329969368127020999759613164933310910540538037418529876257738495263462347614153561116970308543996013855336297411956570297275123626526348556377718928427517078446730571905173930703513077685206365483261127405208394656975377074126847981338805487643832959815159922863728962840396561464699439175809348613783426905757342759272848914154160634680699966780321122372253857201980649979487667233721499260067693430604090157512092501018600152645946074576378712888093755843704353100101419405172422343249674597780809733404771477351818657791089081516333468566259549283819185238970045464882358513226836814068150193546085757500508723005697384223000525218335326598508841175376465301053295028760074355039434864235184894912830858638909833199976679490485057791433135315694825064722869235151853322121752137854005027394314066203765357611082467880383911102910990127584491457598850294665110780383594339148756530679163224420968195094230005941543660960461791198169353141844586471879217137055036047467098030086931418696404722230004533982743142585626455770533114272284154496009855326610637954907719609731058507472570531585278891755062855649987718528524317190848372152210323735017434502684900386933120819686562217763025576233660007513377234890182280620989295353672079390873522114568741919617476716359470649562655231033016787291198064838992532869730257931356491778469581862967480712581061800422002604691771642097592708921739487666777871382880254047183744331518652574130330667461991334993560470774215505994846123633336142028625991757910910166601390437970989883914312425890639928820796202296488052223982155396843918858790949533902423478520777213680727060390051093327556424577108487155374810776047191772926950745724405006923943221716662765183764345012228344132676460301711670342531300343593950553271210611494409099195171498438070679646552384532406223686137075157563771545394661078278894499582606800183534000560410816855346808546333491406801594119718178622232263463199537537307338771417760338434069385573523566203206506197843292959203398636325506596901639383977342059885710331611227487189867441510394444036614493686733283965741791492895751078851307286768911534956945527373232972159943185970292820596890067186534933193163649033933138885778850379766292475295322103155846192544285966746007801398023238235801047266645234862385503171092221833727122827051621771693573370841113514972863330964282950977375780781279155854410368813540598149168379521204272008175756626545625207157869608398974482040880079203512389639525457065755426166089881791982575296032439456667220641235450548122942377046049560883964999879392185437688020304853546975966434040633506980625488770047301495969334533518270215110833205428899336379389699571477512644448403287534591921025194849424568534574734192288830539701657056827727343366463257967371687499722371551922848429224753811686427991712877419203588081854727925815328302123618555598604601402727137851389380086758582247898604315025660316065813593606537553750334520613399582758219259063806784089199256366518446291431694303516665393113019405204227334961520420666534315256893964709322244811147839927474756045809745171402422997634141603357066216972490146230268674218618856031370683970551529644648348048512423226784908889759044187307834723937635497945268430601565258801158691724185271433994565375856930586477339685790515236949028641816577453370540427700528471118013371803466163283057137495976647406240171830133122455873592637636334491251713707753329982398809562825151500814126791348267024406556468547682030917884536361584030315809480760559684580262031264415479345851808532266913758565708009172080566050795333004987768120922560244636813603421231473722022778885776966622812166354798936654321045552649440852060989721333179781711673387488703302679903360328792556893767819002691762423466354554746577624473262258372673582236771680913427489696582004172400066152857053587409188926511527825309241391119294152568024094913631405157225986384128897420175926681052414967530413792902025237491919126038388512877949571134773263571805416239770299507896066234132608874169962725405272535882877894089850118122697006550812333890937145985749434184016394936492244094591584142795327609469890308921132030542606245732635371711821623013724185392059205115146245574538345132802298488370786718554486469105232200112206607881788114855284148892709194290865813885879152369587372529102910754475270953536249293361412400265798887852543988181387269436522912557549126071812568327135027659359399008756750829580307117968961149326824285540094249163954287846714416635466573540041329176925614183845495214314718331469685729928079640562911207964163298813584996818046451884323627928931460071717215153943977553366378268869391109176317859659228202168499677624984379385838681642707858060057259633289588203559789589404544162719372249294248348353931566825776245187506861487467075876410030082854971867271358583144387568101928041417317155312971838534944490516955968448534966338790389877475067092088411352992723260914379585268492583223379505977894580284764916036049467723865508092379249975908725953118052748572969143355903672591019270275737658041670846761132942959720953552254858594289759318738778019146086247268843492177475657015963540768190526410799379949346065256695628382408832535107889562116080042213585933076822979776797182540080444118732974323877076923539262004483052739628833907373679796684916591169516910540462726007543599237829145752902615021114818348918960493582366994198125752385839639495933864523530126407812512743973973085764059157278193239205823049185563266511942649287319907961517239092986172337418568114200229086572458269292106462084543994842252424262549379438542454299411858962214472546667469972091639490742686326651890637512376212306530506845133435945548122519312083817834889511932900284956724556212189728721084447990014664911144031505141783752237685699811808918391632167526366616733885361997273530174534839868542138797533507585996276180239434464231930600269549503436042322073232167193591307252756051603213961843404158160957186269701412728724295547909707604202864600896913273578951990763286796475718219330713286984515620938758847355724169469300791656779989137328108160951740479125575240507488992182801605758850840449319300452145970268216455152733224889880560452296462661580745085159821882387738218250783891435245271971805511922464400177728104528769780246159795361650264236912998911580348003705799574795380701579718881620525670226120852870628773265503016054553565639115111587045836525931879204309313065169133335607913610304725372105310428561617369346463888861105346232153278715981665999870348071639000555281372229243370235936312654139961041067060617595035921481673964984710055275755276844586033212506868226874232294019977207746889005493894993186462006749597198709653694750365592363922760260390880190798500409365359796931803019799486420808053885020293634728061510420556652095243538959161977218477932551003558338047231238033075616582928970937663927386897580563600546955344401179210283618060451243294678968537272972399556368507958913078618256521214889772987410963287929563720952057120848845555471371514429835698532820638787546031245654464250447065422263361244268898362879567574187725971347113903445684062459477624028706519786703295755871449198277408548664605866900136934842385930499266293244548630875260366307443614257783277093332848953412283372448742592499856325534496569156711942674780734018366751762575394258788147776224135915380973373332477814534107350257456902575191927843737363597817252578538524656935687362029706120506242690335294475366327860675249303006473057687413460676742162375693167517080430343385305748302505995644468229532050297083954272077200578394959325301343973771385050312222611343797209305251803670522309863559729268501176768020842884248239341367523395639451754785366519586043426416160688509564544537241039551216347936023308060963819346734243075377856156910324927891899387285391182288450150067630717895047148932286879021180854592937901511326146690414908778370479548748287710287645614299734697184145230344912098562887327196278305550243529012227724478715400144661032626382583762036371343313479760384387303016371441146550849192299264174206363270453981060524927044503956496906392642259136090110702330689292172301655002993916446510333420971998448673501739127285558676353996296299511555820270754940912706642665053662059619199151756176087698770077894866938843313318593125656675730178833353771100219891520977740547980817303298185779288569554011013506364217310790053399138678434239876877445458791717670070766157054855608704724126021865039744848279410011076053198821728541390651623035721446830570085786445434231443646414844288110604832103613866243545808169512502712177672865241205008707190083345102380398143423866692126260416623658455078945486916783700072764093733016968233828639321626572838936556215312976083578306341317347835496527785628646117870976624099285931141301705784995015309983654368154163041816598110214514471904805110418284018455345346149536434672476078122771041740023985298136523302156650383357699318909873625264628680102239616959329010315356965872147494799129317675067231196521159884927268472098193264661226184551290481659205759510548253141236273841622741364915800814088000967498422170853067257202049516879334114921609933028123393303097964500546571896546621578851093990878774815908776201530296100228048604246141092629340883538590206812953761841858023165662620285055580044528535267459710750488985791576424254487180120172815139754610333609349173420057858132239278948087988013238372466606443685272475326065282649142858270634225143704638730947688681510439256852760131708358147573241734134273009494711621276402138792001009744204214678262491633312822705188763994374410506650955648992406188770098198645544888628925113701621864265571166394184922342659438090283777314637186217362122032104475401971375752453041311030535996221688729030898807563021252935188678333673280247733798043480408693593942322367453665683979811499200125176339827328720028219809469703291501179363615798810329735903538015881079442546465431604019468735644944494714732250957406822648188189115476983541084806999009788904983304719479092389867243543835002453624008836001507097513432066688253531082604872627471273716464892543832674108937590088902992347235241991740998320225796171704878651419523322551331420679797398161962010590936488856322018506065250727290427468510802455515451329206578120122131031184432221621239260216248772189546354964021835504712886987691768539119766930418431350247687002451307946946703926368039310894341079693367649163221792773191180324988647314965429009373906810058967498688267145683700261870021861164172646559042082720692303990881235419978730858444905679392923373274326688994866426919172860435504948200918046675012578626860507091650213891390675235034968055280023554469609373669166225767792494961668332457725601760621676525729058448878106598403662061204938452329237783718941316625657454843906758532741515758092285957422265021115194093753624914904634855463898638400679864050260850704524357616503709444865128241770709495676740114019250627197862868373289662534096541901602158924473466957028110163179979748155593068078652903776601675200468594983333950835916298762530204791083333299694087469823264117349830497470371422882426645524989942168190613755170593457877958844030326119954933571817527746040166396935555551288212324483085276027182186815716129549298486980298092539901329141010732806691814107887045902902519302660590443676295885167438005608884163738978832360500895063044068878480156473816465389036904195461292830223222461777267470718779334143903815626992127782318154224930773966362900433663156981685672742454589999761350020824285174313630947592595871227997938396775054263520665762842578807844634503395382473481564322528879320863081652272500455571230403394889536105984525365753959529966007425100241395484929545073051320767374639492876957495299585799791549826147789442037417739390358674785427435680041937816933422469847990376669827986619266444471116091391906768370230261505008479185797204974170501335595903619431839587263442019574662898293867450083736024696510722061126221683521386526056557722060482255752327865619592783595340515561812633576439575433047442665301420805602417829947142411530468839484716812683841533841104236227639835508384177223515184492357953899971694013977217842747615169759646115230484815980507063917864861548275004525665030629277452724259265351860777746054352212402693057877935851792449192107680333821059153148480907064778653959558615760853210006580776690465369574696332452121573453923308982532010531783411332365405530603518269244779542707295398286636821083026730723527096214053299373984291645354176744648725354456147101516201870585869517466724295692616699854263691135990066003856091377694133066391031306515159173153861078972588028074081161482647739559868096490223766439362409651973721387774804140150752765613853095159803731729389246880927993109990369651871561973551219323062498530654622119487701685074643561429048376594652104923816361468810163353861877959932895230389038476677879819611322674557060972107098516511847069996943544664903216635686988909533274319399295150965519166397448307717312831168674258442509956737339171002357205801525401639933146023243375271722379139669446755269058105642452852465478785914381542268873266989650980708287966163371538855644601045618726132439448063597364953103244274083347521587556352863277828278319431364882334476009716037095143668946384923636783952002420107403803346002050411404093449617742613553677010550585632212887686492929911432379555342050296961983726110617083819397208073977019446162124871452094866436804049766346285932610161071236836342346533554093659901156164678142796263751816105389264124002656713166891500810353166754606762194105246195766970974141255632852927729133632788542100933836198949479279061878998692624998188324066721747531176530950398961352327100999199474229985028132539695354715735682471028775627487596056562756151954136508446717168646062548782682080829185013766876995855559820153254639754669581205076280701925068129146446164773178828929544057105480756557223400834007513532571536550224603116444058749798902151602366563318638171798148591608885275330274368002033438889291942346010844312150190630954644831049608498763813912098965499744040843642168801570427979551182300839883306374463572706676666043410146985131551832565990287745753059567516632374824464857123700668751149026393097081879816560741982241027860192900337249564036820068753726049549901449884152060147875192668383231804886767308309273035087876424110168243589031815830785512136296005316462308164014525393970716659700963103867010878721313989990325036188485236820418966222733166623720182457263077158151702580524640021629924436497887227773836958098169701455421611818661794406409937614289324355735390673683014090457971931365221225435318423905894635235894770461252324543882674357627313138022414331661072236193344291052532119036727788165226030321864715445475392380157556948414805503218101431851439062780529583104171884065657858797487729810126625126367829957018072330115621884116843729789931853509542490284142830750244775990380431581913690265499587991444560525065636744155189713071920507075337920024743045890810656487183148049818180277006622574899107905508424260749722875398049861358652757588456004541149560623982223770251521071766737278945760719142097877178379140095121298004038170043035006673488963208405735796299338957609524392717589452491576630157654604179625958103807968328147528448641856654367163908255157122690864853640785797771123258424604047588433378532636461332084324415738312375200688710971668714139325613536522437431312927045401621335024670001847066239943764402005647646676048257621413308584874951632603634531132665346197170384502090375814320235894751643315775567242357582893550971973720373660547003721065123476309575675186905478895369394117555535855615950284298921783423804743612680163422282532087521110231334968196914230133220649314094853841062537108726248198943694722054592400281990612207619535870539499618951403336975181704081223318915991594668940657208503919407683222589380003761734562621142408860531816196820988025407004708868209092481140179022438400954726234210407084948589925147256911600352540504458163461178011404887895990943709865972409980583613203834143732054640876705535294571837516628601235134727152066277395367176673742331235164433711290986977700673453002519676041580569490518926409874646348633191906688123248127919795711627498228518104554647792587450820760454904508886830465034691288970310005148094768996971451276457222197478848677157999348740988181644448542504510391132327611185053445371158068866002848904371910524415101462801421446097854802121311857254170500932997806391770418927794494858151201000588753955485676052326904836070176961410706369678293873521908606827985390453071511845524359243687045309329776331779947010279480548806290445650233244381518721998179733651063443478107438135264008307693946359194567601539011922504085581726874856832071220947463488098984954460172411575504074733659605786656546935413018518143439314748659156721175446021926684652656208759472182769471736498965412279366465449902730168227525697559408494140921502869044709210909450190788504138124941504320394266890607594420651502593080668067241037106906422631449387964286976245546192636977004289577954869027985455668997125383916236247906254303570089489882679648397379160786075625506554430357276680433657105332806707716224747047236553141389810852582318657429970339186842641252846308719104390642364503047248963734453319091297506855440176148479921751609464198171300243431749630648845547243437571874422647622847659093363102305073063289168413105307121607041982801859279103146738414678352785951957451157751082293158203353233381576890297177713202094324177315425229765120568281389858940913701775113158575659799103398776322806323426752088218311440217061779029411792829930802315527983874380576756995610790379226196574237137439726944149560186106785888586494209715591897580793273498988157036749920545330222967779195343860887869039316099636380609513528020584059733798621524340234643868823778440542952666161050282396125621057224195248154255112395678867176601748251899247024541429216974115162460636457797166749059345580855632858821702729032432678054281233471914396099898992893068157110649941172487267122236810774269851083238217392328635951226200362628676979920891159050314208627720936674624866217356541302212791909190451656055015519908018807830494764032211633024070948051982450405797877471563839244605151048517263066379398514969860287383700333338683030880118160962755517107936146705897855601245013492330773217461092694683032349237266752115892285362568151193953089972608187230176986396339649373118732443004574495404936731318925855787810228419073396674801641071561644551428558904353560484884185770519766092238398545352333653414161449839262661810502892102071279454355025041097165316894708244392127763636705240004028370996379327702271168098328603390264998332279430736605588012232585721390556095667890990448476790884632307279822043675421223813206577268034172660042466161304485574073043892976148436357948948959339377810124640110090913388147884409442943555705005167121310807883712178852859374952839066113232222888842126164697043438640955736248572062722642867749663173577825826638442951224546360987708138496328594635168435282624458026679991551755329992236623160020668574138877838620226615535267114029099020429325963816351520190497270091729397949056320042525536452361216212615559842346466273101949212904930132997644103855126980717288583908361614386191349199570056684299559723707375709559072065218742693010476036274604058096722404448135021576859103333641215411095807096098924546734704232231042291541100129792904528705483813543139287623612896913072196564668391669575235908529658595901946129607120183597297266795433438785796867820918068147695900849237993517154050052489439971177515981373446089626179284288240618107633554125011114277673153150823499144894139365241133391862220370177342695802515754286778943731980517588212001224386584855981283187391695708170635089827891828418816441409891278508048255310722210502307191090723815168015920362790298049288095110256225925513013497091886315462535131015071449885713141145374351313341628197640437797942404253303133978985172133473515602992323195801227974350564802888861203138684064550743376578728550537997964505831038099227701316172049312731652811495603905239099071790657949752354845315730598342409044523363510271634467315393146039570833064179276728073969385490444829385731741646391834757262199497190581574997412698308079030502714711541346624464595215515480665465406105276495153395165601425487167716856630998831691461101421219098814042740589946446305541532384083687254694285316610194857617604795887765175994937761428725764800442016954697627335396238100038101540125356329781535275849586657053304729704465581276642588897300461251902911600507682112794867159384135957367569469408488640694569225818558482504782972263525703206900796988133480529853535272619494963070329558360103002174899520963418050597182178270851867203140211685943833393353681654462162238203381298123114226877033479158021505444122572863491376477887912825528144981366645679589305180832505935358883989667280834819048351699080563894868654930327398098793654396679995936136007743062750364422278720509785170060042464208760716209513704480691426641511421386724843606503963990745827337877999285985839233286001608208654141700247148954134626661096896019042486024516769276089657074444714381974239274963163683320139640224820537385285958265671355421330230621728897908990841061373460320563839383782268081011928849482166779136187576803658039541657221451366670058966192042419955977528238895367634973658563298457045395563409507933235259259510910721540946229449749526311217360553944023176618000984468963830697203588520450614704784265356687388197874133343859127037615747356505635450510840489535757647197160213240279867204724314211952342012569183720742703352106628191631828320947722790961006063296211891346855808766465428797633516463410189849619947508008001750080837710362545896744211219449606559320386077794008097838595473148130484172678974977398185402920377091145399214314229161740938013024556251265386278079869534329468875242784517683862116198132637796156320834307655018060719776576499595885279871173278347725586741218856041138647333586246702309408756966479348622437870172019745560238102452363204537206194726403792180262612231415520722154982975399583866456333903277979055210234721377718599212422079278534487945453032026780812761210094569411605191993842078828848919816202859673525376132778007974027230756750374808164747610306167599710577808664728854350664729181283832576200988869146520660713817416116959899983453980198923023683614813354599923797071549098624609086718346482843405447327820225492936100710319222809301760320292418635903352321030004861153044287616571730494031523063422129391506160069016056918322644639356243564211921802280386067281504499854813189381366170198681490057536306371972641767549691520758134025466795826238921684612627599230115001165983406287593041586594216169380600877866143547528172557142919026353073494262105513683014542572507923790984431551436396441494394859612066790130837083329429726096875858074604729476368115961365675281015888501977114945978808214155092505375221600964453134598284067567095460605385505987534657113504441802854066698888278546327580762211229524147780727321134201680496222393666911234718150356120571030942932805094404259487636788239073292531323335746931292977725017086509775904750944344202244646768486609146048143356732933814167219914204537156909098358458339488440684052370432752194007299962506007059720706844378905890408572608489850868385910367401506635458430799454932602124681461406322812148324083087176588816491296280073180298488441787292063239035086815002149520458560941432838393904363137820986332808679764298099873848027632080489298580165574624137712914465119629193228338046971208902824837253899674153239692990957117400609765834627238959643759915495300873034303794846897576383975391811542507435503796089192146006793439687682487467932790999009688102099416362991330537367152116537141800054652994118020309558265197626405518086257080254400543527295773122363765696950162295202702957191843827754765766485431349049204652900933438998050376232767736273459191310326378955429492139967609508266482433257614984985914539447818103899967545560175187474825543154124404130789610182303029937363533493132092321941605835410707992508431280322934907830359507845677448997829517680507443842025765863267159092363513026619871562532656241758780095887814171485637745290025075688960190160695299171299633380481078334846194799697940553747785811772106882427385801847942695213332046629733747567832719652792007864037328193915373407418616496503760628408405889797162677621640414319358546255994429328825212335523925169056585862052695791396147820645261029504681627996289943908891883416249945362452508538028925744574408227730860971412617891656191420324491610807034679764333101311746807089980462740452112385467180202191961840772758768330673231345557581195362676629654656780982946845301190918430673548421124478414430852349217718352111286467255563958855608809481572075170983970216954764186765805814725448199836527698065984578577260603969332414495144854142858665773255391820421442650681667741026303687906780127657650667239712389099816891725086878210822996269630386537430843667111128696776505635201547342939137399706178821021124524816261918490223006797728308009914692265530112882741872068450468030658161969886149189772392226073077832380057691902565672550619947814324890230232172995637608056091025273949308407659420570484187941660602264528042154453118408720425590368791478007966350728070129184941806505368456872691234776097309268527242897073470211567834280441455827971837443610221332460650110659726924310231030427727445298064723111643233390569307427353024628178635417757750596705703876237703176890239397389216236326435962877837274853708783334096176860835938288339820555790945470415925428880891128948789471936567118519697961546557817354076674905998946097826714952725611263346201954312362111866637073710812647510017969991252162262640360954771658208870450997333175746237947252634816234295610536361990586917459695432920014330377312187716308009733653029474165193428111705718896860754547790907548644066100919133334288930666985979412492295771555617409308895642513807953642564756289836273879806702489713234187226082100797562195156489624241787750019365413255714223755671606282743095231135449769499542958170484679913790638225920363761926474449225724386521141978315459755865033658347661797823587987410374812660686714186465112128307082152652676648527609573020476879269120150968943415793910388552088239365585033459394811142836754544189798708672758982474518711340896859864370179951562055028717025856639518464205887352858254125803324995925185937878404425645758175543410399865135313970814849476620630759212615983191835186070191954736744493129576176208125349492013210092674443170704358367021113815515418650707550414507929291796314771019947580585390517728496097217442519294123895441181109676329347742420624966215249338715982587731447041896089439490968990581002968984842493870006478965214117047466575216869271317563288626782808779761474008966782284940869899020927888446524780719487888365857262848306110412435034069252005603124181581590458876608842055384819133157705250891257952463147965229572929585667518782016606341397874588018412034738699093303497095900956346377854585526774773115042740489383492823695013441738824883567100173021233288259458422656983205805317444942319957328506386691879787447534831520992392516400160424552448013585587358362448125393712873354018210520750025699827282442990832752539388118984310225337478468077374837546722909899849804984619459518046248836997842211230752566929527503728944690415601866294965222154553427507977988988194986215290522280002663856034252442125282248591528021455014497719751557090927784955287582921144665816259360283312385179420057611760203318618648177576351650740162739766184950338862156462125360687513548967227950344903805211312727196349117033716711482264562625604535411100772732628830395523324885978375395313051322220332139454193428018930025621997301746325809985861493454118187018976406665725297259077558111976017372801112097558919380545567044092367684384467673951395030765927218015176906950601795280810641337909328205685299337717625012634869690131843511155508578123081044383638044034927709114731833307712341446449514837648183402113160066761521300609890802379242081101402192367695570094986342879778385535813569168184080323125501126988387472551142721080424381773720376554334719814938843514042559498050616223181441698117007790128006105577670979558280440205921397761478199858559236373256104710558691748686624615246630732349237962365439139969858276576385496150975424620473054950813803847826373931666927426541169517523481810861077741372008069732249793592142268142045546665437910300894116235003575640169388882142148508868296234597679627664150167328585513048999718005085058758789085254019138224679639971049283616515838433657392298780034820751451368864774260093157496797152071173151210465380206013000952373605139989386224391620556312399739958633721001234320137631716331808485164908619456166945777510587740382824419299761028392911160398559901311152227396596007476807594135845698633494463934354687335459951446964616204429439664963321309177689584156075682449929549541889886109415423659329727972283778165951657830493658638516124554017286126721813731471596827037492235571784654765833406863441731063358974837414626694683894953260733537347850115927038995727370085225191282407270599663151025431065423406387223673305837825560103862386700342999928553132064780716310647191912832851770833443592001403679648138306672609103455698722238648577944163296258598898500711449506756129904148634610992542859068103279361111171445359189553951033093868141403480416288946185470879053821398140938439756537873310252974167075946761060342061201988625300956842090801217597004984718810986794974910957272520507515862963689198533473915898008160234347645871090105039564713283801545007616238879416409658965279195614477918332150015578914764861733118705486358580646389953757077666627246946070309591949501766810267005353326648695335436860640366165444813442682608302650199904636071050147484954998893330161466192343095936457970975775171729092455090855701303800805410599772621040662098144934602669075247176809376782704469383863609380173755368205723673618840785159422419286744567412622254833829630792837784665060961241120069934123910858420010426580364340123329667460432758079476930662279279362860912956493085853742439535847467013856550118549318505706328577866290109706407394365930785461779637756969625274098036667638202977464216231162857281058261488575028781511696623944368107857949490267239370589274889355559715250471108483169149296581797288088163244415311322793584828115877470404256843147082236577455178916333241206312516071813998562342083840946291417310529388188305379886713345617454257415490888650172859053930791590834286902098223344477200254609566792003063054128965691785826420286263529384813005703073220629157027506901763587704401668974670664007893671852196408735062596863815650075830556354771605705688040953252736157709174035267392336410633830145603169177461816198490395363253834419777616444864350186790188234532003268035538722012357507321281201580830360611838844231839123453671037168391445839771330044407895304457230049588901406732896764310730901499523080946331934628788956011454487554504706901833000353939090407543071377176147547634266371987155334334365554399719668321415194804551469789250119703352444798639613911692124604220902214034802915422822814440750864868111908164861825246761827723923215933790541760826493870936670297666648252800446572801412628087519338482671316225992442989822753051071636450306415075310607477201050255486630070701236549488411953220876964149811836185861855773650257965519742509830119466529449506863282160591922573559210837987971923494525186378998006552026494330189274921317458505971448143046181290520798899425504237423124205821766130763066696340038964360895185369256229276536601142143316287525070886077320003391768374081457078465885524981047446826160014466036556337183938990919280005414458690968586306393552770758093360368602399471265759675110411310363311278767058745664259062124833972871860166622552669564327187068007242268867886563408699894849536183415781397643083575421457827853140893415759456351193661853099773374935166207771505595208838156374359587747683362804625465732787609173686074090023599582948796942014946408103141726697538595532937627039856439071626356108399409667944043417150188524243039283269296748863508516842574965991273458104008664095255687884093358408672777729724077329867087674044827866987991751946720169222790854803275130100121644751485357890281555394051810640707846819742003541850801957675185729014130307815869750314069781898330117096790443327679496662994943816210109096527953304512678381420910705021575670719137324206909081805652252664766873790313976817819527385036190093362765589151593553745953457325179871195865177335371311793624049651419381960584810654985396174775627690687782503821727015715838889306243703580231916830682754601854980846662905158685459756167012678493138060892147090376547209334957839875322309736458084040411001636697121199655096355928767222686596834005409796867202365968429182524548792451903125442103146590792707550718567629554052708389278349340622567506572223712740564566232795031162027820970368027825248086692338469202268690098031151490892900483947892380039004109461053878593578665324473373747059898932848684722354624868379359316635601975426677259681229476370389003019839345256335811365402793219944472580787487216291451527620581319200515426841350954346111842496682053869111861033742110480483327980768147389950573692454790552177726026712531459002791506040333735534899494648475457559376933216986799800082349979877524271651683691294954617967996554645320165535022829461352077990156487983734018506360691640812298509664453825881890517683284049576534517707989415032460921820389229778169731494480647056630905526229048998046203389639850421334011327214692128002681828036504637509819769583571444242625573458425698768496031741704182707937281552281923966965054267554151419884119929205510733281838346880400282330007142650032661154074328963338968114672690584336655429737830274837219259290474337334165090936968717901428518229198800796148336560757883885789774070387799472784660872238167507679812298318946930068445060038255084824318042731574943024007114923578537387496284101863874051866684616332191771796589381277211013271484717012925561872563098137608804927359269004594763454850940652885638033393543229126652376050231043236676836038458479533933948840450426459218202712247791050176438877468733500048427755551558491750946572961755653449405131832439960630853136092227022338247341675174503017613764265037421801744357689965974982393463169824018256116941581135025429418730231533175449233678252309931532322579480461985554769907255915402687833696014822814918160152832433044926326715448221156072135602724560842328714802931450666014177866182610902257414188777699249440424107161280221282410678615292433446022400889239996264359226505297338763286755943152922955979514328150801758396881416989131902384451554593402699017912967520299765287171409878328437800647103184683435949282504927404506015320228096246326213916914929790022854814206687819575747823161081503896530824129606758489714966818662157305024690424203455263318646738511273256120230855856244555060092825928891546547208490954828657030207562968555559140496461518745279220127626556269429842248301964243142629441355553866605144410263665110038073280957142959556719920534799654430027443184246010347087383425062567266871757166290089576291587404578423575544940400778841009887907717621017593239243390847558147650599767263697285451606067369872047072702371010769055862414994053361747109432607845517672307086251252697063989520458439324215994683582546222160063104115867904030347942956224953748385038748850219626907990728147815714394466851944790009963542399495827313022208892394808838508528762039421205745162435401839984165246679001855790450900253928270560474848183498819134946734304987809441877094691057064897047618087494014587481889102716790244439596531718254173862486550713225902004533943286048054342052687378577283603259295346034407150213867528295787075018307416756187224506195674189282579415223697200162934506047575864054572318293967941209506493814192443340390193637167484901097591568475696924369976948265854787265503227757154745937092969043775121739600367985234555467043090096349119938716169679901399811804725996564190399462608264162954058074465664162926256249435132304790758345562083539489011786427308947937987389507500749224197270617381784803096616973911092159068525816251483746968976662237941936423151336488261440450715474219679856940577766225774939017922827190149559409398612725292556721019096090613213863276001328835566166176048025654465328183202467651597397279150215977454701076694836755326724910411457987050625861962578365733030649613230041140280559604284148137107714498851234534194969250431749751965788975969644897817196497274963903543277358908534951057730620624987091279873356712703212760166413964910222883199970200897564558230176159324923283562185938093443240825884040496192150012267193881181202941001412965799909661045956846365234269975716976108472429656642553027494406366581253948848429520883693592529748411787236474619335864750540807370437288425770073384184939849667700654529093075935630470931969326882062191270420152464032546055849100591238007129242787970407454944675324764522609708244029970269406442646682931990629662996187610241227740126609142723114341433962766923143945296787641969285381788804404957694642461575606155553532051649854644833221779504238458806312592934237328840709605330765157527913449188147087832443575731526110037226746588658057782671866544811255181741643020780641109717986297999594126000431242905756954692002799799367628510778984066537883049858964106927396756044742780459405058654282589672013823055872823942544118776910194372591001683552804770807877922009278074048582545422348765994350607558094368873314124162872338983281323418334228738159249896287833242465591130958298671938906917848888471621265132557039988248974573204297395888134225077144161009126794357060021578249965348315785731991340635511024106844849072959989912764721241228729057442834695407732911911333960259280276121879985361726666439924974820003205048148644759856094229098407739138054133692417441405981558478537899537828109438938691814542158106056675633874757836046332559037185742058322030954770544878405903425437625688199100554396068444197150801740705775813522224746487366735574456013921871767036337896794296095962074048380653343907253131323475075590482514550679440474190260018741782127242192329226489440063789734769160385393643122938887499344898291709044775086953189046419849141508878019267718258703321951495908821350801747026018784490613338301069605567114810969290711615191117552914829406772008259902591225438262282533460086636963138639162913747925872264678808617669146336521976083429787461829887717550589318502249834281108183017744943218976536660508202093645667543823342719313161532195779157491137925648389688229037569749419696291003380334317373019228452213928083432590589453586027746954597141634225449780743436588199978953289634384976894608995526015490637847698531799092782235490194490400451949252919415367305509272283477009747274732478369016616432084195899864699952560265876055274534022198003203865921004484661654942874202237860443043464375053764776826985184337590786738053169402272501348529374934156339616793057488524454976199672393905793265969427687377821340977194969512552062404020037090136470289235744245178221104279940270172746955079628631670374752052522832727749661694463467983217494931853793319124702527792113238247101060562532159245998902424353408257427770099478111076194264285452271372228739379303623354587495362899765172257157541128175563604617741776417539368783079004046399681684438447430353625124654364019364159931533756633775260807734061971106923058437190555181609361617206418188912759945214147026758244347902541317750561321636433196688244331164728613911055308346854796087036475180296648204514567878063271835455204493025816737504738211213267553054897885999948561757147164589369543087839286735327458628302121050856263720115059736680834679098185937246120952991914693120650203587962635775259401644321040338325127481732109872231131261916333684355034612075716937342740796717814015144867109944243444290645907940971162581036544313147941849122362499333823897481038243666696111457450565905030262060105167094764619098244334635396562299479206846853945810130902346333480833617437718091513644326226100257029148344148246110966287630782927053192852842820612281955710280909074803703412309979753199133764665021820357692002542002173019186599705881869857134109986034495167392768038748265097623146425377456928193296338376504550713382137974475365182589983136553747473875580342986550592930322559074182153996943645623749363823800990308399167058310267345118153156408039636699672179478800486840833820469586135226627787689705295713082294097375028729586275488977924894340892901941513335012775980196550653740658141664037351387463177510824481305922749244039604667198661078206889004585677562869482246929098626975710821352296563916607813443220140254323157244296089876345394628118914903228421372921168836685478171789666454495885383973442006295837950020045581515703449027770180413228559144428277308728773296711474692484318710572605196430144727851713616915521289537474770159138892869655197889952924877525566351548790866732623811202357713260846358005277676212505577720732883705794662421403536873190279941377482957063717909752275012330150222965031187024744514239745563914436392896110354812109046119154359627269943943186699120643343777591370711121429163633935075033468055877632118986511109657089553590025742051244806965904267297477443931562014531391714861808063281085369802606741400951695314314018868480839110576997191571790876888903693443076787657063049724884344838270865208889032577022874354186200344582287182550411717219768453216849205881551063533029260179416865302555975411143741179123518340425476706825274962705381129903666114523836412148326839257525274881725350291331066287175078642635966333872173819888597887848598750476732579279014733546975512310319727426564511356310163118864003140912453912791054242226694875541321475958720511038026783247704179116035953898229038179138383072733077430927794103691548008658548196216055586685309984704169049618555894597678093392127096947090774424490906073271888000322277725848862472269303328857976787080475447772351024770561925254451016984276752677116287658760685911466798660394526510364633970663587114681092410455664812183389408768347474481684103683369950643893080495962117910910709493018750559865998468772985919256351587688259792907078625913624803417875572646124836429972242874613923880091582273766845071421462920306443788786046676904179841764978721143755341244773736845429630818232076949972937597039561520697488940082380089096891229241607817939016251962544187435053531553473086729636526246701554996769283334206554235211283871903995778177257882590007914850466906357145676070585314206827807666257127043831929928759196190937974145025087769476405954859807660382973609093635170782280155798228238161648516313630702614008879613559396057433993955874348121648492784374182132722697949624231036551794097217172194964784123941550192227603053254089034975211159513564467994044542076735973813783016007647528982223272224874874231080489855778209369118174370031166867807358372962673270036888353423750468947606431883353877292962779196240253639089914078132202874238416674599568739492929868538575762007559707588008897663192431456925770143744379834889533688168354651113865933477048090375741983177898428607005515755170959349812029433326175733693601162619074771141302286043856494417701186810359613905696981037628070500905206264148432346968776010508011984999167065134379108183508640794193149379884736262525152003677120206695973985322507949237669140130338254852080787267714758495543059236177149051783981438731551796680878810940941461220814665567037492429390474192007371031211996957720676730638770592235980644462415949884770276049270786400903385892348828063007115553444118392708837655299558371325673588436890833729208696233283215681403581665974825176954064788855645851144141581515212777128753526868646102172495707080067542593081767454820582813822836349575775363532211549388837870346362963984907314332971974545205973967922743673796801661722172695227914653713604072990356087232652753814008817179217569295652957889086713754383900234083453240839350883778460381684818374071425777815612850104959239953730991776434752116404810089368673376805976891180988018716570000469992091593860152280324861988650683453660448891034787811264268979335020192412947380811485079520007290867705561529712974514061410084163728224529273102863959350767397098681356403095466366655374745647319538227953321826579502980311580947630833951477193021712172952137703180069252591382691416910309011326015245778778343583086275959467686177325801892797042268220581997713962115935749580761875604799865446075634470733946106924777767618961544372271065878752765597651233072316563074011111765241655407016510961037178051674635886369400225938451382790436541132104029413633829047143282906348191948281690843103163096672942011797126610353015595628324257337726539828711601676652667150148718265509225309652894394902823216079220977211835632434592749726141265142914700957918925892231977704643991486016905369213782729173881656313156225804519521891713971469688561757997407610850683240528940094929969387620612949751692394008779492399412393456458352831210827232633561581044633309533739394076530618048561380728726212974425549865918292241583856229577008664532988436893209901327511939067312028424993726264114528648426451847555744754306462475897699876094619771657248162654056869281749009718610416282752064595721328428981802353047861705062249486359012703997318624366178135192246795536114276071021784675213668534054933453355687098793950876827387220496584604766316007787101267819719321230037350585486537690580543804136513443075389770678643213579539118192600141868993286059214429635179722528615411423071259732148507218204674814483287207838284364792429768213138926218191570681058065648045176736601487893036606799589709455415036643778004130891804237100719558475548770015188126905680668225265314773632275407016745332745790230804753083601740568034827958659646745039474403080465433249922876864618284042331814192081620623078919952653036207157401342199996935490590540405580646152545143651984211700102668040125864244949583710841671498200165219470361428473955160323382509358742666142894892781206025566657362430724139414362699810280230289299806913533351329790714743054635999818922004747738238105655359202361244715469168427867055898576128558060378163194831482489652117561035404643045379883338235515152714651698871813781469288730578480913101687865912619758535259135820994573483114606932607837686758411546854585622051619166486427683034624647786373498192800655695103178744369692528765025149840757315033833120830600807314149518905336405718212673861180910835145819781239580656957893737661107012890448071644993947866970184350475859735652469011126507389812887708403492950615824432160040787884121335957044442154011328986975417132962930527230753854558890538472996190583520502356558085099108371138347528450021884355643633004445777091208984256287708352650883646229785267825481768556165525658707713078892929907560352998059539572563511657371796204622091621768184742239427609589548648100465067069182241224332750163929291835495011276400908300046798487620877138934475765371975893640725299633795807041959814291530437827954375202779782176997244382057202634311186081328001943629876161057239454060526620454201948875991862576631255206045796820036031243588908100957641262429235971273676649981264528166539035888737736545433966410002985422073887345487644262659258698033486510608083670321478891577349387393480469627994213547098834203533067576106711127140064021890160400340096065590267080780593695499258568616854778070697561403698571787724034575989667904285802001299093552517971821812939996811155437424036965319097876164602159403284881889004677480847872170398219215194765088068122178224551698289302950797837759727991928055447163810234314816771313490692270488356812939486799924638233507535866789383478110002322405145091058562551969607221086063243309482808506415410583852454476182615432185936676184419876194209387794276534784943569316737981280239306772008505869700684598592348926912760126048733287079944105358193731869156505830333649097910409031364837951765521419272458338392992069397933898868772429332542051092756997997790712374483746647954934196011724182062692721681948695139417031862317703929818703045973584250914434327287101879271308321482863741344343714358270219546139139429264375541638136871305744090084118572569910104059010814597517794389397555597021315393727364752498799039626354864304819470457992585336487409590539478114968826483561673154796794933767891742189611062199043642489926026907115271780011427631616781756562295177559005121537057025777756188311899499657381969310129156672942195886464264697999290192627393775607836951693331607905382392591807277471446847607576844435861049606407772315229908413634799279895274988138385355518499563928332296879943837022375249061702532941067175702088879760733912368716606456046917496570906198403455720318197096187157248494825726421435278334754545884598062957474272128510150171369836122641363663047534090910156499073676734236305890438830699574772706237214181869331566084916635371752466291854626548862764687014193643377530333074292937987963142023530916745762451849589028893601206608452652187555487641279763562903089450655344973558208961699865028090841393152343357480841883758179949832852942764853171399775070851624665434992086393469116135811089070200921470185397678158511021399856815583276483079660514128339695021352535804649484584476656882646865670912340158812207603833792729924583883795225426019727383492472979841150805462221989199911144459244280866012611425442671497261809185218446195849496105555768308725670024808399900508124589155598265766065246039499568781764766699034458943032308885660638557431493726228444017266640666873650174668642880683395506542381399571366532710687461796768111314727865822115504593372837055734597038653344701865437463224747558301833569282743882230213258601377027183662872987127170437694743022819811269167439061231400431976452269357607939471757065911907782192613941599117442312777959989275356604900277194135565803426382661817312108623502427531725783239745500327034369568912734224152255594948587154649654223265039979432161509747165154124569088051092210308301689646319152196811706584648749127913597541850294037494873594870914892217368445280117811380375382631396008298140491525954044599918668090117572783842675442939663205287794986179738853933291382534669640113136096219052779538860956132496331079472455487947208664583129619415832342166745144487187651456956263809004991765016525703024107227058058676661504775230619155775653291297801384947380811299878345777774366885227900868984196072526149243846527901126686114622020420384159778319223405494215367992460985133340493551739952662079298465059691080713321721936532377843356602050612555727731549499286762596337535316739817444217572640445848668737168341448896634105903372937226370460818118659454557049525513247650692101237076653090049359309709066980739339602793996397098481263970779500868001921630923543942589634472267704308793504295618540695679083144073461258011125765115263091623313892566848549777820633802533789494461101280737379146877635862207333735810323387725085273625049241589158434756067864607972656432239110220184494331151179028543008632545098906041647432483345145073853689234170940046351533843463367734556020855718091739152984338947836069734864456674685006284955722650080831290026727150800045383989828135172807434243484630379792255423220115813782921278851273132127722497161189725743232236711693172221548710178777043984891469690936173035175206705769174378790845665695463800168231232661934436776108568332365823585680487668218188567040988514658121362571388834606805025739592558252882855075699899245619942443455431008093100168580433124919870148295215442438527664273643091675508089478271521678844481989553183288016721344815486294794666491623167735155953596840963573336493935242698349893264731740682918479692033020700454154291027408568705257409494968203502617226215561648143891347459175769742221753615349161291622932917572151677617408185623824086563335051008288777765623781429951484551515951960932784890898403988924429849633152345022310912401037689359619652488888546616194247085967053643172102113928153192618734366669371796416696000299811131667572270908466781343730220403058175456163642733962405427455207662269805145142516451327274622827089673462241626485652097008352122652176174581869233319033342069433055243775296083252846016776737118322339792458965588770850579526391928031810002987246796673738596402559299470696339347541656802223770574274424720503766033626291214886861429076621137958157296824858783956710253718928546208701413623237875008921713395087234221445044662250232508826860301017213966550777361424103401017808235554263027482461751778647212388718590102036317947733244619257129017744489549539613431182912210255303061714683578351610117249641814480134197499562924234779157586882866756360025325264624519117968163075919585131650183072418453649587706973935310858684557797696426813288570581001471742881862305420637044457170799648220571134356781750776264263649966713067827677340522471151212485282864724451756964672096279236512857716723688733804157091585390009644980879389123354939738525699346887790737092690371523340096945261301249044678600337381638702532053880002203265357626389989646123045007994281559549207739386587857539294642669662145616600471286213932501545694601878347355011848061394377107468914588374783340911993487405052124868637193322486206765785935374983621304465912223159414288445982298692274040627749903592079377924315507006854605893857557973617643312384478854592691642055680733754518726810590029336274793726232967488104988539053881942251382678469070051282945285008958101937047193565729387614736152576780432370669846872982401071185716407437450190862697357964865829608126440854564092399289028849840067613979558285242567670371983106007782310844733626820259676962675691608794087169000837782167114046285461428009734569846465954924131284189480357137011769860791737109023397833936541934148253014301321105293676297007494971745519676334581439390718934682292165821272399254044152329480327760133050375474025058257934016221730858072093099628333968446172291439067347046172220555279353584362627550704023211635730333904880795514458700543589630822422146913686687207919030940499200359492859182615154138215191406471532442502235445361004578097159637373181284962439096149414842311170955718933287784258311072393108159386496641084670495648199347829796243323324861710430086948764767252014273905892317144809293950392909161589878535848203514880117818228017351147268699994164684452667198041733138105337526217207297032507942432327608885378697393030850856383782867160462915545269675380550677445670163496590013040786196596604644260810495495413626745230205823147676382352451352493351666724050680817692912341608672601607665826433178158065298855643890393839964680090066109063839995269882917885917183791804785827537323963039854005521075434141488643815454186426731642588109404570208869218125859994955325994469516485676601770527424015569698902405071735562833777683771242060847414399273842403030175253401196457664185686786989112308178428722123686608718427018767826211151064869526616002283286277758209701857789632979890915801200681557699832330958024578727173961341209509141620498712153611997314990227030890459174744609894810803225713235898823014910219933385016139235003434468950443804771841719787306720784403647612719713799606943037811698084407045623369624473571156191401746119275140925424859061897476801188245151615447684516269374912839521585879324314743352221690571384975470419276438823892728406790040745081318728462632287984145186059296026980103241378244204093916145313549800296222915306243069038719874600914861163060135888046568760445764953238748130112575031307196594299940661962471645635628944387597459978002619853463200031297663208870130038007274017589895281334574559657093078909584510483858561211798695766347025519429659045076993566992279287716068136653636944459754662695793647251182445579927909329141238209167281997490550638323051230689119973334397222095398751550060592213182307996703204756214435287061042163380257316756293451350973189389339667058282310892291322456483917663124006347074209480825792030803516995843264899216154229391119776623625196084922497566697610769892082669898071450983956759298738825751134447997936473751743195262794799142468455012960763794046347490809591322743137025810558474079489379480731898556309745121568296310423882225215592336445919358001242658124999398869830509024184095915420964036950867862448939038817294672182353130387110145891604454607268831084869621856861609566660677941991971643511860260609305598423482819760802913205516320678936402802913527331720054010528580685737894886775247596407832055818749962633538722867109368926465963553224521026950170212694554228542327565483132580690262460535789561346155741168492813818770277689282552588324885657803139542513015315706836112856430696559136969054914864311255937648786352992268891714531697027431374475107540966063264732420824612743691655527294767893405396154124168617778708724752514126061980773478793853749746163555370543640029339494668277834151981488455854662732476821796224952924766316783833783178066898632464019143153796687509443155475673334789435893075909925954915941062290959317945979720865303029554188985892242769619674897981796035418889458811343927301739993097577155169324189102266843480104422783098956473309573233406011739989223762707703832793656980647987430538829209561009437624551289131205850781273863524060539480098676331914360237029371156643206680519381167146789569800252860083756104565940397995073143216103403473490112577460567576098626149920994834671206604066717084574715994976308712273873477613581229708014668766973804539804002756836770357761313996375224557273155166567417055759971057836645066267779538207218041270148338479530785820413883536879720454866169404799347768819380962010419299954084297247228579014097034771912522102094093885978046197673926159180262274085303692876419172377942419623337860590741206489963629735857814260027560708308690266362053615975892184690026742898326393139718554201103995092274362764948964559221148062359444229656082112322640949713458525009945822623349208844268981207837479709715459775323776995439811345952007213462163929708980890021329380771960968114191678153267109891254974939612446767994537396280753244893094515332681846435215391194563035618752107482039542908423233648269654339762611755628465516229256975264444482809223415072683621227753087592910478924308526955070091244340449473586822572644141834130410292165646346822032643227985170866936803282216354772180226330787117346610469342465448523993646985223292476118423053695590552105073189104311243103970831408131990469501513890880809222048118645037039428085567401201042084318573768625068175811127762710304169089648533609682943289259924932778001589126271919544743945111730375753414665354822855613228791379796689836618569834156122593889113901073268915717492391568998753333240980586288136005190541667989268112752673937046554199036172809636466599302321853117256781651067140409537469117447120963497188980839505721591264324189032638031809033810347859700739758531430258771003862501449981290579804694106992808529872500252126824241108467816159807125794270387504224355479498854192800850142232355976190889806331784009179388612491032870126700902418342817649808442584856855570577577558869520279809486467270900952387240877558195515907764744146216451132498209414232794955059371704880332584674710181627729140165210172581197136294857133865797722525916966918158976265303866380225564912793308096431787966050697455722607702758150029692937453111832884702436232254448986765752458564010918445634110486290453675101445066750875627527637081540059324249391416145989143409361463101751488574669447878034940586025535272208352420892907164370558437735638479309506803204268503124488760208238259730506819500682507359751660726882115009336040626266276556940465342222051185268946772103353225375560555251957035739660081094342889125386865487313521245270761966838171954775166012129059610148541327307817451724957772754237945675846884691854614297074104286363432639197411226913254473297369470463960971510395555097148102563166343869261998717702794556631903940457587006287957650150865718274542211083622484313459717258229310530583518582957661878652728280528185377748489447865696845095191048246322542294631532135381318587658309864191987521272190157935088480895790988250079220307004727235866812706764994194703337489044619844561973705610303675297268705122379562919066884869654447220946872390123344179228820242796009339989864954917151282829315501670133573661771408101089143716370532056481179286221884137876481849882843382829653095345384940798698058444464781964531673868766880807635482106925599711527399098378394799375080848018682117032302090499381481286264632530462681028367680357719089475830018607680589052064570725482773877488981684197893531526155317974248077644424926011905246006851072103603410600291236240049806772524759912591953671515507719030124731117435950552140224641787091253270066195316752126363365819334376599643281194485869425992831281492581235919891292200568040751471155339051334005357748686034752723450558038114320695362245531046767971240073670284242583606131785985269652358694341918614945737914500425955725796630095448890060227040863642563152438678312034619154649664718666091499444385938576213594693227648528195885562484247333687015038276973785977329360129463349164029233858992841894114853603238571587404244341032934768345425230627279789845011811998709666247340432191068795761576876000197869084960769649257290785978181450386085090200455856087081824055319137902624166609620847878038769562583841249390131382353524011462628890737948862444985988526723557596907387461425411552483988171797487654144653145707424781673995863273490363161509521365107993961480527128737781845923138518009179636306276043554623365471689184903263079340436570891299999617722370426552571371657437349519042154512385189644606549822458373821384112161551729758941839039318015718653636819207215415618568996497543873615511955165088586452489890954033426621671619183368259831753501014096475208471636396989329166452040875899772659994726246277213326936569869372863952179989564190284468674982226262594663250391811533438598253168823527712135104492863119702164581674701639161600350354389036110191519084888868727605531320134371985579575122199376478562940143918954744024123856482608666607571072846301274603085983799514474323199223168463413807309470953596473785814563891558933199348266726214592457929605166635471818857703323452516704897437681692918984873753449704090299290954794799627603267729848032696683237186415252530050832231104850695675558864291029537003982222270747594693281210285451604286833819918313179608296986567389415260674513405075750534069969784126889040311738351720873835743016879687611732461621948964675434474991149456004024468696184149195235013132529788570136517934199719262699317511395321187965167772772508834919119431921341147019002162603244887962939887250940849555809116244423427987670158430427872504065835837611680068578542730120835867137090393444240613563051192895411194165022396097195544544192939751286437048599562280694350758034051511217423538249400697044101642357128372958843562237815482393251556635545755177894562650642716889529204761865588991642519637218191727584982026968547896054947262612644689820290135634234213129124931053756098650775372154199196401657084547139042309891109007774309461355601328115342386771301803001413225964028286508064062712459975591433260568145924933025170637756788052077141701206001953364700694781870161163883414979290699943419823189030779724067175138617075358313206801739998123136954771544934379297037165172364725159376415014039413046209039903504005286987034426086448031268787408594272527063091880477151419531276809102297787983178499423218067991027496426954377462696318583591374976381217778549240780494568817193464858064081317714579608078103558757510463454114653683662712553249793218652567020134748415455229555744371893909323955647260565232589370177347898883745116432212708936520810265337474426075507778090785251353350336811225395608188642406470057868802892274833244149403230459473137272503522662252515386759739046658077088627593387427973139501696520825852550713944839394640841416087392144349672656689853499507132157167666005236545950518521194230890104698209782407729597517277207318279095637458070298721220388645257644796150782267794523263150384458195812947750318505691602869796755711463871567288879606410364011842841827986831336461904828537451785793085860521893932807477792617177451312537213595323855164302102426660263509303020485634948026174641867267577820702552329691395701638851610282024141577041931137772756080964637356297100580546865229279760262178874734316425837237158832963138299929845750335779865896368567986549812101551342408576156190004450174311959970307061703563501677702956836830359752972403862482664750625334604732419087640558723122936560558690024657984404431450897549674133974631571641898555347052261210214591729927283309055922285467120783197331584005731188945299130550138900034736698614947243879048479393291778077213746264455999762242964740621060182961188165917683247050478334396108444403222458377623586927890694405160505401414010485396842728360459078291243872193734641205939108081002067352856579385082910640315152653660085971084481336422204987698895316892609389222458799761736828251846391622730265681583619530997784617328698706653392483707831735171493155698820026553314678245707050463471002151146425712754049997415715805355927566201183182990646546693135772672962178045787586504862017519882007921245477245492136459585567306473058370733866256845661391023419331376745911622116840673568819248862690818533916255033625658120582590398283147339066813091954815940397149368401909159091290680126121340453812621414863126360638947856854156456105532356645632263056671807789647195384262687600834525174381128171956033708335128651914438427837836851893154030091561440869922649178331600732433103697205018184074457519091263408742016883397070504268295425659164776486001444602237699872076154007359939518946055056943654482766755397501005124836833585050772461477323674108359620449155458499187040645569629959822029526461140112474881839993532477152093173438771393727581944980236971424155276350327103576064676803461237603892710317452657527266403036961340077801415068663107661149238181516834818310885083378135138375756832072707200547240863291780137390043579143796060421092227955525913007075570995502190859387098847038154660750657283471591765125646293792400350621463157277645466225992641703675115215103482731668952219556255657790008598526269404415698346417094734847435733259840571327100780660534366741086539640269679577910156891156384047280101040429402753125558448772837019376973124236478599826180810898824227033263254689143165757765517182782547855400370726661304196626234410488054775967440216034098882926195123341558921507157194519153500328597665567624501977934354456552290996431663196540343921343416629544599179936135825707047045439048833989255564390277126200704720797177561130226674181570072423936968937524043673493706316517382134290285667863951864984213334587364584418726794536585069005338001752236749837979889069560147122335391513187879307794714175081665050667825878501462323537406831467093800040148233585233966408940487521225096622983291767962061919289697686456743904774750398066721673626573967322947886069337577640794798360469016377269696801591489738339051817207303121475444838968678280150718827163045954482707543263024292785920308530896659365323655397979693889368732515807038139044684526576149451509205930904869132430664163773121679294147166640248128638662442049712233687547792261755279220397213232708808773921564422125831732590838091291459696988521224304926137162362169913192465255588378598704141494154878330477076448953677664500570205803465638311820282894287868362582174449874349932660736067229525143317139213556918315164999076954144169890508765341289251677246776451546376317858445809359403722068882411688860958674027103686635605302514453842272686957801558519842750107908396750103740673177262526016603192290306746879837792434057359462362178499203162055689529339259651837948801960652055968757531567519538350477307871115293954505954471896680274080226565174270317257796902901683590749198897190578573093265189615628560463450749430271682291203834020882361206930435241491972129271209551422472654719534864136376189837912056539484733274600445377399681371231569805675565917994661882933947155373439237610396602964088240415806786965706933658081933755429059743430634485582068605043212302527279361095408492130479274819480668502145707677823966863095447447423225534485141628523171944926535957615481033082018194475801720884942707371780762216968841975922866944217710701885813955940438682398677862912465224961149466171298350831999781110155307940137578147440742228559795166920905934665918486388132798638920275762963517817163584774153832132309527499363770868726343495413183244180561131714194817082109858645400829106444421735456325456566179565284416639786049376767774139220841846011198968341321545071034315649439653873921875528162869466017599075071745033152320719437806140551294309144137990504286228167706841523821694437888234041051266807168383611795354224027726439977459573335307569693764624622665058326743268229342612344098243293836479365638739610345677117757585657543398281249981724714396498505475773657033344195021220511769057241314365033068933642560548591366547057633858044160225277496896546285627188250533079204106309794786278021515930909271822113573443901176129336836853429162265174032315346967865599403489002594579914536459017036120796829365743110038746912987683920327580029326333019561614952323928184486572516560456758593006953443901739541383157136636195866621020964170773536107659778373397189687729245991281346674245535673163209650143623964504582511517366825025777032533413482392518268778632789089085597002945344061685529357439918424381246779354295098361703758624576295342787741955152238748900270090237321940060391926017303532123635974911604888804330739496859917475846691465988998871545802718796632205538849153589536264605454414057955801185191165091004395877597801907162427092386300986841646045503121419088688349365196672807698765781280155477058270121429267198445101204384645645639876890060090427941190330266382541836604411737762416666446083162529774808545786667023130122842264342976494363400073055563553840025033835262478507461298848957434559301742876967275836835599669968858466882037962012271112915592156074802783262239233778932815439318856782344997488862653996871530110793272466434012897457233671580284333622507699740149999222290319516220721837637881858283397118086041472374029021765031323578481255444118715118499352631972826791197521426718144660121186590560531604654850527366571588064375942620376953242871974582172050308360709943100929469347803216148909626093505640889136823763714285728842903583390443999944281452055472789600630978668526453968739926402250842619966003025118428464462809345397780213636723996865933585505364584087001215148233512118762410981632926535303077567179407375727139795357201920602075622182933581478169383007529175227777865145077393440330796436261123625914794075054206812057998057866234968998958314845983410680022425915857871630910487674899193540733036353543373680839925587780354726691898724394107044921147893078336522925566677578399269429740306086280270214993715102570088820952836329281271516773984698206168672877457416246240280441294732397653943225451954650204414839106422211330453696285300554728356852921602764386888568450653913996687633375914636246369457706914524167195858856527781298738845517982560154479522231408131433733802561452119598588515195100534131453797423078714410640169943129170836343223795146405422150551775689034003388591669605985999261234440690083388170656423008037971556495447778307933954207849679091069280210358604825317109068873552829717327478576448374425888976876803154200619360058286895593114511587820793848802630548817429361178820790048496189211666525378158254072463510122017440799350439403210045335780836660186970895048682136759170053514373069213363503471881593210312489275056495675756390698794740811135374430445672865547746356583386187182132192606854406153751333296702070005628473678392509170192290815823229636224410582310482256970392489480435925074478944786876776876209593576552663769610099373172383063781222495787518107641345316393315968736157298134797857371931700320342651611795268393246166225304023817504412799758448334948471447997206579832798591964852942960147479454882703905543682637606704412406833513771795743098195082644104006072926079838799548472247477973352519552805656324826870177556024863430070077891126456490872889309506529429453636448063154637737917155722278437276932650598710981235987642805679557362541346555523582924601788734504710884342891379837006171666948289267370952519119949707465500787052455771017243355319312046583044846261186857721338027240856633171885048653178815569523610194623491543697227738771405551997385204879797468628030193384778832029936334558261413133795544455721973262392522637539892338028786267444546765015695331203574252473632273792641848406237551768572164426837640586027221304030294600598072506636153772194509092713360580294959152642018099188212921318469679120870258781279991189978808288827895156438332058797047266886930667361225714084286760231938780942926063138861737370348466114424738881047216239657819804583854478805167855331553985540902019218434089079544923419200839942014114044232199012778999828261362765036775406115800803416997921787692997612503408316284264076270505273609844830109420223499359829526550546070250946033942391778956903724652968249467540686383639176567899848795497788234513875308209895765376039059588690549108683287202775658423605878569885075657299211246139385446579541018877717436053366027952085154465896972447101402162559482960619499871228431485405694685608814441340423954022533628679681366728112753873580835133651270492617109928057729309245980022346174562275733269394901724203235210053712721382602331800861610161983539214519411501188681050960629072357467610088059932247025629869244256445661338804780922104841044972817512021514293635473329715746983427776008843489431919580185094061371279801903602752477493713130227712529008780946952296037935585444511478560103581024821358183599519628356743351922265427728516205075119790370214011552269818632743082755150326055062010289503295834250863613902591328012981597547827632023999588381995466660128126842656192754268887402729857207068962000296963082342143394306806025130360823545791874691834728333662851389744781778801376354357310149781229967736403901281163174279914796867324277004951964057102380692271497743570236220126892736048613415903636432214305412357422024147435708649946949008964640997430290648699722007043742256716466510946277754287380687909019620525952299449169155304811636868228358907674612285202501991471549842896951621638438439973669800472442209360522549470380178109919355300192883281359095431105614914428487426706795294308106546175822983326162748212755755591451640191086996700822105245890907556065661242169465787158370523964493263385045093488006573451994372604917468009879871760784796766989172896656150373432862562466031204880085155220979829583608240885798316165368708287633440510339448555962124580179903554688823492263098124700132460279639712362566057786593333527405520099785023626218319589734447442298411041754155710901832555548398998650774154135001316723579171529063052085663673001499280945871396253494664262959273855356707138447879208194733120720557979792328134481285839347053974634145363916636740483745537571393193275517800341696930348718467391555534622187835525663211386542121900568283125445057906239416838330272846640388942480870018269192879613925641385860162626065724626652692455088933335829798343911871276216182092021974658802968001235808828597983207303863119533338764498258054711431544031945182385040889768138329291310377938546338666673899726678411078807354733329440693716406658093620139877918831800529816890944210291895390996106398860065575337668439670435678223237681166787879582888228534986197030609566016530741265059052719182958013763611270181741667561782555882110424930145669756022820858755657677850465928927988302103040943829453643389918558044446131929282957100807688974582457765520282103873341096261640559033015805755092641557045647709562708544286444776754559123527564068561261035553167001986365172297310471940798234223535339140549110833964622841008794474885586415569761217018416795446010049849565092874751476446220088264401644703864336058199912714983225444485269896244674458330454942625869371328457903330153037100646628056580914216506682540466155446304718239374262271818540853374401364204215592343510837151176772340641031619064656779578737525164882306299015312223607693586317276230936299042117647188245891863799170577105713708559727889316605720670692310674434812277208955297349827361047035141049239617488480387429284570758991741704977445487350770051333644288184396386658602304082005081249976581855842762330084150258602447723506222962331151744732846826623254335012779155040773408419655486013525359593374735918781997676906606994704750985606412767716169752396831171411870219081013192708446645756721271490313559859990794338151598904433059772468247785212335177351770822869669591486760652575345690611694859644325899934158002176846466942111115455395575047605664521876426647652393232347260377847243392910204500654888238236402490813245046847961619330895840706525731632336195148632085195316047416313037173166366178342331745771332717893077289413639539894964974790481027764165806842053862877383605746890601220372868528177347255456508805302546870959684838130592454846334518558353097920408202781488666258015472590646679235409721691024385010698377293317275003566267756852921610392746606724646422413647239688395322927038530910151524573410108646851653700724815264208463359615329339151829480417768909925182807215047936275201622264525352860626677171581894206459379965742171185762674155981121248822390699217382985053802896720924782295288479385579979436378740160164675593188840777164128107837369855994809619288198972517367637548532062971095186039742580379016146970577932971663966572497568052687024575225528390738046724253653518619215168454000760393680032116250540799327922148687902200344277175983134358324253805743741028530982537432250762463539332816105013097128645453449353495655593590517142856044639049106617194917877364731468422973251863073036536741194633411496357456584391573716839205938649965538212965205004766974645786594579472923223860345913177751038199448930434405696853111887912878371280615002586935550871816480096148452910985943316538344183944841536610195399347277610230175509478214714957390811280358588251337721041456445578068127937751277808985821767337997567837727950066508964458737035108239391587647440940959171526819083229964383141777175731023081639857599148657657204245048851168695296082151304536034684594311621835271669648318760930912819146404859062683507183882234445568275520209380493280574151981945504691456309960043984512296327484563878416717290560080890941054099365135709348304363118322446759357369423810951919017166441712182252022532509538651385357501234298767763812661248789099353055334295042175221766094651454805623128310894352907952761909905065876495172795010711852461544257103550489949462119317160879473398522066229661937103851754366743732544268344340608171351612764579430840842663225949175487953696894648453548025626969984749306832107277625536280912528287687692096509489530949725234216395155907934670531995345142547843940085804373281817073704953979000948064685305728007638259533554668696110434823637328359580221428682385515187302167861504863503126275926009953901908789612326281528408657902963537538442464172422420718139099028068105010498486210769677855196563990284458551315803858672437117936905208586188589153943905674665316007060413997990704532341463529978565404730974647317590112563605397035397787910688498834414870043359393550097267128238999198033135084162850967744741002120172737584999070842908602986444326603575503686553296384347770967355301242015954768183101650201334257948825926946589323563890890121606702386397834064690615639047075720398299406708276855853473400092618111105352137434740776190082090138067217353246907099822484389702022500423630235522421611623270716237713369064992368051814853313635393959792815830188742009924341185173734250160803835689919314425662495641123184228910680911920301333527095690199058625263419649909905899460689469028864386948995761449148569323462497921083024431816102844620777096076240017069676044007073454926720126520064564005293430712343401438566917034170614839983196924806935853879439286072905216504430071424939564382041493812150805871029743335126244978641299781569023072877197888189225415724724383886117308089703614334524923585621353519757663442262570570722161380899983359746901269148129242049868336060452180765574794335638293740715454189506040528922149581140602339297248315735123095360836961641590895245475658217706348553844893450734115736989234267845733237048661614142607762283292096798936732183819154154113382979081335247624424088705020953655704522588300331104714837861655149041700132256645969570996844568704644636525186096405750929084266017611039195145662632504862555035613040888325002464090885442496062275113670399339215562110173171416697917122305763917187996833421150799085913968469208974709501636322327063631436618288228004597069902086391633034269141445920166528768025977341843044118254008922979387163268005180514442930407899564547748800724844861001996549536286899469012465915847429209323473407187346531216175631242124674302866599920936723619006416397153215518310667271958899093460252422388864861620594830840849630449783771639223251190984597240038506936225580833542158171487606886477854453500422865583487881156058097200840290095109423720462484094178975657565969733995330142138448825376059615335273627325331990980742176347058471325687410456363626047262471378827240418547835537736039726549950090893068148926948825993095069334331970745389852450278032072267657656369570318515982732103123468802321954322761262423566263082829156707177116066156872077506647498146679133188697774900117146063709543348977006733591837523803216285727085968852121508837082811254508891870019895414333714107097494319843692687890934178369698947117342282666226483272488671623833972712797248019829805051470289027515066526332661386178687240936764683472841168715194524940138307480883812393161809481751273338653679216075229262882021212772421241986723076227882402838320507355211232283941303670027624926108441482927390087574692722701004252115066447886488158606430857874931092010663442632022006975465304860820998828422416209733271522588286237287886762878303274968413947158038161922390532667322901227729237177771946562063840096432028501486291928938068116978788733457462390559675085015428262624951056703413786565756324803992835441874225753207711049314300365513996268191539099690848361621050633694605026433665525984182616000411881970090313624180724763684495990326055389729618563246429659119124931606085452016678367408807345165990695318137018469216608065525409926768236616989671702826791485802329236414867025918428750087715245926302578153958563278144140787435619795021648843874157061069742212451922605598879088148296817956473306775288071082912524462661121115563756563009646685452684161473095581987000985122935740859197573857125767983256208845464470759896144315614838955970357616649032782399458745368814388962788912342549280349083351814672515757054296689540911743347004640346051365722998007385662425685537644515956755380923467287298178069476466869599296327139900223866970745121577565948224794580077158025526673677361872502213187097309380534686545076547384238909365417717429568227212508573232131279197972590034073318230580060816547933432120993672755129527140362685189662703790325574457065983648570297590121705444486513884445985214463903328129936982474031897311217682081189023183089625682434685510776544039548345443223058295055460706902338924875640301007619649996638871509205194008524339181250167366097957518568645922850589031167689577887418488817897346022933418060283561294202035563031676881599132825592914367751205507037313218282975478648602169813690911455267152610892257119439642788192656240123953535062059810266558643246486908048454783505064829621393745562868086993952600360194314304899257783093365098564418457883511195142041166864402292636611468611003988893564987423457465268559249191092399569425461759400476694561804847973196126363275567817434637945550768157020287696815656652804086467558023234126528820987913918170760942720449959252457728116518071155001155047940975200318663281082746655173483592564182095511213193239405114642348111995661639769933232736228932074287987873591196707535698162109800676114907064170690165594066246969244221666400395206762802469740455865746469930779445655389026952292474569721778067834556649362995040700429518479198623620979895244994906956709564864891197781185911148603806295800754260135290395707519141709368069176835139036010836832962218924062111296439782605908286609675234354837688795256579790173486450322564973032443326227450924811177770474560532110019479298382466696085105013226660976452931764192284461953112849539258322269921298029481349089836146001662321259902640581117023357937345485920175917810223587209207108800819247482427752098078384017114935803802723648048410153875381354205350015958021392401524580278461084840818457888824641928222166684338847946567925270005976480503761337288065682912168004968553631587704531861629162621568584371073962452160689191379176289713217357583597104821346176483213273705498926330379690484142716531418362699554081504704810679622682701795876006481621240685013808753378507410674310259778850029210718470897676643100802355653140581919780011370647991918955414893466211137568308178737401895837443146380813906999121636892693059677703278879221205750900477553115353732550569303221742378515040414230181314051356174688019067092961498770203871449758546684237453153189352547981587363983920677177732278414693226149728541623485677213353675809206336568958646652056832523691418909362509290395985306764116975474988378807766501237430564580128952251266316352930380835733779682398759250499075611821764577606629334136509667319801841779700735637554886097249097887903555057658286526325685658386227013535329453817619061401310665413087027205329870316347541874889880805598645411995785545634304650057649536804471588759436862290035090142760701327637671105076916773523882384432480191796625275369959576423737257277462407862869448875997010827494711323822046989506444827785242636189318387920095973747882891895655744838276934697169081172746330220587109612400049139160943106404608331541368334255206772216258256813854317463493872216511467019349881691134635596125168535208946456804511796916865403932804579234685079340199132624084594355873087872004550395222960299149543046446220242997132647249355192977033660304272200589154504429640828755517552274942509980324571417518689877056317231507183501406983611930205542752840461748052514716402171718892968667991952634617478461231825352243673525757590414813098243405795010754477469417055872366237484801094270098850422355253304122844494208123579164633215764650827195716285767203454059680900424385101562851154169031756373661984024094631258081463744854803304352799263149545379517866175482930688812240857442206541215464037484945658570573315647088259782627172543049354434822125552597157034514085866957837967822070664780235136707706831959626652680560986950211130261115948124917976595924142722758668444774465895970171389909536132177868278685203291846400536585984356587277185345622228033297392270419849199217447688111901698703711051291319001588919080436123598246800335901606532224734305194645073293260158056549108996133956016713057342297764267524489190553366373892533839026317802333500634887791948377131712439015819655646240480648250347327939450132603388371002441991721077527622634639737920840129811736215968746208432301387918359310151210111711016582539220367849529757938256152187433123355470362916834555994111616601028890916974694193468010234516789612720740320496863057121692595902613197266293904338464041311185898902634398628648262972875419254156662900007553067948829786625715787410364718693789558298928793945942238416613041701932304900848604453174352072164612062328907115722061126017529085813949295122431795814358928728877464211181757503837549924668071085438539331921006227990567969415659809855450393937022277258518134552356342542862881062890779339356794004808965836118849375639953711420858779527464796353161658996124670923357060219039382023996627634869300207488380357548029679450836181249488351372339118906686760095846060427064718614176234614782207036596904066621834610175498159188249380325404638268802366704557264006873398373357861598867298628442072001269026189470586959466778795468688086399083398915972721170187757421755800381175414418269850596186353213109812505558397922622555200367289736915903571468938981716094525111459851290505202940362445407709108601041012484738541736662703841827028622046025019287101458514683466747523561107852721617743260244359292506053874062913632678090491946303141886558041072460286804877762786563892011783275341479053138620553881051368714947720242230195224733686728897421235385195139548134965213244024574869603248780293032368849866157570694400456073639754235256029715555045451660691536301593098975791769496405985759190864362516660434254205167874019289387060918955136478430831868676902614398680075987871768426344183210662189156836805597484832538502180038181132930223215239333983985369163402799311066150029690850074276740152774235846937300393728298055746796139679890516992491220025338902203960847821596771590048297467819891184309924628358717735433146053227776973325768123333992897776208943149489850197428743403170346488182846101452278373278778421219688906249540664446791075562912256772918997603350699596782621488247818167877757888132475900403554865763518941806619078736012768263917652740379747030688883899286788074870485959773485779995162594872568010948632825527928941370533476036616166403024715779013984700896296483585628467457305950625434740606069319344423402103092097729729584100882048111839432004432419717941443275322514338732116311944106310113128115553837599616392014654148754519330363394023450295923829798910962286481574028767842031101662271938820945864680965960573764948475387766690755316207810738528580475205597689191265031006715092641629036817079178966538688819781700020428644176522677619744626601154784967271862241037944298231599202419614308999014860758343080584568272696156094484313043577963977058951792422179501656865789437132243914118958278601066948211480881743722862143927548390762842165281247298426625702066984294897226802201027069955625519602085713418943929951824370664415238032678241061136338349091431427628443254508847400451585473733338257033702350904883360023484745997333334599763254616765115475431836049424092201870776024251940436147995716728880354951097717907804597455517281648734899982436885068187950733903470371678312217330279129108195372199182214777816317513209185629506723429637970035012421304862177023876923571846069565623451800301197636499848860237602995308606982142209123468093192428832250448215696698995489098042665037935426244513344336038596118046130797599308411151357945513580769721778634347966807422747463512146515238625477970847433527039788851900851861208150175713719226989523623614953283842371968104644733195807418642135701063616827659220605777887670649041801026895340727670150787708689219910821823541636795406728591994964375226615547419090297839347771364631058683713498689869351088905866782305771965318244198865164926725288023796552874854541687399311385131588186645055398332983337209322421500718079539718198707578693132807283474854531043722662281899747476359521180644275765251143929022095344862275793386637262057611578636574547671052441882296071944996480709953669465825257875103998008645820241076322399345604869309105102186222138738561428909691565348006288584689268581274042723649105232386424387952590812627355173744979726030032088717986811197923713985857228842103770762947053300652326441571338680126993407582594600516350969235264703861064947588033913792336645535963100532105835441795010886009392045434410098703617804260299305707518536969461405507024591139822007093978868197587800196548107102628754652048103047024214209989737559097863607153900675148960106677977267277542345245670098726988142515146630110715127127305715988182525082026921081100594628056758940328855360226772200646050608925572721619778112224910426386249111837647248356100729049947877869089224214714360047250806261910200527457465579691811533482481042799916354955972654555762564673547103792697004490980594639071877748700474390515368937834582698169958994349167024157256261036515212263574978882928007433731622898130652070359047037129476704232890753493289396000912137924863329815435143326953102667625974243686002446740938655942078241969446966938368060827286337083656472290887517290056849144049889209758218142157404702481475991852167677280342250727577152141537765915720079652218850532813002507191772910070109963215013392069500927059993465804300843818120321285010740539095671207771807203138531638313453071037741811381734215981943809805281239678413932064562928393548468121671861544974568403229508866045263888873292050967794484951587888287825440865568424528641125752932950791460751768393976252616030651324351813685098318594331031314276373910910436045445470759256135020605278440615050283883204865779018232873048304321321893058049391600130246100647116575961874143727167221944322976167701100622160968032050745242505399044405449333604225124568593423283353318659784766714802723036337503279665210644941107370972241696787075329201355790198640477138115303220531917987168068137616651912931817342378075290596043123280706151395477723709210676994008362955211193643791207431368679144099938940808673368308302319658357087982033105363856121262865562070491062566902029088386955485454283965334435023623341617624220190341210952160303377708571285279251635222869353704820857265816680012429474641559024013019892303486526878448517792030004130907710207127091272757036043866603094082669514106795293266667690796510302532394381046390464222257304513762739324626018010706621361724945398176714541743689504602759273479344246638553244704399383150904500867152567953586933406235283170994027633255149504172602038604752671482132780894745378504023232712785173424307063578378475479536015978099402331303117177658381663813534438631462667026761717707843773550531236966730779694739643030690505689617091723607886563355082456136819904009245350790839901286193926819924025269132805623428315347094374281662649580245782149336869484367512656277230817086446702306742235546594214623773673332154912986774788299775126966230553393757902222748081968751412005583271376499289634422440449009782483309526382046585115353612630911079671696363367033500967594434379651354521722696048002638645178592609942630902692378171472767200590845855287251988412763813901469462334757945503589705683067108712406455542258249460286576635859191699263628907387328808571102767091393643862868898094855131940932247521377786529146281963995875940831534844514002217811823625058443635386854819201556709180150320537958974361493208904784948037066843539678543732992758563837302281108944195385189163482800904922043051184311674092644580937442526621397666340067867042344764863997912518271559843178127549052463720365553428139457944492546265652281450116899129013445244931276655202046362290050011673666073070184896018837870554000171759408544359530368359547297640318028095660081912090795212571248630767715875146465246889800347794413946309661033888514586880119030758782793853534060730142840155218135215083597159097067688792663734165487018022571384439258715550811074002394499018552367132523170074081251630393499333911098571696438698781420591923674731786728084221357816839540618710523251752430441168935114631509207400904842033613567007056163833360775159211120577164170448971953792962413524432412090065591685214342777104413692315626961018526069792406054693344220799963496301827753975852868196540834678531461583963784345898247006681387714763871698765600044288624097183367526109766401056162013919642483242872748436339093903752517228989505446790158516688651310690140124733885301585435893169335977315919697944593246468497489536925527383034696378704522648278049598412634291811281322137668782427510379841485325546780227171671641654726220197857111046062211274435752898749965901888421785129785557012358718601908886817465532115828260961535355819283915141142115929229412577938968032096523742939167382550116005458214557669545665573178089422042265433386000702678764792521316325293941543829789549117111996330140721932968939784426605292606664786783206655180134680185312660955599679174239139732134307499153983364749544263585910292839342064344384612527641111134690167123924670229697520457960489265443907831232181950227349389842908318958151525183383177487717524186224832965457958070244858978900578101135964654081706493572542412725602922981156787379691545102755554848716197691577588725714780421292080403648396026344697376924764267082454463952222242533689984872468815503192366437301138447369878769724610908170838607362317703886638787452389573599448755685121488052836488262806919379794118195796469420414086952008185839951751175185263869520337727264097103178021776872128907482935982984292908047327489866820490992206959026075723809314105394115042762742527285542087606337744250171163446439077298007723471032930822253225154414446434848087107586704818683115625925035971336321989605265853796579121897672763542424174899854352619225036925950719412814581278471112681857781561281129282033680198894862750487701122791939655336286241321118078534935382670163246411241239146628725314699619197021381026452048073077739028247735271565069254333324193989194969778516876121474122868134233879681443031021957916377526124737083608870565802093368832948384294517456983867485871319633937538142536435398525725953854608754834993421767490799743587269590204373064780070917099611359482567307601329815941013206678433014539615805531900678557529115350262641266824185552228663679282487605818737661158618465227266438186621429715301558044677495511121409743285387357509830062720509799257878794841198503932535006658903320809574639634884556984610491479596662220239511456494627518482240602835386717969759294146883273662095329915820559637334215496526906202956275618356975040952637885631347294738055695229822378522388496943365674097127553237904910958948948386760622438325085672146649659514195372169030434305028557085186823615737949860422076095658142366617098952831405194338840725802777322257183884904954955361798278598311724784934152869899138490926675121959163683007458477840760741255314692138100982348428431611002052071895757702770374987365937314756880810080267756120132224435789710086467555160635995674445728181795002928429682807341407453454231427133405822711960832669751151775102800207587680063630467769361081337258751234823328366332931556542641482715618708410552021206336383525239048026960584213667998650743418322847342277123628252687213905214545767219534983275621603370327116024411761859788876510635804829619572060264834160869176047200067833332470365226246839761633114146199961940336537390207398676703248906955826895102299011556509311014060382905518586033261569224917630542921664597380485057250948756896402224699074258437921577286337370888353098883741294921708229442955960484983510009600975146472086638806758230094632909436727609439993383435249124360949318195079895022678479104519591946904971043291383658323586478281754849383303023868695530812724381074098945806028806352331982054681605891210032481404944762435327816743028051662371543244191908551136350090211320059143639402268201573362796990877033606620025383019735759716675960457653655753391048296096151586528226463207818184496564623734496734618068317479262738324311442768682245108208322538575612179404938901818583732907816833326021111897813813800493175542587115672116713991156117984951290209326094673201197377285847399484310615090974395683517016671768702842242640147639615780922374366729293331874307827867385071835795669116075405049457533795637432436926021517281546986464603221332524234766872286480745084399898913553316604248974146816571605837584825957701527487501761184100274117076223728936292799878629304213745510550679630378755007912335564425341957073550150102942652366423394828742561667855472125711909200655415155572941401926838447099855308557451395197993183253721103734175769643856578369277317694310390731577692067708596712721875670596428988466001399975531031770711749480461566485740365465080867688948740852201340234758480386436181019099280612767448938866257979565030914436000664337028551615867485342023279559539628011752231244521568984521586192569446202838350052383247453269422517987276209265247088161735672421039572763642569236232850824996049931397422492388275648537488793978161892749329332504130023849970679649255449152281174623392549968066940268541258220857945298396463255465915529272641964651950831464776726802460007469272933890061365334541541013055896355831657132878353455539622348820595893056256728378879905067433831505948580151186177984285670717243507461590963951515271685136217630437818935106104530608535427936793331691370117741247227166770120621401103486909408976773143445573564409874984236207640025079977293157621100535332970710920478471199980805760444551868391603590143527839395305616386630935382911987171144890042116659357859159539489682747835219734670941423556707733294061930002006335521000125079074379448011009155601234491354762037059255487646669339320412991066345394700117551914966778206218384061462675084832525203904545136872390374039973812449193338418834796029886201912820425953363228518100617403509302933344333032259568947925711841831394996984902903879172173281444809273034072275821286746367001897395730583113514213052286586305397662188147563377338969451998037663778474578355003921688299166854051057436489333653803855619122299341444243990379079346649419070337210031342891554035362121051758088070429586285128415543738782277112086065065393706353539535481929131783281529298878565732465634382876243373933359981756208573751830667930543363320579259141606300833624924295386155488857787422703208115675509916227793863738594275002604609740707265007174335284472532063571060127040399861890061796440472548436083093029899854935974635076330413543468081189975312046994633188620606047774243410960119130745011466588414731283806809516986303772046523379136356072419615497347701912627561273612305503633302008902293683747122687655466178896713621660194862987817978389971852946822803805808487159223079957873886465518886554874268962404494306598530951735628928113124247750331039561052727637553632535566100364315113172982618552671280117862215521601076125453431057265066939018960303740188963735266940590428048055641144381572072029932713417220359115356652641870030915842540322398347431170669189357441372964793794632868978228388850091559142389327054459208998453797095007062613319676788825668938556266498487879061905027765432348394778499812715891717814345792552020365164051567010498884605717242461417673426279219151132517378882125244160300899043246504984842787129500222803249253974809838136621725211111350949407607247641142109580744450044840459917937021741722439703991660698678945175548970715797330060049395439618903568463368751734715465906089269629094305711310285445361642983240146067518411866884381308914922915349063832302627115052234723382594717116628844930251684011577766407476601673896189767863884814046257233323016393228944355525587674884000551569547214619938150020162929106819867252724225325309556549868001068506796546406393050335406104169528151490265309810478820426316602480283188263153672762004829720430365503549596064043568346141001116194182636799718134673091575073980518518173471998398824063691810062341587723988630594520313424825040346658455111116627673483620498378074413831015202858626130068652405758079008883962282857428796646405009095757597924126732121903845482867780867417722794875989728897501258252960977598517228181283511663082568548915788698398229857237012987976968650929814804083556079213993280587199339769141926251217067001293919217003024148674222640990351875565229850018338386863844648208423001232601777539589996738479580118953749292699919576383477123883994665506223561502734040869150547357836618794878537731002665598343228458498868536488052318107306135597896715195879212284551858160746992813246539026585819274662037432401350357229422366372696518301203718011833228917512459506270538016260856514091450430860637996123535596793615756799042730577980103742298841305177171364444519875607621252678305692879393812120892738527866949428910191570149023707803773932608838702622350608556021461231111306594897235520694406791904418644633364056339516081995457401781708902874669723140203476337523354699320061752415065061568201358441359618589114489970411674566994981580363812230973614935327771685335301088197108174880176035391191260922273737891652404960716591853807548540693445438019769177390806329921240080438773024749970008654796664148983942078262791824104685409389748682157536318978698252887769130975804708768297164787401149550621040266277883957025418708459890138454574240041384748162748041352649065014101732315351061721678269616714167560228496116534729265237195037989742092578781909770530996391017609088023185650828461681813382799706591784978276406583960068808762196967346789067805887584777220643249476266774346516606390469586634501451526012632571665920156014905334361694585270307319928262983916796151000632033932689415829084923540938037999433974528811372451157905404326930704714464765198177442415343777517856476632582247135356529409682203827872096161703838142938401718008274804324436561408904007085883842134189289341995060846778152191757995505622594990725374326609576663492473243564910187936873131150914327796141865032605402490234132756563662471289687047350319811629999039636631867225519806928072588719740338360251519430675485584625653796140830407963748835307204206009285649848176582936329232652161338753786474332748715131325542355131072209059161360482206277160414755085353602400578893279254508461609442814921851746084336668552390639012820489490598089058956501570318080657182155099862227357689141050930765498144411955686858204733586942196672074678803101834387433788907824520102844886782685444702523917227334825711540377188402241177322546286795737164138707738204359956628017605113328813096941685039249269129176729151700130646879030028056327021682662618690822802136905101068010642669835643710205098344337952753758641379893588096519055763708774690171735223011339280141250611059336954105442361653795472102281033936633146320036129886085034789648052717746879951286951076178662236716476098353075571546407622079390860804535519102887866839021076109699049653096293070412932564076536594512530871614780729781890124014645355657198529243490097107482492550087027788001181256968479369082865770658668090883873915964737656242808303197103539671880370899359276641665575754829674516167406162460035735666512147186487201202737301868069232541039504377108637266244555690736956327159808308948395751649373501495969296437039110466652117479161019919766786415868654507613495128234661358770648470593889185944065596300617589563702192882881315160003316250463087707985178999105989027133429920177992481904905468809254019786138076704634395088182062620386531236371316724575365488281782635082188417033983524261473102574992824144021367788483123663271678083522981159857457222520040814808490506539901768919370984442170730368379373145723190753022509905535425148659043370239462126991936921628569744506454715683816040163161667499587669405052339327041341484477512612323872902717877918577379055507994139641100273361791387379510118187057232260248860382800462482955331558028693892928377512789359062387517175427420256072953837622045086605701939905183733558185551266748463739836088085382051755102738932423115521354592709986140244226502493257545382357818857132885487484830119620336435440563750880261115626019958985341942175548204089330167121012037504573687285889524986610675833241807390607005199758943706589544658535378772945104796891599282980787853729285094528136809176848665062634081574382556543257854499252146635344756373326992613158042551845126794138780917062496720309320659171638332577175837358035779014306376634096923932618448010285614426609018766008946263984446668430807591151713475941800480324386011304214515599383714175355989261257306901649911751706606630441489769180203131947900003862268677817028138680337043141293288837295281920059354375314342212493120788520896582446060580514689395244540000906116826116970328640139220995240614348071363560438331969610083154524760493926551042671738843031709698796015083932470040645127312738030152160779440689838025424849410880178594676597089518667611741320740522504909448366431981541924983497661294602646956756348021719579277230170892912615784329675334300193154313550500286339613445967263968206972518220708525868583153678729420754414391226430074897638397045680113356024666922460297805462131135908713654047970259942175946278011742440768734252236478381495445824564506215010752671742794702634795961759589620360605231344063014528914754026730184391779221507475413165026808188094078029872037434710671933989710098188128845650176140945704723595426086498985386077157102662120201240594577487463853120997792951158486298055987209701131049588108195205604926335096955550930556470461639556205097925552835957550682098821927031908766211279818340644889822281519602613561020718062090095636071335850690483721726504961117476686219727721003210443301994629306465648305617957433945004906956896163401634425436692921334333724344598757497553615575195574951671487023103172770761114175284479024181246161761437654139000297730282672362518988261766436195544687270106961520341873570708579509627645993839815025522455061469122407988348814189210258360266295504786773819940853813836776367674253029392503518572113589168999399014227046185543684886376986612455664372395977015373468279513283829053193979719147839999987864129777416888506514360828662290065328759474028513849784601982803084315007731284666374000969060368120875459683736178919092066705081419748758529426462962579511086611112942710284558584025463697745846501620822432210976147139339486109728248181733783911789350938090009578488442499464047390844464157075125641647893587474124965112727280519301959014604751474622316549628665044943452334356458101205846312413055839962368991719011505935230948559136029983786149627157350694434790139540329454091044945428063238865657927270981673568929384025310059092797909734003804528187246252719425828695695129721249847552558567468179493243214052646880679415836973192485444120281657324396803533100144811942216905176310452875095855651930532821249295069363332235337765507946037068474103326536555853503057632245432648794858554811320339366133327563955216276563593975360992198887913575935315394434089789248128170768531851696050918429335739732649322772078738588027035565733556401673419327190900317605721068094017734979140886785547346962790320500400633582794725483957954529654528317477761722603219073359309633753449710889994039570357976901649259669203010573532050602242032763614681787955939665737998920898212476526673354460677819570128599283351609615123172364677399083987276359936932988571886706788789426802583491667142696713620953289621990630607175155921119744137542473583042386689633498400878414087642700542607621170623664542513410283389927816289832224781875222598061266210665668948499954026541313238847291157260804878786340285860225851532763938153089723163817694373457690209250218860546441066134238077941119434552754249599159042170698991431570872679189994348759150580985890915281257491397094503029617905115813863283300656678044508739748358059586050982070464062550906000621269461750206510059908395474315874854377219285705682899995464541555794343379632067312787281828722920835574031625150417146891190079184713907562798145717297861387561823013987421891457780665560844833851395641906972251987535659983124844571327636240715812417999098782781100296097965140725629285301788589901967763397946364004404566240906558461549382908506987380037008563844481616210875850100081247779517570317626644038997395687132658825914972195676555773515600801183824951322961202168926303123990309354363812645567509492022831034069796355106318896321158817286566809552447994988996179908234011762803146293126576329640010681146155429254773114453294909158630554816815460587695740847960938005216796813561360415452802578022759866698579667023319201442741138993532460462769014208002247578879180980025780190414445515777285326883413413898568307714811325853382081349416027567065379051345468275447362806261716185337436006616896711337971640768422839100809382604343647432074371747168246591691145929960295836010490753647898554478292565980190620664385785196398989829949470106246420078367546419939301335009189661761382045745038376407548018399329462415101460500261328064541286176981527344310355173962232378657980245095206634507195910059412276867833130901311460400302561340331422233828244721833214278688710208013255928835930875913507727057313850003438761645792261737303233270382674464393710759859129103669213388114903402193666353604389559952066153740787470770369125287615215375582094010211795960551082123984894221136442851952833278917851090422229477607522837223613446504675347865328000146208321363469944981375106088383260295607673790733456813955897090442341287344027096900638203452547354158222637313202119654813057734322085215054696619648946355834797904710949644150096331667268156407700197871159478074824663147784684866116445857595693423007162455150685959941925249828193678590758729213744175999915712475128732575430223218950031727704259665599020960388764704611510069608679008359417188173987687447169450378629254050650848572645387477673005958563846276485256933604376560656031108836116930680017291608102913515252729378570864056832780675949227289696839267352684099901206200279576148475278613672525434747308076520043849916240678015602376061202239656295039491969272951105307049856005319083467596412580116801897231441876819755595288860911565655686026572764295619985782774931446997115690378682982265127118027938536152105102505300249979578745662292250947287952769562376703669570455524578568323443637960285385391477446479111462609544681728099630030905669598732722329091427880074092768264675669229000234889309982185911663810017622320603784978041957635619758140588894610933183097078105151795471146911096350683228185903461028160016663554914512945452719258287196465499152429088562336311331035976556992967608173565802804803289594222705042620920644458882072165965298624806959144795775864745140608744366741649190775913530917141943571408029255009537003432166370033847947576835665934774106620899564488098028433361673957601171960997615726860666847757955698869421386368149985973065755318873884571109581401784066395541938930150011778812806484916506656148267846694427383441219799211995346851202882608392757973999801615056769409513331386996280860885716811509445694426924124001176780434457034292882096868020145577125425982742032812031206295828106318150042892363222039179096449005826195254309285739610567181450802745720586697987539741468205182195762555797973081631936519007374480229823667123231437981963434073579071845629710151916670869950760204917322298836509246932521301423710946549271098940166339269588508369254292064323555031257465980871317464667149886090132301385719475611111327443160531884647823478911995412391413888662292729297665692468494984782958029542543906159049007212036111968193768824513091004533126831421768113181484611252781009883251985599441891257537207362545899344052799053427134080565413514055073794191563936418797353445969124926787190994946266393556695078515934920109603784084586027600211566162338234531994420390754985614713959418945504075998130365970486535137857905068923774803429613893734210682509529969062648592411781351537011891123849352892725897404231186595741982783785596402332921947728400126611109024959559750514880640707969566977986412373997079951496880230085248959939571256014737623977456486736256666419119432628485480323197704540419935425937884290819783250769025659263166117200082632165220058376006019825669582168638161773372483228843583137334996974710134350109236102466008824167988574894285130852974964824968005146198136015996399621759387853007149004126117809261838043528203758965945062003660029388435138127671921455730514559475584797831158404256370015441064278537016888127939628780534731727195469385624270740441054238943042143421810582017634046046992296224088927588925413484082998955940383054557585769077757596391831009766609484874340847680766665760889641780415891650458877605843330219040449947385113304532380161571499837151083063280174068108620222247530742804673151086451538459502713745640132832622699765790289258060151396752892715982892380535736930864060727017132142417187674916691831341038267752259237468290408831251662557316722491722517826686348609623180110627064727076213982793901491040033297790025905649706135911265643382741579962791917154171791281647887855000820201965742616345017775123712830691001623927930919134935159162547712581736837777194030236380216999027539040344635123533039885749839523551592357498535802065986824277677332795104799250349669048954764166260559974279859813312762669148467422191942124447863972731561028937085437857305993712559902812722600761259495093528475619744938108340363166458756673581931144357314658658158128225938825348940851913803605845650601539857062446671896765659175679015435874199387054362275956450117046298277579152690841668417874601845875750909125493448133574950869214797699563980563212329484041823439718245194828848020090180444909535781849721954554077671452174435175047564406103558721177364826376654497149662187472034049611931807212661630183550949519809995718851114437045889662604301076341957597228841409397224548471043254063403473364056322967041866464064851380170777615266260738664458549610410229264778978442590558797675743454343033667943523159520572262654939584712464784288665394134233680712677667703926798224904310676565954773369478969807317289664195284935010333687207483636866610190067015479082203450024213655064964527470423724147357490430949683374267489813883852223137300939383886193772094272287108019458140758697342566072873795015620730559613979329426954204864878655889984389606725447457299078810363563738575385013809280273016757013135135064559911432363571571669483499951738863594901273966838105948015867035248050582488350029024808321990448056723441311130131197923648517367445895083807952539617711007003914275677362795172110670827791009268354884912958251300282217058110813804820607664754359825767044218184356179373546985557911609482394097331979580832493822421858408038508873083865934324011271066172778608750856892954919350555083522280006388773311604546949867745955777149206132543853955201926360658301928276525754981859536486847634400955598502218209851641153731463348664572484641820726804729736612700871878181967294255493791199223746561231979262888182877502416058860411256502638473759505107567402592736197433372418090816776507551596493173172326667360786128573661170603151686693749783731550255670825043150655018208782167147740186844818052814689426360743758457889103855961783282060669897642608049323234816324503571300479866010312603386090594496663522199762276764506754797846596467396617860164984843082976578791967481431262636259323029133881189535998630928712401609712272610830986109557840972892921020927706451364696956214804142549264757070864306799627958157994238999706418976230143039285627025411793922286254403748815931972106654861443035674170829211442565326037018750156450988743082990987972753126010624229320378582893116230448859634308654952895612996204356206849851220523148133187638734858980701970301697754950760289936595979494444666609353316020845547754785578535800419758371706599956824018399178023079322125524273445546085605544437389565113726250803084561612248908111889251211373318400815883769086727476109561246746817385696164184892846295361333284537914857798060295131905399964638709134762585067548744781732054796950073876631675885911554131051009276409580308763167944588933691050002291905123952778438476884146184806472626039085335639741078522056218739428970362589379098966770368436196116256051212380443987926036807411949150313091677592412408320584976587674709411711469611301352634505431590109361779973381260864163188928043468314065320237494266019806588826744283562814490323000194722652010478880273514959871781394923018397748624691382668577574993626438241250930077125167234464461180538072027346319723657812103252374209452862293763962738912192534358063257069764428100537268040777496509380357850189832250502376519157478313045108906427515401430427144791170561423873985725524940578141657154912928262735680255272360292164023049948495282222470178781848026788628828193708379974892166367218592417485440816315533108067797343514015081209447523426238309355398110938589403651653518798612904116356923948112156294315186955496836905383648063908947148582109811682872977380422281376898107970723623652357306637069392877432334400833620045337573288398905691529085120535410939829304950013923409771777402644888493426867010460945837817410169096908504502853280939256769162625891771576118271000915738795578206641682600849627527682296524188531261476125286730738133735748130146269749850068631240677009591602944568600764878500972308254620816580840446304039261208564643848100105282543678144385717892780573881932941632199051932632525732889001645203465429881349819415362237616386335391121113308464802348423082218543450747329959131848693017694180686722706480387106169998790788061450492777415539996032849134762823923789672170891885051798592978498262449159447346295837488040409544005136426051068798084935010231176144017543689966784613753608429132376153392695755065217797978477945038699321368584994263942248026463257895446136339327457559604625968456714497470615251164200071658782764747056830272268544904341543348950788654691517559390533986562195566160223732026873222410229135451628451682647244370047018131163965194856530599889616472280696269258725160747185582076606166683976899945931742563894786008332052773007040687854508697411510348455019119672569907555605952726330377390014913026621747682201151373251447042119364351257730817363759539742150880132272737017336064528466020017233547918535696461996500909063731724298973164018977279574471871836747241575730401317797293753799257375542516753618784128014866014544435038813075857479552026620884193030986103969219162696138516432654592511373204470117423054920546160563964877829391620551565813454954038019445105585786529334152388245227516730955129079256476349195106460702668350216591099062345892503327201171420458089745133433429237995522755402978188501681184235574652998209516142650840010620782262040400349280741809086758585143140395596466272318932692965837227798641419656115880117234549491085654330017298335084442565793897482948619874514252336850103237447170519123176530461134778496695305391437240427919889406909296064078064700296719352148585337156807804632766638589161957089227421439371631110724898821018168442053816233261372058442117012337699248344816461518771944572593615104040482592208111981915522058095048212476098103151974029757767231273329057898017975982366799446085669726579837449531668624320842280753440424427052503744729138711713529412862313323835134402040449285935354753465852684459663079165371567534200423834249756718829176483465740018884127767776949283043373902319469162050399451068705356623474144009217370626618803286049536102396893598105284498558522866959477026249223544252932176541885892305869166905393286484837066772469314092277955647571546263583807467385120187067055663144068928265595222947434003233341329997688210436538957173336224248807264363331284217768447897397525491912321513514231978629809195356377444051644091167975850065362620675768180878211225471891192850654048759626696355169840477183829303482963077692153158793074426632870351638719291637642472725172104676086316718102431745940577003511596500346716322816259929877856211527342498122987741456970216587002277677222114165880803517402054422997410195996939982850088455836278274816211176226368287997475811350864822224161900710899659781770877557549915269680464620252378035725578526044326422337187258965728931337815816300668310340111475662152937243328048630023822086306129245078948954124395270810281681163913012686481537419105352808465373162864164644839207734789403368529600266740922572667615730082189904262813173353179436308997990647609870399694864137190460380695947741605333651350685553521937352997542945022210368265428074737984388194591735531403780327360960831399000821188585010053122271367073146660297136306826222549882008337559704428644175512991571922288252699295869304005514826329691035023648610954911616168904094176535914207495456015149689393028165501512237791697971917227829235983051752334213664484195031137141522000872852364914624758016673527097487163169409943763797950678758636236457197170710750671490420930928996168195094693492913315558593518384384322963618983742914360392134739830023743934412063472225653024809033749703535804273885595065569795755933859525746219396142363071399647539358427826055135288409340579474481465635002169857735472276423439367067609240842145581583632746994933349555241078425166109785943083835756322533688955211100251993113797003713185395090212390992770881995631496637093146285900607345776537183606314103165160772333151630687023163037526134345162933642483330683922501485407848404161743492169581544147061294656705214422012158642338527745078270503760220856581320169149468471362976273440169577399240823515153711221957030410552548159066242167741007609522550927753283418343821352274398394622424740794942354520515556178395605088868456827729313636374551515506481154329888243654095215733797213388775022484085959994749131936146545137860742345611517473056676517622634815013146309438089582593982876213785545063097627274357742346245030905088644182090550906405182521598670455314997681564834425455557020768320952598912572143969285540228716357192390985945606235197590138655301665693106609686264216558670457137246788353849414493530627801967422853867094138747736989483464556793318243429911027901215352076158579304908669615836056516342680670566872797127406777287440330385893769302954301052373813976289758120628138339254772420010878384030193382717496998609463622140550304848908149218821978818212210657843244156968204212956129412430114179942527595729823227771896917867687241691295971249093017004240192335070787551669637028452382678692769316047282339388267895532966708544756886622094978015208662063576860383712879427411607378204997336179281236309393035972627113426375448615782720561362289724925457398970867226979880255058186014150411438186449626324088084402609347192737095554273025442014278442875823080475233756489814636901356060486008502698868423159016813719529067078925696443649380758127598358428595808685216204611600754504422919769706317550170992952936352554483578594214666434128808468790322583638272422013640240565757801329828299635383357892610432244493782210043013945506586676547815257549333688893863545004168210601931933780145464329590163518320396409532893772696745960188899026939467898351019499209438227096113262719556406494990634394564395459788328447164205039599383017155016761943075690521417292803544512961470886415413790271413400180345332989813296704545679092131697114820089685290864277347287543546984964434683585611030663897086713411793099273684605714265941631411441405953892737642271011477224382618615026378443935549882792305173799662077026849318672265731979712225761389141233671413888708279272407315129644910439027947904531143282368777553252103659416571623718486676826450482039760141287947615123918395758673537529069932329373223939537699369046209635016222238893869990689458656825396076079096486879872702081013515378848149773445784490765699082360623044226459352210750339410952497200474216317177929818722761439835305163385888960903145638596407727656538186262853415262124040915675957422520679776191810627971567837295685532375152773744357841713639739947336657427911973260993214989528626142931528643708970615730617823359602992031139429598414651982712449739872435404871277384851083733739821964192817201206216356620789058342648208733299005473624382619440164141413373827862643991551387398609367872930865200017732037545256632412564340856202782590690385492244413792615981862583965139972268892276112344086068654161786883377204239841959029966281754968734052257288974712366379566197387639032071334566257632896176318051324759935915648544316995306885030622184928963684951723257228213020965187333105392375318300219952437468028976659971900783669409099709410802035401633784918469614149338817150607279367971199093984903146615155026480712270136834058680473874694062177040547675984387219080069891795852994182301382771979202082709477235128333700230385350753500390169896771961263101124548614466174065438211279398336126873405639297667779766737431410114557462777914157068114174066852660372931391883490579773513171078498970958785179592846475559658245296159836384017457622087653529902667938342628042419061111382469235003332302118085540916081397067423275964002967728261460541988303752788571884955490087774296725077194324098941060330571197272142542179838559136124194014529639380554786664193984677445780865576694262068921841015664226191941448881398100999377230186164330865066720598525525876588885425569844798544344414710587438323687027937601375861663240681983223053871180070762151031862475081730126601654737289670521331150852013454805345622826549944924784455856032283471611365868640005645958995671694018767348613388359073692936120788231272264967465925858719490595989892871778379656768366306351611584425279460514642280078742524259883801178424349036338928274991351704075469051922171221341544527995499005225581526944592275809117045536187365474795197631096409512398217316727638031901634219324323414846923073460668412393573681585213322643461829491093193100670593404414797585231710972952781424736890029182915075943359177269796619429069654629058163281039267696957350586810952897886798800054957465374205811451744684434581596294598151023912154421045021394843388707586099256033109655200003901928531570343752431367824918608826236057834659868797348930361480051046031631683302521887776262070987614114805865759880172644103190610890595143410151645210120370495510443158735970709637574505680178692187605162195208192618903888553833183601910745468670982057840960916781501297695131992601954804786334625174970235630241606234364012472618409673907389240229864964907208306823951818936724518037084222893160470892164179027407176967912457747931220766894161903013830842380621183495225640971763624346198131209357956404277436602109083178580307376640200841323807391881681171850039510981167918301792873329085779067978781390085373210329578188288014036939058897419304398018095400526469552960927649628882713536947558435223254835580691518997953836621920123770917427948858383663224477018649064645761894033606570112215206510633564933214481050951061518745919574774303738928907594399763037235552630114657330478752795202875546742145633923191914241277851159954471212352719415321844772631011948783984425052537056405760673450105617262681396593063248838213100008167899214548445592793823499566887812147795934182607378023421418325685057712919779339122113152934999826322691818043074912024807745472661980035697135162734520298771692614327175038278124377489369409130937313740610930118156893495627047884554712966477375042636384834082673134695133258031820047706046388493939790274168565540646552330127567149307750929664653239076249002079997437012618483369715205247442011150763494617939024305738845740180297493966463582211099693048322567753896637765878807046934370509727670699519715915924229367931977992398376853889912854574993058015245709979806236261089256162247574970172020445213698534521644031219398445099812296590948267760111356429422450474566852895353587513752720186310185960042405958037781744310893434031116320909851802354605246442770826187005233872201634623792843462246950978923838269409237751887672388866587726157625008734790349461122488481218456768305129164936496580669511285979265905820322240986249673069695137254680636521363277193201688585895851441259136203384894411311897954425400781948917931133816859251202838223943321475904042332997091634214156669091252157435522721612024732504977848626264232820874618825881117578027610152281071085729463211916731656364678326006714774678884376353225111350028964206199804513788903953158139035367385271284551694667757740499386252719940259737905261991483810455066128963217952568507043944009122249389743641508373699661660802743734302832850122671342061508964605622241102053242384721279120337598114410054738632527285597141011960054904072635958935283728378214990693589252526600991214800781522054427776959602175502306849010542682215454327857099046086769717073745700025186787653128099220801929196110097425721037919051657293747352336933718197440084342375384421579836213051211728135716886322641709545190597049219772764447311959332444840498268475050399891126961399818426648223707037197360850033867718642647913995472717427302984220157627402210375356605945700888902104080042193485234893292087560605189505130811864987276921245421695150390633777204378080435535244412320648059286636517656700147762489682192444299242550308420499114508519849118424259432338289907202220898445889676220604943585665614616744698838432583501910650001425996211046210752261222786362799427479443218656054290126820838029086084115144422060573571953618089474646483557050308061380872774176856646384742774943962920283051792157913988628999436555483689195558263085519738174771236012472293602216248709821606361091797214800745865947481705650701279664060720421000689388725006208967114240310448087649968690180701930793774512729206999140131244160028349233504918193268316265001766737661778688341249685665550155754979255731869520735825641664475202289164997281792088202149310145221674346769203254762791522097050004624174119396855597578216239406765880793384357392692139753981411682463541782347862476063171356911736875369428824227628460197993235324287916064620795185013080841292716055508120640653294740626274069393945115419559659199802344810942336888274093003034511870085508622952772754837479502537108815963890292142685976548536313486310224789385718365804232538103715076444140163255328844512145262499826488074644233385548520240669042350886509999781643214417387055668693560601560528467825961980174676941387685457849326018495442678292810523240533377132601130066776043821384985191924990560861646265161734662540700374111438711777031628984810812930148972472558010393151879837838515853856316748410134747001708589873095193426509390432099178936214931817959129478725642356757847520191447537604773505176943055872283324110296120912530391220232418144595133716169800165080459124067370990143616027972434543070556972229515493258265180334616812083306224121146967684451495864062431268783721876507300855882308175944087636538778215037161397270132040444734787072628869495171232255940238472125586128584451665163718671191276909803633994350170809233929304889358928563443397317475122315769988788840948678007616409805531317462789312775283250315533988876836354061415216507007041659146067657241805305880707167137939994431969208848534117520522314992680777594315265004375393401671995037346630908346623114974147032098683398810827406366672430894282294896633392009259259515485526104858253713146147791515145381490996855238645658481155470587496910705916197312518962202962063117956325513605915468848552486352424931498079980413059311589801556272645775677591450730251472274157335006899946698256660056072230926455353378567030108968660281373065057259931972926898838860539689034439270552960773681889084406103694446009393987740623484615679462503712154485999024268260683999639657184537090380000528050306032974470531670355857091221953553674746133704518612281866809151864304926842805375240443717157639613037534743023121390797982709605573984862252978760428918563712877366357477195392808790611087236377739164124515032868780656695933223329998141643575237273852388592213522961307087098082684746649682361362157954371043127741273055444249485626088284248689125709135984180663898668051366973668947344125013968486788308811809960564808109734447760026449491159440163878460159676434658311753122977033952332123875835752894923503586837089721451153236583177688132391030414494223605229603530293891126116965611741524944860853656746769961202345638955730380121512664221866658001548309112729121570682455502405065475212282101033241950365204397040896657540220437387347075784685320144876733640636170547565916257554030692434870118327659040331521089372214918203974082947169644494617127393984131711354916474567871801496510377235685098698664618496179153484580654506487894112184137377609010744880568280380708434829157140851022512910583570062245137384677817424575781394624389315629425296154974129316871945800901453780536389945456674074762267875545902358478871607057304401191630401308615735806318653685382052793834315046780668591790857401554452316004346968454652068456275540967094539322722099117702880914970147744583146518445966537225377585421401774775459065099461061886614241980751003875829383503569922697882445590460565616310907444662032637680834907427953905988918983466092226574932401846182981641108783622731321711409417860790320968632148515399382641036729279204271912029322340461679242464379951247324114024274441419332014414695227456620641424905713551268810979108278802954015886175323027205633870616669856652469180192549368631673342049841311202330110746753989306118924844782111985420828752333633790961315853642575146299816171100304136103029805125399940803223732434423090519484938740203292427838719412483002301887713249217667146238634072472316412771604478419695882419816239413338544714223012175240395393141610085207149248094804326276166178016842400940459182861379582271163814642494157727032612035802443933338221381122440474276175803974255821267961744534531290740333641881187530651522224950716602308356950237056356000051613107091626217623701406257198852441197531791338056974315696235875631148823341732767284011706999757484586553722930886334614188701549761129492388581388509066968464439210183150364697084961121981053617078532352318647823434451000927520615814807239066365422337253528082839668892869056458650897461434123453289819332566789564984800714522094313936644867009752062167568454774309998220375210085060837491799906788081670261457896794060572352613199303205930580424954897547938407211085642269126399226689713717351781667575841711033723646511976906267296373340500762970088883236019534078470068115629411893177024167545435449550707723249449491886325775562661500050577586665149137154607376061591567430338651674124500625539738464940649535592834567667029716314173226291920149846225637786768823499466980707751255448528660996493222474482903604767111458485093535016012554639242497103542946298647425469478950179961744061524758355710961832134395242975663585525254228451613727024308534214118302599245566145890497592580318722025098987837381602612485379667212876509563255859510797754041336005687630203032691095626866252075763468570255287876875834693275869153433576988450417195748900623748564261767582673742893730990025858735310284000744612014069558719239514961608862797778274620649788009105697745042796051447999183529605910688526976277257700741990655290833104803650415426865874407110025111820074455080382348885931466645024429517174619787139157180870590097788314241130243038934279578858969902717502938457213411489156441439075761166965103865210849881903944364945601232573949812932011568893820461421362273002515648808508468436993759090047125688579943711158425052811210035695771190624122294386323863411216487023768319585898842134009425742093948986703153356550248876890006012436575038529753821097869506616365744555760950671685427062417490984267931029861649525109617799146398724079618646439760261378055367731382142246438257689833055998245452340920732498609330034605839175230688369154475119044182002422919671886695452934217416935408255567208554317640239385435906136026190741873828240891665720010041162105265174983602866577278812109417102604754793718070681048623029663046587815916287004342069520476822423890262048642511689350243722487303678690035296061875632224574208552602028040013734776355167544543081400886251481367661452926344813553035726733485427604322416242048656329687737094217369409962131056691226980683044836908775292105648428566942751755794397403350917812113197375010194103226370190046493510430271833614661651351728635864385579556533998677001185027382577817950496262062908572933221769364293283697980482068834238649901621507511672787866696899832977456180084920477279600569526166876617178038519419344046685049541000724272292213819725629770306584079989391918664700062193863162387776737116771618593748976697736635429873567191190119198709539984376390881275563953768515030371976203136320776233501084931795245746502783521580888076926168680713859797042124390914488364352926921107745605845925944601010353148844671368309963815976679228332888153854042327463316768388514542748816832133991675876359742485735870791381143170764767493025717652843734727643961503194109393984035825487252101218666988471066601525950599537922567628610259236656586504801050224914106178920976756345519107355324822671357833211218220316476108151234408531241215022657800836079003694697975250899367515380738429436297926133005381970580288120436161743130447762336967263610995719115245526476883996650043003579479870105525511034941003589107121187595112172464111525003838847511997619181994560639931021476866446364387308358062586305851787800746944917293943350422843311707267682834954821983716626100384006048897323044661426727465476116867171634414319712177264717402118003677446790670765021592920128446689720745118751589303552206802051494355994342973323966395194297443860419527082900625651117711201170483084302540152030267987823765304319418545719965359956129993273055224167788898338113574619483570474931110825024037265730259409315567341129341934590692337901667044665852885681449398139502806765560188164140996241364431365215799849513262823068370537793985668825774146666318237654530666078525162057350021788071828612522552235983035165066610299140728253831666283468020625378670386466670840208697233015081524639263827787391976166445790970237701814815788272392546703906260094567172596927295948559915813913586325089467652928204903390178171590077529903038644952775362998812373154383262315231901935913272571782645718883205722318213255712913471183182016177990873163995928259110199866429326451674335461344683878729423212695240937237181173387561638251074302396557628873072204526739837278306785900080460993259759039317529810038026070146579221965934046063982069620029888354923159896165834401879589616542543478531358189360157975207300829097557427092303152854548216305549930622326153519828103112388757336541911870078581220338245946952971649719849097014236052684732267626269949385342340249810839113022797872155472539677536321140749127938884304852751880912767141035453583970721558205556299506116452368857076511797953383485529868613543282025560892280635881914073668386067076927875847755650739642630409601649382153842085282035470819350590780141724124221851709520805402846688079122252154970069165834094619418640763935810327821136422299555277016014247247838373808602439730042032492409498956982895309555461219636849414055955223326014674938693994173954550193450332555594515556089983265838965398549797225071856972359174100606902267070316748728281792102432136803216908817456463003003127951570966599620866875797725139747889895673443836283924957146628870093550159565320789136635688615762511249213454883996183434372565115029950484354797237688620542603516263667848800928166789804190493485079882236664862404280411105416445609897112805695513615373906401715831884724576308139856273864237009254566400708692877430226143687025561716342358785904905570519778350752533355713460309750854372143455369146952486515743443894016821937632199456377772241968336824233078331379850078672311493906254188030779798518603882081484658098353886047088547539257268491490807895785184415976939046872391656120640203819253834731076863895078020519401905625567273646582779881969183526422264767402028343992189141674914766498777773907550493281717269663119645221297114576995758574857799993615770880348580913712829413322297507688311189254096186230835507205466803020473236018716645198648494384333247888500231277990817955139888259521819860032375506469541980506543711230999279980955987940444658488125935387019460622306822201477086979258849513092852230009818248873872078323466794820949171448079413204946715867733256786922586096249240831733015904760202661857743571836497556934460174365637272150016092101292199665177912816180627470622473240973526513895538340231452391544846890307871766512667314178263149178808326532989888163311212465353269047487571617460258986281909806473259838066390773224084243598434341691954629349826810648622473918747260498221343220460322612913003123769283135823634018376603376800131597142270361578064242427623972262587443806371084264764382630613240127763875344385891896599374521979779698163793397049427077425100313347493405813788740334449673859816355706259356936438539867664527287410533589873798114054813540827335040316864098751642588571442598018271278849092653091006892744627670440790913053036249088239493503193536719004131092655062280439592372555488893914041132411846796482033192677460525819338894733140974848328670427433272684721073897139873130493996074565713917391875265555222188544189227183113647550701531357596120317929483768261435788786897543362209242310914931891710400028413177383867332707915200772814800804898928671552439254911903085208197913074790065227035357099583795254676373984029596905305228233088401544466538169213089221662290265156616459665194125837618014300995208079584614259091414789182164553400236525376005543038784805917135732832182989375602743421318848750826748937912294379307672272800742978763137084549761661644235895280527933806435731381789872307085173524664003237635357902195622217225205251130619277663645644274216633148457595069590112612752070943771041485446208181975810024091097272399141527777091895531909994486243299191634041435277823083966959859663352116367150372628969756171010765326282977571316944418041109905739600628383293572212557274092463469905802164998913895398287153537128218020843967072829710126254014293331324484537180918773993211529930924179765252637134715603766795420811305288703579786448588256667641491241491441278932582007323334581288871121117813096283301181540551010554646736346487011503341855488755388560734079083961874466536051991792078246076137296538739030533940133745967563597380424421944540800721600258260342667824931328932617331521936559418572237213998746451261908414039061623980939563104742930991069778825087234427763435458644560981437312810295405548038897649759462573683329350225470752994493860700118005285021437128212988754344921374880590898763005836461039925454116217233120323275659172392399698564155174990864763781109544662849263785524025628951649550935604402974217285365009366980315255841661862440181415138025832456184161369977935318032843121826563869971717327906105355667872415014070673175899210445898426148744377144655668581482215260361115168180189898991078556217799195291776121776568860040157965840569311071321550474524807093928021412905299368851450740564138466922267420085713370383872164855771029323224211795904389821535971123985762624447051138048909150899773285704677626520631351693651071431385416761742089868157799273852342886420525191196902344920453909370505440878553379309535065904434198761080722253763244987707474854571863397553503463155221770118519029625998712632246940058655789928201603851830607968266627896914887225525502850621149975249676848782893099732848890494233743764968460006237041128842219140594635480999496739706492034771768700269463701222010332926983450134809603496555861993669793701416758002784178486558469414851399760814751504236713135600000348511504003241894556735100478045264910798443448409089973239823629999109015077628677014377245389870546694893725933024473913516371957143747206472061871156015335960006182383140132223553715966751934432146306795354077713648354948903574407040266130927264611522257256216391937623093427982928299864581438602440270605915010500764098784025113003022788492582460131511939513887564054089351766803448081184679616102867901696922971492699554994848743219725083212315347533555488805532787331502270303430313282088948971205754197902630445869801852427039864745526887751617939302035080630063084545655780296420724424652438400914705765506842526580418340434169158425268331847859840235337202613991133935650583829432071026878194669762572497596489152811777221403410464566676583349482087904755551960652889381365225111295240807112438847262183135385470677069147869695623424039581495862579641700721990207109885399824777473384348288374299487171036850540053442841239884607530038802231572057618272394306093607438268417838603529240192000687650669053724042417307239032873422454572268798045270817290939724944806927131554627784621522757361697706052057436556920758603372791431305467623872191347127336121198891153114835250502008770440925277832130759553658401947903579245886953240779065573277068203094374003850771745577687379070709955530547398758472161839846250473267349466501177389787292219085487812913969541094921271484950607830766215224708078166101022238959879028956930229971377863248791748874832056180770343377573534084615529987029900012746518241921337349486812932532742988739598913187179290660043953689210615324327500896840692218824706017648190262736049700336017993293354204061050195837956831962351382689672800245431588022577765727742069182677295854542823992695595727277696236106863640557736357971617636946682359137771090280872247639037149018958803534778584591014924602951456034723639899899760944293010797789632197616939393810898990473460076587038511021020054621083673488982363919019952610653133343081349046620198422747158611781481456996661358247569766910101420943396686812487088792175142174440894738211297056515903115069077191574499079027677539713283108658153088386027669478064074826264334095292580898330380665319263096494303741318235106663507505678035546536464449769266725270015010187105855035442583180207707659862461706537578526813559581598307985579628297202213031447139587668906749982660623210606739496200575082203851021741717889697087730791897793288329263947691254776297812356374779479958700190323145740310145839259872918489937439147458447262279768167523652551165035778661774872837570877608380227580915582750996858298223250208265621495427102900778793490335602685261346614263198551034496563282572720312190801416959937847350840671729814324007955341963873303150987668802924668343761579217836104667223909443491754090528200606360914653029276802432224487833351245763536379310672009313940579331055841112375767965417825712830499039198925009330033081059507759300046287327274376266537793377241442241426996798413511865864474010675928058956118350014889452307078183123800238254127616330462796965040944252808567007992304183837826092208869672765473838743339217005834482322451116217458014719134235121608511165445096280507618975533881000990467558352454638370924777521280810608360039208323488603914279702548278808258731207234762862508474718462377788104189532717072337733509960619761967874834694305614404958056402816502515046061397814051548883326900273284931797648410622715446192599107054938290738327752048227079867966200150895104730191557280834618012033151211142628330162400393784055581161629936872509446418419311430297410660097202069919966088780918397423113281338758657889684609323530983929339043849011731464100991273345509688131502378032332240187301291118995454994170717423829535651516100899279780238113572626244083453493258059490688321288861013975960273229403942029573471802809030833522544251217097468934826853504457708477734540800212842709689050235599655959370729709441797331030519671118721378352541491837298771947514797866060588294016013088636189925140209352430150762546253702153992210566581441932755579094777344557957667241980993192798912269651275107242701883796069361606270620689896100719386469206089213631103207258498618993061298187023048331396078133602574877480998170107358814145933167998078426087838784250722840052296985081520044056943448550815431252666086518442363303189225390790102894184206111287270273291239215729643159596448239797557828539586120880575819922011892799819269911074158662138153107967421126166140079350167931975234773577292623806084712841854902368168167609682882452153143811749883169176027963332058287507031544998386394933798368162816466782291455221013681794506821392032177167838030927165772259690236765809153634356120257415832213445661871173946333389499754078717989644887777311066813782866046039182623453417364497848847448969940477221891690835221304939954322114630200674622644477822728559458219032271567553811345858517540966538422681816406357273928156607364578369650280975124109783644413229121180325429473861784265126830911874158241272800805071040222481188516990337851281957419538380719539117667297769163341438603947382356369620719065998746792578930110025622033868619792925067717094498629317177248559001417300300126227724259425624140559399592503023862288584240484540475173647635638028143487321067596694194082029810521618826669119752092022099226803654571038052198531774701307903535718448112894949318108273210072382536390761486588653585430240808136153006445693121120811493694856449991732466127104337844968365242777045470459445453319053438357595039076409884948184628625156586392073100332072793788146821006685558018150766483977050860076614150870727601098289895747762014215586491704015397148146447778250936830422233284548315693987421319349218807842584344257627035263864772512241366099253907512723488731569430688221815394312062274848244538755184207235909399295646101876792586141668606278057823703855522436101190852677315368157606332200702699257439198349524701935668064926912576496245958874899114623328397338085372216008544685110335888879982963819582718787052030730213883471570037976818289956521423626240895463762382301949358475922863690191601168847840431759622921850516368762635853500464785555204320456267862960828685279548714400360212663311718214838922599397296655581788585815246275240566089770613167762282778232220821716643150791040345585502418670413119586248951609308143604892796843570274284566334350800029181075061740093740792595050142805827284268651677068280756161739930746095164488275583343954786936128159428694311492866120734829089684352296697479483511240811475608252176316944527648645847976147070530156692830491748084441419442409820631165958228742113914582227315598555372892231668780301128818157960616540985116592523843123173673815681205300498177012843723808418960765302696972994029038964079848824436491270462312186092819632019418259409592318154796038074784825834693127347240724946840151582806426311275262642955710624982398180393469499274694914271113609645456439133581261777671038327192895957157689631848647778296362436255026776870930825589748722970163947427212024499375170791017198268743009904552068356275524219132040551030088551210049480136145994714569961042415021763214489549415630112220969945090310547452422358750856899994585130456585547775115520041955780394958136862602481906430057534488521881607153735238628185285277753336038451749315891580365887219555499567509359385246060420278561629431565982645395521872007377222878448602215044154639144192994585438551714026455492724480793412048977274555034469368136246539574953244610383068640229372333643712458861905797492001570703778537844089356705592549559739174221858189760463829371426136946512883859015314407772721355205535158940031627957691598976507776819809939339015666703568333538815199173800434583591196739940607859227390355999592137472749783632763369059716656559746631275349118197722458884403247651783771455120280287873877973214337792749990110589654121535645910202720575021463956345043292672841987324117857106905568674285021957987858420458820038024122403103386661527677115012293553611689815768737827119622544557883609824062899549839548805520847126189104927702099320952003666053443593814293061427440766613531307815161211028633398876671254025069592912166239393479375491617114251481859693762911092013298196154354758822765071895878223374722241179253715716560332426288143472194564134170893339676673955333774208796999635306575839197370407076411746492746451152596456466546272373226184861513636463180489341338121584674090170010424005722096513608732055287383986092159416746649368453212768634139234516020528193950781218358007077039516389634396661492819531890784723087330913382539513595606448280177634301978729808508715585569959700775955581359314002316097210290147961964645816737486274493472578630675636411536198774828238541912635526298175806581140652967235706529360152945783174539321596199750354718591104652731364583226408496218706031961700337441176174675163717818723100450278949976477181906860937085573486342769751942850902752808551415058452045584080606466181514679780838623639504769634146403978800837924267469070559539514333073919475326093350758005214577548851621880991143138065900611631363016479970500915454117295374469945431199150346517862160351337828294389478226587204585030765128190602338471166658989236112061697234416661451197042024622982832161475263612608164878065101988569221878582146316400284476572776416281216226066476274232763586534630825843489003046317215458023057238528439956065367422505805143906303036946259187390408823670644429063066945013089073914368509820710472384650789542130591524203287382362465133469306929115407035597646851125901354555902872455275773744827048297657043923632377894065860947043514627200177293848508968470071279975421817719152724409564714530415430897031493334333428918692266989421805859080987567335154526915303140353812729332462622409707959876948338349816553099361288937665222611300647224834735981162109645297452880915905996045345819246314970873067214433193183325066465030975072581160071284260718267666164268620624443043527631517528661890952699435899063845654084202239682872578458020079504731132367986168776629172425118450754528582233010140345999641963445549326549144997449392081272935329619733731008856000879801573875688898828496551349650902940175408535008818567469415397062469830790202972340710543055374806003763368664256013539709129320418543885247848109029574768848227829625894718275308432329213033229403947639421012965343741715979713411272442787157038177606660581100013195017525633707384848214484899526809834179483570486427442023471649003920308639392093595033925842187194447613563990820742231211009695313793061549668849618609686923199264204229455863074579653469677382468143509143076385215459463712945117359605130817491984452076118538805199579791864264252557978872905523871392412695685806724616177434793371874604587946586755146836641903750163403957831671002115392020621927013850828734742277659794171053062848173408443350624538513906006649162379568531241829501463297254581672049456976903297757969605134807556840713604035909307694385808135210382833813995326565823034837364485547660658865927798982597547468891411359264129180040289655925505282697556309448210706418601423411553012593542091464611752698098301546270857214378581340440793119402261826637765308227636720107903953741105824196857170033220944356642089241053284288959282498924571754566255220787051006887675635907236917477808843084295949058198965496289876467173614631155988489933818108642405887946774247200350821822932010108808579407935864759697343768661147501002414373097793826677270452021584295076200580717884675744823102042894579496002682690255399784647067477425783464217926229608117263448011921080478588623179641394548892491134409895312938753708279035899967042283204163955090267107493133219123453382914363017128527938673448966857171298550150011450912217464978416066496573205911642129915190578486890574700574685704269538942488268546007140642915700147667768813403254684868155080839652362520350897726631360649952444391315083577134082845948874159518231227763588396425318867230188267068867938177257973191454239079178705408657961995884209133845964376735648668302838385963010593445530276169152698711158039114108735616015503629509385913772522651995419967581329063264977648180295651011106398818266166013335577930188302945515939469634690044171438017744912561391799298905399441769160902009717199336374824358263154573005786779303801484245669410717001124901082276435171766041453188836904109883228869538225186373184975124935320188561653154511249936630308646628935995853231761092198804091254049025060039406258238943752461559994363236506583428545852719658214773018531088661082522807109545557318823129619749180015933213742167851971871936280573431891489490012798726797575831995985087532980648515144948509811419119254004009448786863320158251260383975465521699914649552764108012650742934334174030991517562287607214128706216808416639900045891335175853808976334211795620311084395113790742517722810115627866635479445992311638071646778572051360623083816082741208424142016837666807828451694578369580619528033083037845568248129780949912583412319713304875787571870936621348569450376769013438876023282809521525663912437703034206323321670200500381171615068560886644151997182322554506392795288704756953436590921472447095486537157490564042224863661151269286174329711137272292373740636743647274657445798885630269377640411843025150365070083562140049858014297777481327050738817603498525083454916009298387052732809647322145159745195930839994737918337029648613728370597646938414707269963776637792061997093009112480497326870662860540212446132682575240753304220967515676904027424202615853372958351701455195345504049950920743842825522715786093562276717694509983090636153518469681895930462093887912975848758490328282207464858082830144628930232600423348619235967638946317514593070902272983806814274372169824443328103373871614458078469221938722573667220463157488302422086133759151047379432396298181276981855461702905034731774163940219940367694796209762533801617833062248733080197401274365849157710192104168810269259703034815031863797930095860778875313603189775236312359107213243241691952457203226064759310462837528794216260934467627698277430006232883512062835217450137802131703335491792052492511450211724544040198528686042740561662755840975668436974411120391570378278483464742277497761208287906523833860371174368387404797192299249571373658752933285713975589262087488652311383398209586276504066434116461790858959869512465479385442820341505520429116858417045093023176656140025894411786137157179824634034770355697970088927363975813405143024037650044811732158543578921925442661365351034374350431833079952147210800650908659315679147791491073754349345255046994837517001301265905608315228020531979809643202631682288767338864238101401808537471080436053687218954973131803166761558745066706012282367537806028036958481384528925834721423160310915701329816482041378990167109321509478504539325978374467996605581569824299216170979073975443142958157421123608401080639474173144016464409294259572659693945783462186593857763216767005240020206848250544137908284573943517612906657897084329256714406898108828267913632019264563399921815380947551199744798376874456141382360468298564432044555467880103637468825694043525983735149204396691280943938663502025682098564017076643271836769260252251800233413454432339324880436627011177665086888791716909791666921187230650146259512473621362429514080670655156007520440845780280416134275182159467379299071503093200863342147287812091745211686795752426956321153277021988812348010193114586150245732911706132979021320109063111829471112017205210944947857672088636347979485849871315704368636627176932313514808160208445098992615031858663502834939190673702243388976293967201276027064343910341343683690856201764463918912330605471281248545831341042812604453479323836896167639079641405922099776201699409432316390625734172154545299211059549163112131129264856229348205946859519357645236901056719584669067249821649023758797623100456353935372587163225622527378545946849033129700745176265596837278084791363465750353619262924881768735905776812292157531373560989432133020045796540953859870222899392380763667412756470639806975306045056602472072353156409415357287338236822842455067370692206267992301722703311933419320222979713990534140580239049113828736974484536499361339745633064956082313077239803544456282492628747560717968368285634380887067450621468183071039074212658399138068307106205136383734890388349929449605048262062608884703560945643423681829924451488137587833757381216756136212228922651083779771599515104441986214762893618971690780124879319831504468032382675924519237917512565938925794085702632229683205637228790253633889522186792466311291047193429206265673974345147352998966333983083774433823626802346317716240847028710458998669795741360886460119076662090697380524894521977234333782634019499001278933372171126445768378125330514761623909966718588607678373405065456378674750200199056865584616820869849993234557264538436682808699370922817710074552020623347853427432455468674444254099247409109871997916956843997628254018344900288865373745500818870924167232157842683422014552339860043052848468624756191781858857630780775056431146385930351079429648043848816523273574770770734295750345722868141854778259108653350341773948160025933671998751992600479970309622690804212550150708273676014042339616542302119620501413958208602981656948648613054029330145864640296242954186054069789341216606411976610848920129275235733730593946025147136312150139585413297898845361681896124355374091447498783950059021801588540555811726817481446813496444264173539355567978868412799424767022740785276353601323913817473886309986169527660656688364347241903245019763136988589607250846496810893835447838679220164147221627607560206648991309304220371576149428961117198276634295250431008572355501429599278567223232344154717081566787124885563877792168509975684313499241363591031953252110566784831743322383303941358281743032302558451858803828031523324039323444440972761011743717003689373944426768154765488502628063515750958592913724714645430253352766878435360638644383138824127424523377034242668800612472429878999860877813008067568154939394820789138662499607833895049980808648016404555706908571607596651261906906676264267481085986545307302005580904468171670315795777525921429387955825643027011062015989204686031935208737641522386350242052736369634595348501693996880014241691621137257905801665440256688997439102483056921615203397185872157030422704380503146171686144922411549924576983613914054589070222198457430389036722390113903449395015195929140985084392893351325478673299837213945904823175612350637699371831725555831305054626184960900310467753946887086295398421098752890944832535971292097273970062467401929365764439557200052728570369260554938334619482219504490455058729834669898410353364592550088803132390635997838278337921751414323918399713805320838879791679566403353125730802359539609207582622710093753394239871113902654937821139967656811757777186983173799086642381726328445224892515741839966735741274340620288019316249065467104339712762025747038321059446674325509099988319002469072281261868159639585579352470564471123632450890124390265983656308592027260403478460168036418182686364788205479693173632155256161495245539771564254643811711996678006297688157990166818609515820737319268834534953498921627012362207410225679401768470296540312671477619246668139231148809190734810196047415504663081528848950074256687139680096797910993656124352928773847100811965852268753369120769414798680376130443685267160380586008790499695682723088071043298617765874709474188430729803512372282618492952001817350994627546148654916045061951896134426465380716553053460442350749204704312652048351199179969940497144004668955094084372212449632531764080554902690850563989719440661617788136748775435660513571330284143204756385705185510247039857010579755866025305814480493504205502515840581380893603957842536208771039019662706394561198151679084542739139357249618483423007465978213987847538525560415245713697053563275670045269116063712884874453806974076612867495503141251549872799370227365220342865991778189286870212873040243086500903479888845932180011306964785393103725619951341880250851063165394195345777879462567068591947054813244356917980291882850936048483527971878688020684917430477921844793110758080789166317933428942821325034023992368258501992865429959604603878747669820034000430295464364536441969316706745554341160561349081437912671659530436033291419788745383851939303682312674703586831384772186517948095745793839023926596751484667403875497176650569859988453698896052573044146029829624810118302708818029186216198975963442673372602252398378725963354010315136811234097649524682897658616008244375270960127907328239043475734851169407654065853206856772038139614395809130915831716171988534906447425665163563063425996047140592167199490109428680210751388420993368358846302748695785996492349421931060772359672541866186349121932408208649413339443340384954884418723726932630280721453863985258389973202222122141144487375814115585359386609913643980751104163989731047360573680587339536497932640177957720466494033187740469357215040057233025488507649730366051955435259133988930057660826941577454214579367052038054414874770272608413361125297760461595579075290456879250975258294175054614221645820378620000123922768356987172104615396917672620984743060002173830209147800773012304464717714615450135365148421172830330654838187524730200404153564605168753144608388124217836587646060322209462214832538059974692265115583466922329592263007570878504128647822570300796580805941418555142518710414924696325104300669719218146273763663806549729869530447811633660081049889504257938292479558899438125218627553702065825439099074883717997167666988233197332695435680476718687746996856758307244353151251598543619628698835153520153030732921112149754078538116554507937439362988744415473149566182254329391175065317481778781642248034947109622785731134092303207442888217272472883646594992644066536371429140436267213460104898044680886354373478297245612933614297983395119552672843881615500449404164015611977133992111583761375637988276177438614164398282191916536525012925882902678283861663058446271090163639099185229930153554030951307899947522921281410395968046039256854684923032750190842298106654765075920091573170641509560436095281782688690653518439210247335680936620756231666260878614224088335435152061959416430028335143770065177719681096537879985945617559527798847175460135460494429600817773787798165811004741250327463199986864262697315007508975356447318992032493517279304139823594046212653867935300654384539682183134352292812687944517715690283688253721116545671920683028511378566734533150892564455558257684601053054527448170442623105781580746260241723267787820571739880108492907095410494411044462919384976063048815023747978140495101137130544899874899177854193947665552361337086771010479605823840685430872073251813820551652722660893785200389373031262581969637803255778906229223378967626974688717791715125281435927542277605576682437958229403966564900551291903903060417797124121364020613595757045322233312587650432837157986802629211319902709089472080277710105803509096881249884204894707217872855821450117345997472439514380158379168890888881832977507437144312075747882209922045527225602276278358441379395804019108215983039686789102844919349165854331991156337402515785336480610707506845776368760828507716061092446990466580191632855259243176332854510181251573538551190504589403801464208047952297982769229674709604665342302966540117477895879489817797680817677887585192539291430659547689637593811460305736405798080143809974315883574864203389239735122139091952978573701700422755248160528713088959133005143738307231302655592465889750636401211294214785007643400567365071578643862072719207433710230160283503177522948096973709778547827524511280078328111148779945543241535574608963539814035557218261540743194556540000877273876331392101139818737377032776515361083650665144185659761244523540455095995168874359605088660884343600122401167685442308673041981623847646797780423980550662319241573209114574296174199956943122321894223902447400582402447802275156924415308475570938285291782951901815182849420083746942793952710597681263055441054660225113763633835417764727642052503072909300939072396670843635143476761147882585867754985915238523738574317739699841798500846874254694688279204920975430626315931719015675308358019563776644138603346284542794989133331060346352381150663824109162927748803718543350302473773547196971992787561148584610599238662202972479888769134487834821752796254650713625419136341912806231121071868261637666336475473935653188421901917680043365011846284002374412583689444941473241305968836262931648269271297498991647601639819048472054055999037656845540882930322716875638363109893001314720774530381576666846009911452777961111406914119947815764740563832650652780185945700070650382073286373052474447261054272945704143990644556540155137674380859885186264649719932989064503625327871453395574794995877273677588294990378578968193185800679761115054593066117506677223784263734341770054814358612763567539638618649028878108482016069161645275192018410087322978892580393222940930905032987334056232151929684238474259773930928547703818937738863479071874089486756831608777060393115466884543827219811402490404880885075013236475669003260289768640427408037072685725014261318478495791346703970569111821732406428150750335267098110586658447194695753396679640516193964853486601465778512201436784101837525806734411932364368098754057432892410442687072287701533525451391210084881371944130366975852944817190573446814337997480365924635685453589504254496931924224285528352487185801176661749321332565751757697237240198269068577458910851435202399789748395882543981883210797429712260505291568894007478240093094977692115706623407204323416838680498507694036972770636285711647246959923404756472268682297561945036963267038417396952747664634187487649444846592376149372651585352905107093900237783325456900410753373453432006350271125604026753384378322607563384802522512903394067100394622654110411445848777702430867323410953102112527407480526138405911433736271389216210902582147506516359432363853207464724100371675207668565123896596930180866807146875763809700055508019684006584092867081785962638467898095782320448207427627158982993947971742405377150266226305650160111660696982031776023753006321724375136163752498856723356244871251454392197286519595347242157288564346870807739189486838548520716605003114736563762279898601740276536417232746377120208599579148416925131614637184180288100985296011260845091857809148672287798026190580967764266135971332626286553846006676896680793604457462320988426975802317511482040078357544933830669460155079986020638130016131922048498342592729500617346280311846495900311034029848103334168804363013749324905607705891539728189601976511831389310980744591506768200057419695706269872712639290310065019165239448203910981115270285434206243722325351998677222914441464447752103937319164979538988335253565942077464358069988394923125770185700444753379815039754885164809550716947407348818052449199799391324878273801236479274551248829305061182024731110748495358045587327062712301774524333708533595021872364795711668961456051955667517771473166341947784821712652847804639401953934197999663077567020973760510779962148924916464822255390329872275041691811091445853868012821844639814674521175955483732255069986185532800828965951967341387857298185426388034561627057700827704359290232924135990943137875966344653703038566938112269476176772597445763069481691680383795336009978191392827529404860738587433433527527109980278269276231254257749859746827518625016834257165885809811042856862965819143702932830800822227578289515967422044525260876252396455388417824038866206217232178217793240788335142145638617667085009778689864314961460517878621829325486233967581078307026837636828623901832071413699341108714088332625729683339670874663478907274620825639708838470150774139309775992981906155843128276973343518266821810801069205044775352703012789357893511724356223355085200592069952643939038698547586968942953968590893708602735860820875954646601042723982198046777983436627207137458898420928807879037677390053640824969921655210397388160355119436082057607911860481764097934369166589063452668257833912610685674309550166454259120140544646923448046077978058245589906764308158966283566626861441823529734731557001616291176377402140240014385420162388688912323815340011443107050371925550209579683868832597718391530375730426650244972048490908429092983903978853848263578849939943048062156699646011079893450159068589532662809297708891204254544836070308528034776416206479116784325677674239213223379231961023724961350215877991292732661425480335716956639543801622736544271831007767234670880984801597799321162026607008732740680774059577073067245866861899451121291243870664842028672006817171830005007935707430858093528360545761456498533526769088164775022134844594484700050003610348207355099237457439146784796905083641771633974347605556817280134735254794028595277982960838765897146210230325393181879633289444843751808311560021742215558384375498891376921660678229475622453312334220225074825630879687461789777534653309186525223294780061178728011760153036122433206319808397678303346271203134509827070812770427288100405721933349644497267047191200710344408750560671056266594736307423587030275340347458854213556457079735546155439385899689306707880230310032943321143401593470766888134632286953992447926079742146630900851209783287796845253243828284768369654512663036559189429368648480666868847113825105644310948784759254181992218491248324069191447600155722574444311230073159448746784731928766575603998987054791436258158994779897553541274265477097842545445480056061575486127295385792265900251817510507818388083123470883194560941994693183492257370825324506618174695123898721837391090213371968723715446500407043464963634249304727023080442305577221294559784065148489023847515524717144603467335991523321295121701008848485622496108001572591407121342386098601395980226910361913475144543287839622088835479020217488646217070775502662818124233454956027714359270510645677287724284739757766768735091996052026782258423867583142657580088232869694445428401778596934730772638604835811740976210851636807370145286808016608584489544808973156070468878284059129036655420269612172765725264188309400143981020786383555226465102026194778239734870746748995500282367932669755454361728942419445170689491599239665441994625113761374970815674190841810814187012208919275369651341703696122767533089536429186336205461783936384922507231862723052553517503022478385343362652630734376371466280482034432575169702613251439997644202778587060413586571819695991756024152998912280635436890759634693856950290303099500975973330182091012371252590712437535559343544060181048459543345477791574817410702573843765722433744266733379534037687404601115392347978752536397685200285320024901295555149968820300882985183768594314718136041967518177674444259699121607069909174598118132145364826141155309030321359754254395827879674481523953443331400831927597438240691037272865259156982107437126223431549391017952998095836913809399059170750392570521080560849231684376926484615681484127341978974254640201063795503971877887026696150333434911198414526940971076110811357668048695957647660110723367565645548748425086620272887911846745425954473402921268643933658337303538216043836469453827870686465268825797022572400725715599859360092762611368531371471557471926880009459606329681862311813384431879568212861208094934127761842751424442548558733872856725447060558324265128890844130183470213728637996228730049895365408642822735008824178922198457056481971792126020839269949698798767055292250665678342064441391364095908351849794077936072234431610356569566326594796568017496772853662873214881906467452055232648972736703141691953808045169106862233696950681563481935242703192303198258571946006721680680254591059331342031761632647794362111053655349466996160200563585284140323793188363185581794314661958156700754024764978790587567762377594593986563415924477147770678267120993230528113625695374540372798982251631776483540155840272789104704365849361386490855987461689334545591743435488425871781151962285961579284011103091142310936776053635650364261878939557762378739703972671895453500888859905484471114747866515920420329882105036777484082693672993035616188878688852013187713914140593449424697214402455178454434989938922161054551034909203525655070371306081995033405761703953588367368116216459073159267200882684118532427911640797569799467323800123767111999334776274296695741303714716725692874703969781256464203085770114662183644589921309551929342179384528411365241567270968135490986053964098485482547473133779807613195176380590601973710160998242331996232853820081553781784426751237542330284779287011692216208014692984349046943901512435636047024049177375656027331522448140652221494856027482065671044676517415560370897303861760704486109837832780282986173540808342910866233427581320296927312726323704186948576360526049816716686220665309659394994290289844261056129368348994841145381569896076987187685234160648651217887270462557552356178306154230930573040424414340412776995804876544344044180323934343031494701389792006636023241303352623661448716025672699847668341469936010036333854294361222837088475049136183062629827711753609029512862172249194192929998949690307839651369660001872005662019656444730793112336339586044174979088564077149182210818843791604898309253192649062445150672144232086127361526639398053707306195910205684881662927949840374102102767695891047845582459389439068034271647790647159729710333771146632184533933765883314903108539140656507986085666791907511012818403047586905235674800685375081702869774614739560416176841032375622684433605656847311341016399260153151107525161595326336980704887517196115089410156992116331757359558783610726905483366337015774898056775051859771710552537622447081023004718319072433976124811573421295220080947222077926287194651169873889755582700562362191528189093432428145028928358691474318495936775190082821350403950865605455749871735521044865279277241607622067279022788162820510130143196643657738337816864819280342068189221411260051250263983285422973536178436335264198504897471762331414123877605073142126441902108527855816962967619272080496313442495503032025650264367477904252068353100110479515279473331770022986011400052881993428646360564964578735844384304836388220675835257209066718523818708351155954798225608338941450975951814698617812289242131479572613140983759837576392726544030303747017211660865708778668420269368145500548667563093688191021634704085969088579621611080427740908159825480537453015314197240283022868420670727746612958708249662210884614217289881541394359024110839483842770670916199418128586670779477380124815332426594812103540512527803757647343786204696961262784770655289112430771227222863943943722165940044579482965827123247222256577780750235719881369468928599935369886261609705987123409721909158178729381754885973479433208862262059627746078885077427310899767710345098163302542397593732641525209756999101633506764254904235065584828545276064192339841526209863265403357066977818863472165049392242307650084027648202762744729988708275635621447827927300128215354889609411830442056501877649623748185951033508218558480294468726463779259556686217611865655005828258229927738197121984189990587511138960827754614469057117054015783023710289526317334383285345624765183818351242917755316287087324951864436910807839056399375416178582747447258201834554140665497368355457788589049026100980249014376890187003538442514603282670817683042196755195458418845852569306130780360245739917283549324010695876617147155742534185563979506755246754766483215634795233796151219629212758904412984238405993354032424373943306521080920423538007950333931627106466015624179318950978829233383890957345123458636855197287530095723657059256370134687586664560278076493474073176613878353577809450444517058959831122934543937628216402112542714071671404414185876152742545411265389506002729849834987678751642443138352439875561082269612479844978411133127371599851281943087440395354475987396621316600880009739294193215394441622855095955485232498453514013480432589051317560257012977177586999586091239866541530227822307595742819694203647870083896520797341275176910329797384384383198937477359514305305124627062658830718127772876543907917953624607701912630096868323891731730758580406583686322838358525984823917888315671563224695297405304393725358550935122483682163843881921735702054667109728048066284731562286580630760981085255908172566072528029063971975450753532726021641954635112830725908609825623994623218976534214062423979964231875053107032788213562864389854644321424569865674603073446481821362382378175848037016479298509143090413627202305426635783066823989795206068859973466991176540380958006926091309036917429512497200833093071138423122068201734566507532262691569530795843230404087250096810006543664340188092823401871755815617891259769979724221075850922796107090212067660242883226465941253884742044395636700548264236622877857001181187781155338412191660216733213392347843012955712882540110519808304934779629789230195899665495526430458149401718175844251446011843872875301926823334016849828507372317797648742185730102805381483876747532410181667452785768800417701157876083883709863733657272838062822804703662804025351940057819786107284355982125838340330562815367269618323629803491448804627021202123964069174440912347589521798951418612963307333917121183758133795604059334328673455858875519447261657580473006735399660585059470394028613669576981664533704546358903109436893700332160135953911456051154923061631205702303037365671763891268482061644393511965848716558697019885419241175579713609843352828778513691230338601323741197249990661978603180751033715911960471240622592910743348564676703148852106342661080197970780600427863061141191921681196798426858411492315194304537958213390669963965755229275134966766426211802335553535802058361854889031386546626005236574271879254070343695249509602638835267903925642524468833960655328892096016355005834824053751073009294748658537568512827807497703790844316070822669481644683798316986669854447343875453355346397971489832381039933095388613262608139095594979040264927981824471958129051876620170737974472347701741400834240923524507668577694825957827270324879337197895822545817323768866876713615643967567616267898903501508388271856399882707331492266679501513783370593009821821553001383284684956827966988085203097706672882286280668130665951639456297900826306053251481767616688882187691778706596362851837405292203301420345204980754965196719581804757090735205211498702920639347405748342321419556168474861928981292894702564392725524314271249714148882525209501919460577946600066365825151619130848100813862538114237516769853922347975117537428241824816963114907395479758713351902744787424054994258330015573347265139919155141827441800419503581354944286676527920420836268124363311402462260056970158146336765840828815114775766806956658923066871472452923293841932558586732569380395384649060039033788554827201172770459634705728851691996215364144350039417517527427059503224054323246707685336439637886957707733673028744109317647944486951897724431807886592312807703132247086418986609609080241221108190238641759382982769640145183311818750134144241505602539540635394156994994276506490602837141664411288585037064823064774788147934188871517855175708921818770456897112606432721464803643331747585093164966608351363774164092758219259348122576723605419868474371821335814712483213666942568016979075236456097801046921001693588902524921202432045027139025194789004215638888884915319103014075705254000418665577177731565597772678478848018168952520773226069742771798602423934264318605783760877491182577912876661828837060097449244230577992049507636845328332715664606967061463591431684991688346601930405435353805435884062918354192558212521439847794990442183721693652847282627717356728625159057514039582618239355358096179626220444782398961176162165979348834864198025339754433888583668977803919279395666581329724728509618625299785237700525542476989791257978956726449780186877220012829595751518953291159482316120578210361688060914973872653276675511098358803829092054378478131190951198274222007920133172672091725128294746158037146370471878932716458644879377194349361804062548201946480742621844554213978116030750139777215658543495425632411391059356021913690654741379728820044370982986468948639719525074316614112737452046553360235374941374201378427071699508045263928164057538533792095829293856358714574692311012385345152405487488051595765966672365122910201001224838947786229078927733648902208301068408556422821901092724256045961519899639960281674151753151439191313903077579611200403288327065513780225915269896242223252247101384978088111472042946592956912027065493874127692538801153530198408025600030365790279277248275870989698400944670176362205946307713840149758673933139045729392143645574911348361837022361678388243664504838416762211763337211650615184385553868329170501029890658760890099494606248335411547533815356414782198049266217136874369096257264530132847953335880301109585017341401492432627613884134035714842435537154633994252331576370727914254892944891474855500114708313089273564983022295342574357233542756737868605021499538902251158146336858030081083003534998555559584304848398840690967318281842177401341023256958814758238315120882743410728176121144904159218556923221819098987794163231668816041214300300028399327829931271280415270019248168002988213562495703849567697456672479564534466322708752405261624481672532436263739059762689364483416579254528572502130630055925515930042120330238560540381350098568162758082363837822626881840643402633297773059773903324724127041674203746429863818953857207618110335268304442451862311515249375340925954538323841458423939420793826330929681109850551953573301270352036088226790469247400323871716959970273384387247798626520366894481635864449159776532749436226960046871399747172515847571711467957380419195794572086123679876677349657898134617662593161362931208384844840108762243021470595686921228036783892752166575081275659052813251645132130297488531051835924739598205555619751075679790318507682737894276029250884680549481776658111792317880198756992527069579213786369840499036771205065606693559940116792129630812472210603565673846516871753436963340074892775315350497678395594920864276835354218766690995023379728533237074291236652683084490559064253247264890296118111040660489294301038209961471018156686578869844355501388170972191039583950552424591967908498504871242815199716090163254581387569187018540203865797275241743679477572184327323030743403192030104006167393544287048718426558698036511211520791693803510488608479058427866553560967865158058859051408737647981124824422539230400802641580958157909201699315866436038480584430453377929308476148707242563572372012337967686305264876806072574023232010198142050545285452642580003050199274111818524287137399851187476300746276629091984467523752645162518120734230968429897399477180142938841479124143840702828126749251317685655355895292068869298781921722882904237622592283215010278150631839346979527085152001292177513717628562703809015379595614256933498679156289528826844728911947469802305446266105844674069315266670507434264322357366296454095414462920948959227006736003396754204928425462013639880861828367217489868438110758530946475331404704731999594010544221672996838828645002872826915794194334062911407657928480510196629571308688128024109001059412653529609631512667950599542454375345424430819370417343789299441546344504458696037200365144445212571348278951587063185388082292056938983632506696768014052148884340859660110500503663980022964657330223395019983747235532647643179165631989008210623990356669923893235009649185659148303713421525057009347126532104378830154169252115280002417251786639474686913022848984477117003848131334169343197506413900788533433835576545602038492582258469568063243865905091406958267451597912243523631564557995995814728628873892774581158775869057425671388866621099352552404750845166836726830535702203333644697480109150847593971709603958164899782733218136748596259230438960367434902512009077002347215093264613097008074032726379378011606225650999998297465744933087013323395521346834818189987805231504940847016182057790549714125898912591650835096415320971152700480821263091268109499561195960748765507713488790629956639386865908656525906792321209983396934188526876371080581121279493435207680350321823048542872859331519845625508553135031528847996656066823915137137303297617676060536013343563953624812335565411216107131601243515757336319062923589294183900700760174103700732581060872633241759689309022328443328039859001496922006475395650397330767821485983124366834590772679384296512582095886535513723237482650453783324605561643407128956671299675312552948345844537036055199445382487751642014823685215424333669409226598653808630261342789484186836639200804513967924870573764450767810911676848747540260907300342399333992116770350084147281036243416216602723726422210656034223188870992284794439591534861343348888493425719900844204068365411392876529200539811412826945488752807455955174507422299014437650274059489732548239737118931895819147171137026646332619522611962222841947795033328074204052053164741325599247197556048618871813048349837342153206580858709815807457143560935713004865718745161523354323985835982041189544745872781834454070145756016168933721722110048369393028946681315454340690289260817074935441237200456316274641433653083076944494273361605556441251246807687731378857209897908299353720528812142144706461341525637931444082304042475546144347057666455413829295155574053604590437594211581881250254234729160826068308200700060565330704452609570358398848718425960629694710715697347988613872816326999869559655672374020742338160785252523109391775018860500579521337134481211690059331134127554936063834185683705225912247443935174619147679611334132022405204204651171015579924115705259194593912180853254586842396864778727305182859725069470623505595955815020260179850639150212241427589561014077088791942520638359455972776502119670598434036372715923701133433562347999062851685496615673482733615478428750861901264862210596208185874622516849711782297227404977665933384711353060749058549274176871401651588187315774585997816888047549113443895703314979767247692005420187687115948875139322723069872596834822824654468951591131254983819323582999703302957524151480409208107325323343110181942235033202098502245010004468853841776490235820066451864617356530202088157473950622000736106758935754147042727372620600675079054571832336287882819472789196568309797267972048387766308172130296813911948654903131699841572559702678863588290338166020443251990220384173983435979856053927010983594561889655284340039868703339819119258246944168507946453199077302690429960480656011423151208380249475242661559995408470913299399333348183443803481515563635022371559463117975258024535208753852416266632302998860148832677942738903228077426561263953351893096458848914639981400641604427832386998018439892108304749150772516958907638014992083257509849137811073832797347385319137126635244891990394263187851541572307302194836572974415620505447465469163752111364797740029226063330765507065769092483125322353900837493781300898100410756576158930130393350449981424536558148846416671795012038622580458099228539355623073188703908072193526730837373324759876659368975425537716172895771000941677915778319589306040559378634138278546878245955567860415517405067774551686896308363958609728940508610322111711372930521071600511797219413583793798094746174275024446548096965010642555247680690264544803799507774885517913327592776311494509489886489343034010723933686099439806319781214832244382528017378405579524617275778319663558105511950369611209555295778769898438658922219958598405062515436932799826980887540018981160039043501145738733873350988712053439986515143348623353733380454664261988397670462096516903470484520259742926626757723829266116876543398087192900181240899911133599131375696102965013750177722432929237429924928855086536481408964119097449301046160250522045950285776417335497249904909238665201567264771385946919752600676604853838931306436496783093641360613807191945774889005499461062964610653530559956714645899375889314388548812952239582097480379685963660935176564271815202074617447823747582967778599213091105637812858754316281284799695410739172321026221880668589160201677698727876043734615756299282395476858789649873065951272885935986180361294853637313170438276685995818715277404966313023270861680009079400725017933137259747200312084397522413356070080052792825608064837399052268207209351999794454932324191279990680237037970335316616437408847715399271172504508960297804618097368200938294098152982414684950875147286413007924087975347636531822291098995654633322135877009954190318626923429017361113709537392529859383338701280649634546558015140854751826810942361660342169849999543782632623244259221540781423165866961985029827270573223727591306668415418029984052807808920954390836609605221887653605577860158847172040551143034562705252899506424671853828517156814601376890330719379405878456226396599542985915159507343306053990427769251392970081676961077283898958077013593420186385251630090797070229128916489661964738257698741850749409860662320629529756105850652678480127379231192175985003291194774485398330992779533082624948906444374593246138920746192124332290195740116811329083475154692705070110928420340038645372130886143392733689226776938072918749442266890683036048824786484212994732328371037782721197369147255262960664348232395057692307871138669243026708307476474764978013980086687562417336969535250593613897092084523729687104621941271907169785572381374892562752652590308664894551756092928231854536163221207673272823609967418586557822200627517460592814851502606072022517777758391073217959860176030082200003951388256499350109906628356945338497034468955978787844627813901940097892825688951911545368081171049163560193926747480974137133396317143231843835137034162816188663344467564498468126752944738787049148620328450080892394114150781488906699648509467285064219445496082370099243432221009504799756291566943826835885350114248183489900711660977889264235092328963451238934828173699226014120077150570670013121618179898031198916538943087801777891200084442356950310188299026631662233028062992169394794799491669156792462772046562484451019764472485526125680900195652853742845878750390442083248641161718928496554242725199768389992271479301667641216423411364642775372647735604463984164840247406998254540836821419931720442764890283802902307270705011808493952336872248078340096414447053703502898863861978669709708489279470888883439409414397810499178462724724827869825270688512740162476468186678499479671470114883549639749189982883504078431635640262123398023511225394356913096464484144727889797470638740721253206151609261096940995576706431139225364650915464918758880729369521965769705949875421346379459558801819019783580275583485630493706820026886920755742696410060797899834290824178409746427281347589680178354717528462960054019002187506250587608770022787766352982358647519635295747089056143106421911036024362150723156368609786308142918519708675347445504665549002726488233952577365813436720122419404772367193904767112533704327225699391913043467321304577738033909286855070454311210250479342394718561742443963828609057914430983512062812979593685673027816896199610535034634226287102442913058383258412415766102620893332303065426073387411620401536820702416160893500762521005102946260525290107867176896567050574198820578052328666927157544171911292046469337092971751750707732795834328116971118992709707557443577072388271276642405425180173634387537589134345611307034448923703317565094772427703228522147295621948778586546995441824563597153257605116455559313675986167719846770109055298428749466616021261023973948060583636183320124239624256784730720348974026478681719121976636260658259800647439109864125410970605049521424338623336715638603590779321324443858562783868449560123814507287256289552963459408038755757650411080497754157419658823915146621533518441126309072538604058250259704335418133302624411930066856337168457188967801190580609621847780207110155759377312479316253415617165298582905317057158276961423321318886889251136922542933667437419684016400295717180027266586383787544077063455659485882971773070754418062756967369634503429231788607838008403687470214539140854342226508731986028476923464113973946535442294881801546914726466783147104516776724269887018729721805757368468442389634665394780558305603037942625999606822067511562499463834964887065322275312105395381621863703525687190545029433638319237697920252591116274783772393937310751916862185968681590411218162588991601243207936654462767297940224508142171555735407558596077981242239315098800551519656245547974047287172929943070298486583346138191790563625747730855191283108786448747898979698488055500409222335448128047430985888881023113151284009302913268862250530088373260913325641450599562855936740228796401703008664207238046210732582866427388681718903258508977530921216179635908442744664550361009740181564067349497025983310304907416426000052543648843910824037277907323650849047529840708656977625135022139424227884630869452593801395926418696861629125079158695060038971383591508371128482280820954850330335442803604370025570633832600211850158267011593765489307455097517883034518862164974857972781188325391967622528075377734281025260259995369566765606676593540188592587079185450312370266853342252711791556934200684518298382900259183443080351895363967236741571222859922451618262207332887393734135154189262400087610464321998296124017485355669549294075618745534137666548667492026132204821744310772211555932475624385656744550492402947282510077890464883095446641289781129722352518464860618197030001672879297457298962099021419598003446191262729133294937745616294202630936369567838342735754539177708183946673703250921243732515607197525462193921091041518433301438094957586176061862393648962302012673426036932795678375079172208277834903083008225049532113466135498816280156941915818153674859063094297577147766392461452164806017392462024131876577737560903696558006686389432200961213929132926963657919495132272026323238946103247823092323136972676816734751839020414117184726182175278285184669858162338586126654778076404249802454627244037068282281534796106815987246537906255535093210650456728597640501865065535914005672165573002612806729155339181871169595680488314591060498099430194075141646489566999201140499750280439151167392936166911361656273506594238971307662423219774301244737192024607620478410763204974277927566573832162579940905886237812488243719227510185683739788726384254382162192390962548096651950499795699769007894859974632894271734127120250416379003926487630102591556950338640399049323079536531169796739386796933968417156491510955481715438912024051707497527256920989832466708416846174228602888748279153747130649852414358784595767871632310575804498340774803943333236749187965461068574215417875974097188766278319009808961070383284454386800766399318557453333502671928222442245979463660268177647318273442611804887391835382339520746769572130597663280740694746608368913651408768613782053152247170457491812584974010113589051762076935526055251775969278939163278294299403862916008024227919589111494553234907860412236532033964586865703080169986036973528163655458778028929447850105525642568187727360151826061855031583019761917670835383912294392142484479367152261806382785058920653083964441716391374449139252000374714650947688477876115477003323704712887057343720243574333066841812282865436880365282471392166507842627351854155800551244927318764130828422589508582668318289183669923325281135552496972965980749088320953692431534045324787153950020744564738955339331085175034522737289576702354968250553328698215379773801723500769603148157784263054392175677241846432891944156920942165025065713471177540596487746162349932015479398566265249863931398035125199856189339620590219673109107673642012112850646014661869534697711881752112703974888136171275787969473630858900202563715570653483213974191000270970833362956119441279905740470938992500092128170223981492052443267838316949115923594053199182155989341916770643213114808910458605784821207395105609561574216873987477953286931540699882395816621435389347353177578421452739291845299854335253922162180847157726119848549658749180737174137206524811673380687842112182287301380665162792022034016807018807133540323670613588807009737284219110802681456116172062103482826752244003380549835173980336494691400595795973459430067147537624473634175993627704034522508814129576023905753704145324791121326523100990460220161570759856924448009087749250256656357658649879696944452217811278240599308940451910247712582778993634478147236004105017607723686583224257811716284311066616954607409172787275818411140535092289197121330637272454983063096609220170941806838980392697978691168143287540960521757004792215249448734853782516985327080934611561263215682587927351667072781114951831658128327491213005101610660903678420906156885172050052586151785537945543687899550514442387701329243906158179993026269573582681688127508176101417366143152284748486264257174703972786195535585850862799970704420573896820183466103212371682305140358947059674769039830196764176256365138217283407114600019206977715569869871711103913492079166734237924903467320265194237458514148573499100438466946519287958118249579178785759153405032145138845280321352432372799756395763130067380091657439880149600738910559320387789262487149445740623358542718385607881798551075346331864524051177138406411053096036322790146590835629449708366939372796987953315404766396288918234114485936248087772662923585319786787647437757379910472239894719945261638486430767656491890041597926994819942422721382220312112306554963574549149754232766897032905158707103300005352381825019393754507500475704370546883633580338626008257919202914379352796398089836427137601731407442948162391050833848456464356344652920679415038839041889281429417226105575289962351219520913017223694385063561030931736711876674982053555306538288763237263651254383369664245127180788760287466151529371933904735668952011760788493362030357964569549920569800559374261220027362134389895920218061629833725912920202474541751993722698500701011450284520079347451781487651871210093017539693919706151001202691204406517192272143932214895725598434845399931767360047535734683529405705525209955374589295086394990913904271512812344229919725313577062312905046200271961149855702624413394510240936303224426774302565629712135345542006213441484158063280445165623164593979803319242182866914324218353800435096207428031248047694672318851286700988151853310148142077911511066360902827253065860543579310142764111050298993729144595289052560345205685089929746514026144957223235213907041122018806801292674921187185434239596529252691156085076282081074652540408955031554219825971641699347602122019730403991552370334348802391206059210266468725864316639130606274214979840799120620249885298422841766918859226739365546428911892866749323456928782031413048998049831664837745892902501544418504353701280138483982313223091704284841616998422175202830941638270244201386618372587256287369822623268506603776191940917512539097070735462892650182818704784866902691330470163055947555610018042634331875387412970965605738066104615146384230323065126865381931287773344277524351662546451363994049756614128382463104742129707250076330220615158006038814616185517439827618668599678785023155545354714907421841550456647232085678987632745156627280937678593237157975745347318825888684004098916718189299975816001030092462553347929288274228974646151677245041512861655897259985434328176071888814044250442125013046938898236433956419933467721058754503418213488379275698408046083205380436123777873608594443161252517929992772876347095155962021157453056446409264443776456194906272809395999673036316294084833055057406776180661075919539292603507990830601102064548459184443355752483623276741627196853064500329005613068502193432505101961595107025615499039136659619051056660634705820514405876392076634695223216856908112588056021971982237763863291990639646362556631054924505857541644081002530378024988874767820582841977032595755139276940336338370121699583913587994707457929534342635912477287368230739684748390439206479398874567123708160446700347218738220265697882683861678576846502004326264565497501588427420902734386997406415342688334176915186294025164968998245634646306622476160402589455567692349374565879083297508793242472230205675122767887958875554236780354511801507480380663431512141434982701039941255297633299261513901089188027264600551903681233338720586859665518399002035013245389925421863275315597769007568109232738072623511311032315642145858008795191145581880950432457404955929051383511627033698162460904731887499431702746120507417052761734549956984713046402178318838181583637600409894019280043002540580204571559314140300308294422344511336917070337509075623699618162382842063805798114340316181872165996088813959728986259802846099369927704265385229740658540350083743598433281224474276160746627512550636049751012590916555967604343470298786909807749748557505466363115141394887007216668598807557866921029480319277075340411098016506091413982563357867748821177081998683958297268159362218386619766922639292479968388600199066417099723397823576832766969015034245027778788675948602892556742310681902885987331305402481339570228128639259994292912766934683112202777950317064250673705768506472098684183220219970312084250972621590866519367892439010377319497201319563624042393296456182251542917103898967063918915561751208338128677343363656430791436117521235970734573694795360121100499069610420708961169689001663492325995864788974608284006148425830417149763856267637789921830646397051809298791019887158419207734281215702576823891149043009934176330930583424743319270457009250316314374950683974001892796926984401486621439355385661072635084444625014675699672001064028384769044371943953381976664809334517535732914769771386777333813285345943813082780773204307601366165011429492341500326637958586320771857581943825797344338127795911547524283933630137441357883204392463571613797159123235716385964631469086611385032698293898369600841407692582486498984970567926466885482555919310757005282110428950743082326115576561043140358851021737083948495976311430167523388116593393420324957803084704347187097601810639089462100069408281092169424244547548603165486867834981549550047672231567943731871676681468583220148690354010271117065903526913916232461774288813523775249208666813962231286592520472419776369582453956147679294025065383958568237696524249276881661025993259649807849480137469326191499583135898317528703404271701913328159712334873022304989830361399188047489332859203753568350040484778574097477346256754799658507866865289151632093953133053606156797181388823258230026492828866228454020808744273104094094255249823363015009278217189638643363414150563492376779570208208516836578187861382461291652090469333781496928009042646998618647491768126254490087765742879870374781133274598763716850344408350230862580209146689062926722613039342698852595191452328357779029462311425105562441458250365919344069500985627097560815875056212737350642892532370795941067119394545781481030844709401919140582341200534573454698966389244429897068471638829263623327953658485642079578634788249578449196673947381953840943298568252714214658025437998263820438816395601284301911303392748604373641850147214663610187013399429923194303579015235332393776828306528713675813031376390400792263694192869257173729946619544274398289605853955462493533577398935804713943232675274480737983956578239347661310646488271566686401906430797409344111748061811341505074004848911663945097093671102749446456086430961191458706567013922352708711077556610417402346630323416271501453368780988346755729896476932599084710045088231606210491557246627605883627052409201502967456761511637760280174135149776552423432507591308712175114744773401188301441261108461055510133149369304606287354960601342397533829581907007249762628218029405751360133863975670624519224627324257298258624948337035988692080527092171321869609428842903126861010940753869296170180539098339350203535559992441266329682240762344521599641442959245298664116380297047869107207113754491675590383596189440968682142212154396129935419221717175067380952574206910042096100835909334278557373303375995913578343694817856447282127985499354462354391289075174745940220917461816063533529282134711669789156981607924083092130296895338640321061234360452191184151729577334530220042506020852153964288746880500249232764038453313561295505901405930611595753501352873850354463477008773736039457195532734588447495268773638301599621841505761449542612525426905871325726523355459128627081136637084450829587765174160072314274685377766045841878240278638527727823010566241608448335470989998209946881476929145903400344699385875289846219684525669166307063461405387243432597546776146464120267148723734533469638343052736904151837244533065407783453574899195961981742191794536482918197766424444296617175480595081769313364042182007835778171996289133375733049275382965287369723492374556857902950266228553179244611253193765144096077362781063456985571187121996839426917173565388394391957162867978749821120283112038108927975760736778995760060595175443611891281639465986567974388607304877732337952593726066801076809708881643783729558290161730023761838289393812661258400592437553453520537706483499406297489721038305150963832563712474357383131938369073490742701605747069936572093707215297497902505416116384577455378802977262676298200337358468130121160330812964328694817130403513237036052915339086831432168574773339547283644736690092713374371071581159169520236995264201263404751520529516883069513752542752850357638350918423963001090335012742527174234276037314427074517526914056308685315713827064517863553468642295511995227393121693622019810425940419845487119760529525494835940619189418988287438574662796383403298777247725876198398881201468606635711270385253502991888138566108198189045857311161161199522311817131306316415521411376343555254533990779077463017946805406422754084034279362981956010910321208501669364001274395606547908216997239470389537174582202360422451784183919747941666507314763326196728349070505821193952625732375682610654941751917897783868646304024020174311097423800743895174167947110458765648987509649636979721781657698427787819747444097822043719857249175615289917294330580362629292308741010024741814048034949412138358134996074293778648345650861411465868519567111902070374869265775087113364865108831068934809597062333692902987420026603500838243225909144884249045852806831154486664741534157058592892127404990309804882398345854739272187468508684915263557062091495793764059140954504884309824793342981855180675923225106159181484620711331038154262961108973377264618838547999035156604317248308815048196532439611285966973133565177037326143466192416833824764162233442010818242179290593364952707532901424315078011923461313530068496717871099042211608919358366344453293376663814345361238789260503567632457088265951653455286352752191791045815864922938412772297889700985236821922769865076470315298917461434188284362252188531647786151607520699661750855772320556100557451225062496153961497518266852742963785223876523332796006216024453068508234128299313664297735602155335232268233234464807043181922845220270278483042120000606969516098758391319281640037385766665061951814593573527566507056365541223639370185108406438775672529761364608672971784899875099130974850159111551000367993270385504043479286882740008911071039085154472710677977447428115338670080519888486216660554183736264091938242938896106622975507443200126323939459150066474623652393442960438061974288711280576615790672094660865619781964394687244657681758553796526217944303350413220064587495826779459125839654369383338790052658457416396223976811178356500669514480464387713145086131616545329296553018980199841935225541927448332318498121217388335097421503447105196572398808523313078603339453068867116659227232573455000427276026288089523120321445758845399048779113208695264296689766424191367598605307848269468167156460333866600378972671742836485333207007516585283895396268565494253946605831161043181869322218081058150414755734722776065359601892298367160529723379512039205156151411562158539260777139597646874711284123871807790950112047547828098256827841776799809274641996745560861977668099940741634827823846008254576102498656751901032108474784054678872728797226928667723684517707951711240323145574760651662299135153209728169967527448538177437332557438254632311982995473615184317081813354941835756040710373248632285652421402149657341546715329354736762643916925927096521546588760232155756456047548930780630803275354510736517104709147493915588880664190462854085168551820153577492514881764171657497045505489752845859008595577625753068017134944628686363472960676044726648841142457541635909940048502041322805883932076077126178151817229208599522905903957692510036901839178288659531699061681846741300003299083980977263526123510638321364052203195915403439701194544620091698542561043787803503357276331939150598690568000525293700915590692125443950775857617576158166835533513041167139438819410454896614203741522774169036196182920191256202562471233145125890230726292799490108584506348509815785301532385429062780326911137512742273125923850324347577443947029196404232003578345149952503949713720675369572793654799111736291489941325926071011091631605825568706995754755960896887109329044775830402448095053839099332537903731900579913732285515971592597903886293287435815517475068122578954945289823673384063514410731807737417521932360747933973878249570157466971108159155274977112396513941879322706599668774107173864448449173437658109409971116763181141403118084330833899667746583423176319523751622678823645138926482210218116343889890232195515677349134262461954692445012079240906714319103825218959975279837672323370990044876618573848937538802119610752281770710439673612605635130320411253263250115432938338509368887343948282725111566703056273261531366804073454963502935526592061804982420759032447916312327417901028730539270602771206379173361853500658135090053295613093502577499488456593659676053179570187902721144466204288605437700520599386301478502554714900649386686254207942820161385212347413547076901265791446810834396724086794490058562305694151602009551866285025909202286245367408159940924756289100791793725123223370085651252983404806058976628031301011262703593493110854418446056110048974063818475246064428965078396583160236891248098023642489173776504356148693577652813099115520385583697716325365420661469697280305670987652132006260905697548509870524026233925210565246301659907611359549676869610467640336792084267022066007862142410239123449498184331127622949208322442448131019978166024125885702814557804666991361851192269091897574322116015209325885981897904216428832924428888705883182058244779744331398628406384605151641538377142761144061806204945352578158390879673043331957844748519681014121583128809962696645658557798276758304248217385814953015940128377156138496706959382717496148703526062304245216635763437650891165097883039371383199177499359581684342861959108851627514152951474182482801382285832208055216517917401775767678621077702118670800861613481895132933806044042447561042307712311076275980079470214365614953570268837397460799694990057601346714133975483937838782555907782573488920505891431642113275251842453855512009764065309001892996970988720896911109905644188030675585743071761164728012772246303528870350474811957450493837935962871393399835201626337815643899743519612039160318879631216301933195575326162825575391483556989440837941757607819214404031733756119087141085120066553866281177738424671080549353394855856484746896691843333775364067449656690991988437271783813630921763223671110379562455227160351005134051509048380257023554463004519504295720336049668648857247793406421815108748830846539395254029563230074989206792023721968350076231637239643417385205689367963342526721516361930465177448552499938130350560437786133194707616551964846877365987850622502300135071286519055117364300556096683757141013440385586278230366959466853606345061267242564952963924075768245358245315446400460429229963158397514054117166094331441762394184745762035025559614481437369172622711018582402351224783096782492608616248247827024715294462999552885595636210639084017509971137943098339475548714173877014246530320526706456431202841646978768853142878248676839916269432363171447465933206487010663567049378768678517424710762187093835252225782245214583700023997108398036875248348006362104571068763089501943947323349021914589298375695155974987664816877650582846873847051312979445166397696741733567287763391751226009483239814213838679395890955594337126551021203239311496544254529979186371438897388920174832617867146310627297346856688076361504557502470933719107195293736002734631404139924271397997075841830203510851349094253343112181149711079744582207473054638670596757443373137168201455084703828234354291053455422718091620048571898957952103645355494050765743168014941424652844898213083434730082377315385640647309012493085569358065372903226383025227533203447140158695107527706016149745659519750014548859339204961483124551120791809159232290394172881036170501115201590406078211036550335550853661234017205721700693997480690509902759844891932557517406940201956776776248758093643202196915440597244281923776001178486429401526652614730423851495729359151597443479885687787696444092519734832127773078814521121415598761689375604489516317926831890154948989066873117853016135829746208598441394718923262976476333122357806558700970372492122683362375798669827904683829986487516460711970038881941561058433637124602428514893946278492719343716418501309430931808474250987627114482544610102891462598042087669574890890374085258295904413146828448139771183302554190160747456140865378952837593305318478496763370724123897792038386161182313131198817775050980620079408465176657549978649654632472855082564017456279418463482892038394240903969919189925074941121042933724510349948125393591081537145962080896232664575203601587018515282079593109431949568545414652547942295905475024784258411122349806283885926744216031912405635515240128258199605410894015141754180187547828152557711492123492850875025912370493919804296600266578414781493513304364126462266762550041367974467033502090016045922869434727300624474090704263571785708309008865465473338159368752601699459917974743160354592142560618427350105570525498842281838264445361545867552486028269082792832980152961168165667315810761410400596969709412232068215630765904677608875380582232799116107801125191905796632853228982327039243360193568498445036832601712344647860116581371589531892747730230702670030077412284920595320270824115737804506274937178363894432466494831579973463384154942945474974753058586855980996821552151806768628518947511990075000388448964625883560853197319801367935804110789535029637855116127144822992067591712071894589592550066691214410095960736674358651213781472798813774044275852067097382005815800936758545347470470308549313492581300465376994880664788108871874183984321679958173545680221556112012889592766271381106082493660614394671325376600763999700923701518695781568444989809849595891512859306166154731887761188996971467317814875215395174248256725692788366473262957596899641479025014238058591952021787240531285761136454850730330497682357304138513941230419532149503216926345700286463139001890139860310223975346888595135573056305061840053302253408877616013083660754175469582865754886409335046018599753155479321890054421800775600368739374997971422677025847870682828076305531566121915738708609650574826864737949338064667251336817662500956470394385599034774636196412675390105394609649740417152486975533165919133648577045294752197114803670972182982662288197041871518899824470201183119054069389600581002178409208207131394475973285338115344805893487532934636556965225135928446997815103603905164195180512402259515076259326090939022149876652485858723099198082481103383605572233929833187178167150781044853125418009102879557005692096232920143408408025677330669587387213521989877378587892879118644332356302938716408892088203255634980568570106778560139605394786639770349500339300887849664191711114945394808522306967380564279990175319093976306206919607625849276828824688288746048189876381290102558087970213621149257154284017716824362327624977330646040169247630076690233515051491569157674521399613264852256875739222543528094408810311250937512960235512865759405720141841764019533927428201160985831158513254622693350991969951866205792298960216312773829024552411739761326431621047578827970341348822338033412764794834143293565105968901564438001724134373069159045749188180878718803486701049800693998659160312035928651183070754476419073016086153853092214572696280080061835268844982073100952339265192197616523697994448525189661304712058301546991336076715626697259795125567449660963366244524513568234035216096415038906497915084806082434242865579441702390000200117630017833663063253556316139972131905972292912394138372610277626882748823559073201695440950985981811593616791425362176547706901291061682523698964389763318117393713220983776879154445299962235547812469802789568583813977051630942710343156466067253265068637711027682152240776644744144372695077834213278896263885439118943147862556820218344855735181929098135037013972942895442164732401060035526901432504144828505211369807883353548451700901094331618515935261327485728015691664183065105309770473186139294275609308921474501063904378711733979570512944783494322443659351801707886044906976581661796470741478364555050545784650611895341833099638534614686361984425681179295804400381079192817503070017355762110995029393216268232275024957906253207499714916794302696166871400355258312489199126929307756853546688023520153374791914015866074883822176609557745171465583514094100798205450732681431812632851760176420676264184779191756864544560873992785818938476260268854900904401049170556142615793778277324645788506792583100244132245456232670141147223586614934060695455675313832211330014766444624804913950584407779992394036039955564411737864517613546596020236041752704962894503793822675563162088678001576712224608442370249798991614511556954456732050650286204450091848019036228687848467716872434285387241853321952402738462056720495091122813687435500548940277291431923805824520953076874947417293106304063776029040219423241989509537881225734666498716133350879935300213514647333257381075240203167492684725327438445604482359536963642073739929435943494950557666175381823293786513493844297254739373407695513237421132393320850292299727939332977858526891782282695657648158841879361319267026675468469153480705171952715497899423759357747168415792142036219081147501890015207383261602833115841093210659027131905512665860364819452317336033459112827638605599581068032044399976432585764405695358630737234866015908884207171465246299336974501422304901734180482726421462042390696529302393915077033583635316662894764750851209078986282220876875861295187280225967672878592116139032514564430858281880850529910704262858180744680215912771968153952189810997263538765137486266285765916905031899973634412879801935372545562972435598805489102124250544769391036489247438029674445582155448387303971578220253952742011988822865415097941418555866736006892837344781392584580333507522169512453910571300176304058510506505748882162358439453278999777062185180987705977507710013223393115605668070551754614454476273466926011165091443549651361104078815190571527302015584176925632293453996419661091217644138791673904642783536133068685293399558553692171984576642883685183335166815979030922232139417234599671125559664785851439426559757882999692225941375338404808002806986275760862810108002175367419124917391234801410287885967798885377026269648046343359474182466517022558020063601590595023125938546836172010913874486158426101481058608770957985859790801290255262903720596557587466142542538512550016734908765846148231344228274146520704334862200477419031097952074266276476601110135838061471998737714523934400856488756133089045908508165692997798552028860718023933120368651569342261999801281512705627533734114118994485257045070170137129976475137620718276000426399443655770368855054538423343294734230653989224839886096367306384614268727260076820923291329319172577674583034687856849453625240746852020502967539324278653324538986887334411385393455767611320739592487485042020596741210543487700270487027074422732547616485141123256169847309738179831831397090158645322582605780189402724657257456986602173546175485512593629010591094976416828099638072757101388639707759536012737433474215073308167434040452549053779286434598385632318502883120081476893135156595890106896257324664789301056815397177768095045560386542413401207104254959841269061509153903769151474438628357597998719257064366023961310632193592333987230987540691431924568727333063613611845821286806838530422078304869295753876217179856256882515451277788983754259100559730080656500637078863142851349876523399714394952155185064266424450879662296293272663226864984580487800154531046927525815050825721402094841383405512239968073853285242954092266753883895722839126183268729575509523639319609185351592992972223022815406209567719469206994977258146173383468439103561352808052858410892214377997459164119308451926545008992190529129911507948371277102252641867505067581593931862445766857149848626663625844763472755710077143183374787109904293077817383331030165181077460400099371320804598252251958999663947495780142434902565524369234714182615129393367784453242232435212620714382214721714044479562480624975867110399465291562083535191834808071135615074105334445406936556327731035457688239120888818841652497060367790894837008697957357462944993863445258519483963922311262328767830380430176269187291813090308943057980463357290083400120343350066916922269925056402329576570163251550314761152070645034570123243440800480314420118120924770501435509305581556589261487284664017884182788059487097439755474753060544150907099006229820960856161181127526133821684496708356083518174458792089166045071777844494737592683741371722322140249758147678953792089110319122705164735498330461503113206151998771064047450691175639128146686214358951696221037522449637676070018889052328950438281626906979883223124953479160155629692317807993405305906102803586875713283939378272361129062463930283352300721043306992056112161600212378257266001208776447930381733089059584252819766871232848965308712052176695635886429155775395217976754355717126176691065193815213410634933981795285864163284715727264838310503963457913646346964021307581132996391568041822595915184974707078034146802462798951615232405031424947378481862846485482603440591654223688634594027329307651068688791619319914110746662764991580860948642867787100505146674284878087556590185743186667813352411887697247041917759200461596345245773006194197113725791343052947305960040314980954815326177252036086459525454083084071993776197099353324687891957090631042760708328675507539099938355656237097115396867573472825017510955819967194514813249165200307687290448004585746034400887124608113836107567784280173173275966883033622642366245637546433314323976396014184600544215057628933909160085757201469198788266496268898588758317308987681429773655691770566086489544574843525492029988821061175222757737574783695306530854753797344980959798419162788341589446969237275377345321863071075476991554918916500721903434711884967256230997598777300390695531880502000507997461167732140739282501753956680465415678888394764681916433744504756853567094893375089656989592940943939653565975643873498288523646245504375749843013088875239149061996164719363477648693873866572376676139555433982450370229069282327988547982729716012762710039135742269494035029231620415061657311836214900839711576270277693834459883493517198608710026272910872902340781734753522593021907785450028942777596575434233184174219459253058207955060613893152858945527928933546565099706878323028879256381896849477297304375582130913600944814264859496934050049969523454844361009238477271095739655769189311060282876084551051599385951064857351809919812792598147585262602313361300845245125065496998710359379852901607140744406205478692161310752461512413745209946291391999160929906281645616160428440167699534951321499005386487625635668931286921456916676523508776333238455180152556990729667323535378733478302076644726571139518838648739677036238014908520857922392592929354433814266797411827269874680104508726539691482993183213750856680438103696757514620742091798951538583901632282023172075316038394984539175048558375016702037802247773096413391891916434664040328533424541980374299257051473339419070318861796444441041045679294736437024723705593005506071692413387287445987616543893286637819478185708253801120768901587202710546970557631931528749771710520314519434654604660158551500420543306149139965196475431716412441362541557421076918164764698884748167037253723825276337808175090624022755431776930546306601915528732357353787557954275533821337700763469496897883898228415770072791219127123553132514233939658871931001595165724935545435649259127355169650900368092162451525758973083509197893711340793152783769754422644983849211284287006568291745369024589098090020450273929345324396609955689171795291118501228998627709272308254513174925992513942087861865294882706484548525781304754421002573855869823770389039763571589877759821542117679542725579147366962013602766247134478107856487258106935319056685662137930004026008407792376295427798317545185975318216055507280342961665992556635461983141780253412919254279510705266490101429969193634348271588854235234883690719507925662385009180139284504543740964360792494749211291373453849721324939263035343067895911573356359104858376838171048210085089620097301535181937781971132875157806387804509440711167493257728255824099743816259629163630994117667377717096097970186851943684411556393575023955563687505583170225675835569878093500600807442942502909630311219367389731872024254690695606284342957443985058613471708349426462456390722010639647889676927224072191123645944857684843962487699075266796948133165662866391398416715814274742756120746415110728734425930729284711307631927395114669485808748286968008118867554094641369183362803922226927541238225745505857379358598291570954583536448125180106511307427543496640116419945480625382689655349445510758441968174664909489955249049278832573422539119732085747866736371431552593497697703027052645368512166291231228061596958516187859269963420202116657365136053356623728054702092047778636752544141002425596989326626940831764624075963322628214179681957880302091369365417082213325135282393998225225447059541183464800920742832038308943088821391422663307894983168925411620041101129899384200882411840778548718378466692011499762295071521036918469243276185884776132065188880536716434049362552828268544325087897711374692231767053494784320306910712163309135370763168483886230520980891316688133330099094865290346756411932197454321825979007085269623015210800154551330142505712622660688435685518709648065519606595164296471248501720377640085982628381239817315669841352776772268226363117300670469698424358901707300306087880808170725913819319390504643450875500606398356161681210163924901269855505310745308781034295173291650475947482655534200980217693128289615417808095450430453121913532884423748114064489656605743136097297698683699842368324118706822249632656312433976573194979376709894816455743110269653046711741124425739326264681999035016143308232125649301717788603810298311130664661409260640445027187274116512484452400335679111788328811400122626836122059476303068393345947710943598490722956427442870968334894721234819204582210700941696057049069365629183747000505775498730010737772799482472710224898468641383728163845335196722726948260547471912018783368713269554966852583852530290407509268384106814071433297709316656023060265843511212755969013364806574688560335099990123426272052945430617767616080465386597196287317539892236610905979805510763226999330366436973963743178314521858882039731973990167170030679924778403306221435749334242420453815733135844798603650335241488225120477229534026946037869414411095942666738974893919379163796621033780788127362792453387474002342960833213181691728560740722835397882814176815565421676672343861216142712128131475827725528521820570138503195417640915098020376048754533344670745963955586650762053809744584984274133078344092507599729181575993451186481339404448864571721768926553737395795264077627533284195364575458758418238862004412558219207290484874595636300314075756098548954210494483104838205482978760020965873862295868324200589112963665338481750839330650716854816359836567069342586165184107154151048949859001515120426460731294232706997237506343099680562970948309206505370039255614142615707466046417290671656351249618495452381993946736525389625657984274864564528335519642361744643302411913416402201854303925329454644443023625663017367931340145253566720053703287565633718997450967460656322058225626342383780917835178438039917904147936461576330921674453443455597184123286941743509755951925769815981845102065014064430002624576905511395223904486315916265610359071976637432257811535027641705231320792223019920810364193799051469633992610815373101669865548880641782630093806569996258873188426564469949256677056369513832842599897235598487899115578940999321653276790671022787311572362814880352174013064035103468104694389311068757460976469639328224845628498370344160712080748207355862489349931144972515118079039890905721517973759819473613331489126427338165282833771870256335819222508329446980823219554687191184422754447542804376852723415975041522786944482216246950475033518892764246896456314529080992432993596252034916756048398141163511009014477846750519186884275393058330919056309394795083717173251646382769512896900274880663258782110594689159168161502500941299296498285062737577866419134076284344538071469413813520824763208079696992568367606877360098212808854506952393122446274051193131001481315277926889750285731167044941748770795501876533240551575295265652207627056239657176915213541703857609610105975400919476729095309650318619268910676608960578414385200608243668225648269384142003755688673177534734693912650075043326364970037180177294043073321052049982721470592887674708555175187581388574220819468420733526446316426645023108871644042583040770515358682167890885921267517764876769955830165604048469673936715036803434471808121216059009962494514791228790659719192361805872994695828399776049506087388532569226118317074126112654385908744109138202199836610558286124038564769155719130422433466967264757672935060726988890463186270131919363011970860592661802352132015047265305459690053077999934707900029136601811282000484652692876104261151707958292562509196795137697667573057406737449317493084773318116087863310924915249431360769216950074872431914969933040567501484341346674914290820515342715215576187780357431132561373699218982957646772100835290164850491353741604933555348802241039604507255730614370023557471333351254388064610227097340230187506180516584369793191208386420484904040343727071033489559335412816560347370223866615773898963936418887839565142006247286916699301413991982566757747346854675722070379121731015233800011192038070130519484571040010765754182163755138423965352755378053510951639198322680430888937217866741605043703930106640002588187936716313488168385004161057021828838379263286163418920035733298834223769329330177067907014095309327182915864958467375933570339856776756135155672090795444508568055532915116864384132664541250995633952947143394957836947613892848246514759496907122949521763159956581530917726021694923473879613823887517239939827245142484561381425592714120082369823954496836733738643585054628473569476783643069310990216350421485730783000615488099273288510269758435672032297661581868227222756233410683963473745918046718825625115065081318098870739237073271384292400310197669525231416178099709802373186665251445917635967226276074361418970891369462449701715472662273172539008852932111161282214098835643610647440077330030623050536191989847488520598038812726996164639247271747323020503531244355420748307834888013998272217536880950547345105976561136010349003340990799992621643541149066849817381762257338272623172312869035559677672752965103060938214558570387629314268539538395613734983987151293460209691766175023991222423374558591416699723732220835674500647830178997017932057947222868205743587083934739783572807927969315287351055210429960501474792475493825035174982885229744406426100390241869461628015035246556443840516983151253294791248457495412674592741384101718599326946978676944128556952626385752937753270548455415436349459312921075886539276066496826825533408052773064329523835622681784468500594973122035521752060290051447061443339114566539654263957215406375914465400736101575315375273595762607661808578069283134446178935003563063743400658070052160598392557276413084137126846327037569806214841660705255568212922579516389331869143433650872443362680148737519587250273616554651223449471087203571553201044678548294007912914040473379538984843025110992585004291380848089219452494818506057955761382827219378647095028447488881422335220317703835822904016354309959096953518393308496189909642656946569900460601860645988389021380510727967725750033218051850769851316433932956733388602632790817062456116887678045843859898002343931286197037918402850092829587252046191352401119706702102375006336816128242200329927675136886266051722373069894574650289109249078095745578107193639394586070355351321464562243281739811554049035699100229107936616488929835201044364224494242210931582846429507727672867821162255911551254898391255197163990801798567704524828041134670616034171352809003012617212966301631511043247101898546008164735227810338226892682421970032480003102867477421500255123922615273686822800399155791633833044428244452636482589463556342934709153975878096906319647068523442459673230679460961444056067379888020505795694580672579944713259230629998822980505496310142220861702944976941421187949937892055411563353085312646644496986351942627277173705133963620857108678777018598240582446426699936209114760941756823380964204417288081327612674033670594149318950651856517088190903210992471179296135021900453123492741305227900785464875506212817616455623444201388320418030895166706101786043938981928533140502527905218167542177651184324952847661780963226010539323013556795544080648999529220762255052538562937481959951413362152192485641199709039918031909283747570534093332724798465441635635015780095925591939841037200263867526688697237707259047649173773858380629682496062438055839788618903527936314030203621983405685942023001877992106055040102320261756346141927568984307290437294234719956254323136570325765838112421476450540213707033839622601776838043522580263339654408806009845218413381464413496089154193672762086250882950752998259560491486270054879715048025892390771845500159867695556083589663142325222313805017041224281852014470888535751491874163314579951813522997069292898168033154732759298391693701289801225873199842727956235423512449772358845864625275079592929833229017253909755590795343219641682254290153644539200292565171199540910161216578930189781462049848208839131766823259941437170443548593501123860758224200052490678162383636732630006510241691792013475088820078018653247689313744600134087556810086633152673868951659655795310246066584986004787617963183520915508801591872158714990780777285324683333436220548084106462750567571843539262818719932644849637817787133912291540195542512193584321291043909485551589437242617087893113602839406108842798817933616393237755137973052386830776265833737378054027337818996445043200306070756267056962414182543447999858670412091481133591924041576114071270677662338517348818032707436137746571119111345488070986231364312206843483734890118289203390953661886562966870684447991879308520660169788392055402880932688222011862603712493170892494189146429576606305609579144959148171207358766227037616393565065912919650877754039088383388206002409499312959700133506896145784149159710425725093520915454515922088338448442596921374169998639985712550509114815506437451052974062256844530410893875831357711785067317221464032344368735275125846726430084169155133217449872747129349269617126854535565655938660789674466468708431373840085583067496488344434743269813636395748103249378835230882367675842856524601371086920882171446609013819970445600898580318762847577312395650979011012899062674954733072716855841971081729542837491319680257094719844469655527375986563832037254312280172436803378374077626646163177065491927487488736857281862398011129525149680942546789532995021833950850966370401178744737578756830831479001835199859187846292678927311102097150334581522716035980187082554714013349814857437841650067355844575447936943333271324719795738232299564870988284598757659631659535440256911053442062534550705928807347687359646198877752772039370995914856962008779627442531965813732501649135770773696662866172386264673147015017884524166079035624012458117083706223591063452020177080882639951484839514383224772917749457841748171075035151805904343846175764097107680091929653639564183291584491133234353712814544954598712282264726200833476666791006623404128044925398070879869518374795429833047906866251162630460884294564438304695014497466670843593942872013383549889863374196676943047829082664752708522233035789496729935187556255182204461221857552412154885547426771214969719647142162231040068074281307858678074854511185019190724765337703621711466937923745427545304339413073261684796918374582579649586235894932997091938540439184994352191399615860968634807832677302576036669506740070575216409770722028121540260181130664464607353732320217154054025369470696129154101107207911440427170555106761208338134663464540848365091786274185847801520996761139333752330780307742325940428801976016108765771675557216426179770634177910467368896131085343614456205190559522863274808877555137015661476948037591604395379292899215040272930465819768738298796742946416608093723665080078342201933749858031521943728382196607293732232052350890101816553199906422631092699188767113563013003845748922452620604702256541638172315006731548261094426381989991678076596457098907460844592443398079754259339735162015419872926777066114444494981619498957792176007220901574341404121082528436600472720364474165412929990394946287928011218511612940989109390651171286442311583656190219912189972448545772189105356682944073981081174220260488732660527326762238267745279458909401158710677889298945073346120958223304658701061525507157678715399660281135052665049796683000104441100093661686702175434983134110555131027110288826682181595923452702074190262979759403499631861878607062895838802585750276749358114185328084200680471149610881281315578942382431487543415917798375333754963495769692344704194777647848620867903090292005017171213056740673640782690548612311897159688205396511076169288168288759152991403816531620969095746608451389777681453188167123898898707392032921664745419728511092174706222805694077752119702972959470816680516526867909119411924474150722244111610157415339032395743886861897857051280213120522397174432426949954027373168712200575614730893899528191806902873108857053871660443944336597044786568607009749511279761062935733494544494397236724619585459321452085187554043556763986725794407706559996634075063488426135847562186320039511733697375792834168246104129146344603673368791846673184218024709247302911285343609294902028174916279431402790807650554811586156331969340901569148122470466511767794555726779063255274630374014988923483463528331683859161721216021710594424252474643168591153891914276840271902950269563197063210431937262400806998729983071678032620254448180682875538643554807037315145053344748148406863147200346100190892478319171770575678045291082425373634744245654578813607266786980642419929431170008984330789830974099479343658173695068121514001422691278517106117546175405086108590554049727993909463563685475477775517382013647515076269149818019243076735503308885065400591845896969593473078948680731945762908872825050099965973873283187346475447855485772512681202874233621207134965650119006206239374307423167608982294910406253094099706605380098257083628706935058601273492245217807828645439144341695991609674338869094731947266378618708355142116567353594540624759934961656492297389401716222027165947421041330184790497987513254940709634216928813690137455748842451399675244947057481265397728035478785732933692440845812701192347400783718711580643621976692594547202363830339580734734735162664876664140381287433069898011927633788212459868389721987285434526687957852883425196998332571197702241060315605874992222313967326722776084489461365857758088142393243067895293662538320817360786831982363145531449974205467686951055042611317051986545102468402475627065695010037997780846653769079985123827074951896062772441847641561909861737655490236914364498467224239014199628406386139301609140941557876127604117517441060777221283616598164338292721495679127598090936172717603398742677731281596258853786598932054759946851244456172792378916415711031773264689632653376191997201764847805599638469181879175668168442773087031451457809016487172593719932965926419025749632742485339037340671554898809172093696410813718571646623909656957800818990209523746805712490660061691647883528059631408499769744831232470451295277645471021802980877729956592589067518920520978811403751656049394322246269777315479378951828990074146355385345390636625167236224085409520965517142136669896072450648479918319163871620004204964277143280430628686499685717843806216298929527404874637164930337045727702775461956807523927512828087640301222787719985036296998421964472895710827520750129424080921654586607667140399900121882007678364590471690849932585842714949298996109442323294893847921905077358495444455350964365829014476570953649117742972877245156019493901370047189602645897726331909892373926432425972795829523690304000878275736310888691592623109678335645089514279087165368885994132894401807500778597246028452537579526209811235852047177444636479497229410708973721156990799057029802283922603738850959001844372976359347128728924925374285538683005409774076662218367128747854364280448683946152391119123136658520026855916337906371824654091492806065520654895965534186340668902623327972254619293322940625107015039296256445220571438057749151379561850237402891027085878873475499635355001208463765663304446624795775916771251850785180257646970689341690019776717417371639846996750521048118119595550170292810274342114125182907759037084194703525435910089348599824785492006710974878220943579171966945110053378584822948348888917216635002277488902851357525214846991724229857045810562252353348886700215675193246724161692299124433317892691835475441363656053733667718951976427221927771486926095753401641166838094854083837933517186205180464393115574746793460653231206730294932577359534477327208322187896427008692062682084626252067584128255301619068219182769811647097975505018084017387161603785005544668508645755022861645930224541673217223584970881537522711602775003214856871685419336225340391024473266553997068889177749439999920061552640032790173084104647009241193361745159784975812983250946342027156016071551338453240525244281388765223907422782390112755481451368285393655417307520631699798487464772237966978626816209601599543919064386448810651587380559569565176615147264706031113821882721649501148999750987202985540404718226045791475618045564003714452057699121066576674313648319109954630426388103429481694626717829508470553702301483532137727389680645027517068331160536478386055104093265204377765026290352487171219832778026473372295671677173912099146594012734914407668617945090916635104962998894665135658390477819610534410452162308366799378505499306903829701628913991191791556482577548193442868473461322784346137250699972366053893992032989649340786446787993667455893522671622545254188146806058000374637332541436868408495179041172938157210371762217556899911379778210033269840709164481664401429213601159156027205218393679359289728553569198078148837787585185911437929152238372896753013154779171703318295499145565860311298202519041879721384517193212398360743595134090910024019112154120569774571738282647332287630021070197219901593812943869130956949455992598578581098811493318231129029935680752709011492126359571846502613965452049690691661367397746844582762482292215858564302101173499138546376381069184059376888278251641497568082497742596225851510376032078256216418495860129669138570938158611873767105374445078761246710993810913308609458434202751476623984453825392414165921777433208537151089816406935776381835007292885877740551094801823969507617508287150232166503417595177984879602960820547816234822909947842445156039034033368889905637110052769505084799998295370782368901299106051045628910678924530926624117788170334735071061517796243099009051810257280722631174788383378186947347507851048113890275430828306806435412992797872104804192467333780162365214788140181271852984099441189086488338967001239539603707379644123592880730707233054806018756791795538741286055878212606727729241231472650818224028017176885447378771446960643681679952991874631048349855038931312001381051787412097386691360026884108395857969872092962039005975779674149473836660827191244729222287527195273679063181662124607587514253868768184918894749710868770254745050278787263601263825249908309464462182331519234256713392048072403668072494908968248370792649475554958053951474359802027302280895812847080567119574604380714448467613400577404007133961233883462865459052912004841890038075547858236468512597220562853077781038848729782990432754853119251120317661337922449019715930813977358201637455792352903250430537896870445148913599362718618742696186009840751091632502503878088832418511106777012615440048539846421206888818676121683719156425930704619615620511621743471736258803199763229183923888048876278327557160197383040457180221973307197545896904083220423122434220619390212587772229043647045918056374859986227069642542542538936753015027052882894627582941925415001882330061695709448439397199782438454551050121217693710955362770560515559753503551517953258701902978828605380669426530408294158156389059200393771662082917533913852788317602191217901962778427568955997724796986740118568859762159619811884336775564256242171299832955757454401107076964901639417866864400989256317315052442409471839630674656579796380513651422229429422761346128521486865368740387287003869591301854607638629033514189083404094579633336619269493921446327601126765298717490359795221533175464791319462211833824859237038447440440792443057155978535258034456415227613311730152346457790864547069943910956557456082928122262375225445833731799829027518772679249840871717509522375595821809756694287650818890723322745924079855041383703391939235118327701832999645002722436664632804476438647017561177059772870360114678833251301882131886575412132724962777768405560808182015658135183520837137851337521043639666936583142821147704973240341814725112241541146287123541673751201002243947828924158483895720493983462109040863603685534141804143277119759738903325989510829018911421820132824126971815274873816640672356739222510029506113198714505730664284121321937495552455901238065699311705411261408333062357298623095813499499160770596627770018167668007090005215340988441729612173564402065556716299724233462290673944852655762692837666325818375762099959506642773048725158520181715428686132119278221076868691502721602407059768602676951212944079084775217211591014602878865323084794282170342066115322380080302444705523830817375405874010732661277370730929496702470034018842626144807084119353083332181908828799211369428462577373910770752739236089102968488324573476395662652787168351044505256432695189487461295299930691318993016840352746309062167185751594668121920882393660409393517061609065494313679069717952165634967417477044572131517926115663665654987922657911758892873701710600209179348032396677264278926899292010623977973130539488959927441635935493970996827302667791248458852114423375347530550944505568277051774994621957438052860230087541049891013079988503448673681890349169401802791865375871109009417844644288398818827589169973607826625238933886610829503651208519829597022915771866573859822501843861734186612833023814770699042811664578762553598332807307505911397653797235936464706956282788895832659165170392478929749517529533743603459061717488796028283814219853570099333878085029926944868129595971181689828141140091361881600329328581976901300410360426471775709895195990994483224307246431386769417391701067122204902991203252054668865090304542717464008905170976636354668231993111519901862900679972742590805692546293421530769247307082068899676375775343719130164554817901230263958789870040946011211669993337851171443217025694498740412942428859594884521889985122478514723840917433337395040833801867404962655451618406160077500771825992761983356601592090171995161290978142424510301212742406259716716659188099421885866426337695983594389373339053936851911822434054524122294787117635839399850330348847977277781177293187976188278280248285220845412323639705409639895674627094194486846871003546135791338915456834269759849032973883997515057524829738035072051240826627364793134496576045617502149721513120367636867634414649944011461426610581400257136640320842219436973294531367878849468909853608236094186969623491105420926799852110178271468609837293428416360337141769125470772754666043868368343304421072647202283184405863165673628054348444253388721112268555544070854973813058462051076381396557220047428324534441946659834937780513436732059991354398161229174137906419143733879457003806781447089391631507738675849818670008644569268068308098705052409852562870061812255459075624586637918103865555502071827694087499864509000330227101760131513808327076136251935632356910381436159458722598851943649088646333046964813643153047120765852536180948718880812475334450499786778825411496081255746509710439610580429813295561421205296445593353824412195741361106467842220487696401556071243093113082218304842330677601454849600865023291298174236412728227267337041628310160284422202798959190085707544934409244371863582660276421501011486545818436243305254280530322679058108459516567931231281221445421616081933081824207537136428805686486008247479439106038498372133167429675717778061736591597161609768683046340545121991629582912664421727212568477531024804174972568329853663543115612300997077012143966593689790965581162142698150547578455196032094084791630090846976756744041131114779484784969564979064935761508405404473025557104039655945347890942770098112355881086570469876870791281971383939300926194879647073657795128659192484980240080023419157063909516351706226835082876477192746866980681850347196387526138310395226349308500565205995312591046978611143951106661548454450888970240438055087346501724477894775750557797474766076295452990601794106796635575525274709132041960312044449231695699815412853225292621355640360909614238771838235513090740754802442921356928735570753111201798266772373210252432556127828536954529033499593165801486067853069473252814694921851822222105099812499111376704453258890854713748546648591566988738688294133807540161828403417630110815198773090138296013282323770377097161004215313001482087832724837627099377916191427008144668466202710771780096892686482132745022867843906620443832392940459891554069799982521801959750870167171161186033602809278614275086893001310330895156436454447324664932313263580576994530876667583362620418742675346833280293181926590119210487357163223013253482703658448284411322117192621310852778854581932938112191231636102808502277303232909512888223661652132688728914017155750832072122758213578337134792958596688895831814390730257885872474096779399639824621135759567963249435150848954925287074500353456423995887329612855969150503498064775757913604404468825636744895931103619930959369942976275014947299156323128840713261133896012598107535597509203938078724153091222753885835431390634023928957300258645388187960239572544745254457552255129962888587375580376731712907591920456862979472182893529853899335925297906100432782211413401057237375932451149935480833151572055915268434221507541515511327385223725347942856414867907261473431693706474140985203914861917388977209096806763312735230731552646069320867572752488233309027762366933155952086522403936335264287455118760486597654979266735975004186487576451965997384847232278134261691286682735060152574206631551042547114673957455239826268485496348925324694164490153039073529781242167191848276470664188067477454060360791298502582537652264151944601062334892632666944881497967893076900583715376162576058676868417100772299339144548156461621286354719375580992615730402510015456956441302364006874023401728002545785343300189013224910347178830236261899009636092000195838033315208209108118188563183991792458433292541243196194922491203271980711031132092718908295131200069743278703806523639379443500819557553887384307250128053374273897288959152132034350496997715379507445968724817151634722498452285132400944431961460010060858113674518949635646241287325978133503446636563889900004731214835121767888146272495230789223307708915111599310182775059675031790059691126611209740867867159068122152349165132139904711074391323767140598584721678171585023530739295481971964299872887573672577388831133575420919811804186367613868693527491317521531525461755964309872984654645313341969861564399486299599566030517339012369048197779651830462654948569550806878393579016710536817639108597129673086610739768113554890719738850703437701363041538103045465731048613600372329996289726053573909688756597037254387158840706495190497728486820188413752974493184270723867027694773337455276554521573086389364629523639182861264719251847769745885790790434252008670366812109105014604389018645484316000186730116306287103510077041434329451319923676410966401341219849315162164599268673241451061586973673944441700427671560823420059032859907490957105803662479035715665435012706344717700709612162254645908410642908194861671810317146455210964223454794934535674481856326622254251500648889864790113693166815245585326510299778088013053597993694987735518783599270497304497158918284419987416849774362210349035020650836008745896629154879313186789448180301268052706093762230611249627359606318496231259244459298177092491080343546512207076588839478028410346908098771425187317716993736057722885288695995806086411190588039300096175284989369299621476929475675175548680752189978397419883734682046393485343306778071678111969145012043352276027185521394404335995939876813184632959310123335886252411264008682469966585229738192679724234611477413656662453192477912926225010810441398698006536431464352023021550815123584335107260275728726971763223974009895922965121520007249022591690429799947423202122655316729678844746836424409009791498318110436374726734455865317115362838445213010908598299564615869582769414123920496317224034878592116604095242697340338339112740911013952531182390368855774356478060140216699544138656762554688937104628811203366757737820098496439027075492873823634807775996049139225808730421062247269817456582691359454141993249800521779396932179263913564791222087780757701400955482673478690639672922867317229770934435310524065613479986088396446208833022895079545521481467816848007583622557169256273004274424843905752523214725649319076469366795291717601319874105142798524061287426234996848558422417972056800768878247265549251219549015192786128472868768180465213735202600985927948317145769720080130146360020822668418967085470682755078471982225871610098788897921032624338910239750563466359999411466333861640812215902404105773676147683031055900234402315810326293361234274272938004699046769122107694898786370314097700832486657229425789846248074242264859537223957144070061693999761343149597206920870736750466830757655999344437047502782975478338742156902938148665926961187672536022366935297276796296360599508637991688675620867964026845043736236257757626795152701658461004486180710642626322914792074166215978890066665111949203672652705789658794517338002455954685442618600073347543964832162544848022381030543481903799812532058140414524674794262312804099465222358227885415294262032697540477885085588147253549117914046440101771615335047505382323342346128807747353404963121153379503421967811786217846266274631099458763973021866548144225288796149241442141786727018857924810351155616597129206495474790549842498611895396465842716273815555934951947998230480962831230335465552570194317550337674296048238657554569654367862936738146524722732160893432086724691222122990522581914318032532426962064353008776028483338820450114309771820023868281040367788079275607872601019208862545398068573255724138674214345533537337508726782003879703311543839110404506058890711468884008138330262820302206517252945943014426586525036302944601805238159263898028308310749529789539502042882307320492686046547986961358120395567809141523430243181586686075407307947089895953762768494730779715404889797923197154217481121636960641243267969877302954012147903667947930065562233773671640680235080888805759272406876018325539405546893051175421365755836780932271675946371684810151882664735013070380028916580650132894134805721764809160053547383187844139107947399606926091192860243447418021363234927452514281582065128279673126403454040734883167392389022295554423358582444520295913024190925494410083615754524211765371365005730758018633395628454739677163258417595448576119065292715493034748803887092458979193033932125281519869569136566505758955952048439659006267118881997619683973135060193457610209002690800816642321373459964112544404941803134574246270031659966789979953238795466434524961157390512636612847244061617903957179230618255202757372970966797882356197221916459303409768824079000327191202192948141479984376816640602379785646988021492121245017359108321271473994983758387695541546717515384947757927530900176468801835031105610555345620446685665558090311033321081353778870560505989058974586229115531140279619018507689124771574047692902993137976962223034016085286341269610927107666121305719332292698653120813880092543274097293000955555797942778627151537401507800082989817663048675428302095207932402018046950213873684845578556047419476336470026673113110201647466597736588307681447301126554973373649709436635504518089990240651634977065380501541314215197656657085984760597620035503678094869027862762049293571141100632017962476037942165008907001453847719150459760797861817367427511965213036034653097007642953208311966871653796299717012225027172104339871591611956291255387233593143951402435645966183167415854087778934080854080767899281521108135063538970073553561450023507427226976599708093940838449921825657794478765585004800379000475556480495089172946720085169989643303553704090652901318149417931635923241506853437840407745457905544735942779464106836336946630906198447428363751647868974983120681343268185070039459665029480657438465466904780981572770606264346503782514831925453359160702242012745589553132441722885231887284799300165115656705963695232884308747259331703177726507430596677958302769484272144788266276173092606283822372210293718116841154279119696660531938556646114603336852961016841275966076559930579971777601364942662577530994903091037216629044599620453926583476747926927393087644353898919101226352782647641629028369678590634838134797765496206821283876986309475842489256246545670868278545089989339753284048941097049146038479743001654660282671304770635714824013350526861359609675956377088029445624427460100040344282265381356071370169254684714781983183345537884684425680405226181476771375930792462545974822859457185005693425588433764110335737004171581488437850583761420962752015111646899936489967330149008637899784129594128302300539504657533762599379561628308463377117057541995214683221486218697817341492330740762208752822273283958706210940996301503540510195175133275286144810297641104398427370088421986782934767880429562599458588097450032635921084563004654652320615285399242750634397679746843951366318978053543037169440462360360228335263235902995270502430860010750841143933082183019836106642737661882174519867320885172759271837944542992358612295464792732826494670859671857768931913736496614018712091885882573205070526027644520157562626016381252330894997043534817190376889350911769555348143581908580137345784810994379278951905159397191484950689793146802645706714554683492434954067704660557355708010839822831434262004481441561988630129406293684251034143381096265268714444708809349759314570755221871005278959011482322153003843402517043839558103129007319679533249862549428375183170341689876360514514538886287080405622151623393846829689838808698860608809477493369637036389325388453808391027164404182293063498170616668429958088099978588525464008726247122053441845628626487591007871961674518550548637557327300539203183346533699544406048871185510957024336314711915796166522638223786225327933527450493561672266595851158708309445166418752808898935766819761003085301194722234651868296138553594138797001670315818037926319844944026859277879614193038831678006615162695365582558185885011640189996626002960091868360463501184003334316126642095502082659410961366029150205301590206644527350703791966563925998365686996975049495288383269858210784216208721957785164630829294904298653150995967600032332907203935154810556737705558656950250000579567291035253440180441463910300623386287649667810561029570103021359920366772046769259529981663433716800024835101073213087510744464140447535523035638629913369352943331708134024630864337047856829483364406614779417348210058834779551832979208361756767846754292290412253864026640014007356881696888137021088328378483582507904999922296293730160263275348369696252311360627377344925399707694879433638075412342160401198188803264637903986065382376228522720381796518061514794724903175114242453683882283135309794646716839876871539053535762718101175815241002837209040958911604682980854585774061559580243106569419998109149789622132970357713025021707838769821091877943713525183084128626858218394176982483617538333878994705519463009612891511519548890724233925879961888772895053089600382376896411535488363141549262928568042567283215791823967188333076185075486539762707444244301596499840212332044956646303335244437211025734550533314828442565672925002535837648372171168772302982732772483527814929320106979246272350488094615710989936553653240041790084642522268855415765229045433117640784017202366919226249273710471089763952135552853621290035450574174577701230156732459893770044769503094657338316841828256595961137658831895073497714832747138201517668445054041885023564046009182483030491673199539909593366672208221729707760062518982908571891036486145473399670710949576501924727817651886204534563919848626955323878889784420905759097645817093702052650173543406766661501785555257279755513157754460196273299469830683920240258179953039830866759294313053900840704946807107526574352944539887879860724398071170909640526624201835690572878966861159740669295585637309717522370522520308623453925427546431122530211402641514118173916291897338792995871307423459073632544312508965401722615561499351613404481045339742080538104976752866837292895811858929692124589060021506787290589244575219458529459304610062967637998468675976136276552056354378001816497367401342517476167927777612847058678356132960842128321466388435424754886701891125197376517261134910144950074819961834905901881789732586695826193117452803014209530096344816176928225907722561406166628915753364034098256958638225661876997175594897147219499668575315243548778690862098920435192054838595810314494315116464761396028030898799742537647815703954328111013558430115322684287657706579022343190672802593066705030244935886879322704392418427834572795509542624878370586682349014776319907812876315185269041626179575135937541034206027788715822900130081807819249515467473172705643744506512692183295366021126248340838006737700397886669392712130420443341120844057874194376375567172340883372181620319390994228816029565055126112320331472498409834362535884905901583067836847998178684231821377336806469442070709547100520924983932364137698719298719356551997465945935501330316612899681965891803399469176232426989813233559433586940943770948638349945976873739460272952643561458598091233030808998817572146127006864020902976445644867625343997650783170651181228843122743055796958711619490184926681104976951483373106088161792101770827198095095625004980280778449434821289501746774151872315288266044548655305436192705164446191163018767004232492063954248800846704390849254975269833309367387370461065298576107289592514173501710811631863214037978868419150378111449592946103266201870157640768277800924921306779651380884995497472256111024548278725548672564317139232951627790096054032749012357956278032100621497650320483357678576919304348495068553314036444286687226686064554929394190490971060227810662461096359086887671383369107337507481068022352611751041224411553254958176780438672515196288073587975883788791403844618372234100694654038176591285012683948788911621919650965150704098983559889670149241294305438530120075833200269634171388345954778095093498757249539717278553673557234360806717201819881729603707674110438834144088523719547799053484442328561792552491811074646683151778812292779867520412103758689821560846285218770453289754011636472101013926605863894936965577028515680517896409968466521151679552625187637836183458808667835759395080366740689822585865700466021973348867487065072920059096811903595673069829688162046482060519882557016672997110638454278905645572602805689691561798874106832382505170654783654573359746060652735904975312048496405336915212040624461823788184572108387143237585231979268576555953321321064731658101643835230749638874420170551894583518571274989580884777060737403979133540122001211259754856266095319682984146310623078953369952913402441222996797543904757639102142179087197596781975253908798074359835517484970789664130808520280543313303197583294667554550987147778145405370899429086042000863006677836816794114914595073828700098341129762989367002511403899688600864941442472741916676650533328579474946126856627189526294095496895240636503560271149633507072813289639028986214739497630979473814776343109727447575538659470682728223628638577168363949307141513841218660097329612682789696951953319148413650220128447099620083206494169563701310456774512585977073769275908291925457366544361436547320498852285977690356809551987176031530071108634203689915026755970826419228756177473475904951566519599932389125109964513195706598526303179051223537038902046629128670668801430572717642411805876184532124617426691893693836444216764250066801096490312916962688164383383073507099294416263546500584556022473666747895941654739326867088457511310651324971279128019912620517355471745506381767643670756381897728749444458356434062997313253871124276094083226298759917730846442055765931502984906653219129235004603125405259119780576275520729886066320422541921574722253676426371755621536840218412129889500947900581025755335557740881430898845994875915992685593189805873464120525120953353360846771527697552223791910604148334650076824911857093824871799156644658435635771800048288923217385070636880411616426561084253421805367381713412295409876009203931768785634226124668844426531761789502222581969798742229096570258473323808619877131722876130055996685040958752521883588040489428623592118173490636551956575914124626273177508342137455676409588228209281105619935321538043719806799693793210312425597755626998594401452774423441081753075710296885780539225012303078284539701652386058074432734919405350188149489208903484551825503022404347743856747417429454649695009698500716501960014786252369163695371670106370851417298913487750500817235894331006916803069887678053585458653060989870193963543147224039282375084263913216121999267383514837352834703591450762755798919658400078595678427675778005143107769523310569324210520507755616218517022287042119223169329786279629224440953356159767589099099003181259244398418034877488297819509087464904025181227975873441746332524944966146132877543965096186404285396181104786639483609719517416894299678418318653775897858128837462397260542494790976137519926639227911600626314474307567507201936667709532066459279336361266708805289670152575674095677682102590192644224459121310436972166942341214291344733261867146217320697843737787223467662445238230538352913634576006000147693836682333864704204891338457992151430496969924345728085786775249476480260295882504196561491632582002950915560181555745001465070229304727604859896224127172286929943450055932996259187406034812476490391036232992378244599072998281629553344984131246319012730589170467826219623313376999063128227406990691773803864076986976108300295701244724477241787399889811075325992619120252159892604347501790249537125064546508047395247278794732884118877488763292440620007932871102561127922237348179363678777963794057407123009321343313565130280803013233251885401440698038329560606780666941850759781178045115638659403728095734161354425050452209575679874511619754361524780183863553291104182377843072808205608626627514025679102750063561761388347753983561096390180923679447037653288568377633201962894601467257196607861961740045364079273921215580557456262895678076864547236303171153962991598086220691824432941921105927403475731628151167139845408122344700662226288823951691308235327080882791809993378357370455655230653476633300353265271507045839193080455349016447867033550911454693509522395756463044839971374989694417448540922675155421696787013919794676509161933101458503241218464835948720613660733247268676653899762181351991884775181875977532122477830794364041271552868237241520669868899392126895243064180300378402598550366199268382537532554531369632430078601876113249954525704315308367885552754824170119109180093031150681743112703299341664318364488206039123146525645980133281059002497262790597115896451558457664782150183572673437149104064450826087782951083170921611984948504563689946775261330249908563885575067616387812790952542123171799123565247721034447661966253946965870035344927360261012848823919167430880697113031000013189832109945724282442487347880506700608424467309772924679753769939501462544524807619058609268245250756551798255485077978599540657016037226864463770533289780962271907041442557717549901356249994447239554949131556592749384907100294285523405246745331346746371198326366358843249095972711888702125901218048663155527741542440896281284200116056335006485134897450187408971530354498657833212500592606847847552125188134789760257675458694544140880260673467862978480888182854927933165401353735338657165599710269116099623390486258587453864452470774373528926039659356549254156311230901923306282056094247192781737817876254756025238495240448435435649771807233974101684498882786091184774472205135373402024138722112332910110976174088587887262775014373619344071230821967010005276673504133543105718118501271511455511029625693898445314663636351323955730371230456306645851260419687095542430413302269485819691341927088834549564945018602025602704969295571895080049319786109927285071561100632105888024707612421405807406017190162690035310070365880202154324462365106388412282599521962566637595915483131333692317112205753754801450670998425347021832720427127325908515597491634521768144044988255017662546461398795653019148225647178741761208161582842528848100672678037460597441979428169227250294358316053441771533460256325908284564004957683520649183570693967953500640047053823021896266436463695527924180185943253364412359199361671294456763878387539374327629467036406346811447836156450322457593115850622597360103922950089423845186814508651357362396007411911201558365093337675752854853964573575446834107492850787503410273379272270365827636632378069428472061481794127535781381199669751106995868200030287232295595520150181687693836191997945834766649727286435915808281894796467369946157815840583436606031049463760288231894677766022728777681978202247733778694436508074812774710389894786656144300302455764639479763559472958007072777908400154185171173655683648043559188444875748305732351323181409405707572717142635169722255518116621651545000646911666629047777429862104258123820936482892462377076904998961489449880712174654169450373556847699203315202999339483300458374474770937865569489057121752239576618651183496277097181346795656583505988821084625724418258180071586216946187153282376083825263210371527466822045365024363874011377140603353144825345102101728626720946500419461044491814595679198285832370426993233340199845430055577185012441218809474153781191663613513083491215377320855612032676138619232040208586627206229799501188395932443323470519850669460934202718513640450856998213043186464835181783866101554552812360528446925175303575922740223406503524495205456747711932926455664634115959682270817431827536115867939160914907353993400953479485066419573827796457284089185482167833894069836358895897682347336116984219174863860005197612366249776176343083680836272300570868447481520047399152980731786333856346674083913770380954645012495109394325580108924844619738842098759287984621071237275024893864354189237415749530432248785233967510960163665823064213708458315404537669982733593893735493781389899857904202001321808773342546709846116478765039159177284268275215052086650803864300377432050354972786806662940054568385603548544624414368457324472479628472401666164415559022797732790498752958176415530454478465621063766141537226964916288282947401447175801890688874667903255101617852980256022626283653005636756252246681074769282796461594886752728420193729559323180744026013704209486810266740651579766511873531126610100574444699582601015189125434181447486720831159933676430904845196419165256966922202140569612634940872509688925602750064629714766857422495031503450717294488233828761150803017204084625134632008443970390653817462058090199560292643834723342842540707461144697887168742235006410773692962406178815048808485530283585992747925251385461074044298361573775439247562667111572214452983711717298223356361943005641627199896691572542690564992214979668773245195905075967681018014803921278980828756666943030836163313318413763168525521624913885415304222250201623251179978047209321874712122880896021946673417717769207030791999589973716586018231077063607219481811829916246993758541415118138136735490113201236388416074878858379759247110935538794212865616766088192732209799809393569614448301089164492458087855554503635662507147738663740540366436667263978093312777789656618981813104126854057766274429674376823582754029022631105241419847026503667770580449088265128992676139135548489053534950393445965309072407149170216395690561682741210911975109606030650483867931243726946959501389609076048663507715147157427043757729616095755088728691521398253565226417580914392740990234161239144894956726929631300662005080708552593035979012474595473905410521424005166823096931467118511330830165296496820995755791723760511455502515290444466243644937201009246576806156852089631443961680317602304752495135670252946083517411591062484040024026766343279757058235726332068997273478443825837425039129155961482101598107011036713522649764867048197084255221639382996345940634104104993661811929484175377447519989025991139343477910139098498081346764870850668433911009260533348844774591575209608829863488251412567993131101471686046598080230709226351222950060876516835062659653151323029450497725060812312176207948016289584001716819133281605318653304800385089653200506802448240315665865406572196784634706131077347499909571703392424445421471537796538169523214725910627619311464621503524920510594229269164594003609774062044541365701891505914989269952789597128517051451139571525879469839663171019605204146395705484099847386584168067594496317349179466462058648716913020834834691285977798492529993772120776422406144750252895437868273212111627792451914231768658808269038662365368696519860422333597002125101304127543223318123417140820950529255532275188427204280218593175687578314019507364201856574926623996863088306219813620759383638460658968096071606368913582244663301740540191185935955817431542228217837932194007870454159079606137177621697275219718385014238459627805501019226934463770802166859362693115017555949692986134977994963244668669178680914135491567777076097524127945933673876366563712408808488582378098859235334198086093818426294000002723750426660862648966818217771194139381602069980911018782311143639976072034281352448029788152146374274428289511103797927361935253736147362418638945272972705826415514285997398313941316685813955910204289246811152768944576508874715935932494011586672138934325119162823892839399852266226576024933976740507727045957400906028423093859414504394026872202603848809513633458055272003979233922999872055276268894773681061577113455831668673235275000793714099405170145530933202101722707224676113709106746218011672717656713423991846234214306738044492079366366303597359243261460763088065096933590624354874473662454328422372550053638645728570357645817936499717534011183733861627207352720922406913041696884952661980933727372154723140534865260759037944794434245237963638210317048624058289211467547070891610599347956607608984704632608525624861704306849570676315737608393368208474547272222729330416920182989993000464658164812939972670423733907392435056143701150680634288008752635255380640752748777416792486088744887902070413206316010198056900006137122760408208172701044119455478543755448357076522086496607445230503562290303840315666278113341935887296726100943188301294342319835309597557599335682144802253746728301635354329263141206990113158326067052717945761105607389591268842455015145868830837185849646148184766871028195964364015965481805886833579641310818535060485576797862962849720162400290400283932240786259758318769291883792119970049887077133366005021174900296643898441285909140532229561341256307294251276091942199256143308895346990955438534375386139156637595851411815127647576695519477961772743151913845165541098349700228670837827190617907158765447880790931048218742393014637076255272312308384596664331441511034936076196232246476096600604457855787928111703138495936187430978369817835699181766425091965256637368067574189122118529984559830616605427429628896759389164566706395146861101250576546122549881904034982058529985498494306885171175073161153236802130668206032794957124966203268997770441885776358231186771636045746545759554237184315483960049190962633172004074640673278349192826672588599131881707493411771437064638103284124515750599972118887225399426065118145343455082157655991864006017259947626778704915011366590101604299664278586461536523527418425705929630921022389582948062099482132256787580794096319289362361590841285495100649498646382807892920876198057551756311325987185219329458807901602853771063126058880080463712753623828511898811973101329762766985271336586030335870240553568890713480298159080902142240516021602291204060914754198321974222885044875049851282256623501533802363775763067190387231568205141195598343614278080368480923108095333875172772550265337509913074612127191983122482293364202617745614061241531316421471396126083332015057609020111352816133698283497755028040648026093844645978638193207702780101528469101665820190470276834768872890058599139296783774995814822937869128535207062575781658748632084384878969708897776196483142316040301732677202081790656370002016969273053345450626332030860616010136930872317403792695397162460632496251799771386501503253346873235235800645607788928354601252499881251772924057684927249903485252062461064332362174740186402812929134140124728570481640230902498372408890824758394209888227047137619972731868947703750368532016250040421798975083753156083882168822539917524865007958304274430164003656842969055050332189427667766929163924456116254445353711786694188865401772819360427069526507594203520456952233150842193256874117745040141844653494703806015032282230394530433460676014698511357617525982053192955390947653238669060649391182329570281717573333678026147890393396072086575709231818641487295580697761819538032541222263028765648963881922895733998832093710890525014348432075012090918328717346734741299706366719237961515871381045568411323013474330560136332879656794479515892966441138373418632875103333650451783108026142484237820939539590155040508095586187659878130935911106251163560522119466140661946270454899863433118544817542160100497409762488649859580019411470615024839868791867381904258070665644540609224777264001113695076139793728713225744733106088867529269278705748591608239485611917094490322732486684225895890295249761310373299144778592896969988426062462343856213053495433899944544154405702590594346695028718595732476660423591949674753565570439940950105176761143847581308645936273506865815420188035075824425177146866873122617223215398336928109304629473077203604993616750656190755899128814629355098593736213824101642027938716718381743069333889973465340064839798172484597799762818792030389675889686082387014199808815693011929378978401680299901915399375763522232501631580256890082214477679702166112025998113761061339464050758428414092345157970450922272650196515205735486506972928033339135319623271929662702672601585718652798046219751959180127666715371903830290680446139362204934746370668244032844591962516351978532799681203979479977179665280163347750493943366161895204268432031315022126504025099215711949018019109383691993834747958641732901978402883997531793488064218600863493773626790163150872175230537378827533316162882640952799172361638568023956958702574457493120961948095673657793614970676819559848773659193249391891904955570457022484561323805244590945069243268360091925573969361154994401887842478320499287312562588370744734068930993905636940589278405397153256784811538694216509377148921721604536495539512242199115617518055404435882634209141778261922544335135747490274682822783859907412944730595613995337819616247929429481807077302050289914770297982034661215041682305089181905089039973802987309076987129227011119474422729120159848750572770000099944769606400973566246140042115469649896410527003664725438682942669188387169446183867518802094587032534893634848078406518092103965285400210673909516716711705788046300764022662123677894855861319260517293859366476060293311607917592982453985128464968170247108547402817329639331014682506658257426412577384052064855006029848652074558999854401770882356224626044360561661043504499730111681411699773380121842382635256452404966191653417900053582470051645624722660476225574836248225298143938346590960799012143152774577950065841263428120815653920635461104206847738364398889793262384751376891863958441326438679297308843864075745742435795287944870286700503860206931817835034200531087400346532647371038704708387039956675126695495442326145369475806456559651772801408849400254361751776956324983731029196420469284204365164400105252829902853944500577328387445495878076834473724058480888278940107766580625890365767834742434704886491029719147512044682247124338114760052809229710208344474970069417148504436620990791668636251528323839000396506150890511348788320038201850750518632774769131393074356384878216457499193138135063763048623489511844533139899016940415507016682188476418023715947719456720349760495648024903903922000760375832215583391497448132067926874417544136613259335913462965950107010606495659207119968247098949692598995569362958028090671840815978311721556500401767524073696009708011913975800316760359183533321123313908570178412498157885715607854818307099353286815094614224566479687361868337328639840535509921815282799158213637811195518263167900844503328969062553061463545408364031003900657952956108363299624906123091833492768248591333272679057466678007728440475156708866356655970536307607165841836311686361117631811445071971242903188183644389466022926186291316995860677200510493357684142455427204855840919155714490303796479862192805348807862904763860205176873439017398822362632084288044949461822825100855348742899121817043914732121648304438585488287567801304192790482266029040328259729612571348087417404541431269602866204277117870229983744897128335290085675204943435746293079025657261450073414952648936523496319304001804056516571574381379475429600539506884030986382532450405244369887901397057597707698206141432819608042257240399539039520358492010980564402487296320403951418717189597518606767273405664430581538339084596265995680468480581530246281366539327068229099959693026352994715279055199332771062204013448273698656141596472410041295891090691225759775455675630403460592631771960575596813424654841533167062843425826962229125957578728401149393787145765310358676968070509864424338169777060323513789035937505662487597762332689832978312318840284657591981488956914353594442372035903652987413069277894905082539913319491608658494535288124356534557663025898704412599959235428087257889910636517821531832815235661062503706588144211841263834047175138671919444428996310847878827443106680209211681010952893047084140039814556546666940502512299105514688214993508299309152709271565311591781141924477292809835597465964732077512227410165292328175423385130046493692226738637207541865325965565324599675514660815001815911244839250371240748492792001851106951421860266761027438276878925194457540032676945279956864151318832952222145798463215176742047388888809608189390161323142277307118835460838496009625090146841197700072918566614990570905874490052774165812744967352208738577800195955791937668772215706687014145182454749273603554417813628562789154525438962352872900403621796980862080525851339563933188343219980423424479704124775291092235702916051243762051857723648388337572568923627096193051817272801136121748681149797105298300777000333119947919759236760980082686375295603806060538036572352995427591870782875077149618229418481846908485121078641120893316359003882681904505729877904126363152496194888091841141997898725474801078699408073197588066221858829718580946143880755513468225395572627083853212212794824029288942968607767081536652950487873974329903841049503948091361843921026500646547450767263031541625108449253684481910460295608121204820156907902186417920239822341327743990840145053061312369866766983816749162471856260444515383859636903256848976679285220818575439058025638017174301663816425605147515113184534818184812475385485576403542226126930540805089972057474773498067756942287217406761140067467021921307179290695362357048510480818033520055164957013332102517310720323027008139612065871404571758093236043515627280676947358224095422909180487955742699348708185912120898183122340180333181149970517511337650420517698089111370639812699844054873944196702003216927711161392946943707979759640328674147285377789607761424474160507773989305699842790244135323182444201474055180798424405835651558336558961403885973650908819853651966118257435651361568412054214875604615797603268231133280027799676844526974835697008130932785729402494747581210147513313363811893392614491880037449899695014623184496780326422661752253661678998833086081172949960738106787383440715400734302880866657117994227052651287097471549059905975599471923500262864643483318851529882672665303889999388480582332159365496807523066241362955580876294568262251986203895321408421650627306439134419500881893460434843052174326665618424304280632945042265909819467737818205223504899276762845411248034405078166145986760950159215545816203147415563967381774064259568497135400922722244874856362100243436525326358170525488119744406615086334975407310089551611882396794750503116592099981034792455160110299702993242948245136424618637529241171639486590737659203401755631502454893833322518463058574635836425686038663952780614153333795404621425754340496963737966920458222375842001374762867825280345886432510359644755167925220902174969442446258940611430481245422707358496531711413408782904547433528646249610340799890126659696391431525149411484561692965657076872843890699471422162983796057758605423787105933978723335795844714276818617830706722403579301566662240712640305511652516092363451719144016431978625313040831025381047167437001983015354332787335549922262725135303760596744769786096504712597055285264908040866427144741260289172977228971549880248739484198267887826592737129489294249751097862267390094254696055368606589400513695049870394276805367982739635653259372070827256856580435914094340901490822398710020256485567093285457636735337358701876007580390796484331829980045341635650205754212054940947333394418741550643204843890281363987926332298685803856271853836257179762638166645188289902253577112192871420794752049837569967988390688084378729238700435947336760442383229003331813555540022870331066191569194689271941994583497908664276076328598642207170650866625102484114305748830513245238440772678585448254076876068366681514121401820883849141011432826875993322131879808587176071913030179388557124672660400401026529924784486524571579397525020399613349047306637887303441108017294339589111782815695527196898594095983280862163253468496357078747640005788323753895792503552920286566484940947636894908310364067136335794162732194442234917005264866718171582089275444574410777777656668402226009906023739962347817470454592713680494039896940533637250284753880588432986996272136643118419532853121194362132911178698968786842653824069854294425649843497222141690079468644163500375901753554889279787441430512905112748572395968620244135320404664297271346430800260850556182251018535768408107711479654652621806457029034739403217382909516369326548900258657338533522160389104135057736638229746982521051954133745334447630983078806452550401518396843369066771072154012370993881751014140051260649116111259533553724786217135110372392116501010533548487645130442524192123643235023793739660555832349470989281935175006685174114118033387669692765439911969418424429450660034666367006322904367336914613905296685789177825761095091783951726085446979725544343302293332509029284953864874889532686992629863546967032785247263294070421219697230337700927693875326426960366596274713829890673319374486576567971497298148367979415904697141508472997282734250497587470489314091078245641878806903675971340395056627284167237035428919293209386749239865382410456395328482331421050208808496722573953120117371716978543173999447974088149396101946797775681541163887890835415131942891880281527112216836228228241086062137680586530505000752121238622331992810478861915051505615204652362978469324906671391173259113425721281640039912183126452428694822640898482166214291035847246241363154820367342778777421180621347920440069678420314019830157844239963033114040182621888107564227005588655568625740147220353263728595313187413364561833414980565090464591853178733060559794428926594654726880270574701322991830010246639954196657951373281096120906618567154158543600162074948702350068955099141826496652001964483442738367340853643160614625398216353392184746160678457194360761853039283544368387397653288077317302099456001654494703821171125254644238569333848842476140619511428752489644805513180951753123093963475096577355283551789855441087395580169681992637237099705489814000627834136596900432311280716257773823633115598375987577037882032201410942728868347403525216014495228452065902759825126254586728742019710929522263867302368882897477313800458144689781649778147817584377177946977455003329582344214689565773587548787370924244656337354403086701752199064519576536786167286253853895876753391126401362683624679803032720168032070803521277532736400054989601708325764009554247591404995125834878152344994117220685951901081952559811465580407414090565436952311497666690160984800147098920274278895098742524914178368951424974821457389354286163716900164159422185977851957657408292193722341710474360307842293864707568647806788299938658412912698223889151950069546486252933271466576816520440190036963153396916958020286520980527301094635819299976405141405530203533513068307494609455435967068152571648479113374065131210645112100486392774694861385941917287085404722676192649126468863736625466785226183465736081981583169974663615090742754819721561396885603522541546982373179145704259006553073088598993040207319295512013014112679522205864537464053142525989422320556877017352849536270427282507611105906319819653382712310749276291306668070040861730486686718141250747937539750571805242147785420613071617008030348308040473561144262983201539420793385347144090184514368825311112748330868600759167229948472787444389895721238663754986792280788958952380351558516719800468401387054901946999221496915983619017383945254625921411344542292966373491726461568146323410969610391455578603855236961655930191952329146365406342907690409135810675955701878577521129428894167355211805904329793138969849174590198874885456299331806719003361238526395429981689528969641214897489185264585308752075800014845101281087246163555174795022203966707953605977773929868919576101654886932064179087101763764900394063216555683805622914544919748457042619653227782478269759742570809269125574092987060453392357784736874979585943925727362376424433405143801788557293779452507583556138965056792743467579831863334880959587423125763615533762007222447820098185661240236181771837177047497711320917609374470853585614453229045294491074132872642814343568602302747742531380551948062936342801303587588736298486025125132622710086703148123976475055429619545448401008991621515726564196342319095021109390851097995796496864404088461302951893073841090276757673677976915065889413550722478980768896752864644822411558257023011528048325868854261360748073627569677741407284048918113884268049727047997159244878423974748584551502137416366364419277450620795949417448015475650436863325273525678331797884855292240050218381268249924384369488012970685707476345066623952393186943223513879845666099461379582161877450329641852580749029221424143425210153891568092316382055994856010606783401981114664951380221025816098483194385107100300312409951719733941355168691065731306139545718132047341521811706276492176681235024849545350745260928212655847592379044244005931580710705135553728339619384371578675907972516102860184003527448371612324030629725225708554019754789207465672803432115994975853033885243772794172897120014298717014415828148957304737197419268615819174044233551319855902824836852483460568994253225386793649658223714891031905299704965463705270045249307351601549684542716627401346930124789964726885156743613936362021924574340795036156918078109375477462284422592178287888045545535509449155976758570956974479438880387507380017912751456837545191924841253263955169088411070750209854603892888624195793730267592634433119381321874004456078968733162200680901950258303101434536708226566853933080223011997329198890007696244331783077843605013446197316156452653299615408924457171375973566579986270325052615274453674756750970746250885481415556261720585042538467500563567725824228009513140457184733553423985447414959486873139869514585750079273778254974200855540212881762359230166457344181664912997553126828334844735872710190168743520530907442704354136699285676060865152784945961856567805419923420303228361173097972177262458352625796981188533445872739891650031360570785495545884018626874693675745239690444581557583972006118848481338105941247122807774087133734458314009855695996192587240530750359633873849965237740058519135253118579673557799131656942796134659856541203376544103407710163317048806777236986862216586107713914667438016496909199386382965483299732812337169380375117253207212914980545912542136851248655083145155723765216169846873381940537129619008692454893166212690956623567287145346397365085256045123634673815048378534041800889532855116337217285737565394474085637851551860164467529079525731776877580231831401566620549701057336655133655052496375645173457920974591876778652229007309845052929604469356789953177199595614535185370711555266830842035618364576496825595770727013396379496366000601474703970371120901311599120351077067046878727676169593144709479143053150010022186561551268596955397164576835909064766870971533724445849237753205533913154566596634066029097650825478762999108151671438623264074676957879479259857021679094514021673661258124750762713716286283411354020581116435236434546557004969580253722035681867849516525708005992100704543514691189113617707078640650460072226213787389741175443463043639778127719321322492593240453182565638525719752060871980105690022011859115922860412249266665917040906936140335013453500503874112490196939330679161284434408026668955446844232139912471024211885709884188052324670182004268634172350226829290788107647160234894842948572616923011832278695348623016564145233740776820758515877589778762377388673825969019754980965315546983220718225898189910104469150608700003810409070813967227460501228458234464975915100427981482494174974143953268601504590859867325408293223963488803358747585916715297997236583758046378151874035779615297528336630901497201570384445386426956527125081331389644404544825201462394140186054883618490081576119633394122054728930134318240255652281789957242739141224960733378798104282455933665128293611345852135935499351955551333477277963491238311640191671482399124757495887946306943678344821476875069335917382806094117404786074140210093567141262349980341078002850184431023975261152690733228665423363602965833319029854752312571682283916497703003536383573840084319152977995485478631228905070063155849483067027562493961620546582433490787472025391475908110229081061504086322000365316621682769970891702200879593781769151910085909836339139943053575078131914750529300381963350620179533817527054725590857238989918494086490156750249947159226503230796628693112738623313832167951246617122503260593402162691859924407443801457767893759711200585970680185110950635764680863924413726405961667996856115501950202069943730154940437246560494381845296349018609799462243653987017905172395680998339859491361705620180360428341523015717443916111561582729392528487249470583571684414051856707518259676793820568739909881703678978390399861058810905028254850794986633077072585813071774028933875788282643591821402116112649854997743758431268948457555619543916374093474417076410911596684796897701423120754389911007013380527184899645640621766231624523261882874645314723767382615366637813890611563523563028392654985792725436298107709280841625489221970694256590694458527583318462897859180143395083578411001900562374082739428001430234416311690416374233618185997270114845607195689666879305582616380510019877927679018161577045903287442391441207384828526854125590230837358564180926224628214457223646442933901637849480091048101163958530453428374390377147234850423060487901356156685411771853009217929368642883009331926474309216218921823663866468997775797092190432322204966913374412851010033120060753096763181821243470347475585663858814418368943983647401860399868091384033138783742296184325442655394177251131207915518791335851154442274074979191618744682932891189883909268941675396625696316953636631391561633060864883911988674665887191171178247630638373186431503812313851244196275805495003178355921007943930239370697195512068502285615046787229332761815369145198143843378827026479014560626260827362400744948433523271313275493530274574428862690102102370795750849242108155632824898565916568674277831286062103263813682634545845362627332735059821937778193453389551948658577940123902194614125686565876966733007973138635800680071185792546412527157105536692891812754720596278402053786179054239003534011869351994096363509723724381896961407663908440431136466494595099398871719023393221393343438807508850789033442780842031124547680022317306327213622272855147425953262539682682701849437130996245514734965662099937446211251420217843714791786266830693010707491835483961560165527465345622409810410231879871452803306701808772312714299244923423901995175659692819660354156088250838294093564677282690790674454792226842713459407127506712965187170193865632108951266337036153464819324610442560421680533892128525012028180843680304975730995361376536410143107960917204762649221466888436254144680384375596055849042157898374959662561989866512272765751983225187357194254844972597790301878879108814965528183892078271934515780315905834674489423219356085484837712713975879600588474468918104219607304085302018566397961334404545816194752391329544052745234144068556640210022208954495042608263731341955653665526419227251493236671894504262277815209177245571783069374784654878048654794485889644367846434386090673409673685750899480374557898512459457809869296854618925326960491842891148374771419801243607095029074804556415013310789197231403246380144436776934814866743887688895207176887619578149994339513967967419945848241779256858491240129820725622365958149190610589393733462322585994036357035660578292464496913132881147422228082029463418170889483525408159050479914822098246783015313504549111516089998903365858275095502300442113502205598216683184905446550746374968749079259104281170210148807421404941074052191668468438124050808594970612893881757140261569478503578039449800009599840767692855468592251894131256523929778550306265218601517326714121139004541098521591725018255909440610162923135279038844503072666398423494773541994957779702199212459600175799366091071375186240726089174066217567322779231690341478133738207738761348250840507998320040655313001750608408874583037402555222624678399914671949014328774361611900237599245441038453983848067118530432286429717806646626809454050224458354587899960097874258310563841485374115664623654704352301038774322577746323627659074801853954281638657532535244971223725138222633697945738336259130122397190213000429843759771517301103321287684714098446786413812307263862848155752912818894806493039743186555347885544347508881083296027991674432623003304410716639915811531820467034570228615230957859160661947114350685562902205718014434528291458308428306810191774916418306504747021463072452370892441390663149265325083257040833984100597104386974658028879341518429084769810354835830704874120431713829029906941870315601511549936450183299711219013577934595755523439448543857574691055219009534167387759590582527163707852051233354133893736949045108223805180487672830325754689392322754197356951629371507721833155582733218370913137428679245179850806759656772126470134256220416414231661873131808647682277273861401014299405343995530279443758436263560681788322037780644242948675963135827599761711061515674901369054705562971545610443185646607373803380121619451817157667250479622256799685256628639532134875275973430415236974201043506049812182621176185373877459697064254477535597171053405170731689723233714840801316952493290716292342342731769020518038811664049213504731025701010755790457943050335531398589262358919031199418927984975786983445021974919968736620341546253081217056732007974831635706420694979583532415392212149948969577010520368108024425614630637850479641486646616212454515062825801123371609420076640797763289512053137860240580301025318741852403647406015806643243343287912922602757464167226600665756113222360484063909855040767765972413532975285598637425262846904135873876556785738671074191986295886913817079530348773655933272576167355196045806184760319404559522581576303783966392399598897355912245931871712896713410620488349755031996651365889381563090888944887485412991237712908419986467210513708745931415862931156497349883307873696097673401940292005352418875070618034171450054283474479230045149432345020017951352973321058423639225548214128431377964365435378128458375254591060555533192710857676638357122254331811492320934965663808716723311101805758094475269170990111721905468096253655262270166416527282421856922158496755842581969360695833346090264367492799074692180533664038742744778220564363001844453873153192987793295865252311489059437052057378723608607885275302733847471954654919327509403366765329547056580489381660243029320240215046430497345569453828328798873424987471927574195043158346091678875626031051023832413767365272022496803300997788209041398166160886738056964742320231908647932170757490481445127165161772144650556252720109981733533853367519578200625184680172142499317541619732444591859567107180707865771640608363926353791906313168422610604580986079949542446064009083995088251731666565299182069657661448834895883284279856071344217420261976291267502771609827605275662418479023848781307307054092930056443236470639078067356130668943946767044184773703085541896116451360751383702926917660765788999564082541082448850831926197106858310115485124594856667606253862864529742993957824790259876930451211839373276768231297211082677631861877206347081140078783278886797026734825052653978706811641215885024361497671475819715366446822137262434370701575191453042926060438650214298126840211143164775533004819496337102747296333265709598554588112427342117174917336394900560827474105669657750518910169283343198301590248953037005821026323281936696300524887458010339061436065241567227427197737640174142828730488903928680528604152648664090717509467392184751630423508006545154484788591211751377222661106081601944686670310995128583932833610983511079749461664487026082587738704063529762493677291622368678087955156833581087955542322238778377467940869725427527473011797461233784896130887187001483002664449852509052203638487440938986059728057812180635472039924941003980536976600106227969762943290130991881914237703531092743627426510980489198290100294951330811017457268714699136721361076070302247954713302375610752615444828013591224133096248887812034832034261785702042048123072499977307264413052540995978260389795737779672059429969529551769537692418973004373959808030340668299585075622608814631939932009719880088778133351021324616908838307806704646199035195881273055983397273677746939988883393437104867183519975734392756273658243547127977656445752983053375973882109925620005291986560443983882142577390247347992527138278928072845609621714520498324000243183948959700808380158037589040909333302855426647217841704822679936310239321959564470048384086915765281580258178833837597454872217048319246546784878972265576877851745288785739055387050760669789083078067961614455872797190249760703505125915946026609310586586454998639371115215040861526489641951024167414052081258983954812752672442178754258858783630899906981966918964478111043305017268279726585526013481386342498449145354722613374283943989674569347025658354321555604094627412395071860795273748214953201253390862326537451509280401400178340696330649969700790281509749587911511176083450931844217817149162868840050587936846774468683639423184754504384584764902326781214963434374048882995068242681125085291816811960325909936333822020484598073562554477654239207468596127881327011644019228794960433931405513761373070471510372460913312249211580468124893785608381900058581740162235832285372283182611376886610763077832029328021877007993668957973272883436585895444270794990923781849948299064883687245785123600389787167239773429632682709140788489664098793784015637687028079979110470386198795984755973856794618201203028596863920224670600478067906102511281984589568249261056876728875715330542390133269342319508467881447220784893783963981043272659221500635215881365790945671906925246034629808958887156893204008785068468303739064813196955282044290330136212825842211112011984586258990863045402030112756592145481599967607438915364770275861598860660203084392025300192722501033256252844340956701141569243300178252090879629933035062875222172290408283444350175719533846910220266612637483822791792707858081214255790466261035174559915679578192320572197625630058999443564953432207736203288400432554932796056899257451631937843750361902421499763822965443140963340752107338318120173139270271197929684266547205507840617759489126329439369705427935805273360448512119730958261801381012865649979302176466925501625277759135905495236322498260621739814866135300340131080419265358305350016738359605600344657337660566388383769176544620974545936140179770369400070601268666409652831508980638788312346084446223547846768450820974556902281425795962253968017459329901080258687028500876991552587198939306648905511891644353913892017716358032052896533421244461349721331240999126080887989903401452283562189406804314451273642488206714505877738068014083572404840330902781463198710948702173922152759372382352258579375975456761907438980277799640386115359449105387234608107463951106682938038681536208145792596910557309918883068468685142082781998520817056758860967498888828272819317964064330699439052034830333673575305630273952548036132147042568702072575008051154756850296121729186393227182085902063060758066736891261983033551110596552358168734409318492173233550136663405450575523223855467393982494161142733522356440962957460147860524327086041629439470003408090028290068525645221818612687862216375332628074358414456608539729201207515200930807810751096156600731690265967205570873420651860670340811820207948200858622592229294399050708075011592210827418444531585885462275288806102294034707105269250853006029519337037367165149180628575423996193777335331271361079840719217614584197010605955052418433960058292504614097405032755965548383681853198033538951788914642638497930277509203476388001705981886881034461420835498768139208999498083130623969202716318207634914630472698841470613652694484657921231027161866788743253250907098713291474027723066080005336247322199251724013329645816168707297676237375147335133846969919768620725406784091631083871822420840715722686134783736479590583416565442754114629066053168214542736029578749782827352225270191306894849184903069839972013620175466816715668064195456172703738726380722277041794552750014415331906149828827827066643176831205582008827389245685760186498613877496204531662230254515837257642982677170243582672522488836686462260299756797093298200985621322972664628366265948243391212325083086260447740344528726040556238502024363573194974607634213235865772439186928832819018788456026498036442527525847570894466725358962203420816991119801787031111381632713163391821016912698576997969039984512283363142933683471044195754174851278256368548432175960239056398066015600448149853927147862382457030831218159931727823877109513039563644081872643383009091119393587148113683150359819567078245925880701601110601664988417768306638197939739044496710496876226748553579760943050679509485753571124162723159227884366831183130086075504732358682605241326085560125057467001267300968060146355740511535032962941825606744237301775298170940108026360009725869013821278720562353074959527265583889915505460136400829520910110232828748774950106603775474554889623662602583819610172175654202866369555981223240581548494558200183488404340767943161463416500013739914648690438225239921971355690214007091769196628615033210402366195065795869550212907171874148094435936951339041466116061428977409113816061173184584425622309668333763397501574026837706478605736276825824445748171180381008329051379644954574910625863385254889940760664338556558901757291895602417579942623530745611099874900999442279709746484946649029376298976715471218243590394956632830681311798756710689601319286350337049654386863791355004348815356618589086932812651172059580113751769939156279924195295265194235348319730295269792790182629069099917341597947799238496549353451425606412516929938802517873673171870677628195142418016894955526630109771900846649099153947110158234725164668782756710662837005707978582199000513813808044900263813004871110277551780484264949315125242985594119207173875205661291694459660406615303886094514306409200611865650910205237922101190108961451089579492105066467791950577727812292344212318172348031096049279688090862710289961426842211334455496048252595638746761740265177367393122054760655610726425493904968566239741734181219479002739210104467973615581448959351623146306198465195863810541687618578910357426442147845285671015721215565381317987649951610908338657573716286411176228840126922408282159090332820606088182345171825072064263060717581778850447222643843799694755021858018635853901343655862075472369372309281686681472727991737317431992886461110286510866726356695839187079116430495376442138176256898763670879344132037993858407877376081892395276126488118551885306465485240825005254219642030776411586365190596616534187560626383590471729621908428596565238167069850118104496851971939478963582262207509264153665447750514779730478226359600578464395307027194286392197679982759245177691503973778176004634732855234502494508123128885651939315779567983969559609799472859617011131841547895863724079662561307842886236628784986309136288042689180312025271591375763861667418173078743618408726008189816862913737056393018029975389851332072579279403582652831477880342074681370649807676531468507212425810379365498556903123715880480100697873990468422137812295020937219877696931527098123866676008454230369628003953311870501749134862461168874483982858288239697695394034716925219865168227652437782026898307393253110931094570156242935424429278009188646391437313562697407786640823603844160216286693927223109322454289619829565749775074304468469695031024411440627909518528197456201160447481660693751925588595891135086888969115591025501557455044800873402178736905036381286897771563106526829290559011447266882203531170350885761702685508803810288169295565304127976627313271374067831373482729172601301557029172567701437717441189875221875752392187516154115081890007226037928278849506239864476515684589419273924746680307166601517405484974548288991855696615187286969940241536792366476783068126742729786473240781902764354378472731556457289974319810309821223123433647351628166501592225546608348098345815679097900362242079497279379690507934845727860205528452093187017923182934847541672113775289950457267880060780778299656342754253465140559111776429646353096716238874017554645263657013358530347938633880294912876123481581130477905518262941859865407908610961035919457254211380063898704886792695599198744254428936165525051549706024094138174388244044408389755742855226209481192104449061228526544326748263175205306556890628240354850368944754631913555544027125720146029723087366275860426441463581423755041262539358247375507897092266382742043522865309399352297885484611792573218508770092122814785760708348086526694808942478817511048397175476555028723352755017770067794664635663748354526049202976119935448152470977089551004843605414042529116327257885767834533476255280399402046146658710442002370178738508410656551058386048910143094094421395025190804459830208860368396175539270328792469097312672246800311748347059608922262522470676782675584072384511002588885501412956485369559899567560630714153602719612906249355892575737788442813736576320746549764740928127936990786566102183081591506132822913493780093715800370932452237593884856635116396591861287882134738302579475179770030846390720382988631290401547794174058947412846781922931031749669166109822969383911088243861099409813885674650743901899026869294712072462700886893067047012223467595727614248392755736251354699521660594771831995677208885805606300849890190465801412141518141731502065973604133464452738712285227050718757618953699324750841663548376599991811806755197799008227483950785762623938449745869169348238454387948287413177454516196654705445894241318496400111559434784165565450998736008870323750746564725902002633989562017350297376864324094902598814279509661849299445196446315940176499602234622771731813364783531491646865094536648500920683269458631554875516028765203116198527910756666373560404191618023774563009566557409949479190656043843929097807185807657489912329599973821802877937358930437990928893277869129954267402406740968535911618563672602656929909549614385754104035320684444085875304982712828599025288800546161703097833803070328748788094849219747462251198962450458754174122518303574089054729330987307019802184819851646261221104370704859294932390178084137280406600942749284973979565771926190666558554005385216600288763984526665457901734401979391167312706795032992664276973774957754378215063990582979557514184936366333161825201803275889605661765321639119470541433184766328412160309066581398214504051615954521221176917549674158558450990728300866024324767951510465709973525027752828445679801769560206734283965969726201233452508541253973684500015450524622830739133468464775843280768584911426610605807086388796691388012783073016384274911654280794868395403701145923785590537601839508116860513134939641641225475045773321072375093754999633288523405996372515821112892445151233071495642214093906063928922014983367518641968584205075641387472947115281123051231311573566178997765871690136028051832263512202362636714476413110888699082722152572833889741060061343007060511077718014276626166109107878244828036414065043674359831150697107530764992699374062192174016304366616609185143749468581023589329709717847533640145953155710147632283206689608302622721617593969962460175739584659330017679084048650041685389599846995086675685027687213857521216116498915173550436099151148490075070336741682974814922195525950705607881703526891528024397076683639713956263226849237240271304502614559479203717322433131985210826373775793640246837135629603947436251710297031083321658331356638902843590425392204545554714678362135037018600971973944402934900319926878657261745470361360613049149574224534797373856205369653169801660998191975910775073386888570795988622195117985805720722833368055498905086880819363283390321839162040902526019677734853463321160616320083057669010273429542752178483488702306333882470296672008558124015550923312905612215123636506599268526498958744742014404881011947976858620320783870268168323835393755411220567429322907223494121076725534636113580161593056496025369711582742288361555065206922583482329472494317698547289909485901810528573336430961912559112384126244617391863857107035366050555484596108226441793766309794865864261573829528068124940542454042896418021783081613525677579234737607350471335427434434533612055607325049033883936409967273019482694515001497532523456492256685202788811023709684896739107382035921092005455621711470288434543313560692988117664789107069827169740864696340605173155550813712612603881531813622089294802385469679369445172969266433343372317856115032829666875402190738935878030877838461182630337907432150866551467939208416992755673738058433706229799243470285343110143067777510232055565308840047051635942055952307606390152355315456050386749365228285108753192735221015181041131278171236415277628712072152386847083638011728081832051884562360270043170960524336691961815390726306568496737788306945863015267629199942287878593556996276446659476656479568379017737692145314518890456749076061470291674110137387839576875919274645623931492831317587609545469761057619643161248055838555030754113665746450495134565785054115650769167573596011636945447673816866029663007500359122898623728942066861035702547805571825426308676370616532705468242989733141919838103834176658006014989259817820294187717360220599347582227599723377741720006521196433218432335163776542788508952158472475051427283095678076540332450893000867599757990072024330932786241931422341496164514482490411551670089388785246312405157367981348068909103164442002749556897292548374541161699325401008852897798245027677601573387058492759800104827656495421944286150706352777247799845800458401559011750162284408008125582943833430972710119720551405675096660989235975403948782274229470915543843977831161495404640185239860774179670388336103242035735026075300308818632631945560068308913380643507194274578936633707182412373460887687010652722143019883229283624834843638689405503729738476126498550631663143583913780129891757687332344566132860917801828193964869096635683253263034725542208014725935686368415856683197315031529208709339595778385049591247619128843148380644514166065125742555383084182531907937383079092009978109522316393210423069746558294212772456142128805498960335307913592353586775949211675919028652275430444090949695257736148391531718996662951778324327888591439555930520016607147299276869853982000028981868122397402871218332935842743686829515740341714577181470922037524941821148467500345790510639820299581858231923002790829188930506304604603953556024573225685055823692449920631817551132851593750586447385558868601994562093618199305931670664302098721444491134762474057178190063074517940969210531409955571631309230552800801988223855476643286218634201718819307945374232499742300742479809956207923146679010500709656747602384887739282603652816561032762623922624943557907921384273371781389731190170250667620552181064156450806391733943692989127923725208470502967856362044586424382571723235356145317427600383331841983256238553823874005039425103969922552854906115693042773216741169649095394005609080947874224714535550072109742372906524026861748841991763558398813842409399397154372962152858380627026742684408079290800191878280971505978676303714405351721798928739684999920997940543457311231254760647707824807314430686374950145059902782438115946807378243270288830038163446998268573484987181870028578401073928555245200964561375349163735602266932900626672037653846398728002145426701182924786784686375202835177129196698199269005267435069454815914468313368512654923434923833487667903575229001184156218248730053699338590358727993368544001336635626870939701151319771582848715432008339894025249811455583873791804639736452518004473628468830924490593706332280577844586941339326188214575351744016405962938578346878896590330187150595576912939754981145787892546306650016763713071186341312423828266470281283455814708607075609738460023631644454329395004733717960133091633879808803325319459208274447465560052562938691621450175687949330100471067199739582187466474568988733779550153085458074618782078865425984994048258366691543724036347908858043006672565735012819918836076768746173710962603473637494918540537124750649115591900255706262099808284721569864648465400632778847345033629341106112066455033619802445854648632337626841266453358838995291259289392065191356319442556462050438520040779106884536243318881153997680279180515846413613141158020665550629043121640801109795977862788785305525981463281413218364020140693231648670102345860963099783047485855683477141731592212133297687707289475692055610956605640138710739846908726355639615981676101122844179663050100297418158658483913528479352052265492823297435929235630208407877880844668412900896533348946106109966332574409777642722806034126150548394725412048867992679135890991824391932334309929876146680981926827741921720135479607544712313259656742355214854645083444720081003463410365343700927332501192615664025963154868369265555929285819593799617150352982663302277311073252740981110288186034722719068091953013643105291787247358783272984572080418811096530612193349222776984237086780161832277037251716315894171806623833070492160126634282231260019113195644572895273038271229990562306997349962176103712997642673175627642311917061092486680120380577841334682093924584392896325383579517489776163285239852133848214132999805510159257851086093888276129096463806302757663323066737380099614388409502107256465300964218166466052970729768662165685095639963033976312055427614353880319616164698343749477463274444670349606074698744446009567123369053784258468226497434215573258423339595915848137663145438641676722921770579862895560110165050126902026989414537479473407685468066502355867835787270120621589329730789987928562733051554414330599140200007164538334210653216457776631024249103568270428376253143131724134301293390666684105471147914795745654231569238664120944219920396720379908237440917833349342663621143718691860989011607604472972025744431044704092047101539391771882608802955345784267156368648824496867882877826898902541242268629756969700323361730390475005982496358306429354623740641187700860785864993757588968986972076897454100855639617920917954970395618801133693296057247756232491309515680809794219498073901554666017084069814310412813415752820034805917059962044318495187547647892373436254875604911324237126117076017807538301634462376084147804782375998482996116163886105160073682828715312141765201846238725705758773279356706434426182152629492672917344918692194529306644833961782814913311975982166064363192543300491144827739286322662329328947808484589334399298269656352595212181163390886522145666934925593306948505620035741579176542322053605415137597544799689003707140691177972730517305069274486874147065805326295962731180606643052442601743987925139394524064305971447857567022280609830296654741180461092086063018184724920294351537508502535121138162003675144996268900703494513042932101684437726683749664305829937827826509688643308275284224067471540525801859504770387395815885401192908996278189138303791216809075356175720345427257730839698423518085383342391536337094738767427144818915494957736968278752888542370896352264896827357983616374846937030444034651889309473974218981848801262655596185007577065962335458211593098997473040397636120310199053609603481941801866813822258974706619972768977838520030815442203617599259726154154574663970405259670482039849389529314462278337574290009985380036039440349197207717575288017447432047203267589519153408099093928128562523700032858593359163712129997142416346122202959732167351661581833101724093467049237690392264324703629990269613312883603018328282546084704030172712411859702375491322928217618406810959856193208703532921496208247327255048302338196228724047132639220415471347318609209289943190647395375744856722126244135453089580834419464737174147554275802824552927100905971545569135101666045395987520498159361897138777129831768557748731499320439919225812138366505015448064770262094560104293681872531181069358152316137223552219006338519128770086821039997882667107176427882664080944274170836768526526796916641090833059495231469166436724160901223201310766111214972616714811947381871814280404323431774078535709531543136401520100728284480487322696622157563994015975628553044876604815183721566693247162648118632589996449272414263984012031772102594033921490998002820192513975176602341505510081011184626185296186394804995206499759202372063350866426929769986424390989222935238660166472714892210948111698579798946774504654645567892951265215064950401279177794985247375401055550690793434758161284114515176102244397682853601064249681607511667950192726142598874350597951428607733915030022974125632593364395037250041755285754090233790742115917707077757616576580891574014169756094339320399761991484349720848668314480760951201931133760583366553831235886816702138424998616490530873278481278115738237802278828417462622523354245679213807727745896642521776431461466013046787276153849496058894243471411560785964081917087542466687766628150127426819159538429010012017011488036115254121136481083766642542932664333914333161435617165274108880886982466520998030940430309108889834752267041508737165182342021861525852731807710694177357145567799118056185786597162311622632433143342309851550511820263088800128685703137104800854199323955533368998727409245631643432911344612129409191846439677745364237896451043018854839328631657709646683449221390588783205745370258119095894974761109769007345811408247850524570985843770948722554885945861207286551678679422077478498504593056841232672096455848406726880509541463213164022122631663549146237546804617219015043557168395005169760339315560926789917353559480269219014282228882979408636486641508512437394876344641504033474196157516897864682409195301186612946738190320917421986103211122565800787591608615925489766141357873487115099394189071409746822742733055862262183379119243138062721701479071470556268137080489908148914549846153836947421188395092940204885340792985201483533549041577478556345772783463507267870800347217776165380412715099861851987405413510531571346645645278301276758062781916315251333228269611346925093385372536776306409168211643625293029497603006278802326072021206846567017357000370913819602370422077663391338386142997590378093781526752549828843882906739288756569718331894917700107589640072999471048170363345703201298596863362782230519685551784977951577952590673061760293054642704501939799001527808382457848849187065219792204157732874045691370575587884329463359902267279982215864582115291403988712662753636795996057646226824731987082112336560013800402914075675922854590330463396279659109438548247474268656870220953902834964912491028965973724336144351328793925138568940857632521050824230002019323490202703634612368098054205237906689090677481863281001518363188314704380191371291623087560519654998360108618689347963082309990280324632006041379998680581485799579125037064277978528525858306578817395008647156086377420154679557520637960732221032039982998380001263264025812526409308667555517197606982723035076582546187482629010771942211327436576415737320357826324387365374600068201728191397141854001877356383015690532545389738415189920090445949060700471904025188974550847899769165121031599684532942612159915563553372186503074004444474972580386797626633459052375502590660447178458734438926207015469350636790867141653900039497779746751373732240169209538935022961105277402508788819190950087354372149076802702308558580312399325336272269072005900785164352579316538240889516657539121844851255557116100266495284711392423599687744208924997754527958189923774583869518762168676364727779347559773045694283984874532241522421473705142168611500360551015108703983528345331039846828572380994889100632459849141775700066177672091922542837622266640662868404789426661109746079246192399373110435956703881522726335595277303418703396050601012687635078067506962681825805180416665082206692956235616136995312650393473883769222225017042580688853572669689081551335643885325511357036546278980868053030993816574180211163975586533602919471903587330453809822758079843961107631136607092372909216460368376397361274959043116113980229650292440315964818838708619474854762710684666458440470032815156370169540968334852599951866262391965985559026307629549845503384839576474758248133318001647780055951758239048361054315694343717798052287987711006753477633419804567830848108907458530918093276586575175898628106058138359919826599866332982362650105081867302215755151592688760835367374834051020751120854871285531649043675677593999244430055422933059606970546721629011218457482273404466177050055954468995871146414423134714032203541179736450058711898327186767340348768125535975314513360262413921673251691206106427939680292814951211815758136570153409202169007648001272217255004408585057938425128391608120195866020279749969278557187042784886713175922432632516600729276784308609116177766577456100661099343892828155051785528810468343421214761054042743383439406461554688848384956152772195125001420273000219975644963855211063582897626987976955554872962996773485457070222742989903199204552122211542116174072018915422032778337971425951054159998306786939937139259339164099178160038303033981163312080504978110310812555652400243677038057030037388130878649357725823026249540214079719091402941613679566875253138061647637774615105175403161668921129465278676132263157303943355823478524411266917321781621853898414023151119653537781985449408057516428045346003323908267936962190125714684931414357884152272058266961664330365117047485931747722737373298132084115341537380927622872053613955490991467290455773259598315411580278965575854052639544289275452764965258131535569161991104975868755680724959179341116323691424536717188716389757512465968755568757328019527905748800271990995800061893968580453772379212379610175673363346525171747336136740714573399562731906967429514684464070118833137043838385398229186610560461410148678759472178458191411611601419458709052942515030959641463287465813667059231027213575051021243229142511860880846347291851750766457014127663794146553460083180524123401346822051673025805646777834014682603695986424689889928398135637387724129119658720030097870927063736686256791374184059577724127177678507525127104016916163681831488279632295619291161348133359736639220315272035030582575693345945268368909660695668162652195591682812579573785633977835206561916473818717201312268830148899943428050305980392962083508842237674254953270557147147104503716996541085985365172749493125750300374482882644887680316087413888097401355112991289365102817515805283380293347912204683602294982381440153134045652727814170987054155852796597800599652676766516117206292789165218112300496282770674550175249962592881975916449908682757899381331439654443971304963421322001816318242560284971312725930508474037604590661069213173859886372139040503450382689780827911606972533158277651656569346089656126835062107688419001727059043847760835069819204717192398826826064314166675477697182460720451597600869904428982279980322804841884481256618095377660001886437808222737862767459698242842910162103098859724673204484075315157605694749241238796034846082741175404270737017386931720745159868979668890843515550495630135712493193925177011795936951284274215962900066619487725034497443938182235757026494349478361666570533802984486296547739931845969757240618959173170947754820757855661288553273990568157862760079447285965568279252473742220776950416537848008588384843061130284511060618065914702540743018946253101392148215730645557335116043444210859245186810205916982620030290554746852504599349629908050913318709423052174337250311067944903915327561255792301527911163290126822523104987236204584988493220426353210109374081443567418000173608090309375851338145233808872625472383123572314313997643190842761986201953686744175462835268402637544044615166667045571925636909173688620423918341789394291801582894202034043531263964489104642793317631436190316660349781560072061819769849996257995701563001548916548811364559286231568308237765086962941036787255487426237206839847042208298350507788878493659773834758929295239361253856687233536400495367148859714833981759846218586120105406677993447856595560964943540436839678710652372259717057918997215547255354723006379744741246013759629849797993341472306105789635119868908634278192205667364493092618527617001736959068780086433803919012651356922841041073794922249207084101695681442631050313411247384294996484466714321540322172549551977424369433532396893326597417004328702151376292619617997443168187544620031046954861436793048194262709689952157282977198932823810918957710019291036484444521155945872499155278764141156508118830293883734273636328834895352114971791893978061312267201386419019615456628023926283885731935146655469380361122029793104956114078932968147350381185273714412229963763679843575888598023183855765796644387548475875117812209119720423172526286361305644029780633736763412493530986790615071173444297201795363940459152190265924711384455430096797880069457159242304317191172233160737919906945318116741224892570593095507692081764628343671115826970262913273304527611315501993618626849907072447752460079272518138966637632301008873165825980126418800260961364263163377904284402441360526130272401535779762721768891703290218174007417248001641690808985524491006448924881784439240868681009114002999740330317686214881235036351357175291115475065897741333184125481481757859054291215248259667515084057401489406290288195870988034445241197641245736405203024827041616944098168010805250494993269734914719207838449230142065641647668707012705515078731076007881446753462991634689786447400363202064165022568764994132701656382760302747832292686242786721394468838707343581245667523822842227705595531925730846808256952889304855006594261520020056106768810598256531340598403888582053883366184584817578992742427779914652389645549741523327639845551642781637438251535007583931413902085788527651778994081622794539421632270480022235590875265489086945025475664243582704748199299556621043403446680062923339028994659500930248392986292010343552332917591397891100279884066472822588656258415835521526408340590804911348195794243476068736373903404436937963075213413490176934502232262594363726086398864072683554004105808290587195958751694678743451669726571832200273378245586540392587962950988578910529331341964949611547331583400813975086809110515620616466752126618629115174562766863194078428683456634377225602471767083360746277181646844458644617890026706834422524748750208591847907489730684261224172088679998826873173677572371086762754938616235911922256496637162477419901280591908547935953602094413939801519804348197457658531858475426821157086564240012490126686015722511946888242803252271466609901735052672761987202120164835652930585110678724825490682088972444766593946340791393368865862475999192656206735229180060025124122441200132318864037775240564468755160628151822627294221244700261612063947687716608158989774820529092649857439714620985020888501744577700996754984643796629064633789636397817163680021984654874383419286989395699847731400590144210363953258723417060871937059832899540018358449661563569144073826290736591495707966471529927481413813936661324881396261814091101036955767846220007112322784984157246362350304314959665784746517020676203459669260796830957560130949477758268723645420797157425467975862639914820554670110871209250526815524442961922371239219867129754958699932159694235255645956083924164274669971206166635184400275606168813030248634062645303042385775785052660439714742919852440898326593064120497434975218399906119676317362719728652760935349215757283440462732903610670711268508358389078124979664844224916370948347797540139722242436966642191959524949906245223654409794367834300079255236168586783327585184796330393277346897572284268759449891736584482411910232386209715284406752119093468607055820847735582833316923525650590346906449035651990795647982504225570009243880502924924859428883172222577592875980636025373891882624428454235124534590607193639930443754629539337599802939985596455608434226232820097491983046777701494491742989245819104394364494755680073716113722538015659296618467511631277029179137238895772859243471300807575826183485672181234730516560756752745433807665108513347555297108077808170156960257072079999881486493427305454309535881813435808057820056927974812081588513534560413150967007575724449223147286359797256143305745904581777003947464240263098838048491945859767779997540480447289121088733112679273802399014975640613969672583990030140592828660842439120885041696589311155889140676492532347048008142440503238395610915331263050924104220680084990046296534956773125494762196405809264499097299155945459686836555562369446618561042408612936258756742733671645149863356778713586324420041346302177376204526458086492837487028625278023320005506406568923578566904652262050771555958667895209575574222580116714580383914459817142165655650657492817366697661724850472363035141856668236886321357894370035656074289275160981170038276358475923184113970771868479281007403180465054378232150106288856124674449241977803703055669421449527528507620960340575589992055958724489602008344166466231646648038124016117805240446401360134906378140707593338409957218854046611494619168694030142946059685679096422101330612738522285446272951059199209318049278962752588508668559676965922913007280808334788773983537540726249622840692811631729247991566765147665956672674937886657517775230818469720409986993629628369880343336771724612686569110418245152397253118419989400276892144494533366635759039443253805928330058714509811855449591002439450244312634378459619825688800750301470826474704671231607778694285253993240391630474769380180352408971425871840347313585039607737727015728877339910049112137373836066325965982561113555206198718909412564272614055355012488049568288700751839264243913723205066619467656457970914497625796652606227943401443012673942091834789744900548165659387764388156431395902941307141090413421088686254703791012843860401217621069269722171811778778745574538528941767372759275661052227612595516506978041032815548124609265795307720877904044192353791935364306646622032715105623537102015620416143364375783620151186984726851462846035539253410660219698465859358557694857479000833116165870282577306877009466556349220348494093402101732467612831070158736685589099766420151254002800663295115728216306234587523015889847823897858860318011408393320485120048579506050549909120323264584653777642772275063206990124221077589554209611812824866642074177545882900571556974005469587708554058855349643330514315567330963991754591592475408704777089502559229934323999823290355570688315773278840281467199745940941395581644804429605925424944895734762927261693287153865679221066805058929678896766797336075137858050689177173954661438773162736586317370650923726166001100549749251998550149163434306138047922764868630468416814529007103706054315808288852420698775369721297094688835367136161658964226386840689969529691170786952033483812388609889392367971474068816670476022001655801466178033985820560877789125068715041314414127418201625008424723353226343384144335038414747533962319739895669096335765739854400184495740054631144956165197561041373659838032779257179534759995653255963550845136837685303053394220757524828077259916424307904585399806967817341504653125900385809987334158505014977813158755995248502893111386208762004972746538620874944325598814865798881346878918107562846503753734161213798369354546366145607117784278356396637708892595376830863734525694695798282676165416373995988503598237536123073077301078399998262676730895261830796352768103813586653346577761511095794597594551771215012652508990386244615107290996893361337173220068962531469408026676185793914314971989672555170031591147605063447179157450410096014827657484452842541919397342844361361872700836209113466041126648972060714016627885135686294811654844692152587012404333259708159395914645134065099138551332549327247828882313660520168999796238557660690915206932277398772753042988005872943826575388185264467667463792035221452298321009855888165652353962692121224555719675736344015980539067179902618183176961827710558099837998018301649003368880013130612679282973373675139639538628844756518959550205013351001920160422493014377190091508999815092427553022917523245975662250140039847888660464823045351276855722662146999978922274267945117837575640132769039637143129787003309924460356060464953577661540416054097531624524501919542584434108527055022328872156841508055782327948428911454113081699661265890382786732759988281713747366077024916101849781631863598242816264519153039567408981212904601011778900409182630882641762942848655201398642639888344523222780192207549500107264378858882885561427420216726879708452269114827171712348672741283553035244224201498757443217363325622649172970455808868583306229051013902962014950215248006003441073893035166896648703673984903363638035397582842272416789725368434063216939576147019438655842799191650275243841408884584628943469531827807206131727253823272737185145748448866079779521188058563926718140905860480158026950809065918404619057017400562429679246437645199253054316857306670444929354432450603408443638705150078882326734184430583275706206750082244707067517378481924227375153465494358394273730088165424987001628752536018919958551767173836079284905233089224257815602651403424849675676441094536318004651976757581567878209394454411377321814597284338739451831506502489190033394333780871959468129526666557068119427995729565141458229979437654375522326776285881913381883681090310226440690666223168312420305236312415024867528584239947069547588475562170764971141677118827858237046526669644766987461068941681454631275216068624104872564667243283897026627260738933032797570509736560463728877708149588801805508255459424561018173349439833833647745622049842668065157099010148720438983297807241106769956969402023139683871965481032270411294713637993689210337459858453522110317292417953264276366714502911989005149422100946444686198414000688529926124812151795927152717797169504137642941820638406232775767237509668843464621930899168210677691819161146134308392986162492802260634307472951815167987975725339710844015991481194513215111302349127584630680912896332781225992296405321276967979900167699595460286475626242053053520012654107207010614987247439601828543535494721451622515281055756332455320400336963484347530091102704817045178526311785635583849661357924112153749243506356620182862106645481086858810462406305122615922807141093412259158325381790767619641829356674007161870394072623616342275032776885435148030251567517234526903712548850785617604553432662798573766660300247153713091343067732331965382087243413343015431836476984763211230453215786388807388349544437604527279318743146725628279168281408720419282493156251019325017383539703157353594883339168853269465646403149210097475214965967499699083317214153160071019630749510687990846779071771364309742519971506531247859048046070156181415206607258683920570925464086586780352162953797235763004518890593487540414374599395149607940655088440503824346545650364002009095860816065067477693509703174490424512232102672775152718238493313658391605934214653722839984022375077240064707228251356794877332732728153267950867824826967714778905468518086156995850755031755302737876007060472505052443816525442880459218221586232343826691571684256063082870536541977256669712701968872333029109701281062304995099790651879844459068686534314354992379245570521315172643377952879690919778626264781175798298361278580752244999660614849392355515733040319204817467245579490396138101094850363043062508453812939975478781683665012591756252472538973623572268552094606794545121656104315409071224843843810408197247447918415505699649178511568179202882938092893960379564415689225714271036407882957578224361951004553271400509072147423286756706331439469740341924943407453270557820375902104023626082280901802773601761731192651894032176051294628837282734806731742294932527323658285682771571531815420173810052695076867312161527591849337370238702008026629831861991589654521070489628260698161087006360351217614635827320464024843808048208253400460878546967187546606481175239072379276803339818801822253806276870283735653795026418040144142118718427657984661981843663862323194340518838033245145234992402899599060689271666771110815965135496031869704148519867093476201728976226266788152345677460090048309339343887998484186755027558766003762109674068791159165316012955691234083204108391597278073375826425480891947802271470440030598330212716217573060099136936056920103715078935139037532935201249143314666841796936739518210266781530897387918691448913434539478445885941307700613573350435167968216320422617941619236954274699519459337159072491262509361990345005441293832327915307350133965269662965416120540263736057346666839201657489453618486789126122918216171137790125561440278418211442722542123166708189357855632006676772979824923816926778373695893972204800227757897138529007394944795119411853601045588306741637274598404178644900400504522339267966190230239868820281388598234953294924428578977747952393217375367999646527778990600649665643805687405240797215866789891042237134015289866176708395615754803827418545968307552800688242525479692667177785340682086534833249256229044546734422570011056426881166997123008524894546529806454863436126926411539977183175532100780347121371877968622861995003733748566841032937040786233544712387079226734894324810827515173473154733940527876899424845260363577429913750037446468988489489313832002552088436524540369993639049201775973937062746702951403729314657483613408008574007130513152572960718730637409521114498754866394992015813397387742752311109075129226535900645265941268163364101124797390453989630328398513101827437894529538747265409077397264050317643629132125097961437528332830049390015690010726438631639514297886764470514397491377018038899564293270630935492097410806974473208232756704910152470032183383838699054699192409873402569687911388784949961567975327852374348069031597683151888762094986120531312129283808012938863499572777631699187669526035296752136335940866982188233906967924057273186580950476913560915487891057573172016697552684891582711303796134826352653528168011466166643914367491395901127788865215399359394625661501046297197849869279167144019837774584075305736968909273983482942707977696735639277907425590295432952306247359641958222803241110379075540914389831364184443833651737281571438614937523800238438111228982442924304854869017267117122679203005136488098463421142502312279761891795113244812335059883746688352838075546696189416753573897661508766515830392416468646932549068062894464307509500437317586150754801085845441894200294399316977188584040701440466963033681076455231117281826266992934535645373466228835755695451471979174666392626914266185787387995557323024118645167819331903962662510132126858672661240604086888717114038457850576719824232920575247298309744243078489502979213323420848030923814862858229018430135123387588484734804270780391821026875395939021309221275312783716193407394324281345058740814852565402834616069611051844967402808175553254412277886123191799147483098522915390028584096537894038717596402187960403970383916825022407840638926993588249851555734130651201198819130562918355024958387613861402896770282682731274737077787492557603439927041195454593590957167865641469525973441664800040849132577166607477602436615490170420694621999934633434314395517078111735573101228022047489047064536745553813646337961694096533138746930419684108455874573517055970088662586546012633766507715541651970410550105997645995322998943459664884969117066610786200586885476165503121890538512199952631126496056460943385796737220859996768095096832238494873513356501104398732214310691496737209863674710962018454471916260423186229681509226388994594831216765696846059549996276913069692059282373322604464935373247213655221881451899373421496514174291889476280032001645808155733433002254413849755885352501663580772604964999015405638237624567528286191679448682874368261575825863634757410318911795984038875507073872698919329870370802526685167185622698965147236601041011028125802223262700779439348878806208406533439133063025075758964163710192466659031966161245566047059227166458169250830482120231025041305030024011898006832930553652707683920418743933839219309092582631421833992123750459146260405417072628988401478344320832536291037067388758847477974667250085426779777148007430174047600159831519136479038627172100243320444342573629108963524216851596750447545740453301756387959456552936175563239578588436789121040494590010384877056374987019440870085622779394485428565768761670243992094456320547082556280991937659151214056584946783578953860250058368315936927738963805985137501815316547576808471551213723207378021183305010414111165544535095898716261113860491206669854932185543986044110139324307062043324453736064854764631982099566478484211510949880077019029003164520480948718821469061088567016325504089571883668144126332218218562280826696589842082979285516896232994014802624009564464043731532019726566389035767988052241339750350023168387746486711834549817626662890866209978548806565473095674864237580394004848787504342724410963167168770532856708077823353737031847598768062916419909432193003293581916617799765211101363774981585217401672452158440509023588618614476863038295066025238259554161602833143964641511666971124436544277499627392442557780256951209565011247560131429746468622096538312203915773201269849384539582147390143198200061247190210441149972060678756284548968407323272599932524072910137469001256081350249275794871368634200427065846194289981266206136677430473146289083268490291152852872020223102929080069405440782024496413524432428488245036369224070897851913025242469716227594886075225778067646759918722830024944965192583934077697666744323249582383234685995427054026969881903846997595681690938415373807995971535934836415646330220055079456939231446263423349977761685646533076415458460532179869805184338841801294584881283548404118483841603951854249912084992566686447472995466631683506123013946653211442440066489316353998383718403185190487268941040803376975879414437366687323325418583820852833831485484067136636204269857325969485172206416738312832359043851851694523014688248843689495012021432128065137978325242431752422350271391138212091566909638861509791928106951933162776748626841635207254803134844746219533629951384285035281105083906740125197651658359628748745854525757683786856006904374283848701994067824460665739842805976952953925412501400186347102296872593689771776553398356266726089073787241477627094282724657591787517181654886181693362284913289129378901627269714584167654676531165352593027609034507604821519079982890627461120202774683980231880403698945181338732338234635575043389057818318708528618892964148700736783426638377077869107700568705418383428767991657406920080083911234924967123920425419641355152592347644850169674017591467933727771839018654485572002284868569558086711287701783498449358110986572171295159643876771051575361160630128936335728836133416081439344976782114100496052518542291934175117241314927612917208803336701689353479022225772652497248464470556771068532287394725462178159024104783886818094780058327677966410555648847502316824115854097907060826702989720673268569196601608815759170017355096788349908561523686003615039761789015285213940832738185160004218551405825868612554222209270664875486862903242646063260401360981749202417893759095107566122199930208377373284374142469326326477765857337003465719738902704373285453974848344443717193943654867719434311274240843596343955505584833072728361096798597367658370123309128536165685842655642775822320310133762756905560571724986393843533085082978753727966840151671155019641736865278848641791316780952463064977007793315143904357453865686226877289119890800415394236668370400535231840460849166998364467700041725608700845137016240749682269461985969826515580687616904268228204341685982821801426874361054050082926181343616464163609183457810999279770858074910808680808999828877146459407627017670922328561972531346643847707934821692055214267814625627874115294031548111234926693023053121305298545175755042878107329994647875212905053398821870587017395482854813581335775379475647188537375917753749088981812010422576544486870555813963647852503644129343211338312768680611178826247370598196682922479815004776285955263713672514905346298440688160967475853604513644110480332080266772730958135107703967804596762921882604485461720811535474136277171886296332413640434744798897281947739114616966271860359966438381455378651932336869530867897836204385116401781168364578424080995636628285663809587826076592094796403012742188702908513650027233248534139732744370652177808662458494267308937612813415068752120720766439730165149653332521764481733052765436109080639523511000113762849905135676812986865201675182749462815510563867780723392630019741702538870876543489538208309224317732515467523838872958546830593550719963155624595252891727561331827166349060016199523797271593742424347916709711983163828887610178384678932018074093533971263028563906595301495164821726768930893824248300837205511101358618829105161592094714087081501492635233194840122987286717619179942241631798818988132424839429910378400882468958516043895767895578545323057183299385467949170351988730369450605238890581494551648750993859686346780982150692729608264175906451996926545000889163484937061389153116165478666518234977516635901756059903409760742305530934079147881549641160033522434026637953818965953782804976203444059144655132898692622473215587473280016191606743170420737514754143714673504279965437511550627297154032741748499781551642845435577272863638769181122334733835208036763350447479446405745688595671162111194464346805293228130032257624694549274456084912780111359666547927635175774906053821474389604412196562046639084113922049797675076885444383572604577580053695249686669115965992883161109237753837125982513599129797072623464003812636306867264951473141551402908631899859858718630604747024263613743243583611637693231965657555469033256965863757276192142979455077008039243382405094750460570470533031612472999830442194990539501760214855222932535453452722282661389624727179762862811825035895876674963747061560253705751935395774103690192207876105420187244563854685329753655888925373525092457308881096831803785319655523513311717628210459600627431973767063492880543682300293399163247118715941988698870843156439071798709371562761152762140440591704563718020429338382513392962019358021147715364469502223338105042112986911366936344535238433978495759735270001174900156103657480486741174694332190651942877430620261837804646710446882469371036900333844207971135929898558987493500968318525492543414498127449511084102803332827674899860735439743179398942273664983177188496174111732217718822100436610403946979022665619112502985550577892203278149389387941373025575673566256602916447945269363423127688503296140937789367235968909388168430692270975031363557092179765674017158743166376290177060828962022668021460879473285782163420252805852111243086024940219297492322293023586078214816911725038081163583153699174885279366571149988940131343168038012172877141213621800852594392217279823816509796656305183041713828357114181577483811947478226351514284891055421118801953114888292565349511709805773715995891714884564970983178040108062283462019058427354425123644684839320486562547236344587560885645976532369789879453657283975446017095499573188305460096408837749827366595926978529078477045692219388727673961337912647244653730438853511276695663973487379806201030939287431347439362334470639144393348890213299575042570193400337974717594149152160935912351200390809568592836271825689046124187461285128146726217178539156363893638425438821717392499330412940321975093919539007776356975277203376053055098051719923418267275097202126338196894664614368945488024118532775793917785396695191634318710015591647633957614212657305869001160945705715523797462967045831825976601328884018718740976171757939668487483868181513304261396910374362690236582403318384472386403087981995105721813535227332292337451888733470239772824521841304742314084338886326874343682834170914992226277616537767542790417858321922251995475931316796560614339911117507044589646505540650733319885500247708227708111689945104031863351350980640888622766701247893630806674670329557316404620559221880584295032321850278008065661228391577797311359923900082106129361054206553920194071445958136236068468837902406820411683949506535421832098895080198588251358695798856955397788534195407849985451984679866683656669676055788059725165269326995259855954649523475187453686687503996851823584251870968337459464842573643789982395401655165446776340637314474612079049964081675764400326691512829761115993582197605477518254714623254378348896244970624863182951097556652254719633125512328271640940771196415084714409399042895268606058672669455124502881482361304907326157896104216767118096150801549840366985820765159357326023158172393625100142102517969816310911962779419334299978561788206135128425213127880473802740093045770417468505149648891726541818443677390818196481420156738846533587908479233308632543742639748076543054275273195291971147267350688559607866485965931369674207823465789191649754220153055239292343583326088160767056397827329795830445058494201188099833547365325937487272407618147226415504611509580335029603631987310450709653610081539365031953843320898581491507174484619576201571731904582406270728847297872725650059115875823699732001745311593316558568622973420833733018396890576968660379620163977086552855123523706939436248039520528387620420460566442093144038307870909501542121036523180160700790064901291239805727342548203870074814808470641862651534421247062470956173545272854808766440314196125010940721600114395909571898942009243652826836362927259844749483736190811673582233941211739969490915023629072107444446828434211873891998778388654675982342099556261894457386460724571591933524951438759704277037255010112466565859903474833895913634249878325340169168037117362072147117349432381505200189548668987498608336661276674412371150409016524637055242898531827312537007505168869693064905850377955385202183229281392350602129341257878136594103061134704723055900958183080782954135424127385904590019209918910804548865644117638852121869210761843342134532735816173420917611355521986734599683345831298701073396694830903736306667312367972287347268450432124257448780403487346846628040946384499335390166152775378670394807772603121169469787209312771539859208613646489743794882068579625859023821255680770039945601629993600411971931653942432824739486422328375060570611088390636572896866839479181334070886396482963423897159039654846213382468054796399529968655431833126457048890179504824664114285474501298689021160204251078894602716275631468967499501240733480134364088316355575470565140086162307199294905287785534795645237864711313400325634084277627342538119620054126657122187612606484991673323539177999111019673524963636512298302145831623385920863951430437367583755445394708455786288201128562662341701582641037738507439409187529262679884434071389658555332402083637167904619917266818095155819046925236392169584849386442351839174470543534404494493994618413475179279853485715779995483668480682781168257868418652615534964083533428542912934405288894008975608652762574931793517329631139151180156490860092669652167160487475163611206160379280883395701719838998745534813935580822757174790092636995783506369546288161635270170121360826281011047182599987920359429669463507448244509997505937923996743946564408635359122862742811826109923244313420757779592246317798657957713024515643339028842461498676983305268141434497385925447963496322608233109673779925017949708254090923313816932521363930328364370596910157313380879838926353559562212688566561307770102899388905140746585738294977086400596599505821037989228291773148287172708408296988706915082112414320215782876518057237947605615745326404610795828026448144522065678478355483678962675168041861732945808269970974429761352083577127200740092572285731595723153753513894446883271567098063847677535479674461544950168994636652021137824229806218968322378625607517881360345256796165033444313162389574522492196218543346625262379590788224898188271219716825539152569568902539372292164410889352089024787629439566163960533388967599028184672699549387259944890820096774480679642012067955800763386268990145590405790091334116257988951978143166951262750758666344677796485034889474788577567268598731454854036621525179813245155139320889849371044853583124630327474994960390235046495378125765761897699664687819453363789569021051844797350093693724609385558860478298621687731394244850930295452356590063663722411474916800162456057330722100204651592932145348447899855868818575184904923758144249151796989529077073124805714601489733968559365443061928774572071473038693403511304640760840415090751327877493987304774541975465763945497549521651001960777065929995841087350782214452546212446949271993264500350030797698627000868353447772298798779880923808876978806136512242465854572389300739680813987732063638212164777188945766527212027931491367560004562316088806507815576841936035639652639547209408597553057715161487985711215688793902805335960985337676318265692021621802046122839611969729227240762001875971069821924207853515507615930525043142183989910527993171192377688865635147283155481450414726166326767297203076340362277282316565725652443497204043926353336518107699547963450230062174199029761129725638384064489797571879823389030123855301023932867307733839998217759206978242394231690303584854096170798383788313506351088090755790324460638410667586061859872842822239102811676976408203384746135364236549057362742542006208036701832342265245745244402499488047706645119688201239176187259232736327578762908988755792328962177887066663883589011156322279561097959136811650804410674410384886577207384333861686650924962896144422611576084864497666254259148353155408404283837965960539941845241199899896922044433439101916738223358586531659037834204874743954673573458450058247320052941071672687466977947964818120497902704135654886356342945057866792675514845225694003423203922738702447231394243594646389713868737396311449920429764072056782170470526842752790264144649222925210507383799691164001137289799474400441512374617990177131719232664304953558013991737875080708240937034986296214339647811295732386409392910205579724624082404450078508453025566044682876278342047421313604783430016429638922141863433983138851280438465318467544857917132646458689861387642991398907667679889238175566529019851497268661934079188497771618880892133961820674760725838905151980221804495812905224397556840077097238477569056418762689175995828313743824296562165725425781176652361838173280445721895008977850829880845054618313120921171416222667718367890955440323151565687681035567824682522386136088934595345763091402350182208786708001710224403915147030473500963578081565707310954605972121862141481233455848489429382099279976943445711186888529417914799317549386906827740268689723147397159000919945336926025778751680844842039719888640902981778362479870069718539170368209637895779308001134950632030556852059407082519409574218750256767994562300662359908948165719133502730822163479526022819251810621014031188080063215960193517732262240847129010594681552913172040440444297025853773790074125688381349187021723065717445505692218119578635789961840317089454533138584774154503462999934205229955227846041901841366435470709794327153240511964890182903498818367413180907091742931798265670370333215407976981805108022462976159823143152018817072394106175495322088289356581615850051057393222579952123922433208202687087990989715877136543995555751516630868382634641420251559975975284159616841830527023301767667525273172200818311779502973219309006052272342811929466332356880289364239377269880262189684712190370517434036032463093740383389485050846518946225356294784351133371926923550168213774387124293708749158768619125402515761590594120002299131549035800083416656392543767384205519146486006647479840555840629812931075158607225197259067231350928349807491520203011890954338805042100424976902361090774134390633710252907817163963830607324532419418625131465753607972644312291302760583394548227657159572721135036904409225486145763977138312424766041974646726035076281374065419312563201974444194728168814208496671354222861416560253368309715693705427883581629325252170694542556426384256912326281971483693574408132969479922488284818574474932927244576965041792702072695314955997381225362940995261599926376379519613901784419285153060702854809929887873724498880768808136860092716317989884194488858604828104050093367483672132915748775655365407583829794209219670834626396458837782151390284385147936669775003456605107884196084267832565767463809876312385516607088208284494073065483960881529804216954935962971852052667611970533633305721714068884152913932201887050360280056076800424189311304223610594649584490512014325394595140990065636968638282618456415451797820869075381013500133077949353990556760122647730715876332553803444716462259729191891491987695465305012621260445725883473024948830648898899155621177199291384822473096022986292652041581574311006420712442029881769559415419080831086517218968184095712814155601890968846232751353165818090545091979106367345563852573226271058551040273859346085198734950862871387244593400165671073765495277306205946372747125552561459058548482823387300852143256078129815490446290708041018502481533787772066358001936702006955987783829406746812034469070167745213589239813834134801661049327579761523511152179232025939618386988153350699859642981670778326951140036856250823112173370909822416279915576383961697930240687217190671335575798859471700291804717805842688221441853788826560738795145102187315181561384392637303526482463390892921894806952181444118959353718039196880339013983737416277474502409845204043610056456382669441011280135254986313353135744533421279211208577787202284437593578111090796916838157586144714849255873504489114552569059671947703262203486748568756405407827892654733273513163543320182753485807657129177023012822513759991954963274340702707285576761247382807978015174599982862275606621346692498253052361967513506283792443000638426943568605356792148281245583373015580100192315849443284638893620747606492440117953417730637273409820457417101448331767890823130429730751688563343368447475993725702983740920951882128775828506665118855273349779517257182228574639128748694537862373425961243008253538391856937542189687635421692070604442010478868126529093763023434101255895092463896723171198071583715005487048444641644619090003508587633907708954055676142407013102935185805282416090773487806844343310354258582746407860848499606951239668320882360822935090556858766118522344683536866433698976391833236667032003742018427119212017585074042661370509393829600552596096520817681578328243296763158485397087606480621089047103162357379816174520768730290041391837895145312306496476808919856616951480622334750713332875109819779584444210870326042048774709483596124486461215899795606475373921620858721209897482812844646149341053401872419667050639090741543761279416113389240056224923912285819830280335340371630239289318662910361438040402698647100862571246076842348164456167607428223094815765236393522019953162924971612256831799377585068525944654394413596436539836242575537427402364553143549627119191150902322217949224938749369086048023211424880931326783718540561877287798859534004705002318451526392105469007143035168094299302030259293099501100899900715194277224341563284297902570190496989862951708496425715570703703081016396522913458709466808083923155407674921949336164031799936605299391138173247204401636849797418701640068827270874770739014808479006603338492852800577907278879306796834494329521991674089448448968273011022292082287078424675403653367119300492322749415591529725296030474573556083878939148901494627673406740163436267368905968224702125666764483318864430855456574814989454172315610637501852304261997511365488758092574566789347035305183242184776418788541562016706748159863789323811318136790553812190444005240587732654104432418839360502811577789597343613585666322958629169934523214433296103188242222901638509087246471803277094180243538572234255480805310185380202222850784722455370319623605638060004693705654584129875210816899273714584873980188408132256017257143556287673977624702369306817491721201119567506031004061556568366735663814909004253173937247313457022182457533524709560607360071857426302431007635144584392647546659964517710803168899863395523864444527015611812903583837029143203010374562017092570876680633921695673571576053251121966025396858798779492966074398912555475444546276970783343967632905342251784897966727822138917113418918691714484399053814353373353067048539705877920994906381263277807784234665158798639693024852235406334893992660048078945688783168311615105368680421235227332391241268228286898913770022990705358333310981747878942366652866829131784970898322580508929779736869584678424730015169722386076979151543331920457913610170011339231017364926458775475263170581874736512487546545356314955378183165193381106734475498553450307828033806642062279821866187981230270251624308075302366428121253672840856155173860326338500611458226517632974475666628340787628154110876884532299808051291089946489232677033156083226327470261544862686434751851305872307681903864442672792818610463831051231816097422324139101304029199577676122689467699902634708575283976059296062970861433553240056247143098771012710523095931478241958807265886899604501653714423165693922623095859370429211593432667938235844303146488599009842725465253523919859604848837167449450141958231852091337607975066996245356484808701559580168411462425051473271008442359543624218045412696426634375619898860742537011100587349891306989194625247066514491487095012713878737624514189343926494207693077589471253962292030911638977850497994103279579364738582106451008340499207633161144037314494562600090459461107877809245757522296392891105563218316920274326511204495767644471633446008943150340689488516042051086815423789996276627808256812263284289972595304330327713462915790019877862504623751757840380059454806767365644785704725974881439895953535632330539709952296452169422693970515167072664337333382209663622705817249625728580366781784736715654065311465330412524878450586484289101646962022979769265278515059082595543701949736418095758142254089968029929311047409118180589342334005746431031621614472296407855653093372794515734051883647652063604280260969489567756534337265580662318581792976925986857426488699441378615395532105700664570321810531773131943065094691582044418832887501520742529926986832497501812179652196408974270710423730532851225956349303826730044870945123316521830994765720958598775579732868369559714898385902525209252870874459194093760462142696655167498527789831215377869907023038218892635510040837371785566854175938161477481500947065629131337922609179917247303761293311579029905280834212551342494082169336909439718880740369453183736161149117030486335420895441776773185696893437071697278452756753453530155792426511612130963942843420283748937442155610081933095314705883613200077790815042649645595839003792396181328148346130491322920897669818996173449825978026915031993048028237029788269608936799672634794915917516989937198357049609562542854008931510905029507058575951835212726014470953083868884545718845812999643534544204080998321204056890318237511874362862356197563837485827436358418133464764860220908755839502742951039472115948968638834153129954065988307287377554627684059370041131493290171259787862902576448227948027564543327064949395616093387072111604480948588763303196535750756105899925880536717874425278443358515243768659095269731159733206343814634659442190726768013994514598817608254614193820230571231138685918766830451343534941756606567857192496279657954584975121803511017059033731726807000364075108011801268036636570772782848435831888710927515039832577018713239646839045405964705215677456234895354164768124964221150933476161414056048012910187181171056154862433038780932671974881319791617489880757863072112440522452641210471409514464801916246251538304166305137542810470878859445711267717043958767907014747888575000538808895448638219973329853824361925750695724397049743449945064883420993774148841415229170510810208481020638349477402275578445530696937107594538245698096460265885288917850566118695531507616517917242689687773415417558614786236004648220562577078184371592749590981335892562022419916582274313387665920769985497802027532998153058217684418838548672600276691041968825626355142898024468561785097259896739051062739824515909336170259204916750159549252473850329855567422859676958652228596016604248288939296476898544801800090924963145683059641780747171020905731893659159609740198611782454065458386329904296460772760275902628201034542588945179909583737690619954075236893379492343437186692407934167416331522131363661689639786293822948469675589090924961081871841698152915308679264845664672914965932952751145277276563480013355779347592597991097360381260470479035517911514381969685637625072259637854871063026770022031052145801908475007249606793743681235829424547303148116023074632296392771913555902591235126836667716941393394608047188199878671852747726814625772441737198552552258175529882300751408524938086476210291055122769193021304416953388367759884758671061921647828560009662589679902618464686970480285480938842383440221235389816257214882006024523265526595078952800158467542134920590741394724724778446522111974050888675424758468986470875096048430999486977663115103810061732784639874419763360710334885757021295362457131767727847776158939281568608384644784643952603133380922142414289325492815336401208441812545730262124941919622677634889914485605014572607738190281117273889924214719204973765007866501526681234376082766730043997320674548772238803464718531524271362416553519986038197340673127100128269918884279611328975661684347478235594099980623443453271926218473483402719296936793802328615305125756816328209436363433917681364534423576300369091555307840184324047317671128635005867169550588658734933239818742724447267532712166045242426238157011192766652282309267736226672587565676989605269225596324795193720091835615960912049016145231199402462105731581462542154935493050193261533441657140345465348795567827359073624103411198256529821561136916375280916568378699039408175415267074157331363979523756394771684849203893474096385913355149664680012484539056445662595038371555963450662114812799461810959096783114060231321764477522265885177367119185398515834970514539165617085595898011985829043709943702231181928807237134345696622340395412234942932892164939721283974950133016496436593966650829970235247714133662627852565373857742017302720448676474458061285461845889921392737344373832198906131960586640677262621116646213023553739809502651276910639359621372429016256199313299698866261099578759950134058075367800114300106784010358240229400667183221510852861622686249099984430154018191949081940824760038934816056105108885332727071866794955486851669106931719094915643507911351548571183177453053624811370001232158345071210407852346546932482313022413012806413377390188751836491238876481127432559113821203407527022307902397618158093534564937275755002092893497982729995757442882963363534365176097216040336491520155002496344024297536917328680390965869683418141473496852240339818678032961632977372034412250457625121895578277220504517927563432032779143407975829300840617416546665111892307949954847262920409492746833710268166961610725138113206636760061950673619370538424368604195832095859661517762467327843425262571714458180624625980322298887901505169385765723763208074750756478663970790479744880407511524152784787688748158215501827853083397705904106349357598035947532099898382944167695267612573359711239898488383402520754113352814392541055296055036677676549083347914397867296284065370786239261322452135625814656222508986172329036612412220036518141421600199393208040811185939762056961991789342165189322790846903683007907918333952298911472267288961250779387618984250873516199304190866987169631857450649851664072255779391113554212921917904540112995133588737665711887965905994724868101516939163167412986937988213801950354362562530848796520030279846138540285737532889520432518172005046408705252690292986383392732880915179779841841865511112091129849629730265402244389960196287733393202538248867934387017285914239412594258061244627750277361547083821032190751882944692324958865149726741876903457846752932477414776972257086289439529973206580351926994518026881055302830004987635734688759923516825500062523468480133770140549860935452104870638030982478194228029336254885920217619438643096530360689754587721512948832435661498129227026842549289481897329541740487079400350519635945346488186704425132080608321637497432835112675841337698212055096071635556334638148045713932830849789225899295404199629586644945989637370927076311469405926783391762342332826367841986052686884514709026884467488668790394541015988948714146162265129988738911919376637254173421187028204291002671511720257258633803008741333497941306406815437554375357912655734057383999534240966297244192092827059640166806222170062171878535557618602195126693638772258356273248539686714655679220459673756538932770150226709644281958225523246808713305267722613828405587943271079124806921261216535324382293618154415006909528318452794705991072307864973941459023609074396209717591027140858642728020051427139322169196887657587379587631100188208260541832441090020852786073467866192829764375490476735939750957540759205579958015178348209286150888333904331082145647237692822515945476577258590875262123510849325545399388619328696042014977640356388885803221704880106318122673857090877754480608280527582689040440743524383292397105218918028760130561781366487578433440966996727332034050282393612197536152902291109718974643641940743820686376949199212787125961315822736075387629743536495425781687621721395363402179311834470990701216345099559918280609753513678576005032791165516525129278800644130084742163588398259243625621375787048344654497664650418997882995452767217792659127874271573672027577805196621401630782788346724732703523040354499215693867870735890211874279971480051904460815249750155098723940404661492283544806470032529334950357759975034463826185806460231985830341983161970117989974202986437450956593429409729181935032894538227385107508065358524844973058891033880016207149157579854135008430384833338374437363063914033398869907608453620063232298789314605518935539469035205378853798756487631002467280292111457823531842057549582161497488045892531746556267000231064217562607511115897345304457617553406035468144202031703801845875105286060444032957804183096971620829296395746254370653111115950845671544605820617039723373508222151002213458224597969936701810539704725122960122877151878209569186647677140563823651634573658475032048418104622903453164685325533969993880050500282259876256990944743723547011839747307729384429121156440713813511563280893800145288581110034081317409313186538119005965594182428971630672685017786635028671600546416148867021776675542329706990243243028938015405886298085847067907016239033142454458516467623498268582959467110704647458098233368664428538413365257173892451746477018998658562454338201298033700813404403107199880514898287553699184228743678739694725930203506156416500709278659257577546691149723651909347881264767365890967053102428849053277363090156179259891556436475843968334142187336394849614748112647841174438196009097949719562013035893958791160137100752473674663215546575139616333573579143181403929298384008382288437749224109025054391682278287057377828408863042864373251480075294312444895880652988800898200496240783280163539334512771873402995324638385471381669366511585747711318393705695454353740260068170597156823180290679255741770682850335003252363888342332843780391451188502955679329950915790689208864673435840708442571708250217702190701158234228655162692388361328550002668490199031681981823582169028859344081412641677265708971472820482151790002927039115917675450588892137581315313130871202988639887016539423418608724096925045026087102314544685569766188307359789244798460954383544133122467507792841102806806800834420060699850739871962984242004925899064142807339953606278355359672403643267500526509502918269170743505037422561520517397343130052869579511695399891876146152617498446591598535319519491974283950250458714584132995286558250206193341458326836694377409244573779606174441638151275828803771451204423022591119652910447887467357031704077491569844465940551708132315909323763135125523250375488140517094291348311728315230345417928137056103763582671836879132071776069734226226049836638169856362903838393929306024481614077385051555357769180126314507905063957307695873128247313942488787875742955889946697904002904011961064717976647436285777034499561066021398180848000624721105999340271972521244641004192717818798914423265239382600907627811519864645487129001805908865303794897945289166678374578508507535122924741699324217815127789375674186228655897459664248989736495627575652740956804259683172345412696183513020282951181411041606872533910401928293319317807489873527161612571881709974903377378234261735753268728565401132141428152726525063037160340037848891827515547496604976803322998531968046922753494539244808654897366674016132291348253398921779908834662377266776351555728540872388475331021346677433107534704351828703260819669230313072536200537860071157298120931101426636238152760145448238339495834869508876930117994717491999138957318688884673887345123264578751223257971099911377652397479482186120941895206534169768123848047231151535484560449660653634246695444931945124775421159032564882780734409862365173942082505792393784153644319199811095389054625988276043379869015355983110370983227134718672972273106449126393026123840831505218851552504473938535180797314592539079154085010081182294637506618061454037215621268011611392063579342108687531399384668802777579500589284419329684928874274032925515973273382967166045719207361245812608907472369635941918605113735190759615840966511057789936687774801207421401826539572603060195128315058148074018419678825918335185929786910227083662791906909866342504656482532367625792876649291174720678874056220696660670055981843730352569313600731697178079120695816483242948880001327700363386191387577992949648019757617342705145467159653891429896046338073904288106119845599857165266584993846614252904703188319885691276101941916919344410307259937403573769770723807587835320871667895314617582987302194777152144696209492315118670673677415202030341772984695806515276681248770255798601439330198489374350391227720189784695739977945988565136101703800721224027979656647490302739583697897564345094082939231382851845021096145660443044996893212822707191158782197363204083968321142681436746946773189804811506951797595057790831895568955665481999246936667358632033264254625185112792074385101117494258560819779716262160404862524583683456806495001355364461585499861178617522458137536506054677423003779851179991245456618308935681395449577385123924301446789874784912779333716299682685023241602588817752437863289398478219717813846787485864721192080361301286238791772443704548771707032061389413211049588953219434503706460356246043412737163672916616269480151499908397416766781849659743564395696386743415117358853286142136915015436242473271701604568443242370853320861664128249240828983888469918070019110842200252964186371058816582622768495161411321414900657227254017844512129830485669263043439823333330830382406261169949463042630994976572042672100845814605107214802385259998944904513225220729741648518571464840512225555891564345428525384685133577484241817078207268480397456949570444012503180920545843310647588572947154451445753951972110119102974040733216173546003862044014728967627544910308975371809011380892137459051730729047766238432529197741507006437345532199749281415885128084610977146911340553891344423970703042229685994140946842932454806136977500201105198430691347903535957681027948441085388295933277217002614153877088960029413363549158725028375587595202014497017510179016784495682977436360170981891623029981582275042571718967445571778858993396504776657624366101543011913706824905208324171652474331175133154459898116172373593049653894535125981844323211702903548689133437826843601819305494264304944173485252158461470625819798402074282118319691836322674752840644416746946589219034286731008451371924089382593946611530582544817018771991247028536585087123284559477334809735240839058497969853679385785956485245141725600256712170990532783537906981016767586478068270895040179600969158711245481711023556226787317830782778544591842314372909489698555749877090806224321304700520089791289247232243837964673281648599827351147401886607121303935231882774527603881977873256139296519807460836165876194873800049517411588606562707637345451119748576884701666601197987800674429849112209274535154584809637372871737688336997832656585413155813761027262842616942683167793050775393456717349936804145450252510167306412365084741074032770534090422538291835392258522967763022493824776532516315108930358948598205962966900026794742671742434454816320143954348092183512637523319614120758678345963986294841233340120094716987788362342131530778250484861192059266079095636081165558525702297666110500170056258795122733103673777104877405730039918376628427591632174577511715172237007594566674678287275553126945882624262724990888703436579085421168185938716417812269112826838723502494510805430300927565141276521303300102621148698316982785229684758083455210321042999456394917982410555403500488907242842291250626657335537608861142029263920746130512813609080417185737423972084734912496801157372388710565656978158844111959301214982221779764329948508998524608860762425964817892653342601469836912943335785461546521781605010982725931929380644905147424549902055940834356096474749204529057791940359390207541811320365226508433299980295164428703844543106218266623575011869931178723796819980586093749425250754647452108211642911197460299589100803211635552089708457851619243097885623657336662261269728739072064798750986991755249472208501446667286707863713451817034023656657874219186333469053723819708512944683191245490231511626827335388129865955171665260238775075225214133438759870377542704319159393178164281035931784354711187023505266862251840798296799957397488346910874689249544302867385811853818785793824164843834215467662891089945049960888985823997808672225221706967858998845500361847293913077826726024912635135101954163686609445794368920017987685087436126559342849215704108203385649458355979339971214624672548555659971156884304585254420602536874311343659747051836127309319077568578379361914857485291528940949166647172144713344996740098713680634742269502666933425808892191318929443549664807900284150618109587792841852199721107662529941272620827162030422454221870007645948142755337322525115377470514253073766204755538788034067199277413671310469772838265429935990117064098137215112070781492172753856812598031408874088381180226197437446811735603570020913283782820785597190403179037963601154763097237919018306966334218808259890242138495026133516455111702355363743731947511026591868927194334183115219021802895215234004939685161764742802150107227821430193856963157519431558131275641180272813424357356041277331895885853280111798448279313973191073424445309940608514115637524108342381794754085266245266500635011101813492927634250769105264257893506923943263190181379958928557486756302705088113992376785417806818151630304948832544135366316666413555108400438338071075734730659191042494512882040610788018022191894478767665406596238401119100275251686557222728530017680246633983347849180886459038838042887976381297171154113451372853695481572141644811162746561212739256637634495294533515883634296364057274017773061489338918515558165286457087666892214630315121588852876258762202933315145003352905492563876178509187039462685610515960660650703869033660728770332357079755508794654109518373907780994743461672586716350748708438091832583486061637667920736238527391239498317874758395307628118683429248852557394942746992036306601792505815898338855220083302489961038229301310737887810923153218134205419604290053371677624122145300990479425055026108469192338060220428343677023642211116506320127385590607868328141407139109356351446169198368188487289878112153914716868590590816706090787394081716872212540056277746125983116371717458806160138523126454018600625603753763588078990932858856304736036198386954871387450307566916410470120270921360224307018784344517994608821094174921514455453675048070699447550495395933630054920454150996467823262106808986042750112179361688892914235099253801482762341090749710240593641073715176614563380080596281579103484861531647661032989947984170864939235498537094673793568955606782602952476021811777744252404386650741179400527005732031773016046893540930098890816879902049478493069408388439575557612168774121169422866734113077989324657717418889001042402761292157644485642061254379882944372476091564018092772328497819055234819210345299563580945591739763202242786323553649982751117221084441043177290254761992249552819382638118422207232027862441298184953397299828476428519098635655667799795230513190936081603084033082906752692751227804983725053560909863671875524430303601026421137761180919776933210465137595630443362845619065979298246048721975481700515728082200473278441610633855896645106973590882761569134732745183719585744436528293095365659409517098389273531402358324106938651577553893633634056537117273362398909950241052969352121691899426634196349494539428457500492424402135483126656829769511456882356780003440924558413234068170789606795560902766747822766757363723884545602432556843556588541609578526341667701082389217720220545936372428796284889250849088166011608189282725076471651240056690392494614562450115728375523390117150988265864549255503123877424798738057055652985301795133688689180370979566426688278337013974829115119944137613891031789500977774944514336468154789213338926627827769304169384186220163205977673220719479270516594378915360172644192996945772081274737010352409268257963049587819066205663867098493230274845159685577637367285032569043329256280019987941936621460297175342070973897687904024529714081700423783755591357988059662330859987966875345219410493005751950205880837426286028192439400851130409980530377536168689247559861509813568445700638605656665039545391281227758084267650605029070190595749978740637808970787539101982152676341650821270225021487102330573990830535725313855150231827972742501599099556057441920163999474533476637405849571639498674071172274648883959405561550357118354868864021314915691392660135934510013381954517565340540501198355352672785944065319349567229784411687999160086755071825879275869045825506341835311308038444218363686290042960378835850109223328308975145376136100271863983455400884599607644100072744564337328766133301034862211418477880261898957242257495369650542263675056882505352460243046539288216717085384701632565129253072365518184343165698335076991489768100263143948240910776955043183630108449442539994932076050972529253037740455136185777460527049400919270603034222017783110622101281057806362713344946817115569048969873767690968018636904143149032262383947530773221137110896078917785936839447868690181200715529400359706411830342527997391948334557504732416362501266995376060695692408953741544191455718684034242619484876959630238902804826330291328442329963265710026339115886129774625290284513434057332248381838768555906245856247184164184253406490250611750593660033965428627150290630716557819159654991060619387086997609332193672666819643365375688511540956919167362923271683832838505562220139384350069723343763811491806127863552612279039747645427015965664193331761574416769686363232274067863416981320475776782347196991821723433740564115789628736328651837040275344054594127193121502053686714626103456720789131974511996782774367610528226888306762997676012118601569012162139228441299093277257143308305394343410197809695352610893249238956286027182838193979509102718133596735815919697290764826550775883718625458511027371537811704911890868981492015492868265529053542503274892400942002476977168345586717973593802662114181385052931859311918650648748312222584869079317911816851905523861800775041604336418555008026778548316150751913043652791097893168415201189875908341330179213344708864670571622872808018505950048919739602601237027900098349700500508632639508844542155897179102998696743364583191383511362937113667151986095643154668324921509176229581098668613381332290322475799454230005629115979270322896113278069172198485392614475045201511645797291372065147126584870567466292600774448104884104123140845346645944672755637068651239535501604109203613621489887630901923889792879913153547646817406120534041199778918400312273793059871895298653360497945339993428264631231851315679455462927751554814151593704053463307143782287582629058495324169217246941152402004892507980861121816614997031582727898619179296967426083470227066164617684345387640203928100981486558087505823666046420772008800710883468463015586831880333047038557606971872204503792813629196409699016558280762031662255997072350141866083553306889966560200471900347706108725418247922266754189060709787748552230172582636140623097507551606974924198219314366405618233886228121113900278765315622166272001085395863240404301723810190101607915262257411611959998236199824560971968156764750101361219001812749759598144329639341309302964008878868005673518856751343526831395287311233865931154959384846982818333237415719927428637000321468049591799849212819506129402393456203776462487064920407144062215274553438217436359804628463353466549330774986434811965959141967809619953400564889853699687368253329551575555625437414795497640310739055048307858354046684227899987689596310124673278442761167799639073632414312158945135967747696004570300369315046479693880171492828699251551486130841951571404262740624323356992786977313995648732047272702173264265011224796202780799257847794116286689615196584486868392103283822189266653488386314096599684608217243138737587959279034688432626828904547516390925673201741903281317274713218329098373697271221924057336136139220235842295938233269239259961805521532998357719802612101288982632406618940109504486194457819957688586450169064784939613320470011742994214499044586413776560651295239530478415274018002201984523179284711801610568608086796685338175799426523369565250528219275803973686611036498326681418270962689807893843882136033777246620656095938197103557857328895431168236527176699434112823659007356672865449741976085103139727853498353316715523810242961294959767550460651775860084682606238009614390029653850086771945907599276629402270722840053583257157194449936710178692225801242872483316686377751591084982131542883343052898402412618727681080898021667493354801268214791144975954334028135393610164286832690029115009024050238949767605615863203466219423625449904323192570795940020275964145119540758649835809338011749585470228137132122723063778350406923445670485880804086808801889046422550789838587102134182122199105775103013049960541385872291825194870291264344366239979902752713091588294560714149183587026373367641764312936676349656824423379431963003461352384774497022972678257807844955846242715305876541290242109744524236814454304785114751705334723701027787162590348578230604295835113553755936536651917421235186498372054430673361043374852750420625202302431066838703683523905847372462253181892822678146363122154308801149592187206784900540351893023053313647790566925577475390423098585937878016063617556984120753014777869705396182119103603498777901194835514579197853975315145910616633636123505208888111104095844311283813488622164346590168091843334524973819503992838080771966884505276904090029319481588012360703721446281171939435698644881901344460203378351798247475252295131411427364414621389187017827364982603921217984453237908190144273077203625376845032350171012014491892017222234037546257921666553617217373066188930930683219656895342350738725337317542359595259113881477478870152261827353828800556853316926832616496817666734439141937988485086103412933459606834846702703144868264123170175012936253505607014249773111841345333325912713806375340847827459385936925175454920129314501734991614736363801814812254700751495021952923884727704933563479778819426257756560888104667518106010913302496859246624257919787312548770179856532269484427254822457174764499615134487944566401285015643033348359984136601969129548079955210527831545260927440494911393978506817355080651825953338387783684063842964769151042728071246718120620105927139953637082943362592328765560750742536044861780960433508748453280195387809210067197148557041045712888371721178697505359259336238486060367402857595609294002978983254650886641006013655713805118129523755149710681480984611991816172946734414553407138486991707400699398097171645957300360567351801558485279828800775982463740094021858126050329820316734156653560214716497541190406354871295253674724878176954204599749829480576029912924677005111810339105432553670137721198758018779154206726747714087248422011072617212523392828482116370049138634481483545622176573524808476551417842750938954327396580234155060869721916081279016356579111749997743351080283678874027522436698883947157285384524744141459902854344751120573508525941371670995892267301255682063647509769348802599671716586995914545980187821706359095822965072998240992579841729773581168150393487482883141211687974026700272820403724711749078579785847242140631245574276175006119676788881275723434152583575440733831988623861385144100783091952209456418102300364985627599973408365495397806978595059226289406486327024180441788095922290825123838050370541367249685056055567283521751512595802810306980422919375931131570569787896019136804038999683160098329264374136946112356529252915075153044349728588422583490254112008945618731740107874935047386443335257904620459342568207037263380153216414154136933457574223612242571005926385696043453046241682098420245341497621825035087431283567808810903767857951199880341555684492928100663410193476672466323424249204036280066808248660986714721553701756425173205034590720160863191323602832685969132051665895500539740203560423747282635634104362737260345998996543508318618591291977167735543183968953135123958604980509155994522802507419847700333796569513039671114240790466825719954587734758587721806348848777792813504938028753822769922938829541296747199860823066682631647905092447011416285589040926832349499911339420188379374889239222307239040329819390520846799444095015895578262764515580162603002011742857505200712132641351502555462365861477104488618089173220482509579943244174895228155806374105709700401318784894812143568932050387735679409909506341903359758355793288671750367305238597763774759744735087756446237609773767412606255318866657758994617491377771179993093929083877401568162119194241750298182478632039182876819483743615891018762494181069602629091896975186472340952816478101585150109254399621609285725431381825326356355508099026264022639250485487489993012281922036572746390150789047370963903376119960809021496775698725208431015337920132142735434954633130912616864542074179921824710866724734193676154663927875558347428380455266641162050729857831273896812216891627369327064521487140793941098389739133048380328161561815160625650592351904669764507959033602197603808495692454685190605817199746854325774293977022763532489872799971616193001247249044376471516342025192318393514284665716396012630755367255386917072155043587313465695031206549079085025684776337287279557244723222956326340939105566354092889176012709214327991943793867724667644188728294735055489337325367690921959217859907503479650552055155747284520584742572290692038608364747405038160756579923078008252062381310281474330311833749651741142192615479471590924637092068630702017347804084682063816423464160142815173030054146759418680544296167090199111148223467814116875921846228734897287154397676952821097749450980778384103135796592783878310221259115594811349178833366398285444482562324260510840866133463645605074446535352054876307899778774562772595944377357431788611839962891183063406894654785937131313611621013793029548618466320909607925517832419600612798261924168746488571627191598277319127078570241667584198868618916429002838086574232873704129805852157721943897498902902456162082081151888615276554146772122532152501143497961514990129945417633874650114827089478454503938797025557902049225166530339688828980054184253971244855552337483623461934061746127481986175334905727841085888568968745640855580563764636062832225653342619210427622917738203641025525303868027825355101847742765325005774133631316749160770338614023204598432528424441987259206167128362479163089541578702716602670886770806296756850422029341195776671073702451143941834007433026501336154114600659944071035901622434593673766443798563400708414893154709685280579901555670554163713751703305704461603375874008037217809241721577901498946869465835361029127458493788612041645370117510212275938313363423543801084314523644716914485160724651869134149971836691546911489255071419284023359706746167112115424277967305286566261882331750516519158930831418138148536988594629763773446293691010682810931993237093691453873223946191214275124150613128003562101754298343162044789732900558920635613019540170203853751463442237332010033177276415029432549366270262133867056504881276952578825052369942814132812011298640294347483732971990263771325317507938438856903622701440857031833778621583205801952531785453097524700106315400735868949131661009355167363625443699799488924893565597851889249728733971587901805445283282363124152859027547272524889298805580582442895597922836372844962076807906628861874791334301510236497150500879329359511677506608250531863346460697442678956757679188599147739317749424477609238077797788770950726251186052258417212845488702091701407870610512489029264726676830717258033576889520883796010572625243091188048922145659737357919600342510785998571885056071916188532236942086059857564939277443685029974023998835350969087170228735468639020228741338729253078530127769612298655750210717827758333984763943128468723695629830329433622661834891285079938913139182243154497042524026427429591794902627712941675249498904977807257460157862997331667573723975998038587102031144760123509293868326591539867418456086317010259499018704045461820945092576004724783222655752485585661123149834904631953832098693368116540354049651132560748297958494912979314835150412521997963006556056983020324540674472411499904210160474116299229021581640976790109444589672833840676989607463108001886216904539070511799218889937836927416402237198710584527233552220044014820734249780333799132838957638480806611838253413289915984825929329708164339395966288015656406071508442051133149231498469614202015462446972376855894516070199733937632671884876046270052744756288205559538388993404704163972229164772928983694781881190495815096631272457278413771227016176674196252602928607303484064052731107876462532563982648530376477319125204545997719247180033401303719323578370560113781256396697426614098357041586998999173694347074077149345445799043478672208008410137357299583461211317226516563756885276171653975723398045038990304889934118051228053636412809565871987088211100543226818802368395117033305620166279011225269170509424636334185365056448828845088797380184472481461950569289178589195234132942730265796900800296360857235592457285673713913675180405194478789127531200888616588951296291095822050593403341118400287752744540755900461117072874309216344006990568834425700843654579376771864681344980332741488327974649135198027597711926198598823191965526973052353697700011310160989801700798441321318039416882693098387709874697805499021470100389007572898746182439377968531955385054674024118139250858557038122076081689711441695984513514956149432247885653696006834995386483856574278933357247704160497103102809641978358590173813323136165219083530525711672995281512525392413543396073185776573442825838416087640281967675936845594100170303555429936252229593329204669742885361629364282972870681166366115807173579702363418504636323173644339699067782978085360969536555141061357120077982386148562739497934834425757001358258203335063509135711826715997624410550763024144252820936588436278158738892938726435853112327685371415492521648793155032895612256297148121474493689868540983906743622971747021425944284262861901733339459763167135664565187019571939751455805199918064084258640580347840211783037736031722910774615664629257138419929418503386214934782840443417019722961642180434507367797145556983585241945386337313579183140079565566262348973184758710236311888487568734523664717010883061784711506486821998720543838761249685844043477224724572455115815608490749667468944910991667720261065350790946019956416678452672572663403629011310450951116455973147823103340088478553394818183247161734322483541677248295543448200759216612093905221190961637425516428255195176525295766560262768500735712318641422363633374036195279741062787183645731618389804612642190294140158313590174546239910980346386113618900073879133151844799161502399611655624724481369546239160196536687927459987137008168288333447709212495562844017433996708339725453333358969538254214619013445374506958974615632866620826329875337665309288345917070624811476291724805073372756432864442994709920455686201443021488808517166205543106774457381051305370059897997792545023281310980498619747116077279632274433239738895050371973750057935093702157599293931807929204310823937464764963179269848596507541864374569133566490076701266500858484941909327950316395883025852336740613192649511812868646664681533637554871178209278074186536545241411774149167234619533461969709809529805459797065728751817148177581905907066237517132374207095562330749789732287439171259040978048366730137655366856393765561966146190532471882853204304949835981664351502332129717792620673405148529286117826911907489397733446147753488305709100293020367225016121089932308513937701628038366035500969220150185923186307403320439268157100554817424024309303717788226319478409848665883567551009921848450430061404989716666311188897517891105025482653017161407453345102956492325492867190120668188279904536015167862098721561710476390457359728860593236458718264544641311135829458440874122377773582623563810518659559333365629563850721440783685239630929261258628392118577521375118532623467190637925496358512236261966106898778729840123781573456998629561511283387516973767758633140011264182314303608415592525677285021275173572643620120255321585925052729406960486785342828365222284924293741087020865492414280045740630079138307132259999246203395227028473855106039515361135168752551930464523922100205940054962886303324328455281502198964185835034861353864718588774676465082661309454018669751519378237394929966778195361885507046920006568134304119175828399082469523758409625002935835602109152895600983504867568419475553251833669153729000620065187263778654578302653685980244361797331927249764522577537380562951906503366517332990215510894397173609115390336352702718537139800866078139798729962343207336652765866858419865461077515591343650484283383645525377028655231260354176373442066142854711763369582421585447932784253534244555775197092689946842782175424288724547551690311258871270249005000719480344864743246383587698808281429508557388656539343985538520332647442082241956338716647318960973719620490148348097107561972588831362654598130585038585268732924184154928738993367850504568634253742561865559406571664637542830032894968770051849771096770587553474189490612268804474940860208225017603265139063757420694061828961128418604555850793476022676829913648063687746823228557251646045553307502895461820824782289385613639629703329513145767349985233123388361767346030188416065859070536706240636097863328948351812016655166487894323337334195600841845899773449369034978267456735702821207216924994629162425293474713345803043779816551553013349249880432240188586025036174177717777479153682100084878877778779005316044425900377083495833601688935912361409296855137660466281817049917586460519212100410430271782416984289266933202600478050201310905087503538999759718371131118176754792760521569152863904237173747450055443919104684377072240078061305486455056834950658627090497865894010226050894889459436470131466131863147026661667900772160882770543411724852518651832730213912567843367870603096111470199196985435697154919734778264022450739240423100165147775161264151161439740274303554976964734869923958581118870738535348658305474430291093008084041745085873526666996138965437476442104398476220504803579418928822606059622316883051389154960579999442515829656359465796113464196678214944237134395374546004701512914019645138999825517753666417361796486022091254477803575309219402940781455702589134710966908000533245273149793923514813726765326861221970705938193149464706466710997941827897775805616407677791719376824227809992892670080078468371272090608126655824549788725788486294883682089286127063196937458568314205222261541191600966144882873989301898446636181986262255531816194590136078321168660037056635375104062956615622219746018429270539729653124083770239440184776657189449650714451245802604340506295950253402548181355089485451139765869907623533498752543571396743189729707317154276284915799489675139527918103201895101027010388520428092725153828871792517538885635946285790421586566535002919004406087616281813048552771760841319382559233868828087990952620239968041452779997052265992616989886930949081149678396234702058432066171151216597691285581698616674908818519134010399926642607518264746320241164756812306024750958754021937531571007385711989416070300587578717165207030100090776191654747002912887711971832882910471591212985088101945259135767610085554155689915342747953307969018263143127769009407590714411400353822609286253387281902661307864608898585522629336087740742207424001118799840986732007647882359122622237462680082627489563122484137991854058924103856194218870610377437091564684028286892366590417827860778403187220593540409963487678653529638061381892867643239893418416782935935251624910455047562472659283187014799965463136293570518558691750477552328540619156470005700490896950346320887654510177719438756775038480362864431096143141851534505461301115653542827062933567961774751950001238021390185456089176876693396303379572460937702013779834929236600223872637443507928323517541015160215168086563408997210699785086560085054374422252658000146165926910442714877210387134549749356709254062875565345001445153393982013578976851995169158826578503029018928149379688148458803530243632060351494267165130087260751516188079038456395886346690354471828274647895866759112475847338881469162411168173969287440581103870249100438456988138757019330968683637533712994668320317114940396132043118174141863814549548361871799632107131856452594794407493938976475000989292646120320619473443633049567163730711604849006977250509408077719636883589723552328251811879644722676014743918048319627040255070727240201652334048531197623373499696641559389297298682178082902782279074335775069031810353297224931914377131074883626266642539491098879519524972638237619526676108443567562350077746699706011174330192892189343531229986473984656561480278370651986725590584865767268353229061009060769086327320352702962277970499645153279017612073595156524607231714659455227283964427430956799988144488613464483653422375307553408098597870065718869116789762556569937215321783294162690083952494361691660963670872699704547192257351773487757722696573899912792253952605708253311093348371610114594533848897729657609792123391982970615352728706465076276598134149595141731421076030524420615761990943968730294814783833570294604588857839965580524724400704929925746041955390128606496240881730402829374193221526757458777068799634643157038894032886186950267496544986392509621565216990448677676507599045701307425614092219726668017726806314364026472909154626901151490346418921123437698555141889904746321083150770539909999892554833348502039875591299895626737753971993931980945981018363107767139502474920019490145998255084015149190095689799920866713833980635876130348797979372539055688910480197601609372816478901031825494533761453861440493247408555232089877879236833129415251673515361530732848843641358635923795122860711269877780433800910126493921762390281180049531066466501692421496855874381305526113646274762638730097506616719661772268537477304767592222147683127802630752727302461988251696200839938642888937576478636629330846074611717910940365863772072326391677799223434693056458633492436557734013114192683213837037086322526918922881443149251709815436446965355311491270470404440595081692005810703801992677987849577278813774333848124943192112267066923866461594559544670022076834975877643065232194716420009607713057756877941473729135970051954332227069696429464797887800951600829927585215699833241215535590241427098819904343053443973059337519234674694428041614278845528668940463490890630618770026002137601973711461630843711622304904642262451305516517956091985427949647743170418168976955174836597714599874192680826504072504021901805157489013425994388031867184700916234634361533558964156429580087473964422737990057008100397451804100233061874690158369723692739323018411530119237685743873154859152914803443037845827865961685671410451593539187044950076702070950205442109349570447310581109025565775043979541192607156797184524097033704093912085225777978018685662673200008428114538199585233504440597553203991750989241188864567904890423489672736306738654129610563594906035414748360101226614126598020556912611623748241180190807367547222700935852140736365172370414210120948849522302417881800325508677266303201345266709319282374048533808006227821689549450395924247942022955633863792576572040240898840166478926428218794884310188737956254379320229561020446757419756705269121054780352069833805219175365354023867419266695250963611314344757065540485248934355670491109590560917744220689617232168402660026806711345778193033591581667650337654986488829327298392908913621762249403448316064494557838315927585710464367018049050413786100628229746760572355793269326182137680742171735627047649151586907982460494648642801260380925885594633760026347811300817588149086763247168550932333674961271253784978730197055722927524267951186338438554094625059462101397025186639999052206831378021782541896834214128800201624810706194418280695962289823736006433753911392013421163909235218698650390319021489543902123143937598540958359790846143842780222755250142955777492701999797215889538654136608835354845921663911740213884489302910889776382972870125108021619284522313317147285324195005033782044841308372076396517499146949011905625914592490020256564993784420013507317223349485114510409496726268162544571769569687765451572943599753061971712452140794500640155101926692620904102691774276555460159670685812144404027836443089056224256708428993109371728666399515788195915813396114717417186183880230417001269450999183788549873555402323974611080757169350526384843847087656256045000058124349625435538943858199921875350487269278736339164467413077880706689841247070373713205151576010598332305699069419040226733745493408309002817429153433716623921449028126683999634488739287421377168331947971622832859302251270981672364900723652399256277239776817534119050308156560973819549982969389444294976251037261704799073983731999557620396536631927262534886145315215424536108217203418947953448326679658783235950742849797063408322648747403836765450991695527053987114236524687054911163755565533305709311358951609577518826861531812776202746140060930515522806040625068225654536560851757400655774445184523295275005132855327999428734274068753535910904387245787272201171068716274786549267429491784972954412163930288516548546209823992879474470061527158783833854576484658370061363716548902255843799638009711530408957588668478009594517805259618560022815352441481970240333495056264599324761941063748684399381918000045157574361218822354880247286360140687674843176557174872492964507634870003943712564370711946833086491559813931034116185559661146210214684147150243137081984650241556373496564362098850885093909408401043568401016667161537241721201864239998791259830491771453005164015946881468575506327312500098106830981403478890007738777995917490720170970372406446095921340249072662758182807503056855973991917744725660052559325801836980196689075584694258718803587022318969039884640993660275021184084253646077246491829412599537738652405484436227867018865489650447498192485903957695639994570512118959779147794520310913698275964635739435640305412688935650207160537471983999668609048638827170953300677695756966592812920398398264695719273020250939208942706625632176002349401683008978744647241585856831355094285503670698612235391915611773450584469154723370432007929568310702361786980578482551328306783480015475021116718757046981876187642285079103489465459304072457120731567577789231597881869153758177988483392398709525851821232010712139019356798482090404828781909335541040571376918712574817412633850272682920091921174627187880015430922135661318710529161549155861445422912638488726986025314497991277978315460282190926796557653280203994634568852780575557285407195044306738815212798046546920539051963204987083560848371948000099021244493164582766706306084053042521777831163835645443386957330456828080750035649269388139631593624614391903278058614329318548532783366584693321414504049703154904574910229293667085866503184275150750785942463857911339952924803403822993384161754344074440355972369760543985590408141001816775165291165663939010919219682194099927703741581335097713344938892257581756761817740713490262077330778467066351197665211782561107623448958281672759580420172264296100570867571270952535340578919940819768511469461677316363125016109888132197203778600486443486639588894437449004126411393640869729555759816705929341681193087838612231791892689763687989714468891979829503665652862493366907311292881870378170212887555282823878873690703223363229155365923948972123559785234893943417445496005299922207280999675390710265929561792304439817075093172199777757441874707178599694860754580457574584073527266603303297616725916801404461949971592217107817983825518995719700558501688773315580540200036458233375827757422140380288919093612736376415287732455229941153589352682267994307987381872256894845393787643543786894102992917313212010950921491894942908049990520429209518585134750681234036523065661657867693546861433159942849469487959254855813863429251398242956841524238857177589677027066923772280760143576709906003715813102704291798051038987884134766368569411655559146618610378850978998410813475771331988085387681089814116738679794604119121675663556332709025275997367124693439218369292927603624944158778211151540486764324306773613074980124019538081540899274073746065414696453181742847113415893865462143895464214697925512283707290129169468876721092799433729429202260907463500226986527239767433353263462534938203511206366260225242895386826556061100655616933589472940092826727613822534841923012022330869890996691580245883452977808998924614928839007383463043700279074956225600821429795127392562558643649726575769945281464132397297529113514582599764217795896132091746348231885341922073525064189078819685380591194664194473336438724539490275274310434794376186338038252943361343192692967421177197764385456503064399743624508865661922799799125211405610814702768938710108781830997076135185612084614395244844944093046217495478784564345379670488067188380853632800028459669139029085814343014834242997660013432815101629993722930315626096148783588902575590466578632440816638760986916479904308279336638586956180786110662111434853256884122031561110812968698391523018342680572497947414654444479592837620591371419363595152349652705714937847599446919139616560591417141054949918995640311333336335678586674808141966092428627773060560741609912362174158983705174845817933565306049528466371127733426836775689171283461247565955883447947277391415619875535331607659397400323857545592235725251726336699366799538361949156744726553622021241585590524430232994502423631297624793928056970783155456034212044175461554351511034479319613666842597415243883483011115390339979714395766671882465497278037720361093512698183321954263564889964813686257486251455099655208903038469332658529715326856325954075340514967405138877516667882280117826204842033805395428694988274602749766511523021735056540439439094844839232742992243888248705646759201990340694231024309741054148832764781796662666429903885514054593135052333110740636605646224954705624070693943489587417986855641415495097623733234356259369036556230163820157853415730381854382618450434489967906647310559594680353190761557342858121835334524431220112882082380196812415184739152203495976325751240251718873950462039031335693787258065258886805265002598539699669586376048873611215901817416433390901406231197846125878462831250798284624752754472416008271745247004797740747223083503132156606773663690569561718971947976074792073358358700196100650743121065626308132619274057222684648244166334860609153922111441836078123668254148112425214729364618820358160526343925658186966426008652076302989686889845202778882039862415897605670462070437103901959587815115862224804318790757440065323395660761815685427857064534954243659405249997339765280006339200162993806684110836780769803043646598447985120250204394386445162323695289341286686215695565075840142665996721677848624535690035427349143624448574984049323280007418833400040170376751973246526361946425176349041216536720321415010208403744476072755850950215254280649580916949931374607840441053873129753629527661081923911902351556628599666557650155696202982612967648679314038910259533271438478674736202646942399553090615490231931344283912028023462652603473943481458775685529640236002315194505752008666010304496541427386226515285798284566466045900730971494864338214331905173246006671687434528779742703246526590263548512174245140444584006044262622887804123196416683778375749894913017398886868069332668794524974889571567884719475663316508865994479380310889423821280220954365990152214892811287708769661883872604245053320996457748719834868350492566397470344964940767774714590689954860591455704259538926448883113791339097884433226000715448438118392823075323182149589971515313114859098179278747560179911987498017188533853167024584306013988312984143385539136378355830014521579356538158861544464840280981790308497550568217569978591515024456742163382780315318909384869856349647318522350387354372755595237538549120134240887976970175424909278155510713180586407648739907232507613453600721664408935525594656687788785834590752793100992610196052390088390971784189127941493114206980844992340752318794615484412047920476942147855762437343720084256115607335809842432436588015987761463168126199092680180599456693104247460104991457305235410926516488187088179225802172593685246580134342441534571757193504366977667516585110003048519069181203550221347124031230880573227660736271432612738442328132576260659421863745255549187034765416590647994030485917659600720637061444050895001790571509080995167675260149271730222900640033754260216866956048159332958782842720140992026917474984302158484065022008279494355627398936206385038025631236663647480840934208778443754742211295024996259427030818161238694872734643301146592330470364881956752268908324408365662977109943477620878106251818682311169832516672074100498146114442059367211162923508336537146204858368191719577451010664694979405109201398642422294700852911641388684679588704085932916088512377900546881574751555324350109549396387442270508126026444867578613035493929639746651534169110145359954034962307254818584010330197252310035850923362786258690436494291111345606353568711459100567755359674191990824300244126689118881400596602344643952457719394375734292612317493149845212382642593082702198659979850498593863113674133499670110252784889609770690498099517169342428481800818858467646738090418566887631405804971252526936046137369947207141215385097777646232714586302425634369134755028906095018692403983931954830534517720023270568230158760571773240159149810916143464936273969533171839952092890830025539608589212357307832977230558585242844392502875355619899005326242704199057162977622292218804646219990286238118622635081210920795214664685842707771192368865572371721078461313196018071387344928227462910719773065593392214168069807390446108953309731680813717209181605975035055731533478973557992803702811542587440536607812273112663356291832415976234159862242873475981829301159180798225481851455723293978561610377796475679493331147440353298833824124319961337369741117266168199718736999500065702918073768336148168582354218268828155205713306723749686005259370300320597750264252539525612463936380936306053948260291020793608246635098141308048528575132858237227433528662327944230504371311868897438938911951322435194970452366983257146626856203352643805462266522358296886986543918388989705548789937390117602140095090746307593355745236713878799092351747740896917053642989316061338467259926277396887838932978043388627840280127729997301106987624243864453206928716339177061054987199481327644738019683250494220377217107564482069996510953454810729527409445011615154515790481168130141544058388881030576326649526874396692278012106585733545319624751451120174183899474946043987450544365107554799791300824910779087102340047949905008670137335042428325632995478861221365701058971993608969253060086753381028763087659906086731651785338579946685981258543843105146066619017326423578019241935404799354459655285965175683960072182872468137147475895717240061970213933103615892078577945230744652132723939547409007848869646013372771687586860451754985789287364724141515176191774024125332946860811112017016551054053789803497048100885616953991626362688703027024830634909623728358343740238088870025289951499953369484736141773580320485804983231538563440790397018135270852541246725702592486231229336699764622008230420820232112641285406195312829078679792449609729798805682561179834719044208626934244986989831944786542200441196618860284143200992470621182908541176527212846857152221166894438964413451247057228901778150589519488869893444835375786279171370280512400853879120234659509373719250926549237316244696683821626971281984297919597545031993360307019424181910556499695829159963978950794178109386527430274252153523448908915206379405285005763244062117253251485925790049041722455645701413012014615004539034446637630366149017068620449608054733327082377435754503168598894011406012126553415590138799645011946394290171372269784688267883215456935904985573012686516209856786144103929565526857998258064214414405049032156030553871286269494169156019369828665604544665781714506453923552054689064425618641773388893353954448346335730261844634785759820301775877945195389637473483479220463396275296229238514810104429481282352673870996217492138005265015659611843325093162827841080975916596580881292511359367105707215451080047811759836315516928674450405769102897235374467075212894148807692647460295136871985037381543121849761266704628559730166712306608063287747051965061942907235296674294681542176720867989381268762191793481604853768862927705974758053528387177273468634057275186178028706805876684278195070474389587192566442087365481822563850693516115519302843752218351800618092942345595386258874344513758338733206934852100143524767366171210523573955238898241275840249559323808824617578038192296330921314709779162805923645895692686882504545866105387739858534363785030789646092431065204904162109333092980975199927690528801331484576278120466104470271841509814687761932526960156520928642075129614007509773150847634286530712971820211782299290600605737474767116407279184234869379473128018401121807206100658919089263295519592837359248480790769323412703784779503428066255352356238207684587090808966623465957542809453054831709572808657395811326852897302406781361277935903095046643420925166439124530084485945156070973541659066249827178854303176806303278711551587041476282473987617310570499586710568863941606916514228396135437439529718429285269602809657595249317475299503954635893681720496805534641280643466232470860990653312690138647965664179824258232903369929993588983123275543820170047485288369025054849934541137159092869295883346265974065242785555233462867557019481642235394331806717948605781771310709414073868042358119586862605965812501157093324654013144760456634489857271101205243217047416010964868866881884857377374076714434956586138685319924884812303063535544414870342393596919449198738051424740118939921645937006579952056346725612389779245184933622735621828876811466928204451920930166579910218755706474914501187908380832769815167045297800725307523373104830254366204325854568479532356638203133250119892315634019213375253588276153044168882320879297148822639463269904948817205539194249037339505343000267674489762238471943927388519168278932919862380332765083629454092943116011574887847465884095968523257817134640823401812033414746641605088316940212905650476697240088106514102447485163396500899121666250339489995038610004704667049822678984799496943620979109150184380887645264539492511399028526728047613640525135942362062514672006342627082831133176996394056884145765660715860387602358141470304525194064907131849650528091728940189412894174830286170529535307891347221298785028891392773747601277610719494039999104958676909402422629618493425417108533531465655134633844975814476642096968551117265099619976438982605840877522289853957258028193662248449659119450831472493372537017604614354700753919642167350487811041831379349486739970676142513592331061787047159617729896130921264275579609838080878919828986066181377420170941480557618683254702528219696004389799854803320621327628698740210607348319061855138252740190931299853532844977102420821035724543384453805812929590609727076944759781176216036052216224122148897101408698216971123205870079728197502492249771195301486219809705505755371491571322374472532860553228574353430881328531203470774573994045825789894869043018830721711899571009436025620667968261706911605486310389123621667046477490034967686935227795485106698232685636105263761763910074300701922209631205065842590711728445189447593198661789494994233471199625787657195778138727664293279903302370439993965789258755517351404413020025076571344705146314814540039169618873890107511746768594019017498022946994014128744974441786550073174658765056950862732965413092867377312319371286327168044101306557913778378429786115189517965368106067815182601938902749727635299131216114977424323051328853708330158768296924891315293301339186360927283618728107145951024240282770747416106275333290615339046982950805090180200717422618886265086964479073098458524424212155683577509555153324599185992130597074318578029136486502785713587648333118823568925453777552178307886021568619020716454721333870206997224536923957481920607320090528421018780011899713942287926359592704070110686027177893377823091408483093793500508815638066736103965728669444649511598834823561020782632977310998676118998637749916868841688079385122123944920775842828156492024458761444073529764145326081051568155331961477628218917436358257759183547550814205939670156560853056463456610355385999961344483117331141602294198319376261274959224827866869688791333046794367008851831805642676441822152541491100475653004550645249958187937362987295969256787223374993978364766881158675299492503161244096149848505914489822633369604112665396744502239227749197997533602039147097085626037393664545310422455924376292793927380003253772459362550301072755829690260142306384546837427375004962107520774178687104007777677521070959034666943020874925641865053387751428969431941811842299979457405873941623161265413171061426549294148880469354693150933398295039040136595558220839742614068205741089095966877465344005993541123825064152646377710228505332853791248665527207555928709522572994635852797601657927521150242410723932330368914439122323663701124093069624956848445466370204337121291928115157067179147145452533431385611363265326236344521086637612379812143480132893019968578799174606072090736228456787569710734461029046582590142931277541708123424547561591586519726129825053583166786797010758306842124391937905106227876266001108690464249854247979934077779693015197033615093978729463775861191261381520848420756835334088077873359945539006007511828717527595516743888677494723162578949608724999501701988742005340049693502588419672648111044334250279397027665494645270342480552867947939794468404518137866347020753032974163054181646415922587593610863082709162013135266402184877540198404953356372854153378910257929140308413411291431259501672465827703939972501563715208128077389751394430218225102891261343933812474080409943872875314105162005333240085405015339573846449512677921355700087759021028051561765991978652751276426921695589398005154455901273762208006493461160826842498705061215770665434851038143295776702406835203563940808612653643516832158632636520871289721958245427837009012321667040840958400521181642694481520712624562201919954546807793111786980893490270420159183615464356963092142663998110051143346538735089104244088911330275227586288144237926631804821740281916268475993306814084496307069418040786072342970539469321049508204236937427225182055521743596040195963957298394123617723133606829056131475735794930683668506540680836444800722031494747308696599139158668784865138773923578410232359552726629856416826361710818107779708026991623407496462061370742008407994511183784448746255238154895510920790360454500337751264092055675189195407172042052320556420954455719513473233713456601704301271734768471230045906473074747571938551752024442269052844531969284925926372736703820066639989068176233711718312561333865663217144300069082366213659020250084810212823137126132809245288095410670666812910883603740214130236054857733708465976871835248813524280047096119175258139586837926809824351179727178459949729886309838481450198105702975338901551200023251752089472629784586010208509049065003694769652640581158110042227808737627385068528516955246302952693453524619872316185298801903324193909779051895016980593311097593961053236274064355560052401281679978316742941026107029032919887720126997990251254252785979056501096190175758481275802337523122337107035676836948533132939014855288345258797172353740412541625747211747337365100460716286022140847168292641729458967407021331795267036459626177566048000106664633138175829557474206365288450366431524209855121219259345197166480128924205975689563028283683472959558717505320297377275915287300629036900207774696256075851156848408763901540655414552599206137886656330975420669008578932118639563583100367902358984915562996781139761428624784685827239957620540632455286795021807038071053370013447857931648657796040337421158536840850833023462109366759204254258732230693211768200379016948286803730100060791594789989939893948181722832579645082607424605214166464319832455036564554444315982444703171615654557376988659907582138039822085141596456384025306919167549880136406206246264084615588004104292148067086366683703381669257774441208859886518358302025195090863264946122602289453851955911856302890852248704234450604007658400958216081651810631187723790450189581328369200239455739137871622384274925069358284590667976834700370193146706162552274735502310865831128672804343778457677775817748211090903166906276687615595605228053621587551641505950787412282198301488519278464500617763923137926681284192003998602349476688371672342031162115382129431942230360126601692246934412454923041210348513197824579627298832391908166521206824982892252912830162851666171167836853452706153690480581045850562208748365939682506160691593713815064824823812351160442256458036122200480310637058806405753142733557352803675073021100508931537429053599710913475686444893261560789398146784856854618324681508474391605005610802583945111741563605732946692616977563383563560611314058697805027337248974911066552635277040438090796237344939927323777576906803829655513351996001148488010958927857447611853194092680209032599434772567120197125773061427079221020263122984722551409895693915201078093247806748380837440480264140436073392401877289187809926101509610301473475011682646904220819349943299170446109944612520137740191893347695537188384979308581583952042797558134992689294954008656246679108713677898428220299992732415706785314607621712592674785818847365746739916917828024050755997555602922739800916467615678412455744466192367227540468019020630129892126685283757112601556056097485646409107026519056977709155423204747789815581398764622459882717450338535408094581458735846525988633055295502412088513260625557402866088825521127287214286409432232440548466719655191380739460034484087899032407495774065284520016282143698588721379145432578956231208081591322238349828577141218577290507817941128765793764731722871929057646931541894000766188533954289473088974408232486470709666018419042317716014720423985614118301123020494254911564874307095908588419306095866825107574321159493423808688214537815386550294105857937064809692692301255832038900119270723875609914334714937093019383402484945503085655202225147696427596344858837560778958722699929247231839338012385660418531408874447542060408398190586978298824713611197380763490217345944755132811561603192461308329141963721252511851780216170443504590059550272230274903062130328622072442908057759645668961218117650154274490638845268223589024134023188340415890440375663563991331933184699742062772597299501997006657005032958986831478858243264972725768765404402535460617409141720273127892911639138075901100936757137290372290900332773956059092616816482693526517101693172396222269141457922874772234087887563920116413243177540363876697594147182089908710094754959474067425478352639581634133052542651183877657164511873628716105820639375903675756147153091229132609825726104005743723430908448856900709022396655656375741223212157907878979630620301753630667868362520299287699825265994966352423910515521829096265450415331607785259858333746176707792542292610199629244818885473997770136386125528701433477756383101639954741186980477432695263807906906811070224078734617855463834523350405707723033340776815288334387287449042160115793788976095685815790924447926933604202616905950122673019339291256858840958089533094181149245236271593362151830424619031000284820726988320415052511795272044303849603723889536014269448569537389654826025585299813220423857352017036645713952068888397987732194576441169121122031036260446258131380583326854440767363114541044269522212600591172690885740756282456639115027177754231821574392546105010902839433142470712928320409047558206540532721216146968932139329102669234763143505358695568603744497587470566112878657329693113280029782021937308734389296828763985763073322731720613715448388864617494872711703790868709968737515643304986918502036890446640773359025098704480998249961963195152070453650814532080651056752831735400943170741108151894288507089519487415447452567293720792278815385933615996568306194470653616283763858616668712462002732833702263615547054443878748849927333752063476451288838611653848275473194106601499183278643896875850873704474179510604796800114438139140180688060678347662998869407127837556028000406663416504656990857236476262369447395481845159199059237198177107264392696974506679933331454964033885392080051580118057560653515969759566107170222199614729482214425827484183460513135229226752902517206922174152914465382771844399324174353539046985056274416058304575703873126114676663700021318566485161545393598665882546170088145970673399449034091123657981231243848043969466837995556235544628200281388565671118142145913307246651866150740885114895851730745000688765613087101855560195726777964190967952239106323951912012498577029893076312029111857725685316974270312842258823412817312169198800533503794360323056016730221778909498171631196067077502991966145848705143049190895268811901284974458357281843174475849608848638762071006837155882239846748342722309055607365834876459303007493608549120945687076524388575389435908122224903496497687915790875319363531454866822696901489325772140802605021593547844126161687460403631662784786745053892234224825775605165642387050729842272502391109891164541925012868670348192511444880264627725797367174404557343246256903716427451672080521814650937885783828725298146112409796128381052866459706647134149930232081861525530242787812553066207101274599306711283007992246176519415853095924612522050057778345410516882846490607767092177473385444067431011794428060849333811184407840173963772471710724405084176114429155095344761945755795763356841081886944278838966144435237052631731117190110727703683701072636978850101483789261821056164202471295685150934993393779171821467361370400680083717632989431806416446605786381142279992256793493934264427470241731518614437089253422299081167636517300992518669964019343454362377628046016864141992648275291043154029173812263693828565725580955163297708526203942391276996663542553738494463886912098130674234464192447948083277045070700854990447395312691393027037699417700892955918654394467416663542548535132049516881024196219569016659330044309493817829869567359386359714416001837469047656260367132130046962460329215361411632269861177052928503247735578613677811373259423338769304397738045844352982377312358661615396002682033730759386730758782342882403313405760441829681972473552424757203748826253250066059131361445178257714027352021707103204480252206442724958474909920030988387087547579483643220670426617277491058321335182046297064108900785771355919633704468280958402461469124784825653489570789348913934152992421000421874207335149408835707170208027277856041234986284566689177527109681363048042228001057974768944801278002132092099546738009432538721222905058658192034224472610002996592232400122463186440060222993258338087598053350782425929466899555651078077720248225217107515897824979285629371236286850228404848197463321308013692140815716084078111983324477311073289262060516458955917569936450510713852097200596793536603595871585217578006599996363199772555645849644183641018186642516164224071200601962685835265898328557117575950952554791108527649700374161716908563259470481213855680332455490156045068126372770567216155264390324377228501497683714694018874939402353408818463192227699530871876896591484462670426498231576008140490856507505797435645649694687203087723505924782720791984519450045171106894797968196952212676834226050672729147312123755715459259348291075782739763971015968645736148131471335914760735410439230664088256535032406445726545249439325391911634772069378923750766514357290481663550243529145144689114895931030048317174764066032535267660990716234986652805854790634767761794076309645935989275500199075004962330785862980489844095190660248637411202588049712878708403307692207133773013398530355099603623668682405671654262272752209813352864858912935250394252754970262966084692348860235460316988977196722473954442272274528088919267584543706162514420637938963713525540430439000324716096644100126050395026199447168693842958757094229941232315595052352281441508283817472381921924500545882561760621914461189103253728699058596746578174766815625695885042662388011600371581704809390029032610031354046720390241041570404764921533224389804268658452854850063845137012917508276769654189250233206365308772371910282404280317014156596506368534904698183825709968554778228112600483650475048418217428118485599673277089384237119915702098834016018598543121768762308951309047034405135444865391497668640044409735050306667667572382191130228971826556581568290500315250777716674439191632258643840794519780448443245597882210611714436227679090998518699837261404084931251432551822966745986539694574581537151740653945590515750152760421284736056371819369756936954174514917689926927716791505484132872430910149308579049594812366965010151071364519968778408991796623912955899797902677494909420753995205731661339163641060950546075214928011381495178378127645497312234930940541842096640035122959435038898779938681614824151334835725528209681093884488731734699328933737052563660454480037707390468216403272247342527262393674561159654279624181750458243498442315826119553777989705369656110923664732304160658515688289885300367348315431758565336037568642823865584054869369645984734353549669283633863500328103950310098876065755959938022409913243925033238094338288459923735779859454667075190083650770751004399846994445390148239661623160271632888458416118926076581478107992852802318535427469877363633461674751797807546242329219378044043276649186631650776976341140664536812947801614559365030619249392946019960649534592280171148022064016939630257116838933486396697519504383459563585732432317558493930113278404588578392608962394960230482579432542523308784404573294127528725071354163321653610871658978225741639932916909256958102261448441770025286995666081833036335414906977182456901905518366989743240424046636374616376772153671406897549697400762941366427072842704066141796891446531127808548059899805884718212083001500348039545191075233231212395159952233548974880517084714632798499592503235041634447802977952563295087229902293523804067316314412775950838128274470913698614007068059109021183930783411502373153992027731293224192138368560170275901731182954170586430956344728239036616989453687924173102642291932525767875244185707848063714624035511272662360105421017429663478032777392047241080191176277780166247217278506307395598486214258389498157406630414003428618478247606215319447184843174246094489596625871580248782422999576933543515422562046401159495028897488760856762137371443150596528789267968267203012622322398754648811712193921367644483555115103848212764133170605078257060439073164146883471535284694874914498230494873961751715114713614532120924561691450696364827506663338749374958544742721503880741593004121818330962027413298112017392512294033245513761814761699136439831811195496397474262180290011892557285546117182269382596789852604106800447917410810674386989421580427701950317489809108001270693820675182815284866880728068117572904329758854591646056998325713546365263792483980217110677439093961098162681180054773709033982217574412757271000970196512398741109280378621860416280124739197118140090161935579927348916182431518427750386508692033199764772655733919892967100752294224689235156935297626287354312655553468173694660320543726306078658449744550888613361844417845111609810769538532125396866630997939385037699896194511369339487345442874794953156868624082260034222921836531097131421740724423362355935339136301510225161616609504448725409752787338528450048209743162807482201017007326442622569928713528695899955813454759666833863849737408564132150677421752473118464221728969181548036945076630469462742373723861094283430040139532363810472750963476791070458767004812774934668296391312718612394259307259539384099639602595811928346588626351336564513258358900354608341121076561123419509316102119468098707379365885688331595276978824213693720252224430715623613531749941910461168850396331137414314119676269312902380700419116646235324553633307763672841441733671247572421885946219805505811125105259596830354057905562877832389717503032055772253665816309114127716360374551542542952744467213836291040150337036630397508445836802129350165547643266119325501256959306149337393063103766743147936278473258756589937066475588541282878671312834637164546832460486178300553307154381234111576536471751687347050582006102554522183554090608872392771907167000835444074641782562383598334107652648983762905473905222794584098572092112580180961972516981007393313086575567272611252552976808622962818316540319878169009094076994682125392228619740487915471786521620694886349338572003913428610256284103186922494581611722736886249848858525540078717959376985945799320139054314413877422339597698662883261066945921533655868893540403640266903410333624566509916585273156203679523374834691312509292080535975866203647605023536257075467430863611056315195550173966832550712406964783141341580380706245847064441150123924394146589751767814866205354669497144728198623087121709574776107139094458458502813684104779009238561580477125503890602681553875966205662504785517649481597900768542393510308381713660027787435361550950330648368489057226187847503723686803437574422817109233205309685199734635200403427619620196212739848379286784760174085561466511020312092172845868554751247061303043507954324355799624312632451251065267282963554528629660111981248498516011052931430748192224764896996071416405784808440719679203769663400974185663913266474658503966516568463458976830387781997302939522612585168531343821749550041839727016798630045216548368429353009437213480949816580201024598802654475980792796153789700876585906321679761128718075917219645424156623968201046928713491393358283612704349058690733666506499509384353765733216882874128351476332246408406977300968541339370435401539695452013246701499010492846791899677182593752022399158937932627523978467776577697302732121936307303588333782003455780221571570053395920049090636968887086109314497923855612762825452658304583193115043268612464546448595454699003409468121409899637981164612309832865568526727248562908638843595296513465883768772649451452542092140381506823585770204225891529679748956632806077422359098314709186914872169743474946913822410274738174760237824742023116605146266808840069145418356076245537273556586708200505051423435791337681009485098967980103721212461821706003070143452241628998042958085009705767884303278502563975514364925069191754533842239233107552020519569280552186085845948972155405670340911820259789739305189971935427651668954398019709983000207736317327317111678619581827708333562555701651969981094872130901649505710177742889205789899760944109787400148596630901111929413062440543006265800822862436359168942696725756809192758458280268459649021746797635889444290779448257179009901986424834736935082664379215425407352921689442599066204450358027216406531514811047281305791262630393140379033533306056248436521347489520452107041883106239572403686207626913351151826893942504876849141820263299475283058567228662573396174568692037992283036886646409696779009198506736519909864315584213588240284160410147182180849892122732822033523210481858227658377485147633833179895545893236222602667955823165995185083432981147324998146068648909650599817905415082579142564059876226951014803851909575090071965297564889484256789625945614651222569514055146237668143558577779261826554995313394576909436970330904875307580702334142378756401129050442539870060572556866814933677748389599704331250996749699237733723581325567398575970291844862769637010016034490589650311688261975110537484017864483783064368911959468541674578802678319809237344025102488303700584809049066637865276413274976053221867001645806267277102262697740012927447036511780891305148414202926362373309863089266535849066055674450841471149103965812409956443065365891875613085423993097498958978501680602648557381277156683547851487362528134447143786515252777042824704428797493335571585753863393134585703871508542428360632971526930454026821233171527901758854969496260914921587008311014926823335945586400288901933431160484121781863983770297200053646225529727391704679125222148423386779310767507714640316149177059317305861521721478371884335167424209542413776980427106617176083832534596780707024673884582553608388191506805881913734749310930295671429916764227909625668014443541276949487020130123714499029142237135235893397911224531136445110483210986904179506314757142701980631903995653495345662735427075087120478791683163378606046319984299914014945302442696861459836352765051750383389851722470759426054889397660762381483637071344835991426288005118122346308563190367166714308614131659884660016289931080028981347744724391993307423235416187310791442934145365689405866568747650575302093446618688372668209075522202151905674351381612607314637957885654443028368239664723566049678302572510229414310973437236099322718151399756355655198750488154645929643500273116354465600566148035803107488883836463499532231549970962453422149022522819606558418743579982924031248058676902043791136060125827324181553355499297442296752754318578695215428511352051952513732296571786775837573427162039044157889453661161184136776183615413097921665648564605587853930170063546228157669572342348509904728258724091648964155073466928987252062426182486051923122913760696936209310082357811011838543412787430265252704683127244788872252663325043329821448202496367397699081972474805090561952329505598579952690165501891583482674002579565508092584781021604964764765753515981851705394116420593705038771796189685890505290785114543244087693462888099888296522032480966441752002268225050604813475464062047729653921796185397915600054218308375549869110987074269826401056611036474155277587445179164487415704110614209614727409434654267503240641931287535967830616995513812567471101848045056845948794416341199942330169324915146070264185548205147515984190740941788105601649600801896465535493964534006991478215027648196556251230119080140644603151150524467456109979206218926580406160722758440114977750339927287324089577627450240254945351635488976763918662516630051069884259594724266793999802334525199229953783578770253859448465816667013259495454754792040740697224443217621822889369574771139203600344971527756762961141885859335049097973429089618365387866619510599767433590263421212542259025113923312002478299272363798420036770593359208817590947594301954995193975752179511884901639418092302722883505108384207499996728122334366525235346444895392117035930981013954980947701519534068839458133420630523783423348550752183666024315543476303602024252383754665974177669513713770958327463905142674174027461300902838964347023536998287638920851458419711002354315278187918568073306058201687450528813210268383804382228405018611536579372892823768115930102212240599363601349652337065783154086981227987331716327835208499768861223390054062842949821928579025054626018886481387649839915597915718032325270139801892364469641642484676162129867046329181360042427064902092509952590501664655292368836408846969455693392607169399511331096496077384524459409398839815989697679165360459932877333029641459487763009828454607331553338554593492500907860352427859588344349924962861454066129310321054519339117389926236442526713379338440490044693322248713004809483944646322216251012727827262377377706438664297376202237076426203426562527958031341265118384054320068523686617649714618192645868285740914940423123191902825929613498453543406422883512676194752594455042015049123731795553783370436712035758083965072618943847862836008219374640066100009125364435104189345158154080735492011037707724740693745713003101478833955125837331947608779105659252412718730806774524761055484037369119878357893939218353874537518037670648917847059025290856543457367705186031480705906825126949092420197911696801427913764628232950844176489181809345106753063307990571022493676337466859454878604151630341557748199245721694217722745143816845083680598954130082423853856833585874365551679546230818827612467499690316254277698988463069284297430890917787572313691813990013287560474965140811065809252030929513931345139862782812923499558875936804154685156018094900926941499435704852059623762090734947273992073261294450343251584813248906569191743534108243169865013329332749091203169989392186089154265337391336850316209238276910019431576982628717023819840253233955169652417794454608015723656673372935271469853129657510580754904114981713079053913752890342693037120442130193803820102046385476573554900090818201967616231069339501190014041665129176888043174692492147559511490873015431125317566125508050561435449303830042780964037218825082082029424516458924304348506289660830126287738541099306375985812845402619469423231455364122684184430620210725352585983745733158419094079960434824883246477913470161130921073526507214953525614963310483424949680627991103932501537457607562928190450401117809275299677095601223071759309665663668640634482370210226490421611198647851213881781514710810249716669923859240298088837891078405980470452398458603995350250716158976916722994935197077344373582262498215292715084332520503091916847137171317216824256035899620090094916844684513509598015835077903103723867762604565251343386181032746521207970590437857794293684047803603084686277031131625120039368931985837254863744258892538034689623072685887189180940888579968949791056107677550388658239928281535164191830265017770665222915653647096761282093610631410242834862496755573972999655060547594108919136093609330239954350525286017228047820088467268699442800584102062314452737184095290246100761968687888859663390949367688164732794041807276973626635507512986650384512033060645653257565353461495156053547495410265609082886069299526575299998865652458044962711325628143072300396065142962405714721349805025470132039043734374184622553581540440763974266697072549605501070112327384026823284801655351319333896238698124763747395591946521282018743704582171036825842622455516579885159645142906287039278765167784322225368641721931674491597608697386242845943204032788212576304971724564934756534653911817680846763765895475566618465862927275801355786905651841565943518070423514822699695787207934450630877116371432628694871010915478847033331065227020735947013469899547343034071879165561588117073109487189728680737706139904568671605972493638803757783055568618987713951392817906611682268820736257839167098116501129466588366346607297559316695314919095046135157877422624156376877008148190046049832553649042658322173198825996674729510749355773455401792813619644412301323121446094007340248063343741799719913302207264688709162995993475550008365347968973209963936243666724057273070784172318804466724983262491685201884321521665791911249077713583937350963878075602397028698124622412717508089327867074225547323669834600012064397090944099791017130896551340493813992821390146820367714374925240680519705485997330409670225521113779263427461204687415466408482108919081723581776345647745470170347436393075984097336630395503049745984326135248527689433471809217013517942632989353312878310297557489909259034240019994732884621791579109544183601851115711095756867742374856591648363191448982246554721022189503475249025849983675345198767949804048157343086017946280631037707679015717288038661794889576865335157828130533693371134657928057270202775134385353301347296597696744810373565203389562780530391046393382327394412412948670584284908153254103483001653374301648491269515782361526124715832651451166038488591647699963896045761081252134991572234833794579571528033076891823399992393344570504742452892794768035704836112052746181148253658817255567598399399941165640645783964019931656228246601122041587270100233593276040241166447410720678225837747853219344272469435754921276304155210818014890043790328555590364401769108957365037083619183060769728772455689363436350232475394432872633818121752048022104732409050413302980403098528979610952974465960246682565627564852673233316189146801522402997081231990572699809072642941870632763157804578433017582664813903727163874201857917872450959265212665139984572859135649691743461407849793195654316096773866788581881608356805155405262213404729300383230793460411406402804008697480098127317519565928969299479284776571419227675967279930867676314656640795392599157292045130241279019897625500364190552268036854553250404207940064914635203776058760441493131337118930851443021914510438497557925713997056318706211301372276439262284803616281705792187440510653008855601288750694629405675006052740239741551812875775597954173527874663436362123241173295463864423540805522103185422890243258334671036981545077076198411735673530881912146864753274009794110188491311393482113012679968401400109337188659558750568208104255748092078455783572470884233415441960423274346400961443510108048159510612126322752372358318948601581230623405734937263930522564659112986321083214844439050861957010397734773934586976242995733851237244437453464592008198388927602626767626284670095635135736290026169870925161070783153852501335183925199742709276095803626806874039568755275083525649139788584333439910429869250005253699410371348207380355638662025526555556963850457763427772965269690844660914401975123842085397897097142298195028083811757714277754168098031873500413519755795740133689889955757655236863304007992577936662190759895278635946009588451685703972981440933968848010831419983782731574896650627014471067424161255049273623888520147011117122581577190004482170066889254644184276918348053961134515923303799021700005006669636128502347462984270780926703672896315405102524005764279070525183871219094041805412614905424361511944755125757333810138359966042369484692904615240340930608044318904840996796730069381128231418229291632503310586557840094059724793199589007917733264629287433483160782000025524347425568203784115903141589992557573984966371977446156267251895948097117828456515486699928427661326407083194336858936688677009840920189390786166681312575056544694676288626385855382463943617685718384407922289973758378705254889838229771136250509755094611605434178314890641426747937793925877420222912334126328730496381546407322483572052849066655666094703310316668563832648280568213949892305761285708278240943098973856284643099368389207158925065405548399971605474256525287208451313010400093719109443108042614781318292955322956490590796888178975990978289241174487096126089621950049377505127882216543905320055027574580815430616927155735102883424338782183122437754684566016975935075755393325279334959940884201388665266995389697168254475992443800222859900008840238206438976170040413504419105803078154895828642089570275796572933352532927166368238105401442920324845735735568842357857922654502744718583955893466674016210669597961301960520711762429209861936804295164681028907478548833172603138008648596674110684957505915101420960734528720881629294840528522235208832117984541147522964597214463064260197719129313958218254005893686045765996413476189957990515983405820031376517339845065634339852526840333001994858345834919759022902921981161536301336252897970070508403670289833849566525543686942169065170818419808648808015937279672116298494040513182118901620606602496741734660914953530662897025693642996462679466559431159873442390474412475702867374003746373302230074597919171475851988060890762700980626653255900731300458097795405592334806541183269604635346936438940917680373481975500481264660489519731603364543278745464537057640787897917547803541994714965393020350136819566331972950886963283288217031076392046230828187776870284594942981967764128215951395955850109640710756128384375651643351711908897844648640298006553780677147929197773290969610296751790028811003125994223568947564199525993192133475261636137389689112358960798530504765565839451962423323235361498427288073293820175152214601865001749537666745942763320822257577772629269138954152202765104455216017934897448449167928632531919052555123405304274158908904764242727319279130379322861614314236276244391754871184928999219900006963308107199333143508937155791263909500272256748402902690802288289935301846625436032434233531810624110032268224142936803858377524733000033229776287928452212181857250472123346449065163582904610222060516393343231548182725410335889083988943086749116131715387927336565568492199384731529770708128072239181595904704901122096466097628129897713495586129691737065996702719449085206509106439322178945335865357019915576230532823824730291125550053204062530471948128949260768438334188317520191151593141222452621302906284574118814869169281679051441847990821463648849711311201479020519249999372625212503766143962575701300257037899909050365180436692044674053743454338796598983555069837717817404376070791082722524063418688345959939883198597888007720374550171839909803776976437235577704105717873128978515486401768122209459881062737458353915014451066329555469900381308208826062436117257788177651930663108460962337612152693525887285326333676889428334804318316266815840951935827064855133974435983728767309903661181150588108650359128302052840746685448409475801994861186942294574841799043453259021537541920525000090873150482930320872708225498169225661904980828219809922982433940197820669507626772094234268163734334779813336965567564213358410233853556636977016114302848688963257773111664557805418159946914379129176661032626522604495309838348728081054908942658288539486183577405011232253473362654671900511248757557417351798055348581520992873211449992650258178377345172789623960358083687210146864595212980701633694177749011600651577949892148998067387814805501937617167805609859362967512983816811581951603810960132072194292017746416183984291305828680923785563996661159884677115592652224253026598626197215198534017970447675051294277281191748709886456716384867753822404561277055613679013553276065347542184288131913251256122644491820349101670072403423682803128436667476553859108746123932539899573787725586196157615150480242522507984034700920357383875770931049785086898655516958592334154971454336151353213438032399123180600116836615508527986101566222069054786678743973351214928992839308023929942705350521575946318323364951715355918450709230157982692926211456026730552874155360387297449520585238579507709709812425345473469635586667463157241634859508856175688553923560067198069203407898960161742210385566074396259421571602639704456402949405428710536372203919574608178089869284238014380153570631292520243118784156755544348951355521354314932392425480686717321324418151332337041385023616589005078360875588116143880477982190612314357906743879030017587558217963919436792246592516686404774147055672800029816336633191004079693577435810804971781740236307733253519547057558839288462544054826008130406800964422882941469357400947931136477328918250267150626426089346929847687657036057015422191025109462744674889364827650159684233097853687861818747954620760612782124656499034935604238890950956024734739521964376417796146489788867375550714968747099409166554577346381926790303151141787272747190752921814885449523011775340615699371610993317840938337340130048661449147622137800301003506709497034519073266726833575488270936482491988828322218278699180791794316712414192496100586186035009889520481875035775420694186250881416058122270540224480500071190190305947107193067507639666228755100313808741029611245295763902077166739026020488719016212989063555288087307154099647317120808077089749686663250162158904627128659139970764184845601959815642507222481032799344524552358551623966188113869642830793849414218028169647427452116036783600105494915146363212308715190574633517591681829825725781653567932332530461319866262182908781820869447352417562429952696788410178517123848403821785471060726646440586237557087403500390325951528551552861162810317658208248123193576638285237027890804111994857700381605313393602290219955292000371690871888273882283055850906630706796347060139979010080333962822440679790610801474135680953712124527562830424868781822205464535779386311036613382559655227108174744182617089040993165534750937423115521888547151616743910553848936880337819960378275762148706697674406822504234632538144136534336914653839384096358329921091515576916718422547821000297431789789942858984856420862326149584924211404127821481197541307438479766555547081337763240116599733564449404594966711652780900415839173926708514335364283087054499833706821839954165766326690917365750110773925722817037115165618602540591873428782638891238790444417383144873841428829203278126262187351504397903463644785080694728941095973952225441042494850291136730698946831220629973376308298782028785398017493801246570646864898085891730126276649953868317887850122867863608480352510910813485367198071532392229011417135711870775890047542416440397652328820048958927799126333662386371683177984986988674780150200646143123598082875746290834792652990539948569598259916071602633582461478388789148385411088477370032333731805829911422638969802901067836193544875455657358220151203777558978845017534376641506802767826613063122789758091729691613933883278727092350203343111899023591228352760802404263008913208659748965027688597874442525771605690386355737991321584243360290537519575460506213763816199179187799904433162629008129404832193047302793961286706924695056245280508330538409480254771827161357077153062352121574599347703042705168250649908321435233317213855710715298648501285781256097472009404168276244057584898819708284956737727573547598204150499034420677617743697747994137164045828447166886316519149725701157009432771999142358737605096676612892690514010934690674624165808207792932014963632072083957914292911739843601190056364256400361553838650482961730137186959471790764718672044141182645165612540048809428200826900993010576830166573139977899318724627179596049285494838861492706003197022837049628379443904446766349544625448980433286738765034564255058555404846442908487467736233776379222628917291892813034031888559682043145676074540013862172855267543033725762702608026482905007896865331482915515941025048675802884034604115639029201226419502104026157838897826646271040143064083272890092681009593347195522561388978241276129258580840528232963382071692342924383334539277490973743184557044740556052089583695348595619262459904097215856099361040532124317833571681499246350777844489379063115350221878393555795239120291472790802578696311858563412152407307605644064548473461725050697734559017380060919261930406685671588031207142599013702568641991402040646631054001050306682350734399516996150467343601815414497874271648339099404869256892866309264288196375912864457752683306667238625145791610734201495401598893399402791272386203897596730245992215766820439887532714382541924761065381200912277005113474678474475412222933669164356822780278193207096956350898272014417524338826811633742448068394279343300588715206692920856009272484018815985935083929412862027116442136018125162670722434657427485746149426469923081370843603456521788329156714315019464654735231677723885884750077897065502241224263436380178472745624951383692637035838075316034422361459705444029451816064527993730207110439847488534083247356337950236818554959999384420729151843583478382890473685096513513722128775534857552958301505030610433147014145635989372866979319215329290415224459408450183867232164170989206170322330313042151725206497606620143110421381617621490261045225828955853539364956144924638156848637319409939276031845166326706165328360118990127580238343486882748864858624555377144692146375799959300980394562156496535557010420081505295179472335196479199647690932501188334558123147936230302797349656550790972258696466885353851594874531316385039704252152801015093596142101715749308737083009483724800317527831673542258080086060878914415810965231575069084862911508455611277266210187892678245242162871641247151329195528073381868399261604281525946090902121190116751727067088370878669658997407503954957438882158837042777451602120998748177511280290680072498105474321160267160706249607894126316248211137467401987922728532289853536968858554305852485802757007116436025663715079953798469361515882478312324413774452162040947102586566880454157598865089657198294422226008533570870947330505428782345067492299432732864662307307588831255989128774138234099019078930204608009968455730149816035017428312140460920908646406766066939257727081047967143070976452571463596346059353774029844400513865798365650067893238293668529348620635249690801409621967278230376860210620507032943135170014684965036066374416245832272700299495421058985410446125653720012999291828693937452831335449685350350128383510760937403298748860409564584463298595610265868443324696465429550187071075442821810631538874398032607311245990461220921172111879553533712012678232289871640742456362894162243138233339583763899671121852586049670046487073105712497074173871297112305184303401523013811889725458074901059674258183787103055988437306909333327308114000330021180497517280446588127210817218381903721728661014654907953997189677825782463724344026462494181510063807972645190163044751031648358969032234537735641079271094181496590075252962761707968733885468906391915511402232019596644180161219775929987950463579500149290590524403840602357350679232425327953573087919139771633791795618928551751549200031053862184274366754313274822737417770073553612426026971384918388942970039516133082827528626867061231618069408373953849575212981931601812648820548825764647423226627775706812161193439467277669528026059020530388127098371609147703403874993126607629193316295455113892362509744363582363320482203119637048703835590801517840626852395547334232980361074512859220535851197307909446823548252067475901466812795682302029669857017823822425992614467133276219142023959071738116864524841766666095783105223622783140045332624655635800387624289112213989974226168597437753623426273519072341476792554880730136666708719692641951047507715077183875030364077951369210310089195337159821085952101534800694798754254049116019283073014157128503924723171342216377486917809748420493781967263582615524077644854783823051882240715415006118750817786553140496055653794411306671220315489830805385741522376919568521457298892075852155887826316465174814316430897150992910512469606627733074383565682811075587427582355475423621134553770452293915029543378661312074119182940541634771133219058875775349266156666589717109393376590635892856407496977581829184009386658346740339003974486910445268049512060733971467766772947355543564887396124140016673326278561055803947558210518843460797282866092377294167063470135158628220120086553916019139298228066668709704260528065025078990689462815924669037803636870635933107130480160195085693012295159320081128309372520760594390697333186602435551594589245794902201732313495349768497652833272681883386622804183317267631902455759432012587847426900877739875933694293178595514331725523682069268648197276564746408079386437955786291007783387120853124329615553556065539593068178492029606990136225371068465218998775008604162114943169520625872737302278985508743426788410954055148216985292889154228690575745999080130468213433211290399664120850860923815932824708666904308502846967654638569895344228918510434320214256147494353341406231288490270733338866884038054778970438268363754865191269820447979230442117653092515869849318209624785137848986576453801893928141265577812076454610262068904255955695717984201395739772433361952631080367102124116387484266434261369913087351848941610233936751823190566700796871856866409850756068393336387775084029524782470348811276967499413114093003771576251991088531521341728582844272585879166539200758692533732674010825182678675752442356108296701095857352405561491528368299420933205982415879262526864120678996141080346948164182144030945269214021685214612602562818687563814440335846926141819118607142718394352259436395559236982668407984299826373742023581059629440589105698103480187975421946305586557805055225564741168879912491005419705400134130466001396179784301651359893994691957209968596230698523986224749949579678682841369417678616392176954348905649917170176066426023595466587939723817422765155811284989924422055681366655981006217193593020227928668137216366299695845540184570688689048354521473867414878650076240885330079612601572424846481547744619373198124120161258736280355209586836828914994739207262644460728990083881104555162996513589411967054490604155684909705996022614339690929304707194684640545063851204918878274013033712940271878095567047775230054620478345386642869446519627228192027001196845555541402725692195213714469579242745650294037631756289866233306616183358848799508553760855523627297632116606396215674604706995024561218654084805789752545232711296249457580150226839541952876244641225196781053739174865975779125181142217914208306610516010717749787759526038127335510072714619732414073133743148775996785282119239028412532764838977513085919278734340749189898514146991032453714297775019038708528987783634429363467417879759108016271859595893068902703487749518123667241649917197928352045139209574365350251665688574828889888170833980701875941559607536539158500287692326571294773989916687288533666688117448589405050330708054855732707942074561378460182544699739349377483780442085184351170995371773480919012883778553270933342884192579187953973239715969357151917557021782742352240232536679309021149504266369954106662967588302589805173214153424488655610868580863718570000961753452884265837082384551537916421946864258992454538504379341904610082897298443940338039676654126123101314275791077210089426221149320567833065265972363489644095813200771299686643527478921786592220686672938598984085191183551146428415877045928748881424231115283258485622961305261800633652670358571780862739984417903355630780569033341226270495588486872477992382035368270937180369877564746508218867567421323063086145914559942760441217456738591738602326185956347458353064244270756235959806670235509513272086818312718213054759790271301249940192758754592981305775132670995554768683448220563040327336445456700338056533729946889836891312812790851357204341142763570848285204533104075005716923423078926868355548597219518381593733482137261543022546451402285704964233988372355279549268407994744245107393870790891015433604793008248720529053590898164762457615426090607246942818640663059704577464957318954728850399139880965334274365436703436623143181062534052996425766603833317622601809522401281166315582365240142493364449559300149835107907057559969551033183439544257631892099962997297802913969415102089972606189935757195939417240722701385328004415900630642781518332565929342522003763747683782306680502813952548168780225495688510326225625730573772228851084795494623348902202437238906136943962547718998969606913095620752724992030274932522077780549126382825603289355790759548415994074794542729229278677449047685697394292351919274113120149748378900247875888708899686110004155726819002479628539791173799032930779550865255091771508209152928294595869041256262418487303855055412920217930027640765317910254383663038013136776448330062176181265320628411464245549590531330430868906827069822103620309478906213329357758390685352975830030745131990868952442613441517688494895770754050882130997180264131619768908828182043378551439025332477654016948546653117023674079425335279584405572028600329925969120607203010116206572507640273472050318440731336589004115758629979763283297540531999239788127367519373692689970502798328221102615379403212626693207268392388209398180665898204489459439887220097802819731832160639015498537249261557775556272192222484548623559943999439377208705412345821867367672433403087471419303122544285691167563889675682853184433278844691780874476380283339140178253344092320616923874591516585320293467354750736279417680802175756107106321390104119174739858689643085502653409669210711481584223857357723964730471628835193256526205200828681704757322532141953181777643116119292554373764336177868429441605482060896710520412194911191711504894884180011262403734800902538879697925882860495970940384700426103846099736971049583474922478055176679873511080932824828835049513575514662503858077745369998670346986650722030535576330204894865513455599446953673664570460045341254235353679632737937543112737405441205683700642520056717552259113909959731525998951009548928674000046359422537771910189255343039692561777865987744722477957185827163100822243682590730935762955154482765218651754176324733342946753301195483658735593942999945079679466771450138130843428897765022779108278594034374023994948480922847324310105678615315494104753330004030413850582312396202601700644849685226338897078730366574074582949313194247829126071660072712135869329319900999176891479108778615820946965718354282660473454246066792922285550706122808482325743006828986248859980103498697253109437969987155294756989188019110756873448354713447827217504288483333573355141984214595148374699507846859895272541333922479092921418693250267948312563036081124529170763692209592939844718271914897796907525707408491466169331849758317468169263788873928433212830277460934757903978043900865509285385318068799099242500958763190681999819023025913321970203815884854812303070369014884604412902869155076483286832715927017355250715263893993697922586400460952257282076836580983859914811454419458484575454209848993963697563619111213385121981806957825660332972648354682295548092585551856564230965116692119802829208126078853863629266826602080210585972125923301744489391617078727607421869315748223510622015565037002860010132981433285771604257782996914320049625999564728587448583489571698297731146489926325624491200209888424573590877447643344818956076978442126709336233125357805612894467387543297307827172321408918145380702966762431514455412279834393750050932997184306060913405168004539947296561684220174707169195885791148196068763952830621835403381378827854010621287943709272367917603957139847452328665880972985859443848748241742815585096144683894757880045241787531390741018771860258308916109346601543931001424690065422992117872363051192675530106559027286654282841116399150877921516519645882940906185834184011949367034841086615596688774231545055094811912366105104709628727598480482840135821561261638731467382867592589729762974901995184496369469737242226209392536185656370243621768585054338243918201727344653582906770289263245768665253420837092799076427338868874704308226197896087259200732968432831195142978364943716217537607544546705023580045833414714843661673970556266844014590254253759637653482335557482178731158163991919961497364226557958270744242898889447572831374857116271160889925099816348231258980896858541342907550487188489086547790928684842743427627106496667935340468390906992017863277828151686729278029101224678026244309233693857063633273686600708029498145045335600615275653845521569199939661779557218570798187196640986774557747183576070646348132884747404874761818687257153406688285712748276796664479672008478311503455977832931355721097892769049386341739644101033504023751712993207625883567240195984607062347894986471940660512263363962755032659646759842569753959494902890626408705860228170771400744652235889194530683385851217028484794110436435141321213073252244894422885198574439192269859671778510937437426060902006558762874106002136243284388448844181544332276158691164531461228910724219301012386773482950621205073682886822047685621285320460957309130618669527969941910603402932463194999122826501327842915586973205398696286175376045355254881992513748311706973334300198319680440193932007017954829294479981171274025137944561828560591046142694951868269691261248255278660369898820951176348116248711403081946304157510856080706307722904076405743960864567787191054546368129681412941305669669693179303668273951852251404701896072960207941275269471974766374954183112239899058675447190709484625797057684492487993846617249205037761077655024181218740729809867389330370256572145432724531643523088934632091359651299905559218068649583712984460539138877573572395376146575923623524099961816492229031955054538765943567825154488577944310203721952261438245390131145413124359526635237230281377764440544311867698618446284762135514879799782523590897284277373423443015337054350908501857255588535862059173821752929990568087466520678404483326847291694130034553240165301946141659207138317019661500324426096143840632949086187351608735535577811614464832707441499206627075875123732390716081955668081664174197823716104203816699306496529792901319479626598352919748577566095581215670139210136999930355974061848839274435941950249157648138660819024477677956592743898004851276242305689646578777822095995468073776241609593138090377859647428880451302347922254977352873835035444459856064724441217864886917000342991053492482095539368507841694311476704723723629818449047987225108508645435969841153292580260335406700933897667645131867310469859175225850392403168705442444271806598222444618753099356029665434504091074814487960548514922269487624425396829644251759186362408693333939531057394200975438310968887770841504663603352594921113078182348280200098875134209686932033746224574362244352921783986432322323888514356985883148418810198224346867004994100228062555901917667050490041331475863784396309530067175463676481173278444680434523388591243765334046649535324347505627009853504022022852598375519235543097474883708587484931154358153050338511260868050586773523107500743456442994650576141434302000725685844894323833164794889497829159417647140131381573903680108301595468763891902748711435038224653723975485435360791756873490196404202084452891600188264074897437377156637386700673974218828772924557848367869275710190470848498963572736276196456637815924865970948273747414333123618780070494878269129473315602141347279525606097128541789681071340238863161971649432862207998740665306054638337927918903600390322138720857090559986582813384379118695945942215574742638189595316866083726726522490298740319972577604296142621876120817620206490105950475982367084358796349889576390433544012709025357395915641500946676963633524367496508557698947662060348337383840199991575840906070809266792485126449419152190474505934770644162110208206902442817912004548723802473773386135547859151462558209355920257130820104614235026248863696658525962348690482343517326804042109691669618606804141550247814620921381824223628400618580942378932179034173833918532825685800637975025178698785111705796974276581520609892799313212096522094370979852036946204774695036144416417101375026168433442931327204918232059585847951993931210202762997903080819013570061345777832042399803638208580130298350191085229647204299316563006807600085536336401511770977840499803551386018553459086267987729301199637619181027411997124433388618283140280549709405215629767646473621895536041345367591373710028660502670074208572189650407984598703146817877298610337883144447168034751923060636475436403305267051847560389211832779627714912325380481480846805337663059343776161228523746358661540908497787565910211253960869820979950436409847652710492321631888788451025947541989780474026993905867296943422365353091438027202060673969893363415843560932780940139041591858339276560405469263877284617143397229610284066526984044119413385734809345119589735009073480128257021550088300643011219476874889886443941912324195674889288462420746809276731502778168663260691864025020892901781565852613122395534870873901953578827274677168268751303007093177492013007657916928035736692706465210790506513218702624544864261990645138596002934294918456508137951758938348158749530231237140814387319812865516418636509745945307502023704190429764310664998044843423611934567302441313598354871654327163167312297770833196292169517991561926645775338438658075326677529240755696642606496965588352489693319996630486070010756426102984593072870103908432794469166490144564204251690350990510184304038565535264380595392566945497390022519265672462982815870609782176996700753435462766046246267595992841377220599368731508608855070243181483987467802574754639166234537439782167025318498393548457967173189625394885008334976785223493199099461017986924015298132079321630922978302367402639572040515014526477479000219849475383376309231666538094501499899659129890941662172553963221267387400600695938409545533255675652902408352017124879527857882632789591483741374188716422125399975978858795922792997264536589044845174360519741215095894003058371373229048100047524393519716521209513442716087431354937749660939255398808375605248602160236686415813013051123184514402650356174592017032366456251200547959350166625893919462021478000101394585179268587516073962574934305205896851557633803208582952925709500728136915581009210037270051014265328039728278170468628277133397792953198504310861955745619987333795579078301629513932025671493172671533924114246233458824358221543763337937194809184990582377414801572289028700875561190083814961215526500847746692020678662451367891561550815793304025720693657949278885136860086837690097388381342438917379720333730286168303338582734838631593862007508659795122316262102593174956388122255614648011620792729114311080363221501361561396671499417872675113094889812638792354761643423659457643805996771621490116080872148237449221178975862211878180761634796953394001737826628397957882714055404097186446242442081393622072438531589481222881520447477221172945622072747443988979188063528427245864385692981632804847480305369903459506757526127869422816443982933684181291652633039750021698164019817150586462642531592714989150894253519524701428428510477808935846370473587340890154224907951903627762133505517328831028895271672595223672658823230139536400843097217897412623791793815939514835143508761127090921052203579332425297405539782423211273001318941179212369980745039379770784250190505087962956750783932033753315810160831781839686168822772379660403019189700925207582640478444936289769939424642674292996074343915994169083218835307133742961508578652684823774909270072135666059473702141625431611944210687024040664706590490564754527286180475197712659832144945472182631878244689007042955806483701030700127208525290987107452864517514844293111785990242298231600590024495729251350139979077488622924233865414348737528752658150204543480815709621528457186420682712888467146252911045684090456010257460322152115532227917314954318834167088008716476642569225313043828263484806639354897320432088377826536724006880487029295611130114688891234754108634241589053474172566115516413467931766320641330537513128732443168244510232954945045694026961468410401898694690570020070642083338580417236095272021560454324666952760855079830730381584375495227408922275324989918208744540433899059219197554234584113026044181059684149064157932136901534140377125514924662829420225480728805667547349869595551445984152771273660412263252494831643223908175866719987401344631414921879713337485026128316458830055574581504366019792010267750704530424413220069321849968478490816612892540773272132537538010509865430963964539228432427217659216221913263021396529542621302200489971622707524767524598976513807721932541242273232634090383864842639724169395793508076970614035040808210481549768455782289765094079729706586593592456351342644572938188900257381044289764144281533636875211551549606722424563428560773230258298325525947750078605208106468548495025738528085605534613991802250913342911301692081823382701206071062245153596864509072203764903970199230511658536811279620495668072735450936594041776408648217576249038679957642322476107118097046320997380442238212262298558398925967343666818797685144547017091900600668832299189613395607676476023243696268279194219537069188604022870353313807840619345588354970399330035559647752362588221194807604187703232476210730874752226386585497388983388075485564956840390122055436681404647164913550214050029141699478417549099208112706386139749637075598230536199699052238442921137670268475401155087212122960138504620963267221488300867052202373981554009295290428400977460034013183136374755244294433335602065344442181883740909370078256865368174789680937383699217714649594072130168837759887789326212988233103506453837397494144968612126359658875519080966055294356175766883379320445500685927609502651666657487583674379675217783867706437450568127877884876601738750910207287660706012338995827897061276073855401053945122305519441115879934195710216740200936360926178200875638908394285288962085561847979614479297506041068624176509446289357038817280965899947574612876870484023705675450389986552239611958593724619494121741349718051965832678580297355697385476194846950809115371024120880320526914823830183653268218170649426956821584043201102659676083468665686099265408987739733834784373691651407027469623324982175047280804640157327122906123447625150940147897556953713423087871365949741050557838840464915789084907231823607620104384007093450569700520622989373140295418653320085968736415965085085821152496596006263970788807262579169710674295956985296602824055853976335637719862271951694337923738561233334332361380625767550398762167515316116654157929476806194018937892435766130477230357212832666682734368040587583409998478164445546688399777656815237499406850259324075996934235301900630123252360559768508960632759411221737037579849806401431481389284259266462678181441624806071073811569987584661769077749137488160948476450684698618955937599367315811484772940334591241927076487327753410914497063135969112058738035170278398908092903773569687908488929986652662826751549771725323590834035667793372949711838735119550441578762137212628876438892300112727852430717394013912784929333054645403039148807722669863967403104885050480335928177106965381692944467953152794275272830907058857578258781297871357597379860308360012855283135447761121140971515051394198000750019647164488349901851853850180553432518681046277066977455741202729370331799246348768759917182895555278601793880089546631999790644874335449965910149916756808261582138760152306095668318069549104690595063570225228404437219813823705199516943601337838720406168502617790735288642163055242632629613265351904585051087645049142117079242924235812487872986131664374582463135823762843776593953959474761402076110856401760948755907728439621389294349428748044580454292009589999962874149599055302074138943137931912571469106092796763674457476037720277699908099985802223432593676403480550298100494209704266203047376867465438034933382846567400330174831106742818087333397095354240869210066308210650359573445813524863375974732180699131760860129360820827285519464131404633093843926426937352845892880371440434001711381700150180383880428087803500713362432624383448253576022697843362411418971009058448861132677936958615815681257630258564463978242761100049049531657796222498665579335456369406020721361662406809176797235657993237423162558915841664827716752587927183067639468629273899424162072372793731116756448978713268706967690843543579860626141644067037949379399712706016212587509389191590535057805530187299509111216702065853551289162100899228200632850117089440265825779006945447993643989533449212471837572219334461592414394006833422930720337883180800907319066266785911032844198290835749097161480050998447949012779667373932244034804247682963021621676336150865120218806931723984561841524900819211709099784812993398234100696047109436433009104081454019329605601568986254944743775633456191808419550231409671091057183193944623982936859136063489372943155636674147121556677708051344741591788557547495828506100234968076270636791417931258266516270504981511655063930325404785242256208525936507997886869498509280747821156982130735775555150371379978814305742081702777247830204369883942908623812613691465503496436176301558731729352056226093638369058037464433233615491343226503720378263566410613357696777226947700569466522389385501708095110733994352839204515024780525928040055437636423936640031144269716995053664864739542926327785666916322189218983700025162080787583996848123998936579458119878790000854753743210694867749397645604516834781061860749356865564464928870318488866268758302351631045384536045248856781514754106125533159972320438145909027481246449478835872894827234547307815502351051294727311678354315357099400404150597080695626186603791024781894797889053456499953168354393513765626223438992924205943984893774200331882382606130842362712600808589772914189005626055330667203144156595858790097630399423119574502061837639845153089881480651473856420640219526260762148682989563401579888567621549774825569226894991513271720685255630121006699670494720166963786243596267426139779416389297376585414187101044507767395946351381775907149887719463049467076880791857951467128745977089623289186026114659513059990652653136009803867298261035683276317667512781396229794716829088160992175358322093195026703727005242521773867170855892539968117347381606198939111351981172675017603088808856656965411894615787506914820800531600827428559847660414083996311834786503971464358871398834397846452724158606440556460630656205787468517418665082144350511403777275157012875502676447694173792595597766482083767818332357449400574300675013608308857939533322080053134088542147481394126923392918388779713043358858865154172408250519673222728694537269663014359195036722701808729724491339906892561502548180802087502052141337453006702754652427777259309512031285057498453415764695938700616135498300351448055549307147536780181732160938438171321175997054619605788052742860259084664965466232026519930541873463474001096286172653836039741146744851588739176827141118893787580632372261676304063197608779285965796530501648756707165381030259375679974069013612936457176271524175849403754124848583928765031459157574177005345022166722034099756995437827002827852630581186262608421569014848135545389846070333742425044400423266088023738720569381553550086632278925243723520229532657345950087620782444875727016239992619773128364085801519247084878323151419431630984849861388974610086644436225770912233362758907601644082982623441902481488704450571741740633106263096818236159897600730254119566846668220263956513875496142321504240549411198398857708705751567311348754971107555527278098004693845846165285231566138435603174117895923247766225987723370920609882924945677642734367670519427443951237759116698052727387547658423098527198627630015777617203338446860893201932825159179192673088434329695062583348261169179922639026603827787873387957861657040946655980340091837120938707803474067273470203495774858351407649347283791317587332884218099022997769785503719544222889689655169492993687578482559475713396127158775835790276234398378300045210966057559358078876431679069825293295477492267332436101342427788672908583617397124965880102768697102220225834423501429229449560162342215014465433237746869262593847042472690619460471250887972528867335250621834863848710701847710018981382563102765718428126471780245643225228827590880987591245068671911537319065968765900448440368257894811626262463367396104093462113293401328647198887462117269942030913972479811419898269781444832269948847929230679917486715030386891028551276461498181938504017206056105958358443837017395687380432126599659200982774054401375904785154608799070775066766336473414442957434240087654551890014518799308597690749818276013357315103147330629196860715496779640503716353121349834641684427338953128507134243652710513497845041403629633246209716249271136378439021586050309374470609319789785303789470586985872191667571913022982956558278405471955072395599754777794446479752691703475196902719920907898212282452720293993624398459780207647938973896486368515369356964400610852564300666318418021046194613102591915546686466750128209353627622441026173098771404905661660642225549087605085831461935108311360353822212990112943726443549764774949580082989788128771353854674737275151766619561060975245522373854383655762984459204737731989562592955193728841009690942438881165370152792495382988985906981918457674341776558820161855890222785256514579446779219328594371248686903807147900885742405975943249078682835093396295781365303629206638466286218008964135158729841773161419313684580938116218790706703653508743772812732690245146931487003127337461364830129988785776187418975758254739783398807675394053879781949805772459391749609957949927331819720095541018346994652454097291840417009420478492069205568113090649977026983448973347180486783345852135138792051658395070380093726902808880307847954722912338503946632398515718288322172608907182740446846591789459837948004538431688192995941306387339156087535957558074483136336144733720216518635658031726885769714321197151290977883005289342599866644020586915485203926846121527688764144716298181550291489634542879324270351233592789538398568363816018197976069870344937098258113357123651302437279716975144285196602684690247819172150991790694205277739833849254421048819498376352539248500062791164203870113619646889169801703372701637197439069153575337483575213765427956205671026189121859795730021780448339080367274066462618920991375721045223294950734252992514346958551562515042975061438288767604417205808896828935068600208630861332457281835067268194201180875972613381742896048111603347175498706488812431188242276673805891797745859082616847183094577107047743497710284691404257049713551006857210564795408851957082037078004584295077032013346076422793288015911498454565887559668898602468409616418553570285716304538740367999614183333443670686065271188573717112734918672781684261860662470549257529930637191306901210463389836044159724427900375855920157573413340195005601427968435475925884394978950464943174333504868133131911308409728072371216724789999563295775324245734325540536573723488179720583870915429875268769132693434738470887632846776586003494833689945271562295595983357004095388425228533329572006597459988685001572842764630762932259005020168337653213654521969570612555295337125542095726383878216210002605043350438524231106851660750898640701203076454730827412714569902277587403474024808566459150077288538815348902402693027307534331266134197537466481630860705113660596076997664219397536568214394543196607383081122472840348626760855633599771252046927368951208855492505582072269553718249146251735131723966982760757479695038448740787947697911231398447984079002777654962328643575740590507549011820412341172879050290271014801111650167275222556313985219318501377277414061278294245979739704840408254442392552153949227814738717178851885150370168548208420845705882383383214284402293936146539732661492612610838821727544536030646967968212007328997194226280893517288561760505676958795604938866330313686087537034034886293857323705512656828615204508725692152416098220405490928293587191870707064482456764664549271243414976755968988878145306923922969074537706034957340780897043073909694225953205014672114841855694977794621593956820908229987685250131526069199706002707366463602643307375108817991675799565379614556229429546557507862367740189213466411449398621454136696076385358860813937070852034181111312133695009563432540182689441328828257683736085414402602238279855808759899491316187459243472974348655628966164538420448613588800683901670161955094115397648507637509369310919234330032473888311014173151796222140525845970805756547949169899860882756066541764648429112316788658551121412343239339987616147394585535282983949116657553955351351198962240552049121912960282925513862765020266416970391496060027802755506212055465136733612281275555010236741874745759106556769915871787559360661907722232877015548406000523742280770435534117298742217983051048298245496902163752070456138930381010884637046261142335410839342115832037626077181284166214597223687957874611692327001558902968963716788297237265121427121294674164063428215229551767016040494292956240809187784203015727782110379951482625032552399522995067202474730110270128485111855939550568988135992832523640219918114965295970194528616656268806055224185048031662713818288865177940851231346043031318670376293051626142221966836543503046969874716617060053405164282598947745061625218045579784429668354751272083913923567215805224021661911608490255527258340353982686882302988898606677485695375671529120122201438359281987851866516102232768594758076536648831861484672845836346725586385133195340833796478404207715469047878156037287870894151165521393363023231173750376021271304768380768797234422009858927157761197697435705309206973271234596002284469001404670630950683939238087146307138743387151031933002084158906127125204487624764453368692520124883093012430850393236211356204778447770070762046470218577873214915484658086494496423802126992271434220295107272615993061935958042092007548916855062201768211551974545970320289073023006017265415510951831145075096620320720001615477976765954423512154816010399829373561589149131774112892265169389186611134762945968133416991392273316654864492148872483324043982952417977976242939393718962901658343730022439938910111715196154719773058136735732833009171846532359275929586995163182650650950407597854099056873752625365548973839285155426601489424045683549095572067332985394556161886754862269430237768639565446888498457032655585034341137103936267687239581101332998929057337359870791350311884139609754499720352470786904692422231735291139985930483747580541514571888480449784844657917354069732991526618754488151866870028418672863798484301761046224661471544480719964349950469686638714024297229228119425592017640671180162274155513153460378618856173194244564833513882834790718367928629851604255673274482637821195619058573406927772270549176348997231605496840955646427995651397755363455201168419486113829351327883292313999735642092586002285589113463754848154365490310925156920806569388950791121928701771945145518915929308045329717813933744277814160051602420288170433212561254402131249757252087146451207022768133169352549115368246795308583008059112859475491114877437741580000479437438587511866898285508935649355770629824371264589485931811528846506208847312455048644634362721434293146242000197457681722310725873703634795824547422771650840178969889609979079983421758331733226413939286353622877328053894570639776240018567155125348172399851111115736424547337794081651975191566285065360566950074778965903498171221441885815340456520026815428951783026828552559168894489442776742357285369490876962609685297100863199332271164568571547030638404734202576519560973590654587751107947526878699213934224453680913822627353519774775576417201234207741514273504699968619836237135751732754819129174530854039788120740136547098739618459987692150889560138153030431186897495378436340743842897366911891007511033530911370940055499570994236135199894766528245648587130468384189746996458655230827577705385023017156986913197842127819124025889741367143962856866169875977192788700945882376159538748582239874436076667003604479572655995819033983581912005503366107434453394274809424250650661112201770713808102417916701448519340848463816562487307560974759120423486942455696294392064992104499874368108729054828884007662140621660179705869274205698460425847884090908697842876893759779372087568811862830251533279458893162386623103295371898652176268934247313908052569317771706360946987829546440327272845555909934621655856121310903459722375890467393971105020641505745738814767905351769126718235314663586304003435233477542004340026043860146435926913041990271589466242560587906197138286008198555638572068900289589018499049746134416839592517867330267667880569779227621890587890353288089647734248034287884526952401945443382931139945996358601261614183167589929785802786329335549211101411659157437702229051988113916747340949887028898194966664389798469179997306205300056494745039652827149694092026374031323958899636698141809689764022118287101188331111528496130175193368642476848121046821404106465254924520203270789546088868741893887536755717002756585102299580674083972903831853854658573755250175020754904910066766772516527553005508761665636937162533153905671988867630390246699838578990697794752042390005067670613728283525318736099140745640036391830861082773467044185711835049580194033263063997255761496190609453234623008599070534964878397287142439286515062163275172039844010451597439011234067335526033853286078948902884209066140982106436156488932387562254819132131884414059105530588749399002857088457112523100848054747743379455837001392094999232671984126259089397104085042139200985480632716627487482882756475902788662027741817345652627358731711122595257496075044662220857377993489639371696909019187053814049443517389179335728242840164154148802830039372626721060419057202874735115281059198816588070340075596523594402552155291227623140024542273339613879892774009849280187371673320309784794060467375372821239750394290723327098318386981478165232440909522205670791518278179207184110444184008990438435987618954573577538021720061654354717564554824961753090671411751887703957497318380224434984659664932687278117323594868055874706419412648694325198668289798584551102114199459892846417247138498783791593180749298813631767806119710388642462193996918373005482598525774693043120176610968847619562619412011548551687548756720834435417680890155487818111266959129608827329727018989376153667224184267920489843847834690579005573626942343082403434603090207003172334681643011199784280535554787564105360238449212954896350095060430899707629860356231057425145729951567974389208061576314875296512535059084252657032597975485455271282300922394563743609583258726498163834999647537552413320154834637718332807868720233133479490649343979658294307746276875041229967418272825575437475854041089180059683561985960901310756977407604839467873606036686273632626734328838588173699806393489094806972834844107726571865551961605747441198293679348979880322189689002390231059237510448492072692572883713126053155102680867221642052399915989846562997765630501188169994063048794923809087527545225984991465015079505913023059213074168249523986281161256241920621414964500733298034870512309449541836577492801337768380725655709592272670200270326956645020407829871790529314044790760007954311645775725167365451821678164669179501040270701739599527250466372241644816429608729103979583382666376508464682477314138140339010485404389276701677715352989961985457217870062794342099036125964370951367327813354906941202178782086303868492565262175825602358528602901568666941766175138165782776008124201595004747768849513316366589720570240943175707530310205666773803407388045849496768391628769370496769264032578737023133788961038580446899340544156261467437538127899201581619384285820024902926232657427201349974021909782677109984809500632108085784401169321233087183250051203971287111712587516218505201641847045348103508847770244004853646964394304294817912598872273236242300780200689645824056070487896297701370324382872270885231486168199394217748436452835002294621821524039803390261580201456980076013341146511806636788589376984066357512638585845732396607991275172480467190735627250694205269178871877917741874826871384250245821726974023666268374337982364643774770614558797603206275315253235884365291035312427302545332971734507033291927860949042788356951131984016536594360797548286516193025426465374201803227677540046882307560185218310648295106798509804498024211873149368922479453502403666419699781400178710182126709153464551803349438354592826155149340942097760184770128027889360536977870412394129348746453441785990953669897429062252175126853430058617120295865021649097630851881668664391522611230290053450178691844520913119945107446971132670708955244231028203777196618225625470175865913379568796347395983492398001496935182780182656530213951381185194730391913295870005263180823009342713261650007978239479979702556594727271776618621258536239613639046208545660264279459869958852721619814014998238157909344296926506290916390000714728368311833195513256442404862876543930710792722886764706726893274238200815052880385799619099637382084274861925452119220095765043552103502276081955992975214335108925622284939475710823671965301037254682872247346595932893468691547043206472796831133067520782173318322448611603775297371722069210414122668838518808271242960924804762430678668156618770593064486919791481652765459634074209358882093253487552163631681743681466367273362083953721930378792670611420140755933996149690418170463147262828711690480804041738938119804844765363920553088266326005878091611869863333108654745008870827218480316922796345072078360246203555861139514828403170940479686389998567074055447230074227104483094371331331709740792769962173653627980597997320894498727741656027084524563709284174424149034405490136496303100399842347110152797285984819219238499336615922756610963544321099458159584898845280631792012361989793906871746099891893368768699650108345304202542630799056004673081319681771708697419752108371740928788263142578363628646701299178471662093575715424389422831985386870061057193084923950288355020889567575634591081138328908819300839784473486273400457218329302675289056353529090725194515120573572436768166643278777351486756810749199171011339119377006796985905906810841856459633628461137187926585888165022927475508946412819007256940705080359873785128779886748013911326465294618452573011324556800424016358727132888703906534257691752434598974480655660039967344377599734926133028758673450729914720929627371052679806695679131858471543500002518816207460474674631052282111010386268941330790123851008272424286938849160924768245908496919429254199826688552319496050839268425841014146335420039181274693318992421795743818418048354926971734503967341506308146682776099672104181276770225556504809343347051694127107109911874856859940996731012158212526509366155077887178807606715321259759294631235336204545317637124695477924345186607451313678431687509795561293989148338373290720669522387498873786877785611660768161280025292659460892073064917484958728901289244577563068695286207266048946657980776212717667094451142778940330151922819961766436554571691883315819390889175892048734881533459059539530127954553253828904326249240024547179681479352096308440279082560157146726256788767285294320454327848777924250130974029902275198334874119067045542263923479088994360904054519031872137451887759515955923200628096672590781175583093220168445882417034056512936767306857796984033447428154862767567780829444863453264498448650387623957192265650069165538137780903144385891758828987893215357014659469109844537837725908898518723875195410794721403717627751643147470216671208717837814166621465191256478247446619941282456690522018027309166475446553786389185124447544618076301011531997731565026484911498568864433515381207063011122313954460817851570066738969277151284606383119604653806731966225389524352714647874903358644397211375923314238667697351373435782234730173132298337523002908714027902546936406707409995098335345353142063664735080264359360008566977695872829998169153636770840135313972067813452311027144436412425914456287146729785178970145069556475580087179688017954867132570747973570908143513835732088846751914140077386139525922179499949366940894954272059609889273199545597742513862653473456281205233403569015209132589639357351881687550044308938544790383553312594774525852159309298770684705730933602609175349501450094193245408759668265829559130922075052052927754977844851262599402357592050079317251874541466414927789444935246778128991926846949220637837573613723065350818496111830034521402299739932830641707471327662312642312625598412484249960013234177490394337622303274944287098700974277460696170510880527028840949956840976415805192641832967176824733158038432672776770465692357953858764995467811268030599228182990793119578752810780032265217377016184063751055767988106755322601441766446390928023678193482497064293230163009676340396057824987886177634670037456717102263580846435303665471895327752705793601749402300421946464261335902657451886854283493937648476570911715078317614089403456565738269841586019960503441397507880912301917888756683890534645222525910801558389291849650373963219921301334411321127846601026923584986773850711937668064805057206082815453743119452349869383956046661945664085317690717447265861328374172339677557870696076130681295170116794811921192215837697527764256083608238391286023863922449038342199933087837103430097796497696287171225601821913029801009634342274465395004446694929396288163268885658482385485239887745813994628701691690558505967571039012197808067097444470659575364016108041753327394357313567501563516845564402069237385183960206331235125859218221807419227584988425305289258055329345903474327835464505347998876240102747924485890400749659559707919380458042451843659190746658105841021858374796664938659704588654276653048662141135116155028388542106370903578226605631040534509558605750764377860936842696290986644256020712354864449323436885925216023158125932355295711271475238896420429107067288973497130503068748031094708904573475690892246256220306113300489756028524609871114552689277081908347801487709574931365138400706581494947494094576101503609041294880186722452967962413017219700580351477276611871432290244767697000623049217478647874717004275055399406276590172392153263107169790319282830815837582356911038399831229141506617170753091912186743192741078868041875210996065435740254420969365863363026370742579264272794344888901097181246853329576910220994053157518078260600381321533163606117192623937787423271971480067627524976735531503487854533146994794167112859963852990475497215117466054911732368603335400028697116714433082290591184802047735333123758060786824681843344402495120252425285222923677602890837604183399344943465816869446985514718447789941383257166443373051168598090799625398303264300331834007945559303329070538428158053601240169694725631834261116795989571555562226432310108205997458416803788186445212517502673444105650901636542602876889612578441588111864204299622473776955332518764357854475241967234918274307075124436583700767309505208980613090685195482938412636098426806603099248873310470067881859345771441714871270978843398739299213663321205855311598357922399747608442948912452485024675054407390523007436380464629031066216537020496888882852809316143765744415519411612174894971522888641534212280065121404989367149041239217457272118983586101107985556467128647254515620631014408347792754892537737113979527765190226941182275834589721037917359432079747080096101972351839497737986475143881515824430370542646142464395493103668821045236502593289144699193055735513783264083890412327421682072859274359859272730981477148119879609286896817269195015431194578503106616766294852113093135873793910722544441375817079928835944203073609723454694855363455344258597133136031886803116835015909960751535722611371713479724967149216656894155365872854996056699709901254176088838024241237284949316776829363319254633565310524126978701469310328174313437411222332939375499991757637276657910767178543008564260881564281606148764120697158963139157754396883334974769494352221494448681584163123989353618480043965466472349085776205865393395749550328502174831607405640233217129153326679784396970338922462122827000619639848191379925140939728053206995407319008736165470777467813442295923664134814623975721987531792368076006206315667436009103361949508539890968153493778133312195960189535267913469253742514432071457335195026277512609609900534656043239297180682903122324076438701112289784608625158803481109274355327599953985394460893921109353644407771285683898173309568304325454819108809733362848206557297339595049614820975315022185553173804466584441323738630966877391885049810572881327174104890892156546732883722621291096226498595686261660228450591740159425766056770980452831029622695407962042279962911845963610828502683302996972767104867349690613366228964379376283571443131666454814675702107332512327852067306517565915922974930713203290014172962354950597331193375755425966345061922768502746616647137581628146424836203078307313783096582122172800370580781184864091758525149635521922896655642748934464272794944509565977539166951717850265597359488395418313894965831159412874410744872175121837100617423465382285379513235297582984083960214199176178261966332240087344715184876522090205746058867369799949309133201987091358838529494843455466799862356642161112475811343578149712229830316997065115920074339339810586972508726399248740614030413073016762350274647079906347113683106649715207001309094438906448228839569669839440865455406783591043001271186082530815540863252608077542091286029787703061490344488295804413686070228218059948719056478903061717750405564876777569137049461307176078939747978415203107050790892262073641641657971463813908594716559620977670378242528782943333935641873281019468755663416083438666311264770145218209127484389371402901306552893331439355004296844801824438894362218006051138659837982748460689165793422217698788872887100438463772551448619987197907648314868880475485872578413186458832830519343711237408325062656118696513478394210824029576853984191775215130315253827659742958560250687889699432836631694359288630147094403318267799927451027631938030915413329254273881101146318244568027605671002027869104142332582639552206376588955026198358141545174656002431329069092725493045232409456458435168817878309128602953694879542545834515554600764313180806871473180661033674097481953536966900929821319837770434767101882357738225594472994259527937209652376759465382883407023438093739381067136051196241731791147939808406807755158726948611483417289216786091271392463279392545222180594558436786902588667265939715004743007173772271508500305296792397165943739607010556313129339411953985099934930251588613852421970879738873798807879510938126883949678827170550422541798127268137908272717792207545037392408182532172224698678756028559266812720803042296262478987757837865479164825491541549432239458394673469418872769747578391155103558839523321173347034569767626685306477985345058902576427146903356078663207783164641474360367700248720294874776784777287227901747786908739087944802565325150466087234225646735560826255796471151820968790267388364628499573715474598443479236134932996316953105330305200672549077960929291663731641092267579317856051172245638321856055649364377116278553158658326391795700959874905533616335586878833232875206993096388888694690738840488453880106054771077787021352098764499183833773597945808840689141203632470224875400025578252272213982039520045925080154071469630594000475633913269315914695038576873955700233105161092126081319143604017636967308562045815085821110079315410008147307992915983696650585299230500600920277717667550695108815336386382991541751781229332172785421589480892542312062792164572591858056066883169280503149319004683177046014545323707785967828503353070203520857724311793518863296917411815381422894385890885871684180263073449112512942098804215756497725895172061122722003985732137229812924056896661686308712416364373596835908336135430276638170009725243261436625016948909614679993338575506942478428916176209956893013791724158955276162625980023617705540106707059044913859574959102880080917803192781676566183273232466078227159114481712684455026936965858105196741291050765752792554280412043051539610241897886448203815605322738239211557429748777677406626439118052703275289628450281297105603461432058126517761721194102625414315279459737803681019307850833327968878363186420520582480187563528664083714743267550632783098797924694442702538524632164650728283366268950337923159274301879236298101308740628124962832400348934645602790933382149369552354402168524496570725719232472893903846558525165037603829321678725487122398336269358276306343387578092395789903327734671449294383032127166194536220441048233425414707283424495676855183393757424933671658703127559822879165844036357022892618590682577704985341244437979335047158680095472010190157883757978986347174478062195343547834582537911476249739379090021061987074105426388601497548670778059738012142198814024620881207412101203696805673808541852482792084630929191644877997680141956476434085178340037809419618911997267604138809175939452142869219480405223215223754985416105049379832649103944235671302584143926178352671045082622165292269696640591084044643777069073748458189484115702720506337883992305992708695305858937593367867382888077194113342679649860516887461460488731950020929479195735058370176120359171130375220225456234086741123019559080623006517923885501736439819020984127556897584639559800347641623371728628789325068837966509184391948224888345807730180487167291810873458354459952048192443421030830704561516886574994698266775447330908022335641867818723419776979075452304630112914974322123764799297558124762178692582506579264266660579459555119913220212221338283144240629858246966162996672256655895407412584319039247193805081441411332360064951402970022090072199119771525974091909610644954137115177671716758808063342100184454679577148566612808971323026722517159355583952410695967202123696657915383933848912035371582464483927999021395054133585019471642285917821208139003788391873429535206518499303363866663928365916421136427281114914362985697345179298136063796256749731634306491631931973743432801466539462368488785502818901942680242101687767420917991812778877026836180775552906227922671043070930330899299114894383521999775927943623001859906050862267081471406140209532019634917524514306118983056393096443486519923976945243651478476638282663312750377772276358589416306566132139267328606610330124342850862221452713572753683360635007877062356933765993624931295947080184216325197244289494431991056002961885194437822786311572418555800415006065458251122412139189312154267686171131321728273668600921191814211245365967994306683406507312372692935435679994687428571204353372576078046715112305026132897946770679338810794627186188460286316957207380376641873416104806339259378597472845880125357698386091399167367954100500311197193992133880547890163979959422171783255656462954637315893045715839759757531558084375377128677058174125340848950293941855650147458724309002640107281568118703156042994421063384942122395796338217741192148951387758463091042621369627125607376328226769429191618879919292379095739036437367367616778154306831974003272841202454738489077436853079259690458903167696836115301848677730288022787010091409496396048148036737541062897531603968157380219802721784643389841704100924072027184090976619396275114912751174165206603821218953498699062225027564201227774211234635337936044487532913098053309776856696427369652674701582790529126871160739191173783923238586007072996811386303509521309330979276763332890638898898116725388198808608927285542800088140491001480381996728854433015773983991703839294144945493539414692637176730699928046385087827433134450763239662053476521796259353647964416332950421802058762165021410609690558672142215005900312860439597564480594765726714445058565776026833704556628902333250653159882813790269963625291092903157178308126283454212985044750335543779526202478423374709493685007095845040939281767603855050639365702767835158908388948163485892012440963652724953899720171076770900193756413865767261982041548828192031963948585851925585844833025357582183944416919667871870322318726932302717961705013316165999566589057678396227282318657300639358763190129400259061488927597194122914367785646173143028265596309068119319563576113576172040847222986011992375527037478613799233201198307758190850897819542068516425660795542912173511156083488476975243084746503846575813033573663909833370304525477580054906379883564963977327775143385451748433371918398715202967560741216932745452636861299222896078948365632930037220009058356493218757611317178905515358231346294448274485163095680490420221216309441209729389518847254772699334222779333472473366199368347672782246755246901847708336533075945519862798016565962942978856210247494521732744767866210446270769086513238883143264909598818581586079155698044480475606177399162008077392466215954129852926419416282124645112327281610005677246804031107047148259617087422011664741679724825728369787712079346324796895401181242958455272425729008548003197016584665439586833194333549501923093842236406156570287782871131242622216418943111050242309403699905466802994034669822423116448386718057510776533994397265083484251009715187504456114218329788801803560749159915307879167616077489190204873913110590009531795177349275475424046401736986933086460979365322547552663675938777300399675430605952411344195418485497362863489497794301315114112964133116682855082193953160490746154048350749080256453565929395030216829368080455442276313308545862902159282190722596195335010973280540571120187819064192566088363353501628031665218643829891141066327937378020375736655092022286085467725287865210830569195897224677816743957096022197183966366987965227846365477006386314986300848956393545738018478098417382983729491732611908065130940575973634243840966149652700428563165242409385784345366661326682643285779734854286583066332494914945793456774280368543196034347904278846899328479534446270532063019926660914928476868849394817481007766279896109902841730124742588847679181301503526402670935022468792659863335439146554337630314797609199962371608594103783683808860825932179146817811837958957246134680408814973750746018503877676057619185205253698158685658640179237996945446678840343230099232116928079862072849585420982395451919418861189950886688674552359886742118166942199767402012964496396444789460129402543468840905288687375713915372693414229981027819748884444888935191324062797886256164121748590797705910965484556634119837536680702529966835493737151525105992011404220704529850614930962153121210361106966248711257519511248563965157777763053867468768252403934355247400869484593903267329553484352860819572619007684409029114616867322391702722984457761265440754635623949161246111170781721914740376849387223116157695223250633377265226371002662816678234684455794835415779258906121738891572047627212845223755349668779673615875683938180185870017209445951338928239631919892686785945919614538674843121838049407514421721975302876367479990259002507132441460251831759937984814685646201210604057373228245966062517224405939786536859485282262055063257093658640138165052148334303521755801266909113381912465088760912929108801373995429996659975313519879560259386379885451966587836686092048730333168173875698857721264690580435534626872261444671055558915560875386854891924495561742071437221974848466903863277892982017557146836357085448583842626885695658734178890834204414470930259005131846661277862462228898538547714631483836881685237777604873364127990927319688476575853880477098041476315320826760770249958357894030039308855552116722814213129334216560548126703506157629044448934808595897872926899898422846419092537473797887596621231417231787962005573934629063077538361638139282003123005486914154686418128696399999965111957452442292642042385149438944871102785931002606806539646091002083032806940105938497278687379706002547597039076594338914196733596521433472240858033750736182427667299665660689737609640294081129382065424770165770284002119210811661477993454443766944569911505602420877322580515286543369560370730148371945570251284496324220772643781975212200854881525654531743989458857029927365242837867195396442463436076150973874641733111595759024253091921968964619658324745234659856700160949811998891119136487168170985903503778308365089980701997666083043120758311423455212617708842221410595353859292313769893807433302219671966144351588640824774696657717283636774404338267032462298332488065646976175536249980470803116034158013880913059481243171771019750667815526735624527090808041665869900987519396989525347707501343728981924121087064996543560509053304898140991700174423593628937000403031355087820106956776017708937332494599433825616970222810565478583696449852227254105607576702618290107490588178135637575917034831993161316123783941317398507435651939224870638396965717656847305078246915181230258849826268617456224219932154687061406298717709987312028189375082232928737305473308323493958528709907183271115433777716498784098452226962128797448737484444750695311621632452898658375723767408794073033846310676805373500497538203423172924283932578146361835583539273842224636469518982359418632719843598789056887380045313009989632274093313889780977860509624927654957819163593253115587125501212280046687332546024956397922505407948849340065087640865266284289746973218279488140831394390611622252495725372869179353951911787213908411780402947233909483319444581118468347062717428111051975491652717382252562146243570320018710208464500708584761195797629928817777046923412845883083109030287321983089112871279693263938129078533579076160794455573706900957895725719849002895804579260194323681300628902202163782302380232050683593193586378909036740571510978218976901803615993101906531158795902021788125443657689652987872156213097653206548107144547101682251052050110727975540500428884360858112020521204758875515387309143384204172639640132749934036901665402766385837523281825020826722545744160675101047648234454059211703364985267189506697980766977381566435413785663495848488989474694397112722189357227656610513363606033722774305375252110549897036614938420252867950360372300737015070939811605044846483429805860266945984928926483630259871297876653570337300890790628417953559971875026834228022839584225088063550203352613103514577436108782330682971597195317900398253617274082401159367322295908168113657523215810925235906500174063607162176864087849715979943413761080668262035310341290741361630980483724356130730729920034606072812585233329957046255394334826954737549906559743263556508318619464310992038546033882644543994290351618889341204837007686913583777532394494824476110396577308273791484676973787917510804068317196541435949423867880115926095223973029451935122648609814075853769348735349661567655682960561722567165076699603012575864166828880459938174863669610422224611560129342158358256632379177071887282173663877995789844577570625037082956078391608389708762553040856825472921482856276231618264530887696616680777074040975417367793921685540115125854419518018638907357818394852297208044259990922308470694162451112094663105614750054358032559686952993011887188956279196782659125014225715951829880079384071349903522006603695140655085009423967411435186134168145458903294090203448971782165748782810667148200886043405290466670333268232578072574582751401202388691759397091168096208496433580720429697150816432038932457477148734698683550112524638789145350140645263193156607968450632474498782107220599404301259282580065502861380493008415986351146717309552169040043478671062007512356668927820219202915851023880381939590673745905275715930489046286054802653047132221256109539291074946900245636520038852964523643390791555564684353935300309938015025026507214614608487426594081391375049718834331975191501262303719203074561623283342518807727651231177287262503225814987607662579777058329085685869064640000052715211729331799382418416351338811818876023074495559269487620208957527069963335775858472574133442016437339023379744584376726937434593034398516605100699436552659438470386400804001287943709723681976169777495459779736946700307140982092085495739928308560700464955981947863467816420313612512637192098484531175434847979225796730696367358221632761921150403672279887229810737679914600953471558561245847546563827232356824848811575113914593477981233011343138230167774869974407532386520148693327560150904506700060292709097756081899752248455961792737574541031926080784529633565289037388219098404388815202488025687417734020415103427868380316630805449804304428983990225113968477805130558912319348953854367463620322228608388074778807362895591669936509688726176786187436992832460921550582865950136797704926845891248497028608965564954864359066975889389877770513529976221151455703828953113957865159779537461507408308413242214844401344745844227651272977959321504374946302261869866206376993904543682326539602420967161522166249670923817215162343924449294977395892537829235097059329220670998341207598788624509385126819907891169128665473895849820069723069397002574762681341268128847954386950906909867730701108755762478472016717256027478977330184641736050925802575194313819870562005752926093964640907475373617191285345148819076303683459671518398112160136694637564604171703533004648221176293253902458430636222807854750547684855725044055579045918840248493269386497304516231103495930473149974019680871378179879996731483046959644497454737785623117757203753958063797279381683082101945751710844404360010926217268287347809293040907194489207964527547283435597039735476841581556038444302067981291274240408963959223059086490928293069723702138925224997243445006484789822267672043255449268358048843942489670620456609587352352723398390281027306135032219685224397772780214581258180875848204096247136978013172438731441650769263680452849026294785406249874817438451356004521957527923793378173176835994315192198053250260275510935860409892185554796374033476308275607046285275832051639856467746160335941972426036175076971147632797523697698958710557105343689260344306491425483477461092647925394967049231248189657970582241181860860821652876055612867006948169879170759263952208387221153572642055443547652259913680493575249798987214247647887576490235067420053034691420812285422102773256588407439092809039637006220050304168312988556505346146790767517336641622574711982216209375192674919274639492694585238270628606985014272549215101177947063508246937825883039327084514329950643180629878093462267988451750484174114628142113852916215642932092029860727507898153414759499192068311911059935914017912587644848804195728212611574754696069951407876772692036552013516471892432298024770908906545545170457058818416559216740286427705216675631796162157672749899153475878249372453469273018273165836036789610012629688107707985552527396409628910247098477483801420678723474141700218875165173284710954101549374552697995459239706219952325733925345718571697034200464864282228738651191909909998429435044610219558931591746721363413200059636190091975944374911405710197045062398769617675702945720993948010892698292522324334739697502336135991774771172540992143123591899886120578462186359421490773004536883585786869293962543169347360980325582162149904931781136426901694899314922249032771287055711051524614632563863376897761328761819563926242660835016891761222558122460781673379945325389091221600652347087041562815234522910741184275449529009916133228891632572656628022782480232903297903528682895029009530871593263513579912550969883128958803478041724189748420612837579207625199374947232647588026087004075252268239968136947581162783321447919649857368611288515699123988832156998506990018785507302591498579476351214380328347107511382155906900418818888040993764416825688183499733556108287140478156672827139084061162086999806168195880580662821285963661518117099319906949818415100805033580526039168107016249290248715460218983399828544373854330754389623647358999603628052180161805394804039202726940988691194630352262369425307378532333568846259407969958120178963544674745376555286100871444284251606366981203257175853499859283836812499627446657853182242695126750561409733487932205374525178102311867320613217194938685275234556514115518280158880839825172384182113247251122390262625889825349571661857085433181897225421869853609325312598771680875302655391601092068853752517271443950891207899908195821644130218538015947916715950924414265868286159963979931910882249100550076239184904074661430474668977265294397745200944768900298945395834077698466220353582728087287218991543007260678906980529740062819127395535288997977967062860410896890692737712313886347195569118915043244098504248023933586925033595045202534520701690373905901644039021664283780500241803002167037182409482156997926658973544953284817974463666071260056022480457797876287635516539955157118970841907106741826550490023653726700525831748368604435671697646698191281747710948423927915142957918555134865263980631162323257711676048652959184874724322742233797439579710120910705846914486338965333806724023062154200812126650999027665985172353196442057996238693644290051666547645391580097185043518311017626677224856032341238389327133044622613712245876573979840416323843487388289722687671657835105499925102680741498834961950973496084599363870986378570535786573854979219269003787497988658494917311783718972990419926862047831583392084664801140641159552507538055357403105952716332922817470189120075024016535901448615998657975170681980122001516590443297498676862349000973458864362961951593937341672133980911098818976167492841157301667349330104618527244467302725496052616078171508440835569739275668943213186522760833916894217355219201673963779077838663854609702826407352580965322068052866634637912306169485478271579662031353842524374260332559438336754108017570038241570242031698658069751108238373598521160023030673844272806974373743556947516041096126608906889243438856015840279531024063133037270619151593359236281474032507896524078876303808909669881806849693961434833955925245842486584852913478007575638204048731379804954095656757631677677651859212654319890539418740059755161485923698488426021570657416208495164073321797811799287038940238543680680722876131635930072158784734355423453243648516025130938094466814794136907859532799893380906147101315061862263891531168955807376927847526538829159390321425953593375971254110289448889622463304635235428956316016758672706256288598274125747129585330963574970473690363288807564669004020124822932182969519264526676700386333773459411185192890762103999191580298664145824412526447397068071895220815192091227775373779250453871317122001126634961435296519224892356228245596665568994870325572660437349927858643925400302856875965604012436900021737479888956749821452592076531825524614542285727166916564265924932524435665482071755641503598583441510117714301299916403924921499175731985689039468731668121757135194705189008353854656604033727336501625346614250942371443978146759501237432581154491007193204198344678900789465525257414066632451649443055832950439022534676468545203377794127526007093784406863990470579617035126496537134657425894653451887025162715845545388788109905104566071263314107114591607974524746586872392900199622521335967722402162072210426627728486330718667529651039088565211050118630544783440309204596318138038429207669165218812796418983477910673065217572348074449744019817711495677853707848998142942767861162529084212413625363210291296518651141523024598307373657568973699044100785866210827764737475093431768118615105772281978117771952871145418672271269223414384671769843253173126681177930018042876697929495262632249938798189096521093960042839368017034174018662153900831520494153020914062330887179421584708389101084748313523016406525411524676472239669201772360333602353030371682013581518423585948314477243416031115252346911846573488511273345874477740349861275092565185709702886721497036741419920841963993647135097827843011802948568905390167164972049949762512182032954889233087803082999502091074800823919331543175275831934182364867215755132807989734282217050060337977281495696370262144315391175043696175076062154130256956490452186652900489311403102572408544930142022283290970191319974446603548119887961772678551722481350314068257250532742536527934637113201435513440705859260438895087639197933152524165164505882525968762922591368680835563431630764715347046326175530994663032934415295320059364071219134319862107319551388663354752191636228916365553317744598411983012442341842556350684905150922590192334731833370848977284379871997419082012546315776938635954071139640910940218606881509175569520492761175212453895732602824132868853051562643625421355718951552635372971036905211977080120077192158595376671582464217182166084809667354849503448395110266815159697592986948186154761754333515868196206784721627134897595205778017799197126464381972197580769433331380646827067250223199226238008510230622476833458625158433188584846212839128025657141107094292667570947123319226776411286537035135334714379114223657003447816616955611936306136169066815690828885944740592018799353975879237987691780195368699092337011143418464877365704442308516375254546262584862924326605636049138534131071994306817812850839134449539053447311403007051827270855002720838661813845575187879006798099346314888052014824561781526158243201533650758344506283291961978909945703854743156006532198254023175556670787737585086355474248664767032472015615054169171197512983994342259615401235428802022804010077725515978310446965590774378974366142629485802290403427043302952047390023219247551351359986159171030863638645733576652201675381367782937189737721932369307485071296246937869466640449037588697298173249067953107177172652273694084301108372983662887672378656450175238651733657503031647740233877544805847491860465762799131536620271955258543213682336698776748275243198544738138449755178196602406516858014232892111003105161662303997276008167010208103780164391546695137755971247353823208417603449768112359896064239866721353631120157095388525394454158854911734145763554176237011119516681927747660651360638045795526572225894712102500465541498500253939515466653378864777760228134591980086816242438740001527984296600094980376476992246041277417986505679063913433319397602172272967554303732831146746810704060704440705518405640985846134189530567275051778772232083697059977307006245930652172663613235190855017564750007006358310242298959945334639854367746985423643106539779198786935702739880728104441900590407336137547433144841326204107249754999019596749317229584253696966102386102727073060685794865778596961487944636049164798424391210593472398925234187493830504330682367863599748345679060460079516415569255812238429647992411545021732916102742781591800544780549855583734680453182618050731110085160429256025979634744828804957253141344900908615776570832489019870165821641772431133575482090699834786774471547062557043736810755025421572145778709748463433469075700155384515277645376352748690886574101637674609860972509737236802063881947497881126895066260283201870806111808606854102355826328709418941800098625408862866291785678489702678141620372743324024902787739308975548328719151161109640010987640266499806240749601010801247154856329480706841227306873035372579106890125747463824414318293567704431782254012061937623095745162776256290663116774349162587186238897814994641996003112104611171861215308624317091863156557219529838457919749239880521494273133046468912461703050861762785439656123844641964291743592787739426427015305317741953936445930477274301420978965645268238520613656880396904160624724952837219399907449391416795496717492874322795977013630027510429817153092134870036153100369027867559738658574176121958905545468329219326441940763164576694642380301827260367590080041118438432717489040262451311139445032444134624801192078779830640084195113328744277634570193150317124279512263970724479614675203890243086132063653016747453861828903933878215305374695144287555960521034922993235531353610526352128016246754938238473540248438788863623562023157399596548569962975981510819548623053560389508721567412377138373420873747579413552022702005052086856471081492834530001020608626553386337847932547764406716904987440007808500051544327831683156360547468290864274729931405674384558824814900440671489169528621324352318237827317005891649398876157613360707643152571118734645284699189963683302910136035002348987898768963409540458583338767277153569890755460356143040609252577277131516301198029071144582642067911505510356742434522849077620638560167909214641317327981477789939718113908554022631782680248519678854513118194322419467698872987132468703560066858395053124580358413389866986214843173274710689304746035712302773381048500300491365286290351740388194676569845624915830513251636667197212166623734430041992146832738671029049266546660301123955811925505644276317891940019890229544939748680050266094349265610743703605848423645612558199195503402069017510556695366356897254939434590279873858826224555386708492609939374506339777400296124698242770943371136206069056958332126760911124204588734256555545921469781784356883126129635258956877860653119413903784240853042324864133394457828425357509503269766205901071964271930664048048778831254276054001462819954469459666743332158890904327232456705798938847852978538970610725739561101182589406380807951562623363253904662197505245895270256800171517248508256166558551649672131806917497408470829203814264946668521511589296332072793871696536014396249627573566375423233240861747581565723136457209962614243381564160628764293955344226997128886369519021485318842770844874370763942561915102802786227367243300872998764012501393711990342628210515224272116513424524034536876685160968039506286405734267997975868316978568365209495767870141046843580385293255472142645539814944157325953303110194871684668280429639468404196797624406784283648532402924446258368587144554392630937156549325055137780197757360256116575668318816967609713754651571900671533980442423080353435151756702784011879677891692330789298788812323218589616393691452271668562338350108177023381405667015019175319033931055369509555866657615038515912441828408552561944380972036564832778929083248669538600352441161636549567813291088547711439659032803679934573041817017794323074402990201424293174427503132416142139736346699435331586562850539787740857399621449812969450327560794873125509276836701859344629754046087741781958765694915492608199269808007062765687575948309444040474793591639281561587217475547856250761877001769712236786688297349112006216004283919808365189000318380289352039508594026217551456610736647333950627843082130796642508541229720593326929153179148814184997576781811246338148112689504667947802585585455460596211019650311963740626960221131768700566938820217385965917555328551473457633230414667264765337355431886732273455080022081751969017618321350760641141592136375301812109489435087295168818800450833899316329103694275223502905126908190041893072606042976844422420599829716878939345336011068488470991549496432311579532585588357081943659458978455525147513571861720843576249634360829421178616284672081589647856533758607382544504416097737624685158949519838474652608889124822808865245555057665250362741711340427451397110033013711855245888979951484140497920497522177450103949433621402093476781871711703677145694226411394235335446075150542536016049929055495546162986031516456762926778802584686348441789657569025815641826161299825536728550282637750415016351593785031207590686576839935729442338677218736015261517653539429686964512517001157583353503600988788564328166128652875289796139872407477606916732425184360107633118777087680905824116301481679579642847295543832421358750098646459718189288683694979527548132879272047851049580627959692571940587818092447779015427679726829394702700877722009036172572762623692541985215652884310370303676184423870640357132527836698589742872331314473742148722045017294997174589020976946619441692570314976927785603481833814786622676833987147403349727064588474895579601080978537889282159723455626432255701040236612284509889384271544730150529057241370934761232654917756943020085385191756606208675566526694221309281028595956545462779657007694361360628254033440422900521448186711533075936359883589772939737604849892616136691403296525587894304295182695111068799564719742671745492883371589314104800299149178118858066963759998211969087727861391807200821093105623358187943633776886009877363220760574078386361319531752756142212912482901421139055126680579509009180009988628279436283101758879111024205837073802787629988494895506849775345192389375740047367556638099246781544385856952681283624941147283806103782788796090408780961469094279335452694889525435075715580161783801132852930315338526014778774842198417365724443556084656090263306626956439738244086733256177519344858751384087903278010324552710391754214323971308640278411796822742676624005425012773383100313358443242943400761940990987136529751305363534590856123792653133156769722826892439690709298032339517105581415777935486114766221769167777126133845472785920832150760188548158348814492892139777914792204742242126709767584424047951499265168233976684293257227581750012594057777983343460930132922116374524756858175672354761759769456511364247903265318517264261787457577243123513008996771435910223755963036880127092463013660443382487891007889670819223930622552686885810149948662650718458458438315702562421839651990436785338247774816911193216359251414364268456028526730167223251511392517118789346791652050182713056209051841846633304897978753568518562005893837985263245453039216173321610395286332306555029369062579413798429634936951358659386563989579038109997821079969341628093314558989469566825993205929843807026573073620997458672669487041573709022750591815200000554825842982247754250098993944007639915541578812641430453689910107348761960739804908897511591014913872559443252996545117663818934092017581852316163973211929607357812312458803209953504819665804065666199216437489716254591430600566157924946390023174276058424754759988062266529879356135452230089412275464795148838844752257409522665400035551108408194561905847602024919462800746898353078681366800752537063870138253644094866170428282547001454197079679463228339283859881739537010592639296947373295295201521085726405592442160047275794248019155335780928814202116452856412244319495529912933921692713752402413663714012215689658570233643693056421113679862758991001105167403391787586335935988794269803961952226508480339062366517366594847759506256615884654572692099783078868546493850781590825455105516738047489227068517165477588466024591718137269148930259929198035479928268046525640902701230728082167429666944070952084109887021117623623799693405717004499423917378367662677203144772915389657458826541165065914380698865261310321346447974446629271397491619682518946281000487295995643260258238444649757069603248423387786892173436572744764145578021543124571437820571893838413034911233328332943546301907249559838873520710723514656090980350290117130917097786796107498779765570472066869006401926806733358738554482714922988338630273732194068581519041944056528451558005744611059287795689245273040987767842677462967022944457845874634704710386084119436211766762886522341915344431025168556793935591861571461658512401527165063115917760004173789217356337731068244228153925397898443524351354873680362859988250693145868878834404768832392651767278793602282115175954177294450932499338482445375579451552029720068706905439907163735229121144346079290630305237025545709342849613557614676587053553778638129727266821514391972704941769421937361949765125787945176346652866046576908273993869705671823380839234153295722349691921921762722371289740234144284535090413070201434887859659438502346377039089554299199278027697719490347067013129946303603242073546225359351085526051760703272777673556774201717940522927748221549054208778053252610188902235080331213962067575650223137663291231549017687134784454020247942446986990864963895779848832550028113559012591622226601888584979390145500453496139595628001283570903527014034465061268661710775778834826519871083096154711017318623989529227403106920316793908645193008823201956645249110300191155840852080899210375248383240394227372163277357769587971623680514633466508136321899757884769383151000356010236292420814149555642275539819585212680473187582631538225956379563026358440247280831151199538772209190370637277057894888388074022255627434072939999065139199731283066057583258380498013301108017302516019012689509207570662862690665088545285691607036228158033283128222078804695226070044887021852113385065196223483718950255886604119767880009292701781736084880668244152711724663972042521953274978164442994402965236971305507720906206300874107639443741718189588587719337102986609295717053714727302232185433060018995097335396732123041825198798846195533502929765944592121447024493624003736345640902261456618677917329941470242024997360412198399849013161075016029225379853512615358804084385742063317213562549446409952324809742955400256772774730503477171861249645131231276215459847377650981734314771878727673519011392494794054489895933494152940764730327089736674881872079912709824657977411093829541517971791496111969108792346065695698133128909680524107305333039206354054096898662714474372664471672397227231477196480508184835083295003729907385152253689047587543514526081209984008706574693698220121506851200922067641407807618055885521425543633218484158857939426834104349818774763382358538619888342529205932833650487385128472515338132095647950732768858585382025300144107739607236845333240227536044733599219952860662306348969555780788218696437680820616746862425217210074193832974434681399327657298702715270656401347293879058397297946180406926644786512499407312903304326572682413444478422973436860326863859249005398643512565075656573867545447874708405912120869810826023114599058345159445666321623486263866776625997821215312657865639087991668996622060438566466976309260052634534605965872311191520028481265401106845709092226479294567606885197893772766982005336259688524229922058813887771708006395442286046011677969962451178384996504889121661068500812098413783001339049061890684049948773480803575333800373593369955776848199835601944987715765366081243973220391288999665428837162265250349078455561018394495719803860240364905673211817243599913314738130991584133926638772738187990369910756380828204703366488686690702669959914537778515798614438079066219579899759804239360696271794172964415816647813315613786923045627004994677497464564830680713177089790839535995920372369883756683539892924722292558666047948910795310388753830772477010006013949770413072954697557293418965726246759215405524468133062154800183603032936831488195805526880428393213292414433979997894753626535672941831910638543405640266329728532547014816399353941520367229013720913092666564310957126499693312329368069088456954870488161198574320422930540110758093236201291744017714218765910514777908490701370570295466416235911285861930894053957387691980624902952231428160454164644245628303475646320550410210734006941387526876441630200110926570159889609785467300332834756335685823476231525223363097031596311155537219305499147644673579669927866073772510963708838694446260705597934090999238412760261701437567176481080403389513867810800378138069367661260786145124016793488319469294484428752961423822617297739482740065835579214572588759844554852145950010724371437438350034000786715180786493850857217524572558737180517713540085675947189023667269063144939837805345599061493981533844505090926129162015562231043216984560786975604014251758921417383824983796964370347265763670573116590181450573651388790775085505461171153796887985647869418215815751505455829058850469821588058202294388083707311788895721374722379306908750818368251699882190084453659210557944887704443600486157827527359860488541740577371298876370707266258595200934735716108339382278257307206334506047012892676729538570618990397734603657606479343119429605802549986099555267083027259397169436176124848136316241087981844609544678980122440825935275711826124523257884368027385557266602449859909412309036742656304095995618869677464970344337749834406943656873966052731792317661139126538232110881309388940908615498364621203395410657143804672172486528242772186305679012917133274330819100260286592523363549763085626221182121533254675706649335306202233458776533790796004604781967631290639114256464688005050306259977249255346893023187935880007394250361241683425953854434051080748907900815473509453926920809858060644982484505420464474380205814436534188232316825829887462217963134260965856875208618536572921483522764307289549503728077401529450341935487968292634047876645400372412260594060349830808002866431019266517880091028498492459309723116902224663104700694029623185871415330881667551445570728506277969952396576659620468748073096012121849039887907045091340972921170928387671384258643802016407313268467499465809417589933724811245703753672877695920811324358865816513423567400493511634858988017281726875422340209706718291029774537668041704852772172501730709045539715450437017697256063188837814682988436666145764281634803713675425075841117503520307909056071603165500208125110943165192801551168422213836349808743383754904109410812126848900983424424441931267816128155245538929394536447820705694664130999166855410417603749919426153377764073793077823940454343530617332031072835621782345556993974322530926959478208900857845856465585818873651844044006863083773134388503749391901681883626089630559431848188982418801965519460584254422135971539436422639451418035712111486180882873185482671804228068665973917799146975359562565218730725894062377593404268105712978018485720404989962544606845379829109005469277587624550410771628649388627872527349544606979880558326427428817353617978324305933152116545123773747881029850625047128185670882085733891804010554389331113490148959371869030116519793452663481460010209296284127529673043888682816789289125639826815015424297358010565369993228758640240895248336875094886291441983640118594541150380264115326834228438044393090405912111439500976796341739434178385516767550777942006801998524232924310917910597809999813484068277046692688355620364080007275665097211337617396828133805801267008867073353299967512285512116499377382076749895475134285661983554043525070927853354870875213560977805583866956218427699537101008647203842311677376576266726094768658858603936928159499216507156413086991056311811832018524857418003110447491712354710725782481085932808606116100331800741056052625037016718817771045529428575504395360197307589947113555866382228008382715576168270644834712002296088487686727927165933172671329605192913078378650161665171924761340099259476011327172628577125371305682888111799423387428031020934943106505344126239974887347840681511476983999678117431254619086183725162715636255975403609656406120301279723835114092915959893315522911781497254032808207036797591501381563696175194485417675572330798176462873730677454871671619933739822243357955022612784278150704086185130858807812899317816998099370235167384158994820981861441784986817161902023606171071170021953102274472035845194226529472167756382423546109038567236660465880277131305688176093092147532232882353853846356785029991101818324055686971523466975033444760433404725731304932601684155237713912472414166502885508867509979999453721701672963178432728466753573585153224595973756825673587616639153002673193275099659476881493356543643416873491595174825926776182355844699317486491633933751457112426597361008151045063049111101252642567854196778257501810353669753730192709572613904403182741724477692094935877643272292587100670376816358821290531625506286302264894499787299444838605202729400057473837063344818082269170313348208355832370046915651598543493898268089541717763299999293650582579679018660838606103033932769070043401746326492101699382960340824320825330567509629634953299439397366410390368358036425505344345580648501564752638191935230534135613891074900770963251502197998886763547651615905065361602063907346388688745311385480851964941713331932363205082622157800120712674667759273300511392567796052646364303876229574422203496379581552573570765466741460506282527798841981653804635262844428219495501389879669883658277772018506223679460595496354228619570240855325843281067742964330230337766212064150682535181663201024041029002535780218023231075270291714494879793680881084670551990442031632620831736230130874393277476376513409273121956788364970951479426751189536058468217883772618085669184982544102101287939825087153404768041959296773199195842149389546290036672564749243140010847656788107249626561123815913662300964385754516445280517753833300844192958660953761683138502891324827268765894089364506023983921797448692109234429558989404391635339645347119257615783731925782078746467702547420667376374152710955396876796149972179463289468187159644427346166467061910511429129603140976253754900375594495903809950515448335118959099565628474206994413062926858194216915977760087092274370568952034236800732290756309318440463621091211252893301331328609992239933433001690813500238429096868998352153930279554573520355919942904070951415411808765484278941992282906184953447282187985951663230125143434623037505867831789529576247943183443707087466086433587128473490680373301991297383734500973323151198691360375941739828581772899152256448862590186360505568441425925363885059566014360784803801126278880559476974858234800694782225279697870639520101490772113571811204004854338954498537020901127849007745962446586058392015112294168061690899478289904967828720435211920890004566092423598100848155853871622503267081107967195405935494595123648603765821224057016305491085515932341811172474514262890901802016205168271490879584352159704176646641157691540565126949764727031084303768069984936803479068333271317418528027898058623714119936690188908696220351070902883823543316688476067338452197969351616144935424803086522215235261848307554284179547868461895426162043634372464292671220192520624429630504075055105542637457762573073348817697615960947009429522374801982770548897449296227396237426453657070501542499998271885316193774696590545315675463434728366590138715589617859801543956380709794372057132610117784184980283062516166158930383330761659879777277638707073624430784566438566797768737251903129692396784849257440637878857040346284633635751093176482881701056005883224239491166193333346899669306674204018875369678187806633798671618324209337923545001004191522895910439991733311254940531616162468509479460448486212306047359108047648828197853637003507787871989778558328879074965453128671915947737549187828532880526727680949482510722702686945026833723071561677116367424682484295658721121963760787271603636273281199531787064049196929040848608825422733542645437984749696071463550453422057451029789073441458986827083330367832636376728501751209099304671741329637350629128096276837234883541177530036863010369138219846881604610149491976452274980926793340038510091787895258846656618382027168358937581820066121335640006439471615840622774613240671850163985251922324535623829151628753575959142598975095819857483587283514515632980953471648555753180677558638038691655543749596061805857747996172499939798503126268850666063645600759398294831588822262697779334016169629352811729134193685476813173091492090916116941372850213486433698269418707078130890175178702467065391526921517233208121315689933571643111923996344650090104859211062633008443993551511507451332930541685113381731729020491684584539943091584060532164270346744870831576339068894507052680949016021372794972795865550586112138051034884801890049808800683560698270921035396168303324959771561986581879972167416720450962919596414448832012652045646941278365290916002650906591859953401406562226409984320756252098380755554863279250993087740298494940145806659093257257504782001085127674155605753234046840565754619774923181066376948913223655242564753703893364647255794827287478496472770232596352903728290862755515515268434737044152499576058065901216998691696530834145145282655122469671852496724890791854567888693878366205708252579317144444921164822263182162939948393260726078647000642907063245925754161379035452138664295437069743804788349694116684394433081026209271657400050543617644599672724108782273370756980181301413216175479191765785283943223110459765947160377028525326262345463367721491983278791818198041245907964411688399061022779989298392840460468620599656767651115827283036883396436482158578681958712313452546741659840121999182614530491032299135160476516091673287514433334109522475019261573663059146847283340166877409527399499030692570556235294158891281407411596792570293067413375281554566958710720250748393282654247013262489228541565426737504638964625352639570681693092070869259747885285288142185450556093515969036261863567977390849887523016161718997214909371854575263872559535488839293333169176106698249107020077989867004937803934521233240156965644002991089188686019171473635943936385395632654807205363701617127721429129177674951089944385681776350961358366519284422720475232276617378956196347942867186363162722848334449680983294792024719693014634270963911441193056105465060737481516594569951880784762530154282736126117733202755212450357873926581539494063963496079173895777153085375889840264792751872089315691618904019069898417237926727520415107678460942626204050414317213992303893178914440065956108044323186764281961980537241269670689269491102906414081426897167880367087350300385129366028481200385766435758317708530466271313695627224383156645503324702032484369106512604953831960793902990997547662217385449578218904553457658486183603475521923814224975508181977473775565286030135200272803446134559470815277362219360895245413373633285308887010487671649541160324401914428993684261645990626979646981331976784633595310109520670876653037308897343422864481010684700243598531773192337498081932195162288096231866760077535034653224947509544201797753974483051554359053798502367348666314882285402666574746402365625071436841835974078159149205797939224155643200675568832482345807163940775964755550695400677652156582416932781354181305291873997331280281244915345861684633801705290875200291017075033506117140439708068592236881794964462069912727387941871104838021285009779289558385227101040491403529130894625229602331217176746624829316015106223892875365228631131903963831346214746963935609841178799365070828525660194146537275143537996942005601749717130474688317700607761060481655367578349521898675001020240574908290510231785204110229357137943766725035560994913208903117875698501783885661252617857480533034442495737139623411267077087486594594880922631799361995978268849305331734976742720811657047289394458861313812020111261178424565441933688323133160458302255542032110691659338617505140726634314539722054895493602735495295081205932456462314236389125125171412830883797844868087938485145140673688510827275569028930822098415266187558389125448418660945104622600418546300757973608041267189364997732238920412892483603795245026233348402920285709032623008712972765224857378436900849005983910913716559085528079296947683282821800385130281893689062012655715236963262794615509892806623459787714471299027817836443450204586902230893059353615688247604420856101347822158562207898335123620662630036339423111315356105016844821397769673144918236733070173814185416427385520721286985388844144245199673230195111799527210672478018578663939691384701298095076375468956428598042181451287045067630072398823044379220091264941601602593982888253672627293017833974707920627225032038951164398163728079465204694680798545506750836511592741803016812058083077296316030007353452778373154894523822822417271461648548684074398969047835893577047537738952945620527217798129496911685336022099726690774898642439236540619124632520727163715650076799496158647703155865157694796175866288486896358291835639414445234071220903063250882982838086813434680002352535716036031478092021338719240001721710984604562501274971613006434291638611573194118649918824005020764469766751572331609049007666909820347879780451384519284155394372997010386117396300829671359884833502456358141257337580545256017871285509240422926466758911646138387873666374772490956019172235171561410094579319044147571014046853740420232731359039777308439217734210189390226723478145668328149123077101381998248384910470418051757457544142135352154232223422188296133632680771826966724812194326867448452883441450088478287408733005631635249572073682939589896421369977112514632192829173142429635413968333323225408976202964018763401736475396553720057202626459234838625587191862779725017438699419627736212482351665893304284174930474924195286651831897250624525883512611626201003419011677215487076791493022144972997022541039637740429127565390476175386962841048649333896256033162928534386235216157858817741075836872356973390389607138797117349585135669110766181258241885933770304537167624310006005742152442637158055743026129597362492135026325074012121583778085251151596643861541320333467262867063104209234835016750026319218620001016217001398367516168743710762847385400473418092172814766472710388576051039141412301407990848563090005004620215665216616652754506016946480380789088600488561496391945998636334680370600612121782639364085566421734633386867097366032272705869054235052847527094514607497822499699055456991667556159602986969963797544911721017343886093886822287609623349612303427223580129275430412423688187365713861444275185186821568666689371237526798382768481128302588183441762163433118369858357638249631603411529375866010826155646868193764188702447736572414547343569299439655208301630767146146674270909152272394023950778939079472283481155181495778193802213194374920137631649399714381573884052865518740665720081919079457792080026688762856348245668814854728113976965649586051668180068696343046717603658072081316960855798075700784244241340191299776603201110545736724293497791816508824258919776568760780662479195454410536142647954829260619934848240100914963234390647600018265505911298182651595179875598120142170303626016380392470072247682232322528602963729024594652012802885847889455096705366822771942560425108961467046570207885232080809680894812791204458950569814751839936923295693246792435312974733096464094744020138501335910583731914062030043122188475647277350002002013550234967719129446583109552830636547873467859389554743450770225652623495378983847051489793292094401148874249569424613964343575952266704367472260620119746600815605804146750394900163830470511414908069446952048618445398100276705029051506577919393702135906120917707572335613625104793028765370642920763245791255571831719519325719193504146621480356318897340191373713111312824659358018034467056726324966637693321029173259625631159245605608579687810566424680801396840589118143305451343469094915848008698940119280427278101470718955982026875185795223515911548310618557219671080296392029215639333361836526447219171630459308486948167754565459303420086733745133369629195608476503032163543982595175037354456262262203170294923023822723746344955836516979249256348135297468208056965115549027569988667259725132324343014911264484612589452186938921124596496564460767376966293322585106417543873344939653629060729727353126035967595806186640862085594576275669844368468615002442831088070521413021036832266523612413366524292079151303702856921036273744142442106660005397691109924434258230843381064580249509526788303879976258191808554720833375414994430860747682512445190026217708526150131575796007118349278219222928826560376992078417265318941474380821177698837988856881709751877222166195377294617160911903971328834106827761977807594812104133766040815697203430838125377895859692039476271990170474790315398456008739721768799601427120838820097509315793278055097725717025136671431531733077525115322554885897544984479220769572861502999885200655794311283680939374314889998456972550931319068662730801763555687487919603421906694095275897945471504023999564863275995071408289246837192986167864056898056621241881305308656961097248741807343467105779651646618807174985941549006261610683616768358851813676217507953099933563030891095581423359278654983932881708833835834874352282921129265814881514933866673089174362376992754799335116849455805594252116057177176006559046408903318429310115039615433138179378606148929269497368846105661787979710793767148707185479975177645337010242271946055995536974168479305489652979403152478911085344253618040314340692628653538624501671541401639384942964064598218570095102992731435026315002210996047885025102973492580915163629827727604049717658331430460797885987703279042786507133149747049483202307096837206515408137288826654354713101054871250254401730641718185547598077743550608478347922715653515352830000357028211131168387171642420279948875604504095212242482316009130836733761191361152770895192291359972527280907318846160344702871072913544392963904514601151654283322308183177997586265021709578021858673280756126875467933215216752474676841840226383291119368282754247270250540921350782661091084644913913345128358013134966162240137813380967235763375758021904448381522522080349941110207088637370866601569732280755035386592973911566980568206654832054333412494622892876046301644246611271313925795366528528944047195208477967631013450419219140551254268545281371444440576740452189477003149215939488484264200315457400688481219191576753588146065034059724938896325369944702724599197640969520492286815084674127966791205014162208770461357862662922628165197462059925087349317353468284818114672234515596015592646701853327037255797597476774593647818661575891442879699520315031781032184542572197295245211017570565076840649499381802290201988750986021517129170560016446527834074751674670350221095117558118616410270507853578443106774892176843165851741138321167194698482106613187851516965591600542443249933150632532872603637682016614091387459248717185736526792446818841936219065994039165821808922918476282357335563121302877274274055307412549188298134381646139630542805527451666018678924366754605986254738717129157012801456873524171435279535378584925497088236058875513748007424414075583452092230740092615428126215171085247704751871664762446975997437396717988715706714466006645634644222402445933960340305130219957639671518401569567017931544822497626694274171664907354463405751767909261053375710999538054180847677267855698299311988210919737017493213860054965344167041658734769634332953947901802628627804190471085082873880941721840703199962336439589932806319527017086607876029553819348928259099676425849490331415051871328849600220355580814498814090292904301407112894723158111723863769364430577183763738171513628946528967453513398208253286922777433129932773509162133880827525542031202224864810678137230412317421032166476558948051142326737588602625106684022137151540856374005535362780946548610309706566055176886491438771194292260401453497245728821038386535713926920275324867663299112121533787344480374446988824580702322736867325580733825728973821092215150883864209159174296431114436802174668467568562674469191911549916007327035362098277560644766944328034372264545460789586657356785677880138987746205506455963090463573224107792862079318315010781334863373282832785149064317830896697458085155707091981171071211977451023894301713033794474819703509086244004228674248993094908157075763118440603721678148151374032249126448817897236397270927283762237435532600509710013959447458665906773673891593371634143600417626593287850314874943776704783903902084063358142569306632218674008076968420038546077822623037862858786758549781750563520950263195181649603566959024881237263183328068379393221989023239296391435744728467906427247341136723735201256795186931617655737945817111612380270197324440220817730794032584817922586356884560812273925533462407623673980848443091080136930040304070086432685600019338362469679688625103458670210996425891071303413387484322384308705295328451945765690545055313183694582716478582141701378068245126438275071292853880703012592580315300487227839390197272086390764611813741310033094687176025456175064747779068096737902133849459537412412377279505401375579958890825320637440967523215140006793371883683341914635771184317728387517402617531231924155591418205231992772164534068171618616268011802823590587079998134692677614180981141617730915824841116584743520584973169433258341693385778619495845501365598701550773460927675772928271601833476410810577122218304920804556401241012362977607633949085229915413742430222246189538979434421906322976776253584560084130680779089845803530327006877915427255229713802235880147343262611101772533243198181190528186093517185884232424804808750930348068813610594161491992842118607472897383761651750914356933083783910560280396506312454706234741266210371076986038785496651961746205567591798898480130006238612726304159849185110845984992469454507061034251968085802831167013398118656573311262638949843914703599187341626551813393241308580068675126834506775636131317874860120595840938706420593098290304973692648280683416184727083917140248856382223361869220796535809775434150917671269962866672792256414883950846047616619773913964419490261171529221330121568541551741390004121525081712677339956531369049795334934979163631363048140380473499426512868201517256853490460771150757010338055044117275020964254699047416991231354449954933894351692133473420686059480014356371433539061744710272123699363497686332906082167761820345500176324509398580345253058102827861569737482123521592707693460338387143547489063093681804436040385386428313227548290773942022420096947152690669443883080726251436948195367324591871818012776518753692975419466950265245366928835643074953315182018232712794726405174515915156086430718550408883334274504877599386667409083600046261227251396550925338233630314316795728015018184769786366948519502349962963270120658512183047619309978732436958749842422523791044903292007606156312041766871690067422543736461420950905252852057829695362054863911853681959929225816084139040688493311109394146921777056465262768804657949657156603309226066789824298965974735914008881463485221529550633393132379739702797041586097843221064552042353199157864118595370231398224923272376235298777338146940960251488120935710141446734312389768102302294481602067014077055004229229734288261087670034675574562369195315044998918783420405014812807236605412934593489203359754235806964183936181056189411619950386871352861060542373806434745483173898297132148057656292514279748825139961090058327808596645262580756074959578173138772573468272980747093378964296093468713005533864055029563338962316443445510925606145706803647312252906801342592466996060055284900915527075782115732197042307995397198545301466343989709984354830071271906448181415659906725790474990982269370628826957684381618694565398599071187844082282987431411113400621128786724431186148004912753071776020888050649982450521593351489750456203183566501450201197101881084386949137458687379174322262661574513545250047389537938561422538675767278142815141363397273353713937154093357159494866648011725477208001998213537654106573532027996641127728981585099649415472881574315892608469237238083287210014025321227465216865922177334968124004523180444814724192180668482779124890521613060177385223319893447077938820479686344271932219674036813672932878354316810637113293788204400978468898934247791098184215933251904375858519360320366752882654460843116484693782513501260535435277374248665976441140422330615954713640921578507334239814402253100224188184091511792809340105061410371719536015706999783714586613170520779778123850214880875099859885169478612309879996941527631989033437205201911713837565279366232835408392585382735229705091031847401064913292781390880250811947125839545587791463852301921738576751388750440398763342876419554889931354871410618448498344068703596166855963137973250180943376863067706511078838497061390338947469289850355620084432328040120206539804737070384451655529996680555999038800021942636140328135672343449000300842068043653118223708896026938960298411136382772075884565484736951130819255562256728072898603182347018444402997047358995988464082352770475353212241820297691564600314845381778393936404011973317188723366270361172840143715232611608272826087228320313009857254358475107326859035142174269588192484001134002888214459772892388239346180764812612534862077435277713080290496515799301319846683506239424788453141876677501690988824369738478925238543100572978403967099018463133356279743381492951525021764608744338692152501844837795422603006678823298921308442202383659614973582960563405781101419622458651113425887095440976135929964184066566922030382499194792001169423352657211034119657748060623652222219070813962350735127607917222773706658883946620265507979945934471020598449635166032275679923950108475011630158664808245327741458503214676923069304704907808564305828924687016795293741992536531632956904472373603784552979414975859567801464649318244011666755114734703765994659422119798888919518650422958588546783673131224676344661356313175881996308040037037961269833136344355693065915642107876957260194708524181016003933771746052964326930550757168714033101014535023034871993285560267675043400337773331084756317286824800223518296630950776246078332448550953797597970346508637884734479391531178022364115582870234588136780126410967848864900026642683095148804838935006887353342027241469394466300447925148092736477325298613069439261607472110298656339919061313686366534489699211363058298958705779511281600092424331454940252612871469963409690390162243377391409740711500155063800716636353332476968444958973400543678060675903346241256100686291805421941194837188327604405302001061411790826800986976129515233196450322920978610899510978518975745968623016708834727467754045809831933979733597497866452819162138457173833225878566247758443631685705369229035961379648200621366933032762674473012705015934268730539700946857521803089861012282481594361619855611016798288946058663101531076665921302559863302531207190225157993222063875243261738668708831344467929633162949615292734489344988159672786791029321426048703163871314095454484244424628420984160561269541028430984113363292704881359867701246281802972100022619239454170519635165620609418433090448085804851426492865049633408844476659177037914036398589264640268269593003293621228609956423144706301066359323972428223493296299769347895936623630460939041322470881093957991933595324677746675066345190032701929403398064064511490716753600851050718260070399388820477640414165434101199284803850921303632692054280129845154659341120998887906807736648183730096064099573132559201939458881516861424106481082196566329029868678461718365378129262894030203360180326567515256839655559894590690016044577540587312772039619354487496068816240361199182938885901690566668572141903856779842127763027762648172912470047997124346840646517714781525773539698690948705148117272134735617398360239696246735533431501742977007592038783662116792716273223141030696847083637194572314721234546183912486741710137707825251448554673669977629926052009529668771079004956022532858051047147190949662607059884812675643907787401925307261156574207639604529659119788273991473087432296308917615730740057288815771195291638837794180301563565853341321656258245108329468776083825181946394774664497142338781428183299979262856592032427486619175262547469118842038674666714171691710647711615212160094043407229877461792892756298214033770283062414089828611326834254852068319528529944545127041698787065309308223096084305417257981339979106926247988259672276981598505721680088900755179845113745552205301833563095089263032768069442274638622229506072256338656151628408166925845413400852670989439874911538420021198971251108079930510407615124316650130696801364050626911825767775351983278509261873659903809038889608780277318991513523028975879557374528720840746451284036039103879204321423532605676442128823476994089597681078415667158864230403148298184254831671077625553300809163415961438582322282262952841835731372057051860192212550991199160203280008883458683033275326109241394816248741174383954769312053609312749252913929879805104828358081776883306974074969176530113779933705235010636075426786251602166223439495687251474317893478390670662398920420283106826824218606992594641132757820635030983206741616881578732290323156056818842651713471927187662526580394730525604225196408172801288594299206474579661805187470608647579219589061524316018172394234065206613921441612008457528136521078672266468037838216270059874587099110743515009566610303357849702444072057703584600916907853796741360657450234915775177333017237183415061651437250083142119058961884041258037183247991401656948541311922936571778532256406082170619961822372155875275890678630142901729687720380089310143172408446068137316018883250252783710744231335353305237689909706237556915270960326195118876204712439159762693938227426006202800459182076718876424549050941731609016287529208396782825520859941624585701922846137091904964621527267747553355116393993963273203516932883752697753541170390750588854149597202323157008537910783579734119611592898578244477519192324161032866434023343534324845064517569895393503866262201881192990274838653042564557767454196503471280904028262945685499429710063578548877521306213597481352051374072949875944657989843289472127101741183764467055633459663035871067987850210820763495714631428556134077064332809181586817015121294872882902778765407792850332850707316086924243635218453092576960416559914605874714805546727424227883135373955403307696851894598540535110209229862257973775630535602768141614248391194817404362969817779723106031587867908842761989817091927913476866204401036866105763687162952227966952228424894462032909199284493161577052074812528250954742689930078336673603523990616224866696583592385625396729878909300270457185565414369369768898019864615011630521564426742354931501396196666470137317769096642478526862653232150680935699592479508862368646492718075008353242999863765217737650652523795671069213449915621471466854915096103572656963031135176409535157736468718119966084389247297628300370207391075582313197550949987930426971873095865599400388443363883774692314157520766807483901092360187352407088604493901809746541272637976301413912771947562334540452236578976924315027124009888671398803361288296325540798119614814409983068165249300561450685698748347257735785259252064925234513458702042092527076064926125249862477651726471462378060817704391305656802322669004774058250616407059766696992864847908910410824476059451221726215185271571485364505493899408689531632215976664379229856715797999636991020437757699431818804314177775425707366070824321349717889911788026323019359805289725117518235003864843877336970813107918422569795204900129280397041123789562223776769623758983398884800344492457307758838620666446350675314692866291449324309512735838091997353079201160247372583417491750778425432605261017335082194340167076396609597576858235213345843154497582533933743348331758645965430995027993048260223551123047671979418643465052480010527398501528645804477151906670829019687640981238566557179601539222210887732395305652959184491888980925343468126826177468587860380371367728097245219757699762785767544110695271501755915398206109739926926783168583459032087611627792178493347768348666098937844413520345335014639738856858866939088294499698586946670595094796653492605836176780737401388981807205514130111309191516571134641757960201988222466473001807350391298757088953012155156347455745178934761308401525843573720275547603294695054986082777858844173680217959932554493174651720576826710429599794499213672136272704961420602460135931515485900753646033180574915704805440987178905581704470115075390690010423101643863037672122140445799224109153431589823752111036645806733659162229642643986771054668455111820005116785663933882299028325556457720748727912577506408675163360661298211703250289799292170655358983716573533765977074191464259495824148542714835519613960829102329700789280499951792917216906627010640205817176344622617434861438460088966899223988828574099658625140750835538386560821715090783384034474464170223935976372187983779124440411454884191257309782289909308666338614469510479731835164777114277422339445508410979777236167310591701258127583737312999758327697715074622686543369940608016425616067753936441906987307142432670803508089738462811500220828570155167388010093237211106769742134098437788780421686355404935890093485358868327971804880565181401527449979859361194521031697356707318757799883821515348332773593733928039376009735341054881416841247860260878954536522622824084345416950981677597851873437994798526523703823952151400467770397285724627223762330238719193038537337104611224762387359356806332931405149711947842876027019876887012530980127507577034378341975558948204333683356937244930686092697274059452092023266143418769333818653012126679150320381458697789287091733300658803236707426715540803252995877052165749343890596310857554937571936493231143138210788190810476756093567408989497484324688410778756478684866354844280571578993699459028921588366196979325689527134329409108811633860823262315079593256639656801216591624682267496099585833418250044978221438465638569608472231923553790664211194695186282452821273925720664943751751672814360069784910582875456983290396327468985197010497947237857750772282917219268268945936492525016580302299166738515514521522066667931204179991315839287769971384980067284555374719805321207195806761204510161753070632923752415550792183527455453704431104186487968041729393379940255442375993264326965373353994978911027977254728758851835741534494189671788627812286779336081627976525285478455616918420208840456339927160216486275470953992895962636062001857272449835749469259131913956363682731214237587327350914657951892558630553430591399824017498565513133215489611464154027239522260965015028153025910945902297912451193840599840850313081639341440878390069477994802169260892885497547634882806304090901717468882630533323421255302527275367653488900089130831761631308291488828299808243986338959951773464398451423355838688936859158805053083207577091409941419705508215077552603562367606595965380893400228624857179493174624882264685177061665683975079386297231564933650008844673668675243497633709948706139366527348728635488169250179719165815723559174335603721130017335285568547262980474209390659417182952810556708482352775044195684866706582308622847902100031520433648353229601920538816469277555877951907049565537883693844255036295545032166743980448754875362379796142660745567176730690220379981511525816920612909415306219150265599901472366561812245767593716537262011418395559161726749790258411353465759967827712324946623324611024307980730291365423289095793007172424948560717482555022419369568467200361178901869668888478808421791168258179588265590262892252550364064967174261370736608581660798080926440637683655420693121911632902136225692960912049998449067470387869128697597183439990763891841526986071104333145370786579446057534117412140051831459999122475056641633348297923263216526097238825405524062794886326551089291650169978915487490513507663789385942043332922981827478353319691889328256614076065734798867261134966937380167165626176649527707589529586887319476095618232658761184855582118299004921518753030819654750772298115894732413446247431701637686989582963723052574816248941119593497307363872185043219151438225265383981121742085329929848956829539182785979250771265213915680691020632791754242900281453226567359893592437359535548011055039404206937635297929259407201026348129585744604923423472574972849426255163037166138574100358445201661271535429700536266795266141815331363441337343308622731536832927962865468294631273238970471938852434739080665185237002261002095429046155101528444862031286336186905749995222165178454654449626056859735805091836841228988744740544151392453134606812316727793091857978267291283577021619412435647972436670694734298651235239524663874725316746209054051107044346721869135961678341664845185801099303792745052940407767107526915714578869697466888461017063761262800825355332112085730965734059328738816259222201641201405180506432037185012041643086040744117287138461762612163987798608329645259126901895157094961225835192881465737199312762901295984687063423838669797848705386450674769200353931098583982049405778851004624483606087340471200977133006889123883697421153563291868517443918063131367579030098158236699260070273842507862534171585625024571102645348420572329601583289996195400996128278397085651686686687685530181173038960518174506065070028720542312025025421099698182531695725601356537078191899172012870762097640409780776758693225082248378877942645009944859931304513210804935031492580031397707484741053093062429564031798694296320867449151744187193889067554335467610490213383043494448355942529931265555489309313336806401056829015154775557978934625287521408195342066758935532590418232464219630388185143005355895010160292429272502759328136369241074408601065986450596855747643520962612179739660958446853713297161133033716209092420147715725823916382879918954137543891916395747821260851446118484167631037196311974990594090803037976116524906016280353452123463106443560478726038386949429111099063786862399919444136829163132056183940844586695663244198618915203022627003297341262359046613584150925283441622001957618692485305827371204369458827745242489406254653414779964694161127903723585772992736531816822807519499416094669868816771025717815822591523556365599767488957005288628281863611214257943249771241693554534816736779242985722492530737600222676482196680802843056981070081842965080900639020943011292962746446122071035279636803158629288722758039494847293800763009396779755064847863839742661452579515423876070182212514906174510794759741009638189072001546382729772960749431314979789671124160082249163839139016734654531690599829398384377004305405241296390800134233650803462562195278187812860286989157329225630559211689476132025872343616003965534889907963514653007251293491579387225010995751065898162657269717598494162265477088602715161399113132641355002566484117892734184326251341406882512617656712219863003579584368628998527347140826820519662608787888741941039249113396934584314730052941050566350338228749664130124906848125665291979823663730910705884743444396735793222175172276037034276970795055415842655300434428375609941494306972614558524012220535312887283016247270517752033833740480108002209953457738840638702108793542742643846025933485938664790959791278348557101749180303113012507265739358309896471574395783408059362345211593384353426385002457738906356237138549613638439086258424642441251527803732445914405780224728907308147403262953769457644940702919428810120296979164683878664629575865749031378946828935527286622905776362920338955369852348950854259282638884809577433387781043116265687286208884358525870199116454372845699172021363934022407681500165285020285637527377484213866890510116723794304671636257488945884101550996988710287807426511445821148390936326886235136392914582855022552400866823882578079012594348596884336823109000600849121417288906815313609574615338945403965455488724186589219888979732147776892567866637628523379143897407845271541120921870676348412082136687132961247421854707803527607451901402554352305506734597842682584058869543623498024488002309791333410113168926119037962416327667781671678028658842917000584420095925503296857402223454266680470533366832043064793887475065221320975108370968439902702969971623060444057350589326472772195281462198212621249515596935402701775855007594599330048355313447020910151204332519621751296623548042983105071602234136001304504213989158548829093999113768201164935478588901855649593533059750183640299346926515992627840333766830577193913752184860370079511179839399816079415572200006192541387540631524415399842513289226986127218432197069099227865694650746157287062751660011699936989444764658877232389554401611152714801901894801989963568744961828921384243655263582684603146601063031975079005054294720867419735243311474101342455611322591241001968053074564680090090959962696288144550591958943696243746461818338014429983236946591572268411119037615354677313991335565607282271528387529635486813598461673917736765143714564505296514330061927628151313610931194638599136685925653025218683581804198706318307195041653737359472116903484676539665119197989105992179711960706800720227208364233797299104686727842829699247788155207430914510108140934331003038595242065347953068875388451436428316518274524717252624049343552604213392433271319389151201722012450408429917061620431387985622558225991694872224550933194991625865815088494555665078668675208981489688588808182517188593972441580863766281190859797228522292270175064640072590269145981571385927066795094977934252896384885131106383118396767981693999999593480150227398431205926747479294606776867658418078764185378760389512671072227530899445202954859063179039588212101981924089789421856847410386920626726354297176729161300695731220534441713572558535234600049016897673913469385988452707670959112939136390884744509487550061387715750497028538961704448205357208007133467168335950325527400357635017333766242020004221719969227360749728702400923343307928406109524824195566853816906441993221257342335534580628257204372390973370171618848391652631618812231947199933343042391035804689969146438865729059022385086899047076376091712258598107280677037238918786180999392959197701959730382616158562315916857181550130872100926171231211026606574529874593542639239583740010591223729905527292307302650029234568743929784583750165338431802474486633496286130703452808431164431459651370653999052907700717893269641631212006359007749907808549951424711995731258985585643698465023695090785021369669077157315937578033784722605722201041768046114161362379352400815942537261571018967340342394549214513642903488538974694074558076357239433431771213173650781159402686882927022383608102139053207536645150399596950522843521675227592586671011466746538728736847423802211247586659513572783539288173279789944628254597849744939914820083820813976735650632442648063737913270211129208991151118282401847525382713501487397075870218582587080876975948849509623026280146810207960991657823388286851858774462295687346245570685992461190275194819046120214971034864172111517091660514239365640785947607680973095775249388235388352750471675659488560198515983485397492358455929357075489830742514170383836195234432845993112898850524723520103939598672730018197635612762026235840704276853470549868460158645214563832957288320046038114746631928540315411892329772575085602373511107133794899933809081641052752104723454259907688745344455925378869066860191394732082806219969206525596756027320282773426120317789451892580086044479697342731395973881766219658193639469604724877812724747493877122699191702082228514584381427925588772895572932656827429004793308256096130286243588114178891038214222926151942994419478332387195755679250755153969981664550114300372130220914924354188129434751650496136720233032731593465205046417999822224282620210638138092522326500148580050666498215014684324501284335154634335537738685844733432603894631751131161493340663229137201009274316241630549878877182100017973509853487415605820508680023416855259785670857830010850406218106603210725960660852329329183875679733912274583938143383576838350987126967550629658321984870403172551298949101056846702740783196462352133917554993408779061189559167198755379985320732416780979152838000942804549321415699510127465904608126855972816414088886538291546060788948702921670167786781804595220563768409906760916029729063926282934822935552192478174801579732325991530890489438489185549606066429525660492005116700857933007221923087385423976193264717103177322834620422799266133765971405520589743163921234593049213639727496915533664021425176792816940210230787117325668463679220575441787594638432627170562666010133675163545468933216278576154113525016988328663464099521500030270023422509201687231906167401450965990634214217983470308837947754694537600935183024959719090652973613378746922473568157804064847857213551611046303947888592167491563030371124429030701256474952955210017763773188870328295368810396922322131165130332270699554889473989004678359854881075778832380666283102149480878913870927635831047664247887604544279846136869064175414958940647160508097433342856505491884448262005016047316382624060225127682201926391578625062777334718168835290417520029038484158949450809268215601350090115619320566183554630585579175865945256887892659809730439479988694997881654726197730717041485557147373418250652122824287860158148469984085153160711955730100900189906711023813718326794382597175301772131144470608227464657149702945703310113836199583223155351418080110776231451175165969518410887660805167383794287804985386083046718316278536675999637830294185950857591005089162936423921097917010292603984647776810330192126157586893682206515254830437032128029183998976283231405780436692846527298340130925183803618906695719177589989088111624297234070283660231813815025796325888934778237343067790413501161691049475055596470794995907748723250814639312686858668738877178544972345365363776276381201784900116835182288652333239338711847872355333373639498571949725788355022676061765994718170304884992926177041955750847217338060488148940084928040880855959141250487699436159940398268081239738459870588508030315266782784844213456924446843261277659629307397838012769610355322719467505537673452469475794991595146597115104849169679698837223998918677660648822386791636501651649429136641412657483411975676228267518533082552770735435842823343595898240551496686854933517631348377820118483357097742825526337379363139579022270056656957591663888204331521278817091674687621179193601778704769128328088885031867951003836688934906167812876944191658457419064081193613595236497040643665915019488607634768638354227163936230555593605110304866390755779081334783249372567905162036823627199344810559968132817729402320886107282607812668979862001014858558616505450496488525501417903854736181534591049859691473923707237321641157443974334203512465793388230620654324560122715980376594339756940851185637857669165467542992577392051677229949893781090241632223827168036024327628007907109242479220806544478507549582042176539972978703016523918422874411918094101449866712637546864091758893050483499930685597160846970038031669927452664083035823449689339777629836188576133096058072386509345865471311442643429739751028445588324022891094890864371582958282155657327591701349783042643124802199175103400302854866939148270220060115912438367784846034200189861255931689652833038937976519383091807734204802615056276199204220379234526218766482752606216239899665794762973967406502404478828037026225649087038249012537889467062361267732342095184821551160408483402162834181418419409503068871720792247244124095591095769351638537136650085075308160436662532371431794333385892184076389878160476760536470827898005019270122492711548952785113742664372922566598181948654415648067307209488455619987499177761810510012453373458057567055908931950530636653912297959220212910786714979067498690248672804543813512427950099003409974594149329033614100941200139779618758095877910747289911276890546394934243717602955882427285966362519322950758722667204905095565038954384502130316959437075219465199595832766905009079787142025601053916966879255182098378271784936734415224801522480815556916568769828649463096810960596784224182378131707878850597399746980268338831484946032854241993960745805141339032877628533119447338092568385501079848399677495638391586720871585031037317121008966411089347319463071147437910356720687129169782148672970843499558828004322207178862193607010801246919939400209787669036284913198932725590801828318417916741277824484320350472173288388747589540799266816653951590421037713258576807857560071714601780485944235906916776829034116561206360922874465488870748472110811390193186669990169307940753302973187295456382725056276151384828800794853280379036821947447105595262132106575685595799244906197711766954797734890370868595469456353931448998315892757971656642255698324855852372477499105676691060823774755130846408905248320882046242710145409189238565563969324376172635042778712913674650103564956604362913540065568222954675516495514446815993362081436275024047573086078922397631179439087274818034400647731657335387258341914920612970526791070520298583815302640759830166525691058559876007029352165233264045985280875058557094557227087924536880457286039666534119840072094720947155004066850345467568251486325679661838491856568554694890132423569543945668419135502492020751920448509672520256688569135486417679539360347418555895207694923407808738501207282895729153505931797428124014510498116947395732426604457880451785060019478741552831582648185288181300177418962041877020763147329151301156810727094411857042076551316681625749581657148350687126131526654935728848826015157762092546881193935133230888377328207009228782623748489317184178360093439543988559896986550162403385203380868708883248275401228950378880950188790685708813712651305805975849187531479611690340485248924890456484212096212550107764063199257917866625875083108465579933602526744721808373881960596271421709792640594077789514391036632487643016837360032932318107452447395168239371783201782924721718603168667988096426227824120116247170856509322725918740067950592844676235757081289165573880121820235251719515006067496444751763590419372966475277221621057505166963183163578076818848986099275991125723263068942853684205814519961504243219469062811771681807606861372607689893936249890095640865373628445117484530970515939462651751788275634165108367080695028195603068758690781311817473518055730918552100400866239162364671429516220459437400812255625133948357362748569138444733527060860474781094140180728393985383846019658788069175926383789574858146785154687978925371333006696680268443520669819678966701105386287896401678075785027541399681630344339353031003793119680096245479880143375168926267787375521644141642819798845554771430104928125558666501955157562774948854622682865122314276735602975799373430779643556883706824255720162206926649793315217862121673334561773307725916954834419316361453543646288081149172802890344064959350676868767605307212426646939892937303878020056015510072762362836101193072837532501179609894740873532680130061666869469836227399782973608901557153711154162653495440384720409407028306342223695985700131683261179166673040161361563619093236637730511117855250354101125966120401706623071515511233526331648575696413918647954936236978058634830841205013725027022151754374183523181684257342887402767727577078321762714871466472072645478482966579679993205910548530987849756694721081702692878606812893470423221331233892089485324238830044137412945403510128240700404773947809588886764605512956503854805317952469474367081279051807954719983505035008911865515315309817534334969092224826072130299250577131447669496418400207798218504912507987007651261100089720862647104102606103746472882511660480482146831203174700913053877214673437827708412152810390354346311542604019275220777983996550178966753841616538997885471212440079584069893983386935924861908048630434392140191721240946643647055813472561429687859739170456654694252757703054377946334264072366322184412677745058569363340773191003141915050232451924147771174951012301426486009797248360753959596076437293055634311566073149078333721252041800270284220351487829424327720511602733837993823268725982368202395420239467493638651067358755185251582087788024466800021761841437698780706161109162109125902399336666195533935434548020254391504334892001480598677670738195157873126562949201231803362501308556542510768473101753860873476210144730778002826992474676988279894200923067667061100417710973064992127237323484555448921294603494295957870424195478299803361031356563592821169172961704438559167883402044352447798435564984856283746109889414000562543310572809333416634368334790798064673228829985170582425458522056070251972116882951856392964136328719794658426175782555487834293984584762381935531623706161564088775600905365621152871759931514154896895671365485308062076568256616488521606656259134773792724982111252448026909687518805645693630004871980487189395121826667469693965474705153093975415774351325309762802577459635493467563983370490949451027156456557967523484538925703369795759138628027492690358449891234478274995780396887154153465964372801213271204308428236363222159811786191905420199403289651851287677950061167371100311012906269969842079594588032758502280276170744565325024633345358934589469510254473558845214854345979082719039672059530414567402261499361518687187590250836360406524725252780274956050228721904240051579017138635743318425440887867623958365297474334229292233531485618507288562402944083693174102154618105076600298753304818513516303973539827941961297071823494326450463755481209502889870702748710965923182628894937311742863006780792624722455807527989636755627455422094647880188556235479274571172910710682859387196824419592202728723554269158010436017630267890210952495350096041784928101769855482664207047648005816342591222230846692084164958408157683515627158058571732651045873083430896444757108439156729397594516772390883130292309748051521087411617785786342123400670254535750802859693408620311989068858511802645973540375845201413571906383705140765515867734788714803037468243136082235231810461679921869458281386530593245230493647101925630445374512673286734908368285592503635992488772684982383171184908800446752932978261246875644126439457613441483244914433554162262166468483038242736501339745504660356686412094877806744082756081422147924435073081598449837192597359429564859600796885534384127142968793187596976505178460208727990653714593499552929989248540873526190758809616212857503035164853125826220728098059171316861719975844729485060231994480724869704211159482830321244681421112145535644459072588085334486764013866489327811802663409389998818851552061145035907948569254493761361598249374826940479762590811255669633517612902481026835177335400104984315039191559803371985712164118496346331829883973166730638676355250353848045126280075762503220454282246441655493140521868862193084781354113341745536727670401496020583071215506768118186634872426078833941461270788255436347323577104421022540103779600662504966894537520867385115560651224904057651309751811241327747439502427069855948516293889748264636597681269267665750389124754727475274756721266795953862805464131539147534057281407195499273223671969345026612590034232134047764698404501720520046460453997329821303089165911770710782700078698683447324376401064626341490776903561871676187762625484991198013367220765283242402862455221113588511187843282418187802116002148429844081504413615287849877353191583271419317449855925527129548409921999112616564409218980942349446850435620217970913018695001843412396208149412545595884318784740764642414980885452590390204203992039543865778346846034322938169764433007568352212067741626241600272101978431971227175642669617715993598274436893405082684215160648775515979493535396855609738590290404411393025584550465507159943134962525820948475989153162951883309562998449708347347155905235482305835405149487023276054780710577834382725199733495913148178458997852209825856261482544632109205372378908986148293708089701231915081030667496913841597986614481092640597069408688018506858045630734261003701988197807262857588886092314818146118754076026598217870911196447608170835330976984956524644636919246631190991172644910043637423763790546996586553935511069979846618902305542481495358235844553418394187069109375648090201784009192522274706375739761029126654828065982390924735242805136521706176610245941604143216348576187982711439237249579920881744805172578448367073798954817745723001227961292183697268548265417318907070254106374993035902876618065174803489546111471359345586447480766784552717661897128420975728762192007017161538727706308829099483245164270628236251656717133715784230346043335080535088729476015491245578545393820117033186981492741252992309744170634276791863014938684569377167770215275610837431701268359624520026202646749118868129187682439431066164245941737264961864265137843066089769104141428908749796898589508614364259064688153867604642980352211411815725274370015290277896785963714421279112093503635705772861284308353457620336531362764735882749292649815321209277246793915191233678444781567567872583654560726199485898120922595131471956635118977248854070629985496877699574013917922668756148774175545166520568334905959463293862977826219156792050531425913078665817934253438612224503219135000466432719018062954809206080158775639484865565504650049756671337008635792577140279171996059547657320795232792419780946262731723364352154287275173467039656071773671230110906469226755296531084198649453196303531822021169230768009645441583781089130555639517335779637784666581184805119260636479746903940844456623960050748088329771998450490496256182477569645575584475006209958437542009994439858594038746412875365955511654173012570882623349577129288738483874295558971359498135538387833428165979215151493096519160114579814075751335361289995858296842358637934277829589423960810214326049317003941248668207430868540807862054206973926204933705454595029158762037468361716678272639183411045509771513033122407343305483956794503000351341296295521120971676293700908168537665545095348114303255814000268927209257465048191699630945505858916394990707502762324187004592250230049825613226691882435319835361097954925640436364479848509833066888631605373362833772098727912738714957808361871946875579309253756176569609148570152476091583926573388299950657277709846196747104992535344732399288524303962317962100718724856001357978298667097352890329628156772301552840174608639199066515020466568230792404229456473235724487994677188638111672944634717473468210196890408862028324176009947400001743004440874130578572408214611200836212537700068514734167361970522167915447780523410569771255096282338002142321657649994901699553645369937428831227724700962946530957681884972922426159423945107122065985975742256448457349677031357015131375890628911154992456687405778261470813795677539961882173728270401682462721317054408616297474502493606368734899476376460455580311194794172118817617309394760429736535102397009404007623197635849583225440311957734053420008247451867699562215819291695455128564388876811828946559545893056336715209640907833733242837116619575097373401509321178359525786345633623401878679578292621431713454609770698426722274652228715723959637517150526110003045310040694192176642163906314938322058660226644474792055178394573796987371712594953387377932252827169949909697876194663480676270719761237055279611544354175888610857080769667004621956146912816553733927117529995810312630698410546107099112689803541398837639714736178158453708248776932969726154461486767139858445949108205118481552765929476111108051655019179613281434273257626701658442838820939921565149272976409539965349728422083482752387235328783914284474220378630145647047622172560736936372168784737684016414144545933627942633647315742746367277617117441030717470731716772668070054571020395717355579735334777997242332533340350289979455438429079843759090897282567296864773998131429291503802309226371032699859515383400962639666191312566474684682725935206653921566593652958924347638567680482925576434112847786936347090167017293844273230101304231043303177313513763301435711789329973061328747828520924844404685262499195236632805838275317750546060265129816324873163351885580847672390605551803403135854785973065569475669815274963799097410229864824742966156566174852983443607832502995839115380662807720733617417676678605655481933060246400838873337040017442015058122887111619476130278610194381412947296823376495071726935584140198187830012239071417667659691105197423189098039193143670369772489926101536310655291947768979465500727349789181185862458517614793186758461970000949024126763412567883909292702052743606811930664186818484258983979761352708390405302063902495342103990428254841748169402612211485525185063126829096584386507745862621408930223835925700179688618532858980303295439416688429905649491983752774599587369658074886290274168066044015273001932050759763682942257730205444331623779683481904327371803274327814027438232836053430522460080304140676731580369676542134344840750860701912210847197369076330582237751297889650059695670843470562746290910978404685291590630788753157897603500449137824633982572112671171523975905072218979991496859166489512446831863485993636284496150044680006676934905013624201883210210258360113361884717175451593277567061618193461077359378563045351526942854990665094136444155867794027112792553062609323336006589798623142446828289924169626392317837002063638562657216064236659415889895742423475134937068034226884685736876120639370275798200812871609488446584151811181317939214333681629757068325094161028710134673567789698317917199845832093827384090262961454021028720341573468201348884347371272807766010693879137869617299117084998329612141073899040645536288704555196157630467316662280135465553002451214396635670474497405402234745471106943660508213347558812662994249887221013821057106243034683905497890597290760807673406805789589328878837267862409026034219515159334636195365329951559773159815801548473085229867321002518052071814874970014668302655071240746590556355147206393069072976584114570495542296882761084275585873412261186062331433328018050851108850810765317028367401806244302242791903800760027875935682950378456368864564686158011400713206459470649607221889779664132571528350195608113956896513216528398686177479020014110652396142493731351743330822332489820203316480511585909658137889881629630295411112514881932570331475712336675537586219342639526516681553786560357713544150992877832252349229066240052219262243170307551057850827498944676733679363456933743604308890845327902111171360484782771680817240538361414150207937555572148834989591901357928133358809258509291624034889450452007583198904236575733826478298256776783806074677635824546138426579389771305338841369926244011277093601520495606351050625026629802084220449648544061208426835447327016243640688188063828880367745791474699148181773453842077920470295617987453788516591372667358201327746043576157129674074654847343302961391259933693303405532576433845323913431979239239897235657751329394189191964012469520694087363269896916304660836561907331862172100574240533401123942020622574250227820081152871707064139226641248472042211909420416218841562719741906259927509905237503663995861431211668074854409845801912563274517505996127981277244418557320042048649417186537894292429360223042842083680582057110982200547102828605901191282839404872617353720991975174975368662959920233625459858387909393055680377095050629588410855621555561478686510128290677187861167943153549153780574344175110527895703369742685745763440820256291511412506422472838334519846941963604819558107765075777452236601578071066029474931649161946129442864979301755507565229660095247504780390415789257042790347832723101906124207462269394633584688069288683607051981257218738738678699341421072808064525533074359934434078714587438365033258056203159821667783371105943712516593164636070822881403957471732129551446728596004425352129622960238373774509928538407247745400780267583553028310280455670733373097660258577584508147991393700214571706963056771680837851144969196912070545976972210741836263727794408994850258276771423465045042571403279288577129939107397978005522388976325099991263157507711969753189382984743305909488853035760287779012765076909126091553951868540362805096007028643860956285553756356275936656365444632036900067388232978238163298459860686512171264880023384198651244045839958005330659484250606486937194471121677331250200922580048901927661363565871718372414146571818562729984636895224527103805536358274028779191491575618646312056614850515888745914948765930451034374157435579904363613170427592194810037278393525939928389916393828669182147900784588954913139152592067677561303530481462563292103114481835672028074065407260411966068447061748188023731102348638003567410111116503481022850149315097098144354273477853551011638986085027429292747223378373769257840057998207554520117394055748818828765583311176866570977337846750836501653796520247532475462708478874452054536524377336463848122238164725848896885227182905244883785161627006322099407861050991311278019149183800380144705861822735602427079266514638461209521504182352792504017097373473174100715350234789410912594225137548285727862786675264235018907010159669388363652843961623654563505418060368390108563221241364917656857522646907414659276197742920148432100489525255762432944801878247440226206518782613964604919409290080140320306888621513936990354807787733850809536745438013598785941591731803218891215528628289985863793948538286640837541772108534552983484042070799290016583606027233439399793219675961476685766765977688607863654913298423537829127427879269924943948098701198829248386681941897857471464417433163990434744591269408014287972072354142689710762679859757367468536301680553092788632751345763442901084317489064800572595396767737996211824660156214260850600205113750278207999579468863875866072400095349460491268249170395681808692196593654399927741563973499273468484519016299243027517354941483994896584205209570362801954090391610165426364544988198620676571988787631126129022313349948110918337377552460809288279619261882790696372446339768258140918320924761683274290095455743924585986634682427477401087224125921393239535894441577982227790989869664533808738471457460223062045868995883813765531625632568830047006610193117106483106501734380235009967643286941138907443529986775483897065404815659788300763575806615975551340151375485351225547268676700336291890982359379844629249053560065702532504801315995149314828668315566116290940911649635259195816378374381526168209658637999765273149171741348516535150308037047854252041087109773152097092778053285196939509019595953892593332558781014258106945819038523541534762782819741175228641056852679154029743015605391139558976668621423496865846130814888826311996330642356791105463998249902466462243591882848785049573870991269096881510355738353367090723228866206417430015463804218351809183823817512538281367591882855653792210413445450761508538724634087976733617114553052291904309512771644137088910243114535940546826576304149523140691268761081873922859589961819070021922775101195562943143796243921356834135005333500762162167166226710233298195740443395035466490404802931184732573293483230961719999741954466806945046063106439201931465544217708287756753926653428408800741725071589672291801193071570923647471011601917532332010468099753934154085619669934030456844004172732846768292145791483501396159230021008818495429831025475522082797975983555365935671548042568288898731140545080772333825435019399293189542667894524471940569809558782471435642520621286821744642158106836403704202582670673603518385004615024426884111925926840079797952309925838188479205516243034419849481056648858262685833317264308110589959154398944205423959720262472030853953256106356975772118866608571229123624596751965701752652494032420806949637333057852622032927954955929535645979123259371537290125432837427248584946364640050925702402032434648457473424877722929463279735450397297748563198367234483628066727970755372644822671223700021406201562964202038776942675025958287170495855923011479399713770024320316458736282553820668399126730699521812368958800606083582768623045842164251654199463853927368202650848426798584715902958136459040460237545010124035696523024155751335637128618112556651350661073771146456369398954790427656535175006712932087034836190233716365741395198841546811687123772743078639493285812580349852756494836194228176929995178309636998994447834006849068107688466177401095817953825006205006076319913752628173444767132595660645521582448430402076708680903737297308279702849504380476455333200980698339824095084522328777102235247589464933423738832639287327663610140003923422526141425691939386362227823322278415625027701007086621568311719741787474808673018638475944714666688094673336047770656395112805848110799808896201877657908432604628369039823772684919973898683037872959143249645590131661419948674419029551706005684887106044212757974832511626556578545596313777705572251351302852949141716734240346915285537862723311670911462252866778534914741624754219731843677944963147075078837762978164879011277793153457933776376879175902338173680122156397132796564729545548011003523928149932985336241288924652128222435434249907280923291994731796151566312811955828845693321034439914204381280753079595893089006895992637965855514738269591818839898325827993274812125607564536125855196532137376758798055866405895587675260956124802624358548760808084271162373284711074787122538006691871749982151899125196811158846847144391324479628713822624217295209874151161142165336204254779069301916297380114337105007114180728555390647986269548258991115928860465124009428095022160351036193578906459286850333105333206364568576606508975986032832923635811021364214165810192605068636418340347098377802308407822516221312415643591494238549103252372417794557797809333350277248963901235399546870365853763158110263110451685619448886444941080320111919315143884850265335958798335262180459760160877115630282552540834930795935320518124966347128897564005908764570409999571903320106548864189698557557761135887861829214963215458775628690832415112766594650805124452520411655064854244240319758058138957520262382242236562373014756688783259736864077252634036711529553343675195300523056165093659350286627891943585037354343512783883325409404152263872565120266089591658626273979429174063017007505219657239495240183166988491883003931601064626567990489291915811195892999484708096611852396956888374292878724244973902706812848467257700236177761099461286896044650684695917062787546853575079817828532557313287918312814251916254095225488164760628594990242090345995070968746951692397434707018220178540693320660422837491683209368142849865750375825199632587078218594499701132660067954176145722097723083306201843176315688290240522993234515943418193516964289691645004888755884126113899590869801418990533329109791667266609992334875562829806760151144622612103204627391726137386849303134377116162457261786190508378043405107742951976926647519868022605324672450266967023447439405821011573776800182795001777574071925415388384386083044372423678883416761046067639015596106250420172360943394963760462979733387687917256483141841902182618807020725970323930438020729299721047678417745250923637146240589863782069248147872244822887706680214553465163173321917851512615189043308943598261515657982291793583980354830382418566313887802600963764423013834405828086253947847779569611936386255942892626457784431418897557216941871832440381662089057942845857899651062966761340559087598894395674575026497060677423890730414541025455666871313287967917180397144832922335958808885980273834257197797303482414347131106099303129113810409217508868010804921072207173090765662196769522509794448483344899716422330939626622021643399876898006300357557724670271305756151072708354318337114702448740640533148538693245303778747593175179801756278263827832955053343366789164970962421835195077760992231308957046450350011275377126801523866277907663849676549084538821383920157291726291320048609837131466022193747579582557437184863611076548951785826287966694211133486797584552639884010890378198442315531470089348364107185915983474392694237788956197306515870685872164321666973205129597163110920459939798555552796586360884960359593139757504807197150757385646453556942823614443853909714463854859447744082806198279611647069425064824860746299212982483835784890383839083081977744435592011852012423372206688996831199590402505508623906657867692978608122285980573155857390690566961941454090642188006401802453106296341054087272512751407313907162835253617735213390825647261432185150741402070734411777479983889925060870704650084613486710151295089322381414023616148711370763507821011706734148387826555973738080780871589813889819103333535896662237371584464474270653188118913431593927202047062778933773401397447258327509270001598718054439099845781979693208336248961495465110099804715869705423701875612815910158586237752838600366626915872609548559030437442148422572422805724311395646140568825370915422711665156148138874173698674791812617016151964365671514869208634898123756963355019553123725040814635765597301555339627121774975404855048814698822641828440204429288663263266934663689147811296415330165160560229525504238430245491635971805720298642168336609094459762664994853160329277460637411207342269313287193640863053527672254662213033719273464660049083986515042929698752235782136629313346688988324481593033793718947323296038963221579086154577639723901475335345656098053805532475454001079210174753785924858569880846250322455637179972753529934920509779995836396613755976072508928632297716592557292453926935634391879236149812452354998257910387830482191377021687040762696346866618339478026394838587963122060252375994833689751241333105496409009092288079288718359398612996766736974425750330103392036517273586432003786357970824742135737316611985910700600714764710478867470494414656626585561583500291705101910662713526328071202528676300489855171511583090434894262980161740041873537469632084260322211950904753706874363735385037227976156799614519102141171102714207269770050116143717125740384209240183127717518771808439837638644543945225012957805590093499849442874357818830851600063491676248979737228004267956088460652510689722983959947588268921166832489491020967544388390950214702528721467714243783344552827461426660734936326186714121367780951969066704485730184447264478915618654363323561518850596898830657214642853265280617974627998584896160080274861379734337434668640022668603561244749949759469237647620959887285865506723514254244809231758996736300756852056882695930183193347911794280144930387363451093552978199424737290750624049620178649511319800164729098724006891391006296864682280103342722635773068414527765197385758123374933271888390316440967691017332779113395199173827908413614320239600161222994189986000013017210879237433347318324132552288203213047129935428122024329829819382643711400505696735812593986330885495672770642482684042795304155291741394743775372786411547966398159974708255634757512887510510089452179511726824053333105018419116079034544405649451623158277599920136571380935035572444243704592292298414134659109528710279527067173062767251710035130508576319586705273916892061036126390010548617482937160593476271422138561564047494807038502067004817492793705340348206279701281719782096582481131355842908544080186283652942348473552208728267188773402313236977677777047538536571910848887514300016248609181440588638253835877370873554932666278373796756724761276227438668735445637499787462498534558580618861828784866003080141266892009921863972957478303677112914783726957885321657422995710694847564383888725836033100024783262368137407589767270433585531518849955429164241939436985027017153884968544974232168363462351482992804526140115853768002680226645211724934755432611768272035033795631712759322287009616323472304024740279875314708126376167756374768645291346748377823823499408139116490771865901813008883985585686058396135822979346880387638630640861993183963510330390391887839120391776032841466518321143733051047821245142246679626369256661688662943714402798986356345681170741246421721753392785815891186544766761977915181126623899844023550888869188967058224859293224918254582007484705192834578428393889074320300489909686268465656574662507673702015841037015867106992939207174271779330766260456712241075341058486811591779732205579592268628255935207021149273015395502444853430589716262033602251729256543659584981641221675799164254910358739053006306244342677309818156536150651109309752315897941563909603733774902142611856842057190028645380146834532393040568687149978337209981789621007182546895866207444531161333085619118776812220638865346342468237954785035084567173802141398167041060306770482983554410773098491538947712060963906565023461757183863462294998418870052843589867241914930213617681976290698742353134369043846238712484377245284150959988247009643743371096525231448366713524072670074141125822750828520051539016910442273533675690614754776404578396744175626691392921738170904546134073263591472254534031474552959631636476991868592887342211331019858258067197923003032951004998829180965181911029478654198200831760312862765630096890451191183223478654420380354859662080607114858811545211394146163019960453617649697182398409568567856603337943348428135762180357535498857647304782330339243903188852523493791157610285798948578236281885115219048647322064990739656199774550775413432240357062393757959992128013217529661208018192216190569519264596079764769966350204684779429334801460763662746088715496901691146416129613680309036858360046842154607893858377198702937167127776939589367351512409837965747339406039041498689795854574733301600241144380509663634472190385165161891596963380176377107879396603910867447099321461973984200704147294448415315611077779204888349695355916917646029261002344190639201797713886445085209753545632991591021256417566575219666862975251517919834894801410633748018864584486031179272338230591792391008124625505805881492743878930811494977526748716208289212879085443456157556017650605795332428095034838545597864643237968338609965296264507989541139279580438355248788785714912761452462349200935810076513434994988717405445172581198388374629387543724773484594490154668329337524500279108520076372590320421951337771006013141070791511191219662167919835752784800268574104196031865879997146497761129634691775734513567594552313527450754464572437274342794362934533744666028311069701569751425764965307757492897272820053477912562396013345790045887106425777134867926068147940747095074343690048157480212638749411569879449362882407349307252508523984523224919718768180880530131588873447051154789924044690722518666476798096940736591922946948979458638444912182340203581300578842294151050528327701975205262412361726924860708327874875326193412451646262520457216856791815664783944798686854933354859542204208718827537285919143573498861422656634535781456306803700472225563013035332644740883713803894495885623530478718936631006254659357365086359761504080554083106830711557783986788176440119581452109111253787763753200592355151937343923069739780296821747107675810937504223071124852581566350318423320942602915140968792066165412317932310880488718251444816982510527004695495625075451153724237335797353989887381837876481480898557868656774550608718074078313717622592684278512923064223613221668127882841085685895552998961487353088527990297606156915867689584693767814079247676702552098963687845659062315041335613781083899779073733549560724669794901176706845645079158215712854406952619808964929804131247554753259967055776020726702784334334303762883721449638511974173351515092820820339305488533179675346331705813253733378234019785241029571189502483456998190829168437801078678731429456368271896441609215295155224051249524825420075122287080041003357374211975315805936314789040077050492305322660787141415152334247640402857358796586797175083517099771637140283130518460560530467491704872275631520066349874109945626282912546241398578937899296475346373509655182705825867545485102413988264241439267925317338029700979374234631848026338917713790477621999842338991637424203827535477284309434568340736870960461535336045692080282223365188852262453791847724228857015975275930930953111908150827657813964963823408992816107025580704196155072635764721021017918446041005914015771157522299299036789535653706660657896779962014275483185953854949094955710550993550675653696581034152578944198505648429069996964611285683975365169825825721487649095031752862623805767768295542084686196656129466151437619997130234774018670940161805077448999887338534903097198750263667329089312708985801549401988769697079058543476473901906273538879248045211835508102390646975568568718610052468139892809352694620008756729626254623742215797361804498424459179265373976578356470534824261074484770503197073457879208131249546586503134483853339066317347118875475897354272942120641176927327100920945532278671742928572784468275374756175687882216360723342715666839306503868862223382244192218698981824208535685124819085294194291091035429596500493764072952176062997282231113476782221523004747603970695618392117174007536900977665790294181905145468515752792918062797348191228163816114039312548504835211380472070991013227794196806507757886342687614773270469586860294814278571756800518825085036128505382211647209033280138325684029217142513034970671781672562181684471685471568947776445561129066649515000362628775158382845874797758890698870531022364557602109212942848222681685076983150944072079044983931818301728042941643488066384346955246073880703698500812989622365728064590532549072261823799192807182093757408099260300291950679961878421376918380603095719927281111622855281298307200782176085477824647612875372130044488765693341225773553120852063195736960915328838304370909693955938819738010336360775402337949281815488608942148223968754605728324511967021929551863367158054540964114367788607210357210086047794298980735852140485033436912005349108887398783993324029273811297290211546374014609923288324515719540020404142163753871113689430234905298335344295642690303432280304251905993098771181666453774087923300029962987456015740638026730736422524655195386994637322797777169164426788884282910166625078459851151324318285612538356736003703956531922517646642350153957723297937150680251968067994137095899809314262815247460210585858963896410526663902434475650842252757621033045032606841129677137719372844249051558090527150751356404458046694603724556356696220371373853412926475909766832031139966813353050714015885195654959216252186485635354042873635074409715739298688649852175328687274357562755207801737465211382826307399684492523392803889736507441083808731607708768989663063154823024296718236158101468669961372468082473541371861237541149189609942322765303086487166650197271415747813613942948821932048127484623679668717593647296747699029454390879321024667564729683246535614450099187143866024600669726046715590772096709131756198970121476939651853577433477633973967166748189341942406975327140399572282050535917215908097633040676150340446031260910543529976748815822687213869280118300279138866486829842379745864373233073428368863305643685672408798034433283078285535672693176719893448792365518193670107598090369111547869203900830311020852294679778000618940156473779447666393792045118210165897533207474662623017877379043485196424367624147316526069158985018030679698907675861304586948060131936351220588739536637432441260984264768409094745729890001164735709872705924019461705105670457819032973934261029271464486773750610368183027212149468420818156710815764336710191607775694377771093868574366296398136876684527996032341298986199312426646959026279175593663152852864089837166872700608580189298606939911055398066780537937358439664405851510358130600635181479494183425975752455142774335944300448073937697535355544000654280150225747998317161562523181547005167898664844385224380871559827359461792770715064728986530090517414629694508466628181414805461730351003576018976102638809788011961738829936375108040628391270893931005014045069902956666870101687825588810612000986160179798517373036892096781564020369032145709561620738552060514585924193536858039654226475640668743537625454210798631808960847060758353898856563736937164927825030391824739401243236778015283652462916554005281975373838649141616465674520659017387252457277915215128953586444227047316926710259083159324278754592927984290376893039635236767256218319170154498273079957345566412947404988397966544819496362966535655623192239297424428932297912318141520675545751221243754355763394590873890073418222161924938034301602189937223010256828895353533705750636295171297308039263320728415853020193320657694952541344576435746592570744490774977661112273120118887845446306664385884972958149304026491007519160666304831191453001710793910122736106449510115822733090127324109215978606133445489087489739755236884739696658752819167076944758210459266341812928188580463516238160514601408327115211053166535351429309429623406223088737357002219530839747330427783696043246532848708619160277498044659568652729030582263158498828247302839224368870382898931455033128605747544503344535534248230562108318026177716803794288411867079330220633879792565679439407911390353994371845754474304599680841196337899738563964597264083283291980063407570242810024368339506447132260395434019437825743057659589449091820624003928667681196514447555484157516800856757268055110113530794566143431264558846012552069523604095136787832928636922687801198578236692292147803412920146019021229986071766191618135888699420776460229667491037052589598174306712432928606899015554448401429793589625317652778117021433895523467499657974809276530459757168789045269598266121754201579232104506041804987943730336577043111324631235549642721648733562980016579726001370973126131212516046373086243902152110279015899538471020977992762093389921784092148977147903356416614700928623810658366478105358445887600341775175860016202469353578380260675407305095294933399035585784904068833278556218849110020671736223509539618255060460074918309841234902380009569273938037256313323804683432515657969409663376532380730274483186584456565110198798906131702060544506508825494102559690940030957006837989903308849005957905743542092734866368340528685706759655592415169648694793357417686490037409575276951843941361145223188613595810730597529665967575149755215933269146498612669667695556100836083301938456615124874026196804055697908168172211681164732447034085962247039945384157527675919892787706677532333465810161763131586115160410620559924819973735334267600330338098078714546736334597512931110453099312443681522414849725761924353443634205906900730004731545508238065610678809160491613820929285966311890937824558917315559776109322527057826055564063051718730088147058059995175277526151259636094295501332807661169724586755485528477860113508399701037268173734532242804575604513071956843893576286934786412116137778436249069583792230477425700662133906554193081844174552705975009304480098272660134431553897249932332990546112585756197868703935616824372367427329874360026964976023639105776709769123737273841167058547430858876798326222470366539014421565401784535018273328711232442342801641212267045783062478295881371005684279199122625735328224051882839299177507773769519683639742334804042714871549585536943315611644014335022419584059743490064049491145685343157140542245902100316688473083231432392181202697514227137952947047303121074372113585689872511604099952485247875484944941919978622888886134933951255926920122670897753957595373549858699619650709150089890225013061452813242736989617355896179018548384703433576883560994010975463828434308566458433450594689278037939468062194100605504951488118239007112156244985254550532602945790441612533137403383880605341891819591245866282482692784278277741325010180112892239792444733332695767613517021419426367953151335335969466739373221778037384165896595418072196709609406239060376305613709462408528677302463669502470564956526176586660670330520894162147313707844472250546161731604928076062775454132387402630846013014938624343941339177348245388776750590122423610744827868545003206197127217552034020457981784501801281225369715311801253975342779565852043556440542680426648935367847266840352763819769690469959365842951536445860786173775465582063540866274567865125992456877294263179735029698370499296591243412722050860160194831509688642820459844000747547061766277741567363788204620105367367242276137169376628493939455604464942698232195367537685988347259823235381522026411280608297574823313277855615099884922455114160702547832943865440722656864686883109250936433756635843452134116595665645224943071372097483347671144272783981906066981555639974097393201978627714302266304744460323614158258611853180632488141837435484097745430585022492435775618578899448153208926285545293957401282661381055397846311671601015953103210213547218620324304230192419569072196245221470229881562125614533958068240131614643118539569547949881668051349354799467047409496341285609587520866406251456969650843123286506003800713750013524287739039701676836865623041020051331734412460008741681357293887996761867353129315203844440917622037418771609490862605982392139795712862625286822359544018790915982967135568757792037361038856394754590896233921595069968257953564152045844313242747882854555660261168354696048282076813015227367207250243680079116746263029693706270909888393182331889975485463337215481039726417757193979944005667800410323153995391681862397299115149363582209869763010210794599693485107947294435362771350348831719879420183372483817003885353435491033496623131008774510390605912234388917913067807152737332465665692102129583682296449244620719544808252053788935390148131248289355492086420451526491151238850129626104621695240297592061626006596644156004598925393158809815674769872394092793580388357111803641266894576478125091781484416024088802333097390157068508001075032357541496183315375973810425833554287946546986464029370743846118723718603391726725708937029811009477361894531251994742518330463452881584175242098527764254882249936148739466925703213558418935823671966224990683848064568909212703482766507684813265100562029190131788785149108439452537840534707870038851643491660523365322064164074718748026606677478387477981200285012012210181126637102228349171826766517758408820614230814593393439934820754065099674370109021136701884872757624953423000298845271007846034059761553171460256598167919589607170730987379698810458364590656305353210634069343911571969180840974464087660370583186228109626464297038720600288373325060830573166133161448800018226205856922498250351823725497904031873046657371193957727917116319159576025798606869468295458763084696227488181460280303882753490646302423887129283528627810337418731683320332614904889780762638422992791485723078057615652313564858747614009753442432441425199754130433313744234116901241550572325957381340838319535984305817676665395162695088904195481571541967265153900552658321223393657263721992304330238360102855293060086625345997158710311695703129085692424387556068320892135266517711622927073067258014527796002185016505750876594641550248550628074960078058558080184468427201235842803233052761260014992599015773012950928647808681586784419929464389616152840148404592340053137490248126050676770319022958218070679754199239212354101590553980652280499500545692504637459946916297858645046753072509031010139972152855131556699325049941170877808169530318787707432229542636872686697914431968223246419510275605161569219099558282136185018808442477718451884859783701360564748644162218699726786833565818772169135436091193848522854991824280562349132528753761060834398445117000016189902708147930078570766717313148820151060042201048731562475073024319368371190222688047867057131126192007463980064169681907406905560475482167654479130562789333043898485975703304238034571696047046292272044693196899719410637585034732166742658882057711741318588726524947746325888479792606384764079907769813426188712448442405133170161735656975723710292425750221331792463705697288495393991281296713840417007208784297414175832712928607522260181835447572262685519897728987751126656234871102826090663570319784127507589520133498378029327765708283599732913174223997847827964688106470120373370159578948555510106615236743349697380989755336930105889906318636435532857426905294964334932643093301702804258715838652105997851776426774091281183731466194890298614805936625518688569804517225593036054319063101759823327392740418098134558386564953564262433144852244253598765018727951073728834639724027542723860955952770980330941727534864195601894696817084573367195335607374993746686309319017661878666903536904995408032287596715813860554698079013444033789867928796389259759682537783258821159647856517720373645961467769156612397099590311289839073084140686104052849569886920207406532818115856549239464919881033493508683172478875622625828379155513921163952662870059858076683793021855960943639292713406110323362632598392884045755656384646154085406806015265450462727226136426310498007390795783856836137070048814876706019582173325087924482029119629866320831887467326487265064057783129659435093580483526484215640499985307346882316442700883393273500577693518881024993035395336306578676417027844294448692532119775395534737859628072124204434157557527503277014650376400086632576202796852396567340483050999911054823179796151115910973530164892997754322898139826273120921523329765390476028074195270360074437823563307728250610258200807644424163253525536598536566945527344182981717993624732109629333168904003971355203063083749006927023863477412926196004393615420185174973773539052310627707254440708518221831611115004902655278161520569973376187172533475263681658763493805599203388479889947659818493830756394141877421522996264632126087610127052195113804442063033694944301654769453144648969717815612930301676320540293188373400469929756224266530895167110544024927575197328060814375643999585325041412367455095475145108405298361022276111823446482780736868682807876851093179194009602579148039813792172194465069282523365634582925345789261618449423961781792904459534085460871975472886563445815905130391272386722427617062748139126938011304920189003879292588068963540844701759446592418749787306371719621871298536083953463127951487844096028807606975037361214426285646936358403348968950239958617450754939353104187719111327584902282107379649540088271655962874752020506441936504780256853977511987790300261095624297917400623127234150416797104646254644415356832373689948939286586621160970371712832323896182346237023697593603951407143226849836429663248687684951051560466851014385786706919695206256311026668806068252045875379268157709308417471905205732096658262555879232290265406374742022343535707798764008246244727314708053730407014628005752743323051169060924151323064698100231662877145730646220081625156655319152929340647852225162847608754026129146521181745875849249006480889623870168002913565203286082624408756594047646523553900556761872203014731815723626473265063583209290701816365571887850226766224934746025560301620816805276823123241291042580891938997235408255375444335835382188888224521084347050467260160759916744662544560287630479291515978758257452286272928161459142432380471576015561557116907543238443153864784795166639997680051132499869194587862963621963209826534565980686247117185311654775163425345933119341318011193665880568991041830480202824271000777725393622449154462323120566558338163154012494111437826717685994222034701635011998456906558128611677327982903507376534030503530050078455877447349924688992952689325162315554475404886952991532478305567205381348757164005093071197210404961477358197489700059785917943267735008394185931083466756979889488552405715540374769273001128831242299318145878347658455519501323180027873857045518504352322057452442494316505320288003634630164597190159672736347273994611160270788560565923668374573736743485869573716902308514243181671118796963119308901412618028027682626831695230896733683179489841214594441509175671914149281162413716049973690758787604938227579562749261741897753926929421178747012103221943464077010396083428895545233517748519071892236560913466370818602528978190057372317512678163054548105710473144430824172818561508730263304741953062392982687072401274773806519953252314187477887025680207229746348107002021858465320326216422414911580433124145088810521206835970150753716084239804836167796086426229581259884659433939745586783071554057869570677341524117560388034942594064098732967747250160087473199144762918922841357910486703808009423931214376917679742570692672340615859763442072911634220585015899097378252798594796780659027715590072625852595985269743356268395169073300964848815689157317184510583884017667742399981319216834901548381531518200249642235449422552298496907234214951760107504582496739943509725819216933865448270811310180122494356258141183943185713193055849794295847656130335711545069857070330580511016965499940069692079301877536751366275045300977267120036082154817905170039477448273923997794334772763820879121212702905439945677051643756618221006795403392143960650629043369242795716096770101114597508000462241420628225060369510620593622076429464077022883175085896725996786567553411733333652616029826685645708550090271235738430460194107601219057409418362286403513124483306701701062330018125386938002719783646886230189148990001859941466526953254490154367588248243398196519822601909804494788501677102874887539203054391454734897372502266017655004710368228531247580391596425075620843361277444982128625524491461721323682157687214430626545137504937209145443460235007476687223907005874631934807716502820392837307669750801317562555714909693613214728872128588644783764738987471205051476426680924821518594784655389560387113721439671050264544912926625872837332741374526192367410120024652917486956987912249021135806296637651268579474727316300469896382153630088368824849708353563284946280746252901989564722924679411990639876966194789303471137874706733868503380966800417291194797877257681779039886112706701202736049352304363371786435289931661190131982883767977890012506385164028594213207753252993943286056505374247658092188756237957816840242367783572649140988663527824547393729370228608519470539832500952242733942897741152289338127213069986047170779240081077115017804309438920637894510489523027311034438559204062072593462598571876549381694548546049136453351143789507495544466235031434155200998327535016772485266565629702529281859832286697460921326646105420514965936798118120823435350652022081979334065258789592714479970620657068294161341654393715480937148435545081525922885472319507643393536570915849716016837694889537996036834835652476433129274332951082179443422515657403333035656164193925421422206348667717425404866402408879274443157657010852040987386876333369416482120245842245290352556621350851104858107197771120329796224803972834298858672609078381104655778702745717297707497108987063511812076882655452491321765816592487774176074716073564464962198931434112951281972787276726537453919783538239433349876050213741610341167558730531086231801788779382540853883840666475682189244533831391760661378244319261425423475602658536250350809657467258351427650130833725803710562209312748868570195737282847308066448454921389087650690285039410175988993113285996497572581299265854178071039226982786660612983422589205456606030215503515530180992095162696930849257309219763734366298162823258818119076629778715955194459453620951192825796317662382892310306868360218771167064732189675540074215479780311850795859160834713113826181172935606317377533577213116217679889574194381108264037243194947926764574881191642004215816214488806668729019381838830844415759838762987235733367498057994576196808515389501360535600992873724826728699069584225730866870386622681899194243315846916250600981795743802145077218784859930905557025102464620798459347759472132345710477284929038798591158823068734784488452019304088086400214072909208903331671300198819766500949261210403915243034945524620593175167763573678612315437271576569960734252522422192647726056393629647561717869748452987764168296214387707691125034095649725655714725255019414618938842601483834864494805341742299893754165968798496143941267680608523946537563876171752266601249217594814529161369839848706592296579543751681038111222699581165255706983542126880389951510348785319905976767075705003944060688973599554522727359952614980846663951806876829216693730675422516612171197649467237721172237887173523316681894808830395265432274584872213579684703511964677169346668255804741993429312377657640851660053608253348682182815410362110832745411443040407002136308571704532627382995878506366575663671504261694798300530239126328724049425098230420956987669217329160640823070533800235582971376712179161713121625248165449295423386255548107562739627365330981834058869962036028167937387132232185227950671869139593384915673665665834917581039707620996716911541529486465564419044782457512423940078370234729204064389153568467636646192585514089219835892934294485279916115153106823058185708318572031511738263129014131390849550584289308418236957469718532139841547337468383839300908982306293854693513176890413000293335066366327579427637421419393612995250183418846373125054147594876484262338564047611929378125045721439899464569824845355268940335991504796012253312118070876417344563302749645444721334796802535216759435927377598386776227249006733923787182488335652739258095190878201682948534601294126867749884025014312398206039733481102818436523053327441471782844902828110871081738960352884263757226289724993309054553365956759656252685073172890021228111909976497899579388395711607543899794256530101972276429539066029813082977655509767963798396664546722183568075679937292154507898188549731753045500993615871937883076056383316658859209565984564290412073444614706375180926803793190754792487678344022997657737199598511196831862290597443316016390398974922389185330904366070667364642824478910029879948696835577970702665928956387247854612930845496217666715741792527304663609971533320314024824273637635692505810810060903518713445921369146096086698800048676542059224580344357805014329302273075826617041754042698385771820615886460424151216937077986657378135689125256541599361220274526873007064193565856370327386711446276854724031215509931254080251372002440549545471798228562076258124393238530679931096674421459090534993541778369299071762529363304296450757547135034782702427849479917294044255485689063302199651726344786696480434900878161144246354612790038254118154234298423766974436381619894586755405803382976341120915901590134236596736948906691753029345343321246843565290876728094308250440235749420137212389848790863204780480902847950987975393565742897651640660429588160931745388778772338065344006524525682909507054788995144155898868585723585291612007795451952698220563703842978619483506305383364610308195975685523236195305504759184988215728907957890688422631541251349939910180271899240732261911703081462396551649787178927962922495653967415064817360998298960186403840509171143717673827938946462520112459749249018601807721932314071038602558674271886006868343716475553701932147351163707237145377559261050663733241503462748678478646442668404397252484405700244868526978451277631073110351292087527484247361836164430697167486861079176987070889156851762810021377027318451710107396400468191417662423650559971277346269463726442811603776566397518397607946668980189684303435266402266334581769047502488864390866089905378243084849318452824435595641876851650793398622570614858732385604490526828403671036360903535315221227721545785801680511501524127784616923695213607774291687729339450018495941724574574526522635891943254383791458711389331483900001475782608785071907278578472976595018700710778288874234795898041342383330391032106418166587677731926826710142266525112432215071728766990221805761564359257740412206202234309945902595488170604676183168832535918386952043547904158077796873502018630579908487820094560985180537081899220870499094304926775966108127702788661982574964753235438096375647867714045497565150783262981028791546113208044948435237215855928316531871364046501472872949325345675201201540148090300000452115756800675562900980276859799651312154183973461833848398488776578182763118204076876853310197948192285709297579588644051786435096638538369338152797974947039374291972970229968279993578910716872485229343897805278003933017909826678696388865619547284880211302506929110398630792191293367307929472991195759412611634332971488770584354099861683759670284176697461938352843350461195229436814023020180663489703560836407679617471142511192027475536810248740729700780462668149985104542235422879543875084430751450249240058816956123343280498876318830778976094734243377979902597248889325085192625288565278984546857326287317968530229782086334717038966644127463951465712365690070835234689111846030585056040316473703839783598952314210411925814959626886387594291130940748825877391382774818899346634713247750259057764179779023265472448643053892744658762666719093733094102413898892044674531954241790210316679595373550852091540186732188727890443571168998147121529121563765025004615233420907480568240287905029511280364656199973080286981428740666960871136471595358600875976826602331153953924552966106452435046130351816952339088858715746092426810799727046098003219434902958509645909906415174129155101968567781421091449565479420128105979864666366969477186772015453148390242225711870090314091323084105866960848353765044235353513230050842497085931402362188861860038017406049312051058430773125081146315569547359171708765803017008522284028720635630278127689619104415008423302495905891182423574789701895460006073007295803298680625697917980585927314676175494658602259922181565925742892240708751260104796942625113521986740411987528126956659574302807575966905088756829694271239844680590745764785205138722205216886489750023495051020974282344808776961293866543402522460835977298262372289417926594446806334200792974859274547050115138701400237882724765631150392723419395830231138827274409184971907696066668421615883630657042279629871070560446337463512956859045406644508076022529284431085413672059656666819507968805994166049222859350626316879771727970513757037687187027970159282256637481983870135992246758399147168840507374777849249140537053768083206769124241048168522361041738460987924526675229108184404329087817229703692706711868024068728058277942319598287512858833399317192411128532678398608446022550888306187145213092703547189743894184205282593792277430588127351196502712765964843154281551650474130432294362683939193310610515872735729545438752717364240707918266185563546650940145780541667249015372331008650737720796962845987410831057451840749525605450525785668987375298780665497743440703639828787640557984076211850257205611991585916716105078401338784687592203940300077910218776259047053711244386079928364394288197979984882032635203989773621784254102980546149819835958596279915590206349602146306156492911630666250382643700064126986689891133409244217699405563099018271055669593694033262681604152425642162139582262222419652175609332703367903195608409083650827799089389867356123674039370012745714952767617747012723318152904525545059651551720897304319920380319942016558602321611898785702409032399814241262764368494977907999661640753014695546618367692104697402166660630244243175542099249212532707938944927595682247944819973081351413227218654601550866026310460975055481491346475266263378142899409559577507709987177605387263018089793665445199273168479395121771644318403547717625661200076264727133489568988583862496519385174093982547575383389973033018344310060497708645613784321216850104380612951354243210139903889385296573819489038674556484505025806031811430050616255031764502134275032038792554395429899626256816272461099610164645250884330991891408806391573477666677612073062921898223748267317345311504488797693115728786831154937254852676243750290527329065687763744618874567318178555831713672099250836066647175568419892666580539153110689197533452053607374183606397102603538013412929580161602145366053044024486953230201502788023167165228009453860901861160638906031562891348658655938671515794344457038772974308364361492235896950243492768564196131715289221586374289102857733632162275723598249101107332091582805030296807850840584524988040543637890985078994714377407122629941082695136497511242215270901592596881640180131070390428607155243437360775608694008960520291471973424435856117213836934963506749503844454609242833389422430795957185152957839372912628636317701198776365331195125410723084119859207804614660864224000709795342017563101359458620067827440734373445469170900770721086471103477515655765417842391463130501475441347756142132141336744616160630175544316923896253838522226317887769249581891825734950681643709615998867677324191912288113711980914906468494023004964700221815843280525469224043688999368192808611937479945581257076195166719554121967683503629425225533310031689591115407426455000043019391594650922702942071379404640842204876678983047256328876447651566100174788927452027837424585069178104518451088503926563824107256039805649753428242452947773892609484105969886371210772540295989049876482877157977602666041041123623599220633217880745280744898632279568894516058300990471349160973179152374994858801159506245549087928458561916371804223058586666816338045422785794349016515707513315314011304175727177095490178599543140416619350268181134009025659755185396738742142232959048963988045008196896670196776912763914703706912678612274117099302699807980542376698410084061073973837259519367307710843860257307311882832744743138504641584279808113085372956957708444602323668924003937991589110855966500093909055667471284856222159894420329547856381729464976976822846567538692164800739190910641686515152435601881598644178932332321673138418723250964069974884031380750996481391772245478954153796611851393151466863167874947112423602631037737208107801227270229688729581576123722980771149060431619176159365181604910464021372941297540438104823510872760700121211276943158460551062594938047832471977071000547362963076797552113278991533900766136177759406037858796282047274161997929048554904042232068625257908887051763318473384385587557128706706179366137194658676927569395970106321034138672758463953770382602650739118992760096342019772226347056117865739398755983057348086654580065914328648079860939499810705056564595806637922923799156141395761090129835373556076511410362073625443554866640552521176327138426894214423859935276893867953233444692625054352977216041196211320437429347912709914109830096007313336977507793661981919983149869925811969238217258670849787743863544021178109947600422393407611182700602293797534024762253610444435399715562369039383063414696123810923063121462159246203258958489746413340225526349704717592973005823069864883445924047248696474706481439453818274884200227815121469014469274806647968053417993800279644726868960325322190196331571807561126425420092411412598457936578986141987511626818930672000788300961820747120391112033460439091256238800767594185497646571794305426837802603356398373416887783488537131066197615375911899793233471493246503295089454280149466778317470201352543252815653289260198341864332495081321844560387196277864962861235347795345535853874842825886824430056024995023497964106200664219980182633743625760351915267974915616054164779501603013077457428220353980684343145527518073469694830306513967479723381533623819914030929096106110310024102617767926998288719205594546560941338863317982164402845656394793686650846471216838634949593640338442038695697628056785317382515687472593308834949585938441350481812357338236824983186808386638608917527794308592268903848735764141597589293481852085121841267079519326153564144491482639427453254067821596809920481627221197718060174463305322748958451911446890850836213073917616167299008509675405880768783239436817289016080539958419410293724762817791775685274572925302684924378547879040241051231604941742706035314363258370598783318954175788027496194659342944251781134965557697470993995236871580291888986249494672424704840456989240437269954202835166863208559446113825797569538921831322350064499360493245902266545951864745082827154824756875947071505099404158228172056463101951235103370758258501879579621637535363110972691605662144104197071463379169635349243318347587769232077351139621657525933364574236501848781295961582862746500993419498733015754380901094177386290366612087673231082389837951817613559493189397372313110276238237728970044371465126862443707668415713114856715892654965641987746473214065289562987953263471251047579402953635936010449289501842389660686584402160733477139252882946387584584429816166526313360246306776994964081294666208970049156299767823855226783882444540976727280862928208722344422176428785761080365512630712501327335510941699984019977729679059123340862829538355019437459534375367130155171705732492385557260641144103549430260928939124437964560131637007015417742536887607339288201113834365284509070628006613570601482713446064722310898487389128363557554338263554576873230296632491265659679446695113729782253176867555345842369957486652414160706420925442914576478608325051382454131962154593764285166869658317421137369605740530828149878565445442268224478212372963700983938241748872199435394912157714176250295234965254501948854179223934191399643565198203440394393809500898246312302603734050437803939487635241419954734801992988777009001015522085680528546508680020512942695757996502857921655141420240538652654988970905551599652393980077842873631218836192116038138463580235832725826325927999402138088598908558754631365127983692550936528985634479530667964335001446263380587085684903007252957471011900931437231000719425381875947166768611934732864411377015090334234708070305388031789127474258557987836919691510906852026161715836710512608074095415166468990010211120781719256658141972497466178777537988012607647042824872654257767675898737838980721718143605700937413376497163946847935312043531507113584284335486570357773522970760639693466703671299586122503056054237460900349902155517668201779693840387288085005054741346987517394411493002133457834339641627538557779850590895866969617474528833760532695014297712489854915691711151702946772053462825500380245451853202080322609748891472374071900330896229503623350589879331944004916708906254628060946795456125499890539710657368427345621419470207248886291309639862352106629607548462093858260251949314476922837026491348252743669207024416973028623800251065003593512974600812976847208381262293425626748523459339192746932038551703785412040327774922429169866981277650636229564982103281803056075186709638676279248030544122118446965878243941940124683129440494971619743961994149406431760764444532400060423999451594391421850831011149164160070690370056850661630664766144574508833850612508804911969172907239180012236487456958768219558866291035391367568202576841896626370211372020944474894865403353873568880152209119550533136946188340196923036131639760905459158475193781832809952232021071435095361267945767091705533645013905933823660844346559523494981005380625579721947334108667794187078050105609736480471321961647478766204514033543480793557912418919801731282410140879898866406466642633140275748343278112489693495538705219959732787293293437988696547007943771128183356167702120538634626590295861887245107847111712956051535098682473070678589683343828839197191559385861157119675031282216455797492213709593969936982779879542517354661717287688146789188775207876827097163620544313606195025421957957395180818884840572314510041308178736291343160978657366006716743418381539438659749985161544149872709670273744554228940297125822291825030681477771073061463792392084446695656881556209599870418174884585575883781556708177272199353374127453781037421965611794994900894623864209877142260904330621885551742565811478026993219581026781008284216622931607836691040950760443167708271192537768738186510921015634758225882169739665413429223707168575467892888987419060833422647497080763111009050068343734688905559176809882263418743675969552600840830907323650027842186442757429093171459600592503509846264772790836486082271633825407824877344660497098610371801062479098972344259780260212116486570996376100758442840625603815290699793952453446777294855348890876335134990491756026442231351517633653033555094844990934860536631585566687825678414098758469725694231371671498275269722725239061098806313338949907241319449009192270893215102524550581553604233143444135833917897631018516989062251434213879011770547564149373110366994540552958895009112589910427553400304433512388560732992401889438602972301674373321112788618102035080901981515412107386341230636053372304295528451526194758651133374960758664029471641695818263224051549018470334170134797882351066405614123924877349414831193011824973784463827270126074559467191373848654985567932492563681941527600515164054709520954800616474842444102139889913906190282515504434919823582405490041368431293075102846335791113357888321659785187313543961205214277100981249579392881594914373855659364023402121490790342702305268467329855247880218106929499207202448515103910448305960077485332094981750569176962684832935512211201463355042555190866064474963724394421134775710447461487080927302805102315085874800789777570343273305923311493226305512830916781445130111850752136012301475876597927608219397057603192872711408315055618472683147395428343315198788260185447769342406133987359320160773338570790390942848675990406709227744165379411132949901858337348572986713938728409243134294974910031339892898733684970479793978987228857710789684140529603663539107088067948573675004038595893717953313634924380733489972907160448391748185435691127915952935160139041704141169676281441121539616777306603706784033127741749961369740583362565888604456109674261576285498588278282244133740773829046771112115870265201224296513880434547349821095522572801870032537764287380792949553659751920670586388364545574994572543059496123127699142943448699992818874875601607845409921864364794130335384282771411009647975648334771671241800468145295147473079023003665180511577739681801328689616476004363633927674971378905611885495551659472109892039067226192287779734790612806643540407213572326858432319414672364273488196076011022715488028586876138068798145996087036341584991130371897809636738893157639179532550100079291767826162092077388075306688661880861610884950731373994415561119034027565524997860774026060913725739670960189813009707522521060612160352877412862254375802356652059840830382989707277145931437930498481265934172525950967458304061299630051838480838239461030040255038470080626252417469032343390596705207642772708652239721743620501429702941315453355389576945838627063981199647494853119678789423981249973022801235854633436020699978445797458098292012476082228217035142761321864656837947873696701412583662443725438187558741373406635717384843863239865393333283547797676643110047860335452434022950007255008630152499417888197387044848484332539929529886982772407588717138698136713404548532164868938409876555197278927555076050054856853707811239811584195774301471925817845316968135500740231446889092084512865288622960910331011094597408750730135634712877514028678742661281512050271400329332133330303037728905474081200659484409900240623776891730125192653508262819792243918621612610160193238641449059405209123020194091329564794903302320987370238276164887552777312649998510493963004786709622303988031612058807286629190097417366281871352936058199417378285165352233628379219929307338823185808178209377062498139621810077742576923550348477698308801611431622979569085527311835043283316820214084006809550495334256284345713468524245068730762695917197670002005215120864636052942063131354576201653193225151815389083741572707568563595537738989156359655370250738131384479706382921064215442094839207934297821136753107108116380081155876725580291073187804594947229073225396359571223347485197750799202132368187367305989388552484128348088910277460679741639090149266538558115720608017032508907067205933431087174335096619028249355848470545325019760882338413525737335172217732812071887599012164125247094287723456849066504154315261093265559375484635197543982601655189960586995295588306592031620726046185740129275515088136357336794028258257311211302950134868670744476985421963037412021607371254870091750283648832545034451116711735360166252938207989438320529426084680350945217716109412228257776669553503013975884810569706361596663967016901881222113946044824380724098364513570191397548521354694298635884824149881586010618990227275184397915526488527103805145457465482156316929322571291372142703492282288013347996558820818405195892681330945800994682724126284096068083704033760069712643152249564696494260244220497040367966304106223328384604050343939669043931237825130934829138712944092979006240081148749369375937982164205670155745641611233535421261150342423740203982277963011857807889228655108469141441038969080475524543811895464581528773417495852853447465539439209964580477182751242376984150951763906333938878457719177132294288072317838701119392452828655426405729321626806734668386078345699532351790000112953451590994764032359989674399074790132972212729814469712626916048442687887613626665145812282220618727816214693867694681395381470761822984846655824435320184509698568861984055666348288480650672161618239852870059025802431115917509869996688460561179662945725978849564319692015279716473229829158421735442009055715887310546240421699341140758971873363552966292717666290054553141920919919277628741540705324519525794067912796471851780484309904399573969436206972636523209593051483521657350446645539370959633836904489542721132446651819628392769252812939367791850238052508715780701666623030232509151599913417721355641250788517746856597260539766808514151527788963730024159943962294871623337515436479414739674823950675057519946474639479941649573675650053734287905229978534574170581656139419876088882029147218583089684789907662173071659205218779349631852889811538928787324450397495199972242994427571193082676306763161962626678046776527966534182177160765179852108999655405197425966462248915022324793968759562274780532490505113522791577535450172140639375620179717614118696087483819302687716762561136042858983913867644639354916217011179983944477181861842575037607560881655820865723342179765783330361783242570759356368306823839772759142125231296979452828191463637108052582622444535619291322176562761412418106865096015665241763733876848653483240259388883793219745044790459269792548531720266849180118696081614762199098954745347406950748585976176917744078068059562755441382487188381924173353314171546346745059054478078323995723883678757941279016657060278374751011339046219895585986482980472630139882069331473225088543654852978246990513264582114175468622427713847479225301197723649347597391778260256069475406978603742697389700305561775405609930812794299211580750521093710635944041260886565476355318107348211717416852349739105718792706620545840473641879238627960182170988712350654698893402671957590098905446105768855983170174308356687068038248791399092737248990649122154214165323916247316763786392188386377328054323009797615746134997752647378055203117801850885614605902868779902951596105436745021295830544660980531827976799126424193813961106967715314077266986434932699368410795907339340409178668613304015396293301784130357771594818002562532354699865886790615757604720944249651378384232726571421017991577030154500458648279617893451151962617462930627914478416697284067669620051006203135303925332606523249301385662110336515472903964308756168545760136448993918186979584575947934293523691162256879305168768727160950915027106216705172050596112667745275756497803098325074642190569433446122210366467124297949932067040162730331435234370428027803021313539778176551120134795093635875090492247439704592789734791101553049492070687850661816716773200682778841818440062572543496082690952502382223288270501036386265159589843511458938474223119602906539846522396954128028078917904759308040960990179552373908032382462926684327315389692936277790530723747107204888496128391122122913801623367267189431106029532312222679600513661248918346904400714731361331821409232907053055042360588888236451486716298312084290547461148001065744070695306773807046352725189793913058945292564148736594322512281930677260144871870461210889695360366572980666256961633704032032161508771014330747579886926919525892407232868348380314499386157770268344376608218763379505015731308093143848563726235337030685010098217154353738279714022376989364584994516823245047601834046547796111793379220041934914259276985357703163696037506076490571417491970760833196817051079185502037710657272995565979214478990268146401708472266267712085553192645606962905437295550962653470261154773279491937927867889459491662840164516937414882998701912979660128939484968614883103849609389114273632432006978268142018077843469097581191290271878043420299246686277836668646855269974777226062504896231920461414387351685173814031014785588309078357142640655435583964116524203529685877803236011578746136498913837638730455157353168134730717549858331416352421739904773296792089528234638334999484432297026926115291358170267875892286276249666375799958334832710468704398592984512918488676710870632188294970340318000751514161955406064998794549314094210675436931343908741108045281051469492199187250460991643892118989235176923139948420277910538620194998144834012943940512178745718328819678162291847896683283270463721512868530738046192067714289211528861789297383998835039235474486815843822911941397088133147316791460815586330788669773100628820111513646590172281740632310944644520834082632053968201091174387887459949498661134832507291455314111403639381674629143753499623410064912265685990672368814632690487168975726125982448771110097246090077858207329374273467177815071694907295935456811032552478688532166160961522210803278279688033097025642041866040370828662708428552703736045272978844724451120233426025775990062458260651743109452707895389235870964483682047506100927669658408889082398173754114017878786302196697148568774595848102651367812539452255003456231105104526025296041262365977073191688979451438524138713542341557220507719244252934733528895230177068025232844076745529178440965165638299854986866694201857934662903661282127162716419216854075989136674096806359134885971527335680481789943125942621456274134715738785680165132414464945386845546771468873760162788174409300455467525185701764857776199389144938502491838267355253851055042855970009994880463149684066511480787185790609670856390807651259114280101252959597346523986259537940137290289046180862490826942621398493934199764483614048942175559334178851906224991180938267405440255889975550894492594670551392430417480813064357846042213227600804016751319370166389008954039664874785278344221102800427745668124793350366605999687437502311599164815269418603147176058739841833989912889348423728388842547608356852894990984908496231474346457880231734296706988908975801129535437142407648110568629895658654562023209548116593770317287246221667121115357168026627146677956365435827013478436218376106581784591382053001190877360941919638030226138199808203064240138435123793752170175080006141011734521200908871752935148565243689824538039517062468865106930624453204670412509278136225414270285361535681273199062862719779242621518610194295132853847278163006868147049529390720290852854613442545712227088599247971505693222225451148999018487769739726782075342159694639703881846201568808300214079708533367950572064894084620371928397536681652172566946041665003751808042127814464959454583691842557172246252598616624315957892263645639453632525478393236917195623467612890146974391037044625576946832203096333897898255930554227025814421798567353823884220547559980567618831425363673332017216319650811726472076679751864422066906410978461364693421616322943709702880113985886315970399772988716970752326049567778096413416083510328289038419373993677052900704533280852005204182046293215637396190492619876320514900298535973253810265695145254659709889465201280411058329776797188248090309094448338289881140510140439836013931234042736658882745193905904045431578363606624406305494506003367797935953596027426972018068769999721817675612597731381609793527907274024769369951746206788123483335175601814156281639414907516434464552347061294273378473829395988078596664615075150660846041353368822512748720009691635344675849670776126377154863138361375557112151127481769775866360904382474076437028777357955183361559968672529864831321368060205357953836940795106175073690008342094338534704679339048452617907994152384588969274608347298373386863935076729017219950137949102649489634566264016224138491242503667253335386476792294489494649986158499794396132921615771411890882882912304874552080876583668000967903119106992055712283750480972017986994990219010913694643183213903417265280139245986792409308718908939030853950230665881912735784368229559701632570315564292077415393797211747792021860880168898721377260424606190582701090510692671161538951995476902115993806392469543839915000062683577384427800675174620533251461297065705225883909709168371024087617341503803571756673680309926535613141938566870994722499282973840242708175248831284593643470518409196616673565569997184447454296769337621432209143801112382469744274442041701463790616402175786295345023115797961449623074945423250078288841841915505105485053129145921942763769822815598916976593999058065890443029386398000676684248022277760676122934134662102725592886188825835420810261374366610154507508339258156886134470904008399898377934381352451084630203527073546932106712535557990347480666679261649941808342687725718279703512884015180917499822708164988444499594559411512867043658300674570605104736572415686092821162121379698837549861827172248831353682570139713159341135409866291646961175332294546572346215107544978136881339893571448117773411164905597801179716109210675433747021305574820693654251600581452812835019780883058642950736929694538786226595334040524997713239797678795820869955754316874388032581466235970895579799089089586793243564427736492366254595950139176644556910026541735380283289049419748989674774990563415956877394552715530355790615772383312856377243082508164050857636275497398765020923613332417150148917785614955716733350169602391733631665614288868864223957001965505158024145092487803484139299739712794647364397752710388145796998703573151145043553997708117827756960761683785764373570742305970248322859346903721460480849107822461854200893562571771703536005109485073559694588186861958707719906579459914187735790440020526875842026237769679944026270789848761800905526221721173558905894626100123921171858410418885465117905685170388058214867363576675777286399810163436560150496574883944884063776694607225657544551126520609981986286018674621503580140457587727691064440376538926574832240479924987273034000260676876994654353667376058540535651380641829868717836991547679947841844118592165725925688418654431124203251784106246117798261718470615639571882785383480953828594750702099589031252970565314648341115384379075898415644070760624938452011237946567845551042838483785300996341787540314662551828211073359465211112197085012087442852796624217754781345730099477462860702949811179308085264820855188075066323740389731295413845473383068074350811378216849251169327384986889834045211864336579382928067465784974697693072998421236856427997974406042494981979262956463310433719569507333566259311734719862960748001587117027261911217023947640121863506779938273487626697752136983254650481079354852385196551675625520751603781836770850243636542955260904238356035853577299469233888972867594663014251009102245779785343264484627958287430461658190136544552174044158106016483747699572212977913901248810438550072849246433797625075054755463636167302726378386996486916968659409067447940803671532590266113042877549278931959171012290452340033648940285368672712817004735622961138983413146093233326289076743154295486854581419560446437827926049814496293120950703927777171864827505819068572785756284573603156400900830665845960182153715232139899255223870239536313252607317251362464248835691601094349180634158122153973949529115391274293867336315599378086655861986361261555251808019685737581191155388282969205887686981034537111090186134398633285485887501950988888163767474962002563170369715844940602843049574949476633903033653013101612374919692718815518490254175961513907058757151089869994295874806550457426129572399837541656438742970513775018472461240572783402011090353903112054822719385395834093822640289608431978356929966104516299663566012998815755305054666673815171023042132959685336136881333035132924283745899462695188258116987850641471172300202124379291639631158390631216971238345686772527075672578867303857095949410163475211543781170594239358905476554224608973466231499345971669185639352753713792313464674740454740917291812604533678467540157779442180168572975809787219374270694418223376853626137292155395467652362019070856348731064987860251018383515929003474171292854969153019988753522555934927605249073235859233310703077131365078174687770160702499169297395917922221683713193074590630414752658276248409546660208818321422067212020884939171646855471066455732957033847956036717961372367728398929781941266115496358102153152315295785191154773026195177742907041039227412755910673180556901285175333811731849838536096890385554273627934850963790756641044674722470989170395633256307400790306038687073681853422273621998889180492860583635603350570067287965339973320643837130719273731307934631464785429719375724464605398958420329956823480392251173424723199222720523465853244959958331119963720638172672773831472494989306012413367080256377388994184318576037860024217846696100479525784318807854549539328948074371717827205803859895496787449341091916262711778898967343250290891181594015064594357565093644862847677954267138270568506963564032320731737447045338205010486196895620272740698781582118862485885063810371131753935828251844553899850420156727861394261799937786812315884545910424175371765284015467570118480447326844989090573635405112465314892297959529742987978945082111678020888729956440047125754191016974112470419319643154972947262590965181539302004047777165223439013995922681894133849223418113528685787327265832663429965911544627572884709150747993736921933913330015698092395893552504307082682156368497222533321311708535882703259861654023679316102880348623743010818118319564568412800467792118776151923554141687798186229511326199386572151694730311266439599311155517157829170601814842767655634633414348023816993767795013226939118520773861283044768540968246060234143723205629778451639361827346669118172443335864412853398873325843770248418812779392346266580626847921669127476113395689782457369705141252113946152431860154474688478085051120592940044406872338444015465887441246311956609656090386421999652402140071943171785278130017285398769099581751340426182713120873525466124542520543407183459211078025103787796034819032364266763369208176970124997685908990772328568148996272213171318619694485648386378829057534200304240093036952893049627256122627507785745308689634100515677710760869124082693539823435443675663956430864999324958941828634442300493025853410906845397672638879970236678951483059914354021355688806283699849801748747813849086342098767414386194859757862529776171347625396549410425900110971063284977259201858372610908404436156038431057678924995695032614560083891440710742435567526154306853095268183183943164815072725354999978629721139792920812169028590673014369602851303893792904340351520203913026302447290544333930846900515626129571890415124902248861069587529867849879517928975571799148971874783389747887709040820120278197902013869872470546018346283744356200849673715996945642647134038707843239910945653950288147581728569692933483323355963379768547753925875925095772828242442580349596773755123611226616726476332987471340939793960172896607454379946579749855558219981663072834236180588396140723553275787269816477033361026827898049894221484983521212257755297507734123775789011612315349616666735181260354655061023430496019354154763849779709030278481937150754141981343978423704129821728021460227397591527940508460739277387050231733580521015062756023923646704584808493785403878668027014631199955774113554701453962702682820656847728798853689749103267586290361251075732807119319543120666897656606466149151302218314743756472555096391223390530660678139048545897921264776123608089628201903194671809846099660810216736067885545307080015171603194940050811342267794869735647221929644127395726825520334254915206813036896420226541926177406338684923620899128345177734023793046254693040012775929236303757744497406285103334015501299627429561822954807818452894400313533634820353869214963022993291358919457505288155873561273178766554657705468259747903596018498407402730500111186506968088877664920180062441233913448530941555371436147797775272264679204125323610521499970395863661376992298902920940473471391473444218575703995148720986866327719147947265603769561453663793149635088373005303355988732598794432123026076810277798187847944286892813045345408743180076350754876690739014657735638173976432893255133584197627872551928008221250537727233377936496180415612309557688892872133865257542173137409537913296729760144712915142155516461379198924387890441615417086524160569940786022443681874430912118764142111844903508896979998139915209362325385829285824637872141890637170630053117638076778261594007963180281903197266745338759550238148919228851037653170192254579396893350069776914636633684807991525967717334314849654768704866233507415106142449170826912073656616709630910858210481560883981955936659222388902360110116036025520631566419893659200275936695750282939015931436707205460462003004976735452283481530064442510771602156527242561400728180770854848832765978720064995405685632749850950059487444476107120647421685142514377041202810517322851621173727477773968864583628824156756357711317201055313088302294272791166190610768720621218854245195135768752174828329789218218885398974290369547182551333116008684580478282230334352523562242426304645041354346536316696993216028377581810890945588205268095350210327982423820224813524156052608032380125057241799819044695918464214023190255689178673543774000581783102116002157338918204636004459361634739651784457530083731316197284075569821628105005424470401570844482257106513580025800788978132982200818279392608494119237234302472777255611545859397295087664346230213860486744029737535025408252728840487459984758613855545714707533100625805659095698109292679050017040142148121177145251927039687656151739429490608573317985502445063587821118835646006199024315282782935380019996960817692521651102054446009749199508848152159258422156526997723415791887318954387194061725296348479435115333388275285972332542281669054752433475879748524785491931809118812693059925736569714349862624767127310946610748721962201661543539820686592457701077717800162936690177407030460373097578129231928682581116919120198007273332638166502432069286651728577466819439720887242857113332683601936006757991138403122360420938057451163403640120230535556275243977382425466666722764041294467935882824964587837417477170038479221348228107893849570142325771881337765064843099438225545314622870697751494370725423081316127100435856445035904808445674928060510672251002953841282798212111229276514674080935332617911434330081412820731657005716665022264433194052729669447912508396045861371704456764016414904961297319323610170330358402251954624572026291892130655773769106799166236299470815938442725662607214581530359127491367471746713532656354257694675023366548175409946617035919572349720346819707194368683204706993301278688646958296775958194032351091809598514671218066000194501940080049540857771052732726413149587866966101657409785711968706903477161873972141889229456428265068141079089530069874464763328510547835709105207309121030547449688930049450126234762496333125849955045202617488867810522831061783782962976443058302718732424318598081140319796808002996111943414554939579589568834638733780017264106851891828119252734138152904931694440023083548927973605851155155284070444116410092416997918789775519871144395613258958118381815490979663385280310516737365875159373468355975014588323118540418073348806449420279037556735519500958677438528768080023796206350591086699249946470620002435264146323551900686500713362035325495800343635383748121315186474414132702112150111489112544991248351681329635965413630605400377707600453197615961138116998579433864030560698685900306891753349398174045230894228189173627110906587822219075244267094978111301302636254377336920002673176888743983729176479625149366525096646771806776388087852827486711512378466682886715845819762844186138298179388813437088103151031381924516987778939146967236443211650771677316532706153547258068945812616985604889228631010698962422021219912935517218489104387768248058024929603975896201469449033687707885894591956785004807334985836926231758445182940589535403420721139629197934277552116377101813106295845815647262084338720818624153499360664778152866001225908260161337222330352124152347877911081133288702564700836378484291973853718040879199254585477759838425127698054383713795515920475715517666244664583964214424559765950751205259013601086539661247190431052654872236459751447395331912586702419026246881252640874861296740180460504117752136452322442637239465885414044687008854245146639461173782416836807310068360130298502307723000554101596783799322775722893003561653144804376483289870751385756914427899826467587358871053185787226803954556646598930238213115829471911167491112467433824622838925035224584408562093389461554458942733096478981824997739020063084968357106503017946910856549205790264133292249090650485887717488990290433324652409860592307749840393634207445367542086885659370326070532868931050063395089457048266992597769096464136998033215824893678144078913672355250331085609842463529501906643275307189589428291201810148442178823224207709975645677644005043178213687722702917369638147720341651473200688670596740365224096199721467574111836316140937034390026149002562473568156030290782605362767566575115858610867733134465310204928098556881714823697589633119546615432532524466317954246890488425543155009755897110718957710889122132238471504247282792639510850785424291272187940566127598224699617614903255837009617192755415605358094810230673430033669060754272340923611353780117553090278802097531522573366490751235441750053072353378467628343624776167955094276415836526297963563631726598830817327725125045794568978523764444645223258054567136815987925278774480205357399766333208332551686700231935531201171130354774649967233777622378272532472765791609252644790086856337385850008903171780148322857386099708047468523189276320924117409493246832805460579654443328119551993193351357094152662887028415702785607654936837664138780047094159301920860813752217449669439400356125997627661107515498525380118820364265266445488080082323999869640947754035005024234763646048034010003288101107134630120401664809344106188436927542836785873807642954451324566231237901915646176108373962419025212990644055650249367988266129193776577088731963231160060840688256566566432462428048916156184205439285010873245816364036389856044659293291209305456402775358482770303750710864921087494949489020807850795855132168727061664587782756882749441304449790585531539464080426125659056702255906952298819649872074982652763295004606817901380900225361187145336251344065258261590174633832333649864006353426845773087113603808300984386621345840703019676078723542785989898291133411462716494793425388600553619240334468794632243801214564979096410495362342872889237849798776823893508624372841267498894474844570493772539689651182549783769769573377631397421504955831707629403894188405502932922079255330308622314387319828305230200111424897945042988534948324872522752071923630147529444467305345801125218614643108014798867782273280954841103878177996126059253633071889500172522772173814924263408006302152332354756413392860180913852513539563925486053203223783413135149589971500711270404984842471617762185678434638696225843453691649974477534007536647690627283259745406024952931641281016649351474447805175759550163422225565934478860542259469929612513715195933437695957833035829836582940827978282391851419208366515079129015135295125651474611269246818553803454603320194771598958187635504791345057581639657379181378931360754940006486925075904817018009039963502774917467908346048092975441957225739961745540945850875938142591423568082847248823107733298423123853268813705874829797431991425188008675977740986371155729873194862675841322475402449829225927168079263032859162480171682093010960020860570918956167011972864040692700899924997525254522674010811234481329068052955980231836054695447179517354510495722263360896944267329047180470886044394183886304738085259186576182462245011199306575256619481864565426825685921491877026645172060799607848224909345894429432954268586918228233367105540127857023102862456048066416279993204489482033100075910436368457978863283733358078619563435193212125441885744153417747171896767490679898657702262147719902191091792861201439460835212785250386858762295184144427967349360225559505213911474730853925864852927799661480334358179166298228203696218108162936781820984154502030166026863858523466922110941134420429914130573518081908393355558129870827811695594117313724533116223558791431540789999719430730272373900173288352192466532587513485294129835717677943771074526039904372353566836009693112177158128713517335017891153253024067523881580824376353537955335632883928889403867935323132962159791820962480336716149984085553390837924000248236601876635616328828937020303232207071577080997189883931356102580289808508361875204338931795502245970736148132301366245092792528586335803853842482676360308179307933407811608419043471415834570170201018957741603632561383085435970266741949341006597331083595267237716421446465682525744913371338320742453362186845523023219769306353705101986952219830989105666496096725899260406285349801176381680333346220763784824993274176882274058802210178183621481799533266862102031678825644280031549545246385571274171766592505197178905268704233032144549808830664130950763478054618803637499513636804205812176091821274778313932817360264258078905410296625936589566965614541738723287075318115553559024609898689605518869701349401315847121470137409237327550195824093165398593255332224594014571906458582003710111025277269464750320391696051874065022220316695068262790303006367614494408215447525828411611763742825219881600121899221821765567244359634625556317898502763064713804102642614735375423456707519092090907026225308136427483954679522977943340612985210407676754465342297009536460349277944736908889280979594485155520731615139165867004518743092733880338300974870677365220740388213225032195331008468596111341669245120827155152208937110150915949303923081141485374436785133454648248932804498415195828488049729397737053614926132522125460812140293405007188100441467127088701133523112346267393259238488207621026120972370681186852016335998709588837272557075054756316211940055570447749025792057552950316327207437373074504497962615779294163221188747490557338126115723432879729952619597216672141838121489061234909482360308891092965657978292657382011418674998702812149339001682267750262941168255459435940845444804245448346538196694245665264145597263774147115782734444347589055070556505819644111028943397793661244532123962885535324404684312751185234159016474113542169607663399713606035962577231648450371106256835408255836065101395758611331451865013362790546815847429960115538682147767967301135670780281771433069913066065685923614122487165604170807709345758899176240970827530819043442424982209535723693283438711506900763597574427878838888777836896016183474947623601289568258344554813287261379839119524511101270558474551323290103003591752769726852854584090757335620541798796879186242545053593818171090006003132211393184428442627467240384919623214686108977234568958947481171068413354650983609102056233269962393199301707946688316400700866486352999285875567546983804969833255387118192747157597292337789192976555405835299012838903347002387180915703996213540330253407771694461701274206618151959257977636247629670425756849263619995197561773827614487663159593179219628018238945778201737010286336935191635521873658435097432996165138066347696954406955905634422770949260708212388950801125255297150177052700456593393478302983515118785560243519824194546045710418207935181285345551687856025717376696210659074409030181281941603700712118348153372058971643240468254045890144520186170528854456354243663539938663954125581925729409211778590623156399662293924654790292019591188440255534798594078755468986670018156848366793375522767866909468412372998898280917660904409494375877806606056588425521956554426666376484031166968115129685726083241504550718357971551279907642490683525970383400944936954019651039544036872349197957688957551038766254626496316808664213151217083441095174035043808796167896049918763971736926886813718603166191708694582695122850197373019170340665598739174241522192489645319311606050618994926172862767099080166148397382327167347373786204736152929335101668718928153341325144458817330127892836268104389347749408137436738729845492694972782284895942279837436756225728646778214473745346638334080012873637626353825931864659307282805014096604614099104810486496364360252362385091561713995836979667871317935392350271274915372161983275657422815533778321717082255700878558377699861130718631117374261869070150677005215653597970009611465699906981852975088191911501662142065683315020996142557654922216852386936165317995553650353094747132821848739131722834545701792499371782260500287869134930937405130705570773791796146809091647516230540242884424067538093785064320239697027238078782542705387361139109963953223484674183904652355716761432550956896787847410795077478035589623846370138421382522051459947002479486577978723099359538692603006350297185643354544201328872759160730884674622198080010830129273638980185487176191381644804236981042401469142005492229476141634548643468328487076888222247514193066257291263768221596984226248482731795800270854125702572955227296800958921155381609619852177640821569546176942848033625773882059947928133844425933501212860128321609020280678792663209583192954864667509526274650561370890153333808901539632276439209796235134403969049504048075941263917722230066018583383123838450639991077484904122139398018610786103345358473870783759653705843864635004754872386269987315529321939663884776217891959169819804148239723381062411999154319743268246050815169565097474073062496612938711893754046758055982191448735430603836735969078680965219428123989478727565350530775781146800611496203021198032795889029016417436407207768731156718329130303823045947014084740628920539231001557668582565391841790349242826240927220784994997708738519075769847408326367985128907262681847719773676368666458147813535743719319977862935872236870826192398788229030199204742265365314445591972531799548591179733916414659252746849105379924364714340167474752477058062056994118647698639171197440737133495133540820159843717566113749745788067315979541442530084122326591243390561878734449707150357808403374730638616565282067529188349014219636556009841866637552428867237639452651792042865035482744573237522243324606415796136063809825296687727384386168438144655936665771024205712244857348110616726544509583203485277108953769167136952875127540331882317759279526487001879466438719513028984646725570698625893649967286585896367033244177975793705162519322958570595170650924157359393609596257686819639173417327111339529977376572337555434446847840267239305122430858122946484150578314329087262726587296317649231378889784282178717433076218669372961135708124530864067073950851088774738761569638133071059545160166255031117919394146920605978677048734346916513854146017576905246964643582828929937220811436475854934494181619708079173624415023144891190962911657479012679102784688761951009826407261334973893046600894101352567587241551915761051214991780136521486366849983894759867378021925144098821147345515027959842598238865851604703085712239043481912841763396430005955870604497509881359058918669509545469683490974841722333105177158166615746665335833837557201884257737716660150566786330466424632146927901191705578590979573836775634245765074585593355260787433855848607278519036227986202826441562056975983350413711033274499630029845968180808959756494579352274532997378703307228966518405056431329904341460519451307511446654028440616736139771693776132484016808930728830260028434083097159772774984052643732021543224529630963576918080872775762157299986781764921705274895337181162233922820914910084709052058446477412353690679551759006600071668919348874353980582325430356892933752236511954229811039591919641030174231297646928997860970308398533265552058662069155368142171111653624244987932033128265775578261111299509864198231463413992517787254397343049629934371348016518469732015882748506740068792002324062888102601412421600200089715538408350393492885028589954947309199344998509301953202224034982903090829133705879017319501153684068550408741212647504514972461818391519833208942635317336727158230883542783883413748340645168070653092707660867595453466021119192832981070710259951060295374421865117732355894303593289165843948340190540125432988624026366346989825273616684882395415556908855541576074564410627120088528054928436782123061000461152055246263156945407932707981419652995803358506959699971745238635807111198506611083043056064035206064559514762041441159884629799118466480466603068092601008817811505293714840128787154833878087038923607010002073478979801603601635932189235071253314152203507866253889592476615145509587104835204065532346584621450752190704306393475622369386378234382646619235556242045557154075449025126054317248499427323954821822362102263074058192764824322095840372391752352755601226192851723464341495622709719526636088343032231465798883613775944421311208325698551952462744229243916656300230300039846922115138432364757517582942538590790539148250788037709133782344418109299711187794676005138778223171268774675776839137927630349248977760158751609583134260937389360502568070523674848935069343137614939585129614170563130724567879941918858873551888021399320775261277718744859866134782642227908310782622703359543146791749951513649233610789600492099871844894494850069354828508634038397153457496168358804791072965867533633927104918407516699467220732874285047221970794292204777013376326028487675106453456578790485334097747144698924136165673990612053340721473208629850927903019474692730763528306415262099460443012903515679906361285603290044876025195880661182449364759357319830295664396840751691625613246310163851786684773570953429429549625788015298793056167100013277652020525426868297643198506384015468781104770401891986897232358526554125765356943744729678236438364016446357697167247421066578863595622563348967736961963111012073279455741781363700642383156413627238249838120251876425871495363969578296740572247809211048241730615399726558186039760469206838860617286514320746477564326100347112584415222696215437892949049656657823243327827260607819589563114409118031958866144773603590523432209868922905109741398617462263552597576238537746027058232933634341337789112220283634439924574387221035379328087613187870586395337251825827949659964016283173007092160380021944993449298855497289135212251896957667525584577955069424524934744147620561784485233217173006833587491518671609087926442802508354112141993924761566339256224263227640184606364025106642007836705369123222153289492746611932742166434670785244262473570764803485112208564094933035684172908487609029837642339728646007152946830570990333836160465700343598851401817170484932754546699566451669618447790041801195850486886317387121710606511834198939594199184554217355914903747716980099081728369595811425074964645126043490790753959143981830049883485750188908671037884842787357105920569476284392295116169795377019571912768116163443146858458713333115510948754133354446211323423616028977638989829913652032485577424660946747299003674223840296457374984645876281400268448458322614623785525124393176172902082254285499270860555471728193928635951614638919495544491847109685879299588621178532353422152474683743953485785482083243088154620480273865711151992791402658757076723658394206742369028229042767160314246269220602784592822747895265409733798590575296817406503037178333257275917945599783542012055794297499056861600683661711927352908820159032778629458194433945395787009747970725221186692503045495419026652433272928195679988986065197132594908422914539492556365632951012432453832364613673317039391087873305246527641932841763095649627120673163542522089054294753913012557819601921150332757129949058034091775169641787356199803045457522961635193199147502668020729536767500265709197310574031998448387179716157931807795872745560848807083796885652215155165227837803301840185420122120791870860484631441971898944895308379526944040375073225804591755906732654255179218746457932073989118570747859534050445990105380629232081733432301227758833356019549676486814500238932594661600994230412629447518609783387326967248268163470807492641731129149992415152365068427115780053988370859564229289588159608114316521396714575873511483005350424801802718186358827409382502009257444165940677219575603147458612722242851501155753209790605378942196111674797221245880351012746996889450693112167492399411010541009935683872939843775858047640155890582285885298303993169363024018478769115902341182138381756710030048549668694695546141896448625446155211678221631297930461564960298313518501148431718120167415706994113923502008177801502311238295890012481283698533893326234487314555580810780965917651290443313512346423089049244130366529517970514610330805168080064248577925969526501079718707873247861366589063931123782702370376336948255431228911793809350487337792147930789189751178237184889286918206851865103265215903934181202983654422706570681843389877413935981290939198239839487008077498649407248031700347550037460109937672900354960663293957980016518243373605553479732537616062386945891289042001277291226012864710673904256958113414564191370493057579651167218403479867380332395337954182974564556112659110821111189795471783296835954224853075567285410370951908573131377088303396771270006229067822589513033994227928502353626920006539290131246165853646142552167638462389484559098898674288545312197912499389517254350854502780078042164566439614220226760303262412336767259803483581542461102604026721409389156567041704753498272999491984809930135385934800297607820584920548613629416695294346041275123785356294655245969788653806113136519620470236815846149785271266048168619959285508636686919091967495398797613281954138419548093038915265634845640120066517917553214390994439052860671143178121987712760969058400597651288257502845259221127221172469814817197693370553520067149461421894151060269684056617368435065230990029568190728148098069646368167162026749399401386146005622477461730392419628930743364846310358111197015128408921373254624763751988786707474880420911749104205727881926723096189475308299428937894504835035081245693039062457653643944840091106999754734048088640756580541089929360301109290913305596877281252653361305021386823890045987173423350121650254710173978102300151558830372266286777176450713272975987074189825998342030779991329442161158977485695717474974217419534823895935989641112020190887433026267663627272390087912627059762869442389984655239037756996042982437344411820792745675946927651513874599511423623775318389669378023225615041832554711670784990605016362565221996457300129936667449511598816171083614566708539622946788959990518124935386575110985881946404857720280657064569813977017724127977099114036142001758002830669963057665752148453261461107599117932273980442418205159106398196152876566411821364722270325430309042837989193982821007074737849710992735651703416882621002137042056450296902039511553604563867127854092428369690986961830178784376463792566225820025951618258052779338213572318009261899562324915331386627980575576570966932863820125851226869180088496774907077329276555965812615051295748070127212292735224090766925753740273789092751775906797078378732964789637547013734987215532180425486880940847776914003825074268792589675797059779320807980256548680761566537045188123676340514638172524222193532387940271859865797778621057210622078481115996475574180036176622286098998159614828887961936134899272517635827929478452603875820066648238938431375174613332905405186415620187104995902927943502876049277223942043795529423425180506697522004621675396683163443632622789381093462489983032050523016874240396565984992179334281847948256424374036713667673814673954665281948620572939564253629630170428916939206502087345932962777498243943168989120047273964486998174321339431931066227032402658207330608162663878222366739203087555074793647930701789410952453201604542594596209255631004636672044920779781699599356227192812246709130040801791137362300978564747986979463065365385963580398199312162444132583759923132129812628679557642079978992437704080923681137933638845449881686399546700827530610023289728497546008325750707537026627870873181803145885082129734824671965182541743738675562296573566227706487929065487451558006865816289533464779510131861434024647417147820593786760402411894434662691434674597269457714385852711399268788760885948294498776479280947519120444368952021662196846720299849355754709929884792331470085334980314996008944157734387155083884286359805139518716249948844124591013073181155262077376924257791420053268389565289662640826816591967792651433704888383663616213491044836862402942430527094594117577565424853321235850485378287473723983818023545308623329246216671290961808269603064265530901357620639841184244721836048065391326562000329194075637250340623793677917865360666771910077358655472011030895373015446537593217993886661267094182540256924121970091246003269981689081211731039714852762389817719097790045525254345014579052881295572233236074728349490568932706261015898489125076460717421032117897016145963856470182762083183930774783345283100075674943810756683608242019405813420807593347394279261243317164132184194229921729024652355254443391012607965908120115588867648635773707336417033308333898512312243540051173340552933708392728081671971528220761650774796897068172593296653484587156026151561586697261507749920572990846727596238698004045396101297436636478026716952571610523355119087086022932187491981979112726018109884733950734363398283328654665373976238938281925058090088949265786426911276095369711310772458943596246052832461654635365613561706986504817480521791396329633028669244483798739036863541645163223077767673220521909947461462216219943874759230965922249479214422561777072780009536994641792837603723677657290738357821952961466302998518211237827222573537579949977601251243644864510636884754976122643780297118954186583813523653134377271586986289770774069426467499827362671434591081498641043286529914612529540268502238710219537917288204456548057104746445175560342591910756557842613396843534449635332612447686733138913481927570873544037499523254987245745557264606072054088656356298896062803925625851919506360124652680519933057399263958389872673214960319357015569301368999402254767692632873086070899584257851726851988425473854961811023090615357506302189156571522818310096807828690875122353247710064471598667332839657433955267045259519478825545142516445492585394492591842660778348190881071934746282615111111407271651432717128291035017925970932221263035003251385122614342790811692660520619125410559655564170597495758813375672561290546002891798274242615393341600559160350991380746764942112982113322054808826413114752530207502540282251439112242125025129884157130393771571497169258263951912270502114072930238587562630873163503993565850341994462329640976979133920524949898133460768098077336643625208520050960334199944295293552106165703889167936514917216146111342370159050929940162789028136584704338562817256584033072111025460900613462684502632444821928112969438449315335487913674071085584083508528999195589266790382746959226379651798713402992378783139951437854502846686204104367238070139803182157848401218552313855971871960383148048559219117237453859766754752229314231249636828052870903737498630793473908263966855261960961294204321529423366083421642501669863384494310567939338158332637487771022443316342795487524054062369998361770915564971577726538995461878716869353427995142573426202218036407383957472679610877510549024173689970294044975450678653600872849224721427758691730172951941197865931463994627687406192819719706420549593559412727530049039467432898013065620532158025452043261658350658940654501175935767519180229959720123981076625466661973927591634412204325060282907911796107463128360852752317739756608916630407704169961942920804613578200272256199581034386347270156287365043260236971601450238731238957281043746060988271874807513828625425038442921812911505222463179494152903670246504934024797958622132641658013152502881466407743197150118617208077611004176500612815467042643944329556076075696244335563480643427254817994122071572259275620998579475259015397478864179537114631957790645588602038337328225219895134950044016668881933679023110299472306998533231326176221029518079902950495437197168545614294180913877636587183508409028350572987288703432715183205838875643873909702491075115250770671354668262633522805450769121526906426485032121247614752074605676199182518981276075774199403718549290999935766343939798152160223024673875824492208195420309378712162994447888396691196280188846648034955512447009724626662394051456964623314868785372930404471163041727190440686763377730664785725431452402869074234042527949583563713504216269340982648828488947424760384467868770978724255746541966496736577345229880938276115336066486157254725414826409164637088552064943382735676227065200935686975659998833048391125594920738455494034448696026311724724999106963866074805775895855459869203352583398988069867706882492251311110950051797055369795845073476423352560517614828024776365761615255251930375090807125049090284669508855781573368745117108524260124982845153941900350068272308508495542447950709437373366933869629582535435425993128238407467179334598345968833494511975981440851920160803528939629192851221300385010146414438682438681136277118541856760845622287293317457439157671026752859109459105333171647935723927303728958725707859158272691840178183118810533944410620072107834807089766745172360920117304543069287149736806378710111684863333389060693243204789546683535267686368303821081471313658646882858201878522138565635570769717134561944536047033567978152492063080040053180386737801453937318597573365265446005720708090569799587391904618328045770012794103095183366934725170838260657789114162047496565840200579231976576935518426114822692610620554501914145432712054662036295331957702988615514104342518271369458381062031651935242284086509382216479093976855855718563005962100236269122711726562486908151816823126600551637508923454330949213646392197286410895084999709986040840902914444969756744291902667192643938678255596830991320783089752862493575636245856200170279599797268964123667040537402708466605133289978463197945200981241004327942608362346524512988160353110696606677579274958934812675180513914456079907115869888598101083140154582706251886774396691917191046936056672498138643784957616011163145239237750127273608449089065380275755773915434083750973776260238849858317475417830093452938234694184027690556107024176695307158908387654535329940821302291431517032820291673050464057049414566145131474128863429212456171949718760328410552547442153267299548241951884721442848709748232896833795424544508590030050090148659173595750683889564725530803259846726660525320516436120974112039923794850610026903197577837664561050152632728930859218707772390609740874067336445642906610973007712578106765825326315318145423347500445106030440197602381512788397994779699815495683609917834997552978824514559032934088953204787794796920706557400085369796991357654857593991927699061117850087738261934564037316427099281428473603161616770252667803961831198312715288962905896162096174887557669979618457840872249969941567671166771547617591498376749516126137601892183595014752728682810491478178646720811138608164309397703820297144880965540426720267648693643480969776549007513279357292505480636970500866216172877666822190120145947710694797205318111628573095885829091617110865350301418920151935568265445618388822049492311747690261459585862427329566811725531715826042033465492105604237052578368666236321374314884008194106563012919544713054276224211848830979284778841535495898850812206943666664756550896632045451940481429002160414102643511944618734991608427864400894547897395881827318033449981945596652500597905987155200083855017206754576192219564252432583843847343096254382992585313160153383654679566808409641580403502540845327543727292630629558547852148152414748188550057271564229739201910036362744051327722614889044454720954983280721841705823501077449614132097173263044413649476346697598807572305818410496548292974574176042134745032865934683767842455866485322515196300124410687816484602530373148889356796079269957349899058648255982193176322839890404160571192705102910640367004381745144687641332600046373799032173206540663556774226208240634571884495468541022882537066771969161546476629550174985976366043479156784418538740407301710351491362935406391634328967718318381059571615933244063678076171119686442995434061860368146026380904557894840707682950660960377540623806907738025686259725879290567430824890753838837358834431569346474734348268815273342097475707214619751951731630417044218704967478087705586180646473050995447086775160524412771640503157927964280913655481273673393041974998171833405940675685214884354712229755900389692458665054423260172291958323872135185812350611951337517080443450928456331727397214428612983530511842166770545053828775519238704023887777078772991961682187250224276486373744923945006952849944565332766920612950318709297730794109946104314155660595096582644892836906634640365267957549871347067812006978889038322397844591559504546551681535282940149911792256047373750034530772754465291999896241303311465581340993885910349254778146684284444157246756465743875295244355244873309495601559215489145331331508133659419429303550590611834856675987278634753507791375791210492976489069207996924365340628782499017181332139522565410403709780049281800156932019999606476623873483993019840571550759457514627257589661734992153845054130485405711578204782367449801047466757948975120360520657954674540981148737073114258894118401653281516815999480465816300591434803201892779894541318166301006917568329373059346656141266591417281670492587368783643151808833078016505398591973886607633582306436178811204773506201137556918439103951865330147654757519674496140595908243772946653363898077049040919606041756449992163868597536504127261200302045969978572775616661944858225770608446883653347968686129722183102705766129155620249786417685157326191968116039509600831003284497812336556079287348942019547945968014676499040272353996916806104698809840705108981808576934995366734987340521626903106353778182846231889282775141027548156800962518414497879613642201767464081527829488173807330692302418374003642895585642064126935093754130426884856446288927329256402404829634705692753221679717135021268052460655933304837925952957495052278137211507285978808536611592437429531500606564221456376181852226365170832143057063730324390694840606023377421380344775762731205206738906859029314445851851594735816752982192048065997159023463963579564824632230852021638957180293304181072276758818510538886862810312345486938513838786820399613225193755292941958162779235169028838477762955775408106624053599304899828868362478342152221321807713376950719161728479578985480412899961544478822723504594095876954520468163541377205555191177750138447789580445648794509115103031066004566845173718257015047972986600619682727387188467515659774345001191597951141595480572605193932841661249202523493150669237307594515177710858893718014244035576609186607559181102967663297304420878989815293686770872236196918426820277134298073194678494657775585062090955890527171451862685518783063900489810413593290755975674665416860361250592153220176664719003487335025813263249167876987421734735391085327027317833119823248424254267337311340182042711231595789843257394084281096014353840883031393117800839787517216421221740334702052118194460732482814505169974405897178355852318033310793137989172014200386824723645974527838399560756366865580462295480746346878874842901378092048020115691784267835577417182718831592500754953594977135722498672348738955662032636027568972652976783191512889920379756119279178545412211082288291744388350040735603667531295027455242031168470287353078817728729425730238912150316581258644820539764393326247789759850015002277429632027493405572941072943382424585093284344049803365171508268249206926462786127400336461219026536061768347694958007945325094133618476916901195578845573510622959775322381919612983868387857581249563257131733004482094226856237495329342313233224418011445051474647158552661732635421860205876723776669675778535048769736272290446100868608189098247955710887531169112607320741474979571895697427277093697016403607567725857353339257468925020381855526432032125392764750736331546818376125354926722371752627352951678546184070941783808834162001221766348754882492773716808199548050179167243176700908564760086298341923708097621263117283068465958437274351031478317140628874970443267483506782703358345276787701687905135806156868287951131661828984110346205110302968202193503681613274959309132974142798829611216266020828466007953173563043036164234592257089725940020077029904189105749343159170421032784855296464589605735636974289625236985216083911698503796512183093955600609830554042051764321940765486480951115751255023400363160217387289726495971086277518195948806643887198808449057970871523483858579046260749155634441870794492974253637440198382328747384024518552918244531465796346795309384558230234502045989539011570523489885195702698469216913717995492838938673057781750789856279714869096450042901554858121109841377715575241191960121872535823951571332991979320113159188241267526936632130125730941548706004756311536786901698043924738857248709704551362153093509463215726597581187019869149332979373884693311331195143492521191387577673953968829638676036149751011824639475454086278765869766112398297079665247987057929615064415784006527935449131739120220233019783726666115589441791215796425101468708819102010631869175273168032063046061503155203967021469488554740771717956161427601191068948026272974218335595771352009205460322796005473769481838224987249738861813693321880068276963863377790188805040744325390055132366634094084087988732631578078701862377028601620508439171903222984255266794686192321598549520805451532303867852785431478595117208913568519410419395305288207021766180064323144131003413132470009441118006831874166290796396150896287325459952578742145785138106273926620706802507917905065009487502080893662594633517831379925581730039560945153828526761567297834857539075539223680533372016341750613062929502621336448990339743883221261365518186631001869624911349687898187536473649445097701000186496789834592621753384768250734835169472284001831963454099822055581022440622335582080248307184409226367231296155900165706470314210150987677522506183686208103231916898493098647490868973319536269023020655036656887775957579295785416418634593349608151159248013488329723544254351242335969294226973179019767857703579490246691622299106036354129577678646520604538831202379119627333172327993813494765079205098439175159956868086114468384800265512847677117632423668601697989655406995088201446630318960734181036699277041353448679837182624121275959208851532841654907628113230052540113781807874456576234423340161561130760283669033517643401320270306832886052936518659307033393778402674256358728854165139140367507451596576929548393933005654058858512296775935225667851708582301651870187182930421340064878591659672568428799610727760231264545316471664184677527834080897292141198127125807676562072457425585699397373325713236865180730989471125246024301359805156247758217907908641698231591685232035413673955793522820274729754607505784670488143893786040947277238767280116874589582389156296180393721929828689279596195972696245069204816008789211889661913449430661624912712751165521605602722454120010240556432344745919077502285199311818186989322184288364295976673233008054952596614377801192415383012031831260735719766785427858790293820599866333057345811817398118172904542390486571432939097653464501684604393602435936176700956328586743542659656207634888802682549980398942370304620595911289874471259655391985000010487786843524546326566687620630119339877585759448952143765216110409652658610985687290856240612002660174130662843509634937429241995558233948700815376414319991939110968824089296342528266222628719818252365888833367850469143954297924042490291588023271661426646453146530772266862472181584845498006591596118674581765108284266431242349855080930570726812270156690089191055107533454737784297313700001455567360725623094944951398872536792122118185751410655421105252430240681222010093727054488050495907383683574921227906889065576895189808912738147279809383255165208307808509569308719994554552792263085856421104840784728311096973356564936936140728142027111666980766964862214213312911526075276411747533822084060478215547717223009745128069383041169219246653963934393199913431813706678254768467641390139083637776188511168590497175480061866339062190678033847148750620433553911600856492685612960287446721224632851937617771700144556158719407266643761469254854185465277409904194119805354029152516867903564239740930529755840274785142012922369514526814353416068035484794128259375157989831164131084279822855264998141953483892071186670910008090023882264042155966915370931486339272012627325588707500652116155830110497220611410720753695681922732219516486871159489875342416586900825465639247873611835759478356125189162007143364668819603091337769457202073015023146862885975426865866119750711826820303416519233687515424324373096191886462066841372929685187423137595601252652836865377753905196409859204722771031785985103261729733353347181421727087574989288213654576245902397540929052877497190290972624148875317541242187718905571575400721984409401822057215925429414700412022930414690791703932022512209278635052863883381075313557210582552607356613545570619994098762740055050704295856799173035696991600208734224824387608937954452956621333686905716154591902636458834564822062395821177752782507919837000983361006477839738151890126056374632178030606523923957155797145313179210835340613250652160376393035821453941352000818332458576934876409227304539246452956799910704216286565930193647066674796144848925686600327042737261069154972422922003222056676328943962714669440452135294121971049929803207628656429257574296808753084084561945788494735331468547512507593737474197509779501249620364636121084055306905356231015989246107529539022422634687437667491715177374426727496944809549571555420445765048694073088042458937042085448262745705796474360284112736977103426060699255404666169652909246225182357957886704080224056319760210879809575106451725679831681534500590074274065792849708087652148601700712053092196159489748869697949282424241624458012802901586830899277673378380203530132028139825008862880371882738250685342890887410756111043717796370529025187259000834008691584051060813615292881091638773305534882767569127241352211793128103652664423423541681914936938558246669965485520904019771778469440517447666032806810779175327770372853192928731788195668930232578430994911296479132448718385277415219763588627606246001562336198405636526592850487554377257713268040419962131999427979379762331327820117715174433738233214197546405240632596520188523273027571728889870155397245334403189295794439193638764863030741865264189220145145704627002430501555202974124986190335973616316252240194103163668354769728285170486943830747582858572891013164999738171100784861800808148607282043800971437758217676654412178289520816063829068005540113881479386646872709249705178952495844302912549484552876036991434643428093189340417653927747130837895288266247850558343120554669524042572444861338146407599161655402842998391904740447264083898514726423643390159435641804942640797911355206181201166690164795766122050446972910775803407802133710542953294572419670455117389505723355879238765475549626323593853237702445185890246526410975084053273129272100895166762433084761975088893530648130847484314754369431149070711431774580088181293292001937587962835105161230650369326367887482237772951008889303930789776369276858398984345927188942072617610027422446362678452653801683861947989287931767057045854806524934772963907045823157299818990525098439162869045046704763360959576914921322609088526661110117450223426555249961663157389729926767423436486587570586763454679530175727153286488991096207140478576366797105367908698551916495566829689154260608247672274277624260400266584982969399695412359973426894503067046627813993412365081870280799088073974457642649564617295622697568119986039554660605397755582959080259446086167356198089289271289832055203460257951909273403654238213719849585537049684921830616593821028882688813203092596726391028903696075164093021083405164329594285419778368505262804242216209819220729357462511809165481846769506742814560692519731617951206088141497715032005362873932144710624053077519674915736330638082205881401293052899017073162559366324659649802811671933189370120127711061625087028314764883863432416334218313396400692512421684896696292879405514462243555282158381836717144107506488215459419163551884390216951987207771618696351558260194183239334485614134983997633114284883501632552783750698893589911518702512176772235822722381996706028250620394023375164213702660076268213842684428429882659890113169185758392449623610727177658438490183912540027070754594415345349043826337769475351507443812537326557132745265392889300678743942351210269042238527886034547638951930912662560355299871873259609019999655705720642196469463339404071152364089523550987007794365660652943468706337832468989038171592269568542350509135498765058979523195076456976295527594351930399731221943828072318741501697712508164248010346560151247983061010012826709456110451332921880855498323593646937340988691274841557722671766615652205158406882963969527830942761017635198636951500013933165056154914371130944485588911701043092543247468146579497068251041005177238605373574438377720279726747012291463491211949164430204152838315884311316210530115921099157677045141119483279541644529752377810078169629385563368533049616805298383609221473570326241080632701564192275853549829470400386742189683098636161915429008335267059750698180992463998775238694789076242745437966889853340098597308147687146736676342584488151322016087061769898551518488956473907134137181811926717919575703510879856937583126987403869691400137800384914844465430483150072146901651060915869190170792198594175487085482063828968158065049576707377229969620466069123949033977170606837200155299312846943267529433742353376083586446397235737242128195070682313452053989611273045237064522990451003911144626831749724879197742361638089755923307956011270166260718413117985188652753673438922559748287650270968035426615243511789863596786783167057344516380112696288865933486806754429409453113218117730320100864027645546497987110503823976256254366915962771882851294145267268210869057810797598128113713833753258367151862675452552902413102126412922959730040693352444276757577879651605336067028737693194534215067827959374760244415171184666703775836392898901601350092846062437333119944883523092624440523366597493519829017623448004001518654965108657147752141137381508669213764099747745042436077781680540998796977905630886974582503907106429199154371006061122833878199014527057119612456224238714522892784025065825273718996097879113705343746708841309737781990205228053738337368881730099086124333335033858960310296957801728244490132729845117146579640538533375401116407979564917011575660415458749362842517264309743770052580334417320598857047644371925650578344260454944713772215923330565460278007468124444732569441994239748684688910082415560554383317140268322725376104037809795568297588130377769198007200553540292289435153188589969187406645310604405966159810006382570493866423863522819691602248161805032047005619097390810103814430244363323312723600218082831866389198190687023813415683962240396104506063704861776457406890360115973903136335547256529006456181811714316634023892603153825778793842017750350814421169554738917233238185506544131523178673777537214968910605035443926762342237561508462836502328217085310004993118982289999205170682802665361321666139954891978523341926894376173138700680329126981479012801789671527386625173497628899462771177360636809935860662746186408764550997791428158310272118605771081738107964766606954327422977012846794228016032538815775402730376001854407445463098308248762494413736392003808966745769930921249507421789271285617072762545002029884059063291608829765397273157123436054102411130513061617414676502906254172967661188646493292375663970955965469927375366498174841877588919515721837651197925194834380309672506025398704565387463910357067825313327208377782714941271527570052451511896423398093612698632444175424040645632755546347803495312797248497152076778413536252949009545224918149170041763731852602413603260004874573252309517457643254815340216993193990368717840456994808252980467672897179735067238141521603766539860634717959461292807279159614329801986726079058261325411547344991270722183452367492128728223139061002674119372004662175627844770003777511328468225503266883265767176654335955949444354148196911159531834915133222080507982368394200734334056716344271260012376286420852458639358877741642113773695776003706847429175015296897616826886875653080644681499055092972632211836123018145634937003015076627523485670075312404653479554243307540420547441210469082067464050956116926571003386439373082201107613845007159116313616600049807126832182373269137699369886471839143148673482492761809837890643198894151292175423325715250002421751113648509006848759712943245054043278608805876598723090987672875461754902930810680684852969647037822973501479304337145982299331831891029424869023330036844587200151480254082481498911281350896566328925572749764322509900868638825062932336886606272213865257394000771449711476222153659140263727080053389866292856275563250158262470443423593233310877659348620089857746464990992884833431487822873496461761545863190110004206395293401076334557860913116790802528016805201311177253821430713748243960123281706168292755439309956384328455518053536175903872447255416131909826000137688509724487681080261362389221040890533526451182150391181029860928506497114063630903875207735685852154985397311038421524666517933377046772060438411369559347594883468337969845353066693145749948310213378325294859516042281429481548078241449081634931761327429221605063411369349785965232977335495389019950277954300209424825880544426784444097210188376268546949238513960443929715525078933900008440927070744448822063060119900188968767583342087724956815127746922966840528437460292352674098794081914708906093580189948887718029734561950250235235867045890980221670304362610352688487664296661538086558435896781101889014710745542252397476680707952021546813535537896297717331353674780371714023835180470114740533964274934635886366448227351968809011071676074380446688938971691006082055077366594295032087519296497911975058043926035957912094272427577210024384470163679720464235532573836176184126218303848826053398558743080075209386206029216772947653519824388865130445696151485987876482566301982269679325076386027126155032863712069640107739606368514518313551595706752209252421024653590359394343493912050875485613374245717580675431565756276249766897546279466629872864145227191609225244851120602602840813069749947838291485568511825350565012455752044347521594630830442340621713517217295658956984809233453533198440223879911809622246342893574161847942966455536054932625388913945217132624755262878036148377510367260693629374830103138069252612873535602003976452934711691241831252022410493146983338499385692693692380769209902544676060163461828991478015917722696797555466212641080846700714891125226900501452019234029376193468925234376278515842670264137938513055030452850091870202135082025095409874742693316361878320601306715784002919412887046999268785353147170219114763562120032067469382266627246021572538551606479088666870811129102873817071273498740094563941509704611989440425645617861559767165342533539935254849974525201669808997179014339489052750861679237399193163226572753020623175444750365026472064175210819639027028184299013282289423629971228373188767727038813914279823982267480512030763493668240206593763260868466022558231297903606466153452154197527021304353545807449767238016854512827024579712540984167218000596078011071873156665982695685459543783881504790585883162264701472840389991589160183486693371192698196056901845911974935929402281905954850596413222927881579842282237473220586692658703933271417148871622796617286198329146023567400505816241468191050953180951164483652012255198198541216596690010869577691786704486582708635855527962368443399226338358665804360529564333942753943823702562855994319367235646060721351457302571900005218366200088080301220764188121821643008387598772055576824815003138675560450769012791711677128769294081331098393309536651870820078361882767387161423530136596164659069719431015242258923218636715887111250560979320060814784683942484362856931322161923910171994061292795782346852511323933613222017324906210696596567737136721790884770226989687568474211143176110281645490390999626700320127750850419312693887950732834996326208460005262517863607466382553547432490897358116691272617440381739683883116278903587465335231703588377337868774769761567876452888220217969354745278666203037318273643334625059224566080101276213658800910796463401446539847990469542284972864182454267962493343233994223483548955622661604893486732960760533435434261839164857787926368648078226117932178562845028663413370584057203535108924064822930626250817584052049915528210048232930877134887082120834392401372561459236923734131666098934247808553378839748497305665684672910017472762729945685162428073584834314008784665824820872784600292552761625353836794743616245607646770283889419993367923973642561391396305173452791242259139191403549684310846885823578343861503228234983887008120584571026558551258394991001831856442829377232981863529428172162733960974136117519362992083129021236267378604981884355794784688460619837641795652323203529419316082230755266973211755487782049377169808210302046753459256623864194975473840815742694548245634916586788497061754938059483689464188203955097596701340929041849281933325221450886496757314665707455176686996580484429113826716687319765686168659252469413705478558040848529711930688544196495636198333965765398872993527137276935648719515309054733005188546401997684139135622805165509175441293075155079155326816172406411933924458289903907620384168948721156944730738899866075558734277582759654187624215797588935808699148935223764959495654040734070213195250305311416401374188006325908400386271465063221531768394781115128919342863493041279338288233243139719256396965528206513420031438458328511525957134705431013923230664015325849803404634408763892351809161829365924736429240515497908314472532731141621127181372289050595816992775592252105579087071377625070825670459814438724455549618847155657268374550433799228710282522534931689987871678123281280621200804705945357377713172800679270597939800478998498280125921515181569581753119378157382884060272152232604401125353096648451647724237744485961745563111091782775926048864020237740508123859488179902649086759720656473397010906022286271671377656972986267391491043508959310815885921689718759384246412713381638264820874038438689103602903481602799146118560374985246465713955556057148300751442743980995300332278399110631586529794267312501689165359266337326967386111068358441363657499050265951659043526969614820668326584455870637447744249074732155856244201077368888365668874205131411167900592505848779896657800232485833952340204252949400897728766774032438187169196193991795794078048389403915599684691376486999228196435008349587196099230346374185282395570295149287836556747384362743630427433520929693015563455300720760629522946491587691866574648266278691492639318000135372185054183895466974460085506185437655141406116689202225345118038978354487527097700609356977464223585323968910368161089955527462156319570649030664117470120139643675077230479935028903083912373835593208864787245983889966534270410263058569383533480048546130884525883785956695386119722419314237846923882432635187035371072357840697178781003493894581488101455468399491488269531115198410359927603475566603741622918565487499832547011013138137709027181768873043978657398070916946442312611479341663069412499849376717084145484697318465279063529891842319344226531770510828187291871205726203884799370757562222382292146388464373013106784119504177614542755456439833058135662551283958999561451011610613439674004149400441376975998817423795069258113335192061236665150403453168600688921200035850841294986334009033346398223364738937038573376495603390469784934111993280078285302528887769940735762406836854385499797103695800475692855114692196156132232008706275456913004211464780367711831516489027720840304692263805902183055768205789948929257959097678368831590541818029247732068488093051680973051701516392268807358710743236806408363951351022524004055193918874837398561351234005742191358220037017974139181061036201169592323112206430756547437547248618865864734322325531482272173584367445091069970321139705375886641328942190137071016373957752281448172711154877268878512430030248351258709096337597043473801516109118940519175895355259682916699219197503935453264438055379625610715161378063450728021491698861930748550162448486066996701966522919660775947038123639367041812952343576230553716762169309937242623873781087338408572107053830932402337021593693427867107526738357925847562784446277662268944146927641282189923858839895291141039947480623138280977715911149713953027651400073454292899847308658766212011687705039894145463179705272145624611877017633584832987178953408583865511419501375711772564432087269497237928943163001450817707243876395537866117744920525152811545086402953844978276288351028898774048146039417683056463056921811520342906294519317503165821443694242292763359745703143194427466882043167975425410179732152811447845733584541266085642693028933438423571871134835179924812798945455692747261165678800828452101026583706127170543216694478517974465577633660525140313147129600334438031245107518464799720845351393164482396867123144012603959921668317879623823570835191282591441631869731116726438610067327065403497332626344627990054487907435426271676996675449954268416266640093510783576030271188997853352699963582614469759412358948593170372980935135868580836217937756463912923696877163322081399565865121102810252644334228324393963030351106119823321391777215006080023882154824957471418860195318445027044199265500979117258215992344614180790382006526190319840832111718867064688956085584542272948461361210018685468771324149104384729476206571749642446418489031694253682436472225338822699201826924003722860826452148786743638558236037799943032505826936174946971623319292118073776590841440412683802110329525264557294848665651037070996455873692356002504895389878376836511059480962792337474197250556078379964906206320294778397472407926730109429898440207749606321702770680751612525766285715220053132529260666556197025964163797957621639410714722902492133233786296954777885793918390535216447132024635046565267746551881759753748973383739564739125384002614285975649285307016514477875686867488955734709205086334927594438966744801605827936237084489913982876430719367334984896010806264373354255188300491733834652824244017845238494380912488460900180403196962756882274402199407233787850038898458075715212365133640381994432091417524457176876528362511728537318990720379006116531382444457440099220016932366723947727326079877266021469134833745897044178111500305082516654858714131419316257586618611990419103583816029242854598383044152808949653571290071441345642343717989088919223279091802257561778310718709191895233860956934456545360973129308685748569076539909762612137671046733586110274345186621350497371665570915310301689673489806957890443165548579628745505007754663249315387220994183685485900949448681415411392625397666386792319837445825779775692085894176455723580480879488209809724051758713592598332271325915682647393559549068271446819501141042650962406593010217881381421954516129852001953579535321018374532030304831781859673813421787956908349387166052763096300271640985455379699705979220469187362566538596662802843305893674052800771694387395814334508425500244254991223950519349237309393821345563239482597413769913678963711481889196515264576131980806988762812075727604583757576529541268717441631690830732765333871519521046777499945804166460477587064030386434315235793113591231252512454388025276997498768081584197346824330461675866450530251471275663983650987970102171557641384512403274031503812736134325424454270039112248318933732941555323818171332513846357748918727604725389942297066175557664663553062753663563242651874334855198546846971872327164319906931729931641775740304026225518069530813641725059168162186900362569721553108604018226223039193751817947790278693408435962163506317926448001361671379067612068808678947633524010282991061364359282245701951909337023823119408255341575996437137505506768331331817054527977418147170655961167658835454712266790085478278698234881808743482727981017729562609356207780762124142848728377566312231307911571596961568647827336669149863300225278913185568990715120665237222472714582476044031152621895239472339282509030075959091670620822717415500056824012590363150302406214859184100696796498239870733764677553638075330826896517841305981784338000584109209035888162765653203227580677427241260054638539992790865992219241933113517290911120013050116831862119135865251713437848270131305461429444004712823725255164500921089429421844540264532406631824496264849535780407551425748189436537827031929375293541237367664629922562411913453855631241891506645634482423665644259319199005515428578530692993047853109907237060491883325093079658425911458818736755163588994262534887618144368151752074501876295119694017023042904379153903708952870154168731142911706548567565234590710163141824667216059768566347391682215068117099768058524001737482111749145337683535432296048144220831887031806495987315807165866980129178368172779921609309637564915444933481078211059024025795067746824981634062224120523585499512090867872577192886225494490864725641680014859309282707157260071925868444580851382147581869265097939377700686121373157222431230161171831413737515789298033672150549465995879525783302913943432089320512873976106641834443191955729134164358664075902560359985085626417758257105728925896318577971737713778915254165660809614943327793047422634183424421298622096981782984591496086631411685997964921051736436091040828837905088215884867290108772425821678824501869020792856205174885661182826840880102997254358025673617629625414272004969899592839445268059666317351028167682549595966876971741010636785422554529393593419011268258230241700795274485846349729497254049009382302572503500611681286395657671574279007389954138807590412109872009768707029869229276751669537708922421506570110666902762187254323378734377692603419870179390023516864913215238490592931220668467691640816988989376022090671892763167412192561830493017169778539264111553335610909220320338063905417379110644502727933431897133228891950108824394616782388792830698209844613461448554243402899911638546115707004300804793713460249733394614380744104598384223212987290200456351668428518339373814579043230918562394389281389219741723544489522610837589945301219989838897234211698948635289050058707877760644180961073528617754342893810760725310658329064606362105843752646115446361018563338103325587998657825894533768483178375632860487174509024398651700738324190262692394791534790046929298445407682202828588236216924987073409270794751945115232681621495923026220998872224440888279883813284180762850807162585287544997336202060141006358944438444240988892710349556122978879556285724045264545424816739452692365382754277191200908969194532637251841579582664034328646780461318407895322424992133076941899693452481826381179954746635167056695777497207444365529627635426896702395251443346033755131984848181125900752609401218867997665780006475375677267537921818072859522811548275581255626121095315968576274097423026904358593375604692629133675579864907144334349921270459004794785888622646161108858870530968049434973647219268217101544719854999518541063823408627850008755207796751618289626211333386267438800004576902862514711365348066717861706931287099816835704239959238869210349208430406857126160454792164727137664662169502779905529110390097243703952596781552602324815429490808904851584366118800889048012318238046041041043408833351567513296513637906650897406298510898944457559763057330197581832733220181298027092081310918593196237190152721916754670283051382878095209781612330109793694276957481871167830073508434150354373192322091709519914447385439314732558383833970303497346220837022243762165651903063496512599948645919708216991951115290400944775141173919678553126060164350737660043806202246906491345161772166020032278512669429668018395449084306615226906017433368696321639636251616938845114680439280618504234150354937890617074056429285271355038701498290261894691437787726901322377329320328632345774939265191589673327310918756377017684630431185500776427625343410493251274930819398974847835918517834263623051699180477494327539754354558738919128636156581718438007799625464598249158776432321384213666753056195929848579135171721775323075461384601420356131945775803235940153754540788695759852253926453614516076738485046948553932442037126957975480381925325881622727989908338737181707403505106885054547421166026028714468810013569631480913031304927860464272456662396834037077705509796141312289854968073907953379182308296920429263796777083427827395120225986424346115368507168412412972417452070789931857943815297103319432190852364776427280666237808653274238878031777247547892713507406349903058000382851455865336349393396097566553772770701501837647616225296589313884286590692652276384555466375684025280653067239851160018355554749797283236746795224205631610386008620924302828320396078943014441306813474306641917057786153749657934489218319842583114029734355818460189562142287041619271563199367600731229120840278442877081678245281166547427926736403963479473579280846820443554839377261147583564672875537290891679290285747218349816512680355079879391080643191130518923574009089585533121428757630999121205880684139076301849562284736342550529274868878930044397624282140894638928855125960348428374611056010148213303317969190604485391465089974941052170356108355334766450684351818917245167150595322833250680693204467332153635980621099040583352562788091595846393271023507103115151244903969467816031804161425202999989602463829828649491325992859674855518137847715392220042400540634580427410893947119943880403157802472339710265159197752536468838896204300732105553779998451620998421526330578491637781501071471123397039130598360795857334025577790902221387357259058643842238583223719375907433323380957157337191261777558346774361602835377573359016147984444174006678332609973752031719209981866499444108025615373670626252499167250519861555335428789012061025593773073703078363878804148951916359054916225674660275294227845473432982533889914558038016319048636331261105234272827635838707976777214425818543515887170230291942788834249085076145238621590088319300568405411766144819001055045473838414205999345257075623982112849558810842617942299729343618078627121582443600647305068143264764989662653477930124636848986874446679271338958340306859581484452056808108577194460890931928392725217251884829556995120711194127634743510440393334706414200754171677544214817458326825435860609250824876968298352069345369895599705971075467754222348558684646757413376457854738803206198482192743678637494318355086192309188161015528370277814204665036312484504806647925616854320420481020965154845588967031176004800800352110464311213148035639282067876668014351516049391638139969350772098984803462622960497004087915614720472913298801750525462477285026439049599584554378506052182484721913257961479495227128335443375112602408089807108668237838627679360397926299597108769643321406903110470283579895688938078891872161087027531753204251344046351680204670190345876471783179901230889221974963101209956912155899497804834000691741964794467269803369281439979977548668299217706921730309015823318745190001747248861836170084636792353630351927471119243799436849065205773954876205909255897093454565312610654726552961182943184421378075589661886206203381119864077561015729458642245111854972953039231073351013185761849562692196934011087670883145526154394696490422740136079512460989371636499462674114917755528975124388454888909866100090916801443891701939462318653272679002212324622915710269054565225859444503284558165732779366288548472607497788239779698293369941187779191954139428938521702293086904440055115339601133777993859990218906559865481607163802680098118041194704370078898582557972151591314422046452956574762747757564926018030781467617205212646945373173278515404680065077112262466736508552150780792102503426963517853417251471308972486908652959079694197365921712057444510395966142484310733605195188024641357145161570597543524604570557818621352082086626595015206840056174021243016620214015813191110779049916685523885545612606244044291140187780826833140722085717776529820165380668747957059751312372603798351835680567491509695906737580405138665904261312122261738301271245794558096950315836041620726295862770832409151372617831927389537087167144608302165652833980403012410188911782707990766367272490381525042559471367201293608893890024523375064561476456784268101315233796602970315062092954385656514790156615703324854081642150833490246209104054789367910525369772483103484422435129819501538927958266087643843695407530568762481082506718958476616390348435890667674167530853607194369258261415534487344234571218906829112422214258069562251310407039295415914190743410813411237506978446845401568555035963289091850966899521862187950571553891103691804236033473121036470196197994351334953497790413914858260105127251203856183837544800604326362185416057871790132793457211564054412389216177749765408360783522474105618172767567749316436496879694209171880725154229419818135040134597619772686726215735244294333787215070881675087162496249581610572763671506034369144819941087573678190445169706274318371221542775915193288492582811928343842293007086961816308688749273950927080264373752049051907857888927902494874206411913640182147428135201074474682187448487304987552051209639618709070875416366047490416941413783680850004586572950747184181664477715178808148853188222604064319878675367691929407508092126568923845769441190065062618861266299980775288530604506224351899878534298697647163041556683180749000152122833193394146999098019549740913218615772715355189734448365775502843599190693787772704021676399478024649026508684126710157250491970448159519110122352719917361608495015887977619459581182451616390560280493029276676299760385507721401400615098238139204023438421452549046468738005826596739670324707337890190080860481186860748372024426109447139008470266229334754017659616952423622204064618412390933882789047916598647601575570491366347324034118633912697761803384872629850376480860546619331179586568029142533009951881787862209367812702949465407221995988396363200137473516997472525359702589043269092374206043914451421082894501568401425931711728035192695947974313729766069295335371610994921893690150919567796134300708123179251327746958430782797925680110703190921700825858074992650914319782489164165792899677287381810790502237732976094105366515222033565356114738037378356192490594566694111703171608905368515161872290783559869638532297356173038387505023582209373161044153676218819770659777164159427602753998023459658735018779860568256672566579528118830658714957786009922297228317508060746649186073620959456061884748187896920257891111063393224996959649604878487523236856918741641933648899943475068847706409486130252660985004203164768611756391664490563719937417688770785334050112932575046656254067210115903217920195273314143693261838242797760554412895572230633668325523786517192026070411116983475744469334283152325614875986726535558249302313247226933456045042063195219252024905384668491214025446293918803971250749616916447742009375452110957389634032761182547104202036311832148878983207750672133055189318900211666412457567722068903571053790674142828409531340149817524706869256725460521368274139275492060348227525587005707936896555435627781805292427535784841058861382467165291315217174190132994289736755377485978797689714024968054098595804066814836502880969253240844296533092207470032476563126816185145051812118344519095952946138329376056557477774380361048117563154563620118607816400855625523224938916807812360334833714196628321564824543486871597302613424256043619556409324489254643993839076216073187278462959751182746739387055299370632390064292105200793444364551331503355228085379198924300235563608203527265794479364951484638999478446835061333095629938864214533052891565007363912543428351193259837360834448194644982830626376353077614328387089067043621782551923154983343612369174524235214221056072626121843128223273757916218291080320684318455893181414569885270843391105269361853113682083760068693290631945863301244097662196252628017266104609491513948398141462204770189412728779453600501485954608260622089231970134982861311226736092274625605731601189835250186660644557555484721785805576891615900495808817812410051929098845819844651266218412691948523295967650618596437937560742952277083504081085369860776866270748325731416819865769949996957146411546252316853729529233035507472889705171551823422896039579191037968677497560789286020106804999229301815081243477144270911277932280360372372454463686994739447407973235376432432773443143348978402197392287086260827133246220876764451603913959515894580647120446573049950849148627770736363870897195493051532488067707393367659324586238077756601841030910937245610293666849899131245953089905001854777135423691897343353768542556130584068476539354430265069860434098860215273317672098692578526506546385115335468987207937866698820590940521242894951238228045856200378135284557660480300941079076629770380707875607836395098405035089767230270002730227853356196490311422690709200832549726269320197820205291892498633090356186815732925859123661934873242536634514433205563887600755856669440714806148638407337619646510221639731624607868050749963580600568306550846513667226838428656697447570914199294774373757756564612355788312121544099599567539464832130793523791964098755164035696473098761826117585939709801533160771274589094170034777452536066428046818461013424752747729708120023492209912370374095680341223314131566716516172178948610918189221786916754650945283105704816210016263049182938337319969502365775314657978248811606071147345711028078744413524557256961341848174814946008830610051199638647733992693866405332300104215178379352441710957578885828895312988211011708979602001772593569412036567208054683975536173272356256406007380853139426389441605322522714515624492308881580702108177643377193124721895434415775625255778139438099173138308284624095198529920209407941562127345464530777387044656196306717846748917962258365999834403231066038053950130289535520341753155343478536236367834843734365439528233596560397361412630210547597493799116398049202289028966421975747678919134770661095580927914242597505028344303408888088127974081384986509976760927658326946069848381856493506238299771325875669133832402467841384139743628748473351314452726054521916096457509500536824867325782654807577238662955657786741853552870670301715084853158737961724112784437792878684964722669817978241286112300134176854144489989536673535134424224293597302905354827222418024714089465988156565689892220533932279692814966522201065199187148839703166092354719768603448724606145968856727917260353741847542405343362432385597895976487600621049365730432284701309190913442265956634063131508818823134861432167465407110877832334414642592159367814153554794134356845454915341562371495720715620819194472562509965180192959300913630911990121700347351682444895085010235866237201581037726960423463497746126095728639990888575077406581887893617965174495005420874551365100417756920617106658254279556796211976142961668563486656949224454805246941631438818274243329262289080306151223344358601007631065313026422926227113733665861079060513575634935290195402904998244047562540733566530179050847719854033387859442731635598735679263402668922743097825832628840772262981282243855309514350846696405652204090660053715931934050680403056319293090362204828414222832417032614603216580286074842944218950147649903849959941565369900599746825711393100610104351738910384843970990154638422406982973313878819481384760998972236669846006935533499123360450192528060256942028714042447226534553834183852967263401728688739581887899914636073802792578828335812564638764407519991110746064329847046258834398530860796945522190877785879218547384048328498775952460485870423574008136338423927765825011444540712483890351271017338195440070687869277938775127986050057842774550044689929748921039790929810403436010293049838876636958286719247175391064708252022748473601889933724804032189294226041500206471416208526274728366106652343562171191134628871967973773807109700509332685370780784768645873087986248678828728902000985887906977182494759633339104057584584158785267426895098946113019938336709644461974189015853398864989915596010429437111858978516416954662647262906875868997302288370803637050823263760420961310559324501831950340761884989421940439957926664535649385301411233876216307260959720200050723204172759739199056769189001256692421206404481247055431561805464428198339891978594627692117134812302878946973019112435519364819638070510504261441970371625221603633418976680873447434179765934469345851427920280906603995019332895965161551063279219369618511027464617630786061681732435427938595154280313742534053530098415595802795665785860832915998024282212710728238069378526325418900427795139691721865972717488721115514839796547956334511616137697304851982870822928605151491033966084458211507312974195930353923761416473054396046042009882246741911593585293252400105807789791582140717639618265160317793810026383128877055114823595048929865961182983177383666333606300060621356902367313746741936007108599466598506050579476658785981177661715568878370823054399102355382282164994396844258252599032561391606783670312310679675864703755095225620163405857692753916585276160105907817988647396110230917086605676276499139097942119627663179427652456325493173467696475252124087624028149916998650249822541668190900608695240998911522091546405318639324469082536293383841916446655684527378232155341435696898251922901556066031410179308250819026257485685301587826535197584347030783301184167724479669495353696224994662107101549638245691086420754779402350844886717754170320894555538031125129385771627598276483893229485846803954017246295208491397837374585982633021257607039135871330219428745441208253829820123327281633805611976657630610712694777880620434451382289820380028033160546857210759744610522267022038981699107731720188545109656576694840799676454585409033843320935294075163731725214228823661347291973070568393743487700070563058950708051381649895708278179407432723610315059267344520199669065951295087245290568479920243028042927270021078475199006997046424190954145205090277595359773574390172981165864840180983096546621072264907364705841222296136579737181201278791889736522076002462760488810540638966656759016398790639552807961224938233941247571990622334400013221544878287121602147057800294323006486409868041141954190492421371792033106515083794010288670996046674820932283568102706195258793394701460977086627355241569668455041451909718651839125011274441804514766544840609255652493628197080646871330163618347307366950295491129747972882705902187544726039501160801996061549593613733883075761266319793945986677309465800764520546966852965144704693101177808641592586680628832567048133057050697147941825073764297628763819569179358255997065681817634459742601788918642584829759182691262534589337332362340474448152535050096112291969623271702068868746085698446874603970413985801334993898259508946019997650325901385567539635117967388308600717764822047709008217735400673403600068950199131564518997842610270347171445183529493732763004304466249898338877010104117109527252103458556986332576710238865199270906574090722134328217584042898552785369531080778064025681245826211486723535596755145033753937616206403329960598712840317479844577707793440525601823688537215339354722382613307968764839128673196839076910559936857683849709052642355911666705423324854150215004270447487960946975347056455118379273806534892109591185158904669185972915594260128148807902287843463851614915764139351679987657788758173788152971681833552576955133808780946443786088007794810797199454031339675109519040579293699354719460329401973545242592628170599102686845451381258920087726099042582623546706474572193648193368954189567348272564087276110240813362103182770506882488192598370573959169169155511883897257582539907436250791895007744625854289258911729110081467453744241032237479728877450525875192978441259225979433823834714661444402151293158548056394684797699858083910503990457781426359939512038630943503145912130409737451322948917121813466103771646433717926675471646638174410309338791834093862021386616178175611467474263431189316234478512409116741428174341603251798628840546878549499565747725083999419840353925905852721709161261824172796171712950576162749447427468797043425027255209602987139486502291837210933421018841875352383522260654659725649445545562756624646501870375259992936930770086436417319441348627767225495052830998912512373724722190326864433955408560614257301943392383742625723940001107712270287187803263742163157312809694235838862906008920993071085961182637460508661100320559357659983581106213214937101227880503375986655833399660741071499109158823250651264072122914802572777109305498023309065816431350877646686946729857799390986231566823338097418455838593442670148215868162672548113762569287356818881166283090428974840392139843654521329802689476657601951714633269671870671081865519046965681730896124813298448760820531272758737135397996750049228769701606254642265704735231428900492580073733651304849227327720371390498991135515498944295047421979651992083575639204645361435852052427634475610307848404617831594954307326342938366786861679931735788727684182699720683251784051461998320270995652309542283347425654266129623489101541293818419944988734676083746703501999663178040056267921683210673586744335669910637009587842702847968662790193436400914543546430301118459540486517554838483170787699949376529681514417947662363318816635541602048746492638215647159981269614286536214461030959780370727859201301671177073666613934432414542773634166111624934572303469124211662663786966934441229761842880503428176988657274519441843105194232146378736566740053238001927513620456691752702941035591758849516706815587989163487325707866902346725709378275229309840631027293070308246401109763908215537303954502859426626901598095585735643769935344364833181988632043492707206314378929865724268522884151474484810839733845646358277437631322834623385721072300534143496513069102417919418842304064337586688694953750629446266209393794873183761388212313636449523561725287674065477348039288534615839468679072398552229925499558414185648333856639132443177617337669005320922512642672860618458442516127835018261361049519766651986851839367989411781101295471830930927264140723388556920016246350450102042899098851064524257224770562372391688515395398454941838099949807162883454765121491830866633403835700400624833083987205641183210915587756660442456378792202052544294994067716238576435261990097079388710503652615804231256040142953818783579520674060952448086932141015759007141852659873155426857581688014473965030418768921694693086290562006611046328955449027479972332037299855801987600529546105428993799094370566502115877582641212926914722183655339426159178946238156632890663689603342860100540031171296652296965105150921110545142835010939956047764072153681751287484874728250197706921114367257402505463985015184126016848502011416160850853274666111325994800556657738349012228078701249668801124198993676504739561134488869196640983189242110941263252598200648048522111716368395541219384798366120509789427882305498513093817726087605699057296027297570794587946034302360931057573382034761738737352269156232170643264067865237981911290055561290798891834343268287774597245231983616926128471849605499856023328659737530242458499552491934637865781442996445204811737433908845124484498453471654560843042860282998302062527979518488956617008920460383094713562592220475723676559885985711075863326079848594305731910071951510080086562148723012289216247206395919916952371599803552840777018927706914320439501650843604998377543704539234437053694868357509598074788349581716773116431649327151352248756574246074727784679252019325995651470074508935797472168478667447826214698141158689729523085640411582138232357399415354286568970689768144125974062351049357617090378236149667827680114425874258554699068671366829629455973051885620336727975310566677889077913203826408798320022788296287473924339426947544768579376433089592639973552935975991551007463078572967759404356792483644057689946036144490129177688727056195500109842138031246517973694504886232844397461249353302261948750625059442013932410330763053223431615309173631081910359946481892870399086304740193123482701225975964867392474112685771474856953326109000851521314537223649682077392667048880225945747035331406467637695062307857780360829173391543449440487696542904065682944560469251195523927734767054472549846802866617274315336981716085979112466168562039364620354808724496978670344304880278331068103008694174577266656519111609759044814973848057862727685452083299751277844189865563501651026655064781814977763657768794408393689273447336880888475308297120848593806697873918951595194404357370969617345427805414907140438765008609726524699620702719418322561469031588166703335535292435067204999099796923050744909021886914676333592503392687665022972219972137682211651623967371350846216510691196329766708839310366261149120623274850386189214113807777873095087982647832648743098578211199270396120814520740859333748226932151213818490672319077281944316214772438410497681851766184098971536059724220900111306447194612251243610305482915188470172243486244419602914873027137371030929587616908994684009051605046271585683909194163515492851444954153145852840584121531106957521692956703328818700374999136295416715414236117655931650615386043448463641673628974676132152918316546759374789334875134133245314407100332755011665903265612807533101334470226931356631033039741941795912414502785590280172177852226293955229456764192620566482250115504137698606299070910012258325412098041253714798250751699995913495461615894910011074772911628023067511021440322341538652992892357965025628920261897957138940182765606528798122195461309477977333553563421989563638302954741572998399169221634992295155826079791737393290334479285083191671165594712853025473735731198927187600093264205720653661550973573157203548736740008142592002746320038415880424598211411188159020350311141701508897640953093059421696130512622247714312268945062299903953698222662115450872325348060827195278088917108176047100336109758821892287907192375973757286858330993359691947943162500874622225847371926772419229011679986817819553337816344913535091209436359504263299067285643807484638987420548991448901817305884332893375525740547770670256635741390561916122244221604293276934982132746711334070539164159602891374142187974311657549904264707375047649084901661714433632530966894359906746064702637133118102200818871686190630298697440881721299084072796329682669102681626627478862965486358380270214498987322208064640959693413441042693099433272411418452785626621068172975830308785562701722487231071173749931706277877630846140977442110076225988161812968608782724284357097956306553482893500070920329214360030524830881126524827927504585382216479244150201569593963313882253284807038964653791222784706348705425194079557803163418945985203846049201968249254112928885882751982454131208534443038624710983917018325686688505753457847812013216902079994290495320319576697338781388671842499734433000858360872995973237916912444776922419409818831631232522083058110751400627146554875848688398239205011985401144598542636019627945793980320331245271911575230428724803949041903083465948382647320509698980989345479954992924456362024062062015113095606145486537684671934791079151120527593947706659332008713023648625951669110172664103517186500026631354329779297509775919756843658112717353132863378652116724965984190574424466889271580898940025214170040844807935531328878142282035869779949525214907899778756293032780904577551175526226560788478685273445530615061371150022730739929568874519456639628687210438784060058536796908360973846813333971558125504749739858718022929369880578201660661460768439910737784646883136799047014692393912327561081242114684150240070278868280409534006552146892262370837094816643127682682215825568445070176064925809697779251319880903882731120337424502305733884531304325856607538040250020712777005456333960841284509743850450742198800665351966069750044868803561794594697871445663800309030112157911523596356095838095205824603400464061110129457009651124790321745993741156397920105130605653351571297106524649842765079218150161927774587155104081460887916507283292576430471354056303609329498051922299758584991827211281051981326053272057919292718964787825025681184638255214637767786308169781340279744611940612268537754669754993197184549786103092158256985097626748811432599541893323774666682843128609110578559487202692262640960985457941678762879221068112923123178677351869169299415646548745439981700783073625183458440516376034246002618217000701985187294919566631756148627342983125521082829352612145985264208780626407005688778692119122420169734651136149404225255931447299036789686518248136237160748457345291870987548116998450024009755952453054574173163477133463841688160800253536338704687908321373236396460483317018093480222740038491396947257546976963151913578721129270462733287315673455445380374998174639536077406370648242958027115300575718607854257426304134789035506075827480157268908919962345336661858055008939683171030850856916442917960584773666180830752849669406347072599353838766766667146828684690721335422114425219214871426004476304619396906509611955126479843572924841941855766397976138429407550719134350816040512776079591399842223999519494978053579235734497172709237147851823353919193796979806054558923922519378824041046854293897052997695465593911430470032184760948095901330310719219882099441564231351993229786782318954556354738874534833527833787382440155412393441869614378466635833818748695705599965066176632863820119231104736314229040999758270565921152518881593839554304716677415479110188344142665981606814317395242419598406980132068874488952795607322053369099651720500491925830837700322774787030126714881223928750218861789609787050809806113225609510479464590596997593355692675345872612169740206224395719554158805266153243613114542713913149457966045361947101871845826397217470327978521234634605770247088551986212968409308810234177825297730415086551936152707910080515375882869431789183310341502576023907706310064774506849783306931537251698367736303410487656569570943395065208260320753441748645961195447486383339176458959737550212092363023302022435830541323106537231473360494555211813047033569892864901409854738512792917697051438595149105601444163622220910144279185604801806558675778483100280386376197758506887838054269171456978114773697189442676633834829857350696487861188250951958275665729853490924593408128621192791255291078261123937021099761895774233679681542694146037475257829159296840424054718977868382508168935034291376036482513472464095862488884034399751187146615585378910775494777066295122044062483942048260671613770334225031653296074010458846022795101771020311863675874855399749128568486847687344012867027190801918540736729769442586445816941739156313217804090212312658416176754081577450514696543020673613412805218379244057846868772470708480534107584510461748899330005967498091803269201488870149779802318448008286003710869798930951947527780518684676880900407669012484381072984503708435769363826889515341517780515608603356780992512220603392766757543268122486756963692318412399095973844977894703303485357579957987161198442025796953204629949720365648921200079902461809830501196654163758745467725795664214338434223718038597300300036981893620039690615501126556898625578950452404775788760021247842902537893862578741552098156759759095173982042635928764942298240832366698194063919255231729604712744329401644500353668063922068870116011752970428191634376421329215843385587323980589992652569311751387927144625293366477906434852778041148771378319715639043067053541934682589196781933691037825841792720816642802332446710084614716653455617017340608297337792216224866273066389525106100015070354146993786401987623594624676588732762022880988844063457641594192616206340759635476840903035142605323661639029941059289501966834051921118078774960172040626740367579185126116650835090452422612491937343150688762776978101678228503740363792212389738120219563564016388793313286532776234087506065507789654011219905143677145551665850116703501891641885179132144662706092424198587972116147577530195473698154383732677484654479728408199663865992270198619216329762579222256318830731861796659345736819263872868508908830884612188971950726417147974420336048191633699145447722433256813638999713092283524383333371096882498490193863537735653770203847577707139282833277419026494251644810614092108190022084557048249117375261904865413725700596406429041722529274775222333375901554484683835067725952860234809422826754477156588935128157927946291006180779770614222119385377610464595802925453500000324229478792641725107388582920055070955462351600261955610228434574235332298198660661932513934039236196021952648218903519068278223193476699925857770517965966314641206151610198448923760833239139200294704629231186754596265015842165427195433217764409010086479853158799993590788489109443481876306180387317091872951777801572432117114047676718028846623752892661145794825830774739434171711515967386907580692357071161542115190449821311646070744335141725260060305653449308489772213166073023803626649745518312189513246485197740765808098088601092781880260326644516855699988366582830626428787603090743819531439605056025759528466804114159882618707329709285041206881087915960199192606856990623279822572619311189647915196569266168767053234437659659353282237578661907471915589239781973567408826798411910434379816157341174147222677012265195813800848245172959169555681354030056624714951795649612540648790494145667187552477765429146568193240635033642807162562690467412008154437934445797050555115755584024186601223066918696392418177128331090588836946889382082423399434747606360535950176562839394020140358534100251928028560978518304836067318578021198365672305622932472989079711804889104337972981531638908232790296869836850458064409269136075105783643596660457352886760701124896422537108898686649574520696152328279476923568772790362387839444886095983076471034196033658046193633472253158392332270451382266870193008114006555245914892456788495707593877098407269220692636712142754886960255603869339614371381424754898027665720801827072797485012814226649951373518112829488794968686806944569379212393423547847295278923343617459217199098744423132900336063786992349444195922915397244519745934242329840899889574032528270245361355648654664099399177372741713630873940352003980449535192169752198454542180312688684794213083426821595757779179851307463711757251522798516104714781514286574379899913156390770457240792379968438699180483530218052640829306703678649267583921144519313980623753312234560297928104359871912557137539539521242320433504296622706471209532619085416180702340554421148108668880493249502734024447050048704184119841631621834300444874643206402858192634592702323127711705973883070313997347547713676256315796817992196351999430955016036918987577630027936601398250390208423556786289988224348503781864542035481992266984893061645717455133217786067063009415818685370449654216126305480233316006926906502537784511808891513069315009978731476418923371832082735060627669180910940970842025675083922256668835657656199904607829723747602875449399936595190532969228072613101549242784735149424764898946123497146752879450889014605222229447950066271253862056939306970631768340121265334547474969743462395785796212705524233607026887717194699995747640422443196028152303419063583791136236228824171614450536214582442096541524183161207398810501025704574809519992043247010343611885522136857437582263168648124143071876649697825531496407476230475940690147735098694458893758237494936713808882246598658327884229760554690749430807162268718046705308723529576330714431926671354286561131355855345910986075757987918080140128827447451682073209209644234504872636665290196390579775067721433775000888992344849910104379730598517059836468573717825788965700073841957992184325660866689012771522368103315313483928331843332034080160693257214123579228406807061378793482309039221638658438425443788071033537222637425521436879310690461596740240441945498301382393150007034366642326980172526298150284857113544843560783842180975769506977918900563738072299745025190052138306111441714932665352827706336483775633147532961783845020166944581392103059214831794626772330733875540706660354996878569459454136288867063016313722809491483806130433239266728606371040207206737329144473574753919465767155770588264038439744322288011468291598356890244450026114693402486830085493397284861532820537230061142533762570151763157524627285816515905442833156133005333286516708716916136416608506377656609473234010895928041198570470764225294539671045969722484091099377162461679537921135900553948877408369117831758760472436121237688491138797664351760176048465868372579274088395469412514470250518720671423939387870999642499062177397732547259737684519118711916275681172282743700816761965647175607763857573313650806254908014303929420723166616792657994887278759646083531688539716541885952864693935473539150758666804334615378930589399830325179075989960494178112814257481072873225414784161055763272334690639806478609913012609741066313537130805272838544855741633815802502474294336140934788785032424697429475961825602059826173730044385974868950096121697688857208652144154709259036695714052169124419050078377138761128370993198820055396165606187905925239712480488788961151937674452231102624324001082686266011394436825873683252283068403618677875654754456176608408528279896500243458940765832111526588229432180442477495508576280788266597914931516399532629786900543934919149237600209179689699271807641303952334081514634836829596686684977816423523771565798593562310038683770604758017884174699524431789048661999234792010542344572203213926259842109538154219083968808192437376258792768135698162107171796557572617290077462803988158276231079089074291596044312287960472072260357605877395485223980180281735782927533076822531935025221138846157688799866016633639026645713488808661131865538479839071676031093490841817375949637935790593254405390557510314253351385506602932444355512820139071346463063445348530843081437877952547874430572936668653077528964994007121210278140635605104477416174201230718803198905061949607701267253260210492778918718627814878988503488284997813750838512781048322872342606746679054258873258649162982855062204167620613567011428089809147569334818363748730445252687998643272068491728372861417805034357102489333390276389654465161247976187000683352574869463839937929886861812345727785129574799890678881321493515173173260701824866109331480794320780201836444995276658003959425525624747937931553873312907774293847982268615958847477161732636040717093139483061234582017240710108121645503671386873432220122192028723900344931962643466923316145024369175113163205343177292797144294069168485303679831317730167188081008155793697830622419047392184910973695654922636066630441236417462279359073366932218003390144362609967042479431880506405840430963476473911174895991719741399777356288143957619528335802353801785575653687540926710577484327706130907587946811818085349367533158963710903181849473721683022981225653345677992807979455844414761861258416763408410978484212619017250761570384666087679973202922443410357169192009600754908475700619345218018139874191089274834604502976097165184413140785185940065395358548235385889030211761524157284825963999474945001405459537283543249913793342350882614324753163875774559872242120486501303712809576008631107947780559961254967334134987959184698967036104278942102605460940054255679914306748498590992550947914905741974936834782188740346738565558230773282142919764474213757757714309218821267420574867779063398364611870345773520356668466051377465455543882785830211046360588014022990225617120857089443743940433029203045446032433323438134720976636215673605079521741970353988518867697082475115386908112823351198996568530936628235337720945526874500362394293559119462501431634636676028471569543611013996109701846677216266189585773542189964712621281055939527589720935609156080126350145070817625691309643946016135306000526365170458181862323446857059255648592692203374470027030726797240868755543370098748240061569378429552423210180319919810480109688836376207848941814592491391522608672143743795655372177965183916672832810684186298575693522504919188621415711383467665514422867713420813024992912676435803540266346194836470670444976853405222843941010323357751937961407963480761878183745059756337274929992088380859227198790335149571520908301326032988054758763188516831136359219918469644473112187381129661987916770268360448289827841287158862297459815815540488782318424630212140853758224841959295482660076061774585694748872606057249030618348339715073557208766416311637764694820114835326153612178846873924138242295556431216283961793894290380636012468565971035802325590654363600241181210472141898983427834318532248881257731762948659326951695493636821985170472477451306565011502231672359762111646383684673128624524023833581543822102681812557489816821197718484696348030665527455288377644687514133339871718446923618993155967934040402228012042303758033492376053437027357132539808555290239531722828823459510849322950987283149152179849548401408724602605215684718786841585623746135632530190325832466000497766133779912169926031502473476981811876017466728449141207439622142792781202526717963945936906696343025497045902478570427054691581199409879608964483450755734525788794569823081301429191093364204119542333652141938547674648450603468551825583112187208752135530222598102570066311884980529727314152597000200725354087164805512477987946708266819770024970938400344364562438230849519717707668539830545943381405893431167948938841557255907451047415219589228354116071472216741060769249505872704712819419507246812703205465398917763914992374257505304309764213616717092592757166413045793778678665205978757678906160925550666010016197253296512258549765133504975644990498275896129077732720413421209933202780061468719737806726058818541272696408272155624827251283139076150496704815776370103815780893314295438895723120112744729445811008531102066247838256112152364857554353725483646006190735828191389069591640078786738462874688310637202552145703709787897039654189744683005885456447291114584239506896996020665247607583030435671729405725455300676691428277662887114444902089767768579337247837279671632535247635225069663960415244171103487304034253716666742939734623649398589362974580891005604054970777554980368914598438289624333330035228629133461115697393016626972499593475408546952905483588007276243713890318323109593847095323551507842062355383355620131825516876774689829995839795980632185849701305130360984809493046723146453577991323489553814509693394066381461098404848402869884975003874080391636844349796804111858540778581450258622510499786825029245442261057488265060007322345386800581791300319549582507528809156595107085616193497025185778789800117317061571913711653889970258903687077292507544712672880553328268390777961462119193532121081555073214533027577335792019816408272781830226603809130817650771248452087009489610216802885856907283579869270551601414796589336535222986988322192923638580574108791522272742393541984879741654642523729378128097701423325184155333346212246157795011302167812880257738826429213113825845042562244358455263288676469664106497262523166321763154506885823075581693982459249477515162469281390850365698685769026132151159347174730698089303581905312656632574126162336469810444101432395924850890085226763251874898048942256289949728362357459397921308860677430241207824510554156189103472246357538010866388028784474814530964193682216528774058312749583219041531575974661247116324117559851194506228689657893035850498761810337984878331176972182646245030661528681397733107818329987868492218005281868794867345727778740784501679443891036888051122818547567527369849181013696159821966304968483419746205683890686632511745723093986518374049387182071265884186478020723956872806510674640036876773228743732592656693853157561206182305545809610882464024517637051400625987307143065408921606815782075197503442309254046843914979383828601944909466575187849453209274535668674118428918504685047357105201217342552909858427713230185339164127157248833663515336584177182285845909837981241863459491855666146434829616314465659864051442152342696255793474822961872412800786761240131190385456241247883319680627133901357185295181939938025259914310979747044604923036642198287196751194992716035595721321826193397238667501787721725099349156184291551858641275580923470104238007951506852606197964648175736716814866354800326940502542136291627802688021044892949382238837138474849191685355624154670405876648936999521497272367952189681162348276136046231912998444934988821505460573955662298475063133702295253606535072843762590568603405770240603258931815808613869165028595824748292253063415365571178881728452933842577989191660652211296633214460920300957048323334808218820552594404677280407454644499935239621394000473959152016547569385876769779673873643574092697459203445335372748901939541288587013318058629100021521330287651942247934831597253488085480301586899322915229905659997096894106949443036411257952805250837998413720145939750993798243138360642936402171953125096866873688907521412409524347867633183268332432155260884561914137015699635391257827772394573067183192990876068975577884447627874605061506449017842010640249123879396685899007146261047619618721439369140395881811181275733735636029618288892890773278915045569588694944087890655193561956540648765141642075032351917748900191194276379615463476472720116606494437953203868358027287840674919725537973109217705363026163858504624221267091488585321655192502780456655563212352234943808045005059511032963927677748476277486088000251693556278596414765954669442275650413279786222040898367289866590282560746626024968070622443418417163267734352058186468242508917876655384410909298633033533781994423371958310001813321623191761219279498245228624444721717602763195233287025822614883450334936279176747612299864944123989064888066566274001212284248585472429874019961737141639539338762840632171698501472331625120331353013230829429635967734369208371980161142529931531018617522129593499290610137851296582631013398050091257197939556861256823915001104035222151072627366974859772064007918371770468309866731339608185416001377634126600793602742698433378950896911404950200506609505958625660662681888474997782824491053524956010350741903131049373513340049532686234956381669180061948125713051015918594895157713121451254694738450394024448099994497283392906590752577300365189874032234596529397862581490663734320121427308352919194687202699620869734832849960815570808417315614313879456204935091235728524318636401176767376967458186220133261074357802391619838852328420027844134617054330835006884596694888477602212171776272025257956561411105779032433733601567139391055451939875938753763878473618556413558153429278890398583544747305399684917005355863302983653581028223942155463354799541537536445632185829643096906945353715947528257352945457015850500060932657064821572827344084391976112468646181852482111512228394605733779991580572217070695715570614243219037373147008231707472731898495915761164597808395303238419750832592616842257184927417800834951983379865104173913960429282283081613739062113803452712405459497937470273884506440651387152078539010381794236237169875872935281332456134135450728072319652850307922244648347159500112365183834999577664048759697254535895335794794258995247359835151132188438440972364742065499808936771979270746495167550637693750008324468158186558270575907430306031132503792455925227952627843489704028485953715579586819942298057214876517946038528744392963183806337958297124851091374971179087949396468059043996043824946252722715190699673409937062299751441660387750864465932907765864938134038015559770644463676837444569358882207880471830718420433152856180245760808304190421970849522585416749373106784235819065388357911078590417107017663675111239181966004704211594110554092462549601501530970607421861047027046136085839095521791788112880962842890509842200407148665221195673846861220813505374946734736877910134112767719067405625873798984859272072283844709122534985388691018398059970280784486792340147527908606501307948516164935912006956924095091093839290648004739814268859687845926999096651146829237989312370245072129164457420759081488781065781059025348668828536955961458726646515617967846643963441423105795398767466057685242642410293858448932258879379046936283792966593614432147988327124554888966934068925956030738455051015793514350510681781408211984208755012057737769956366682709060688240032643899352621878618837527338546780886118281786363287966104333383576730247805845805083154353356708492586508525947587216400304009746712030820087513962167176225556248542525027254704047450151450050758817039029771669748043396244082096317741654263541855793646928972575314289751118760948776219433325519602610622865280869167958153414012611206669100571378687481952247078629583685635393042809541827690211130549893219105212362851374441563892856621620609058358879097402022876470285548122170544440221447395173055683161804790215258959661495050074996262178041888167103034274453866596694240409571416103100707593011717159776499177045479427605384328590828011693251981317832995767713398551919966557357217507163868210778463313253501460233249463951098471294876794783361398318433449650654968037224937528866784056799381597418255650214427137044219875464246175861566236727561448906360268256251892738834763436082532864104607417247702121502495929637689819129100228387358226595720232479049193209003729742319478341405630451254520479709794569657489606898590888767558566166245493003514693279318641945744451551691470368319672510146213394592386981705866477279992028905303662946642918898236913318178074977580029285296046552830535539106171587082804227613684668841980139674644694512641513266293450863663428269917610088903764148365228810130182852596088374912857844804257085696731774122543320958565823190331450999216759100368920844850590097303684527682310401820703805766899149659744194650816251062430252946469397803978988439814389773719303118641166663536411940400217017046786767292708953223954218107520152007940864741577837727096965444765642576738455088237867529249405589850217206862762604344675634512127735655506147671336652354889029492965689375895681107655824297572749871383265526711766370524334846982707853904726611188695370708274205809602403459222042110956145564448845960041973659306211063964465177790315408474433100885182323294542793522620086906379882300613390410751437525167137220647351912642789812761673938633267930825295943682128348149845614680224461687592195511638858765054333369446780196032505680950202288018884693453937618340669523013166848036459731121586646197473763742267501083900034221822610676170101688516973929041709947030689267115496025891685558737587869317791537622931308507788630479054279333512371755959236870703661442754143854570135564430366607726706088403217688236518052078014724845046206994995756829240190157185789703411894589205423534368001109178920157235882048083225572206831687577694796965814641576458897319373099906988464349524783337025576257966416607411674478404981567376025321710431779890116116244615727268828761566918946598653129170015262696856113990756822854405621703585978205766028800470666816095410759084700724045384502311445323204751197292392950143499792049006577433562206548939565535730434554271513870873323141178579832094367125639767793673697646267730550234139154253508126950820189703070757975394173279719724369171515940949545974970486171664349970243376969037292005549415072376218459400192836636883860067061652541229349712798255267890774029731163611848507011251239680163784389195172411397814056756355560203227942857069923378856249074608005878319780636164834282119245740135375815663806854038342027354098666613636833884775610313648089963092372230350273117794192450559879725723445014722255661325505388131182436770401626709577039058755507903958365996843986287051401572509564974458451784363592160057538687321927931655170235692422212719707251043082095788719599088966834243477520223190062294951071325418227300366250447282219502066216937177390745189288682986799831974722673655448337895325778629533596131568222503381952731220083968742587198763490726287424564896779120628197833658841103519067212464789615716347904804351579291535871327958661309816369997067100479243971401927123008054593337606206760989674036009443776022983899459626415764156084270560817562244322341458750430029223907134026067240854389147347295607785632246685884345913910439324138128994118767273649140199190613118214855817124264798768455070843325702865694046472649518460029945703020637569502482271372705301477600505648205360670119371276324012997666639831619634310243291155131591341532350078652561142786254305239485177933482352065164898874787216210239286536215597168871012172034956194530246874978659237340118583556445587333603430953542080180158607949864586059267002843952902717885776971950508691331657133494873792582195529374666822000530154311122699551364849115128249158915263211951468313704462536236568826985334746896904717183373429921718565999375887171928771181538655526465481003304190475101824332685228229633121183984913945180676101185151558998968753154563170559807922388273594177752350321012906480644841609682155273226539938462022592645923206260695010811366139100963271135722923029153017352696390140672441725525243724329989794061132599774308558797628070288697573958347450331540608607175595026990690468801016485686045036119315588186500095808195737472998623292696514229113832792576813966623503766949000619675649852964508017494418708849416308593204757450332527369578659091401119955203567904319762062186158927184727713288368680082501464212426088978354808693245150853107064980886204411493146512377313395853043689981031413810305844535650461028159913111644315480046143825428083009221296501417150048233895958975035019406341107391331764755580515757903784726753807908435859570350557392556782524090391666374587337790039443505707236240757456727198362574606935340120398928432506485533040190764069779175655266059729412814958640236498983041653226713347218942484098392597845099368614447731724676488887167108565738382945484315257080104189580059655723786040555793083525515256727404645691007779709280388569162262588955455456389338110675020824845529498130116862589507430210123909520902746179113647925864814458208637652176067940015339944285607176862621286488893993607405395556651079020037240608545209869700407840594486667263417304785088697677042918591911432850079198445684209931208204800830339991441347837075107904692431369627980439033504893785364063058853024101638302539755744904279715455267613723843641139735066193687800805795729584106749425599210650046233087163495551069045707536989913887591745389753577142466684117828848328769091745015485288584059802933458113526575329443213552914539303442163228495040561699935207051797239679005013918849485037215004425373064446532650550520532921305514028118040215434959086277957721638401397747031467143862995621465909736767534428069456995157491246924229285376281163394116599159422940756811471187636244554580014402998528546811378711022349985754454059191709340235031188298226349050565707575309427645353651440466161792945244905832404973047867072056417069266089682386789633168716744299845077172702608390347234539562190857263685506303685664769110409746559262440029260295537459885759715977661837613872319311773928908647642569095787145235091268141992216136971267550948721614824815252285141461963814173597522549099942411924534969629861119471268819728177660620262208506035668237008547298134503703217548221701072658891440705587882974081708772448637236382701224584980961385912588958234831948634673327056809166635108226913345034405827961940220557096964175793645228716917518650822268188359447501363199292428761483175514760310187828645863928851756736162246638827408943286163503852696100373500453675046595692804190773523058702502378995191243707762312587926745913273506090584389326777963406319249361626510184965683729328194390760299166542440631125759759746506242956035374187704298703526981571009149199567463723112649257129795436197746456937884274786101572955790701438010998723187932422918451009697611382318549630267617961126454729006436870792642469785579429437732754790328531611733807183814499209646995558356920507933243828868732991468681404490383239429726518387773911971059418404042489636014454984263207744541677597378229727765095111983636129822321152824024896047258674573821694386668671139671774344322237641120311870329799506684910547029414128125530200267903458919845683781956334169674179134651657601600862601267768174913623460661992448676149180646091981477680832225737828797427523039214221701059648062281994623836048142268226290111856888795622715102258237034055985126931393442970771422107481314166811227723308229986262717188845075465744942535263611310076179332268762527516295286802125143995500823837188860309087874408666869198301367024965572454337340010379749285444302829411254225470161686352316652983206566108905177987538135295572549711537215737271022957909855950032446427813680475873922865881328259179143144145586717601740083197321535962372358700063586146794556281627166677786431717183520440987333148095378598660848403678426015862328103177776005167130876592916823699296718815773299686980266410697295698892988299773409616421124841726498624350590732137014962464949091576301046696768286750806529981496502886999989839732147736147648933716664074319931203806657588500467109699377794916671114026889270765347567684471846242682877733904303403627764592773065008584052256950081660934615937352704563969748206610276327673003612342969782910628682532042868728995716421951844083298060140163185619479063921779418158065480289511157292704714134075897360979022931624012804821085723539511942866380656615748681408926414098469769217021746400600686180517739742028781222987717226054977369481353509974311590031067158234499371919118703037058305470155502576453098397168179972067172406153959535572505538763349349739413579402396271729366317819435518305029688102808731353007171337375021276502281172244688806994932902147237261106980576632810972636520322997803554538679161218936867513009106936045804792171707251971441067941726255126612223364757864182253217743766891815362592510994925519323742256479298945262929844193897768052972496702058943107339349860400965025794696542118880631620274641563285235697864778202797561861215832233431569061989159283486014884383342175964288865534299565310406699814180499697015191085680290179360931148928214609835463379558277605421857037135986199453163105805485410058159591679897966717825871566372487133663609662313155735378695072297965610245849535028884553046019199359855877981612076117579911995182850109974167638609248977938779813785683443672631813793639086434578901680064722121774743917180089269732361206561869966106102327573437408120155570326891878583793411753505317292836280978371556232958456780468883091592725092256116176067099735053857188856116319686662321112340870392545757834212933262398522542941024290286019004776961375370794499338939181784060324274956956442006160711754690455604122821064940056568654948856746531060087902855056765318756883066404523278433605077073283761245672658770533164221483026671387936180582995580263249696093784909455572647188962500157210716659666505586266108101502245075173505134484604539814094387155034797752015821664734179452934853736679529602407937023411565700750054430887705643437432617966592215799234222661705985989847178548269168130305583492631307630800203698029985342374713990807413893409039467258110755206783616060812792820623725501996391461058470577309442182763158375582672468405637020166973735775453140883491969482267896796634817275217558139890568291046432997295005262597292717655950285129607479645473192446418145685215666165839048010022310428189312679317015581082889113849446212022999989677259750915697167592103661665020440991772743362865131787788546900895155160993928691957028843017991343124960712360061768662673712566135171840642188949968604189520555669768992335630324594247832580795008850941884339857690139006615033091771661078341770915463150548104432325850218529132243225404935338501803095983351095543214110666904007938186727958169004332942009116858403117893818207937007682313651179804235715634228308388253167207889213717708940475294813581609265790738955899423129934916894750302112624393128962847540044304092277455449608178717203450130432315320164893246696329325409135742153927263590519923444442305678078921126359204077317052364392657337294198912272845379724829708026025680240008716460179630787327792686183293923847606182142041539870717266190802864712140952599204855983937330800747503306071539977782067845562142669115212774054765975246094507545139435082899639197352741872344258554528863387640755702806654010973173871896939245252128216545314795339354064199267963076750162401253043478712550550346672673684201749508646651957928922511515919614943299988913496061679846668984727369450339282103705843516888625017546403449700179944800089345017041222306125208322179731590990910844166804949965824608929365018718422676691262462251448482197346744070573937791727929793211649277512469759662269946359709444183616589612694758247471868927943095486055957438679939677708288593564268061578012995477075721992832879969831021585296447726104622967332330585826754303836659097852513194094906784948075738776817225386966095520636362090918576455834897616365140547453473450891591302148673241917113323902198853272062006651482745893802960987639069630073311497965691705216772778342602593710008365371556574403903469245291761770541640214860042073268834471743223133148385161141666974204912208303563706458525924935747980790195721533899384677435606252564820444637594993881310162188689073658783845731096879545080696660876278441559456396885588332226915067976422571610830199013681867445995419371472962585426621389710643569351913432464128657794082823839413375037975784976218098803632536708830264900140175153178243065677381184981564199248882892924613940725555937437728972708113969293605649315875658060027414227170713333244163617120353087394091300948920770017872454060832222985032616960701173308782826107259079692255783931786561779365657555552187134859741321523350346464134023325824481596622592438261055133365383882492285116660748359008713325350737117384428630147518953361375209631828829537561366940109000958872145188171270432784282253671412688847191875984370969673334439249050360841150123788200442425254325835769025265806997267211185372975957727205945206987712907750938452275884575980587545588042624378976162174517489861944426699887892555162903321650719722168623725939855293108426983520222754297047777359597045514892966429055418385720209639127243898285478969446232578763706314979024645958709415406087622321479333211373605787966400159885504284811183018503105411320234018541890961991254992185738761541112561710735120652318867111946379042215724856984465328878727373122335814758906795118560755034512814718834834130106708923942794180116326855662998286060559374125026482328871791551739788242166852552773937915073043073470689272021634133859475873050960353945635648839164378599888102581452527464985873247135730627410752931816000119658116888798866107869898400019694567270732176752546042026015817360291220626420365271374649930794391381965351668367364944234675825107244874977124908865545151466924686083982391833663449844808093598843553310379063225138783710529340793665056370784825243814535599007090753992206709673999678747386871214643438958834794705265614270058452683415062766625926106439896797133214938761870776363607734410358281614482155855861997806148011556561716652844591992629140928263490811852362281978285403738003632551093184550351987252795535901301304744291331015500442456108734680796829103534173292524992837865474769252224557030346525573890459806100237062486247298460080519602800713119239997349514472029204552671973487327025097611314694993727358801444576552093060676801694755940768544782430020132297723770064653562955867867534853212926122808374003664780906603866955077230595300054824535006649481125620206321362376349829215183490651195033833854812912362304545835328627068043595560828408497306822073080900566071165020921482053735967314348758087935569524104429303060308840952624220067786035480286613768853449869958147751733269771469748292777449696890634517986773445845724679104257326402003786165771098259108482468422540987588689412591872199447180085147361733944360372808792004102178644399229370579703930127997048950682383200621300806967868667355211456097305301983725677638453957361037232271545430583474928976155955422113400982053907012722869755954042685163367189524416815108555628917606776286872461102931496293219366921921809542749621023536739792410731708917579286263396938622921630752712425663074817511101737432210207629545040336668226458990871277101447887650539759105775844880893317879182060049513649608307583170380113158311430818546335034856318086395271567449057887895183514455394552598498211844695333798314780913419556106742528619331930339708484381592543015641458600128986883519077553569714916171715764141548897822813446428894272566787895993271431061522656609892466838856431203328397782989841967315203425029560096485287863999346391992164834346483034081499975796898093486118021383183359528603630396625505437868399676121138676088528676994950101937810530986080914987197635933406839997788304628445323989915840364856330485551390190167902395825588254258838757269603356697620562841429553968338508315413361313541151692544150638097409931689855131765407167378728947304124606798646124827126630477701938434551534678881699034742202435306723599738979924790545038546964423011773599741824079408337717276280139036080594991728779107563725905212860266975212360434769697355365200227382328228795256975099374170714614361086591884899579799185676851353347061503289800796479796404249785871003437124765555684529319061089291379519052691375769803101912039430984272750199801166206191623468260808839680111149813541679221165884820280236815527891202536812251591464951989861375516691596874268104429797804389599178038210799018074004297684560881126500417311431937086996997930181163807458821936099300162613100080666097678914923992889073020981598083218281076687951944781622629220348539182235077432790344368098771508022896657904048808260785822672649788666311891378773143952335129837295842340747909107799610756402224505382989105458582174756048890971286362962742521640835656589499735125517576634312001572760376285763275689154480755232344867891726130853810642296397248092843974096975515191646604705535236110658168810913545139461275622170690160285021483818122709893181672447189098762611007502895824505629205110137329736233769303687536515367203335858294553481301510208529598409856939055981249500950074474613530792778802530867305105532748227746144073782759730475868826797760539458528249438386842692966702081687809840115834858997493180821764602889620089783320189700633895227127268609814951431528122594511388919990921026152267296788801995441023268685054988635789525839274705902433485307909974925932790243013748784862874050424976089216050491080232676815900773048971394872906151512371297643065795277212296896770120122630550177996625734952458269811617872041430666085007610798394194591782451601018467577213453468651944796000963676993154144059242234431867060294239501256660988215925031118740172640179473095372188704243294673021759943640072379921793123831174471626414035142484203851076379742811638173875502621761397090924149427049719761158003399473963801900832688689714140901922625450789918665529550969796867989575924130203577048010619288917899792615475061067464936527244353912943279689085014108299764531446849494422770801047185873609667346398345944439917093061451934549467986708318427898647045784316266630873644546986384717544320518234835255467834692379658636678821214300643323414362129506995689472045678367373717756704304440823341404679216669446147403182247702233237058712761138127938754557484640674336696470854659270410526093147421763102993924080866421215882347446742983708417928170079279504316246356233940615534751929977662210217561959294701225556883415893939730092586612540996736353874697906037472121355343258410290351417779870002265720575424522854565307236505777371670625849813631714058387311730692388340231738300487994576066790964646855538510626245539084260525311695783174698633736395106593497140813493416038811199426398524918149071932858760229955284196519413280893510252960570995202601653085950074380946785441987218449359629165434289144564642241958888727378381729227996541732741918104666732035422399366516654905198615083305443869286190170683404672655172712578830244120180504080775015918738499661958535133727609227909577792718008689947656976866211306049375709292800761797360318377358422236978669635812864279308125366229775050505893188209143016221279008400014243918543006307371131591604612741063197707792571427245187139587760464600917763473156814814555208962716216085600114513693028621163352996521847857395720562143430345214229185379186603104269545024363428791823793559372825487817747456052449230023294844364366366922328841429260006851449365276323532114359015717087254483122855868620914607577820833999505015720239134189801291540111263248042447481815663252791890782021860852466317130076157034570515588000364084309149241520530723541177087955746940552794065285905451347045287478156714673783664568001124897114530272345937681099594719121225652756390794815504006221761722571177719775457922012101831056565933108980141202539881578175509322399237119806330981920478587756418456531079350907721742131922771461384953423326914038559081766637818784525026620150285769753554896889613164947585162697481413437822255733403021545108606274992174263230285729540485564829328229982822645947094441144566573486097207135299530232160483220248819822549631482768414360984669622980124769039100975691274990732679085287806336572060212389768733004964230095540289533125238537075163213933872637482546481439354290615666446579188743704159342416761909526189222765343432525744235375627197321458086700487075455517406330002870052815634201701440145187247302552780072994305130919363350045180890611038169128263850357012826430804670986591450954937076149174188958688815300256374744545666665911995818697712840007286038303499313625999738789412690318766202192741587932109468593507030299009812471839418077918225368133262381832403723005168545687047410779751523352078473717109048687456897489713638794265686821007893325587234074299784377440942579499419254124135521819114238804451024805358744924151628862604494560433063844047209355604933471023689077474038524697431490809503903635211759545187915805585832935482369043141350149269484228463068445203390745053641900303161755789376154155888046492293499082038952612585697238117641194089002074826674208142572120263394168637269207616625844729582781576613001025064581206474308688044382857694163516303536847795834868693772722729829764000952647200793586067560377107073295471815840600155139882522437882041805939798596219660958433099739729619849877846764728288467491084216423366762872999550987771700967750353366533892593370715365646778524352312854365744337268617357796299270040635088565441742889557166285208075053875980895154393215463759178052290964170374777952407260900342019946779504733288110370589474029793015986109034195350173776518979045809172796116201523889689614085782757788535456314318311655088765689632404000181207955026128343598587657734943691080855043018309820684677740106522425828181923041298869857614917244479286329977893613133675258577596679310364862167873559794062413079756600431212695436707536295268979167171233965161292391028372018056355869760312413473644076511811947080050506861392483525661134208720785293370281127776179233930838798027045853194163386451382965109594978814598522437245511117544568509578751470310321731744817578853008070105496374029479456181096400771530148351046221533277439813865811103242932659397909078808591121242715300411542807386428016977740594758963625356049593142128284219786474042483271399986739100958349717681777368651099332957868893083653621039125277658353957424439788076180544549754641188049777713832245358493020653755420314158205975336258730638555851185841220246908751260876808397363849208562449146358786610841512202996788388634515188205688849560068836149724037458662633808335754489277010461244497616417810910029032872245824668730334226684918869069788066894745900685495535056202623705819412909196007445230674572477368534498701528914858275976163459597102954510373711348586570365709707513290911729141311535370897124542329605010992350898657388929730049833568979499149020695226829319645181145283444871514314832255489604779558337570643196631334516472284659779781410966077756024092173479767835975695489089609236609911743518081923982011041506480341536043836680861154502191733137020647369670327539340668172660484371224891199150166282592636483214733950739813381325251848504117031789094746591438910108060306199771759062942117835637450649288408543166751240618158936999997906528466787813338487296663041706142603438460544115442816838120648983578132043789810576582832657867177990523979768752708017014525501167625148190703142398389088817815615408003936533264481810343392219101961732010420850498384325341234209339427743763934052915748140408180968671381872131690655813008907483595380380022488067101023969080216241282900529775959865291615437401521880062386829223852642078709132842542368808569477708003498305370344834127880461310092672062914106475997869051245251533030029362614043002286850281266448866050260979176029237358098538085191985918687189284106136402135990061226069326343984407087951713640791936855491443339008264281061298750984944243133395444527993353352243750535184875747736276426969185605170190680001999427186756542571485338434813236305948217263991043891067022532907302851286449687331279313135229987636313857711839177608202741440161356639376351778424529520935370755348379091203058158934008369316990358696479181936950744257242985775066840157095466209110148801512361068447028230404075578353836238555370274457695456968767024853188402570769860967198578543100611712405017528615147509716898972641243172543906938082488837313571165433337159597009199795939590856342231605148003959779220859057462750220441854624314609541906365202662464350705815520570787466143971772027645116315496702846910689955724094317019387623756151069163638509533287976784430400272266779974878238160571165389032496898198436028332306130895355824923214350699947141985690365175073215810783645494964236223752437887074716865158829432760576815453971738929779992454690344468789663719791039260615797581094143607987439789869166614263980838282316978309987652903210100798575978269721420755068914391770303727679021851995136264007866522641703140152498634609161434733207919475934301486665933581227175485328555627411561071307904350758205208879905536042113345647394726544076769166936785536521665262885867548778258056898217403288518601608898084793682398361258046117458477162193136521394631734258632995550197395050546307123061885731471621294672188098927105027932755721511959126174301325018397740739360255002421227092460245324853976851638187575120311579123948420055438887670408949219221075271197314164987827217079741196914237429461394723344104849454951084236423964845612846030500560217013781486126287854943346274033262677571494271798581478311039785763458538084311740176426149767406626388271204510855469509313950481512881058493258234757926135576404957656001870050171598152394406292102844524069093886551643193974519919096018088764899566175942362116213870783383228686210454179568553983237212255288854136017111539785055740388817529093633367431152312961822887553448721006266301193247984499214548089579168076484135945947126169669918884698294232847413307529893475703921608152305337152625256034566413105724437168556175426251909957420058076747106990858963579333061799032178128784621457551384715698153752274908419002130854516021639446218323521227524031211473495585505072145754105561803751197535181171915917060750137742986334614561119982628770652502958804585787961994193771796112019338675644563794417001216844210533955903394692247678755601292482052493550682323500050532838239404610333060922258399295798977025887009567624438087213364780405956517952083582245582252416321191833894792503379988187431881868074838537217482372006524497392338791634890268732061933553895277528798578844547853869970172841769973230857100412655508881236899103779233093422122888573888485223651559125706795946793964021336238946384521121022494432780724146974252197949422555561561044379180867161373698731600171145553042243934596480357539616826234393458788081703463450812673352109730228192717260559907428203975954164037147885120638101567118327536265357053673876186617784768446291828250375485493868379395842423460113890887950845792057175235422505968853905292764404061137579354895849817275348286273757193014186380021763343099828336139448121216085302404497565038160447877612920074949308250505082191305096279144641556203771925863256638636036218027784380175009540355885835618272176909042121754201330226790840580563847869673976477141802411247650073603474620696715871368517354325556091952392521228168248740353441478215973533946901246742097951692606326058368043332645199699677829019973795006075178850591132977226891021276614790954781823499071478136673715597765135375483407911401325398121058146580793592516483020051190930092614977834150432211644219801412973198427359810279953141283872436308267973376372933838276719254742472275024366805876315919002651387735523605565946692277234301373341127925097274231681341772270886412092963541731479236026776167990311050663605580310784212957216950694768994857734151409970215953221456129216961953513891352059386512141720891919899806199182932550671954996722737456255580451865487104595940147189608878577799185074095369594706169559924971421395777284557247939484119074855984953875576113593793612354279287681611535721183174163511103967095114129332568534783819402720247676107489286857315851711017458762044697425982372721559365714744256281118651922396593975784792499944295025598280478091435287748609700167104193573048102563081976308325524491561217924849634582008999523153054143416159487959372226953505049442026345946961809871928871071230320915629596512350914685709688754080809678298786081029893388723542711129601634945086717162727805317757997840612956935817018354066319425167884531230641158325065052984853873601107229175162610656387429439286303879120653651376365223531432619631603318608831901870901858160332289311064819494861796132406764318206217833554872974816857400638166970461773688896411285276424764568866592706938434771009759216500674686453178505838363298828647032227984263660260408498060891893750545977251060146475022550205073690366501425241983712845938418436045528747019932325678743708418558741435013298815547182523657363556928923711664257895956510062134839996963086278424445533429187667276177406787162573874944237764751696389453137704090224679795319245617240618283479810848201528934657608891761245081563990059131371029010014017635335189386502822732449286362246044362047772039086782344626981467404787609313624655799808554688809093118233362514759728169067040925356124804574374891683432712358313972229316373537367668909851011492587401604155571018687928683082159892401791244284665370359164667141320678926876108704692375854348016347730056406887400357564464938915655019610005571937855641078010273806581355236054841194927233837627089324779276980422871052625803804794343073992890869103779540669513558395812278716457777764787096409731110038245159710025145693880221079274647367961650005019687802507180224376393735353176459293740966581856868113104138037401607740565170781000802331281628680953889287450180100264364362528554662520776731901253962452727591515887015807261643899978176768880973826309917111327809279136308061507916832025071712165074259973357869471801662754657016018861020801163373802351679110204507733199003017914136338809849272397603627246872906246750563489415268933597653607169459334451849973518546296428534148792667318431207578112039718130374694246663659523637421618618221384149187184650100232091581589214138317348474720138747273567628620765844715346505882600389970554825256466835920891705396700890299510230432913155359233920377834892576573871699295271341304296743302033917779304488541736408039613917170367787682786634573557006253129987371171682880720310884606592676257208886272959226971595370331004111038005822322917771431943561378400630317594796157031247255055588837086934849230242825212221349431752938397224714630145640385331949762458080818073033935199503119065692412515808305015869340759892919628099248937134654012633075086601938145493918900798922111585138631101397869152258690367690006790652488204045556188770167521556534089012966494558754819703449579274268350847639173151458986239575775120402952353610073275309883926299718436071621974242499973156992041986780204675501047706270649952246034708074468973550181637250981397811015821684262457715528491345329916512613962527091547185787110150126936626707801715456486511797178389449407938545092647594514466565005151261278520334333815734284685205044410579402558661318145614971982321209187490216056840407536752702689283033025373362856253602359405522525982578611421287931465433435542086812750453880537304332208984190308556876970919668776606735945580159809151208092689995035626854175020085563674403350247675640638669183856865946781616170216795479915680899888376599287709804223397988465282462439565998461521677691694836520572090491482837825698987901459983817115406554452794786864672390642640137410460237194737631054714224436137741344065608205799623324815848153014845277474088452253642295821057609838150328515194733143860584501199895081092940570941738623257190298983209647695212683109758635430868601432008306982224962427411933393459773559262292418494883569115465284448690508883414861758622821000669694345308297029776461753186453561640352690380181227939723095066912691919070745756222325898739475202592385126179612960168813084182233811402944752328280898559835795937207881850019923865821308367377335933074260675363574496771858815890212452007928094347488244060440746739697475354119643670226661272329333974161965439664002310706793533917687254154648139404777816114587924205258577917224132559097921271700517754644314780040948569384979076244552597766826484300175986419693940685692260235698979708108610754392662435054954413651595113395086778994605744004804114114666777957434870658922198280489485098497319816374697741972780767020317395333527021289058398357366236011365688073805398166803356219278080889181364724280312744141794478733095487099582694971365921710800421588578242355471475102409705485793079655630806561632555757258560236014398228849590978871742659991586631419611587322159953207175920057306161993220632828016654716373865024800145881200042546862699045136472534250718216078225785028502976789948804887778822918793886391245182967381223608436084020392485797277222523470578476049310994724731441744352271634183808107478673938441689298340944430483923983819005691006181164062668610984850200506520981088658788267942135064956883695938989972876963915535322120471275947108858110837079376782754627283721298158590719097162522557532310346699876230603019181130249988615223936047170795150070047350730304041923525262388451813485521796137654184070583136366724019309395006680946473019523189296307325823354382483395435707601510194632941232574329566853791269260473136919009396900152477563827241626940390992943696936732765125492283839451769614207630957664675103464514443575913443054974153123366299890644334127301362877684377084294050207063357928256711897850504143939414272192068845029970318741008941888294438252025109394856963561513663703911804903686641548151529262031205666605017967160937157065423288078980106896050941610823104642696434844988808210538791446306047368704081578428132357682235818149771605096443839730702955422579089567221356737726503393497259574218288377920916772079113271122312622875888569536726785189297087217275837097712852964697754590130878906091739641326484297086045943106862853287541327014346269025309581340001827001206245744569511806880598610344077762903682071394602406712137974271874095874731580625197868406911648179028412522636143027434098394260591130273806803842844049452598473379127849244280886479143956850321958077612329145578345342877125729565571275263634808073824897596056809509511195605521767188727656297454952741115120877573646317834495889272910913055937968171003054251886018291807378703218825051766961281005553980804145252113002085526683943772461952749158464029856522542599365694837250819951773343198036046971046177586433976111400803103776975114440756147478356218689878015108825760090191466910811220766016605173206050768215195404005711836203208721352543448975741885646404928823529282365018139170544674365888959650274555119969256972848409802058942840550519176241904938611783923309596600323053022263368126312025359150078255643499572397918944113490359442085767110583976741630272784856224295951372465103891619647962259610076701903434878894946305168881809623390862566350224523063131283583970477697390593416944050619670601835538267563053578037551926514135069541561292741059964891979703583539147955721333012211391440065814358803257797560078638971944165127242899323445501248299738335332501817602758935116065222043697550491792117136575418562874779646712552056521359540173297231694710760575628334394901613503394162293138587179638604663968663541100991624895770293617910888078723005568068191374137702639075671895177273204565365646968745912895725911765218677595646057465834971749015558374252617977742168448140673937170596103117153910119100307008194677368717016874208930397428342744429836472647447057176418339277649427144260431773957481433915815216667762243294245341845300968731153396856466873118767656701386153864891510142137008563205517819059105092695871929269410705455396601985666078847711550504616871843655348166356336240124707940912525007359426319284518544671326495104321476964743585037405611154467953401573136389140734928659022430729022776109529620835507764272054603589058228667600074940164047064355869235161400394775084360909836679972689757221396709489678780831785597682123587654024895665902951979244570953334505794237595972066975057051753521702312059529400767258706930920264034513810335869499633634768125395984280057457991807770700827967289475511161178922207076536215727241045738090082804820860063723896401630803182400307924659258472461671643369330171750862854964972135723839321096729799744756357967638604971116262616764033101883639995815667623392195770313212075531241726951207416379395054461729888648005218785373372160172945847736645015787491693680315515226669331776184408350573577486055759859842805294953281376145111995896760291262402783913258634047925603811241910587078579224683317287310385101073449136290176494055128151305647750808988009471640990789316587657497961531590632411401805177970968690189926360191276147378476723245302233405084495919502385981367411405316386072580284935570819381841522357690265390076603627084384140151986073086442063453318789316054070489121740159203360193281083304016746743092656993066355758165167751126814645095340626288785228614754630686556718941258623947255577976989076454024185298637805174442723057012294149683062707159951322963911683220829701421306073547909355130934584456302363616174468735272099995363535759676246580041691950609872769700567052100526762627509151923272480562142727376752154863229606992962283311747087072542466197119061058348124794645129337184212634077969734008158826367313509968326887303094272439281054583869851688417050817189737384057871628753159840163690558707928131171727395489916314532364188944087451729911298606011587894638161264661192089475364979321658383653423557314197920202429972594588633333155380734643584534255024625067974218191331697691736220795334731730634605517448661662022596721598558139056755963932618747252203776384430689693188720676832235664733016104442803323908586791808880322641093724393447878389199021755454658387365661269390505490379834760850562037900116485912314604972273968764786388812791232623914251098548531783510081402026433320312246960105667468349128187161726586999380604062704070468461314453993444816126278556672209173578272298067276687128105579364947078026095097908442398693078065479131691672120821541437260887354797623854552701043994047514493647247743826857009704862599772946858890187254407390699650995923326380171388576136466372349887240392853106576254321266054860943539473103225887071533724502634383084954498919198760539547340704583142946417806533030915529299634352107629776822142939682253106257303548397780883771874958272058521937756046655125810680471507219807888601433629697929611560750844276388788600751687207224456632685621709990980957868929855970868700683782219951832033090588124876822006757126981499292871454889648327834379491893623452643299221372579396108809137677239592685063087413372206869830572770843931071397770507242495772438776915393067004163125484603698509752386041789049658057482480238323209742809714598743072992908856635873149428400106816945464270382743623662866770662987378024797134432442481209599784136504583425829189909810539436609171223213740157825256744047730898144112085681459615693906528897616081581078096330889398170208647934534262727001908876066992892310604775217339521540882512298378490240812616494749888132481066463075218762077501671444101085778563197537554886396312374635541013971062559851747608749822765646464826711852860556958007819841158803469512294940468378862729761214469471852698599811458326941308331532248652523044920038636789376228088785104053611847219890709041475210525222340393194706136927885291424155680962989343850985565573069600660419987344887696455261558118740562103727095696977953191614454363793577132720765038956861699945741879833268500862280070223825216405544743823580545590362901753373324303481130546277359096394632035904220757809189190933000075491503131918639934437479587442360904350428731408279563901464363146149035806220997643030932440968709686550309993032030272237560746662809768513341391173664621507054917417412425031284633472721779068289073287949750480900757918958228400214544980132201699886890898086350473649497201598551615499644750131291016754382812166741469355578433869921303318158055050793761346917885509614999149355044375448056439628555485274970872799070014341260952391172190673487271114189560704884133820188554170731380572182754267648502397284089954251159948195358165460686335435906046173411740715010246538252458121162662854366536699450547177253939426713532076968842629518482427622418399724182499358001932968270836902842203571969357658768056299375107657921813450894764226841007051616545788067545019571196585595168264689879313124770863668212997966365722894153291418954246826644904919421153083442613058287879525190198222305453455161657898739558194931755801533320413957170064343362700174034385708109200797242701888526092904374350435491341256757248771514506161519799999319569104865671815716631229593347779221302107682907787412128833196431788738812293967370893368508036645211485523022700563401771039671024718280552154703190270684245470921792210986361879309507757964750750473637493711897948638399474140718313318329995940196693936894207454129257941800828426062022433270137900974769240138762734735125028917710060533972808553567413595980932621370627945328499134716031479200410075770513738787971144103390893095888327185220406206347136407782478131978390075335446257738493800848915375384073463656663735271572920347621826232156375206387526531250378989022924414945355960124684496928984969861730659677096529682332779004603460453706057772635564934154225663906030888360779916357789172946962515755954607798996758043124876256105414686900184120199422232315953998451818782351965295996198973074817918362377591081133356129579077593004803994118764258101099241165992019232843493996522748358985386093542242492031408716415405733042294392625288340898367141073661086480970951465356758315249191673540622004746069607767548031021011858828311526914749298848926786896171140049493984461363367372023185427345851191477229136082912015422389747209113728984453658762894303531624913349825981700412652368678517478320873411271735174748879851346492248576906185738298864240554446599505059973715674669893818731240038751392183176110727882850356157736212882622009352096147666192095502177469986564190310185548022678435992447499875146560084024168615413410571245317856246317161435241324095058941317704540537486884478752739517073546321334528376751989990282897934352118574962771171333599552752447505765152935945856300445018398592022623071367764225746072210810047267560163930188248952181655895154506498712460137114345436270950837380807588389191175876532696099704281728959425194887054180131527578885450312795576426894957016847582365628987425606173073421580685603584423492813788095974521748110299924287630098537147543465478317595433719066462452881393757600846756690220094858014652637688490832344904741498906826907766695168573628711724708119443120672235384768638806109952226137520955210142451337607677327142754075172981425466507246066624579291423591103581148420445382476416996568348577521124335006223129278877495323047871384779110963018441101745896005977244369110622635558393363303420924707196025895584451642938849164592936097180037703758439117541725633956665800386691019906548397823672008764282488009574284718743324357309753021127078246108738192395142811084130191748084106172846431228452351665469949512649698365453010939206640487231044590247078193549245898627047178356503633483306748616865589746502581416704046709193577429905359386417230219536731169676037125824725124518291497940264419093279714935118291561010863019502079201213960751086612432844044121723880881673455634389437004155985409072332642154177495109987534333675318792246480703225920148358893338200930564819083919684145761651214320062657179128995896746161949849792392086241289616984870302973462126558700283083709751766170655842286130789506727160480789219878587053194602890304256825970553755694355387029195189472693672891902293514256721912783280364163259022936994904372832765993191923395252454423228141989002877125704211873636521815889089574132601683645963722702592795024454673920564619737261437200215811386795816849270837223532427172681363047042075233312638470536980550946945236626635744162695168297321785518560205173159526873289670709328845907900859844855343132259153835886398584288379048586840570041117807841381056087727507878944734020724306701422237527184357628038764202524477253424223685554697875733781603292770672330901288873052208993854310473851910783604233110735837672901395736773492528673089935828839313047313408823803527936303993096955667014514257754588568689345801887193819655920863682840518845708324072630130446688360300438375963184924112358290692054849811986972448415003052654533631407559213610086305272492905847056042091590322113136456763883629281766137337736821676389328412039468558980525278644215283350672261043552932225016519949903446851426755269417120078651965868867701252888913176897419422235569925063318595011566610193045552914498640327108698871729061620763602217823483337143923175859160802141399958538284122343084215327042035826370289721699266612004350793000000245894998977764985960187528817514532819655090569726632000569407635139118794243359540342093857398532988516224420462770444912486422724049242798302365479031195117129055251297080690011788828066573073087713442226288140008269293660076185680003551982935135898120127113996619777290081703343111196381895391101448186592072104363957204874489112264599808491350791287625715674225509223044850494772451268671673015428735332656579769555652432960971642901835803849629500829467516081260897018437440415681681670476094948037604111353313491638485355013164680777483929573444867619375798212208301950303340547042967982947632081547234318501493517710945025330927441934269008779310468309070254184933182746759800723568731314681630879541354358660473438774539078567618105544745653835718064446992750092217114597689036297140539940633757372633035490030942880571087291773258227220104673895130906845046194989331761634859624688683854249655674003185732617293659647986597023598534010847129730969273234123691976826655241820685176084279255088167046624651054534731147735381356498705249703565528305475098077939373582730107564978787108388879178278115845170541774132957100072545796922852624382034721153734531253287692573723730375358734944287374141491958787403756984469630348150137347511028462744290502568336350660553153784176978193937522434009705346613858232268759192554907752802879766841908271466126345943951385158718153017913573524359147878580660392975566258674291755280721546966438353806172595935576399508140695880661008458936074555772877408253674706512338576033754562935792244711468997438598487381735611652578898484323048732415289841299610356794698181524011981634989214029770276358520855491853503857920551373564107232537815825919260526557361126639884711308691199288246224839008812709041932802198501522809505610249415944255079181699082187857569655901092140577604581782685722758259261952979502016066769211120302555302032899240635800447584216472392686867791076862420105757859272826238819086380771077641091829481187995777005775857605351486297795174081950916738735278268161479360344117172512139390460689211532622673153760167446447148586174103351288171779154605864254128828343290614701367956182090504474507824475351485170771553536648513256067253848244684025880995921340198236564333479121273575197612267845573351169583537312422345677903907486420859417711770362230012384248444628384938531208210502801398781851946544060736675521687186080882361280211744370806018743894957538666493775961892367233974478246097532398355493377341978235533792921332582276338481425984526415216866523045145381804518788578377090227491793554717803785753136472977004450316902218608046996797251258530254820563901574536100249081578266351377397361833034182802253883771154098161511854511503499214317478513425105019219154776766005565274857201292053557786382664787390975129045153692900590175971877796205123465500998643186158761949627835079871248217295851909508425339560472755665778245725281029375541776355786194485361543137980554789276396731079447770791724173222892922368513068867975934560111145083073772797758555437821856462285548805065779202962487056137517929747295450548326753709886177003380182446021584533722679534528520939087623313314504043129422060329722430923484909124401034437217924349605082536542750090760989716925199671570536703933470985372781079399037488845505235211053368956355122283311919431804027445652179241022092541215574816950252368192028241299138478038577340487727494470104618011054740853567340875758277662778771863505391656929844581733340673225334745392469814823868581136683618947891779650566097093905552567648971258224396903149813417613464020811635177503219006303532387152838794545873446318880203952674081272610720759384317110631380708641164653664222378910425576067460402728909943692324076407572413102377850914692374707011141023874895819047186386529108820128285514057211120442303184854027057742726342133324050154901803818322497003551381296784877745890957529002526982887129274984222780309442478506445785654963943791146839565122332623976896964599751416281023972982740520021863885623993116856760888747075948762077169540642644235168007674334939934755415842120017988117706725780879511897391618802433326617981570477749212647176706416262966561145502377352310432219600739839331466843294073900774638205101761890488016167698312887970260057788948292235175077816600486377729887320345582197055484881220807603315926869575097814660120139203507699488476121434541351882710173521929405367740872818381086949384832427011662743712066395159305533209614375579150660554799245136015475097395690617905689332783178641923106190405749262669806480532343186726075441480141231739315706863011159309109141343542363827093672240051506094815364638827001794231782490865972017325819647677747683045984885757478048851712506276347070622993690445378318011555810866163624285613222306330649741190385512143588343720603863217283674726894351859235534221590937107625825978654290926658957352895994053085220826190363831177933777540741186746630656813929230507913958853543056704815635855225654853776506183233493817565419183463952212995015759290991890466586814117850620204084700933201937654393129090892924656610132681602460026468618340259343469399748469846176494199163835394824966969778944089229091229958587916420949893699662424549196720015231257914461142370281254968093688643232428410259728784263196459681374249418886200425089064304286718787548138891872433528701063614531043356017808520878885873413696858035389271195511675753870199039695336297779961925294413047165799402548656042889718334401407573823536929773342932726157130686081103606153001627732458258062583897856072944463800220983454505273735359638035891441812252618374176025753177547234441283121451904344308608619609774443238852138694363006531084579292082644205411660505354345268593321588923878390351574389045529769238293974055821921319844430081876989237676275747504879361567046261271796769463054636652583544086233719901583353134497677143665277855493216362686583120837685063254854630072609718369235510863203050007368624428527821906164299128858605997445676370384304761723237118352526119394676484601459719711629554594623033360249972313461853846025698377741467672874122547858746584775075076186071270477896407163385640176500055897738243556668997092561846025587332017324204646421580147886130587752202141413304591419885728512381469869474115456845610127799933962965860232005392403139170572315052863854734844742825071620828773072079651741712162619522737391418861917346979576360884507604269962511187360647273659250113077085058733330029817433422264460082662760138837048044098475695838469425040056382718503190239602363627382759960938082926118985811002893343685932161827899932603787085418254716695235743165969687562361559021915776428676906937360427425935395798262078850386252770137932299200399894304152651496559806575864887461511143980876510283261495800524305806873385485704949664851011451799240673956198976355558724089679978343833021637427265236795578139378341090236145601694909301419134268340575749772902810753261704635845410465609566929176492740079458371897069561337435276721323493777815020269486755136751272145884294473278142999922567262791431636633456978597761052792144237702588911486966328819114006336401566677006037534964242152449174773093726858480503701755461135081783366130054837977156468747922064482389651053951124664662710259786072574168888015158128757374735560306348088042565555747405704706687251489038306019990116872157738790322783582197651649364619389270536430115420368003438433638293908012978869672470789314990220308899818511154982207472296778881683443593765319553029650888577129037980778252359979776366778661425425960801835536111038303236223773352835739512704168462279241966563225329559340715236809596136414591898152617859774118898797082633387086931082989254186140938417457543455364860724360076062948711032261578547886236546101287109368290323654652218578924427817927838717512413911994334062618684885520537263551165918031906964888979290439385884400353687431248089973379887382707137281618592991905690727787944045387402203463936694684309029982543600578795519503322167590700132806383145142071383533185209295152990897087610528761140761189395323496380512076338744944750957138814664061030287704401770339788915991801986471226355944413651003045200002332678307098505021940021595546673458255115816591655169323870922379126483498947975941716817774021295126817020102892260176047855640375183305810232665070363021618464945071085775576684478953114810268037250111747838690570055492150107989290899860091310162551355191995358139642442369835140714535302175083717251396749406742753170742996416036283329289945051148795367128482223709283078491922030014880084798503933057615537816959737418582258197948087059970492661025841127662111266730844906982451577793271837502200087866899225382777625566324392065104048010025750617914778294899530431475757574976832060927833057154252956347218856467496813424896981840834232262595605444684638243190017473527974482334088877541149194018472498790405943053561413783788069903366436150133881227661117524022659178645330920448298528884089334690578546805895823663281216902274087486465823802742950950348811004639097644861224924699817119515404834856680214588858043190670185864912370605970665519917963125795170686071773820076534396314031004020436348594402101502428309304443577200609144900504812267894101842402275690626537938559970252767287477203731171133159628998252042879191964156484701978263384397568217076318830760910781227161840836543224948055448557353425337744829719751320430664034391531948073986946314935725426182436302764742591185462787123507019782515827052991848532136522247062979941574022394146155784272880546540570363635047933454970774668615860569785084031523039659918053993480367551838993216299686291937107632976120038911764067625460572188597791816772519966752819160186451202466671958443687067006263922864336252262779612127895513439826254976203251736105557183061767190238340008576914854602463125144326986816047386284477439061453456062257264161983214022082362849499996173054049534022869814771731615639886169050039423445411556855912420712021129060623374542023887844236515098383147828058674466675203885422166643002509806938768654352367193267735852803549632170999649520927797216824037333379308776580244900967386512918126532590755087790789578853395605151456740042217735474028474269848256045305732032564834163306075307035701450889732899265873194111222094703738534942201653602150808242888568074534374940252321345535221106961195397272608125505453727542298359770712629751854308949583333074069125675870779236228212216452837808210944656075009996986969995692915553541344219630148094671120837154728534083151804533128295168698264524142423064324317980337109387184156030048159857906856692969558384416189490199537076760550460351410348896503440970884209718705473755578351206546164990786117921068458289623879801573324209803620099417059835645596776866448512996004686383047325263467237180398298325781717262307528197381663142986722642633796635692376606595686525745687037418894247785148662929524935692618320287685342316759796508081246330134847409608363612280939917510945121600792138107679738598423189559727885117366690772093599984702237863571070822842161663961370053853671904862789532126884232561247078003912682927359204038325274027338544097277168638722849380255675013178894410586085237092060907497675852118035006975836646123038864592410169853986154791867486151890913245101751230216133918293795967097056628887301501129577480229665034749018305428146339914567548323242685806078630698715153686383494107883099868503915299926236453609473903709851474563618827667120884004424236091838703109198998019822829144873666119509842424415940543165900628082181107238405444066148874487555090797028629165075613635635476628775219132285074123907020007767112079820316412249883609833601163733403238110121286701468922228133416577712607202945869423491720761437017933879169293597022525189922421227278081653826603969944782441863439907868456817118541926476394237624639246933409012973290608548590371979821436117652623321445452449879940652220897013646115299980881381367314425486011080987046681900224768484636071397596668028391837754360062230738113670582545293378822316662068130165684252321195158187273240090418728413767956987242733472818818915395647503491898408647236836632011189389697831395747620070520375615783383043967282206496800622192907826406636451407602170214701747129197882512092248462940152693077247543585147104295392519479839278135685459172921096428428212662721331036542843746941685217465255340006348587572208684358598958754823245960887459694657368810157793048561659119066561270586370608565862211898462774973093539128461736951334164034737279074885810405242086579743820236465447457772992433832861242186156903113057981168585593075392072376747405211330302996198667534592641482042459321052098410514201176663939181175471851673023156018036945737252169312991346081296119710104934580632014737351476456847022185643006919893953751484831265350900548763411506354114780492561701113958992572210131898321366150300294554635871641549513740798546430918484214753906545520780291814324175357110020020805197395959981792646120895866474823218949488493414253034010029653117346730698081537725829233892043657777951648717381190059611772964127092783075400552112064305411627381393528441613061233255104080771070928683674059882995331862742829417766855970217880310392199451254065385541629264581159495183208992596513475754967097891931263312238087508168621639977113233583774540136824203252811007167519806367162997889692927479535277804821884396162244787562470889530473774302111083603758627209687401375090556410915604716916988553974886074876974946596724192047521165745442112454347405086799633802200616579188835409951089393094223995271899495540015146218698419682268257442797577950697320733616496614213143467296073590097410378702142929328015991745950478538050404979592277440783129572796190794309761473608955039549170213304281473433828949174101091918882229364796224165324226936565734173588025371417911011214994726898430327398356950437918715165829551245440461310194951474235310513935201349857231184077869970915611768591527867709878600674350455215143893455883813588125205966003402624388448858178998043426126574388625989196356540922092073404388876433278891595447619225632927569806504391917751210942824148458178984590690131330207632000550956215628276848016500894022252892313491645533468303058794622012233197611104075532955942964838471662534652897940220339389032311853306572109475509213056970124075919132600541674677498650777336385082266814739919292182078226035077964949599842928051065583679315740495034290761504205854850809776471260432895642630241109408411437983677199410506164305300780037666216252157030790458788729022871969499679221645175255876810324487970694099433105376057430977302795066201528230509377980985545775084054792688499897509686457075243477478164164090851765457771368964851155447212722826701006246971662739821614140645612175462407263544032698997294178154853273555984647261329661486358468774651278944685223516055143167050778312932532698137438647758545290395076045052399820683716890775519722655687270397293031010128904179837700259999713956994302856745251509729449348748924110268286925701648373024792425352099508543998988015742475160315470263753497417393163288338465783440609564119782344909684347280265240733547917296824260306856932860752556111694387149649213824319994095053859697908392513237419994586911173370801528941118100365380486900857854054864065192053786656749748646976671907167601048873954795218669390499072777243634202732906015446047608372646835139656757165819375666554904360472712327572592352434570400684085486405470336165363508881801196599534679397485341128311889458902711898798615334299555763584353491986017306766193352010009454616012786428752774966473380634923550444233911375824114211932183201545767548619238495486163384787135905041252193705104514863858049142372980323946070449764179818923597613905590914999901374274225337045917703368275811075177983677760704282504859854425616103049132670295234435237272825137923323074889401574429627422884518123124342932554529677589178664837097780868934293452673428068065845048676543609950750353834068823065041345256132755010973608256343425600325595785739529575077775899106375148804669368642760145411468766313981782083352869989343184938849637576123327286260740476512857337574311830300222841394977793402994711537666758244190470561249929466180397479217285176359755038008859622137947995258796103733589480879517521632413747180288393384213307922364899957749385460456531288369066990783931195188943791062373260858380039971962422070996537261401294761867845501593819703795420444238278343390359990270312888769224759832300166432328670263363763326060686839589931491502353954478612765098067509838994889782078897759066488781901162716468059107149356580166593698844649611200618310224404596001576044855186000933550212639685401364364886926939643600636873629376204750523188679746518856673341674542935058344211994434883911545937323057701680111990900258964436250728757631097081162928981824942723593396181754361197036274554236548245436322846819060796170608719755464414756950867160063376809115698478957703798904486932845268317123630955873525611062243676458563571282746520947151187858507122931345812116486811008906186064708692880619003117046476140152269847231472319899733888079711423328028971963009931133747142211764142032157831693626587554745968164026892198239962352115047844016268152375076621649591783659135659128461893869940257385483392856260479392533332304176365251099498128968946442591978950961109878368794210728625213907579580070996380802182344980934320685400773769863667314085307546294401755248913935371934076277219863688110181210180194905892510058639688689099137153412672682732814601778400338399064023824580202541186701487867302070207531027824977293314136379039201811456461543835643076272943979450201453540483452918503816333431014289103885931298785937915513331067918494590167298590035467119336392867674616011335432608269550633485377496548329953031734376935872295563093245692161908536523102869697724462155051746020090504593332243974398105432004224747139707003257359189647479874571798423647817565821055025019490799036597258543904775440082768009489397139872462512257012540610366196673537397086665754717155086900699341745281270567599149349767034524117620573657311918549170308658368810814751535072609526413370794896596845688928594494932737163492356624491542757509987666358979560903124880851248949301038810512617701274327858570115466563701526510314285546284745887992402918876023751808561830535809203858689376497998533281048275585269311460733573408987192823071157466623107721583077731905340290726848816450504076598318046901602244239297973747193826228795281069883405229972700017608162564718611680609662782357114576653171149394588360261087261179314821695936602711388274692537776655638975571149686589944306911550357513646546139240557107475168059450953423438325082120359000575294209638219667993237564829542757899464683219782920625081767651088552041781924562739737600742998091219826431683549641137618336657480256447632952965546543024404607215537917422426068585217256464434843759669456845898068736951413101294143429558116629190748056338461037065092159459810840591486760573603887177265724076234280416018280472523999623418183071206520127801933039555387310290971428938961581104127756642553779852049920145176164877447505577985739058046174235989060096898432022781970159509107010245409181137046457076929657847584685949151839258818161240118571054178386767343517724403683180134254007072534257456485411019995593580009323945381370487427058815090067971758989877198820921687241189399211155549125488590064642520373540896331608335378787916401062890393964613771970830843447870882938591050904671195671959705579514291610319924018645581472196827890400682391463334751583286448616273837252440549893378700395432489431681213630178080231883560441447425080995487472160976519868990348488837161192560698550919797010150499587444710340744391092076026888806019808859200996454628735154414907468772936458168079999800085846302346301032767311444860374196757279359112878700975400602573831646211889147473485701774529243834288753263190728916486392696760429945689527087641806983846297332324651323041472636957942372216402743122583549749975257241176050714790607007395470900514879139516023355012361850857724872077357674279382320806340040989075425407679050360407745327004459803903224451326735775872402757058001998576121590880688009860365152789766529720767895922796963008635688183776167491469512807375957084835576940946706854634130341941038424089232791649826005835927676404577417835452696817110890559957733906221680040256389708817236254115600084004664164577088419096601797914933411747571771266253370032036806631435438759832786250362773554598999011739861712951767466474602568026728886010320936057668118726168100388520516593078292268312459032066514856384373019597307440238727469701514455101911509178932720255022827917416553462677150215856503336049431188782062465117655841798131827146777743573119589533760098904399783404137102474044200883962059951354896549680721517376184157700993279971687645859912664934631834672817548208715288737492239386042818641492778209864274215938102368144087775370661670529740224267029605369212511474535615884208820035921753253584738541263233776229972007173249371563455458889422107369903825842805880313022915359053190897940176152182373587947561789578568919694777489604383456334915311699842000315336496971411462486609896868515044744116243407183173613521974051797784205285980570951758555261127467446497282303867551720186254154420049513314140299456433825943293267593713799764071185036331782644089543777748065186233303317672115491599623642812447694112679854828230844163422953301443934992009290219577915145259009645343691964595474246504292348195880217290119415853071775318086042135976816746171304686987391992326373488336423701569152121189636831117681569874513492863774468931493019059848207342392456078125486374358202762519174254714277791025453930658825760374027686766755952196237732497760796350165638734377233280664277838458940864372221644098249043087050547516180883907864046154865614905586224170421698017227868417292606886673464605931192552745768060383548319032621656412352455371388574101072227575053570561874072020168600402437810170386746264677736554943460736504838473775757745535555351984365190542067807107337965986871315037106265902838146390980389468420564304749883525986022286386668654872322370265017560913453164151721152845189228804228561646042860824593933827014598147123286915012197922170493962939452920619072812399468745501207218423487015956151060946780592846458684765401306206561209553955744579922221854245557005088556678466518228046781789463891213843011018689175099954442233010007971817045349934376324296376598360122224414982880827296447174960659165160432170949135496938005288780126599496185559847599768434274505548982386529273095346433463888465883963678463358138191701963583412414763078069992037298182753733387572856182979512885293274332345170312547930110308838394728888776653812549534997479688855060771823500329142586595213945235093151168414306413839873862799729663200569613482185143389109532414577443755303176204658637951781586506329553342248256625969520994118563616055071147413957329030898913328256214266150677001566381753330646015363190021793670902406169854212589295353252459787039197474787923512008940594523498917426982972837011287123733775948392422559240475733204788196141603931003114116721065836718195962786304072876395860373277140316609621561731975426279901417609091077870154443727825085307283709292948452608086157418650619019812739090398454340720217516604734473770951187848989098598027615919635802772712942731457086317540110015563543536204458441720119130518230956114451316910589388465884898032058554039829722747705504306945290042176102279015709844598946266880615603064259466474867574623405520777695433797035570354299808526205511368849682702236445152185975724343247684763235008926924390681091710877349052882703972407908555440380967051115802548387791477233823514704316628728985507291587116703656472137711892995226307386627634544346704450919285500897637434724265972458351851306852511685531021937523052486033394214486591333859252147573342192543368991825105825336424278655987493336453481889168841780785645211203060478440751833060312313196645857975360818085415143853488026586105615116773503543853309307942186000749488498876219698404290666528771684424564665020287311261433724149986041068536582944199654159970556616820867630775812747466456680655998340816468665947850390509413736903979660413008858191126197560042685002068860751804847148608733332588457457149891166527611913952177996390989536496982929062879147644210499358774798220509880885551304929626473887669441046163468324156824915072196927889139792939270350088143971050816388438570123235503103235057351486267379539870794012130087399958116505985883105056628957305914420185485377217512860999901511920973698625428596979530717567155792262030461990648840660930097264338610308342082187362573965130482143361714274502427830995592070856133501998882801210523436811345198546536216739012076087503875615412442872210441503789312364302296290504018557653346888319878810044479527273749948725933935271195994750260494548529056329508797929809458869658352493917865801831627050118424024249720776455474589342519933659402322349984624457312983213538056978773704105423103101767148679024587619680501691588743859662698463372981020263472656423547336235557868905443877412265893778286396615235825755020259153839794074949098930248965998207217132698459833089059616234497396434407175232316933942050320268655866893100754944476338159033150456054353490574614059440268936670373927969501586092428409492638080316719205073092900215053899812993362369146439285462533949643252110017820893511536172237323009098919644380171984423940899096303219509682817536071189482588383498159683233933115179278418926329525339826759218055839953120474755646754444821121304255632524881109024281502019252242264587804210720329967555392399805549926217685285939518879674173441023417104996884437213333380105777889729065467652066277651918370459959462892652477038751466380720283439107723347319065560050018670330115646953123844133710561131374884924420371671907787787476302749483276720368071540301841966922267068557811631863847825255052731382002322564031260496170497759556403070028092378371260982625983671632679104723958725930800229202301328234411420242402442771627833759256764309072508183648598484570793259963871217912059459916067281964523303822536242573194978624018034575518720623058404119659595562519953428779794956587840450935337053298100127452720311874427655784664562135162776188382747377542462591561086271289557963545870173283354604498594414753962236426960738409678630422665911657247276899793483072016959309737745127099524563260986774825643924658112520817336967965655198760297219854375395416200411052600335887126960798459761579338764684842665067084736697817118644875136575582896941088656714606751142730684167683311151868454435841955616986183569274531511901870855122458469440052804453674847244215510769229745772877813505744075124198540449894596527051838350546851568392799750648551734331162635364777851034548877756752425755854947449886323755891275682417642505307152320923490349660193779656384068493264051078630632960136058355886195429162006318675974401953719417667593127777112714472320201603891729125219162218776191365238878065884640545412921092206400781634076593632585936506822606601062994161006656410093028961609886099629613717723093073556337804748310487693892106753946250611788383662120241755208261805165143097777024763561999019985465023136486792623760031416578474822751799337021290378879280982877860148486742064179455321843634877220046795738259209345350943453359991211097387162390656576873681766893520598684378223952633468568394512159275362023370314718977107325946972199896814831448621931820639459078144652781488584650243728922279647832805015336080356305081575262527598516162222800964380243359127394226159793208449674299092307395431357978806921103800385077434069171406039085592122517639190561609218348297156785148983047592454079002074566462407378445941782013882441616672871381646674554141913116609630972697860249657763605071973633094725981281338631525410771761516258798915780655799326691572953249630168908628981451329338415556846324914375620397177864310377870740253093791829588734129090670999994974330974208082201143691632426781237831607685802540775713654932439073531976053420151298216769149096323126421987452577157040003386584300455738829282406451061368765106258189319218180700215493217190509301222712858078597129855972756633445939909270873548792757532954272783198956825798217187790815642715049686139306597866732482283018227488004371013702245577793639464284499443050749615765167799595465726027126060888267843986425245231463206351613714857083252471935318538467640365239809166744519176757153012333242341036930061148769690178662947540751673827103039667296676523793464016799100273617242378042859963825381916167824426430797349663081909139912299347249880610764818686009326105451358275282072542978226151242397791843581849991563971415677243081938375205644431385598749559107267175771946116136163689482207677836464029570804604980792877180216350237511920371294241608250507247557972792283369883123628925386623087559922153873772798524014774879777462797339137759741389325907961794128996993496430056898833181788788009701539234925715375147796046746251587056142729467792103208959229885182057005012272017865733353339676536290916539099297020803954817616711832772777757604093299819838079233598806206424792045886970346895017055515967242498007878767276213771138885770128247913117991788431454696412499306333684948679493234790948732586158187272669965884631435690716695515220268047673974769768367872176044366613615234641996021249536208423903534080391786523904501587484028055860626431277713085942843411204277908654024112601091325379616475404489119967567472039859413118716048977696116178302795103562068963780119347839563197099834941171016466990998047947346890530814925392709861621563653691594618655170764659071758952032987680321054794321667030380596493843534144098814395004656312711022979023712347242897059940095603124510786918753859289183608368637291953765482955365682379115762140267783501468143426342898779362682156179079916307955246272546817135274956455441208152613992149273555487895784840350766830528050054765531336876501223756458875431624241600701168288989292063653478157042459822660893055238590327288815554056875173408677457865885514405150814570404380990720991560271528170136078821937939804012739651246456189365038980188572027462146851600484372433768295496040420111531141206167508839595443789523775285064938779456352495161000261813771655039142708680928223724666595944341699757576707141124347731040509714416529883900161398744652108486898910841461906466699983039110679704169708133159528049024592450576155566906634717036359186004194695165261987529834399556984323263351284587056127004626556979675366073789802680516081183407229091984979613431425711461989435455768992302474167813742545285701559151599605594700441001458926497074525603052281327632898054288273783560575874206646316598304191624406103932039986514265753054936724500467069236666104078242257869152284060276813892197695489546537875171722156928516243616700707764447627426928758426171985336039644454358430175305247547221189377174793077194505157535275173042906162554788378802364929751041578572575189629414311875708471343373374450987988230963473219339332327025967098006097697539241152398766556719809275404288072847219952562079315616872186367094565114371428502125392521444751629388297277731690897107640962573015864873377681511621349371706556457461567032687799554790867850185384444509743346802453717552910506117440645857695033561528131471527139415043711858951805137091150989811079716167137261076166179343968222865671879275206815077785721036533978804395476967057809149918176452948370199524295695364477452429835201519071922254633361099306846659346687117432807290063670214865494305561039436812138293538906682863755249420570660524979983182020139551078379290596522666051784355592684480827055274138681621601934732941678726000020765002865984836101494093453692413801882771785278398484973042690156449630090045964378494883319166121693313634341897351749066352634115676819821678453963907271330247160359961295939221654308787437645140720815115789152656754401853458451243812903826529723685852066922854693516449758136517015630398594607474137065266147465143444593369473121260101181004733912213794800673269740992918348477254763491273198512441551403697823195685643864921677088509845293351245145981748045045582278748468767212828574920031677875167472869142102632756322319434228504282383099240117594594502602644872531096395408820387442158352541378294073464220729236782215879185013615887792365053997107412692175000768054059107634803342612941071691013266600923339169258214223005234878662544941416493355601593375399718802837234964487809395079509006553991131664128479723985362689026042499411053599282660813752514970873146911458706886183804317722956173418580007652178085063301265296010193230586044103054883420450407999473832808192533217983834129411826621548555983807840746013082326973969547116975130939874592271801384900798068849614715364088741580357612704864351349682369038029715976271517272461968372639912130267464208794224613472323545972375095357966576972462137812149665536761424707433892565879536954037511954130425192364914860681089299480416507562264641263661412936777800174963925094966351149121020575022120761952815101673999538915242133352174326995792519234153060446242708500329840134597465098000724363668213931719363022864114114739953357090686781187886294512181620509243162872809787692705641817312206533672342214505627554461077200348820129984170349055812472539299890504802871530450908985053112194735799438742790667065771381958315232619674101500716179664029501661055700645616855607835731414968675199744068678534034811061180775543650252619684498544997506256714581465580390930754495445420037003160540886693897252119844442568490024444718811093155254120430419481076245086426810702672115831349396194091887798904525795210004922155592565695452894375212134793715860343411012455862262804859092294611722309532099214419472571600279880870582933538844899469077087695637136450455899780663428615834287229462603061709161327793868582367129035754653989472971796037989449205441681195984372012386857672887697326386488133862552604015212004351951707611188577148559921284511542247487260141474310713815108032201987790611334785624134306606952538894805813681095140043538365291240144815200874189002255954062303647370532419818480625821990013526142437615072292852181461588591106325057659431019125760434390261000607225720743544761940196930211096742317456738274098982660653530607528478708352821818092910188731582394327890333059549230226579034826732493629324028654981873716064031672379095791729559974494174835268342881696088713093598070718078050445875008149638969460903892520423366942574266229075704534054872682348655597685880629547500843734776951807552059680932491458255908496647159190340394269820912938384234703884136397888497364238445896267272604534528761073927628458555483858620310397751393633042962245207092582183012540082470423218319720234557279227282733222435678139272869579398890148810921844003961662233247764101003373499422230576719708867970212932353465607671814208156574904790652061070800297153295778717582808377449247024899094929323852871147944666279034292804789022941119808262960121067515734013887799944082805585957031167418257069364342957901550449767666783748793770881500669774954145058669700913710163362452807272666970810841495375615344919011856846469247138282044801797270086902209547292448798308904674117942555488660076200797609840908175718770713097488224144249991951294960681727807569483613618286876487179847505894352046251178004958243319874000315791895416222040825209564647360265822721965188507126437821875435239842699431212830835466939787991581102509969409860468331232752324780651165054803825746115067619242940073405065868591576567778709210895235318039035424912538305474881792183884574789676328993375052703204829163190401806920606033083303718454963585730025988278784406850581081611637416074995636393978928141465756335817207846497633556472087762033342765146816160236501860346293825498984638602198772718823983764688123466776207212026166875531290239973729479016909802912864179423469010998300055955410343270123632773900292521323057427570457065840793210234899856571326378784929694093087359460212909579598179602656268846034536374062791651984060708216059541144465546603735555637231414340607582347497409026793739684283329461960329015753205653878966935452582018122541103261575128502236266010921226475009770488126286247634708425436610798298188171436785053367854572062401449314900433566664979003797969223810984299382505837304848506914130954443449419042782917350265762399295835016046513337378073523584077613197687417834774531893924961834921374590871364488782315146576777026504020968288698370010412393240904033539138511068723784654746927272922220738659638902142328593473339100386460606303598876818724936079322184023088487218004461774136652485561577534133432323937251839213148121316725564702323244630739170263569362044002950288204633502487208130539921448543372914464714679659784286644574265770793088218671620172683144246094813625042474062693071298563840346895795903174749605661689137891146642369250811407284430288081981490506361058108379937893212680910501830390900350133724171031718093706434549608849662584382989292618188143715583327197443599516475059120846152937979350049036973244605612093754208750932645990268756743633065777709693958747754521784203029869214651553963353634099213700440042188977106909760750111486091886363324064669144392306545042297220375417195775163393746648922582759691446926936588196714206894322119868728466604557103076028671493006419291051049833873132970712108800770986122999441809685887325870837271541197510369114930069152920542018617575038667919635795453207245790051520243771111798655435017686488707399557164160314613327047753487059518764159321545418792744606565449651669081009517324038667853529355696921523253382013473016053565577792004438950375699896310770004374915316242297681954904957087632032620460026895171253311104554078347881242330766548424136295046995141351633082237700619687178581103726805104469740449778819911758226081551494896968215724865996939469486985984438229895410964404382956256103098720951934733081909866885515528337865279845323591130895869359069019315216734076151949663383771859873282139331802807351261123995303134761379580398472804187548947229831242382302255730010202603708558569265921195045622357229238415456265745356469621410865841969714193232130465731931454045220076914701045549784674061110807835473951419908125250435669075570798587785325442535042064603246044084719300458273714945047265792977998877028837651206023147954718560254235429019272926559088396404232723578228353916667405269625891916038685640266402506908494311435354918848810972201020556037774002877756779070397619365906487070244512078670067239461690848943437729601609184353652854691243025686192122758997749951534960664487983226071730834916874772938761835479817896986030850714281947515197243305668263060659887976686924378972782388888762942621032952274710150487287199368181670185094451925986599103343767292997313691646368263177421256188624537674147477583258144150160168457771474075388985857104679599348897420011720358306313403075205381230787700444836200298869849644170166508089767395108162227518764333114602648736004827494431421886546168590240532494139009906111316030363064006275361646603380929873233183430140268659549926186236737142410920799616203126019876547829417879666141185582897046297554064046712720162317456642271175840248194201737175358357755111665783044623628188685185469221105001513061767583079850809280514470999147033755389666846760588574414808673258357103431647863535557400542130745943784646501101954519665398840882856311615248430335159268415115103759547076788464434587249311767226470709221355598724065604899563555753775569315847152197787443411337807779319559744852595845816915603965053747116629366707209269139912497625837724024859622487231761557577364290830002624609292250063311484974706040101106682912615176746085802661858897374104791148430569167090162897285433823757796757948127239400122807964451876527268631609865683131693643051140374950019790336654455844266464255192544823021479109066138361339718997897834002522352422028683927503813076464518355258887002910150513233998715514884081013587382956874031238824031437936697932281817477769790471505586111346371718417203481086262031587667346357569629581947448244897691096385604558060939590776050897918831283320327860678809686239516787995362438716263188489227323499318415859440838516007814571494438167343179173245628121612978260634128653808054149017539716331424114771642362165816180305244549754276903050018775029253417759558301835816900761538289787081049737600186239144995193333202828833835836557912545567636060463849020660810709384713056177749475026537820689001093252949982199831099270128888725292907866265984097167659330320584044299087990967397345212340376321866630186067260068600551008011278966987517965624134805270881457786182148295079624262829767570446928451668473474739819090223524359509812882883122714448023953739450488541220132595189438297193645594179137874629577562436323226385507627444513891939801799429912294054571349750343467326022760751022324100254326411309176867341617480729824333952261666518198408221553999579222848993107041385767566948423100020176578263398210933661087767496913330744703317275918855841086561018054461602239405973782093751341757618483540462418121911315805701760351509346058995917270116383127449541942983295036545232224973764029876213359788765381851254997954487816209190230161211078099324158981080703434875682808760176371827778627218744539676758275766532827621879891353720384586022426374056632062227524896119009554950129702396099318391789641888866960850665528583199046185270304170038495172234488441284930100428004949288055968825833453641088117653965732485904937398432363478761085621188469395331816944243757865271205940054595185228944856403163495624421953499070708942532694040292241439687662409516213586676752173716294861179205646153604371463883738779985594041233523419826698756112542477750188798363327313734652606296646511291707203392406222630165820280497105949173166022445980370658268689950395216176166720199980698315275102833407972372899459161457628678159350278706335012025155750605992741968995851470367210106585803512445384043680749912709426818646481269573308562340647091297719199467035928550267139872915887710987373772708790734640166487860704616554217023816033577032499794833536773344745387165805342505687979857870871765552005550106845505764804668411153042835014198313284025237426175107525808979264187788236422891277566234297421294956450324087438948796692340430533446817072133972142708211523432433595922759884751406927603724498580867149218138685803006885499355905739507674408891162451208939566739060567225714643573858008120678194884784737619486521184519355137201711178235057664828090719241328701948212715185797613235592818375019673994251855634219857051378071962257594243507148297300500432526285074593355920699388290136192092433197904442273075962590160248907114434020220198443314512417438827574527836125468981009838912686319418752677507061307030082583447783456396219190410623171847569937270282772054883537736308264095141911095044229897612653090473184543383270521204387780400543706662019444540862630553983374074707914805430414015684664919143867934282842519834997035518437648335117119678196010715717160439077735613312138436203809726609061154913308745673082992655703681492259848229258419246186827214949090914375016518008317366243762638660169557257346200405108161075486554816081638882646924268555185940077391606313545871194031365776115046388844025034590171629980785055768939177833190013799171526070464796661465756736500722327917233132808135905590436243418303138133151699962306577004694555549156640465266925792654508054447865297729069227073082411315637986196710325779384537834268159152301167380538367316813004287901263989671277805786805099989148472240336841631265410173267546696016168461999371897124931428058830981453687411086964735559313128441278909306284975122536184835553901852941261408612858433132574415461364515998412099171359963207258242475599276700533735011391353477901164542628869932847202036488280547116385089616320587299850674829717465628825455862337506735026262429258353975868207041022417119049593623778550750396981521962785926026153962553249894870963602004567467363264580861639079135897578162867316742610393636695904794771929928140454173777015712718897505434571616010172530671535749658954054467841593084900790229252306202238243887304642737050439984615366783259532867777116374841840398078733302968268756493800824278608127813145399764734359803823562379470483493123235105897201024868934223917169169912271319688682446191979001986109877376948874129580328345784167554806667319837926171894009387220972708502596821413877508186833045939508511556435380895932826970034637471201460605947720448487328950457325512227936491244169947418282318057893322130237924360906072029749790661924959072664600704556321166381746938924241596260323818623031693604426715368437754119187932913424616155542686205376379740864553006569209496473512313363609183634827325686960177453923652026200348969268442103299014268537195873632527499557893617168468377928461984295485393366383582652672135379971739565262245391314987131122922515029139395127514950035080767449940587705176812692919549998599341350859948094757902143652747628768359567933575211041364322224448545030581640746539006194393616129516860031265399773819909192602154781355507107929269235612155743177853166979369291753192295630502655908739098295920491063394432124375473573410445882987288990525918406044805324276189840173735334488014378267046820583761400789770047215579491413413152514006317364273347875961991148733092474829749834756260617397487162810378037423946365798916673599564504822941872786648784101050072076186178529032954445395410056155416182344525758701834982032439374339481613186511795238869542361064518214202023572530567851990738302549605631781612669224539550426167900065284694180523194766252169232561318077192476336818832028459439590376452542974138733374134281773600600364314436103580053545033955087285238993762757168160712635423277600227804064990044526135268023833246826070505627233533306744615171152534833436971225109862465072235274790111804140728839643174130053588290415230920463846770149412857891308960157939029837737485608695590674677486205652384853812413739112812489668163401022926601598500696815441651742230579017841057734047967569756969712501853799869218843347664201149883982079286827778378786105963825379801013112776052102296579872951061131509030251572860783792042507602358515904971981560487952754786959257242425743088159848139082777764082660985999241108341913559929154479806797575056316589279558888922240953688310628845296156070457335752017324706663282265122397221719725269833890039427239177511921902389690550942672304608853430984557619304992509554992580890011300135119640592041006290869372538854857559139603974396774366510000766328916232161507888296195477099537986731448294718281454767992755165572082727753684153041035652246507893998957730993108564942307993327654033458742482023862103915467311624292844112650660170975627479785866562950560328074250477379632361809160578476938171778260064980899408005801234924787588482546178830206728756891525064335161473566791551790981777058353393470025719622497738233252027010577942279523099701293565631954065342740079927185409695506088064765784622910564250678673110027818450968304325089786104642630251453742270601202842502514332591065356760944692200545850013312462801591515951820273756623125330450178640666143794293545580786293499752951519753989610680726785162778558009837868770318687496082403714736159786469451085283093535763738555351254668099541594201282498403906599322050892847822581312568922530850511565459240903246531643414689526006061375780040538536663244785267164638952899099761752514027812035418738776082553579324827619610409018598651174096886107791960634278764730675695336748507725279535432800721230104766648562651481876947887857464523997499926953246073141805599203994183669564106417152621823700023321958937770580914571572213218725292309834904791637760397051252749888512879026826011150044452694457686160428470659431354661080418093335443043649256674053436564767996295242644329356501682853606461121923327567468562313081437650180926118043055602061279870303570395400156779623446177678222630261535978861760459344832397354574591259763951260654490746984735296268693144480560870648637975389178793130467209326334162060562045071103598018737547843721739182142700784792645298953907473427036334516484866337346341220154453521222641187549226761055913913059793116980774178817793942614233577218366572347305297603399650004174728252477344891688204023106837397129056045546585083322879383981954375873136399722284823877689004294111506447945293255314533581433101267838177612637690779466760314135855283654636299718774740020570036096522513532227309991442968813673666494515348862208133620160880415702469559235830991274409058753292968771095873696081669623525612738035480630672141687154727434877635390119921636001831590746436893180279211409302409546595525010857070198939977729572615170142065783127260616901435832668447657210508520533796209583200347633247037207786180685401899818910935540663259538517272931176776833488618546786552189040895113058163067895263968037861217047406114838948373450297326954383345911439602545570920073972122535881592986437485240348639168268034922980881866227281487745810857299692899991952430088279126236011412825054249274078865200345328585952592121623185235013837549889832776463801481370973546097623732267708785837236436238061037159917342954024728917988395921426295741811743152627263036376735564888742958294123165199879240076840723419660691653421266459085723860779723373316882227490902349199685621956087447242560644896772364385587773375587191373000437065065530851372827370613275939898921667354398131774000337808413708749433784278797788394838090923885660468184527743718531933205888774769034762665602214912862132393393793097550246032209004692217046691331761836608458256446475591965697527281865428641862050886214407257474307909907108994051150513845634898247490392106720590854075166225130448209364341830532188336069677849235270425616074231912434010662120655583191841299602746608866194849987532004912022464684581962069375009381973560698676784097846441516065443939692804884046253968875368423256300274029382113623867453314195750950158409635344337836319735601006035226773401236934570561808728011380096307543829110690104577149849828056057726691073906662065141304927264067071505758402658324039053395905235702432434820400282750427865976278152721397725201857155191782328190760599959271149042829014972569736171804041654680064746422289305748308086454617505234860272378704183563490426313915291927868988442776896780227975841676722969942989744789293014108230000391413792583602226439853063338472618664276426077388926472692562570164418567329418252098435133241520856398241601506146491384970240579258207913695493538315060072528911076060996260558648682386345545878894390924507177398760855682532374476722178683066907814196728180720388688949657535131091570441204123964539150136973591992903007165409249623419171628973006350407010809315709832287519800361110394587414344184892762796566336504703619378974492441863211941977365437318714288418006923792475569208412483350023090019897834556000194808617756993978675605094510909041053865977453915482757830453240820333827047090081558748880433380006417924121054077718455680472404983943595238695640013110392290668588179464904388900547325364760733762092010985444132590061988562996566690481087782796420735765148550064043405521519127694518405214807161150431634170823014282533092657400296952544986565159826066552485654825554325918966313904480726616568170666959009865832034754044873417966892523038281174870581119695857729145328930726614974176906422085391074472712101035885250979304132638778280406415744068709256669436102770011773623161905740870512542944491229099667542697367844235523658610432302310214466069667069349002793305244993280017688580318967343349098954883914167674165639785120570127430233934858504529360049427973345413362799143014614677064892858717536855397893575770214155591685521607800612767678218971068349584410749279739233415506239401654422743515560648989729206625333882156579328053867274403752088802388608581411888400348574440626911691310742336314237020157799298360852236887479527854192618872395050251086102928252029241666818546469273127478360750841797757766760923005741474908050867193013537857432916710357535439566164905623591090992928739483257239176483767326165425155294809375659018749876363685947308215072461893583263403848588945750225270689623681381739268790710460604430581049506534834236842546121041529217978589724756328420889241805624448819304461026402210547064378267589807815639751931053674967259753778016403174629604924996294360135127556674788597639491679612042851765263251415885712297034430761374276361139893806203249862367492603707192448764570666404204787652591562104620788064217101976118975828914122508293014633216437877130082129491261356262067686552199630867423829724157186575755792919186744297625597828352824183386558943275971373234335980836629943575220117638491010640701646992759421728389527569784239447881498673960782100335354383083075885202473665629446820498624318503061177441739677287049216794960939014786403386888109121568692247125034973944012980775835248198176727956907888379773749645014838542852067700566107675687144975626532041764052472606361413808626863410994184667376381391206423621841373842633088828113201828658003614314513525029509610061921132801864178348303154196370824686401157770928373568456313636683608323019269047245136810797491673324831611774509694243165373628739118897823498957551848041134363521451887910834681216360210220590151618261179174749077495650854582493589536582221814906972834369760198921517832904040067606934975059035321076994084535447326233614931887036227958851748649449232593897496310841242505688748728305274761538703078309280708316303796452933610138763080180342283612850277823277582250278194280238472645410320110681678789727740516054072355740629876465983682453752601858883571765150969416344407526485165051563855772435258851435073952179313500863670669688694903915946358121947941102209161868948537597509377718385507457499403753401357498220939171011020408384699729064096780156170184086836925115850568707676333673958911438499465158325292642603091065805396447784444324532261640157054642561536722362822224946045622050858955250905749451220682990754747047024355298595951398285273568045752185730831257877762994757956536816479890022920223412061825155145795816978137178494454776814633494444790426770257112906840185039425886907067315070664974692405749526880963959148504978160596939474003047118241634608644645318528380806377742549093186341438230216558237294000382500706576024848230356796129811734705687200499577738941451552806700416467062162947687229089887815228126444112812714095426550434541600235077326002467483272634309444360732010933707558541580841550610884226698351016326059613943703572667305279526989000031062040790077677675732661664755032481022999039537745534614806466595364647594602389679786290013544186766522342756348495576931181153784639612907397464077825265382191999003539107254877985423965867639748423632764010786094628913385895954520813438507029039651550463120553696338798551778680244172343091993271226390852760630523382628893800520895829805774531562050611667133413524408652286615828963583918477437875886200630831750757448294457365962235310590765122267255120238199261695057060014299520217190039416797206732046409292438700727212457834022942953488185654971870289328139967023788233063697719906697834400825426901109562519304661096141697463469253794111061414791003467187602898383819493879917181794472324259253097133812497436723412240386202115442274581750880935563644765053690046299611671262122417670925419891754016573043450663391157596620737243465217267778804693352416983920963695227667686303958937379355115284628650015700359231874882540201368869568792622250537244244339817090126428276143225001432643245666847957615906431225849996517079121730855618892293427021607961528020806174285847523384536982360172296945341093622485465809334147107400314274021378642082465774481920662656800296649026429318497806793455747779183998810863369763959741448125633250857420785233296898449188665233814157507291863800380502673669417250383251056843123348244577506007623946031356863328825939392093617904654634688710313586743621144650486935084214337388394427122920987290826554950893500198043526303468108290420700953963276838972363012371862990916808060972891763696403149377348178295742068620784052640823784703883899918422233794958197637461692432253971875517863581182584531049861659502023934293678487632574499122147427020274310735045150596544699957869004863089502820266810171454409622313696582778784068723383651090291334588188493265174157723990143008065141154271846781113875673204333465091053019877844321635404013583153722645559507613233267780866093693192625716685620498172633174249575082262235671718344530421302555733437957674634880376100748237188886695526100054235043802561153831450536337589702322642451380003575124047752068894082690253596308376663873493890194865520814415671295606936139437287753395461888577714944982877272709441749024792367020680680524769160961096806233707768379624776170585892493594180672720907397930485708094096146313945840312753573986925236142387136082358144756589214885537375807169827429272436454325789803246549418747059196941163855730519840158733076646628764522745532315239524509742678339855169619265367053361507947163583292073543662140644631157547847558049403969806000187099225679418708909551385612718181963543858871183485969178117896185759125657137411085602081936421132957596705205988457829105270982346257679317962892086902234650171173765268297325190881690332202573409512955175516544269664110347236962057098491105879391866050015999020247901908192831375743097083056127321230844480364641666198732414177596148560274808047151330560268848687555060382679309533607793995436369147744621177027479721053088324090859091673751608028287853058710614465761221612162673704092406713905823097940978401543431733057979368941540363260395987592363737949393832517550660485073450346964477887374060979446318477445554048691307998212873677042976584740090241027138417181147294958453508914439745427527004992799824095179066208971072450806686576436310597570284891515495801857867503809799360989234351852953529116051634517515600080576400798659655733402459120283124552768804238648335817694018906776634293181513714321722932946565841386878795971423540868419388358873098408305185751877854586221346767543512924752844197563558706247777403175036207780241614257267784083338110869884296801746570452677461700229155514781279870885584892200004356990260367035847704955380082347232889444555764920082468505348011601830578104465906955562515710425444035987646174678435521877360998373669604076242892449494200595761682751696993576109666266640220108145237634227556530903885601774288351417934751905803738041208014547258235202802023266114789866660914619978209056456736355841690714354094949105927520771005487250425982561791863619655822243681136395814534229835156517002516335871253950961612670219472259234794078351675352033899652418807666707963433194815765982480864668503213367758890596215980790245627613380270744621559030981247012838876439031330514461765508845506542690111743204354854231375931023719073133834960905181270989376341616780729257756105595608775168677524944712537198871187667930927102821220548519438264679373364024477237728743869774495879925753269664316056545710846208175122141370399783887836953013314269557966987237301448820723236532554915994553319988298127094044390575332170477315563653397436706690274829036902592016220971057197629047305425148729837124268437179823516401540407161042170987078551767627026779771555778314388476980584662495448389061739897728624682432819909886495634021952341574590463116389382713372172209229132067251784398170385199080675797456321512193457128516696197692497832908939798805782465055728071633920885118835899445468426406649493076252948367314542236656505291083270913919489391153894333865489722634508391602278057391583251799479737477334549147032180147586651233025221633642331686158377582576350314674772674472584514431146144600244638595043279920904560025713717168631121122480478981216687858590735767682165222929185088926964898125281694270662187398731055961847436742492284239209062671029612831988972152151729220436130863440157209016277769259638069746291675762068089713657627834436438053792191509846233155730696721005184540969928921399815533076200168272188077353867330276324849649914260687399095683672574061202994252870671765100505486199149288167589953450808562509039370502649049616725932269289719935443995019580325179427692255309406929601800921557375996307155272154338542237424040865149643068304578736340818841769845898519063772434226160391790135891649581606207366683227155537091376129155784930845858568125647715835432770027371444903617135998249726030499370881856676397068842673290947666932642763960481742035273056920917661788548638411805681163562699415554937595304926253139987393308129118155180555902896244071386781567951390855995250398052605681537897213366874002828841634146758122087555586327494866339388600324517202908083621051683862485031845759723315848304981477702448784209120578924736194766318197825103950641756710630814796672655197217384880339572723048561074876633471988384284321862360034637003918567947250625918943135480306099195418968910681422302724799686485857529490543991541122342289230120197528468702181812265885191513251386710166201463730816422271424287777497263519780509475696200934267494301471532505258973285396856162982973423384225264934933912028092368114633233133718525493360563620789444214474949412239229427233607775484191692529837584381115631911291349428764984616415096833830345250136625979830485832880957891274501784899631590405629970404311542504180685605336243099767023454411336112052017409146147829904920078192507395883848329357704429333015510513482780228325952277782546495085563846400165569353985192385734858101967319935650748851224417737802850331537090891175095708570140157717601917339705715072158944858943081276052496685191595582428701453006956264921292935403839554519641923825102065783972063581934637157101252652010014339148231548659245227554440589898935263304189152672736249274234380969035051892125585667075593580029701960886533110040196025564861034367090974971029200332495304973134040489584597797133764961845181912418286137493175880396490278416886050060648319329447985933560803403841519902835670697964396880932418900169694555044898580971216312330442551943580086122659568305729236416988196355006369562241270829785660896179223145277743565058426922405321537763897299034598330942451366990753123310216807022821710449843815558567359509761619790481890141327011399190846523702250794861452446281627944238503337249010024244051026217366997664485580995880282923197441527691764711914304639566270151923610425993428483778080772386270614056479983254772562568150823228680048737211254437166453730929589707981572888965112341011514329138815530680714368267241943628730628470023680866396339381154977945717188562019773506680334832297461851021734046542373577527885155702109618479193544942469175034425287792047503900183116772001644452353243772415872142518347608436484955099517786576664053489844306002626790364966754470551548335461174288140087333994601801895320075437166367289040733093421197003874411360804213107499677926035213835633275324331643605763962102747417078852681859279936842556945817981915626016393590509165172176692021565440223151454583587533024934192509684774158865546917880002860295178183378102154098341174507363966115399941862481263159276611523898326685713707583437988065539387239842864904650621042839584795206112948010243341278451560262589818665349798939602758470946682582061184382735117688888986637641119331299263978813237392786355498270654340529373366179719692003488615338070467083326549306622444260753658761865998148132612725808264574044332356882065550593678687278578331725638851817591954717252807332327487007825194915727157653725655194226451710591240336176017572971024717654745164651994895416326030370378712689139513737143259612287375371464171366215864843510297510080006312456343630419195809667666125388715947526367322640826871498275374205308413018080416079641128902777639235961574294240081904239183917479692820268371847680295571526507518211407497217302797851960321441295761243677640869172985038968374253156364126256570704159362312439975953426310070496112077737346608429181100292770936878879124639552961672898232238039908782968678488479387152266202249949732045927408635060080155145470359376360937678880867642404653912860544097110354710521643193574778606839062938078060615266226987588262798138576511740177698365282486037415624776722864924843687615984690258531744389431232838855765257374231065951288140489280987506563493443457271140264146574413909855072615148611399250518804994894287957492306253919437365839973169848405603053400495399956931838939848189037758139775146992272242897058195766718025288210603044722016971807169619076184730317264368249381941496581227398424202900816276619535194601491664307703184919183880624087353316176128443272158799091207696983627206970565005513833605566558281890838196527067722735646763038215143179406761047002249471671344244768127908558403151984474303937171216734410486963419444945388651017477525920363533478186289717374764678570082413331663377954712341111098829092503789860890475054946317419950578236785906946637068189384271505908809430249584812210283985468157083175438545883920876419816135288661475648843114897472320819356738842580580084463854946939441049413842516569560387180518844348442796234732460042689762892810034402505969971405143548598088184299551218383511049120167387299378652177056923426579196075915516469986341706763630781243277439100119482378868339156468533806717428802029813697636866361187910863901843002228448316713773409246644534798646571807051290267908501232104171629809525321225754205992392385249432540100359799804312084503239386369888853073344530988368217307454298157346946659572065392860011866389705725551537297836866078381094360889977669778995963414145881177117832029773805568249485538369590743927013646271961170110669830612337975870725761156974577046621629662266119646613668537280734202753707886105711525574603207082894964115295144320644774657548881829392724413819402179367467595228281511333358490959335735692783084747547031004924827181632511964732102139027395943374465124536431418668389332799650532778450241440690970810601343455379359321824817192353733482078921036283039815658629692107058243763101105864323763560496055105539200994297630156495352241092997124251392099393689266706632159683427259548461206060378138240380188654917958400166437916159699871706317551487481820320126551233919668647277059922619132390234589259609597296647228893672262352026328341596186219309117823108961856930862151298924003715688564530781022814479211849835083633693387562067035790403828865280928110735743945506430251187211230101119139775269544405770662174582898032727420836155152574137059137363064374022547310350526294206333323867623193430762307254945315964157583786553286547471304045038353568105878499173468937207741301254393252709199929007732677402064070881816310575765190906018639935437150749400243625194073923749120032404639934583542531354010467367633682088405966771864288596436178641775772129978165138525151414421264754478530008734748449352449110483246748598811180536917446431599143148835865508965770887860688788305469949986052534875452210121308446559753191154385192459294143892641746122854342137492985323488325734288675094005869797083057641135613359893917353589552277271513037996132383295220479022897009261227751024037479016698029096539838707270893453955776172181630733011969302610572520419935368373739849854884269899609952152006247211299387817579788311767098033007875676037969113670302406853850438735679666520724027222193854135905042851333124913990361976643805907836137456667274060554409124527300959006201658876712465350590290871056826532314083094623469837293966438397169995757454720123499167493382202119588931757559044691530604589734306357758531935759985829636007894293236693755622189594744992520520825699604948434564049942520033934512081658658484977020051874982838705300825497447019135806500864949583558977636748782604298644669729799586943731187828626666814359628893920608913305155192403971950841545092361637439620830837705719139285584957452788305069596157787362713302984044306341168648434801732246899418090196649777342904820072836995739236217724573863625779695739032328084718157082625483608875204195493337210093628433761442700694880425182302435083547679437507065057052953227050189406645872374369344497252123747270922677948229063208000163848936134790853454331527998410270865513462662610117566542135010504217723217611588817077249622433381282578768492003238787096727866597024640272049807859652139756640658704686180711877871447685776203357541180533812202057117667543213831201572126768246981894849932781894526787660090970671405812623328318931038026566450225267249149184911852888543316342404913372450664397853641942243543073143186764224034162164580620264775138337108969854753732913008102929024219269331051427108604644326716404757692284873609675777106542132100685607797592457701244027115115635060182091266659108102371972167081324089686318381867093271473852324400368020667353433564224103958476231780637422275841183494071025195757995539534830271019444807645273059442126812327333673610699019800769369649411749286536861171493303229412342595023502732701522154150638032828350807555003780472064609282651951743048275253555077767180569175603320559177306159244658193607672024347496102299435914431887971972517172946098705561655801116734374622115185444019993342550404060723826489178169430320279264896768792160128806981012558291059531933852019758997290240019775932546712192527930802775709560061168636693391593742690363560610184209060123090733868181402875066307261662398705132899398854062300638362882478613229806814793398270950404437494462484905537708091963483404397404832949577484084658026864972416615294503873332576178456470600529679658826241371779344316035719390140149328110521475697424013251921454653648129169592578309077260611415372618727055163552119525585565712417873818463531647359179544457692333097420025863565675657669347778159952076218022827680694058983468982139025586483963899168093692045400442208099415660387061809052999582208830419124239955334171030209100414809519386881577355763822221924737997806959069709282741987873682154616089480568180400932725837896618632535233577173650441561428710624363013471891512287406572746937038277187859900030075802299346029197814363887071088449049199985693862476232278847706693078483680806168849266569452221900110089253243350042729057075855768203202396636559860157647176081858985517129698163319534000529917996466578776102526637758019802147344255202585983477119946477124951640901064848429236274665732909342304196873265057742093041371504328895619207528949882338486091795482992501342009680753429639597255151623553079478236625446367030402962327118478612753356601524583992841090826449882891094272853018965722506677734534397877506382184839525797824200276870858034230466869116850098120424099093400542784746490575335577428176696043793580839640631002637958869194443571475572215870265677300436174324628441915745020816706996105819344778186078890806837204460076318256786295245343420716491602280107854972313505997347131289465650120141406886748477054285331858598804858450619317301492798551137815119522274937316178614127943426462216819705534426225512172248589194985661330781509390219263586892664821533424155526963204350772053216248478293842567649496270250453145570563841558730416807059195170906111047406140118123454179837138260679644781564703967023047625736921750948150241932196856416563873140255577401883524125889626347941930851169603002426153547900783080579005342259784417789527081602919579020570819420220692141303513656229025875980857506578041559767989115331526162065237522596863263446302361137424629727218177609618446563804642625911753631127641740962214895620272750213516915445526890366044235413720622286481531286046034771425246089987518467828620471383813046333505744914827095991422525935899952623815363996980115777928506599135988599511899274729750310055438824698112983883389643311353396953331831378498824594930454443688829413626389043875298120000080533510090741063694992706888876614197554073963179182159783698533468958469945006212623027588405418350040748405527887713272531416777961234196036081248434246718946929564553478707228645848845341138565000321085323810658064055686068497736088978271487320346698158681594437331309544244040135103467979439233570762955400894058568463124118005134846378723467462862922199713357205908222524887298257074010407789444057686793169063502688280111904478804538582576259994016136114804665504639354860109810267156664617069121036256877698747093994178905954220607024294326451838685241442225002959546708934916311852900685261610445956728803528714373716381601078867989797306512756248261333132497507134843199068004130627252224655070948256982637577827116456283668455587401187880823662322258791247520987794467545453889364586675687665299101990771316797180127574192677126047630529553196230788033001812155276307429683242194122489128596546824609166846121670229102694173581741892651260259246257930688044722852609825226781399709096596254074807590954482393499134290173184654133258587025065840573168928979651129774909176577367633121730582018352444863712846899475486229076204021441391501667391556747236915217114460142704950057858608158767822372518701822828320865706130945660582450594207350256894447116056939870378630770833156109404209257972539369744462662652662486990715927971481648579634778937614584268384019588412026407777548894846435100894058900784850544677908447896274311084210092301571852675805451680246253131491054513685677613830054399309576198237302292795228598089952508391767641181837733514679329751656685416369795985266099439535460751890315773837965995003288427999140431324321884600513901779871013124733662116731190278080051711185816234930042431957938532387000241649605371708094179386645491537941465996532290696353705757011015130210268492789750461300829574179627088191897419540461480246303072299196324811906669476185602276069157890355870650655800482039491587244518169221918518977226047259960992959214270738520662313534450521570673527356248495900988124610609624962190078889512246205698094923742046952484071379876696969901473934262790502415001478354157823646501201998305629047283246910939455372452838372363727171445744329276294758454076759831433700472476106217724206296827783761183497864017171190082591450283247330298743612088009587737999032320515436401049144618630151782263401282447492966164009137035416392861319555067745033059834683463053817528326377577602759670335146839468721076437886884712266696830458327951991372874163520172853714163726851604988364908896621172290351835676575120837794766364304833803854672413490424173891778123007017183639054622764720425711689754369740930837488045028317272526414123893622673841565016275812468971906000248882478431789744832083312748833959964910781040606859042684299565905899594843294110730853512512936241027085676964451645626908092222464341803635188815108619000915586158838576525023065626858869334449100423408685848302280943319737921092503889323246552084611098126351252562847036913373424108234461512902851139253760674906492801712184809415290092184808654635217283936488779679883347090246010212124606230562546551713032613821459837846887196851223338808621267922718341089703197179871911560085152030534828188318943837868947162127445347555881417962988761257582025626030246141975862513642412522995790706794037914385563052652260032654624363163537910888920405926076956579831524948229731615376915819066904124055464991318167233621416198317113410251185813396970860723101928797383044599963145207367890386338483362872670166806835394545852017335864561496942613745547192934064499154428853224477055317907526021584884109637761748298219472710563476871938937944922544096654511759839375083330968580670356486654265362633613287842155905209979036869139283518552656367555029304398989896026871370273177527310365342791270317608893365513701834362977447545682169780377689601567758008983555825042289614563056904090356548195059658228726415071414263138977190606283098726832282971111455351801028360770604535889752881664159377614373678793847497442195670318658976390499028672216771783861151799271551249435757244171570412907809756218182715881154202398921381053904941546168410573223876772808272350636463232925289107422557968716552038608573442499090730431525090857941770783338026574991044175777896211653182025743964911685928837064477993257624430893976256794737381406180077851883696008705946990566556001879824320110863133661790482061056473680084869561401388628950128900072006817356766794701991101221722237315430803047112768931353022756858559995860293962517032530543794122843588139618017162266481356115263211551093448034578909792684592510747114905269118878748074339599459375720380336166697915647114292858244429608885263626402999287879881240030054352574390201580541383295285195397345495417728208631802926625627394617526232005156860618652486220073481766846038955615356017930594038191054746406449855405935643839337557811121333841647721532679835607876791574917605026551447468836165616927258952285153616916181565635752028355766264301356402855772733013401371256259767309197368578905687785285375784564448915271717716354534297533294464682296181568697354340679230194962710119525645224117983589955265410662262518873725067335477796613095444480712954450530884980632304719397397106067206932346603768675893057826708937523952736626385703720659364921912893581444172990831350788296543459199498851767935452215551550154188887591655371946392200627011195296552905178157833632293261180116099715071142889481338400262952997719662993324698205922600292939357485552509232219544181859789981189204547500171227091522634042523864442223100904592169121853720543174701988846058974742065029247617686295559860221634557058839546429418098335301607031604170240279154075535440058438517165161134335936302949152635493154321613241635569885680805376011398477649045472011570576656053129008990078974677620793644503943101955605075086796746446011610355778927735644146004648946979891961750877053045578950728360570196832454051440496058068418413905072190917565585282186450193657215085925150282870740239019581211377787205611423406633404599510278537114375415539687499588288126557542586841352473753389205877725784029853035094840622080859977654925712869717581835501869609941932405640999585589351607193426073228466281521893990196250885443814168458130632168326746668937947256407528300565674347719839578250458722050759661939296757449885976006845949935711061206071886096883908847217455106162941458585570377452495288220003569985296098402351915989284295062078898235812946814987649847775565610071925695300716681251502261829299777742434220868478084881202203976697468615852557246405471959902802912776422561553648273756763876074751344595038582439048640801435059459950750653424738492018245411621074501353809458641532834800751916195613361719566088684345676212831281872657557181977466772255174013483948460293417788418136803020609852742959364391509383245067474890986428848176519742178532529642893344966579757165564398289999688039053967398413884127974515696230143937247655081511711418993572098274704567251454155220274631726164721719137766474242915881949888174367039880222728599514036502863327977978936417564820536966267141207327131413923486857974736417590695464745193180938763790201462364506565442554931047860489875480051398279857575148661654135771551228306661448678518067699372151594785545102342105121497023528711434536644084302990091564619061012348094356597640828146573884771275843679685172228985937424914410633392503574808657710133655987473408739018387968195790388790030456178384533828989587952499928249181648331499239153746438321788297253728687249221225299364751288376652412179266673461608875288255125837833523639700344653172813971540460882102743274993225537401677427101411618338854171078307088590213104704059104743197697085068545841499733329053472520041462730011705715971761313062743130599093301411469002225173962475806471608129944842397069914701566108772559651484311133234958910959744380195095385362367302763673885338314665881984905000104531968940851181004374795011812752576276624370163926679166790894606124617824498266853617937029807772012555944712271213744977954423946699380751647854912059958813447064376413493911444576967568460775270241993720778433506199492992237700195864439535203881398812951172377321581040795650848781816396353250274776435337707259565996216723469834891003696515683574126058115381623068477028322231064390133318191727143386518709083886992797665569950380055470444499728467346543531866800741210832501085531128842013105566305476426848296613340802575483481575682588987603028086619717498987120904307885127986069050526161381042855780088774122976147899154902567663089837452538856656079199727377477096976561283724013804234802131279622247312853365033337626503887287747699867642102753176996201268459271530804227702567577193512284321306761802257592743541108772702086116601096600289241506257776567655230239766714000481100752622754102233786515004906284421051327701101009391081269079446680505342847805442484574869503134780241700585482555242173600102186116713522952847995271979557921476700756250765708799551602067230717289304261465032830387912651594409383777000293910314432390888750966394944678677187538100491039517072401413772785001653098752352536795776844965412766150602752571654192195496651211953800830679907537046680093346002495342108521293773938116876034118553331512625859387090669945032897961368432772043471014072754930245004932614837247159285526325131273000557036293117439210913459808196455996031408479096261962531040506732102382899384945371903789925781265282857550841536416252209331983383030841823889225994493091037283531780842740222162565335872325485985730643901287244896796023391212501478262151431201650043145247286990959946630875604869906589955547472241863156637812479513287850801655881032068182307965313411105298511653958109505648505603830278423999032124053229890722480852290009493599472061778552513211501300954454404199921737013018072965409843291284027185850524370443220241823117738811266154903294819619233348183231312775414459880849544527132783969566809367632915529911620575759210069376470392115875687448870886445562128749898538545075308911462597659354223860806812331388227907532111393236501854273661552631194737675472407290668281998091304321153143273640190295001834129811528009949921625416474932646703922373661116123301544019329584488959120371302070256983977695522129217735489573396630072611903939525205988115374694366096200470449599972829254661698159505644934008911818600865178447153377522741537151613934974655903004862773151546414398815431140842854130908155510127033744810068503975984346034302654114554031543625735840025776145236263455075344094278644295837190722255468499008515669524171968865151058014619466734072433650831493650115487791718656259591856762926673791633567533909336536298498098124948469385504621738694290858943315850936656992056809026699278088263212329237752686074120466382657224303227932786205802648181197641412390282601056838592564260474423762331928895193552784772013441243820426767780852125587632547630031452410240232574938328657714517869172560383162657424330026646970396519290478924407907662769714794411429612477389608637798231106309989331069074476089721142507721325333961247755081767939615347884024521960940538511151205561801600870194715866750332601528192292025408142855833566816941303913010535523854314825711492269406007677783068589914757434431748405672485428983784412882576355075306847513962267525157043098638968802436455581211842377938639220193933463269544810561987747369537515718541748476394373647331458931026057631721309686001868784965933776152827656471545304252667786536829209835172422729621158179893201630386637611545668938748509041775790082728350473102708033268656058796352995194355475558032486652981597317853272781598648966686066026908375435497111184664738108750831423047166423629994060090406506691785172663000407957630665412866350854745920488782150798316050019843275893071268533566991404136632700990262854609792690734055481224681863220618921806877127481730052090728907074330976545866266209685925384334918558555149656370941461628990956811167549212986891742480447339092774056882700654773646847114258606632260654263020741646083059540505979634497382963224173394228282542247549615048860535314947131853113395024022093018074110461680348569474092069685414413743457257698132982033072104040118527409355290889704424010685539045369453690783228720738656308780726260987101732951240060524979088885534954880241807827670112734827861010859469772762073044847004782677691277619348119078581350370058467790126689703135152500714936100117130083217420633451759507889771483326046516244086260738012792848641180960628433210430543705947278035995890534329133211603709384778064467432618106489607658365322541020633504995638781875233436858796829696040871307352593904814778494665495333025499480847083844553571519762484191853146921106458113375764266861272939532923483600465683878554259044476842233183427835721007568059326147549878988395485997194367856808874300774523081061875940418774564490287400384317007059842654518945740817141037713848141484338294565344084330141021348910818987679618462194895406282405022143479127791049748740449767139401363415009386195764394293244059076482128891896266906556409830320099807356641767973498349415127596651760568645951833388559388637969412453477322447140682096523282044378843571269116376306722188477253843000113424665927103856106372131512573971408107211066120286117898757550191714133304866263006909838375727929913515583981397746603060527671496405323426527888383559171831033212399918032219305709810660237744718341491008842486419128582458717416390262127566992995199631085764052873081875755159050505293023780935303508394248207855019702406253130553821550564454035342143582374272103228743583145357894930808903226713818299842009858948525962343731959592160020311838033847334181938105319978842230084831312523804304324476546684715171780494797766098644363389913728858716187919315531488084680842613388362268238675348139692489639475290715242590045597814826891037085262981660970933259636154151517820636332673692699603504348034088404876160700843595872425998921951568907813166768555864590740942633485673089197993685731760796383321651070861081360080253510105260604278670922995544400600040983725045736072552777159751806018722559051477412214881009369796545547105580718834807118291672416465105170856299483595290293969168707307232326420632946786389807045430813860791001735148244810475606805335417436019962112239155607209005899921691032516075751313275341819758251135309467705730027965634267582892530119946293601730994392166052545962244406248781858754123769902910332192916112084077031503856861964744600903583906772727406636651836925116024572480976775368628843755147795929139269191562824750786169497500755946495404221352004516778797860444183316688617215667218862194564685192116646252152082096578391984986791011792368364518136073399070815532759182464741848124373611976684797332564283638135140667601614512136544928114787706592602367034111225691202640982788632135625936270730764542703571289649777352145982469404680680439281112636669814060087618602488361500248552731891819191175189618305381378845087108288409312160307963293081595780090743347207647841195668239820111812140753253022550277406207134205019438397852337570753533568286151553180881631326257175948910128405082298901889144750317361236152438923067608024779927874251727309389624412029116014217857399029769694723174955088274626987143338744655791726028370521016940495624121393916362141981272586800107970239147741972090559210608362495861728272090022657204784236555201821056149197445828402335331875178586211391923910722221193917385825318133126761964393847214438754540591104838623682404170007894698787624176160953840201053049895404521716186761772183929098375446376871249633340532558355872606683979774469407141314404842781634172166657354724737056361105002947771778240050240733500484787664577846591250431158961260016110390352343428283891678626230016623487226639511753299278000536573401357146464995757161073509540567144397222724285451051099314498969020804302816077973250954379836732219600433792589614222352760995997505977834843077622598259312931955837988843709761479589991977105852807615031559078654621595987348652877863181835261474779007577617736733702013317150790008456583902060345488673180167308266598334783210060236137101819133152398456970616401538569268846668173879334464801935227279805772397600922235851441087611159665512684807672884857785430134894912933444236649211688404849058791713619243219457716295366212429920250456905933959267532640102453036846455477254430695474445484076212391079377912105117486190819460407775640150948603470624482851747901694031941574134173463008458504961966420891114778395288796532541868961123953520831452253643035618370960563836202019798612870279328156101387367930671710724807138896913974441152330626265841940093841310910810154138674152500310003440697093039646541062471348267645369120745691134541788555974739652433336697288334440925535927461833325473467646731357670346565028049422506119056631036049438503433064582542914596986931297825789436659241862536660806519167235777349515509390707938026658649703340015345480511878737288362877271526147577616626851443451471532177365691928026590212238646832939351607987834068607304480507683959721971749279782048511286100070956274093197439774622256240709271718561401139748245762796488364595866612763564468440337589019008432638472455171509330179583845143059040797569714788763246847195152964006855346802762985417750789232484748439874135681283122310288313734887356889666751430173120462153459518450666061364483142354728357207118159030563944596194075708791629055061008495105654465126726287887994507090927246687799361740214780410892973519769876486359488648207931468860676877467669195035261485883528501812118913149187443618324636815152297277348898372466485761109080735939068441683253859831882466241144230115825275329524685656247358512201944321760875824541631385876294620202011230527659510524260036561845820437295506904543894761449468050673555292722682443606375148841741792606897507407382706763414187502635526403317450287001753196015380535072361592200706375160121991747482353212034606274252117118801751280140606887792523478607354018156720390451561845709375924385437882823889876843208993449119726044594547846020229075020984530267288452873032094790952581528591479910863966269679376373085837590347967742974997852119928335883704121007632816939203066541603614321523277864039581818488682916440503705904735545843344468005963969760563213499172431795212064631238321961684820269814463329987874772876141936232284887610259587948656034122843003422313414026699469222805957915091077383712107644420272194249616912198023498433445692132460339426838909604763640391259787655033806175301600635368254466160758778217287637418515290509361197081211348367036623579744061392565459456114486670692471461760349979054421412108986930720927462953092865986946590446331448246770978193871398230330807770306179718883112368662688249022563605029085799556609938214698283236725062718765006630583543824208493830503488365064632342457894329792245424226479509747271695196758914620435718442826744262651971897108613908069738619689673994381367579213253909969029876935624008527379368882179587474582435612161932674678734765070872656694517493728878159010781588170611324528363437690365670804678932364216003488956712586622293463914360028547021706756734165781491813071720921485451039960882065462582237587823378449447579550797158002065242898511734733627346252208233520932307193866467854621665667744752983002085589718567459541797803104001893607571922078858744433235662506503802938315023217442488137374777649653297214047003935337651553947229819089845083191129653336880894911390809499028438003027061775135953845429616684611735140569645384785030013057172547613205081720991931008320105475791923274606095673640405222231418207479208933789746422708967591117348351203751709937751269705587497860299663002698374328252974962698895030313180021329367598276781904682118063203054972946406174655522863368937094122957018549017615599612068061145347023338662459074588189244575018656944333682271626935933453300745527382822623369497716057351700560066265839308410128862607713568962828921767333544401571616333244094623287823588424112224000654518729805616760677858584156319147659357562330327453191967290389624316979299530573054868398258031400599962269702252516495533580009986560082041167522527745177126351212625953519880761871669808509005151442607578864780249311373730658995511550280523404908734765004599656252822122718966150173868754858435035232348324108179161118018489237428301040391491738785939631479503762441093256965798632473362089277752046380978750459650881272587758227129791084394551464782583082122991838546066731715874416010339992214981574215498993321557682328029404693316861476653231696241232727024178225142687035153618124614571331659848903520854225775199725670055911969194601888878077179291022689397589506374304152697285263362774855659853700957611595986548910439488773660371902273038708851233475257208257714270124585993382479395973717429874183601246139194918220469822925135274511866359551669650268257994024048722178230666510582430267462432626647669313242417167464330763174218647753368242437489762587417403204591337535502788459461375268458521742217102558199244760728491958355423716608913402248169339510487546349002824211616998473826327768849080083819069867974927256673838885787028491396785704690658536861830753060496291150551145805352529523601332703890492279641945650991689634929067729143909373225013850098479448062501666670370926378407723188411712269729407965814975293700769741508953242878662630142519101950768427172541333236413271654112293594421414554830631960045219891198570062550920405650828039877419293533308846630019798391332392190756560933036123161746515998372327636092979028022712159470578732897784233382188516239333057536721488717641703657098367568119905508241981064191296819649656758645064663642976784233810767746268779430005467252895840536393397266083840314654656793173293863761627284780588295296690286491188741475266388870199850814148103786801272213970293672946529354123036389790481999689500760189231912729041964441272893072451902800316198946813519162434809729508192111307114678531634723959221776943038280118693934733452648126133623571916353604085599462709226126881736104641411333627545863208579615070578823636404668012579401266042786916769334041291841537599438643168308057679334937706435286569436816378003647441050673822478436699711707449351502047823919686887588253058546670287886666098220717814775409882785870263014358134409207988573755251032162968729352508149664724215501797093879386494247802409054155874119901333845966534795379939137061084436125684136122695133124522977595702562023619210835628738072265515490743556110995729844835382403499207146006079074488276537722720563736801861526305724078060468324755936747217956803084222039859106081537501376358390389111445630799164739474654707950063116302024379074086065332039991742496966395105823613222806232347295554496740245538745575909831054345807848572332512948494104763344919388279135987975171740733054511698716973300208919447244583769678690871779429435852347414490464174024595971082265033446321997783639418820881879173138582120930890179896179958910841120240491511807149009465309532968685076538177573227760840208555332470429778451380481255575148337237436248184894464096789343869594546345160201967308447691325619069759786083322306840122877376734935704125246629126076664596500929209752017312375769693866802846795273213191558710765841417680916649788347515918058441258808105043202013881797535918828207281873895509138591444768927977392307751363875589306876572055007543956496928011241900755222376632553773333309740712019484534949169169707303017002799350250531648409336275203068975719186717993920086278997355444776420448828771432424712263233136579446118651945549140168362784299780655030825121018759630615074273862572285098965102488207453515270864085275390164967464417411350873011270692265178054532604688671585249007439103641454453835928481820031621622282630844762030199407876445744924994035295352121237378551539696491906916072543255929646358885326135437244250474937765760055764853080560311655129325412662520498766220662304733051689193486628093383115181151128914475812172599227796150835245791317039861563153268600692685565739575634638399500937001983074620879631803121102889614778417828714357555098530716095985643687971177407803091462855016233155350288357148766752298069626258640679852397134995325603911550836315524863303260572438189888555405048099771799526189816336311447369676847523089839153206276819920136012858415868826543423390032468814343959273690151102555129395659962503265850722899396322543855759662803243207659891663624714889257122966552708911415040640106830499836535937772529914832117953857665044693054187168591146294255369600271855734574354865488196883448374028671328648253644243729803560158186230052252770107276227335985839937901848466485211938895588778070449555071902456860033331565923389508257284909179594282765966198024332557343162055550249697615241823956078088266331989255855484619502294079532398540812796774434176910828778432069204971794383945556160995291065423684945037141123001648372187965566895433942909355208512476621563376947723605936269479176170683523111008002774423696815094674150745230345100002957252718639790080440130130066337473133569483572548859204566718999630826864619903505032080700171962857778909479456014876521438431020230257266281179757156285429212775063288623028954237663043889100105923908370578160572563159701357701840118840776667932651700007527962157421388903399992118942741672654480388308535336976323650353735360207361944051345003187514534747263440885640967119994577768902459157363951556855210356524574502535503343488326800419567468971162076361137003414221813002620574254027216143599901959609027231633619896237467376580062912911405054051899919428391472760789140665571141987062293201206196507380603227661451698634756131158850161803650735822335308500958271590848810183042565337120730358148758439774939452596746018783139562150590375076305772100398308963580371387647753572054359373573978165082703172532432709359623358600878272769466400128511942549499393018933681955471949414674097042062910597599138497747359768979570908715602133382041233715258811561688189255362381131351065755273995943452174281364464219600196179113200615886941100457578354784513835660255329665935114303141134419761452465676382903032105680385479796697147243147923951250871042641097812085905886987563475314077434333664792341715239739971626029859436447748857569620153167065067692903951487137769455086247513883146331771830716049321995585786540760419864538955816433405793123009190053915520020189442244422105083508916272180938646286130211040912916400916390830140621494530616967990897294268466762241432178089471770669528875087733488858419734538478553267666249254360516292253711468644794842768286322974992734469008771901669057008903405647882151719047968914144908043538893455829581080798795270885403103656862254233042267516529486967793663816161474462084837297307989573812702112026855820345095347223133652794851287353959928840171834732861037191377806534815428780715911463248262643253134261285019390326906750929368526201468450655140783221695389914966058332500217493398824360081408075877243135330617006953781868914943472467935619535983210434433138152309831502245233269598137902306114675274293794654673101918795416379580304810834273216540575675428807534280883778453215817750883100162366292031774996443586853837013868074810107988745189525570058400683796207692142410506644479832267249501967671437738712598797115811387218489991395574724240649245718729868506210091152117335262102003728203870209523403666160498578390552284640643742177272061762084277321071965266263316957712717387528837580014006057786047644125826347119122159054686304554699227479758585679264874852909510240834216640240233115487732541464169194540932505182869204006728417285187795640704658221405355138802995346735120504225136605779307623440846948739923520019635079766502593175094236526514527265304749636210828704971858905667790869768725154542386093632437894555373837830986624707856605757469899433953156616459853027749102177716205259223548815388764155951869500110807632363955827615018994815570820767605828475152680089603289573309366721643693891755637421674599453156993731111757656508708220732205764876763907164058530230282294691736966832475736993272723425684566018319913503411625065315159241513172544607934791343526738508846225509137850044428006887844762748909989898636513396963547766380232159417241421332611395728732800626593130533278625350492933677839184585212157344663737257112688433319635248989660414706018966593408925569551762553277818155768533766928509997714252944557838269024282315921927958962008475379879484857099928470096171599018904864520338399072243837490310122871385332047048225225999954566685652061139609309257391500911635409358776726735495716620606497665502423135370138571559051919186913796137029044312748017967891910388379922582852862488269084359117594425120220697947718453125812613057583263174461938033859746206395944471008605295371157676304037279668242044297149517384392969711598744731681381210210608593041368722568629520124109989412151245334436910042456735776720123901281672711183028329174333346104167173623982095885410121754327071134849139333900868184118507635710361302273776747406438292127567860535409480743124670375008736632927553312398085339222779633769886231415022747360858117937576218142669713602447118227146069675439072701124547328744245138083985297992174283273663485718780113776290886932412984125162771561440144961698368266386922702225423510635610142232667325426838957413022478782657705568540713074909043196459606295170383526284633338122506827456781971724844576168161290844984399281691149399478983948487015748414328383652794448389147709985980330541651739424626075237239295662312220110000129435691386887637782869156075990307004858575910633150061792495091733083945356974899194633120491159113702181086867777351701498888697908624981504708772519826021486462140700041355241051429224534887975482832754863286198277938700984240591905967656431494296440586598855103683105956197797417783750604369527288829278124448245967118023335123424703484644123871249985712767838740302902333584690221296691902152299861030920388267786310559612928394491204917824286628907039497448805640897440027977869960422830098142278998954290296819781391748819854230395216017178928019539959302933107974457944910250101996975789891839845443287242092629283160882417522467299321077799045106456121730940160305045505997553008667779040932361868429100530638148551351991933720075621685549256077868772442288312701286964571407579609013661977327525597773934312957382984414858712960969922491689784132145627230464006646123235174324075386191806002231428256024259529232593800664891070139304136494255374887956168226972967243737147751505908298067909881238751514056628474144217919632613414375010778062567127501447977911697710109394086042836314065186286384403454935116866347468084500455080609441076610349630567200422173149767156895402618371648133735486549157666089345793252741001766396410700215528782813245098643980745480428064594708580546549567427295889158534377952941086509915862729861522096403254427202082688012776505317105142341863778381878184722400703226782777905276901605183011645970847814416130110755301149691144686312856526003031253112462125832825447832069540322960108504947435523401317657754952545035691003274322134687305837702988044139316088195114815597397672568924207540600014187582193585613101255984287177218632266997430461571115989857847313153778430044649853957524214428841256257378146846494691601915675222372978560813595031638509840774943390589932990327297206622370203546309193523423453928243797609160523759831251935141694715474168259720848621005922016760783186714690692572104714911280078850683059549757674213450547923193892183032659494988114451215821586574126299595939268141456733653785594768165858492758776633533941794337974161554823748904377630313731838224630122283353439343583522123792394637775186234850347938595869396971887530071600274891297976122728711102898261468412894728937765381511451702180897838522006088036720778355362012230110015169688636879946501074659774802610329654465630933699432177420642230249154151356878693202895289212441924020395077642696186251560501202065552442755640360476336678365125368261558149529648220728906994822922291018992496594612327025237970113071034747857955280724050537188341623540712536311769293495162369741666190828758104435504503411164479961099391638117628313795075638262728870858420490413582050783237332954856654667093642566590344863361159404482193640371632859705495680619378063434486037754568494471302613127612093903198953492429352817230803387639515377832326531953007690730225348395426706041310508649614088900209172442679671776866151944787743957634712551837349411903719896099354351890910723749460192046281618567388455332220245510619564396838035242821749901360873609547153020678376396657520793138635683092497302528570228924617375835814194637985165722096730500642340193814579653691263831226192275528392912465740725074746201653746802900339764799310331578786151419653888640607016613693351126628993152242989121029236320695279236007530541472541029893422723460310955082532557961371363986557899690817080948417796623345202865348859682681023709751159257851560278446953857027040348182604711309063054467444246894028384408173655544314661564892137467197674121852285861991790293503871903742695519942014337871861385026114153798179732111743029425370552153779313988851851153799364443916362569856035922992532371885140995983768178690673058258199109245804272850406878496765693127738542053660755026961026194963605047467478094400820524547287757645646052606815158930913955469080390645872737291870011517625419074112774212701967278074901323699608567695630440108877245108809520534310327294789996194321471889011499168073686331183362625062415271147722295331695618548565839252393463433169813583670457677357560011416270521079097746280061545063361607733292029975956685674725297194891541654969033282442909065798690989881008654252618778988976914401886133049221945602702842450359337172401099040011177002914882920071642816336173063242327390865211802759461768628824157840389799320397426145362998950558796613206776610952893484059193956745747400424687395158858396422595823506267190711603139403741063961617491183820304157655320329144071781498705973103222410140409251325402263204015077764520105710697994942322882355312607251117313257531874071705146641620894121900009886625793222089194867573842276966343868980268649408065237875381678329108285143792159451145186948434603974223456875828925028249793460570207532119584871559397450782546585566286410990927367198409837400341190488560671472134936553162247675709861964906951134716429870435523812881320654877790330399140674375659172653618320478340584789292163533601082631147470483881485322720021325628297352280607172216576738132652587220915148037226941904191289023591652969198135975745977602665814696089417260467930229513767424547724969879244859202961737372339110934318039299708080035539027392534721039212236016982978177261946301220205701392745496022184781419316781422175363465792319406940020888261609920017810089634900237174611352750071855559692122615782261717781082472087093145831829251521352829172759384077521435025111199299391132999357934124770640294378220388130950355669079994079291314816819060178161550306560958186939304849946488965672561433553125610288551858430794136802371526689486051908704884066124497351395923602712662499020170536232239562124056574732759337161043563331808854334433757274067404444357394357769227963566748341163246358544528491849102296518338453680067768187547722553532243062026313721198732781163185125048959118776440565877818633792307556557108560562547039419938087824813719935027481902609690056125407440110011283589783018533428000519100656460742617573492900108412218681666006842353558928499655931365701015893661911760049942084610691587201447190302831218937527896957534332956999087962715292575616706976187095086910930313408170345046868243496128565297538413613249599825676535550927910045339225786736321803734673498590229946178754624891415561836103549567875500731492623326720794584011876051656147525042521071486078269024685382083903503918163265167272144581538539202806027231378802323813970726058831743637428411075585330971410943864449238959820461359117256093512685439569635503121268783971118709266015560923296700330866804499830835670385896288201166456641303969264225631569818901872935605529205162390896417345913932042321971168299816473774625367917299304619032577536645433562491894004222846013322691277572280114378528759451526830625377924169772102261999394181792568268413534003064185321167652915720363614256542644229171106175455264356121246913683992322907067821971465865234980264114042617259505240113675073712504014292477193164476730166921038803838117316995099262360547560905337467904665339771486194638641926053931947489641876810672638759198161315555379701722952531043226621511096055504010424794057139483522035688531884129723767787035478092366757159330357957007274651727315952530722481347489618164498107142387468362614797234512281826239643133296281921429054502799171114530974127789051019864151120088513945206720952216814115310131840515879931516985823987584686297867302496533438471191164712924520699002733430024050200108191203160358308852207112753817412470731601656964601105386034371163711549091683073605693255375813366514258175014835147937046378799461663083182120041798515651083913794347942583637625335926036242066280921993210920999981999227611581082249789198140462284119017940517540612825584791126758068454445559688806878851070475028392755118710469478660592508401583134971672912727544340532474260325665102382880894749783234440287571888198134915456706823732843129651863097179465338045093760140790261820702636712727659343505405858792959014186504602830269115208654520266322126958456723773012427502267889447317462407701129020244666989646903145079228490974439709067543517898649185832806419780917460021284462840791341202743459258383845022086187176851752766909414183440789051906412412372743747480422618966129044811144870908497329596612467817172837440934359077843160333455806535996474691403828415698245722516659002149352581984238227331120691247411647819652568966444205240458984846195793919542455718273058149105675522348552209202975118197929405996136190838122875652269866656633361961820271881460957598342822756142347656436332720170858417886379837469445655643479731300769353901171336597933331249177063118143910626153023543103765977300378501088216904934735486080399758279889846483095494761094828565171830975755814310229711924621807443787174072412294651927569825567105465779913169102992462561677091405809377912474055589548917076673887203646880026676849833673031520445069191984461893354474683764582136621472323706843280430380842298039169052224029776559016678282468366351440295417810556794159623039757824696490595169878598375623439561071684633367965459274370766173961848228443002058045187406868791197648996266862102301631588778939870985839288399975508682397013947647850589438484347369848143775752993717640979968253328677146527776068636882240943075500555265264584708089586429136719911408147318469698130334963274320041469469357744462068198089124118375260677031381443984315311843661753319419033050695350438670606821703880598177232360891018319624207982085988214735710992653754501874663681987678173559578486490506919676414701898187937545467999838492506484299983268391514115227911378964661659082105117816096733004928061109358692842170648249293911147047089435347951577859273644184533559539772194933582429425362545459177231111745277372508065425607199361190584041005912063097873996736254053984498168989226028179882179978110343947496669427962573804537725212816719501472375028990900106967164325807670209538714407690488504264909348651875923173893821317581323369427244202661353161523862642453050369921619299059057394395494656550237585695430062782800370288952314209467077792336616658943832570688698465663980463468119777616312696525968508745497357929446395772233673567024363597072497619600945029300900557224241452829509293373268756170748837471280936239219983833241912494687626718761558107577868185426509982903192658684884114472605414504407642197841675388642572961554844432866657749161508752757345756803226018511572111410045895929076719537052739965460979440624025464014201199955912586907822414233426329807054525301830828505922352439248917974232634423401399049795158354725978183352894711456535949884155140321175510207341949780422047034790251844475439767640917668500572101507872179095774105491033250796802402728432523348685206031474934232740207472279186841691800368101149465349368751645378982672023283345525377368257009956129554185384204634965645849715437080683552952725550187579695429563013545269047405565844600643953542696961610057254022549956111764052931861486975084389201251153179106113346203107988707381495916366155303370990654568779298745883075270459667350539590646741984592986435036131290881108972670560584886443876517602080186666018092153973938043406238470657920708252080601945256931884965511307508289356158939598013112562412973956894365541960770178551061744379372808416797045074523281863085180345260198916756834743330073219194394455655114508395631229786614016647630328240388044144956511765009373009310971230780873650139479214635308312931215404106891733159028549504059061634667306415246841923729795396905476944727748533824892322650401900890152315393907420375892187285820251224684469329210609802890509449910883538631556244273328824389975744992974186784683438814723344328498440517783611834563110955166057534119069484264526301139700510244974113889879857756945323888298997146805078335783444425635948826485305517902619383204966818365084502534631191334027511076951107692899689752747499577847913230318453485586137910914242405541021924090872579088447852819149142738471818413067126362415014935170330275906151383041373192533801409868719571647310475881445127800684410172677368658720581793957983564016617831834733181582934062901111538544503006833049487318237812551852859455526870187367174673561835678362352678839137745086970672353895739580234544704740356127959499263130213578945491880939830264236844749916842283521250534054928931124265534918989439094023024461162470015075671260232816110088661937931239677745960807769594494675536939699789213585631441467991166825139552318750932687933678967239414527058255449388037067104001875054123074618047691723325179158224854658678091258809109998081427400965494919540954543189277660092887569061837154551603340936871802329671715156050954516406916954620958502665247783029842682605330902694923521643681493877198412752720722307609148085392784891884410810043753527561981668828027505807905497051327444639730059108994688136486926063879566205661974400901878957071356078221503801688757220729063819519328809990800229896087508724916314568930227249530236072640369830033533314166094402724468155240870866434533835401014145607047110478602953201510682689793018243567962144591108180997663082098747857698094820116424045551260308074199432628040309662761009725521608089147158474390446534431612873415056131841959353763437453874992800555998293509123982648930656494991595418886120396613618018217551490526463317784916146819443640490373116437296713380487326530643705204222013256510975849063572043828506910784326049606322195611545335062276270100742913494005560675715918874694384584426409498245746224750573379943463867345913367169271627284909348342699017661603623019343806248443259492926395633845537978164514306290694487275633763577430524205590859968480998848695394735293764912731317470905073147409369774731611453763805409169156282341221233417998560375366463777485035751159536795132427536082837338437941708289651587537483944016201773065268279222749742564334128788448819828965237866027625143250755883266935921355894652744644578467515070322694504931285950170105767642033892009117217626553646470342618927173963980530492251816915897960877061983387911479100390451498474613842971961227237928086395890265455792393007159529453665423690053791245029619847708473481728602222542688351576704223390965613763522766268812976236193129733396646878892031029499628949645631199706540822424950234774846401082325270687807420990764479229851955341052900307820328092768337753400810332683215362436822234131112648845615371228765014145455561626091449656379817862237649033376244235292827501489855561635346098011164514877835056548458311401333947219288638795976722848725483484764132965428763408545421612438920065513885939692600933749849929719289901506751698684934010487555017292697663076716440220574066454671059442741855475239256945542105539181939062946557912821464641859383193391355216687178125231965191354873451412036664594486853409450056655819333696188372407399725771858845604109103934015036056321638817625982563103911312134157348484059395451921525290116664882706197790838988289687928259574234079478347476662194942096214128487592947996677101579939014807252565501052317336419779040680108793868900405068775238143416174188516885204719360579555996625307952660580254066071673814166099474399309739795169613417827243021688484685802258019515793882297434871412438017321363684710141306426472735946869645474548797265547372676238205719866942249565716618169828556582342580245300523228341577866055607672450183637189886760507204753020418405074692594699525078870719273832817720799459445452816818048637326403281212169187309351627912735391658632105097574678583056573287164742184707023207664745782728844054571058707551346110897772607269473241905628571309207158469400396339479315769329091358586570932035014004427837303921549282086484215511041836237805459762670273238138910034719204087301533564652915884397683206275052005812979921071242000027352779358879047232199389646110448451278164651436093387172001564774542978003372121382524704961949542728955111435988745203800128868973247748220959244314028393906843567472371486723748163363807962572102911777116768117040480074284207881140627216996775396692295694975298729667541856694508583416765584516005475959543998634157751779211981383239771408710053449815101572256908431268271288286200528281236062990312509578597258283731330520767087082496620877283956321199588188944150601561508017644265058887305759994607522156940553588167040807603895211871674602256392891378722959892983142015196154105448601338001065995699255764553691293299964997167065223059668846428697836488146882627530876054361125527532770497164918053470274364172528888487100025899707005046532002006133109984001753130726755255485849187017833948685218626836607929264010006825464361141770081542730324036300981930222341567027754727762469845611277474296868981927087437421182655769766290309994205799226460108711695945123164299805802961668727325248912743679516295600137166356145992573185646116152901883677522169736387832499436743293069717909698444534332556324766554850741256568787816512721393114804551491351404630321288926177520409097264028516663024528143374990195123947891310077258081054402160593298030018067122143467219018561054609059249943717333239050573443749569676292180483646273274321548384239590588554132764941209363608410358119442161617018412703007938675938030192024266675667825353176272624027991861676041831176438342221881423474011470332038829614743657670180683593806660940649861335505424406718598923283722924533763045501083773376951039500254809986325107556265816337236160861013431682982778560322270589670211150563969137136100979513539287242475194763383315154024359644599642930021689570736462010370298282207805462175804956786004990045234974997761983194222463784928292280122711340125978881042332487058223711224415660176817387594061086487379141108987078386145316108190607550394411094265743863648198866329744022947803891569349854831405286652216767388856352928564360536740407940516081172725517875244947945895182736810779941893799267349516430192639226480143173850084991671196413698798460049192633520594948429412581936203659420899043974616125107763480603548304593980310873806101757801528570880014170560979098190443550911468939554879785371319044368232175331584331397760268950271581363725506372922257325361280257442143949730841084159113551901951469224770398803150177454017339389669325036130813564774187114527172481614124409069354171545143554747169507479510477479383763463109843095448268545082103271126333065954114074755926859255756855823175015744788923513773852740251286376455951085478499678445634466814540691630339015723862133664161423813237844748165892492717329667313838044417219132352435251395348890785852001215426582526386161764145331012791285922376978255702731184384407736716563815372856299116323204959520155916578435740826385799100403129221049650019915573328258139033036914794208174970159403635215056913703215693571401540966405748445537245937339875576420753620293130556992331850676523476586042405245480647843809936020424212511642504297998062430759778404621430038968630650014866147797545861645340680609609929351604049368002443230449615242300310276823168759838415001122042373287139194163137827052791064165495897545105963816788616904425134959830849805115566348043242772899983312150028019655270994267587592467267539681281671184868689146501044820786930272854537920319387868813371679786589742207000725447371095013700466063896152953370528356817546145618141527736177952616442949078721203082047732036982985108475375032570942577228331720041913633337179148216970918590886230848625326383171229026661707388863632534524863742238231381867887814883530989822106013079346114535064335392715597534455226566195946713436307212494666991809519606309919679837141256666277957751827188000705011133845625537222313319455030658304623101463072273070919447672934800021663040879257272862892291131655747036409307672404603890484679924704547502207271160008444198240790801857002244210975388569855061534785996929884676086135081344183229254021267322450286677518461522362243761028453337115824297951732836987099664664767958021472134078091364164170929668851808585955193821485278932473816701107813890030181694388915901034714350027701794332151353542994293106524386880085378010252100290000719752596824302332091773390546327102865871768410185751716591234874574618249303604643623491825527292721435915950917030062880738223976421643781023599573984505107857310956241615436391072469175601004622224469701476413876728037302524250926025298226436263628167275976791689850299092193565245090409099917785828729933908229894813759108444589973434194223823317747335780431623293100546986875380769924899264072874614784400745216766680364047809540739186974117580447440872008144742401268715041619130881749092416693817030632413372899299851093219723505472240258208082178836501020538926455338785758560948879624666158264343990712396844515205670522095573982860439647958360830964677005546989670006718631475969914684954048937056513938787284361070983237518570342869629185039993512462650140812563961137542090893891043624271998856476162817303895063285949802120904010437797625487282011939413717208645137231420780931271824844957859617316369111898101731884330199652390005932642227912345977853233714723368862750618982508039478720331401065212638247844451489660135113692471486868485457107333995095597358621427400694595162755880917570919491662049740555467173192031312005543196176605058663610562892438008573173359170727142434601759578191136984998313699167501327917213518518150741859083964856342444045955830373501087010044094817070709906708041108857840196538491676057041155675665970477030092647090455806786467320584294986714415112642590369175975090216415770001009436194619751072727362728552782514174490698674371521982076211598816115767157317926611131449222685650928192054155658845911124992433829439260483731371495934552269899343399205289966419787725137334381486606876962451752711047302210272979661973742975066379445426258807772077046466731413856127362521635117411622569605733841564106103468205655644364076048899960059359327440617861722337690588194076839280530278738822706805528959494346290615146245667667348560144486017987958663333393192625098657976497332515168177178222796608913812408331641313650687126992391503495543024364742638632033511086173587039232731994287853632137865536574053609250822169116274794555157520504210288513298469636726911606391146383279917843208744836433705632713059432934431372844971815383886698018522410709650026897653443220794750089130759710307234603286858038067407951897853810688449031048214424017489937051931604461510622925246536773926861722063276196888416417140920500183943212898382117497808189420856172604044475969170417425809546837100741741302635919879937389330350019384529425247223162674223665718377394643197240367555772146416847468702634948576058459204103225657390376247253919333781719616298790647770389355621141399143755983289219816133769354251069014415728732603755574925888176714926279022627363084114100009902087890358331854038621581819762429704405045719419838128480668778966724845215710816779092358456023532076864654013088195528569664207515240984436535734803347909731442051211996584519536980915913716025250174486584112359783527509517406654200445819950350413540223685527208779689448082706780256488788746044742809520691836914718152687991076818876129262087191876477962685520339659384217553121917851039449784135712095592412245512123580207214700215735429750146981315036714713418245725729577970169866821489038288196451187037932911662103434990576786133245054459338015334133895021930654458712813848705275076430569042570251380657178967065771617400324213378909759030322065299262379947147334818584535452696540487036293489914902034061647894528556968266709180476815716931806380547015607745781739710032238986882772315879511926152790876349461767903053206355126644623416183190666324466637429297136024950520853129562725724876715739336367354617456994576632621757516692316096960031213302220692268660567720624078230995103472898287102667159575601071524403953109919155663197549876286329507412286724699738044492972186053067822906229760351178854621223850788814440000711138306384084095673269591709338986664640892265895928796577830207118987041758308462351855363476896095412414684194229777787699717604610296258130166407012994081350069524714833026975557346472445134745415675556136600643872311511965972663944074444296971198241265088915525193164840425956332075213137470568052610338849657552817220100330362164424337149232189074887767045295983449471766296189901141922082016390696988655482373323371101506253915940403594393888832741524194436499361589080692443962142835657199820223687655917560478019716887564100608468757915272466448527419516462219963522988205822463417384269557785237472947501155884850906386431097905014936092777084954231362051046666852012884281979512421064674315495968165273928691023272523293814243088863314754745063370875544872468467100032554720575792692043733010116177752944596738933653355302385053289768841691800540068152941631987783480360967143492915062749532932514423720136938578017414296177633971241946771373080839825654663049690097393760287120568084635560361465966271097147286357306916850112139326010037533855671048391925155682766673234095625098088658083895761554541034777441404334459266192727017765773187438950574204235355512103229281725964079330205744296634629111099147802021657212612712864803347226266523953361457753021829390098693844398335245794789758567676574701862025942969972485422997581783617845537373314529028706515152238160434723215446456343933589189242887671220334897747598852587007972451292763270255796488901715140971947511300093821316455670531785594627902197005664795445338059711990571922443939325572761841011639172323697334678225142050454384424542190305251131584628312006939227460159627899534097865157172906929038344685814791617465241458533956315965114616210116686158640177180821221294069382068474338865386102737392500611013680069863172726620491312557744380462717431802851587133028113947883884419092446387227191341163440827395831661783872599521981225008887585848365792220018433229269830992816804290151889824677966672595948075222005059475115215011551896607437456926585674388794808794961779499415847994981308734500500694213874007254535508931483933733839981615424412616133136241287712610793686371809684210739748260719041252058017132403495566273688353092503489378107631585723077414026022094796332537979881874443376332525508924109979293008209044265360876295197598556822090174048194925972633752966159681987453754363901858244727136837409259765817670579568344687216210303483202428270081018571869452076864166242404211440625337487380871968214539501918759518377784938905100374658940963009372706547115221876149108704551766585600853440637869763324803656380256395868833510459685210863056286124739414004205399989872614649071139128073249085838942996032536751794327346243515522680826936969820786033557352571097532910064220814971808777216961911584303363122961180086752971961223419075395713312494066179759840173688289578006946214391382486890374613650686637316269169227471633532502582375673238435807301438818313575320045309309754757435674030416301548132733302541435329838952640336668124425620613630047137948621841853497620900053773680521867678189057106246583753802447183287252238942841656199700069446585268157989060368592828868807010735093543769317198088200142269645701187810303387732168659310689957425579508954690139316490379490906695680968986748842149357845681644127394017773527283946461140777226856957231116888273777683852110972502912092962987643764300989528350531880786234617399246557225125171046951583565019939366437385697609730216414954618254956479817778286911791429984503103386284953404196682658142019830339668709736967632993390037476787212334626495387915591689356236933424958332125238520468870426301772539781756390484445314169319080342843675061207800632650358977278957672020562645019727522243134569145661254632672283572045751652641129960457587453043987245278920313050133539028696018066406193637240790254596828017106746541383394770651485758239134317161684117532611962377153703824489097636825834209243684090141785919046427320877819434513478296402136809414892400529648781061442324693362103423423820867795758638733599106111527319782136792567930192726240327808843920770883991288169782109235325372099717667565217889721955367454630402266612880612547970866039925945378906731115174037151405106582618704096187201120568056585312230160075300208123903725249186665331867772768295298325136870438740855253209771653650559110269678512284484972312807043750325213360404978486856083346346213059396623133723864389678054726117540791139833830990172007316569201843190558250722372704331283568173686560517323902573554710845890681626259530836833136761091008886561569261926466808099183103920372613233980124203760537711770831264516090148927606488740344240217814663803291322845776811656806589415700078660777897191564516867802846506768830225970398451491517717423195816774619150750808796839089867265396178178307240530691406040040548203872143697027236437827596943093451429685528995204630336543339460288904710791630799184542844024184309195871398560467372559626080577830211092558842323928835445429746395057396575570359709686468549999307522542775131441694008181163888023062385513100125742574305269351600264016425249141764895339366189861008537591636911785438922008291961609469165921647131400290445252051761131735818919349194352953186668642131673610075447157315535490521975598944816097180170040616877219099247908728840799012335292938441152695344296559795818967513376848572325292033924515507227856870290321153577837068482805668598576849132643102098274207511463225963775148532671355918477819818771184738232936239491583770292629579321856878803571600967315517693086865771630283101381263658026387323010008877298856710794854973590247078018556640592760423364549314400307156954230096077287483733412166076170485232917166360068542757652453051715941799421764405562617909032750267688331140658979580018655373581458756169414380774295247487951415559721962645375718031356747484510491751251347743326909273319378233566087203614068712887860584633588069055512448342565455732995977195474643389073101996653684603459263683471649575620994687526201774523777239861430622953224569931153526162515558616116451679689052063519805546144898697987822774835301484365081422861106031073571215995152064085927683386214111243763945363679704870202873645665903221489338336259888911902590438861063202465786677525158929896341450087439597688686246945983799850986263273587502611737391160393451140871908336061801590109523090863684784463394657437539018683982276554562138031444206283784548671401633798074805837238421159390564708132422115762600444704766607738622783692749729876276148207209136002636656846294998913748037234006337071237807177255227469861595813208244774676373545374420159755775195909332405179288472917599981171662345244428906987172472562904201599828721506425997365154963838698268120474775596703563930195384832084171250032720306461922520652277896379224887057057233901113743658651448140683545278762045743820864584187622128580926540987693805408266680516214032469835043900417048962490502700682917451283632331535233269283372422596032326864647075772306833951896496679010472561669908861092050912184941211505941644020999967542405656138757627148437415468873064475350900117980013357481499797191394748691907980830190295917973805416610454646661336597824114666658324094702980168649716048090974447367878659113382835094977882749237370732872984600148066841788434165094405995376487933246358307490997384907622691733619207750512744583891717153837945875636734885800410721633750295211825161373853084939379416885825690000552222303430750543998133760898091925698209852067367146574313505629949528604268124271261277408055689449968778863367735693620840358092189314885672495877336786824847914644117385534418441615902185203435084456284261796148133474479452079158114378962414359220643030602464398355366338005236182714214567992146041506718333426590678420588380758410631027619571244252743670597663596571491977628207879749498945851302204689555204344121076449803050010772351783144184357172788611008452196578965267508217330560696701935353004321795356938880254935059577421388183821420590648209019261912600062254315694596652141647660123802962695743487403487024463344609853209712877787296847663823834082712085668290915463772905695547282460368899796102101090453505662305858595298486539523557343187508322920918556864472923276760879074276417813310146914735520909347533596788493482640998947301171678483382430701692639263952486178783912961637993197435715299237399534279260585565524735339622586374814254986990433683192128843326610320323800482398668032248431853942396944143360619799813095729936556244374415567201229009357085171731858170032637846042764985345132264519542351697018207162514386862995148147071961211258710318410572249044563164426555173470988649980844101611894875833379498953384413586957029586724220579539430877765155312866269025453421254107157615411022243015181300908880043863424444149074350239964065619137607020981120855303916624131345546844340967449731690622731970221005403296559618825047248270895264315458434982468104959266008272774891144912339243382817192729829959703095392975051219159999961391457845680843234669405004280141461212374838391827780650716839755409031218971856057541933765908309497978113852705270252631921363079157774726777966135481128577466536406412893022692046307536207889002600003063580064989941880614898555597604022317149008086734578912281207200965474357255108617881644867930322594862721054850055261067363605185636952764689966107486259291388086281305381411014529133952528792479968210127237057550156962288870912474988537369629427901083664000108648021351224902406397775675680558063372308857772414379059886450173893833236818182767435711802908381102734521538737875653301657966016012855575611564549438810801342329127387882117846049462648799633532246074432375918527627427521957341535952043992439551425940850752899157037055077588323141303137391756440729117283727728535759829253371707969729515285543527400280260676522198460428678983482783723511637944473698549673035276883645697866894275107268013261547548698705207697655392441565488876763589572686894165687611415827526930660499721833406342979228054121403510436459876304246689915733776764241601530801274223772121559184107679748180403628817912754412824409136877425794585690524952198713549105651837849592110817552348885617801905070928153732340910624646602479014217423017136629342199132458782083941215746078511762107676197847035456369197431039192361061794846151865932736444916628742141228525629368951170299559544104144131272801665685290917565262673954973227199543100229010521858300297938298295956435007985695710080055540856825409460261355890080462931718755590817163856949684668232466663592579143323213118884264591844188332771325384626124647079523078859153700733424217184177429296736355706581407276305864629328838214685164400372575907370661696003447657093887444913227736318236703508692213539265896374026795428391034095970195705048319961201499838753829518346824221034276196767850759794011974590171242825128510234436055781112294384269233583405947142995834482898147510764672801943958468250638859330145152624073724079334975037819753073059612018660021056970049022779987045278292199830663532825750046711665940903193758496817894439386497410554197861124217025908583590808144243786651375802758680724459594928119320885496577826636468276504145307854058039827134601247596858103015598748993189809330652091085896262828389367554890633530845170352347198729746453512862148389835440647873775371182782238115167441214458771292566044686718437547734588293549331898328156090572952793283134973884747523242884751880178153016492737464710483349245119259373838613217241902088977482327129531131076410282397254057763219365943436226374683839006209591924609467713103386331917130202332800808830131856035898572663493948596415440641553689789331951665728965197644278112815791896172185425700627958876560339725655411421078817526884054824883776249207409005944246366119206104350626479672805624500163692509912792639008493757229202228597153817099716785068578879736908018132789216285889132912127429725437976137133787901307746390805004317841024818993164734369190958717086058416669145068788029202743751412460354619916031646777043841191764086193475049415275962867754391003775801571997957571256891804925623040000819951609739634665572339293558479110892916529498025813372230697265336280919981287697672047470812485031015527681776067333674374247437481100638356527278527778771688000987562239428365760253427440870418540355036387874002515232145990284584665943366398561378604734331078624065513617418833944460454161563531721514541770669390535804528067601134251136089161239700348338795052126354322159821574104988344753569086943639289176453148374311259380112948446865179677948102535199707766256912363708771569138614548420907521519811980804641724828566506622672665823846218497038747752825308652341190132557255924703080000562779573836591188618362533665922134963461516689791394451872200411663332449741057255363261236794303799611242477143591898862927098596165928873205003840807120103521764665758220671751185263702576383145813575281816817433736017640102288277971469829789401135067135708067238663372901490369147902858411503903188970995673914578684116555699074163870815820455891358851192565484786990913513908020507964042817108802354964636679313169881445487841030004520768029515379169418214840720850602555307435998825541206666013561313165399485016329532308842718781691155211980934670997943446188927456231249461185099557823500816074872235831187301993086621343947993154226363321290741023978953906213001292881814504619451076573832623923364372439074961280214399852694045490421435248007452013603235545132045718297735958518272175997172744502145673204061539585771684080389146400692249061957197359602855119236747927204675274201217864741252170660056247508852482593033991525302742110456820327624330417732811707557392992488245401180778967646972443727663292621803864055869449888374128108115802665406045475675483865177024444012012176104377007511817562294216834286574001084983967453897155056283720369486158886545299333974266066750547606391261524775615315955673047150221374511261490994787865654743587400219562372838759236438629384430311337153203714731744280445864371832429712955308457928617474284332981548624616773143598193775368746931803149579146371463555887082260033979839830377786534799933575538029023490294813843586978473958329272690974600827422291321814317973783504803218590656380050158123265180638836702340773637221586584899315072023763185766475408435528681065486358471554849880985705854996633721055672741010849213775141897273154840728586565472139709582509555140836671726354031711926632668495948562696706676751710890511676295916065427561772497206084942378879289189766714545173232349087070049018550348823790379444383482714217683315117391719032031885222991338502690157447562107203348182749933365862170736045008541901086956392662742137928156534163563062011547628251124244448943257976168379554745944346607955359583158833610156983055846028181469474642032023332514213523985442658794917295429659561107922797294013998883150168990878854010952989804062551370871023484905999766135896486502960010997925329583594774258186982545928911655521993701941234748301897497699318023332958458479222587001932606436882828541506309608795979809384021488442946632476210683177331137514956986766629899476619281175777712335548071324844906334401121512947220983756218886558527483019595216437020016740161906498337507747702647175535575103593781646529376292933168884796899258452864218903438610468340508757636288832650218005786941080456376849605741431079235456976936700164582036270972530898965683627057208902584724417962555331916460489596349390368770053648684848530234925156422057149777128745423965090516267020734936823515444456600162465577535508593392738938345629445028975275807310354412144604114129191582068420966504034788113721182308218685277312511750866169664251466447037065421853775944651852450004602030351414079106778499825691643206224032715444160864684010674286551174505217743832624419434260597504350321021287935227472347757935793617631315981569528700530018897294014218874816526426753198393362725621597284468323975560782951989979417522817182250466692831784963019204678315557190719035941613897360648582193558688614806450317776725628767183125755512484789788893867059709069228118626772999369194164927727303862918570377580464986164583538692099679710361327985879433175485198221125283435470113736149625110364838880310228696939615121113516356848436625038465363662589920192221109638478842862114337900064793023637693776654044567467156026495466462705624590347309735763538667173587766579985747779552330131388359369884755815645270468315432629630580963448647291233716703923068046928153663590728962852885968358349236921593808282984101622379008804477051042156475044312189641509572138194252924551091053526261262980207220139678358301317939473352041233645155445112937432958205315155912552283029376167005803408582362802447127298341606347089387666179270544028036591509846862227913125401501686982183054586297596968340542976674598718831040582253864295025389652819403308766889536964687510414956264116312428877082362505890641545778813985854751914029369272759958355528346350380509480437705225671808117491906624855709141046361006373385596537484914232236637482193494946991516249041635961495272609049566725534571784503238534281717510633247557787723255851992163007109587512921958532315093394376482161928918526737178059389907159021872891593375886132321423354074735367949777075713228021293767110363212324175262449303610337189399352511112645215781689074524419139074621966150106675434120164108356759106910324475777908246696044241416584071255963945876449628128934590827130479382596362244655832366587134506985050664704039054537155838173519052618165532943273810604524357560809972060443054019091225749192901312885524969817289031135479573877250710707623114218853102866375528934529490920325064250821574730881115665059647282038063864957195102606777657025537091387899809621050283342540855759196434845601880381170424469800009864895338877312135199721939787507906968380979123438146365897839179459723931463368682990990499245814992436522496520457993005496681684166633753845344225527317217783037918466623456214539948993008952347076806872289519590639084290255088999284080196866768283895296003957024338521769203590492967897890718027205888695787414355893160632982620189831607103513274784612419745337369139467425319682440490312440252987394645509514126644801607313917962038106160371826795513607130166405422938535209868453181746556448686175790687991081801725065213268042493340976816284098332696644446296262605942839813038324859460039386434365326529930558304449639152271588909616983708818253978527801906926498144746058460849052974338584371264091835924529566161290383519318749883603393701839481977150341931322182369387429034207467937641512645024179100359467139559905125378161521634922299175869004303666254538062881849615381216871864420392379160908702708390941627470018371727706324639939514255744081696296125351278722963944554380550063789046252196240226214814850985506339202502438019194423257362564911293432808992779710140733090029617516782705725051013935201147583478409151256894651717354178662547972048466490272453540070161577832716523290427407184110770448665485169935631139493716666321268300485089676151451985806542955801377758623107468560327204820735957070588809824214843088464142737716002292984401083032343978689874956437390258565434340842934150214286430417551060355961004390148876063425932609745363725899509883190398649178206460813114938400367346609812461843899981090273183964984585103267399232853781915474860228121962851730226627484559105237557828682876833691199974742701589969988161714970966959239684048897525660213414991810368221130459166641331639194788437711283487115941089291206337449063731782418708684100505195943385990875643838815581185060417841762336638526220842649818728365059935086452981619359830207486268907547837695570062066052105897261263301482339659395225261354808809567271195011957368733180852514052617224554897648874531577504145708754354218417983595430141467447725154331885867697768310357360030762425939775026761622491180480436939397798862573846018952693731503922048521275161793555054894924584131460029725269316673576017308044591813598374951591643735269327977815288759741358328169180025933978630144870804345852465833110104912136459605673668634593890716314271008844496139279014700638184753910700306307503998026388347759473285553252387621343947801161056765441459344134816850029843994412042018792926639095526519927405769371667898604332465826871159686118081641984911402741090581091570230702722514522976932029216163629514288784278946697918816321777318212804974750062294449845917878118657226658521130364919491417773849260615173545639121948015504082637661771085832597646410461180733271309330023400135498526730489687903084983897744848109658741401576380650283053851807062077254814411333504468943351377169058470194531745814436415035297622342662203067761111534619746567332859936271868269294715495476723646733948147608655922286387219635666699290466126150685998492303942469023131521200756592448016985434315230826511287443751872603893807310432569000227324208417350098726312890999966163791796633691627172513077353379858896496334401777648549591146166153458003533846093204160130650256511465330667979918432909780502759230064230830159236818980032998343863981558060721960394507877392813408193107991660639974139993939898724564704579519885127324353618020190852903012061046531318890617093880512470044718425556397184047888471616077661583996304808074576339477605156256654355915444922351071436947603906654116572936234658784186443562435827780925607840250041131564327574038066295194412446863987045110233598600802042240574449913482341946066567145639707439407837765634231001776970053298248073072861699902898713150405144425166201608931805465627804823729526226420850264742214776178693165783336647314323203931747959987367276519303705449890378525374999567449627792653154540407175212417228837783995197212088284351679320366236452661764972844766405319645407512891236524149027801502857001341232324114172544253884749787190157420154408746318307533367683057153974205027861165117311358636467092417554811847303200942164970168293498580115232104758663841191884048977085500908907158943925591151115208978257292985794110152278713565804387778212762870018833815227363773697938215444551162765244362722030420382438444615215274140911155144428361422841047517514070712808157348461513047175660886507586803984460281860313464526343962441261309579675916984380251017252796749882805885239924787456691778387489068790419543513497503645981177008232869403870932696979630582458923457869259142136858525768452960552422670496456816369007741810924643006093581694259010385862806717877339761868386490989433803989286055731058212896422964596172518343986025515676439414105220573873859213117014053116653302408568232675671970503169716760880807947413539887365588819229024550602757614342496605482494837567837273603101404974050426636178188386086022851203681556378818069762808825226903315631379356500413189429373676415483879514090290114190046424008432873994952797530847028119960834588285026141159329485329909177625757184019804947067728186127948600681555643679960128039743431835838774733430969531661954839643139391288179180140791894436867887483972182146321356334739472956634400067082657812653941908401009352599849885662009299037189116562615421566136853113849309578338597842559531565813851382667930641967975240341387859087801796551756744518915635602199953836263158875809972708721237055774465488737583298304829029025370702320851525146454548691119394746944866874163994061064591092050809633228104682183553512976407766274488080172000871882041262468771832647295157007878419890691322884105717227965766004181323342283309113241668991917815505835155453443758487255335238410631260470015894966607095421409256398356797537890271587428003884021872015022649831538837585075412233878663782548533732879381599139761479215325183124431949257525093988909780692583261260704052773527174914340929507732746083895586284138420284990276593985389861491854861693740194595307659012632473290050458105959627841194726106400549821573645876055171219581581909164134980088010862202783101967343562879883990982886068722494603980541070976222541796362879588045346476641613161484384277776252607462072884196235887994276911855724128570534961243779361979677903381495884153292742765893879107195094118262317365676854492624066820179571442196624035626677303160654438898594284086265278346461257118250328981922793964546605520049560018108302000959746725980949406270582742092351465808830672754811620431659564327430721194090282154203318092247227932696354180623805981260267046308464599792117056155739758141760095795684681746996090013390074054228889163406224775055948017412237747918221273735584529851322964508154461127385136033748338469107109718006370783321566256313178249700508692081728848571480577574546694583621805424341060786752317941113415098791323563231431441037187733613786749596419387132887291774019430161472755004587451790413219231845914010554851939842103708449698838036840284699441670490474373418989850652694987790387311742598585814037263921549217629607659991840233902224362273243406652842247333924733797873572447348103796599282387879353374410717373567382505607509364026881557275380636356686866591453751064980206118227990747041628641654155648614709963497486280070713873274444477607138475282954390831181723834162629194279136995876607406589649253515970533013177797712894351551901949324389649517846761648930291952532052122000492910786568216906096791007730877360410761683640436637624757418859039289624881212548873733333233875984221556173857937836461821209040458818793188730756929534010248988585170691942456513432277155222304602491334696964814373158594470768188763772486554152804338279381753759286294370097527834735600734396178904555767685660080945886768501864348026165552604308656679189648918593849581177970556989770941316900672194796771698352193259182755508374051347500901292235184330910656287354255239235305708283149552489296640884571083022687356326458795801749719929804413940533155655124350993680360724172274926793118888731056067063689077032345310722446177591104274346949038315671062104305197435009251825949438757317539616438739003590801009848377284623555306104746084837523379351324939680334699689785697621581236985036100331349481974802271251871368380939547779833703050121471769509576160514040439932657102326604981060440015141830866141756807861761003645056116414249584997511194416690329859205534102726821803996149622108123709115579656987106661659096204158896942461887676595446104877790009241405148795798438426302385134062406553308518485665128243420665984197554482881269377782200601226458007337747423089059589670505294972438671923613440204186553662257091185336439028777379556552071559236362640816563118522976042210692292413339718099879078466053895011185944596185446255584397646302486754792412770123992455623482469912322637835836019927148456024798219713957493312402133622186829479714493704539816306223980165172521914645539950610361223848425770570202906656143956406676552079781751172587919725699475268081356868894158631617668154731365065380304991071687092572900239938050409253388315651579752028775660795214488337577107793435974692301593672917766909669704761536551885294225047001698649018025767674656718624151756611603711499910367494188246447462712348675270019688524395889820361669320977746164418368610481516117380921209972220544466341134480299335003185848323975982627739011759169034929615433993833559591022762384001380960748105793392500750674134705254888784322871193898558527037955425579056615406007030875325783551712813503137562558967949262913832299769306512272066503066003792493330726178755340812463981252540545203516390733962046380624361791441614579986059962826514673426298977275279100914641268614874732604042166775111038074197937780517943996592881445264971130477669991901523557929489684320899872251401045220661494278270521266059706745513064741592727486147405505005903261454625742978465772059185452303688667029387504565199579908800803145926014187615751699917253295811760241305544154130801203020379331860334871841483946171000968360734333826602954125272549248800826349885405784998238894383341043078255319987871017129814725184206866558715632746010089236605269002393327957983616703761301501453674690193937723709716078719266559180461721824953105239493576904735410821939647736498126142862604760476616419658289071608513047429856190601346918695328909428637565687475923441147264752148502321197053366212455311863369974321835541083691189753366277130882610820261679312113979611191555379900577647776013883147254576378348990727730525837831196050635204667622809800241831142729474901269636621387714959514960871816286406691085146175572775181612211903488040829651643103272594072319541528996435943070149850317747817445717545998076895109783307720226645377376673277668170517947042945960748881472758104692226636421169910153572642899434736424980500124974290345849376406642456458433909923638726112024291509278812835446485888712072745735040214694238459558133569300288461664797999277671096399021104208526172799270620939529778749647838975586434864887365675090636649713080610335000507186460800828137307345934218510491118626752017788347916160282107311442708220734694929502114132927540273706917184264113242597764294122408492479352188483706241658332747543664726344488983812318230561495928495569106901183597530329000449118843659410083921536687953218930910583140295339127901740923219234749183063306330896104139384644133632584404987432871463891952302021605296831093093355920691764138796132606042345855500461955439530784293808488691536377642071334247004891127957576071101300104432060110728534123784739795935306038542044493125337460626189406664945274099547195581977392941819815320035275936525849924149875563097709911069128646164332107183014034106598567724582352634043703297146511580469036638390515748563201852886158118937628977549393966118762501770475042507291205219634166311637869466031616797735528965994085816029676484256164908150903165261230843924441828318789387812274960088683095987996195853930491054423714051216981647990621800927755968950568314012999075985605681953652459196211726609391159973705144833682837688433987798265252323700774378381116684297098285167250217185474762045913105976207212175432973775849367563106361410992893623708431084906389540942446077976442931023871668302531311308576428976706213442374924654778671803538108854638553787775489906561985636988015593257323086686143281172258199311927692931766799757296195678814492202909160092321802253455096740360888197403607837608261440855217315584538519019998272691231378006694448487059975948415652633459439960536260735046378961296179323339517504033343213858028571331513476169398579079460374684053430637424145140532359452828955938557046814234269322517532613151232782336721550957114067358347447227503349000929016436965767082382346912363736788568269080325015987259984640168897693351377535953473063719362341542352757513207823479856405616606700909577852817475478525543654159267324719579011035511805292469291611499197624499626519330775743913105997679774652216316790333993537133372169176707982174133111935124026625859703848147876828027482349092395353715232377405592884809327854496392107656212918757567220509133326839515986887220217312117271025333334973709854845323063493496501418802420426775784601971606490990140588307417790535483878411884369318865073179152618112243055428382678838917472368147797149098326157214331692894233892910814997910739814571111389022415675038259269446850980637555387308608869090095135073272132632411673874132304532489582360589527754483441730701610851572771999234424513299705090067325281200700474492657421221699180811896791529676696787434768354408855528392632687462252799132894932583652672058644674251396355064974010597321456136810657581853904491020843865262982739473512530740414323108956019281048636833283577386268411298984337107640831623238878926804348528566122266442352304565633622022314872289822099040155050296085818018532613837058597263027787494596250953894180729734698582360460664259294015757128470680803225289546816648272806807229076541599861528021835420892250336771108797233978922026876385141911866119327897058240981240936034043915379362297796559683141508502983793410707701753972703144946929372828980990966559798900256567576966954951696024154901620558310320866002478235654686809947853765062360123230902545592175260481931879151540396190840495770968851800109932777137349120773365601611370705555757180148446568200097314930656768505712675462723322765858880490454563197737451409945128638559701173380203709482186981563332977508043414414936900107817093464474207794952912600765754104392339317884329333071476131271776359074689317002258280078486369436803186272791560846896001445377579031871564391627279809482098079166454000852239542029904670611319757553529419184400966555720858402539788013947508474456279187934017182171073839053537957093529079571779475406005191161197877774473405215306460065829809338389455428421129329010908409160624036796517183979955455480378390063537167785672168642957063805524146000553190080673811279306963365845163301306829473443694387868282963008997560307137023680221820759709596055659428973180463551500230100405973135009950988255816349591623153486127896597397121135762707299271179610584594319253630602496504925195415933970943774623663941409032916190337847641276006079928824877583334730747537822247994473418250915443895285650937356773400124039108919289545918623078878529930209640244927598806232876833025375802296126343636512258609455492176103171328089817107034599429450374496352351793286505095916765957408592386736114199949194952742044432357152566347337729639637002477323557529712075587587465578272477584279138374466772635639712676744831733160483851939006048143636371402359355803996591782898414179018813422416242737025948344153758801878259428389118874683116582829220271786464094348221879311697359670671692965096334742759178308894048227870597910833384513172758895269296118042535906932046804762922372130630823085134090045310522752335779078880865203166772631638976233022307172235935658846738076755767800846230037654629323443742906488102612942622727482193560200245268985266163192140213080709305768444714756859242928262555299215939608333139848432438676573278301545252192134196999636534856962743986373752841015629751350467430528307619812853616310417654169058750019875779563354096944686483082105088843417986340412950858284715356636098025506959256790960683537544999190798552166044714159258834227983428092589762578581921488786716863759078547480896333612515697895524090936801745576600307028229455186772424620553117418589301871713632440418402500699749661364526735304766244294644112265550702814975995809417824265382765776547169801179716585724839675985512523408849837627458915540469378231056724878944391277771706748042117695105208360984988870852022720489888425659025664894416233650132684908757247640345255392188505674290153039652601982711663042813166856106808228965150895289374940046371272271750749036179975217400429500238268801323761479762751143970920983654867568986857812442191091379162492955300388128334313941825972916177701758443479039129931571084549566152272805926074693812133591895826445041718270153785527926929527811552305621510235593979207383073041086551404571579979871916627920262455111289779351384755759045999876718539133810128853752946516273971838868063682664610807385356584031602897256219885685445717081456867613606376770524879562925781615209211918992440546961661702413112096871736938484926561762519408543995265234937946201361155745084050420619349345547440189158107023132698173224061709595763375565129066561242540076324909661605391627838657076918329941133561521060699126579615731401988150401888114681194582517382596448018215886120567337411660902666861818802835690766808270995912356221130754471664107943822310667234714727453372995314492263672911271811917534956391911613678710909790607852370322112873348399499247826057327123209567594016948331886438060676796131178486133314412860758560331984328563924383319837011154502745498058601162206181161507293341799487812688353084774694591611537663406037105230758750821494834492706282226182863949703453402715232528451678682414831763122240895017330598463289462171998299395828349832811982154762775522841592142948843590407956034740225372666707729565091425820481676178396338018429129868466008692744340042703015803391767787157019956621381798545294117609126754786008731382072953286249293216888358871153127249363336139236589831970954883728635342682617114930778745658812266530607671885442376523901075202425961830024219633589573825304065325509236110216935439717114289034286923265658914412122370996271644435103436861006742333931071481172291782294547776887648184436810201925718701219112780532541113268617279618658427693530599241423876436983883964934470435907709421711355571758516733160454308575761278440592188043244554739700759722539526210145048049367484658046147402642757893091633454245138320402604191540339263587890845166999557303596055783168687325712644210479061102423284006861516768273500848639082342931864232656640013808548924579398115229526758611799384399157682943654744059412713721711234777235428742524013754132848974720435272680563843233172701961246822381942265461132433545324583583885092472799564347395173205427109642090290232816974655560487353186685088212023822581138016749676073645673442854722996932983157085601418475311854880909398691519729904309620960662352474290196342191823332941948724356923799397405297785618599823074494629002352151161870410840594082694072802465753599883485051420429203195269857438444450696170559054550386293415989752094365198765948739628733190337554491307123232392900181881328629960013032796667837915176332227047516232314880202002374709193239921157287457618503329432722015418311001706575718717484243497672367087749427665904546568075314126282571623377499455961720739268264366725953047563739756704816505283303962534083843165495475313311000723588875913106539996125854274497939330181587939564530602698562538685685284223908931055180165963124137997040876651624485144402075253339999162302967113347815029973713537840443892521686095465906131670642647209586411296951048316694871754152720137510465948144659237729672660658998924352368819652585644416954363890541770840354417017861847458507516910387285057576833018899167444927081702793403638494599549238566736222925136872610539058016096873260340718251945158325566169738643576603016874463162170271473256790864945246636744024430112401246676261517152633910884405773554717653064105379213108531330566570845436194894248680048293004716508909504069560492441668147179501985062894797039173876078041098111373987502342839485868178843730879269625340269871050449866460141014315435128395723042670158563567589122489938718349347407790691978871606006745354242130524179323928739360455845974398572622141068308802136289782141609694385271798472625156092621364324639790572671042816621775667441714847337638120097157265375616182783502390571351039274010476678261146424222652616558571185009850700839935730869264502242171164279822332925895161662869951163149734990974043450627112502669931591931820756168797805559174291685385061520622887298016694123096481499657552053260025100116841272662162900017387065365416791075498780882124346026948775420375841360198786302086819738116725390918349019042064462632387150366787980182998697854192610249713209250097795211641707941633366753380091272171267446365287322049240672034535023860107590796060829013406871538610046074294241055998291650169761586292853651500118300389205068822256097428566150889283499397328618359796220637710585344088774436116454630029807178238829403772091128688661199248761046155892050735364103333646482746254204150597530114338852681991785444614932272251728954699783350932880293517220272671400105175240916684945121137846246223351029272456670121195169478445418497318574972178140256781035723257371930838029562271469804644002230296919525240477996283289580487847578026761456759780940191902982074517549978750355413845823137749239198076412591063331189983984482906306235982703373099513487983265196709698699019676607006056665279420293544799062485126529148414825737106259906999004087325347598990167752632407556694422231437740086025760621543590916283967092199494339019583575168348903629772381315709152998104037117299562102395611381135786445186184431461771688207758409627774083334772965439899232449612671761389826350605331328610181503108595123603674592435622426608143504117823830454579926221111946434802922404375983574827848400447835540086109752966099665989478503676450763065805021695316807588442334982429537091202614204308593013955916590858190230237444391394498375549296838338543284294954893051114690246407548292754735480478802788677525081861420723413919020778911701726706558609629467882500245789874628987751033688508965719827115502727119201132596074364814840596401897672806402246335389106451234978676426718516088458088562328580270624238601835775066166920507909352686017380834895361065783402620255459513789030129124238211496888889226467732760231119757472151764674376995889079119311127797451360418406647514131039790351407487562323431190693236990748097015960391135798277296417012494689374377736670415086554590503752341448468430574716067562654148507782059077013063921979596066207866393395237171582767560908291960791223048752236821274867812082147700177117151536925847522098830681610893167415151506945110307487729714067633270535252793403233342366682910500026707119581565747297901586459194537426377208914831797510230242847686935126683958377152902453004270225684846709582976587260112425904716429507741622057024308440831956507282687838748924501792428812155459385465497940028744545545023608975130586329044024588316268844532932846625832303402521029347407687180843781275783462930535953851646013365297785179681289716535238775470596818900673382124048867776844255071166079684945615023457042836130923751711671644219170853455589179369370100253081895681002801528742471926887235883085358458014346340665406866569495206414296830845058488975504901370638909650625357671953154414462976952651235237185662266809415271071534291815711613665712670644321166637704584884271885594617507324595172366449778970564585283446549442448531164773048283042684043397312497622329836532026557563018491243077716870389930697090280520904171778971276903744432867241141798379282706947652846921114903170656364953857749379212808690547233173765613887883842332189825034341961224285353089202027653315551176716742500789737161084538089959305176851530971976796644061858462470821629934943581356094039298961289773065548028979627496446974844076378881169817940191884777671335292286117606762338309793864735507021489873196091189851542427646850923194390023119502254686083887424151016588621444300203669437627630080037905209235364124994395624821696753788101154013746821202039381155165727528572385419421085494485370132560595267357214512971432171695663037008317498491507139012453543100875417295441239992883067011304639065248419379738823595405446738618699595662131107305959250652972205868942648108546746525741546084598488306984206509330021266749109949424943669304691767035303503958775615134230741261408664963863749280300290646327743635641009858086017013338155718973750399928819741498545639251584873038598936054226176674416796333418342105905925655162319496069307766292037773993762289175625089267838851345384991155508576412893706367399918882128201379722934805419922980937139719258647312863836810234309925577971225844227994762702068967013356876010879335615154850011605308836316960938255579575241449285525909036786999380673432712766694787693024369261947846438345138124246568831290283622587272224354270167159376591409697681442698305438417160404471050104575491160619045348652135948192055850525841759689486275429319361717061149794103008766491154402556519592194246021704645320397608936186872864142687813356969697484746181477576816026632961112308702941879571689865028160261761320359697912524816487915637011684516451932583271944508359422926605053485923207429034600252889046711139674341960805384882471670249333092059662857972817188709080962541476114770613023847968921991276182268639408495997117360257520182978459150427147473533191924497341377129739827032484138052853095994266655320968148020117701621630449820321543782889332754798450985405077411671771186012219044534215701579417337591282814829222992047145090485256761190658257698908449893746776083517892425411205272847778657912590638143645303071140834639157085466523724535818933662758158668662060942094795341622809661310639859332325412771363947201679415337549874375972084572626084412844343953802929169489094834626006366448139281934655857682872556645502487150185953885747394728082225767621537831155364320024368150422004114616854043192581682008929336457880309836822698493722006196216541575157650822002927823389029375182975595408346752918605348521735208942809470128164886055230020872789729489570798043801234592709825953026573952867051526250261316177989064237080602460914955062768989875386574944411460970864328472764711987911567930567953712128743421353808289585929284654223039801473143452348701252393300412724899686171502310677151420576227547022807303686104778852172235751637549873116422162510434163762789826869809629941838110819897423518554010953066336484505272507902766705286500732471535569310728627221930725306301261461668026911152178893817691733285334527405992395264407138625031623433242137845397708161574859757152584209229202699825589740105019980231387643946415546675318031187938907650514169518759807251139863564459334083909214242764929190492195365989654812222159795415352649796312946910243657374594030829529190822489561252187624677404700080133471701707648680470617334462905212475036183481195658078663740472847273798886530385073495708224452585912884975574581305029323170106294450733706861488333028878614079120189976323467378365462217834775153222724906429663454129365558384738161856051829919524189497612413907982557454789743346458561818510540724736464561477548214404497891358412488267900154623951179884545543726937003452306147407941218050452179855590512703039593826743248701860864292331250643729007016013896586517531830769296600341947281986878870059167430176271363162302041554309393283108222451710229397614566136228355143595242093632851921612622495557760068237740947212903993462500535003990734821694125974289618980469248142101036851448235709100105355608499891010384095733318585504487189681304100110575234035957607281269686940504197509452265439593773016373506458589386123677729557826690623023529934035210235653859445785916549331038413086352338498681950934449844170502677648064747444725686777316416900376139483905448046595758519381867773469152003552120800213867044941948290244156608937619288270044992424050865797723907216025008436863806013389833515284558968648156488572030172237110055372062338128799757611165984481114131975762586509644741882630821902566736827039966439139321838915940171361230070921236413046412018363875180005911010285010315154193367457683706879074904333183862563868173003572563321512861048607540500447488793859586145296635958065114675001663777736608711416842193462978198439291487343644945351140818338813720871179858255965166399120000664972406387615488828799088134739432165478348334345616791582577628615403604802333401651104044738336245506060766901555809214359452961015422827627056134113126024472372130714510844712155418158639386417170820781662534317215557028291539706746661642090476052273383712929023524283588054480175171561931124632576440695498476715931284046099993169109686458606876619929385761413989868469482108536274442102414626812269493886560485003858213200238526674829745025074919046454663351281200294634986469992703647210621423434332944968493657029253115448086133036111930182095231809880657950468818738200194115489453517804526224852042492802083249927609826184446162020907606369862753375813781201501301069645525050951680955586582592261201660322851636221355472122037953990984640410193376978066497155670530760310369639262336567821892253935204956875453505724082288705230672679846115488851657209561115334475539234956365810776190608401520547954065862302694335200774638012563110368132166700375183980964001485786394818459695725366296884785842126983562891569441458456323627608103541419548345842700629000877204648340561799556196623754115968080357701718343529656682989040719740681370462658963266547124388710636958381061139047557292066748921361006147188865112663045014643682859604253737373338640332825283686200780822424333066862717461440846414596101950048031148411194381417069036473047939859710664127248700539126818494428630475290627316825875387630636537636311239001276037370521562742504487833735330996253487033898654128638487459408969666199166762323527747858101260088417564154609700851175865171563648401419935628194887854395456357849105159742725418062224194510219610826677731361127438831376966726876038087698136465015847138076598417711290314232540334963207907889813455028603208309427999278899791953263902237248233730792762104795824536134009832456719581480704850137693118154097922893504990731274150087133625560961870306317098505401357651003514000751914208798612505229842462201727962595502932649140236591837703486654430702830705108220977667263856611725857378431105161493445720131303305269053717489076849794762047297125249744302163948193140522772049292437180126050323897934498884799059659004867546557143766993872530763820004629459409725866414833856603635491320592319186917063444592698764879232768073087483334909347257177845171698147675641415590019069751669257601494885046463821288328169921600272221574109311680533192273018134485013854683037168747347053952921544580187629078418257064095679958220995466887867494513556288367210466234344371482958359482698974074006284534009400819980094914614559744313408840955976436620305564308398775315917432997282932065217421663210904931608293249452211466955553241324036106568404440224307848428488586682732222122018727974480166619286392669900701518039040074113334047076809198345401873730637639684786785350713687201545786977120681040032589321060884221644562598349630014788935329235999160892976495628136881972807778671278069242137475588070266379236962844506336759419666751832385806404180667544313701153874393673323591754716646968938817215659040704341226316869117345011785669263434101080296294755220238743587963892390664207040118870120503461539982659846860199761292346941833540574571398989872396618509817959349729536487374639507187193253232790830245069375882868258674115144711134951769616181161954954828178176511163898515623008611446487941498114747295312760571965913506752124577115105380704918049915412847432024145280248742054743367769429620352437347570896567888380203260693630131891115352956784110591499734689651589623724775119882340885604058532142221074174134738110510801479247434412849534612070638072623056646806543201829877940642012419478543181410764370754316047591221512002481356642350614101301610979975947735863326725847946569536615223980007823340971099144510623420548777961242175888068200724531999241011444606719699098442905941262319304739757039155870324200884578008551607916031110733365711338959804177634378614573234571758511345912746608237968473890230077941035564591423998222455378464493220303730646548126047010520067271732591806789721552098633755506638426802191904428679417513180049147642499327986362652542769292525968556678654632850912468510166828319775343703012929727497769576849596069599918682803140015737472689097044513301295410995521211783147990552046984498318087264317298705776258993043485914786163148896228109121648011415258842276873096573730094461114320507621155636392286059275775271591360194648153460295506962913075395878241348876056987085324087186885890688579683848584515898857560920181158741486065422204807199989768754312283340904681355823262612052255497344174025021808059411584507091355026453895543912958542878916233857474148562345846667828409005237502563268316563472463549816091002365080220144742808925930335372268001864013656633747497144920769669678041338475968447544931305565406971363761020396627012752408548346220751207642638121415683563972874392920478051114803359061733478126781629455652750887431280334849375604042764686077620417084388592728730741216025519580839181931999531274510162976501239903765476825091156807902261867485449829333524625501812942994183546784625773354919479796193804503132248846214119970632518603542886011227450602396947259163069763214057057842321719922099920832726885155298947339410619942714407900591824020196359922370541763426696112038278026800777508815939269987449748001987534227918194325001057511159265919893916520352148119143707988136547092889659414048315259500044130036699763853823458936787757399654492169705162178897475402368502010600760028108995301556844453939318708444992894908446739545147934540987559941626096000994703574958493393128103701534764563876188210146192771194582535097426820613720720182476093380632105857384403776806115100174660205856970204713302393079362775347173402138441881981830735519199047930909138383309693654596417939163160545735571298965462728784911360379582461079390288586169416701075402172265682524889860684715711183660443504766224567855275529528320784806203311724111772140987972129450313417836502443004347458992358012871090270895410513010172028612080050908946358782025592032244074079521867197288179382921868294213644363594032056409439017495884932304074452657710748384360127204082456895060942633912412350992552863621913152492089693388386582474032821056696230804766700403638530143363630738961149942644037195939866105888703244770900413141465333001596865188724593633627189965092020531487794210206891242888234965516593007535602267663752575509421721954076213038889028119232603029086426094235220212941749123019533238012466087555355322954398479595473001326949192036892299906353483458297055752854010657427866761592721091406498373294049259576732014675244180416442227351585097153576746041084873793061623029020209660825333727276183643769225537370334809785129933518687690372211663084601373184327497814542088091775353685411670728740271343709254675980994849613085617382332813765094398590060515415069364880109858436924455489078794919038418469080832157423616423199206236918352439216745662239464845656724868597578479204964528715196029500010431581012758193658313655807609730917376056757350896508616187203132669978618363133588418682232647864939374296974695178178848029099848496003785435015275590818055508706429570636622109879274997079739274105223791957846332331135936462971096848110781683979041791788157663468002604415208278308150383594337748887365679849307321395494576033256538509197141503208783250684451485550939734028040665536666686825817107526357430364824395795449682063510263974895179063206414544334419755672487685487497670540547255215300645140313253168130522374280055462430858312176108468467499869736805281017053038105379781628370930615716007503080635795538998670715182623075939493554701036812652207893686051741125177568845306397268112346929532528159248220997550709955326824027649203901909733842575626035427753139418623856036865974335078556206805203279978660600449311624974924017383664733849987066634393406359957896051719457667513945551736129639990416201723428543306211286132416778046304151098933715792849399493145255696340543804958870821909720722051634240011831010443361430791148554982378993834740022811291702136091935079659481078214048318065337545615221392810311082170511872359574521981482125518830785592205494634249104121695221363804750599484020819872228532510288613262897075348996374493984558205060029322519607071803615079639187740576434574485602772558304568654045769098861097908730104828631435131733721613903163173754166776706368552046585169383277468526479764803851061721817042354747262556112653109373816544422361819958533193800124541514348018185073140933624052470234179042241005280327037493872601477714344834105229148911169866176791799451920115155228973057729397753636503256955106237054997923137016135582216093107494548915184491079266015616609412411467299244399383682503036873851182921803752792933926904700832190564935985413860753241830260163868951348165393696248500279781115309062623854298121366336955871384114915791753597192450430735051481174210421098659012795232459109313323010438785914585172254110183816691726818497255379243403020483942621772289565512309711243701784684024424214932075727831744333233550542285595350211722436828121159669503722427569407995098933015030711137147676268758856012909924540892029907735882657810185293758374648277295640696567065045502643650537002524123310760895306392190095921741813194774375261717503692286740595749074748947062113372718591164945862984833774558889874446419311442345875264177925283934392329001389230980432510716575037448428112189911019773497118011823745986751970754487366519473856299888893204836430270844697349493281744126937250078569620865838164988410461853858667012532735219302893792711993556077755973042206194113034810274315640693375965763533852203451880093762256513531095239869491868646797928398216400241819111391539715925343883800323921944023890340663117360248018436897736994432652958951997890761685713720219057565635073646175171989276356689932721647412043359497037134474454443185404807670696833230055061360768688185483979636443500969292673736660416648873191129875894602918684231258754995510087652118193319852407204640548698146216526356834444658588563373204679493172175120299077958459535628323847417978340910826575657746666276717515023816244931638185426014024255801332861813139354671449487976382635669880210522788537106960547980235027515793599344490774857810453377530358243482055066232779458593152370302902578474682208393535225515007461588400766308164849553239486333226993573920586786864384918602479199966410533927830289900679681089282654666595244135917567708555344175896005831220005692105831073592285069485107338219703952324710835429182561474401422615298577381334820201603944432314801293406278484964890962189683465306422676086827156652301472225492571631659425250752976651071664699579501171308437228558582980385717491292133343661564712615284807813979440678643449552458521740198151491933552265504975310949243627672843519279367614753984856915861889585487285579008149003263880592833780865162951848981780821236577729894325736428933997534757360665375057046344447430212437115782907979386055958888352010144974936115977877118464325151331140956035221405483138605330892615065905226952654236563793289790921833416998787892827653166760552258085945372262925406927515379553866623402053847225537431024886873767601132080598164827805386509436083904079678363609580382375495583025639110581307952348069954465852142462482950620489735605793538505783626238304206508228739503715035887097827709568582485851826731795696427151663502702137539346257969415595728067339184256318482729151996643267528888213862686987436366786349568835406299402090695150058185991110283089046831267166860904706463309633468780308351487897549067259749618024400983173939385525771006985270277576278335494755274568442387271661189975374181384005377677467079115305163969946539778616478559448749113777395699614071793723167904540167764143505576075098073207985890626694729834136319861674653041733098881638317110554570796875418857992802173125833120748729212010819934796023312035170013195929920452115664212208209607517569580127445100341161339772719174437990361260779067903831110365005483783201083692740713026239947890085298487358813164989324149089608873046076765819029199811190167289476546333834587543879295024866506387720335853860600543908723431666323569629645497325371491482845192936550816181701365432490675166394929842354367634670449436682678646295737159379715307514847347692624492506728095650211406537045598778354537807288225206498006015589441769503096088849160777755338678068799748803084740615226481409184212475132605785606408622873519022175031009325402881196354844328090763613776974376316312052673775543552003293557449827761273717815668176701472737794886445323807232546465405784400171374430004688907380222838996333295869121606503519143703904647297618641803531468386089141216444660670757052764288642072559740620614547219191506411920062247472600180125190279332662652612152915001885681906912755897410907755880509604142035307897531416129458357660604103251576277138477270208260526208633322474976697881335480704174517982106772931474657966373563561178249228981517054895662696342612933129964615075286290363941410151136240318344424895637896724649968720059535237436071225023340310754638780013516625366351822004263872778199639017422218029488169629288106722719071762120331307454223569133407935217001874043268565299391636813170279369263081563656128712725686712345796860787621369671397646645730562066414715590280180310629731969820992173756665060182225441946449023474143554577501662070062530723415987024004567835270162903467267430038152461514686276996072880515561633154553402911153216741913485800710980649559494574147758267146155530262483760952685974114136650717136189938527876096529723779452454956865976816210538846387692476425372431743785071538540509776583002731769854733316406663743539964350966087714547396624676904490726472973745827143594426983164239270833741664489878585783571300875972873240500535384594703876263165683318984860286901488912144560843981087916717097146280200144955610698585979257674835288493683920141969986363518346723408955809904177242542178283879606609486896658060853487839826153162268223078764632894189721002662156533716527078869419338098694296266881311190318462634750074563443512420435976816588405758687611659679808377894337397703074563914315847173705454392499118279913762166392232848133480626874098397116476184923397825629163417947446984188756860828181890801673140418363825611142453847859259852646041026356535453421244550996908821250480854481080222320664793790646015287576167635698428243216284900149139993867428539945465545759869083426457052778601568149936601944129839464063317591300780524944640270966634238394167790890261103972002256257188077308778063960430803493156924681069202738640880372810532595930651650047598667464824508465796656605270237143026107337452724024186997692963475129640346309380096923889820455189642764718826090154142876735322984040690769001981363085659118685470550218078429595806590853563824556465830680575699928040610797473287708566705130396165549058576456723560561918939406005804730875903040072922806816901856524929520297086615917742970990371606511122755037104847550229804758639124565718519614336612846684588219858871412984823627574618394868497985631665408487211508014597075942785665962316671217615458603117668326736602195316814292812692577919327203146885669894463939512551456871534986025044295078079915467067388717066802823890916865977548241139187196954138618775373878638531041975294959673693243141904553402078445736380753682919677046720245248841076457528301845594231724983866707185555073543766648320854906273892786392616595556116841545470263260034416590400733827194217155106946408713074649205227790435661013724820966125303897274183316301926045289900373384679702043338822314324167746088043099700275965552123031829212531128710434141338718241115709044885840469255334934576848002035914780043485281115045724514659303860478277514134352560599319025794807497306683118251975835802449101295430949991370346619794344323048724132380193690036584663207860065892112099749814205873251507134518992400756831383560368930466960378767016055436616045104729423821177642379275698790289812017249074700567335272725453440308355994257575876267194495055651619076450768444401387437610131363498616159853118085936107790198814532879199470485513788318969951178198068249802349620951123539093821504540349707285273197435900791723968472098982636308156293679684517880922875232461641859800657342382076175217146095241382618595627392456816773279752982016327136232123858020166746160133367493032176215038681309944925653504390846245976027454077721786143481911089108705066851899507628583789754114482431939154058251106466101699603569296015523264003950455975238416058382560227099976471701428036257084856273702317998414799579262083062066999074420015543335933096060246279509727019251125100978602908768169485550061198213932753366802882969609955740150190330774215857353648223902347132592596653891481440916764234403865951583375227305738485014484117312845853287386133071696322942829960398922650836126524593676671439421485043830498422423734890080882168011969213482597955915804158297324264933917507688464158945989033224835837243795246382863316400137316593500532040239875413178823798625261680577332629542020097858199299503115146067651498115427305713207264466059129220436652665212622380562678405737815581796189583416205658887396989702046569272996764631656420495231606117623819654470809476148308623979986390463801420903983476200673108293022928170727825768091762909625518759120179685229944162628448767409854718498584981381905024432228027440842429100416155588233794140346069562156537266921288876005735747334576773693010557028061859624300559937271574511323599395932890892263058961229118574713604302709751806937149896668787360609247563290017660866771190940000321160468878232494339890849032007813062338940226450741685481404581986048711927447826769715604473750700568571523365333975219319568633925272012298416766853839896733638481812872599355007286456869936610410106071590252372827582494564789673412722523145729494997547825260612250355950846729148663864257624421379401444381257284579906985663054838401387748295611484226572396772197206577346321374585846949992049650926843072524351998976950266327492696638891548852425129798751680077508343512075786836127675962152567855726112250461964791595333433673571781873089094921245675241865647994418624721283741249179736349107609197594392359555280907061783074187823755751338581997283872365075638801479938013546658831811671071072158219888563417815495377872597768032907126146028049213378839251959225663107522535560507331467212657301472623835714865022203169164168853577695190590752512270702166854332316286306169643356430176491873074910542542852220830123016263790045678440421331865059673128094301478842492770115381928950765607050690142610754931139329026035333445434409221337535833371925306187683226330305221030919698505346764345476650067558029364271704052268631935829528093549984289526715892599617701320172144468280710152424085949265744745924442629452656819252195488715037529533062468443928053578802666906302445953598629618301577991632337931663489494855592931888714296393652683584205719724432396950890036965319437467919516234782441724184470054254483196312777734069378959763801325459672417062341266973032688240462878278819382011551772427765105486131721387613665620025197592351662780799715581184484994010815156061874969657701092091177169992936360136742228906845157476494092772103992862966060321526413863829374829242095412531320829455908842620680062898519358177327321610981185557103415657734636494622038569071075688730043290905087813560288862484671164767757762593463899218933175627561445303877595936900187761415961148414017389387324209769595217450003511698727576639093973071753143472496779512898101577448027098081983312469940700750562642670498113852088164277277432897608774838765809010735882014267734607781122161188917021863133012347955279562631802603843477590319148183467405337303977319573250370042966513863843914811635490257164380818200061261277814875851790468527820664066455970388070344558062449587181048871242495862914609311667052494002636337973599444461727373462364416136619362509795639280466748945068933251688438903232550433188540007844033048369969706300860708908726671970322932483444517654885376581366122792196314612688028544647569314423238741594035977932935652187255221550863831886025051505168985124773437883322422715597205808404073439689651308501741105069049704131790323439645009697246668163736191189904898069790831943107615146154637162084891723310995221498824041705093149893601861228864671364290117347072714541488368205160897955705733283489119213598289507667076649971601351358331936060564949930468075546816719784208685680245173678240786415371524282618085035991712938393990032717682568552141520364093690367070120075334660162443786879176033377786051908529940941665660052077368004548532790252304215569552166522205184568241300344573768653891720200460562983329366984191955638331887691228364357562531099082402894149407389071607799170123427268426254096147477081718008099202154152470206101969803864513974535280451475444899978925174968554013718044442269331568220762354099444051946933683232539554955479433027736328190295152784563116171786274912228228088003828737588235829771723591668136822495509445056913960548117261483830031491758095522523186927421112752894599270319400706979336199728485987391996543565423971491293392858645541885293500373097543687539065842429415017750945126725296885756083932037387057952769487353562382554505751606185746982815296455463879079506830746008961623719009305368792613588199896628239667331815360264283088134296468202226129373936804064676759524112776173250657654246290460708509611445529305226167516461229892021876880073098583087431883811347910835842163638248616317951124701585163064658546553968674527131590872855310697957875138261996352065446674116276430563768836256023514730186982282784673721731377048096043168922129605676761898585266816398372372529915405447753234309523670317216618727790865716349728127054503503220630636918606272559133951757012538954054404735856612489408356154569194845623043510379609594722983147551923224426610197241573547103002958065824341648742613730984238509771377977969713910789887082660054729563481380329517189811539309818116087528666732376257598831105771694543356196542044765272839712395751885654097907205810319527815091357181015280149885010484336942917564872849418857356528183928730448355781967409564591553771643378715938231889024806924649044801038433600180904411292390442035450269232829037935660069674981879475201283964082995469328857500016736327644206846537631330913473370149575298573368904109146629518486625332777633078888787724057704060733431472669593218564258727677536873547622729093599775420569515836643085168580995759500072736368528234590511362476969448343564526677068544428955325866626886915030546464946180822707726085269323484257478181685189806390929165207686954911723227280732074044437585535624288981544374720430347709120412414976983014832345490364469187532081268231995983041505071119762839811889877147174788343560262246305173409301514335472279213432569819916801294394029136465476742536617792903533573634657381501118663550613971286630937917870689645428059624582189979541728187713103200287754684878922122968698595932922355076510070211329646319774048195380339878773840978269677194288094399190780443070562535363298493024763505743658213681652451256513221919372466471961323875136743337309537375203190667667195392171472171143759975797674428798165329401199520728914863432301542893436837248192175014045688967069891079952515815647168979546713999482859019095731160640057201768184267714900154265544320221383933126551131304574966421755385623774110096552204187350221986951999658358680229130724745580612600320442090183901432447827363753662971002664353634814123380742625537526555731591916224452709970217914301285314242239688061111651600642172992886954257849120329208768828909581010939694398677305385121489721804808621570726199226998287468529574381450409551573125736791213359556582585612586294003745443703814359403335305072724297886258433468691563293693563835944642449770410309351038570966101420508391172944207791893770989480851206814845530840741398297505470234544319545732923707944083417869275697902671959229365683256755718818032530641126466559255140851128455691376409174606015425358655983739940475913564828067243125847582914403177750643382188410410616905859523433280267165975636791970465409426139480826258364568082815083374039450809685491970504624420341612299760931128424705201785654576086510955954289268679530963518727470863156299957452665742612947737869409736487353938436177664603007887663918050286061700980937743241089218006808216318802308191625016985265861101166427219399616373768900363066720234264471989002525369889805132947966448311233943862797301831096377473071892049126455885753403287550795900110381966811890735354693166382573889979063241445735381686846569893686908944088248029528209528635561158783606440467793136235366566528819382957537564619264427982905253125319440943633641460161411154730871507446634057899328802418407736458890738805150640057893336385654828337256319375605603935758296042917490515182718758126365962635583132403998531880717793766039485217905470747559130288020835821799902472738196255997827356868947435930712252819496670122330112967092422063226669759219704355393117332378607057313172588375310118366961212179374558426483634982792852069085059728055178321673860991770175078862184936096546120161701513869834761104951770579140308996130648674522679763642736887385291390283485615141281674680701714232306308436032436861295102908469838769961430589885902580967090164861283814872727856353198066606098740345802135602131731790951624732199956057668370390573857397020116077434532870237970286464089218612550616540245447687247890165418285563346416831113258037208825168803502519907330700652530503508489671497107614620151335971331170812952573331403239648829349013229978316881227917268474835503983732511289167001574927260426377517421607268416650202737425397354539115810572904158186447247949890397022338563052075662008105472335959567345582033852670085426200483561646418670699978870331012946860802717339451301257536008884254236597523758084398319955440980901450675945075799091588882335619931913150317658204428014553194998265288418181687699875780302037218815331479968030216375175785370031053408658275024515629385596114557920466646472274943647187548321236286340068554907598931614122229459347892877080077754888910215395993048887060838914065470028334661603914823232257495285032379784698858926828083411249428280169088005970525269366814358558010572196642305905557900987838567057975263542644309138986539660033910113179895431005371335869545106404189398893307511542422363142250407283609498387737099402396422467598484634514508690458714978395030589269083962259177679676961362429469809154978777658860189689678547924335521925400987349068560175382878123715003784338539368253515444129210684632887480059798562241031314795764977141224955774427307432831293342712057919259925006203503321490405571588460739770136348675085351204217331140426571108662645529062853744653775063992489140728160998506293861534258376338699653902389744924863541838623162428704279341239889622470497415113768138522516210377928824179656496899982316606367203552107339400176088379446519005883392244646264683711940063777961973349935607476191437769881194268881696933579406520649592558747331360633553626084763058521128760769347462159144768686495472830121171134636418261560097913520217812729624398327611198599128601287812149430663535032127241009049856860044667193906831607717851779671378761564164635169690844757971928085565977069483199494180364633854424620897760123720822967771683803837529620189648139516380466380911248871056098992148524507541375485275491728331189989912790616827316842262393314940474328319319880001579510010359904901107255743397643132210316460493370575576257438272954378704759081917594417753866947840109781341938554594056202637573915756279014068856142228386553072610674373093534351201456444046819345351247965691070708661511587972325581014577846623581134873289914443961394942592755131249905656153294825515497943958369429729293901305101377123457926228102707545577867860840229994339024997966632650839716946040683106490005386921512695046740403672757893602352597733760304676041241041253806821067870131638978827881739019832921931799257442545051763068327221130003484623310612888328735011821077630337410630941507266692761097625909338553759984993861205322727604025208330091404136939673577683341941953153793072915868736874445576572856753612012482634963357744498120246519679654583652659753484996652286533353400268746294941254063111869741557833947019139463813207007152869233932659526774227839432658661814330147549420902314689192248595353109819431591275837020755581525314398296220723859521930471108173138606582100804773766574337503289105602307745994744336632241944165597817085387680356253545370272931358383054811821896336081769657326933398492462711928555784729452878320618072376380780938355674049086431019182047981143813668531251897958488171457122484747788244424158161625450937826269396925184258853608603130719290502643559258204703457471084174948595759682804439744779393821830968793469027540627800777241501828351023653751282871147050621488934265843214771649529295936270595422144586874047075544349788688665332656222433629036565363246046925669347281237261191764175842781258281645260863316032130646580774210340177666735724524700197387200923395813621482102623652627722914894344229294125588692884153629699287828276650721020954002764747711536342499732603731489995295074535719633015675741091093321327596869458257427379306022885170728021047054104787740030611225672586665838200400344548450003208066518393763472469347134704524648191323853248881158899008821250897720690539828635320312688608974017717347948343242666645860309894509417855706067466486267475609996298805267379557135358551636230966300180484307808665600222318181029287106496351415852297929973603161466626963126959606391194376983133893557080109622828770258673987830245659770658669419356843013887977879095742020000884081885227758072627578151836229242025986679496800277590061086345948293993883264627608171819669691762837422090352644489786776378225512855260388865470502446609366542028336279077221204485119468080256556004036325357670302984085027955066956207376907324153327309072475145620745003825889364025166643193986590471248128141055258719761184461324118787848332111226585070304542409387171878868443336355248069682753273179738882806296043153455726593824559744038385297961675569114424904519270562937101242655170991966376212857283845587887354134513564351096809059908194808714150389206698417225031558808858669728445523870446603964413392355799498984406318169563497689272757951121577026071493920010636136036664595188743386044975491622962635362994410487622749255114790250846183059758155654127448862527212746050124156938056034104951487988352750005812781511209895661795061862005697165945484930090404708215156060570343131138391379473419373491291437445294288676239314732006720326306573927531822807594017633538575708569937672115805254980087368737195474006216485702004167437595879817643864230596400035581138306834013865497856432051185276633371412054515999627914158737078194100989009017334152982476226660159512774875900374604162177270237268941841755543272246522243333120539924029730618126580714125049926937055223672818427813984411849810361046570435419340126401393217234233790893575242439261737109450349864903371731310289254109366755201018851951451489596257195464222481589991886382981194587219808696142802290348045186051683488573296628058164960256700293697867389255914543415676370331443743430316819092719593992327706658177472520752847091261816404923748942277791159303124638479449297027816109908646049715140506308137980313876811532525945602232731193247541652808381892721579131985451949456607592466515186339160158169148165901334318268728815930991859249222813459536055910465532052950597832293859637165710390365523939216481631709803522063491736205176503114419255638157229587679960822915982047161241207351261494508353379471947514642419085440560184529991836679551732046284310728342911568362546853482380452211803179874928386458122036101143164979422723261874143211426839851491232288873465441391301376119982691118005194597006407160322999852300736883570205254712135835809718984391458220568200717586785016943750226001822357308350823628817872546430454768233707585321819906364308835476201409624608521851219468178988227064996473597083799154889323080175147897554271289574423739503559078709805348028774101488736422067001111970876665084580254977629344597172211140943215051218360326237408981557129304691474978196883034955982699881272005063654660522138717157333417203778059958467503613870488990679008755624635203945413398545615117879035586756674452820972139446109027787235956791964646642875583876074962519929029410825673466879117069221660015218609928883877938193686606013657151827478852682900368319708545650300505640182758138807775494426495153777936850090189604175819315238180657220261437028280682383380915332706680441159225090524436244737875128791761304345827233899696737621672034305573555279698331968438154941795056107279661928111468425545835879449903450508613267601772985574696911614106279451469386447129757069219887462001047280893679548019965174153560552441944537982319587769862715894246981026585239901844686015997955934047246265464913521460539510013353661103760288330593157907155981408777581682488713691628419125144958046243280731467587004551026366538790677417374496853726788956406969693000768328720533876345526407182148406112956848278051784904365555732472049768434794452243990319355522521127032848476471363592212895359905410691452054567088266863361786419063848413462660696411970654502963831075449502909523202543399150718242565092515612400734156169871759199031008612630642376146996276888234649317934542328642275280540115487833401714658891485540044493423632048190683881597910510603250770559677806523735670028033474059238712660051682188707116256170279568811386830366071575735882324756055899203379542925246082188721758248689066752773000256539971973468909877338560925703348567552076666345640688779406703796964097644536259020061771292415198042945208800380082840848180800901197751075861753226925540390843142553476151211185736503532015246843295418504179850439382358253648678664478741976121435661554146575164494921160595718355723072199504268852120892868940779619747237798366629869289414471431385316013994442854784431656191318489612661443934970997983289959398796867539329322758487309773758266108786203457925426499800051284505830655024361567677156049203612802705834594150260704399764276207090014323738894293339179716669953485340826234358602510908391012752203891346316419522151538809988332986305859582683188004164523648622827644383146603920678276149359318291094620648450654479885706076575711479365578837036641608163609262448791872693137633732215576177711732050260324670035372377296287273087301669742518578227601481664697299673341666915867837497339107970512326510815995662492091976357141711041076595493943825900912815353582674609085621420013351813861178167397531152812148475195648638284100195070459446518286394451301762724120450193937699544560582163457698010799136327361500497163817288150902048346130645502161258506029366717890879938958486747243062304003395620123938478411333588999113108027574121207409346587712209850379095921383224256538270505337774159779379819409213166502986506066936653587420237337448166398620943015137070576129503038380502012382151875731349364824106485965998713373469019430302251557745132911405069416885490640681215985735467872643117298304343146824978480399853480490729637914818401108252689849853787551695730109269020788414311281474551187201514881227686055542988383835081168872915587033512828522643714447828664735932900526400738985173971589365169926202374733347002261471906198037559111528015584036458101646592729778266015778487547181676213797284750938641575300926871362342149707237458489968824749904698012616769567165412640023084273444699498008510765340570235167171922190747922137563596798150898285742779622262676077446399907289583231289729913795303464532328830073246298441312261723769443999167428076035967852335642935705630172987175453424596876673116528923556068002773993939000293999050950959256371885629126734040369503591897399537502512379019582474475393864607259669514354707756568079194100732004999926437412110745756799335629384171399232496952947468523456496751196764214182027815556344420415810310815795356425733332595655129048302644523301486697248031096361026925001051155272964573278332219373372893597754797241775851480980004939449428349425239338399450790572232688848274020907726732838244252300121414330808398434851154739739212032330564480239312578987776437630652653444858079278617131969931870501763792887448434620340796972880944149743708640132618774719124960716515522140325634584952356260851846309554519557722961271394987923271359313199328630422081253492066164340608270630066177600855605027972684938079023456242301050941635705298434406027281414529823759939944393117568789080431618767351139450816408572947855624633659647876087938347802818139137622819033388275476190543857602251174697399451923323727599524351905011479055954567741574636307806269517886275776737799737262379150763380398538897993987788479405033147025679317153154896397305235748263854430397723999621788962204618783903519726857893770453222257511784569844412532703537607070360069487512747236633908159073131250717511282460312851804633330264181330776181593259204360339022804019150246469662831562471120864479823821901062713426229539141100911473251995059808924900796059295190311114769038197419436612124668294136369827947064936206722602999949572575750947857163556646763164071675452365558588870656223659457739330053598077518294683646765600930893736316136819494269971156072675621761407109219438423225354425964503966410733482568843437790681675920473233202502043033119307216370404763833689269491879556982092745378189415106427658412762556913659062149601637323448050942731216203269978770598521249973079782252520575625777937693820624728494083785278798005078860211444421360378604827292588915813748004025264060520985350164499226893237323871748271236432411900656944799362589420103640539821184948062901981133661951217684699059066105448197253316977537593307764021993895760142032784751417670611652226839551583401214181303029679538451665715337930468719298022322634801595162281146804626590341712528315419947733649302950773180363112936415819263518262509719162174875982258093427202877639558676815413781399564695049600561363578464640735008554503601248045858913490617582199932391258211258335210868287094456361020164551678739902834817591805860875935469692930551997800909593436093347378359308832469885185347247531670268405494859437555589203006081627851279245592436642252208587066968807929400342426624108888316211766864492746710412328553072381759557401261641289206834510710958137815862267575361187844092880815178060291708326914884112425896305201869591113613127865907734965913042028776172212463494647646262074902700264266106195095120016019646028808329323227070212009211777949169479721159489084611518390479013668553752442886384552757089764617857507228692784615958261112053573936777209687875149635257694449049672402063224995317988719959754669508512137069485853784282521808790997464127134544201704254436858129468521284683563092566996651262875080937630647373383893737582677697975723254317404046726753908778410492010981962594532722149449039931696382034708513477157750307159167223446693255010337351313949040217029722553479120413738207549744086013859227693136847055414348089753891882852660986048438585662373743115529305511944993592113700764113341176599578402056413484462877520887664242237889897534043741609914462017675379886871363490993727720028244194679616444419402199003182822527752686685225420780994917268428676291242769832462760428532166957033612483598588002584978535058412112213434032764254511036805331012315806547891479197171664344194253023559007841071843634721617757188584885746881039171331629222763572212773864790288182564994522742318089597346476487588799851163379038024345853442479105917592175613693870270366834561030110762594778334545473417232668826952495629382823577550819872494646627300369005698483941140608223453022059607926792757299778082883508758655525302864307335872653951272059256841777969511251688133167676369039713317610910505471776809690016635288066145487481730559879461780565512850399520157917678493225764788853159976450360576024780530084645791532325656903047167653977909038364208136378091017077180971102822694327596290737968531567968181260376686916958627265986816028642730433417650069884319829612654005689560585245288280765708629403870483374434685245379387723737983051510867828629170730397356574975611166965136635616204996588554789138673355070597806180408451160637811902274574835611918436892187390257037136108641272204671393023551814632060684089068420359438228351925383809370697773554760037922808912404904608344934931183850883565806261503946202132168324927482325792111764981489792772994693024372671947225754946132854626217923149290818276412394373991888953181972526403846527347228926227732297775974973944090706699251670233917289404624648455010726785428116122922676339463495683289704565980402607939035118640277649017617517687935348502746873228853814121006280951134199626813704500127094861100630237927714077018847358857495007822716933394089493205907654188386025810384889544164161238785582170196509155611909136940222960068473407008591751991107980589911428026077953063279805085559177370872398444809164460646526172128900980651726224424938674837680288721637508841673008457879399781401816337370439017382456979791467519464516409346501561666675082581151147468708788129224351159610179308345402688068071343660077541005200662424284635540453458129492404070453522773700826592072162297605198991807184102519334096177317136718081556667097913668169604011409216725261628666083484216448725222183439274191265574529123662893322285305189261549531217428371047210901718071555714144329060623416890023916841314664027515960027462913717581885071587404427928909461483231550791720606768327484595175189607141720992193896549846852183088022794135121253905862470033971010128018800618685214809766707348316658029251600850001002581362680011668226074308621681055619730615384045926977732354953253202277218603579142134941772040467233196090696466508653787088008713813768650864769303344501165277504056744087644480613276411276307336152903439836242797788958304239538649244535501354971640404056017341045734102462089907185050334391290273133710866472224403191776719278624503090631710078348681094183356820270142037701365005614422487177141879317513762763079873627065794205764347614789175551649858093646322187225248257686743427747410464606283794281652946899790185538448504796129731905621577735793429811529146895253454687315414833186592158854014331748644533650419398474321953874847742875208962424450069307452050450582606041599972750770401019487610435015649270957337341591483107366827766530037321543915204188960257643387232046388930791176619797650336072351581706928999168770012248158945455140699418281549222094920818778858407929135565581435207179595589171599134971110413989815544650555662750550269143511036856859097425541841458407122706027312450014364415327965149145289490537529373199920687015349685757254278115506807033700173805161040126576079415598019226418317955641271942180730671388990941008457077756659531467231707869498070368013070875097956225411615038838101980569912712058854984891095666122631630935127131063335353245188765425113026723152971144249422334828435101313777579474331807899474798690370549785988836131513438353337755453569068816358354944832060832919189635639058782813027374952284363116860207494631703605563001267719234583706728007987358664764598667101774222712605009214639636660676125898534004346634626241934284098472732694707268620052762508277074395386678838493390295997088822402255357445496503576129948314507336099407603405418688368526716792014346127305134369555082091453322670285772247387166417936835883374021061331901507744348373093971813126753179069858916284824017310585354178149064653024693734619148080537309541799754542286843938242976491630488955193246426858428186143145637215499808971086680918289163947307934908467325038428711317617783715228073023437480129117602047606340416262763062403842516636340352294889491526514059420786749398720810104746860550130879615210903455027163565885543202849122904920465437703165280588889971135714318061410374515494297896203214794469186462403387912396475550489300614043379343656378275881803769661943282105918710391590094084388182421684470944935795929498441025234700220152088928509358207515897027653470382599808429842450377819684186200937061280649382558748602885493599291521930090050196882677096878566806683652357832332231857751925807041543198469420357504523133882409135516294005230980042112401279214736854020230971406880681363641483650458905042188050996028019531754375877894187577914634461955270007098090853574486058691872698861585118056120681161054942526364949762012658222965055677208253812132979255401019262042451466861677092366963701856936987645394345352330121590440759739510665291114531395101843214728965485659164587050969011639421646988300796245324241774639688558618989577684908350843289404759920243348042639507268643583416274933401359182722500380880378999145015208727754229258148203113655391424180662517237571888886560255342951262688909884445271862467959633279510182520419094917632563288020214428186461060503001066413540335552960686600265075453618010397309821619879793166951353807016561949415068626424568557757524751747871982708173982377741380229288052103458303483048810054424368954333628072281198616078794201425029816455442305075082349301002944893139426916171274837076676608071172133406730920109750909813878081477102957844930306953154830041092651963992838121585274849806556539538451914557868742127344992565006460601557379137599018157940854222340694252443442729973267695203042755124835890053894185678730110106987960487473632604186151289645158987849312492892623316149619770482566378982994088153806475805677624309141092103756778365542295102423612881381945250812388594897858949429308647762996395905302275150296229805447073492864843575996424708604493135218453998299546566752013593190974600265802108944421522488164740106900202639867991898279765792572507618426965610521340594912967594826500677985363758482650442272398407760818067440012791875602044880849654271493543818588073675303458196727969276346825080537840489263336438205340893900334459358878119252866449855010010570435518484239153312640882972817950906625664211092819471006841929468981562534162572544135878605050604405130609343663897210907083744593262778805755705052190372484369675711224613713890658559277878818355745568688582634874355218979913827463648166080973951549368838603731374189589755235095999786507934519119325976046526174464043948718971655497666839034567939170018894887464017027062040366984153547376169093989360107551389444646011965944256701148373302296886701718610834426855099410851553929645172380558817033997120340787002667907809898034208035139161832786603905474503492081332255693619926769822536533313579914885475077974949037102280427674555388087340537056859804627338973370128383338053083867722012573749822424446481352223910651347780957932342909102280248709380485879789105549604559265031219923939880028635366569706320393163760369751054866573080195108090363475230424414698676735940277720341721396152560227931827111228343540647692411124145130482684647174051749817426192781062144156158591684702505075749882713097425606767863475423176986813913625151311272617044255297497387000104023838811681043717013595180009156743109230202827917991942302044577705724844856107118838058370483110543762347000427929631224569923024823203695321602022085932277196507636543377362826131008381120869142642538341068666571089286231434925187932160823327399865454192436994108064454825039895202880997775968876429733626396305948610613514265754633661444335206516428760270415000091942343536300254138931647451796609570804244170587213083067458635506862195522990359831748310506292475620557070594246347179940536815590240448706891188448757380404129648155958247743972642175179377332487126335951337637922402429424589863580436576127700887337314423312658716699029258231296862333666024889540149669522765491422692313690381575580314697830717718273830781503013941666691001341077477351852231962867284190334555630438653137459765481605977732350000432594781252872800176292552885647297915026244595736744313213554120337514049069539208717238101949994185937980569317329183525435477044771210038051066572821070034336489246367801613443789023869111403386790010027404410145162039975351997496933667827584638679583206858119880344874640957496766861192225468579547916166713663476865173822696335649360948573422412496382503763409892404101328699988504408304742120651352614731205016141475776511706091529409949542733445095857248192891224031917864463832267560633465048135426226078792599623182929386374576894049832903007653005265925425367190368548645951742449560570411218203553757017508334708404861108519826391123327151639508156683760749679525107174512909092207775525655648686017441864098272347367915513818564181223549421251131100349416464965839428019055061819370982477373374477888078291982554479957376094877987271291922090661681691135947811616840841639829555071518662099620237362060594112959663306143963644256790180044193677762942151984775782424260583966518243551783884629313117552014003535967964906259477998728392203860630651698241627414526902717187845679869815406142297557778095918724507694880856572734960571614148376323433494808501741964449658914132156871754729664572339616164835106949127864261727036397459927595978024972167873531445067893248459796670351684176977355391882454935860798450437567396394158484830346750612312291340259695766743590844924299251951195840845444897314121635299558938825706517227617758646129437725740645166535743224217055080563260053317306318805659988140031513724805355782572983674072454231458856643030759584541157699101912699371842327220401719176292844926883558092159178818298738819472118624864122010509760525004937916821095950129991480412738414783796232158452716732038730711815337378926601479200576536189950406425546365191611969597571241358437402085416753550314822067482673670012173700006528540618358129201433193639468871964882845795328060980552628518629897435092809546442551344857580719709962839519025293156271801084692963379979121632113359669298457658046353994413665021488011493123741736882044687239878059923041446253026369088989828865647534424860553617990205054453671872503629930519227111670387840905873500536933221442755083586326453737386250656623813135228315064721982047781396625004644939534709447340871042492168050511329921164092581756551572062810929091882884735100657001175562843040808384178780087923732423056828504321782701085686435399306924084594352821537980407086631844981294682373000482939331510198558438078963231243110578230631978187638342316772323526484334993057178645537682970276538037778678440983522818382497076666379981970732429153415767780780088151138964890339370346207545285284961120275010554804940327487182619600279539300775740097455065912004222115908962184928536019778877893644889864510649816806139476852300942924233565570211781661666307862372769143236562374829343005387694819119815709648757476609948478848970110203235582694575882359636388385903396845283699334598693679545266443162060633473181046620773686370704901051041086791129987510731966335075656744202734423645914527997986612762563994878918568301087191801749448099338712654854292701492158711872125545264404128176626472335186114651652720810259831044039598282067178416481036183207879863555620104190867220295826201667559122073866150597284584776484781395923165270337627021785690156183090765748827903760469680045534962749642219583599907884357423667780475362066058155779836603066461427150832304141730648334477673137983226518650414166443046718028534154982093556987509501160368720463329513477722724051315977400643779150068377493274257076839852087258615446865731154366925744055491191110315144287535915845926967886524271948072989482672742278128767155667496538033606504547072936785061173843599705499195046165630905984155418958417905003597797608669886853108086305576407389620379824416254558409724890213296335639940515719235310659537068861713275851174776578990038855824122186814110855944520782556537839400290063994526853537329636571352148246231128550399428679083935429331048184900535169165748978839764911813217674798244756974359853311946599167077945002930010878204997745583761563321442203083917592213016839087481281929002144203728904454311933253994695937157857468813477957178355013552720822697299253656522303270302854291610038907440556869916652141938654894407072095478055739344494005608579326271053947024061081620722725809649169667484333446744180668875486348631499700205364805021636806566655062466663543094131131773079636165783684053505153672794491373994680390109401223657604527879853922188964971590068219567093618938214082618298695658846357377881581675617255022549921309472659065193834393167320824534039634837453028907904683256416459224154884797317436263227075006556285143019861109811014771421297323448717502896936256895741111055392362418597698500108175090348452761708173649117140969755237772090018536250656380042413904637189992463623570686788100396851979231323395239622009949732553150653074763449468168467998669448604523553309885888953105653274088647559033184839496694759318980907553458703907016044843869376680123907702289258551006814004879065939586966007683099724815062796007622898180065028322654358829062899987128981815595556755145665989766787093868368996035539289705611073190158958018687157159215381026817841759011408499566714413173517678692508823869713648608116549029246697648811501704785874071581953059819276720414401931748515741870997521612150081391326693418171758070758454795267762415364342689277943829300749755712502547865192722194445914794097878876723917908766686180813780577443008853225142975045294967461632754738089298681322638707451127585211099524200627392357244745187236802248379197789642071967717798210457198758544208908464608136222316426851149560641012572918599016819472793737703663366831990655680195092396927448852456296422727622969272918596532734406467896568453520778132876724620506176397929290562869654164400512598194774104294295784808037723241630852824613361830379200765748915883398854744998902972987462591183464321116793391852139945352272328702181231832267856345943996232427587094985775621797973128060981840280775198182743022349542928564319742884099408926714688381887102826970968224892795665002302082796395724584042874052226414086386655233169301062850402429062738581154217757165329703922645588787286417581777575132724158732142343893953719302785906300487931698916553575723496911192369588977624694542669455709812214131526901084166838711112737958446684104466002150813137118298778372696728712838970933374084525726921263940823867349477811888614592208398236360484378577121171055861159052684420133444649466535021794027890682649732525293778376183427952449618313483387376686952728799271491655731927218056000703019095831727095181092938901922687032258729470163121062025317384640401585631811649931763734064161275394096475282002661796762525626642032683462815367686731963618510197812147063128653012226270464580312823007927187634813293754864900793019745047099620850312930644893395254849248820043746746079113123620456609224754596420779035348489270503931796646762942792575382693586833268229780868477660790232952038144125082666877702144653869043150218388185324508095961924945716328704094937291210700068008294617159241630421672912763297709803613515804282962666825543750322235804954983638877603822102332441641224176119130103819049523656358170072830244790869526051439171009209129178146693127932762598581324895338815256634262003649083245562681849449682291726663259439002843961082912183481646833604474635411113213068035865366077400292010905042062065719835529019242225226765706336423343264703300102758088560751471994795537961689826374586824540131794068783586086907492513062465701772138020843726721731072474300786377028026685528019016213310017473084830976200026410472595600740659112168951422636701423062809581103977141590004872926078152134124120790996819773582554756989609579688912845879659050736114742356114556075255686734257815498604447142465349496573075912759995831897253950063303154970273392473902648070213995837866391652816919429478312118797094727341277415872565972240120477798487362434413697438690772922119274621542991563808079513356015007514371617279346727555072979828399334349639115692089732039235050549614775389368891648968398860098236995958903815367163806364477565237440149992464800384218033297813508523334279866787889724384221176949195904819670914800835960604313923972842888258592135464792733549766064388579436192726466907068971313435726729863748360573628597742103186811259216802015724879455492876784561276604761843706714293939940724382047320199088889457300455779429699311658819733772400646303194491853033861429081673014356946878088744315477186989627195273622508404184337751181825492898764059736142566126439138748656682373582038650416266573544552296327801927764993354596117716933035182580544770451576503896777616920772712750367588758773550661939380191229686280259597265143871405411841247339097979758510571318977763706182249636650794935751714803091313457042058227156112733826319733685090971246328319382433137242107241612968965861409134731182429801794870257501787267204617318338550866738255854396768195962611952473389257432431455610392939307376235114948959957711562655286335109050960573146535642784517742067765634232333383757031890343534821571691733221707384756868785052568640214583734845817475987388543149872028729263627048340903947919086814425514460326643113388288348891296189815933203551439562765642092990326227500220852030782471928661379899538949656442657559445878112154479952109138467069016909508837584465626137479968201487754718307485054211417271089362898953962430096195430910187735923311864075182094386908179728068709495868170213534763610894962415610022070979548811322088070257951646671229846143582815201721260795755721890765175819209540088973942086187543236435741067893179739347446585829729852533135481201690736098547159441808724482151547200151649708882682461902672574883228367385369326864855191833140804623515500330041100796301519882404215697149168308152416512180309698520245343016125176220885353326728304183137315148120792140399082209943465690195018864745017775484100764714619449112008397289532237760915227637217074223056233658271771665355845164067108769531763660786089240990664286596500334509632679913178199112597962760007798135309842878072401518354356664693470819994101417157196177300819182191615586449731274122777198412681467480162355567915107740004884921528220341993418376527448794372009564119791924344292628779047883407889148778181133377385397815218870547776361359163347263386838044309338043159304200074406719371901275170892936656603240214841131702602574663892467458276219769770520767245057263188910080367116138675724382587059440643087215593197463028484584208833636131349563363967007029472055708053496862300851339325216260683364675118117457990207334256328011764497366073953544628246231802164140472181425565862401445591275847280771160671276741549563347194641918306612510810903656022085173147582688651404991297873175171588213317435851636718206417233412285905102008194435570179443610079631319868209052263219680053647853353630597651420695952687727945633972540725973531948979812725350761674951078460297450109927479107828326402556311484521692362884754598356844110936998124395339206184294325609930605276540936130031584590918957216002383377328066635040494599424237851406531716176002115676593751117703270954768819980877459873355097652082349913743774593023606216089412115106921706318568002977945513823617850493941913108295491431961794318316368857620063157784057230217948580636817643213298087944067786142568137542519023000036297391353394827570542104235513623756458119068684406599460227287098845571358001980670004010003289586390348940533701087903426666414752181130425719677369020424668762873931775714221475717953986526117533041918805747054843157624982676536565443473415596730331726911844790168169161277357875564159905834116868588933328052123497116408196099680922476809156913619884698460231152186061656890776311734830179646542451825320389670864640021961280782884152783787802605348987086603491912932806968098847333486677414630314799558644874498643182137606661575287373001375394243245916516554430505024051623571801794712791150547868879380507562088673391023260026092261589154426812347973436412241270070477581040039977758210610683700347983014752694505169254528514048774271844374207825130076484550455177544181610683363497062937281280093921372798878313941968256546775009037255288456404237481112470269067966159360346894647037865967329596342577907619072906152928505473243652362852730083094725604755420627938325575189112397417239354816721897016763683225670180914461163672064874462745179422964671985034809761795203424098627151884504895929606647019226948658518858785488872048308956939568320174551976355172162631293944929918984732682624152989377485413697227067033361100498784366776965914678308209764998335580043998682976956821296686427466321372486562594118423734679521646746916727660614185488040523586913776090896068612748952948696333519612673334768657705037707197945151138838364460249970791192495442822183260071713757296064399099687507504345003029980954091358833722289809352577913001926022267044640626079762142061332286685875187115283477916141703726194836319329886687347001928022908071353672178133950115269513857718310823421807470858287839256988907274488932587091351472678308385606055475017587904671546556599831245056843828312135913980650613051741125060297959576719087864621763771413548192851360501634398518014282759009780274574166027484258347946699839569213354402018583870125085386461890226655261242047107184291976313917352112544436011337483644739544719386999516941287391215743706610302549654166923360822330324490097868216771860505419670245564372067315288308258694866618475303538004513655137279844235363193787319418330270294083630352826543238957331872961095254126633897079708989573962722170033478050429716265722735468301712965270002266103703973440796404162677000129813356127517536715064238738177653527845418182500148467630131411879097205232936812216197691073102982790397754629690346167756623137280766495770628067707198674539303150415167722004177431881295505434005988659821111204688609183598788921682029640973110684978805889313044527774912004383997742321419583441242769158068952865329865384873397248246861191771839089486599913039732456243408070598252217077820673437197473489234971804860137650840649103440718797911544885699913180881688144631481267997765660836804112584244709401322888906131602057749455004086106792621112965863712280316225893793178120536259898719533926134538865686376376802873731978390943145076555858611905864311098147756309308505337927723364821212975226375588715610057828340518529360934459160847494387171584593081284120769197583410990479466931973739449665519752998526102407043530885598956601082264036985336285628224484802880928148109184705309731730481518943658626674046819696534173124221325419460943598073799909041485107282831103684601414225475216749486776764093940476247479709371970582014911463107459039869684639340795728735122086053107747739159230753852748803772395210919617650972896189877445019252937372788610347897761576743763915872564241797768264025469196871866107697020576113040055756763039875661596790073253239540109000528855787472870588877254510059497551201566920273455565661095900200717945521834869608389292757898283131667672538173788535904844146942473473543621774911391691430846897054569329425957137394192067507059356608670254944208167154310781420125006943794646339941709747421667192063226502291403356738179597625934446448693089067892848825916997455587404343921676150521325259397133967243545534886130348199695253285363731139136034444883776478830651802846195409592125274876676228694625087221696389235282354519061754487800970784606141903420115805276769058077867565604413348232849582321499502394528848710640968526685405920475664483807156920770996871620655589557353995028785502869184533031902575083738874129959185572344280506459401500014239626420626267905530573842081512479539277824204709543478136091801070119026740304917032886934483431357848423725591355040528395949377897855246181372122996428012913788683370464277422326751248430419431211556154574476467251544667226749818392676268754612027259250162982510589322037911808454700194554415013130909550316565295139641314680869780846454100932444424139811653550091916578303016025622749094479197641648878142886024286684871548913244653406709652480301840716005134680186576248562408130237300588104181863841652312114400640909080012970784187395880534254425326943726962744763279201538825879733611261295785156876815971124240426293928546760963373316054309935292872568102140578779946618352715251492026931150348364938863408958956968595552424225267167414772960572622139401558637339358115260803748375188916741888621318812706075820558883584909994169532238819297984216113021228218383031168331100387340323664099149905835909872744429121110016958110214200877860898161520603562048876220603255899645965271911551824968843803689148967921348047778624024131766723905473289033589234595427410229170929139100804174342058991204372078953834030542563423551413957129664027534848096024456523183994861925662452293309119469745605193935706252787489336836317793258111822732190450979519425559524283669889381578924335635172120030384644019035304801308778362984997812296993230190697606010869753492425595685567968286282396687959164809458499969020466489280186747435230894792359215349578514297917921641752077398673570145083335934580659957033350851936862734325489019429568191005894994013752011845909859658040715167575298748942472013035554390921024753376178440609767457546529961485882522206843179608747714649422369677198920919759102336409777623978296611005074126083615484778325000720186687163702184760095197947270228926252725979413068561776353118098101466592494003703438860822483482582119913881682723692740093466073482234037066270208365762284872708062849503162782155852878040752795185029663332852286153415668693162776270975448573634565714249511932874055206354380842434090402275079644479918811077441770575055869175955789317025666940669717048133325745132827739550552190482559710997374466515362100040530820679664562662562958756478617956088423673310386085500377967762863692406877522243333038332170864953583015151381457608400632879497378609958128975053068744222027091414563243352105680823670355697979052650920572099458615224367109295481831027401926254839519009984826430418553730014143442982060743612176359973594547011170396199969439510706095626427595251811532295904271368877698392511125833003408227943987313354155263405775208075257141136980013612111489429577561722533481878543139890830646050546377634689198643464125001687782441443292995801074606173653275616070109162125238463861293766820298601205988053272607136168618557991428458578586492671077237340600815799942675332594460526784386389030987483804523669426144776243672293956260127957454951581335546319453692093573873629999640117248933480391486570208541571090241024436587533987804621476409459488970486533508997387830560692349348465723180108043732427428619936685635193347503049421689490471296810742302695646384409731276567982625701126454319639255965587032660419905463608607359389582942825252289730315014524913917328304224493165125558305336707465664938918213570219597724169784062031703617940528917365663671633376324199105438581463781951705070877741748967340627681124932126703491158375293316113271836297547357533602779474249081099797697152990144337558323489542740718080562146419294711117985042553525881824972958018500827049554514077412279585346640794946911929925579998644156157041681092817727528713569586449993021037293055850217545070735630003542272258699402779375922828485623610054455754548439148066866031120932793475678789037861157152844586613576349125214610222499653320394776021464390684767565744848914670713248062404325049082447619413538980489560550940303050357602406229732836953757422394164652912952213264426189806663153840369827975094465907931602881894926942498900724924674843889272636523903617731183611030827844252132711727699645097673319101239388522788921776397108901526905039333584719113449199243735820009902619936066754838323061211758309221406267140998387975264430653184050775160855037918814181776316870787129909765459774060395903262990159525701404669856241344306140563535052451181912415200670157398695404668575767890633495473547122083687997220383048619941498726420532947757646446958473370927278533590337995666396571569353587717510451581131322826214559381396177712058448254486573642111899854667920984315080925238486368238288098805811438540971805403472553931652823698249888914536315959955035806790573902787018468588493575948015284746434981613725535719995715622034838027857493841235205518598769344898228745825598681639314936021572311818976921624361166357602187228798377657292965911428450043057896819375615130068502809525017375657266834662152743823326097214941221257512386282958080579218233865411028448501367153147416554069514231197878754745540440563709668282868333597109256547275440227271709576119342055237130737798187778243438804458249936409759324136017276896017700717782465690122026953312357151226514113950465104627535600798714188593951512983921000053139239521678013612321171310002379804839566034679102734212140297193550484536076434698204172613135435056672209644989108511826231790307475031265976727831040675435809781843085876015548511618170423748912449143294280468074524770710938333833335114152149676384038049951416958659503146712537157318638440490882371790009109772791516553512993992434462279289232469729994294745066539853742369760374455800332487854396914103845134664785061177598433596269226980034542228111819568798932851168243331663553578861523888691478471363532341949406646628343130584028692649703354506596649724493536083239759831042504711066315076778014704656181682764715368846611740505444530459262166971051315166636640640157255411668154645090743460337344528198095310332237274602306564152123465993271525431240836594674802075250234344788262584525075858388921883541282495675491790212629750902555254376528195000743515202245742842854601764006324009131935640994213184287554064366375516232166831137340465575568511253242967263965103566346901022745073922342734123272683104768543824657080304239626107450089385112130450462580661887148903358154581093233185718068740578699003173696407899514983611929911936097883433568129841640729176051525767153981681929728515456950650263021083323936044765025055894244060682077593092167454933810612440788872294225271995387575327555960530151811009139668912958728329939883612182256495848402483419697013392578643522114936026865481375928980489418136665928740482527418037293040989195417439506696085242264924943964483035315297384052308534326862902234143649885297193977972228221774626324332150952572703535733490506721210715470427078423122906628709599000806231512179051843952778036495686180041832686743072770873470580293739102521619335215556072460063730665507917414308251024872236800183470472494949168043866588556830397591864332892987523222033945552492252777494204917770183559422851162041456553500204944761538368342942638048359548665986509752500732980299043029517405126940208522029772761554296598651608622091522263624572212824574022159964773164823393380710905613608513289744922435532671562104769303432334194061109466386493374440339035905686136851582767847185976621790827545034500381839721194894192038532417972765017963834057154097997186558850347977322896198763939184515233888490765122506815871129291249171909556226465657678767388598893127319923498919221753722537618312993513391704113188125428429024301598177110963190437463737615072616305838050528479762201534887194743427894405768794699065035667908746248570915620431867340827830441599779675946091735592552376018727166274845918922321680626292103495888241887733033042115388240021622235687773957799699989215014693686828227165010927433525584648853657268713076639117330986938799669182342718653545681391788912346604263956479782408830823961153021193980468242724229622972339934199904721349051376604713459846302292960907349871083896569814585649305443231213713133412540060479240435357569941426206306455012806994184322411908107548988327486044267056362570943476985886021522487968846844515374283918115581206500697417375987035321741867182207998460461506366898416938751193411030977211436503537328336217543317609641245381286448601586642777525403419189213225882714661476406293302403975230820147834950904439861562999254478344061052513504527000831429360447367490333793320773660725933486418261393167723594847492931327648786968695201559113065976755506149938698566274645194276453489235989312388632386406291451623525042015246697404990496666150098178949557913655447898649467816908835394460336472876654535334731271656561033295098267078654619959793610674101374417466303656292189432740417149092200502087496494304171501042450174319281432969334337653577252407269947247219600167515016330412158439052313998045218475057316338746689571052586265997524247584912984788100755872578400169480219736739132041950633939019230860636637920732996616141486115625486421320022360411771834028606778198422635264390707994601412627446250921395921236093212728114959732860399673631193861040137058103791351207092495694181626812136781401531133238579487754895442949309273344703290392941316450443897879378320278712992080452355101453803986856526645585596028877271533314283007480276695181783090257875381114678272285907505517183757205291342056310588294219731526233882884366460833499244248373530113525884256759518873483534774278884285979424703791526528694321914012774593798859773032015789186762949832275121876479325211378371557944986785885979409931442621217732096544995569709258804558912210162632661793648476133014108357907400651664438230031417460589366772111822920956489505374983615272380704216047139607323594750251114324804350348635917060524221158070645954636384264861081632096351868324750467651524777935778092370809082198506284808755267091883009124109601909205159182817066051066468660629379191472318428710311944367665797341673759099913542697404359976062465219963122218126971855163553348593630691994717781579597954135830424831736297794033402607336996558387353460309204909021269321016009759413893669892986501893450003682809526778832376281836516676758104847808878131939981093196621530237702531192200577002297076868992668180768981794211274392336954600365194607601039956834280811301898614840680784639235877319770810388531658331876320912654146761433333486262064128538631037567201436501872987208671481528278943964409411545233781431892933613379793904884500084935050834846997950535851532496075363770016254517449089673495448820911498072066905882376243832387688100077915127497606642926161889548928011107799509052887588069463082619857885159421709764131023312988981473274779186154409474880583904384449138856696923932337164189912238548583412446628714398576829741120918145344827752590594302132913038951928408505570715378001448700632501595265924902934411448860020204716109012469873200975643606552011356150475336794803159977633604761307057904980759005964737387181335075248045367783770520470399198914024198890004230146490471262261014841251936321145109210064581553805569289244493913658639976058927750892208748689863075706010261894250986786243478404926553944398438444155520445874512946937504624461116966945067013611582346625077855195077823851406323166329436853099787365728468808632451211973899269327550759502745518479373497497543954709368203783609319130325927694113023906190799219271290668479342626948987101530722436955603262212872663334706704240354023733429739069671205582542077374426781264207359102733322667457828807282368002676352720257915253441681034892872033166673524145940494382484901335119938592997453011106389976822429314788013459371497139750386888906331869963955394205299327181222706458216287688434068165296601330858979045289815321403328663145035285128142369116662118710686248707866194069765403487336117730838574828843668742928526820830919923704479659649419716832124056724983158413946917996358849242061285309013366773600822858352003612262238591545860843347538836363922474919300218059982938696966606871704836014216989361419858127092959540622751447787132535520553058566142561994616607287664719575234091642311460403007340364721115757535154360515205842231540873584079067703184200468140796179653298087432157385511260637484421546916729927203632707856119580343835525927025507236836579958211996490120331708009051206969752500216510294452072842034674806738171911319057724376716990683946661777779569233949134584041292938480020422529160741521619710282397156770687712322817686093204123945282178488956901089965575926306956228350707413505386206482091307327719206614862575094455409171139029342851468000764734328300877154047053686833296018821175228398767533772665419762187202811819661861314602556295569364524019044644080253556471492816698483134373064122088392828866466586314510611663242554236833286054508637336679334596888090439343923564837315108457632025343743536233476207840714029681703981255322890625029562502882936862518306334080308751549818970419936988620915356082964298108880053003962989043306907077984271311726655750236966150639823764679598556051904609875747768063980444493663419412752033733880128323849967168535533013092647339780984523210228620268429627078906435534133710798210956083224034860411580124558262211584998545350146078349826427907316752387802240759231083092346868782484274191810483547399211378680491234152763863513004238722011282030631563769937760396391788792744360689089325990389798449559964668774539537547213403871593975194043218778982924135917301442913599773635081537937682865335487080143460376834458082858212791233176701291023315711556157806325144514499534701961248829968481167869362589764654926241529012908636088238416410495909375975189001896272755911665589070193656715410148053625559807586299697177730505075278056336943883245370314469624939841834412691734032726771883404647377101048097300954709496939480995036879479172639989919040812103698145810887702844101340548634865047159364586481458094517469291328831068742445792574337865463889804219944402346819734822360188498669119300106951166503327383365735056739052621441576479200258081633646569624819306044099359650936799304617398703043934600547636656631980935606847355513368410460294373920603247159841244660246834889605824891588626788650856955032657193097672017844237744622142511232949544278993774460915100656477597390665922503144849335927733048493954616476308732121931975910508189008115211705738979760988531841373041048135628287500247391548414118632701768371333272052538347924986100457805066806712793093532312109848667075063428295988870571484418864772471496488613821163666954436217005230823034396252856587699665716029995213114797347377312115188713576323090191127255899914144611575676557940437059430540155831611371928381459351860023734544346966755757335901578424855870912367387749310928641203921038932081316764750535679228344633352666845753934833034776653713881193004686549380149898081719352166618595716739682850916693839988959084982273761241946599772507853663225617478339698758733011317330194045502908696491877212936858868232891212679131523034018868127929439662974766871680919530523059382658790972669507032134116591817302476700028258206660315070574387363528277208416664231829661530463866099842555221166943575122441516864394282727582978771443886482136664745911282561714164996099550751217065748093050562562783151652634403784714674507172838287340285103162402508500628099893485984938216301593710811878216114741187156186911404303329618003887600731342298133799012564282578297126570118541852870812822862947298080048456703413463523951209314975357562328244396196663988995999947464792277965086530602621248994767177997654859051882010696219247698657985835849368609778247019636108127352099433431335056319763538504642819962613176296066644847883060822424389565421853646113129491855635027650247923882003516128118346793403451278568637364408721519465203709049982724729105572354671713260132497163254235879030417748581562400238803618859009441259155044076272496200133791816449025833685569198471387498273624218574445093308023046895439392937118588593522590581538267193971332589785552730707140794008808056755510491270391475900705229805623148921518294397256007401121978251947999444402956029519352713327419256964246573570462527412233711138298515293615216077935519458008002152026122754212813183329768384832375289595040039613282814212935741459161206446507230591033457357107563910724196366478133013028553185367086795897268769855697446784150896065806025984431738473094552657684506580510104252410176331029762722928572328138605132538214774384475065877181972157687419467355524023786868766523670379915600761126473891333816311158713305867347054620874825185049136708062707211651664103155908956245217315449869535896440833636024748822208640409860222253821860455278507361105679741124321577913252161209623046747121465464499806982131721429717343232687751999747660308986755676542662588790036179315080371667189217767084718349541011079712594867279332406135278659669657762243500882260560070366943294614635695402438220144816663409190193598122528884577957204030247892283846246105756641754303306949459103958926787789389427115973782514957542720509385812723935610962293019247079600161522201896371016020022562926872871555817810825055717447276173680386675843026084972300045102541724527986008751545395974925852270647607981008004364213852146613140176553574541583016695216753840872114486496005706689409753725691034452858636873200376114150722730005757156383837856467857547443468991714321319491208949002939604560881984674014977007844543427603032732846143158995375545337149837605864951093075238688886548093835939560218195151167474860460285888239548273439463283050096607841903748236284517271865131782644466350275271174338384783356020687789338867677598976492771365066987083600508816916920061058954803975975570071123579408870899891838156718752092453480548174495318235152038738387059959592578947423798567190385878236921691895016714128784249782384789652620541779999685997240167895994524865338229758892798571720444144435491131239015470245230710371062551593831025093751134615620200360234157119568306547881231230495155135694744977479872465489613252574491857872404479193565564023623199890110805131430776093926029051308791226804194394799064374022794021019463179159661262066237950239763863588525003076800643934560908055782432235154580298135561129511173463168928170208559414361049879910545517007764732387105014655301730693697676145656445174826424464373161322186948359153554938969244902393426307651528982096927621351650471403985213476548254662342875165117143803060745638922851059583788887474171986374263302127790467787272568464745253483626649233813059460771132458507475820395772841138106707482604709933141329890636913392722513210021258837664302657052086735320568131324912322851699850530191375889817146541951934117074587398649643955700322004527684424539311912561552072463812639915085321494830703891776528751271479736870204795260578748706128342165684233402039356365166595521405958876560081781646010509368935239793747482266021614150663878749927624311732473021584705994921085701168383147294343728017354058615454186914012396718314531529306462833032502074033190965861871336123752663868621802574788038065584646002738080685170270835513297008348373847208964453674739742204710866970571431772706378475208202752668427160501111325260602326298035759404298854141131985651927496544541874478125545413903170314649776565583653606831573326546814215117485637040434561953471788853426360995920744932447074120304441897375299828131231939852649798388236699496739977669507307473973764940623426168076308386024302283872936889455884839865140027709805637537922677522967800068508499398855413379000934958914134983195699506831262230425849659755229398266754368577768964531784777286954805103121373414557444823661938823286941538753495265339301110202146535895018333867106879579572031923471324633489748009406398330809567665331098230934540820484657359911040265021526028659726880415205044527798309469453057083479231929867714343392437157206110258608040705897835421207414603159296433173155272621266951920473494629195085416557563634600500847627899132942097960789493821583836479402306222264739004005208837058842809816482704995890192488199575275264194600198535912902356285938075106143451162269704744877996106498146183988999783570022863786197424478805178798558521719016139230664710937717635085008887122620874940202380732828097660560881522758162064862623212055277960531113828079981478022579413410309606420275909443204748986062452490724354303767439427202912718182473590555839846282456170459179655624098474647062783116889914708262082251678271959454994571089114741913458045575275882907099451736251039858732044190277841204825935297274123718695750306231510020547769179867611387733633620627611645817585492642682106043041948280543922251206139426211074916702635867139871734301920678163703648400163342569039900384349725946661926680920366193902682568558137367961363207724430242354236752526621784829452374059073895461686410031054903600417576304213143660214197264519434067957574736300652349539430743844574469004814905078122574538603522464596645636077538673884919702939131205312020876510563560035866550776306797852286199662605492459258535880227717117503190935698344169949183417472799613444499891387283118592158006595715108121497970269870412438989125444702279655874509853440216169762691060233527943884749780896943579001211092900486335500390632408317414212554670514066112946162071209443015455590009142951616925405772945116484265519840776322053385896845990159929166769984942753344341916082580512558795321718651369794693271926188914844617352625396047171055981329465654131885880487882291272482749320566609574585689720052235866996077986383955398694373532599031528722852392909647705401798244431829400996367650774047415493799173677447100222502634242031787687832680241185138980139792193158133321333033396362566382610848689914969704469719286827587059277058726939633174273992808889221362302922981364195190378355544567508956630016430457931711079176947574142449104773392609284847897871792430960048770900962860579930746436186427545563224550279757230393037291669059805716772728156469943319228387785321250466892729163363852354012494972436629584030940339005530467314239846151322390062328661155607568191383467278587610139657806207028179974340612533513424562169392562779592443236421976726900583559919630804612797679248580996179355824306641545008135709549629563483169437883076557986824409935010063830217709713226480867291807980492301191648541328857516948713879323950964837845627625166963291989603346435974188961983423447139658623608097457847248755993847700604504979467011114008551976674280107612204056210576983906634353972579204385334947155932697223730868520044190612953479332035215263363785787115429462505456214598962132586832955094938787978958341563799839047174587577808764782259845928071549102270267385807173693002739054405558626194430414307439319460655980900975748344632023447406360125018053325573729639160749444969310316491784569017885321285763423974159445071952816884552344287488274356314271968519275160462015855179140995990284139185892731656400302407328145397608221774373642670803493838450052228139753794168435734085318293413268490307922532027879105763188900414446154287200941294982512853387519566691127778656990465901361904365123142940797793572648204581623132411275311670011355400291813631903968744351326494444247677228907672390202160996750063587492002672359452424230311130684809081232776609031406152508607369969585110722358506600491799030190174155609566349408912485503848725488609356147421564243169508334144581258983328487318812399404372569257237848540820520935832679594069435363099399006216870851719571081956432411645136347545411107635135855063436961074431291006226477369636908053904357073383664513758893797857062580778812113987673363946033893288884762443552296961035901577513271199302119537927017836112926544496874594868368665863580464577648961060541960311120258185158508872882768855419472229330374236730395015501035297732391035296686371046474814737010647574228164747840774134465097316568215838824160519792751114552158026018066019939673118443084773607705895717720887670169972229816146775633653319559867791905262438415358055827639966066792908428780470705511512036799999374906401807606653211464226859406675421937140251722269219877260764107506489544624677417172398423567565037896222407772862827796219822280997648031919642374453051731811848002320428069730360967608453832598365954776400655381027584264767448848879176114568088481518612739101736905850625274206940814149591975209770551360295101973813071567770527681556096717542180877951290727956141874074973220041329925590996757800445716610757659501161975757338250991036522230824417774592251583029737674571595161568065781950076428733420155060102602025078033189541774877004878358478351633462069699148228331474835094633477943570206703461436630487729342246519724009186811408267513977040036686716733096177721402489790774948323409192340179667524223236353197049960210508321964715775608751405689882009487587918790475122874987606789163059617595253426455588896347133111903058172304382903491722929732172161340727028033711357403047633719802974202914023011629802803144240394645733771820933633708992086150326607318455444785001433442039256476785281147419160386484586558319704508462123502622558558263678696858285516232627586901886790727469378307929804602647761963336407473069640316579326079825063424100439317810541169370940364614203990427297290015382696811760268160106644272944499706595995141435539488111842830543801191662527354859448760981757773816759600349968452967324227444287053042536313317425666611123107297549626456411261427998707767206349295147721729117123790129873642841938671906760423854254772233173920624356012036632290689876389092961995249689224690796670758739183429001443097722939519967099079544913507944200157678183692685617335307146843073334501909517785729790271276643150388466888202904847363664279758826060984641212927733437320867492188584266775858143409123750001930529197248549303884032886684494618158434508253163293914937354270885391711877638347577195037952629287480927910429273169949880268177033198658544357846448665664464577940086920212736760358328625298597352618301684187678968007355165303146933013300058999321769131201173953749417065611587090429511393515733468853018885187735430965163992575699153545602720262557330323676557195606856280348023095902747772384585566782869567939860478703733368962080964085680519543459914567725906482395750507320820690968034649613927221373007544162090911255125810084428875791010703903717546770383917084967077836148886729006054703529576003875916282654056268005759664283597960254330284470239463573340956591399127202674723961354851331376886762784025073671381054807025152359516365967134789809273367591001917314551948245697670744775295465652611339824772718267836330020801469089656091087739363405761770128461804031852823271634417188650528367365306030811617094615331621178668101773963594446713193336925822103292300499178050479516899961171301000820532100771453146154560228149949822482039048565079973034755215101975370304196581298808860523194946408097583993255242633923381657359868340290595639648963119061521132145753235166794588623490692138692161785889407731119799837257180084199091708642898342963531339117234634066876828498545395461426134428345725821086809510668997624507333681396299141523074383849799333902731272302552877664342984159375296276307364514074535075976429259063805143433373668074629950707656799173759944463059892830156673444815534457581647852096777599494548118409791944182705241261759794349668547958897860283587462929767342522686445268657487432347369625783101430504993168001757923384613184212205188535204812731804303782526161420664760172356128423122708451355046716899062908694540761810318298500416755776128574900364889266759457359285500284372425372792997570258196182729367239937227122684958333368699869534152862930510516839950593663922347642171712433266328273893560018851667006388322475459529570252210147763303921066982077851429588985494540565720739750526062107240844811862567617280261595367024594666492592209508119049022878005827476893031740386856316802734737189638751541166683220255480663530068725187110141496269569616425417297334726005472020267688458740892338868528207317608319892164308467386168280537780455494518508968828896253436737825140642242436985889645571352411670052681279241992399241429068304505707718953960318246442060631765984630204866844005357910218807043691807474739664524847310333508468267296950105846512222887297584481444059430623221008939765001607742861240775269815324008820989571668946108347910680790560328482705325041290005464845630474293088517760314594565331511405550413821532164871698191284573857170735208842299883399567445212947456166214369134544368809647802277625842278385930240592115438270872876958241846887543025544377952402459536621658104583104759515901889776149893865194758568519561628227962194010331130876846188318333306114534955398510921813552176335951677308689086040859531993413190389580160419470767373485505825040736129089762147395097048101969500461333392459718992813313038440436378946865199082341443733934773907657133738491903743088419987245254949540886003969218800760568008269496635250737532368243573403248108289481036067019368279021396110374717147903893461465722838429836881551204587454567638915054141601194376324195885498185339799099588021036606258645593414425372622636824666395989545469574314953733125734555974993851888114332491031494373035502284775385614349204061317304396679144103944676714719973475529346246054059867472983461336318611136196634468151659642713298602873255332017335718889938214115964458116120923937838385959035432615684163517781861004527130945839066875422829949858577503095095611525152459474260114513894285514463978726673581247436298165610585469718143531917541374036983859113977704742103916118633846154445801246074517407735573002487688687352213427360168477625832588887820597355245022501021598110880193356651189666776521451813084396534371359233263505362885778830366955347886507345796132400080567471142890973557075843751836169421959428138084034696408384045813302848314611040652864059185853699362247508912145675579377170272380812347565400346892995798229868059840527503714294852676620190727393427668228089895321856809381859409236052200920732451099464834855911779465676576132328231414268163719410493959832565317742642278995252253841902955539998401112334188880158253635885648754285561028496920147982231189354446250854800187587561318375877286854583596238405488354918865740055588791554634449040544815099563957615316689221195828040473206979156776428782466801601614068176991920060792590893227996985211752558986934011146579153931950880926315776312170941552952458268059249413128245821985147402829605036500829161364310149098766921968036548656044127966773755230840503775831457132684553866682023975338378926092710068142668903293282711403999570178948057465315464013777404123420491892832069125634861740375400034317647951955302866254887477715011623113224547859066783532674939484712672239446298191220969235075062577837615388122699422198371718316694358044296424040607218437358592903174765269623503436154271645938666246925319350636100259738045652320537507556317281187617476681735896942715646272997483674814329330191115205933976643740180558429183659327309679083131012313386514386271954621993748769893196838476285359499284816952658072232606865388177993073925432031157992526794293738837762113668804512007050208782679701753563011220071895138295420622809192876168432280012211212903844611621769913430681145400684645823590879216973081586256936235003078326202768591690293468142138779522147657136060023277554388236817082194634426971862955819474673101407881761429323816430444516710341197820348911933799720543493748382460738989846993582481731045065862329843146992058883142320032937469203803671307249859726705303720834831660957450693730923255154589057908260370418571536841186188060985971480155338202294851001163021077077550602314185254893003713156120965193769057514415655999047883346213354666489805016521793216796880529642511148014776974640123228769451093510060420158736399134087779093357142022391446722520665075651017831182209749925069480091431402214037954908672787538606404347304252446531912896001325051822588365973949114107321093838242081698804645455783188945571554243008943761323808298585483429854440260127204349063198269466469624853171460571465222532697407813726825656540715650889752141065042669135822651550899061665203618073214624209319958357427923251254770890014394166610335595749094009972533529971927036917914086508299172440975016382858375784147540907523503703200233168870424760975561615806318549740613615294715000901608751080420097493931439462344864103365351623231444150918697147241412976313105375924596064408856925592899561568859789183241725647045572917588183918794365735920544559315617673257995334558454739106501646390583327515937409858710157330560063530155973883394493879269567594116947005121121016328727734665302119343510509795587144381651345131937331347504243580539885052011387762144512618729193911830269270368270462551702696134426338732621902104599527146275752082262942028638697543820353898606947412686034730606841691307700640975307522966891447494704238118825130237250631469455937103040078104226901980971327142036392391130871549221638229115310966967771481802863697892876935380586414043445975455986342807952410920207819610714580094518352270940559066784914577568458212571004982366782767286032150417116915242011814699299192080665703361391552325081641784239436694098220761610429378033055875470881274115473179143966181220965671944557434922326809253355130140364605180516870135302969724328903439648732152941120201004416719784363428925103461458126118701736373346644955182918669492968504215973892176865941043581692807527648243333606848975899250767022915036375357192012845605544485546512739744526509946160361080680183656823761564347338162780248237545355166078358793794355046550427576715730587666525274849453012425235401670340258664788872688309886733556720710545325326306476558566390819088192757102640236903123316591651609502645605652362891123909825641764179735597694005061767412452162153286880973710780605041861757410387396020959057661853972773716093451348214711047577050041952391141217673650507254009121681470289874225110454930942631077612966384864767227137669414057748141396814104928029226411812311221503566597949467842216810463586974272180708037157563857896797574572186101317957421781193583633374810583133251833850574568315961644742994944288388825662312446742209242281290060711989220576420273676288319518444142491077598692622382856093724214310722745843942839568677716632506256850511681378873668100972128922374754485227618829828317257669070210713794679202137259521842701131504288098235347912971065433590407209499949225238030078967555683049842345142682746931286761292294854950592015303061773749083040504790611235648556268782342014654547691753454072634739328045334873207468367943101514106959563662050610649940413653584306993219582807570868569143240738503443942925120353443669219217245038694362119081116220019140083634238737772492527036933713522263913216041050289662355261058366986020429906067131271417742543348982275318092155171111147682646872407731288781381686998953105564485393846513119649593039766969912076943230357004482899497002031448660837804475993158473615690512232466731432938835651981018240588199406882710380826668344060928530632210552376962001007642681362886968235785011887965750599889531769007418763965516120119761498035698453757622159427997414270651117450732245338556828498050214245709435594778509333952698612290096770048248708151394221649713670431401639251816953819063733738723582493167334756744264127755027374592800230570518128140836093540051956464469003817281355558779901077646418660063415698579280391698571216954307572776001730999552630840048976292026988593120118663614417324420402141255424777291749483886907248047388360466837523160703768610154173814257829359140788811499963919818634363375766706106930468368506253963336362043015835557772943502836835234322942227197993716398171776769781695524191732223919875278598659928631577028903721065920583751153100851237015702912860670736506332366808744855902149715690587930515408472645542864886678391961356032045569857795819095512164065904392140678752137641858876016240475580439263226632684628527207623967106828314722409929268258930133324310499453454172929655368668807534105847700526646983247584792299352827514947625256404128377527774634112113211252744343989682044164378022813224153039749552588135936542511560611166258485611052084999461632392635164080487037932808126587783023063691182902609050190239521976907717252225294345677188999076587436142577243866042952252478970926049127422126606990112273923379160725857631652731889527002500452173058487378312889567383738753095437922225058461302752878550137291464845033972010826872297860785690725905936409143189895293927696242427642821107481521486920376674959927919130450984081364518234320931516178445906448581829017127166276648257864629302996956098663382252142201454699251845633219926516643609099503216342905291496197542807414611785596564475250966630405484768851490743116050695451413769603031640371297011028740362411241456612556965722364804566973862993818445246413855458388829598665131524406343415282367491351772286332615237446907568172937932535040636691616109153053923185319338872300795861617447085527061889459262017388824231652296977526877075130284158677991236067617300956161394108101190083975958512512710079332906739165119985440121207404967292597089546312245066756928362600823664524839044666724342751997088449822426963327381724753544391587600425501447174167230327962017892179553193031907408697252195239960813556761877142223947807367975666075632663468091092169017618218566163706426068008590491982688576036521992627306681824752570992194718367746115513292982039499912159379634646061200635262204402958161569143146729490779622309421596665429917527157610280521616541992267480317573544182314447269449079232564059163040508535463399372480324279448837340143988288283282813616613719985805471792478238470970940124888670736138203707657104960682450862792405158679762369779843237020254310076424588478636085891783610409386471611911281860251329870664262973265712012932749236009339335533591255969517953508974974197650614934367122158957452913225940451325687288716482869355703339303355118838382542326563155825795600876462253958908994342808961420411880778210329769162963056324401697208049920211132674301174917714676557560838126768777712268205093973178716379555271591182619380162417497124728806304456017594251974352110653652031499154670506480606225649310976173088516784761852044588128589623168630859061191163366197876609075387546840064363467563237626962227485034251414015670995565884817246821765990894861215417992769264959721202728581826689948443891116982589214626709903059089282669887715477790796832544730712674186475927611683715126499398326566509986871829633041974144000547993940192526354019878474911519011242115633086769805941643738579947158944123198256155286495545104988263733742610276391815008440700527440169549667061769825306102449614726864160502812130474037325433129722708378285515294006095920928999758452577047139940423390865290175406462502106131801961395375251019255497123361324022251425112799041934695288208785101548440373353440667752020805094001446219128223770804138442487802108263436021616753622821894335501154664491132271637604623165280814815540326034798328122329908006953864413679740098341135938845340212758082239824008422423040673240797509090632116621540015667299188010806877520377831679786870927510263683021224904976438728831786866789643832244468382744416468688963700048021803687011874800856737785532112989944813095878724392954139589435715383534001604456638883631199191196977358843067369108208998297724070382914736368364118258094362900808799628329082696262979687602800213543358698456909794029750602938373626508628358689406534556040798643771686870870093393700458472391364111712667103215558260935534942020583006923177725812887997615050719776905980621158745010692489551251316219338647930631914291087762394743797562732891298761137358000556752963859115004119706693164395086517170475660422171140602224311858989053213027291783534914278702690879666893206893173292727475531120109292712450126112882821479045393713403202796848140049519143720163566473029727690663535754950981261905639886197935048736373710994453232095703416347976891878237628067075394145555276862848295915871394889959388314106889265127286942087496914614018681189162445353669540966025292190413466719781915518059938582796251110916730887696502382586868006360220779877981865825721246637285440314231026295531694823662290989965669108007637994756914916963049276439558467636910383580691024001915762314587917216676781216416452137233032614231173747470062536836599003523618581585190036976354876756644493228500942771338540001467724442850767066591182239934018031583686358681535287808833805497079914692710263647502894565231784633503032765262719973844869911837417157191922436122381508388874141718396387145010962650168636627335324578044913635872632320556481693724436764832323721118077055121735437714995819582414745175810614512731015304253104056574232313691308840718615523115700480780347311130618756884328571387722015843439295170821204849367851220511820084153990744739953842142983668276042890290634462082861341103311039059295030393220341775629880833222638320501991695774481567261290276786102520850969506714428761029528330294640272237729953789941448553391576407217965309913613908111304321829912300372377148210068631911376082810989684483533742228078152835719033262245462824795776078162952368601330482815308602004568190911591759616578694766364827550195478535544442328528487420776826835414627782681120511068437765771271366670351901936010625900056983703953549605345424357175083188557542897390598569243573738762030498147376446346992830102571443985139883279346533325601844055329981786575954404649497073536015372613055529211812439426046509821014941002848214399100745489002784893711167999466321941113588450957255207050810910985373068388661367708079003411712093207926407867488832519237609794676095873388054306747056650640850143759760994447914847389254535411956655329090614103689584844367010544902384883486488300706626600383501215136171623315941655084873583137659678289915057613888242150925536340090742469752878865257975023800991654162322671558388918854872237198526964987912177408708379060972269833239459245510260937857056384499259892346832113459953603821809260071486204466313087848001344444604900475601552547411409934107508134975563257699331041504168081696613051382051810964010319341520689777859772189371721625588488197869750463501104000492072934251752529935208936418318795432654981104698570555859432481786641257288675253002454471900955557945457877698464310955721407577298092335168269763941059011525330866584934791145213997691392668982963542947018851909965439229690075001372936449360257778336776145494620244001444031952614523075605637079681837767623175021634956696786481560909095171107961918867359189506530178700904701454484013738950382955640027675388618424325257599986882553937605124498449482607780015410069991404237068657731995639726832810915591551775220716786593578508821452532671858403823962099491545302445445293840117321087680451568083790367816742991935241194935778259719164599038819863016781242801175673643912067794443294624940884924064824679089319530183094036045020974648895973054805199527967180102008115090484211004824404599171558838196313720745745349898962568236304417002867775290868825690855545527181656382683118904594266308170379048826447810456940284139843979463235379607984408562017803019119886305653978143663522529707917416934942446130487633384002984900550305631259518383549166061091834713201599625961793013719621088769364331465158406169389024328193153590867103165299680877700925699591114565051492783601971885873200576942885893987819810103267883748615493154575044781637949093575562319097223146125549175241817121007680546063500138886267011975217505335169361642353365776996060902839239239595558105423178850902748919138295530911092079386625280177708709291780696892064219385333231726910133800818834791277593540757279984008848132320448506227133972326355713164340563153098264373284156369590855383405198333442966360073178629534193518474308855952670537963896462231266140607249753281264866174939397641184867446105107924420246017792956265696998555941677948967933903133602061125096506463990026659409869564422467097687339530117153864819118646642398901990002236722861411471479582385400730470488192487643973157883283985839199013181498561150958916738316936430676392881422017421733144041030484848822335624610632314491723621045137363176662421033897123738452154353111034814425865972740215816503534059174966372097050898777001367979468947955402800006819809425530185245409564185443894237034597440916197430238535513004150610734659722313068383795908787090152494794768734555086201962011463017195120575069216300962575441744468818051971073000723673349735868463033676843551965310824234089133687163292025267726686693459590444033331264475148632836128789425063104656351816233353091263739399423391103945800668062437343079618112933286711060749467676292256298783726557325892898315010364726974261054641081864317988960394940303040993140965961758637095683856317168013238582650917157675747557494547142334662349185468674233146032107256059561944292086341177663228608910035428247597541607518238833268552301678618038343475187287047180252969449686123233246449668693195428241033041014080802027256121592038359742625015113579582570680235706981363828014675603762197136869071888802080746168715119066541158934031165370341642269089213861146056659056679480028730364292206286190042912400608169971730708623676313567630741093889274315641191942471285622203802129987046959110799888299789534565177142825746937189773562322385836872433101507905522475091401605054225133516588637631111122138909049273164765471153271410658939559716626343365078594861642258805446921115054236927853338586873226384056136883363147995927596111943843531251759448962687427842947344506330092321002805864860047100559687775804740647439169574551248329784956151367698628009253954099329114746494299079935488612772182916245989410934757430236900947993133224206478580137674942858751323879611386496998001375774861108229283699092522349099239087275230905700494483547007855465222095653744185329443026477884601637399917025082157435038194841337671120415721896576497117784404620384151271118015093292205664326614638257604294855725131295231841968836240114814308380979283223202487362891233466366888650462481307313154610177901886403364481243322832335045205980767239608420772878802460819296804084650931777086028307865834190267941082869007057194646591093001030889418003782649314928157277607271240799806175689572416849736659331469908776870306321586200525289234475838948529961527644389409601673424909236318611534847671362037468660304712196748131828516509207747929580376308885334836877952009038961975760105997193438250926039497615706729482079547048472173968018174563557807806588526445273889697251248531359526935789080422708409093648158337519001433112658027319047946319500532431680360433126704677769884401747718147079874933308173384429194341699065115438929245187957430113548984926306409607116089665827140346515518492035081135347392102530666343628881998249427855694026970646760936229133819059310584353526693071376481011144843465901895158105070637721244199843509745268302364271352390322210852256008697121973539476674973134327438228486764317542323217155990821459535684903592855728613646304758281253195520830199178540521100999919808114818960270660541529223349269505752458810864860670616788921401465267155737921784422837858619478217689909884508196427890086440017355672476117769498464918602692885500259029208143942005035128950506273294845511286051966541890271252812698733128161755350759978517706573578471788263136459393180334275824767810404601484206232257327614760299875280921939560128487318040191304738804562237202597516592916060145920670563285372049873964925672393096556172008780496692024805583460270749470646307165324079964559050877850039256066352834742338824721877458620682084319094880408871638090022666955273159342311852795475982672956963090776165985672495558074082990017551092186330655272564748305501985953667283582168769627931175982373032244903755016249067632097314751729826877726630786544318503690905972785041948332831715882693411982500709660126702739346243415921987976476031033830248619058384162575736013710957192091064146730607881850448374499065044529310913821628630760519264051551621698364883699080232666447387994013462585028118000718945733049575726171004919026495169603305714544485784644744241564404557147399086732136066170455217136131214129701948295055823129375430837701094546630497192374874561924223589843641641654706152673876679534556997614627975323777142349404533563297810428946953967001257436905696344745345759316699824991491027434221375023873697324819623343109760852654753702268738930783344314459435539441537514090494714868434062436005451680034411500139336884686514087508807366520722103064608381384563489564059267917469876802304625300652630659874201912795043408613237238881178644397162445943796380450496847794100579311053735822768189539443386373729866489371786206167714151661456213796586022187954170159418033069922334395016965392433291092924777973366807420965461214864906682673551854517759266824292806516882300284605783767100904165110771108675524932741905760460808457392885244128929902293210270464493460812201150672522213039804339170510600483333908060810053811538717838831764172278255233733186590784694226649419883060345453350592243677762482701610414612213858068679338724572896448513904569245570051285875886043956243047684187385319788542409616304335298024849899291289237162524517665755883142953699967853986767675791548638364492517058756699279979055454161720749126321447847225732916653560776393395741514137890325134788569360169533286814630979850822442941652849799596496120069193180726623243741445625339900886983023786736395300362898301745888745914529431287590753320179451720733828851524258133078899823769504381593065214450463592702899805018431940575918155471917028727852998815859292447993396648223867107629838700246616279495779425557928834290929352970064403182137343084532113644865491494639026944675927250607324545717802823597993544641665213008302148122079928392893295823798572634305904351797851675185071750698022475478645043925104014431185956862926088560830646859344609483184297749924377013847684943180640898011118134909218783062351287303466058392526769870034547899764469698298162551735512762645875312722233944291787871276465498816480117470758822282211089055194021026831440647589757248425710024540102882737232166178762591341089409977674928606900654269275494909059776686073605386724654630860169393901940088383988670043908593523118202174175948012343738256687584177423326597024849581267103413580517488365225430098608268330085433900378338681647066824052670022988562708773907881151813393221309000552175386694836963415815968758937976320119969959149613139068310241033183712818633961056630392489581389300444534838519763046490931734560206905137642754558751857198435117446294532570709185340692159949653633829020617504376865896300721786945297291965262189274663295735141812418017969804883828496333214466194388623096786896668702493505353549615004449553980829916365250476337479613344761322992067569669278640215922308022579596270321162481219214980966994114359989653037375636420900844218055037843784599163953028873460915091322628728306855737255069993332146958712961678906483056858654695294988201491226103324210493775072837151356350048759264175726845755078187135859340642364021477869394269902536424387353214747110604153654865957709273303189781010371723322893238132018843738137556564580981482689382036868117467002174817116680062028180623188128256813187962472128699796647843513306474480281883811270833241465312179512364825018504990553155769362291370418287179729121226707353652041132903552092654734734222409017684757112557448749744209928241355994847122233565047549803612299728754589728297127327446261031078098919011084349324969193266215996976008677498409769088935566734528379885578909410114129163981146848706530626705324138919586889692548008378255144894295444286466300002761788430250618341614427896257375209730253612240192778646449467895480858483698824100395553763425723633156699432920412451189727177206762604728451736216614233491513107066972992928060360070816599010910357838557523998365265836818625737772074317652810080679071324298312067081940655031582275025549734972548252280010280878065140300570341503934939820216187762519864210877204323161348695893195600213460599558314712766123643372141205210506011397220505699949578751173429660750661439474603173138244315799455984855176694343478713087989467731472984218661147976422794807292062544858172862115492676262423646490638704497846381605150694676648595951040576644597636639452922288529609484586957629441921080648433962315557471994661953567487871680717936784794282505471172465357533838854597546659911829808195336007568305364098455278250973832043598770677528015200652047242549114886642300429996840372417553835057941689974311206093850400129134812688744711814763807955557765865820210637838259745829074304130365216347327696947709152180537543690536538759771283931181467586174333489865266778219073379122365312460429125079380649608617659199645726323738968080590082474719570596930668524333073526217722597718608304549943054921166403961510706631346042625670178030221992228319652756463884698615775188609986944150434949217623071048106435918169334564170762821821460577443966189801094161270143353975011978179908350231454041634804846135600631992824665499839073879175581899324200819014928782792281800820036186043957290977125382026068323382064407635166804701155845710717845628954312256609538020028274300555560096792148093113891817149650370236306550665201875487543150993164665356602287831875058902411881691253967433596643851155891320428552855935417307034225394767706424379476168782979259331825092814392509872643678559271210283873219043567449444231117357671853660454642796555988087055374638000721256062505453205882359216187523391075237919170099073645299279406178641962633620700883264580463860322279005468442710415987889335591156610017938459356685794435425116008442682558507232883328477508621987521329628321195322493520471989657166974536433287433135198068522632084926038020646097596521919469469400659581374736886901055242603890141441260154766784179689331557923507771117079583842402698477420859602459250657379052835504513707836875065336920153540079650683816403672113705513494192957707977680049905722957308721636986587560128102714759508262994443420310465937732652309989080201660189189085544724766146068367757987782083366355823943139815625389865388245129509430772609142292478727324680597937944926609494401894650534145847956734931511676744110318118809345063171162300725411565570560752157580274515854589937930670537426236963260336038816895239653415385595055734883535983560029937827995196328344944989505859770476779229253977235471105807811470915375658191097248174612344946537468158106294703840219227372895783911993647526321260581080558499459576542153004634788973622098302777345214740122779280934054620092875982915201340604207866025721362543920835676367501285001036386861447349402863119121428417659788629313585740303255143302500270174760417841422848734589878169624005938724560731634020731862425344139705907310061387343486011802290661493213720016345122643022591940040184082962848847838552960613101351283599021890497963317066322859124194968857452157116102088530031429216957931826947125987117540257075642730259699790402619429524480633654263365857962455659807136762949108684772231479415281448403768016887064124137517792612770655608358426650000578974818405059019509111394831437171093828000528275726138480022609211120504171498890539178806509293491714702436970361722132779570153327571159848328813295983337044460125103139700015883581300398239354711132559975797629663412822901306782914203848582200056234699352558293993013099254463833025992574881304467668174114771492149244761674094523587587099605606823223700097907210799105668238499915714305330256961764489395075511387693318009371692770902152516876084158811431504663127113297470337364894582206952807978394908084050240966093867420066782154904969051325006904374583539975037971430562643393648359913031834228301605606902411870416096985231150754820593793787752114260685379280934748183010472282663231593094712470282332906030977212249272199288389805139922953685796155795518915486963582139389858670845615855809672670354451390432490980802469735685537707087533010165126649741241630746429003228287907095965008803998948989533797948944699942511916489851851832615620025554997617430006256451197870142725497641623118947724619111850715503061187621812780354232738067542244769108777683741586380595805964422530046756210771582169518348372354780243157725884246628181944894337235512489275095535341354430353077760417521217426048003663955299508773197790027529008479855945107319927781100685383501404287861400300406060467293134699352429002733212568360441733847658827839998504654675602169294918268443256323536807670678687775210935997625253669057594860915403178151348403556865574544082666162531568783710888125259498490787190154427825942588143591473420773773655176724106959141259276710536147830388974146826108202967361301717645453234612286359122567248893046387239794605507793043513660500906190147846472588146598084453716979659579173843750589499876849608418050988559592802302630525349675203035445460417741300666128359953047646704063503649721075205046072402114372661515276136753080975809603895564565264404325344717336555117484831561779176046900930422958368452028660569002665815187234679073206024173308451615706339055869393097556362420043450335984414777566624204338635111189666271783449302865838927791951545750181500786695304128281300541729358926345309849266492636266439210182639428988751104107363729875112825048133299195137829650307223664804859827534203964407010031028693973634501615494297784058238436786700686996872570057838284027499698641381128934926360425480239014254657556963353330976623254041027337419464885159522519215231286925004494581931804220407638800716448418252627771712279190116984322714322706880698734663869756903033615060129845937239125635321974919256735951108385427205790415666441854000148211071979672128532164086804876713350495526695000029751621946968863805322637072033586411403368150585656002336159063012184085272677781515520992027220137538878159722824315434095396291363915308189728730351431172055983641938904740540629153636660755475026350956616140901179346462130962258592988535525519398477995065041301915360375530567803696266461811124939979494581099212555406431537048225355192805169964094425901089369465623722673485082188086177313236174300444683052327315101318332799816493669183079389622063362918673256638048115206736700503709286370741488992047888329954373097253820825716630511654527796888578427555807150342547357941804091189015965767193907111653154752067977463742412188213046136486340352418407254278618394517292593466155990976967785221449937941744228252990178869242682901150050873001258306132958467867823573899307723441342676307634034531765733542634280476500317028321376266383531889199826490868679521978553927139335846348031611422908542958377852466100444620366710450325037394508646662634309421857532614216675058842426822769353829623283428315397566673542008866671363066363828185225304348788929599312553587389006442761208991840575309600726105643425062518401902552402859896743815399993661022052721840777353524027880023507695482194979020384625430401066689243948847310566168265374858036594330852903616109655830206275831393176789582938548828018029472552923183894023720428271238305155100203033069149854992404842459145226309288581603639531065478055052582828585189595649550073871139191299081524525203908895777914254729064430781835248904636757929888453479569199606296102836974320464744379789041112010190271753226009253577354822121627367184118093069675841041166597434591108307339918904409057961736810341586536866801273492932684573004008747793738533461855004781437698223579018838993825699075258170531770499894431780659607031708965144850825304424361385478350542339868912805958898498986153841373385204842522210932637578328810598842216526557892989568468498812414780170708362750365765526154384357513049802671895161559942434277237758567142876877099958347855864793103298779951729358206063378095250522951183231697686136236908885811747896822531080834459274379405837436697453440758731382262519722420542955435300497848612459336497003036278964711946625122958314995159995863747972085558026868710411904572838417503586826255666880442572658723320110211749800401434341637195653769546000046331452248964343884637860359647573074200567330743886379418680835736317833171441653196797709562232370122669993544094494917317288588947736150335524763206195824956111096408702677557597069736021361866521020152970282340679969134161973678638305400406344000885487408453937248222399058263080939972157993659461896715518064347882757162636602397138650781676440694498484182967465314895095608851936970122869278543296357188384317117668960606512161464900913198586489009783160006779006597783279138050914585230442754569831456856962745194200561788575753186854972122892764746104424363742822025876074905968318876782507401626778099968304136589038940328684279731997271066704680664556183503553409737055525928145564253248330084831282097715954412827060203220348808249912352452785409705206040481088835596426448399674260404859828688210096893431585241432498013574734103588507149185458458808619075339137368027992936479014463287178793787858111803059399915336657934362598297038416678396535476099122099768044131629792246022907747139389550722761474415087575941824002842274883249620931999997434956606854626661587784259439058316079788515928238012964461956071074522515769362878502676446906939079976737022325523053610051321363451690641563821116232614844764085002244292060229393025414478610185788521065327127046777337223903754128920632694384447296099413749977157231229368131926041729715042338982589380105386795199540112118416587249202219788615564886611421779221733395749136969546908882674912241562792992293616854555236490574397275293933881673136216784297695389540008315180314537103376005558772438145428128232485552214708323809218554442312335950089488076694707069091270963671679610474186301442280484744708169556377431430871438069340170367582584227675844458146124600051749611893529121558696543672463583178084151542017872096808453838724296731783684805940308142267785934596142705545392520105429105409446649058938519172141681251794952839853964849790587800982328886672628080344300002855495001178916308055401707581625183571545069848359827956280303037760855143966190198311889058906419922548680705634780575398194033229245614910114417908041495014297976795073262252659838977623238361406167741271600841721434940740417278834502598612285326948657483735331225097781596815426155231327946853422465666787252524200754466164942187380341760518028917153099449438480748406726202880281392206892988442300342033953367747714570817655949514716301138765962958745916655451513720689631122231169180989964573343590301336253581598166516162217452171996116310828385822969391551677151027656315035154338990774074747498809807383391064991273600634697575943977037570864687938416568560874114487547379872618055903413788316986437217619995264140827892940540950381079448707619088647316070065434939710385421064822226464821007430525798355155037342678493782151102060632860420548528640607036553718521675419093595439762896369753092546669450758305847763408257256726922265861214990629384810422689229008307278114273218169679143219933594733309384089882816100038322503590966054242655282558542069819774089428165372281929510818916789853106256042807265240584168900228181069947262111779800934098111814389047147682912170505785105072562613526290788535491049121234866704177802487073969536349806827972541399042712021769254074024584837835395956582764664212439850396820563385117903389634199703075507232557580124207032025272369871595610925227046688286371764855109309145301646593856043433471786339221513979304902133523792011801855221754928268264988761120851408997465210863709117445644650581246078871587053531391739918624188410929103761588173019161419684668479337466157369985752318360789057797090300269523300987411569832920815724961636716224820289870070357939649995958405932113004411411389806678635888959371938960203524284906640987826842512744066477840955333885374531391890006480504237775395339277814430439010333351244491602589266311983308897271755717736866530591497874129822216852920706787136162314189092136482367419820266688235506356285163795679231657261520532176689289960353123628205015688489032541471545966028299186893737804917061044403656570288537972198054467991196790748292636065736111493947081511788064116709370712942670476206793701874782780864091142451954814603026966512429266590938744759374919010312321928798510345048927916531894319398622043092995726686128478020791143734095348732434359998307685792948774502893329009413858279363624665385866520580416922548216155714548850616064778668161924639718388774574596667599855493517948497565710488514814830963610283966182905142237362260822158579623604136183272969744402163177847142071698449778967725874116103438082529701128499899923591914049063132650207131688963153002018049072073270380383938691059250050658187069461348987274178012296990534672020660703568869227796557526446691289627519244371120714546471347555055985579117076427235835669530559999779848427455300942934705069147587846788822022653335991770447517509340867727033086162841205833255483968605146806031776523118412334758495177266904816616840707973856087500876198100271059183797816438879950487853247782999225944154951898988558220150141691124714667862333038985801348460906967812369083277621443494496777858025622912818043282851973027141755878012914045870878582244347521843985540477059628703886561095299776260195983296167678056054606006704646681740061884016207606329929144146619163812742882532627349994406844265045706720251390187997954984688846125861453482782079400816006848061568930099628909488854943969232007711104108389225411000689433622656222830956698498520260702911572340088696410007697763836111551190899228161864720853568060390431576757502076654186959750398219482531076382261374924461871281454115037191584908670976364582475757432923758026181709718575055983408887054445978838812876470818118152334001444251407924695560308818924813101132772423624763339409772325441120756345895712625480348869923350779345353690304103748155289086417455009002242108895567440173083305114094042681795694301705581779491678263787960443379803375048695512275999932824512599900545645025083725011871375567964095025803079506482767746144206205039060793251283978745086642328278194694165789687668677810383487627629311226181598200359614705646779732327747666997219694372675566221649494851293176818384604367568086799933115194380679253034148113181731239364370330333835688969722497078133198440447218192858129198306774720388718603148151080231310543421960325705896798806968447795368599093398776462749312091226239617935280407120989780133340710721778149803523282473917153308667156345047806137809840537562710311817764772278327651097683207963192984357756384833134741615193656104303231780753496153965851303378693648162157390908667914537367139924818755548165473573915862001364128766217094215289984638924588314042578297498473508990286193143441328531879550608823700856697473613973592039033362227089219259640398529999047364616869499916361412019219458002030374927221552931515831509871608083707921147836621312708305226207959853139280252158545899910472604385985941599834946016872154577633382374406651969319453995862010521717576066237418761473832314783444750165945665397261984842442424186079601186433739528536250224200046216197898179517286289520862966425915990349779549679514231532243955020901658645796408849630127283292386972202978504967379509930099430003843821908324950602650306642586150055974898343328660155236751952708956540436276217408270235946548633267778407336297417905553315517032560826902128063004262303910816736291602276184464296212132981306975816008379114776647551634183393691723870569412425463741612168800685767859872310280158884603549124275070539187977004971656871851131988057401573417508185809197705600708802891082715349296175027284222870080992054625734919411650412115733502498534564989980050819231183540078467196930856438667146090286862282692427450874043549373444323517786561216562026653852653235592875659724639313850303023332186197767733005526430384004856755336960532574468640816065624549663859683356167917122937854182353133471126174945734253189768739514960439597255810567590385643165112785818028211547047716531314835094405656687629825366593107821134652219795028681618663161423068266524836792259842877078132509709106143579434264127962800533694870007604053235289145084098945008989720847465598273013619573105270331555390950034789140324338513535537014422017042409186926786665793946849128258934048003120773308829234088699416704855127911263355958474697484133350590139268207054234379879423817646587603225013122815381101623674470615314716134142343048830953177583124199435556271184049731614547209703872767162614266699445070527006294470205234960462288221206038141773164640620812326307274448565222889179050686809253145533390037739480623472549792159860334243352794423213959030700775940432437066104927614717713564586168535597145066789222646057731155166687538311495913602308839782802053754882789738451495533070526050176279381710358499518947209612434361339347380333293969041055273493844199416956133978289583964859331293863821560409686747317106991015301590237931511011626767163669656286834720000827612960397145598747262029635704836032774519301243752748859423421261326753853818521530993654408707591854440430831745294892090367863041453566048010591447059520354690315621184922403557264247237453517820881158163360077781480771920467738078154102448477531674785106914155926367877458117394421563878428442668743319338591965186838693287138654094551738505023271799405293682731470890341096131270602213781638955839129851374450171923898823397727322870030047896008070239649360728081828830582442689233361788122652204143516095210441257005829610260886837467533598313914729123618594754194146318759999958784766901999521305060282439674434618095364544626623567974994120529382046641833353900325428446792879787675147815844972989749117396376953223636566673307228927966345214874532791550045480310540389078637451078682221141884580330278656916065001735725943270991672373194964311537668707552251683053526542563862948975592949830441336654677451808902137440415633006796599275021581087720500400183187755115462852006742885194491673783794205769047069297654610378390452024973902400030063133718282020551580374010429693538395583645633783289712187350657469489760576863638758983957250761448834743041366669061062461459586580621805782354843005953351143394957056326430437177389308050486035885266572443438493376854026026541673236889972016192435053691851099664354926387585236298210849266011253580275333299718504202358389742770411287772057997948222272345626713976510317291717367675136636178090167410107234699584475026369650537812767165645666180783861743164792605495334393873648666674878469442583696189629643358497972504250572430005615454701615134976684590250901016776703924828397002106351664801745501260651088358838871039311253698635657189872647076490125657145067922840469247390180681922706087465517007756594148338311741944327042678089558443990979345728284455915332262181338942874961766104583973257779717938940649069942028242016218509261922031927804108638967960136952385519535420135347447286914981514278572084156850256162562093335099879080386179993947431714369948051378551774546343337570313716506785349322817072802502514020697683892701752483601470171039224448398825355197860609650425872261263318829925761477577348296023296468071319301776267448304929668798194167987023612860315660516834474575814607511714853823548889584967543880165873519938577585738390165418715750459353792823600536299927947815732755893756211420988242373712540139160431246683643973938546420291867505613209539508246098360301720804164910003807840293349525880658210370676579342687834903157793602543105416056006535080144234441759905462452885489732091702761071711036202068919937324602424947939068837554214091998837823882529343154488763990309609713584254818495551394346213345248562522343242857683261267630728582990583305320920820564881805552946069053261249448341206329010077731808069925897482261674082317847919015043484523578106749430483033929402577319228015323737284162006719161724517145482313417876280402673538913648204095818425419890083931678308998610375898686776388583705419259767341278821221915893442326648127596110990291818789861003830487399310751264205864799158153828463982286309815663524938738869328546531676904870337780060830431700887511002084780999006369557444901703827975970429521586645943774788613153731182860064109197508667173795993368920375231114614784411045291615272592877329600926038840553683007009767324272129359575927628203124599182018172060409094777970899385993268136883610839039855562500993174595932931107039979650921085178688108362634327085967180838243919907818124806875242390632449163056626930818645529526980531182838099222893469230005160458807650853496424243012463203301977416519940289906844757036519465316444641993169974083562703006918521967105706334983039649316663856795412677947596437195954078854462808758651098900476965615519182236737474894462176589131894545332558947437810206694195874912606975733987360259209371270931928280606057833475540652263050458544551585534013515192020864143760040641144573236450398173431488662858490608553940059559206270392164371103951696455860689643483199597700555203112502852296155200242019794273752627509795228670876239151296705072858192294575300483880165953368821435667440734791378036773448735427066076686063654195552823278538714777860324371116357864772491883577670126339641049329388429517580421443896695077272221212491913306501462456461439477251697750528355712258785821993734606669168973601400616982655129706144495987762722545358138126177453769946512087556402021720532763941639572922694819746402044807966230921233295751246304399230764467345844061356222587206517795776050125074827057754346814356324976335893829121132849855271434783857089981210288088606800162793340814755687073370649676991188181591238885457560490156439973429521791328970679430778770934532522334529739491355293558053626188314266340059783171661619066686760330688587324235761642864533300436135488785139585136228214646503899370478987057433743216062981628540687035018144922669065213678513757776754169393108559898037137051266592164275192985396512832200117459968112971804343566079168214699725102971613223885612350738079717540273043584359385393603637048807720190458551753557848126550006768025738621422152810378535729576414630932517895207456866351101373817268008583707539197073082554685999292279747945332775145850580126039996928782312852749510948095951414288514421429835460420296526816916567097084635359930268068295734852933646815863126853852735807993676308825997564698466199819432913759407763584220238727042133845429869589827287308713222770796707377318997100221398190507679016022994168165170985181513922517804164348466396419836291437447961044891279962353898210534618851617620369146122918970766519754150890304614741334976098851457920413721102017926497559368528888205319044113504086872070615101889683012399060794572899086311567438065539132234304261265473507969478947659297820184775297936644014859080502891958692270928456172471346877312279875864388577693952702342620565039877781128891942644525194491863551499135048211021563033353649206395419951700926200826791663362295381898996975585876663147109228635635410039746830854667524060140419541085992409051549335431467671949163834294801329126949096968381355284633572688974133871493801773611535780459275398962433018154586561812168415268296913800609765307474573047623148798837428459459052713510081387577134867060856057040526366756920136240106875254161952123954328357379652649512509317549988203618673249666864474069134758858372141467661541628489651198970068319759787272604492274658929110913318871967169646457523686086943202483175989675337751120543286729565288745469306536974299481375606343940503114992129975341749627465183043669386373326580359842346976806056402081762223970029855877096112772516979345819707747538900218292872070799375402961453976105261735621267208873067340261425797018313038971737904289522012883813865964852955271031837326248494874668696527966306182047633817799535927613557372464294237849360723141682872832248986361063770925975536463417822087310860894338089253832246973681451227369209907135188289662082036882391678219766764651576313473368128115963711797119933729481520014406265282594034014972209670006737185422985344546325330399086338155304845815895606635123205654604870771416522704418951217509985593325222273624674112023980042482305861324173815691389087777376812863381422196228634826118111050147156409437741917490550039526857001140940548335324681675803303567719458120576496955785935873897886985536007094471314174034657615234698742125316454679345902430194817881489190171001190905725581244443899684346588560449929401128083914795913349889972650550376288662940181735180542395124477106823057227346282973287155978986289942371169894076189764207691426288874232408048800234935374035293026293047879354437261064166923619936104643898879820884737637165101206204016594383657857677287337987428791007280855738544038025063235615413798680294570903842540046069723789982235596027284211693331630571641617420709469117102587905937461627216287709581826323723353285284381038930881274598912937760522969766256693327017258181028362360683661210102880970029227238646243892718605910259371655711722052627132360739313657025110400975240063578996870713056831596964970746681051414566128834626563060381441171112371098691620322775819346596531874817896426441273914726587586482761254544893626512429028237226484248648230114015098164564749647161781342617650768316365708204129055644411967536848254033327106761611153879642847146194364720283791849942510825671225431715229181521890105963800994403162263853904901073425238960022089278380590622141888672443463592673990124891979157536048039173371016551929446513356869757400927483641980762465844961077933262362561718746169043597285751755131573388119555240639640899710078129493335853992919721120071536402713235550455191130595543487612253125605549407815771539244675663896727147380127408932614944105425260210830018127058527812913893677184772471230584285123479243986683542019328556323889789293934899404079416073579917522092539688424594574889013982191730565420803556008285425172028226664088565827852669389059405738135590299792125954645716817651883269591329665054005107528584178595013869601617754861637278437168564401997283558340420566330107365072202030729921250968828292455689337356810395410826235418439238433088126815605817733847733377122537128415708921748365579673990285673000572696658872802313292535600133596780013040119761784194908988178548190790442715395813857128352187316768566590355649182437216612397678991377496174776961844306966108970398162888177568151013500247815475393000929131872194720867795877518985949803811953744487188179111046615790466670901992277430061596223446011492474628851692737595827429824393259808394504150493957729332381899948334086553420164043088316259658035003735224754765175954078783793109879851730473635701862057877387266759895619373670756135043227325573337974154701985354897241700035359163831748485396488418564398765965554651492386831972165678378072212289666169339857115709046551617659977614226874835136432430506073409362435440428812566982703860286333203093189747487759418121975004794333579689968874935842169397646615205795913946973025404113054817569692878359868215338124351505968736359694364630513714575051005697709950438453682023511714686295896240968841016410456925205091563711421450646703561210382667674379069415788312746129178482627595334543364206540656474081799107168588053742532563134179622723814729521769159008392900269504785909049983260815183053625012846497861664818820571037459466001373594859694251711662648725379858624256058739016098815556036903506801159615306978233892147105254873042517470729396419519422426249846975168601238155374054350803421725009974310827017359855425620932197705275052791223355127601763986405707252584650983878570619928473851612526002032294899673505742351804630711608405290224027730932688011568347271155854351678728542438456733959641296998323926098007431897522012611561309638653164044130445834248826833611361156246117621342375687179475494166994677471479557504119682834123190118968636207953132410935838555422833279174135290603807042524912406536097300893328700495108219766764859512045517959633495833691822018417542943079868313088155005590605120160616989262891975911293793735036850603279385988417931777890492154747975613753316814996355093119589006028953072048684798190933330729445506161737773410240260600732270330466626671182634163364219793500937872406395250705687541451745345076915523693415132891581834432863816462150819264433039473040048897079966272542669872624089896781335694889777949351134957257737871073246164445245935563918938821036623547854915157361792580679504249433019027773283495700042034414585025516403212817299154535690340557074449389500418737653843923509299743892361806606734023389872807031900486053921190636083818713101457957676752447685878499274812624144610572551551843713268278486349344640068455377371250562297404459645431951620991894376384776245504573974916529395127946830226490136969509990902455644692871623172203956037951391233003088091832174178826952026176213681365669027628453786634006183853875571245739249554350527546387745048272904865633464347061736112309513876850366057192062247304198788098484010477615827536037411731667636151490325556996399140493410493544278307935273287248723599751269006773082030673338067517711320895937032185985562877518202410459397436403494479797775106834325075201055692278265196319016043940160324457069884363600281793246932813679123250425276277004040445919319275530946794070916313051833220325236143469467379924642745873222380916682352803902758234368233460191270796575761613535186103829444262592542197013887363033814381803740362361250284610696864174023396333967232789798600092171364484951176093670199062507414682841430662907107246222387306797364802654665903239474829718503899000036171451993517725362915576203183094366790252998459015048867490214884614514887366794058672716549269603345907413486715130041859205122731466537989859728118442600007059217503657134268447648081637123770589072038480528465762268434364512344503318380211557782356240894084423240241238093245119172504913289391298943985633868984357018489718284905643729843267297558419841132694317904217384479686402190947785967430965085201370013035726707726994285743116150869262912183790130847755378120628859997071494547701566994951653928418880570720145917926325198937580146632091928627137219203216746909142096848282207505721561368775515564964300203705979416670466477325500547523810577358668819443383654704802371762762927645360759453348456479048794613427854334844699348987439745703837770970146164325512615339707403701384800825939471562591120742748956360764194842353960911253303138476601859041170018580745729083576675596273166001244051346646011934109742962303057378362374070257333608521145601050626964562690426351817630185856762830883378847091978936861430940724985192057851621921831901802565020012641495932891326050863152054037298269792040840649794876910896082069422631915947243327627091763150845295508252298680508964992288216310100064860564845549400943629255399927692920069001306582925123458035570761249067962485703799788610515444364063414889782575621647335719606991587467165307751843974060204414962434777364031273510573963589107229633254538101082420962901525949348050755114525712002941494262446365458454025060664243767533656713876627437169751278959443648335909979305866522312093370090938204219277741225901481327125267545779411184535854458453585168154324367972327724278103756589507264383178376359041785673459414092367332101476326946758082485323241904294343769350421771645740798081660807724376761896509928617558500721529751945029373256714120944123803895322977164050650962988549159538589474319787880593497904428128980192165378174584089537523845090772076544759647002832618211665291421056897905853903409967695323467394266240995604026367293821950816011421571809308584428512278834957588184358620108809900218617528850916994762834379989152211362452269341176539592540839558136420109957674068213844988557666382851007372143292899044049894722026841329499140818419187471106885845227380942961282812657042225036870877717600121274548831151204070770485014137177274247795117688147957336302414613469100475334990864540961799848150033240219476409652884114189810158860523523881439167274902294185225588401452512289904721316888190294530460642630003956126059669679508590893851037498069879862313092229076404120577292439921862547463384923486491968774396408562792648558869429134941364128618915664443297268363388016769755888305425653577638787524852098923396627094554498608888137022098109206615909505847889600878465539804015138756532901999013161082578489279328590251958069872966162214323026786326311010488792067959871953220429251145398748345749394176862574678106607974878402160107439701155100846875766854640665776649550997815618607158344202034445326028738528306111944322053561691026052573578215188585063542393319190139651303637483429969734644714493728649189837832780947978564974569145034231913422159999813533972265762467646787231309892669575947649807856029883166368404696669642395144286067730074051976874967408914385945056175430028365409072442754601118136150935582408608357489385671183853394072707848304075702872946674037558911737379213533901242433101335615496959373591623114385592036639637011765305579940985150321096326045772024505946175840526673876697043421828690979636280771049422083091926350745044366984796365424231996385081431118192696523977395625905085036681813301631677665137261349566658048383046124118674031069768524486321785458661279842195834060640268048442983026846655662970044236538573331817688825375664769113646534221527092311066996721041317998677098362495604844065721803917925241604007236534829237406993021663843183396714287475982715691297526619241688018554221561345958656693177139301484563425280167765258855156128286245643608902512722856745804863032009609299122387509213634193672195392072871429264537110187686319889922672562186549296465286487888185017686467200748397406655024433959173318273880446933615303982768215243769710188147438701153829819145992405832246899534129903214361160560881058142380345728721587207425739911523712324836448371904675064527892388420095518840576654087488189770691073308354796089221489176582627316844496555724063710098744512661655200643996267876752457180297041581367409688997358696428551709554936550484703283196490082138438298728800688571310610202104432147841178735794538083723643767896632812975285425982565739316051263329986232717068311714027944810189549170055255628905075690954796790996557626653366648249010679816790920728971348175931218830876650320351415913299151423292908333708937621174162643867597521516908163562192190442804804060100268221060702399180008027759484120593234867553455194606329359693650108458508858534746202146870296116059879661573813550279266775016147759853115228271243813410774672979288996740549382075260375091873815343708057111773030312349754072930428036321036748223699982710557331529573593272036497085487257679129237393120036377073811454765551036911408590247380454173318712117560169600493405770647587117622773695357750516438380155408897330702936604254942028624363821700742167122531241766118152274872731308959164630557249850374274716814294773623540708609960200281683605543187178810111511537188461272461567788001245683902050515879909136229570467974086464798201168498555943041643276888089217744264266912410474864572360160931399075690498744454131957293154005053722737782227272823275066647109159705674301532340671978931680881429291790851052330822042810886162967467844334438982391805793430812986943420408857861531006703669874197617756070041916665436938630419318155935435074174428329424520152676249085166086416619327755750626938329043763734592220818929120286252838141678095517754138944785716967735687720012823903871200232713828583854949627842030638603904373123940202371701334393203471894906657272789600684901128252819462400149585153612148964897735024678821281985858371065280473049355924378294533124105639800334113658586739356231689576719896030811168733222154151139555178131055815375466541496621046174353227410086938949008478713263437717744605917420874499654230476497042975861034797209343351420813538160080031598318410167040620114176413221471595851704629628280517461788898103338001357126542121710386978348067074864952779779145624122327052931521065370909370829682332812795022510065870228483844068241186117625372087706600654176313312087604287172003868122121713439628740099409161816324822543148940337961163890250315668541593272897346790959507273009868009103411688214208999452152149717020732023476326742993564930234611868451904417270142876693014643281802361312470849460899330616929009066140394295312057822305611467171391195962817064301651378429248972406585549014902639959038330256402101259280749962019337820956051387621085234273774029081334077627692700653991554530753751098169454087391529998034060739793786016889155174955293427203477509162856993882107930688486244509938774211618139463182699874168024593461492708944786724790511040243896996876784446611837539756802638408986439917009527223373971959165661152741249092834122681383209469524023938058451584306359425268552220417814963121210553810002537199941163365650822715786537184707897933682928488570107757224384250370606395095833757758370340976634653918463208713215710511946616973293821442488870205228840227537169860312551957133021993036935632016648297299381922370212680526500958159634641265487948513727129921357867462948491707028773962963133861193179306749251790163541788039688298998764775210586571470195010743146928132024655697547344333463532692218505433050713052248664525400165119066410048671208800763221368415311565503867158719876099348361503412132967875551758148898555945148587137978195364631344632759460946793666566392501874850375440668453013088226963928194336927516830332498793116937360488999582534092537470793501553125893161268423435072331188559807811460544946680837270006960288749850344891788944149819979338065135605365553585189171054561371570811768419556780537854109906908890220192732437510391285072366458782668807193337644184194266649585733725631317403722486996705988446456402327159519159791879041784287542610461389943699708576894411758241375269709042577294342243414587720256363284674956547382696430880879491582331843355435092186752058766520835128444590459523304855149582170420708458463593283617502535042950067286195919922824440256674845859417492141733967183317361757481454965739806716381074912506921285270844001142955202247660102520055218709121670484286033387839462261569522387715385016356143090598992386261816052035783619664275751246305904229747471084639914242996544307006882155568343045063585492311677017556036097854677982431013826524830211351923773698770971996984145081773895575805620203913583857129594737392626634329472463406275278750578324316615348185127156027693044816751943905281384360267902969251704035351631878935001102349829215956915738369907880843316052468171589862896544875450646843941073609598094618960990403665264852030259894909013349457936355082755271497604610500403952371088490573459920956348381589473373275530920487587321745556405448844339673142716698853023409823127531284506791086946320133263902918247387160294347381300145108130994819876666098466341666582203227209926985677910261547983631406810238425442353781085723564444732028745762614972811345567906654574625079397786758097495199707424434433524110850833438893977687340273391767070526206319984681229573365699158795504215006156010327234747401601566973313782211882255885658907829673510516181672974097337999353047285017664396113019910054297274415287310457095173002190470168817006660563087637097036557553557830165583682231342073759549138934006939981005164505110088656180485845890649921153057598662908710345006405764985154141902736768717078531891592086616109699642132352007365326108251313696560066226309371893479632754221008173899473200631106016036729433660832580648133083730914099730267489920151349173395018122098072125247033040088000100279059226742751680616791555454015828128161301549531580964632143191232184925911391343087465000010623417602986222255899729063965685184874481184827745665270715870948357431638251154779591603517841350529192118482789144971845930055351146703463799122662719816341486874689388290334690886763529503384046204878831736432279636100674395833850291660233191558358385849767221553909965563540505603676040466772990070192635563907974056343026634161035069879882916713607539158468343471462576472828789155498504692410490862770468039051923856831786036224960382949082103427597735814702040743587938680546268488238496114165167120268603277522695659511045361347008446291911944371081144377315246385485493407082257794119701528979255540718654440139153750972735302867028195827457482219125083656871561162709569262460566910983513164678681234876176741657940424873492545796204945190601110758902262946923046095552070731355296103763521169983062508102881017377449073632140339813365957897546436214026396128534991612424817594812665539202765274782180963283110104929579511117944826700082345274193166128132033123525840972158605751032044731135572674528591290778696263776374281286540724089235150296725395851972671052979497820580290706674369047250244216448076598510287257498040258409069275360187266577838305590938047020203149741531087781893899547332600143693505509566968447893087404210955405514618494264051655571914773559605047581351796455991554630993384064210565706103601233091178107069644652788035903324397620780016704163222072250300135479635592140634264779889642759917544476495383129646689884373630343668816156837912795100168450810372288977756314204804433802805443000844872931869895240660774589424218458148108179966926752626683247280050897172816460086844314292575810001429918193101011636116694222966404651975557380073336152439248065878798286404426254640206903638196694982413698454289288661797243363528198290481697719758531493625702479275952344678707925876995713734899865448362523772784471748200852674995452253118218419368566548772578077349293982672125575824657749258678922842184670928101343674070386690236932785798249290383391599038131130705400114931073923322054937067139167628569503712183586055407236532855568069697855454207188096632252523532102362070237224903363084645810413380710696300501552297138749223567927619018699373576514545107473664710253405883186896510637184445968361894008375755570454910602309423011462722804774682117018269096223555736128129196310617778772989760905868560253225668253220279072599998965471832988472983626626444015905390252263125204930832045012551681668037840472586820467795808530120352052850911190945942210853663919716141629420095256800179335939623575918697472824226917364174198664441810681462985756294648555415467645531690352300859346129217237455572678608160220132274819141437863264668175747682515431477739716721184792222092294668457089467374119193885485086422155357595703253249831300965311832960829169995339238111651959728348624371771016611170371260936743806852843845739594702177140039011622569270066270021718653925872557729506517115190526250548820353635517668450144144168265711894812444932166276693725362792472922204209699923460382794389099513774470428335908777891226570618610829484233615164589551030456285295538066750569153493873534742939899051520515090350326394088909513268972803431044510182875975690674026616176925170294031029192391557887858864821822924983702450480564422200943447464245255174317811697561489193722221725240326687477316467210814232132003895286045250094240748111801150655783772030172118852892344523457194656309204801900379710244900860734141437532892360382244737817710081829520524851637244030454130468300747525291345234198843468337017251559869514415903485461455459723999354217977449471516324352852150301564405394515806051762490979333019249388785007371707251360595107083664232992391027924022352777136395460933694457201556633792040321034810322139582414787654256016453878203205735747409952590846884209333106519107614662077435604692132587848928077866518360029694321117956420708847808328841985848043549200300387273575206421864583652872290312587174033456863130930157089037519246906326444418535494900802092205034967775109175797201843715592029064237514911334919191262590427577638701183528222405472101392666741413978301522639065721547751621009349072326972210175914423159399901374028217791274139295259287251246229841542328780747292701533196047553510506128635208242041900949549196890097482295460376444190687541266810809709163540411228054260935762583828385077908460241683353478329412939453631663462818059917314355354251247667076892553979157922196189590630385741876396476489287875157039338186100316529057040463716529518332068703313689226863050147754949888216723645483683269861247015644823588849943610656550111049274859274743194121838561175069047183244498495238170455686704280194168868590284311939578101199267149495003312472982863623736364827254505223656236503685339563137046539989378385760935207104056711408518005458537744003473732252966890742255987105357571488805832586351993096589784872999309073533210950747940142896840392467458594260748204266992019614253872822236493469855343771203463230386375122174767647810966015180995793314879031224760973228642213611017846444271232511681743158320862651588524741738756002655632334456235587322432932928969568727768969706973045400483579781362602812858641524629500630723647535612143747190270772358229510172269715462775146508143944850809281005647771051121797206237117128731248761995671572042134445770198109772589426184468508380565281620420731043218070189336696946809175776528261720979707929736486061126986898333668567653786866266831155624079894999745569492440425885994445318691540528539189940885527104828252193750953824233510770265131397973136075623386821295254291732725570866294235103447312589638068051217556300754663198549288761060299974086734295504863974105073211625790669357262692948808030478824488907286973553215425830730244894844327534513811147940017148313363877590207184060226943606935523302408090612829309396792523321575209821058992336403034906650526545115385940808047438235605348660534314161859961224489580467728346600245501705878226817146665869199263194217013697676208312592146865013377467473507715880343324009978818439090231916342490237340368447589541468639192733661372594130170528004227931465089396668196030476856802531933133136909690412781793766050508954670984069865346154658719248152972976094552858897898258626437856796825051365195854503469486186457727981829147624785831684288620869516037835819241173027697853263996532077338408054459149878856560182323993927027037431985671188042704787125285179014873291690192862375622734225888171391857017665206232491326248514494430497080955497600405617887148198301691123260142407418903301707097949141698689487468885519932379718744793197799436814789914776424177353430735847039613459472280172218496622020572025318049316349131510217697076995004455023551140157370112275266637207215792275507929517355816327183743860808138390559324293888035668788673520173946318976217824668987201764853898788124611609490746026218333382442280751206853210365870318676442830067616559684573188753316192995407959422402171843344286391558959152612044782613866870308274095607333498657417775349301522711967535634416854265531297942943930464170723261053362636836966613347596283429183630915526005782550998411958027783377407299856914451155986999143392386730996460484532326718211430124721467456452370315390083559482109064381499825590347504424113457785711340437685279435533814028926811601160570502254753016527035701046539988402694098270523100566965176258027855401602005354689326820659089039998096722004404182186557021050026879683916671048575975782512751680352428581001632005084207701947052870793781379596581268192075058902017942059515996682724719456152616887167460653719822965862161470264273085400059711497884293878843381632674620236432643118252358312578612592120322164399291949531437143894025662130791671418335889041747945305178905098506785464983521212352695234224810261554647523355486778044553131083285532727077809050437452215594958722776096312787529556702027222063114449393669203593660699849552505484009049809739824733053058409119875687728258368166972407867112043742503221758402486542623544573216684535798021713084268425058177057768960592368879676522918565744887890098415451470874183635869390081626282712434343968386547281565995611480047048721213988766060309948174255381276428013996641513128435389197587283610541213709861663869510029676544330451677180996441774953863160332193453691658325417388660998095886810401466521790231849029222513472331356269057572269637626850958878002918609937422935684046428359978544926933622463102804259343633641640356806857992641686007183416795591773084363562324360424881999685695631368808808089150845729599101563535212617350342577001272501476675406987563286889071182086003084192974920428300148126424227756265275706034963312077029349779080629558618597349221046032065042964494533349586574677442309080905244247708071689077281078374200093473837993005494925820438079840882622945288995582594519182913224568020464839010365478098552912728227555237155650668374362879552378387837495805224640405775704882902845169931640103145920529440072600002548860142549931463718147667184236365298924699597965350775786981080397472829910482282981183681950602074088183140083372161195761137389917739928999872993732388601139650473225225131227929309646733977210058200649923184866705784852907690987977671603627937565663184078863362948447898352507989784590075737318579812513481426686422816470432186312402110471085705208740054045694586622917128336829320308762978001780876011140922439486091967907137474506662492490799789449357884177860767734572364464753159534916453403710584284462994670960030010743792798574694496146099016660337574354035691707077706116367935982218196600173722609683518026034383956785105596945993130837443102771713827829211805254418968975975721866885501807636448145553482103982290888059685490079911622707542639129394257538917300904980763864528908322715705448714119145315401121449507019079218828734719061903791817852287384525768850917041377052360878429423655706997983598219985261043913103575646092632473699142374864591377533652533151357693080933551139232035234332005402205296497014716511419150339831766203358222415439283172320853094226673537132471022440777690847961708869915584448076496180361803163717739478301311308840122447122392870473704693173896873462880681811499745462554197464932073618034555702023579407713770145755119987198080980422187108859257882942589024903748076219084844029856111250302913367619452397995150068082804636358238828049496910821845210414344370125925336385725486866724645999219637791369412530029908911209364687537030230726664738964902689513139578399407181297836910805037813952199408174968463789219484680609203967364646904055404349779854066688598492126652303911788932479013571517123080476417732043113859193406101544717341029356523146278040511255728884333315092456866091147712883953079193268554383534078903815074554442851257128202898966285943324408131440124351295018352241111824851785312311772089254733243130017499754798166494936516753168194860191164756710569523169036880040099035318278250303225487463996360241876283403382001990539710050851414706491946941163361258116448234467608015114093294279635705477711293778456682975477961967031960754158073499808529267855411967190787519185754419948312078466041451812819960613085789115731453151872568384391454943740127966513773130099157022154977458931255045057054000811820664857203972601172395077963347584620204323599879409601090848410822613495866500118274241161055438751658291400683080616814632459620149877128949916935763934272853489700811815866370688962913330275281821298888666626670753894975179691811960606620610877664225183666326909157091885192953444113752913587151439183132318219308675260751787473387867880824302273541702665085559486199182136449445000399101766290009410448411474941481653086672827601006332980930995750218482696382206156757169856579385095545547328268702422175936601094432360859201131087425827897582830647450701475516088651303047497720098107685659626653154503288505921323977980402138492207889226041403170621617876661729753347842136579564410039013280534629949770958335872136515756790921214519293062855354211918683324402123580392625925129466854849211354325241276787241251304918001811456245556063686788867433670798713939904638633570750039113375257442761504290888418479578420128471440448562258898260432824123641495545135571203930078987805725185368017535927771467873312458685181583353909784584924774488745354706038168119046900719597322899326554994399168627664058515655026857815313889050622101856566721299139578807294627570996195185907973686022941442352641636881220762535066103061560833976701711154709666179256503511895945131221223800287058097062066937694334019756163621493667686260612679546856505705579710829574080754668651546245217925989147816681634432551487451939994318488803408582730723962422330324517238118603545443031892612610366582439023608222262207717588775651964925961171203065497144028310192311932424625204195924882081146356435488573773689551731256374512564931950321037044883584287889945066208235029218901959015103126002773051859798730525481963630197293891920442638816218710840093747521171571424563950634457715348190162170871819627029936640144482532754915818264642577409394149991455762985879372330829032301660069970576393059385860622228212782434577183447648471544546704617665622137132137254753409741516720360657609936133150825472159037480026539160314922519404008853156254641878364078509923812043153021441211933228741644350888307281024397122401243043477327573914411346391788526947617478612967021360100462795014645208599471981659565335022033281679261003319655889079040368304393399606983970859143180951454469346634420448722041437064759276097795008108350791654938687383065229038413156570786518444738643365923470963820568013829435451731913315670541722788959853309644565532183103912176822460398279294613615402801400199525369826522521335283144346380095919464590931702035689240820121569452847354445960271957001438367789345338772799559111918586459090344565081193087208529786807478521281292635582981601367761745515354796951001374260494267864569595753380630891241386218301926270074093419305644267100935706159563575107865011856529098914774909513961792099979861097089764928148230184703004017907108000795599739374155628416850498964696230868289914505599109339665126436766358744257921413675473349671478095370987943361890772627199931045423591118253170836131249808377036774751081616950263801508432951847347393390203011384948262695672474903539416346587686425508189121603315703104014300244777969827987629054136422926786224771482107570888124030986718882838184464514939292980786513405188505461740037287820709897938808066394340012469469439498696489876304481983958885565388973211279897561718868179226320134341205602010803021192436294098966772413523766323498762364292115986335555486201667841950011953494343394296338940538554199948750030178450130404037849797126889528349068963237245923434161941597663305314574992075950767359637265156975654622151194831342156409827568805931453155785871325779456484895681227253418729310080845348432503536520907383238317651068751870933927170481838583157892208971127546942838871213840613468347251118190536892075077565113094369375259619867993404384680911576834559000860681538274100119036824651402145271166789947875138114544192362519204023367960311318741046505830341439639667394483503935442684995277886560602729768801199482291500953004568602267961697417177164145529627445892075500821118181466684671128318089542825090048123323405443168344187850268410583069972629190700124362423961223072143547533934510878961515801988674694602213853314975440096429287917586295370210225094222740742127712786261737036598091045909725226678112453752641218071239341667934612748978805074919039812891199187105506175095233745225003891897525751058843296838442236113978772108751941823632824125478427346684874609533237464865837322146018452952384870995496851646106719311426776815590668051742561862268032657443335341173878266360305034861609739621478155514253439221780217405054076044615658897521082947321685352437892027196644508782234446020565074114151960835760436245446145205273200320900692915278064916618338130672384130622531475805906236743479854001586028379475705791042617223936361987439631640089348289167206690782715949454563841332145998122967093141771318326412378656516909593857051897611717283519592029285141128310291296780816283034760767026099183558496107683544303903647943445657822564716032851203548944911655027612776462884603217619891135047881007413756644974716029016458033426562847747366752521451842923171399563620919628177107855209478526924626827938922477187340461173125598716851261144236476969119877562982960546854692811398074453221834160182612531646624281614670058203689629717647130975846638371631351817332831642231358077024775415177648067657501589819517568748451999307071846495537971729661232207518526719125080902044785919169375733128770094365390231886604652477942156997825630413284245707987472058328130134219433340889152291010948644077220735685290016456059166040865967309444105640095887766696189693337742836687788688410937450835252974690400806761152617422337113797521392385444074155128057195117717468028320692876106335769772212665054882683530935733423961992429598993153677711830860445377916773057357749433365341665784857756732068624773215822797611973652876723786685273641892988484098210780641873635622277116543739227064256994000592717513126056029604323169390892159218368465246323354359254786284270306046086873024431733276162859811218567733041912910306190644669946792290949383251939091239352488925765118392250009187649658939201217603636616930916085944701844989295907416273224380224917903686579195289756381320353009154526930542119833698438295075814299126343802361306439241643817237829846078856463140180686399689287041950532872295868595122391049061344615252899915851172255858462370191989946625178476254596388337588108814650936594898949113936930501883423670833187371644280468843800615051920369075416286966791820025178360705256902229763154086219057731428312304364675926204881380397714322249130191561834771429750291547122606656820880597414087750302805597666823060488194157653436087049605799781605731186050043524814127274122527838730413874293793668208093882547573624667954264583932951442038926283392949479123345114477110256347082867050919991086985097270689907584589037586905797202071144882946871601445978015063864291163745087230413778670814270787518767538183605769733648609929434054574720717867268955371196251570086331279341420870717509760612936381516597656132931553220513822011231989761432452736266676297135786763469412473944132657010037065247958084056069941927729736216187302163621881389406048355608122624336041903056646221821662495592295229567354656664363227756197420061117023609209838182519556594447169602991369659717569171880615674151500028204800340527251343698989355108479907991539361940578537557976994389690492509942639820959437517862146892091642796874621357323476270260549907887242125498707118440287505946909692105033554214683819470894803322423480527722581900820266941346440211859640160902735058073755955401260342180445875479870500082716617228979993706449837016498856191848771903238090049872786175284458607798656137667798129475605252073176387320193550937703944794787850604812817781863458968441138524186916998842895028884400515106198525940631925390100444569331409398213033803718103897123276048604616819942900491382675341192851855825775916443315314856585688436425385681187684165606886951164212351481078527705287290127186516596142797144234468277544657614615605239814619791936775914934033934308618240949416275826741714345298020600006414872318790446584689988502779075121918724904056435154152350422469866648083999263089120367146396247770788399442290324593529148144044382633336067218219144419057976176237977778145228399399026224846802525398828054025336189936026502574292872707769987221819726102153580980190544731728000509351146661959648209617622765340565777954481694342877516759805944699795070255617721350383000456945870489752575784329254260165399488237436821412104972803605910890239949548392728268997141242223362972124126938903779969909267263199764973579137953168047027614305472401548968632709898630944067973016480051601722282567454937809691393096830680201000428692214577746749235445054089645004634282042801827714533882847481546024410572593168627195360959030995646370233187321258820074555638395318216196137662540412703091065915147226110895009963352232664983320544871718433554983783800410331921524169533952529955401235731302118442471783056180335458562107237199768295374572689137521872180551101375004587415152270743616119857090496101235713516712292320470816369853698335275341535939488837880304627528422098905032352152702674506323969622413432791981046065553454888449138099352243508198087179745926480218510603247871198788422951680716218161615472041149614656859631662112974694015159925778839050910777940708775273959032117771959173736781851198314763791665822121306238616846423098058313325593613664633621383436319205060233931073253301928274580615310873113466382080242365441627819418493773516813170821567968250387860636100687712812010092751065263800303436342714432924187583366918412118135104724379446801541522805858892570975961495658238234246998571401206619105028341702142668654930512569469537627197333924931876575508949437565485565113089817303654158271815913394501387472779651042786576681100779229907516394090797109634004743660346374230966470780693961530541993791672449032516357534224927942225008936284140311534585253589382457213965921130688995956845667209253883020869876593289264104397512354596956047714290930541156637389039973533630322577708248684449732772976638943058925555742579285653501776370957417915094398005013908100684401218182843575278106114630896477348650910644653104900795327750363149095737170508554403624478864779666829442713199219036982558657379158798351554248591858996615853649091407088617221713628672649734169348040694266536381634637755860363428824080288137515255834235669916360078060300221824628251252664314545607996749392307695097740287666966964925036934218825645433229375149891444132034279899206482127199002275088215767332711726838634995087095887668569238105258064468582161727115817151169989679319178903135662234714367661603998671767157559402221772666245895961257530700239105843832373249532480065871295164979893747335073346597008393134149465807421682670458368856072474947333954072028578356832481993013904884192484339672043923310465961245165055377507261713977540259490299315191881485405053582549282800879756660691393636942803438863910564003983518052458844288154234280577018320340010665318807031250515080574009559245058441242024010352890289397761451679478286371935916591504618671072299497728679711949920593796120600073278351337843575022647073219947761852493802982307943191340043899070438050493377282022485096036523446690008921836868135157169692932041565948929376266470392981445782214876941205601887475738454881031362711840603227368658086764509849929452376998833049445264499328602404059123522626576625738503221367343553815956701790503714210212230453726529158328173423149431094673110843389686907545188953228592427836076036557291554057116146820136830254594997961524932171248675848670380795919682524554864821533208930354051680247099878217740909279903102109127574081830345815674284013704323370127792291945357697358023185732073573071900726201051216173633615367162215800844592931749903995698799874610934068242257284634360150712041114473651076985015575133559098149536014514809131988732118194685804722903138851091441476109671448903933401222278566282401509600626050869568696604152495169772275499566549574203769045931332117077103192307255018325009234525105365653518631766139095599356808794274780640014283071684253102265065699119932618825601382091362172196281780136686732845804541909695545128714405994215182280663677519898861332347324574199661055299152962839151644858848319371343127734238157711452767831387157152552794077898605820475850507152684502578237691063868091710920452084813897793167203587375201196607250039395242164883614139016872371703149911470238426395400988228530156508673795140964004008232806718316140068214887902981798265786260539175178151166275970947942483798536960074788465088876785311788506911579197697667984717808047073921398360444927468905291496688391693561785036881107388720974000494466916104543993180763715795987647493164604843242769174827493642849003577346469470711911578280672492133648447634030303358250871080122509278809144336165180176603715204162777440985331403360714542932107155877584971711610027317355026123803539021592309950382852106120378628053918824128419816042918692740328508594071617131886235412416662336050040709993589311286494549444506041724915744931800405931558662495262677297215702986094684810636567045817562798529869081983981315156774072201892693508133454710828052498058957046094084541742228366081695248610309436852678547512900468516782136244148108833340578417328193171802165578250748626532420362683368954242910636100561445098846758167393606907743480744793156936830056256806308579337805253035195430950169674916880958783820248572819441347003133649004480706420007254426253848068433677460535917868222128733008028288075621920289290762360966461180749902663129144313044703308583764915664394992289844044745054418227363693870296125185341226664812531058752555701660747163246134317572800660795806919156393452613358893740729439541745492619136230628431892668925543554203960353575559283152715663145490020140942411758567413467550452947870188347844840799737857183124647944386401899847957249579540043328040863910433685808853889759472003201764764390598009267586744910635110172903863197020902025092996820520959889087174085585175112368507074834365698000354367750386904554623046073630247026688363263669816360497473027672280011407834549120768948108901652975319327100185373124421545423608508280286140984863555625148396335994387985380438435030613274704218165038707891771583138324106188406385977496513447302880118896194707073111211882902905858898685100824313653698200738640662057594208739622778885559466551480128192184783961843035985316440397177057948179526326596199556521282770553563353061305537517942959073486139724713080288552593479633376288155946426880932138512987817196932065565594242068780359409837887902306231385447599233068771272922902370380627162072205074203245913318497647187949332477715373703545636190242725651925296602958251206199412175280098779694786871064147532083997252933038729998295525898257717046431973927155824977232362932279705396269057713772546329178139086457287297207633320675961751092670323935691144327527520069124809653717339702296310486012473316696615670064259334391828366112214361423216473589801858360530772013447187896969174023068826610043836192485725118087011906451367902204610699334884295074000026802305257598703555726677777147328224953931544873490631465466351506647586076423324421114649026827873210736113721897028331150397575980491480842194385730554828238863250588915731344593995186673624061132767665206048498051106580022867824713494374610962013433212176079064192727643407801198207123126001355084388455046749408932179053891368691114050373101977681387305396230798218202853410303285055226425136698383169394341108841895970058419013095203870862767080915877837810560873325673052955497122706577998207571402908700072677190980784343103917120264265401135344703690579944733086427478388421450530765049326583319268397858509404168890954851620411572636602509124189541171954490791093451680309896662807044020779181198648097270011375906718160795611934204472783356214945911459427308731353983210349124568568893424496451991919874115390945424804736071992356472582195957999940210513168468370759347892194702479706684707219393840485534469137202372216079588457685500537844114835168517882581671245577483619106335659077694324763555461599251623096223210829689656571211844382849619175657343177198775975009473039386258124490473737569829655580385627170735484892717247713836742952649035606103423307082173120619681192282613328713895687923211252231572609509708313045268860338466120751698970316355255501973210827599766661170205940048941622994549112432959273298957645625326380639197642789720394166590173527461036840280295921361294979744020675332740722187706526412201927294939865201338197467361814060120494000672129584614897377144464098421996923161877027545066287729324689998363733799015968464716539719026870951492585290148067066105554465328245991112743533728373614610543246046978487394524566736689956928419179565342224339214714181801114093132538561819346092037212747248173479046799804197043558367747109681700624854915348187710559327737353199127526389241196783372233662299021454926350271889952521168659035269333670490051233811925904830075173505177299402069930734198875922300825014924267329091813525758092936295449839156054502710962187742147062128659649295979308851440319913167988156413739631836769426625664362654818583148651814414818118858504965065970865680543454629633335640882609633715644719298455270535818314601450106120217048227480212977566724927585390068969261227950939083141701046358258525357849914805199443832396328198934286080367201187464051389555080100168424395363054013657281318812812377747941781325876710670835821180453717703611395533633372824925555176981139011617395618128225233346556708422918613638779900744716760386097074220207098008396826632890680807485525824986524264780796265278418912152999746342425820377589162913905495746171861695937861580646378602615296052286763267873488992509215268601413982541540008170264588516108784602564995665280522867775191783318228245529120032550388226809905914995571586702296761226641990802560712556160727351173133690614505071994321490837397429743988066044490119385236557069539266912876771052909079288885610113747973577488207183429883445161390738559183528560265694469551416333826125042126875049067918387283564848528464888677953201801040886966900227144007524812144248741583576826935790218146953988466287903545549036283412751537722738345478786184076137626717332043133825370563253748521420685761590459584637001946736316430426574668947419547118791838024182770302125098648134505953198278516446328809664798623324315461482090705505447676880609722193510757288921011725274165467600540329609145866505153972455009270947863446264034271187630750209240379709372342092334744504421176698148613764656007300398125494773014915224238460963897002045853330255210456177879455946355880668917104691629665035180996588091027271060265990750109127979538586182225641649520320306092068105851764904398691706211873037104257649264207299526765779570211467526176828691321293156092008995689742487863974827999478096345388176810611152175514135579018429713299537912183589354757844916025295260538818870137262160732468257960753432437789375540516579083642683922464100807778884022601470893424886953921788178220856287006178555360449697983992866409002849349115759231216324709520116567732554869986702843844203806294375853966598627023995594330241891425530519241873788270403891703551315717208937171227598472752444859530431979627090678358522872065536635831229333632246062572194578395886899044458305848528199833758077394731076841384309743845629813298743599032936705686723256769743532724299211062430955730100828503848332822471492184304512342238593721876789519433088935346457616234342830500547521972892163364807291991340911237716615006393036127870554696587310880582633508746511848323107800777430548778419008178833740690036329600858467814446425170740463796079604449523014098964552399373817260693536096215731320786354365848101630820718438635239896803293240686525794126979781299806471047069908924657692037489977317645203004776440756117114051860392419862072888001201809706210280054013962658278797676331189417627069732020185555381005426791499953834047545748044822297836134026472489269334725127881049864488882251281610141490261727263261954334177643019131091658422325096648983190334043409513051132902936785790802383471169091849798185529376490177450262186142563050512537173688655267123654404077115379696672872836692819287561201884279623154628650936342634520377799741904785941617146997579200332968939374099595741531979165417411278014285891894637825002222893389080993845313971252388153190086646355220827340636255582691893274723082518102988810417545371559990787259519613283728817158192090978263306956442187612050840739175947445945052550676278619623047466522999136044569197853658656878269448262009102098889141279830036009901749552419297329508688131172842216696416143873026674456912945853808335446898923658772209220620637382792754042168089704321588829629896914284650211640423756240246896770771677562133020973307106664511654770219204475594512068591679107287250316405513399640161796083990664272863186706088018916572753722034139236140786540627865468171846673565875238407418011192736027000855073770437870960967351845363158915986575459949957251611430327325718805440232543276758997984536074736467576258008689112053392659517166568695601475946159268287943671953054655514659323352487334592561293032386744681897721114837786440004727051420095581435615807847312394433513789731791668440018981900522518651044115743289856122518066034519677676891005352065412466250225940504314941007166345115582664901700306347866962885978681385177426475222523862768575414843877951291319875223601521038195510054104379709231558632042082547357100164948620700418604698060690140638261902714975996415835550459426727571198973380117241656586281897309842365430282578201079734143881389678556951411154103381217054765695358605138520489574081295372660813251188296461360489443125479484337415280299638070233455604196464328017966463560531736088581567538116158888694937239187925730710119776423137532755016563011172760941504110480464678338709674361164164942815365217310507915982815740383246916893653016373587924787901551166999500575430630404987302953243436392675009661043776452422701793624570101400573834410817699807809645729551324684198227576600789559960332226479125022291210516633478751370092693302173379599463120439818663454071739845671813933570842447078645485355789474718110940080471717955184390416270860174035119666012071311707991801682722689155196943236713182473026456915947266533956032322754988691552150162536604660157031598505828240921385055210055524784478149019153455615754742009741793538067403127788842412381315248755596300989229445221478360276322981617942701571142121848384896338464598485487460664383350764518392792512092871022880718613798522031015698038233895287723909190617201145753518736738351477235874313056208021862128583291525149839560216761868184031382436858182389941701929708460928827438076363868347501506476674511240166268297960038283899719727840509432746724283422339566855698004267133445777910742718777637561380033794855532494434616629332689975413631613500293627839712952738930737287577964458501209531388002751010062951379983375025085547150729105117158211015649586136841839268099606812276645226504163409236424526803956821945235594813087894726859228588116560722831434011268951534056266555710275035882643646339343412357280781342551293036117975939579665419988023742017004533318436975050975446917907961821666893273228334676563112093617028751605579882306957487584531327099368353942539094520876965264286446511127369758617677967992821076215157775095161996314098805517197581524614704437132585594912719640585832665916311998724814569293426720858316828480158163276500265391492983121260921902585339408680766433259775169015039887397468891241181413821412404690807012173478015242005271152361560019097445404249822129900193198046444524152698720710399119202629855523476854977598585345560726837362357184752983373924156009217866459109958101896739505647053017613447565395595762583823169020168484308725099297166961253270512523407455675593573109328336598884833042543780930759060443603416602123724822664601088641164794647980418388070420668328167598542771614298807846838833925356521523893990742817113371045487711668155159571784924538291606794136835450592033637425596577114704908822700530480347899270785839452011748702838626232356649230479614241624663243900845090896015038104417255894925380678362003151254177314669593734005763627421363123085860358914693213329147557226273464501393080032903957110847804170593547541578447564799979575571815275209175856772990983615926275919300584111923640867431873775411063559942786850546443144278099427809752202273499457412990782472352354246209650195175209843222124959598335599792725446442616243394873079661042442886867031330282897790577082781312396584585461565188347514391133041084240318465049782143850417571487716676239254417142691532114705916945587100830725768049979880220334861224563927551014425711022430529976588984399225653149748299379025834195003334034378280751306697978628614585046681702258587107993040024362034836473778588248339351912503029711223452182100966871089672269721308482983444387889983070944487620247431221895220845050333216585057028399040358758798768777226227003274013777785667591397757563910435181255869193742280347709698716615219677753713376541110801464067499226489054211254654408033511570143624312903793967969939834419631983207327681524605562561327089923904602758289361300770776986085834928137606023022804529765198941780707363709646560123686858260349834860308253293133499279007439576236407795605130448553001763442054707932317408849321646226831122123040465053047373685121514358677934423102553885134188718277830673078300803033364732352681731453363193669572121169816865339995952878761362187675890438126252262993105092194740358265405018312541211286956221472137780153526156416926716145590853340207436670656247777814374976519209198609772535152957571497253986976569467897795621624438686263331097703029448801640986341411626884541732181503106806986238068402555949347411818099444628931654111366037103538109888666879291035414671477066659112260042428458368485290659447330501492628803615224638535649563344318938502651364153208589766569567766237394948247600484285782135250148204083188357784530121620710675108611514581200492185114582022378822531909299902466243904964831898010264041503464492494124560779668503516727704102774428527854600461777989469903308901515270445804008477216724668558714249621386017911343152309181542598667301380482108981359944407183458242401463105075483212287555480681587413742470267655479746946907384839847859887070434341569823038436053701082241282088975187836594024616394976926545208561706448042311304826797687733531090649215856749740272239814868891658781586177317585398059835553995926005957650173586378451278714811053695252352485768108987431029027139425728883218083309887645874376053377398275609682108384120940682033285099701237668412677258656333518134963847035074477279689100526645627915068567099692198843175282778831702290739621638975492083965560459135095480305033083452288646366213260838054820808824404608268066315034483259434091090715927392063338256051359933447348180858474415621309464506505315725247566384975162870608391486468763636998138440458758493192841879687362446700597997298162515472238467260845322288856579079554273894275936948765979339678309171785491717388660876927322589603181860129433495435044152916878304087743924094867908154144695371155133389498173876635556909750093201925467870229352771535040535997495640410523782444855769838106582415907352638652902462046780634268035591589505017129425010970588279563587797565342133626993112589678156946948334760414736711805401222971702197472108591390018147461854762352945577678370616956048086230352884684683301294506196439343013296783503590623046959318231947952567963149005157524334634172512860543292722780527066338903800516704425174409372251062224790871178203639104773595532693134652645230260437547281731386712187100190301263370372717163074463127810906087300996158937569113915148214356793449129515008499281988402651954056585723352615027847184299347888681752763933017930378635636814716289635551627960449746835023850937971368478247872155487687177572024831026585527773503222029220700447602221576248060061091096890558161265882578610981358391007297736279684195401920794162634289963917662584705716476366428330015045457234251177005203320682351913996985536320120583778534738763184894195839797920550481976610295444826610441146045495284947663999137504470659410104283545556281428174499608142538353218537741417274161741925059918659154126539467112790928763117570615002115222978155228942759376132528435713148965450121278717972238582697473322548451305525046830912352187479211182595212459390035047718199103236484636753844277147614942240124050432431049612620510533681749524978566879552095663611838006665796696308280936407831150889993321433231326070679533975508488438140101913011031935459297182540571582706710021196242714460183439436654700227891696575945121905912563113720128985945474884704762978846733192736529796631154914157530655875034418791199783657672512749154490601709152938260320950502882337844161697008172950334635140744045960314884093050245243827241724762457295137213177476791569648078594954276259642628495044427871026789747122925510517078751293398875681241757306496771862168824753426270189415492999972853688888231020932553021946998780898574478984856714949828786684910818149582207792716576477058185827535858140802829294447632062495765891608558763985095452859742664404432588042777373997289648168380335021994526532195335809226922429026183839685683708839324461096427161102859066097137133281319136435009665314144756530331991988875976922522181165157008179997948159882141632714590312241165383912755897912527868237277306474417464406050533109637420356007844367969364451962818014893845727168450894843687304652458071988622517602751543492127025888583931117471043032331170226278329186229782720990958213348695257994562619322569474525127119330112989785260801066144631913146851181069177078658541658590712804861854758849138795262754027562687382098736167725636767668279506504269757545524168184940687165624183980148711704266127789024953466710900501323676931179228792559950458382684672364522758527155820139674922987737085875436232036217873433519532459091210778378414285345884424475266349791892757743261605214411272597116826101587820113797440959591878702164891920910196725142635732079472778732830623571819383039163291587477223478419967652046284784713708321180940387929047938413237994888206674474588287626571653389118595735520072974314618058527304135656435650605955694531942192809991049544658177011056764455379474083864875853513260925081206905511095402358932362866889392517146380180813449420933938815908175893890604159122071556088853290499318734751078237307683647957022346942013467592875614099575073315716284297440599517786319425821651366226274982843735492509029939909792815267648068304980410959359116069420075225318912082609706836191480240642865524387924594581765700766954395873293917147404335696000221147381215378166951406900392429154567804713762772386615187859488410844770998156501484198586714561407081078130248063688847902759755355479510992369707113617532390022511644909115741435964940362069999559428101876749020818442432430140837291771318506395388624925732094068530203110950281571255860099263049023410094704214825063708333551913553287528324244870060477805172291479276438444996760128665185093244200624918536229252135156933867380032243187253676004239584784264387498159973078862177831251387437548892885288650951496051152628615762929823772322925459102274605428955725321056548519727852119198465595767405488219793344151539155586171279322541549977074813281787733291569982919769755730222077096898878396495941846831097963754473820398218139065351692910543776540040855169399722329160330803765736067143316150390936907697252868593994553588087524131534752663372760907830257316405337439784949328661515274872131912597014683203282225088321800937513037435569919903768375548391874610689204480305712449903019298185811621461685917002095815918890647625889197354786169512012678994046296264505565944188573182461583957840009221831627758900568124466626995389827552498706961740327551382525528407459440777672435972874918888853492852920727071306017173203211975654129987150531115533061630580883234674268124736134349225066481253172582422173997805732781187904541514654170714119046605474202366494691279610486171291224531248638178849217702523582336033773955036918444504263241016888022450778832329600045561333199809235781224671820002180957723510886732578767262964736264595565612816940781517932342635172974913435617152299182230649488348690862541412160007045519944190940191305523147734731031664402781753973153172311113794334490911768955037842220017060232363658297732497997048586728702296300098282905811592414423346418381217417518824881069896963952530306239677463500118937602250178212501740375173136716617981346299016632817491677534967974968030551998118488681957673392150609812457539311382058496036442451288079812909171905069596523216422491126780206508081048702170927302957901967340415913335456304384179005829957200001779834610915510355604540999819791026122360858113354181993307914602590672334602140003726730203600737754103549527677100094253633722863782801454814451940072817285590770030520637327680559869045786621573852470309684797249654472672585119686664642231872432218518071704128381723173012120445500253078424197621899822685574304208346717877357564767382052600537282338303198747213075893164615128642250075136317329775235521689243576101133638914408972131126527774056489338829377126674541671277236914751220331191492344624284697976925981871719230741490108462137749642815571554963707096193022213519587465185845477156695994698252833523036017676165758933403064908283446866641957894178681186955871197433720604939749806494783140206343802426857815422154160801093999177672014279778068943947846453964124503662810678922805984087306449541729059191394468242403104716520545961988618713121138990895131676205390608733753136039524926988503389349242449113887183088054598638262319083509759482249470038709027255071008911365133664771903691624008503104662921451319808405932391438363764792196156733249119049170607931012503141822470244925645701738936150143337195939959467219542638325267587745365319963453777875162486746723494272265253729817543288000000193143194455318761305018459148324008124335320708283330844373461473936195992983820883188632237435469686402818837096049291222674499464219303294676846399372103822061391245104851762307021999699945444072949846176333445665032848922387061059135025888816329032592554113100281782529651849572933591650614883838360759119503376955568317179693704627767595006851197474288471360109222282629984126184861152734105780083476549999005517999530256285323401308841057575132619506554246198503249309944221940841739857826890097789092964724086497689042029253680908586042529142648155427845458944161926949536583462802800280032926970753378099371207939045242382182304970802834013264110387202686130390430560667069472209982505715205485501676809754676022083570679504472016739804999943957217353326996747470706957896964219067014392718569597165373508724631565617230987286224021016437987790458214403188746444994663102074953005434545527766007498442430724259570586839944369526479080951063362598615647173462416925579758231215606156259368296359037060698557174777320769743391144812518408205514897719251990766005049868194519984870757390931092825271160866761932820138831866369265771759413244425428641175837831557795558156398047157282217346804092085725026534146331711911360998605750301142185414785664451225358887326414144183690609088253369428691286510655654317294784722187784713894208885790808128262742431391232460685987791605697237802811080044483695480467110860876089329879458486419759661070225469182019993248696277070646258731747615032565763612081789549208977147337468758510117882845211925497108120696501023366879847103267046553291446225922787281208781550622664013064946302918123639468029757447879306737053623805671805391239018699368882559688595009667559487691803573376999002115852949061130127902959462573782890431227115529693620020201290751585298003922410089318464701113089553510616698514199289373753163234209357324720917180735548157490043908948123900323276132018361077870465838216427722526667652554185195859280858961613702469713809758185773701664846527598235354602473132260040377338023256656850806115656304710456887297881025297354451693680230838023272412684873457622101952638282825703297536699516435410463793030806321845935129231646673075700102167441053955537286951118829984376634480798848611537267167192736857673931756916484476559721497063899162704538499456161778085598159267855964130897270366424428701413721781519041040760485344174995106374082589037380471641414907039374342580589210729858598910209397757531297052124538434648179534818251780644786652591858295937390160431069369057122216195999635357980630282396031486844209195205348203197320616835414915471426125902509327980430620647048671996453897640034481521716036023891695137217416881403797648611861751821340904752606172961990194833417129786916012354700779666353289196544328354256422552670769438491362451818487775941545601456561368497898986326759058351157377625211483419064081400375223853136527039519562788082539202157997481020634449980077964646753381320989952789779619498314282957944234977176634094126002726663580767391619599377804490600237173812684753065925269543494532141154480801655753889981591224281403468861268214998057461058580322224109419124819033213610399941897296955136378065897839794461183213890675599415012526798296410968339705792530344954453746085533241576763978991249230583595712535081330799749552812588038966505150795023940206795362116229487845611152890006113725648070967169505949098436673408310684844890621524975068906789795155821267560484278187535613518932015820779183173451943889914854521567340175591405933372043324676761247349294763337046376059030916647640654677810682625324819736429194786914394295924187180975587411885113597658566451451327335237884595701188863648215606757225089153647378817994521475785273803122586706424063600212696993358258143946948167156335463764630251645432043801384875510221079787563916042922204052417846976676554849264721595371837127582570389994819864180025324581297474105914444754914901202316874488775791229210338727637194430296697046503731821586087004078113388716899283580570033013568159114785019742490710249373487055245065396284911522476477796311074981374130476512116599695412050731108034917367449069371628281516803712391666541485935756304746621907667380839311108795025036458264015779543802334745492363450212718700666105789864628522515836895069496563924769430225718930129351018322103689489972713307181147091916052104011915362578502639685770596830355274724929301804276786061942326483045014943227364996952398939415802237990610544383926425676244632851281892486803037650994782730199551414213944531645889919222803587127224652434084771194172173907811023122885153053986040608960908162541360733449396466659484108872902038090966916356549871977176513945982247776886763882939393053950123140732012967037205726125521193955496272765701114042282481646568229807105842508647215141854408603909034686959566069603392475732044607899522454802389652226198514318889698911850845688260163437336802747792470326122677239201631163766086315755764988485343338492382546425118240706259038036690908539546170156096275070502977763865783899470368678058146654324688310324608695482538810267836873929142655646022244694864493471329532819476804989460236178078708971102432330077853245233422919576138091306654870419877551055024944540605357399533942598116618039322449834056424672445884107943168451083671301366536271603612871884940911266615771768401932137182422089618433007130310522441913700704848380385831314694066801164040597434721663575844604692477078113774568043576711224439570911059836686532701117347063774587719955642662694942815694742327351090831910758055770820705497105852926588766675609168529407051897349589516410397211311520260740992400865739729402419781575176317724314481869184265720673814903359170247228299154984246030113148755667368818509622295649780367325275815510736509505997189344393799521190773791563340730785673373522686147172871821240689353492414808232340039225761789722846309258529080788629595072429412766698630323307046193648427960210561656339238645175053975184947708937405896656278999661769350318250325503826234603219248820105572874457251049319669520658870494994271566504292633337420379984261264673596651520161161769957866762050938591969120943181186200260759798203482316371745896297667448745466995795514437888841975369303973426356059074522354294075310549254790617001412970519981856553748202135949959675789181657439387950390431560219098908282043989121340060046286515775473600465640875429187074824716841414318548710277394888342181972250721393118737120051847099667532872308251654777339668568624649692926028438453197216527927867529952665391907210615959861248213661764272461953180896784232533447611494003656413638554590529496040275963204535020665741762408819293749241897171814503537183154558907508536816951399945826396749659211976859750796994205724679047388784450143901570713877764414017955214126433688939960839606125377101580547877012172514117137458770269589517380790166869114989389336875028134328331591062771124441331101915811661326766919498238321473440521146178557810954522807933265502658444032460906348557889692911261048818486482277854846970090158537044648174430403208408780189908129753705976076045800918078777039979022593334844441558533069671764226537472042429020809622493651359201774409690667941024151670177312306102931325949345002766190826280239445197058663072633643952310247499197308726943942516246293614568526508744594173385300684958385344994553994106779123592615045062118312008510609348585248810818927805281801639158083415423883651382599708235909012668924790669208320097332288641439992387046019263978136698228704615647637313156405862825361932098667705951225081221992586330384256606030751344110714179932153524764190386816452120208653187923370701213571238997685413883236001358901068957677461093460684942903869198174858474788852956360764109546138159006152903677932340596736515307320369775455319503953499936356931298727544261495961313980143044689382548170014738994594924457059782324860415178256709222397357579416102180081980492443536709988639671791013097607628198728799024942940395856061080145374133902819147429454801103622078138308549491674809358724155413490137639824286958030683858281532599548983607759883904013220672525933517282589331022371944671173061912166414341044961145556243495655391136950546943414222221050298201361751655126914461837279002292529216066421130100718764726628173460065840672028272592677756590867899134376110071321820581768774135767086529538320399584436370245100411387216082511836577047225633991639726495200490656032330126006027895835915327245381572451337782863537520076644067991479271952229413833695888249365330859403725682565457538657223724094079191375223219615838512830859039467970842604449651915629878465629947896633828800644319677161513632122500574547651039090479874834320114521572562124317460477440146547485688610972104087841444574372778151488266738158183939252775149765405634158825672998585131702906358509389253462540038111271663025020413222036318236011524599791789727646240328178135302056048654976520616955639504495077947573952068026791473482396662135020376227149482988706026186862086537565523868321789683557099028262576161768545055663782714554637277037363474055743928573730796041393713134732785463038859587237169679565881059072289159930523720431364482478222395645142184006480121601352129506949313701113008287432672620822562516971143271881374132666964497687870941308609726483497312641095897089745762740845066845194469477511186469100689695190206292933171554520304231020044623666817079916683167257241033685750580486508265046377212626098823871413935434385939391287188873293762746117895010768261847899879954512710898078773430823744320113558574317800812847022536049672751916279571899894288986410762216663485268988186270731748022201396114591385809126009297906784453734973115186856128823042350271215475735861219439003740505057139071541099454076416763100540965499598365141119186122412146116148038416614641770997808583172877606343604934138911169568970774434957433850661765024888915452044174949049734544715839945648659383581716526378052101235392340786307076914785086931706067925781710590882676876651167732236886097450158013629983001955500894209838496157119700816131680233134258873047060172241584996771651572487187181164798887641340449510190365087621391389240207939482442777845018431967235864812999794351574642451881386162309838504825886254002539337066275186327393805750786454092571425558791186381925206395622614000823908910120539551348503323399975749042945691312009204396267959024661460712599918477372754154696975050755958851125536559460804595573701766410284215297486278654110489371035057393827684535122666987897403008557431903286686080208039816797045079912331839146065742008090450420985381553348260054909224777306482838613441572938652723736570681412162110387858757728587100142803046884781786146255963269091184413702404651677228082421662293756341635311070256180465446897279937498850224002481525279210990257823184636643171787677049443599451269551931317942326228091598079884207881165681440855059395594475547956676755844032356129235534812337091012692169915014429156628454242227076003349231703075778757189466143700583163497400706380287539803428120501817966962354490224621277528875644088499922807748212171078302589391149531014434579980443111445144514497022230648763971610093377737912423002454275874890061702271435089163259643186903842655019507735147675073253045009801710400573140598399295751531780755246120136735203993556100746944093771247222004236763018241320361060492280875624205250069531793299259137896157277189457585645567022459793686604105023673756343620229175128362060562717440008113601731509838763725197023007456014522158538605651613811929681921947224738551783472659021725012091199083189254876382937818582316593988527050426328578365241108446183027033904850420366050578159829854899829230240411539025059830241690299515856340153749351134756173524062600742317393788645797401122434453174042623489682622608444842491242591906029735752466143562347510369332077177409043940248151695794277852691424623680025744423274535650142885352707331138007851116123107547139409631887882135121234153581911553952883099845838927167222587517417106030910367501244083162985539400385111316975050654731494402433133170124714988984429605691208901386935161882912541987977936662465829548895237073997179838992568072487504272796784640917766480155606705135435551441567191462278099387351266026918767232148889468270678449942282969952560738471656954287906323212797684067254758399840362965421539023103060583390072580927464403657817932677257976499567325516587901877143836760551339841918624913686195371727953293141270663115760373490730295294898543401892038515157048143791545159820348889423510873335630894477866298995890671181778176219985676710599935694030245402452575933768848472871211158943835515418132239241518100528675433858735537226348647735417444744257708679483892106959381199156445193949369018030219015577335073112477410796803223060691324421963609623664883345628331841601578424123391271286321043521117154339633818299955805958186187020527208434573397356394897837968927177554158590311685973869826562033023085934595920680402239026174814367089085881961321091988076168502946826913045356317462345214066183065383943169892052643534646667525011333983995906930477362291016331731950123894629175794107999763621722609187425804009021782897791861596684375309838254534853972282019087057721745602218173923401135633445607498680163898529930527647997849293817845941994661826194868236371761775007169601509529040475285944600459651551506080701442265671521419209782202801245366727923136728948963974373133845018755806282782997597785004215482620594193870379770092355786063745773380705775645756964183643197712984112019427717936951028055047646425915449354223424923852250256016617200195930524385628219105819502701775339498428887618778983627939678842681024095612020040908694832038685471694821031030668096324291623711533930222735153839073626279190661155190828028849877174860651928500855156157177539928531524906948451253194881171925522206171411638053469243359753263823115498486526961435328237371769635266104930678348654782196329946190649050886439682874023052294389932300929484478878623226122496167673051869494922044951817606727427253854324217770451844411784716053336865008427895879380747489497910171940095557635572146575025474439850463972360752747810598168997638881294470760776141051150502162391829112311547655173497175763135886359836234158120861228342798647076034618087499144663770214671431788398143051111269146461879817876584157817177459860437283524357995208956297832780348819889296230383087799112271079165367578320104674920525771402850314470143116797034869548044607444233890328899489985556802452110889877720293655853338318681558579256050668376017195536033771238367084501671096734917759818089750175272278546520640176934602638119168125114995638668944304149857659669547332880101090903395064427062932491303477539303480925796521347608013824764018585760224296245235862457048563344785822551183873409665033126406598284184472984299615542497110934270613840438659087153580177385312704950678598819460382441576622316769021811146999129738153271020124311953804924237146422588542060660539996441374550793958844658816845299130773965587185746565694235459506531868061330341331372207598126016620615572773778395769235601717632196255828044678016580529158491920432940427355813312187072894612861980389256545093546109832326775887785419678711833069795613462759018742136164365598375081501923192592336017188574411935415188365752907919443206573710466418328201279861278580788998992239900035042421891642579739385657655742442891656893038004851897306151561178771516817899247283797742312037603012646902615719275042957758952430180255333298102307295648292511717630629110166466026329005179070340083622554760848066301243630502913734435639278250533019579362342402283632050755267665127265866539526945857433942436979543570057393531999555036753063408170418043759226585802375874225019456904714843678867383490833053513204893420252554467127061604068472696522070233833669542875097672055802221232454675769057366128285016486814616896774013679207445873187661248773213936379823908959105771524820907611557478169935954044283500657152782458395472727535253569205192174741895975741488260567632808508770648671515639193224703930912394298723105079615851452051158833311624365967508409093936768388560693093151222297391753916087170426439879502262157878518942757521063620420062773890867225079475585042766055811843392831595005432357715303326721065341725815675184264012120260522907743503675278878916404077345580118476367752463392408032618329812063561995462308617784587914502051186835494411751808526628398310668770893890307834705856638488661714896858884872044359451708828243871074310363964819046997613547214990822838055758966290780378260693627035124959284867842832339810512825042169625942217744510584482705823786016393370145891213460937071633226207929120992333757263497229045064401891645281843158445635370702268048741119004097565410061419806332604781481840717189453198697973871673448682414436374203513804789191555392799827152630140442661978891380737529257260547628465255512521021486656998364011202860031798558785354975963473380908866360844819548354037701186152453222998157602641164769002879912332359581960540409744924420017854348671589738070242786279885225258484689727786905536905397901379623619344545105918256271213791843725891009830532259616603656474761442592412453904228193586476167617099337399052140517445275814074173438017479504182133426954544494651928915237845767520720709280482430565800396769979876211432998234636402718914077017531209306524476896067327801137261674886285022465682488249440215058188713814433073202978995800243780467563698423364576566401615513433365658221030413034235227793696481665891916456097066519732231586397126145340023385496073653816875090825873065343969263625238563906837190139989519828800875277922986960799274406961447327088078055367774899760124688125324731432209222380085238704226737161884201906604172970716350147212121581211884228884262837406682951349924202724401890227987245838317801341169003140399458590161460889722756227693719507629119108976279348991966675563160355327254851880429961974989919736615267312306990763633140547633482271384669992133638706136842104806652817356864187217379701605655685458430736216669496860215578130752737146987317479270249631758414180497406028059964647634527108310902506734665404414841872310222171581431204313085891518507437478730531536457550637369963781968277268066666942623105024937533653073175799585213918827921558123881937173693978964420009223863832451511054724775261812252388131310511729674562424712552577430584807939578434651767309363964028559118629949435195878277871377711294024493664902048773544020975516183476195727147377766428393797537977877553332871593911567068360574334978950305374509039014783276804165856675607233331903217965848797843032029075272028584127793164649041561919343610741478018063496271495691424850163333510404488473167227682813840394669492737229753501191016739500622650276676407150157764092105757785047343830704037123609844623064085377142933214802561521510396405741927928883519079252052290996415129106358580775317480757781941862521805044393224544954723623357010620601211037324255934022338113665499599893233362735854905299865290032035383976446428528531266474146366003276213123249079994579633745589114743814317636806967300212181635109996166106983175748677591748394842078648109719714188110106955852190936827144494516728647746161387185148815580909174779651831907009167004071546725635898214060196738376205440214872097757413307148078188230176967935103678384364668140330514293067672155414134702569207696755866577095368665029792444882932268700094248056687456098790686861637562197074697852410822058569648408019704022813344253431295229925712608075738738893218560674870715339677922777423811391198505488736104096257154763152016203215010834039144069481398344192196158492922920727619401496154853690911934970818686820895356330510920064301438986944025531708336615697511315486063193344415970073614642341715042873413369573381370970202393566579366722276809920999940587169924968585029155620062966791936255573729995337738511329781157218866153176496852004185369575667922521891894782268684254880932657455121712580179978464224663090581826089035475395764322389561531976600920756068063833682736830313123015225067662280735822449541805791627048611719384026895324983848445151596952089805460615150980388932128874838069450792527069485187107885954992069033214344063820413498074787187331413835123604166338420727501490925871604162774734647258351550136950536426552727717288095044326219991855136766840695812629710468911181450826248668039832624505886543715910743128673947299441437825490613576466287780597396163483738849083341539198378296269633282827003599777651739959965515048685942891073995138403000493404766394870778916676781277834801202457944429994589470463904682512751863615121058654925303810814719612536736988566927512514534268925886585572340230176962765228801578913821368550581758265968014087195342749695811163104209712264519877330435722733536380159647936945154736673907737953306703753376915867713120964149734298595097748988285114623883808441224504554330188785819575368839948385041971203013558303593877338577227192967460316710393106676546625057887109830077300351879313215844950600516534009134952410104712452424058299092470335265396537755413992477340206815979777809093755668620298947063329583192840355454996677368760667482528457435344240503417539475082531522961965062589600798136063990558405098099447978323564591952872357744045934244934577342746277442423239094186836819611324991206557061894359468429401498933484613121588393988335498407395079373017760070396327783583346557463299887585463632057154054253327942928655328327244056148725972518414507589653717924061870485776172258248065399376789879710825636203999576658517367245086281024592714917554045769334081454754100805678705148735991777294884784079749909026447823052465869898353754731709005496508573725249196212637115481100037467576607502825286924117185977697340725723374588750031153385895872615168950761629817322714034701769960509500927763016324507402898846284241146360571337018015299094645965842028446517800024531925331706079813232611228688673750169913674654174440229903732797661999727309182139799397603691285328547690319635196267556833144571125353447684003167145010139411483255178819216821026046933211128986908508467664457132220103845018033623695547668168266603704747836301462465537571169670284239548871003948900600670627691779317084090622114876707352583411237983244866263217331883763154453177820013523710783984688029030551533454185482029278948566969254491038783061707524024264798636030950169906456803917027235546615214293769218465818233924330712801296036364204785798474376518117696008720545064436678260211678155930732139455163323199933524022668765884447223120102595621950023894150436568224883693512997071631723771016136897584905483402937268500554055743816115009219220121540662984406442748103839199287725524883125100938459149659841929797167243440221256699681405593173523051521559037019136246358898641688845909312782952894437360493826618524203533986295137920780539941041415469298849671547242061024290692281309545823256117408377746062050338284934773847869998433294979832828148836823655677990615803541549340793916595441164709458513015836199760422565465958069599564212630457959543648669553251581697805919850139622615454854150672163781380647845468417049967197657649708325270065221894065082422111853185262708253961081406971564171889952422374570410335936091619320485565812832531328557771122928104450459566793880901127735171978285064517466755356441728065924735684928241818736982053568617977690830124500034916777606883636152799771399289277328150215224857279618567616801450589603210482949416174202678777152089110033305710200690500138344403051007883390887719408732203526439112038710521868399628012847932775387406513939610270564032508612137845899686671278673690077858205521375098125819047651763178493844198562757091879988516689028774898354470785898014038126305392826508185225917710086579452172343914729849339051561829005600712556762179101009703427695639628525747988632417969163598948796051256929256492389636238071937201680824599291802862258676612900874684671849691737789697242053034718399858878958968307763974793367311916666733763477325641230917481380542600375210773052299719146557257222864005846476199422966891449916134648108724147072888597665369862766199524688598377821669965655529977328142888092602139845257252227815760494478350932987764814050227137103882856026392693971296835123382484640855259137956949899249699366043956943248273756419577174692450128252620426076912293587669408024308970107997326785466189387792755694165597374930299044336950220733921021291436720578690671303685331873767230257447165859070975518197035173138450720824220607363180536297479923751639692617589842545367421235142866615041915594391676136455089186071015299801281828195842660939961211749074743509921619276510314233150674758282551450224845548235709581015849443914686271044346029700703254266633636717951471516340534542948314910375198815984422059331331276343277289638698873030361330805087385501885095268730711275853286997374343599666478623017414929999467887767000531512840866382000758146586601999754569867304500530804849008214899043673222647688871296174734305506056529566583837589509187241535285571127286519223312129337057386783056318365008915906121492785382452406083678997066194742492512707327240798135482099432852575763551947928916829476519992344316595970560009433588344501182466240669648057500234547670553884458657361642065605000315914228482244041159785308930649901000308967225847055879010388515650843103173060412254827339219536634131776152594762388779723044703465288334584152477460000695058705843756185912352362944237309194251560814845478517247153803434442639750798752561783847808661673394429558027607120822765933579188919455028190254266688435094424481286951133200201829893261478561134946785380776177619114015481348828620366425497154495961508574065327299755520249303519615028190770332464756190958747661543776174556371057812797626187499651835753555904733268600047645473405551947599808608338166096157488304643232050067709392656351684661357321427961885060795244600228405796109869044374860431992613792474043820958343212142925161429120783446112738859991659660372107991996825286013456729752077554213095289413747880649406783648923181040265017089021347132812583999612545142863707845622215407699397610483544435622774850487585957248450846810690850603525137031994832254480167609661157007672730558016395595957809758885642456395640803269067344631828097793185317147469974380400253399845904936472763608120313612720947721497027894506589983691665727824534245656698367152823049162053940577107402828733168927583428774572774310611498304663284097398344549854311417777228413862169665461008249103667182728055977728096105623203078618383507920545256428431513898429009447857494171964680902423924897216748300981752716093599258339171117466007116033612843008395157180160822271054254627053297712572263434661061591771714348029065413815629336473182299177960802967534270366479172687129497099101724430629746166038592937421544282552993424934613677827485228586425553720046513874769783468913953030534830428667949839751018076415722975884051027163485948752177433176144700978865638237614643327156485608773557726717603679762217213089405126329065094541629695774859041434141883479001469470644847974112650713768441809287105825317992530432040984005157203267178315189705076549845688398011011728084271339250812769410993200151886808995226580021080358249722854609793358730035740045014542918060105256845939731667282518734011389804439327625547207886243070159395389427305420415398161281348040340261080807120278299302766866620830751260290412491617759863370116422574817112609025609001799008885485599773648081944712904913713364204842364874098904836666630437556132677826107768572302127424939167601234546867166913022087812651695194421350379808568623200557078599031381657468422995013260951618038220449139382982318992337867167606695940985115871032121327956616577720006770940285311583205762264630774596028874387259877893514481827099549090776132909377824987308522755139709327472594794736861232030868633643907452178042475292745060720609603856666299799974882815330495758791856408649683723971352798556866632030249244396848511220762642120675247407669650167597198661005362782901914856001122424800426033191103986366873224275519801742022721901497249517037115178031430632680693411835760901590743169147294458873480308664849584316373982865137205542971881750209017981090296917538726648889824629594932390842336259422715601049153088422261943041709583693176652772111282504018262804777442341594678741696599889498046717453204469975500911062268184761076451933136751657488241467258220621101399080927201106426596900590849415199775945549325879703306529241909759415420309801149907091101468883937813218093641205869765470381072859494964147886987027458549929263239604527262264974113113070342312476671325004582989101670753108478902870339182271830884872778961070399040812641552676218468999771496319645384852144772740716010611869319591660442191887859592375380648340229925713225424778566714833377997689762723170865879624011097604218915230487436231697283089830252727439327892033946236642355884116645150742785502123733102930691480845151350147317379543484855727728748493066825543483574818647498750898198025804211011059363414650640691823726718168009499553780487024709539682475726398854036038475824493819885005754960020415184358604083308236470041185391897570160925737956776978898643781246358426831073042892160766168031408497309707144910570502055783506793926904080544755185155179188494878607617482390891660662925590481002672155729001015663154757009647446597942926914353093931889669008917828728577646983570834613554256887676077467803043042086848121508646952424220768966046225317270609108642731087169672256169650146058119768024187708014764804067895075657928000558468675724412864765560363090534696046161344423664793963761998206377724998995535477591320579545630455790344986423989566766045285182794399784532606219550249419860489399051894811509141015335859608661794296409439956124877730466479839789479837143644512897815458303917589793678267681753268222001287107656840511426046080283032650350565699478241183199209575235229206772459305456099521484445836245103264383653831239692042703428853129079776109401615584191654839512212349905993004647886967917437517155948217688045047876358553944505315263256498208401241954430742950302671935148353703346781284386919344693932281069072537027400867373794313631631367237261135276304602490858727891875906616513591120177663935018507037231911858012227634527767053418813634538510231048055968185438054976460539903972880616700024343183905218474133308506240607427544553109268936446135905505545756132850063685505959954269601045830604413715596935610358016088778899623854474996891396586706588341260087868422929709214249826105114860532908952396355957634610512559886934908812982229659305612028608631589825154912574688088049758918920105195659085111968029605920258295658399903905974809010101946747040477947793955502071144832765011196532249351873931590130360559252520896583435020291922865210733046696471303449396946569297777924819987524627273770180779746534947205612505307035162050867584849796922221187926905487344832231147912935077391340939534520942571467232426008403183464629169567059161185583127000006315918563264241023338928975842301786653775523122683621223347805225039580078946988703778391507203015631004070245265604832686604998235939683667540836416433513410795189521298267578989834173252557223262230350069489669769635977398380231716332362030578246470550509807424801849465205159548525059319818290100970913759330554831548880595286726833569077834778483801561264617036263177969846214362911387948183253247950002921703864161079645557703744653982434720785946549768486616872323580524146274649190343227734933150846200940221831524404268585516163278857092185329011712015705127795486611419043314411230332944202616946110102566860570233847983362923792689986363516412017565879583111215998988523279570373803776535786754648423649730695957344423424218973007944800014265949224698112798049680810437019322532101037520584153012768548354568765931236732224047905088830435087180086404673306240580699228530977405321489584704923057743938938123766635606939562577859555249011027844939356000250026308161140144523432808858940091201165701296827976899902674590130399899359193674692107675974336192899957243576645997771299880444388774557860436231290777599197561248390542010115525721163699266979451185130127192274823193406426865652125498868462085557308472837486044683969404777105803409722195716352282437569915205731633165606810032256559330524749562429525778063323054597970028404893192438488559169822262485173146030961826169040247879446850731472346172632632089976237578470412674013977131973176824054681419550363204593500833738335117992055912333890272647131458066709123740272196061419391185126284194166457047426860405723040963587269766952998670845326605567680607125502282841492455526637324712840452864591569464198203408298170044671601001420727374607480358615261995661294878564574713365128175111747680989829806777533069802409875193007313327470254936544797029807606658107472543354899919712373415155534097628755769354668359853650948914234130417110133835163817277774842120670050407284013027916482255533489267650297020619257249922390590972339721146527576173107794516692348864345161955537752363656462381662360077481082135207723051098177957821066241777965261689747160728956273216279253649075692621540684843916346102474229779663726953783674246593673977508711066004124505940576001253063261619615087412969379777250010257939425895863291875118413371830801081454724112352814050644780115773040760907011041557867354934238515445394268177631587978609914267312110560698409742759018736834126800498352774481745631599145844734199267425912504727143716843753561234522171437934804706729509965312527189482622391821476635167353241782537373933016333006835858682675662032621160928409200995615052521884497301941623654347721971752323413223771642802402081688276144680747052445095129504848446199723502734410958822339737602922048469133870364833744155972400737162245551082444564202676394077288780354249335907893928378415908295526058647098750135470963381220834212333371724825771472490397075276236787137581914525960499293241141862643940998203989168003798026042968861271608457757945169736958043798730859854679582325667924567125574286294390423085725037511720280762786133416364995633871566189243823565163254426591095415015076671750852354931348769613916078812642131888847802286431655559263887998866311237027386668670018908514181127392464256988739885753049238555151882462526174548835346412936171306199400888087226947108094728015615831549976056748850893995067262225615163460630104514145977341607454343747088685043291956966330177590320706337489639173340359161025354617301481243170005784804047940857065960333715413307553493128455488021235847142596860183437513085517384176838112454105327892948039020888104117341271348580355262861279061949846315414029431969354532542069684000738417779707713547784151591413530511607179478855909800749355004166374524927274866535800648932135909650233629404004295702608176400176450643803379291001763375859014586234184699890345636266745701789252832356568016679400079178226641207534871531139348342459728086519202685372240027524134011289422638155454778825890507422854182496969225930824627898476835459546152405620843459498447220419761804625375790295765442412977037705833540122229670183708659942427909434177025856669517112727651771476845673966303889744829237824591679510464744060629013107402401247241372820883341967349520263582297637592667738889046728930748219980993648180077023054866386290838675679292502646262402068209135712048036806040212332215565046695856341186736987131595084997373041614427170095948797332425552227476483809450893424492739978845669352802859920231209555866042287568329361326428890646025806419712800988122625454965592652246674708794040788095785495172495895990922123895642296533095029010095352357808147155230779422777213397042540434344949396470262427258848812628595824676837992706346503488751744706505341584283763327097772984707768829096911863305997521399557117487579085434526391234691912480689010376433856780057762839486226683088134717302749304850419893172613765217295771232810517568404960533607279295555941977565216303699928531390235157312650292430032374265223333655274351063931191949657577328931531808994666434132241557672443389654304707928751123335128966338824246732730920245098164846493848159039858362386321925497054567611453885930906194619550698380030689004731253174816698219595491468362053535133074812108857727984362125524935785647063318006516459289988028440492547908829993226532840890500629586027562089732720932606335244006638110817093348069058483103740749308914660032878010746548502691762213114051265557008579913420924067486916354074479403677648757424182583791409189528231614751630506309154272137857669305267196936868542964410935003653873426286425030470190867877745036977611219154558269607020411221617563201462513091630115816644833726138307852770302177208601040351567724304082926772397636667442002863374815982042575227709294592977601305899297553195714681584612529234984948371927729817299738981453911374992070884051259783528204831964354853829720671152635631979376724798874968853076479318863184772895727699525291788501652307186146665409809701597748764024916642805382215789700855855855328161834366947174637256227373932584769247945919375167857899042863047424257187178625968793019530384392702896634621120073033587799690939358248893349098252239989144433313320551325929559468744832610589279917998845033405632013479265583028619746103028781306081933713885412723708308313412888809778355333259977720864572479944599002432553607888247003653908698062828408794237514959665104442816768946804188605648156517426568390790429012541514474131910509106167193476911558132474934563445943049681744051537682794581851626440163621187724710641583508023971765099815994767619183515894772770142808784344236524640754795960198714990846070058950682738963149136458661444596413374596822571963939010277089442784644456333232752252118583829565715810349184139661680884676132693159214834811240686057019967998891347350334398651713978202706756300551015325555604216576506439023910327593715054789945749715576217502526746810308635045864609045474343485104533289462685836165425085299045408365217295535390009935885940296037918404683604960535693688511830913478696559303121241734278587639377262025491303250265382125659111185219619355713394938320935251229361445941042697695042387427440449741946093609625728234052106342382839546543051778124109477156580756910577716526524921294869937247860433495173157976075758610586124750948561818874241853301656238105796950924581083905322257886529090490328952962620544100467865162826298467579418909243580442854653904982346409501107905172188486811956018107306518523630006196270594996508741873181267552299989864367500355766648985797340675075919386117692447851301012207421988201748282335477577414183619698641232031743771337875599156261672946676311904020010730552900109986587442209655431521698875167013166199550795319368027683008066385803745481652943545182945286451170671724087013815039797402106122401480074011865865126857374779394545171559789936244298498765431249694359638265337531413669357999994445658358456123680220759829674452710210476750257867568089247700341682892199021441477606377323605435565903125803080207376982660774018000384855948928799041585086947214836174950769252737124019308004679458464176221082663721220739901726853023715969910621841079420503559298354842332684921774313138626779520356309020466622188950052732172975794141173721778484402684729328326040475319815821035488120319656981288811153086390356997832278322469727374361746820298506587995297317994013895736672332675575241956269842551519855553132403310365328654844913821944488917359708316511995821324925636894165144897867618479888256374904782029974884816917889658762283061648580538168690698666153398835528396355148394365906125587152151739544101286588700932269340471783646898705161101772724515002042527531000739019307933889540282723525845666843836161626356691039067497377555037224061467906376777365909128812202032717585561419720728773129722755859691620021564902250168778655003584272169313027808394973622062139285794270621171764961182276396597102850922352112213155500570162667248714191049868869847647321124772867853048765825853077605285555942533717277100011926324664825001828504453425028385046329841033540362212878195462780435304052838388930630215928086775096333014630051969749229703477300367306455498477364832357302499991084188820566584410482404895023556518753370268334624344868431480702293798097823156569503145400461157175707291602527847482384559043149867487820443680482490015653225871439557031374823354131216081344254174416330063565502597409837752313339043245451985012718618523087645290731902107150013883531800787027330861606601242139538548024511827744465184845832944357007813040148023262038044566719151529127593242583116331693547645017879216413856334095624368573641162242474354670349809826148347941612415415039843724545101501460415587118475803568416739517074849761903406121086711644130123239548359587281466706030563001858519678998041229456944255299898913928809798356383428140799208053860089495961361508092452384025866258952473717327508683025083729217828178506623737428236649759736868321903818626976717040979877780815637278298635201727644165795361614075250276744087797773716223581542595334774310686067402486198708218925110351106429976156504324608883446016640427534155388677894552863445149829630692974200132382599749927389057319486665084937044495009282027711596001169320777348833002188429412119013039080466596119338123849103957082298045703660647508864656218876927425672604872625106277023426700837374196547361219247978893823753522255798369094838878555125798872154387425816310663675273995192630129418947845908805919630944983959556713628602187430083123768790769828664447103055533666697663037642584124881248153826083879871678849085910223510862758521968208044272057099132130984896914687742561522706238715300172792508815721411977041724785253179276605593693568007329030511749978930618001767018854511084866963612613933013253128820935646457418332317569495537851659511588220615829513572819072811931423349148512580343384165390500864838588389707942314886764908278562362115941518564927857115459986504609388493195265848566856249088370979170322075342162913358638852299318323501247501786220234560158271703729341374730490424779094547419695239498386398753135503838770492975912536405887601579821443564549185874115500288955585927508226868502485266879174122638335942586942803605941297354863462113747280407039348097921594113474885340544432123409562249189781514479339769756989501034899695491092239379589871060670555244728863162975332065486536668788715208196070115291328046987636110826448821016829381291540858456298088510976234445427649357294555700136994176262726622577224941093337696336855371486049064222377073482107425561084033488685811333285189348961416373014718697313536726267153812917433656777280494102780473741744897937432596434120572089787662718243449792898200796128597692728725428207132397700103096294611344223099092228508776569576333622274244137685476014662253450363096530318263922051720242191172742830934794563198849976468351955478553132678893792791290304263019942774430193718270678441606773888987351601925792264644778269815245317022269175099552568508123458285265317031362785515807357936563642389173980009138675294123266751706852155106297119419022585409458010636254996472724515908483901124179172808100050606105539332711730619663737720992388135374945875665790862083552702385433967736338913145269858525498251208695314243760461602000436991260526362902560347465143296340481881035165714761784554513777605589416409166813788771909135501709697244823906053393945303046164243479775748292386524531094943397148587511172290315416980278352828222294996103174693217904739948188344855900614233721571447582442129061588952494030018976333782693346079025809246815816676947844458631652920863647392364505223362654102393382809844335543511385422076848793892051346750483955743234743633199859139777370319253845716746722842132377545163265347393115949337885245017756097210504377894569231670208288640997858807501854244121487401223314846683259343432913940212741380870895035236335402933395011258161019143492312936909172080227715841535367064322901355210276010039806613937350890052335100538665059660252880217592022571725797040508252186976505100597133556897340738732731594038731349332256351706094744003763479150442242064356500802827595965738760943074631881233082174050380097765975960292456751332982972295470470949627889451714873144081610126207167330917474679751157277634305826679524770523419465006996466235931272109346694086222399114276909785078937574653201123374264969383065714937409353589379512006470963513661169297413775139235931496919287974248152504841819960899062538541749507379340388298908848836470836839049680343114318372342185638324251553388638724412057519111657125044415681588166680647636383602112601101476808889238363740097933749647181128692517018613884240786970140905175848499494047294037725384631353644415730943715646816277615795770481400687397835015409714840045247348593540097371751706416497902435749676100226226459396472837977427309863049270248375746374342349741110229203377044897767539051870952244236392265009766031645573845077538938254617139162360270203161397807495810032495017597169319593660232121664692969273693227170346758580404158231998087393559196378038196782563032242612762960065027255596436522912997370393205235668842885855396642499051842950595441729406272569365933802569716564712778465388668640740843921937380568337132274030381739972177955505749197482008800749613827005616173881238711120902888319981148918702998713650815325719862504273252476834769549468596986654732498487555151778110072953046400806253635370452990783976880597841527972119273663450200598015772904646019791770697456263795060742249684253615457643177857427274777629774930257548418554846381981493037012636167553143196095889707038620061615182620158446003242958847227382377586600800077813202209301347414920934475564576003195705199563180043789253203366478561487677970751975561365740612065134841253853863275719645805093657510152582240438458130739385515910110655503453341046694370697641541993305238151293866960846019352152875934851703157315162856163735351424196211405775248570207169436537577206434850862280493263374673675946153830536602320178577707416290272232784427363156659754672203923470272976506050416265667331110344736892091258149054441333663359347968979068417501016162931224115685830279979576088022745120637433578455550693768896108676573565299516566760961371820685146160779905611558986503377850753134035425829951077737065198649736242873913086522443874487201618343343861668426484410385399754847624353960278414289096098268546173783006244831150326708549203414854118521401863071915706606977254211807420920598231710251500037801417040852477441889340520586624980773441223164607239053390965983446222684737775591245935125083438036046006319119807833049394029615345713318509155892890662691091327789965505193198289061827759302161974778093271280152832191358509642432125043448287275252665604048566502553629310738126941655368206878120101833015450814657304425644302956599724808788165201834796995601666766574174660534413471617952023880247010200236958634838749852337139306823388725948161650862565759831203894401630818535969632650081973083564242110188197210721202456472707692981161793879406087311378777120536911490467722273148235681129716894963679553351087904824806118654701821071721958997911901093245993555370962754999744478158891051490946502654595883773855052252097714631057803770248816174580334642371041657444651410706248801425069897035010504669506673623225346708786117415453518106336363245002419790040955685004773088175909390250055580993576345178215574238182096806260410789495655727524807850473164780351013656140257336840814791565528585780413603407006846258693155471461266150954732598794688253799770600828986754138507381232855234721702986984231344978594284229464273162590072680660082224536598492531061651660420124599303239692034072960412624762692715268743000660366553897528511340152181733171316745553062961015815910670966326462903106917814411641886025479347149614582784354521637377439106309701104997093562846147125848555191682500846521439425642717226237561280372377905788405863253213618503111547826387363582956815992003523897136678865241182212201331574275735782771224422754009637163970485151568126699158566332090616666911266428283456662894445549312199437175092428796026487909146458101932542555067565786184461380352295772696137385504621471045098445048930630753218051372286855349309727744265815576850588377336776475079623429645605475592161421330443822551577089106480701288309000561605917724905406346891344040465464028867512874088533073176180108432776595863445634866625679148054290970828652999070039561246048743194619836571118337490455449728900974950960269923415848693462037971040065228537189996284252844525025681896199791955401591291170638463477490859231615655655991394104588991253132385741554900554954694631718122042578212949340518314685813646247286904967008653825199960911465239866203248661438417624851934460466252011681909063206422932302382781475916656742688916640626990750399368358719501957115865610144190184844253592377568427594788000578212287642631242765189073208863896070350027169745590087737002027041540436850445661798654809353036435308840378687501289565029888956499031373646715911945592337217381242991093575569627024053079846983355770181274324168432580773732912226117968896450467769404421007055144889644634649309784922774941896877430186692577974276453878789287277799763716230345655293747956321149864836030107237755441179336063976205924712449986378181737935103925776590701039642991571637867857175030542911740347891127158551872213279477364243685100483120191338835959428498620541515017626982143325906229293520189670334653891345577960390721208431583530574232439223609481634925415803924841096525319769804100116399321874090343638018059789766219939240027227314355960729928812731162488990332521172605004636127363256279496748509819203523413851261819539144489470264905378132514372721297380825148388035349860232851289768997295989288142770355042881701947515287729989083943975045431588771171571610697088139747583641997870999367618476907911586878318894531870775962789007798059456213921502759785804341509571261958157395971551270541610484995187115545352764108983078148682080119938660682410793082854767746168782928258161439790681166821007694921804084547104059226092674500740027604866445288175698768510352849561907122308454994972530198186740416520832385824896668131681841498722665462539433948756773728483524920726906338784328743588272325835577098659576250401537615173294874933038535839649321678366158806325610453382661021103544674394484852103731366169066978148645677987669999033914232469421059085941594253175854092695998205389264245147296008665140673480397545045592690648468354490104417807000297844109825180396520228047975556272155213048408425675226676854212912661224366559867651676577134475283291352422758928372427554417232625086061898020169250490685869384507184098783174260908028106592904961048383773832048149304737674396256446178864278361563965661297075487188836769782219590455974357180851646984341575778275242223419939620172401475117321698732490008858806406574161152500464306468820024970628995549077662473204028774486483314612230977352671548597190761150877367901593954905582140191699313417329185814585782380487499836205261028572983705007020245210416748218570817349936845471090090925274023227017389637855147626683146409208768723383576629692752049236717625722622236403934879926141545225029365093265449289330012756196297496918833547280645897691067189135625146221211825015823836255458904625553435638639199929537634849966256420460377978198163750971508040677848840015225482186055618884267644833219333835093068202352450319046133588812587800262244824853075634287136372480979983642875396530316202841382356270545518926611730600419662116681165576898464914477428817450905458145020460652486356037592847045014922275620825958786666695617760997386244467071364489673605835648425741632225867605981685050169870343285814121372637707427740290594931546472055771048916099882770832739747070246113931544811975370827496746530318731245738453786435429338285521263255126986450989396505017876151250224073866123214991255005039666996144112763398593979264131133150529743387303942682349446703122661070527550636922364478470857772817352970810684376842271890809889969410467511871926253234373210597225792707230835961995715770097229790512630384945595247856627390571223029036201003199505671095001480522472893886454152504783087132944825168479227548978679967220751858741640789051503450161294361934418439576038754790883170961064674510159432671074541724319878858573925270373769889870943013630473195030385701383363611261078928744364874368356091353727727006720099873492653241019687658542924100222152929796629174820025341092280050399136103012946532904583020180126309846869582316315109800915673908892801504945550419066319283474988566247358088276592543798846774283889065556118927789465934079169303562211740029053768291797873303413523632074824644133244154162571086782288543049336080346685953104681064295431677046101699802230563620971654721424198688872616854071577852026296645189936439417844461285810734452304368379692986527430270725738426484450352543915605399651728728953398043552821842189018054248038147314551120870829927471855460091795754874820081376288459960481907659742300585670294623701138760685866417622206160379998863054269254565873302070579529625976382480571497116785630202259496601366212798322740380541009845998197600570918549939093056095425798626751184940129587942456027812156240669237945853873787915559897758293569935345472509046556787744440298421081228344687564136675665893562378697773579484738658510882758747457947741446020609860437283167849987523198044025523263984231448272648604561524214707585461709022184424357947184229395189288620832220916894412581848672239614260074025492024212771007478493667678675559404108351115939934007211196761566835046842609075341083213391304932639022902248186331294381082035485187458667330364995267143310367128190016186245481800146451531659146535747715466693358086097163979764074811825468160366923923366497407682666810633256327944427990082029598867725343573575340546980471913335558434237104459671766514002264997201843835270555016432415769519269158058062775567884656743759759230563215996454817266171260259078979248188844327691951613763884158841857929320929325423249030131274398740147385733587487604638017075235239780231186551050944033227917555121018171315635576930044763960044324952616306045165205544297023573943220196953773620682622969440932989396975597842488208317197320169665557321793375098095755078537965083747803395053632320810983854478494513975103353263197879735272885421221753072268981928882802048540143190936793764614236026041640818602267307937644606292511279380175625464951836679384788374852902435718882579550534595383549353912733575997310472484659899827846838165994485994169773195647865506013722440972956709811235356988827583388913384742618389101818585500881994836828914181591227121476850155068315887709087799623104009438206456140739459847761645163135317161709789478775064010493412246212074774382202161506619620287030554500906826982787866248893099394885340876881115392591445769743628373418063602811797705046427240254352227400855967967048483120152190142806638511854985585234894185980475069380849973705553346526634195303192364558293620255379574667078915689924823308121648828383083289113173225889398418937976025008390858999431114500475098754178511954697528756303321870819390020757749305266574961298061327936693894366321659434652212174150608409042216777011627671996818642860237537026208023740828240432543034201839312066828212023233899260081151317921185820184057893367663806415447623326366031603996902476236774753372750531313410561593486048848021797145560468884675570516810682824700244132134395086639985229373467272794402646655234880155132112667954316147468472554875887224893539913946974585176245642477477232627565187432064383644481774361587807193753550650599063297306872054102475749206482751714519202600880665772236781175817425829273199449976196924115134598518419798858495569617943720458795371234819484976432177791866973285056821188841218299893032142789714706996378327252903092950772038592394950418328827472337873516008588806022533173304257846086119107870143003356901495062462587832708102931963686773530554530343133544852998036991632287775842046152539391421680756543071870437053456975521763710774858284508320145019049248490917133741763066767061632716226246956781370938607552419082281685062448507961999849117682686350873568182832820506436161376791521312301213314022078789372681985725352031432243968460836077256255711059564160949484343600640678396624058055665805644002092555225827007852250268385504387143254444227869046097716829841687184698581412250229580741656798502105898498681110726891321169749205757682235615880528482578772796195451609045531395237969780930516743511635528607017962569469122092749266732647892479252548255018547351185186754034046823008116645929367637675281634665472494280929460972681535614893932253551157472780145406875328883035070109949594839924939621315788350876768934976825791295685169915894888873559692669182647162163950194216486297066947620783360596155970401879028251266786993289038841203553363216157061336269207608706247232217610505429736485122417770703876304368712478874757664298750755751298631093185350502374055366886198580827955788773277036271441235982812022734123354128838063951030238728749549242288713769196151708046300766260903352183336148015690545808179595553124634189129229452035037407207403169865248862934878071821254168511079150444782865306506464405437464448918212948841984108731617604769166387699990413213772739857454050051003587004484580081066712256884427765683750202217943438779449414488902303062884225673145810543234774677518274582873104401826167245295348625092694180255401336576184759284702177970065871991471304819464292463471572232628112655924258510592018425411499987535067882568316140128960298942657894291342665240162451981502234272287103332028168149746612584166179589774453505681164570422642421281221990570574556926494495829309812435136740462164744581648127834220987829515260615115863756637320973598906214446463315541388400848383991553047465970962541581767776969597588081939255429950495816973771995884372448417966656176143162529644620905618001046023217729290466487501175163837313564228393610501112205639047687835254689386247354381469695953878820926111565310337819757979690337623984874250072940780532767202006768002424072331331440313067720767295381253442024395223241740730128540980911163416651996168644909707843394105555893451870111688939688320837980249594368210647069085547100870577294911316273353011827678364765643781245182360691770626441511572407637080938185090978965306489094451960222694108389786775000734019028314405966843500087233466446333704116068049942812805616666585677422246686132634556904884306321459092123715297779109435294656299291029359780744316190728262043730937657571357575971095888472807086195663493637417483550284089867518557010453286894908452146967178563346699328918501699683614800365012399539069252236622672187345044148206016455701720575313850155931496531862753082186409914859073670604872657228037671635835737319254675483348617277533918748819282750485561847002777878953360551752705180190075933499787573953685939657342049605060370347793569427226372069837618944950410275091715510811569764361922031639583118564246831249902932474681613025268920291196107493486643826992932371362768902633775762463408930295490271753626427378552353244908441331751207169528635352818367826147726493428087223963591270664268927393308643821335687999545448887481445451142547635027346175716981958179320610571213131779788867246736971807794603848437060509448615964176159590525173082728388902682860597131142555042497633566634295101930786719559886521267503024904774281667817651990971270297258463276536908428594422490257211210655987734663985597216163079317962094979292733140471397302280957811025575915386876695385347980053019024599204662472932787563962856947752934306329517253237231695335110058305522845949549403701520628409343297102406369869921554456368128590228213054620035500699389312371910709154894208967404816430392578148878338576515301239447526442199487372771339750940782916173846274720941191888930369315536569215116300396110510012292028839937575865832706665555884178882691661675792606645545547050376421502955908585759383989679936624534121366707875663709898950531755132112159773755962740009857681716528752384792552429490441376091387074549438892101562606510885168230010873933786944265802109342012799306048073117763641789869190112857257400245643428114614559780859089865681877619269103172501276756659096428501589609946646633680841131570730016649857055165744282031794884196271063680350903404618513616437439258768466226936460627007992814941752295538078878956877180715241037233787908638865155648266247545062907857190145368699130779242746549343691106291388676708692099989200793044820735943245006277342709644317762573894188557757503391620476574074357750804941047207946202021675878574855224065972124536026971930075511508923551490970001969756787558871098332733637149509480793432507060735635499374453735574588607626705958440690421490865601318369839513342042178703394552044036446499267159284889060970500085823327978644341485744669003565655133024701054778637881262190095791254049165052868024362032798055855935657478210283457403732693352988831613138119519107000685996739477306642472964986492659208156718062250771668540194801589332512687443309351697566096527481423743841273611138449970084276490238033045980816751994370276230147403464705274840180127181542451689911799499912381466523766522703818092223899690015870482953495684406827760898434425907079944177227475631937144214717442246261505977886409974201253534188478367042602965675542979849853259525151353943138588497189020563506719244734674400404339240377624640119068732526689505735328223774700643580708645095274411231967351873106908286237832266787111968768188309304631499034121065126078988765584604398669095894771581252627344672227030984035536723219053213366075623122900394971869221767255523128662613029732959024137395916035148911829040103557711241186096164795912491968976073184985115043772664636792484699962595558884727855298234311498237535615578236622557790580520222197185223680921324093758068436633221045174446254475644117530835797416407087110160735032004024363287945628617302741484049208797469981295627509569460595581349160112528984640211120177652654187567602471528183500553967391803928120995516401238173368085897879224720178756565484716272404268361244791089152265614294301423242757237458239196165304371721266089254229217310235526198305274429949091743133660547474380381130528357590639872055086741450849555647953896582844281620195732399363652564122330702120393911220872067579799358909604617909788355011385651610764099966096342711385501243509744213610980972901315726561683471071180701346449611546762428873228968689101011199850753014361574450848227553519216120932946592843610022548468908595798480932280200957053157577852004283130008083532362537571946473485838951721127393085582713116726459110867144248344669760227344044441670492766137385633726073562644951139681214024157896252161226940830351326512995619790364605298474449085595339943554400470074060998433057952280494927417338366189632787329452350695976021720951068313618851964501204529801814478535184625315039077573502772698689364092381591297384949649394294460282695954936832261469094070578533930396795073175063560861464647096941757884149048106545235194943166158782690310468523326040071271047767618590588495314141149704990675233451175888277020350475708257478467929609555796548439445143167468814704353043369432394425482525552084280151749666808408159899609505197945297191182974816417652011016473289033435344281384167216161624888236142873438228171511477662278933452791029454776345397195363415746385369179735894840535239148718387362033440559462973687979012237732931126584453469849890441441093880275501951099126141111856009268440447413872873890556106831240006142799004160966970405672787508051661508189561261371105702842935439783434062131207505191033760303622005461118027752186429351780719297955363487822696204963360779980984625996579349504771028545834729117828216858167953188436840376001957236969766090105602857142672767484774466997454959931112761412515527271373940142538797253289857401678657914510837788860286704070851483761105040736195384249451264110238209552784746092730578535470330232425101794635868061777146670730533767961769602390648122917516375325044633737817753997449670141713030218049843270321153170738341384712170500666812634808455052480547703254851514382662752581127267738816774087631446090630461862406224052604986538574549064860682053404973958227352787901067165344921848033623735893489839308791837328056954484576441716789998398925952784666764353947003187874821676434378748007832033541394109835466534603736191933052078766674473445851361294777367537781220806248264370980682938046699107921773083573099789403783191143635921491654332515599245511819244364308757033393034601108914939426837403509513186040269821671806676768346040674348939692511956910271818838933452391199839640091295425105634727261381700679284506113234155612532817053490710284897879882745842379481967734718538827824486320655983830727169180502405199037451602826085604662971448686220373921406098714949623203853291478347108344559578650235666868947717819939551230154203003990108283992267127617226611786761093584007348230738969090039885469409039990378620910581459624437283614336273259482505961061920755174568941598396552374754985720761192691908205174471039613123523844013746489415762180478681436404609088133109575781776295026602401481564665416065725798583681787481421691358268891308417799528035494383459123312207128489696604518500538662380199924963778496370355487935623113314948205931668015730698899803014114423977080641072669996461685481482971462778816056775377813847903329041757661276635015319448075085159802330496959497322575381419997450087477514200841060670829556158572029456172567200199300929850457974164004990458872540701970552099535683022515488743413666866578373401269223818325357529997029927684001972599166932944536313686023009363505897930334216077128367962434081278080660487129233154475146327989677274260094070671846310204492630946924420703524519037296808517847116596632299147452789773052220319314071559122916574323212366596383480144225987267745822558984352404461088859310217498336648876552265670553298042098701060120325061515976333903179523930930706163059957764137755591026270340065630657602851578886485815670297563262504084995092581740168741265208116387807678132459018810275022820828307615619783725127644041330342597536803691957897715236243613201667573419665187635748332923794803172807977758399264294271240799757588629791346594555075279366838336699423608399227414473543869904042412241875936017620214516745039740347766334309714059636350206204532017572513493867203205167308211516128371293988544397340397095690315167236909500446429225964014525741852556459079544726005466963238031328453528816301148574740798891910053655208453543203686472568028770000837678914521537418597451699292792197286190340799979347643454100802209465270199250627613606625474971114763274077456252277562636060290591756532342881764678204199228053550219622978351790901137074946644920918405809211380972359905197342054040686646429180480993304941021261877065638238798553561583751284347868303872160520071688794262458454872127855242773447675303284280811960718239946307908130329481456806261179115091608851355077985584250318994947297050827225147496253750893871448715118683533026494049824139093323083828707017641755878547813219441673451452323002302409657604492499630325798058053073721956874390463458647204989837280023724881936254471456934506089578129488064537051653438473019939927525758674123529569119960999259666039763308808975874695812754889116890632234733117038327489675983747174202150444570871165094917770765233420551635127032672742338460574569839090731520045357107068645930864446987547069733076468323269992485347232206705355905621663967643461262865658376900670844177403851358443616433471228689026993865639384818473855426720178968056905378159319905969023121796862301374338897187897247597153815815230024601892133180819254498239630254526425423371934073312960347752676773764102804643484693192806658882694208245850044647696402596959513938939093235650807592000071797190538809669630865454717064667011048768164560893945857387624726506835261388793682300866504279717181095166774381643052843165727439459156582773679951703207942264843292633945896101959033322157618460124919620501274445708616928949164190326990413173365219511635755914658886320692954990532533626361741524313811907804178912890636278712296819225146080143416646368907586117035265742390573602329499614198215087217708720024927341956201754938997074793959051002572415374519255878650555559894974732195089655518797068264724712155847365984834185180082908106206861336751760902889459183740673960458072734147097093361394657269882991030531234605193584977721684869288900780412874693310859324016859662320948883060330630451333125288120381543586877817428109196741783091766221302627851029408525578523995258736844128988484230766938527079204762989192763208496562014777214968423722764834398751701075648270130303484838543310572154425421259674890550066854996902125568622790356782765367247358935107856338070394707247764813436539343995387667325803454687086939165847633677239946536575826108645416424647210011159163980768834182913158383547743985664386807595248581074879994074940147042364551832449689689037937795276115602786565410173375184647793023827245871011749276101249188968421233788569626626329065647469339111026848201340790943605042947140091196940937381041446540571177175744829959000181981123878663244124042884555642764639021821625389924110132311632983320091732077238915127515135467413959871379017272209333540467785353865293828904754520789521245858185729847367951834065569861820126256397714020796913944015846815451445822648539033447232070784183056168117792828326185741919097844727064385274527409476987828822218860313904719926647334998274158961461221093332868430325458431410511119858045801616432130091866934885091534567224208905575111529874612919394126240102749500202937702035782019669857311742162830158257641504162745547361081503403498240217649166866466276006641899635706702880925830656625713390245197575582337819537357692566319449338826800283893389048970450077597808580083171346054883949308650031471666938370736643664002940468951982607848414950146047482281373841277155601145729141756692322077053630553288875612009615479960532277067482314071105081915890548868917331942484078534638254839726528667501970902267171859851730147628069020975713008167268548346274453282369792038014882004333213527401774128619763624791526507943157232387766307533859569563639642591846824697371497575410608327822886133610497307762309771421778366829095927589613635987338725894720819200080614726755058955163275582739365065906205431004921978722228370788558639734907627929298767881043546992104502461777159044668171632670916481933098321964553403440170374827023992737965140454414672472468867768234964393754043387748901199357748386979148333882708213687529822704461725228666733251968174954310519776929533418949667447580383134223383436623319465321008420897625223462652613518697016595621254139952656727795527907269625796650006937178426739501522616544684941776131208038949755198300878472358252003915562603444306167517090416905607725798974427731123761839882205634647751906087090053751958404249130316642102094221506388425094944699412573764362439867440270971954867217954686271250971512790338620472949844694869523925746331695617232553730440338846946951922167637664588406924055661024637430368967177418538236829680226072160527457306636664101154878125790027381741136777057705653142215658564718305141566027541912225352655648986583656242305395219134429842537029885795245039944859524857722021300472520027377312126043302696459063312789584722189937280043895797663785146696054199739498469820482939477902426399809919974710459902344552192213191907991661905468459435650735460439603931626836909009370579137803105774712016370816282507790423324561863453656343391582988350504781601675798977686510070448701548839128751478111292391650033586447711029793608943965837196277091687535409585304300055077769146185212867390594867999680560435898802210202986076128803028387930059287305418082805540994940432702125528620181746249471336985724839827093532222763858654943042629071446146286391992332213943475852995650474611046848922210470528058669280050512082916933859794405968789024376383398808301950503180707009356812023595359149418159477567144746841080682925450367355160970118796421233173581049190044032996420363777228505839011502334278997175988774224652679226986733555995918018038154512590928087876980459682360470989244497779979185213007616056126869229774307734467649070558664141793527096242214847206480349173971944446653384914608990294953008206739462108509713258240662261565383761044577409056922638674465012308783176355050685333415354340730149228592302046293822567932684429964140958339078968975270408133638025210721549986471003184440788004145852451946474883089623506962785442239546053672131233086994823004541404093728520844098862105141078643910087106001229208294904868804086922253346809301359161200527840168229659730723900322238560575877873507646013899172529798221506216319584759248065535160313555854043017143684188088538718832723121421882126996972747862724549226377298303813534257573911544525846156840089385237828658031024477611074724499399882580927096835390056730019953946530308522593480756018081887740738900130234623994556918335840441624080384259498437225229725176109514303912477879321398647265719414963771446183209512468030485272548042163132357126893166351500915349972920870975749906689759390720898053693650657096292350517238716727312740253813561516522927784992525042140676738389075805912245886865242749146454818608128805093264497556739944879448901222683480196457650062829734048755143746752554698878795384285359136945161233162564902329208442822886262019495551129819050674557098468819056351975791798448916124770623218857020633740627720119446568503866914356275554246369468695569661777725079747751151970686070762574390592113595629031631872979835895498586236356291931751432251130879204783948243239850661587135507558783427042352506683072294511406578501339566313667111358101562602714341202274568672296203199390638902596457856711630724799127708017741676371850116455585483017843626742119090439327544940640626266420903377180427828280377964338393622507011469526212943765441547280665788515448895798227172282159046260379188985534100759621144707708897712718017437069810362950186739941220738789170305804932339791282938401354106217984312313016513988437256422880746608255134492355642895586435829696728668238681607078478150414904320350108376548170015188072457983969498599517490639859509443239060727542068562518409755496727536900523034679643831254598838193222707137197537866546667909946389000534489299330810649921245529335061770627798860804148778385511563897832315199187684617422082637512963744902482060457997568840183158072734988438406736615033350328435062940116556373385848404263187764384810589631246657659236680471959531484829609648684587446230108195708910216061238470044522879218961115940199852193467513600986063692089323900849354174874960181646147193721848079227297026873210486123371990183903798181419516487084871210384488600030497680248808519656727591173161239600046297238592648774909266560597608235203043578590520329029746831685210457701283292909404614794975921318873178909626092947851459169484951623640615736493079906656377118264350769795170512440901253227971262371746039041565665514352473262842142684311003077713789328639270882422296038916290682587411964589103704980185107941394342463658044724025606676642812279905830219839749627626309064130202956231810731629485097178807028281128289641488035203124161614661128216471063010797904975177666731213641535369873080203545184095340087986617091956965820533104566620189772276302286330931644524721155414257912909856061563787908081898345998282209168536809597220268204442840603056438148439434239225013915520952270244933713384666709294128266407638168481325338388927124686395935635153558769723434245404051326820562157535355947283326458195087723593529397426242562323325136206987835152463961757501147469906712727886547930495168273094054617825169111848389329854531082239638694118996593542866515444807687262492577872751895938473731589424093537522233867578805328343070554037545854931755805636345832972693124426558710074077758932451097114304298315656320647501263551246786597762015242582297497706698319147525744741076780680797572784140755141173937741512570223871037149924999868149562930392953228032842536026545671449930504491544862544967981807280742912799780526066029441999759462328153199486038469690749173629169858679038277825396392945305325265304734375916423143473483654907915639241076980200767194248565606179211950176812378908284220948110127832050416102849421583139889760175597312757256510433965068120226084932432264635591036306752271231808470701693810568900939226611065600226575269564762796603874150391290818260820403042883794371985148475135487504914000114715143228181617308397684620296425733763252181307420524947545038678829462015010782378387392640419095191376101917344107175513107717699687914363807687926895170879713934270097547420077756938367368640408096658804159870451429907741408523491995738581993732911698866767854607101764751311450619496233891037534231295161403843132390040711631923063742069116843288226217403064815884168441848850809363887554746281374113349044613938756310495358837889562987047740899732063728805084270113099875311559426556694990834938609276171646533209067010139215674441661821628191070386809583767994842481267247453180210286106681679396042066102368662873269625757092765236514361503107323572721081908086454630195120238066852803639937754811932096688304065553881161901704894634433025016798462598655264270309929770559254167167600551458400541319462198761893749146118687270172395986712713785327432032631154579888636284159338783725146604636808866541471430185561087265956128898759961721881863663253537855763263805649775413572559049200511874047153789108390888325647634165027983189067647889276800760407973990779656874048434766525736600950348691863239934986105328061065938738516485970527875314200789362715965105839697708857364430479384398596951024301102579019099467501797316560486713516085310766577955846544504391187623364716304661194246926797565277157530261055686188480559853480537741811841165506021377739701912737513610448845251463400708395652303239129840863978694754947879411308088998932363888814664072680521537036012155285648965350421774119187062769842824533572606373886755436224410004906960959266119647567630837509234186490014445159468985603971103173784930862934555413196912852944858668819773816138251391435622636229531219271476566877062249085783488657648785670348600978968892053025002661984847718837193202474584212549636385123716759299282958530880642411604311642957677179347494619157150966586731861853206781380890055518655467073303815439977711369509446727384648919774859323935392307560377428922565369667422136123584756791309463934266191817474439021595383367024484072832173253107499631091920823694426524649896469286521910678828517025126274788672929692826720391369949337653242312076125172388579050859140634521627960099039495741827256737171596316221766961996981703456188016081271209029972897954374790292112076388409374799437086993770836459569025093658665150305199498185315279881057612130543786816415951632702849442333715369814260995568987660678493943620292970313039953491981738337776291373172675054106256035692561084569759163990737063340208096035284100372376533339798016737075678627260587168480897329020192751625719176616448029749214991386136293541898759770560738151859417911567083164723510884290110648376371206254086747033960526555669838322745814567859401728230147391752206040445778645013788649312093086148322452917843161291231131821946822655903425119866008333512320762269439381741128557766672138465830126922242793235411161436930137286644526907472091823904192408677069136132637138466812556421616926874468240408135080555156148730001862153145675206194362011598096472093322064974032951558070920116099154945835718406069366077606586910651773441795859222369108474970891898972963965898803158442709361844367330469997098329273365110518401521480549957645715347372570435704384858244826365658619951135705976380145140041029453364582864113410128503176788265191117176800936243908466715847916714203490279653100740383149750787003548311712184161502922074781992740687624039752323686762990411003006585509161784023849572254720733153916655120885718985267204731886408532777821175759735016215310813934890142377327079496881332456325208165643843494986657203881592468942797862736094320573353439549407548129819811601874731869940701833715285077491830336101236535181453404678604024085762423227160565050858440444553269276015695431846355810952041004169809581883452723893169507919581053006119066408957558231895672732578927140999608676207582887413718684219395885975733264174533264387575345596598063287113091162966393047555979768226789545663612083618398295651926717965011013069967153064259451961537851167067189337282630701476065620633396132950985481875898758382648484702403551927716989380600184627940247760439560965063609126198306431647247749719392010091135037642662988562730875651031532548994868655373239903906550530204970601935349235855918702047312584091472614303428469129317548753867492486757802086795670892426108141700868929857752942990774026254006189817564108637771119222025193764241154015819424001546897000292249458640363417665940989124690953264836391417718048105349977927141664649739429142865973753520740592672277113419155778688151158519874540480168607063253520936117964595153960512229131099343406480418678873729838577294669308731749713955861889881701586231566602787906542167116319432069431294064564017419660125956465261723925549976653729816292398326379898478472800918436508040333526675540091312932449351410933316203325732471934715934081602455195054299791729678058572388414541137165891521683274907437699084590697091261070020503437747202449265478148469483829456370186472619992382364785522502340151464984079101773554022732298982735487356206707040145543435382157659091756246810769199652523823163408607613778501231769541368985162700327314957519709389076152029537629278658711480505690594043880428051802676438939462123784467393248250740228599650634965239132175402679701884460693283774285526609559280437078648863813438901904347194380313597979750156783074424854963405913561833749873959957003587541717264629737599757098148741182273710066578499508212394902271803834946625917136484034448545564691544434551040579757643640473421077802820122828429248499762856587025600623743221700813719125870705257305618743239684304512972402102277855747349024084555957988313450229889514653712046300903422924314602274169292524853714523612993455432179928356677347430198495597589434686795290099916670632268994179068550289231447702537144417981798865702414887886821805755782100130833816390247788358484944526181000103280614092991877619792536457918286155597450751484153522038173918492563620243596346243042959128354018694732230143475118439666846748015852884772407089444292357705751605723961076423523339354558072613643209557925272373833483307808931948386491505095463048438509107694712113202385423532948061112069361636861662039243709109037840792832930874097591387479181954152057667983578272660050734926167606290709864309621756895229670669302523783793351716806379449652040187509117128316842605349761426803216957376330130245131500334867365263502664614625048209626137711377113898555050343868081218161317763701652992294492985745481080864081898725970579905674983261460046205891142443361973392241225253594667328636200969370151031013929120818893654545978923199129799034095161604761709846948061266737715056007363331044221728860613853676505888383517953261322568397717069994053569687698258264923133071909896897948358076294590131042720956269451314034136970264879536502881731397224056901470096804035611057911515538502507701226039349738145379024613545929120900629140184900953115692577923872979658634531856597334411723960041489320118679896723110422181262232620779025531801284765590413790936226599185379279637222836194253315244936720108940315462940627709435628140851545794593867729584569711706881343445405240210487922806316997239769723773460767749196348363958115318323115125934640140051802875595590880837992565266337208895255384037181891798901281249838838772565941756110149939481693312302327785973274301512740064025998912943578780323242331793107609200550256599671974668063698545126269781432456506104267484093237251247523783551247189357079030653900018816219429312251259556614657485611750113816120723764275143950673591652906103142473874074009255909881634162516897768978861714424759107381823764440619619799283868791657481735981167734743065367455349768235090190884970069704933915027959308380625181176487604191548960248986125894708713233618907049090515628649597284470076068977135404798752419213653930304393216298576787529836435592920144266236760706180499978315006952394358335443408040217174308875134165926559445631290760623541341502377172977456789099840184851414138449002356296302961844531343616432173275120929648621636530893714335186972270838917267399409301394017282154686419954798777906553244401743654852018751875351724797689902460213402509002379813691059338023159769966477271060077875611854582142704665116265705137151473189718426337646689912541644267255017707761244053070680062069864961264678690220121001779285413735704454285041969900613571314154117061694726225898979205787308814297995513069409404541585698630407283991040935291078491462431686608550474183061685504476411161530306209466559353572924247576028974945882147295000753903563301104499862485083036165968102555490930921832558934516626177142276378918929980745297195108203730994893994549999883376593819871817824246682732313580635391737358783183385311172935758942676924278517444261040455838785953152326449879468422696203137818393566611940851477709665848526630563879429714486750248960621633668442209503431439282702953526820659867083369237456407713565812559141251941074998447904214750567225757027241425455645527018209728191799121075443168867891444116019580537943490954362771148296189237943680458620379137965006442254743620103728523792439799607704599578846696359501054173099054088096019378055507202736475602206983985884401182543947071792744695041245198802876743640246991890218458965002079191753334337531591260108737890262473198260664824804078358508269118916065078081994161926639486236710493755815865544173239235135270676360427093287399775962989545390183998836835156835781210049901194485173282347787960873229948994216166233198947263620709709200842410877558642734564631078787222280891764617977110280693442832001357721726273401726030329159533678799023762450826132800425569689805449722448087883044901056282944554230264303783550956425946002985706745133063033297960410891991384262025045253817911672740518347471097379003315924791613850475852462834577100938593511547436836713518690916105654751641447354244458077978451490698308116898380992607132059952777269383118235128047068594294743854008798501156689257597449322586595904125672789509061038692891786793303346019626694292876336284751876706339886719345846784289506610500266583182332782393705698290837622403291080672047540911837180495167257730509981583793641795516844658249281862712565925294624155672182380290782579201169697684641919547082222333906376683654889300633773802478251197495552638763100047282107539006846838548668020468568029251568440936362951778710342564324150973851928753107017121592019134248941412081935088640855244247097862871635812288280864661991557884760142097360697072252561971097846361004726999600791801025595631721514982391600832611963297232350027076040762492308790373610910957200260409102343446140873494544093506771652349976320713263034301726730734971021534248758482541749411130665813415545987094779250957732320335588974488658397968002641988360045704643793323191127404242652232924281471514424750518044921697070189350868659116311115973006083588941042101069430319197546965743319054580418193944511037834724958381964680973388843381242004048658491819333533418866483527373347476835264345830891261549467716930889306149472574857330542526573751621048927109930820360120725650430602817172199237602261555052431148971359950728693711327713931781723247615362130525061921023640818677128648129858299070824591304653407599662632361850720929168748550528366365945658082746851288593474478496386535523167728491668355805821246903868667053768002548635757512411931411325293686036117671107959588316883660125736063295329241967599472236080214305705621357900098603359006532025872960350600282596400268514814200275864121770182718531088916245715639300592131786884732195852556717700539920542749045527719871888035997180060917585216336360921282000165700278645288586150156013249662144848636941562233210541109541967205060016982822988716680760629806741075420840353000872770651897742404642018452036630290902758203889869409772338233746017585844718116904247906762869308072010542758356361662827807934824547069040924862260282522691498312782651930055854045550866018457540975911845914597552418567265382244858775059184924317286312353292671598629800931980593446144479629701196606516991953808583700985870356974835904001997019812969822914458018136706381496187257025941306543628978312895467825119395366541894196322369869216984675619554185087300176373307718104022987059220659759345999571436612943564171662098163435929679253510058780878855389530693098087041505151928015041714932309538421453851207126440363329402664809163927607045427628217129866736422954550104536409488361426066304802227153399222463939120639276496819674414715233435113286432162392790026679150499724684541996129175881834797875277767982684482641033220617307698343532260029858877933103488696846144385098886507823988919873926900655456538420162642340883509645454910718645915397792652394025866387968064037600502239745790189101272810322442852061315025363864672418504399454487450677475666659910172524746617538297145575991663809248716780811330773012620711175465515850497755587627975704823160900177677069121254048425253994738461212895469620176538010847848063914786951392075343093600529783956062868106951860770753209985135922496365151296993703003725724178988969147236795498882062600584281282811786780788172457881252799279084040641379896448472814224986688773664603948641546458587224566231450913055029542558515229106901195639251272573090419328937975566746639193377295560146907039765348329198110522120586185000187882577251290705290106460852128586679307544529776039362415699670102064481231374447708525274179146109494828837877419017798520175116864087010423540739352352717442140338904085197337665475888732911646006356953153829489773466510407000219716563865684907664532740948028983460484702849725650153968739295774405526645097256141486748619821262653055147846322729991279313653822045342895373621902709414530274439704491409073801980075879196222952633184114349723664918546376166431432029058579239710424394464076562456307289060424443651368751020041440753934236822686965825897687560422840344458316706276428643971108847528490974915667737841761038679431109366906593216225950450677637726769144723342422009527460291589238493772569863613124825161353811261601579394131930617495241867853716295780774513951963695289592376483438208262699846925064914029507545509667818487363943874727963839310043515935986503668159260483598919198583498802072469716279352182233604721987586325306580429946136436263892423565808185463181123216391466482834190406001979632950442486182113287587356195873609694995541793566011590667106665644607425641309172893500957849322215068599568000891540304279666230445867586096057730533590703253430432746503965209793585378711713089461363097026147053600648026081180062435057556378634408509786280304332336649987919430330420225653236338481014087035412846207567140260899502296389860667091038765211838979715309508628422446818898373068516130127220955137264892236604998894749780268473052341347115472798435707767835971495086285252175871638179841664146820433522390574392354757019283394544507601408260264027143274874516105119347688712006824027137393446269131516757010181247212409530670967054477739132417352209064170463944281060761260552528262233074294665618292352429842245181051507900816243307477165852166810326057822232441448748856354903429428546540764353758607700020938558724606933396780923545547910200927328089726807971842205403746958918516080299840744422451758419933078673408777095319225346790868542883329824868150853053089183225694882696523064346588425915493982192291457621964567666019862383509677458072544007839279785947121762521241619803495155288271402785108567520687267359699850947417857232004581010597379001515913898740562650869122840813820116055614175822338548946788839410510787382402725213482710460031846704853341018175152389110804509795765646414488923048800552117189953143833543215855811149381604567917912700610071554631570836190385420740288870557443513658683105106497845325933567734304688375142264374677974327893832490481820295994427337892625804485724371424311889987188691647644549304041236661752207984190779046282812252824164662223019006505330910284783184725637198330736533834781968418055906045131040854456799748802181564493528415236078877023260193442412971783068402190640716374470256807819881210703934981938803379786060473742131428331205388511789928381716011947188242418899309867864878052021595562356669268344985071533413424832325837400004549662076840707887048926831237036693535073702159500956119101018715906012182821217043788073366091329082658534778144585747479590139735215065864034103123438448728986465816105258663704225010182631464316626006153991002689353244799560193765610489452064674026460485027260602323892344963137193852381677585344896733884215663561206582039668796185746925929543639128305633685332543925958685766460201133831966226751911438708976348782428425197415744328250705379528230859454823379692289958860481558524187071866969549449436746134155244601357868851948029499423117049192922300258050363927460854012370527596606482965935222746417569505750615687083257498012404300991514094158003862882372780808053473822213553359306588996836022288197128715330067639204823098255178969540586624457850652253717264883373082910449674553608649395317824955556275205353535141401265287954612232705402511158147527990511051139617933888755236434991630467478288413872826423053667329845053202332933267012200068071698675494062614865988835461970042797172553123808800865305639996089109878279556373151816851649480578810829917916252168792808870221342392800348587340460249017815048051612338458014449550941910572863709132135306583248363698100743247071634382985306296162638696808027296210127468863291243474895782175034449291170756591927990544041775957795868022527295333682246388952598499040942629214341242537443100237383141611482931714655846920111137799272589082882346072381383721529886578476697189782522677816634562017036414856856070141804807744887964835624501612922181311959826244039290584946123555282231561352872061375559798266884949034103661787257867349493649873534552652925799767619999958027686245072804328932706341843941779226507028926231119383954586395784120273653331722196103720688108016657162348592098117715071599361782879652786854750819035956361185547733184530507799847498044406003230541891347650446033223977747787267232862313874575641198129901674452254029128821942865533078679527946927786209029953018260735837930333449944217875799249930035102761783118053980870721926479400344614542406652180033808303714603078295148969030574494890037233160611215825281895269254013147675730794311498779757212833949597056110504266735860439224216414343411996874459258125414758604593673161370149374207699869134417593305365136128181380203306946392051149161386284184299317332335247337535467569559873402846062183555758566567179240806314940033619632325396615882962600316542576065416799888886933997221272899505377589972157630414317242041387907714520417573332776950383912632736320116038038782284312587862470452118594924433553784916776517676834035035868713895031765732774367384874300200700537640477821308927615448188069183725900553930880932519098568193338923836058138720383099070877627496285386530623994574014722726813436528141135259352848626860128725266604626305606381992284998280888962766776305892969999280496572459970098936847484226456665773336068746727674296911211628196864729361076935517049952327138557864241530411149855641781980145904300480746084070511843645370210047039820897973608760708766792633938573292168222720656986376470560635062052736256599848954279054286365867551913159545653389635397964261778042769497284925428997010709292017791310714347017051151602611642649798500162062385418805420811707863015811409955168175190062590266778430997065075312719916454324933072818363257547354247336657365166983291387607422954981423226241910094148473726522781738571467468957081970432884086125245666607641197738856427768284918514938393633805800873987712044394258699605842488716417914126579175017268370977032682894825575064703886689522012969009375232957337694434612896460265976702611019659207495697009655031225701079246135996015759744033719652995361290686003876791349851816821274978554374728680606595380793542237758235346389271856084719852069140354550904809845294923897362855752089591469803603417012662886258641016367685329067291844133188554487477753685526446740928655282926787813126261373903226459505038067544963810775104190122818680769311703572983674822504971713331420738726768290732938896829983596447521085675599186847833368980541227132292142050031650574892415113828364145302217883608694352410834668055152320384494265347476155753489991671012313315177766458660522138865047431049252798677480959594648525078011923068233707100701365656425757243694551237876526704932854636376850665386858545509974469347431733095214522101112667430634566097181666072435867494303119918590160594584941154497513678063602259008120632596748910475160415604489199647369009845047830396652979941330581859806350533701628757996523765980079872024517623128408318488766005269089807022114014710675708604964405788087255449004112547086544909591942814739862704769232243474222889199722370481840685988697992573471093204191086148304839916876735528064007614052459893109189458648696662330626086836300491184429533452905238645459507681926019769372416541739409266757089503947838670785156231229940406797633761285013864892642551432430503329142377153365188923547850110803872449761087040935968492627441172225747575643027658892686312460778560895728555573917240934616712584874868324739673177443708740505247323788869826156211547984635568331859904776076445320709816201790870292735376923630054442065269863657954300245362784304741481558304404662830531921983461754063918811995238070193449885853859611610510036042526383020677814551293668258568820069494572787196625371138576419402688833206171310495342698836738573883848162453932526954940404476999900620552947166839065989639003968164435262616096815256602818572886057278858805330139710257148636832877384071837825852378400925443706573263591300219613552827161871470608620805060342962345365364209394066862338234942912343631521710888629204035409407592838882369671332260581480046792130767556917813065714649844758130923467192103558213761545843889945581987885380482628495504179118513153505829276470381454614701732242030680928092988719112209896583835471369438769144366116837758627931224704779836134977765579597353226618158349596310023987871590239315831365344185548354139437781662371351665574275998498109558571502387036042965703425720221585420459128636597247504432694513687895454239280266776715859706222362109294357874793818809638083787670183375289999834916126099672408630247579043959924262273376761187960361142681196329605708898247158110592492945398675039405997040545510285183870719941692555421273067796271302438391405625829128997003434059124170432522283421025098647168660553837185257708669341440721177933984758022258155290360778800530876834497157098432364715498456005524084260151538947259603104491022988764942545206793223245757811810781768073849071891021827108279077385528829307657835073131343754208450810586927636520260438385378578809990765894350681091631293598689040685650172292031161807198129811203881167397338629668845369391146947756463495918463733419316269031050454344402346902443734583970513070766638584076569411322701101389785264744476781158768456493349160921764848921082618594473180729378757134009450177379209412778819393994957337179187404662417488701492044881698357748466593415565297649750724560354192934030346624480442271357314694570369443149864524245185831934520082047266864727948200874530218669663264333122960829379939733926085165089506173926333615861308999134436622434935634187896713478908445965359900373816778182654089625217830741703458063875070431909002882302983762463931929026357969210484281003294414371015484168032567872113531499730790680625696573092116864102486395027864129031219136836484183454696525721817381955301882010514851330156931735699262698117291667542301835168512071039210379699882849462201936862512575557332597030156498791449759804242889042178509564565625229154378911297574474826790555690591315507630644200582446404461897556062364490206256370942986744604298812444693305181278420705486093819909036929300101520063587336089500419928937137818774350087462120665846195302218062319443835981762604340673665642289885093118237439181126024895532671047399972611678860387385010648113465198330266952793874991419431908500798527703536125767862034002340879579162413609975891450772315295723094583221488805131118746620854577604976169342755541278408031923345310387344810505703203629431071300730993808699331682510422271049973923009793892643469253163619492609890110595416506087138015140882121002135212440063638538577941784723204261531036803441349433466363965976622241288077281955910272437275647667972482560256320620631268046822446297646602764853089388100643142802145285893695281896877115217342697515313249627113669043633061856221590130597847785821020513904524910278500701183843476491564010753130695486208164744140413838560857073569423797155406152368109043616347310681036699423340090280846345715202101223788587291805408122000288797998569213464245687934709166197749146726971156151103143898444021983804940649813961452610798100556748025881298114751872567398650851334353750823187851503847657876182340577424170943557768052842534554793707681188283364704806178153277189858734489756836681641723740060643231772998178060717568382694677563867447839294875454231092577559268993875020494106466392899453713872247155404755902412939094098932647285244670709339751077604838160900016218007097257131859431443420994162179422145787344856485882974236609301749374905374133432708960825215156306176161832137981516548984301191490009792569855666962109402631959709369819419718042420249292498366771411946170243157272683043994338557867321201750922672922523510913148040199914766585546982106688714083153854275071528285370329852776906186813334538937477057586111748773137632905147396476276188548785966315646176499144795987397258726439188459756863306075027926821489660640859718206260638608133836050134767113125682294906333365826615502485900961041373707537413524151465576663235703519855114382218158934916220573699323122657916664174157659983574461537464559793118576606805038796117386629461231927935306024891010345044322094009959574273874505467423312832772146248031589790039253521720354894385796168557088222641515420266542863708030441294049775325955828516871717270847741613977346491821018974390059604704831253229541865943357775393321141391335807952030265409896052639305421431127224506563770821210083276761269184399691049768054085013709348959422805124917435758462983934674730384252033044070308142856970782650216628106938399072414673889201467955412662914693179740534602231420534811906376438247969254573798094453380221982365051512959932381343054500215503491487195871089585605187166718522797266865365217466812771508843553239124145398803380516416986747767538496074850175082926035588873293981744030136004466626696311226116151406347186987829529868744562091281439695932849534729708454873438740237498198794952505249141562089593386840997229752085106710710342790123941725488200594854036291985862277953566636124394334261611083384875670134182285999498779675556695262652855110640067072172784605546774289112842856312938612351682286594052432123637442941651408782196077039637725612178241291265759877438239108674495024508016993210919128772359532417865197229392467344825658358315664505451182632441710443508347454376230746645786273776215023650175130074270221635953950817109529828637338480111679217436164737355756547660481263384091899930553748526387239178129542797372219224188204358087076456674308767435362887864850938459099750889745295426189107965172857045445794999901970585738589429120546515289038423952179141923796848758994222583298299048492155992532546004321840229456785128485481621158235317111089527419466761297094360664987951302397590839588337085879153188742319595249950239876914241532522271609682170086235911089432065209833353301399821745256291716597552748986429780367420039861272314642217208557884873162109275843897329645570705516334260356852073178036919816330416215673711065774258755986842835673561682315396056823840366969913180667337777777884893814011088242584584663332399059321004385046933802893036540911492606120019154030162655104797719425568845228140892143980564031904676617128739916885373335615560965852557181718032717740633334299899681200455592222844385821296145189746898530025734779461727403034432589537175603053978805946265512287775160558403030234522939398614970437147475115183858816389096723189154147587967153424041420600732954592186242690919828782837936857166230420518512053760073340157149538337856896361675270990071324241418934594140002862086549217234181765111141281718839272061986837234118433227691652052546814665386121090727859547483543912186957287920145697977451140301565213729084625743830254931056664819298584201053537805188647739327378613919535982023212673919337981421282823310912111737248560022982038428566664296340824792299151901812243540644307264659794314560174245985791602828420733158820083347270090945287609406069064194985943455974126602137499406233624102236038504097294543284118386854420460505928227123815023896504838434189510151227808475180025143067191544795069632479600371724732011317705317659566961239573077786871952449411633043314040786522514071919883261906350832733028644369429804138507087050807861912521698949822947748037016837859685330563795722260871125017718921040412910077274155774189603126520629681223878732134353567300597451575858951261179928892125810708078937381141304788039454365286059263504379503984433028135475598593589816874746207142881527059399080750290615916691025013513930385304787729188504008164850474146788644263104789700188584087550855269637091984289216078472415427627984778674598593038343037500848875298118225646034554378040333169671972170323007033138122187314202500643253275845139643405390177872491916380119622565390673821880258445398073621028048306313078664419382589781633848677499949596606008178911740675704408485802460653450697557173333984562081368580033743617961984460733448813942013578150593567631659661638140750037131790910413529121159715273354937761985347041671308255299142253486990135546132770786963565590164624967049953414954310083178153228892676559260394896248814526508476305401733285978863926765621847220102532209065223627638728339264008637131364892668690001038706189595345603020139821881550955869137690367296791211497898297074340090266074374964480044651787248913654991484168642851533291270558629282438708101304987308471620214403380458095125749608490389695600898852947612511519602756213039395186579654666194202654331099516532967109734352516177028208963083956773628617414138696344144884706758060927376274920385266199416215230666024669760408426385249304900488115645588368642887749435296951413184154331694347944857945928813604903882161074505134387345848303127966140041010347034604646415214449664572842096076620453202702251475755578406106123214451743021223055838751588087073242286737924327605924938097565021998292195570768012063639607297415737026776848954257045413727411300911007246913744152478117760673186476688003335574382195373602078419304028624235001764846913205421064669089732894651341440165874510520066368704096174858292032881095981848132512752130864433005373236953436064352219421614369060784759965179546814847681544897929405145159517263750220630109675261507864696991249301822187755573128925822697313243270953987964855220563835847334057490977490085851423325673173122400518558522006394581745138123442289255654324265118218308798579153361348398386339454345322580885763991370329436645435708839727688407585198310863425241030272137363362602897480923764126949868182573007291998772765716064410987660515461413201775256217165303756177996471943676388503088306112045260557771406605022346281183391742677168999570760917099344948482013238507616076672444821588067786387165665908849489244408181690382231446260959451862799425172460797356095861782108456244129638937172761253413798391350716665253522802963262614308950547008074224792906712453556964479077645519901657916770231288054190531627993446538977162118386499340292248065218177204565149818839920156872916252266490074156694397874758049301418897168927950987992964468682863578314439048376208023368862353188733322462572237711482370827964934158538380844135189634831448102178571308221924370620488763525248795755564598802755188013619935573177856059635103378301016994146932872777251927358783943450455531083155590553101058337995203187162018992135927757432332582368757763956946774365990990441864104369087929892003242185934897891726882830962150252843052137361974849940659013115663553470981186908889169145334215743079358909057768705050089860647135257671006668880135184019524232215448464849000554293746732352566471603457667961288828208325050522479300781065717659328431996945932602960524905214922853543048948607412622292769800792860674520821487782517151661035642710903929334419206504253331379938224474459024214894584739125668143416702417272100240511042634271454087937971441930738724393644379595371082754781424557734869233359858486964122207548481309465516917820176707315132579538384996799222303541007501948312355968141501480439329729178768181939839634914495786588562160005605647296297269202140985696076873743966267107511032748998847916829278659403774091550833697845977600090886274765911456923585778878980883506593332614254413921649974098070632092948087435494082411702413021395636107010180953807993727688827893580359555579255190286331733652552371247459052104574822378030928639864549896282139404466422959985971954780729811374098359790175316320761397780090716686248470642681349553704203209092870953165082001446444472362893356886071106739225264055187734409679737472603387070453063138637033110131538198222009556360052980964747032146326559565119217309520202410222700629025482515824813382870396806360143323199654517118866925740207150370823836420563044475187001381297322100614732723370776134537331013344079043475585012476582060312185250171744258657825043826538033232504919954827233463115887534677373579119329447359947403600382993191597320172217564578881017829118763011442934168507564232615983304228270025916038857953314144381356533369219170303584445586386516055691195476177931774639365460421037626719681321814836725409606760490283079368873919384707209561904350345655520476843926366070634035094974497722694798202294462399663757722565734996792385506532675826479968209637082803733606469435502751941683286012253007333789162556706146825652101874254059537643114907440266429655801240313602163024635404783574936343077706646017445562071820553661812111191101149689521246576959300245175823437239661978462847583355995568780769510254719110489799171006994838523965486157687346639314209860187195998458226859856307911151212569452131548722326517054514318553667194269394845910798730476751285360939173407220680587567035597428564472123352624061244536536694609669705341257676490669653279188779636395710841629192760135114607874846173482784424340342403806490192460352291425120188470447116592793332856832737469920516956437279187431463017390475469879009402015040775003313899275062681131654360697539848712404004380527291297263961862044152727228707868264868088501077597442383119510522506197355720137360680549205610305598666552301859811500422513106766030535445179166301063804795590472277983416507491744277751866733443622544443855734042739025794533626110029221325744484196552720287876883111940229209867524186551417388339341212664668870162827441923498648989827357979218380237254779223993014885178568836128865942512593616928681260548287758418605021971542438684172750220464135051627748359398157555015475987328868793349305723842155072124802250952429327378678345784465888096301462910927610292777674816054431333236645796114100533280310169153404561167126008629438806511263441323214215418074940973646920064169460300452144704085041737464699611959738381751149523125635041826313467233577437090505682409455899704583371857802970580235905781810545887877232149858659790868608299670528218102102554461125961986094024445528172224721464599342306991405289085145431697913464409007774786374644607062519016819741270736921403934421933580203351360925782287127557034690101116954814763628710912660899500929126187273431114153427857666601501793895061501643492225364939966332950001933867262033567299934003694391861961157579712020924538976006692244471842034080389367672588023839858568532219687314802229947794144238202057816243918275610861177680560831309982226866525966020892839793235394716145259544492197874691921158024509869605779871973748155872350489527331959639371852175389724651873176119120884061872330005136847619732384098136548293400046373869487402204079307867091020262672420644643447636311806185440787912116190446798294821949440659955574728692226007492184978634019029176911240985190427235849540771553845579715604249633608644561637809584961511315221047576561350506324101886241427778529862442226690403152768198413443425728218626009389078894826897001750803835210600266729079472463647897534629614381203821531489409804417323734063832912744518435507245437543128794405769687431974472653868881759813032177226760821182049532140177206161307808251253210358697364460988456446496890823927098413082086251504439905167333684361556276812198145704608501543528789485449958797185775185266226162673472368131991813590426908669565742378792917847594294685822403614981072693744081535655187359495811995796862152570104136013283822497695214804294442422467849548250038703890315972733125660622027588403707178390826236934743316108100986158574671925427551938317379012025988212264310571557877380361714914825462530094249573773960481627439990107022730911975991566632753664614192138653629286010581492626222420081419342286697663986376953863550931396202053754596551001968542902006870015179556179447283325962660239151497565977713286205853061207987950066667084902159702602429390082283459776154968202289989156331173629324904396668120865885071525545657078914650864296804550679713918005062978073184463555156176673623746960182758111198729324725969000317667040491266721702738008904683495767349888621057496071743188291945144495861952589755581890183885199909845784559088351560126259190834168901651204527503951104984957978219955608916190545462733932565860326573582420589870328989183443398620376585132378396044724226511321002569054531743087673939034929160299310622779174181098985121590156949192529825046272233321865478981906296047723850693020482789161170399210423061240739999182672633690534671176834725210539427296415796310627770900857992524058129845371334825716641727360770751160998193855072984094552024674731406872887318137798570117280680523452516933861579144614756648047476711754593597261715921949863058247319312444053582731306882964689632989982969498355772954273557740707403702360130216337969882377223017114959385768962468062704065653509946000214550382377615308525978360811181825132638976966887888613849720235691967372418206302197685027603323977297892251123481516002588048471004538708026468108221454600903200319034335514387028636050122096317589594197124371072727780965256426164870208883567683294533930455393746428588025160456188996041136944903816814943510569834638326786798155468783562593513171969448573259383446114117162363080166997061173609926201997882388431214899715330968846787479068700293372071021626465032208029188790660147463211253588876188698131855313256191909351251648153342830517249675614001473858941436755996475406889347534933767824462381839612571228101127180535830648839545892829170585795169742718265958856731942791868516593777654339097634401281540378767347661136491453614470556328400148591260537058655639116383765973519939853127356157406149904247499530168252731108042906290054719799402541884158823887266464196936698241040377410670668556257716096561707040688808358558927521774977206330579192919814698691740217626548333141483174527957488876807820504638144771686705746806380321406895299961102400855070258191500660439432262985931167271306202326600114706854801788272861875445600265455645385287397723257984599790313630281000875944885681104471339861000294367266161451362054703695165280959697707335025985909296940350566850251991516352160398704172918347087068531294176265595109957645279457429266203327285693062211427427611402829446180697513076918502291290998464255310667490410296954222006432773864925391476820073804715259580866443977180608306988618785483136729650769983260087421188186978546845726658569264808075252743218844279690410837636983650916069040814089374891950914243216620223317112258203624399650142134188954698427670536932230853460946311784488931570919470653863996850621786250739595601053807603707300223124945893840607869771294562441643497472368291678226015803725441490385631403262394560052974211829824570036055362983686250194638527433278475301949153158185554231191595676817555034333927088600086370698781553167141297269776750411047541614951179609568456902680520486343890814992910440810094399810769101143074725561673357272204544420790510870005342948122477171317568055701403959730211509914103111887750507603646594526117754457076030798455638439901742961664010947452326650412332772661584774580535693417622398964856640698747305167001250461762896940758395784503569960550546510021253369154949764401739143157059417433146289335370685829937341907544434206098352647709541294313301282374145427251257710020813133856851599075433140625105229710603850375415837207911261737918784812923940515052188650606878553028506006520229115119269229576044034726919848000276160778159255369144390558523763166926034581767023273931877354745010884856808019666991642101613883603566592844346641070768944284190262998366800062669141243040385092260339444567207186191337056224783628261961214596597335342465848302390016698389117290433414952701950471407109046647057964946441418576608903480719602462559898019752848247242954956439939998627519631165310749547078136257925648758136325203353882622945331540393367157922480425755120670773958248929593916161938925918160604602926024245317197516191554567179896647280631096330614887379940809872893426122493665847565934035532881412454948536118012166206443303604834011002929662197123729176762732349242095661123977385079773507806381074041494147981885025803445156471938325553195237788582601180053233595368057448782021307430051413354599026676251036550732053084302170795547490859566174158702239763849342893766302623470987783997015987800375227613687588075287956651886023704641677577626682696260138192560010333978725094240803541064906516445195464309529827468965231046977309420054982517818165121985054216969290498161277901622728515046560674527831818004009411216813251655560076012284666730759468905098050739797756774827788244739748195928730813039586309297116800207369313788794533354205184492645197341315248020944923820357098405958788434501234811016105388226683969872847949107590264168276274916557879676614490025869000982479069583677135044162458337853017749006063698731845294972094661202061476299513030751952206376008219548967908627293185982559072167965145760333334255348983190998496310688569065602642787485019725392084416369485631752656145332113121801578109323534978858163268089783245973145490233114486106538973132709737745823626321529622464774286429550746324083549907111459920892921512280523476984207527703125772029219416187538277475324313137519097099640454011450971430339775065882647467134167776737984515955595766636759976082500344063734864037402631075420181605733438824900780627641403644687710482544068656956736937393714430779927197537200542280212710863996314165140168625973040870435026984794129044422585864460653912750840511264746134943714911226973055619157605099014271961845739990473608585713411186911117023677948323152967938776829359750323399131884297909762115458556994726524558522558536188592664175660922037167024505085573997221246530219950552725906224260501550792610701909687522471802391287332162642765288382690049484744531003657245657056881689113455848896837967240317532083290201932281256536448165931408957185870128767376978360929970537125245738017937874363227612327265199899674908449283699304297321164861814214377608003328602749953863280640678281495753415919159067927940306071836491154880505741369734989243611479553532142839674358952449087895530641463727737386951598598602989983120995801060477772139907994938353061887202626951644000375554996975438613412312273710405631966494388106831544058986703973922366589693173387352615173653789628795059718123608707560152746113528690133319315608667595125696811828086721860757937497166569248874821189659958738907415671321144995417720653152060754568066720352800875839792332425896063040653978429797539072807983575012472604574408465643574738158136650495636338374556135516070457709295213786609757280698166565758600239813859872441843744219031155843337705406605571979201176680385338488297456759156079345844260163966526563146026847190959663380777593457960721080903138837183828117487852560332866640597626564140674264759749947268263925254742232878018498643027937906149951356715600987074494029617861376008399237304115264001745732814730446408653436419457515147375259736751260338237029779435649370254764767387084599204553004072308002499390221433677477737968640028125084256939460366474439288096431946482865093196490851783988575102163311898841706981754790687535306572869616135221039743556851467624546436895914622365150408229659317258473135748372007975832194717416440318255392000529790280435203431737754886652098591422638834552967821171670200660791032211721592212055576748936187302465564836993221298825404729356243889164840702442153744843125513467837581513766243983230300335951718187369655593758275307983631717262199110860868764634406285337312442282101647680092632007970854799614751717855512604673720544426860898680879652656920844739402354991008719734800610926309693093826647487253826817310534251759616896724424408316723665707017446021857692277320656859254644405228821910954506825821237663172140729837145050583868531211453665487899677498717893285169471214308450449961824187701217105497278793477229093015732203354810081859480883265707628160531037892581438814911593575049579622157572865263105363676878419620933457605081421427867235682807644725810542458195720459421408431906053133768246335956694922571982734891314381008488066057050528614902223327188132041902886833864025949122370893384677027478846036660810500670522245701532654304966118937185561793192794056361418348149160505959069513635562072659115018292565801655647124541916608012741518511596650015410371227081934638486688441440500385630542163600328860566562089896505820913830252293992508108753839548128303195861920754152826646888033304412742189166350269761888887673659911227447117775508654580002869227492093377540816561675287972204332442792679575781284035346408112669751414336832068694308095320249369600969243767454780704117848968867573506498288767247920029465555873723044796286663853629103006956696096473314399924378130923465445700078222553302114942983969566453640851985159484464574913338271447791733818060482356476472609623518494520613724668597372007873507966042842262395279769498949995499529903948830499078845140033764619033210922502089430998001496844781374992639871729328913541201438882269830097625133844416328027399080375762726255927999554918536560477991578737238094174165536618071025560059115566744393603162837386423818087821491087106244316693282155013307183682956403037719595366366170601350984362888696851261405522368016412218242451267569048479931274708438956246824717049519550090140435157415863492195808065657706241606677334360397453464392454602739999425474764268514059026074103204345552720598223015369540734273246482426467365100875097330864368649685768310173840837346746317323983764010046354393119981821525469429572975060970057099838309876914715186969761651892237915392015281834051048657688216842463684757626932009790596329308366950785701419498003199423454812873201005432499683939819845086651094482799199998503537193017171245197354245266635778245021147829182524488491289836666356832592371059712499719848571875979772804114147952539641601610012089590156878806731043694810731506582377243614074727882691164198265442689854626393681035432306127196126879071576097475608538520525201359275254099067259231264798299864593663053393856158741684216497181666932174325285799989227239507944591777384813032335695549508963779694199692628095816388532507688218990361545779630890676498242382314573531181988129044788338336437138096575000748250813378476116926540471916560484107158643869499986297283733322842769150216803000286341920541557911235355457616275539781061216093257414106608686344458587316363784565021664373002747934686767351590715240893575696443698824779044816742684578363966528073046392897829434220522332162448685344417826293498369952414628439101247819889632900230885456407846458564352790156656004313593019875707679227854343835975928693972953147745939975918944039408147542760228634791851505859436676012749598663040121950558499495482311943156933904837058739349225965297649162276974797432817783305740339580398367165772724453207194957362995682407470142938554595728192673137138146039010646774880521920594602428992271922997408069106034917762732626189757082232764006047814353820076280101559052727708637394027875224118208992827801206292379335506583006283618768645054999141827472594179382437700888852968166019664467071852456713333144516994045327131869192976083818245050243342431533140371830530575574528504139674308281955940372297040108795242939714843848032606542908178649130863512513763842132210040847039987702434625200082757699291192599497654280874172595578433524194955044274583784460057079660676164008712495646249386464350029994209190237072819210054814595310172216312041383820972268814665586830713417617681378890960642188234033903444059889160822153367546460285823764589264651963332644643271445074897880371749653266155972623687517795489744595194125181110406179340059574557951429807726053709083424483128441264802623938389025897695007575623768677104000511077508558296163461856180279634030019162817268612465889118469532900989022055008535270641629746719966111482214236579856272989978079467814364475950602987777724520736057756876782291718709372108018038189060540229694850768520086404538247457689736067330738522904915770370263696472901902019043324531660155366415848330915527178373607120178264403238257954111670753707036554283600535349851955295533410792131138976127716377509798120057040506166105452792818064632707060694518952875121896215035625968862143791861020907786077998340704927170582840176761766395872364847930610625357446798207854735554409489060577320745804954342404351608755271565096069011847209839729349208508119823856294378543628184074664707187994962423377520588996897096475740013378880151659920906705187821326834054423871983365300120056496104557914113608113024469096795657523723616553754460377700824705488724610128113205947852956615151332307319167603095558853137597146956273001698579513462359067835242820618931868413002963824943276700727211403662674853202457252891876929767619928613250909454047157893364888510125292187500897061375791470808528440379252902750093758460569712611849164329891623198287662951253766271402881919713104697949192918163449444081357888691111246674956368792917155744901584884084874347833208549563398983897843836399654722843087098051958664410497979945270158759583861043583327467120787410046617402812402449354266017651738818046156011342121184306967961288407176294318734175006868298258807427274469422825049452749826302143760684761569063400544934377337523208611591072179626397003653625287954848619121952902280627925368188266546108465772726452907274560526073439489967758586529511672079099827731125075290879878808512037701991632082414067867230054997702161711375271136134969635053851802244585784525876541303265565633747472080060274991913149428668473234635678293654139037835043850431122887844915217615381129959160950276333037163147323661578853866263633915762892899377841634351937718649010252166741632755142137150370405805523203745659869076294531601120221505851918384331296794321386418133916529294475579752913784885293543363789264847770774349434579239280328049548785208155817743788706929494099670840554015835685531138334046308085465641738079512525782878529771634773540539032431086912604992445966425386023775265914390653362616115889724019854719745804199901661679559552120602369160171535677630882233754301150714314857885009686884051000511039512019083732230792115020718497693920547996324672596667721962895748025787179301534394048919585362165280093264483442324285888018730843000327005932824021721426697416019581825525358954453049755685359277085563183968059864743545667171177394585268822371348838796294075567425410010229882833089880494172402657981795832318541888614235790962530465755860069132242265729493009444189941068067987729528104269794326348770397765114374871859892047244830401260470644965607155621680138775194561801090449220918754842230229603995152054917651970306259466817886175180101261174393362192429901921071540525791717440227503310644106667042047768398559563543418534573849644259720341157427461362578078936545714932618434830019565890088402385024238319903814839044604629832268750878340567349116333850098827580033235956495777099088117497512893981831448865917845975608067500710610148727438876557494295638491364853528656036722690556450723268625755938018826248701551783793191494774176891246300744188021771795400557732785857707573604516381432918227880541108588152378254155503078824876570763293517732785734162676430503457958363940268562445586025298707325567875528886263072586398060616966960301737687429464250859047942436339689991596895846797592673827285507612473077100068567634172831477090339975036185835869591152783612458032639092978347285982588030387359545676167726915855150019274561910413341546317823143588078036046060437142043264352564853467963043242566169005585111438745670453306097811074383026061734089712962214411712323507545773446032353979438005190443388582794746524662422622381727279093319891505718465651729231871676429726634490196765518847050136916775303719479930352003296161581884634443831015628006627871400822010674795757294718216906474643638899759113847718669966237477845863667484994952382757123878892822848936977917741360380796859717743453344128094887196978817163805925094136024851558849845917899362397819775888795197665535333753700417519126501195397046328059657359975500450868777458277498319490747303240311558905189340101452313396825980633951827605222529395394580922348392949461857779998433628418192796252375681928481359901432709378626678569458626049845450468943814307563192115745432710073628722234802787379558465000261751063798766504423132687451205452526454521350687302823785724453630886383881091634003222407319262763579821595180840562969525926519961040709720036221975438412823062019019633703120902720490160343137793324122448907620105736502058948053690521726241901118694583810243616661860652804898168475370434290791042594019265438284227560817151039433170579685017669101434931357022822333516050309703600488648368620372787169219900351620789458771073415658162854899437790859871276827309873252726600001887587606543092029972603104282291819884370786307783736347866785665302731778743894746276219963934916506329507116577337814041815827884737040729874408514411261247756729661883782152970617058685520892474112398675278705047227949198312290383963775896078984945170801814031565343230270006343458700287588365265556703596245647384573313845492882232724896557848410198383611331917131642356977259653141399926391279546774636364786503073041787494189229908317651917143883057836174759186479574429983302574617290134537991596545147553544634844001696445567147563156895606105081403511708232275108782126778207602795649573982909551170076961151624806410599409360175830835657180667573601331668800354852037159192797047337795874196116359183519164853358593212086641228641859964009624571738154064458534935648874890040532768980988505837351433439158181428911165880515574529391427706214046269258939587089468386345056236253271482743970805957323492447839632779732768169161584680635499139440115700497414759459153995095795708740465152402765294252849226473019227870055895401297860955128812970738066537113785845718066851700856150506553221523562425760611508596252098149685317681411250481183235765423758611289600218121089815413188753511155753032856374152947484915784804173089140010158087451740578326141182826557357422036413640122221054416674545950287938303937882521810524238428045490805544011812219817724722093162915655525465122664234131852186703061687686856048055826007881630470322508082803143847975328899187660316693537522454951837233354046163771985478012468754479733973022228568302518516952625969089534786504586233185245707216143322354397300639267980399334869170120046770943437002852158765661223686907097278771212411384169648624301582807736283098686067867485720247853557725567491313929234251696705646975125272912319227631838624440346524851521051729911172638536748002333673685970790777218376826383616608560753206067656242604761330638596605880099133676863674867056258780319858988149921335519335379606301247685712773945451371941946572251677704630119318897093012876673634677807950862250881226128903692692980234156423400765024291988317252161612527589255589412195043633697190253381604055036096842417555795150474274713549737942459145478386270399920973508666349265058123435114223108198926548846766192219727117541119218171405196445672046728077404352719099901104923513608153552531585500254177863466044772353629431245454512702914279551957879776321461429554456866370822284484185247836427216118192933142043617069833921298792860837946403575612465414073196605865426061411881447559077557095640216974560983195386470226333847254611872931347770792823257460200033626537294876164475177172982113348760533843311971276417243245513828606990396260717945464154449616148983326616773752409829891005794127216485616266109523222839975591424297192117373789176227794772040312292666058183637229026959475914636800400814331869499384666253698517791997894104533473935986986081537292967817182469203468764728310582881697683683244451481192622957988564404730821304981616558916523036759067306683327654526100097894069649476626835428974493703929269325812574095264294507046264592611037991127510264368346433244398380879469850288849303062855693052982567259294614500234309581497788552403288848017748216179797764338341844436322336132899411911387779265396420938631448261982986211633303489378931682592652426006316935472960513943754117688886451135390752222110478428814330327207322073813596848982283334435842474479934324448537080491386805189033197566248266151800001315804974273027123815638092970317950344116998784258210134836684766364851433867634118228236455130311243925037528631544926127742220434473120884315110355665625112603578910187230721788274882953965522798540439036813127031508485419021833047511391694487136427638749789034526355666777006371489752092468742531523720679375989659719848205746687250675946788424238463019297118036038625767052230635989849445152994229952450385228128941562337039662740453643166024820275565166400729983824272559808285201373579872244435763624374379669666946513670105742928015295336295287126103540585583301160534348062402431371617868014779796801924955321635763271686873916197805547907865237349037311496674552648155755672245528818885708296539653351372529890820985084928681136959610601761369532370517115251881773175979293413871543613886400102761419387617273115046956368802269321565660676660374472053087754717290783857301572495751202347925349784919640355116980559793706444314292778186953086233619969710253849275114256533407271217094779503433931874864112239995134571004359180226137747190281955196351363096609574042175801261576123401740518182270963458807473693210964729991685439541351822186970334929893465802396706916636348099156358024674002198293531178944307933238499815316206651961030619027075083584594175129762794711255961442564197254167695731386172693669396430436058123477530203399023584883186907529924827004533154407084058952341878645090170220988566588870996630906608002818080084181502128853101189842652613407336854782787750833027048836831141943624723178419193335478768513981657599587599441941277734013338513122468641188066820557321388370417048140848364441728837798817597388746490241262034130342111031223339013686009024283791706597692199452459800246469228973958662101370321260332328545930039455949930947376083526410697868811012829144291751005304800222400931901212576802635605784033087029279240974204129993620193134295330813132049160017239247337261520880429782207169992650951325362503468800824893489303027719111336961119590525072835486428186877888959846227056100595654153827862077496508019935230028640124698295881031317042082094189722937712397763524760539905880174484976593418597869975797212513105741998134218112931664190064620663360864575765529501559664805160021155718372924963763313078723149870042253857074056854846490751611783695268156610189517287882300967858597684517806547902224881983695196206928485657142482915641570672636742129202713144536248359184141152313540260418680255162996747450188875346472434613338571206595582431376499659141469933109027109772673124002976239829004857037884810422462774611987490480869584780461575403258620596995362974793932363377417215941854451915416585098849638321172783717359674962938625566716352801402852995488577983237081390964074653850260364981332949285951204639180981042714631514161061467511197844950117753955406015381697853671554405688720714627107755508427190885448663229400704065407503226404640238005371796834723820015197230122767315581780539056367755785317006993915728905011882821028002873397231307824099694836737432726765162123694359300452908241125210905585449625591000339092425353711534453381551645045470896359405185225948876472140169981440521250504299463639324376982067392993307269283317864291950067441700126461582243317634561279817738392158473116025412453714506664540657792537881714384379265940837804552990416851418666801660807499055665156304878132054368339884229810707150251280024759423260257846567388347993232816871990424998828228028753395683407103878287546228140026360567185449249887022774609771787518403952596011879296757711177384252470762955115358532313500216376749028079760288062520124363423794115296252227551254056778904840476967296163205525670611956047810886889221962668125234447993966674634488050446610849282509975348725610069513227329927681305513756122135873860277798205449669697911203065548348648426767307130699039226953509498073975561512278453733353758992738425006759969808262721607736502054075686419194092972447382483919909216017057136419817830242084250694240341062601246796046495293844320848106577870013975595364588484740903713811939314399483316651435371864316876739616569481473496101447918551548778211617249910869204998816784089808698823229053393295853861848087869821093917195541778700246444837898143162856318115280473808056964884416719936443052988344333096307946118893459856814094865272136012517441649910786649932619814241002942730673251281279165558142805113233207666504202105583353867401287909328596960622460494284206952550173261721739488839803270771791614703339830661212772890007095097874481022716095403632521942427584270545968800210199166106711280329105951273888812371702222115762579437192538454664295524512846976130546867415411680632046353498470099937623799776563412327811482158014975493924018170417747931559650337581516112641253446606637298282675626071667344589720515880720619400727350168091626907420491227413386483606829967686635000814996531747856631041834209617859172029709823560785470578315739591863907497389087038191443881092344055344396127760788446983769310992785823736218944686014563317756984191334925276833443160396217673969376334298951826949504405258292284546427196967352450998912271013109290355329827835461995573715353158525797176331515670853207225784819964198949042293783926222063098867421319800642290097552496502964387697193741754205460661438560460529655809951101047158914070972748471437963634955363464184340580614033602876212282652466208068383816433335079657221801735606265277901924030104632259208170017097364867076503727472511410813069852334218748709564686141776173028769619066568375890303864765102765885908714896954214246948562616267920700416649017032931593147686679736821412470273858562131033193218682691498562621481209129095278717195908286871859856479485500036240239690640990766562254026051697644197119855591279673151501915546071446056946424139608541518248073424608003701338693197991518601075477883342950246437801171418516069800785684197166668256121363043347625338170667984183001506151104122671667106952129250538154816966807227126302989796177446991030414962824609119981294569681524034375726275660774254123695517083144260142062343702400072119417768261457154768970042680567766795203973337845502525137598610766901101115051516689637249402089108903620876751838961375447350640130905349028755855277658269697098657892490322361543795407223883517940928694949185633183570757687029740681736249944760990232517995392446219461330358229953939426916301490505835516732234089815864862532664088571101812262359119905120910394995628990109254409979472260980572732948651290102640806374251498605260155949567830640508571415079131994998340003692961716520723538082057843428396200341931295136507136761664877206852764542645576579009884698905366937988418687554352171208191751169075566828432954969675635265710782382223656208012735991654353472625054518614986203797240779594687388686127916647851247678813445408632558216198360549906213600219540746703399366579879086271584401611547652918612912525368714942870371332458785104569092289345467366203359323347795608757043692911730640440842979589966009444082375087866563185142420310525481396479694357737540387273243832394801845865112121485995227148056891779790113473365904347264837701409620727648477010874959132773296964680598349169312006177300815075807364924391039313372463323359145503805015457087088668687034133120453930114210156439209607110592406799984430435681011822594772542109152344825595214632013665320708434420690174466119090576522087598872997428817937260193031280983878199194732302977268889183274610035728218173210446144811770997252979018828376165688666890477063517694902885916596087873748644144447044557488750944380431339250844896520529844605794426354113459994424327921671741084183866419741751603052463948082908097539441668529951270844035530828834573195303145820600434337109159138451006017758675169120319850840290332943626373481339829018744825041668784047944885388296841823651709624837488771969006514995049279473235231220059252811925032478108221647358621997289569196507389414690098745303903364383130948383681202750358327647341649716590676805937583056650626283443468417949411908665560466113545679868090006065206063180208798744610250487284266561068395902518997182936819053089340136787372707480150040907390173486125520161709779949511446038941983379142280105248399712129664918343543341622031472790155843011850573684767297728284971697715706365131112912894952070462133488283546319770957415163853731063223035021785362097858635534261273334612670125237040691689114868476351252249349991102842148572569812298212471346402478747334021340049373237965872542031971973104530898088597884688275935874618236846860448522235350424142347742405602611584436504407304239012791085737106073626701252316252062960720223867747740448891297297194857386550536381931849583360457094617654540964636115463245568311041324193118724560570279097236521974552510139755209672306639246597493445277884623243630151531481178973117988199960945007482246455652523983533055444569790228101400190598045940807945264056024867184023223194564574916351466307201605799521983028012908429556970515075803606794979079549723302552381505308370402988881567284515320985182211659523473746104793665186709897759679120880797922465551314933093269032771609618831514830123724421235264608606321328232264468769599230869901351367126394896297396294971990296872808448259992500680478795803307430139289388017536351614321702356507556390047467488293729105381088029676397711669525057619628561505938703433163075278983246687392292542239407177384163990466455314295072002754858525511428282028591942824681348097083096826159725886932758838917522831013172315140458807613229674351554118087017148634944699936844849881682795063905473970500498452342501785407293426321840781440647018438889740507792998653946496749207609271039611771247163677049411563214430453184388161097942987640525627953279362506460068705117737374335908595511974680649875738640363194264552440234512807504078428218794692963658958440636981026319934780989445195018086026145456229776918441704046412960632451731202817350245734196369910043268053440616413788730629049886997066991637549903776053770880506327008475083305911790252313061408189317030159793956472874646923483879490546466297047354974368033868436796536341474833524096894819645488839850726982733669106434928506701731782979702612031310892356382729139477163585287885134299096219218619105672940138165657846494057712685094495030008546256737971841353163703132695180767088535178099475371778136023254392670557144584076422569053941115859962384896121614297683481345294783514744346717695169352107176659456872076182820506288925196515480746645339580831049227276832214664564163409666470558336832295254832913471267421036667523315436766610636818238301793376366843073628641014242064363365796750630955999590178650846332690911760046833245273868823790003805048470374539410657988358244675550677170854532084201536333237523447844201170640919116067815551406529005889626823043750134982403185737648817095276644393196309008064219881374430145900728575947574554512126303409421894322793505241083180280579837728073571533264725177969457680071701111867582310526637171666746067174273168347516069900829938879073997473890080695838886319113032860917580826573605042370741055865463926933575625406567789669732936228184706364767129816134677671027965760795198835119934224492739440288811961782337795771590515772334027742643285129714423999895937078973727415787989369079017870972042899365385519960593846970824425953994176913839613521406027613988996752079153626434993644290289371374703214121075928433560285586703415073346290120245148833879545124593729468262066934571444733594117125240517917596295174205561219368929217089976955836173163222215438515302809902203067257490445123971823401734958852708517628978769095445478281054108388177645958990932205518829514749508132257867150952659044250361455882651145446123615841514991342438842481066374628601891077564042747932026668717462217402343407236350343940599137883893791968517775055908977932799705744182916152417864135083770910488572210385615764156408561184798850258107392827649533312908120903403988905307171120003047962783622754929094371879726321326138508981025152919518443836815686696290294652550294379644399689562366032205192807101049863648885274351120642040146130991154667870340901085675240833851839888092597345500120837654813144663146844304407317678806317569963165200338495882558064993436390191950007281567330069135820911141056385046165551224002947232691184018194791809324663487919428574390071956418418479874510610807153347651012324414837198195401317217026901891739707124067797672159964404842955959352830327160323446703754782853085625120021190105436325984206216047337269165262794150800478312534267973825471168031704209268280902767714414925832015731443398042876213892130501249370934379873695426858954590260679842601643159691993693501654122588501140468121039555898015738177373679007031541758616018594259714034292357255181327907966993474327283555995756818486527085155651300179839755214108772468222999245493304790005824956488412604055223605105795174951720115482281378555847873303384023627154945024205308314315356773238929477659090864832767063851633957723100935834183927447268980406688023326896108436386051919421532698591875023398815291074481036268446040379053463334930758841288634726320979672012209266535715848427977574009849475980667573661571406082465562077637510889800147599805425669108031884974930438238915314783539569390612611555307321772762137357484082861523712653544205332621584048523105735454950836754697680490046376866772174412594705157162627964678336237148720076207688302681330190781579883684289654487568339133199467300348792379402790942567974704946353894309808689937362128071980933534139910697555412056925299700758654048695131049929849007782489646127224730776374169572325093089263999191653712096100708879730179885095399153519952183537321168638830375967569175882447131224056654293055057343149961969847597239896592256364407052295290855435333881898722981580764325033255312870476715529966274058785672786908634995824381529939318323454452973145643626371290589531459339223802446271941028955564269580429753478528905364417456617742824183583506378083282361150468227579933775573517338727321162375526253634873648688274258538369854690103881557271827878794195285326622839988721390565289755355967043850778342650302602478490152134232523879559094635689835362501138777477535747542501884645760995124741186222151762426331977634375141922510573187504549982427965944281128859089770420632223750913309693940869291960944050409175745070022367720730342758210798719972464454007762279496658284500241219622907038319268141927518323357525104849227511851773125196885375145512375996061824242185841194937713616612426016337421846703237244907042379665029482280381957081766185587174788682749273137086646944244879028452798890509431327700944721972774928202922920927626976297236383692039720790991129538095309014597360179954918421575458093840724424264787628207818624635051793506522805463647682379145520863663861526593085930891544638804849296775998478713783372045584318889016769124639612599664063983408444955979128030792146147528403922521273918729532446793052387305498702000132520940123099218616969506184991739001145520842447210901314311732275713256819413329594745092164678617774602648858969690780170741735585239491427904171165899884300499099948908373311874218308090598216988221066378310023215905698825803903099110195207993801056907077714456098229090860968234546706351930399205024501879662903380506602418609772340637354094023464289011753670525224824914765474001220607886604308570675445736019317726941780247569666869549991691979794245433519281355932456785110543189485816390892178982310583647755077792952561421511906078680062219200145784690507515601366762587853326176238144610585381337470605525584230131967413298258918404592025525752746715266907674706564121123705831171429737389335280611050913721573753121528922428169908656891897122929773360386196935930543051120500044260800449876969350980002286957617834008505987477398695144959728534859721160491615835948948598426423248813366979229802553243472402769111329623946058243209652327912072007217417862359142708152426656504657745439428951865229862570633453206922569413701180118414449742399364389297133096485421259353523552655594078574226476515538543409773624633857211001715787253471442750999425128643651620936535662202940027278203147379677382589673590154788844945206618309285185796622318604057224855185367281402650219387388017743590047119293388425136213684622859367797321051209605306604178104507559141937194742676556772154569387198615823304982751074404424352607629580903095091481836021988162412286714576407015168010984721951250318881706794075670246804689152080636226309914363000877252363553853740068049215537762589036522102252188580747510925331172059768239182921520981545869036753043913705076870185390478245914579198407842975361086252501150206067817849460858943636481360832185840560889470308652384175572848970069203711767371121883399231058238120723833475402292468255261907893036823003179331286877547922415995167927359896987944809724511613805553154198293278777665423007970445487869448642832781076173323844485909308500183787501063752868678716652146739409426641741229127731693379729069502927725805718109408816495019329923280741245632732562479267952525115790838126916354256497451134474356889610736128806029829129303385407624865393158262665523120731155562988947913322198431899317755993373312595909656752446020567014532872085913202267133176315210323185635658397721991496843028001685263540579847422262729052689702164994675976026438338179087376662933630460815175500539288919169010749273035590554387692851700141148123355898114043549483227816299057571651432548169539216260452247866295406585585618445233116381557278861833524455855090994334420661481766119099768826030230007818027345180163625237003839472084309282120382833683077745195096077601087007827690112588756313388142931377352586957350775221852777840646471104798775232322807120588897104146732976626607099337950976299550768691354629729568049478015503496240263372128531811716856760202246330229588857615561281062523609823318675073341695891370052354731230307785321723727968200998917726847741098323854937465572706196352203072931684728235435206022915570218006027217024274775108190423897704768354361765766799142559768756038860833237020949431140599758791517419034547628277617049289426961019166006700161296142878640799269557034929544257301133187970886753015756793927583325745349075520734535116573155943853895766445456509489882565658446613000795110987529108414959897328344509528851659790064202122610611727928163687921958355573974440339726592422145736059573906434796389122262694596070393484328772980467293734223406591945388685830124069507773171105653537234677485568762519828912840508082153096274755646653621095768857560799855500579844617163111105798983517718893604030718937830375404732859004918853360858050344540943304365305435527509666390654512598758839172993560900328357864035376886258643114880857588847414197564393158453132976954528096308214615808038884351893879220648589022500050524428404974163278070006805464747361226755185522445716426266413545281310334329340159449982022348404175126619709451100209865196117663495464109396749707190909372759604640343740069052641197412350367825181700882236503502380647757740027725796513805622058544776547036110755554374339313547752051905808998231037024709139611732709927028714418588016350858699407618750910377981704289514693279356354776905085695951593806922245872411586679653231086506296301783213985452604452346274396178271404602699891504093233171081693891931707325498312203368906687332764125816760211349894405857491134987178437370304847918210338967270419000310958888009443984628468952940182799491605883688220392375702788312200444754541009377807094142743591377215246778359791610450287815932182304344171599213789573176219274566660952520889510613513786737514877575368039677845777162488597324445263852970768239016948416581673048845674134784607021446759143886267741851217806493402094524970432001094539981685606038011034465700555350985207243760097052361104425504727613248544676192659106013202886909527427839214268872375874917221498542851938569740701163687130674251736206924861012494620672331842036645810034618685220493306230525986994284575593844886627521649671318066186800942837977401557267059468725777775466517050403838672018065915906764689736773337800829824387955840834039373083648260307062447132794341558490987987093349372596539328229366228020354326729588899687101091550652919918698675165486812223559076539348611865250163084738099101242767386094092203653926430303627232655047559322372408564176067159813443373757448583540847260413115202035415574374919771565849993266970530152741934193025862144940458120928359653611028322402130385040418630314369943468126650553539213101318194025736602159823939062091535909641428485242759468364171877220120360891979605603027459442974084829029121066107759869886082182542763260549241308159442966498439772458393384471745575313308972336905763619077116145917312121245780685232404250284171021136693876139683245930835630951742730647451488125881182286946232920316742161805360909969661123648035621051029793933990460221290489125742594399186329663178860660968248962630475031224790818629752170026687116196717015589842729286119401877169559278183836441598648349778386581544480781546588165903977002646131105842623736867850632369892196034099900220402450168821544101710503571532600460566728269565129023637210168499013210457371661309488582682049358314333085317518170949476749855071342379197934089363479930604273329037580140421551941923366925983293265762642191004868155729068877818791306474434575519429553800481543748434330305768203634829440314025434005924656479684496126614920712478496765670226873219621107562867484183936194183934954407081675076908609101742016781799352696179114606301119950763382773406556730718946297966998565147307593414703894002402527275611853638064871022646007936581182225227892334921691425213823316986101781232544049136433312871756832145438452130419185996953504022156988443600314151641183947000549599394362417120125439261831857605507053751796999921801749959399826819585380102338266014164006382382363034711761388862056201726780558970502986617188000998697334495007353127662438292846845693277726799314651610395399797163575634336016559952647498572533717394789972305084863300868109861052088117448888830234107466892682123883376618814358606705374957195307034148053064815087356530177438214462649259218685272364943722753105453576986544371576033224611690050280149595115644406845597662371872176948784036512332791744572090379725116689554816229938099373863051657494994683206742917435955089434418965593117424584460175896332571810777438428806725117307773931072724316919490112009266930569668656685368992863413395500226939551676693784641879577243981832473780379340826913811638711296799036944016093617954699976710712001661386665296097302478065999337333228643634406337098673794094626513937399224266233801022045440722794183276783002130739319800274356033626449386183201863002054205690578956892658553670803786368497868408071789187314349340789312997933110904290362616347697686620551233640212687933841323897822824674045854200007639662081043009454401730914028443389286305976515149363789095589481943217184522129865156544558960850372360423322692040854125128956689589307448734827922544629054445078132099712221563367035757660373000938908620502611248783925847772531196033929026141369252299286685543834304035887303279696121840119184145762868920906656215010428844152871424601769244789475461855513526241096464633520974114137231164166677909044028482128908650733181472494426364361412114212266029822336781613082320296894067004641190519699036740586464566868512976754566464209788206699215125942487597865664123975754194796978183017286515409337586958015234016518415176987100509566444773940942858415764838484818996759006266868926795764505094519714099656182699698476765975620767821930057812680717910507728382831907706698705011241742923503077300792064689618065193602591639859186453791690907968879163553510790503555767509698265868699754274357688820011960462079752411955084281490699366509596430326416777639355467447147507866442605169191324750438419320003581075388900207738691206406422791398519740992978770667147943061166180286723022789255652627250673172428003309380805122399204674023080287144074136259484890740885071373977562793966753191850559227320757605388427515883704061347587008952253148054787653991161068164580990452169036252199369750342435858463368584869106943587721578577667745520706528622012436756354455702978344941949676644435278997168241032874351058142585762484828239482124883090758482782317019263736386120697158530948196718425707677671802258713261626090498419076815412444925927166869011711920057198844839989354859378870791533453177512222690341817305374318375797688288192370424062107934983186179588859339617896172891288760259444863690683123126957231566467817603400595151821717226009757546090247289315577013662455778260476154651387080400207930288877113246735781954957650840325252419775756083681974800667266633483384654016843675122488560314497493827936711040789051870828144339779414331702330992140934047954177794812709728392331817878722586364225794705210963149251318848787644633460029343838205258080482202494961918285081841421049468756107304804550341972783450751360539759053660323259297665182702711964826562834217504401473128884604037018051111854475924089027721392659582116128330616902837504287270937658142083670133587278615868270556284217405671364609227001610249275139756915761198916902661607934980832971716584968355966136465565236773051215844390105061937552637798225574383503663321966410980565718662296874185911956562315495056864510716658963200975248995664293209610522424731253838125827322321105640305221843194200480778317417609246274075788717527779003243452671358217084333266697093542427644098171562482902075977381606655644744993155676639331880555629825247067149094785127392564048948265408150930307312891228803388150789520101433911113187037244924906100486025933818247119449429703801890058527922370576315503121535355098261678562945961055623509896607254957860359855735462606571946058835661443849238289779601267637647482907380686356395095474139584477874652021532120092098201903943902846940840760613618800626365741536413332907250794807417824656037820472203224934987593722227358887952516344183012164256776078425977117489315051629045697377332262516810155438384043377970904399850215738659234537351388612108719931450604743929920325857385408737242762034290258391640935038215542150568021554311579487040494446458708653435744485520386561351158776237705742532150870419645532473247154969983328956854907481191006215720956259273926813169911585940736156930594392108472061186753711501961280122345928374296647261971044309106579153923557642469275768267964311428136919567655785179292646995584812505564485336810953285587578541564337356270392836467854033535977774540634949002170839662554961410959408504162853821121391621869126582740273562976762414898566086407185111396139726971973153408821821303008712620332164289238322922907584652123223196538699577444681947749329098256497761835134155520433966239834545893864467180934172060755373103959480409179116858170141018018232047829187771373967180701034239223425483462659975563676178898016731689591766787058413960914008967279624731330862652224841993268934941901450108548671035349108870622526948674413719700178862026365033833101605073855219935659258597232795977540682512417250762087527926885762583851826473151758469799677238828477171822209606704052064446589903355679344752396236914808265014730347401469885683822557994076914854771691217037457140336017427438195300143048744245140832625635801166777833918404634159145914546272858543604389081884797802430372828844651534606011167383624639995368083247209026273787670745264171408464145046532689654922963895593287276577222933032708789623805893886456417285444372055893715827701258224047268254067953516486489766591087015862435592814576643105898180104452638757425859906005582280026189912815288560652302519484377548103185597360184550279167665273251514243568451294938256800169570210985186152118986383164787276351643050590894553610974993473445628773275468742642167856897399281572443074028706136680275650545195151520452661887929934912255339488751511227687928041075772315517527632394884937579648973361814629786442360289586673860988113388612662086817158154917841605894868044842678667005147356214634260108205910526405650966384466814719058547087847318042848529109050607760180000157632505835905926337632005514673354229253332948044321532103865751312014193536171703866374755207335276713808688627317359119630395265192007327934823236279014556644352657768855170013701047265261947578224224885940818995550130167301359985831016604939419611524150063071657470223789503955911706747576677679074810638074256429989749385606168680149316552276535131344981430082136486330074133399857382428201245077217794508175102910391301568434722988584064427975451845660079973403432808962474524186048378463554509622623739504628910665811092388355707303227373274581908935597645450930058377351440892002188673056264417334181559754496775395996051668626120109029286249140563810422265278676851827126777667399980290723699986381107558388752345016214575512992566372279597786094046619676115518914644127329544870965384492776843541161021263178343658580273898576248338462853544017625757502165202237294276009301416658627994560760400127292568209241607351152558166400654132752488873077301427846254091164242668760742710663501110900606068466502529440715638917662563874921479556145975727119037995027731375167836095375366884843304394097889606562874334844542158023587263383582252570237812374625748436476863380443186820583525845791213587907902164262833057391553560857459073159103104741726156930458097726486999341485030146080618121194003191090125185759330239201592091973179366467714530182589362393860914990306011564397189594553582731424505150738632823218619548744866041164329804916080891828993070561974218979070022076190749860245916004180572793576145968952882069835393503147689797515581010068337052164614064872362449409626951109244148861707853175720366937697454709540699640182365754940803344635034323589694816051871521395476657614509443741103486185233279433973597315581337753198895839603455425600190824275182937781907217754519990609054953027013082668240673523161235318256181104485668665061601572616012273959885106697306683544707506553928730396463538955083938528982427485903163886498233625989352796501981041948046921327799266395446632325454080736833980616719755352944166721820163827109525176366947371013829800002398769583321047489501839084579152834235072458072314933363509302157473057935202414653824953441223326516384553843640742682739790187614894969359218194766076640347789099114614126955411235512774392595596961825181987035620347356596150890518541880720716621395334981314303750385187940317936752217060831921026257977555933083221810789347481820277720644710385036817321361997483819120080038780819625278945695595612801869684386983886426108025793414193017325867281240122139019275710442715178339084191146624899991170793759469714682635691292255586733920332860768091213815412646936557929624555113356066544229935100890287070124473403141992025696970500603874705350594769692012187690260303604366434585776045388507475563428083368240290397442213100906126997664634923084796133373560690578426777443691492252687703758196206813788485611838213686095095167799575675766841090931661864144461548575891045095834280279139276982374759446599515317323035329038490906506200020441524902255097251232903627349747529917625612656102371079018947749691652214937098589142042673474848610277162817366509546383532307272874552526144348229616592893410958470837870434699123553228770700653733962470220675742343030437228752190774480262405372688046709572293985378413381110516153134993800104455787338215524547573892716504155698701929173054202546943694052128134135678233792730856656149622430760629981247120793578607319931477919535529110515413116198462696903893731716951112648811880608667329740814855149139110286952946787848210879962341812345762227437699071426858518291742773574571271448883355856998761304644358498730835068864244440602653997073860633505245042494132248869066385899171126690212081224561664040141133699954005431538781721777553701888514641927933233778504899805538723185580592193451255620085034774322739062181277150172106455749801294874852088779157258737719544148253564314026956624578528727121960703788919705752053696611993692940405713057588377453633278012774611416339560947753673639941558372481149943560258757762845838186218506928095327423161295541703334006543366090257988056383997156092045103773481650291330329109560065730324856700628438666872087912620231578112655037676465956099758489493554071892001972500143427297175088029909200899577209495996513910626601519920664715374399191466100760469112929065029770048377309217862228997825337958839697421331436009535334623246421890635352775669337118389485994445432320564476609792407766039086276688028037124425220526467028816668028076272286156378799007029069270773734558241015724490031265535106968497220185305681353319068556249825067855958427840486302626168071321847386616715135684648327431361615831949644735057053245757556712767088707967816335745156986834735969786303625587119545256242776317783139738382141912030130661701024780226290333286277232165692100108763413103634167187772871195237981751163472946488094485762797734735953353034360824847859104306224049316750827394949560529905978091612260104735688369959207866437651842049517297776665746391026488687990981065526511435016112931340816426973659784084178098849426692968750886284253917477842435560184140036262113364115620232659530030444153859834322136164109636673420800340662716099726776522321561170973804256536424719242660809694521460258752588470100172087498084114816954502786342637690360939246244674472842678912240580180842543774662649010536157988412520925318199529854687638389726005189279444282553326352947022042777203301978349197217517014685515505775585539536590242785415551465666467075781424606938876167200999703415107330472828700105593740412401606054123367917983340918241647356573072484070885039635679962936780648204937264177530368971053590433309056629549512343056440460855444102679755589762843275003375318178056359132900723818650994698015336455629370117664931561447931235498373511060508989946268267380391360306704716446752434959723080068490100056232206714859948897636607593043149395679658341716133389294970704095740899253257173932682235363461493587350593886381606210748995490999102264394374436965468823275657082851168748517919649832196904980530604887233283362502160941655300998453801950143010356242382979476039928627089119538804629625101107190828117259559215011125263496602888724325310525249026675641461087992694027622961989469455326477594947080835503821101073338689469917097868214114293653860720611440324707110129211045989761513185178270103354685501004593630716479772166621774890435793760537243794999973615617172639209129454936268513106305670873275967994952740934067128646373857736194421559058238482735918123393194147653995562953221054550581700228901597372676752801377931745379111690716145766189226398477094729567831529995968001768000288171296233669057605919171980623859690955793855542233788269747747709378627728819801970665164072543875835536989103515711464453359365181231760391631400593870539247652635816292469094450192788127344070951117383834626597153702837747956475564661662769502328773855692392951694515024753446180312236178693512252789363031930610469453266111706618293314255458303004757172024957965110941929152013629350496731911255722258461968586260396101723893481607886409276668469575006232853795269050120997995934522587190671153959018195386050800496103354576454115019407242839980888637216551843841088008361309417941535498085129400399915680534511506975910701128428574391996989186119924928912441833081874868678643516511983482920689670881277949705868360378429818814715788117550368577302037787493014356121071882824034177305999592802258873160829939441973391831814872933827112625672695023392194543958437702213414804260537636935806035971006920233534003910481748661123798869789350765233823207205858282082663450442334286252314830831181342576937391602426801618921924150159949945987180424110110132152133666293308935847933174033776836716661207565681890688581481376445589188476725471622340608806168614190536572520146020849027088981758919071068669043998751314884037482105340681307789033469883655963146508691303688485152232207931960396039436837691706885705077608489765114239111400971583940258716622050362341567923883226667268989171818132279222640509779654917051070128202973488996827942289650024275838216081607233758976071290865845737305107278672906208848651051166480832736285741483276268499884109253859330933594645234389684278530917469605554595227557663047616172625290328671387869879201544142893726705765844422941220491331962930474372215242941814596411141923716103318892009534930436780298883195927293288345704854368683693421019189603188909908621046575314112859741111273133344811359196194188314307054166779018261363387870881029382937410085441110459884481817619406218646813180355632155985321717153653158440834057649363192939166210233668349309914680487050765302171661835167076235583364287212383910866107366360697742251632048119937712467852600696429694701145496882201981443858205393964644283852673031644583977155887374083087379007682706784169186195974770520027435027868147795891123543251684162268661710258940933171169296861969183021349835479313277464599840180581237029132597629256234374310104936971856900049814774713202416133788817940476230845950863279342294458476208672070506872318490511010170170204581966522144649386438117077769964773231133993186485089337998186992092334641073596184478882535713367607300119681711505637239705507793022429529353895446614036210966770095948961511602495390424778660343208744957069283263129002853502221052082096151543562287354882996506960006776632717277457281241795984147923860552962961119935991323982285626134580580488573324479152226039033483261328602442958737279334602475108123405759812437698009886615139870130120355339341360620386308671494515666215567120320310743453978614061744629608357081723508852684727078858778062677133290970969394334734652604909494737901788716747530588476658297934386152100395066278796508766025845800567530517060138608193954293986737046075088596630262967400534486490982400635582834928987415950334241627705309783359735059982233900414176265598605961361522282735965021904656194343264986434576392054892588059162070868471208452471204981122265197783532798049082380267723553092585268947265369837464596980255059383382894264172952576757800143934110203054960799942610295326588409657205369437468587271870623904332861612886325634601043194329694778335107823327526667227648852738712386894481107428076974823090569072485858379283586912880495874630220987420480818820486217778407510131084150058879196937978720595017296555017019284809991375909308996407562291976897950226140971327732302127914088442987813134598636104852496653809093709385289529458145924415689869676409779512293351837714352459106134618060568994186268320711436106677437182319386086062589290879577283721884879461535124888631935189717624654693341133957131691285825788862167761581125329910638494727604067613284726928243378883975140670675006887785720362748146544642755992080960799600680986841804150662368067047743514495179887420870301608084927616188671232476781577830270306082962072648922158609769755360759310264049837639725582468596587173346117397800662976427689608192580661947153550200541308854915273480971103419936970976414456303005847621396102263522878143616952407607229419036557848942905508221819619385923192216714539906689628236933833652723856109161529338145407302069347057545484850091546862548869150522182426323549208098363918402754181316642270076033264466065526152659271657673801599602500733448872752021777283457135273065727540976270603095505513017169816937857903032792944195411418310426296608294393644416883164548056105464245341687869379284221757072980261116516225290640210578360200733259165178749620008080242759956615982416829036471311493969222161839493774601395592529283709077744914786584092894810509452991083140369785200089911076584526403577324169017636092009846938639923608319308592921026967095513044140069875554841801056201632699919789151061211623062919771966309557809951431762359296674974804741956273782316295453804457792636865042900263160207287206417252803488574009792611864102578005274797934914049824833558763300943345630087520318469735065073351659673153627719594232291429369569395637705214809291913023588023377675827648888286193974174293459775657946374502017225663220674706311917878444024446843732329492599932760330791551649060606126740100926763122169252650999430942442278000182270195840550245323382807182496950677428912586265690299954904900800563187886276044017210954082138612681235805947879029753833813142848519420028139418521006885017994372642349862484632096628886252145049351093491684956340649131541715886967085462289913970074740236203552333548430080491726795963890528304680388271505584377519959751119545689399351884764488437565675151274289417371071172765615956371925230648106846264051860477843937114340044410344489172285117972934891617492173139697919670232696158617036636402248807111200364721370248492300338803631592476944907929084998001018534200970429588408652968310420005544362359623923375957130803159325277047773225601821248092126639436239231518540286486376431912814019508184867793994185114326896869800398950682463306793380303721326526339998510819887109420451391127505026825475104145346357669159327813484924082958363710195921037744223034330365225017220157563470943550646604661549779172308158677989204566065288491102577918270619891186882727590273019449198382811327651553846035758973471160460489784505582860182004259784287589172830346098037133690410485071868551652642263469987461311584695900658645893869644157103643626726372684026270124989478876765629024354763421668190052162612316319060193628405475012820645560537376018089118795136271373911875951934219034525453601082027747825479569756359094396200484853938731907412935508318434025063451936453896324102959376366803327148555168733145278504777458289384907221040535350483318110196274842199007268844166334738072819306843883527575349886305989008357569069114496070562703393469198985997033971078645145988877429018485168226959998289992715475566318403517913355805126405876063363269356631621123548534636278665530611488974425645143901511263845771011152601555557978573568438302174536407662782732343159671134924284114740621835382879119089731526263059160039872844265566399073292084941451082597399777086070785424620731833009836542364092949049015079226446301668724500727190900819059206940213970649572998991837245237501194521217813242172340165461592061820287076304752884141904582586128327764666418960036299294582015196028298366599665209337582773072758003773841510592946240591564404512301517938808001094439215826304268716254870598503500350556427308192014280054273765314966452917821826098657803644587336856211626739754276883386177955851092779577389832774383053143732064174816049915623091133540524923193132491075636607887004297782516216982523638428136862824404675633102648019068121519942227318714109345699683613807722949588728621941885468662893440322817838531585101448516799624091202943410320647154034098636185604747284941224965429688237213452057138236154657180272507984785274012467605581985139144497398899918451055316009590179199811278230214083822686590996562195060037824646990223915890270847749177369097203651450582549844989420643885095767819360271858696695928888614773514113247482193210286730480121134865469678769866974877897883030433137301758143285141938830662195462224809787482556679876694382323113396999139177629769568790797014264204375898612329025789796382354285831238665011479276745584886400748602963379502275373491668532286451718427863250810120582194140566745601451200248482787558827719829452352276027540966930627005291072295312923426115239002237790734467898246199755484306881973771901781809062862837810973488858223670082827946192159156715871974696811398398905662426550209382392788462781661466668680165329230456333546112762187981719907777563997330488804545362013239631732644212285284929440538307563195567517043481113936635409117349106387846649392316047036657783199525010464652596338360120580575651925460612078877920816968782941642633053333360688599649136361054446078267523532634110896782651431505543090619991709762471926549885094881941309874223929936079880185838489260157508693987330135479411991512377097628173788970634969942388097687359661551316387629912825482604169157012520042756289256146539379986174783960317002126291363873334547482622893692468689412264346898030912396143105279689719607567661726199510551434224037209703912483286982528059972202321799238719987406353998209400406924670271321206465496417550549022117049367617638679886488385245177784089109934971313203317790479324406316767061016131016039324679377092779152291549779778751046026574758251047617091646419826595680374087553049809404769972027925255920389687189393470625067298355949685877077122816170789257055578909868390612408604851738991237602686265507597893887975069472395961844595348291153886550252866680673489406755081276910604036270230336933123201401718170372211964589355506361797807211311183829805852521813963650578977948119573003285205231816308070888242641876630086534235664447257126336617863265291821823391162048302216445166971801040738596083243223370060369779628712385754439638082581629690011620704002112424802645909418445915717978078356142647062978647463282814951738988161944431928408148765934735778709993856935885327881554204884006393981985932437800295237903220184037941294478984898995633869791715619726988889106579050835062188530939834482783924759744295852163629341123710742043673700574202466795476802082878164940193652578916893048389922532378432136990908622318246699801699929065596438620589961785097082250260961344488670726770131716479011309047831675635828473371236908610912510798992479987981672368244235685484147942549490546727444216707769845470967461968297442614462358191707104646705123621146537561504294656694179561510773984558074148172951969079571560244676617858540214527454231194477982265159373344040572490035097206882181820465346845659065038951947840631335893794890524252625373530594011180114969784376612113459710725941156794769585442401619767732660131180938682525837028616566836057990500024501473286629600502653507231061693222327506309016981107292296679517579131839731984377646217646712409532594928510345206547983664102206295743598773768740598777814682002957569994786949177793515125567565355018629442623768112043073562645551098493786924915641731432260748193088318817460560035694850374522558219765976005336323488020058619276647067369211096184115584277110359916474829263116771868101832672364535489492679800365082425641715204385221100929905232844513311938072782399545900511362976302364591903615791115261340343997610992201235168945796623615242285905061819749119413170303208269482741699631041469912300119250552275098654636379026426880514798787033849053379896469021962719233013800731951394264178996595554716586426799878471110516286281036674631322022604495548591971793153322533390164958567801033534521725263356729582891390847852169680433608459410456382570572786282003571930775757607972236856910442568349090855790992731144910870588531012584918915187878649217316612982696700759051026459643638613297788538560622905404055900660320406068361346108543988566386406360739535400430168670101866418179628294317148650573377342159788212037905311353827188463604693114150639416670680025933288293420913357453226230785394226142759656433253373140314527635208232847883506497148198102015006179028377791090438178429681374382936608469196187438808728571798647109318637690815948641422244126203819067799762405652201130135442043414600860098171287145858572587181128991663208828479323900646155316557674483798713354094112959530770082298581728086574476754131195311588744925849516118776563424900202468146388861928120196666493680185242914388459170515417907569227192241548293747833383245314557117731757221691381430457660313042308344618569547139200088215095332167008684492995968067415986076209095460310176387155611878256824575627918150292047585174257700444411777613910650193122825067857787575400904112923136460161651053724749198986717001622006227213240055364774999607837145825243876730224464491524275811962074998270710745022587914479209141177831883391936534357157651879122476263395325196476436633535445692289189324779213159772805551561809519118796785561374449892350880509556185962839466495528998126609124840447657235359225163910968168184490794984596744664663191742796823292020261486522608810257710828186996514130134367352413238702923548263651449472799027806389896270960471258562895656603989451277522885021622522990577826179990207510095857759741582368332540031734233167078649192140796314606189475107819165359557129171674892561017600986109458882234491926979249837511754593174690948848179317607226843697075851547624152317776752383497480044093659350079657416661536942390519959693737433727048846967046864682913048802050597836801229901503308156430655581062264633361050142601010356106006344748565899279971325654443196516224656674449621374867026715015810198461058101232432740901619178758530381517235413329438994814960689328138148037426764266450417228829116158566427228801172348630892567491554092130567049272049601539566585707682069637267004044810145596964288579498885191393514861543588466601228039019326938580906047304152268701031976591180681880281453187170759980083247240773753300087032652624253211280145061433257536353664403104810723794484846130241074137768204849645581963271684632067117410458310325024017420658379891896341733082335613299024064114602621317537886144583131891781468742542721127006832220678821348821180450308440443664881742092959605320450384876998549716832452496518860484182311453389757354563144113057479199170070617903387045715878183361744712366680639479895804593694571497892350468271334596046504369427392931801771278341424377195321539025605501500084158061581778361231898944821112645719630725392909782940072862500148421145409954940110977465898657293071434552526663338652454981202921987122487261854504544669514446278141474220385775444269351061568599626863834213668722188883483825178276389646261859278183218908918084279645718773673881818445088157296637902446838637713029199690517856031119507755537227099263098725738504205053744221501967225435067945069919718661237482636711198578659388324858687900957891917945612123155152177687436907872498354839903982983426320910536882703025353506696927741048806051310074348412638153798467836378445544630467098263494354106529208287805973340097098605360403354515458666664766319778708972844504046293802627598167394874816608477236970773175913634503541298610104562145020893946269907209036141288042252441628099330860494629554383253990599702697035436447901809062519544884181034503908941921940599547315436484656244404446432939362963020259814937125368463825227644014590263804073850591163132611217564267196873616839763571042992221703371073754272552197107588845304559635923437628528775245065799994828317316281908399535716020160504230095351506644681425969684748517168519342065247620999360527781052975460390611723116225097655391120241387569234514154516429418599314584021304909218860691388193005316903734651956545944277020997370893013722912980023007517108739193760206741137825970670421236928843286352067495014320678001301147969533367395067577386992559275187537350076401552018019322489708636350324356955384819159552809804358744802538832154774204582025521690821635070308301552492814978672647070473724920791470573943018088417164579108470201694552345379929516323414236824424983879279638668470585347660775746037465830872256434668226894592900680416982007453742988384679695963386300477600881984251173096201039472382064637090904530126304164617424688809445870615058236612800898119142481745030036777941600627257869249973815893240566234133229598885895825528604615085792862552175035593898047310893699447283660906882056465782129040283591974761406391816220295483333933032838891795404661715400622401702058598010348948199346247290155410439536863544719004080090493689218294714608438253835168998010273621452428472210114352934527714532782355023416106891901781278785564317567665209667936962498463124528244396474484289953168310200476769428941853132024779047438544190555166449520977882358980986357341995888738959298946086372696130222907335040968575287590603308314373061785268375828562057320316353563182327329747433296874229649042742876681264790578130968842916624477698294287624790253717093468340627213573113259847715890507874059774830866352795291064011958311492242487207230042049604526147015027439217436154745502493069921863139414103607197344775329896063181583146894556651387741862952153173900825441222292233335970746116892621616374001809136939817832097398592228419565565729048696473499263618323020525533599308037508438181439712021661460399762494368400392792289434037776744395876827871130564492845419852292853020072996288893321290195882993816596969006131905675299028887164965115889667506868489747114995814321174376435048535696935919550195590988462204682050110534877538762256721269746585224424297109818015014787357865273096686713234454452155215636821008035716299432390475777289138807451998756228340365213393029636700603644614424480173181503294260459463697179958982042762904144841261080290772209266012927556372319211044053655309589827144242001280483902116744679859767936449541503019837508101852903650287086878322302855768673109428721028328458876919867211051146695514271968794081352009422679948352831440445173432249816084020734620631234177964408772433050501984838507003665029910168356817131897046634932915430828372154382901420534433345859105807028373702642504008334389950249024995453148543074731471187123943338741314617923052642748566422212013521024147632454162176624906099623648512449360649835739658467169543460584898406784090903807804042981284300657516497543736585508140997300508933676945945779957637569802628915090802633652516840461548962434364312300380517159487286005329095715115412038037253571151264482108565576464189714948657493130117976834610089161300208784337031575990045988387790082832275052067300682998258576902836139112693084587445441385497299735468500539715000424346246134622649191805973757170065628197002885717914403696757860115495658353216365535014390260710574133881624076900291131423566648488307329367152937968136615065799509568993497958208075252984891081600559550118726683174713916208232205910610816441352750501250440549179774153403518696484640842853618419937991026750874843505737167423141716169190643880428515657403628461030693457779149678650710098389295040907459117022149878981920083320020732978882303710199403157496073368655716747124325145863183770252821723446078365722721237656255077225556225142665909985238398522872880711258778387115584087644321378367986544319379192548247135832681014587590768281604050783060742609782225652550333412190351069242451622777926654679819992171888674808200169209563417064318769429016101003833114415656903215997317239218152315027237203374930306026151483692055209548331723775941504213567846909786058508027623332427731908123152075773207348170404773646209592511674485244376413754907830329636019943879637294167190758557945664498481843811739874387709115416602769964484220825108520391788751243995841367585076271525909105424714141139927057389967147939019591706541517198658159690813834205486837794065017804102668400311428310987135782739792983004592702143579517483426973568469127013190254520146044736989786955059144905456570437727638534827823957689264337092484223660181998260068905579542184461367254176416566982292105580672205155870777146916764961812193380088471547175216387904651898102797138963025166150541468852479834574695946807446295293764042344073293551097474254800307837534964559928731002460207230758907768488143898112123377283547448930576758385662572380307774228006144681550743399027762251753717958090746379108682804440083226450859278927921216685333922983962254507428927072231040398653903161846662070352145458239125337394682978848875754017697455062164964646597850513788603363937118159137086190191220836858671626039892254775086639065455574933766171504344805464879798466082606292261705961389038148830751763802943950800692479533082671613237283157586417149955645854837654645960877823881793662656351793482921733590279994205528160445445858144486399068221176584760302549163621983699964335456316945749602887846787731178791847600890037454393312161818360190569221746309008148665909475014478175682358443675161736561872791629989684404400286796721904262847684538698178910461086063850719384819792238727617335375764941911063129089031998480522805784546552121206111472833349376142423479801313603791923512037805087399634466826439398881281131126778426499614952708976341973539752031562117403819179827071258032103804753582735870493562166497993497785601592815999567845055824709101612677307066408417891985867352545455661042736123575562830342150110265098058816746458380483551736544912002295716471560426929441706913414879657138419475141033994985799199158758308163805779198816480498826854942751553711091437540274115376880315749163985174255521818244207118953993904392794271727173673656316102139987137851082293535365761209751947127447053647786412731437707373456387835363594865534307052684782802029085638181425296696880170406506787508463364313769904197522397323844124431520699836515108268655887851084062304510237257965460590113652313522567811169877345659206612569156038877538007701106879991665130509950771507920794445604472189937336925284767901841753002219059643017932931586181202144887188451454468396894848270136675473044241759696505346984788672690719792212816196531459580043950785357035659134494745923397271796220604028045506618931210199144703829487599120158644757342346536254212377859374082184824277709178626016682516717852729117262217539815295164555668196199152234577796046772733808956414887535414556621989742582079476976298018821320399608242554512028144918549895967952963070615084470707995105844446374357253202388423777341635036659129137910451181825595498563520754493379758021399697850303694230011433997058325537848478467379261988929711294048093568179036713814438840385170956044617546077826933931522750134783955726022735724698606888410648409760522328626694063002461682284689699186401662364429408407082789671539545554102950018324253792780353386022509642061447957779047278563405068287583550274783290684323189251552431553422643148079397196331670983787535561873907522504664076380708769411750424849190932285804513004889669733219172553983048299904578472696337927988830053039291707785233479120870829264341633073251054441286002577380083933456754973578351280388755488761808381365386197489185231724031460474649210252820979113684152431559969616059631112097245256198488284422235356960614434945288385720033065681047245222265377022597914198599245018367660926001488420243288772212855969456690020912194789939645891361130941961019627905234983668511430166917845138537635913787153388301408984881664338783194347873311024444852687939301614131832204903005305331715246490086391752584668225243992748054537240553392332483761884477185016396623483405244968907618248589344973408026530207731371988357872156876708629291818508415738527464205851954420607007469748104746409127140087059836342453467686566714671377706063633653328373111243057970125271629190369913935623173831201997058013165045114878105364726420793413054135326349864834421223557074210851412842057931937650937729498186783330430827213979624227834120958202032791800550665256268142436088998948986585639591093679190687056580107288399408868606842605746458261755333272832457003200664807290177980523908826102467988962671757343276868671275336035310732800817994809966558955338370044441976783679138904332461152684861516811740821180724365910794931648020946783286081636063571036799675938455237735973855531043956981599576781901522881802176782772587798547080066114579337350730773075183391730276105554666794340026646810141365309242736232064613923381746292295728016418256346265473245632454259824778287541185008672707844603218836945997272832125253611361384970460456078295855223639710775064827267992824927512490412683264073862211194355075531907406193738384809869064180128225419060899337568977682333546216224332558824732649901174211660546374869700289811572747056971579894737197381480546603877523562443825931790381938980874935777793229903926477381966704705402315738724625068063892421736433452297928576559879829761190439932949620630449644829452120390479822851650020894136471512868121578210976668832053956999586036164003389085328260730908581010748861375952927052951018504233920448329963961960609355709189106749124122318493680584217206283316376421110130549187652653679820502437290105163989400996795806088779812104063552804721386275500910754986325633650681597284800677518267204922054593564931648362782537991565266929742059381820447005358473123930128434103048612838699205318697033587164311263452945854709701690173162841064130055242454398694908989249593912347123348468863933833882153469502696680140682199158930701912237426700429843375997795794381462220092009975483965496770536871130450043594338207350424314324331421346861209765851684237137969229905258651601316544145669374817652738266753915065431265493230118985283488245730821961513426920123504453701442450014007179601011010823262704466738901833137215429992218531442767151272980369211510099428731443874298226773968550599151417889352087760477673543624345308238683465346923184893901917693080837538127734821552753985382400352830625204607213406017046969662422225966134826121483459221702042597604064163590027389082717248048404283995570301790669287887444095502201236305388871664280980259353495113510954848188066068895761036546270735185553175364209128721104257670012780772218460396445373005307043708520362302838589721718504671053291030765362862294667423356277529910112387489408280075532548619065587242733783664345724662202790194201666554265953882909502446217163903584554340460433500599966927043551166618475963214890476965529970168192602948000803837932066029641640552842396807638326044528736339981446149026756103279172143538162320600873136180312462266802174629275535400260993129201207921478563795897763043988777997661220601864782238353305554518825966381661358660889837876110622207184016823681544307260942043587774334966748939165683866020440584621520180433233922408932003172891679107392029415613943740643059017042491505303951810523553493225275544788616996126345372400189069452362744281066183006305207172795660837997145393328776339708897748059396270070275513138926914653942014479630736308960063270373497936455898052573192287335253719240833258580253528795124109697325940759874687771267121724494678079501596241210703930566510526044234643557991093568351837649576328508802930515746284455206003603365252546508284468199378236944869719361573000052874764777396004460346631608743708619926271578440606989231403112948205200151492342312273383899737131111243038145193838834775233544648461052791101154624655517472242868732044361682944591259880524597463925129640111912102672591952523469300118718857992212434081196941188046548088512531243272218439043933172366255880121590776090992895722481390322243542043850126639158382409933228261396355918254713319533308488840635708192531434266684610809003787772256794505334795475259705027737521150761696916642272822397600778250740928668499234869994840092803051605111946922741514588540089153988134679241895764732771027731897026352309598825369055143157588180091627167485597220276103009272202242549285762485654515800059046367047146093194839055120957374311932697306747925135976522722080240038289450128852923782294438169914751774606282340927626379600703716040669003945359275548605800682222396492409673390064275852588797580671025992103662788632421760612743278685644682970088184491646752615516898787316454006887636961277677173057642291965621427795037302222479972469778006141727161732541325702091609899196724948625748711802488378079263206699686408985075052136522680367785812265712913481794042824311713485128491177550342018428541114309312777299167873915843446752025175968987043144267677250528803048636744269412514157333731659728728462904851651837285619485330776568376319404642904520710230210737319577043725182492383920192823869167198406383916025579340247854864992059668121266874784720159082031503157466008184098189289006429607164621995403522594150631788961545309786368228536588582711484847218926035654168926415537626634412406761059492186572002737101103272134132565788702926949421353008399351007153016259014378016485868353442757806768981573956034319750117063026600729206310636308403660428212970458470367468252257051144425456542639518282840008577043689827826089437459316188333900893719169217168251441157678057262420693515948076831673334524572327484541296524893399191275307812505355294944294999164367104457955254936737119056878506690432889091833930714766243139078634536453257186065568710698926841387062737016026900405848138797588299186886823852439168058571014197372393205965704753631515625280959039515891871947650687600824464240977594959180546870414111394894552179616360329686576484325841139338020133185472687186743598918609909097849569902917480522809945721721720515901542964585472010517672385391629469300900997489642040756277263620900601156850943634246848046449477247541399273936330918468369418037571372499688653527669870921495940621864208083671621238500294372333283550273826506264912545106429326036825707909882959840235814978928865659997864664510621223093707034714719622122576238877047111021507284126705668324940013776377014091676218186398119834921636814690307391221816304296447807608478713096192212241867432387258677006233772246592572115851096495178963512577161781849220636411562161623712869495248824979975368470752177665599353556272359973688476347632782082828601432197742303679181042339620308882427789221522613513167328075798157822163763096296054677168238065958636177568735944748308243379805906714528670634536549032074960315687360685826339252975034904614416466368875774184622642322499763590729196121281357767142769014321165691498458296658263691164146873770176028074151737270374189844988607065805938214544079684499367618613267347930159314665596324908720484420619202758739067698264274106076168017876614754335855161215237763737461868350590657868665394906366153729419014581535094733892984363725128800187151679864406727109105075326169410288980563718470422605337459977925244133996058143148953148544000062996384949551397223758440545451788456621693514331111588842283062398662002924316840646113991212224894299280595109203964882126608465162299532433345468117355873214868094409942660362487427454133078194354214263799428994464626006700599473336383895719380513601836506855941873099878741607903401321400436636853749256094425035163867099932037744765218057905590913873662317818785354628954205320587377267265434204871420018198250498165955251984149643613547035708328204971068974524555648793385075859159418465376780327904415739917151930994598670898745656283723728583991228052991660569900739903426103807303234030264877027451841174184686057681726125139456284516236600666032416899546794054082398122383565989722794537367880097064374763929228757960162844276958557210101145516396703458865599563557796940925687611821322568136922469493320969188880615846515740241100274818730004204962595743190682327465579054788137287154934904198405304291557393423565893591214924322110297980637754703571017133700544025606010136246950503510871753198620245967353322631108804720719567801360887254880571416048635821470760542711290854874379169860193494264439331231527164584696450711471110549332166304825975465127284326864815832540359853041597721378524901043844012169437719187481831313120940444949471536442855476210603408719963906037461078982804917518897895237723270923957581652593563316336482783985603263553655238998396531572783546593520625034567575693343659292921062912929126341800190504902623777296195593181023456604554962620745199182661289722196372124273572584467889147243401220452425348941369898598487869825500797885652536945945788187581668991824408535992305656454656701309058826529935484724102081275630821193362939350805960787251066752519656652434502411669075024498427517666907224764360306024097037437009602081281400846012792958818489190768160947208334996129669932581258252004045847173817542229319647522908683896509722305298277543191571542224531731445961563963485545923935325944996146178496387781045306082602473872726157906088684847783912512933552907755565463090074513233641274710763637646474624020966733420944044686953400087139314824071452651919993950382393530782895290236952105084526881499766725050271888492879287933235099652647682697646260702826199342084783275911549868891416037006756632611675014925952947095886055852333376918781908499015744977730164661003653012327958392849796428515731170440918708240193813698923216692656851764417511928330665079240205838957523605563817179842624463700703027774650169927065715293505832201654257809408239085518660992284508499286953942686280823657475495628150956934684154920756552378541849995819482668406295793222205777785981189223129034958109926053810925632283676325566731587116849982179375937672723466989020788851604732668784083997190313451739534092712827695759233080240787342039321962180160623555187354837427916697849334275681970305930454007397211690140176683091920909573645942847129448685516162698372313184247130115719161708076980717732587149364150989420870538241331656106818910255481068662876973857978653711300917237597372887936347405954694053816581776728233620300044870898513874902166975518014928321862630343289338924541167278286986026556372840360386588346804053024808758182072397277942276489475791726199313556431458459291421254809010807450386825811083105609167394894596255909800432768510413251972017556181562797002659238784387266819138765802942482330610446283882367520651280423530116259434203018244606522796197220656850504452846461745491911829153192692909664669319973781409369526474267841333877000731855694434904806434446425214505043564604447156799626237996651665559888247619894490654283078923825909720430784593930164279377036073041325394976930050485264820311988690253158184155508415611837557896563097370388837952747883336108729188603530837029849003900918504446161281299003637293223333603121611694993586378287513483782976613397985458048906059441447151178038405856343244049029991556389042245723418947532012686824650023346025608871550287341935175127163297010696646052818038049767185793307111166261909980077208431558743807229852381423472862693734280901606516991418543440819543621590118048673143313638327328106291420733167005052297147122781209700660692574454295364162931333087885792841807496932663749336748407755980929597617190999029759379818782766632007683396154046695957537547400568953545269908409409338585607943035544988929292040554108326259701852318168568347028752763347169329947261927327680816038248888096253544629642306182197223528492712020381046657929463754138701289433623309312829679915930711594653654184149819963703968800878274984013044208152717860960943153574861833041191160031155284453693704693259641476069626521335900184250090095289673828122166946730273942856880370865463968966039867614191597819903010072413177140092669143619585357739212665225885536730805745752577429283217714304422168159179837055573032503051795176989293064875165308407561799788122849456381857496056251329299129978651415751878716396414968557075097719903277760430647735629381094899258850928119730649904597939462305501827724334984869260150289009367384079864661056560667601564716264126756177950074909111734138921712166000160884774968869913681282377922400172664970550352322612657196832010555261759054643554583763175295053390211989968455133518339122258985478353533154805362121206948682901431095597871985412970684167943211285273773940222726705036865133696213992442360041419109266058915037729596967495489731982979609263477866165532718905290939827666734372012889485136121968061073269209208563203727263629226586155223884052417211580741436518206205800841815149182198755941677449575169358126559072892439528085652551146352975700707440682569350289522086026163657030454683361579616208605434907966092269064137844891571839374764717254431878294369173506864022910886503077345584669020986289399743909845612323082415316882001199660921783005409674503101054658894745171341115956930807934807824023463607967083754940225435673643167300407191310876341665137034132770023406064768848383732425785760382239887733337350610045182102009593041231698082464879012607462494946841618558322345737761127254484102312804813792125269303111656020015730767726608783919990466749950008513629156751028731057241059543574504895712921017228222110109079948100149594239259317252185468082773636271468904996820063964641298605177266764817291667013138701251160227829293135498912865171210630433698710510083756937484434512295014231216088471592584360185199442850115039614319389716527812426824508053650028669892237875698341952983088754407762434048237086780955175554639914253768666057065944395184411239271345595095735267474809400696517484227659531135760701484704830862355813301277315990537232386766801289801129412071409624913823997668515354181464042899433109883868056557932248840458496424180930109937537301820190979589130881918049576651045039093476325056967819765032435900698292995058990396001476793748019427078502079374936330866882863199835227350383204019679244462600417864776749692863074580635207926287534073648510186487208015222976810121226776588859515564135217352038213039224292440811779406429243207408343441401021226267665716828644575599886389832691506738800516124712852944541663959513708089614346081554103111122716425016835201196385920836100771132339831666048507770420310969479406260647104305206218324371378260407839817992783660836682044681785211418272784171050607482518315792286316114315521322947560595867692119732214765625888422532570049865265391589429763050668193019679008048845256520717328639062282062539750131238346853645765878248204337696731364324245405788161572373890816320542076541184410002327548175872944373677809546106513922664164959627608485515212220524382923553550821119059391259564654255954504113924594050984235773083333662916018183627485986529852252954350810763816019945157761899198092410177576174716408520075211824272569439337980974986950702322095629266155737368008605029743301241465424518364002761187732259254548834004883615545397427886220384945631881791225073551557595374920795356773411448975360577406374373813961483825019973329266942912527309543870083201449057045971444713686472922253074363830262087644852304560494607744725311485786621533029377990135826677324736841094704544169166305645900778328208700751901202134402815448673973532705203148845102527454718512777403947705580348980807776283860515162857209075314270676436346465908150509482388980339258787439569870339250123940906305064522043524157647562580457243204465679861334082128158195370792284451193497794452451772636525102299532494454039048156878789642232451327103695491782140801107488294103350268409319640598372751445877357539984461145413618039178840159665165804514156267300102022932278809083257987972413026992709803623515205656435363973464605241187146326505996463241017646829443075555667208354350204965170921342330392235633493491097918133473496330557332672006959424153066926493383138050209712030174367688926692801857841126055481605988280879760673266362495193261985547212728916687571583906051941278028445673473295980622630675950997178430429847437259717301075953951034650396981303507865356253896365350411311627826610631997342631197554771749302744808957007141876945153405103784046357699395812763415530237974485265454044789599207392444213363749992839455448505714074208970287444181648456535926417076772041653339442596842895267573136109823761432455608579774056116886499896293400046944573061840533878011904160091743380288792285499031928446072374796318724137797303205010399057263435060701749502399833658791810033858953783907328747788447158566512060365250248698763458963769109387404956586171457259081463631503275516149296572994039528760773202662587234955932969990808245661070427783302478798635613267561350483664183666436038563671301884526876380355586165722458490572171026604062280370750804123579788020215280692460243380775876533601291984425368734898066128772765376828486668434676430866110952689284799411397101274561961184777285219057122433302052092929638545342142999539490965671643813363948977444464590938501066222827547942387662920014196702613238771663002634536375900307813646168324161513538152335677210553347361277035724283410696920727529132338994411931506288986951807015144390246529995226123262407856309633355464912512814841119601799357344108751389916982216983857735259937716700159545226861926497272719589955579990618941959978416558558229193658114319198559513346030002520395439354384889985500872686163739709773696100657402502548015919891221535840497071594827821242121415671621647260062512403970605179247164476958441510531996271078388568496122593537414150521099920760959616943285043260186985377261225546415860070457625101731056140449864614180762715262911627040988624567958603158348952971129188086333164655493295645468535870220452279819893708962731260466938908531362226759423182582622873238407335531366670613536234987447475270158360880804091396026961580294500287822025755329363005727917998403936319865362647072498034689146080654550632958588411285318566562864236312818602623857306201656767698430428776098418948576191000423264982834039395865746320279280565851035824772896711306328003653777288943392158529066429400750668828755708392149251823659530215693711065259264001203285310026137079022174344183903218848007309943858554227385118537470262368664011592676782303879005578602279101302083987025218196005021043799042512408224086274693139642929346119096979690492500642976548974479535939556221152614572678730171195044030908692980029179468471334652706054473786047055732563415035164923739464148626292190838387054748386647863338125699053135963595247036381472513907576782019464859273015828875263986603075810078252369786336744381248370529986256047506352715504928569340182646429662454198993533886363775455185878048198428402999529647050459238577132864397195398264775314419648475705491089910105466138973518756161339307817881421163092315949323289816225290009240186367368521873825346313581979610724035871205099693196847643924953473989301272555756655156226634068707514589858782316199474080090728546070835361321337396191009597761705868141059778034957350319055325062391689180508076759046984098896521756441768193923814215438506094901565117069308419146861711513542732015866855572987595010232069760264096329982637325401299639815576872517046850819614396882832336378703499366661417823679357230779646123200772540732829391769408997578658312767789761562379596705500452866833118877580708544107370325335686267839198276244697402330411556383138368295599015690322876927977475474032133545634185743141116055269122018011815468277473584193036467158085136312726934619651054076980606741790263454082170752583071626701526283493387152697571637529287012137257239682723577762252097698383405722387091726151894451899054188673535784534637932299355984630497744574432576597005864165392196151451967199527922773515813242346017351652685949269559406024272121213825693291730123968813817289403704078748617345094991630100029558670771608140331876891435462165209425642414103931564133074544400471864458621619421945237146992813483456415467135260888940900081670752320604239063894233682739677748474676679795320423874189915713335395611545254705230789399111257900860792627416569226449140149974226530071333715205425969538030894397430537741415876930345508060802372053304348439550635827764772346563512669315519745435537082119033471266252776507501112354747248006439583189304375866577927694952737635792660629870028331755132281914278952936903064457419906831165645560533244053426082491353064959337883659860782634210001627757170607566789810555162787043567724337070807590234808997023679461937903778854011346048120621126771604573552147828606533290075113409454967504327634085328007755075871830776897981119769015360449051251742419091332158609539944065744694939895419267909378755612074972096616682201962078665658696516919198545004209623558659713927644824876907252562502202353641616051194878303006575749424753846314741820814758933281997960785081166734248005296193016801990211733468234194098317649697339005625573166631387262736739819331418783383865819733335357823612021085934348368899786253821458302018256594902279702389713483728354681113301151153101982832453430328199759424299820124724482913733505287950265406021928362362534017833279984524519628222739763843888271353850990612924655748365281888586541142226279568819282708772157747071372138137389710195145853305711974297633354568370742420415238802699874985937052085308464148902313799288825765145243016046069968162991410758093837039443184618372258331392323725540297689711012478320650035358386239611943690767377587021085008123146704962105589821935609799752818641270749853863448746171802003302931893194767924239573690033881490166377270048723943207187053608786994269609088437936685431838970217946608837035973004794025650639861030241952561341770938678731822409068595436582625787727153934306226861608599471879592595658354870537381950392901976949980243031542018380062542226051007606641910296826964363170064971746441759282127071104440203298530691157377673310559249820073724396355593854907661685052676661790881013775292917272519642568369632514765579761253262773085710978637021398341549397257485210934838635774922771457929679133670523632826194882045025921708075498378313988698928026747552269400355624944052147671488330932938904882074168511423517633153177244354756698732937006040793573525787865475134241041420127550645279602859232242389853119761130732903418493167534026965689227319706164788477572391645704843779214125919864377921303545983587030379651218447245132541019994856428977607364105003217967777310057579999544151004044945284655484323641579022771363417355772858903136603496805442231330988965182211439054226813197078600923523603225827023293698633976431322928224645984543225124842487986495405991635130255568811439037716869183544312768961605268959216408056853891542175989095497992553771494405627794525063397399106745408600562543848391407069732072103951219224416476221472643738109646736637850659391502845539291568401585575080595510571028107360962902289890504161297867124268443143331485261626066074719145001644646537614827041197680072758967772858249050920853869120321606701557312980210956765848582031958895631624421755381724497134806170682260680358534585810198117457333423538014480019013044144973219872448503358949814280452435456972794763928608383502171585051928479031738174844015441225992258803578381527428066973054468361630258233531930531978718666569870529241584456617595186250826031708784531309333493059524677684808909259874738697000138303194393117421002027445386895219987896063624298351258249126542432073224429186781486657365892211391724088572022015598700423182991153160456128321435511730622055080870287124926609630247299824312457891141291033744476403642318360527536661440253069411681932194913227108883426796744572296630509881454686467208293785512081458256823710485177203387308835073586906650962440511986310506153547645169905064606430487458844805342068699782581716510697659390399057724535587335711253484610967058894961177692788326359470411600894194149186657802549882006654502000310080159611261076125898651644139233223788184067264731130830658588860533685791304978524329382635180914206105686289432113244808071243852837306933460159516185288282410746079900799533006909333263248623630318219594292919009325540224973511998079785669927472078282062403899296568264630932989661003653304939722883760961990054269541343266509249251004241248954509807359373687916799308706625994095560550589549340646573621588328367768940866380810286514105016045615861378584766145234795873772747310226448329485507260791486188569999998420508376109521353696781940306711746163773918375273056769411987055938813499917889010997596082740133655907540599784122329889033291165866574056612230990434555933885636573558999359277493154550504731466468194399486269174876122982622623349022228542903278082536462039317819474349419012170843759917029374632408626037470460885333735471169486306811211393867589244779248562939951131783858921670618798628050112389113370508509379170386763206041007844603418245092851548210557234070728324180451382103723156371644656078277081716555905372109982829803579236935206953920092953335888340898432123269235285580235591803398530695637085283765079624663843760956473059252006864963863644577252893550013070531284229389418771339457504350325561777929739967940313598668700795149818847840193283875506562402091028715616313107784886850162821883925965779382296165937911778272767305528815408474668058800582376295693592628960453865567368495343972713935020501006085803446650402933840343339679492658663330988592403090942109994222748598678210417663836838659964949659091255949423185545017294992022028245744444819797121075664673106820114250773143276548711434188968819033620862902054918939779519060380312437346602158562046413949464604563629176855910202143138327904458705456446356135262143298221802497767607793379834112136261061438618883498049261430373314904690065168051730180335111689610826473505503763894269934961567554677329017580095025765953643513174493876316043258742433432098191570457926107107295687692695881823153281824619374221639184218853137539066345016805725679316231544848280228180922264109506023177672799771302156891247315582351495223846968757716100265385156352595030660400908477190476624044111380643613616213962225916710087029542848641132563427067577280342665634150116790166596366556366276363746998698795779477248835206282812032764512702191802432045699487607653972205174787585859831989073700503628909755260566951870223572079153916358054870670086769266028500779668467120661075210241547187119300355942940481508192327537082298413504018568067408431013207970885107471697966166548327112762719751726145117754510184698738823466655428000450141966201937062742637927650705244671097240552179938382573617780958355216864178118625385762181184180020068957215792993262118161085387355737331946706306939290163029330753705834079724459225748959560052707783835657499380637564206980155054943632657064384481757305992736050158407338175561106063904054825709062441158151862390914438931347297055986634885699328133696966637656522083194780949616678188416929302025638343561030981162705176750156356244149797578020979953473666952289854137321386318791760413644730795009376904650025362653337454087009099849632449518838493522302090193245600400767626371308725180030688381816735880635538262273620931866904277300710766247096843256847872281446048961467068052565361869112206760007605377859881936705988768016924655172314480586260391314872307702888720048405616606661453627150458396682233778229674762962594491363341992163475937371015914222738936197219617697294934735514589238825276393838648792436725949497332930130129367770958949764000708640572394512446228788283748652197381419950070513113398519609644289588712295199010449972979685475946041780653193333275154766873724263574421438190816290604605962988890986279207219801032321752413509626613129122929744362168029401061030419424806519380065764466708849141967410557330545088382078509753387806760652264363439868505254989611412202781950384631260190567440432903048790787233906934872749300870900635874195891874176427454334415966163347858736187757329133226549688954823827941003197916583040375887584632559728832019398200409173322930966455995832211724426175638478283274726120498424120362651886299565238250195325456690014476216095196044082358837112792277857084068370968859164258962737334268195144985236140432269437748508393328148700949203571118130198457695423438548922960789920288873589983932139428318009581646380905756788259349712817037585918178567600670180003935330876205667908080929750040462179613245123888920629976226735016051456797635949540665787968357280494658262435262040127429803777586469234068472856473591092841260872186534802901614352140813038822375529302928553799267806037395524220213192298292466618125703457802523947425231239994192703361423217520558531157899863716758604339165833662250670694804746448240213571693826178291966455703328072621513732023275913965713713316175889585746610327577958170646237716130836978442500857747300281196872634066285209211584166558391364301533837919129251158572110082490704169446989270913731243998006902886967868667700752063709416009226211467630101512797961413198023957869613453666367848173683361603093246869835233474875000497956662654081189771462466201705069058358359856937654948168357072423698039438307134346217563211144182507922749919414435690819962823316918984926061884878284916584417385381481842740277750620315908628463793600797238817679551667900199356063923097670602589281138756328217747149866085767424661188402779242086309887415378637273093115572411962805416424688349465357601898245111085046192515288331748265778426445364558132608983063253100203149684231422009099219542043801605786715166793449121521552267921388498491401742591077540702594550104875663641582177016399358487373403841795993487665426062600320012240603556454664256973084787437315210197478692736912341253925201723550465165906762071063381751424143750367498414810737243866849627952292290565508926335275609312301570513180418116846030103822674006070769475105048424989501062190615070054292770648838083127016159359554843182698938671151031736563518820476121693974792188247910907417078862639220855385303633017337495608443919915981666328647715553135001580657126275433876948620205082784879686791621961864139126501824343378682346931046950479723017747980937210669603783704831905856884800118716186236279615218178861615381221771360013560351407310032229790345904561326519684099420846786321493657154679843467793275175316362640987769201957941277573363020205077333401608460168337641948015981464500449316850349892702021765128684400377141047942565576155460785621398873365116953206465599285426558859388002003576299960179799244025624386785202562131413796703253199792270136439505850848597255569045358387242965074314862707971391806339567293873891462458456948331821184763066543161075149128896629009262861978915462921811817485678260370372378558969509516742206455018729993628625110737729806334321195909437104483329698037895650419540126655246055082420540881680755214383614163533294213201306546487860569684125344435139213772024185012850042451211266858591301931855730926692323873510156597720946547808202997729276908531924956038727959496995640410692295971211815726734552877357593421372356696480568674445567076269775432463623062609436413687138619387171476404453043811409078457426535937942396410825292241530434941541467587154765227261507004999814028311937665175089711291304683256066155302373005689633646328989199806185808840838390577109592786508636264898861260040494803875350468964296335429913494774781709533132802762246987332609250971316330421417498516118829843585059638521851154867365738029839499312790392863204736093941340047634504978017965944840321406382534096096010025648652980571688245974383144273116806315350737286494606127939922376636492378092357466435388661562355718901126314007695516760015482632988397347248486333508661212522783745511300496363637028854701605291053237271840160790092438977598741143339616515135781842997800700181454067318805808898636389542754565160624731057824388940109542999172626094554371464727312259316502604535625347465798026265634507817573277942323983927088580091183982653394495115767775416130810200762119974959260883364140249211410506168949706606146087668222226259196388770583522720189003875014668649873855365244387188741595112283592375965957866560661938957232931114472229062204341043959253711263883529188942864626775300385547707863027372236170468529703293629316998296656375513040204318621836866891005922848057178829692682621644349160564333665221052152295718551173064778816184430875888754896785531835828490733086595217260528177377007920441704391302781987457233795310525910069542115367876377010516872052910319379177571734015236133412981614782343836957498881361550294348667134830517431711888570168982961801907341797391492768226673230125088718681013732436428904250954996495896514847637149632908106228813883139529226243647820511483258890425230935863957699894062924070398012392581819284233384428617039469932625356093554625832480307128651537222555826630382768027986577512826203416398778143798207310897032206394295759193686015284221311932853725275945318434184962587911019395556742800679808219192586893612981832737850019036877243967615128986081586457531690154736072170105939580929687100006627229608115922357175152879982132284093664378620447775870581163112127955919007574594152628755468427484267285148792930184015243616923929509348505810525176860965021947694280079455885469599152591181475064802725834945024620915061817051614361268775716401607813639857697113397881487085386604945193551785048207827569958050353175245572374548435352753158922855292033770148568192756845799813715760679077487813593347614021208671234313148896278034303142127878154866139734031167326308245900308414460369540918531391382099281141488586004042984869540891783176889804843005785065897754844614407858616767013128035904865530562384343494003308995888306085912789273049432582569300612644628285387396949027885391908502199763094998335963335614769287825934042932059854368286761012870908618041153897156357134823824986679764995097151717103503549810502013094027650565402311328720798913674589965629264993578841551420686886998539378060597391074013184040570464562559213334226265112809551795760128551686272726255815121554118838572067827091158541761856297898029681346894006068021983802419035163004423872947533826887194361613776831919607140411896627856880003130149980999723524219300852405089023930244431455127052791849629013373905480304793429133140090753387484705311830778248340554996970929746783305562495751064989120006344244775637493086299703141272723954682640698377378336958852023971139729639747212561778545359037088985680982389802551412227639401251759674755611185580176480900503434955940758808764788544692429351903119835254733678096146910931413141791886606280158942555969168424011884794750940780688769425796726753604473778221985077679629601610649732785890879494926620815887472861244092107085298488496311895756061689067460876069815952334938952770001771485816801120344601185056769344632096258300231457756714535886867989454605022921034001825959539934822404245293515572644917097345876155576335890386643131491171982604145902035291354666164188260909488200996227928814390113974014914033325377359560534120344598360011899249700640121710791770882383854169845326657077570139398338828453477389618241371636774495178488774817511571709136357434499562249661619623964147598798408516490081807926774617373841222165763883386072676135446605559271651859418621768317739096407535600559384879089578786115000184461654283718434605297067624966965905938294193777115558969864119928417064714000630658806693389433752664156125517068808333967282188500977167110233962823897259665924575233439996079456286033148978307269235362589127592721472230615163073463282306038329693514727158107310840016138008764887228660010334553140511932741898906569342871157469556984420070630584979574656721237201780495715411629136404718075109940790991075727267544826193133667272841902795661668561033817647399689206515631951618566691269596369016977654937204740056092813922041369758805345037330466374307586887357552505305050221540232755020762260025398165981628118817473972289893878237759310154001731805377355905580187669859043701958568443483801904030134954815425815708967268007800120524870907399896920700975192483178489006714753680007218812334408255859674259558690336928773559161305369237195906967727673745476453174867038104500946492583784478050433769844949332528217074419425562241975283844076624779760884365462120074852050056818876397447729435241377315711724265582337396679539777015806745890606515191234221940041956989051337878802832746326882101584628330084672339198990020256848702038498484526857677557665699678941061422825449142565182688731521205892574858028754506586280603673618089038497284574364900353305593440461681463981194672441887221461141010163099410241877007071132848652347577359844195961578598010620874198194014467705341104848782923090210904176860992677983157091417297423832670842891389105584619714837482965948061925816382795909850418445348234166632298050767722394731177382671740738151865054697879471130096507368175505232377503946703797901814506189186968600140602262390380696172630004084213935631006821864454820348274803654563649251043146985010778285917069621151260100742207941744096580115254733406518239499566483824090542185213367203639817250322220546031592428151821461836416546583072034700748522921033876792631044702503612754501884392570565208527042376923174144402836633566364552684891891964381720551660265913770597348552611974241067231660653426721205099086738975622768246986544549132537881557190429677133028032902119030938722221175750404636360818513074849025551949955061538886790076482526798110712922855141525044904178017819802248564476663974924716250077390305174594893831040581769147098775265691708163271703828100968007843311609247095564107680659940144362717887239572322238926870767614522046595650215972912634586781449448585306015151238605447526800549508490039162239059010267693378911407629539530724939926192328852536500421906867086077304509577548998791929654570367245071072181038145630230480680653536439365642531581080655372101172419854790523229488592384015776012570577448769383352661471774806059299852683254150990363634985667229521790408932120547987054380694145354347566022258439167823114598874016522994708058114616004807443786857850808470136990447169667665765211277921279540139271532519708799562204234513487631485897977700446084090676041749757557631593099851666243775215330305069839932733090340616307483312546982863111657563108475703325223183175555540971948108252437240626674376453321200025258867987192340872047234363043747277669932085682132691891620881862569392818768726419370786267885757192958615305464603782252159113379595893076775955652511826908154067023187444117280136409874002208835207385374780054174955874376088819975317778329152777371802678732452051676175280917759115195957190443399120905641000366463132222051245197654738695421836254170835662655031607120178356991481921823982482980123743425467042431255778374788249062626246539383756131874127767015053893910607049388215151639667179958538072552854182323713547313607067343103296560824815141572682658578970931238861688211153424308169184517939900020369113702439110017740807174068659124033714013019543646832151711652985208534932943309334921911221136333113575753354614908052310084626440652027211922693673668623069204974017052664458154340829938568249349163945652459743477827118723536597336014362291648361358729480406702153595942641050498761706424700159677618482460225993258090708655667428921256589437508464563821281706840183962405012837311309622602852854489689954009085675698908104500532077773851425728529028623564745418499361208088034993445050234756672787241516186317504143524197658788830869642683618368728911153568093098224882397592507426717710705753792284451367478437659615074427023621843055840959119757212165202857210547672515995204950947052040353106833899399866318992940710490337644775041916066013883236449630023249915638386884349376428856886642165128815961495939739794154104788130947410186979011549687351005453527921755386148208737334608322191514356101988186224025758310708253514734160422092492548552803765512686603376747299600644013857523078168990244033159075917888015395501053640295561483839233014510077551667340743993848223949493403164519215480742733993271691278986585408884030481606178030625781080509550421082988335795880238668423227035167078080346530243434358603911030383945835030638369813806341913637755881423222609268266793526040279492282041355270967547920097257806829219883166262781411981230154609264692643788220166411215353335120166959003098019538348484603172713697307568402318535686697300143959522536965069983206990015894014757721041329127153888397568776906990126908564716530597709749673833730693262664016802213636922337406443059648691940604976906892135036601840890351565073605146591251528502503711408864846788669189063172841511902398716457585917838011416522300891907997984787530951794224613432392401246426781449571943267909668439045047993083082230677394586841548475135746109753653693222065049887088357982512928711063437463823674033676776231416706251823183051704412974073177085276441760604970991395448613610639782023868370860575647966727929615940500237415721533809849411881855774748122478422630150010720506232249278928478778768817913014807764998395054696559274896392301685667376858184574424744134387533053717224593037258343939149404028810615600752121444609019642809304141520644770664815156900387871470127333228733914927805158966522226400851547927208064695913991421964815754674480507884546845651411250643806848996628004602283860539109767583972255252862766884561650392647988679742071994856557314135421206909631521098243586424842337511791400270542383427612870815247791326630576423045153482670529336411224189268112458687554440079153664074087256001482601175196110180128031165352427480230467397600697291339481437603233334112851731581812909833130686896683167608222031574577463383762134729310103414813565368602307391189746524062801712254715074621818605324334700765218027129531198226056274046630369053229982782602794291186961081147002631132727680495470377125332036799384643376379606924390157334729539735170571829597240490537862944684890694363472365849470240732574045218241099851697278799105446868392758692946822187929567405128175492461299189636632504828648079035679259540318178739393633993739958741037408368296276713332135204750792435359833817247897895730319201717006360211468657513739028180974313005469100579681629661585692418150531880712303972634502516486963591030987525628921282660376895734100756893914052896097463619546812380820061955822866764951348998606594582401440252595369877621978633049689389099231676324428113585412994774802632225598107071210088999407884047676268460354775985540034590618240833207326214342335181307815038723034257036006505909606026863526766445441388223357721779896283813377362721678503531345537513634245886608325992039898221406767091629434249530054899321910594285041617550913022994137639503935877925889722480682065788188280213605986537375552167486101704996913262202358927567988640554806863400313787500055490198418159186881947424521926608849552935479338368788334210531351335770306938037218691635805378056573228802529781515805375612131220558055541865374734724203042811988551637496961202455761627184825856371449288064475623387444993372270327085119914994791129171071512932204838527989556242831097929453477833279126469530262373478952312853283514800477875576477561091905504219319818444315219739743518283600471705905985399972604571775813915109529314080444096380100641493999718522198822728270170258949892886136654173898331821109206806874208523835731192440577715777137034134100391195334481287658424710908742899551631668158316805028606196278501877092438816114491464536453368478263189582114251759247393629573128942938677930189211239257430943880363399268793669261795849547758868186449193681027594052848530722315849887518749079579267248838565130877151467065431198164326505402690987506458585256432379188295961974414942854243656016649541936703604116790572587521991086948328147245549896756776408483952602763654792313980293353580235486893301409381813195037857096472005595923514624768863341045524805634292676330151780633040981217784055500846501544694333443573341424663858476824645330820325345159895206945075722738061909922753666142650216424787190042222292995275749051350562174972973204623524896216878823001582897572151547511912885318148822338643335853058026363802820421798645021382147038036441582937020867913772104038813454719718631887314794459915487083460106447409494171206013030053345297495914189294661250686543036654139042694787083976595160500594543631463955821215047981838650399113691613296365575054754707963745127208446849457905120405297390269973825216950476370049666575991201201300713986344108273513624330772960217261140558914284585871158679540300637887299381577876474599142130334343242768479838000094299570468709591039453760040833404445195342560393627699855318242075839320707291075659235394220735584694279548478538952586638724841380698270465176364938880124367014186761570854347171460202228873741539338340819790985066461154778874989666349702760592820572486470897247497416950226511475560755839931032481737214981835792178102747819006647149068639436809199308708575600552395300299532704835584077214271600634107942786605225434987979683890934505867655403817966139921660379645813839274678149642771204369131028503891278320729018372451494778498468998890925734511324808305190727065236619067549135274525969675211439139400174436121967856089275842272653997934452487185385849756523979207505984576954596739638441070755779852352737970517402659992916973847944257388357972366042601928026132705836242170258378073962038656017178863672043887518561719130392610895798927082823571207298182489519271199421711804581007021468234582320705171723464967217626094641253571657927423207780338369133504404814516552177639385564285653354458516941205878466473537753284247248403778718280229319756425754581480028965276678112637981953639357410322847079171606464580053421337970743341812138390105817708523580028563414588757025815619385613565161593941740917862684316105076435663368180575915877062852156859953205308299699908608328314548031085267547471114796025036653861053630853515993553474172060635316296826941644480112837284415350178824583464370260519441308189965907324138428999535665593585971703964444794198143665723321119661566729506131315730990794315365867524297478707209284549176494182213846160492631137295832166232295307771744529849897035736952321156121603713402522276426552108473673055162762542957239680889546436371929194227450236295241051702552770877568561511524023257778660019930471433349834866187565427399393735362272443331732715003848635988453971349478544226178792946248645699564987626313942747765909682396460959356612172598644070185267086868706472812779232875206561361693631812498917032879218439694310015096405085698723664893125269349399522182680305649354129904975663510908794434370555890010309596395853652859183859526853620447099817668468932072194179014534164018786955121395952602275884367415594261468799488321342165735714864170107057859378637422879060559620408201142024178278830856934378749348667211464383069465247705002924871044018498139829513916956967868900427125559031186252634216726361695978153097215014825545529558139652880414427744794597757924465093393896605028931059671645088400763185063296098572006593201211657422744125034803191711649188513018483756433038009614347769659700103533779834126865473207343742552816777150176907192467194592428035786119630634677137783650234342593854565555621958601403912742513302697121888455035497098130131107393481511081876981102372409354853713904584494997347644940606603874246711450274915324721733659200533436972748565136505862822743268969130285599708865278510197096637337893342937013148322653279525843033028096600959872071756775201044927976194774989042403761620215543523174739085205460155284473179828824719466927350280887814892029769221949728060546605075807960981973395833515200456353713187192805223666395727644346445799917721987114675671589651184485878254526771943105072402335134038184820521241228643676876401602757251299856548577301266782814165622751174863322639905809431825697683424643351117555333157186564112630447682833298251262620508348576405345624421053559765678901689612219781816382336265486818246292772388645543053955576459019429444794298386048349059793827157871822587196796731099643363278389503830281667218546218242626847613711181898299716474846519192375283897483983293146853752066587430374047454153561162666813174873876083887022632484243438622983644878805620710101946952207628425893731550873836414594190252719505905901856802847048000164723431571991926115197755812477694778645198658470196028534579958907610897150245355273437062003174491258149527061040899351014349304057025334899535690081306564888302196961357233678057972143912705014417275107108676074230404278910344546514018251119677074527876345129455949363330835545777151545716450844580630000191719621667583299844052916651337677008060429625137405152341669170401422025363463729910474690318386370068785673058260203770652461362282218633101664201077031129489947570551787699225525130001264693791999506259989505256376693647196350232286753172846512463530669733033753362071684274288976043940342492521765250083712961865550194892107543831282785623905359350453314529140204056743292955862647571770206509350256954683432692188878195201479348336057485009545951378724347245662276158041901395020715608616760332922741321910348633566909492541268892931940271912630434368215450512171461899269353001037540075565794714106599850544046568211081909061108099594139873367288769311564384380896671142823561401844984748008264436044840208044774997572020951693400854279472011736861081515620143158560463920071160562659680260462472064772367708866798824230419900047036050070335805396261878777559082834914540884964206890952463501266508281425789149904310914281986071382212578893231068059244119427476374385251028790076326849395760271122639181735166047204497690553031686890769291432521528743793613655012769065712727630935355817931851761767452230252850084575321957445661955098405438218860503475762576551542908881094530558612161945246115996281432403502725006082254299810252822257823530577980474827121014753692590673074879996049334545437756002107431054341865325594144643968304996789732175374011558926243340125830691487995068379205081644087477992243888016224243864583832187924351770693674825377676988930338719016237081088286445222447762280644067247704773544461104089678712832728217790929781845450875381276364206213029099524251519564252392861764002231850614297069492897392471353395011821355208252840124103579364591882155768290841431172749343316733107061383116716651340276854371380321882062640153505540217742102215021623627220222491009249950982380836138645045784170635490205632147750252822504078770939310580574718888864344371180653846693834142796456759573352159205722149838519643301409360681654096044862479592724834528133688194256634303057634676599148170845211038868145788406991778749869621896655650375119313360060031826680823087538655286105525350909044855473475186416146872103932564499213869050291532391902739524768375280380973208484426461815267738807791486016028152958291113488826233353586633781773789016829625355071610237892429691402424287545626975506085979244923404558151793211630889062185583422019112510731669579897127802266522514733763405335209954646315682081058774617151912915223575329290269402439713992973679230893232454895717828969155913899591349422900968692032171195654495889156593044898990762781659346139437410890876922359018784685824808727649302266825904523672501121961326109913257120256982272418419763115238527025205890016917980220886528552506291919228666874400334000876460472483896544443453442968650461339908659904042799119137870877106103452679968899599411902028349292550988595929604035293379596685089257425404535952597380548285731418185464938510542244578019148676747008262105010235774162697703131586900226680110939190138048626505723483950690729583476650168292984453954341728099145758848368773622954615514500335584637632495122613544561616454498861313227519999681386177034968581489123028045943651917617636553027287273487355944045166763099569631273054847764904666255807879628395534554070745411732316472516499109461819832695926846718055005632684605955822987575673948937140848380083988187365724039452309776000384854437177907858281271291407175531767177033536438398284164485623877572370712905918923409912526698274849749742817731762897230941011499120034845312409659999463144779654407044839522089452097524988383308348348770773656171659903651334213190348567940630576854905519817838388858557194283712927531038900600992941136965458636831431615978337651354809376887746452290062999560538824580461195347931394041613710281829908430027791199614285710713660556806681787171024008684857205435744941932530509853862297979517974817722374734688825277581609464093504209988101714829741752610192343674517231548281702893977366820784591275066357514915023680432593242527672952480498757470922022032932757407590739079252745026643794911216741650908749419345104576367257444106454739095986438841274638824242986833158143516752701340360890476738776444602722712508223078671410085826400285048292515080695834436258522540490569013223059157083060166359850873561551384518252044193753495570720120975692492486822109021345942401626472333516657687096675394132840476862918886623193073329289180433985058224112298992781481160249339366841338551983281708687895889463195592225994813160605256799065184601020072221280936225650362649448939023925333976239482549127955283192813119742189508819287085525311158518900831539705411056424503124126711670602879803488491675702104246502306608583292861251134583856095442305990348341445493997020127765104640741897435934194286033617387358862846200686688499465915038523374086377523549693218012630382404566229443674527266427555980253494542118521304478857474792160153698793361050677837495850659305501720118242080207093351945034165364398474459764266476888240643498506028210148307745691969766570436205857113621105987131476264542117581284207936901032981183967185543606521155626473329835165418980348506461259251582909440819723761093317434927520324748685879201216069559392390410451383049555347211685889609821839267526469807554674515763734148866913101500801770999513445509825467155063346925711822798953761581908114911458200334213700943185484784512653965726804445064592582500873985055968162903187560516812580356182847380134477170438955089692927409520162766676501565658921636441339095359330082129080264578960121132365047165579330184929324655316887635307583689923363874671989680911263529316968952890632010561182351074947682595311326414208917291173103180273861338899717657816852976640306101204572770599244126600718118294410736228329501880326465944044943134926980700049906182456475430894921736536269312687825131446883507365789458784070699127655179441421118774548831656709616506815503845026939249472507996069291462170461392190562098075358739791769271809889355322604741646521020500543816571118234708596698742814373519408960956370778386393694809430878008597001049965746761423763828679712086721804311742136769710637866761090307465135607449568992666895110064155017095294672602954648350516218935426085489857786897415409757598597330721982515202398641526359115070743672926117117185677640371157427062729218993969971340626892500017099008810572618287390146842587807892484125237268962164736133916593526274647317730806835188025996717438152172674182402563159122984662504694208611105080810338111396642875419969509850121460443675042510004785992958140370778978440692264504437089797539979538517547289968759882601194428015425094325291427199453409968857932317380800602374010559143698167791376438750517302671019695759350601316214062077781579938684391068935378682737450822937399199876980149595694864480834596591099981512844151415209226676704767480132340461415560679036512618901814815628548491542173113425094204851961121157252125878277501151792403461644120424921974136591459529096565753689150753655421026786585155011252626331978829749976070022819572654739114002095163931916199846222802149957538776144439372082098686064071218003771198936775470093093643200989544342434575560324318336942450324610682647684473803498402636919595251460641198684933976855748514277351746734918551920437126185827715367610320172581727741987628582202674348227248972880516231458590437366601354428205354141118578645898190449936838459001597462834484078037698482261083047067026640775609613973958450910729731541607249768941091798627368294677176763249850103888909085145490238537174143456621212935345769678414882204162921995607648901886978004389228434294268399291972006752872026268153520890110352916779086562872983374562597703618255294734496601360287321666119799416069608989399841222120657586483796522631660942784831776256113440446345209397318295549161163493069698968261091752610417506634171252549268384967806638473078419019647881202878854586770045929727084453548872132775517973209386287129384851790867420399359577629048400936260290307685454983920588047291319537553828081649831296952288940924636507161043792005080887715897304561073450633270658144863177697775277410482767786570886627667819115374364102316631902595935933421458648571581824273502856117919826660148484277356079332126163958456670789158434924364986646862953832966696227127496312750745145238330100900048399866419448379282382928368176973490245450058656588806923418935307780996407535133104827695775904563225951321075371356675695211208541306815432479580257127180368214424067242092815911638990997505675979416446029548451875461201970291877105002214863996278210881571793019450339126518726632867512968405810350137248575528026865518877081531445659523812084457921778859681646120578886321522320374896793207345672009835109160875554280347330948696633946209178343719136743014135755128246680629842069069681001643551140912085984700209852956568618343608520147244740925217159459863321190530601396250770225652850701692772742335007806444779058974401579786030114018000164713745320785612339193062275482942310844485485739743977724752530407757324407569140540798645706478603856409720762938014461524666011020364148990079911558458724345634708837231612102754074457866577749011133572902916043135290078871853924012702126105129025077367798668153065599852162952024061869260718421036463249272179355984841161521696376226223614913041659778145898836591791837437570704481361978385999697573498173248862480685299712198796753138985190315249277546790186676676072456673018528042238217514003667760968297712052774678097463195156096551769932415315444560259371154742945210315944710736994874393823113501250280394231225470161994217724746191282448996016408624530182566413403421316559332296125196604500274338971678643544000735369321982941953670103942553234560957183167636721072809323373005893804884342221890403288047704056937796081099173866898554671141561795191793689085493903945532110092476350754188297975292147703674952747594658393762918557879844874647032149873203265144676585297069863585084249431379134141665841940500997445674277016184437398823302221212251976925670090436478151044495627985698781339071470892015034779697385848377710948980551648896927911781718284744049048768570142064647761778908124187443183862734393256077201882499235573480437099798163443862837624813691772197984938825807982678467192676342413953170045577245473173108657327129605508002608230102542180033757656907249412063756496149418720844570362919393475640023851237934713717939577927394945874557356518222384719188331751570583491629916447998285404909284743622025855089319505243033804299460495928014784074547338884721955578025518485779602285939891601534300772899300814408678200598634152102887098281282708496467019529073049588121034145973802229441208922025495746063078672508176268851894771471111213384239326048665742960979084044217730233173690949309157092807521159573425645254136757970178849922822386113323677724399840268244301526796796230815250808994507524171473636624702530487441642136443666011540699083311117140600967828388401468640009817512937083682742678417149773009314498226284729291313026764190192397335910599408354513253919497430825535814788968521059121015330035581772415364884011025274379235980597035246607664305085219628774222460311364328761125170636252829501168159567255310410345065884950733616966387904338607531734537193944941189972426601483731905378039698105405499054425322627689769309750448701435956259632536315844846113495689314466710175331741304761358475513473879964246599224153508220811673532952172257311716694816216429194863738865644511369129603994085262833570704478123071950556022141332016813384931954009738711841622166588158996167465515196326958353341652902740877944137261918830710383304164664288511281416818604561049638738848167428459664165730970733188249601804897715198882333344046593254253798813294683868570118562490321670736564053984881049967218045886279854471982744704852954079015915213704065054940735062555604340568616205298044387871899867522252529745155938710702513924886198375245167452237056807788931506728124280135378633877068746154701148889757280193807839717074544932129315309038997199576767475056341464100995399560455982580795744920397988998893165231153542035849726331002470608696563456210489748506415881528252730316018601061272979947502373759768913284072125867240149968674256097858572628123308571648371117533179298497738238160650080606555318862994903268109451435820527539487443958424501640444225847565148790952159183394442272373605071794583608122900298240288807513967416840916021616041541464781059515690251521158518768718430561843574954755431415906270957577993923964152508133250097185794526810179610676368670052412627846980779635805598824094630767745459742511396484200139516613366991728081182775718632991339979645250488396859587925965941984649827405582261201196195952284167139387040945672639488308627344431182025869378323924560488887422650052436299448437624607726035988060066255110434355527155647471369522371043209225767587671135062359885557064073670549641168329297181954741514430634778708711337045749229300014755104288621344208135104377273639353607129792515271752286693585216914508644195681626594223306893254885545071110012034576088859726277799223811489290197292443132276784694960042427828049560254732408207743484649030607658635828310292829592172152374308684323401552071019007009512799519445536052770772761811000531488907488607371990274558788360898766335124197607319107757735067763782396457361929603413800117305084857705855317762695813149201626014754971879216653556111889808059725886463046397928411810741806356464097894947769804045090890851731230517029616751603943206852509691223192835065595913719664174383908569135099812337828499591805428875939064164172104790131901189197641716887308535547594932834974484923944914033167620837983246376781794797408420879724391861470597403656868718253297226337754646122991751598600511680040140906518112353868237618827741130823068220790171459389125021354814975347783460976427769510092979690726436376605208550279233967595922937364757847895615882229180908467751937158652116786654426986631157995816578982710880148287485134518781289821711111275571134817846902085593037731308238067520630020404856741814199552528910287309085620056051006615187253469012799050834506917125481526045557407517092692593241314359918588440925043884920844903993700461606875200553781332572530625349355765830063346964908716692103453300469793889819787897215960176292237321235634021797593367034759065940213403438972861248598384067421352861353205452475383088058830044792388906020577569759417402141219876821037644088368497013927822472685420916054112746945080204770106622669430294401167823779746986186113141017051596579697820943701543929846760836055238613139454710891666794327097502697084414448351706687547068906465261864154987257957260835928795781129158341994664981629637596771832509385597298297545905064564299202916322729129295155893957256566383134949094734457463503780165620802090177393471300947287174156374042789346053336566695764391882179457295203303818814747051260706756521083055024007193309558891368502988966377720114453124860268140945507639467226298850996261463458585549179193396205056907813181846649827717208362750388491568543942344138359113510406966815991011021153533692316889798028600828026551195796108046152243903816933613792662241122782297400765251479446230408182876614035507637989395368635386343129968794341506871287748274744006667225449990980798086352139644310843197083815965294508805059580298963236520087434081625744002289696188321907940562381149507911244591123428273934681873549511749317829635370279998670900556577573805535594745139443081396472324291586633892306933007325682234836611556036527435288736064887185957485795734096199524060489280240965514977047625263636798383757834242053579571283288050490839254565650102618382292410338343601846142339175386450254226159154049736797038563820767232367426582179249906792111863206027523291837771722520361809926302649030231470631623049149235380241338550229305144160346192212047403213041112294569451365854017984122472851472084988570484780729192171226798641771076303170298945958571991183613001368817335994851025436208743240510701485246532967414392947854089909438582772283032643228503189134458789247116619826901258361098721158962451278730659248647959537891672271160291108068678050437015870464650211131826216327215389295633061434588635820283282018159887050782116716125518964534353224744005187985425005264432397104138887354874436822103027325364053707968321897730467851829446028069572749824692299158070323329538602750670601711526773578539322803248381119044020164715254467830602741684832905345484929589874558915167826657582125250851885447435898618518285566823682833811673469716490989279755436680192585082868785397003372581225089463499909920889403946530697059050529263792228799354823474847473626703759666184158458749339240317115299398277231245893888713069004313882323862374369390763217029373957536085841383669742859813453604586630089517293151423853005504145898218561089004028457272180697591339061192976403254147305818466218315926430230142945273829514969420496488182210613178727397383777137486716825677611589050147846384987106011246831115079616338294357730247037282715523124560267567331467688412456961470759534110547829421337281173452208301233869134602887504334133050076747250811195729602571276373562149375734841635281057599190734121733160380885576081305508284869859561520182071205968944967137556550770275972165023957587732239162657242614059361828921300916753778118927602524674434973080319822473066838282757222010147453832800753258877149966428724053649339298907567606147831592847781366098696688574320087520807247961937304891198171512957042721101745315699616687576111835451468893070040348572371101496114711453330637630085279282044749474268670313969584590947184327268517121339213876325163887485205131697098580073593472838124061671305970782136110116837154738131372918836119617423195899463556485345426946912219223717385544515492581615389787824824209599640407474156380314151652186865474657863286814657879796929629187979288987308865132865056037700170310208183794836943265616816694735926316610957753779760151120865249839652770218861949133874499752248050323966208184227827685265989793424185332075222775400854609981646420722806935660831220571688390780440209511451033352800681534012130936744618293344111601089488826875357282067584739851370518734081830961264378024040453912765377722011664836387860603591951340621287420272884480486792826837843561348774656771368532788606447062989151373650668801692306786212669884273251899236830138546080801321316585886587995803748133081108120039488389816835464156290688489632494526796025518975900256073058460647265969455206972089599957525210249685626520023760983821838879897408870343181460936193811116346575376354265060823136098698954367418939214526028766065646120513329057281606665505087895740304910887533407482940218335558994895681655764116302961059691106001179710166051821137496948864140757249221287722221353102157257014141803493588697329219292236484159573056577878501110562389536407262805707645419612679219949103911529685744439334802652135358406352070318001982234168901402861218793129183837957448239815892129804367262131429988558521893791036748993685027614292540417336336507181692284537516749068875358110552988866899933186082938510915642237826614172059344303291489207734201970219510366498914256881108424509785241576063268882246167771875157542565668596150102459251951709763914378251513332321941119174201015266196468256084873301223854530680325106116343321654984285157690861475760086536330902667011026275392179780152490337277426280299272353366709494204613930144604818797570967788135103967499175020652434659767064318771737159983987148465458242739178998147231252195854231501939305431765832116045101607278446711492071354100948220739340955055741923693779143334005285618715549830861635153774149586712655298187778283191206423359319944573846004491593623140685856310867394113208181262323075748445311494648112563335509552672213673700413533080162157009113085010141829985410281468966965329067261167644887480187172316597274032201602519754026496675128545745191780654146158284912706919912434487137166032413748511234149922968709882948326935952123282782534717823868800289221829382869839565739966441970965536814899568837829053103848681376270461580914740526369270541629670076197380958804884234429403692725706204505398606529476379590496186304238217937156736869576858914298257649678232799840431403446251956241911157155613236340905677212215923550705585053563474174281292314918866800160055983017210126840377827777120173403449398286699441106026721242735182704728871882459566801327584716403442148097839698411379963447395788598958206630886839655113682892990539906941104388292120055677337927562320509450454440960449781813317722665694582758064415425650548182374012823650194970389066816766437490489867998967688843789205042674973591867036039194260020467488418146965427952712331030511929164863618761187430776393506293448626918723787964094077952746102833174180438380421694626455013496509857265014009653860395146730027803755723387445893983514833273163305240455219510904565396347303774777178456223140534336989153258708860994045162197225063922678371681379558694903831049527471363190100697857047141218283804515487647792157354163711864048210010705964502529720958228420780721969701740829114160679697364512398922332871377683769256735134213854824703951843997225506060245825953979316743413149641198425852937063311850346900005787174707027071371111937699763080450655456430529166164610772163106377588805096849001249311068402604550696503469841539829439818446169142340578079149343691565066659154472880135947159684253228906615453778789852661099083670471610961638325893142095437724528295079972860443174508966190507269609489978592302928666875600013068828645766468693589655261588036847083244722720810618991392481237635444518603273575808914260741670970494110674082646580464659849816054685971899958690639960114445458711739618052141425066078094816000427001374654980673640839757178271169460634640796867492556390831612682430907376098057116396936845523693660505777721833655949292732268745100835068184613805373632980855900899054021655423247954536915644539478113406675355712913527935663261603912016960581738281702301052684434965443740601120050224714488219583552412656180626461452549221262915430894330040032137370769990311446354734695974055262075154901496572756542200880758484375002191944863087998976034102416292105903485748123746923889938007634924382825080774303899629708788648244015115279857873989553058690364372727621410467285064629515263778106202354456276877847234000530926779148787516994071247009583032965532270703935894930459007222614970955349863103046577209317639348831028147904832624463294888895669336520719746125973765916970494974739493905667103302392396252507467347111493422740691061855666168660896443635583382926005755195512633021299505955381130829548096802800107130811620353202922695096123842754120913258795587942053445313199897415710499311903556985560768542854871841670796746786139164633803223925771064613625993492966024418872527194929183855138164031240191262713914217549064822627902008168881829293727241036068862096279206736867485086544248116011183639934785650863636125814657741552593595355011038398332723699794781777270421049040260924701308579844472507035933094364598131131582388844684571496069590405078081408622865790189818466108738024263650146968558832020041894331105192097529224864617805178562947174974806336346946482216111113168157441111044144798142793045773069136957209718190326421375446449972372736156993474476452226096411147519245783886420258153517871555516446711406559315932280134645790204271656344998732528212814664509447332793924964769292839771375423891907962507852729816251579955099342121770117368331728653680956011135492173205274846619657453324560608134364217863071608609180390383951276417378599445472360622974384362442166282788784189120688375625311150936363158466034823241447562642518396683201212028331960273712959594965035910133623205335649644037067701096533243036342296203960260228884325607598833361913406453089179939997205823098545603224421900413501785120549258590064912031220124057106410661366473871253220246510448536954520708732354485652780520261709644996129791557217069100417086499034327373785197600548422613224509156934514779874964827125347929085407742371865067756753991051577472123843117612586286505627991559970456797437336104956222757769777296837982882912983114040557721868337821515200339271965918289398109324813407737076173777491976170981219642432295021367805023648130447804513960549683049737417223375855936551290301468591303422641247805579097495320877172900197648122519196245206331698941050160319413958488700619462615628887828508663068559792672400631460854355253236940057888232325680802369860246685137982578951197577308840805643189269624240945659074429272020384282813304783572938048335106304228635122261881774528144315491433916765656048923984977635457403755951410987451615968475493707846886244580470425296506811442821691931453793142303236381690177249360323619387152711566262791934447413451924303188462043137105295910095732236610182644736684525621520216278438988421886351712722446457090947211674145250557523068483097591778240483326684684105771931241689565334189601828452173792786050674536830589648101458854283357428260235707511735940654096512693385491306937404327078865664339327461731433045487076327680223562959165561894479881963254822212589808465181616980934514023833976310792835072427105137778029113416320225515755815136127260876650598700156434519481358135499756113506790511670063041518949153770801255163235781606770023573872983470814479009562319548688926220917148115820069414858798098835026410192996211504939627653482344121684015877528687621600246843294629031384655003160164904339558499211414579234754529773463966722731663203455252680518035557458130945686632665991126658759167971306441901065630125570604615279451830242135182103256370594737855856365665304695010049052214966594108288219758965749610154425717254697258161005401692045883899967350610408789935985798700514533186850873043783562013569487985120788508933530445674065048399848033185863802901840486692986943311478306800187666187408923340512637800245755722594141478888251675128563131343470910127278810354579120169025621321607941896468989282201370367897679988338727884144369136996155693969838198665920452194749282357353001804422269201513467458826683126372233622216926619611252317708109623900247868090559499918881910346561391227189892091307146035721266469047220022732432164223060267920946942608242338933107840444859801689112161215684807802276713180209339757604753775934741053744194749910588214213792807049642368860147303623430238145051882150274199422950691197629269498295763311898029013116057574105480671918411805893645396628352384118190782549236698176467506006326352202936888854498891435710289058126419846424812247574371228955007189195083275610201416331503652313993836928118279668022556728213179329607369658891816127484296546378088311321046738484666084418081071108695381306096494428237335005099860167641963234581778954661162424740694755269646639692501141727461233389993476414467336883578478344776083737290443785254975568468363737940562412220229720150634836371472396635537865283481059428906087348261002802332224879345894570560028500063586855403002273967071568645848384023629298966800547872803194718538339759628837322691741493099414369463857272939935523986294761719415909856643708832694771308558993002001022604228605386550506040072273505646581510427047887704001376091458403637297290980432998104389788877646797436075406019487493004923182158519549064183118931837463968009281951105155864773862961248446449659918535997115538789293551024095637660141077539919121567762814736192074539147580446282835978071492143549987593637188277749974946190201929717403361477132442878283758395949743338133429851866226641193446397025361082155929903248902429328359221335917784311943109162391406878204873128774750756028358252076471601435225302344240063659192314259453048914760562081291817305580053036476544953308561824999424752687416879886654621801194057897973850496240434277698966486931698501743844124555593787772480460755398570424637895331118890893702482484540048877470414925320735030843825584179703037478234867793138850177524139941404715238410585066440647875321375582191498623014900309506532891571004840285161970241597888616253247256287799083578757223041433169094069375168864887639510413545942957068430644036458177334752935574941150001382503255465249415288476377428396940582715730601864569263237283780082430120639819222365388217403797260552966102982134291907437003200688671062706376198174657635515056650456124543532555661339244727077394743443028600219964467962109353881980182393193129781845740055553173178144761138351683774522231261799591126763604176243395513287889449513634573281010165348500137510982768083962966740834509164946722521910089852741322187794429972355804696592252058418196479610000924877261105333286235799243263586630274869252085450902191320016986425121939512762053259486839488836965294239523515843267846099455735275175344173500210858597467334984250818208957083384123701652512385555986738321449713410260857001280278347171357364242954134934365172009690274164313268519466312192309393630648114070512410184512857357445696782436706431544271852260319566839275214239579888182212179781339564486616457061215604396530991572514593800601581610169352462335356259032582609830137958295620184703423134632675631162465515625305810326976786814564097733165249225154776989151666827254422353596650199955206980643688547424026696001027381787005737389391793097110376713592084702943737635463451053306001613512394749974950417563723421838405425391027105664085788787173830270240932019933449303546009976586034225319038761108899188583916407104169753761648483860569170788635974025907444233414757996918268969829927946363822923844752722727526910988188836405843247372956629130066702614326874984315636627493108282597621208513388617541575114502260891495244879373685632877933156238271033385927514213668026816549588135071930813408291190275839564187152781600197268510753688640022940858676736122444539165765155518427190982183471011188876736749903550507764815534990347091519476279876130673664615709062138364664324117630465129575466361810488556461873349541496120618753099815330038304669568441860437122903344294397745947835770710561892091842516823877712860881545943402512514277463256965570446289336931912902613559763448655616020684361480183407887695303367101656747980793693915349695772914047403265516528829106632976101435964039638225497920383360425401486299730345252932368481726084083451548738620401812759403606908588975005643076578626785510283765234131536402414788236904070978271329320382575261642265764428892440162178844044566441850466388875332027481481415543318813666298904258027979161060034764493350786936101053570677416531305655816237516887157165055244556926366184964030706194064613596721682054898821167410183624842005821103253490452835907970795350547815249652892072712727647366490971169335839118297350613915464678806586768206877085134821915912577162825115520273016404413333823258928791210491447730928282944050572720953783587514907303229385371203910750018343547792724930769547533938644710329141703737955609735086344246795173843947423378551660416101002830380188156740024657946388898735238105856192841386636938155061775500592105301197365576112008166701525087585164381696627409876559098237210505191720075638274388641846013791200030135758354494248263905178926708754707133221140100125359107568004428480658912551670792612775884917340319152132844358017513494898238776043662516168228517210778036559881004283924042406666819851185630162283516009919738527662141009828771187605271302859075962600072755814363459539192916592631064745703107105151929598987962550519179629793163312672723631812613750264711493787476200569938266202084802997206488972419955184745344108196326285813929534770850859510051682006173422632923410469279958870530579988289346043985575446671888329552061017305871054531021533413742387211511175935584094015067148065148364014848594818189969316142283436554840748616865772700474745809077738967342377599990967465334515863067681937031262142546160410878007017394028595518438725198838120503025295344992491463672948634972620206394019509711869683622170264533385149122643547916444535553400998232528512470861493928416160180518370498147184192967179209876764517733028443061730894621606939426771454935067488788553291599022830995871635953073801514227178084325751926551435821485743506194604327929117368553755341713189096827949353046556149221455041309094832333901659711434380292590116574453203137657965978107146227359151748684593677148737270333358564512938097112638587617128568482077396383195706440386954710831138910773330331587843253800803720787135442766038426301771231798661666704221275719700220371663888856520062442199039048581853590643884059728698609574381491184318583230955329405899836343132208600093701040506601249498197661398467955217709148460194814505950260589357350417625076414065280422189582819773064514965059110571602622101964969007712062482586347725119380315370028190570573222866097407810223367979955285676763365789525982361120721503752693050916422392938176130640031645473233309867450161573633417124819398115591987905156507039526741951312507890479366307194328000936078554376669286803032129276936121089211009242089701188511123641247495157091528545585500009163453088709627171822131225162196647359736584906149244604637478173776608285573984360263975823269561972813105319085681196934544739122195036257247805037214724216123722645005706941560476105458611937069422957455007867477261887901381367794910289290792076065545827623827689723020275515364443591094356366480320568518408491480386826156856059217686108178943877369197087135724388895872192576315056473801873517743473778475056708889379522961332457168091369747930155411414183996415773323795909598869194964330962412006685877821488848877340642154547562107125691085940212397438607770027843683943746610057849704505694967145059421060223998248764566713046388100958518066826573626621641509402751700385073782454637274908710207685176390609411782306973635765209071680615865513016237622028676143175927617433423049279034508552846641192728121836523261897849843366334809066705167413571040050667676240425897662402466284669324102383890697873957686870716602034469927188616350256725459777403300262571466098076775794176294520856369263115048347874992753234507284458552261050610622081428296027096212385587890602227794031578656538536674181030388916457759858993306341071301601687826282692070995013994986391769051989008025940682368111179595176038457580230252866743890468593553929141332399795735185741727485998418752916354898674857168455021446221021722099629268758652511402845102351052558668456085873659490226635292666130267507724034440436475555073823916091724692463996937854608342930248737686201600448188009392899731483302138142176576027895197288092659798688386090150101612242240347308529436687731398564785888984201933468205614277847359269590014225232789544791340764701020596474396949597938354452840449913475281199622986035965455870469816025323808747531377149697099655263808136391854381379773179216493571956782094940286629398368258566031161568858975753567593898783434301830125190087458454604348543191906118858631519815603842354431723676964709164809030888376700356462464392028343995596641125284206337839862416344389780616953433141543045726723411905432605822960842943550261704057210757460607615260729067615807506266502229496034448790006759806348247309833017751059412558774518945475916872447091073949886576767291999341303105125875425231424545241285447834775290472203390000992966179881199739676977125406350684384202682077172546827387592261040085027355290754474781448322903107523483812162089857760217614043609408479425434238430467227609205348964650275425928659950191166325725534992371348574500979474022171227846153842071083452753460804729249339085175945882235184457686235206615360720178377507863143906027783420753237294226122609927931601707133392481116524312120417787869883585564975407872960319634880201331545021804247080498509080246540752701360893789569814130322379291053585349698165421505165219190440455700867491320474074735314677375763311504031689620161155156642027903883416866246681588130474820625258091679171720479432879456412106799815177663502715824332614131476375715934215860675131376307586496288569417127043038792289611635105931436255926461522079875830478278774192009156137404039570619127410734384090746199125073286325051460049382318253035828543253814773303628743083098556947081135344138679569086215765104789000582670372857164132195092735208053518008361520340124191978902747668421648938626352043412132043665003891329129859318727922247142787031391539667577011149532320071739409768728323887779840000808018462068678021532055849703140308320981324070183496029020379413071295179106143946588401528405799135764231935644914175854036878707641389179331088769216921810631086193809382419329412168987403963287075459563466313504892982026090719492423824091690456174894392821781098697277090122851969183588805417318519236782522843718262773717725866197783137640567141309446005726776765325471087820830153706489675605249076098447767307474253310725247042166370480138590787910108851974768414134299366002310486314692791003196669663239005766636536042829682768608301827005139344701204716086187070358643943709635987882411177741890864299925579147413480746939360681131179732538967362148628727851443213299939053345558943445752257278731703424000156561734999661464671127023066428617642670905534228000287533531389724704166191633967091353625070826416455471215169736490583318388781892659773192771544387432758253113877892600300167818558257363807378495221271409898912717040013828758206280092488705005894528490762714198140926896172289072674887667094068434458900755372942641373577891458824304087200880626509822335767161034666043448374349712524536498714700678816269943306816605628960156774751905014542483495662660559823820534852201734270188563344321147259109618787818352318511843970611831978813082855027603694473890407625182967348817502716228632450111059673282335056873222100978485400868677493201364525809472806820571130419508900311396176712170116546827941511408835311440571898893798381378993968392365887174576010508680543251106785930648501217030763711459431184241683097144944757711865443742552126299561666787455232974257850928186339229218307812222835859001139352863533116589094397501281988042315584012862472168374067351021013285313441287512191339369318878613667383764184782799705307256616506444788821887453676835998577482536706502515823325364179714017871037455659343865837766323371602368822759017450339093192871473740970164899584216195124749425194395151191789549270037372212712080749145539995732870374248994745302879814560000428397855302374884331935314051840971281916156712638966158721678551999657145897555412503876568579979920043104529238394619357537036318070750580457783461680791190843912886664067639282048631827514276253018688990609076656123009573673664315691965850758432525295864915494780276340542908896044047828075829352790666030586134794609942247387436479236006832665007166305270055816554987455894222822602729387617218239729780583191025202568258648941087526457845618994435036547478941758677751408777836845359655802723485099659368366881267456475110527784126608636332618269300316362662692010840497473845020616771903239816701560370209256739313819806564042869185743217531233871111186901765891648530074529788485771924955319994742879382204481372465131409098029984818399848100379146707444981411747026211483608295080434378739335765820092993227963729790900686243671810819210757065037635546155075038231216954918479890930354567489399160757114428282001289063244358295500715582475231384517301662484264778747786236999808116972882504272902888745228904099612028869495576528243498596799595901474278064512674649390664498869886101588818941560677445573786102792946881847448721480125165243948793621606041481315539032752254309013877431405721002562639141179531601234509291611488055926087711191792035630171535224657001288716680009240228902551232096223119447632804042832496370971746135061780763048053151682270087092286178582505081000764213688474860669018791003587734826632140909901790820427563147135240134131777769020198788256101125462025198273270670111507744889187632610634799150311209480705160985304560289846818246884896445261787404075273041130617878652655706864878050127706462117150661011713720139121510419254599287690972185559173687376871992604189470394718193192334141021700269826543087954261285927663901097911854381040581330346574582947661845520186602220191851707361376543506287541904776286449346450253568950953695559518259831496909270220538552053729614931107148642448226332193272705294590649362497334358673625415420796455597015206065609135699841547725807655953449339435625087008863092522204813207314836605950703830302057226343242604401804826522877569577388145042666087000886674177735247120247863238482078843338203901159263845471880023952097467241169192339874246256935881740943059609979749296402989261991384345425896652272022041407135024718420161140893307972825827619406499540552347754725154054632118808838101849209121968082705579139002119221797418697776329299609117210681694672312885357515234911909486689463428143675335343321836437828477334791678306135702310507506703834603235995242539617201386616584598371949476537455024588059389012139304776130962870950737525234626083554417614769475129601348656792541705154965083487956537842348595507583729466714957233954801772955861736701092832123888041530118977113602547052000093043157640198588186354415619959875210877096384776530137361855986079833611839684827914892972494622813247648543746933152414886241619680159455127891766715139677175193937653959320851049808202138650311049893167924456980161601939632667044020173640145490780158151131744504265944468172879131262604219700889687591758888149425405495754813180548191078022749029541227364990442144793456888143948540135671472775482501057776474692366328941222265546693051143311217484259429593739977814403894470505621411463227473990483828252798009633860980479573403931318248034036529451411170399229743534924448331518236288009719970819739707348700046514333278568764130161526664138091218922517721739563283484609858918502508786220645509857913136871516106315603491992348887338611488258220305136172561616653834301485723737727299233030784309802138464144899485927102460876294993994835100929225475638460223460450645313669320617153826607518875103497867273468909597020832455339429244227149774283400379143145419589372333395004772860853340243063993427845882642840144138461652618373078416789161085807036605957884729121350636406976476949946882620380903727188231368982819067961881399725132772230819538040102275694300514595789913423794092898249099093698254734370907424060232777767070470416380075655439864468057495613463809498371979160173706713782840596551502409078431359318432143507547657333623741453315301464665349870881636104230664822563255067991125959565826744364129372429582692033937814148611781231826546914795074294083180437762795764679220138695650372887324579249709406794573725626002523195613388451103495983515939400678781887229241974535170291429099820098879766171728515578329685478788323213835877172935598052509824366002943858318719148834092872852449203404229218654942403165212674389662354615034675996654321121483601634519041330401863614439315737920424249790003145237740933421148726348706369339439229829724691239517191256638880709075937849570467539306831604103273645939941317156335622738739208590762428978168821225485215608720364015641940005160340386096054014085582752510020780196393386241193709570293159855324771224498269105848112052140442668705057169467109777221808433550218952305803269744530966554292689400106828602023112558230260534893772139803688350365690238718282787033981295504442993141476740004410421906011937366031750680091615966727183454160982586664226597481847744475684518859911296515651095014751087072185732874003866748244720606400822339593069068138701529976044994680360447426912566747599722119648728191568431806492735096123162435129397244824317641039502680103998954228520297230228646953999403729294783594794231721796223682146183072841038349994390295194106180303711267229080957666316177133836442433993739845246615775654124384009346686736340248817457401943051019779153947224277314321449431354982754873679269600331581467482599439319906246038892727823033906449858178193457172776648554566152281066919110214392037174041182045797978001851805283729953975819949066153939003841847741882814193700677176014668856495890630630054917344868521913074082620868109849569236248823943380385597636590255674526792770244865342600401173594956295618718603437879012592614203102057729295585240453098798294664471418184965138601301709955230668401114295914540578942568406797699137830336083593033025384730439551879835714616443723658125149897991971163552417492806370146697155625384253295325311047303593880951997580312730287860244081851937815341580516071996312653701237369039896937167624669479239037317642290489261072821543524604645178555689963172067348090401450110431157051013906979999476927542257761001941098958039515286198051498186950173789931615836210364105331984650983977213034857045230342176656461916966951067224483393031750618667075322191968136246850009152777826589730680020342118243087780598881488181795494952568376721683136203946624931544499693837155174286884981021429629402512530883809846897621370583676125441513520858606397909202335957074568407631366470912436346140588869835016668054178473388693487095240721776598866017623719757540880532510272252209842430489260660680760037664207905134196473976291291304350554266866570322880916837279214292993283456814496886724839802212916828302275994247298541651031869590038035712481123627715323154236480977318212028673011103254208441572120862525236300158037545210924697370500716928637384281195094384005201063463417302443265710139923180164240960598250479571380400234894763620816303051614717586906558566616688691380021170878663862097261079504123619520486694415654466324472528029654294110212714273103707244818046186860556116051355850529580967708162540777784249761056666535177364382688903166211200809748883079277626575973005665031498550674662404178819185670201644148457213753317859637617324846853400949600913392298914445193134519626581623333655654724258481086818551067916315820362279855976348363529302695906201573600966275258319508380983510630883119061585433476024045304864987780273043043861436191039627399353171061322782177046895817509461487456424772975479286010997289556003799852236350113277416948330786294066985181724597870214361883513968621917348273579001568883052800390440887320575863255516040344568333800456441640878417994503780433499539247959710633012543432678109843503569935650680596014025946970317980138655147153823707535994448915010389780354504886922205725359361453123796483676710701698722765243309786150482150562037684574408149449576158101951015952749070458836931261578054970084162979389474681016503418166437488968059689264558700566725608867185691377673502354816046780633168065138168176918714823929222953654960686941405279536646550670537986765132850652668452163462868695689195724091106712460638629557040935373383366663034849666233435175484285449942514021993815451660994465997619673782671018237953387721425348798021460237278690524676927169332814159804491119385825496396386417791955211149425460552627916552273169344016748839991730379253952687749230689994351982014575943782566229048669474120487110420991726047083418862444322438965640182210279761550025382672524363998136929912395944262671447010458658890842344287082405006317868207266919327790297567079913963297650942220920825725354744464748567819717715724858179950035904175011627809564195605577772776934485976069735878772057095651725073317208786565743945600252184077767617406335664854513176283452432278976826616824756786537373766107219936547589293346686161424381221055143283760184917894191781885446920881041335073896540456149000506551175591132886494217776937734356191442701317925018135380823117580985692369768148974522224158502943917858208300870305975685762930609256381659429671795664895942100292155571336734444513423253526085250989344272942529070131174549551281295700021073082335872527864492436526676662331722730995358473071193565261550962677688917915461791644806338560757517585692566993501120437036656962751550715627004645504395828672346073636334133807565308679796493260785362882821629583640873821168638368048068244771952943773167621278538921206112088293355006439728730024599881700918278220923117401849289234783940588771419179372403645573286392594002453895660931887542732697607874737040416013127047257239877699847626193809170288863941110817272060540005006110771044586902005776490046859442248050947444078270129464536319784006197514316783634997420872948609962638748249792577822416192911967316335232928122780078954243294154153610712610594716077224476244195503910117787387792544576534380203074887471376252511956020371698283049203777329213768531455930346261982366168332391274373306493241051964787779385940995866494564870889118154208630959975185938700401799525674832302192354077248484150255945071580030975749114740728409627081983025533389817063632029109525524181814448504283504858653883707706879532399517033133097474165934536584539319204921763401789172764831884740786893119270570236549674496753891944545439193502567038780393253034743359272482790737446943997056417556334032392949008056562029741481997211916718779102141668025067208358641585765843010372333068259050606050723297107057682156436759797096373391209957219546109270916737884365358818864964867341409228788502345442800284071270113126851084102882202377557341231999576139103691296587263849273548468245684053440099239507114467102521660708212482482958568885031019424085469762086604535564743543911858664305774021125347709068255527555033070684190022133630823818930012945034139385431727892792290415805384648129927522939165470165058231541268169466849749404348578669288675732775044959833719753289085435720741240813537221044479257964220231694209259767743413459074454727501480363821163767526225722316389374217830816588278347425662604802596476720694675815944465233797449215605072448302684258154108508055349282348064071294685767469778408252563352589958386527518816971665972026496618582999458809536082934612552214789867065254295037614906400087544199830174131192213363242697604736803489579000388104629439926289434491022373764126362931716644332746019376684142804225798199207809792332848622585098183577973929299102919179195062005686211471470367405103586817270556776065487784044223517055330251719602228038356600984816659027822765372656520554581653147000851017299351453559392195005942779984911693712808744442009682357838485969110726737255884624381308783849606113261776214506595310579232445455743701388958664573008485712143282020950622064787413984512335813347141747526254275374536860937751318632697635859770994464879279076193019383579859992075223289418719268762861543471220533911166165926854216849948751139305457140456381086006564258983000320614526935323549750897768066179562615655470646609005317262137768621904254401333590302719475211758761930447262542059126412922786396654168016036206733601624513387411777556647240889442140539891174883248764888295338905315610158432014517048407057995431972349965507720533653441845312485054166558351495503912285800283695830552421826032302023041715859925011140017698001272306767271103816652116197118360837219464609486005829424749303117193845364130141503813824432951011871200975013401584543695567797849851811394486178094812295088555119193811506612778724665791363173794297862258315841164037229633512432229953262797368532476735979407967010585333834025379307830209741578272083561088913757955678287375319473992837720618323852604828735739125821352508283209743782754064996603092351219715238862123841091505712253922616486059690906104346387521201860625831571695523380986254808045208269388763709776702004820890369229410147911391846937288653478175556239870245305243919178886001194080840824293681731475289861758605415894642376184978594850044309419760335664601600778331010516305484616195158798446814268786377766855166699734970652458898528434430916109197541735370466966752429374545174304056571089415008471745566576058893911913874310683334104454048288885042525287469324516596013359038427927640359633596637030805982980335410246520138021389265925046744116910864228987378123488757239238893738102082183111335984469608134386565130146209967271317548810078800181614917126148967641398131238599320443413560066707632844348533612433571437787157530433825174717247547907073135364341951068655212430267229075483462792553216001683174218867547222701733918990759322099326852915495831156136155362622927691526130770901741869676590681093081271470350735390979658584867564434232217709463716998301893144935808925819604528088932759861473215239660743144976015276963353661116269035758041780394998446443178703053050886896309925402646827506490173353417098610252740668168448457059692189782283327832093341388039873609940467669329053529007650033946649985950737708950943211113558244383684438418732208505758144747028215201720730725067378798295749329556027209093142409699935809006598025387224391979339850950390382884653256613239865610745383884409357378392794906312753368780348405232943778123220924731517699085165633444640806703456611541550443990863362045935741334771174782470918245150155010578339392609176562884472831596832284493397244290825953035299630428732742282452499123469993463964272348597649763713439803861076478007784465747041777780056778750156894569447351260203367374368093667805455244520301195540900639563354611287789442074681824533384363550944209110463739642644984846396748136293488254057785386211810105206346016564575758315063033684343635838039963831730092098453001293220654358207027072470178411383745943285544395511439842955733307112333676525449963368739289124074689192030113127886733535696545608399299619196518135136912271794037605511497891184415650925332104271697328287560893414758683441990674888638423852393056534765560146396968855931966388847725317639753744234190628360794751849549471766492337183671931490765212605584246675517732597741845214879861237565351404884284039970885757435456903640176007081814663388016659769422055084161198601088762175311727560734948850812741164558557237192553928951373084242512299091964433402825965721109106564611056946505924305989284266725269162769076886076018551331385915557066861096645192535402462527072350261949118368045387310183148075980658140461732001604138699559532793038654888108440260026795489161966057934028891273074409696953923437715391514398318581759338669842963423492138591274705350984928445817055599570662360804508651458071847099029282779091281769155660749177265281046449740931720215756270588128278174227505184927182395146497034588479238304086879596967062922504861146900819696546327644278648172642375763469608226526159638204925679679051251589980357588461328683441316587453862533746668898521963109039472103073431403117124549973883277361798571652805855153676497935368866640962143891486607922560759507566836412888342775424320420199314042844420759134800042883327276445002510997517394294175332122743566700953063438176054946826075564713592563163325307773248763827833104386696584615334980778678431844903534143675707701307733474452563759572754494555181063530579534898510776743856002688345715843078215452747068681391888170678281430990486777407303807612204259707369827214488214677253145271491176819788355726115858530980651307671926149957547066608169144037750456990528458340418071099393965990643235584980568918098365980939589150099981661300124015063055496425291439701393270220355611235877501346454069616576713644650441112874194279359469005682198907942688350766579337468414265170347673600202191243399258870359007330626655331406376309490539816769920347030733740206966749408276109187902744992044161248736245452342553408324005339124140085235371851377046497927326267565860732549727029655378480067564034766601434674053048252155813887180035022209297133046177122945909581239875398073008510437074909763748753104135595243684521096428432242359900156984817466700048716589747523821801755322496858238080877445914258275343346438110861445667902421697693005363476422872677061425256346830166151247056044758466933556770375692290406984908093191816994837670926276527820098214140413916270929241664444930384387214330934013882497493099083671684437377526941466528175017828037147781107518482978250619371366587016312467133042527629508344082917956698370861511976569982503981917991079805730190630809453129420541878555484310347914443807323332518262812545802588381737111564601697252971213743774358796385248553409908617245342228624666687482242580245351980557392334172127318786811865897963482068566232548193917135974231881668143804056067151091217530692184095390551050401889618126593064022893359232575761754456633681741209901825469802238550883682998234636004877494312794612740254729520254507756015205438079523473923361160751597237323210672076695807891406913139375283302174391119624021287483840664752894390807836837592387160240475612869323737789397666453828153387608607580260044267438353602021187906818988425546877230609039345625325779619495192525782502435954057651527114763724169949736027465039132088683951297166677624723201625216193513046594774322733891911277379157089552183949418326968401568143462721023017726816820032689242239119659451478776360950262414865517269680440166254764335222367166589293577369999608457979644553197003141128047519068824472076989258161626313993279925952628996855923743271361270518893406863784811240981563913512443427091321378151086316878868094251270512278886544824195870009292948740721385315637931967017213625132474762367613707888999789819604348734345645321230303874244818792307635835008520775495871610383598016605617157027895589175307828515650839276563853994316730564447855054925919078736110738020215474966567822438108556276735769702115988330824879921373317914295768820371918823637531929368336004146756988498718890196761333470538743552783491254409319306767830050039086421214187210662140254078650746024338526007919682296782350975126351137419469888880224309460824053746609878769117532103931534480140195912468163534410475643004772451821884051894947224977410610816607104131751055811299519938981188264308432313813992542227222963705144186577150258599270842937861681804262602063553185142756391361431758565258463483990159723970786124965551540686380901329735495576803568062640896890626721029716475897864813441475226690874824766822512862416630271793120784134907225938878036966365169771937345714641034536440441716331957458976558677159561888477264657762614927359383966158336811931678305992584771281040358563972029405265340501610546161491794344988869700767765519722133002867950032527166889498995154274858687704598521651929494539813663165661967872170625698962532990445106448316703001747798085247178010121920472398963926620808808908260078359989873533623357602606426202557364575809258730965770948002535595902923322844473107865127377323768900891975038987037795654749101178047136982448201062222713652692580617240549875229747965478510360398119137752667314480789679405251825342264285682735192133349930999308004885797513548013651228236599726823888313118012111641589631293449691664583608792404755804644975112846626825755783566582667252723920791600072067168966243968949576000412156958312553336424457767316611876925899342476198377367841169054749758920701155093370315801673199190336962417381700195802692179399271206760237058577923930709192604051229254757070298996592376951989183484577928054219246909180877959828973379874174274125750575924748242063627396272431210582943596187728645478341899615689852067924860809828828911395903139935004612598556914672194457276749950299897281169431553629152969831533322853884836847798556604086330910100228899217839817270311931701476970928157119035301588266426071184684838324466560235455709504084425223560901796527730963769693076461743664259093511443208172845661697980783439624241344072149386416117217106832098423665845556538550564430703458488476041903701950516072165377097327321993677115950529501001176482513497670008143060842793060264896603421055818341054062157214688144968492836443983408901998746824694319319365784362179600029568838379122070232211172515914077714918169058079266401399120167913938712058447493403822475546061738970563093627258837096166808076656336780524819471705189623230748093869334486095059481495902769315890911406489755195136307496193267385595075984356416707474584932544841631341008378908152926852346471175046131982109629635294257500165569292520884701132667404349192387320092108842051861125615854124338825116841988697830508584379054968500008419916363030584876062319846302337261006660982373741918789957207381205750970283892733172034888926971855691752785218565075379237880874185639027855761253541362606002812549693226800807612868666919997870774896637705603139287628600305132999643219238128953797559783219501644768882167481730895416774218416448275112117944502097168544499802482752697540438201924257299300667101977486828160660042109266881049521922023721367963808561039210878400355591046152039087612763815426060181324196926036721722975444912233335152309834554340578162446882203170509591886494199167658761844738370039030212554562609660595127460342884277871080690487247421253732713145830796652547040337606711884735764351190403158081567561649178873591998967826576987057909861576615985961044333598767524899807889387265569474586800264856634787428383048609900487286098904782416780036829062599382556365978511492511444184053338274039914407221419683247838558022513082408692364941893533483199216201317680997443871178236480318346896083651014734196438860235343594402926927363026788636747094873439809806645613222345685206145842557686000077024161316430317164391088369624385708547423582414225654947839084607936738272385938839995300566144173061177822057320472571793951685951218944848314570596471558685231356222927234752314677564173576386045686280162516129616665748565119426087936865527694026953546220301606272633811673373055858031903940973894772934948949585865050094815010903755380843826769065329354809830886056491997775474447702976054119511989400360075806808592479610450512257840261684888961983047722467260427691388312138845109272623656324924903629098421010434230306317395025540055889326600662219193854734971042749760942399809315283902161730655983223435750713841640153355522687700265483785094150575222564629792319980291104765389651340568052058396980403105451998917236284394350384288979046178000917312905691450633876509757920630187720530379958708896217381512203923101760803618169734915439632218309499023403224495135364601654801412012132788229010313740879735343965496042298687336683290110494594406964043369120596414634486357399444064877353323141296407212498672336811411280422533097570430878562606943653487837177381891230817884544269914503048519101590000373727754883665293269751074760126507034872663188703571197703236803693936218006645495898365425672104127548720708631455773064382337667302401670316920829472003348176384108152289793489538446609027790193033712802592337839217471694510728222001178714198818424960093948110346547684489229191170784829521568773444369918356619429085498856415127523181412568227917356688831732181301071547996295011973137741930162090686871243356938064761251227347564178741037418822598071823714264073681366774037493091638620228654506407188651453692365304733035922195552428620261193286479606810304138868682859040318043285221267630667694000982666492978056050191831859140498888334929083704943176408023296257301832932496782962857707038331543736011256094836959149707973821839283431939691819904022233484533947321767343833284410306207755166402297147572066431870704281798325421193220647461802401396181619343421975976286790909925757523017097606392650609915302811457316221786308979540013445790914820248640938004857434708894902167450989002143787269508219872348198456778682560150011982240505016978146013686561502515638243157087618619326162788561578730569509512684877159187905668773695586066303436893597750902290017789161642167123201747368415462254388026985417739540851133943124166275678696810901803265448874199946827981201046382807985983579759656219774933250351339555561572408581492831807193252463966136738579713474818308055414952663876714630698153593195687290741551846268083722590406097212420282582486822467681372365752095300356769560755554321136851030625954561269403942795641103523150353352274727591457330102248922885991060791791539744348196435123092756486638033079955363289135719340010256273997524727173898078836210304265971776936620736165608712455005227860052943877535429191225892124964271582039276397457705888557430924798795161105374274634861340487109171539145282990357213454506826660817994883282831621330334857711652010274715021767822744143441855081743480586710126418783433812760919924063109250617514860372718544332153261005779483503962467662771892742425632785705179956696487785766435978901266570342268027594730925773831594204238247087197999836815478022282132061176910427047679158950434365476130345365387152979231721346766021838512976805579104154638269055087049430567668009549248734999354096775027750999676541810822184851516738826630828017530302154247114227122489112246836561117359764928562555535469695483659390838017801300610046668154077080626835066423718385050564607703436607564806233196391087538076274262258359357760599499717976995690391311467518752358039068321047427475390544946791004691204729905178780302337531881460281364833847755142753790131732869191190930586233930466945177348113458966331986443898423534342996863787328546838648574472576526755428633746500732280361816278360868489040905002912986284650369341913117600443579360621147408186371734445194852558515828514021249487727562009557550401614418469489897913041844552185546360792083473071526916768082433777636083637945674394399526318194592967463648551138253251551722077947470031975324588711135170902105147229656521867818309584111389107443066347190620738602450708111389903155191732931227538109513933823660351553636426219969127896502885390702940957318763032706353234562975596142064162102830232397037088929939142929439944334319818833095522961544869621567314057940928600868824377899896010516384047010725334471002170683806437115495931283438151101882604235398597901411726554108965866228148425825006723953554685799206634759987238960861460721468083038138200569108772625871379954570428369259675296243584194721924990879902424061383036793823731259373140160841724163002823676100901226392379510604338675345650155473638172084626415594805704798456286063182352924207041260818504400706798609263477990531827260780894920777355579681807127182689790407105757228437320436910864122666656279770498324166037187498000323107534141498432237109278777010201783856920381138016909617972657232521961702578641314505409351145362036751538429332919033698960736235056278462017630428412590691046529635187033688854294467385943903695101847224372726958700256430994539189718696475634462992909431911532521096338589317538179657814151522546228098653155493641628169535672499162889290927999198185323608377533013233873204293132589527077311132095905537634069021221475226500729451217571637553035741552764973012212815115251571010932389935723879324257559500121984840512489154157004712409910629656344824193531455743242952986804050158428528383767540390840706098172919888420804290655015537535510385850426743975450487441027841473299950231975232639443623317244035143461884552579931063825891302306419322590692063862472817722854904879387964085889720833293645390870375262574150059818898406094935903768251885021180308854620531713837734064710705788903643845514669517326621401296303432203121992491790519411713052197194913764776001697510358627877330659420065330556990115596521368605962109678268639311298977828456535217611386108417043770342917888453981739645393241520288475410665033554047373021710588854600170698981183773107736308557899918753018822642730272783945902486257459300720864632820721073233408323076555553611228037651196103347021311727533253555890059949020423956995207175884373177154597464587884117532427775237178880919204029511034366584608491823152352329165241476063015243411492154460747253561792498947740024528582334597531299217087532988801041194621405219752345035356537998529720008197459972080347134728387791530469572790261766969199121523818561096964478865359745205748546682709383337092011151045493482934799145290891519019400320992089695941470065601168188413219803412981797013303888103622063973865104638989297188990035552614901774379294967325068913851739891001141306296862567368835833425431394979826776992483458957644799456148895905061461628149691055366255847241412343032431384092668145684982168825868321775647266864177386602170351204961934581365863405389689806762300923132630917442217836520433679898117067660635530074158710768102618482119558169548930704127550681008905781734794398291663318264359560392778399684463512362843649925492471555555916342390140946652445472579730653784254840921709781336875945200442346024889250886690475321518042566109900084164118083560907153474441737103516661235649524270537011795508781681865296747626269780980612293770003395342480833518190011243654249468894383957338156482920710050010780220086897782615476624771108667091431839322140843075934574485629021041730241664347737832379822238638075434157942970175850764414570732701483998672079371611444751386743998703078795106449418473811963613488712512454507486865009336697490165616330805930610578892553597065903358695922628270797269630470088416383694363579027351943302094437884278326641026097555118111321237352848745152851935169807302653297287070390133730957146487926748759553075373341192437948333500821555130480655617751824623668992494705144526476871883716460966541568278651563401800337679496503917173854088630886674342599082715617790905255978648682857355803201132116911944008572113067618878023827504432009026212758596663584085898759691777450260745930202057505474257350951082174027225378479523352252708120230488770733146269241138376552078643196914200425347461865214669088928198100703353457343656246318396234515773948871991652377780118203995616965860661597617938157049016848686341944011999787241779053148857710216788746363404786720660086946431995728116148241060871905400750996781123761735718639307841896460555890342682996971059876069326683157635700175307390059366146554507797623902014919946522957875251711381536378118372141774591732884528588850106880207466274980407523333284980099722850121953764671792325508951799164335258487704619019977530335106164375136739962175153746111901544659954545163009933453184092220400727307744753839194590237497431295086784020846441941581784372579125419630833478248834582178564912964650611435602139414420046888602416208602497820775768197989856612410167496607019372580972964459658893233261834665474749349377854538536895209382233347693623428807915463239775076216315961660916758061557263547409168782522742135190037943838580492729256555010505732368358011010823142620370779162920514565868479381104905705789384282025670502790809972862370904712584731981643027710205995789119163380805003244700958973545361012083244276688562158023481197789223897304178220406902075828566595614879626451454777557118828801477466653608731497013738938050090340735817288844656376620183272247560118659508286144335408522866370745796739552134663962935396926671727955856365036944034492363611520108524498041963233209289400356745103138477099005133128935900028206206526134908768652470494968450551535059191657352543103296155231312105299076053376512585628786765123863501693916386515583080901564096386418755177659866819895092263449072492363249580838196302282579470115584249040368587818419543120549988936831522061338494706198962911541988460225138106730970798928459833266209138631841403620376631175592593468698555098131134114480578321100082371525180533326576456244234424148014105641380811825097955690929550210383323684029257734789734441028569991039872413676643538917977466442538080942468846184058807107665927126205867162463773340925427696440706428278734972943836983942924703394384858209228409822789121982849836540183144391263594656334582303706681036883049601023459386352656570528216786826102683439938032736478923655938848846679325057347707198656893225708546792354050247760676935649687651939785254441342979391259362103937683497735928593297833138036076777242665710808425327955760716437529673983777907996184686248632603622672861229412909870286772277662142463506306802997721508859793749337491295602574602215379575721115304689069116446818193309354927561651968992171555309132943320249111314204035142491906306766139761671741886765639933375762162156569698351102189780615304300513396399031355698710964280660058866639695030619620487637595988499000612019936446004467062834299124740506340377541606198240909784175800125549048662484753624830576655070639548567635102407736051002267483761461636034590537478329759657073519681375060949072437905101124895241810894153663573916895096224632812330745016976608486073327967059768039089143253983248859995359874860696326717473282167358919066250988839208756406876402150447767086619478917092042065322449713749798145405327289345746572892196674213801302826337681118139183767998958649475938399958631771797516068575415653213391159928898255535428520598016789611707436986162344104742696385302766758509700449583950066779991529049278204834926023703504599873747154639307432420968056004486883000266649168767972533923424752944768340513706171399234749184673090933987610837150474120324875742641738099657341223722189077547730518636919272766669664011473170900041535064561346570678804599355927393231275662571473651624980658724468304081593552708674746680055750188511651717202463686416021884567011913623152405584580594982389039063000148296384327772859316191622163055837777170394728867321532048858132767574162296813242528868322472018156160428296613211264511801730619652124180364054682486122252941479260531639541206407582705577580812085933032998810508850096047565950176692490482701356368103812998707693862146407332572455033200455704245322593303571332491370263262897169917844137628098957463574795290527000661620937313125784605821138780554831741893010112931550041059844493565149315462100542800967026077976672408110880119445156587374438265740776844752488404003247177609390444426687028091931654682932342612866780032397909732805772201494441872302295807671279667954586333750019187668456715785891096283436317753624936364063344438758110408968179314615698811834271668256834656936875557856028675407947214376711164926049427071514869131254481873013449566756857215663645253928862929800947502572980007917902591167898271198456714323731415723141181161056721881841837151564181359144027067896532796106978454501674398236002444297118526296730363776774212868993756233216722506268887962793991110180728277140841441595278410539250447094231387272111879308358450590861030069148456990605471251265103204425192504581098893667593656198766466702745785041921658782354969071739435451343880160474792857984576157600051559138856840599536222190628708923044187270383652298373584794774193022489282498611392743210207151805383175021213830653811661816934201235473867076950417596924208396877165051492163362193704112045328094729122092446370610182970165299514224745206595647233547546469081687334447816779659474317927017574665198927850179422133290783926147219773416264880207341472277113783876738525981888651548150336328618144053594268016347736007869373641700337231746840188972014284370162110307150047228206034075441580777390261045145722278880584289984478093995823806200300853971834397011277532348094043747907923316217735834688793112674097675261532737915699930256426877509112511242611719341801850935068900259468412213836813180776543947912661926491589087101283990834415585472733813180647894192317311761099212202487232334462317811504551537726532629350762758555999047281120627097691632852201029683662555890972297258542633023733887754925047851343250637694624603220882082785008625565466338383062784661013052148985356014273936578987259972274831090107394111143970955902405312120081628919565052044241059783401556740405982017452463169319236152793150899381945588558547756848591002685869987634374768317638068006552988914195516852844983193500596978680890778161863636703223300875507675147940307889552419058794237991153748367936667731473632548653427974455000843763712047319120469332819418670522088242554776238209998861120382673629138428269022737738569479912303799421405283692909536801527535338808462263610948237508217459716238168697443795959911275522767749501318719092604403329675087227580966178539472378000972491859657514149485465928558275385991289100307344972736816104176653858614513989907078393987564597336828234501998222212079902229816353063095351540677034885308502821353084791272042761352094480317099010270640637030551865725706754413367709865562379474563058168301119468694776429408453662243843346686018662601719224782308977391871731791996175397628658249746719225805905231905033083786958117126929012806184765030452786816173331709723685111889937094040068460608292198314125087163095602418631586945139358307808027074495513919394355103932227181057242707190673987225656744084979587014981521260114656318977540404303858450355423084581247129204370169753334252659813838241830814209225863789089592538729095406139423190171589207429627897685005432528775874870895674477796055774425289154606185923941748352334373841814159513532470062692886169030765028714998277601794742529585557301601431932252762282258076324327528662342135752521781995130165133946637286738983966430057644588386319284147590993660287406666579714351601558542233256669809572385380429361531142829346143404217016419571545859596947851636509038896082195518748555042204553764837907287836048434978002955191622384781212657866145619514408732699014766383607894404696165439850212328224085390912444186911710734049060937019432993101560409568086921766095715756238944665701831964556082216587864813115984248250928026747538858024203736790861713307749866341317306828112610609341094791757786334375802998062029567795295604508485611820674120957726567211315361228202179207297651188798897596065909632036350236613388450909289180571271839045389578945693197783314978498053077110452330306884282480756929631073525707415124192486562976671066388842811381540822334335793112378145943387303794446883306084077064193509437266661162051098575242862030278326827817498156947781187694458203084878469709297664829334991521233906178377083792715395325311402249017662100562224496434605102717527164173299905669573250171548782864381509878982213404889674013108613077939145164277408502680704939810724028377990317630950838235088352826949406910395700313778654593435136590734582507850368106281278863553951461671346711366038174233999505266016790129791654885923402030075966178817994684905621413117397272916849750402875330003805747130405721310813762927813513278055058675143284490092419825010915440778601962191470265109593591526599793681021914458783257377220203022111464293603427005092390418932231755586660623854911641134541569247853594668489633723951255948127107020266018632307478995277401146153574466059778626109788788052520208936390527496291261770252099413521224527727209392631288883883864496223208424887024609388988710582631035874928113967972428073891634105571707894333456753282095249004292089853462109698117297231455155894985746305291406513664125981093466597282856610490728306440335862224980627276256914081073783781847767381275651392112579526386132950569093742996076848982931234184621748747487919711559990084041934120768959578877559715039138768109448345806532705920077349205000631639433907641066999053969159535846321714466241393152837336854538265896821071674290359287708760976355448889832798608584068387352847133983056370154238952747315646322158849094649711965506154031629171803608186604330384989945377856694188676732521893554911834354963079616707370728364846055970153951597120500625668186073449002061627393821022242815133961118761024240457902541884479590367257951774614958478152553267661087393137173125342781295454469154859755052662574673415452574382044150363903114689907083356670461786908414751820314803385795339383402723869083027389840599681221347051559608949212721653996904400281527046313654327122479930328616059360476314140755633873570623673771726620784002510315240289635827650712576376880576737519047506677431433523504777445936158173962861214258141386905779554308611970025800390525924316153494031652519847623211854657258639984384728567934700229141907431806346773236531202450881697788843198858250854098813473436650659550837102749226003704951508367790595698081044426309684400657168398991525511213669426192588786829757859248010349153553865879641957867675506379687291114719709580354156825221954957372309400665511128976891250682298343744101234513996450256441213045014437816271742168566307898696035437312033151923772304069364615702128944569728652748677606507540517408492577897116589610818189484907596042751649441845413155359066202560329251791850730226118417053711411745452691260295660713115707926122417238428765504327672017508615031649020772016468366889822257476689395723498036832699022859014653434932559249502199340110499340434352370704315819586365004020356147871315070350781388298330383908298448455401921205120050134225867728245969462208936478444921726190071037992638625478180467661823260508312707363699853459696232522759841192996561427104080140437070759635143816377843461459286265903287885952961590526699049427161329766264751493120821022937784816013744550329034350953566978278991629988062517177034822128778588527798137002001586665031160048544021754538999132039008858359249047080751834330312500139403674733987387504403561738919349738785262243176225483988973617722211148614743174729451960537368678341433091357321301069806012256806402951421930284551512925697570466688046400905391438548496905191434811005241905826056090522371964824343154274999093777770258518380227065691780005478614887297727509564796466877007113055806994239617013214796960673317384966153575443194896225566619139998731782891520092919401575817339353858802543753558466433418185861060926703891357356649277512052470236447441212365524315146728106990069006467317013560754154701245215026325654094420914472003172025559153280023144308213251558263416266743026785296863820159486694668101512315054445273558872346866945319385935023554429255082935075931648972213652787608064747005679022829897210700342034800660553437050299009750025492929722305986905552551309311337142039540291517020203281989198541239367407353113257210624711446382180213330074686335410890449460823212181244902139987933918984460403982298305172342024510959072113898610172984819024709638670010728304971570355598600535723024670698563017333144800495954938189820504858054367899995760831209711108903736492193779134565879071112716053907947466720336956195191337172213483851106858083312843253285956546994046014443274671313719962120455373567017852028460683835797918386482209663959737701847193068736452913680530563006656036516525441026409109746141399508659565155414518273444175247417464837435421132015302600574773224158063916292131765655133402665657116491816616181173371203859521414067741904860710150206738506178077877444400531678118274316619008890866744554842053839136270874585363210704625328898849185061561314635466415412148505737623950854641739241455399331374061595098650351652797589154952226964744763105905132639720688244774038984085726650198912055311313018874850612410518276635622723212594397571365262224347953375987136873043393460570547724745292302992260829143357074673583400187268136393817108983113508051670722387850944167520632076876021259345311035593840098263945172164521108014526251919540760484650907694681685283930908579797706769223354414543761065156220723306366293390240878579346443365786654337985366007796541871895075876072397884850766588192158258587859052865562268360641437345352899798255160606908779491586409002941547832779153938953798504589259402261845669723682009544805893370181125496760126514246786621126569236848948782548775650527161496009966000389288133547260771533256431967412172386274460452353995326953729425937220055349036085215594989104962572241988061638751310595797934568579128364642778108731758040798568601285669513046243740930875071973262164170186418966536675006024496045646400322067611865901577198285828084364429999358329321875460402976778492730256617820902817216031713945035582623077698328813324851441278563489181850776361792038703148378390536566519358489208522558546595918702159624131088594911665092196947762834283149748933465299702378751123695329754823338795119049726026995818688911623870158999300567331537394402318700737370682370287642599302940812551994278688478956256747495912517822840237695509958049681332471997244504341014323387733998914390513171309921400557459527074123751340299724357746774038617893426621853638092929251177875529187745675343939414711849898259337150113268044362648051693987896683803843907093241834025413517019453748964001937846507037251142932176992906865687464216971840165957503860963402423487930957683177513460245070764553293437636263522849777050005869771777875551793468120651788788587904848942769133641383951377665507993948340094510234707987651927371222788389495332599794997784957587628504274847990404702639837992550467850577676796287579260494206719806129117473218847948712696570074350430029381801641689789045756416469197060421502085395407343747472173299772094407334763130982149392678967208382533372971950151238708915158007976569060848823982982607853269317316799679622777178157561276925178115519650761495697213588299047431798735599538295465618343724939355433693653997366059816941850966995173098317337312559735110954761465902051937345226656704534233470003305219445910315112287882113176701349753276128700972913574836890006788254392564363200407497939600432221254251099887267950998014780664182236357464783933236659403585315762049326534335435055390765248656881344532485668806609126875595658261812879437154731909407009748235059459184812950581268355025015556535077806239241043006531934995195186571728510355809718433164251508038779467069438241073559174227625169109513220509174221092958740183549887827742682055372933779240148840411283590728935602573417893989959755514225993212287311042908790037006095966353912041160568992157259859937194358347254519127745323614626266561289220306392036948772894452656054104967200033073784979667834438451292649256117754317169049656771741983790178412348591223161525664686643485269150956245801283796676623613909260539789668952717811859759519410644630379153788398827737422863616440290559458517281506271414054110780218933727201898640649169227483207386032326693259284951742781878364719128247293356848931947557048327066183784777103500730117676045219974552929283965766706333146909780075098283116475361098499575760188655756733309218030562178665269163745532084205656267327946030767553677369690944450569405223774831820450763959093029801856408458413789464978472482250955028664141597387329101110859918886112572396626303284993855584774374757213522788306592397302591741746116515266338476998913995816439467160523060968882771090225732156661238144448595584830075178124360278531356698641836046126934173351308761426822821225211222284590799020250305969847204756302227906944561782220360478724319462399754599877029729793410538350331593421416350000269787882785516898615531188941224330465005717941186537116826366929107431189604083397984221274772401280650860958058868426721814635937286986696854123877050006381523946554693705686025875243368610403989920561166651558390098754893335978608804623114217930388649349427354292689318487938182054133715981075455511946804396834213921249397369362670066329987130897967984058442864917894014150394287654708354295759676061710493481228226958917180848379573587008632508584095386613226435007880799634352306886628300366040766184228480492673882038712269684608093859329107835361446052195573289807598476206487741161078131396221702129610326899212104126167818979976791541964179443208119281460656101898899002992323407453869926926871855242552158827907530885007261996164529300614097280630299062747553550186270847126361929633378549823426198658471965590043029231290666192417201142194617673345023526735669055027506634420684295129003902033002145083995869346304913346312983593448654940511242214091099232100337378443125068687656203667804954275511769873990266151585984502087829695988918145311084188770799147640810190278135549856719502960615928750512175175507903723812865057248304962555112763117453901529106082751324734382204920460124704808517187240850899126785108886828124864920141317812304946489359821719463593753461731325235465027388425606958617929757561887111065193456264177543086062573149256721842524163013016748898195710881414303074002144382596631547310754727986837371602336520280297379711551747606006573868923405025227285616258687246423926590455296721444109812989138109607473908303942117240855595120747045310325656243434988502988084205211838256913599406419802697012825684269468249485638303366601688994715015707239458011493398714446277481045372590566194378319552701578504491085060078324549178955352270795523106071714186690141706834108777502379985985971286971352299121485247913092508730640438335475746455972724073692899339740235764206753215652977242552330178591809847947194887006188918616011531256192950063798644336209974752336920983725188125693343333429230075400545269429966268525877268027961916429558098878359367501233443221676425600982788552435110214021231393569159588830488572075042734027904879937278338729190247522174518207449619058217764889481449773970216039753465212248682556084794119984495438382595365756870884412844188710637266240350097211139261246687445370389377632763468704449936704900329572036186785130333985902085684796328461068717054638921626125361941691967884838468606262113203993094192599723143548218053011606246987604600598485306524900647934846427768965484328783289746299445318250795907766115903301619560558061520622431666210288662226003018132154114856929376835466546001688841193640571923876176220537185642589898601386599814569231772495637752948392159248808604435862750050359919915905209848366190066844447684753637990149779421403612770834436889579999257177020929553440684507108121956122530505030960254498558792799809322826712722078691864638462918517917671037233914626484764347133091776009152538695632391875685179121728212338771172575335156540071463100398314650791677974192532037372906718132408446202869127041814005521859639574800371399550187355171316907602366954031037607831358064406186562409011573153289442707711964473227229865403211041211815801237809854114145371138277336765617987212356150246945557947151795887663698638362185216016940936215701446265529155841214888722188908763520125303368733528144665123441419537103883247772031218976306447881048030140113853172295008982351098838414225060288850540959873672394601894784388703204628312990276716560896364054302330750854039842868277724398075027489402385101016488776232096075210058234276497744808139958490551079042379492826104284459387102939694000488112433092570334517830039677518369467636909470375503691666219405261540953516506590521147863055339642575811348598400778598922704597423351569974349573234590528869734404970487015952850763158015560879266716673741700934654034323179580721371746603540428574978582165135583468183689871272673228995240972102141136253967822367760117111503424470813089233595204539321594554426683371990839110942570195556793269129659544152268187351323372638747381977709828686165632490179750860725862385667602354828044723736413432645729274480809353716201048665469118792642670425568320072899544400851291900234066068366301514289236330302854955578547017027637188693483128440492342096156911533193159040429201950746907469601854592946873525912123398618928241514368027297111989934806227138923249682701530702555158108464600317329396732482472589179886296148504913278136802958888429494883242086597730532982116647738251319136712437690033124054578009526595425029300271430816227780481131309376162527516791023960599080137558437722212020302695934881221450080011741451765560103752160544192066035709526383518141863957309310305123920031197466977994652949426860466038759152627249032940364043080606771574031988826243406008448075952885419494011490954351779530690090274503404718105496312865521752543938442761704289030088403270011995715762606042348607220071316846210029986676760818512474769988168931697531388113803163843457233476710930366320746222218391262115867418995264211024494529798483764772716423543205266442972758472879303913873653038928500345885672455580759161151273467451685767141825288370156279328079807891757800133532740254537046439642021435385089106612057549526390817323926608736893306461803857288164592867580104401020028234947506948734245810583097483863746714314940890460806692070423111065608438807437570633120631429210560266438759557103256805950278606839587444002292564131226360732355433918716309759812305057666811827028091148409131241304731530417567691063730439594614107347297589722948393711517776958624950553873529707963355344851559570595101198245207131152451697235288458481596977384579404457269876913512458769761234741927926166152732737160842809458420790547265296805506287294483942264638194793750954989778689666390588956748922682278129773698087310692446589710941335197728771118851942110943950989780415607375865622410763191406556751094356835325404763303107125302040091674124000808343961677207643319479189335050244016147753963548527758877564326871919827493768646219969177841422869584034152303230782262862900953485014538946549916981732130535814123366070960359497176384159406179843252841536630083542833164088299322187093836947067999573428484182970972302651824835456718800126975599420484923599313507503057904796180080774287154866925419266929386961542398860925588076584345868514642471533923706478112225239395294422072354546819052870872721703310904632740266251063456096911476761881585958224192021786476012184450349008943106579011956047691831715323397841857633258733327588780542950488026061818060739476036827948101308291652975521278016738385670117990372631636538507984484401171960226414107030130195412670580926933651762343330926996785422924434104515195590423007065030438643872254557078128619609670710086999392423906400589367798180652500730081392700688489126958239564202662888319049672440440426807280494842105361066333036474178430737459183403737854954448613135387066645540200474674394001800046912619273952822634027508106931390788608676180321312812688518388954675312124339729894438530615703582396079788614938375359594205664374383434367354183126019838950801248396637107361463665487924066907192937993252153153499536232406235814911778503412737948979349610988170944058008108488548540068616411311672087076266970784912672065482714152629987918527445323766188104256176130244449595368221546530930902692722691847281343428881954827342602282287545633210995011133701852175116604945549347776409965827620042593983498532070651535534879032962067369606396952707609465696835335876384190896157440086334171859912880373636049110168838378188759870304423980492014371976667934733466688345040636537704154310571573539142412574523042263713676773347958506464676616719200767881817846964080994598455495935977567395058869787232105411334940359825903525075602113486274079688183634164515645094566474913924991597238997120368715435949007488560533274087676375952561040183435436113152115727761954151123919896303501717788171635986689330851094438543598918371093498440411151116208313126066530858032694181533993958273261495179424755068126190565089598493204052106989985244776588815028552071534705110317357555538223885957330907120282989586016596194555232315622852707483382923630346167461832357576302029329688344466438142591303183804337747416730192933654759880838775592775264366139897888924099856397156440399472962639504546971112462155802618595535733392280946634863939331684302876953840002235638221489366405648639386410905908329828187035843368468757797370879176874164279497155294897367558155558859577433573839537161005567889494571915127691760795586651388504821377204009358011149786387015317410153771640315957642318178711602356499277524189304469695924884237957493577608901521550759482502281706056511648941966685963190664689842865403618225133739743544012894008452071843618544755122614543704388691041971279943909916382744807641975212169545741308485875890289801061730702904852293755067479368769834054041333807258040356641659510892392692398365760320838266455261072049472366605358497385116461374538907703222175532019277412178114485918572553824685638098397743928682279174535364878488970165121864855524763346551183534464221132751479202125133572821262053279001787610314171077025230090343166949221855790197415206098627392441901827180207827591737139086106652418782514635893751604489884143140455322244338038824924477486504265873963759667283757360065907746619812093931764812931314708127703283542179486049342561858353322110945334500096161253918036294551484370960670260653479243374678201534243844209560963301871081562278336719039395118255076926513643669956762028086090633974864461473629518749380752444667807467809181043182711240781081120298216691240963028779011038442678978536988520424844149255889012389224202169256126069721372695696692967266997660061479419986148677485535578658968733177884551351496288414178024896613939540462354536376627551474428033886147635047013446134516518770421617332948262368030925639207899981059895965797767182394200600290009114434123642141554067079156218243021516727119163109206320449267860505474104953645281030735967299190363041800721153126576898621410318867974622218070707514180931792136011938899978494959791738857056296064898816318106750374924436058904990859883022560956511796025997044888437077578275824060153373319260009065692361208868856086101555491323463542614840338679116391671309595305374573533828492598114237158512686900235597939519952406767013190206797070335296634418287543037520902735830160321122280042076448927703107718793412739399416884749136462209292774512801822282036501405417874524419149931059021917094823111293019118597356132751679935678889729919928980674762470562989756828093391300531063632411305020783550468972740435365454791180801601310505002031027628313631747975495408038252484920723496328899527798631759001922038971867949168230727463974526351853271297916092430234767550352722920070604169950063613132340159855639500292140310215875259455569280610067766650020737856304619063365630458314182091353621188872828066286976737583840299161961072392170788487235530907281142116321873066483129879547164362452382042039744597625084529521968424032422518820745322464957862805162619295084779423504468128523093123578298237094264776400811719265183371376502998529560667618252455558718111175161601833226486988191822475622470456900504050684651618559918562285617826684582219572747250465625787165546824517602779721664788674516644445006426086911546416436140571489593101972093277642251273386395337699381432671932931624501633115412401454903447212008347808867774382403702994885725948602331899835704402332083232522607523887867520751227704558556949056554303313715757349143397711003423913036156504719383761721002178791114300368049713809422316262243831189449910957303104448493277022481787500781528942324304515274807745435515308604759063004827701875704509004787976268822873344834876622282695151587683113282415446190325106636132028796243743790800733397336641291518393279360708457616176471519017059080043953702864359769061482014658164228580749420965111630970870224955099249311568799204499719031908738539154437588826338213035487933112172628401587828774560107215177163035087627667517098317362329409394086824790281440830579539213177029791103929716219922111569790519576109644026444442542808097399329997328144435575303743140677387872602976132204022359680226819833277488005666822467192059909008887504110143131147635741229552630824951780078373101079413793583817840516955485831272652078551801189315535672268290069543567650350558025556721392214207195647132256125696923371838971776754004662246344689782525284102204135419550958299163851205007865754847140853159163875270629116254279572518872869769967802520483750453693844193422640373034271827892189678797061059465436386074016290857583181134248550222219942005479755044899525703591869300937850064089195624157087313173587692337453241134310716695931939367389330760918032220587616159033201974561310005114926074214321460706095465375454802884138820203087933904909768356963665082044316862277145708619665097802129574344204436728413232155881513652332734169913726451982934797959279725221721204788430147078675043640876492663813635915732287782963439161749214715542009352403796978018132023298640953786247703804497606011722686791917139046507892303311360139304503076119704739108277659075919915285054709930303803015808971612106748635070565202584584004746310664251930258969106419732595151746698768812520999842697967355287257226655344296332649914931724786604368261142457101573808945876453661300413631879193457368099142342285001456690678252133567070047423992661446319426419333804887183288629939145549675220999971022582054045809086016205952500267910475220948793161968685717782920519130277153456490689416479285830742867835428416460567007583625819503566925090651977532513119496644999148024531199033373086127856278176062211579113327431903825188038891931464570306169422726334999078642126595541984965656295033126075061001363528754907319334257736476224048680470320763318270949548297592323969463194456198892826481800584520092059144214220862755916416238243362789974639304780492872844394400839763284644322908221061409322834740494942918156508027437656154198783227100454722999336306316779524213848315347980340148930181824803218953494648256122136617015110308316967870022338992138303534045348302207963563456476968144224071515121660036708957433786174444460135118011702199574316525513726633896703897039998584065844709284902962730584828508099056604255735719917528173805382662711832702537672204847247290551638474483255269510096739133672876707289255843969054141315881247711552210307766904179936239055376707645346422747381642410067304689217290781342443899577567718222463008037742075988424223484329094843845462548000500307773682747949040092439840015105309525612597050642098979227435789650116903880225039896299773835367908646389419208083178123491090476057539309106155573668392518001281603774348473553994910644898765884231114142929632065701633686958415332785352649584984700390367705622243230594312409684775974466619950978370902010036092399326602517399950577871066107967195963671413630082054319086994313178473178572061811281797150397632228930780217991523391893810764279727034760924890470624617121717520220085446848092432219705360030583915320288169022403083179017641349013034379350710537287754283379215929887822770824360747243926172032974897868250113083193880647665646463640014880236040482681471549699123236772506553608648673520626580480387675308807567624166612594421444025867580750639499212147264770743112103395226102313550885957198969947264541784763244792628192845345294558189618621047489442962933793223966289098572903016645167816678572639563262364418699282386502884100593845043950717796217890607390638374693739988324978227944458612474968585413028334780930740839555513706655298296205844645844511574494392798274918593591039933647380685168237625432215639701136230599404322485191201365693003483484360537959719922343528180849929151445639390432389082477819626573669580908383068581421547430564480941929870511835377943224198869263451863516257029773908985018227408545878761414140484401643298592760405210453668799575863601233321229175071559329683506825504732529526284275553410173973163065239363272631450430413001429958882256468388184267240101863732913695197724908724628124285842704305173823325845525679131495065465019875240069647174089920317234504651437024575606931672080741067625485521365063493458438657748328299839862598806968912519381627752498759274176053806923186962872007865316319901843086496347572303162615963911914061869752334126576974381595401344298187188532088688530962225772529355202506238454206012880066630810611679224617379785528868339289245706812659228180750205204285621397284673826645524184243233619239162930268358731799174961387552164109422053793805761490208260261050620448899241063225089263104322410088329884167542602175873718773522719945604113685205399429410142432283609946909567946887411799239164773601607712282408214200525392673252984751243674528651411567119866871223263951864904617638195411578708023696211636477715114255275790377671360495908340951041593371018211426230758226634274717596066569564368686129165573435733540887106515224838664365578283407310862832404227911715999702838599349245616556017806748221936066308180995355380550897492725268269090922317314231155464976590037814134158979586396357030885031537348882053180208803490454762476713805174816180257386008087778746302970339496536722444502644223694756979074847869185134760914794928303645204519706173930899225984988975011252095142747834337436207666471616939007359415964065328725149727668141305093738379622451473467601575140993026175058095330935277922298859835508683391806793016863965393240446312454805759207426582979586492717342805480538764452711238683265772042531690080827244027718330257211130309261555935139269069830695341310052402463913657633637493639927344475720267994958592917320406775634790401759203076920748791407210523249175304023795579530111536117046489335730084745767841018184477763028840892665916210062034798777202602383353571831522572259344756907476778373484263169704643106371473623587265185011605533420637312458984980577302000793091067769798695456795085100797843447770899542221536521259742006100695116397872862955033864418879169047499955131756385549929082241589669661278012633109247881657289427712537876371200600870604195214458768681619817227025132928259262844062238619530282808675148279269115653541153959297881187296948929101385443748087265568813891394782052086008967005803331753389708117420976696136148772124387166843681796302743197308672287056603173700647820920943155159924463203689983038667349543581214090355365290782701666864286175246716199564862444989423693365486402049638303181631828784658792044612942821749906156096031153668714587024864925851566295793605208932605826380871725708521606064562496886992433344218075362690668984544885426605724223261973653627338654617670798309745146144339021224421952929173112922799276934388265927752631145815628749425714147704420133686397689623367416495397325263005363109822530756897930829161989618726591662229478548908191614856074458355764144163364372366482234240173778695125686735451283799057017566460185853689872612742903863016316847329024633115852330005476619751301710397181866710840919606951600519489471496068604458992776598628045785459968406232852372351659163163982673993364762703172378703469126265721156304382572086093976098918033223791123709332443865498685469564349643447817314210263664675844073458483632035470795596247472631540946459933658356475484954665202725545604145688003638420466269184297330276970315942798863993743086349426716796965874582114518945491557810319790732972020565367862988539798064230891883111186470777527180330885662969150755126204183969730211348463332429628572772218244775075337202709918459670686787608883306380820964297100116841591431580615539199212849881286029999562550323564696735910741045432922274791475214495045176235276975576309953347611098170415612031198358751026805565217228078472715744316102875267746950026153499942181263794831793183648634426170147589128448520279272231637745921606054514791556085521007189612149484148333521772433588523400333453506750831086008077531969078899260324422374654078612463624294418650387493733287789191079932523278472327585615660321909268384429332719959934696808703203545981780053130580580285976003901094002666302774230489081835569876117793916459368408651723794761958501086734037285972318431650343404434211238709369818961127756409076179939719729797962937692058335875822701349461577384032718802935883858743274126527055054721588873391238723352541451053218268832669459417268518605477779258700043785890729635546851806734396471011944526135029016025652873515069769879887124746857268851284224665239771165723559140593831684677612689326367275317082552854696921081139750325939657445411177559904753127330916769931108008612269962257193116555679775226022828276501281828898260622127980301653993755179857551031041592338918597617960639943423166626484613300279270954188213632203089607975901774648974746299507374873286443014292122976285290874316181318628852984532059068923213887754383722879375481619703995230340361627253438459650977995572043996027411259516794554105570661560785435984985907301414309989315876356311931727187191772531550192178797740617303742109081859437406362099388753651432671208025157666749478090401265372725233847331356378632604905878418280261896961556020025806489698202203762725688881366832683614528548334224130912964905402425062359385918882819539532356892409262409949730335558435943122891195167344279923378123277197717533076919344068956692545263719790216013737548651319564209327637877222077355823246974780311594307587593070978664082974202658631250801173174466299566126312253647229490365299866317066427475499496773290863667395696037959244231554819365655615476189475252131330092007739414031602429784420389309970156140126042920519824355002455968396040821491271552518941898587241295509692047899795758648810316757055905763844770015188298668931232743957549760954145613277040540186201228739984973572134249560801452886946198623280285693556120957258982679864188109448819829084215566681518374927878609878016039880551466272371098273783406657680810006867908541091520893920989855492430652006300583883400992561965971250281468102930654245778514149958288254462772567331522995659177422499361113731460840393357757044924923726318771728625568590096241874159083015560626788061798474351834730409662359479567569057041234987015972367726661412068620652784905739158752514695338601954186484693221209603770139066386737059492458030080562293447416896463899063174019738998260523812765147269534746355307291052843689722970901253446621130676346808260646127046783346603277016255158590689127608537530505732185828495425316544448765559604265783598190970202712884591636431371632203323714723923439428162743863264729940628870653294725598212738624297639817475481067771066476446388963448299525375777652647677293050190203031455481021792476041187487620798478874860102573529913819496763128438002691963962327129915867027630388985170599543581947635936126821324283818824585538373305005162101207690351330758468537057214080002620319623017036695335677636313940752656580222521406279675911135444842108975386270687892735770938487958564949922136556435953636943360430444478237355543567029144381819820518636419800599864063344314438922832497298264404508738946097312935989221506436320200762137870352387753000357901268412259059725459418709726831226876259913249881846294287577970757493342729904911165376605229531515131171499803520117041084668441247628924761800853769148402236119349805209378024249303277144476827948236127733739678512260834224959297962370910439406245727711818978075598507256679904200119266884698006911711669478066085926327420240814141381981872970920479781937981798298414554593473368643474989576146968902659139109801863216630767673804774231823478854167368814620260531143480376088332217056587428464411544102864300369274550544990898632298752356265582629159705523141509137743918607299666946449958433814783212879777611879783865309056893954087067896611714528420100357831835717581013713033203622345122368183043165210473408524484223260981623814492115612562742977136764398435155961433273384685049095228607131065774207312024358447547356783118285679208721417711856932275417753460892436464507532381843494175063018007939548612586141807991641516889289692252088912383224222144791093891047464751751824843894969761675059185945360957930842359814925803581746804080739521049080452229834307394377862111571036941452403665915028285543319762986178569433007939503985949349671671656175294615861426801902205940780855239014222432636071886177774848023091600296160735122881138574845598561033570645958896391560543375918806987510650743372366839305558850172415993876583403137179827764351096530916498804597228171941208983241558666593418120152726315811467233651515608689497260205371855601426444266282527683555080606658420305361358481447927719733977809199285392212249573125031928514782290976421419587204843938975527391410082576962729445691878275704006125772735568414081781807883299663467486548525254639286353656038302703637199868402698300656476466214086608754257185214891287134515062996342626333387146264049159181136169545187858733068405891694658181151815584095778893798381218446816651792192130605072109066011458508633647503971094281914086131826628417149391949097469528376920345918494214097535788984678687395276748745018704196991370925068439392621293755394537163735852299267469810601627418246151303255015167969011233719976849269183244625469301846420167599108501215354187054767300136121704991461589740896669721176722569015973052405530480663097930643075690527353367402759306523346140394922320900739118993158840321025740340597362021559179737835936858298337631195995426755651382259294446310609889239429119429515198502106690832781788212878698329942335426503950938890747910801715899014953635463027543943751022184112118955468601153320312782200856794561148531972909854227411167460670916309665430524552385656345730865223529189219636817801459143831699942412885334798080391775744083362672020946792901533040787273270445593359521731832715167425537998819225473631190177574416911583388702202252511024391958271032862639130934068124841156830419385513663509080716607711734326563128780153791104790178035422576508692827869657299336763528007737579639802918143099301216463228473597876479124711088299535703074069347841147652986968845536390278535475624266452178003169266980382139197793115645958523387749103584763192178721188486303064875025673295311818726336167032369807878189724969993941985288279537453965266725689763784892160424124956638072698781749282090725375107917162399760896719035443723102120366730010143285954560954037876894931302388065691897141990480238926951032286538120515799871461953213773712475733062974352803669867286842881771536826875659188933109893756232807241249740026185618777636007006012916627738500978509245866537070295585960531276873139244888832109557140983260053738072756823337768918623571973353580633798925914696464896878587874179213837400643123920772154333706615157383692764931275023256805937649647094147076029496717092618872429330835634705484012973416337660954496811212326336741481553336905508171843383766249049619354971839369298166572354726970923860675924389189868582053529495394614898759802159818526493277283935274461398197165732644490415693045922973864410246892611953006026130917692855184478236951800231652569987177747785658689642043232357433383191903049120349840948906065761582419251587014485732540823214163979573200959288979315275670685155078958790112183675234742623838968795561055167377886692568781291513124188337273521964484191424135989829018136767496255488567479997204885750653122224234780729465681362330575659063878144891893531174275239907916370533481862237063536735973959107926823717894871397210604574000186558828928358130082311171651789040832949266505627427179476196825690040455077403580097988724650149017392206652036785874265237448715568582146021559960631449640712791444609921027827349776924309877400279741510420001071129774898265139493867927419241329195018248044237044596776648046091474333268139732006718684408435891540444568013336233426697550588285244192956891646170948640123950801770378918569866144746795897624508323257417259322148832056108885758178064161320161509710862565320498518432939545925906571099815202776350210365018752527222058131369591044499433844017298153301186828268230146377863264357666687901234398095276557577158004842513667581222944939967192053456537706439766925966085592781719832448421460110543821113577806575552912585711130894190715680607415385995248348384707169269629467914755932969256033232513366404131448106352302230647864551781028611836700189652493143555556447618612590787812724086796237976175329712347275037246393705980488503298327439687051469255914491440365837236088260247135329331884357483299094340294890620938540354606136315574557156996015218286423779454860776464662082514695824747071128659446025357007051538565593087812185318035034914589115525725796166766816205210496175696188543565085858193940848317491569672038110984935601854372091342712914472227802922146810271040817341048649447279815790054869156353805603774171699079148236693276349394248162368763276402540427510287646540882591951049544497100786158227005441904370552292003584149122799576110627943967794422388907983650735538577284820965150144335028053038932678579638161321759495334163648427203418000241174074966050659896240128919839993323072124302791995925735231771847007774177855870135065029240963315958405746319240955538796206650065026860280071586786675584331195034665918442425493025666488741353228208996233926164207773017022810886899915079436506038503156452959076264206164940014650521782238250170584796897852808233036282396360546161050082928597515725478582203810946611188156450904427085871927337425673809705298068412888744021812377669711506723029121735623323534679985620506639481050054965693308090676452724910086282515420341034661157793877838300528664954027080848554466762499780500348772561980558616595559471714597533745199753899518712968901246516289371683750186107992591314112212449595008458437447897192857585779547991405701352721958519474224730261968827648099772761129046214734965345225415428518165924777885205429479254369072503118712823145058106119228329434580621354144689014388245969490828069795127407826476160803284772242285097295783640477062145932020386101338805874743549370301973142195352430878273224839643654449379855036656575980557059004526403970972267222375616842492960101931319605675053024023382473410336349526543493265905788341811254356153756715061391744262213216590790981752720426609750672744805457926242574556508869159284703923497702369203211276459793957526819258914774015195276150215460110712429525730607705113539559351906881580739759712909833983463211726961666858287617426975199872545998408722170137592930431169268672224108045874057661631779657382069953513372143562612498129370298432489643495898303434104317098768933864332577965506715811066296523745084229569008272405945424997654042767405270562082930921470440551264882025084064737638580324908900663355800218694459574024557210037121760189948989075207460102984136462009840056085081225452927215618032293870364076593682535935070242369138770129263928434496904436229598047024141156537360180840687721837076090729141843683462517851533862892054380676172948240338204421684791020181457229298882820699237994354810194965185288971567969819785342541559725642593006905091850274731987628130315522841481894209925319739270153731188118428421979702485201570173180688309515003413859330836951831892034925481531703214711296338393376571358644949494208868781913062504388476155627600335030351578830871517380668845214791953360664946922985008941726537721355262398059577490947837640505316128879329719466751571228441506951022798591928048803737045773289479634921487078363343008886703758023356379898305867587745301011381840103926017098447214539076987169064542916995108831474910830335314008717379879529182234776883043958426876381132940719586826108940920868930921902788076093121218899099875573208577934237253485829683344237969654313409714499483996263927634802439615613093891191789898611712905232054630482069996874300186640218683617178129241357411063553054773207001818877598609536507797020499858010259282473045471594036063701563478454919611488006504121808895435729886545947648272997735373499927694663768841437402061234492319140554597307798958823269593877325729748969587785077838481234671134746366985230696381606763885269247569194685785628899089509464421179449980253470479962378251109924114365855674254160077502295285629051645150482084086164500432092325289650560746408648063372467088673682274928033924230194408694184447655706187112996808333694467507748775044927471884262892247385742178482294286902439752699704237876746535909951949591912063879021379802411714085049944007687905246093196078139728492570969638666179055996619035811466609661880013917956135535656678230551449943223700797720616586215873149187251349905957474268259564740681608254931126563716375096158895620511669483559731930775950635410624913340466621901860518156011396192366267149005563364959924797463032068789710463356977246681855511508753600127174187272061984109531979908944874453404588181700161589969595444027236621784435786952936084134166734587252037199458696123330430116450604806383309422674898433515374248667459813973158744260280842431023860915069498270680201111293066741155718605751568187684462252553100898999918593422526381824156643374352298415233685190209107617391603505054788264907797105433111359856353826289112059297083039084081868939182288363877102353287226945813654661605314383603292832305306224539621151535508695157999612661289830945958293514426947449946201962178060536206809864950365847476223551239626645323296078422419958884488651508565028217859573020493729423498554000109713000446299123840549150466029463253683898387555883662831764022537232618536374113738389487279072766481645982430786563793252253791601035312441119216442025019989088309213330005077500015040666898104227988451510634742167678345842023427903615733296581248229005917516349219295948643070733628686333523415616286365015524083123133763724467337314356040746503703691878739164680529692980852895280463544540089727667287052136707759584579000395255168969403879501579181585049128436544657936574956263012855830084895209915320513175765646436188028644182038056303259311616555461770345539109144184170730037288545061928408530280314208984986925237490313848211852774692732503787652453855263012126810326331205228800186826402464107657755566579263274957937133914326819053522026373805259281588880329158344824017822132018891644234565340645266324308290147842410082025352588596167340434095136012940417373312106463408810010421529928299761423657619117948985160264141295748524047803940456068325627653309477008041182725348812131807324619341328235020414274069227144038665330159193498426974494422019845267661483082804654935748534769716207991971707673686730943668656978354524188244127828029909685464703979887955173741401731883883069844436361494958601221501963223228329747481302970657147442281667437407867555653129150448947792048230885297213503417140900231896999712772332625773718854042237949502475221761631770025289924405517530247651288512418940552697103330451021384070344690661486377333898281456530990462330499603300505355525463041694063519622166293554635704745852552242668571424743960583188067393897776460890221090192773093919160054053987589875812446000030595615853010837668609832164799196810790937134991375288975873438788125087662207036688894229365361593938467087369651799716014671151348252437283183809572509916737621411216720915688219405626062380773122421215519656557282500660892717308238526631355862675448962358848202877012037512632525072815680741587298970875820548134023113584533910938235130891926634554022089511844240922147111796109317355930613487016689104773327556043429662376684359224542287156110637663432282795721659663383233323680310663004688446627083478519364049363250357963057358653266813740574083192800093480018255840534663792259008088186829525249000466171620113219265344622459391710598441894429479547888018716489855349459153348830529355473246361225954158128776629430564947386763870732364374158703294158415793702505548508977398091085633171905528603616168233402052018562817426038732366445466813875657359487013430379092687890309704387914688133872408231662127031586779908794128807498662701531301496272644451924505945841704043774405885828642565877319464452152040697786381876605776108325966960866569188411106726337830222235077998158711517977724030435439992734153331285406764797263963186957779589783780158957772939304513648246464106781237401952227077898639269355852973320386901109188738375284534741005288368249065038765292136020764166698075881497400248171623499948337436088461060855613319249179605412608240634751451311840928730280352159346113832439251143921222631430762185939325881767882850932460829597258371570003860012882298297319074932919882898507401464332221832806623774391493110619619920412465507492790455825711705194620351827964395230719777953639994085265447728794280448525104450635601287969320733107116504824833430325985896510082438223779767094340815649968546765469648577926687835510055065334232709033908861364977303891138732284636035593910130258285628171992506220173742858195555853926060729362340828847459828246960886940514640429853124474108303555537540105425773209227648069691357398711276708529204760477070907949216644762461534813754314723147225887020528559980453416820350253375622588331682863442298498809696539166101361270123629349919395244996306850424449484884376733903037897848528876251854183739945130640466756119485615470087134276178011246176809082731837512982447427703574002258865976024583446368970655827637178256766394423723524020212963615822493075682730500902997684778892790370389093040087780339634235067120615444464045681101323953894383560034260683667749686675156564577582030121230221563953737471643170235468493749590003459587880150871329381637372149435265422549350852697760839907647532078347084418531640780183119231291336819670126825542893272597904746583774157980981542791641808205316317333992415313567966017248065725994536958341762711911917157591005739097194178011551033832361761049413223475423314595941713174633388341581007478273573377612056468300898970957727618558734944542839584356016273753587614166609461599374680638853428487712771347517954055538208313857231163724254938077427899907288959422832315428231341882811469386675894638248962894190957537470693558630439663487201328756447304498269927250845393127601788041853124833939200496835489729974446006419402423458892795534066306722454388652705608897078665707381201637873634463472459751640258681006206451943953275033156660645619209145769889692234075777336870408382422200228785408297111448669186856639465321549630142895093903168117258951519304949637328340517144860828988627766571713166409734251630521176665096984206682530122897608940073392339715514931338467132439361736891362795918339759557779936375844511181248183018054376412959309602578483695292694003190610536430047807436537599057429728224761292000802417019614975231791299731853366073240459732895423170745154681152405302526172355646889124009237275766386094612414272530278787816280722612811214693908802566758584280991830722302757303709304529798473660952578574317932512575282137956897017358218731579944154908136031823646106901803601322316907086341992241329362817171724929258885285753102399163393464634433261166801783755994268834295075299624533580976218736208422157360081866540626420101982553373981483639607776418101059196818570573409772513446010432864900810517553361307736960548043464621919244366029661266487449508191075164870855505310004197918200645782575788351561684388082160210437465456915125785345897700105397036805953864352438136187231798276657356720319868199614290910827215425555356605406930551095551761398243839120630700633937206728647277230348130286880641518722231708507074260059979039251640702696537725392877784286966608186196052218644018723285875090079439877473520874059006215887803469299824809473706104936652186470094125204817496634644357054819632835416362925379645607613039879979980176819351907129073505328330597201217344079178991437594702759647871074998325658111177308748884170178450857762370282045917052950557315112776677929966000350311491912277893438387194899882164502307650794287294703957986297224690726795676478471879805963494342466680994754250920706986518499293219052671402009903216767589385100366052103943394875372590906134176131027963646239140493202996307105085943032281887416377580880670024995157016588243216890408453537327234695274159744577017752831325168475070083925261504595296120743662749592441509478793691462406230298573019923036660934662940085537999746725147880692305168983123684130985773395253335258843065557303957332860622019756347312449312728105513505545010752821519624587995663845744540023274560500544429346634411294762304503830577427517880744460222496753916112547465633178174917190754460798965642727513912670762862310124938714718238262227560266124779087542068995741242425604683419525520729948904783408071303046893683545387863658191677823916845189265527801559930877055982123680063580034603112542270723249785593891277292709173772791086343426540030884153367883347883386881102646102345327389315015627590511231902394497614837338964374693259325159080220039839033013300015995391464303327409324205569272957453669219102333745635615317693497016204776213766440649296189998295642281835429789725615186308393657622725283915744167753138506856924180448945252433772027859998471283809297955748002924933638707776675700581742587184929696402965871103206598423164191278822075270981995517364761931549605344523251068044782199639087310308041156717839661846253509463804069822004588808245170631070775168344914689655190941874108666977792629351752874366713279552527415450698524603348321463638068559698941099247480964934009636441332624420549569241773661252175115887302292069972955391294537380313331747756178122630893923618677977364292759420849221773441771334393135171382464531144586626972340342641985416531151855553315407066161881353983388940003912338007907718854274629007306623591061139359446130723189663966255206110914163481998415212247584641262641581458253453167331734391682384561096136309344996356707870125297710253180467929325520383693465355594618152382398650134510974043002411474840621034857724196233873942205398040481190855782644753897515700878844383363744187474845325095382178420150522723219998798547925022773874493526398783589730648893666402553019460905733676159680906243259277755083034758974693360138468035372099041262203787525938746466985097006369206618987130047165194168953986365270240554449396153379832272409007203206046698360682692277366599445146525312282565866648621633054303264529617229079516744430974584391984701897735567936713717482512645863487827452044547489509585731355975587676076480366488290625552580485736516935491951501761638773299045778508660451417830902145193210520931808003202351924184641367287824511325591445359279209819365184425462889626729820278794290320324151612657954473861856783976769688955075988935823149296546968667987454698007600409217997289806795821161371886782628200424544275464820446383583361108421836778517943262291532806714801734261544494074277350500237651132228399601308425679334520016475605434320260783667414053864981293027856728573881874010407300979080056403703218314401815192021678466261391197047776387173565693319600509536759633875061302277616441284777247547608735154935661357062426971422661198583133819422999970697117048600753143554477107153520129126557154720002788926690486487514133479270074746079822356631634626195790850340456561154720459058892476918303078265046614630628313895812774785628570578950798419076538790699587028169675321168830080098565527478624442752425984811268239573370303169585075810695648441167083436643890228996198475343975590844716417622672927018680168748201640624475060088190788212966830425134114268520114514625296233020816556638498660227335267396111006447840471662635490979922454238804528444318236195513249278202963647664369624669250819113805866790345995771693867261367884289009486788954882910470340799305544165509447254790983734792287300409663251605438984426829090725046896972270451672753914828288784393473317214054035664600371750051989058223041140251965278699742476920717495478070473048798615401761817322430932210507227658884160657628087971239711001470954094166142242999360205852534228314207154359538433199946130277966829885785439467858113584131485352612203257807702812692178098388171792684586639815201374981554045381796217888708168419955015924722525183569306988851148496124005141019898634679990672781648409713436488050029669012698014338881747203012066360403834158725882693558597702025890194133564271624227281624214094131644087234822885162338824039804147839754705537331587290037407262972541108520383560456942111704739870443527576396020291144573077805990599082934880753391928705444446446280477328240326050553454645465904992331445329555352934219735299239646063006931969938524915149409811493992475713537945049041654313949363207939523720780763782312131639132302113058282407555749260330115382159080930659297925572613978190338686366908911778977603805841661021606874890778825501098082463498621093909848793679098689040294900508312335215194545949239961053302292938079672069836911701656516975076015637545439798259190948449300733720043133947796929322508212486284548590086723361075448824824806022967876213606914931010062330221351162324169917563961925765150057641326603479446357306371944823999239845507280697143595113564481571977248192193784351388541619857172498162733668738807324001144918309488310510272248528478737686044090300863112333642272538318465922005995627881574572428548710938019415502403875246463138573864675575024567581217407956895792621511286409662755719142967099512781456356556483455862748481130579801469507381969316242719018733999219822196678037149169921037631747771173492618185174829792607914480625366344603622381836157630626818687427322250316792289158059435739536288746902899731268649809792220134332233858609130162846927525300201935707165817758371251406808622964100744895436395521928358380812284581528530926402085161062636532893442497699898389457877658897603589138286835962438094341592362534231430426796591208848726994028499772928102294707322845378810355089243117041905100596240204708481735590662895611139330183452935745849307215303551220256693655133589283100433772526581457539243203154239619752316599869020304681613684944211943359192846743450776387632228760778539671211040099635472712821883898780112524373506666251861181015431911539206632495933305769772172579876672959773285062852115086724116217805486430375605882655227550496157452904787929727068451641788887290047623809399714770854464591925288571544309806824077166931656715058492208810806597599088937148482048371657034060679468856008453233536251784738897767070264210351517562283272617026365452755065690597809217867804062612379369779437543430526714567349706522671959581554516407982084893799591681932010000940995432766395285735631095386172518522908490742911686482223808525255945130970333608758682716785164377634939633877311427323044020341420463627969912212942950170871096180262060318311551354340546333701779913531616688498321466863217232067923547494288697289369839716825729527524272116065764100961512297884198156101441614537038272212999309859600066568508454951075207457829774039733591215956039059482981806229496892487312681917635756017436500630110118417838955391226432021058469048017072185902797609511218667371926449289990980506996658503080193413113728377843898068353946114513474762682749297185276126254037637099751130477173461983922623358198779299372587411202418087988139901339245880493087953851220099931029028273027683616199774527040555413074593402468746619136037951632252255147134285666103752858543327554439530096829094244030214680523699483679300678926906468583393346849539603113988198413019000697366813253431923438117483805586328770328097903884640162373108489476607849691757343713261099182981644954826618931269865374512969878695637062021127328324459942005462837664963532782531827550441297625036693102028572223242062325851316760592562381884449561228548122187163121410588142676054776573052435497898268288865498103450639562984182366318496713381606296767588960208872862524622455304305845328266963308686619749042814916010351251339533632454381005479636449120055056924122209573587164633285454091320494419620733056964298951335690386836175725017910628011230484336350852304505214475453343427411787549028826413991909299649352747103737036364343540738084777565718900099447278776142667203136524264745490366973169362517455857502552737918915197700619759153536901420684311713927083107177451478380459454367535374011001518338163331387888232920123013400033489211191238071580445356366552324820178691682689662318552262584054075992509387268691703802220840620850795139757567681711931911458705570699989757510931703945005064668003587287231035466843991591720176239860665270230792399965005351729260268287226239647546667205427436231825921899631352929346982263700661672970941880995785906586805476925284392304637443453755589381762410856532959552158874968815843519012862607799365861307509575940706359708326316328329359787353367019700455649307835317986239741582453633498332314245506593690472306907623100827296690529934574299594449325429938969867187793795908200014736750763117252947528090880861685192209405034268418288341881425898661500910818686725869131489213790657784661755352194650883078389722403127039827577946524284610216181872840808736407815337650592929313921358442288410397213411776262152945632014737253977421182192221550547051482647775697675306398838512211300662103597510970140453491955584289838841782756031396894393160660873681357132478461031322339653953690350938558484023765302381095129753046247876435834121871357333404155400251528368454640576094882418940617029382506610791084270909435516384068719154158698763494616005989735650882767136278168898125156702658862919277974635660174085299796540218429087929094092468047149784307825915339827023346461937445270391540820348905930833509688478235678005781026905818529855387979730369830764126719392853383013903359653692949203426758750746711042045370940848783726374482825302868840442515528972423051720830752068850489382017437929725451453966216195693026235969557579704723179816571912059398016338192431321963095729196526651344274348391570261523926687132375897969908413873682296381320304559620097290307209619141915300584463611399625564320166602618381675692539436383984490037299943532962692349513998127599067525816457443598753062983684490920674295589377405915791832445047453299878163788710337610319775878695351284307706419493078496737053369197494736698998199586278791725403377929471970994760307510457659894839654575638735826297500667953050456208208710335352002182650651339056452798093978488897070039816043931316641742062959286543108019778590853496323019756988561758681718958850824017657254582239083097435959504984273603425724617655897980311652067073958740277917881501739751998061531800138000575164377985890118804379251805277674768264132987091872540293763988707001103275735855575837098997604081614325671688810692104757603053794258132924928812674019405152171086359681284364880389773587371977993200521879409797270985174922062593734256974192013392995692443726474443585029071435161329056993094400309910652301314078624765732353914045912904915092881726632718452267755008012228227413122294623532918143898208180112809810037117870953820720148438520324486022370417837927711768013228204874645386617426009938759843464166403959811409062016617735068028963893878761896748045441820900752128989736165959491452505609739258309013775794667238725890113905245185549928256229014014500624028110129493984050302068410497400344577526495679635630630590026931567645553369797515269193807225335301839299898214494744602824384687124329034113422890948955149084509200027656028325935100910686816970598680133540764826289766159871070159539306657130013622073969861427256043085302944755877557868978699163504407857430097191483241493820473176652573848604255187788579781392614111207124238585751906735839971551913561708592419832725331670366681041031477080448524183877890477155828558262788654058740840505135039605308860277028666868910439981399380648326633643071557563093295035171666881069116879208113323123681473980231505023246395692695302900652787675014230177824298077337048911042186098562574299564776703520645057480184552573122385586308554188915352640566690196687477925636415031943769216314268363378730354367346598609079944437592692305648061854467160707713089266746503030728917005881968754562725025330258459525213921407355696659792915214190191868890316919731815205515658740560546365675989349031076522863796168290639216119940425924452072225999448130706168946958421588373131228373415108992405516604678658909636040963204145220098652722363692638848589419398817129236729241464669953029624593628326657257316565752822982491236506799430791548721969617348898848813065904310341653560887004166411823989675646844212000783829037203361641287726495203119403124915412901799242287225963253031840633047726712480789558615961947376908299897154347705076418283211767781693140837261832597575921275482654793963625344297193779282108293594573761856693237513097619795114803686712411438757372525700511109590928509908285546853369320051641358427108932858251392332897407036207671813012242282937980710604213158776911444093176474948174091515681083256160020034226706756147867623168016626565293107086657632275570267190287960783748566992306048567471111767515303419747432089286654392545154707739544339538483157497951283786927037943536634467773528056645365937293062604265641782249613477755805665971615707005382978790150920878370680865602340027876390774299134546648982723792221764101783538645233932925384685171865339266505290735685750593394397374857387025526377960146255998539088430524036267662587755208826718755043192420290076865356670811373690445136468273790837746526622717515738985554464767580758258397654400227672903651323132097155132235017160819104797501145915741770543697863537393771907487142558169487010627102295192799405993741676471661643676998340785781641616372032981737319971183924317704764364992464085886753537394229855801632105494892540532358111215896247868941358203355024239380038457647273091126861487781407530213645682484739958169723893460215691033442498215596638978149297034472967986877150760131630533651827995319255005754820783552349619312281745031289121668051995263521221303386112189568371359456966183949165871709976321021437473016683628982307859609387308464021942931089367418934238035071864904086765353790187673273963165179378882776201971221961966369635819907182590476835029890093551814207850878795054056247091628216246978525817161747081506507769956964766950417154776282951076842488328956753739801854775417372487719666870262410474853780596647605480663705552555993463346815958003624359078952770847034999214932736268943552608046075711273094151143984107498673556350214846300716293550549755385128858714169660621615128942697929123535267687748594065802523569941994523751882195729620576672010883844343485720947229261590688251277681866732785350829395413951268089249773653222872900157432540186260668748947241771040127914566594837433356743771073718317234540618052002952136523019013880721315262085234119703713363891114011820360490294419989584707535612413625081843439634736318702094766567079912467641504652885441024955010255111412798562437384195865197679778686422593367636182008611316924437184239661316211478206258227082764831761655281752680985327732160758795754156091198454063803034412073565097308792687425530831136964480300831364217025754099068686806019541578248331529245654252627317011172300948203588143649091649820151030685672716699436407410472705234376527632452361736694079791183834274984510396591733924929677159148833641077267508542766761026069238298490084635748634091779349884230348235374660239367870861787200461621516302129928938050437728175525391020641602106391923431254541094642599821263666992942409693343789783593347942744058731261044385139446947954880279020121951046302311014709572570647761655510357753000696149473133111244759217384946376888540416153130110540706486966308820035921591168440520906497496305741830557493877539659557150828623863851542378356586398266340245126125138336638865150662765301829828264578808818302031968501005815000798483256552572841764828781414560957222709744975674463420451631203722500775689036385806544820766686761058926666240443050601353914344181692813884468749165025449926286446235374388922657438148741266198598656454270033773393474412704316102506772824165905998940831594517922587467593862953615814943202802881069165182095974221220761880099558391126039560100901418675478792289703268685971609453796783454738525239584171649277378822510802540758239179901964714599095107755266445760978315621799190936262627430704417023132314896527406767310249928193127919364440632966929607211404063469695522974838086732627987440013581469483418918498576409362347989803141614959853257550337137169714553989274420653022400893868862203096164583060515141075022608463464332359704582952530727667258955411842671779058513123240220117113309597218786660837719520844036317653386581040229339431947141694035592518975095827753616678485245501024144672752194247657382031174847973926224676468690996869955332424996897260723761808405403373694970791392135179706543354905859056939421305826470340096592531716456396511245585837309874004710955421885725202150376660134403265310258855405971049495358010395682872778223039420267263782224994897978970289910138008661609474509326295424652660895151084132395570365401216580448240905112285991296505987275953952319463381235196845578284031362146784275702030779106809310527655153204753164993891776741393445033551521384282373671219488758682659167038292703778516956529236297755303183893765784239782317575732563755140608605600994317455307105212757106597722265733977508910426988480234591490845930485011763614212811783520665508523318321212325622434908457806688701239088417103020847508489156277280766534309541566253746603707817624499686125779322900931787495956229344580228979929712189232371104773020998846716563061738159643141385665432949295271265305340253904640468700435793793335104132252922562946633038311712665633333468321805077673070118145342113827843358146159967945875093708998003000811549102715940691016716771728768753790453311279243744126066126667399306358637305474162487015366735622613517963017582676146475343867859185787504205770991536509948491099306477244523414637395761182332432214838900968400957036207506526517437884041062104048744101347660800504196702779718737018298591754405293185183555764926270671459167673058715814725697169283065918341020222820814904453920120537406793896451909408359675120697935161780939897825252737332146824557887479068627227492098013051834453427198428836874081766705361540741851714774230616850408635752236040856280176428424996750178339975278113104877095187693958084760917521368248248997267525369228607833993024782760493704065605772438311194008988447219742774290882883747899174924888256559030046345609947739405916682362586397332755142320386481994550112372960901879853082378941109081803967961139307397669879925695075658170747473648296207317527501185962696419721324289043454953611311077202814996026621899226300579403332979642624021229564419096927921841561372980447793634307111893612834639810822557187700488124886915677504402240705295043381177834586300370768551620593586509145368507587647990493932224684870649633047027160375872932579932851447057331374725960659218217321837907590309915422530371253633886862532692000163783351249857459323992052801931829409189969047130553125634951104232542320874418030955052224682277836814510296105155306417882026079394673934166690957388832164402001122875409675242437972290861512773604930343773614665927952477531749316804132507086648151320601080916800569160702570753144306149342633332636858597290077219972152322548274298203537268139237854457880695356629879665655754601987289860552873410406410804210003603726152657110173447395172284525970640830121181907348370438568243361286684465276617712210002178857479018942689132407874364356285637431990774009460295940656420317548080997469561848874967503406575346182533464602630720577294750453846334545801728990185773239484273488686787102795279594897289491113490569425006191624365722397918129271957627745568821967561577660196931933157525642448476335442724882696259875449012358726041223833811175880852226371579182474077763961464674609249620177602004106230251766359734912820830481937206057491638666321427196376470869187308181377777946535494688029757674317799578133696568202165276763133853577740846483981074339431782783307696394176903974158128169182210149368307964454752707707399122999166542423435802628864593604523749629965863197846895798490658789879708794051299979517035161211377630242860727416556000208194648769404803028725109319266059327678288773895639885050601462719539434536296629338808692923885190545506441099869195337341497019756345956091913297126682133374124768198075692692271826794366208650029154328823426084912674356388584182616590160403732222981496791474316603572067650752850533839968044465224348697136358624436785147408298450401451916912396076898982348307063653169054431333256554357001512332780512601781680490946197746647630991493287728210717620727769300925253395065499266864745957706297037331768014231374902547643217513841664003639466965728458557092172245283442498827215654210957280936197954879213689690661103233813153219528023739459066572915413973845277344275005042635663510151673400261697327347137491042551097756321170329560373700278502352013327689929259435406157696859238124582468885769340233869237707250640824649975822735003411079992749667061017369567490693999326998092439655214760647513962992636779247677574036557160592701093176444925999679322430662338937022101650110846278737508632864619623280903485753380407346348567773781200205091312770109430669038529893196530881919159066178392086770376539292904380072302489972282305357486710969219341348211091493726712199832146603260663752720495995834792565935223526365201326088640570387568137858821036602732894380528808890159720149035119723764785964973420015303468125484250024400497358755129353725713280695407860308733131745885450121466889053475940431816455624176190658235303412418816587064253430201623668395489611311036518483642730080118884823483751812295655463610223763279256758206646796091135650734664728710253281743844475131263798350665887244473823537101734574126207701831810649348512055188936661586826014449934815392022694051900844287772435241650674695067041262044130901917699248238169576354719510991940982288188417756390209498532840791166972891352759852835874943176065880152844705954719824895713842348190145336361939832646236242582405199834926490036369370624286124081345190086174404667029342537530541981708981586818625170360436802287819157805563020723493770034391872206188498711813765599602030204959196354692986665376873348753581265840975400609744585938638257180509977361720783203063255607838166321478939640486364614574855646814446290822984950697160740353364133457728378667524036013007329959784145983620729957852458685226876633559966242991059016793984721608308939364726873052898604968271980621715345473559547892552593811970462344135227186197150923947332894531724895203603498440119012463062945107986354236130958274281869266663483493309478844255145364055236605404418904827649324373498135188068046876083782554149655965545216789304927989799081503243901126495103977168099865360230001844406182363193142573000953182826827472067110385878969040797183891946595509946534651950506270761009772085341524385967188606786563805519853764989003972728937116766995291398891868126821564279159394371332373291726900792888431328094394721127714466407056600918635584650819443403469786125227167285973933342876412317093551882011287211721533567286144879511321464174347798045236944884078127700308717994004797541928328095390342347289340042926811165172968389206398823360893512442413726812264228792850492607127896011346376965733417578819624287824220660466337995890940942416452109447000739934472260329906118674647329248637707729224452513707284583476712783564064828411716859596861668569914937269244377565868140373879924720806700471192191724459820504433192092149413213830596491296688690920990605256705397621730422596318176042343964719762646370083555349993364041433250647988267338563777651553187192476926345004506090342072643132596172740460955880390383957404217300482059989223848379355396740422319110017987214068698027782767870482368861284807535570209307758954890458392943046811531358804912010485096744478234336974785268539659299435976498383724682303430989939492657258107143936018556529307912829364137502244262244241172154767888803385582553530452991824986162120509519289238814937415951243822617385115086132662405535654432741531976882657484692420114547419285488566743953362145758260628208587141659488848679837850457859753320515309172837894132281252949322110343258712036585417787929209707025452543869839414647277110555287835833059896249242937029935764968280270343512210922819934582084785181147489535301681019197954177995669620808894679218244249909116965115543208803898963030706750783887824555158802620952937772532041831142027696812458946320010784894756689812935600669856113812568713613121077896755185250920448541320824733402224442929302846203204910124500922590402887358356647473520744826593760806899455822577818141770970165703089205214392334593309894337282176482592449328717446595903718952696791060853112453610349934919092175828578730539244948101183968747821349657360587751061834572986779531840660015863972689599507869921097870719092967983826794071426108212304617010566787806676656922549350861482050128058781423398940868472155499523713922841360650512022734149899979657914572073468606059248328075249686302504216956813025556832885104918170887578414861775169619158606909006217628791821561969607169333235412947108709102179702125784298460256478955532964088961480383907339458748439638021030015203278638971338039360617090873600208777554865749383418428458652805571090439057306170034614274874008344602468873576140125956046367402321797157014314664179146751226091263534802141812797590864208529417632602148832602548257206300835912334960418253779801359563253370443722555431059019463757230700251504903509950324630355946788594870567143808165884487355233795648622436271100188227301569480755996892620324356182368945413481705251384603550558749846823929133488800433299496580333113030471095457661839300780728759978880521399972789197561469702988589460489415007095040687423772370196834032785758982561821169961273106510186146627055165871942978544578485410199406547750941193949285441991218139541616770357590429692150414430495305483187976767419147762893678135536327356430159348593886618904912248283812443476012364625907641850668951216686579643070336203452430025822683031796147650926527332443949951988084068082788966053435500666578418715999796688025891085887627345631955971611530380273706910231034084037968293332274450880444930551682944923699166520311169564777761490757517919295719587400524884360039957115778962958715228580335359746673986982934690585976043409966056514681573465000666781517766729419493741747119832146595710586950252115652751076149955681319017991745907391810168304179795557190194209207261828366463763604321339890119041259525662488447889726359389743334521458287539184510916537841489189358449378232952589001143700425064583433608710216263197991223751945506527569324914624985278835304528875690290615610846656999620214054032543716646792462649764868404221087620004994970369788173776950717496010858780217251366517228797509780212992289673447668710354401209468311392701583679682552974744448975439769571709298054806318314437226518704964350570024482147820420729678774011427107232817993877432547348957333573913449979291525608002976001662531106688446524796292884093259984370652811270517382074686156074195720980630197785300136310059512605466610274953685959871378497379341821514735950835896272448059660634444520922571005829217317644737038554449384535214772087967754916266588659979560060506351802637230582041913875471923588791227633198606841882133874216290440563172673273144530530697648704378030702280074471676586750304557181247644779237845030226539898858037080351690749406282941175816266861466283512748327578617215417205373268515646741446081536252292653622786162328520588760631913037573063377194649100899802463775975033732159510653153075972746387498468349091274188799281659098922526984702836569402402968233139296837481356791155390096525453234135129454957016964012042915958561862181166903280461901504317059524867719214003538955145071187380943601337416887907731689482412095752590181412103491667913222148866232999959753134946412928846853284000227567255955941473950430307690655295938213446775575116349990242052914885063174742813968558977021075695183075229856750595961771067817494897809728745188930765935192098074307447468426823829540727253185590132732201050645382320381564676396878642743720126401791715603692356218156779240065158767810837006896820562344253386519993300883360402188554215492291342414337087137665638076832068695965781983599232351570034828748663837997500035345046359525671664678113820912528751135857596940935372376218482543409493257634361362918340689381817881643052012891379237852450356886293583210170246492797791235774084585138642989994637939266708354805235775320310735295217813253251478944841802750926068795407770406255309439799966952489071059651568680161754952124927398224017477065139315484483954883706286685516360308887739459922196311425404928780994553786232302626739819247204530363322609146964628726815818003422694964797295260938962082267047329170991747229425621118545922864383666905384973730414730655231201805770403432895142518808297522316175369245045765465614843858948539715512898213366879214909730714726146618498685726753444306420017578074269262813956050702615026626167214542479042435829169936012472523292984054623856063903865566690432761212830566125388137410835058703810005225751786978431139311125501124260585901689143628969952000440367928889195062695304473652235134091094199880033515974669409590092824335357249201499715929737494835887894318049197100556875817984723038398954958956763397906260820821131935303530969763949779855914195619922726162094195055500812383280327234553779875170026663523513677001676610857376443310513357535530984187257073386610479164660169651574714004925886192570257187371462806347533807688272110359340817533330590129968759757987679387453828254454424089357843343808926093964677596776185689757274232151290383082661941164898001592708066041214577826851067803078727875629789542741704474550111684067146191413700535488996230478712036087461267828755706270281232428248562571101819593678270994553928089291251994888866194666051686709773299934555056643413278376112283871818312097592930363102697819469647706017944112637763535248794938961159893226919863536964203917892224931536814277684649426343088952985663014327355985627018634150163922331678195198437340371631009717717959953268068729794725327258157155914693262090503828192211554220606828362498878427832001508503188695455726148017704388430952097919165620343719364275584780711222962086424488945416372221067313789848166243851704838757137588509309568673684918681766301298032548522274791476593189596232174809813697771457449108889998011912567997195894713034400738938462917188227449927844722637298454755598480845538249714005101469106222432181730783209101173396598897209672595970808770892525515600756891084672862488291894679763265169773418746943992860295091233123476706390499006348374693422339165096034062952254415177367883625637286586179789518407493926952032921254913945017709736251357291446509136196189020796146616402512462350069595091217516016937994461877462597588248430909518312300807079734016821227828225103105355402179507404071128089111716507378370002965345185944092900609064106235909831903341021756270886277163059761100756901392257652752022110644215146370919202644717570824163558151736610509617071216406108440952009194972722649944376701002004184190565079640566199335483488665943083970718919111355863818526994580906858935890690670311524762558181335990740638266321986520911299437028270410458183806363806136628734906723979212621722152826466393295715012878362414626523929036857234234511085665138998305352890121824249554606939868163456418786573062851114556144345824940196255519198720572028424285348404446088213199891227885693237009796746009064371967566535063645697363322500067057415747484403405652838031381884911790490024550936087065623918107797022124929908879862504994070982143433576833500812654718555235662004232007723439649167974158998647708559446919932228076784373674796249400821829608300503075377967649646141901765004809254249864451721063833894559921224346241881574274054234051642496447585212489783445641862165440299110403677665709843750128821693404545864694356505080142370562460320633058769155398507376356954747745128365974753085191169579849130413664385679813384731050105644100041706008428047097698652092497629353064236576364563938063580162384631949134930436446165401674714115921606635884141357135255447277888724345319709401433663617106225802586522693547717755011087648022246651385859439763168601210993113757101201490587388692221679230732749406847637043958344305367533013004330623268347818952283275620313943654873385024880678517772226158402910785469873188676239551040955187287791215241612904707032171007287464613273082314603801578948881339522554586044220927559955870005535693147614502978353892755461445713991079321548637487967164715840476275607079633127165387480666747491936170425637054980363375765616949753821620460405372780628806171128045816287171444263430468638219230979491476771847444387313671404869238232514613131812222170360382364136300241894023275299628891155029693481887981544757043080521113197063674931371219728368611494043772751016378656578635592241813913655345749663663035049549651281060522972609049526357786710540900672346769821710595072461884026242878230820427584578149287717602063356822207949649542324460557518274801104983405204831740101573587803253399590292215821831675828221657453678050855340118420701711027874365322677470775653498561416048493324484040453514617405117556175294115195982286596175382166313638093279611206971508358653601440893800982817361443800805207025588181575948390216539559500648697066264161149377059732334218057545825373430094456806967733539030954997906125005174546174529182068689533001441455515837164026375625106251547759336165547993251668310873330108703628359079486809488098997478893809841061426895553762681333190714078655962381785354718786818918746665505086763652439614728759934480263811827856137211444324371485735966402522461614899196357174712098962205241626253795907674990385828108042431303987462897364961516513367971031969191899890898676985200401810324650353446191693385899882991884757139673224858704041026850527626795010801289543853517378583341731699973025300042456787343126197132168596704954508767777430655052001805437651205721303194021057549631210166519145726981701243551321685066972718491724679646136305250506203511011368728677659739586115563134854772071224789797340233940670433899244478615533352844899376350284987219237466182745285010983679239828482590032942943310373347235750348027613507361759004992378414039549940613365780215531933319543050028398896062962266160285044695105167920463561154725576804114809253888025517755262466599426574853933623862961214554529588475617383028397239418824700159076240050990331067154406681227635923288703642113667815903610886489833574525549951340779191031833844217328033331852223741490202579952764520934612352484359112159648111524057923765110186213426883818261216830546212976445793749535600660873812933290321916996750252275310867761423959917483101517256414904527984482509626916326323632282675298460310550169930398510962551659237398296667696955326863330906347730832770058158477070275643217710324010038944704565817239748080145474507977337798898966856428104743812936872930912459413708140223842841596997681973847466182709749047627608341478408482992383297199187670057153016755484622250158883090450355912762365513031783625540115793361048200833287839509653436266200764487384367771620204565549266888803935213263861732080234360644856486232539155676640890684375288837942605973079412321274976354337687708713132566343168205757513411017175905839858068504169198660143166192350273035035589352341898206534065213358233238608943659411979502820261737351768575900875002413379189823820388960415645857444306310548642142899628029925329317092868054068122685466963204756336810922947890928142584795820136772750998463197945769584369890472736037620674432061425593166533036296905328590301856399381420205521079449487088350971672762045873643991256832975351828576215542271667893762126345087405991612603643594813737132342704138425761482058291666475259542888187811232210283942887123625780361353587263028266061392739941954691840676407368121560162624409632141971051332450473136061043459714656158377338548697458183319438597455663432032179110309679301540639292345743561807301478765945817415682186772185020965715171623899030377908161656196495413528882967749905848702558812823906674811098638453679313671555163672794198482685896105061501217667470969842703580065572091984040905413726572450984973310373717677311392381152521117095580307301365717492558929587042074737631679996522158705100320758119323945988439653170869792828287235094470581803525809236863688626266611604389847888962084268131608056306432571674335472991863725914694449820406118383060108226414809353133634024973033289366355737238292187723737336181796398912585608331422041917547836913817989909397435458458424319217962809305080375401571734241852839545880269504569909571775427537552951230968111624098709271768831433414837289945891789932661092770808349946867905343622413184398568272394202728927314257849404931716939388235814485877669016033067064282743489235079763169130053373104989351936207743821930728583820702132926678409257582337760715394968875000934698542031878793258684363719650149801332263083763816167569708816348536518696969063006632249981357575490166507524555426914126977446302412825272579340288471909400755364264120149204588293856393600249681852653703707303845820773883062976715410895585718754915236507157251857903816895498569612885945892506147199143247917793093031413338330870434371184586771716674956716981074345355560922390168321542152621311929791174688283205854117194985115451673122262379412855890711183681568410209797731833739415749067225205677148378250271556498269021478000026714125650419177337340870103979198139194388745402342533848407528049371091463195277962243066526757365626968549932862483916535855811503719556031257033583301268477444649664447628256988906399672487142871491388438744867293221076934088084513409222731959133054263149170292341539205476092104529113869276055010724135660781159444437751412949148912293040659901586624538428620054045346165785193398556746025126540522891094841968818933415436191289784555397301072832962178802449046950665470785629146222586149370912199292940745499251189014650277952424410647425043793290431423056022662629430762129179381861323852326782024723779886271824567022658660234496578928257635284119148258909203357147786841559303793659880228383685768225254628865962802814313419434822613536593256599669379152050238910286362816593794277941921525342376086849423183088744127477467337639740310504210580945257001231832138303817989468583216423026943427135998877134589614889455739954896929239397745095606645161311514912727540798656957517874329835011972949611031323795646604117795691961859142614777295896669161108559628323149329605472841216627969318533768903386754303910682178636081412255982901112027063896355943455413365215924770969840934174525208875495825344454696030907014199369132339131039914079745304165248712550195339651840566539689756314464599370694511460030653731548108166711229977387644732756168964182726593832467607929141082310282449787844477262405916319285238351809613794667922845504630082765446366171128206500139435605696501290445378793687298436131422965433562113053302100839190354299007223029412500254458810302564524004000589297960439203303151025274117222175585412304420934083708922260993892066649169102313251384180153188342065473772200437966974872536607519894291468107710458172375142577846594590904835923289305303470591051248496580367715251910267896309996367904171479108143657364542474145693232561582782240070375397252159460579454500497427214109072192637533351983931783137751163631087383191381250106829257622717057893465441114496060396732630734362576761649416564722522743894766074278962666393032835578076811340243358666309306375897025765266915710524331529393657973054072919414150371452482048074907581565867264880773930156930533550208446752376266955806288876814902699396818953634678654281474161356784948832924175154938249005402973909518364792221031257051095137570325063974128615970516190796469527360322707732476946649077114276179268694344317261188480230252373937302295343051445843592801043037711758559534156067154771944005639668864321685784323466095250171524881425507060219428602173480305069270944386510684070972149575232335741640980062888246011757543996023567667947217020872704048940981347755231404764993747180330975316169576121649295133861117833649904194654180298260424270932176794484275896161939556899530511191026508485853910915192347105975762761244574459070640020967621891780750093385696780436736159607109041963928733070056094548597474129681736067528504415770661717174288617112928138849472907538675852633961733967646135746478223525535675770616774183094572743048333091439541696895243883371294556474843065317357336376083829726886250255878914576705101412597937870981683162751634520053409295624975912441631182548791712793803692361763440120247509114726705997830979656368119048209734414970032686726538931638385914713222030362522757582363811742551553646271761134971463378913899167311811359712558420832704164398126464568022789750002928705806978364077800081926194660336103288653792287278822136033589837882315557915682884582252619322030995096486116968168112570107170948346369198182863252286655742388834093777647422692840110078466807780521846148181600842855416262305524243182299880775585878203851930852397147357130595905743979685874880874520937624355522341330596670037895024587069750655293590353135823243309498467105081581305885987288494003703205956482380537302183535493766256835973621273882179605149306492626461296154868455426657233837921042256531438833250774142988529776925848462858430439759555989172659766991450991661811338844957550941823778395727808926885952773005649199455952217894216159557877572506588240966626205854339335351690384287154144180385395241507186951657890017887823903927270000297067162135308907633998472727825443573995003308098667110793284451842219214345126193122449241234452277768371954427581008037519505044522970853119031629645568663710655768732959844454118806724121991601134412813831170892149419069711432444507790184684838629680966943951284370660236048489306837668284270015833516445075078875621039168159917187914090512308551327601056355772956831260451307741272214665424116003789925984969303779151992939800724521759018651500672221316740911676131604542675573744424624609226571171014117927284292113887562136308484973007430039724064014890908090694601672839955089328278501650987599117049091970470339402870019732110285682271913805530826964197407155987993533337563715671215342863366466398752681125144470337002798217824895028709745671625999580752639706207543779461876697963723696816799931211310298522928039652259602067000684860029652473335378369835605691153917144659746124537578608976198389407529095256371765292591576238836385150152083701981367129063135309849813605092210687987653360490155442271370553019696102446184642274219921514218813658445823427870701840115383629521882821507824588044502884352824797695463033977605952021257810600000456115350327444193596870074762254619993507459469248511791792970890329831449454804046561806594782011365371524601110521850462258467855610169489055899582981538638011995734876154482241890412461488827903352158284741562537218381600228081292080641036729921898529067930226872995622635021995060157243004379822291556661417284654869034244267124471610399835432891080756011197902957577014092035600892696583940943185208155191426917866067855746878904036839292084708261400893482290525669566805513889988463400966121347796026405023061486489111017248331729311227027814967458632788282100987042519854908739442160472888295272294356190252665008271047526287235703708963217316041870846973578624905191184640112978042404502691711204078273366446798616378044607347140997267028674483015867172246340010301011020229256104978121871138292218528634689156267436987774777556470323667168690618898591364780058992510276494317184786245186922220972714869071126116927440068411667595438495563178141889754447442111718831668273072112152924569551273342447371473885957961693547784055969633473947096309457778728104650373625149754135519112927794602476497577777402039854133029945665066679410628059171460366569401750260979655570477204331834051036031409423683657677205376126133348376789793815789968065155437828844406344670491513517665487932594416885673909330862725821580772405065238403027093318398566664548667477617910801130123909552319043891693541667468491104148932646605165344387925238833253895258163966384643167936320669779088956066339615998248096778661011471722183677884289395761325784007430965399945696897166533440569854115548145543176992436346995762132741040817441653896938794453892050989104650304046464282662253428516710439420615274292635092310146479080656521085406933779816464829246286145673877349203671352081884999253793355444278910295817497668595103100366000442786760552967640669412049923171505517219003465370523417474303860966741312966887007003221413848923582957124607373198572265881926378923951162279687168789145493207026098314077174188031438106963714580545689680823965527425079665675564341994759295485389713178821859486464574132362244819351103107874984271939991992676428090703017339826303053194371530703615478394882682243410634145104578321002706127696261721292325493461885120613560929702310117357413868538102710138970023060463045238913636806626210135319756630674170206862885340234522248934122414041544665346876797004763870203591856475469371061707713580520983293096072478743608733991287643963473092570234408502511411398363505352283942477851774211389512342093738245057414266729510122234705746402444232803202174221135176073974714143248015206044837865452782886548270745754000807005665945402208465366720675722603852769025897088771084138282216462453926630402691409280057263575956229542178254408941350959759522500750152851121132781934556576024663552316276457220989421033476943571293490116659909560551493478017023122776454063582577815441306607447241897413437682255579898155902377202569630838956429090049476809314670514583284351573134567336958541533026383833418454673152700959234180078441750113988045784682598675717212608032686811834935332448884174461636266733643700610333757945910955586441986205082925417910455969516802619926234383969325830446227530277689231661734422443745506076451724108282379671539192362903424914697481936825232412958955249333962372047066900819450770833802358667720818251948943527121971412310119201438095503616248083551652781364991620216678843496065404130165782314977468555520071804144786166337284594497344392511711809164102614618460855368892656417658022812961906883458390126828045547351156071619816663980229210000806566693210846479383734416720642760130963710903596654869538195688089648001798707253573510376713085419675097917602078514485765258081683558125897349429129241017389734979892600787527537087360643916049801163714552341197540021349262119501005132329850842770031033243082410532550308553029535410748349092835733526322808016949053512365084976220944374970593723071716322149150675147308602024647044426967071410437298234449496992790273353289840902809717335149624564276008471555727083162273781927140758927962940417179828450423171676154568095293209570988439191591764942363606993681178213879587101529793197069854082796136368885488120131071401400564309305186795621435561561916376321429571433506524706682132369218202289083285589264568350232389034590785849572014402126729430957300474004601102507711571008615307981044765034724920350121315803696430743262684387950591312514369627551156031629469945830845831429974381105850913862851814844984915012142661793442351888340078914254506372664399975396415716779633644159121083357749844248320195299690922781658202531006270089803868263058852328445388426796879927638083173956970252342764701168049887663707498343890874690805140683714428047552003051964132872028479052002873316146795216431876998577232910031764808866257509522229760541075045823071138683292179648361247325791545675792757842724603590318414519970288565756148425640163489240166036129367740502177734351638455586629170159655849460394421385422401368333408112569221641609731347209696481370994156270572705985694048189798089593545839307070549037829357542017750458356781582674822678283659315013107375862949623633650818355550229890173425373405503394036059281782945480461765292739305666166071796953623447679741309441840462340438361818285445849887417640509376132164741415655190255020110544810725498817627639932641479801970522898284945112720061412699239192427092975787840278738401196046100867310659423083187030531144538792323975553187784455353312214590891103806637940091719115590535228703123328759655069534322986901857590199593589659946901520387646568408375446260220984785661212540462218654648116729687142164986736671637814958387813329117095077575487991936659045360645907781882679085001805412063360842163243689271339491451476476526073354291336978076832713671680282161754464567217496489028192417950655106082727733608408454542798754874992208663192693363985535410363655340638382220874179038035614198110982350647566740176787949352563312082154797600721050594032353831990146413358364703151727877772905708113507121794331884656005231107855977674859339052307534471659523995657271741146066388691055219216825360206029770086293881998133469721104182174168084464404758525798101571347381329893894441265529512551301919802660446804417379276092975472248836964675609867928089322021329852759104323936618780430461340520212051329970986991293030027962794895125552121074907222147814188300368940917174841758647751566807400740667866251767808185997525682263913790577820752078441922200894177689273098529697416663274632518439005483453604478778134284431441947194655736952530600365903134165181482762111469981932069444228107134181751413185795825009802513178156835494280628093045702695561213188264250910371371146128588466625552269730914311400804038161013538521140537184092136492329046565975002617699217928663770569359810814798342299388866959922979744802851210666949741585140206472391330912430558217611920260436326480872181221695232065732541996408838893293951168898581569728233996571520055424696595321354025366099680850103218388185506458979498653058165017432347570700625449264615269083048690672657377936844630948027579281596402079653594983460630366430837859987296568768551117079061387599978460472003082747409164560121037922624594899733978866420129862667669513964305305439589162806373897489890668679531467679261709527308535607168837921639201556868405566887000698384467305249529517544849641371520813575099056901916593671953113320090949601581028584855685459601945498517609962739458080883914373728008688847836983415184113493503764673674984341575136537509069510748893059123144094543397368211627744329877067072593274522862895415884691533450973255519962041028543418868726928658950372715303743256096909919624454321986973964856994280465309930871092201768921216645831809342256464658084917397875872823691120896769216576455803946386480465544343570815098035873772401341092656123123306300594661947856104408549715955492784512230046847308188053964381490831487851504122045927806977512541964252788805078231286601504809117502639014288622145096559992413999311704482590970600657931081817989863162652055879353890611851246431706647012998582147936152991614881451922039418076021379250205847957343229525328233654339657534456672048796063850555634632872370282351641748577593738924910224623869995545158524147818901445317755206573771816530524812138442429876480245483615467741994337802383631692091233041518066444862424713358035825347506873623409984113372825646699614306404141617079199781639984992856144940070252569278616809532233969914811791672957764262527412027954184713847251541304773223383167953089590521709790790434622710246188095737245364349091500308081835107036709026807310806724408603790104374496924142988840218363234289378521397911714062423564067254309789351404522091279845510621164796561855999338829295997693621752124897166818957079730471497282661360532765677003407843172870001726690430220762165955819932083830531802737380344836489420186457327449762453851660752253102518976925875047037036987820548204536594604339950850884031765849065340748973614960886601774993116704532199487372725356484416290214118635696277136650213463434183846945036372213548187526222428254107041952022912653389015190709024221143026836706644027103825358768104638695437799796723526853198321840887764835906622972344013264349413073987914740792550006537224122310620289224181303754737889977859318750936354850319668677070492882950935107561170920452610524711112202230475930920196678118414828927424039692610820330911124951560540845477425017345795251510348015736129052251006897593277637461585961405551824029182230158461794456757125431044446765714324975249065290312203541531132268916186022880068931238889352910719292088090000018399519750974086705261523231364041527599399073833240121106367806826302220783044207390622086801885278844113896978576765853027480558103096580915694572410206463267299738267697598776904223656511844444234451730295567841997322696488229654338530683021073445922098475204920344291546686900228238475458583685031253110889945240468935791733231569204355339905902142180050778878256769158892956552564591931157022094058717246073502681785871587179964988736298558214790813685583456397599637962509472171787901746336238040321485687998061179782094496618736616789834338858769429972686891577195629393567712933697650227400617399397692848142486592289835477698897421265997339214573968041449668170548704124582130505235616874544252033853157729268725660767105258199511718347083020862692452012834112632222268223821787134901260299605547620110242265208216151191500372095982207941910896780003001259565489740010874980201176697213397559703216822265597789126607563645738896632056388623927309753182493759077321909647656486955991269868814295256228314719405960768710905873702122817320590570237989792004504853932327871361631985481585770746045304304589006079925901723953548435585515042971731823155746484622300085590804968691455630258417226642503720731543466507293867820771154905129384665347480263197538989981087986913923459608528885139263551123796337065941876247450727010875529110545715448769215638856543172880664996681595611372568570832218296435994522862689617869702738654527510280146396181173355692243688312110426108037519683835023573910659150156129981561575693886200213227999429303712687366765933120917296026573815411630639650061510446394039131926558242660745342223526408677152643234040009199288434571036472759637156856923042174741350703044671465262979410113658162033071075636398373677887789123331916304583700166081463466188850240420254562599713895136359775852018415469018297308886314767727129257818820265015111259213780077340581829273647622878645759826258666837167477603022932468612091935632017487169666296274901772855364198618820171187027204957035535834193600929953994326178930501169539474188998357715754915812764962969367384151224781335201022617371487491608652201903124829296344384089401642067882964723586315465910125296563253159324231189013388144873484984662301041222062121761840298269641183004908206401352283843563559108592927261801453525895235528975135658770193289046934728837249733790806894664927784548076004042163754791549854297587671009612438774189333723262506230274807039035492744870008337553619219701507628931871996773669445805798957172983449766324374592328744070967436103012848641667059792344004469438869117509017722263444770842357525067576625477944849553654830244053420394498175326123173589480636204938887379829545673867390884080877716477002935436171813908679370306555044432423486092258761822173479167884527213710637981109396039591124126681799582760684283377799631424984396971118190595844874972962780209195151419299766793632235264245637284897869213437270765421490404992944979255461643801807334805228573908955198434245621110423252405247561458481381695304602940248307063935480984737085697814131744943693628528787539450932365079848668596666296305820825770274663435147047485884257907580659996978664900519880374132837760470357216702636275340020908420644119635976522740881804743100472200858948863099587905839960165219497283347877598087750313900443871979266785579282613856154833218058707192994353316367470512591110390388740384224258777474806374907535345660205906043494254063462745830491942072056256318513777394575221908295596209800111159975329359382763514100473824516781479091558689191402422785833741733750135648475438511139620667654464178760503290446830939338567345132181472830911435879790220733115845809463070774390572326513650887376494911483883864380323001830434429803869423841987235895468945653840301173320085032827768328193962194341226528621961633857342245582634643961992916361303948226323776485980443619206222948250008035158434166266960391372800178751729861592359780880166742131064818475962310035272157932746306798802763877012871472053091651749774377571215334866389951472436426569729093101490933118108112557743313456387091845381563080063244439454394199553178320315890551228580961387250879656735390330631371197440150296320947484162424445782637590752906829643314535011911289151923187108538599535891368888744717285075730204435994333148707613352004939348415377130666682125491628092438957350397064919481930980887049044620585313747642333489073075980943216467147666835032038826984849413205300077817136028264737290548874552801957801183351187845657695996690363314025783543020004642070592614801393164372999125507621418599909492943200968029534210488056351033691755888061420826231040130953338846312229083322207553460759990559607136830667913874122590802187844284279469155879784684747279021832687670869882236005234306593854494360964328979741799557402034365553838889957766509154585320147528174189089189692847863293173881511070927913432132314728257522356986835264953522952618890783176920595031356224205105682117105717712302907355306761937446575833112406756731155831229538311773107227613035950707009927229694689284483020359989766651061616040491215707813050998117601153982056049458846782932474365207738023918960635404099166235298902661953936415328378343645491352681111697418013126611786423693115563262461356354813916322278674127956471247783885008830157616193888392480996972982600975828155130769084377701609371360408689429663331332217375472756110618096438656909615650662859629631099666161126243969858518290082894025185969109437162684007579788313966551369855181139773678289192611393965784263766684337441871123207053519153823098017326429407721026077386093651740973515021975643318079156751770200838918884862969715366640611954162726344439301699946100545795638979492925198686460809057634306706864866935901127849855361864909763799566486171236809854799075791473098379983211635209391910370956126986211578190981164162903173137148529452877564163620825546506989624557887844249299478685031664561721115256957632397461115730436772877229464261024872010504712490963461377247911684954492088665037678992108876098890580146709320762138180273059363043782073862196976864234568375685827611629255523487976087864713929968268573711276672614935632684634503064374064351307345156366421683700126697956200669523019535891567094204867291335672509638429885819380990716263539516580310358677219240316281347379638434242138437989643930485571241503365314439856025939390872370089443728551017728901091845420536539656534510723172291386654342117848214455748152532188570174258010304879675359868974353415363782834868607902827746320792697504472020219224637899893371117539923516208166853023912600551017552818557685300526577463801484792617753050253593718846060342757101741475829026221526326181808635856895630492914173597036415482565904276143014080701101658482600707148423207479819206260256644035572496633513304974040973273432920155948079733729736169971830918877831829678556872729055634062210331144292180685358877102456161023699907378273976782418515348503092074146068362232770594366804844613546800947987752161987721341771823612415143727102637651454912277142225393588678199992585846167874855465598657270257952789731591296617728882929907679091674237744968531549726845946311705227801681141700152379210532421975953742299715681999168231656683688941295285036294585011298664148568511370896515838341252318455885439456454576382338472196128501014420386315076650172123458600245591031698111634265419274533533720582650476256553778484482311926724528760593446738956778290418914515217484964811587714205949036456768985544029895885946406144369762440665159946177848561129892546522984770249146263111995759834052249988294865502576218935752424886186055953908894115549797711410745391149937662572072046277450945676363159546407195096353054436462340074631342434680919313186497452943741087231366542679448152083080994984877105425370883557259268729696894538986675064157748069685582487354388089401175976202047871492695347154297182375600478779767053668762271161865984038871081293802646569374677041981360590739753160054262635494412822482108382201820182497866241518592786064173109638206460935218784736215151482575106604582052534762101274551029153661961444394615089512138817282517051882998961797111965408237181582379047946371387330620279003317128481411982683683253734871945419957639581498616695557316449136907201207874467852946651909385898444297648731861984732737521770399357197401091477976202811316839349284522486029423702894667608633987000465547602053381314014027269509284422133473436337110829171951186675090594535198841801377740696331387823105748749454206369543915373975379348341365110945153838531315813627657343824413428831498186227495768378996689816593167072581586053954422925804824240289688632444807119736413220417074971658514981676354959087622707606430830264126298278798274226197379423003387858915954743363374314764512657771341271307636252591652729059299881909132306722275300740041160743171537931018630050077049368016673594864592885952620645569685492543503534060696460740250378823438698963358890437760853140457826875506127995689802403782310219857646766947197893558717667200003571759956388907374673309956607024703397459395152829709980409382507509310167914932102377815384056864891666321152857750889642258055169702107103450820863915617097177253045732074340118558089018128233834733644329696123014686511670298585248036425661246671180027249806275989251077765339418888464674626331641680576079066623318276425927247233965671548620029770173703261949742502220642099596558605912724618480589118664227414674193909954451658306410273922432941088712961943910793121407794585435240513828239932577811393460398296011164381208937350689083858489647361290718221040570574673175935784101797717535043981606930498717654160442530540574790877170460039861338454466472616529749400566988108963345454716318790921422615472144238242356843728183912096510241793603498905214075361413131841837364848408767784877719903887325275676908175723278859954228317475235985932095116543670603280133396644586561075307552992950788492494365990404054113415477928987959331232882079961611731249949272695750881479391716046283250129685112640425120977782805994097254178954117266943319061388471603967341796678826443284151042747979415664142505476150957531237631615302931254721228552938609065367037533595438206024764804231503241362804700157672868892061346210229924659494175388409428165271484572170158658651172124188811948236765904873297157901010279078295439899394579168791156583440015093347930436679794564551503391644193482543427067597061926226807605104617490198445214669912071394209524723775736174260965591686638641702710804285502754405772683518544978206918867026760232458504924068917288273802588716712565849033464187213734716334823223266121058436906739231405417566543732635696441862868647966231706125505606066015100529720365242449877331720674382050509999123094300155363802221274050817724650978078014429673011317628158148206449416023254983247793881479941563984054920524475775886804476111289648781816993360586879084303932096185828844127094356399068692415086077955682827225465617584469535497978404136408777291632266554997158121864144842321831209816132565252689082950556915060866740068395588410059112484790438337425146944069232726505667346076129779396093528958553936702072411947712193287501565775714983009119303564879657529063054277940132595097318888424479835366503352246390616468457454247150872626345060401314688575967588345875552479549832094172677724727047742890469191902717306804867768834866166349086101976249472725032315844387934155077675080804608308395385521504896743090847377049828909187673474541753556480363342245416296082542332293079734205751966792022240586825678785750056991901394899067355109059639464142603521581282898564623355681825869810285348679736253354683619136409365740138428570936329224563907024229047643525721363686541984838486017782356951119830502154484942005827048566884589404720252618427214253969349538909708148369216418393139887581623693988073172952612440538009941381491230681855609524375989282159712753269263753298700943077841616968976334138433932746370236480798021688659756177898976535264042673151804622440654181944068303789046855094587686564275436607760619717328954617677640020637810594330990467656520133704461853037930421522061149439229538057841641954441968691141754276572747123185631946239349106400993780760898321813924217143658849636758175892542615274525093167576028246946626319401966319175003785837927895840427703434690712733723372470674664814230397849522575613943243958899708998014718722295524905819888719945377985290855746562878092373548494110414907173301664299251847667170905250489890832715684505919133033956943332466707140276954452421698478606586046210380905285460202560757270501201722435337311731403675649937975279352161332576360733522871698314314641755773017629231345269036142084664089858051972444421698379856247938337238014894631539796498995574013719487170891819348978747465535882180024185122598614696713603603069259982875500860689335148238272698864028911781975145124548714160449801756797630799291326569141280624219666230457262414050629360275774358666404930727567263945259606925605861374352689091565095197765883042138836180104976347477746567888629322466097968807056915420808474540034820056058981238970331169855576890285546633078326521595315969284522373746664987511024059759611377594299600011941541043804596957999443441810737295542936300492182133085222217762256738907442450505898021401163718907565688840585424833074058007869218983842351872389346736359459226019987573391996624469060998665277559061749573405287978708979247052558780878827244688729381415707924849695998851156978585127979907574927578603098244887301985729451017255440860113072986107344384068477702163806806569500895473410911857651894447520197619885062348615058483076145549968926412220098378179385312707043958068000914321675813248332312289575589307242493955413164391756049989568614285443915298462283709962191113385316915084188851967461160781437838607626059953101589047606778012030051376002352664477271489479480894754236299239800739292805573024610023210090721148030670340946269523871304093990124011672341567218600781512594574625334744515821445630613341065037366730992568274584253535845715401714361650702956690587237202240845030127289015957042475550941503319422053514647688003876388705636316474580001708289615441458324882669249113938418946700842605730380099246178952779658875465668401421757910533659192608512204084161799507393238647777992281097733858804839713146836113756196511681547982028887464239955017005617886832144224563619313663376226046415348432518101715514909047157788496664336696249975474531729887991575106712233397339749411397969101865981728248684227947788027093530134022082302332778530666445060365771880415035947300928880042556414559961550754920458168992160625543153901280459653981831731376235905701420159989227653902550189791135461797268130288697401269441204223299033601103572817242682788040389773979902864577474017321380143976377084880981361049181586880857391347749142711698192837946359380308133140856840129725225853655329094865153129338179767611066405342082387767892488013255320584700258926336687793436539839884349471799738328584928940168035181660174414247877645236668711357444405719424728066533718567502232318640677480172851717811712014765052869678899226602256510150967530932289524164435346607989694630496852171451833883223671153028046305204920817828409270976419433913185153879919272883381177569943556546992142873603167186036883798265380125926276255392300668281008061757127812926761318234626430929763172155241965221671160236663101015857415963515881576993428200519334793454723089780683681632204005038164544197876179163929838850706955295458058944058823245954039534491559223998597057818616182057549402904682922054098753104737176131670441746272213490842880069750507887306069617539257451555926691524836687412237856870992563899969116058716351300309021394508025951383334168424801197327586541157433895756026302388882560511174661497825901442030406998185583429698861604319777354048355563555934538089564669371883987298262978786165276770551265785278434481986461552455800037345486098778697562249037083675139476560151098933321570759421648638017318362221366374037388785180301329009148963793700590386796086773260532888993565995915571301962137947898567000926303617065673317097533239900521774839680365100493902582339760310761080826225700962070638183717388732727194055868759180398294857626671972430573589196963297320993239155628241352454015202644408261476654337047239626074157320868456884108972864304854178044620403399605838820757902007905565364167664431237655125094944560691571568588062592368215157589130893581170725854804506183763019948452788439693925252048590994361486210631431290935649273694135334902234164036755674328225241902262692599467248994828211960344768719073100580275845723769790389485657850885563615939248660581563029701131070515176863084936882616019772540129567341316780100364374442227504370901902529125094241055605424848832795411601157628046710189425673773425517794301717435533718230079111474339475933959033501509691907886516110856427223092239601596821604428578765503819991745107949631852849227593105689659446571477933844185326665486527305326023785421760038091914697896046856715840420352545849267470637063688687594695406774070001425235256929941908292339357574146970646984759176367321572266397489923303436811619627194287110097718968980872609300816663590688072990766491936433348777451713293602041936081418450689001376711813781323343060377508655082806317514351728481794156185926676032143587758778942501125870487254134396685163042100409338756822485862429270705021587709808202198150419977729883754977487479467108801623994517601967880372767444049827668768635910038954869836038780371570784945930782555603950773109690960055466786847820386060507393375138891290304796072959413735367535090829862430392603478153197713941224314349495345863746488517555635866925949675823136865792449025066641106213014416374872006066931941274993805730590865069960075508878741257593304756719416341113225741913727770123901502583873851295624098921429860274301940813891434054483078671064335260868042397108296139951816550893748149070732697694154479021129504746825797055783354989164293840315705844954947473632104975810161839166997497173186138405983504204199114851951313033772505107006838544987658966755995928680131142156312163454299893370208416889369533767064197875510667432666517977582871169156325988430105939773747388632251914288216908168493863531091926653250315081777203478444359970607083956733652004431443582644525303561837967763436749427094935345044726018012528759469866564087182160178293610768637711125001149076957783342402548134168881355894941428464606281666175500638807344754220713204222778857804923347346289401941652641917304134096973861187550289580466981249975023553676841042648717294438277766586257339846575274152047242584649954191061650518609923416124426984830341360180385513802085616153540894374876170843433032620750314811628429805417818860105527133216516078699588245616683751164893808893699096882343828146759619625587914855883059558069560960745614583637144313769702795913357976436209393709391852498221104418637639046972554184855739170438131884999654079464868892401975684691800369890613744789283522267449831285027802404263889120949963517161542431509010129041653256505383415961085596065356607774618376467424147674461977164193021832980377496618639297525872930123320585348397764034056754895860148997508990049655740217669434813428481056160074032108593292977464818060678708569675320400503173408878902126626303109168805334267859580082802538311787205224505913550243535242445349480604587477508651193137907541621614040462755085206135667929353068878358857535437527035138624517578041303778240864735928140208626183900045355299227879857179077637689655548111988360090403278942854847658414215136211231853527850304924093420464036040791417888666937595886421493405889059304794884764121317551088742631324718143196045744147894768201426001542918336351786305505174573775073489594599072543330569945467029367866588718694589820536211002981575062382116681616227798299272678528839052262166815692473768619579284340858152269136711521326821652576403083676944235677169923728813916952121106174280826067931273061091598453406456861808242345148805553889166028633219741883737864739729430077125087877537760630995898221439203507752514455823524304295144914043682465416996126866614060370099365125331811165141977852050635685522334803250243475290956968978298434110881663756883526992655830288322137090132091990120331287793106219675733909722375460586194100072614966739189709106296364325070748006876115760884181758675634995490142889334008131573121521617139427214140499863246048989239085416696419224090129793976007874330926888597499826526061804566024363771407111481922716107340141151374378894527447928682058550277501050707478139832536911312634661082577644036175165813438077996648599828972127673005108991109229607026480950449259601812551644068062139243713924114814965299241284812571162498592833037732798508569793995193880225667280395846339592095302353456834590154511905604238102410087134462706055963601869764821640318947603729814949794836657150869656054674840890375982358810082395705516536672285974119012310706495140012806600759551219181277161424184251798686059353245512090446651874968263086677302121611968868005873432844306975465644817543723743725332198819837932357344176161735420652868760319938914413576793998341283743477367864127972663790968575701202758838001304798272153590157686846721493823381332222361102291511121611312052957483941719485588090734319419147382307077144913742645947170116515431390797917653487896409478644279270928846469874085619282155441432014597943137092892209958956271295191517958866517898552862406211965948308496881623460790316715647897934234640384377173247102380563245308370105884774171844337590521967352447154933873856874032888104174024624427428977071955328884883673196897396902038964889538072450817624001149169513746430493473475689972191589583093221032067365163079125742308135223462341545200617203697212912386475569403637677291113262052152425062605803152655586107739045685340299144281016699759718521145009119507540310230747587350175175230386430320969053445451535112084061276179525475945442367502310857706403580997685607327240618664081647737105733528661442234351787743229013890908200564248066137073608560965877333072057795960802516941058011633325026580686179399627193261131548446958076872749928265143946451599985333783365421319784629612126920364286307334126187570007450294594772207546336159838633928671199221919152055418206335340243173757796363853952213821524049103032923801900960528029528150228518126411859399045473620293729888126850075196324852076133361772289314831471590226598002304523095419417851442335822947887509092983159347157822972314147465233395628035116957114518206499887026067710936512167399835172848170210322763057667899509620287903963961808727489144228588331027662949423543512216949327862659025423787329319372842557824463523544543659947014456693089749160652378876020047638874673983536043557333600153829675675352137869892619305475681073090527741479361818061953961537605599661349716301614586446150996778314758477321234986326745891263815034370859439877656172782968943560673151799127112386039949205149598373860988689780498606320007589680598742302692652170772268610034548858293347834439186051814171716514675907043217508887691135874401291366989549378651992409003260940018657970913459003959483053665535031820849181448917031585516905043274504346628148703174452247885784818248560422700661598564016137904392137291943054606094007491866361090252722644710641183859579794131612511969302095966183500845222318204541583093090102473684796107746265808093799615771259584418611949008129637310114005172838390526751348661813062309489514907368350526102894506620041854273079701518870005434325111648230167857605166677798736859353357151713737575262435782100506370587857631595924679147562049892808301378096764704885844250208498717797184794107326240373969239723498622239728477618565649598713507921367969839685785632152134171590847488223713799598753645943893335399984810276197238695450732111705271047065323622753673778047964252192685556499263737026545529390223279812486330957817445844002242315777341207377971652196687751275140923069534260577575474668993245237976206003651458902161519264933953999855982781848695151427572654055284175883095365443383050485263262614500859354971796877918919564818464155135761406588175185556941317198196201617906098655931536373845579386907578914368260759845123134247020727573755836927748697431803737152573509655663838932176187539612975513994969887423176433299440182087281831242070522864064282891076954938913375902774710492001697616076536128855770962183333225098769751560158010045835339224047719585769865340721665036664466229799071557147232504473596903743662603229093471614928389618832222830043974849949324995449938799574791833485217452710313623301546966654123513901017851162039727308468441020555713409319602034954684219103082857314949294978551603120888311816276948480459993806366445073468773377549731231988377457280008411007261892357972979357650229821671814444660767862782167947288949747240815906081561129250184803192062748514391431848523159526558654985537009767161994818539800677506098099045874036733298935497002927029501520312216098815763522627905519672348208836789346819083271149657695387952059146143641439146135733159381731677511069872014427494000585047969946368779534048135582342793924753763930899994328219200603926119424141720263893982907331668643916013010632310353241084418209652226515350831300640598674244933958100056043113900753302644738112728888857630558198026284264065097234971846665380971941284478952112707466348181864329038879129933562693849954980925511332939438915350607933494596999152527444785017207532394295609579839186962567522967062429126159141903749776287548326936888954815232465825149425432409382382452711333666178654840555969173251209960752498904076825263657063516266848295336773142666576864846546359267695840969282958888873392827420806514101743103729662894514927265339151090738862579213943784057310229857804491478413199916352105655296458685059689412807900366308748818297432538887027378354171136096791202458844772070068744151189183385910767622396523741809055112100738209325115370715024858493698982489121166150713979760806676957619314313753408695533096783203459710384601972971398671786964432752249013970454772217432309857913612203702994395288620398742937785789433980004780005330872383046912114347343441314044522763530947404788439100562424960577898846960272179813165505452656657951155383568055892350130880171036770426512665489334344766643453138994676152606116411464229716829073512379363258059452432854489896038275301294649049337864083806170097447711606254156610035229214192848291290856056666993465595717352149653262679945044393783377129608849941324936447297951639382890309239246781954596458544102259595175333459874645406683458293985422055864293891327631677014632060813025035225785807140867535531044655998172256528759232323377939596188989382938300659036544095057337831700593734530329430922533879517820030418902240431543051348796927946055974369229354155068436129974289446311246768679153580183843424546607996981695100222886503498122303586376948755422833587741814749238509380267820643483087274876680344001760651419413922189917114548148957711217009256402953714883662762825025987493246638546600204900085827611621070611456564496474045306858513209087685849169479391775341778758646056248191094582246589411089568665382984552375221477309078170996163202711071068742468880770493907137505202506353774340832397033847129671271434703323522366180250104784644107431456509823932688988374676653518034511406812347086778192697745070731864108010046164392510286550377908540519612092515514646470206714872398305232582947636702737070168960348780049990446552572741431810005314920958207127259830111675351746949282469874147039184005422321886438596499047712588393443019194491019711977958158092562163214566335228648926518176083556208106824524735971066803965038590993519232409460576188163124181330684192670944901937538897171049646119101079480400711156509896259021449498509032791853154901321528031145955241082093377033792004739848375079787373318111730837957968251138665504659656495625633437576610735432919986258636200273494197670572585091192089014865569117493840792308320172601102412863020685851463120248277463517313414353985691865948393742450297373852673631512125670608783106393842440261236971422151097371701710158193995266224715302414126756365979205530256763135909013951805055403049319700992693588517779883193613207528277119025857866748805000079821177505247704186694100664059819278888941004528154239450418074035706092532649146087036735593306935377456819045199238920439714027686644684895330316604038327298996879943495417284101244792833017428101140230158119894395410972534450887329250608623914175533758755409171096492219734130674392501730943665583257286746493938739179039081925171014724170465745451395525507350760772191245484770615352661664197340319915137069641551953674740037524790241646973135746185868777349976220356463025934586652311842134884345853351873104321078963013932852174742790222030875783523985175884479694868181556449031712462438452550741482545249200717443623021394087628238143066710302652618611873301094045309262792580738049855603644125643985550664322051068727599519411911901056745997326074779038941913191047545842207250970455842439988044285012576438987990534523629011794783066484308699654247621139588900919874844691693011035237574247547748703054023438639480645721216158034502862667538073755431539149665202542134729459665954714857731739203507839215592097593963760849797728373876037936587399740957828504790646664818328794973353696508527183560645295628927028364472954982999525328907272207833076728477382263787883812999613596042415030870818783411977286823544580416459010055445884479868971503638209819740561179852887315892604989031841861921743110250983476945693215620865200617888759379750443480821118776217370487336818516532524480761699887197210080802786083229190309483164683055883896508933885506752348281966649895187733288194533677500170179779279209589454606342381302792248680517737931309759699774957049064067505204745280132497945322718788322380772819918534066859552105668964118309291004078726043736336435360669007145425964490190091383597777799778564029952727778029245847098965196187122069110090389411465473256744204271110644815452533821436127510822767994074457897528180958110843350572779642138711797458071074439756780338084367178427234363990658809998485696808096523467847054507161561275266919227769338900074985691926438136320591395360298911043265373800280257818355207078252925735178471517324766342495594059453715286650796589590839732988799639868244085723277036724160669434380967254493022101234058543747995690490629038404473509588146234153784723299704488962451094648845593797077269041028460946022953455381703521000971285555251429206709016831565427727287701865040155736422814943599190841753956639085658480027675751953798831427641170808743077434714774565884419480485758135692102317173017799186544431761464043404486533276692432425278792059816503456103165993177028001551012759374097698545202971299800926065258888786733107779997828651754604447149015361271912268569096844447333769825743776725987330394903089684280875250700312043671273736230158064403190343083828456767614105264871259232187096347117064931335745857253991068641681973657870936627162939017166244048857059168300686109126393117365396836806199623686100786341358943986814543781514039362235558402364674781829252064258790654763137758595218707954968079969441173181906714657883277260179937226031364209118857556666334620656329589873659454677230419331674647063735896688299923518975559887542785813866586221785613667689454700577312599092057396422565799015446446715545473382896872688438463903780880251873477554255244504946946574772693713309334326437758605385364168365498852818538608015531404679558280505385923146383864310058679877351244027066597159486764100951940213857134126980151645839127778120417590015307970894503290221096110124862825867616087667150279090686316490317906095803500399654216215140480953664789987739136924672178968295573770502533576788070361711653275967794389044446712047225568004496790190712347248917035008038148944145401364166740102167275970389980191054297962256864489519206379220884889314345345473759257320506826313407115876719846320644339309501644680979867628892155167304075263182916104905839374845494878084192868467895039405012669730098525457585103717685244737805438136464612388369401958042055539180766206792319566233530001260615701339507536564791820318656036213214372471094138379086733337345747691073101374815787695613989633233412413626303305849235389463883607525711512101757236414696608506516043134465651671718798948599244369592680578653194766652390352939148983740876480680046512001670863133351212453588797948345384533468424629180832984446325584478840559836646603754759830159583251395126968597278019607640176147218051571061927874002474823818425915432639978111078674355343863963511916755077729463942988317536149458174310433182002442357842128947033825122016745931158887450941991727229153535276118882771144702956405495828614560275806821159899950686106457533921360239418485508945974674089197689984253690215006679544039383499109702302066758081613766483116270726600055865880032673528539358473013649304675860941224450260515649058868399680829347968499272514848559110341432897845778966916733643498524345390090582370828847233380275026018961663762566249057652298047962777619608627510481693595389231457163412001016510409237135879912857398611717000741425566729881776836449857458959474477857886499156749137913510908152276800868136535117484309973569273205284483238180527769171151701956428442401390866622103340870442437539764603447346707320947408848856488375542387771470964881292242829896658742702256407808242313443209626923265762762907203242321559473935110362892467688485221730588792826039753974111760039811022964683592443016714955129445114806317136685905645029422278002694142738731261682706846998650754851368191580738433829394332486000060124697793747482674590113756691314579051133157451593123788630256608889103188670226111967927973272635070105877220691040026797251478430948175520396775061360947194573622597103175217990183789105027155297671897158003643169436504809263132382655280543010982831953077396824312174436218292422767715881178422714223058158038717368630383541065538709179435039420164759390010327437131687349544660498227363873216312237227019064763532366891576456174500741325059018413156203769317337589959264618870923261776979152797417447507195041886229503838773792731536498879712078808901005158593925569181382544111760425790211946603302392816368510878515186655791537666192376282573776941585873677505030694187540507931499499803188816960603601014580676294543622153699458962986687602298373141369917556321385614321404753057701006701956581040754835763979561755363810089017774537878522150057108228960778222975314519256316261920059023693983428752662116583447870031042657146225283404737842910929485527648902276896417381174724420587876225539696142672293343919028544141730895584692688679468698620154594264151726542372166802051041891915406997253522235152994813544472903098470967967274307598128146055271382912922792311167649392011661099064769896934303641090800813929343207210908955251500266519777722874227486781675032844335013808647699999173217975688801198864023947997780142636041899656274168289753643549159994949264978825050467775618928235169103627368484871496851530747664957291315932450157730096282765578343108839409722472156215667562155926045200258837008745766784740014127954792172207747516818752701909069541677505134518101947338915733935586410148291461175837900565504056535206597975824793939108137304324339540176699414298201310744828958750243218117456189250395320769777825867325872991341657865666704205593978515397357806764126904451149164074891399669255755430429914823886494377534313917232883715618893630379745076222080798466957608143103534788192193778451224121833395209709399304852353496957288636863423741580733140160156682778969126149971747729364573046819775917146651843694711032129657999337172374230300230727547152631556073547729294801964660024402855641602329301804934509218056863222540381552581532480384432092007828519048883450328753697815101323376471090283262215122921117910267891837927942447695367155524085582680928357023495780075798409308849106039200760968320323827448099491189718706355489175229887641052320280240471737186184629448031537863620831178678517078900632603289594652739451662504385228741791233387003929787334200896759884178294702832288886935849496740525838038525891771085526048346445527047160298825469588833097913536748301646938783988836565121230769227365713515393332268424437716853919978754799785954959984429461077802499039477014218249210269133280343305133716792939066456846185500431514471555515999231053852039923230672192149444496637439937099437688757701464192185180023348191615196221427605221943194077063016398641074791273933474390292816686540729434740515576454512360763521709052520387950576586018690605533328287287578108589383553690037408972855318353062613570101762361006909420330219507334890297723198854851298401544255884038022205680193347947663029673679333174283321859196523859613943338480772559821925957697821085808862409420652549250192899686482738371176591015001340625872182980790443431480534795859762171157532486204454873461248595211721290113276425381461120640194386404230138532904098851234497066285449820124902632004195059763078820833023664534886274177499492708238086430502256346400777768110548085662285127524438113409067818312006366605424615962548104233867224559531377841103352226908710801640611569214335898696653833704795823522148926240222178937161042338482486913864639210883578557224736394414536804665242309366117801597134928898711134205231547950209651341685261101016243163809927293756510469347304369865176836007971395863163029472896818036437932573224408724059062771894776403844060943738539636763038612959152839093731374091539800809478709127853459171351447197961464649990692218267377047241134177121231017727651789645219505173337275426279334430352419531783140523275680540289978026951171010053431249210785180659832837036764392551637327669740785697858582954690423146508883394073763478018727822540542268287290722713670510164465436568088559206430176403862006020561030973473240113768227437544231687010472823638846434939075698635922761227847725013577534250558706549186785515919379465452641463770792322257001497982630458929518011319602117083895821587373989151550474868170824807579863155244429867143843348077542086271694852923945026331269295336382348933800203556599412141439141247107534138769929522022584221222837393300451442554176841951784783176128200383885677117560015966709449184808227122371649119390026248239838769870843956295547350141687511259680267552737505176999175026175892220213462166266980670036494712334282264142736221985457773377309475762401275361113083433607787323695357455073866099657508828488401425946316205208605596770301624455619852133798648665148392419187642599259399962412862533434028991087980950773342385681158612118410185458067957106140067143118574324990396346750500313593757894131214588028806029365459117640589588506295471565638553387096067893980400601123074814650228934303574642398915908591775099169082531094242593954375478816913103290485816066256699261117796633786410893020073553422203086288886450037439912457598673310246013383192709501856003336004654998222065969073326606307782617034052564339515765585895557335988616552370577853774553839534421073056752896135497948417471382405889901012551236681543719336671906029543638666388131273006935353812638481679679565662896296515755158925991731066426972867191018407205267330802202004529493556488953235578125187492951030000332443587622062886125403981610116025208645523031781779947358607749516880668248175472434863384138860066088179095753347346981847998001507571024943598658437108985507126969795752059640824860207628132708779885730783790139624529140323160010884201870772006026487515972335077251515104357509046234330705133254193403718091696303441500176582737100128613165086722393198761510587757276885002235839633774437763832051136226097492520370431741391447575567382869668836771479758054354206878849121311090309827698273696485992564345911541279416055369367163105125385432211211657639749516244913060282519994737285467087268268134018688641175709774196133019279857364442095859956215623923516203455078099258617234529052772281161968567772205306832793586854230085102327851559620186801649807234579384369861428501146516848965446358601468541784755265119412398341549357979067305143650065233032151232981537850412248009150262017763425599279858254283201321031352228455547925648439455699724352373148589573225022476934400684657125415981954996225700001137140911072268686091644453413112852537926687009315814030337514188904212325127524677137700932918182912409297821447624026683032214703219796292418828709363111370175961846357902811551217337972667000060913835869018181238225557868555899785805997963511521849330074764890896794825043060226955255876943082666681042466862043314379524164586944577936491947067504155205234773143097452393623947909158712271712956919568580532703862057904238722253892715133693195944833890345633774050552828391540769238252012350126072933561014294258075881545189791719208416784539514473672042975116892892545359809371430380114142908713472671900514925840418088030728785224235933882272592679449554805854897274502369578260110912842062478776293352241344407535949787784046478506582726966532572659952874612660215300603529217064903861228067630191799482324203525755766072503866660980487575246572715747914207890785958797383983351728089068078430029703115378752345354460841952016239043514187710594220367203374996690220008596491890295287774839829922058662533697798518763336229314192573171718125276647404011804339908919539350241135726069422282596716240790555221170858941300344038662356433324314356708732366487621257964780242638410810328585907565106974824663958350104587782382266294493772252391151518751193933335578086421541139546432489532045913312374008106181621671603825945460468101392000795702389178394582277860373143596657602330285715445481782084678156800092563511523230639897276544724577783855359084837092158894322288077629985153120234732331852258408692678914217722550169710474389901895921857910042691949677344402074100848866796184188075328927863852693659673057317521643789232054354851083610934936436372945168533335840921471942143502136124821020124235729769757867996185823659347685383369955382740350032056518601450021436745449455323172250140038514861551311650415999842426269481438300243412283504587692028508452246206015215541573182789291518700787871911397630420670982550227225360578299101039982542108971275267842200124411437692764708693156924149096858646814845227630714571295848883447972779329446351084529587481218086351504147433322786176706285525399210212697312291787932343490794921100872081486211869395782473436984481575231081455936425017305836837274043574973682866625934952696377884826573126229092271290708415437667310475129848608244676734718276969569684418188102240815020669563400692326278645331499078136235808134175522629240704161358781399856663128183733609974960000847524656765100747760338134452817527387219221279582926223227947320578500293748558638338026729161998032791223571551707522045420242446584949995031687715015374240991444900042794639926549410360922140289270301756697556325642537177742972609065841900179879784433632203477051174373275958943458392021906846123492217432529717676277450229166922784594109447732759859183956662842984514748766369774873677157526857533847095862886645652189732400695723168811369189728515901923719289301779940544217801201709333691192137927870726024682590158743755339927839479287525317519918582694374852295606035859960353540025570691921255887907511106009163315400826262794702078968562869326075583093050877203392052164081039648857402135948931806217314281665301088399629667345312559612185351316957911754564833506366373870856449402573451684942492530508163149236625383505994613355378542007238546103556205762928353408955320186020439421448251498753299483671397028963948735689790782748048159843060991765716185585645035817574667351146825745766036948768111769101920518034940651041113932434953205343803903524925917255746759249916014700653599813287529286738015077305793711844773853439102690526723866733264262817939095963906736586203088152149992766421719843203140770204779719226501834099722678271430711748000992134416548956923121357447622219510782004399112310356229113160323758770785377696088545557962424919717954711759573887264653715532841103037747168556910844485681013941345281288928355123277427888389175322435490651915353174661674166687137299095705926155252518200865573544051425320414246980511961112262811549836144924389430744293779856949553029954982445896797378229380004337077059005606805046822458347894091736679443225923248701372287073117025003619434807659116962717879378696080724178322645464972993396071779451203547936611061059610780930122001931520007892953379357133938327691374892341125065663780030981088282838446631914021502033418045659591509731588637579082186884746025393029271666682583725484456467656884109024828027990478488381701138405113461682347251336999235071147655198972567535213837431368132134363175354242369735234293947325138011085117465157822992910740568935775605569117212810771115841705083453142339626768260181710912819287527814763223911565771711515666959865921424758841071142070917519670123062074727750099632163970195972697081270962050645860686083562087591431790387080850916351616297471617359296321676761693233109514289486808278838436485499057396145090643392313022675559303778789107345561744043761492246421636601218309758200037083589424468550689738515969387240560089745457427951416800817416224155248774975908930921713279337206299703351555810019027335778028714166136659439357617226276573716068984934791972156917135410784454284334967499059836288619877397011184600063770751872530189631266219561865629157211377649898609842930843054125964133941586633310649086265276549889761526150631074311911822319796684257440889125812666782164789806035674382279371324293605222833102160038901700530211743424068096317282174056194810452045361360367438083491880344666834430742581789234028061570602353755631942202532401137255304781083973659397254361566685742705872759317801741866689247478134816962555976323591694716541568086846482893438989129282690144272712574601750839068354284479740733567589057631898851183802341187719398784127472518402005422159073484598626720029238315726570728613229130470774260211926429075486829867014957741479688927145071919441486091267910884194418553107642351368920600557326549580789191230278596174176953754553289440639321172835682941226493597685237580753564826370791071505916422802752473483031938400218238694593734501137876371504681267546501927365098433393122854883088939319407847232661945686228405656739740459698197688397582478163040770425908482839189704122168449762722974154150180767819150923924494179548733241311404023596559535426844144191946335024556068279688373250117524722282978676784605676864630503805853480894181077120865454070407236024050648836922243145122984356101520617137524835455737467459394504111422819197297308733144385435400595520102325345230035605645649727012940305520019405863800229537125864737938434898755000366033144661232297193096926998978716593293885851965580234419793894980104204665055053852339197528162576929801908263104304710781184502527811305801524416485596234210863944954837896575732197389990353743558044336084302683576280354602481979015431964649135911027182139262124813164808419967243642744236293754172089661208022944978887589877828590292943613377110770412334039444697084278231718141558963467383339510970070556392581423043889183939202300467254282702968359444485019712534819277059843706098950732570523069910602379562963353474977147506509405384286062118136135507342098906600287015267812296292446206230041318604113595453967388526148204822721817597853587258919996643541328100168368987017644625705364142707933311265794456980050685154436074775376909711429171001697839566769802516912522756776312960397408366292841672786291877418016253077650029678287427104667074716671238757900548482489892427451852870774833417948882766001743807117235616996586911590610264888077707694942598511159710829853170429160471017739096319213267485399586383244249825956619085223785329807952287578930961460190705764692461518851895904904213363447535769367772176078571085204584267766999823580298307865219397476063680810663536697393316098771866421209754621105642339258695377047645942766028297890075188950132565490870355522167862270499069823449269327851960043719068055515186087322772374524055653830781315198077045683071419378711089221649719080535385213126855844565044051162568879843916304998237355029860775060739014461214222692531789503959713476383445673117423553069293158283394331433981585789569966174711489663456141534542704589552088075279337223956294465899807149916217354295693873537584560195895449782633617061812799508733734546250176217854437375622380198426144813806971927623508626682829899064037172102222137669336537704466529893025436110575956067040617513060271813021751915444943064794440999127561997578730871072879080203220289155937517050383362505897982219293830989487846241390710772567607916900878411568272989744390951732685127945141301643772223217302485813326277647994618629118658404844293854023106563218407068047591324482938272028833139910599406455686180784569537123864891057693163994735530610662756663728519085542949089878610091999417116438582533182196657469151814047675459195224488467689385830018462248177956885139341642054887576047925893238663303596874887466204491535720750413478922484445380914463483914020563385640159737941072123554675813036581213855875223341735140223925450738620211978799370019170812662068081985431108807022159925667969040943187271689004582916208456905577902213587402387577050979649546867218133400371707225820879259624567544760297164316110430409631108887364263466384279483758845876030046142589430205438993334819815792743101245868985859772481565772919830860051579649459215747222940536854053982874290721430894672583708476256400402185403641611640101363217997978594033702120319340236334068668272863532006296149089864447144220488696458603725107189241566832644909734210016729514716497194650581366410527234625744902456792426554286773075602395161928254628891473395854697599310954065051245435901315462654923514157185541653791717326328607078895394459699862883665609060137344539027480698561857025561768211231486597658523412932709852818137564927808547055695295795764494326892979155112830046959782464424199420384164453202896866745588308555031030867373168853390377997208978291201310616037199510142507395495124974812233717111014866802473920442015506754073307814508864705212016934941820275719126892978300779653886253092968350553649935566888094284230799535676748029509483925109494499902182335674262242783635430882406215025063727968673542643866255289216154379010009071804047012383032330893628112055968350803250676225754771145554633234402838141818780601637125098615093553929393528926974798456212232207928728677782180354564019983471248230121510406501877148839371627489209529172139451823647434982017810524313026173855277056505414388498346828038532214480919335567875420845180456332602808959951876370510082250015190403044861768540528899491247610522886315418318991350276568081285597429790852477160427484013181170298448323382222917571523147231169602037276127432641672298600856184621136740292377091251530510412407449711981761257822727270139552374275673131794634196704462828995281090876537322336042714954202176219106323309722395816569161698499444544252060033832289235787631210802994989290681042082125672588938432003635840823520515001219394094976612361241657802814038759257807300300098885158539845706345020747262992631090225235359818585088804899858529784875750567234713635673786092722823006338441531447549572032206428249186930258718140379761629947260590675511581191626083487765002615909210995095534535684283897450094146816643919211331712978809296072655662010009165470496636113252336018691488217379275888302224772188369340870009244188089446301208830228744774186489549614915298329754083971350544192450031448061604231573268508050987870914342574668502199708546035213528087690549861941798908571154731694496627802093113731576276010445870948713522620575585469750769143711824313533329353467048025497915182644143704600129083155684002849614004117486568056405161557507401319738576461218544077039011574097976405369446176801174905057763755061520694103539937497779013376982525846749185723927950712492475743201020694900568879194686869461375785659932149383496315693427842881297175022651535857447898580939519334208250063409218578287663316235312510875250374990572460994224193309811741209877759046062215814046706854932112485938011955416378951629884326898419359181897851705237223061728844341572213308333747503715369467588830166675058805438999822360120587170158370038461526017651950401938352839958592240612515010828850691634418502824096773413767081449607237878868896652514554496683692448229133790838377943794718467662065636688217272754813338305835851372512756489604121909573283142069546008195383673993985808254780858210891511261694503433337291677547790309363133756964019993403999852965766446526569660637264163622898278859580050221438686244527197089061178312536584377500654970166305669727344914399572719275848753061641157074184522104536592628112100817619889712868836883392870478161825636901693355594926401093389542092425000607441461387842852272567477469383701530839195328334653611087955089095477139667253121478598206064101499003802225320773594060567178548863644834908100333702472426821798210776009115621005137847139066481609398250130489238323671988515652232128543999761400713193889560394975053547188950200535474662629581991005522639013600639763100943787003349075966100742201955337864105973910450312639342125421812604205167786903071394621587310783718589055849929419232446961230583727589558427028478102049391726061918537661077910299883001258915215329136758987332018018362241442927127512256467268693195570358784578083652604260509921836706058992333674748222539853487263402490406941782038329213487559935495420872807067673765952699689890295340838190322120922909121115264323444208674905984030804961627340663987725447077592338125502374321496509535667046023678201972019579179053592576333010221611263745099993839457009835136563117932032719141400751265866041853609456759138851534008181034681397649971897679438875102341558257136741566275427596969882434155408364010532730716124551415263090617971966207199484320951946711899531041554463905899743736166362036748814282760258453313686290378729048000775783635805738681860326865979273731689220002593935246990869218370664843919459063015639800208846437922929731525908898489082822569873068303393830197246470768131307188397509938186444555773936118336708984286311154901100278010771131462467063193663121540402402808702854771454518726580809385910655579580327769713595926123003821939872041996502551518580500571594586187173409077074833668618875615323181562192217835426396848320030408429542093390614821379065712082623824049230999615325467736900261519937500845743305011947095852151213262237375547306247041671544143714922190792571372313347620920927327646464441934821600277708604274246041066533202236378854204833470338104756191602539583705333248201912578349844241520668495549850242724100072230061732360773040467914683023920630960547779447698441886336238849068128121843859361611090690235717540150819961929835170510471535516249827095783737514544843892250962597216831269511107780403837803322487623502264444176187661163211135306536762798815777205117983439734664725010170323646354423387129893594706260838563526964840553145237088185190089832184724690899789420527739744646803905568731235060147542648568253374323159549339100613354795543704992609966863165076167232724989393652819730295932636629625770882415693367775489678663714193233932970721083981761478287130012225144223616324793796264971009487287750466004865863438143427041207377056622066191853058679169017368932438806266147818624682306089370971119635933304788445484785370462239763841475236584943414974940049157403323188333409814150813429323115743262582768857831024200423842487731388407883706925616059888979374596420484115415779848219065375910230724530693096549696603902642931037204123391048721997905853490840538065866620231835892547955613539836051294575723416782161927229774239686719930657623616004473072259487075926873329287792420140690830588920859131536093607969015245152307797386752235505318356213606576767329081537217981920588658645252736248703008705449530194175450254849714204295812707164974103966202605643413855738877093219348301047957649550214743539414218142897019787125674682187023337256156531396629240527466009498847187140817520123215551264046500502257439592219946574676647804341063430305682072221075531040338441272124860458178624745003256738294229186923346381449726219400919391205281197024042942455954268682423950594799575875402638929693276813281622647008437385107034629151053895665347466267665692404355808977128697468358198864673011155859402635037017867789433674749315024466933719057027409890517677286687061433907059112564758230392909295562771361517435760142937616049126694312494931342933312693608202705509693338148535903672031686830522652790087054663076454387019283239629817723819990302098282249824934957133321812246226365033489899988927983116611285025208061428398504702580595506400108593548029860197340676258174721208928155014912914435839158362133902465711703905530626791342108577764877973599836141836620892239845751352550314150134668817636721561394888053619955744399257050985412252360247782579241707615089229836461108844944509540058460540234871199176582895652591632093701391246990464424996629071546033706514101848642794591670831023696933309100836472860264519094927038917281820129203976483145662970103841925658457581314121639177710745594380558161410773358611130080575510086246099336531673719027925325402639517115756812131182176668558612646468605023033713521547125928048311282524030910045940627995806793143914954830732366698015565960537584572393711601048291639110560542342060231095594117023248767872238599852303913918605144867617091244665433088680170074634273986570964295294227859989436553149841030058468356261740811510796920520207751097837055465298327826907323592444045961710131107554854388821372774219123496384559664700051151076235725382329504820396534116378993373959510944534637663903216493121996172344585403260661934743299522874158175112413592731642994156501547607285709540271959936057831606619343558252072988461041496985883142671154330570316029682703875375642966347456330450666326835922162288942972847008515675532519354214717558113492295802522424793601084712233282912427491509677574285442486318771121702439197527860175089970740898053723304907398335335252353223619413175480140886833316766444469093263600109888209125018321873287785537324711385252758024356892417344117726284193313608825966601923193318807792657698707110694093870676812531047231794103400612659027904556673527505663016033698792394336818613526478947588047988442287088210967176393719857381433762382497817827778670779086876321596591392799585466749985585535934734233847429948997433753193997073476891004575579838489278162523831776927211352363743982672303070785133307818485449100096066869800299409665789037609537865191618832266529220669430531945535646159709649709456325911297261535019984636127074324424341447822764570307918686522746759766693355035337715132370870691024996625625262182769943569809551720692806064858158970980803765361573848888728874557481673927594277490319267700623847429795879103453414460986966601776998015891810461299900652577264914241970079231468349826981364656577993031743773405950454148292413441995020700982411578219798435375011289504498100461646334469093092748102279513311159769623510549628212350503536245290627868726494387875666573702242502467095434763357860558075914575348206605316653432600438816767625346831436512976121550981500316876016883446917130399688050099245843979922007362927530233742905293598167591136884398454763419135678891508565768573941964456598623346249590203926911766876803887803083752685232776778065910280513518960128112068748106868936682310196611931704203717511607281260829652800541267453748087774165019608281068380042577247221595574597671410038369118756773853306738197928696726163995144200081402960389800994636608981373470552943533219407362794918903520004567303620225905399225277921891911859628633462213606655797882735668768856438567436888219397664323823774685709401665235550689029542272610065306309730971601875420263026455298610508100627908859076388697545205824565086253507857354557800447762889007297999809656659227069978179080293430887165415164775101487014777767792782562591449376151069348897292488737184400226670488091610995778342941369724026394789207912264350626044506017784188487798654440720719632025101088870588340447911376114074765798928459500573292918000180314513248797959384989255512333528891531464247574440532662908074785157596087899769619481853454498249507350098643626851344050709041802266330984671146670173269098169282445726970385965034932986022773138381580130841607818331540700070958662219795367411516606292472945685944367010743370621852050312879865429712683378178576526213342472616622677878772970481764531350640743432613967130601730906935303534270221490924489443345103863975660706407833697681736299471920517123166953958544074906353571886701241060766219329744155248515093117982339486491511704216309897629740677270608103856900279480895478632150580871434307715749110992131665141992079435194786936758244976364563996692580577671470811956584932653922930219530634393601538678478094923398748163846806473359582359666207867262771116813068284795213601594853705030472909875420797465782049945882164845963446447660480037920168726512860548812879870903304324821701644573765962352096511728782183745515400175699087445693338116338037214413757384680828146772132458246394097476904918456131646315989971340774891378998322244759684107362116628279062110478171465338758061340678629311730504605235447126056485093347917604488144724808362594704667557043080758620596394139290248956917126595681502321734259637617045465794844151206323751266280568235684006963454514279013470727642321162357745446844000336059715334813205430083013859281432659181797549251488192478976540229481194199276174093217850102753770249052417809473750823268289682165129878871013822587172781208765590980410792779063374197305957396968697054642719205521239194303721317992546552137505943030499075800972388449244293881530084614608685636040597292115526068842774879757294818068915010305222530702488367964483557409482969151334784443467335483681011839469632975454429150367110946146458477780233632399721818455338656243647739568804765941971275951766185756680328164210496195515081634129801276701214645336730994655092678370434980637117790618214651209875744527266296008754506835818201017312903762159805199906565083701007540585964029095632417225434078350995978410757787470521663998613820904184270391202142134232395408164946569964966373271057895504920951789972712397971655298429875662151748123818675042096056656287647430817738159300552858563613972170961179944902363343825872151766905544671689109366506103340792426265983233127173978745815387073635153887935368907012897605925257195960973830404792789020041077510595212967886082746642829337997277889089610876198085039868339803875345781513058638917796886343490027282912148436520398881353855285633378167289222470666582377496233861900785742390035677988040930864798657011402983468610565535411015274325444757791700526763807990010600652226230625081516243035979839220939167636495138328474372639666043358244131402054692460069821506601258998817720432962943938583340841343190730679925671801723202364599541456994737312043569862504629561098219472119404255479877810633153442068439824056866033815237073899216402482779620957910257447015430061677720162638044950303421374430016187710727540548332559731444787974584095329078989524056380879584261105524892120856101998485848335169977344631992268249463130429628901387260181322702750160146640603064196805661665056392044232442180324750748828209790841527603297532455486519587008569309289886421993550547176784476109536823835643311229494920140732797729424404077717268258936488160651621711686647219846396285648563320578984817070592174758260879805223522462519247316309873144477964052049243360469566962941887827894938637318718448324908324259767667598640225978012464887628640172999771470537583633968758577913492201714120435907840749122545411313742014949641063039605806311878627522718319259236884885119730050922620535589649793692406425509052536436973904523764827338969494831485387173378363300579434808754385092507470688150426717948067242876462072423212637719487862283883352051778220301025972471785810693547395319572870074513840313774541844900332651181694759118969405798963085436264164597964488298588732515462397274179245380391008138577286652971328611647997209954029780776191998129908195281386866190939976767333937981582761709527208319641509682537570147223717867639675831824808775884889336618472179012415669987641832171507305210136672877228863841786514086919158182038313784719877579688234079681694147256239042219488193600090233739972398796841048910604848017093755278431519993584231071125969465855281165888213142251812195046487151853532624055524530365505980146142515397818022542537073453918576542954476682440566586785318551672155258861788430443505228288110933297641048111346303112786713759644012666501658536073525034795325301731213071720261952794308381921510557165322946704079416694170007778356563084540498886567587043886135446549052870466916430504319003638449302695727693372541783739798847136453889220173232024873208345297830671401576155121073371843908720611313930786135532356991808880417493350408996418018386052775264615633585319338528372344608573968808333799712191427216855170226881215053591993150663991931122299555997559695655901429238751623517106837211841719093062505041320223215900335949189033398947055325102995097209659602685682175610068460873907852943714525866714307782542520509470347122953548137944451635618528990518961337327825223056879733967632711089834253849403928959735389046339362551226459348265917369217493507117857621207270573253707933305514434878745017539502192225153685014475247321819797293711696460367385243075380028791708759328161999187765699475852003225112105039967363314454879391302935956495750616868097172353688930187112932835312257485156259563929850830330155780140898731443463052360569581201078921599544679338774696871167147529460464810445817788595098591870477772050006564293761368867697199901557132470581891930709834541684840323813979786696999378018043125619259505304382222980701266075975577378040260538350669878367531519345599315861616058345492244207102047252095573252736258248909778478309516676533082414894266199167268164085467531066810780808085789836041645258010567287318961295926151020702534174535133475175942429329429778083424641669778358812295352152295635720541054306766032891327142756107328511457362487273272380736762233277514346415012988461748602080770727259698413782547261262299264880405714452463838199515890681512745334380590049601831574690192996451788300740361485242388046153378216763785459946283222647748606207595694010452679476691356142667781641098691511987555332195352571445783794912698958772516406085051701513019115226370522792155492890891803084520071945333132795473308324145046305156092411219299744765112398307849898151660394931636394369975721629523375823153576300657324440299331791759386631058525624130058209564845675201024120662659782136906313409197093534425022460958682970049757723162891599502615645850698294483515582809320787212101017311372856438056236755821572593707333821031976664636169829351147500980931597115642654707306597700650163577808909749101853456849003125981569210275006348265863558984695473348346433701167182176408320961766522831901579417891031376573915787740072963777705941622048800969075343456516653574265582478621177568111054731634190560067208085472760030272766447455401844978176044357226354869226374508533412140888260656938229918002109393816468758284974314512000406897866170937715231136878959269713359463563740351775360993354138986330141233031262316938830918036865202323191408789156117559471035422081911134183126580736730191733800861372746256048763709361424350370699427709877150420362604003847410865716084169077217927767472115067643983871140954157240082941230167036965594883058380877000750847207023839195101638459335175310588731722274920221081681204874119792843397127954919483822974264025304181722659097219559869735366827702850427033466923791783985298672879035949731536742691407583605381225692050651160682756959655046888177936190392935298811478920831491980620003710812956472428772888503269422054788685827569460151296812327159053241272538993150751153509851485175970385846378009461939608113710500106693293763828520471643313616523363949660711872778201146549967379893677518188008645348993142215310631837406320139733025789723876705320424659355154047456214132975867978327592302404009756291732594038578184885402768888342679342546257796860213590075402582770391177725305325875468986688968264040867020269828655884926725574649094721688016928372664352108709179630586593750496817181201487150254994430322992455349609411736762231099634393743271275644264274772503204424007885783770525493488351499779422701926994926917842727179700446248916520038607129782371474345484094050874786873331802124150688782681673359690002707047370952298970077209637818813940166108258214999451148897667158705091725098072532045634118970199177882933869250597044078172204913603642423236427371728345136180688071209156276717911608696096532670816454166697958365395305426956356797394790680240079558068284027722371331402710512004768652960279401555228310428380642704389656029255133458534091198323792223512961764522570133373313745267594171458255328799188344714896536641215537806767013655071139187546469962556185211024145536033897793459342294129390003158572296071209242202064893755273159962281749779981998081398100541340015091634243235804358728733578744960854664991970635196686621890747659376585385341308160619313802992255409510662690754628182600898463241662954723302011429970661488647637378294669775809063566915112603595911293935921207046721752592283177064268859420766492245662891828787670779288553105076594455404350008162921428346665968096575062175997686054135425063369078612952359602644894132882378406989106803542790318104234764843462833698409655051068991280384036767092187271172264062094315485813782628771561400600528104745265145990719800755424659936948786980765480841118682442211899063508731008625212961787952800811606866117160801805218238191766318564476818585912308535943779861864999926560101982655966237795226303918094180478961891954481164245594663282005889236124107045413690627259315805009140258391696963306439204952856950960888049736869731547745739685000205455334828231824197768395171269388935297791940238080902464205882055375232565234873845667809113028149062413078880840052325845341951873519834519861124408029286838937688456914051670960146100513503787088883301994580683078913745137485920914943035785798847091918043895448353823253859442507304555852947590425709405847315569645970351093967855004303850268016422655939109082500785010378727396802823286594663403916921178297860512577629742139439387023232287571291742765308382056821969215427703202263396756553063371624128336922134923147889033255213846984398332186449060822680069491686395674122412172476074933783551898440727871674542655159696567049481947459329096659939381544304201023780634607621983105358073696986505347806091222034854135690853664872037285908107131412245119311326178357545195942733916656367517898183480484186978260542066870427711656132095463195392505033127601286153894560497164458510192738033969390855369577705947126614514026909572630174546795281346106957957256266149764210467969692561471583808010588960609025108870591585093800127561817179016979542526287774865004378758553360929415957385181997650785475134542141040773254516764327655216357641871105728252519384967103412886918898546637346865299118396149463653173803911401400868674765691344535685747711375916770231793480696437324828814729963613542154498683199360675421083109294299176285817269943371008722966783182202977933724221856339485329970022582920082233123312706735809072299578012308436213091948620942369794237754862277333491351865291892075216773423578700792690270919726355638200882163023808016629764506721005071790683493349361022173575208878067913313362679433493643803092686073868369688327863712518997331611090330365674341744585647894309667901550714608903375419112934793098457342637156270152790277776961488000286161840132952073757430783295571232695767684479230449551748149682489524535821350832430832457100683021352308450981859387519704608426698112004642064182760900583552493572740971563470453385693705783426090044425779958877835256448599671671996657925855732473233598712751231673329958255568897241838015347519349591730092603089886455515364832654939688951244265935450613538073851535906113838259626228248075305275400781844787905109785516736904170984316025908828371623446234337475222679778236660836774525145987620275990782797485000285786745570683773869878968490395155494546789223112679676103340331906027537757100816319293681880910660854119536449170288514708733529447272973384685271987972206293100298335696146282045332615149760072671658235994334131442141010727065781695202109003019340030478835073938854304267391605909009403662586013189470294144092897031516121597056569996430411801791242409961704355247280669800711216216800669383386167078747650751835618329952933821055291509639506057116591355331146522031176026675808015481419845253704825770714172293475688844214868942494878775686751930967404089117223001741913325256191238488172257580369413513636018566607356183770104873704405429816227225301809466744928289851662593974576095622943735283282101697708675995550055526333631528829363314122390480727064243709720977741697608368538733333168236884385850505028792221763945578360798446391643137816038391914786245126176928835455250989573399372642351940040318095206304000158905078009396104118523298379223930567512742925094454446409296204295500790000563650993340963634991828096291893508602660523720523538206957097132488439096155652378369154409973382102951784714383251583311917145948432030086879961066608531565211734997881936141800398093460632496570817646085185447971425404817179075521951869829805016182386795262614518816285318946659252853513385988098116657165341272096955824610923429275436563487266582878406408647794968213500380945859968396695294961015961760122712724528560445500941370500568768319478359045676321884239031000052583855505626384975402175876558422927065272876661861067258158410297819394583023328678316681903733536254779799568330275476384717146513458145841504142349173474793567778490088438187802294729991580248626241305669598164751386616725437751890460276356755739546068216272281275544023106487569446127915490882819557165298685338448667858344963942671532010216071817908632433050710400387477389267061998403213839964178925884351470125142889452519522455449307264682486603846190461536374316012911806078082273982745764586538376356765981049778938521402831226888060289248522235908590411324186614628649502119865122010969160432635034656669674992106040062151302517283462562001773018486704003773924065345154754712110974185406084765018613714844860070209715937556361354830368050092869927547733052301336434551080020871591952237904316199822027490301204828631794730202907227501010871771761362814990475774860331824786100011718371849424708167158676447110665351901794795886168391749127651788951390935824110257702655526592630639251946292419609126343918675272111624840264275071560181520701026123985024418880539464485100021755865224144036875924981723367329372171736729817532711719521282368169662225303695955295336632668614365956222753589288614805577770254570545354511084497220334427393168009529683433236584232550858018009710769739919173379854189134654026546568160013772540470524367841957828223072107003523584544713016707725380756763181006202878549601769318241552548927498309219851812542179446156173565991944341809360799774535384559764912332252908159555482595765410150028254596702343352387959833944665526786787809818137564858556227460574790680667078706630713448009003618073669297935493939353651528245121944641769581983142964591831524520590517056829565075413796708108104310559354568244248381868425017079837424904635674054550352848449259444995602383775114055689967110587450589080676588072663899427524678870018740177376551794425886767278776733249142462162480497571583799355230308977833552334404739827109339087709678821699491496196853431761175290224673726859929015138288165046580761574155500349602144704466061797034159152071097160961655335722413167868465360622816553335030360558856398061969622605705079286555886184634337139542904525604897951219107499548194921282073984921913480387126853622651655615164708380275981931821933740453173219587432595400356397628053565636610126912903313389365011175288197471739525503867158491505510682878105602037925956911483788457080786954765425557651034252741903879545267992468821999988053300309274351916937794361418847076122485257949604435009854393862032096261142855424575555660428011337671029446128134488102339520672675859361805646528119246369709634110517725243467629766059493991557361000291851413822968274326518415549985810277350696399497697738697124488840937243351639296258480673250990367835446914401788688507141991026513649889496296287720401057255717876190709222066409304302855380084799177787355301763025145717128469163942273995554909061785055642063391347575524206480816059527704738635179635276546584413490375312657405170772410636804164698678399559100237537102785094572465262205946334741483308254978544543485340619100659120040646427795804803608354923497121806486944905227262008718375496497194615745876489213793512922090855077118616078352089126232638031686255276359703129960107219125756048180750613979258049663661181589359181712302036990028727964827127972680593739547048338122752400283399648979438708918249773795760562833091382497558455750456850631750367158223450920232884910874841471101344219156776423856108189896501932332667398647604969678133343471468135991179771561710211469520205531223970790147760670218439020727895712367296723283449333016497919629819929981367123349527693829134450839166793352637537445345966623144368901990253634336116234963440166893605741068307114676477833073167707971821185650375892534475398939396913086483717344728232575984543228332760862519423925812047160999986094767484443378562214734427463504424890659180062784280640656959896513426201348314847835377144167252533422483936470560705176940034562276342553394282711086320518427841513666930130690372549280062009799469110658502582397476520268320273101709367874953066910856971055848869866826773065546746577630769952701554236190411089478071795110139061015959905291963344610976487189176530192783622714024908655427698014418670896703118252532293703488666047917373098090689279732107923458858858976676327197786171371676926512778755358348075280147106236985167587845407132239406749045451626778168334794678366642305761853229915155458259043246729706938845296555343963180512018573257976147568171454181123217155310229746820273587684934208291527381495376380735450474888631239973889649771715554669266721483692353889279749260968792587112632671900307694242450214802949012377059011325058140521913000171438342171006185211462530258909378769276024543224171363459090750936664291690691743308960231868474270489694530677819412289533304262908069361203169068972477012667561189258441387048095687282737017225814737238707301000857403889811399919075590210014333411705104019315055853877113781857141429832669399321520561174802984829114251634286696712585981272851785063818415930156208688301961724306129541351663479700355196547618606042155485926715091614085426954220564753269697620364159759944793723394926560324227668903442443768406202354603357980363978974830714937201592367937403640638923164220972064403767473707023298358514740451522512395009213756977650990473078646296984468910242884581160304515489827360557204404862255923421253708672938142778700740029575586208699398084619634045885344998099406366848873480391618092201384052255685228985538707031032310755923250799615113173197655661723309426001448023663044212665223657397284347607149319547169480023418226906348927017602352842470297488167343865993196794668067985815252294263377919595577845073769595084114762179790954127398480691486901732598545172017683282761747569864297068694985335126949859350072763856339750396796605059814102724394608745142814657459668696191179732536209428180375921520764277930929314044671812807064673451445908502168707689685548993097511114349084802423671185609564024238232705823153267465554612368043527037468077177909854920079851272024732107277585676502327090524764883804212377831362423595511306155724649368504909372620444209076648564566740268374272920129024547285608821527556293578943993266125856861465735813405263689071620393147249510625108088375811852249246193384417956275658457163563740599270840771198029044719869244245817580874436237455124715106916058419362773701329264303131879516625299434466562754249540230956755010216327317782572487371325380480963588258898416780438256538976585884775537913991270405548806160550474705526437822369191501444824242933103982231697882036041414521414463181449815760938013613544456899908061418306352258928690261903179850215966388532529807189399344389785715006442381395116136538445565740807912645439043309063213183991501588996035971752144416715390523600715626982687669326735052883543265693014791859881973071297621443706295380793349583243587167881200385475779519430485729722547074070266828396148116794798388273015484172293395342014394093144939162021964058145684255922916381603506743445563452771866649569704537139528783265455044715365560251742889967001954588819371627081744613699006892615828186301524862945306011113694240504524358177411115127599152192067668304660709898779061753719171270373475437653781202567482366841388939378327113329051988110957911411095812858908806547400449734969078539534432000403469088030518743271195496528431309146331529788783413234395872007751424939904648884232975302780066997509447666033010692178768785121679876516979655164263607557330313095920176013834189204191009782012992955120592848014228507453164897812566257047853224447452035639330773612849116655608653940750076054113452871933204832606502151959984164069843205732310968291455599717268416142173768603924036005429745418306289377851166155421152712332189349642673825517021679787609237303316706004833951516970708280208340478847449949379494149903200290610412091886496765470625740417228319160454250050556471390540784993504136691486623453929287671204427255607844391166455224711927753707835844732843441741896403090743345370456430586149511362063065816775720944601186755736514054055932500923964712691791376620679559362165239823686275200913828404994818715439270965392917706659043447049731015738126645690784502530892394148319943947159367770996155400169501426459339207676366413307792495582114301579380834359355702048491804546409002450519738549963507700962405725648306277579932525452503521999245369775500395387756528312483671495882409342370208825663283469956170864112736999088439740789555777337066557145521769221912304552266943548003288575122043306115110827385228167242998342100854558616656113584370908384405248941001785481256913182945503685118137778661769441567419545439642161021433324238350444555350656948611389519658151532582919216781460758676183986425775339285741850454539863794702431609998984430330012327378435310926240914524067795917219520587526322273371881932968664091211531732168518029373325069963673769496293647088151580048830279796633493649430049356940558773261665184377211287648803481330082910638780244048450942469104048336507238159299636803255609061130665501483769210039046775607176789198385047659154578128402297934155094154165689791440512563204790143229680617528725312141510220910311351611395773984980938358639699213750928513760726875041550308408013269577793305743102054611545637085812547066284074081666697779773046404909618411828886154435962227100065720648414182554608961148189321005536871105309332692604477420777047285048024971024417931125940466193343151927031894195820871174907343369164498498479299287959522584994517752788799387751474242552793067198458697792694235842840089782544021558351925153441034832580133421788485074265121847599423671565974616670282713575144660057960011148504716077170939725864116089124662792284426098650595797739327885384175660884077441568599576338662040051728579493166670267271231038872885210372811368927455766452062128848339113661819686525519416636530837754957020324710531151666034106719981769888369316961837496151358731031805512241823297963988015956655868144263020426519591988731784593553324628764866007632141653532303485155645073893786778082379479100280321749437734586060553206959500668025033897865589870067744910902371718679031558711980774271326071991306850830400440024731042731270732004393937713007770911625654601023177780141685683536902950415914312737895966025310668837810305996387847827345384689787349549015517200787299296545644337687391522372672714877802129895790668962307378381185109676329979927889086348078655423139943959578099632811296824068016904312538975199025586118022452208277375333439085884280613594409906624440204988069947370300688421555282029249413710802056933035906403028794326097241325914687034020761110613462473553560771007167382101801216914739127756249513676275773054613561837542885792231952006472012776703684977689779782501699121438155024255391082028866342661623019699928341209522272610224511273044744077428137123109613155811115723840975675123190621130760417811279799685040650993228948437359398712675312712495929647858434550011825030894899851623423091849116884104915944593587283797523207619090002596821638838321265565210480386379882611828083349026920940911822680545319029486935349768254699314993211300177315435539818383581960035716111996738827275569677953075990914903602825398457182235470257910585625061599337607495872675252906039551265159829900514303375726737167078509050296880710764065168012308170101383634795175045303443376794724612329432871630286776300178851364569396036529987904915338855069175406409795493515570897195081919679584687026244722929992350317268627608972367789273845241776470405188587133659982517394239009019309555417105120589609053983411235620763450970134803504425883839424779373828130974956446234896801701747083697268688770690203347785783562837069075706844584934288349988541161393845412772634869820562820315911045954385087403669036690086974360298666255602358209472970586275202119327980955872964086970848075862259849007203329134649709912191532721498441886933131852479191445784116031474327539683405611019866648309198738468273317595330488856694861880780618036291742084362040766879565763300438186847445666046301819613244555806240824705628911807159497723515202521088675696227273531419742404491904872805211893022532092406929629011114221329587175807258969753772845574296921912970521349573733703841781516347309123883216647522247596867356450897867666408456051733313846598228115102785535901573922024601545261734626767871762788812124963278511489851323232600678155648837933096094977317877692752558295322670159021097472688544452383983667196317782128783540829085925762126506463020103772934706942253339934337584409565418490327174346358531796244544813001570035747629860370756598541290947438886430846289733641041259710771319198117242685123348494594271084164526266300060977200191892637033431097163698265782716665545658516674262596963766141348435539688555113210306689135745368150742183753113628675312840619071312016426958963526359814114047567949638752374653871262773776413699199506658880193245423140143809289138829279444228028320123324424704167034301732582161937091519757471909810467792918097165681736615562898367478511792142727532386315263490836352221678558254036485483660542993891506637965618991652919338414134311160811242474882766418182231154926359099441838209576628751699668911547328278596387355141374781383673086890860945706373080730427604851492033991389291624544859357940594433578535839658215888319951289525324917429834121305173756565729276040127258558453455445654934638898813324345298275953846994497915566585563872236076740246301575352603310178016859499438732799398624182010876429061221287694568779310125007202383590129596124393355978415430664364336476574764591085243626978077923889627799262000314551357427307320934785009544391695344348601226834351868802844598254310341403498735172581363384263396130626246227611918459798666488852579332338646262948748882063284405663174603045561611085678689493693208646618665846703274684621760067808423141240198216571145666692411644184877304036236060440584783046744818351576508442019342975832745726170267543409835246230231798451778492726887886265529050509066968127530600029425591368366165932802393377157841152238933262502283747923321278188881055247990251791604254688148191015897977637831048576562800241990012713250428237803266353304274479138721913834060120833370868334328173355559958823532424449254473267337936797827062685588918102295865502056004388899163031379814059939612438995071008820096623687782678829566211713740647129182498928284518366926790807292510628905781198025029636336937251048157744667684968582221953057284550661427445266001997719783446569519040080886911444875391399879243517159005090626771332956840529786507875008318463627937486450618649415082829432123512999885460647868383622235772874731756787149024175383991324500819465079484649721259401455846255587617337528098684803596587956441581418281887226471361569326028120438478477848283436402629363120393117449473416618134637153622720658905552389348203562438063480163910437092166224500258980307606485847954413319139346826196871160244768524512209910790287738554959005967958357840357472896425340484544432107959490459532414078232841276917253848536048358157161359635010476036320818758447335159025849504106073699579094085579981447171161215788488145390973246624332878997781633812296634765063753305854540059518690788108284249701876107750229201918828291743502746348719048543578034545556584958615609875996373460477448037051964418450572398026226181951240660444291130157959588992721633606855899830835619719316821776718971885830523313720279372129700611137598893140085881716752483262649879257750247782791783975709710753804850743443590493614370697611104647362753007046813503468057309867145818458924145483228084356114163523671704638913405597525826487059118771785204683217623399068006689357916601814692403205217973584107379395450837347324599927247537386858576904725720484050738598141499609682028520425206483660241103651383416942957307895475626785293923203240583040530109470122722215145207326800019419686608210182511626099703572947766644553050307679150591634957950497460563138663874593830463604321307368407394275692126799865610728255390486023608221507838204643018113161933442655329708034401962687093988256682267612495944364156380733650804091667203840228630390330930666630248312404685990157544964806498013678503647456495015342261725880045517853012397526477842804589630643253229506959657926355507587126353941648252957591915934808473020449214942870426350687663695936106090335954123611030889985314497826598276622455251573369260790468427080476063394992206609505842967811654102467825644539019091437634742427355053402557501529320356810397484727161982309750202760764105386335812667942233548732072139405798715851213393782959981276673033283489806002664337687019555845539194545684482978485438313583619288750712683411117082720187009733517256391131261769449669783338521141074305646706775773496576258320529045126300011476892243497601292594178672960016895158648750263430935787932113127985070393679054198288763594536036261794382131986654937980221836032918097031613289209804659582735321203964621429975671978904442771427106503572019850914645375173876865376394568703651675466375424556726583019839154185675645211634017951738912257653495650932989704175903556470383555228527124391883771315965681746585704452220850706225621434652195473437749481962836391989697261154271973229246164969982698818464625045568819718395840184165658150136281065958828835905007984853008364056908355283989235965846837532999740573630720178785766276220278392516304731720716827705850905491319224847932055515971890381995436888579444915768063126006004502586482499606359189628301032887262538570571258569432111432112136589961737413638010702142008957851769482405511164986243653629485618679463683698106931963151696135622124446216126457641316372024150187323644554231308606582324338612330362371496977859425874481141359123921147552788515072615308131415733220353273287398450375422456836020545158109566873060154724598609592619985731833731531131720691453250802952011564788288344284691746997997631011192575998154700357410852036115977974123064966023542846123313442760833709843132044298408018212602660307664261590339537136512758961157666543691226563265775995938581284396377135133202029468402228909567358704881469463359887316793725240449009131601380773963080046127192971897861178167953742697158502366425030966162345549614312763727570149055254321162042001826905721177792000736370530104816257382191266024691677499416505138529805721580978001707114354704888090567132914664207150226081590787470646199677860765714740213110980079784691121520192209594314438692048910089117472216473286849056896544649999699799520760458440488474053589506819789121926624075929085344957952160232496073097756358865605990677090757422767476766041185742445684201323033754372992289058803566670131884284318012828314310324991793436726164066426984602373872012267143647775086108693702301839634253702938526786806725915477098690929509601124709770476106119341322535541403317075560748769583048315955598573423502445956400850125927361074753948708997768193118103681361604657983998796916576652442898892175900441632453988846140373073596693476643757321794390715398919846692490477561821642368473579502368340339443917659375860601202338046538637507470014190704959818651083296767693016791547274983715189084687565710326891397087184930034656500739642355288556965735311470558812610547481340637916337296013369042864457654005702942236341117955612294310842910135602082941883979860118706901212911344779796112026469854610808831687663011239680889991218609101375006721314445831493742533811274462966290020360160286155028010409745309254869553860114234910557184446102493763709794903329556521562969797172752819256997863381986694947799314179465752453856781407494653969277336435502491218073015958937671181611673214255803011200227412647667903667518377041114291897592781838001572230661364167882489923129402247256805353719884472258788604539704711121995875061456528877255150165400080038835987986037958178657272626126027721802987071782292549254709552726032121683171062722089074715103718662603996450726526409954853491364678955396432932895902554713259084342825857101738769736850048161955828917645144234030210448549850086262568202949345460642678964288627970424860517181927784357095931012257025001394322663912546751375202846980797168921019035632121927939711347699080892264050007428753620549428029255674939491262594634960507134746485292574514968111481787246366019872836049507115220643295869708636146864658029662039963991117650991474322190304616593816585375597587583774660734083187431994257609839070668694259937594978779469803357377275795160568385813660359072691661088849014247194006785275149920042561842975508977208798939712269683315224261904097843937518924270285678188399092151512015261197126005302264894043301823489106523087687582655452476504484736193871001346063187173281818123025303221923822250226899812866150927346003670062249281876804388206673061920229918801022253138214636864973708520525572108268541418857864563563805345791389934303272125946934853890351270618233590121105908928762715914268767190475183709534694707305280446705531411704333538909752476147640913546613288850129170705629415235093656301139954227797241907503644433599039187412821970476905285767500984910933181287611520295814331998717391311160282053703282306025665314000893702433803253428393397744917824216825717607877120375278738064863211498311961692588631090964136043504470567860103297491426166936585357875102067451393789221543660900860965574548239091070498278881181520047735942827645016597451808318348855561807922578314706386165647101365691070829948998584562595478528198252436657482791163566986183888906201100319823429531047541100378651420079204779353634451299271436161452788239905341025807399407288550281919465847662974027431344495243129313771443203665455905693735506590221708044146659911315609848545281871660967525783272160431893673435527822575203129164003762540959249442743293450188219812327623205765179356813695101790497033141410923409382180690263948402568843643550948901967614198114231724228771966124297609525536843778644539142274379058706471986364208006763631348924136057790244450561498040583848005850641692175492887405878748382982116670865630235867108437407983445975743123180805639811080317345735416461174801308624959787511662722233055685683058604363033245191738058593047858411827327459813447144799827126527874420537604334555130067797102530798247308543779917050459422673131207076834788736289738215775045578843436152100268851248031835053208040102473847492327153141815142348119907469439788674975673843808877338207399722589954766986309362829428965844622951890956273166320082969893208182743773238245114319915898547767677332911302949105173387650631030289880348696709863122710737566444581050349559142815327972962269932415661680947068630487148110455525781118459584550315062432120894384649273985517537989019981438752644508292490892565519664636067231091185681472052908482489317368136851067929004249819117860532250288696428329031705830761271651478826169899657050505571322281304723773627998349990756382141709211491253201785221679861553520812452290825154534652496642755603941307056059553202937037874202733999502503672122860096036931180691137689414152659119194003098307954663457724784013521255586701211798202020712093749140958955577305530734868899317874543802210272162988282363140673130662196884418762913607781366200290831338755879567273691523416545070481585649581511358546119276275852678743792893174269250018109519672224784374732784259838265141956372536711262244881445803632966766160055908980223959669042821591505631196604281268255124339088135442521081127996293772745524777507662068100208511131441065881299293511757789380594174630481034754994542822136524751592632927847212537412711274774831167013557056501112457258485963084196681574959932529439069922765388800171974420831892843670990687156318087392991320435320279690851838615746116108745163338033176013055538982384909653240549995879334528178939005017919569067417559846589496295352139803134900731749590704732975561950775828403006705763740478220149153306156883107711589066590199110643860304777245747019935877764719542829700929013314852885137569639718393037884727699929929404326711652294591327024415627319730710317063953108054766090068659638583675998300275347810100154214570150162384905669658846314348286400058215967943580596698421196145236430334547838129181886085543837111915572969676433447108504915272842967669979165538398793319881074145222427372047736542609859910543914515951562271327047770659828291259441335753828090961368209853015183342825246826471179029153501024423337580812377594681683033628782328362391432434582328006173180469278811149181412281882814174265054576562431869891564101341705119360278247405799105059717357876332211316336891174078279253052573984686273761887340323372139391897947910074874885656807161714493630405016357158903245890102223221338435822025960334728779848214830744167241763931797721069451993232382643674638684935373533990484355300081377675516457594722842251888554698993052366555568306221291440997689285036749715797216968935323266215684100580392755187075905083896851505875670377475016617383833590198024879960984508735867378441341502000298879619408468640639520700541004173853729005668513399555526018448119526550346055153601561461151037195309159238009528381727525544253080390886527841368591361971453834911677977327381631240372626246118768945369751598891589762496809373510080878553788985051000852459518914133308077856597522522643380519299023685079849073990083477475200430545730267721117678141882822958321966675396833862417975801311005217576176738025710396454248584595994339550320912523667866793875250006077414192332680407153709286043434776893436048596716799324779704969689371200274754204955345974077684578495278871128198296695030175953189606807589527366201494428250553036159619084804231345936955828181822806327201500610238652476563299876292299965670754969648032430908420090061965037246951245841565763887730007954490118318398119081429494051598257927304958932057663974647545727967491538848629996296647438497790019740785744622121143276358247651031938126897979395828287266131425266974325219467463293622394188247104700047228921368531576785864572659741768364661014135357165862491891676650563297086684521790961869706139412973835471701947446515051002514892792833087083942951694866087208225958764238665779381162478369383276942922000327954008079682246305524478483443954844540532759947736839715541544565039925149963145330165957415831646938744928077973248905479495763012894278593169496824048119817017809003403234347235389455079569617473105540156033262460843625382977278102239697020750422916917183565898883702251947036461276772684741439895458253183180289370951408676934835929441340609991575802337600889604231232925374124703575806382175709048354298655124243313710928646707564833867002218659028824748820634296826227697118359685272375310009346678176305997063308164231017744445230572697241681251632708049844644245357262895643930261819747881045056593136042691487090591817125952137027587904926832898430949661180056490454631716498620555882796335388667895620957919986234766084017765304936576744667640787069443900190700157661081163288915161515597510106808714640934406926521394871844749640049616061036657202961330566659603501969472125340457696621015561091656326521906974402802707940719377641355512054998896612899289048497490741737390832042624082237994384719743230717161661321631824637626525777826541281865525954678585412221892977206740345207417449272791762339028109444567263725560184251038180348382345452222966525823731075394600077383091048709456149092038380890976110228756336292486310710623574705967355259713734339154847663867592941684917742008150954856122924372951129564705886840754004659690326447547669103328352927649153108533488697229792469722311239845300304060670275864071138669394314365443855934196630855289202239038491060674962079219923211211666573421529365247941176354272546540850138495795973877604586195405887502230971645542987455818919228254952011260577913917057981615361255875397379536085240709986818636714641333523813316220946179655486219347514748623486945650041493014518875993115569220341832523625671631862515906851730068727970647456808917589802989980158670985626986107479080093250192346006036631991593307625220440871176941042903199827580050999605249596631516218760357228306732887344646606695752004231760502636468077884954869020976656370353234213310810306369399135832038792377210410395911173704212559105422918214959340107021704312010786941370587005082216849375646440973308369180749582690535487995904933507881358550716176568297165627619534581953060385632076943973227672485812708047393664004463991626074536735361428501376763235204650128687105182506128947527742798787570287611711440059345773009103387932737204661440609022813459986066505699584492336580012707960004702277226197484595865479207126297592133102953003880459226193728181307526615709977002783553968524025074377907719426193110918343086121815225756821733370287957708019591175912120225637716023230382087672353010885935416539059665531113563853741187101123785716238980592383028732759084752728849828886460207782850838792437957960289198897619295444214579487063654175056775027762776657336858300555083063098300791725498218063574164684911573326814592454700989709795700641947400994065338601693025368063331210514060703800601763161863038064247046272465406843128241813699840491854009711202447086557007233644536274432041751430981112085011480368093928181508318515012494924475554604898300559754516553256026356792976143389378289499263177717803428121430381725645153618176080134191557632478064998121711012314308397814027089560475344418440094182479201738257505274781042876135643454609994889503916688287570100278347522620853093942892846451197046722448447939171331700576463348744833595020589707564966064443738136637222491207300404670753613367340325637441635201776202554075243068396548159504940070070972295894793969833162562286155137846786444518223396051439385903383297301235011505802828094280338380059192550458460394743600217160502767411011773000820892822338748142476215923007161299051001133176956928988679343580896657705977961157895695244751346771568123745386155338952227305128586452812894060774267265641198037493146967654283424661378265602403538445386971875284689307016255125782721285021900090204090579189528445029497733652902581496579214452641802715417837515782422909599396460588525861788501213094106425303281835816297781433244858099758733721340823341078354897881183920641442041372378592514473816370569422337703275659538260526591342579950836000112856217465130947738292722601797400661982668013777362222446455682583872245996906396344751912086089221300003105064586179096125554330306266308434929644662834725138191405678842276302907517266117742353267211977085013131341656081106849654472142310587266392654366003636703970422130487154518325544499600570666125730582647473546341119108989776111232387723756795272014222721630365972426245716150816682732586942595656976833110704711235070634376919470040340605911975332693445717182253505519596729757196642321950199357338623779062151651014903120880030135252948322789480168103884872211214301852717266519111503401699985286413010519317854230748800209865086743826037225196567713923365852402694318825320605884944717218865709995939522861809192117842519102536922015027356360660760973084272753236402478475345495826046285191535882243811468723761617526198520505587294344775888549587342532043621481279079145228436975590311311247677630357473792747905700956250771093093607733641440001156180770510640100718666675925669825204568925543557832159331156410658410475064722328141769100100694283685970129550732264042330737551324669472971162592842593057248186843363251140475380238528659436306637691261326937659029973232050654781548873130884476663888585478441162876526718794829449346047488495341329507017358058815713245838720292511298507104259139380422471343897397650476656369445893746396681606862901742494971387238010134177741554711614958752871925178210105884914011889667871000756195543615259867919465779767471178093628314817769751349286754736440145507009307195569398525840300379742680860755247206519888981937194838884707737496575610049248544660637363267152763212634877776498074086928054044955171107385794009855987721126071186853167874915991393556815437902742502828723356549744727805440294434927339093236017423834193602905990061070251735273372820017385439474821987085307528638759483194534695018827552241195721014606529542309713085758448526166103267624565805532276616107363761493416314571285902847120063821353456654711628431351597751330607351934761367074654677849040994342493779564822886985497040372580079691853929473603517272361339932686214909325538457207462260806145808745861675540134422710259392480642343631110597233765461331325743623040960479382282946405796744568885289061609305372566747146923834603169468878939515796162175802965983538479573668042928081298893636112963908838120417200586032229900946864925612012955566056846006282374182640246638806426125678456074401213569576876316356171386458494086098542545570186014234558893500148101228175136778460205025367750449742237061234746054463593406518468509709442413682125623709904508104670099220753890757220454089314783587027172972948145775445305586307072904184168544679036108431602391977599832409822330907988538938753486911888821381347185688206774154113696540971643587656622649669247671708502769650655525187068298435202509456987407268674053428813804517442309763887184587059376326794871563330297890810180581459127334223865540121354866402861722945887956732710431297777295117526521364023254636386158258870244917036574231629900023917243754793437717655301409948218704312483370866765817349072097235170907403598926712277437516071916219706641459678868904310524353445585620420570319487874132533065366822787141257268553429455628928579671035499438292074184206146305936590910814662746728061390832831960240491933569199725379729405567293293341214297464043247513925531131501823847725680295048564224619715067468127169048022882887845048001355618475430352921723556878931576806415722615324560389482861078832987880407779188326001640413883015748016070266184508101025894578980532879633192799272968379927622357471012575946877149439162021404935956762631701325603034710899149516764516068409293969581456900918593497883083276035281849830168352943248500712431681456385678709829037757929866993590469831091184385908825705062049172636287892400050495291798165054990059389647363699343303003753228009350752289786501548755660584057140398202903471958979447505203594796736756955336487785319092969777195058710107681276879567311929143636095015250965496716404511993058552354992404558167089658142226624158452686674687512108322384915123950753827145280523167164463910924418114232004450108776681133028119256002660138619968346751120792396708348895981972280022269072780095928173521235415856696704657167986399659086023524444338483255256713866315087606908419720936292916997148461697018438649623778330876593886265443799701476477169475415037898972230235394202728101693860739770890450828631582326327009258824186249773353343277040712624560346564249256173068751124955752612700208656463314591986706037010497754542553760848777920506431000598152389518302390347661217002766303259390183645905573272743475228431932678544819338511816363705091360449227014627714386473906419485803755669402319592730825620414521057834492672295367801532913089181026116892254780998716276684602950700110285927526596793896127191274363582685070642806959925517088693640533793913550580177407568902064865368632029661465214422509341919045952899303553455572199737547663438004281491132453917807330678166183639045635265954242143536710784281667810981657807209879994016154007846624131865014256469854096797302157221390482210459835104177606261905043881352589456876555014852948524006054019720717584722726969253537694483175037360397098391118870223511814842216823320488253145552171840107779922929663943789422304399405375872206088034272048274864116562630927184667598657154145583392534443695582107005563983842783245146281065984275956778668408578875085881939811326266349421651507157583972116216938706342915636325637829460200668242106169609812072088776510881339394235827952333481851005877895402103384784553475572600130418004317670880861281287865994950128773413007617843246011658488575069104285738444435824204347943364149327188691226293472357213258353982722106038626085456796911774799531998857118555055374318416635674640280602594225798084790702651727623415902398494026332953634430064708683539635703269876006870068846831016577953116001912520280685618174057388333384373502384385210544450983065589793453077325251658760160304217076775942121941788671178873100014771322891332492986838848484476464897190890752377990998175571676933987072183337902022017379682095522310376694662322576078898781945141144823595345386428690085349092906978893002668383037556106100914075896617807072013845055452692862428583716422846966634794625203116877089196295663888944724516975025120308283731251456617085347542311074377276027618014427256900212392178886868899185994881610517992721945338612239020316706259213383088303413070574604077901442665838422042558919542457618558148465901697652594369022979311710433898574676654868937302528048640422077154074361248924683364789427303861441327757218065076818332023933397605507681204230075750908998532019389244767040465618257557512185344623638890083446387389547323627151424313258524912869435240918747582189178925596029310697503235181678189003805288225672270844082634420369852548841484206485042724919809434700888145360102796146546968641326020677152029366204298848764762668135563702597277801716044632948643519668611171166936989705662079165024376852480064953945794645080271532763611360431264498189108237597178600821666369646321941060509640642663675980502783563813284837986644564629164415909192713334756808053385137944755568165144915201086492365953057323711457295814733921979863110452189398818785683553774172109658706940843788435568483624430300209656325714043179270582739632934193318102370653242431355832879652132582597772234142934919423947529035755070484906903247103175429651086655647013985382351524788918134149330329429642823987611771688135911632006042452611722946443988386998677581447105112504481394159536659139049888130431265990672242916450410013537862970888457988871814594570894963244307893275154239377117650086520373826311608449505543613271632341877304387080872900016971938168336760919609690851973448740939643079924383899714263954853556398856737909943981580887256877949006552657990711457774369504615406996639234498836794687395621528395539804746193351638294036500988499740114171099268657596788259099046771929380879135746747917046104678613507368811063251534904888032079107361158762200785542491168968029313303113860944827262680416672095449434218309758859476178313441493938178226770558166418298332747455306065981623195277285007622303408741756787644832743578573194248231327210175123468199709638256844832596639971487852073549112776391970444329828116876327013544802617458783185901403319395633500494779548331859128606299429614260010448761985437131164656947968627686149226777728445407432721481975169810818818256179224977679937682928355918472764854956342914486575029585814642426528328204408213153093800937392150370286050698146788934182809719743347247050423939952440155993585955814344584826036361762598773325185917750644536777014233198465565638171151282573866441023964355936138310491385805401743000567437573568141920227177556490563393903324843252848997522133606747422029638811886799890239085933122832882100933770400418251595809740120092194137665464789206523756142878512332134790794861234909080572677957302485531470690294564041793786031381650277871686091653756261773551644004067410001858685639297802409021025450963952872868513537724700874537594543418850920431407118430224718308402606883167553112761698649702863840347975783278188943780412470261284083086532727203410991088772298662956369708822596038430437708492695494927400789536762617731689835273970803112501926614595579355526884079054449777850087747871566831081700900552992709839590840214914624288701869564823315495387357619572707062654819102249026164425149554786296202687350205790344546578112544988041580367571474342888175188150687093288417993760179219292075320650869807075681838239979155542520944775050328090873466052702893177722377168252924957451494034581216009983341329891000315172530457548642053835170288562465741227455478128193885650198995796324481591740516489670668489842905203379294272888881311030752066734668383810777526195229364304556877492150220149945551408814996864074580024683722821348137242213207879719909963538242164789110346802989930651936946107571641008537888543010565501636616723401057132713368474116232397805761909291160094659164208326537230599812197765170660774399927844905432346760481802878498336317885229104643073518650586182458388115083662954165967916609734613760027171989087154059526403598166878121628339299690295260387410128382032420926223739080576738428045284877089757354640561878902055526020156697922664217151231026232784984491746386887753819108060663248253678906928423987603353268280661439445317293316952259781559858987709220355578099885751862403430169065438974569818347752958715562215167900585201546114129840761044749827313357926150482391422535852523521002279019532125430627674650431477006285625410300640445710056808057615516577940335418956225699831991617629733106314314347429365310695785988588420363489424026272711622689463089110063612070927294512328949373385196686395505924377313416456890231382300054765915556219779779030320034182996165303427809277944010527833303285165866644481668167057899079912673734823020744663092158820563100151349277731214264619459071023962658059876650866703818132954405361341091977944029447638810776772465680132919351044730588153761725664073571732140896760337982598217855678524632631010044632842854244214637071612577908951289544836664327542929609154539001513290048130549569920603864996202768240587918555618505872503728724419795590442518508661393268789992283492837216796375689043393889288523646034561039566199315952525147437763143810123722484723061039842549582853786249342945383062370469932163719056897864731883534384423271372151656780958041775548247699570113942360808793141502473304334487858677382402486374502480285412571073570164064141912362034796674553900461205349477919342391239115927928499460959712638188751064854574914890699979556196879930092236828738943633578358750486809740214781424179523877058540529851943764549937857217247794404962881232638675029059549795326737299687149440913057381988715270756141326977832282557420444612608439346016442954806188215411117884614523701602269979334878841787070814948234951300045987925524840595712911845696911335230327550781277407951200777157294458265953594132641189717338650613390311715715988576784538358200732307776080979373546596756895720534845293497156620841812912406550706391337022759473208802551447787591380745596640499903501396094500772537308386069255781783929400376723826504901254521713363776775597938598912011395162779643107543998376155710013732421493543031250065988834320617129775663100713939628092145528114529881642727291700273394610143617848244541605003291409715831071323658263288437542747902383098786363224037559751826468534791252996847380523510793891665305528708216522380965361153259079768594452399496041428670519064567460926490497575095158461196963371778794242758631274053302116674955504215413602813859711628557195646413743952694438756725238407907836371574001018763245655220587525667448875074333970311326097352986476936678171134553870903484614658974211537460816376338176467627531936558299259730035030572269439995962232493235755140098903468269308900115149437925226478625576627423713943150846192796921405436585264241217715067997415903338519296103854205028475390490619973803261182166465297429382793493962274471097931085855807107106610829616018958107593298342377678186973253272000031353349691644625289095966809634336447163313647983797307671751328373265738037189341147003282312370251765530873817024621925914217168589678730118749958888693106137008489358464851180572227176431233619359454458061624411199436593094836565699262938853077753322553160196160838411200598904268038902630508108215321243933877174264348831828236139859123658701185989074979650793430336538946871507224475692717523673985942252804866263774042813651045193887512432237550235706502775271085808010407162059383598514311463623633750523167863694527629927112116565651611046658030651781560689226516740559262064313504327482697165524596004290896632540202984192681197595191210557525413576160578210031875285984270915465898640595488974062199856568256928605110359818780162304821062303273477032021518820286295420210808014420546050608947957709323684117294649139948663325217344419424326505761418630726953524302217422101770261113520076096020970822105871414024783756751673300395199565256716549738579885825659811356627209157957386598609931246701013055652423688194113556341858701412361487468977376577385716237186102946668538160640349039601378106733012252340780301312040205088697985179030815581309450053847277493521720766000704161553563759180378747231433190185049097063651527317403671788689416920498097245418636000850819702261311073666528788896567625932166316488491693464788198083038376443905813652360883909001848624350886536876636703142637392645973015752468050775934745492332423681985375970076109291161711707134782279738524493828107283448710199625442947313054925787193535933960014747197537460811214021257218263587784405728419084336021708900729145699685727178675381426801747819083604125261666565586303107972297545492673391965139448451578559572733055356220405026529110266097537951279887855669807005875407773286534710233135022229151624507903705177549676126004228118176330729683163087355655909071626946175002430388967671209705435452494176584848404753826090070629032808637273488024529776751167719583299535956127116090819451688778201560515015659472213718396624245890414847134112069793093489419393740332425107082048613482476338453006611581374733221532561399087606322171108925148800079918577344048110404176032899949907256941724022188312077385308735578802846003691726601748726118906920718285563300659019368195581387728248328170364630095095996910663437545662082476321145894114592143258843756775568435010537564623107214440498322484925229153231155190656124008008874082179822584636906584271826429803603671442615710841793254565973603869477495309003559356322707534691875060765527477643527712261531595477263066951944195965476264795686411826432436992947380150339117230191991031896789051003085173776550997913005591272004357538622096307847907825618330212578231199488899995327152374863002772394972124100227155425469453674407273272397602023998213617533615053038945202193723261512066044460602916976381058856016496542937282179672516298641678768958889666412379355766690715226888255995861524160016912999818286322799174244594200846528107438358325130260539309138398267961419498015804714768388078746775106007518826572585891660790516316026656337730013424040025575404303812437003855299348153376289688589860733987453932097908650149564205233285726784503534827043162105577189583817379979589123889650336969582638702626173001523478966168093904465464535324996612581555712748639221951785170241315776172749911396936015032895573981843619906429726838531861886008760423752523488432892296169227754096086299414818553805449210629085346924357850145273427021953038616950417955567485362392493165325679270253985655335405199618856196672682375108087716729166333923153904821318207237523760439163360367600029510764883405453487661963380875745294223299305658326553067902796837209803881448527782937357617897050436264850259837250980588551625121953391064263697002990715733550205226225580381946225073328097029315428687144499647255948020895210600814167514231472033879709623921349288936126960376161407368243437115808671516599467679306534507780474460404315970260539779243473304098158458273801669874407972030270950331917114797956614385590742873680379089909237955058388742112349336651752371310618778682439378154039541857662069759614348826039841200802375870287299583185748935016738787936430131925732727368280709611377247142144260073376604550078919284793434490849123711905830135709923596576356958097544066375820751837843518809495930499342457161013940289176949844082157031117882090875358390582284085765222744831765459495195431199440451231225429657292919333394863529767421075639919172554532227174089001993961386311177803233265079333392014397309317330792320944028438273080723377499752674253452939531478069663061679227814611980439393390488226751487850279343008665273740521967892831520688011965895299873738708649752794083166778438591256456405113397033484610674691518871000735417763846941307465585262771166007437844590120452009797760932886769725167313829868026287108300116933925801348357603641108423577710047507228630303288619119006774031982142156906447276496313410032234219278688403491216175616137595913169990876481771561038095023069292089339813669465828372584381169315427342014735173521441235931554317335159421274079120098154625594186352109075211277530133658548722625624983566092109726285680166021046208932410430080515519184712614009012841659300858745697928393742696151859517096895853102189212727199500214837701841546355587778202040912816237631229173696492921013950562645350824524260610114778910933410365311723799152093653190386066833923456625671666156593259746759796897924819429820051446492815717157776171812012146087158981168770070050536881985107158274443258761795704299098665574441265803342449598057047446405581501167644016768074922430425232144574675380279136855245063306816484141473299733129051525939516776506783701932309257061139021091578826796440003574014403950043561031313858944248750748598291448915575098598936828569854919117412390244908164307211523265762997429594295745503846673823506457365596403288091280252083430074187745100948198028100986974372559993743864133246639491247912436628089732034200312731441501884034391665807989017957286521986745824490056539012412253219672855783195236618251241826359616505967071192283547606322887795399479511926721480841252948642809227548608567978198402500444852113810953586652705872004196645303244013002878298148081843420687631215456405433943547631228146110612676381419109606904466111277535727629962733884123573449399443047387735705640023569906645057728958711218424208836503484865009371216196765801879531826559558749169029547103865481016440230892645907821388563317891081509627725725419958528435981960566758677516067501449463487438839915382625383144308430014703359245479232205891409938552022877219145522548724166040370993298735244068480570570896466109097717838477734876622325357210289027954501893874130943343043598729735121220507096718405615536109870065459928392918337397574603624696025106014445079697666612024190984018402458927432388684510305296674023920672195909623964888398329462722027171725054816268905023277282883537251856318581759566766857506681875135390147745943919039118967709931968193679644482695681883121682308462359699494248401279478790320606506146434078049518935377873793248542065266008117147622645547160409897984934553054404111249509243074959221861820276905240917868364039981468374793455200713234999093110433989414496790596026655633416196274249634751796186802447888666617256488730738661084835611144341915425384439526235397586494763263694263254957284876336958854815277633585128006602887499275284330212143923502199105582149368522849012447656228039180423634007392896124756339490345670436317293314859228033889707775892099863925865894509610572533658012081616709655587904693265877753606764549473882134852616796837577313331857237054089811577473008796998421968091637694881982027497551554208782708395367846461842878797212308687051771389102251564848522939958851219322652487659597382186800781531968223544232295959937615761123063300753726189123858465612467139286480743397547588097562576264409201443477312391567966997629543653717645303716052868200441828254317695233288585890303266126373246838097343999700552530513310970132410310254854119798663928301691703314122331993911276616432819239324252827480941108713275687750536621749904429149820295365128854170870077838785714921391647260582487726641891734904183066054506042599086709263281874111802881446255662663147995371724915953894896125704956464599980604125413904630688722418949611598736060852751042921361684996906666098941900287813110959486275371294638514867516682612234540085529482264811435913046227249762089815328182235607462730573881538871906071443210632424732809839652828259530976045065215718814845836729069585783259442349335925821419230596048958325508181709857444520953689622227834580725646063345201879212091472570951410155174954817225027120150256778568551692879368918072591176696916131100972719775133788410337273946649005533841122811488649952121404315056902567842466677942706460415007318303619718396212943001486575631396837307340357529757778691993515826625473473159490582112077346767785034715211609079731608798650323299107729317378595582092673126047006972058131386594485165725715410637585509997011623612637084325218051411959564717217947600132478470510051563281014915596475388207657494606298607753787567722740800179739529534119458508289328620102522957797994989457592834104094368631715627419047966037957342581244403507138905390257041458429497462281818853942876052148861579037412591569835854173982123219868116430137116628714750768640515718540958641345871541992789409229674968705416510191621988466972653938073490363423380072025362515330646716582729873594211482984497115391305229018166208321997487928319478667917387087025782721494393639038025542701178944207559403567005049402182524154694009466613103844597718445142883406402693883167585494014532697498868639008453391622141499827456960979246778940232177845508314321293702114811699439575371857701674421359342458798266105863247024911007113955093212770653838133447385520544166287447204171883742242244286690082053271470831963774398874895967023451211418134796463186801781554150878053577144118359421185416332316451549298597369881995787564568249729992532081535874923301139031390301858975180426209730637862476531722264767027291535787233258687485997817181545386922394731576134171978836844980732888454033396250846170029323644320797150299051435366118469487672844688233395893100600447405069840813504974524297407011420185791563860049181894708694887027716594237340972039492276427840100260165901108213089473659090135021197713681243806615241916371026529371139968041399539206848491931717349927000337932150840198319140766997365416326804669782395005103345787883923880149550854044516089536604013721770427033050819050875544219036634814268727445540027251892801574819977862721130049627752115637775779418520476503591053808033949897958906653324232326280428798736158861956083595409848491344545788591526912356986190322832719690776744676408549657486860325501413894243531299225269367810463440376350738591475605497100925961689353157272068530601299042835279803922599746965381600612024820094962301891403108775996983068667765244363852040131165432038750454860146638157520915009506234438319003372870333159962243079726490523112460059429645266113526339706256595162245140202851682317485674483488540835743626032983954088597976621347531176383597360624943580206404818219098234565146832539911589585927907808384257862572122996402672158290502083487727872639389949173268422705931745148102913440888605642718657572682978350873938808960996242608017213769444871971625937872335789834165193169541645366878571245491069368327562188895706983880851310611885979797070610691170663409962091814882741060834313807305266097548450139632232353322363750635197605321887264335878454204300130656424790287007644622478763221518882076248576907054825370022304707477781524002780786087205389729461819371029771511050847318072660780440350077039222516580545507369291599145804263129609821605632808517460749163137039922553988934917742398463353600307795949216253986080573916107021844987101737301088811952630713771036845011000597955255350996041803414705820395216944751632222550438887899793717042769482263541572510209829630541995092516518308071174474491384415719189803870280592283777339213356574374177845221035312984791290494647842877220990825373566770204978541208048738042924024893800266168314729120499998729733596088799447155109592471550532843666372248959460891169514295044610421902917106120450306262130812771412522944734531679128308559690007375683614282511417818083010041767891326846704244252741612854629399331832748374952443050349809461299996944155607056197444275099790147705433969668658468973794556323490006301466123546595832116288392100872076964018696371256505836435178274338273488510748454956732479918656522730108371728727657754986216054560942181224806305822652638885258739985531104203537993955395495209367290669609352404062125272859708232225271495659674974108965403869043409652579631286804448185324754109062623683532199150962227455336382649888811460678981834564876966490610136142840175898951911040747323857330289019692368684726051752531708188917647704273604265439161142123600798640210856209645504014382700028854514252513167426852721064761789728626631583907722295751385295559555758113903806674018457961860214140191603604712786817241844357248599238067185849447416881184032180221718769194967562773799110747539589199356482075073583190350247257912806250062226183183054532367028993777697749648813576738345691107039909899634560034002875097329758220372168452157911348469044086299361698144760722033176907442064005054641208284401250325466473489011043573884393190459942203815512444912208830325788568669342206360481316772108574263545455656403015151531922494866735991205426204499640304843693362868156837421367004673949429423357865211913872326735208747256316093809820866015840445649303498165641653299991097817131794766888874927059023914053455382871578003315563457905033128491264157509803582523095130502187868467409713890603563771099975549889008177572818193432263476317621534718515843274423129507329510797971829117594987640038362845596783868122834094134765499920571612259676809561044341759970611029387802872126157363414921752247371219417241794313619489277207365566655848663041041720381724929497630018262202219640184693661261804302958499060835586990652858136999931706852268333269141158208135936620665229136176058205203801683521062322956264616474479539044747594038498328743313298577127498544391694709962204405901565258983033902064802299558492109808515177446504717790558825440778879874296060856349264423672254197240272392316541475998319574431641933873717680046727517198309066899707659484359952362795252176739976606119461310172581478963122914238368301598510686165811146265163035469874419501063968770093467897521505575661392278956096362531153148620085518329480846667582047128854868141181166564922351711758091845239160734795571053144357427962008454231835363396460572720457059722523954366678859932534990374547700426277269999679685419913403430355744385871066305985079577629482932524919556057751178957497178115745550107491632730694420784908011200307158340584100667796750520313710520284557097277558524735238258596887948582532579175837540835664730088949404091842114998944191177146479312165282044671054310503236427081831978737969159677647303369175680267111127101011670439685073530139630892373541009249572509993372874161269318877155302632683472328353255170102115387648870759572491769531422864247117367058288944095532546219510962209383384537974581846360820743062616256249330555315776932880990376066618263397026622999861741523510374646341700414682289321116827093289081254277755968687669334438191514812274253931494947021141760922086619024812299385424072925985114607944884582784038903868103545370835454278780594195366682536183229795666785256998843234126634370857823062146953801881444825140585760098220647092085071246856542403327053133955468183008593626386854877758702446829038244622884709234753560290078688248963185979695152379950301322110110784580676590563469267559595969219174589502947363159626399988450288982914091204257932774439114683128583610322291494856983240587692205654451815102985652125714303824458544335098549610271172140427617994921517174089430376206252378034327165666252107660695338972847634150659284432914725502021524226565499609052270463670106512171581554106676187068654038847107522891097436865890910194292576848788789812138414745731432950257452903450796933947084493070011791712749665205507359324231813223967810027692848230755585969112183126064123042999503384408190184241511714906006443478512116859395929861803825578616701925819454267713566586966042782202710854002974819388863938707407473480698339657316613966370128580334490851552965906895149430208360413550095534512435482633727036242192347898315159084133079990542249573441201253198962878179455177167161018309051926596986090046227886202251849692332450127780047541562168973082276076041664114633444138821321409351211345982050214133556652438148062021517850728239250773360874053087228070500938748808670148515918260107253972702063546708548919719895343644417304465718998931017107010580740171733034110516206031272018790691690197236400365470299641360642325162021927649565869108876669092786345631436742984103582671363078586974394687630659957316832018426297060568369921800673747269039741001831820321137533692221470415994427717715505460360254544875977201464444816186247520139197630030515739116484269468556044549600772955151788843368299722681476533244834782446720821244578903462515303821819206922313764689424299000535865136926860675386071938599445932750406465494262784736775311637638866775226600267145769902638966908720204509981320671957455274363746326762891482012646427946555777934621411808592475398005942896771441728962358319682027280309752115049109423598314423764607664071475449079667106747712508969829877619985057441367709950394058017688527796065439711690098957080736284718263281021316245325356203653277337897799064761697292521187346828398406609251980424674102852507941558244047527241415425782262933412527293271091196797206758317645522477238287280354764796545560722140800059890246855331719362905629500189816580900328826139182873274325384685524118197510735684761437257971354939347734554175497820860966157248239270916262845072513953453306317403035757016571195691121177135964654586688412268164644666203787223332196528200460772182895160589486193171957485895533987036293570106522748669945521001987131976929838189392677273278734091704955502530971135856463609218818215657421592694108640405795276618789713209218116307558318704639541279485906172196343315736509956372794720009403460292142123149771872446928843629125849850225984123894454550945126044906908045589015316838919467595720393536016367187575383297805833615965621189227729899510006268874215155156298556343322037236742492358523878283727737221268187173276328216332460245632672322405165170870813271323921445959923501682464231445559810427586721942868954746056939231815805515046345077565172004912055173537241254047898671809124595485181105516061752971841943362350768921130851410265726693480028338017045215723714539197088993075934771536755363471036296862472058416579170330287082636432415173489375983399050446318359243757649625730804932882204923610366860518990604783780565572705097102660728515609015660340307734811932827555623847466284548476150553376552901700535081053242957694940773650275343764928269923492951645097164323884601337349214564331206309692246098858254374975183368196636167091519091543239381297586852166115508435817222692588758473346300770599934390296693481345092352326313106258121217560345508295374350786609887514969067955702999976019023790346995609975367333763354754954470935192734884396527989006438671780918105816184054786361730909062124028531236119736270675241689660467015697564240602427229357191236365329920612400483390468759390880912286876555527243822602302926934436955524599397527729536368483830393714533745412574003384234699047061071215771406756996525747790836255112091341101444326118342404594258477498411605708171107178155736350277491485304534007579966775445731733518939786438116287196942848148746502472570140252177672840877906130031472879974711413222198257432980979710739783859603951977333668496167393528962541672852497931315274437055226171177611218185606827283035698176462619569206447010344811373417246813359428824413969344392426285886077534161800103627219342339852801896146680683994788424170757469931466870976018011278471670785202106998264702074284283803130717009586018145319827933787380447556262381597891122589756553583038722871657672153612933695563363474011737600087253682999699905461463674042484787910051804377275556933894141278189459247278461610347942476096699083216990171174187983548457964971474649418876205470264940892527699349227240361237586235274810357076801941244014470716298458466030548506897781956106819903402662437339414830657983815746389315856793286195266392195673204662762097837625093223692054604907758692160261545201422597247190731082235407595038361936691366247275046951873633006049919678454308080901182329311999185334644305594819861153024384760183846923395571133746917545582189731354492685253407983350795852112832478587066103830567851439532294862489815933356645881271614105705780615904726404546357748781424671099977909683542757255524329974670978928607992831391723273727866873804794946615562379010607434155794680031998088711019461165163631684030438263711499562944674635801875793079540169329148476050115042715837442928619777346110355804555489968171260299024328347745449929427990228800260027220302831377689114490960309416795345734730631857293597452828237009589045301196539051299091765584002849935946794270701538899237940542734889063997560432108550153008965053576011166484403937864679353938852663494380686334528361183582044690430839372797007922183672623429980265801116570351185034890754695304277428386688551848331157426141754157026893252151749741240639014159219918740202831457452296014910408327394476450494971458874205975160013601190547397552183035616963832865421653254130963464327909202323358568468931557687538217048815280707031194196915412172570716714579276275359119160994869499322767388969711642776820915916071117402820485575119234789172965199682631115823729087435606978829017206109442112009448564013518720364305071716241234195969747079250140263519346306994972249092999595897871974334427226328118288730759334762955248600107713597164460374773555278984192282011704433570460058898379300346818686288789313623249019043829305823582158678194237550670718334974751154152324060665575272044942874870252241519291940271515266724173497428578464001615482159538129425540640286908917620919427047381113672764984614033670026022383019767420578215441967993649267337261431697034553469617328125865467854757289538584351680372653943045194866078332975472517026300408305859147775818644749268152194330847771745839162056473061032627100208233902442112172226096640600060037377942013165617166786059327410131547990505926732430252991545228279973171577487584192658254844684079530845738073528938238617256610327547489329173745641744189629903885510304158438269744611244847951161312125519102013167060006146845250477465054864912872326393654786694553809222381446957428619281302311599841476702694691284031287996523632163523370563714859880389515828630669189843882260398463774645119239360092341633589922742615021486556754420664635607973919125751007034439871660038492156271970174881755886667029603228253963280417837507348902074678624085041216979851092829398144250373023254242085078292126292924427271040068878855759935067909544225534257481658553781996123592101530928255662864012813628676623090673904952661279979823078425677066103354570221628449757943066394943624918097848885655522156206036939206261730580274711857151749725931233718710037970663775135643317334857520609463690746313358625689693140003345260242197469643963300103854848775150172139191578278653189432700091844958263464832284652262002789031831151803851923891568214019441244162716342412748248628444832115475325100372465730125991889716083639027448853769042165986399432268917863477642808522234018117884596778171836222034042985331234122640251956294088089984209836960400170607934923351712105288270411406160121896728994157780103689122842529235167572049387616211743471975104552319466531088776840759024738360903293609850214313969217762529004849055333598630685297616552324073171295226434694140911382021215876616045421701870987774909567670505832243136165028996933052051885975185025474229079986466028332768242217595303482472059256331922146906941369288579983720972547403868202130421188492082357361973664512175715201495855877165207631554343848402107368670886234010186737355565603796836054689728223615003232439779320302364704352430083201562754716083515446323223512132959217971301328219326675761454220613631254417805846379468933182349466324229382893315245691289405550948068588834113355163669979965012657173358067540038769101890509997253668403224070861921829506448076446039201449453615718791842949628589384967189057149604352009945203548464685240785555437556368679594067216281520644778374932839856741134386711653260597831560306269644699567675064726260983425164352739980792783471579594299194767778219737137139135900279900111883101946444167905492995934223476006434703601563007098190803038566820410167162945656406701298110788997065322248047672568748202176507636634691020269268578580816032293340353701200374664027217794013481993524239202168317913416336729053559811947529393206229510013636277588038484030535618381310752261473506071555546751962332243762567319196899108571560181031475857324360326922181444937441436096527900309283701966867519735876616261426084759712930386328495144888116265664692074772200858234371776402736949867087006898697560323144972821950614049572115133119945546965852797785416855086677353383953413472687663174776723024029390990972897417914072801917329106895655393805536529450591887889596870329141165234526338938934861492088186469448863099761142277611155640823535781491320778734018809380647299955778334618464691194145468229553715862179848761618150337753039188379290894855750831197087912766638015144128446848676493497652651266031269392470480268300594334435367739193689058571070595909841183375681061491553246897041969823155443771040121291868357058877382945891844002554970079893151943043882992839916631869772026374636781290493058260057672180166331561700243118370329313815612634968791786985216932180157919737941551491336450432141775549005555002489120745473955303207244321782652000156656044615550589344400016897273493035278189321842767825463957235530582306916698088116566865664949895992774679528155057394261518010765620867381703325436975438035260364985585547426660950637984030963135845774854379428586247246940721480512154825960558798361415393556959978114131891552435190034576643717426996846120071942959730005610299081801879199297203033022482313341880931631568122170445031291340936661423911388335762661426489792467062626373777185786356443256495169764190192807713106628881304366728134216496322940655326981308776752105638372105904542083027781006532792680572155044684091843918072964838790470491516230794908985600273181668754247054319640490783714118109132186205621329095784236050201171879410998034833472828114102808965917413260094159577407372470452925166428016922762171290209204928366307806647542983612808189680365439712160296326192709321271780396285749987761950073847783000683646347888715070801078902620868487723435935307119499272766526314540330339599130834417264948937628891910552805487111484747796926867782602665462009948301658635834798058983694336279209880193893732502616863645695854585299901828192810335683086317020431492520225085786253449811979847435434737258002591882000834406783702032364883811243639617071785462680778350638717570395817342443016337477322821315843704716946994423293475392783664045158073686468734298231549284154661500285454258557533661530007877765125809174300315189861524967623841797042602510930068062163272747212759128418199961350458919139313552640455588758262218736148285817649419996155976272351725027040677610541644352282878634906028116296821648275669860334088152025621875511258046223580579377065104353935791511383894742490963735418384570518537643335830942481445117352755271255420275939379277446158701285957161201658657027812769346240753214242677620984523268223237914956657070846783404479573733588189316423495631491365076077897432831283891122479823715325265201773514796070671536790500998217890809267700448710734914222908076526035228309061910727766687112444220067466833273858669688713861325326629422822466607704752644958619820595527856098881010705158921586413886076353327316019770892476443872407320997014524468087787922546501884797537450172254833798758811149192362295983301563177628401229266965506486972903866522118543855325772198168658353962823013725622401803494024141542725586351991892713565650232985710315220281605010335016979207519139011385602065736360338938187181511559792970476226088168668322481850050103351870658870533812780441766303141232499407943321208571029171193012778523833987806809188897799878891991307054555285557844579279171452286093403331809411909018710871626605370724385482623538380047170548671210772663943959635223731035705478370469540478490577064714766950083735401147380904902969980410343048078927149083646721154921386647770790208503787534788304777935783029638939494852546946470894271120622014420890632878170763181341940190791561263691511382734734231954870214388442704934880922730514726194583705390775430161302089968236674120906631400829786326943392077932208351960789676821858206301561076589209046885415721865277522522563757371835328822585513023383580063600940449998232956371051830234919783645540923995512681381562632660976717669851132941548351497874575949101121644539768627501968670060885825054637056032543680329046639292256574920624391796913778120877561354143975223050497498105928586965604897026179134879535166396913625370681999661914428277492805889713446595208043213878978125744924778597442345004484913699129686378165341436002852630399710403285706120701437259112503191391306247108323398740028056372082318677365628472884844954651952935516984092585501704490464881134161786348221941999424879426497361077241143991925843904465533549059417261194159298593939537494693121126127050635261154281383038793682277850016652693629824813374949790868977166370648390625110399931103575841681961028538057168112716102541577163538602363789872890715965745504438784542572100940016406544786700896222607152389565024201648177590143607165049756536263117806436304222920984419440107084013345425125802021181192650648377048050868827388527365012086671741493870794674091272208881935468214059428042644486493196789272945354622683146739933173754341361295607852020736596969878650917016328338070802071543699427199770692432625015427604701800222862375172100352939731758938377321232918971443910264850749602831122541989204939492373033034222093795353986108814415100362793216256331035695822834012752715973724388430700183733118360644910587259104154481147126637397882738781628865794974955303066802877777369768049292353031518652298124655133156219491150875845949632836927957050698935363690336603502932864447207785199661517772571741730806035313372590637532260092620664665743706927233462899108860595341426775326416595649621703687845433971639748796812639406310003786516398647959068367037628162035640299566250168392716260703774721475668150020844056945187009614173090445122971702121099540285842367869464201660347628053039282726633120120664836960532364327378693181589022060029337953794229075812773720659011327061402591168543220538940208812419026249719275404740236635217557376360195526458296359396293195720261304068350345471209424734108539699563585597721003197486428576484395265193275814645558970793686971700581051903315246876740372655677006866694062123224972997993633195513114333240226730881714942064995161698203535342967184189783017127733017370477632711817641077752653704206852618703256277423994625945104927546057784248092377994375290844908744918747647066228443839196400756430437194940896364729850137470868451155522608470455257177319724291167309536175879928452724510537594082062663579433769941556949920313957703646213504626094440891120413781223554402257723870035954988061531061013510108756177549743339592925285167481500356093282174646696235132278451743592620046047821920860252052948716804102667212454725355002498146627570848114367384132925614237705490445218330162752559485950882223014688763539725158663809391203438525460311718061027015079007779291156906313273335591434133982906056415687888542513585489437844442150333814752222904058417532309119646527643107218736183939418290482171589415154410047026055803042073327711552540314738640461253994584495618313645259758169579759948766090342308124595447808490630266233410427761106479311517932790604043633646804215822318198321175103009580918210313667093824831777498517539690867329737938535733640259219063720914932322108254228275223889983355313170036938576824884866628869713915685638518236345694946206300981841985927065024193924667072345833297219402595147965478297074420186516432132023148967002809897800825447858590641628270147427335169834486893684033406944146408802093162608618051408212554356705366767136747511682050140390993239145947610905914568517918146552739033539935465598921979248760931930790024051308436261220784480885039680403062616845511744775480217993124807262563637619871995134262341062717493100324488461590397137317825100351281396856136205373095037023771456666485504876668874769699870146604275222213040633467137372287780478612562827737878228838046283122533386443603250443276833944818215754365304137436440632322539147150890664526359696995445880258807875221035870139407840492738114726530959304694720331329315692758496282219452105319090791378673870364991687882354950176937056694731264061134776811333516067904778159419573156824635294186571612469123179624060379603371901649182096612249501497803181797875395133126909322640924295941593323222686064048140839018091131907714383354095750607310583792973503757845165380120963107101751673064368185074712548956371474288111370728380546414912145366537942886406545956124429033345098586902373347153499509534695826415070472055950946120911957044538746874527049866487351492547456413432474041550188599072755779545679667780955233735690724167369770228566165901069738795497400062117133549463690363437346811773233066934106990753322838727387387645670795310271233578383863487249142750176905992545922389774383517446582184168943757562751507959752438614826953210203728061615862584911839420065704486447005401179834291767031108935938814844806788694265603964976423963676935655469552781059168200677532310679923181509093037418315303710948555992886756530418299036324322456738263246731524588121135984321920896981377518793154205425310512181078922253807572537338590099457539263445399092164172239841766088892601579993583062857354113232762336226016513786824719450733143488308054164853395751177605206088960926564852596037021098991544534806891954423189625889127338628633043705098769192418846207699181087630992058895258763034628425235811831486266191927105404243920550989288997236961043229636424067822818551767194388899094226805349553414806353995281173011651491261725315948102008419114721582683987613967441934422540214816240569410686452089943960806016819341199256078214625930300643637486804113524588562230726382768165689218201436908929524043154990779780121113245851289450057549960196333748830044693324639748525264541982578927234159846173868906308393062219086912359063713160656430437788033616464916034346600823229302733607089959149671439843248549437593614706764602938371739517427185890276846722529738702297934584916376962501134499088524065124435108812853288668832468585013914381518419210306233305599250028267637971391907097309259473262685748716080527834922665243915008442911454726817608437766581874292319805995679450800824613089802852962036642493752860028940405381454051283191488116458031859380494243669451448591678526197095580435756168115933588872263204669967636477645877537403569740044088033456689708058350922351615961359604441158471178066726913374521591554727353672888087075943562949927200066347548203641584816365381586321851165050246934810584802600363402155327330288031357749383230240007477396531950478427839355366853496634487148713736419357316453773509262036934534681365969564463528607205414863764883619147342110652737454901216448531180599846930868395346434354334023106765077480895436864583933019549550971802220270063158941315569537172556350032132807966016636651095672937265207595068745479576619998212743041714862303434155954220058260738907327990454653541664340396442404749816964824817096042106018271181127523790233025611005110879692979370369934037669798497643708475773747440793705795214402334808508350613800734294338128696742961180861082047545106307902472604683311543943533847707283133077740689872912035058781372561063167151420505789003661971259388079929158075020213100647253777689181772875581559398574238441697754780180417141328460959391654454131047681628143214279954754748324381639158138881004331536107797947867854695678987269831376983129163658690418840353947861797468499737827957885607725601878718563769318491003237537414547447131842424544761572529547448394722188177832696854186251524423258856288992135630296413095066043729146631504331490755500218882626296816689539862220552360218898750909567000574863184533792483494049269958241262349225245298081115610985271198330312671715458279183929294441187154888683072685146994175594459261518420402870196391153571346928351620036381332249239830327774698924476708756756640011771216329669426719210279903561668444454361160517352513584296968073671845210755912777773482477894150915550567966661024801600293796750223946907814961534731728178714555990359492806120396412286039262498869231598068110482392414828538944348371022728467898213382681599588906628649588820472169816404196387143326484835616085817338545673986600436615975981192326160287391368024458550598165577595771926988247868121991027669495214288085901858331755699802236178979593358853662510625521288263398119874909178226264916397991007611652982443913782211485068125668332296882209591152433019255086296029693306414335071115004176305683944930674529361018232057728499335565193966730774919524314563056565945516778335762958269687098485794607055733332573043418976235625650464963305625376731660027395020460793349244033572153079854296319842025964575309648627767252633776872216016508784473617146234757357517837712631321506006755987915676390836728929869232761525192983446875417973777409873906264921148491031710853628826834984774762007814266044487523037250847973378711452043796508258150668115284826562033230589323275145224523942188857736684542273785873525753751738646988695256503100994494128825754085454149971758037995751220489461863728325171675657199020009629071083346498535697109725388705297461660197093762440462791166960030612180954209694743489664097056443795160318366343580790596290424638145204227997376477172328702676176209645702969542835625976198104559135001793037060995713241137276721479886823382552315658245289716623503400262650899510075608338214076352240774636451325115305756606610843545150511023221135734903249424339215777946973903646713911123076859529015317128463579332383016788683009627258361618677567841432303932095875462477461652324417744201495770174991835636616088044604606380574800053201130028714622433509769950919865207506885337674370028441520114116132986323470123572918602195684138559112112749425988585469745639013426133453326995513126906485058509248459786895664709975319922081542242198231538173520735328222575208498746372941435062971531575121539595961143829654076348850994932385930044964482318576671914338229921006796534508105190793162220296693313969579804044954738972857231399374439220579734753700830510371686676817489602869452405755249050596083553993799292073311933384724858099673398617778408142751446110099363043231300447866865368625648119573624496693126558243101051497218680925119402523547299116739733184213567584269473722017630513597925583797779430115520764067320041766639621586710235446300843024898973730532564414165255707493100155689108982501585464946153942123936245217558077432337777184176151277065010156329584471577934210378618585024108943170591572040107904152012454983180500525621626493299464925940655707399168003435768176740119663925489526706953891335399801003029712497779456435502798981287479959620139821084787722435462841215024283654529986467349532765364359864932875956179093595311381413625927933368721976909347603179198063413136186852945087668097818110949008806392949057856067350944887674660708074546118880585760771685957765277551004268549135834132538613087917338154176085773172817236176381072276914222847489500200970128795676056853987735671217886054041078851312887447072647357502732736142032182024849140588349349294916829655119983505510101973320633987464406131818271785683377798437230542780421073414635024275583252643181848136894370823791665987127376627814595190934192044060010732493047969619483136555154093940854309926569218616586220225986949510010597762596575022459427360102563353886500846174317190687864987406634747009407691499727172716945321332475308516220965605905106130167813889537374004545682459157499026886776217312921252597466652349107013752187583144483600344974992139509814868622408697713951624875852955952138508248909516015665044759323112035383346794489205075230780313223052197317605687859779605874520629874325611947649976831852781408243433392767447983012038908373597507915416155343855726518750668137882029098073537209375357259116206340279414564006521397690751136075858928895910941449966041055426327279081809303839935858903568809936293211730264404010438074288605955460206670824961628270711470249569764203555883959165766160529387196693158260946527064227216285564154882491590569078707602940829475246436930795180212818103020245122698736060146305905248061580089137136605371756947283004685593721934202479348077425291136903813749960022297282843557925803307717949883900487569288087860668568359725831351652207975711551934120313435400512976459660958818439385964625435157196275920904095378228718301087031692354685983090868797809162553443056658821696457704654353732901497718234715935348937574396473035280099182664226272597932851036578547681989140989806982289224053671012287476996260670600152186562061737619614001002600066768196830880153709607365367597526848863001828324222185422845267882845240126801249108599679026832307917948246473987524168362517694313161511439885142763927758882132261049459445006719308164339751192671684252256084107127079561430842981690290835753265317720283065177950170948788298143182056378515568197618477851902334661795150330670411815599494335521149708401460609239418135226170139860687952980473688207084221600186294058551269633450015538507509822073629646469931910352944634438831758110479683914395414950890455195226596665057349003067365828676311237676407176899116662395598969443851184841027880166201387355904177275060668040077700392839982712920889080885962458166997726632691293656966262427766678173830006186293742865706219780926053709760752603651906098047699039163523825901808079372970568994114506294690058580837382244928616154901772737288787877022972582737312616345293850602534247244806843935804622534960059395452341960663558435504501649643733195349088417474798984958837807860783272758996160305951479859619588759461613906529901184941169350490989163073206975680409079886013827562179111021749445069335353579369425506740280140659034096852622863984140430066091094283997866122013359445150573872728726243305249283464217952682503076495572698092320661396044130311820050890492408403382875345924813711514058824944040566975629989873969646769689973545268809609125454196445789581805168600699336419677353415782268997840006264006809823573225965251609633545700068413887802130858295339923400200211932797444970983535733525231560016576524334745885822923825216187359574127663304874255113708495635070546424301759062096323993196947092811972054347145456755397927945091122307620764377128285210646368521970201975302016782200423949046179387124988221386899331042896268698986434834038297513607853822516057711649189168680267223560982851266628152103307383992046377824038916049012385013606311585559072014062563750543440616157833135039348511714659149123522304246438201736364503073927420789651827534092033326727656258048928715987233276110579027472801553408542600056095767361165818520182873661501670652274511079113648621192643641356779206938283997295595681157638575902898596322961297321505601032165514369806458493554155970724583755768563133976836999542727832493714680138399538197909897646627223971774655126000277877811224307347519519485033964015486348088094249520495894004616504684908927828550684409412695793156254923211525712872407567823356805928243126869832747934866007847990180562553981606650750514116701415612945121233102895812670108611141160934284618957310570933625334308282882650338901406034536589964530382553159830405196918261480410041608644686585596733600295261360178522008871720599219448242276188354858391909939708846547323610288069518125261524607668923202317237818728184539611711907158085258642249696770410057512519486112659535456673452665569652524269332028342731169293794025406093821980696020019248852585323475077350984246648910106780373011472760368878189014661063492863263984989514535621973342303407872274750963207318062701108288254519533111365572022603860277236244162353448796853044507367445374077708686350775395906508172016950763950651629887671062082300072396309227065020102203671045682228494858692453140813016480872507713887369767770801732614074212894758666274621135167517580052099114250042840234375091704516289782804771436449486957587802803464314095701000078028150914729439373780966888004401899046649292441291377839593664510368622132519054583263233746316475045910197613176094073996549577701752247863558791392188912854163069492231137487591492143383525529901917778293683355723570464401110335227786897867898040780006994326245548358766122509892947091815548308164404488584804502858702653574542808580160275834671119538293037548599994764109333462476921055028215916682456009782509839158817840201121647127353173861350985536217015071179384969406431971333493875950309828927922922451743563855030578749089246784240327474048270190993047146190881795793881533433003830124879082208125504058372474179818978121623826957163690820782036745866287188437651795610473258808426601902783092052968100290909459394634983701802688602250704808709085532114753682838655994267833068831955869705746317359920536122685032499192404050444378812993677964224606517391871871120326519330194440029032687317353278443349506336335942674052577463963290013617415499355249689660013356030652606748522230409488520118470659746237608546111615430591296464150474120224959322546805418064974482126071558172923008437952048422142752630725581211415372496360364834457725636166537973983365599089196228354843461972153632588531983036756291806895650410010311129717555305382758095225912727929175405893300299435340714764056717426232488673466776695181792593677880225081007158444399599420151069555287751951665320334921485166031823437067022936675651564947297875406967809450164556220989383431868841878049678818486134313249677174165668794459000732932896519424692236952455049083587398749455237080470419923737922976820442644268039680130845317604491799775612231750841579611829559834866392197619092666269168733217767407557719695666658010934655071201047517423838393309822371806483314524317674114784671513060246323182682376835114068581483686411414319108350842505228571954669911647559487655408525010947070091709602323067516320926057388887934501163799844536952198593109835873664346687770869943313972895926417285648293740367523669221584855303659293038897058819334481882587327475951725131890467572201888922285228046180167289188790053961675286769742598761553536131456655323515050477638909530317393594055848264715938708727925544165411343544548751900995469898380953280645144386145431927104661068746041677602841568888739906272631987128198353868495603643673811218993722959101560836458319682824946665521623265556097141473962811482342775338671733479070095730925503167824742467842591808535631026858957900736081076966764845185033876168407975802478729639224324572544019493161020834176035139717344953303431020620889449980660591006828714084020958936046993732350547641157623827847557325999689074235833521319107695939359102399881768172198860651763679253323764906147785494748487989107770525766387540953523140137031125671367919221149640451506771296789725108372251108883128546859619556764605830988847024733908398907434053311362220443628391547269507068855482429123895812287758712963105413979690236598521330615057525186046977340062428365746544860326450827144349876907398828067363816748138046150763797314471914538629347030861275475590992622735192635620884237968277245913089503049703334591028918597562523858278612846372248886449901547797096249145238526881911579889243033706153534824733117504938216038710733562910004151857978946640898027764848368484160284348809056910401651466933079510397373681089801955442412095350548500520888672979525313026764739920470082212203330138656852633974836514294233519359334054707127689372815062188486375945461304690124544216883017942922774252685311739372362511843349000425562350975221783563571657925411326019164275120499177756751875343709811847352465057918283261160524929862592145298195974267183209901163224659996887505124248980535298695228168764635204157313463035558287186293572416064384404026141981413623844342237808696710922419561379868364230077595185901536763760292918564712268846418961471120263171710969745738159823318422185630193130445610185733749524735109820431133462823545748282020902893404719924229376278699050373429701090965169673381546166375058136049781711595597769972727537119049203009379006148278015249998408078960069900754909789139819466434631581029553367998620202771178105572354678223612811388306156592791482757572838523209233545885614139604505100720155817824081996324864004674391189453196538928156220163738873397968833652789352664135399047019440475300971595929950780185526799876889437598555677958816326813524168284124665685284963981192611290520677547988267943282220088313606458457348560101327210206452509883552703285238361768374281031930833546398715696206745060667507429285570429430006349002698093275750628677580113771888369043623281054144823895396420169925648237743612503533346235770625696061609268539539006065219383474163859431020093257850978549779480531701480106930460581215685278705945790293980886775261770542562902688187525471242067155012571757347609975490342277528635843018739902631562663429902676326312871386256738939817441083202838206541314359529971395558661997688162481252371149642274571416815830133340712649930873892784405201151267882467824267217172523055943057028333943639236282747984969669171631635518016056145936548623815939979312634963499275724498631228654047167257284802846514943503766744392869892271688828480251219017343360485948600395649203341526723929677761685149693314431574698206621328748251076943306719624509043811579767145767409100773993316897982457612856364767392024859858680209367548816482638897341350592940504020348232138683180136043316575778027046328425497740796732150117734245035280363587857488847646078507470322639320663260175558735480866914643756904460334521266987627972575003426579406645247460785127560213661419203291311506131419833297586888678943838475430904172466709488930178159978968721884891182123384311434682556506819296926802797986357145364063626837376467195034361191271280794207052666698578008583547093246073496969904929513890600902207187359465645163681215978075231234165395550500269793091346152649167209103145777841911958897510177308351829618546342192294757500798660042691474759006539500241269433798071414155525755684345899767903548204131930078606537061638510063314805001708825471162319117928986490483760199631795185644865359035663427758921150293553303434834228258168476424202796774060670843186584064653721149070319526615372159366161081674002276191243055763309349593615221885287849364643323420274281083450433028929413225754319220292415505364047249990537069707958681950967021461703061205620675023519331638277440316859848329504065799637704720375391995989609854680807874572679060641147939481772082242017765252644976508238262409813458073351006481598015043061344764707506088658232654620935931187760147744602491829262154914264272237626728257427073917091157307877083508527410546910518523048388052981506655654425522107528458245184921451403627480179121979505955208318743263850943983270618993503512853987257751559722849664804175480398345340556879558314691494462040599726388166724059701955173721352184712971327935035629377682354639262243414064689397060047842355614111976105496471898174177426187650091558851129487652853160714803220342048494010336621170552748566667362247981261070233373748485591610523826287843259232547060368994292450111159012341110109640243878914582289543132520400955719893456604252505575311828197183400819441311500662199206928520580183917524278141958239112623958112612649123658985276366910147196354895523903941338810631010158054588396340788074858088680979117182533902883542508646374718799792547492472455042411860631163850566504431580507241526407846885818310522236229563022074106628793458583723709082420001473706517676175509794932344842975427850110541557230450427981738311744781552621447767334976201242675822926323164487085870498119879920042464303463681186309691007950133120729202411004748745436486967562643461053930126525357443024074119845763775692221419984998267567214193385347986395222472949393046657115456859353991473765673547097314724584948994232185531386934558244995085223910190186804074662445797809357140603481098247851238144688547505235711161208277244299747436885703019183397716009285656192247648865116949333189136951870782112563955653885643793623477699693433375125344326018180147870493220209607590504277272053820096791109044854358646842094977256349740467367969306830490008983660328380947527417784967527531115479067689702483569040896879130449520284915602547073811408209114214231562951753394754626964542400977173383094269462273490962585307877712501515847435535646810328715545713427709325707814284854969785454712510970902995062823008435211429885564241221097152818875030022577962996082991103321853832862679940228016445040603141526987088143343898335981227924129075121726701947460003819077367040801151048995773388888259310589626633050032829557360436734099627333554956419972667673245196057905752525909225754428046917750316772388519578191869700812223593204260499007841427912933615109515404619240550464743634131050788643560006425928106806543609176007273835963371992286886554345300098433405466559549877239259003316889834973603626355398391140128081873422960854655083036723995383619305437690541062106623472528279815448793598498808346618201184685674175923648579112472550320201370468054541145285479971174831849465300294646930739975934742180373507237194557382958150561939660839201841573849242149944270273661435721502109453074477104408309787133526517946974455583480920683841905705352088311146104378295988756791873861222071258420620386066568740813277179021512448943156474598925930338596512680996836931198793910535620197244373250078558281343333079822151880873523224909520379861736836111520383321216177256611254647788123191713380341693458120281395449931718933398918396532819201589833795096538925052582049427476315148366720583384518825383443811945755777332608539755464885692508452682473167556387569325704389982045353154922021677878252417202196825523906769472651013930123193775766534385645524355989587072203472412996385940812193886644430744182407238921148904620234691651460731312478954934390080905731251801033360028113428412921600023075577019999949052995210091049407550468999662064459621128189250591239568760396511262259576564786565772208029858295721353757125369833349156687767491922205072527384943636847066331908212399590934626510694210273041109355236098752408345884859455369653801339303969086614950839928014657465351112677285710582741778733261151436654214480072116864148870288549467271456523843696682750097176434123951781133863978862885331125937268495082514883203907386796464301557278394003915849659897583106761547739454799092722811316678868776721191268125526048067201316527304688035267605641730636793162305831903152120575112563108128283955943535407640498470100988546143087951179909919978486220767814514414730480979742185866717846416862610404352062319680667872485378260142959174556958020004053904237429889400298064667068317421971118492233536166605938282112244980939710871743204707335800727573711236427145143447286639891894953069673331452140522152374012154747305950643508974763736161610896852598174299778144916885456226399975516046849161451136758218822969854292826176426304144184921350443275705750809795729723986176103322060563007621699414922362789784737176092316861279759114750939069067569723572629426626280312580128537000558943191565916699276589084505892614977720790143311360153016512876385894138966802147740625209902897000423410688912935741379299851397773239233582131028311434161470027136499613888414267480021656472747026955910463475954760395604729422841719898933653287908062898434041460200685226230448039732463545967147489461774236482813542068115500879596723020402412475718214794508633280652077931065087680731356905073446673399762841740578970821291479286930534216937062669947961044186344943389050176021846205410106744454821716230618330865391631362174863770735437409384195877128125281365766647458489502828419228862155880779112648079075633906183952042014184916885185197985979454031329583169195576803762810157356708783381554133914139424794016997286285130876934263313468977837947753463535149475262922835261001434511878232818465025194121831755690529973239484048474340893479560624045789597980442401305967254593646101971551795931695983286462711749886922971613516077129502317911873953752362430927686278362782576973445114473082682274970699020752581422313592196036583335071554407027797414936132906276714774490614668353166557093028678204950091604860605172082151897317040911774275867543218898216028988660844374199761933527734789992284775142794233473763794474077616419686292508862737592587108922013760356901872314943536122824590975847486052020737507540935370980595140641501731817517693893787636744168276424632585119386859935477398188349775285583415562214206870808732127152507195870360503175333175569129876465366952737657322335448543973718063350316911203644632681268053159498888376227841502281771082427693728102502506454993554754512098278823607731704650364494425751289052577213046981945568699799940741785266778616444406241902301850969906941913484468285288820441034662772795993015658873279514543378039647948805764315007843700224982471853416905830248955278309989490642279031022545173393313273155253431664689037557518885491253508042892123419907758143649057901221510543129105900060129175859872680817154723697236634232891230466442796942598438732160947820777384341765841691862795598873460488075413048754596479246250758703578180701069429832677383930312952670863933354547597183107458331526259344204481807500213273647198430159560569915924692320099020629146200516443656799148694572507244849578479955662731767951918755056209638572833313302744289537824282784734834820969461315295414321374591769527215023066021954411702056526403190630557435203863909712602675436898844908449293842794944053707689324268343593078800884980168807292556076768291460390756989978562195419334399086584449343672870108031561915735863963784102704407723107567855301118435252782762379470860031417830358055073993366401141719765033535036872124216766766888605182383510941438061019250235072985173268270083367821521730504050895067587098525486218922932427387464653371687722964818357428201029481212239216541492120170498926858816213417782582530953740700483037014552976109305489159739008235915336528521971864846904840632457771486162808803669460169005919273339367745704002676564084596309625854461311576441738853874668353580944158807608634362012470425593658185847944765368454798491539507044739798691948087118817756314530591522110074377753688033668354353542619668238542268893430245967777602277397121012298636388023392139176634921893254919744013462198128346988449639379546004546470464094182037288093415489094739498138501306447547616554521403281773510869609647375996680952106667366961694685285745402164504152936654355401825503082412131000653862808357959823513818076453491330144890728587832311614734013535853091591739787847296947209575703649277118253668324988996719356763924789484387887773219172612453752597082553937400232014981601089221422866809197543719044129015894618687022050458680125817301402488271507333295291205191938518362851462600574910368021570709423108759574326623970508151340335161114440111307329492392290466953809651494115480444783546309363981384519657720496887144919458599936574383843472957355506413540492259551174116719518641340606188763204748716321179067032929146713044774320923896023231198480984638782950443294144022401758627815221830109975820839412158455886939606410325897508293659675617605367668674255724638648968012575945374811589324049837664393486817952138684374819172887023467000961448727024472708343889187264468817286708949792866775858025558918953598319991760486049747333220860687843084010427949233693611859479450822218872575628199903822354698026590792531356508101661556305848027429630621109088066712339848834256696506555174304075735557133804999409811331607498609465929783881813248792817962700592314283260050276339481535788926137911606491450490242804714881020650521742436855305180668859016382191086654908505847949930061574367699852452533956468229206340678836862901835119271041721648898335335645149146353032828560178587914119865570753420623088947709854680963517093009872435277401523451070665448380145007877047652553128841852224217373535572129824320616407785139345971483254956288080377835904414119681739090187105432381664756628489864051414769687247835904150181599369204729369468736710175956309459877648931547357947442870319535856356576083267987386414989449948068288110213632020244126789718040426924265271993607180319387286619052976305012338385171568329840102943641556395083358284484765779679258263266659991628010326416077144402410477404025216609504190029120958994624910657033397407012352318068088204752687658248162271739337517056019363694498347520546838853507542516056561271169444527159217459547838640062493217173394948823227726508410104900675203398216361637520798329718083642014221766203460984240488766217470738193124253327108032460206346699404208478739682580692952992244091604937071172442532943066042710833035669246067000162641742887804896463853470091616552223833979388710186471010766525030948303470779574739647213602254228513983465985107763162656454404107489371124948511791055509341997466255941148140289597838648948153806874832282888362196106115129767894037990955300207399364240133441290581183660557732978500828090762795113523513515159188798040320238955357308812214750398616412222060275385667215258018664107251442885627182620694266975903026298508218221313463800930346012906088505736615564012820765720261503022049488774536728358742302908888963139189784383096347170249196879400903543061472888601394079477693225940558486245700228882775047018845725497135059724010890111079217751165116002674956086739657648050607122502990562812572140157622169096604799879894938035494272598901812450885689958956996401008778485646695973593446277361857174236579350373177766196661630845237921796065202658762817315465864654411858453531731341772045605712711061890596310613950792645880898377431331089023725701318851061692064264322766829238888330653667568944384235341501530917934540183193010216115545123041654103037960854899078639767661757198651290537630940449597723170356246585999275294039570172788865081577349794374104260407952538362474418444436022667601305658752870833948446872260094190386768640751448285627451202658367339519852985051597786237866604770174410480647269592488912528292794459913691070803040615732022309256223353629983090731544369359988691709737765200156733759902283830562999768778473830059168175841952281085873033485778650285644782179567100265989698123702953097811464023338070703399686607100844665129232399418885915671823701437583243005292740829662152196560794124228723379138755859026233562537666689994944158655716790429163704994118226407373494609575099922123524658823137213350044112689346737613160625702232234423998954801899517569587718128813093874881041456740621006461128295068861956328076830444382520167007374531745516946185250862066452120353110491422457685215083144308820998116046333909004235230531819074724571226731209684398042824883297664800119631353950882648340232219231382722344926881699560152963911372665471461752102940483705906847824362262089134420202437436163699305883492569633411937006884198463086204194299229374450301583165238374348760331377209210617315103261541867361133117468968914584151376378868001934573322900466862889439347761184038343334228209945193330565690945979808329680721572555407590532740622098874801329029119438782629350523896971499949884218500432722472617635514395387814963167843964021188919321263236365983584145705991489790458216889816398642213665533400201402699552711773997489975846738608004869773806799524369882590855615147291690200679045067783220506803223712972165696071209996968140565065030945206404162422699591039043782792756624644512458891443558461324088882627824098267467094003256709192001384380963406743825298528275673957426551005980958938265820141578649197382252783544803154771536962650829444142268800206111749034039534265792349954001292725859378463849683746499085240360107811256925037041638423373783448126784758133168579277873080973839090496574838783659952471071488788883941106682778845305537357642835646303911795513660415311161575386482505616276459375649361386225240615618917210230564348901043674487337834107953576189024588928927610314426944234512829866657674952035807922930010686936101444609507849048842282717413605037139644368257166232196159374417870625613198429782232625206771035925204675322164287420155138182487273649519336509166741935879714265919954885058353242613023440436621541913011173096994393096455158019999430846533799567460909728778797010167829095128487379895200408135972010131675437975729125576610680618432264021706972714815231982867778768856532580849153707157690642403760861536947476846722908429652359594820669537129964926543624307183420959429798796769159186950273213253558458904225370988020384705522958784608359392965524510548349776690115782664169562239015457494565920529438906877395031938650372009833765640801249884086804577400884001361220917585820641150649882154596686238380699965682898278062377920892874841660350233615657213634021200245909221943633558478054351371627708353871567572164033383848722777679960327625154822892454772800077796669882829321222116963277211569647645101932307756501849235003216684403984582735386616943936441798773008186003214394362397852720527312971615356132493959234921274745941995019133972984560581556760216423787145724961549539782239723490991213896546660131914786864146465219705467685842952472543308522784817314256491881510842107891354850517574487057984702845620672117645551707244026505274839117622029316630858880140662580527719052972157701610516562083987267286134822548206601601146677998367041651138518989648642044626798653658737598585950856379934505805771148782806132812799588375779805878403110508318217288614494799474220325682781451071958118640539114887326491588285721583866365491395026046957914730712540456953377635577376921899599029829339165937159527107763743082034262050789379221705986107638761992404852830170902070827652126735429959354696230199685299473558364189119273851340651583264864454203926317128423974630376841802217584060843795656935371167801541561704635900942027444564235872305042324417242354278020995274007851234316688748948936426003805184247940266683393735620658366507248397686069558657325590704043312608114432815304905039490442292733945491011303286517205802373158377226932670630733019447693191325572973996219133304468447040688635165916512270617852357286375671464768409572995954133901883488892946661390530450766089939643046066171522472981569528065372930156534183774576567678116035039544530914034355179669742384197025942121357281498981789510242270588794614412140762564523343136305346330958134791992723018291880090910963259594721887776776981882204888243848814336119872557634120952754356609802506799349191491730262092816961284995711462708498075643260745809918124533958561168651575032688744956541027081931564274628173828171347385841127847815318727975612313183365947711700789577255569870778391399986097170271227921692801330079622784257957949698540920974163112910749380462190375565583237989528319841833077203397861933138109787687621242462619076145706463475215033231992128167000218461155414569708741824339521110592404634206633402242068117585260459376175839373262592015183657736931781293752422972495362815982670900613419771257742543700258711259699750912462015499362131164212371127398896988850833841572562402005869054078119894424917452410968526394812510955389789201137560630864898080582597937715891878206703258655752808711176491583078662733923505744564840573246407363818421342382407102629549849074644570823520114015657533059058999685490073860840579091799608665716341765966914306249085448121783882133401096821615193909375687989188016079920800836935911121189858331586088550211773340923772936721479184711834127123640702465182301717908790183980546607745565963894265269789471341749607117499910431258247122870244189959749580742500352666480319234764120742228674503280916489770690516095851534098082078199308488700145944950042761907419070017069251853692196100069806787838819258299085187965358234440023585884450151619662602929597388165601990016855414141598785890103252106983033143855596650125984573841645750710374290260086246698701650876142222578107822643105743317778508208486485565144073593785200611359560109618837398108151522496663437657002914546990988296683568906943436068223622205460021865386778708322253196482019640730473734018759953429060528843326243106843452402012257939664831386671100290803249980808884841444249604463826072282557546917993029223904695538438162618459307840894193990943603730508631354444972137908122239000532431045858900608750571652453184420050037498904152936535239077989809090472732130008137935593852551204615171057553093191877597131383917530324766654422991920288520411166130318978459251055465236614694833275023460682411606111904047474690636849550077577404616518810062159469578472784482658996823623112747673009050589600781318032555246181320745449308199694691598199558341491808492326590998267994136138937752324400624740440260599652762170024649405299460212049843548261249012103990994942021140349723865791405869290432791495066232145775968394578356219411443864056193134524361525834151483774181847138834236156631232143495171719695522826536359164172918405292630590850283960570497858412155177571281110555200888745698203297527647082432117198474854686792677553586172058497127345770986156442247497615355404597770712122803791630258429193008405468196441081930405682656807895747885968081911833990280651199975588788689895274865382128226657213113609448604594008799661975269875277906943930001918939283926322447217501531863282752183097509035561766594482257116540920939635919803694187669775272897563536879591071453215610237835844659050997233701045980551289344589998225756328214728968063245686794724368373517707003152599568406184166508569437108707245120758047773199455734854964988347085144067408324707223693374861037781391217868589848225014764625781747343447362388205005028878218641262769335294547813126899100273428626633232675808542086649124710311450814272926696131516335580029265198558533240858299248658929234071196564860874349470114253222968297503419905852845003932492511256319803249824115147944728590757764876680562093830677502441452315081850749065256741355813569234041866232715038552685785006168882189009409938740439088301158934622886889060188228934059137951663458719164360503541849532368684644132879001358122370675255242718850961647527252975636242720375248027496614929567011710445700987376746220336310039897644984583407246190079319813835288853274059522076162271235322275926714033616572900016568547892089654269642802735242859026295511335544906920073696243508420791255727049891575751456137893057980659090943977017994298752672975804294857893535213585878912507571592409668569510099001682724562350267705713839434179677422727357334508845801385990279452824281199496825326081867076539383435332727607529697536537878799189183604395588054397874505662808996089842208346916200801717329949760742161823287455643997526359476899759097038001595191468155772743586382222228036718360248264087299176484929576372270562362661768363143033963305910994773957905880321254950030261844190899215385902540825523022923574853204073366283660336375444876144555129137468059427506508266524204377348720103733210495829948243026074140947077912431280165400798215339278742686905367934092669152624526311590216885960017849054428434123815529771912452534861429741887759813179662772927677001504270906777264610618346079563382802717183764990599293557795979113510145583259539408345385833797790652606177313774039164882513073550174811429347453028486926961105529960506935020349302977550133222717586514363353476161865330772275021077266175769906865250962743231150833583950554142276068834159001324601267511358691674285903901004275822062361127767417909152005955495321715926010980002681968906201656627969678263624709325243224005311960852641281079457759812472311735572725101446796571746215944925042580469993972454274582147209992192995616341130423969138727849539513947500411415456896398448887970545311967865285140916745010853539715433856422322371992172993405930724695040340140054245058969120791775517480477769716866188400771448503206143871318969925592143501823921088901263671236052195811255497188069522000331454161179276559451745975739658564849568632653241196022627391965249405232420687175626276447209035015117339943099977195855628201012630158310196607122487602579467767057760735145459549159728553794932093527072518340872264061857323500922131846695575392163881462886909316206459038727535779824903235159447347059230459256615477993105738228774268654497311835403864016256139385724975042212701613378004644477271527826394714776797638636188304022991369219555264753477386352498702741512318094349908226468042019448779484662025242602896232549573394731118574660435019090101674175423085757351606281216947535547216474238432869892311852274225916092837849191486180682951421882685554350134368426765439339243769247460605335162168730656921413790225343254036326806753183902074268358194520074701763442179677991826343411782618505516775316790410376574028561246924689175282786648930369670811840539824435730883605810573252775895133724141222302684147782330331934870908449023832074406130106326147283914461190584336762839380256074466552130949038575839233922933545383509104056922148105542579497591342119625377818256530602386627807570633811624752956226831308686685532405235304487888338892586152322689531457239408358422418469871844366523186688518243680890086425211577313915897431262535990298115693279630924235537270028109173781064748813147091992844573120436682146046851891747109644977237217678991174312261339765470202909665988518077796253731643044244355127502430976419457780363906752700708018068320947337168800591715763775953172506342113831131257500247054207193018226250315506002654084828049480430457162133914010525959767789090502745029571044840539463624355625092252579383442821158436778600509113698190734923126879376526323579125339299418265905375451356364697144231995717346857707796754608701418010041588949809116690629744080741420804708189046293378962999477208687605514605388360459301645375057977006543203165566750802025610098191542074467577583145270715732176628402798645632340115181371099849350891031790919503422969624474797136842927541849001847293544263376702782191327041537048589711288559824394116429837058352297617016958128986064493872565585768135990707300799928771421011531587488078112013068421775303551659515058737460220360035575871015332443499243682360505682802065307859773629066768789960573130468682445563176074269601355657787364744757514831057216382459811760155932142067493958626395994414872743155007134790503954855357799006777674769536552527252895611574695592101530780903087432493723863133181401211393003138232908431045262901043763648771009599857061977963368778885220345991421424107421098904495471642118358392812574633697055348112954882351938239739237923369468961447118964003464273590232622516257799391466058824968754394383344810911842143285329116232976176857969419931478526638211174251474945038639356487784396292601941693565170484472634994180723743847845470166233401797529511779087664657419400999474550959818233333718911544725016690273337394801915025623264082650516795204375712067219518516185308957235645334955539630894967491348069783865662876865380700231454901447172789912635715128846522011105494301004048879645067456469620649732312067069266658914198075531347574030365602862230221915484151645533298217031298934163293430226255446852410673123893210708120847673868890234464029567430933643384420317081159482509640656980328515791221341998823649559261468150734685926593276808014374526685668983779693753506531964403245940188711153815416806691278395543548091854264616620549144050676847644901702639202863955053309748885967543045226661085060351255788690800790012263595384807540248249310725623959677964731761050761707559439822914026686081556953719774256207001353704651570042463018406715437180282282910100051959215096884004236998770021043744980631456617906951316833236528040454434413792292555290790121433300708540922639031919615046839614508555306372357091435135986229705382791341459916318181134127938379238831124752874492423437340236615353323798725750063895164417307527154561813178196452887230289073134333023431298257277824564990078232744029828849879496773338805607136587021736314045284284037038728787561137181091161971103173487057686934565395407925466109796321634531376734358953217661448973442570866397566250873787864143596103232513874020352202886569986780469301492705943212375231337220334181958848901063393039372000846241348661770038624722333911598444276374601188905715773809990687033393888610488671444057991529284779132315460455339303910662647754444180762340448846290475145920206309630645577605705648892192164007412831245424504184735979955808728739299426135510462170405621418143125435204311570527473617261733118822025851420584260595656065170386729296817925360795899752296582265832404751942222676937500008506898751827790774534767313833822724392167928007919800160153484149206702988862998608474016022889802787053900458228352576661522405696856253361749424569710165587463095966138629026272440225969714986780361777171484768058104265948924246880021640632953537074378239218226857363955314125076875649392992621832857063917607763542137863042803157818661760885913816354339322681425956766826473782086165418742759285870004593575231904445216274701148802047876303656394674974116397772865548752491682089344490405622902429595297929210824876653956111828710091915984575427628466424217723136126004291196859194853470619378238563369658069168399858355634002239107669257660447709355754988803234222549351521369419383789834234629268959594563982559773534573724753667182555516937089076280990223941987393788111116486453205358223822311121853928076139447620671591391252481855284282079659956152476444317088889447278332913543255305351881639306453668226168478052595476915268733483517968857838125433507716365179728066361153302709597555986820102226162167440018889775538401887910418940139697252023854130512056885264047491965979281515183280961982306093440634229071382094067868249696458814536939375634653270845491698720430140125989543461424866573233586853214444727695517958432108435236663232229833005032191195243744091198660410317039204003087054121718451265313970039764984064888867902219002767734682119658857189233441383655276211991782038427202504332047808098047445100067897375224490511241080816611955150272496082457105050081671022406683221133013250900242489356990205976806353385661602172512921407298246515875892439043870779514898454718730390051806275738523636320041054161842092455300864753157058657950731295239164769576309043161508833648099141197146958534259227029109422735383413962105558551492142686662625335958877882418548216346967797243328358268368959283840574371538662724592784590775661586403588902296007750770759749346147199735079836291609363744768721836623753642502377018784615002910515928919206155956404874739231211212188245120740991417220997541344563350741425331777743240471500093675083574218894394173289658619984264788989803340939280544517644355177880341606868712896480873095807618894400481726858147985043877733808926849894295973133484524188072158252981545697581021489072884024233308562826080481710507181969004632963318568089816199394297432163184471346413360558993584175388985609117044462535518006160893604009217914909423709345462283411978897223050645643227983149142753475364593298916983565058553630309225484909123743668654377297262248502995406118157913424065531093316457938624482876308735935918621980382063315228381077206787370113706834621019173358893444369855952258882010197668844303870075117456519056100924440082711507469484253449625610810812525975061365684001464038770342429785532242132133461365124698024238374908769965216282482583154904654851729221850662223968907176498458233971671152306455614040084611814356476613485582764866934228560144196022193927865121765267525371660756827645019155857352617136625869799980685681999089314696692633802246437931101475000327184980806420221485704988580468674475101044901906909879155505092785225391176220364318203533354314494722440730909953520191727103187492537036653721906196159655330278384828052256006827489638940395607909981159653501360022085877160437318339844679622788441139756874174369837376261337569117636696929580214573632766465667810055687827031474984310755978311045734361249506391585623648916376619126364544810999849889536395466799562862634280124510543898697238480809425118036152564830341839242746180763721807695349509486431643618788672133752301137234903391249661755248895850689326854126919149869529917920814855175912594492559533328209967496246526669302086820938752332284358167828288353889578928838022083864369181000523010833479835226461343894603615500363736229606719283292594418820635820720578870500108820392584963962695794333040267630248898365497303233896550337742597340646121963314429542467454307504626167801106628141809520660420250432804941014692719641349442119566616577173122423664092371690756817218402143311154786267474684417770146624172397399885350245284437705837850600850237817895906152300721319155669031957201210327022441403135385979338365902472422673798441286056987690710882046606189689235425419421501762024652224255329952649251896529288616897217711628000125221553694483412941493663392839135723757444302322593566995896166233628310589690353518686308343661249377387201102055473074173979004550595254788036954055059328069915941611573575947199347944728135290048071042609564859191814911523233115259333005908531021100395912994288305639436186731565322902794429150800441910688024005269532789280823530223113093800419424232729931684565866387842553784342347493863112731017495640604575041475551244818503929835963623129042458534167081793814024583662977879899048025894034475142146342458584823755702147660003826815912806771439333961584620004012810638069468788674503175135189460493877689328384996269720112566169234657701055926140672953804038958880768545669889355772381019738333895595438681722301643584259064805420171194712105984481513267906931651248106161410073484296535022527760703275822823910697248420781238351511883025450389929448949361143767538544396968397867401625772183008127777859510277790368503854397514780681478945810710022667543418276183335672107384006338669628258930279158955995475564475665137867473678173049107002911172554350284675002175274228384990467162101707512900570164401235356090089456696819724642270942454671538060108810571043038764004569433579424238614380042958810425797754525393809191511383988960604069018209412367509120708583208304140050038542696760292914932529129999541001257638190680024089490999113836534908056493820301888289373656820993621965156058388064530286871691225141981906145332996757989506642467505938394326703326396394701322949569265609379435791073944211376211892057439950759810013334600221290070890381390053920485980536992186082654615747663687136743402602903806389386017508759158784099318264645177003299301436111739287491338022985285413323974777907291956766220857237980783540830493912684950049364872526532172698268758250529468242329206282711147685334010140493781919798452995301178583087826533411101664044620685678232372593534981097806026214003384467879633116656967769725729024421090690722132214379480329542565949903641321923857387735268260797097736220183071624780607000743100317339928605347950732750135996744194294063787811867003377882436034656445856240208213541700685447038753058687367931021359807025643514907133912186207215835192393291032840890699220642336425776405902439627089528927308542275178605278787741296356612981827391293863736111841616047001191137012541811950635361681776353350646061529115575681215101961359985390450173668573572496603821439314670865868417139565590331215293214414766319940374941499530323740622174864221738647015770384119435638178126648736182142461285741539073691311462737501820060912819604087475048169203203362170870753435110633970651005598021764339336347598070015188681818321368418164577229310964285931065424923643097202690264830600896247521992225740193385353593749679352780616092565643291287049319221691074653964415319711637712982192653446216164965921247176582552823109729054850712536383525029148549032823871472649381289586679699298066683642141020006306383908059719307641665280321844330498240322358089195789707833007155215605044065562520292297436806567442596772781069414382860252876244924556395219613911070186913921939558262459030512543276513178901007059182635387448212055952931985277846855624589060773173621068599511898000070781344321569256022893824402911916566207007020083623651989638697047799682783117770303637201109606192877323057143342146588141158073315018286846202324179718890671683167833155853693465124442540913862522606985063302684732245372348072511764580329262481450457671334873954028768628009017291392218190002644512198898939289409347980845224015736882524464927911503579180194067749214240214368603966945920163995538716723216842644138652093298420126340256796136668755185077326454326578998684505722748985336613008193103108023499015356662005216627410455706518414220677760560400523740220326012095303943209819236301609957987613024078420929020792092810331602279969650053230003836405734930752365118299773877680821237198974089342958708285232922067224837351270628442744428712367331749134850307158565536758944528822372595083521463397675249280020506270455690420801569120121536319868470938516875262629264972593329278348394797583310660638224341587576758797475758510835689545933578982268825025591237544217876853440358677406586834258272846391595380997782551080021186203503930831902904930757478699695215722536183764299189150873047136133715731517044934682397353164958977795945481415939160376252255640610530071875671040767385670378409412736529705682668006759038322258639124384109181285893712995222612358501694873362690307471145229816778022114161975269423858951524137526180419042681113832415529462224311067833229814959185484590823745013565147648145074187658271876978227773000990879964896789727501273892097969819681989983718148095676011637082032025276940817425325358147897710697435723914493151165267863297520229706022264350348504368987776786195112586335379377173727400886063870758516444368129414107977508103805576084466937055446621991539674209303104383581688403524727224476287536267929986833187828990351061562836222631069769246283854212106734431164853635800198625789785624639762787103223431161032829223655203774129211843992014773013588791047213146848401547064659413843791021228281355314543934753568335866125275264425426364654669834535144012737106809852095202157041376559138845995275504433239388401789840311103187273349184918162482687058802105589512697200416420109296902647404447647809917377449011297082345543154146700015802038116403272486311633122020778820478762185212992259029423339046748105756644249179647158377347869158333414318312708909905246385033562384018697742274200376475998377822992342096495421756799025254807851471950824660229327185447532894269822660749756148291785891599669591015399628357793520130657614554360833055293599215663375928195929141818512021174874822018716304419724328452388075160562500382750580351207200570654543313375038995656590276220177956067719811126278009708161662695968806599239964244595749235767465250718486179633477510255580770322619803293748209099252381609940019726415936197258023391296703357481403870665865988858358425629687805321369019284409316766527514306134039493040546671411998743011956215612945589659076786606556447502269929417287941165421961787960501178094161480939739021956979214105778775408914141499531431008371068970753387198786893822715364570148151038433136192966402578314865501697302132816035325540660205301810901364763372476233769674849226976417407005082724677185762283157678269170831203506177070359155590372549983315122600221593399235160701814046260555732481306902289385790396254726931018887257834647745228015846480157618841099728031623531051828807585655024903823739570086178542698856867486569319045499516908450238039958063100245236639707886263030174201969936515567588576469483529240928386846911037401494874965302861383903207351147355454499139704314259205136061758582499819626412554370306577268044929821932205793008295156507954235956793157400022458298929737120275445556905517459403984652985101565281865251455902423799137746887142180295898840769273806433970325165295739357837002650329239764224522825418617073964294350872762741878654302754690379357325540268908290852748116668343583427341120835089428753141234380776869244956532974513335241472606650980641575665693781639676800006706224246810822693297070681881757206072128205715220743567997720716139932834382622005683409386287796198717922084414318382742901844565259984269813264098639213629044432350344565176876218706081817342100818265229278770705646595627773739173848132997148035909356899664828366079511603171116190758678980218361746465215254633707011734407549774790839461462773562136486963641145793811679531618649691172215033130385837558131869838154139012927158695026108099079395264337839255401017964372345729080054620009203071933792305777015489003977925607132831311441527685262718818487170481310245993530201505267354505737797132431059951865215173635242074831023663643795461868598016849680300775556170012894134325583885332848751150628570757851859494207723350261943435544900960379164366240058098384238673047163270206087210147323359672978630958240020563162730321611859381103370693232473689878824417166926431264825206983298527185837278625515414531586189913726157766476296314601560943804897037273974045495570541182481239373735872869249850453741218624208379082451653274763527131122911141160426184502797817312745633252682314878792970235085681279567139258387500435792976489727848087219251415294759155303070502898776191873796406351855279646782502966017516239796155891379703592129216266294850462495523091981373678223373845511796424382962757010563540904335039372006624897729754875996125405910458640119202060285266603003811902837102721307962920258440219781727099013607562425403065854449708106592543339595524738292309647745599879120033991698737028439134118568396457489504830942649505456876477834600080149628364078463586757533024214291519911724711323450821393296671671130026940385727394787575831586512658908394187712683199559389147712143448130065511677074971422913593017013232505529133550222829693170969191937436055279226562464892240150916520840360172487821148228318673800091442830486306481425764598520258280534566998549892689892038799679468056362986989247042844225859537512968663590488220105835299920180251631216192497351738783575399650202384046210342930511443631146505047957320412849003388645242742807010013059295921706696190452527488025635402761841761036285674219656460949776791869935508763789750378671298887517647242468382850058524951513486016211099518119058521606710619740300927905424514611747666479504997292871346744307940840829539958185088021907424570430325624829470911266710239293701104376359794676391237412944001182622104377372579549871465832732450559207142001871724278323250457223922103064175212673805103766593266104797382726210837087992022945605589122894456752880607098121093753470640564648460959757708966185710283795849205572022529907956858782456003905397030469806887422024929991705436155731894546275590252919982531529475644408599481072892788366826652943458833457164541281054967856467086301967346375213523162198032650224520277995074873448959666044377449043532860666090530475640812995070166006206065555573678342966601709881252163314381477009066928971036925723323165959590247105348766078580196911950032508610565184172436503303329507976173264959137668939824626437528183700219270723180753119129420182943099847217453436336421741693167551911547097563638688978396457719287799501186743101403834258046676411690437992326013821393829683455043797523884954058018505606543431021271573876061086056851677780124097351359074067493782790051796859057600560065459344111442562597469031997075499389334678504158805376508963438767219378241649207108542465153331823251645182225146918459733551076229067192874526480981534971092894776055182923347131798201672919733851353057234296574763189798793080187201876604026653581023087316175957433434906927661753120493336381463364119269988235336784389918799813116990789753024280867997990644730921422367111336584375618198873081549504222313402675822724453732965466815414688654207143528999607308811298877591581872820047815395840917201484958012709043989506290954957385278214638295930556550205727128775119300855429723001845555701885943339990818569154153839857516367314715988996446946319889203791514983712352396411964611873830160556170739396775825057361612224972608374540002150792279631731374093454254322060695252016328756547335623252136810707942999995146522139975630668561903205435997706348357559175426017348868207791524975891577665688168695877837579177513209515894177293274239579316127288096467657651134089315837336386206093926723633948600720727679576762966862103706215793874315253876560653313000636464955856496985571456125170838114025933175442923156177046686624498074290444122339460233043429044346351261250819167838747537551506046119387784102428105455962557863491694225389371431524639697035791552995177421149648334620411152569405524662648783937177876877700799550046868912529610545431730690004587630106383073558923428804672385588308823051378798736398097964136087947790798873662970389694181824933198742252712791055689657513334887495359577111469926570468195736394733792684230765287379758606520476004327869909198300832792287825389833681138434098320310870868414777442839290741071943739962230295698722062989856750675296355259157858418268374761383994964281581495192263272398330455164613320051792819501102899723074026571128428302859549452547613152906643889899692495233483521640850271110403418166455577957395615621759829152900878096474098593765335432910480093492598872771991594509781697397485695590089413166259187169753953963623327982998385856060959060226088722481377993907857204083410959258746500456922500132311166507663874589373779359788027725571950579980430971550051031012996526031846904956856999797666776894789701755503258209056052295807028208899434752129033579714908317087556430481410761448437701973746991886108629996922102108751944246009703295931570250605828401672011973716323518414974308724009522178883326600200573508191022973293375740301240463653762792941954314983602610134132923379943304531405577114720877858774428034188992037295775958051972924017911032909504428259805063584938442544813821289829281399076404613386554856365217588686471557916038544468847070193543215813689122878555685080719562120899676239397652412616260608841263004772752432499909418263868567434871486023270134832103244171716947678015274936288771098617895278297216937377757301652002096723573684799671746143050224854047322506385532044702665192385535703786211520355695683356616947996072126897422733669411865635535498813847716299450721513779688720731794837025650305333518432920973983128655795860924208853097443382982357283744573261313219099358463147518025102397528560180026940299749893690775465423239477487968320478365515863562185068556336757720562956162418704952186947299454040864298939937924750382434722178550355063272776000894654240611866976172761260202614836065840085101301382833941289909936057882231712415729593069582742011484934968126309392012440322175568198532756676256406541005616725298012270501224128131872715391407001699291058901754209560648403760615100297317745497977462770180567454777461683495074121840636993980001597248280188258963424194761201348123716023465591015089035717456538533179031590622983074315420498313966941813740339970190912273635732557733225425609254184867623911034426962140077680300555485440913148678563683308030013706743350394118694133759936180662163087961998931600049907811448132120027104879704268288465842114543639120097322122081164559298280009280283048888060984355729348407087565016804614180494657243014311947104320432247198359747792162849537453119754645847029935872392134302503393022451555964998682567128602907823444617619699955340289276123752490422366270438243637274496987495396320989364774491578427914276041563473074686856680060406912394512194985415442762169013713135623095107959912418348224385392864400276992498987750895870520723752926188132463855386147448767816698275624390176182116984831516726602192901499839491226337593435891246524435541607629592168330360740527709666845540393447193962464843062011268345623097747018513453722957857774539799705500143808737079238529727190800022934653259613929908892769378210748793723317673457862000891152518791553308589640991598691972287425963282595633223318605839126782235753059763228902480518508626775706336460250435214828263337333568386534194852092198951798664031265433198023542763522911933810241852657988716503691807253245185237704536140130030158314789858005023656597082301795764473612904781040989427523499096705660047752703566964975027764845651633472602386388911691568543387796213902657677345806273886720162696769184250561576875023155673628198460463319870300625595220774065049250187675068060123356741668253525143269941054749771019854944949224547797862020758791759121953222752426189714532238787487865729315086064060914210200511427573041554420332399934965770337850162646511205828692930654667211177415436433378477871920374719653447688653771761973388738957000925052148283364225179340060993719886481197065615188511090993672292902858567600892397000124376999272145546697216888681229147442602640966514402836239249014840806364693583768685148856732028297544798056147140505506050666446485086156261589079732005791856786531828869998330702757091085549611268018664969954395833286461535975146321761309336580240484826765617910632910883360313739084705613271923370502711868936475144763904202035585103989642544409266309490762457681650602561470921856468842120085446868191803615999916198779724945841881937848473402359526699639543847406372315705211502671449631681840265383049639632332085670410146886538879884410449682598140914386218033631995524963580281970045381117713946368173682238788486869035173136779113466416043646240454765791626827539667698672612220424694159647485130363698868256952296054075441525338148357073033192534761279700604193901217150144285033855025820498463730778287281057581408060988696038632082288246344081465666909924450992279587105333564153268540986224923615859462522246380397203620523069614548161127975659051864412578396104964293492354220980099471474185660716787468939478595234711659557889402810709923592123805511991486932723932589713146342212516205314781822962984552342168013701820948088948925702364538342889017895866671117618782655417183558124901863087121636383279170044752955615763224592366219450570814302209343991881136390769277507399962593357343682439810679408165973177437211273739697750467071003173997983367670389704063449636218012323072055626482820320638374624991084206307357244503497188562290469557657562899377517722029968354660532029430205807756662681728943678595125694786884386015088071108910194618177364161028871935010227582910212001353424867732898021291332414978703662595465379207325837218225303654636992344680981988825039320542401574691355500850630896037548259048772068735021386872274862466282964610396913625062605299246887234875397498112900924288016925425262658309004151420793204875387361907572471925808919702772179887186123807599165933382658142340676604140642638906993212125649929581390797407728896433937136492672649981643442496470788667571997232888644019452848634759640913899439332634149217839332298221383593727516207373945288350165703195665498054701518594774709530831698682718363554227676995366060930738576261267134206494176010690628916888658510686779223869076748506219034576338337456745732625590331857284099426642950214023549710286199290972086577912440084656393725161129162608900529245644416397830097955892266585218788813092545411246661683013364272005325712492921562516798464902316135440289896812507344309675267615721879612559895161577976081690898995358466325751035322316198704368324416099028978181032985906963783462698628885826147179911983720122577959934219791815940495943652014646863929698288959551326033729847945444186789677599943807717928697178503824032199163425798596536569520102838772100881521637997462974635654364137820922449128515912714743796952589541171567055721810458514351150870006449309539629849544180654913166075451674435646096861885752924361389292836967148535203506464833872081661248870387799818259133210365683759602938259593406483646425966317933933581688230015841328645745779496942184928266619170904157844042130107059977038494948654759622907967002803744093141368867828848130382572339562043870577828599544751801180700091474988689691243137510426855352958060428186402379961839220777096885742508573140779860439867601601713552004880057806077494360049092646964600905940118690156216659777124749332252853458331396221931640488028082439923032760052390345748508111734297818621922808662561965384291143669148011665609978055903242723540236334048373982289593154497417399367361383301325547160174163634356346977784717485084534101881639952805328034719785190616184879940737264105085031218253049511871073089962393294988789512944286842589099866979763793177633786356093035118361578443365668453463589606455080208056117617530607591573521948018724281213657039965986517708190634649801129192172377684176976504045950985852995632509466740816150551816325061251662750308922537937083121595323473986352032814238356556930840046090245215085765927394791750714914829707989908350350605742935852991890623350036025099743830185087932772325612647249480900400184891087030689535009294372774063274086598231034580903103749277855084404653602341954792867999839561237791636127075592444563090138765045282969573913738969649671489890510949117049043228039004065546650015374492106817363736396947484477801064890509774055595563165791032041423442918095330412621773095248675047996772507409720240238513415501634030099554951490505320211146047544307980810253193277689843063943016363316897991524340086493288899520364920045518765255091598211765145664733526830131426460899096993792311326774272123072724384322420170581766333121756301034290912361961554174563068694674204546857614919400925525371520132381211877517430436740107563836413583196113107805678386099134287877743188046963196854303365738912330591033802407409048775942582384506908064731259083908110129698468362094628378927934113238666583780489850292848698230262160446216403097160981823784294219207746831957240319977194382679758164775293968435891047080481478582977193167282479333587856382677483788687988273264147661360895330049990232788602447534771376697100040971907715934570504006272668805308316791876495280032139274338171265822065982084964213985319658026387642023920766308949408384762717278474096351649548000892917078605591312458427422424179884060077309630634921363879769488335324894859711366981437239129143117631596386535666845582517029977531887671082811186088365249157399372114497544840739922881940559905587666651191601300921649598866056806715754006195220097910823312868794166757402448613027127731724111156447918250320251583303287167076516176273705576053286196418518095039678561190461898595430629888596129287565700165183208774575318309642319490129917417019723186943133960927596491341827309154371214749607547760868026033322250925203908543328431930387246975539617226523083781108097383580625037750265595305615446918634909562073397067383008755765208602094110412222612176344987450499363014817739861584204347271071658615538329797628642489718204796316732460943296909233550939832219062592410870267196110919967259967297411871747358781918633242905307269074113312598663670040412808688137329511584970424428240015906104962902333038918889259569882217593560536356476314555800710970009341376864771886785599184672920285700213388319699321355561396093594527470242956041054902326113361399456600913166370749783413612462437279544203539759227526800345776259735235468639868822299322534640985880504982335511846258749545142624529107850070698508368323901276339486825079543407311213707723424408934578603323291903221942874560634344591925387313996384393961531258353160824015408134679617060334409638483932098983592972657529205250892231889998572875591003083404394587407569433495906458429661610188859177691899972718471933104917031538187674178893888465078440213168348541948803433038229237986129898330768153728458534687039111889145428093204425557550793933846586675655396139489151035387507741915365263228887374800165177983321266737582815703205642910282914987999807716635331223464503405886465567203576151741003472247537710946956755573901892295930046669039800491075569727094550784314426776880149152372985501678403550284616850597518681697118156965305462731089525252457586359371566262614983045537832963212124809624426724569207606714460570507656979786011795344180029539294943261042513275160370545479923070426845667843606554421204740375093901230554743228277093191315289498686264191590784638225752194844868161893444336815400684015195883485171363307041194548778814645574692734139885988834192700339779784307200356176412442324556502476715434670994175070411387925608912859039783324608399329989662887673295985699766481618919220533407664543143019361908798541889707614418002984901174848245083444757650387922668491870354681168551296809727885051669275977636474097820447057721785238022284626466790229343862203724268636592129130880943170086776271668474988054722789156233623493337796153260391476918311456758298029080240995926429902520412211895403650227450220224054390995077189816605647868673477286900521520274015102634564038807190551919961486111800201903803107606279758918471173703709771075597259579202612220997386365781826669967122799585714997276788845848321637991922300010279075759397109619691969218280899965447035465067303143800016449609308756668480548224595171486568931808551713525419471964632241834625454890621617032263541820128354699231899499857378320949537926259271771196953828404947589389884308015157371985197953105794321225434065370344525727493321351438402969914113943430074675025368887069450548403865727135400099733704017692238652116071174918634710939831589184681318058506979223308425366156057637668769892048385561608626457387470130802418129926832953564853898117221233514356566908057203435446806122922837288512964249111249586784514044532033045716181370090563665118782836957540792267429222740019570796275488680350189678570621187554607842121793107695859466512832514587401315293607301006320645987275590854203966560425971048045407306257663922755676188873565935039825099559230017866643874768587069688785292870301353571819146878722283675822580354056352502979557757375601177658905981187914748363185768516074067544700005593277872214526462129245619941171555918520149900869993299971518471345562284964892913269678763832409354918140451740693229636692901259639832711380383667463981185213777095255448514750201129493530145177602730127742540794445353817620506579375602824842388492769755752902616607094870348225245818483995375411181709313935218752677210049892276068000110452467931465491608977185531860341695818117089917288440866647201931983230072550405237904686059637742811585438787398280421364521117738742506358713683439225381448675316551749313206488964615439823694653791582423584066318996621389407708597955838720662701257505573161082968297252393525231347436054128147214834502726760553343423154772150750272930235374103122652881973184159151549217498742665515918085112212170823598476208904544331803521092916801718135106013987191882872963331301458503950519003267586066443286024989868694558317369586563153626117994649975067016058403173674817360672323972114764053959526195412906002722064544427465021304440668590666672980580077389839389650123639954286650677185244335234779931878016131954091388731708649529425104701370248593860096095567178874135584883522913714612787769675166489666163252422829361710943849310958849707604372942498210270021763009772795776334029266002807044155531409261976481616505521671582157104777205512307401755785742772454462886048344761988182099338973838851326231396442693317756114404840525207332197962301973695332335663423230201068954201758005612380497127422368085927456228709035206178263549998894675524770697697102388959427363092319307113974087651310263586652165269303133196543821100846317648395329675434332973042250536682829424758918436790496753674305623280350200084533494386968942373913313558625768165023926038043890749816586307713646191368376027545162211019087793420485840077332329686801514911572051852719244876715004667831862582684035423176652258563411891325437522318915913494155981806663980555283781120299234959519291683445089716891794301472688522360266058126828718454904011981374400186306308755144055033761447489771882365635414703673015782148842982479491220261282876620785815473037631001029275976108611551647517636617118863918226606922725339496264831754674090082434175008341843375283913922586184064522377688645862605152541249445687614712641159964037168188598265880551148540922748550295613474203160098919659176730956153167117727713939287501023096997780397970562794743569844807478856245774793024345701656427816812583306956517861288579433989695797777183182435836634210965705614017291243340437296531181200617716358398206806560282710190675554065406665785189829382245829508936508526064258315017582797772518116689350933782665879801474666483261166734371455583948601447372585943632846625369944773414521262132943138982585675106381974237208053134636320334240505484316382506970128963632743389576852573838082542973634732245439752667860269552168641965287421082580062558122143826239485901238932118409901742760848110278062213192314910014655355901439446622310786516203539308693639063718173695189894711457092313356377864759160329089997731160235809495802613256414226410614170589545302301812050281853589792015838815263553553998836037901882350277590864419010335734119861482596942511212647531736871817413069240786879573565226967041027727294422016807745790846806535138902740530484362516471680737629297835874478833665622251174936153610189392676387586205307861429200429081390219127042837010895367679426838818575680745847169523658400887091597123852655701371613380552215799990760994728238609396632511239996389098020384885507145336900661567499120653167591503057024630636621951334225364367462348236650757811363402798628921249231948996899402684799701984610238639449688992615254539203483639695521564978443165208987838860356096169103368002722291273475582051990579525648565214320847655140573869089807094416905922351622433661519871250370074482175089476553547709035687372729721279164806407718370740231988079433060321200309716800655465844816996453163653234402099954442766846240533377849077178378047152538596029121695909043105460868377891013316683243913099624880222223545718140224669960242658232201766235902319777940992223420114401854389482252833180860410717532681925797258930380343608503370564691219072905159522271965164656103673845098243589515302936997544649417436005308831905711633460018572104560605252375958443304689696709577603392539293240946431871630356164079765624461377079835115985600621503386883434250415002998577830444837075412640593919714957454928318215729261206071237111767125352246037113443029701151409569279265292575018445104593509802996843997271745865029892233711979534949928676632201833021387286903229165901746272248549978393060134761728847287457700471357283127098365085718948482558000292369966513300056109132778819174063977090412469162795971715323728557748427314680358374950970980538813440191080948341076634614099038461035878410927392453112144370010916327103938310391694705692496013689810016774720895476136341173794858616000911413804844106862327966858499813471123545351269484701680765485996501316231107348491158858382160709744631902345038470060211318730191441917926609392043729471446513019576087506351462216823745098819124820652845927693738642646430505903353103071140113047777063361002350316040210446724682790948808304303105366773785223611120882630228061772938439493038363335682059769869784426149737670407973863806398314386324596626980438982145400636582597611463966547757984839908639345553326501125686396785262356983855001623781276877685196884010069739320807954300226967260750730785227198612236904308112329684272196188170983552793342586600769054287336752731489169425749941424132445323061527143376645188809909207634219787361802588438709145224933041413160416352652451119267219446035675329038366723067704316680298748197874366812145427900416710516362162423083786557353386201719648669129886103227337410984789750461820524702289310464977478555491757254508699561025791217173251931364284463424343395209746994087322902915488095037929993455218689929005274682251614248924150772560475097100364704286345305042116010863883176909649892708191477594756517286032585417330386106869297445237901315716941288519503091996611503496847590626853156764021371587568747787574726123585064452014982032405086109205744741317569326044986981866775753570372445853898568212684429872686165029208109530817199442248618927745955179341782723035688762176489506038672811411894148715063608547381546030280436615364693889069990831076047404372942335761708616121361932571015274896476596213751851308243734445430720479170493165171093832009227500085466862606389338323771497050301095833211629506454670838273696110534299691868519585908990262991655485279802172483200179054117482371815643604695885568039551153579141788650571135864839196939858938213301200906638694675631723079776753818945520881344184858973007027780136070663106760036161141440402070046166123639732177294744150169513358618840309512001910513199635156256197782648141020918539291958956148565909029607357773866032332762580657082957291419328763616366816849951619333285592700221139285845886838313697670739473175092640923921352521025345125961592312285192310398537911544684141356191388634522521122118355214241042980523926570014100738606566896775336179110599976943705576985418349230089347520080661110556121909837397381619366270157651790916188373180261538488865987322730796301986124040625867799730917644152963668491203054026128496045663160001013128019427485914065701286198481376749779377572144171047088020030316571969167966372576429063239966182978589090211500710985937611496285566633130955815645743470699660693088409350605911821329001947636557615592662456622232575082274608798871175205630999591270747409360359279544905918203383711965745446537048984891162984778619768176129038118320993741481262794737441865045015043701202078239389282449368653298206701535549605657241395172021382981135681184461647055646847260672857541038852399718435307634730316521124976461945175859030837808532443631863978165927980206773957970273383619463964963137759411154592526561804855136066336889389929342622775808185340261373996679423882227495147672469211614676929999471710808970575631013392067112272994998771085770876009536772871659933958586519410479599301357018204386423051958966603708524582913627836255427233694312215824695517447442740871883561168700239273827125000551229667215673806232638814399171133019505967345094276346392117842822689482032566950155277095711775077927605270034564743928611931925604124844382704062249797963298365580357265779011491600970109299580245940805999842516188050615913891341862699317474937004928352313523922182659689254049684333283491105359628195445288906674157799776958989987137441754372541548548421228962166802902622300754075091134313323170375406846143191500723888221788081636793871068566437973780838943493357197265858511450036467776211942023790252115867339216920635268011702944653938190736943585251051201562451354230939982811716135075118258362569484058724953929323919084654209783064163072008937942810038283826578148003268920483460055982437917282715961496821822019923751212725666319820615824659801989086118811712739485734874968433815312521009855021006115222151006993481241561855882125155786576301653364010515473001873498910610008382376958418892525394817250228493574117951191550514700921909151135217044955435279864129623726794935248202910163236988076853968612474040320511705261363938115454230817658755075792422153764590137607808923047379182955446179952158423385559272556164558254112705217799935393276345900363685591660314651927049282144495763809477324405139039213911376544159299479555001952101264803468192383417917098285545019411113644701882317095700891944766062497865314423929013248730276959123669962642867216528484089823918703686245702482231031408118404474890610762615092120685650685388269079478349116979316787545804701457275978655628484416024202083470498544996729794611883467108583982239221603314713406768408091425957484225715591566368529849477472313235384952992598411659924680415181763512916684122705224835910088486597054350354305054519196069089435694065642399143411522679779521295805543201677008004748708560438982946484262198603067577442876303545156042208471736002605742023529942619435912238739772898978077273480634964662384075768332743012469812859153949625486847884624848423476393872225308399470753064091053126652082827740109023482459697044712827968738520290606235567179803556715167173114883058376392915969264471823641237246314288747275827818012483495065952646247115722982355750939886107147478550352310152787940977734038061184789271777813469788652557934035091518242075601143968893331160480189378244920936296624656710625344950463813260267625625834656929498472875101304836306888604932901660413601103642840844271373775997151039463977559925471164651037131965003255848001034318141747895329968111654507181077383469464797702512440452471586332281872534305405801321517472448633163341920793436088384573661860427726369502497611008632156295350418160532469892441866801680818754341225304165006629405680521965520719366924069137580052594994204046326868142346085126112030419222515083418282725590021901579667274798347350008906397276697873541163459359966943630248387511048222472111412125695114510727579770503526885922650508791631523356382470229447317553753318573126110723440530988657644488138301524027486362950347259465294668088875821819270767762825576992288399175533340355815128962588664361669725846602015979311781480223003917844742267207487436152500843039044380048609481923556018890512243917555167251637464584561030854528584385856528177695678127924312469027435306615055885936259468768066419968395923131562950521011860532113984867090191298947302833953791979704386412020293104803167440444291887436444717234172789245367347865885072246860960821317176243986430765945641938180394724520304141598630283653460684119830371981571784893446953256555339021721851989753590688571686202515326476560461095474033411789287505139180656022676775117543796465429286225409884086189092868109660213041854237848960243355977797338362839826280954824501688137902515152260280559790713692106545565682512324825327355213834187723363476763463813984047628353614796758695528930970304760853583703890367929915305316557935923942192108168525691441131588092161618440327501939262492384537255746801857083658903401273681196141298568184347948544643160143320557192275992899867035316028975064531693640434536015870416516055090205515410091007750956176620705465084590614150442138477902476717974790956089450339637080901156536177199497464087316780479268347976881143019887225093871331622414628933401786473047532038314437939255278676798021887171862557372384806282273472529352086645923123584610263587279082549357948178193457867207395653827180500378974055801050611687038835256951352541669647165664444983493771448755086178271130282950236843276841190532577831689929089473262696085866843213248173627566765872127144614891105867405422654924093068892444195382233256961851910798728580851957562398690207953252005028496374808114471009877694943332041343917332071720078828672435086789515882446391460781654318234288747590591505892599358726488292016910762834069542575567658388129685936354598271734403994825685546019448178069900211869031071010730590072717874727699652147885021189632626105052859238410359108041156413225396590270899283671638557947862104881649983692650658161999968906760458649668684669607112139816748890665712577413116951428506294237745772485166031496876645997650402756072468080979656254468455858815433512876227995142847819885989798610489522755924325182254736786951387633009886713499114038126321895849280370811198638845849531828204693762261502009333982616097622296452616075880654000399361355687492623970595693050402139040037807463867629712612958495775423857481249553942669956227631678659523341274696279162875356187147119522243491515251819746454971974817498014688528349703436367962975458517905810792001479647785535992617032940851032735692220391014799409182256185586670419865148126840537976160934943832346240852444306714434331278913821582814860966949748867138247741006594739840562825660218386630736245134889900087554943197524739540820470908612497822879349724456211484019375719365641405254813168179835357208042581319719460413175586407707574371933132954100474639135446247432252831627628506686329950044661039123307063439651781890519538562900717077880789864460391518789891064192645100307329426129984178531777277680041180249293254361264762067723176902856078403861248314565483146520439691381287397579633055610139449931214077261488619660137071364882143409338172553239796143464317195835768016413168834965286283435887908903787656686170209116240626998698834311493426431982675320907276307583389244750664942005371544174737083556211290185842611555405957718848182282955076187621410137514128356067010197388129783411058953902878030618440402963148699914186230960137569718430210284541280144439391849991376521907645781706373103967682449487698133985803652106704862354298948290265729863817197749856577141386302240871566868342751661997678388276433617895708393656429788538896315093684934652129345169151469374182853233886080574301055808202022273254857365064212245377607264765338074110822426142184794988915568288333820333083820010484586906169353453892010425590595448473919246218098388034201243884156092167817440579629214567766388298972824492242175871433148274491146455238679395138432808458189386632325215503930114852374522791601329234497340456054340331179434122422809930444821338560810144242337457237608625798784489302921325998098956504667745197104359222758100718686805389138875094615664041436124013601073936797358308649323067161536690130933550592765355115131109270102620645288264679181767252052792219378083111789718675309282333265937293276705481804718824788670792035948190748918864695783402625958328881379368441224822791313663760995283778410286148374429727458205683149306116372846286755695034054733504978162306611197322158419539188674388969297192871841558145681539108298928953102324453990567276606911933211666997536626075315117408526165490316935113433704653769156527433553661521611834523928049830375525683155035354045821788230584749328833451496870420597472137362425638973830317772108424166724433803537580863780349814369485298743950887921949824165325173726547483069022691619887643500672314041816986512550071036247658023182101459520792265449820360815802305216375238957170141160453310042088390550019682774194869845591409107074230279153921495686187523626161895854036568920457988997812825264541672770935215010610518670148742096356341394499108173520656927832923549528249457149667204667720498476313917756088195039114520556721309717708728225590838136027650375730750971072020082129444348607596153406733095055363602961633397940844742554519058801182985355463813530203512674913157908451228548283131641953907901973337277683810823095648663981218950944846384730074838218681974484481801004176822790014164778236611068055535956651958793328994125531329968099234962046551472267828390519608906067549289348662626222282137114640651927606049629281981872779113307268417772375756597377246720953220019796314816983755678780266169557533880315451621441288509284236248905145897848018236216870963605588220644011284781610520593315895953121440728392673654853091017089532380172114267923227663361419210622073397804251703077412754557973481973925916212817781831500077669681601070728461536579705595466085261345345150852448169587134831370038310157004612496755296881683025279723539610572004232556904516686391402159477567903279541188850095930555522603484986089845411294932892121843677502352039509496561717258509312200950482541532282565725368819587203350402505871295998968306938160036607895690362494658381114504085585823035651411015119252924647798836741707430687395078188870672795973274883187004188079849461437523846122996009984406202983262300484764341422007646886404302693257840872481413776709695863942816445911806476295988382644957789944128307670493761348105208413931539815021465690667597416386465417922888580512683614752517114732322421696737004396361713683339671049878950526385026860867227574378839519363280956652192246137178478276980289559642608699624134519688967063578190735253399764965516173566143775466083222229398258311412108218578605063754952385732611832894380476186010201179535747351006410392587952376732725692055899599943821153375688120681797883018743445170399016220017563848286308475719372515812731535770306779108429138796533867542979686001656860385392453969281084514311523516426187323634491634875741850338675616006840222984788562674019842727163201392894021594826273543882473619638904941665204073796126537262508914301491414998483604072609055859165903410979185519708330033333839188862818556417434683220180418946272787402196932116242326152615457384749272372182622987235759426110877594382913735075302171025882053933345895328258655958069649135351269763666804615290464054923587177682025729438048898899778721325049365737138568128652221686331449503013234106951011398780980121205920820726004319019524792509219958613564197388087865591622848843403823171042020374624144290883584612409689574999205357034276924189843897032346104849332564714357458716074953250968835562621423101184749751826705355958113748668921359412260008043072339780953833384878331999275895716963173550639011675643667828022111535271418536028768671906224563277330943735546056221112431870005726866920976120127858780916094679624243843274866622260930963749673940217341856975787943035830247769586658027853677762171802157371730262370216704139219842362444873453753598869224475709002048470209835767001093736879486150496591119428360195612685910294992334516647465334511207774718550585183564419959778079521028416317801142882028524222699117069713366020879666233580517881856809976483548113993336093704953549024746747155135494120864596980328459808604329797219306853358340131809065595963274688959832494763710824663175089023480312715448007943689888730161303063820835829492918003508139046152845031459879528678969099946069819265226286609177701628436705952401848636803114219068245183042858283960268058818194701964117429170512724103649480326023682598175726542265340619466683166984113752971353982862448598624422497989348452738300839789232505341683833340155537375995858212168922549193488832722735995792810642822978724617394354708638020396232876644204664081338236962401478339734005969728874737968134988969331508291789493754110492691665240562909565734393452865125988633941286115148206508822208854583252910566554174428250361546817622160641802867147978244749474380618753935916369676961445922145922536461329979364234800530595965925319043524288790195645097566437488638695434952502320226538418544042349243808174902037274768687357960854767740169663790601037233630711599165280486447849333845733185964375288145516497973573598236222321774374996235347685707890131029295374949704612575410332165572083265913449450767295411155176733760999498112327222345856039586031080715016461515403467775170254113749684345031515408953834636207944223181940202941108819248341933869353545128098689311745535807495834618571015664947030364117210966135010897451459008459909489704306395509196753914972505606484773913109765565958076284128718390566297676123145291174620064647858525839988596371783359433756686067185678975182616281734692114957771513186963452058542205457433252627329688357602050972509530462228204462933890805912746230833330720667095301802520469775441812109138607725097906298346872522320328611285345636123664551716636027610479933995321764517305760053636169223306637978264833130817553595115560086637854348482715386447221725301517817715062311497543986393394606310921620566549691173022025255048339211412401336589659433681408986777436060089977504575891951812182780733824222467386357954886656522947505294965108219951835731183938778765908473201124734284094803123230439652351642162779382852058864356874679303268912355747840809509785389436342305523264608815887470726221205786688110307425423999512352546879040306712995951770321112538508350878579662226651970848179498402562650647003993730472703259598645454156660768443622788074056673438691674418747351576998137914022055758279830004516247638489662932911293465388789699435543033593142864624148011338302009310121782346363115868951396496479907166945506396779537132985310821327137733485489727932241590642893405887305794165979977804066099088812993265592417693425405221030292286558961380483019955549624334484656277987682614555152230731382596858744060248231564658003455012961087064541134310092108463130203537690447393877878332406522049662060052970202019938653863174167151987624209829228851857563129061333913053244307152291784415868803699438108279618748309699936546341748754450929628881959058485668066545577030945214476136638634373052448878127470494392125314495230885628913895855313621841561697203278105582410127436770586726385609142707988168604564491298771657888159040751143669620878988679324530506160209683268327475986625345266228056452500665822496809931110316024176357986994649262018190534416274054192292668417878517282895420344068884329753785737416123830303701977699822375035849063241329588822904682714226653314995488762778150369905090223414551269280923273384699835379395298990500438841604160421493488300576440879850504041446149506141000481608833173769673523261002275402552358110109787541263005486804423916462718102879927186280414448080129210890745703010711453415470169663563990593629098984525541795351450667352942473417733051552221777009883536857000980378454549454242996782654499701051405623164984631512016126409549894679023339491241365788846759397189368589043879010741257969098712229637153303805823111306676177691450446164401672741782859835730159253298190084894158854173451276086897291064998094705094969865901550507558754509971886741249424034251454333667094772685947530225352516469686546036699110497262827580028667361319978935584412196309467231026331707547560174388459239593791668067782705501080635481482991418606172648083765524240100933171792233796609620417512346085236145117947469672014366814346154216513260216730192134777732980277275309055584437773186579546123400081855832748829639577510871711863653566076887044166891280400994495752259118668548691057556972316373449536927449102084168324888481432127976533697385280067000694017320985452087717113725918379925346236966432131833081721280380037301218777102642255301927269181394752499679594737543103344750971502952460202694995375289915565720034208422104087094356185705848001107761009503678256460301985281366121749471209512785285505090730267190208434027999420106582536648262546621038398065469376691420303856861151761649719343264659621842704801905019206982680629213237419717639417568295838643144939072802793394816301037042325980976927621130491651240585993284939525675055013124906528105135568185717684037423776716660557101633723693534129044724313796993005013376950867081521661617750246840015630896551494358325169452404583849922359430717447309035466033009231204532709416533086466616801067333479293433554539180056667445238981337093529079514661499985296897115350187603659544012614989309466365521815979632850245935066856024661778840881218385829883900438941277629834261460481468047143934347349039721849524866198561825765939709395618986844646578949806955715320229622431636454580534993844279771099382511593983754569831510860145833030459774758728653872033025251859491706197132854913095551237225010506466269642703555641140766553839034983709753229816354643374412744130453299137613673872951101064819789779893937098000779945497225586511685001437356364544226573336551840559605309757754932840836822740642288920875006466616668783961365332051055194166008777015030835834752262356325585685663862203824273827289602473837494584267380939795344354499011206194193507996938773488667027488696202028588470728258976735710883016494586336258595138714865863809925347010119862949608974949291669123696591987740767755353736555519017838369880228877624480298649351374174434385134502389407525730730436412555238622776143025268256740693927220787984489037814796954641420894622327601505272094619758753244166365615326683799172808128784683919198051468724235874221155681662435087239597553982684384813063537076430867751737783753119017044111142971220942590971595139543806831260344760463486988288729034162553702807059517320244169099287367531726054989531539468545834411591050143773822541367666576278423481516204705636344515154831854232158631921019002052427973519190233495161537312452908673174785333677879398504577519624433104242720663158594591249650473746292052315545603794712019908161533999603441360187982583589578157348591982644449706183897015605935148634537874710182295549162677906280670712838973385448074316173738315460361726881814670706132526649239108012930378434934086552800691824899182044021376828988782553681280349807389539276455109202381218985988360379385774874327032929866448267177736886906851211904059836364833628065613640867259490311767256154341973007931660549778123222928511756661271730717779862153668539983344559988860797278269008998225763129402088388445696446076711462019244750459751704901994162865740627529284505491408091654887160511035612617427923859165695048236388299692238447010733035074205649488574602309268703659989909323611077905284418473896000065154649331383144649812326306856985448953265179849557026915625426598396890793776539014118678832748365872170278859678802507455752241464348370095780188037953612270055190405436159939908089020576883665264892646515179286280376252238278167047314359068585653499906610391947862717344075199838053945883662736013076685014232475763645352926973178293875223698063327092320377872183088784413131759435260852060997122647720752896800035080937219979290757235430933198445428169957810753601801694170062615381346009303629476918540021833765881880685705337974841065581060555771510257429019472187413501863834737987317190926791943314101584798984726903283188815833521302570643375278082008650212804986026328464356038123677814589867786267392155097423356036397103322401772038370172429860472117684149941178836595027883416319788094384886349032763395830306332172601812327830847047586413699027738087025075858656483686191253080739934123613377370611978947040331660077902885064635787767834255744483483763924210069076742895329765364939298584593107051605363386948331145168281957462111932459598214053409898165843966791296088855324743339195974333845214997940033258324080869247977264617884685043692608477295876747954897663553168601993294506741619846353309631846048431301198068114420916667713978538652287363209890782773557454227920575458073131034189215527881577000932320440947260854874512366352565031831599529703370806016593013071454321653455068051155682538567080969113056702487689543214713361248607514815682012980907523609512168293864011677649467236822703557786628654897669824198992527737626762541550112685164087894852399468957311119834772191641261183628640341770144503028287745473028606121729064591242107179992908201631373543949996427994374041317645201943947915352056801004538787201537603243440596345274195688068506500724337709699785775545554595677696515176918194789491873668591102050577139992471539309028400435778862204777209095353590054515748124863781828799322767749895522558633910890874184846833738260035591328537639474637803384243347190798528011181366900995972108594031522477652131388669001556955657632734995853174739646774267305239240688801543789822614954167331797383810017657038561986206181763001646079775497578573165690041599647970323705300251794325047315911597554566049398852254004843335602279410746824344861210045370294175139346090192084513573814159521672901768229544338358231874119064930500254615399528348899210630719767962982673840905545336759721626088583356112981691158114323072067949228911135867787514754393891457853739676630855886101664561152654232372773775437421850601559644252764535441159669130884348384760157647126508556574192599885742894104453152255914041049679600637127940413697495750197638565152057331789716874066180119987371132754653977363640102076164642458942459024141200511416473686136495799907621183765350325475195624895555409647792365293152264794705644068950811004396059536446579045450410738128538496932308392636649155294021620316561289112779053076948055398871996770040551134023070700668072283206702072377320424677827925932690037735043400120273786826045740723115767197648611782531531935295553041047852677871117052416251536018857431483496968712804227338779184859214985428360054250175550191457643730925015512303811530842648960040422084784365202986389896494368042694305410440118381167553014445911966145781795244113242246978674238661949794957030668256968148370021063083879619938539939683428825882527850863662180807546558969786292685107804476238518105195974192655299843575231236507994171596354075199013075692402880459160591304835061886889310592598469500818276029766402703333711024586269560083076155543467363760774982887783350245690064059667969782877513821301350534821596321364824044753243372816679823265871312980540604863164465546040373396089973846747874633934525303265666944964607131613354456136943701394219094623887575054392317200955051431305705877822218174827400783642211531249128743749439427806824006600324869079110323190008900671286900793651263025957200792494505233200420167380105679008262696966698911434392701476465270890485579477528179189523145869589191157143887502551017676062233082395508981867037211741188059811554560947258536927569665392027675821587616097027143463658489815286534323900812350753440474378963171633978259922966070603068344490945880527339151664211114611148359109050951031778209504592248978038690735884371056443474944147677243738246170952915715635719616901975062475644482638817776075814738109922218111586495866522303682677555913163378448629307733967814602804646513440647834585649608647858502208600364115259400648170890166655547458627231780014186144879885573064600941936190561842551347243039807918383647751796984897442791270630906012987247087784424905281480004811837424312297742864807364899490131038141233885625487075514112500814157081792321082680400930849527775672199547449009428584390306920257416494588001662681259095856343598045057810196879502888562525429787217593770408844425982129279228910707820117413443714532678717303447666437754373572197258557985692955511559997112780616678379023796387821595087071289219469208083842417215914935119877532072851874684616725900711571068239021976835918697229625308025929201595175916520493841067642225145897406816671206393127127958955951493161115239354320295882435400488832645513095536666493341563876498131520862408105079552773062154660391297670330288099882752265145482189849300115978016149978779467136270315115413730566269970635340825379255662991745747284882889798084253176908736457385264214086204870805826764045239305869053815388567037046995759803273239306075704692846035573422282193385612979874569247700972855263236827867999734228284489891926346848584161421100687134650865539736226051955316764441961878791716657631091211826546682064228148464457163735873509844850311757373851959995318441508761619999407849948582231923442334484390641054290146907954402908436006650954222704936218325959592276873288235235069837135021217919805576349039042122048504999910423733874271663028770041290928890308040266705342888119230581748702618703469591725816233771254452616587674753479241403882952122036529353128284968370793244732671694632255539903897872449408997313062057932085979140843464410994485476458220532247607259415562353346089216085975967373526894669504117138655541155185408299571188268443222279443883907310447515565425452464341643063446542086442702203137599147010405413536886312168973846890095017974249647445032335502653770441797678509015713796543066439646765641941364379547160380023037012009778199877690434445536267968354335671804730751165650314151491161494985182004685538785644250835731046900688889284887538430073472050385339241667340018421323770148912152144655462152440640087598603824578861878552875234833156112732811611752854435576641357990109380749286838433882962598926832017543265109059367650543873947158656573936836013839047505234761898267855437433495564123641510809729637601226097540168679988736531993019573426843576508304164553610363088859038800432015813900868575630793710388230661590159896383053456228329403889307902243748214752450937517180632599726466171253620419134850321606781747205652237895285367356300691338528449526314461173649785401353360995175422234276260339337451014061330802570455092041409482219517938691532393457058863550172827156927878307013175739034061540861115299540094137251076159740210857275648881823685885030047118096813454023949723222248522103454838655618949976542048235301776891486914059337055822885191055085157350418099737153513066966100971708876472595063456155937326781173466201568589235285305120649570407993232902592622720986569382101194354786624363695946399291780282206543394884039153585739613085788805423657411186452654716261674524100525857438406223031305021804896687779251000944543779011224139124006845122323759678892439733474206683919987955266000245706869912295994332842875992392940950123438402731108112148304249524545327829501494547724383796545242547755375605860186029842721927364710168444733904264110924871915491600190813461227323231462872030707576970073628816132751017073409588704799234124447865109069130972884151283417288133302373833920725550214089760580756695595983655659168610694177958470181460783877741970402025323483341435772977881212706822755616195833833219223835184611096605784807265355310847028712314075643091849296492093617951913597394821229953831513436644143503465413478237112018945386512350878849034069976082269493032458271561109474209212031185726572677688501216137126002169697751224934827437987398688296091577135559483574607726279613878172296388559939219615389531597939102928648392514650628556726808382464271775114430473087761722251227337954013920466252404382484434639114879788461154568964593205897946421435594545877022231298751569364907097205891594647677877192638777851915566763894911242871496438586882109508080695510115879761046226344712322030176806452906365265487360578826005753484743045489448606731632535903998089731140229925884928796412353074904839687484214962100068160927131505053361825221418886068573066105239985190867374558098044891068917285719199378512463440713045108436910780690755929579264481383666450649631287166495146081990222674634325384475802681347001116160779638213649853050118064841928956034243971355769031968533000885312311395506026754241299274339629667043546906597201963671262134301399820287559134061122486898444052055008292048166491041485219484876923600151023753308073073142960266153419113775474399337093357939622827029663812655066059747261506154534128368491851724331153552487267634693547468359928299299824266550134489582605275115787888861299267046371547063354512553900858275034789896054824421411533349687062120813656345136508768957076781575301234417095207003068618638762809444902379860958347078087102518943999437950415948750274901419811269620180364047614683969894980789649371883500837512320193309589281641227687445909563486977687538786247940117397098132779582003731932859013821859814597752499765787972657496288024857259876059914798406385601465115583107194229748877428891152029954221262067770213501920907359149624658324898029324415023587435331662748818129599446042565054121566611803143152590393021860152527736105232988985791575299057840768848889805404009853169666204626917937483313488221217363809177720959519584767151629411392189680594167327649216592598870585169944666664870829312174095135339898539723427014311342493189180012466571994532410005729502363240031404714004203541368965352665076056689796167380539257318981335620870438823169271310031896676120060311592962747642549516098171572867045707972061958882429853118429146246089578690507578190172299186853449775349131606880756218433014362773118091072331361860233164522367891781806648068602472434800661506659184385385861459422173133606867791338034509113888729718420936830145784214483941248997812590258827056707000667901426167190336456157356845452115355912662434044947060955782696498816044612177739240742709942139284397952142488456335073528524689241629400721727334553845677262606151397340249084631388761575330431936781227195492053338500946952914116122010319291237076004353510485578372148220623076264715867941231040280759126590912418583825448547634843931019891115954194582241476419184115286100292253100585014765178961056757898019561546019774027170214444341518763060605108582164384776016465122141825028426830167735980564639428432576149883943799745735745984175497950001947099993859140876263797299265319382229060686911331551954179898017186286869437590059065435721578703235621569271679250670417333740676885837166653447746858805293610736520971771976702724473680240697655069009471758508296761119466659452020339360615068152064328788339879916804550942541001666238153583430672188746315292396774988169875134099504705600713847568372005667166158120175752331505693813098421087673963637794963245991575963312456911589455658984676639365848209499595604262746054870315935453539404540835864837573250729486094763102476894346935871374830784074751491784518322427671377224362167476511986223686759094707732395739605505574953427769594447799041759336746267300985546689872457998449494692699114846535894413137509571717929733439961436974833276556666453327138758960045259654983482780243487113953333934390351699591397230107478816216234227566407450858730226728632100640194607061336912931000842115770044975366874035652114644071512412772463043048429065681898861445333376584781514011654595644298379618322712814808298495910346787244263228650079940113525849303264824013672793449503215846028883516367286484595191037228772632961795073968662129457354514215558290877232603355955734726329346269198977718545450449403346850727752287893232451451850954648965109361914477331209419068586882947359178684132218485976156591415227143194841778208302040695803120691422174797814403373493656079097427581631613546987450870129134918199157527776518519556787531175712588436522566699572847861039067697893939001577485328318808851424730952022335296245298804634250804301117666637141031210256177023148235575366962152545496085502544768226312901239589296290109283057893037352966507615735658999120135217902967184199259993831067974128614553653465070870836473088567504112279004491121979805710466716487036358955146822936916030690686842509544800006512823264605110552588468962747676361164932888835000434936745592624451028848704200476896886104266641151859619598403701696825930403990412041669543213461071907983258666004730270049929522244590553216505476239473623642688671885051583842429272120369664923336104356522532797759750084546284950279581391791165763318855101642242077983191954516913451668721381809188854622210049365503038769201067844105592190868015909559328353594920130758689824377763447360490388583073877786661665082551996614192180498395955820173387574049641053969497499557305228677907488891119110342846051683122751166055937464015935301570731611989539062694953051630982430321720902534673608886725903102279469472567538188707626619854674127868060807677811167443069522463625522800659030490384320243172994260872763032168397988546492474533245819987782760118808883961482994521413329756139769706062871777384288776764456527690427613518385077041299078275888258866721287150494828321071866674573169217519579288394499907041535093029315533678986790317359641511026858690963366160916669956434927207228008786299530664590942345701812703322835327920324903685573726050138079145520468039552330158751826957512029313815656128481384794423066865802354524330075617543060842036890500990542026424972497013316103925454579982146426252372542285552483937435519676642307384872098842674194016311170969087642529642783407091596767166758606594815225382231830193370648152882592568724827946541443282897307096644152784614544996956378564317124507963918518895274771519948549655948060478691522539230546008393102123042444800504078041253377856416374694001832413909678194368138627278071251709748340228009953464847759479954942015283425823452669411041978905341335242792481872771419234876290145710049539688530273198738750285494589596514868978360831778735918677615977915615437768993375354528469026587360932371313243231444602662504031457212624185554346306746277331422269847651348319451591911323574780579457334802992242882588213443047456189400960966379668335862518757602688951779620846148993526743085613157697738178231026912376733010499612868409564934282473822829633987470868412221905318732109084861889079706035523834869768601055083929012552639958329357850622755262105047702726554748499000812798038929766528780649483774875996508699353584797166325673058383103421910409816705401988940877123503456995734787432181741655567786789036227678533840654898823839677779113354741196428910969518982822502620598595641899329406523785998584302002130818126356365663596937452771805192186289139735157925136780091108083115565140428512375286904269496425397543369328090873717047312478291120954566430322726983955388479590181288389191178382342097250301221582507140698472544424204435021639832250436943998967664851346339177053925577677100894997932774292113310100988623493088641942572995901147888307504304149746310907928253463590253437690739571246260132795185942420024272460607358556504567457388616027118228768726334129258524794592466217830998980508840016310124516571136196530805398334207941308570944785840938744997018297540630411911858574469191474620595666366745839768001638524058426739066309312156901203424903290956863016441752904351506185688637512121616214859835512113201378075298231482377438170437517994738885642000729608116295158468706685574271681208503697722638393112889427047055727922001754562562135374615751770039665929763815317221375407872843360382009651258365661476797024644804395205589266062067669996420435585415282690408040180101692279246352616140648737390862838490900041054866545021772212364538625682211855492882641762453971421212576607921118853875111097536963581233867899045954904132473008754995405605948568699153382410658347754672178622918284764605283098117020179705001669068507654828870017149405695452376548034735944347947371027714308164626531816581852069877896071338131992070396883343645003076008759027814131745923104356157146356898062231326407439421765136704075980723610760079644832176422905172457136117977918715114990216820396457627849061502430707428714823048204763664022176635239503081203618187654882459897275078141813537062220874088878780330070017045286632219319721440860797761630875513863130248654001250753061806963335500219640757746062292835313347380284342035577877021931470744104551013024048321354744635604508919284245317975698211178742687499455787423667824464749455391869148221558863966216189499781890707039759520379093968047997056513808496572236486035292842134381830901170722126769539411517520789441091092834540727384560474680311172416780543562120184112040239061741429302827512653946541605937331990594898637404573956759611614002764673725290435141964041219970059770845481162351101798175617158029732795894673386888291178991323605203505670481943814041427002228107237264091049514315718484837541150642005553248515105195715232458137393877883708053370459266031516131728135991263323788098964112131725124337263889694974212550493506657761775772699820651029323235049532396779553569490326699760952260006757268764014319522926998575616318322470725686703013912799066376079129348239966145790754516472265794322290769143894897380309262509856374799590416144602117199415867424566982785452191548515505763685106940733285575884325779408600305404466176663867648625095461656275615763275924202412281236681986945043556060183998765676381808990729909287706643087645436217156360185195619136749781795563109766471648871833641677686777271955030804718165002962591278958542170046243527558794600215139824349100565745142542076840542354742791890186682571188037427542362261627738632890533775369867049317961530569512105401625755736218651026330796729294658920246271473850915530962087356535852100729095023007835668110346844334296605022779572098328863106674796531306901722606202315400593500052121567969050529780794082593703109818333173169351208420575319431290560975236584241177098006552029961125252592942895569604933033836902541909927635021172289425202992559982518370275380812299634381880238241806577297757156140550998939631130524684389022805684425192749184433671439345414103661800477990055584931180035452328564581329942377277013185305485281840120424580661698065662329389596206504328432364438946965103794786111740102389250091256744075778364804971353749786188304557989971574632676720791277543756368545169238958078985058230540574380133446238063297768293764614422367866295530335820800672910352329033694810047456342234792191730184901848607210484826951731243121666737544771922764574032095395486986951406442553700606478436098973327315827812200542613850397437063699313501624014583738287632400054985520258876582252616483821134599543728526259387150693535462100266332534030276000869528819511840917474958769381700253710536262249692161015420369281582663220390528539943763628481426657421551167878716869981086912624706060630028714321234773017870929716250724614644757416073514318738211196230111288699037642421969582978033374671804494660098224502418727452560949535428658549400325340972478994419316520818276170908545754235329669902921083329718447854333807601142359060393287611048423986192201543566880272481705219191525502115948917935520857408795338070073361475953399770516153833751895202676366908977763058468148250211240674697120944448015028662982242455129501420775169678969004017801470683179285606728918688417397275843220842647653783679244706680807920107608572932074757501301858220230967371167635525431419426609020723790743884857251407975930214895439383616371302837957408144857060237830976560976918723727563746777662867151121740588094727397850090445312627272222207810058264001955127816295920038874918283465760997462397344034251697966637668994997967493108991916214864529933637680490060447601738875220960228300715953346924116396059719448583838857532840751350490430348617239333319402264224772330732549692808810144251296117407085188864424249630728843154249331680905286920049969632241096141294201624051249005097059510703679635944405103972418524907689622982582675295814477113429690618602022419098188406895376115335425571827651152158333434692261468089361796318066337757516147734272107636380789361722553583362089470796543137003741892450178794189984096803355555015429694688730251200941917773179000402129833833520100672569328764005772640360939560628228193841668673036330477768075289092251912827817333066667742489449346268019657997619153739450793678055502403316654735763289937328622137146160965123651964378745659024219483195710097393120746596603222024795603440686698193548342005159702184128710205055026124746244122856576514420929831885520202782758615458673465395017227114621680157047396177836559145905638199862389916258409797545270844106482936811722597208785041198324418002735300652959414172145391622321708806770996221747530560730515094962436175661772702523309623162824150566025052952061287833154567292231763606565471002954336091185969693758467356797695377041293327080863735557452250175936574476827050677793368572676362155092108460066283452761134145326539507646600877172027955824594388117632602530741281640568284993245256452379304753820985876777426667788415890525874914646391012466827279760937191431601793250619402322143983328498914777779770540111296355268393446344453082186075194435417451193428522179952907812440425716877540113468647213508255900857022636638377578846897579585361215681157980027722082355181666067581094354214537618869903643683820638314546749149366848707393264727259558835160491219836654493406025475689122909705556066576192967810606472381536347257751799763292730672993766674933831768163758693775441852335021796438090933156684099896699623435286488104608860433113311329573067496329354814568519103616403953946116186893600316787697312054539231997309906776578587270811421158586033360804759150313930226303952476918894519450286424038633489677392987326072654625740647314092145825304551819219060984069933144548567883443838639216024574004646612623296221629547979981113508057689169126289572591743230336651182860676245600616037809075442769899054925252033613046462593744104411491393476337039417104325239492188098916789641419582601658975973899228306465263118771213501273185335105376158846588073908780796288154213045867418582227680994540870512294722754165745883533296943466820743348699539548847812399315608240794972162413378665042493380896883002558672321638979430965580645847283730981160760203259645324307560270434359345614531038793187078645964115852820047348557978756227166417294244960885909705014180478339506825925223837873616089886343573826744679935271934205509935424798283308050535734855820941262693939506862228002816632012671393368310419658160265109433718082177783952316622003773724324058955680157788384981731294933217996599803116392195072494833607503852006893130991976496123498903518798566923620844483417961442407677203292315368054032687148843436684807644511715250716391506370263424924465180379281772337123594035748122325697747912136912610773680205266582587290317492303108025026307358170061859703624800633765242140193986110644076318081081697778766435959865513444554301426606344100596356387835454193418847633227306347598597128214052904282441685767391306963425616739187120228579417907111046470583873213159465938655851297890019736370590992875675599418120148288365103137051755305113780602681625355203507273972271958184928530172473841446311829101466528404538156457456387709662443355058662665906265577013037571023841809397246154001279762164837864938431905473070657185944679661453865134658482918999636979564230995476995472910973432704630834400924756512482079487314400926827020462893237534747769156949504469669564561314876964999535248431210455334079879053446288232690180294814732977964237010579863306022472899115913685457916538777217171108290110947778125460687019156133033342477300264461967744237359546067320158153346889823997598408479815942993763693456566945665261613049239492547176173321765251351357998075107642996662048065541980063552896818374774224356278035363633389706819054829119857923803248454775194825784173843444400911973993270619460347599709207999936835283869931914885951370341672467751106787329792674563718979062707204559412433854141506408606653306497964955899979349805129915702406948454942734164158915098820255457772125470288873151689300154953581202695336003303826136928667690742925899910737795592376341422962314102795794909321887190877754127231608068429801437903667855234576070850606272903968176193285413410442156462532857727943994797956665587298406114519311194147381779978336769326311803648798073406882344689879245554277169367516562636614038751562854382966695825697559013240938106608857936476176882499430903604417412695955350616446674953232137155714854822343395529856188229453212307862668324404430848747081034399664961639769158824992424936055351354511153557250928040351323178784725492710662494588397888365545971331802861697388396890498829716357888127076572804519424958346376193869040011221324903326536993240386736737339158712058705504426114735145260720492527579089288208262219790370408870263977351865732455501752045905857175171553940551969762829547987519004443139377102057565410423758016984211434848835187413192459666860283565335229556676275173837736652729904487390292435399010945604823934613478362673731985936203755521315990487403646691053832866424140606082097728534200438847666691713374101182676158463399927054526522499216122794568480804200796766204784625069842654476838055105207173625309988905889022618876087122180822068924859609073137112306284558819514119972943766328967622765499393400040601199419810332422690841064687651683098204390063478911193782233252484632212907729664489443569771894282214871894841586629035675475075847827707704380822512424480083660095116229786201305904331511581713500774818414325977589258593056189790169207357038443562947586243196312330007125647179498305910177713333186368489612677361839453315185893384178423863336916359569319796965651004502484784320291451445062732404122169258533938299243868446522847488637826474040371573541517693147038435819271386860599557178533152691358569274076759723322537141283957975418848908059589325985176650892801440057117840551098682955618530927632913576370222330717626567481673250222333462813111891107413710210513770700966829387419046821622280026561201252938023447478524473575520816173418140873519228022894263297135625026405318725486834387397273618089753397826271104712091152447350916593775069112337753962521814811822717742935165194706391717884429929359898190398676615215568442463688152459675548583074614986168676158030404207301751457912184236778342271875625976066213155432356131583028829779052759736804714057039513285183704567323018068192257533102397492340459658248779875060664046120315149284642573131721045486850603461308131549459039460854646764518516475588599634963266575081092786687202870699900297809408088298589785978365218256707275442606759124395963574705841941985812617302230988711772521792237001757572098873669804400486804816862765302170146640045362615514931380753144372760237455122738421221885897917202492511846562671399528670870847226962951650864227031389467381576216512026506552332373778304269883463669907338009057105771416105697305140050218772531101279109039827073147030883830959512909807880038549058137734911817937817044751722563677583971412907742501333129579494553476306326886987537276211966622830223329230489630347065145431367207437142579745237123208619238973037418402724660564031031294611629436765587988663151657057002204713560700526183754954343053953527729419594768374104574807705546505022716009748997830776630621660212064041191611428480500726523359368954912186868520808729813371134800530813085857990008020522868012059331856743229357045883916516320895719923909367535236776557899123026669407392140383886968918215958364064630383778449894637316400528060514364363074408547941423149517571853105049252691553344433083139532940475248298048088086961062803838077181406575759249186713585618475437630328731845025273170553019438815118679716076236859798208794553046340715384432569553123614529098799838593647588310473198579982089311786031069127883404155503257685149298305959975794462054688382898501150167080760641661287308877557550010178967286978929915485362601818985938881899637738986207899535152671495467194329396822069037769688218834253067132398885796970269093492291600638960843082512826723158213076774168651682089783821844988224632212814300602534562256151593821346332109854805883026296182230929735374496545776383951217771373351479223889408344114580418978882511989049049289415850645513256565145428135310183829619651288385172885667095801568811398873157057625623065274302723553765416655103161070160152714570192977048200434744386399045379219317037305014235639888905887883541404189339100391991832666475387073715179836712103130069025253779607324480010024420799395607306211110763600553686984837724608912426247546183619646248789578549064282287080853635214408443526945742794988218278198136151577203606260202250475590641704394425341133128385784257087031741554553713127486028779623774245854158737602392544224578163052466116111980136910648223450755241773802609040673324405666464000143553830522344839885358643745550731539640210006196405814850506806656740125372314701511536855511705337564319112895867980487402160941224661854198834631271718692005588293073254524855812881370781909574844121195630560210447520652837629086580686464612141773946063008366177579449564782478908466147122438931083838370899265261843358826292918947386031828134273657482207337086630844692777176751953024695769989496894461575977321256471010329782464612440362801940592427057973557507316528623217762345269354279647505718487510377619797367220806968993182762300299073192739832333528429407125161002865071194562912871764661204676547227440110533377237130975473084140240012875298188870151797718684618956448549224337751565345718231721780830121776816841712741439566523520053690303921238527292501046462748793848342209936755434321126042508338673809556055136395916656570430722534969289530162608631186086590566487504648284609482561273021658736213425637557070805094879642537042148746142651191530047479931469515227039886636094998634749539687476914196841983658272993956718981107715109863596596400653446075839442686866913584230854478830266479362603840785272157290812041021069828777670334194969320569125262066399734739528649937988747273434629724365422663213251426111215105657691682169670582083856546693590316069883734245364503470116517553869695899680765720504592961301879856973095768748945717012422700318635500538703493966449821616606940025565627312563616750323463702327937223003685683033861743152660622466448439180307713693131997066661401764356362014820644065447636455700385164248927612339364109508959499879161225296356355247784230639932181893477370981419378854979368324254562927056277833602324748751047208555559813179592256015909755760982397819751031063523014599277593460512431003494025689889437738964656271688081731147729889630553034167556653945905028909293894350219494810931818897326759796404375471001998548769789603374409895968652309532713566494137799454602072365716714114517065916686682722927956189166698298002198811330156642623945944528170309125461421604704619169035279687836971410072078803479705106068038011622859990433919545674123418219995318492794946647338537975833816463088775931634253301438799915895603995035459084113301965734795427538750280483543784902704354366569024471800771508874542071551882984834992107561533876711633952555027409180982404459035800198529462041673533725803480970048958328065934580576398843172890050914553046468441543585753345213519077943702341153579896814939588749835865211250986143293046204935924527211783881146477166124540647525860627145390042142583521359666068723251166464880063270281433983735629907535210330743084022971874731144880003357339670966475554387130420050594115944917387569143649764287216698875196850499353009245318549266653551494706144522197072268336613195591020431246270137746255142952759292564594064411171402547234939533725741053385832511548800262252233670430353343357611544723886193540025969790396292837269166262589357027478428964473143308348129265062208022120195868585505831601579407886403425686178050719998704006867411661193033642137074829165463200557966536746010635612327751969620186714698906764647665523650322294833261216801323194688413119915052680962860952652602038583807838737794450053388632167195791525054634664635125100788301969138679705721685450001571666966326551430763675432615089025800936186755632602404168735242020264316177844022637659152627995388731936965121961453085697651624011738801094432782218995064535689010444616555192974679022056597825472841232657076140203226235739259711059874727647059197402887781732109322506195256614731433916038791567093725793355825046104510813883798977115605244853465670154238799496311129996461564107729603508954784288705178958762624269583040431669790733840760500865800891741633308065963284054927237001288046630996556701971474713914084808055606746400346694666007542745294271718076394963046182454249251883542131671518493021156075697658149045563389743195269615754025955751489349028231866385060203043794809549209754736016768666685036802901247461752217193821424248672700723732390876148195221973396738445751289405126292065593902937767959823385489286703458664449928534937049262736250972501820832625077700262448259337565962169595546577857593633322518257817585649183000331482844177066806388028753926523949689154871261336875657887722630122016453337637813248235052015668063933983028260727080812730978005924337770281711551431881992411810861187664143751854786529952640700572758861573905514783091795293820833216282527967769620052344049760143348631547848020371472678120959101828306305317119690611391036137872102084180792598371919742807097987120416797017330531917721042348670582451552548564798951408733235487742832050691226521825403853129669656549276092611359686411897028996986186429135407847494292540606029626761483129703883796668908562558130051196291267239169303245377802336111305893401856220409159493973988470997269398808040302683025466451359811756714948109545070922828090376367229839868489306316319976322639075804242924999499312946086596018280922224964448333295280715436167162669355157432413066152752536175432273746015663353684942281823145799090382156318243944078416724764240535495528752520213902645834645339711325581231019352976112860507201523917781206913602186894538022511451196385769251274355802696851934188820176086326640051341584808624442617545640437848046751623439241090111991296417509361980922414230392474384302957119983055397071468943391906957711671787897120617202132183682815635416717211928138341198342751923373981975337914124994683303688764741613208238436768964969662265692671437707761138754261007266311187856240640887122406338609161378765827993512719574854106740560806590323328632343176033533153604097086687804742567665346678987340045025299971653051847299741904308917997303300635383749942010810808136532404688362737388792458694571019351842717079425090069399799863419392854139074783672469012643784924799526706639894348908169886047402731763277475142139931275655139900579275591847817740749188981341996224125609551892679140921088400418865125485710820319171610139867200818843762921233132851295059208714038906681597114360562417000555833896354613180638693284028299205463504403464457864825349383943118726316419384407954603560765868336329740690540367988154197148434395615953386164363481549834493933446770861223048684628566900989959253920966441863411214603564294434584878414960351741584648849042687741225793913843690521816081235946981576771590948613242709085317440067239941676093162483354412110978896373911098236379958526810323175859391075935279367276702246931763061817896320736716477320323208667761103126703048091955215971730187299756800795759221635303409523596158042513997163889986446949296066779733065336729440461139158526350611672895293497533598269454947455483838985778046341158014431106564036407056065149640615902733819753286068468088946692301599689640667397814371545623412281095921586874506238250169691750082593393761984466377318321992464246155491100515605605989546097160402768239851335002728631859759909864269215238667387241609468014026807520665874760247930472384766041726347295920670100812105042485652525570208302923205099471000770615182822311211662425939028918255879985066114185600507490542173696229958145905770197717101840361236888011416288298028190664085237293044894151183279101743650541700277800275627491891398738693672055369622134385197047921263456985182575943338136241806105241784296214999251746242591218170314208296482806604905051626602527934560353784861889604839803105641090155082907059690374006228951369910934394183749960878722988582988937764197983696817377028126358314228526687314841184867779070027959246050026687800316862873838927575906962666244817510013030417814588405497293938323401838611095482048757233283372151035882131380104142994548463303223304831850290297320376525436715358655882616936285314343931316109762090425762675031421136276496235416879264676546012468880487563751942979678988122193650067675913618508229184481717243112214454046065683568617408862039048510571134686647388425921903398803107935465985335931105914920455239708213545247966475302790556184757067730092941064061704643993773071495444563190518558982263643969328603010438690064107469672104144219431678666030843044124751908556299755431008762571947364030468403776299270298135119451502136026841098004380111197710814182540703255142377645319412658201683391496691783769574976052271730721027452574401143494391975789930488724714800576153532865165627370344179716008988975258471707733766611271699408643440647982533043898561349392683474899232804233661230195698491450076095902539903717185200190315784802874098505504737486002138414052801066531102647398325731976272157680639984555441968290169239215568721692579829225816866226938283922581727723960237588882604156539309774393287952274467436986189996223073706223043511217871152796521134951034767775395541391449990905911807488688745508992726753432536932056247920724745755282778663934309063428984664937116784513517550166679245037405187657804598057327560888094703524582987220630276660728963594060700325229914021512277766151007341262249607725342737127075243569225359583046043608317100076176784073038241050549235726669441717824173704550270835631360736801394771847261667774399216507943711730338256252491209497709989965635561996256262511451551587535667833610881829811972285363737873368924906197770754997953870309802612438642334295411595355720149182447904522961113982439134350347744847702867776916495673367817182226621206351681824070730693631648506781092287052163115387909919908519855853373034832932860347108124614679901844019150369698201024536074371934217695218516319077493639859714920829253981555995428801601588742633821844518503000529033212253532506378154200294779163581802609295185616322807904814795837398219180830813553087410139997921207835063649824703116690186950323762498541658209979736959658026793011464971052458281146246314387164073573535790264538724903604658620979979387440159372237715316719171683460291825737006451581905464222025032917367594055321606410970681175106982007001388149735233544304320947017522282690185498112115481507236241930795506096075603611532565420371035086823925837395925910481238529361447648851408621218278966719542505628574887507660064314066953312195981125991098694814141256642750444347080944644330559733260185799838594427112894175419362157618103494586028107645737232578928666253782941030578140163968112949401580529093719369634960889165151215100697466666675823269261184522277306718848197483289434768549344945406999222809876564738113172653311099802124431105865099544977466726879279469388244373215972568287012327913456236200113631905885366173896424661119468301002051606478606547731671946551891661527977760720574220878199336270811491125044417205011082155277570009985160123020668044561391198352011593426329091486036145456616271424638372642074303587071444572119394961352829467796719618456072359109173434019003400237664271704514898120031646609350983061830569102076726604274969860499522803089539784932750589301446701386693127772545165693874586493601912993889511823847493837301652131449640052273741949774860959636586674394792741231857319238973238805390786322497774910999452105480631587229603619686899520416870356443325596027297715906467791892334777906201095439540925410432661969750443723177287130874168633076166432050717313212010097276189955576419928764752432532941082774497166882195911990900213792989085295590715325164082841044458903972454955652450221591379041638691200555362719491415912514681479893893461702445134240894030127447520253706561180479252866459274631487590696570770634059728959641904489215804600695890796767467038855000640583442345591578719347479386681126934235423992325860894345309836212290060435160776764516640660364674846369197234332995239671468015819190365953084004408588771698947654773795021556522610542429899780752168593360126504785541585129044860110544707017917638558589234825222133388867649173372920269103088487832799677980116735688779007375945162596918265452877784247633210805884189747550854847323524346742317640340277103778913187385533566876058365828144195827871274771595443020459229584057254788947750585575725475379561894873533947799176216000810509035137228148436396525706984143353732165926664950528563286774762007291307542443021309371931878473183551775031749184128814762183314725005019324483902190983695389162846760701778916344135739067170991599619686847916027409327987545217052773903989787092739791028867971421148976962503400505976535124478500527809534756749483997491971419169670565669506448496693947278248679802986239694315264021784822108753201304534239136161116818771192717711210624638861857994064592779848966754129084324609851234234282042769783346134404545632703698883841296338838750531570473102875981016641624893186911761207552742755707156925595708388768789996760801323825066913705673133858296522949392035726085281275429833628779053084761249231815987812616045934267332498692684162237298601028501225756350195521343491495527183255697773525973239754839380912065071312931851340730994079830294906950268751801459290219438371375846577139098183897370763502179937448126083147728229957827413447517025002425967463260423254088846630744777213136221513099901590536795749747629435026342730669220898652948483009538775304147851663334988700365426944074883131824785561068262356380779605847612329030780834808906135710417344446927691394969311759757722100098005677049842035346766538300060010908325917018202883715643749382261243474906414153163492755647967739319727629548492279727701153876668287817510443981718904973760354536081772010825140577142095961927996649420539923483190211269764905732295369313114611355802984449022379730568620098520110812410206257701208116677148028909513378066389491983856002475228256465131808938649865091268839385092632495107112199841830424065438115682120490565530234175895506929048331918523142335967664412029099346100011911426112297286413711045332158154355194989033906118949803884547606202755304759757875692682510118404801696636083639397100850887256625913243081265628379050767543727816110430753681178579850148414620202957694771934450011601637754046030927280640788046570624708883667987827390641140874552422860182135176063615068982755519991692479956377394089131858998433317341160301692076569176335688088006810644400684541317812657313748982729545890271940495140593602313095892191042508372389967276114180437818039967813325977346011732272012310710197549655534157786616359299955998352753832238533247626438005026466373391672304458107905876977815842041049198344403448112403417612703367825672149047591784866683200432098135966869682913501936164542372053858598784936796708907952817335689338494932558765466283155738890470688265173495185695931442151836376616072503435694966713157726228796378858737990678346286947940797989063590980540933815399278618923841841461849470429173559963184967663740656329934818752108622681853244247281110019008529584954127305589830794951143632726720672829686433775786498981767781063204324119142230681752157357326848344082247040685952604428051023686370333552195993391533786094563166953006056639423831967583842025284170152115290314652842276929121352141882615856440476692176196419332628033612879152237859335432522909890195734480589888974631942768705067048080768392067781752152602475998530499178236139126822562794213674002766495879114415763905374292752259808069708354615604259774363504675308367196244539207956052955950596464844217262027844747484746806452784071616278204828972805952459635401057135787626325693627164470987356483781758126847393563638081406412986588553977436448369070948369675202177648412463904439989556704596603664851351765031395331923348915444994269844887136953235515769484681073854268604655375565871919327905849349598790628432891874222523929451876272893544205201905724167658485740252523355891592416632255282932743525256536040125065739887745665344109878157193195645145401817346880418613300518376660142021694023598241025997683020126134786951356386804642730683121030863440469764633398441107066098510215480874058103710989571349396580336840492426081507484273979670553181163419880588950771793132239100022037256530740730678361285318479069853761126272862736396148067387159302622161210449560281960928672636970629870613557881457403468456252303116949064941409330696916941957173766015554995676556719803927069024525842996973088216048168909594910545779532282756582440212783436216609984670863544314509770370314916449640361153733152790194020483893150415098027153822055641216496173263208854866595231200577455677032947045214236884823769653639508702615502274751630618983845266504691628109992083085523682223626910543065128856044247026970991106416369320973439446040010778263397134887681967237824162999655881626949399624225968502842108884039547519483123817458778665589041975977201330948843376593662054401021267297660421963194340732575468884949711641563403616115278038460422933495326567678573750955438852675278417284205431707935095160193155339993813993546876897929665440366967767770610473091280919887674584389045873036311393387874375408278210808021210286742418864840228918671059132455130898041448758062317200060060721880243940302131833073710676328006507829012356976370028850511938208628788569768945728766424334112773974240612876839965545485295909962601877534985230741729362473761535530601432950179121772299305799111045904224542275976991742712017493167025922585287434055373347600898930923300990183408045642349812480025727533239881463016338882742304388291393983696588048709891194753265390744682258671267589067798680397717174168466483593846675306172002334863485577094714826062244138838952040440521458010212406479421582157348338469912340840974648113371733683313504872238499508035904054084141781015756099886886778799524323119812188532473126594955320011887988339772064720005148551659070646591266017707534262381851018025698975932420189336529054147498917407227724592228572290506642552124806586459945298656101291029751843199402111625891352225520126240327627145978928363704544995255837888714011449309424566452298674925358121400040742447950253452733386493421933385290741917107089684537103766772704009682136295883774406670595275195114707718188673867696176804507609918956475508844998406109771284341165074743018955284331392890841417802413674927974800121026648582503154212047424062903733671666271036719581183473795014836037911333243200809173069496272882147059825774770390467494145958911405842110960807006266337877130416190276578952001751439388675821423447723998841400388858708017536511943277181011741006275890742263941307165329134106354501835878869946662757072969792253945191059379085891874258300880418605755340106386176907455214466509197387436721074772424404991936227291242839995897128263759421483114192520519311012822459383276556712971710855042537734343002558152694710396530640626456590050396028497078433795205001767297117172935894392771825861232674740953853699470417907344933763665799650765356419927638496984405983185549429859262834815791402548121085385006495546633504226516725389993088676806457174325999029240832276397396362704074083752525776479432252686897996585526497202205830480538906684515306002720284355385139174981781863408205746481583323546482659133538422359467255700500402941710477780324150254557985194834875499106132702333612740224676746620016005441092277994803780284500141795612014189948037074249585560206768493661239726333026338148322232970023096623351842112582508241046403929047692057418647759155022754094198305663980314497618555919627195725191285549681068181329419479805545440690842895523993484132015488404209667918799616899237939814042686040047111358345870991109025065907955717057285485964030936518344569585406857491600311393635357317556704575004191954496175406078038123393504128572815526325197425855990200579640121005525328298750394538495341616197191260287775148026926647705593799927388107475792344838206907135524664948108729158524073475928755980129874632441947165793980019827699086362288197199776490317010672223147968737751456270044592163585360902402264943919893026881748262591318362552157481655914222279317062874995824495629998220459130150893369160412750473976263692413051670195594370816285850136092251156194741198240365800810056502554857491241312693599872317574687541462523840689275991979499321430962506459164474631660858941248220357330746541092388591068707166345409594736519057238848190521331822876612634208178130230382891888580285992674282903350115262756096074914480282046012793884569832056156306148004530191474912537886835216131487167825271272393944470132599934482735285202373035246036582874991870717813262403664121620773772272283146795279946691400915678764499062964395739963883287032397592566273241344943472898003057889700504131210262425049648518373285837609799340637984466610900251602088658068092597625868966269148658496136637859185685483105547673602843340753690572617195849454798704115201211081915261705710507096099043207180198733863997914988905269533633201061672526597919884077449903466603544832662998346034775614611860547312934518303220894642151097000308467613797304763951454037089248788664835486928950236684926361673239732471941266656941847184906895489043850565246018156583684355985520853171428401027756056846820886484912826685027044106406066017855205043564626965730975927289101492347472120974022217936708430811651512940334747125138849972569311619407185989023911273533178054601148137410092372336675482327353237180365884140167669632225396890374728853448695450559078951405449409629239396637794618033983755563648451599834874222045846620772840284959203720441387294560418331858227794175726823899412942698654842454043923316682223979522035319516174866557503661332540583472903546845575248967384335103034435100378302051239097680323136834983782192729133723839469498298387516913259067087472902091897340344818445910281454272157244706348129380782404189748479522978324376028792736772737514905115986974956297289722556811645943872883963364487243840534759691245714393411093297131271677817458320988826961648025240820650882288644086035070872190961741976044283152992717614762288687297828664266076474936814000805704334370475635011144335742956381063928914745665786776030930642995887119758784088771035158425355166235748438911132242629922654369642413116703906689312838993444652201910719886368644654973834399551413061780175377427171684261363256947018388282065249755660954901524487722571645332660213571399330131814794860641088738824221418073362144491064807681970161587304425400726060436948461734542252048572283102715863567928639020626307115367446501792834074602196428526535319164196133787713273185572258576892681565510461839255743879896529597208960739732314529364523473589147680992980450418263880304995965340930860146358093510446250441439888633836770344482024263695945679440021833371109827061121651954204716614167954945734793494720968815673944758359294670113787239497981397525299780139303354674892501893497678856660394233696630583023062540017607224945135962414076596070909737961496278489838962491918940469026204758021065493627269278426347322160494031982193443830401023036384437997093711834500856899952291085548364887231782302084046509248721558941176182848590397610840214054434553102750825568278466969354293140236460210451249383516998968492366983241743560408813252947126459398691025459143330357708026570838721561235100355621071628850718948572997764081953740299322289369832933104819024117631082774965506374418487335290652793051422437424294120083856708276552845793416104089382410043195319789929991218139449280792003300133535650164063063579700961830954576426175279281821866163192928903147975687099475195779575227553520260214532502207106760605888404904406397760676370820328142014792005121785210532708658464413631612964507544503546151151005887381767887798261869116946957308631875828576855300793135690912013666145227849317983820280012905960265392546166527951280948657519577398204903003869551521878920463757517505857265946672306928199957332808387619705444448444990490782199510583101325529641542174363010689790766164894944030131892249777490426296665047481212753190413871862526908674691484006305192386395023036965432495733064755097774445155088042367326838798875767162528965220062497081476324613153464844352925607969593363135980234663939741934564554012377441853178679079235965741828567108378345076698493266504962110181048187897525941203426401640983024656022489157063072138089664448214315209293246254787350439373942706164520752217926921787393624230233011429750879292040259240593062288534959900769878003912691552740688026945228634271827448857461755359444380570211984979671666847169647413551628661009455763346546024576168318717195006356584690128620197538090050879971286294815094174632514270712960534501298407705956078045693844477489404676195881297258559701658992158556813563531704466682042776267930727414886955360395464956776488774386439868375750229764512013839415169659880575810208712596642390273672303092450241612521406617419617808889192316267572179328220696462726194215228211060864570408653615958771663336861485986121852550896705738306138536814589319740178682063701582680593435379468775145943031035953978435729657725210174886735975921891548848500973770329012813001130429874144834791414589440956332227223399358578377004682289062706208924752907905001002765293449669242639559828299889980404213031432038980745843878385935676820368384572942627804388080341741683431165917304868718638586778918101835736434414014629295615837398394943631276317852578159635491759228155940097368381760791829198483145064213966516577468486181236225633954343103917133925816821415291028948001687568325840806141977418834646648159525593172124549408036699928062413207721329177805141574953446026754809038298865946017301355349015676340383151923838252552060193482432184143218438662741618314139531811032401553960573743306573793541742697485662175520215919161531859684688520404836378227089177764329876945078409827065648424256747713858380758991007696117898532039741719989855605038252650451856857452639191642288304594658301395160465366748976299146576780600388633476506294623206857520092968701896189765825418199453142873675512710970862818751747553870821967379242756247717827701863135472431009637625242178610653842111046116636294480976865421219488087218411378137946733908495877896938813685482712448726457445425417492592447885398695420140936746447454687427032235340855294644533777343262290005957049226636338990150967820543239277260478414674019595944109229213015447057310736386132122952379170535960420358128338736366589219285374143240604260501405383204789548913143307341582591379145239693312387577717980966693115774076118054062646795778863826505228144415996982176941400967642266500504767402121192071228169932586105040333849918499815855899062476487968354514409501707800506127207589980245443930127443017813250098213450077381348213756388417327151728902053979326327535368886599655582456857496469711536821153325209526213758451686797785370461773457064279585538524491980781717941962327264547728999430091806571035388257199002074513280532187079942795495116616923597357955783323618365170542392871294991973628134929479652618318842911808416377606102917888638522477409534241362344072798335328098575312035005852372706518594235630107823782205032285908798189840691993453119497967180713307310661692819675282261273310886437959736349246329316876783681303563238446353658377164074218770077797938741182679913583149170221141877689622944667970711884500672349740255222419256297453568645956683534560137604581503203561486756909776303363024885933854173745875699188936936472132608584126457012331928265264005984121919199810477904539007090711201304682636061346041274301908227539037472731998183744606087338716339701481069427566787305360238778027700708204754829862624845025656447095576608996027444948719207104868214180873815605300511230754570343968675638248976235724098451780385886055230532168646071495591190351810433480171599630502238082078399327818892698684252120205818468004695100804764349735165830825852131406554122862942001228504418718362080766406547415730490312642063686540345422228202254580008359627045319330443247795777033202284156799394944239442835741124330993924527733636744661433689155265962798942462833644472073906088268643953413757737806917342860366062970186004445756187267069568304357414203947151409359266764239933486075332959770119666250157562910306793324123296155286029941316945980090840335530023175245756518412224830758483815555035886012086670568010731743954666062310606502498784114717742509911524687025237105044951417316954751400221691689294852393493139673450838609357982399636645971528343528928722190603032985248828524016166534016299413387818761581838772552449405569962104064245555528835115299474037678090142212152541366347562272657513871978120735828982120634607570408766638459897097168217474538418028076954432792352120715977312721638469172352960498318168761409398769005733180094735690834262665951810748711744094878285159532309878498214471601063615776552941862626402120649680527913246505025830241310733135325399885065339497045253165869833508293293962060775441152597424210311767369767558926391658832867147328910763137808496202177967630867465657306135356377301165332142517358667176821302965387548418095447032705172510120598677401881506393175836080394859414986721064588222023983791818103785596089723055349227122756834786630549506244314469187392904721026618914456980522401431129779767734146457676003472394976407227769076635808866001492277557944745592003149055668213329344050746028156372266019134208310640914711773961520189257701667630665884933728987749372602645418749397137017557708487772312631331848079257540138644074386358956137329272810550980074577200752644627709983177703916580330466907325950995364818013077236524947675194375620981379494293745865421700553293861556335563037264023428560899378494198212067484637955622399957391407970119328215122203773707253022131607691336304925131962327694415169798106478616178675748566299977004957630161811593214726116322604424091859150043442870020514698643061140944062282634679839886066043100857986625911101860992033097656478343128167823461911669823798828669827571676833619519417846741704715098638624214987060125578351363373449692106386712738957269453231560566007421309105854521908959535918598432023775762166909453692943067457995028213312933321480715955488551883188785619277240706738254676005848630635697251305304059601002695121967018004991877965631310664392349893085000640131220589444509029419920283822577637571623123584297233726357401788476956103778190140689387885089578662500825242849312055722250683291592256797578385172581002913332024806607205236249856725187597887787079133564155134799914041493818792738390988968980223116862818740455219646319621898904549055156909975657566641898260932236949075335832714078611449025001402283846339438652904695294505881556974959898430863715711837348964221302138583035193076014261052723782299875654660594217927093114686244234898502600390719693257603482072406466301577378768328335792539444336624417956634376154405259787617412408905087618571861904064863397292620083336046344088251021835213046864758065694041071194841097391614220588063855940955538085475153116353823497420084627729842526295094286461716869147290795787425480427687532255027182077978612908120355949303854899528708356661722462112764433855584144724272635195387964206954533645086298402351936360493072227343467345939298417872968910077621261262836580066933496378479284367594867865609968607876045507174266457050465063254957978191604040522966439063519577245899809615778442728821625230594152125944599337702436143575556145971390208350632372380540016396052888727483904274924744196735356016108774554544992370725202620830070790735819141711505341895924245264937273978121868458618679909414032850128905450331315500322222139592631332711883467698567548319914731246175095019676873003407446452639993473790250972931048299753526092483621055470770339952592414573382770083992196805096439365264793050861574343463865691361710926806608053309761815376231452322690548168514538814181442027336197362259085765027085140975346077657708418811962154798371638573314833449160828703745779967391906184114026693521386121777100412139270551381700925168264879213897573241008542546514162105883316586211952804003621857326213838658923361084578888584800477735200538468086035010937394369598871911152390329305970052173598971396974530356009441540296397988545639772391986390451562279604604406368731564024730824730380041385753267447066329838220003833852092944663755986652581255405271201516929163546565789186609916141583472882901540892443125574563873696012310714845538945563900216212107352468291219733765093643788866077360823401565847715866426934418760065512933742348003970367341997623814454100227533654989004818410069570773186297403827314776794498059180366152019083707158483881705120449155401906913850718441052882305313015156994392634114806266857743011451535038162078551967446371866730122351501781049605872516589497054535228540573376447306182836394645868525339762691086015709539251338152679412142031122077674553208440598021813901789152455916657314064572589007395128853039985768998530276086727743754223037332696441776605722855329111390780252501281290875105682214615376900143040577481674977708542088050067781312499366103576134178051381728276202347180125080586716418043660756064522829107518936808645568505374073600329222024612223239165152826545910538883792039875471703444692590764148685957530523886697945237423604744696887029795694542505064530475341918195868590997505216655824493071871958859470859670467149113447456175910449160926483038257299760231584983882848781557873250095499308611304491511418394543663691299672583667409938615951347457556215587549897818671513341208277036557144515130420759190701549356527179535006291383287632879810341919586986225071840589951363343429196579511804584867076323485968799119932391575534882326137461953504173902416715619189466678527634571877373827726499348021005361376048531362198059799928079500523295263344419244239621445252295902090086349739089518196755246594201468983695660652475369657407630398962097914679183851549762991617436023310043003324211108911280400782383737863750024220840850072888368341568560237637611586078293476604204050918140437065077833648367813161575697063101040883942531469075906753910993653411409110685338758972999034392988280573006243392345469705746491560279802543542672409275240938899027885657762768897870677337190957969182301632231667840469719450907412997725658175535075792112158700302351786644257550950056935726861023327327971941665310281101733302255394934063560413228605434908536891833438125156823283457332066978836611284079196570740570486009069317434772976378878186788428111648583209353882645096742292274117803392260838720878020211789371414556042831022321609155916104750531940236350394012351506744882236071017452647384937791315601405120004986884585935103894326551574286976379319572987076704498258903462428201418560931250370028413730333027918352804864605485684429471138887848304576023461527682727435408755563160035595227025693219967568945912671734032509651547281773243651895368311381794077557199400770718050308235855970827039120250918933408412035839462211875917832904769100084315043716156356832164352360150476231231027305823956525766209409822936690691307512459862248121414824388563888428833552338854888425121713482985879500840417740040605688686446192304753442004562807104059223553236967743022859764861764548604683441898683098594595031818656319114053675016279453444697247963053087473073717785333343022598389892719623861026947972691027708642971333381969456460404586511131164698618727729708849818108551285487394123800822281903675077086507954585213626503297292833477939286228546781401262002343438486236910229299952986667272611350475890125422829568760578834981803099680270051059894252427879459365152279821288460690245785555910070108050688327180545041234820335837922333323696598558830745986399303293172180175664072433873369610165855607111010015536408214388258640253282248513206616112284005122477228318675838509860944112872552016578423071540870067649316231637084448776809823365660047022992347079713031288680659192387411554863761326849712517840383288834765592734875691464823500451241528418196938284384761274999973559783813278096326830361181805725772960721775876364277464158596584580451912033671219466199166253542635646279251948584267148290624473253353332641259992241309484105344183974375880634978403402365356046226948639144016881745842252489578413297757573561893669719834788039141894138586703963866095756821950456591029537233836073665344005901392247240708841330667712348316033908121070619183718800913808946001562237868002889499922329284183308017539051531069539229939501994244876195120858277363707572035273344075071789274999324970076421361599916474775435465629704272217105975670769852746274829374708050040835473639193946852387211184728337179284466206118197492765493532848822532410498502983272716271141955174411945900701640081168473347383933350428397399161706220113825531766101125091212764655654665093328084072813868888794454236505137294925190067378568013459161605060126594121358812316497175441030985467686934028725265686247121907119280350458045998205514918387571609824821239007518943815725857296802465304504085240156578225230590750812660558212321008501423817981574060082714997132297017244775514939945849010604589063075389120048474170155126841599778566875001188147928059869890382538533499694964804198012001422075245306324060167872898677941137070837318728379197859043651584537712709659390101002486020725577600418782784055341677411090094777112703421289327258398865864204843781890199648979665459022779679494547903156165234558871286983378037103113417592439163470671351939455711409653106829365726594997964750378552841199237031723063017376511270618698922606342269857307195073351294640189796024471334916834893487233644387494382388891862920558023992876388379046138940807986928980057344037367427400191375682382148402344335729341391245941382910894472160025479507180870961772798434589658738081680418872684433154922352919664028547210371203578755473997591914043575301636574599063522764775458258843430758699315738834508869275655463994018003214633512651555369284639933037232572421272136609799128448546776790791461769439584409440891058218046476685637130950918641045820920926341029440182205981896322879078159417360829938280213251889775547728146015073837807851935506471120808907491268122809070423785844973963908940020397573440959510538059233097365955200471974125860542923695029773357714609530108365317481843152300198516251969945162720385313268594914920182282980232945409456441783693072385287094746714165370507672992874585989790984682315759083739323659575347457829738939114221928326602395370034089749822042666505794774590786403960718425848684829172531742002349464373844558724871628286623536734241709210876989035619211379455430631337554417850898520273295363397915681845704599869614769971533405765734138353649584878613805168478633101447132466151180119296400775348514138227807705976005685792622461522506510024658047214068388051974997974939095068709224437205705962045019899277397505743660331450741395998843269277191614526223573759661639474248563709449297764201063669199342237361317229748259411010267828791262663869419708500246224239649745722938101578445323793950796336854506915867182109932588459446416004570965551708125711045127352431169024530417217788228713914579649960978367805906605323490047101865680891390388991017366134426691817869535849667677658568132316497940032235853427225840081586012814411257488605472403979860051016989723369220461607818458324709912879418492741963266930738028090901994235440165664322908690310098968699370962730009867145562264987818911191585620597070107835996131148362486371241735859521572588589681309571877277328850284478532146768411382036308569274189480896549784822372562675432545831596785214115861973784251082217826422442740756422256896840239155976931008834730047044241754899692496423552235129149950771177201579733996393159804255520942172264093146254706672018901713566230405258186676798775085839139565983473224031564632880788678997818838150415322358550870028658797576311214807052515365491123450051750683705811256449513887894275437831294140376355806752139426407127620873536821276868390392965925169109502551339375204622697182008493914742395056437940268850624621914184317387594207208235819555817142098193460729155433266758226460701291613113853715566971314608413286583580693242345701603967342096863273523461582485832932925957358850990351424767387382363190927172271607045192473191497943636506212143727745981272265529042981866744639319257729484059493386595267318212479750707968363806541898869005776106711604839503082641824204660919868792690245402452839535098593229088058916927219561020538234185432384887690896254697066581435721960357744817562257838088135281290630943397054823819777652816909838537146037413712214718768978944250455191238124700273532981847662690236393799869565987802473614937828358243656373610979343585113452321509945126374658674807222471521184568224353445475721718382661598121854847428900687419212165091641455632878317244327076592060751008886397303540139511099234517154292811784183822060582315134155846736305569137738412987279408550584331118341872624890548597910949397957583601293683166724005790491950002977853309158317956665650628496048378133796595938647276360976225840788603973942621688001047631532340210420057695010084739930500603952136429998425983965578646259565890369735024723502621842905300157344191511931339235504946250367409538021837935820543707002957385687425278168785686862659706276966897015985405790893016444786248021808532416924267656627935426639442596581688320182105156645048078225277558762771447050187691128235729086787881622205518865151753875439247494400176804718201540123464506835961821583353496949911453609292861418038058473646895061666727170655811432756104386828026786621574601510823979108536148931952819436213197118335712110614219060801979533060226923335144997253062062059361550106854673668207835686654262356127059236306137952418151994944345281631661846775330303568012164012072280636853718607244301642076820246313589275169145661527951570832350418017731403830697302109282682265183113820919147861606491854382267372205048280607389934956335283025270176507681790518405366077712089848570338047502459009035986639847660675636413745282251275793211830096404831294637689834932412695623043519047047502472337198507828549691153155070053887745050301426325008869474337335624573956395726556810808856985133133418265258944922421009608193487757140353951995807348191687238977705759176715389800892909160206683031577047408124053748352007631194002560236924485667799453413311189593789724655165791772907333823654961486987656111950750064445309430456591064472558435017377926221322527315199675656581189468756451156385046327377729908177079826740917783988418841366498817408204151444043124142079152875875830023260685233497502937544213598476775632361592165229278173407363343936481655024229926986061435325584034952518263700513025241049223299434564874177799638766677987853781632108983012510265961098771261575646550131697182009826853167425727088420464305693356203740213868859454324654384817281055217958767851013525314121470950972760943542519074049093100251733693970104515980783677579891381533408562813867599128402254156179025639618837295313145477859208879148229685043874240589981332947250444632469038037047566767505692573350768473914596890410647529564523823569541351748378862782880019161986255309537687565067560988054354739105580585732133112124935487117764320581709740760063728911408319901182456707056775028649710590636497823854969775830677906912111449516994278577830549767717492390474570901518875483788132663138095612636894000141815865616473652243959662985829754831990713568302237284030248712415945196844025385887571809532467317056092569282349321057765364445935244150243640904520770515473668983251237263582376305480007903557370182390254165930108192990790225144198567260022293188191344844412178277129389253017518547007106809599454994144644397569070968682049504457962925843305103868901441480708099224795333461983218156580439124946136483300206163554094699125791931618857976134108763652871946127926816848580209241684942968551752684552153632444946443092230004529798410990829730112079061439044572865768993391773155739730759026366402016635144117492236239012609633687553437361552102068488874293205244498082085288552543831689635549226748844791399251232827173904511882002802895807966272914201350175176368898934483849289052176871118506226556336175587825531728511413687091843955407241362179800601369721756925614275667078822039615019848121978419619117108239507764194095864323380060345421631007707298730816795052559873290610680802248389898844835520409260445975004583194209643159444382007101447960683599236341295357173985016637673415397823123998932514887095511137749663090107600404616849165832497502930889303966788596915926870374921422887374102715803777363090954518468329241832930497896339977047348993511889494406494760684724572924944502735092885109838526835470566812313835087838575374489103556638754574081555552362868709833708241959837652962295932634861664754116935537226443032472023088998634780385909086078007269468263609825665482719235970073760687351742681377249051672493672816756325644955984914847717360030813879848120490818679243717181687317923670264424825512113894713093624576490843792171324279074647338952190726386707881820544370892018129997391482779849591144747598186522522624369724739315044309482598791066155765243435575504585780536498873312460317544760805235924359965349653134236005096091703118625604474823827366565640083238498681064371587595112365103373776277212048178049191126711914772593821152236088233833851501312658417220545974446782725320594945981500386501809702764328028645839240450714862390334338634604261886194630369330492250219355324849002665586037597600950177705551730603303674468955230081952488749547606459818676958334238348456932356029825288428599855583194278448599907828035149518393483150017930936139199950546979176865809980920432410226037734607549838862714843293287657930868028580625488648779106123724094933990510695346655691366449264893545937709490676649726228824435515067458200851327031150921880573221697701745140153696337860707408020274801991505320146118432042324742296730540113565960552516749442137145643096482843101056471159725202302362018333110958819216391062456471034739558749808395929917502727810756045379511720948297453754019319795374884596104959990028119765860065830146089478624567900181813591823237150189139656157100501209264159310361004063548908640177586346584224019474731430327882955823149115734286320289862165901603930569971122078371023325764852553867665645485771149654973813307513532025252927461694139909605202729308709571524714083187187796792409241860098715182230682162650975816769597390650498835825214557977163008322323635369741813332872678061305933119909476006182940121563639354119358438838661870699006299724264120765423300951261676767705034727022464486480659634349996738089708383762745713227066306818390679948898479089342426511455601319242225077045349665187358381142623652531913615197037016204642497998282096759049091968028421765588304351553215529284400125893268215835754412844746797351838798832150684882815974519753764163927580175607762157307231879988500504595473872494279875228016222345257665456616949716442993090506263562219528346470541699536881617052589422253028496553397108707838567043671307500834314079570827574291647470282032434037596332381093784246967596242619765156286867516325009099083137781544075710964350556120224876355376358654674852785105050018239047390312599453989207466451880915696514239333534853431376243014913919859875600565211410028925939961163412711624474716023064684638028890950064404971867347944513046108652408095529213439705357876742031242264376226918920376916176236416449911124062128450888913617835953399329118045053957741781526853830436694483863424442494140419950792981611708981948804969642591559384567278635403632923442835696376832247956208706331707979208316664515602681209074880714443910524354874706282808943182891769094274092360431776399874031502586944510008253051587263731736713957217233799310626108081801429124097019936276208238054530763503231259262995527734943903989711748871127107158812641895967330680983845452375112289538282279762898520773446386867793270299567245132260532303466184914380007145058295337800413538725889520465448288385525380858157565406783351686487824232077653584698484448827152194980321715554947379171590028141814233451203108278291278369563243398423750731998984524907683212305891537197596425011117141881603167713517626639492075795645158030764454742861975096419718894606411163955669359261147101179828839314225821775588630630894985191668904225519019308969558292019092836852181901332162400056871299897122135125984932890285239390001091201448799730347861325775452742841434732041914177054252879416213282494916159039925214761330656111927185219828871398336603246567072662513139559496395643549881429097440970357789472108557116522595199945387206738864031287536701248717492106966820328396042266304085113761067305602327689190542996913604698118205518796314233955424227409453012478615535661027609891823892429244021040516208610393989951613634099921870158134621283660289544224267812914876825647047365512284605331174526595083998833792138114290266604361200390255468519292299651181779643988894836415336753233014357719987984010303530445877347988774064407900780952594996508698098002154228384439674376261449969932630408890543494097870966277783569187195457090415901208357179593973408920164242277342095155810775396245246854298709051860414827130065505702996178350506390037269766090296814452380203726410195715921022258952117349609565985958126371281951148947661231667018703523629334889873719514029215369621771165507942571428256051685083559194718634388704871788850314949720434053173337633839941069792040944923719289020830243107076828339526949978776456967513065259722507154875749181230009303214398541537064655660233477746940415771252771706316367873334004413880360707876023393294230276138424034576771758571275961114040965849375598843216957543480091564157267417914286395107009980459316282757300800159456556528886483789831615928963671472084869536299282367245935921052167125643686187706583657478488734056129874245639071565399974167122520328011275392484122058932305330165586134822688469454407839054522753162781140442633425473422355821012628286204492486671267114020033671990763396664546413201110072095368838359505591340773401109773417486466302472103517379272871514122503764640758878182903516031663893575929133538789267356053056407394508056359035394626036660090062812251213006611596136377637858450071065490748389686832271633447889595075979530618479153479990406246556602318338346687015510894450111560477766904191726511402081905503677588324561257279866366144181875481129995328349341156164490957515577351556492216552347209432491801991534521928916324144412098949262607680100548799488205313735186895453378990681556596022136995966244059263576072761611570201361164212158874652719968621664108700562883450520668807747429522946049887139097657980534786106067062427064086398056173203837057440412749659504482466591852284577705140517384170122998803778648742531052329203740616623538662710588999268878030505514875396634351398776640278176424949839753398753869467947209895221048184670342708347496090577927571642475281179412763584639314950013129631057371365445865421096764362501480699399878494780667968597998736031355153908476004181779695781277569406745152452338107378215822689935685334080420232735164617478018450220169993962457683346566004945854413630002656155629707827769810747607019189250814302971977442735530289226667560296007576757220473547313363820618608009096517987445410717494691040352346938037243719517627437961551281901784648700832384276612711608835582712904050843116308916399289316532290856048068555642749290336633928868243554670192313789831433844060338719917568437048756769138372498585737460495930902643541590700301282911662315564766560671745337309743806436975017142673410822364869992243831650182774889636888447279196261577755799442278305226994917677251503134328407577808228416868800274103841871595817935021616648246452784168671671867869853285246563915760014741520670667571973523536342258173792103004588665559038616711923443767721947594756283406853891410136181270783514664554990558751889028249771567011385892729581420375331245626458455360534232430421362513230701677856558390195644058554850786869319386952268033062398800694727405592883300461644611995799102721462248998799588078362882002815842933115965329076874497308446945628389664176420175704852444314945931329478052276030662561861922068222391368489939312655041587760385017859582913497665441684332988504725489350956758721614764740703549319176495415115771893817108397416663440158041986763467612965919099355288922600400922190172973394092014518491481513205936795810561622687949975972852922232510477839005078114316236241621407374003251690450726911048796913215236880848295658125218787553001263058644234044050471117424661317679058344525738143635711020022496565102750106390598212496139516283902921497465188660203748941743504967569886905813208531125073422496179993335170082283945977172208560177538371930578976726972710726591975195151964211997218355323942494167872207434555453440031845122713037352513363950222134708659281185809209205691355083054107721329876579464857788942081319241695193064490065067902356589017833859473499330176499096716694114725536142557854221170052877252857388775374672065458142991028130100824772428859930901149866092901553184482148457404672989991500704780003161029816264347236003811875134837586091722526652200333960254682085593786565003535489705257326574542091540545855025509007272301429080024952005082446501743509112402947552120677019625191318047397228405651515365455040739639657601578009366078283757448707462423128243390686362347152945687443159114895237847748151747903396103991275410755285487620748597387034010236604239863098026683831524894186846614229097145427530882351894271706108667070904795291651803569779451387674905349414398874430794005615745937416978913516758026370309730454604697457634187554162518589705540496651361104235563031349550613708639220940413977436828401556049244181497116188748601448314373595853107903841178015763016222728323734034896098760060242473083646300622020696031552460135372197921747257669704156810347289981347919069202412471167386541515531107431421949622714057601850126055645399985004862724061868211019488617943139497339050440963349264186950304001958351687427124329148723752449130895316589091857393755449650914138140892061804522165108174305142002347399534472894798435802153100428136290385903823749053970240032679033280632860708607262553052304402212860213141179093526921018113003256824871712760330535719334708818101962945048017830528881937720033347818506558705115315888753501683413427626311502506781693213719730540672372857329719832832431946580705619822441264512959094328354308823625891498135668817127412361504157086792226367348369456447380578753337799909500857334131355516774125779711832195600909114681034223691786433589987939578925834048143112147580121264806902303560936497437173268040710497871885938703831824272923488164043234460799561416852461129605240153483134924217774361463094829625143444187556884954913376352661956965462123535872760596553539005917586433208116784097968541666707873910230817627950203027501056700908710200529016591368626879621617788947519495525809556646717928748109533508653403574114056423131034919800673182161522314202046881119260608105254061756235491195790926306979292526591719664001454082282751491752697763716696731061176033428155607669641811592601295276937902414779605340093227150190420041065826862862572020544690095365559080198826645285816764695007057054339643625899691888632556457518506924914529662776914885900256497443102491233103478977658521038201106323805370446731124898116928559411767163965450842641888286090884623740013031228972491284919548659270680676150378844716728822946632998492875939372630959598557968743801147865489944244973596159595287964114227409762564262491004222641140384860984216577703188367322995543292187695873302414611430212355153556992492537748829524876328143649090561962126717012992323956672452949062750691928535385370221064058075876055996998398772738941228314082268946845379649114892405317739232417496758082782668151123467435772914208665420801282688194602600477336066067891724165259362753541540063353630437363662576088726707930080797565180776239035568601740598960249399319417667459014755192723878759847513281181549681587097000531488923593654302874624231380957101119495846566714866156082842843922754448221607301358276500914410383725173760764389726021646609193373751439857332640652965985998792194918516470444402394022937116158072438078363808309657543837491756898701592818575170967265580098789473326664116963407559092812490869475670459192778986157486342854425488365697651728388441029832269220690862637166000619864154081399432253740906296458611348234304576524251265789983955624612491551203202449895470052508063093573005529014403823277251520840787258067811743583298077896028035756148524814952483274447315003173815616906758757636075178439549050997485685592216139962247560556043804954125642155412094743592413586384952901323827522471832042476798444617826964330764176201064395085453015176657543033071319459888424173072524649509167762263577761037034330426634111769692302122204918303679139176847526087007504085792870792485770667236498846780551891259582750172890625923708015292277403883493897711930400311025809283406879136950719225890396279455859761854406593212660516120028153442445305065173072076380334485519270089997758087695059225349710757391713809946029911179176668031593940591889590082484282299769904748218895956865413798169606088466838153069478945099544563704778126590245209336315146595889189309281465587434356277257558546163581418250956976352617953795056998061532144352183776957587165717806442271918032381082861460297923962322877457583999855278259652047028769451861901358874179051119782043954360158295395798737112262956429365635781055728305490489398626000841131418160978431017879177902782173867873529365482371922691116107990475742890296205731772576369514228229760605705920465195693016197961630329048186070098819625837746318822134603113024738901256848684423651468706075256836581063119435374682328760954468367200509799911394353051167625869366832015303181293709309995170814718436131671267417260547924450315558672060268479718687601961586775561020377354195657614613936668623019669132529244437407225516605621475245463027866954789942035257568624291075368104600719784516348942407990940570803549937219182696059893131663643238546481263705647589706118447150216822337785059531660120739665565149048290533169372623275491363559650587863024526234615338271844316002287547388849702753642216242098720743526428266685698485960183113598904354253617769927282289131123122397553954031497812155383995848536374776543897714522630622183366943759534316913251822250745608504684094343896042571514857163158918397392908447948708672026760077145408499235233817562262917600014430817751326013131154031204482973308178346055254406346979498579523279154194261212827926963927703511356526723039665876274352085430742546783483869924952967507947068645598034957807708636353073175003344356832819477987111795394656404097896549128547905945467766291688116873907158584961112986412771030266863788045109010948415283849982198508616319782276217519829111379500613150830648594392741982961422561606793881572238841898946596607835733810105576759498665366280134516305168676743861122473762920184709397190205992026403538081083604971706145637889545048067491769161570559834169401096875570668060705172301626457958807939176987087711034203137113082627620341032795580790740339111570983346167453031745201555874859347238554046266419452700627326023262005494338771058784110388669840885376370196476899661485338125176733673119910949269244279232071006774785026406967360834326628582390045200708553454662483700086818029163512255592567651054755245214503850770071410602675891178550993342645673469849735503535739677885951094622131184734322681210083600583795667095465130175189497383487619398337022750393424487464904445895795915132227949367451946455223684531084663492882171931396268141754047964921591729895725079786804242634057756889043899454165281920925876816249437850548380366858475319625051010238820683292401920475340665861855714250810425098482668485321915191855354241442250306211605040163778818395447021440505244732166348470480555376757889056307287754577715459830915668991945446090925251587991460115348205220647788142256764351029791935753617404310340757984287521846755678065995866654614132813093592107025666680184607505898787392924109086598763644412714109957218067298125808574236172713223982383676044093639176718366537448012791858841736124581876507629687543128511413595307492031957913793942196978349258925542611218399608241303557032099378520453835318777787375817122225244806167265589286277971340018621247022464320044220922704670621905294393743011847050951074527763853653572100883979269429186583178052851101048960177450548927128024246271101976602420338819736613386813584586875187952353881102231859801189848376371881604753186552021915635761196012317227923598626820346135944019789133995237232070903727825090392947665102244695810621200301516384875805403112294369138942367691934875596784848005028830673924815823052124081875719698091046069853518280846293078735106118174614482960485404860360135378154570572311164327010451950451619097437897510290884045164943092480132879831067330533051480530023490089033710800769701401151491526253759436634831951181685647010062376346001638508713805582451941387170541854595059179500114445404714672708159866741215728855600792054434486164719704727218017466773967007651456923019189107597172896210853541462340026788011750520791738122411268254107709631369809996277725853044483518201935905606882240466756616721096506440303470836882243000961829218921916090961061279205252887582078898821549574723266452827833640068473753790933566269225850777904928778851179324673656436412886982241593750336215470366154754033664980939270453837443138221261146211602729866080231287040118236169119295551055869417530428733349388384510248404973044654172556786653525606130483218457528655636289255717567120716958634649666693060854287400492268286475425325909215888770256880094837140487737014098851433656286329380204943319155838862998650322691514057855302324071613369809552520921183150022391534431947752784387695604451143351521862472106860471406849670976231565138579275722722937902935669948441393727051204893107094959907155969240924058491728922901190731244345350569734060581616161748665556105443033105680191438727189548163900602612497527180156698897432136151813569274967106745776927016816938872110739295528277070698644040492670111108820907557972117625769192886590527944497459482220584606981193036544440241058004461347310987548327705343543192944409839440315644621267200247894711945304932719194762287549726757702426674328405877747985221793610911328253100545482184402837306323158303061959668597111453970887824654097387432447527382096330448562833069583905205498807376357551174182087467267811084353132825110937123182844163292547066191667020575243169045271041313312238176163964660207711880812222508834602377591429107196381814264449303539625049908530101804014193572009780701192912191446154258471983360922604702353309326092562086108680350144992755696013404939212409927901241899134947829725411485192647255228155225101171693308041201056974697858683203295068250014039281667486280629187835847470519481336835788769116271866475204764235492797938619974247390705330474068255658466305331214088874860607835993020635894473850149157672864141974036942616178828318343702918832090595289924281595317385811898275462785261172848834774338641114132414849799206375665768866238115398585150221596864169705385484727163449910951768911862848414919884014786668919401260650020462398795992605000060347990610272678308293372914785042877119662775173901136690577298343085217067712095663497873372525688772587281448839558195948193110458437157765404352504556086580720041642848357407600306562983017479408248221651528359037176305299300488016947872306220484337311532333522944054247789540247563287516299704492474420537874422559080774751298958213854817384277433922081467734298806111674161559024795135267874229888624249227399184228787755524390522607935527124675706116153185094325297225660664869488625988735962035658111996108316181717927947355982230547296881005334495061536241118174353929142758276629029948735807819114985576622345108126368293376667266725584869802750310215522092184453826301297461024615793099483764192290634699831716539709626341797939024139131832321034567560645474466089572119948162296160857832757963861704850066018500321761280273264504342629049844981995050612412394831166922551904534548132530712508742811261647503451293287280548804818424917018998444514197126618243682422586680748223795272903239190104179293485529628567931973752702581836948085396840625463511253838627850844514457114161336447939015269928620343244950691404252681653882572680679576866312789677612568192830101436289534155598144343612341578656724883188159040641526638369194526939252010788269298978447898091443706493042256280362540739136169042573976035311898556408459387744197978798615762807851575857216632482873935694312247972740767300108846224896928818556005673142312459687613023465955499472112577697961468653508000195532788505453517715893836018129254281018400184849909215833383174183101538529529037073529215164904097782561652038806036393097579449772433005145481077598462918378829013152709374351236555551189925790912942234482731549744902270994148942798909762364655269823692391032523962603983704342116146323020700984173728386519787645630445890288631128821685267123359890247440642139580714926593538526392009978153232677233036449461307320154384698470254710220641383273088330023802341765369727893774321808904781193822787771308016456526994580750298486558958707094413487033678668814476268742203816125561447482792855390759967601292683545298694583113891758465982996698470636410312565506002100946586385039056475990545742651558386446146544508246101035751295091903450611518104075762019730841288259333789676925351615005607604715219683563967058408644636104177951455697016346375730969138911272150534773486014321362837644143181953505753748254480706546259966891788071753539385265969641326379422122159891023914289219630414067245190802616452062271925844990968793349131461025283256159581979079244280962901631047174107068991195634457532526515305622785472092885921097352381161132344005832524184067939666451608525424427214726710297297621294621857710192336714147424293271744654616824686698513152041962779549855652667914254581538020889309945667406092757602992179404385524021059628942919709172159932267779556969020898133674794923863923390718139915852150967210621296313856840962437109148039890411943927227739332902644626425846542982574313105630602654283648429649025864835567236145601391407792368121958384681338174873330021914040706077899840855316561451604748817529622661769308520191285206751808689788985363710484893332185219026439599134307904215294110947944642312856708388555020320769824723125863796909585451965836189774401862159631250612054341682221519971125601562182298578609996530238920969213291975828552521827598699886861788360452325624334568023522444829006067864269223913427684778805666737988354259021750380987689179685001941990167689177154641553070572076679694179449956405385487654421375668113277292763942634412728544075607659308110758823828305088961259311799215364623958414609131064909851136658824509502944588634529539885938432424369347506444531590222163309598576709587777370748250337728219193326232484405900688458078546156590389758810252456162287606999951077426651988327821944035770714282540703698021494488868296197736576477908177916095513471893018961335414296377637518232503120483630653443116298460777247280311156064024760646225075044848089277763149414197428802768199975095968072256990197864919037593559107371705926207436887441790335356764725515256365986217428393037061338585053766668982539535280763547104735230505174666721856420320282706771637771441208374021660102256803649334553993836632142513383678644834668541762957263437345452985253871830085306046983172154469572302142050911006857216597442266087603315609548370842953411158402434863539305184454180284070282848457735389819854233988642092775996971094575398195997009317164151490430904784207988529473635091032639434232698145025498107616778917195118143494475859697254796396429537931080007973139500833734156693043419326797900100120203550841238081240869519997521793248823048676554944448606482096480428482783243988218294848444811909141639844039395575234463404579681440298066308554484454537103558128164578581209622909459153289502600547062289880443434230090803639831219226788693524439286904518814667029954201582821217147787982178041810908265052348798962573654495911083267625787093796798770272754789069370793975607737658768320420223680335105548266720617893304922875093763050082306609170807685984706603721007870565175073990486314130902607921437589388286595296642603795106901753048643373227199580450693275047642103242978245726814218499469691458072754097053013532681779344607134741100723837466000867478240158257062551980002008266437983322468506680619268405134446925943017723219687431251796270552380286922608421649880963550969167404349839624123366406284036046158385519206322310586550428295173363311562830765962065444020632773344612684258208396405584220451864066394244632477490546414738750694319473529288991699188654261723182629816058129516991149644330150474744508697811517525401172462285268322368219097422223180627510132556744217168228115847226666443434476564023458047325970444098194508975730498285806744926240314708150574337794785512806731186208890003204581060757793785744682300423590382097131993823582159036705208660640516071767846065967952150906898456460506140640444071970140007977255445245421692148080855602456898149836381202297762667006995112278331851355625241263243091491603011881168414462992355717262527547554221533357025457392544360128777733704238415444056866105745818898645059202128667664696794514458892539877345272409086211202117629518790622662153081970013670969975987261771682740048852766791419112718923888328219547316804946431950081003548133446373520795647391749004460834889572827557188135250702531408125079899386540833898058170343097555322594678168029039742058412606012452017291202192275165462051081371335455110988870224211249616756387740597814623030600117989120382796275351044612493707420911806153487619190132431712039375235687771426539247131669917148813639625174396138609539143239056525159537426642191066261048156954488180302696808333453536033756186432117212899981371392433548173930081915175097834120400584896178188251507959797180283829956508764352108226801483233512694502507353557928671942495072655340154781942063173368187549375660062302524373040388011013088762070317012622862918003971298291341263636294924956995396927614827369927598060703327204077494815139281573300091773520601688702976873098329131568023325173101236102109551067084674798894603397746540165371591199153735679764943336777884384462908080965001224490046497795983494316392562547058325940846896815985626356925594315045799224675531160274937572452485198350436234853294670660429534607307869904532939017882126092210833045137643649916386139117761728299501538787408468526953627174408747994979480797789732554636769002677789082565402649505239043751766411614538654806435779948555204110973863842349950987494963633852025145872795008553037025818172922535582492450452659393137361050361980039059888802936930531438610265700143903396821032330759294932114385846690892328927185101961130971351824844646748501747660522382022427382576827968942062793033249513218704888313831738282024166660015163049546399581845413695260991105680907579888389324932636217245786906915628450340033435599319925287663319601189693980595774813052067617908548475559142231120333008261142471297860410953997198971364791725549939439517048050268272849130304218316708799453306264315291351265885253171210016156517570222799605991966758063065848592375393916597662796657204468524984858476614840267409615843321142996151350949555900465044815261482261647956682982655783256350671503551273341917724571054402157006999802158669109664517302998180619294790391775876796705286776359360736147144454606528618932403891891082789516649153244547409626265083492362160384052105646253612709247123775316834903390786537646036839973752808335454665556973641048507324186318906839257898831416676580662238867077767645273675664152998795232388500922759700398455603580898967504285305657615390206191746041376815152098991488591249851920589961806009220067456147019481248432188602036100156090358583343227874999704670646067480816572828666340921986833768254498133439179690655903380731282536867547315364237703572829031737017231483728098939662281188434967743039488755851739316964130445266480548954160022991150351429439667146579975770783963305448086896539801194530463678200382334108962172480124425740527656618047587331341167490766772244608692739221812903513083295644467037306247763753351674918801378472480550120945969777894169302556876598099948770907333703359083812881547792067119997694923026423030113733141827455305206687484409578576427026874804431560981276400481877080504024880532240434691323280071362665989050910805416575335756032495515599949856998712908523200228980496938369741005364956235636687879713190425188357420132942023635140085078666097280323637730727534153981705090759352554530320255963638164009807559946108706634621048182846083035743349751606265327583433161515262858394206779520293363741628842473892193395170188199863450553586290544410742345439781651609394559102378585387121917776869799336064798791031713914481060768617226075310880984714586349942112651079928524793220147909519604666814703769728089357722135236593829560377446036276710009134921901705001106619493373711999380247756772100413326717886905843268813184484674743295656484597649430955500526495750685284956769295975044816595494744794487609754286637160793664590748441533893830032829893653801116664595835489931409865666010111798192962891023286172898338361666393006281067185406589036536528070118203232168118643689956014511782367403307682728427897997099102011711265550190569663889730653946226757734505704323505931405821347570162404808345587215635655847599001874515400218758944002278527194578556858420189729461574228749265472767406460326565602922156852322929385372796197731954291210667374697962247959172021165285173134271892652548467469954590684458377814908085035452575471232321371264297125686515171771258172333446811269195930170800836463218058733588598136756809862277046236634414635124017410353126562744182324823943327398008623270299478155774616080691949570294276460784550963292028020381087821463385225380700012384842773107065616322836495355103995353820546554194748746898210932568533567282186903098635579257247634162922753238945378780610139655059731201761448780544925014267071982847905949342533762445149220864411234805532252470101664817032278686855527575511845825567629835767459563574552209277365110772609435562519517981456944605377811053842380634070065507412323724311823206850409524587884563036403556444563602287104105797537812815942753062098333967100277201344145177893671540814302415155752444281055194721053386077971605564027839473587401983599440013816369376474241096775569251852687190095125071564268737182957328995074744676443677868787935453909454795965843610501183209620931752659802717629771608024395064804881852924253042692244459574587069779981968170799041708452839040384568300169942846708098753045276564801219945150174447936063873791998314312494445366872671532854703503706021795555734828497091663689561279345252314886929125218784217754534099882436606611773997036038130288971852714383010654669975007414881972478151462664098729320160462162069313419802698449708983605511773345400928384864993097167532237116349653437866552253234721576909720034182575363425350475283711886749033262092048072428583967899870519067515194512420976146488649852157366996671313265785722633973663858720570455948547548091160200610173391262425219929284820728482206905759553955714392653018220546773860161077604573556058318377492638856861504538863190211654656255575862147587317844644415151490722015348139492177176083591652763132302600432222931897668087778113432685881696388655930162277007808282127151341966345830635564075200798630138065139546654989671422818021674557173945869318273282171116025868086060654161794509290241290555644659055338783593315630582982226543280040117583980939968953534112385588997122342074480050586215834207346565744004613808690813255154637400737996246129559099242758605138007783233784258521399989870682446574201035218011831892964387548610705058638270969480605639451626928888957161459735690681518914996942370908450311562693605787839777484001104059312999545948461282240156563456598256427261767041895405160924836364530393744536785219644449920314297401135175920076077056801984970407291739794030244371590007249556769437564781807545301918205366873772492562864250057693785100534427745582574922630694119803171277933020565031718885476175035917904092708054401928022040542290897178490653968747154244574719837707370704777219462552797320590586923602895039850132294945035023112428733237287567341547180553547167227986018876568784431536575402845127889104308190804475617791711793520410897237961326371515099774464727150938651357841348221307166936637094600151231467385091183082326763425610219176754497878115134980111833536583387992705513138665772895729891925652784631598494491017805524873830953936160286728992998598560238081356650619662096798527823808340929206519764170855137444583923256359642986913637230552674703631967002873669073536168261902243919877526635285225102590993934459061102970602397669416165029553084303354431102093054536680535733143473751375025618745503938490827880971450529312322246594266401002472381287333114551706375304952013207348049011877520374873678810841477785946442057139360270027094068849509336859523344001359691150218800752872322987356083990400838530296118426107490873282240804035526699810598156899518392050482505559417719414560299670306961378894510116026740429166590702983613844011434830408817922858844553895935822358801131012714666271009117495045670939091705793217810941303177088219272465321988509498558073704089330827499406682747658936398638336179595014734078366849404593648900190017828408142348857214104269313913884830278354414567171541843019029761287492833299793796111735161696613728411739301623699390675817665153146858396076537519570649348287338158488270472383011044804205541536397733544439894014534496099782578529821106764682070467976096077923692208011466388016709059745080762595363942352648514293874740695307159661095233861596608086069954197662593902219144227488467777153492051857233535560655931293811153102537473393029311625275823287655509665710681683478786599257700378723980247936955671705013511388525206715843534606994679478705868455665379868635372843851257336158794415859713651853740059667828830383116578739990410050223490278258334781082488105607467536521429007497488287154853467930674440825616544666275475642104603411077317331136655609478217711696183472706082922454069111576816686992437689158119172428693204534179515758958129411575551548223504838759535357119359201132071819272652939245262584374902334866679106705489161039912670348916920815767854487932392490284694874748912955527482876958464848029141894100391557623041270634077596826475623012181326737389832454349821204587068750807799135053677400274741763305546743329812121489790029340663828528252951601334306659012673835897249049396820253716500114724767512469510058347411799874301198808670634689177244392113301684613047993664431085800246008383973863301914762709705474209098205812790926833533028467104627219676962271893920848927310072202311565760757511542061961974001091214508445102652558109176927254588919537021493240477229679976037154694947279134732106924467057156592902131423096537995806411328253736642225642659600652315203406175028761301758694052793278817750742882847743061195919851854927432840698244337285117801217479368271623982002438287932829214811931007187932419436375378294272941984995845290697077448120791006346539899416870527209614745446917589470743626696825274082143797374461271461761935378071735717049556011907360660182693970413807041118695284908850774593216586448691269678707723406034793660108156490472794991008273944634822324978140975804298120716882765207735536864166757387765826234245801505366920669629198780726613538940147442063615948906545253540454024167137992901635798548857229919272609435651603056196511985708773994208012550199674087041355584883411366893900277847795841593904316109300986203858030945254306376663617287679206671681365361857495349278676161088427299597641688422369268821093575949098890130486299748092745023998708549408103122300863203951029738315291778017899887749765075720697383607105427237174783560889681721978093112035412739505103903498380963615185635782806498918845008798590307532360917884428693263484981754696762393691855821406166565694833267435095182401994525346416141288667936290754355149473084612268117439356027424428870916922602878313467181357210387044652708556322223092162699875219645304802409487803224304193317515367055726421945635320895986062139183210553475246124231010100400098956361510348547794312504655799811164446421620989238510754112506949952761383913826150138779407086888993408433212561879571133942541848646052707870861619633104459978041490163565383148331650480460120534726395665012983780775823198367158105660529058586829191266374307127476535114759403373260061115637387824830385741924298443531831719222877900525299886481556865432262859628120812981015387846451130512903954121175700609565567462804077671102805093812254938110395191103606733794216038843528462297436680650080307842826825510534858804670538168324009756399628958892937321458605153819672764505027277308383508933335953559333731320902344519267058161338840854920329515860505845177726229661421195749065648951429314187850709238050277762868130430337388061276856341659112308309757981042705435615746601724421444452621717110404620302873788011359539619463262207113885844417230222230277989331900865496937002463893537812093194807108987457392342292651121927121502605582329126465686967456516006407659764907763225788520770331175881484085747629512201441458513697551386080319943732907807203538830663590346828058617375084964599573732635528194295831049382791386643142870337625001091498424346027509959389119158111767104969101055267878041663657263141990214499743293705647966676195715803998088914075572362992007303280836181439803271719849484728712049698824657259644741866569749681847581298852900166218494891228269423771269592491668082504665146867778851275608111258282583278236999239945357865257790038600410064971925747327347560714918292917567181166626236598871913813043634529260330581295505531904848893449345832307112805437801604090027212539344749143447669065293596842649484976463883935296124268775191853244156313203857598559911682861294965504606954928531995317915242779952973812840682273802729583555048490525250106916961248949573674061568128878654104339462673474634752735527963347546869487427186378184670078606508003805043926824655024140539263675068283663858800996358391264738114263485494389696493212893508266430426876832355841138175158213303397707973703609107807866785838440690362264275338145327764614286142534347158297672845294355728693847826680863875674326525206919908853885885040436726538527044586411668451735184106422222904656390787390139041292203735347191800845829239831001625358324303563251611941406996802142999781152919960730218931498331488983781124972383995300153173634628548404471621850522865605458268855403792755616953844506802873316491761188251070012167902133041208073545296157186187895183577765733470197854242970033201873155873494622114393454925253241817864918963621083115448126389388334550339160091097806411537117329632222018227436616212086660793561431134940119459014379021858300727381088641891930419414785045259939377626316877696440650935167865852256878284055077579584483957099646494370973656186159509609416066739910315787687506893607004018748647611869870632045917169333650780790218203018250101509783316767230102533204579744136519751315368734138960357673113387142758613919911385259156606693014888585155235210577968027567334126495974533646214330401798227355825711093403673186542576499719790387918040339018455383137803649063959289690483108728134667690094925456684176771007467570641525857601638707711946915371722523574805615679543517959305978075028984780712979923162436344780573964848389568782579395745140096500548402651224292151042270852676864401456597580567144377173776001314866841135116663304107610159323681592317837379937158876193122742126086186943854420770595188767363359543989644346187234089038262833257520575626173040652731433502304772269764937561678360888882574710266038736503347156845101724918101488538581466417137221794267710844487001258952090861001072755948121158864129092904900095294871292938968256146150869214936018259558766956415009056323203012195565143847106222354211660051814378445181420794183845966679487434411664122404032931266175168187934610732997121245345424488455651854763404675970188433735295247425613909885267439362714676530498341510361614703856251985652931400115835088229745868288430001151631881770763809218861905023823183519019141552489498405191680528643033851392453476401011598017610687047071829644449229348181327563868933057295828237645380250253674736227102370173857736856317994933593959546128586706488408130115785197373586054260515348546241115770375671113810426034396805048525129524039795221830104624497000819933512204130784818343373496834591017079566910230048758246241831129116155835876396224146083408404533639851196807092837347344786580295667028251065431371293169616663227778849976008180954015279546572903859295958248620906877182900026943323086593866951191332214760661287159374164516840839248711441876362900255249446119581505709748753650511205396559615634207793773473819367013064032706736006154680397737302499162702003760237972955821963621587208093863378300820451203351406829000821136759724455664556983738241144974211344817697599486431348540934389287282545021946581953473722046594133261293570249483751079182651820107388639439055124826617248926301953140230199881773092801133131257149239780916753773662292204891031270299457300786134211387499275953266687770177364538369580715574718672127318319000055250597416597062927115311061507212955604228338349101951231087244508803067613946438678729008554391630780496037147044869672729199213638532428285611473227467765256184635038985518794789006997813778848497301980583516197167562391885372595823097403263557333664347694710826086908281895839736052327352772489491406965426893394530451299738871351162713768273604572803681208595511160995150622413357452515650055497555946656752571025700853729812973443122069570432443056665835263420523995306153102112481811446640238632237052959019328118517865976692925389197154801005773629090607579405951668164341091598707155102990644796771535150374260425906853945876706284054083874820762426236099389511440868465432078634382114081657654414424309488929410224886973170145092611318283044325311557589367191621889363282017552814966878188195975263598235538013829259537705383638884731517636462393094712354549790526083318680241730705068371884415062509063389239634130963347581715782891641295970388930936838194876727992537136235631628276745688750897424463635882667711612241292100158963150093973237211957261019587229949881779657190182651819023776995267371483309644326171845484757653869155485897620504351934745968657235180186374870165656423806216510968340087703519921310237748361827615184684611762435435964830210485865347300460279822259925672142448629821963126540238259828648698827001671380425229515806387590248407551233205298917683968588672667912339629431571852360408438884732730055285730539770048222659849454442704778077413405457406798471325680923575378967778511382635333022310019380606928013873914240232974621740217574707693711422690516393430065237960289798609804962251384227433402378427424880243400869732105260427833071323497025960600507751236575684662022756377120965355626009793322700502552609261387991294212873470297626667357842257419635194472942210880481752026176863652027576025900484985907551358997157294398665546850289303028799247908070250652569911453333669151846605181899361314800738682378894725751567055621435296943554307026935429721009600901358601012394411248446423187730856410639466292547887911154262715100774512905284822563025922099513478452846102183202330134264225838831274128283760602248799803881748603254253276883077028213954578185915892806174907709360911644975831634099998995634158904801371096619773331307689648066459782846578932524041954661218270381579738980440503600694566353635326775139812701189657804227234399034589936892265189942250723825386808068384769093552507781529012556983988261873494997520070173976923705984918054397233516681291260338623163140725046081704334260622909716590262159995835314577335648470696225567436440771548961366557685668732676087591526585396801873567957136405265669405216953276572596173355102572216053399024843820233729761129728049143240334005269758125300783120227779913129289025228789012391549599613814028932944747781233827555490296154157009625637323616821761501509850557057768965428945598463424470402189012924087290781753572508537867134663605642718647684973329720662488058506571701871832785789647228808835887727550499658776980225528491390698004970725149998133045219306533533431940814773796146917503376437346787718621904291988932194523501368576491278336209043411226838037806637915789971708342566708274783417005681683264509957405609246118454252624093834444763212782154342703451567152177349294376832506818228767506873702513002429483892275759275184167951877405661896043934348388698448904262366957430666456572241804104861141104643193343592212782882471184400167695265193416811482070012022195543580324715160318068621795493671420961739904573401738402973735668497598381122058028488902382226471643322769429052203126557006967720954464018621075438843864560432845917138935469045287192784857037279078784845696066393274151737834857334592001128305255077512778556519839473830804783425277356804583137337874348430357886586721154609205122229153099088082255293798686739115451710690831336169675372358840310834308118984242021208966077598227980962074259326750236437145821209470208875879810023732838718983349495609959010629491038191884108219395772967966729871306017843181270113286448779953064484317303914723580345520543449075378209185526834577197585225460274226287027478412671611580347526599406910049082059146124529933514147360123589944237449281735682982708887350105127824770438016791829748501006677368766644574211420264551996292400276127672123418026766595154547121388829738672191246417796841195331125838300866574057490982899632617036943622941122882890420525778733035451027582291054992556437455092222498491108019739047924699954798281113948824487263108281984838325134854539282537389659189444822956755974797696806205356197619752826325000259581991455932057741793573816586872662079927479406543638125387354417577270147281157114735050802049868680954568890094361774055228769676723683833762873538777490851749993491106108722810474410567625350615680546930956350963980878644851178473120390244449611946185328779285138039813806147600005864413175093113314176642387220932759708028052599033364032780580122779686524328811407657894676947199317308036788814410507274297416296469115943867689478607180932678966902043326610823786077962177542246765314986978936949626196082818710560324283462382636758721937409983578591933394171738163028627789672883412940436401048128608693729691091513646450076394084935046033262753453447247795001060626931996615405083532062493437887214245138665926044402401234562150203905057505742298893905739261929631849953869097897935872290156019771579686125864512243981147874125176856969406614122291641552248081710334504722824556511915372354827578644054767974183260408654798277752430404235188715168238196917517699684698937493225829255424057214541901104848055330201812801691624383208983895657981401644463014446591976122318535559008113932383205333299088199283525415932690806452787456098979953696986893339153608825307742451543077883933202576465988192033714032812060038181901408223602872572814791373447942421644977767305907549182133248085968379561398421059123257231860104499607226967645013952753619332950137027843899203441406166532670129833436412003420725715387366351047463803594600028711588377100162993117369201378433512192877375392047779052072834067723465440456150394252017247386832413718285031909933421747169222217125191008426986298300233010932054254506304037950680204663613037690854196710553300601683610949946582880506273077993340987941858743957918858056394603467369430513949160516970318855199013501798252865778314422021729281651817058639880269730461845085588472030116527451664989014884315232710798167670059503602497924829936864531090169842750874072594038020587109315970589501904192693558520331388712007695744677059351832478920452840330373422692248685459036749968109214823571167866626601017655671257433041604816831847159848374472932687337821515434118712961556089785895050391590957330783340263448451812202150227346595263504437912401914593354755634397115766939525016130983964035069111245019224373136111930863181962232028638844385784779901896008229645772103925606085745345147325298623770417328159498619792290571848625065544980768347417092295904666241808950002220992454821194362787445617535393059892686608560696003382059007692043694342056392056083588543522705607793932723779764644132744729816756282094703503810901825918588173480575046698384679676268869219078357244064123293126942758112900106699073964196304936673702381220857635668379282142224953209897507223975060354706299974268791877277952396691353816447777225673275260313981045894575323346695167440956386092841238366752575275606610728468585016505622357538393415311845856560680391011146886364429731653376201974332190059177091785378044432681289708568510897649550078137214698106387042582177158970717070788157264148942718266270728598658017958906875206106933752313568671076751329002750393257535206622675745800209217462418364548529871810211016686925739828099701748546881310761723183530564704998773465157119534374544133414470169553169828296880144400211034344094987037247060936400951505676741102969103253506482359938938899528015585156006949685409994600459580733646813145721900205346905924176213579809984069085363760617384461881255935526008320089204898252246481003676879546482775168922145094577152974695875655277293972989458617922911315413562584800181160366424300906659482184792736684009769097170219660490350563567323490223566173612093361090456327554966709964202115512795779253494421973159727542908095275430631689386850763201656920625237099720417299783041076504446552862527496593345504996717244753018260040413764543188214988797395844349522671718235310924051484470478340467866321286632579659815103879427242690850013396210226525020460428615036756195545203040934306940540604482383634644220484228985040535857550799657943622826959785347356972431926882290373696510137418895140488693501671984041872595739585079211905042452051185088424711425455594865570718643117439274969868036657680896872489724766609215044873555595441289844705385242417811730743194433946250363727512743885382821091611578448288454417532080309962630084507479601337137057259895277770857904361812512462069143960160465474073147667114358830314310836556795525646698768016395784456089171523824694145779658930849875045287167428484270958698403838474556268883965935755024564735047895643211375027270847263632572318071110617762632012679848749213605642915512071099880076696154894090761934479351723948779049143135073686181206541169903859195011299237494364158452932483424242747251707552199247306329248060049589977191749147180919249442544631250170482288404081903135990033662433402925815964112080864090388067585188168423724646489327300547416277962381726416972338312076010685735560131263800757103626344470745381397071521545020418476553220728270845321559284051875706295727893189534116371653680104222119883876581671267307940284783330499834741708408195653348274923204430271619463489928334558134218217932914689732140623779190430674456792324470592711301373106941809323840730327678272003369761018044880243591688066041858319395729969597551655690930950962737002276527980231778432934034923583545278392686255537546469823894789563923080532086984716061754831226746880230426470742631864748001493391190943511636856802217406008235480332043351839741074780317820125267556247766481229268114416506668845148888575725730134514274293670345194396221565721555381839235281262400920130210501663056603329915963561191012682268145072333886304218934073224379332896644220971625870387687329596598539633683286645319626592851659579415434869523305577284346329745546998266914743578464709670163057301583623579939442826252996520608688912784040207613985498253641455389585874319957398357668751235159471767403009022725784389618268267623660865157497994228583498706660680323764407486640309968495518940088863809558843688521299905511236393429534969307258033691701891312002421606702310880960392795806674304759982172021829694436178512501353197396453947596585047934603597076832867458031391877081716152735673244062013688030459738481200246383694709359511225161024877571671032857675842263730508223621460924627260278914634483446121635328797362183969691062747588880372775335278591858284766132684579328956645124760826055695463997948108540528219660025684157572008796670278312506863505287674305019542582067613772372891925487635456277751794894193593722049798153614011948818915788384412312667129001871857917142772237239328410646311517997829671381240271665383301793531080953769867638840656027961538481184598551105650165360203361284210184447189188441985936039132972516414578529500944436838516994545512914548602375382530234421543868823507192678633973639189181295806702027192604974364804599158290224918762348261742145359698511150958246382592861708749390420315966336454364148441881252523201318119421481490890971165129993772341416919567768259279463778887675878591027462072072281045273293723293915801001961693050588120635989068937538068915665769054551945940651691333692335354392669603230327884779274745116535281279322578655330217658295242627018115702955027960232587408845939459914221314544372711160395425017736998363255415246489997869659536054304585172526383576014633130657110236074688932220662941486752209166191009335267519252870108723890358928595216536969163017090362623600530255249604285946965950370884159365432264458542157063358990077736994123676206378777764558068410192693217491239926853038751684666141123999252695445055581569640130811447301418460483793594078717238376258024113065190615385629191153493567238583793493517935500486397203418458838130144300883077784891446230836867569566696481276293119838947579642659960427625490753185647676625875437261188686704300609816899765500515734088558826406685840946985690130119389192028197313959413502156412227019661118467660875891699731748562863275378914511055754480273141823357660091830957605347142633590021244679810193013575358388085032580218264723592019663204884173703014740447915936791350119088207330888113679634911061777002401534800063309961309101845679040882828852125831094949226433042672998249370800046296164926263871394681472361878421751213654111533586310758310647706305386131002402179188876133280325069605920523990682256725352347084548871781409981156171107968195618871279511153300608502114503217120582853176642674692967276297991749898103026089972177667081698277112408317505905611751771259797008452029110079500666373108782121713016992141039582291069262244883154344652218502243135850630720173960678229832704802846853260190181055353301700582642074294338928462274315787287575724753024188587901446546027471741591049319985496742675367391169146513914683032208172290451820070230546702153859942534457940529225815101816713442602678478201062464802063887336874144410255632045709158816006356585708687155722358120657302725322062826635919539998839237590044264957237260591625926492440219785171989965891913870313774450117027975665140039197927429560558877064221180779890817487480405293653786936027282822571125131623288221587380020098211593755842533528000501057551015741311383324434856702127314610234445061570146669647301588193015699082838684902011845254516607764323511667110382859269182969922452205490294869402462522450944883971511243100551733756856645303098559089417511489306327473739427263027869388326584016315973638649819301675786403710542223606622231630551711538781018988033594753460264046872340410791627520410838942699674450316146653499875553571899830652998171956513925913185166419715642789022995032550148179624693576470689782347153368777441609758322508180662209655570621061849753293430182511624330105393360445806031316934687380765395204831859374105057652612019331670493517615941009121851753492900787409625424165403891301351114540644106162350545187609921636927714656638559726034811827337118629204126409134069209771931840716629754802010884025381886044824337011027999444221769939401731953387376413585773022551676991355096444906732472439309040938118239504415769629183933786271701301330526432483925476208771272096519019858685728766980110485188867951690607661909787209944227388968946035691432417554732283644231098450399161207384096195510299385262018679108687206775068977025704932201212141942351689113697127254871548623228489085460608777163045511274845571169535501268118152258044637729585884674625739835308914875250401009189850587411256806004506405235157594575787846745041547076123340826393065469578266505477156670091816575761663011786622740586667350522094239472489204270298836851114430606121198998621551646753981386285891670103181009846492157536767258233724390821309146770457249380405569852974690368077167551476175160918345901190776665164580487231091903411615145550513052263009058695426468831511327153247300632976904533846585504749292490250414610390514132890203523735962916506751616727381545487099171554327236176435540177945098785750857920914738827285036735115511015913471806331885248958989275617916593356911834552294965573952941070289280885351589394934262417044202803707447151295207698897516712790985291302107713697964325618744760593056866396167209630537542697977603534819631358636017670727350980633088488580323390763148178348722541803507135770929408370716862605867503518649355688328215185815853638919104944142279240764353997119354626727356573384317270885703035533645626721392358614040509048633577664749387509991996985553071034188605028718661540632221667852363931359740622780232763043685564746416215459092720237808908052787289597409748381546214110135292178020457114975102060477336228069619981459510528428086712833598449647237750738430861776262877357975542077883159664426111474423349192966139076896827002628523598221735354676276501865119291900776204253573380572855365032325106935834322700102713311743209868920180205949088141427680973119988756746815155361754133795855207366556728501151926635554705109389936799861986161310356316528914921836256644417960350004872207934192623913573808638930812019078572927234118782511575343709151347439946353008108244045731611121919149688081708884483339232720560589523863905270761316815199909113079069953984112495601937402488206334827152912191450492601686827619613660296807863757429969179811835273770765897898151287394305376618149309969634361293429240340734757932417711441587811496174552047124006764897867502213518928140465420197485908092684284699171213790079892773449673902609526630018295678709233932504961794721258882679398402319384917630943088923506397751631296518889108303203047318634088453325009939547010605845608657797962907504090173403500833259159000288968866708763349777442059670753844238625823727362487392403497767032355200958129750818857786940349300269863200598002607976707005378728276428030764456070712179359433186596868761574712573420303805695788937882226854508707440613699664603367984138749464585041209398279083281207876100834081786324099210600107252875218059561731596728427377630668260927130157958605989500835429913324017053230451414162251496460256403934281637667316327219345585271971611364373583127513177382679661087835925202162204054402840168823532637765090992375724924993223059096734518084648334317217996419120214085961191326788310246896329691770808527752887277046313906661274886946224142758099545088885587214344715752246702529367860674334802313156950762780048699455462793697187717777279931492610512388396689131201781486391068578738182884991590667439639118152914026242219485507829979016593308663160261958618457838733502498057152835630874795320823733150004371650022835444621570283383553444014691537054572902680617362434210632137719533693460330961324518239479431054431952600805768282123847739397232254614645296468576722704027242460358632251585544333405017159936946110862748388962313524883311208742342527097764757810061948673036526377405280362981963322230228525386978220681649161031089195593120583493275444051857598770035570133647845712116867227007845780140699272860320551640647554560491245349652745871558975221409153195301381319769552414839737684758820426996166477797870572981841510995813781987865119645493123520231514302014597837927101287370125542805289057908244807753020911608738866279615084271920148230364013431769224249492631715829569828837456022271832983392558792075067594657002021587950445389239033424383057268380094255994298482859025659838560571394065997359053073610720555080808383120569572476157475195174708952671741994040750880012476551519619839999723070681119345206653970246039509005393427288459594541606066085657786721029324538614973725759451412033100231696191525777958287886500925425569359622819522084793877619123448880262884010444642713146505824904210806632197820114289584809512747954537813811725281240036290515462865065197870236906315315399973251332264720730624223798900102362141473103058767247931156311336253441513841290323263896533645955684330727952913326560673212836404266000909948360274695612098982695070351417222993169292071017959212452367409568309277051733549503139936539755612919533980189409708838322597654269051286615006113512236570479653929067073284912043000013102800312157950022369060008312365166761323137832186567680489802579457441990448063398522219565745076168150991303151481623272411886401363714336718195458468976865255579326900094434080939535627497694878026485308520924712493162574155129399396384811595065756965785548745313220403489269789320322784644559389620002971217868288546711317616841555071930491796277490519958562261056944887977206130505143954869181063143631148967381927245725561050478090745684797166401799528118227673952396052818569550787910985090369790153839177959605317039124642883133266288546059227182705643605188026491854200016614772657963708106049220205859067133482858349905516732078869806477739537280176678744451114282053075502652996699754233882772947976948654916559256893114815409742419442977001389946166043205650956625036890224544073341241594687628103777679241536110868264755682569412075905814438608404862253515461092255373701387853389453405193912510762196181605959900226512747508035677246343801852450502897529898110460612513534464921720980550544815322254143374339158061711890551852922170662238975975629760038023446923725048061796599540533488300111060322779126951380306180364351901814841353934060707251851344044434671545792117539417514006346397884828341873834879702327864501161919384033436363676352662550509836551288634315600182748517556407545357692980751652138727539417235883194103820815004310238676714258128951471090598583504315360578256249389474184192915416290797297495070503588618624269095299251396542956981973024765015262645315005778074990961207236631996218877235053285054226120511637425701002041569135577179802177841270039437691278636886687300262577312719776720524231998970501579905424837198067980355352453603673687722234627995778250067760657726127493507828800946788624545299075238536157812477530571655478653605412334694261873653491298637274330444858705974714659990219977806850137163484505787144740821995987165194422235814686083919323932200032720640197990642438694424850989324503720684692477391806063547779995132477202685726095460414527169298548390471591807149317018105531278788731201407296905792105326904393131898093419304468017102231385211767435461934829676858017929636771800619492576505278789906724944546687653175952553750198645813980811718479911221966914964071224819067491784808303698080028567426917734004569130310953521561397834555778816928136394971077868862295661062040395772977038295941012597669510908872591943214195263685659471650915191535624137527320006078289262156948038532324757925114486508201633928869906079751122007491563062041125784746875917451278910590278469943284143714748173625597623161999031830612191302103517940812162245067159738169985745114221178932929457250322569381848661194878568824321227148392824621440188526578131149877871161641312853795384315131495442624869519907602605508197914837500017138516586324195876310835275104788933767085204955570386035200102386154054523765493925035332790974364323361284761182874169736229989678005096728127817782338545328709329864389830111439528552688286272813185855763911798521607470810036080696067742058428899593383937560046135820406646732032292908813869615485093175235647429687304373847770870917820807158614840439688069539048380249056895008244555835942530288327137159385982878590272561626938572070876197986369770607452562459146781197930177321338311971420033164440438607789810242564211385731622124272270870878141797852995635356710929603232297384289591320773905302173300479628955029382283642303769757365069667631967747971448127428399732794873060525861963214466847352830060803920265487349935943663375472708860254063896167517090538878555212215984578923343146927243027905325125421584266877014895941594803561721330152169872393118305081044050900850044580589729752916412310923737585550859648700688308205561709521680497470586707209199836068953361543639157730657307411046386335116011323009713099615045568762588780136782900941540049128130727522276021057141403542643153972565249849312434388497750281926146802380492181777950567962441269297879354402898053464979874499004362893256555924732724586603024130474112145566246063467543492365682177368522992688723400932483121098449269141185340899837842566281219105630839472122497363003915112814592248078002642028320347382571922928671408538381729602277456021886574379530805882132928258649982332930631062534796030850856388228380681038691817580238831262508934714135776205620114275838053887898690628841037427088411435285387679764327036212178524995315285823129817571687259154317786653472385846276339122767726508257229090850232735101411137581063819922370025386003778924284521780754650919184291408135210613115893587595043776840327524088287129879607791447622634485327369501241902810800034427135235671912559063800500724358371817230359132617979201687611912500444184892889903233109602293990153007199024367176911685028577310268922368724782115094976863101320106465723814687490084199842206806605992861270393404919630809791914743977578659127206600867103948205178378784748482577685229845246425985260606687795075453948858288025425296939613709676427224412371831074666848048915218851480780999220009985408699706801164765301376497011777252348174962900552399440548125570778580098998887191858638729389088112803404818734351795438912047214116114936836198517678337776742056771217833643206235937541905769000454196888955508120736780675723444139085661133219109896482676861076157129124117587250185544516058492852222616326027770556853947494192088824213328802884351420362474919485837688093678505579237104087294039215817435555970147166901735043200005886618152207303153624923764901506587538976391696857661328892999674717309579917234804243958903502738260416796528003645508153140900638050644567570081315206947952298654546158701039362016312464058890173190198289392445735754792402830443845977225316229437504382811826186586411646767585786319017111041092244092484785355168851583198521271692247838319105590538617204509588569074140046896433225550632327406794601856070033866059537301769696962294590796021606129352718730128370036959074544204122273617924967828420638323624040249359222807622788495074122433846445156646306828959846583927893911691517162740528136781663518983810181945431357541852557495884104401097825457066251036755623155645282041141859530879198041557125851938742943819025565590434763972391740611116042326780634197551274152440674663652981829784524334846722786504810351959020230635477942766418765344644341087984403079840670329797774688443969178816141790997728205113983447548171964131627223888153197142845890179510381490527392741028967154741706499244868444017332458306628177680133055764676239454378060937530586197541209691897226572374880305401991641897016452320590625901010943609402678285363384413610608188824544498100639524204920623910571560198891610191513291136930015343190983658933422309286910512897439242430211134411647216104019327702707685802497148681943775421011023855527561977035734325153499938963174171479120987110581329257586538452890105531038071931544793703673426269836888180628162867908817414758036814792862245362544174767309742438395438628153812747522485637521190461280897566218334213678700918020490510910491294603027314007080395320388885461576419211581846932238306331378361640524899729854401704481742036911120974590654986233476282919609252935744449573432723367542705638695857741433618892502425925579704887672535143458096220335890203953446768833726334158298942213575161842659802458275831852974419135411559335871539448108712818112602359668243454210046231394788694680495599215479970366711096026920289716049619649015361383815264132816908857320021340978052356314138801287408679388417691743828760176348565061317245154124328699114683569882554315489181415720422892841892557662010501203159692479893573893466408250202796090839252760295521115152033719174583835721334233418089765981574745401119991728324278882473446847154737879552036075736399650520075313959877697554860720432052731494367064961892317097475574215345400653018001925166026599694152434994864844326578219878900548755423579479996264527716040134584352071535313367007952238376789224998882239668490725796783070127785461120152322523160901196091136906451520102421038535469139156297201556418182726596852683913654535016963936390892300166297146169426886259746726335318321341198748390437580963514126926140341282525398574984488945919023912950187941124961485085057339717831978473008337158418269720215925530011938519179308670919116647439928513446150003047472583397964023351512763641394439486187727846808843319339966694179552480766997871966816029359784594492299234382104660536295388923959660932199768618466513311215361064139499496802598297267347740027408301258072969896995064888394756896688862414377019937604684625216181055557124741368141537016530544320907949370186281609105991349305985380565845220635886427520556344568114317200563660059674966568930960563282491643483438034182494409699425743048652530800978019421786684164317967344159739947996631161768022653936885451875807680129444537262477369269647183784460236469213057434843104731512788262733258896882506986493623891929721574555162368989458488552166153304508797626353825164100386070963195347841426714921035958918589806198575088384356122560994801409493782609605262706029317204870474744430037135226875907108098577111366634615853295531614595066923366094248087588838409644062542326184703334252880892995476391144561723581855345978172712390082396986775763744933926420577492251611556757220817763356108252763990767468155619787557219538027436874225069918882523327849018188214314991374867880598235932211240895635318248755980925689148621996211838497745947749081473190492255640948828228389601247883445393564017679460173025065428363721648441423314474447230366576512284088624327619708682651673290706414231622326885435919859359681082250034213911847714694486030709328255772021906199179744466197870957032903947095687742427259359315825510775176436563083662795992039911285345801951992094079162125354062426066650804794805978809962515371054692959721824703248900735823802518131422117995780654505304723430063809681319352709045742935279557442225358215938928245498055214815726982926634858973821319256104634960268389762075622304373483175474828700759137908000437923247083903645345993934030271344820352161960560164864100920975982027100728272424955310606419764065098248729964626129920064200837116590252293771576969347326115442369052805667880223555424201006178185566577439211525301424116050931200086064225427973205608599683266473134587321166418522588794443423076335415114678390904648834682524438304620754844144195354705241019848029113099548864023546451096453280325356134456168494046640015170461930885377616083530674283634962720848063496680663054250636508099619305664391286188890354726727912026061007689626850095531573976723592623226159587787223658320683790943261673006525538828214772531199665933514613264875263281148239937891441590150191878134902573525258926269023831835416864573081042135415529397004997421416057596589118866054087664396979166928531043694865128703016963600924769598199960099278181735604529716597284553108202267169947823840755439875112363510560338754139317308723235358368215853031387448832427603799860826313762289847548137555156411555350815596756843169889809535063246940458564369326348271020948872174218151560946288009826958750339033189540147933003400903033971916423384414650522911731754141016583262591128933691032138580840222256264272569905037075650173651569411215272769579207035387932220019196646029136186360990724701163423422485425060375373233705954609681691449126356699235051740490187066125709266027144054655247361854475050471849091587359163431732462796944920528042441341465448864447725386301023520003399807104021868595605916908052573084733309006928999442930098124222788674765327282752835442929019391388446591039028887452754982399262427738018117594913402636605551072646161954858918148885757469864372780934898233537320768885118295821267928536869060333725271348107151805751717357733217147978194126978360804911333730782316957368804166969147108527982884358841071831368198239908686077571884146889550433307384532768852799574928114692394256574364709965840890992789662625292342586912899411887266420307315546106002530115192504022212389309603482161059250434234387577921937981766069670580015150051000612372599056915940362508050674908254820637776951282983366963207879640774891609126059269846298547784007871116575648626115070196495983162335921951936057406179482404538068465639466241620899071411895955014077061151433047108884667681995798763104955639164762264232053434937052089902582555986804366953167069161188140735163393291088841478556651883668057734923152944062213260907662966591461970410826709073018650740030439422826534721123728062002331777437543436730847488269651842031645796391704738375108327351360753641713369885296319920496389710403617076135406389097625491877575701234294587789580404822781638084667438379719123645730788444523892434406180075078488226398561924676657228798936301356857225463295664840929276398232114270576543144785959976604714912604624681141554543722076349325902474414847967486537728042543611648185671166158981897863709883764620501793737785451739675593329500178222892827065583896793123615144560688185015712609552908455656255244902780462648028324830479063210537052003232127962224136630214927194890446642265745339490100303431437492310076478776342350376541775652056074728755045364117658320536626333091394971053738510679124073792242034802878133335596662181866285793832417442508929664115207748410831165998102439369559568095500772145571039053754461001386134345955141909325497496766186606335160857805349072159878736127188201893213049952362026434988450800481279130711755185843504254655836990463711823223280393759191309171807745753617788746002714946141036989471487752410581073401187294057417820442284740991040588423678605202507387399402352827546685683799957133498295476161001460564256264289759888144715224132159368935380366874194260854031482827432610822886843866103190690759073302541483032330831425701207552559966444241536172042166294933131492071619469793195587283777411467279729674712589952205835561016742917015520744588517997279548316203247962646427046421105677445523456943515859197447703942815039129768479638462880137173796739862023131701689048733328184956577075968895503836759441079857760868245031919632820822459973055264751863134316113214614764855825564123920424244597548521971185024409082458231544760495051593869903870924198022610117227696877991019520818855250043740686365211302853083170064534608892091598282328568047667883051977042939034413593526114990834426419278837785450140286574824909218969722695184404706511152082853402640696833994816037774838329523327296199620361581083677822613518821819330358782342389407699625207350862186869502900618948275894080007257284517402377803831953279372771903134514935303638925151364847279464998609933666515383213316491774999241138494478712129343368086415910858097676998007836198650895893442701670620774694630321619670471673507082688404344508302490992611127095681473540251038846981633633874287556889605905459883400682438264057355425216414436254351236037922474397871434895279612925898123134200271074047434532185789346842220400169452745200697904671933695595274260669181191162799567285004768796565495099000704695965145231294043054406334554137000219406092350423222483764334774803816401269166857281342794515021592354198363549789612531793616107000951574957113964461252181695355515199271627432377928030247100687021961848059726229054265067946568665990955221899510184140179965614438018029935142694338138025644004277080626507675258254825212687309160409970088530278726786465476441155818791789354790068313770053275746401510604870160713118306253960345077070967568328472611055875218537685359629106721474702078778566860632814964039800752215699958843002218333678061608923466741262473683754256710877437331182257568663297970986514921679959763310038018327626016155730201626041519499019679705935138796967894231023407341518912373938517457067896418721321577448680430974717555442117360904866240699053826141521659106403172529113483805792761225835526391757110696004351380078462817510785047729995940984902108428655862364220825953341166124938771157004779188161420584315797017227867666200639089233557812948232278549930920937816266982687693076867799548471395827031802671163785490680595647378648324421875031931089542098024811348695355796007106918375043487337301976089148767679567791453240689336519185758862128374148119532152480935976972324955417539530894230069358424497410969632867053750682961172541376423707573655052695321364400179342696472926473040981383685658968112050845030887865719827209392713402158024680234635871088978501492413365340889653903571033466880574456375862129407639065702425710793814593614339817914024065045471341005108555480417532098711944669423811234237127880082116557390554636639916498960166058065746942217137584122233107555506967364423964470077142302633831248808823108148994586876088957024798237475719145989897409855075999688904070454905901410143728347078466595239452764639675186545915063189278891416799764473267739349434547967643968983026616928448329328329515846719384121324368041556827217796687877199331383500414079775441788223131743799286602549626468993010421397929113479322789426876742594274771117397186174245626715367108081239338396355205555151074480410435564161208558218689949499070769220405486629207433191459257703842916308925362273041824068016043371979244293355942781081630511497702715208365541601495046085134717917756271390792033648384523913770588580115437171905195018828571958304754859174221234724371086641603216077433625529212314797522929432043611363725753052339818622270923670364911848962815198502773243883588219282418742929370338520211270767117441045232516516407332190276952797892263630338207239489514048170884072198239148812536436970018843410274647001552530209788196082442413176787224431279507495846719622981021194108523489338360912552832874434565593423752265172941791449689076061656588739955783133031802120964469753127028762330675925495402009848262110679582221281682784212619421423899794751544878103947790940798184351184206237155859703079961850891256371929704802536687804676438360422731228231910136607830950653774258735820442750194453815520809336536403782269135668522709467889894280123554941399916784845873717411276624997175420890252251068185550602282167801046204055120259206667901699835972763062568655945017007250571475209322213513490167412906490599913736300112160204119333353156438726189816673838022365632310209725717008556178077393483444515558733585818408344108127734867702471981640061637127646581856663617687105941814348988508310126667575740714130314687441811056834689809951141591587453452293576671039006898945457511317958326584714751811013845946500129257766959605589427021885558017079133987902109783772098459025500322472677976051649732290227179724982897012162090093813475722698286461317309304885967045266983218205091364827214915772704278787217751601816957420620512059902060135671469097249804488512431092407567011526323002531429600819503358051905834042125649976171654385139752375812598071675176419318570523816233730539455431990241122785960045048926422968145575450101233023178462891287734582744114538255761179171996290858950154777424946285134547438336958261032673216106276197677887233854615480606266692495999366581590428668744840569944785845454432690281931991645454354507168967510356021011065396359991726761358101349635546663590647753283594331132014157355240803149824844770707155100732098089489289018432811267005847540179841752077418950735523808931249267981326406435962020721955151863812921962936136583482970946431289367273175888591776175267415353893398710925433685416069731640285423726221662605781085909614972481752252184315485207252071474197263487490163151988919611701762412207547648021115294128463840860127230269388236938492235934010862124901447101514253905159139540715903052891666461693968344188065657439660917029190420056406903046209046149018750419933213855024858862118761925624596661114946874352435598247868690034728963685920502313924432764021131392675392419237242634178664881951657391217729129032968976220187692011245373311150789370402149168608447281962948187821959331532089207932674304496757041514630291446803162265681027423600342029415825241774948029690733102859707197169795367425118959822053168093668943159580462284983746604840635183705806603531980052208162058804892034142592722189845338001272208425339414943814715158092650902739152982544157679237777080614189427994596476555900730301171212453791634374458477919507826258504174757615032197474651060982259487956319778748534712445263590246874186832824016193903198141990885883320338179252462948523052228878622403141837365069388978852132532027968685110565746972469647119003496398606936066225295458296846180086836343856244829287168291318161576418610893676078343499660442509519162081875154596744287244015473100945063127566588380993034473765096476462982535519931949882716034336924022238689527857591574360958500651208797552210260114012090555838113580162077991227919214212771592592419986079227614658795977612093191897460349752186189783623550583856936217093766869829658680938724162657742896749590635328697458393358851455832432651751441674794494687255842774657960635552565080147286387175275812443444983541717832562421520946448324993456319157551276395143078634296591363160242761489303585046908660521973142751959157288514486807866017394665092941169786363017162517258898546133496870683733396678048191862094121653945198892998820049634037139497934278674872968959191746460473369443215752615926534557127815031175526961058405791512972806687773134894884332383207744796425182682137752300089621432088557515048148815107655587122626199703359871023485703837689914065500319216835915105472155688511327524081664866181978738864779741446411164846218261606237755781013547590802966782286120342029773031829878976580108990770702116224236439507544568629011351375201142593823729131033198211911294830113329078007463903788762690894976651780073261035221111780815699812599265335602194603042987207996754708168413858367229933658785695804053902735807134861599832829895288454770712564073853965041251430937482704619891293602810364325749814592136467184595983012636829264523131271465086044234977937318469226936351547702621996611325681160131885126786473075228015885538202654664620607183135260547053008802000789914863047505991774287848291382779472429582788064540047162698946364498953401781056729738177913173967639046216333529400861853348157217151112196306217049228765519070467627943557711408107125470760519251890862004822225261347154757323901461738615702800584148245447868486965796886804439656247427756570888273510873200495851292366382032667010211998302521139055479879274148876450855519636608537678957058027705410760069720299476691208123621163442187948111838145903059025800432675800359414992166665978848468304644796105679458296975724105570419440707242559414098824424327784397813819088055582431702559158050092487320329883696594432152451778194347917193005604266601680550191994935834383492549424776840822178934903880542987685371134957261926961273725652892765012203728481158468287415814202768860385660621358344374907526298977668566232076348028765477776821993440226340350543130078394211165742711658100386140353934986019399010162431916599508472477212660685591044146212100213325982863753293887826552474513584333450983209357058263997080560725731122196762411121046779008780246530983150915439749481455838073542287664715796588285444005046230869117406145196404091508558627322371068161099757488097759795412250389285265812730643243310974639074039095799903952777922902300835913829833650202046745800851722078490805587992481388528199133469719518860604189123575496045133385493458368250896887051987799622711472764614148276180516547636107869205409283415513384045948931030047749347977860918658524001499976266847733929422801187348430217385254696074167423491495920751858422758629172079645684758570021467103708208576103762575128711186685122085823966739687941221422322816510176080867893042167792465366812253092744596084183333865222862293238240838366017306588513550805347519035402073832874747880480673357777989319054791973982135738576590936980566790278856299720305803618524802692110624423607664969373243642077847089726341729459764982508937531180417270760102848183812759545700936891955758293161413635854134440492983020278096262605206174814167733143469726674528746542828988735583189968689650691405415309944055223147827091291380997442331093535105547681404984794866997096998869397367144986610618533439896344310234061184569254740724189103084086413352063053783465419530266552541942877848321869690828283458487672365736250321186033987241606634410973451193317746403782946978393776789341291980372155451987094816806483977549238895416615839592572945096775097075303005641983479694330394085855616913729961364653347362252154140605533158457199832369359222456401465621588296766863419084490397924217151424890311794616438151966737341185012562127057124795459294516841726212931922648921825007128606592799553680725056461817525320228308908858343102882249248039357710396362878621050260774480987909817364533878378417246258766306134420218850595278883951471516314533753730972367973438000395002251602999509553229355006736561014520256033595380565618966850726424005037266331200539357145367833589481229345206900626614448420203867866070407945228078795275027091069093259665328807651142993760719674745905221657763631482360348306372341563266245402925961621395003848070101386742369134957286483334544540911142027253568174582031384168821549075844808927023501764387211371714442974577169706451967993623030324831288492317849164789136315627293613388377120333404113794040043860080056397798905574514581111920380879808949966689268524086167752068151586169054369475732485552997828539211999831899232327145576311875037677604730981979559500016066578970223085467477158237573918858505976641272626378388929146830077979887198746517746087652238917427394720735927128029015315112662412295880885567341540239136897412307798585252811940007066940809484377366655553677379945281546917872183986863027662903178224175412539516040124253961735173223579934990094635530665591519152299065283640225232434959745248633571320059828289147621353782964440923133696126003624498107611674823632501546555713816575787761998181968873708856952155298750776015144793398931650612303403202369735612945420286523550044320578814999862640207865477007644819506197702654393878606659244325066907570658445575171048781457959858606620806081940989958053534391668734161512626176440718345452580682122458095483294056245196794577985442790297677265642221219133666705503756217252630843818852605105991549343372517387919935216621817268451309319187739971917328947048077841445087645075526779696765668564240484163472102724343579355552806625506383010468944471321884961877401971808508282028630349340354259696269361495348225655890834612872900290725342915370098797090287185081353461714814165850905870620537075441339550012913452724572212835236285627578888410138289658511370418754748918747066204247472747119844945860940131027903735472980646606602662041036654752935610658495818805667087951153361894376534227200287957430803573475581132134177225195665762720168598537710744829361230911165854138880353144324486626648589023028889069231238457495118856859424791536101437815668782646487070885207657109864723495473028581495688267529001359782712130733398227465438044287001927359453125216537976001222876961568839384261646559339704394010066225773152936202917894301703880257376169544364156307990858518054842856653080548909602067858177932004721515134491146946691051795037661624377034210295486027218561772054438277698477895684706341614081523204193276036390176739731928055175490903539108676910933340282369013951178506520917034996660956889542654986770697016048940363456532420649775759162103236309623877923454721800878349868435892733497816624277582557338076596588919720179836815849609435500458106505676265463042131627365070558588648799951433014826097729104676060838695756850721833124998558704305352328546581933943144450941207251078797604279807265865143994775214834678557399120321032175310829841321168094446551776315017294943700113505853996086592502824741834924181287653727039444964275784867302799552055595322458839334310483299310269144898865973217652237684848208904643152244379402034076894294551149714315985667184277099084219348896028614657712849707620697004820783858592418783470954311025689355411338446276625624965336799424067160072179296927282719350423713993068532957064691506201674346410078255206866334286016127012796009636798357610928595122299597380715039466474981434499527871432264932763008882076661067989530141729832755481840847145065113596526335862630205054859177125833194896436019078546774088710935498953459943619357889665718421528072856733607736572388783022863259260302462740692697273638400567081630808738420490452192261053389265649991312296966233842318257645657584274785826052937244116569734435028728940313073540798131607641212938724770386607594437156731631690633955251033287001334982173103986755270188110125458151682424146476347678201783424159651657516231623138291537323630577786080859679933152174712992475089040559460375256977155595473658093439743114939590304534886201084203557379957073746383649593012998710672120825284247219331623869673978545939307436848507947513097957824654314406356921386854397665011792124292879203551603969161381106177753457783220278021159384588553733096687288454142833191137693563974083764575455919465400921530465873838458100683634539017247341867247125811277086469594909915380444001788414640063609487586774631838908836539358150849248206791928134550934263375993383571952932866453487368764512076777701655165550370492912075210583767833542881017105419596242544964659559559273726737745514560306804462229549007219268449351327908259604201380955454599720477730637336277087803337611069040727858340773403017159959064596448682127709954345534977824268099275302062410751835863394449841603633158078128322836099697385815966048192256663579629595383921387613320902268258288443113059909532770807410289799854722741371516000710725930207235305852161466353353012796451502757782226728584484078815269981680786990028523600796061403333811980423336770386727145997312571597046718997764716699069957079378728122716079012796525069044692546177419455711515741896416674024838038127783127071780411596240915062085034205813311202610612022416806733442913509473100278010919562546524725953860476045117930299723200640780618028055340938709725403246442558694734242404074072315425670183512744856997264185384199239252777800948559316383217127894325528731901620168514588139178531610267942027305973107285930396990318565912167691743137870331882861623789620756950743666994768892396244928082209675214639197020416719077623717819439701542480215040510489649141349418751185630496926814578976431322762439749358946136940809931842533527517900779678450403456263867751728103776634385074771040841909966277217218085685623186779975836887247015437772968939285960526219208934378144706622870293315684544414135826501362149222225730910088589700289215409289498290127785102917983213831913958818757669006590585186379003807800900888418259331681379787523511006740195412152494914872198399363210905288083753216029875160173635806273078829839633917796651053701592948964194723709731495827084781164604279744752861244636823405058406331876162333844857899194083018467182586339915274842194563507649971534968090555439864864617734762939741205902267765241524671800028283157106212761627564732094093744049412258966583676589369033202880007316510769298994649492568514082797113697866382048226274555531631694611324230102819962791173088397187612215347373821700458847127257768014925328901489992959658114174407249750624941880961935717894517716042453375040774048326675599719560953165186499974576757082754964766396885940590102734961531891094029057662164905834924379749971060794472407322953996481717647523221512540106444068618659944834586312284070835030344705685166798425230198966790238197064116586033454169263258994105170465301750911831450620749822427023108287228438186753064804643782233615015696326208775712930801751760897317837977074472868494978087642739940822577336039557274461340991423442004798840316579487952459402702075784729796392123739815998208191914952336476784934215699030668880722868453413462491454491578030644283241812776565010496656425458611059890802768585278404157383080681877101815136914159158602404998851941854580320803476666243421462417039759804600658422235978925523067062231255365180185101569175873761138386454305670622506610511751864451826626958659104105609423976617315524631967270286915975073428696707112113417964131241216608154151530749851032790509591598986633302105635350525087119344628607928205642894051461808852476519246244929654735621118587169286778651321992384090575902708236962335203476032101873679299205698041226938587259267831119735587660781588068096057088068345450226910062265938129711169921007253227698288081840765775939190310194499120209468274549349087981047778858755225081107144744199784314517495374617840776607174308512610044498823356884128054783507760351820467822901579844540818321058169301091414865126755432304307398669496726792025641442637883469150063076660623103172789002779130301233779582215699286833065050054026637609446362168273619664500878573638037133414273506547490441936303823628301996627019157185099672060112069040494638136995173385545724312093771647706993688469154852071506846247738061370043701693589488396664543988970672166901322824629130671306342275995207009172885183659270238461108721304110962234396460034462445141993346249363399850554308919558838647931730257275502920893754940868649374264080887570993024494583202363199022639069534322742052245103301147270018895147233335689018721334672571295747408142115006919835542714551920030716875066788719452359268210943657965066485708880429375602090476384960770228326375834820708065462054365990394662142406952997386429022205665819744198986198731032924253047619472590135749166617411150774134475983117600642275840055018939600348170379957556068586326938055089368109610949028018410476774293702515257164980760453592334160851745415385319654076931378626330047056932841904964552248528765238887380696371212241734184326584436020227863868879863379444267641797105030032186923271988133120887864334984896179777777517754198850191691106270948066577158236652933755098996365023865617108702464576265954946125404593284995608766155195767206875251103885638357841608948498398661434833383870595163028863162833694009956630259383329757895457687812402509778590597404345607256268077382764728492806286725722914167311425164206164567800060632848965018354963652762524626693375584830649881047337496176744310801622755485826024660387182622738226065529839564874098731427963307294408193298129229584636133460648856960757537121160082831080885703350755706936995959109387039568094139795315618500928416738170741509391450286342954981361317398022260242335391747916176004791013109135386415722245807158636199791958853359568482387837093863728887085852151923295984638472604703509772011347104453876823801258120216975788089551994405379232041056539311962821541174206133079789645969122575342486023154691452066883565903779432156863443211959587712059308460710202376888441074184160338608702087187577981779562905414637667537099958549266441816147022189219367093416216340014884276922350460654415905083578001882203199147996307775935262182622833221139737861010303289858322655609634175444507407033784234269288774002295257200823853551015049731513629136581849333942340365985527478862879976786448383147825514238400299559773663277952429118004852812489407508161676038910337783119195510621965297702726062777424664037132895256369575148883250292512330294059570122388294082559711284931385776794565457986860612550912642116716038299394914713952658809929818421319792054238415136633429564423129986851630733614303598384195010388494881226437922979360884174478515988570178731625137325422856248996083872190687763883648668137196766984948601997127506232314237083763859372480647943750791638340317586222401192039634127770514498743453892317408105733162791066954161112741549965285798015849541160217934472104317076266384184701345483898864833908646301586474726421594782427947075406756613873488440648026696185310613959152452640102747786875047172952968658717053818149694514799277146133544002479269221317153944929234004782131024415686289870496910534896662898874453560979266064658074887550496657388886936240156606764143896783023511816807285412785377216106246902138284806921805028503031864167341957730723459390129141530009380146562473786897447939184890542418471085380805334469906769600457295336699434579287285900787932775620392401545465744136064041684142000661583870288752813526816214410663975403283826276208005057239025692160000750670518318999342612998181256500657672349388110739596690141042554302146253944328631884193758715512663120251754217358103824877052231738068026937719728447940481033054085274711077763689213515731288499270305218652594698141607832149631171004951658975129755692052693043470008698366567180581311479622849214961615888733788682596088861479278574242228484730977386748268354514600656545363293411569492931753952394446774941391666041362167074175979536400352997218769886162638071789291585778908573120961605153512393689443173439564064200654905177001002883248253014318173237099654499565230070567441035264535451811195465860405981063102066774218782727836777345048648740260374819561622283399943492104582294857299209499731743445918056298595356737893791240089682867616593444415660620331565877603224607675575251689803003425238587230491299205584620452626581690705873025051835467705786540277589948257785293412704051241358199748169768383039664780076444100908247169165870706856395405077002826246232463799763118597674354570544365933310195759246068682262087656914911408579813963264497815480859548194790910953059440797228553886846581941423094810387477253878144277646996062403991910981761700577200467151209527089157854689289733792125148913422580594097007159069162297513422345322348433278728079316769431604696075758801420378123913151744952946104491894528735189111449364429515810216143232755907604783111494116567835792727045483964032763885266790574351390690258935120750388292749236274660452018262189592397292703949678217231089006087531618692537856863810300507809223923161411439091460207431317463300530161083006082774665621439574800242915611496992913955785558790197912119777829486734081372448195475562584838551656338281817360251625427892480901619277438044793713517632254062462847279796349953728416843055304342797095995221231010885245478013037655499334898811042633842437080090876995052788936135455990992786838371396251218717323419464850067645348460337677677691097472655503190282748270891749057760273698472680452090574348294869036405931542694512908242431275877218413513849726541455597477024780402505357117087421380438346069316376373197688567154111299589607332718834381332615428663461062795557713353756483722502514189513040638507535702668326472111642532679122337031342550123232515503519885228996022967654271435045347996114119503324781724477370141575404979604296356217502542547113729473416012601727056274791156597324348878486735193771004735451543903309294171236245364797364001715302003800250702803463690195484796262042350128286215348671113332577389813666096992127615388112813304346049787391178660486747138832874113497502151069107646410773402504736481598905640053303445412748421968189322399979174301796263312682799739063481402045370404212479368579827439809710355690094958253381726915448671952060952666078573348243052968231332707544949077635391704623239278981030450645269539849277938723415412463596684232497624438879583282420851756486915833011932549993449796033862307129753729580162501725141424401271288283601804430584995695346789363784409712795641883765354163047687049138231763687506999899258797833569786910145721801254082926398577406283914079610429993871234072990805642066466004693059721642667385807681187065413684338918841248642605022585493797589953631765189494338292691946340919576071299541766765733666223054807664672073224271505285795428864715188279977355238813592352427500621475425049142103203304524076441325465063391057341318572650916830194653136431164075550796371923851323731473942626499922596707823690739634686881904958249798284187611227414851602418465241479543015641861444529499582395168188606023762535994754995385613347679396594109384805375768758742819224945256537497677137624642049914139309935122304290989185086398392673344602315109738266896433533090630543157667581097534616516378076055674075960612026256523168250926533740106482872402742385667202817291331911784733800027367371654601484243261035488337624059112355523739787739089945199512418929757073536011236512801707561966236011721983062688462709899005473656446241349076706833003421300993893838151439393870262760744288456157430639183173099313651050593292717245811031417712644958286923011318212145896157498715204510822967682069502082126801778803171052413402187709505587013678820551597094369313644513399265656997838769727917381471674074556757758323973915269191826383918015783994673505463149217841680155875675036620808809073696598886254557733289005316608375287631097210607415887560123987551671628852564770380241124795047887246320406927839768165865226362973487918070470590760238667050711505495314153867019514121888668613325621339280661076069538456845903883816747255838790599007592640319305445840433734204420557259743616451607413074351802127221658134035029495995224634685951334303522340911714760020498745951780455160944741742214674955126652754034675300086982999514256366029552797760588601309543879718763391139705218857989089118310704512430127782903419626176861435296229934873267094526684355516123043998526691567546037976531646490699077846635183262571436291746145621448317159757409285345880196967623853426869258952490469521925103079798156906592266618794368780403220022677129099981412603460085128503794128318599611794291235850367719344618491200146824606681690348750863682716776556790769952710532619794806084043996324956532433000752517608407965012356195365531923971393224660782387712874823326589073827475798568985072192968732729773940465178374472270800644932795909683759215640996410858028687525447705267301014208020708259168161171727018903502415026741853612525335852717730536457325811237181900410725161523971327427117566217399168405641428259770344252822415118585213381290617013472455973672836896869123604922318872851964134709675514904347401895807033530295298298577371209957421327303083412651787097593757284353906323790737903219337515245577276781609012862729407822822442575181312453508225344021101900730736828302948298457604225966395278920531667216579805769179670075480927077153082711065204758392530438576512118683357086772221958746212007971090848741666806325649356547559430041735833792261752430928178638812172519709689451487263411449849954115696230521636298435628915097365731782415321018801302169841259740919108107372886352798114674824988633893685361783435178651347129727535252758836327869548129200999120172844013760556463413409409329151346588998863131432416976887963318812605158266896679838320295030747542637651847609030672129303551969873676554099010035793784951260396355403460858823758833050251656631092769670441020449670541576112284525239675472395455629237785883436960006273062187612389536145002284545467372434099080658264230060454718389986547081047067662979524814539481483625961898936065840739535061408393905770021589850787408889549698772768138960247553096509231563929256031121714876260585307368402180712366479859074053741099225432122014385434460569661598237286186331195709163218260217356906662197312438344363603706051395918117995214302160459676072203030919541761429801030372546794399717325361006180850906704707118412703680573789576367392721073577429009172823010300071655481609416024427871847105243984691410053583280823445920191358910472593681369351944627228749622481340164345407769265344561332508453346991610508933601874073587487115487128527635378457442624423281211143167457204748592862857761184904673880708196096082670788764868989342013356180857213152863596507841647706536389093577724304807164245281760761481269267700327733760515187409564014379866922403814808515741195166580350109574924433596530898346964158430977103421765126352093980089235870621882047175035852134945308949604846044319924733472361628705515635316524318142198284188882423543256779379658233346979533451119073948556886455744921561546008069446441252950373196998783511796421506819810764419358412965623752067110391440142171770998783005168056024522729596456968880216479280675768514884605853924967000955749474475894730940023766077349264213054737966556817750262369384377457838681081188736086910950081084287426584528864032947874396715385775036927401447778225734326030591388274682792148143872489771121999891361258362836489811094939817484855543664081880439917795485384494412241474598143985218838023680515445625657076044511764115135634587996565450562194157977741700352699888483000993044485431123013005694614041116855337284845461468943966835761457830978870633203529801874137505218890858786594945196309890139975926256418462226780884906766972669323437724944567686474372428558723384036368821233506900110700272428275596743049440222411201302763593480967613801545035888269524247298107577634532435384486147748699170200000976662029210531569145353806873367550840027416254711960505393506346756230216821663458777666507774449197433460969163070169146192175397487480555992054121330191822176566630261584827880271658764174671188441002690847831751589304994289298802357179397306613865422203036552169229272921097709248532651438315842806163106922177938261002979579750712632009408118339172455184631762728230047378331563505316825002001319060455810478269793594869029646105049811548972320619491807904836991555132289110138009816263095224687838978995612099483295642677413911061146638177905726839439259970233134828931531335117086593497941658959582732502040596843268716651263861241453192928625997561267755428854551568710839920027645489564179674700880809859609382643764158878404748594776988579472154365145691689670072353357428393519669219530119843593107929480508342198420175861758398701960032564515223157737747413834019911456170366018122907556389804753233323718514758243065978047796596341010733891260945571015483365139355343033881713418509012084121889074915125959139714628965785596146640350486852705545672689159337049416984383876683646699828170038693564247625994260927305133158709755943105607912127893234212641673238270865691745612988158746779348872223820167551218347372189113856734901841949509388565752574701537015632788233835724724649128187963473000568268377110482880476093155204373259388839830349247293819187080036292555716186179078564248080937019398438406444544510093810035859715661345296183621776931835678389980033187046959197169498957562151538074874420302152730850982547339011350095872665571077918759312492971115159585488421156958384700818511676049388624722828092405864769396430574983063775554084160302517972724892209209678020128329189507506061086444801006164864091811453434678050206209628880569870567001056431094901027707695538427628374156256962724247964201098742005486400510641872254032468039685476117507439477069893728728158135442910832464011208738061995115592606674941319018076575230719930106955788590671541448328564879509566011884800012774323618546683333401765203464447259300251768220857301813543965801851882151333858355353631688803210435381121928651572040375101911671815090467179302338855618289705257267894967108472375037543893290131261076939207293963698986846631971302759757264992477664951601234408569044485717733411408077983813755512041416518756465942096372620673492783821316387169974431153551350282434549856284980588499601962972657765440019816931048195521225658915797745429470343159160558685896289134355933876449557837105928373102140580176664826792367310143222615767449949414250969732250154132968185233707922907205943246178895463943672173757710602972522677299505730188919608800779328667320891191942529205023752327710559376073178539745184650388002618515868117694401341847963502324068689197781179532094305730689643021402940898304081300054574432710067177616991892768953017544673697301601278217594477475146099197638732651157761644668232555000997473218163860388682448484231003965192117287345841201821113233778023818805556972203085287560217588715664279901394232297792688582132542983408417048274928294528919121973608000132313706596761026610379957509264793507559374682379869945274615274057164054169415876786230954147746041602299481273532815679051766055851396514164467707662682284963864542355291352949915872590439573975531603487204459386590793019106576496618059905781290579125162650677189478398834021647685211487764720516695116960998402680547780881515346010927825638811544574607448732522199270233167031779989083186920659047847811091538560847853543976497839711328282461266691665123185470345741280080947868277138354632386464617835155478533276808742895849815475117847328286851468121684063963702396700122896197636588453011479164794644858373946031164666488548688525270495455058991519693113487159057798764631062665538205061781305137610398433927938641565619891246562184614575364348504420650523058200960514767495194168861372511730149652451942117826641554117751376472514979938261549188080237136368720935679542125894639176570456009601625623873731928941217805700715640309742675164210565478961332151869021041261663028075610206140234498630175794378470228346394757242349035255521425745461209226173085943945584742139510868613479867536963914167322624885225107950144976063889604343873100416234052247102593748716667041022712366841829523793271301203425414173801534298164467278936024810107812720117854314517140983865118969893217781823133865779792767964506879478813398157248513147256354118576269461870977524314881819539305710669569685495136063980092082160187918165958474214493947447136511344311366199251804733030875441919069260839893344211624462088409540612722289615160120025232060051848880591997296520642294186637693451037290071182773251127362958674927550573555980310416552512127212171135730878422971776484240726115097310411573080743514670524809630116007334755231012995930292537401317925186599613551200419716710231920345444462683759747691800407819028606893683725487332179173236670533215405016349838053189494945053654302973717110235803014410998098657288995739987165423082184853145333067148709797854696525532731494895184888300742544011426224472739443399551599695686244430594811688726756286963514098472250417417261472991744562458118642663776890821634635566480335641499564971914054704767183274423120751207731935248958964855541996226405585496311087270540353607761065969898013876159395822343477229054861611142568151738984704377216038113510940846122538715359814179483611655381586781853386394812907788070915790115721728126952863148359230688048374643416292457370657186654508001373441380619666622413737988475538148621018987375153994197081792065934986841091209163023364024172172324629182082028810537749400010917852200236585699857078069150413872272396161381466938376242834181526626359193748058797739482156417500465464501731670884532790748134892084105422211220071801720982827830143834155778291778093303255373730846005167904575905222778195455330623418049415153813310201740985720883642431899431037460553153467358855871122258097179605536695090214520879820706005795318327295569229254563201589149797844905118632600331828429779713555282592338392906529560113982620600209840443635886482615576459407847734309614831328692716157363046763200925839677707774779318630242234174688352921190416908148853399267529133116216763484341150271506053503176032167820701485911364170533447718649276808721346052481915927430111226133211176412927555539025905627435548794517297187225713306692834474396421014772391001331284868418371605431415704072015274906122513060850095651926563106604668246349467752751802938994155329236452371479077282821015262774595075746713898292657066590225728560504594104230658701762257036062650958847206585550032872808773877874466923757185561990893105429087090222217180263125288612876629476529095835290533793638064543911199283545065950412548764892507569451478960071165148837036833164853954145371766883478845788192252805463731842073742312950735322550167722795050110431878553788269782256781385627734480646562649476419365492653612291434701244296704439532411877562488019170339108718933330363422934400519640698614025740169382771932358649570896022352283518458874984732118551113337931271262593898804673707019860122660367419329626377822695898059997430299514221664898097412688758952696576175970092645388407498575227940333162754572262089379132027428500272729189375024914844032539683338404395294491639348627944278609467427295364107155025445814750982552314748562730395047730160792231315077751480422082567891836742392798344508522867721602413397463484431085191058497280838916516893701663144677955327484318042768845376417103375438635916061093076701454333802426559663210759402986863134385629764154224271053689441719090641227295554501286621218072559375381512956895662284944791422526263025792110289752917537676410647153818056213275758004503037148861171174252820009994355578472193244096981475242470788370254894221952672980335494551872148172532878843235308215698958538563192071992219457795551240376412915405549152231403543444827175240375933512733270555900249671046789618829410383763838837335119485984815451560793092822092970684173714177562349064565444273955353365600046608123513473790950007232268984346410736290186500096342096722905066678195300158202330765361803475921494559504343144423385308282891071217308804041720344650436533798441618272291961833821750604636067540480868867997420426962475606004882878546193074717166335755771697821838269443446329422943511807991518818711074901276677351435837703773781617696439061030510474771771168410606345873791750989362630689158214668258812461330558617716318601043496141383435665200979261793436469420344667178741126055024282645130629924937333966358068489842935476534729376039393331369622065366954244661858938173912790612915938913330604704313929361554353912618650792284954480618546924482209638922514024041592308357937335420168940536918529398062921705227425407769783191422266910072563467757304235650730248782460018610886061449034049785340237347133877077583517901035655495065034994736776477665804556525862164945832843799730575617169545793305845733292271119315987305591187485868269385055641189641492770805543719657309102208077475254576892797998682886908625799363035820799951476960936536566032162659538003771415806115871805414128707445709632198587669069164808869009971414304998913021795862455183050561999796199059392009220102474031290014246716737979795482889962500516859294983999626553882441563982906206663094136831231622557882227554783613353917177650648978686653618609345160743523490552818043894649607994761683316510915649199615316383104194224520183726099738722481842269712562202013271234076066742015823047851523872786504104087906719803105904593832833366039956130454256858658926747908293581315200741591812395092606116612737624112935109229385906560599368977392780625641122169307471520533340975348613395605270045581666613269057370831961148408649366775853677184457080903531220515266811657417107650234759589349096163513704314885102272813099449951341744439295699892754607071527785292034699253616955295674421821698497989957300478013366109275377288834089166940997124029635551783804087197772890632945166365586560338741830662498592691603986670137512475755964633378022329006161756749334269368418862959832784018368421424057154139943614862083560281849689993574904744592073040354172741062530092758635523743999087167046583189601816150431383729802360650679411188503669646049206817045426263040171168463642395983925775852002644514495980044663635280502064857479765844170987944090360243852900632136247026412736385435300358393022557090596864294433190868113227979179831283989871934350902943317391474491777126668864220006056915361909522517281526030379585621908658133359287670700037589923216352861373872268286502754514289956556154024145195269359195009859741922628276541086010818819670813785001967007074568629420893297185766020167216066195314347095619439714739453525588213017900458500498426394347885058466169294744135186217390609932073924729137871669915089694618841259393070458939817353551443938981314092978516173832632456596986719075964724267159034890943711975258386415736869109358690566384280099983184933226642391201104313541176010962956295009541004484925386891988380235522698367618829261041857691235067151647974735723086570477255592543891725046560059417516042584263353676525361382721866936120689629632870743009657781084572332396801682710785552002198508248122302480824791923421920112500886274256609163794589615405190737865115839459505101876782078232703283760722923131191644196787753676272724480250834004542045065659769251903919578302551679707301352197896284239199593050014060699009816897755177138629751069875072747117198428802387083973849292781342552624495257291948797037885668616467135498762662304044834836899806028418708381678811199521485021044544689777026865734093433066799462328615813497367261058136697274088240469943794368305779292674423462916470630692030151705924500778214023116702752063887496908324610239171445317319083585288357446123338658105020006715153825658993323120738912921498470788734208568302879217516191917541571839712927616689670821963040031421047201661469233832002679879442458723810758212555540392401664114691031439905236177409908094315966591725464142794824145318876822791237839137902506369683693970260000213636428657343312374348390689917879055358345515076707234478609434466418804377535714138746957792484425059818045307789211378357690331758082521705375250123948368528634097079149901511125642106366627790642768718516553108610937534589118421423583478493795797977178857174401116651036590586417883068406120828448491458932972861839143708426433520858300984856727792125520298346475175500920412872113136161298799507847817418789061026351493506412394864673337760240505302029300998468042994243713488608787768975210976474645912410667164572937936434189170613786864255703225388110192131754085779347479174786586617620106048251205950425425393468808048316171022867868090735037928090806120565436839450563431224642738130376068427058400540017341376598166393651336353995693092767085208788411401459163263714241065096553262186675071725606570919909598004430976262514976341977543973587415154482215236821632576591147576273931184875952802536304249970632707312419035352141981803713999918047271348605463003730973578233172051332138494706117446025655914098736057752937112879235958785516193834602719364936601323077033462760589407229082529955103969103756994832094047931479968712735385545139929558776709168636452997811804846282039210544612240120285891834079556000857161982372671920701138237055270971887379880080569070998771891780807693984739260048020789641257242857260756223359236540352523924976035013107406350356349761130156735593613883022674806365340991668236054400590420126067670396197669947825324373582084123788396947994163002022774131163877979669748169166115022587850684986653752488023355744872588827793579188329177491943842386173996978110066206451760115002740177871151954547583399871750665627872910007233414622801536340389923272253223430469553621224266090148035930928587860637639242932774581367847225916945769772783004914517568060116993953924669291333633111446648622282393669378740633192755075622976146087312725563784116587250587311513488142939633151018657832900198300080743234661413500421258494004726579662793829097325879378849343198664969473213035471129645012968570762577617813298419300022607459274855619573434771873141429114936715800919394092823488710395905270928746001925184094012502609946455639849910965095064812823329268520053118856340361902069846836816342120105710841609184496998943182206200090338113988397641167647072128655691518833927055251046763951704405917541751616100066954578479380483845935284224450577426471363135145323178443593264406973639190912304296566320754131109488798228974857028438686495444775201995629203998785467981654241611064292092215053747938191016250638886817411473665963061335705841778653047673118423781232410157693897643783381646256605353094470539775620745522096080898486856795586290770084514433035655154541423328242035674938828860362201521640208199758899037177647858299794725045606526913102204879777392528113290979469261138580998811959235519415990038875960737807630419622326510425841147838002668139885273545287584542492907260015821719510756423907464534842029812450353870872177985882284804951159661184866555907365516127277838341172010807696615507104903265675935112662692364023344124870852213148088060666157892072109777599599390968283854820237715680656899588108333296298739619460234489223669967791149150582247706021655842747522861239334816458701228856824232304296805579215765553296298224886080664771079858268117835223865401122472041712221968698956906383605380813867015711529990954368389008466612674007566387227238807110576055614159191433939462996887916801173059924453413880399983775844350116041720629486352121307812303768623698732638047704595679216544468274046476665079718633034510629222736497180323424584067895160932329505931869329201277661611201458468261217569184359014956291548761324062871047416242626612181704547803053549512381671938171129456865949590164960214202154685939908093809210537039043469296447174061447475604983627101298614887558148947523262281009467916266325608106866245131505832303308255312790551324740837027715886639416857539570126568283709266645329934643934818004484062551598516133868962327962616788362012087965471448140273768715840200015039686609136354495911055402151627228411394767018496346349166944300346786190922996611482163250921579127245778106968693358274589444029866774582090526067490312781127676129612995885778768487756892034546063372055430683864600433251643447315858725687604994703848125001293311361621590309818658340724017521196848336708368102814930279897845437630439126116377798272094593100972828355595818241860231041070118887769603995507877445909844254750253107171979701123497102064003781282160928249536298700330916635468064677522428741075806539107906109039517991662564369002339552558879520561886996278800525401688548051244090073212208288076637478220289182323574406263851547598860194397602063289371958934692495987956535619140286645661128628815903558532011928266666622667191008133860241768060395084236706681659630433470399726710835067051012535625361575225282736037447907841674479760548621102166156885642353214535669881627285666536287513711482908044597775184874058591325031339431689560782767837732112549333790610556119620683902185908027825278660955852984760784993408774182319909899264767396126832988838376703370250143414350993458252422423219301109358976176780407514917114950314288088817122562603050250172168057005480295918284094487758920470565513155276663819036487517061998235940318577281594615312190222511611426183416349658905411476919415195911887233099626433233725641653327168164436548564570289815642911736211976591586172864352325443639077245251025494503947325960588336787639281068325540842150131589184879946922319816887253747676317414955225544751409912070795769716232936112367791214263908527506265867111731341510485352888619760961677651657903365620346239267611010476371723529005252505859317962384237087134598625233278349833709785466996558170830753017138370598460623487347445947199347527029455345615003623502665127025591550600716955153305977434438798292784869110736932944081335235388869209777577135788644149439986779466333396510779788851464233887602578327030443286254238244310648500375060766663436642122116991155207407544590330773672221297605597469487888521060850210487613024124031289645945769959312805525901644911879768754188466354306221144900328693659502077707431756648030760358338160110356077042211513395149077636943343264314867290695050088825130528743976669187402091827487982364294377129622126315855077119958508163741014326376688146135139302248008781704105897170721397822460376569674155255345394508089495207878165520834975665913140617710267748306002292650099736275078672916525836253882512435690394580928438455062073988516679305139344702451528117094525713450870562638325660481658668664008805183524810866642403237783956344223307433829633609842443976859068410284518925144889964823824124946750476424811026471247038128563652321671527707235869127973757844775539693629138515733711340861522333779628355634864356776253573315856120935149320549444658290354280320440726845342850307716348150582851500095236653015370800609132109451267542363058168040925431478696705772261671190934627207029753368194657782298839007966309633183186028017959616610207443549596735162624390248063338905962356936201520514048215545094494698445319004277083975541154382221937769124041053275034668193261261534968982456471503341476196208714209775874068869960596537192876435723822986297255768205141329109398995177316756094713834160374949911689472256382764771106309207782940045640268370623382513388036695635298339901453995436203484111752830779254273923331958482720266480530374356062852933681948364370161262821052350990495178324593440592671391842341790636801376484595484287339942002490799998782420961799238355176455797012234560354522102294102297501935529056102758854545015191860836964771947081165269165668668855319169985419345674894734150806940147214960962612980758139184399735146349149998205635199004372009934477077683370255326753113037129798885299334499898890383060860955216721718360372981200672894057610316351742432555842101667908808278893812295358571930567609737838500980237714039637185888173233381666593461254504584103839675338841579046600234559280136882274758846543773443701412425672542953942915874849289035256836661956398335049443731979405637104451652551990434342842889925892765465961014669022184258771554422986813157065254518423309300802100171277137930607814638600138775476779784999583538222871444680760822965694801602782537949313561911383431033864258967978831526895237870089840442354750672758889404256948884581845913113519569947363952227668551071052606885240613209500983710525913534063083164053240059756833896246318670920971544914191710177258188433635925182282364312909452995972950511128916263274669642632265304415138053270928960091099322094500751256451778980279442628204810881599105307477610660258776159367658672649860025259723893023654544275506939596692138022781268586329078685695373316212573710495521530635451939443087452090481279372573076716334659292263685932628170653189710629918783604630283521713219832508116331536328896323721530426842912657172910208040506116679319601301833930138598690659754581625161111089511503913331030416215905840930801127805428780237675314310220464716538930052663853154390837607423692738312785128234429347260109755568621404344261163342641934283841899482531261569046947458554212037328941951170654090735948322715108657347328634489896759254593452030307443319144006261246707131872488675136543059413687297926236842985678010742688577925260010710041426357298643201542782636231516076415110897169713904860791792505388340333689739882306498963423351311633909424979132379829738725058388845009886683296391463964422809485169219117234990119495027074505817788919134721603173844963888954960570373622793697315468978765406752113315552967004304161219569329174420698280842794589896278819862128556007777857393499633579932909912917210452165686431804798986531364381215650788292008905615026660734654329191005224181511755183912285194656212621060351331378638046654025809267261977197819001808026393769887358506253266596493958532142082021573153783649771955008270147209526859645445271899662668498965796258424977740399758189118823343977033709806514404828887318823291125832805997646384244432576982255625486407320529250001209175793218988191800896218636134152942546398085402069775738645329332404391993918769230624489748404414531590770141737864258384631450942858061675173850174957433921562859120491542496664273432954097994442446943714874253588396537816753301293629184571642518834347733012594021188206235441806264262579731591481997456127986890638907695208617343750226110370940445597445780499766053682388817867314008934989230625078862391898331199356270643694062778138822633480151302405127701435508333081758911152394265007258329383396727382679725822715567421409043723520908174614934114280662472644222474455789819512253760988216581046544050479957328610794555531898084659943826849624876659892753755144097598666413144341470856809677688983131222067104449631128078356441494345756362585560715793395770488954335519551306487194937501341875704118317912473332104095289059262812856205610113277121813160727736247416684315564551503548577120796295726787298410132438355711236396618225479331954315462904100419640530838948897295412151864485773627915890225842212408858587114309374846147277753185786834500054507404511844490264467501370481701373371662862763025779708233682412345073612018774073080627049879974079779956019094881965925999590117963445260096659314560187449160134362185731875487985448143860721668876224289096333943945560797455145854047010918467117705152496283038601631659646791100962568184495095802569822106002492192078316647234977345469348434749933517986018317341859351722229342660754265075421335305153379447226209278038734687563099490964983215026094962324729067909561163407116431630960773129445231262610958509695273398155715183305124483008378216628865190408778699212158230915407232044740128360618684389326661881831783628715309526764299611509850671353128970986910204604267936148947441546412831351698171663419852768280576566517819811062277932628252422169246001222902421149661195035155190739105320334399996063016734909366487970291189680015504811082917413053114253076025811420190858465682614777403369559180954814181750571741292192921827165005847670525991453713351030434390318978425837432753745788386075639320560199356827744258786797268704906853849566787233189970943750314589084709526865675779319823764852121041610612084135165850211288859972529064677869735296715876952494533183229577480729001857412564563114626347571984169529778765956545883224481568327795745419422002304961771637343792100352662627388107609191652799107786247940515915183555783262460571518652502144397942427416320362238144465042722785417852521044538643762888812744648118868585833367636638229725516056193286327260776005282875355108968924346695144691238972119740309098419761444689136781411166850453935347727076407463090486100561478857977838979559137803929357622912919186040508998621869300630811725023378219867790185284858797457308675511582434433760520734911957003116672342681441117854984142179996994439408714266008960746664423245352423965586680810199174406118940405838357634198540554948661869024318358735396185587331623304820793075219172232452245979297380207128404870204912229183914929091763251076396881778874264652514762580712519012235494441766190098023719535770837927216712518016282234236417705420491322520941860669190283644059011434486888067940316010065761951305664272228157784562072463328884877047168819374611129497012690920697033687100194564098560277344815965649136677927212530656799096703878166416236652876851246234007412249949861885045723127823559910598082375675640232483653701361170895712384245619104363316283016496666264213359618889474760996533939550046663273507827666078079627759779918169049672083468934547524211302058513620929204617697895144702157588850844719933115468495907642378356699293467872725195169636711574294125140442730943578671294444124502923056955175871340327828930975999667773476781941801240453520383640349598712868947517627017789490325554051899317670170265089006572410528955191565616275312171806019959376951221011297541408420846257539933592054572693922493328876143782481450288741080252175449129878657120419398432394829019806797880115617928920499178692888399709672076794221695157273812779262311112394118168784093564153327043814276760121846286161352442539818315882296553590017261374965897249440221424966711618469549564164307035203466620029819802204230810133962749977854355394010131270348008908063129648113365258126177749163335146707109575579596349456455021404704348876174915114901353105868429986194216929604558336254725210822247386867402351556678459305480130462133185463335160390228289028874853094915755019569531095011818324738785534226647936512057663863477301476732835211827529640209574310514587376369058976953771626679756177739472054235265611988532076497582765614561857920957382274703930253930369414771394478893049045604717072647417064025570432763153360684639828905825778180507351690606321596483576083283485589245526832998926039253464013052117197479683162882143265624128814099461012804035380858074235228373527458812116604740207933967511694954827786824283257550158271228681485710072266734985505125599541463939959616691944694275546154054692364742840436974980735157617548028420450715176383273363679372748186882219166680902004797632932559370823869974659012847765030852889102967037848954061229251313088311993233663860909189878949922268492514091216381598044007907354771703810371514363838265290355118673666936477005555797441146985019450368896498856150099475240603490437985916970256833308830883992087655987476192232859144037657434682241350146579520688537765044897547243085219198930203531509221286912131630073605977756988814863403481855073906805220085092659294136010096062768799347169881721430228259198034490484600587867949231313445036671177987693970172620565450401571712014276789340645035008682979747440855797283338259312208621912566239411205617271648224768628077825017859952017978959321659277394839514826466243947882367752159908134763614459651821727276202925513208499435890490544152481496521783544288703670052680936393170762606789544211637948607397231942385750674832250274186409411148057492829033097883131553810793233665486454792637745079569097367202109136937367562192433600589871897474806509276410955781394531853511421069434059514695405199246838944817436097339735537624626967885783085648061651188443178424772509621076601411907360783071841709009867065488147924481086021436556644037194928423678350133088801549236508576978794432390710324316939043480943215610978068618764789408760743175402050777989785631647581378286114835801754049399498525552926187383754114351366174853332248010421333354456139421179647624323557265773991688387160112446646830171815298632733695237017118643540832489298776011285018068320377142235375588322377475392200216660907149467793113809462054592247613166781693303703488585908389612065127619210526972657139340486825526575041654695599191348013854559149092859888108795974136448441801898838552703211229495787027590632096538684673104141726954259795251994059746344757670118157634491228588220682370946475982951025717441506912132473170656711104295342225269982383353358503812891136299621476220744430929231532670901261813137100100591886207556343195210817386072743822482196125722026994221843967260331511238388212125609127503138520186010552040670035968950971947299816898067222177200757820529771958609761274642947666235281716821305251085313232190785432607996722320910388724265338603712915520174340868836872180837650800227011480959381642633396955636793403378547716011320092473960061546308787711933620922060281579313206408195141909234150508780016108307269996296906767592183159032176215392483099584758236081696044254567784171758106621629616759377918570084294747372137328677961545468337149088254978245585354825687111053663985685762871752240324934248886710647429376460458984532251833379868738324387721028340102709583534174113760526364892346879525004788850695459247502924883652802753385377352583707560605947762842944343912945736330350064293387618156082470864195157767418301867053074695420529686928291374143353559155717772911886896011508020606477279390088258405107739504882751952694231596673638164448710339205436669875659468469221163046823295873073014396388283096018473807347608753035377860045708410650208503961090737561389615574276209848367858900965833598735651843488605611451445705586977260934385033016420969874014901092213351664281445301431029435426063056978722042157216501256115331701905237670890126367985020416330750006493443823893097479147475598813246576679510561525373955337921095809903070977784719955610021909449075038298492192002449478342258431392681545944119221521197357455342743650686566791860961687875123722363384614644089419513641068515313942478935001346639602736137063771749356676948069251029174610858252817562788755872330841675311667005974306061573235167458388939835726006413497173829037371256924416815184466415988933398858149400582100736958228909957730770054551200738035361633316324787657486577259412021768373048329986499217130420261264577356588992048241668231879763035903632674489644615376410454773469252485112513563307163225505971953946557014728812816620538396515958733159997657631973006417845972625007627453950272648468328417845306403587632932262544606020580758172020361990483663188056908832837781492132350384883635235544928432897197845007996601280944265055883442195707682824567521129424226278563203329118791162151213721158307153781060280943956987801264349869646265004830462223765525334335993968114075792526126960333719555419462430188342954817714934452795687217472152091379672470662953095837241694921912824412923673888660374023190273222615480492735700808147877185417969472575444154086844700706238182595744868857248664273438415436293676940447864123660781654646305134205876175281933277953664732493191210437017334209845011512771260411888508860670005893231903351374650838463152127959977672555176493512427703768126511595964983829850467508305949746688904350800001885622544514046583350066778367864958283177307569307656683846297025106524104110350110970572523203239224230137021634332807955149495306024915875704584622475552340080133171249272103497897275282433078171427622319042412276303241592819044708327214865315968020705886875974295319902753662740594616064613242109855993826821141343377178291761382504147769066334813961120482361260279743193779980098887084211383241462996733404617574444053450133744242674366664233555949970309823611964778928414976986455676013180917405746092330554375118740067417788209591516342493957232416636599482859020848469138554228889411025321264354565079219794256034727485127587823483702552665839515375830593544777265290670732017623548715188897706885621836980772659113533333418435756309649569679227270719261591649083663175576356754320513843345902566335585927673705393949804140223113334048045069448936310685803927029887427373510008236898054996009788938990491179898460288744076863213478855841696744897183155193813239939501602238002265820458573632592348726730518000093481071276303703358841088906480876063608549034807283727056176676901076864926197381509753264020836803541258922113198455065314943009437750828816763306233826816171731194271490479456033479140694001150317581564428084886774907833104532738366616400204210063176223424151902537157780691987404900108879216019355156106586504232301273953162011438532168019623532460109067094471683248754731137951667325846995480188008306690945653990813630578170832659569790828275167160270913831245000711447192710006490525024891871268190508087974846572142438515249167017432963078459407696694109349500441720574402645338851079901797791098281266876515013929440272504257678090128861171309864676822365395527992429369598223833957543430175306349114118385809255609673795180099895591625939258718392458148407773309325056397557049644732719473184673269275905839075191649283477032601606828484546188795868359519725530769080582036884253755790158362393070361061516827070170019469705357543393026564886174807758544950815369157975951627925151419437507490260808748242883011734171603177873495537005201078396233004495380673443178743310147775029231063193431002216024434596605381437454055411811101677945795419414300085512286077118129124608232694237292197189389966240247428053177000649429877696916521918830276709479943598878216060181505010036674918499224623836088669180290346925602036226359446903497835555556880786342357338065616216077963891975894411061908794652810784571253053037759152352492769388269739400052205457336552165159726020941998382749175347745117927033069864690889808789674049020721316588934133940364318819798982048620282151531664134757701497384344046022117560554155328013375997825222492429683298041765052479181195756262563009993454926747679748149765508964296409930930279802020657669621929480557583669378610078568887741111488463629305639373091758129245516835485045430387933787266086550582610897616235017716608797799496773503115453578503442833589490720201679974697718269274117935934658909855477293848855389720673106142886447190150469084514894940584843399833889418369113753057121923510300595207188368037773802851126947813061842182374883238895531382611236912084924070359204848255271458884161179099744274391753722767079540935838661060979681358893595547217433442864079218512632856997094585166271241905677256597669846960467241804285551221536279150993844963387205981326331944078948939727504883793882180951233174439838175808798582123094398240388868131284083967754028995366289815006653587278432496070958803014514062537544481924129242354113455262379819819361609776157794885994483185232036773667155218071526759702861427472817083592595421086983009378265424226070117755661158995925565258451710447452769383762822224690124544331445257754680393272655114851322452816411935090593760892047304572111522271613827695652805034408291494466660434564436540921749385759836207129371890107112946065085388959157829042307958985756694072845811933027232606291412564371460482553440223298088370468415450446549305210570535674962944591078955142653638639822109141896754642944213808585827480930100644510950652473532700386331012899573296057774253487514091939766395096102129781703327625381220999735893601734990376668019914569028431096712201583779615777280907205464380623127571436820833763055475973249127117890151494983829440951066652610463783410512904642927858295192294243834139953105708662932651680343596397064306577628925049072923912807054582676619473051709130901374262558454267481178320861224506558431913272179109753064405396454662538951442300749187924990848282499926773085779384376413750604736797934505681958942903767915496390768435815902143670433153814389355204154560456303789179981760308557178216218676849634555196944761840296312065770833714886298037777716150689103102590646730077895469094552386540070863511584209522541027496772021953219665197887983617806652826402093929093008339848592129985392309131475635404194550313363983728381804027074619103237165132044449092491312751234485051128727747109941881386335309627873835390055980798165189010175982196561224394760080439792967585133566112305152319520736427242400368464633439434563039864717857405052033488827568532812454082270557425917380916848199937308400652938110160344073626667577535610615886102153716650432732549946996056387285553404724409486736887229871138270877715562006671132452898306043137287174822752127722399199454972040988467794125996784749608799188733642886821223960079632405148380499486581873300326780182328766321049936482198496013587775011901506266896866653510826805227733370765810455969504534673613764227993990124231196883777030824433787008709975511372686861566830260424841354631663158167299616458182817855137993133574656198273955942242422537339370417250338734178123276575449312800904503054213087188117891411196687475728727841306842284284856648649652598870595177016211143264837672662005928316740363848057234560950065874620736171889878262363125816654968829388743404586216240444211944406032339569851094343104996963212592159761586377171708177326503706284499493963322453080321173031617615171966250615764874618898069666079232424360042675181169672475678999924541545839258256030015224559240011679235464011385661865593266507278547230320613482500543618547411936974014293287179518939910712944028865926402051006841151780959364207078902198400002247144175396101647558421275870342296937124573625820025728928595537392972833948497960924622565449378302326794308334647424595490380766453133216600901835886867641001495820323879326197957379750319335342204418488842794407862756506458904672430515800316795221683201010683353559508253516807537822633294910546249895937864797298743964920820340335960980580120625590373750987880094463543140753278850801881003610763875259175770075840840083930355264139697257086957923390511597317538702886719513982391087220390216065129993213528792954324966413638171836567891828097297850999504880926113684973217294238212523026493122822601747344902028843641868777965030227833073669008616462130069576687926849015860775923446725114976366405625094024707544018568763241673392067089358200136764644807728084442305056206257972806129762555672602572360011228288625070795739435003575849663547012981334629772785690591730501289711803323717901911629400064582509286746813785601802366856353123905435917376379117555240478886943873793354853925216978815702174899097637561555226805029876317729328727818847140015632884053760391230403505353088505125839780329320826867850709405671307903214813753940038031729549807111842402598105947866275143949967162161412789378804462967715507386692320608964530320583957048864134356106164298413492717177976910317726789359672039711822103738519715481250006210202904512932444105400227356609033178384014927680374673721991774317895339102488793948010336759072296511783769337740012817408095881736024207225355631734642924516292631398390630120316833795803322587235745831069222836956578655133403614254182757879374016389211319121514600173567454201004860378265942473501177936825361233158338115090431686406938900131635430188807404985862865092714344045648756805269008755972721006048339376517811096161029536558679368998471773770320024241490153727556552126513335209618241289398245215722504196169997070238200647459423391809202815047701477083455597518566284546820114267146803399989584162846018292551011296400648130946223615546461256970289924116485622977117026536011729758629506125202088621466994150835067308583108597605915936688136161884541978478646872647707531250797648146985747397066746950835974257605432195515127448802101281987286426147955976431051291718027921451121225203036781984964426342198025283836073812049750334652584010396001553699771297186465330817370497529813966998235759242962334715697446827281717051089428847099031194260402429110498654291757348508039318240230516297547982247639217568309903432199041392218533515501434816017256947774898322059553582053954140489199490370041274353029570677093173169127380685978751473593514166096565566861506111801449803506669830835797437967073748280800959593752761604727247000738264677278124068187953447510437892154932050541826403432495867775679786119084647658764776858277816887510798395988186684505406063756500444503165857970630899134830769950975732965337947808690422298629222637194816430054561154372886331215155960779373809023984404258919312502135599348603587345674314882242481865704980862526153455749086974022257742150712644381088499748096966087568394662643209504654297485244866239868116876242707044909349613593497390321946526155880176841785061956461425575593827793420228037154325993623737326765931154136191004174861617246758776655727213435302075823969804204752819575941206415318405690112736319707534324810040859755015628678319344256838880268492304778052160546110312570882705203387064899713595153342960697356819068827867584961691596693012852035617992850005971781185128561917982817223285434378940954340506652928044748169585299400910038740541422316915107028043629733040343916667347371503839859014190566957471570963879125119404221492967483571596664769240474197460095955440667605710449321969402146574020994256684510015729559153855123061766604840575611459672757801954125825984086366400805816941753662511731245750272477510429008735875261330450198277431751961586580605375934819051649055075708062178989054462491653315101342600235732022995607160864355282871506939848166989875068220055848990631712817733382622056309609952598924070691494936051755379441803558427721657751020337338122429329643075371139302114287676119507854973983475037385782594684452291402576445649002224976941310169986199735091215452949594128205608620523370553401515970336811215596898589447541135481686396399871364232162931305750793683433161407578754808346792396377254437975507915006534722568235595205768363778109561995633519469027397848813139892888633463277124516674872295986876979531303804691828454865407519479236239746557564704899392303408595371142424614761656401837486143052675007948648600590791691131330192041559800582106939088789031559766797155048931181338142976618107898919402045344774584039129567254801789056271868570861702517620772732951592960468308082631200797634426518719596562264620186719238566287512077985779703470371832464554208075685084773692314413418753445410004040782206767437508885799619372411319941685132556272906276036463724838659890097049869435888472804682709703460433413975093174758131069209260468335732140248741979399488110255923379297310192477389161819491946744692166653307226799048404880921603904098914481852859402587998894927590466819013663071659822106199036291508647879044583114191981547596543287606077397333184165551861702394382722513806310844665676976828988960765495650350598485735244635181153605102334591693558148003549881658213940461891925679502717306897603113904880346862072007842478063400077073940837905644633029007946116517604599028281062660953954407162031289419051228832244530653375725269877497656611121627418467406846856100797087926536641863308977729668716189005144944272150217434061943134700789452204274935640132769513985797540066572128246010899483423731843508076613996048075078612701953195746008004183717286051214054531383789071933472194087802818585837800393211307658222899601920330390783299469162139177813598320641544380078406452376572161546887898402372950833675219938156580948627635849517423329421126238253415468197186682625274521327213675667539965044135359509582509328397581759969031970524756041830924235335949752372050616691545633857123620279303786634281059849798104678601944876078372925172161393781107029799461948664153200425483757424371761672423171662956509585374012043802128891082141357492362574702596958181991817063540376814425987183298151000920553196239353015929997022711376975185054859753512148569287598086461367975465404252419777831887092041197577500380065321420120290168577795587841684003953158435604391909412202054758105253755376258738899613325074169873921308512833640176795833067536665380371118624953460172904920580973907248892100687069346627629660459532012550980488085988902495268544997173660573013317865937141452818800735383760312904915266363990844684486466419365451520200723030809542252076812380089633291484867847199518069988411484698353810555170877969696827253425167970704873501005795459605173377464598642218368889910080866126608152460855614909599397131995146434402134713425958959441298842510873114236280997295072185751519933037337319678131746327934211459403566146953279693376922780195994905297700138262881330573098771006883540014928914304696963866790785088602656625082331084559739760384391362395215344191144428490100040651259473967124050363470846848648332388364843825876723731044106475645259000387514171810198444510365245759579707371279634242764424826027920323917703607488044484892566019829951445532139583650090491191842919415547360137772080397371330970471939210942090801959753017112521616225944913551739928210685996945671286194067772202801116458600173809144611838903334574184961806015619583174216927810511624908568682366630706820739749293598335559265685721446190512495573217528356909146177517245372901024334640831947882930755973043992028843431367271243170583727227880947148917897181340795080466711661883099039474274660820392952207560432096954651259648216339316044232214385922748985180550609398892981355320841292697054745021912633024546833046136443746717494832213633210034258202493659505391658788093536664988954572000092907785594794048108925671989090027513186587420755829018529922978683079908633667987971680553103485733286015672107070235994399997654745149541229414141470693353070935809908466464337699530731352445476968856902616910084726325692220454110791092853087857707881064812727560118930401414660632270103747233532946479372068140715369117169366126732166464260451460484900543146824909193134508245671885403291087908621340954158750691402239166371036266947294365618762010107704952623281120738888916795567235698260555879641878927820213337558252050830678598136313676396166405006532798678759547979252993608276843665451266891859955864699876338752116651634582233291403271718328612908151933347461354049754257299393979675875097065672815926286853300084218493784625617896293138055409897975456724436969335918634338788914845725516817744740684594390692700607565080223456313177974572397071222489954599067554063621846795738795566252030640873075690393629596897061237572006688023360297673547741245788187855882214703062250515400959824347576643802663079097890016464827137852445768016105206680504155383783591710685792397542782522666429438708253919125435747018005454763933625780410053420971964544322588900942050023534789596649070864564956205642833529803345926868414035988733364957282075310703600353794438364226600107423845206377916209904895073561564799184014694279188260373862017469245827189728241321040258122030068646976096281868588989229616280940174641392261665223722673816605994343581935499426974089526902581150092851855664015876759865392681668297611992483031590168764217751917010336315977201204195840651341843125028677430444360729556508945715668045268770399077451192533522164514031999179265951534455533373089733067975865331584204533289923069709665980256900513349858494807841023776818836522610750472738895525425975734896011400155255865242757440614865555478517095207312043435613398093929451233868713648320543305225973437796574573766088157749840233479642541534281868268364591948178083665143306114873769848181737127534944067753913399318662071416616045267000875285083870345455001868717692419340235738810570718529154873464730165185398903170240998207827871183492471885631958486889409251858866016494285337649043701005604233776192091856913462062500466547382869407016278598765499554255077538329113340749290959307677565842711624619761261465059852417725082502291916957372666242860113900983089402693710952904501003469754661292336479184714843561930109902200039679773891566851946581000201126137534665305340282837733568083123695666140222025222320005130238439377387903770964812952698370117026315397706933831043790048225952693188989714784233312703720345855811787038960257582704523796749836580189011940894767286718531631020115884313799021456647965664813209509710627686147211109068816288810563103118753564036302461443316393744896282120537637713541656500712498034518182864916826105549236235938894131532051732876291289898435530088773929151630606192301300740028876787101737958756755595801805438825383843566075185804183774461890392328248194970296733633244072673100083636676563979817837846284120294997479591450623286956296542761752802125259701963325446181432882828161499858279325788672241904247840096971400015631716141968253289448069796672597261112253644709957549092136565855136528765813581959352681145016873516638481885696531713676784496175759040739114402808310715754306664258865944742048964285319862116500360962418538975141716025540894036872745650939773040185667636834674611646179271458455455577557217275519025602162831284930782793907732727515106792239712972360020675124181680833527360628224905486325358608394722626796275237640397364602997515395370140163494997454805883518167745471047576270655281362833485410366610219694515803618188481923649617758739132057634396352049358845169031093248056589938878965801312736707257517419018767214836968180487899483636110186206483269941840878693551727242871588896205090118949224556924085837395174120212466238053356853057845977536469934212889450869245023295880959336931238869981772151748059808531180785390771509612124772599101899659489462376679930915370634803528872192221734438114548225259642483092723765297209331654981040586222076041970366875145293780893024891207852356788571844194449693812682936652266538000544594266602817550234968940516042030941056691395501609661934369567885918747499749182607886889690235366397096475790800690590395617638848212069534924199686564726476320783406851309819420893057382702873164051196514093852668284347669709412132845275666568498019743988966486234454571072087065162622880184139878334646645760201267901352869401434875476777948830538102177355001210556889618272431028045768271942713936724210210066691220774003073068601871168775870212688403086664416213993710751235896293716830378923382453214022595905094626580364907333303432179606846829913717207875353712260265841677656503579456311617395802421533610064659544792228067819188009721917390670640171766129062344203917466439491970721875419169169696561725033291326420722168065456802409453086769842620522203533967880667907932096508101481485022143786290295402582241198250033700958955754881046641686175547237975609018483046602908066843072084227014260760761183919290971246282832735064497503434739624459791666096079177861896366963389059592065087752167142399544774819331035278489728644644916680528037338141736335838344107527001659278357251466175873320012487229317060401743562039603774765134711477523804286509540069368191359114470999692981970068476948531745461573878173538310914955210820660294463248296335504528284762153122126070039888461749844655034259941598327474204479346110271064897776300376049867124833010982528045694573109678649316904857348120421431032644016147859898814037723680455949500450620187614037433293573847385383054388861225920292754694639344719300053752718502278519570090263066713041031075818384404503899661776211672452828433585002634932385070012646979411446416816113985218396443248873528924356709168778082536215681979208399193887825189091701052453355795248235745621415937595546348472179919140063026800546698985888361917758596749057863065446004639452708637484325802250087163589553645556253691913793081815436644293438237135463470137222568673531209092239676772978002319673176261112863862468985985487559043531691544648072555922861482280929597166336071391760770779401980561019887362800498795526327672827439009496042962769956060298570094412582245263105051174581196715251832831234286998979360244682330668411886719461329404379324754543499078329482469231914168361763678945800498738169260553664028960590190762631406040130584469302118159657074828642993916067703093755662102002050591942248875527590698205950945822262126538537510149103274364437864715636420862657862800888122803266731596508799775311398328570646529100088522694643408503692993997865249716563041128630674997655583978915937609070930623077722386761529496061744133134035796009040645864679467658368268724669613088552415769117781195348660447518354879677303664631682779045429209598490562074898545198161315334695645357488091202024715748406638185461060028847907790254061125701386663346660675690753338383074727431667752837082598387585356220277006723547359499773832569450681639414524234782502799022998225665169698334337806646001482104733567734524219291480212831756226882095232100268338886417584276323694429646795820747180156548942327033968993289312473695242269877593851017480430290721051011858618366130044672031863306864119854909593617882182215889286598053396526905803379624261845669358055467680585847725935026291860878592266238778519433752289059089049551293651203316684996506694681261176896093972550857205011692640408002012832410278808653441412359027720174812668390961850071529766564578925531272083013156224164371407954218483981863416171607657045248857830484659198181683290548899240794613294205612732948605617502265281009112279497916912010424233515560836150189118430382319795736663649196533019619874787778433954698145865974313024689255644424201368559085411380150622607894824942030392802895672554497747834226728158838478498179011015749617925519890901339511524361601512932109723621573226227030962432582156975547987211588649852555302268315555534262781151646650628583596169044632063316038716215814303379925175248972771193991029981429285731430740397994840489124822519320437736841172167293123287750652027688258984278585426778487428154230571398796770811143097497957446929904050501491264604859263401765990971861289940467582772437451124738999492820574922555929502353772656289970365105471916237391421113461413254190303518755731364308285612301780944657445777116775796821161884416977904442503285488851549147611100982708079961865378287446352150715012598316760770111942583347051068920721478143921373836691789753675975810649309797031733271676377360026168396736830724085718950713546791300671041131948583771149817600808304504227506622904562904135292948702966929280082980663307502411624747137084468652607222801093702993379454213158134020140277829094264701446649278057041224967890586174864582948115955612733455602413301909602665726731000915467017963253683015223306656350252932025577549357213996525171128900147618967426076670365549889849252288093678555519878399933515000657299545446950482150746109929476015331801805317852923449466875735319436295638863511235514200974718323236319814069763562687510286926202716137935673625017164209265492019351288815684674168884860907886346142816536245835046499961375971804463360330392295136373106047441815930724942549681053881332891999770424411287546884716684789902870701506251897335855521109859545978214992922533250704403042444636083820226261529695436835099203395338127569450649477219717290469612076211515184380645993469322389537865756178532657184952498629883061448102606968051945227806352212001215517451746596588625536456397988632705803595634188932369867974516488863130115429790286734647878834290197117460573710064176245948629512162614821974485613232701696776026461693785464665821851861095177887831275777464225700619084134376911032816920115785496372063157107938589775039968504246966156982241639345524012790233252541767025382516542759162293592213575933070165134431426517253942930079289431847217854533688393881966667404406210819348567497488222866415198055096920407766265766711484372827212193253566957356650741278954068074857451997324395970030546226674255638533753782280459620705206138656658433348858216119873799582027404443051831394352814824382585871716818763064671745250133574345979410764946114316676955173103373696481578024925478326810580353016941194455313993757153476380933412043819848125050711143661860944108902040406354573308986479949596762851810913896147996458354215975486371823936089430157448054941439852666975275865437721088880912934825796048407321210098080532461518111013316780321449101262269811741697319768719522404366756482407123608005780944577245645753007276987208170726898096311346112289082609858293489585065717368136999933155615958897756394486277085606857583529184197129166293453730764626329049359652760123015587943843524597245881063927324684778438238733312733774622790331304954155810714480277478088200636003872596883673060737187302858468926771721810864976110057505600077668519261379749789429980464196903289220689248484378570586706724669746377654886548321319811676406268032702424561771358729872166650932853882856729542623124211179353856691432236497525705983481900191075829618358279999948109494490452063975269092760940904856673491477543935695945593709685215744770062847561028206018808459513338409431252976321176774130494841183288703689866823850468766079214444812970576979998589955376058523127044032336933049391122598837058883473429848509449985786899080308696574736954681545423501506299197486335259530395202292578570190173632825280656866776486169468131204006713712761412171389664805019388182438645464185808268992040316632992739737763203775046219995101340279138982718996072901097942995876086714564003342537801576615947245651056369170444079874620425221927313605477880224607417288214378076106308936575601853133425430711478592152372410213760128735034513793119400572817040575987916227926268107278316409149112160643610491225565256763525525377583704134952461417156126929108698445885336130524177128318784993264388500316494400815618139530448102310484029998820597688051777033503159132661942216066721648921799059325606843370422807880662865904138457160664911056304156266012799135066754271700054812734538419463485727187698120628166394604798479331886028372807092543058731615238682014561166569334885615839943512427953096813177125538851074313941128599625170046588703687411530403825933039091567521063333548907756823511154173750784122237075127729309976498733050829528799681017355597148478978784850457553671890878760272006179105517611766652492794767523240051714135110273741720480757203755943016405134590532588370942407339473188117773384763216659321446886496076259772566106489461408259536845270879670212540545654754502997365611170277946026267273819996019904742161165754787595014515435407524505611238929540845020757298505004902025011577510029278016158909393251300029306665605015325302886808020507259215483849666639807214993211736321719135336777140038510703701492707039982103396735043835869970433878505469199805827086721721926104185610825518384929657411338622751861534205725145221352475011001865831003062836669174605613027479227960567195412610823431974220386548851109263616451679748236783206895533913541598181299488838954460697836727154677369264563589831589380324626265521672215360773307481142293370638010785040988138522203459733713587990330517988269548397566721636578794566428076256759190773192435945503444195075017435981093610589268465392306560428876708668855444273757604685800551746153153723143860698010939676155173959571425505580406193467250611841830479513592971770620365322048997203029838342101683740675543982994049123869929065420047314052906966465512338785884372401893403191315610495296578024060950443048108746570286091819433391636708083405625887468143796368414544304078012119872071082321416999185179032045922696499374467729872467079010738530043431468352328575773188520596175852386436977433597501847073394441767454021390506201847240913019352158877902439959692917957878392322812727369340035760282977966876156347442460341580839188418545393881914830302546345361114262959496427769683284882844966102705610607458502345705332816944200801813862529748588509377836267617672187136538536318071460308197512263090508237385144526389651955493029426284657056239974086568751945655931131805763344853654493415802935542598719429940466805012549011290908989215738554024632677857382355906347359059948702512710391720009433695407627083625663556956091865639609091887899799449091946307769617491185326444943776760272151474385254978480038575988274697211424391376627160647961867717485651262842400475210943023487776626481912969325704012105584089192814225853797989816440662759725122274797271958735337803587465849818094803364549083771984555512467351118327047085733230969076158338410552224815474273963894748835661532280555632058698387554497164332241762493080293609294249346122322305782767521444431046472049075042057212134709828170641591767305797104949265594450823339904965672980161379664586902829066651756079272319499167388947882057344056314088976619030449092345362729909147932330260970488490015974433849079494097554434569420320881713480196935367251130872847459443902294669993363508071051450408860818984044274051298539330808101564433075078447718765845338881823235494460223219936913709164343979374163317873837400688996051149578729090553421195789344390075439783759762780299390312901965628252557982636499026923115455208605132561778399661896076886685053412030088523868073974103599874375063325946883690502887711754759435454602905909194451641880004953726335994713445780187024035883105694516820963480796341574040006823477137292785444245376498723637087366088757658925904264273325920069357101408013632400395192999694945309805670789235755762963894288449176110497220193576372126219032597289213785658253892948189102015244382241627365264507385077512309908869429553559547716471951487100643987299032110598405468875807045840349704284129276522443971748706570087863545184926919248290191537184973757671027432362081386931763806713031899785289558115293278512187129257586956263166050900175496713354580755878060163262952328253510757337012467752196997468020766574257099134714082213034801128898942788279556804839757718976996639343429108878561902382306746623080467387031494739569748015738531487436066199158292401635107803999972911157209042734434548455142549560087896331909527610384611559909381431006585741307760792864124074481329177464723107048809456761570900340899712452012892330247500516049112809303390764503024779834452961499722842177682571475843718633556623327113761992029885699941499335725544005875858859260408869511060887345894181394977013962254455253437572252165882407169829722416637044781294024160422343451387220698309398828031520041445221054227374523735555242063454438149186120425480282689825731412170221881704363007431473213968324610516655219489137350357071625947059502069893080240012941565648715862137724605315573360035569558414757278172280702157461278374523550499794090577541232885899610159006783503195688750096022530552951477808699066452017042717572706037980448910454577666499470475003649098091913822385994038261685925503739974941878464853312876015347743974452764957762110841820288008161430260499950552529969043542475011421299557367340966827915621206824120906060144991770386512286080629998672806683516782897307926031672178115591569472923545269645619537439431433539951955154385912423901237771321509163287527509908986222834855336936001121269493021670184050528137240292572374070705327004535707486488682311986009141973667216752747387006321860642715657714343250854105066456756225463571629108896098874671264597369119988121762440195384873390425138402940198591029824591033547719582504089382788579720703038220470921258303512847551581783113529666903110808686484660617302121115802803176209506157879716073944018111829646203970760743843531822600082849397933707581487252136090826595393053662896873558162845164582728367420863056049306853293120401913339272689971702788858389771177729501341915017583502967082306172504525573599305960951402641675714836046194292862787297774922009498967337525353246079341849055651283830540621786529976575147782072786547490484826863331502523229035902611147364725158781419515039338271998551012768730764486929834838077595613616644069530355126305616275296298068918945825675555178863861818365362879895335793468048308184441041658040412947662537046261886906634594888251336571676489273530852453137269579009462602637238815612218194595617337786499922869437405536516644514759572352407540716175663785273366387194337945189178648938598627123720063932994729302879790625213332709616846038884722247291560934683373051742912527202280949503574893058291079805160640305672916051583045141673531215205344854288270053649551391745898125309436093007419678689916679016146139782503359701880176946488381810641528537858262642767599235514472427909953922260041797703825367386354187230081773259252944551496789486692323532883305172238793593445243394310177678752517321800719743925330498398409592977246889263339150747858954342219557729896055718349765782464966974256249111637734911369741418278642104721338323188142044781027762605318892101720583917475040893377598231418656176376723293231654418376544807376788907394574804704633857495269822184709237828469242021081795019917232316586634809714390572709320909770356598608639742330990933056220486299964116704168811265597391473733711584579966202552663501384663039436553200179045285264431025893308174207076289147534181165222484310525920638936018429406806347822948544594263231777065158448426986417872709078947050743322069486429955253697578156688383645548101565454566318329246347954562107211616909034046685876017050388131236950576988113036051514093274011777877728108779974384050504842779404939758371672556383071085448399026702144148384277086326617274480528366419443154997890470320584870858684948442652005849633860606674158201877446964534607504034654982663291416527071473945050579321883782503468332294465095803325378484926516953022469535455455485736748852680767173820751502391874824455125800284503920577853779028960763149241618969522783659151114536664386069340608358112101458684445862591353512633334244406591155441357833939816282500254582659662267640668804914972422127318295455226029161635695088150961989699548771301687192087264981486139216812267929797794425508915496960828350669088477719210458856766782177315485273430634169004581063912127235207038077121325583898953458081691388856402864737270614216730528265719797235070256848849138232321798854665997273237120062411539370528383774802303869875551537600275761382740788776995645268032002542888858265118565743962094366331869342133597259326480508793816382574143074320676144149504247670691812522351981944766201620485185672089820935764213183819872337698874375206440234916352098041820219517871152392356512442163784161209909776462001910847123422044056103881127990134879364513961607240379335963488812631414529304588610157985995556834967192931646564397717171795088056328847964415606807978372051659179085069763101311940984067482127509878772738121893892957339444020955381203155853833918692600822611077809506585049066421863788951224128977665414654029107240053321339999280704331144045771522554896649380688881402436561536379208619370320165930254171543753830441478872349086134773698852665275049169548152059438497087445805973621020281810066340566409599627489987873306479253936749649558098983540596460827883204218108519137662855061014130973135912164905807412823786056303455877827274904372827430303251933074727730252242947153910111467439723102372417373693327685354120786629990081735846321333520855342261253840789849226403261450520695225401543505383884531885394171772986798971426833523620424017949750052278175798023166113349221265044863076181420722428341263712253836211922395558335893350361526797866733323054708647997165984252120694061450896142543993422222512946123414515855699732140608925927526587597943390024879623491899366902162325895758224810131692500883940494890247301655823654768348340058002772274570918618979820801640947295449527544888975449223600732294735381497928898573659110619868834996393682657958757268467371500336016495875999811453008647899115567921351133784485468449026630020373017539131172979592520749082479053979381158575930235095489892895502862119177571499564593303948298441352110698833122424123772470307672810525576395690653429969058160594576618098964755444778954133305868498623092685556298483431678906539552461301059222867217083721404629411986701764273626388902155592585198398044927835321173012763454560141286322266383913064441522165346365780151541555421288586758014887006210773785572686767476045638417458325764816926600759199284806202806678985091947283077971715845801722695287578782712558944481142344058368734331066489869191412812199956671117997544103632358992650785530879831172795766199187501270212442297553541901966916598324034877782493360229836257058658001832528657733705505151196105512987663104837772042936824844701475210506252549711617765609470363590087094970599307756778628903181318425778878406716290032416205291080832155760113046338201318542592925277606834601617686757961168882711300173819717216813824486884264918856343614515439854646673891821257853001158958701939557760579430813558515167894882866087163489522621550655828374265573021361501605601886438162704549974498722563990570245627784460829444384020190010615430258249795505591996175736508945804578878563591928561798199066005359771768164540572312810879225638290873472575053421207597651887713498350955703648258694056581915098017955749183567145163636412932851934626483307435295137494406392871523996085958957354295626774800446601753684255578411842510027381692118791267051563025019083274997968051866119690905051292543168627124663765446603966610446496819979390939898924613529151537301909439860716394046810560189387070810381147829495488012630883024160991237620360678055410088658814269269915505032839191713481077461338986738590416839633723451746104343969756264364837050276170643177481187558771669741013904229736201910260960006364754188740185296145752465081055355757477251426187804805683762911198751209471690028148998952787604306160344675615749479986584549344394654397950018180816462772780559026934181700393036553586438363416496111281615883515797601429576062339626727637477802799590547608000464009926020422999842708317138072452260223525129494281326903192556372530647772739120226097918256612866617006110913329894902947246393184878525867103583061476005625166395864623093686100343139880183606918115467742990233448919243365537506975109461929622986519907644648892193747936797219122013139295664521352054991816849882798669783243292153312292466873531454689445342503333541617847062987834020807180502222634526098026434000040390866662260733653356565565641234423575926375406358470939563668085856300743784911711510921903620551068632005409709398268514260005764690854973817182645295106724146929323890597912666319016296577509940206060576583553942275359899796901576102404490966714819291306806776377775354761850661142911913089816076271978387548771792774939678582627463471133116642537818593469565719202972015159895290369011289180149796455031310208114084514713393821860964303269470457189019552028814908672128073796492617175132081144900849620385107053056023295400935221164801662424872751993522789343479940915992626295224370743606430948503855699024840375303651339481853861066260159033033992451458253218721938976471894247205849000212232570308023360258547121484648501286999601961688090207001758953396545805376500270080312770053821614501418028127719713929522506500802027525207072264424805677771856135692796978306353107639837112852112767372412944343494118916472728358780951987594479180319320118769995214177783216144675658011748209303823745172536409537834972917362958684341118799584516413578971374849209901997668833308558491604046184764780876536279234484857033233782976997011841969933866546685004011903119227243535074235491032447925140523510642688584379111488322681681318226452188929286939060964017311169403109855055993626095691097604858766553855672004137691233504220710151558986180187527262625398026880643982743667862514027640114229545003980973486176217386993290756390583428373300928261496462912089185347532970512156380435661376995249562807704549153831647191445640828222299720829635277663807463066132872811096546412662012068749509594783019258398015188446567336730150374656707563142628591858748430832200260830789959520155984869042809322230465301120527847066315926481279704598747999507713395301847805389486116704265401563137080464053325263139255936988007967690595750245640147232161126933254578371385308014318402865031363017482956639548239144642740953242926877057818935370776001156469946462151093381610204961828984419491081138259709505742320934530780419014867836438358601836789997000904557673129228641629312728400706406217321072510737692143779166929766310408557924946720403176013953797624638194994673949818579227597070903522510465604230075092084821972188692571031687458855675418334676765258885155814427673945698286330445596655960506861263194494270672823248148807316387507078943424078552653372358869566566944766943878877406670759359512384312571636397967082738612375267489007085258960557413404237676320448176494710051585007844429217441794043409246540631499413655361964358868165436454804968857785437623530510762313621079927105779141498455447993055586422713931684060491453201214121424721015141068803908076611617841250223722807457813970192711480859170354980924953880915078344087688042156069918073865611942768631477164332332477411046219755867184580110333946804046211896386881798095020559445460266023817187324594703355670930718305883350959301308842427613148014474788737361458237944653684724364463131581626683025113140787159266896515855264171946760252768222940470133969493615565348524756305554991823915459969104315410852267807813245616503371518266605362156260661878472219790784451766301061507498796930821218716009655128352113817806762928634358177892821083717956762443732238801673017905886714660277878059157680839880615031464107164476941489625507530066609790612871527064702864540485126769548918198958162877332201706171857561667857082855086875340719620796937219481375054094200973336551464542138877741409739509606280630741309408862304085170652783057593565917927756631404306276259286019035420700639721305981639230996297459254052774765416520999286056006460681097069009312599737067197830375366505988519554089510813229948980599845666614953376271188463097535327475758195025475255563716844619746365885526066254320179657685626034097464580517761462802948060453183698379337269716389893482427697531384849942201248349445814456388680165207652663713621697316358110510257721016218967506564904688961901562646239655822608638327975673540158770755026929669600487691327645645019025140672976790532748725304672831832256336798359600561684962309298103325504810159301911012378832008062346921832411704761843320317464114342408578306359617393025989492904171004172822175740298708304420715781570410254093627940341928432462750805692121476595988155596338730987131931847080134439987522943006409843309188935301787559101652008194404403569502002521771560529591028761190277665545776483617034973056900523910417230166738508959833062930189502358023055537209794033163395162826917108728625982579926133094257258257803423306616743359045504947079020042388831508359804782784941234505287047482072007735594734740915081090288296799508220029483675157292612534612815429114973696919883376385533950654101765483630664437848322591243932012543759529811958924194971933335543734674977686954556452640816844485320885805774323598079619566400916575792212588112442703299823695962367766010707457737597096523364862229592229402255779284458004308467023847457811515514689488769812280082671418928095798236038256986902031718961615634758416343070425760474431998727381130879699695332390419470542811701315156577621050143410249398506586540524621236620293413575642443127472642449826303152771847661947582657071286560824468896522031164628503953428726762823706176436592724472363415153800487762481682410773175733388854200125676008259051014159100900989963647645305498594674217067817613506714371176197539501773251767172731571580099656159101854157508199640381919895830299001564253256657634531775511105137104745751601297006329389057211598544782774157502467643132869886757992882685462906226417618453899468020001600781810345269519218259087190997703571893915262275353562002142635833484153649237743244400051551295202239901796050038791372770123335789140018178558816132924591095624808906495176126878212240782788691050807430771988561298827187233947435625017018649148304958535595488898292716226862239933740437856469382356080470728815553602675660246275359271354008595591401576551301052222929629637487825724835499409107336039036676579391792012170069525502397527076482975590053585716306392210324737094897340603524439627321251201424040238658385643024097539926366756995437913929210186316472889798595896078936009224311316474334323189803900875916202865988962548916514164716006320532243245953848493126907391604151421887514579756934654757163989730790606004211106132047151629322757913776351512659161805598448457624210391015334963582897356909516402117700052578387336605015137752268096027017026155525575696511158545376860551245750695780967007475548927118643821410506973525278006318281113184951780133595368427438164887132633326941508798913331396053357663439538683439991714791509120346861169380087353696758693050361764602344790910092490194850027043412555487122086872598355095481811909161390649546272304951509393765188567793059851569668893647846381552723621351482009222525458720456564225605951385704507595525115097392026940524409948872926554593433624012908168397769794453997499164840728631879333997492012582601051995227507165365805906587225311551871851117957149940237195841970983689730164847511142392245205159682038546560007356956702191822457177185835977804762989975021435353098367626958274024742924503142156800486480890778295610975645398562619611280607149598240345675507858017640811330830523522151100806525620114155735029071641481840247901872310259372895823252572953437540325288144538511754096559396249402390704964070642024764386778324623967101851110820024396986313145270470238705384138087770355728966827940702471383131248409378125462814258272001471217456619006227995154299503423355100606716780240928941748783409269556051315402131107223640646725324183738343787942836906536406875131016959261526414108961339579215082322391912312683049188171289353958554626482771422749856228547954226791811259924950023185431419018141981274660658868713445870498757014918515862591962554944043626711414764046429085458022235372937579045335900767579788726927732056243631864528027730923594722904900248362728807000658548770041171853038297313707778349329244993686513607579833325089055404331591739101391107160954570934332226604043512609064423582024530130192905138111137660055517732146868470561232396702406843632584918242795379903330525501089016352951192855744923200876646643598381242211408341093030805716583690613346668224293467975015720630556804412646239795553943541120220870534716996776226513795651020886370157113917162820902914159314503743527215343919734953903620393689533734562036407487912341327578381837517403078049326401128095217194826388018425278728972499520849969917097469629735587089950300864224535348604012049052249537959162994906364734169387918500992969866670999613142948727568011350825411010932893272826888411451452856906214523964630175351335230979248242285565310327077607511415741093765583134154553096244850394202329994697682050124330168452913274846219298024061490212437174261763640948414584637374747222405936508105753264378689519456664051808406570226348927074546988809631363323129445580402319443677837684568189042298036398237720801836783460842211691473479673270612749674132395214840647894877703831810965330856887049450956294487426200672871867289337864016280674570857892832107759611856259859474998611082841074676696453116620166032821530622028975566877779511717336165312640257199166712686381485550051983838181179367046876756507985745249809552042732386342060216398972698937822538239280312183357679820758743191177514366362686820962983340763355676679564038077721302756569512451576974708838400567556509267033809413289826137702542835658980752793887629651566573604964422180654896321311103305530715445344461368644597527398588231508508143479364507745297089394787357585947226364075907722107770200978632361901169588054302371986062786726694834512197261604262699689408921525889714183442996935681634041114694543464843691144613631638920016612519978939369652371448569878060575679949067671674759464810537980389448490027825183489440926270820807002941620458892075478752382320188896867216130159191652650418517303491597980608501571690028639366404475225869072867436314745833060389580169025817560369665367992378232589421263265507975409254337299711497033726832402796006729689657259548683979761734081960817040164528211447930609251186372111162029929502725981678342789585113264776319833896569237245520495001687810798072591470634692612881729246397228990074599388533196993426715998018689026706699481120024183727460358308697030291317932101057690649449019726473265042335132137798057080232920235334871705474532954725815212253341719555721663064674482175000024197585594673887741895369934747363925883984105167403408889435069522332404165588360914476919988864080931597509282580379093238006026417310105109981680608535673548788634033067630431815523822407004066022221051528914060415850518762268287908462093252928825809416796467694976329854625037838967442550401548869366353004234451475472022086628143639742462074790601660934953559486331529089652855767931851112785590769860297962950308733681470761505443727873713838060374436029003885629065993391064916934705072979023517116232632264395604465418572154017243795696690660214117042122375446951338035643634042644432245929012873176202918312439692199074729339286069867441503289837742212120790007189119691932469162958570903888992453704362054411336967259415057693379570661491333040677821548788381927546536183668438916521615838458656811578626514978404294189133920378008090282445785995493198797204437337370572222252491356999968811337894742632928011274994240250901572593806553763937555725512872769545282560897104266235209753965325261111319723064491610426026217338731628044062126379016843643682993401888689843931424626517617630682547496303811935730917352399842214764399626819042632353659714994857634091744341838974268663655070065770060875265064064685358131361591626237453134296130880019423213753553730380622970282260788913018335336475812217273992805316454468731729376149009934388597519830082147730665332747472308427102460943512593096297988577925539556005304250083037953353217480045848803784165970972077691194314062950268432931322324501500632817425609152970730734858628119686854584950012650278204411965291176706790849021114662295195502429500011284354120992487486783112153797059443978924436761478677546755525748936901665353628164205361560058711545863725375515167546379220995465273542595626611613182024200003881182920480739898873931466289089157235720468886446250400722433962411312895048734011662642068055767474372166097045339286415182063497131940465284712747820444926086761080038899802339788538285491986354771061357720692169206436976223406761657086905978381244316943315067544953284593080949035017225614615724716940567269953479086051248129040140023564836228208053916794530786301008938154647945609298554611353133991836498519589198382652362754215077478111618767527870343281498107452876456720784577478920371486715775191822289497026152801800742109629189110128994313789008654459948880135890040190535291263154225720349298903257813422247118411505711560770246741240671510559364790149216705987882692836555169608276114256174258803492726216476104039139138177287017610824149723735493765088936894391995465428083544904169361283155235277669552984456896453988089157693943103097688054660620014533468599996982231477386124931894373960297904367744553510718235196370431937766317254737089373406840015680617582764684297772901749531799713483446931879609107793096645115305065741975813308051667609177177321750181817902419756531193713737674870777569456143952243980003751368924598241722353947435814596009414998745238172903519592265937757925822687030015688787043411824531479087480048523367926087495081234045529225631415714121257728440285155084063936292614949079449114303442667088595502926761089796562964006199423342976789216195425146899387750141192956609048585502068242582543501627876732690577186674444613818556942465425388913441354913736936080343889141643170761220726779088791412609718834504436739412168067066063966344690441753502598331531148190923453471977703638361373930438337442519853477754786617551386720411735384328719557058581778377501179630387235625739398912034047106064727533589740160337719093845622103155114795604366319134194998932514872980322511790248749031886515336768531324632650699681624860518263138496620466166081182009826014286665463036791454035168610828808180931164885464448330381690672670748693619728150712921703430541659278684638348112145382317600654514937388181210799960581803326615990767320165139539376680295400678785457016869387509376954472279250547391572997911687988697089383400855240267694334481055597860254563853506425469112185761968889769298079520645621432869407197426326007851903125859693033405446276455091730756608162602838245986896159904665956701582067479477345433951928233388372883273794550272178846594923123895782376363828263158719206060786946719512573304591420976502121166601941867828111194296266475332255773759398442022462431680014877084669684608756080787264318736745720991393505466384370658606249350762627865907594673553632301141109349656335170081544175810266957956032510208584535735356510410956790698975345829137828894467041732532627240203398833562770522163914519581295036492834984914415925167192602441746901654996308750742947782913237960691767157233250010029710040209699324508594654230305348658124688233155781114387926653900044193272267888505693172411063885580211098354318722705949029574990532685811554220027911607379060484137387215971344115413236470811342973962968284886242486848701594327616909156815614829709439029113002980145498966259174401364264219246392776520023699401128391035693985712717463533414835560534927657951954487477120322006334123051639978988116556210632594548941218672329105539707293489842602481065001117345342884853816222882219863890945883925700733408817940475387355853917597888289941309748385671954319639835697247333353309569859623341477070784654711962693160366879960893463301516974115478055684160551668483847735094671293667143276931181879022507219495499742634268153487919849167135928080963743329555191889182805352790623643365992683378968292229985408990770622483835630409126180144851456467461829709898198683489363634200691286877408912485887747445698189076914022762891182984123366489472293568334834213741887383025818055053312591650792152486903900311886793466518688841318796914016696443918377772292027978043908900586318340531163002989782781280699459801475974649212216254693221380211882036001403617223565822961646789327641622568060406893705185042534224002651275409072850621458016917510141963939543573821873833372182938576980139481181151878679489609644350355390077685839578052511645361901494043094298318709063734139691292045029927788924243882081338617714288266120181680333920533613493647201806232467307369468036293770485375195716312733162646582396242829761469378236743749486747680909132465685508082991781897984323851731106866697194758909242168020014782567271785858647114249967017885482612590877791038421423861324851669093005831116776836318934132238505313324167033080124334096838891192690086294984536325950229590065664652198516540338892816127035467496138107414856990878126306883653828887588099116137858494596236764365434554761890781244265862221910736527792954163564970143623469361518747201262076076113372858241630173971738422305634009241685758915239005439993990047337841075629346339066232120910347155185908469504845460943233460313031138103318201275267175266687648982143531029858787077756172132232591057744769611157043406440016600799101672843306112152728276384522873579276960231594442899746068473750518996761203145780904270428289529181622229015302013491315315509239704192331716201113237123715532587889744319522370502033712064235859372709666209197241697161497673640419893588933840074884721408547581349445464421587622073447435283297516602031602728063409870218585147757753196174751426215137402948178291841301593661676374647617352153479109282712989651286671718663817741336206529133361125579229450846343231389883759836916398962433239285164349230796921559409274664572539523328495160695369630347552861263117889666393753134253163356517923606140282259774865438311806244605437921555996057215583644501083301912802380793287908329291632298894931327970825087671030596677361451893010117775818612468559270087533953249795211989128701598373387812780082715359689417176114731106996255594292151371763711635445338659402660914550181641665812617028366375958363905004862655986926305429609399716051867933906934946344393516799757705099229974951375946194214419019059796899423779520926515102462577602019579599671250970353862779390187104369935589872999975184651483192338247406939381971968674970880286032907748870811549492652842034056895141189490926091617911698357142145627204212101651709175796035626822540915720814433960765016203031588099733654147419968754379350877050734509313728882166357140410630751112687671300542979537315731709350874646663145784222791841221644766543091101575633051865574266998365086123786252240960254737794141374893955556271696311106306164032478129560926628562576280398524128782355443839830789405755588857553803215610593961694211618645891613180542430995658839351376562493736752483893395215137822891842599892879534784108568757923356499350628613346504959155149656190222751439444449142798877606300031829505049232218953570252919741217894112687253483486428799443420089311127516710143845670305328383342235097635927828662658548026883431824441125213780531843448605268199419449313753618743611123343671051887697324879898467160959890388506157600673548891880078068373023447342282173545164543677604874254498189191775018760038957739024002750876291769324322889666460867585399673222222043568511953125765674821898165508038967644878943773446985829292190258931280185481764968567982910487546762496121865602619493767608139364579251959533154799010303648889329722488756045887996366038029768738803766997346459428950770014204065975272592042872918006129111189246099666307689472887378836457141510519209459580051872065051796360920920682639693469422465503571891315368168680057329425858504911394813974181076724788959574332932527214862457704577951834388528581943978641142547056749550394899765948101407195378532333907785675869561360898419133507548062243908259715176786413675895485714708354674851335996068426571936595304373498147910555642834871131103460936551875659122176437471789719934665974713345224112944644644281078666258301563599722886073064698833899214751774134137142469304364898662576933918964760698828904403401864232376967435429828897774368267027012341811049228260612390839613613117062436870670406224221308950536786621818029853700357063642137532289175589100201324415694904016475872495893199731441879081176974012991092660832084320057467899691071638557970332260253912782678493392769761433453970384481657137499815750488537992603371583805892688709276587996807943254918390642675254250172402388220178967576099608889982683566733337647916110463690664744165225405870230529130709787393435620862219760659819714453994019770429748462346063822457713746114296987416783909787503452774804930708234546817759545029307972587110985411651013233602576826517675081676130744245237194955649657516351954899385313081611562816560470657781444938149526067553997740924219861780390307981746506524875335756891200038784715133567608543130493052475901264209909852021649679150405241067567720823191329904684963252659947868931753467186128642509377965576988229443297826123804583384180982029552492150893903415477325137060539043818031533796109678580769122135294912792692507111752125672547488403724963307951132454575534837407833002390708258045531573040838044655969875674284188129059258870102200531867770667858186199415262000642212880227677243284995486564886916909049118384013060558851878127626326257659693712335409544530694347052514745148857276722960754473671468940126670342012601040820385926854955187137979817309030157077922268054606738689176675959771150081970904786548852809627214570263207499947295640867381967723872003692101068168055134227232332193244636195903051989260439337007359804738404339318137078753384961496246113942484782218006659438063171834804846710899532511999676579213538798750683113456834444588054425295425991021029007945462106949400877479866108517767381390106963864234417926675722276768450844591356853742363662484032584319692933012327347587240522752068557733628912608038658868442239205245705727716035410140300185366651489775030178730673648441026158171983419089628371461249739315481721683924558419756632502289627693325151578033793360656414845105656844160900773974162439750534435395184308580865275925856256544818805285301309837265993074679940772279427054483142034686138636255907097838968284316947559358654456155879010313795029919795027127003184371865919858760445854130326834129409973406487419672285630822287613179061392393843309244390904742168700699596997874384131445470637928501165786153973317806639852908535975157200508765021192528347042277440668354357715828158701843829583453853666507017977605429945432628513691920992373240274109370520305766106969856369232479561118678869348430497479534308974073331725963976292970634941733928621199743624371997039551789880935561213639071367097061458609279958619414381231681874536980875474393467425144949679187980477406530507034888320836900196922768023807448936048982898323093567663971926425120968387105139153809097137309867320191076400674343119106716006096640206073608974249521651340551828531923669761803584137355500399405097321528563397115579041004863261059486510124014832647167236626991175747581819078105356877151082668767799545679049284499174295014613908681791306967235812137816767434266154081619940082628569734141255787497566930020534394012609669735010168991187047803815473639427718531645430558519877929631287049897742170020729182511192940225215403097331190965138737080235776705870608045755054393444380143106373791792336635234744919937204028613065163793182167419107791748215949373178827458164817231787821148467103004278157874370975413552398684940684370266809080660239818479922661011013865571619251691335783307798196330833713196882781125480882969160054965080546550901970833733562355683002033875719334239982269274199730193280177633669371395328238988063498622776813903331439184993963310573746397723480439375556593040983245727201276719246941523320505281947499191658505142079575189138055584086530376056897496326750288090359079929305940206965080541423572770461801219945173916748939827420886724311021547131155233779030153748081521518160587997542365147760258653113709374984038597467843553728972178347310878792915457739948239935353243914064964351072089117302826642681853955114426714602663762800335320384022764336503417953917303401335806052463599830276404359249678757649418209236808289119677884081854338837845952464741480680167433901459525639137781218816189315243860757688756322147364880303789655487276933829292769760353063614595806676007355254591025764352742789849597829693233600810513223101993711846826000056287329410522818776992516631403130735429423226653220886112422300091718410420271092343769933435497881696464701024819286560516983322870883387130466596010072074079138227833467648154602670842285002244857333837218224294715581777884688433793277291204555852817756636589261872965878477106425481019337769750995836063939095343880885382060638422871895940539536969619976539588642103502501971431763889749419232332107028099205475904755134632624861342948973743657441510165230063776674362129074473485338168721953531493371225324466191958169106792724316487846355192650111865289752548785705579373269421532219401105888583653959436902226880132368459457030274180759481314165320441271235903975437562752723475830182274425305132831013555240477135863323355404525094427916813902626805052389184841608984028436703254466965906754837650642663535440287995325134226466907791097727234236030880753624899590844280141203422609580742789064365281292742661602379825976961649426110442185980058366040134882379532743353984223677368904800592498321413924372621443197874101218155851183672732425330189585321111329589805760042420160725436462970770133581252043009860994644399948708284862659188270941050007368593365588645279398787246614899245616901192815284874523266847539496269405450054910326822735040754664856735049872674619968445487035972408457661183926612047813099773449084041955724138873679014997500955130423464306943073892460346899919466161644473069945821676105575753171052947385358973686718910094563929334304300869753263082181491054187227445217299020169018134161852842110933585238437810862416352844541355733495626700478630013066826198615113705364039170141992549471304765006244444220484509724335242881896016821657401558111262865282225052145743598831382770455382167795368493707380035699121609400648858279767961778479041813951599765973411915893750862320524534443987566937034309117447068904931944180917925516250712754222511507505130548784836254540477288231822017419178957579681783846547064875371160021603859035449383167463711400440352622148241244238270014796400801883577661058058552850879649712569271304725467602706124298077443694849626554064634198806836966897295523058656543794727840136621330082477552590014655226472385612520530754272167281894048472776760296373345523594856766501210321253337967609089122034612731368339150672160880365428238768858945938450550863581984844058035617686098069208163469162550721279354567170457086786880376905421811996755580587401100936872647238947246117308848615430227745177374583115536128839559548200170326196731227954377416666030132369197284165524941492168063609239124918868781373404913397080174262933868604014448890426949956938657527265128072362256190074291728567658800594777988043408098464958610167003826092510458452988873006476163336930076172010718806582132659445875795650059219672136698651277679341100100806626743175177672788652771696269418317073456587285957784977036472569154415635099155199067116689778697673563629228917917796455212296551765829724976525898582195248585248168229128484664521223850717627487298768099133648049758325290078897550872543104287359494589240781449286391172834913061722124899929121940687299298197842325552308419041161828747978437700237730526127144030310955253289508300657234018199883486842032435744820803735557311189011670324004189114223768588067617248084523057476029114627158665161868864056687535020370399054583836859925130793830846662842634867032322374392851971024386074056583244944937556438185115104133195877015363216477209410259565483797735685808147277248458900565819793964934330468512341601056021439678896506267449985263623442314089950636076475541277679327671266225854530147157733709875523895866162320866103098893018434654175843856000390171957541811137946380169149431818970253527397180620419485871917419091328751375465390343343617934238236621773515435982358412044657118909760362803322774769533518581672206741613371574061299530421013993395729692697780259376833139634446803271766667570283279814360178092993582220127869350895450316964067994324227175674879041165492738662781419452708652027056964601969188980315572126886300773643819652653567395273636568353487859530626449063007804540517801166919886771198866959735628026972479009503550480525848996310239849931762340729715002151881455650903451383295173620173588218913620196455609286226297504893022387662334764550891201209305352525580698368694550548921988753201198707671171787633515088208841690420068721873934019901342309770016047808511572621851171138242620272904570751056542370955582377468147884326539704195513012957264466159755896089466680281445932506335986629031992013557723116634212092766922620238596379423402931923991413031439907247165437016344777832097862741877411222883247932556870178235064747765671793576310447861550847948142220043158926598583544313519984233350989519734330036451942637460179226328864179920251170333180192369042342777212517743708284252100790091328260031076390614885464819950127040119170174179761947349054789452143752404010199048312123395251923787076223847333206074625521978549143967317681187831198686148336849125493534738596178207221136247894573996852261328669432326246086631042643049217258696585171801837732485386759583363882103042383105073296636269359526663498579105059863178248652052349092716679808924296454124458323170733722059938599290332751312945676248249193540668934580071632675123304375097686587546088928977595246029188803517374884023555269024711486513496072035173217612416531934680896571449910011116141887245669301573340812938002403350946327942285340980997640911760769953908532611330460898613194013051364057706532427803194188548019605079039686196071427777353661361213137576616059249104585300697568882226428161678033228394891630583865202455133615631109317089215522735398286214807635573651397314503957555950986862135316370434764107649927680710478076090744665475778977621153397511571052021995694597144856977984051525195355419808166944292547725112891652098113011308478510699575806356408686413174729737679734849867979032961537097855186368304724496239061897327890620257900582024225004367651790220369389306371447531904923941616504280438983165987303818961719824508879633248139358911270521782588440277243821700122575839851109006854762283608433057258905549948856655886145950790613223519273317110673102486240858134090738010546745661490871765992556875493896521682688967032177607587799166361002990008398555953532119556531115067491281216711372636796788223409101207751636778109068956002488560523235088400746507249910228728610147468838759150868149725346056627895467162081304316332664217937951890594884364048350547094860078520396388727253524904354052777110985981430504606724302751184079485808445389943057564654213419820678789257309974737375952951846855167066933968418641167746329170705380604565407296216033942786339418996847086944985533505724626560897966915676407917031749170612764569840298583854438731399581917244531408602405666474311803052034255189732518834144739062941702576102647460067832209428032055178661429294955230235344844490726256065166306094089280954071936237289042927698396002564234835997662130438569728918808628067093534385497821468667607561880433093617321224087958376598752177996266311386560983733733273418630119092019970362093825619783940141595487272023039787742768315243385681531121951796694850721152893889381886473287818186449513125385226492962020187997310669021661720952482266786655010560089743567171415936683593372086551951817094117145995759809447955819275138682897042364477021673756006791641034374894537912719610348632091654238007622219111933388603702482246344792752731397765146935919155419692520497086238357102886712532490603443722989293085867420160642956778877084951445719181886481863893374254533045538445345478280177423723428123884534574975287027901600482090533672477737210587990348902781649717238655761893532272056920240925819160478366551765498060055099836466414141610438019257395301596343862686358994205205748356647442802340721462389830288936746120310169775578818504117963915687544414428020764802132173414593659270631032965707588039516724512844195756549447626100995061843990201394168943894783185347720558523795801246823627056942438150951131115601080186532090523634965644008905021191005344657312616160539333692380406050433589768642105177046630616834217005398458881569814609662896013136533686055638209538297848137625980265505503711945222205346198716304594446184526944001177498506221057057261173974531436738563795137355252027208003890474051266131215687644196414258951979845409901734971813148944420458656123176960147638218381853806537430144937059581573053492107729899312505686987260010814620715033686819102870478226042381818551648958156659558655925147002215920896115470038837387816480159242550068630383967954298099674796083455790379112357995728318183426739334561362055218904686508309867114618554378788435756426988942961067306283375029430464344507722666165256912689217247900184992185105460312156440740051686935880345573095683530831964634776008313301662146241850046931909491092707014021788677423918127416331776725107763478865760261381110759951053600942273755479113561439521808194259789752988823104878152372506329656203933715447923781972114989165965614931499217039290065246767242064385768084142815435631799355908490106708632116980416782136681155581523257855771281629300860314776971909571989733152250021870438320208104015635669753655178536853872642442216392342054046566968733535542792606846778210462088439908589067361115803028182898926811971831715918653718620206418287636413756595570189626073265781718851164027317528552238301788501976814717666625476239455490984746758206351368749467776906650313751001435648684615651147585193316557575994871220828060492884065064986242436563258628358731754742208076558458023388862412217237008576402004139819673872185774050117229837882077789869514438691146668883367153261271162045054958804309633481273490889783683890301920084085354932336536000547277950175201690044556149088877660898556406250499957792691193633084923656203373253657573369917547619561956003070519848156353005515561220099276310942196924925061084982660730688749169469690437250363691281885568883131277330955589103498845435911523727428705048875454531371810526163757071071473310610079113636524535444600420139165192102552843227053871466079972033103930677341414337420993797487186790102236543719847838626660282863316623443428793886979650122889465243396460946667302540693974724937741619982681607379182154293139835204878455635633832703766932232893214956409509025803299866379835071454609689830225386889851207519676118754874633162302656004002915982356446679259665403409377406959023440436930599469460866365678647998002039900417108759111965020264801125359772919313992137262385762357223712351140612518650234925810310298555332619571815064276355871692527657499215976102246874141333582554632128484131215084687059697625336623263397044568897585414045450668611386909027384755328264622001490051560091554951060991849831971443304153262814111453228609324750078029346361431330440854910087917122753442359213543541768096950442585288906454519770446005665895688887010439529804127000395650937345095433887724349089134512573805438099650599869206716527920766213248379432287355154301193949109618704378301399223023360878942830086780118281270466684648373191062469429054387256578702830454251531201594352368458224446982293768809776410794319129778667684592677684333498848341203381841862953705212762242373366191222334717902422940107945821505635531782237695409037816580753888714197186284989678173822355099722266608274851874897799707530153212471933650952630403988971666461575920496887676740014134203560300177507599959125182120578706286035741617656908557183020246571764437865633950472166611775045202602662741887029052126807411960159333254470221304715228118362106681758332952866026902402274167029934509635231417551442244026244209389442988134954851830642970599105298683003549138205337603334804536609616059017791936108120001087755515817069136331777127196293359526133157942138467331447465443324482095321967941793372210400503907637793684529005408031901220927552827688833547696977026532306176838794706397673652963345519193571637359512927113600290074407982179721601957684819329340018323125316187484076905305856831075428318047362781414532647639537814559155311493430067956012525267480454123651177978555024597925338737946497879195354739455307994577846417843477719701207375374212567796130735355146994885093593332046950983350496422653184457751601460979086923617761071860206236077842498342571579403513967078929932578768052498894691199948958450133197136739732145767860267750920337852463730668823015204896699688685600427333563690648312131788168773475560340935995275711132006458438076446222299172732224988122424946734178276903195957036745575508435298577534120330258374051272067504974098677418331608583176666152816344438176499457053711541602271275675436108093469202346543472552995929227361403217261140615681281527068699985840474686920601091918843303293257261858384292764126988295548208564993174721278566096134622749262499232429356863999936166503560536972257977091349221185549781754815537273255943450701406040473284575736192737624950060896847840276851778563653356771763929338485270178254726583412309398288493121193648722310467329931060490923562275466864394564167537262340724781780455137679173528089459108212654525292714292374656709673883988780741609419183738238957247942425918971996134478341167068042206290267151283551415999636807887231309952526877789077047176945191940168443381411312596585561559775508347063718110475095184162880920736786653913973294448545684600281494298210983445673141697826574427516116719689110029218289286663923842531226608339216734498450955879211602613475884819307647294284735784778907144366980942444437006521492488619250942639620359607111675358011604953124599095565346747053784589396824746869579437550030459643760826539595081249166024598385857100122554693899386264663976440730122110057131034214611330501809966436573409862731228320223852859025451458828105649630031202601217856297654766005864320177954073230295907928797762339487914805999017732294977006469543739199603995016313917463763542339806756032011274397580922545523263701280206972164108344009320618644456327635913617588377368616497823343326558423270854194707694196391707072032124164654654364034372092959159321337256378202387644642849608818119451546335025707662748912797531961916666975670311968698016724141473109057083001484514865814531872087284200449499188919760925686882013618386119944621927958568607597792025801263470345366392829281726095091833690360013461957767378960255779665656239085258370949056042168452627039361384356983883237193657715223920371607256073788271606592993604689460004316013934899362331993027122853021986671404181528819659007535527448721608389550986345283435890438661793655862878067507748483334744927950571542715709041977379482671975023657842473291479904807779618169725210528426382731761374578638751602143259557594875043825788152232425308546753736430589185851123130263656352243718328228606757198607725477976637364341203124133726302892993437276701373207683186618784087387645296964968961953449227732214260274515161307931039701585480111086253406640669518604055678572320457471073997069221204489672863794786366030340920442259023508878197261475359415912682435120128600228797101468434529673629820221663077611677934394598824370094638089668823401391330097743877268419346550754989251522760288587745483280297113293286217845197012758827989037164243787021999296864947051733717099514226799795561930670900961013152515313157728854298361110152776484110572387187860378434203612343925608791863492496514860141873497792074202921860338935380925523601157718408329169546532452623697297935469719183102748524631086827561931054564799910280026347302602944090612667157634706780241026665050440128650826051867902981441242302236972628567489982941558916167735973157219730681269539065060958068376757873988619782385914744952731730242163545071692402298140216274694907819695803303097172840164865983941668656506356947458122175755265942469657597162560543910983428131941550563836897335141268985462286177945485598084813533830406517936898002386612876569090986172697001513900760236007966744636682344900552253197574197662059298146609738090126466574864644047377766242667924025555308357590279616608528738861261515316673634087261813193315779567883895344218964151181311490407417216469771338885623549036062042736528083615649415653419622828076172773004453628446059648337429623110943257768639216361509686914863042784173711379707206095218627551357660565085553690830631669999532725561350098570278903421152895051888507273239425748325081288847292126497722019761615030200162516307733640923248942813432331466410288245694265526244797942796360985194135276066185485326433735531335272295761321273385211288304365690315053235439449007533056199545064584263527265773526300657168440635754605446089565106662061245033883443238455891213926967097706773182980750334898181003419414320408239499704565662834112964847000292769944556353406098367953495142091645109622684811232218292676274373588540251786594158203501736239381552486023627706023591344140938503877111396591363332192941542717759640469001012275346402946899051685636022590370735833053271999089338761756782904424339971377209333353336433351941308608788504623184628393933519573727575025322775919793803194081057795258728494910636179998951070801905762834268214285104626858803865388819198931773846458106154221461699370084285577943658955223481380703121667006591598580180535292883565270237546886860684610220070239770596870409303002860025289580083373425533265081415267455135941158477265075179992995638599975533796799805401089236515239938834347085901227416358093924639417387644900567978378567871036269993879509204406539300680594683383968347582644050174768827270123561612821221774693127321761330942647650144079281454191655503454305823268017080353444099634030786818777883631623323864765086954380775237620735872115690183470059220840348397749273304127544889768859114563249668014284625744958065320490357631448099393254121292200641688164679325220241056713782684258494343931450873579784225594118614641037520655089271542900815161714373134862477442576730070217324062139945953741813368840769285244165353660321370823844159699080095260788788240932508948517241032515247037902682705495570270895073779632213166508121516974086477151599249049958372200208720094638174818129654702721141410376092087884043447228258329937799351326764705022209953400148934081289021943553895703386902013627423279144626002293904595560468908054432967275293436731279506572448993549846462326459580383961874598566742324509673623295865385079228230701928930013700486084070165356111227005675114404455410529489118534210761009574084723143002102553658421028594740913147088797324228576612998188593815154298557261553397630290493890622998410290433547524186233155785624493583151909528164294155754515529230320115928202738233569263520350835645580821419603251301417679774162214809216999118436819414782888372889207479261491878158384663911052741404205520421056412488558967864489797305249819574369096013023086140606436576169390764992095934016260297954076755614532601671289711191042058539077451917033317852469019911489164829824032113245535554077540529874283916853055965300129235968855490081339149632255743297752823113486728925086684991597462926493593307699482094722376618998038183822487005007202958391204176695484742250059647744072499171124784937225057755537726065971382316219424707278762674276275268502460076942792580500535003611546373648122481058468676128911372174986068124157176591214070063903722948738840903767333247771183073940251713799660434966102884149639374989642336139880715058090624879216801577127068561927820210430306669897432119508482491384169787541416029068614609800800474577436417526259985792693756529541638946548193908639308214444376573034955081870382387927269844595377497264658234855308260583544163464507042703312609912579826393031029441445340527550264931556537004087332936503794414203864986086853790523568780392747746586795722300161067306151496525105537047719476023935891126792198572192959199050239962419966187798171041161595909066407035891691429232797445210113906537205491322519807251987041434087440405619740653193385162446199082378297874309243479960560657120608853352284339800136842714275885230252248039812203484207706503286401105917200144961376419189181703291281344200671839638040537861499180938758704691743062965214842694114182639330005776190345656215941948331822774471614399565011222043575016709571182638795704412236124940532528785940622214271365250393861280802883903789961368156354139131137969326103941680398538583629645740842662109258444188621363610092469874851338610195164885951595505644259992568612429682522973424794586759760936840215920430451713465698946091536681131435027230015457248147577196437866685029469043830124735627577161708762922008464921483593309032658639287501485233042670967978899452692610237872120403257806661894448936265088307891709814340941100332162635339575943281219113089915011980703789404776452676255969179862663946334153527298841869456441184506113638578019354033678903271240937727614896887500394248448916350990619098154415750614185873592059099864073867305562685536793037830552638178079874586415963653319065679332951052504091010169508386830676052216796223753306138099104743602018631911055538069626713450337832480031833481122165755737800532394849273650579358996791289322614876229993456194198126468105705098151679042115471720193917375046038546951301710471129801699360804112741711438951470458787108569800735501750473203759932590327410403592336996508621209396748934690735542355926891189617529532619890447142232183223505304617958522474190487975684201492978799535348511378597395919489126042413826612262912243673783258600235187494080724413256814450432728443600292435621069168419981690266175340662482506407022405052890963080724689882221928566889224873523890958047760964621312142648123644532964848565673096771957416096489858108317886270479990139531874516676237120100580061247815826435620954068291302748481955722119682305028240721727079856829091427523111789379883311141428752824269776719441221088631789023328639734771586481073870037223665781962614183216067864071941099377963710352446450209291551181686675456352115532062140643899575762340068986825193675752256093670034555938941186532741135628897283826591691440363955416859688378068787760615305300849615452079328363202020297937591408122482244672145308130146648004884939515266138510463622667429730350928449175779825018323695245289347901159848459753695221845714063887490862843567916750140508404621011670387391480233350713949600082262512740402613490842009439512822344571061827816945057408728942287645958364326992335241089117784823864589223040419577993654906447484037869029146814576109200950672845623050117674288201648203891406036170541867100041439999279916249634239151573854563140042148546652922161387972430504235847099403464364941179171180921134438538080870728532293573342449094056290070048110140188870368242251350304661078891819496174781643836827527294048898100151593638229539211417830117690617793693000835463171736792506950918524918123206640116438328678274020834285508898757590431242093463898616578891147081351747629467437238499121954982629044162091808027129998721342973326938420735304139790001006953801508847907760734159472684632575355456032838242162890730389526917804138476112200733185391438838155127362981507715420519886351461137538802648596846426349034502134665739174508487542379434923393390361624959056980920808240049044293090103674034834911976222759760631256107810375502690848208264728314255959029042048882541787195643926387864595269404165018105232199469714427328417980785978806230930394674804811548052869919081289926852121548259200474011795471172660225124620963023878831652598703877248204292905611819803946318583729973381124986500993431453492118070431908473012284515973826411128644451228439023645033156684031793982054928429037570555781693765431391163239609471942992321121877232969928635355691731975970395805742453665790637146156885539609531051073132817305677521578360053078183997922217808246231743466753388201285973509972077302330759961111549915558813522092542183132999823680148735765711852846378796443759598523639388621886743239678179390725717814754715586802147905420935717128332463278148678429153663469714305245036155704503307503025764632483735839555144455643691658664137572169310765282834550550690047132213604678660734422195274406166381727064776912715406915353027105755466574856677409571796524726631882942708774443874575048214901326560887682606020023934697096444532182208184646551788071164209654432680366175948117875482494166959096816179077626017309163334556997933570629858307483478478549821274484348830623892565038755933308399691223856602160166075109676347533487884227572140628344086950129549793921144293631915925483047639950073607169294070021868641257211954309573366045443874799351895054867475719206197625874497811830542915072398328032511824620202243047916428217130859410113245410432349329142984652889699513740319866237547862416080162358444020525617442683454322755511505980880426197894011989814470563237240144850414681777899279715007770237300128771458033851565466580900119959548097527892202682183246763714082753932431853862165524525768898663514207669514764771350935586683463652875431767679747473716404127050324533660315346920645924664843103540616197139545892419988127996983125205614401483058394576057992476436417286730015496573101624644412965600192041243543637340418977078028858294042200637520943243663265028455885767435376528019885408494295372349997691300761300736410605734226202709447214015691084809777467017821335870626900021931017819892096629494244468430193284351643689259575548569618229675303549209423132509413974078302113496477820098811738244796510508411522292400849462167873227841095796361844045906195002291760989701219898415470480744217719974945064604844938340928414347253231268791438547774154749380694388275040880857714830354822633264507512139445204246801711918205246252021523660960909112499706085712555310095171266999115182773282081961542914439627024026163656080583822397275207462022868696566494615122361075171092167679617882387629990912123997755192764711726613066799151162290879457802662790012986401783525138052631997145969311130032334123026189841959459517647902137357518558540010835835453403089958064097985413298004143516383027973178062946021994869082445391849717787271084623604277260427019029986969926115657120110245925623904026864525304682288004854248757377496942311485984494422162316634912662458612118427001879237658330268854981036928749508971838548531356822051393587659750079837179662303178959869515290637951673867244410975593794560833138108489440244851193893168661513886794020347877330140439619869031312248715210586577899140366568853089344288066146172020625830501198317334861645777115214040244089550751747865931702167767792487119517628971964464192382713788033014477097450135027065790001851157879421374913142651400841967850518388498299024618241688147305833533010444480892278506903041631251001076487016174362460396392796019803842277220216433538292107649238319575064097711014844533390198642156876217721955728017699308774358069052079279794998954078517630102131584286811969329767344697198430596587456980204470134620834696571105108322750923141147033845254421499745119585516433293001418118062316217044471995035343159971935972844611333076215664066877582261728783803949237128283778758969691203052616233919304305634719118982499883792855086056504923482482632689869747948911254615422347463913984516925785484375464568198646578484318549030135053885223919088229318074790346968578248615024019804798802403250337269395542898916751050003411922969542678523841034095114022842477782825062284292325061730806493226255865005351050860156325907846503352274136030078419725069203112530915261284217907017917457338684725688986841475898024088515530361875891323722674628469599641881406580119834306857728283581143152101786884822246690594509478456613379318284078372086589387673325742256000768126037350611914570240441187160120649473299788533570014784694249346089120439281151895267549724720445889554587069945371999420889953110773650977638763801225978578433482660287318768856533660146286220618844629435642791963018886794530381485155802058133553022391946964023046637844569097586471658655960343749758664006197684262141473942025933001273984511798922365770352176111270734322653836381616825172372037109748166860357867942507720148276858982999744713105725130051769431414683963390267893311111859156988647731938208889715367215489428821195247648319713888484099179115395661910221733848752771939957172799040700091112233275942143193284915322108349982706226062244536937851247385758780391990066079114166357343397435823088336276614417099832086042318804395034980988467876933520839119958552300438029850107740735636679037509719192227456946767420670226289062910152084217132526368952010248657605248703992919194135538674393948069173645638854357904540319722257047325151567060791483422854497262420897009462547872909132846452592164326288948665725176673756763053616607174541620585371415047576337105083909558147219316367454654241846342893749909970714231029961990243035081348322963228126103320869882620364702376487860543211175791719705321171064139497843868873606880717909744087425557601603323244670770226947558311405332061680673053585968137648242090846048587056722495519295406879459126926648715443939357918897507224415648759564447619758022698259390237779153543153819508908698505657826306187934190682741947382682042853918943465484775309229627084678158590714486533886846584223930456553257250905139884789129538977393274934379138670653036302918039051952101623824724985742430998531712279869455956041940754001997407941271684934418306589476678682419467332729753872081551363968862959880875883019223700841195498987012169551353950485601279035223325626303905767460875092096479772792880119264450171431127878921746069287182771357265978111374052627914557768774380716713044483162260200440278642613482064046051639536246172203346641867767087590439902197724408749924691101044471605859721448351130689946599138434583529941048198000046365754967615125093080800207468858315553368499661079264471585391084333844418856633396379350505730424716446761789452936130350690435693405839733738964037054995851287128585356897092229802694555666886579699058645068208115815742272839435850417471289952926282260182669828627475401048366535227217535604240569403562468433714962357958892437511676955182706603546083532994426850294699528410421068982982776713967845325851896004080129059706636571851013392217713304985682409474274421408381806003139566732829271550867896966649231720173470878791229395255893594362221633946300656171217965680018258096452124216648563429006698551500115067904953151392415847030251060842414708680682450002306928805599702113510272596206420304833859192860368103207442280689847145151645633737455749824928474101670718591166685896678667830201226836524707203424370660196912085570526205148017259707014510831197047920614723306388948527598061023785782359242094026202980548580989741565532012888964193457242208451548495075855105440468603395814429807684283340176505952449714157141146816489687415285107369182170834862005873317051003954969897457790528217562894067135916227179045729456565573750876841661504279159177674239629804980366261474574987860133265179762723652697626900094855189617753317195374332092207149882956471476052698904556589772610979331092024735839815251304384470799450136255416745728996778916593465053455469340063431998141251702302308327274577124929478286317568052076652244934411304701174170534795938584232347560641355326109702656024204548612677599725140879390976119011435569396554094226006749446192996013939338246462808165849842858784837200020249424355547032682373333250705474470412115795523507658592449275491361410215242105016682336088115783817091386500745299197392315850680795077723266226655856089437679797809814058772102436075458856287305750095817405422956113228908502010558633734127445255667854915304616538921909564472588001532498220359848071894625678654001964725237693562624895720081192425413386341183047978456722350670514400764471290628760835509768477130589419826553897937941966564322836999477656581713513323948309828883187755832918800080888915159212207724251769189659448366245313041673711874888055539603721306163934330872886076805887800937101533887329282193921759786824035195090842672485218943970039509736477459439199645984959617897114731281691706805693589451361120081351496057773986952630795661615302987183003841078869591242761278785808222366978956268432812205389575326512055016360464655085249905113597182747304296763693158517505891296751996271899153979187300822310238198146617469904539385755350794001874235524526298532229039457076125388831800271081158577626020540899828291596889603203421255285129090161385118308338210870620850943516926483534866736999772583385679474545841019272848281741958995954155540848968928999193417972832608604372201514856393384492139142542516894373964780041630779569210979528650062642664031611837370871024212247911919431211152818032458883253164904616236132138522322046847697417692530286972411518766688169682747072637765225336337242140271343716944225309129434487052873671430601474223475720747990089969798307028241602761299643261455572152732102260884616953118558882417658144821382088098379329837743662862380412610956739073977863149772453380111788527553130440435086111956734779811555835378442559827839577479487564190371168911782621317599507241068069739171873665796881303754778714246362202094879026549055256055853588225903275672330297005983328063835720735518965004608435395344723775558033818510339987808413634712322818148414431302900140619385369198731487056381625538488191493946070174383392038731174922439813899615595117113179619948804656388104453883824907413477827559501361986361245782997393980275569002070740195119282272443647136977130921545765089324657497186071696590459553138184437972867506636794834300887738109945131900073812083054776090826016689581960005695696187522850287896655473557420713374527070671487812578025667220763564245337165782038461405865098919376506959189712548657469164996779548522634668866031303351665564562505418887158107555426743683257138003772958901540097688319014242258311138278903688600715676883655694157753857239956605590547636774117995984537972433398263684892417356315852636782087517961722943542736040413042413139383156947253784291977768235180060691111578716395615215202304256841393813682350338043048948526764066222375905445716460581575781006657907259374257063306908000601769666770912815638841463313746449169930270369802471615651830383595141689736026723200935837944990996964059721812838735668726354117536577843804826245133891600935114969247089354384115939667733172874778059152551930678298927983086570386971247743427488654389461634314165536326111949835728796067657691399664226335732165327895891927927736842388022257648271690881100040360080600837436475080644773724309725765226920845031707577517433807522989626517327543493642098008737024567354365307651872573509435429891923353961020413281509822087344627960446683774797906234259303955525391106899185924358833791649876599746601492845034938820470725607145360139198400746383632141753306649317095555218806489240240985631784445432801650861484964618174691940648342099941019654419281954316293790255440816741542701419941683559458935187070203672652209603587298421976880572373317353188143921248449792331557492799212569980971983977328698640458127377182340481782761425226401693684470839460139200976609406646975131695991273133786172563830308950121348819508601405982149481431028553463141792668646621142021656793903380536329552739891203753547946025069299681691377932655426857672329231248157895998705175831234950467644870879934258288808208377088342384507630695218011739403156567933131492525527488733872691326459835884963552610691454500181922226345507915829067697647679856540839954084676121608190643003223825424727873317900966897038250926827294680679553931777610968334311366170913949794803688167110326398258804416410958216014230936485158575531765489042762551424675442697665785550019388040781303412960063273533710092329200306570483593024398755099273801966143791490294260974177897646745396474834137748478380278463072962528478206253839788826920081809536172280070890061534020775930545155300019409427461611995764664599178237402317533704994318885729951625098322837174618152947985793969641257531336523753069792092907868088741747429643070464003539003612339459410059364620920417521237562011727648416145691836021142655356625694029437830937993404538685392956092520726367792086868609081481930830748351339207474260943828381334282018272513171129874308461434258490074559878792754496858219720830741507621246602691121328496579000835854187108223054165390916678339189964995441317802416023382235231048269945210293182169989752665291428021899298183107424068112301277257222041770656737230595947759888772919449602091451188125243533620265947909491641667797942193211381386162669433596152642169738300040322064418906350655088214304278702996706303187415866324815710643615971786227240580831668874551490467390551956127830413880767183114498119332991145084693716757755270723182904066318715066499171073777290259185179898587159878943498627564901712083970676752546498367318080934556124854393269650873331717529815840810075009926576233639706299596303165021253003859392031378839929108799964528956916227641246928481599973255909841741118513638325563597575862706496829070130909543347811055352972699644083606689872642340072152737534379185378922832098211451610155364188748162631753061236872913783609415659752741381201163263368444636747685884993940159434524191980111361404084825565525139067709908870093236991371782437616244567203579564933200908514650323430896381453971910018217431325843521713359930441935729634364463673584876724187060777281063105558866893062507064604970630724149504860514340081791360318641603001511140345503185975414109687555734518508535887820423636076400506487344073748679350998048806290211804404115617000781432408937652699542565195970230254218739040031869168454710095690400266421869800068049683495954752210252701566851641782048662998404406935071486545991161845958646956369159673710468998073768850885001003509173807246383490137300559837435272946358506499199242278856079992511378545818261188214207890398231763397551568659087076581655375192444243636160965704708311392591038524234628028900613431225370269019988750516353831211926062510905402922294365441407598800904701343911105341333778562205719086444649395858850712514128174637039169506557200823367731838041684453788434707138536491419059929375663667778587390340856880985019105293402654691096941818974429888366169356719243102373897885793917768065312990591370400173416725039792334753617294899377961716313603359457101952159142793395499782755015476772797850909772567483128900749487042505118163987621583462369965905037093046801748153940933126609840936700478029175692736996878481518249742100925246343870702785417778919564409166532721883591873454873577302753419711149080875280094545502341031090954110342228743922484246628882350402228478261509182483027749590207803226096278750095963263223317240257227807861558423695095214009078359072278192771842241272612996816862997805011680626480277307856854577044576629615737240143168080103439351827969253470258283209033056604161769693419792466370670555834139324544586092040980787167829265179175990800770634963982672745733529831824566394034939607663734380693681768908534811432989698517474817914927921391105974603481822230551478441389919857123585646578676061241404163493695001512849051105601003694315230986894409351192279402218567278026871882286453925240588789424620837344909114929263581958689954979086868519082549467493709781426509383525690374765371843414481102572440598276415767200020614167882716103158887523222314612346377784147905162976196386155180382111231759957703946931992096981608995812206012989426600025505967273001172884994420815531030323389889575471981164604752653086498289577487580409831133585689754020498717773950047788102122883131414567560615679498483525198495018677222221167977500055578599699199844890413447318468266949708867842193569759791557801310258617486470015206793017702722856610705701003626597714977215318042492077812385108693056408885534619965643952818233240157527725136304633875093952764363963315368021012417427228357397255014464544703849164884523801656522791067891241513798787465484022851847197929709765108660418714151453338900809427806314189692735254812698194608966636155025346055803196063554290635141383076191542576302144508369948315725658934175738234558370315365503835898384507088405279931631346186652212679495217757779062586558929022657002528740951004800144118176247166716929894948105203803193347135597529485782753944954934203674089954010098713796204364545983121689360473951084232224965815677725705607569806411070305416520404601076765205443205759145239224564500691768336284925006194075829435332422859063366535939498381182772899688081223472477077940268465849813511156495424311604663418139341417670723317728678642408699434773195583465000275579518300023655572793428013429576838063156265693530992791395503444193233245508922929620392876415166862734790568196989228180188835291426996084233874476791460347065067297333471041778618700608443451862081063354780871854167482001812191520559068427188930265882330265269250231140684922509119285265949617999841060726335250181362355557779732122959939087847104753193701735377204415072073966183636883759546116454153319904479970725949072297293118293143841208499046567837492391929917113921945819881872696315853656995714770189470566395375018519628382334266315989371070007910103609038676026702604724863091748178292432914051500200416836227917385384473305167807949661918543674574466661887259716007552468256577811700084634413722944043190022406611373751425796218466325046734896674233508580842960910922780378670904241234058275357454811072358522668523890058991979365327575885561963554277150334869834414207528172186328235589442021571362532365643192119907949314895126399729309150249770697497600671949993217230107541657309678566889275900367866471077730510036739975850969343042426705459173887288804358880193638608738002712606668431081570270919592325235081799311563184149576889113588345861182190156210331755950362062364507319054490319317834550139766566734859052492737327355758173093377245968393278089081337135772802093787422631640494018580105510586389128358986590495820862910614496982707207246218289796169570869945033251446284454990093646724705346045126980743525857512132572966559002094321348709208629549686433076008035057466271982563088765512252959467119820646774639513797736050236440831896343491614640297492707337056782094241119195088466050879999644959255112009737018724914768608090456410885499149568944629724217308007594141864585046880711063528794062201733958869777958575993592652750108241515105285376434148992167661893135440619034968533088323368736952853848084869998896616050622329626721016237734388968154827287324057705429132449832249188917101937736317247665545498511126548228875285552618022548519161255719292658731233557458215367448986404959260637728683708349763968040817066544345189936343465106125753209951820729484668186763241545615598610933814050079183122220347722654239662924938927750044597044352181581787111151465898105360717551249440319241700503694334359853984624248753955715172068117818900094718633730966310295178230715468213111408595532853331128202609983529938355979774037258672604100085164435498169207174653474413024211737018938054349238150492379274587003804870605078564430562952881175947337505237603168811244259369858932262523506103991855789212017904230522046776289977943891089441296815568824080436882787954168859573129719184007077429320085304185759738129227558902069505643903296378448948878581706431033994581175624287681990865825968389939530787289753183742871690342772131126339616850168356033087470974015656040318810003197933062531413588364668318824789934195976997488340139124758845951019840553214694879908571533264672867161515304556436323312211633784898755739597388352258024768577459827246782303760644887996182202226365733912292385076085079321296586868373685323005083194902738759911612360626152998917149816029630889548137433567271248430734324565163681875515410352981752882343969846764752421855347504891189074389196551441691130903774143142185415311703388813589614082617638460615840636683075020486412658303047292274168290949860769113830687981178620354234655986914663687363715202208859154647581301880612423908874188597002545693002065340113147407595498525977747348950278202630130924253889415581884825216373160010873810410416565282879426335155110293711120605314302026011477094529147569141608567333184637725762587005604429929692111525295749953042663212822534028166574809337828659734255542301873070354342084307983027344701802006356736406581525828016369517227813839565096310753568180572632542989964341168714627582777698305361806410756669157758496065436672477865975370619412150722087589510157178739740587058287571058036510337549946929269188391057192629866478707243742408303075740279675360199663011836225793109696872587359887100730272112732625229893323160289847823319539669311610237623730906614223433804366502063081899738387874027892873728745491742881160240878359480299147524504616322463624311802013170315338370160004709392639007644560906654990505525018080704833236832055710389267428013369868464432138083543438454349401892195121920005157815787989846641128313466170055802289254283001151087550607595794257035473022468933019937186140145721798437975516506088357063444337986551685101596781235786655263752865172266038482284586117953823708394197235459995088647911454485818468458085298194485784004298143526592968727945622949055712025941901291707003408634331192084014364727990200013362918199076415634778463558596185071539337118009580231247258525084389457668146568528415859943833174402649341039484993516220495842023016011810219013983478139133659584237466712940436685260293994443488365650837354796203553099738992571289586728182282715649801227676005883565855641561688661677420224782982480317617374461883981849996568546489328560165614983153102467360927789828436202267341390200723680243791603601734738123277432363939654421221768274656869572141429787285286363179204027410716464365693215127940767476980684175455815285850695604518703222547519040070436788797620882510653678928198799650165190221053736434823128747484690890346346177193022346759677441900924837363377476214753322273375434668251556239121353849184604109747253696715505472774038122071351414243618866835516145933554693433784115516748191429149667208908834529358770277112077613869371075339691971092171120425826729168867102615912133151990696894348263071590972533283143502601291934696718017101772340111279118151941381739756094248373454922758695595038357594119137805781509056483807758708634107578886554207646122831171278522767910545974025326593764171557574144118437620003732349994914316486750830897155118614200780797992910105628147721365959780862184361682134702455409084093823397683203783363634542885166283207576447530081513643840764968134504437958070705878526562862836289293003227590093713689378001668693890215007383764848506750857891681548775012644670081413342279327411358081170414714036926005444024183553368272246511545733750667272300414010165551626462860494981380005101347402917680337114020950723323389764171870770474489927196677924447838567540622450998363111815744662346740115810447403355882319580102243381009972621387514078293020854607013128761843324965456983222750231806495777774798159220607157524129602015685559652234252836084532819058449817140512496183972349939770613095932948768764212410508052845492815021403871797420860740878973367173796304488026977536654054929018329394225978962823365301793090837099740032878714066592445525652088877984868983104011334672500982088652599972487015557004689128208736515968433804948608101667627077846956424630468173150319893976538292263933137237422433720237650167264373092380421165671505807061336358066412440037622508733128158662243982525297461960128174368036834831227448134923486641639141071034819077348759293641549547088523199778317630519347129815762258635536500310904383543644442363548013764882798407538772816924574895695962159204834871406180962262099461874249545851587019470241677125843021799570733524136918452575478817372608947883286756677293943377612738143626423555738472286797677555217104936967454604121915614594273660959316042612678363991512790590420836190561219434809717528082176309512747317609349497983862792288695039873716580922740033734839623301382538213802921541283940563130298811682613905619881539499916870398181463330507621578003552412822862830273429122637237647698941132961168874300472417998536546544955926336360925394010057350873603652864866693448484551137973602752832018842400335513499239511805207255590470628165741934268914644265186932528607027269944695972569372066435480422726465259779873315448772310754054418640551817620910015213017119532094738850245585516383118216922869221162977275328557016755970389184899909480836142853500776576830879429441610043946080664472182711623984732455475651893317432456657706443423652066455665648128600649715111667049130476956394385816683141910574675957907146045750607206274419396388215113943303653127139826453941935788648174415493713679925211840197417111263846251008797590611044973382552563149548140245006083261586877803995158975971190871557536615755248057423728600411638229015930149764672105565951210231578745995957881365385865484358560020862849221713776354265409669095718481916540320078425177903213383003902873233476213406238764764118971024952980000222955319909944436165683905550957225807936264688333023728970242441281813475003765766046699353945754914352239606064280656210541331701651201924425311976264010218022783897580958868564670436090249922152366469102689707205700522241331862345507785165084659892866317500799369958436310783274843831399291545158169156457622019765715013472766439921310805587170346276176274955998187050213546562527414165351081073128095862494587524877801083927252995826729922720272602050189708748159662070293371473665823168086923389455639898243220689532075231180859143623596541737240740779254151987326348287094844244326880009693218941109905435471258656050463956950603582392849818158523851114771679931523171470135322952358591536472155187650789441387184589341489701986836406197758487566441056183604395444605149810708661306760990279933100152867665890651117545233312919005230670189126849468896780098061396190597614410320640940512973894708247869733090555160827059707498831778235824351875684255534454075498091249386060081892135244151239366527556256094638809696051006147934873894405454457249940727749746991024471773997763655370212953135200438449801233354017972538315208060830299495362876735552600997589278210300039054608046763357854637928736780179047692551028185872635603266957973702003941214272790702592336663771241468226232884914598744748330094405322590086302468627942830606956006811715552198940191545412768725914184869290752909971789093071526438868325368676446463263646251471443654516147760917914481529884749514272178785196497118748725548142135325183822130408977496950463018023762300645005491896480982224175324444267126415018721362362380691876657078959659345378978552408756858611702930196470839842416736161328846202043847101937733155506346453421760356683233503946163366582697989236893563180904558485202439047554936013870644733123016120273794411863053012644107393526728053678501751094172327520025343465664234075984774510777352470810696965086832973934610636516513446535432137039959878575514955600218059904499640648365693788350249753675969441448258671244438818119158413925849366662578621275832743692904415959590556819157427476472170736305635935154025882674793997160719640083803071373228985957366001637004906223620657303932127149210501945858166122088703027181689730491353707655026136779906950737418809127407517753818786738896705672398648284478852488584418144978025050656508110777626227118011987041099231807591431700636459495622227750655827352454480437504311357580592889488852195191042206571096490229991721690790177787160685997503439942089758999044089290008432737533444177076400285469030103238915073920712245884900369936170328865881211868777376400121355889971387007836483757422058702920145091633176467625724786607087467003518760832055602767288846374126031092250345331440604044190773211124823514470737536602422740437043644928148413516729944310410162445348537539138905586319278584663083508596799671837337779036134496981401731633991544671638842752557467467548215119956749568265759281206854993493181174537107920853007493787102230075184982257588392073022723130783393855736495269752247902352697695382789843021829825201685225872311955518899829666440048774698049988864056888268377576065132647195365125168625951743816028212521211206509238218435087674186822711852985792630293261997608716593133307926527176200296143557946188638691457725225653451768348452964007864277487440151356825757486710539376613648342746127489056189194937254277436698385495611116167412445100546776840781745085636720510247855460489791339926974519168024868045035537262119765597772524099745770768963153369124662402720817493525385795006962022955299684242922311051913975064818320556918425119978064564294972574377728288866854713260829817484428452582909016353217420073600204656043110547378061787337693122894115734218497741362886752081806206000581788827197466334461231028995145652289415541315160990694040327660481890191456789693060270165722778481927321021744897012733773420243858827381008324206619389820534594497135556153271066174707669269433549226007555660329723406128971160934762876930698291931209688237255954797862024407254430939707384833478164692881289523784111792600476273361045286549582398252851327968005392824087608542536502742483685731059107794807876547202664479999906508980433026493218990497069452457892852184932251900903168146501963921197287298088167218016553572302807443549691165842591354579183460323206584276220230933458499547877866941923468180620705223890107126531331704254548700368576808139547485388357285847958102030725366204654931172060485203502286134016354671597526881108258945255819616221739376791147484076137098516746754770929221060244825979644455178435468750433213635693972340811930861337959105866049761772597200941771321471847797847529200597952948195376521301340647907188470480478696256206525408950986794474588162156761484851187035732971936264913559882105082883947624748840754236585442250529519081411567213460983990309699888071799953520315220658102549897039496078287781878029338054800559078805695566138945225364692940707256549228636895753964275505469176118484836974589748853582580025720776368967101956686711123814150726128860057822044710016211261432002659195592158942221263796515402828284754377910953086748620688294285646315675799775785709893193184878279306637933379772210171741616654632077513543210439804699623101272611387080309713010554718629191163880386067253505373952204727723415143165584566747424305493695966957267076656174649233523184942596111573864928105893735483428041934484349263725863167012554120403360045858894718962575245188908923815850976282305058085445733615454013717787185479983592286424058284086390369568642911121899235255435963115603979881331922881264656171467077035986805248486227590572639650423329822346711255616852156251443266359193041000241428850777539740212051244218591468719250840141139211768920693370978274625603654504076295921446333696096512090934026249877874092137399007569926025449724937781487985118060729708074854889577538085600825008793059682972315982871174599196911449503974129859718151962299586582580205253095147153383746512384701586774494390372734096241966766230590731136052400859719420594380824222228674847627395867889854236717326604023917707886066281544277830477005341472193407039273865329719643317058836094282080477817834742359362490406529810445337101042349914757305642976249292915505239860110605332696667905781499683068693726054034637946173793768107298697646615978283418260439053509288869068484916215319259964896397639868454704851325416822520327527151852748503761830675347340149849757353233357853890829509446941166812155574003190535114491080885544377755461514152067687036547162824033159264156268705105191968669966480790678546257686167338200125630054883540036554531536733151911887024185844546921007501690078988363151801533586058159664076806281915361724234989343060021720250058727511222652959743382328427866041274942873877769493869412623852782912993232422866508181183237602339467484926529326480084827496254447645674083094875934007138166046510786313792984571755385944233571131165566847161056779119755767736681800586236894008648202359569241040497170191740335669278169415556333970414978915112653434016088597002983880115236659342360008960658536352712087307174668784331384358691266810350632482506565884515426479216136951911928929740108962927426125599382857275716497716742992525079776911816448452310742711897926186173856345726709535719099570851414547968992013474740163425186997787507108007733092851388680435050024334952187835787411568041839636474876177353823917136822973313588826055194879082330387452010195456374192672375261378376117062805477675758089861410620477389344744116939805585080208114346282648961057756789420261669661173865633495155659753651128019678296705537582898066460247647990640521653583760380612990834201440518604025930829436650028185157553649044819793926027167175530240122983055315080562074614416940974345816285450460471362958712153768106264058877314028756080481964298817242871600775763122070865000884815083130828344450260872160294166995260129872910762340669218225708327334959974590384314978455253793040969758114095781606164173652076679028956062615886094823394530681190216590888937876898659593800771361925722336792742367390669988968364745228327387894238224918286349677430431394578001364888269085074944807686639175719953784673895525338099034495713051640746318388119378255595208210195704633689325009805974464361832680708828295249671340819340499678341845790725051238371101362086611953659921457787355562454896719969311220971237296315095633985905912132278541776866254368999691818066251979975659639757151951951121651450921610581251887243493983400895933227834543239760724960199804111003598060381464728422400991226618085807111331473269484119331387061925833780000656015682686229452172201989376966420560523178218444898999203337267157332966074202534617740339101691106057799479229393683619616417735178777311523989743575210529383154884780111732165459586871797104253529016395599503727080930933039025399714293286864652341446610590631844865910860739003419490530866470656572188152863250889827758886719326071572973923268262745577909544495865633408417770405054484923841909479386238791282198766948658815943021336849305406125036774064561384737618849492744786780657850612806954494567113484028703484488108891262719629615314373763943156065513823711067085677947611273665719662519933343312256636212573388134843535613206731888990054689405677754925864805304118530455467143483669795760280667213770884551520618003380129195690334718125357557042689670215406789294673205030733074031088768663776369878834467460780286920873189144487418548001519653999150779725921134287980209638228093578456080748782682028591663191104637071590421047966367214507790399110272610175258622592605685788931820226494496201945138656159533949231868103483762585803812345221913632922828807726691615755868050223351864842112865234932172300543838498595900823256010222694047019196659363442577114138664277190606968169001434627726043527830307196448364450620883327994421330212698071773117572797700279984509124675219549852536437390167502653976029107651203124707199810035069386452118158390509871612259528090851009746936652314489861307736468843001632405849680960419297912338822109065735171925936997293532550301577878539142497120759560978542750474199587383867143040235145207633398336041869009331020876515460589252683714675127760986881697005318961511349112515373344173672479257751472858938222919357982314962098089052340478936707069129146902704218673335065044203165944849053591881917055822034409673297909593757065662368779039939151999956875530643922219894070190289292831890689338160896252379496285056417350175799177307379560267142509816232238756010405459971270052476278968563480798298241270101005076173407950196509792349698677465427476633823768787821257412510954844235642813595646462930426824916387966292818740370940451562208507777135536725384834374756144444356971506793774453838382053978890561766807892250215846408440545343448982329015565177889405794606001140681400464193311031940253515756242676392627122004551581469554593658309776424901745277404063747069267575561999572877402597159791455117103359641347650450592742538865536034773393656902305537892315620972255590919869475195797958448451126257880931391720325687938529547628178893928856636857636421400338059942532920200219143726927730478178763356426718116866155431791954567867861584964108462978132388800582798310291591648342153261305562186543666840775872123600662880317459175986649734191556260611221157666199969097688407973137661356662058923846921858447482840660905488214719001803037259219544147306121882688384137269264616385419513384694871046038567563406779156575961207310279763793846411975103812605752545563547539233804272690131342731247451695129647968905253328921003080437029638798766552056467346855164682159897671351500783362694480492460468851112988782706675034262946476809070966337208707398600139187717959721106033136064401443300830116762775358522995184614965083623761665394460254123915480602786772472626650596438197666527673845961882162248746159431504217713550713591050013950620801111303195612352997724596790627931441175382572528774322502385821141140066193908026760510318996359049595303960962583696619518099175879653807335587503758116579574285812923453126101386367990673694248450475493455311770835648721522836500982687690219531462059718128612033273112374368125591163209222862807094695237966863281382626066169135833718962327694918059125197439080261892726107664673581769758923733359044613339475549253874651877564687067835007504807960392607309549994983231298040667709061771600371340749861419206356169555523575206102655856784577376847755431868629457874597544748985282683180671646467233916950672282765169806262391642693794049787782142303598902340863248012113739057374011736293566801549493880186747238366218007731484730556313284389990070654920899952577334541758807002356888317000950117312995767909008849843835264778133126983535968971273025279418251826836469224610578847934821327535035838026886179571176625539945729035494293767645483346864778125189526035610492496447943359819297106830196611831271835308932961101675764916350780454949478237856006689139270349292250831117611002603401782424064405975805416812940650970792041726471500577365591318624372055011264363238927183041820766076477462675966668926839386555801371035180762072713399946485500801895387264026254755227375809818530525086772015493352586218467873032158763185457040865384096433797715738161735742586002942536708120833925703524500527941688795134696413931962019975088170122753349072184135947761903826405156167891179730859214327644045306836597842661130130369941235754475608930545530814085650389286780255634585000997683398909942242561443100946506713725405580809382002107859162395975957500579583537619612103831507897564278955761275324717546729863865633961566070026004320561886178742369867469347903303613939434689576258534283972834710112030697874968686739195888707916750801406023492005171587242427095824064534170806743870561745485745789976034579534055623407435325370339256744905670759435716872530297762352335453428989590432484814671075987742183553717881663712374088980236676262950703182997273494271632446972928948832108346773717538869417627861763267466048462853798042990901190105580933855256516250431267350161830779236259246074466146866264338079507233477010084494907743441398274411114374478125924660846354603411393579996011660754883655451100316188161710763045003280057241723354118868120151625401537105625368494182286969328423173031791628823860354164567282907631640894180131431309598303051712674622071890860276056813399532566347177260389627159888708047849218246905604995680349445056507376645795997491323404462428053980900718778453026170681976425494756121406900027790383280036237114271972968277624257333739216624832909946009226018114847390070611314220051592662611449445056167212691784084499863847114012770193604681958241497364340410082717019153589965301236330115354273450153168743979407839869940632632965742232860336187053152160090590027235121894684363375612467312514052298646851351837146059237708168928312173447412168125215036861083418879800564354683436841814094367961793728768225710539740396460172921899170916802593681892776662459277770475321766079874615370193366046123007727200750561534162715163029539454145793715578659411100719700855569487382422599857779185214599064959306531577399350351703572064605424755749444575063453157121351926204229132849196669856824560404367697040491512657799580438298106671402573354925319198787756087113391476072942528151226526136727854973849367501211497946834929051179813850980880768206278861829686778621545091400033439500490866580698083918140542572480517679355681814003081315010621711489945385133939617260844000946023545752476844447495411005923168543863442672799012759434149623188028326497710673923785776234599877073863849318588686039757405063198213473394666003224417411953763403399406457402205769201283000998623580070215341238083169687591945457512850010099151612929114538394862731818491012535373476980645987424280675910873381719294387031292913015865006146229560271896321214593771495161471201391129731895286917879195006278365488027221006280174005157298428498227263036601339879216726713274188680737770106135755664072124835821277203968496693338112516849482181559490042937998709722006111276130200615257604264226115767562724696624538426821578730776878122887780149443413803955040437820925910454546062670920677890267838782765759258773214943522567156488749370416004108451752774473143200413754714688988231904980393517129061721665668228024520928063770269945130551545545982522508707269507657137782739931512121521726147349931480691160473349583133849777569263754586395761907891879681673501344633106497273075092988783555330387987271095271546022426945409960432253852183167502005286324071064744894530477281770816011010485875802683978726571518773223794291098789924475837231781897983716179196629339240800234019990890333394511723108071592048050617580913857142099574589162748781448352684476759683475457797033143522708099993364410341135729026330518236390968556975097653256794602098539253374414736497454278219239334332664028640647926437456546296867370033379917458762885690290141876844858073618236720390865262788476642123351963327641815704757323884361587017585395425933743015048242015867376963118365601707769908514510797296459371571424575903776646684143765739571448194557733710736373674109558772034684059169681053520381935574541724503360169002854940797329771237412156864211462871317418040757560251549436106834480066189140730653015865389686324454083814637300259093334478588106734294039843136689112348853944535257017556631049991224198255148035431154524472306965361646237415923969756930358127323376725023024936488028940616466942373207630991619236977598269899774416551180562523060167356619795147012758082104805772357534911582881691685516780475540925976433496672158547381565150675346771998887135856474885596528584287335131774525126644875556627854718554972700641809081142958654950483389905988885937033214641853901012908702061696797260497727361688945309221733292564774518272649516176363934425783661368125997468612376898122585396515546031731952335495047183904162818820651056738795524858581028439434303958823827866491963841382280615931738909726147267433764333241029683437340663071968049300980596025533589890508297495843398410661136079659886688543367008309853532127884663275499687833779930936075139650186519618991661888721025648070370336560632865004439424187057151162039098760366948884019813581859677169908686649354519823136950001977167696319066404251549218612762042620542714920617382807709602552160116934485743311834734216886980755473614725696876717306806772980465717910181832723262281831202828018739908197681026079842323564771957280393987358953894634279873275997546898069380052543387268043529069448145864361113653510336166059410648810936606620437343090222161778194326328676680403265051138942210844517902301661625855411809313082028935652340020613772574854615174752358146307241643189557459772498604498278177917662944174684005529374003786916434057244635280803968830237972238204069574221393113103039031146908325748479823114431616637160325528008444128289592118235722067700870117381245052498108937014692810279709088655126855199021472864584928506752673989720121612322958127725411180889257510521166678968282830800966889627040822195327070452099450828006980271974624293200294283277927170076288923784005406096022771201387564296838097183432286986478609786312376235211043407731301492565455809905438467996300135684850164577090743596702636335629942687080161144064717452326241218137308926016954224188149637782283008157681734356854301999923049163195289904428283489827673740514123096624224788032136891542149207194236853376261388430033160010340085130843791371480884830589398188817459993633810425616536112604430930948812381893153025620609406752745681558723175438805502582349691396048049336868696850221839090291182954479111034210562291331129298553506975113109082133278338246948764135662166405626731902280480677753587486731935440793783271254174797236776219283324165429341253561572100302577914079893771009951322527659337111558619812506785112304326611097455291453390240806490576115021271371509848550921690447637527653191100035035155110414049991733966882575746181922389812098071300839626634106852382205386527795243945403942343151926005254574031245164540677313509494382201811794164120064242679387332047270153392653199659931324724251319585076102179731715901941519439491724102908974971649471649188604079771276063022187974507084320024731540522060433494795133615507996738717729562850614754097952343414671416592783866454404018998019183860805269161031659512051508823214243587592634295451778863212007422227925724641456671189385456290989578050900557332035320760305452121680068068986644185961725992391564012080073475399447527731349267244919063897442837226534444814005306684211406474121591873330844858984756676287832014699291663635035066317394638450285764577272503134461984208080581818919126050082406785765533946056387464161178201452293128668888180532399327396605769039457676382938326894693097745848108780906971947015219516957338187338418761774488904838414826427647756283040353515301329459472426178149279579771637810616573360057545134993740522780188084372149525017790178014669001219519376909287923143220789538175361612634826267505614825698950298667144296019123160640918243394834315483976795754634712975487212680686594614248262728194317787598925590855020828316603817246547764764129868972441053212539234689160320332863003834599457682570266597419292983825242588409449317084985433960897794321743833428466083140830381283775461125298453977787247668783280904891682559513153013456141024073176810700751783330370745622959290339650813017115122359566512836604105257669805351613045593653185882959845947361975607971979532037293593839867496479278402010789098479270237707458871921673535155889559497112695085841897885807833944288322849944928988722830404226013986343537718408882683686982364353735642871039415574703381435335799171126758885254090580584042075573239702287034426589109113275204225591285450867878560235198015801653645454011230749293933188519899122716809983272237741915699627498030881133848306934701112750873887248616220758436104244305859434197307109765472954609512302305411467613806103099881498404406459614851506892280750471655313289545528201523396514786926308532521384975369040931459621136193525851407515799625293922181766160091922788081574657262954441574958687272882804279031853950029280392613986259673945033568079096609613238618015421581416344789196195492614257873924851644519684144379706077181325934207007302988751084703529105336817316102892424085607999210698716667502809203315872947766625230499741929813713564350144575331780192186950342554948407933987821572978685880097864620048821922059210714611483231366864861172564495339821015949297963657029029576350327470587839622079368947960691042016279701952148992738001622089832141902602453492279819699924477192133982977992427396729865004443687560758362488634959069712981005937955700156559099202207279224276936437550431593974458235527115034056465488114993536484368377821795325404513645568897049859629407974520349916596951882969236426876240010067515683240852995653318963036166067838540094442311924626157605567232474917777392850070727576159518709236329104428507062009144712152635868316429326201116799876529186814703127293764430034967180034305113679032655005981846946239231592203301112039165996445483861624082962675508539232545587048999775220154560197372681576337016514636718301089457901234779950255800373336213467478261650083390076319509325368202025007406038303013137357919616334279203137308898142809136002019069808619871054287970585172764280118385904682798246448978933818383233688386160880574992658190450036100324295449224412630556630680373290583599821079285679192216670189184715118583115271820704595539916204675213699818341228371160411577473469461763106909921414699534980570559528778575648410498596385169960325004457933543518098393211827981489921927059373870701271289396084189863931203360909072546522341541199064786014102196490182183122493108998102153305011272713673870889877392661012991084993934859454318803970193124036939762636611138473456260337327240284171128560648155786787616922157015734606327527220315014261676812812379136902027363716825368744786184617427088191883244247190085152361905808844056596463081675687014773687305599199830873159006162897235269339420875450925347607844073104173435048155476035694777272056066454384561750104448106465624211285249566749783034121591932791186043202673471443140725254840673193229823071758435116420720559743274448521011895158487916566448051905786882516538323167889283371066106342476293326765014284778101133588793183861376922383824498403355242145699224583970797589197021640662672986873760015470479376219565719124869032711698959575221339959114200144340829309938260541016929478014992935817355473588489597042002139836890263319682882233885633364387844847446791837024634639980992070765265427122733308764561074898770933602209756228099557644319829304839703464312461340789134022778994259416641262374604312401420181832726068980830571049701303591761790325985507209208415050892309989042677782222932012453743646704036256452738170084406368453097585079970382920840939575401064851312559754630373746068343130543493269720388141068322567679876838374898463048840446421582417113182052958868567296836746241131898956494426712031492806959499024005504497678914647852516618016984840107875224914667350845555707998170126174955981468341579433034461097551797926113292899851334915524500631882619447395837068852153622511464347841509965384061947434642171058306715454327852968861394993988002367758857406209923616046521677390921124425476583057821170128270085256434099296866752109131227532500151589259152665334005517292021900694748739721055369285461794563313169845188236915289305179014216347913092964317048835266330452147632710414004754475180233546167593781875690868894378578316216218356481755875188303092101657871625468304927208925041972058250222239603550414649257347250421959846935454588272025408774860854110082193736955883226635174775832212306253279285824174232920553140121606175668264397829506815543503721183205542118446093350659431946993010649386301094417379861186085360716509528649497920932593841083795485575043028473660171969916327770203322055968859362279088272691989320693598063333625192824617274816123480404388726543623328056861704347060383188767117300778441614669651544086007073516097927948796125145726863348785355498345534786982837251771457918366763192236772187607742331974062113950919304184456027842257643156687048871746494293623718430018587286453287897791848110387189969604062227528577082283856688278163921811844547164541725906794265911068696357647421126653191859834265232876764799058840527207797089641966151309463533303304591891938224495631950256963592320798858273919522116747878843794610253318608229838151756746154096851972603622118784335690739634112446553223896812965206311405742484397580838017030186769389861536504109147541152184094373344365089483734402657534079098661904284456135851275933712988569837982089078802197282746190724717998440851546426864612794364377221086781748232374495970750914974425675990838111668123526055666730984703841859530111396231844080832475111145729578289046343083642726977422240821398127230293559431693234782641056494300172646889753594644063224924873886843648253314022987093044394567404225086698913153120477854075047386337359352025825060566510659166697609340212540532794382995481084116201249821501810054347473161569151549286992664278078278647743165010489597912211220653774319073886160987998234485623728620918225079613735184839058516598524733715994760171859208608814016811401933435672124514276132422894666672222375644072165281808264212442321751036884447696714861461819969247609673336864962926089235023715345847173198630069853662497774475384575364349273847610685885013555704974007530816841757758573315963344768933803528859412499275891970348615794845884943514451367802740093319489691085730822944326887885578682794291373832951694067977477934622641581712905139883269824921218240829184384794455764123228671329133338763432941797255701624686080436679790478117415495212659549250266657651866338803637659351826712209185720208746225585639002728384512265474540093549760537267297730309369998558214932674414858869725432611792035122538052179054437772970033606374327765124020057454449450585558886746587414184990617567429167437543071282874340027781390131457912515023177250649860533478263069787482318519667082511519561830260828215596813312191023477238971768601335305389294981132169903134592402564920074012401123955768318049097317152797321478120836693720258876653039507397804264456476682936521203013075278894494271081937854139872209234755374023775017873325773819878017490223293235605711762396520439107304850304185096464148435672977065501968019437113728640086674039803002534562620970293163767486553446169598100119850726295334532121509394179374296497462476745790977872859333008325015668700197699121912339481550400316667090774961806755079121919236787890270603879878281814918677417384509540938053869848413802502429761578240134391149185212531041340825973699655150094879194523548373267262884542723807146341952874925004497793549317989973474040744324502459784830852728278471481878279405461317269789168601889614180253878636850034629871548386354427037182469806778253142677815768961170779316087004565246875667595133680872613551362834682683886982401795872235147724078406176852267964425520697417405179258190002489653689749591898909354998895582108108315774916599249441432886748858597242855963685334273224788449584127423630760932470959835696482456839808089482569276527823904487302967274191089473833693873996596928985624312724419912092440970381855713260365361007549961778695210806447197491969374198683367718557552974075461353767798108934565464128579697274947574234203174868422557988625554317006112596345916530383057134292258978797797911091532102004765127906512920939622818945758290549200092703020253380988343449640791425266955443532193928295295217965096163555751764863503475715036027170659725424150986877485492532291410812249094053940859550040053403388277290086271254884488646746317578535954984245276968998405807799757258644870490393035717310644530345744338548106430262900674980200504229719665499942765758026849265097577232729926395988834997126135217401627692515509496740459290834842693126703143707907526674554482762363857514891771439323131902768471286745937346061492419224859771719368581149648698878194184960403700498630713239169143997820925082947312468741720656417156835743396958436128261446347546969293834247653954676566206047893200439336244485453463765825086522892087346371781217475264728729334912878242225110576924231293896376658051304068327320340040433242805271346743047099105070570274494111804630635263367061662698531199914607495045083867431595454505706949935592226234444941630998159863900217664898579097401681114599388609403573799803752683086597818620690533734982208431556444130759485718327895042345391890039742896098812469014876585878867793222901805235171350959762392433682706757194781497851375222487942803719271246396566864213819811607793219601448302419285619581899811307411200461203855998625155339756902824195671501369755423153551125066208737322628313087998259152695924004757490272913673985070486079607334755884926474050703525613254221380520256436501296135677792079683547566939737116385314028646158044068769632595871187346977390638358526120600017276647928802243309342928017281602907373686811695336543567091049788907498837367781133841919695077118340669773449165915394205656136770816537845806869223148744794806042424234545753693117070832455280432242195310728690285782709321576623305592557049684166256107331204038984999065545704718599243136494454027310291641874348192761068695398945411103261256023173399554713485652186427022703831201623048228759918147648295657341224455539595737718393996003698416356319306280415012638891807343001421206443797716200226897427801904992944410898101595409361421994150984152625485037485553510963925963205928797812708714300497164920145938866025807547683827792905303216489155489611211382273402521247714502892535353016201830548407335994754529747433979550787791730075687128030011273193283269306470142687227491415770207402056911554970128759241355891160755996509359843454375766205103000501703037168916512983717496126634081382865436525440355362166855585940842541795601607167123118579490145963737565044661779193378213214385408435450068316690216970000994730296237656508531542363993608719908423308108158662570007356987760230226265206332840505098071189064715299971445006202551495222247278057181416336453620518178852640181825160898959192497101652261832998721424220415803476296333540005985640306686530502100996655854513563715642537731811953480179993307708635651081249377177027979490151729817160031995787776189147902661013643163205916404530883915461902349849101803563020904833467975625668418016098138100305530450714428973569463053955314202053569706307767901674640737651371720514432980960972579222067068834900425750819921750290396500592149240357184986236683536609219229360502182719645566455739745252461054804671949032388953664725595814146193521239596989010546213443537125984232095053559803785384886765417755520606649197433402208049955562322193692528124624524704232596852990795252675546425504562394252802772129376546346262159084051840303128615914238768638850563595985872456718897045784411695262324711143298559794764664070060190663021852407789164520324410911909277570275952061673478667697457745866986198141882743293295250373284286692927925582704842911935065376703517391088022101321941973247360185759560157208493334303113710467449267748797569629104155104391323305124802459743454882501261195612391895465416678372846267343054573557159326722991603925570022156154624452887292189774762862651594227549501408357199393682649196045375412299224311917796966777167594908724742674116563889314659543177511343211867743396360268304058551354331547922586744577990790146686638175759266026267577554899411673650276243044003304217211981472301909427144148291427198796000901305757785584936648203725417196491948955965223270186604709301994542953249025006492529418763818845802762099126282267739503988381705366130233129605000027328101611543713583529498562502684945750970817986275902544509301707056161686816395708312449124441745365844599959873991688638376978764402523408485116536596806457288329898961919168006778774780446701109508720106839596108350443071270550416678722241113356260808394702909949362262652823489789615754366234725583086007724057082215102465917198729127053220371192533557708976649309947373925718379114723051847130060642189109162207751993735820261761541997812607634845908118424893828624272784785875457984844981076855659123451168343030005812292791723153640376974726784511804671259841700870250378203260518420737115724885747257502177861032023681081660751826705779360888801528917731390148444314728143279091840157273020963647625725483489021806988832445041124836875547545425741797278017303441956420780914939108820578255565406748819862423695319416894382785309496314369676923289849166607526759534028685665848245586391080046466867467296048540262673240863036365447953612136597824086763501683386811397334170101588517976001642208431559810544438170714589134643185400437011242443648295854611340629182030956366905733891964882940916410108296091842303334756028186292612727424479348266080523263793015150854831543331761501957378461093352199687463074142185810053187690070361546985645176443378978784658000791709827543630100248476224232857389794386325016167578350482373134865355008613083397817430163677881951469313319789925851769806865718784559479782917181347835263159144353657565181970384486885241159643000973275864172357687059538842749186058791273493673517438114097880863898316717210928958244372814256889593552837568100439571745271909556571256675424060954898697069759126466986000528787177662266592766708567846830933178324386060864119369355957157993732039581476448313792890682943598753181254359323616733635735965377810372266774739849836284666923429240490827756464944234829638762846282773181014316756707636718273653649687588364953119177971241812921079186848639527857773909273492950978937796852676917928745620793246232516201088333217157556862732990014508699265872809380322344077869038264395380347977614711546653478020508081594323820993835072178970130643153798232497643700402873160410389585292026139198030482395596143511726351543851942961379293263221523751199513051864787484507835921623552892782526436594613640039972813214925597640126410481304437158786724394100124029116208560311018978171590182531303004219817781820867809460094602192241986295791666967951191814631851557851202253530487698008542602325456612809986365002226698255745408163817453024144162595371237959255982910706979036476673156510466369949841954321132835846709205379864958785455490696143692793357175320657591494689875212391189870394542235391829262850254263163702049099530415896839304808998994671937393059275735194117207406451587190522731041848522820316971646165361796296430360259123271691177277432828262265058219764060534980187162366652907938416634641539153854636032199686603855100744699593525289686999530167563956562421612693919394016926841767549501116758653420195373787071316298432401108656301562527405796046426905021218515248786593977429676529404954826099799799970023028232713502924361938234307059627065223960207419408765728077602245574013036388109967562091714718858792046522552273000286030066826047896718008915258958673786654010477482217679815902654561262365369691482168076793912523863649722568380495391024228636508428605840793623399101359535689086768084600373470454265090084642117877794427195035233893523407838746953049231541679079561323162663555176170416760066201581682362891351346247702256101265574388475387459035089413582142782543551071398886649320871177491608155176374512245580879342712172520057707150578645374831690012008940818269199317397933247744812198879652877526597022458132139106612337107835107206103575486360656805378942212767164554164279458245243122587717159723315304344383936595489556612060371854426042141653044550446870618900176959711309630885317108982456054123952432034277316582047367706064280967005560591619560171847375381067848337701454654944725153991290638573450200488957395567928861559299046064964080554926639165591158021586226543755010207577886528322409260437108556585571530653547024995905976380088748524120146971768502910191818142735888889064604420461369977369021237735494860742391230311046993547782240396987443740733949203674782567874519797203137475819045258159785592551393344677293731322613516856335045187719295179685183876910500537145769984934860082413472724080733199629639304881601635740121847690692902548742947608633139675857179800398479729669319162814251817098873064201968436365229399980253732411013574776714317031882599848175592476295193473201283118156438429508276996971323112918333600937245627053109318976384108140199536011813530866049302499590984350152711901965332537658032325464646600704784497069577684631642063358024166932403039394749678039333036152251692418697636131253527602367002261754045327476611829324188082417355765198591855219003461046650931441784482215882575333743142625242269706292301270909243333357360602612638511529221545612120926986225485888110562724121871801358216037502013369681051101964585237409065601892171024509891099264860310714467793011369739799951711521082497247699085717501406793546030754825935154943093725731867622166604226980626233694823848939743280991600187718260862821092606000613704803038621753654133016907480223635336668954337451116131208711712001022402313473420695998820103198378207682685045248565304052843706037632416809448204262665528238406628854622155758440332876408647017551004714811043392964946044563633899527734846544802023780383176883717194272731016822154772250535564715695370404190587757077890485274829757880266710385336321607697137424160183450159261850755093479920664632364330011168426371064136634956979293958163741700965156644332631806913726349103332805725745876756107462393428211911992397309323155627671942866921798143254329471469599344373094771188336997679099316243323723676013658057664883453388870563098325608278266374932976345063092032513244402088150855275676650312387733283571946516481016869127135034329525438598224069968469713482225028374660225277476151390396898031793350376929561383197252329813306741030580747282614711527765183889047460518262944229195563778152491296519708460733100058721218499636645447779282018588981824902146798325196146588300031458015320580067798162457354943929572032041284090601870870949480449849440067007479517056297830383096250331837581515968553851485574165823616087268280535982126127053675670004264156627622559695887298627408276782756119198976827556175691827324209570831717798395194482110064830829740094880215819182867426607831315756003097552959870567143803488379160740557292095821785530850822452095800020302618084561945051265705996888688859385736194350330798630236072240259459431792203391931935110482073553612414621793221049793923250536799901824721738736931294063757090524067745240538935433530512058662533181603963771565392525594507117541025355079182651193652558707238489260852406198149084853807351444887722958412728447423900313109872124087154651740420332247951000363118075552587125677077317770242403648125881395835791765272014307364704788484470555419911859486849646900369263091976108513977244185692097364136082158066778796350738752067791500116099621713328740817786820232217236957170494936348146250210974834911364000952672622381494198407033234316367514634231949564514000905544336863434874730197975685826984998378526078223742784440921604684855478235787865680930436309441523818976337704681852310465127561141051726809797552963766409576649139311137045449462862844117743877831631374695950787328330725977996671696344036489978684264672632323430049190608990985744488417003987324115600772206647510442267439935908073658666280928734009688636895840863754628778093811266650440735571428379114250905014219770955817547448827762649882238859778384206390652032440007123228962612365008620838798519785039266222311253565359995981932657575455921302522165852458731580207193682517767131317024352085709601600678166867391295737383633867592885204445014762239457090282047627537455362289791342131966351902471742890631021422486486111790138058968860519225180401026800670496831596021199355497010027149305472119122919258274471304445606719768919265280208658835432563773941521512924474717438123206317355370235679878486332358336336665103776719480113303829348922726494835181136423441856248435408083286504292574760939157170346040256088342720644696250492739691390139891202671408662664427224705339407578878958911419671645668040128489270986901127723845836425262440429350224083822143560645741264582139007274375861051203271705379774150352241698479323072917892019117323355761450759637574040040067413152728022142502705337577847474614502989453024784098681408704965391740644178215589325875219806285579288201016661084022984904900437677593803027442632375864336804620420972383660968092948839498862299308421324646928126152092756127634947663892210411532832302838257796952934720254675493598040324166886453140899118356103082664663186391314379514122572876252465133591039741334856910903010265631267715630944078371667612305391983772339116415842730536587045885703780086065638238158670905983739470628870823365223718751205443026227110922793768901750828333301643981135279609839824534823795577304350131008032215813157249786280047005586648363866981650372624068431052362143285319506255123814358947324044518807180440760176974943868415149019299634898923430751744463945793461593071879711337175064075840954626994220321673034288083658555855888331815954041329105386063086388262344330033973371263798766965724756316538124414833505587708786716837374419771589090296177077192201786355034207344217380190861603164862485157322741084610347802953395552749383117849908060923292800704462100469205479014369430535429963814815697221828137636395889506602478535177693630330290006406109535296082952830305438749996468009481943370896511134835978406219817643253313883617217791050600987661131566813290862431279594806171558400897893810780805222177695431855093342612648506899539501227132074357939393026450151989607178674741217108914085082563275209872366526909060010721101208688929393105618071656858409507272578279716879039380471290369401139757882388663940139230572443194505983131898438788968072196759456241297348181026937851138711906086351208911517700963453851278291452478395633442386159959285210708946023059672564380742622536660257796981962750942584755448961660220031745526866287234088400993513676494048696172478056365191786815591013369392713390920184364336938486552236759373975113571117424740868292578587160364572295549750539817063393311973186858406588236142793240607835710806919132885604847157920402240996768709690195279543298255250802529131257570265303086136187181547926919636790466995834745695747024180020604349893114008481257234300913108900469991315389650710535746623555532703831030646514865550750374442126851733634389811324805527061626105963665018942108858959490893241543486754500823449318502337626207044796954117220303381471265391548130847407571565824296139052237313703677727059489695584512116102958954850794058847143392889160333435767018412252249529803613347464669885136891960648563825056228977076308237586116809440497503898267673762003409167817056241743750619087635899612212387735375102063773987737520446078791660200370558157512262973406611421033568408655432060629194734234177858406853119045501335173761113392200024595112059707348621251398740218912901696790475862247228963702118024511820832572263131429024508005196085756544776381012980342712635181360137043046175762753436619633246921616979883983419586462554751161532441773766096220021156359497522795115041665625113641194621429898874474773460237979679248199883867945142066650054303034925331010188767722909757842242126472977218317614354474545185936410337809417810141415051900726558581851690671181068055489232257982586469794611470903455923291320204778812088971742644909526046673280919576845040467660386541051731064865497393910333051694270414593780976057857777269424356104484610600611168523978109080457868750756213416140387986094351297461786839191737246982914497260553861670592569909742797631266049283763017707275729801574705200320444288705124383209173332085781154294485034366913249797026831161477445076015401169566843425982105772586241236622272923264531475396829366332415798866213476513876944977480111494087884647026519524033658075572542770585369663412192109560256786560458507425504563701060495552840339615715201417276288040993960652874414072287374298464515703067843454932997763322582863537954407673730440190353897875196153624780081607872774876386181748783710920784352362803272907048272871372297459085759744569319620799596571574898796757291104768536255938281971414739766633879992820036009006300665516801138886185226359041985986607369539718225771805825407821112216544997325646785708385786522908368462360617954785930169401364661681086292292154963746249208163711689878229898267972983244439187353968652685630751283355264999980594660053032722291322481262000917765072509499208518648729902877729282149194977130241884857160850757803788109684457637724591721607419575456725630157180153736851162650623500508852054530934692427665527858843317235678037552090245890850454883219959954706298287003919228715350884854917726155279755923609926456147491993884862834926674428456025380336725051316283988254858067922808404155010694637975345590253169549040752177755093467559539944489585857276522778619728269699989856066522827164487414329252610498864304778396965726052280220253035828703390085047958964268561887321285344484994236512986984829548100647017961614517682152105020492786678888671417591118523187965196823022045949958494495100195955156174732868788575521473378813085393398099325312608508375093965556057894826542993707002982171746511624913639960046745713727242472721416245978422248448078635423823809714229295676841173407392074423705324493570331774093794031483337512010384970503688644650729870891260235419245464888609568382427214151158804274251395822242989503991562969701150851237074604708190611966897152135277356832273673479153455529831200288165828832569079434933560221207889069764736302966615720006828387730019146308199627178375940550482030234787504697411488821929332766677080365825577646102230044482766836570833033592454753352879309284437803115175423300733295343327437449730248207452651373279109889862260600170360669624232215339143065000724851985875737371350129087889523985455328222599997841979944065618138395109460506531972845830490593952441255712762533342539863548663897463534288389772602559133791007430335848342189016658634116976730137786125222298062368143998351521438354121714076116527896440300141727589061556345386696032261664372499861353647128298162360246053577795992141818298954122199602043011631158655957476295958377588765662701341146024528814458033729648257694118501795443066421412685745384011192641063500451716911859669657553166508110542503738231363082816218887935461018293808406444227876305331559071810596042060657707396106870417494501214897774650049558058189750762330720043130921930215565351093256833225337666957050220489735773528334604933425683235849500978578616316925245257495609644691098670238997797788374967330898979549071927577597495019045407457841250616575396074175452125333644692518677905618246599025130286056938418148622801954611856464070473819701530849491669259426362396895360945079375294206777383666660216413334571498539331589093742527873420836198332752684158301756407907188144187053848491280967913680144525284403210914251131364390649976586234702583918438926766386922711347387554534103061084569858687628163891144704336113552389808848724634745814052345744653316152567710347539569219785667635096304180753974317244765751365002870727048013819983862659730548410970488556604597500165173089592355123433676204882075094290770180740161658018956121160520815455123468331384720086756178293124962604639568950098788184932585975744281080268839469430308400027201119207352381968080962042607932072998616823975053698060610194550896876280314355275803615954389582743329950972976579990231772235962913277601989174581520491311597252302638729311034281973504486598454189291689774008771147870325867619763043704385015940735601648778243024916533971480308364228402940370735687196804986889134175532608353857439583975764113743898945195998159735530149987631042855904477950458930664666882776744302357212241878128820060536810455047337364712230061011553302924642591428668295873910809232594114579062869917655293514579076973504908637481597592689796364839549456549122990911249145257242383579605489905769481145067814833238065249695601559290240957897568349201031867174515729155078447525897828822900593118738013931086201028653808948907006756641499443389553117372514280433278732264613415151026016296335233081538188871223072886973692680859289135233549260483733341817613233334138306627623179246610371108916086913079966842305558831910523619817288780745237390441500647796548089090318707776278134505048458717400625974862703166978976430138384816257049326396130424439246386287522175558114181785800360742832432397946237499633190053967382497308014592395203138832074862074730543441184588809073190245020621445759547852471342003414642750703125185468506237589359935241811022745173667936399354942316754566854529326037738826498225291664807337921457200222686848500064399468949433918631706565437066433217096479363070737699725169511674987079525599654998097919750261538706744542503724703988762807106191445853108083548995594758766722187199748864158354434674188180714251826192041925156969735156897690705644401797389984041535085452878527761076015894390625454890425325656923780180486273120059238817767065447779348439503111304827799367716602651569601730126687307556454177577716589234653085921679312499194133146018010286784451026215519700872378802016277133978705968496356643563627070999593154927552228509583513857021042990303999165973586556294369546175831261169218467854924703077055202349266644563109357659103826321679350776232210490665063495110821451690556065175159833058224533172266725351053022407555411019184856808060414886272008623621737911024016728245348374596239698864363960104665466598857028091158156518870864628365135052350802154513832415811414494858644316045066690789164070151510925589170173993586405141378749194427353205084985830412281776644770416813761281584437139005648299247907987980998693916223728432075017109371693731855665587089587612602626803443951410389752845665892148578270772845557054895370800334218294096064070829409354035637954562093293325510854699899467265422978788024991761613471002454283286427971168019739781461544352152113652316103790650909238630527348850568803032752025119520804619987088293013014769339439518619270791074501321771523979107419718130192690507465947552184426776682342384482318639916227386461557078015857614475051210847359987624214893750747218505005874264862621175526302859643080257234090076487393637951225671557739518988174255424956788075214656094674063389813142567817590197862546018706160695971579104217919395456422310835763227479000412537461045085739768276142534554252728668939030134324251683310187802546138264326343703079854490818916741707608257443517304707329755658865426074778892119009458608145264324124252553197541886599439034099022369732353374857969293319269393482243798408184021585068803995518645742062550219863942532451779216981358229307608607664677563006090174881966819622421630688626555493879505838027827181361128447056690692300230979975996379942186714343091043528335920565276676894859974472148427965808791468901676556780034327755830595247444405384397332910286309173313429191807841804220285156771720174971684194987256886401662353018704227228715903217828365321000283778104835862143103475193647285201649712583688154481181205824796087889818044959511285764914068009234407706543658615549949081780123141700200733807464791486744926486961962339588755378588705402425339877699724095360772649440069048898677828567493533490445476666246133111581653434584303333579800761884671693559302521447181120323155432408924435048774836395480615494518166613864281690447557785200412860262633341345231796346281396579186810184027661810142939160387732649685680761183216363465706919913962719559055025750718679962746408429748233917131833910654217830265479235898396380341870614771511764446395481665984254684049191117249510256083813713280231904940037450020554688403241807209939036414085455981796556427878844477930581798542110486312831732962815406916692211184862684475722166503991357646139363065391003539951024461419562814162389005067001957068670509432944448983797667799117780354804209284573659843843477686218953473125286400256522933987196220754538285660294560543765010829854220755198135999320279782209379930996068083834736209670696066513247690168264021158056025354626933293287064382111409284080332298533290458042481294073279995988980857671610498148731250868744017485517539656302091151252594726817136175664736201193026129555953754907039836540473416733919733380170670667705140454087409265161282796349019492679167809687014444078149246799536023847377398187501739447865862811832182672365973527463551600701812800687088456756206886554677762418369905700885128171078806227659694494633263036719217996427112322018717407868404737267118269394511760957876969101342245757018573544281393612265889315405111797969537233212145372680574755663499795769936285074308000120764429375368678465260294519466555777416662258635426467930314251926723658868035169099297110419008239525047839614957921465956925838890973580619349249261259800828375895709644931996226501802382734960029466669423201405426655677756574639408725335686591714677672191286203887592208724457855122525369359120647701080276788898026753591294880589958283929062175463796955295184459926527776441517775248954160179981325722095213122053570638370251640456525497931534664281643268974668821900185587532486615570889511775641154794181797453201369720314389189913262716292352758743258604393680939224568104770560268706879892858639015583974323162827921262201916624448411941579345896335999242375705265587411755939228956220726460161676781342435445317475641839185650204182207732204794404846416054206588477111237340012757854734716807653598650317472418128128739827861120483712118236565023025282690534373429377173373515188803662597424976961485240642340758122868140836930864818322277437405899718398709980424159660762686257038731902404460328007279127037719479119537711259586598706027315148380998011603655068554087211148622107300732891881365054776704525255473027366472340754632244741805063025949763850770333507540904339170222392836367621045861698933199173171593593073641391080889493198147813227764304856563941410321593113399469537981811815995131639385532950009922676022587892914928702227734380057389914677535188281408794662170543510331337875219731495835040621239182640187925129978443298797807825281129903154754617103305832605433051109743567029093550089590515460520838207536433887340878051008487527273877411748340041589753999174694117876190718746265856469272147544434478356698301844955275944066370515474864096202224731055268580340319992931842243174159449597053000506611552187368316151447389843365479998334244493737823813092809339882107037550553837836918872012818686161583665327653515288362385604962865334767525318108952438399713196037756687093523378555125233074552221027046962301240819003757720519837314606531613942946503606919262643016393360664548842227317700039877552710033383113595370037864692370038296056017586479694352665302025948553823337108280742602840426857892914931703640407109437925491484930203997197552310862423113996948003147339990101795505590411858235061908007220560807407051953880248022391102597656609602098539310096129154219345576640283242070766759598344870100810449270480790616618118911651164354133855186980091475587965860311402487509971367102392434642483405548459221960377639859436190125721348460091491580217921809143159931821356018770268513860370181649993228974147257671524234403184307019648369915023098172063885432488840728235141380251940463094890803027885642359732157634088487256555523989773453354433436078315275672180979738199512116479606279928113786419841367589036454102253540129251796725518193277321802970829944382800351239501190360702293052661953018967035145351987248662017521057280091099101144533250132013229808086168238554266427148765170017458029143724219927581376605314364555363746916485118573183724114685287029412996394081768875294325961991289938985419851238521799436948968398087577263677291476407593248099211380927892541575958646439060824103725768580310629830699797138807950348732961393558632409970083307701212191326969375841361081121964050204502901121667040927528240582686637205701767028387352883338253112427951626524841223050975672790339314658090973932712872295959205274207957266789743819139955559519481075951722455300181582656437928527340991690251766390541750658256120319296460687554507375122903605468115377578596483020084300689601416126368968728082403681765331380666832856538935828947773537873282047792384896801245197519463411138462622740821870816611551654048034065359277879742467629365230732828053269068777842169377780760994782061963708228721337525424811021627665821381990887795844745227568703582828473559353307417077918571189390070237604888211081151568118843783464365588581884278734330315041552540779058186411496701687703622289458107683018634276626011231568728023899784145889816407679814087473512094317368959964213785384987891564774403948243312733177688668049206362811319582914802759549095227832676906535443736548390661222358722446944779773501531789290977603028791492702702110821127407655852530908200140627599623681060161595383696871238956217066121342033864920987442171409406149835982962380538567289061172883787603519614809774780306197467034016400931853995627193889756541096893315904699798251995224194237754030756031684799908856768509603421687571406376700260766366770559635489010761286169623472246546933675996363430934051347372488837776901055314126941511265640095457956699104074848742566148894229699213507419733506539338944559554196894865220742489324617436174298154014486522300900076512390288411534058533485867551367076726807940922038352348135428652315936984435383887841402881709391072802652081145349894922661023779507923381458889591645479050553935398962844176095885699509471237150238682340980925404376351213486546896985750599681701159328618105320525681575646075451847824073546468083180457421651118888205637368834131689668043181351447978627182492228715168286971513000316751951881593880965717028590630585206501125136101147942369183332661515087629627933433139098593638135480603029793706405787432760484689574068457745881558208696063467968350114535784762189816742054430319494107996034716564880394627295119291072073176358054064629272850449475724583446305874193861767591357403787315614256237574566428866654326354749276468505710687045833584988931191036485583058790049287909882249142415337721622886788005068789862166389663713161658598781001221902240241038518852621846845656586878428693423327039441241026972741667282819341919283381974938941290479406662367790817230462866788960648006123653630224608708439499979079013653145171268953485348768884124609124840394968866760590658872540952793738173258020583846324474387227696021937092996385934812993563252812580335457610961473200934056485373035534503903581569255346108795192420678408468687898241543087870112269939145595981058846286424833292607359855226803618485689258361400592731743755985877133371129219363218827507809935520947597072451282569469833883070676022836629017479874457379112583347132197585972185635566917577699639910429980356872480740621579678390062878309937765466198288321324501433881542232813249257550831753923842717788971961410345603446284225590428430287051128225135993683234433204402486041782334255681151017999679455036010481414290720434153030860790468552660989743052922545726654690255173281439918287395254122663121603968069563139747303978376103275351096583893762105321566554830990548252776904117717305761166688628532944514875172078382731675389217298144801275377176188165075732968104316774215450335410377505968740137802900698844855656236995047432848168423673782977486661302731764631360222755200767620218824889977782644018018672130675558443306209190278329887947068034162918669892868738500062153914812407186554355571161415144181016592242427512650179618899579265617171189501376977628151512075743760741945016017540920320599338642303963803242449221002508276477268454023796264005515110517736067907041419792484172178933650711415890811665928210426815206481590723528185538482662694206046572055789752651268072517270351846774041469404640924139201347511143683369176275478315977053216431255056993650196687957835632661717522030953902307988765607072860425261136027388931140699652551711663588288382017491517439960949445250277665624333394638398783572746862850529673170675376014068039161919158031497076135922725964663523726790543480044706396052582761334198383989724729518042181067909684997959181355412583224827615590746981713216296199109779517864490028083549861988990536597186755012131760309329779885452434679306394311156932618898179036855160374541500282364199428153040019577047496362290669763753105365974978254998356264621276062389620384294761412310268976851407537609848272087351327458046063996380767867239511003916098881365479880375459247656566654385412432693590857722100958889064569757452556452202059820578025464751657833936518757275815871652194884950558458458020949594437298844086597907920551683647179776778218166533396535534499463060642781498908701511254499649209453325070344658524269318910957404111774744424095821094247200047295864492282147278934230268506502181773947016362462284804529594268997208407875580659012737472993951218064838018561421491383314699092942373134329913332666969568334560508620372820345403155445483892608230339250685460277420330713020803480214280451954804027565588834455872616880008838443120179309539607062431407976006297456318370123102047569313627798641594543356160038400332247718652603737689210365846583765485892669689707146791313924751869053711492762031661360872475680020305139843755620447346014394975260684390857746809862850506681011010856692683059264675455986521800746287964017409101524147610940303353791650190383103732187278170932535257813000447347903838108327566529819925230632737441969200469398535685149274044050652088106635805235015841781320563377855613729605582049906814117656183192627576278486622079176695944265677075010882315681367736345279857705228283464048539112709156443290748329623602995947301426060966730284320526050278580264966476020248784727038544328623870694410001971752988197943059014283688849055423381218249727133887690599913539825569436222300149074933273069897165316088610297680393568308841787663543289982341376208503011415231404348825275925285827200742397429421301736700716055734217911598180962008302570677884058211115821136604572288362515842518461728772717747862188551430262405923018578657587635574349182176042079479218127435623656350418386941650615520867289302105667510681412931476753917204876074289039138411815748726571766212835239980322098832746491356368970176676085298377229351695170696498689694608204740951347801223402528985073335778806532376452715773545795627908129448474155657420246731211139087770687191648715843195275872938251945441708702055491636482023727033318947134119227794765328490138043671632852160385007681240238422343585364348004130435535026429033356474142316067718772902487904100993218608624502957835558410441733893108411394112710911581880800971442606744657039942824188764056347661845522622043269578306299993500164327711672423481363774433745196125593103211712111232743181506742301655884947005562882197026151799150285946985727228939770663644434397410405566780853134300604427673240988166538915326110477550975591081673009102294655028888638371992633964793572927484401600562659540975078091035620994445870066865450741328282180736909016562483919357520663232495397213621244419835369527349644389421536003062332885595910837494559031191077051494264761556317623310409101024636274602999551045658855035285603368215900820061577638756344599638484405087403504798696699179217448614181259007961245415926760778830560491562259913837740658506879901504631776010113175669218883426694772402503510766812146468069570892019655832675953503227069523991597245872829636813469789010707885837984580657259838945745359567358567883681914036253342869053697350553120579196878127959367965078605879833066331720151279073963218833545705916504357558362120697039969597164809514761336162181126249867753960579783470388060408300650466087461425692073006399768826758429535465865280542980219012799574593639852548293389065937811066559715408607879014020156472533030917626000555177277106476262052636213180469246140704651449552188767772855843365601868939418575664430312783236838666710161791009534165234202916877169881810564681834222852463053449183524038264886383261044011650947216118502540428879984887833267529272007300017808098799822226696293534546314353101885394386191754620400333678166238687574538500424282955504860208786557428249848773961492788410305021045146149578815510667021815391909632951605151635506208862954756959138689166452631627970213387278106069135999294415554944733183224656762060477091587733191624942534625651828617708644677350336923980306361633749412505469079373274558283760189592472894379325109295399334247490522777179614547424929194918881121138906614227009024864303569280944117505711186568428363605528686251744016691000275440520246376212567478993558892225661287519788601638025739919183905554182656169743139957881977112177735273617355096585281538703992254160776933468978137829596529527876523888821684434648223952408343219736931484895408948498324426827016864105691080214357523172309990534071062925287176072896462954542135263006812761725261295661242725989612803718996741904904250532813748440583270032061714647912846887218503056881443291511629054605200180111903464146636083077684284798745949565875912557346494248261304003797672380496698346887252962077229352381740070808415769314919172734589014411371808551363761743833449449475916898898468048926141147895336062034310215057182329880118920123678538911596902101617457555458918253161396848487999813709420597394862480758389306270265356599524916017410953376230939202325321702964355202910332607166023912206460534342266153842483943145762402616461407820216530755649058841784799803344273986862158619209641520426379076842627422836974966976813008607393643748026488669747033499313929625708056400749536936020734917445650580734316184440248207582437415214792812384776035271067702627886135403790043044964988710978379960573917385163431441077532986538833409604214674497769897148405868945955696386543526375736168133135631803218028185638648836075775754112562491845498768851456594493698814090964004253082550437593882006169742054374512290675355826908141145151683987010759152725117172101055333419000409991786181878599764159798045798347321535988341521042838896554868463615820392736887786014100797120599788150302646768502650718677479784362370374944627420110101608960755115180848995881905039882456803822198227476052329573734232483072183121721468975080300858309951440549969024572309283950773770871038442831277363964845664463888540081080713212913384951360317614996628834116474315235297701589510040876161299718376680107930911876688093690025796528661239957795225508131837381492154860436021109962201848471842906506318220607683578312199232368569139224792504404818183328490006383458977817463362068189426599741980213914882991581298710604349956696414919960820469206141636985289195247379297720614598984547701115888759260918355574570114214431975909115725226330979881647668168027926813688673348524203014502384571445254937960247893727061846578562975024355840753313695886417107713232028701528836088196704158305697103076964448338608544948570629369276047543979335868369819448590581913579862763834852170542746719145331276867280519498973484780819062271243620901271009746608553169412107480564129618571698522104601766187732663977665143533711806475875685361737266465176638727462505094720082844587183336518419845944293223731432077714489893191211823036772668296075335698494829985959010883079946316280236872274300937453251103152907666920342126161881744594493349148143838832414585282033112390279486476511602187802226544939255030185764090606095564381394273837699392715910049261383437703126298501149164930054064584707550805640687956034045293893302345141003237509860654609080104353783694109259065524431235871531908819483394699855161795441042877429349538826434284045264975467289035392849502471791754498833007187011579916775622791181565449438111241793981119685809585003916224541943444010559309754235641946568162317797502621474468488341588413744713400802325155847004668510966151997623934399652539613600572672029307569995184516166184852548757782805135662614701565414832816200974915486393350061164885865865703718459867220037560912536237297247237578382368359420784054118224598249879764419309820182664114951015107253453416257736419179070889326807931985568255595828108024514062947424601695201323411330496351718404535914003236961589672526684167619953929388246471098623291325408410278693468323062583182684229254107939872193746588016974569924777657506932441146639020452598370622912102523439256313368508187595076933280903073432695904853400871642916103095585037932297863579988138662104689463073199997146924912804640723383416299681278934897101480121351791262963912550761717185663692148614107700389889688558259140495457006969670188889621791621119633505894575360709190228352134635763004600701014563899937080131135300494323492429134292082169514706148202492696695210591084585756459718310016223099650497757524199274767374584892361025716634451357949128823028683189917325283118701434009255895105639883457676503185289953311212745056781334374329944954032108101618652300602964540850117250372758376037878405492558065798512949599179633179769369608319212793118215211181819478903264650840075094754436157910999287817502219219734529051406910544768925436566743698102756101981563803560790064506117324388736132954716927835814060292713905363055963423877502065920588132017336752556135755663507942041294916761507897574827156350310234297735569010412195020819623948249258961822494394552034681666875702245298609652560113886367573899093269705156004554913865652427102706645665233127395052853150652408428505232026643133960246346586814302855476268603781880602658468248828035532373221780222296228264947826769267772268598404270977746813528091230655205575340254532989276867374543492201448604568551853486498659163654618067218519380352450821860860702899537490839118350010893867901954272720654299921145427868962350652889843529366049555394194100849342180136675134124562367779310613387297749754568525930273637718156054551967536541473439050253105938922755252244273138779328442287725452035779959852302828193910044419051540018465963321784925660554471538988793512849619749121615548214500010367410959849880501620875880617300998768055593434319607498082421581017730726801294583913660502862015133816935555280127388708489901865959220857235518656929424340678639080885239115425686994294477022584054972387982134883426835056223190404903706518101479471426225599306479872443613476370993200101144878004238401602299953145413799146510055094392348471891301100031665794125572820430959526958132171020113570559877142593496213076254391915391843810824310382952305662628505153786991501147289390079399857991825267704119379637901487676833579984453523665615148551604921113028396285800704604573556052751131904980168943323179878367653433890543219412258515907183535232895749745526949774865876861680236394043048206660398341402792422715822114685446857746627455848225192634014909663034476277569238250475578931629527081363342705574730916781837292611868341781763481071447589117865988208577325925417016459086891171658389781448214484187035636799556623492876676621407276185932197534078885955529842868576335469336176595279683468309517617364043527909377975356753651080468918878448450064053692874311379060446373588210269721654945194743901747361084036726682071337877463570175880233122941821211506969872555510613791321648593055704252871532627345771926537393278652961650024193019105219193935995949822302464800162271289055022753895049862135981511449710799565986281887892910844909550681286813733000325907073019154418193039650976458425785003924965922831068710571302540880934712256824730872980161999560941739543829549851840850453806987440559719427246099197099031762687333481221748149477580879473820959951662859399555296382114308537423803602574163431842229686789512028692656930666042333109982549994540642105096444473080498504649007767901790550875770541705442619217204276217904229160355666890451854500376747750491728890277448635729504083123553370282797326231229715839534726634299626541694114082715232965461418412871665879960645310378630680673413287331013203268421519512767393993645114835045357388129587529437931619497289608002097667027925043630943400056068170480527421111649253335266686839538144687296826693930151625765816046686021670142001089788851083045236312010235955816542845733583598802013731810080376355688502058239804061083753418653510938046531901266497438366840540814496246482451387638559711442350660581605258825965251911186190634735248514853239606481777142363560391206309238101475733726349014130859034854154658083724943083810690308406207555295808118774719533565900321170449829988170885408379685872161998782808297693311664171889812474835569696554990016581283520971465445377496453017216853333288030019125733433589381153896457755462977531393224629501915407455811160944123124852471593018476074038833944103708025500680042510887064527854812874979265334640021826762601743416200048480981439862532199941773340248675483858333035567041302904624817683879521968010982586429311576853413163031795647288084383809088150403401020902011022502183953935823982149679206629249030013907939360487452203946037719306933554513464497207281531951760617203492775479865939554446908207815532100318310335143903082610664353828678684939122045011976212646148571857192910771978696002469616994776701769987534510000004944762940621523004167447023455052460609010501856703042018741265955827978777394314579007360493688495581487407357469379148548241266451576877334881814854967416809744637246186579941980346065094290001734450918600901073192182276289162601058704365156002568968814592171212538237488871627383693403974329458789307841825511664132305464264122419741528435047628156396301993788482163633467946351405400750125023424769602117628356804804797486524055246418627966526554144270458178296043521407600014724358564107660901253084477307337717389488423196955334332934164273540004181328019536531027494227583798114484052730003218110193031748621240850324174937759956251992193629286639957053191499568732948590749515061213237868484471510920396524495349916633334629219221013242727996916586723569089771280952600876429225478646423265381408516133969019545522663907876876819533166006694438216381102240587823707890279276552288490065402170771205193449000094116280875213818526365044309942760012841780088901207416762268688479904450235394595407119496051421321932532232351097690083947712872376448590229275180928207355137493160191126484873802178244812191228113452694422015251417727659911316347728102700598455345805488870383882436194373683777446898001011251722726405820743379026686218553113315186243438025475744713322888141010875829660202462250855522596520308291380701475804525280073289079343111679545198597328616520898490221174117542891962255840719770529923838136013980537405678318509777800998302940093826588886580145505390921722908035209121669811181273984979595660010694951444655973579947094498516808473041479097865835439772625869054892198957545085288126336039399643837346342227081386446235033323383506817191236508618351090758739787191128818976232855567238885919081057266405177328316454920886825233303372940330277868902594436267395985527826983281088132606152305526036068324225839763292648627228403434622298339438255924743796453029370572434242764403568469586935617439257159996067120346847375749402281542665378561318135589949829289278421938990876828531012829179112328636457246430131221987384326726950550761804526093330110989731370738830281421146274294520448051060115258750416591409480585716163064909815308567475460872407312376344712011104018042076472213121597481766215751679371156540465639342163086070470338220351308159613239321975242226173565959881033131078792775303441414790928810037497093706523307622614927100221749913539634302945483306635963106545115761779713244371164971837371916545025534934519482968706578379676610211255697986281054092138191186447386770078563675663670894833093347864680914755971749877945267018435298709186536243721401932462999630747970990677665145854370718880278710648709851321577805000281056164987091378921527227392642115867370094340409135915205905901264901553413406976326449794165022644529043115070106822721314492113448079521528120719095307893861576079536035483208118398581503549770939310435176922342295810854176437295434672948580797148465390508893575941898100144842649727794737875507583949831233980158223701102859199305784446795004255872442323315178361069673486810296200444992807998170091169625300695836969090267423045846506635080455466125789791445190820998394549131939706699990332233567729997243461644413939732609781682369769707105549596194018265868374768777852396718102036424112073833944650079480897942799247047055898820927888708803198757047767546551707279836152213867416273010788222279656322902240335914052328464984416168051974103435008789632108132620342095021371135530605351462278901198932294626373069186250637172772031106606837334481099935815109935388315663550230160051561061876253448850833336644510326111127136318262766052541230613729312563906182408163293556024501385521894350741732469151450668022223621958883571047434247034826645385212519258329350156971560625667058901100276859861218869865921540257562551883292941555108348951829374515052656501610340431143080986973756758471307633116212640878476768434006286575766658443630156366828357236427766376512086637668828589106427638658418406565065884460938747721496836807114539395908663240629321075779263391477988229838520796085521762852339263246909979949489130161020116203790401042470274223422724829881984322017768435315799470924961831265904339343269153412633375017775992420571673326848397661071081486511713059203745084832664352111685357371120653649078218151006406393729939852518228932071407179245696445715245944406738459947027598880114595389582256942201914043615163071176970086156713958883768259236369566864083911348293335518684364633681282356587569811896589844206669487158756846533932032574151619147503596179212454890051757546186280563809815026502481391694623769427062683261000717048018844047217103935658253414130613777895416170947634669488017987447643116731823011960167212747032158571296875630967972520004960258311381801179311920678817876562765675541441414160116962527193713684822878347905945222299085106452398778991884870718822873143216337552046376464910490027132180097039969252868871557216096467778367659003916973599907370257307735251117386026226801399366386757171365121769914295654117284141900318985081170354467412363982730234143965472851715739440776436239862140556674719843637184184373257647037950714972448893308761598940706274356014864577336856045848310199486821604948927867971454765091345900326027656415455691549010712939920655513479711477762152384971900828299893727998861515860146492507127421089070683502064806641434647935245188656000990478074324762114084521970885877613001655533784052845980592623967798584719306090705029765162152531227045460720165909951699528990732539998559492364958613128699596191221461811154353017775869517667952362527904203987071455464328683276759672329665620824265975056263694679692700499748350219564284074392836207172349405412374776726492178317942397714931803129004597464945571563431183815662921624736000541577356273745970073815242510376502936576640432932068783705939597625884486647734459756519349374691491683580402723815909487644274316186243087483762059619732403124020067921822993970942207185301113149859961483280914221792201649678799988367799239231355984132459240059892620015359020623851276207952738928226960399655778657430234502016056446609405019311202533675657618006460371686332661862829080905685768442330079030939989582093953297562040944895041583948712123138190790274553562697530587820949048855747559962635237923857548038407008789735438826283469248848736553463271981413795603629818436396684918051761951464475829496589168066139958529376634151480569123929996300436716850602559153758300798437034480209152036974932007991421690091129882592628986006832281834451217543475680276258262865640146108540480169593956981841046310409505297155732475584004317574501213403106651735799510730855593247411443847157607331255764791310602773072094386268075476880566333061744341597286241575171244375794742652656908591698994532550141852054316835599259449804816131567498673735117648938492527925197596742583666404943662663850470624456439633992447927319041968703706307914993074003012866330308923866446511382258972491193914481144583922570920900415765629010030552719380881945639412224558625203831346574326208646617613673913030736721775950089399134295607590268101164699217879684084788526679942018017425999531776567739758374473759455707650337411365729048446265709806413032412503517574954790024286353452482297917995423629031599310274489934456705689391104525084439505006162939536349435449367015434254348724853021010802196015120137969643087213202845020928080892138417128015383799896995358187723947409563298435366381417608153925972949256528643060997049647299388631593923182085634939787092182762049295403891335884614053693873742376394275022302213671029440216538466772389667364999761705005384897984271337649416361085603379142920529970044254226221668294287776971924487243504102149899161080970908803128177254329964079966684860000305456398223011928133235836273874734498311180590236358042259690235156373867635385565531742223477662973107422854720008681714448558845759182742991309842112008819756607919584342026851739558519576905183494515673798364907628225704208831510013256366939374435291558261109172456865676823976715608577913382819625338079399122021361904120172583502500568781634247904277047958404187092471113917043237363339266656501819053550600799446359791724343226060256934003430394116936990109977201761838516982640020239591800547367287724442259483105071052082889755963566217493288323811949053686308782695032481066118584062533649780051083419144926915369133537218382978176447146362090037211114885200122105930890078729437422490122944853415422687118513183063189051125622507197857722446074308008863658094954835450353357359966027305717178170809707954595562443406559865640783725185298117994821632106670644892455559071342781457079373569702214354937331544768578609515840666322132847635378170772277228451588931801750051170732137444956822898198444660060166011451915989575979409231099615760373733746939578437150461837243193482245121461943257448204379838686480653593904618597607100040809309267131590965100323073943758859242697653719383435544221653766843852574387753146110060427465676256834942923179710491850898874517522482157098992643426115083775451422262410644345323418133965840870872314620918537022437596796139494878215558413077654567851765811139049211060309199655765102254916277827559913749430044815354620078567305595834214367372624519697452743028647044126697131200022480685905812015316935664878121535128188288234143541446026461478266547167474638234152942027562917238128804380265787178021336605970000954470849823987345225853357520981449189182529617096888119428810776891477363581444319242349332569020707689793668237768527671134031765460637779643259467815890066610446362133009226639853876414609545685476258700805746856253447795946941033649075451427868622123579037288792763606507897871098152999258944908014451035965395568936456910710315740556415909549236555937346005874514259392169745246592684617688316015270051880962718414513027132926481594224984338003334966755872668174353814440136052075197172555990169731344480582052857486470895473190307097050976443637769140977957698348615282778352286274457173523877109633073511267137368961046081920505430934632874270186655490704020122362749680365889067526678506815469568230775099176877933923876820536182965602435423838578755150190224789447790900582796208394107306170470105207275244124171783040256971272664208638832466841203472975702526133480257423147851519862074111459121909850688458523643343893084826598098358708590631768118814618215073299066127521450618772323952098365445478509970329350209952325640347468444948028621518805360610956207719087473959845582183256926813841355407012354254892322471828439058499594365477740583723139420686929477253288053515502773159048288754581845613693962036700318517777055452315714959516643477079155458157437687857655236614215434482575991381282759090139831806366130699475478711510806855946730136596446939433086040713747247159820613667665088125091225147321249660283395394098129742780395040345738285139032464966848334815625033014034139282695870879044124548428068003693575928850749044127078683127399282260461870473581115130444100830540186687028076932242742935149929545212166729038932337510258569323729885727355583517116085404321109531849102071939719814266406851084324468719017364473260554910151257897931838527649736397568693705124953472163151919345194912831561088612283750713563065270136083295933475134267659688067735798114968858610961666915882426146288940767242421134096362946555002948406018712001561693912398071238091466845894428393421214637507180900340829596115850571818401028199574400366253960020408972162283160053311781395658977753884752902657999291343547882137023164443588013672699370298180015060591718061133343629077872767913531571584569013007372578146296212971244499443785725852956240156773833932188719192043903058350707908812098968610834919442060342632903792625246721243508929089325228650155248912737324866308244277244266351976263572045490086571382670357806814297704936663798382378357869180492022236517730025927672511167551983994850949026087114098606502209462215746044249133830659570969072022748583498849216560741487727103949624387651934438858181228139609400148887290376681838558056179390433741049530556266941560256132261684534431314252492025441638385342738348610885883475636550045716081745337295495727551478605362554299228391501884651287374005144905918589823102715790179064225654679051302101951749456800498983959613495692504411436752888125474033972970732869783029806372485237324998604619489631901990541172774773152604152462113269376669203391722362463277761459298869701402802530713227232991779376609874420189012364512380445318084530175757055174202996826598656215447305269670225154915076943973174716188858620291091849766612946692355906646608876769145174886980331244986593553507838073107863015000066963755066099562310849481624231860057781539390788779376630302109934946464316176664258029736629593373761350159527190092917905062995645186562186033827607868947374370069654302689423506843706710068065399551804032420441047184711067290697024386080508603002177333875366022211468318870283002070093853927933510388140418727410473348928796762010452308356101969093236426833833975698979369101408534947088915946027092399336257944213653150464301392210988155982288621823377122518842796079416442054900266847314929821581428677007042047331103512450552257311064088427142972133001601677977132535799674482327422184410174614388552478825770006229920329084142756714422889276893893324293104832893672531089733773323272841944873446538501720985122323478555572683908025323666929677519338612114093905780125412676088563195768480131504622105096999828778875003821225379606090991971738336332671165520860316105122293707205913050604378309298125302865105508827619663319918546648621965812304699846219219706584307821994945558904198873367027498526356743140974615495311850679729127788502581030661299224301259440262641478548280613442802970833783975685964936687819907471285317547780419205010324019504088238942406811534717316952235232284789139137015940897692769428013286620910647795535192228304822136423861372706572371644661207786597126501271270728131054247635837163728467219112783562597810769129410097456602934858912656945955660406354626410820323429289570274774503626235032938327015811692705617279375772853810176573910585020135038290248991029883267901895114167004978005565221270419801275513831005893998224367645998579803853219916633346874000390772328481287164758381633828949239444978452823355605720698762987268495671029670590803358395996136072620786426617855893114403991285726622342842589334959341956357614718268231165960061727926775604943880160072899591044632133484171582203612552928748362977723156621080728303177275244778566912835934637943397085939470629040943285815828416540467395045890808509604336812366520166051499127709444836955854625514004713684614915045221951583127910962878821044146646109362352408091600542226848727611313239283403055166270393620353365707229705778644689984699887890683593183390292279074228171398957197456639307151507323684199581581336966291611192639343286780287316316424326861754083018848142388764717044657582908630073596892095389868118179307694417090573192636308068708020284471235005843038064317764015357563702651572325541841943208134433409665149083654700689389660027971885094265582058603482652218972082811513275070741348918925988500276918999290422596509948400437536327944813011554392816338843533606124947285314431953880210271184061576754681195384894146021403750939473416732070087680495617783134793398224709498533778615285544322181871026454532727776896367304605657709918039858310165918562314715358829742322944079097620817371708247562114043049166633253112825066802464471270401741043913975197934023404235529831368727115422951908338274873811259654005364090052672512315043525601975421723565035247393960219651020258903174218263924258151831593505232071329274685877082806639397891124310684747247714670068395576549272626940402057172579717310641930963073804905073410653232492562537864866904067320062235222505939241917640354436719822778520117329285621863252925605981949610052098838276533834853881526869444103660564857535349262896874579838280328616187410335973767479034980421257401332788671295443437872171169751319103898250519784378354331334555873763859412894882835704188755851705367309536593200088901875985739083883538468677811527107108027587306134879089608843137754846064497390781750991703700433733515563476123768581439730705148228074126230609777361355786648359830092142174648295289193169478447236726099402616873929493041839918348380757338735195648568973403024700133111036750519334972524440668209966379572274695942529636050397530741005465498781946788457644146813158031449817013859228159479262796848120914183721948089231751366446046165532836234523635377550631777173326195183577413052198708707428248634725823796967862275986562327111863055164737823520432063329669545120978459507025602057959987672237474609580968716794275631875797158978547578823807588767793874580668942054889262793529026705725231792001079255710342254856182096768361413239439267665557169756144834903690034228279225919532603037687912456264486602128413501827038967449381123453736750566251675309040586778275710821874489937667268172943954416963152935872526770949044666953213631611890569401512666943558633752867974960130544379541980347924205361035463070509393727560229008457655310730709908578459972717612008132943785798881541968542257259305634721599998300846040500598608289606714857222345638495987590377573534017406109244958132049703535522665061783320534171852142583768441242059487220594690920025104754899183893352263664855387193968334524881760876420797560769624139191448846719241384526876850365516344220329096101208414471618427847104282864334179693741806514241273275698464409885609998590053710568473658982090997474548615951516774512451713866363429855274300251080479819367851885430746872370141255021914113102755613299169608037820895005589514984329591004914825474247133004115707257560008466862924579441235145321797225588862370875624044930857833052422280462511152776551987743589059923567208223003842780984890440017952342053960236835664843647069191293840744776548247975552953201863738531357864812107715246105402669113473650314609522000683073151319235394687419713413798859595949503888934335277996812480507723481896325139520736045288477130859153537007780853007102244468227563542951269613524341143665838194740411702605608503467587378449827013665927658880389375980656214029442383309093268286808571058590470273886326071118157082024142312142761645506232884823188660584345327864903982966479782224442775860145707897285739789678032595906209405879892195185282537277062951849812594768890315208212670358948742506043769653758768482154168572217416830228864687756247912685755799871451650052708410546651010983331171986537859754229802800682795413940028304497132920535764525481696179961303497030201664934698130255810790441221052403527600177259567314231526702096113071274895442151076864363311894199394055147598914381561158446880366041118774788333642561124612079512237894549185125698384401792551971742606973237966031741909075066825987514163265920920793495746868243723587606648760575647754761370656012460938487631578425298743419027063723040373877380594643785918972714377065045723445726431546857964635127814185611777552855539712097274001943816199550270448535481587812266534373657559905074745669830802716187175952587066753551426709409905943838241575572848538342513665302225716447247550761156657384476386363764928239868720221224319022359716283630574866225767219956712186618539832748677380990404965295998432150975318126857419362652821442846913655756722519551114088398809671045171098939137105255391863527673445076917900580249028269955477829845396043262831827468968858541903090777132090261189849200111571143492541782808474094481832464061764643045671837062855139740121097741927753473285721786624735100085785661219935183203129955698509040381843021255911367628435337559054603033746976682991620563982529398741117848537339518282516525131916242214844448266678275300953091629472953203154465346946242959467712913822133567297872870554235465897000005804495015571544514512085632421890963472217767225178484475940337248972373582771929340755920084779498183374866303359002096993343926725629666824591137514256420578955172771748252315418509198632422204987928870606978703303688528093857669897517387673961436769770422256033460010281646278244097367426094701233336460442583436325574815590328232266979008600714211805211414828716822775928739499906370538314380800306040365000001728153553083397627196997989600502390453617329815242925253689496820543478659807122890315501086021394178025546479973020549269254678896819273696197215163576539789678521380798276405718782037540508908034116296799960578868252941520061362756587127117257146723649771404076154778316187939605694941313823208332723400177330817751038540323623223286081432928465293039493850149609990963190052405822072377924927847273910696139662267757990713602281676679025276747070371777734315284615424015779878357523890688925676541299469190941758033209682076626161741929618779241593885337175336933463775482986101125841112039334572381681781833076457928474228242545890942746052636303783070935620089269206135658762523254919028299756199938735037471199075204520861101191316097219726223935975999369365731286989559223146624546019048949257796345818222093755669583117612949344616444154931712165624397193938864093643776639768443849895615670406346247757959767698172713759056396254932717169530973438582763278611140537575588296611395574377444962906470731734085989181105619605594894040903280994216627603719325257854619397924811020771929836042766720313661993889692911709033987871574421862969776231091940620092326916291976034128259989969177198987295759716006106096511762275284094873687983890347041232387962618167259330412387149888828341575258076704449485400328438641431555842374901126703323806501514631545409774741162371771518867201305459420183162898819288244801498775545800235298506879238138685624798365113607856450287148255968842449347165639819714585506933001855035389255761699984298494525166709450250483031095157388070496986634746471220004384364220216115661419661381098807769559673953241544569268609979475027347500168049277519464071128210544819701104292572014101607299284502624783598171933331890167931691123778945021896142619003390068034519611974022430538044512739971044824180113828272562067989277842812686618784412052403745194329381197274684330468564473667696166808306156886209949976626802129332502932330034665493508941241013498967166693857306074242935132383115029250183439196242539918868985040570099019634928563430152444968326391483616166033087968189927510132870108622121400486353469255179415322044916538416801363339642383204553358612475817764706091339514333725610698675322339849080317320801540093877244154000286148258171188167783436481770137025493762883323018042458089680574642011992149125681028009041762665925348581737545593951788102859416785414696729508363757145304800108387036335199586721749731968197819597739589788269255905828747676854909199245682835414089290688881372224896315017175229656759293134337176185822690037488018674295643149850750883866840037518729264304862111120973172921679374862317529485332833544271591611323175565238934729125875151438968701455566414750525265146104375165663315305297036041838933363499118861579176603670861394582554472578219565512857621412279932919022113617622144252341442910311537204025862741887075011271243452218296055823887392674651355244937290221852648117044312875468113141868901491805300505099221537791959491175902771837187185747456780426213592265872285617577224541992734697299790971960189128616896267221147240707846087745991565300074561717668613546567083224641226458506769458779922431273074128859997902916414234655397091555009191710519254368924620564175780288257482100561625141115289376765304843273925182416659656532197714210313510998446510347899873422870770721012861556161901773990107376386019378928185375506639481073685419384197835059451981816790688176392631890145146759021658179748356918497488794356836336348346779771133980620716864333910995339295730367383927018312468870224895139991328298800789437567936954707197675056822139220132811835289720388950111500421489879961202890780266853256865658174805138754877981853788972330226357314410444371802017423491098137022424185691296504495230665637004748962130983998451424795579696822857758786221701857319208996982295360572472706731291301292186814286626375636110784118011188759883139985791866573171989718428237199568373671395208745645304912768146625083771915537235363664949606670926719063613751573571955888868897822631305877616518940971875579127555705790836499861124892290715799587902358474890535168583643894039065929795339075247319366100406819110140994883161444976765927300630167120681915583285235643291085043345903726306368023805324741431495428402564846782444448254706782509958190078030123408482509028628167143432990720422949946155923916978499304775767510864611287193843913815964822178069341948040923256932530614701903430329703757562421289790845496872741833580522554474956656430037876795226120802231040495601643699854030652723167752938724146112613877377950857902903803284327685759860211526193244853787352152518909726757556439428292521880388415324069890325014515121182880116525375322598022080701469652558988261444056744734923853543027621512950550467920649360067837870555819991582572532987867288467979202498115098872951941524927322402140934390310590728339073182966929652329915074975338012520001962051332836493513050625071215735309415425052507512479556830952197984122492195814997504644412517339347885615247655729742457443383520658945063226847888527259586921003436961860774241207160441238272887828819168716177974350668285012571285252234080336049702841999926016313730029798094684515967509784471099860126290229615228402580864763053304393849360742002058723380440343424575992274268216494545650583112716122867851548237908964531732835122066563997307941763733032500182296993232021121524560515106636403536179861397366565778614593037474344991138397827174934599024469048989013072153299079090544006347512613114066173581735175260472767539547765501228822744562522393578898873765746282376470833703320140391164629854953734061198389197291765592591389890744892891200691353976518067143640238097860362340967604861960191812831238703125258756403487285313254117293868419860750584902024430374281083905700368214222741932243681779306404843636286738137490474985018591360886107373628204871768090030637897370311952416566243255099821390356069289255384075414924095951604985956599108515140724605244729864873683111219204131086354404309736239246296023884533230843174999017387557868116919887804230278573796629073821718916965917858619818412126363570398848254358520768219445576672008802107115299011699054410860323544622443620929756519050785520081999942089872991289669527925340823461274770263193742918645164819327211603956756510392492598958171171619527281486714898594930203741581606812184476311373311198211032228393535066596981675103195822998671547185111561948401684965248642526828573141404601204179134568302448852720249705983357314870375609390370971262059003031278133990708802045564447277925345783371550323960795259954782349582289091603121829142131303354725057411682007577535637776187187290300816632571451477476822427198588378404109258297576440969581150089412065566733094058853462491428888044022808977061612119959477718367369087878176244810102854266704732523917817526544832264712277368511040357846680548038836426698617153430467437365594179494018384924914219733604439123358455529029033272444922261199123677322360054847822221855329449972543433562607926988656938891354022567850001803402628270652628268074797531237482217236969418811858955801165722490833783157291749625403544015907734256601127790360289196202605477823672720392729975737228072966506241654957315083432445348280134963934173015104097687680287767706419370745966927268476232508816769193806229414234994671241715652073857929301878401674841981819050262922595850866819864690751879997993558179224734147471016362978989091358565360536321170919736879860327700121295556201723375094243218246553492596750039913729853823109997735291333716743161611096221849117311017501682387553703797335130904392459080436612841770377102712520066370664018564564173649866725091739783141007603766682452039460546759579901840318041994346447018684232494032436638013978837363182379677551754660330403781316524837003794660931135301430908419609736558283817402604039339683073515574243879107946994383125002910711299327358645267965619948408424786891877211011291138172742944273117201707031700100378369407895102064866090090197610682624963720896009780965733479581474263030656956028465703474185610452367588510796515816011070381330384414058166207920217242796200061004535234647471309868911412021338206948296077829261969758775897675118957797231513884395249378682795350440676049245505345383595967476363866050689284085926030023166845450058436792306042665600579671540102787831701652912139594107942092444705629208545106514211504694443689814422038468008191553633263853430924668706218178844010243653820967014779254359425476661365414838301634636367996901251229716832465085636949981789813040139258782246330424374297692698179398592943942196498358811738917992240266684008696278305713872507495693621518893410058438675448479560191190202609533722971452879272049781714351836982989078607330945358206853488837105287631740154014287870170720309529090268809167048102598827436045670307578992923569281346838637374301773161980403935378992336369385012708549381798187106906532058221051342883644669172135363095053956745214633807447471500548089379032696320160064809855633432793725082176233404312908264172149780298263696509023419936988293559928586965264159709490263788387072916142431276641531177320514089686509414082953681179150829040712080398723509096818792131587587805769857788595081860284380618838442762171119816702158164962355803964297925018259378527207791172690561535481678213389989355183720714555852050068008472336323602926702360403093270064934037394978417063376624460144838015586703398066523440168317138185476732631182553981019790874277087756681497520233010299841866248924147973475346129943215351015826392603422668156301020926859638803105879046076749910085633019290988963031351859029950834425629704507918369437840227359412711599131519292036135263886671707180415148263907580062490574371703329945035755124509569786437900819762711566799752558996577608443251167369030655023453915881711521123568188648186346337231903074765916330338757301932366116088747388339574718465160831348350608252799066256853595667086887845524052458544275223356585785518698762347756001488202460316676111483552552274562948630016498281067846803537156746512752129800317336678046140554639966167924409236972600164779678790339559711589256143014713231020749248267245377665722984592986222659105879213143213540707602586130437346975677674936981636348093342378119944521610491157821159801971507531101174104318405240006073942455829082956668364403291445889347103298755160187397361233164420308740630602184416266301017265644070986282829353923135725198180863776143671023379060707267286015518656264638096490673170943665137412995133294868637576328553127891836507238069869193499612612951337097242376000485821306244934330156119963878472121387598497598842145934720884940191797944654854170578075138399457828052081737156270613450305672846230861625803222281125724926413261011287229457644810428130190724808471018698022623888369256219499230721906619791398566053289445371632867723589554389794047843401703213372999518481457140166947693234690485575641173125356438260839935800690516975118901112144517871164925992969364595533741322277487311378097729496179583665857737334551248175192384838519363132509387022616562623085268177025839777001272379861912954601635414306601206930715223724492950330917896579541714868603441852610349125714565165246231122760630773919592150080551136175967563745585877448627990456477163852930575608537500223700464172349057732515230577193799837907888031207781422187763642499192491506267483184388742598608141762607872117231044092775472758695521727980005499691846842230367230751585688235409056826742116235318749049014466691285413712639929959756002894379017028118447070509154475154294211060935800144555291580775344785779382544493397283682041035660290688692279767579232991940066252829879680004629197831120158527725250905284714802883862203883877370573229603254899617117780727474195595009309324461135017536468164568541323431132072775087241624946043933479278042625769093609079163883420845997507911902089751737241039132804509211135115157210994129169436378764645941716893028543422654323418446632982111562283831903738467782576857437962545881310416411788154618261539563253117129642229884149585133434546508009962150921041597904353208357761142829768576348322150396722775784718723182127197436487749636773170037931038069200223308278531437051534051771266919222830902914570652901465164661081214656921760057776208381687951816288155414546579959780520207872781233563490980491908696339975584484912266286407254977510530512176533746980619775565523238235915479540014599549725066759405317475392705752647790261301656534461547139869388640363532973823695014093090090920448752157088404137315260498488156560329805014977233468606092990332435320063931851703734589023366459732172649649160113331833297319414961855778097057875952458527210957480302748760096946254197639921965263420399071739487185220621299264371489430575060046262511829393441490215447672620199521025875760485175478763527007372750378811522650796039715510605039083398725383454256814303989334044632366089452961413999818814451335978339925232723046805667386520482842372822474821539317137243921533783108425548602129525381051730960305598334807685291434983741992014273410558956405139178270688058228364669191939401306850365694246414959954547065852462838497069243895792667170541461769158066218980501405428429748179535425791259444815721568776398497739062535478002706063565270983671188077678435444091881728016083160597970000878829069201751395704039444139421885269859229305296007022012382443163165664894579524793292171762209869187570539421840504480213497173089882205540871394983831126448749812579822848232610157783294165722487198869691474274023772088190606660072004471535341666839174208931489066182866937815273773987251063698518633646050070833779368791662544449212833255467403516407620275304500631589137844639187649361298106756636490446059013131672412893288814221551834606238766581296754516863210446454391243806010226006522719413526320312210396395622171945788739229406430225850912900392668212325508193538296659502014700477228415482449192550524207001110554984339881377220946549220359544919563517085220839406502028048116673894875693643560721632699404769317338631660875248244444680656606465592565771013504693683820202097720435433441917977311376996816999838007482855689473989704632045580175806796640603272895292169797701311415787173795096847738988017123058399291966862968974965613472082845604630654069115718927873632172602210978984285156327051659787657450132993116851263312722060567570149856644410749349545707176032666899097786163941088123733652717743261337741111884156047751749107434999912771723219183633732314123741157953760762168675052542599266046616167282733258904637901503410918417337114866518256695272745681748169496107096097404820668411488159693849824623228365579451967252002918747867812547715664759345598037838207816573550038726607984484164669442672176992230410992629055131036582775914856573167559175758817296996757210715343494295708015374844755728398689037654697675993690776870275943950208347491597743219789668658754517127188284710718551011000741219563782423822092079848264897783944901923008005708604985111667246482882834674874358002311351323938292886510437561206013723779742199832982879221674001966908175440870331359263239959912669057409887639273167861537808508546013315129903424653035111102255173955513550726853634540443597632264032344109828869334370972661102618358414955226574306529464488055123654454777091041640897320450872887520588830240210605080973644992965656489874173399557241003330722625876170667400984219814340276461629784917191744303659547045173741649806918327216792583886776716140526720021249688219782041091146260184630386643627264255177325206858986863470248615600008810590574199468016423001824749144664762193957945609383786425118711618412656836661076008854483658815859841364550837792431714895220596358041568555333422047100529475424735085598868902935316559837699020763817891114497098631629416489951224298531165039662999345683123886062121638604242454642530183786618107235684063551351104436320363210008131880253927140725971700491568996345937858769045976864332012648573229676800240475102506859240290890310410094629039535326632637906981518608502397772720693025906256983130275279769351873495253425139937771341838132823906987014704072967273836133657085493629565168116716394279230554965141547984117758145778282182093953159246464076309105287415767870788242165812974440044628667006268685641306588024833054671472809788508082007638330352140907105873697128166086918857212887684207228545248525688197503353277456457214051561773539519439512376751799174175625436738363763984923993930980834017931058465319858534630456759451906278206325459037299370304765105798482755913495508546444584899129319078718091687972377884746780049293592522401870748331847236935985171416141953809023587446430575302474021609684511714653975497851841615545386045881725190602183142138340804460342472243006486941891069065434425105802362673718811351935411988570400347489037849944428289584933405763469461247794612758389762449434733387284755713251550802968139281495829515880036000159085893983000088302089136190674642276143050598889773107043348969767079552579666625651648730148027516420013778918852090664118607924169464168763605784705991930365288140728979608059959224003207963806148889465259567495480523542966415021586017548511831496827147781896287820273536549638011156143230619252533538473643342742487009433112034557186018148447526159373101170416541704643119978229943867469289500080547993106458776135383554686357624752139938699767442957473958212919224562969878787432045684093860759318386110131958150231128564609838828333889540963203835121555714333764639899730106694025820466401015483543844426371896873031518676286884118667510542917386697819215068552179493066335278628878747131705021406212081331112402090101090025783066286787885615974748812588545571246627753089052135812218867726916966345518957759640928827857788433408183025412886921755957941548692583989579021666743316995305453715522933062985247473968930651465053175196105552152630536133139078001160296058229653085473204205702042231255476640122981567685685327130420352017089605099104379258420099672575490800882833127972484741385449209034592497101663216741441172576331802563576620471829678777913989253839847023705385542016882434406350788744272635131512073191820003906644755114924735841857890956364235353627093596116088033205138624588861727803804164787676859395926139472108726686843032278023640541101393383620802090352816223312347475691134926756667566912536669832446523643089173350967556228491403456145727215878541806787222956032366054515008810028231033129935378871665365806531200025190116860773508247168774181320731856275323278495231310333696713783742493979008210421511980342837413094141772609406006368379537612625641825554381011467126944389986402941956160621198048220172388463061906431423298067853564171581034177334412554931311101681129071148095106595754325091954000641465838688660460306331689901282673370302901212712617820893754376216144305912776920018802165529745593333652475507532090548711855794597741543144592911665879518334456657051441286089800726651369399359900334441314427223867992435634652854890646990901930898649841697595186907706113617968114098880787707034490199323699042104206183191286907207199306757236631609900911922527784233905395856670746805575077712720990159938447345214781282134119816453980727573733661385042858544853105131850071726788082972779073794013120605550598130497782937542431285059386493879046861670826770573036819287424389097395794613872166038079817552108300836937247633461179441311089599684792264092144423570023341435267496083999989741077335551079556484250565175056518888623932095672064748179402036556582080272733475974619847330744808077243310749034482698293822918510483080784255038392335746963654365888348752290981873305862919471978692942457652245243019711653304825754011586343953227745764084214839498589748098519180929192199250698401515033390722475746786395129871073882412485799915899345294450805287118234577999188038482947182163630716844114350034789908616352970984146849484260706518269605798032758351794002556241050083559666913471144147430750350990814249870711610913924982648769184246863098058970476977960215256161471357404623661152197992427220781848963119089823216724546388751812623206924574686352762683044404724438910420542679445573619699250514219448932733086239973418059033539295995278955601267623039869659880286110848725594846606753125219904313838423818829992615391442757549826643401587021469504462862958539165601462865344137133343726611995706718335436056431173038782987709242972345787969361885009625470636959046000928300847097731677353825404778149911150131612400566845842213651769196517854176969328361355825833259066899857682504823836080958733315692251200374373203810437102236286653975095033669658071542799891327274059692974721008454114344919189813267888384529724496099486491531477723711238651508187761542371953336458711533868023849131764596672072591691297743568301386472121234724185549475240642245257350498877154403849818146967212042587606687752951873851399744999487579364608524420724201209259530162463623505930495801046584535728287166277442504350864845401785521765148309452046603413874874325552894587570121197210208641454537968633415908010814852414827790393248316896056037006056138841402248657540965918758484174484991643497601599066781117692007905438300594012124093237811402479958044139234710213298222487941932367381995532208762311029306222604594803912771587617053671928461486704342958648309907769163247521279159212780302816849151976356594484701722730882017286459150325239341744115007990261747232447079612337865497598455662943152369996452381286532773043710055444211967997078591070389046526933002644472791794195643455708618235948435146880616977974210731083997985833211681511984051476337817764419735142582795139426811686858580583988616156437142797038755116383922127851147007786911452506231702514360484437076427940276919730120207933919593298553573808589383006438818493186899699093094782715349098739009031461047992447477721400009100812208671409388372582884615671133977870463701223873944309774374446379339897174401795353714822516521149129125505610649058949275783134159047029272843669599790139151218657770218870471547110934391431327220031831794750103423171070494085935309827091917253397644526470649251793713972031503330588204508046388321162209374587363242937929958016133881060549706824819605386422148118731509542777440777182996322101773436888544896336648125044656635524010270940651613387342436359026378007354454759731710917763150973060653338569560159594386230460849132878969078672837988312696474354227324908357254252143609247837681448907606288862678225048307460344075175175610936242757663809204722087323977081201476208615097727664933064246705304036754578129529945314595637815104700156890152794875089328054938969248577317760849051049972428514625844762224750237019169863272270339993831789932041879426326204659889926677024732212956337963859046024379329802906662900482952931878680463741210662619691552762945038510760699165721725233232715533456842635121047119285423611235191383405195683913482294772620627706891690236498859902482530166357663372072120268927226568008401119503864700911793374872959205285721938657136947280650253947334342085289354270104000096483230206725813393765749941377540506015884615173613111762914360764129993106714939448827475345513044080639837625274637657963956964515037872526693069451226265687549147361796614801648076804001169517563252191796250425371395863785587307786630518790762991852641341051719560341275353366718100039525237816379704588352064309418991189750137176246421545056186749835080012136948290539177548408569881355127332851924633451328246522045768517178911064227052550801759448088246254909622519117740776313273075373739201100164120925848073539061096933908782577998697503844831356528428199035055078903931786655047805297535974915539756316510643285780888486068759551061873931622005505375210425351907006337301645044876911903068326368718379629554982487892362172588400679785871288835377056935608738528182479818366712339915535637557056044175043361887810259018561818777947849266809467642252873646041044793863695842190744416688047380773797734200875269005601705085135650048861789678881003613239503956874562889585584123553348021410191264995691995552250968837758326065665405543592717967309531353284971538066124108061405367072106802372880207323108108883175762497881370920131671654170503051874958395498917650465144418455281766186118446078422866574319657287630675327647486989998293353149743739503281529943209473435674573948110511585676783736257175902140825962614424725126717886576095744115055516085994414799659112698702829065115988646810739214964831916863780057000905879589666948870172511587272520783910610879328641865583395722055532868387400824094408788212753043652268346204595688188027385091119355171017720981535848148595352608475259260630855689054756319178292911464333022691900211364285276956417380004009808792529731691462978807186661040244150513722033284728878581671596762961674111410750599560178647765380530577682297812982339963424843239253362960224193434581591477074722028828998817027676344497331814597960330715052556558563172803227172441743594760155412019814564601676861204766082462565478354166905794698869880682341709551999042058666365378070185151988220902703406656573809432088212369100185702441961313173311973743564675089852651247725428544169030957827685131528725969549876662671873994888635362184068733186729023038025891915359648247265888672708787780106300350565491271352252675788331239774259421689646338158055267658201812165498301522511685262003975909153687819784902599834883606488182050125366399938717830533614584616829709263155033978457376464497469214600213941335164312403996056392798050365307109474942977185137371195665638243025340979831017944402130697739391738139055705785757519641568545687425122344185586675752272084897181078839447309933888054756055395235936728104660348389201639339165405795182967608243903983210537514698176966925042286896195767862016637883755000217354445677521124318208043836083657068803599820189942062234702391556415415154903016453913757709175642989426052951154178683019379056189615791806945709457206383413852622257504913485027297545611316924848780343546021439351781032732247603051238113791208875230517107915886887665312709817450832699719426158023843094123282506712519918541333575104732723336063766978028274359588619567309767418110958038046948359081503846266985238863019353016147722675316360184430508373357046355447252394515086190473943863645590742681653223469051794533479650957194914973094452477655603026328367338601382297152773851007781460593793453945301913494390269201317883538894861636323037359704033736765260919358858699492850294412423282834565176909443595581446876994348025865856203006716838950781207839980411963294068541661502127537464101014891831309086398084356555242232427749021734597130095694520866578986063903042414351853233434299943402881493483845367835702444755784789794952429292443028807033638113785844561246103775992713265651251867988071843980521626796608226398182884698506247434764191130722803516280036215658652082050801269979924141405196351325562032764689606145300041884096801154405798995075637957793384775226369315370881534195092782736532104784139582742904152667166748312521628466841050178699061686402284372647613368328862255633708132021154529381665106392252381845643720466596606498083665273602271233612998755453426710194245249195274884922103181826769182396167457090645978532862535713092037379589588614526498377918797419716290407127972110551761566854141706008655320683511835757782151767841187058303843792598489348854897763509466082125882771834341389988262938189868730320214744725047714505984993600927498509765504548015449368003153826548209072452805735883424660865036724973616337379734291820733933484321070382391828335839115689195295577682084615664234679201457678450674021942620748497427558999976070070588689170287910600072172167661835862047239845627050394450660052964591417482336357835619035522916337228023247410484321177067925312827650590553780056169682186493991995378328057217138466339399090872917936950330886257222578025305901482580049617207799842197766737653713976558584092388019782617097110066581012584610329678599760075853364533522513320405910701985083530009936237834927282557872623845408865707756939784907182332354993817447872156195855362521867608456883341972582842700037268606542019321500917153698691217851370525879787284209109475775587229613037115004754759163011409828233604040019766373253477492615213742900750017751685567458054463044437075601093306366637466753232585664944876397481177573686633206350108857811748824656521353392145557697851405786729170651183757788677082780180907958429070277675801663372384666198934773526476554081332761128565432968464945181599829897076511627508241874860548292371795587885809769162180491746499406966908263113686855028223087831678161992752568398025276545342240263428454270434259840683713101018987523597451324475472322654408051478208287394862478300019672558970826498187867198475026965634654545957085435006799261291585273440726371273440243845405605638169962733608263985704096697535986362683838688673493420478268567581684299573081003704001825454120018826317844903599195736938708661320362487351012856335364554570586399261954790295397614324164241232502388489321146767956276802342453376911196735749174840778289671815335252059934902415759019433960363523982444997068359442607478859993076527033846942715872302491884429233182248291178703561089297372498707574239689561944198309943865396834435415767717440700368102858386948629218354117230135232065325860508806401790663183612265243014533469088494569761328250303774407489653550329178578871218161434571214062026615905228481928732738061525362597156810333768924681789581875176188423117943622219813515194105282545576507445445132739570612676990981284230229915373553496592592623770251917368937007194463355332910732520416000582516991758950568593883519771671761563327684862229770654925284784787407905317946258782476546321402866299250497088251637729577118080745031904557882540169647145299815624741062381457207852667678058759775804774024812976159568960103674689761799906106933628014928493598370001580484608837972835213097809858538443236659457397944428605612891595455378689114431952588818896426419393677390452604363245918989127251662507503405448893510739651884043051794730001943718972646362248161675688847191692116379638243622199618652730644658628538308322379904830303962180563178904413485611219911143702824553218601914893980473962364750115831106952643229260744826933512930097742049712118765535457725164030757580691210385301932473639556886409380019656320415896239332410292564721588901814346389939833830107646476014027499953589895398008954276824691929020473845666180829893020309442281212032389033953662168198082510095420468136392760306100400365556121011145093866030869483034117185982604071009183719782891929817076411177280061798096170516749550180944190610523820527215598307549343697302881519626295673466341420862520712179650812925367361778334630127884413332380851893776037670368227003335589158225377818539001363883305512890553441503541028503591566776274837127628561761702091123352729196606963316768815804572019872293872538985789640413999489664578512476983573131554079821422424926750481316649869372776039043420716928128308819543984677646360789767241917384307763246165394619852813983680341375574760679298850745816644511845673328780062322254585155119682332314370709453627818057129498947423503256896822273797307339568644681137060341565177719187746960711469092315848077730713570138822147567288803981471121941841601076280839358723439107240277123016152018315023813238472448568837876358725624937571676153656643830364426335214714358490896668750056545438593337355108605058780843059239501590136281295618757333513107815661855533673271403565139887158683805281497070651499902607822230817358172278299698127630664027291030654838649681919784728962111664865906647987150404364582540946610259294566007531711277705532911676872183182151255504249837396770538499915904938781110044191799247147622001122724471226848983715252014802410480905330852250273680752607926190842239810915877763270031281181492628108260653388220226164863609045386698345243228639511299409634491464675225025675035818088123802401439942463534291224757701521750602577016707315825987990598089864118026371351603256097673037941763506042165737480855551760693486058089585332187942311409916212570667167477224584490734544590564529487349347263966232459859346086297157466701941484310075658019958927297531794855325578199949130198453613688994978080580225853543408662497136433222800555327959937143517392595809443322275404396352456279491706076907659281032474963778819786732419950659368914189639368933538945899125757533581976395082456350400274414436199637357625547037784635402694307046478817472472892055366455229799779023015450778216626628063570739877161029469394360492789639062428352605843616099917753745800636426617995281274872232203817459293656149501396236532565970012516536396719860667182022556508603964099562947991472768900615514676122507612460611905464469458943531235723671149342909643041402482421088953014096804871911646650550980073701635802382282398015194886550883865209693824400106208763422677997229366465200922843213954125833321740908364829927743832443766782823206822257155304809742878408373622793962533698804142617626960044043411075577107938226273845680888562420122392181692766847011919474673698269096487865131573873416886815285361646489555597184635309912187665275649751618296434295864208698538252242476967051042552959908467030304425406922175669922500833479418257118347753097095544296446652038320837303076634485348109657662979162292356550900658120168785151004083008133398144522472734010390313957585497217278956043045456242297367747779607315963897933631332573595389960004183933582072863219720588219251975580925486978466236361557248237819531462857726639788114302925487687359695857145811532388589915845040518385923138200502190685158450606809594573107861671758509141904340337299094399287659290681738668522654149235129588279303073695194754629087783241575251426870842590081359917148902742827123998350295612959436166268247787939977179344189539986101901559010451992926583974014711770316379747645128862967362344567587090046577083696563314910906779000405757279902759198560537494030746460361469946655266091024231543582296771626829270922210504654002724299734468141008907475184495643200840020084805368426334227448957956208414479035367915681498691267324581398112414918001546893049644890870952092492373897733871185265373356780312567871590860063283671906947624701781800250492068691214965818429132654131765051085066904077540559350866380334839889196613078987614325436556468591542987645801147092454784189974801693447664141578501197860363210607507159780357758326234493209369907628133920726907931230448089939734014256104686786535583100617948092039460716665135228711803864872967985988268355900480584603313006954784980910405525493272558068378051312953276036988935583488343510350228187144923882811860439726317792592567845096654377933231987688815643738821834695138736882913146485243553261259872540267099877730223795333337506045784611585612477866394240736863290587938499855970342462861201427614514053315669788933628508257319168892530725468821294552485869002661454719763702046301423731609453789016306482460725547352792437623625421986750769953910949843331710853965509807002757894496530957250320403035763353782109603251532975095292523819047911898246157109514677617784331800128914518729665273726791073261222177860954294430230306360291787305926286209390830370265443992972889531033021044744590177611985204852552126469784440664089694735512600468766937529310813826712502396911068672462280855653497348364187750628981496810853194791316310826633784932385803032213743748762470588196155588528780372814231078023739276379818579982542685053811075240673928796319221148684962237272527014788184290664083233248062757509217710181193938000121338537824695376266049885432141488558825428887974381774737203578579892671509283268113083724411756845770521410769447432626724759504316304297789624727799093631083016065066324323789825991169829836661729232766780112066390006162075781478610766662382473006658049107959974793266306382797046592602718723337005545870335803115189663962220567448244807358033437966196958564680357674436283232371873948172956978404809430359353208310219119851397702872924422258694091285567703045681453993731174502876063278985717473611322759921270851433756587064484947321857064513391917884744400524433122108621582076614304174260953469691169379250950860125091706756189823048146373178980440460795401245675362042993625384453640471661418072191546532765916956746188715706142668660939958909513897653760083795146001600204772403694216449280735235908660253753815902600451494234376948893900257815779411220703152145448677305494698953686521641060000734688538165913590030428087997945366387060397004350170206992947351937213633246204748425370094760663978585864907367960757297848278185301604766607242736999442435027733734178916284914008070731298790620093029951678458975311512942077697548455912958532926943793093658170814545133384579232185464976025060885133836832058652586613627867913869633821314374440299974755644237947154028755745361829565966240796710153066703577504975327135052256191614632156412148798681873279402333562293286610916146511995707651239273999228038135837416971155481321889253484293220587179361616715524602268998184049067582896417703728671922720893561765701014319353729082421919644028705061382800035101674310076636640541286961044766134964920001524416552814987291191835281820663972328901065716951401519656701208937395240084316306156487243547309578189200787350190483847045851534115332477926539876365615191828327028750371399081373976300978958954799117485486064497773390564282506823939755517009063663066994194727198661512702762530957808494875858070171677470470304089308622160530290679180670480753500088608220002505361126193770236949405182078974788023804851997779268783166581732501334873359828975859025442167685142861403492505954403667967826535721177931322189294655274629397713430308774691924581806442264932295188038660314643955657606010685631963259690693084783063581137077097147628045751868774909817047732119883609058410332273290950007357307249953222900880179669936414601474345794550084830666170182055713054420189084885235260587779341624636869923492180123862595767785714340516077101780650653938648529699697087401084075781428212519516627037679057047749095022486313562066656751143373278704493698649706410147395726823123318363364832085752346185242556356822859674255388474340137192585896437360664762708912988222460162646935920460928963633183075648689950296918239995843415012098686346324072922882535655008017430560615969648340245207682360416987503006690038996174970390750484108925106995724345193161433086932707902909087964774239988407331616539839889924835634840881051280933606967897283357102369690300457955612132527360014456154547044322737824409292439019304864585488435325187514903820156872182391887735325312356120622834275870682316450393550721851957475409701105051308527814175992630146338915356508836487686006860663074516387472638000537695287986837327563524656483991948346473994310563119841308579388630040122855546189578712633748951838462388238375031040650578469046365861109575905920420580980150460236253183390187379412684025264505527124172071303235136872730351345470760058008245346133452301588849777079311917726380421045395770612201095776825752846740759378958136347071145658738095820573691005300463577887275503835495080683937745907319678266399913949020138117937404154009814284149177287074325606803929127128001953998496355896541516481271704732042807275163033635766674814455931395712252231578403241600601283917706390270610413403680937234335452088252496672495847546906441033962459598593303281871157338982998394546668681368311223670646586635702126579550927325416732814275911135448999442704341607189265645910844279540077377290719921294229881409759003627284923820053272054735756230315680088620770966550942798786171986408435536242124654773540744075337535552691988157142959367753835566623002468808134630433154321723431039876962738756380017732545092036942848314666549329121240488318217929562474682553635851623380085628214735746637864804811415365055920371953866114442946732358352751740749718968988335403197401777033440603551396006986175359297002882292398742572170743526464893079682215497346922027929236891872547158375652166948544676461977508169033017735634683420219869613131558480903994658599863003813602136855336831402082843105862694434289554698477187124319937344140914805008911698598062810439386853936520542812759624702430195477321291564075895524409030306834013450506248562124620438723656925998647539346813294971315717998864391228613619509534550966275513068981724137303543305625331539724650306852125909716943458842914253238420973713855801042575205952560327658459091494637934926730316727256774517532066428519890353268076010346114774597397709389907772512575673272333677512444001736813221403883790581219205479161616110619688178387732301495436054519851335040160553474092131529224450771486221315168495869632725102915109520998716453960525613188490457818864482377586503749227479426575079523940626200015242993864483479286479654691037054701845971319143931467398591666973723453846686534784924474685308554363372738056505523161931290785507250066177386034024194977014017875532960798381438996129374816302168711266434461122271580731342134478488118711678931983664165263910098933181542964584060027319208026216391899175407552503868061010665293475985514950335916123794461174455619729016829756076455591468557307359907145292971423683720944057233866983892775777994239978885603976088674447216385310514464286739471837535307434951456464579362074467368303227434944418853116002862456078438192944127429525452164592701038414512231684660690293960772491419639329786427508237536440834224710594781291881782194674386831550445558136235946429143927137123663512690993530355002535095982980929810472890201334464278275199193676884675827469299473621281354311276925819159772726801078848933599516881479531213892446178852271867477123396765793450370458842774016270479695592036653159411375487954314918533984542896998881234280803881917464413401903920068644674462910782980120345229472998981639294382807618342738399647494374122195816270032358145336314805841148583528238679350761646982515223931851336004468811559633850531393743048956424276641672616034976130774804966277579183748533739481240096037011037020069951997506582176965303479524971644492130312238976016362586332000522912215422194176348364873864004203524036287879534961102922657287095498770279249822278327792608429179597809925855249606632297719478669895038740051615427499409115886712270016295247815775253192420770452032565010386877545490532924895185694029812138931088831365466037482410955996341015220053486964406577730998278511602827397495619977008074613959926174303307998136968219989819557444457756787661429248321353808194946818336992314753870153864567650296666972534717182066538524973765149068491204586566617601702450938947465420585301847039621754290885123191465605926848172263609008406716256382869993720202175003760331031767243746847073612989978374852702730120617708615062972789753089288989429734405161390139902461209334822210645049800308338599178323832658672338098688951624059895948177455552396455355164971582214616281583446828926065176325784182038160275511331760966435667858718873125859746562231388706272150205167185673141780696580756162076730566717870596208881439858995036955035999807209091801473668488964671238279850139765322454087571846817371250554707281225296018883559913022398255567681475043561125095585201075363705746917718761135934796449169845297279448946530609854562142575564970724969742587970871938607437895495681616072027817934418621437631872239562836947364197327137767385017299733009998805398360560469990451310870650442425594729646169693297163057192356883921801496496864692921937933027536027520177638807781641112960568177905849274041566290200669140641577272336471171954144254855273874014769454335368544664573396762114693926811808965430961883412356073554232859725577765062042564312491877302053212279565349716196103495674466662658619932457543933848585893493958524592427959393825459869561361398073202386015189443511197788712473489488057005813010533682088972319083394764177596339189806783076617024197405000009768386827817848938519700717406915625633939668917349505810101550677095723095941131638922051806585079887944116571493337986217311899936211439108476027417369785432241817790271031547423759634981366789924110302968073111109231048277917458176470636241655820807131265177099626767211936870368538895926659071671391943422412511778247246978127113636678322974750758983777493920038596166867038544618855953888629677008450495546387370718208424644303161306908034562295847486946747932318415189726971271790768938433333769537467721030991798365632432263075076291349526570972605348764789636527461546092376588463546061956725474562063726830818639551670401997968259921718850673778185779669720113813646576006150334883493760379224339602016256629885767267680074931129764362133109962750564019833093917800166515610358478856637814338176483189597228366328570762817309438971067303091117933571455196284687151484285434956219792250350916175473432453083370478270993945941334772044992133076630737628541779639377305763708717307560355890857787932117855495606570242798045176185099925997764636079678638279913921825254217358623190631092122184583142325301706833560717366591441937686715493820536725411039018851991945575091934041786905437844376466437924726737078654994871605136959386184044114756198017297365847718009701544183602912048196602248110528249800481457287262950086519493903981781452623447894816686568885607243924291417148577143053082979935672744299355959523039004306651851090207599028936903652993663459776718756144674271431294754591569068690684573643036628620687338870226068573094498008226798021816612933537970685209569695367624259806015340759616261862021377842757546985486512055976347907578399525696623252626361772327763659755531263640088141565071706781283567217002067312925342871771744230304094676141924037649344103117374217685296444198690297432667852104993125331915922673641659724436851080008865733271648424128205254789513267055538801749773302724808430131219199924200280744169238256253395994869973868111248480022758252012794088191898896992101717398405535579329145689997591529756031636594725787537731964219309573458662686211026112482943524627788244598051883572562247445842724335846968646659855815114360220775673657846853551781975910950573718852959802849780482428207280830924832715876343040178199273575344501094589211117908324114552856470682173584462224223138410696342028351059798008120178403933822713487845245739205285795623985621796136216125103520482540503988954237936864446543043945862412405528765999739677724947796729814599006430573829976533194387126899387208189051569631773347625739168997795744266592681769566569170752912706089250847848108221619835384378421095883572343780060457349716363470800866744386069829843462227097620017808206087362298405458111762555396986843496355548671727984895231759167511790542807111040051046956938393165523769497228412687597858264441459930933725605162842693828192597191506461241446041355827720823764067232937005898912974758345045666943404250037190100940037958514976217649067381772101899130998833251838231101534430227074903920074695511494400616567771375328402632361579654881781690684282570405809218156536367132814504601672916500084894317034195598501088644890854233520947574578114296431464026844556297229246795403851374542045676967945679297652658193545916512671777567469587072830220943397871380263231167576988949543087813353217613017805917794610672162793574793566926160390619269375070944472373189871436807085067781677723925098323498867290908495593927452897674524997745351120221234216056018700398146344007812103767723420526500384132402847425311049487756866049999645318958816635469842212560299705682362467012219253055419407551603300400024745950319870334763285865497970781976268127972121303395094827266447358138854691417366483714074742556600689973802157137539379960486392463411731774412281145915609351154436612242423900892920180536329320380862753368984014007288850505046113299421701570394751125379791396452068470847496777415416939911384833386668714367010275788211128776317418948242034762369860044148005256080420759497490216427042841281273780984909225854658012846579535054230782084716672771944371476059682757196042915125188531556038570286297175957132678374025761956723727001127825136963603916976467775318468860626727479549004123046619366259119312702854170583013314912087751271711310409193795271274445194584946623288014666360963404714335275505405130160426189863830706972512135413431673941136036077792493623789905167165123845236506856849516820620851126515293614279250072124778793900705906000252158646744497571998362621459080702973715706341946139175442035960042758329979785297756863223891599850776345788675728466287150834948901037141802649727221780398676244151343247836140297227071220744975148907031614561145347468362380460264301749881631145831366368278685379847293467453144032978063641968086741504558545664809276807712400109658254591093210885999168704086694882319090503499401699153999733312575270608637309219560891345003278970990694983446482900650234813950310840364719975635944727359868263476870108717210659837272585370359162322726457119169400603642384644828578097548279201229047827565089153118060843278362992297986233915804888391106936928038033286879275415019413552170216144780392586263907205208011452935581376362711650632678294138506301236735199943943567463555488046327510920694612391133990306876341365911194565820239881957683657079183614244622020443224044196804974429274947577512125862933185766825847180670146029507040194830644006811756594762221150365559957264454903026898371311504229317670619323664765149972509870524249914858841191978085667345863968692450102560606820674254393374913550909233901305690693642246944521080549130107023579261671170040003643546934361946243552284328804415246149584225283489889299640055475991999105229548623839208786495896444176459988388532027028588141869421501539253286533391436553937013074723467646142184800630320996519314821207258187978300963124485553861843237569887410857038223602977056135333603999625267589167599480364727836813723090816734891899672726231029225574802483779611285062274302857014542032649248400478941501153239413065585782608240121935325095519469167047011457766019859640246528502212308987234216771649146050115673768270690575886652510200841199061796814688933001350777649867465717868391586657182002268916646056840044220487154363811203630844534041697965726763073077165735806501215027765150950726891625197334761570909629600969901829989475629290920272019644827896992273716877977106243524336901479245496552672338216043835861931271296428451085144636915077796649234397448808339887321499193395356679938232096324720391153959078547104838006319810219291889875758487719077244040350354462187597503362356203669169675542597978122012358181470922002415847862129939336791213455375402055465467123360603203262310283124704303297057133453201247497728081770825837397632905946914905299733126287677206401852557432089380441344860329042052041216005340534710718814691977382778494723461671442932596648580447987000498424669596418718933646707803956634610186809881090933328885990467777741471818216260363342708120448644684363049470934465599645005488094649409642025603444524852643300239851769024726089342489957977721549276152600878864333998126732360890720201616991807461509948270508691969136280153176059683961838886690280575799765790288260774811795487420809443987553612820270050015393974870015242147676657458283378606808556321857012624886126847874813480687153886458146092192602838948200154777396043077390914895179621504565832547110783071893567144915733609644874451695147161068364621298529509045080067515862090843422369355833183568198037554586246415264455713918117582813196050538987207522840616470178874418917368323005660500997266157445080610766430405273418183388653418881926635040756928972318823265378245960520552445652313957474667487174185729717414623822105916036570588491296326029605789397637524620459278411762355015576545943518033716039442437766618033664881727059187844267734634140046469945147791985001168549530805694858052488880905124331337950655669628438916868011186778517437836479425461509202367201396220565185264063055663133903405740877287874325049659688284135489143032776421616195949475247446647704364770283013296537998860484200774489648429509112398940557534650194593876277777678499323277492796125293740035322301235260042681481506067634329657721426263234339964545767697893550027537291432218394036938277486896430290507831009676519202416187865803465529382752998241571854637667948480302602084407135360892958692134224608730794948812523165519913153083577974008955206569498677053342594613885311019911900860708205184709057861684144944936339129170502067243828802043727824249704714601828939728702004156522398920035172887518590489537159869838555920650168020991184244543425223365218912265713045583880066996042130073995977074679730798663815716324959187821840809460345401428349669172532983382083409544658035991313996848759225602727249698154933281155537194867163908917478051618131091436532804326156435939834427107047751856852400578590705571118851737181848307219881542618407992896700403334206651091688512221457735708044954571104909521556931195181123514384748553871493728830121288758473880337694498344734193663231769459142162458793023199083809193525484999894383032997842880165417465953871911819586400413644234684246222377639159062406585109185178770327012590457611337452216117134632448969170576312184993871983716490077796907506506824544096697230302438499320105861440267859597098328744538068825961506347369083442165879072058081448732570038438983941413614805928578663888863130291443628626442735545458483405519947484532247757965117012229202934481028980082618277903101262873961394940787052019511781337888807428116895224166617781065760926105750105428093150460900744685917073906290323900473590578773697112353347283117365800652706110215799862068562212746152901121135827085081376328477030022627882719310363659776912668771518554312633079052574829533792564044575032976827446864546808956563071428157409114803666798763643693719740664014030620736978828091463430884238217115603103122702215858777076999141332726695527476830873463986088709828540863710065106448189958030408414877661942088306174564718509353684498027091422340423728011582388266245270844291174618914762421973186254314673599774297702563907239892740775947565340252704569050314739855246319541501360368625009830472869916125591122509904929230728666820777709488826133058188716061364428371390517752549555904656687275679965425254407800471928885766201672786262536868571774955340147904270877355415058421912267712694422645823263046873976793097660450418423534604553839886769089551227301993328902241295226060270277676180830086875195781481160822963896888199164085333211859760021512814305338441678131342010702277324513147350456223270648247024209047949859795793295200048222496245081738571010647261085200775726306773685085540873006557110047006952988673355327505000201144067417599723020165044699205278259855218859850472473477394165065014169783986506832485208516965372950603307305059256721061149675876732388795534559677684417565952755448269778803795691497614832179722066667440948318726002492170574607666052876589464026943976727541420543450020616682794004721532806288024452532039137038618804261018362514701590218282823926104004740955545805472066062798370391922208765879056740180347329506594873731077259035388673595650546888637826894068812356662095963148983706075656206545944906264378506428672812072917155199760598665368626916175885861483488101528947785715932493629419934872824796379088448809521783007999754132725798488073328867511850499850386819392623000963778369359738177856282102888497831310620238654314781986793609805445099139847797056647672595599219581220157965893595439287382940866867334265085350193117267534460150941927302398551336948616526591452058080660401356779248840828455313237967952458628858761698772053690534931112439413113837133456164492311313063456864523775504522657775273133153717363900358673570442139098212881867956725800116546148735867157027431193849654536046051569400373591832019015331428240485911706649466417886712807144008868113208739022963491496044914375294111275852055046492632834974163220619711743273803571265390576508981267631861288908261849879731116393221879773340923593563277893419756003935386578416282132603441464737493997763299736817830040246799251431418331960424544953657324812383066696661467439545475925362735656966882582310175006596009070860394336118024832627035089392594300062092051548887929769743894887278109758020037622747387466210849486493083337325257373546330645959331563634151212760731867811538918733698372335692142576385307877668359764200914698508530832227339407813882668985947254155939284695224290232387450576484732425410209129761939494937277229401451874986005654229410935773746775800051123469352565553838659603918997731012625700515038069503980110899480871270346390588195438605697132663060420247172041872044767719563747723456514018112164502414024448415180430141907566937563361821189019277821126720796989511875808469055730178824232601964288850990240547369148946030202156692309082923258384430873916931881153131176698879534280084622837901767501268273536520251033971180285989883329873612102121986126281625421623784408530637433775051488316413799066984840131512578749724998621888121351503854283795781603321845212980307669614158455915063715993199544598905219259536149350459178439153851652866823762760939800727016649386883911954118963119144751887578261756802060718795798255666310964726118093222163147634455186990303419740321398481987898442995328412935033223836902799594652348843581578953554790074786990093793262719901866386955089997633942028509070596447808380270260604946521347883786985197617853045852808431608654789351490748240612517674779660474844845047844493724591693972589543802364627998458271820416241414231580754794207416444286638823872150956737226192237108790233148746157752642166655520855197413294821016266256702801709572868486938443573679970383739517112358783937867282370068878862919399569125615128595732626518700727918372990750742488717034518455497593158635209050928786520808096645375754209091476630653433916982856198514177576151906992779460273065304074443007401232521514035581654956662899238322905306871714493980110990894535971983676547686744044789269327743081071203545032299755484683963753747331952950585624621647204472098419675345686583892359298633315513709335352006818761072215801033414724528468401501713285414263184961851685894124275260692163629368038369409059410649597911320914832482806361600419568284105581800564391869681053470350614729286152581473249273176812774032378401528114002149810245285421922640876747656454512668621669855425093044113930948416431731602552959364683056190812092547304457996775139690895754886774349184901629031577451137988145170553902282388547830820284439732093383969829588882356666662453647301540554094274205731285220314598563293358841909542503639838541388484102364917857468495513013574734461412419265808216767510814420323360578089499371804545373482807207159574202548801494868469890069028451127862698018892323870884832192537464808434747071821708081888786442770964789226628394626771912026909493533212652655246727954968720294054243763456159954981804274348809003967600008866121561399634607018332630084423715946432209680626835769334245115178422686626684195411876715317812712496460155031449338796473301745430482758057954349020759094040887943570117602737169772502144598161108689855748089945853186441307797792094059724218258171457624262403980043310019151938614987247121339603264752016082438573390322872882173679258005137692811954217514872972122965036854518654395369536379696501236545978662133026644481956138382694981903163242757713758459838668679794804391097365979120868015479352139105418735978444153532851617741002567658086388518593266380222545349329702092469177631765526615901178054071640927992813436955256617004152512139538101460811689038244172970060324043444444434194807022541305738215669423643864277611267739836215525804204254056830972455661628382136460234321024496059130222807934214147288693795005009966209153888138477091959372764476021785507599721397361051827307682722280569953211463512912851678746352601130442076753802409161706917903674907653282008108039048144404278199825991755799583886424064901683290931993008194063626415156532985327769868553097327763121968184721888714152667951306574705917760268392797275134167025774126521476954809617635849262464914983553681404835124580334781074014974451067484577258753646094736176450596674045529260900979930031583688089981887123612998840091567538698876624516069900416811393466184907233139686490821812446631336922805869112340261712905767473821692863611727837296364616172958342759024658384354899888287569519229948642900897690572372726988187815286136884075198497113807702860864132777188947553076829536067206979966029310643058581149409005439953786942543117902227595978063944938359662987172457112886116869411029865070580160652841105177671778032160650981410512533380976463227273961811932682004516590495623427777717136822433790993069276050890726166970748300268297743656287785956770706075551202874328989587882317324418456436140421241177486202376771777871320630425246989151420655980409611820378585215102029081159621665710285686688453864819044422865424362087610362408227714813231330305612139495087838361302560699179888239716333019800580748543584580310054662256089522239500688739860951967819141407379367870014642851769274467669902951618253519291945522121431616360210157608528525381936586949917396332179400275748975818268671804393604783302095133516481181483539393720663902625694299005231763925050144450116432446064228568275288422053587629328310302812630062985515268133144436713180526567448204765641091022239250701045197600305536603229893085011150273489429547033210865236412152612223008103837571528470647606962114022373293898990666024774275563934122955315025218842642583242642849447486122117232526501765372370681927415887115846591990307165925608327874127462690597650627759689051891077096820526578381237981290402782925103800570818799096486782682684587977583052897689169065981681890837134091334036058489617571876433373102188567343391151794844479691556389499384803608909416282974643507270171131270239762401924829241400226545769733961361039873070486435411579501722828740120569818566686370511901253555610515435101279288588332460017908376709013816893236222662652748649546358443882975490763530222649349660704326681519140723679636844831704588021780654072736932885108837993924728622835136842223862459551775209342509355398462593788803142952482160835955350598498596035640993778917895092163215429687456808903152152483638826338961858573161285408180821090950354010988390164660964670505201702578530551810216545926224982941047169281410468281552089626749560300349414400806624746272487394961973092851004273795477668339837595269288198337779283948599302191748793553064238970646540284581890933587836162077927935242060521420130090642109367086061200598872841496280298341859589009800145097301014417439737315111990866140098966936093506857615691632545019170742844992027307842479747933296584679973016226206848972667959446118047440883853041282720082541312630197546638420783994394549494109096528263301255923233350401829753865353816089991034013035888713043363753993346161528413302728639084765970543762866011759975318997271290203882027619943294672481384798211105030551530535146144353379410930260676253924537680538999220882451981283357248505819814040443098468226767710620353440369231862447014654740006844090146922558942255900866026726656277249486961146980928755241020336010245411737351670555743233968777648401246362602466170742722241783068048606818171254724473771731624580183848446431351781753001804830719054032944463674402484380523037574562215260709162990123549944762710985158896697146401423655686616424223098797517987899861836317260295110241321063081649700948204750406194741054449954802941898084646103818409351133011438391136848658903749032806271003336445502428109369556896838195492350146402228587868403422281056066948260987982872484167827538419649972152477631134146685817217877740537221422441806219015604056506999745409191208079572140640416950203958334397558965177512808479786055663848163882481808627871615004157380351631476701713772777914548397756208695627027315848965872771051005420626051553604192390961650186153332612989638480089117834308292538208580855094453713130910741594184288693699628162766589272918788788525066031712886261719785964815154926327625759836863443974121295895287141449898183099294336607244776889133734087630009500672505260786119077141712854753487180244531713649043307139054716809914764803107781956808682188913386190762541063717100572773805283969350080245005554705565906066352634999749906276661864193906840794482072157380370105857952731140489422494469144891328370438402600951712470832395868873299199731501955952718885749720831153547676851569555219023836896019689838216381677007812605133702959615485174256797616003527504065238980211016187964555098936372573476807804436970549940303591730667395591807494025505735512485011330792210916522634508064060644489195420817155898338009805943591187202237934471484573126834340363514256438001308791952558492746135934840000330160578914030799016390603210035283646174839154286150626243765629394097886323067333756209353162137154888228702335242173348848994085015287430755894400733422352237338679041260691628336896328435439079621084523909842493487748988373731414546125335099144332530887889659448834685457974386641051093947448255534362105488135692151167313713453671829997918053103657272683760459338124497032960684626840500914381252842208337196220805626230318008714728698901608358903805653294014951730171551235235109476160882076065231847741537954629108640443415039350762131251764820548961349279885383961029968279724579683444751398667616409890454013125236327318777426928967959094395799867130275138089890872821565756606844523935777046796013690206302166743072419411221117889723080415692268171321000324521058368353238318288569585419320136635794658681215527239825686333487833119785966255009509090363121591820745239910792775718325370913977111699698388262791170576054705543902032873672908570770761592235433074926174060073931086730677537752642383233472185301513548774701104478812760647691419615708259412667309329949760964504455234755776631161118041479231153704318526335586049680775378722855015005096295824439078965857310292967290087284192213799158413655180229218232940357698359506543253430563419187972105925010471290694491713382315841945332207211335697831912741260952300563866326778095982660194078910773579915841376820125976469305646654122884622909223103522375822880903723850637329634960380143524743507286616224372170654486701330509824460075060122886896908341066101828967125597795662352151354524143604385667305219683443998199634011039072937938089118201294922806668532666887533329616066294714127001813415685164814135620475152498063319922513971564603093289842758721678401710550023779083797940835161155945273573026600888039059950688085328111425249705440051377702079007760041305215346045449759847285862165207781372942962340765216749202486666551816991942975024228768828984026219516959295638571762910283699883989729825155125994415854296874401321849739838859878165506798752540496045933519969236244269868991176518884485338383083670845598339351781058581158207985615156119713892778277840403885855111148266814819343524126498010416166972942533754550344405884049530653059268819997642576077027032160883570283952911879745689838852287923331887719924408147493604089100567379111317714569318049452618868513119760824540675660620459582429562036440963678716764418507371681331679934370035003239290681805637285249896316141582856321589035360808412680456864385366722900335525098747777635953120313577976033280531717767569896312150204336601548298887234970229707870464270865374024823932799955717973043934000041697400714785838146022907072548858214317521234384391923737107564946109194306987167843844104101520295315488330875702514078544723723455366582152950917836217318384750247707153929114818767545896548391361473086332933092549830094558750937424710940981063145228281035173413297493929215672538713226856335320293835048181493368495855045808838727344018087218536689286992768687767468609336091722876046858732616035294222783790516079796566714086454718075877711369421979999442123366630728336734235366851246633293032248028273201692236797588568215450444981957547868420055872847087131307685906728986515194192583136093382675617536223778991677781078407304555402809333308704038461257596039024625577347408709874514045128174072067286866792853343963642682002966373119554680860144748906181938871470335781112809528404048535475072122864852856373202117462968028211652308571370153709062569381180448262913468384879878516145419789349309859859395521992819409000524185528107597316070803263045251134162951227386012202638186487572165082717653851297816881436912786436015937656345982376067369213690147845986867709647042878691523258348317157175860673893326861755388490139180365078706375468668181749280248869160437354865518386726653952711695031872200402271968499929318794033588413885271527499054478635237042963182783689375453539111462492286929619650409859264654400895465863116921080369611241181670776759058505860235906979298247062802371484285543025349887859654810023079572971387531078134984358526242593410682389688793419051979239666411990532862944502991384440685215361820436648513994428322666656108280850119198218384371746144069102251467802307826654108903477857490416119225513640328982937737083463686733018140576594234854432716795419292481774103074921910462282099573719752157578451781810747534836572949113187424663234664797751007449936303920553415966589048827706361419547043234693708712858076480272962718029658686406930974234296934193654491418814140146843632355134952730977424203625505857874794569116578853869740044509466896070971441694087044723273052988719041163765598610066978964410459220930754606285726416577528640726818727963154965063190123624558109005784710067980697237508251546516152530712712205359116771744720255641550723541447930423056286454096943542159375244868379425442838963471334694343043792583882509587953107518625065572150936404032765586999337685891698126588551865289782754466256595267803137204263376281184694828642050062958179575637149029108409933353968033996875456605924759366040670492315196538551892356077391327482001194996172730083201049824145782526253524651616630255018470735087791491302390554507031031845248662231125870396352076066856200730193660712943572811029456022019255821526912390213264275384464368171864720778455155366399559271742535096632338386444707864284308582576842772496975804411090897207994708158694874333600961607899857934786753252570656108945006081831517985586203009320777171581150914560560834961502469561506438254855514444655805114527297361418857370726575159922770377895321440041624910006991198084276411696549515055261604616651602405095817067127258632428634281555026192135141403058821307889394138439051820807293057869566398475205311338854019099541075408298716472663175835116142493125482946879992240339851775256192299873749086968587834733717918377105829188466830216748262890143132068418821666880769371047996459780733640261801013762629366199424814601501209661202642495401944845870162439369171420415504639803092123043589423362114313084571709624408209827071312811576382307594834288472606993430617147813431645114787251543412925931359776871102352265350178101050104899379860845611921035752550553818654886639741680531159909629739887191688166526717818115683008784871427026665706179736394626163116019052712292183415157045579644133562013822504347168869824112500633895514649822208670662563450208606969373532057630721483409985361459201819018413584044449105189693131216347904318731108585751673962461190119822803668527607101347498893271716840904114547356188539547750448312071346392902780180976600087588011460189569577498419998654317545351738428367031188957177943558809912268142500808523444803737939917595055082685592617166910226440738071903121691465382533592265690191747446302137164007980160712548197806033975373143900791685281467669926901013534942517560067833842379904955712822047981057335967706730000710183457407059346870352979455677006104458974641432372960294366678960366507561057036817328056664732611952640331339029009443114098019994085174887857447544453260465676093831900903248423003227182196301673615074789812051303926489443093819552289329585292026830961708252483146784663898898659243331875779099959756539723068845796717858155044169406956943181173968378040966125631482029272304750456363539030969662547342192804151966164388566510207949423495819199499131147593811300364837900069211829526069494461807897379523274473396516010283655045864846889329595110727613963911649911075342588151938238441601737942079336766162756388569302480335388020933246377801161819230284690739612468914740599000437294367185445536590863911625983228049080953018404416335885195407322722471204189204408243737373241550701261816627080844662050592158125378699856835866259107359904090736162932539139018097828205505661238906774981768702910610087754705152544161925782411376349055147505614685258428428133810045954251415626157770056777945964885877143217190190161665011491729545330563410628883890830363107202582170436550405528313066763846602927907761209344245612813984630271794527084459595274718751323292008865933748039432888092909823868216645005231420485435854096000601829271303646280232572168100052411610819004824106390248988307731917228916801048384391005689137757137456376242171919110764578165751803368619893310742589532127276736064528122407857025967788385722233537880103993551072283239695302641421201937037221483055365731705568063750694896666204616675171071100691843830416053251950070996908241843752327556567014005438840529286556653217611074390693839848485601970558573829048677702107216815180632851365285806975164123745127128224478719584452546317552327457212245638035441616830203164660429406745653399158327318228023231857086050355861250447615785544300449594895466939199324382128921087732221634577504383155431822751649555036001933817942953377529441058730952266144022530536192088300794182329246697055581657760886824042458691440696087772401817295297792134991674318952578534686309588834005698899411798754933845795589857445409894901612340135881016273949939103377438474236395657303197867905706078755880076386830574171403007000219747862080007235367595868650885452125065940012138439932889609004124150542597382901716110178232515338521789084285624983165614957095317857387301784436708504751286032509183912399206420381298564684842465656562072125646649924548900728153931314435690778763898193641741641683365893244733232935299303591539378317893434018223824822084084627017354245693378592478239437480903566080335527451291833978385937870569410229600207131316927244345821047893007113463434169565751886249600962376153524626679734711553879571826240688564745022223640840761353344186667256156755012906814461907321938116180883493992362301180040380993376415930570359498956724485357285872865476649510305267723570269455019827909325710881116142696171993262537725740982411905709882109557698764256985900261514481542024418305610619256357866533103398956463096218299528347039234809189997439507147780625714136653770639004497996455826035191201842026807814929900319029748854749994287700130145911200769464328258535800977948218500833973151679314164129037430077314008745512272090697366940934093049162108360473196634855460066612965169827005553201177142551800855982837574116163523939808951350960557598031527696777100282533604586236573799729827935305794298200584845415774341108633113382406666901607920682780366051366483927310112990303439200762393111561396007244868590781341038987432024927451640239548726185643591775354980972627090883619464831415576638239232316012417905797667776719664914918121630060076170687499973863209194003715876003309639438183655259407041002549213671969426152589926439287088915966405815010228390304156407829278225799581998339556845135573995997083992262419201632306837988304765502868763356832653260304606153129264493255190100504732654057690858629152075607990086521702925605480600638296878618778224203626195198861417463051004648119628224326645663909069017396562227030309304217721381836573578697558066387467253965410535435640458756346459889096742334210851725718559411573268150938804423008763403474004913903193326290400359637501170548183918115031608099039150620929561915367525445542701176013792781296205075278038959799664996724211881855463115653848333959499479122614460460357236983279025685809415886190100630978341564714661602411944545796559773986861198472399584677114673565804648217897840668024108790167210801105879057604069792753764324588109857992383591241258326493160095404335933143575243802836074484366050802749088089797697584316925441565034221941926696751476316080530483348938299378891456912189605905384419976652994460158993817734326496593953590111955863866644374706885703132901814741314808403490285093489644751774088042515981518434637428088843320583482472473721048030487743795858877798515049191675416268751744447454928041546287541349219946348893531454714865726484595534955117721010176100684807190607291187275693563179149699795355257912867508371886855278318840591950964034766235628264601403591623230134327920204865435542636384076676237387601289039975900803539129201675436895413025137248495274228690375468982291535189190212911259868853963492019305072483749285336125960263816075488138605585312129007777176203386572648935374613731684557782851202190406943918427211747999790607843773185554942709012588567993957158580287949393744294896015694936271756791961229944969127996481848274661494158094821425259619393592668747039315674330123660157253669669602828524256014128552734729652391938101555008963915745240547022962721526608813561424207535044412203334365802873156860764514735714155267619854680900091971925035362924253837526187518301279275060627229557481444992813918755977551087439320555493758442509234633864596873607016651139532969595160507684071849301420348615079959030094827309573734398996916472386820826755862223474177970856656899563576000943898184327797964473763487192022551675222262468449178916701150795755836751882374738184763456432179674665938001837018424619875676754113648442287006954819925814227137409805968590806457813660184143461689230513179802256912905057547962624414785967678689287524850876697650389819474349022289077303888643125791759532381994820444407048996286156823176843901106696187788766912175643695533613101042956855948046597180554362491374568885177258835541120140174688561065060564993712547756929735372090174128109090437536457340595069302064752542229374735674662815045261362195798510364307569402022325988628622734059344947388445547771746443335152715693940958239493220562028190147633732419848837312290278982813410717673947231295150188139710849105250845818673356753334037697383076570831854167736609293824454388865501392086544766629644644799313286545936317711446807755382624953245937637800780659010671660000571606381181414305958342100723959537033580207659536183046216237576918846032431697147530863615490366490545043570290526909655684813544960242176846981518598142692710666152636901985513640982716619338026435114476530576159158040837506889549698118303127440828454426641915458464631339462724557089250102277159415061214261335099640430916762131389708066320960881197632228106262707811591287739283023259661344975432602034064635148248308383750020411638762343831195311658003544988926868018527249084164791044052001812205947743194136749006172092884773437854684866290222567398212719280008498600759165411286421382787421807341671927107128990366302839598325049768068282252691089274655092177326084422273869135237108389868395794166604443728400458118928805598390839285711608930532075978585980298716647467594630370558382648182160854044395278978225414627009049838947924258721441986764509987594411440565681632411912673278881445407871498088551114438875335862494590873153356699625587673749451304537897541675259903157728785593828654139331969837470625493280517720808113431638739631129706975768283289044194016423219730114051284382664723813721570055550777552550217612019338732548793294956702486980108731312507259503572448286320452763382202099279078174238426379639432444024963082118198880013873384581040830944320965811893111309775724856179158266298738422995613275798491276396687399755606360976146431768301962378572603033433127941052056975101681301420800263749125477596524584153026131938003523546943261430647748063744564759097774726084525394993832798639384646426760035840908594402398194718183605366837759066596670819610737440059242919979514110912288837053716793067278917973003569160027861408068565605149584188135373269414895208170550778009302285762678967248099363809867262281498959660722355419138946917856760621449471862111039156842965187764267375325417931158665252701611299346873240457172254994868905055444377772475992302925289868326098856818964455681235349527503369656938255846877732429797360672327834271334479510845131939511466737861666495437901028899107767857200100654374224956347009697733963652265452265314336036496686864656062340667889222439717968931952090295178301361889605668303123249930304030653145202096066627242995804395166038031566825738250983456072865880141923862614115971139927350642507401466482677119773084850884457245607307576399090649624942263240000904358969551285351050580891040041768622319424448511722167652325030164805178353305104510208436093866734987978453941594207066522980788418837212929203706116670547534962166981295933650320473953275592256836245825038293374521471872115720711836323308903890690509899715832022625476901059549800115809195766365184087616227422081002645643623280714106315233298831061358143712169527917163998469759127360725570990040167367447927795720717334925847558458131090405578773720979692160150923957278455465879456034395903508369610583982913418716848405717241275606504791019954302972249153071808381572272356218017297536015936525829538591162666405258280272065217293842399081934705361847159119061283872328965753996352428025175172943742962094485507910647811960168844564797538910606941203487709193250083401830003419167382174250339131341666466421445121357109678365706805469039789205927782519625384872124441600943611991862342448942828940622978965733303167277264539416943160725475239013922706705261074887179553550561797931437659840825651231590958804207646608219424727564326869342133372720950081280775431773606502333000451116861411624438654143404306454048461909988001215989011194698879223999504505709605853325549673446189196163320366656999222904989441741375829807390974538063600821053513170995020758962494987500113925649099224829937894702437679016614791503446088980234077060188570320683857806674058052356998977029663481943099425863395003094375655355527100890256066588648797412130965700714506229073387566886446101578589608410080822642319881131261006653043253666375821542784448130034170491709285729407359681501345570196888226362028251340856091784878453386395136374674385461053703042673263939021917848391151114355194350722191992627274835506298312922915945484148627738544206643696432784814026464179972107912630504426352471952946965883759592697721912244302396518017020013449906270326957881372402335862165684815629727843039269206073884967376398677936040637007707952114739860808662170027483278446201508293589812286313130834827230528890851245869172844276740843381652392633571201067081822636723007788410196945306123220515750641916863607646009021682692426128671062021652572222530411616161553397954688179316545986933659797783947885622376871598009549404107213865768376554081534478392653337529307441732966801110201304548257730736531245235333855229382964266222573867574434445193746771945390524580711821407085543886069427773763951421642366813662742957541170997563367562261912523663897148837892125847048626111124044809633220753950898850848616913225418135278258083859447427766306092462308046649418056501569543101040710912982957216281018553842745388232322003108921295031932236809271643654312510051361184450956038668481903632343400146441939199989861518167148667707804658019769020919338086704146426254314778766799352963919633053716326678944871699021454849477958483109173422294393794428587565223626152697934323559715826350161556031032109068426032395877343762245922069079784694436666567624544450525376974202086410812281537709502209003430753329074429919589906125963053598842806249858083361487515870111046659412795455678178085012242000960274496468792924474757335334060697248191780053526019069685057453742035026371265126842481189832143926064117958445360675578827935663717824630662283183805276858868226954802282529258372713754478513782747793169478632294953130278665361636731860822347847340747725257454039361593861912276342938192395361927671346186854437554919987848617944264375674865984833605867809343440691857466747331079621427148580487483617449744180419862221011999112302632896936315346895728488659096151921396062408398129334393659287580861839428721043412093228960356568931453204199193171568603416630895584555709344129919094111869150822996768869286476902129073254609112741539304492090622002840683840238144007421352825978572173759992982108501369809232528697991918916642393462252328924853903955199088937928106096560981448580657273088462624731213194823770042677144776364722075229911874919207399310464023407182934544943448501265588666165706580241634916296525806684860307784584773052718006297448629335998915780918789110766051569255954824949685247383552918160671509804510982835895224768846345167262399758691413349691705496573416820391915065714349496400221227767869154036777033504314033410737663346488653704987177894480918805090521859864860531047205858816455633314974344969066656685612361338399539161306228767524188397806069963435993250940711706845584773015890319505664934285062661881549947694546680370656669144926152684721076112037798509888521092466270846218126361740356379560324478592765951298686282489399776286260460521457845009703684645734529396531092656748315178308766734395089483962226636598455914411387718361368245312616992522918836019740625406046979088570138205321552870434587435665958177950451806874882758669148064323748691018449132704405824367959482475100288979097833052114289275991005870239461226088193505164797218623391410461554949493894347418096232272129919288993305116692083132426020482967390849791905554159939692086239042640054481025573548030797678692197058977995082694591605818383257981562956302531889859988626986832337703125918344054797942530952176822080511281756346549122958244776238568207465041003359139904591608366679092431450505998912220023354541397897540893451098849869188201227416588838030465830665696874640346886363608852845314813913198825688890176871033468912505834585333716619182276269379079745270180153521144550419740153565171629655698517962988402835299639432653199738115906491578066289845915330908934699509568874070032351325621662330035465565415462799238159248850283736898061501011571080852803731089698280575475492541506696123796120245171921570936969883576811131928610335663241675703333830605328848116428918407752777529450946839902747639656430036028327049704425089663448757822079371281944658918607288339468409843706936630247715243223439954823340133071344855925832633710338632477460064671036553220761281671077035703766295705414862888199605263935343481147588772688292324418501355789709803620822949317599504636838087961035993900644960759295657743429184958655067926281104347160929544156148622985206498424698045482681801235337753427300220859285083466335752457908687998221448907212030730876631078413994045350123788010839413151278164409202539378670134154148818056828414242385116515258110024366772558485002995601149896633616553595365393656929664345304844603561072500877304542289610871447118581622977127757959180870275671095626055478315064980420896830400709886280383374144181545437986491586789196499168669272495790060804189010368006906048125897022605544639746353367569354768534779291941337792389400154376688866469388545036640105086932570797466314505279528510784260265266323338030603954625715104057928950436261009143604220982320492848239676226347046288124751094552496731068926180961232607610102889259300707679947812333034216275597092930476852828229475413876755942693512487035605440317013615094097813987610367505510433153140082079021638793221213269894504687619311067615617359119373101497369078318958264623675020586120559031760799933906403649363048480801698840668959122558741165811032835244946870014467573688425868322342316058650971926281431999798761069285591558416771737229999121465243864652661893355925882544797565598642361849431621148304374113198018937419721084498904847468017467781194452565477414486311735575866372506633801255010030832776081632648351320825101218845223298784368630372030940554842794480241407643626795623051735560702325195356461442543747995263604561318422379971843900038110769014844123578153438215172859381978663843760354652020814221018117053906839355335089517754789119787215467789121878953351183580404875840668132471774561005906051395366963672965531313333286234485620900521804237019522543677069778714703378199057254086188370419523960240641768306249101549869782973438504512774730767437976397152150583193913883511320160588268148724517817826483206149079935038123089499268297391563156338166332138129735113134867663355619723444293133897734680743368674154432113298671481439227946630141270564548290644674885999689075394309626040614557803598953037390515039744937935445781566782424035948929114785288149824908966766130778362175737835122093366663605578714545151828552725613824185059482852372761580836919259801411289076279297895153560941823024546392771521173389286129190374976900702975964506221631465439509062058573914790080722867459517150917965938816710660954761543850348451920221840709322291111411914568997093796726647866569812532479904326395510167117848972240006435870175945213461999860946567253282637035531119770906663335431421661165397218279967011592442999772522525584093547914001782440229842220556144412835366429384637304702061774834196796817728915486008327415958406235404354510406112441827329184792829486815519745865646143510970595608825818835408657294696964890575384288661774780641743923607681313305800358643066270655871584075936919952434074676418644995765928327965954009891080061174580826791645285028091417074451051095780064047313995377703715811202251651779826808113327006764199530469166688809818134514445583665566304560479558302269297420314908333745692917527632743506067515262021199930621983266973575373641360485292926814383831468320801740048145722086444915381118360373722281560717634875116381379061146606087591442065854225651419884549253934636355056234098262922527250676593015014565978266966830133917842194069602746341516260511495724323983066914366426310525533668038845891584317706103830426315447295524296885706793143068228693840811616255851901492126342888403140495082045729107211785130678441623507200178024392836642513790621340402850880971828026292225878767784001364446838631286549925021274070124403929132260375759063572502504771184698120268640712004051626281426527137110838706005251187461845572996668450707617046539270158457199511537822094320495826794636295011053415662689559429041319595762212368347488934386608310538008854633001182179760330626794933558578750617514560190744582072517686100805400066681270264175357532974181547022748275544164403978210457010402995989727513397936611555573662881905854803756794249336572509533594547528055933675061097871287592520481751135890086717665019043347320560106050688763238929738539750143083733307643915917162477121672307343425625784614991548748929144596614142525709541666848838583265969257451687799922674870516842953869661015251085335594441098675052830110173424588509903939190039326975498598843717113791259506585712173769375270672667799379960366426721250925012935561289761495050816116840252718168825883829158447571666432490538326806227104444764089339579402066170018557026575914952286010639025496803079102717626907462818764724395810410133431067898495153655572963968437505169441568646455933102903471257541814088008439328740409292749836311505547231625137254640949130307864244858142069065028815496505290660453340214390820171383805095702541046180458261324959664672969704476420178251654364425113611046133283480700547372538095238976473860787945229060491434403838149180167483345033463493259592511818916301602814179920750582457468505398057039366857397279250100659234891555682258580183921279680898042872802209942580948586732041681124484827387688787862547115560353225344383758584425670078080771623886973652720488864166684968047455131088090951559224474833283415332556451843140892816564095136168633894380554746331309038848318318656143115160079072120453910435840539190543509759729787688476947159547681711769375570687471988657398405570389224260861052412758223484782115761211572396211667529823091713109924273585642106661588372979729922031248159348821753774797089093877196548345937329641256853569830367628402248280948749396596335597483086662701187766647472834605559162068800742954584670642113448995711129942730531758653402798459700427663551667124563074514651591253849785386142064017999878763352813917662651984867196090298748549014719052831694608553386834047000872477175403652054589373202315238666101987273191598925499019028740565787734522117333576273226363639695625025357221950836557847786693028156227893186503410701205388085696614611461248973044018827151815168078669311224145359756666835557151121928173733372599773746328334111074483118540858287027834951635150944826042517942274842036192862196443256973912442831085857512183758585611427963723595736128847542165987029668827679221959875306210956677745207461485403295293233486129736414860046011620917715738735180810327595473410667307097429660980253021821621058262851077188005399195497107851521655815468180031467706218869977494856795347696755189963989911225469469307622398455021499938102771977634656821958527623479123304601576561849304950238510673190940748640150785456908930657791075765945108727018101295165546805964389289966872493972968697214097201602650968426326646416289318291696369360366737987704916256452631519190554477456898334781880702862614471243241096762489437431959093538713204557972196688521927534022537117576373096448064087336105731361204485502498762651070179648218589019380534490062009194898064816856916742330877927694736868324859358508893249137537262149665328113678834607239766246901638836921231200279253874307494129982976562195177009217658946480948410984916797642293223676425393829185234352533709331037118702070659188300451178804634974936417398380004716053233553077255812953304727982592964018775116830653642559080939983063361590159744867571368349491458949606052940519428895925127249368328806680782489210669713351614443359271558144152505674079602263093765249144101299400497399585026528570274298386764466842479684259499565475282638065935623435880278097018506115564198712828297323706596178434625125513313524878858676964551938508892696520587080567235258678323393386786810935740758926398649989182051271030854082881069234921422721487148878699498521688383199283285761697209791810738002760701404464603118467616253709388482840439274933064381849862776302670540325427816485724495402888814620948201947814835386316560673870680902036448564028229521532325139123021420322653453910647099869828011382011828301308959321888350332408978311648917928259739480714773550187986218078878798171977911304195262716609833008294781269050682779387184546812825347547072846587575618716364979218141039800168382532550159094696503553106485665041073731384901961326946391744286636636497667332259713647859498255653857986209188124312456182233217967463521960076773449909390150468009100542381513931923197125661483199243897536566738789216173000538457811846393109739980884832818215586503317136386933810584716995551750021742960921992931856627044987014651753879003803019709449477553960619216745579328872951523666667011533717652619766903101542187371797869281431543858462912573132947965933289887060213940071124327417813310792646722123721124349464241195479669315041277887309451585956457886647476783951748832490930627311619511046575198657763440638528003094046193132973300719116074349541206306875913621104391912926197474384648425761491478567495294283965423418475651289044690274601329638923244032541952618346197066700502536531328589768107318503384624432796354140049441915418334716044059789660378278949013665376543010799664098354601418417557675750118842804794121084362188398108989186323362496813537470385167144864468423423562079996280293237332255714644894732070123542498993198926180406973380251211424667577239678440501061619188188282546061280397059560069061857145923531897033312548842903389999380712174828840525283788106204555481408305058742277838195881272940853377692241214039942121323554604336526535299512832310923288981178491965821261415259250382704648708425104917548936147733748858418469377690294530205980272588090879575823521091812203836346585415040094900361602323138666104867731966478789047400231446391520558550408818207729123743557989997921112003183248282086491540804866100065983588035747130882045380554282237935456299404154035911948697804879089641021416983427504695905905730925229020011062944275287340884804639927890092316371368307280550491193901119451868048978504297321585889253066841136212113320533064038581458799401010058269943679647171091051737655339013818855700805822120270041317479713167852498848197250230922543197045975187353117312476255483830451851643126106041896707863992020323364404136025111172547946458391745664467485140498496887113793727864853574050600030921258008603639893024583359902282228315893703441270820213906654037458571531156198780314881523133911468986552659403914725143434125896596700197956862792325221389117605115484436702231449899600461247797125173891884118916025928597976923646122592804634524065387992574844790738082318377300165516515069713548157639043797094011627146379141663784260982000094424973557905655204879868858300230426760310029375914900562188367947913887225310499542139340853454992614838370675314443194875455089195990704528507179287414354987232983096804926210811528614336260525239393442948485410515268769122597967611447172463372986182602846523896092561473945731550564987986026817178551590718430015651809466561982319013255808474731160034047905766153655451802840950914473056513840566381468668102943572952265857900114620265234521260490418609419712930688027055809296687646160904521471136076503124171140833618884317622179589512406868775957174588242092867068780389056142460744001592470322692498485304388242603801747980230298815820017321575592242849202381099453936276819429325353263532951660068458245496403379376295053463191390096319095040161117523763875195935640241084311910790174143061598287366228673674770519830155441980548280203168029956248975114644085718533315578227878171896682467391617510298901883994317843647120535932718685693025789411863043703337738186644658898070303688059147130876533000992756658972084016682696193080904952392527208230675472819510183836524313384987515238006541445616232030608440889447768248110203528693197976330703382413089796973707267529932278613459264449090276821741472299651878374790556686934440595590266324082497503202727243335062399126578305650808895085899680748711141585213885961304347412795703735164323586443767889787650188604580906610099747257721945743223084353831338920527562475571428759598242643084197790803449686982905797132459943806351155724573676627497035859087076921848329437186443354453700341565822877549400482879745542872666901300081130338965383738417162695045453559849563957998572545343456209994343601797239492248837813613001206755634676753926165075984648396473017269019847046862752530886661517202545151326572203510371126203015545929813982029104510051536698846052881557665532507382289976460272803008821579325962377084558214985787540406583829212602104831251392089222258528024712403999512443498408401515428735945809719493518235491707991466957533929218680551571257844358104323003477573943330945372267442025397550858038258636806480465227589717402979727156215859744709603859027924675727960646766356438333083933100737818684922229968561642854774639473344999626830382444307974843828736278791660127492350610461963435104818254288053722769656582712369027455681467996498479128664729984940337140439294964489652925895979762171012777018209569045015742671378024918000194448574910049848611475255466284147155732652475386862267543560199525323743032328068978433420243728314745698924740689446489466682710367538871324812199283875541805344077106906171219872161028492327720141887991020003371055595565960184926024524811229329732756352662674960681422638426185946790703056586265052380518764269901645429449166095090317885565924608981222808850416131074306196515714280341249063753123701760418418537022332890819880664608160747875752807300238585531089198010492452197222014539210487171865994112556792978213001504194267975896194621388316065935002181729569773986603311878315950831957974124126385514808177585676788831858302285224646446790341444867639939233606564339428409111189737311207639551148564335933050501531064228794205944658017974777806585311246111801950473128098349500713221552031777613208883580838880931701363991081162025360985291713418483484896898912739805138472920047466135003242500452938810060013630214453293350941351069842210975195248156981652305329173982609586416481668941053697711975574516674255162507255591162968061971471100205616679139235838818141759369040541407186382927755135381318805162729487830395277435169109105572172880952876429274737983499183819290342020247477001321337482121253967596708737890796925835122003349494608041148122598503724801972874506720673891891339391695466149444370479523350040811503845980969398346146031282021350129448711400255063604773930123000041109924592565828579252991131684447534428204517111865238271244980194688324829674563677854100568025044865861588291580282526986735491320434069744106257608690595792981287820116499060825506021671168013826512544068557913284589378423912275501084231349504618803094908209004134609049699122880563580245892274199878596248612083499210758995214063232997225652658855270531412146924341777428484945421086991484873702283759881997177720548831012188701565486863782408305381935234697792893555992188194763432895033746986294117239092571693901003629307332914361231411724255741516726737973238454242103514354918400624661069046546600813738572588073581631662726435254705434362439508999880306904698149272422349919845066566392954917731112230399672287795383261289896996175571192584337441898915918455215063042554420363705178299111843880928649212506634883595363183535281444205214533316406287367884216449694080723577559029255305224591717260686259327928383106923940102870787937321938065229230048449652484655053077116149562461978338800793085509061359361931474115794248791709920945384096214361947722707094933895657733687950854479280598100705185856714180174813115202269930695457879157324034592627432133317944069204312938053897319634402669802224211394763128175078309150360472247925871953338247230381748460216856664140197945869521278082119584648666283178356319741930094498700207043797652104818334393170309393073668210912384992460521521976552486689073739818237772771796494594503551277782325267892171586774911000842841575081857486839256590424929120854445615098402000976030999307138663485001459962355602440990694126165300427997928173339468318574317854661912994619481814291400171177872910047511632139582775510693975333810792676164727790887127108675541469233162698798338673137045690118511314255879611037546677526736651252711731357297500124862938943231994804187933730750704716391552453076046933363458054235623422981035860185180820230807309757642060299364109686122330548586811536735738400672143560400462022672978526631780926498670366025126226183378682133065400551727243792009442712482695188736213496934573245322107660895006702678714528603907039262512972232688278317472059867723243490901903435082753431160590404790303707014543372107370085879755849892408559084866408977894464001060218823697588800612543331338686135420034094084402913929874740782744569234199019732133160448460266040760858314805775919446565483795712701192309000069703940724777842264829786949206698228477809204994927285819569310047810221598141984579472900724818907146525686693217564401467091868128952059711143030574202083121785320291894818587855892678010025803773051688604273958694619397315732614288060153968532466361396791714416996984364950074846077451660824819145818441709703431058266612327054869275504622434082145232049913150413418203984810967497194092165464216363690512593429387346372892649888875803872475164081494672661039389304027060629262021992823220836803762286341472114591392461251637086588316504302901141238100337677108206059859637420815262888787915182468361941976238972336353054932778844355270031634080578163085871653493750262371028293631924021916904854871786451585775111328263070611876136925602052133528009630891479464339777352028915394688401310651513623685949034729815065139281783412352675807353793453516025773568706293374255792096582894474944140550518668715225064591649594122047284934097422869391490538028792696056018333468868404006624729291764605492031445052698340458076124266471657404694188596493366189988905022778872994149584382960088641018139116834885719715164899219524676572347035267235076774611066229705242192207747732616353664637712603681863955516459149965870711757156621612452995294050093042073005503801736497437373838703698045793945332628097295600484961549826200188585289236976591330205361585792720490622517758064973383561024957820139009112801615609338993623881587489650066009950917712218296647173313249395572058536000814941150555783002800063040845047995656305120332098078628706951636122241683866540612037755720470334490317419006830951994113088570267872789679253183781150762516498974134831347763191257415674560206508040738743442020292960593431177965395671633389101796329558057908239917520064597844651231082647260586885705434154487790532903054866986408326384277283322879778220894957516383668314559654982832880646817240613181971362066555277209285424864257697050980256125086929480033408465092459688217964500869066897366913857538356835565620077276272203183597731636693348514333088243525410252746254748380936930846444247080005010897113929177419433393833000373233735474562307818929859504053797601270942427099928702375388312900820990329234297131281677469751900223532703318587550166823333106760216025336630233542424192175426523730500417763157993056359039501571498044189890651794997295805061603989374172840097238875431544722481495299851371536741163380541156441532189501871616813953552328635305090611981236033080706287313593446721090815959142220828930961230052090921089181499896874886282543502529671246239233242848367234326597024238565665261045935832166634856222286697561422806323611755160878027027723098313643140623000156964638566117202656991639116712751699901620163054917786210413175697966175738141546505080337926438255719332159522363534417595342353820838635731157406601470537548491905206002358909499316770128751171232667896597614412085942157832430585120769518111797694427754143902244631716584841246341630476964910565000428617380030797427617068456940332135825409447358418838401116163447041493940743890315840565539075235708954548625047829892944177111841239432464471600463709621834353690732362183304164674606962695024109466254513018097121708033765185646235451997433703375346743559537054044427458519045323745745091654647423261590449960001188927350329206163532159505459156695315355220634366388096749295611204868477659755079648417576617004313032291025532483276768672384167954286084143000486847854115698501118428985473489254265867801534580671809993852918486486843264793998008500338829739741783639061733668577824843258483313662809676156100647077448098057463088835518298172648445123916857309956308587896857321869769091563228179242836871543127544329962826424486894761706044864466229674720902597009254633410057737271562330234460000233704153464394852942075555186187036196934287374534119289631767375612554638311883816702182576415422053700888285122536548126156105077115302189604473156028994804732184607608939816210275421831435319277949802024812434379635824724687890904087499036171165544245788866849529243207602083812557929952668059221728230111912150303871068023150552534008815310976848907964084557835916048204291101692845624976391501056856352496613660740395357444812030420283550856056776782642763339220442274954192979731914682897475611939052458139400579763685981943531383599967557975112707409930988666969222188993129468736728776469773580425751599355648992449858420154069492405942719529563140302322401682779753834034538265909701637030905294925029039495230182241122328104744021128079926404272043790943273988351785095144553007306473070050438707661958205687455106460380690495651861882672722372932789977306767153145188183512983742241417389273571754368273714381195605647651806131285396591725653158297353998807240966044777932613164065299326584249524450581439140280247722169421322693340351439687332961498176745884776866648343107358105529482543469917171306709179730214420927928290421376870401684781985955493415379113905178968837071333993458667924647244628699468238284757906926950150301971534934581161243428419954356174227213064760042060374473359928294545495706718157846100575028716560590008601453221773918565884206898126985041322599591325084294111907072184647784223165355474008423256838704411663834627628886767073414423917685305142003848148116779405705614483810161524013550375100849337593746315179615215000702751395988761428192196894988661626282686725677285568749637062817569806935003882004422704902292673680803125536886460731725192898632711282520593214732292233729431041468454868839646241765024074588605965145191817444332527991181654573289295620533923453089772643385814321490803338559371025106552186693183349267154013661047785003187379949845321488168212098478504738790904563944767764305292903028577758202357412746054981159954303224788203901642155714645759212719796016508549661204732006038101167363219900699528965396230748758394834969764147540249284292838832736948093296103423943667204372647083107733841845357381029165928888433965623658133910167770402091182961101123553324611339939827058279198258407876119092971317538113274617257557497665649609555629038075005529102988130138959565106201340607277239452818481378748098238771637107710259639310055592644154232926194282615516075497116351947618368171289510766930267334798304050810824725197088775318042135653883313848085176981884453724686735027155053582940656826451307513943580781177939723877596280316594701748653240407029943669199003195730431797538697614881209018348355118257649340387679272516336555583895111433703710201817577778297960002063000605817433756344061951697751275865265039364989355852379059022864524343110450222128947279297442853234356297717060844774315476903024618871206761204090228343133997434792331209002861857897751172538739618826895663443114793883634227168113999648269440737104449214119348834827650374253106798589869653496014256969923567738651663086624570056440706752166540669776641038007517447831692220281028943126531111368811483412559971761702383473497520972016286360416071218984400736134414879169938692259925373589873648254347753522106077495050656416345089283023522284174965835898782718146137336407331822286293416901042537232968397806290427545400005602275246211540081678608504146969534385538772381056629080377109941837634290089017038716669376745306105670950502401468396576327956236920312318244205100742155875165273842954684036672805349390206839684936086985551924254585880820462360515309295172727211960230512501133692399108187743825633759425791118704526648683965522716047444034516264599200352607288865148042339627350191460065244210090540066635825150088762689547438839842099310269658147999881365721168766841214828289733470176295944959929300606591010011401186547015713685114290056296205743680273446810383909062635343774306363505412884003432968539802185122847988943207859491910528900932718343286483550696372536862374667567164722860782693951973174894650922056138993097063699741585315612491987532735781016341711876725830854940303155117635259020630493431735204693491800764736648756622733372334815591399322928613449500534126394821065735690944774754239624759596997951048271532696420080700841440885948338847136356571306599713958463997220536551252881121298146231940888003544974929408889600351558981860928371835329758351991834470659892864258359318756361294231318192451277453526681372373611125244443511574469337995519887467375538314333745518361706988226338116268106448810838710859382340232083720012444193148075511671923740411659539365729687278857448399810235406006549274093199124698653015830279406081282886056497000170372386092611074398928621818732226143310424246523347453667327171536965138233094745387768250439520679631960976209291453760947802258012564995647060705382750226201728479125267462562942789948574029055507673016633169013886385204699303112355853091613502502563926330431535934577705324070874982600219153074207556327375890616746009237636412151092724632511481150669221593135393900428910753188889293804360253643607539423748057613138194188533463029134381847288841906856385237271300689336532697033708764522450371879658453025724139026592416439870549800851350485217649630377358021843795435826372669482074352639175554225857759316781496674277985444971700123906895403169661513311306542200506104054691754279347605221868020906705072555566653709373240479423259578077717206081143860680300691018597119171692888636806737935574098655107302677674851497226143875958066910360820363067420304906132656431193455668514059909912994252744870222157710876200432206879313226602368478338902821799001615988138942124028345492735143225328824301735069318969223315191686120722175948628068362411918013385223263015590759704957658681416548781018152715201970533347699285852050773658414298970103105635741327022082930006319056831389789327828728991575931943855220550140053732778174087947315344681143901106618127931727944366707900242095236793354944373680947485871568961206075655162963211149061956159076286923295943926947873728396453950966455826950509680626300499355010452409980044124908516872612695495510352441368099652716221039333402361129983660618539731797868037484000794106721497174932815518800364689231157975632992793037236362818937643496099716277158046413932291652059471355787092776317792199530359645429352365545845774482047027317794218418627978382838875257503334728952285296975948703339064409873914621533123474291544776416171560819194677217912628977171392107565854225256728845445984391236787169214962805174497433657090378034264612418276542245880210189521884065542027656572437764793496092027609874318175035739831008458249924767053601149257943175594249448561442707932880290507236898546228204902157189241390154533250676155282090793294739677608681729078279106111748320051541104627735739198309576115489965910391446012286581971477508727520204722598034666947903588170088898004595089078106759442546617893732640899476379607724463361171617854817592665254835798929387243139747926130158217459190480039068802843717045518714404786930278524097730790604452859383533084809295321803519151362121405221970221816824388772040387563731551682264012089120059751823666925884567541664403063685812042502837239922874036451015580472435742077026822582874840327543968447641028937792872498421167378512993306709986776992911743921306150243714248994610576085748968460191453681879144603075238785327247576336149851809841387870825332868650450966210258367733893025923090601214004169611493374452930617766696005934978173730815870799292621873182155638637648203554156495272648766831784971756579513089243578339267763185937385522422974973003637790693376699330874708795341739973155508123176682175835692070078300829519146734148081515141765265516850540371050282008554945107791217108158950629794670739427766931999086134391180527161283713284416114032922739465995050272058194940874119983658091919846053001257529722387075758192943601412839185916184707151754849064774856252511816516765799883579359657853534945931686371089108808619413456254813467417953435546586323235138073550875243723919159067759295222978612321675579428908956145652942408779454278777138261457783371766870419904247375377563647728090762788885977572280584695921560038385138258576294913510761673536974037297130776564211228370096088295355055152107786264675232526778572175297793622810153583730227637670333491742221356028488271149129709216573142748433029103671762942976112957384391595560874185694786120195976016355961303517320531509445286748223249957295260467317122041925346794880012152826875207622104201526776378490981430328668952649411098955306512062567679456559933361592722317488974435186044295791404456467015082436146327484203129516479230184189559702541606939486116634180775833756667648810023177094662340378610087253628731343330020483817985193677060132681471044311648041137577980473713394145131061857875653372450267539740995667584505293614988782471847774269066930822384298930511509251505245260757436038739849530840473170248863388927444022505803219304948345155262952673160513845447144949917287419487322202531590224143225105337850544877536224507084396056488534646438001428252690540171793963269480502533529569755371874848916704296272528188604873457840530841515611657976439447605828272447782402402090001551584881795110413894544983152610973630824883344436156027886792900076442110485222970161682172572185703462265787624932123541046243074897018758726137152308574488776238074389797619415593729963275583797685520373366205696285510194884910220902623109042111052732361794709425818313552347394858740525469170208394421811410274014427310184329885828781122574635055897963464258827669747403498697095895278930085107041668140324698342711104493300217713847471616980106297659045798185364282499623329614280205613626829870496273836584538784664404621912417257542009346460780228596140206289966086299100152212590806282541219630718145606800347206521290210677362786393400533177614870057485915365791647473182120795525753410807415285850869517207205740402189903506362053873770170356502412501217997034515893638886057230357929069522685519096633173083640164418429397572947316178217096165792511876484422528819593396528810669682726236432028265193646503883011366351498578301544716038189293421920936775557672355885599016439654205306418335619544747361535598971023932898753436516580714792790172774013917776463965135738787700405348793647611289150623090487031904771872637954166139650648933928174884205099710906247517215668329982975071785916470412627133489405328182214474019939868091617359292685373874747408182629555598749347626898822447959855020080659358428259282116652314395236821363596343799936419008178274075937451632544435457297185160495291869407489283056578653307073304022997068322611305435480653820327177013762912316109913628737072333097589623285091862399445580265325450377856762084141779514502447868609595051746340719132618480049383518434382914929830412064248718624439453195604690525675699999805803435624224501598992499656777173671523666453948982920635642697332269382677111041647649811514704988947778643947830606276079517836551047203088528643030279149911672340345066860749317504120504731431725530617595514580328564929690044087969134347237097986857843408818504306501875065219083480560067705525530161243897512851438092078249131899617574766285015060810593559511910540449553468726846442152446199726416939897311963994235021285671719530359067873362116984954807323715517392519409812108990217789123560403249680559129859117171448496780202653081087333291203926054338682782833335409516231166325572313972471097025994326252433881814324018023811903425765501723526480806576744679248918554229919304622715093472193958049116036899491182724516243169781138689201143087909655266404284458545149138358889908193554166590787698591998419253716668608869855985622117677910219396967903555597974738094980121851419457713349445503160600873843974711266764310312627090707813243311467751420267687813372304109125119671666105503004715644402898523040142478670715301250913853230411105611590280594341933977076224791095639692636822088735676064792965803682869190574525874170554381994117542058942616578887220886153911753173124002086325152591609412484557185154050814416816183223055376387151740994916859173092516933277293324979449762523538770343410485717253946393117044904341267424670800345344352801995117076930081244649163395025308523342335011157206008373320139012835146313019917564595334825959227998799781708045346962687809550875931179696758381884826202905084696152039868205116376254166931085953246826677800055029849207750347655922252100506856936709512920840094441955625492777289723275052990386386654765501464551779148694087276183536061070241771683918683546026725210789796618926688458855991727043698348440824776434749159350743157312755497925578581773823406872320223973138772101846203222236398747114484093091440293136632141862821711596701101211538182416547923290221460495486915093564918719065953422152064481811069170815770325314087462969615378807331827217971301486073815375679655299382174875537584459092780710459780169453346967730651752098363746193782249506471509812346307439262792023352212645687353942569317197117994121220624543438511431377351171172754406937771748916490090251893712083398273060254733774194030834824869130052289017011404251603077783405264507847479390060149556764980290207712713997415215711842940672671590698318826215208309438805377690199953571515255782768067394206381911798382502055450072990131391042303017843874958255141403435559863967782906123562641036749971715469091470027956712533737382137742278647141700553810342400520439298222801454260693263832416674157823006041459870641077584075807345419810723314691204829348132873320505075807981434277508844458569763108787146341372802827841027833145106036454105068574164722262617459638570743294114749389714755843175707192968035551201677587575206383693880662289402900936082778214989351085093923073917213961224249896348366753770851469431371113963567477269124133577830899049716671940921325489850907132494667288526461497278415247312702062472973127947432712964833885214287316034714751713368725556125471935814355302504008192410790058595768495848147067032884267065431051599931016455206808180250633579525479885306741349597300090824438539931419468229695184693872229199006041999704740863645907617035687704664790173644232972324307228562635183433312246044649012453374136306813950291598960815664745538993973935751026843691158980953842473204095453426488899041060944726337608398387849363527568139990359650219288356703621550446233444911444598943988944974272602460729819964673672874753169055438698042415548163497086368933612119127910118857731822286746279218030661948673622573101077682875898255170244311616857791655388642313225068078101781411619337188075974838438897977689213496277392854118253013527626019762488572650745052915476752746842076553792001607834775904580636946744591029993201186008228776135542386044972201060713061320246450793427960002031086181825543333290268063316827620620089702854215956417621827072796314363170809960428523559704076211300261784529454563223215998475177652496991150434097048970443616009590223260031074722883933272923062506419298849786790560654460499594469735109946130077603617241664320023990185566243040337302783720237379025783926204304658580356119170496765538871382088400234522951311066863472602535502084098586275993813234425370035958259641586094759940340403403754247028136679365353297963742465020291731524196387914692999805852610943713193182575460274848735419515421009772889750813158880263303020525730334724518546617153472815314603809618607677582029889653078207253718391263829781260481961976492705911981715613896691062333178362474236195336597057272424276501357046058478227555159504906436025068656985583365292362277797079318674744525211804378878429064169853763834107092712873685761263234986335541119097585725140728416840951169340659446428835959163003264071493156899460604475653873697704333505735914133267201105966869729632420979758029492236401304601994982509976268528436473720904100995241311429673701095351325300784252906128588213495698800901704545711628463376120759319233226220897160888780770974495872423399770858313471199591821826455840434058795852168773580088880795714426295447456148334964703873299989442125621704307935405449572564985436706201852514833386372191526020247075890596041970496019550618203842048724749002779876656964332133921137214104212901018037926671075712246097371179588478694631419650294013919558144259786444668041926556827772928237820177438286144117699023759605981139257212115476470601687053475058946131538498588047748642216225862184240778502796587677449179245503728919654062646533582534303278244801938805676033210844578568748034141819598131859100844331138608647633067775198774912473086885109304772930802775510341681093197141669569419124170514049588579671317943216698782645744039213067794501462143489607424444255441969157140502488724647014842712781755944990034323684634474237295535912187641909938681136103438756390734761331446627826854369130155802340537443384403964844240799018412328312981060951956886197053344529936111056801692001871097323918751636537846394880741334421123207808972796301419642230820828950915023177619955605405283411871217713591602396827437628186022810128526269333018860135895575173687278030185755639149950931493371227408364889527368981786239628367438063441153846555989306734779954691128635195204826991865724621493657810370377273171838271743830583876485978281408153461369000077463770394599252419548640213669004610735192983300726608637268563348227467444836276059076910735833459270003021316490095871566482263350437874448572467175099922366217381707038210615798700566296168027948401580663077393914643932714330946491939845518056874534411907328442949205705536940674719723239139158527071406027761355328036217606475343302958693996915896536149121400847136174059902637801325105567623519218751796245209666169358120204760858686544403142415656841335987695545442629147183301167563575898564376715291404211305271965666561927815352032942817767555357332109888577253055771894967760437720993687122140172111376872249987880823043320631448000111088154634786367911747938387330221545660233754846192204167178361546094602509385023290941117491464516909110318271728717623504691701882769706198791670470666595734423752049680856874289857083467013562897175849362704047352333655795711406653288624949266257928761551784433344056675373650854925479241836164410822835401618987056604398094608191541404433543679259343041456095647617017952239667768086389554834126696213046470620495945188196336167090085796190400996133214282208880535805318165404558975098089564961788022774998897739113888451613821717511052756348188018144518260034665777176819831610701794295033407142096495254489214378212067175283597770724675624165685614244392183849715615296351593733904077353116499326220974107599991272705237440823160970949743506898273780972628817160669382706688796744767163061020731846968571888024748217320824651484825782254519722408812483791624152193396146720954539554539890463390403849294615629016964983194282887615832209557159064179550340978046759407892220040323626200785054468636507254494907109682908030649991022975840836178777144810418978069696151209163985410202801435619664250329721244689219149101771409129415659254762001941103526654526990535923260980424146501379228380206298836868777327076505813394286257526295530483640250714701154350036731189420757882655883892443674339825134627237982754151935718316682603708970702679421374741137460843836072261661931487117764252937747612778646182057299230019450568030911828263054601900415110270151988788819796920133831382786168807614595434499639443331120130800225350803227790485375322807415557613959248107996055298070483112900653751217201695517413619870718744367147679441716638599434096603621450554979958811443064299759355610103698045279415290895863888385679202871794956544997564867136176041168536235622643713017300028646153226411847376358163691977097004363363267285386638875026569451887050319610756121532277360529080954653261345439022039475595039841625489733471992498289618605126486322447836355604438924044578704101841839622427481896252856136895945730169021327066762289432204673417314166189405738387934432554915030032638783688752871791123925602751015723294116035887701130209412033708079136428381488197522371988721975539400946232328450383398154829310528730029278385014599593899151575224666040919415807248057228243554729104193169815304855618624312048173596776818090977878992420833501726541689014223445181655908067317790719212987426836408125594445833146449534868711925964471739876122347506461803909244456365483036565443134867796787472381052929301537372720880799613948058868606781012205768105648419505384575249088117469647157671496357974946194648561837003719819563912685606880216825743424590169804536796842120878464301974551135595431088741867320331722746262906446355657484576587648059518250598412900592204112004563742732975218977194022587449014457040371816626073336563524009852450207627977783513865654451629070914596519533644619563446077723594663771934462678646803474584147928473273736558329601213697946143034333802047029041080539303745165078281374735181206197520192866942634939996626125711303007680333354475679215611376406730362237463396443596595025356157276504091310205479658491368389330008858733045384351568614437165790603713141684576267088414069424216576322117301682302884839138164686081637429432439885950927219504748812206798669003010365883623385769340285781704217499744397715289143334165770620212004327384715183439910059147000556180543822486537479289427288273218875059278641622977931988220491319468899143542733504308146888703223429527991244446107986128156596856981005639072616107950154063005974962874212637057296070699335717515234212018040223333811943772956698211693571620351663180006449446830277959820895153008747537298804821202429426204723248579188313047567151368866872772258369131841896076126479891756965759390425285678089380780382573002313795352744328075570329543671843171706375531738435402323292788559801937820604678731640892449889952570751152212286866372281634201405826442898623326361873372544228006190628435431472076727211745996495348026205456067681188285407806468727411781552872443565302504127777409726928710240926489014066016267551219363260225555523733216700205843825628062746942858539974394444967156202782557166466588427891573744776620821385388892339316099177243969022510439349853287526206118079916106585841611551925914796466015568954428597910513212673375649780896622619161007007124308783727535359874598281244207535775511192360789590665723758180913364604072346482992758884153364592329479202648300656577696195716290629387616870331044519034683049649292939498968379507874393706985776705334995333478322135343138980777514766918682200242943444567606904677826420695952567974240059683467443806665071985834268700104340631036447626216546627273363544830033438915004485312446805260155070529853150652435088831750075890299804408515871888257061561469513821544636621303575269799777190081602775675559146068499297777167804579529986464464004489026694303743830376588895622113866455922145078494701070499944152914921023667724531424611737107396449609540985004010641267965655575075605649129645803032157515072128366393648808322869515618610219325552563748853533913255135452533283557576340259361222233986397819776071100739997839668179836272305539900318960406631142021324946467203312969978520237997122531483008241225376306437594417636602264963494146848216015675107971212733346337783422688570564091986834163712088888203969688200900274254973924274506076062455877143357264181340844739636864655031140323839834440400753814581000660992712566868307523447784629878611053011320909431566472009604029020960571537722612062093838893975891838058050334971889100248587486207034913435368554697854030307417747262215918445747470422847562079291183265091977334493229061695564053281312528170262294378358303697044518396550014273613444703103525591389334835913178662974791013038743377516763902731027455972695583132106790264665207063938507429714503124203272200666054516683529644528688526349359406387299506159390768014850842810131147850218030355607707890626095190515472669943029868821089341199955712211684337050240682185528324179608393358602541360960193216727714726929474073039391848590641701824804446041353990772546637638535201393018853323240003491404937737752757171158873387405696998362863182283381850749405428183411878571483603379365237111077051755377675354198259851410202951614774879681338522220631963043714748360669247742616699228571051970724079183202582961656006236364201296016831978516530912114144668175700481595693028762323167613853178131185091474067350517063017611462722766872764775373783803848054257675029879866320898948677165533154346734238437920712624812634174766656000786952843289886024478700526701610584956138445840067813549668538184605010972591971884075466739718791363682828169589926484833404937549393268885336941720745707186500806385700618583656064844470273542921761022461309432747327130190077971080234312477419958615349760920383645579479548678197656271113263620832416170871038732997350842051645708101599765621173111897435943961256847959612610437550143208586866496235493707918234780637702092442280363764269735023345919194518561504316193398833748371378813699797024726507228234492830331041524584219629701997726448049384830322942636040663446610249144816595226690369871697371065104020829422891819488784991241779322760008112122917995003903646266599703059468399303187748655998774434129956700125768416648558993654624048351634780445495653783007445012509415583503195820822463959765300330289345542065894986579030330630533827814631713347656529824679770123466319694543987424730390343927359079812275517347874422561955810618093956487697736959338458643741890887410840068413699631582586336745219122512976623101404878491639535452801718934987691427528745452091834170264397086669576980721372004887151920774621876667266886242128762587605328286960867551815468413282330191048901852973781498830312237224136323645580516652791359913962694120960096852651220981778338935790858983658274325900151556381537475916973435197219721843041359139531587127182967186744732103689917092004302908791534025957678575874638273810469237859523459692650890047828152124136887827290173399742697846685173351808841914622912476957009153663943031436079438063832058568984920433193127583224295489156034171545430943015034286425864621570504552716379807477671687229904254150588477061864505971679691381970252159238134323948264407647058893880440508916490797190596687249123366182108888209300014841323326189654795973151914916612792159638180946360620164136629278040324491921332905556932986431547773781560791198112846274352674769301606794531689374581610383393486325789363985349073841183792370954048912240485674447437183176425565893225769062708892796658269773862535367792551440413526478961869379683947778073483682269482436750356521766561984889660391392656931994492324247546683625666612658565945631376130595700014594902733342310697698435372303216757134313250955615896015946563713581092721957677295759225431515472477335937903606539223324237803893058259537424736122783618119678907416887198534356885877588053833365690451452729459346321177106866792021260904932637870634851222489013597365569930479405981918514315604113667354023228434268753481209937703709346520701155662028930617989294238558025546078572602114296482334514959863643944198720924028597105616752723081306481299377371087684759058014260267038496572276592888556318042010649029704617747789233481522697918212308764834395756786301761377007694460173957801987082467782625022709672001028540012752359887700329718406379007328326220900124421239003285361622089821869856624698195583086946406398841385218542713412498442720812147378142617262346236602588804705542921020140409027504882018617839091782388817059279419407105943225738968223303013148898757754285894767197352517020212189009827609003358235859855816775990391809102200080588260826016941893768841450942929758765738530817605678311617087771275328288694272233754339133539274914713017897042830993960163436387260689181971859489556654387226837034268584965232309585645217745133779068567618459662758877059783755527086187100102652444121368207990117207357294229533984163569613580561160490837388818908672991054354560307970077823806755639767127233688763006618029664280560075698268282498422214427108832912142306694308027725582168267574575105956028088811050767883250420703116606988406605153816733636319409221640108643520609196064741067604538685131767651527882155188326898379106784056965901420680040246048290689958463688618867379984014696471025868185556112326995317421982607139959121430387582027070329122468633278255362843974390103348271761328719562056621912382920992136454547924499320934370989085532235543125383137533124904257598535588038921774675039657388270831796237875240540702333067149053124581724856059038807364544650531563508026884146365920229965584769558408565761676276675318679970884497152952120591887076302190940731905334327780763570559313383743801428296184855344975530096501650071576901867147747442716243545634946788472689862353488552820655235237955445798327869577052872799630932312673436838607732704644102521728317608199292522421550248988746797824005242833084237734013739077437788703939932337656302392980668205207357486432592088437797359552699762720640964236287722708007617556923759420862493056283519742577767971340830783111194124748118823753042511831341135339159589427111488431254571479017731357639360593607688748773490204749155711340869003934080210844499162191157954889302912319010158022644972616356208981953007676782520841820679022870974039192127628501891453227195414052503325492480674578146350928424941501684112126371232381918621658733362259626910449174120407271733961212125305767958815373337700832696592038030564516741370043765583298602688215484926217503581046100398972925476999135045424564071103085008262390572272337839015167964645398066790422670523319873429052722765620140012810493360790655980578691019041962016769140213557934340894970377011490607575878740722412124254631016612914741642328796213012683255863715093763930647752101701418202867793877248330105235762097776782146908009963350568705967479574170212083886271826912575963581498584827050461434505409011970755144755833797595760932449975950621400054534138849409511342841652126977142892639714023697935027685161054869954316791672222644628672122756054372377136213718513455301045047843167709350749340472888960281732570332989155201668707963485858633154612004297378082025005873013282362985434350378152917988694469700763057821168531742326879889545681281600487753067795377217529524223295262014918002128247799331434448085099396516779443064324863737165834537853335100817593771136673191065294517780798870756276998307942023396577272163379477540886889398010925512675096073677513149133447416365463835038798460560194627818262128250960974543449250925004450046618725848157178847659355630374552142290246807874095842784166855217216146039617850076241125784136765568676297511044005840759642038264219524264379415477093632358779454665582959933705602061629014965856270735341458028229897124805842905891751671892836876515874884974640942197592868035429448820640921479131749250478215606716204396149907374779783731454700383297859293685825805120439930322289665944637871293854295110171954120438413286543156811668359596279545286644856563517923592384324340781660680607258941724411184029603171392297179175940673312094520828635349964038965049471535829704231311810975004268222828661487616165366518829246737403235803817518990496340773656049489540609988868719939644547185466124922772555174113326106286600064344948628673091508262899352752360076041360610102239350433049438311952451440364688824456356071664482369287381683881062392824214370190336815773762804439266386023492348038014501874076432911579129484815942906513976019928457740632370033236520137521220584851592284557545866402202874518889734892572718787998090764323731220736937650366473650059799876641090110629848889306777092943580487313500410312601604750093478894390574079632520321837928728928281504235071775823683031038117472683764376484867896621453431955930705329612615809118055350761112654256693175141695534245152299119015391615282821238065072527059587420417328430093511382009393040467372433541842687845919169520104818020165553053558708038481417699600561350453843097640726121542689068136660466425997601374862548892598307214886079642189257700693967084179835951163806394549356546209977794443221280620213988290727209593801257202965122459912185066216507020484540769545528989343793104972109425523487384724135147671316229353813186669055528734923653784389081489070254816437852861693843592382011660833057058746623572182135576258991109789927837590154440297239242969081099767327533089407845417459375049233791097272479628858336417214549666930554982315225979974691560856598237780711476698615706574353388915804470520560032474963536635986241826540920385176272211044494357465383368598827566359638097875105714389317219081381260827970169211250020095599758846036016167274875457806341696257231067818204964599847204965877529080439554650743191922920080026631999111092510794469388432406017984581570316797080010830032913044676862155826791419301693771138798847603300825378080358207952730379698840220565431912931606335657050706988386876093858044678638614227159603774149441653486530586258638183235887829413479864700934101183995091012792845279231398516436560188377779325291695569873879619053286747478998706052758962174004920384167552492748166722320306097449429803008030806270034490576869736854055891737659068405252119943974427902928339636532203065668192578315789776102495200180571719442575957729072940193476314880877953375723863979329386780066597978583575114044349617024380020561830596633802303201623109552104550946391017764556806806898686249143698097749913214694895832018114749542067615931106448360209493203356504645712989136745696999727951030808892544093427502257477636761513271276239589715271446805485701327072504916225221712512837385680282056129538186277496556915953171291536387222010654707911236407037627729881350076824327279119030888324510841438756923047223728064079153336136042228834632876973341226456019743486014248767602490140140652079695163880830540187348789018513069860447218013595595638895080659404750880215490713475181193267723466498167181389503824910314728352145315350542161749430199959438349392014846357875521847322540217714644397624222941053343874612855281060296402858908644546175451324787944462123024877333285531993574847838470002547193442567065885619128513804581806090690628499116429959476108403126010302645506900518474359517610538388315038137797861959550321569892830235378191260976499127223423136106648916255202466863779306988703267527348434428060754428865788876202186517734819190257675785711245078212169993831857949726518818801641491947586614704400335877101410891194625858291380297244052233996012619868174808318176516925656424720677294688305863640067920062576729415328117292141001511073577852643326107816923440154095040284164092424596107416767331544230814256397815168413994153339354685132867666740093858451657465121056308051552489883456758317839978524578232471975999407005035824530833115325541829927439238019089341603384419212689937508295483437739137485887558282945030093978920969455148978815307891910487513921368155468449082929802848932857327362088890412840778497790063597246334467215687766553904757078272043987694153154356766254842795716524598987574588217267849256723537628288520044649592085589498004890927966525101033140055057876316545780320591987773630806324317303215641061377935587280355303768027331923895587641950092790558754196242353129491541713614076571762051504777091095680222328525038339778258081384539533831650428430518770432062687404701065933944742907966192728420468365242215374008803231673773864597470104697234947162352389555381682467807120434166711028680403456844681289964258143533082249646064466855309704375720063435178842432122940853721388433542985286565543064381105717163874695498793890840014294831878041089336807143917282898948746519390561539685287955660150540897633156447410693757874903565436767032541359268248789558832660318847728340586626263952409877043736438660633205868391823790580828550675267891259592943798078463573216550323328246801677655703008843699527903886657309498729978186051820070993540866615271630211722677248638870690466331129728722684371941005125159071443976292234832410615644485999626647088912505488570065243095627242416542578702413350787241045649582433864192244800066849896343683101263797247060955282158611097822717447420109428688708409697703779697102354616809625897741528729941531121480470534852588189486180199643662830071229451698654357883904893478905119372048659136883478183719732215297427235599238477978674887526140197020278264531165357700563758301514612679544275931546538798791775077157813977670468584073516040612872803678041246205769853967495813539760360590115727018784773023763318562831495472422605754208574358149162642187818905534614070137382413086705730344480908068067082308455275693762699804658605024208221063858756743263616133081352401835781149393619885473854448480969975108119974793258878575802653720603767368449562291701951776181748205084119445090239424563094252351984099528803699935578715227612620029452206959075051649792507702556526433180412476831792118646297011655312496513203251383195147099009380566346043180674374143946991704192634085343039074599279596994589953672886339494632594095653042281265103345702953414793019188833180952112733118187073423207482771984925964489747075906536724618756387610684759209358644036205523050507177163679237784718252617630954102439923032857971853369029299095902589572520425066105655049530455287345788823390647075277933142370121195424139379123989790209098184270914407633774477051372644875049447658050088486251044862682331764223065945941187325456104334432276136654146411771627555227234145104626486943684705162476331707212747973185299753006191731705114994992855033104620959300418369703946047408963102021457952227772589036277975754772459561163196451928813093079472103947340998119497428793180654000851750296010781668163253050879467246526429120358318581135467157480646508200314082358801090254366557807031389935680808234186795123628042893994883852353963673126230945437571233086165645625082494398158517339174151196914528508691168205346028659154575713307479511616676708200986719482055691242816288191363881956566532686518047640784659796290879909843906926384924246873755381803522596078776909193829757419996947691513628707251911357229902380074084663961735627729768065511240226943407603466879285103480250521308200513659943359927930477886941262573729555247822874204131055722995120450993265984727524531401339302094811849225850758962480361904162886861881025557696721412195615116215364032120846660762733018203585661772025728087167108417705698252266090718694091482712712174087004548269019262877827439218856833564678748360976874585768704004375009708939690054630124835376765653291580936401139415308583697426611719994373683056759164371442242020928398371544324915015414763924713878204205177236023276050760863999005648717020479898399005107904562766339225342969303188902693594825512854944806355324434891868561292225081048202289960369458308282124720509123386266671571887112854239851759574038481508992336482532171922586953447329423683350014585311171629842485968204310233111076572946600905014787624564261951117116700363744140145578920466164848001998403025706975469576237111955434152350901718702553181035511319930727058217225370344025640989427895454890299135079197927646700898487363944439961294101766077366532189823089781291432482468980181497951750473218721345103391331132300287879079693392572975127816351484425205440939467443808835952956989811142837074677030840983367498197990277163564523881477486250100591538731098333449152880755433046839303544229887422492844240003470533809166905097334189833731588364493270968734239896985230953035734535727795913587730447101430875723332641716354254632877573764244413033783716362430357427678372117517084092306922129568753341686034566412788847141880867155781711795823262742826969851813833487720849536286796361310704140821822976654025708882851319022036179087312379339461242684995418371115101613058366974218188970731200718234311938349727604823204432579990002581934619292396149860236495089429578602923511140982724813261049196246493437898913249406708578906924943276984297959234064783536538963352902851902614945439508244432401682670213488846718630981755535231487289985465733168013021141936931951327272037004449188061574953614366471730167055933650988585165049464067569481294650257095020597667550702130262013977292360600317254179433151121727420391193293930521499197310077253883547572554050833900341113536055194018415872763941504343140793528072883575352132197024568019312749126209684414878104259894229578455715631751910578147537593537194922344731512200722953475393121774441167149810710835105343923761412432092666448941800280092673956234230947101611358648910766727791582098230866887925728159981730771387201338440563581108679050621263621795329891389525293597698021139289108322611951762537454026414421593687942867873738812811408317555720361828042463583549250196269393344015824890308604879989122720630739776875217218659812519066326206768284359448814789302060657666810091107037486407264312777713603408268037037128907487219884898807567794189761895712676257906327134732391056688697601106336343755147529133274405106798799384532206439560155436151170058794477899963409622281127540626374339396078938884011503335149827869653157030727146965559583227661984695514030322030969107550399339197989825248950209047213038868173962276340295217212848675107684583451114861079736784060516485819182778455122320031165256008990563458065224287362250283621277307413347322934468022820179188932170837574989838480149455921876304707699003801894707912360025108964715941014767175642562914034388834092127018746751316459883623429897001753001103044984264009579578655552708832845563081357555092092147162129689215652015282250067610723913551862789746812473045138863888939529713887657115249781686460571397651394091623559702739877962515888671097505045950774285025202025252858426995241244173510048555820701235524676785505484227103350586293340317558178725504308856783887919105250432123467853832378366180592547470244351555656678927306709804031132605650162857255206328227211817989830134109747311674193511693656709168012271684886994366394924843678099623642907537965154493237752507073447200390834331676505594519037835042176263027299327212725251162152010476712563181044032005899682509935877612706093301196483541394374829804354630564753003167434032477212983933967953346189608253649052913447293596726110528174395423330584295689338543035796568478035986648820826758199886907692248804004056095882054609102554007194255567869175686330239034212394127989371063871825002612837846944442609268025978588045045366420612125479530923198685669830378578191679193451911254044926442609984287428581822994548774916237997802640606370298614242799624195975695567837018432193297439915439673380112247821578746682879098288037920500136159162875753086134305010060671795260173284133365196121325766266776041666536115726765666728146674040545148258509893344403318889721995196821292650349031027750223080218597446785301805801998184913416686748858062304569950498557285551133532276824347743417463254150211631473792413581437814288809299486940464790777563879505822456916803565704868234011755342295044085529663769387166628387913471794877990630529915773539205946310881044631878590334017157683902795419683299557111144419106985243505948964942973151298301685144675430649128179005655330638896265293313967527437187074260265555691160606532143494852240538799311699398325438213467941161814501361297962349021031020191781236089120023604140764233323722679546227261526016029952905756872101182707579738104674887151640634981860597007574319071035406603152253031858041979477822972636217829951025101371995531338553715394011276912592232881822707604963888199621343556344041272084044715723759957665175617245248746380069162104793810938714568037660607725463170600568532314205131319928423746509844538571401615149784487252065212142817116632172484715178527278910552029865892258105637230020984445139750631905857507245021306786571698401156363027473256313665162226756022709788350919572981626564044623783780166294623609066931170556688309936172980105845998603525991279050979987935986985261345527941616942135832838776961201776655901290408725599076833415612208930483322104330285485945399909488913813795670609710424464234116127105439144552552543155954224484240810497447140110561184187686431568979990889490353902943329254221133398444160661023260299817804952566499864310388631346349036755771054834069360841574274215344214823697208428461891118596168641658037676965486815168085377799788702341849070256766536181787264917477290872302347175667488802396947197254652624326744159280332031041479565575395600110382052991388013829990639288238921207843523999619585227314163382006013579497674926652027226096060782889839408018017432736823836393066550573719784660822583802849008863460730799265408173485365987716924132537916004952744063875839376840216375237252943467232289904546094222173957131481107848360163156344787546017755315410396729041872148863237357117966472002924830311021502169008954030505605567089866281986267659375151542991944301950900165760310922193744559575907694321985306929677008956926051031634647560890928053241276178986177453455800314366693241868216897483082163194471103508683283215936982121136950874163886367473982940311731437386208125244067252698236322283852975174826395699936752770990467050237053896657310772483069877020660039222917464887770545829883191170911733500600926666452090300865183275138233980186683811371302014699758790006283386367972291387573861755306672677292900790001550579287245464128197214302684137392557109456785218231224224675777272270912614508626726950452600831825040329440615909600057413954446120813043477650550049371013442920134649988367543396565831270364345146907208187843083247329692636230213049652098666046711666031990402429545546013523350310467461185758100813726290414781308138167282475792365816991654930451556521196656932279038155813362396043541841626425395564821583217583156977448739966965186661567857583957134834638147580570927998222887430774380986056530888391651394489878582348198502394406847750010679738005089384696504502757187141164877648663795361998930407733024148541828743022491083216726909892538626309449127846544692909978833293213270301289541256186611569468527457042897941936742141143642337007153182374932225142288705856565715218939281507565090817271554663019592480225718110472954326239615846552980558359694100664241867674062742163134906941632863729405710373485244129153445490614597393112386116410278823931074182780989572442565224632820734939440186931170141592297078713085998405357460619243091548716307688163228031489265426490832608324017052514706642273605859602879739923917146272546498669192909258228245975109270539182212120187333731293772916276388601541152725102098860561541582462688394973192260957249543051041643021338780079004171609201265621935452828487651049660166551660521073377933826187203146872887245004316252454718346008004171136984919109215099301812613384246873671140961712089109273089131231847488163976507047064260095251237367348141830636140628048489372385627241275635396885104773109551400827791252935772797334801187325049609227550448845419306786423274905930875193757989845148472042299729501320568177994918834611778742986495726633755181112236313569926850706793422061160785798111651331603115715192314222022665176488500656681537264606507705008176624899533029057029703688663869182211544754006654276392851831533417222873392717207184477104121471414431493985709329201644831744220524494610283749639227015489927333915713351967832132161005590344736872920647722160275965224893469503769194047452178544167325680294930425564883290373277019846152366377868551144425363291936395000021297029587108762591665801894441800971412679319989083604886135823812899310967959333161617969051613812607355340004463947863157292302598834498630184406732081361460709894558049095614956298039888453289138731390216528180288697911185997004560314577551335955546788951240239553833476095540579325356336447771040193340173758313952539731936179631414485819397429559609200604156292415248865444701180806740290168266457880226627567784170923785673346246595518650004943042143301904216073929215822160749839158631095149140672401212010605300683063116668149068305776193723243378917321649876217703509906991246975187244019181212223875879955774880607969340123751155547497080548598502774495721278586905605995714740604019862263621943232471121285636592380617152294500199468235151884783848074073771083509658603199362257339209053319530453899466636561746882340866779718301000626021926393556283710304753799299921437721762700253867950568050990169037401771260160514735744052267706600647791158153357390739250860196894695752100564534968421277097549005048400556273901715671559231219934103513983765318873843841979882980975565572340902237462594830102677256752347723225988046348263383217661476388499470629821600317360104987890239450002467293514740834963587594881710853134887642821053769505447486419775443825560661347916242505595435942354007109627828415335636421476073020319087539731200823770736866948118840882342509865019070419023886169464242547564426672400811837379874326947033302504284130312064399474512128487639003374474239175464259251364780176401163724866893311830970114479246302152482251830999574493906340536790281371655149711250714803621073271866382834438639338168432663352048593189218063997255696236969731636414030341638118366950424609278370043013918614178664057824139524060892359087517466045451455764666147666915877152674920130056752002412271338577082010590872271165743831826142512252931301838288291074392872918181760681161270463294883048421300209731961699861658342691626546633645464737911181915668922738969148686938679996891326527327134939422666665098819869725741385346075898243936982287699758195408149722586903057015512219513425981623601061068195053010606653278453701552578311851644187915132120707893298569724857624777080117252648719016763808096245390234761608631271228839649226932305147272015347070592575521369261827789037025472094463824610944192180666281491931960921111487247817939342223153611755607269254410281361617592452351445103931082692531154889915242175312227342576362178133767367134899016195302801445176036158444863687582157702082853837472027730081387733981284254851954918074883453714343463636501326671967430345972824201696415665139789440895319701775455226078261148354705977609868367479074832908714368887872718196405456771338629450375962510366364281755048555612395975025165414511008705711952720764203583391408207118520082164150147629463097999480337027186823467532008774158793080567108240941002558882147241618251588100375129297521584618175542547776398264891868091069824462819808990377187119474671066071981033660008853212167827941376511905849645594793470802781903089011828434619993145967334532038349660368796618016649379923893442986104536096304470863560051537731771821414448974482870945256194951220591437220092900027137001932158108940441411929805618561174885668896598043802137122732724131066150999712825786786155920991152434640266048969441474453015467744973595044103198599480048293748845030298807461074483218415764213245816241515923016171758126270380408531184568731119541991455847380761535658776048492639197586022025311825389393784672789785845487730774774575666973412187543863429575598798004095388413599522831639075463877171753585391507632815806623456923675992408837304811218110515615623431499010420195358530209029760451550474910983639602382854742034946864551722558149748508399481540484019203459850888925934259472930291182533100735762007884640348048917231892505928147456216775558106372157616340651163424050282619178830792217998126098007884750900416976949044650000745778382300176017078593953513861369457792678235719729820842934691800835902612493795915696755714427042365121113718428530486975651251939669824960161885490738275769346752252371889304565905674104104778461459829195191051311070929586194075138151301855923211090630481661686190221785921608552068083990859554541282380928432965485551494358020651258905460785504914313938042447678844049341691445428462830588517837803099983298030939269766078393045437863845842801977872321631779912077740665887708457123086037987854056039248657738360158039737431637489000434377839634232494669616181907150586374795445442626228673906699061709663243505338903088474085046644978853894036926682729072891674094677874423916059992299355194888754014489928126135924104887635404330652581805049101788581219777970289696400954416526482410905866343340364276602197335396775022338476923002709493942766706297666773149768801752686555183824594203620566285334311050780495425635567408983386539155618237996578839694966277812232412999639325855553719823868499334345987996388168980251235559305284025826063998851497861544831748765817373894809308296745748079185460213408172519157176166669114011850933743711909470039219034163996115741275906290687187498969371117111043540536104141963211169601268748301686085466144564012886448192123310035940864064956415753270598390311366690675969522978218799592374142913465778302807633274036262467218190745140474490662513816313774790610760709156425740876628601316032527970584434880278620483801599676245443372760209535383510038040507785355364905671471485171076821536620073755324643205021103546921584848904116128538713807247046847791373836795052548661845814958534281482016855849118300262819242997244943398562707972945180477479454064904358279723134492657050005003433787882709649961703108617865976846708836209447219714872315336633946959147063344540037297078915717975781103241525558288284483801840911170265005186515238118028738780867093460758319691293199241077470640513733547398655540170224327651511972180648929657773296359196555483500002448301109176476068236527488981862019693257604706562123205931411358883098274500803872086465389196967431325859291484444779950814268674542741797205316917079966225163815168754546900485832933352710743103442563092151941368862822969593740087479332229370344947258130572755452999125464233126271086288988521357848724713752983230095669858067136188763497406432054216010829332481027396586855372677327167596201428615527450278963400312215248192175807378335290316450436697900027781531308169620221204906619580966732947050583649943601219756089932656571594031060772372261606776665211265876160116661230550539898380934791438796512756832792769791567618408818927735021710687197258456593324149495319979480364176122076653562951229196017632142883279654732557864314034193959784212208397549570445540074756777021022197083038212270452914570532025320103510338258499637268118153970325719582958814135552959836530161952280265135051038115925348681754899380577157380958200901047884818971495263231805517318333359898458923665433426579598539771808822547687116138160962995045180397446269772137386369022100485957917604299908419696516597347677339250894681574176050690813899751207942828878192541367031315744990348273997888328392559080650031624157939561087937318183640077239378044701298423645954753131027654263713219220106792343618691201041338220791505537220178336487364764402794661980098626651367594744847738308903451942365448687278849737514961822695875470043558044767854420087778494318503050218615985542979174977103450643320957593402310699579720901228107098528951264796510827438222698027918516093842488628833583662771449378613296609631438645328696740421315445719242830963707726128464799526918805118529932239460332314072843584049078248223437759178614104872359779457041432546181280552106095780225426401321890994395793198274570055607106477833065928445224768587150041624141431844064181400238047417242406016748701444875552245859591749818620012440198123439047942023240042383770302735374098053924301374644345771443487688282629711715006055301145309748552966688401948547845387079269490189923943154929231391905162918532499962112418504849800975151899404699718449273933445581557724369236768263805666880152052573911223750527208749505721590320036518590631380410266010339978115391366014961747967242449951466649835940200642300768098066950013036363321573791412276173403348683304183527022159852139286017391962154182573950824983976316641517649437794360299257832945296080389178957811083407393591846349332344988635681673517766779595509814695191434289487322355712866504719605040466704144704905218653067615429440798626773774163845529551327720581929245354638098110836119493410027481350306750785894405553087349649440313104164279975194529753357355504069927901573353721723000391799568304803150276413559053322891172960118795367812521175067373143220915346873460458346269933911941760772161033062251280295041206032918134062549530751536721225747474367132358202063150533240900944902983767996869425843356543886986413721671984050555328907150316272016643979180332581924801823725427773460905184343575259097485840231772766970510815221243528150459698425498654170722952682813205827385619461560803515547202122375822535797841564957946585433223635012157948997395494206803385876166763534501655322247543539896095304782799564568674182812517669520453377701925224964052161454111520952966618331788202538178197793137430361977974857243480977180573312018915149291306978045569259305742285115463070600418173565719063294856918210039367837577573716442379485562717583690101367250867018435145937332531472593107598885295222331063826240947554962647218070655426214348444003353902758376229320622788021210382239073256956198005846668549087658151765688501336677443998709237028747094541649018553762261781494933719804757118172669111711853556019952889230925915557140334437556779092002011148541506539322388372592868080981443073226273075384795884452069022328812633944437671803250892494255189827249631379755524424425440672516277888286936230665595711935587446390023575460135300013287789316106276253815377150813764072490241716540970652221548838958356542967558830437235481849550703375665659803550225787937180224787135095830073972245177503983373937835622484399338121153873080733879922215020880010704929019615503122994938312196835094629563285394159091542983442032939568414970635485354634700034486014388180763176607500595159945150716601201840696168105028673558997194097888779172802037628938748319056217634455340198141163390376874272497665548584089215450599622110139601548939779364484664234402072026847115380414343194932256362191794980643492173702552745242481096274161232641269326763287943199486049518922431295261109414026445116328906941926171894425120924000654998947195511596149224878398795731493261422010666804350368920680593623831337981967941704583253947628011873418188720562043177337885669789339457833918451218844708145029987406407542932500011942704986764191343179105559343049425428979727473222779822019069128031632190791873673850904086849178898129312678310416095270395842474740090887112995744726585126740834051238922409154575804041888437898078921694344755055447846226488987279711643882262821086825723154529539612022694864252637047485330180440882102235759448882540726443023669750576247610586431051651457711854138339727231171629066998649513707475153985751043264779329072932453433662990485663390663945372659772802084683546123854495577775914688809606958866947080581686022052700158891755322323506548845128200982994112431969350915503443155289967439413544661876441577036310604144228006981850791506874569698123172361949180877970518258817026962757304696700168039940704310495458174278334568590217897314607415473068340800611903132259626168724004983648257510367213363654273045157808091277772505017619751159957680190299327571466866281124323618467155285962931120100253014382488544474459656636007113578414933089859658180178432326515873882428525811911653465144794412453712564338650772057122983510630779496721513292036170232836596088537263100903433344619669068538973348637992920576802112199648839426162359707406820907201360973837372590741403583576431412279430360355630383457720657079491581924748088726467999786378249233790600451906376862285117738761561587403336931126443618239324817432344906749097679756420561402894836144916532917457086398602804590508229654222153743176304556004975228332544710520278985692139274358777279854359409349775775850107684403547269622501530763735405936888084887344137048955515573967088140133329826339401323339748403064610361117523883727408815630622695034257892362598251447322837483794156920990443956211080339484853884759214992828985679072644838047014030019448353118025509256291072879814621722245115940458018473452703610712734360402513682709322580183581150242906797509775673330548805713315990619207622814838203732439731350168737654042295142682572724180392910758503118996074220368298765514107929547710207865953543895484239658042780799986618304138423411733013643396025860745807504917950738446511941095679568438341693429887746729459295796478009458872646362573027706351529831838571405342170770241093485121900656151468581523714085152777328949850349855001321226655986813591978804379589856406687462168020630817303252762515104154085929898073608540122955096874240074713443472526237524051795709393411180395762487208394662585994411475558064758913106483772128625045979042282279634913687085712695691738215779098181309112317356094833332612003229270836687607391314505089879396549459212308620759148623928233807556570274641892892189584930806146301033580055405797962271598675949308265490282923398732924568270620470920583345944801740539272423597169850502107123544559948259788631897184274741297149651493927022522310812994558201151519810797207221135539905997881207341061439220912334525552136184119152717419796430789240312109089342155043595518703145515177540764004071900159001695780648062996560912032605087209489502790171715636868518570369693633557247106731334789061158990215203171685113676084576564962233043660081376217462425774184110429952123947741266704489737182455090548736350331981188590751186510068745748081109489116595589474533290156901429620604568685717056586327142716303843171696142226908096903221395992590738908696624900176044002077608531978265703882015010449531414423015314496736055638614295370334555234272277725700183945427331759053289070898044106955850134801914700124385221968615940864584651526749923700975964257944238058394172116408598814197711283761096656060530972014808446684464486946843573012254215517118751748512573445709769900205844240297538707966828716442159678230964481145858718920705682382041695315889619598745987486151810799560346502841134989752750638239391558869785676614276177198832898484294638420435708413317861705847857412865036066182878591384901414690082918468790277636830823939017962356034809248138009379615593051499639375411566496345001203987476541112193291345289748879641719607294604440232294738525138993619934995119528565938921755399120316197333060346931865688822241800560900591160130870362531938190109072112674744035189903287224894235175372214083086231337701971290491821572014054752494040401560590764841383791598188414390240450832384684945772233923499457353862312011670057508621397363091010274993850115173467833052621149956256793349864754111254135427710483513896764632271182659194864899325155133691807452375323433774410629385985455499272708336346057569636769905771828003272011418623154653512154785022680632998020694466727907460700680680619308856645049131974785927855762284935315484052487100523652513193966380874658803619922748797820444087450910176862793473186312873647836990788639207690131499467319583476292457727105536371334836677605671123645837033365507488926311326956140566055441239547599827893344789798307134903665462713924661250994883305881026668398592183775731431344301484257444663492973333790503855969735083284775398949471713011250317086782071516615506771927713345556319808595568366223294619214545925579632204453399870336700936342047366707059203145304786794276211510851548303869341586020506780861448167718307416171678956110423813617455646730282210481429772713790048804775856049403508772845679896184645221134888360454141203206749159153527660426849557347382942361274514645972738123315348874107623752260847018252353407595921596367259244116658701635078541613504192039176050802456401126433299133867156353397684429911818442713588040405523171565889884733450123972513253467769719839086534605727916592508980337807224697763811635528359584233686446836953504716003528422907191644208039673159459876778932666179430048735214114266656030886485181566781515184289200443893825433223210191768346202247254896946543744198007163913520408957899399137089858863320420967168435048599669459891310424350744189960060703477336888073288050601534849414754529272789733681179404274657579832855337513840234104657670601360594030488104601727827639993486318487898131258105037680692554464621169670194136281807155443757605184376244935538206888429179504584013199243742481991928318776283095523982399329571720615186158335568562834342964902501890650619524915935761504433321558336588833386889497948398629336719782058703215693795045766599355763672764896018322219856408605548131705904891814924781309726784030254709248763220724241163154906654636950165166050670485402962817301784640223056964033486157709044989512403825901074501282707392705713040407454893259144080609547821148065878309961953032073662474808096572868230045564832818753540971594074863228365387946737926476190126450679047419407526693998908315047414655238969068006787302288635413551869115578658126193903336399608459876057324578738177078879661930490677345834526251790513161346919939928356671733228076275152338993696592254450744945790136649263244127602256538021084177625867239209837862300546785993043520759404980408811308700932316783873500085887354060379166326235046108716404528808987288630220482402546277943011900751959736379653945146400799012176993565640168139231610514967514650055302182875954604017902284826269775808473667844751200289312668811563700559583400363139531915657619757753932465512271700533816152618733304648950627308813981938960220969101965620862996314881345524174196085534038434518531932074668536851798378318982737762953872937649778818114697595987581753086478091357908412795271671247300000842910114285231750813393044846747809420551969003388913649207069266908477604542134465651836218282093749890850781807990856290864711308583748962038181211243915423994699344380325945225055264746384963815589959224784462097332074610392221376247730569434482357272988297228157268021775082811824815697631867353618947503863099816809554463633877093639975280052433228533398439990779123773743185590728287569436770608037528038246834233088159079387613731577181753409418961612983197288844827380000041785176722273027737180750209901958542605927010077573892268096757055754278052436847612226220431966355481795806335985452911236421111470192068409105197604577427305912478237168690484640337506882084575839749978677080287159170889971482765835482299049947068651295568622099574639070323115901982902809947357558647554594979567556360723826152141842038675955487940135687333403396202785789214113577048035889136932815332767899669691290597546305340520274279548731312349241769234753839952471847530124706843437674650417207739761061942907470715138390622139396883405095740874044789719154741650820323713310266894270408497737007997048428097306463938705234550102112047565845257107837134536983493691655673353085407500245380454238147415582519516319884226531689319098209742256029282191085047015687044560207399621512158481203864901214502767787018554858548932558780034646279448028009309501763501703475429498166567174573560179918053394900200533254391597726197972538679576035582536046400730391203244021214769579508095614823251155715034101395873870654262610692249522086860452795755807215212233257069563185855809991952565098696098147824525526916682291176837365991468943282674764609357125371223032396410605270790477726192405231781718465846755506341615627748633119017897775502907678030129108556441052087837930319733728490535003284964240495896940290224976834972869844650800658142362261473534191869863672839635727737389080796237876958617626837878642024251810382138656071080451955014148475022718676748942993610057692257919823561607714375153506179825263684355796572646747743439488604592091910314389426045256862958262741591659064982952688664982981930911437109917758293243590376546158435588587396722505203734569332765216704382328113806523971946480757586770854343575120610206103381159296906896979229678288705307567167187149177502110378832122123737871110577948953301065122381019093678636171531163159648194112775254541850337088584536332609474904445608303517007967782139168177935739281591886977729078525661966261298579990024493793470187474796797083094481889193958041871761351496064264273031428119526933044929172920482671514098922914681860694770927712003957128000941380245357266255913840863653675447955941118672413859011015427050722625091536461254631812459096894450668334033309802988863285896331988602978384695086349581781116367637568230049094599233009194316526884794552910193716847567873750823477298080748754097415085970002009466691361835055126262733249894375411649211837549315202935722637037365143437670415839733748385498755463524190988846544861591713267171453868097159541960567908987936980146322061450203106339787013863451743711770131321783941355324364724965097739318298071600284003337857673619634025473773180589122252903918736920719239399835381384248767599053550864232214912394759187768197632125382113840197936457772152791709693725834149942047433294743775048454136670645467962861236502354409215351573870342220538286725052913061082907617137513503877264580897663514866135673387777362056183043115541338170390103964523351962587344521152318812698528930958253872547917635321630369651761750331557017551248609430951154088181793244273747004957206513576499627932642197267783966052910342220095909064148843700579986877990678900528396756320385731980661762752650505816528464123090837014839903269588026398278843563671844905993690837373997309941554522232151835000193899664597607899621063359828555866480154604571476667360577779120443622986176680364900716605914533946030795459461036566959135932940065519752273628790321108593508008513616484029908468366365158303427382669289512007330726605714965137625703540733064501988555041216989114936325410025930067605114103047730690434749233871674713667715075340175891560673106961754914344397666985417634293275609370632842704105212407747824351601355437854225271320664782542825670703169882034709909932176978040192211912130272628967595221765675330037558894176631054956744481419907512894192901460298293151039371754442211534199979057527804576846517100825918260215232544058089920842990408859717448336241286487274388852549790160695618627205614192825332425260194190044097681584702174222424732233898636923166914206044187679353939669297807296309120747826313691342569423029181110940086003261355331570300532143602601106261570222694169865227176414721571549793963344199017512429551298903993948397256918039240716657275645505058656068128910629209118448799876305181216679727065034885305749576381238816442714510635900191749337519789017986486361774145973443803563785346619135926875825125587887420173646211146490352334905162711557213546018603621967763034304779447852839496984773626577628871367264938246195904762720308093801823095576572458263559483112482808083473010724110609696705625903834812984413149780908831959269054508525230659036277744838454199441532084868050253955410608904232599486926736641963538161747288985492961844776321653250486583477127813090527004504758439066378368306810303582453529625654630372005819827854030036599004251754137433327216162279027791240688915016667748165879072315705815632100108598357139241899538356533925222515353749741537911324590432858059569156487149702874158739061859896460460278023376201939692810310251206473483000888975909804464185461234983663724056813501644296301227265103042066018873716134717402390440356434588008424022307896842670985474961909582633326999856645609488245606553535013822142845898528205428702290483034471784569020142769091933280399399230530429803334671249776809300093634737346374337186795928275174040882391230147884800707871974935432492644345579727286023205487532186892209434380665283708552066528122630127712458909422881088114397660871460916984212343790062886906555065751245435138394557548755163338460274614831610480742840718229700168473528233003577046587235440606489134516144229208699187956919081948791452171268063186652139015350629524325657376573247015718294977362158134206331937749091402258159362647816689645693978981781945938374273820337368964792303361936617701691566259238919219325815755648322847151420506778964054544172921003752406912461367726809843858836554549847962331622777443254563280036777327245088116271811460628287962784834080676954418423057408841994927139246776201704275346349438985096975220351295485761660553215188165643610931319106482166718503197559285484431582939535471582438769627969522227092394378677398224155620835936968113131568853954079333345688820867451809201893933554571902734700978392622646983819504409652364688135704296269369389107115095943331425529985932219533175463408362176927683323073873445205343264975854918736612277896585890552210405711947823091567300178110523682870460379423213842655899634594966251660425642848080510996539799669318675315094541006074868276040852535306457236120774629945648181277436590235362830670043714248762011301250617352633420527997179837756642272810627741890291085420760326272786171108059785943626854604286704136781033070175250710137346159521895904892732152014192438033168924349120876947218696387968265296179249070323760045301780082716875641128436227103496145947261017632994886423158441913721726600043309329264852864327751812608312016826017485473766262398377704390864731686828033285219994970005372930687689914559300825119385584969223634421300936368113331081406796168619662295610624696862373340968189520148561972314609037346996081919589296744461518671596821866832715015923988008198185179517699002395222244199101533954844204187178925155203051977595818072567063028827394799871744223344176912120734339856059489330391085530850400762161024349794638739429205034461926541728290835895529590315676196620484668005408439558996275335412540595641122246377800610864618354109314609412153843691236501317973991284898842265991229870440623759898558282734245090027336071635719110054018140593718334554264876202993139351187651353228096849340832235366999353082763567572349149099017530549357986528967215415795940396750107192597305396995803037170298930716876886686002715815500167601266661617471045189849750481563063706866547566545522253066359286915306242547528857386022353469666223901027666975759401053762529093560892035664328991919609556437175593684629687746833435253330433117246725451089670562463955335552870368835583010235073154530013992133118461997996781566076504616125158120932201880975796318957845648196584048267574566588296668025878405987392658308264611342196127493744807221671147501156384583619158198512419324081455176444560731975448473741923216315107030999331139207726870569612716947489346489147346959790027298666474603341310569418351578459774445329099481094467592137513880433522749989089255100637952738129429727184090394546644664673821649139287146487308107920876275045845371279569725562494220718645895905962997547111356632622031690693288067067789134618168021939790182817955110429765541192104037153923309090604016945605147338385963081855425545359102039056699618103916604292244083013615822362791153369715901635074387235327651969725092768130151214830973002925956373808909041574155744239075027601947909635695049303364483066875151477102449082270320405064048808899600504931429433387486678313786121533646094190692682270302427670586973153086473162874433413849127610731798915637248688357337480148586563653900753710643159179176332285601907717732432305882467088290027034452455599064957218835928745265845909519722366390321148839296710251259784157499838629146424826184406459821258764364439716717131774448040088246575691162038390090783598421065458926089185212853448246999337311036739486370361964376155780788034749664947171474249623613795600172545420927143225484751486244995967376946146733731309200067345202254461304240833775674592989399631712794874433069608826741513959881476137610433704211404292348403383894363505817202840278593755844070868258720147338139485640192503452922263694855237550507459913085586587892330356977583485551426095962236296150459484328057299303776698637954220604317880157421640793175786533197590254395997714845698848855200830330106670618368502384280138587514609753791655182079734538039441638982714448189564640287690433202747582552633349013986210200961108765300514228033179012351872441509078899795107709191825028638808703036204225601451322261717116212111000994657513081379414567735382937755769301363479097927886851025464409083847586929700955751327119074229123230023815220237894227209446059150006117189070058227443182225359668198263038039973032170406597374306368199230005034854224673831422242842808231978724539760336928322146262674257888801257851497848760658675444250525901441437136049487107453238672415762874777422280278576522035637841452247367478182623287270127785552289902269572497179436091907173542450317720385717826377746423771243730839774805699352066444880989531399560246626776761237584362813997091861620835130247743381493709236265156785828617400892566486727812408915487977816632806573717950060373444153799688264451388875921914196742689667946707458258816914187087802849223931225269634256100454895321505080785446172300842043806652577743086709807483421391541200598300187010084527130975405831688798456934590779169192676261694410369763502730510265646707420728455939153682424435288882374870984947178542325010447005025119732376247636771363329048485742321179050326147119253344510165213031011553313700458414338872204434294918821855817169874755567196105280028301296079825415456174643306573264697077098807808779346487067446141450564924774155322913791147879888213718309124305862554624889189641502109162220724698761600090431995061675821602461233870802967085293714675686695994750553233794047035343467618472635971529051529081489161278344042378318052733207098659787429160975536439473613907162391668877513422900728674791130415627959213207763609004040806976424098925553095323766552354523158481759721432547755375273798258277481276066226425324518658037921232880195584931025241323001038735335917401967993226706993254054232162509180284921794416757760809521916044654443937470514143859522675383746104023605144351563268849123583597794766617021217359824993074627603255759556287511433878396201249601201087606599091881179694835096957590373018921754599333031239172209667479190861083969983536735334082819991997499250056033166871873186364921183619565327866747436247383741993398604980806623151679589286773238209807021035127904999309963923703955445847372060964442044153329487942018361532465661185445642988711115801379306473380733134269105750824262954813391358331434101411526159571732744032799420927139518274622315250993114128593649418772454299164028675704475022110059659441174066697604727914858020002185400605393175202420388924641278454919724831539719505448349539068443261110974204111199374642418502231525002268174526691108500835210061836368052001900246185244507768473601869760490311452522431584804596905383444310147665012778858561774444311967063542165399529425892217392359688698029441844930195046171205958588903597659415750497652249398980946958495524593755522833366506170969888127705992211215554582754696941329274520111520731014379230125788266129385161169867919853546511420178654689037938660453643279018019972827108980093736650335256402242297891556307796227482210298722718490802220958227535367658066131333352592630307452863538266784922594177849640924746371950610035532668705542284707844704851760277943494753900886299154527797996000198307520673702929016220466551666638871457362268499859338592325525613452355348018409705230500360820220979818561794571938305406523857508437821596821110771622966451103409097600727902980365632789380292087049290784298552831917681292319308579087667618755475964385160894409877460458267448768327609959829525430833675670298913362924474825401907025448029578885420041331243409019276149860010110358823742004679941357276962624584445975738556190740150386732816094232327942023022844762343893734698963896346432284960033156281411299089909561946273449048656643388230960435555180013764515438236676469913202113958819230619954449506507248717985070622979782391785740976257023395077632156281758336508104072518466824820158849601860187512152718424094348708068530968436562834658396070987791019758333933871922243012148448830914487507906602884477397413210943742388709537805827132895028813840578479546127022317268909905932596512967683773427549919246731183352409310827456099294851520301835472699805611071855411276672149809428582463373919365224028168572921680767372824232978371544586890875025679634445362217418038453139540585681558550235251182800409867012326198124209263275740789766453379620063985721518114435972340195525231572392597469278156066334970168510547817173222807666197612036272660751050257774673667907927016104526108808186520772807837088010017532723374340786852757698327573591400142890497152357257407777908069313753281398564640978960150326998844137006876528857131709375121628708065598792491156232757221461606920091195320697649554822762186462280988205951564115474771094763265526840488912675403284634301035652350909441432588657950157017780687361365801571942187667280063412663863033128189045534835166919160557310158902799418752529109728520977246214185246719693202488274201642924218228345831083994044158189734203530765302829238192735618461924710532813939505312926837781756616862856103211398688052929828589068221371811634810043221613492453682961625020735800317365573813422694195861488383538112743842322104186799813571126338528568731941371379882100453952014427341455771660912226805012855311254469609531324026983180503619747153407697925071524382662248046116428444006883763498295798956600624157653653380221427264260898715025931675240665817327895148939144466777608208532487271054159247744966385449811986782135938591406773902540761265802871953232453546830805455153894779252415852327830461386664211363435773446466699987549098853486128444400684751393219893593456192414924711709001154651346114246779908810528534663871973328232594897128759905452851725939974845162074967649506865720659834748564226209623822434200525199730842815044440384026614558288876025266048671575154964613570859856332335726833188960806636849212667625865213566785890868870823022088718025265146456003567211410570428372877744362398397282382527893013331313206026269544163318176000508534202199807259254464923670344238106327030967540297262968515806411094817379966517920353350775839982202680575458088615674947224044737762784284328249217103851023001276546669561195670448117032818127379007152548022266000466353989926629197016598868594047831179205856162665450037291161300867457425160843346463982493931285971766339871886950950711237305892177425585003621251927424102722119449284480197324061321960195051425649111129097745291748900215755033788489712515073944878540656102082926438449719963233382791046632857124938578046688272183024673275714437291492405434638811630385842840824378426286410093336641669801705311265549147026867741032990107392536503103764804800828025418465911214956204292862762967712743417876566073898802158870709766097029530168059515632535775674995391012775213117256685961896720492475885280388876557612972395567630375257344936018725471854654159981928872517114176928153882005876527127547307936483704477916531784353201866757407166228615020290594005522332319670260364197693089327532554183076526171894646846123967692572281893245675113655986563195666858529695247170936968786618036841461792862593862085871477190591658127516863319223981614271912596184312666215153399613874695166508870149877991200554657377395909792840867217488127750847624491289803206595192027909801061496570697463675548254924289411220724728430832464370886261557039500343776391846369518887247315999468377539046715451854122898450556907999649146328133154047507401447319271684406445457689344044241223047974061151675829440665674227205734457442856322343725109518427743300184456921230040246143655847594556539082127344847154531197086144812636362203724570837105820916873022384300208387954569139677910095694272966225104297972488866479887386312943368504161901710539954373741683743053575926564345638981732162912944507816797233370118050475730361055522922469510523733519944017918970287198060294341584564244338135374368153101781018704271356724377648499334719419554849747003727419182003726899682109693740867038074592529184037256504967145127235766304787945188546929714545602381066444595155589395361396316052982101174306103238756678318404610063200023433035290634374002222508329360788167507407044112317628746292534479623122507099134978732166946114435444522787510100062521061685936869382212604758075833640755719429849523722584226393519435635047993945946384430561433001742123949778930059413004140831769374482130303542799043634201653209949679921287000474899532978116820348373906390414066492574238570966180105214548479709236398503293091926291817416998977233241016809052129298400953351548809383774537793820524003065710163505403291827920998847823970949974483273774932119089733457453838391488718836092242289440544826470477700271551554674772396241796083359493777449631421356665114316359348795356347193211767125675288160426611734011186843215810006304177665860250758579361408879654610026259865862397914312956147807732741353493747804161037781874064399953317691140963836837028023596934803299807418948166673955876047048349696470869460235308200706346848553629474882125106352322101443809423854085154294526623965584512478180848555654197153906016096981071741667304274521375241571311636533164547856150833934856952628251793735421693678240667447338105684802630071627886289342028557861789168379352804409997515736985914886328356097757928913288204990326484302006873100403151902614683000657412855813620616272571362915138447955659462473402732506209982567762594974162046737758962765177401587024287804600020163289916407635558633746385241352633402978285450209892827391431484597904752330798992473813610913124724608497165553826369738260334969228915048939847162268647862097726535479722738357734425841407078551028854453001096023154677647533980139004075246316921469145827146688548131775297375766770744596294574078337207871464964232876037043159125724172727121635795546123981771512636390684138556576086628271404639039109893037021236939088189455153143684645985847875902038317473670445348209623086636062899520057921681449458474268869608481849201681641626490755830059174063227848630567005132505172084059688373300850222345605209513065563939486161508551377626309612611672011772256850250038005160064199171975829975301868417036179831928441715097829148129181964726050348764457726420602738458900801930929736490368081953276213148074796044128720933583702373228821662654396977435946393739656653825439753341422871149237913847598247866947791733932933689439631127775215793961145973105803584717711623800493365565875883161702031802209716040624068351406367376696385914261058272348659049362250155864398783635198805435555313905659222933441161288549469097093690758901763345470775954677848134582948477238590956328223963770324449487264280292112170782522967102470314651095661484299473356954402422042602181006997993575909627570278167382248165585020504218415715800445685821676860446251414626001938669320264385312090041971243834963912170061426524493501580167457513174233552007078000092810236264710094145636107002602703496441495295109735022186195496721829657929783086254666605678686399050277256277584350816763266416899956931588316202335886870562109600992029832546327067104513149519253690205150762366629354238368278272865476490394687127389128895200758602207867874801481843981162930815212396372219069434750774532641652435898290123684880940907800939830234506766953058760963204705947946188234626906849141699523486307423859425965814917379715659236860768380137413053286945702434614523347157535364976159692409445389586459271522781080039679763028525703574130684559024213631510554090101751600643971514213872638377748912351698012992882905389461275466555452546002091491970715563229738348767776281894165729915524453869917741419677539498864423466516909985147056845779419225441868193443942486267836119775291499950838158720515120669075765568151072528986649175762795994490795566982459422497362175507370809481219593927692307632375470463401350815496192267382739874186149259645501887676706196642444765992362489062081176287588865107978770874307829438418808451901169492878200134508490250824741670962605080656455924265729468002095158335612746312697514815086284591922162651068992818026551065685301993790942755870437319098319659121413313763917981229831545655084661927303952810430345841573661049535622594274950685841731257138117831127505954802010436692663651284069612207596081264195777295628922166672664584671601295947704332815269813844225563348615428419201698953803080418767425606619708570315695304349723379210150218622830174079891757755184189185403560897771311815054101066664998195295449659170320554641477877254448304196016803802013324301388765110324559072876329789623566122788470581738607247035054214908221211175725973824172645159917169541196357423252985993615920329884258982720036500388558127443162579880354844268645396355382145295760100194611088391686311874973270853376506531581694216081560394762018665455168736664450239548273680935093898538111835714855061471762182268633298690819290001544024606716912097685524800619419166826679070991391290720861791872176602709111890760461180994876156451515209860336671864775948519783410001346398318188296219036417504360078999713319053844735548295676722605578071659722842780046335967501208745512428021011022467228791767856828518494362882863733576220606231208052209451910886938003077270135435339093034769947303296677142677996153839445951771015474791672868465545101953768711613200762111495688960719764029522201272556618424450261138742254282395283006452291529724129147397784282376138564184528638594470744317853942524516521115436115728755179903766017705464910209463315031533912353249933454563229294727088124419866492887801978049246724212954508415611718926476300521391823669257202204564912452707541288327954394053413149065481567289042388874965991497097124753109135813932518877948183905397788265922182826068531070599801508505504911876548974058022653211270547802281038552812772172245427604676798904232123327705122878869598699432548801198494216581552960955905384614212429175991430480557775046421700303707181585315865650337202024483985150980837640666010188667855021775567518521709022851933874641756119379100860850309792699601894734136101828014574831150325761355742246438533184419819726236586867326116693741633476732390669195120426230431624400797248214525359596789893565072569044315488463673030754881986889597113439391215864146924043280445632650747030580756348856927416834740699752125015300675080870402398881603859795215069216434352513380191448880314887720707628056013496474904560379558012956738091326885766337116094339292229490326415714114338429267906877177226935396063516359398191763741282993800951974292959680857924327383774640213273782843941333965246254424330518727781973511824321367444977914966314377105087794973177383978978515829045982491764390011244518325895960426372637004649346209697090632914681885414534819633131733235184595557302246398703841729912520083016575161722791027638857441451089454742900058345240008055147656903116679262702102327515240253626407375349791639638331813368984421860028612555596496967478100269273358981426058693388527086490301319972620222654488999983739432579045207396195000421390056185140959236219218122076707432476866897340168737023254627218153783631880841482170544245794241409807461835201136595582361523620526833369075279961243756704152484085002948270348035507159589891867420106789726647876787022945917476791091521527080486877046193249488534018210952291888734895746630362543433532234640279845903019514120470651314444568873007185534277586491304181085162796481633194672571056322635573623396855865780597104432773699534164702061343115665857453643078512497804503151586024330012290634987446426321997703433801823782744689240123692631327915647083045731864146667953515862367624437258912615144785888527566461040558420069166598627692803338761136086436594844560703038480488238967468933050764196733938599730769420671842736327149578769640357680274285314226299101162526359262924153490606109658255356937714460362191774061748815659018153151923288945927815142819530140442833918339026330142463346762584829839644488802508860105583073073710163422053693804821358411624537367570677455227330723704214861496562944593022197779152743238147798932355628725986564510041460774611035052516535783738856973944826574609920945155855636503256805055850301589053640106651439993186509574994238579964886106434955250967353568330875714275710866049829490180833482925007531488449886329417742861546637660512508514397663563662468485915551485038422991622750110957927004773628062521302487985458377458443773183066202113821057724518853501341348702735491138349431888678386669171978609225850213960728664256864381096277034675506995306116604522218055207917637882334920419473747097892003943005069437709066452357488437115901325326207266249385596552277887181387826697787339494122786785137478514056455191778032602643205377678009028498963900569440346918401329669209689496689515976039306888501914864972518935624475168705544344302908248253589135288762227849048022988033240031536437438801092136944607116632839561577941521407597023524236844024787317811943191689165415868124869994356917313080554877921857000693360500508669274476705029725431940279323410127146835749507819310274204483155138701538871009551962622399337424078283904959179660164107065195782931975655433072393630985700012090286619958771550295092706739675193752830074405900971646588849607025780043786453929980919514306257484025796309740646807525907862365657934997363435540995079871523705004721788687836333098306345387230190816110186116722623211450958828071852436569865579059722384948960547716172814595207617263209340409835542143556596819949053162296200977670121658276369730651352620792381689194307925441860158365686696706072163589116164218705861115421394404254758063761197355113320706736665127957345584810054763479512121069150961246460533155568901225137728790261659582630490031727706319833433285321882894340077756343818802737498712808430091984317123264965411059373907974361845249080530329151402795689548572006311145930240530396569320416933863595700125202969408123117438824841851758381648149038039155635759496044658620010826023486760080195430659372499425404397272482975134122838095252783209727735627527237813850609774750859199947740527354891197010961334101924644477491599067602032071196859322010228403241961246347654878107899387936961198628128728064701815553032178148502363490815825027605626019816165601645889190719723907435772245961630962693980182431639713484162688691315507544084450237934818051314868419482938567077440251270917361602369203553173098174728818450027881944954302667669173034888503511928238431157254449457847403047406519334375199550044634453119447338666457572779648289335697296454849814476073657963603524729611730776933118823556081642560751308384837353587097735233909148780540113177238368201053541884111751411528930659179432558155393293631191700752143450152461196892917626195575689889110878074010488850829569135755247778467861952466513592949417671672715450003909195674726334270050663298462241800758246317196265415994496457666479708947884389596947343589476974954286918233384587411843949764245367576857467634622607389691154488738240842869436713330884345554013980082288995437902132934942773795774760514331245327422749961425951128006733509322006177973346884300028938824167332216746772272001734295359372730312304656497317979984887170194483072244320605155173185991498940600174980557214539753152060043182143719737762097171006374659965942109066936322025984686017342480296587959511910695621141900831606531733394457146433617262703210332713703670639896159199957289894715951344734578390566348520687345857692573837704744428638775535627165274147089450159025966455772503605615009671358306151098917639747321849420703073883956008603005637441564997645641183051634665190181673912548350230855252398164703677624308596084648275156598216497423429790350694398861994359526319145310134193570401688795466829853693662178935000984955768627613735029033199320337522334266078274891484161918862446535193301244839317657212373221661764230476969536531470121737499782446645261596619930435640492579076573044091299930201428226626849259962542262362688017410053801685249312286660935039536502285611509505551718414003187587130771392551456609730448244990075795404162065964566575551029772379519747856889738832188670161185869666136149226504164575990994420446741960237710089943333519193786927501338097919063287021258159638470213748833899651490743972556496419850222841615593882095331387162622712770005207115159329392455962588226500791787107502667715458050287277605936116744793282830362497628555853635715083687670963321268145512197835392478007448512381768152020834943893689341772357827248525865520405764353661187089259733766674825887078640690109273415873339643576414031342412709136964645932526755467767085041438267513529364714073544945701317360353329269814975804125828975737838593393258585664711022577011719412857161440141652057483338895202707260446479570041710089928637616938645649533503671125961177659841954129638887759238562046837313735946123562285734008561906580794149294956362388674383694048597874171797035862551138706217643960694547837048239073090071628766932337752981602228922010429320605083849573310228391918827798867002294299001635280870623356687446358013718578208071947682360937683142524904348761312281689936825630532032548306807700497604427617366236022096279780569324401255843449857620236829283446477008822863724655761560831803462874018506629518230489094065458644776767531111465206911109870437311520706052571928885909645085070573495144867991527787775370892000863159835097251491360596469785629303074248380691535370639315457722927824263676353710536123403489256207463554107302995343778780887047932874667395154941637112248486909606491651194029769381504220968058267372115878742998729808042654839318431493124836532831431752891693751623240073910117954026912528604884357524255540446418491100405387614633702753503605992387413299354206154500600008117474992925089254632488471217974741934540052560792347183343904001697241534416164464821298759413666551501616021963551622548080471147478345436433748284812368782098277154753634388097080209274738203465449025722475770691478292172072197494743324637967931041977134481425999105094187783577945654383180948181577187928091156358524737067525292783200946776966944441864750337598102813699422054509875243914103474871106111701733242057475328620435329281954933424687131505701132343124817733290177290268273609375250911565987794567558222882706606655510430622929912189728513085972497289593476398457744081337504690192784738841431884076896555791007692652044119515596615533280647155793261252618193040992577624229918644085192936726879593070254673393917049286753550566669083350911066329133276982816726392213672920442720759671865975731512855816156325029777821352512703631266811644929422438850048095740031998561770631049285296802027020878091552645332114626043645474696451592097038620347541223725277444908132689394663608585655103189967544234468507228918510393642281791005395552960713108799677483146027487183867441620983506239196067770313755421547570737152726383112541018953757839799731661684366522652322161870973753648792356602362564361036503766692578836271263468594282466525339076556044359816070999041873195326551584709801355386433112750950108916554651615037255230359496063786830097922224039071960112478280894815136379641400441194754169681570344889884101090337041792568750740937644186421599432963861748920152659567478631130328602853917316608298054540891092828197057415247375523526387278541074556549311372873900368112938991276015580141352539798333712245024033802497336323506659571670773865916456006380902362411402791728090775609188500204888770398431869134545270012825412840337109839078542926959229119767057513283288612121915661904011503701197727469152686177217109918460194422327491823822415323099848701650270455709503620810222072321419999834659757357763725361240144937694040023751042775491405832720497434259931260020447464430373107733714715126160268401880522743859599252446015899104820412491469014733380047580306567579297831267883508191025116074353747263634169311112212063357367784044951155957321436687417029544980572636402879419113308722191144223790893528881972000325482077276369079080735342898645087960883403206841674567290389485616473707054569118238488871227387443459583816797042364874480461534132891664724984837600047456725434308365399735773634171828522250980520633344271846926650475219335658508632042573236814935729291497511910940894572615885603729747754939202104687503788413765724695965769532147688527519458854681429931332491781769619722732026108087470436060537833795790253452166354660610258176699767795326580134348597376503096614499884691559877436375695430654212137277890949677560086705850872959636933583716635380348883417131158940460978578408653607821542758521271725563481319722219140955867344703482783942119865506782466270886462635073321778891959789314776186962182887840342335772813610906706815239772363401071403873544108198960554790303515157481428240834531163150977044614008290955415043213443393122209004405879858922235771163811336961031748049150525018572762454599065515869091588970767695604282277075283290953241811687706140954377857567672174052866520123615133510533347775428910562342167815461442889923354066406133524811720082604328905859098368767926492043314840413544609302796754979412049526500323753199664462537605502051469537299410873354932247130121279788659462103614588994824439717284274701899065701920085016364928293748524518902849114953174284601204782315809531481553099187293087180012389948675694397264225224415178979790228703687837086669583423903994320147538162087034286636945893135722414616424606985600730479380685578243708407228802619474504662888321498115792756090274539760417154878156216828033047880530792998495568737253006619299463573284724629706370134746494725198089694944934731413965063386553693692795396137793215048935215487846333265692793651738398019126635711750139987517693850074507161992455642622141641076013223167822285455909971126700997177799990616651471668026052512890675813624076217225270113884975702791287211379781227230425456937010276925200745630065683655610843534317888725121263150180285718698816883444308401015450196157811965191864536879721015157518366899189500550456099901648455727252142164440320843384044505026017731773899097843666538622659372668409219079331103104320900746741561265403889221853482216134906337415679843511572129171528450363422538466240537638057475349502653471516960054803787709896270343554263991373061179259492849829235188546389109532737486042034358038380249243436517923513081304764187124177800371474498998056069619924746916406578255273313157936196093926942196138990702225044046003942888405785974841770635689711704534751441967445283474654518196513811546973130540119255512049166045578950321206709776923437598760259693941267131630227096413216108084040637151457212790104281225577130550692863852126850338271714505937722243741194845430679925689475517692827046946531994363439631067829561031807776119128305397838944473853755361533582621122566878328701532791322296438154682715042830484990882505943805754235857231273798715701269429018431520215666946593399977050401501898849125667417723359417221411541689420342702601678326198745115540598088425387072013952589106619054673308915006554121419005554597611193922722697532856225125870213109668821228572831145380837905759745588728259307507796510515813579882199960774117392192375655792848298894580606149283043324206388489155537301447817545872237514131061743883978697641626134420791687673513423634659284772646716036746130309308189870359979054302225832609647199671053094931132059767911665636781990659863875889892528303788637075111919390817459388403655648830697354382632957316657902796899411337489506025158770870559378006511731758809965855744357334499973303357999725002840472718365238655128307453399398615474891052138648935799264691118947770760347393377318935042768871015862152333565502106396167536988070459918106156353277607989400272258116307275145694108987582327511901812186071164774048581493308748972761886936173796827210069833920416045237542855770103976591673647294169409108781387354122240961531753941368769148948632770962638809720534370728659207785849190364909344662241631748081182299389129449647221701392342218677802896988070396492531572185907411110429426370182327109533433358555129378702554825952296647372167863193540565821281795238382932088141686150594415557948426703740676374989407026746145267889722355018052783188748892413779743593137817544754670164354838101266691967600113336520675813896643972825020684811392318532622620936528925907394199696882264279517186819269917260303703977095682734029883396404022676078899428140592990968484234941558895991989551155435004603950829480769892259057495003998524269683439528267485968077339252000712702891765144922410650936702181969842646226536959909876505703327514176664042699045577828203558442341168072932755086016148828854970615554647634764386383423332026302138549104544726151986985748262890585338181219554279548972279741886259597829371639862037909457451448844221324192337602628438194709396564963234218113536056628294950034641182471201230011026365243994140933468684847205716179343967527839676767889583364925510184000840774905766782482066891121151933938975060157925596229123543870894349375041819299708016742476856535292212157907372124397232127980833988479275841282125804343373422289682418620916365562133591554630726842244472359658520548048922740311914792732164625212502234884479210471226323922647140836516053187835922271331673521353911798487888359626257592012597104306423581065771191956704327427321381623107651855461876183036337341280179308657744124165544021541401823074469567212553878524945712686288348690195146380697226821460042842941925607982315096078115246852062495867555142824259788131594233873197030255616286394829169622121484013741741820977148024175828930942616797254247450532491986931914451540679527690801597934069322739572468930273193074084193087693881303909616297224369757425164350097863325465824017800789637928268344336266660278989552947304759968800514238048862280044959208139582638187312501433735064570523480637914121950499409825807038740958876517212110853697742704455933582702391516779199205576743352840028910906227094693016568193484288064839790136173571302423019852675002165113067015939160958483413586949551093784844512461258024788771824549343976993348486613975428835329842706140978663366807159351860082301335089968429822461844890176941622953864605856448325857603572607769411066887322702029612924785190496524133564185149110940456421208075692187213583969317978776265231357515850570326236681118288300637678572381062611127820672464829429717196677001719260710582815701243166063135792042551547327742567897155358710880209313043128072207580265651620757664194474989364978214103163656729980127045377698804145290033446870984879640047475278658311980105265987590280907487444943112342454891276420226703681360997910812498465646785413943618275536004042779474369209705146242220810770767993689952649128976453611267908023709635125026263830064593883943263412207437177023278249426680182746826098134193460005845168762051037464049977105022107103214752165076231757041949904298528636827794819192981596775133478655345120709084947024112307514046576246105244585082741203515509102701158192680098921841852226026713934755467848475565179413642703444163649101759788857012024709302547728982514950587115846406300334558770021592977531927812336519728710139983904203070729784831910098403824433784310060755882987940681328103983500645917008358048306865810496611805407796241999031978485130150903069957878875879900741844033390905428696699709550560761970353472731682053951430996294445303926417866008846431741185717269795699285515874103251508010892873792263566615009960105800379829391562743556827997000755646938012883417850178662826606708798595309177390751031226694469022632930276855732356107199404055637979785464530903077584004449101739615516361952902667741949596468975551570650729893899570382374126753214411512748396274591088284274560695388814610739479376234911290720466000244029954715340089646155110152386248101629121811412119517666483560488201423701140559107239927158710003880211778648371207670307158761669038468557378377584263781433301133531026646937239075182315767748688487758694794919802004533990390988205117379196146674742755142773156962103442605096616621148037632799849333871219121142263048952888980237209324651164303656480690460749140405479575846041529467854543117062211495289790160077946151277912928002935986632579013825656092060130711096977329734594851097410719083192689051734985873225410885471716450725993393094692696359894901282877658242884233478202668771697146675527646220620972789386716047807087324373389753886517689387206561228581557766032531680726316587575341101763041435602880107946747928615738252522588805444307193523733186306185452100851276528137727231486122439066825951011904496718351021455068136475934325105442679620137675295892786474634973132805774113448770914086572163760194800889603814867976017735341521971866227874964216682120623631756422230700194416861245181520285037985638704118033487144025674382268332305934472043733366247661512680709826302677148098632883707594810246052571242851843095725251637572352122321372098096338101222738426487150100474136378520731612991254630531145941006993312923259518720187190835904486933466851686784634383285599785226743354764942529193186462091422677150520145597919559446480491575503644747884260750394214396017351820753498675941191046324856006246129529472244045115938754045611921104724856274795538671223520025743184253254838686244803119558486128001458649933031313831133890346475758455615788870612769469857488638421484766657156188242136773262887977189294294417657147560544458415931532524735434462597559976787907901568136143483695352197518012648497935318875404740002591122187025846729069575531179770104930710814844937814844680688352116591329321742254484361403926049999755514126883663127599295757206999103737848433844980330816992744248331243837673198627279590122362767375291069517990980581801821206777240071453514466247445100594758238440882507873146582885591685683078850015193357463352521472553689184884201832591372349137170148546566549867418324052756457315604229519670885557923754025128766176844889861583213677330985679496239947740882949936156151450789119497734470549430500874343207955688207298198570909712889576274015540082640004836024322089459079609504140476522425967468868319138865259612196219885027977951510967534788121751941883592813698175052988355962068533028930334885996322353547191809561753082935578376309216291688068808033618636504468198779417221882983164528614240006857794957805182088048000800160137127419621454633726174591144521202059346810167157614424808320390069429179210106637771188876594614778714431002508392912460906939954431172350548922237905810711148034385814154226466594879260731429936471924390741617983651658912241574203078447599218927441863049373277741673723458070340281690454898269072307012672899128711006301314844742350701553824948638710199242170712006969685808284436463207490901190515172848186081679146960356593996240783286534111360265693794054707511644784554288090772144563703768690649780715890110238288702273848577269380957255463419729042733110236379639286907394261971436094756630149378600038443005541185309317098818211024871289731056349555167178291563884545225527726121310555611738374839076722415250543364951231767498899740722859110777966385804853292531755348574960898287607265229334828427283337986767168836223369579301863196567467610520967933390480500227403725429700173844737699662770381798323348625859714173692029062125366334603483714710895570298002017004961732670174339276642725128825131104708279787234615481880371995824365777199138064098473997489799706753425719008258531352557914766062638415782629939271299408503843009106313101466210928981821240562708984848746625260333621264410218560245680070063085805865025667506694835469122340976361681372991964736297128717373519605586421711921466959228802707710047762414349763899952579922899980303594519070222890230382083029305744488671391482366965367322704074045013280139860996863283964106356607648770758395877276527747840108353896743314103585256266175180112912420099185677509668989073031536721344227539142790273034045031742380543687873555892638606486576114280970994007879078207864005873957471154454311210414466389895372465933767132199943947405406739613895634542868598630932063218129286706507736373365060786696266950589118074362988152631712212123521552395798007343039386176132995481610555334632175382550661629686318963122018688249965015587832954064710252129185877867228796875309505441293377526524092144321229223444045919265469535395696413353856368053380515137322424114709428181839594581044811065591635005136680783452805645636488999968575138351856742583161689492274027985815428159269603841678285222917912661953855043511332847146163150202604702025832055782154476807138206920723379217576692464114455329443878008421740275185130086050909143283045450496852742692681893790023083097166307420151060428976924592529318708326785523492830526022043755512917331894060791510348506132179178261871875493531519687508865094495274199934973891537971013562780508965277147430056324917604013598228911233454334980256407401484636486507175159487076638164721742198346075449201533080371046956593681542513853439667700263768359124603340129805380990530214677696798385637852928889688407180509013412563950490898898935980580041488583399312531187317959696488750602731416226310664617710331462226181313336250655979254226617062023540875525281084499629934172323645420826122197843531933862858583992875437774861973708957535821884546027342422599274413640266252902579758844683323444064766492197219582929221920271248663583047184138347305580777877453110685945038395771773403654208556713940204957010124482637861896302893797465234992608658401591788804686336408993278556891033472505888432229147764215538530515352089870538243801048053223750854529787965437449606528556520996041437176971072076303388303964013320537489034005167185235508107809721288966378283351692130217073004064730058048906847449233172724553967026621749622009658769449507016055763163612592473048870693942944156540960297866403822793980273260279634447030687097219141935525468663541653716974842261508800568375459836467063232680139984421576901043970960268782037361528835572279806563893011871515756175223169995925441156079418378322125964581012227455638347773828919151535859079450487701163736894506799899626114702819364806120897167249846541115425473210130557169868673645101307605464476716124608000416660466903292780397081485930332343161079027455619469561518840057478259420275960069477920700817159490519488064753212463929442569740259963032113982259687114345579196249838628384033303758005262239089565182165620091806972251089651328298278916368784392104442786738418662583348068833825009537423606960172010761445420853680247169996148700705440459728884680857592172824415638870289923973353566634335178375667167908421458761490744697575010261521495395730336634379198396569128365629257414634715411961536017316783988232199503631188624707514317235353703266658396960041667655355179878361127112895896862230662483683118205452734181181992672333106559893174563123860112072383394186467611291487539757002408030951137236462420217625117905598433646800835520604778373171840508025652705803719130737068090709039530265658596988071502936395658193885499396954544687399202926729974029513497967887319411653394697676687275855841744251036531470940444916046184508166965680825883085278471521438502234720970462252394992715840004091980889901002674874131263564106928677708807545586914007320572305421250217944342082686866176822189524889667371037947716843781695148546161922693006979263637761033944946378353040314187553206405751854131313357052349928945735440771739123195322709170879642371759299183980268193722257275670364741442158989526558488295059193767557080326937131006010569394671091023366490672801150282478060526781813186953654274905127781012494618429215641956570706711303923168679125782753109968237314865447573737018957300292693796594857603362305840967161280650049134653017680467532606028522759082764548806341668277273333436961408416962267517913134349909226031500188798722268880960963329380211016408899573444739194587679879769977538998865482217370267081212375261890464780389359409257378298713296415322766872365611088113912086126458248770748502713896718190862576296918616660339234604230457267507693470055968021183528001922999563343736586639171073691974799816321205232221379420316393949857172694143189001184668952165291954652563808948342376096105959327920445069970536739239029837130076730538231732737294419519207596349417101092867547391228987015302948217953960460409197424666158204969031342727090653406400807898367475908076246419055453880151104264314695989254092845709853463949824446638397425880369688646673913112508969383281556613299617329594447919702647477160510890624453644167779265365517447787417151537778401399844356415009361278585347576330843893210018079907965779546059615577572105518586289256042604271660747201919270273800437691017960186100677170298341490374971849237084565988380056313078341103962149464654054920404940609883790768617362916903694894068354936738449350060432466535093863162209311339431928177715858032098988867644474214084248867550343353164116586407052391007596260278861731051920878177478530161889220806758815691710687722337479990663606695333815050027048631339490825878962722736461421100388478686049405630624888671688297415382669591861566432078798026342157763644051795827227587585177174277363198752051923950123378277558858103663450397006701481595665177676955909402054492274636943652647824257131998713420702316562147727734972245610664206237439311196186715863256314614343733213653018851584284468104104139488796626748922906165795247208146720385403191592471365723854687727971917765262340383222631521241134185353982245152307401489602578220279841059247006122903972699877056826951863435316147558245826078710454107754500584299496613913955753430390416615784155718003329292744217340849244877924616030859986588201928161526641859383492032588763989598207382981714623985991900580163550209515464093942099608683956731367833062472697907835021797819006805907646152952213863837016128333453145651983665371610145092304215639506592037547440541010629882100678724266284047149387582056047016089955725959226163343998414860067400010801574248275336514418924928366309160701169495043917287292382343142785640883286717677044785330110297081030722017433478601719294785314710912950400853433090058816130855822827496180865586867599923743780664074233341301271670677534670971994170806856849645278117312093768943831116633521416542784487645427326160459811168231557133070393369052184740695166998432444545148432340884952292060478979147825476928230177561286301015442822558921539330612634683471802612089453878817463615038601658804201176448189192228979969172072375325691868696457412384224183907624874708717600591937042656559579389793439770757491753915663903137085344442382685983776060118888530062589964705813604977031517815069310183684745251555889819253009707716915015325654226166429086321525911004275744531790063986143162798199502809905418129630874799572060890120008615831936052452996791164731351133338620639238398005805064014427696168736293567761161815448300329778377840162173698798376196950707536117699107101147975583624643322974698639671575320115764709145740890577794915476932797504418734818291042683123131602997484432226582307581758622957470308408233561455422881044466221508806275336046236822393446467568147387303839211548003178538056662036228000569993204519931481076539074172795773282654869507495794434374648482412810235906906525424399696046529752754207619786070107639036316633138232286417208647152253984927373510078193172724627375822944084119472980146315336107688218374973704733038047128012829360163440040977170046267216542993866103532371589093424683025222524604571316998857288182571078541272364613482289231131373579378337566348347465084383176425773762088603877136427238467904324104287106692932290343670820057888842029175082861410028846961522062779030649174228279702002863675591827191998656018319908808758979536958923532864943415056535779212485613010092305167220137896061796300396101176808629572431424478670879141317615332326093033833383244978222712847745246796856851095850764362086287473947119001705821384394167078156515351449126114516010444157574831324999438721299784004343980494104876614149089322294911114973056967845329997977418347870345870486013264033331366061907103408089907837997462788406612134360679475485531193310848342464032504316559355564655602334274353223350829397357362736724972043648083653442488234858509079905576483354876578295129043893231679487361753096257640838783521845130997591531027663374180754456569857357674375882076084441426970313704381930218402677126343946117658757530101034759165548441119982882130861105065572672007209578448108339580139525851860962293210214998236030209602920775588575895331059179512385741836842443680303032685482394866609154673624450565928067427999916478457656305689089099264142949843359126650315685391986779464585383036305042342152273343591411538208482317220178460014937083693476578648885901832804574762644583734493364574279644525042527289903638645926463154044097531770625131311364353772789378020981258550522351521567592036004938596621396583776977116778078729696798398183612803690983772558770845723776598494383077765467491915307549475451722583786068590490116038931541315525570773040914125722614317217531699078577360948786253931432859839751123890800191593219596613329293900646216718505314517427509398316108923847131404724529875601814672530457672232562983505050035296322187781370737726825184154256386696923740213399672254614680454290943064668120767593808125559544457948852490616406996516292750935658487232740816586912161046133893802227778447907054513889545569802162267419823559277685705149498670031870917361848652553052681844043645727071138671579943844789659109993475718996903497040319316398470050615747814554582591690560952096488128073440713125770741906179820779754562447349333829466064221337810102210017236710785639006951665145149421051548228797754160951088083377662755430540699725547404847939832317863413862745512547807108123898434190128933979675051220765888832970509986318222003015587776315096843151901067105960207829923886935293392037732728332556551057557009975038373945169145570135716144556792073488976938699205306715454960441975575253390251447402056082935289045504809196514369725179790695715237350960466314444010859026278800107884063181890390724047316744105911457875007548631586014498898325299767870567884712440216111361889699188189101525270676581219767341754511611189771823657339309842208918350477323861212682668530814153668538523432830505702943035006048631907486005954685243533813423886946267113558111502840686359564530006340756482340083952956555060116966068899260248332981797980498492116234340373963186468523182596428930680504784314054173772800484772924844272924511360586047830630833378562291190883670784549741238512448699229318756987323033087773718707970577766175095636465362436162361408196920777050711090567396430430329807349054701841616936288271406671872339810750650709648071319927394832032415209858927899027958609499616997683401926842348490970125887756603339672038077456532932391071045232513408508114429313405899665059284242448033460427528975591245751218209514260624496426738007652568302088431657385991345490359549954719245887423854915892147709281230996993113492121736135669442808521329481672075121166612224040498305944652126211691262092112193146805132666652704013371184721391449351010191990681314087109833404483784262123215079246146853097702562004013589393815146397651003536958638822878436219912229893040135942344589915875562951293260677439419204839245861212238979614147022999752105473417859566083145800134694243863022738728295405525786747244823405968859556471589583228069191832804140602110476149129200233520349205352669917950601760029456315722708984078081347679434793994611692346528963855354264373393741860203014274936287916967007734019642115354574487001799729202072426885794994132531077108640264021635501858628815290367719828988744528275974748373344988838238323999973363363055466510661840525877993425237141050248777013575281407592256318063288250371576472429319215242507075916985773019631932494316944082557555897714620616893443019961840639373080456042154040211033905924121756296021109479593050634415991060301073914766840655501701850721983154342533498953534736165734894897985063190211735802585445986922503996168345053346150496338568340403616936835758922662890156248215154809062880920848172841841890668123423249733009197732032604717496647856824993072321551454694735678935491054775157921375418167657039239110370179912690225255712087550079022457123874926127332337959776481403011371159763592509233648051688326825170736166938109024631167201122191170898248109490618194937853854389460310188542890202908472752287285955738280351292633242501993846755424042024091745634926669861294870641996295497309474997121390647647693693239960266140048274428445485536269989584939651540407371633180421992048291952347551152730525023753355749024203011856915209360037844880540822541859492284385019917791841894482975706480375473962996039092737658034740844115510387713546583271197153398088702698494262704448107447574539452146171583820291702936788679431952978251128970736227805950851300891531846445813061277953725008433833944180196663839798063904628678277857284002485609925153855455286077735361923536616220562030850300016669498356855754112601680948818446153909813016047011588779801186586843134753439933624882976073747469959670952625482779184132761777840497217860821635681773867469740876022640847121011324639143418517635191889387777351689043525498677428779337580059624270267623454651633431551876236915892905463589286648498429233917849966291582543116032993295551645317127030358498833507233599781701633428207362353018523041122649032942909433996334512596328216602197791756734825343320118624288671031281750371695465701368920494523911678842180568653802063097504449265752976775117513581730411255310170134580071715389612237649484752324019968762769023483356702916952872369027312871979296808295024717004527671386935846937280423158265603569561884886751386517259106787025302850358874365764952201075982681118027290691988318940085979295751026949438562430078009177810528416138118882153408231994996201735284382487771397695319786692575553143933180969112297079917822166122892221802427977953921788674588487300387085634341076566063346205649062200418900252222717333752270960665531130653693232815206594618228748765840393495178430047624439381387410618104248054375157494606856912979145324798586315572154257587150079612845779079685660693790163551784403171402517359852100922000607700908815230695935982633470437399747818763104616083845399506729010155043813522936665060787776131912788299526498199706968653675173176931673025131223784368129542689445768353616486645566583378928155853968385804804128249373728959833660315982720168096431474683149038470224497084043143712214132787255024238795455014028962799655051787554502925348881511925381431581292211033980840830215801344045797266063268103074019300710141739673515111302627171422615899520344539258184724510687474753607680839066688938495671897990914807409013820254585796745757417985673426680653888129589428538229266060854368892699561670854672433572636207953988537112983480539670763261889173526731614259998081625965725300006158862533809753208745899385211882730499106105845776529292998054639934842302204365833831169344909250804453518129955828250550823010618507790966904430748725052749403364667156827414332639213405153330553460699349642348726628785776093028199496373842517553656662295105709366669541632921250490376405270533759713711545770593379008498500231543039117683415190575295563419895220048640820086698513928175911154510083571891246548186764959672555072002274313856014652906866976392788628514338222126448271827407659886234213705887994830429038977534511485572679248147277738601492306517485554474161732489225029215429001728370838392920320546502167754817262950702641222779081123350642265981017622259035202350093381400681538809394053028083818717760593648471374767512239696740724141859565801947737077256654219419323288426917681264045424274516142782210478330512430730955008901419607501070654727037095879134021263786083192068667011100035120592264192118936269734753167150310029565498158268146021536726489379521565655219504351388552869542511781673986473334736256066867280086627371942184338136924056693453099889862757334327285954848670595256032999058774069112756908004745725517923603685627167427519690385387197947222707019162681347736800213800022193430827074753790902336960309326680679891377144376580283135712552418161410155207927283802139289647381680615638170248813155740657827024760827956821741965470523033078091483868840727449062409550829894156171202640236943756151176066856751956749585186611156027355058511874233898572900305659644814710303935287382305934098930104780645109072840487818160550378259238619376488206178906450935076264578359554587363145090000642793636634051967317094183543783174116834359007411158066031441712783878241980386720922826270943003734270748773736500518491793305924570354463368068058783307328260181275856284014790859551030100163595889413379279799419791298412608931651957496582542044159146721616885309922743279314994049412051561925402531990800197934619690724427913935866157004536855982170842431084120502909293284921612529424131144652297541996956558900228002220000372032511314913281435518353109456282877208210271962700398738496101990215971652308287559023267125713098227566948188707804534432399717109835499813031499744890849963200498629658852228055116764184259434138258277593541808553590379110948176657679889247575695948748241349563279271154713370462361285902906289953265704931909999702360721210537005168258300172121134365346262994595095917041667723896193589178621875960540061259749777650586448340327384865528428291492982047509074734329009636116072025983397192597129009330254415570180279487325739829916640224371580538451081893369978671073333735397954862511693726028684935513063149594321068664402522034486420191065688259079612990056905959313585387294367297084950950491306145502213116037262266502835684194706770410220617729006538788098013214084087512921642886557581707979851250828123747789598197141352465117552125265115440999044235602758112020341266786750798051217389832744446660160061632119411002145951597703406163100646285666696116748509958682142930445896134175601108490950936726238461734188508869697962444069463235124127068498722411060181875283663340002846162992048374406178033421775174529563696123792476009503993294533886613331994221336442552312023990577976667271733364119182618416881835704933710509296390434390723832910123857317284996986219303635054810306495209789899802052234820369939946096755208783411676263742700441074640186274852372407444639280422027863289548212757670695716243024552361079478605640922053130639266270555979923876875289724374152695752060632016327472916831220998872938371835664531097564777399663021760473953775075043461030887622295912514538569827781105943792459183707639934110741833286348124050803461478972729877804031509360206373844556779281446491987775810876162579885739368159901694952875966962356719113824639186353101106476882586575411341019715047191541202977623549951020293063917187510989735502000075785319809515338525651625088612253380431656327842801212662674151847324568607386933830645823571828172045326712208356276500942875665420377649955756998183222273617570288745918094079967226504961383315790425179754832213232878449334342701545690688394201233242038383619564257381192298096444936027632359368786960147283718005449864749668108797664731603933045350674510035698450688011029496839006552181305290612565938487969133906999041975842866040869265699973499911061476003081866698729810436073215185363581268827930414706497332954061839701237801918067052422133572923508699418865808974343135892867148789054126052350047589871564777459676766915641465417253826472784365817150932516604295663157039031930471566249253494202869634495556751669043618054186970336407084464562207136112328156357227525111566146687614774513994070545607746717985933122544848101233200615542250098935520283205252285707626962516526763135023871416416744411323428116905434979158148749433953262193561984718589061655821528657425250160774660368813988070585269639689335526823325046463351525278651020246372955642981313267269059069569133106507838615546972755435045117712776706957605702809971593571248864188612719303268606595813652018557280039965702079205317474213981851782009299860989515714534768744325383177972018061413961176854672797570582042408267264252243292105308181190354223961481302510723437439228870486624133790873970697009063863063720965822920096645845476419093784847875768035898222974839017798274292504202399279412713419094866854329548544172498990047528603887347796206609252446717895140950433489818889146770541772471321932500329930659063045232705597137269988157168309236619925394094840736048065095919304934336026767194576089038128559039157736047772603814457519525726954130368107601761469527081221104600134349940650539846777728607152752453509730361022034946643648807679362733261518079182593729217443276898631826747590256468352823178548454697320426110999146133118470502412664860860391207979330743587826533422749100141941984852978547648707308467711519418797239946830109733883874507946972189440847908556089611339837392253861477852696943184033675289780875457442226997148001062983967749623477224562859059278599558154259603961879399308027718688769596970257372414623451224016542544849712549329995766834822052202906797020190862271481069704742275836085263343835064984591917895717693650186317674041032289538970542996844374552198369675221284435859992728874095665072836542421013115315988375599991580709262051523084099397081111596783446337538501520036129847237478415153125598547233881612549871839998114443734613216427181892396047663752516514958534834313291884779046354636606249074521014214083425598667074461740721982072731612912977843054204109488546304990504735201429163539449533489687705801831388262658276319767461471729936085444687755206985094858035029945917479072019364800536178451791805700793786692441728909029710388614891995215133552374377489959081936582548931988843433711307198861101571228299384857080138652481655973735419246151242109407375747341013537324907427793618395537969673624535291289237111157954123580586283305878937643767901519780226122232214089217167795132324423196127236169268123447431504055951999117689862343589800976529537816021862678504511984696687627101172676517638639826596944283783053627565379397481360043231135872969875564210990937714122048605869170238991923767489602178993885168962711173934201887078289111733851161531265365599287188199039666621851564795637568481724874764649724835172316917864190050375910587256719664507567739929346889248144022339076314657694664293476601746813345478948331655409276327146462182816481931473171787301436283062843512774804011283656895011479034705257273941440190798872460464117561862365524487793914457537202468168052542766229641887898910336061869064770210168151949124384897737291377328452521460698886722191530239886382957717229101758900348495663896219356644526679396262264448616511655242843538180460071382021880020318151972240012826819776352565318399400857487330796655125696815520415249954077941431413311001580069722987780335480314563931362086570880900003616000203165683533769296061007723426244489012962016670316801212381170002577869466487172057873957127499457941235508966845103311896415262838518541595043532913152543608499317449178827847694866553360105978482429484568011847760978388715333496085284361210292338023548016931362502759130202729488149120927513194954390095414197873938973553074949866940497016748942885880434118806932643980008785395809207250443222912611747535828879863539659002997898454863447344741533270781985132605616826411976452048325760806853639826334905827631613476335691795798735045866300411711303729670007062322075506954747438714727096933821489502399355546099596856367817614795189455451347156024458045259573232507182208728089149927401796063949251242483783697499707243155496237790522069859193407279532958327622310172783767065753681792585107555107091001420248784565556922569353440493266504184122893655607451353196835808312499422546549366023588196695135458243884984627563880581697488871579716931534482422105875170491005604758593322257984569459217668435333274635656909459138482946343360888581635945614486662770734139736628593669370303537089168364030087101471079917863798269856179642443274952942315325543986010343187535013237065410189390418300759845878783452140434597879657362237441080850695656393017764304025539097193867951337504926785522838277671546624290915646717092731323383085555807664443520421300524028423583985292228927811403289545900993389749362527384904362203048074199810189866485141675570534436129815892896407720992101105689792438436953795565911856197699912602768864877994593379594741086480611162010994247702530802947559223307869820999772679334601937894520034220148062685689907412992004369322356867350327799093664361606658713841925890448512411025385170689301508676941089764738657286231542062303544972238489909409462184522658131028209124301518450141021951757015853020716428647802493785498134343124003544787833524128132826844456271982071457155260636732385527210675638094551307596864416382615548451496056529722531185006428973065757681405570658020060465954635210324588574228069407761935023607701197133868474640036105744237199200170435219288882892666432306554786663513280708703259582085166618189688492639778816847391039155931866427441754944904985716020852842025079694097435181627248173608324397834705598300171038205174061682223038765443337959991124335186381337300873705222299273344819965403524233706539839020853928616065916818102524583438239947237261275413186284947218022044603085241297454515552149221592703308436152463681728546679919403698135532934335604316726828414800858194723754849942290288613132675120727592873958372310036704920807906068467348824430063152023069646006244223225533560195201544594656375054457376779426310302682029905152860406690141398160210310334097426031927907642485968481646760893382591293406329861481322041156857807608461311576658417649915928824607807494720651482491690693978166016083166816722278156600887175727584417391519498711213880317079119260227222676949799267291998448069214765612558796024881768351630104580335655671073030953148067406985653715159372923389664827293281646998316161834664764986827903693695469280262313856196091752637280127278263842802652650907692977234617157610730227051990286553878767348406671407776039699313288566957401970677548034395950940086076651954210676146406052508691712291842322130291089124077936926691888787795610433744615678424589088512565558796256263372432585547495789274878246777249360139018676008571039296489240767348031542417755267532757119907212362368273687656049339658899814804101791110950038053052654902742698436278851859532403845936813493481843893248855700771355908770925581537718206424207411058226234408129389526310150966317384433425135963256287727367945596925782701146224545793721156927859912354648696314569772940874435197118685634681428796020274644177170405371738200423870198454866363439446113581283843114064720284512106683343883452519561907803141395080456127645433765240686762313875006915036720579947203217375297562790756349695937602535854066519403329984334702282011850949576713328371011503941430611494518516298840194690094679840734994107544580186793757307740568706895177714647553980343408709393996986239922267953427840783475398594077007317043561692544340724912651193670381264104223291589026359370365279416728528515683566107888076396651729942854152534885762687444401683896326321111278478618298703619879120413648473312043275894843431603569011702922392668575070470766268116359243560039594907577905996088168478611134907918586964450111487300185322367258845233508122728124685399991283262063903563731748834781793133510366475524323734903038842519294855168519883603948292758632690173708027323158566036369692101282720638752807499641858017720158957739488433518312423962258104042811160921724605620140729901056453804266300583594117358971573656104626712641446926641661686176943251537971663823342803047995947278545977562991081674345729214191401890177541961943029205936313709063309900747686325230788712824871956721734714460653024966836681509953663275358262625288669971627484907781082826648376909722561489858213568751260945192358053732076848081489749289067649342826088149775267986030264577097653351090073309422402354580869691575205633467746681397263770406935129706822877607465904654295367806443844182467405559355556393384256377723956685111030997820666918850296542347087535545948756524422173719424857531527424891751087772217695493137969171635276281158444445534083195615920606250581355570991301575568941527460245467280934084628283611281410196748154768854706572438041125849112563462930741455287115797152645947733434022702865621259191803890167325962753971600270534258204316705949075831040312771882400071210156786836025238363705938706036662971546300764950016186256780673095333098521485535908772419623919729729201275017092897723502905121099810407198039957426399041575423414561773656872876648059967347613763572383011757621412934534752825430423131172572999870220117674148428033432270330566530393295882614089477669512141057201720655007149656544413336362152230923377532640680175613011068052083975149167379256611405710848501157046739535798187163239761081549594957546599466503440836965072265254446430519508566148098712236843367892552233676175045036098081751060007522782944619317112691939902420420928817694623972263684219518029425091523543124650458629251263194136833988203692420704010750765311948073009942856108206885328326372549737792665883855539770047870342067368511361664257500970543428312061047976260308339242722784507197547149545455272165410714722252125376130961971607985184841625367482352081658431736672798595907270980237023873215543402452872502185771185913898258252807867780736570284986125904835614766767970993181452283047190002424897558924708918080711717347940390874738834298715729819602401984773093575774021271751116844999525989583887447233205264779976394128774951041212178702986413381009928413268834567328334305162725326093069097806439620990421835919416384337488559396902971527039296938387913802902022727368248039239019045317330558489325706950812267168676950110841187292386430166894612855023826217174078126977957501686171781396680003761409574596610100712994992873700469753304172794656786131006372475314747265169227927229126651112829720025666776948969330171229495398416059035320058342436400708661239463324761183014357696551702944253536784550399109061866217472278149159753514502552316315186557764924755560452724582202702361260186897850263863723322367719194156036939133218591490599549400632598230229711351559605954592182272568199872445654657516838146763638581866768311511823226135057826218711847375469231138812422888149148524450803576014770442391108382442647871840434241711426053711598510480839984759014937662980407819662550508682385758349315264725653587818989428062942370071875551579852812071779427311221957234914453717640248837315134635438936719101332079239275795039336669328071112621330502140344796557692912545297880229355948353405310179353137888305560772398135974220999520087692229111724747192587922428557232863832327820884937930018712004012999380264199373265946087124629457179962803526263513007960014655879775206050968963733737517050433065304333467781010289486214176910470795899388639707403445668396213732599774320320324638644849514413527933293545128693798972370055966585149959220998040933546260048981777175646352307839714626466592106989580626550687315911538168692180309123064013598653221013879834072100647743683739819313379905742828464447181966522050894990282231734205488941932844771681269975847907689608870560929314185884885721271573735877657090969626620602274821098782584056334251000334793142363140557869521995208527861133636343094165434844045460474026389610468796300058479475987701908162665470741707613120236138069200726086890485753890590166318183212546203365687686622092721694754937004017935145353306409397851229651681116685911126946721886173966650781312154135353986449213443513691068886066574980683050201087497177062455676407493106240175330649890768618014285094125263524881056631691593555565035572415719006229970014013917112063828903377786189075321615526026200963509318456243127783849302804641560325750172766035996032913608179178682402075333465753122791063233926686570493611562374825212054264573184831528092320896868220163663789812575117689080303848239756689820310185882975011753060171304514593382472472117976416928359716732873140253790560550097344851876849225415426081948573841681723117493920432500292988730202905954839643948057809176252392149831639106029806296026220996986356605159992978854182771101956149919899890872059332334773517612262329236791846634785802609862180293052427529498652388780676705465411632982087391865970457312218509246306610696400589106156543273638878209096700205769510778762517553205516953898735646607867254922460188021578917935574206856581066591127938493679185689524876182230398880476828537517093431740574408730532057624865461248118257613808665259429514250975800993219164497530614528955837299342987905835099446561910872857890870264679110745797913611928605020703306598215818725392762341252526394329149349556007782215197473135960059366903282998247353198085000061021245347398166141280336345009981884581731907918778143648684610393225273826347922405742032238490262623741930747545209924017391297257638900807429442973981919213317319247663876716545070245955487239382609389358230019193713663443616972086814957825594719229994550377021124720359837140296253317871282004308199794264198682172197102667418099999886536383465541338760421608150273398433990872792662981953000562134055168056816145417684670578947119653735702271032856232451552235569939831577874947056802049745050564083721518418929824939951209842633972300400771452520060663771459406041799415165025031953142661613169389021828672431685801105095818436823927903614495449834730802418584998849545780247287104802355487601378247960728608933511719812559439556197797627534909654051048783793529834698186533146484744646143260003568392396273150169198614192361748459863919091138146318731106701615305985996730007527211389854879086591782932781009972190212875203299009396856022665216672891128287681985574780913539207852560907915413072472589851462149452063317685970893568352658964373060498850342651852483242474990768751620060613010281917039562666163418180512375562319340027084994398180340640266118851092168732107482750153214546022948408407003721431235838325864456801286090038173914497365094604666419473157286166611499012058858241305317241782267584712401164188742025399620705158788382018084750119207741048614006119564241571893586390331425023420744177759827495196306949484089452322147874376381180843045806756240338187620390042895229534364780604189347975565650073677331925113738113522121767017831435581199086974449212105758628925047424743452436754136404894024637118015121656292662824963459974061896418170092398614465470004795496567558646586131677309140556815977295066246376867180067651908434778145333094435271896754820722306005740783072589131146233453399918460566537998137137406145121245350444346530150397202186244516010566269100544017864246083870811512001653858476081340400471972902224397599387895121817570341284371815603967069162245964829014241891496934456325514357906561382937978627903426022061736912739941448147924476335283283752415688741036095999514682997055899618430995069336534358442182540633893997544189858188494495567650265252853243275992251842016617796998791677424099226505818905769741379380497974772170650284271618468165917622246481418712265640361771938422566413592074528713754170255430332014419433195282672582272781186514911556067401271815634235390793583620958318974290546528703019121645231772511214527647548073684694485840699716860663882234632887623182525831813206651627939596567195871463857033211205920567792310777360024883343001065512879791872755703333577255898544201887404285376416512260629995047087710483261727337762451731133633008643504082603245208327297501932459801215251224204052847086882767185720631113007763669229869870037416828265169493270577216545169207120503791381112271910944787669847590648532318657025460590319849880374003512112376247285813144624217188436201383911772245908579625486083762914587857734972655367076033077920800389595572758944553727892346390294165754817273603789657346866578785523932966281886962978939183715839156594420392337964392092933702485589187156703203717199839950730314085533535823411224162383574617567750236190725372651435206554663166783362546745025745143975503964106293283789356103789783396003790714781395578067850256356127474322876804673930891662056379973308440519856218971478349544125241629283797539313399796700321158147131818011629933079820029359648202182914298390016242961705267724769875592112485380517844758636841476109148746858720430118880293533760922129500257831820602172713579303776655103590611082647977216801689478184343995369109222742898716566443854077200335294994406444182903950261263543694205201152700244308155176097027406679335455689882948326318514430631767452993579538783467430824548989144361078200517000519885065301381004566028089488866410279438609043830060644359451807603907654959135562318269865332214420759318354976767330905948836039973133157435911778659779917975782466206546214327651719712801904494362817373190768758743074457077320981641792840443106292927079080142176364338968163495164231145609784331213817056798749960961213532132302801294111064990745849406241209364794287202435569762180758959058365805001830735049684208539643611539741802661470435038239785417002058002772290006048116965095245594743579537285949805395718001907846511426672630177529851977959847888825808438567950429360931597267667571400504627849325087868059284072611029718827808342134379070714513736027503371188560721820402930737174641053458427994259617456355587862279680195454190650889618660822224149526502213739888274873241144437504031990503952478315330958412205453445751241040696339835025593851189066149605023214631629794124797165716558675905609184555062527644184255079497620685511390137974716195719751067702415002229271882636525696257560425068386851087898996071363578708644653393876017286754382388698935590832841217807163524810975272146410923013193643855692770320887399226790314173872789962737915707063904316677307404300684848458465082044484117349460473182214597772560685346589869729418468911430905980328387194804210659751044747745557357730753684667871517228223988082131791120135859853486230383336397013039610003061007885913467802714250606754843924799181031800043977535643724061719874926496229956251395481128661598026467701162961272084729332500423874353879349963965848294636295606840457683894385635157551420206851707808856518441267353667824832135699185967328019946802473621452211120392651159943471228522406213508531966863794480099881236345813368610673784195127043453556767809293427123287126997157778206876578847734868649982880113078504345946611141283256438634220544869735843043122493221817867377523666434555300180354197353071723442248044209410595343265446064623275321523563269842850132323282074878234008524007607305381161125130823428146469116510642950009569763674066936853505388825589369685664587142966463070400349562676873103821877164839490616840519610013254296408727257863959228615673118712788532245072932957998087425285878460161872878665549444813653117198032698303079148310848105477440089736379756963676804677371012650003054461307363960056633432335846268617439444398777080945029651553969870413375434883196851221408889546676723405318578865904957810468751655012748339198903422737762649051298902294037386725209822847780228273402018737564429712226885308360963417761067922639672518997001839424103696485710537241125798894725917504545952904772008260511568051279705443465352907304169884816313169194800841919488127763622999242600898871744237942579438709445097048944505510815438513796523423520418574961119452928366808420032478100870042952327782741250325645497726937894245706369245541304940397552040133334482702129627433841544380096284964152116050141403038764419680134318593580612896759542727821315173577406573127891013756269660033075510165498180227218672141626008052705997782165270988092337714724113610235836116911833365746314572296445765391094368532711353446195688803522747136972252829974960223257125380039281423268992096604469604061063720740328344808488199042736559225587421804141669684031441779272797195086984128858197602439819529048213929736398724998770991471971353001362657319893950144535707979928863158050533667530411720351626077659621207101483228323620600306729366921164829398289260341794724379869995559501723627730389407261911365537293684149072692179771673649647049903453975149351960463932127213147217342959203276346842195930532259021124472230324703726799433469946469219538598535374619467849954800489098721246031080719041029749187924421371921324877165950857930155772066585079510586263338729870919485681279489303607747082900619312299655011294061579101598730406534553251354041446224619907717350732556995789768559096882267721347070877185604862286106059493606683763819173675287085948613044685560250481647542330024900211573167255857785339092567096017936427619527357420582790831555567287879937171415035143969120657602361520980465161687218198930269216536835136850734123468047579688262778264173497738444872919045200377073971419409154764235358054278693279908465711419443641171039329464763063832269356135500333830420152523867409267004348440806429082454936923766961387271017566165380397835489898540456187212616804056204899306285120699271977494130032643862091804653895545858199126800394409876637388532520670073364567117646998489052533764997015252637118403602079680942792971727101899857343227278969026967252796087382587895590426822604929709356322895209532006142531863987096752029265782200202724345129776078076230625036138841345409492722529745480502854173424714199864475638614890650257863228272771146487155615718315647138158683818445269087206018416001564265720770137109501877454817436715414213914210959382442387489198131669746697578431139146145633961001951299365556775190015821092441369401032095010623299878450640127176444778200377847470342967917362813471125498924475519863145718905341940293673132535066069404560883237143651765033974305617167362942661912361952481103952390523037998494746892968481299224940159419634007251273105892031234824150778460756822309575643703147997551932716315848899238678080742342584180427217087326875122571107012334331655958179056025618237967186172875099467716476493286271593977543329923917476539808104401748563942007579320507768891995898730711611592428809974116347277920356262336055235716735520789580306354149459284231344166930232698510700286884780852025729376499768841211267226383593299155492464406462644396946518991664667833577275159828953111562297885819196461646752124667474333095686962544737114044878921620452259662690804609368039939415909637340484711532617502796872753728439086917535249990628478092252330685122064695778445974999082113098817966737850760603227237100532916697162999312805813314306568354581141332748221402831591252390478596284622643722974461693456348459652946382547711888733480084505360452579897882648695710100689632993312206472163523131416544559185693005698126880768645130549151602756543594530034793909663405152846298219629020638493796764956878329443573144033207309414890307068586333790184250070703503889194318310562923839405070524843897273617383165887957782238963746995761068869278470627969846679397879582432846455595696384834405690970455770566419241829441754716634755062389654473872952804432407770021584804980839266499810973127202845695697399343423932866203611884835601202943287210792375218648621265501518641722529192071332453302872377972551893788581341368277457956744436871414163278834675784173548776608322126290574543437620367449982000997634010322812138482095418907388780574468020276606324305173237343975780775095131987414812926244132512219815275379572510317092272024563239578008742800020308562026387340871997700566368315131639283226118509643361287902555233038778760600399636318294842081073160080523650764162847972334140897683720448065475030705189896936576284463007256826231268032728755664063603066852043032426115002644331693808824323434189968497612014336709341834740639200674170155226359652678904077999645479853881496086210324422898593505702756017401002932458940619614706795756776395381081200380815901281853127576192300530291745271815213859600998597244488709770918046603650774492818990292764234642859239259106398611641710214217812910007201280296845216598293556590409998008589577576070646202146786369254720324809123337297483730690217580946057676032893771546477865670702270330207157158130212374930553453606335550487705746615764714468497402943298891781507092678674584819375340991528115387113302326949192186101359734313684848882167865644917065922281738457300150253983379695529163481214578676574505584847656008864911859818826518498997418803800116550810125054405180945874327011550785194325257754470011168088204462939885990755348901860783773501496239562222762726943983790297606273129456639521068666017340235702380629090612861605853656582596189966715178963614495134992848034704461170747044882097543556472507855982283199008464492444149228501706146991072574374605125971528902839477731904939287196723550837354010505402562891984387182414555209706096919390614276199670043653092928883966648820282171376098679039344259989430244073380727531885870744666198202331189202670981941674747018926223050536511473520969086786081898038265114491966606546656208020775333581091057411486727567404328858385996724254469340442571569010581181588375060405833735583903233499612274014625441091297688792174451264232128645358315464429172173153936003978543163750342636605013856902021301886991322002762030169445136539944272654808132323496185364133400542823199039955736702664399833242486786473668434924187413606522080983557562619680059731546296085632680928966764130298328594054605678465635577623194818494114294411933238764638459463493021188566813114052892633927595406742259570791009423435075911017666798987517409255308876704702020184719254352705256742838670924168303732552001274077630670420121875568896619627544795812936644374365399850514049012512430426126395388196459612547449908971534967906194457435321036379483863956509572334197655407737028382123081246653224491855210364149902483546954068728478743751493185858468090917235996957955101470842184201057429598343178315940101012805748734748678915697569854500141862043005030771605170664240930739702256553371199275450682517226344936553945675229991972650684806832575997896490063041951680316793495770773289092881828702470906426565393745451943823158813285931552154705607051704736420204087423712371915340495867204273882764274236411640380276021965591293576841616197030911200388020878541509471216523660241086372569657604642703470394756578595692430569803970210082104447624571308999943422749012586392636979292852868034510071914258831396218014640311440279654557721646766390727407270401160557145348418872121058647124548534575356458872991092296468919425650794677978836143507777525789075716136399226759878859242833748359772187120218789888415145426344329407588937495455845664733922108962121879916080430423176852820903209357794713871560356209872554289718970579608847410500924292881314931216109744923687565576079147886192626446194361928917604094821348185770489282977624934410833420981133406535009340669247780594896464292006631372422477530463568232268981913510546930093488054547216612927272923278380234183693223088856685956736010997852421906358293895518382408145012716515981137779797116993130700081888511300912725316630426409684064704621906767270470671472940469882223122356424585040203687047298215853970553795556529735616385213846656895495862193456432973397772744278839769931942427330952560777145171063514055240987450368867152708566715480191990521335258984246424754468010570144560151095736966940368175713315529977842860034735047260031014121457363412570378450549509629539047610041478509891314471621357763432675447080537863688455035255573207845100366855560479956897728102057766566945615943014703000958885918652556716789668359566390226357311676332592353411964173046600511963384915342519656993412465025609000682150863129314204560633500728609489589400783810540751839327144662781885076237209367558404907320141661499263825862573453470901910595059661594986323290754743562457206013111642319217192560212125565897983843994154652478906279904128771190344181700798026499789665499131340857377689153055496218247579006777143033737949562931525586811671609296086177976341421858560928000000770080729187308371156015483549699151765858490707041623887355124048445893304450979734450004412747800351759941307673958821038067086348074864750944815053620497795551645873629175312050099273848150869581505395593487071292295587835814035418651582357490183815690694995824162533858373595229326983389075882514568620435703975112752510497675541492528882160219062429831793920717151393341539681657771080610819461807196047104352314601150564908856748261082731873622686147316990421308104540745540080467270464221696123510326066233424174175058449209825552203318560720623435568087396723602829229310038183451021998231809063075683513054976802068618793922602098724349451571976860673909685380936750632730713895023674012552316602882672570307570133514252713846973857883923346153938460517676995990953083494737073369310941786366279172629129690333906003798158187753130014607701992809625976171001258684019541913595101521483900679369179817205227823799253314531525544078712260290336771524388922770552554876527827216102052671752699120892614791297987412888439555844492173387054900191469109820076068872262147191054580779454831107270414875429079406745701379510854968346066511738125234006510610214254382135686790626236472266415309521660471834913615946687283798676329154199941851162348968340876178334298792669277315051353581483368279523908078355263647155930626150291083701137936344464817995634479182693621085148472562568783479796006448958774166067782097703348532411474352497889463999835862962987634313034436332872329361826501265759361785211892066635102759841767359472373261960281295633065510636985179018661315054262571208352516986474964867145367897321540273964311248630509931961136486207892458977909271477813476028064815151743407788783734198272707303495185527656931462297858351602852907160726344747852849768768090993581067130194051339621185792524598913762716552321147134300282304145950579049782573388291476809235216139470790175675428320234281020319434861621808081557879715364784447332058270056610019696504331160293992774980484365505008645562424912292017061743417600194994127748009715035550327965219489248631170579793863478740825127275712187826191781843103887825777910176536334389646104605934838475161034791694867929681691887585857998211994009295630292498504913960301570086866703785781503269324308512165535682207232965953612735474378409506431192826616990829684432317586720547335263057164388644196001572741070040474654158571305788452789096770500174864548124571461121550413571758871459617984935446467626554486847168378298111686829759132386716803949187882147402816401438133442798346088393102514354251134959358666245914633173614889299092647231015361651356885683351905460285591533543694437454671669183414693056484384984306140315963944856195637933134636273491323794886268540098514478785840974209643871030968544552253563334629889917709459767107564516412085272344020933237658469798924685540819433680130774905461875251453611838795749971396922833103226241288498726615427603676765625886841252666860361722141844483470429035196012342698303224697178827243841997683328864005965093307493647336372724707054111494878277249771637355217575615876408696067256606235847444605690796046873808238153501269978906076910778800208656425998436315710380447469894172319235963158709958936097685550390406631924059758569450960500548529265693895453135813668111425123951313711371629095765186000813971607222059083936854681387034063708533554482022904561803551764807247371912344441989382766008398727903043844901411263836385252125178471561552898496740373123287675197557317948943014780896052516578549108241310211295860684651377185909117630234523812883615305836898127135594310747988610046774914255016679071722389863325689012643995096051645607388550894565135184517510194656805656557314971331443507708146417830076334842506001111446756464836495843533749615085703362147167104458493845034885925630720723179355229252954714210018213973310775170392867729384327479755550434245084019185147737341275273778020876261394878682328308858109859241094820731741894204570293465459408066919960657123231362858370700154591416231263242709101255386506921453231707965443242006576236127868584346482947996619110951300429118426155864096822173042441737328042331475720594078136802333840783433569299376397872979542920136596272849211488844159113843006350591400143780772748357944598717787240108830456707238060524371098740530187031077170496027740578312476738855312364853230734196763029523800792153886884950457940714965239845533521357964823384229320411606971729385837656636555461823571597552310514016470513021308877250676096822779470746230093238649582368908139340675841916593204842112743302651907479126393786015067333724627071462515950534169499839367421532371624231769240021704520313908898010900097624521113855787040939229921546905286449100846791520659908463841668042479422721106948868531641754536954948680060599552168701179221150798005205751532673020121589213518200102382167400140128874055913694377699959629989597722797989880328363466160867596086740878929677362998306221561082967458509208588409728438838423658382801303217337369732715047891258352548568491910506228526418707463599905451770794233537753541722048651225920629886224161457420718935335426849214625588044219807333358874411060990587888970395297258235148258035420077189726060301265125593980951270181502991883312060321376138356361672346273817403035436473620128015270045633617550133365294319531006783999766989296366745683598977230974978916425356108034566158282615807894066719137121506108483410142739814166721623673599597998416053499645311596360045968102446781327688146991111403305538962436288870828985557170765647834590685099879461521537260332084277615822287393110419182645741923611278872970141642668032679490569256148273616710451644737976400314264703345082390900844293231806515892725034173882308104589530208340301744807421787659095506200805037011075360658614129611078564748985771574300381081532489350384244109209226841594982871389214406291079163814249073521381800737953317978968597852180560143064510391875065578689020539269207680908722821280692279800681484285733695133219673687585467701760921400611832662229901217286814359116077854116323555105334650071586677260040669768353200293363196464048411315130910909692481059868428832860141581178403908303199609172018138214838332790989177065901162192918587726732432559682457567502191224649613708015524211696039551598902939252329561658937345190262942666774855189982981912261132794949320127580274856330124575877090073655605542009556696145780239910752578813053058369739601003994149180214986044163217609438225161918007178539422029890353292277348913591275100863053176749190381888014612724465870707925611662846587847807063533910269844219471396994369367269921647688149662478469210804847707561814706523598196905886187658216211955172412048435789849677105659666651311242568143875224846685433448311773191863510349251560201070107226547208121570863848826695127155425483263179898250702890508974186878204870320990651431044382385211556833038843815460500454586516008971597273106030448097820129340176973605783132754172463713705348187219251495885677551709213675333847575836713516368392420538691471354389920553047485995479853942061440866760452365645154509305349759021349527030154803879146050399565812087184382421164742280583041466098415878537292095002142472420784166210350060956844448863098111663493329558775644625515638854296625683299401510137254863894545606483055154003267746134218731194157568990981219482636575160824084040177098755241269330605935297904826152767105001131171782249022230521934223870636756038342006529564538508631878977793396217182948771014351125508551015341623755051823575591404154395324032323815013058632497724847106619213293884531073019303056749761521313935425915045372345981616745984803471750431559121936386448214423650951330946190029565877802985182477902631709943817693073361336597155618723194475258796382701547312099175549011719168561736032326427333033701777995434873524125887502530869370615834787756875677434871668573184446161954094680014728847567015875858574238657509829549028074346476244873003740115688597801177765356295642897848597265063522034214707440512928409527796131757450372631216107295922124743620702613693835700882905892649807740502242665900643531440000034629863359634706436972094450202431303135598276571592780156946315994954453358195638644265025234069471221035826001130674682664944173127160749527770005036872280008189133383461448805883570240403983222788435893379764172786429893697226600145069996000893733623228685347629632426248164864458623222960560798179828839912070629579555690575084839702200855356635269863563045218590990420098695248605662779131942056922294034433697273701501467626796436451098943550276984901332323044266265500483503880882708373422196169260206854438758045186688639202274736280612566906154504379147728675396132844434838731429771118252552812507655456722654420155267485819930656351731957155736496257236637160371774276499483549011013046911322021780921818564378837262810552941579925924467743809821957319971988649177108230254339149953801523952429024288120987752604795588320240580788775424318225835690787795482828011211702504815675299447411637527127096387951336050725221717013716379757115150340561225858911291355667737111992161195305206660609006830233765038773440490937895320931868789110190067787914371335777090312411272266484332099746273907836038359641228057438789556773234505984727521224761876505122747385974858708202674291190242477068717297858418975489111009096551269498552135753997342282835483825469412156515102534699308660967500805809359655957209879462688641132062896863566443862021000768308728978818001472502565446391909772625915883527121535192012382429117267718878252270737991520302305519767645967586964627019306343039485721882399035616022479289292475127319568662843476844208229059294874868671138936035405927008217639691963479742429336900733081121213034293024883956142472124032822956424876797280623599145118761289039973100234030579155972373743279662101453165064968007765785849795540715837237354128434240155003849107423912581932966568700466043340939318580853801370851913135484654510503831840964040129934685685436854672113880338870258507894409918937276866451635407431515276306839982565588087842913347571103991303455212083960956400215733131617566707476651945878958534078361821201734650050855010959765547773509885916269260189334524105072228323880899355586463191295778803737982811577508442427927503218168907641996615458146800849388422813026994296119252539688792693974126505518103677379948447363866534696830272454019609021183697609274548287373833045433770192773640067662545289287967928613200606304285823985590438855928182167085800980748944348788397451471162003799664415053179673504834420382783663634589100360612746512552108456107233062387056461372675649074719086748572244747400815161755432071146395550446254676666755113191004736668305178420326738071620832242686313536397720388275888397380807589826186458236107930131840701199684773810252372550166166617854988455171419838747659413541473962030771844127758087539147026639669983054872731250220693573363862298659116110910994776284257163081640267860183605942276952211712909189707002111317493152797270125730053477542911482418402177270386370906084368437433103802321480359400097232529684686280567699157602727051376543531024686435756972727434100175148189372434155113429037381803566235335453407148994568111898927587649308281330471916456524681063383495057863175692986654757778459015600207909007587991502129652489141135283410566468033994880300940527881572519432149929394520877662014352297840715034585964921696364153156985051256778810049683717912368214299244361246401474407469406048617645747186891844102074465377931235177807478323736831119029572530996811511198923388804789717520451342743061039762305887094015692783865840381178733734794220728445063387409405297830935177836557027269616809974721603177513327400720381375195155051857407692411776484994636907651343087534737046959612148832617713181679596612628802161624068883184141321544719491556789144470757543900982005611789954099027510373551290303289627244082326157607437898510463480991524554544745756304777322282940082240470309973764437967328851091367936147902933261012760662084712648412650419316071343800803915986259060993322075590567491392645609126347172837741224427470897417410798153288553189245497402448516116928056649729407260024818645401297570710277618317473441760026545242670903608733962582481527834336135939308022023965468986981727059245539556316424198543643738373293237518784958902903317948611078844675520200903013359854609008820030790510233330992869868786305554621859639105728669187712617427448519864965892679181673506994055462459131907923770130695619506647271873968884181585263009401976626357273643464307350457392243552540037184620177110034851076299658205100623440101356103677146236391057591391155719965152793621360325859253450656549696855932509820390562066705592785836133929034819648365753650018050163726417225186180829098728567295964738735698328459423236507402304988664691169771209616104192825507182278291788995591198028751682656401808057173528958642937295788870817522851088472838199197143978225325660566706862318712126125284480957559721288882023704074159885120380948657647024936920258354040312337909104850270056939940141363250970937793041200247417810806589718437292459266080182085529279071154768844087808276961239730351394688731329279010638359306981755871629031665931088203601335597794957419962056381255430934029164203395689354887904137143740039312448110327323263161109097092789220362099822295893345296194359067047658529619197942396758707933871189934354796641682023791252629400262141792513853636683598849593452341902564647985790694211994465437054954555178511251364578001461440096017032595687701957027022190751301965801382071987647090000514379201314355013614143607213297122480006958913501213655286070921608424332209558693287300933881771556195412779526960429492698936530601571287591124309080133461562157926591331756884101805963768235531163039461259172641699465044981122897088441001218595572984832430343250091261003384450533637416874193383004935318197430662091057608949118806825772167412936832420077772780881274156453995936858307398396853546595896464474293538572960519904949824456132150301212350348841067418313078926225349067581475989732749228885309550968682722315338152478393002837403622945853130885262986517514602322815683023712201824529076718383591100901651615498478050652559805605627782265727933927288038871187185500617206786100307657922772704490108190587416776149766473560917433089387087435397461310034691441077936531489404392320314782240510646362382966037671878568747490889093991107853709600532770008395166703310501644440935236091951475238810958624534773252822373813077514739627984249307384928043228660237266016167034276034803777488637387082830046250119185301244863741751347673304388938405336833734776373828957319254698320119356217270391574016233701102293277623684658453596688714213515645457409453069932705140905292234525639427335019844815070021736557111960506885099715103121003960893727387661339157196966235224080640626542605799411440861077862905768790704569736105537680391408410875064515596418439923327907069550007385376258316266121145409886808023011763477590845301140180095995031812361592177928380052958621004810164511508169505864908382341472505689394457605623327947545600339005295516225001728390392426628875115814223090927829352932529164024030557021962727031304544303171032928955976329150221193337876883287626156204442723008433592860980844318984760686749180714455687123884594626692828553630911235202656615406266484635779941521095053954782248377619635816810934172017128836163763350410149946081217385226098665666205779465715390280986652635746495406347889099856072118873724651142170710489151142927869557310260036839354423016423070450061220823287482657861624180455673476724749392990150628301249900070988703298133989323755833621234095474011008587695687464532403157659540786059607428186946569861582398439882114873170299842481587111430342148066697024671060764079881551631764423652501764651389935285537443530853378404064481620634137322832585703741890223361170803839301341362602129904685214634311051401236079611480766901755845876563854821006558695509581493345460060555779573953287064578875925110425313144714426652689893229135641477020460822914241705739748983209531440662359383429223540880154318042998406632057726997758049779375111575876929292271640443812295862939803980947657559250624955867409241033542875230088654548949006383541018288370237314776879352520053921931152116994792934955195005646290600488271381399902225142033617762573116786095863650341375195183750167104961918380979665695614416386076299500750074379963796777855650926718869422128696552118939997347043932081614171092136191687062896020971055054495384524765504717079148851624011369529498526453774503809721634008095759464928851793139511257159634817905815805212203266327188915239239951458694671720984724765009436578988820539971260331524423804912965934445194219135422704043710483905638482660562152843637014356664092840216657242937631736373236265936784674459276203576772285970864948319126269515595020958180898179531628917643825769331187076598742155806102669447369162989589788154169308915005214516566157347389653992990538700239323417072630640772912219456746264956306478379324773558005662917570046553116841717824209803509293460211941101771477303286621264576857243682286558051127527761868975521107885182479327947166447808570850816899514446517882083242046700939700116311630250386928145108561195395396021233560581746256518740160978819321091691285613481095235279221082418104879302021188198222059903349545717746950148919357388014658742489689970459732042414847672151624644325004508159348445269477056134935132639210632937227560634299422768088245241177341761676398099894436020148147819390417041318629630669654413229226159329584734073219619319840517566646303937986858621061443986340902582681480479106264615983502443922801221133219050520294567713627478794878639275566852979729349831193945696180735435422390874602198916503453177152995754791424254797039458815739568392671184466348347768656445579580966606633311769758616437826670139080974419768362345674516777324813844607303794993428544324467517589337723685865711568611994596385716830621553460076483076929006830254863592983466224050008279274264401391161267976502408632913780886859949704389637371441800174797385185378072689199025585684933088690859763935059039072137000062219008761152153624248587940869019610641335735791694699030224271976187215463599400890731318206991290879863459031066856548186297630818099746561191915871352321407823514284217091994631458397043435669499684100225237201842649278734072671693238216711814064154802992686390314421262810735205420556592236200001524755546033084646409781062012485363315924966051346699224283549227193691978233962345184410091517711618903962457104881684485850877970453724231780820758316062599355515714415336594737175283535911445934661419663354871061520387832069837898201722043114302148583462667619040810910717773108342076507533741279945749645531003589328002941185497554873702741024736801660365282934092195967861947685864758721806922283431424543781466653360510354490804599288176117235898164615028936665692996151599816711666010114217778139429912417225465183548801007445769820292469354284987887083108489548301590323834155326421647954219184798984579098650177709370714114007072123506398691427410072226164725140612251088799266116102197045080495665096816834493452682878682124302313313617157323227938388424810704382996348492980971914049891793353856710535206742823990999765797219674642679400860694583574852962578517348541419741997754094837576800980390052626526890512507110774040202270297204983056256280417860269159197614979789599361036886319084221803569148090044896033221302250851774810303994279821869137060090481086273803774887250057481189846436810413996487721580460118633377746340209299226196670762854941249376182984651339468732689677518638398710476342033738356465767360091332937965027287963306128353760885156667055179185099673594844756991995598067819667323534288975272027148010144250068505755399343403480384202221257492656032526515452387718405351626660339457239341373634111386608358547847992001320784998470938509127718493509746923911425183442547824385456791155390515269519255731915561261434551033027713389028998171281464708330209226958396712991692506355262049122236816015473908436094898400346325253864619374003039807400378798074599690374222886600227019038013361064663918411551187173219931855851419801742375904080353240571329541420727565252787773231078726109775873954969232920020245060867353075473755908356243383114940155526057871173317306960477476539083879563899634978364900382879773962386263361716297664951929648365615272912443079469107847012838228270179458364880151282349402231276457876639446644408353324196313230284763234932217612462318842736197681075743631763320159026051069899915161367760022659364753439512790456773947885023067662777636546346844342949038998805950327920965413831642911101464927156984197082064044458136137102494582966450134449229316219021031865079482343738449312307129548035093125429112658521809800754813588885320562876796248435311603657803392926933765313286431916793564937075056578353515825775106042622728785114559345083875425119654209344397466282028175963154762823217437219784530149741896122598673799457237291785977274840102850351620356899966572791003136384878666836299430726223492009892068142921274274697521659188440862955649743418154829878903399217266060873648287654487273160996116029271279416823135643763616708453893322970112575298599960103633854477053680198256097812295636104362774605085511179763134972616921292703886214841127726516084623457578105134165439949635967721130201113177028835354387445294065857854950084744191536914793687610050865474316057565692883960654261340376835670275002666201836912837991517456682000783518409642581153368070764254395910083104017444665656818934771640964247737975020931999831734579501035853930794763459714224256586914255248363220462494962363546533654193316361949547501633900820017250103051705404880675492801050249438420079955355834885252274591313605579424691511437106722735228379039073461259378900795575229798458253470503402980431302824903065407800466381177955006261476115650360795967718650611329012854309791531230852725014407285436459845125596510723478290953579749036432448525880111532997888530727709043876383665216576598817304605566571943079436772314685623379896085606201076302973644207397302677931922001713827932711537782056552844713705512414300788762537100856778720228931089008789952366002495880962011481879011276413521101314180934401271739070882037778236119795432333823168042964601464066324655705830867470409357049401594859810435582454323978532132917067649207851996306344472360004569876813253635517719194370104354578096938364717139185077555348614570502556731346934771101561677799364179394339411005102646457249590061954041720479603844001479732956388048831789802500786373597848496494979193170996966333511520080973860418042026955687235007977346932985380854429360049318295418479735156398408363510555548386133010244049049274187841697488728993736545461265525563987936053264712295892889563525211171110238147731096530836624895775569917925605685584829387154333038572333904501191659015522396886999707889839622555388416178156715489535027915070981302302919425317524711094200469918354360996204480358010317808369370925519698874536176406713908436520402764494195137661850497484136247319600448723737154845044745360965575157411113747943356756156195776922229648492058591029278820671327367660289282099081918641053078448649522829411703183622032561663069251426305700818637649695545192392591710535411064418196176623984013980527692358956557841170293742429480662205487786810096967973951437800885733198402410198962235616872913692800375006544316034122058086945622255118688016451730882557261863522943934181795524507138152958161108710221788793541775923935804709874047705846307319356022797162881331194841511888330870365934855397198500890096523384889456095478969299530759509297602374945832301073237440243429806677446997584716602654913336267021013159829433858483333796134511026385490383302478986022023456195758988448920802216703987041105954049774108949704381551114113860740641149917025068281390593096017056467195247556398115814728611740756829680864151042555851193585305366261582287069820226371021052083171480258000980023839978151134132932500774078404282172865332870305942648136164022810152935887962169506584157419631453037797144216725665230356829074275768302037461223084873245417262590947506584335734751630764691135317711727590211606394466539073635674585777215150433189604373927071802070092237521293497262653655767877283425786967811885183298034351687385712362171883895113585004611158988676792519110673391829051561316765405984855538871447179949722368767014176913942240209226691461424464226401367066836300772119348538481576389753415340768864314748747280100113685502733173678562658202645614592349236101874513719393611892049596158966499369170397173183264983507037924767009768648078311809290425713028291648870873727637580135841244481109584065830874842036501176946180770908803229294543950479954865250596495856719062661392590636217414750826647776403710385932526355884617619016621934787035368296402782305196125403171406285343219580396574435935381679761977658341904956871940362902529485783415877749828953872534630223990375703720084764952634549389742727417314065385062645664315217972780036513506196023695950287759965379239689414167735642520694009564156451533948893859894056829388127014125248763161330726630395273078626666253463494101725065882310139386751051557902549921760104791716371809226361765500785614065829891874071876819036462154243327691701514056082846756427134232972921031760341460931722959990512411429159827965820404796811953839132539233669687794400023410466463278808926983907104623489011292931124769860556716557109937502503082629189388959416857233291869001647872257696419064135524840393232749236519694183486138228675666493478394814266826727268015131783130853579963853311112898055006442820411862751035985122332267417852823760613704226994119422662417267951297397898918642838031242034228252858402039430083459205110962868624546636150786767472405316282670722250747609963232670468216224347568922866112392830211520364498924352087928954315023727771917229067964071264320337149146662057646963501566799870053903170338305800039365185286725780528153530170739409548693186838997572352644764202751220514303643555872976359870888830054557656730899327134471292254916375872470180055600696277128751074141008008987082459807514212199575966859303809597835992594403694509657584395227510625513259568041085395784666479425240746922039406057024804003816514866377893799784388095131681912303621648747156154175642522912564743869424442092368476004425912972172235599401014844307228796389575631041352042580614076630829975922457814107775822043615977864859702994213137358722645856282621142671557410356450101311858856541386569749278236123557164271206414562343755183103799595723868369329505440150260639745851585038501520474977344637721950547092283360210230065855764969717441322576415908808994995221347948853755211932073457405859926212361266033061541577481375584097423862796919717711216146932653059910616869881040736744059345707630392078275319731448549469370897198999845092961464818603908085853826154147540918313669354532812166121993561925467144888697965756035858879764570212883569425945803402102325263403448301571907301574237300391755967952222274849505484651791892367610905916606609204334946385123866204671038254324578948439443686003273167612498394508463819857417236727938936880542010606728629306710715651811974216575980814350739237512004960722478796457599348309518597700352598244273745349103588322328610298177311999095081133659572520702494396318559015498699249052844621077276452118702506470100807669167875858066737113981670582499110370367718135867702877238517216537723279789468679194688532649089196513797241686094768890541723681284726490428012539041183870977692403399493790770533169244565646751196649810260248053621576150129627637080726350450080344070676837144395762503493989683167164635981095905066743441556682657909193208798759475424367705386614277069106293033959905612035158416609695405055693374838838903893192516928568041691279643090542423453116518906957162504272643451824473583534315489128091535401460684674101073855043302099679172465918936669771649867049921823812385502442730391298390148655871020132879351408751626032204559513841000920378660645508725017442985617965552432726188282659929157133975836672608979329889491095990129920237821833830281427141017872345776853732120414286267866276379865116029011146438541532581888327056041153932845922290468940625508694018853457146542074520061992088363862340274809017895366111604377376647922901046216768717806861475414011394532042930435907022010966820041239770226322118757711654004391102216676174166977841679283249196606442954874258122617987714964810249706092772075990759503852334297552570797128452068625302378639964846419447568505589855953805770051570601602021175607319392140341571140146980058172702228253657346314096944453485239067629999475726452064437461575355613885484230184759629372601941856148024736672305334615050113400842015241078763714583573085379122472016748175648018449289510236177486257734944233836227538448581763250435771149235587502584045387543069157503911108555081405061969791196675438550715270618581319519930494837305005875344838899661967370080986858189049369592817123794386413687538017419669229158250213544430417984660278105291078244716858278588203719582427122264684824474601136258760414121610026464198783658923368272783763895509461290739186234902564861864676581407378354140658831516935774430890864322328937947357898703324933777988961568694819767908966243319320704078956459607348580223208089089815211929566735682123454023488740702003538353017163450957643593958888089684745640140374742862548588851126658512837912111429055893347626084784553184677501902038793239133144709652598410949314848418650823317766095827071948383226047071432844396942511349270868974424666517523603542122627496349419866443887281383135916217266335405990960614910879874620252764975637646342515934320880539350573681807852512119583973701328610810641972924203655342911656642244870722808471679979666847019311566988194006517409916894266146850224836822785567339327943372131847269050615045693465703334680420191138588125453781211037457284652259178101300982604550765239198124776258238210629514908745622184437287531326008603923154712180560367801509239406414150213273641255181320571100468996520221402306005411859810127866456787957169982263936320676627776986844023105011410164679557466474625507744593571614145895416737618455695023415181164021960395968640493761424426702992421357774977222573382817629765529256293353576763306094945615538469358282230965696348716512134219655153740402573099011430789797165251151010346690395288782541188507454147649923584341454667410373296948128427416265950677708849260171480457887288984442213760860954900971697842202439411245667737696102988504711386464880033527876665266841155044533573733833577120173324802465488127355870673447642530807317504571558594251248196265191245033685163849827673813235217652127346999804439727197885631280574886114416331004719388304539302285167941341989547148558689949246394879055184261386482429807996183679426123337289800535754278627777538515145827792291945295966156014484587052073860496423793472071062967553513879779198141438450019411921625040953790460793583622891433041999633209654000280633481442887722569882855069319877055891883440182434932048343373411823443368030926601760040988534618993786905197388498042189463479525210571823446156231270078252333612387929033145432010749893189628186506863273377501463804341247532994805342043977255020179500104684233443406859813186963309523011905743043160355464174346341048158635713436868187306343628972003718669746184985296742352826003205926550474118526866331806917824684569070109180388331333735374215394001758390913723237228243689588953970085960264381027405737807069747301971116107394533297353067421962465139460290176276196101320416265849699333174643182036077162978013090071055659285071432088959794259383443974071427917494085831509959177222177019545611122992652137818466387929869728983023275948038544776320292129205696976937695732725801031045042960125145780439768022940228109217746763835126596215378795976684017547398802863173466660706910510657753811964841831946646888241130534233874671013635535363217013434724943679659815191113276359833062076616563800088762620261878466007871882194064806955688276191934741050810880843641335049454040829866547243244040961091740106129249451420546592098617828951506633045120184055925617164575423271307840258770337017121095882011034443072843317088819033446248181941650902655871667314096850451360735484611592946558875781450024301845911022056555337903061213472476869703427270677010457060352653342623817998616424249652292077629443566890162158276089540755892577832551616088322485098234086011513716450302727454490452830700221952486438730714943653421243771152805426563636266907882333989466440009063038587759007490338943706996759589132914879214782688481616855069619315384836835306087771259696129287075417790874183751262828618521190503768663109509731570143177308739958412501756500061117538674872751821832442762158387426092191498510997459478150675254027042542309861476107951831070202503666980423915840042888811245956041022674568799024310545950109211568722889303487362465631692035375961850848489229179526593972786482139097650618774524415879695686184212895690989163078617276477886273924686963230842304979943433047843191786081280387174987785826884096949978660872893372198618904854994726347661229083163368793020331587367449914885653006292026496828572694550615204247952424743600573315738383488429809467609305733382074354599056823696934665810204873338739180803853354983941517829681069312248678067026079167013551903316132899620996089162054440565624301880619737812681685417815531234528212335980015127342680784060839347864723871083603083759495930890626169446223446969441558805124417867498902500589727706170890430786042737897306339754702509191479128570865719882187645741846740295395906754968033347456464706018652961323027313759810148936894557998303784354083870602941146068470471363024030619873540153843612541717207125361916059775746292895968398226267919124111807739255295498646745064173813753628561645756311772711446116651828001332992820983640975415450069516638931852993265500284249311769724006509534738505145988857565127849002091297402914634999616741185968428731804592438395982640395993970347936686235324726879687005337169924152360610960485496401362133739890968217019498176347380178091535561967551361700192606012510776337681104246932274705741691792783786050947131175382660613584137379977456143703156563714892935716313680364705246341352357177617327051397049601268542876024898441165010113637306645428400601739791941335364468370127419007876447102505876420333512058629045534688744308824550849762726790227520411537709507924203363115687530866331510687958660493903238463101565261140048877737067664281161927217695988465346569493481758799377117983949721238836136163330198757644817429012794979409814627977536357343586622905198602093798782259932767082752121268868944551997371141256392056700556106527951765898054900832369872755701129123100357387243661277902811809265567081603624332225439850376759447366139495780895186522651180577953779258871563795983693681740921749062753802869696896290307667282565056006485255520890974655937439561012377706791497644978419880758293789500575155620448909252039576726186300215717673770205582029582682913031204667598059853917968877841739079189278601490834295383410074291338793864577396016543787178533741064772238555173179468934091463823767162673063160315146620803848592989346033707667821388679209844989733879915007440026468679634660336713897790672964176604666777023544016024277216142597794575411360449528877783461946962698486941648260459594389226949634745117473714487438813873215462055586646070730326301554086161871837679860814820628709468945348755825184886232096701273514688324480419785879522049526114700829207605828893844894451429127241691130528761160034543258833882701534687027137260043451992456359891836874399925427678779066123259713860730890594753531829103384602858689339192216958134383908237300757128403661407246838284666597285902041758677715104689196294766875713029552627746202856331782370430965240279329882585499624872049156250909128710619723987313450477591637653721966929890659420334358420161553816952107438586428218677114254997692427273303434911996881200818686043925863006555694222152581988106594548891055155867048891038357906328371756714708764874458213986989014983375360765897555443094508803112647086244805587336534156446969415559539155214338239352439822615059777873934515238132770079694941964647083238898847503294236485306420670239836989185785099793032151577809664445582129135143618341734408436028741173660010795636166105569401781761373507873952502387665390144410934200853141250131521860802776581493598982059627659763370560127529491053732803229541074238532755591690332815351037004271700534313328344539400969114581558205575521480130436769409870082458295260462564440623881712632942214478281262922548477450420508275632198031863777369792800710534636430002341884712316964514878002463487354416270924464205301046941859968527723714858689239795370973263701622377669172389187231617124016489576805171540639738603392894465769071031207649566804049108750574629313861271347465181010823902126626749134795706810402086098744235930219267369005186071023490090186283325055828936733816798432397168039635404465398102316571514254153364889294226881291921732450874868220913061581662435378329649708262764717778840149245114228477438723888389161962973470663103594675609614350916252530309764482662149898051334242265688778149359299445130406073371592791814616090069138220565438595034970148230166397201751212303038156120106800806266148492951945997544253320829741438329724543501790925845603077612593643688030281857963807557310866611201934740779742593416000449853668955914069128149481090842180932772340265301306642242895556354829571790531756469721157500516135741750534740489427098718769080912371493408716450726075854771302212707117028358939151141444071027012721870812090503072742839567011188664760661487714835834479465113351248177844535559291491232479174693668778019534203212175504590546326990929372726619391597322490467797501297657061016862004027155472856570206356372715461878334568113219253312816043935034592473853821174735653125000699825892469830613001425351479105030087638225454777062690005385838680257943754051324583328635391163372914297684395544610213026805978246059915452520095635550865481403695188534680941404621411287350793881453398336016089894194413647995075089460108683833074114441801333264901711867162280674538160083537597269388132226057729490183950366161181135565051346340631534595927397465706599371623240424596016836141770084825899751903958521235334022878390789890349473135603805871126224724706737895172420206245377928015053094246058038984890709645402790998867942518319865547809831764108852588691533055878002269166050229758336647353443171842749781132865940299673553860887567660891395139791524449288023923260196722168242107179613420875188449458982587899573334546086714967132754003554584618421554472234512872044660653803186647242413378955089098675134688725142969163984160753630013497001243927670177206602333760003726520743196744970731688738757812824730206338625891504156646195686696034446564242484889004497353484712938476048879796973360515587087331715525734351291799357137813082504355083004842492721288397682439380058304944613920028647951855527031383647386853319197988483348014507397525299808063319026717558756147928096721566946248256380817046621160190449260037693013896101294732710164762705540907219950449589872968826909892869641967016106394651152126809176606758732123358790121349539460704520001738235236926441862164221730428006592224555599873171217814338762208450690609237866640411492480414085615635969009173124076268586637183907513220147089310663257588186517559227720588141446129793231860517550536383471500196429611852764938320345573496269665947907779824788553542568065201337583753094098276516955344651022931148368904223612629291111470805506417473637735807023145579053166790513735398631585682710896762618211293338154398000784168741986420356095525412550838401274730160337408284015030614688873193318540432551909883456212284059028012455130131108502847345738844189776278187855141111877050812533130685170317686171563849948729667017148203695743352874686678883396058877028948655098843805918641141368011505107002177173756049386364557487475690079268963409668520283083181480275997673419924637731790309203199082168283720802104190013343286100271410764367328829045934014421822419541777137392410147483744137635726945524158578542258409827628603875563258565631558480422531498489846572604286389209035655738894590156452765651135282537674294106339122762228328318135918868367701160476244171141138949003897479033710306631056395194702217786702444538299145589146796408563489485478238637903870548911305983917381794673322088938080785550466616512800434554605882957157277122372237261541450825746505727043946237638916493796265405680016212297495595518214705397069523963675200587579721818103441145499330479151842582022805116167290226812566252576378129980269055836121581635172737719012806614623560837873650658940344433966809529994369109937493585575511544509659649978189514109687520644739136165573446804368570540313562345008599352311699674597011396831395782509798270000794560795459750714434945924767710250740920834416345772840670328931491900588399636688264435226462487823590104045083982374276604933265654754775079343027020733179672552400399130015697532269154157723878290909283765218838428106192760914407448064911402595925651831110705876707596068805760883740109759525579819781170819392208123139613530359277900282474240890088189972173485743729288690204546896696580709059478859316554598458956786963697244539015321215997139833714509393312172033075273571125999169175945298756567293386359110239577295476513706115960366486079482387208715507228533228488084119157419238419658757809130139072373596795285011933741765852562779407830080166356812298219773419961670262001697077236160827399226874922377447223135035332267160344313425659988323359964508832076632941682831966662002509276073684319301327385191824403871809114529827537662519853950866126607553821595389139642981806392082143657561748142326410417144344255815913010210463340674584132307772985010464895008784783164394116677125842932565474530053450675876002736026046544613350752985066258102184101906615891668236360144316971141822077910157151573005596066975548368316214603854438055768402403036038254745456343904377386990491659528617777673265577130477735051810327169377685198132139985204109193741929933016656932976059291539311404925300043249061332280918378980583446481353821783900479741663498970674585765001917672349033416421110519352515756693281602883837726817638314589863393308012547563996296611234279972269277804076485309606943944811885379544316855599450326446789591844387467323179821721829335624302760078646704043568960150863342455317133151562393243902465878151289847004789124068628006156914884307274469133936966867446947558093910743181543549294122720356213064838947037437684841748293503471324925907400962013778007615698933176047019456957676078189177693151715822317474769896809107886112827595946078146741996654352843415257200248200396679583470254911616667103132431524854544424871994629415393092061650226456484392293552970959353147362748123564059687756210687242517345344236021862065485610741196378068571841458235178014282813043960626111924979366793978533870968953194722453998619740656715435334954666600213940158822962088112269485436711240766405895338460971925830918201642855453990934431959013302858725992137805588469928091269632939350285273691667508365327535997193142834265997724673525326898863673600298682082619982467048894883655095127912270685622212931336022939822582579144397399304229374983241858185069982017799209838701566543121027785098466985610513472944706792663360642501639115927112738229364725788772043646707160808715564870884500365489500153195348682113249764248928987820176940819869493603635830563522430184761933889035549352320786157342393116432726460763879761186017984471666665723726793819428307687464008662445638328768935591312743836100263488420962612702429675909267619804257341030127473128176952296816754405537421371190563100775024553751065087994614669721473407767776063900419945583645642855870887990708060526982415503688842284197369674135468697645053737145197624493180495210208651102241631123048622354073928105660990987014630801380623580877858276291204517412289283600667125532579406464614510220487949755487654557308360388183526401857832748089993759813036683620389109399102913001254356477522274256365203205634724712637055207689659675437424218457808330894307335233016867411636507221571461382374688473320739511176418212363479510383091182392435794719981354180507437723805064689592021107442447565737489381174683133160342185132276905624359650544908361789525410805008099544542689226896714208981221027177296685526119968930816152295011379316668318024967369982900835701096596946041614244320535647586893821794030884594443012828845520597234481436899896036990266282057348305022504831946564029760982712442450673704746618741723658906942577810465407660500885717595165533900313963252395968575002997769768563895838400175917440683227436885200001456180304953840245901535436942762470601322557372110157527189773694503289743368559683249959043624799811065027161370124516117364221748192339413570443433867842674703783146336277861638774205064735551623333915184500405009756433584687429390061920961656583411495261406782095634086758588018987187539121649754921220414084642931679867160972616572662475292451767746627307383055876244214440476389580175554006100794964183212718068921637874230658990952205773337561196668201039184436853128033248605178472381207541271434875293802104785018021442939740922182794750597857961595758316535079535144207939185480924998125979224695225166191407670193941537300343679317615507033272437370097432133956052270681260689264600276052347489759439438802852690299833431070912699367977294571194033086687172659972548580377886807687141021090908224567610274303859435473487207839463720009995397824370882234293389744442330681042575713455634896719619400516414346136472261454334397127225992722136121862125520192732101907840332458857261074148696068172725060556686310075403845172196211672001387622530882825896390895323904677614682030955131395468040381763599201833452000120405073495930050997014063111292296302449732043360503101875746958078709159048199846093712707901075319873518819893749706748116173858046412408584258166281857564102506777367574171592506758842530357842625048252633056181202117508245817223971359799153540006504135089468556900165601912642256579730385915783786651552264423477697825383607668403036946596448273386059088222846990615210891819640863350206786457288755030262786294597691803189402107057376633339913840092014962134129404970567540947701425782580593646660384457223944635166616189579007868447341727665306830922105440283547130799750734813953602684723486786405775584777622869555860064182478549681538623363377013619550728983865867757160406749515246282050240273266863332834081387985839952451817216269309817208124732580476402641989126409787728049403032570956830383970809730748892565788767823635440002170351861692463488924857680279736617536066443470220880541569561914772075536001515760701516727727856030030142034965521914027846279205380138760109817440744009789312524848461558879202158201824333098294474268685066828653855404509209393827635909705052002453234056542803338538091292675416838076553083654044137864337438039829878884289860230157947289760482163305855424246541277643112837397033097374102381168511302097453816674668209376695425463711044686534146179246648439073053070716766722022055035718338263368664982683537700196079353437829649232693364324573039060266300463433245839873601938938861273451939017417835567689535320644618316395962530568954264736099638103664408206191071852031117897750766124498280053155298788805139297486036835134909173659435803523746234662154132691852415972523599486561686842541463926284785646860197655438622798367958195886063077003378257071558792876976602218083247000977160920196180626033278337636903989650082298034966291911678484856160531695754388959637502168998416377564870780705912951689677570588205801567761282401683728706312217409252609417987108636151375584931998634214710478716481256219006977862277699250724197263543726427505749852529205214689186726629590534834274755730647431735575673832538339099765293603057785647719126306221325382149160328199711330089378650997619800898280003304196755508769995904325782844139072717199778459708092988363895560218245896367736902630390966452054083352293504250689523986899478113823331302604859214275578830770046104964837140876593126486222529266526166526676665041302002687461039375228563946558704307443788679387958042099720143856771285324230246299232363091912960292289775211461950444330901007248216474018910332937704728409682219956022526012221541261718547384974455754282599445870001251486321926509592095201695127826468315071183538735748325367487911469123343410923680930926160182837287028933446239794118686460668346517064490958886786373476855528693650059495959668637683602606048070078949174867015310477824632458854498212425197218489763119105496527092457558778672394393540382529270594352230480186329254039090076883551938860963561149073086439008359274295756195090842931657729694955617410587289855750112540706576754000198401384036867847194032670747962825758021994763699106821705074681047117010513713504167998151565475934927793860309021041946035554282459077958308185679808685490484545820726336407570060800655749932958316509004669302256336750070646880438331070655813265205895042334678220715156925179559744660430381997610269601550696399289502511451123776199813153660904202048670113699777493631292839000799993910613179030141443131793558878317276980904735824247117937474771753083240372227996431003358618159932290232298255131494251051645105132974713059949382483214617845303438326700686324051242811237425460886331343409905559006424747128669247783474564820590106888322947863086023364635395808195093158690089237548482579899144441134885352691471757672138141902421565664252461252450967375236180970454298058874290057101668282181863259794386888701915262346874519354943155419833753537614788511506510649914355264385863459989137960488978343440623467673064854086530965233883490479683739646350258434436089515140383135985887531812949205263579941501724245187805346931714091287710976175653241481783894760804647221534511893560505935299472073630223987148069939339438640898872028930541060698838966372519755075859012138335525676998410118985780834527718021323095086482340091090290739871298451380564803839328792666524927671767382912391111845234465568009619343349215829546578647842125018854852615842817510955251490473155725282983606366173132341956407597714333040277716312742461205048047058306291731166384504780788041242194876523018115869662137581282366594310159738328605634141186509448193680975989737110404415412762438259394834600253778076058110058965615264006480827307980933912485450869192772465570222537064424724985252376746033716622048931029221253483587109725932042155955631520743133223041705035614552033637146874365081167938707030023971944898987245435012539156636413534401632887469950893844364901077640771021599721280608305676050592261205771517113519188392752002322941393313481712729377495656584210528505919748266272292643991281513667885865266346784273131700267305278294716021894486887209027145387355269973785842508141832971393921455681431043000101968556294301775592267128604285784925176370626056215142811370804349367743386415425576282679101093805714190050891704388974797049982178530784820681767939178920419366907452270203600596670551853497601752002352356179889505042734269128933393263082899808739433286327702830218528796248237601237625487312210926731626272471234592408127436703454745794482118463266510447910463123911918297856549729037909824448760626619225167610743840154470409938469368455114207052909389104671485661013949094044314668610500848843193825639893308888879851602694173505054211478482451202380315010594238501547358829254422926369105576051997564793379944906019036498528813254364653826774948432451914823689369620865065179208375173479322482034095481069460937942226755694452723436914181159443471604616455075614190572447004595201293927591601242833453083625308910384311898303305468526814257605759289318546975373713310078012390834306710767026324351391775622913960971539275764407776060901733788324249736135860925194919210862398013056701935650720627612569839364252097282493675191150435563137313604862735920354855221150117539108176563305194416391730176298981679129914110099435968634891436171549725787715991836609269353200293751665833075789211321809824287821567903058214374269362851637875241735417260471146213027667998745835684325207435337985650707444336000566879493409482403176293406209277033999607135905728798899051066514546022777815848679686169403065614226656977110919839943492090541884202982652333220241816408583082292090854972724186578018994520793035561103844136252277559050497698284200317704116651305299811496628451420587300747899050361948024475491355434549056256672504542309282278078905346505481148408822156933413483358864686592928910134714069645994650508495028022001804531301951596213152869477848955969199652296730113829060337487747846838414470853689887367642893131282718394343609030080224019333216756705442375978279537566411944032449580416443730849442989312432109058057428153572494111971453304662271310562555612419364349974815161233002277024110516710787754407955090038091100208468040421550801897781862022944336288964132970656301926698188476558319790067701644181187847765296089919777734647028797906871703342877217914917205568294258404685737504082047775489684752965744682873350473472435900055724835223398545903804720563481918985130982891221837359273478959164975687524693732198070227089474394527743638816839880204661727819147012159557319875863866826937580821598739556364989928420672445334269268485042023885960615097787310308988465017980094724805033503989823359773240140309153678723676152797236562186930916261561032496300326961043450957087536118734462382094430389290512258737808214348876702918866185968704828387332643244306275040177589876080750661706748247043369037309239454232260633379014611608407076241934920702070685797946135000489417335744625817039765367986382331321976845520281799089824019772346923844402724538124901430177175686953482390084176744003980822659069563050562508685704904920528912365706768133146517320770594003583820200735080440427693746975377866071160396289598990657965615799633585235480936135289497383571735233177257355555876717063163181968644168198523441870709089955520554128943031008226471576147335988488426133418201743270384839331341662590005809926335638884089247910362271036236237411821760178673231594389917572181738705784449700640523537169351314980962538134244456840812615554631232909641378201974695724915808004858631675351441896288902609162218485457476032244857708347582154017854103960287983328208871066287567240313004223679135889356095521090175638587818235497375494734716193595130585005509999550160367603275145274867199922115739611839595636714271141212177436480228882950591698544070688109770596261332449577538732357250935723892107216788041798588874689584874648652440286315218374664749218212470992148723622836958922540347166695729703788426242953732424079071325110451133891350694892881788102811364042834133427870192561323331289967941107804629342936524684059856090041543347960577462664255473049552141890945218650716118030717030014269742435759708522992639433597463511110089068115159717905223787463246986274275241536492819420456029259943780177223759851545041443239109324391614021171587919113496199966782920618660447155187638857594416534053085032839869774339766535740071949465527193692346829283223992835432776385206181504069131181388019282737927907279192023248686048057592983942169439435509033253760226515298380107397752201974465704170453106877162285875195174051085838028842867171507469268836072651769464544449941221371861898760651218968835176269764302588909016191899736336365191804453353598779345210534131094708660998146928158381322703237101310095164105209703172360406993503028698955476772707119927319099940888098176284585439293179828565699890511854493083356466840269811893689734117529711088714868750456757612637770461949880176370971317544551677777543487583319838959981623693244148421155527265813786330628492199628642089717758800510547941432153556335688911873731484333790609634497847274579300232888691449767827525356387303712175842631012266020539222276040932313738527108699251818589541633407489550798292732935525518353329173868614813468561254876855415572638043969455500210505733711916674820843219640183942100249528860044773833803068033189781214407652632276354161413046208649171297921283503375390067482715283441903651122983894259187617196996983164261366490101891468051621136269603093274731861332510017702140817289271478466524521999346337346097120367978795979934273882208482706060176233232176533514410395522124514343941332338940676564682287994902659293681792422120287053380977711807284259055631310342900096348722094753861714820373692082373295065007086162562757039336428864941216221039636086409602905550013641052949895866743461048501088133950518787147352619613823856767222009712983119003598454169075808552449839083423544261462557431488023894674419542339790076557370987390227961531964197319300255866827630273046946441907037359179382864999734093482506067996366166733241277159292346173017029059688796190976366400785155271275865862460690831971729842044705959969495364599479909512033692549474257610303481931554516145172287591881364373535332502595427104517774565398084013876508410176348213000630270208820798472344284896471031741426237015819106743801303034718459107860243376994351119806488542189009913063604326732411357547666628763243766634648382387498853884657830264557356162762092775832904532824094712254937605252992001681132699852176543568065031325384699060426735420804184369358966000262373988087324164269204631913188685535449797129088915099283298038780192617349272700965662403989866956191708417228722523746861647453575537445007440228463482761818584760070286594997661853395700163768727034649692960538088994557433863189052317847413903878647224928151166797082685838207681618696398798493435881481755046158643854775656186225906116818067740780273318069810884543582173167676299564612445773250527421123350121066330233045177459008696442173537093818773349558038442305631362688201445184393349555018912945005443409287862469316929755663502047855470123113098681251903760465400030890756877077036804133069991457856098726937504583021315766627105190819098186885888547527422809725595979828156676804507642856579511625807357481846180777094599232738098659091515610503928532226918255446704026269700600310991703599923220515178929860048373120572639053679675804983391924283766319592194535729316709309370186657184325290592203340769846457720640076362624266214922922045018752677367771096764935291391972779821567597528193299177451189745372439360644766914924456173232121883577190779267343167889420241373357364388329441086547212442692922233694322095216745781763656215382111661327641003277337151292281833559788843029803431525430769373635618753599210610882284421717729304196566982472714089073130934034107729786713544939972274371502064172172572948397392611145185444770637478713777417943323878051773829708909990555656700415615721199961512616858024821878819927530583529397848044454387035021402613090319222250579643633708964457329907556532751653825910082878267593832899396953155284138622790856534956770898605225493314670053032832140298550234779463632347499667974360260081770905306150352736263552441308165863976822543555675126202351937298168049749873506107018445831718282279816199073151921174017626634315119583711851205927615381632892843994074770793157593090192191567694511144873907591280597882339549379643637096821321777522166193557962324796154228524445514765548019580166633192584832714211550556620939464557191867344269773138651787817685741693535952474294725466548490155678776513550675888206795183848955218391634066704877926478274205888812843764405187214284066381694778817549152786614430920565881743743544698277415533698688426838224984819043447638003130563938114568347009696937176018022605103841950052956033757312163612499701748981746042382078222312241212209295313404957398433445680213808264487955569544746754067073910378843228021871315025451139599123001614927296421188649729613842571620551405053213778822461818224016867396174469523414384964679729942642219084713284909603574370886925006498519653759583358923000622870663717250075982941419656027403034288310372175543538734873708006467816837370014418107479399405488630165213312575218010422701340126094645320221177182426738724793347418220819712496469875192791773772581187999384324294965924473983989290933426376979476658715512316287696958844995777932298305845384546848561053350478142696928175536164213231035456905315106840707695329790515237906793491274327574938482582536880410426749927097156273043305411727033633113135809769037708345181593023711781865768905482387142810988501261788955036479177062108423960926555985625655725890303601379663724687185230461740469930097602513897834819761754569655198789481497422621030197246284009334111123729359948779139805598145423282608280836478727438863516835086030190612142729982567965540770646749374570456449403629078383685936641732431271344199029182474191135841840205216435112614992854490010087840365670395911635261205226959102517720143853689991266968767630015220244561736628737424408390222312732015692795428253996226091083497875232074470583792047124097082188862982411560643258902170904072906922548479134755522868069807374128962475268287408937171462678915502064054458992295163855200165827956044447256058576398997520516371751622572384295565065074933417342790356473875230203324728649842071249111856962810285788443507604846936856518899094302356686233089661551819528337408808668466822546168733241780165044656310212891992279607069925209156426887618475157108661570886961258027713794095394110462999813658470102954358773704656292622651967745325847233159335424714445937665053582511766126529315788386304284181752216359823564883265624975151808967892020741960286744129734798684743702900534826833631840134776584343107697745698415996283148824970006638591949466784137699175639894294730483467675350346570609452959559613615761766241970034516012916114657577570270730544758644614036847512628238154836557013844547941850588683527638096265372414140749430691394372889479907469286145951616341189580201588135812496490791737502746343686024043653996438345931479633248390074793606894121671130780894529915737494009473870254260863792387200741360207549954599415502754078183517523081193300566975407626893229872232833792651901693928260065752961195314226872324140134121409990835915177993706125305993748169780973414157667199134028647641753729375750043313375334166644494439510811378567164255185244654314317021562413501081598781588322556414954467211287241195819140780626264565688497223449600648532694458786946486109657804740775054084852316599903236684609504218446027733823473133923090120226107244031940106178641608819299418005098514960851989933103345516312656111350479491682612363061455615551315565031620509299639355541649899982728020283672143878716344762011954895611171189987008705673167137053375294172005403062713974155115391937939177880374219888403708934513469580847936405162842656091608323973092915523676481759243037158490397616326469518277793598913262544537086723843315496360957901539850855298504044672555826411018941229543139336927210058905529547583462554476731598017943035348828634876359818174940484774938972767602597289197278670044819195084553134129212965315553446022298339038394336697816308427274825522825222852263111251015254067719465103612310285026039087736136879301399839856099551033943900913990349451505702956840530593597760464487697707457051847841813875886970571283559261940112394622493624684570814810909465788231666728290189506310521068318809704201064340589788373558437590653917331163938466289842127325214065311524700084868265241286267540192114085003025890793525605789136258959632943652580036632538935863980562513053011961757143989560349285913677464402558737501661459612198590082090542123065176785255513395305563493096932870688514401324882581594627554914310115457055783007904948054169998972461024137634880096821779898800917668270863253532967067186571897007307329719487576604284062234950647840494589003887479984629135421737498421189208688488756760408749742775433763239676918258356052933766567413065530621785472383463077715642401692501927619781305903487075616908425603883310724547987300885033647260187639484878491294108007935522421665139632067771358223580870212727126141643731433175618116273910754042355518821646511901992291408850954892332202536597696977854351607758782428876305538451172881302859658892727403792412255797667233243786513091294013272610023357085378086447477485075322266504082245902902979630062178422699557925122139784598386783721584268483742523341331750725802217331512210057426916122369184061761119422261950087296417847877206607259419961331582592946436755403376917519748112980019690130587939939472796304361412131602519663562801291315940367437941167196472147338789671432590147700406952931056027840867411876172558301747075335584454515569864094386007224563929601478105194052278415508006266059707759850312252445139949476905787239001919859856482846478622341941747224927621039361729248075143066559724114586594635984588763609175737701402647051619389739105090331375556433802085208041825950069834243542390481897390183287005280386050275531236585481507343220960636931237129095995910511151710480208615884468446174089530813895737327456026860981906668459655107885683727883576140273581255494876650664389200382112399698751628711873500119525647293974700152040646200279004526013400277476945230640633719207562273366765818576988264120435002865383679390569863772236864612307614390582056299776495338652601763329162749709929588911217272020679143278692257286280342507221121233972260946648962035401637396157513966625393240348524737197749697906217779983659307895951688524085672316670589600404000866568867733335056836036114297798414827011708474196535556013920911377848284565808749148006945682871807870447479094468292354310099127983170529980404519358744094034665977123287768813641613240388826510954597740800588236332005956157183618452718438451182054499952124181596758904153129971920914764096336708332341064310574249232439352597234119834076535132015932610075570818692976543979105658625625678975048705337362727414499496482333423395043611600680659115309464438839648510871382233899644540384562726290632381512636235893754133479492362856396637169802087912651268284016014569738556862476479687839332973055002197202156121490647698400415360398650414062070804342391470700339053216535030095045584339832481909842394020707182949138590697229543253987394679373173808042075858517970235468515860404104395679186500707170408425479888466077946236495414518510108246025353431088324579739401494724697300575466388733007406283385742228543739397128273686633123519180113227529593431981503854408200289024286551789173283787645927105292325109311878099908803220951575507747697315845012975597524994507889030890687722781926118848334369995274970779942948212275022162876264826528649738020024631509909468321399340054726934617756902810425409373848232403374536200751430847023764297442440775141552956132939695558939955512031584500443901035834430272626354575529444855987561037723492717885159933651188402875293255796647593773563074117153222204611142557208548160430361528596987589609826219509814802802891063623997294868325881833282675751934698579078749346870505936082676775622957859428400382019567980885378054446889164491298736637939312286727917883516234797518865946712665589290015971806263753750440179069803289569390734979793678665300197306266256554605762468666426267240095360165789181272271080385176950390034863245456902907748949192306786841291228573855879534288045674830278091016651205545933469485684409864861715756323234929877336263325951559569487872506380236124624161634477118872255433373339948712624065251043602687893052389675141596936604006300757320325742283156448942972690663547140570108540815886862301127198997349979021639764270839503198066611724961771461373157079745554527530981074101990189202020800800811932163667554217710606595283805941642416352115668237018636398200818241789033341771133470258268049312766312929493677058855340886627135806366722351823281177003927518519792156135884070166412951575014354261768551054402638920787430674868354911634193400465838580021025257928574711365578031860283944214126381897626800577468982037326276117430344506871099214584154151999092396955855876921915211553314150000682717789111553802377276294822053250270664257101859386548636340578107783628104039467292672156635459632176074617941848837747714668058249601693332789996156931913730124822162412929892042923633205285401184285270525726179274913587889875720419204970483056844691732056641381572641924178759753791368315018381843985124485627041737762146445966385660550671160689476692857904307939198289113923653367484031195593326498000517929684582810437252694674422639843410752855584855132673351201524447492855480507584398288489653828148241057191556118803784387032291517506280152057965898464723646855709313631978015027284909742539612275533807388467056665262244418333254620831065145254068519426395176296226575775968823179352584314112186493289564376864624177947657224092328146391444983886031869868575504787220966511345643587794225713757108166471745470053028916035611410139246452787817343980428891092942434167430454686476990652050571085041160818488240518013222364980303806847543887894385747923236994307401745101020324369026488987571805331160542242165892714389964685784895698587043584421781904551999909643024661842352826281088142879100725313864049802545161195784055215781409091137920390549758570474905425350552844975769564165763386832581714458498665597788715423421996226996379662595190950856434995556578135070600663696669132139342808773745038957843534365851641403234351523243617810783275561947208652924629709026234314644730958847914791702734156921405185011835668085577778585260764398768366766206897059177819953315458590906607467275530221960927583747697795399348538838908514554355480039069536042799723662907418966585742631429218942530832406033784994048494366098190033612550754985898832221627323288204662398465580885133355683927153371982560650294724343606606085555682371574498580104524583401774265559104319048008007904501384546897919175649017752962322031005691750386482432685158803875608063755292130343916569491341971180030334791646308754975950353044871349897343613614369446475626425600054702098321389392561097215878395118585407325808798580179464872771073057172334897225040102858690764852630996429716864089936735268548995043420451917395088678200604837591953921684470131998195577376068142323420996653455399425736812572882717070956165482793868382949096923511601645215912435729643554416353070633463931531491095559050717049195493292778273977428909819526314070614940177630149793334978113508632676994735205231708724834898517720888129925581100306031377190137518528609184463289559921461579004489112681381786666440381078352601628692204175132738913394097972553750229385585564862367866681293142716544804749800594455202545146007068035418052117233171551810079157200791620373299480370589343533941800315030845990611395180477695334130548031384496565609715816653601054562064308698347690981611488142270879261345332603255389583358943868033413480425363546380164521678397487844347157700368306622441669339248584921917894128189685700334344108957887516586425977236618830235976805101665957885245494952832186521673442599234048547172181632022988392827695624188982425200860664643202084083823185223891413522263669176722989738788273001766326182473585416029087388739491557989869155621459927440842583771553276455571667289113560298376301641676842866157222960266576840551062845325306198796046663350484857884894350162969634551380990073829057110546804123185863008483530936580536670350876636055235219100272729054093351864512363731635415908729563833777912547479758649317911888857585507956351667133085019699003065712203272129557585481678841846409623173235973183158629425325262060658342965550921097045561574182150634727788970514918205194937878094388000889026031884242878181581046727624667627108940395721267128267402132662505318556109332131015664302571450468197744769958405764380636762753822948428051399783895451018678148883819672252865261735416275060208417818715807028428214524391845520353725900000634327006699982605678352656685335109531912445137149908063553725963516149553670265431026794918938566151591530424301766227557385427044171024536658508732157701140080722849005675084862142942707367574949213632211123883017554954532222676298090606451515079006799859373244884950713456081058436612925250491580434546448364859665457234623544696444538611508539001468573068472146183595498404830889064861214403474074629125662403126941901635648060859703276000127480229979503539388324270020723278534311639857748965398307694980389076106039814213889413182683474927335137286565998339453215423801782932471270281592110642923257487229191510142966068920947368910995621463995287512224854764436343033005953753124623385141585470208490200103642441863080926146309043877494496324239746699433717222495513288245783853149260934168275985698316935918995450984735959129422526247269748170122710851751181177965514337158597776473287537216516884180626491618063110704279003831302005652052767595026386430469403586799685102139300822298162062943246469624093367347203995340904715466843125097025776183995428750514227351385101505376337886485837014852423638986753515355288984460756431032257296893219618921808813896256313259046605309889839564908219412529801399611551636435314923977512032489884447680300243226515684927935149019536173414725515086372860613925242166132255918641158284494354623101905677245115204326426098888256934732968115316751239866917518512518821225005893069676968852148108782643147598671615466265824293632189541195490814580030858537053966457061481932929892833037130841125486224149590049082972702694230596866594982456677590263524856293766937871658840843834895142874376478249864526122017638766593073817532006115533550494126005122152452498868675665167437777700642560342565719042168320494098510801506304649124610485263708651175775685328159307815071317550731372995610969236576080350692944797300537982794625288509335746139886789344556026502994638996805582309092967173633527992496698087197349159184524658935823322786987741563826187776676909586347900988971407081573258614093357065967965744375250076248232274601169920103267895355596388880808488144670009878393584661424396070599759298508374100198638692158317158961298989543865510494736689292256109018844056067103485793770889220373352962598314798212505953919114143555064592346030187805946887487307062084693667094376351493777025987666047514505474974826509857515462901066521824038619402455285609641111084208870928619020734375481055525853024632001804562045213008031767811592574612443319924262403804372582526932109898221939594147469537281898266526215448352704537915540944868320547160200542617403974213476803364707863458442254006061094492030696089660801564453943331374015212687756772714926903625984051488352563278236520469337523992736123563799801245961286369754824596623034426914730725234712884980570749542196815958948188273713632691837686558248211038441445627883141572326971402938146074759540540648146979802999247139607608429155099547621730170753276877280058500367664846409080962561889342889229266047202202865642254173708784864723301166813834105154853473899441379728278446688719273342094308280764172578583821441174047507850116062893300574909348756596755054115600050434261829853661146462911033378938634209137412503491532521599595242768901859194063178001263571234631601299303430636612445686560767346417926645190747052118407863607900918879674275534236932428600710657898462586831016146624141308998408212506716277576328704591195592083140487964141644816776221183898219144934089812976479924150528741585502528089356910556793830376463816671310875134780354174221208975467603177932238883712293416632836770202445678874724623232477513420445096043072931533855295184538687108032756320226089637671567917268166581350270930667646690516021908977859150234823876408313011117610801092474135867168804025260899881691243675157070556305182723225619876065754101694082086944284272715559839733916667598188271847905016201870364723826798658012450495257039019724230057657654830124112919143538457092499420448341954814479903949980026881510526993404187568146258264298351805145847259647029504232017324081831427923833383177426083857898088181946969410919661540850002168075642722582319432418500339106059098577084171240267541339413236560152197750743497901893455691198972615540142068527920154207745819189216803257282909269152988342273857129808336577266155647192487496868764903249165629175868635614871174855258028059474598986684791222681763517039136704455745618867227081179522819195616864587097358331961929396263977757294608299735645922790397173779263793443951862388601421071093523892063896386928799892505206803540681626268528005868715541722335359106422411885824294487768384159515125934970328023638573661284072765766737700775449470685548580314043324368821522477411743703406241921343870250651195638445137907760897325612567731839057713057790247992848801624394137508218865423587921115667660585122285437915537403758329183980266096037354448614252842772511099071614388750652741861407484674617220977554895105014928297377685789053241924510058255919177693078162909575798033085772842135948193247542277206460389014672044248380438632986923918166817455669114426682070520817095469646047053759523346071883610717549595983146857105618314812081196074416334571046961209059977184600384574148155047153616942274080210121310094802596156238767290721695229365841360694370653276080524489168737747324791313709100220293434092395489878798513600653394050080169574462137314523778239908365038987629078257195026487698927794012162742207754482852247879932673138709929200306810092585599824216520194538520402756933216034912496324797666977911866098500074019320072012558810540185917720660433936419862667519578771343322142425263645314904880042608050956668465589111033887811099853189201572259903087322956769754848789416129083079818122721537166194891343725664748572342037232688380729532689634791168483189921913688846954836729468830525124596855806943448271002151335968644672738473258778496378221032865752903241303345238293976118733942872843383518472018475704478996655318957502794969996113863735978030698969191851983515677800735104486708562470791870009944974425794571345106600910619054061165558805350038943353970505319438321942153439006637089448125107971038480597906955363749824108898189599731029980805769939712555281727595418562870862060068247641110707754015972486001093734699609175276560148762609456008827845788126136097642744956176538566653218275684836560449224770134819686654258178647801071129735838227717841405363066946178588997512547501716536298891694825944501770773676194677044131487390975465856676670970352562949556962847874005823484083831840111221120536462903805099371111643750311710634232035265208115413036498422656408402246102478259520786337610926437249273956728948334560165902670783012715956427388671035085135707261966597525973362497854979420879428502166030076879231965505348920356123734487480476841150186536600461239185747058539476753166579725072463993817178435999674162615979973041226730803850650614363232785870389004884291888399720223399755186055296818412036696169356746633124184432423275521902057602460033681712339054381301658633218793160609104001542740618847623033491217222697011149777706943440558284285489375951699669916647513909472742513132687606434083155592015096382267826398744141713548886858054353187457164040762025504582516246340054112812001288616559461317553035878455888721754060247928188863889611457163722359030404298739393926607010525052755536669321738065225994485156932708327914807258461093314349280931817796540559722776497866679403421925408690841883248059848946726208289157130843535825693134667362454405203215836710047425011906352931539681467159194881686531333543195917410459437654469911645520704353829168369854906806555122576824123381500365362905418998889229752559274520886059484957254995746345349422982382915536747425914178542709571413192501183619096675201803702987271290546182583978011510302795980082515602419528618461132015325080875492620466646347510136900702551596167910935289688077096305885943260719977228844563545962082126723435484256973550775490702875421766026296921712239366529314053922442404406768060262109606991022816679163309307235754542504447615954287235666951696358366588533338349357046565179380044754008476442104519113320824790386207520192473498935371678427500819993917551491857623931322272928608292909200227360622163417594100569988645850978820779659147397065750707952742759929444787874850134075120817698835639899275678223951710292551251989866332213181524573777244132043109175279822409011266379922253480319800744395917464176464652261003658236144937687820665551386930332255763024172536623219847142857815107716054735197600863101847705338897124812433880911703665323452013451087110475803836507993629333659620748833990380121432467326027208414644179477270487018973814683718441626685699028148547243572800351123582769948924539565798924307147801259884074698371474195970369709283273000859488454735206793085149094720602338333505988399130335398459139617357577803625781477432211773966059373825415203720939550156753718594112997295302262805566137894422382159601578567237550480629246587870428788935292118198655359867292304114526078851623141186069766065576204630665731868844235859724367101220697022839612194508179841781761768755249970347904467965525013792556076260505632370314041132104879660576208880070033937423381790549876952585708233172878111721260656011224849408878087765678527162547012195577939563514811604286292015828922998735868383540389503251113239083264264521207832002833850708486621889042033507107589468385260578916784095038915632262030577773072002385069560250532210841007241515473565863069974084219007043231620505052716530514472393036727497942946153300741460528687448553565564552891922324039003671143405582640637354383531037561246970926304092887997064441778291973741599958396664001677025157115589211425403882061204489586036713535679910845781649016058097033927276540850123157245806219230368769617552811064460363219812822197778834310181039340355156448401296821741216879342591316622708931152677265248382063850711513456564063481226768450459843503858356071078114757126730009581725939938777374849128229246093623904568116135784525291535883086665037778137632255459426918393773002076721319675428004684899018216342897849037548200182475698304664384686508823200796799543076156105515392738450398991081443876623560539148552419407016605456350582864999110616885425736476027005193406598555800883873544871568952203720143292378023987515233531468967396998421424164866989144107668027882075593877535250723753011601115983739261695283303996038475434244708804109723390553166896711951974939821953164402975821578750244983692641434550287731012947465965601738887664556230470099661143867302026531328277174352479737074460321127840444912481424141191015013329166893035574747304070788014117556339644629975566273158753641960793365092930686655334285794242358568583453929960839973848382149067971020042107280555746784027754480746324913749386370625213807047561070190974095458646310250880787128899508489549822003372685215022720641194194804650633091328453221726073447483601733598226325018219965651305281461737512889196740525103269961703568404945623048791399208904175309693697418869918847170491082954814590892568296469702738637975076821446598908865118034465978732970165273185867221929386111990493039235479096065526592585716268344326398485145206886626828642049033056784486030523114697291046467065889664365248664659357151540792879445639561720596339774618863434720565156038440425306352189585952116398189914668252777921841701219626813988237954205814516331315613308714152892155378471033778783325632401199240248485691025309240645948047284224796827676918033276750844061058096231618100548438240785403426765007179408344018681888147413514208921441430717939538443948906265916226040414952513499597210468555003108414994887252302588816466160513212638315739308363739934611633384760744501757381986571615070839357505882116911774168241687998667059186682612781417972351948061337496634666233294897720063995313970209047198943903634187570377791731273797942667173306486393636178170520929044941444660783480866111149189312253477146459062136752656025258593698880704086089772683792356683487601440736046909182158393575441327920351713819937521570130368092027107014078289141706046591866446802149674342798746061050519923415445284014431802882247085863762875743612561535565516293530607672482556662829685111864044615781145890917692323306736003906862165235684820912387153904419933896407833758138436814879423453951731290771215296633603753874540725398801868746178921177222862013907056688978098434195969633285146415548565988186139876155311297104733208257698254881727666147629482211951025401377874099068728793343445451513232253935002445052254135907933752287183642331509585083256491974158023709251383027319267079686496653849712756174659499928200258054537939251531987176446265550834697949461393698968029206734962595574026734849393381395022822235266163425388405508480694755043046574131362229922667851449328087953776121045092450830595455443129844172858910938471220571786054093391792576080615419362660436135066177233971441394603676964954553721508744290196650536867344707292022704342577144359075623185746725689202627178326470102466639555166053714075456443954344706536359315334775693936610417144759144157856459439384150342000769171194780523385498146352793284785011075799549170169119977620022868443385797937410398026637703668217423526075632721341756494455079819774007795637799835924967085198442144090738590549313028325402809800522120231418390098270860397636498667859318545697343952305685316687507530820492292618771326552606879570034415309497000145412396111911385233708015519522377276856599711899184677789806687619041034656417925198833134963228818071706084990376797788726011218976208700466544442294719593692517986141711806124808843980558433170455860478764601281575763625911289021751744402014229650896940395370600717489893178927760608677844660187097769220459639111995807898912022019311958216101125571930187609434981634387848548757147116911199864427539662397412876781004292829021942082932660577610700413722196186533881051742824513958625578863337031980380253596356305296467854387294130953958131166587429374457196372585296053803235258934901977527752140202625983575125236278149696885359329286918456426356153671813095458787888994356207386632128903729688211394778704611560934111811371129025900830512201914394812685482341372359040216182604769932955380948802401159380501049807539329541727144864689138077468783615895829830986515779435211236286695102385189334988531971758015181040968878339632266436273593769420547075046780862239944841899677882228142100182121402905167755382369060712001180755254728755446010513445718199735265419329241725725901952568617555238640757103255184827355129747706719204480869494899112645334206366834023357757026819921901303282052890507011540609188612185760304876287886294975997568985572752506477646493178399168658715292018018925594107937405838052691140732564525526229352643752385678897465147473219853186081003560873749030251635760747718987680512513988915140016868957661077087244409285780411590281635247412839926697252427506597295234889056045092448036811789206817534786004287210606531939098191753051880010686023487001822684754206630261352457270261990841978877989782079860007926980145463864334321876740534144274875100120928712811515293685734885216455372844584564531623098077084281581648342697977466520772960788384314254330391137024360115725783659199099220256133318835692796180595816888317202696249504359034171287945999424213951098534486796819460685217003185888118075541021923948053111633632037780573969880118489100397238426206410793762162439672714385659838009532328515700371509794655128137143909115125695922895686176233738468798486872003690006783373797760168203976242348827172333220500374586913411184559833200659937217429327359865793210389287640372258400834243507052434276959869590185419078433215797817916528769281387065449697010933894023427553193281576452314561566710944525751101755523977057351677046899834107082070204263613357050518453449329832607964835326338159202382446131960513207597348685173036152927462612161512669944172780865678980023227790405493049553007782917725257806065438363204448410437882638058026829171119484881227875967670141920578607214762905790769468658057410888620138284426646992062541280110567320780844094055346584024020327743667029762755818121108190255508022357088708747891194552631651402461709185766352029070895332988095166464719022084560817612356511857009883610792917504277430370577471648001249816326924421785727670033352825084858783289550153616952244446232326904612934764649299516728072745516873609445766055426330216668925958023059767110772942160592758102721014237594413783764803460788303153869751559253754909520732221372021687415184100700724899230797061517110282817544461188348032059024606790909879991617264441558093799339409275992465057930090096171040546436134549149108956851518602970229401332570970843840539091571371992716551324391654251760192598979276403771936810932040339044945925978847594366719680702220495157007242148214608003727921255286008771806687991961472212047958359559723347013169309736950426296597308345892550147278988042369211407485436833881170011591794785927048840660449277111908164194494816585625045987594054980364270721510877534994109868819478239407840600203639575641369065215233824314285048318329014652211606865448172912382884331842859470383170937994241451307663327287691474204473795643679887808252022978106449759548178985467288650175996725469421165384275963303541967245686630674914556588611940781606947730035704319070744637177151361168737613704865578849216556721246200400290385538858403432051108509680815192079938770259549670530342532398531852324492532179333631038012816439979094097666270863443882842329411747871832131514161831574802387783240813223663198082600329803801845292431435257182894326127865669760222674247511733812903243046831039060893904211451574422064392646337704318795942545775812598813569002284441193842749379259817379946538217483733495646451149336077000679434633790742230993705828437999774320578784238872253527838704786149538489713872083430949815080811316077751922985484531217923751181229785590855938749597177087189673252566595513023314039132421264002408816224776971031587008239293065469895683661455909375859833807298476622274279756666711567483364663532014043062310518668704070261063486986815677002305560185285756970134169652904470500404702753730909263846529752082310580271462407512447845250713709099824536015455229633612891078991844293283810972508179667094009083046182706702133539697525276542735729261349030590934682048965424428176293361648817377132635261134564788560693295762321623326431754888759090186636267891933623370385458112807163653071869844191163532779019516964109901259407787853008554168271028463751083628671946761541740185549193092270624760905154251788829171419999574301225420831153261398095694063492372068445822956164545926562615355459945001588951514205026668128090980643018234842615350809623208944639828815768923233767600334089644846511721517376604352497484283154962584146109168899793720124123759833269921081838064974486058232506056395439355966142798639654767211167748458167678631556824680637096462654799410591333771993109678433487368200774869359474423525418843438346920540195935657721403752269187489269255464467208082329093559697761936914427158089902754273161781771989794085841954654791684548132011468742046968443763292335485772209617687996562206014780980891182369229011509279389958361374767697494713757167362193865992205247182311735511040289829771007175658650809645814418299927852573057669092863278696035825201534916780492087186147206747912378088872407445662651899682554494402081008325953274966817192559289083389718157379798916818225563850357918235241045556778177766608476449137667445231466122345171302069793058381075412413674967613057698046465172128893417525554181969582728327375717226717183996371910349314301282971242377165986396754829660459584616740091707226187352492795455078673449695214529144944625457382210901441593009387462444301691642803326381099904253309753921843964642341133694887364243834123177242652289390173139991905377476664128274171735622161821522273579179388220031413250878295541443766065353293115051511869099761149695260194690023213771988930992872995099487647684144776173239118919596757571216052749930069531691009592152189958329881146722300037140000072910857589457696452076729543567797035187573250726135254833613130301925580285121406636021200217309435960444641052556580405183031361118158847261298276380013109901267973497743143116515705456155534776481074749420452002840930005870012582506988550562342638657459978121154899544457183114045779399190942634943067952506049896261209699275545757121993176401409236168500344748283327417713943865933956553743905848392620238509469030874731036854420864289630920400559051346502539661115750094586194934325783534641451808051255033436592801656559920150757070203625604186405421094291369150256838839105076704309346624514375514795272334728762636770040778477869607134322681814367250084698056067324021169947793838688519851027975686405903105888093091016164464557001796237295833005492866067208902655522543090885180489302519527224753830193924990127237937396224201811647874983648454896172300493749349884639301693849017185708671050304944663647994580082594979788477145964445207966964783581665915189102163165658215564600930099608808664866859310218459137618603380239312277715752798665535566186062277102973106281273469512970786898031950442668780448767120533587585106561777728910865632729595427380119774612269027777842629276083796948083567423270007463374464179323882358471850945204486590049367346079775688440299209446444811415838510604923554373670904756923854711470529066588777023103451967648373308173938606904628596883272878344892882462533621793544465147882051451141247205400963787980364396948475390322480107092385402507616200040817206886530978000151121047109851754337424292214200300123821162093375094885506681971307451791932905874720047372876579850443768911584230308381270624529269872854226209469312634510831678201771668027831692953291302354220824793946539432611559284286548869880603710663797458722751265720671509850474594839345063280388912879333086493121520012452246173379433433320713653699109719985508107488702865652119941441506808897208183310730048734893451816954827604178965413382748640976410961562366323407863234616787911131572858189568064378015069329695358700290279359679628583190987700663047941975778761410717895612278113800186072038133044755429514283776223335540807597996971821598293367242744419880588535779558908461164361051105394786563292767798652045154122358260232205040827459004381845609957423298749752120123302129044343787654824507140749488458235140072541623142271839327216237493428049621042960764033967181769239237641777629614253512463353335046090619982277492191513069723527184564768189205970741791440546866972975823852190010326444812455325394648095132679690059682042103417546114311685590878696244627571511765342521764593519622361491552731228056828320014724431143907220452550196817724584819918514647140431809757494182111243628260068034203780290804457797525976862659018145143503404190322308083639528962601893101607448854243324679354030679629213429413452285210939053307096567969045179821001309039825576010022318695603572099347662204398256618823869655792848554228160842270537373446530274500076184849006106316924070022162654422913829502301781931081741811737154633097942052745531077518659085290601023735933444521355078868881427820293922679095364279213648698672982136488107927886300630774518996138316890729739757444764491826360503718485649298480003490756817044143923220816273221982587426030537879207022604866313359443159835214846934720718830061476592525885366131171108500373949789344169824467018208321117073550830297833927214008332697258086894215145627833905513138250124821287465382666456966510418782117227538615507192588868571762012266380106498197487692252318258564617213032218181787766755841303328746010438285653416079324695567846125571014249842792235441761580656816023480765976453979799035219035720151017150191006294541678046956480573735375043413207473983217538059189238165816184899411339480455898417134037893400805497120049000708268244944886569579070120123302761624820513213787472431700790050530593838090076226300287407679181725873545514409757577496087194298181621864586803048862258256548651836845717943898694174576063436483948509841062231187795848452617416755611794483615960305444758327132192535671718679242551334080346599061886661443404889606592864423759423105213030844561606297422475479183907199958379064397554619168183264491095073266483520558919531937209310740370036913562518358625431452102957350991682621324051232385467229202204191261229783188473722375479009602037299327954042243090308719340481100676512534483473978318284732407509337837272144049458296315057365150520002872864086937688260655452031088981238366184505473424533679765329428016568451857008622578909916641609817176003731506465581264274955804392309694512239789567102096829274953841703816210450222978463044922814699580208847949983014236277504385078438392916668905478316805282305735775060525399854281295176660989543265616980444332010829337741689970721635961190899172261695726145444536261339195036113418197439331181310814652820810643676860419982772029564514518495203149028723687974508717512916795403619943785017515095600758633496707057164383310212019033786859302775914135132152043278257401285279274970238148577511534867860177419212790299903757246898256042365157416498761695860750786998838492425299879399495452191180372963672011374716110685663181896157080528141413154439140659456428756347945446732824199901631114791324985748748014087951721203322903123772815135193998785562253567111322498433966116931756486926061490726804290156473644375569817732834829197415889832000698755587463206260083385854558693428205374557177489876406819458064023113077441569318400772057441127833594051748825203566314036791757029487012782523906003292118596705879831565733972348725543486149512694181643683788278141672212883934662380477549392279515532889150748082838055938773549192923357845767830179820990145408233898147632520392485049326247974822862469498420368518748983491832307230765279322886700848426765702766019455544601504075801014901616134972418062544700902873639007191112866560401273325247024882478581268110374804284290966198582348162304622530608501704910796538447071044533520383735390456901483530520984120022124636506243870194664312300468084713536642589557643244708576646751117516311244105400289092473437010458870730156716064386819015918071861487316704227230887396473753902822361102064994089150286491520976921644645403914681458294415284949025947422986432648838017387490940662277971017322872351804026535439114165401659089222159305716894161158364136066024921517062302517387019633313433439765472166349024685920357485490459393216792087097066669548995028970148271216355812524785057247025134845758268162625106643105998244280094753902886069767634691841339286959350102506020194520208822159935234487810614481473206010019314348265905343164044600975231374887657626823768213969177179162566358454866848925587297566912605769951958111921711098789093330269412098234588405224494704083874143419269458957162873306213932075715144757161848933721308871773956977017827200814897887622055647784298054789954438440740007421161281997031788334062613897713600069278477949368879672465163669769885326653798818462436113803601629500420836133059307600657370681519628351484269857566672861890001420764606709867699495161894825668509381344465197512810957229159242002934727994498029181927364207923118806366399556152246594809554043129192655542980578416872340818944028844159253063080995718605398856574371517555559057837602041934967294446496003261843265652899619059844306834569799930918973921958247593167162364215027205438342157992671786941380829289369558683189751685867254096576724794528438956819980094142476522345325876096818755166457500136594251894104351710198850201884384757150563135862583867798144760841432349949741649943781021524546723885581693545899950264780994075836820972421311950725695976887138112079476147391931003993320808392044079350376655513277820529675344980234398879458507681731389902963675478867070219313751310249587893959238459764225878605114031478640440307862852364018478790463808731789054928671062781876322588045380622119822021719760905329810335354442349064443057258734212243628297685667049039027083806672203591542560981762089382856635639889418333946298006358853773531985782652920207333733705867360454222175440263916262074267805144176991863508544394317993217059337989533220112540450681152352583464338856555085706178855832867510949475956017195139161674951706883911026583679059050470511992222611873117549989347368947312930433885077894683322042509830325903503278781423905413294143181165253325801466837123527974576668977379781044145692489954109973337085152555584000312367565230834851516065591906887060377219918621307951318871982330901098035373063768011806169495073251935161940833461037212346572150295914384323658780931836241711094040421491557520252954795694054429434157046065229818399951070707053850191003385332584112347247947077448022452102284751334657022267504170883261536030890922066604803427309834415038473428729686730690508758381142636582493296885069630471373744515626153879410186712208742404933206985051761040003217436650709116215609037361353003019819733398017295185533840487565182272639831595668852967400941858635167783024996221813579881989772895354401226221786380351167905950216746063569443034921877228912642272043065321248057804796678138773338385613961549285509659799326415072325060443524069997570986027442294535878096967010470147445738357670247443380667509718156869968806042150027442204408455235844363413262191370404425574506764290091771763495058946507342908226304011997917211371609152360740127905178909874371058558312417880293311402925064822972598664618173409927983420802799326774867131490217228888395850517010445215057817395250505163450273773832237030042500104446377066619540661779401266281383738112443835111758692880642121888952048089456436160442468135273009763822629679720173570578607946456097953720477911231254776180329345133868886297189533231534219925620458088397653674555364321772706733377194132782357594927039947770707830391493699421273628467794670726409852230898074824506638351229639463639812591346304825316664543213865348564034654325953121569486633371809596540186601541066983990704161960257338571880251179044917626473158606084599555511544051801510089710559708215815107435342994405347753180443602494509484621977961978681162370506446303351094742690688375678252323038090308322688435369625314070685877237250682769341226735870068477562290668395389445849304707862419636307524900629642454978773553905700384252098022066397477254069401332925970922225181328770519327405726052113841871794212939586379837154861086988375339769645024013227771305854121862373152004107050435434980080936516153864031686742821620682414608456092829669706205330087898194551561639061193169423880304079812828094858497352510976054588917603665976348013353153691262187886736966891429175325827430805950258908210544516276687735999778941859280551046524478741843468307895455386143589738200552801743291383720005843699197170752581185241752432681099885939561472325942647325675221036670473416956025775256392868768757886346774233747976011617485120764108738485710380815041871804603633120473203202248608988612191329441423215964928055952773165862828610430189916963619758963886254116643438682405512232489329907746152271291028620199870224620124951693468481520858548370152405565758294406958294233037504563970510835237978602987235680695407281146203564878520161326832184776404402508612614430150592839849033294226176895982919137426552062047634538346905815671650390773605213128337637186980321742607577653979044137662307018355507461599521183929334113006341501833653345079390127657373007256506960729248575635583464664905119718863910354699339698274620550657749744278596069092978727015668086550225315943170348599041526052301777181732018294741583310897367319366499351618371798180824074284075038632307698472189902855934278035823521057600485889973148204736019529831311923104951388659207335630481623259867153262214475405732986786903788555202323616660889517598758638988811562632983877039098539684389877905058401077961735685162367192049985826459857209453596702211794837501856957771135819409723336414914653123035637356550476684682894064905867992324965987634250603494422207513973627318706446279882192719022176345003827463319856340233795635481909393896012652991643765611836989205622116983278845550112054138076200901200880896197241147333263774994132775696876917490423465158850955447775112934717898705077694666846621105659996143466764696043437546028465394872930559922229216969471291340462953417460286960234507761641411791538340854210702633702056863284148713202720379679050599114523657989735256920338303504388595195213628292510551140096486742970946247831567280002242655792410131782913583076577064423059087393516622970971688813922629156997681969709203213198477140978478254278724835024668789558925986080663476550068497599509632669867518187682051187599891202170607297484429670126271016877013729918570793463162763176929735207731450468548676706709795576077794680576541937009394296307558756736683185570307026381303059993475670284217409402402440512634986675388514737503811885995129873859928414841163877997378947037218330464953614416419100494722193639426914514523560421200291076108302622947085090819382328062462678036258235395632871282276347731067583851334872481041206264382351106878778937336082008408324919827126973352700639937435934850741675232812673970122152235823353789079167764073698964547078234327935054420069129296471106144751694006784986159149689228846076800128513909629511855983037289797966350223762732282747796334429023454305857694131422569323668283830980743846811868610430152059805054960112246261095931569850415698996185572018864590443221339571916258478692757418313383534913302313574612710152700068419035989430128632328782941801063316311162721515052051324987185822985621848396616300208478791934941676904465328588083215499435781524009601672982597994153059886488153653859190510904168956242873438372121202039158319760609290920813035069847456374042120661163921512486837749902848160700417610851176801113164098647330124039980607839942403440216401022078467602956565112984478127399989928511371479682870766042611811193800869297471740673749947721853454397395256717832253804088734070549934030950596334449699805399132525804818412496372547754932142803057407079607429920047685570938739097304357538582469901194397557726678757221336948085813032875222293922041282532474851306758646332390480991705398378064665307756067630615939269913389505233097424095386787449811708415807251621579692202831217619996045207731737281038512496545003790264264549554902676230272541933986741648442712920744234854615603838249742458763536844500525944940579028967725025350496132485427879594911105420965324083903833759312948136891771260658984520668096541350100593443211791742467958531659017774306451007137444413316417014591470906826348741012984198800454689395076600197284294319011497280199516490584641360313709627481914570409589585854740933980419288301325675760858385973582592327090120383554386612542959685768760642660480179267571247603965049393506921018189773769496823617109647665821234337907796744235078794743080012667261335991082772538080032073704175730498061266168032515117306207245996201187027274112623831165353931633121378731455883012321505354374402596283329848347982027409910602875295726857578521478212334960122235283357948124250038928651536134609083400380072292549166385682559724428584282360254424878475327428741284471848979718852678003703879307674323792979380079252778229998215785682670522227968257560633044215889866814255946382740430313968371952582348475288714253108412271633053394932314985511105849983702323747993850043059121582842093167911199459894233905585214516687221774039160206554824549279572633548889990279639875875140668500314103914843652837870061591363488368419437979516644004106049074780675530667169106565155774000721294329374637714585422758684683969023729515408972955092226536828944710981977383031379856274618469372239238794546431297823595866686653838223261740178577368152210759074361013621256309776643266169807284359887443544279114003111560260205947745268429879013993346809007310673410755200688527785884698018640917998028364956873617582142001604533140367975944262233291413184448905219169494622056845552346690819086288500865776197194752337214432872544770240431512117905379240066901631996422272981156940143697575674292057229400408995151477274204288448001046471314619053200015836975953796184736486873095301095937770791676559256655798824420950858801677901657618861546534293254059465687959698566694000089261781696875676264808628761615357122367049081915108723918271161381635009560476711789972857193005789685605590340591847034763740089265485368615914261418895812227642428468104449018228658028525773400046674599044086203222549881744701259404357572678269013346674661584733221147213245138556872393692626829893402379176859877348216950229018449880312750064142944343139589547639498679771642231869468182593775344883907170722628421920290992263658679710798213926072202343134285121788540381882629878884119212405727793985884264610253762205540913368464789267458248752496684810754408713924256016036955936345310184801908685034672091146098537816372692967771116794401026873255726750253395104297673463639885286701040194255518492040994599393991240489599253456273524249493809843182596077179285884721025888512221073134654612247001560167088305992110549775041561495197803711949856631951987059705376288118795005227740692092126949572889982477081099924813566123300074686493762321554943638322497606007314926842125167114138052351230932853629081890433598999026797407018411329442639999205721812078485053590395681524515217510292963307172046010142610561084776663770200755502107607857098835117412348106808749757635497121287056921046483518733858482340850364119237196289153549479641046515725123249553889386292159152996662443619504402713322892659418010112549891169150602854642275054355607798522869810353195362011662196398991778984456399404797047076400951275928928997709528297795309345330538327103382737193686880004591562655235668441048507687821655963484930921351626703725777950808010159222260356557547509378327367716139395290050211032680702061879612585890426010058783458358132677428622065305878951196585169919445511819947283954037951272188434332327076642487559324088618360346820441200955297539045828412961384125173307789356660625562343095032706223244554959243856610153380256168823141271732384896665788277194623853800069694045752469481991953117955919464671942596374661547925063879851502636583303762450414636020878940997918093315927187977235888862566784100641746217088868090199543716077960350448775583027626856053543853633512182179787423503263193533751237723500814631605673379414428612592713836224327953479858968043238869105330178056187188925881786999513605606750734827668005075245231552481142278221746940749209988816148162763536180239849201028639845210376277649685343282841476072918170777196253574533186812635971462212869621740326705273761636948460429461064367492308721714511795593109366860824674975019800171528873881509184258743680802412837593451275944405314159467317912601860423974032366848482461847268698707032660547468183235774953551464871718797539530099095561255586062489425373451415117817083816818371321896481122257091886413951254121405769814774440363760982196615724556301403742055381024665068576200976102704727203919014510821438550526088615375559006009310734954530714015105256497892748854864855869352369181530240766466726751187367727688309759987283853498454304344635208919508590479770875060045947584164738127166085320981460459235639906660485885031354119169248021718006446064578585552906468999601939001587160193044142985622874059831009404077170527847912092959698787211110034171296392586893336963176283929583471820638712898291523687007833201122786572873336541272629367242382014872961654346362819404115784719354276760690263060913166084375467135600776729882131739477206932233828649432950998595990780510582723662342109035592928061567145867653349291966404275505064068897794355550198008136605340848560409971600033789572187745896738146727916240584599945503116034294075305217634817435447096938189726674560636344046901352809551647845961631196985182206102805292599001209599588850166819045073266378895707460722686481801973680640629993933950407117680274298368686208269577520518002094983712433405372449267435198676156219862150265182031519193427213657513744235368699597795575499693346054543306704158986473708030530416358491751644088247973721307633548307808121773706027765629911514375787176712273009014938953918958946796898639407884129943994594591529588242230679557220731624148514110610581932942708513417455515561985271067029567121252311011710618143521868381185023449052778572530426195746038238094292418773323565813884787144888779286967047607705149159855028727300132856688276771728060453272817103033896492313077388651862314867685250596356583958852840854253283822989289897985305429264840806508244185045659163571975046622767853147992494085097539130460058681124027687118592502296427170886255120088822512457694477701028788446174837312353851474652248072392951199512732397863492047258757569237580992496527513367386491959281443927890084803430670139023371336390290541750889977661250492338968260247113434147066493408103145515417988160436899432731039788101695316749331590041436399023985860537049875673113513637012696891268759550949029325592621472118224540339121384084558562660925289055732394749815284209233325006419586858756858186380178633852353900638415716313181168453749546153711899944129336383110498775353785448513868055049062232732257669701461942643913053886782242464436178656761734446913565230010914017125254662316833144363668265481477349733740734786086519623015216945485280448169759176714014895089364636050038774804854579895330201271820286467324473444232285845743349248931218651503704258462826759290739042914593654625219317061759034554387775369462460696639670351580925764611685127038770875222233621977933205461079582147650182240134561737601237586528460854549359629364048567142648303564836860798397596380839323563300043574184632049949388925090716168256211555078919069722608735453506747579042556703103357434743972622003847959938008153666781014722305491864662182797092322312450424188317695772857340117045254367387295092414367591590706445557831842716098496245056492068491708735577929749868956016204965452396835459649035193736391299356435455306033025649222987321188052013535784685367169904897349117871800977396807708539946065750113548725091118134798971770239298667492663164680320050051345540974517965807274741197180954315278014077807766046479731626698955777230704902856539854335164699333571785190382813412130079366705125569104897942199577706383087436327185430949335369072195876693324265585085710281393103938888668268178053239436246070375828494477333039679647979406208416397089472655502393731671191956543019088177805733911023344895625681598496526154635205854255150669081111397948299059997532993414999854883692371480260535146338061701818801064813881522523139223678801398490437341937198066509437936749373075647453854793273062948159860274966008565390134252685050113310048028509841556640155891345762101837126116500365294174016006255390048286535412923136123034465617943976696637917825159827212264202077831006132298879605322176503265650516067747193871842951561949928128422476397711270967992211093486793151419000986334102936261824635403395638603998244576314110977388083415362593013337521700735045477543976766056737039924695415720458390272882431611444146684574513563323041153516380081804862698487972659008811353228206783826414346209371452747467665529217369370087539606772480340133354435498637084110994172615794115486242473971572544448233338504970152036118864375856854589607585214335923276370403357296892699535594185200331702401354333211576000011734851836864969651760862793315013413130234739914906170280364668162448969385501699509025297263968559962549819201014409457182643428076575547326054829392892636915176271109609208235708388231407534867890238439504328743393025427495714882752539424819259239117878033487363373597138792178846739923599744644018368077602602545124578056294493844850140770655227062680104322228267207040019257132897120340757615348581146792294643792502539771373579977708415986039016598656579110281134024599279384100444771142381171767644550655928401942921288467608322335039801472512716898663627398781743523456061991799267634102345289290301899546494142216534275931410270772065294723968047158263027314838712830072991013700731576147806048750785648256987331076531192329283526100750105423694488554026055123773725432266416473602965184414681137044012560319444125098226501207373118871830256324259413366808822588710621881361133862910283195374173669583072940980977830039343618492830260196358512756864294490992270564059136601859398297373135315868648210038686064219149021947744775210242847651191062449080666609328156946863411212989000497681292547332989090889141026714823660805558998325148510374356582437807480234788865462955884825774389632415652030763948116521448290082783716473303947800830905223960578455019739115445572670464496964685719476848346526869662016454193113499024691278285886993420413910130049623674995984567609560538002414626300978945173847384424546261830893810224300780174335622435567438506764440810698374199218185696427415137141301885295884725640532231733249761770470344265892239593176278702437918990150091611394503780089906002139390860889072247956732830827404690764007754374167560326451559938480796077587404392016972820565836222196783296147620969911025802031764243343939776304621434431868540434889177101609960901968662739369895543507606815116529445311917670652030996801764468243810270040368967739457081219515060261265047280973939188073235510033311833332645754338563549732703214747229783448525354268843901638919730116671822213703104968106522307891734817549061304483696505563253846158646803794745866318082788225812103196589662201260152302781580352981314074253046556486626165334145744478854090085422563201479053810104781550637800921760037824588388884615986841710651793317754745701599629775709594158085066667570138638360166196636101294927896239790950397345286339405970152980336831615192308043316849998021757961343845134127111893217662213530032196689901844081667207261976121436080855853557309843679367800685509677067714902003255627537366440915117871067658914035726905319651470808300365647631597576853761893947207592120684180986379306476396604989955506831316993093720376836788400634912934748762574443985891598977715957298765586916731245517218398789597877467707521055378789181913772802235892300160185511670755568960934908345534787924405993502310026294236660059956752198169637578786178602367748698079941015394196908646597802054247823812431789161086712192514250431721468497039439243777538634347853905830584908186481623663308384305127855802315562969449645016745738137603662982317240653369090977194518601658712875266884896238305229317910319002190579108872158334282690126818136073965602168563152693375221861706151148007767779417165565250256425186157864774588630379597527815911527575087390236243962944282043162388920785268802924509613204819547717391758687025286049847529834268967151233188194745138007812884143668346063014948288480655064219549255771847162547486078109972083636142237507723457907594144828614189063821979553261307062784160306702891653696303316652414741741461248616678417341498897040025636706801724817106711154334303618049557209026817160086257869578549904897817176944542206380311662034053682946962296183310968205763140167076355411995997375373568929284806266393640427136371692715092840585034157824863015459559057052350190299377106139135116715948315174521805613395321838196864333319681524067131273760721678646231866550302184520182877986011987971866668648685291750667192812978952744064625884148184072665473409161373274816735087928629631988357642037803045842949525807398434988690651540595490314958030589869088723674806345893813090798541061770943712900231017906213495881273726461257820234012462450147787079158480130873707155759003422402646035853385233612313128475293910260601277817898363273465973057143612689934661023815283190216239681486255299969230620145278349314288795555081034552850195928287053905538374804258746244624407199122109567213948057308667740884103022660949431346160566188391260547404705226621051871187862462545289265414929960025504957203973597438610690562226167370428341675556638288166283474904190862658037075969757276051646429601976863655545518840977858203814786737291953740295877487012987096160610899457737645741512312986980743504332596940167522075352042883683932161540516445298458255593038074592267474755386053617523694773867083260253927529368988541449033776218846356341274892316886749472667977566803177399845731836850348917664163175006557091906099716451350603233973015577413385875887645471701907623942139857444790454262124147575310036167531840719885052395620601383078681130260332373937107331856951971859240295416894847611141479835161788292617133616258839826152698332284885665898732998413416598915911216603105434735029901119785119925639693767505435948955694844623094417951376992259043979806840966313683619562120479208584876471398111990726051888207389660703920617200332214497370685776038753592777642876866888901380735882685944965331439654010464038094288879858257117325389890212557505097375343002511998655362811374141371176575179256784481970839912297891910798614093003838021249037765558955521315682657770772986606574261470258672911347591026155939977672643271850412557304751961397471872195023780127315403207325796248404467270992249918599884848426294379206300515699546319640755784119695737170119643602466119978601006423255628587582757163419193296086718014020392122857051794063068073177074463766503915373708202920092233277649543490624849487168139693411464248296841175358343262888417788912226498229904388471878565368761455103890997977440627437971805328982637645053612091123128013346680199712932122176300046014453084842835665488386280987608880169810313504199187414985956603679222743364588937681814293748464340427164044370610162685992139890464088399877402714924158349583076637812964316216221294620703436230922162440129809132382846993691267143336781827695230397752562473022878124806012531118436711912649900917758371445058834018658049547472910265945453228725874179293493265839152544056642672114413000757515482307058952954126726479117392312668400190591426375740738667295136706119082410190639000016984110238931941878030983246963322123632580705383763619634201547847444511623179849000521633031244181738762864613253664218709876734866445970665588983297424504274791123038803633156165212177764408037155463041502791926036680133191656483810216013003290306415569608459354560707384672988571946765349796137479746952551668867379523354991215914145956965654409929992571997443330896868081567304443608720244964545308986299146896024387741737774439166971027310082031873561745267326300580766918629412748069064800439172371243483449176341885952843449940401557358166842504669654476893515969216923037448594957914144849177384609994224041761205113409229477039096080256621952643076707710732234204221566380280237937750279490520072103340721797638932826446113431425267907447114601951826585697728174367525867442971451978178180887828864658307270931620484627295395281525580439078436914487302188018412451780216984537938142008027112763533823948091893529853393630709997680094696225504947981895762458115482100370036589140846997232235268957612750220378567982571409604880262153356496959256418278508579791421566534230460124096979079618800715784111906526152855839691467058610756474452366663983948551102390244393527812758627404918484952682126045515057689977841792893649356067878592949693582770354886453784513529624280016980156327079885378168109334657369467317314616177749217119055195628909152483657566591665527850675931447349682559866730204835024570795359006555146778705576188327646447422896140255307138478426002804798629214206817107418926583646812527022104399459764371766697112394342352477028957312348959571725425653819705375639225355591738872923678713236336807026896001115185666950995216162936789092714921127698170503312829458368527762693232263353673139970222920808470057030559288033658522270164997968633513239045947377005535178388656678567603424475195895954774891370238491653629834616868007995556370248208981223767393746720153000576482178036585880738020340409280730216756819686077880496338540128763333147842759337040567383458180581413110274679291675481045724579967045221332412572221474448432723294848326381819591419476976105463812858725273076949136164234893189845090947544650586597160299450523529774974202073992985351736300452659822933303269975519723467578860403602079335505311693338695359806639359847042509432571444484189565355050479923869755652391099422838133421788136635948328431978224599045693369992751703778084762596538510331638629036659813441645481141163360765286064044505470637324007061218226668261182822302234146910210309973103702173469499938028777685408708079440307362540785968771333938064309444582412303082429052720366182167832079772846734415669310298893392983969193311667782747785974937824559350698698567600490765194744326497402311073576644204749226060563696933165891170703586664069002459572052654394363914484536949683916387953005057158552641111708499785422266906805445871484045048489672079330171202745258836007315789462530073364206148108311046520848011235714017340912753845888746512154654364178086471186758938322748699048334422651012980091276616575575795546524703248833552519581136977075605314762741441045605560774305363812716057453690497106023530435388596491633611290745821992638089816168075419014358903681681363669081617699024839644974632949421109743299015639800596051707217575356149566267353887370441825909588696242655330395839559750385813111487420108510401940027246131957770609900770903796545746133824532245650592854768897224133614282230119312665727760748190968558462759331237646251703553382606492967687438802160846122430554677213098866831879620559110140739732511879195966804337893664972678999479853630363598538508241482023654847998175747662248586278330683898288239917154140723334293399532924708784490720607533262700833619531204003207489223690609501853603721254028512527501318352938975413702632296966500625023217386930342383071091293627710478225863382212537617247832103199462085178258489909072421740713550757018258013467017710624813111295432220745315521422996165110024666220001882769090582993480147876002031509901949507412917009510248151544995496956872098335559856421267382434234683207941946511352944144871003266523033554542176115741733937622856147662134227645138032906747732362647102795569659960047308418099249615183709377972028140887414245765837148503595497748499491494118333647481880040038391984973729829804572694842268333813985766605925820209651983795575316963523112647283868646942296728645065439477019944831026946540664500071291257819857879373329283391381074020947311544890454622471676765200710998847291444004821753390765339675269180931021208221656656105189944643623564440157815431706872248904234452982285777754045415477985260491887251534493796153205613702641836263427936497840803518404274978248447858690351372919008827858682101789920270791730715029476137918849283483391769054091689977410477109230977690588922588415310843712944185237703491123760524389808843230903856671393648024652635766856646318974589339745701421515146033151366247559146656270187200856815114522503861661919426537319718552272613634445213755500646094982372291490511411831559496537887028863170791045344468716294548025536802633140105421398539594668948526389276022045942318630694090353091225386356575624618266690000514356056359733083110499199576088351125943804828605832994394124794475969428686520304315340199084020645582314177812519833834136679105982426114834162860882877393497349429926788669501714097926369152871347707030760356981965869435344405793199480193004052431148383107849119342036453995237690543773694858371909091476191063151657899985910721305321184734780943121503746262569286594526477840200695768396952036370471656645698521540088487589429858656480994687130795630431213245226898872928075620598036974283929984761573939099634900404225853168044077292877829443498770609203084390205843204740915676422574545444503646295044627941403963718326098683032381058386403422111849228228021479043257588414540287778850384485757648571518972220797473335622818568037632127636780536509536813492637065253002298228631087504942757008706516506194518737107413181518911444976607714279946398363614291691278253160658459510984350560735564084829104375319942035943755878435293822302046257641700429267107490945848314216527519060303593501693105517566712591599001399344489631874199636718953398889462070424618754455976193505138738282173558832041425164549003019865975297866702990056590968490154712197089639720561974800542691381870204733170202391372235543812726432955990417943021123000650190171505811404130193831476680102040493544174623717786678077821333601868135301307205088438067138400798088926622807772587761643218582373511204108809335453953459025254202234847973720773384557065085990278569908918054066159715964879479914367981849892526158454252425780688961557681679988899230867118373410081215093726970199571284611788595418830821924444336720807107721261681397207805735711981216265150712329727758731067489542953173236286224415856741016866359003970569640012299743071444694291367240720008458069561484328733903459387809694781875998768574632879614504150531250643259915904361757309315980475527502278437057171635868246179756329059692723283557345667987144967491914721893658813864459248679675787630582134393272091335585417544836024702807780363089225357624859602100797455081851735007514029822510297119023674673054440068213548810597983341456934644852942958752251130582960393180208113519438705893372503869688494359304774083154658091338926153036551253305628820322048870454534647400704872084335429853821676618965346447397882107604284301873024897660890943921910035816669886574711868632987649698750262963554319757128446108026219248483037819871710916778884116666335169756822925101393141095721506009325017774232641142274263550155385987954480769435755457960462897615246313221739455032494805970542419828725626251614473872365398822359116377358767906577121351142396497459030372898844754686113727048411051304627459586311478032989773389671116193753663846210741595745514613979329957412750414358700031723283118390809926375564152509583650307324621028578865463482388915715611083641222209144229012497342749567558183695370471447082848797136294413942281538019587251507257003396597305964895434768494264633227721074947620419086240419722293310196810698391668963770742125621393649168134888466758069833612320231998471138570968209803781603174409584565406686212406516919562585107418848431680623077547412257104272752423140753364813759618960392588800616824470016234773523740605474273648816831349407710608902126358597427194899555842016342032156743399021852047120915417464800847649408084124004120732219332178512373544014261764816719086384028445282070006867729096783661884860520038193464592776255926911928150525650167561344511693163449334945563187375516958922449662850472452326697438644128690679336147236856440877053065744867194601456350295570136537193029138442618876431982641050127518961391369765369159448346568034195762832919805376154877582253275037009113668145368411616051857935913585467616264365643985877507681871874337859550387643575862494739318605275534751349757726148134617221085842376786336277582693004505439020767107481063065756579996110254025831444173221652298847383572064577542059400644235658197331262351061620140924085056125896179381134454048937966883270479773464191155955615490621742572712972901214378334223096665922413245779624476310203161132016081526690028955971068201673963945323589039711163901055617007397891518534737589317184126427059435150396314026882514752783544270713137341292336629413992356067452194071575163776443122577238614532171797086002604076675044118079748033990109617682382642420094482555862338503609065670056382136882206612093428451415864865953374426464855500673047946232937109600573779070542364380568248724439106357909273733100587546190244647224315854110801795045286025960216734828637546065493027520069020432778914598997560626447441296656148060663994149626440755649917446691949978913809427929272304133027098192387487680564013053929670651537058415536755858533288382113027967066751909477437956538269679973115471374507298454840604938864185196692491260450674158477758933580766472666937783802819043975686510795916541214739354503865922519169553125835061592015479433261690068736679987482084011519972207328461598204001255152993169354977317484150921123876427913670836207167411884587411012105973868818747793148433374726051302053121601654722261906640087778528002583226760563242958754928614810217939242482375008365209638196596402423439855907412621057170041203981510736373034046851617990863560243582050569828518183303611178407156199356649589490691000303693095210152858921314952231014008765946021300385487852611450742950903917991470562991791570725487556676781068883906795875704022140052674384005777825193342815635487457977815355280980350757443736207988325129089511019153578171156270170733813254346429098078832472099106628512663632772709950760732160722707847991358582114094812815154747234981614513219013541270078529163173637872460611012989302382631864982782036287586351542873334778843124736343965253216538248997648440710666389260977909045326164686030356219973992510210344580977973683220203327202854140685065452242094799722078388864985834360002129501542675674636304070575757532642743669927618314261496332096812358537280448751326425332051659988248660786347564771787452103841979911443644147304940537952603304053884895931867266278284374997049513193661022112183729682593524644212409129308650969182827464727451948972774017994872067821083471115411676460903804745315964843941924307364123800037562099530474692953138360632317893219335454769480848082349782941225000445829605551082969323486138565437651117745904227142309839825587374062363028459030832761238827706091993801960969967734667330431911815227750129054340075417666189487083289301386800773974587049165883063188961571942898295133246767916186805223862920976640378714361431159701536873317396207196320190775259555243717848449115488136760525588204175067764762894435973128021768789487529036334061893841772357499733439360571677409541095363971960475930698044200578402234595607485367080884765315369663365112504613967837412379596639385217788561467239343761627687739182241748745729600775009884612225460657254275901454266906379374283445915622268910117858285400259912204451032557150882148253908169006061724352533482073279804432840506091544880668858847626920637702712662602405623088829416457560749354729781296995159089804497775953031069723174704200272748340481696218650791916582878898002451663597202359696775219337792019036187347289138753855039295164044517330984373835732701137813752935048967803479565724801729848403480261660866270316778946240873038228244904355013220231594469141016092778424164569543335557747638724201214340501526174477092093487592212150421281549690800886176612789751033437258397122993884026075877016352941770243523132120867622996125120351424921726742273590479387535272451997248812405784913065958809300258810350369299351582659033489028269232661828270108709586664493995404253868987813816049944862363200314412713671444112960187812823181693149756585432987617379689414719143409106441172201263492850994520856749821571364723444008340678087629446060705678646649213637482772894320653429873702459644796914373319913740836379194848280938683446369853654419254876387707231777024348088803135018241776354987086764656593366128122518580151025179325220068931639852472246628074487453832974458879221606601091755223273432583539605910438489423306364881977972094053241345670665798021871261952321131432758440706393616679439301884906353558556535063141664122275538951675025678375911615880548316236794519781053466237029322519174278202139682078506957873868489085848548985230148277327873926819977129701732752693090858661368962277282711950552411647715332790026193512426282244385940637776792786753416712157959048229113945585860776205227801831770377883715259731183134321375587320027139336603280692995378673714585066212522744585431539588960478474321508842409174925673198660062561538423003198561804665652497645827248455738532426051218224834796647588355564070100231689857670154026042862232723760056589913700560930126289802481810773703969809524584405013869800659636117499408325355753582415186823361917523798286526108445777276185332750159268326181839262970116432355219280874185019187419472868902180799889362837528300373541064233444108545697420571856676632762828653925680905827679855875318264636696977080768371630493803643251833706721019280484329296557304622339841455224227712819279888555925567379604301480703490896817868086581736625691854346949150955286448776464889678867712935383877995919617900197179999454259747534446458789895220541894960430164273562980223649001804071430177628564540386012021666164020048762319652151611276707230276330429748676343323641794977052657239006707107537412661942032681312858217596773773063087781641348740156737610935937407398818271880658779566524142513727804885603285141941582671966230063348599316803774007644249320939059050001881345583318701080781166183459198879004552041306536910541168100273243204554761670622077984460548303303544514471413862499105894114644795764028267469450491037819453816530392344803136292832492619649621885863480653127888266224320821834588693327927319364910675617371461773021662404317090899214531929257350891888081371605669219490330054146727042533544439413019477602839363397926841466553370733785072191326986216672161808974250851915323960751217978642875869609585180551206263447372802306706567319459974753786915989475685042735285356890159192761389827604445442660525578156557079094855800369418569536826898965688316600631781828557412757724997703018203635740872501687566302999268160483427284177260872184289896549101580606200964521994379488856171466682788243090688456485376507956107260822191621497998973965382055695616800366552819308243455868677768384547982140464173511844810102599170159805014120287599555389391423472271014103697836213708918030052013735872784893384288673578328326295424208934111569085656488606776946803134865349557361302718620058934276525175161434531928758411995504886185810859465536106642725758191701650350720312673426303257849215203703367335500913696551222337159298785722267442315147604534977901779276396985635792528960725456583444059315973445425674355132651871707616518377475503543415318245152036852365029317901130038935071617231664515609681346199992624025538416784304052039260562776009496335436630288270254608399556715515012735029500835252410420287860584827219292749510273309254902064685452171750337286310253024622056323227173798543519199779095955682776762654475782824873292423465097741812181611590892785553305734966520144693498897432402443191229179233356692098127371303604744755145817809377088694161786826718665568383968650995629789847122557972781323379878028018069757579263575880677431443431784072185394194046577501002553200058624552961742994414087103612868280995330236852027350685093855979429556077888334714099818942069519984730334515344669567815621712284733806609267278553549266830619186348178417659718617208577800704195122858131209488963887263590753568947538470834519839327653468745210525899729356404792453192506220833137324852817336235371127359027907567228440238815077965413228475937334012939888686360975968244829922962511769659922794241679230058884635016711853740948166299080625821576703612304578682766472264004541489584260216310791638924570672575034294214997760670495377279001757807166306634863346856701881011400769926597403266881156444025191585597518810194992545944774715380385522889253005428583062738881863722510531765745252192860794979143634199895450323348324875039531944968530732762068855768478788743962152669877839017401311582616281720818087807056649261014151549998038639663577657994273416230843244992399782951811723638949255538048415994364423856664962243321950703272960839713293299081425453533407143174953653143132259352696738956551651208465851139554816474844542965200894196946735610200826969575948313159580687871787052575407971238075891548042479680951640447136653844814882053932003418354385846589625231147823108886786903006183464969453836100709422512061909330689736909503816145962629289759169753655495084503770802608034667267733482450445730312151051091849990041277803427725867998495360353397555572574364721603931245327017662313391617916388701367992083427710632790702556616272176248473777103819182658175168639780522738055231062249118089329189256460056038623332939819754757581067708618466976586192961894449302768263036987176222005093471224183323190031302369606916608196243722144269982402712822138999487535923568468361165354058837784009428696142453490969489022075708214578501744766339687133850178849125911105142701314554332416956634356621968344828009250169282045304308149945062275674456123621320139302517732685644223713774293556593134697692328275442759053094225888690729573895667493558441908622514770108627351919606395982494222770352736911002663512517058314542302639032382354258766784428471259606086732265595640787515768036573519644294246986030601852516325403016735591487812436077378407111420126385863582732400557319649898717600948675871847034899082934882413147273358640916699795883598684813645185910223915597570626088775325004157732241529433808703969385806302959479062168874309811959034427889843919300632705683798070151592014701136928142561713584154129014461417787063912365408184764913349746648950510454013591738936372528911163806788651649846974082994241175464795091062370292299072958839026631788284710439517624245405440788768390298791150478097249599257714850018845321623463897079373504637266668147356429252822336106388517041272060706600247480014163466094192049115871540130050565144246879997695877156414567709823426402403236467592477448993111689750730125352720103733284363322676446200215243562427762719330441122966218007562856298345840418430413680579485455425650717572112855985906350451290889013919911224661966458431326183053950284609720170608359710879662605437373939009939354964744492583605216535008992335532193998938857405428728124953777141805545207619021325900290531570271021540757221905104395382754628732239475011063354501624051731520537423746637095192589006031409298320527109251441557858113929771922351140496919164356527324873359325348397104698317031488557381789591699473631483890624328814995829939738437284939241948570330386055372722589109333485162592308050792638135926000521681415300074399495603025783350928737710058227540837272748718405040801006229292519178854165945473367894243574289501547749102936181727711362905156110363713873697042250633272192066795352252597730927044519722608590385512133405442687451320610367295942116235258449296526053765547580859823785097495072751492222015095030325850994486066349494162790308554308179325929804226741001500580537686316766513469481802444155317638701414047414552489385158350994947483543803895623678072688538329242191347483809021674811614993666221815151191192186004222786136787687340752571212723431285490998022228504266500531456608818594373998592005353459321400170652402863168926742156877078875232877484991111122589850006106055247894249611840621077274428804628955562406232380409533052310926535326671763131286883463050688501590117845075408990868442598914436874588759798233806115466377101031770257400416009779254326763894798343363193760521862821529484196034333600201869855872112176177505757785020966278110678488211462209296119198432762469587950571331148062327621129520528238258364439728271186211642091958478971559279214850232520888137724503739471047863714611711918740259933576080842246013551527834920713169540894702682804397082867747182142177116653590083814553135529753463154800757113621878283083095163217899865242262365680370119317023629096963803086125717062283610210215632913047462056851134345967349121541643333189099673510321142293399172812930483522056266526593738793045380265049426306067627069992212190281132350071604823471507056858088713834965874175805205685146708511810713749224879047607846451252328667139759906989560724250163009561047093989382831708211579174036322899640533115012691982176965693500661965319263455805833826903552630613754827951516865500224002335551400625462182227672411037830370455615883527180877633148563512631050182865031010598342942752442375410909898597090244832725662330068328736831584701674399635317064225381805677520197876801451266968084021922422377395978847115711031464506853651655080430676193490166420371962627828795509462164274302825483738912366292811570492920443138758473721932403415163253349812864274641267041330381607221718615403325868774661961846954108294022350504825652485964904551591145192561386316396475467795919919129021886022100604640206176125082617012629356248990876761168348668806133063903939818059310231976719485426668031330983226226635379821048328883600716394664336548723243970857352547442330400658419930080041598226918240925761113532114978804449538348328196361470704162516450092711954219066430528690424177659858593565201097036041296619825728810938585250687558796888277119118410906986088487923935274569739398074674216175904453987480313512656297715695776812694582600065640221245676567730882408361978222943824557105359592022169394170424869881128532660398758233551247510879601688911077035221732177657568511640300077110073772502144645226065556001766271067573435157542003424042230663420675472257689521314732398518550982895989953187865042862297007920005309150783467729361936968028875838800294948071302829021693093602488878685024739613334967328058108055636360150530298417448948957510171207172665159332507491606977891076207091881374620585231694326337420943022241549888608222392290159517580090820121169866085945482476454265678494091857691181170358589914531148887875860903838926498286343623942586568807543039395717080266423187503615918734551956026732386738735019100985429921814675196808841463981669782520720328921542706844153113065243223476931500365104057840018018045662215087714006644621132287938964720727113455734299633420974147742575340837343922778854010998655389607868581362388134289832518408521634054858265651263105185268852797224652652065088513215038984159005037930863699788891889615694714381374645143106598067080821897386219532961061926197030456259405029792940574003844313499751754865154079622919225581299163110176399769306063666794543614089974469888686804483299191330691474788723270653585825561309124165390775147408398761364081467085665893452970070856165107985783184816325440561042218726041060661235920163810328201856428458116900160731872742521523232722560745215734118576343662815994685484001974384754132677163891828007294043242980857329688630121830007956175913268387699709202276899943076830740192763261547298966423951513643079346634453127076129200448964518030868947320566093279959622575522236074888551270021824023539114886983052803569686252337644665082348929418225522784642628477259389574762803868941194872913415278679028833238784666531958628548495264282980346838068804059836298260266385477947068387638308930211580872626664579833036074311445411532224375378096557629742575808827861292479345555140241556552295537852434991024555259491114272460191305210381151926170019664218509605192335832636258863950977553637000961669871886794611648650102152918751550834843106639600604107691846607356604519266733911046586371481195192679893203309896373316401083327262062405663836518786057545549442606849488059335813308243869039224620783350274502542380164249934741182403055359128750794005423570551427665545315052354496746364273872810275359575840214371864794238609690738850040045018491486745748347461666274954027675036067122292202232296695544649939667716805823680624758004441287045902668714583030606237574811827142890016461964833924868620505703563090892318049896393560183247754706665852089933663377791980526559352184787987020912714990888692055730597179656065406052490037910152261284173958996612293736830025669051489609329941200035944566672344323274448076576756092150270745129860054668568780401589251601456436603345339698105271465396284363932537334532125136173469740846545103531615935328539665383047400777433905181596399906344662654948436856297902591703807242983266856639304434084388129165406868903273237675209141428001474296655389135655698985701563262596075295154460483553720947720803031357208954256735945712505088505414080815302484557541240652405661230067066692703834980210842222050128579502627782328726998850361221337788093383898647493696296357239978585646259240588475103666148652645115938707677943553289444096729865476029412861611255485552781955592557131842883531652690243087363276422656924787419474616932388903170807029547871939692085314702921707842334157437368572026051296521392371724102567784521265913221142154331808325958622934528384560367461532110271043337285310514895011656615969212532410113562395987788462847126075899215246048696449154788107543679773036252669715656347571016923498482318463839275280542373023975572493061755847290938485879098564400560515991269958419249018916099718020151792282671478515894794736028998415572982517766649226286429237996962455761071541350624873051463035305535758434871277687655642898113517772763289396687802826955912804120143346339016644813006202241317990497452881315669702612404458652558061862448091619516305859148157579613809848251292973894652623712273456524165595257935397246381737815593870895739313858656664072535121583173523990293582187035329676360864612813142003762765686025699054968896188607077903360366449641295508756636156430011892622117064523033048031699331847056912534369297069747580382299836397160026220180297589571777749482084112661714931111450999677216660958814125187530659016159789231969172678034427902770783143815877360231366037055506014259454119893537022174056927274331956639444414641390883530134794539900907823927678651571495000769151681339341015955940863211778479857248880968694051559525863510498951455907814393622091581291676499916217615124721586651165162308579409236255739459350466570440714533542029147642230218203056043336147774641882211207248026463925385330869926059214999098678829278286202295863976991055731519140185419323810072081798833812062990638680409715518840008583023385203407449407053868664296974680210597550649257005715354659142461367696201539436553238697971522183007889312968802626863260200526773836529359694743575779362649231015968813955443342056380302797164498631421303561000297388474335930573374754069788551272947690690184782565881573379251161065657809662698094706038591392610411378792358920773349862609374472205825993479871943354498113919428121284838703517150399998694503058925995247719645862215981689872246793694508684923133255612309079056338273841267978522430704689460274820446570752114661468184317424017107214370780932305286812094638049765277506067964927980448707570458847128667013709093961545039272391011693148686627840108107093730518987441019664654976302422009025560176217431557888505856114236029201189899091740336625232994296128047359346052707321804046863507157959219228967832791237395511156864613603131302017223151369390004357648672483826274386371606022284208591995636472985669362978514760246026906058224628554335374729998434349970152001620036714807562571707009387699682497301151338647336515211694012053238097746901858775699910651635017140615617208633454700030825297452666904797218487456085852075863593968427484244479057459342710619881652974283609974604200823437929498425975277356204725148584577588531551106529378898649722235676422234817457648592840325425116117584842222675782112613073892841287943581312495422399189655573462437736407236723782344222940923003669662891279544173048230527628735839311239209124623466427044021064906912152992711307872682380470408268508459225961144972266850806589191172760745383619788361666352714786044050558757079656264751505872350978013546635603417712996504352833804204162424431942226977347254068541184845211976537471716762455947440881500632385534486773926864819102200632964889644578365482267335204997549326279078275927007257761436836076230679596881468629675203780316019240536588589232489130416466979853751259466285009556083593393958493131601617821191158011923924327438151007183933832453945904934868855830334784950809749063181112470888556621026461784575678071078076634491164795512354636913129417718573599911115987095156185529692583660304903994034601938941872784826231548810437734590439953947473979890203404982928957895388346876536620558296237522117333198113323161873690135052300206934384196717416321106347826160242337951938221349303892304652695732682814864968478329798240009234150254501016707867386960303861715261833954039149034588919577522029640746569588140466751964165282951249159920447017726475054883719965951932655145616726695808481415847411270953616091300006091192253659803233192688116556749662543153175994651659415348928720398834305673850056978374643697453334487436126725865353999851321661106688571051653778514885831528262313940419261467000412696912495615810677495488336993965777871364263213020691884084260675705766453071026610846575392676669290436647823596726279026959530979313661072957210033804139945235877820254716157374287571860002830308208701117092658107834342043307048486606628387516347127742198357255540917788253885004719907577379378373574295729759639419494863385955541314569467359711759396390349872570997822808016760391966964402107298104270292027307471154087952508893714773874832317362931061932280464392032085427404127198977516940600966300916443359264653867079507229371437008002727395976285851090389002065343855020561787750246161735287723270401440438190558738053320091977243186135620406027659484095491983813725447682064482196001620480657446477539619905853417229315399651451752076243884058374642017242886086024889907671773360630535864949669076012410852462618776227102957948838190821755094905968502211609721172508996490651450720355582277510595238442071198151957621805786609260085234354803180821162774260288999217937319275106655594480217094519289036741411664564954720507149670223370355825838256906264864852786583600877317089945695716210527075893149320521451407471023254359162131836901174208053827315833811129975338060932594337981305914589641388327475565468725991613839519992846281719106791340250215673244588231131948520516996773760842749485424790920186303542824544800869572301988765370829551760535345292357632285139523328536826545849354204300775725786284639250204022259748085382968178757767586347095176071860263727823288387641047280221881548264835573302983701741323377541351916774312493348535835266184775591871392060286786096454294884516766882485787511552658939963549562851981747707017437663816693435078562104876196948327101324205140146563971852287854237204345737428960999779961668929481292637273052455915158542131253443010999954184340590261180728233574113806023429086654550356233007219009873631273925007219272469918907047729379159362093611781487730551854542387569255339318513728134064202722161955257443937197252430474708290358629244332177296668425070851401013953171841597239620921702183006748604526726892014523239245496536820263662249350932189376835483990607319348115791794003694314834560304500401993364920073090836878569588263209546981629677879827570346442710225825841786516660865983500326073475725726131706319211962830683855784082837760439570994247005753728162742155708520725727410497007819402947866193728400507248054116768173659703049915698382035885527000916569933869389201951379099029906157510820466338565224203114760903280757822050951656171912363551454926884898174158174931053655928973975211442817520431770269274839471143550362289702356797395443467484052214016863081920578243300956444173168081098147428446851660552583224100623806139317429516454295375414260252300030802054174561305297800108591440890724890903910883247252838592946417669062614627435194762178873768227103868111388210776247600134143970178881546781204495328666219428717655958876324092353112072444762420012412435516758276792210582246245179796297747883713066986121314798588946043722431233635309966182686707865481583415441606343869452120150542512301998249009878934772043676681975190537796102402515616372957205549242932071793761497356427651995151098589100934521409389100103822099059612326829922091483967934594492902824542599788477460395169567208463375881962956524283672526135472255635378017686886744274093045264521584889442405859134882168634786653558778422314615019797218776645073943437368920904365667064608527768221493330988978809248602384854644316439140756569820146175138426535476294344764994863183031774298421033488308917310961840164889553054381934702484231858845070008283149466741691830768595407987490804883835230744496422497395103841810543430249943383449938837040152847927983332179622908717356111730276569457688361033291353049587583210544378675925360624325761478371843288240667314773056144758765233260666098171500730979040396632944609686282329756588676163326082161474307815156411301434272740176685001476757801300673073809419293216715994215630217023662946803713500280544761883383724113013302373685503538381474663821596373010155591799827843462720624616439003419757929206567927589937704828576594571621415559126237375420750849085856042484170914852302698022610117599165863377613259607265980758357247849457521978876847680529104433691408795926287817146364277596432896548285174866166784486030668561405705405260853220549571336848256003415975264529597971802051433740541284104365767427267386162883975334022560982984464224216697728442224995260725135167327227408638249033351351046620472349793204627124594816493028171269497642843472890482949083272634648615996274016725010144200022054713306953646143193270884369016785155963921442131684128077978079168814241091007874451727936291224365018806787730070351686753188929777032584435546066557199293804347413414228094629367944626024153397597427489560185709902689677217473248621412979307876432967011643659188894620198993585109640661569412325832893343913998307740081540619221651947821665559607303961448611787178794895728213366105003401922162823456610728887915491586160962746150260575614765936389749767597042529154242297180239910574633936794635115971131927673302976735883233463417752296717667336918182135370374190300747412418471972014322608268169622279469342241700526082781698422672099143980862675599538518180744698734349883296539306959213570002529165143113167620396320630147233539186680582920198176915231110127692999670523533613245697071432223913381231065332140544533244569163683670662005573778230135760000089949723278286351469820368156940654245456266681502018349417347531231140285447470857099327508467201770069168973347760935750736380680005616706170169671463073460217062700863704902214574033185470230694683063899851693857034109576458398399625308324075785838352057909024606052533674132895515590368952042943927723004341333490016550303609169594076288535242197732024602127515852435335382565488652999816378689813271291256178419574989376118688128995325398721335075411374922202637838799944417833862536503771003951941159311225153823887100106558220772884555865012850246554114772131677659141094262469015166248302176794721231330537008733546346496021790146662762394635497749377768302872169777510981581696049956183388142889929187665213377015289190296737627719162460450611991332105596640701227117768129142666100291646542063043873937118977804134142578860826243563361395187058172924517620998355731311028453190135571962016593497849387820137041769019190746470161206081508002785655984991189599256458120175368170296588753811231910493023488099362077284191151805832474602782894885935818490675390404152084818957223317172878802003446483646011055514657558314608373470996151615708553217408161183495653094081504797752607471653224107714347474871652478523440330056535480595492353527314326653498639642027730241137686759848515460903236559641675171510220051146342818856280780093705926556780946745273503107563501426911655586805255343209022314422134520369634317058329004157598688530265867785797375518278371913455747306406388220160551590520577685583475272044299705311499110946944921268604902987204371169826111596546176294057122004565679758566457106920370719504593032300251033854852937362963107358661418885479809556269433986557720711658099357905798877657860826553402525112644035559017264348242528230806932217181460962055712352952271982442366915235682083992973846932527296423445773071849510389865493775709938240372091038523872691283429759868113105020543901903872417766243289941062425867270095278992901116087854997630606283272184790418159182281954034159714293014250488226776331770418533208556256218564673303185183288975980877351756341639610559835079878230116027224627563675429198555636674846825743383033120109950306563053057768575581174987456573397789120151886200119281220015264087582437242141624137300824540740464445859019411633744113153245903232434303632124302638332528606115012696193410648769092161918062110855472525205764016479234106107634835181573443366122607843446782778298001219294206434979070904527296731791963919162528657509404866991981509644045992951119823063359437897096382833542891768190105352681871992096511078047617688889436791407919554374303468963003215935928510442076288744745125192330486351215492100766082823774420232873411613100633132548285445842767727458840667257353046587755409954545724035756776043368970160122064409228001342587945944036344839263877041237670149367144318293717432701434117370465553148325728378875146933917595652598998430729212756335579983583815596412908780427675613482908598069767410331128460812630044725262701355017922461112453841613932249215438183544387696547890377710405111264924881784630090667109883016009410098199385043557701001238819124614535509801398142378907051280242498669429553477868249903515898358801997738393534381144833160720966140347093695232758625556500419371062400991936083982746059766322725026792939262207972670337135701401407197037137044646356626486582520638599008228340785457249911489504824757688693772546722151147096132695868749816811393011018323114653257558059482787395085653293620927774165417566839933499536846148848627785143466908350224253371632482358160284343307253966228839792730438353419462757810714836113286618514136484839160818065709238254871258478477414982421124065728194430909856722529400184536234022446789889065014757661128287797720048545296473715753050737091291799555988123459081810515386530921490737290183924657094674136496892894637707573410353230862949113732139971416614915200493460476987821875286322220529731668954139137124317834921527563840779341706289268172174943251082066464144319397463761829694412674219715899528043564651144318440965578437505783343741285700065209170576225689113529062445069287755955936961795566549951530262054918312900809518095649487758069802152641562445785738064597085300782954778771544513965382051749235898542500926746551418948054686510139761899082945550640691049975836372265528991051482199803413887582235118476616231344386326271128972251539779946006009809186760909574280904199843933268095941151357702421640178104763013106307286457517652034763581682032023633027322063589482133741648270237280028265964318446292452781106168058309895358509922197332127350457895982907171549649705585664037191469693496603109309145885785229836730439057992533865229531444935146379344767816134592400966709433976500923039589563659407529353435103576880409942819731638119374248973487782140539464010608301789631835444502413342885060261594181057732139500763270253298639531179286093241996705579302015947286633645373368095190539239701203958046942511276533984040956504259527513026839108335314532491301742433751825395208405904624758201626473798282504575992969781772416002407072547741934834787551417784724250534449349183275662341751495946867360387859270035156171512112631564731511058255114599971730171163587467286959663367930497573079592808776074631472203913586518021312927135445676238321903865315916702640344456592282723552734872355480472424757136314170306466436825930018427361487528300013961517790863726137467976742925928656457198004256808543872159900658824701487503726539046403796802342916675509894931664725179009882618876233935795562559630732547478161954632182244338449877433292395140247158946200715235027067568234882734575516130813763114121110727489217087354589818064040139051356277294444107119239916802920484560257337711648435589838411667529361126276577714925134202919157922595106001225435973182468444477035804669262995459546380490667407460038179027754424619477818450111055002899965599633545431859315303603017211398325587423591174748384902968680649030597306376546715621972049821426182366656698386986753665093305199493834523139733171578493522344492980745357485841510535692148896254449096980189840797589954471372554711981726143396903910411495724140646998649293231421768517401567167233625349222045720587412673493896489959281366211409463109915961605772022106635372518577045988094828607476655507142141211724200855506406275392267464220044079055880292661807640904948396728067564812752030669436304668597280378318866660062008488013193991200065441455496743816705144071666051662653201193875997052130503513816607276930487868182350390155105530608911632744292507598473212566596494506078458750013572445362470686943220437258920240271237834176536148588800170763293060645744060848510337169743769524671495190058897342251141632763282813987763715037340451032337390717948735685965630944653542490742775172958859999636310060320909388062073027537076056503384941717137048137324721223184634746138541017429237503824764594777011523879887528322130260272553223288197452120526843964011150453558708427192021396810919477978487621651683421507876414828443108347464961258499847910855583028171484242060969701897580453435581100808677298998491998611981818686537535450984070126641812078555648223186448725287961493977570934088840389072198910414030849024004895861244737697250189142104166758716093950247729970456623107171135315749550473475654064010615409365676133461010870298544863771916470798087809969750202599039459492277760629130173950568004999604764915556938893377341941465171578617258107566910300794191356229289239815386304630731464309974285358301051386637621294724391001574391690926792345271088855599590436883862301532918107632576411848532093330725423612498732284450448625442135857796404044237865412539147166367041452152226832324970592671566661127670550078494289016130017253717934103738733770682754919034047923725758867812187244013427946431295103400081453766314610662257801244367446497127702186071472793425198971870893889042660777892164801732383346176808167628699083872124208246945203833906521723872468136100134734639103588278943351470560292199702928465598277413071154721420377060828002438686686997665539687211294515720255408539786400465852653957494920237456311068819575898662242108883473560900051481211122926538282447397100264907713109232058641349730945612228728105261196920280653498835342851648262227760948396748800892995520361790823947258176189118338624640563881646494979818796480302963521620274568126079633260901294543416530501658387226443581342149028718882475476666805688118011618958161483110049812505358969985333936916088360496951677751240968562030139630252130965744305153021801766285722905366004185652635403867637618502970829822477716226436712151611837916779551945040349028305218485635782367623923798577945744595053147794898746703741049427305107159172540181321821503214168373177313539383623652246863124023111769874545943741123074220901654536753573639323790611253174815061392473596982920717861215187905771122353644340095110644047724657110425678614902978400501932454558882824019872625744294853883800130253523415667949682075888904182848181218269358798659820762981342026412433197087202566559029050965669443200428872193476069975964613236336761621429638223112475109476706463467012603556194425509847160764943595341929017367588518684394548698969678106350215434273548910957338870551644916128015981437980732181674611221358571379746919416263855432939266846575911286516774710988004878783289799473673979716705636840671333261535449362827037974229658092476661036909479766638620504085214399771312897114222230980430875160542038497663614625263488931929698288277269319269343664721734997135237351303403734216746326756322863858093277452239212918377187273479249451205604620688336781807757875101012509551141194170130160459619569213298065591378206479096147775621572199362588065559490099365617959312890403138642801295510723483212572978720870197806459208209460974738038000765272110977147991829194414939848502257620250491415423450986346371830658069683697574283993143970348846827962130889387010594964813952740756293994285192120170015623850756880645222693558495195537563296600691558340435232830805636835419300855855404422067740549549243061662448534305145913725299088041748957866995353981592013431868599271481439944222654630800009509572942033146528071129925861457989602704918860307679188280632883293572474957364628151803971727423075598935522891514957121526679475823952730394364172768369665562920239435462830476487325887115873839003686953252822838076907563642176794125155964752892764247316064360062088620365413365791885732738554087265824204234255824154904554791155041904758763025723494004562032580508714212508916983565706321072728585537521014267725988783265192299713832452353815265208903977930025829365254272332788454466830130217634829739358918750333358005901198544903414178879269339953547599190488624047694271977614458583996923285597635225561257890196804216930979873475448077496254220644060657438808812588977524644972051072348825909407485407085287514947794650999457432343332767987753731159452928726979068737264729091307332478385930874330982035794056576482373821604900805499715158203668863423632049239777767420548911574431599386763614530532887956269284082289428305344061289026648053446674422641666865099285153058846502381029615200907784832038514958636477331682645645220993819595192860827109922076553763946657825834694438617557326919605330900237598399302264908580903292291697751318325431720357989669459567073409372335771410227285781749755085289583465710713890278158353956733447542193923610128671412885291625299257463831741559833940819415324358297348200315198573772506657762841872131683578261503130798256494164409378811684956243637168006177176649057994025661631514902873819039986854302434255779628821278213984368742526732857356326251111813225358133046515978792059427222832676738121935458156865780437329185025121565414710909938993617582353068972889715023172145739884315051527124236349871782763787349777445606381531398509468959474345496316059348057294809097965626904113289532514645288972376006484688743478403126366668605525596249408739961361092725833518193712369543700675774855276196652756819827774502091361905877570042593773094835238792492538137903841617154194734914978411340455089415203076598187259862045106501808111237392187453801369547883971981846402822360952744712428553292953224866450003078447864118799104669947205662790697752200286873066398261254849169579324836494848001870358863296313001688723528494585766456711407449208657515595408444055718454088653200462794261862159809375454394679655518927495346873863945270857163846836335391334380635403721182676490190707041831066574709484704582731145988133832742962138299394922473455968821342528525402602339827030440855956880699317128906313888083620343309291976008413680997908400230251897471208121214304322305874817955273124411937839813466004226331033992419306965609528046757100945998030166758152212474546385928139339494606887440026455922704525439165260000491937340115628895759871501816293660106651304249661025044461754287664158287236050909100576731679915444417610747517569006602765194628487390307618497509928711410715816415991049199116301836341574555946193982926601835959606401076135334372417759824959233463245263107071060491777000190509781814258103324723807847383887681972643362928957498837699364658560672803712212857212435812455815983354745867044606681685224373736493010413347295277467718627045834953486766187630064398014996669184041599512794315259904822325259260717516841051851263791021853667772488974541582949134525350620235788069028167085049225479882263491958773954281614241037779492408957662231179606772521614534258036758911180366701860948612843704245048487358131264321737503069940062542163507028526449675986028383597735244402345194264812759360516085180324486075992539341983832124345692266348225468386292099754786973675066853198776745781135865340690303503073422934287275506779813102859177328875805128312217222627423384554188732321282843683271332506305361170842050255734209938005546091340541446381577289246957611686745916694293282947579870955740547257667639994270321347332129607546706534005360302900806946064211240603008156240206988433271583112672454807444891838578453930293910878881051015664908803812300826858077891360722858202273469363924240704703032022304810120587721760958402373117779346526867168078615501265879563920345396918542361072917392303468652054292822468375347398073267366731783490314177811383139398253397236436320780293250423768033769582554602120251425749504795873828913724208955428257347744829481239209876244694719753477483010664838275161849460028660346669413385024154483469633842750203930700245837474540376097103869091448752664012857983776741255630992841280931059503496016376271477377072979203179912540812724066713290466132630956028213700154309211757161132117826654269621753922112258251069167931557513588534703107587940632379290272664001379601115731067898620622590785323765225451170675866691339210053053774482086007866695872445527878444635504996999187396299694989010407792442518104261683829729602130983697448432903045165916663563146502136463562092053389180962151021590210478416989141872220996596867576085559704535456146397421366067927852316678825273623260493908701031441351067493801316778623520760656313989577785809423518775409990576508430471513155044313748785142297844246471974911144461582139068624636669471365295884294556500982620101145391206659288081827000936033863551573393575664846186602508852511996244531019261424518406045890877027788848386754254373532312745027787444149881281793371717472255440538312525312643813378419578560313790477390741653847197747928565093363860814955707735005726627641369234459037956522971781632298559133371236865235825741230373938166301119172014424492592280523289921132491405046514408782958851519172507678830605912881870601887923862723123105501419974242151007027228871472277001285461372916372446065032443642297134955656379900376614399339945278302681734526543888868839333784792542204106802080334452954272417348694983530830552526648151500218331903694644047687233876216376785600113745839225503812112225841135907778591946381237792949892890013315859432262872298315868523969572405367769919828260657796779937482719681901476145141665524513255091127588832063554936079068398698677702296152213469660179024347818302673026255776830096172167295778350060652223608912614158731959398666567799649762845322862399406654840771116932949961151456030184463516166686846414915107196405506726725974536539354893926782942799312967195187681027525995512616862421551088250507403207398950880232655154394224744104367822628800797587716963364160381870028094614574871056375391278146887984900580241876859229162895497495787323630127836684048291139124116331661206414502081660482597168894619457140873313548612438820127935479361290652999088717194973844397797331860456225256749501652823540880015370866019950844574274104963714329678392865300701784580731596163212843283372020385325327208626346994012332488845811234058413213755733960029329313041229884705666732736640018149799909884219599949324344521035733414023097821898727948431314816113537661109766985834970342584557694294908539447034404517113355010085105078896210111095745648047595522646375112222135329832703452082346475098992796363133897731155767683780491918161746600726494056366872398157653671164356228264780683821222956287019685140656015267178820004130521365543361353022959849397045115928396929196379511242427467334804080008944519753542667516369961491454298794192490602293197825616934467195691373900096519446353912686884117264125858457841930808941330414582588423207186770450476852242851451513858457509350528469633172004400666588226625018202405391598182023001234918820096291052627457201345763331114501137677409023992467873652872508316759774624211892232663722301101885300946068303829776126987534361870967669361823699676499003047289208661813596679495297611411293267407697004724859802740399926038218784322434646010493593691212433340095547659308469200812461414616749067348038835985010794419588610009618212266465630024362518767048635254875073573938513099524196505060017098594273732935360557755094222220186447711737898518168066308106967080516966631134833731671627511044172450561421101795786093730009122439076178448166220536160031652203127141525923536864291765216733468393790341031947299813239431429618833984246304233774202708319720491195769306804015497546845946298081307408945938392846366094937065545544161906656178291095029485124107441738149408878745867590137696123750062160060252518553162779187898532326639829274173975338631393716690440277242477548667307758404725723875454327262625555281570370396289541547667531691620846696218871113143914196986217010452880292098418034121827345068396390577563421134261018402850196299188526516336121907989803379959516771551832077414336305162879711286266631826189910857705496003784836553483228382466015508965534228274748514875682500351127516277435300308355101120375468786574566215773812948637658772347027537641625557885965042722330106122496909436947664711875027673757400229284923317408578429764811794669759755583502730494683239791043469073359962789620464094838155836090386547068268992451211813496884140853867156090889388119520006933134916524310629171434010648546872993317569187935373770547148466364447755408872709276583655842353828451563286052200682412860758693307533542013810792052854245445586052889361044208747942766918127126740679698006760337158021080845261260279234691455977937430815598105187935052877464473950197924770108616660313407786485230323279490883938706561481501505075269766451309119256626740965092432389613970400442809665430251391313798646493809277428494997626203872226736535081465970768106417660695600688796416886907889330902576797713213351564610714741831607129394541069800743349847014983023936472211736044422976838686116671336966482629558328795476672263475840292630622778628452897325282757211064536077435422623766861705212228609913782683108966385881151051790380980455205243365791282426997747572888461548177620310468366218984569392492708571146718050296825146808967460436502878104131604681721022364191523040309954142859326407717925702110644527898435415043057597288501922378172423844857487005645681903774046700070988853578682345701088345341252951533894333317108226903481172790010581472487856074301218148644421288506225066044497596965302973674936863888039845970385495295436465746770512181567945315078260605987544847386182912735316605930692166517805544984833470005006043884288570817237891145141784035156755921379943396855269624043017030372000753615666429423552185895434146525043445346966387673903629639555891102580116093041555452484898570924783134990388563878636467035678591504175438863866117469558549682857734785926574884900965800223910531524670321618039620768334274589469769965080595571710551856416724528990684765046194613194974635090934135669568289399148173250521240882803419144846360982443004675952029975548942929603065050170839038724168570377284833182631914937299151411267548091991626761951140220143443293491355357889859174332526769528559957994842631412956194793936128762771305732372886461433744813546438564223368656015567933361721775957169962098373340550066397825493157269890764539771656838335638800511975541969291828881028040009423807408569542899415229377061792985553359601001608116679747357218572435977858655200670471500192899171775604730078935508503418432873981400094635067758541958054237918362982346095619254818064037117777491287550440826715784598629764347113340551918948418687767101337768343801604397361693416772118298079105306904478274739311427112805259541416152412928241417977494834670706803602137000614545357130954480485794243627826968870412119296669297315750770733952797825024869715900584730834837899795702837292178411435883809003878726307088395675341035708600459607239157827654866802882155327158802101239012686289521599436522958940864067507791281685957344017647030089671079406566212090449486132104363267091083292071491656232369792317010230019920125789649864804485385948737714357280911525133395907747898932603722674815497542126024920320139936386556725436147973990709357309511571492509436634123272151387569682308870046253474512367593178326400206445758663886813369745116436575569800518962915103198760466480459451261627975747962861406346176215168497316751273155005577474071313870004358486763874194774635578094903384994026379491949324884814133222861264544346415862124232014993482014644681088145863373578479103720894560892400332282656439451227318359487955357271029027330493703517676673291924508100276962316740331264836865490162716433281781642894785189141886556654871710843548592965455660758890537782924383965949172121600364897199305738484959406476630203765587192225680871858026039189397421868777467227593164320708794375406233118144885268878097027605941084992457947883715631084787508227008798714273404990549469265495593653096493078883851529030578820020948230179855149812516890507617038756777468257456403091076604392410226970229097782188334369932337925514654462400817696329770618762903979957760496522299754182437084905636169067009165003380360482150698564906316030736066754215431754383476239617114892707919011886190702441952280217823155635240283165465642968568450428280185487356772773971266967730757933167826361846554617757716419704766588446744311397910588199519348345901182225238630748764169797493782840851777304842610527437224636768475083681649736765874864427049884811833684400589864921589355312525230327889444999868409279758444934520568368043644828752358969479527744613338599948762953602788826588252671708242731458444164061748888068798418750987250737749617656111141617336078023558337175484941576776149789816056390764726763552791948528016439060150477569966434033416353905613105583231485059632050173340730251630372292321839669263160576729287256490881310209006410814325766724309208614941751389723645949139700796377345155886026721023213401575248115688031841260710229328860573809201639018817719519774058565440485307849098021270703326181391704298871005776632663235134316109632906300664468215354818830015940048371043674093816393723478419947721986247775396243997178993337703554172684318660839060018056047391631774110878724410555524626696182619510731988564287934464064417096583169398053937551234245545325571690641146863950856756713652870300727042480952377733396639719421556649359336175107509744872024760829200984452551529929468124899545119201277228114726946770479007115758422198713979574533863600749398138224770754619583199952443494340302688593800250150405660300448344666903456561315676022185181585221403255557050226878783863438350156160770378843704030718983894318679773413781939254004625270629920315000319331601825687698843595243152336730456722756570685872222922300308418590181518605838157881256936842766131870004153844253769093759562989483236829710968341932626690736552350519856229974106468760471713318804478851979731370736277466320653734048258050190507622599556911994891816230140551687738707757077039858122126025319918791756143389844506508804511555377254773832072291640951336055147311080512942516504531537013463980046998474938116860078124733094433191364513074249878890979529485812282340917369986314059673242646804092811409700952574045792736667654055877577909156070403232964464872525881354474032089126654510083235337214377173965343315180016897339051875060163332679273242246726369075673957627687120985176707131505556971656677499220614508996462114589561130348640975987202707829440074929852998079306631472504257386866622443226832082741407252657174170288976456506373977038757873056431107466501180693780927751216949477988607249736271822836296865806506282341955807591689185397194215736628914101389034167787192111734506790055975024992501876763917109037635259884914100002749549379043866421445067880879529566047786636941308402551151975998175255957641546666689869870946692059507611087879012204541206295017928274335834964556511919267533456038594456463051099894888096540221684344952215415833584673925144820169920492520595028088815404340300914196465388521319952950448915482710874519636724849826196621428781827631574325054237476383110755470122901796478642443597272180571970438088474577309266539972034923476629796027838918086583253124721735375569188589174779312480849619600527787685953358979323510864787743469382215204309095250342920733233216782998420178865000664750577634239929231547425860481098792465340195278702055447823620785799068063418118597527415863173170740752699345716648640591990299989016891606063434691371577542391515448928054150818362548876353435031601511341030457581926457123148329936584590066897075489686149403830890276993839574364402382425903870775146781365016976421405179400624330683944757863903332905428808754686179866833431313513960501712780790674071917261222292463312819181244542236488502041219579564112367235552823409405690939440638253485745714617654090540391861804307002825206360556014332302676077569591266179267404447116001897261977091843568613103044835869648590026436125770376880970311565643419810901519832263806869607177495164159581675235635878913807696794791813766062397719899391221644573791186815122384225660045906747984303971466345870204915108533447572472989243449597673665905991487569012780154744907706908973945562589350777742516013699816679254655468015619657553745549482932244457380793100148013039831599582423202008834934445582698259847708129887666945932017229997282368671146775991172982777147436905248575997353808166722212262499957188992085867909236181305987155199481964198308842235496338039295567411593128871854700412253364813222443942477572751543572410993668873696392019508844963867980278590529059741798520070553945202895822925441442214673617206244341046350078357980937077786158984975739385379060991278049491814791136889716870696276172541441445712223054366304055718232636689492646215635436882173960218374538936709514039199697478722362934795968688779219370347011853865461411690282076594810937767092011489065436452876888804978039268171723732765747851249621760413862381316484903245083756962048311945900891280590035027334063394484218647309926245683737695588960014815183366579599652895800405009473737794266091778885001133413073424802428019931127503991192017185906094542603628842285608220273340313103127447066275092502907516034030172162537238906912483078919691848456847831079562757668176901527856724008021423018085167242244677294693187398405126106682712456789633703989218550491497944604311252241991016854921292426327282394814834608539620185273705925347194558217421774983604641642579500143325664873936000649594351542649025453716518347353409291703959386692589610356650561375239874484047973850374079125771698593832466369394715323290118625732902793523053337287865488574950693340704210824763964122327013362221354173831843280512646794197542268882155983595594263493102746637405691142223802455484638620435771629217215283765442134797722501988383786471295601237439320103315646010450813963133470525916514239933468825144045938041781601387108772718564649671451106062130209772611312143236069840615532313963636247840275557274444592757644622266222824676928231507172229312717051554492570781411904020792254810432758383312186926819345803061374675618282946123391924681299651995161473647284637371650395843765653246841515047569836446595023926244657575315392695877123611816805535725574807326966699621352246205821213211769295207801240030430544809086104006470726076610622745515383225239095178232610150653357936040376278584572247656961969240214776296763413952496599684586035858634242109460641881528136805747508379158647705881559895627733902554116164017218615709005529317902671070124659859882066949191899610271515799724490988978812733074915415865540001171692942917835365446797380342100414983303191097383982493845186192931927789072704423011948853972658137906376502844626217642977524328835463145676409679189523414911170470935633792867826854366054578853751448140156833023104453221220773163081430685180777192956629567577499900586069012776854535186336274183807255574733612111929881669073712095480460738556563939252570536082571566167820105413673923177069541633146470769873549540225483253875966166777538304115284504877077899345606790161749775451089166731415792423605025818816038457758648800033044428381046982128184302274169689336121624762389455626825840190923207695798876648100036356242036902474824878662524027469446275380629809993678193692624823170074442159658467951065667313342455292989753555516863831247577337723985219044826072861893307559292023477612481797685061533495878971873831398736050231073931289907028001898513319982293630303820060055691638770180946930053942580148069690624110124599429769758771135441927662713013129936914015626570769793729635380139321662535501259651584531052960995901532548416239056420855570894573151985267374175978917429726213773434310721073782997283935489331759966683674174905875850128664757258497539395229106776881391053921759076778728431218964044182595071899944792766391818409500137945919253942537187952153346342576388660991354133118442923373557452598565388766184694605486541640243843968823010185680050410019393215166334551772095424737562850008036226555952172409251695732938589042401775540567476540285826961844633732161216860149187235813098697426977259652041899876065702884329773432556309013033393925411941867684958020455386719253253321210671537841383874315602182046374156025514671141111911837384191046419440859390249186850993548496678333276676569786713921913078269743781783918119883204921121787021422608928437882027235952086369055681591976353028607540906812934751707454386288064301856225537376531585808308339777975440808708645193213770763618841612178763910817963993239530426600494195870639841681310216054417674189593960174944174351680656513288000344278524274183391782787493329058555673992179290154307798022968017279932098939630964804930710180953499376049139895370328007109350179295395042597964211948407101536592048612203451650230595877085632879407956970622041907099880459159021888692878058008853471776043193415733654453403985537598455127003663397856956600484284252244803075040190816740568911364894577768757555668737121973960373215671714079777188511321397184066979901089809381652900148872788607547264636163204881217350142265513601461806111130943375381157517139850930812284122969968212305865721870334411427273366393083790071841722110861052783992209511132778103638450165035350408056740937546912416780607969508508303570122711275135145723210740285141646494112216163214156399015850166990844344022267481957348077901844133183550210680987052633674226813754225248750584287046129124282946348173364330462325724649942310472886149546681040618541630380923143515072134528838605546460778101673555595827925257180486099322041717578372138208923255287262461659030167623097162603361192887804272342996786831693911158089700489389777716571682342139101471595216274052919754532286324507464830303805706509669316373372794162891660435949116228526348963913209867936593291378705750327746977840151336668612758634701358636123738513170809085433535602655359741878160141186803399066598923433455315802802097864085451225397898629167025456535737878799998832832942744120907262055531631524443666867386410226305674682913920302244649691670410784994945468799649476381206379877736427338358209149406386122509313851089704570998842943514836447551330588084456478005317400049014858366794479074157749988975986594346293114049567541351406304738744847942293158165215990925066716345470291944581016815228266093110647782446223687492569049020351771384770515583717055162043279285496789004541473109197332523011603736579495750117501293064848760188965931012131794720067331279565178782978424331246143149625363347719060229369122409119725142889002309691111393731804645091014268236713945116910989744498511615165957203243563705290571074357638809732211150160767316992766256620678210165895343868027981017456514327192839630976568271656459744613867991730319549465768198814125814033833171253108210336245797976727606981873618674874415688836100267777428838597842091515226571255944173298707443713762349231483018237156403139927515945689066100904204145598408063002033247956568556625479771073872349377809472747125213306142233571208085581965265381309614157950031591757480992079067707503500018787001875390989365283840238917766953887743448050894756461581962760726740305575129359624715247465909276916316721555282767684554303790776517228104400517277186306662025668349335714676488478750212266582512601848943254128555267992735171351547607454336138646207715567999216462983085332262519044872563371399512105108454912543574747865619748006570867280763696233007953264456811858522045605138462231215205777551834517878701269880751772080730892626351586714631038785399123956605483785617387518937395366611595001938398634143676835633186512684460769929226385493141947035841329399939850082604342248865430109111267068287166504445444414507509561805275119154839527003156465478565735443466269542840739623008198933597084642024239126693585503686531342749510134521443962517172194031859258418735647677296232637891527726705534998273647261922761056316134357574742047904768992071700819003705355474173364761314395519527441072225871938270367472539741764967904391050336923277939970861481579704733051890352195611014702060636985825186434639829183060089513856829386486806065873417335180890456855604359847724889462997271826066317115721538915462241951130091862864763952351074804569369243518654009104549853040482414794761222230195987230907551187791450645848682019875672339974642766498952600040439437528672073217161252000304528921704661752152740055009437153472141338224326237294099505099450126719034610945128756345093099741801445190225225900437319940437711762489469755116892827385492452009483784606726811002139070197705269387733098390406072174784257999438855339557830062831658022313951708434286483633219575198251575831076324505091582243496265788179928812882233193120498486114472217672716145052744371742465508245433003238630056285641150961733943931533425264626755364548068379694923960242860041715303791884824903629295323838549158880972120762793531379335362584303533977865086994523506160255858921556472797703647010591965323299224256175516292471463065813478486023513943737155091225882576178412994402585021813712895201927835408955394235791543001029338771382342933185379827958951743461376633124473900421187381008010834873343487056962893961080605775666167652931470202720820412220944820326774576281803925064429354123879068639400003330816173048685707473114074845218117911068792138203697623202688380388688396450166237860794878213575660938317915406911208028807644409084187041830670010411333354979061217386437750005915216321248247319289894962997193277433815635677995574458654795009444466488438699453403515567317900795736562814208981073812205472022086013324716109808204859131397609639246245706900552771421214922314253414781924458372347648930475426072732209422860905506465527055600725553829511028913110578646473222764763365309164001289037503105350546197794823269265319398727651277627266937893883225783678637274112308187353562494279202712758771312818019536977829561601125668568126651794149410319804059736423137599555068621303726376654883349301586967057785444242661536339644448002525781569776261862712274094674425946681037517999714299866324978663334180699732672540361611123221474616877708346599379171973937756551833661306721824700076248328151947331948840822450551500876332385063203383648886413808079397681376706045682714243225515771616797969381013036934987085766108909199771104622603121345902597525690913557238634158852072802562236565024858333196781246483644787806438290030135962314864549095547658491983645212459181448147983322521573344556462453652096409604286934725123279491954881576764276689912318778800069034543240047406332565720622915043337036639260014301471807771068742662724428235820650946803762893494849279579515997264411689778931858303346314828996616418278369209478006084363617167192400254856842070654889996255635004693037528711066221093569436775049632210244223399759681868956853538874923896212571819824632687375164863466014620524344770624834871076897799847380897227866832911038873784751376857523886200895597428596627745063663307137283589414977899740372780053279560632661168126465690825311352423965483830705835800193749529847718916513766400258342749622682079800380869572345377115734847364645776553804263265551213639156282961223480330874768593101937437630505229946494041901966428022024667565569093619025188849334126704659926117749255205840396532279405819552916588366534565883062016132454650050443897128397695766432611542637185813654325988062991697074489367224269963143396906846106292912835340842077721809452539576683951439982277732868845004549581088177163136471238717396412723230390590304967777411192964564008058970879831898383320768675393302311696254086096927113687795485968491343967713183045614428548195551577798874513329987155576321562874876309158035945751624039876657606275496070293311989166506102438031553961231577155464011409967129210746011926751608680502150879880211358187914200221791189639893044681155100711808893073058646684330713005590062933988638883950443148658479457432438374405108984338352419993819931692124166184278356959651714754918748670446852616656193146429695691486194451114123556636750227960150778367733875658973236344916056315934539735244522620704490255312656616587781947441928916227597893319575348072596913804951836218388051771359870526951917595060551178711180235782752747781554071109285795178457913078059392428706061207925987680110764406694039253578243224927691739874184101799906387792632617321993282261326276878085697740960941336249309132287721444747761906176157810044448660186195864302018097786209969272114377461286521596511668028848178551142811416459195804136242960090625112863065318135740806186550840099255984410384725301737042434077236623110766162613842879339588211820890773036822244870527755194534913946674791870787024659331412024731609993246696904703409939089419696981835135848528867866853835770356582522847252932705943817266244526910523934295904011937359414968530353605343670966281641578839322798978901799597579514520335759380509624163536999122683746978319863189856042608597800190096651084408722722097819200234960995281345673301244189950690914624672449427304310775928984338810319466375334074551609485796587462023710444536809195533911364142888502285952959820891875206700391953580850306425370352123902929727222504446846976748931720403647080873735837893445135118538685458414853341084689818422247425453638172246360670520929646577987427912530861144576544837263719749486948528641409740973193449152850735699460722825163232613741056746112857053003199370725239110984792437343653529696210339871409362125355888559157082321713580081797835962692055826531713598483119560119614326358411106168870590976296789122942156181316284325246826757418818878033072698908865108694382220687655412337653054818523322300682203241773715776411522938540881672829032948290835525911036329818992180745068960476968405020540859092027158625569418736782555381524688739349418532712371047546440235766427426684256325007550089156274256525928093846116448618729344220202559649769581660260888975513590622464073207517655070648294439521167341255619392370185199970971907735785873141896838884810295751181538795509813599812809728170069699519977820765598645851710566622185529805486853216018033209185434682085458922462423269005042880952329912735680736394597557784084665138959920230229174093364471353980789998836931787692629934477699394235570606869248021005290158315652142418864779582931222538078347570798996092157615915331801874561813263621180802654537678538205704197689123581688449884604362290155065147273395773968498870510584205620841987018059619938005051625859879637364965251981954405905775533866215094598997189324269874356506848570595565283890220024922023742925956903717781225911360785237400772072340400232587422844762451152549961676088004120341165266279493085949870147208832928298720542510108944775924466714399758313139732865712648103026838742705004166442355829351363323896593070362246345068126565503266183682927280778021553586065654827416058358883955582154515019632396483062324822988110480386641016096553436046524663522533000732238420606564110026401891073778088566565141248311444015938808100664527286024053755978990610612763502769713520103780906038950555892894922470410514606426498958984732377229505601065299758191243989698792081573559126474614748183874852834612618884746931198948095186033997066370995034705741431293271431497275483714383191072394487789728646327630215465665252502484946955642895735097771197135788221422686011335489501877505393192320655964590288703001557287076764975909702407091025616690941367539445918624933178749214895133292147990562390645544129097531129720975841021219759200899199837767616389928465562859065809217465499408434125599790214717337181131071252822077084525506588665660424663953052634007981971885256810213720564228627813322096800787783135342042072874742246908208725010470263642932114084725582832039028972574631270957816108649069163536713436300458922217264245405317388828012211323678111844780058157359404637981855919192549747924151829178655030071693337666042204226560522870251279461718704488040986532772532669182441762131573138617369269748921883492193183495826225396931121297179040330826325354559771242453073421085713109076639216213574857430846611422119843424776132812734892731953546011894711365337814551715713475368661243821591410952820483040113664713118162820964484566535862127592988368642322297265201867345718669223454741646734936109708904844422860775371491279064199555908253536782830030680679145716768689236132987912623730520043285169848636155339723749502270984774568652060106166835570785270218765891426413228515050561008710598356725461209995037664102221194029324928746177434129687107363178551093522924772126673218484247150462421520555771088703345842973623090587666852691057665572583791672816706206036374282585846139678279819149017473494503652944397239303634462416598811753788106162971570165074651059216912433153873137563913481105893394532348259985048115177310620859229157707019511539925454152341349550473062614408650141711283317425820272001221312806299596889958059938264863009035911403040926001995341917109719797877210540927792076352803615050953326003395144336914199639957164796790121514471091232061848503968634300205492701299263832837715657172883191375731195299483995617287700763364853832289374524276536995753188540582499664485296630227711961707657743820265614562027396961804221260270072330601186475878901823246640622147343947130086838280543133069814063592091469066567373544029326227992666545193771734775120666662841179166876490368861602161598810430826950958187460597718574220126713023589010826993973709239435661445798812278030550740014979681841229411174680230793768919234002256984978606287375226994995570222129761089334784297789887723050910224881982480812676961493700461508310314369964838657231007816432180891491536226722041477179948069738491086577749472640974730139433681876073290345932098312026607386490451892171466944023925910369183063193731344495891681560546313324455805885757374430779827308544960227942470385584224145267164983967902555900586571336493537385263313286696252102973237416546595449816819788679005989273513797500694723221678537957773412385893798699762409885921593092422185375818541047592793160580874267605676623824788156582328649671405745646908020744226076731448850131976918430475936862739068132736332094656437379245605071593156783276145539831090114432258886869289128535888149812484189942802042327027217593353892216647433078560691120686928295271685491597240866541848537430859566113812776285254435008586740430889126986198067387988970655919726190012081295131032768313793459806319367111595211664037438482760760019268921220917326097818155289091366791868554319447607361470795686880648428391785716761568568723101964538515965196569821701009735797735599548981260937237021148886968383605848025192594148290208197676005669691754590369218167854155949394739285884686578341884220509632381468345501354028948094858154038349817512369337473901293087440570979238741430121500117503726656720249603087448933983064083042310571761045234494793574799010297455951082410399101801216874871857268941789499436479922891330389779450825385356529019132114457524060229517563321277992250212252677241551565775502309406074009152653743432315749641335188044406384292653998558655295894309387466796975596353512307333632477373432880615455511777014541380824482762263344262447284166600212212938890942620098929120103547266682449173723844343443336163088926078129711120458895038544295501393156779463967314473665555898902023110313457919793944539314660806726710552590075308315880057666964323494180094529323316033924483123735364990245986567488652603555158927937850118501767276310251682755323100315251525072658633867776893523193931407047609901062541313943831146017835104270269698250528955712901496194004063842756796175103253211969830154298580563630578827946444991671491532572191428121228231694676015478427332894434772172701702321903865854660869360138216992930384309942593094218223142938830780209931385475004648116972707278247237906939279676596250787026467939048013447200873450587194845010290628393936847567420626857326875424953745451179818586013530923302425126714120936655966883822036373308682991393267728239377474181776918707434203661858100952625170644067545144239556466325539082065299474969655794034994611503455290352012680786213156365483467140052942045555850293759669401561465292943922659973379660059281126859642590805755590027954963963805270594879976743502301178511480087611582675907900651122489997801617849074048753563330906182385185749066935752012243473989501196981541041000384939546900353706324798042381040077010825701276750815659312689068741669631806552594510410176352082386848676485629755936783601784437107169307155339090092830316543588475363003092804392393304748433920558654656590444205924434379911832246979792350628918199043870838807535193192793365332941462235693073512435133119194618482327315344090331431332232302038741946426099448776632995646015580909795335120713413976169006657038492919423532236681791279174550661868741950741962610452400279815325498138215402696520083678023916388212004283446039499371129476069776522466888328729004004073264788169237710707740510663422817431487930264524291847365774029793069411860435899820090364845513519130838853216805418131679589655973545970280244555483456207321423447276203177778822691249897443931160677203873290494687516429478228065093933946524963206158040353998832320785489611728027445273099053002007315872200216740704797635127156623359461543388214374400432662069670308980212058671675707118202721822080550493743275982642145426016700493874012523729806169693276756921462294954655758945224811535531010927956479827472440941200165726250434864039115235123730461727807087674768438512558889997464156872522763029976526058576990584127469389755300931518946426644552191187414736432952330174479323854669085400755081790104730726543728231363497395416875934289802281143331347618267178814588914559617226853906778736926625157228125563812621568537885782980210222312559950749517439766070219756978123389997590438986227880345957730028163317273652287610598931747021478695096424660095514347578974667424628463409326769222086989379209185293533812213323667429802141424438257760455344911004777264212561162105419858859336097163132631279863864238344049731252569730403175166669178341912791854807500891368177088056898798951693621024642136027967468200834524623453012867051044903095389890507770882457886872621948180942845622746204057285084493318527899935592496294752315355879419333868268064815375887880753881288952584137231423934967553812468416144751364940557459048480286261020538742181307091775458719512879567136336865664849689403547952427198593625713806316445489848428571635207902858482825684015446333903692477733650637498727395418213120664532405440225973633455144785660327982486340388574625442587866638688844165070909569683882344039661128791384480778865990140039742285483190814771561557770493398464734662629731628304132128877045128740032580396359142756619321280460485790975345078966166507341888539519498366707377822364697700398086127371192013688198131010000661134666788582347530907394524799568243523220957908022645941205621370599907467782235865633645012783536893454403847745092745521305460877007954640565042247714306737623681973041885985220112936593850904445144503602214212319320418157656264656181582136419436386043563581153340591905494367792129120538325865249371783954968321007073845641998205625366180338871057479325277077992368654241113080448993272894369273288008085465194646646297188210561643934095327172149473071963799068241461862527796656521716182376035795540265559815419327965387228071058312365148233972201211170197962964521799789225711461395727688980042341048824323482319518897721324881664758177141182593566326142792154399408818889939239058379393231734582623371131948844013118147873756330458062638193777631631824239249637629655529305290978077351816984438217432637495826645339303900725987582134104329054726116318912756672599938679537722306278958568061540477268899142112527129945929535582208427338406105307002564248886157222753670411220059044963378375738006772981545604594507809518072664981196616729774882085789007046944490173156566050990356241065930492707240679832580536396530722694548463403251296721428590538939642899823721212053282634439304499325259200691165674897725554089135941589134307345761538957665050658188119312966547986386822863113355266066303842776778853194022537041478737440428888379956546726065295928114976199652451115122384179385014914113253871837018853729256361283690676935800503722173206547742080768929456877342942140149613587301005765859255301208190579454295572982010698494016383335787565490691797279353872609935742308793776622486132970822073675156009004594877566265414439449771820661247564219308727553284707283004002725816517908546202865232606665335652771650099216722883640420371958492444810181714693302906682796544787750281066618139234308739003914165667682734086641982273240231775098428094340886196764839202375920195644881293586621123611818629937110351345610231567035774784015431203415114851816192910724451255343965921123523452575217097531311409355515323079214296961486805566858946279926107025911675406948326269106384887903378271811722560109063012304385867418678610319072996227644174562525523622876404936108067646490728063590485588209519323244618504235331041336807541732145429246778726896072307600645167646249081059201284118346341553665503576812126677726993314538160904409172105466901857297474607342157348856691386773858024058548821101478208202696264918216872249806320104460851997654062390735304767164466201070329261438456160457382891915313805654011045573167040738802454513580606916623955498395141051375553669882022547718613552113555963585070228897234020507420981814544258258661891000057751515979977664148055795534674640766996260136994090506883439382742358125895078547333687370346338521983938833219457959716283866049336658755375880253076873239694294980609662132612230430002608430844623146671151706544259807898277941753786946427448603604088045870350600556206849638052378893821560104308000965393318344362542011650127337104403124324650834269616342477984390405504745915265029205208887041925578917485143386756577184019127604929204305768764272407427798012676541256187390123001428380517966130481770971070724202437273968925483430371440557280269464612776483217715029163415260060144778476918824750240726145955423527809074695684827620580869407827230730458377058157036370497533461540651556614617640456855123674099316218203260579167754138747657932087319525388832762185841349334208854840654181862385971147463802423100921176547424847267060517694280993367638227483877877136654970135383324369615731707277224425612148289799422315595378007320512268517284166824850049929372417470969369701397159346410258595113451411982670030935942909904378595208582809336789499021260936587238518539778288514916524603046386814327742723230346292236774347718256744352177172457975605534954688259074480402549660352200262902505749655583530902325411493137803432990635546644425031403499359039972525559439798885361305469863339017494336507221799083193443753318451429655659854730341610311846961258314896627970313833176967165446035632419549315667371143901955547139139526556145104107761252491743252522137136084319372445449059226145388404248972509529621505211064126353183200243192796588040037300936620994520469248427427187194128121425580736120643593378114104080915294591926390031625460761268148251966205659804684209938194421978827202867053474167200990271327199868935269125496890058928318566386488420633296055401450851657084522524520198444199776102769123156712070650890016291951963411216211718485739117385965087652924739247248097697927586055035959262576606111508957544185003837797300699872001278326558374167743848412269767295044882857669184800639266671912483604881381336815535292630193370687596708697700844760943335713076217569387265444054189691516555752348762278356509729627554745467853842678974078419227725179688677298690120167843770101456604640435398007887241473641102685204920768390717548680570197452653868444939308768598923284661014803164343200068650733627438194439572227981669380920267338516567061952713570884275003610060873549059800161316731192588693993743217519031329611097031431858332395447254816052118743889023785686965338565418314192637978906354532686594550300012158648568725582462331781290426323489176252845754127853206858656232302883397780380928748174024854633463639956763543883680428251735548875830697389146093074919708879427840572941882849646749550335404866508968062842389613855776604697705431896836477689068363538894743095563358194538908407035000917962896650250646582417293657190057278462292603000167390134825715104152386110518742860694786653762305759797064819834846393698413569028878762702316274735068292542639683031858956994050773920498097769436171069315290910680452216104136616410236263629456509210515827029882800075250939846723702835293190007897079540396976026741926732483304332184660927526246627409457867389836435537809766045509521509726095734750595598062203175840313265927218078239672880367980939136530631210455317080488790812318083688042654242825232233639210953374183980829062877526805813694017229900049658608997052736880986878986542507974051446082247142705677059973446253269283949534399541648191320626113444904337203274987593722279501864287954222450302941035783989234311031058681909047970810511396050184440240882921261363640921448077993748630699594220932729896717038841769970003420085929651023795353940192124451577083174884811122191103456143206633003111273003590833123072703338679198923178629300520263883574122703673958279253007156833855764956879775991696114257931150946499307444110796414240568001530873920633984638204578427323758108226120636672008786188350740011756314994254757359324843887729084050923187937540606937161827184209394192057641780466293586256158977742774424814700476362220263424760202943967348955848243496392567113822525172343141260745284650386835391650485005845513948710626336637677493064443419665716109426644661898209076786535248609272148047880672781291962445041543777293003083888675575212707564471904064605850886562473817860627676782712496639057652348127091226470792375598158238604925930923250827585487899190638895053572583432826614895162746294914991922010831219023423108230073737451662919636139143916726479565004356231932685321894951796251795137474748262528422689272193775015912896299732873854389557044924779989855412010980492133074211804119804484416077721607336901548505244232169394851639749742165424369446451302754774771094328912381911891102882847375222539436020321844729655974690335238898185051250369986316685315147666713535210671803042511814106418418614292710419474430364223205048999175648987277513151581918342099044292373881541895736383426018148424068282742116482885389192917412542732702940478828535357403024987669161351656931690168305085219200573696467220694959980684110554456579984389502245184681259502685930374033112995072839523550458445275464698642563438558834238570926860929513221727447831453071817820473503023494996819260851477091598949322721991681089976919923655817731242842899741800077407108834205882221005242443344475635651052710289152446170217145430111998783613218552455443432723090737905276600202747519915507605848025816322859877802822085511438152610176747051279005912918986433276270134576636704231890380556794838458889991735580398585617849111875191264411738894842787064292333867301283191846330449525673166360779686952288987782766349303566668055190904108081888707077330622358113000135207694025503730707930690837970052436479894345770790003949675451753822264473826979258455545732667106912620429877173760003266442943562920972615580417566461796138625324239664171378495253776320520077080120939694488631367936633240258870602406201048632581683008558199523415894165903930410658103816731939329088973862945267868516028643504595176470293278966684128860716897590548925581406654630784325744964279962687434482451294753992022616294820888979540019280933655415806376865216126586937136298826270778401220321935445622643456567183714940036947543140093429964776577936268882417042610734884389441262360019336333382997824707819537832030822407286893387479667885670716690551094538708214519975182868127824885032078473267372942880313368883543926332674312875204462699716597552404682629633967307433232513949887381282161325442989919555206308602266253609847726977172061531079605957591123309759658134923622539241329468412496406392200659721590728649482267397324546596532643132279733744331973807257449207730690966040561611945244068849173624327646074838472893468196512410790915312544233430046660145588803790580090593837898332383285136270205639521798222808946047250613420048691538136834924709912707057303988031712730384466774975162472234230832298925797409189782534256562560353550272203230672168328790610086074295484441433008939065017403440082608528840512328581485482706083277075058097059142145401741117037883429476893455532049942788687861417895657402035441507506751521173711375039920632172352459357024452665768922230116992303362315373403486860931727301738349381255553730525550265125508657684469289917360778439464857449481827411538170581660430186747041344345495875175693549017929871879263965178744884046902550112364181215225539727214342928625672868101096742016177417836885425290458421712008942575639624179959982694192145435497145586125302947995848500795999701531339546263263806452012856790875730954441850307677592354675679676426086071586977273661626691579262988558851093921394576125944042672505334463694569613766135772758520499195103200488407911041478996595633796509718749756831853755173248688888826608467516582498123401240552173003625552254894533655003330290661253265727661835213774770820763462756098148003969736579109369885993313495141385441020180391859112896661717178494437287567034168033296227435795212212509724601733319265934331959641036432268687753601338824061654407789255357466715832580100195622648321894479415781646771680279178928552940653986597084970362342082095057960449585889214808920102685114058790556248530243560350594585133244749063019475148183849089098778661398647336379898934450438184850200700267337231243427241898735014673466716749510792481608305033962489384441300487383957146692150163708423423834413985113367595284226271912586327480197545608287808913226602839659910845403508171061573701381641104900898928833153257971064786249654660788156274596086155038171464208233774374878219816123590355949723675843627666212873120672583556409674524875709440319063756576740643602376490129342618260253924460569947985988549206455664226058604057296762303518273618266870105709333971421838828512543171355976561920723196477418621811197643354839525812776654915281339252922127148635916697519505888617740489868500245353753797132214195530132601300077297489445712120907411909955014188974348572599343291667083938146601462430181616270881367683855617060258051201369707181552500016899271889510228112725266440438504677578531886816550374514291062517395329729234281430094874001560754983364769373766599529610344823042688046633001416381060557175177796830293172731937478250537336140256786645473739139046350852045853445210075558308254585526652176352087796019595014618744070351490091682718016216739001317040514749849703994967471635077757786184063012854364245497765639023620665801073900081745702673343186596330158358852108074517830443385328338720632959654267648431551544402638851223056487987557396867844982195499295624216350918337998044376319649506770489308891411086878095083945216019134063153200595488046604891238305922349557858147518731331245680651091133704484433873936103870932704704354661514884716908661800911860230515489794617881595830822810265706584753930288787307313695266784061677207119871379128455422116303332733517811080240735724204514129631270855161425439665783766735319105469405054793740385750349822585159711718654622601754196717624694779611112840090662784815347585733768233835379409106051173539067436592207420264866695903626727163497072540619453758736698112793980270742859883757285144739212195124564660830684798716803177973626738944865916603088079333828800014536413864858875984538310813503472142619682565054032033762824980470998366774053995152664320926205124264266596198195775812277178163254686300745111272371612873347290427811693373308032214980759341287183888207842502365682389281072324390949051695686096587732647286338424978768882988906439379182337234859960288525469899910507258223242603633215323197282667869671353735798345887947955448923232080000257721688595622018375520688734579298709775807528634149361264236778029813238382425194260619922206802296914760525277065015635034351375460730304173388487342160143288494042544952276090797343348248415979652576184092233574045371489823516380688464217963791929327446505847021369909839137850825034615014384211783698755233601437109364423004843129885429267854299807491172245867480317470823221643767820580465945879719485862547489319575413847093948629298871944163968204378241113468888759362792814062893004257680507223410320152664007711613021835939910049623290065032226645498120804510017387620149478178829727322855288386762689239204896266915417677556343650760424606308567131478643241094928528539890981591311228943266351030573876876955076963100330676537607674916066939571693829353907465750290262805969945787565359753232205848343198731662544410386622670731289248461746218611371898798102108527733736379320400526666010578935482208507910498742952390132668437291756163646235339690646989417756894539026215663658372629739788736530091370905295812727310542718321909420548261843521450609124738690230951128546143575860029075387258234342409832818928557585064602123354387058061086536593179674216352443018999150776690381362826186875720726542917646119093061754512287279702137916222712406261457720502029180197460005428784856449239039437150860402571654712952408277148809753087366223860163146909622907001055453114042025180254403522664808018945441196906340986197406810928550557097644727400041486918078468885032033275909129166934270783153041863550473134552391611988139499082651720676284410572239103826857770625401874755468249585997173636301769045965460241595567770660490928866084873596081367582139861375594804912950460149773366050352571979407006122629156452514842237415333618776378589745719304429300774665092334283830822993127925371475902081315122098260017358509093867378884130495970896968307282945520569080551728449068076413560770345067949596410832239423258788679405766750602545937594660991274661524799767527179392236021176696451259351656605758895837785804242051485777001237628925123132580863276095014214762471665349551432484729847691023887563617769927724444445179707670582972493727169316601266561563864463298702204947651938654331534523462655047270804978996187566052305826235993670139860989247151793435678827442700581611205553578279333599266676336269909861621446202006395496521249427265475221101416439310069145032537274758424750303678946297434722343730052064768095782260219719074477695681473203724960448334668133092485296170640147277336055269681317215316711067158392447738993545374433292025009028069865676677685537001923739818477855828649576201894112187727643105594514770773869751469115816241013937903681704383320274774360042638111382379482539315975978243218711376902837455884294606455176338112629621180706363459181063825971429078044145230320760556392035741081706502649296229486358198165214941850806505712557951598679399999107375599114098658001295391040491370080555225135203265768377771976023626045258717466094754094355975737886525373294567966389005132993586177454719980178404144075624957705541667340578246751380529325004030112901043281971041852592145134496664962238559731795244212577930841695606819939173982517332091853148887661834691925128543241581424960071974215721346795721629875736175158429194636321589015678921522518335706664339673006241653910319099640858822662158452085607085303704778967330516519900389198384469130286157801267616629246751831385640575904970940570014891273850665110507738839200835244143574139310824772367422519987956602089055765536401405235382860063122561880544173802670193052952441415106506961564816528681336853651774808247734240432026928772075163411615027122409192621573520017596253176533115548981092630533665705483326151501100496269307902804294116217135909276353822241680223313330785578889522272855464445785807397319109252029250015465777951309456136193752468200940081165503596228592200148506383439930779773459627122868730681677458040028105261876064705146966419027152096124339090507136750913996264948688950693999034717980299263697094758687572113741531883851088151353144508571143281733420180870196171677353929529711040550475485711359173225224392400275523726065217668591838025927998332297743804512911568176308418589056983648919539967746580884074589362726943665508365108597978725843423381990060575380323480131340711845529567440561987660456877507976122012432470655753717503554668183975779335968021773366027379846511612153408329135982958241264680543526226275894320566548856225536842246724511732313968116492095293156389536511138735756161939140123798229862172101727115718850935099925267423490158044780821977372306029701523720575614871411750034851764413785615998110314564683993114087815645678727844383548486549952692109690028077902472804577227498978635033477011482253646371408295058687278819567629873787310063450048321401565597659613035738896726338658637097700070588687298389263965820711724907303488634066422862782293136714693940286311473000511884716792282267098539295111642396368587718341463668231881184843472467737160074754903941715180467283502208010625094861034892178954588377135382970785058649420839850457457192764873154057397258141105331305033136047067766528177198701835226582544616963337485251662195993046807665845250527336795088803131746637073186754324500717066902855503023134714853058256531765760673154630352717177275203317246830844248480567417974584883116399768660694494687675984146437014487110924910863199322442796270068150148142309779647232878042264594639139321603886763434333725009087294353427001778738091366936895203907436447344592250890192572406645964305735834282520391141920675814264270786629919106240237008031699227167167059385652835146507029736948797616206242591260953276137813760818461855906266617925591677771506430348735561051608010987290805155504394154124086043701455692447653704816690287507203654328862165452484436636957590212646656624466928754320188627141959312556484947021009738572205670326157166359801898345321684862709184529731844529528601033729774100489520129281504068329627889935961151582752670683001192949592451243599898061849625548222989293504406380330042398496807635250044252955735133486967901835549321231118436675409635006562736249108666709258004860264052543203940663138725292806476101075311629401851355489267464062824063889682759485160020518213669628464999361791102153466068624061589337319527595300219991210377969228841693382122670421022083066718477329802703924692058020780282632853389309397962278249174753226200178156625444625827166806957879594190496980883404386889804412782663312422971736909769384030810095013040449274807714931127122085753036477117821957260359835574328426524422890635948178388518310213640850362273812341097154443874681087616935256542147007151803113397579546716329565504792182656893290397870925844451318853689441378088339265404764527244112072266597260068573872739838265098361040093899428277181024955693792629541985990323655705535460775950802685852800619678590934875286737630381392366462115084346342896120457510398834481314252475351804894644357836110491487806202927519408719995073507201158954947251891815892702951064528647922886288903693629552812996956491546947105111498072426334083054468112140329908303694012943056538240755404651334891071304862642424821962733429387881109236958726683265939744427306361367937886683648817821204430987412092492536121108173244586888081759510291321575571442868597576244472188663907991579282276392270211596436367826107002997935573073730914875312684231724865078834585973217344302772402360680451122471766382275132421828004103824415241013605011361320173602909644289242008036372174743554595510125819241003100982420433018705557102388724987830274966217968828973980533159980873660762884159813097019598075939313731639872662655549912227520499922435591830454555500731907286924562602064787330752565567639643171868967720417782990553456492704503528625616474640416361529830049652460128632866748048492966172012231764641404062074632335771552054909474419991369516440871240512944634703091896776549186886668729399803966639255155860822164355673280470474235880360683351057998845990076697211761306013388497931106134290142184408036425058770944742513329106978115821687577784107130004620097498931247463139008194057696093205914078230874460865061309946213347563499823769002759875851461865725656269515854712379294424643059876137662256569240894783904649527771786123016222940875645512674181661645573116344361673638798491594786481970370386502418529665660402268378349200408753318364852649791282343694592436391032875818821368694235178369870691829855347745469556580348539860234992005422388046939973960135364778680237791636748210752931134471903776951268830672858162667689968075392604804221862541608475513943410235562766964042673864283875936074895246872055051979636486711983340444354483144838423024460563932981731965480267029442044801168406624694084721006816439215404847766029577685180022055051980404345290291560198603477641496626162984331935277277239182829964330140515911859211880136368014216974262353720419615447500527292375941821113704810046073042388274685743893998916384633982967897077371450913828357271438637382580667326694689433637625837177853734972141184330860900079292923965516953743461730705863912371087790938024954133612664303967541757813130363419232218786128448494175091799668340782127783507774730722781425121120855162351482161035793444949600721767524791160841214736128033524114744518667003867359447584407297054623167962766660642585042625979239456143761930510854764975550532067397793278332568958747318220584586788666649913846787099063128417282609389282479371048745212150531177072803440598158620426379553365915798025924707256859994196876611335333702385253829605627054256664523018620303176978926945676446423531348764207468255848058046579444897600280194248185326734746880896485040311172232892537710245323920492561629528013805007569246139724164254449747196279786692187269373951003022052538426996132377316890520237292651808536831500719802717411478840811822268646749249563813093983343477811699192664608804251711525141381954569284584996978794167248169330987179922222003064371880361513353132565260937216496647062509717759369845361875926905186521101740553113770793671913905993533180424098944294003720498042989418795360037989611720582886070252956038300538399592078191455862540585246344459846348622034768002203236546022615724999622285559383549299985673223013918580681900628475063455886223695880839809136961350620657912450040467974267433717077184608895759019681416875220139837685944845945741780415837210603127176418930705112328347554396740438040200441605927998878890847748485253649669206950991716203921698110801674835221295498362506973358254708193802803209076474569561408221935641371893321972765147266541440511614987991632160279271572021549914434960593136738717255492396014368562517785826110719001916090351554385208210613422802602112449290405201625905797021388764944964438999451020843642792076070325046309857082113275081516993836090333185036176600042727166003090358812482059205587201186128085523683938717112962845820830693799311569009780710816365946333979630237214834015540218353473370887495286063458292129973755043296081293499941503501891563416870005289998169407635890272882711268179905468295890841819862029347816688021165088358039147396259115265914145528152820230997107497936562874926346160547235310991624970417482747109773064836277109878962500541285335606154900480106597912356378942639626207462338425618005250381550669585575410608928903512675215551969756518630036221782396864720485742856760246475006227635634627812216826283701621359991402506881783392305366925494266816507532807773332900888539176654785119393763223731854827059049284150942568466638290533898497491481542837324901307109839921335299110089426639723718685458334018449761484822352974199052921991893598794827761771647724753442662118663488670979586936415261488267036767564293785818670206410671886758188233310545722651892935776720618204653675853795060626751894134573376883381287615294360212550430467449396475256383517039021940221326188943307876266446365045758319653247790524075272946802142981855959583391344827242608914684043404561137733542185863292007292798783876063291157308813632446188099212304689194151515930837233880267474751977631869052023262057160435147449757772550488611442993577760184667117732672016258242159860994911493603164321758382185729889678510792653445057418381327148989980013157631188046480631014657902961954857949798123264211676135877481169474737249281803161314567520682660746251482373053351506716078752133764240738906313147011754740442733413083179212483586354991808530446496675892980779860111615982211318060213978902251087780589703349310834834680279806088199279893343517909664088691329410603028445741973892578707215659371827843590671845945713301120345618032023342437291280959639949811431800863299007309258407166002315889169319666125398110839454849178597122824522946368157648029922534364991586136348483896037605843015199215240080271898816581065393162302942849282802958204050818356734225600767198027977196092485170695233959141273455267978470288432096685123514656188689687890429955853716360566930433239819731643203581157220652375542939415813016994659554046106145860572533942029965933108169673430586514397467077229795721488631627502239936867648284285575160575264289853820135298247476755393895998125787274574277473840368018741185983072717598079949291706816851756720002533822633712777030134248472865350569668227102662264347545414881831270033001331959483242953846030631104811514057172564830351650307174149747039404894411587706380560965180776337262685256174273519616580377378390875977555933847082735004293171142854948229596576603198713027082120997517338466169161799789354780288279874207579394681114178200302347820106124064431720422881811723027932484083753120124739082214464735670386727264903924656215038001086623223033898727461039633679730860854961045681252417381596183908621429952260287256683651905189606835560110212637403834816972049313639276132057168851572268998588022710360574284762782267069059694690571069310458124171320708621343710912395340631071252677190402915390730573146673943196751217913002513183375047004046977254452168408087739505018745287646304652340888992800177467900456165898434714838026396896866115862046395862137680680747123290248195770214720874519428717065827072902505039205467532988699981718362382423516624962874184940969011742734756850915608569489226383887814729531630114942480354750070569774799172276335786248180485649279629122144093508691614576799209675945132003600342841442471786793759357099448816909442536310896315092697491128688508472925702158647526234316244481367601435683613064485847677931762313291562038986104488294080837847817222216654279181915886704734672607688293264092157031249183890125520767231940613425946067901651075825260294689381901399026022962523572852987523792160549471246791244851290857713337202328014591087078023652929026764992189353786160879430090691016203613111039435558307166697093621018867917855258777622153161777237656929409160976820980892684883533982255436234002407076585019680661105810915707438425696452912370990418680592537176332018666593824628942798145747640557337827183397207729842327899298151516552824510684589311194329948987639091418108492570155508542151863738406866922678099479711871480944725647419721989502001104217137667159231055729074138278246164047521397029585653099315187748286922017134785634823454454297184875708034523370727000330317320679493079488096399286922703794625659243132730955547775784380410716167613872171232282308377545234760667061283228865397651330336797642386328968401176055008372365200877243150099571811938214013861680971918434756999326110819836853660703641725932824530425308704254986368963911790019589012526630637357380623079008953039282020441594423374156224473361141375647164326598285251711059228275975927165412103893031108737407843808865339644501304789843754970016196106053606482495291275199749022840887303796527965699077135182470214468225447117637484717588748164215055820858001462040878384188653021466533515639758977942820047297855685819167500575927408000074605817865218202010193981826661875654040249167343183484610586043734081712811564014572455687833824504057285030937309052315802214521585345716380958997534676924704637151131622666774824828076648258521717703719856386180353506711123048196673617822691090870209357682951444557081323035027098493158551141052261346227102282901362385652087832470300572110074357193309614169032893084845020319919960348582931018030268899619820354214190374887334297875904666038783561394905261655197445080699788578377997376831851250961575095864800151235521304131432761432231883881191705095130021841582140840027728095298912200796648017924389342057136041806708050137701244685288669236124028993598721540191619522971556427199117119419012636040402823310601190125330626412554171813717299273738327202367591582703587867359492284827396770965902114186446872716025709446628780870942559486940781645845324168019396596446277268009281083091876934885817107091968535326735027825202036155827563182577787009672923950084213727681395345753483068093482020527074191996417906894327322342502013063909137619296923814112938211806800477745494903472601609305347935036317018716481819261942985718827079706924183213537334158299236212341634948153541580233271778484682444666260933960990951874670120070144577660060878264682121912192072392442120670275121498704702222371921974632620273031259085942293843152009959697901154415323257438634210819995585267370339379001912829753907163271684296353892752943867464859222207037951203419599508946756907036545133093781642559182475746210021812042509449641634398790037123048288237847025915163760247484463925860390437889427600771105782239356582231702637639339121107739037712713862313683608705634722675303684255800588694366449061828740852041433948469088314051741434482045171331938873490293353999716201971434875339396558173262748664202323553434102158943973860664626495272934562398627614024397360489208631755129776231130546502754055414382960631191064912999402167985534191459460047427566257513585209966478931896601684462426187830360639240716938704347928049844015854204807307050826670639192416315873273982091564990107664327250019916008591953371782656581428915155088498154851116614775664075139692737160159789260916202841426029441676390185825701540319622579846753857991478891623872308193838502749895749366894616573902268919705993360716054241666567103949532028757677023479738188901442046804684049784307966893370019296007654995964222015318015706911484936021341961098791105913865898298209734741564795287354309004131240592129630199439990024032434488046381541318288772028174642510789998023119680920570966716077712256101761613521291520202528612810949345308786753476487712040096454872655258516282699734581385886985276855625447724558230289041354143844557266993215188294494007494831594755925821858147410022568835176392536874267412308329364051335860168599247306851188346837147440187541084120712146480983291728958598504894154801668253185995700264238671619254906817658594671181288118634244957113856281088034803346438239841517000626344228580981147260738112592660874770386489459095262166813143296566614236132385331409931465053958931735597345346888857015420848432415523236520394645016219549524174479888264033947473654969041881463459928174440617088116758811948696653797003957701892827098696827115495285103686635808214607680514245567390757474404056284902385959718981133863352689914784883620000389994269531366591029025939458719776630514475520728054910088057858591204688233912238210881742907338309866207760099021176733860514087897161989331603864479727166635539377423919361339910213897290148857130103981407461576665586345629107260928276588418752176441132195028889873813641479015717099881455483906780575679457292115296775266386625529928329271739214355695200155359084443000808605242200398765925978676645900981004280770446625878275600946301114545118061031485050529580843354247310719231200963244636454926613671105632088880814266842046297487462527778667557065688043625154992234274494258131592659785475341977086785531963967873407875712169568542728732684182787270131126831131969808692580044608980187626560816590193035553110165035238409233337216595017858140358538690029847682830183229818213186800917252148361380785718384749586302320544999266766938921519662038952041535680061559130388780398590482089063213257103174866233714041705063471676197223099931093974089010207852015123578629860182394802747898134632961730444081439868156890234720722723046732273605770837457392189268776875715665723848045963545590122382274593050342806975324853888252805064508895699597215550331575120453283930247415537391063496650413599027953667460564048953619162879213349193701658151803171095638331411251576378118471976512112654819146278263415141961095177760713384412598038288816512079121663216353950238052424295326673731003813251026754803900022496657623631285111238669014385699514752349134596618438950529077754056136993207560179572648880498848619195366638598189603661825769845058889941096498862878109768748635486991759175572101213603804904976681306273422339303023276768035939473583374995108023398981175038138076770777422394322020967580557160555171616877329570416551233239526523463783382283479436571869037792962652107709952407959772796648751712543853394763463673016543348817002455912717863081280959909533408740903500209214673283596987091043179601784318740007343428721481100310024549169367249952191769533556962210159892573156286346063726962870450576697612458894953443702872257725107362517225591976180394994808957097213326726299396054987637459083925781329637914356429345433747669206800363949716506631634183536884078747247119124986871135712067853572651694314535596430805138232095205272184842889942446629159820532570693737696116106519086303005174013751344755405293009994538420660853186344952679367597649171546177363660224476732936368685015618604281873570414948775110824553192890222953049043687261855451597298199024739041709050491397525987938043082303978203035421053545440479410106878468766754040362124667278982176979318724443714272237633053347970652037212006415747078848301090698037286437974144744748023745678585433780672170859290605368913759821045589414152909328385074773257494891451588958872817183140527595956547429686762957054701366627344878346528304611797030303416698358677373610428081401265142087909540065633019945669590692757181748091991106018762150460018155532797188375458375222720778313232965388843303328347516069663619292982380565210807879447720647781226466887833363234062744845945846108629004026117823674818446674422349022993445658172700018979207682825327785479986018134241335022093799172301035775580887236422301920641017867389696543725091989462551114602893181281351416581473706280758384806639876990530457484918042229795710981612534331422965773599065637788800052269911816541575409823725697450467153393086398239179345148863745152373569334586550431372365426183375685237118693727147358131934000361853618596054557359467929503954582838393934547338081462502596894424739575860752561835731773160475358578105398822313500410217390594566912656261138533027706500556110840604165153823950900643768252568231489698590893095466731037859858424105907344863164228080198587830939933873323350853376197935521659050668582865232139750072052617966718631115646702275055287044325611578588920984083865971499594824816546237178905462564530200897118605017602852770292189469161620810355163463720593913474105744131677488769534585780136783281851150165494411610756895203956285386015948221713944513299413408852368710352952238850268913803323138206215033492904586452718170116249256157823268955313886473266393671017203037809651629501061807118655907076329302085526395144814689348362395154933019778469292866439172771623754524036044909619434363055503442143404127974534757146605552303102248288126683836917601803868646615837297326717796913995993180169797103146535654415578892116372986423951062689079900041828167540671901350118640943975828921428702900438734696859903444762776676386580260491164814247574076754767315240618509576021835850195542057087964098529953920664229679480216974202825150404820924615014071671220832450121340516370910049522889108648793738917325070232398421910253051189676682728549201969638145430515721380082675080131437590151107392864915696449168899389234316223664206594602746475098470664588370117483393684292711384935205255903432145956297174474662674058645621366778731228560421460714509782800730329630452441553427384490304307373894066955496700694085287924829719877245528680657600126622253868566010616150716040171644205278990716961259566362161503566216573099469793395085157058459509894856864633991441572306720693685021082182894649233732788628088697542896671694976104609899206181619660859272391836249462270630407533369103955763208073767862873312764928578896653456739154891086857276521056017768999645161660274047466802130522686262820174338271527591898714811371160315541560457499271636980085106668444080202810796796740401472105509542097460368641392838940233106412065779966315535746751556362031719779786888848763287462834791828555016587390153561107890873246735784226547097279446209554243719891768439961824338998330023158936754712041052754686158076068259819904051018365290335689267951615767151228705227191302395603422453614476722242007591366645173620143338319052500019030086679595407857856096471127812174438572419308751904403336699981384246733507259549038966345489830459891642888951242816742319381560550696143055104648503272401594817630309348868627003241603174675386998494645258765073767944892080306176750149618538839693380379716888161206441030087064338009020076215211406105572401063374025923843953693446794068698813285321966812574731013350277073835010947015077871671770178652182882734324721130809584197645943137817609964850567531656712971342658221564865534307357985520388138232196051623812924337580976088733092964160951975597323367261164529506750427990047756746158428503568281104739604893395964318816272605386231767244244575177586334839617137459977785262953773478358759543679650362294349120800995028161794610707306196824495527500848774599555006718259433936190517471314281823765777080717959602881679635646274679995699071817346171651426095858950538994214634636941384214176314674372742132880890279396651710546036229912704439136516475805243715507929444550896414397077535689876630395182162264932678301236125067567409192584469766847198803197971034194682225846062698596743246689608464873717824072898908422317595449853138142048278809474620677590699080776887462757223415391844120523436856389194319693957613866060723521432681287301097167073906217577306146930028613683143756616515908540495994545821537228308415812188418802695935707557048285446340829356026030142453370459079823813739002958229767298957394292518162044472242916691874501899047123639353918865942476980753985472341479477540035533417175408145414879173991241977673078816146731734377032940908281539718095416185096260675101878293062127932862377984249778765033797956130482677598337143179907525560160217530503381969824905729664281081075589377540717272451538201318367437423917765707945422306313284788557789917103040516954849181091689768616092737188927911926535339551725974634516013576753794546637742540106801403733550834009559585835294382819043877971102728837045141058969131076131094074360688765110771913064701998137203382469054273158304122553034937437340022109730489079604670063300920680897523360834569034800377751701902333680883004647889221102053755556951621860364647811129380753050462522347679441410860702599617032006090509329098098088014016875446348121493976516100960394090666206625162018392859351063815367513463767771887311847787776097942307018069379181469330547010612554470859412086974435635990875421494432991171321953183782765270634342736255675229897550054042052232283600241637151215109765693627578013577490984830826746459217895745624221137333697411544680366999830856028663800481582065895061523807896974683592245289866464962884346622120604826207431151031305779496277932673201203096611162556899531886838294535681397214152355843885183648516950893096727347996017862641340133196844981061557347451057037297963980830245706721226436060430858610180892511395448128021694719442112702425404466253684010802426041551412332327871361009089592442265429825184026052579816270055761819507469066778522528096229671767381551016435144076411681566614259279553169346035355883796161911842875677418377668339451410038131625670603018605023713408959447119785198440026467192402345837874786451832869240920942441566819516816957868034968311348104287893337943099188462001038976802494406840930619550797427144790804912976627571151095503121380426368813491282576979114365405132170082365448877668089130699296657802927958955120266737418739529932275815325586924835958296365043790610977061483288847972470681663396607353595132773150052481632063461455138647883707515634535499829845296684915172664163118249035994505053069875220966936131021469367923928061309631929681352655536907232586739243195764583740937278576430849118385665911757032172915309825922032204385076890994113467125747217073361308505970277254282875001011854866293371918748712556942034127718783140822872852449576417171527759754188234698222236779617798141032425627579550880117422959038704514933280206030872466122813328406818754838678326258298411363790816100486781226419008847089109810679073535601739709305189674001375725785312309653249103410824013625674013333305148797677886324904132827679544987638590900627793476616688909634159654303518998891548517979933057680613521102719664680169975335715797111974326066729721261333559548386552164033318108409296887071472822822267745501252447402203508111848020613911503844248551285228665639429295644303103415883225541524514710332514322127231399198748201506728278035438167445427363329362165429776364720396502043064872391642849223271703054889068298611498598106279648694821024644523957624257943642413005677470359193134499535407231555976375111212488435463217322748855237150870726361169393451453025149085732957974017105502673653662948482336607204389479049846432366389587294939718625868121438210419445309340295572248690248784591401027375070652515078239024948503468070127933653487356731504180936876439721234023731578530943835396744108299727795031521165319235461051420462943844641678618447055407756869975742082126239670378910992993564850321775568429799587740245724162241905010578543857835146552883434526323848244353445909820044223473960189635509123867178345309668812261828593915222537317291639382657922331215217049952365366095512936017290309567153332956928069199673898751702567096518347739218349324189152889731859527169962466094397385648507721083345514378546929129769179559215989571637707012597199387386554552237830686739174988490549381069202564985201363451101864088034557065245020592368210186495491123806659122133226885302595830981782777141473621238098598336402820332353645079078190397441321576945434581753164177477384917253878935792396791193009258293613666884838422535096621267284170131548327747672975674822825635254911739349194234478589779137041681413249792134607299944048144303334742519947911415830992043036913842882795920513550518446312639809707492032994313993010501902777916557327180315809041733744003284743347037290655493763299525147030447038172311316897507998673368371325064050021260214676456678277962703272710687269185922130215189253387389645526454870716978190741220931366337082260285969509989229781264018798011130290104533145454781923355485189502917574933221067647917569685998433757158227530960487375809308943532600256160572127886581889780760194293566169119036146180972736137677150046297497612159435055880956691914545168204715495313331760247025561768998759457705253609869510813761978748370755569575233935012323213954384560689163473591634326487020646583561141931447153618289085430266088607235988239786484015132391752246151783169580740526034044725897167113790724787979475863344864664189830403890321572937743676650784539334285141255078842401332754653527363345027648293355883791938239137900697687790778495671590844899239714940037237183428064219646324020837475878823851449678332755669047578135925115281434896175150603075237854727226827440407311342576437264191195024948424158530041809077765754127251530421253286474129337157890130316838484277807598062122596787129908240765242284216865258191199208973845661668831292479788488562218290618099692899156920314121294900469413315395849885275765576900487140671429614762828329846821070595480781031086679088559494525924595583269341284818446493666455454114975024169402623391714648538477052630355902038459616655791820136778209849520305841053729851939826658400356015614445243902678503446709161334901276259885154817094902079033070481589012343484863184787360387672548591626104028609553030500596645012468555242597083091585704506401090076133922386992117578011943912795916628965354468296663489477465184600574615634994539174333175018712111158231079152967834521985561473479978134671008286086669036511045403690180089774654545286644635438427874680111922502971473568121714196517268327258437821868789710626307922834918723357969214858315472241333843380922781884160637910787333413684340779449177748270475145411298498390023921483710996467026002175281936151801358725134013956308629833882014932783241581511891990765546501837330092684311493377759080323570843371929733412058487625503449953817864417902905092817587831037001416986774063182403552256896336648938528808782457621786117938526050919658555499078029637561690684581835697507016550641667363298727730840150725205246233605209107572736733200133832011812365173118433580984627209587787448826643857794725130520180616752243347070302120041753206685287855839691330718502177489355009686484314933901120541526497188655169407836114069222287306682607383597682607047675454504594467218662052829237341987614455963747118923515920646178562812217937484284897921794205611014168002085951226248498628978614481556600179254905778997576304318450509441641580437790513702978025383891121670098603833631635275786229309455212192431557479176337183074963762625562520230312327173476245336648979973454427148832405121864279252098936650381427132732584817094664114329981721062727394965006524522549292783739715066491755112163466700618405164437424832667049505455116258874363820285077887377981465835359237755449412374514985446906349469015722639550590537116078313772388303803663201461733545385756293159128682185649572665845290042145391709151857475105386612700496101524908127128121176554803649174065018296743463981555121500883233960184878946162003178835116438247889558407663265969360982456369156060774918453628907427296153929983962770319087601149456323332964400640981870804200220295067483030850525780985753141878905791285585220039885030040397615428386678870753658988485298017668577224094228699296496219703298579944761336145894279798025389155744867049012320272012873092151299182001111375107290625548058426624573819596439850475015756604663230595445086058432181759670617195457600772842068581872621352891133498778105095089564936966339490797519573196355212124894823473116800691516390522514388712871916737371047766562565660386052495935709779040293388509004610776772411012758719259997904880812901658850387014165495447298229399408684391085157966410904851529244070322223417010800883558924012054486713337604879664694669220314204890277488398316308591994916565802836965233411257462692485428565446265995918496746660072999981764369886423775121267734601388608330438200698603515373227598865170607805462811791275339992666989812414937990197071252483068553572739716782555816000317048293192339511404531880016121329741019386653948157907779904051407067113863176922908407598474700962539401099282472683428788125087768276781221510042151390497406182236346500360206556132188203765932907972113602695356130664843228487629530479023737544686958866183589009492848104155658096355767132938298955043871648260250043497061446175995543805089686021926850673467538513851992154494573605548877340490431701006391761918185970693162058890874039938884324093010654070130487324639692838608264927963360620162214402683978231301492052384825195974642642106302247369057050582862021549999907336522814681686828700024496482125686755877832626366102570195974045156992171476752497904477778814376126629668509870838968796450815122818813426601358910259116213863703791615511611634396945736588049895780227312910282162381331172468073108532703918006210334553158881021102937127403717181471855629776083775542441063477502609537555829685371601925213326980444948689547682910960083995760627893028504875007053509863322263096267530546199863801416063386372166952596217693405744513814430534067083173837511264893938331165224657525297275477937216936514016980376668955412667903173182380295288749288866472566985207072601930845667970319395783287712060027047824424846231887863305777770403443060672005175143281990330945852988554296921150683882255501211732543104698299739433479489020867562196141197865473068091196872781938566525662666600476266902824134670884509208741393939290562060501828878932555469766232818570057889331009818902902106119662623917272311654425060038198085037377755660144793309340077694367809554110311204634636881799345417673112965230012651018906694468078218288597967558524055701266088635759568354309429586470362898814251828192062176270895341726897372095413343471693983101293230345582045641479730047406683663778210839310823312190838782671920256590869885661273897505933441262140351709797873274540121321014399610433810874817260567447635696826157920765897270050705187251020747058658843496671310730350891892048184343238578478569140499314863451530515365410876582385712443375271291183064595549902484030824168975032096100718853446275463675863115360910783434633502739955593472982407956519427248518092259781033753190628556457606627698554168335486568652851376259801983389709521036685880148371987342785536742149533646900227927195147553765962769133344230802652498248749889995069510798995496989797544407734580516357334800535685421796100948271984873002465790560088874741294460086072285296323540657963160926789228294904696982454760988185646859129607586271066298471923151417999673433154423027480684949934081726884216444710774813496503445933499281532612401947895571185274247619050701980240115034741027598441951422070354822606285295857257882285134888885019362274569420322275475630110347834166999540957680972854345178703187697057940279428673300438946655142916797065265072852490923909687187224943439346891390053470815420493434913293614116979652658370874692303654308090828392152093723037609619789733476642590933023732558485708322518016904737470052755047105297452746466518407832591562640691604061353403970665174034154067413565181158672042661733397218373463484667846778306075931254685638395341522067850045379014292331366489228216611826450292862340354832998988757427006708070739500107877249187653637134669880159365330761643619264935049262225744581051655420130464980806944202555472225777256193716081170098229686385112991791906490434232921407264893325302173422831058126498280661415502700111364964991501692658505362578318162171630663151878617634641122027936799760263067223802956959300310651897712900866234365271631186344862719221636062695815687567604142354051152283130616635704819398939931717227405737425946392593532613741349636167433608669458478678614007707162738116316644919539393348118938898847156453874323695673702646664614919006379942497272553500077631760358965511733842586830494320947589104137276103648120084652814574440928615791710711782101389945266668446136248324271722285082998550403186679363276188127724933653232803228925877298439721323996335160585084553543958340954890223985840445230244738598057477958571470462066465061620131402617621379281774462070873743947890284620679678058274025107273720986897041004781981998944684664349760614038602310540075599229698078216760283585983630979300680580992610167568366221145539997201518102481487910164533226152407370046263355877284916975186470416470127691356266993208500648278375413347507121164847003712758328696519188017879708327260463458918258839729261310478510348019290405456994877419001923133887975400952897460073408814001111510100223469758494152664427107919288727757968463671161656738405246260641207082621185663882416459370978212852781712136048501992201513601305620511560993651457243230227379269011578660868379359412858939049885401332375186303250174976375721077455904063679776269604725184172571625603360728342555138789815044007769493267689396716199769282474507496101397511539104232475846443970198947093839460199573563266132487710823721373919251604382539935186397123471865909348277207342785442625116573615071298752397739430715169007359894858700388896797400159773675631242642094757959521444350065031333899847746498234994132365553504442214628230701958557882677506333030950137195042025429385797124033354171895188483097689956647242375148234831697209061295116694466492796674295227864117236674625184500140195713017042141939904166879944874444982029105336515013245132642632502522277813341010971008228575255596791813999413028683697758751600863674402782744328294619460888574869951974848581256813937734451042663823769815447651143116306030952256093714462772210116441020739579133297516810990161588572946960624130868393777998314546641825444124827638253798302702969711829465986177192622380460322798406861987372251073434011548368052901854716371472015466004508974791037855583075964985591872653772630980761068112983904121445086095960151281189860157665128441239489641026225960438389901161865190593961223322787340605288026368815453413128017560175445795733997654373454650917964305778910317217198324486413824407888440773323250484238982879525858070494131528596493343114757290684482112024914929926658895829035350015258946609713321103834669956677795980449452753498541460377961634790559367681277709683317840088274294431618771325739881146384322964079638744251893453501385361385815270246894836340085302618589913697292018459087405183756681279037520990773648048277030921617223067650536253876393036556869070978738922506073420873484833696053621622149492532870363050173002150619574876958743084557715169001233633555498718525405032150619053555940351345650782329163488589170650963296587946524430093250883538399978950039667705739366340908357184732666758451981662562063309269503449920456317380148609242455948511688149506167774442341131590347073855474668275909991468081727096826942530243473949421349125555408585154174949683259344579900672749583080139855990407957247576512599982338811578918989118827498783333410985718952918856812244037630787195797446500171663003068265661988739083001455066349272905858558076460473532971761065440141759381740841230684013912076799606919788648678107967741338793306116451725481617376377425982793930814584003997456696340332809981793553408832368635620751295999439464740202178274546133442688591398685237823475796365076383216031703188133317429639212761102291941707935777209050615916230105479107005056075593117524928153493796452029478973092311575189162695580434583181234747251976239059195523707284009963912644671275649917677506063944659258273527501342239816426226757643255497848270843050099270187015140505578428702766079933107635789684032510927136369784641787370178547816655442737761643925010277675646236419445176891100319858932202769239595034212483124130655789857504342657739595182794503360190647264894087409081077476017002935614547131639781346544955707545242702014208855358824974516488126613040098567247610632571579704730489578769985469723744142578785977828531615781541627565357356093382374891194689665365753049830318532913400492843044354247560945494860637772057439606332910924582016917763414650827977197902536958784019907660563967173378430720810892039284173460740102541492971400596588081678952857558323054578315384645439782466469328047462947784621479958494423118993416993756645930905724996887479321963830211541555411563422454919836270106929968391912679570715309088154287976906870086323321726216676088378325676708988691150366548063771744460254721507121023118532967744112735817845738081285433098667690779491456718166777290879855972827363739017168722668931258990556962663741229180414894470326821328162281492535865942344225273703181299112149100115411581820515340121839097369040493647150154916815798004239083336727565549317188360844093906973796810671039468385948716090978141808595233330153640881636356476613600514721445934346007039489699465311681035669919406100315181663564837841916627872550891961590552512066428966324328334499450894547163203045890110310672074206820368008844457926014886554530866240032779295331718982692789139032689466441723346200959676716052492767869424142414531475652898280153747157042708785673470627365088171560900463072419594774495634500321653390834241238882450270799136369966518516546052705216915326862163278629509707890283606088983180920329842240384913260429002975345792371886376526660614760985895272557589931025184322076707921165372961307979666973894426919050468248729659070087931567307678590347334089850671866871559314502857563190298773427027241337024858134689660327521789565906438085769799312934313047870548269896252895377025858075129287282144161083186865295071878940083974396762342278907332423046917441506513046002192192270100989940308089609472688956376776251364138524425827658490041629647436274891697787756673353506575984972479055131449217186522153625564575769828911005317958364947961097362630842393493899312804241879861223755116737806217487568236425376823617711476758922831318782760331382982887701453602250246763882176940123163819903906977313856879452108515771772653915356169233392703875186614059373279820875249916282985075206547712780586267960475262232317119894678980163450181342338605260420878614517177531981326943135832953843590493983193419436586051348781623977097481621472133374702310988706147142067372858211473687736575115991433169611780785688373868486560690466935245037499350876845186834335275395826205207110189239468893165978368657129389182659934930317564611558345074158335947671878098671553483364552049292646416795090765557795705899796457848794424427550376554576648486178478300611615315475913305269162732689069313979229323074952844403021072143054190609673422151659489190733863082179817297906862979021266853932185219550793996337095873125460359338700103002019412847207740610941938663318214297849524369560211124851272563673929597465704110356636415443432768578424999998299047664634160407266397961096806200842008869633590717362903839526564264684726773658035458582538341545195153621426972966575631019117756062238330107269389478728532382543277866273888219316782766444002784163051171145109925501875451415930961876072732040771086587772700814541090802503742644847028545288904825931278449225973299556165693501346925198582312576993864138314860472025469588469666878669125843655620006299121026218428645879202014043154190650716954519159496939364821356693162234709689718829296579656392464912250923173851249414713963106150148647691048906389268923186835409935853257164581363164729330514368708808746738402440420001118180471377272536873072074503325956806351710465138165592324634554124838239541812651298367352889292430431517101297926040129499346321754136217504979541512426178624829910941508421807090251068238006641906188967000275899062697315424856815085710837061514576261942534468861371879710579769717492200447952150221612411660879463250758020965166291238638631728244633296598874460503129703041969931873584695581586832228372474650903194609615485420686483182835130932118037830186589163856415455584399316605444187102851232342085157242310287752324444837091173712616477797241473906415144500872152763603524049426438348546590940875488975260696651264806579706111083026523518408600834613517985736303868504594721149954983914289771814985955445994542202181830803037752931873817249799528970104550067465687682122655939995573479439350315013617020305815822174401321843934361801299748156435779349354513661952562316463939545705840447470527963527508834071137130996269361276264036845709613974793511642285915197067400773007764039288472099847798069460199627161476883052111453680759529496273806735604192386745867210746171783290068349925678940066360274988172538327719517954207276030637799418621541768526449896672362502775138543395661993231973915324196121360873557571531262829371809656271914098728952807908522931680617920640676598352157312871231300663622198250235142241224025995436125017285763912808468619811327527243337800459209261412648845512711791768939925714529541506772577064349956194180748109085023995534779422132146391741263495230622678919355729232852786747657381197259909864185620128747921917428266151361478129325206109329128211079522349194723212571787678204525125495730006617982806283419394025305661188593202116344583818741472854164552241126488096180779056066808627319612154908607543246224773900680950622520103303126966602525120452083059770964034348932609934279641096610817884860402480712175838465325251722224211665321552814646536063614051947325244200937262483471565479295143699570085470660704434611012291499684140607743421463389678259599125689304843013700794115832128026643002438716166341346838496198921809878040125361065761692960873237676384076956254905374079491620380690201041177976285453164448949199281879291586374530450529875167438204637567153139743422488658929666985030733233920947115009414599474573103442220564651604915586844090309437276547040368120495779539021586851607826607509831833965225678991562794475068373696649429901262050472302202957783128618091657371313605391811865192693362677733563193500606964863357706527479900751300547422578145809924307454810296165955644862445582540778101411357438090993171110414402815005647638484026138798667056984646585721701389748697111586651209804559360699291236737186648611385990913705977350240992419582574813486959372656474885525483021904501899676120769322352948055004445651222985916618901649993085281310408874319560867498824857213738230664849390117848401772129558910202675363607090894655082848626579826487788957972149492032643911449889292596083209557949959912218647201588069594143838047572459008292789361186350677770907065896625866953331815270800133847992703178380957281412116084850198528111912146452582847389247339146891206017348133647014810441719808118582974409288912321720594226835815462108720637178183067455405163001708480793251580999040978424787364667792492943534880093217042418181063161147037263668030709996315818188629134261662114042868629014117131479461700778274736527605841722178112413668593858174558664165172325488523372519426135078719853570785075661129195252686981995834411370197657481151187345700302294701009501021242592476941457227427575826327938574859963890161813946422063026322384252830076673174977493391519110132945378943131538620085588791730785729229514176693514621453013526232139481797297422028664643733935395222043197001271829141193208827976568904786136652175927646697114749440851325898206711006104818858046411704999012676037574409825377342219598878967439840946014381193046350571444364163854136775219548146059685028901218354884344020677924343321942482613808360464162288107456261810594605174142891982356473794374347222133824109814473575928742308445428281590241495141213675751692641925741250591640442971943128161498632890566938435896812125861528879386597907941146637991395715071145236832180242475412639669029183245547183235533167863866359798113849976644603641368977030927375234883380149317720036629130501653131985487603868554649768334761891253492586019591152555533218574964383317179692611668730453814749849640699604016103560384050218753445618017891046544942254304997270365827680625864329309038859357114933181699956317996775958091906523352909826869571893611227564806016182879545045709477605140342034633122654389105740486800229195738867142122868009198968878864696692357313462504306539617182081519065914243853154100807787416351985603076727938213616820492440224600816872038868141495546379456758227211818441821683125282646397192663803986575122693311333242911557474146486927664374799874037371295050213641087023853812557851194189866578143821087356091224677829504225961476013501543503247225284775065002029841523770849936826427917921125292536155555555149968670200543338751324360066219330466437698634419870405662639467044184636953803606536980470635215604327723931244587251253370823106030844002029135294375545942113139672643304088885487193116075630283383341015455670513969883839635634399848603868904668973184932430677552647423798044027438017677688771466058231821113736338948507734177815208487094129200383059561266154706876611916505113112931210246649403068132828047158425679726843295905164894888331390731755422224099696768300256114956102455622593929313621626271895830356596022999194682251746168452164378073487722375498652919095707582975129943861546775903823575684593666277712809985317245354663329466379522252888617914688436832024791831973249102668574301934333647742942444037178765252809546333290120145941695758226148747995574004175178752791783994602821273852265441406526296371772153788531628962446539273827241599309212752362906568773399618348942691783571269927748060827027369833182354095231619024867943862512588747147098086703034751307727209383729887910942932398391947962145978434282248624844351766237479310450082944454737147996402407345254175425293343119894522531673666490267576867718016002196104255917153463444354181645228556168344281050100055030870625772591826209101407367950646819601761608783767185290742099943253523231374544505236103884467952276667635664309115088593737426281917670367400408300469508283213858453193380875275523260350518834949552589275996378624890102848549684939851191705326977149171838500132442070442319349458478055443341826870499836685796182342050161125170147160114914174295306230349007299599693444470088840439426704265725598410478167256216712173374105809776172912881760651053779724983825639116484530112956192963581368799293478149142447931979150651161082636672442554273182099342026255524430673431698348101410130086504401051259374214749274874332915562424740352944235063049356951689181835415214532117550207903815945107557271129660864429916700331662014762047974289935631591949282542304765563671816892760655598897571007376232888422555208084384798667056114197968875999824021281938715845144646981650650367954660947011929129777685447503677422967657532055709755628014271395402688649602680693702916879130779091069157276373598285064734754998531916216820762058087231794246729651359136077513296614943749413065403682038594416345918734512000787091876881783563101168017979560757143547840408193004817646067789282029854875106678937367157498585272801749228771720794468085305520553106099796500931765012766807503174512730772172865426370211768263388427967137967371337206959207907117468983367758684066412687321330795191894083086576638922018298492112557364115064705983253915503982603913106161981893540812108266089747681599410663577988416371783428098491862103611490163721771348572156649020579131752342747006574623407276628835017058849217040975311046589291359001524955380835172222404991157568292494897823490308980682445263919654494059463805986108873196015146740829924970030946135219969750912671418733339514993848868245981944195652989631783189609402883149401524461722426394406052732896594428920300765061797624958402553975868622564735799458210761560859259778156035076654693609223730028576535311826124120564752534523307318361625061168801713215552931598489950560842463872430868997306057572550173995224156968095100389716180253188083379063797838018621374594021220245004472687166528202640376172365570232624063688722693459011690885839675760199647363653219264007907820713861521628844943782614075594846146673631454330745966856517967101512675273940028182160444226356294595381844950774296800964990689048456864449536963358683167600572247952104186468338684496721064794624187238039799954379697399783484596885670543827193748392898032755643162061914318214271306949196917616446037315923470015635074163664373847301993345142095316442281887524466766482122431740964691522094329975072472402609167466446643980095073351048658166671625088576386865783962854800626572695439839357304407593807409089289972466718402060476843312191840944589487713833828640232257788974540391826053193197301118153599501762151166980692541008244396828949108378200828738739886040518798054171570171564862054034427773099478501565373070236589532330377948865402034541564234247410422418541056199530011490422688200371729141212667623944872836498639449304961238362211485963991112411564428384761681665051851968788211894356215600507973224944583592246579034685552628690200552541643417577969994580943896157086684929832803536850081458075892252746739794481461903979374332832360443499471054413959404059565675090067655275319364392026800478724772962606514551565149000299327465262081171232722221596522685484828862744855964886509508573050703383983029193496938794553356045582652313471064091018916781797308324892903340712937987591718042670623748420656533331660600270329158467383886627884378444137909082199733789062533278648874509852893262776585525040327962024080242224941386942504808784873388199812105973061715932606612002654119613230446795821581017595400398700473730688243200588902473024754393370150210719906631493872048336644133597772699207213677452817513863634538556855766667217850449758349937583328800853073912399230029122953578189641956837574836065434537531828177265830682213510078470420664991292181959507337649443168778295909852749025872237377419217800033668055569203448537129916592300094030318945750443914867819426356591288374690531939338759720118158296781832254577132593468842765335543082245981237542383179545203517548131914174275785190004324688520048853431697189006682028915401882761035993099472411052001051184571209774084076053694425850978301387499529262450111460752657686817924227116041772428564564308384772225948806737864418757317302903339572760168221657813520855639601537118445925919157296727657822697704932300030540621229786832420618633301713320266087118021404047550339482338204102415586934834670220678007554999767771285615548575796743593762010924118318581274919038065819368088124260658911382712372135903004380012285129255974278764222039974003533663515540834806805798284556360749435817831746455149789278935409488504169962049175048864088085118799270284712907745157513062678435480460221786595329454304368218684331600220924865398975416999510787203792397570057487638292219925793804466548696333671082299310602282118093596181425372921867191758940552553688782461018492021691613310111317659717912576523029768182765839454156836335550384248881176710749695557699210701953267253757032348931786960083498037066844581361704306039198233124537270198925213733445196620906195854108833498744680626291201493715320565311039463786956280276100223921141785593816950171679723193040586498297591698184699624126345834693778258613556681795295046251606298336358803522882161512391431286472371850562979493018390868790727805873565348244616638917112221849834180852398053503677238491860551054419377713999427156556564902909461657105949461876736972563706237982643763756791488309073322871494579629617883376070309752133632175205378488152715320197189912154867558453792013597877126573146835613214657099487415110849972093371059437673069614038049201989392333862201453152423158155212252291904466273500780937812697943757003754217024001932434080136253085126059229068689634340055138709454245921986998863556003307606432419883312973781706265346495508043042445319406749516366037630077339027486485405206922608758587148629628286857725024675723046406955254043941221223947733263475246922136645975959048084843047074302301788469873786956566681502668609504740930981433307565249908184444218524489849672016700761773275851902217886448884163077394907474531890752913057434653384116916245055224287131316042662854242003411630791718857272467802349775795456191570569728682617112545443659339095025494397088472193984755295143116920312336137097295903466815816713925778031103742849064677968510191777582536196482214075739306100912554319717873421390045696898122538522595696384520821624544525760173000421347226944520951627760584726505875052261026200838376359865048055807063535247187991990153188811789425826753563850232859027992533496023249332643559839699963211424203075790019307484288977310377329832459601863365678620281684720047375140827813984534164794639098306133902953649357124672240639906140967759962765924455706559394192207591299237194083729208561586676301600767701092089161599335990118154335210696437305282029920876240504677771073075939399051298285694914524978435390814302809287950706689641863456088066479214461493855827448889267180375641989543895707602118308368532063305175872082568618111370947242631463900916234316174786987463829718707568119964342804701375914779130656790883666330674641346828707247738771896491981005104488934606284753210956373947830819330585735581835540109637273802901177807509030587867880195207156792348159669446807633770115919634737155028315973835862495838420279756450997619752899328578988106312291510311952554132372013784767888806343457003759175148298347444778248740931609213207297241729992358399069548472051783764276975703148415332170744985171833049595055260664942701302519649027895267006686608308001569248803983300198143292339053539581078793444451224044495506303156484064975537967508655029145731308463714336886157820790957476664869235627104832170134837660846434744479273207818776451909475448933108510510152859798971340036622354974485693285052954295649865352487346039700397199876376486137587168345940169439660244650773991986140745308204555343699266317794772716496655430578075225591540001894676797887950568453197283288836590452640630000965551274463946685392007781623381634885276932689151608738599993308015880271919409963623960700520644287803462033906162442059948052654986689352005139964069396177796199461047251575625721200631604674178474937492449168692820757422027732705894831381965758361662453780881396350355034797347877314737469858448731007887030533475762076496470045017080188169157388090440557555642542597053933636580155010978650460461528331327665369154548728619506794129490963374115834140541021036589986724589615345479564987799855354986601188243624301283451524167450953284338099814969584389424933725295475355729387645475533383120307546400748636792939560990941015303461559370370224753753208664188236938597120091187855640590453544170846331467236845529325869884980586766236794522497486237206315243930303342837227344434968918031442659794916782466887110414814545041719416118765660118770234465815045783791569236174007035481335379586801443088289044321777986528720704784280963945746601615465288994348035593183319702678366073869472889219569479475492810300597196874970774149864645257831021488541295120448358368891172284723905700457462035278580312918919695510774174522642080338472825849519702952233646632746833164888735855846935488009949795084351183338060468617282129866113139393995114788882625736548715693263762904466907474967001529261143849062122814488027132467740202461133254417200174496308469414357797405278358708135401560714927132127875427204700092681104897412965218056829740248096149085193817931677296161797185290181047609985457489975440018387562455835682763724431721277081521110579823853250673467772151390408829184116892533192315094620279056961127862601286944338240973648610593401952881156364193610961000862402986626477502773480479425442414062310566542678980230494990665749996966004001454260467608617449027355118852773660138434084000222237852051924072035458909249482954270347128935418213665568423407179133263916904972153950592094238006209972225169288033163213706763467268746408305558910812743533819791888038267217808809064030764079205596873091665540418493641161311530667630229616350829272366035351221775627205811409791937487484694141261181404812362538907190328580202283090544753815923678570107191011591810106735215345057710057594957065667273176485631908677229773756343485109645855072074061213474742422106701143040850011642884865140915759173908803514668040498378599233023118940476059571428072674239118267822118381477951465745545660379113933503894782958824248385400508722533017062802573996942152934197735038304624261443947208135088392717190241817262888915960687518635421418250454470317660244132519155245073840264833718141740040936593225763130302596890319003253018100883827651482925436822919285427791461509911305406249742087850721670799855128641874067706319900081381751624901698195434972395590628907190144712557533760953684522604264248780420782268711450131947224316249658548302043943404574213076172100960456189171861554892019526034382386107190371552495999430462712604178765729043333904976130799164148191682886890309176846589192755847239702937944797921784422709935704526515843563153424702224237117551705434420344381726132836975595153457674792429358846590664667495516279415378984743948301419943529781711189265356661810153559971029772309345649684340896996595270832995625830300893119406244864226770379225004110643512920846436800076233141959067069356426457003563807895931367757244549704242662029532657655245811603948930339118308422967345667065776559228045147390825826721110819622144193737757458569470591954543374263061124538602519942104338043313704764687194017001575559027684156692622431863903653738663791755428478535949354866902147005564293074967040216117023954461561940171921218802845806890244856469522035741107767311270615964533554642060162070974498523013118005391826893469542576123579676616920917976455222480451504979269308724302837481371050260461211544932268778040852266221735299858664810179882386917560506030384185691635309099022576890615430177169855376060657842283760147796496495430202725011610583369595098012945740268215724630245511162639970629847191539267712360461910882510564024128088814154383933826473436359504302234601666142098436899054464152096491463007423123341308098683724205680471995819159199272976699472666599791566054170714144613475089197032699077558016463620555518799553007954536790314942002621616671618789465364091956729671234002710864792510657087497491138951643946175479681863580875410245101167013134809279826233491317659251602940450098954933367105063816898413880757579337613971624073770083389066603840832432859065473483808826821902392730620461342383149342557103883662665732146517788461704603319184239941932811887084616806539252913566930901585325721594155908508179373872582336645687961785960363494975008950072339505710016260481373438754788154646961596718262171504428515999255245261240800978275686373996002280944003980441498588536063872399923575836078487299249448956561788845480425282168512676557652247567566051482383768338778771798589576527088780104504963409786585024012893805604525771779898625494684090467535336146820213800422205157635334019432360652358267988003418884219122576845956492026190668551470933443553778640231421749686410426686517354145227603956331949915353772811581915217532365731745631818879454987380263973335414628177306746686262323857113775304275435391900324112895106180961697410887612749593150960117564975240680089838824425516460898085322725101305824699524869953210200266970818815736044933842724007142600836925098819488011615695107675272755438673555349005622597469113221488480568010834947286177252817109278353695521028027499095414085666514029851990157677240875351284254730734225739845163302804915377569548004476979488748813710630809377619944515390881634451480074883665226105262752530749007198513224332105929085406336296404659462238806677350085148518770881572303089340657024831589496341378776850099181925580164717649227871363174630204886313586225641638648932712178831157676599725841780284085639733264736700950052386541527535679344585481667253714463503472153220171154294242474440915915158695935781333372201279025911257588807537528829967402823323262463080985203269213561163148813441642490561258362760906764610365000630667096805563992597289972380707386477780564790894624108402694879465433391595363945587835336954638123584951375673489732565071271161406569216109609837996154652570833048564225548163542266199651568359787103440496259536895757555529095864612335445235909243345154040644621219682937262952664792803745214516852442080774478393792438719693793934682057800072263285469002765397797270563314815369106539101092320840135473462071813770991464097650505194928697685422718719043529826822779338824945191192363082109991437593686784109345114065743856208635732250764486236806221094679798621320977404461809913953095790898898229591329855760742588348563602637889344061570070579551259022975403805506387516469778733064814941478146240554208683014077764459200065585889212087820750740309185902860583737698220257586179789018180015642331856311552135248798275232513381252690218186647796791206923072971161369774477714890050122042452954993266283639972158229665914571109809113870155749233081411248877665362749294896798028962701318678288641832662099273875536863078990304437294804462951335013799149848571014373241396206341071205151104501310328597301978275888572007456636596653564458879403364618781203095804608508754178385911800809700098445098184438638898816359216355730891743779382389128397106062771999543265406732821718821991372721762079493972832350297865482828362425633945314147541488767632948339143861488023826357205258761495297584472861521061444717566337461714883712338031270504971732377924058709031333460261303761815768879878480759996089323589964441539122762775363658641096437542334140188278453577601549904648653362224185981946463654689484469501566369866599718228699454762884298783328159177697036779433052762239330039965885024915014096105054590339321429868123957006307522483205848710573807160611597415274861780047473705214511879707658918509539151846786945374902182104656244624069224825110151627550237721279933715552745669508411424095276794644985833817609969825827193179746050118491274239019331602414673984322871111326210844646492644820676905197257845808899616895085356647731869521941087899494451730250957194211328120447653826758143387893122556949495706587394955194855459971757144828089188388995065208260473148740593212351692843163086878053856822608258704180249058744566175191018892068350883856506989262893481812654487745293242174253386398511972148101669534101313173028971931152825326882222360955307140970133347601707077034959229291768690620128689854053255629374151739646151310477225814242202261344436207611799640801055265833083358376039049719363329012626798001761894385521184979112413803469109702589424230610543874778524520200801751561143405379513194587152608032863042748562021581933001977932996974796801852114169305480585453648495809233729109020003561301503193687081017239913531550706269894329702098815581928593061744337246431623263210144516787515329968283237844415529358882045980402563562552270581882950019969711195668225324810831483746490112935496103149649666336153703563567236062948626541181887723596160879263984976269813010775860262784174893717316302508630990360275643843368833763448177465382423669021590140790792064292756904188162487788904150662868811541970102087302595007272135966723432833150399356870619090268356952069602868785641662492386847845108898428311823593599329819226056957381384046116117831435398139072483865501764989258849837370980583182197351405418995051451165020889733940529090432970900695948449052354573651410505310628830831487724296097165024585608658893511726305950388979051933063880739259044280333860526073188901489645169635414596203097523353580405374462640655400911134312629489313576532778234877054916433123781531127746900694954284543678955450987917160959181823093083042472666906587311374071587434629267018302463010250715956326111652471036344774794660690241589346253389661093192374819420832331869534468739580957748681142900378356786670670272068506992461501239736832511417199224699313678364647053770389680489455162077419336790325071686579966594003822434823661224554253505042307371882346204152593966870762438088322186022902123149436329037467886834995560418156637319351506703536498316730159708589362280903121221278149034697301292105666203230884322142378916618745506752695729811313551247214213526460739874053636439177597958824281747149950254600300295913182966742099671558688478233058200285620406461642375135555862061426064594123509232556683037601206412690161877326899557899897941520727061847247600227152988763461197959679854579327528070963428415874479630363558745623576828888201966099703432660622636016321370033697549455244018562610365137797793353254534067578165993271733805643474844039379794590460703415615332579063490412477040635825332999440365649115199729755109610735433029188512339412351492065021605033079033012547477802325197577626680255703970317169494033124017743216168663197166916039981405863934063734332648673865456400016846589490144460345092381080319363035374000233611239483254987063896740752961865653675822767953268079763918677928062378860702074621474170596063923595425522892333497195189689526274443838358035555401430977320432364867021935026535669619158330204391065806221975882759884565655412270121947499749929323539048552298626923993390281238734933422137073363016449329512572382790580430548851078711911968173914882634548985697915735594905292598993750117035503734893275548196927026888218932091419687284158735976103659789179973116131865837178082710613442266026920170666872227679991120099004052805009839577573469409989224698635708556728507625873401977714850064158091257764376679685028554880627098745323066915220168144510163716932768450018885646896190544581108124143600673454608907407595719613449295030215967768044804448158485354405965376375229168319438799735303568123444474430948680816045785030466759707051796579169628927532627327923423374082883353129551915317660369313666283643593962240536198290761131063692367980840872619195415842285018481815689809551871380227901775557661975987462755879984451311328957261814822093561727881711879015551608740326683588444765523230133630825943460046427704370846716594474770704562034909094090520026150637230022423682931778322122494106229568117733249377169698588357431387980538295444342858112843482021516684107300451965790328240232471582744112464967329331298585191610488211351798375831937831808627330311752340743726916075321207389868669541958941208986340554979327782674670464858086384572196326433019656070778139843754316975668386422053496367506744100641854812820602895889975708557334642408719773405420352056813207242493972785553844833999794686315323041285662206344920989348252743282782306858687137261015344510572017273909137838538400700998080985266493315354594178761111490358605990303956981451428794416181857405305804559583369740209242906789164657061636583010788480258662429065283215760836603460299450643832002135763551774547189534867244120203407339383457408936562371452148400606500072404655187149641026524088485598111554550573247450916805917871471187274484113660167000179404606937872887709864946003404133954155712193965722607328209292812128789602821397077907704361891843078765822458771515581970788583161622504622438502013919142339060366535352514606470038539010492458630857127721217090881430140731769441903976749729949383983308321416618951093052776955091638104162216770539547826992223005760991586961698809154266162563829294827317751555549736417776574669183175789164885223001777581582163056303947427212739658440576687631690584451764079369799785633013332781734965992340372037656334153182584037554216999890061402099518603215617117878421429030302757526144342903540537170682850612440311418975014435842962653380146461810458048440235597105946058387518831843306227189307506445378399343894667947090513311946365225972629188315356531431335203294037823184667096584982586719258250309871726519566986904870251176220213867617479861447486967625781940749078052192475463884500628488565800696188773308352960737356216626776541151910867518840865574289300349772834275249589318707694000288601965350293608611411716703606068942234258778966941074529803860702659941518040687977336403148737423698086658380787069741995026413160390762406289409617980138143013215183799437862280697429176846137664805886383919800194301256478653981917482953200029250173754425811378012753748106650711429293413888745979767963389811692046734162166686097214067830403199744581698272852699352282831849682997121470991074777876104319774852450614000205229174443742290794112645241505753226328268646188147025006395457922701963802460582839896640470732068586210794051834192565078594677324595443882965787140489222070790349260987146099499621011281226078319638818154338145518088339168093125728420411487270837004305674309225193678251073306998285156783268530854585514823450386860855973987572256471165046062977946757390262821638339065788451134786943512483718732337810146826799591485362467480473434122508390155838305925488199444816808107947788643420320381662338637338222574931753506531463419339056073155937926211421705916727589050578971601298266546731812212685633436619960362746925561092778195402101129838661927289493720789303875654325640260908278601617999903749997126099572236690409557486499403855985424760289204693906337446074220117440174754611836791313539622536345090132466270340554295617732079212113878861025664781839519416781531772411655742595888011017870246005765590297498312171844850470235529924753998787660833460866278671911241116379034815355507796623520568197149684190233844241833821617426019658668165628063581366240695765969219832855679666737690776624044797605848972420844222549486222868021589235429669657878508627071261014936969326950520882517621461244970219175791765785273110361098174304884127332477407626277437290313515415398036492171200347950910138971017885854076694876561099958372185410207089996368227358103588860756835081659086040835399452268435176029437659538648986103817146018090554470178447678445018710335079371373721604821816115659202693357951611946880677470460318385606704996866469625533053924632016513376236837391754319558892447727063359020373336736524573543673317560587726617193764917377447628930296390226902264787297298234100747817698593609941682470542897297556369490965443255781413361175064771303460937245480380641861951170498081575171114381645234997933463742280583223891471658905438330091796687159401349238846686211373851234813402319244416782948673029499505165740139417122117890666193536172479132792561819234159025205172126814150681876794279967432608621414783570338934044873426965417774348475879737649627563824318118400889781194256702945367493036220028311761503842219757047271059754075901167335188774038010847599725436586340732111241785432357407293751584373322881305347432468515306088927070538494033131135418570919640863086700514363050861475234613298421047463909144962260174373703053394635610937422373674145602400387938201567798830151963989250818261224643369771249038368785492586397656714001004910330134659068089127241778913845092980817520685612568847907680827038472492857036260450832191826202990070836401329032626325473300173168752908651950233677612310630044643321332766006354836232975876152628445629926926095231555783802909070860636417469006778910716072373102290195822390776705696897320625006404868195939742415912110602229997713852682551139498426209029529023262141267314436923113727540782005184706506476573434966767449765031581084140710576443062188439269771787833783881303273116099439979059915411608518630784720092256886010482994980968526849145950284533055552630512554219774750432701276100358836191266639403275547340095814269443884036576787332681135816472368542263813377912734483377394813115463859528053934997097352462483633415719688959555771391206003996527812047628799365331815238028744295940625293493541090764571552214747572019762115760731359438416793547138896920467692551254940108195263655861587177733833926074422029940206570588138960512193394244258999531697467112599622155933139889052982371051321878727519574195356995929339871400144499747432163330082746198973191353405915463333242533190341948868409599203970712246283812230644141070770500970101646805032723602111873445023025332055386177044066920605552388807778302372689970113882963583990161880858120117254398515134987487257474341231181080018953310061146960135866374231526619771487819322540748115983042651813275864744609939021208216273835063009314774855185057883445843384786048853115556203514540511048121483563798914582244402263133199571472455807046520072444748210813356600874195796996234285483075107224479980549821163234687451605566779635489277487890419489491453058666473535511643052322660570055291976165430007522853152530462219244858612831908865529709398742928506718162608473096894547354005994725627129141908915473352706977823005906612337587226272648383737377890354229850251499255673883599360748765527648004460872295756418527615777132486616776118168709932363837262764830259050019652967331977815445398250529041115346953945226471557245013960245133890105985652180401349958624323356854230331105783189242476482512081654791375007908824527500588239805438369902926106567178523775661960386892464672303890441951910777252656411437385187750830443469855791468315684635846351901127659856013664978195352582199903082695789457947400714018230706904700392058795913046618077556395445223465478805789814907058805984887072397854475093417482531289076205877494348093968523079639435741890532388876791808986124852917820368749385627003222718056980277211637140583952552886322028256289756865201108926274492037235170190765883510685225400446488948124950931689400724446441422203644697148649486627853380908368122107834479393170353766548122192956118029544546478732635365201366614645045098111151898254991609871040540817426471638205338136066906251183248791288110382400116419872536090846786351168425160462616690698900081552236560163670460156582300474877959886213373227962405940005126889976082699138267989778189305986985126984433528385337262938809335511282580154437199498552658844328749927030599017739598395731218823706580758522024718556054045403782831738687102008279209441978049861426578408865496386014188765884656633297962674739148205093816877827966868661107356414394387021864325964778108039307180890187464160098173360106252695011649145330334331729334432743389985020524858560215054203281381239080603076716895025154873346021483709975621951001482102512530955944931399329356129732767017045226687103595693363198792411973717755550079745257366825088604909338608159058686866917445245509908499491883995543499749089748559832358258957557702114619129830688206292410134371128724000929129733240891479976456165936163811237874396484720321018795570393404656028328833170884274027612407695650464944843905283940849703158422600854823002570847430435214404660608152280237076339072455173176028822606628913763581550231432626434115569957716983989729688555883099793614198413284783356903172134735364814577359288851769419377790419464640850038673839764917799901601011492927894674270804369188071848629926113923442002549822475754583377707962911589473543424596833226141074175616146334656490956005981698569008326858401419215254448392960580315342080011679476206147554846236734635128791323131568034252736263561849358610643484953393009016537559147492064201369533212345073639104658702850600776729838238794127264811450905225612460161425742762684061734059406908059613489965267222106449324504415754032301633409477952969199309781359275528423645598882925946347549746546406710567358952886483184517566022716233637281638596881753686322388883799803040944419529883317559184543117261014632066382477768062902645711969415107166286469319539449956732819135790162414314441990426161292158097452787652806736858784585375198260193472754258246251453386468524956095224862488969032113366794540796842663721861817304449187932761288628999864680587059248042092068312818555751604469383140349409793562339611833629009985743135490285305984833166966862604130456834737257592264903603489048551723958368840578552637729329441251877502561171684688348414696358674162348996046975321279882050472816886789207763470775185581842859080864457321077128018654895024415794277203123470375020179165751298865228994289912181871268637004310049324833143369978858351361351663570841077547809726238119638002831439915714472878508643554972679014148799770418731767602263472569490837667036944467809450743779580437151120567025446395052519013557192181718008289583009209675524595270630729118058062648609062424145918803350735144562288533431777762158336464254969444924156569867254349228922305404381703642258447309104541191869496269850349594961528255408474112342583468984485017989873248491565047311059270019052933130209235369805027795240780063481991683545022400110336698542089518376951591707564959566163741568563177711171857137276175218985369091170731128955625478424133979954443135601449332364201722559200267916292661295683313277316050537418577003647375047374849230545461441121776800181137529531915213238415988227472088026446068070424460294948059989241648549127087596205078343151876663370002901413876662796142250023958422359652068034575387212836441969607442894048106057277664235428525764087248089504533550105748227900438528168703156914979378270859438356465728933442568823557695268439880703505988595619323186423154276484198328893467830667988982700087645286566555781927174999239540720638644290158197824648846212105556169100118346675169832865738320037856384781430466894671850081357718140596452106829477292282134817911032943809689107199332040552800288136735411397275023397134743027122891065386352298731652981202103303015174263826098179144864430285549744982123782503558597892134823921092140567730751731141532395057229898080314283380057000362704364776833151018206128601668928338403131765855643365795812261364039092154084002675717786051808733875808283630770495969154269504495638724389416947807454561057947819280219369648882101955765585475393062199547507802658199380571018126243911750830482586734734572643481181807395353828148805120297279219709000808301955639368863779767287471851052900487853036881877304497411647725862368316229503213770148564596105795158336411489790874909689959858277135025723202937087746909273884711517894746323393295852930812096374737639100266237902062491966678865957788631498420091741597901817202470592709005917811042101598427621191450534962762239746685760339074243212267453757045367054077685525297843250740704469062633662876694274005950619423563851088034306090657633409653455192649713880651826206936014239273756250472831363321705116975216945876017673475584958316404878979582505578938402278446825749789964636756212616470247623515912227708405484128531629522400290853958900178647618105068969065666172861453783531640245765659267123026109083209764295680402413336414392221685993321917118012615106708583008221925989471795156594840039375744486209387192917296243491473009155526237965601025301031844994336045910293556313430895142378081007607283835206724915890810314830506913364522564607326815283128967283225766668678023092068451155917488441439203640941478432961599241103757227545087925312886656750053498556830669163121106027746574548508519806412522362107350936940821076817889909184941251241207214325646203682851202888541890886283851281175121194377747668102115283186651439495998087651178677511811170480169009419828899184681524779964376797953405679113521721706350894404247347190406243453259114866940688707758577391195937902969670894275733767052020107047566523081322351624081702837309076934389860242701549134479279876517992200322662469067354729990939021977836927451896429809675893336723738963091475055754831757730967513499658337932710660775759377942379834226673200796852896179666151627496236958873310564987605081049575551645614563902136368845230149513463914483316747079838183227223659003735193806766245061298465685046535825053354958431458347539024076249138185229790068803292342318845089394996298119676869396574798091014633992817584556595159737646629052223273267702570209720006973147637010202027658991269173890409808734402150207535614515990109652732885601386735208616582604685085978232421886391208462878938070510255888210802017339215862544914030757015479776211019656466829764490895574440777105611004199121116252258709012438041033891277985537979245901448202340413481881578341988640943087408532483468709214171193281373364269722300670962898166353064726072905884955611279045658851162116565792828825964558876806459333775659111787963681409582955316741821620798295500647837950115438491854772153091931293228579875354231989424487598558792229514553257508960992175866771528543850722939408757941759504970970355037612394343031256193095571841541889842785321219800921632850836418152032048419899312831727526883568868293085772079856317420423096848943963819773420024677444345818512203142340086521391323125607747082917011946287842261321882183948968244014797398809739924990851921880748822253658207778981759182498843140562109638331988671125500589016105629833092327458663404828533820352749840068743709939137238746860383896124933746959898502773699903736451538699569060600466098446600601146002515280953505011438860583002899065384528478102817373800683387170397200081614426373191816749029369829617236327368980966054288879824662607827603405394675824315770794131893590335489182884874246042866888876398079781845447284097448283710774024257939035063673009148888538286575218367141139849674747245270520783472574925977222778834234061171663794306887238111099527878431783212777616235292439166916554812356592531701442081102086559868990799534341477246922741207906255774918666186702772599761958634186160993495972168137357254253234459345102321238416693291177932812369668355776589166140727782634492676613378475520746633520181920670031360894312906006319965265772090702038760300046576652871212331530000936055795616237494606081371895783586855717291581264538659501490676249266684891685361052965249043643216313816153774762452673253324642548708202028451922737651994509989959515702486433606276718111364004643806686213166813340972230704229261523455641885605452251161647248734535292006039847130654054002824465681686678404015499703915163464170444574981107924828632179425259525983596654918363409090799268648187862861385408880958237597562164266700096073312723428952948254545089640692413113094967985320073031894941273417750517315382213309767762531207992473093040322345602150218618137913273503806235122759915776763205642274255224620486643851734466819630598846655356033904208338100710763023457279387992891783357884279863046625774492846001905420359066131931385536592583436338347985288234077312488829705413183391346258145520891920454422164442435807591886690157602742876506776587566016223261065832837661334509708821930732659198615279630178143601379881403516659719361984654942989228184185890193489847145929190968812647106252033236193421621786039250562987781162693429350430216865679347217141302694907448779694142337896552856233271515247629226448682517967947172285681361497390690270551121523107187858937680191979533005430837912737363197186025000429470161908983089003829127983291531849885244610660642423940396084126577240288525955231015785445192934566938234124880988067542970595581721003987087255862158823604011794765882210337884316747698663863383736409056586128963578687141196532546315441493572310120009368766911384786287182743831138029784173845664616479161627995210197293696140780697610306113088252492326513671064845529476850763994996702725976118786449176448794098782791415399549129499618034540361043799947599327171822320514581381302507871937502016423521222554131053322042408110722233906200847324190614576408000939718909054922967404653559405915774236689825530166086436914741659666992892088409371209641561950556725995606936492578727525601920080945222308668990465378582690261932275814965933390311228375373175288195903795017862689194087171358808422068318099370820390050691808877290743883861206027750954924377409087280398593131813634616224755412520111844743214735140214723818310290976610967832896428339570220536009950485940983092504430149788892545801606797733768252211697617092086744178781572776058737370848875728000187019006585091855522457951773466403829759944559159454064715082131198231202782521901080713653193017376630561533355771221458713921218962214553080909597988506711581203226250152911866320564483967473966948644631612855589000664516116163159863547305774995289910991220893637130414128195271983587106924663315175739622394172591851409123842136031670973791578753125348518564593001542465254245308056937828635245760622941729758929076150588665859258838058673504204631214908923578333079420422699010879714515638243959201616257251886914873933813386377477494284936402712378691730315297951540659522284351134247807165366876871531256578750130702897552466172571144457410142154258674635139328412832531436749808334018562190985236619516075167909327890446776324029949016119596130501873624773700097835028612524300501600496466264827760198212984344458003951919844170882124302082461142705792782567282508741515351735052190179945495178742745448042819087152375885202710751000139675035163318898682251792923289239909193154880449871384710913974683708845732716373893865999613917125880792203084595137177086850439117731604699259454472586142830956741266483656639926375868338483069439716607467978499075536668362163290604847131510166481219572889031319564784367532621165131057371730349832031535031200988912151829096186321598758180855171613445923977633602336372258413462404104381938244373702455959376817829306633914785907276638363949321038452257880063271673490024500504436756185751849448782948956274340950420781540515613436120411407922973016816114579662634174105505020403943930626659480269937402448555169109927737112954350215877547298476860959029036638481275233639560729733371431696866476211329830464374391411555948258047319524187842435187235542610638260535090688026832615793909543372740192998274014902046516738869721465152047055162598185582938452616921843948724685935326790661892145870742993283857855310446744500749806338374767959374174529251502628276115397469602572566571667131727446530680847923626994742757862962850917613120354789541888259348583070619605201931477450555736184655504363247956187701018742157305563480696882295071330242710910134496638051278387700563717159783539443525054105419696578342338812606185921716473910206537642334823682976104313215833733691517038117331869528810780600208338043426646851847376387271397281646984813228626927237672439201696056973075529442330913088654552634079576222968785820296266632848367803917991750048021763522417257876780171860420930338649183732008831624460595908397549718876919033153162076166255033739285112556452870853606714780775709600949323196834142723473080876399053238368943926264874111254325121130992164705886966883164792798280222228853866795596064551750617623942605589181221520264198851233253214740961513785232505955639512836342204279337750700922452253273905710824929332613846704241376997648271853955389943258827517111973181720687388795791973590566165179397692621388290881649111747340799019191176511453911831016063033858535536994924901871350442470687178175661371395665404842627593649616536627257243985068908635745996690116439147589161741482897267326497092576761679362647581948540442123786076259809104287407629282396223102633270223516054746183909483045280915710907397352768339520137784377845832353949560423911582605547400381886938973672664634020198097724718497957532728125009099281673593780978014613075019005912061127672579337145630526127725401694158222395034430848210244876034492185854547219133058174089977915703869056258417308090406484075503962740082731380353978486465912144123296981084482743115387532457059786966592813512623000101648013991827472591086528476099235449211701985957160914794985335827300969915384739511891614001882725818218635348776250268719240979489975710298426321181461178109767682412508193977335565096784225248942951168534701687311059007688043230837861335337586355545371446465554516974767005015032886247361845372082149375077847215588816776814079286355279259895660073168334586764309820461341693582147272629633015307919595149442526652295463752840717670942190292960080851730662107869955699864344353020291897127924600935497301412360175810806403245592379197360640822707484619797502493412457094811223856606319047153349304571359595034735702323008574995108191319959150821328645184871977143415915690468136870831240376787841778200763587439952332235134658411671885901257089083077700192170752699695576568115468905730887764718603368164553322456617638850266206845561045748156696243119732770703254028196495081871262619156944442541653910496965740012690658144326817346123051102321839707195836053256788822452708686142637085820590775193132196253093069851491852833794693096111556210006942664695716799871450568077149370461695596626416802841368743114701767011693988627713433655215966066770772505921373487379226447274811043566340739220525468207276274595699233163372658009103169807053185728238870529744456312449522576460664363629902183182546971196275988736448518504860840563122963908475127875765988119338316989263733925986319137090671813057757049488304891001460383640434339199531126708672522383150286715852458071705897744613586528471784035477815392706880721580549048020913889126527143844942291957149450825749317716277114897207982622451182687402189877550980441219277776358830360968700062586795571089610366992412201113955290668570813719711559742175403256152659730090255980859610625823911779484011323878240553454645310450232391868879548106545458867373672589723916900336465660193133709143129291058983078350096859308311370188510030193013931610674821535382727989529783782645505802222623116949409597798868120467905376596481913849810223839920531322157934144596407168015642107326191046218268507696465023181721096566522572210463539303687919710040118537893895275639804147179008291819275096141177994069824809238905541750935053477891199479642910784135390547152867293433811025045438165429797656822963014391362300931077854950159488999976076996183969960998424104690216065896775211646371303336996431381714869599596190264512647730489632072109427519080919500910684727420170812660337773356183342110121159702029905140049165534299034693487883003640494357121021085451493039194190015311676945437455126109417870447181011563739996077999064481335170987196862767814441524578085024114764545359058796524446679794079664526734209271160638637342612607540903568897441304607016659062111373974857956285533956091108828587340788080319752567260912312908605866744952439098506701094853237194541049643067095517015925565735883422817052804085147476838161330354886234351524991455462758414690767782744078450605615502663190023822109624875336093656048562533273301387211381789169771831923766612308917148275001221272351198181086679786952313596646758126313583321939558811321731439229958957991824113976713878691321371840370168215046929705735947992822079001106783329528333251374181071923175257249788270118028289331023894776669634483717870615673443782697481253360316888483271574439869374192910153808215222239614244853805276282062967090671413547326540017195447879814288976566252785573546555678342590741291445356772631022054687156411958793835797677779560347446961311524578215131426780093160696961070475130833578982342971824179306501502780104881129385718190438602337772777395792079946834250513282764508279897525141193490441489444958946041707057726822326647802117557623751289142375399996005964194503927520676879644561601634566837738834029347804709608330137888845917880231882301888865421545341482107436043226454637885269942456246196421561503629130551089675564935049547879623979585206246644091069760443235838180719692724733633745348238673063849148058350828599968453479665021088320810643858570627612632876375470733780900481438476339638923390748433655642999260759284581421812800069616023627892376382740084700371121496782588726869851813100108113635215533232987329935826687869060289331348767684987645664176568505267037123322742170211823747551471901424301158734496505844525192019681769871155675495685490193581010495696349616420755262502685085606368154858129458824223560548636000007099562975649860681677551082303765996764779040191181698559282867354422548494256164682071858443393401046480404686034580505285839485332268664994372854086624798847638176826529757375414571364087984700965595323492127224000852271272449972657770141293105283628866132091654403198859924963934187285059457217831917133799418929849447266181199617511679537862481273449223646351997003400181952637416891331058572267952228048197684268113480773898494248643155906023729433924933077416664761659026754872738484841261549622272865438968258087484459073982244885199583979583410922671393913473322357590281053131103781226649504092194032511114937688449217369479238806429699404223839036654845874460784123095345645275745298531051441212575759662279252947495280626505584852024616046731969096486988274808863611971260116923035734362091529827701620236656004656806716864675924637937815829823517282862934109119172478175552663347089212817123954344477217913843950230848767011270853217823927448625046851949676594548240932406974034999884273878508035663590562277343435862592774961180238098074521412685642736052201367837604433235638401902378648254997145010402853130401851332374214192075204277640464530352846054984019887898844744610299457549528236374438925324092410866382619709474404405223799234337944361422264500546083836261488360638159867632186203628284259277285750728446861767718564329247071764010205468982302711693288082869017846844971377431932861723767783978709232108640643280905776508967861705748771930392542387950681894876759512500695032492105930441952463784202925325616353669831860416848759294219880615328095219753239792065743150920072863710736199250439034213595587511345185041725071199895858155922209894491281659773825832823924173256850315742258885099633782476997826422075105498527567502240688008888296829057875749213550037697618977210110699538019218150652236955914629382965039027554112058232588919991448311983078010356854538570410574416345140940953549365206962105591860399345859650285682998448282095141400141762139659700704813960723895363532864455584833487583328703769271041262336845881515696344984117793419638700844380631530881416217350251571506755249037717188173152455116845401894717810485894687772777097679265388536923381358208469686664254427796849277794987924277464453528433395432887981749971666292907712086570100549617489155479910699862177834455724306605049634796940278056447684856489630646194612745763206684063551779840063195888375484956458754504986034644292682788688842396538560842376772107491821102994616063416574292983077691529320674466381932045701040353817376863936185083025884826110592984550689848350612946183878839011391051348626911262002157765730858479072705783894538530150760728944589596066916219620279805731861521258037880302650608150555056652671642950402562660019494917468058924658221489673041214786331217039984045357543552707398751610420589398464740007599693750373882967484227884262021576649516122045380597983275411630824829974812442041006516878205628859158866862134764142754282974852613417789400347147147278542826031571392678174524071065498039140366334914145705784638894825250818561789690931406352368677352315121966037462843498092483296093638209548529584342639071120667199858154414515491442052302065372942943738427858555307419319896050749749892538629916282818313003331594114558813038217905676246827314791571499512993692163268443167180508362839639278641561280797487703217162099369622364875507662845235260254471115303336882046746221216140494020126997295829941323966804457118389358091378260339942904259926708162921388833549950486307558072116015567961545594739315055619972710560051707261432419284270394469292091448194279804358758133385250074909307953716548630326356212300880004783262743906912107335085317759521980932391669905911114324830939537265917199981010212510327601189226929642098560575360616461238955530301682723508100567749863275595168141684268376617094584180912575092491131897444874958330300786125352967891253686305052631806689765183250320168751650081413602224461233731831256964952729345264587163975980534800438568054405805398664647731690868162131294127037487761245835496323669734154060685742873771708105358521943721633116509155710693511719712097611988335308137331208033068929068748569252627846375041631043642777428792460948497412110428733906567370810656638442968268037464785197496066775979991456614510895657277211906329964800702909066928315922835261773050604215364271628367240337816054667394750712933370670860368419974868997983000750471213502807627662164834160896132462875818169616973243989853365980453722511487577749845045753460598752604365939989020999552574923321600244522748280451191995172384065562905026816443098486358839932210101283309826701989349350600963473783512359979320077121628387293725035457394145790312489905824321624113929666044257952398348936893205230650411801021019569850507796695212926921099085640127441773431008141585207246704691947920452063837712919556953965455473964604767355600487090127432443865157987595865554578255334278532949491831946652113749062766661249778221121847077842496948944823247497314264944853808002166279138908663015206436420770896823940729069171135045517113640280158003162420196523426366368637251174968037224458981200251088241123915147171771338935908641456224549225477175714217562436083989159499231906525559581447877748503097006426371381998104538611794285761112202410370058401846235748600321243216154486990752763183943691067565583897744619155749566038320884801168458597430693914055869680941514355056913448667303825217979671986324556000023081347051898490176688566594768095521606031761431249043229081754398962254786275114163109069617171261367029182003093649847030921361986991826454791622037751485168714093365149778689011230920480201653821541104489702083073659308425842868340385954595558622668098749872165960806576484464338448641522452551300870803265044344762761346741923349669459674598265569626684538855799040216524864962583137089178828097740220602569893624139430193910684208496148462806352080066357115649681664898349753605530325885237172114156291084249258653540521853090342825038305323399336584566271171000919351914807709180328592825470611560966018182328135377754206947711280945325628556501503325391333936814776068910828539714261102460158168320203919501319285127077605941359663226580184759131467246773448376272137295605592795588351303296075368443251553225101162322575226423019263026538327607589715895797041545822917497351073048680568129145224025144806345838257009612537390417229568410655191575353179879125787531621374871719751557050615989152754429048585082090371457655094867951934264490184883278526364337665975088895418111926497052469778809735312856169899074176046641748020118017528706773708166668762585821949774405914700928485502897553568801131329697169604608379605881045798080334079537453145021860367113385249289148260703920662722739968006069667768098494583216934026789874664098039145978367543224810370127751623308859421383588810844753544322642597692191186047980867118261023509048385718014739288524558241173284537986060591505333595796809832622817404504274340724694368247641372860916203986949527092336434661133388865098262539481162810652043442033390834669687645647384814896371902135636670369472350209089472205527803678665222792787357300840561837931017423583563309789091468941205653579241361959576132986450044874164188971109117748474999020828556879219831585710922112397355954406339017576861253201828665481002405936311686555352198702781234136608950280152459065995956127834553576545187119479846849219931111754568718799111762119890589978597154289559410651466354557378149254839052412808992080440331987251171629766568004870263826503663330895211793610342887796390629622102676284790142537514370385230629200221006388641732085524944175567339651413119096703964366448322523339311584757292725596131440548383715313671552647648658180010751916914137615594700097097891951330963083405648164578323798178474700349873195005395336605365108599511568793557855415520906151553501664398784811882817869874494015865160367193946755819192956689552439991209413833886853480577098017942508702505942777123162712610932732795750678486692341650447849599080476850831115903825548470337609688095698191667077470774930407771988048566765777909157393163041323371624229894236566004960673099068081027923373320042345758691580614021342311900575207320145975654286498729126861249089726715314260761571828792072886707988233381151937555521633549528529876953369975040261343331782964501725898184861347679290672577674430859227850983039231354910588701804351489818486566219194492305263671066698789783522481422834228674235237548663172294820050777267422974480112764188065328338490819343473029939121408195363528998540377779708342246308712390878471949377603004181503865904878718344027919174868520399181437590556071551021294044891975060407951311263289289606516474637954561383745283556516142345774838893248041405823106757727043944474070280536438971445976525850660117586800736087363865452738441003732777887083865196574252620704220628148345719622256207734849183790984823031700057216836605526315197416084149378374103221155801088546862340000170949828805965447956193791518356486748650828821518239912784975372308854640298443394155805648611623962300685540920376271567017558039847957397522845737102339407100400774423479477609892520593598963856360473659288896573261929724126123405950250936725015276143463254692805092385278237317006748332979646005781545651635123805527144874644899477416022229633280521404760716845771788364958915729397480658056279063681190495542324373729254958907044231577728961243576784685990236513961741175790899350790871212452393891586874966316744106915010155505606034758787089592154090088139266054282855745909740976358827201822664531572041931329615671194584075542537074266025286638820395334009276262321414062351356210566554486411007394767316109615761495219393971411801535877436088685100402350137346454365958993324925677578849293957159930491104111813293844031983357745094786330356104235203415690569781251109440734612851228144180886409397697712264069424666756405184887451761150795134694409815369999837471701434693189556936945756614865840206646824007033232084041091276565844462824084777334973038631428349092412971109450085424500480921713100265629499955067621630416530744410433502186496888889312352890165644560251074739072143132282957082400699630283831161519437675666512770121400585695746651932680849573075083370925253775521629905706318757319745967371247521234446558389103618194103957612066484657116234808685834936847240580940698391782430672117142365389606745228938915300345124120679749990581603212310154164681975409461508904220421705744414699961820441521864057019569592336346783916364213128053327277069998532148871034116618345093665693253983415688357779306564619240712139736205246032674427195150632040782985148726833451348116753536415242090037421883372808761129651949811014675186000698311427687329538892266465079594934712291698844152495876367798394448597086004955719794721824402459649677142530000503553811760989788989981929120864440108448991069370887963583704824962052496714102212040206415878656245401951755378231369613284894906488964565616504731385247763815518653807566125511940242670302819231904560021901179151259452629757139843341091714604715665814752521735321506668952553728998262613328960470925045473923057647915620284102185130114588748655673085790890679011283654502413705042352318712359283447246678901694446487002617620051921608275808363979943922970922383987125811085622639707795491509030459939590753036789393304626122581513706329620955083011506385134922319392171263641353224069521441129266028754473151141631194400653664000222324954444289736440500798300870873699321202408173438332914835112859851220745224523114862888645672475106858127529983533410446170429345781987441284215070792295420935688518717366362981044920107161447818008108552397008999848514637021411423950855369917151998774285356332804616470930321367953118123443380608890462886595236403915573515414401587063860811428889256680946322235558160669823133404262665437773863728010145784062836858554247480158653510302823532786201050287255872638668622109901141550945129594709124077071437201148389402738651951086604334184931359819121153926337768612710877199031616637622153338240326308090070709729495445250912941419461419477886653123185642502859347964857754944294634472654652195775596689178300243168458661957351154357183520805979597603483454437596278048297998703501657920131277479686085928142337539103904075649843066178663017834581439127074869397001025508139766740405741420726263181421682134416600407611187553519810409400108602046874107606889880577965108702559201188136084591956158745699714267456496814678992500195302021080448784803647515518926144239986101319103103687252135417443800613347104334158672978768321737797373677427649412887334079920553843250806501006428475952901012783931600141629975959182420015165033472705194741047027541834671040371735906514920760157569414107446844595076551629509548897544537310233476377441166537779906734595235905964275738620499696357484555777912388596966110974919296589771913469602557863337028040680494852648382925454868474596930036780370655697314590268743966209991126195387409451281526633400528116709605066477678225814511425505865068116455673202123217346317153218549016868702646453214359321311829497048995918836889427884560665188921296147818968079435649501161292816907644679645010590549158377743954846790999254604244811594141242106767837495687089174492163646635966741879786658579352966448303818635966348486652322638099413557325391984138748103815187592301208659729944724393333114588305875599075094028773997653380330489640292838745673558405311869967271742175158466239471913405912836853322576997845432313775482918585394798722638896522886218271380379456563905660914755037985730745815107212003443641936820606390298527187430071386281479901477446118589371194578533361756656166432655528758661592795005995083880253412932213408390333323688298005686929034950991937748218723424745332969634151755237405291435121719702579577983645112206030428010676457324576098297533334464196399916962774733521897214847401955670652935832589813414639979700372652369765108332737588450024601286650423257681394592511364326307934404461982017523715529612238184178993948147185368641711355236516178142226370119106954636012010348464676779765319509169492536525915601765340927180727714049491677952094578305598054204983852349711181424411506430331097232228641346270108704180261580199557914146925047843115728826962075422245326158970847808768460953938555842623391053361106957342006635851799683580493571649881051295807906725011844831501201171917054143567248460551418580256659528103344617417795319967062741590716037298101065979502010293992559115795611307919205387515019159895048628200386583502579474513709327553546527969020685082679145180538004155929949825372897472753990793373362166566507049139599978689529037766191533779934386945582670747573590877041396846259513050816903802376158422371116458249500238009849621858031388531393313114974823281815737757697281408729456187059800589159575445669896519039267419057749068806728858819868613599306045546321703137367126674548503752624026854717902956751425236625017120040518713222494304286104926221621034166568423958791121700684607875298266152614640364965685605650900272401877176753471415723852227699911655272461111756094446690455229937274049850668175640573507155779821223194968995476228402589409577299621204782407015223665016997567028447214291956916481200017786492854600986125860921129826123414818380078468700457046740441791884323169977939183010853631676608398516796863226189977401448547337437831738430406573068995092513466537965218093836085397017917359400726340038559508628530515061358668773539626346673928607918454248416021147042599341532945955599064433126442560394853689254418174518934886417600166883480493707830615077394501957416394050601889388555653111332109550965374313631521236487105682619536234743041709491206393292026895760969723750936379311449645489836792979675526112242611384721278756542679991355909789241851150904219524412280154100449282800522854160266621479680733347466109696024547271678135837937126568080761018373910100792912360784763278497386580995723893304359831550980876633516241632878089495080840968682140279860013692811276568999830109456731030015513152879976224172377546800860563394455865136476991577265632049899209749432428458285476437093449850245689479991220234714488748629680893057535812456468459026804747637832916453894622184946925418783248496733607812502991127821367118748703207969206095912706889974123336581183168289770575100204457681866166613314952606947842046567162488883059172765112834588533643031428462472863029683319749941123248119876473503652871344471597835210667450940731674061647093641167965077428080243320348326277858906423047909563810484000073008534471831851464211210403507944361727742589174001442517030430209478629142910157725095630691653242877237096343593373240226954758139139655638154118672469202932205662077354310192386712709197329493269141830435364166804630869545897223025711074518741582639125840347966380651025993837734752391126725476798887543384012693082676031888711074921369849592939416532008899099130731881457253941911242353158749976387980127972293128029344816821698301608433350433163503428745288162705502657113665980250616513731837403492987684017671768137131887506943098023972225023404417587486202876022433144474314355541204168140753052156850904065443770468211195746508469699792075678573412021165313457793514350831287134957188324605132347599177979618045029145045173440242680262975007341100451175429108903952616941404869663655569339556903984051760884449355782666628807106014258678604333950064277043146329125410827195237152355109338199439813106716898295460695650815714765582088264257300094224530940787925134739093417976461622080327993527951992875128968680565180487494291785468373087978067430898855241150070898672676838536225559793839711035172170829338827165554266789039732491150324702456329038078639233920819264101222093088555136905768859170045426510729789632643885456858884180607026704323338530050270762736992582276355094711344627727170488719525236825086518311503140774894662235078748130542914474515915674878041529452305279352072168502403187329951623683535848694039787810496728443739867413200049871204290375502463622533707708456236261387354359560479882733449975779055872218680902659944098908260959364972172421566885063417656999761832220139000622441875804091146740951859545450920266882440524161364983044393215908081828116003108673691456168419049629558623155079417615065886221433379215234344571289256180725115976011627449039265550747127493591948610519853444964621217657112440941113148512528607543801428897494963555557195489325724993850517562826538037971481914913281986747169602578980924055578334343779998674752405198441577812849669561982704878663254322220013629788518040387191883415641484761419815190682027445498199512349394574544666033957072725725828121695640939696252364153324854650761921303564330004491020695786690270423126981326828058471250264709610334965830759525237979421197640319732799239195660830319492428182084045173890852237432185767346562598629558525611340268122391813388171482010716534872297569178005144256819156590571262923152154582240859744923265577997934464906477680038602694082233559337277983793479703983723403178786496236730905790917907932790061590495943299837598939806676809602017507459447168333873314254342189897724964226560471116192432260805310542118505291329130246465269618844597734732434313710521547091482693337538816059614007404896415346852264011800744036301482816488739590468125994253278904287796118306211925176608866565154455676988021444316529947715461134618381254435222815559994978800821369678349071749532660288621676234967077292920382762304550548200536918991531144506416407476519458557028556995494262478934494784397538871730729140152788123610394560617740055390337161898624377743778048116338317554379804760794888713967935209124440710674339854501689133555480416437498285432485573054187412305304347460078553296228717564853143510868389496147904536167921977226396991557782028062623062730413648145909901891644047881250527906431569476825359977867240908885821738832261383803093230942018595786556716126983256033936421449949697039523244239683819194659204089185565743327595732835494198065784900489093235868016444571568491028777285470026796146150994787773644997531157658994591786554277102110336540302093491762323081990936980582043741090859876155171112475270879401654529392637260227682480837546181386710502545338619084757082068264770981460190984596143086838111119451166615783821157453214755877248342970254067145415807011889686051380712744630923039788036948946211182663584377561095200392249880033952250533447172683216632739510223786032424289156202566418103376924950128479077123013494867848062744610092251813909615096403964941374891094111889151501043987896471086186939509337716277463644909128830369558825579198277560285775831912227542106881692547846472558722881272465427158033768988806670476215931399258564280513193931053624418322238166668930318060903650123733472132005674854789222125324514647624540692501738954907318017943803773270140792548012978011669906970328807902228753525812847100693200020864102102813046351271473329116054763883505472353251857047868131080062717242657876897658627500021119110146214448579323716882306346026362639184239468192288239501747957169823761896228350333994027713914379355082178047924225010320237643210042654744385353358701274171630794856221647988860687456764907195130002080229615090241984594682486470787445253895162188657136683101525456742087867159221378855726533701418146432610351971794897451106961849115627387702546638417951388956375451067445980749060195602878989887628520235219500257290359670845083598335099440539892024478422474278626389334550942532963890342739819555787409793541475529350613693000190961068345775274263632004401445352732327101236785848684898547933870040705720116016635516463170890231226009578518698290274754833960703980469864372800634573458443542325584871049617438334882593064219314341100851268224012057773740582738489988882279970526239735468772178812638347042826793744916775712215295142906599447660631151314704581773067871942193798373777344852677970564909850083500576775219237412218989840089077353487219683258226450983601493613189124562377105926207963236100512384303221107876369102362351498332378601493390951465351741621653812764365481301263698180125863221592677000173291999494395166064873836286069547346737976076323118327150813994353384905201075979062586815604558253131147897091716103556854576973957225405813067461034257272836133965033963402150762484446931241595366881999593011668355886227429641040890264217571578324945804776118471762151156059422341212448001095455985710464204327808647189104221802635975649380786170315550884276507268749346385714086784400797582997380866786998388794519549506758511977293794891798401473441593237636499459089719292034181911876534855317637111284006817401981542305826803402446938844292089312402398704563713155416580164503334585776324331925570968128169826455788811311120576895723198333108356166597540343378924122957341236326851852348754767303141608994982210877464093773784962189681375631100685491154094330041459431387727770427798724882773552971564716567758536746608018862325555862820771719167517460448405234791150202454239436362018295966836562340610884934411713511651662181561885798715663875304800307114621646610427164486801373812491462176466704575905440931215388616074572622011403035061195948808065207734134620542695741533379023725394939904905995214065294422722070607898901559195846957955390461509234406042897655168076843902379972814053921957214703171312476774672057925243176146251642040116430079500544317672165867224756076716915144763035126797168626660286099174626646544332854936943927421555856771863193538004430212899388714990846475139515945882456610320297703273942275281502731860489492327424574266351366780403329971648245445682872209564503487723896004289704061336347381751510723719489901515613049580541859294404872177223039927732305354500660928243520918299845478741552304798439601760315883148769948437788321904428254004717820369641206394107637620714058133731741736065957286882003147566386959023948215688306406756100931713134882409341142505683947390469669665666046898924263461130288050482314733376510916141512544624132080201807824737794149498405554233492009388523864056834192546565429840443920939596304624380671787784148736033061241266213254155175640762065455680220204532443520550826826868321031243760270428991609769796135477603825586359805351507184973103541664710993443487700529660861787515333201663330973680531496479870204701777344725038669095466911465574928703684634763182210211628436193312827459024452670095396506438619840314631109778757817582317404539726646384225148004156997745805654265667420842386428372081346047970805791275885579978588289001183500609827609056686736754548328562433640877691783992396604294243650951674374214477652389624173267446107320414315040088651500599884004017844267808629789854434693221424106887701116752538697313230244747924658815046272644766856456684588095966710111693910662802578196580084289999426097195024232527542211476595100918715488371769633579679489383959599739782148977984016900195544171051369844395784586583211754333598945696853774713052241892786802719055739712932806470111338229155492005770396164804643814475109504863330784393719495772864726890805753377973998100107874208787279297104268068159340084678060991051119251824608981374505357209462750494223820100060420888910590214772609179651147571665119910715489481554445268927855928464484831186655161788463676717186486343432749455902806552711152241334991516813931934135790405629946161677220808352007335128735250564114400246243953049231850927468551865611472710678707718034328332623839723712557697424308871469509355355653672305285236966991823623774265185662807785381675429663237133404448362079749504983042351132260745030723192529250034739690245053108473546885740825850240873291069756757848185360450986091922471901853408233685693087319743347331768869130222572743038778069839380388988558068220441685123912523169180130913151972428945508217223425500545477744612246414386589067739972499275593329015153558617838912940122664837028554243354325710231063318596041023803558916972399489695051236638085667180240666875928186732812712818812936931375704217060111064984679226379535501512103567343571362514908543651231910624426986166896112596465056791106147103064077996596612066203275863750964783895798366698929196994441046961514191210973672841628104372883971370431032973971635704564329936402459574452463975713199046835419789129885847162470670518564465963096669727800121158925836645173853794208156242380913116460983570029356890450882033389899467166705107691921035826341448590352565123141605032712876238322267725322318554220228875899824734893518412782692085399530157496667660227463980723781187919042168849497518275017947907167915868917707451629402782445646545060191227045724330233056578108153123624496996477310395984089121579597860521798005350992631810960550365852539776931252101260562739494844561709658830713994080949380118425126244862689269694347589475704601982793610150811879609907694457108868935341435280537151708879425866060128127927332778244266522166428531292199482501520239726213335673743135216820638526925106458655149289066129804515627782969270439246332308878877408826845683246465277430106825752348807157395063648816738615868300691481851351879038712150428638451375598238657161804711670382793361844258069962340851213095830227434285784712326210591600995305538046015375147950837219539520875054602279151634212332227308661678160815197060800022083679512304114556342103897901273227276842215801673966516642726571302918852596162581217104573367303518108944825521782666741879559103059395483385780697842180662786439291836403053469483121164429458664389419253105506439268098879252615120349168306064285124005499060325673912465113476761519007287885539575575130625684994856447117077056745566388785648794018536802383005366360242044877363941721193329813475091444700380858426770260012351758328853712227359597941189238824902722267170344428827680337671703648045008121246916758872603082709316364437475043417640702418865644303780365736723537634505715929023628713732067918144414210531144229720560342305016849821037892982085878957536915809218452830765196078600975121487150087933335882014831701957757519345516008332980523855769388071170560554993351616236705877818265353198747751743482847209823554194554361197978327242241990503387569016068723652279981808395687431182452403353649307206315758864508215558764375437454036154859145184764611910916172667733179545120607915774892260064342022635586059259164855877013263531860145388838207377469122275197239389880911654850786400384772342461504019168620737411057411687338105015300427862168061535626823767301250359923370513324471534283088765294536612652486113281525209866444374066806546364911481938995031338047285634502393041762516274629771519352030451721180887143606064487909695951743006210622771774411978535001875640595378730990774230203678413688661309573630153421549124271255566544398038644294212405181518405686627604684608788894903302418675102711879206954277898667191379281835645679712336332790051177359592880404388709623613324989573207209037856526870524182549268819774223920180608458476253022919380282962395269660853029520433310782297678887069767201020820296588924561271165050812838988509206930678484978739015269613547520276302047127551817435094707144286341222717223117062313089726549606240166103641041555301343168200109618943629421503984228994871143033944952843220195671318776605775969603451049447971270207067369320212433717141866402109729435798587645011816672684513772341124896710460043877082234818554779721901633781750665816982876096119070439226851826359911494813575355760726314196486414402607066963321829175617803204343801666615312129857519616883804431528371498027093525991134500381074529290430721403674318901458917544698454867461251480372859761084460031288153920715101732282183856228050140649695505112310473102243709763753775071130700174903242889082361228469419443596619777655371089615034537827169716096778046627988512066825455738522061289512173988708819866141900198674238082522283511274201620240245801403400694585972641435563654715612871448728181745627635618947685518333291671219563080067789962958963328379392958585199206189195057395389004466323867913802358870042598622598901128016538536469388946789769702062390566353328855754575208220462038274783132808763751618470373645564087870011478332029190927866369423172219871685663437641808119616998169239415551785725527748228006207567234931462926971629767129785069620123265744480495229365015056855793078700193095874354513775273965341693663157359416600553070033987008782071609647405961309850804373693789279662205051076414565726042583677020813192396545472982850396040096193609793382843187061820041033527316821290879528106500625577013711886741758885380007901736420007111598136776232285060762081012272778523490959861373644210976446973782661817173077276194976476306519018901457648666008956962932659487779334024652244044456925037759579973458924546289876940144898957584633381523097163105025443792756370713134350725223810537001252222481731526380477548503991205947309175768124603939162059415684277574804942624053018513506877833513540764436384162664381249219736781172135129736261622081368144343416514265447302764881887891938741405580297008494556467708075331639222323742695114551456746201698393066876444510467503520605216501631420118439020883867158327786445649387324733550062915178829207598111391533294477391915877106846900077231448583878705039452296814820006129805227103042499091989060301476408445608313567798892424786714820628590786430576759264568355331275321713167357955810921569960901870690660342402727197546940385151136453010521825293274634749522535510700822278686932842349886427394169647441048179176813451540128282371344738687024300827674160200940514694102916098546532506648289610587253059767209144404865185434988792818061556177467379867850791337737743352494300055800727436058666010744055714935555028661213368083746562958868729995869678784117068341563931362777722987176246064582046681808137256522498104569382181527146047673943671576942373792079721577662043264558073438328539349184854881677276942634013701018773110651663542479888280437593682506810626048614219660228934421912264029906924172804746958159769613378059040323998606861682995314458421522407598903569556491131749572805255755921445435058475719304341459587432860312564945415210425784981348795304676498208513804311960735602080997590893989494895900679255030849628005083939372118444283923328044055464066965669340772879181200983273144584174956816849371517521376444751971295493672855113957454267130583067399677959402310612552773530189475406884190328819182055549844698575249287937311704907031272300911270335910143522469266873174826269034258476032711160976687583522215666983775927589934718975795817220053383279002761488854021815347441088494880239362085024527458714381702420272600395974089152486666465284751187408437688813644190421546160246993511451472479366082036880850088824964809897136992764989030672203318499356711288223535617857029560777621812155010910875383099440051784237635377308856544362099944033553090613767956973442497740547128269825514247237201411960296393598143300920262980550543625085525122463553556695008658583254463024181400629179013617945339561591381444663278334775728815379220407261394096463212265988174452796233839669667686544985790975791238553905338399363944060336744250556055080942651481774992860622887583869241039999126840787675553785031437601743896180659060765208556216249239841921097485440716816492632365711361137648256050623962149940272702120158480518744662031086045629434984972654818223696537652191442721697847972930646718004252719002993612813938553146618523323410388770697590597985575223746745847107254103162321670135425918576355558473078826663676954909616588777586401909617256252120200646437000378978231690632874200852853998845637942412173143180786372758150924099106278960121786617572117022552820141225953016245889508517855750978492670600214856565492329644603215505178869949777300754865394477540054211861223961902595335703629889958666023781776275731097256431353469167919227865013427054522631379596239313060735382570909453434066132198932794092172594047187773416727095959681569379015482397643445864110659253511876653815520545564559348597743734536805882185361358848496334391951245572983515753390272899258144663942155038891844412420155019449204772479340557814437569895837568670646696312693479086811975513754342423329464589929494503780309103041481432527871839371265909327840162524119721029343106648254935033935054797696165341993118543172576025334229097070311116999221730217063620326929782386789814961379516771828418122852522017910009315034231876010238798586675281282973736735463598979453652134380285325374261921395644952538133277460913051858224202225937528393764274456232867579612257306596608687688766761549486375791600743287707419282557012810274691302821010218371710255046951500145186455537005556839665022791670735737518299564656388919571036292361657418799164231325801403517908515822972251518987239950731391020380648602585404626061047253954213853650469074540663711343710018257983472695906354248119702130148234386146516796552961390422355457600815793094320366062010556066952205788374380347934866692471043178672309275769046892879423221007310561915969321717637887389757719042031030087158943967408475893231252032838117154263092816787325008636597678770335069372041564537525021502054511632572506817949141536684392136024193443670503060853385655650304592253832660549602321194254584834169824621566706642984532670313073369457217592655636200016644378665700298421644667354592905933208605929935938191474239380534106894005403595479031959293487769859875452413524028431012716370688197884590458856990684208711163370356402199278115236356892773390629950877919983558643373649187995607920518939433230804478521422129166842890528610496049434536551849933851128669766031679003783124975174134640314335555302707572582876143193837788616848790531494850930279359154514165536280207557763628048813907940525147032778952305194869870649788733330785360502907997019760312398006341040336639922568795091052266279268562166616888871682244568199152993737796543992842887147928305137030135769486893540739513506911231628608735292943059127837689069086509633242191387997471147554958617876957506406106701340614285750523549600083140026472428118966085124153125124195019126169737523050935456998642433179084787722606977071334255526219827902158763900190742954376289328481429126307847471009099116138803762761360746119228171608824272285354575023689314540659534900839497325018938096325316236720157394113532701202858134361047756425815065147150567651979588678405035819057959598223717099691017313563616073827928220205795016208529465309593494109545839590448172761715884417789197914423421514372470306846635362396152965254444740940218471691081227798707040274156576963553595349863138140226776871381341603969809330327462219562176176243850040270284122252500514683128133516324487142239648043557556127369221635145898784891110254420904248616234337993237590211410058076929299158829172245734056571965081859165013428569899141964422499447046661823719191434393897836705952753358905149480815993596941369939903017899680577016208239235483297673497281693898496015192178483399503775060742122445037163459433791759740993962469319543348033031078378370281629058841075389870678956476141099552277638454896464131171410934135341514515672211064097373535971252558132830253854938029238292059813788987905610439527196992964318292217239269366860998821632997501990211044056983670338949850843498676365086553148234713299234578651657745134938368331089744090027653871183229870792863963266111438352162134424252872095831322632579912279213658769330549761207759122220960577461512691321650830099591312825281424829107704053371217049245046560380963517413011439338422185555114080028587031423939478322530042585544538033659443402797570501688429162002493148898523572322902224204386725022780896170920529270869936300573560392210314465276442231547651583356179242652807093390917827899800775404122930167831736111608790096199901509055367387705064565572954988299775037258231245511845818982212954823458281923711125401448241964270250761749656587773500463514002608515350786327618088125697096527658982226887168845069270240946171598229418041472881158781788289255358751310412464583722387994523179626390414743813960234004264305915989238608840853204749219865152739721910871359456685651082772919331134938819803285335373501893386332003506848223744640154340376058881098732467898542667815412601646004614263397213516446542475838447883212463900557638587687481274592957193859980191622248322075953993082530985979544021118461306797036191197966350160016797539359838219819791116455312115269156831030966049859336200337166867114735981322227688348507018379901539475116012325718821456536368442358787446540858898143646045797908551818893730240272038801073177558373765650007999646410781359315327847383638688585576926820263799286144933795275192753711898926597397300491981945760218299021287152534180985536229720516789682839583661680321679230274196663497653482534214203595728872716908710402591624954553977811086498113082217141896309559286968190759898647246955744952797529743094648594178637488946196217343341480645984357754424495756632665061003783086844267875658009113124477090326854351201239613837086579206844385527830264748860192232707150176842953720831463398202480218998846144440593321978773722178159416235384964031376756713532194518668914510087536916304109306645187240559867662974161556814434739158470426833744878129244177895699086089231418963980897359925591557970273962008389443309780261220401734197002202308334481992593299822743329246358953725614748903599541560351807783115060049360254125960083859261180934984797882670279586414136829238097773690475711157962244893271540882951633100375951842491521811565616118110770915739365754750721372757802740644353504559190225458078414720190297176104906971582244951260084719119443661017410691386349634389272760642136023485305538054279186277740680138662415214614016735490055073035136954127836805151328395081718100582326777238180428832810347620916643092947075059311377611793151814726722076453877048441169934680503312206765637343259524003536535737983686587153820324238559520011400052446691900974850214687009163494691802903279238506192641133202044400515513240925183713208181689230274628942247498147770851301898241407423290430376010490764637146535791340804949492870129823772649298579371346935137350259755861933013095100212097749410751220249931661060133995284118065612782447850028622726164257470016604934214938178205819816363816484325745499887954312624447933524084307002603539203715954774114498609998930709566674636252006251094716786159267898202815138186209151743033810634279670696816599111010920547222462374963839807119460053380967300027402697495255891550860478606363437726841375299269987348178333082521167144098182442358756091660104528280528821388367756904491901417240910854548167930200425601507140029386463441792487039952211906516554231761597085356600760657544563979781818071109866205210531270685973666343347663023345605699457134206729323439151615552143160493158176953996518293373347342732605705462164172719255547499192188284810112142940980400449831421503205265070686493641104094611562173337993326413317037580789235654076969218922912687888630647742200345142222455516220338778364493561533609844175606299346205788054896567237052916318398680396987552959788505400861156767158805133213135233361069944254104381681194694656590250126358774798350990935796682760200343283613983766450327789180187671375959894261718550430026956557320145157256599275314846415458192479771163194510640174585886233641464081451413084416095015555503388661091041188101188640838020339360199753348727855112414451800079527954788726593750513161904539243293759117019976816135717063830400926602888841365722387141935309333051179007231708329093942127101969584911049073948579752516310521009756592282043532262383718801179712133787009821537514486522374172882212377896344188925147806927828964819768235128587033782027572643192091248879281500797515732920972205045010967482353672367596515706108721441393226161026463721693819922588233417965931225182140754448078804005854514210044235878566281095092719606899824053919168956232705273309542617645448157506340702545696290560588236289093649331665493044265448065958252070098429631764983650748732668956172470864771784168710845007060098792287804003581777385698700967545574209243479254202196315948933428510837583623839199214333420832426971873111187233702089689477674984612660217990843894856790409479753162287889499650445609888409607509618722348925454666479087351962913188912263708032224899674322905211812895807108319121376170466894984294696250601515309080739202541813027021344750835901820613801550207354647723667900518212135916511618671798864746998097754512825880332263935007851333956733138722953935468390462384113509693210360193366989906169114035264242314064126955673188005606021468532650954235443448560072900630833515185297835613073223240012144752619403294967700153489610987914414075878159991052337821381930489961406221749283846369942823734100419594371049370587783515365823300330256776240815137226211620876680923969119701611428664389232576950970316925730907625400859426316594235716655910716065140103512953336662875930456923567673694190099754632571683647740989264174228852447218339181346514363470749515042928021091733503394427688922678500078152766217517626609599477236319011608666725563492867869935109833405785261895577492636824197472113227039333793884343287642792433264598956873033193897920150917734119344782554316622768671916196824433725991499876653408370511161544448472461352718197764429650938932955945267928701834433236549159458579254344768497329237638933790529889122945235903314742642531645898420335323264702943552764311566993774063720431733246303137535992650984573258320798914899679505464506685956410648186977417208894742642003937263023727816919421619338946695331981456796918066226661363941186372363339156271318505647465331405667458941633203866609611631216950764533186026324025871572155778538927733274981134087069828577299530160606935394913057290121911193692014459321721385321635629236595023839250041186381165510895868793328536219033646229282978420768132885657768477024578106515795439727888540637354679485474984523142733774475663817643567607507263956840560094851223737239117619213871418577031311455000931875662266623988170911206393348428910153629603759246468857810918855657416572488224025372476537214495924483331022867502584916284621019634652728626203072547007642233856030367470622461323796339025528384447872350160980429224062996027120763420979256312695548155652720216623091384843985269705308770279400586774561817721806733387117276979083717259351668546112730321139593981760863080719667764269747647827114169789044157542367060271792385427202325462341531097987794881528366341761363997049687891289780885311096242408429742681739781765207433957314984507595563278644001658200430778447344276952864486482604999916079354705849442242017142517155671348314557439056710896324602430129353882491518560777205713106952478565239372759927478348691580870032618358939747647783558141968084361555893544800181943376871265449999092494784686671285701886661750233492652524103700274046599906688367612532938112180092988456685005652318084418836542190659852161366938099157630689595676912455660668102414019971994917215854967616455466247743864607568935916378669979762612885774407009358102775326103008340822749152297849591529769845308219807472616170703758388324937870854033472251484600341850253906555794438941412850450556926793074430925725556374915459332440799461970400467548444157765867764379237987375922723220510508654654600736235629795473043118624076543752165705664933869609107425974271871148073601093728921206041517003405837692241276058105569828246243715988863956300480618018059631746407716493017606162462967805661036959220372383433181038584292016143951426162938108366607109212364428397219894561390750687585370019098244548231868841273335704438362611188845437985596527695417878452688995928224291040662560026995109594871806645835407186720600414393002349490811202877454013206185400298240786118580802390475158499502023281556166693133062554311758312218360024648667182961454462281562971365360045968317081450292792435434703206413407859791055829040250531466452045165988870588394370006611297907704965300132904985449557005491112414266769935460515952550778146655673664004347171372355131625301466366596839852034929222288061569705130823392922466245334625818131085633938640508614996840354142388819845067113147774350693978602278241118373789137407749244213081824956431110611281317652326890269151391255252834675877930457094039008103402194804471672082076655076608421538960929171717439993749657684627178126564060321771763692556572140070256500156517195735806218559009959838149471549033796064284834773654931653606873275613680750284113265042482177865190840291836989549889209292657378078263746211304777819354775089633355747937492640297030207843039521513830921085425591306000158760591651167441865593997598438347018494306204276404989670390800873514253019886513126094584391022513031563788707437978726208238215503086159468329027756600635867714947915138238740945343607520631379955286560612273076218798084636623291439870235986273056957817727926763436253054826077006515549507981596499013157242846935468455622061675095695526204392958412934082479305304677377652782559916076533425079001784868894420460411140672916286806088524041416342022336485584403141364486653391884566182967079406931146481546883946369608665849471522245465273929326665027125691136534363545889830326219042474715037158841915816276373756180575723551347584611187232387104264424593296704407762982180500892103083065838618105900230543933120860394218720169178220390945535040018393082866883217639735746552398683676502377084409965454652122073725444906577986109743163489344402330944327174519893183759313611012374811779680545922621520030572443914833585141645739897929281116182072366671415811848621418244363569757114752249904747261108393225058778504335308915979800212561773532065846917062723459338814699156274425966263025663683112705490516636363148454447406938874949451890859636697472933669025587341326972023320030413369358932922084489486112812515451380749517920751958195205184367631360161853613719356290400211034154116176894399629025693333732090082563685729854317337309533680891971033635133455192184061191919973607051397253575573235605689686276452861926441652461249172261632346639750508997439569628163036455137590342467325363032500971854165360813099843792252441417166916812130100585574651454998071309723228947134950304801457687666466970868099431134805558870915864043658929447571846054222104307767604238970629755897247369379952347302143442726498322310542308968170963056681537354585460958131308798687606070520890963936262608959783761890025365579596501389910593116646145948898276100134914046715784284951248104061082077401082883306931341265283496208561367957401890990213102740800562761668132112038862911407776505877882176829966829443015802810463653323219267248825146406705886179753388720227805163854731820536340135898313551879236016137275591362602062434424633539637730739487460530768580786169855287425441510039635840236880020664686379598625940255237154479804375704239814061144666714085499217748624232918026607602594836903336228611144102029481901932181581635188595738377045329097276466396691469870821800075061523152814997801882906449171606487130502921029545811595545176718166823898823270813567542569422716576849594757896793210095988933899939331802629921985636680376089257133659575192920829578558030754349021835314863109226481657267344277061030685491975815341009982800680238092639810321624536889822449471464018199597042299611103659446122257050358645171223499690953158430435850552753567572034127048535996607613876727125313276245872607762645417370013359218353954940771718413346491865303587220197278166697663423756661485369166657900514315936496589998964816366216448668633840445086846018608069443898581078622914594604097663571741498569904486996512898874302109630397740931199161380807123893614772085792839444535897317556225724951580243067246786014851803546971056101577204200087433558812823457311068848637185287259912442143296604308779603305923342015978735455675780615046394257861265298859566204298186352636217766344265881730921592204766253633593291748468424348193494650035707192530447609654787001482765801725963823190095962245387869195836839831314073439293011729385537189695891464064547781643337062597451818180729412278019222967198119148939025276903577478427344931270436969546098316520203049660950578719349739160970377110678332260265910795541313856837805560939147559887460237266860538282902682334607593920045642412976382666914883075804222420748828453292976044357775838765508130001845714043842662356726107625053210149790494636287820397278791223232413858919071490674705149908435551205763407851810623351166634593925013125837624432168228324306935459388121411442650397692688281408232003599907556498724336961094299986594874537230265026907716174803707631567349958746726192531893669396631445034599544283857387756357413429385148535806865659214651889055507707839764516147430856983579171699363742766828811851435318406899964323529179974649926950388658777699317040713149821642661416214330896719682079400731362332902580026817154251136699269402852516660237890306299018348814449032759175726449300195529410261560299480157176940244781110823953992367896299550240449125270658074602875954676710395039350823296260226090320965847474519129684634323903449102835341117452660403188073064360762560099365295463475259056890497689467976465090274971497214910361484960095242130144178664837387285093172974776635111111006974013490524311090122893294918679355111727708412432537706483499653710744604734120090937290499424040491099250123729101698159953685827837836842564521469225067189832608152154725156889443289238208585640147210704405251302003951498964038608506679395944282047410079159158467933388983095683079841875250034067413335978599691416188319804600669569376789997326924367444585343370021734487066816677301787552073570556431827919171908111226952146014699627411042885482736118996377345430703498997241595484754258135335936264137585120336497502904764697641574711171580179706444336649640575811860653784962718476787854030104891013239089812250154115457542763446402773594255368984627374468943396197246711591614726736453153168521742111731116077731763532844641727627196669363005766189772546639636795013239199600448018928995028944971052280963149315807939641332214847580331391516418785874657998111446691112276955841600787362517569614531613673456758282521564249604185647880970084892343921974947187816327322838461882702468639468551435391855249150967528617777780046971317651173602833557398236777208703345252881789339025502860624553843151111280952418760932412164714887213599640440321368553136270173508496144854562147827205321598102750929843496728726083473837981080364573618866486417029361464463570918752327993431154375832618932543091206920925321478976569856965674534811476132041956524673469664653180754539713951731866191373575855228532973131658153081815178159140637480821499893960543149582822607288553553310116570799749260172155444819829325804681627776452897694985311557504958364161139581190938773569578922467970260684574845851091378324150924481298385676233470224647206834386496889576100662354394454791678215178123923789975767554594598758459226506162339145163741111339629331332108412559851295178423736224514100866014506806726204370490241411164241203385282760579207209975441620329401283332390758505942940183599806378867556854529002064673215050787489454970263757994065225169256611019796972536360824615340469279598928520107784055411902496924954095823498796486606385987067653604618215940770450655239804953225461055819101155959118247588755547929294889435324450857234052056798821760513383158258088812257052233281839340997192146331967656654022269620671469999053440558876111656909468623179555531094067952857321155043546959331542629379021407658750887410100994376053538232138441229041440027988244258106353938051091878642758294765462327258411005995561734575530766790834953549388939409584638634717987049217831448714228370838829227766182799300039925536853410170697060988210529804402571823458844334964569791598864337094765636105196029324630714282543550661539407173592098870275670396667400456025181949248048089212738979384218662024833586658815613585827600208119127868863360228781981001436027329145811784535451501080800119612860505103230525963707506613226534367531399923934089820185072111999023848643226752745546275908135807235081357369086924538982564630556600808774807428947197622444386305812301685035901069401745010757688159014800057343639946513514803940884251381705161113660848568916076327249714657830761890354493613882274792257613845123525399122262427976378935468663251584498669025625052346853546937719490071976580317382189285923070921388234487203406988378464397237473160150767872002072847264571715519361619544534781226063352829248550158375011075845572527158264989547614962740628615785872871577251251342672501046231734379575553748208178930228613234338336663683599983808818139778446707057184989787218934498486860992196352450308407833255105906528316555690927568105157255320096753238888910829248200542238874880922383544638891149261737874824895899012883029781483319569288332346690658668403799912181364099560200850050942154176691466403896234435627400549625741290273160229353090345630639261118145503611575537875247454497119218379565208200845044342898478449789776946232491139947433429100153108339906215710656702480877222023628610368973291521363275141897375317363983237717389769806467349339732950616573581972293743454705529928408261831420872673246756299099188471166989831553009420326345242449844566828443647772079257990128202208707131994827307682341505711816065640212985475268382006863832224925391889567119432024264864590944077339531886637412302409996412938149155967713012078915611489124658136798982090936815652240379809100983792599022577845330272994564290714658632646323801851787456946992674047814800697745872881812237129936089577774806731117574362495209209155801821106246726603311203690651161098935006060488406594351269527359868141037631472881320357886314870304190477208621894814285489934890158921161626756576380635191596126876312045201252091032337499174407995928480381907580877681642459070229892259248096599471086285666301002792125209523618089473110091956908327061845514351951200897859562319365598422654900562594558197883131905053641603440731807176697962926735296006302113712171642913331686726411503574464227279345453367658357580138685655055064767074828336238797743103764479914222770012634213621931843085476215732608797750204294419610258975054802145225169278862192878592216379589857138986119894718094460084731701622820100293285315166755025186513269746402218408913757813040704341569459370896969950394593688021415281174996001901677976530756469015553997634726718852556496251445496011131171117283082724359185773129665194328755898693525942138955463022516191123133378837513553334773513881161518529111963622513976323568957263615752676523626108911045848851260587044311106760984962218891755210789043211432383168914278803596858342565472847989614449901964083170455922109758708924308631012643301640074964545493259217872402825009276905947257768191045971063272073259592227046984199975312034054291929803791027203798715551356074999848454928656243961238699714382502861022273053822216875925155203957436776699110290296557485906370240069261716516571186135398110351207634952207040802102009490625115761703297531965685255173131716314687611753813224428000776534736021662121713404417843083076787210143793692086546075168841145175307472722848326347419220778819753468231220074537742476120925992290085618588258691424063736305092386321492141377420487859364525757754135769027439318057735653751612839030933856409696489244438952289315894928475936526445982420758857083382642054526443312870828754704288636521146036676001019266591195141785257456649492783069562355109116698646870429049584362515488306401206042339964845026025659834885667197437269509983247983756910907852423380789931101414007356930664379477907612966011470883548632297611783038216069482669835188186176186959930670487218907697281430573564011067971290334738947643096099591359321185846207683040908874371330540778918250598695242010575156410886443835178649203743143901658629703198957048669720410121364891092517590593027576164870595553232808982978340493347977466099201819595559994920617779539170926294954661359254314284415733701982439953300781614331640455043327665446925306693577219699481576297453316349220830540619523440448266752539459712913516379677130302394571005660623799235269059208795879797098900471228282918614381886401726383675887242969000186175031627559553942145492000779084033915101771971223710188654706194770111044683028752367551352492995525110036043228413273081075370263919288368436083329997699279308005205130576241655042020491593883834017919121229204523353265676178534434643048400092912182511540922924886057618866347569615350659653475059365964046712171816614027212609056589345594118719647170939168962186551109396116245227753832167813900892971688136835790917984908081249678115389585567236193822874257580669983449725672929033647524564046071164320643812737786404976791218698054455917794544121424686284214452382838431494514525370639058092188226940967869102440888055170783005800859143134821348958912123434727578817719509768587335352094905815495531525184999067125166192217145212370448932606334852916745021861501304289532511055483293777841974465356263654092906923940520770427365222209492366707197948451762363592329525504000040025735754187413227849093872641664850052985739143162740299469568736133540548074196750768411407169699084652189446497511773252285487309842429871618597576499155078965361088196095625891596784324492585596995599157531833859269681692326921033683989089459068867890092264926890873999564778678241762189902636267590307205614928971515445596989096409979159100226509881563287122871249588515446749119675284888402366305070409640639788463684584360630906563878292612987791328377304954260883450068537714287664460497397613122003157253325680693504465921407253520023437137925943256371639655855907089661127293062088246865317530998219500782480696640098664282981684037541097886510126030145158846016204714988049724936211195318655555357375913498030123947140823075818528732603823030469635466986126257963245583874804525168751643614281600722314671034136163736519642855956285590760440646341469634197563525675611093225951115049435314048955032800684682990490215839319331686661533752401337626958488040774690999801138229119176056139957011558899333016775159760085519989489262980144188674535903786394671995447466256059492972136892905921898124095613237168859232481899763408714482947441946245999306962054778340466368650933034520429988322504967665654718411755912413098670767359897937370114888757004875964213994687739183097783110954122527618840482452562411398364590294509750677330422310702415747231416166829404094033965250796548456979851094032494249545051560070803691464593190106263281128104168135041935637377105508943665077731950265963987495554828846677701510687205936736920031490621402623752328424654336505095013436552529413547251399549417685029164598843580263552272807801388523792313589030587086492928805441528257985585762587633836095884748772620986783398122130052519657776976748976491854737699902877331123977826418474404283864488473438225166087549775815820217380069151310034736511611509650470451514760670692526456340423520200403367602198354713216911362251625953675605206234854730496693599056710895371956551562384403817285241057076883287754144784165399109341704377600392477330735256834256971543459247339025556037725989342533780156164689632633877141310477182749035217421792885621506253895489604577825560487637743208083629246584115584138642638375174555278732769225504377270572984294191352463319225720646360246282474887951281601389626286469890910153314729463076100683411143937745195576704615914428695870051929252829561041739052925585324664152444491939254926324252181504682277965999524019036866807839554011745772874647644308367379846253884011378055292467369968537500611103191549262810753827060011436039005685610549279160289078460589864343735533445362172084435307198885759155066663308161466769652226173583156424915582460751248318741791479487037340060786642442200307641065977151687904215169456938465295957825139104252270527535707168037683416621887411675770753265048323885579623886551685155714004508365545466196306175833433017230038424016020172509008098031615109662383587395319232646380584277963409478284454334411163978236056916870582808557652000659828766242332457351400264911841898950996342509609990518735556541286144516918167625115120523575847027294541349378121703529065316215208088086545697883575121523661527313643036825559376787000064992821773534921846636075407128196844023056703310095776166128840599948334539755616224494676983678962282660355818032531439958395977606139465123498729356130317967219559838528049020192436406089411419548328870078585528754133402837682509498856983807055921561898555626152187515210492953008244889476532996194995254917147999804082621195494490894856089476670629499372117754998770837126726694556982548836189464037124525577923537482560133649822984797774406924802698730322796549703726061351918274531368193372339049486865126980733852815974063426984320441349887372697314984958947730810464299090375219036794882434750623867421024495308663154798537197351406442947291303635085378563353849299690156548435719826393894279569358071756233777658756981206047562649356778972027007980652154066180976482867731565963963065628526658136690142297328747264541643180074944949208951820010774393614289643535584591507752352359288017588260953250487951011414835011263691956029156635524564171016515248553393341574167593428625573692288580595871566361174438355036555676251243184465049598576334964927362767681430919107765181932644676365474772355656911650577724463931147571482659974530380997900222588971962654832473482351465877335246922468958938032927086384488051607181353012397674013919089875130466243769186248448222928969429465752001948939946391998418763512640525550247503800008732849330850716357190763888666596671368201350257426287992948063494028107074115476689297699483826288603450563268850850028584002131576519215701552937028495064507184107812554691111111940915492856426104797224608273177654360741453188854472582639473714895859642975366686034528579334672459039351912040320557347783653016364404093817581522858094884760647035045591247443400394169644859633907489311220506090555890073778307396818977687327014054940413664996734094291323965546986358943268382978069506357418130256811692163084443800655142896744144805692939519939442731413595877617143659873933892475399231412188554216321364131031381392507271229861154469659880568371620661848563300646389512016914748450488759824860915628498476714363349751628850101247722565651701104342510666135210489800914412764250417961921442618553037856934741757709067922631274891463244296725856945120310216526330232115968998079488640110384018782182354860414331526968697951834871214030857798264004366304125068358280503710292648415639524532033254133981419920629859022413951030208008991666288606535205080329548347795844874539762891549994406949632791735592746447255507240870431660975044452424401626772975172070164916007991142693444674336785919615473927972601092520154670597015307575335633764943533907955419772920868243066360436437440434988478700424724992174733692355540013813432510522435866014403488951065959808282025726831902921836469783019934460674293983803340138690675719872661758110484061844096196347038446819713413532261353726794271478683238332824094396884127961794526795996342440649332331373476960194882264915018829002831784194131588679802362862448609013706098351707838180348762175164852638265689636236644805280919981021381071664357033574765678766357931110700816556256569731540551196138258454556814289062827658126353628638760122703077700904098673393925976899541993817367723612548641387983713513537369900361427761582122589386625463411711141090362193671004948027073922356897489301809854090246792129896539094577694144451565265154528474159071000674235414729982407552047000577616692217531972548691062910694851781584085035449359718819705289607234391614691981088842451473200233339517897922988306011259143824978690653480826104184346572936456163323814735246983868068163318433244151381097079645539073008339025452093855664747030857163817342387922809086805906285037172899396380650942651859795356854825823192107442050014495161894742318945456690883733455000188873062549480726933886515391892799271039867155127191461041974340518560133890521934521555258678553048699207573281248257656757354238857771161281476647754725335137665572119184766263854619429900942530525237998046841295311111018410772382591991527270261835443329666416718065946414743745712047029898108181036605200751880125201370893652500277298086736367909206361048007862321233331833105699215699057628036157421087379023863445915293123420188632554134334089185444801613604283219012639184132412204068281191857257420763890893404413609057408802494703137269433146506975279886961806874468202076867875159652974579348119290051877474609092008746854365228616839904851749929772526810109796506514176295949192187279394593252447494819883225049778418731729013324819573128447561053345509918693015646651688765912072072524767338785930247723097794983684839683542215757127439136482827171800921258393643058716097740978682412700352130216707158217352078887866466117817820125247129352825331428040424375921293249022644324568043426916134641437844806883876500354801418693788827297988931636616767527932304239877535007337074780994747203120066673034609000281989847118584426576689703823998442819108420401413548052358840453582229244662720682357955062441062860551108755499274984824779809087301125247145406749714050913574479290043166675548509203407970240063035805349991118348698441759262895317940721272149534136693873760814385290153073277660112689580333816886239446442476152526110251461695263986805882812215149588809228010094063286081379410816968170266865002174681256020395545260735555831969912842781729647292637389495523855809326164962170721554564700188937496367902372483859197284705725865865151652270731849311036785108132008192251344142918537605102517985131950534524725584298926582126252724837946174339338446268119964654551800907413336408452937835302332161717465771636422487053966573028238220793485548921768256850756678006398995335065401039407330936185310311292875027673790911471328528878909673324593195893297565871671258271412643214648615425040646354774321220040134923573770705318248860539857356668485314062502539968190213646248860068244151957372038680110813456991784070468865616630783714364343085909267829138794498131472179437179143408966868030190428486636383419645091595738859517873735695912261083413344327138659121732228369662189851030903270546842125881169530567597027933312811979933227630434486621832396541185893795018649940724252339285549627890370874056689960046758048370693537831717502788062836940034980736254860013513375769132286613461165084049565343071074036240475087896570758875548865506367837900475541106744493986036397719967569925787675050595327046881783016336595536798532837790936318765339204126357032361571514247941450481418439214663702295956844774770680554975986521103000132254221435469706441548720319244844082461645554519317536212655025020942376431163415793575545312593056940928824170628093929522766678382760481897931573236995547151192548475271137010969304220614157847713657383044559055080647228780683019088296186375565304480093286916976474678267295109308543862609164099555981582415906747743549792363114273106180961971995883956911703982500907667862700668683248559763520183217490482768633155821299993983214111782235169129370493471189353357026493415560467292120626847816497778746447405552666984120105973585420871396632486625713569542557541161846147900483333807842274617435563114952800580211382921609192673511854649298183523734860824830675815806930844985711507788399813910074758848023847756348970409243260276941186163988491032589842319532088390845004927527875348456383187602374424100541023657744631782691372826244037373505200850132296936586802411502552333293238641033133795084610909699510120606381562900870571816859959301535827643038012968622415312061996543310640275560580914042490954623374598238678149705680697945785322214864741286387898253678730805863198237035980924096419647134383410196294989021560812189119015015554927220173138998151804562230485696123768286233147092379190057830391108995245228369173597498313275311219916767710905956731853014511748222629446189450973489182151342630691211364455277150292238626087250431877925697176699614035803615108893453048217387564565160431985349049322002676706805376636546360927974817050942576112648661063518159345718835787924077930775677581424633574663550905252751727430302667367248421025902435266458047226017046919542778077227020974600688549341159605477853878059645926272737693299456408555851550517414303419553422890735172829988893473999777927037451317918677144907025413506678257601355103825497276526933524797688330740922747436841194153079872278100012955201459065932624635582861658263969706224849614051788384219831345286483419458083954100882332100073375402878293529057404871363084102845754276408446214026514630059621077458819427898103555136010038754387627376904047324978294906115856072347564577822779743426661552623668212781587683207165476569317523476635949017425383711952284369633863415756307870859342845438722143265073856497036940214669430555214496413970869198032796846621292996968031583385439926012965875026044092481000653518389342135967188030156177434513689567005678465815071435825248061922115231965443454640482559319045465987174505114568901543995652089173546725586960587198399607064111385334332106871821254278591037988834481475423680113398105877532716617925972041175757356053647297128594346061517302969907991399278397939325697661536868682561323896758191313633182111828140537717115291844005195872968344111155835776702503928973623366253551793611693886899254657064148737265015561893799898220005026420132857147860018805146947144299135784564293323448820876256054563421502766230322265668463336021170858457585536891652304203895986712380140285851286419750538205936559004996178747316740728958997486419078222940850651080842739960837352144052785899184693901137161314861359986854319506166918538564319069551529503698863358533560396584283405812094615612931485209219177398896006816005545380296484487991919342762735950476257668290682395414195355006198402370866529583129047556554147400003173856516718729178634485865831966821286786336457732850536294266187711599889347451381700606923438333512658144432908525599816975138805215449635481809033670570447366598191167872281382340794181515285179518377672697725720073822801339348908379535546434660217428442981684739512790803597706192936718095849279059122745744082485252688328712763847563582768756864174357520753080973494664077054570517028682494699662967828376750531665102091090031912347762653934872227224762356493935162110118502950609016951177140278521368424225545544227698132114668842673493843837757957765469134438067695633495445399040299553724802845772335319225303094001161004223705036758139300017960728301599733042429838953764412297760180982894275443606862099029597652007188544427609238887451708421817459864263391685637066515927535640912609896494595355267116264368078832762594667234890826271361891413550672940106057683959014590695496845938824796184652104965529004137285990129216244266660861049921297411636469635220792637818164153144373774190530598378113611563954701246672437598285978092800213607772932772228914165877058742269542591968015627564965191031648204004803186777752732077756610928953101620037867389076031858662491052668869373833904278378505968570432000146066698017581182987943591417435471667121648083757753946133550161963126216013683612166100176989174868248176227508265206996400809470142682770802489514981829227912819633752111734281719796527287868943472915143301119494675712211881885630737554632371154864560188865754942150604129897901466187787106161705858750039086954296103966943467410504202821324511289117633225360510770959148152244905254957264141662007236094669102678469722644938739820888528063157398587693459489875135705200636395886657385167937918003086157982801610042853628904956729912703911670570082491421680230125881307864914868573726704324288743889077950999023930022886163476257459205719991356814436802751122714838908560216272502074095448531605899023863794059320490179159214843007575360147952195124037106756678798168376584875394281764823626729708915565360620662743795096056823542734164797822078830640251152450352655756541498718283642934962855090812072820011337280184023047874111216639078188251598189805975207508206015599824459365089995823753659569671196056930579909970334343004490141181635851936191696867681298750210858315972157080087615700475427455846318351958609890558286720737278820004922630956273710026846144022143594766258144497546084198194853466289072550132236703391800751322967630971106219875849961787585794889029163029144197166193987858509459347450351425965415279194763940409342095438374066908506507015262046091440117185338079016107856442924523779738455488590151232883720504044902864969802084713485825517879215155101970074086595167591604139076999773655849576923193731014748439933052169979525138160891370855503059709490700757782718843275513513006965379502606403473655131090086737440826645241529498703045943954333203976389443683325794842548248680981156968165687815655530709377329733650161812337412401323609310132534924652845661490267294117882513271664824941162758919818281993005341555381139683886778976016984661868699649014424727665432814375878067576049031469919395273673500975474677626314304327560151126023572826737210979441459725012586357108691953591201840239350464437945806616163740593926379472863512946570253708936746539656546057638436597723688817787710743226188636761334991412991844153511830547728115024794228113057467339272229332681104053764241442373665352774779957757824990859963481772592540261982572623175303397423813235607584163015339546023565774919728200616732231071584146294388107304198992462729113462856610883765087529937229394590909015971665799423896986525053565782434396312091227828882054575744303613611886624726688582172847067902434759746870571063132428208866341396056130875477059236012967268703214334606174470064304345886705844276780443934806486129344619376073569453708551365147155477868311415527173460354911203115472122448017309507597740310510281641616102184039500639255561766242641127509329156715367638943290447136522066436763590489210570895554032107416073585150132579929634929676658702128537092747820185026053813398064943186636655970107349755937429391425883366463044363482244301504766229315291089682423211745211617656253435308709774805815911736401044680745373419923838234244407279166201582057092236821172348207664203008636004135230734222499896585836670268930562719818261152377621430715577832696251986909130210785644314273743908148840671999110368379756094690906773276313325095506108529920515598524861474614657637491075842454619250024483565540672279080219354323419074822949237567937143229039903526780643272180585856739843731420638813396527013681727395950408069338457986745503283771377224501692400476806333896118913375640469975702236589093579084547365746376348631003880850519015561390665792795689335741702087233782899423795119714548546931204638946720676656637432447303217773512896694837336633221024402628083401268715881585470258461186762024190181508637650138403143279398410264057797348113295430698472573146970109013846284919427476138830516525774945783049708129070436322690854925975248361861358069192012841498766025060819832134653601137313983566323941226085577272144010580647180987235205660929129849043240689361366503206679862975613495584849171465679404730540197282711885548871035245443262185046207198818416039925305352175128688330031952257553753871118136965077123469786260238227403797455507528808975468498963767443562076313906473549164530368133632872321822794625970536786534631137523340327842076492486027723434319350410886844704418781127398387278798226733215619928934265402755616754956687206302896578151693911891940888922715029723596320957236073777328427669871837011526914752986091823202255077455256420594042331295854415246068503205898337074716369267503132476777374966741134727490342325368228593263457293262316094189677461507800914091141655522093040755779972087593738553148167268105174280705642439398943410661481757706073855208172232322579416610025404858630159807840419613456021502670816363579752517080377287779635139508803880452948315763069723201779247949308860568500288970550989780995764004872764874681472190281533790300713484590859856784578885497320715372193804919346438705377917352894673861764216029095865610229336163614610798548114629633561408836553433720537844023588590474535816287191368341615230047893778809229394229226368868635900933834078425920564830047993096354262514292570388696894254301664911780841608892607249265899408834933316994160740055514286831445185592448493938559245826670135204922093179433502099124062679769927101529586218924641671158822152422576068092156152323036951795292343396410108105374269983790036767025897568263251601305409059079648597784659967152032640660726247325977335292392500470087734668456374279986562918169522182407477109722981465712075466811117219725579000799716990925888899141846886210047766162950725202994934299994330157393377064562833242549701746581597440678395933421984370326970169366232715410026835066528877851139935682000064404279538171426409479731066629596115786938916414257446908978487266067480437950824486983297455414312850975440886240002626793385602694575898623528626158666799597375519646655024954328005956319454488295635837962880816450437370962717166756228735571594929072145579712396014189912657441126462192724877103875799226751045966014505352339292862763128545518603522723974975712767203163495306746472592892911855543611840104411339170392523297151142356003791512096167896433883533380199019238037191727570079425175794656964428514441593936233504685972439487241600465684163446167750583697352832301396221832400143450417656673629394126198125601309557637316614836392779791335651137818472461840697915364416210335360625373848312586072843127703598861113303968697208455351714163049418468943232139528667061375535172822653227226774194739846570269153737961489301321278454906775761408670964790780476279527252942295866964031758681093242393499746515725761148697214380166703237913376755215629612847108383859632662424457615540939261602630695185214278704538426757175950622568991980292798704740846016502266088671650778557766019369460051534927692634143245417587513124026751432432559090573307109935339841644065244536033415516119785554617759244622084415533564582059100472705951297193471524971373329781708527024255436957733836006706086462666348356290296758482685179867661924098520659985840758959252002274167448725380576527480442825716757292852556482685477151864442316930113418571384164347324465297610405691877822679048749796563775768799845918173304251528039060319476519454971255015559866221865248377185298129519329366480255059187698715767246964352834065149065417744468052443650822835611069872543381860957223052224800123323816677828169927762888569231088321697503295549636676616594869807366179739189956063348652846578279869944798163872893140127408302773904070576072439393029901468374328522387064135834811106935455719822214665322529127736875742051506222732610657856576196902654511913195176978079503278144455610575264392021251427836628941627549307136717887194866114089082365532953946599404150689645407378843686559200064925135566178305438509744961187551462352158978174761228979983488651394465226813601664614853863947018678266291434799398753542414216871296854398134249063104237092842701469030398981533484956580457735060486254416507477999902507401341862447053895507538355525946311769034136932704020780112106631884318572171812476836855471382517289161380366312333708981642934588432010213318310962905785630698088915996424703955899807253007796231885891134853745349185528334655321771726765198074799663895524306277093483333201938218006863373590974034073281338175657378932772932116890579206011714521239149947029475166116575706818237890294191694919919439586758203092877100599765483824014494569131063087961050937654296728911035517429741674076011165193497552761170848545513106042319501540026437524853017686462660395310468408326038015442435319679188192348365122270592312875023365070949576491537050889311518133826893688430489361750641750634185254396174462462629823734916678068661783478018240056843981187277705767260939781937396505494674350866799368194612623879122005136388512855956889281629537651087197405493590496795102624942452344631430065139288354958558992165765025653414510903330975633618049270124908818419888187986598905985655626552612062722683811767045652528142694741606312155876543865355201848137322155584571111351201906252351245566021503377903987442123046381723385757380031695766990562871764050975045059846046068712452541977995797383650377174403875264876408868064514948576010801203444531142101320337477732068950638334396631465286213269949415658291765302314481488838946730005258538037040172489664385406077842791283923692444501051599055018610399032332156537431676728841814322895785755137406273231653505943700291372840743050400182442115481509364158121711262667538490190713508071129933581198427667051065211213152649161581371958771413175955168790863515755426736863012397517778163936916184887502600608696583252210237627942572543465359959714698316478571808075905691819693634197841455911682486672338586120032556822663430473268674152081361456130887181400926333949218941263494023420668925204025678183692243320895314426132445408379120039639129751396087221425747679571574680651165856727661209923975071302720121225683016323399327139076127802049530699325927241850948759972128906975899649346157061590552424080858147771655047234110929185476658280817358823891658883997175101254017678768281523845278023106573097422061451762506106431450811590838418345485401596240173761526284145176736133810761908768994705807864475353494550619565431221733732974990011002425234821087961169543852011640706789201610005365284603224830872225951054351861043608298573415917818050046047810234967845948984826071583902544611237976320886390133821674629908528845130171911529427138055416075578367003634720818967483656248483409220044585084197925806454620494632655972564730871931863697484143556447842389535916130625453028359516836141816701492225584681213552163134541250804815472876089599802563280275794895567225794099130282068842054615077268267012602963568768342909207934694698790948210539099112447237021259470379442618981218324984315284022158303586837854957680513548948132525550665643199344212449538921385941351465758551821047019235199896383457463931470278537119481120120407290788586779185549898960520439208854270102158554968281283412483076802656224712123999886443202028860466050480759222440430818740063873807309924399989342585702730143001991764853900558220254709805145112077184575233439447336821084236650575224010465207825582402554134465238703236177869594833909433455678528920105466200379463464538865147174326315267833009885056271726915985424713132468318146502336495816195166861136078900044359987732430120624497186335594904959419422232608845428118055423863363313341501527126893769869053342094723771063297855589949038197738924636433928008764979982278029941700306771521007479895026523160884473499624168631962048613515998679867447793437091262453086421814997120578801598300183146151447998485082186224057022773684822427577457983599491883944109975319429251632126185170430668723150701078523505574772959871724955422681051258786952771167181771962064846920395110248880901955075286686508224693059375546526656118668362917869597328155090209432673563648703160319555596941793231036748020356227413290061461703531099239842094642141202871409497567740941163707647438968845694721762483537896542798790079613275391807966793620279481915722546059480915086973743713251965077751195136744071135454791209301368197382281437004371131887772700252185165625363943724810077443596945502632167032937296555315528605030249425187872577271295097498246023876244886428313524279868196915480455118963142726673215486195987527655385750330861043148139923109708377297654550635716692879206632700809012787907199061295746441537737885597867682039083373208714458550689386315019069829031758264053778433988343796597016299040442896496769732597962124994153333709060602468362260443842055103781144469067446169431647324878308551480236402334768053205034583916632515552233257144957218003887795180767773180420593195290030540799195426818360856469398141325456104707705755437279436487244201919013504189155148824367495670479167289933047264125492922454023916112815562445818689997734110606773743164517751674027778002796201420814570134211676358442374988086786329391232956717165714352484226244095633609038964564451647822004848856230887599849839379623016143316722114297271741695754931427738609447037881384249537194540958915545415348222860189026480762016883427714397649527063429785490331105728296039372198803526203318322929044540586783236297403284874242164680218096373808218762058477403502861220773690640290390589293633281119863304298630529292743652878709069202982282187181358399009674611328314028809179774924973038376906190393471547727469416794732030074301925392016024671784127716489248381721728210821803230492545326018686196503376242249409686945322416120143291985942402578648722319778606337379547129991030148034587299058491084980660538476375625180672022135723379042390297996683080747888834903896326778636267302076656620710761096710022519406876785255100312906995829021420538841173563246583658063887750486786524192155055327556849203966914383479078471814452055414374794280901859044788016292834843238653997038078562676458502380032508759782238663324886275037138813584897896120385802557642894434320337824407714139595729890955492405671882390653766393084467564684864357077757174534491430704348653407304424190243364680157388673086067525635518495813967126683642627146136578207819988411819667089856210368945463251058811855063593944819733381055638537023089404511598185265378184920151454247012311011821147259553256484621130492811934311110085483156511603294611194447795028293032671753509093551333762906464029905837436355304763499030877379396031665791639162755491604527448973427810730772256158234486901999720958803594301559299852789941733274370080127483559703762161086290965955936597883078672773811860254753221392407195935597284895567215912448090528306636139938433686867211514512138258754268586455335179570720083785460875174668183189346882289491187975681946813467401415296881156817555049816552026845989393143639579273306934915809144322464956748048025307647560590400238923890147787184164312199641418288597191873578157860256885061322132955315767888040498835066467897496881845044692360452844318950662625025503260264503048295297403714919587620711996970431554955622899570756606442572738619426985934693094715298270639193665582583507665920694000042557599954142076269561175567530526948212580807074090552078259770252223017638817533729695332788992162357205604622115791506316169875822238240546033643206149769197497462304489307636353499544070696906583738543485098311993008541226726004036862088365462011817331914169120074180552505791639177928146563939712360630161853667912703088749446764375009610917325530036197712760708749567137922008400292512126011972040036103897170449783196652188481672015914466715427535536692567722990711049987932807502435256265088158164059559849778732535232533763167760578390767434176650788260763758312932862856108973173429813184487228255285685536054358846844295132738079606546641651929938071805777447474577535288316667455870184381353967258782178442607859658923615878734357417991371886327652769989411584543320414598599083009660984915443970261767902582188177772174536028112984058281704191250177392311524676933116347088849671631298984346193324319482946543942725934411686793716376161464153574907713529181622615765622770254096849010511210297433178818599625826839019698862713519478164842400983659568189961587001559167818173749273445804309647081375535929102356957511891051346504286083339332840779585112449202449014064207285499977202095384000957312672433269423893608909941062497491755982154981428064151077748618526830322624987255678178316035407735671270008148817456681804903130915570007486472943571204931282381617041017783579404635114154491128840926778733347481937541478087658707545480921311988325631161037494838303898080905656207217694354378250986734540428653719808407023903427825582671767485941962379191391352096665778355895498665039521603157727604000228863170482222578456609333092468067859423613865419308219225424471722763605522226550242992008775388032419254804994768748439001791985077363273313578624325143948291948376291118067714129685867900284776599487448360004789628550251137312860808986155794766942212175272252412077644214106232974405887657268022699744246816024509669345832821027120088910697808074547294997065165758478003845238937547023517859814689195002324340016929860346551080578758830210599219170912821405018694932116687460023059037905886309743527167369546089625881289965723450287619987259839815346948753843231425012955277209301494167569845533016451503080753908776487530427354838487812283421593168558533387206647236874733040446349175336665161495151360994227357731230299456335702741741023361180001240517490699712206450802844389992886996305167858957601420437414561103193421297676757214821848437973076627027300874440627628706219021525412216257617592683613898262470380103798278487183558151862028223880132699073244776445272913612777960466880715056227060056557670276078919710022318071743843548617880330856115482515730927171626521233467427348279467681551405069710235137279310434902168714018299803002065925365575562534860176501037132767893111375317689666383264310169246896141278020994967744599436414257553265191551938874530247440586260384362639531976977507313138143211331529147799581708793371975829141053288768596227241505702757085445826948742624293763267733361653278488113719328121111614978301597918288953653934526860650564481659429492852873474428538401262097707519049802544537488201656491960585504472671382704217630476505826113989762500172141571946368430845360209479330714312181494143453743398267697716124008961293223120961350528071294547908800626092643498716534001263936815433302169619150348049989258057531584963038803116943714678236512004793245997190277673921568125541816056824707696181040442032950576351421843067776279384524989936168691581023650130341463282545285790552332443771197507132392631036739848111225880459535965663028615462893213118482136513404394965680400662238369255718208979473143447847439572356657732788389677712641593655233218978304262062116143940659408133541920347472687988999474286537858893227414301459463534948360556714748461631391602983291122503437549801340620622794643671622623118751547225806780910542546560106421492157074318544388937650744618495968999459667854289022445853020069257188705098587074586019706885067301649851713309042585746328318878967389174089227470519162276658506425879132984056572440616190584354964617064875442531607044841475406140655850746409937086944744767521034916589720549665167671774294142716412747758459916630361637924617365529160687112033469534540996276159596686517875068118718576574513342767810135104420674238778658058435523218137476795084564765658389101336370511515631434821458243782065105063501969993141533027575561620954151269257181925178581513263254707849387557718420760710643103796233139844873429585000521127992718109319980258960832016085637985752750647241125784961618833946317403789310989450358679361255350996180465016138041984793144189984019869346980329954817251727219623971608243554954564628849327966328977764702296129612242375603334927120728159109044774949910104600313733097096895754077792405116682942594739528279013584272146708504589319011379804151750943234928559197145005778489306001295079838799085050521750017304380476293598056317675049380402592841513884777511286584664046547710210236440608948409711784379320761519925460934587449399375654499444259809938890343521752772342510710352195237586141603968205695428133859181991368898416250295606968795421697540377285300617686386113544631421772752574994530096266948909980871042874989955928517789232669159337459952892852103995856967613643141736157943089135739156919756368420800463827016207548046573245942427503843199229275891655867098351843282598702811531781477294998554665504284811402873180628053137347992217969021064944240019530921517610341585634819331931998191304289595901730214975537073425012426150642370357682745419917073531016994233163092919708607654710425138483331443548674583911591243883769466722842830299332743535074025119288109216598473130924273363267221709905012913766511559264317994479006233444021147129755338641811829616994099120607347609260608351545601762372394989515402323624024256530115734827279339274325549162446317821056455271462285465963468033943068721029181499781982305327499706891810203962167403315213521474261394136752918463058911353152399780996883760569997285715511554564403193103603678244579626715474951679424265879254532336457204391557675648392337753531218745107932932151392439391240271073670851657226197190755983984885402309552970614568017607609372847719082116442974425766699587269186298268164576506660611351318673741144660244440469077052631727491135021942322343443673850753366133230701283402804958178011407343127045064402408226046520579176659525204685870264405108970619691461770409598665241349184671655989638606555381869808151069192430218008204508851069264947124037793289152625168443620880439197081831062195581306660495419599563111862344892472000327172333408951088529683218877938205785177474458557125025362261204511930313537677445178635154998675405057971385200909046701618340386204047602279192585087891394160813252737657656613651192573549157708822325400992576011521367969627718048879287907418111621864896965157089227544252094969390978994802885910585962769989561751471799207929941626799853560687620845639920412664406977180377360486755690272461311637413187315768655850631009129100135931134492080364521494264431384227648874734017145795810977522808834097870923108569833477220240050365024414880561121435055727146635723843307949309123298257543884019999901047076582490565949006333610269778232032881795402529730824461547268339487829378438825687283135163994191616136171763897868837339980948083781741861278654550003186141395369057281213759228408679897701978237085326414377108743285825056542694845915900081039581047293123968792354011583258541348131468123078160804405884229355234533819302503133194288409814534891191825643511068012812098567809490415262081657563298478662937883852955874335062712381160373431585192199741396470609937154090292889736363745937499652357991796425477022329465450758893893352065126031018664748407686632402020614420250752391228275446381296837830155154104681843346541275351182820888218555182588285427706812678442167295030871037988870960155538130091790741543781454250088339282555138466589476479770941064448336489825845428471940458734579170719026939415152698137177447068619035796969430475017649389343800363675411978160655622694577288125595856046489069269009701958707836350849296477292522923273589183202631030911975591801886453329052493514516252423188902994652049282602030312113316482759596923795448938208949703031115281904654529207139665365421785934559620104957929133858812044206044410816116566117453622617615674941398587854326407298932665309022322052745511296472436431253989473137262013687338542429913091724112299653142892256951627534024017316957290237497824445686059544569645742890062462753897106484053778595079933864958632105371490550003336822277780492867247163141664649827082696636794272942580782604992965955410895168063173720814377937640076347944222488942189012676429235802140074451267419133629466930898628492397898060727206183694942113654721834074027089988656215375922555650435841403078582918682450453827165975186735713434294009142510011875129207601341616960940168106639016412303352581677143684896167830142246517639526030382284912213347297961620083585740270264146704221438027233932212638742919363088074607927270859796039670755398204621064588314433853633353338134436186887558658938623047568557977079903502665685793147184353792529361995424001075552377173881266825244248218829595024297513448230873607206694168311109986753624154292853098686964366722984913821894492912550703695803871935371332800581778717225328033753220328569104883411284877251090308890974829280265705260200249929143665153818539994766764426455657391788296643581662335313687566287002878679361790408619022892298692561148696537406854256000171084262532367067957464144216771067016300431375446000490722721694187315333164950883814107154820310394274213310205473003443498406880807397625272461371563201659240929515103970103579364452436075422905138036149562349711038097650514586947508180917225430384237037266888548422141783349224620461749026419233257539341882965766198176058779271475003944963546619320747157894418175917316448959263967732406505830380583365105607113025748099745541179282197444131034970882518504955804002904132221839742193616885505743411601961814726248909994755572592018176943967246220807341250097260500786334050775453202467895788635727580444709532192757376917342065565251752690489609304390906096626890400850740371041763363277847700159404171111065277647461490074991346552583386997074589481391987176571299749961879078381475133678159980177600628019235538307337721273076709424817203053088629143241886057341197649151338846331955510331349209099742417671357826571159244720209581635210525940869707696843766719769748016556261782270069798539769001684945745642099329205487599335477092901518872331989301486426331663151204832998883155604801745202049369614809070331844091116259031116750354364331600836738139381746611943738017440532887410528100178870770018860835176999510668322328848383258307684420889765583764800048297321389228893306485636400474185096798458195239503808049579265853055667749747609990960153176715085862318786103870713263813520844300864323443891367663459147424777927535985419450163986131318566003023252941166764338126891984424028812134807596777245561844597068272415919454084159257034703777256720142967234660495379492250178356727843100938112446537732927885921747095955917383051490378617100179836426043304233248570657484931190227008349597611778660194598759253607236507996316459029493457732602615871525961764155594102790962816837453959537417531716618376341277279199785477480633994100138838036993559101942634557462222282414755995404826778035985232795135114247295618532528207522703085934857289184235809349726070300043040203688772365150709903670373200357119824336298245179102851470506068170461732641965232810784595217787813424506918055253961643792943019753372984751366081803440630619032781463196229041973735072287413968878363192280223297485226919935588029807147427807305110615652742747400556292781876248388584525929920006981684582681107140938865371690044196750731172050742202211294701942055647472092792059190178283309713132552214421759771168532443808807969530028652359147544425234158882556028731694777203456534111094829410499329396155884374356067004713678840914218185190532214467413574431068827872861276957173463161414717172267585358507896282390751101873707065719466712895081555561042524088387588681195310183639756964033452179427011806610072729980106786041197329786022616611565040592818881872054463076812146945062749463803545664896140914057977686584761081466938569361632890838342863039746071828137275825195708514961001262054348097006473813658032232880931940164216955049035796454647355156648660000663635176520306501802582589121140563340333296034433406619657166773116854187582276819376808035614953853369336487306475508723867860993322553497895121929314898434485656912149764833971319956499457449294757491158532266761909981516551891732924840042173869421568385165463783975886316431717439308498706514423051985963593724690052986971575976861623328787267771722373380013300692419138295857462902139872338870006391515965828649625807358739132585245607851856204796124772041673836786009364434939079350353134560904299530204471799401604543974406231758548564210403190825872094194390295360266589687209601840059852205987925134452943195386699711803283178867196704893530490037630299275340561618488573758790891707294141741182481184072088838038494399511432436846367072510264759659973983220437910451548848128922700548487674842125347271677459369488565805933353702098104673858345806033235419246366095436332555058454441391408359277751532957969645614860426346754693200684897273225552732403316063891954658528798567334373163566539569495572577557144327334334521137967779472793546909771495612480833722786224461698996917537300326683220834679384538853412041286047434045390017389795341341074858019474944431747529708473567755180384970135026750218292971618632674664631339196749680594340176123375662084237596819585691826610283555657482945270495849249908845534465600737506835655515299343173195003666366909808645197182420540525194718537598794830389716630888033382960924567101625358266647503775441501118442000197962564389568725792521986380303286706280788254851228262149386558910515887720200713506047264617343457233279446239395633751621298787229173159184626445965372877036967178321588536788625231190708446513100342701408684911056824850337104835160563484522395378478570847012627668722229085369264445635322655690968765580987816383764010005746603757284757112394673637148783574418555856849391648016078971772708899386838615192256879573614921393912137368127443021931903956402488095586618018733753772490000705266605092515965487262607222832353733774307963001040375225607015640706389711967401181758984940652582115639200717358828981030092258955358095298664258059222887772429441901599761747631639124672689629898258460483729671299450914905120227268261721487822219788084247219663495151685880148874818013427985009827883856718902671229588414438148305841567380568766120606630130273378592607656324051420129336043877506050984983878709966526889734800371449706625008294238653935527100088998831229717981769039482314244406665419351020895645795636035226259537211015618273490773688403134271627595335338554546472943356514060055385560364174691598706106147338167259771907473703444608424740302710088824927658321834046401643217268937716253648124607680540356757758590473739682831994723028238693688670786884625182459682863270079596832972102817171582109457903677113015411031224320180063133899536174194235531293109342023118921951368432180878991846378922032855132170924698358556347671897918440804359787024771339941185491130410172543225594366498699740070699726896991752665428066470563362540826977258442532539508436730230750759111887718679597236025659390690761648344599781808518600298780740098909496206807851768773312203347958516625977482137896348573020483070055539182138128765006671134733365366423998994530149761779767263583567086038379409722205923921760200180439804699600680178141505015128205938454951366665413957092047963652152435414843933527252894078219979454521764300044749257112857329377955229042243286043015940458377800905701864256810599150361092484941131811833478476736104922286102699232721549852987890024060908805224423651681658787085400100703856998847659519539015978557643263320652042706226309039882580635402741369558090774106177940398835263379314927220622934665651888889278275322926247183920124354270433660596237453749193376835155294775758554914725733291579391829435835996295251476860964602479943136492839257130329965651232681019404476743666297766809218976421863274811123090233950870897192568291608204431189364051655097922113046936683031481368723064421816000939706728329535550134102841081807331223319608769147810629601876490006705851539720040682423179110471776622837660630868156694158204983020483074484300058582304715980335544015173960571981134105907541139060679399608578171640292377551969476961698981980517172816935006230390706726595695463714969881058742001738091818337997921573812776387570922880304780008346359759320315481148193749500341570415336948900387633904757408341563468757493827606552419148502972622738826378513186677068863408995620257609928925281123290225631973324779012124220814065531819172722107992597972017971860806686221692232185338731113941917270640515545570320412170711508636874900946851509375784919938343892959978485337566621802367698684820119124642198767117471412269569481051090102630007475961042601104669275051235372113387574928834329044597567304637235865163421637065196909522860739099412788616533000483827942497350245522889884099196927656197721558739270934651105858761238713533670736397706668391986590855100305987755903906567037721564595733061058087805858146443138995227765790744554514375637001712186027310685354972437636841738964432280201397830976510463588442658366859271659580423726624481489989327010846135441701357596476661083986234934942087878747514172266539078724018004870766564888624486514473167608226041962710093624859923491027315438150673931864400530975912415051286686574687659928948143800097482403762979932929083302224634102387259291288143726838218708373566611744598195850346437940325050495847606400535732656314219597346657779983803924042157002347137427439137063156167902849516479275756837522022443005932566633760962665767512567102590127077691715871417900669621508712330280368579234886480422150739199666256540859855894487430839736175337404817746654226263684960071925788509083035546157607996527911667914797867772697389786149907264513280964968026938933357009927683921191501621138775404416658966712138964059272586939554896438950099620680963221539759076347998884690068178452632357069501172893167923221506442031153875185793048828933162003257345345466969038747969481260770626952085557579608675727328212316718442931871012608840196726455367802811456477065323046452466936353372161638785321941460829281842731066061023239583942489036557233035367780199313896659814562305285951263244756758729078783702907815618106183718600023306265213260779882465901485565930216383210521249571489249748480762454012309047292229023994073776358173721084155677501576623714469513032084460472870738826371378590764136596564419928585100198475556579401029425058124012155966566772046011257461857120322351753628089916960079058815395976740378903905366351045011520052387900038630643243389131077875245819534830298465345910785098922750328501354067447121608022687952237089892480173296451430836869961121396141680395547004930309661701118445306531556615494092682198970077409176218541152957859984235829546094390785184717693843854914784683461592691587413602452719649596686045311186379813806330699321337764691014104993752125299322039094900972568847403633809651943333611565614549276762613713111643711783846180976147509211025685025196554871760281362409370709183294094969299922766972648762035756792526841287258299530692667316723044121830791740239744705507114608279064481412024778652196806952122054506064912278549595778872642397716366238812931690091708771077548774654775384407586031456320060032300553232200034953920425791206230643345006516908997642302889488247825147637777751712564075103972899732771897679466314268936666547880785441860085534153399085335866881435763710102212034155482787506745371453859855903770682464462058206180301577405533771522846200190384644276614640450899274385830516846731942547900420947429502238725245289055371400076942213522989679164951202004705236622410609560642150228413646338392423100003457150008019766831543781441911743449603248670659881230952906708701055837749475631773709503757923726812980004867121629988022766933098844089743968357366904817510579972235225978734112783458494660444348777787911377717581217793271562289675461606448501689255763950824546681901574063431210074284414923635731124914486770390058738426908555888993212053523779228931262739985228343313741270265948989030490798818068652183693370823098641502972042280627415616804812139997977410369173080493442758784408217746756194186532090429805134737279915486608400576248953248683940960886453756935094003857256011349085106301356476070101972733327691673935145047111077594663830348607882342884287023844588970027177009189403440213850758637483057524083064712998758583231415338290408300960406477126485445938614792810324461543330140874061339822512936128998359278957495201767290965888168622038247022689740252200373431249585014682718047168848804349056506876965973657269017175763804849528933930773437947955025703248229883303709662794041426217542335586519496571589723410863427432960007467937715886746140894945443093355925234148149640817218518359032489372747248009173624702541905180386671291847971289213910050577841849582828178565990133014829848546031644856212443907794378511431495992048212294670555151727182728254113576350337905698453884833068472388749814775759630857270456034903972665989497828369928152173823384177526536880422484482940541931209306183356232969522625012871712488293585595099478716584787758507374383879122822542160024020245093168047097814583230439607725483746045984145764512336695654622503993198108395415580410452296928042004493464436888751459836911620036932254354959027683236063770104926275680551113259739381025507116579224392088609087231812822362356118949310718632116278649113412509726739926550994391331327784276335444399633161273645698586874461098431543146055660081889630452148452970074723425847087373089338983923481204284192039617480332220518351995309376320404207860519344884596803362218063657488175905253106863492319989433751711350320315362895988842567192612472725202626573977969542791216167260551841264332970569561108865093244810474957954759838431427187797753214039443297743380310108539350839132591482970788840805049301784690038304082598487248641564201226130443003664008598164312963641586134579126945033032301157430024163069273593190504275691039486134255230173471954970510538029856433162664636210979952236784705234010459655805370969196295460303083114471286149513927730204481886156748932779306150545237978277878061960890084727458214862590038924299437734392803989912347581405270878275164246849043519504977019762511495702911787157771502111905735845751075674540020398800408658640249056882073591905749292438523060829919649261355246849071217717827141348429915793481512768615587335652814557852972158447140623659757108710138502454027390795572989261225171391042844340996068096638860822539368337719675719894004438672366342222347638146607825439559915463519025533922436572857254668585677201934864657347772868889253431518590168190586814556921495769970888462070564587255022698999820566440321094413012045440092272049166442356751281644574624820677313834169158050264554352660876273608795211792925502093892342996318858517087827067440078194944696515009854265932115820433778250357657185109351621771934226764289046097673416254434757105670952376718481020241997623187777488291367712454868377404939558541857595557319561686680262796840493140413887584109512427738765035427882156921159143710381775585789523930443471636654686187042096133948955382497325020636197352431041728552071541647948675806788712825094700273659773141567061485655814729662877591028219411309211314854529527772120519972286604119587302624177174894749617754642175767678204905526270369042610118484461989887207715692759807269291623017200023793570387120706617801383445294730089405658871745190696681314579598289416189140652936285047929852461214457296345747876983915798331148354116942358172943474033032166222274311054108198747749928095432465947019610621899999284901400877482377376849801007398482215184819748917336771384867424243175451502792566202021011410654283220451851632578831624167905390109549673142185158376645105223111405804489814015861564708168107007746009675301240329414853314194847394734489223414097608659714593495002157410645219240278413175132918681108158062525031792422994223777082541730980560038337095269368521027413396109239656640456122087665815777762645117036045549783812478849677187411146384443036973571515978646088487043404395236322914124164510237570297161169648197474390710055941891983362793461087775589831126036600001534207032091646377146977916053652221717587985566231425120584239713366641117950186062488094579661894080599706547986571675863459286482102191810405567540948039349994551288522582339807890681639893408954266521163749741232692863985511255209418511195345026190765514797656060492468256254701607905471774087789347584072257005035317107425154680640332409194491193476992293884136070314288038507206097488028520419485504439725634107203382860298731108923128260654008251428402369029722236193656146185908555374749432890067358499825046154787667902385293910109049551465544607700849476351962658751264542825181795298406052468436108978999442500708088495080575517688253407870778467227048315046645331111173750813892000359533295097942461149508813928301321442360502249100428777495836478629385443677163774517998417479915330081988059520752476036758346097552047777184931204408705215190281558588161395565918140260635246149645977913580782165955356628998795531153825213984184457545212531745143177344259940580929975959008253839514646154045821613410475582378089995303164573557177201444184608757432010413367041679541784461576793783042339142688972122541876264255810342172585887528364780427751107973715712847021741503795478328922424685238086490516553858398342313994130860336922647211190851211352211052379306369018976845259935147975316861604537027243352167530771842950429624650598090626691808553335898027825102029331259618283149028204078346009852253719529040570093818829486278384892498384499198648521068418617566801078488952823014631037412743690267753104626111961297372298724648181385417620854252146520202565360485813862574191349940767709872619494649259430743574091677361828096193416602765498630218719793359497271408368372228088565353977633262006211418846737622623420207121706852292213763167918121927108654427040440867401352397372880224944087192965348199985353669524795481781880835831405852597453862346284285998216076171046477938393327452165302266013134495627727169751014783354141033540608791323754371508591325675324241243047789799154289936499311400865684134452892781903956096011749081777503620102184652127668253752203051967442976737009590530561523033812107012000332273137262577451097946442995839643480688392278759903794274495464523400136958857848457294773904619862229899420979244459093827070237915210870215849295882645787671868595015858738462549514978794725224691461850333185208685174469525190320211235299985691576329766009849067616126520061933954829646748600589841410409853826355579835860417150285076218527937539328241791029226206073406486468700697345841808199790288209617986345689997821137511518180116435138525006439472017438723943106697286466539713764704886893141237159204627181562110845683433936920045245067569634162090597025923870148496012198087266252881350174220100895522290143836747119899935957712864037881383720088180457226133667901071335805834719530382441684572357159207669720603262653507486496423964266849268164474658243503991550485574852633863841862998327086999056128680209949629747882601013003181445017767431360495943229605662218698900524553187054961449041066513724989078150289690645132774398613374116969953508982658562684921189762573423083061613256828640402725297160677805369688210705563297476726435101257028804105987619175935761306422526411513509231914285088583622733922146097117510881998906207956086396419297123695263131247437699050917525540518875092371417423173592732626022927624380156480469751131590701667708336154686270065666898626479597221833658664125722410045359860439855664673130217849695062157360894187466444304760996012949905830643529519664611479474977551879141377735995904618301124703588188687144955022986960257420187703990941880660846732663964740518082146703107454068962978391131243040099690552723053691558754880717536042177172032518260050118433325829038034010144044114800602772946236964808379565587304850381388041057858153881988711258550386452931876520034386626656336878625801010157975430579665345027633941914992574448318942931334827878016925893006237660510393079607398187649636259667927205379075370824441764077222768254870263580720269698069228697182923667946070793179031506791746622872895782682781099526513181153564039965761669059737037310106861064247822508322762654698584990606541042430599086788670926534323007344794227188533594408185337534660972320484498162949117271571191504131135469292487830967467898901037418326339427496659491203295540911177138374167857720369521128851306674145565403806926481518152156010032619213949042797161816736672155567237677610753594549520700111784690782368406438605458628937390347417574160905934132124080324313423117074602610644797816761019951287170213763878697704788367678630823156417221420624487524609664888593543023219799784729515415572843694689283119588471012587901211012570453470993919776629424460527400208262946925189145807848144288469933147242575073523254332346816473093954557065102258315113148690827767782183588455963355077024221253672486233891927210946374398247467703332363935621780859363119019977938600261502587381201303203267797111464937141022947293898165999229355914862808772740984081644190625362615242061077998004736618405517587963108584009140444676497696520558760279030916133676216257460447932965364515975951895510742719749210231750341327508495356724219374676441896141273939262611553810080958006278759730602328848334091537412190606970628219982551298669173911108770795510783577983374080329979691905709330820615387689132668571820077421023877706912518672653360855092125366204214081756486849979810029112842700935643517057574220499014026191415314964734771394996879157391433722773767600918431041745065303396055867552574308327986200399645055325999975085775547631535126959226987725772010636237115509671803355156622142216817852901592412047214294652213925301286870531287397461417947217411823150859253254651911286051805736546842382987643257164846458511661022846931637132492457057195434862559402290149812824260095089756324912654685866604459700366371309156227383663776734528111944389011929003584571204498393276251164229784103652514385192994072674674649114239522689664521119370818113029595584509845535561315684935251096368992799854658600868414303338970276043361457338761384882799744823544292847650838859315631214330446287801028908767695530111599437290646509652624672144014841559432867391372113279314902397985138892761085259385008640863761710589791614171759038110428761016709478735364812273356879668392049733648820953454275127908656642619359597931553910325207208780246474492028793556532696717967030949566585557611804221206338178970852288743778040354323408586623972394241410214936615997262038515556366440276556255416843711606541348127110868887412745461746636904713395290880589097501491041387636683107400766910044284624942164345760388749906736947760544657777180865028159943802425888921184537873446380298578123096798271566171622241740041155372023717390430635112440391934826222550695864062081466306378398195595604866518340888944673811822972645853016548822807807627939009928713997622622512966735597153814316367200746385937335709968696479034954378825841824824672084403121209209764163547847687478930163823273998506198382642390601266921337116094268696901348904358421726274989846902723587328687653416709374977564739892417535533966663095300047908490413380010898431412342211471257575660476311367432037525977807853842834263752304281829615642676630598437237594164296238839703473148220139822551820138626474157574952231564625049927913976042913169050586911496255574849408441795894535359530574577668080670269050210935682177170747738427921510885614972566887062747124037774217614466306594756485516839135996133847910463658131384629851182767234466422565107890212216176506681024532223547762733041796900036136429104424269331980951395656614339541632607897337392270488531331421939750285262442971117628793225571443228023002831077043398259572804983243380242374799944170451966896140584925609222268869357069035698205211606283670090660304487260739000765260824864889993495160430760980618077467727204760430850859374419786798422482412997281289028393749478684805875046111149671400277636995401613413237475462029900553482189671012399746822461522651143795455452780968094149844133237855351750449029943313557386352612333971559370253192620651672792704545114052462694863328140835176472064789859160567913363604308206376027478269405714501051488357778602228185762920238454749509593021938582885102512884834890330016611083194766661114555057074294031429384170273554435051492503010480605945702767035849050680747095937192469344940274059223826798564126971300260554539555680128604092578134996976393509336275537557853674107444282200150945076072703715517321721859372490810767083041635823959222721846139634901390226377970724446408917779660775344540753020132344958574975167154870601603630478753665120766098108334923884738480882494341171820991843600145166291470906692675892221940510838367510711420269093795333047053890815525802263452703112548278537903921422158141168567830610254154286046304001952169089171483004625326323494066610980754688758337675271439718799189459010460654268076246603883732757292583084916316089708761801160376162136374352775188004572677030638658815745839101735275554384613264916040992042875357781970195425872854044199633909454800270170233555521246725835143812402622833820788598527779018646145950643237788300053325927809105289024040469184314829815560336368572583375288192471176454806978958277902910301014218982153368915277813846281816242241696022191240915081653009385163960050913016071608186163054375790024382577344627127532225249602131573958051404191885282343731276991228291004489218649451874180045968185542857038198670308959985801935910690696205664441342958916217046563945201554406639218829479302158636252996277871034880799538273546639598812048531478957804050760995634768691070627346475634720122647845864762437434959684197013268597273324152689335097296696825926225001382845218953305642253144272557266056393879775227953624287485694317587705737190679530038943688889543876715850866322559323745010981949356882317907691078643369375529083719281103220360506314424110701787679926428602226067643125631625290485205591980605467320269418081682060881847690225750170762464450914651164434712502657377016967588628125533440647545521341752756485020688061110398637236303100080140805741637597302214614110739882638968259461119283651274110289644969421893195711162034061443169000923380446370793527831541412001907752214849054357897204906992567374751030460787722092828589958760012685336271012399206699150204834353499977554060985153521281850061870242581582594987017616771920921618347327876631227535377591071650385317441370753770091579060871587428537307434019460015609072302969538142743164729032470632517693909867163354077974694641121290135666823397087420238399670863799555659409150965129180638088298039760883253870469009717443696909774354883591873454438416183860830231329053529425885652706840083254351252019145521736177493913956350931762963689406732216805473277612815368113582613423770692982851470955855502128488241341941000645423547197593103652269063241350089640638131848955577007115644995477901169122754148500641700468221772523393177319124926575872528725777641576223441383437267959271589407194068517530863336616739607955627126565362164468569488197455794881126057061697434843588481679339255983781414225443359493803248366238765467624342380810001603410287577371823195859142080856396278954842909323138871150982726634387923096794518648849687959308136549861597335764447272676945861515657178724636002613993229527837498874850961740245707027016986647331679003379007833199197299150280837184694737645153922503100118517037250526507378828361075281407605569021856363063761606278462442790008967123114678673339771591119590040305109912225189596709391704017365187853586905276760355152819928813778319793564910745610857585995062539031969858122314334265383682164917239974404810941108626143418129475720428153370101758052216838990411282508423529241171270332889465757879818735004251238941063459293572829178645779054298862477198418979104043461013226283460204946925177296655912801828496971489868372401767616436046415023275697698077153854110807910982717454358052803889963425529474645867128776957528974485729926074820776269217509613539807994620027302252607103099105915473583683003145213155064601815730020721813187442102578246383632983310015891143413108556782268455393730966575291282434258503346532415283586169040934436807348281217273400151427228321574422961101789232391670305137316128896438373684964531734458849603794687231084977680931347619787800916475725751578322617081050086052763981374251908900427451922628883841040486322181008851708012903231277079168683591634727250884464604857302096931496743802635210160307739914513424681966469273356963297242041780938497833226731179948024350797448702735966983501196267852585922526959802919529365733757890016264749589350396736809128369122175284724496807672551396521901683186322250516726099473402582056747380619666610150461114543313592254023633771287502683589813633857275436050282786295108618884655459794686123387758139322136777780357632852362299737874182276105253625437538953307994155680352154172756089750185582439438680997628140588841221100105768926430439315998667746299536040148505301619538835393400726043020762138712432372049302890883767612306357949672721402365884424953162937148765536419735352245814245968803337048738994275624587696441881846395558033773664609204697161248538090845935715905242144688829597384881251381741441762849637303823097494231059775946150518976457159299744481198999957397219022465252781490996169915121962794650251053222940027704420856893510560281357482088299327038443999022590513862334219257785994294211708134757842778265495219390554551741151505935613531099772298686108141535091698357756815938203724160925183845614792964598858324460676292970384111166231486677640515777593157626650614796257259477535042221531521348823075854163393421763100231567348450271719713514420321864803815948202060784825587103339263150612442523168623979531912446734246822195246570944583447737984319220613311655306877108265519479477304041038376754338287126511454630697114562527874123797148329616155898176953366308961252455374194074258773023259461533081380822296318067355606721594033538574637079148223479840718667281447080526395784741587181642138129811607020683758568596958277185180604385121397398320888080973414096762626713158521824332862740303797221622468044828312533558603425071592828140350067990742600419927533525210809193923902492185643451479013878285140645432872091735643025652013161452786090485503158558233303737307725401102105957561234643012263658082932753105371610613659049932522486104102247744907779216778121513840605846685329643723790395213263223243975396979815230112802539863009449457891717682322396608577538671682884888969673766680962446030113841862432049619668315565462688653621493293864669066136041498864708187531418429070605696931578681472378180408443312739144152933722738803374364332114429565656714225407312929816634593386103449509207918352095502842178377322431555325107143258156314518570567439637573366687649683207193995605284343297913175899739064047728405051199148143038319188430783321713454453847447990622927753531967763375875232325220322887794706000371191803081982993143933341413715166003234229029992675771117477095478177129671955026795748466482810008713782157951857112637295895639307739065229247726305777710945257345886069414795016641588684569175794499600738776033461610803414023940031504639759900213451179927007270764560479664548424191381063155436243498175816697964806904587935453554874318126818130974707186901610910265683172862141815819673272549076331534657619768527212438533397020061433704562003199338517716591708229942960746189511938237276544836309385517512351051162788226573470968863640521337062737891108979238998292653434188849167110308985192061663618314104211234271721342686998543480891317971722812100039814819821821000670493873243452964284430948142827185052906582517454861652809653183201861372925485232070616785809342027763274315573260816049672294011303813204032589710451320878960757779398832026621701384174545154979850701509018322956523008631898009190385701864412846753968867487927586867254878229792725646510805921269122510015751579548192008021641684857571064844612448397738753734654628767482977279908010200271484200053850547823187406943747920055095968268208958731550557786226337746458712612884577338018374268104269551287412861759419244702505938516850810496126668634134264367421102961140157937057951970189587914696594719714127580793266451840400230058358799658835210786964974658763821299459736157510164139397698122563681657803054398380380965447817080706723162149589033174102701970223901378141110271368819530314965939017881789646517122775761425040681738884719856342337362823166620682597625983056987073655551556893710867642164653282575555327849908868924990240801770182775926411478212153117461447711913041207301226840663966720377795830988676859335822814186227590003688447030633698009397849524737113442443844377708362185039265437320429733442967321292492766995365089299708181791703871097274365231105192225946083199668036531852515498247129696309476506914723648607137806865701755536718837146018975535750942341829402029361189108539394979948742483481960923083948142185093898988344073364057399660023480807631169494849207916156786626527841012223815953585451583552393392098138818415529793852670984014630964476573721485723669324929694613618679161700594656131464450916274603337824429012864399574304507852483195372717009682743603970374464898330539589666316799536145504860254854757103729699488224896351660269310988761323099484679210454445632468036501329450385412621520669243650945601363454517418355316950658120541279107704004489592544054959846983202987854795603866983874357448595787747627296007667717194581469433752792102039627342164445027714876133889919713350443706723275502501573515536581410033349686735024978104217094077875822858974934761431557279569299377595427756275489759110073103348235146536147742805364480589182576784567363926482583172997326052043147900611693244793411563961527947155792768650076585157159310372744899926388208946061077155465683355064346811995781856671639139270803740453674347944260521812318509199247819498752444074158672519504000091965769718080924269492615419431013838665605979156973778763057226090897452971775963388846395054421068632433824255418866593542155220123126109452723899780474797150905058026986622662645005201560290904192572234104508864364490744591521705070714417716863480439925077681996811343019136867736698142115282410830512649924705287172884782385287768468926895741121551752733473383556408663589436623833226237804767204268261787243015991405820014747298295773274236362722603850902148041723151638727575454588258946369454181348541722646762316412456521671759875576815794871901293831075704028942265625079139332651433610510506845259934096716049068347440978853023399691360352782319972625881076846658485868642949924816747265300154170235252952030633804388018493335027206057580577857706416216139923665882164849666093682473408876270141365330319350132829124629443630510873104527017780143485465806198884113913375233842662244367425293570276152274736258168923734504589603044966993837736328464916268560230774833626055039026982498119426481196092456128538486963537523723633473224361006658311666186006564016855962505583241811156113042498352195948332147432586329946824814021178709647484070328376618801828351778676994522894881368702421011879557328649122454432665323143656010999014950328729444709099035067950420571698061467088042523595883796830183798972620379422874828602613985734143518846468838810521625016305927239496388582097768167238425810240234338019681200175900983097653230855123856704711132451875337501958762108800671584012196648785213481735887795424119497854305297507757744648487424615775950460808926064607359364479114195750948141316718842075747246606766584977930851221006296370088213623055437158996078243323141265336973640142133514210263168108562109058472233526150101798699865492949654742885649211123973540332838351583153915460869894234956160576253483875170231880562861222461552609906224831659110060312648705889157366277093073587810805818520116261934581004553499513007568724846800508452322237201408501796005797292806949351703740486846150051848636225406154696951897570962447567290939215639403639278222368083247246860426307172899797540337857239156838700395621538981428884988171618983483465984785311527719934253873454277294266608814336220514389212522007050004754791923583299895385598723102054452583304952960883903411118136755922569364788661647145181469788494088452139568044249614894640701628863422040637132095568739064721806088786846978964296693288896769130310475309676486167586891741838004939894253426372091708889967478358525824511200392678514387197579197772227292272004286286462558211537343639727787473810962960861147011735261540291297252521231452625611853100584812311782871182985381136257810294906501167745849753763606559135434292513584163174779751588340809455640906955158711892402071032390613524634340693979015072138503620438305416247472502246751812841534452815860970697965312565181787572839181775546502335500875182385009096907247769421331670185007075880822031479925377916693567107899896726729033407812600609729583408585589454227135275752216067414465233193114316361691168877030854909035476271598669338086497851584245741253967655714663658417382017286253408599159813284460510436004866483897734170759294202004420804187150158353111842038998440967634463530292003184407566704951272235687435509218218300760580642819835533841933263042782745115453137478769213341571249353941841528354276738589443960212879453575552896146282340146120452896505388267824768062053196572616909739233805324028584866884582301452556916826647700848563061300731828209381028025797130715269288396569713316466207900561729466726776747753971144768607937212619761928065568827210202098389523680644985411447660240147950479161966357275224858525100790741162196389227282252292502264458314483968372529987671858767764961385218333422706970507823453391488867244878087997234186925254373726144853319467130846974414255071386352521636150158613732819070352851994698875732658794962389796549675826767246875967429252721990146659819211781839671250451298345702781292778729950297063289845436877624368197746507876843340415721051867390332246315718791953343223030225700310667628360890133256549879755467028065982464968285067898406923231860058900298006788028097190054360104841677321686483521754748085517152147109864938996305182851725769126500716524370998070953788395133831406491376980322115659846561518859731182308503071250731534958120230492713750508455112894903308259864967153464364752083225633654481883495025311564048360368375591460995431707236630478113255436504518337855150363973045200259137022340592984476931248076974806512397776628321590540714717206018709557460200049754125078254678181819167479021075984199568090020153320184070087993220672216840350744916720568835612558362765645793607769131686947691613712725361223096741970294666056133798589164384998156539029041401924058468656800820310213648353233745014208422013285207626730481589238299062074241342996792326319858266229665750325311010483610804339039339781536264936130965701887732387534627809606368308299301552822382199123561243837171407933504812871921615526465557774156939559345811948233683999547674551596214131346665734146552939696789175676150625021078050140273766341562275389943574793792564009285537750000564565655287944817089185098848430473848454329760132226464620251683791838862531310316859361002481132468519939128197065724103797434416811176165001177242937215819830134813050961186106012991415090536145352853559470142216868433598001780714699124056178124707769529796820325021908562561419030260942404390248425945893481542125789964794727249731711861511323172808585809382500711408177726755118388367448185522270223873394571932387924599401870851835639690501394785099875611856036260988499348461028621183063932329515532193588539867152830579744301562717330873199203222852349069777592764670691672714022244631664452754904528612940741841509951708034114867770343863901237689195202937155655259003190374829352166788921583304247706590795968648795406801627086876019753165933854770070080430108288558773665038029243427584931393161555443264162976381818617453465790951765991862893524424254203379594255033024852551692486662954651932852162097703244327325508413631493703509269217375501882474751412331557161962808532418053448082198899037119996985119030455570393971989771166442666021809399013473520075526574202021725319003498230861153099313535530902333364435033398943130538203170445350013279295499544173459383849869453177836374315965930677893453829757696385993219343593902722665121477987767073781061673538145571122416656359714657458211882717464078815456289648013349730700398024345987450319735576939955522853284652705548328583273788716892397857775434638537835451853354202781073459145091138876173862616623443049180879179939438127510077760953387078796257469173871599133534398846179082765431064285419271459382872643060945046882983681818333841935362243791784099059096689429875095782734228077323476985869015929736424644808845579859756884307509978381276029208332195530844090470297933823588824586108269787309538625485563387306289462805885783458974312133773798435168502387196410720232198425335539363430489189652722620785007515178476941339407690864626106448408890364714409111019150450265893872416599615864596547564976606085573178511283131203056964347015058938891885677245257385527011828259624926128836332188767809872149707319658170504069494245519719852445534276369107462034491444050490756856497049249862685891340237253157714421905025869021877257117189168350084964772664075873781140986657709831938499149119452616410130043512899523593997092672720882945466048998052144333323340650076346638467995263977675992740917293203430681941995765351153541577544847403858523569279860154545338477417114031759537722336810776645749608550133719374017332021931747169498621683576937406047074471768995062454837957468780333084681991918304133157760974471798324310178945172668412922652267698793923867530595565433376712571768392124648518954620726386751697366998975844710306022606873804811773903042776404030940869552146368754935072756339305644855186742623874191027432330526589819299207094405829382479696566620032331970268192187970383321732751320064165773579064261040565387449682311470486352000732116046407995333353675519488297612524819800312258983448399199107673867070482615285562411745076375532331684034422277580293037717271886972126999581570174964990127127737585610147334966014014710590141687212157618944789607308772290999283498332984422026573768212246179970014930275438088138502017132264177824006910620691192643655805649631875081716766608509244047232734159304859185427340423505683399128681194005047261305032487180597260400450261121286988974833349720969995940708628799560117790679964280115628629769488734454944831255747325702555232469736447994764512536854979593179361533549442625876323110701179893555066155656231630699706946236368723996817099956103144891597520758422107268794657738815273537009895332146106032046858083032723759792620192102252311032138882014354033904634331312978297709284579191784744095240346833007088260081946218675653715676121835572383955354992726655590572911473114235917987577373336641374650458866384538326334144190914109993473846168908582205081878070125743357602843517464981853988963556085951614807709138032752426395014695339552392958009623518229216579398881207042348451619364977833435134530610248396965476202675906513071343128368438378856769971034883313554561161313780374945483177429084351717502415570237524550793300175563305746543548406781294374058072052715471413823688185331907293370564835719799764259844234706592329684838615011700466554628661246196028390846999776597999908328854435234473921245821150340919191718830973173098164625175128917747673926278835050924039861049269102762572195843848221705361407322027471319394773042210916931308308789242763003637892689720751335519654059802162735382757610831640414601493646213290333884451931111586911076563185679368575674214335358371030376366401675254443987917320203550928109426854058098287621722136186799211690202449810916639391722916233170352536913384784157484185222938467365880906252335724477132740615724134643953397766488697765903540440870882157653006015245242532132964062927132908027006055197528909854694848971134114599015275983027872007540210594390842267276248293076037005686195271543631291951437736896330114012476549786360444318028027527529520635866530149584900912572621431469849184375269428333435519898012771719859439132646276276932454003233259475529584188943615995680772281411590041299196581154654728762236118573676691234769613723604688986224945507739233809625816348876223914077518851714829235833526424761500739030229995102353655639763333207943328010473842183948365075532245477557008892696548324663459037683171614992933711070368750880429219969765549433630927457858649307517827270454210075920764314911690861037789565118650352008323585359029005206080970574291515292624848383592699360284942900982529032615634812013823649426919763632285456846819954002899390673716932235254203985470282401418621284675939747164580181858385761723305358899555568969453948207074184961212778174796492072743481969171614266031274884060503830968020235117945295334893110708539113807994576929572187804050270076311934956523924890507699984893207711022792351599822659456829752280317633795592777552758573419957620269611707967329990815616711072016062867831240179743597302269550607258612569900226981958291983838226534923604119790715254796309466314498420799550337972193150519162951462965435978877828061416876895177204842293220761595093345402043656214773291901703819688916031990465807038308465152620682876788155130346333901488343505318937371399043420236330886616777676569067335502413052720374554859863340349693252384988649557333930491510223555400394272851165211156130119295233176981531632477964053221182202243825401569903897940938759567108217448861228888502787480743845848760451553981336019184321443841194767629861489283064276493835369730680594541948092108346786818769114612460259536704264465224298688533809831588502366930253070170916156197944635765220685452877579913429477632948963207119547849718741701545564814598176855012351376301430276672888542884019915850580043307539080318574429460014659221498717223056807189674774390784537352688153200778291581218234978449202552816851196949248662191957422212514702272299757416686161915231753436853338722686576313249293705532894979194764633567768982536357612973085238736388311761582219979417516316800035131401819236147607460077586558464435451349782770260919942268964051688516167857254362680245350924833878749980114713632836970739287551695789099663465858727829623289312323079000547482183037273759430088080007645487513543619683927762551745017625115274565456516924722653248985180278393563926460526636873354018594904466997262493115709748163956257153662923580303163118781085667555219662660460045899208818832051403588832214026540195007554563017415727843000901568641394441893666432028140216822269843504753560627358847955690326184733454931313704890819884421473026547731951938490681964158825136165824333337216174143838916362994643660196757902810073729566412411202844665233707207206167646485493335141868847340308322213277690829332780180143395489317782118413515522246098184304160588715749216568594720594843781219326738613794428150306811957943851797984705638082810536035423543379558639425961481368942557747378060354415397042640717215666156963921173768902686922202878956556849812251487977050417499273113391094075766390271207897757573828568225925301992868599011499047808744450393256495448375283386387498028771043121430086204347126511390454941743781344624905121097212617193571634601899750567115110226891231890817836382575682694447075168828444278640036448530367666925512334272920232665803885618310045804448716017752052351977267165363729958860314202111112352468224102817988069391446104897989834116790927924079424810070700265946448717030090954221129093557489887265381372590706396521261992866761663542291699656901569223685368550968541199747959118290192749538407156636309864879727087882334403101721981613910977642788345355774846961663358338336271756087546408817435849943981113984312736738668529596903997727721470408839478051122845506682406131983976405520691727119895789016424825205219946219720396509594397078024551507026388806425073603956897219977232853648929840015703023247234480895557060139750480025784876196498282061934540164218203587361493248184101772112307168648286442150285033382694359065150321606544683538309364181344227548449532955067263610918097362696445537281881584160274237945651070152285082470966389568622718725397544709408756363301414365926320616494134792238272360421439367446042436094537169746280726612746213124453370692115888059004721153329608986462642228575427674591617900422857259264892444800484868451277518586531771749291896265110298814388363378779957036553494528932524014707039466601808091016009314148923156181204026946378334848562668461453610953801230486079977206909001531109967314358647417566163246613014465446944720264646066090880573751177761923393256346300939877254703364285711191067188091926225392910018716688005121921602279944597983499605864788961916320184599955240755861109743353923891933779348741744883237757832761832596178989970072264829994169615614352042794345846275111815627164856920086723036771359481608859498057889078100411991695084990252924256841441637039760347233574937317206931091267604439556952735302926293969225637272578251948798491984943871152089229691218098638350688934062331340294167968874273223340401862515767631665649533715981727839539379870767076482335978347845575309619365646189289505131949752226601080850684523367550990640163409673272251522879179015410001313551166717405618695282421897933119498015518638926325789456259019010774778233799711420306247252172811492207142326688173479832899614292253573285213115901851452293233276494662261633304537590380755262134755022353593951408190384509244646880773667661534082859871753472294497734994588756340598748433400141596550262431217113112320884756616085790808801204769697902855028752776139725751008638656339193058164922414140494640253582386244828061916300028513731150244081240148214354092960712025553006700079213593337041191310603677841586302022866897950272107014870122319708421540732401317782016777607588465080279571235771589671347665504929252448846417316013997717918904511535880630819484696011488977047964486388090485866427419102398719904423723001743163638845156544742021321961789402584835135567689454381845197507628168399967272187727686663305479959992996131182098380627441292209448140079902345510256442701422733654774121961072233650909406137028917173945456481332969266557311793146511126565947803321805802634258788109674608363701530509079395421465535670462313307527823463893332163788382403650543875093916039513589036214955828623182441368864711481143126296924209309371083028437110475926388075705054450816348982069121625352748800712880401992160686223821067224533908987944181336816310498319229234096842146063801366824264405389804239133088777005461890134466117976359961413370931453697237326677404458751194536410817542978060917135787384081385380730740100785578526722465458215439987224253947250724991406788471355829045802216160790885270342713793786842562532507529730124306653105705646561876869406374863030814761740478829009366575666486767599706514119452430188961792247545093126832904143759358131186672100576998490621888020575906544710582941801596257654657345264574027330862906661123384268253123330772085591500317553312028833170353265135036689168066380027300768520396925000244408291288672876702868525969732597883195029283936630114773011763526151039417224665686624342977763461067270504810779590198814268611048861938809855186077850523976919169369504598054753920745819155229236784027711698333728513252690726187039561995344256683723587855484132724996697745541906161291953712299922599603881299569190086548514385264123620195932136412774521229539446608853302145375455688498441801744753955072963752059463075553451294135689565250236432009004893772808638158028327040401537047402938280619223540126811484547497726374648655052783620075935778213224621356880624513842910848306046148769820524661254113134300064666456537355610700120984153744399815748642185708998822260926482124103274298018755673266584872963538350972130698984283024607389805665101859431951048964461327814295516356644850307404436180163978656807390139705439558201659234388027091047179858852076408046519053433138786195047292961817777689298311131028020509578863250961080304597686017322109338498320609783210159046651443451888228461905379264807403673010962529005664146850095555622586436130344864907507663587495996700148404378987498350508823181056135973008145304231914403205280143589666188867994680398203423270713562318823507859546989634280091288396198892214911598718824670250788668637653915486192909438906212029394880967732748685856914484163209362815477274558938185017647892947043595512930666771270958235832100786503538178746674108891014285248865016207047045510487916281820785732735535083153685654945447520989384994725313110038380162055459633903250257296034408865071783669381939000741315478444977140756577962537065955632648950097009884033746284456170207643361333813356534952311000543337387486031351430898583695740169251100768481292479347460737870089147860459724982627094751490454951733835026116724550235865846609676957705221843422111794936352114961471681641383491558313030124374945997198354341446962885820925411517574178233708976794237441421009399261034455286932578985021901068537178789104039102549121375142726066492822496329843538993234000443777477566873885151268036491478366950739674218411098757144331270551614770817688441674358134405568365429130120191273805771524276297533118180329718701646576126498752944741459146268047540765267877398871261412271739837398887291490380713060263016491959175805315492240599540538739798421685889651471590369964868913203875285108917652294636419063448304468512980566355823533829678240359631865534832368949745309787637173963546907287891653399783061112036201820486356828841149786718738552786413658722636411101327292476134702000296587972983762496345692096595923342286039964710741405477955915133023597455762750533130193322372863456155651541182964676310780580868128286184517544654578022955293085237944266410330586296050908648022994866305994486716955401628492335571808398829441317135249840440384163545419797146901640853080847149106767968545178130455459484333415267950021517342439236791522447923793596057821479081628462479538454150664186610132186690192185955480970111918093439367600534979724433629508519171084298744182802301205755309128103773348485423600439867583159046488435704777065843876219013822684988583387315001258435065705489767238776457931796415551796458679867508312710020987679795078880680967649637324405887371638781081791307112923146062610055616858924691433992500368423655373352720273649663922408287159460873634805313467452364994032992018507784966439075451966627403146190987805351490130436123777827699114131950174355140859022231701591283592090825026107521514390152806140835838094033370090707931135069942906337587613504526556202353482352678318838435644004181011282511217719042666546374087692097521748026814697712705491907738472975187897228636921437839475296769773604581704533143069550819986129123867457198750452371424150017850200470196201154144710143034409588927066584079241767264796163521905748110533487093378912732092540106812584375571126576977893320169426037321344356889644556872192382319077719206090333822537052541116940390323097660549821743623515200626204664311522461523714436373359360381635199708880300360563472663859464332541749734664423938717487610263557292830149373973229779535408106961898549133779753772387046856261787039249394975285314662658222253623138701649689464751551510658387783413650489105418859806506237124748309438483085252374532003886846223989345394926850039279103951926656376246235215687956367071387198400013930058244506996391790929581253343083722152264908034370480547876368004627569946244740885243066012843988638832575236624051991925476431299020465114797839329686129735892567752180224411452444287407533168250736501451273241886320828221708963901887631805341546836730026293510650877307557398453119003162656446382074351949171019835119990280861814690857220694599962939677903401502362407196885660874144233092061472164639929782349066302321691361715960513195759824252507471920740631642356606766365912617336071176713210849779653917608971520995293122019820310438495792396353870758106111682169952621299525949810670631296977392224627939037622593188861828130068882328326420762952932656875996998079367217573711199240607182678401291012673160236254415082568121281806305443164418447415999211497016748517662511729362145701323295129672616664635214164397912525169912812397817504711450806961069577390198714536604574652152987274034168282144150648185503214373805541955724144765065347807062238475164675919795459727796287448642080063412242290737433955895133265124279882135833885080028988444344004665024878628888970224384107598891109028117692564558944438605587898386663890699099999015882380137836375640165320562867739229864999139091024952848965477073367450624378984032425638514232462422083633024800463852137000071946821296520475304277705631027819936992981219572138880460563336369061644832590759070419476831892279943347241396022479108158976502963828497835909730446824463982919829322766731590565288978446690899117984762632052600667439085734009522178247585126205706931482478639460347580022295324450050938291655416333597586745990717395364563907836826476822042263716409279208706689305701693406826705442241025071773676859483356365313311067794752487880831415269086746982232514662656905585026947842649347849547289927729736341726845695117199530247462313287219694962692859115144574776891125612369660648962827087491732979025058327514846732857418811224571542221673795827831774988368810053496891691357540397246110242943180794841929960594258997196828590046138890920274606282641752260769778174088683525136344641259484631122797010243026472424138115921481316888326373020893711011941042995110015478088240156961030555438022375379643417953427428586303260457783481636036069155622159694846281323469481331313312373429463299262919007806788161434331480112048762921700037562893975892314450177115431002200396426161854971637308927392325245836343272972187929741002745033937700731114433464202578528554070357023875384073646194686512028740782070617880671832929732029425872427647725676939400576527159487148633870514858092704160409735566741985383557433233964305807315061003662371205755571496297145970301390446092539534666908371320868253813302720500600782977686687585446230919212943240055955777621306621195104959628991635074088761109426624062508782669228786859000288119614753628015219329792525918830251106616536717502318385121590111234242940996362825756251751170198829234711340748569078055628537345510760183187187197817219667516667232803216883727097048025103150038072539060310749307059854931880302569178531171198234341345255073162985136227956147551289514402999027890547092365653066329044788443474297658214384165686463191423383775479646478687532170991767607249755926292891057853257182614920262217793867574259885612409538290829939659168266632822026331096921229662084473531179570151223531790708707777004181837760567667624611106281779407628416982796120242429303127753780146238103936756601041447255817324171246168178236818689322823654837919817498544280102335668674996768590348390439277015143559423460758302702164884347230923279245391856598495020555114718414320947953290727366156300388678801687007399401875920723820747213586080623031033811356824525516743287253071344125256594612720716355949101693663186122913516575228807369518508661914586971933164811839605249299133611820483481212554486749395579621842266355448452301374750756941727830553228562745477786874739140752999392543560258161739315945500254409411856846989476917195272495353120152202005578027955940437815812646189335907307617673544427300380990176566097757652561682055719336842534395173172631403061007459298151371540984536137671647482570765012061379983716911511779970399915722738802330089198191594807372906685060528262764965941583273798416656594807130144998788211412344820007303336520741815091225496439325671203480489563141506914435829406925329774369216986212812889940231224979798101400641568610603022857339511981767230786992512139993658249047876575178122833768836773815617313249750338525489723423957356537073618315379657075565454827824451355982921746258829757913553647612781020395924816335148295750124698467871939065814436735432362910792389860196638131017737540344650860470024184964180665284962330214400159019530319155622069219482363569149484423129158147004609543576036145386217706568675792125579734848254883897021555325920918925840856801363910620492282191102375664757260378790385646493874816804876153163829800949529895263519272510548536710220464604300393111910783481182033491380099664801647154382291804364463381004033671344358662368149601965437956554823358376810239843277841482037797335437071633165048412891752643267914759629059612334073856044302165377370485401511797949408735665165742337270196018868262533291672612416105717310412686038906626526941900620438465522344744900537138284992361206501504940124345678290456938529420159735694233186528456088119752053585239320884341552270502440532828740009348976117543517332101083063094708780883219288493065934145765746490909274965200895647193939299681071419769122322196184234376051559193259581589507146775598185436611309947879602460229498748843748031111269344444055683155926648102659419107180530064395700470570017344127968513099333719472099922680624850978292368131253939050094682333213824834654308022114663888038357604131345711516683004222924066030332279490360923230302222737228887893244787065345388918167601957888451069787147323638185784553262881842621002947576556296259238905845658159562951492847480944131371051899600637460976276891712116688116116539756602070944511841680817467726648380322992328176336272764527589404225238600370356045004156173026026768048317872032746089187909416701129544736197309641213559879199636372151898967982490684851768074369652077653292314921649837369991986092029151778917305502690332540319321760780779240521507851098554859822850787325922273884449053112080323483940179080125968067040785196611196783108748435561890703609655530077462769328303028339617591653735743333558507423047019431748351331088628311928298379607835597290328945366429409933089817734414779612716095653246736195568677935744175652214715687096329210986997572417352830820209662419539683652361217399504668398811461969638955961365274288515625835918409717835930017622594486527864420494349933953174312088517025994369753966065160985759115708652780844092433867350200845372511709325673702676822581305275230564152665477781684174785911048566465079547429149244925834947135332755263544052973322173853563978196127863919521760343465694472604125484471623818930522602075508350747584355181186165084782540600299230430691275255786313363331909411696448769048911577988356059291119897792888223647255232442025935464195009179605720459079301274301954729824853649418964692898926940256983613614121967648081359663228729887017893128094021242576685423272359358713666545097130248648472204661887009331324244657011817546220533215338483665263395295781799424783032985184799589847691720198738074779003089506350614313221290117357672880899551140582992238652910622241359457465719228280087421429198637421166653385808751250839025546043815358088686546089332205267591211895341867517492293039716411276728833977875767080536742710976316786272270736378469936011737061107892103458258667065743311222224989885453422855759429398980207948686493705871450722319306975416469234980600810303479052278826705847713394198992380115351547955839895885626176512891252934972240141993165221501794625578615504325565040074722563458801553238254125878834019173816960541265568645564234217579416940445451678048019614352418625999463314129955209677394882852779717339879216081877519899717832701776427626707227931141626699620071779912004698599692768549079813047706774171838377514054179168040532498191512765216171185315653615647136241847075391457831753533958751110407663083421149366021658424215747248459430765866793365285766933339337556105686363786010787429310989686075379156093201012707364592474276071765208716931004776143937038518107360165800511216391762621107583568212489195432663095639807961729249238099761021505778756702529248174077029227433666907600360142186334674975066463850442772270756465538027576248587830547198990241058875270212313277352471784898978152738739600557025233649786846451170359323368314943123278026840073395162004767030203915558226590984142522962287152044613912968060430496418644310404823035609784185057219606572556723060880167595324381886574167009184483800920544721726494249593320277384481044038596125643046990900059578908243760639935105943939906270188089537134331105952429440016454756569161799565321532713740274082411462594988513466527674174756062115222438504143501966613111548818152937909454015035283698606062892206765662188785209947669344180906698248715523790029023515581049451434250981651902469969986493879486515335469371162510000557815101612534441974799713945630463254783425217960172896884840972998904766889984398480947727016529861691108124654027468652574469401647497469621118215134028451986168732005507068880357124748174823075255063786917756299110027112699114438654120287969441482222362272663299223179354241513673629702616195478126210345615305946237936150504225451938257321188605629607036463598946315807507281900215971288845843212739289004845213680950687289456917407851904895007742506013499349957947132370401214817621382336043831398974502133566374121085319583811848839047555137355001231665713749447796045206413437417983755748902375910428476881245822264163477935788200298516578123323745659590059127248353267810921307870096904742344487331190867608612501710556888360445539743908508848699720416522626393960398464855094436646199806150934116894535743024797451673215101021777533363815968681520409778789623583783937980287428124908782243982549029689554074192188926380228597724821950742972383841550769668292381021886210093863495677649574821212094654147411056422743515446650643401800420923353173145238400340022675200749881044484796067614738496167675777818085164874276858516628488528160159510860504212892561039156215290045993886940073192658701667578605922342382291014891913773133763829201370765085637270783193422281531897161069142807828041157475142037504875335116690720358004661962188882946608848130124205266272295387019763815918723012868958288382429030829852923590865816249426665546890052234652100225124157705481833604161483933932221397750498253452789430734303138917096418491686273631874677526449507992965527208299225717988525525508399294771189641742269248711835550733737994731982686107451859769990114171290406968423052304825818862532533658464803081254617824517398732290444500997169392683840084606547929166844521357863914607210103128904944584815081010934546022316174292754058320180522597724221823761331061337563041930463781671090569380171791506132443634488206584799328988682093355501779701288367143775411468090188325766561044268994203339872350681745598314003361347897733544749411526673952426701407305414446929722226925089918089312234926254135735361344283377336543412124522456121436586002335850875136034946678432715374905107916240056362845947455019801531237450670473642492843529346652012508611669533770630459554791303060249158097520847785976901787641684331637210436213575720119329264454477102430154781050124334556775280580102652943475749584272423646286544672118567388417887200137429660902459442759489253546168197018755820011429807065671594522076895402384845165732394078071219383136054992350578520685886784492671021746588977391488376216811012831225985388532003939697083560468896121539799372826698921452487162299772448812036442623788367070658492291104649447771868189642504016907343643165197176971774587728038984796398593567066966026054304278176181411799104249268999971361045346273637637798083044979264026623731166859117235180181550837945611775562816216729625168808539370814924727815983366061333369554755190362953048202201692356858580277533480600192593331153700524511914607481339619689011100179562338641780070455176851819336462458756450145214535518113970655868981588869499697555728519048648125408132583485496548289544729786790472248922310244252775333326719759824887870332780049262713351592731895943374999389699756367930614889422038706915968984565427854086286202392977669418524169084597200624997170729005316476234035688408942333546253235518025121452561673681011977155175609365794038603568477834930637848468889503288372962672644456470989314360625332103699834024123438613961454604894528751952090198137923310380376075026952810337724443442551091928709601351503637366871086427051794776001313964869368059448103250418890504899679192567570886181691619505742437598755622339899829550697578820007486383977167912926615655837913773329456303353178701226297939704677122005967344109040784447260073788648512598394672600690267347795455403981878559411386276937006711818133877168122101727968179210991257224379302055513421731621617312967490871532915873249934118531135774044753143501722871594585870740820586063194358797425733157676550899833216799301732135685763653884772989754114191173765323041007558939661959803255518733514729893856461099352843440915951280514595422958755233219556038702403245737499356863113969090566443290797415011581261930595003634638283266451744110757654758259442222738241328458006267793959328984871636150998990938078265400643027213934146212781189522270328553779759385227794519652054124603719256775942703924616872126994167556826478368859925354448726537396164909408785171635401236599924683173580626901254704214476618773608901433975153913867941601380322216389141218704682454259455138224983218153759987182375388208907729078244130795785903521296247610302098987736352203515462085439905116681930290933938027581265154834710746278070722039278127993326892880438215487024192642632614125890665330483650982211376100195658322960330154018892742650318472081681880390473459704348010915437282452219312067036247747058306675903040573155137330939619839313662512233889467737327026998685279055460814921509973692315353697237458967499664251093292041233782603214176329828990632256806233434726918591776417067865424502234614945165703191070727598350373734644924491153769398996148779347577527000600150928441405987060515780820830625575848305886534560372229173872474073589196165385489360840157273859814582701587254791905234241344331348069704887842300866075298850183557693225349578282741732640637190997230319097800569182364234882452490643034740085095651422056516884306143452176617450241779678887088309508593862257349169226008882188491897667354817103356478730399668430329815749677414924296686330531324867889756397186953132103993121300981485273088395365072695492749945719947133343697568106311379052352384084860291815457508972334999273741480092757141456647704726389829977000831324149978039696138018690446111711554431101076881166415726393078478254056974340349430108054694549464523875221048717226448647620994484255203846147758716642217097972076126339419455051646407548463350559358951571453462161973167604192609434147638960073714921205995398355165740787001558768927614297348377666603712455166274372096465767550464463026797946187306817339761839083833063448989482846697920879654825118422799177795538922785077403855779775237984482868607115541073438694466013337222406971836583679542361204629049445391962822750705893874834565270235411526662115354911083855864889237555145896928578623595348379965899376375342529479820628336855000663276357665152962237630703660439754270614011589228322830720556338476862621096681887176159900088875611752018621744173534753427215458810586870696182784930148086449991885912175261253382255042970202667591644307352749720043023697148288776416005747329678529755265096132748168430320765035835775334989411973491103329840756805306789558073776831408942771587882656539181517667902550895343603046027037240347730662978803100128542926690391548628319788698235634459364330858774612645111929479297269003610510139253186145369421344571141342257512517978037331849805855715757488853321012177352893895083644664058909706854511509389715394640307769735927002252754926424728516330882370287181199221431221640059748731197854820502891534840381552179879226723173811926905904675591577175838750013628816749017802795733477712044840629014070809060108123384950196261936846663924158262924037492203812026973264330786764647030099861808380481415372396692004130294175113628671418680510827434705942237741529633249780749706464534046390734459325611923705848349245806443990602130763234304462953403977189878763349567146841103730065007344500067442447337823319028874561258075163252938745931229340198872343413243583838345763772840149842871087445414872791576864336339494864653866134576170993563346016394765111626218956352018081089346522183064580909856624165190669461537562667868278623431138680494212926834046576810227187924733720251495032899674925678640095362573914080420434888679213086259732791097415168227148568818692789231763249396102083536278327111644029875275164128271458129487326903454391752595994553738134573822678784618825249813725010486912625047480829654105402676035405643416813643204149850929144305670211621211080014532602969085966027073432921746354726451698602114871383067679382467405122318543901093421816942738904131167956685605286724821269402027889586488637805886090760821017419400444702267609681849792617447543115659495356303210057322242434118291611624048240694629369198104952816872696908414312857132008822698642102208721050951916583798582435975181529730922933317588988289653316696507519985428446310311664813798766500385022444234226434194327756982592513224946182932397573314125415144297827460963926899247654472587686612037824107897538757538591054843097186062742555663618621832376843656305397607694647149752849205858696569723066027938616110188550662723361811221551672957524164848184324456592731734387065772967463838269232343107690144774167386587990757153711578100086571926877642417528061276375574980486233737717892430948436308876298159554307734372995547929826711572283068163565900207208387874123716784800652121287454024320572440300635880618447316293065484661535638365128951001491791032827233582426071579048490241000622992372705840584115717446602837435135588235761414594287343000529353638676166467047691426732990551565657667078451880785949599869537661899429174294678489311431558176221472894226365119041732173857035685144003552197021255247219190936568790268072175729649285708736061719564801243876764232875707125216750125489657842955816849592683484934861395405098896702604579587362228128918516889297852160518421297580212132318990473740118728932171538881096462579414312376147308532066434552977527272214587544933868900028025703382073091377902774834392183448097295076343266983898538768504083723364899290376848648867819607122537797343261707897209386089633611316992682760446975868752314817417267864973851370410660778744945763609413211863043313668582910229316951309354584822766922872534853072754929265361689271688991386255950702104569600217939119490223463072653417547521813828659251716850686983355177538446171628675904676498528380395398567490292680609229969368013716832888972231548711840405417990691779324049497142975375287248214331628164096691280241235370937814529247649271395259596162460369617569989430318795830174190737490222165277792430238979396921641985325679434915583407555679299224806126967626101089883400587250531087939086936582805208909449121910017036005373600961826990031431213384206951248120198185194859629333579719756322809365558986359839241518551939335483315827747306557245598798756973899774626977058710481851248489430563770078863180281567524200435563768643629536848130271860583940366356618958703569152289426524321952161494915108778780710289514614974639854709642673810484242301744889775099469515127985303186476509363902257434806319634024714459050701194780818852284030461977277429756410296328842244756592069892964193949230547611308904830883459247081527556269899072432181226018824900117396022987978552599949019142041289014164980794655208414596451361046131760642977163246503357977272393911120954890377076758986485830039936933944334127188348582894378164521640276855894331250742369865551950764093591507483753036392612183799259185369035670161349905362166905973181809709683637329076278361329983037054204936385847998322398822018739557587593405724031514089908328367704003649474997161732770490894541036929359991968031387595198876455437475923735857719398015673542604561176234053304987174954323148253662417963361743425246452683898302015830041767460867928284324692519657832826052942718415023949446167116978890178002153249771118546444512357407234925499355488860094521435369580350602458068927645405642235782757053411495829607807107672378750852572665227087039889210055928446897854875288992515549831195669277679485514195469418716463848064611784263694995387384781685386758943673262081167297771043545901210504532471975867893333356467495960520702032200772278911997401521597962703393929970847506397146324650054114191547296079169842611689746899098840885582317451562464315669129325383513128247221795144611676954838535505957476018858085690517937649532251994169904465835619731097677617307285575128276953162931206109379992174187786056412032177611715766280543977492558802670177657934553478567046010406427703659980327868922376524403201904417105704229510535460701087878087509028966622088984600447174611349798902081167941652717986340605869778289521788498871804189295345671036487002257086050499988586451052884496285511348396960259045952467097974016533444963946207486352019401438354389175610224280271898573254155690208819818872520979875290931785782363300964245440897713336256002176572935421740067017360930037970375252870099099261265297840983556132378771978928549097607864961538690217501945700949903439434167873105214864351677081596525791594403493598004179825734401169092919838339153400321072579455953766414568020872692896703654432452701493376847404117583588874806224186665391556308590513969922458952838315373381983935389669234151677947605902532098173286270872599741437994874629276667202645779337488821790256162157083792601474023814162464283956305982161911687050226176179076523446963202560622384633605591232773737060442345323467406605954895058790469214216054946462832052309532645262877869870340652630893472487931547381473126180064253334323435750226490274541699695299593469528884991942747545694833292516973284638605853429323221838539623680956514010491340654322294936047095268317304896293270357898376910137684916499542855449872707893799271263022435064077305454808506066310065664032817636755819476089916204690682215934775544397864186253678302364259638929303591574449916872165360828875572718541490307385442419542661240510574587400761139641321380096052298754381865307181099785416051679781748306046316215013488024868515650728000117315994564521337439568652840892871299673697893092001298401473591276814075758222718389389592946304926601312677758625466254345191710484171846747407299490524797871305554381059568166458092280908726517662095518294011665605229315985110777220205978048010920680708874745505849128131141676573057737118101242764846559398775523294915960129632108499501074946823839862601391604830124646233189416713083706418190906195266938743202226011034489433971019417627476427333992330887827917333037949347461633436518339637053967378484823870264413576507232314764075151103756211210789592349877990428516751659672817085623158848159544794953540714101269745146242006850183782840311297370420150707266676994212861361648155029398518475441758894847610966621313917741330921985013765648615254373861239046129895362678665681593807598071712081009604914671888640596147047621158139505416587105198138210110460102653176332508059226191148422751073182411449622011857188858452586609475509172126632901523834279935717153162191736709339491399846637039155898842797677862010517811372678707806796412169135964357822602846958168269431331914429691746207057989999012078024930481569390271579779633921790990463415769424752437959419319518895182674966047031123145387035891371397870116538549666021446262000234738110127504582765880527988114838737993877588185895638559969440604215171621527604560793441257768956278789835123483917872640974112896541607272682324329748237770216659547070207316579712224552262791194011529756510597025233550833392257324149435680093520945313252908076261931316555109060431237510578256752634202167370871575263424782174100712450140217416067563610276258338472006211807624543454086709918943568862474567346852930578482549455525066377055292212793191128084032306056494254043532235895062215635862546793792980256281342755603880537728817513237597513646998942526658432705551172985000287716975113032611064118236020180137236510387026822915797936292359131382522458889103130444318962322878269513046661424265749415069486619776495543176485317004058137216883771723305208402301256278498279078963152212738480021749616254449443091272376903008714157106621722016816871424132581666717423373346311059247340709994768680226834626951670483457360524105415970380562086700130106742889595267454136278415048116608466057830774769003490522891274505374077866612611968823577772675209356823613722779539494950291158154245776493065671074960223083055481236675947476578971227560648372610276841417064118604258752857737257280130923398665164275294188312982667625455058984614138391359821718579134666791580032138507545846863283023529893491770357614062296586632629923218708352194337680965852223252393497186309838619134570393616852111272577473040450882262219629687964166223498847482414507727125844667391847268994740890302712263449296079652589419237657525725558870391292486282926092862686994447266242357033759153482746835237455038768206132718682305750137257541525516048047777652373758434607795569596686134884919007270448190313736891085697946933656564446698281519404411729404023705602475716304394642637651404659162578211719708690471056457250032940686695268937350073925695236020022252010315202378891890620057355279343992894230060457812819924461316744941425200081027638110821105516749587705861015807039114262098014241089697004326330247393565550552505518554509747039638399525883691020974498282389574665487987803459340616942807291260035289235963114305904277241261627579001986831117141009213835474152364233227562417106824327446574407624855953298573332447132194832444724529012342572486409203627285093431995170694354477287896616487160509611126321319012120931546286838521391201064732260492078732091083038909462624410246804410861523664963639930172641132805636161558682227506211240704764826508764788921786487274260256976338018140291101411839977101664468216041821801663866961928091935106477862699631559420627175513723715982085128705340226522209937113875726405640246219570900150478786924081347778375321633283917390935515396144919681481053151372113953340160405858632621521038402752236636895612299292587656480765689997030511816305856271412683197927054926765906856739386781398935116728209568063653093827358045928040578245267203001279151162965063072089995468059910225871965220983219395073088882849018655251636230407115048538041722877491218348316033362591778410933324180922774855483645406752140859571368319331076256936647683212416408955706419849504325073959802875922978676504581873874557377231354547826134350724996155252394664098440787450889043587019565337342525209662352492372705296131768268433407344866279537374989675631421844215199522307132736172396606811315188270605889475663251442827630136558290052514874802304861963016465841649979704085778073769572943738391813134529908612214285202698298973715338036899324712897619351205134657370228172728696838739372476375795354870178570566431286497266141432689272392438710835682991896269113726838328123671483066450113666635316609937222674198030616712307018418858045168497390882970115414554179583616373874621837153792202482717534561681109450741156776555748700330160559610998755323122978080949068440000142158353460145554517917741353049141968128443837331644822236557287883599590653856528762320002324023984852254791714593124956768442848860400735222077666431414220051864933727358081531045678945712457529798179465009876730919134502766091551937345170414081595471384587600895372867403517934030626889466697882180929316897100646191385200975660625351430898311272208113948276527112462011621918298802356310959954237741395290076242034838258407955591249067580970522580499307475486951657006552916686528386821531690722916422558840123503992504415875268967751198368253829713936755601567020123136006531327430098703000817151387546141371900184962114544285494497061367271656692897927813967230236973366852758874724400163120289760495760590072924280552783030232506820360658817598504565807568149260521321541976274952517785673281607853443949186794189827820013509904358408370531531208772319557256460776846044717685354036135277609690052676574352775825682333264590499361444106322942094080524244132308511999238525349820146131215837615127673528224179655488472711340382178576208651211350021168219892796926702382960002228904077360288071980058997290510726962833374004801694030631387060260982830456828267462421163320343479071102580812784575748117867774956427193608967734249379587390916363637210746732120652926809826442130112780612888644255410995933794867231214291690870615524534901482884219612736306649296289882458792959123356065084744226992106495148908740144744991920405867980631637202676048094251042131339179005543189662351353382864286993481973026805463033674968683122774630852462011012777032521399237535475522636693390044268750412868904352190217587653737389066742789025982002112131581224783346520168110151823134056753614610906610369863477208699394892606872032030585785111997290967079496648861940529493083973372237001029116598440277704457732203156524830349808004415492797204691925085345176619494183274631823740204948328304446456630821515371968847400697246371980086373836508110401919156561233509851567032700384990454432740648776026131580891942049917719312097671478519668354919947165889153854657375248994055809706875294078333398308618125533011143316813872954036297208064625768378692893903327300047143590378526374446285577715425304930841161759396499268841900673448938322685193349033440837436014699448427547861678254446145837297396898706645957820691172717373563564185188684233862137373494715541498420215999542239235322967600236230818269973072485889162419610283998585446781550923532153210181217973517012482159579593015206308538321875981772219351561140598494317446363337925684405745899153400859035949382590897482689239092898956388063437074417117689848539849169256376508956393985928172776687840227454593205640924725776313290702082391597390747667867304764490664987889882856731531723346948962285866828034748338477040078982941485669373414059466000994115634994382813152267142031683190074999495285476196149166256574268667030758886499709846916109579671214917394538843578474618473466461505063369299217637386673139994506940302496562826707243666691107452694352636011186624771324496317165112836495134523374934070542644574316702766358819138128538706132938379090337565139220819827169116341349047014138865624359418429496366691020142856268391378852430250172025371021416308610535833012403552721571948649609363760936148923344242431074906217967815591151529234548575974396276627189620557747658219607164129926228021307055143382673454913022303584402830293710208481163185797660366096980004833641572398121445751089413198878948166963109772774550298299894030587110868589180242170788656621785491349690115724431547103603842056584348736298902324678070270572391060488443974858868629599281758604186501138109245304190762007744443748297996186944932022235313581097404583449211551190474578499061380665924459295841411142006760452996084450303123632051099284765044177459529661966048840528824160854303652399839674951640168603398407212979950824089245728336963032864079595703727975396657645032948194859312420931813350670632606011511902821818988887563421096517485539201575146760692155242086520523313094068885797437493684042002582329569672877467236186463845577730586853491461656108962213127635562191941645784710695838930995602761868425270461564807316180852849087795882662068851849535932888823454514915732020978941012124921962277157691630036687497244938597174379540932849060864559677820188316160647847657268568784518759124430210768092737122901930707490224652272420537189980659211339613312537159024132512819904782661241483392713599877212454987703627475098647715921826675776240444492535750605319755741663306872957153142860389733000218587819498274379311013310368723502615442828402817549559516874729411068902046963986298331217556110643163036631033099370655677264678264561129081231306427618634551008775987647270635437327633934511888795128262472625786049318766099955586887069313656957025879951012617963498166113748357713611950654711205064021200182762052071022005083050904134642403696031015323838726220507392131245604204756595317209440725502480452032725694370396915369586559076054552311141517577649603278072499503726723410428864913414691545386808319484192712913766799223343050682239674058455743920167483801497108092280472321892900670882279560489077483708413690236541220938496590987899238873566474221550777311539321144301254903129837348302662958160365379170158309796178679191657712035226085745032479874326733101386584085495614484254005853102419643964633573366834434098999190041651554641101434177296107628837147063157918351645905211184836259953840577518036778661828143649512881451236163499707875699410661983989172433536939311885223469372515089161903935760833409418693318696355285180753388777064622563588452359322920087028822709478700801855889923711963558461014478408635271502713481822919955889283939136236680649602730085111365508274210781422328603009720792559283871762532739902012066866717673668636833247526080474810533685456584053249056370795304567577635740658700661134916636133514498377690048815783107168055258474538189967975619801683041065302479483368097012830371778901639107175614137095467207086892962447427683943556699309548471572899155610997331849028539889598356524116444875144293258699738697245650184410176599897338284671306581649746241596260187255321054892162293758787957909156219813064819591252570420098042193599908912186232608959248874446867158447658529546454766297508671739199631066480319477458355500167078549076947742460699754581351062574545347966078776809493605754387880527082403278158658792376654917228970430561229316830127890774539220562668674942613707472517924602620189280949005310988425016749940287487869701387064818041102412225989312250112974685936169650999270971328465478822643932374989572732586258138821379735786788714619773758721980917465646875475579579631359038943884818514598227335176278885894959428797239341762716714217010095387303615984940165953714100561001399794027809140279423030837778023892294788162985058321742685772673975722214460996618350456954511445958928800535108667841379837489805710821958682277420579986610723487655454563876920456935984749630300214135781422229913602112364555901527610388890544185967477718723601794175980021990000475846809397734420354722574942825563085060095408266707631809385351171933204599119945788154971321668197202142907800361630365583613915675731531422542609672244646758029334233691691956350267167497662324848674336736849666313991410291192291931743416653989330706580950886682582236836668968085350777172609631417195731014603405708180059151860028238558857838038352106293989103620355205040115352174328316548027676034598070265419983714575806544925508260893504432253249655206308562870398182144944554500355273844879097206361427022497743566706945212078937483111814656321587255162538260029706558978706348507628239816391056731139155821087337089294298844493019433217996806029729024524068247215903315747823942109264757114530300304384749152100200977579379020116486478523761176990373913484890351827210115889029289756200420821223757573522422878024678496723052323457999734482997618365051247472193348129821183984570803756960886418482218156578540447983565138908676351565315243848680582530827039691229406721208663917464481935029258720368066794304091654755014284239520321967570381376166987072346183834770462117960664470256064278342235534534857591966207985398573490582127732759612930718262150796206718163818054574300777431966857808506508893961777467792245314520089916679998731317274716523977064641592385258239524853691066301547597951435535597411504053531410630418525502651034957645211138273544215743130068966041015607443603203266697946080671038314908952376995767684138696103544625665825188691602360269420216739100330709828733810471755114372935864699378552047966097119720099672385802842148529237275139601637941975690769473635715906560389136385013582606597721813895364732005611051486542129805014065765692698617758279994796421105502901181401539908324657150571975612013469365180293815583472660408432672021661650475556276999680477607498246356579075768194659230627667614528918564891936705494397927287964949307221376140351365353238836733132938362437237716399801351408274437213581330075590436100618082871551933842067798803760966275807737643731188513467898913395536371545064223246815793600605894881363936745282205773631977823962069822986354360806830652808886073785449861558463028619692250562855994096253276390039112384444469509322487637269621209122646855613432828669717215223338403504917436441693670573213898399304776242153863093497875333621654263953020958673663884293371502857114093806454344841281035728435436119655415426718281481347628457442532749774318727770322306664007703530372531186631496012981670777217804615476434688992158769795972876681141999038214498731498306093995903121359059950712577126089427716292530738693619304434857219997490705214011205398979030938909479293944637063029738680554516213481750015743426858767156682759084471671286576927994103617506542335766135884208718159276490589902222803482210901082347108106935718199800881714392517107777447069733986899330627153211613590031201513831811271998161240654927163621771565446220497488048713744029101237809640356102138378020228937454655970010247665473401818389166968908722378828692712329425135422302517927356115186768009542596158470935801234319253747057550192261240894341250768519618649713138014911746908256542473943310419380662086150835321129602471641214684502581863755526689726830237976264431887446103541650399499012490372727677862534455340620376067014258183198011398889585283443040844092250207961698462167064089164370919599311317118580887179901748327801907621209241905413939530170706134669777138960871156527305955597463200027245021678514243633684609052750790251894508805027751522820471550682403802794513458150700448387908476360611852307194295807276828454036379406993048494965253718787931503536659110463235842706133871551409557258967935041118908802307917288674416223097818189292277985745391180405397583693105774134323288715922670046242518341435700281561374411838265520557070696977895930818768488417923000836986337992944380283062250519578243717048382761337996308481584532968497714781595889961315343787433118260449798760203399146050569719857628840160242674073660858318037141781465218904320186767274726030802183140060842663591184448661035891526496194214422464219017303097586160264707538758891526581181213957774956962878235049853357283421606099038506057206421666881475698798914031788828256394652504216822722054730247162973130549545785437356193203753726033162778643603423596608295631896268879035122207310765843684312638801205774545039874916564467344823290352844525668631775217706206366374016054522253682649801859763238656767118258419137936065488271003562854503156752700322328636804563571340017989178043652099453194876281819375065522144486098713991465953506202009824665983169605473581090308814918392758601807897119367253861641279088066932735772714349152598105382866344493748937521061170887093806612229303287995144697800739123336104427267599761328847279999118773985854352514552719334548797520703439806140355282696738574331493196283632758157947608390767800019029716448398192306140897656223834274922489376493190383540357778851081687263746575697258498694897726941631111238231588452159942890322047544295162138195179437691349463985805648445911879257380142778744254311781256297933556374569817193591819916240063417501143842344479409927348798096686162876196427348824245650895901399939854340242589844398713813077177239357509352160851140942369257124394104304639563567974955435944564758752375655980304002349360358455400323757196869103691078137570822603822931733910913054119879053974073259956931302263696746181514440355466254841719561617337592943152371298579523838496712691400306131393293562615810420078416308375054489554969445683340525152961966393114065742797555865930187053915749843132325254756111597372363591496319227400906943865206602297565866678950371739950383087980870308024384671521415296848753660165595494006879694927894716922691908095705557029421216844666622003126423335304947845745246501000410646815025118483593275789844896071252328233058697836007408085516608058375345413328494166587997712034245822838486526210981202572747928944109239830118772376096781013624447482466814961922391991475244917672873897980470230890273496022813753506964760409240431589662994636027343474312303261023336425766311772069918502405294235819356399699796946313128046758479069517486505371430134916049920490959946621872601409740827324868846182638456686460717126923682880679352194295825966961945532480225356765402454251815909249232001194837735319415975621446109665625491500824991646867047790025855342311217826072152875473163197566625180628349626668619622342372240452744733186565100873467196879150969470649819269774386290157116505256228392734729345784022679877027353113406982715619327536035299074750301992578488068880145103864076769967564158487615967511328627018678890036258859715103996854062163546118807229047907964999619381185956704892296180216762427606187936792760477721717937082838722940548110520959335213441416065131215931864971785755877645652531171260236176412733649166305535954247314977683800700027700927056670388415285820942080219219346456134233178729117413261364967852665322655140287426057560673279960067154226768475530496599059916051238263094266411135773915597607209359781902122465242738018630151544449799264015233538677105424286659892476512213558530299127058560645577942482856756420470422607871463671368197957214281762264022688936787906764674288741776990851313710499383110746009467703441453173738241590096580812822271937809739134677276600481070803988619232223032869579762612804890328719069339475408098498110214296421954611999783769380060051540911680864838956008420155866712150919496036112040109396133501344674829346119516053061013969545824186173227758012309679274499221845431613655345413516679730025842576812423496700120981526344479916972724994293335437321398818395017814789081237595626362706328732360046509038520108511696789545381013933035938535302090158736122760939476447346023355522031533764814129977771753707151759556594341690647715391579948873288525455102374338554178686752872166762260635198771742351007167459018493568595769259563298795146677503037858259562569053011256503365354312335739192890015375443001286970432421989345353142188288118668149932836727157868646415515331182627754727871636781630276316284150378636958692758131834412547247508045830090705956895433584340477331564990756454016200607601273159452844860875921082183815639231218530584938535565532154977581931099603575452744906505299163255352159907167043801129931056880506867958371322883505020723998647810410165304758615538386639715401675194061223371507882407666615365975588961064726016694063876893194606770658077804149864799647501935033282878795216880655080651544662589887612377934115584269838823644875693535030994523398414212679006844642618911174773672540462415633959989405642279440569565247376631205660483912338346733340393233402320907689899868365617539397965525347470684016564438289205642299264307309450600753930635689313028883755297642173713541835927104404554995668036325501737560129206399771826155444831933734584264415104131953267361068773498996831436906710250878747341224073347537714557922583054398427012669553477783484592987555350055205209521405180061202605629463108832229579297410707143265976881677993667229037774757136281986050534313646540710531410607767604457620901674812928855792972261037259547511118876718632149045073652949443411509824780694961589490722637318515885878859207133751250244199740936249974531877802359686109945318574321470184612397086006251053542312905557823128649801606701738183031459966374326808604604558197959437744535348973053587072329445047616252049006135965456520622602606253943288072458957356340784911491759331783933815330279931450856807123273442438636339012439186482024578738243861466053705551669513670508266432286331380953127389308574862672002945936818392761019124779381249212411357732968735240017554672720166479645960338936761669771967461275155173351798446181091290655801999539715826246394702900203600296513343797052595411413382764755041777284148802942651239990685916553403877776881048346757616022258415832599168396297680380843884921599657742506061722599318936459872574885130569208995341129521962103262997966293145874242933072831838503479375652504470951927159942891287425532812836698231441671773496668989269594577006868502596045966806407937399078442447086375913116953597435169149338784392522920694664075243787774726527396463290226077077591049961136538318942997464066746857160992621583455004089347710000955659583341403698046534504811946710591774556639895279442440183182549645206014298572469582961863202781984300102602227657030317888280730234377760146583298289171629951622586631461738712430932257310813811505121349278754317301009077519935242064803555920077982221520568964282377524424934900670935377962497857251540085934468269778100561281867875796218221778895559665707320426055167068074917525291698954705969701704940748026170076429227123383437951066614442430116780407865296075138943784399296764891264380703917743248566587823795757783213599095100554683824801145966921914151273577334938912051294954523117603380271760149379728003246970760510342699904659695699104918810504412043061642394262895889967556647963532517664358008523727977596454696952502245953746007132717862730074677901270617608058106478256639193346593847160618201319184620744972986848515338311242004096093868792790691152350751785946889226656878039232277690475332414074803176161941121056004053630579698684434044949311672102072370350265008029679487835671998302740046065281411380840750541035507052219608718051812515972758836949593452146919828591616349116041547467262411824020090190427955116805863277313235575087858599867448080541013070694948143352226554380531157183385778174608386521986278073989058459099001509888912820748618496814478108546692900086584760224779564604222118356987869164880291727888374007438918705793427912349151848318620464730075505161135102275517621707102954262895957174544492127209838746016936221400333749752149438585364325290995226371232739862354972143452555254377715001118558935337897188297145822806963598856364382369408346860985798347511713867981099545809287138392687706532970113194394524265822721133791046308200574916729110877177689103592836782713161836487482645222886537335843405530338432653270590936859308971924509304093290952298458391581572597596631644661244458299973670945535390200919392459400881831834999325178602150395737038182032990877943998359236575986122705316782573094059105922758789153904487682009682322216446636984734433310895017531414949819472225770315489257213048128578358078013251195701286014226282025649154732308683735932996000532730318918523511525736824659193609301671889766877896111856892614205831289195556046064377603990285658061572825064118641775578896638581522906319184098319090795763396414118679920736669063551950931127647374666478374771693405739526726791385312993618417867557228590611624774766272772036287408999892296669386937742132176802828999556459581381239554885322349767362503861991181624168862553217476311077025529127811653517748356940721310157469437374216954942207547176072474877632271564071886852971292866888028863705786829484801694769995630531262842741865379258719336234750444037240429344529015582007021914580183688444138199800755507770869998960363316067888858789493686263912038289749982966122528986324860394822451740185583978389833798073383081465356114059209044286146378543484190414942943514496495081021866955468740935229201101546681765517514572983472318710525563412361762133168414710431795709278558121108724302016596350295782736352040257737994642234837809846415927151849232308973621542224623474022773429768621110234218185816582782361405694332786302346159585191337809572288934269993831469214406693632303344331028398350696543880662885361762829271221651210987835982200467559043409268729727647191446734832438737429128551229572788775730600480287017754067765010830185072199791145064651920327492544817994737047941882897694730784725964113129554788822039131685628113607253039127663352824064353546483471420919207389999269439006063997524025857769626625242024322588063405645454409434047303571332457459573124205527107919328257348713150281816325626766644284289180282468247277955584178373390096239804220813336134813801260546455901054366262635403541231495272996357745095258916073264427934268335832077132695372597044149999752928056648496169403734178957463570465050326103819992309007700432465948576734093656367451911894684919361794359186510552969499058341948043005512375103583285368628114875949356555102709341224245912438015723532401456148948122188440184864095292003693961082578259384103972500201955828952061535506112758708323465839074495776560123584999539933875981772136261623612080805563398099816558358526545552253972718440663620725368886548311479284427950958451244384269447115279886699462734325315034811632705387887746289247215845231778052934697167502275803336189366600205548777158996790726365245589984453184426097530773864207892639675712655880267400670666220355734789925448135451509100425847144976402523141327634712557361846963632513215093533044530563191451263421155855252397316613907014302448300927647567757161871464956065193941778917352722908378214865858257503437236365442111762161575063118728490773469246768457459221433911136326438686196878485344103828482193459678920199989255542723860250558561078897664792471132376146863074554550088269900014065163132135828163348257369264812840046277825542359280618964074445867711259282498198697876591567858427088973714319951922140951716632148377267832539452723925880545518949982324841030961624003207176314510765521743612622538254612570390036487465905732506343609635950928562821682163357199344790631220933524233122285898908508708552825287466110652606533230771277934737519893081112287217855986635655224773082444805793568662124477151272847160874717151743617040485251949950997442931152372049665433183545898479715869774412443682010162599178014804318153019312002428564765755342618592267799172586481558839247165239915405764194711829521907976869102844245015241372429011104675187135418570508266421395865151191632593896721687202390746542062114654126498734128804002790380123840502988990921878497648455730217616310886258831852314949906463657444379677036096909994654014648695202312801838528514661270201529567779481447021496473187640492137811922887847817640966835644028317831001995481461517359673740117759862600992518635275812545199414805551567545247716515558100411083458586638627620001298770741067775473508854687331933876258243102480274820065940195125652619139969910832503574319526597399825272346207688013097189718795406528923261034907099887458452370461939335724243521290693228529485027738749046234519321242785933895803590464753232024816844783851411268079061403507802349559276008813094949203437549167631154554625404908227732712948226726962710452829894849508156330525418258663212393868091598415965501795166463250750827171523385691364371854234070272515461409789924509860146533483961082527308527150843567364570888562539734661576473115035022138114691823385122203157417309211735467061365550871494173224634836876463386140987723826139619220207046030781643623857507763680235671970838233027887299019464438629271862782550523121837808753238815486896585405889769729786108230493773728654905702010195076158988463440429931727035061425259226476665709408638551242746184705334574869333295945575335234076660400299519121630279136143128414830817608486100180449587073880191553246814119519173479036719584988731877433874582205171009475316436709928715251281110518656953380858578506427027299658791177880762797572595110385424886054307610841637191656572472285193123294504136701919237878064801658961803397724800675229394301295305761395072910396911973403545522427767307182119720345383475937168718996900321749597171620429190895345693274407715617059439485043259628720799745040483446615634056495422368308335023712768809838752626396961335409024675127007858855409209813875119235306451457793304815501335557365873007073879762065578576144406823843007007548438038067523566077365477015733533384099638770485216338220683966216890613778231022220997585976587317421041516176134557898597526716999938706566051994911583010863247602561520587040582639025459936238891826743501696437782307544934944121284407907197213802876689818409680063358791217764858256728614142316875462303904533301776716234102341283237317265138894599602913631232289281753027457486438845690051550707435467682879199325483052430369090370842187023849417365234673134041268067863320385299622886683429102121537338937507212870480934336777985002531352872963586891405437739903639357969633069889476526877296359055144389113409255436238982417465125209337988927416168700252835616316485332307119089837184303247044841803474172065138328424839139988679986084414981404300640824645400256831879745228549050340420232232830501562070488853362500566245603844470291881043901363839998690248394374108077475423901457805231625926416623026924784245309039439662500680197192083178748306081651786933363089193617856319478397786046705252638164069994855985717645509784418969821899203667149049476278502525213990641045618671105143916165373739306303773019975796330457435899027575690127968401578515594934089871883286298470194934926009236574757656872118783489283993762248974595810370217221602959970961545065360666002053289632084782549085733538571336706239050656185408377458511441473541836778413243466109879505410125706868409960363689334150526617065755999275950480881067037939616477663526395357201666578143719523827618029077105355911554181638717641867391284196108852028232886040231705742827247740545305303788077841606866891805642035624345086008392055333853641092181570869194636748770807078828139642832163794650477744912330620642388093260729696021507267334935679669492651554994413724589048283693724954464094388807319916279431141402650689316870077828174717776942490601669286862327286229000258153989350296082012302955592407047630722902571932210888796635368564863917914098290881410853752888729177231220374977836125683244334893008912426007862849025394180999965701554368162079788392641119289424475107182163313546509034264233683092681519280418892033371277585017755913893998721670854735411128099463298505162345293769472884051949534508708928623251085602774478255467039119072652419660576583815851706424530658087882246505481093315017723136926986246728343048930581821092819613425910364409860571459201678693991085731224180038040700081832400909800915341870287751007212712638767869816497780503298174571783125095348164634690214757331275057258821241775321069480748163405435432323885098829865618356714300967005116683927256256358307632333310902845650360020000613647825627902284349349424683923627892134527069112743156641152788319204963327629662538945941172426674963711231956578015679121464848185459463693467669130675169013069461230525670070279932899067838909772681999716142076894485654814544268350126992227273375870228202759438254491190762710719686490832625884656239375374927595409797352526536077486201475768705479661196977379058748940854009611109488746741188147743086582429425155891892489509814023683023576718093268985419882306634678772838691024664140673233184924141298277931440049306923638324503408775780504260242730476594887313528984130535183953902240401497213645631161730522800724025574858191167657386815303848154183370526952874648780379819954695360529147813761996347436450248713105718044918299253084866327027343125129595527627722612364874478171580695104052321209224902798930461271480175577248652191927066461397807174427248401989180368538123273316160665160631364752115257684705432242822403805905424238172075603758943403887208936467688431564594812540361361352532314301270158922964178394929587728596235294954577497219800921637524473013073469374493527760667966905972889249265752500133748138062642976020108602965221463352398536120694019538812729558569964293886580236734979924086061616798323444599704696118335857108107331834208649868014999645733132442092572305185053462429915487835978843118136577263703305283932209549774432253139274149580537370125672777943657733568879302528238833649007612369827528510024070615710586298258465513542525227258558165300546617428004150725253931316503438572778537410836197016447549198149930682124876934939337242465932134051615897992484563830404829755678238395239334200214760968838099559918236410932353313184931343666208059093140557770338030262438407841243506803476520276326651920299034235044220373206709843407352448289696066300115771688266300025641014504919128335611178918356728993556774199551069785313749284493682765952682470352664554454294634323280482843980694579925646554717533085648633100620596532907530151410167068755489937822559454847845483604806030024467667225794433071812691210634013984268128897921963878334170172925424571388945082369476908376961299059396146771592756941798632917398048057711582838238670435199364918500493779510335920956861941827279134362845436335814388221126483306402881925122782953813139229379023152414433841198520291695330711326190890753753454079695118403240467751908680319557069427025005469320538561498183610040342611194768829269456541962840181183836564589395421119025648443945771749724073228209953906052114038469309537451515671558668746296429198245607070892223465033872563616406004743120784958222593506135116850321185855336354974010017348594326643240513496710709695897483398260498974818146301611377034271522613650388108420763798215273993610191912776903836662429941137255999281268334385662819197728552835330059822087762437775813784782617172298505648114835917768859604509470396878207816964934981121423047324178141423594729550799788584245624190008624911897404122939801479483327379985311715300417293961187102438190758968928029701755009145815901059544276732504041419923427812288325002618380951422635145783640482831373310858167917152566813025143057731446210212492241169685599092349904355886925459406788674380855118730951551599271536904578153592622178231193242612375118938117074348343388553430982950121094301849402016139331983772816416104984632941985684923414293431466939810023218332826935835459687185204213137985443989934647775619866548927992556822789698861523756919363365475418308644711915518123357109953739920021846087271557773982628388012544896024038105906590395784754645192477600582841765523427658655028761137029109597940738539802523881408774642191655534794556358690536349299135595187380759582818939516895614907474217773275592832708864861739968495037955927171460835470028738203445130032363162077164311717501060818169603234352324267660377296205185301561578379315060463380081184983060558920520694161002433748206963871027122145283573885132337247246471669314416463209578662048144341652355115169786937629741766807307365118658364341619331887487162355327840380861503635056022556401951398567661898820159223543715936616893552253392794886886830968619752822915952486125351642131944555597488979323447702692737692585296556076644817823680603516119003433335456734647364348506390290257345269083845137895218055750221568076314487827913701773355162684230866300717298822019961594156971368051195833112740913805838784370426042499186605241249430574242104250871382494745004705588864297102271446685006188215713434791160560189878781718554052336363494828709618451558272823885943137874089055035629009518066245780070871047025170302041543849849655674833796754453063567457907790338661859595279064770055021331152836071588090925332039748760213371553848679242306435109497201228654082866041513629074116556229915624527491304724788671023725575898784219685784256647755823971037880828610812890583399863738076571240686531200076697181866198688544874935366506180217877927718561217285127507104304314422214592975422415880608414737656567792498991585546258890112370897130198083077170280575610704025678967317944938567468499987933316812085354949849260892809233807473821467465303928218711755329554094090138268216565233175408938381946340810937176272377279517048699935698053863476963704454750263685169288194237164993771665286340251175038971898643364404844270520366002054157933206541427777995456337609419806163989629545750832441029487930708813780673557068903508864381367725446705509682021912695455990640653536586525628016620824408453823526350591032618582666394564164909322625677193537031343415697498664446277206253746254553850511773437378345919583114548157440111872044321980506235257875344459834859024401023831254084945987926582675630736701999015593891780658209379300873392126805350386774657213575248374171599137191276853960244243127323486926688960336288265403678717663618628243956366605931536843578789235327566537453959519170795365603589209456273688475367310497110790373855044675294286584016905379108863806633480309121070093219643022907398633898989359137982617997750776829065547205704543735398943568626487970686673224440723243603640073958586527256229219611479071130154631354313608536680459342787829023492988828274223529626741792955473061933117701125472900242426487568056129767378119718358771299598068020256095030072959198823746689526036077383461121163516519744666651933578319280675678790926381959514509517468644855201883425240951575872127684484254643318401587575716625293273853767677734982610051105753667317890434011001805214701364820460537698530486367065346546283850154742656963001141929075184528585535690765993774939324855046935951189709335039993249585751606289441550114022109879859503561301171555823693145762548612103780775694936684388913719677338404061187659253766804067601734431929772220878307830527264661828918625864892031517628612345186311127452591738310916629586366515250987047209653889855390189748130217458444239287996175002479270737835006948091920455924418116466755325676054586157625129502677376840161731200434304998062848931601366101996511363178660423860631513088851838881988700236776647600673749288772491692560059659841392305678445823588192300079031374191512711526269728535665415647588383419137741432942482759611539063012340988042577377268917393520418479691847769155825101903205323088449852865433403504713934775408259159446880101822232451424017335717829452208549780088981981222125360508405608859303820123764519335404393343331873810140433502113982936196608021912822091793981742574469673296868399030075050161660500228348386937162500453201251285437899915003589460797395930576357983479982727796887817395535915697802355461515685897910899725671508396160214201308792708686472870296854881672531743849578110722540569218123192500397349300773408003884425108300195969090116117112572520036902515772915601648662247049427938852837491071942695909196031117181334276891517660618582172432891954939355922670722424373102396424469937472716145981581005151229699978180652729150779045514572584177759723195990889147369841003544040149809038903684816058322720241458751222971270352151526170850951108256936664811426209335995615123003646974554309654655828891685871812624694980591834437247381917309029754664299780484729823944262108521329277125307791396236897559330609633421644142440849045532912939420128508905929950041299100289073313156603294621482009629907688506855208668509438423260229867325408907556969415927806284002762706068657918110192482949064028017591355833722468064179211586542566989679366106739641477989343861512155488714930431374179336441481394354708731602591082242324305171750996995904872215019283292099071662907261844629840162698305365251256255192857338122118358156856092143648062357578212374330085490999436065210207143599258836000525980554186530447877366815296739171876472444329007038648939619335843898220279014570331440845715508632041145310974867703322032168969079000034796798095594526699353450989367046844753801175900528653563431350254880658347015731416569813228436418420533535203851427024693085210529748789268280477850587227522438470107105836821116010453849114317351011301509667417068018960832283703047574456251320286231658416909908726819779083447062860147064533521491776011659166585852540961931260407053861003482655424068866062398161979114895979637053962942238766013450578210228641577884284773616458198784448496355971417535726522343361278389956649344252875845743138638873460606322458026933874221737166308133793717346746910354041967816704481479085318788298454143482742106390317045007113348829837669143004848274569617442817654645554737511440853466941021819948206945523757793416755417637249347016604811437996438580620396266955312748816295638460399993985881079487856239612751948603873218968463759586755602659312993027763333986822025613083068153251111176672932594159819568218256930658897468867040857139884827286409147530732267180081423144204369088811851779739315070285375133570524918940639127994431539319978409181479116547545085344601116628188208561638015982282588954892912579212828486763213564916298010303381774727423412903337228849293439576073757646874863883181561051069925593605195757292279064010675170556901240343876039447163586774200858578027151985313490449470865078452048047388951118465863468685325062186650479162276965218407534014339307182525510853586342476948201646114937268738344761270295647774966637446900859623815592973204005747068365264773079966493049015034222577168561600342136073406717842046661103177956337754818419998153551024704905210928713488308124404098039041399934728021009196442619579297787097303710885647262261165704782326606512181138984042651283184546059588411740822413752894452795271911338817579975801246634880391108826197132744384319707298847464201747125476486231203934791577980967735621326138287435297043821624415604092618050326297998564253271548632522870147023117912728263846035672305937511406547311690795773549168975178280895532784373844469946082488538452520294681233415145395987452233650630961342627106974911258476542643557265034143253384609947405393805786005363887541815321076399988192641024331680572775028489117571967923931158391723877369630684692784778316859784300133428961329108461541601054927302239538728234082300214549424537521028252763744822006734182853903534644049645333322135272423208482341035790069861812839825998218962905953896446034020226579758119875292434288125445575085342484975632751344734796619175289660202195809562912936203009210399806529167344044958233892348491188824065947729290793484044739945228641211949949204256414631315310939777142345407345554817662780930810315290265909769295318988818503217617854486560757566381897764729501637952391044562319602738190536579933890095329413348239331701245899580769165122371420548801977132715008099079912421219427016266869696489001830339294662016446287799884865035579375926959993201196707008693316218235283067464750849310671929031715411958427675534915270969128173887475679513812304499776251386635474130715832252773239057052746422592299736101089417988297675444754964365102582219522086172076299963437697127068411434805422629042736520074771302366646239320263859355547138170278849658401893187898773714125364718183527137478463267238764535734703422495127364870359899556542794820182375361605499167398692084295850237392482954788764150414858698398333822657714371867828175160585632338891845019238346134551103693095855782378474998692682172793350766111888333522867480469583374844077108359084811560427344045249720833949564736788329672197108364370390230714243471400141058216785220745986307858892642816099231547104846828797118891243164529081716060237711292510949495080849951518225976613279915354060562395396371239967603661457409292536602838777874510709202261113932054632317044005252051395011143808705241737453468861302033422087739134510044184964558962261775247917471382168986994704443269788518153092889106027112315479920453674419053409099083745751999447800785273776952354881811496070268158089558644509567338345545214742818740960455114823876464221757539982637840801383082558748916914277209022062179198765291815778889433143147955726595426168813101184674948950548635607834188767931023811394484083483410696240630117822662444512739391885143355149242849241186764683952535095218262629730454607676221712872115984589232146995638412307151901327886459453093617838595335821790420935515803387256571119934979671026496526757858680301154721200737422308243765192840239835349516471608362926369570197182673458961061360346228798254939334074981684031497831207068049087522163313613430760991188912704263837447528133657757617597901733064788362795956336269960059852711515347321434508962146936406466100879003252099871536083892003450971566072099324980419907552097469605725928017279257814881117945573732660615562820874379755939892233279530554011156079347895983046766672336715127118957319207317169719330373822835196798408752271253601127799475478581073275231146347515875465411073059998302293261171933909672264452939819848254426353800526794139642822967845876602278318138967612440847207838294444760150757957678523215034948093764651207720378610587533860900889250237809132855439084223410263646289334488859018680562617326463881296479033238302332385897296073180917141844041382478170336131880607230968994421028495764054283264014205864307159980516768915691688842096546199441913486772209206700333717187869991454475737228111946500800263103334108645910070940593723903570756639677931275132266856686541620159832963993673785743631273704906925906735432551707143298788583144320068057393373266193307794067303326941475085314066687700944753912373706513266597276736832823132687935852759129528662591785410220861533848454545413004256879773029293748881018981413095606239983301986213747425753648243664000658154551665732203634811814711754597187459855177322885627003795048439943486075511516647365716103529858638729611810659508297164031778092966077502253750187499083484538304660624574557339794536933608260247046864570656270879642130510144033354837839377026945201711799787898297580588994728143850807746817348235099504917112155005948917023300608321614884399082266014358667265225095415172602723042671134214398466972620520787277387209946025527234195183791486081951916963700307062307542155382628841411886160926494265722367623183408047357657939392394777209348533285266728089211896227923055197653393787020332899290269624896786690529610308407546669993156544539877174316469450867831117207697589280394319810302638836759865785163071852508218081028065163055458082874383042521346134451455710694138950565849143960646613159012322481713517089457491515544840841394203990078538024443179609182892760408105954577415793349657501638575655900760348760345104628128115683537566135967963338220019204403976234315208896359914240307536044637648828839182130099991112922452171560391234485262867450938970491299648896092927740513315973854919919600840305323195012276707492998068177500091138949755985027070086979278928292451792492119207522334573950008432526990501459611420926013831883916585543708817371691807167314493085452067620402062102536587492409753816546785751579330423973340141421368462560602629599233087923336618381062424585748103569184095090270888270737296291308490623369700481029850629105635052270124516974624472275948863974450805131746880344442814370155275866499794420357042736448703581732085135578262072298392023799623568047912336663574034315359576522070895797895108253917902489138505145804123735886273325431833057236138229405905512170706576577901628255538830490300484316310089145872986475399732836336027839602135103125089679245791350849544272215936486988828353859572574884205165186985805781246158584188211893671014400707365459113042883132890926304738282342210722667384139492347484512139039933853904957112477187925835069936250047800610248309751227543398959927796650461638450795556158028066161312602584003290232572076131306110939154932890926846538769202935799904813583771359820104457240531889353968041057158982183159924787299182063441056582662336134773568959197793793386916124884459048064235577104845468915874751672656883011447869278685148697402826960448571132446990684325484111275451061890903696624529926360679452996333499710870633405479707177019324394561836732432953086382458266185214450755027173677831170540904545957869488564978564843298544131656735762844060369260760698793858857208628377691945482589161370402964745863303747510479759609589294218688437551362265545292769120978210973976605531685333857819742874200868322001137100289040365588444264989515358613658209907139488195416931387748749184516994063218627552462090820439782789265966766238863904611824393229469619081457442069653328514311053563140876759510305960693979481217786840086044507805753124717862168384015614257822541146319008219980924115154794896068563451815919234539444537095595955328907003023226887594979966895965975934981574085363330950638865702033141817587284002609933842293264876615253121645763387651017427402761336212423121330785265897664526196990472510964858011847035634630346791975939921617149688953847392072921917392614944644230773093339106218104201818670338051136481944759374048648855562857555384189353496566443390127808315561355334500258070302775935169854635193758722467891512267592988340337802149778573835385550752528015425814299379968157207955145534380916069691014076458979100244008256262807740967597857687853896307100252653131568150640916579201680311016419827038323588218017945899124617085691767212020604424049941605677767316500316642438849163514427745633096257880470529205419120251251863515572307387115603645007530607060706117607147134216149817303658862031535742789620623685309361042368105690120359880309827483431869702981899933222789270643607616641473326622383879401383047192045685783564967373267873093341632133803722652690866562145756011539776915104763652553744655344535809998791954314715102923095641154216458707882528092576751600746538669447727914155286476274235081162680966693996098340690564724621332242933179954786242871778278086236393107449875083156573246829318440831961341297514082095386411988359688859575269848709306013826305576771721183670311406262392965263040054089731138016732048939395718296035124890862449674918853733605581131587068809518700510545933598863275261941477838103376903933786792866413857258317706482044004951456952504546216497248552075506697684548638219660932035293980470387349744644544694562310837659327286971962728899999953233048561676975539795077407031289607350439664264124878097815418804179141728575230531772169477885561441602689758360925440825402989905337707585848074891518265369606055676772212223108545138420514925407488330292417994085811216438608035301069763661025339780737150552612283088775337744958599784672299318609658172763161762756908987407926033567434338081853272617149642746140926160014688701769498612639462422147422055728983401284847825902889221774307198741531314674097312021237530305954672078064639022432449994622195058518295505874408824247828987416350696207226456489402585584188888526761424769183374063911874720646323440179706702336471433290467476048038419144563317228701762087135147419776299239692656830285363787381932905622203339150784289003379756244602026966533676109641268973583139840792132268467273891394656205887008445579435668759052042001285999700588772098760065086248381960596451858330145421365801841888777469412908460395235348400820841773609270239188873634830191479557741315659473374563867481198194422545204991249860877667162531335455514498423751091225484301568159809739197418074011365988630164644567980375135163147679270755789217959168638731904140395401577933606268283941135977249753806754003629498484513824940699012488240723341607835362942839425413679803909741770167783054329574176236258137049382571761515113682868943479492387166571116568763418916981723394331379390012524910946174730280634610916384540314394403713176765943010293654228732876592439905618085598283037226604015630890541990091240139139806266583366807453154215647024354445714192135224757469635713043866853486346743618734416895897446044501362098119498221462813993873822830104679715516493383100237546663718503735871764943764144514795989793227098186893210549335690606933720971828498021607472164283143107106299512394897654885985209090837415413671093025669070309983941064223687480783831744282710429820993389410765199609052706847963842477228459872627370537222367206532163587200592517432155060154696770054982058948528141831624529803369546216948485620385127201321338104690304922880345025422355131102108986070514022099307310963908613016231637766594754867697533256770724234373541464939100610697129914928381148353882609879291698655663001935324257075425063944936964892387805892523410029523893982739160598167199178559555409772314401206261435197732226383510081151607447814503739394049721565032821054695194796049953796436222366015425014714124361568187976220211593151783465838843244604266315953728345506997724789654734672986692093144863904406184240264866279781188273406352061209282727745416322803970717602763484669238110623349006451567749460275542854130631374099750261964943001892362113275013080625756386860079912972219210758363153732935763070006146353548886618249020336368632649159007297427921722775959786262116218209771063088195568947845212633601016414112229153169765699624271688266233348977755022408991850805234596166450494634387295652044722009806754993981720490743763335800249479421829538248052866894731903319253099282755582009758497397555524033942512639201678509784451666477630261978871461506129811069988667285822802509999812072255538639187853977892894527680091253454819411977905438903443433513461490905650731288312304205473915613897543329676762751600708953823881186485876922112111867598464927984478887070738183278839393544422339792021490630816398117895439149730680718240694637301332553784224335484670362696392104755321433606505931710938254857164367744313882683511021118408299764419313486151521231947986061445480132046639614947523612827061553935336116843702391005676029841948924647110512605939736395354354780697237811349905653210746738902945591751316933518909812455281661701616480187616859394290288858105922965001806353617179485384379469073738978146067281635663555491218498403013238669229506810788824476452040048914301999925670258084192582337793156837714672208173742256668670824715459630225264759062150475190260916970458950685913680384407122516281450787113732153081633914365430434173352952462364366771469939671110979528702869318936986352294740170091796237339949446704891979794518840243497010354342064921975181585307342318495806237634113934845517325386580753103002573468680559722913646930131347780569394525803442673935881035851745673760356762350514733723715449566969448932975229256520040861893743806724899567775442103668850201801386552691814269443688918031383266157158322334559057168584125657380009313143643894288980270634817425632576044673543970500712988839949174664094771021191541845005661912112148267448382493218276064280391358748647292240160205035679184977145401603982567520467921521958503320853816680375124305183772670627536803707754502882141191342561564850297957125221505304729222702156345574562349838180243452502975361742082688075057623426749226806654983391150077948964315041656397679775345634241693181416036055094378609227038867973895831081862027470968528003154160112711783355326796267184336730282200554512266685904188064732646821396935817408694366608810349180926547024207603743572029570135263831475921171132482807960732419233292053617513904900836891396023815223650298369317214279043334562850813546583145118310263760814050993566081545342982139843665671311435418521395839064804163415662472783388235570264086855153772030749192628844202066910754309503693979299685680466471398918411504969704235121991730603321854345182652785853272895247846034437401623746854623284134377604523067726517622522577780439907771763557078983809206372310236704629248746475289038259919601708295414866324205522401469742131717357328930335424143560414840197396113582292511847843708574494254892789596706040828290575409970036772317698691523937953248749560774073793955625524516206919081184121519782418985986506990357727367683798652269418396112064804833868198065874268869799118422545228728835596635703998171968239407691477579040349107258579829598078084476510402371210288890066214014402216646701418142632663319417149108671071307361381245037121555988683490616841801937849185465307214285203176641216761122664825677440878413565131714713541614700693453180420806511274050267603479724715835495400486859193637781205389895301587060986761096152506644893657690338795084668381544508070069639752365574857448955796518355649978408167699962620673256782433003398431926433727093127462242586022199130489248950312242658916714777305401031070369679284545618142872389152653991992914113875315948719854789922875254751340738479782882892639715188897504804874389314934431473197319777041706805593432986477165188882234789123910152964627930076906951275216770718855984179955314245116475206249352535420835664995473932644506891766414484127031112092005789919178640610778262023812612074050103143658317252579124877437428463293823273173837226537286639173445943168321022941799800361662541257344075430230422696575756272280626503364882680938780989656291202706064095674002808144794702972166501582364048524643260892709194600276035469315416738864468301918977430129427380048281685474583800871033854229951864979178475043614245374911515700334487751478275087441306959151984073638665661461488609356660579807576125614932242735301683639734707639284702666801064241307197065315468805063920064895663500316976727571283592935495609438137743099977427790217084168697774387942124894137347250629011036045919569439921651244597381210870498895666350343216852059321161051345022230515412830525388990658267694946197312540719996637722136458754758623854070102003888931785297044232520867013789340313497876720105511089442963756752399940399482461083517931731891499978279215266229750487701086204490187569657316765399843451850910677747631229460685239721737279822240026224091406088463802533239114440267484793801453660427766032839866025473199322398709213187977160703707756068054875277279062392456823879013103274537213109851462781797864101646734319469233838647908105338803563055332220616628201094874155830098267359013512352197473576256856978639870369749428393312977292211020213491194157258445283058635196352902490390209769115441560278387792431122166140692523723247973543710196457156183509745867755506366863211967061123977213975533676222712582988097424691936694542384973145327585911926745784099010144303342326909709561588795688517825941751794390940791340384005681902311562483614822553347228699716287103104865189427994228435382229067805194328624012945821680491608231617156319099482852016375930000998980525897196833434231546159849845320590251388479876969542004042075502036281542538303181440004308232961337226474429678587649826733764637684806544465322515786836060091711135881137357007589565919439517630004766413099253710667112640739882656375644142773308976196846084144927535902156595203235409561525346417012447907283571760519965901089664100427067937707274693671873952697724044665840198935523277978332353531412718082077945401237262047788142437159898127453460128549852564018644422535130819018031024851626966656550756425551697667898370578759356445428266311888120648700087745438186653996963604009276267198578686901886762979185636703092360787288698083360797101099891541742627729866764305451906654999048009505071594326837082356680925903590424308923754654406038248878547410290659686277019810759841922254559556716995538019823263496369228188457043978478896454404471047943853972982048521500733789007872298278205966755888610589093745316834916852715080263068781035926859662899506052914900186036134424755163568974729954541660906921264574694633994594518639314919192435126185688661378895452175865351990026489538569938880812456655624791998703195106535575785579085082771798629160612662808273102656606537177116308872101369928838174657022322604679273655594012799495432873021148338824254267208750037982087135111546316025332363791922424904871586057379381070003551002145497448360548436537353631726268458354176947728166087740321982315288837045480312091376561173367571100199438721873826218724184770407026236222522669945562909503025059907914632191917570317259781931454201032229134766423034851978619955659200676986646603591672257103411563885241555846308067830515398052394117898906789348567184525081542376962376744101585110512302484615112495382054020297884170138871236472353465606615669919964967939703384595885569869544606210824522302155477697926344401674680639836540402149958383797412917881327107109266621455733918195099275114510050773669779971891737864856801423822658013530748997809874294392641457666213146256155951011053593790497374010086864728048288973928879814335880055786500285478331920370490205984176456060751102206348371344738757583121708402884376082980658162448064169406889949351254431434270940181065315642600157693855953658682312198307894963587606462841663087074738213494313252595534743734210707632305768553656829756480199999113885018517518253357147452638922630992268296130168999428628094820719099417387792276771016874486517478920299628485425617285213292641850029723553674321113539849977395350019224162063807978398049224696458929953783888676769133703158002568552117869854224200297185383725129144692616414464738230471636142806052545322014318425644634697017198886730564171388190640395303043509215723245479746766472300184143707584950909694271359687922870020153337047347415346438459027255110234172420593807990058341613041674939638960703581211013119353003417073981207179270323178689843797915414689788457559421601212773332985160741226587387034447942077653176089404441379847644887809682136811954057267143201986856869820236042564023839153828896288962007706887094575204071865657527862762729692650673988926312059186586768502449583407173782671545935828230792312052117884364132846876612987076651200782186771213617687042417763105471546419875091732733555288856317564414656793334038327793684545780195963443068748731086368329707302859533127956213140227963854791287498977833171805545878143760650960055609710877124865115323505207705039374206301463317627947726179267767985991806181586556371972839117231888104392500345012034348125336088339538176884874987953721650631816099612529055709351596927512304470266723441730457446910885268486422959336303069392090796606008984786731038762777296722788622840705518427404930564239594451232569899303800453040664573684631163538266310890177742032800551339638802452213136753052421027225021952835032395129493071368291121033049121395648924336773691602516737365362673545920389460366819129760629049130040795011287333525128422593193627486016001068905766568799488867551749623120904077760311102473428548895069073614327385708070339277470604099155133852005004758996801620028846078100547934768161945245170151147883793398844308700557256524779406398379089407280945172947863789893517278662886697519947975479551032034824190546904465524707905516527661816146033150591816674132220151330505317251604392819300791878652824229556293181766652016936890063801030966336126458426248649778508517445873475285323888746688409718372522840237820557248163868680391856825104531819432673813325196190340752028567445298017749404523732767227872624202564423558657436455967890794475357185707773611122531081622316008071964817908448753031935403617646786022702781367603363291620439642688893237184187681298834569156289598210085369566330118524465782778187219042713403177455483871394980679431747639905521341061107638437320808472372584779296274497600127158475755541199632999387986598260361169465275007996271377269551022773360859425711001296749510375866638640636629177368276374641985149237992495398347912637313039696134619570450133386081415921228395444365547209395072502142705753356059951678166427738315589860876223869604043124835593455560762973474754241055433930317339762459296700501071783454547070119786474990867988814557219082230924718386973188906415409114862814728753186861666131157253921963365048814122687834899392555344401000303985182959547257589365518921530223567211815828654105529566100367219858263195899582327782091090820031972858731425978235470851012845766544257569483746780314915208008366934283014237048353716897765940147564085466414931672661947902889496327380220307349545673793087144371505830241816256338335438930221314927440969609824005442660236735917966273203405506288828271961201108090123997046928413906303636023216721044254407405687505309492279955630263706634304210090081283342232171421500764912025190315963422279608419914944454846093942747222069545512383547991641329233449065105695469473002418053061219548503548698835285423191123934027982713186741252231713573315141220803380665984429128249922927570004637684511506499384964751883151036820469199406143159922310917895782835038644176520153637636204747304424225447654812130927116186775630218773127518089550573352741326040712401746149545395100041241018057952146272190033594004367371705185626020449933852060618875938747529572490314561076620321963740715936000027416401733987073728866144924775910825864166111386865460827169600777881972927014111680416330449197756473361130805563539885083427360244653497637684159601083140908737411367585191001255404207880513008577768981580025225702118071570723653120672231083591491554012956499555371282363855804808566519453166612679516102439447506920685554173939026471404498034073783653499023770625923514418586847650407390331098640088655668589980003126847632701225557016933137697806667714881437749484947227465422562995811489171506262691444966879563030099525426104560063367540673492969358937099275031434487874369616955403918889226778088664684749071664685430952348951123218413899027060695486696767916507835062434415158152723364682302962317529925830298994269685043688075268810290486074650740597412890527890282341304441798144142149136997138299620529562067991825579968766250627982864294775009543368600281264560423465483590464522446366911121994507499654769272825351987191512995524107256589933176204464030077257350911152614826933788795889901329811819972067204529154969645266936998187733836545127376900984735916530429240178763326341858338361492784428451806323574608083626006294447315415417534778234868361914484738255986637096248937382388105278677087212292301873715516596722256147111183539502911472306476680805481154374072051746480398617207330236276437397709428438271658815942583430363817812056813301681361951923971854311062190480428792228295141612147937339479339033341721734292100354038950033494724400630072211369679201583175024302465499436981602565364192431986224249395905459493161813825266473049537521570430258870116941999309725591519494080832600919458081842575406040711538046376289956756887141198339524506168432842353905281537109742228097721429093791921671166505050029658025561862755015912454768606380013463776451068853888181880742306102547744820128727380980744963854304149781279684360327130055074798592916161980378733214198242195461161580869452128691549877576840213457741446229185165713063827339914872254159826899004512544802414006496333332324667393698172940359788122893423209016906499912551126605981000212794880189451415337837921617887967927287472832294627073807095324089112912270527485467047456839817991733405124529483636853910156442741646116934176370774600754033094212340379770712028694159315369915937673423565660399898423481199513651621513310788967909745063150465945932646056345709507876427445749487582914577268807705421512328676964253865003099825681481833607485619502224845645298763245201758939929270969585896074500721364821961879876396304363609068120764314292623522127618996944702773169057706075626529546733931152062422985351792683757533193686449472007452901139315219035175154906637992334512335661807567239716929465544803469806984555643272244832054833040893379977719063213895287274098398510487858473470371781163365325198929969269949493872050329047698301358890258838025705063781983137929184774127606040236959179966342413489185941570270281439314506403710458401474739870683216447151479564297345572476308684117253582748044063818547250269002682453804490209311367620028424264119278263908403279223664839583258256879182614861284688901809749002606129105687480066169956521518140074828223718327308720738838112212496336735213545242410870597078783392061415919919474078783132380119052805350007037008886085546833895612773446979539953092751714243999815901765193005186968952727517041880534108395215547674521233744547887509733641885945990104568949873387530447922306922835214615082835452967051615986745987319330233161446881713297554974779144851438848931747524372879907462718718496772891844705074909858987568570026083847091695463270867844052893076792213172365786432722823211793277967935283913957369945831346924220539905157125213642770952685083718606451156517611567339471864846026199805781821425880731321669597250215792138687648141319452725273881144382056075022505522479457850547037966407249599082038657457417257285882051976165440057841670223114126969773252875409743218763389896102656154835877705855223063110863320332650749012931362708399834175330517364546978199600646426598699562341041982709828713814452811489306407001030563376660579594841443236490083383215043823320536401118907778690117778547600463390610511148960333576577219798253341791008510199066453882369666785901020574783477566118785247049595300330743822196859339247970687514688567373736637220093331481578208295070881660359595703640352759733043117688142704908979154447543943229480464823122891916790820691915651098475579343794173195089150970038995862002688248648996471441189097050745617973264412156499096304851620827588756564311448064893436560328345948711299896581015744071430049311484529771168514206170988842584324914264332772885288597424284221334499747407924761856850993426362373023395700693794373365006423408630042145593790131991041022759916588670599171559495683310294787462723743262581960038095824624514414437489661224352035291618400497452069448372379691063649556438496599751725132936632235632022066778647069775911501395818421115070999170651278755031735828648060467958287336515432304833593995731584820884133205038073665901952216580688344645551415422380808776528580581812734613941435660734272999136946783324939950649357011470970299365377305476818767082782554158135075187738618744990060155522717779352403448334310044607952798809687610587513556993209984679958773461627499085039152668015958718977000131467993853586400193061898034241695980560096405502346545453192159154525588864118934582155143185119361595157667532599891293741036301428712988639441581810906582434194731053883876085935424002426705796608310679014818716588630117704080011982947661259861297668482726647928661080536066743706763094970894424382904101801001790809042069831637814388733089766505704630929067917599639553057528246782673630856323603183757160876765732037388219493192134267155762011499709471745849679201201899758538057451698709929481932998092306113200037939183938743720958756732736919740224947323053214194642204291034272739733412576039174277093772161455777237639891620441209297616239127663788539809993924073478951964628517672630812520544222931422444999314093835719279920304692634245571537795042054250136881363892532723346771185478738983262752383583996802808569143826627329193741423875276588061049007303351416445342934579913609994284812951202261593499844169953155416489444206405044847582890938440432917584357129506512447207061652922312722098477960304636532227123956252374322789439955781065843704899427021356367391107814418051237370515506800406270252338116314130238165037278264600619290409523908858559315504458614129400242042850669486685424626298766636533415184344596149391031607286074062259441760254212568582699430518119770526477694488203417788995304147056842001120127056945564302749019918317500613397747127797843879099071897999296264579474603633537330375178929239716487436654990223261640531236787132423276837989046736761692253836022701637274164366830894548205053709420903896389668631576760173552532459893117329650395326906448124637942556006937786658096198014289043024369008711939976327363388212432711406006749639272775472244912984200673180645159671214893763353369816476434617563337058075207393032468985325136735455686298817625614766614082180832279022645876540911303622436988173763511657491834248266696170165635369263132825048632279796392775490139262295548755947909214500419263959012256673731871190389119807253280898343026329019712827541659660727897668048609632086300477167971900828503266671359866184879263215378457661278635250029990069498013302165285902745506546403502936188800339911833880334565496122489371548066223492243926607543844366981054989757847023747522829433425496079110002527990094428236811284296891537292452747830736504941278320184300666109795733406277616641065871471740684572358346917637594963966660338315472426412385167359470792463288836453763612251552722969804533451645427482127509003227289734933474622872717004806520443799265877723558808296642215075343043498307486473388344318628479957023149945864107574947579984132823830545342086922071465102882279306319894978166794834443634270902936686946070037734702820886569720121667874769416168931333600213330950596550645017500319632266383839060277911295973834521325541037751304451670146072990493893473746111574447613659604491437268071447375212135311694412451498639792637923774486773450169410458856461888269845325487510666149855976288166735603357610229118414033357963342502879934050325231253900114847501777417652072324717378382423482542389333570636724368861770873560970904077916266239943981724887288562706035903445762173198365461969972711688798958239251785368635998475334616993933433265904168764456760836890441848226316736680405425042977064524182665646143268275301310081694486610361890207366560206605405319398125216206305978856663632686483727602917650664647136135262531631725451186651554866456146049950770959312812584705746012024496598536805853432861745376355665984897150455952818042720314857126241035494134186334719734943659225761620942690783161846695785364718704630682218753330321401717926424414905045511780659341642520633768788388870689744796621066545487195545824636896960305393409798937361400682390438961497346760538484158338912544845554045390061523644027711634435815626606797868754397127971169878753707470936286887904644092065067893289390896851628258444597841610183580158508697578984085972510614735887356891694833433910651714622095671974272515055997562704954645158547839596339203314985522890161937812691684850552016709704979182854813192358708768398581992074746340082600090208369657923294431599589582907461796757363988493547301499778474829550880860302544112514864159969090799426975708717920987532580237056183394263461198552373850573596099092230642823103749322539007684218979020373223323530195736945824515022756026209438345952222006988411801642260898354372851148232951930466374663258424975919422931284419575023107002351974835019110010148848712441266749371854572625012366172965879594691815997543239428169347631772087770729354133630750233746205221926020394208476083285700888157584834316030603091281320812704131065634248637599334657773584699221717383198465915510959939390314272183674016650799546882548969267990367134210397062373164609776641983523345115235452729568659282624479547979369136031931884609435943555323337188473270850534288369461224838384126559929814745578172685073676380686409082456404753619742393738995566771918988524716800042491596942162922645210014460670772910512305886186697946953826094656540882606521434531264855278954767024283542430209269865375400171430763101789725430908180280484920155122393702927208565272016614137014866924508113006147528182638233180303692852189770847853569353183102034872537854609453869634244114520949033792518882772102188497220546691863104371600109373131180332374215568970763729884281766069623824921199641473982279638241629763607672599424578039977181616760210595016825484873641338210810560302809818095361750889779685468696831903701109245461624762674800458851229415017894909731293098685352633390515203869359427126134318660329272057848458459881365977242683326507980702039900136892054466828886359022920700576436820936313438068214457918384373138588329431246055895552567708247855559093748906886730944541738570624940799789702262029334375910640418110826758579466920564303063438164461923355013941202119151280085320297048965525670877720535769753530146099758228208246105378972564327349814406515096945222389758974704142703999137582364502965906261491081209520208972732308834840273856603339429668838718959948885518655722857002600300969905279092216894325999963414164847686948216454839074213388994275697509560322599115480411249797302442613603737365384601455343601979164030222960215114124268446165411411688037597998183570946641094206589119271750704743875278713539017953118375433715517703441545502014492346086131120720363254703160318133818060599512703709247398295266716256696439164076237542439891141117799203550639326878805250906799896798172723573406667420785549387437960394340139744904949618817151860815481409514436589677216088473118983713813992910752000779483954844211731124805484528753053374367381253969135146747217756783892799673130327721686832439983593380077788490273007719904518622207903181283817246071482809830657315049167883151448575919279052127197098267175858958220083770073998108454851977780204389561819876544956872752098086261610205106547948381180843695207229223791293542353487369688963932231055842269265048077436348574734849259403446054159803324163198140782553888785853838399778543872549848952462294187874819155939796884428669671934684674438019752351809834743631834023074162695024521882992137796943388080748911168257136012059312433777598564450048853509355559738723993533256915112652648704423224862552989472489259687493335178007043703393827853962413440274599685302019634744521204801106718808519868232138483109142332220590456583059203824997530742848877362120782217194417945785679875070913986859266658345446397062096106539114210284062102060403667643912553126871299363819608940893631132618073129545444828702518343453566638474839995235378462363928474394846803828791298235529258382800375729388233583684796152182618601377493018895118317117877260684841038477788664487633277817975790263534808352731222463321344595249980437133912914219119694069261777872208468439478560100591046670735843812156864430165091196974795787796846394072805020508473638668370077823535817722645844006782148591062300376643141067614572407541171537200558403361070665618080257996215669409916411777684916091504718388460038212175804951565023223761373018854879568528974922621209142436698377115253848361370601315674970514000635949267922078024945392219595681482787584610972200764799263294818844551200427935572068546324772080852001081627025419503477424087277298278161870085156243612974057978295895210091666602898394211968078561921350914132981763124429610309363839805177305336722156629323369687783457786795956886121265727917836609186051672652367943924617702671060485651681839388748403190092198655947502730474160067336659346517066369603594975912366264878772301778012012469527253364753025256831228889743004768445091932749827034798638277359512723276707543208079846673213000058029241245203239436332820800572074543615619934906133437187633155374338910999149553430645107632110245670511415830146195662061245939639029335971032144359247789592204667848209478202745658292025321887332103245071995351181445729018422198592598648468180608672820677676513267841987556710408581763571540704230676297535015364446843161762200814846360172452371768608750347340919499453695885823569413282619641897651573630829597421676155080464094134216259317513197095266943894869783801432804531762687817486888130989115269044836959231783394277900678018626471274745399756385088816933899506294005950586740443546843922255058159036573147779662726978623553910489911123489531872475671709274864308195440746333453914619571128278124789539313627339244621901534387698625492186873982345017059268711463550961304563935445649090672209353690176400105921444962905394135367772182140985853826454684406923854196054387259144749786950307579593508434155460471605263334015142072203466195627854839961051443279667954414178830127380054029853964095042875682991396181124743902603070010654288308625770172463871127834456221421585742616035647520243510858747127398398924150602838807554480120591119820693857308582604494070621068386433858780292018604071180982818258755304976066037923227325927246278153287805239493010651814117366329608209988346683037990994242190287650963755978805660023708578325493389241185329392086050469213590939872688016759525598397479024574796865206190744550953135930865905272805762368023241558027695477440249808668440457677505708583950024810598115151603824008082981496120797074933468399953391979415247744008563778781409347185407076576279972026459560252386637887098133517776141988823571271646672770980745116154203680632499058573643212043304245755879597566748936006281378245182107185008996375852097842971939387040306317000665412447374838553821168367211349629952556519135271538595214959621701764201481469760027789346033364403966937551705831243545393367630643700135600895169990190466226025232873091337172724373481997244496396857414094125790549258715822404589160061362754328237732041191184684226297027053757456476428730371615540068306186736672209380200981660059058312577170427020478710012646886865360826853227611360144440227583142672317335238075342395686798482228678778486851532918938591930659001607223948468887611139892912027304766881943540530151938717837806805375867607160157799951835124899876904628441335881375343023413383147135441768206306403489898989296796975649427174061280297180431289990056342045616117477121698001294701781854112587080690921935034565780146816678111032452912100212399673030371883238595330720447373836216202373424863194018691640426601447438964557144474967424499541479982790279482282803935934326796558244076503610212956564310948330218516236696425311584361702813797184931869517600943637270692137779899845065681510758060204278299278726421042776804594031569730940841639819456796005611640659715663925073171405401276501098951700608119056076340624817965838432529150007127923685330155787662835347232118352295776530279399880565410811112909388154682473465296593474505396473291777502442142165651706548296497492004753869408261368795853611787325480886336217597054441932378690089202007197767563988144551697888325225543601265654199877218494665829745639857130286439564746803349267860725321590988769168892647481953051065887623644111817465997436893847901460415735333787620886765211123469217356020709556907787626094391287690915602226843421477023383430903052325541421456206730985656140204693715023369398167582109956019930147987704668881435822787282187796306683438710539433342353672852772974202574924045123667732979144980908673964352052670798818642811199424232651412417393021989815521085632729420372368237245301681667940695204761941726899869617326183960613882029515258977919811614768054993276603364202682088234518619368535875215609399281162498858974830453426307095305509334329124694645561017004977133904929982129299503529614395563467324350533297860413629623697824835062445388650992743845912922716184762978118652754047328326657378311232618418601552120982995094956536336394651933732300146811998299908639784541693562237949446398390477682831490461111974160468140803682431601986072333254243537581842760247049614160058333116727688462618073626457118437068447000026899757427144619135133077915189977487291556704347135906441628474635112295878598570403400180479507725052694724948426642650455941339358860571792548880759891958714430044114632212816500362632500593246889984568746025552720949810398331792333621774645060407518330729991281325894848576557690900856115124098960101658080030483113436192052240776008173435646661876428018014246013879311584365500945750834089948045848554110031092875851655473476126127234271822427511270783481163231932017829511668245619057031306561998810559868979764874569820451087612415914022866006103841944178267628838721067692010107794161392760669226223578795564032868133136449033496524943356313496526485628739924009337717739733590897886736039529355160493969712132681338608818085529689174587175925688779742229079765443822904314189570313537913670565522016581935520950136022828828254303939706939767144954877570182486573633629595508453667238948246385295435219629496189652795173240428050326038750477632051951677006962287005796638154342303169873795709120460653503491061725296553511819198713135031362601448602194216861360183943858684813482031998301711875339782051692099569050925285975863403217831357454913473219381570253384564767558319566742356367084828701269931596244278238574471627462693402055004764398176765179970859045394281599893397483947845986963750989191160735483134190036927698928341192155794864556876716330467330944205826254833183772119552722965104644848823941412425743897947882062885583770984779574322021131345176652067435969958675691845924107280970734487076106796029683070135571803838937673955410831282312603867129649042552018616974597940905702272427462663436714825053609013159650621160453004086940226224213947506114311823691633767943202904929529987554971089703232358791523205848864437562204748477126109218341975166488726269726560946124852956279153814060028335950668581491542032812268365862817840200133880166721963595480045922172101624776789828461581989703643790801204057984624119234896894806057451091974353124629073531049659929683344690447360343119122993128561952532704324898424910728260362504141634133289520245056133407261383605034996467774651806834710259078309585203090706640759945456047341444193904421896259999276661463446822709460243227327320625126227280548615348266586306076009178635596835423802330121268575439132511652104764069077591523351304750600725795764929747390633788930904210977703698490993925351318642736156664040872481495877989788265803865313354477468922292172249158941128098641304028325343469545956032155590664629305683733043475811490281901455955469546275096164585975934182390586534876669447474581364008817227020447585436072991622274878456823442496665924045037735431558908892005454238960219586800237748525151593051390773071512628049647067501321089169525379447059929939651659747848159206079675564828093201180042884153646960579929888598307210843432711342755825266149713024435053927799513443206616271792050787442110878519152307322800168286931622271132037289149217444516260437978756895038519176548453420366762709105614558937818364011272793661360983087897680461028630872738853673642683315177944156648895634819284760770311167300639202233585647531695430649126394719994262661299870979980376810576063485309321035584196033052158315379757588128377246819656150922842727156765728001940230687065751023073861918121596923373013653501543776434335457067330063776269944177482216664949001473726657856663816482777416542239817930139896010710221331023918517973687815567449804491481837506603356708250132935199535686083277139544983732594934090150265172475107095574843128696737525129495038640643322370778193332645597274685030579086381903551406099359085567434796535579257684632535622663474685051561356674021284068524669180974557266057571065391505621527781444137480191608310043607052688846453106819101634886881407284783815535462067891608201259368384259188142515537396298978183888996515055612416547334415366084125203932787266301987987045583848010581016670146798394554716728602459377643772005683640699540181464432618317081778922371898136437199174840687529666527293565320976971537771129428459781384389088930079556713243592410863372165595551298817488713336879362130604513776510669738183286123093610774374698276687616659253484646511700035470376986106886074377475967020198016336808173698700729981900500662303975961856305573911021280000203276869142491761892235289577921308556550388778217986953977851856447322715590578320176088128492541676170716815320934681659470224296459030519123092793927604615326384400106937075393978377080075547982484163070972518837986386799939846634244413666045692256472079842059270005375693969121604178025167775648801794243266178406088255379645810202627388697858260976100083706429984981215313277864604191499713521026517095306577659928496304162380216419106407162858502846468499145861486006217800089730462127131826435754228454352775675683698138325932755871552708119162261370489663122659585575385316645202017609208186812070633850113152009078054599798930404600598551393210757603851446726360544224352472479459645287871857029718399935262768437812063175662787434349737652930808758757043035405923394862820870253537978611027772449178305218194969618185861776151021676814978843058916766806885971934167823786740090675863171338649611665483391718219410665594657750356025695458323088132286551452777382725041272937925158151411499679557636071719225504848684439039082605541422439271673162607365759542288881457723674047479233814114389767424367722590311924775313899591616860459321764675765696975864708067571196929295668438251532551742425407878444144466847335390033103687425995303451080919662806715761546022718009654677566279610750211566375881862930957567044833668375265041343991933989806214875266648485469735953053900691163714208976210236840224539179674668282754002827040226186052109656063347220723946552412838534358726911446668270329798849877204075342038267755772941366544744468133630604114581184186616914079861113586145047047829140111154139379867578283242783819113645955273688518186357500062221739354346206131158684950682091022006396475390363819433890574731286026089275393852273323075398856039901082254152243423210528057975519945686104709987572513030955763436999017197549782996703502670894361912118249059777523409898852700279857262489172853955633362725477278050723539718927398771227134222881502563043373086023802067504739750922699087453736851547435184659198213834291276338713747623072696699012628734384932160579955150134369053235535871077349417006747354215517791819747223179148533577288117808063239602518919453856372151344110451003143190936651942782539031063453563879068055553479884042136062813292815201312901954042038214095081332727584390530978682355153211096186280826667277898279012468474864873588432960132800769521418906070673286434249662260489265703779954033567953896914226992444347722690576172679853047967990199574100366548462504422631702781788634227882917988068571078325221860668081424651372861382375037764397615059949520324213294699025279548447130121191339002966788282582209612257666753065974873371177089757051966465330244264157655552248612830285213293399041520297746061537509028645266245226598478152153292311411213729907195079609335074674241959802564794227936578462329660448195235973069747702463038964576424253660325003018264950532613061258153143845168825009195758616981412335467943785429344526779451598909566374666714884875239270489333487345597859389730119706550296390967650170218131354251617658913621711123963126545887204162601837901132681110257928196656281232135711333060719006474799638371259686366027734186511360441626625805533277552532720071688761628027987967974884519028661225485212712700364004204799097779370739233445693688180240338455845619936755763607586301999988901898683917564698008649622415373880299453148174046701425120188135737867019838225402127666542964387347262661332511226190729190173700124497621032244845392748115548925549747037419730183496857234279244870586262067810231481977355826980226937781381612059532084215661579130410103348020260396895725216492993967438233529769160268735570514579050346311803833043008498096262925815241387723252701976076273121446321208039796245788129038747145648051244417472792424695256064613322875406864833485429228015475917053746814089956862205976898587975483262294385367526722720201835349392427915660388199823124538123975243869340734122492640470705528855500653109394916697048727309161044291411744142242303692350759407927494879700162730166769118752392111199430837394965255848063836146973553013776638224255366702564977565744819680228269005628682116241595119215031883820775954965827954880399721516522656583389209368526491144923315689704416202664754904265411438686668519100493298508470392277454536524915149568766777787142588508610422870156694417961665877616952516681272532543375616722634597408628651726725624393412572082358389425552502774897249885433212998958540345687780366434203473183807674662986912576118916551197313857774165848548452691555884670338390575665546681106897862753571028214810086726557371478850370702557539793205316381347770878104640261077108392390174424825696592180894271252393545699317506291468683624184227115397113546109916859021316049087881171862323607663174124403088331589342655816512950903143023181176246529969506198492879490391654302022241118767248624165519013361643330919932680406835344060120124183528094501605739941497374839043664294943890494959119664436840817352833374909321060145660386149594658849123693542068690843963047548208422047137248842592453314944603521103047979120720132708887033563336902738472080720268311674089303623275242896322512232756579945494827726508975787399853701505926924030985098528035297836961293941264216320212839033434598276187257377607275303625104117922683090236660947321545215104541574508441379813410729431728633918996960923504218742517214765691025337882750947435654139176280275409636398736516494566818301305053172752984378247937717797938346191875455644854019551108475553052413845734732129342260781920098464125876466960534223950228995345849638520131740900027345160049510539749036168535944136733040740507870384158716372204244302745196840289915299731831110420196613031643642063308846497220679893951122211905105350326224041443101430773823126876510829218800886832076584372775850524775388172095083676605466459428126753725698236269275452207687748366884728838526863520941968784571020379742988770412353321337749540213289605550265946977883111953491305387902670999183454346468884331307598884464245516884612570518374739006580162768855284585303710251978731947711248893779930324016508596759600250720306774367356533545798912166864151860045974344966090488389568625506125245607044133088239499002739580677677256485425481754170350466332714814301858625937907962385072498606972139432763924629610606573963356310058407979358617382237325173469504018808460478316883845774797662450375446059488479035476798884639929079305747512211611996116164414020577718227056832853124649680974026954118933280614524387425435933415631031778032136734704454425369705589470238755991205553947027936755760151617819675544624889104010964804201076589824544914447739099618951223345294611102678817267922911892596531791955655054843873553257402097153372875074949886562515707530649242556296830887649511541328084586574983600316631479510681018098655153728856923305316292652176284607392955225629764504767588999910483462475239311917497820581578297286147511561563467403565203004903285064906143116623144467609524254773784259787042339594297218931474088037150311963818336093075031630873139679361877414764574964034161355464149014564643447493411988783238041948953518164285496189385840201013623310926797754275006894198554577382778062901516729294991960497097807830452006357658073690264232203685946994288642945842482730167516448090075418114061598528873417421646823696884434245697294890925523523291462377214125297838468576264968919270408783817978162413219042213731235408698386952204429926403881887452445002821973326678317215690696274232647209882373085288476960216352482574653722372514635557325876569647552616814856651493397366847789110754288487322800801914217854464029739674942298885628565345881455432923383115965809352430697108659038414714388599397469175434228882266120046700509651972347013414190633265539500333182001185458212442248260432609578628347829006109151702642067729191655678360290687041726629223902384835013878460231339433678117208526486649408444189891106730590432901792013413148918407476570006603321314510240847955909751918407752053589044876972069306787248591517805122256503046440255061242105933239980265621291331563721647534565978700271808893430720339081940134572091581946042343835392611400772858337387020617851291008934590396568261732335271148108127369497866872239993109146007999438596732534151706912297260140550250633569613536588656328415353331150792905762354794611163472007078782209714788601868164498748943948476498567861048389204695870170218195380072860345243954124340405659898365619160465225139258568389446730521047459101322926079291800509359589968604093268529364609742731816491759985677725621074584394227502187283386118220779630610979103433305544938731246458369429145074068802206094601525054733498406756265665963666068035346718968415327809206582920672441466928900009083613846187204143390042833574068169453075874590579616614484764033166874316913806877029162849246043315723679529113317386944913654057144516463641716868557878292766904385982068157782319782471271577438905410929823389257617315567696431937435333182088839074620270928743733836467424793516935295732551089517356764483818543958784420469565766193861418885988713854377035047603852884047827292196753816454145839335657881167385094212765561114376149040190489473546288484009904370174073846896917824324207997897810214366445462281974294608193552931663284066838771294243674614908461923431510619537144400233691707091103853259981701919058380222571721000731522593030930181097748458834484434830531243883584349921285989084274200691142309252901821262679415003692150059624244484553000425135242189225907422251275228418943497791720185243429067130736373910626168730330793240289271487602971312661568600695073956060261299061086770536114769104446891765753815126668583253434184777856434631470352015359679408750782791454120455826882236254058836788411514886677416684696313498340484452437845729789715465355124674385499033050211424635493777115567512527824172797873221080773919075552780759339643281504977091577960773382433047439395595098483849988556471447195826682231817197461866712043681395797866814667513712092964612774726520733694559526046971410504139899615119679300221963940789966024070100793531992008606943331539731219443999288650821402475644593216392763930312413700588572019482764888173047511331927469466489667819882753587830610175883067180993812247431744563756914596206390271970956575834011922505502227384492886371237069389009138243197150848469353441133694823356641347609917282541009026006430303375830753040889007909937249254261360038832614676391856055087830221153880545273432215936889095365524317856583880696713367204521811190673200191924116425330279875881222268904559922106877744819244328680619112136009234065925250136232048816548606982642313279203460198869986895146671456329841912295667559565434788270973744464063913675167655764016187403661381802341554070122411804563292343075045086948954963381913777756821237164525563804091164547084562987285142607430845558533960743640990782013947932353337102025815237260287946077896902382508286300100802208814178598868312947208250081473217332893022815958647319473886877901367170795543739065817206667022207815041155971837619871754471388071747061925836896380370392829163160182234947655376727116292924020988315989798519712209162154130132194600157573843628946754799835828007608427169378272084412935608917105890463186008786220954901505272571775000567016671671734307208829698108817125412843082144974258923846289658857732639869890421208345875893352912420222151091698373579168792571794325057726404577884002520884007672185374205872566623288428840831978611149570710300444384578782384149071161983387035656195372858734550370603177395237986554688407943662684020971376690593443136668876447320721863185246998452462649320138681237898940075077980281702436828714681221498231508754318417306527725712638677526611232057726428245877319359498893017527434024769401939720838219526884849448232755141182389938012756391383234276284611127690860394931575603485322131353880848294407338971490552518893530559838319244641737427253733762318469169110916255560777823400381470558740155002284873948015599429983784927004639804453248792343399018030714797093015309628838738701198871501661938984651089078401340431274231848633329803206284694958659229963155876108124421621548980285634385464081348772157401752512241556944918740578076323345875590141224132394931929611167129373489278223572858993024527366433562012155271856243799946953788225634748583288477375319828085779102594962709827816974029463186328925159001695365547008747510337844575240142444821686746720978101214475861600427933206888870284940830852121169564705233347559491966017013017379416888384095401091267937117554814295787423800894740873956593816318934357705336156234008046129918430766605254776527393362233907253717317481001709479776170298830564821563828614469913119327631566844291136748164708905361629650451957719173353473128847119414577894364533872772964291312094073215719700514141910012759278202322905013557531068323662757337267195679562985604007798189916455722905496265465761797211197328809710988404815497315603325119178172180202700031934680409046822714669705570515458332285495219475585794391494929153981224352488159015426681706483246416544654934666920140658967424896787449847880051568842964268026566160118346464154880588113205679871863467657729175008811055649891010746851361140084121180146953255836842411001334866877537624740853498573251135011397402970828365859598003530099597116177134319081529736501084778809617424333435713278944830882494407546530725742806252121378975134248509792353014433924182523339930201722864742229873064070136632852886449692544155227745627079057155196038779818036804531528074821212508449339208792962331473528887383660865995099795380256191132046855136860649574402961300832811990091206310408979683800276180442656951295741375214671039976310181779395656176085001905532519759091483195957155526056121589196621817178566764155012080248601921916058745761494254442407376227990011428242067181273093990978978547732240054522417693686937771777481587017425873586231343309394978081748777823657540903338846510209546281088136874987820885756048672097530151080413073329109151630711583075744564795120844269352173842243593836744217536017206058273085506896116177420053092213916172389683937558486096108834931358744154915686155477951641197341710689396876473207470153939409090882910024469039065635958696236518683444973923558244669189818736574481943078910589887898050977877431143475987647311117889769215651257331116712402777859171690393672982978317234787122234889133925359210082670035694752780403867452263667996462544224922140133871920851241055850354200128241002264371976032438710805780984235915282394047624474949106442378679532028212097059555233897528729055847128407111554814036734559736590650678789461748604946360238548495486011642778971461254531923931724430691686324333631482893839434717666764668434888778512535735811888310073564052688648987760762348364066869207690914658824950091715116770433235766825661648173263362467903064824047473832293387576347468283134246229193327028837788659168553772380381326934740296164711195703425521755940113616616627694383534878611889019251871470278942739534979187812572136753461090791540549369357761312835645744266517599275011818724725835478972213476476288727121938864890544038765797327516652720690974190017537915380750692021822374556887654321949463187668351133087451215061907790443228023973490549078518020995347045222876610391593182352884878431728707594647252656830306929454819494198668290844942250281872346585560584987743919774644207513109227406683395561529092102941570020673291395496340027734658790375376315885391543081597342071334056100284569890027329980216964190083215452248096788923699115013654961490343518805943276541013851312038361243518897574590524375904753031244564495627848819515799195254057976680932369377573671023569177187875425926036495077208801410919792719554641496605975976397246908482108021786466292433676365305249820536010639236630780237423379280593417505998258570871240876621439820444107981817930571198888066313706211884589187738422864102489950393795456245554256522236037085812982652619465017287754474836313143192161134536850821429916331971437235650656437452008135313500256201206678989410667127914049709828327679602818293749944203757666353453222992456678416091066397954905195251957734959751654322489586402986565109011290316905423541952111302629067479335758882128989928232315104896502031599531926467981253741205951362969530530982709703496798059925449383818638380067970053204340855668086275597166388234760490233887363536616002732502347381449441263449274933177024477746491229621643654462033186798527576018941358764087452403922690653038125225921402455757547285690634493637935302057099001514220541318018002444081849684658012453027361644849351405852687842405541792720814169881465566491869600093488309366574037808859651360242000324782946481394872214321082799874158006331301917462864672212161215180726879997648177645654020091822926086929312539131158758362920289047124131803494034674162963495246824745843255454877953776979191039630755633971677759502781530411148934539928207864517721204507982716483804699864285609638432632007827829588299404877444148898868415332264181323930527621725617066284343412264521679382797427469940856867547084269921502445450562763106943112551399107508571542707800590882561116784815420319299859036449009134082566370312996664431482916644132372353610464143074765587362247789727549758546272564479176086993774381706390108130417449008117003314436160005252095098321281253707041041591909750469968306555279009917955572146869130697268982986823719627489774029419297573211192451070662457090721793610916265092057464706128166118186731450497498748652136790086628262099405305149613555645383168229146088093380116370166044096319011217778918645852417901510435379321844869086773537324759668614988389789424467254227985227626512796070029658684683884439437995135094889543756930714829183137037385772741109943857920471712029199969416537625106730518908202236202964483040626568804717504033007082372233591319125030959796884389590642282010091271060227074867934650211193826372585570011573664177905449624985575056114806811137743113864087109463064825171955537572927115021693408419334527128044089763376318490289868510276929387702447677906573528571585574300464936383867038443577065746752072346478004550538989322360650362550431705365903190753849082712377277069567437294995675668121892112934361290532055318692437963496707417029230893274902383942310834554087086670441432631186771110933925651165796861790522919677110196524385567837451499346507741748645163918699162452085559785379870873518572288216414264052003818406895222410321773408486076815907715216430162029461705167412773368848985451706868115373603507116116749333522228126708396417063647509924675482309457483572270035536749431694380297060860991927949362248842541363153048830619122473858047719330277177848129184808179125787918963694074809990944451003826457654154198729863745604593903893700210729894199162864610266958561887101129407854149379980126200839159244284102460955442119478661665557447122296725347661227345003302073031423353219195471679220532266681859421584186547558849990232789955757222005552343365300009216759451404719644343216499381070007676714085504452197134100939658849411177757615464574683565385063308319223475664978338125811119656364338844829989593335468362983029984428847853844680046333043751527299655571540002496714629639247849984870347439465277245788506530170017477175620940813875313882712487215370431913365165321562656184379682885552581127782752338339707499442198558163921537212887334179421314808413022287261271652469630770308963347055390777333263379946856437275489668005529815750755269059020469178456699379980820079435890728672104595984861337904918019434561277621472921755388208831805394616355998874319497963509060211502851839552065367730193142999015133070644420808271550088020841577078390149628295976879328823717763049759430841900593151832114251547361563472673154876585296012005905107331193876416392794300497497479705986769009560170530676151051637884317383766124633806944925687654147023868144741804889604755513461053536391499265803901627622466873011613511124910093041523533577244201912973141876196914645469006006851110501991657035120242279359122447481995965583774647752974741246342015082909600080065372900212266618641686559044319105610392299387079846903998962564027411143359369484751190092850444842935897147956049592360214400162702044394557473960325213956916696374758364047080639014567382647768102116289454312261053689392461062390392502018053111597146160883800135507580288899424819928224303600509499319974934396901221657598984640122830452112286824850191027957358333808168334269619861316142589420839054117204276153380415133590995603154631480851848349607238530665674002322438378524551086302328376440871169418147230209450854686235802799728500396243720529614795825039711529090647265731855631163062751725677610906145192157216285764441738995244884600856202563495067875438127715096710472439936653633020204131724060837606782731920026090836284959935332156207160342152580644176978024045987224061544934842124471047736611960892830344115717933852342585980717836497728788389109556124827976514993484650993330415063591132219447060617210302109810250079141322265993337088478188587333670692693505914092218283174849822006478711068362481944064809228568800433334289183575680578950615658958259339462144510382531551986007950353634183967930761152657186903036174586300947065522426386026214405228512378255463972389483779666328165669591970751246331324256730994890740548284778043428045719940686412128785851592103030018686848850384036769840438413180257880990848420460584165368116722095734113287349883682280528814648821200770866399079401712516405994149898373458013061779310745057354315702379427318936207139170317690589119012389819525937530047786390084629912660938924249506158579296440514487586281478020054107525163553434348559966403839959749727796065699474445847453570984569027149580564947597764361245737842135062529769282519277673152931228266032838421932414514878083078416235400386209739963882747640205679410830925620009559838575978228404918488776292432257885240120984787365096296435236861570035230448282644049862332346047160178147415506621906312320150355768679843774590784250353426288435722310164866992534019022176383146526584293108154449390074360707929545245258752203910505435129279590647565788783986621227665416029352578792893611053948680190013169076296975247654196123013545833490895148510594203600141371223431443278900548182044710096589039865343478168432313520387888055595253038084410252601122793075569521118360802691719922483800932180759869835852059022208706051524633837279889635018008237949202331059576480116066322078927617100167457958430788531459593944946659239130337051990456256734633744975796822565332482694228731854624553995234137996643912678644294269105456298241181452195589709088549831281528952517040714410128257019308845287093504546607246129861690350061608913493684903042394187398705205897753653789889549901762246775882706179738073445930880942172101791177608556301755898707668412686724434294000685420443673650594331654130751410587219021829518347592390483232197307234325659859199233965467437956990959452680430780722416956297655278903106479077259687625194083893234632221096019505183411719902719356148304558287911820406559582973821542484598158154729428107774748451901633912181087958360305144242814572708317986489177262946135233619582339050487938195936950248434594314245047986910832580445468922707541043114381353195694563016563634529502208231798462886441747317649155899866654549629665123801038694833155379388205504882275831149366232165366817778837326253888797046316231010120525862976140600039618453714296200185446292018957864117747651530258397745364846401238722934619610114203769766874442252568844750039529423622540568294456571802031281948917323082611029950642868973027379878181512085167466276433099644652889599565478319430984494409475723959691732754928107141364819305173984142032591871290365655701080368159642861809911766533126977732532250158700089314020774111979506877801589391909158597550334358454538257039202949070369851155686015313004671309192839875656252481955468102705718183389793124162240511030072705716484816665057349594213483544932582861006093042831579013578071603664000092743647122855158138868898152760893183475819883221657426445622427822646702339293000046395253850655494358631841386902121383906362221398389384820292385847964215825282800225755363370550045345002647471511333034810020221139208061413180496254409058063554126571447151885368105935143065295100189110068156937888694286264570518939974830716680026454521096041979115798211018038946169646948683573774208103544811439735466162516332021116189819854815643660714769875231190129460408349904110462250002650809507442729723617736408314819015223372535248091774600009342721800656050343564517002921127987310302657496571216985570896386351680240798766904269507698719704134593319257324323158690258085165647913552606380910549752957496457089279341342537193625448355679998549306019615740845224138138165404412762868220049759316205925939589550634439507867039862275463036408120872898507132028127860705089303855047010090119214647932872550798323049073947681299637654345225964233691378214790087640339571460493391948685451314964622479294798290934390404529968558923529064387592856695829315885916217907781494427983394623957016522852020964267887895980224186348658985808910992309585263988404735594837313529914217836220448017364374957375650229516478301335843875867461474708309264695630247654529560236007199545135194780089256109825318901868110832759785044059911870014474924845473756700016646736682644405989881118900456591310693235925932079841852488088928828068138080819148864638506673353355387369547784038969868094360617249818780089748785218138982042201793702441297805753279831464228539777671075728644401502151299935869798752642495016548697596366667726386257608137013033189266792147041267500099689708042725615808378554050315402472580367694586463144187672055733495983029247627096015471737390508120805429947023206808229432486229471028506485683891556708057045281282575627786986652946908307962452478003203766757009103504281496791692859310369485875624768485102273272686117667206510131126521851839464783176304967699918011992931963798531269310100081473174405076561578031172216632072833198735468937453239230185509116197357898373022415889445137771252176829756912765073607200941654037821205138606663455061533115747419064420508767224941348704655429235243623437834300002697003814447196259739092248748169142849241053447295619868619502052021639250384661126222035838093195001599356671710153513979503914631163592978964079565688876671824501329360828965808626936198413031980092916115149710421692881772198953824917234341541673302371907683539870439650477561595139253560672594072377955189614964963094431321929923237177363287137255509726235726797355311576761861226559399668301120589509997370830187694372964751461923913683986832550818941782982079255906559298408284990064082644070147108394105523012770273133945936441172895905982011893731945654557293431289444113954539213440152973917072442534252114336585998712196814374986404207179238471862896940997207987104986983061799669877693698999965174117552774571721441732829424580029430513321633666969867385723642700248319418254631541010675886716573448635490125007622135780240142505124296520844001264809365215437303370458949268524853626120785184120954009433202611303600507339366639864167981063226207752157563840360988391679440252371246851904925483318610609697714688399096258376102862710147904258252104650412152526120648134679110730585978077433662990677351857487611707609747444905362279708533729068907745936340823980848248901458977868891329089298458756352101458611766106261250729192132049503480268566832517020879089033497767576059469644343707944231111620934645883822481911816470059472821518014178555564459625484513537635022838616895145968600576842395488507649017278650815020913264636510815616242082955789898935202865863699883906940975768181286802313930212631879536982526364834195742831150918688619501495764561128697574399832527514584490903177274202092290418425154837142380798866234219254631026149317328499374467765430008112596047000371102714562576199959255070047835783356817151300168166349475484967114055193765681344154385200281192099381490515878627410610047122126851553337070079752305215109400615394857526361227926094741918210105199861304127034577919476995226241315470093634879816745755744923460827523772181061825424114089060365225585554072657498310072682419924737629207081775950881980479767380530970387470499444833552808719721880600531788107733542043383052376313315942799976947150644271126052470733019511074077818412534453859073445553930167645306609018858449248638643234894894255749462315590618877899763193184831315359379480592708163642115018021291935752071988524683980958541344754235338565779401978521438064962300639598828755800160908807140069902599001861267740120006430695492889831410272901972560885467300286277312176468544802996195794678585768925089375654691565758107677944136061116790697986880833596574988680656974864084208782739113765068756505968601912560551252131677109944427603043985786782875234299042718269649481670780184844387788033502441223873779238961709477625240010015764950349730690289497076970736884456058029874865773669481510609755165821970145577861387187519198971104236512543532980321155153024765596198564176437227100637941564148012861542697607219942219613441231794681161015896470782917346789271124293304586492287713037746060644309407482621629198599196830848769122851738088825184887371014716855178098176627036082794062915257335009620098287355750117423095264116729307289208129963442350352830242076304181937829928319076562551269198578129210708776131744402868984848671158070743080864790756682913755878394176464118216193165453019721289656952008631968583021482435445972654820577255043038964675692203922255991515941544989238564077793956364956439227356852689811396967990482881045695518928048220316588159066889059493537840449232776576132355654907887994807941046993842134769306403975467076445666819858810603026993733304925559250099334188656285052893239399952191038513389467138742573273683882204679970668789686716681862310740230002231998957029703437287214236538052520172746136154248318626992656963578960705177323151268571043845885357064553957872871927974980773657041646559836107673326266001133934393658274050450653477162489220276251496557960047125267670168482498524457069294116238796696921467999611066480661974509581802816113096972555762856270855804689253299856158109506200968323765320343153853408689024621422865141772432967525182146026306040068646667222496229964764719463377613029399934419128317091171669995074396521077131085695912737528000809107410064601349974502707179396650597870394635111271374522388055749853678416001328133509078703864838938417060231641542363986924374836006054357007251494813666717160779822641452652101181539125120989503265801646341278407765402491985974212273342540408437937409260763067499326558801912820340319191579432182831254665890722234201396536841512491116288535280070618811508809496545903544781494017902801121532112260109377288294152720838150410582232558905642486051663804454314515681796054010081350701308770653324328992340257066585134268692659991824801521536769318027145073379529200063335928751207112520601401310262605210083342358745892147151193753070276491086424812106249859461684054303791622830512714004192545423608532712361538887036655854689808070682199001325034294888177934491129712840537291824613230528960231287266277213558193793650261791596700959725101857179054623355732144616539946031006390407437342612916110622422845446870376752935547417785240595756153404063577973097278543801045900342452876173162123977591563113339878188173317637161638994624123972092000104974847473577752797879301608979390045405607052673224910455047312944511798348422640375452210708648837126469357210075832047393918908324613200555022259891753926221322754496022391460929097513629562448733120055559956277874182406887929956070237466044781618889605843260365480777032427326703750526902120164011789042957021438321572990408088958390037960003838533290986226373463599553263915486981290508193144239872987945181350462688070132651040941473193608503231544494398272764850087664197288003039464509098345351122978826091819981393568906387890966222745016913087381334943768895030215061807524658875467725884849882111215454322554781844952242695796109536816652409927236237157796474276517664535678588469568059979300680937332216311597881090973625964039345040950274162315119820359208007069112185801907989774834157625058390136759037202300696229160934754448886619969165382202272950042778894110366488170778520238683874813728717387964606075493899384515763489343558521877430627702505423084063725777553184930481683190256887796017685034231258163783596373701509158788795486476838019583626930682069208515637507133707737699704147026556904022579724112566973024542599611173004680164254076824399511723745085881214223067798753876358427388721987455248295384471167709900045278594214221552415276671940101558503566003705618486017169524912385844066209653632239976205725820488022937895299348142941259283091871240317884641319863452873947718266172846479401466628356913786112383984549362632210581300227637650433953966061837820760776346463739531079588608137573903782675041938441710381904798151392509028150535491200393462380119323726897727265251840128997731170724810192211961221961560379101036078045009040709749166313919335834704702445421182327883788529924058914652782288129125378378666677401381935196507547631297039012023240435310117536606326142000231320869702421192800653376095561378711218123642003159760394135210398588980128418857129006397925712791511968741366619653528069187792190234376261891871975435481270036140536763716228799061844800450702670082556211022574243435939552857900439728246761206899817847987410187778326481479184220810703519888077037501157312439077879801061606285116369469448740112096655587289379506364953016651250437881352073125097308140933740321170093446121796109793784201040821680190272788228746823298964254773325681616309284586053232698390170886847917087986505907334582394511061771597079297512049075216705378372854263827137707046152065182165967439307704742559263240660732450007066301684544771769700295466490426353163574284627608339543625088146796028245245096868089109952331545932648531283971083001602445896925143327678047908898675320195097938908961165295073474693437963720630387797663461687119484571409792907175437646156467262842883545222775994323857138428854509778077653886062333468002823885246852197856188261635748858672805177226266046149368258027787291194793101546810468447670065667387746978505896794555341692756188939011814633040205684946032728390340057125410986132215344777082425017598831149609519710833300176842066515666932756435685221149753113531467320018277065760358839480589867527772187637731014150671149740193124744436475623957921239174321174539546067191880890436085146621786165522549354825740619442655320608283125461964395544464001212869193280667821112440374005679524958421958858908840178087320493447986599805949632491537646632184128285152824255252495644527687930629653344291566310843285413629184823466671643570610903390767457795195392376930906570380632544902027781048400936314742191980548805097821610866050991805318311374613574849856922853860439285728285550524642038602300713310076354361413332333753069601179283905227279554655016004129032798950523232538037009190370353439487917750952376032494659019157079921914462999744626051945560963817899811129420149984513946290753708246375103152111042785967754444064393745724783411053599699815043423662693763946142420060894177028540812486009433597606929530605050165195765513681216780836160300827567976372719490017206028657381285710231974583872414021250921010375714564555063597049670395707563485082031282156094041714470532134850600973390067837005435814181532828797801881516793225439559336044977083294618554978484222325527576998215135124757096762524135537020167698902781373459629330686523099684031946649791125590415784867179096564163933820859650043800522779386520871069084380613653548551194482800904844894365301960974336562588662631076831871618454027668813751920446915623888168662452431120959910597286669926740288267997339359116108923223765967261729127456555390798055474588119584805928739490881716687919056808864997829997693392654276773108455259707666848133140447228367267199375708831446494817222369241717295678847487109190514169369954812050968772465559692838012580220177840338287907294576356311037715622599924868015170987132496688230091168121938246131534420998982202216888325650217894555938432234835906895961697456963259411183236798075426636778718064458545102730686589159681581291266964040296903111483526936470069664683887444528468951339153507421182838579580688992902268716933044332456767611895613993526481879547568191983842749724508648685570236453555841908626667978032099578395735256734525312105798971288630676879049254576888756866696669074573695373668109084243461901634086872911709264467024959703848338693493270083974865765154990479735729368062497741672684327026396408993314740339403053355873642526324679213882261766212577790316005005094187762623031950119903358554502111984139174256721098384592784339426486333671674311022794921830916676829958740111961778552127177961272053354701727320218628450088568214332285592191169128546277244580289610875784517940010113140824730523554976305763188941694978009591872282113814735127136465711039934458475404473352980799859291535206767145477650898636377628549316068894593620151303694647992616420545610861456177796208347826234114804265071953330671681101967459619109253299244411112279546204512431477428240034516379186810263334154527308416299701736047507824287923706867318427058435494090245966636129476731092730716081674417340347287012575108410675135539736437508251075717272613697017012671103336335873836259323043595328545208755424387363808463422400512612362550431593271652500653523665860303065349740082267089279709225947029524429133238931424702091268792502092885397120681195585197142303664846807564616519896316017034054536021423972528759973212975508775812651619655615284219871184868855365364812749102180651830900176273423227632344753308977008693587862995552589939804637760996837794545923254177857658998413121042093783529397216470229610357915749305908761940899104314191500787043882426854985764837349835539288417036587057928729538052272348860465352245333478450248421082994363893379529695653303266426957139806591095465251748087271323785078553329156534409181736083067427561384010640945574538924222313570647037861537920645717165457366305535443958925464780684571488263974650983520935880272419923735544045502335283185398386302138269056631331228869567531740004047668919271735450938251623038070913690553956603721467826910277580898079427500573960938419439178523971429744997947154660032144827280805737435654915086424017898048741639021093657898749112260939960237618429605189556033174054806224381832836783547374048064383787078405509105805471188200220044175924284530211974802591200288458175007372800500116849269226149299610317411009832973227703841706598722448188342382033005514418436978788775477028565573812577127045072362690544668454603265352094332875945233697850662105833909844338793516010491638841197716033757493854319038515370215764996703299145307370109561571271744879699261360891428763183972003330280306832383582717380712285189809788258450337049435892295296329369225690867168089899227678299294137233510349881308679719847353450052372709304636949824130722046897808958131938125080787023509324308273737485343278915144710468525541932714682432251164452970060611303341133568490534537629958397593860340841390204597577690394840866603916513076140736744147064854825819719770289349321948681196474944579077757775398906821783676890639179559062156039652687357725586135579305554414159579042992650170391557459806851727603094384844288250096377643387114271684929663052902172803863385684979048152084803248927602944261218569486063714661716604387667629049355935382898952649310158994749775926805947986723423578353655001006239395295040779587862629000843370032015538068921648096304831237265018306511360055577298747450887666607348328755780442367773837723950005616582898689263730268302371085720320095275936741593051044335048939106076272836563763132049444173429265161317502224155016042220575001637729273103161669751891525579611504235831830887336117921861698725396997686539525109485079373995879653766755556263787848194003654297833609389859141882790865233638741811083974333597541844183498650905924583200536553563393629961756276599590397734015159784924186340470806988433926126021067390271775327913101661862404689599878558794327208145298500070918081858336265261281896201194462385216278810121208559400974259650252781083866881219225772691221081776349650526689038561567797765940893732143344380979238535042477324958031160026830854789408579858680381600735779497009482712086152917741110427049336161499045832744452440092219177619946776317243960284501574540330051923570075534902187683405655192537723941686464340875677450167939115924619220766144977743455003616115016969195160379696837043376773407011770372878863148554424917025350296394917529749879592483850357021637847410752625086415410566934063338565374261848910852364091126703534105423452464512085665347900485561285807984955190360702582139322701726894672938884618582220245639640998498283576252752066765562883493451248263786488924821313778004913047019615208975972316972620412770316244237563573040512585483383159140581848841416840180742172774262875084196503060273105621289601662405522722981596101359701503829522327655324384845076198110280263826974871344404888826825311885966756685069774465888177988729128105532077968338893191350851316747512611872937786728921418754721187883041649738853241331965223846693189821192379053098256077381878009266492444040163282111601080111877904303136676269970046257159232057849137712355504544367073832447339727126822921452508008305080940283767349422486819162813335917915213745725407647586903388644277952638886886319285322962066564175347435900835037127250947349513740646939301812002108575887371295217120714826717470152571470358013086833788838278760438728462596513302563699610515823193028383756418117937874191785036412858085667989370666528523036662912079453880527563570002368149920757529365149336507397869818070681715220044357939065519488824060506737702484216124327563081694654155031875134652216992637492334115654080797199274062414407975852757517719851614551566181997027927656225284351473305543853581399084896692225590691452834868418599888691441461233322292327206169283982352249978070262417438267721861529082583145105574590744220810669142599268205799069191054539363287932213684253048468278289722284251105837194484804160017354355274381788079351111125449557649166307162074601409470612933527657173229678254917967338390818403499362995471046900238955180229586292464887400702433331083102361338922622120233822479661423121906776453774849028845256848843699073663544248967845401730536581996025828570903689493124152129256881417990370128212506749243645872304459811852701937879105802119385963417892853165524971573346184413175247382960707560818439620331031907674799383359033303460275391229446229544434881934337503535524479132330162594060053999154395222841105146237579919074242074597895578002565751031488416970816606843346847651538528383369214674032076727548103077047597585743454002440981614054183738096615829305915764804184076451637141056400180941687200506105724633239408402751320147323761694464873736730624300792087772799289820227037672807372694221392320310361213924956356630028256712928298275848715524209721832895979901817132481093248828021213219743895890360961336987326545957132191526956106671149982003673360636386939221313058617691032856002632212848246213983680469742010655175044751633333996325461276585915614858039932767756313048513358278420253903066394373352585143576545430278693129512640894414492559300603015634617371954325031454214549893257126032087489547989660490625080507360317418974687808574765045191672957168015860641754633235518764536655140948530880493611544139380715404406797184028390566531234600186133140241073421574399950233380795547199090801232177593667166258341364766980240966297537093024466105075569291937383336449290357325452833881917392600357402640174898179064561160102207573171895635822864412779553344164983671454864097723332383322657710817796662017462336562588901286442448386275974193855098542185987087666945168947335817094600085952505918231736466345258519225638490841767537388203237659609349565867208306501689199456652525361743334375689434558151670639309831472590212946068242812314900139167834385179577411748986907988490213641165865132994308649055720279399772970806939491009627153718097911683340725074081857537334180693126438054510349976172352467078945022668779011815089828112449041015590116365730098340757157494673593109741975944128618402440153870329301035716630163302346191856156625194477457707647858769129748557959219547837010621449393625172430672557776155236797433992732173673024497955161563127088077536883464590753635843505915796782810631454120894992306555496865292979746576577489739969957255967462379803064453877886706940826629729443228896354838963363371198445529985062759304147643044598926206956435935331130745648650731704035513187911594263210668131459190333244763398374769511657343733198223782587089515721383496270283951920315893027619262082738675543280815474298632345417232130179039908583271377426927328546086822320370383473113320828781801163374785317715529456186906380671207906710128462194522323327724112431103782857458955234327601872424603409947130763235447905505802574788067608734990702985561038967010046489770714076645698935070406392657587140152232750725274413953540287909431848871305268838084206504587371337101917532131765247432519933106806160665979902644094885608210226244592122673936096974454536465608772728138210954104775189404065536052776532899339098162502362772158771882530122166369027450829915656411420106124104236410695189494593299301505555347489753299139899702278924355183604830798896920217057352333191678475370608550121273865586093254476257295746179372507717658469357922039531508207025974630865638495337068864493713582875227655516960216789118622966091056434496625398002657482437263033553624886915406309397458999822023375651814269310251618018146933212434207105256443678617312555396737269842724473044411471723691603770521515151629758826161005904065108831920122385974913163285702366764922063215337166012563582718762400667640124681350577960196333799023957974736009490276872856174505469141039060772138556767114519715767911613376931819769723234725790242518804995973622248907278894888729255107334605384341997614794330136586259581072437990255296961713794086574379085052519466569936258410944112637108703264350264531514523056399512430707766071279115591465825496322204962599079684801671341504098478462683230508323995709657920933806313190474565538202227353998897806408000839021210564530743783802740574519820733132228806081863688882824840026440299078652076919907722448599633846091774266609231515391550051461471641859184144038675929975431969691435286444877647750006712444716561392046412024160807574636241828768196857488771274227977898744537220383102613036542958456105020762995638211615108008059388474158784112121332774165632278918750364712320989605476767918589166058997470154269305668654699888189049379358662329508532485678872995567769949314441849566733899962052737173442073233754870896100161173461660144849593068788942963331774649385831714357204151461369569952954723195004050213404053209353272021878737535676295949446734809607723604727205092111010635570156689885990218182847864348153032322716617400382489992771148057824887331163220973411935750770418771086520910074769188586278138930111620419692871924165188705770418706577608230696399749067139111621452295372909801127315340138931236534467219969519194581219727738301333265183946513281956440285916854190173967872382320052390562713869014537837335984055457297402463563486992615697769849554378281253646692901839923916369693631239250216575458018547261873362092694738443445819567627471102090790701940524843027767710258218312539163364043006305030249229422299681317862861364081953585052959286557861310774903476434746990750360719862186563976297152683120161832116889535389074127503792578159362939438228662292932525357748776367194941349979549967104624037623420628633228334220062119554650422043770299197997796126767411215005723639878616953793126298884211966160313143514010129281623590190622100616484158144857110836493647553507709192663917902287034949596065509169315877373213286525075027907812529058413316737813671830928711913695229811082032243617707402353485718679968572625736929112384774510679775714643089391106573475890703252959191365864947176545450019011645467175846435352399637343687079876517554696567323712870880159557669377105735713605095881006272516482062455406992297303051175312889762082347998291258334421437629360747458214139237594314122782355134249037503988910977383388313122691939775267452892722805396602710003212797333008284236611677162255193803992578015655254405146005079914057007844552385211205298230030724034047683055861698880393614184283150190617154692404550727852357609594288205293911298843515579894363020081245791981723575976768732570425409315077532282427394063245160452573745543259878356800376162799295336396080364622624125175587626290838197439952798096272090905174693469493332414781501524592188309935298034237440090914301550313564407855961029273522831149216703449203366939512693935893044308821206618040417755443548523299487542528466540469812898482569608843266401618958530959539017581140322549122585124350437304858606278563191072723040826779469487650903558461366032266530621621363698982871525690740332931784942714229196702368013419060265163180108563367347217649887933452304214929275708724863402801620305814894973783884240087426921413835223542196105152859859525349645914556684564483801562975285111462503711601620474032669959940939933081521314167265571738921188424457554826362694897805284255398043540647249250848408164743079055005760197193636713158723312905511676730151666916256374309842817101391179114530059191667111470981590360511829318989811856840610466763633253486710737816370186999992870373780046698979667146702399067004205764504041272627291261636505148503490786574204525049918983022566910921497468893605110930109786697725398577292142347843770038271876370452240274739265166921262627212298840843898023382490265250984286724168507423533100409796202909409496891414068694338802002712362982688644691614311879206256280381418928430120528156708065990725076249036300203958401084854943321065008627531707121993939803206952985517587577210386747258909730040901822894582062761797577054039739459675390865477001999884697336099759750890361873784706693492434121621404433231754544225651020300698242063455064370132822627066869813246741674096268174439459853388902648534834919974669266062943510130762655720919796619392543210970663696898334479883294974348292066548786500201468592746995455237949178743743391744737078322446011005950976724336893259946431675437341442770335464961384923193099495331155297972154316797816859132670464571848208601576105009512400173653825795190292537665484156291547057678970447743072596221336889792659319236446487227120548309405570087719577714121017638940142709842176298986699725251125520670393668636477011044434094256758622939439264704366160414175127209289722771215745059324352740717961659032267101960979437683033276055131602047762407493635018579698638904512568265624880557910438807714032390295308413996116927087841076868742411589850255520509979402617184391828174950135887224883059682809205837890241048811681641592989016076787367391501688373131626743857749704973065101677322465259648278916061978531893165279548039240607477549049467538738518246128240873715350483896637874117436512785001963025127425621335480020065177273541498627249061763396568943664334385016773196888028094127734452574469033371754748268106112371040944022998233789730550266154149363945270044317588722534894259488968952372294528856129449701733411471715145760429925153530197300334617655062384523027140980587069707452713167859775529764360818446834363856662106066658072722383541650402908258761027245127799725494518135814761027829579446196509094074305692026057955191609390192022778093104984307156493813471039720887746067696448272130257622781885971978570759970590319640354449544656226548708842743301334263783422767093378546595336370705053240361683778597632499191985939086235172405863072746537675121943358095143508887640318163210058316676539466169732459648202274554658775521664938064639313454934831692408420627158185303585237558878545219167197594854880665224692942136957410808855685647273837282671409665125012859815291855905425992248382133457506402026735198545323756043516332040212876817788588665267630458367221107978777748608362492746702027903088414550014018234820963181171201425847706763760825597252954388857313754892249709969357661607568554297621686597502893248086776590687042072516675448005109691385276715577594419086293651931099344937888436249325598036407215524658565127700289041243387807339897832223537819087472363425058972875779248245938338020672599129327404213786980209187785823518189582223165507264536602321193280792374028201885271294876892241758263592712794855873774138328941485087608783396901474231114883417010731812769291707186706570361694243004641245912656348106486964497241165708369217066502509039987771014797618155897461527712415973042795548756632141338739053553094976582778772053892630271338867143589853071633544174062990260086840776727569658672962464096601681001020796719920240959985687920371207166469170696104362826707844133498539299404433192042899760706851349440662171008337446144845689812809912468845141481982081356841917914105581459330343784218656764979526912968285794995630396263164134033166140481358618852585805267590321832253901104135260935288279447182689666419249080107923626906021652305014207469030616842460713713613124274242693478682311731557186041135842086203376227685234768598040600669267489844326836556547522198877399734501718069503063604124259661007127357606845214913489680840852131952813551002982855208211881910084094785296201970361262053384652674925748599407045060040497209942533837099877821890728002067151868316363316025530929224301005107038055366427328339293811288147332954810922805960282322529494080709043116032575028512532590032561447268759389288456687354682462382503434654458812587886056466104941627759968355274494957309834196734779439596902898196995241520585854426657218602200306901553207202662733647131083759371188496387019570636184746121315260948203194462875881748900218986123765480027329881675617565315310504265257412585998830362048101094021540747401593367288677921653682718458175568935570052608271908956333293818276762637186334245079054205555333854788097447282601804026129106186282007517389903916128638501562432992842581346465923001630431990768543547899300176163689468433551501920104652256620462937833010266149812843946326142590035675764599680877396120040654852437395233936726042767677266891232565030532885535623697828312257864561901815351140672664238209954687480735840701168935250919404792282291721508047879935258359239641540884713855149244928301679088864522120244485996245239335504109156663624725986455023018255319219755515927877808593540004302501336586378382770556841903831913678117875037941727481530240181657131420337130415550480686383300909005589053967167093797470222010156438575960871530632013002703830110322302372147479529493166493093917613855544922555233396431150075413816925361463841010513263173979243291527475246358552248629310380908527779409887498325197004434240707087323660565797835059050057411110880449041619745577890549266931302793364394441954912948981241571131706188239988444152636569312717178170174560001180719695103177832456446547207117103876622488832255531340580257259238338666152666446875230956815176034214808054898855697545806531370364518718788774300758173478583682119377454706761068345738846887164677010129402498008901048583109007196270910813695398463194864397849397252485244384121011806134568366230763894162092823038662616144698542199073561277651991061104754512765701769356888609137471845058926174737346321820601426975211650526945545196952356771792697898659098413666352228437469605210348956819182056661367254300047057452223687461523025839093652007929781593474833511810291441534880757864390828549412284275206867994711783056121926146490090137789008608682811861565555331814321664841148358157219205895385391811334510133824317062787499755988268778334315665498716914010745578334053167550342724667228546520488813576786089813625876581040526752866031045758135345505093554504014461055465208847712231344376695203268437025941837736547361991846574440425951934623814839432261530400003683546348420387769504073404812252753157897094207509963740906614117843205354162889949772168947890694233877947922962351438159444567421433758596952614002874742423163365722813218426941241238841388185898327744094572396894002335909361844121525205330091548403993410125917609450510227660883566124827413632408536453825981047191054202529243233507811991375170285978594041231666778303677571162849359441376643774468635170877261096805385371140118506636303620521969103482302505084684046687943337449219063903548014554972361106143407331382510384528365572871416588214643605311413903838354885212236732557523740746751885666897964848091454911365302198140680394070673058656106482090860305162911315188476608438707812577000260882130038798716471978570818733090618431923242065663389907805464939279784758968006098350627830114174368136460105550303510088068249394124348256092401961810359816974863836206879687623418939035311878235071286563508113105570657802315201823398587437085319518174496922549173754911344606815564819531721011264182438873668154990374102408131941163086530648246802773711997631246503079044951948056878396662172097209125108399450211399255480787028260549672507395047463748714512891323180268633261952044192133310567053333680953640243549357382687930292090003674200073474106253098838527281846979938374239693052758198077054798976989690154686851556884639303167260247209364356955307664361210976916988957347664920403563077835554277291827539501925775613821442884454078164857900486140554752162846959166675483527249468950989631671590307934885017000593253940197137628939578951737193887228392525955186340891239261446265193211207603885099018093080073832768265691546119385806311654254604056876694174149463858815840582754976402309947978566761549563774280630337365937534787828754254352962452135752042719492321096367183306186595343597593133150242301665908917045229415160505481651446669558509177233294995380446480278968862272450743236555239802694071024639397609605054687897397695808604136581684769792139028416153099905208923297382899898472132867966685957497449277358486176682902202272367562627761043995528973093446458776504600403008765350636310608583777403413805485607375153511767873418277154144906228989985097808154001434094727733656122372317570237691664808282033294812736350010905686629591704671441510183460417383567643830221617517935689339630205374127534645650089741282274819026216496500817208300291568411319137642162823195466754774210574748219302306018327099507336875031253044246446708156795994566772200370222996792830947290065104295424360337784718669023426424815798416405683120302903357999179050402459932651173373106740264029122830451525617183955884287567320414748027714025625138970669122620734255055821345430404132319085128672286980653907799271809179458172494858869590560888006506464581997928244538448623015763193755225872800565012889327393264467375861591844570193610449523980513084782298869782345252764520725937889812831111818613985094255893241154018663886750651840628369949647535911632431130447190726477461346723474917276901799954382741444597009795645359600264173437357623027219318933798100779951414138948164139545312149364233393872024873671369922317464726345741355423806316313119222914022108025239544451879985501700453987650866531639403220965476258258902577754133228412232605214221990444806400943933297574205383636375516562204217036673167386478344128456483685798498927006215985281671722541244591968056293288365843822905590949396565293978877574907344374922606743527810203727568753543692415520620696280359816114727012874518324060870638885529036231065873222427373363432891377604187299297826996667818961156546506306790416996024070545300483866152966658858895916075566020830193853391210442638365904024879858931604312885312280005191162841891412368011715731901678673498365835454554009240848693055171425943250457133134148763139491536065277197425798585410707685784117388203835223816285174388733246580514401354208180858664672056184967832129383440209953939313974952750348182398766093971813000476446853173983327794349115529738572541993682930633098187722973715999411541644911916570652312111695460306307204906726848389046448316935152260274184354709199378042241633671316064853256989237506948756028813926815032167741175098767952866134393347982985534203168887200946085356231791349200453356194731975558645029468397391233393371900011450488671521020734455317901529200566165804610304280962597662493025648048226058311593045853623918246084412890993250082228477156571499057324914341169277953622790585854786439252434929653724415234429955372238565093372298063512907603964836184000623895995342826181621396369777566985618575825977419601407308467613031013910560453378020486351901162720455168699937343586715838262351919612129997018992925915980606497397272288951765258121058235567663166107746418124116106049287468810265502024455574825875274863769375901333349160059251778373514496183771568185942655261182399685010162618889067188739870345251206091600115591120222633614420411041783565374292756256751945453330245077506073547732343464060049905943664432256252855595048138535781847482461538771927970310440469910138022877778056494763750684528003988809360514108091561997319101840098879847076311691391016895806474422341312848736761572025607782896981829913681275883410082449419874251467230517708259869313232595790712971567962016093596621249954502781902687133475818881902266256140205231553149494927079616676571234930265939081958880386176411130614085028034713711438305633561954154250696445009258363800106903332040058546176793446601143687819148975606304480332046572997908642148060107408151536430851995913517898549050322558104920984525205379420407530905836197538238185532387285749470771121970815494850931611926092734193895800893234257336342946634165972104177229406372894945334499984111135981181041711689985466269534985795462514702588074087635162784459342416596145225418175204619736486751028265990202076537364892015729990329772517302366812446356486416413426117878264516508922319974791304454565694038485580186361659647745215735595152071992120439819258003176051837603047703652492670966482291175610471385417387183481786641107364119683222263298543066113912284849989630744629451236313155205354697262874537405821962443301353674010907882498613756113097352812375722902728877137350046251903285738723476485263554250762705970436105287176462968649846686126512280678575397500692130856449393116164270209434476913431422073009730071151064462962057811836448701328075620451429118316804140299244124790324677353654914676473815940720177372036575861540261978853168546404826914403886334233323863761226130549211617387018022493861514740767164748411713914170090317773011252773527721694223871391875780827293586693875097337925689600128337115928410736095766334869946299587076926809761251767496486782389668617435435251834688251240788703802590026620319394648129726270043583688396211843304464268222767201811921418606286998046473593411954924907826084090861057658931890554697518451182734019033257700818255831368866125360694014504500371479997637754262827718224347309348945509189093577251798938937169625966731542572706773493946118456004752265813089994412628197208896491435220838942937278005607686139439900507993784787659420276644770463616688361807766483832397867986415256401084345357715557413676900932444899805070077693964713488688289589882503083347927788581022416774828091566665497567963781805463873809662783027970691723030276150652142420699121789444115032021782628520263527441161093312571463180867756609596438346458262115768113190781260873458810159260805777816755565689055193594470049332809302406338259673591417263955453493893865448736192221807098035411043806129206296508478077032368386282513563828232280292289415048746776230194270477926705838485892135101933923739328450169226227222034713534980151110175164527555861761771907324203229286275653954957343557984586192575030931180456529204052433332940545463575653481188702438469351159385682725088505898631210400200997021411668962753501121779933030061188719512057984119753833984131855853263124140178391380480319161044474765100504380519064645627086562630755297671494062884561182016294170083229753039629991555922357277838058685927246016136741483066726706512937788247458317144209498121343789590612516287236571883184278216633278710448742446948109941283061211190144583235550551116633952122344535252899380038649759514959965730548112226976762978994110843561283132125651824031519947249772222044062979249271359099141662119354189557100031011409647011131948188634128917663303282616326796321692618600825625242229787543372045169544284030165421813006624101662437427829884217774408379596018288197429336789053668681491894938401905655091634880918367779944304935400800324442341493120868939717709185662102747517934407725234834769075783921283771593910357167475605678412094760902093152736464501461841250855812246234143687075751473468078312140496298307825533355942715925774555883975198225580500948035764272698878975750080322848972385792257866429228077743394182925808389502080926982437230825981583327237412647232775630006354951165096389913709927694885340176870943777576716492483765698344280208836834729652147928706134708396464440207570025361679822186843658154947780672937260267411601071847913023130808832482893974083286157844968698929932306732958534504667406382723016023247087656480468827641284730465686942187579110548093780423754720556893378966194384594812635620828521578513246616144517696471395489813979909719329409493340256609001974135745977123597042253211793432675588644677540214112558075311218901722347569825383428456102030979241918507571928405690970249617410553719069227526742138579792840163965534958646886891516478066688926069412766354087651562076065860025403332387606134977941251217209414492173060701943487205975864191274693679671021312019474656249268472890982006250146658272915342406482547780212370986916082879103559547633780366873052934522187505661276638470243158277203514532844793137599371476412244377425595043946396701978409489808913349292066040940170498433700428199254720367861585104874204178194629305488160754336530910815982668307222836839359013091562549631410551735774968067271439491490860170818738396576382670947183575837762189704655571826109131997050118896510867986678399565314707396589085616432223580016310539936119907204585025369776429502682751722422081604870458195728248542298858396168117378074872991725950936211900907223166450005056714828445691546196112885936550713879410435072749477294870990277727349061644972624595804357933119082782157566383727415967641365874927301927309887863000178606008506555084641822389641178178273739749657453785956638093193657540591490035915161923219259357140196351959668932965974245965845639508411802486779523116938392324594383265827942243920931924028414163847178351636497432527707502801072926027304712484412730443045257657566658943103109038928055006316420625859327623440482854591382141929482603565307212150917642532524634865393709501045925673462997103566883880900489012178315811860799047799701507203155264200964974354963270975697110414029993439418330885263632148200085268325569087013829958222699555570867901088687139949404026331793415373728011457970051317284246241438202762135670575977749077197763364413264321005706993813584427241202141101378536349868917583979399986626855869189286127693121710613655912957445193037783594613999965424505449539528095486020485762491929391555365420497106301968376104215967844686939797761701560868339051009776084220446286212453161385502983432666554247217086003140969995046808070321189603047086406461157711374838407452295460162465615397402442018058549131253916361770015189476354722863381324228402038890967444455458031356317007004598409195107575169127025447281480222504310479386164497822273581000160981194495869663561331268096722168525504820813497922258176640004044160040020909468295671182972878197957266586901642300828709960195357589048020090543470421351174353053323590091117991404232629536028608875508812479320317480332030287480520688198020665106954596100828082001786711970710022833030906146509123815985891938179954800126598364535724198586641271958143526897955811417489294490385207069191254880621400271677228994064763134113318931448298871292142971974674628422649401955117225731753937803223620047807700788860379988706420803840542787291473286831535198158424106745302170333955184092034679832019377060043752266555604858655278464626603499036335167743979735936779810684674948716217688212627582241268889461643255612218574834018983436583132419907858513294717650691898441356779732876298371525967639319437414696889955495132338036221805341574968199485871105630120065299604079780637011743223711360225432142830475205455959063265460143099601314776052588305651935449106876198577354895845079667015518739758685853032217383657613474174929637288249820077987133942430979192647303569726865619779766860264395183812567935542853482895087861163300004332970918580125755859518802883812470691184036616289810165777601300089165515080853923751062750442451830687826884748234789301084244733455038634410850063157608209501744654111255274735794138914666936207476651612433718525426459366516160603736213554849637306907583191968944460554138930375057415719323972502128937650398739745553014480691326708078459572330927663810035298143176204970496934951592123162072006177245081461493090479500633841028630418892792792811303720191983754603667432833954633820804084597904256067651543842464411280375241834930949166547809462832988736135157149490238029599399505798247477802980911695272632445518791731541978250548914639839400940252483804169988946165321527461955722756339369147424721868594405032591040946374800214722083785223476702933695085514629077904243442549095975200570055665001179572627418329960459708645586855243492439528032767408011713439235326971857821741336659923321465626567071174940263702874353151586567423784829863735715232020694272979547789345156183717549232109727155876107429878087618752295521718214171549041061078309585334946594606986057578536703571506090233748974316753151973772565458701218282750649075416326931655105570737296060282794640556918992622262663216157665795822062031023547909902943008785190860175545220085418064861432231725862026956909178415415083357885968364059999320115756984554939134840207867397100865314765735118802721355869194971281419746764090888584349220412970142344326233447987539982067557617544634214621566544470976688593768460731444927479599250864496291733546715225754665472230590077898461376514499682497207265937528462021799956088451041374196277883655592578072930761875500716853765946900636603042626342830306190336273373807906476695253540877254950592996919871477592950910844678785478066447006298230358934976629782244192182926454199513406302815317117157362612320009879204594965747941830106109585166855771909771663596363174370255015933293277277309247880075985387217203016517729058995141253744693032394897747004931006830365600041388782306527218179892599730707164289877236579321111494818836114217313090250766222564006627169047650318246650842988322736421663225276844561871251607356714015721835532857414625874330353671750609019547632332010753915408836262792342466389436877781668082002557752688524363175573376162393937897122688718553989515054801666615439085993184479315932938249603114573790803167579046864182899629353840377291958382747363075799826984541725415943048347106201186276538381599748673904721816818138784732852180030789684867688260717363855026366930899046041356383804832071738176402337434718391518936146073195932888138981668781159880494373965217946380978920772574516936374992726594990375246152261140882661361903330215251424341363823209248592283352405269346501609252901600390929290704245081030812995361160211453175672822277377413413358063773976012524981491899298046806906733461075502085240968595437010016659720979445414931891841007803252563792620325079020981192061629062292611744187237067120103067477808719180652281529225722652324209408812775296246708965834227587237256833026403916436373857113718499907917301550804988707444210475959470987270665187163598286704901577082566969277632136469209763403690322549086411535760940150888527413091356019204539566090759123901491926688645724598308076728802343923480357191400352354276615518587669631207020845174229001398172725011252877921607575548229200097189471434717566721566196340083569155136584935375468718408310295166735506407339521755784375156224277748122901652280757578474367558756013660708599483472380722073462672594568714209127522885912379661609815667373379424288746673943361246402226444365006071807365299023813387247569362603411963387493161385233372183630576665242167826399864855883582746310431628231520760075622306874321342363723158146897450132727053679831153896665999569769825853358350311543906570157188368208102446257218395810323983418937377428282633669364646097468025370040641778543848227125504503383954441683489529993552610750116600731131267878646601870853525660681266840184392762001300559364047625672008596982403315449959584693169313884098666938679631601989176199532980677888042808124733522015306044114837390263178091067604929526956927952987065219760134208112391555540679954939729806434394578801348461972743111163731658718291530262894766228846962652199435391406604289877263849099464100872657522638649007658357639512147271344735947284865469448795828851074967163889640539774987926836498519994545394769501826886124629519793266517038807005270809551417531273067942386039010714591951974485418829809582938004587910835681302245503522222221827376049409621651365010329802352415786817230483777425965829215531394421562325443404657509132502526606423776808376468917544784800360908104594307409461471444714163766559741834375101827345128737357800128930857290528135230394797183907237882248809094312721570915369935542374886250999424177964823336429369304101443286712347545933321357225645929173535703707775026525733022683735256392086900573679615658542697866310014814044520774741441872977794405413450914664929365461019081791895212383285943036538533579564031016889560790868960953621081183824379203385428288310523986115402766364122415773919437297159634969701652947270626899116541903181373439024270374403614600209975985836115326579665939738101957043766874972090590574239916033964651688585504581522411926832718844768471609644581059069374600917479175769891585197797000309742500766742332541395835772682551096063369950238432455505830396890546297882079521715203918377663863242457084845071690514759182591735524670087694812232852989983142892341749478142700906408566322715237911139564576872663111416650401424611342061265196522155719843150970700349892129001047958339520767719354421891126884219140728241247629172009337716829041041964137862866140979562229007707231407180489226413898373651544980496006343327611929196030105909826762193504888481532108338195883116200638154994689843553668385915653496050757013985597492277892463255530174827458205155962033218224350221788985474535728096771789326069851134430509446349485319159959031321393573892979630784067488646526512266562373067317683831507744255595394312123654503195345892802971399435135159173053091929003762666505210331986727738764335815538349051271426026286182125900113024689305729537621049561189393648452456789401150750682849248296751582855381694244689121147661299689737765032775205233251430057363248148437403242889173714311135126965744716610985667811063489279645506182559307561004196914083163488965592110993466272131606750093401953760049158562971447443239920820945773733293922198481426429969858118011042945614965156498748450355577784315217985259798143449708697582923198996076196204557149454283607980411780802935756927835638611169647793618109502225147872074401461523359488399636959547357958293366248703177397773698004099111618467706091534950078714014270943052451460303073243366633632156730707042451325100261352530588169237689565333490446642965950325094726991465856051585081169171373400423740195670675032679368510502494900367114945641772589038994192680523420546856401862832357661850742959942614214262910559747160735979840199574441240000767674089304481725146094627863212971475300119727613592627677138022247470961820155807087254886879800426886294214424938134229149992059499834805989657658067233282168584604716246584490648930137870874196685724599926067177461618647014991241080262235852632628306070106856309210175822104716462731126373323040835110612989883705593528036656014537887651431195657079674477260505623060698475681479712949887324284220300552059167852620031593045300172404938875227767697735210294463990539043233441024958780455062683503270489859915738008848610328866605742758181453465640664016977499853800370129198401088264552236284401929242612435123043026860757162503824916791786610370827150190152812786048242891929208531478213061006488694666530805910913157546510708192924559436976325653594484441344505381042932086751011532962522375555941522236256054423017535775050904381362915268076034137955295925971257299592174653026782954198088641843413901485244933680684418874327781501998872468872079519185593681480442813357960199885988997496933153759560531573566177516736664327574286934007582288867893544972967291854458343217323792912107188210569741626230237104396291936621595319909834822966180904774226542013038360997731638828048560097118762558262101890909761560438764371132342697916670031109727008827352583344626867028452973667290561842166490856682376560564531674625229416963397163113252310122503155296130735665103674252369749699190264721565584856047597055731540308940369848182539759171359333080950140271056935718147024028883446171465127684908804264547881240915059094663842966933035173700130513580946593670770393367076395180861589834523473950768557197874320438839663552166862146615823981678489052444797027327564405440803709432075053518018388884050034255776716312872498263370117447623246693906568414026283562030076895363620602401969394584582001444203055575118817625915576024344186564738212089103946780396053078016309409366196730704258302097816363149586547141817871695041240953791652922358884229992870312487532489474694022962871340229937210981554213125213900755140683304902236603449593166175413981201267617603477867803218657847497852430527554584858682691694870243036810618426248402578926194742702332825345748247670902236854354310883738796967309891547105267977009642684202827340665368891875221519927939638834892766588782069055713837052215213647487931200933418404025097055219277101557264311069204848149448194933849203133643309515682443609117438492261253049147527142448616970226456764217833908930242892257220254462586991196886706111593899578288359329620369296462489234053992203096244974351385427504141839823297111394613244105949300837144955182075907989721630052265856051997779286274916051999295047204768121381000836225247188453925348295837542053484776759871919197386927968060380550410580175152849527061039218877366954381099056991836161484816417656347076885835276449141757983008689260928333371863352430542582049657471240122219877959952074594030277991979630738682801168281322191038844142947735507677218013393578870677380394019917596975852526554404292404228773395075554744099108442046824545499143934923250741547839490901150090270845099637582233550463607368259432126293273242644065086918971155665328692260724914406912370627002037496222942216458104121815346590801013777830885202271133161817815105600432451239385663641097175293936221770981674895927680604173928494162011681788541061109678102647213455284823796691367317734406671280608924607364574848405401997782618488136864812952443225852288181085702697581732769899894433948495367931799273658642320773864370841901243997192505915089413140344953069883444590310859247780301723728875530833899160258573705683820971863118707508132930095676915431969334059320598312728996100675769105590706381923859564581683241015924031363089075207037570887376707478482031435987820181426705974760977912992437976979110395540658276981707226150722919981036703872877444613444746317690932852466041117688496233313605943514867364435462741308953629312518075412798598663683737389315822687409227210531675667834262011442739144201216420729402979171370169148519716247298598423036450302348497499831448416266682688451366607095820178442208720832667028846900756414387253395788095271399081536922527965449519749806082208517488821993786835062150183017679891695218023894038721262977152533571162460613282745146265593728688747791954177589292900639148421684503845244475333462022557811233801453322474204789437032971517999340350100103260261087682029344796843436483127491458334815474430367662953182594541104245224692130408531107516297613356565409363115979661969322495310614642208866326646993137621250937539619985215293487521412124353085583153735826971916672198986256194303664452725386567183696302911189735665060760899083263718314235753931027952574192778933589963845245207567727138037013815037512605159000851336767313516605008936573913710434911606861986566329662525525212048904810805697212043379686783375727079764822151654186495618567560655126968235967088932186772445822972534352836733229648885570856960756803438207458363828899396610712320704182111199380889579775382485200984500339765918969255957735113273136796332470677705619554318937064355781438741777866422015126551309652524365828642159573057156651260567669207517543659377426816642451227744205658074351746899004914194415391233485397175768310127468946859347868004445590516137408873496418054887678128585868228586979392455474315757797893135093315469424055313456118611144622941087363444891949552549664765077237607846245193681867927190368409248104539488630679535942790341675674212739440398675317284574068192616818424433959729734646009483142928310418222281733763141484301156820179886651555908617355988373520326744610615219652317501811749191482414753306304238074711709570967045452266410579420356886290909905894204578445309243256059431399015728911817257574916046481156880870961262046114776644192867449815738055077892450794843041379445834213328105850441107075217801088276911660538327985340219641087845622117783386165433683046123539549825320067841975861630589262480069664718069007070774341813938222894508043088684330642618986373739048849783431536052338428458797071905880285421918324827661319385667175449550773659318710772976847336722876533681822303227478766634853841973567929492380582858421692236540251347600059807406445879852324650029308342802534806887273284958900271717093723636366243755803220345157830586644966931077091724784481136675863929914294582593934444488943543436755475897214419466604079897953944816414887372381017105505177571066862126191360433429128551259558871493307356260277741147434623477204243187899280713421135154574517950196651201021376039280834099227971891537433315614310125898401598959540164050285172651825786089546707433497088914318191895054931700785986541796367130974273361429653902483370285619025197170209531868750799361333491476899444889169357610738489825594454157949180114784569801550017787141458143240428133059841940337574792015165932529532458355463244822218446519652572415077436400050267163914464673240574589875441058410407440775855326324331040593113314175178524103448828398282495754543567698298815619071063094818054367279367665307281765245512025829934534974591841834190015459460682972517664886901599415542936347008914569339014174080753925442658720962139913055361957227535888433088845506313269527810107326136429597514967639785718470619888639441839079378174259965615270350166826735056394270933474620874864391175420008878968342708800631392431551002042054555735119247382062193193167085801865836218423212940917636111045301972583205599006218885431452614393546189901727988310310641074820764076921881529331102358320918703239197497144859115552236268780153740850675951863412525305785694082882596226619478790813112618352228471291443876359197606859707646918418619783170835317548172521569875803571830147003167452349495411035207639489040049673589237287726850696504867188888145795305521548143812660210089529155458447354793350610658918493764511193920181080800897648091620375340362761482304284950712606250719422072876667170216675354799808726073097890825395339836522438013667164772681155718063411100671405245436966746294773105062036718010020540312618203618535708377306636897639309332890233071901753005771128672488915887337022924629137080149320748196861034204211013197896225218010424560580958473476047066431813971485278735769246826619561234074256411942701244662352844256309942880580758271001481643431825282501670513016216003172386844245819232622775250360282011876491421588431415417591539422694057381089370937848545856684138524188957639494878889529911064001231076096499546492326235836630853378534117143081357625397654281249157200285715624544325005850144354924525888206618068048583111104512344329518541486082655747990498968996030723248671180565827253011569746245546481267149026250693515263179231131357856188717695004043151495935441755786353601587356155945926238938355505645544078578687079180959499242712782457346756178091610144296105792616284855016266865980264508096229502961948743695023688928078979458331712702492669161911702997810089596507730832063768266812456386345363840148616306818298694347848962935591035015812646686760599712654609846619977300587713638249010568776187678334336314356396850165641843385323108651193210492172135555131450849193313788172361922505380928123769539451968167745738068855506837810727936045459473477306106864993064438424968796766121822874314723200942104351276427796125937383832412580073359626406540021647346891512618982890395041237619091881142142902767532738882800788261136005624535610452483415069424708678526234410949381227446442924897150521070305458857824328487431748964314785250576137135680680302232573213121970609096416775317003034472178563377818591214820302384758017576026405172326334326524126594061500316579873605905838973785162767821405993323741247449460610738375863729231848479750863805446683913582741132739562411944194152633274127272022241046500727118057633872193544810524837334678052104466251145213759672155211503569614653161584959878026569730141569380522181003765137265893116486463407144725284720931418055228086733339880073023829890070109470120661559287749435325706784738673199654458233109496511155291417183917389717831101123798869833350153361744396629237704756706574765437527268648477508319501163819503085387069936683089341000099864646521956803248816778369145641121402306986842132041718563845377292587057708176959067708881365940785709765165581642160022346258711605697505389363661818047072578100858985703496543172761017972557959054549677824700845920012408630988393159559444485361105695192728420642133445800596364140710536847254099042101715538266006210750396863332177200670171868897784541396893885168946642387718275181479384268953780550213400033145230842726294389915430803178622860429157941444712561566264214157791899637071167928934365132042903924557028348278895638856026993415995602104477211081061198140692603731977660293129641954188269679526754919187410888976382954726661068949245131070381741353555642296294909325660597591295282997122904143886247823158363197530420762687884155883242826844326911614371268959722923273353365845450332423038313891356702314191147993822963570358178585130521445376932937261801390757775957675291151276626484138474667475825498197504204255351341874435786862055133488173600992194637814291507305965369641030939411860480952895474578464905647966548517232350561399696294132447357283206134197548026205359962814384290887838634982836817322844529476463934171519441831488505735988124840002864419949329908265184187337924406148833328236867797666660611173604468145048020282649465569496022769124000587485130731831844950718840089665671699099513876453698736589713615256331310784297887490679212336348193602271430701884418197772387927425954401332138856464268727972003041520818777933456001322020237112487348303715107660443708060158581500435159875217010826987277591294292173523233762156824112635822811973267294060762041288291931914152050840860017528873801982204588320658226397660986807968358187514823674116985347202868820271425685093341711274532912394706798805083451493913256322304066149599346648458441510315524386733210293784139540463242427583073832114525624703063968859053794721727247642329431316538903726756952434829564197897250733758184952161298715143896105157300204876226444803574953392189992530204409259667921134112000069579933289001655606373632003617291088601334735013626006546371769582516682877531050646344154541474024694589710542910979712481430205810114117973185815665826929443219209625708502282923006143239184067651467473436417921242623386660373542167358652907623159653411059316506278492017111581056316428703706417454118471827380299735619430597592533234162821053036634410062041785336645260669405860659400116513533426710263783460772818042038399903767896500570372871976085385447084241199734788367133875386191637990186224335591648519575211340221468787460358036441728647067360733447458169683781432259761370555402722044905842910854162824459050676248620385663539026238796989851468401629101082096690661472509142661392438389456291702162203459545425256772281126720888120745594963083662838969801648907340879695451962422113372824257972724556808983452006911720166514048080462782853402561685816971578461071063992607140598351693741014957498368885059081383252090261022813285017114223523218743940841900498022038903364872422542456856919365351730275095319130460959096035604692871026841118023554806728250719316407368468795810818342145586391931566960285811590732713232316565298448228790639837232740270061318054994589611894930908636558516470026702707318247309039732614637868498886574877966982638379515644285540220617110297743119845789831685307063692421262540409805444746419162771057512264887135939606480056819827845602462811358492418956047208068895025976100046568088260772349067597737808927826284775612307259565105614899547142770120929746380785170344501415665757626255303415219101251740213902720038089477997355716440197803235785247374409228425595436942658361458920595455310055541225173896567096696043720367641262332078852055377739928468421308864539804504511995479728833709940846246246272261930082431105567778889182432183184186316942482102866261876134144524263115455155575124314655133123906486903722786003214809220240108063980157334395789285330975926852096424762612438743221024439098877743260104547383653333337079375486606209960244300901097016336019891628515352518945561601092857358794084660767155906065033896870022185663575204722696248789367462570668227903482846623645562084087783006281725231462394695102025252936440221282682529626161299133061656905158735937715086270511781082243545078479869554573148536691358738720353764598051988886418960625010760783763177133042113062196204375701425915836673447936049987794919881815772044570954819462662184209886368032703833384043839205543535262405574414649984163784638228150128250959066925140317683227898944824791915761020490273635990887412055443557816915892214799149706466668604899705876157469697546894504387414122331735901754276746608645714098248025116238918172887860164194603647492832437176855958233510623553439974200955492720831387611845050036369564075500923998909558248644159798717949273290192568122358508091859134777574797636772105174338141221861713855037990991062908283827408962785302550016269807824773514158921956903957236372720165125354554826241294851001918166760136819188865582572621735411799451287461440378657460402442835829561818335790173905154504059826039927990328274610862432583583579626051027149545272486434176398337786182918855272382616336861173377321348776278437525970306857965550287455073451692883839085146856804847927457530387366155573277571887738070314032162447175796885793255490885098257066419489209449922980821502857885901243605070790311652015827760208150446455648510144360680527815717880022780823814858476265394820163626485553859478581752142705819706503703875519352419932323983980916093580763228340232581780952621057396015907573728087653872053133850724211225925642381675430572222285162576828174375290199910717582256292125745044445231480932779613020585508999426224760136830933141374471761748739469016517277259183095030461076673714801608613863263743120443675935955304988483810817836096383360104886511297461085080194156311285503089755856095077143833771087417638056653527092417950121424964166700194723151731309955531601261662859103399804979930077594553253837125474990042983842177330995721300208146992012266957939330556778330405309128261775500982772117872039806233028432963775095204378600992810423882386786986263661000451993315027160023299968870297584499531840355191150011289425995278326117354734946818114170790744092443653982421664350649217804223363584602832766225659797191217279204090603106209032629783196110745114846559055783049882242030148210781153279878106092607311857093847841570757789513294764150623088012720598564000435513661035334464062654487772689230897278713549206040786162733261018883546172067884102421652549574317462910429700152444603297214449226703613755692198750443787154183794240350594528841773968396743675638228249706307584742642940893325290355067785442671001963278124426429431299461271339345205497394046253892453675206222930417877406591786231801105130866927166111489776410083370389177132024964951631488853888414657640146000584439309863830323042591128463342428182710185084371509652166918305208543318384953739872679478047350001414907438929709527472451732825213522995596824176798515450295831253093223546163797406132240705873920368690708216537985142020166172050442338929221082507669219936411727285285543584439915400622133349363888087443786174977848957329054857950872616298916803174855557567387037617449418680461033619955230579491026178227879005940235231600962425077679845519090580481125841832330678230589146892538301816610532117471831529130746987882590811992159295752224345593195025073614852881540821606918684082412995482306985803843814076839721997646742345073473776294218263075072263202388873441935741094949785122956879410615325496766428367173339989108672980793276294617280211272480493158118552332519314856803075292039350288787401607396394631977223263402182207154746428961790540016165788665474347243984953965514870243654394098774205765839753076679409580702279164509090165329558600259477080780371440331727243588045867731185119802493350768348979869594856950518771959115766289070827954446929201104147340419794131855368167711027552029128307238897933325810187469582804871145677932680340012792812734699885701041202353988434548326223753083317386358944106606402339962569204396408562815793009740027339535789063282280237472333082236229815536503793709337819042901707387086228618899384399049159662345263016991511391391882265924612612409270025478397820291633620677873379848750744586443855785449586193297879412240362717469633642207136900594667292055667012708456702012436478764965147584770083118141259070913741019813351505027305963929972103635610141707882928637011437511261922019041194712750192473110445512860850436604412874672760459702170703092256635469559425938569597836025867657813585249525903084999840028860543524229031332480122779480028745604377506783947971868662704617627479343509174441706780123846334145940207642010825772204898927509425044805993943787837670692762046347298076645739419468245448520043193251240380409209901489802911552354619616589689010356960906072183329049428552455067741760884241633111018847143683046889825138684172860427425962562773930592490920975818719196402239666745140580998799621200756829383989639280192125932023668959247879905570758770066729446464848960856861011244325839920651362726262051050377814759656320531894893720082221892927020978630904560062145331440994127405160412120559000610464409274244150643386821547270470815293017768215474154897305656131125372883538560495588749957060589913265845404972050549156726907034715944533831402037423494715556818017246628666919937056766493419946201562875736100587138017993964853470625083428522422878288786311217934371590193782760284087429564234627000986661001182362534533994026944618118625769739034933062363006973498163579774734484168340233951421975343699801115307426200330454449317763270152932582198294304881868835826611685626313454308356282067567287175646891104515765344403276812046288326963651871436098694085080273561442055072299117308471224883674389092825457158457095444548966169061129881535815808826139038565550690658517091076294380378597832918088281472753550879417457476321403448736510171784456418854492503499119607692770419084282740271650784546542221388365805887220131439221091165467970202295965873613783280098966842593662571691643465888753925442547813683126654449337376218280319529812111252409051094456417952148606252918720473810027022358408015148959960266357814401359043753343816480125140811008696911683861524062632477540628186444280233029244385942140919288725206594629774196006168567247790378303830278663272621461357891260176100160020554144037240076185510775263845590584308727994268082850036578263224448424901982544535640303991823941332215577205961401388722552549521722278549781577169118855561279110804832690201410705659089947678088131843911833303651288909149028080510670017001664200494711585272170078280309774967820834886801167057546669690947496683021164563978744638986067357395715064160245350220434709913443010974866049618912237955381359638389585790872153846038023900033077164189004876371608491048283695399499867254225960447858487859673685617691157846833515755434176078864144976465877375320633678787346789471400386238160517111949555166981457520562219919895597357564243615282541000704815010013863489999882263648687488346295984543532758532249152707586066764579183750026381636681057973496380132535537478153392177212009638349165521639479899936216798923829335490078652602624794293390722155340240262212787306536939178818786150987804583044563888021536536509682143803882609756862422124325331611416217905516893171219868230333976785246281943650735250938624299402954612772063455350679779183249134649856976180405793507320193145992044087185866549768269583293828176291041429104595818399140851087742786193035684156787772123973173000483117790379030301414993270162090423891026585902466208266946387708584924313913771030244637568604826605031049183129557108692154185621849231668258255749017036932917126928991003371015117152700025647604456742291450992268227769155662352697847744500705402939610979272554977625555190377766261515503248078909601162966885940331142536945524697208093781867485453224956110213603068739765339092927757569534137647013696090759867034723199460180699101950070281349789376362116310128035045333981075095399929535036366856282199284134663342927044854144381681135428646247802183225656097116657851843057825131747886610023941335863501529416666550167227327462033212866428168131586410874929692826889571644039242996335959895779221282432748996454121283804166160474727548326424505219566973953744483936069859144682427256030314507840562068021693743118560322004557274124107610919583009894905673732829216981470036775800989715647827017159552996955985228342759204273922219301517538580643039600483804493584389165079850252076118421931061948195702218100672727802741368011172038901173282341402188985554234352454209601330184739722803309060087717638452703818316637348463845910269478478555972657265636055841602926513174441731798222098704915142736160081200519260388367636582103414049454031245259674433092999707747408915183047609899839809646994469965719407616406891161188866143825805992273603450864643342645149982271816542861721504867020481310439282597448261303241621993538519722304062055181230964215012758023817807788105599512487399664337140592431292187840770619798667937811394730050091242638248471517989949775017842302126679720167648138056888996678177484714220410401870615070840293144978138706503192315582161847135801255814934211469593093577860608576743926048043486554179132575197066048283170530739966389064245504793818748821949331835393951693748191803279186917004253452063333911952793435462336064235135479284178339894937021826608529597776082939809023944827181663498890434198279581077556132802640597397037680926554307760052938846878531876335958906747087187402113597136701078960826240160172790188136439716707156896470573500591916075038593538127249698154885571755062803405717413026511167778666518356402234773859522750215073505754113405894193913611474886109730832063507395553607052526652253743668877342741559597252913387170646396997288158111879720224352210715492128981887344362071006081652214157837051496322959134880734055238812734907676458456704824245293165532430548991635349644200901029634663015010267131458967733314132988184890477998522923820446599922340356300925702891207413725301585470124011487814094573417526776097286974327524421739365387385312699796936786049440957246857594568294812707307479262658764018120432817495677194792309224980971338857854984741698282976393834165534194215101561354295365080276092543218008978118285293199341870015356500779812434372691666659542645149755554658693057525138942345069003524028906240703880625000042595234755369247003402029152767790694673324545467914616834614345481595734722976653585493839802237906310075127289374728474392979050053575204663857276626848067144034091097022291651419952983128411289874919522164483215726627909681430126141159049510179020538606765118722845381959163271161743782333428536878013837720125744712214001768474002730130285486277416225271855186388082735971557027000148244871338032152864312476436064028659186369579233780333219260121546644038186751638557851876575939151473061718912278018010804257097984574563676527931552921876876358866762629572639583885371561347804726202969257547656274389240839599296644802272865689302433907759258021032032563348791302197399040916350682716157868575485758938607340906941247038916374666365407933282295580748806060116573888934348549704113739788561547456966973742277993162851983422089412518148296924896882004937762604977134225475631179263796274755067186910694928345156738038487151435313928480097291013207634680609774885352867892246275026353492713665890217147379905384501799085771366456462730934064265128104903043383917138936338112675019478078924078394444599682465580188766245846055482040401179858014785985244646213210567018328972864592774778983141963669987385424335595006478194873987844974375541693562090714343632633582562808039403724750567641127216855212582402795988120890700343655897651824689961972418297501172110158846262113286733885364451395213107208825150717084653668471268238070361478900426204371455357038474623073164735798338553063397113824180824159687337187367014788337091912534822825226804443291859230972633244354546967933882189638039755269498879867638153160200648120070128150070375616874615151803568996371729600656346041257902845221645505303850750135303680615211462537418407545715948370268744514680685330239860219812247593578709730253932087591813150719308987055346065487968449504419205070996924230205942972324594438817273712693002729142928039140506295462901493600527302248673654750360280988859163488213132023287628975659220573351637941514510333723949428119588830581784284352853387629499613975605326806672967570064581523398048919053630846641988873692603892593486149348153505627439321327923641779559051936394045823721716765016481162256180496228500416546112522026661330572068296835216689197635409585611135086764656204867233544027798175393990074961299028762477087828959602609101768469272360410043385462605112818821611207976716911367198350996608422067552601241301227946686496250922006035703420500512106071210958391636737026888999026750283475317770911435684138920942721268531272202770937209749772693810130146374745406535853371997693702804418751502267194314098133763266258643232788679879601968786420393634814023922399453357571221059073436180461312113084307778082839164839464714143328231451780639383072762127643325549716898091054986976031555778969375442937265006809009243558378186549602444236141994833973606400248501137904566137528677669031839341061718640643240331395421003710312879485951765348775948423429885151900717889818092982391893948551099232442726627719482250778262523912991896895364902837008014917191867901222381575228941321985089275419158139510636677162495733674109893103151315621442028157706970898588041249177718135272855298306387162138489649358238753317264706249492333069786206368013990323744548959560200185845671692651387092945602199918090329411279470587340920415844372936413885197820444191074015060536688412862343641956826053149815586921954714659360848855728924573804825006909665657690488593554107391929876080770612316663797586684999593696843121261649081052497109778882052769287749161811051640151603709975461393413869528737982062334025952019252553706782354372695567805286476017119465797813640579380147892420032895953698649109534959531721289399176334093822763107848818462746810468775284224581549553307312419488184911741255854757794209784810844897061814222398048629463347378871826243042514595157254718973597892789168841107073987756182847216081347170979116360622136082492449736262714602512785988392377581586053757504891186987976848488798363318814448693604109968740704007531561452299757826543704932964937388934786965310078535091585140055217387652707900751330845386931549354301640688941541874098040291076199472535567743787889163176457215089284066012581490251416069203901926566539696433896467331932999405779854528138036872431443912351617437994715993938732609480398584728821845345274011849919461308485445949729858015925711553030313191725926795533712509435266616736479487934915202103033963971811941934840183081274762641212433866624687966078326538977730670335848188885717818651431483758951036827696110651810108047099739900554064229975931249306720353911443580406455854789310016639382959328769419986945615616416451694936284575679365562282087474254541880947681002291902543787610793535957927649023399441565223239455150386371053411004425685647484234135413463307516490803323296485577773895115519491418362595258703368902898141885575758803237490006580392462203770786904472754936926631022905032120407848521455717640571882640796115177743659509213300321423052657024691667432566460491258200431084322502177216164980621728317654648164866835585096168013474892414774058387039305705065773822811573393146044204966746408264067617349514143214330394208308486617771440552363705473467386730194500685250087013105392385984768532755957636187498839032150378562226264423036527452701236398074585509390301018537236861965379963344572879171029476517399887888871970261328303902213883214617337160915947173609563718341280594659118884608847776616677178419674735044487665475014688546431537321182014878634696853333750836511833376891749189811481354650797686292936594646747417931577846393588918756964487021804801964056970622339309501348159949118798597638937073196784302900325990076132337478634716762871874326083632044348149207260891201307246804791300241412270340412055786118371886503278212917181973181921288802075565143341934909819505632330036379215843799704346361776930917368678694872470453567715309933176428294825240495125850075420931040567783845138617296764939283508014335390959173845795725879470633003419160711025259838594790238584649994476465271046236722878321505002741620522423893763268732257232596110158437282410046242747987027476587598779345564267055202563043551097422798322945550929083040729183591580020345033552135625843024927828457053144241622200454386851742532469033946443017210050113593739247964471235908455419827176597695965866093187085391447910423585008720683886646365978819271747767410624217132718910558086974832699609947100156823738464924464754333991316883795971056597299755454097508008184702848286466985823442029359176258921601080488039094265283800061496092470825906499277232549243854563244548344465008154224531464713803188784436927271857310193814919924687542531953469057932009141088163469786643626690532805163166518311437385480980174003982462206607391872825506334214211427814153388970060409733761443960026321548263143778052981041350998483447128954828851594189083456226024283324569684395610898538816864130750054940162180723841490088776753046648516105030976510341645397873305840637799070488190850702853472639071158035655142134486051940092705901740253230445397910786364331762458578375910123942737258253256106499425589265508909271460210048269646199266956616537678065771636648789207160305867698566580124351894423982567932851357286289745742013979993768961290596577805336230560301185905178713866527791264047568526751554346420655073057507614454144498790578114129353644120103774650111565391912644638836716443994219303352461594330562989971060092922268037110972760194497240286657854214342021690203434883610272549133596442292710155537395310832709303887026690114880812339787527710997882583300426026902871529226281342752482778879473028560170438691777441790486879348046031241975531588337198995214791285490803480426967254965479443580050713304999571520423616208874668275918282069059501497469862654221247821990698690810003433906630459069148163884615252090931083403937783057642816130263205016147777298210643711730628725723174797930027170419247442516020038323622068867144710227309812032306617965310882041579049958261853739634760125426021789939182182847527931369607108210782712262992159272496301047519232451249208102858789575237973033228780746513312694504020167172648748785637953792875382880791230633682289922815669549307109245054599129640822651952410354612783300612437888240988614096882227861365360407718888748728961576972664518726039498740811502709865735422737319406069604143075934976697224205979971820670387914567333961606099708706619131577395722089888750765101201808504833640831404007786262589429354648859030984504339082069158499523046598019162442862824969619099470464554069867605549883321169271337964677810100699599191788715982209238656726277921768274392449270059196697444717509392379921093454661751897975947785647263173202519063813341773454390302227117000522359618236516342945379064129481779718926873419583739992529178385426189523273638084903457073658408904241784029451943220061268757850324310296890067313766970283032898116891597437667465022449067475174087735650434435346626508914295765165984190980638867550891023519917315513192640193640813653848531822000978106803111441932083453887592151260677154916411199203035462396427175998549186111695024472932435493834437878275156589588436113190326463327252857815974453918191276671734601193702604168554949842545542631568520025280389710852138297859222222667832496926124273442785085174496200427422856768155990681456012314006122184143568210349130968367724100415819646532981642568024288812166169978037615643721836732593160653038505495092549425865099035203979756636447724329304689933808488099248600714012272569040841522662020713325731532545016077428207039594022037408706204045737677861871925021772861977149461080353233480552917117159321640527773539749974818221850794643489272300507291127113517063287867369760735505832959169319591833430432251041928456127871679319400825505331995056069933485061911869135932642082614847115664995839636355936174498780095337218791083778404363545018100284578830730789246222035705912636901755771029152643044038907080681188620955017471703909542055830931723981318467130542045332143332594048729376251206544136685363913400590491367593667585006784485995120235047631244435720111232105477218417764217388269846591793645823154473502094113437143639596604341576088497328545674518523951032763909146784865283517320658488890833300011729309256778801993635767456245047386939507466329256822401793480830068965536214138570849594223066811758718193528425095189541460353978881668806466408021530207913462242817611099417187742545441392858158211997695750896930016250553112240667729809142435781400304956535220638278705529474711459581652132973464797714499242995748070047577398266470257769755046842189537779347753589134874734860635849598125875986148360777212636332939841800972775647407491763622107160177183129639384280406894694285025933277082490780736396178995223748754218253500539011321409129084914967667206173058334429913203761800398314096285490815930936866249521672780368043275621388812493237345056451504748973009808396209163211680183832523266643535044498600729356775096111035943905088616928451700449564139210579956540302700872997723644664367598798446187774434996081093455091771313739945119619481646254798517401610235498510455208838435064190988630940095905551308684518735277980742364690672859950516678797827362176080741323046797885615949417720439391430926167410353443183321099823900450021332290181072652403729819038565502520138674373275138336544688813439290307078387262998667727343381470562281837336268678133132127497405906900031172153767860103939029246173257592326645491403139083563690272742948937843336106680119008605681414845825236664183583199843503798820233869899851017659267379728040993184309856684653975225461216645698366842826334451277985730467606514172486276155397863392575322729914085204020637557473468557138454047027256308879831984577506215566362032545930193492346439716311110831553131813293040319397923792508067149014779212157073220736126601149763795623992787030578896012528120817138164967842328514528529218214465256517495891925337025802413833629952585881516067033783113990436552739411717975815242540566860074801336125970221783185211281565198781485685768295048353762343616909081828090683402977587712162444339667811043678923164108951799734431733700379767842542690969533752657412593580928959810989100300416623192804792980484003347042532223758564557862064707766750194669705174315943437076233042639405884408768086858523171555070552306459976719336694090261492179247028824062782303970518037156867457163541873647944919419624027505950649642129215821959594083343835731310087949864148745930327521099605214940414109710121611099745188568158221558835180713512078611787397353117690216686623961257467550022775972460368382530111857663316733079113462098195704579446417732029495755669631663032717313543450405482445852019628802571647366785978962615912146852861784642274326180532789533695162361639965996843088548811070962249233833506126166881503995679968025266961609795889055280738809786155180758601904357304764222349128767005377320401209739582749815008646876525578823744678903189005211979524842357877930904390256414654347085802188184595608957620475299418329815989613388704372865907255680007306654268083145306794861933268902984805423633064011968574276159786432223058925344105958699121768146594769171632885775240135075378276983079907034188087970195477230915120999112848106966842304253950527950332605252043276437130213928301071720629817689348582531511205074326722872290748440041189411965674306223853629311485908514710252221518685452248168045661787366029985688261865426768826696310161855265397048344712189730708526992832430781667376324651013412352320616627539016094205666625603375146985835496946792027582411865782896010123750343732669169140757158448994738472037009975281600918101768045448822261297970115454823274712575156555100624902745145841514334267658922971372940818722205827754387267957413035176152807088390273417725915564806825841291143354371279897010461681297755360295900094781424121647299486866520475901388957311840039164945778003230959720093833087028674957404854595886716561237726861478149734779885692079852639818957877999443698088086367849121759740751579337329351400015484546422701661189189085079997169925304952713955933256904483875275119370481799542750919020617372098586602484750439307440885634703696029222996972227320587278368117230713106171464702853853836927464977271704555165200864492418155735074505413839557338988171685913657841044725787253372078096180172189392138967797134653238358075071899688243121675433606366044891204372475093488988067332276989509138842209369013653315817535576284015176908427302711167411748262599006660798609916210505611133637405109685030636319889486234627853241242088279575135451843802536963786080871268995311472077050732765669193678528865662200082931441403109769984463759064876568999009663337595377160430944340032183419973179478679201744156906351299070496584058938296986070224276145142335237951342247675903743093501682004522292833567222684220940580351817977417543026480045725406725289478009617621078082645545470630311497151035251087855519377244377643989343087609182701788189145307811123092963964540976651329684657451536573681967674472481988301257657309815126022901748793406604596630913069719362247012050818134531498817893568591481274425465844059782150331512127776537811135775055179997212315578513418406980944338655041244511680000962768975338332019334619044928429338625227546672547592663408875468366286491324528396828605104212115802205594689749336447367394882951983778984548163986575763548176116731027395294476792387622117167342874421032908231094631818703943271368520812849727673297748174661617273995924983950356310146311844199891922228816583116315160136022003350907150582006483296539737790286775981485983020395295501271748595352741715089406154279929900942619119744932046262945950853377672015335823269805409071840111780592401747170835928233472090922242046478105187769386842297175939241139474028452919771355889746456639054356168376231525304619548917913409091263288452191254142735227356835504215081222948353543542568191512202868069856832943883576403480506854972223627570374774357891709685546331857784309076764181502777678591615960866127503319785425322644743928704884251873721344226610309278712940110633777590570460657989697568067939940577890397401131082265342777506355156387622986452631411975813939158501678285891051097449576823057025373554060272844834259086924371058142062473091418744187060084997882158919029320543687416132459591910343121845862931745130924913181751629960040826309098942244090301143036828836319285765258624881633214289992768240023580957438526547962010096604484146040775951421356728140845686786149715955537551487686927856706792707004446989046641725349450927279590456856054541081074003235917020235333802612205923923906818708892990001003640517232100536910105844593032734680593129427218219688752001741417340712679878801290926114278132763824312076992902759606331218409959387515509617978868504645787678867698426123025485651269635085183557647412472484370401478569875619814232622818924618887060700556816004676347977903258839919656560381454152770107554434804580728209792996993963866013678406063483876037322110292594681034683327477615805635379797414206337645689845646525027728313347539162892863997263509715286895576846891787006583708189670658845592457402059929452651208501592681723487851884040860228317376994129116106724027215296665589213667533074487949234158480056017636743507479985893526815183716856697831830054693301069651834033183964681885044768045180183218738725495692259005143236778961507445852562246912140930496301018617620399056339316150644815522941566130506866123015704745885304360239271804172143780781701662815459154668784766538331569336394933489140694112029374193149652062411386909304943521298050951850791562764678353993377643801922377357431841046734464285956406619142834622407654691990211988953466833270037789276889145380970321573323773676332695108082090422363903980782419579349553121610170098704618778216663641611014654926831205205069517022519574894733181250848548629425092140337167579307645139103585670482071078533540050317181577678029460467536252549163964334757980005324808829912679793726464117727433306105841681709408349782262239419572560510772585976019740348066217341727754023890802574901151219557751342874401112090463761743855426766924138060464871207833873159408516150348239275412026165540619928421415195177834309492549766906211973516687380113148414936770521393587695432742534543871164930803940054833093414781999939295703052419396126558624026212717206768724303782229616813802767273892949162421747905862673977134850529939002535908010910113864034341184570887859541171739389731625479539376134662373941594109212739062626811987363877759749822040034071007944461314003976601763011575650018681818477994041400985890009429238255786268853706103388229746072590513029185092114126459295950061625708143037641851850110772817390943964390479419474408350626981994789782621744053203958247204583487779348344462206536879613869706778901473989513847106315972936736090157157432893253065367657542082653280393091833143151535440148350010675541706404381440768199215842517558298824076071926153625435902924248746393844387116814682866366131954594650511204668525422273328481929512257510132684525971782586109269564618461912521008398767127657004278909397511515076895494599096332791575686391637691744319252646351026931583278526207669866146699588553891467117782395622423992464249942550308770335883078878170148939512638891105222989276645615325804784467435450155271703360708616487717789484805062383815111620428466077612256870521273444204971627173027737555489805021157988835504365252360036387056928498682976317026472743753751725866845859468349450624820128063460192918133462482548915546723295000750458453808831908569931785859240383758623410079120080060754925955552576235005024567448219849192800541429827492500022073785168034304329734627519363886945188716067226856643357328267363399205461305030312190185464663487624005816072801356689992058003478757048587292714742336785630793090194640310755893886162797139592682775318461489764477670259240994018635156640837796755297245632936586115404732514997874653806572841048806456355313259553497104016449638604558951294880820310848918395081248679218015265520828973730180262888036895795571616994342533582149852456903591665760631969354338516902709193888534022273043260935114725743159240285807362175881188169654828114687328898656869940350901263818782358010928865105046518257951949491709287426829225766815051514149036036196363905112587424987851357281350644814092931569892795938269246705863167292176015986502968027025343626271036213563108774129935160394690769275672262711164825249429578713560833043293095530279548637082168203088656521707643327961550793261598764627094273027589835216046974464960737914479954097867562457443083808886591999721486917658392366001073201620009083142046718489730415103089618807098385376273267305617940735203259138722495419380195866039567169063177081720261645177802433955058507644478351662317465298156340240001059819775113578166877260036901271151042777034356654035010359085702038072503318167467431305630920621281756355940340904985655461698195188336509016394895131501160407578377665069617634099209623686454522921938463210565688967132993981840668642000101255341866260181795330696776302985542188175641022528642696116993556598740177592199066014557414522270909546664059465987680884494361556649625730737689905425737206371693960487907160486180115305325656343122929832308090780990274203228882234778413746037155263286504052577369967034956533652142373453426422307542599112053595641898251488979777427657823100958495313285177730155063316407998974761365957599023520290638354469114625067918618059455065405385624624579281363170796418709338750532787570967624169994454156216186992314728691428040341318429686004306021392193585406274594206933331777949799406094128816480948212013132115597532968371496270447719754656717997376101781111627153980705467823230645039507701232812171528123324798474533531258945544699668073640118680964735290318024205386035817672845334247065155439416805207522803291411125642634095475728616268738049058731485475470606267602059034292123515845066744159394937774496913780382654533229238554424324384546657407784424745676204376558610200443551925871311781166026983343286391322397404530407797457027126600941551116619147868719218814603672199154931171721488602127611486669873038319506355748210588294499783940938738504107148136158264614537125252662393619161751023648811226819247116324343968623579924308829147570379317822220698675896951867854251839461004055626295323512265457147476351371603348107897765262912538180015659898616700216198507492123424143120884556091759473666793452734412075472472978031648085987600821694016755979755235457532229338966796478143026660937302979627830476751731175953973284257154960044053755414249510641311417190695377545569039458633161484812054986372815296721962695137519952895107815869355512085837340189038848865649097052128507585524543611246601248303962669658002243230677602456933749730555673580990665124424741396785459468220784691668424169374216123186231052370791238576017082742422454780580188728115947408192966492945989037715808915896085143754172305093926339775270389891041864520272547891222806902998103743183677837687920928921850385080975117203614707297242059278246792227311088728572232110759592927449832950246675671882566366358562837605004703593292676750785905383510114259826133172695180686549755028709441270680767869121131489661997116930600350694873657134468914396404615335211783617264396390201659869299687089707000930443118029586893266608966331238184503280999949670435142297836979440269899678632931662602258046807804907388823352154050481338839136875243180854790508261154745752422640562968752469123086161874785831339930893976879656540226543341365537562637897746233434533359315211095467926073651093933431585871069735517937016040810197274298645714058679942984928220879516354360553951398418941030096048096076350930643404822557380500145310050931849317224994496376741859616530538822457387349654329794629341909493387634989074686896266022705960285724187713374126977114822732244848742182181470774638799906610962950745843305603526319708790272796156270810374535244690597351635225885168976526921803966773288285595592463512032048311671582973841361568653460497624009581908459182158399452562324248449963013647146513191508920504537995964702992645344604004293932490840292064701987807780958086629853099219063730742381627691322949159430891370785308932156515265158697733987528243294533211887621693217370431193603154578002027271440588752312464372112690289823129737527063050300462736414270574519809580628387985071701876000333526316836702534986482461600642884146881643813107358723704631128512679224778437606483705641273532889625307330043705363800467151493510018259839478372217875055498301785966340139316866492313600394231299138641476083977115226061564116890564290953893543494788907692887142191932269952799990409216946783551833639244457991923561538840677453898813348755009681592991957531426423422191964013737898315116028712536483985271055957694572706032458061296473202513475857554107865529641705798566252184639789395103045344467057921363876633525952898604955661786877446323121581270198989445730944059233762323039520316579576948141896058362851128964960940853515012046549451896676046137210094194271499522936652712518747728960546608847099073574339100570016313964535812423192438659951719949625302433994772712422855791282797177762966790043358729954261190841358285002701444046266325131393585283364262866685545076662284246741582019084091314976958155055914268720552739776780098334890884288643094578598535906995702078244958991554600767956410077315722612813032415821443579249126265054881732890272456087215675452695693396701497915985477833722983930497885728120732691440992532375660383598539650300576590658314259082231810685453472589842656740344134724510112037733321431318705338080372930645652816045245998878512137106750144215765863142454954948773665187771129218191190936027082326381175458824306218472865876624128637849466061203466885257457517029242206045014200025277192396361220644392319187146512809899374005826709906453707798710595096416242028507402443774509188083050726436917892785400873400460746732285011239844356423976747338092967990454607537832838560059263730118545375793478932819484386497003292112187597466038398152484706845761307276702279922007748066653899538552663170949128457783623223344635156059389563893544592853664755442288026552750153444067461258425363901615686341764077457100464403364115459597213026978525513471947064712394691880747798055161886921909303833920413054537820225570040707269477215049768793697572650856686435711485727216148121998989205484527888700984146982767745994752994168671050103363977794885255548622083347111546498792799284230434530068346651339113530807114371421888421130129535650070460932942129731478519004555602527809798266217369779868190916931262205343944949939381479954388513842519565506012925526682249602747847445463873643338025077669453358727961179278944892011679335715823508268890007368836357483022769681041753515920429836181884720763996493883002655249301634319372580263012091135404474774109069353718163399612534505250794717258031881071600852761768050092545820346717805899596273310679678143400041851233162813262721739593870460118169443196031784521584860002764579064110864327202484136416579440193247785320265390530408086785845374970019563758818279191258462912210544509084044163654375627907649845605224300501334710474617966053781900894734453609491216003312485381053570707473881811430573586218085336484067435651246148712291212623711347417929864599764374169276901120293909916843735325886887201773340863640112025202878201002545061646816912423108688777094165671567288605443533178284138290455428381471506497538270676426332864433610926086186722328415650456358031554071079455128085107839687019505488966425552060928176254838551626391226290053568838521875260707582760412526747787798419077884965594008326866505380548643839565308695310616550170358011050923380769540864079082626100901597864879469341135058679864459324792225246475816742958635545053172485614773720571695111078711520771927766866407106074898703456160172895277424929520469095347668615168694438734799583378580722202464960177020457666528144025293622922789957003247456741125960381539760980978653831714796976019819025342554389393261957215660508043888744534703193489917977091452331099108386229815392406444020004719815148872142216346058706981894810221415245066583277588826234670315229084826362054396196666394005051967305626324229893824331942655109462779468839195115377736850142809330488753257812195868056554935225069491563821481783753042648978752192943610323906098394116294719651091776593090629417986823592539874158155695363112818423893108125832536731817097592955431432212124332074391839109513485345472830272030282271666713113528795478733333980429144137881515526261948717668059905843686653037976968501874051679955181176729253756319709404217335363058354507136411136343424896949493192432058141835465318593553233891936541404943530642997759410725633932270714065818434151246552786832141192115884628650622435873847767988435035918561475647768440793062617698780381628524310813469272022473086819136503951768123294278644166268463714023527703058554798256879901164162725528617963004055961861330779626547434370916934320951595950189017864604146654392481516544331689373231393638786028694467811781641743631080130056365579012562991185108884999503829717157599849827351866981260245932878599526824032970481992569722485064416319346875541878979224235284585265725274432902633196772021162144662420620145199809937064217467642558479336470566747184810469263141291304154194839900983393229176752772788730616722853119683854293269184732999419776802099331237074315596993135457540584380498947218552170787456267327610915328870923050256724039629646368165525050522984306545759130198012725457836226392862417018815510144551391252891325833937548345062977517433951943882948246480521872033306664978163945910450810089195883341789786243490116290676972648513839024544074383852429321194761959345362752546254520575155959800513362528876829818196015138641703905047545616210816391583830514402943814699106424309018268343970336067297111567236568468544456250857055473635843573487891574639437037814867284578819638434564196458507796703137057678985324114316981169966646125164571087894274425731730454979934720434977479206702707963163252312892822382523970704228099144365486317941495694140865524828055747278954296257706140053560459838744278581371468571451915417920730792547094750522452469209837212931444549345269891697733895415044166296925016774050857158784383072920289817605232542437323739098957451885755433650046951035213219657695361796858544732455746001064591533632302551159012422076757327836417223952069930718697727119763870596313659947810813956709977948613577927097894670388974344129215760744833880761566372898338320853570449374330301479031268666625200613042392240431363019441721833815530935159671951767138844155713053219772955930212753251460853091439815624649107364547481565705128628098887907852702872334266337746451289953216711382762553692299976483071877083986577415706576298937850535870313420232957016087470790221928442168910719167528464778552564397079391059887554131387371089304973393171920022974938587222766399203132892355709124176171812150360005132604335172430382868328757264082036531625918367733559326514978268105235172267709671872142561850475091854007862273889833882609478049849748349981310592800536867887413332324699333016220499930442670596032174063717602625871946743716840190406577890015479502793567910421399100370876169816950551620754131837868793486191372417653779155517493048276218102653960179074582501040778161162053199427915170810537705823139876323753305392765883713515632918145338431586497005611416401786037399776389894184125703806866559318601850227599309921685835908662958510714695134268511506485305699834827482092056520709207141166627921557905448208627663385162650535699308820773746430563122239223996730580026048715225500329346119799064892677265582857961624998975392545784829639031869237830131864748521571276573114692141768193992605802835283388375213216615468879247101207306882759947146925317453358494948372682465323261770553503125479431880178632843285909053373210720634407016396993307371951037576227241603928316464039496072861444026151484712966360583832844443094277498172495861063360280906857523997296599713699529162453147160122665310358439550793287497846959226113110755587804975289545842727424506488404877543914871069372167260423437458050216421821279406886827282160610224891238388094473958901551779557540026824592522689331352656739553485877496440856857777692674414178131053632781303864455047543965638776281651741984889108251501528989062022048408498003257997439402122049227655410180699452771522403757561716498744924359792433383068533951454757933496442246995943039841758901133216049464983242864145616023364877962868083403162824651945654996305010687184864027710501166182475672150975626083451034385422707677268238162691459640015506968897691514442925716498993605460464119073277891383318917616552832577932984851806553981162418199559149339147824646207722886733818459749832602009843765313892698007878657960172135827539534824182639697243798256058604849840203527938362699808225538665872723736290481074944654802549881757699518607361600237018600812156379309267377963879298183130777592558007772812449690373284504268313077841018864438025489892698766247025331049005011571553719708784348959238819445598800797392938264052472908005208860606097395111944160279781960321613715311136943331739826933966706994237576055927071310757728182242496094081218565832770713492396210531292133354997695940690538131098119954592047821888386038257529252961375282195942209754964969177329736338109746585732632360115682419150127052245606814944230265627521866117082947323717370882125309601975778222509370349453555332116755369171574696624452312644067253927763593542363686515375025516092244437589725697451603467373501097146762926184173162730922235671466228934365042783641866508339668574222240696876851021621817786043593768635676042197128227783173194672402756513677465134162385189424300875663058197795117504503907052252634982869182348430604034451498825356921166550711293056363053838185589737215912565575928756623442889689000068199100844598205306005931218093867458100319237602123076958039957794327337722197114306663321684348042477310112939820124318079988770239344091774723764187558867724858916991170852209398567966213559505999134386578101828016049493691893893945305613225863523022778356326350046930585942170965053336201427339492325701865699341350479032426765926111666230169743660475079103235261947536675498936687761199733816043630946705866098584331060308097845060835072664352907492361436402160597902992523150050980794711588506566033375358035711643835353669379028173227066274270230285864573829489854858338555624777207367151800376452197818029304029367171154688833397890427210833199827452016435653384581304545694831996060041025377929317639970293365677822701874257894058368282376167096442120078367510300845258877332134907969873741514217709747138813090580583575261341845645317606931794439355363677726734626134795581200107453853540969210464101733749050693598087159705664579894289459446623894398117711087959163865528984645665060181984033992773309367196466576091878089718185045352801095121384439678643796809073445292234922365951839057557190635158488322585520044305324068365616832687338163485136716146935279181827171022743109519644999776688784256985024351671250190409979961085767106004738587513847283589351347898115376008731285654566085657082188880901837921089371153398195015562035145729891569226195623791270541951420401041937777633446920592751067688972077621224698410560080300853631779047713437564174981132394392647644980073325901287667282322127428997867083982552728526819994983043233118600841272049481324020603310653119488258224483195324072411837787276524197222907707031290628183692229187315358734237834240855312215538559132872074616058611834163511157073631440234343586444531217360193971803886088021114375473597971115279206031945106173959963916092629785227432686413293554280202607525998708705342192310595279881394124655274537791953315731885434742882432222895203498785286768934183928317608104346027786210519487829844255306175931038622615483595163154253480140846648064067624259634139101474518989125563552580903162405010064362404327555467254475138781715462818106212798982592741263537260283554383484701563953353517914821513708650282796614375550712787733979503678234786055982049299095325459012494896626713830816988482294843113778760898871491714616478505779582402143903643093770063429345241092087079434207376027608763946299608146904967950898823716807717343127030654293514753724375201518939291343799672057431681021314865133033662796361475888060665844235775169218658942284136700956765351104362342732214485025028437418281445796973214574037158981119807718158756702815172925185537529517963635151794130480533660945784286051797722613213717263104937393549990459429479132409630820717337522250393261658569517310341127304675443510788975194189037641660115708460835644694792011244616698055736300374603914192101192136358713183426849347350512818665288892924386449067131626617484472324039837718392904520170966503159087754897806436421756764530633859413188074230163448342399603837081206667454448433606887629228987025055265778102965025383700576078353233486766881676885728423713740104177679477277077889193614169842362847369271510170099049712708122630364807468521118676582189710550425534288371108052784994247906012741610795914157101523191650462544515445428854088169275120033298834407360367570394711416985347642656435068751337174104251667695097604764959795787986983658178477305877015759911284147114849529288611747602615085225264864312908836120087969893347981419680796828515068939477602886560144356717054072138436770621585090180896325523266668202486502086695744739884897621061656638173408673665931855237642433584848718736837733143809235918333945957125357486985177803702175574994983796590462276510192146419599920530148541160720258351462650413230277556782455839301168901839792842635641371666626286707380314565740072517916054562677321421300041921163692065962024283694858901228886916407135265018694124186982752796272414126975697849236739740039855754739416360796731668129768185815372822767310810276862284628419004176194910006131835107220811364371781526243342312567373154343287919797799697276432230735658721044351733068244457233126643605408923540006578574630857897626384441074418454101888740408618134338028675072559518510370360430351224717526541687367988498973767165647525336676530861540735407818388883020687590818733532424366617927297188969723019937685869030653692592105529603117292245445924585839466143829777368889962159119283872042331360469626638334532532807493062284802463680021654613899443014929447335020661064584383613618399502598234115795742184375046529691450455713536390268852021212774417729413511192109755723009643147358296792781920003881224500229232976176138265369202106717720604500018445015028479357081149244952231907003990874603108240045741197649182591699643390432600606530633331222540075938594956116074402687167182184973969503604904237466179438679007419010767395978431102576968814783390658259082603545772340626261163512853991161269614582158604574701922824182556820238608706256482767485701955139968921856068757331571253136568263147782999439996793712173721818549517902558183502394522986720565158403951638451219334212544687822673675887773887644645783752167205130752444130193475014495414798691780270050937200401685335240160100908373390275800586380887760664876360122905654298398257017473261257372634866077999201583372803083079067291828085097232757602715671358314973690030186908885023015840287651366234545958911895332214880940716385762049259000328651111139369701946362444782225110942847201329815202650862595262829120227046756772609386970721613141928294055588244119241060489720241250637560352512392970242901158988295033730538545428760947285665238219990833255018509900470524762422655186896650295303964323731059833775121382235242709760642596042134198494241967836408898023970556158602203529365099215103222331872943542934952455453004806824888560242417622271704037529968776372398845544201410657212318756942430569886167073623087282138065666464897615746981124925299084897774113736503100265928395149517155203248890138735965893851494883956246220805315557322376261410657641772004136072368122314908900716352315031817589029698254662139274018260481669437833589163284865643585381265530746592719310045710958974744563028069683989078283899969995175778471237587090550470123808237544960209305610821721058382225795320178537955333560933035049041290117496897082926954627836461765357173242772849565701277209659098980831089504261761808730078870141995812408194839390944515983285050168448341380414711650578193518918947883590490938478516268325478216760746796083597475263545306135751081947391767555298144261261329146007632014397105209483618546313313353925692870408529153282868966816418109701460189652292997412723561082479148465199260242145882201876327685656523541974570361340881556021769713926566250083824406970380843293170809617741746438286623247905828817956439782614206245086935910408461862873339952922592525478539888330512867108604067889814009347226236398171041206091676870228798390932738634052787026114723920423152074067550498349856977455401465833338513819921067683062432140042566093471976000903569647850479819382367649645531545715157973835852631589426002726894285000429009293273881322897407433618112890805127822026367042101598506271434886156288283673622457041426969787488920312917322820380191460617880526550459753489202606171511708309115365440329529519460247881682784858433118466614561442405566303726361529246473795151397189385917072901521156547179133757643812916574900186564481745608941648652705365959616736579413583662576913913740281024335305657562771823842174989826280786952782053707854029283573654120624691465367431732532626874247729621220031130866892540055681934895138567356900658620320664296361406607664462493374385629322082104586021827456424846575137492014065899487176245226717518638286181831934064438077171431859790164796071558050518718253074993731689378968740056341137905006550024017881652611083874536993852662143916563464479696417215082450900315712312508784809782160090576002245578961421114563115789214057315626346908548730070298951817284890226902111421743276792288979828561978545909731569647902163000083921880446151077030135063359647648386964605565585874313247178921459529384255064455441129879492611514052067371140738566881499345816335863718092537884198134371289768342458159407153633098735705902680436130534400367623062598917859732911745376429606126089630139150613430996829857003632282454240138422490209963874225901458181884115785478560524825730845369408687234222840866559852912608469519987886849474736910527701660004592278214908209966241287367125432619484065262249313444793333427449750302742064472774896102724572567226883015977872209247714022797559476565959343502916277876535449982552442434507466516929386668867046063595602013980892359948828590648430729379735062831275386978255776336734246092229006841918531046892826359646896937510303744387730638677006480029154938452839872065238291629763079892362094161689274472056789865133875871630299406635090216057239485515513163150202230210070376940138636904491975267218955605223235358274713618848203014316459226131254012110505004081186515239614705338178168709483503385465307183951222332991189901778410941199477319480612334243661259292715740139143138219189818598498734300676311291593653920857306906913974121544153438989606024955335103813057364482320763319838222633061885588659031918334152033015279134115267375644642946544160895135271308822591739271045979643706931469082547917572049236935573859116345440624006439934088732183555328090896630226928354300913584809500443312976865246727179292802051941920891229439837873516652255041448164731387467789684604465425097035605035697594294572556621774507172070313145442542144478730692505408735356864079507456712768836106836707860532289528098856661985131783669331520505839401096024873577537563564721985812855361135608943925632800670020012908931808033565273414661767101451161079818290255565993649557444918516211857856546818229496771190954680878290557066398014255058159801023146771489330750959230128968839435461112346073113384386297166341683071561027877949059529987123148169390953990837721031294814275536848716285924328611037272637008313491715477631694282750713054649742455074500332606963475835732135209259804612641551715079530071136086479098644939797058511912427649331185613138845337525714611343636482911349989754880504341787277082707324624289695840937199121430111496581473129833237416297958258749768099313458550160992833086895442698886879622350506662215998030366097207004568420830644249942437770928283584730347637775075487983686311177349840487701787809500161379807200698214095372694467796986596811584364498531587716739993317804090179977861196005730598015218380788301999047259177905269431345144501266546609148365580831222774277274182586432220512846810581213290961212194041906195276947398473091370450241950992644051838932140858455938469045032991853743547651968166723549123068338787895669860188020315781694290634645414037499207998554593877503614570140742904627081216074301681488425523719623307399733285341933553851162052014053095074125418536112550061730575965038380860226679939767403098850336591361228835762476327289562954081991978192360600416469176027813966522124562356440342040223394104797345887197853351101648565753270067208180988557778454177574250037554448152430741614011189268847062481129317782248436726726076859906157703665967195670854260166239321936410985475901675667009514817571139004135255795452301023193528613594542608799478784941818059110785864812860795531851251100774023133012087612336799370853604214804783067327829066714922825570833433596473705484330130465922777363725177471726357115481683013071800396467279510412400671202973712764552885888289395187691326963729819095196309496381527013771407689294571301289565230944492022815924398674171948983460353821611134940091450557004850558811524215308558976716690741767116614273065600256322426206740738013640969767395004004175569683432600133417310596101347518272543033426587311144711204193085326903576912449526039877646264455283636973940624622551078329376545937916563913966109923233131691388486522187359059699533021231366362824066867981019345310231267052155200764313327270772257708350385018421244278103515821455563461622965170679303022146975500453251886016861798628336829867944811071651193260442156094719360749805044888753138116797406640840949664809099804693297844695000193159001835661169067127764415539755803875575501236064775252713540898439875569385199951037714542363057364346425022796145180983958325823495485324122384168335696529105258104968098117382944099744866542985020153944307312678963916208671302170443580077278371997990612489195175658215274463397207806270069005890000313674245213755774602606704556610129107547781415582736090220979928211615624147831525535180304765794147781535535203824260742612663149517199625678310568897509345325444679132965706662694207712314849236037314928342909076339642041757938172453582810365338906335162717503108377393517367483772951073162117743440968093535165763697977995730267195484743647521689623363255586801121093218839768846252550564132509526298948693309313217819202035202281865247710653020313012949729322170097568627217339827854228202975690967958531949706999557159847770407296338475926750488309948725018560809651664175375643542065627403866369795005151107805604826734882068476350644028722265352053750825346202938208204165528336937348688902568539392067568866482192835002800294221045706777614988558831860341267336827412311699416946915679785786595991170507350253844334569217432055315932971777824365057079054181684102760139291659880389097633080550752743258516895113507364210939833465460827184391325617366913009123620993569253372485649434471570982089706372346762248313036732226663406936254282183471500291050453733306316655516968287808501117486356031121051806074808907441125443861174484527841354768873375839618215447657162975880803810106187293436444620804741378546029562169605888286031973828091805140365062795660696691588201389821838874665113003194079448236397467040897406113614049617612679942690389636430110986911453677074674042804542381708950499601731601725598969213065871619842162213117062620254560292123219392733111276936219987807227823918803783496875701084412119226307084446322292742669432815620303791405612144702279152105795270409975931949847767800250254176490921552452900506682072563395866297226728710789827089309987751020959467620357444928826459684503262638775307135342154303228485556397471055684499155874510452279627090965121017661496089746299335963501139081766350102109971709535491329741418537351708475642069064151767962737402563401022234704358449714201977647128146886660635974586618447958927849194222785729387330340981654779660892935364678425908557776445403822324345393593634989737965266117516290636697787834730688038495403990451099294817460274511926368470879071126630049104779572831674981987403132156205741485465656930905116642998800887331983240787682247839355136681995253354468210839583002990477056292484288534588515632710480895076586581187522482031197328419486096965992540490937481614323079664599502117563508068103838384486426750541166663641173377146519956347012122627593574705911766764925031050810638497656424973753385331630618929627555004543248179904094621796282799065670496071749219463455740109009124517723228074180013472176865565453127269249002237096706557176356088301036013492449012545325369137156286773787751295877445910985114209225177864837189031007693642181409961520211333792624372940586323609335747894566843462436172685030664180040306822743791829438546772791998733005761182521141386535086786959183550686255188254665238582921892120524759633963071280104130663167089174231542534361099230977986821074365214900689187237159937494176799763139779357188031142331076557268612997424856855516207066818969178825499756450670495144532459365200833376642181726773720059500708955648368198024849704180628249173420471863660305231945506013911941484960129667277062336949259714010666170461265571455185100474082659056085651558650862072453473569965802363062407278209648153095170273918593825063514195246016320162341066566218012116297635282932890056912693741508045897787607899296047082976857834482602846558301820383811088974134129258282516439863550947833136847467979312723741665747400696172084596407387169585952649510481469446033765104834247111477411566577870823971608661552811077598590100413540494482520765877903294129111502239996945124534785927232194346354948631578900630347631227014329216663991427341653320624910658599508287225663748867070488844297402599855664794631553166671666386189593627187790879086144769661895002616890328546817463668144520603868452693864147311249016905549643053159501086299332045014554067456583672982400923490619399543293923772614831970439780269434046920598588612969424345381935661331458385310938147489513349208939184960702789444780285716527783207811285498247076828774914615067496198536224002372155397316352531616379794965920415435951251269461622783217572163305199043060517953455172339106632887237281360782814662113531280290343866089825621859404010931687882432212348817251498787812493992783374601512345355155985886906560206562451666112859258743527492574937362362913188022645775787861830890496396635156239714586328964324705812508820216612407840783432813968521279309626997984385265828207083195108324721730784101388442790216427524028267537349901771747302457743428626560964736359517574627534966695753923456725141821027805345181721098539337132141632318850462161837745000403025630458198811311369002758149127853202059032988139152783073281669791439783979130984618831288870994908442270858382070287045788848267978778495174279372295588494107717991569989201783973830151266353471151441849201631374970389115056703478606984301568388811275684423060281682562937797750288212429569007472629053433888483140559838404811371162450016659802851210579443642557578434540070779947984312888411099831339734829864676769682634265050520743850308969314619702238737689483926476499244508955307115464530624748836978937222989572133130006533554580357592668328267831759392008397144487418272955223108944214790063985729172729952287057672428855874663785609260278986097931990147689912738897428143885071229774154490671243465755791257522961448386747776560218475816412145622560036044381647795488534911080584183291238494188817872874380675337121756190528881111550883322750309126478883964908299035545414446960410141217214821680203679536033488230485840167798516457430906243187969038228047747382603974055286874715259174442956192116970222494628038275311091335639855105469408531336739966172128907757250733878353746317451138932023237901935943814668344207598174555764708538302527049906194588099226781648471124865504497890215058814102785760410918876168690599862231318191636933176136515348794834252530834782356406878208238258103945268764292971476300633445997816798164771532396209839062083686273887848570388351619030631076488579532472893934872699774843588601533883636563303226250780042492400413964137780621412259714568183924662524449727928028960088885402455672575804994918947106324553746012992831833392416768371033448615679266052819893548963828901703947598306098525919803792186599641869286355421000879043818316069239026043015096052114775191774030109076232042659751321468833412258208398954444332190259824287439552366281498941912093157117230659515381821486922019749951118373647414281174574933591094573123307607967868131791047398707216292767456154855510867984891376505864925343024145038802010042678303806294545318965136235441349204042512229408235564604899918936090644487567440737018916719178189464988946885767284591489049817077527174101179437448233161654162751611484646761243919410424604063861768383097670941155013479098352563143055401609160387768595492004928209570765696560533135828466603084344453994750116371654777649163737859276324535167118904038044979391591940989021464442369410059907201128245621635229845352695501998840813580040841996040353331802270475755026564847359653340671370762639951097282408498396568851653452558865117986519525517774264839002561003142948161150157056618443384618590596440686659662547223266665654920511938685926303507600991273391810802880068134979302277886122156539266705079725914836978193977808371066379489857402170087288858514042624776033136876765233042342141004318613435936884839594395094523438142680099837974438632770692831520292003126840007084673893620309840012866581971669391621522137590866338926296395189389523886673376764394010993196592620667864756417094210753632278204824857758904485275053054532600849781058760196178569453142005518286776203006092742799942723128880079596150084785259932064962596554457472373238033013298691350075331201262986649685963515196338099430708672188443461815539187493219463001669075141732451500803866521809863156204001300085979243942088293288259579131681418561527454421802984108493655452088655518056403777994464418200856504915411208274957363982862960291518348779876172864303263340544993856122636115740643188083815870106311021485659272468460360417193174323662271085420116577613429350942845964394079312177495635321353646530229713230460167635331560449173030295725235399791566143779968570844991006531830152673859458165588160474935010059752087773719225524358411712354922585854224781521138201082866816205049402754495492584153624097202981735150148509031361981581068206432923690236311309193962360140793295089163367443340768920908732400683906909987109661279951485849249626596365828430236229432664045933469877632560730973243579027242452167812667997481847777680645015820907691190185861367552379992163597948291222928803543537862726657945476641019751996975576545002478214238597065127484439023915303427619553185692786270709232646251761367856835926537928088677243691513085070106252897697904973940498629998134775916798811765159006527835546987359660029527706694298411527582532195518300851994144704222800328949811181480718592597810240493110193263523247680574610408211292878112767216716822700688428082686700449929427419992599382522346282380365823564304404775479392238986365018113406315851817243741241493954168793492356445811046361796492654522726609528114303312405586828664239418341496307876419121940208827835793886442461542501625189912513754021245916100357733582311716228455403176762301347035299549813983966009036625518881083673644725884820449448899355265376215009512448153352938498732969187562783264526301803891169854529183804694627087226848159481155028720062368011033922446068976654503625318288072507819165975309061897061443167609022869327471278313856663027755309266950290341758738790248680402083790145487878379575527781949676308472214180562217184154702311957373409400558157449571455657331719426079454114730515269982346658176671880850461084947582487285540358258982445024814554042415149802671431255370196902613287519995305317513232378687195015149718648110205937071600785661471357871932651163717822071359736889511242293256586111957600125493054917827185016894563553929878217564858298502153540239376887977760331650228252616218247180468754523043711603181043996438691087553367372987148181020620385891868388588678822671958919436033776913886948522769923247267894346373790688696491099796227283390605898451639624074873683892039349409238761524186882805774632533577363465725167463114894144433218123663598230772398717959596701133858378392102005411671211712029480173779110616141805397792206633194948706910106167793646578447703410899877926425117325483418203499854119600751364905944900886780640918193441736475599569786166677280679751489984248909361686380371998421457348204709129552664471129454839081098487683876078058834022696354605024086482322717435755378835231324776120269100281036217034677019234753574354796442427962586507887480277169778108739945805049834656794206751134221090285395041689635072837688168873908530572275099396999192536912131572148902673721977126287927780865124842497806597607345021333200452890127917784364579469503770136827111439304304963317881773856669751414489915658357213086923704747641341122198542636102567679018866826462633780066060611852696080250074066483105615715955672761275478136150449051412707284716984432074408333336654179457429151038431326480029236626627569743059139078567126162781084937644513546065433926822852045510379394726105175345957756295037187811779788499829974052224143413450846189309204599640567050450477758219344241997338485831511254032952899967783266335674397748343960780409265444622515421749549573954144756286824379121192449529404486162842177539242513203660140527933002862035274868691403909148577915442399528730775774637657922516878319370232435453765289794514239700243350133785484586694927396706567929042740732429897579768217696041145469881197578581617995987605962084118588412099499528397835867663448052045997208686773456319064710177139419405808220643453917677444158290280773830786174441362449475601386426566877149574135586506764519957826115626362900865241248075097606136912321412716831800851572583104355481091639986449790015626363473773808284630366817084450801232468007681295494123430292041348150533043397160839395942447984821843551867413849206345902524492045757893156384176753025148420260762726630967418127923195762579134113383676166223835223915078430742331037474636687300579155474350681641808886958175401935415446011551784397432875054985107350471774529452768132711231861231176090426558217906137915317790931794760152150214199041207106496457471705361971561120534959238875191732027462151593536792876600765241766823839451947379475891372241328648745767041672703422116804083138438057855704357107376737311689744467075320699326924251995867708838490358443972861014396627495125040043517364039597596116882984193958520156632018280966172873947985473290572623412635423789386326484320372812774669166563773141943104416585908670897569991600567512782027930289656455779126720156902585647357167590932505335026159322248892325596432816588042371589317725986564094104149494847234332400865795566724564340757039286757273916200683031339937418985924021551047630628038677322677516468113028120948550433469031654953820293780262709297414256691329573354869191374769946137759117103339282046797667485286990274942742992843114679380283634835770341569256429194954145024763225849591770260646776757483219772713752371232069131368762855448864543223738654627454067523384754580491130663542026563775837775169291641007075803315474410114277937168682873395922385449790141977000181603563930670726984349074741562596431514499370210072191326653865107151635671968612951844620881519543256509460087784603132164097019271022271501235783112475920416701256903835510169731266566600367096610387541271115116072974593196753963191121118809495929677491782145168405425749565360612693801716449951618554099651896535066209833532607496216738375645074314660500964508292063088311406043294708753754792428356183164964891199143934929816736102823479598094289908903770136154105135108493133780435258445686519499106703527414627014228409119701078867999670325828394454897863179297523500689500668569013938954548185871199018117814623242428742781508040733707074316424790018008482015227566404220441602195475151009012154036851602063594377012748065365277724282501713718382813842942466894828809905292492102268458796971149991079674869594093080610720073704221195141855937503281294825263644228236358694657213667543339691564824723111398817025592618011187559002985718028103802821862761383859375818323832355528734426147880583263177515896072814924589235240991614686045600250140733828428136095840228715141207494439796106641593429167485704493780302613763842886095443422473875102571156288319699423791744233276565218782360981581708590069491722153112371536540473634572825291828886902678709753188598291920787117065629913602340176451536473286311784603287636400265203892733299799185957053002611438991409072763066905793516571734968856894492123062455326403902504331016144690248121562038606433828617459436696285585255125713986692619433415320708622881993673031103221950559554099365524429570788459685303867851270096863348403979066893653680901386542276355790947713675636782399595455375540387030369147428787580543464221763140177084196462991402728174279787331118797180519517253664965286636716401809655254539134712139739311252562561063879604997637608233366557701706544699471843821685047353409568890266208544074594159727944740120573119611374055695195488856321238100877018000176806820590703036299692983704813190137843379485336471367503414328648956781098533297238092374979580747096916142451136520168247861432993247269785124749976703665047289756325271497366886038913176010270036086364185282506836457360676754307448948181796017669539779035449733520354056474304926528793494577309185185908233842290018182392726908457944639732260037119029690487359567152962309735986593355817232673606589474827350434864751465275174884187883972608037959799352423359872369407779556251741238646911804321501962159105006820159978943055834859254086364607150915880245824880989075714712076811833387660224390783422184369583622905570543986321728349879695258205320445211073350254885708380949534263701513840237655768540261206481942675447415023900685120939163741755141606714459066961406261787728280731772645866424887823096708615820140835852057244706188841066223260232211817314076208049097107691931496172629491521553746489430463302632597834427304662874286177567931179902302237374107815500402067659686846859919094511744968148874022519664407095330562316317594610470073869610742753547836408930854550910959140112895747057358835910799638336457805292207730149859071870978567211550019584296185063764787469702704715347928566462489405141054511344141265681760069679084774952095388033605745987615893151061718041339319893960298820150054109929414995640926629792093228753538738625407452055251282876403968182512962771050122989264899828582893411601539399320811731321631012261989693503946869626167484126530368389643003395793627880340902048444548734539231430834532501751082489507428343822059533477378196815052348782572443917142533395039136925372134663553535072196677294973075642901139139606346746646449054174317703340343602680064339629385569439491971314843403305263448166795315388580116902925995524532227999729511819425990974290638031343064065637993686343138658937878847650476313435616018826570561072335421523065157438829150668009327946732347224669823190691350910799612329163480186348427617062678532215643505747892680119959444310672008974146150136895422713623213071942039566198618846199289177386553217401729011533292521206569684398308181619083516376409636685307070637434500744341234854768674724037617814833276861639096181951657159334690533029113674973919528996422309816624320189865521079498299273870038400569003824573962461948626672445798517898116710749287696586350924533169490629079445454370505376036303566784319636224403480395950287076158203188553110638892533510171650058418687678767802677648295647880032597804770631367404948396244449714702851884547808024572168563235104582122687186066200089359096047324142186064511461342055862365804602668969690079591064718307771939212377332017377613601759639840468969795621471019390771374541582850708970123883971672262529039097933188959305666115593340667282829062206625060996522130915683290461369410533033381999311640812093180215915249426229896139424499098524644894787318423785963973654514930140482305236148345413515149423926208908885123978751076379353868422824737753106936677651573963728686614043377710272223407095111139705168108487548239479360869366752165616185033002824206517839580746092186582497854658141100570096040995025282219487763987487821696589878152625583879624670125460850743218106408273454610766642903439541627304874967324380205279838509435080347938640044542447823069144078131443155304166757094125522996113046791535260075057985262098243162632922309470457348479875583003223732133545768834800719859134479146240174550460679614742864562563531573265133640693131722242619360289472395039855368396183458539492058118147542528860054312917061460475232573758313153118764945004702127954702060521683127482676404852399189585245697636103028842361064193947630711645630491608035038926831404684827943110818061803024739633891064305760797268651250876120405299375932328750119942388781513276442449223276701301711645831391285430229698560429265696953204323294588593761377690798566016176411909957004398241993089865451963272386037358243124419219905685831871024022700479875550339920081143933826593319494385672199381354322903563217441841052855595229925115338209879942916359246230166510234417805166033880245169027311395885542848850863082281467083643488722567893182957043053986806700162606214542956591423340848578420696883599011253243678178344551805723048620995302226366937879753394260354918371644253194158266084061317867251935205381314298562484646970513321379157987921125689647193447905432202006923769465150957368424681572745733590733287966560950738611148759360661349625379600100455836670685996683628712257404879899539007705734108442972372371737443375006199438350019499709467144480417316057503245161797183432317743835390060782686444957243139132453752820476346385148430041215214961733966592164968955884005112254590449981294652228727044520698267284518612618895303838344271392174572654142106534155354300407654243345325385163567258075145922411328114685211159008456234184338038546841050204742622437165415410675095856416593938986505563300873814377045300472912303170603590561988528304494424545382146467889069543795706113799538623443982407158623244193491064396247113517195936194950713098109716327654289133696299204518826797281610520945579750282376292113828347996214525772554773193916218445295868766405052590434250451778173403368187156914875743638786741643550765185972951270886952796089295080745032941919710473938477048989975917074575052685706107493978039886977820581394676372613705148396940636475205433769041759434457177566997579326088978116300023524000073620692438124543417648358223671823404660486343366754151272439594098364447053702573268429755527003157205168266917181297080071446749740009416500914093455524998224890234272821694854028333181667385782938855076827553114583555021920058319055446204299939444103314011697979598813532350946457674108668327366871288247001403734853241699826252647535556446576138598358230165994762619236015444271507718686219753236519806211169103179815345189574840427006220634326703152905334566083666940078536876504700801680991325019565311292112011076507784287806352608766530035925525376092775083033495375907125778513969814033974094665215107264760749703616677845747569470438342625022160722661171742702989794794904925505863682766570499939697498236434075920219286673939987789127669936045505032209020977691816376282820481829176636606360129426087408159557139091440205703217089865531261595005122076775059846855748143574925681397624852143054333808757881653085287523451462423143267349494137109777139547797146652576331327085838353687696809599023184896364516436320795169087504026295284648716139244264020321552881855691253332986205918092414776126192737935311842546388565779051102114770809853790981622092026183366139862359254968595636399319797410491959277201612735549119087163367213834369784042313974483718885855102838628993290681622442461403930144735745015181079074181259176374328364755833165590395347178248548600010270740754961971111999407863155863124154366927629215889626794765111133859660228411897244526758387311163839772269028984168619937980999000327331684867937778594346756935214664602197058792203716917775767682031999015733160018292653701197102321950524123644475896050470618290812800220746460109525254247140643035470005269030568422592477440592207948834266365326837052928062094732007161380133754625294822799292395586598435078082950945926092431361630707078139900978098356341403619079554913881147129460334359423259661078645462457316804848690854749390602241669763715241278856459492319473677245442030466774425889115755764786721231892433668277936602547591445820326502804487302610452716334302529644131870207041794699916000043122428386070204945212668794203332219145263446187392946219753834250476927803935920081157528034888078806683572936825340671117000161284011618595081666244391263346271180252163154701535225939191356178058941865427421403421827782738772842628642639004490603669362253625205880396378919855089834366802465225604400231099190631063695929652800296795774183867911095295544506582256144857084797820110654407864207847303739868653935608225404396803776483553137403607579155406102490398617180187248326250142423727001671739875802616427861861125128663938229746651660009465416464209986399307674448400694411433003483989427718232695244608072457370392574888667498055395182144370873233033108879654329568678829658250911556500922656469158461814035756708741641533277654079763778268188169568990722796156283530413669908245769663756604293833792350423157552748922322372654988204426555097650206428504507143920730931592597448102658383133692579687292712864175121656578781761831962324149629610226473863933626039323307298086766239741128063110479395521023038715363364298491519299688355190264987064291166323542237626190807424734191673421185860028973528478624408389460540616139810557512716860640366362549091874698840632717527310805895680404573240969905605026965587133273845802202243718207896900585924584400800152645947535555374837477640423731429689273503531955052078980898954301968825805961110880471349790365730051044044878870633193391286334492702797577478348949880034300722771918917082473344401130896131577084689398771634332021414228374581804374213485397413017246671102665046138460387852210356631810182608724968167777477836462351477761745155128482232505532984998211276827761921688438649640787780075147950044001530381871010974062273786304488530300307449374192138521266292270034372971546070509697861277380006383619943384954544423488408225611047237727805620583101422749517051634557703820689364043254040699207971504245513394294155091657007234485875872978840314218872227784079026346138172418249852852855676235562835891405279447019834267545070025943865929754268127318764005922649193816644939234351693570158570675415481475280168114762433973135195869269804375179419254051570424568574394780289208042295552319158741906698609214316670827108134659549268454261855396241948524450962333150711220077058650703417179313229804031878174026843639001711214301964017920216111739809619555847485481511590247477669975273142616973661508425630830148015055230250980082725581023705610526230017085981698937171123490127447577594854208675483860562277778832700251178117232880918021576370208239759199078896681314747553700888028653011452165404608489149175938828419175791221391458072566595915950574399178684629124972085334124753039919614841826763034911821726307316545774511101952323843949120151546674043177181690801551805633284314725358052482394305497715497140798860285400722045635004481787071288468811823720450086257629750973377253641534281836164125243619306391477288306122168833744230989446598645446749006298849690877947788809429560590625447927226553732690141541861449227949511158040079744315109243498513129965951407368400311190088262186231937872535337587156269594554634685651071672631644620114972218554834848579665117566805633444114224503906833958061850349345320303915030773222603580776940930212526191885118699402509396205246050349959755451299150828233586635032259568051555696390306862004305442387984725522655155626526816943463089251972553341705018515331605521366367139207064209369476788842777935789109247958442421050851280304553498556477100195939626728290180368899260734304322709186761711272260997423811711490494229300815809138433503783547934972829203294015057927207334647172797503087013911629110672115605485070588712604994710515728045244640245238806400038990771668700068537313302035200515089163995166840076872891119498306077604724782884428972090384310523938655856056650280317068493743901530108670698835754206634765088195580510396585343063553424200403029760718781264122442039164460878743918752466683707413927091012099627551381479932899643073224038932273220040868295320320420476255823041383750995715761111019742186342250769473283897483411421678324850295396042841291500543179193209026669156633522968955161060935885131492597195686140866647423623151022736118888121267237700912641587864742861214878808052011170522774262948108661448617712740502177417231798005365483217000078081113809890242010782693565599603013895965149776458928153831797563814357654821537771434653749902270518757129031741296730402204215812234004820346478012419795079798566950663998454573267750951638675776876984382158669723111273567784960166771096548399022854459867509795442417180951512899695479498941106732868176321217910447674840781074234459188964687088674584461301003779650427881028393607090131765230887660209256260094757693555344223376039182632741773371570772043198395106449813261501912556963272900569585995532352886111399915592739603579029018749796095679917863596748032926523562657001106112396073373558429176929862037219528831506695851816240768332037541678051184560653081402446886857366379755369926714275347658299645963169989934079547799761738878850460616441858959193425951280371634660769586035641078161138527048020847797888682724134701573186890759463567099737110587455386540999930874710263953337272758638034476631526819779654578620798754925188971975534750618253472361867136951147560660526944051026214590979167993339188783992917682842658112335764294397320186764917891386638656272301303153952594078421431458140551454411464220097357187168710162548812623397108983255072337232025521210327743088052068054541931218552012252918831011944152393541896668701162283875196796323335586991880165810513167954150132973094864369432902578284306556620256746571311700602824953295263963938654847072899988317431530907546223918506837099457453895069147841772962207456837960906069478136094930680437836174715501997309903117991631355335324393042144919267526207235146866771278667580241648825075561427249178879013385526669352698215915201555987114489173155033419225956171362547628501180151432340835844319573675717983706996179095400752424095294517890097835987330253576217940516104941094956740386341325180562281123553586964887539991576782361029053906619907032660807599027322569281853296558924609028879046488533761791055286761474235890218578384486630511479585689664535125365065483863014411467320650950294341258760466889012579524655021421807499664629698439288686779277005007019602836012755951952898347830547549366717776815963258807058234003895017056525643284611892473784641433032294855277565511536960074102321333931515435383958367403134002657666612047143449724131871828846551190253127374002434573508803990310477621112083686134358020225468766727188825548676290337326633449127699974327734310940642003094025918067805452807426525208750568283230429251480668545076372968582628593888101861917856395520966747087201918527976968980634394112424668686453692567024382139697972203535590537636652544974169132100131904596451446299431554035194344169738832594207844767280262875507361832440751656232983308122251994882799534823552021340998613834512499916461431103150260930206627042247384711455552999585334637055236034327719481103708776897682117129884095201055745110489337083973140639165313205176840633421556380559370162508718122769102280706825918946495112119625386281425191602334306744595932515772513204403189111585195223716353861930520166471052797805977622900497497109735951366267049353531212918400721461254032901593621286786430324802254953331149897506644531661474386043517580410362800879207341124036036844763194751906907467028127879412905009409238398854347641390549717416336116957151574393481438418534288111275981538743854611717918729569897620092343229290822613918882599140341695454446246764473117605133858971863410005447447872889238548966979368056662773630106177156822647508075161973961339608817424734605119302130791462458224108055590587805192516549032119009550017964404257018946269457581263249778269509066065886469710106802537660486207258370618819905116490593188332264701476765401830382821131853587711621823568428814334729452186997246880311926451958270813773571814169715780026127406669497795979743572423013874397428103024032222149722710347634792558069724778391584431308080173967940053269654786638007510608375948249466029726506942907739523143022142378568795038251723863339044224693300252289851171741636228582899074768634249730356733566295780084110319441691712220934591356812865512963725419391719239329730448839975776064603643213295810401214267502318553766234015678928405319583511184528157120126266345955803900001811740793079415402673374884474250036194332708128581928980713135392112933540234104285620435409595599159459298091276581997432200830246097235287185577097924442842178890445290164749252079199677277383744928339195145400037583474712740930319845075259017563787161032144984159650577399652881828265732779662623012713471306287758988133824524965358898564576524898901159172045781476906793520800649559078276966197712723260224724904868408099046004935676326704307510695638289333134009312837814084663268454583361591776261877767126176568593919960991562982250386511851006721302036061233407487112745312861497441082551965226080979100182093439574096412489510718591727351542566139051453067904678659521546304240964136250114477410750740679331535017970064853161634070572709323700494052588343364639592735419027744336918954938874451070452226871929546485645078945004116339357224625935311940176814599650166990892917290405641324051957122847763329426756411801301255690844325800422128409668654770347118731174573926945861913251193482864903622767845854114066377505951300227455068044722946203862804045714357501220879737164511534210754196912952535265717906333373183764197578840251137154351353485872153148700387340065068837961128234481773217750363871424014660975253781838751765817180926787474058707721716109458916468395869341160704902011601906838856536172443281051307610146101779571892423378824837980707934915173758071353447460701935541424762238713262766298740456322343087574536562796956481191425747813925593694718108643291071824829490683429863178912154985406713213433273820636659804347304455852166534256359400145446466808864767244191415331040862529911247851599136981136055674223997940852090411732003908156217666548626038443667514331321921916697357275294948745760759154543479853343087092887682510134585400027550864196901070353276037266965238476219805268572571551939816390563730822240446458244250245886899377932021713550059112420697658288014584154314568481927768356164090538080607221899564839580206370536410580448055478765576592093627263723630762452087969457939273548494077363359992928234296754210950559465128673971628613569652359253640215287602983451048865734720639693541013160923389906444080815082928079462190804370855718462431244707162052411860418069293598567086440485648016402558297454636000404587823918147865989173692517038210397348508170908231990048482892080111904814739506842657247589510011713400319295946412027560501658358323642500692133984797703494942855649489502435762187136700836007375561397646560485282654141395268561943098810074456999380317774536907958381931497300731753667262261152066154304565020365354592753086375226918346134390940332272878882322959846433777391579188622964770919070561933532479160193034794289186098284929978588708799776833507474268460464538797742192772962974092091383545948595987324600716280175554307406544237917584625432947845857011861948227814650540304397770422410254126997964198331930133338615248696297604335222411726448078049173868124009412295773775038945698340296013634741100657492792473855674197409534455105684358992787973448208746077822478933558561296490828945898228674586742430185537072726485765209739529908050905645600503149274835314773583964045164618602764134259849067666890735748974689491087753411917300949317384057271412391526581673629273944021219099383965205291952170036527338244583581634904633366404129709066866884245971279194943143295510705756900480669868699818991249894649711114062379817517691654596802387483048947721435889765609462148429961291437125269473939796595610401900931012924303698111867762195178115172394713357954593648558415820202047679431820317137971739420660866770753243838477114003330859289437052343595901932375395197116381425738140841844877314443660548910397475164067731137176562819868439797527900906010290861172727884779002458983181331691626190434924295171171816609449522193583912569161697093036941816152601899726430620361135296910161509529138636823192612966371628029789022456164552140406835031897175381885575622618715134554130662137013328369635568630840250491748355217606659341084321693682439685088491960799473627771999297817078381144885000929591496125577169940290679471098858206706649213193253526660040627960457530411767106926639037118626980248224046834879547420682406892074396580028922686002099379683308984172770775668417849168247634121533329069586864250511609953332822210191716827485013102959559765943863308768491547256201119044073780500295689372191135118830589788958855771617654592386729677708547200881829317313707103411635002128731046019152110979260035149411415002003599049133204497393044064881974126142364202553854594793501977800042421451710191789019242915318245616899108819455079791946612430353869270173850217475686560654878380275175508171442972483151464368760449345053552924049430230495767843824113981906712659600168555212804704226970689475960860035197915336720254639443104238832587703388268418983594775711534200826596441692571220660391520733462376673409674867972584695611620524647185411478041838311294381728809585288217535355451364875191236965981877150517118784638308942388391622376724600580599870929747762076232890961316897911924058391058702708692084366271023177299923315582032845626472395364007039513191313624652704953767716702627670391601369642837674493742688156633070697371148955283306062692118979490780772425682056221352703348272570009735251477126535189434721563628927830074919747551033561183391738312418488133401363206091606995990876020127447802151056302930157656678359533741411561763145329184048380358423145185765949735983962624720697998199661063576694615720928493784930128558067422478545217723067981899729882319834912247603966163485646004788625766531629209159130148119425502787970004599763049306945452281912391084910549461709482547624623665416298496489376576977571796650387652158258502408231604644739423348852346892924835396381775186653842625445030913385938054871184372812454248204358501110320815350640963048239756576870461779179267308485806049763787915731701256472377069415518916639427010114360700309247649658356499442423046604610355255503906138553202614363408325815679896835575709976764878970752215699971563644425728265246188678521798852873935324995656865216081867998743237358744912828966941181707195026021246839965364507100625176584125513309622554679542140934410703623212948711676325850264687123808399012117382479540066979013005457062021551461548319597390267737871326413324947173336403108918504672653477993676763054482354837746140299619070049986320269406389981128593112674904272457191845092204932646947263658553123086253940172147603671127526205450157236976657122201737981144466066209526407001864581176625067908719292270539359581443874614871661763556591104981571435404826888692994656403704766740410615507348978050236670898916499295132387706453896655347410851629847199527618486683695403439936824267549448581089795558624442369106946194138472079279903600228364586299186436247576451919437270893673509657114509167353275830630515329750728800868752119528285732347887466297858006583079372829845673725114770161864339097229953850908156680951657343141313848846956954280714653602792844343085116853887668012405535934079113344661211912046626494306002345136678985515991580545074878398566048337941074514669301413658221239356509882970255145990922605306281282590042076866240529422174088386498797101769610228415953230118172076822802440978142378203236702157602492731519483690382152050967933170622132898397112832850624199649575324309574960047337417947534272521891778230196761382594248338252644889835833257411096168478149196831245254395712799123343131606603805325235565053959423741772025821657398647470128114041768231264771791956092497599814296728777792301337881433030407931429108968829410131597724193481933909692992334592643144437367748121002549008367683949746776128445267871186333881862597708949836951191840939204364867940814881053639541056079541535922581800891038403224025256589590178456602978508730823474072220175627057101896026256495711768139992997623413720181659213975774660903266048087933742002797150760778368767680332108926141078208750418292409030902289501320061986421904798134626390165454804596915869910467017711650674388035305305634321255600898586221725675190016025096067210595272528167881328829266309063692826660158413573405993878541289612166725938886264633168096634887490758092189072774362623800355985696531478700164068818859814267200639235540654934049833308051403199982142834282180397869486507088649352763587235462631326173913161308277157264975994980505493912207031662504476586533867742705557022302904348730416189002373134954670338368315299099371113128899553736370531827811588103575647485133105243171405702055192111261932513791415417661398670985278065394896729775491349214329757024951508881288233242993348851180409785045684480466730733634663981269625625225720485388384476486945394984602931804148986425285170751347197985770118858150352140725803321639620465357617395081914970402051733217587804695855570157972264282279626249415301828226713012621904508479667849335229224972804222945557310328242021156286470866952852211621562015644474101735685553501156455429505089775753712603320799012481648816757241428313107002688028225697118634393962474592357830173078972506619206237178101505322019312728195854993466297300466164989651290242966292439122645339784335916223439927411822578513902562172998183220924706644005643930312180066223759024336456220755745391011335476007293570207700824596277782160479791467996766661025294470722692929613467303074404141027820906362318187828360361509396013768137985484755130454398427095087612698313225539483970766722013396789514191886785197619234731695359614573032596537384463725584388750653552917855720292171735938650064677736510475169721944270161395043238713099856708504319433896708385670217885046363451838268377945280279334196050412541682773315840475915448427266678114861502265827210464919743409704712570902142656448337930712335556649050161315748083338762050562056160182800454651886416439088318361033760858347071268714983066725720518046357739285355972135066925920089129391700978862109928086287833206380255313429428091428568554991467193212631432086526036183473352632027374693994796707185842536902965164512081919701921633125260179159735472488627071041584013328090312173520245723299368959556804448041470583214535265533366458419525019855891587864460845928679136951419521562741472443362464744545895448048489833594006953889435165339241940179037426099937789481929423658657311873923620218132947932187417078663540584607642015234689261324653291418793774949849399072774238363347388447243463050687640787960437357664177392778092424126005329673866848089863138130743737724640475668570323619332209380330819171311058237312763001049826647100788832839985596833943079818282673026945605047764144445224959927330680303481380921434321210545167564021514664956306365538025080843363293808933117617421787378347222050832622883565818628311276383559711851606195524397807794264899848716377923521739976655251769719441233143217388977902963072485532144561104944442279936460679236680265099537840137301380544063061886411035167935431106403691459466581755054751396978894940920706726487911129896996492495486336112857217988943319211207364698432810502910932660970512041305948392473961975292644748813156277843052079884565433562727631574298361778086636707952768452786335983900650591903590967017189575681567299807610090899584032301275297500556023849336236533969018163446273166831634876224010226053988426149206074225777892701740262355352892002802019411303725926672118867627625668361683922931908610710003798748142172613119423596999049205218236430070321251512694502985353082131526262174423159586949100553648297440138918774188766226132447917462101439714250802521707429299328938863446054308246437862532902311974996193454351573664145062210116931943299049577492292285009633578400359599194955021033461490656771567705718469783369482991417562263740195542983498427712127091294560902922272763570733365667088446269766648488972379438308636902404041132831743362439500872583307406961604926481109528345185180138045176408761496742295823519143712910324837657012862308547309748746125285983665005650477266251190623730504441849456508872712616020127462864927919287442181226547880816730312152580350599151304254289751758094591918397789327122439427304830766105936400257323005369903854304778505819264685008965323335216876315786778451202616399407869712324771438518665102104552314514669524860903557280451808470700171701952061059527198021161983295605090078565953629120918144079029497844336728019374477829838436915545157984891371346516897869409591477972825529849222213655042342875729238994046303066774457614307870842546870483816142516971424738766986482647456813597779526401126947928931999362007820464516756327682314856065098956474769882170123275337658691564940157443560541352301075409224784780137041992587843436450598801935311903263682057883369590252438706678216452895700502607573502191472205865727308728805640482591475606189669759099047608175170398421330803892075709663579425542542174653173740055059999043350815313146688715950214362193822370685513850108781415449510917489666657428601096813198969940558038570633792474414353813604293057446668600810896748845740917696830291551969556874476803017621708331632132921995550083686621401049507262756427180697759139386070117644014860654014410868438362083374603791021256430585330257998963434137670769384220225567491045152643062952155476859195243631267435634738054145543507551360960222187521415494660380231118191467849774016042143056392739381328817994710575602527665655630820005287734157746545630919934905829747715873998846382552589410721402062686551127662174111793763405959600438359099834169597182757666537006513445580856821788299717328599063728202729366567167757969904792195215446722580546914489588478639256079635965443564061701293222763666951342561972693417431978461607399697919606375178161473876525428768457632855976213893628413893243460230795085763251177005737790886917346246200678215272851233902332860148336764657479320135271296361971807135464595446711056606593453102530026927705214333081920142618431382289120254428883013409399566513797856730215792065109762506601936613497360666505296104200225509491934749862348051216776820176056184104624218484546851737176259381042459365847987762153605975551976601986068705371222767806348751628123708184246613095458654357398766837244111920815059465974704558571582301470476458515919106010164890428255831764999757312090396632262366536393439914486276711035805301612480920116373760736897485367878748166877073846699706243226907514071720746245434139873012719065617302385835138871022556720463842546246657366231042407225534588283170028084875455449367606155405312004220866437798387032433831687380762534173454377515677285445251693999871718660241665141694654673849960972501117257265533120807793565972182577473783133039417055276901364150873042911982907823718117077909870690221171374902279001249835235924004868243634762398844564577837566633397272098872531256509392304608091629252625305644553667838802196391863388173547721534227854935605515175786608900880486833383900313505030590106376568926394283554592523408876249297830924819127363679023913940020374932460098562997719332968076761885657199441261123840686503901692291228605646496451934887691183640358270330756339199821282172869928682502458825929414516595858452070637782856566958412118310565003975224120321654304011865015643380435673940474543413929249556930704288522477345065586829865551115282233154015279144192823130884513475433194110822432463789803716954004514836364471700087153068059667096823606332347468595904254285097769060446910663503060172037724023733261469935790907404759361274018282952953157489663390939779209031837112909497375261538891123599823869431108535300401763347979428399173203916897291041944213023402038994917250798268418528018666622881342591108533357739971291539793156632303541212638038189100953122150127807626604586806888843366058623173239355008116120221371941017373264579660358831686804859330115645138667182317193682332910170966631626540804310772672610373872748805737393798120126517854535369233045544611594311811507320021183364052063498135204928630163283708921605378997236310094503245949383407498760465910540380435814752574554929501836262679720328813945044101379358071048957303660749459166399714599078619649596088959549375167276549060553817254970644708906396269866152323421523890474700608345579615281064501377600301551785208740540814569584547170241961033215430910126239021021053328644668225757598498465155801465851156145031835983836835274755993655645859507029427681834345146476869982263440545069653752905438299840117763698570864628481581549499358516971990179633024914752764036175521942135812301743026721743884976206045234859848557466626468544426627763202400321170212290779505523239353892425980373691565977508380783802954659654953207178603389942516395933562175177450519620509824233453762961674850552719211124396199844573906702233043195908299537990488457308650892168788599161532828393045819912527975612494163847138903906024463687765119174619483509114523321829780227996742956913428485554562032459728094211416950868355558235972292194935941237113265810545180995967569732490298937094463014931732176366054632820061288385667502247053799640176495177572750207856240783729332437844126910606612982790540572816428473657944444329791753742179363043750447480747352622455953968791418005344652612179580196170406592937879094618211790325548409927921144091870516637357980621087346369685801950275654832196298585714660676318845824349549204187589220339277635572735772239721693833543142897769185570642401787762878274407169407021088545367522428925828696238173393672665447975400879661501454390977375115947757847928918027721928917254036146858273302449764914457517422345768501916664635326242004363429570441397564079857990902423533148568988381072812468773572096352681356673182420588697956106419884530522011836894136754380099409560126307819485781969016049237517071263584550826933876437290672592804380253956576017306472500023488251212910944829451106684059116006326068969257455506467744827847787102963919931678763166563056789474081317985445983622660287392276263652805857984435767164217671853717518928186020439406483072470240392243203574811924467041736110559850141401574599622913816893378039354351721982337445201796409765788048628084641579746081785472747293852555503359112805227787559132210480117715530551635265933048125106981700097972291061807770809056918676710495689567759031023146409575419347522182756345119919450494175128169829244979186251831695061900765282006338292341315703194238476978510116913017250058328061578905674865745869181238431223774746030459786410091453972548306559368389701065387395688398091084404035847643278698156309478285159930892898650972243878157976904691105174296888400561696372119385042730772875574728498328151354159356139615778518899159700302879562833888186314705013876515437212073136909646529691166845475877212007623731856222558960933021660307276127117742061577531450391910493851997267551240664013083355537287479523481985259484628758598299996786989126616181908089279793293185303974080681367856622075461028989235771200749625736907198717409922789789346122993548851414877748376670122706367887035726814069592759140299878098072667980292804164516216517459044160171146172796023044803451419887429384224363006769564826753590213245216367519892023563350557403127315022995313586734354183206364366888925936127479527722084538083311306637331937775058380264506914345041755176688479812966383311749494815435419365981861554824219237532401161645044713862635914072155198144387712413212066202544497041920671811531879528070088010029927229765230861879113862250161251979204688335986183086431503579833204188335998936277909996620039471322254560094725768089833343037765030230206955559521559495238260977270269939706869863487427864592043380002846589590896669233068007315955125634213638939736155986773920688488642670047066109993028625043844411033018187481942785154690591470733476616160955639835404141159223425779454494744761882989511128110278090589155485246440219543468668069628326503673882944952570030464422941771575332091678215636705345228279733455608015540883174291344919800700364273864894992701393660177601025562246327004632001839464799701208183429340198989715885548435124286848867358321674724084446324146125525603397444021357315192622166877027723375868045260058097174417729216289641693449960345369516776463646653872752124486943136933987745681174661703145621921319838741254821187527573548832787877785479379314669937857374563749141079681894992409273117700903617860713951387633133178873211292111999110985588338838510124390493958211553580049598351317507728438729724485397403068511281097382804937678318879216235764926846537211035819990323790250123821762093211372595260837845671384547412341216006931901734614591756529436425143214314396763986948736130520602406820349326655640885590751287132075381687049794413806877234055295109282871850478103111545261547707627244130632137374287447971899477553706892355300125245935496861551816502210615783718098918826636300391048592743108368139346610331678759615209007899682336541634988581645169515928277253453017771243336934444909773679941955227638558907410338578711084544473777890659496269549286054927133337102027858283926830062125589373334803470650676154987354000783339081995626057577941716004646690814801281976348614607987264073541438374897315700939358042858641876845676036869948207781336211421303838400630706570742345386646860429925369888852490527261388347555237275813828669336711289456909010898585200392742858455505798595221422534292011481805764693584644611440347324539896750721315707866229246637019828327586600006508206218089361187895320567824082054416519132420317014505054506455837559697723457542423413810158473225149827644221876449536644712786054942130402004489536349632288919951025699006847396222074340423132744951315419005500081562058053013541034748281660172559100894361643555758871697432281671975740591386223543740438451550516905017543005835406638005160756344038727107587158955732899097440558755756861736640405104335411369728928754022341305600575602271139716913583871450708156041666797785373888839379945193301114802243744661415813853320642818998643603834143374647859461019420308305440377390607579422722172949065454920356061356372471231361361314487320425619398182800654472576178311471555255725011769742583259298321465871299655553641935563610690830470512873084185461720624995768789872642951968388993953906333146100986699383328531179319002187616602582023435757025924352515948694280045193086771486729738306605363417822591785750840453828340125407469174205813086062438174166964680542842906416727085219527015356249441950987917349302567421387900077833288371675972167983476495746366607139095967151071751357964975119245415038491699269764495467452792348251795210679232242353388054904334076662817911626273458520799767275121791397614763746907062518079883052023442489379433280384641965245321789025115643103904275028669823514962205852637613788096004643447617121078857017653095740199003631695398928173588312511045952913090646048216359927376783626515977425800081922410680475005414975561047408753305127475750880068041638337511262530720079445186380652529882576236752561389770933830607736394212998139432094929766626340473780415304467180426283083453809394159560365018586160339254258907642796763178777426642730694448134764448018348098217931199832035680239602081158302491337184870075550875441390202943512174042836872491703248067250244337034745521295578902702174673042407113295577983651433513772019314996980047513161536018171989415802805078470124784603374748255363188585375481952600743299722528730951134641200022073294492843942327479578052484337511261868020911733453929709922256139796937999067387118408019594553257520639346487284480210842454571793015477005706902326564905095405904618377906430704088041363286208778630409056339603104633705761617944369115222761221028119513851704364140749542321733588371733936164428227674949056543861438717812724334824291748123547478625992799615254674415909904873163612455992372201262168682156083914936548436856060892189687016803588964935208141991977817873304172593504228994895198085945002192973687869228423350840293268059332072042521634375107781140071473695051336413334128528956705779769072670595145405849747896841926223738208793133937437240457886959401194018785970161294728089892247187967254877423018902277911266498737187805728392992221833315325880015754979558440556822827818606473757138373721381759449804510439418146793595564732229382493234987211067246771405448387848801836333439268500595328440801015189379088155541507151297695514927286233888928710088374376855443128078600004316903158162832720038081188286559237118830089832305180902112077360694801086812283519541603026638264623146418951554578791722358963364417402933982239453296753180225793711009874892293560266040285844370788578430115217262011796966123893676325280421117088490769294254721683422698422504116978162951663280905344071965560214249296727454316921491639258146765168234010940239835793012839041908592073397129407275574507273172234945120916496596229300060031782557593030896131538557245473275960862998621055755176399339540255659207385512580549195542013268394105456830123534244490440913492873050567760183777203457509509391496621120762467332221158335438041005246369976104194967782789930966496095506812172258996444314277602255584658337682128190027726518056604944829808255025532504079096834141285974312783774835092890354610928440644257605269153531362611887067912891141024286385248601796473533429051958945750291898905972488411270192341425992968583656110924049628322477926998257142595848957405879699993014784318727450855621928062990521542608842621136204739098349059142840403032000244267358066805170533175563823866537292596829127583034217127156870184954160298423616530104111394209757807851746741043155732947171322891753276821828206724718125847510112815348871893089629583982683126744807585877509098169894601907426812666780430042938490174096411515815469548074921548342998426844497858609933024057432808478164784166031550178605826158970980409585121003577304548803662356291755461709231185397037723792525044220686207214412765019790505674694911754599463738590735161798185524035430582847840702609524912234122625946925662913159804998838757633825960964500067986072367298996938821314026614160306554682362177939892773153241241410409344470397864670011636802878332681565922066590677573446844113955879818798322456006986497436609684473890281918755282768191606585165151043800817012019566138138108835848541126671441065092117094753381193042908786262237528494264264062539719247272697851510348681429249612040938978257281645368092694147467741676285361947969342134915667079605157779904207699385617690676180413540470316393990622670538756151678085753390702904845113670020338296747967511303950710632210776032364646595332462117440172039177796221542159833562588370071146057135689621502172212425941311613025024706955132418752207886205316016842591629597196839571768047974888699511721533086599025499863517425512071152399188727369485061899431699522802651622440755464690976239197552536725932036833754075506096951346150072276806112066650239204473961871607941733001870464859812975582772242590683120722071559883016527353141473546327765398552741521654181942138980651703499415649191226050266801919444363357214243698557964724469916773818955169709374414989721226231110450487124488850512137325569450507811552119385813355547767876183563963247788079090939783378677914409554604674946480740291461077426653118834227832247776764663350793191246487508028846012782434655684192111601748397004869738364655977280569997174092955108032295885018953769663111327321444621351279415205884663269036417037481218494917499648295815410329884255977230600464842030100981823114973506021599496806004341719887891622103535042926373985544723333645457627559531194257307537750483755973211750435484042358053490258960456178826598273071889050753581668678714203801134511368227790335042241495877420391620818881556379065873748574412753668715018076919129613220434693626787198337271514812720247595233190312748647716370922414517070517271648459866188463493823216596843788133474841990677868059807090666709101297812634295554050969562367373791013934718066248732732434961768204671241301333914102644668948782840621349646132248806321996187089152059844446729659307831367867497445646897603903584498929801033717822883437124310180496123411267287564940768921392784262188753120580767933044054667016499411269283455010411644302905864852060187051561195343113739994733270654453452621463280108034949310220873305778961865574042311635202086590586316282861023819196547424473823571105134403407086463381810738221865225530535272841641926283086767873951081599921030962353688302604058539228291279278971931518154213901431315954463300103795678702989049920748384596252727378145161515649151119318483835897887082510979489369974033492415537056948314051412939754452289825182299153835357739283636599675254036373558888546677582302106218208364087417897739129266802657339021609776465616310573179881378496291551450859923623614536186930076630663734380925423209267082764036117217479416476543075409861505605132237853635966502055910770127986661294742996107940054177053477944685617036963842337735580603268258619583582423491615626362560677099420408855081869911699309648427596381844166839868876135660085448933349476506357868212003630464117963143324122653989150083227957891214603540805505898840809978239390059333800857784471594574326845468536928479646517610468325700761818504737824368659524047739130198117115357507895468724466760693454902107688671921894620148573729741883181932937815038698619844699677863190283951426751148536204128336397750781919375379148840819782036955567757823931356653323969037184203918921479104352520696812111592393163000711377036912761481755919564656788986533331326541828874341883012160909483539571211001060521463865733309720314676587318248924656144830357049515483188021330177487596312331555144669699597149230039392553877671938103301607637608852211573028074420761938365496073931599313117337311869512179083052515920417417090111816766631714901532684928425882592397777416860013064953168835003803045936054274218011176968570444071245009081548082298213833620706844405270412195569247506039775950781927809531830523860548971751573207388961112249432788900821822988362187994305142269944171652474924304652637927770622228984755684450020641928234611652233551377974559573027428243721082388530998610721257519097274005989110512406983955709229388915925646410251785754105480787246002042325209501842107550883157371589533436031513312689148282022682977208377871772247710454149773565841775350703935057180864428641331831881705836880794287809615594911976319378202729907026001830462049150372842524548702467718301490565626669307645125505146873648299218042995275083501417957078721427894193616702576378713087137476735066348226853334055242190633538991234731093205733750498186614961249334607040766513095546610535068346693312849227582414118659266168965695870822807053410030359237079749976350648461450254101893674277283450679049658189007846117233964486947496619628741055847894883362166710356991330549046923708794865282140991050199717509352746601891352765193845086909421624045967984325566566576082255793632567575362476500028519075026096938071594576907547185087420441285014994102579205499539510053704695379842665189570526296742171236867770133684945132472599728747602122771788404687600016219237586164268451793389649729316847364830709188558698078152136390007075744401520172941695928624092601973164409452667978861358854147450096798041311570325653089693563372382324396510323101944143244884948421874393811792545401530950370034910639937470260493099714592631019249976658669914903031615011833987752918565701580473840430560938405952190083260118864465280224814150081147327337517244632881525945032411134744245357207283438568004349433391123580273368683630356369569452576240174908871066556773919795290951112509085185656891963197491053699306850081537785851488165632271199679354751599406576668543302673800819726601804687531159520244792835148612964522450093921931676997304260256107180194071663252721466843593193353534389014833722180704807778406387767781325375034341733940839619802724622781954787519685243749532715689888231431847804214826371122430088361996773034817142361305263486521884876340049639785809751307141760125590989708657846876053503865300325169422101013270457310968380214028121856823484288396665583301173989032626506947558671013548128996478237056330324337796991899842527371515479285073203503135941951139210415360127408031663435685659840575951918675367630390408886659703269138263198168708173072400005523557914178157735734314711939468056406434754473577662334066485433450801104133477013952643966252389784717883033212437916837240719661020997600421047111471909598485302724330411353942106694567352197446213710134555373819677833923784499490768091240350934268921783594658059338664556274782157565016960228711431698042340586548859038317735330071223109699861739747655256783439961563848804198798351386469985714700451106222020109619321846782527078955991862015865054742137848501051609524148805606856113728939869294868688303324383168590463680770404752210285106852300256314975837967253627170695158270553522635268285429752841734503552693361859287065128639398357288378463308593394248524001314647258251468532655832760870609070659233087234120855304839850918993846841617912861358226200521635137020170919078414648325098645624128242805399473459523318245748564356304158820855118152994094101230268534617139551753409951246814239570903288654618830837978913632416752020583848903756008944579344235261192076981649040438422349751742674918850202841371842922032542636732857130339913206351382294288856746324929423966653624869484861087318005503322888755838462552652637313882739384443436874118845741964008254024390631776862506706428074147883766696282279875555316902859531578251448313647681946959928465827094647818192866168284906048202513143315336686977100408930525104444413429328895929007773618208613087336609348984414068448618448126695454868580509107863391942105104338690504588793486866100528442899407970174532151665949480473723128744156518480143641867496096915865239937219470537225042868209659504742761483980497096885242985522608698712293668309928345313156183969837589421896075267519767247140940852542672246030268526357080624445793425602227429105225185454013094659221638359509737940022593742773235110200924882124750339584215575010445120055306866475219822710882616506223461224923559819624487297235461869609100608852836286806436891277992842405308653081589319218765454047284596983767711098844702807694261021805815206927886729659922962217522412089790698303583441407773662930824543551625372692703907151185262231023574520812008699987605452225942677188498925877557971571705326392448130886248736861848964732493605908188741044503820966023901166745415846217544120085123157268049267343748182201305403381127586629166427279443628605372383748712545616572175097713367532136812130362053104932301622355111551849255914067225294678998135993311405888466285219969202587765407205557515300179717697110632144198347738701066873605841733974719978354500872906256863182507919735044086914882311100636575492519792372640319121325961636918569333093394450990437715868091759967550499763352806658995589805266993822822528115392207464559194886205468692271744589763593226975758178372499040458737655189735746188829051271654690851412166183729905572039535656604706205607736805751976138173178247322539470109821170012305807377073187523304503653996624410744948193703880134151732667092078605176655714792688254705291356465279527334965936783242690788060262364005809309942374653957174598496520143501257515073587296272462883619234673571594845705608032832510157617589852455222859566469376194631733177791330927083290336252745992245256918350700431566447442174511158604971672358155945285100828046874583989373401157431570378495628730272371706002155849329633077041986587151882711423863266908637433989445101286467046048190928129379773689460942775877152218982558030692604695853304196795336345641858146736380429977085165888766960518762497821316079826670047783867139209146978997361101168320403030602264357438008927605591424800778458679611941820840935072016913283877516220561264162714915472550930841325679436651352999060615135540107786011531958408857536048413241431673025214589318443654562003298980593312383834589194242449596412523879724917439453235409288018014610018144538733265658976205399043480634912308768484904050268562735658570442482830712509545136132213867918293579868870930510562539084263183930777893565558564295656570469815152872098859816289362029992518719563393513891052678588831643445525374444875334453199055337166841799411274209047156752607942314469703767476813233304200517676372991284361902387576943431341495122119529160283352553188498867379338809464652640950518727271647597616960036868819140308206245774087881689791242950078197458281756450323948242770839948610818260334382276299231877941663091122405504037945413914091175807972581066188170505626763819536170380486147315282261670751094325022321488259263630404264986302414526454918923853633191823299942353124671218362810909893891045380170429230065230532063516570042795283929559497554061370815474151576576774402527072096291030146302152120085113156847204534166790604520659642307982081955077429806200738030076130729336557755202946649287925268524725748870645341712276454472388982110492507450215661509344136331689916434859682076718005428992340264679327309170554949576353172107427278563994571100498513326174091819995713733266603148836773267737328659096116475707167481383655719282041216707312670084330252519041326543506091048914206938631624795828825656869656027147118780592957286756367931776973072415198363717146343735355503684598260046620507160889477401741548335185748104226932316442648978592252837740962113509640964006535136386759510087756465983892020809070350317057802711042730960003049540737551650547189954559045655466673189270169051513086365931293317467204660406721233863079172721311826326716527518970330507762052451541594001274401888540496116166491727212898067219336363365570538416588540528411045533022469117772907235083036708771052037696822902188776005144755876682056294609094245069126197884350450078187651465635273124714312269634137335029277200267741968092495275571167993457790324235239539323419535394691875866062748826731667545744771789228336380043597131145966289784098227786142558323091426673774983286037770193995938225723133923146145235090461922428338310936516244368093217267885130733999347481496988946870398270274977459180441916341919180845972285199781758741621336441473873903762138295054767337623050094381552184440853526627153200007017769712908395802199431220147957310194693642142192087666644235082678382002310961155018282832580909940246105576907023640120478779601201797482499440796806719672059730479942198138034665503928519722077298047368814195474187429769173032408486892701527970469574973574129961123252872895619547615854887088398029108618584209202282994432966644893364865699086157205825005835792723508079215065072430359528336302069076690029368269824326385716293412794097788173652310028311089220813182775954652608562458665891217514764133296140572764469654372678780846579018605770756492176206002248788672811821633693392807799032613279442721273596180053609817618068125907046848523791004362439288260130771866783904513262790648009962851000905717002789166619837415842083760336370398038266986791486688016731742413444948428663938422440339441125340718377032474854748499035572397570330240955912388788431561743180311464921697756768952806629125247017256841898580235225237075827302751823255084505817328199572254513123096526169440708585586698597004923078924860750063597722996997044872558747844383748838684227814230935412670190104732722067304727118394259040265909918544281036305293994966910998978579862328024025784498735054784945624730714552578828413181143381182074122742155255047346409584743373934378405762662899885297588132589833955784161902053504772033221320660390578449980964923983361512209821922536392817364742952244883683949239595130454024892893893103181033266205679754477424707743169999362493074713272342496260717403332696873023428552629470432480094058121483743110121329513230150326593402396276396503864224436611763261017990357881364485556826446920330107121331068298800618710989793348221647978428683362265682395294908053445497160181616467079644090801675847974521022289285161227039791036970018242754380901537723356917993375291274546274377856355547826045618620369996214300262298176462458869313122491697085575215267037536443808237085701120565346543547703258998888776696956976710760149985692200011113338955678695644772975571464667320911450533286582846593183205463966972709988243531563306793541840849418954269971952290683457501350980911296444690654490626343028122146857763607764629599664233744308859432314073642122613253081801413822585099261567218960630633161559262648412644407761631447358905260569145881426544284896623452240703432712151324506331314085901571627334335339031122914328210182424694758890509075680306434230643281050062442517652121002079277606335869310941915576517752772684921980757734673054074417248787369332493833056354331422576396223946843397530109278797479961378314790903448332991601882482280328185599758035259174590821669428989035711480119381086886947130420071638472273595724078888876185487004024323624307605255765945618526013982391787999105396018474104289624795847871145109272639321838523773158199538771980825861136309728981589911143582601773434211362606390563976732959715594807801616800002933344892742870520734062424902241403532609553461974797811680456832726105392683390762568241935612145408808173695129302082458718815103249059434503108864508956739735999416712549014790604764526058593274012279954134755821315956144381679132685061109739709794948894478488362808766863037273205556117361518720514886558096455891593578185856426534209664510420825137995528420860899568938225751238926250708728014797433369759257772462808238029105831045047802217207174552609865725750388275537871190995637629022806679192934015943893674337117792952705987481632368653580660237710915112696101635497120785634884375416602456363478738233190178830503859056570214760289509506876123350426533395266129742590931155350579340790790773570555702027091681129396405103890652250075174754246177045593089106394880337254423355214116895926569120603420761640990713291658091384800288108003632281546112962073199939636785787715085879741425360401368394015157764001332446958573860538638876586891083764467994979263302824775766371124189096046546996147642196280839527986984339827769794408184529939132463857434356306935178572036673895705689361158494606877147020392535555012458064919434331664302971808555410914798600023969566365443980410937395677476726868354119913131615929529873831329193236052366422779694038563639150721977542840908017915156218267092913306718478036276929793659708313329542267146101192780017556584560134520653629722398588382294193198970297413321508299461017491461348098497707832118191491594316160229647953928645938130374957732292331419902518212178043007481485401612329147983458804901641228573480483152112793152851315220902434800280830461375186384296079289294949372950724570147204108054480669685574739457734307184880663050274831817900742211311669325643429994555420402610157930524309725481559476218278300492008036638785192467836064639398830494528811103359730363505001036115734440628250692600165314833863855131664949235965325073862834320883033555376497159930722677819547358802608489480762167003965658846869914053079316317129051663611548421174512448213507078954779526922011569370192867449272965575500150487131658128788879165837189939710017597713173921145704597589803436285283168729784995928268921356392749949862609678681573308540714835899237234143944084162460851373868717500633630550092139690078693342668753317543763208589060437732005552537230554305540177881366218376657319774847696411809360463412378366892397054354954327635980974074778894163779120775907662384151825771637293549010160298155346022666054823275797418531980624855311972076378520492416319414740741734861133918682859342899961502422607107836042445398526869879379535902553540251184526966867250746951392016443200767055787982855725868168648521495008386353143746849527786601957714757086621519523699518127087132136525395642472610787455982956357511663336180349862883984492079135881994863231042021939627759721704619604974167766542445218368690593517871776161405188116611046771736194512191490265316698518358188170113279117886363778854918922023434852364945003677144373007229411727464925985550363254646499851618339289568972785184535326811669498271370609249797550021825551067047951244494065349616056952542462299621442658264704349079960970849144440314401196942610294924570534046469957791119768697009551862386365477011471904837435839754757023082724162230703103050985179495244933183099506534114806375502513965739191105002523772278633383195371551885861847234824511857160019559150012128707946719461945270025128632461588808988269050242885408000266832867620242273794817496439777040552668266309151911150702941434043263238317384901447052789476245475057732704094428825531991272593320974451366619073668224260589133216210010569251285754215921533371622696580354476229145289495594027114849307055341942393766279846404965065230904652800895724327646698493486097883268991461436670836978026639199772879070271945945252554513997528781271819371644577768876021149425979631266685060885122889367670772810115624843562423415706060932445766193983145411887603891286569208581773183831092092912835738254202135489245302898486197986646253180619863384837096947216158041420875047286818221574493086883511722260918138459732983926768053101443448528936248040937256481905662233808202929679170863463095996329562936792069779653145970109838540105781078322822537117758721078011096245297776330769557108804337228690780131653136015433273092034908576420911190219966728540681105069059939352201448483960049569971868805059439084003760789154499307547136459856985436989243201597283349144445122542250048848347299935936307618044979057710450811364959959984994736864898646947608951774951565282604714345889410850502683398052317784770141408294451098117689908290843822365196943027847160453671848008785736424449416406768025243052314059943720106655493237585386747262228292231285088894211025700629196480290371535640206778033016912633369090954147978924887940079007658294922137095524098446537912646498198263086847381802946378356838613072519415186873047661252612171379932386725134324415075350820241086456835600008743963842316869136361673295818504213194727469440300062208843762479265237047455952694196725023592267876097768235680552231902669240744600558119800334558444397474769588316944702090492957739212128021882310883551934989607325513149061699180046559887165965648405143664550437758762153858975826866756959825462135862726302182358991881298283513225130112699818365578919090623543454231194118551111505937012746826186380591219246348720738876623485520689159855506810910324136214039107056806364099884862846854097729560711880109714577545877661660083842399052281091080688724997559332608767968010079063825476492161679417974206215116327509832273656680670639484182176743156336212965969928316475025758494597166927730969601358549353146723945468182363956221646006165895196448134180973414423932837915178381206452645012207886378639585109588027002111655861214778854212047757805060320645057974154949234326642767611550305245506434317324675801716022889307792984820111016046754837068434022009739928269009982524018210694409414339230657297465291638363894881667718950598828150137329010648290371296673294508297958070723230096679474940752850841209621977691496354811035612756442295877062985068663719402287513845621396644114471128917764331661498137461983550767061918209734365285025653524607733168366477323815277481365993629330268485318364513695467370342548939346568475034128717360821355897193560914498646531716398059212741910277478893881745316625267250159089513247500044819721316385975346675606207489546176878364704629010662075481264938955415320677351580481262588541603850488901602308014860368304317041087842831405764780451494689518747201912201095448345802462194498517218942218484017529292925372326723240261937835070250084095743330262719150277921356501732331077446104629531374837305930734144874299882473626929455919478488858745309784621065262250727223324652971522927339325039878167055576869021870928389963854040520128523257728171682006629009885991856138649381021715631417077553777540898632510506358978614641881043373068594765722254656053264988712580290698386829365409230983596368097240878738569490026010513964372094342818809609187065060052685681855201193143679490355286469172760668008307969702773568322434075213453992300495750333355993900034403672250815593785783082716237720477110158327819952729814431263560276101290310496058258655564574976466051000893833535193107834446658498158993695792943811306304084890186389116847865646540804227276168212421018259742750634708257200695104841661061871259040035972490883453814696800599079775798578287637267800093812567609553146175836566037317863959406060811039052508066220948418953154619529983147194407786538416803948680606318229772737248016552324645839445661202296465195037522674113315096566675382601184674254713745653921189855547597818801728213318965573148359150611435699986060676544717689121820238160204567748099670481542957605239230662697136250695975635087614327661753998954701692575050728980415815526723935516380111906868461297668786102690805562177685707271304028987524112778164433790016530190800128570965698465684002905241866868710101636468730444846669445968181775318315126107105338097983892861962194023423805278650295095227104655447633191461541191954691762132649567775790519663273860501937599341608880604434743262611892308571618335368955345237422065993377597476408351599501009486363156086634323489771162189683381196456649959013400524255245393698396105022963153609798343006640091052842351088847075078114465099106408820968494160818137188393611956768748585476381755133356589756238101475527059410928033745130651482840718121940002388073002650702397536993000251311280709255018608433185833723476636857388510102049598865115888545046164998633028432944845299041614952862265947165229011089264134152054635971095713490798013241383648244586313066550665291358319000951638498808585464532357581628193324454027976753328673373800142152681121801066566563995614342150115712259992624255173254108428156781847121458774490991285912749160671806963966949960316810835794851123590662030027013737174878822454620437285863123320456161313197694561809160624213738642495503642250290675395762937658476278512159306113131211333171879866657595842673661356312585478696472022637182189993429430195275949490927958984941172645735114919848533103274709979416749632877619795123250144922052161975687167089953775209795527412151856239081686220388242465703379982820806259674358617588800176266233346108472861987947824944456343320698415295789799140655702661041106066753461318628966747555917452208487444554354003677915059769394545315131829272810260908911119614246863077022749049752811909450178456219533830673062090457656061558136312058466569575873925771054125653772219079989264685012907598355222871743635141134510032940645554776193336696976149952050246630006225774812208549924081377355424526823171708817703536369452077403607799818544054427580645744538970570715504170030838211645596709888668169396116826545629396072661428353050339638472684502212291217955450899960266326020653216925863066932043594217809133352032649884931525721818635708073458212671688401137963842476297332253442019588000666953309121202551507758824842996311168454680128486541313891455712026093617818143968606679187068066036630120960252366112846786417807524236195189977789363548938470981040615905826441200195503558560936080871609862647970505846559875419080103254931273648480469462829024548459584769405103520306954323836750476215713242273912029695668591373311969093417756832404562266676955864006518298171140637175699420691815315793000133359796205109203394132271221757106540861386550491342801446369323116420135955063252880679010310569525442389797757632700239731431564932574987829967177345201096476780877467386905325541292163573146411249175032775425464567733870142557253126093538393689009172983119658374887233604589106095596548594307051180717180334423978197743019663983137094260231918919299034455786971623961178895956302005300318525831050124443371399848699668789267267562122799071545728128782281081551723369767819597815818748491899253537435451977465834509375425071902705653930772861972795483797948861399749562654205743568447932509993960275840248147764189287372125919723019556140937342114279448595471333322420237335810148509994010977940924584489063526004412019162627764632807278925627222892948935354637555576371492299181984721985033026122021696970684580008255404035657079809549195135893714918115754211287873537733800165448006029637203782339022888664004498512520173556718377584725167402302424747210997321245901238674972450723228894390586963723332687087794507890762001409400584934489989286837007039591636907157772037887182381245066698263448049113462324956249660973168191769960277688467930446329595981458046659025053400053249565754145364701380110815848587072424691118095931008248635955556644731401092508251492223798998083004983070918934881622027801233946942177111837861543400709465831653645571073188118320080243191981235591530200136024573515813340663852757606169521354647507546243910733068958948281693297479493243431179104643766672481095436639609955044899924514984432690884469591256734441136517923455670452939440128279457895129867636030300290071072962105228909234132045138897240329881237557783700018841640422625593949547781910432329314025120582792356635338128926558420701544334262293320436636987581312648633750888494920914869130828822570068795856988981350175972948305116437498734029933377689581961737188165792049266313802900106138543963463653963433303444698124785980047683656245440566863096626945202619475928858498342271101966449568410449540165378467545266859516291300192960698827209292262408655533816077947002057665491188214991367582925434008737615895700254296354396792490265798827370359517139984188380407408689013438978921461717178993202496737873691217450105671804328151871817842409173594240810876078593697865963745992823532436338604491638727777714497450204905741695226715797081943362639913829657871198447860654932490328062837379697782100175417366056625510398107584329910743816142546547615686272323009637146472752449803872812237809105471325385112215430551147176234655644446269962624823503695328404278902377807236559007499054268991184698020394769387917417819453553899978028317701692756234909097278422652571909508592162262796278988117457357471401213964641647444913963349091602820475019270299882073905172017020760284421468867915673393137327256135415337781304710905459855775762515209733286054065573571627539114194488721694595996583300957686854861778648949101619188530981805180753659099531578753373353346420860160285184258475436033908570803030253992332157272882795490050143330256211869563640161815519184501871321174500864316276075969694522844495795974646076533779995904458916711968295039095714053600850497507438117150063320533189559986699649836700678914991120993488215715507486284505431074863354170809287771427948334761432951286382382932598763266534673872920926805798413040125666854827560385015309640587459635946538947694908742708981375254518465576464823056042273101456876317774422764679666751544017598310548410324897430310388303979609471803276743366939635536459667187067080621251287686948529430207939277374887801526431971621896824903491670302815310161562440486324038648107854860456748449746162192713168699126816541167930436038986329761230737874167243406493034708378074548165355997150993140406907472913515183436635887333343341645257606355133835619239897617210081976718108910847860278033290215671515770155066560523252102433072557146938973159537543134537432306403252240429443135840810062409019829925918603483210939773297128958376094091792376151932164131324337010870192670856847952871818817629906699645567665142251164663909922058118567410968697599646846430183394580907857516025657478801237521029489215631600949565471648899229298800032836566133769521905243755874408621031442442956000389370094323844515323216965020690484382962582848202418566190262708297061572022018592562931311941866202778546460085848176829310728123908944171281761439675714265005503678310892591847431770135009156921200752769190116302325510328119115444189493770333058901025135277132913497931812255024209576432264330804373571997871566276355873888335678530255854704428971497183981944743253939376456897632699305809793131607811636692625518078648794775560358262538659138454062288541520557958611571165975292791479989372945322730254396383793129973799138907682839353131962884115169043282321231379802338929108264368229919166478847128116109884113274662063432928783567274466431412108685832590379971388826906357861682158845548013158846743614582034632230742481360208810038756804688769062471241453676537219327335363796000550254491162194372055299417017907999136841756620339560059746595086764026633065521534551818241321589144231447579399091014752376229715230026870630412706619999728456669035162816056660890916228561373360456813269339026406100310322656681792507992796300035015504436106579615840434398551442100879002782084530284822217825284481054890619441667817790575011334769524528756250235926950661097268201200117598357128354181196278618362405627021844815838713160313070897869092423664166043585084593527886001108506547463270967008043500150084015063127850784233287430888426436723622246544338162360118490653177651575508672827303005306939458532047149778021139638224804895407182386491470686990236116465795916261761347018788661286708462754065420068302505655857527474203821539672583244179309675242251261355764203961982769125108770864984647313879213772557361520135067653616410046267346736445581880327273574519525197313557656677303598677994008313250354908676626356937438932324992874896911946475934567532403778950263938077187175544972039879909854245473570702240042481632580655467349530913848866265658037680926733295490332220447543227161718053037551775870058831427703367701885149284894865644175633382900579697395201335946330412038694118861689666212319494885926143936959703307179545105685954701726619405239692737603909516629221019174257957917609725114821846323945479891955477060331255465230904187087082848203543661492679266031995513185624383147028593146065014141319587154295394118793661658319628065982760406123411922957419016880314861272353326450389027950774406516188694935582456336033572650934753647056867393082147649974437896981627334324981200325942798697718345916442875438970044931241316070377144981812795319810307279102876626776526445415438746008171178355272155698958017846695741014686777235284253025720120910413118465577154186604415737076029946441066463241831828571210831929437157121906304924930551739574365934425317343079183744140935555146358374655105448388581861723111717742907232459031637196846944167166379872343226452832693531311908046449992134031241423951595040892272297155387161807571091193780846546999237040253504474338550548539191205056925077312739255977784770448306276904038244755705823910720697311212454296630326451794583727421154217655423136518889409738637992802488800679588197448158386609658013724817394358699432675960517220269788616301512069691922559827628653705242414716126806923380649359430192866568245696828028958300556956099769062930858369641298858373555045652713368343609221621663277599763176761834452650177560169705313696521355940682954194913406177142346899923973901558669953714858799612883264590656809889243153808944997047233078903956586823068300222203502135280295727400528249862144776613006532335980858784633257066607087136930470916033251300146761865644471489908513079943677207054496144258364063232675945524592527414676980439457771000731452537316741416837953144332375085012682418344198527938374145969473634692089100984638778777253623755224427623767759165186575930158001035314678102020465943902968166350176966802972173304840164826280106542842509245836588339112052314834513322957368391451486693314978696159083172166251490497107905929970491811195693450867039794111450976823385608288817681907517874604775747303100632133206017243593932112100879395699548291020884436057675110644825765576369728532214390188788302664804560361274425448816740131232625097647796634095650981495809961139511031474348054931373513419458183133752543484865320413303090123725560515360139359863932639849281647175470713213625476049020870576529954595361067441219457284847718571777876019367484989196244287415833768410130790222431645582981201604673214531035804750567996034439045071788295747651636053006811362568140788665040096370599431471833786017944067229110357298981034785732683288178612025442325764782044227283072566255292313483087456899214899969321530137733048635611167368564777875996501966249271091195992095595377785415655935612773245142805586300793000039625470336201108739551030519264936392212231658754568337599377521619637707146751430333265120381734728220914115442598030932793073471717983958984424059265308089603077102739453978650575861017573618474042095338730035828104528547588355932229718498763643571445727589829345084016024642711522714187824906442256740864620134926708280995409905114879472566132310714287560806253385697424593472312290419872050954818623837034580531803294546152529201520512737264807609171323384279676168373376976094773789434598242283595246026173496038469154667036518632150670285181527642675834447451280574408364680284818721610707169582320772008559334142929367394198239180982444665121017762800545643324715141199809064238776294428037551314285294362842364908621613854883897771918421320627677907531001833238546126947982756920956195162803009721396670596983072704562043380439798701988242455465809856522291726882752329744789611843395566535867555224199096262383987294290576795964521193118966290438930768803930524992785363170000695961833934789792933359542772271426476273985118976593494393663267651451818815194661717656617793335945045100563719018055644477893188995640010928719344335986176609205054579884503820680462311385124888580470713638039935517120553553330546262011920270465231406831930255421000092232865789199442487666663643792289991443195496266676881457939382427868499597235708413363390532596117347543676280006703825669673155921432478849999619206750785975067749068840554996417209442254810891431227067642039208770538638308638726394937294342769053078051691073929372591802112708006909513475723540514237183564202648363783494478265628523008183879950435544115493941065897900453647700759936194116641280604136772889044016893583426750786552541893495905565055620879963049595242932924893062514529230799853635817198910132847801277007573226981697770156443681896283965309985495081168187651581709798300188488016375372382041964076688463080245470595949954296158011484643570718443909061413103630022206499924922018436209612913039620053077535114176651970923748285449962878750235291053458042123450391711857249446870830307042099802346460418645743308306998761262023968727296100619290684706942605062481272738664930198885892273526996951841051802047470475068553442492896372041793482967719398477162053355858613937678729216093611898906475468072757230535306687668739899866566025632499872918056706811056711462077105998477828260506310166893211613883894128709559499633963235382463406631178094734103500010796290549501584326293813606842434916115015100277154561552166589117474711373479238524433726619040688914168125945718525693644351416568408494671069099069192135366964200638515828263075011672807822536200125418420991390982191404134690983776654359003639697447195642023062097068702240356710742428326228000720949854717201894464974912432086760451353132617910285827420492799157011816346270413851539021385565293886463608477990536649759202178051658456288821239400723680261969836872583764944599357370302072143280461599615009232054281682746878527651880566026398947971447528513557645186370495739886271428260772696285883576725730610689418578235057620713939937837245662833269975720979869888231279734716084525214710450394542903540225002347188188858429686208086596358939916438557729408440905967397696090209579696947874285149028060896707867408851141121699027980042622001313618317847588914228984818566253205829631069931746847760122230534737381559450016545931298410000994811020779880757211539564479081365619225269621996960075772466563763641708738830426416642364266296584051071675856855934712634838909499985683303977553367475693171317340051892734446718384065936309018535397925393818272218363513513516364295180377990180190395294904680637033687457182434634477196708826145216850040666207494588137726236752079623894177708187895969696284200893898920427317431050300322537672383065921472370560271254338082482439685863204155674608981766420008776159312380774009520713392542479296228468979420709777077557960818412114876864940402638798164947340689486557204759260563033707465954857029334202950976509329299992363197219913525458152824364597364736686850606561614799917510565918889748942945327115626547073637928990165054387633734084190121278681081284270320730034048283128184218872327917550003542677733909704996510190900908411273550545353844659558974801552669750077929430322260530309714212862956017778300438903534829982322766895423387751144581904761802714583217216599244841420656138797494509866745123319130596948215897761645138435692789780409841968913714789668305037699258268609380733609518143180006110199737602194131145424844643865872016032735463318859742619043919900070842082668365902620608303065804843913157608460169546255281349287095414905897563274170928279205418421977430226265434638067201483638072511020544337702822346943646513852991654505323642918260299126750183665127976795182968481071708781543069207227753846453560248963558817279798058798397139313493998507037578456112503805745218690435059756793300056422255925781596999059920423635039392744481057122460401960967873057185758519563294363939138578491667044398456904656181300683552736394538993419901493645574001195221805780981949421004739389861561392748053641680204909795779819883383871273998566712644601221204153161203401826157044945226617708364739797418600633309091699568858889857201594579100305791248275295018726729998889397726157095378106461494205870464784028405199539014387709058151568943663825126906464568304059677060654876128642079406091667180793042073217558001403979311466845825891327304241595426982006098224256209707256114659666003460082272537890803515885070127618411158479225781840022366531152133897388693877606838537178028175324864120665423603456812904285890461152564869360515361701391324376197338383518549418145492582310862274231527094963861129368711187844974029673628209436955211420113613994829428408992271374892039367634906989472706500772895601346468416344506846420341487108090810561514948216384256404514900546802567953494055096642000185660955905837878268808153325490461452829709221406026204460435198908161488041721648665741502793441554915188578282602641985764944443647148423107110423731879431642776821974076533508280547987819865021969594720803639880696548756923810604480913384814699645564346604134988175302042744628785627242771445694451861433328362897954386755480246511202299797143942194283488291860598690770044235831291477586208150600806256686550653206106296012142223626915200291645671717443690939183634808212654551316184833432276959652093854394881305223332945234799313932864061889843707095824552349918032126842152986142892160422479409344760706384781369047681635733394587610480470370990825037242533250216733547017389150902055789141373629629603430611766992304998740489188325631546101297609299043075370451756485853515208154921044730347122121014147543725039588004755334287605689179598157975712853283103626474389364502801177754382566196272840643557094943197117669679560185137723880341750944294946961936204491836412612859040503248850816550316332210350447382414712204162498776577484022181510105150566385422686532591288879840475106496002636132451718344568861810052729309405007377847856074054322868949023349939790882192376831822036998330828853517517202239956101551386094223768091550463992270310590695817636411458331970371032260720016021265633174019334836722816273170763888057385326064793993176943075903446397320533288263811620684606433785542362773358739940641195421664465356710998645546831534884647834840392672450180361968386837660433573588023797242886460153163300796995646308234598147094340886790215930970288444903522141474114915105789828402394284499494891920657471554993877893235049332675657714572897026213356867010375511294763095066886060120822019662018475469623107593011793584152254577397983057185443858542162810954404242394810100535882523805317126056753639910443142265783297380789857741851961613106015220891610327198632534990889784715121892923546897370090347884855269354647682783023377415555404925983470303622510693553709504738731701256664866782975222439559005091388584257370139357925774398854489241666068880114325299612106932207552082950047930011689237465459958895770861992588544522184200249725177409015161215987014463241624253155370307431366011873632747313561071973535957816232602379611710692570323105753496222978983141485791755313513918441247938147098927515475666169748309928212258846286886846864656617662021704730384184991197131221661047909426439988826309881754198888405994872736844710800860128047596860535444484972117643682452265215380029402357853711350901872461670797689936775349696666594763596565225451215351698609655811916285691742587870615833573717796579753485603468250481068707119578726487099481916211987601093809223908736232886778354931538002197491528715378664624957983599709232292438937198410558525817803851128261583911949195732268585058743235420981113302292449822878341942137278759806519925402862388545176972812320801559081522195851970433308061479926626496639025664776800734289394237372210122674027000010202695392288409347292039316569782066507358247778241472577481301173114611258065456946037631596502401351993221097978333730737395079583354630615388137747749001062172467543094648038023984084313211525147482460744200694174428527393359739810126909458968788902750912139872400034875970168498710464639443638355344504261051517277461639069380243991083949841654999202814086570348253146538571303122194440567099850055374103468272928255105833199343683575439636261480050994456197995934524634827576591502636713207793223299903216896911808216424879916953895029043083088005818532944165412668784756219053264097151308245765916204877915378177381459841357725040484548215907926121067899266743494132604438191306031778470238582905255317083390515673283312514020734220586608932848126456241000121948606692313830726235472248828003987001766436786156607234227152284703123342155036223372543314612573536547960945140450939834044960885782494637452506297674501480036887768073473702173968326549315958164873145168278279279628940815619915997895539310527359382117626498390750443579556615663487835709743880699045495283736973277530783869963586012855087528223993578620870223827494792382425121243025002486294238171432451871398817939553284316412887641647743816491398523763277135247886837195415509453702029674076772861316237368428708687659696047572831823555727498197898066257947753585259035502148742518068358386539015719950507479122177699866675711427056689630771686874652733017741318596237048558251379421779139888274419568495286960872336131231884940526658987439474931631004299616852808784532937031839354785571196692825009416381314699755489274067408175651329394872235682838225256548669935754393926618655300581922101842992644803622285570907944023435374922383132175463748381132335145606516555601456758276896550457867398740936661056346091374866614374579251248567096444845326093436911101990788229845136259176890405334876589153013910338489147643106412685835938853881438395536150394679055112677754058626003335917421805523546301622119930418151718300471587656299694790132807634227472018717478917279833968880464366798401413294952449260396604560040619558416537658822709401425667069918653427368030788532159005106873015294126450530324512250746282793350879528201908455061324443192932078943451884140657381053960274495805492988288794748346819956626930788795903858359252367816925930263710854974704301803669096405297112427454462919193454300061018863847035718659902654809327246637183138131918663428444015698865407823760477237869672363010075893833502959528084139638995728481550599598886924942617865016033819299737966342357909341477267940697625245891520617214506168145566768030868521730168002367012770597786036234415865849469626142888722414000929305340994285537587165015466397880038558698976952334034251952334156916901311830333637999403659582855641303272900974982314836814813205191887402557493662276637157911342587206967911928309052055607922766561157093419144295291712977218211369875242782300410572732599744337431435693047058836639047757872736308837847063321068362438696501115859296610226794978690859509927215156202772260435775211285904248589024558664349530996191081019164602563770727661135864543238687077674656494755945208892795686852439518838377092536440099787718632371898478975693134814327973411051329524231445861261133483879331919140810030328978099436321194735826607782000382751585925091999167359518960057172734240676724877531358901620736605091248828965774551755488834025045313836380476263886355951466897580109871513840512029703586651743265608574333091658394719694087637165160965430754225425839236528202826811642535623545142662188368741624081520816325242206728476013985977743088501532277550880402100862105844693620235686973351182963060367236127774954501832033694273331412751319850810744915937159899332275817118126929058033119205397861607330713613244829282535944897731102017915288132377828709213368587065817821198216047170386798066887301901485954769101630180731647024089092558546001194873282146774655773112894090102021823684109762622671912639687514793198765602216522769865418036173600593877093271629745132127084266051184128442483879001858143855430746896252984887530431032881950984933891211329859953802215434455229323029752880903225583695813695707384416992757732829720929706775950957197883687882654114751358730657953083146430702718509839788421389793120164258608134160515074175453441171473583231994222016541465447816569224181421440279229180714171575404069431551109967220856681463461686224100632400635338257690910612494082076591129530087302647602362063562471663042024798179810214788654925809179171146145396030959417672179525617641374347772148654443671763454455442597652473609940247443264776625727793531801883678060661702279873973069783833946988434846867946597312394562671944830470551415472967081607146123980122944402495552375474693507251952159959722179600476655763612734081991708146851558497792237188043959221997701297858118157578438375636531825931740788768410986376206919215898502536358167871460450458790661545632392123354205490854003923315779263891403265910532048493260023903250023601325378448957492360778039522205674596203557197810977962004613950457427488148774586645296166337735445711108571415089506392345018807685725100534232337251971970521989833758561759790027466524884191494589159235937004787948440078738126776058462953688226295803713579841725929989901259669509991755197012721430250461143767547539707742998057977433266146544071691982506953463974239612407625128577640674618026763674642742322773723414029115453999164093215677447974888652623599314924454834840960021398247931390946153857329105318115393597709240828740626801286918131782541119662816770913104964484245615817568006595535527994365119323079391667791519098212721983160167087024574275011856285079986320082557383091858087677142430299524373249644016570048041946733868552308698950265804338964342856500078909661399989962495580252305783911528809535553958662893704049039739540397978722854826056601356524412372213907572395922359070321812102999321070354176059021972058785871014880188918710196579571288875587845294460113611864654210851348555037373274839999874681603343468860799973984091172921698397014345558957975257651035407149786500631720444647241543418376443490631713305629602696470789734302732090882035826551345453552584828034330166234645159674482469771880568220041017942942991014844549502489250057087618150799006893469662158251978976752549945133709282555116066762329306224407758398729811062501816761118372338283321244484379861565074246092636791722780738079069620672500838496471174739123138138286185602134569591172202954191166711080924640546547698112471736127682685761557428659127023095648957026661801973632597941495927867417544195088020339426316679065279401691815239231850690640666282638639364174306954307440378678940554460247630180721730140504793290063100214678729178170155989295021178312559632663682467188227756025732988301165550608221277311798873844354070944720089819398213215685076356053270173040824174963737642401211805029394947167119013649155284389000659189178267269917251006770328554463992046347173666932277284199063988875673233162069249797994781857490161975969355123237871589607338534597167179253240739318962630470336762431531337686394110249229609713497539376691574072351273229389437509568848588754205704625228455385203109884067214102311610203394413566709214001727010573554807585594628285042277816464089305210277826736924887995166479205637203506539926756994102537580262138273855851811395573684393253159477714901332794535365728782480175626289900936736136912932527750429131045567483247808450370425175058480948863902685169940254524253962380204161176879933053261859120293625401030671322209785912202539091151684639403448824267702124205000795089013204523505628976460602715206708008614435167926953171178461890492399262670905653660697166500562700004128749433279384209782033946304494265483833559275426997804171616081212964288230144833371106660437649591945855750595808066696585179999703972577328198873612341690205977954544945996354519395864770457357675771984976355335870561526431947996051044710017880256684028478009524948601457269786785128247495900439097876234152454628192596159253842186115285401849716727124628063946899406890976862484971508368607760891850400231289482374611125359929991506353225765401057784220650418843962901653368654273201384596301251369483669963985603944914731246281338096039808723099727983813187208740706005319273832553431215134450098300872191729794191417013774976122615511980983004514519630261494782906940656092585743214535075286351332588360269237634913984652097949428525827757573493665193272881175229800622986365292482178334359416336036208428086304829094259340016158858584460813145270928944134420072156370224600204342217309289391915785535853385696794849640529459359478520776208256647669037025999964974739700851339326352361685348514440334973049472525608590057684297238652813330712549816165298367488781557531684165153585982558452877717804574269838793207964183494917242265698041064841413058296885821617995990318901250255376112120078071277370523348915941194802025523652091222781343175669645539795875737665301178229538083889588684002445740587460341294495328920032586665696921544370908640158440469152593034975264865843392753828350651835854187775854201892286000321849803096761967682221271155433804472510605935275642354623536831953951541432492907052478367857262147931479426355927196945146748220379880869571197379587604729685932570225440883165271292369829500659524957643311078888545288827292706687859733401431098371370048718234813269448398762758091289932563867973648836592926899397844650266403918286659435745669430257199208791264698394141945785715462266906628331582048737562035720173268253069388554810750685042338106055198135382779530793709718846827679979057192545961723324310083636929480637364799759311511703665064813251606014404701023605881000745038808390367408475170584332044493647457922366937908332233631117546813807516323832848012485597738325171456120156850166307463155482801887317978794336415443034502635770658890252219486335471506004094247714817964843863713892128011488317627999028683418707746826108458408444800598068669746028768612011410052209265319335549782087929326217018584591534976873034678127442046655721699286412014052946062186746893167786673646464434897759297928270473922950706203196770326927137903890817439499684999277383158809001204982433792023660777747845783206345243122730209100734614678798085309845964105618853137517411431250074098177723903066918410732669120625718971173333369062383419116807557090600513372155677774035406976131750258780910009401269581648331289642825872488600190824142411807615055245119384060456410898024949432293866984405682494112039143812571436184935142220887947286495070802282677583623130462828070130386084051790931849028267759398889059973081588652502735380212212642745383282936342919118149524973211435941631583364361935770387206321113809931073603719036143203074204087194023307860900439323443709795842775698697933867459092066661047554397244936021164062572295869878911094198548713839281492063388207244358155734853234314260219117542710687726770953646738828505253662809305705391731753940177389701220992063077890260823015951258552760709960755654544751812401822131726341603712525328986517564779242282810543717804484149823770063922194011808985519402624409552070173833343039014264125725306218570671283563742692470677010205847620653033710980377007813183492252829628795127082004277572657603043586728927224968573114236628113606384751719243451501658336576762601363224620749647076688120723626367114217049857670539456932886915252141773985617950999776195038567481801532614634545417386285135493312317191622892027692168073434542690127589918198996339785165341154226078588120872357626315041947563957556295887243128924915277371198621251856415397163594332564758248357799012068288899792623559886573575638755537651986955388119829366230005328593781391018599879234368581959381697933953413741828343930560934170470349760742817764790017689945801364105695032697564430978860970945828938690046437851810361173813552951720950795394940535828798716367122946029071906356253050659380693198372566159819336372881297378645532773865168541862566611691935417931772771023742249186996933466777939354686807286519254044940908807143426137982537081834027589003442441156120069838115332597804899392721892564758613601040702979126863661757192726495278034434701235153602553801742834443314094086747736853987526770001262731420919554372100904175921973058728315303619954097913614616170906569646317527156765694145341453730525002063885031330204194251764725213750026531224430751941963791522313330466849498615984455891785714617454448789152762083263212343946255657237781998693221522448952188269469472775139617188023238772291700302149407310869125707950013637820130964352178256856736335768299356449065771605613299331421967872426033132414849590869995587450663864570832088412268569362865749528554217701520260846234873183069275158475584026890147861888609194048226048543987184451836281497460361820430683390582234599671923494628622329771079353049526324567576216983340818007111308328919128627047946196070301131701622278202594204274258800007672340928697088617316410269769861669105697321343702161582648468512349500087636085899997135488252656799792291254067840464743641106504468861808529536203936756039292389033741940331565758889209182533204068200615492536365077470834807805693942900064424679516317640991227020560099225779198289251122626493509791051945520401266786854382203151631140755429993793340991673682710046840693824497812222516771849699234354618648829472382265126971030353917074370686721753538357203693090844661637235402051729087917020993899848959682939949885988299809853349339928911402757847368298598812592186247347423065477893320684140120592928075206904255533262703345804523473976542921235785653442409002228615228787206848291277809904275786048498153569910613607364595520127575904344388429841058926926241628107724772595645143066381085574909431827197739464292819858814153804910782416425811950644943944028747174609243217697220264720586466038117148985208597398869039905786548477959642188439459620146002801378762261031931780042021640729022383050716764637801781163031516910154541656766218093085972669885975374129234228107303468056004150306504455648882543226459549407649681870645313082489299879100184271485121538175885102526010936721354290297940374430162224699788162789653190986826221002459026632643165629761513898000612788798244670192566222263573657205556155029429641480201161251892087026880248248087796704598044912092995206019485833193810052901321256659040079794105889842274587032815740350848662793717009055930604532361286055313190351851509096147411882733701192995369092749203975886715067174276650368990150402288462658469780695018840980957171532199129983067506822238517485833131056903674917095220748656181997539080649612718979933678698613454864322729464557853840396242242013887615189990091426233613107355600148024940949325671006256623933784846259859644304172881332774389475430729540261977146404866407015653265081907923829960613504250720474198193273820636476133489855089179081771947100719690768936230598067481026947518284812534660492993343875956787860590178378688085439463467625772777227756051577593585324493731180201152765858642924985429553345863862369779901486409171051742316973991981061248047934349956512236957837209076292691583262088606727879458337137059674653659890705329146982403468310611044308642310533684104945407623136522254231382668885612343437704843804012962020013419855216991840367951866138029148254904608271333057670859540934951395973152782432912448498578611845391285137722944106678945764752902952179587170807862065389005138364684121443868970800305430755679131176287705184161306135046288366930139694208678557370067486883898590601109368779656292458088713201143170836851409176326508409073589452327426016971198283177248496227109957973586504351688350010310621546533586085348057450356161669508919089469720643931178486961642781942130709055999364376801864308691443796419111013532318304645760930096148832482704321833177523581633744405452188534078084896026606102098552603793192601257418371852495212575203666924271661152838533804356916213464041314054522081545805866961232621336578878704588477444459938886966293705478268233370495907299261599049769807601342912796251767634424022305909875664367332248466294760547493233166250013226574233303883853419054493961853997425381401118673356613889008408870621699059227498505423905477001085098696135736235140686950000786346152314887717051642024415560826741683175189916406454465055938280078409861326224901596205342458348334982118391139766065840530866421141849722201068449557408459879492529401391165633363500292586121088818066804119587653366395176348728748150015031546295017127352205989151911018547954752404046454540494144857394086846958768083610210410891948080537465252634290919935709819008230687873711072891925250255046002684760264566987752337793126113382674464085645679421077890091248345030074616514461769329790420589553682298104073301830527675807386073475406768093997810651147977941591467645869075699724977122965517922424231468859127309077896085189637578050229062252711136450993657915239676502537211922788485010596933194460335570706413195689495540506197966334562559222126046568885143440771801830075886966350438628885646230962475831138107245402671866686250880251609717710109566757055781148984890553352558066295209367674155007748544488131318131580376346267544251306436804777843060761237706400531969153959841240885855568605593967469553691438672054601102546723625864911137100197859731388997517338534245074571433288084278720768049745043367515123062423176639804311168995540672100900271641966591110338023334897572912905623330576591579172829798058668684153065784880395718878961685258910919696581975178573989488277446485877231530631361684118299969867754311057256578501516106268825694372863528145630608911195642832639729358636274205944692394909063358042138305995388457740710910673062395423010340444513862987428163599243061708073587304414947947155900440822607865632072349265970971797132781319575801993390726811997885700273929184361692792339801320316798665567809114048093688660510295337273694144477587728997685669864439379829190409853199263561960513486528057111845276607021519967027046969149045313413634919875306498873899974469492348917268247919959413354425291750938044699618861383124654352230650783042429902035498318822507257484352733523762100682021894141478510733364562171976037598752741622055724537319300580900679590680271845721769673013856070173370928807556254125864276887741162867964208465735633356237249242517746274782183814523885766524131511614751103128719438268084984895980856097699948131052719754808033292405132468941752967885541454332608085692496455729031878118090810479475677086460564713877655654650726202820120838255251923586984161000487049698050239243496094676787101455844419211979828547045443962738152901303279559753222851326867304583161932079304958939270703486291921570314190534964031784642897586859421290913169954147275396590390680957696750066430848715681929894505814305705868253849405668622100370092377562184229964957870281212128436222348795133030756659442895254068922542169912298765770870926440425802520466221393896290192480259121900864111128822748852109706169344976455719006798204677436198767160381642073779235939222390139118633062154208035764097181055610111420465236940446697636923243937960746301408244542139053959357794178478628641060962810189468145387871508443924829985200225407576176229856213415424721335520059375538859182057649907198336972354439905983895382299868440773413830314696950844653600996465424704498302167808195822136722033659407466592069763459252572370284461507456096413426027203655406835652916362749498222602998709626991505235504668740659207022054967675194121262460020516257504442433518929061909471382153126624205587723864155367152515668335816315487518144407588937816828496942179492169486430555062049039248307879499967991620544828963691093062287866899504436026946011863003805777299945677275369969838229288279595314636126427229441976927020290640286283811914498417917029255061697989541265500857227559904546438400069587002775017045515764278470093800515284122842135466916244318324701316998059258393382813902127352300101497277193560228377726629404311913048662086692651117738184817261484082745231825085048098146684635317772069334101335470725488260978294731905903441480186853887491420541749075535063806820168826882887916898163866118279825575952280843557609806034547674643730128550954754125772933726574676566659713375502951510381100264423763513786976367813361592997732176407228571993258534249140569627390657918990561581913789267482100252783077287508079704439533694338410420879527067039192313758014255785655568663611949379764568887963489316695425857636347723083959576053833429904691054765173994589515331599726641636389084316726614434075953021388014731272194124506221190744822689305872211965954674010896341588936776281656602173720561206797984905497062364632663281443592754785351709972706624487643537829696774582773530146789145265195265365660775282389380796938838470146173776765451611473460023130869683430942118625667550316415392326123243224198265250701535267993447129898387097495645543537174169773559194888974688757675503730465952013652342652563667071257391494645773165312017674237849051947444697012535366027939481523231916043589285767861451883933020169915769545402336788272270100678860608762600812611759454117073953347225205957434341165304426200567911109008025079706798672702810590003830729857859948055253398614673003125372758212046363500883321901410857483919154357922344860547721141775544719213045863313832764282721110751977078919137010181847789101945214971791257781179389862343079312350953120796335726892026977517801655246925757984199301397995807086520640949582060504609685247429956268965568365840606921547049582307759318836944595284965447382098155873829899657454325391417987816467469735973096850300019022208170659312986508455291118485620293578178884921498560643377940993469229586422809359598428521176987844334919794783650252649456459515125837750038759413457581573213264975330436236636384612940069561372267175379155415398702013828692923511713575065658530686041707129319669385236015485850525409092780187893096582422681594503668280085307439332145352300068856804857504896691799574156149150351813108367140602541906962017884882728377267013959296317087766652887651686591167833811605755528337006375678454499914478500645756447884883311623299184680069635882705097197324509948894434389348666590157425267988778918140942724097372908942773493991896241967426098206847409857741310660792413541058768963010875628433503038155218652757575391798032283913956095722977905007737447404262739368271392007753711246336793726936617984494281535014416700479564946387186913075218607343377653708219897705942128810701048413302277996131564497703105893001564235180559888364007579080696294100723577738858441951903223526488783761812252477901051461435169681485577100909562329440561505640231894681335463672529040504808823777883212831880112948447215557727405455860142371619879170847072601161619927433500346147280481905362167373354257131806884747964869345427426689507260199186912052976759545324651628846834142559505874151175543457680041015347177071812418766701366895694772441205241009249068852295449934728021945916503669622203681919792430194744067485521466779805975700215777101357476629468526771065158860162359255694547191140609714246243179323947960772142559252843443604054671339429699802263470267656533977731255819812853919418089724770751874782371472543426852752829378134870552196943000493224559233279548387879320796326927721340836881502134620930119475524412307776247432565286811161986411015610679453467224685593930343412520242431262933015920005161146837468250498992780165070284447219156742742499484022735280416034093066071458653502980199709613984262183996682882506775254872983010880556501039708734077594278910132376178244093062830136142557436776930037881682935890168822950896006619787687438863191502165717295561525893785584163270624553625878262648679005016751244769001019652989236093252844493689695725769959131896970406955638548585727566091231808741774641688492751225981005648293499702125003649689522254120275253907822330745283142794389643593383845905535147044281104279186213540826157640195090757981366698284820648863462582658397793652984313490907478607911865874447280215270665641020622421936054526415287936486733878618256684046013085670304273576263489108327632470507653524306834424277974986140920988586105226709026520402545813577630880252224222355948591762599492409984208660073204744017935019199972899882987717302146636270276692537594356923760550608299389316728116323319829756542853461383447720728889855091133901050428467362746724995127847535469512959712501069466503857440185689136501221927782539826660692677605911160007993342351500441785376174385627303030635877512525070316010093807116092126808971539728204527071726224612557216497249660491098538277066690203003777723081654892450181821929370206509805760794539756397288448718404126086130224398138299737394444939823195285703024782909274644502913110961685469706710699420527316855412783174364718492200457154543684717568620236953546923705761937595358018916219578493903454322868855547945908822071406878942727148593880516646523720773179270883523947098061863767664361963981904529077675453667298441844707136869224470019151630386072531017263412627076522215643110073736812954941887731657221435249171630142418060185573344262413871970139719109439592578163286955019109882936075454813802124503267735898889700814175138418103838463753539358147264933795667583638388256319527872082524783351360393772785250934119105631890634392622347275163666277583036580313354007306676050538130050789095867142619409019253983247643428902074398061592251661919161049196877913424141773933337597834651218910911490517513453606710835418187501698859622306357340043625078323266529062093075474349596304684144719932850055549141471742226263360133584173695150891192482233295277050076898599972320670064189832995896438177151741979082808384871135574358947858428651359475375066160921362123911768765920642115637899287799968742330830231085218929865454701245165241963954200568066035289401012225449483372890184804322998435333630344314436482872011411735623990873830394665502406530721755885721217056488207731886569475247029280125242009458124517146580765353085205194430030894104914919476231929336474692326032450964903745749502663672760959772827807325809892453183719726305664931047034182815380235693064113909952748939752445270002768757833223906971488632705042767585063838152452276899179423088183446945776242645805377803206556546830905499013218922792388488931049529451044702312853549374194969454110440368932358416464354294053935976483416748441890946830674797136393152722034125345175012847461990447434303391015730266997629026295872335579131129048455288654362961790373801009902279652452089135158954716135289388023547272986666486341196801757069850088254326583465237541293696004345513220902788718977392044696044046884992749770575701662159787341689925398278629339958012671202092248106752561209767852918672951072006950881896224980546857326320648599733825439807881620812138465083448937739971823034098207838063949249856098451252137096833155995496500699060400392260676696012180768689527339756217802747255451420258456864886014151548369816195069065030355622308805780513148855700329137540842335186091164749045628926119241206894889187419701694594544891379635082867408845098462494047340641320042078449133378685188937992010174674563000668737388221265693519827882678115597507785192515638586170998503501535422491550156950630384995339012231238796777262644732700851698224816312606889409364101147984883294829758414710453115178622877750813414721568669607264235460172737827301487657861475414171991672654064880557759727325843134726561001951398761929352813234458515133542625193902817112461986024098958896942562712203130435013375317199957115273653685874499264564094101645040058662217438798072857456905338228629415780429689986874036942798324714322911196247383425930472507996513515276378469997487989802227497912750322916795553895046849481652485221051600925444199414730011790143004788964870227227985498087077579310253228181795812666992176794071593075260039256937056925209721695679337131671763445860487967549526605598563810597478003389647441272498934430089426546894743863985185142892948830948205111012440212085783425679863049928027105746461759645469655340275760157186993479073366453282001280280875697544744558601627385362034054111150373444285188210419547627157612081449908360340903275501904473222526514086678681023204340676961313586467309215105100774407000239530078760246817491215587292155820129753802795919181769806094466342283972099918669343407095726798999632947645906791421193529472207941726967994354486979991763010470141401333999110528206223166454836570426981490513615033073512397214614880707355809705440812146771443241994493127734621217939545684395651245389987496484564964788491908439546678918451966705389848411209193291414457327689937027148906684239407365298476443087357696948643233459218260838013256790356404420100532120876937486132081531643303673633467577026143727221834569345411375599732317387222140624984968835033096818543771968714664131720853082905739425314920165187720294236537662792816683737183476406411705752701588291961673158498530129606478874254752713254064162524838601166286449458197310914194381327712785966889182527330125411375199811702635781705018574384484016064428915778989005568760779922893896745018901426737957526512360383996781821568783332407893698170737118289390600522415125316565564344610888830857721662326623732263381060984504691460773635022448110782938133916436005496021194034146838046944638572507812173210192039837769506589597394913879114566460328755690657176772632908673298879961826213684643311324563955829098732403871788774029312774245409405083501324555732939300984596123812563325020154292640947883475410121690572525209994605482294650862376531623320020387982996675849716662425066981935896316985016658537287374762421834723518656007956325032496266429634246855848816230270997122281074421163843692235090564204673203802502674903658559859318317969912935801980305146769521752539957127781727255010715900124465997602120912019175184718737742587700297258548591456462459286848804193292043991938535394423613501166322686696079822320440118125421494594816757322834283130724170401224119086189236885986304155969887267405591205305540636376955297574716304351776516831588792927142947604948786544598908691442169765926955874898879897721878529246114785906338195713963168239959425380599203122316770600192344281052996787121357412334109251266772045563361366034548635239376878496817034376502435996924440780596910179828439041849101897732291951936860342774520867690813865194531293801015611228184268949498126088929495539655809399993625201727680203129769201963360040981312319055496220722015379291075576390982100682671486611503309000318496881588514158291343403591069856384444828485123132644338474133962426221615585317733891295239250890627770174978557586783310586284259634741907129748575231350074908918205322390263270748477457509809679045530050665043199449430497965790221879529645359890549112926953143913461210487325612287477550555790198744418469909581248079972433624480373001860588593026728764703099951164903404371249926910836432726601263908970187576798809797430492651899538534125905167509345663182690591148415615072666014025851548581961618786951782728317672112669198668990629534022134155089801076095276913980613515587731323938009709941135923229427802918655840606790874573030815152347113105949932839522013778988240063234755448965241029084366728016257291566936456038597006121322144837286272737006388617128928394423384539804555170291901706086943989757373190595924557869027009918281303794647241408005108451401366786746664795491484643965029869401276166616017418210537001778285172095758862166925575884587132584306877315245110440473459824619793991286413543883896326551209870320532892433334917340607059739348430629584959960847738769320273681847768323895152104870252034779718508765742551447268083969825480170675175617560461474015646702339933649333293059819318666671482142834605974509819714256634810917323675982496084906075874436239969777886747634311890706211897595269573974878508627551516040242920830567753895282759695840631247239446723599676457322888272865024807139765661352286395320537156803139341286224018308978079519430525330670539939268789626655390684380058001519838424916222895219086531184574185199959616876750528630479166508519857297147850749593511745294729371976944656365976362554528531759910508015111718491155016760950052958789348797995825454670799720596707280534002785372525403871606531830215537699400779582941649493568209800283526826343839093383976217393867816850135516912866377627667132012193386480520193435860067994401697825797085439595861698544726651359832004354998972540738477745340792980622330028467546932306831098927757709545118692514527447174354382570114803710276553303741979873188026978570175111373550319472018020692667227702918847138536959905856175101499187354422389578878619407691396182650790529862352227316275987023431001883627298795134206482081040533934665101757040014553917335936253446264748002887889712812399285551991222741699651630126316685630371636618542820456927337946509267245410353015276986853089123422465406014403927714330286077750724929054733765120167190729085785255895821778399731022082043368518697934494242831602193461332319878715360388451526503231056253069761809317627447950439962299088687856043725664474640619386419481103226180429061239675071789451016080556326937982130953065912445803162350891099677405283444712873477281249623451006829589708571860001490056774216713191287486125238619003325966263959802934100356903475807483219553568351298270100834830654995600762005889226913173168487664524878617865199467844112483025305031066677741065981436110571646435249574156908971943870559836815404504843251612980993264610281401674039454819249708526332685782684565362213953818360408879300788103082897148560365635284501839884899454455708535020957845892747861536686362747434550769355022949946535510055913187283789873736958385501084226317300603615944458746169332749296458056810780495222002378818560111619570679344058790758830645404534945056532808196701535180363468080395664092044328071348669196984038184017177493323272837760150603568852973836646803482473832815037467989314169118869381902619179476317502796601722083285565712393204476323624593785367242216954808004311400862183297829496115135891424932168482798110866986420139926252005141628833995774628991269302042938122653026377086258860802818199623594931441275963359430754537155659656656621470224908490920624471070571386781602762910522151164680474598509572964723662510477772181680604675437408375159425847645221698295416122007690448320410127117077674333711111676527546117231220679565936610592266207206086322876134238091393948498012628952328980624439283778716606806797025672802461280344209401118600701184620059866765003930228968334410965315689356266132312866152054542268993197354868242366493913891889020541518987930228296115481791170872054001948900248439833607514799509114011476662271414949465119956165566759730259883408209922779177574674839314156815747240587884059763911072403549554896818852351714105579059320958563104819267391313346419729146378131095141013538505547845340578516200492109025128820653405498861473984499794450301178410769719229026554629947663734555983984747337437886028825409686824697277990951176142447524433031122411204268367992124037177038519018132605498525465752301803096520395465583671780233385204576283014356846061414486485920193972313738935381051715901414614763171425828160160139128670686986363717617036792905336909131267264176285560235869239784018518930909046766173234004665123749749741091727787635369646674704484197926596477737758321651576694236941174589163229784853578343091924075827922803605858108961700137655407233133978632499535854123420164892964098318770066769924181016933200096552503906987285587742840232856310449020483797177716491254013968285546447504055857602487250048070751770061088412919350983800169159526439167970323780551975393731555970170072438709620388354036311083072614981596947102917644782926532713065359407466255007901022945390231686340143818655027557551953994938065438130080883628315660917418575464500696317893257707392690729366149050017295723764812606436962910158566812383306088076779519438650391802938456608544159257111089928774569882512063740919180364318226392641871507705110839945444526524611291956359061976426867827099688803719580414279955273719870866917901600292201101525907240658531566444085551827909854847081160711865070194531958343153953392920222746926868027517924230987275988529617707772620346393519604511245018430249755065229562498666368020489644323533485179873628746613994615865344517446975859575098541380434538085698294345373863339956839224808738234460973169752466208552770701887477466052566800476377366726885016390995561630408124021454325309772921707365133197841659059570053466377247779166263234766604838636715008281032993831491885219246916706582189025192500787233819939627851303970273219479299708994771088140452244236220609264776670891930130636883128510291684243436196847672526207695238780652374694966610963439544941501434034772793339310467687335835730399677590469381302169560818604508071639640642971251255684701654386640396843850937791838679469225845074948832050715784095648449573841106395919581893589187557821937393781817619389997570556449562823598327524850761254520347340301366983043736904516333683310873658574200361993269694224369101731534549012094746752964821948619035727606015482639928194097614606768571367591266307277678136013059446230540699483968398784624862069935025853672034790835447161170801353869637213261694150148530374552551341915399815999076759948643691021040794073833558255121281482047314777161633635656395820310363776739621413338540738728926726367646786391571142741745473480224981769497232752302196949650442466806095739514878788079747382263187761320666138971958984599141584056117117977390769017295570256169047122822952554748250142386555791412624943200397188877561772673990331996367534185491189135261866935668181012765325468052446666646282976553885906658089397199332983964853674700539837464248479776348658131315151599577789713711382150443364024392916307410336204127235717403456885684502839234891307425212873756593915932249103666610173302437710292000925559524880079384732763268965803125809902804226633279702977819197545005227610971370027572220943486187924376726658537093449901555279430481124888782030937338631690611787836950975615909343296009260106989255781420916724857651017550375497268676613723164602551954060932193966424215471988148103172091748243675812901661925344241323771821297664004015474877882185273667943078410498082787699192082489019760030180755010605220150389756759875457642761759653811965967726752595478324081464375044659896089339236868646100685084946701882262339850676457451059971390549502739527845476740388537296246941604369774379535322028379187570605887668562485709443930344925671660957072562746664673645819629298825095977337681770583216695281242738631930282352096723930577962981207610081679261579644730248895084943384771256628099317910270763630480653155546245354688566199307330484447868961781087439159501770621367553376100409937799589341519419577000343093680154153128806940321178819358705011252874914790800853885050508419539564905068404596173718995351746627426293893460697309844350337901472638339791074397614844490615152174758059173600020527002224314917543562059389991044013265055684842818495503350154909882445551791564796392335553401325051804740765150812049251105906910730964077015706097733313319419404229624178419967943559082226509650367528519276466677993482968200557668847222818195256263188654894564090980242085629204274930908325265034203531917861034544952531759969947391625299446412473217434036720570218918252018434960779999326534835264154189124288156153898979209696425848019183730193029340760079508751156809520718097270370176911110162716798927093010915051074657126445956962489199300414796717008844506766789527705360660170687108412346933815147522635535760196825078861286789198107235630879726838072988090831478899944347506203405160868147462919664974435227520595811689594741377656584254914241754600525732415844596893070152674167330398963646170592722084780806187256237180446797989544390894812231494555591071395855001251834804733037853347820944873686615735383792754648020850621584326097127889000886141993341692040135245840069032414967211734833477981805379822162323081883751380746576505284024260753252162867062212409882976416177298066924483081972945643881622016354741997468468317230357487109041224491901801188742272037873584732994033564348014667282411824132252213290252632816153889467166471597157988134563464289803823968446360842753158056993470019144172339581079949280798173228448048871928662274150657471645856047786165001905175852525265206563500760889022810689045716049778610693381991404799927052174609961770632180232286357765483342223209435179323567690767810211579793364982090012241552570998694459860211352751393549847036505161740068567563820596380830039924417966987953387345158372757814300712329981497185072139857315110107913661410543028164180781892873765137775598324462492876199352855553235839992693091378814351309682506358750900258771959101799511635964531236040045597902482417217593964780498226433989927470481643255858762690212979848434823329083384910962404299617703988913394670852254934241499310316917031500133129002295197008227693270757241564599583991075544277847262864736881176745814226259377462748262809265965257210312452253613407347063514976847996033371064508825890018914791722395057642247757363050339482352062374014291680436131945939445411020993392718517094612417650962835439318205174569407928786050770661671554547137875441771368879468958367188569711855699443762874975439770284000918320471297170626656630495351692023407596945177149167494035775713748828342508635005486677970741457512745159154460279880263172829725918957693157431085702550239404442613429757077341174240561939886423621902905849987171870264681988715592319493805185442723229295704862791836534160323807537636459578245106788062169761461920321383940279300738875795099959091048641862925493121017286591540377444639234733267351013401911721523054031876193562433146632778474068109531124688850668687097929394497097548097460136557310119996592169652021238839598948640276178997756488475712759879358019944386945879509567559951753286462310114358137207287725007628874741724721637820687174592986373690763414071147432858887913187463849552855282729649430770998474612775748568393111535477446488619434834769299560009544657841157303123367536215493772387668995641995268221722448610650180628457491047210791056636069302105154750596505292554110783846578817884800170388306536460553743385391391523791794034406217081700312528376508742833519224677099992937246312482044128989286409822121193974611712957791169878422498429955618721720533408412114359742322227860549567202641584945559371858634239297104554506088395816036723323469147818600092665831190004083425787485677085601269681447333776467957305751102133623520850823236669800475505899369346758090017041524698320381616523232301224938026516607856118684660126140715527089426050862649557559557288668313254287234352947777584095859476268261677682730378365232642053500957647941356435858575299485853524790693546732557244842947492416213245089123635033134615742234481020102678750101941265648613313160522376128178253636477761173590054570845929010507590655680351991796590559535889139581248080349649935081554851556821851706223602521372552135332434527629125580798592675902802978899697473819119523019547753383133185614326664834926117469788095061321991205386343298492047721284566989448090998077251250482086390379671350938756203572056169845445810834799132478755070276596982113541594417976202320074018313289063408503665721831395267957284669862974413915407896418384588676844257636278043270294575974045804912725280212175378106546799470946582414620280445112027266959750214446680690752712458143022561891498749734508528169830942286603435574703117690705308404303925839896517263729532639130074218691154572954550406482959362693951889492048668523571956209230922887561202806242446149485318725945181145673554971430419954210251286463987123980843298301614999130558159089939553122289916380739249710713838316761847498092728203614650978917676668645597772499747707955859120654961244535231491246123903299141061001637226047500780497626133683491118836828883487317254762246188034013753274106206840314907446057439463223684225418716452150239655016230664509240588347427760958944826697776905234722396637152504846490191982485922710386975944784509311511824650599278677534062701135854851631076157277837430264616513600973696663984249914305865822109462104223919846289507043923513051114039265592609489026527565036073294521686649397106709340832810452611049473458859850545528814265378105893780622136032957334764787731031945391533501179636884313396108736316437248087161615088348856542591777687175517743745806353967225460982941606480764898970988826362205370118031963438638695550427401242077514539354208481403166122493724892990031404408810615013481305388240489843416925881931924824495846498205399154679703422716642286053570558141949526812551966797317164252811195337866091337238258366415317324378675044245627377877440119757491095796538803286257835617076946842871848736430842333194616179956249381385032280061227669719511413919641816347107107538041036458249302530718685704855001042234424298914051523592183624122492096497235539288540911816988756266180821542578783017310818137471508442609157222046762055551217807836712975750880806769903561543822658063121486644458465445602649441474896036283119676645571173571210981120298811992689042887159697325098056394487175254603263787473633110229402035027662493679905297094688872359872931113986693122195134318122005847875092525746645982691893467796594277894865720719207490970124253375942250278298738640224915139471073277910998467862058794837354405068053038674525873222771986472328567372241341025446032147024467759212901311947988543593333824168533622124077108065025314209488169011941147166299721224647209127320417487782832661543165003816042027071291383456165214313733364019440376941120653906010768747597076520560394414781271236209213769557174972571255257586052368403053528581622349166504826057134851156294180922761836490960368767090778720651393195168372314631709361571560521083547115350789807561545925614889953874687243803566887230538729026501058015686853851695087128394038976386924427120060744517749091818321044203490038906903372055837217079218495122012989209761565506823167062905162854684493353139017590168445288704334798390906044526326200442586989456227965737531003106369550834096779454807750475088648055173436748844831562322663069197932952072368612937123301211434216094192422889718421717971520717688771793227926376455766294571092816515219898319135189932042347930711965378094962704487220078565993835208974030594224909268579543906162167043848376091148473363981092655236029269447000801644786152862063118471098959685662086207296766654032270385005826140080691245039134120916320500308708885569780401679254920554117078897273519364272314924533761044409910973280427922425267680609191558959675792167173295683432629997558510135171229603435146663062550374047448748854168594134789201209581006652196458607401321995285255833457572698924377661958190604124023575423400590279099046797654258198071525825419114488921842928856821954953227333340605572680093140549479922335776079682472393486295451171261867997041886219448078426091584559259157298058980687064147544586652959832310288556358602440102363162764542854145101814132758423912924534468428808436630569042362159166498614339529027838788879751255113110358241152723135440346064917747376601467324096760574180008664316153242389780694459725306274015963862205455187649640838150418553143978352479233750326596870362618316072983464354897502780707992081331039205079251714324043240799010644185502111427467583137737586880176684741961985001784622527350683310713101964715163433885322953657000684786436735400609275754781737805675372052263177817082813910138822113020799082113017836753900103425976303198937124234773603568153881332461056300038234847255911446369700034834249727245342433677178247577780855513347059221308240739385504637039434105008230098585949347766638146994894812831940750258174022829310076115000109017962767663979089828683597408574251131931251688174802311750639848887971703113408249228616478964451293795044377498382318898921414811455634032484231649104685124558686565652905314702730602466913484944269430405778998085945466699886137858501976872217742811949259061746245541989877040945582913855219890927470709646291940816209895478844527610362272878053765030409698977959832859812544198363867596044057595352023830953386075758819365564541492991997786823769828463019631867742979321168783087332962091242599672946701117892307458958052376275344105565765179913010017950524818660169629981594695604052194680317775902920971841589253418195120306178669203884530457480718947231679855385077336846585049450709438961709164060149757817172247546380437868279698427895689340934006303226364758125718697633081434834709516349181695438009553601531534999296211184855931180493137097284699861802623260281586734757032367121284411067632700041499244285098041282731907924997677676815969828423484620667602766932826916106981556540741159547532342281058703451556531000628866419498433583786890176924219145152251379156700775013403752961691403127570819349202675079500368786440633403080124227498762418012563882253278192628881412913334858377115624744611967246586754177770707020386301500829456680089748797454966762226650359666240601347221371494934396071521055650049949373477271715543112329704071809391218333201893857959796878717933993842592536433267321122983272107158068990482461825159257381350028529231726369005935219086088679226506804507989074348086584227433602337818619834597340498842241608569057900961420104131924079404792262590684317870141972189543939635396289736783182921047062282996867468327591411405541138448374924314213723638620449219822051298556994077060989134807430208492948374004841659211947762068354597803846348268343859369742277069862486216503854372523506483088279200219419057507392851351816120043163483435922964073601714491431523067381458749281843540171350350341391511902842029369968369013287685618096449530400893174307205880146801805013136563782997002975507439200219691762925312161349803702368024750541290684508449170940273781393390460506458312605764194535544315248453421232432545026320729387433475352220760062469499159462240627101699139019908942905519852838096350170968415269018824729039092233096458007419211026500177765036455304705049175898782402365650742498799436930026573441222801368452972819674140594235200553677352940823505308413341408163951379146467166548085566436331063479461095063194471845913782923187300514456924518161330946224313467427597566984216499757948584474586563124369396336194661671297651082772654505770698770639801738988910078786043273164339665487843651292564873489073813425593412723095702361383997281841747932139092120889290188917751486120669634776069126376142387250144914480552688112639618820503278858395520665504071352464696725210920020051164475841421923815666674423776247067758708753784387850012987678087274866290483111331802777720818173112936613138618662899645620068882143595959121920050475804293325810796592121383500884709858729887557374281470029403855991348242542756008513032818312300150348656906120197430776709862191592102682260599876773643214547297777241424790035869502861946088980970291767638245305292626334067558269022982512317040148240863227811194340847120388264632989747049205954671483491382590491315205419532650943137481543235637803248417182437277040295495082318376486715938257907163610788355576868236361630223825057790125477677253228016027940745015550807572245848468391126327069258418348390734356742159205783029788602391900716031450055982659761930926807801260691322088282002937568522436138136236974504615164675018193118940627404945660443300417625329889865150500061494050452159748790815909852745553095885561307728735550173016256885955116852153798007673520390500858740050871951392664535602899407800692377513501776275223220734065351581231238703495771825973221420298510115153689296632707846386923661924772156186923338227989486333854406094936404967038854101628975992923194263164613659042267401213090665801100915238809895891183593532037886175529175099876309497943653499435139021939790118543681747819058498022128730679114539893928338224218187514878184959779391780384517026261675507270507986710225620080575393745488162475025994232183165015370881162988371795854381641214892250500112708676507860495550520678247595233805406304434992575834200157222624984538526551290603310976288967633912844994525889102255432900624825407047190009111484596717637489961652452897014098306337787102093257231627072563319883630597945577843184459902859658175499060028391945027684837852809375137402846025818554391208775828724895111582414400451928241091912671370902121761477805699499966990259234405503169506529570680903796854349896576047282977611654488230979581173937547861089149494565605888201001708665010651607599251454751665143996283645244414192150979180736104902594221558400512632805694980693291345753931169545812073263046012284984138011822249616233296041488902950163639741277058324999785586355551848257669815898606670557510963297753367626962995067646796302140691825566638551055346429734781740388185099385755497805022504999611681233114133777886641916281618762601890461074697626295438319882494763387987946252281147841818338014086495047113022684621017747778581405750974763168953323761201438537096887143731816673559793054554897056856652939789636031292692709002143847024086613737651291143985529604779063482993247515113306981628731142759808557298128887656062457725675154148189771031461336869401246351947031027405775116779208601407335443411738372398729019854141118348119081098866763213634635443155015817715811547560484150084361868152204137984725416691957347649640084447097082311586814496469127954347795083934722270847252577770989915404751675994049977658959313040634621358353705216641154571326102694050426205970840848885366281584607126030107430268898291360469227751794258288223365673521140161290851010712082612359298659110931045181689846752648482994883757287330022346054509254263848817814242782320636938604045498314012842535827242594045472726836224972885564979076846034743886008076347255460018688621618500313700334071097068775967752743912511991992194882777045631493025076487904609458646346372531886330251607847736127098103600263841647738872938669041525112866130187148451804996960304452298023005228275654517479895288435816678663246302671140270999463584347178591635799464219964883200528287090643113061062345010044044206338463842517031063850495114408386597740917347815348587695538008435874774620071101824889271963370427701369497443437797377447992539145390199969513971867784176310683838907554237391306185725811716845088457135052956589426589357433725874017143910059857309357663636209703577550605069540992817469248231407079870411194806208180434533990956266094956135565375240580726133171852483087711353176644206581539893696490997138592272954277993921042730889524189585021424805707988408265801970265086832097220925270653116426327352696489051611956392846023355730683809781832135656390324056683556985607234462057891671779375933521049922007406731979584073059642491486891682771558400142100152191563716523838707923366498500207766174374121857362784164586028225448463921569614503549075485167257024447598149891501501696533596237825015004244160212886463541466987642423933836298206545539221971740716230991092794092847025893211776851743209657941619638569329714002928991573587817071724817569430016912809435980071573810203410342157069820036704699201731718497867320629127176627679482677779979337637588565480752296271389743806196183276019818310870088552842364805005287357666496755234247034708350693314363576904916911052324735305279931067889687574687726524922877071255683875314790303708748648951718285446905479359785852166554427615702199807765430560727044008728441161545653145954695983710600365041493217112514169271843318491017273859244862187342657478201424064809437845011638099218390915088847204842938046061906308478858252878264710536522044330347577116533693966518623052673840430150461819160931432633724623875601106424112756040377524547438064770662881595497125852071895269158649100828118681209397654963940750724688867840018181246254010887951230056747989060579405028230846719030450109680392126502943309001880363229605575792915301891034440999916101375686893352223210570187029823814325804037942526166693951716824508743084378289490748347029562093521390738532134650373188106240165089023391484088623014201010555550490744856769440762922058971914653287633861423062431941155974453694612998413940317049944386474548014487204852913824090120723980987880321366732343580372847739721798220200914730826953894747453794616633971229229104692186754744641944568598236804561813312688657316016735640482705520431390473009736223034678586321653682606808533880040712099845108060434809967872903086634272657899910990171263667852405682953757641144167301277479450039478179394347071644576705666153313838738629463625584073876781838961171666255469262182852248217960271754076905270164970048406873624592644343676013521003969511384114191290627065635177247806809679859614620880969276054032791268365888367387136356289197697137078634544806991580164809584395887797633315001038319252998476728341010243764899992963067075919879320624894686774218219621112420099113027467306675113122189157983451527266080107967813019444475649859720967734772866889849034111490421320779545026600315449365611059206924219681337964845782955937643944733144168008921729866885113696830518630790463350962848479864635219330991337309386627996274564149478015887123281299408290718545833936128809471668878115987636361355860975698874432038064405591391842700624667206890057684314731814125836248093539453458399111662235817636093190169130725062140095257949736658265272935960845100297556379652487720114915772945706322700604093376084891891525804349513374567877556346872943366745155729926599328075534446054028651136469737769396161269945519771456587671811923832381908346460039340401891542680624717869114026205841745616970709521698009920427975054760276587737959226410967887562331386832405656964993043619315481947654366050251193615427328872675186379144789057970825941009388026167517818593381216215044279533080005299082413699109618604397830837157651391674295247209187590309117086251061598160175474770281784813294724369931400365840355456354915334448754059415029077728335490315240881967288643653379370623326903197073211098847786998853809546839128582744358901076421117544371980585708569967850593163106502901093135566279788319039452171225829421057936573261508026963003977969254068485323636867889191108541993964887493043276677696180927025682015351763292042320413425645071023481391634694452495118440934251450804898381106290851394854717523031122964357563518395678893444971730296403731765190074463518436018714318814243282361327423536462072644570850181031019711797351971198574798948018977035374371681668829876278743153059318393063264253956677354182700839402871133551616571159640102609721128277598672266908809862096640184359284382991294681293219732811387843073982940439399978415990273124822915576821127083941312658343552810718225605880120886108093159974001150193353842160871938606333288013522802677435338175455983925234688706301232327077055706346657994276958888156237848754369824121744153062083381174903183295925008969462140241916990926811511654544231984945874276491631658327176564291945046154413277177159837237274204857182136741158867626969647050994959514718710261875894935749530180672780683046552573451375997719755380579181951627524559778229181119797910661710101570275272237178161895030541818008579855071199729664150897130752305511875093923353101650400165389213155570831382802983357481411949538261877632956158324530811520857272776762447280839441471458026931028467281195959850798013335244063501422950297577041013462750698458463210535496226809027037195630820594060798406605248245201593691123406477881305249722584789392985902400175515093795405729834028636670334839879824495194826262016231283335847762507223816832676205833060023047261524282904043683909658193441192285423618211034928484783372792006072782868084774166235699229249874089570471012420406484478632345932751555819616961606304262783461553518049244282154697444818368041014280467100025446121771913424786957718544978261160160031925805307779505644112544778615113330429848549599364533746636173349377219787361641527261147641103812409894611919139034191909277682977332420246010527744884408052679525991587086056706246055079801678459372915848447444182931303427734816573214251982465571097369887708058736170429079018224559586289851169243308892028951230555879664298605388836597389357258803650235147815677184043359949215036787518579202677874718671405670671813615712086364562354633634103441269927136129829870187959729625609202007257273057954485184464450168543661982233497726933589111841988794193722533225272981948765197427786131340154260217140379668518549231786786297447669461081803122271791219115384705103052289803081607006924969179462298138349418971077515900706810210140823825445067154125784342676641300966228327895532555859696288201773069835224703370188895510726897305070917665640225946151401317803475711548142104040640259321864216988380332659031995807616813601544406515393455462553109119265457465895500983870138392622402417449154778278015226211941660594308455229237885022972051788124656620586669684900133236034126757092687455435433316857690135150314526219817500078969478013870679118765455543544918928886712251301818447049339331873810802161267847621012584059231556616039346990600679725722065921285042297202732520327601812749821614055952933912401526474936775721192571172565515618026482495723417186909605640476847752165068661559082931021691581798318485053358886945693376672361578091217471732159931894932585664865081144791739659047610115013763347176320842846582156558527857672912789078999726218688683020451951804322228781822142940666840154983722644136954972075571711048260627929457086012187286379574957313715172403422278222055508756434162204765031738803057302793285547672291365539779537452223605999917493987443319377839505235611191934239367500817369418261744722051728844370195334590638224781866768632484269100591336389420260410572467305978940020427993060858772538114264374985643569646244976619310808021685356190350658665821959099755081841871170913676242169953190268107197486465725228786383653717472586282683814729178070126306096039537740268148993056257362606329218326571063983974965356823516366335563181815098363741758539701170062626850515362926041237846195055519309119564963629560789002759590982743889424872877324534801360763413468821475354032573120484038355988943648389584925432177948105279654216271821185539416642619525889070352130914658724291041682306181581320994917082412370653334066248319616555464427619919699044417508039362346442528529133250055124442233753222364715751984358638558354193263727174280454427543808879907610130810963467885193707516052796707556041543861486459839966533585210536893453399827283876928621796598733620198637224422759074573442654576617018516276025817625165372313229521039974837867264880031226564234860878059595072026929053774874542086131414660543045725980770332385237560883071907845798000984362507402387297299319311158184982055894688323897256594958613040257563367895085295736925539391016587557344581341719836463168335822325120365487014371439939699055257018779798901995655786160967935513880357003524785049619540464437799200067880095885902997827808451563510833854755524229813406037025425023372908375337227156358225466342887030658920535403738711272143037366075339769108472046859050969109379785636255667377266123393552632813649774136276774166362688959630329625047780267041170226540972272165632639143886382213332644950316368502624595222247246173999251112236874060973457239629652192119269090984844214791518245835209533331517647442399388347385758204683369807616450044002185456774186645625977553798384956760036995561656150741517984569928752778548826201537818806304524371805079791630281705827470602073575582701728758094891677649368037543984948632385793910350154885875512854374323154148908042809476927509950012760235695526979851838391580352348064811281672589962101112821323663053523079915212707367546826996312460241089449438064929902580540178181272706731867583194601101346735332543031561916861102832827691622692501473669611954163455851616142390709169999282182914518562084956605230476752580280255846982418779093721604196839650728555016122170820387227604349677921681544530856259302285901135873405473764194326393055499299365621744960886228209775068687942768043895847728380265757514773601882547847315748506532280391029164020419319943283175188605178962178707420312515370323080757950420126207695157619248818976099223011677186779211495735156270460751583669469312327373766210629337204157725010190662646306745727168282785372416578608025065795328502000267547315744749371748869539225262825071179041964935440914598733995403684341073623818452891858849302732652160505450965956926470723038636942424087327883551646055858185507964586545916368184528020942111797110395193945084305336109726858593450275899859872948376285397944133112797761727646672915541169146953923539479056455371732631105987445192499056636184587288994891369033800058253125486485593254328210612509719716632466994630883378247644887000971184292584528036504927327024239209568707533974617680510603919673262645922769431906657496839827910040313814077107594982888292186030179472881645604290285384905586359260216266132814451322734321030847916876690700529802163329425540273515804243497230837725709722014484611660056962717482251435243806790604513493557254192970490697100151771236835515856904406243480535137110701194546345281272433725859447033832017580464708172921685248493858627253812329944223135559220909125000006643239409015642571376059414188399459070321524985135396106276803928841972952805507215690450926505902638915758861022329363404349716044933878824943770248994531425001456515498844067449783615396718830184184962067836971200161740791907341828690525844523087729676255927725371263078758426014712444494618240682498895683855225777854016892977164557876652104244809104709456223153613980241067136049801888515420120174506134235055097594093381473375567927934694812989742642914463735751034093768607705421164649817905840607581225250526250301566602430619963374049740133162878400524696435671859520731901315343633235675810950817231775302331403246484555124494208737418608283628487484288568058924151431837633393060335942554771105106698083492587380895579425215557097404534099826387321556017279600673719610332149465029898287379590889031637141418317978822417893518835418011315693633695673550748523615889498106968823140742226032978024403083433953512108342846946323485791241898312142791714114076654270696528037502610039714465894874486749681497100446556504501117650399185650881865132550846117630690494476156477689980255672409448905635268223275463829420436180327027462574374018705648062654583459118027745634579548181926618531097650943015965201731408283237009242571482875287150260792603189610990180855976416905581885313959049675946010703933733238435751367944583495852837913415625897377663647832478544310855292298496085413509430017266618354246121999953552510217508323274064466215162423066015642049163245720635347994941165367975492451384471026371651164219399599497822575611172695257473903517136355513517029412179517088584842585651835474803392049116499480962248189786725389628085533229113603463749743920598101424150415271424817662130750280489603541934483270541631736256915678865748696634162128778311685436852874204162433103620091572136178388766834704880584118329548771031447630126840272245018615574151230486435196456407772106907178642767425938778257739548747255788528236579292858333105030193740225669560003074837562163767429323333892246441695541967304908918210258854390362994865855134739076444356765598326539481390077684675241912742435102672575633690130976842733708515819104393872642971210277613816202637814451237494772895708753371522499900923841283618337143349624242280760880568828109659380578474076554714399144188969645047162104693326807115792473250641078584366611339566715987505916590267248122027113545644570854018052056854678643541697800980536661806029776912380812963178173734531146681728367408374864339447010003073445460880149923017905925901023493171104280299197363096052456603725655410879949644453212462294161103821217375982923518030016078930899193459321166562655466196007638256816018289912895427736728826274621742696532581406717616241764803554507244467547912484287125257839833997793032930805110691979764553754471406180207514389376921146857710350148811401090977222360990845765603277276203216518541648042061611592202940806305601799358658572252977842762135174632328055554989965205616378944003513396407401739095106831549145860248099739248028696343736377192473046403955042055967562207744624742164540170442393877648454698566987213234913762940352711097014996063842337406958765783630989749343640783625426005264587480377283675301480847342563547270169821497746998141929081133352290944695218084302250968184907638530636401564014590083332004629592057695238831549459004705878541364676748030860594737542443600786930115032667262515356358379123193031645774360235266723591932760641049892922577888995094349961090814931332457816121407808154418424049407407690327640615809391480641447922368500026612595311506110250545352925395867869536239918073192857666758049388621115575518083252412063223697117104761010540282115208206194072405294717087919116494697120892534035242369658162866174852449533078407469267477917532336846716970286617815127973797763138375507846082603295597092165134032201761153688138325181116199296690252415749211806576243207434626472838740092504885888776759244358968716806556947514173730367049057924444143134118247705517823329876209652140349050911763163644327899951644926132686848035936739792215671194586187746485490176399787743255494629987326340876461539600067601367559409566060153819823729331600153381989270570553605841102414708121135760855601410721904815618974166630351700739370188248966652729438475365093142931943678315957199893573009016741010644982800336810213120666010976007214829100970961775011955601298314561619538014985484535930390420075723520773408959490223115829805395613023478039481876548996266091933483030583693472001286478448248522857944934143251536318997005554969827931317766374200248857367833448727530262253275981924535147421029909008755853972195273541919100626484070739388674180295669458949315899427593253331752650454471155283803676924613428451981844149870785852997595412081559508561761579392575449323224706761499158187749327045739786435728724386535675115585048953568831088672688724782705419380156269366278550183596054171012133520358119421108667248872615346919870078739104607053752309576745036303039216083680329423117924152743118373364604379310383138535847243150409598152701937601114703398340879473876817198849666271611028695114226860819110530975458563234585903426655568872211920766241953703799867289694986136940531323206389343810091321014513205639799631747912623552503839038820497274032984335925414163591695103240505707873367408432567967346823172651953756176592436652691832193498584874322904668693778216889039019040476935931268467160111811535713673620060632054862956490508223857783432651847483167712135198256141445529554901453875106064234803771217404369379143335056982504761890644476354745571398953439376358024523549393978425884183137831348480348072334381528449870737087843063110517830690050190634694133362530385265243088424778172097797854996744152392637092151671911381606679938751532053648438169074122933481397481107865407141960502054018771266247084968799096772437095703761051383456328944716908065012472101003217515566094019137019135958451177543065475320599192732873461338903812151945427971100494104564015642870751326799766347802342765544225076968621052101740697722390655257559793699647921071540020692743734337555953392737666917567663564619004547723503363398060397840708014175011923551485789432254770990912842522179529843384349315269696506600127236065377355567034303917127413110119430993735408606252378850205358744014378852707311736128492576232399171833459830524383769107871483087033055085996366181649516566521699805143326925242758804300470340002712862381636178881103892374782090000104940668601220116145761258251930446838662371687766580142045240187115764689695398923385373071748961941533233506596974745819698871028939277597211955733839753275646492971971230062751562419665937543043348734997976350544701873761336737222238828449656139761489177842397975641615532229714673451283133499393905139570305873995746259020182721943519147205566075560262338346237771251365306167780401384083792283197097551929903480003668269945653967597751131437536056036890324051407097485700151020035298400039273245066635967056515154413115621933064568779810970861671813334934669530171493306536947768198625189470156680659457294330225672274622422035289175414947329112729639865343547179589728346466829761777890110094682807647590398728126885791248700572983310342877713298847348940488930015831517013729296343994050863996776563822593804203446267000153698918316031587761584769527852339355278593640921418524943526285144936199020903247379925885301334837656246303278933743325972894145130135757225552761924182028628279001286535275895735620128038850585385211360120123414099358395778675462211020392530371694351325857309675639013638599672187091511851001840051200218939326371495493754065185449444433819624048614921558202002646011418916984891653576188638121400504158387100371127710483271185791759042220816521007386730118090744610636376199827256272519046184942887915385095801333317273274768015091099130573702572188613015581862419615252926946915688115547524068715540155341124324859653646797149634177105083837353297550036560317601509054655303714523793235579605018888572040386939878698674352060892096747893135846703578052024940816410902913157588636626258472557259845641061627210250617348096565321376097875790267381970170768931077700213335477958223857284471695076142878811594087126888563205252784231461582433662145867666267498305004759146605164385399173451287529265982484199312354420475287413556753687963061490484757017487202845960316775386158942414621458065277133637327615477212873348998116275595753559295523736451932999767197020068992139354866694051745424646745130801418338433235175620548696917458807504961953891201247330294181605389415999861545616428273657609412203216482939153959608194939300750669032156765483419131039268236964442249426651979831059937210596313582833411970984733269627496081816113566467084970348576155989531809663540853162260669350272264121884380861094112330465940402783971873503691019116250990371286178907411352487782850100407381259098692018006996332183138227560618029788354418702564139917256883554547298266488227971111825662664666209367870492433137654626019240060951910437539571060498442785813125326038911016376928869843929938341570835205011760197158862819648700989206298596388092275489265617136783839383268473386912756813356252226049215051449867022468231662850992531132161407778105739865461292468209147027592020965277512187644576620938335046351466195364378225519140143918384844753849443489653484098024241256693480699882334666954634688228399330613535065591622802220466515202049159910400264298585837600419016350736947259268494450479579580959069966173978536793049277496723352674513814739415558734828414517264165499759583006868127285795678641512410738587171109398930571533523643288197518222665951797038715951474898279205262598968376412928695069538108661196228021274592898513152165408587437522866435736945289321786056802563723679784807998116766469496673686750967001621775283113523431069634177361184224777347253031015921943667776180170197376114813138172758922559051816076579133754995923845750207878282628177118195473409385988153729365659210165879041272585212293665578935884971081633969275945053442281800927180906598186493148621530160648496925343910379490486370650896934015058460457018395542592177254609464877485892716136730792057049236865791493577829513653249522755912665212653225922089078703940764021196723484681084978455571834089883484087213875861772254816304689401366248747952284424238032826720774231306364535093926445450938091730046252901003899121533879315762210018263120473509684234441450965472088912879789143310255632978340893675832423497117749630886669516606391593761110209311719219882037243194721700394672768162599473881623418455517797152583604689467154605930014542573738333976000869535354146156895764902003820393914566339753645278061937546683087242206861868046475378128966867345075956632087038427367843621127021110896434503503825298907942499922216657861303271303020082412127608047458758811610421917705756452848567202314437259730456082775249191566588372487289475220807671652096210383335231366628524317251299349108307595380133310733753320695395355690353478108856222782910652594174961678122626619838384393025488116795546129935706927962831741722038511897280691361000575897505873375451879760472457258692779885601153626421139484410454074522946183999314848696934162748970954782490408342771264350380435982246179335329507507769141646018232916982840509397523229613526380380345866588162552514279059070289408857581864921782583614977247720306496812167974964420352680419533432805545266818852695110932895773994367785393299730378359084021063862436403207806082033302233952662809262356252283718134344542225876824586151968680648395930632744664176713148002595291640773767195862279392534404557784713685944422766355560781458184314676333808575388978882760425915291548544870349077427063363258586531599083290202624661235465588593906565205407391369618247671498281208055752608758957151839596086667985123540115366833816052853313988020393880860188019614839938466720754686813872824990609758038464499251098083216744919105641254452367892374184116700047748681727335975601761326914110754344621857694756318303134551116344287262174795987765160084044101910151296537775578553767817771646757097759987232521028946974551382815685192986221455691989360051950943611683939665856953858640139114085144149824483300814769431572758167557396356252565981813135276017178273018525833612294426468359954914196915647219745556512889903438042477258409654862477858174308787506169101948621932158838288172581676325623581991308868861770506954754114220221736200088389129760341201876826100175930975768003926570875529757765375056318272354745086246456343722236965887651444076176087303935762980887784750574229724141354092014238719309725280615785166794420529388702839248414243612841145917192348377631124026979791795696868195719399855361176506409848726060602446479645546702528597472014101172872691573096151890456554658546110896246268065625315093875717472391554483010038902435322071594372098993824740758369467396600505366496878839713758727370389548867603522494022865881939078415231882172591300919963309887748633959130484446763140686121263557572322955425592612195315345465044872762385842229774204582679699045949685140188206353689009799574997995984694773762290946936852769536083771136018026879864751140647389590662488933154107543390395268635171943964057100570339143598329307706764377865685499847087525579684280394671651390832545260907856349701631908649953713425707778476149903787274099963093444328134154947650397353459910802191249767213680489645941306462395756821603309479131072599236460525279613083713727646718625332897698869007522769066773192897068546774002574898562841391708991391491008191416166161967184691985648936026369076758014788188221898428972121279653010803197577015334003759014185143050967406938486065480666449410283485523782489662030149924333375843032701028133110098371634822184157969238910918267400613031533602561587890564438959092572186619520894094324369307966145088401854708421738168631368898730710361738227826332485650118762566718235893987012649950101335216142920691952464912829779752269222744706846097070075303581166459995691961950758537164057232192325055828564605439380120772979205995185101397980770349941213016356060066833027260354187363175955179897914235833533272370136962334537040323018620384566736183610733368075719766247363656117785457423919673773834595006669461113560597062416570752604460291702362083559094628076793783843031697677666336457048092153557533891866754299022711222090196551503583346928651050803370677716018634473353573480142513714672708567956108460356938439310390493210125006457626224345620185301932749233500305239129368667338555803524443690272258250043692397393095734414832105752725804393363810075117599237464826168688833449985929279843509708766317679389166209533964063748716742375097758932365906065340610554474014640543367796461398193992057368324184054603020659677056771014911892849867837914770123999198744448047976203173074827344716386718533730482022212006655416096099154719732551927783697197571105840975296863861775834105214979841538691649282101077594775442401983322683429671428699076022431052338369939952956182839429331441247116997092366605502372841924703660109630306531969531533402932784315498701455257779895500408937639162443253997753730154676136635407002789508725922127427827675642546817323818678234884808907503359161917492392039156957061538773799770513816888945542142887621196614289105898061566048262232020164563282242966408445633233182534355989931101009159368829347632937089832001703102029970454956923180167616134980095407917100362702658821010959854906947474138187756827947313628672975019228497959541963507007593195244003536786532720683181692864143698054075249307598798114961096404837501011293433329500858794656994669055187980896838889535821665101801891592719045225826283445847788657980452169476797879702187728223788216153608781775334106435667899177934902457735470147408799604386911355096839546407299065990199279572286873426094359899751312768455451335538977942019771974830755241819259007256750679886666846713524988830090906209413706583416246803346363170964957629595734062172988797337870820452777350839241211089472371178189943631113841827682258788419110807487086683164790749532249847722368819214375879440388251396394010686072201818522531119726158270269098854670657161706534733913468143271813982155378386302543410000946630944422993414904420631438630241677126682559753390408323414885714487883284932007432065298733588583138775104472635497746038206394041478885763255420974298536299164148397938714331728724190779329122979096100460374152721396555808701226439390984522120633703523686735566272287171719022556617660523006064708459399539617194896298778833985630957580194602357821676841804447024644932068992164298234103326991786689840031974213479761233378268737608181726758478820940642093219716457044107998042832793020860983399731321332025392313863908155784912531981514423079158904365561434213604903704797261005100133636452494569405189988498452591083203534071347505587120105851030499092762117160027452727205663700523456536632056503070112763513950866364811265436505384417288467108769799337140184505305575091654171523076583098081528987777977020336533717086739472156291169674077906933290062517880017631470882161458777558168534974551060285874047248675509612785455027114882345601930338483575456292663435475801189930826397718711422301222610769486266152607564677101424716786433745842823464879144685820651532261849377217658042156387676126772406792372102416383358370964579153134189326157664206378335684676150621292806896264470538350994725905900350881655451031952857462749325181745136450676747284914578518862119706943547978021983723118336420111188872696489962518938013857041718437495840153050301498216663554401803446322793701942749408575842779522294626234184541385090235274367424873204677174221885779944607133639690464200516049291344328323871866414000977898157166404522490840948665917769095913934954973891832344916794514782836936193907179971588366577658390658708205612204218387653097530689555195431577820280298392516880414272938405304116957998177545915814357354892855533510426210275128067782074556648329574333352455275249859934873305084696287401771245124551255633910302736201137467266841215426568492262614605900401898128267338493703196135682793624033593310382954341614158733029014301235262371621988273241978895513947671570705824124461009243592188441404433454424078741845704655618683081160266797597359229355986973680632299886191401291532952933420276589013804034672112984810895284638287733596287213493817754136559931096492458964719137527819538080617146283496622848701579098160881357539379098126116088742985324792793868921066606769328227367982296382402720209637425125073146987484920858765987888266006839297052622466946751631620100072885028181642018758143960391157797742469957479076936917623068573355907963320273777879881921417741777615038952956289851839089992703444036536910123291571490548958531786790551909080443055146704562440163545716144692487271197280642119280051369452427494727640270182901708819719595527723171522673614021379116789822965868446742162791763022800491843989936106614603352617875590369743227690047684176121332293292640449986017922445871054228674780065661110383805535113741462489131421488265152060922552181124814668361570704719585521648650972987186577533747265584418202976781536311907510479056443219228940097000091819777738322273869580808700795284843568207770978071451034836951392057758143082295401608642466094424001241516637444691502647887953287793019075648508505928805243211865634039502991431611581208551910531159624271031242687900178505459282362657812983706597858410681841835096213460259813051360963954218220523727685687843533911693112434947666075374170330771472328294948701999689704687477952178227225873285401674169746659474783946258219592971288658827315650141789242420733298608022466926268626826524450497778320584541895817063223895114144632366046864881127538038647955889694897741285756752465082542511290799476247952157943640200351345391483672171316147476977576569612249552550931265946252197996534249280687339395076740118059675563581705129553037530858606560446562472000511074310490399787050320418844154631327481514751528707425711498628048252650758883035720398477736930034187040045201707985998343324496094253658620922010140808528320669545060195603229866581255410677645361739446021990562114088065823989660986743722412740479359619192669379392114281151003146385244589701242443570839142027730903281410537961227239063297060503712573944035780059603802070110686604878844811595312343762922424679726191326709814790251747197033460575807419832883058006210477664875890989834136109505808359506905943961097411139771309276274704023716956214350945646400394372057477710865192605508609353194911570594794258060238774390514633532356266375810675499330560635305696377800959875454213622012115664947162506199400102648011703144754311730290867397644146065600196989129547087712498276845227245284625369379011703075351762438391935466351795462118919131141048516229400162341879681359290586595947777829916796675705638075248774609675112777925508503504657934447762737748709318567646831834063172898235921435956196259862159447310500170289577924361094316278872465525485711587166049173434534503435817175935886740744101534636427579916974269915150333035363797179993602039794744882522508164212213137394415738047486158196094983783259692743076663463808387870780154458040791705497061693887648735487626171080971380887277362623686609130608434615914769590458784067865554501567879708933140519032321188657502844268189958765103967590634790839523139761934220435756846029166769471040019864631331866723046268415134694503737701293437173342185569396077473945945033835946614991614295917780620970051279501179746137998665927769452727764347461004998034642387504754808276909990931486534086440571564670076603244539589749377124295587802107550973417292221941396743385873810796540871069068990486443292523566984011996506194409380035677133266308203673214982577524906273703746108925252244816111618650437865504723815858338418445278674066133568150488669212382402457649702371421584972777136939275326570558103077288637124882792752974459578585244143792129407911533502038585679346859532801620815713210565310090759274689384404540654786691750429165670941546178318034314640096671485522661170793734424158066402986827390681778002489570828714701759936918753771421509838811527904720583664306682785866675472262989605245319332066776179265499546610110268275787008616631741550924628973733494473455194342748365068978895787103529834473476626244279440961150456416192612163047926131805918974120346413032199831063539985595691356859957380661682523222896987310596528328822858330991740249976038690422633493651962938411542909066672911345635319966902108230438003643877372560822898251604261034799890806933787294061329144339168201418436390501174172695506094874952055402516503177731456291498190508599682685817550695870470058090466855379072607676579995363375790870296482556945553787515199151314724921635460734904767672181749581153223310655075984332762841221666226276469217149936746405104242538324759859224133057412175672766019876846188079465338315893618605136432805891518144776062406169620306611100634395438618435068442886907119417205744808861239190893199526222083925788181269817633914367454694027106561569981550596465152244440207676327090029226653316606760411759076031505377394798809036902228382136937372467758410740896139465221487892954814751237926407694499894716751590975736827473225457951217293595753390576430726663423478214549726635092998327760844186853633313356389707848566372265311407210338982747976127435548587794939090838340481117739135378460869724571169784704372260813505967164281587173226392692477051257320705067145339360392563047095259821603139299955998860929751290977609996406256136953615913411070806454651794061568808157576387243664934119487921834938359805429859575566507280533406642081779831629619004477155065169834460279514910528021774908561828858658583787479564192504392413516925483547114056315039458344128151036686150545502894021479980723310889755653322520282262093000553343435909988989143552270301269499764581038442841037511819743401225568506590311875111033970243760850596051482730175609816942201479726335246341504899743372369615483483320685596220113760986432885452259138347798968144681147157052086202475623251782629711498217813295615600838157793083617238183924895073476320417388566295150896393179320924385871338349906347975728610615334281051278962114716171187591605182904491210680873898560087835223719880709630482647045501956729042125264978674098954568707103376758683910118056030911539643937113456022313624549366006467603828207165078166480875221480310103531880467471215101678354241195732810743836960390941796615634523412644784324650103793316847515325498513609574681354801919546101707466419853531117441235118167974964427284557775797428754575509347190214768297203328107983026458814274307315982582084084651574289733525484076055434519617486862247517980652636710915591314003473204791391582530876544853467268698240652843756596019839169277329515788409302567296078256702362305527319689070739897964068864127775848738082407895428117367113895179250268349913049140832922526790558394210216148477027807832799985171817722565923876452392887000423845823881659857081925182045448665979554270840746232359644161828872611352648657171869711152165236614677376087644604325221727630791429653869306830105258586057163942858095694442733190891779488893142728405706235361329026850786758755222082284435944054401175689584379392021582622464191969361633589579295906659267520424643113065873941724342403899947877869956651365221339806259465057653314358472660703691178985531509162382024456151961718276575441587380647342315469296817653278201798475354040490638225100136303061531970864729305576660085090940730970074190723403277982777254093320003812764519484370030902258224733166708881773632703684191724696013930864412391681850969705660138774095581098052548092296984652560893576252891297365149226950697873549390256853994342893286488766488593979424204438576302262533134676199007393523653379106638788505505242985820010197707391092843951340269220246088311355022701138369901258093822797326682402951881547439277388428899360342777286172115751429808478736422028553576858020610143494244701703045189146933087647907053587225655596449758414946721296119408616045470975542506961266437538992058779513504106342755870024939115838043857052866491822704946596429389690263088910536373591190957871919705592020959197302540887691601758866668212713549013551578900368442821031155559916840974605251204255015337815700355178384106066143648979999781834571790066805662703259075107138242373753271092801512938859820525214364582218038019248151737580358101860881444042090444037237605404099272580992524456823104999120411401170741618141884832541052997716258698838749152871518605243613869119642700482941747328745525619937545601676436125551530889757440230949441452672627266447888679438635752544245067394747177551474223645019563300711568940377134929345016842911768571212201077477830636573628492729100575782017130948174620506559279500413504608633993821884060149096489023342258495830835602930653198858570015005855271631833167590314816767022195551253627548676123280165126290702647240539991449924928590311015677796695326790049898493017188693460476210048029384026834332859111175193148160005650334155503604721112148062461100603660857592128267894259042318289488898069077736797159539072055829441902946450859254521290909754873926339991003822225513658704569197706221271652064448083447557336961477295992225350070355917547115336190794118148936844212647207637094955543691630589948651016812950888777724819760650096648256978554277068492197195860331515117123958724782989509642587450568601142010317839211478865975391445306831115764741272996627157686357827365026240124151200758675854124058128470645141303202129032411995770070039786947672838201460164464386705307392522328512909379020690289867639778302318402618610150290237045550698992419203866379382183815185886838071958234272760370218906877096716711105566778485055145574684048861025492260658575913034988730806202748469628766382397201861643805064474450291850351899465447087760647892526975913394011043811765416279382585337087143192844353226999356725799094037819841573029726724677833082333410731373720920153790884486502497627057530533718042059472400826332800632049532108268898135037382631674049845687365481373562567385454568990873170333031732856569319250761630975097136020846089285228940391094583840324157347558951967437666225297576151150260972548576953497890748909128030323430546992429437363101115886549519279502693025894096587448873789565274360540389225247213429792490715950727073009812698772649611030180606297917683408272275724452980463941531940054230195679637544885890650647766154611855560289881029593737314615577769659683112850328956370471056585796485804989217383050521199757914980543422429092093555412903910934967700616507039414145833196915624302812893632487892014860637764384188197698957172164394246160724102910829519601618117666055001728548187108330037395977626497318521328994122886064176445815522472936322179384375101332695410749312851571265588006658706524505933738831596089981894671690082940959549271174319018072910186090110609548643861898604471141639609692198364720490433427901629467304197980384931213422002485064622003272846253083040070945903708104184528138396518628850600130631130604346680771491470265535593634083959663903960602818800955985958065505319515795527498046492796659564067305865285519996841874693004873981906028174592193844033197758750841370570348609547136215861062657224764974944803175046326844086015035497940533610091295895638573867536068835393737478741160424332208880992044589779283200653349300389639656151184961491866408773148585353513929581343705899732625729752590471232829747072233793480167732261146172264712400528467314263689993980353836365554839438498335211386290315370063231637124707885347817724420009756389592131654455154962637584969407330807226836230597585063364066165803275235573290485297234129148406196076606047419408220465739216896232264174093118865494723268728309576204125408498989738215729557119205883977782960240423648794597021590649744621534695373824864734008511464055187533344949547010309474647517368834418122471044298188771473672682907127018693939012838636497422273020826579963576534583735480714712323157622946611060807418551743480664297555998644362855688687980922043400669658063302840380860317605984323183447895247796044047310903147866139090123411962613113763546902646028614926868292903794326377833024565059254900478455747434424693403762122899186114358815445108102569766040941303974978262731863957549117604464450379441164892260893835710211165426141291468418615730810338935471750423753875650556146300853087772010664525255245665346137318777804920533871613957526742193281618923956112733088547085461935653052782705605479926146713850324836790003460216115688900358940954824804026252015200099801486205781233542975207063147012092795489907701285953688068286152147523546785044569819862188410787756500281641748143408974752599661242866743317744866558118419248264256970296835902716779645584298829202366571914148291840054492257417849268053509358762270193103711191739500571138395411623348494106215193093968077328556360386971945248636902565917453852612729710015320659127346099509893979610143338864587720692986941215786829197760373608808614756136016212900512992819382147265759129472483543669960486719029498268697623419513440929882447406973201759340752472429313960433967527860642715900826805218350221700216937824372790217618351592097096364107218176341178607942084009838040683896354486411248619215664418195715724091680597967002991332529344839136397592660177914385696139564589132088405002482347349299970241837359256726416485423115770844645710651812031332656918361357419759588150992576097888059748877755354732561249986481197840193704397772760636167795360450228947177978506513011762685794268948059287500839753999769785503966823592574655517759125746241824877919945552092063823535264912301213658766794266555651187818140518906170482042269282343899460605050758844674831329451216091900028326773449773725708065108467733931418081715491575434214200564707595518827343713332769875695579562614437396085402584545935389411535789068034584286139770076402389875944210150351592226144825771799322710073317817370234898198762768012987001527078269891710294750188903735134002439311956452576075059008875739366545149190937179577530455488668384482853760527810806601735841422647371361314341816702065321239732847841570345766787086216647549016304371700646194144414303321361405708944107056380573457769340517935805657572081383951649631526652207170451659626698356181610425186316742314692814302517009892300281970751085252699909853671023284117736089214529370149216992314826722754046686448939005934156448447854812317790301973136809545613360473224263218970673422998820131094485281292221458091011922908877561749309155991586508295407053022321058932469269299862869001387057366610260930829100563501937728626283918331498653865181411013668910772477601374200814398764371660394619933723156255715508232236156868247950747075611545621644920483333966187082532985423032261218122361365131239860862539247155456867043556972905109011125562061802140741112360100056769586240276728859113557843315409384485023499258880003830199865794835046342214367874805685673826256863873729787888662511559733586026958293652247817356415219650679371007420341439593748667513653039898938525350372810990490629181425624766897888109170679707708102981473537945215709854760308346382547387232646967307112851916224641285995333178968749397079720596050625413022443548253406967268970010367035273304918119389652549567544774844192217733055326448510241022789744654133979859000424723541551295121088697634940905060990649207255118579567060867098821530950506392761762550716055021417102761124097033334746384864924217476894718702191754750482962995771745732701656166283590378404864054287160007739084172132274148651533314550298235962991369921998652090473937357068193834311788717558142344135326973184642593798288510688185034908929929158750536665943328419078067927618134174962022225579996162152158567901400280953699994825839861105173450309197080547406867927898210331769004010902156260956418565269045732575394997153337650970530396804458929839807063286035064339682937909912630237111810375818443953406554731113765557174549512661260388857170623133959182130252446495538798002210463287016008546676832421651892564132858644966894495897149853629428302629631393420610112334270606023494253476398120537938562888302271943288659609069760049677737080001815061657163047656456842908032588739993777253665804239814443808920877725727117413561162704569182003491612984754467418887220582999134771762449493671138746622101090631572367477869686656721033740794957906260950588753581751927104859440043260581716191129238462316912032508962034194006902236061635201248426616168085363917365023874111758872712491981038796338605145814523779283791367568647805004530277366988544583257086707385132180079343047342518138300474803641141648924352240212290840753866155901158080631672162698477618973484785122366841640593402075033901244106605893121809059110455794104700498867266523191110260336974627601886168236198203101897644544532145061375853319315036280096174344732378034415863295150872323019763167339690647769224698740267943161075314221081602683977458768919585531461128867683600384991333009925400283691105803682061263395189912152350778862214702607373318395215773746207840728718411606341153807603929898726680064966818292838483243869158879376919211936354819971663416143593081801532311801703392669019485414763492171100920960083318096862423678402153476612643321984420498188823663080503523573480224686057030443945657174063151962995157426673274119674795340034466616791000160723870958764959222657322138751312938529058963714478807417919667968258519196777483957604684689342343137140806848849205024020883424635352716682999066084111832500217964328408516695712509821649416434084739055896168585771166509334856912039052356889653371355458738385908048755658285321606890626713295034280373805473835093299358238098071424498576506489336401209228065340187615023252441294113773098602864303736334432292840184263988974580937104751877062210745660118258719589068922152104935273016379749652331809027356586694023321040969977153378402919205672706058380761197155905579771993256589242984600141087330654469183235319263830702975431911020895271660374690493095593250970295203777888200491787626450166068267908418114931535280337483179518912350530032807819447275550797084613924473238558524078967851734769160992733687844636620243764269157582516777873441491465574438060124321576613723107199019627370240166369550015201863354680746506884420019834651093516832405745775958250267174033878343389172993144896019431493851977226487944625090077137009459043595743834898151266762917776218040897620882747190713976064830146816028392347859106508084617064028227030458293126931944214950919178435371745028467539108718959781663802717454454963429732865638362736619277326396132010154187296283331017934330984883490091658465092172746904327241031868090407111576441452851369465367285066638660225406177951134633145939864559910038925403435260273135148785196152441836673785185456196971476072614378164851140503681429563655820423299920451837397063375826827082864357711291852087565085899242058106920834384453505175410702969841267889642566369742589145169046876086040144379158293145111327748197971982868005224402088259096992143077679430045774006067947929224824537335937157862854218246816718902335241913228634013943129004000371622163775550738589656110617309088983393603404218046748735559462679091576557608098616808431654698244725530478069450823241491252880736280098110739325482424825939720788634359682818698020974136516170538212144834106912614809534257178329436425346871642169589392435209514449877420464676747126174052881639010317634465797963265024290768223107317866595346200033460580285335617283871806893988432088653338814136916279995589213180075711452547383199741238356889643884584292033883903286418731528009446562369156288222778314808586982008329507375583031923528187351998752849112329886218063155513030013171096444834434265708194358257124988135951156234987106948253176481912683069200751090021390074439174094042917582331735942806194320615740913524888673939022385506126808622658276765279783812782104789083154279785249144359601421948533992151978432151002466773747140345083552368714426752956087982381427915754730015853327356079963640323523729465524294475731589877749976902420183899683350750269054104101137950608763178671186355997467349419425923208709482450161487489538905716638825750226019298586362184130498395528613475844860185762760574871751360633040185481283300742038295159898871416048275917874252653858644578050160654072852198933560119364355037066511263857008904272900440054429928170916560224233122534026545827972708154597694815259627319357291730568007380718853064752165042334207274753785653080402068283965131292246845443699887084375778886110476642186841089194893809491887814616502686109695428048498807441405297289458712986782613780729690413389249200226726529096376584516427023404932816684071144333893979882450411474174611268421202085767132121414168733177137481412480869669076143159598413571509528201205037871967753886676648784528797262339585236718861602748949934063392864332687875127751861334861459597178209640673338289975051283571930420787786986976861086870757138301593862621871594547165941203937744703119855024410691858116596210065854789807412529071623043878420981388330946633451379587927246203381544809716190585164413541995740278530185522355240615723048449565143774702092608933253437959511790023522070696807880183804615041880035123647124595342884847276659191984595164370382692318294854095001580135004120009974205732927811972888570012932546964001256675975221637881954397325922236015213676261974472334815764946286143036914688521997570870451726923039774246006731942005268650180946924440539499003735050801000467341157821007807151846549120413094090073450055216752527401746550002869685380726436366350295913629426742204731518466072436330793264776053430930956191357212114922903866920403396363165224368726271521846505493162148632238984137888165902539856786445845925216429644343443257953587501901694249644506784272744842987977999397961868890062203569080170234565507855090437777908424458344012968344049156753347877036517710760557674298049964358519394749225004336204333065295343233408598327196933160184847817764346896298854932836686329461902431264300120878904889863880077541966303961926142959250195154990449803117951741379425118191381475128514773114693678628739690971082470608928224203822216686474312822872604207856863318620296353800099870415727771480330544496713150237307413903623744963872343163334873260156070255313325031782501555058992353581640235210624661012892089079274693469850702567052460413908482262371055913903911146882559193141519334511814018948900033799466358997844804178715517313288000375854278307844788080745101987632370556144814530952385675449990079761943105616773215120213793040255643263776718692167415453950843680291574297701392084887593011064070009148553565833334335134112343649052474136926558430932953018101694875135579052856611717210734286649175811822579697191038171102324565846156348938430394642318898349597881071967988187405298744410456676662705407491977587053097489092634241829257684017616347317934719447651501605231184878640534368958648666842140031248435351005018135832921205617442109929107030731702154135332497260502394005342292956078078068812017443286275056538212063188154968944194203379508454831961580819997268792218132101445460468752044152029837992708666594736186422575645319379818144339381869088623846270447929589505811826062145918000165711126131351669649139893053436502169171457377698517102076437334997565792469565733296843022241998086668397229485617905370597701728677709973687520903287832570011961099831581707312158017829599881724884388897981824521998201565862284194732247746411847241690210574309465560870969992656989762865947433690769495869960229624311673836814200497847280134860148204422283953226985773989090697456183483444213909020278138443471469433011154139024117441734682834201022711110766790689113499787869547758677691161602222000268429877140660679501850479765888351698175223084714059134667559175774251127214165409406001803056343271471870895424560585891987363616708588882242786412489065726959845107147151147688674855494879801811157768434499265808154532242912005156025117587955308011583450333151299580669992360453079045882521089969709517490561365315713220716665512400426576283320454283720770386314824206122481151434723728916804129424827183291058966038332408391083094717695848509244268962789644820050761782145849674457205463408044391426067621782842587532097933883609234692219647645123538587505429423445239082645319775216008703200279223536620438516361407325975280822762423834953505805019884809689694688256734018300926146899601492754875209072810796711083416642501043909303796168037898685981631721409092215435314421755450366990605265684088671608820057130180660300933319357002150272300387956831497632943390620011013951605717720649458654913641784857517363100292498462694850211928758175166835405683780431915553266833800833780605855575386185833528984059509374708336066714439037042934126542269384269498747067242902477563302251103878656181149780052250902893813591126402300792331503590947315206233927491776866520725210997587903730954705631732842940883397170398073771106961013713069595226334552828006651468798045910751766133595821702975369742233978296998999885598074497907365683382657456493647186199603585539916015322253190463051917548616982131506108535089012730763286191022264038976595890510064783885754010119278305304162099375058921441500796515601494216728181859330712333277229335238743286405146430893517499268115665880027167432324268744834390137280794469012885612529222027119622157367007471492831521232380699368125881039254881611809268493195082631280075565750754588249343886126205928264760085344231897767843845345751781460546089261206468561181216879286369345726156386790621737475741676310396585575250712675537331736427803687347364262789772636315316437640734648072379013719976419534943177427514538184105342900650878299932052120428720877164209943512571748716704375210774807995942409214449640664465056374788939097143831798275981088631111029855630237180675392937350275965152664753801178119063656809187645485047534498395220299250381245089669298720127363719535483401744588645113645196961870089787330935105712009445694832910007922437736872408038830502554434148865156766451765465639483493081911522274389765778196139871326516556826892810504393649472987005299607242369359398305264930691944408755078927183915138664726481967386473384033417350163182036796779380064162730352675325566273780962340714467635116513139745879920083023741582724952954996223093943178275692774088757746129930838357939316008484684041824433438558067997186710889557066335342051343977022970105331152857790195818969574893062807384150312502408909464118165379624567739358284357271835456388256273956202722941357914640845634426658202331126568066331673409999457200705475355012324923963252676190225793366468525083862715513640800566764476763523284416536008579501376552833033377941693936313695390907570711562626550032037866354464105751767822035593712277951151823491259278722980907924245091024493151688424524140530625719048963570376943237650119654182518686386517836843872533858068714123851038800460201197742470919231287372040595623959777917497963735810185851769293113802700709528645401946145274932738601804601865711019038346625773424242809529280500022431888845084488012504986152238294427777003969819876225637190270934471346768853457300389652572757202785913138187329543303968652441212586878228502091400581603145640783027332076765847373988755971828197351574704997015877114971454855959793785626854627820816194437263281179331960119711063978784004529893857294557915054014812736270550646034722428195750198427756924008712841749839497035834233100601575782149841345355101698440238734266771931724868540146690145062004740232500119115812280857828774016948399557012901397864959545686944577985420694812023054644369678320636128376637098662231540559124014008558276939057918176589882281012510475058335455536171231446827483862740022579122632052078892714923892748466046939048756284585548214097787149460619355429524677449440408498638078949453709805056669950043774540869852152458140778485884733014696406118564384529506866785731367774631224659380483743731651135634840799290434435215582656449955398630716844748374918523323626921945368736585002247212302820682714858257619822432945583267669793997398871112786826776461429431263780233426782672185422977783898549396938866060312736830609731179741667033267129548844592166315943431492253426915199501422948742764205798833731983084754111045346561976007626734733347607203047123156183029297795247694142465819287946752941254721165116188028824448005609138050896861464830400950236039027422060580443374004885405536714847344978636638066506669641549464260907730037892380812952064299806624624708023972156572360262996558047420900499269051621357528462779008821356651282638046758387147507268308613129316341426994945919344672781657085773658633041270212065496768235768264862906062039863256313812566730920898605365509907852954826249538015000553962885642574041712505860602143880830856264342164527874730002235013756098587095756854272782108562100353885334767593321346443020556585979199919178460477812143206315053659879795874651232358956324749915822049855858739854092346951134372059665991503002511268225494364393650233672381859876597276749583413650775853200343274607402635716638955718306166723242727876510558934170297730744547801458393166203795918738058192724904779841381504646778238124900061131060997934425262452040501686421008495210988746720607671390178802456865539768088567536032612659906577425201084165263909020597944529252795246341843781905335675644004302542770220840294722032455204187287380317206654978939493210660187250024415476949900255439807361925772980326005302948950247420073797845067349409690430631208183806258679537200345265714045895143012648471602665374940143393070144179723061988435782102223357270348209463711571756240961052024060905591040487884402331269220518778286928183987616596542500571789682865206766787072173163436612056669154553255495660457117460399212718201485883560946082419818040083550833161441386607327618419660587106660698022096955879041674685120077074198289029803006528350863361601191368260165163468957080545695313207749053673707252516811552929371715280658796523727930477888871272663572934090728055772811083056402579325123062025463898484550591527100500629998773433020354117220027922025247709237584171955146717726222105730327235285837350779568105619582434612070822585883552403752389394150383234196471029916754229417410862694500839232345331673043418664764073673806743504709417347259048406848881347505615743697389208081294018104194897240325647819994886006740466162283173944213672620273810948443294833620850456403824382987678377785483904607868742815549017318264501610727516211881873518363050283784014951631855963922170234379962440927545086563254728044189381295147166621863106455671869707878844909468520564381889142121624952485490346920152084774881284521038977544610461092614522014675569387370861788445478998874964888623591334579328964497905126751028686004089493797475873550553222869721306214512978613229954543994709833028584495097839694265588284661107303512633533818034684696343369518978310107649424054443365839716792100195244807335622187937480737904033423800706706401328391862194177831666938697888775331920755197375201391777254363838956290321837722382299625997561148311055374360420786093655906430976466609116386983400403003211066888541478784382802528550737401481116034437100635728262924594557237733481491642746467953385658230221133334662574427395659247449437311230257086957954695947367289080765331398110690661645514611657050082986065527590865416636563513862762889901229505535156695313512788908354645732182760018306101438346196817829577194079907298792601493664641868738737763812391030522047165445039303400848119146621318669773751310982645571735254486930733631366462043615312693179268751406481425212591026065109824905384271245697483469049028303491267736784990095074580693020901571236360694531375797701947086748318072869872105573441612684912303461864197133944310978435565592491420091027834863084529433672636460171937917615147407860537176484213529056836183843033384651544322419264358977356728983292992159799470981695796977242947435912830800893107905422554703641207186449395198195118081133045982201842707111895702020378835235512723973973698499421276447405649157333071999765089599708637190139175353426363489930123406862823699742382093667324900914104599620336747549921034675445752439679945401712528689688303889461311134812865116322828271617806762326825522604380014932314084835274666254990479757341797996425416489027783827455650981366548988481640188015139647554554446469147593224636597371913489796074216298809036109702193741342687551586380755881024252454546786597100492514565831502896627215095563879181610097078013093008311585809156205437661542846051686747384358186292561210251558506070111793319706838446741714911977641030978414010811741556708426943479784699006154644890713048867211135247037805735836599155599422635324480996971675025249121762125041987090542810116592642420942515682090487418369228201231902293837316113510429432897456128522697627096247582971034562464408395792915929634300016843854009640582496047480287663182670989289378079132225550878519833075697407943357119398474407733789370760991855891042755910943232808525299959169788157213806409515785816391706236574189079451353688174597944487421177342228872404208508080550366597163064576469782026823961698430971041716786658702583767294529843633652628407566039189845224546722702845852774588166007489007743528229946569506707960014834168765039021550957619509627276026339901908749628292149522488977068402731817405587755893796068717941033272021472259486358204440316982530506312334468142112620808752208084128328504015339949839676617860608290185328563952879624504724264152751713345701472576152675051783151012726485241599601330280929724233468916366283434411367211179862353855510913637762634139942447204256252510642265708634785382474242421536267881271565667343514905445467867510979271136010886699676089437383086876301001684816702605445962626217528148693328886516368620017196124318504886770805493785825042024150812407847446610851800415981240337647932360740077016277877333254899898588531155840031141128867594345813227367258823779341264183374756862897783217200169906921354711546905685717347525816844132330936681923100489301207109929304541613385464284554588263508785494950636528201393985162311808385627038013617802262552902015950252208681538764099958080724154494970196736622755560024222435005029824794846409857975786889017453182594391907486206029494667846785516403765519515536231505409319646252794590201057734494708057075631090703543304298475541497617095575121073084523136476863627092625984326721385608306423371319337484931805384504515454327548757791463207459619598064864812079303137065530547834105570143386162873487659874189686346804899987115802334744223073835325656275505935506268798806392642297493326485613152412822805067627374609447919246289854569335923810933290207399851634016652393965507681449865810657498078758795066544118623963478617321201090241526894583123226400336887673344621746995257720285027941392816758079628681027996028379053527227977522564898604700583199425901714879483421836661375266533736856658675486723097038936761308444091791260677188002053374352436708241491906870808837286027662075947313054010604932625045125689956309194314999345122885521229701619676495581947393605892150199495345190769306407954741113086050814190894555453260788497380353443736073141953701230359641031623630865739531251466346475119516841499963967838893127488917672662678116274015019591717575908104161140332847032505996506397394697508184301735684053073606640612376615099565261576832775877129397092473022852014096137897282697990757983645592794870617798385351611712663414238079379100011115695742580978298079190417554993038642395263179067187388795134222915843436287536928098684594914659085497138691256244904895004468840599643972454681460884963602891750735645793419314160750010439509452441558577737950860166965369980019998816485828730482473802216533300049390087312822311584683731539140439877757244597104553577906881187958429853784614097451491050279922987123210458920943320443025280620682742592946688697800912838621763505470042853397230473163686439977554713636413456292533988253936408325122761352575197438848337975365502374696157858563804851153151212561139196878225269029036136406520371039488136950986677720713765684747938077464563448401848817162111864286665849629724137668538435149167009993875977757956645144568708851825351396047938977128992588571815787314666668503565400523909389006088625728316544888060452892848763075961643255594550057753813460300141798286881389250097730674829031648220167096540522014195183643739730120163476012153500977582765916073348179041942287055118255506952670215840202036200242871563286275021254700506818939637203151587368844669814166233519489355764810731912557513642761459957673467459286301866785422575909990928916940868213834683649167377213340661323109651603288960250420111821960486900741546922877872728429871780774031973108285080879168488829138158177930362389870016500592103206980308710107099887362703258197708033908778498546115580024365782314900991467586344033523500486509605499432030777537729797716951854854568381067872677431464641417770899074918934359013558380235717800450557032050609361492399924660434377052971560853483895114099771978214935332505054724902580951393813212402516489222731942966923733193028267084312411025992044998716172972475215955705342031782427234758930137365109652806622259755101286600294515455499665119746785521573333176934987556982628816540071670475870201284720366246391592063278830857635942005713114092868653080313432059831013173863346872770138894765264666969761573201187750411290308555712065904133036289169685910318799133077280266380900238383346274291001744258729548907178805350111563173734259712808292999326310056609144068413059052263660598865607792875895645359676251497528058578258250309234623550584832516935540349818308423404298459251165345264788597543275384229104204228461483167303983667927066390718954681028326540677868056372581359417941647871318517590743812761886811583247153981699506653324134638141319816342784383846070819635222265249206948954629672834365439576631869793850691853919180661747058126533027933801034504757696802023928415602787391469781816002273902913802021714344361760456498534663562120427331360715876968366458330606500802402987344792159985189277378070006102870141372096961930838947480197310100743331752249400698560706373375339550053718654389887676475942725230893859490571723018251493011829028670328943182288046950946663096533004943939114618824438699484378795753949645791611174789927806061532605916827670288394690126752508317773762901425483373588221406651800650619397735329334394547076410870218403262935567994562138638202505189636252882945580031548641082682054953627419346844659637007782715766970149523941866659870673173417504587679117674697288665399318997391649957184566930427425611034816880098851578171745818579560706832192341575851454761550673925606633719760306150953041808000728799281142031830377544360474538076963371204469628610048467657652761861207069422932053459831221567704312925976354158628496204275743563376314968797283467206885226283863456554343958638280096247706898313195542474630020975254564080916108708796230403715634687686966521105055213268620601083400936758154598769177266878704290345875850393853306660412064096534512841186871793397909741466125080856017622081288214692860824320263434558904614637162441638695546811381174447313439305606338764504649186669541958231345700491475540266575582448947641446759312907161462253042270182063685143950053718960399326465313072584058982717423037342996763886316875345712720184622654489549413418816745887729369774770199179316668183344573815653342208494793408650089411448691888911371446796076988679845864216044070082663470585566409050035196755571031771300734503934148945224455468231132252700184373193208302699849831421623423207543202186664796679406192736978643966839470142686303538480277064514851178094169954700750865551591177880071540951752443808408940701737835087749450617879654384941968926157213362826649568221033942287215462573119537331523463114978370316396938264733667599698919722823763142634922288769169675030164525965134011432779270364468697469054111790842344611200942085973185280981865593802332526864066297313331987284383917227384015033806905077275111957355733407884154086347411750524717850772829846469754631164434877375280633333302917050250720685260441435050322745986408969376373163753583904472230530721110160628914829081677687835956294493623287626362273991743844111308047643453320179889482504681540269473862899016668093310928173887078531709274386470019009199132621821494143548717892416793398759537088865676871943730288802281248706336078449225014652508968242949730200129337682808444062983572145251970283195235448465391864225865154913046323452299648999271559522404545761415677585431783745044740712215320603651312446332556952785850649703174546805468022354346656502413346651588947696872583150232173541505177853613452687579886950219580253702456627192273776519637121295148347528902077943071002447053312111569007230482859252964236538036396261854735745534704472923107576792891168356471266865744331970721978019176212882567592985707825426279012156932618221765352077921532194744077398135177469887500577559266528160984866668787705669625180396257624127573814410107270024420986293670032997913069440905941383218733005629507252515940686855682463061403171309284084822146585813627200086842654773737415387170887932095532891614709789007923253087306202434869196586361719010208622912247966404776102402003861765539771770853332912516139998897483207655932673675797686355345863508617597583303827429313706974913268097075853273230722187891920578309967944592090295693576181972195791861734236607372921434157676397176018962848171707229797121867279106384838603742441471286957904834286560680714648048942641053274316482450480193147123350940653349747891634472460722204120145265216245824850077305309012258161350382622043415972180567047333954080850967704472485244476090179692703536003248967723000198146102339241300808940180562375784086458357358876304089364852983101188415907988290555779073007703046809433909004576265858237582001161715651007064357994319221992674297063401019677203296351520928565048371231672896097644270825780237439687528696860126372600594529427408729877095690324447955008703718770180440750863196593396486999446981005363651194785447820041034641480870565597940601838208882443078212505953767236432009058045930706553170893969726319671464320465328624120568562646310417443005822344120616947508328339435781401862217421689555352829235199499025954897865185870023113206602310003955445968896485063792403766074355516947555786226701895097691900385571624502076696962518574378175792678851396436655122804490748387711021140186456271290391247695446091701157741056761358482552079451433971126371606469890299992208570962427875608378771496471411248161809707134301859599933654466965139051027055881059848832578707613434080486991643921119008131133706323969221265268772535640094717409436858172699988340913410686244693614443284349985228448820911009549962981858585639628665998513724018187221126655734721676412190948704183835088473116379472170971120968825641037615537696297471336549162946067699155494850060500456257242466312339825589623422201966648589122527774631004420226760711771650488522040788281121121909539022855803494556751377363308934850531687942310000793324347786409462302841054997042450208949544932487447768645242045075467437546207898589033145743290734087700543159140083785564027397563520658161017934655727389465694952179168141859715621912743708504473267951956517829378818688900707763602237670843874202207372405048617330974857110170795296485911911120247941646107575403861477111124757304197160351080218070028005436062519848136236090421448293330988212655993001102440632629221218941529629206021676575147313560232763070155102586713443725273332546598382876518222210909770489743681845076396881630212663210293172994513080670438175533673759936923510578033477497180979162891348157382182265609821628993120232441363637230527974594351012736234754416730021528837152210444246821774774706055089155443264664662387750203417190464845757599755284212603785357145377268482860633033995328808874367497264666437330301954719729401300525446569857115065033193415795583393057931824365097296388219452241085611232151247159295410640056979896917824025712281357357890839291948137755130564648788474259342616678664010305276652279230972589039847917363115469941256245866262793846082789481823815872303187681485635478457589301795882178317280207840844033057841772612702822345239686607551541016874780427274464501750568287020535916766375000877862862466794689561554441550730618149829090233555738669939109081415760273661122446573978859945918163180883520612736006827203593068782518523279437537359805881467506670822708114111745745886168612468358860342653417910840386459288513579290373269169922887705485555985525636454736871293036484677037636736410142083810842979370936810204999624188283587956716150615854449456231651678796733506715228017781945153086497315169596226455863490418772170240681365196448336474040175033736234957871602900430025834225751140800095237158115053679813650226636562792812804213013886163554148799368665782534837227657295060207054776661130482285368924862394395982969102900714753549889008383287443304686585984883097777050365486451559787950836484010778118076429205301686633109369002442234652239255228797638332902445453572225546645449348083893247837122679152563767794186952052950592151812637285706454475797760606755829408638243375959386323860377708956922650861141249217305736870430776825751471424256549447495210058165507806135146555271454626955882361044076965031336981270052305911070960839228910764137887129956222961753424147825739630109003951755810996630458416853704399228340378750571511076280265939388438627511301457437076723918917532642215874610682170803742655329254784413467112029373229023712437497794732323431422464418676762957078651598912603250527813784037212877142887784392882312711663395500471758768677316172823288339761211821762775455375658879662574422233504684485523725788674897544456458920072546267555908780941965728532724979526628798753328986021564872760827690614563282490406311767035345216690086617340343853072745675540181546229943779964472328271874750151468790297801408156827666135205068204380330553256356414206479992519001583288100786232101795159695188363086979062803870787179293268445507609213843307944461597466152627361876442930462030213351225442807518474166549141236364728987279207367197881904410689089645349145657540044377828242184725376075611558080846221343374694165336445486653040913275788160219152685623077512905257468927052145680081384849538391590809635782233450995310424957487806571285239155908190020542158772075403360827782016563797482781849740269748952634910894772312125953309692958885255670992330691044514708218602106357555189428331246991728906904832939802550041988277279097632702329220747643645095405598177616442114254215562462657521537552503412703202335150273866706666426135266753945450803744239150480276343774826334764029180632202777392956203664810827138708899915495987369997816660395910801159892408521314501533713296268676457140697869134878924986195079504490852994489558675594720882406479449545900389676009259108967435291464871019349160065947005827418236532793686254491424268525813604476613641091339473913161074994066230577558364890437462860603071804493728997778343857913851992950493174723088146750230299340845441016821933579830103298869376878086630762296897876773516086615262817402364767468299457889851608308411077691443311017237107608625241431281905181565860902608289295871240574999268001455730248358497453284176884636078530823905123579496804691352223970761620817386978431333024693550452782387581523821255027435718246768667974436470624974906309349322863187549244330440760290779080823499104734816633493300088054893334625213652557560368448906081677576885203419892191097986180122094476877243195877495082253156716397646679266291921407646536028984028949867882784340900498518495443275365255857977779757798144369477747492978324856755956869936025736363996295878388640674875962881650932716782979083327254247754801041645261270563241448511449313925499368832665843706859342849620278305163191150078049233592286414815804654392987351450975386359502030962173237462124001815855715045737538791583649188832610955294437644515983327364510740998537170744589532244610990858443866857478751797104973688715471448596400904350155816419255772185107799331947915641510195352681329918487161211025923690193888534857386479759057916809462767184059445895099636414593305146884915218033580193263053294007719450722271176928384078039660800238567129904258408220704673471988818617305730326311839255498716618131932228466190265146967684994625469025094882304445145084329697832775942181051376354909137691430541129726298913206258153527221120868398024904621537222417979570093624392548039190095475920551124106428139716548275795594119747100946134325608269822055102540956535240721219677214835666717595552782010541980737932682715686247061525416656222365543196133111656759804440575474535756221586783663734893113325017839474482682610946272861056717809643166265050392348267615582116866196110316170375276261850187961992138667740458127777469351896754654569618360353125270178450388715098721416821763657194161511479537382742778749354933853893644441010524436524192932912091439290812429246552009644203965548431963232296043161637908067180727500721499824560551055405889322092739840059008258263026520270964160359274344894349316179489077413585865400957884070612105300583715117262908609428785641312431173637204408859129460856905074311452455762968193856615766345945024483638202521068172451311470386848212332078164497706959460328115966396416287502066463710466174632483080394748513238515842478436646783616926675067170235094200621019152660383658570659455271844124219598119524965564232538217890538337675265872583724324193408091247825262283980464616262507737403213153850156880588290834188364982156072707769091532691985397179543985953417072471117779267599855837481799249441583815390268683984015166432110465674262043756858304349532190365195890145238256498826358668095377914258923470136710503380718802807570365202484139230225455224289050839641469468907806533434477679896351377051045134234942895504161447030378089927574069703517735041997147996143969718740075129616116221257642704726448424247620494602343952095901394076712861984658542181760725641806244352415458668128850147718324066420584532340088332780257917189936869363882103688149184092530502754619475338918162594259723959799509954989120482680220256811613768971991685341090994006466076528007208514967352001592899592484742784314000635706257976287357576672005643103467964586853323084597757068540477351910734996170938537524013938877096781949722774600614863753421332758091452832683597964566150064780575849555564037788622123651013035102400695593176947935070700002753245355623836427140807377197239731361557290571655173385280711872706049925353290722743295046668941523692117660574205954248556742934450817433848134200431771067347112163853725501919138344821691047170363753619748031507225239308754162813883518251376236369525508570225415320805955888329635573945673149237876823615204133770437452934781852195673168622703463805573489151440924394972971304461870624308351787818670871355431045068731198680953335023289202785289673505863885421205517674417841263383207398164961760384334642231801883200855965181586688184497470039043251869606689807671841417159616700187178417819003560618128899204574513231249677788273439141351661052388427244867655521518253641070680234906778245880766779818887805565694955046628640880402361834773243334280393803943181235483864496763979772547757057200819088892755394664750686065958310828391835043321977222961486675691341499810437812934076017149378779300716577470639181902876194182724714637851734537364162053991499706956471404697289381066046038244840194880050747354461271403081767876290053665217653519321353425006810746838154049518603260619435713357691508337564789746634416116668907238878279404017801301526030001618406687330995983905027126684472114402335540463967808005320374302930004057027698869223041029612171101130501478244012318699458051627594465742956939307096745259004663325238004787270213539853483662455933140813550393286900398199890122159837741616961842248133993673370714859096231145605405217402207529415925912649122709804048469401111359097834709112624795790603665406142993063143761134202728804034460860559678765387216005510617483535446606628604572495895868790650927469718393249441226494315718035832018714853689072566373790498984585682639501852695424173731403146011507110723987126032625934983945388902895505246814586564658919701423814624061484649055281885031978900370735610050086396938988974542899062743160911831312833530237314141729533911149758219858993296034242001414694220041243699805885741089458259116207625527027075584577856777917706528716128995627628366808981894585379467073825607166268233353277143911832673198742981921234277138873224749598048221999285266060729472897520704532500650632191641807021804081239611490704034512291053609424890093067382939919836604789571273811712763963738106552275311930025371681518118833704251403404326747869759628768803912057363078369249158371906956437814501147493294636831772837334383765138160011096863516090341919942301143316755254951980585368651347299543036311407470798572233807627007989200695273002677925440223332171455938845438754538910148715490316930086027194946958349430448816347385100313042496855230635528871096021475130116810739321168459928953300896302530244711495199392347853133733295853126556209278214794119555436763771556232254958504067458990788752456133569003642656519793579026756656196096205484225443959546648675844790241557295619801263416711720543552096179070272169193320859464190248876795769058449519146440372599693836599024230871451767305608950726491754300887550210523140137977710038963044113813023859748192984778795475356600222165384204539874739449451334088807004891105683419257234298462867015551883518780158691609264533978981149705734177898131480862924780358460182133993802378165360956526386158166365847460665388154941869061062969211340975687561291463935466727549019710346051421928066434927888278072067389043084772014682517088683043059117061475783086774309200901109788628182694108991480843776721532985487378186776621191484996539646294568169501917049330154428480908151641745206574757458545306548234146162053106622965942570510975343059081805793389290782867927215656809332274920809611329852288630508221620956928290807554238381070726528270916261255225723921476695789529301609230961816729423584402563412978881229300655556388373148313929330036068751591474282759414210143015102027501635790337815879505963854293791713739633029889819030632317880259079170463081839812618824959748520635368272570218599319466108056303187905739990926379202646349656588315160085184296901765454148532294729575368516555865294540274893577274659254617250916768461853482583162008382360862083366744693687899287075963853776462497384980315106611297361989479030372228630555474780145777724539738246792652839707886029114568486416451752874147930811276738415192167126375452380549948027353334247877071575961358070044559172599770239270259508604949596695236337154595823847302082168866602347005389808381502150965494445683741058019155342006556617281019206225652353702992016775905494508634060393335479607244094479659253666755302365662115394367405042321860224921770141207525854082818284027663130385350772060343994520172734378703703036718643174740865532957855793603477741097343868927848835557148998413439105959892664206962860890382568860170984582389405236795087126814618176373720978907916075755180092209652429375260988187236816456369906401977143319434954256671307442850142070672636546501623618699299706508797474357359427643432341203240239098065598206519967076419956545404265674230196719231484655507254589809062567027523039521526758016972272738899316014326531922966696086347678242419428442423969552436866286102840806709061953512193999425042370473746888658996201843030839456372967495593072520179945127979890912529289206429457552575905034204607598970990328498252385361008577723294803419305154385410410987732566775618181162000880636086740815968202529511499501737824396491721508916457815856461858640406236774765550362630614887155585556312633467551050637460989251014375194943669976011090560611283031698287451432099020727664619592434207362901381768688826383889034077104287052753921712122450078116693927383951305559242279756769078698272382457039632552094034289330765228168154218202737002378680960167076720917369166902788269048496784615033790965326023538674500101906527642337838357113202539051513528427960787440019184702773954581356450808737877831861236909634948651317090297223635904617989530047595972695497709601222069733129256090419920423984600276959695680541053920407679189872994256851810602950298076018850060357623264107712785075024352536034709021502486477136992618402640489191863725318828625209597156392488719644637346053027614105233921230102741146653094355108484357816649860829617282310098512994303694712590876434725820188591726808383820915008397897046851506646403320821794318182362385424266677013145632424771716108782382447243516573109064403480705508948197924081556311755565105553503052694934525308263962341346295858387108456052113145477722546352024450134103828549013049109172576336557247176497985621389262228954167072939795923245942190735541875424774266936518418820110922966073955678669428908922004723734885777969359606759897894896698891850157849777441411038672112201306367870759440552832840223910373559766638403008367806247794198381665720073507439013883053156561382870263884646426853328249783538291502871235869293837585467885904144133913353703203819910737852692691808337559974591415073737005459992932256342854244297450771654585243586345604109554313363372868219441565451006381510749049163090083028232248131894420255069607230275669955281936824852987432378399284242442643927587455223484148736840506192247613808847940661742842010941096931160954936655498760630548862920681117030153599690899998080707178960440891862542563707469338305886522803848118671628036156305929224285563197060402942089211071426400095843426079148900380574830157556161019586649447689109989068298246213982173361197279379190269122928441083373734647397768419832771777566623871540276773537047717645899577110665760835326861242982538859503500498924902833639364059701176722700430049156341761354492323598295247932301285520338718172326430659821221689503551507763781567461914052179169451241972775398841192839755387059997129235160229425263485511613797199346977656131865738871377770999700388571258003237031128134248927924252378153888521589568764037541377549333845167701823112275282232268155423329223956343945465679296391062306844683139941882748833123179111313830824973293797162307964691002346941176355081926951503879497526668609748037789644125535018707072842418699395065984733010676525996113620409388690912429254797068373004514219159448329366330781413663057544377924015033374122028933161289264994023351942413840600042107179131677930718257880202344194585400408927291996194413443756426069855294542156083913400921246700274194340319027460488529870335670160957485712870675283660247454446157240331818564921452784528618238463532583756084696501599235098681615486345052815633430512751348238758502419612101956181336185046586033907455595820387558871877165523978153617202649727545552572184720076099071125300747940347951983971622888631187108961958846232824767374691057640307518508312086385340960323185877829588674634612123270587633203289282379979117119921724172868341704314877548408295541496411521323703618618900242725283861074583468727783101470837840944063676273453479947154809145146338365369911922970969381057999040901503522973471167147943303235925931890369555964826859817043688468777864825596549008913713778496629810295802427778922604433063957629749771687833111654192570509255897481109585311202128663226802492186365466942929932175113931051819786717678248212595511164070248037836361557570226032275979005561049439614748761980146178552195509100982128843845145344990845994294190904926639367870277114825267784242709919076178477877190886936045228267412701877369378952144359088817668630034695576182617634811182935643570181383834301817978340825628657808685482569531827505449128715026227816210652774797385721161726914408857120531305820613451095605274700238152042604050801503754340305939342032372554085385066307719220994901330049365545148978343100037760025854635700868029448162116648483395452102547307836059087977828142820765265744244266393253756729012662573071401796996206299215598202800147466012314085612720152635031405780813849095364309112559759020874874139001814960589066146580346739918697498475861677311239865314000598901917463027786390762712012927438533869754534791328240636848463928975184559257447577408420074777325704337032029787417536412006823619408556307916733821609965835117533231739080631487912716090680047997757642072518069228181385467272414560106388224174150294796661609213328629088883769494341970028968243081891075982415601229759041699716147521226650033389511040006374012566691591339582505183461474452781781755645078699138578895793576555894812593002674445924491090470299438596066887278575481166182297957842647588179460369473262553289730046164044539492452122708644402736864287937481267934338380878584618171950517672932319464331702829260580839043241553992206385178254863607019412070004647231209334634861389275928199162857774233038215686105051538796776709437691851500516670006706968108417274843887210727485000672126366698040910174755376587313435366954122993284849128089835681018409933736975439622905932485572887959688544465333934274977210644530039174519231398347825462121594802698263863984305479592066948196492092433246741861550559583480860675051044429276585898048246601739628000183459033722548018940486990595166860851280368978694980288065020816889551150039445506256901883901520700899797826950737210331815721267091039157070737313439964784911902413332157197626100852986088027888531423889522019826824815733098784290442712283502317341671681723936139783650117698042753598761374919341722035450201673763322560144821471724114582001512752056973949583034833840225345231303562001066204252898416354727135684652897575349589223185015334569626913017514485108312976716466169416237279924449178868565562952332872452685598480643036304872999634554366895525526444808301276973318743729757528787680255314084461776576186276790326297895272166538999323662980429086568870618861923454668713068799591146513228449278884112101671013526835735568249032677647398711004094843445257820317644290899864673046047092760275640745486738096307303096079909842783803229137667793829377697591975480804118252222207312894795626252233995254915496059882889998870098855908549714917308405322572360478682187461849895069908191860051976266626655497142444939355334473957829637077202593423583322718975833589957932275574745136420038910526744699503109167902862013627497139700319963074467721931516998734923979330716782446258942505553496744173916360424726969971505572427951716245601280637342416991812360326568530150612523155441755404050758618776467088505968144885867727741736463915730207550083671021479194700417147004584092431931670385178091054313665954974817187602470271487109891275314139405513739850356815973484457994492911579295044025407126083840050308148938379679529368881719219685532433367653282814104048117364220764746282479678988491547341920886005137127229170833881690969083951346627920083244553721209904753112157279060698821555891542506400846239829583573319275812000570086635484683717820171284799358540795245889795607572707939466799375085032705746747773711688535034197069591845885926484579204693855158461386659954365213227878147290913443184194580433620472025613487926930474193065003409549086203464921079610233740264179725916345302457520997714247313998813113622458616805799910257642294314058855521822517531614855366233475099031212251073136761359646906282096973140591219233521757860224690704438707885495658121126187696237718766397505492822280103815682808954784256307641558475802548004711391499747875201971020177828939939512514233298248768099233655239010575689694367437206591335366241998367297203809366315481364437918706529524464276169374775974281769993467474003288269152088921464777199408172540794891858167656749896312259277029692184948913621137522959528493023687749241589821391771326965448132630505207469132421724080460331492325357611727808734298554158980300091746175398079684586448560169175713040276146356794793361103670072150245195090273178902239113434579237715960606437612581885130798610879322824425872126357641514371328365687444047963908273140815758843234276857212047552111588937023310085355890772912313989013359988963229687608578853520722431194336379475615618137586859100616426895049888538499431608416189456749865122497152110905462847448040984734571073460849360649641610081645969027893570326552995024208242758118913850862390743259836523383999970592854790188570572657092157752604728417259600415923383461847423821379389936602059315352539191311892812251971659745875584486958379646085327737896005924613044451587360447778068437959970612126815142055495061425451757990347462940933412918264937433782771340080528652119563203486699102824991555070139573992115292483015329260126721638447930106085740188716336941726994855173462403944003633969239149341045165341645710698646175140370629944341039773314995744848295852800245819294633038903516204574238590444987832924286045499432694675520146660196501125911146450863221457307653569577925226262667913959926835367501518306468136397297491833652929935055497750978087495396589920952787382837006507799813030741383626708401389158458114310768083487529253624846734711025475114075586551988849506291594208018364387480332632122697587557863014666858556639657498110808747194690142076971010177521019702542868692910688397653831519052885264016897148820665721530565150993656648407463914959296176840192940478443148815773864908686009998345938571087225752472044144934367591147404308599567272382161641091522465052080862176634626541478100093200598942304022246447316298018660252536660142348486632640477090826848729035352746183445369673464853455047507389944798542441457569773970546275946386571753275328679885421828165584292154199834571886538300661934993600329302418273516985647130337306192989460947718963108478097422891497742896102189602197128726107800580809810356734689985410814044744111873446098643940878037051078642877886506775254354107051039950898879379428860493630533395504319192842943572352880888686397426897040999851211225742980253133296527068975514954467095928387753225973266837572503674525766261126914951221500437161362053284036139954811727561578718272916668316395598564719308176517106289190222352455437504402400196526844438654129580098506504513970468611646929826418085344380185278196604280907397978566910489222885392011668476295252014170383263842136873247069440765656356876395059569126607315651618996252259729195469594404053571707156377081904288689499518710668716537800607075820604995078469747041743655896086729608879620469793116716901954837738841007558688600728780658574856207907295608672459221296843991079109498213552797792427428979128978235543708375647871438611972156048395541517356949928086726548639634095945858359924599397205264888968694660879987925120388253732599444728453729460198072505572052606539742672027764549423953068589759877136546667379095876988296709573947529457906527994478123861291904330414853171801935450083841457322964828828739972719293541626570308907439702534318460038942538120812086180691602766994688085908205075432775638190480146082841431529387812590333406464332878863657504415167763589763815090395663424359911994435705624582634982858241594055879452032189870859089176616093517605828362030123809281094212794337989730946346690392167982522239796743926359401373523345953829361445535385860025045869766303379647177071439188939725608947476267048425324918815986668964718210483776729592938082858118860313010621436125907698196029814670594595125758408543704620099710108619179998721752969883725531630062957120285808667789273901059154379160181412907669257023379402528098538745526123182482316168698019037643441694138648141182285053359699464994015834688632342826179703025421168617770783656924304037470705138242331516947330087708299816595782536406687656772118187424294995528911451503668225340796998569546820651477455969849424369580075256127793373637434805237315183675353496830815452263208116092257032946321406465239817846832861627937728341009916509214685066632383221661171215581069780960665109891371196275502075639630805087063340946846482576132100171540709654230755674504498963052993064867873196095392175919592803667363191343475028340237279204831724468359558592167708283196381859513944655321489821112807674644044842438006039637012345680167337461526040938409115976013018534075968060475953405979098968194783195075285704369787174916110871577367302621008737166546224735014713808019787867453627884827317595988928597416327861655804706773424361609042006926368587216100540295287128621130267651503145155527186642676967848461368589152798142554226594535397761088991308647329925857406881189551558579075291518855702633426422908373475156671007935773675321834069172193127256794581789458051443849785364781704883977024334779232028405722618486685727064258053005579764142917951682456274439057381770780856701132588109095123828431218721893100140704640755854419826474981741341654785457634576216271563220077424674476748389332538358743800179718368268533367817974515403467577087218083489377881168538919803221456482506487310112988954447522938383151342228483007261149595957005607583259667240887342846030392269295208099560918686084342588604638351257499652045291423977274300624989033422831685774174023864259331618692863160395602910691583713810559228248370687652615113166433521836422667909071422704075902648620773791650560845127493539708912630546824857642956754828402251712454717052227621198795434878603277185856703713973667950307923102010271827028333447250951239675010042015474786037347275958529267149397754931454565862493178370230419085816817357391829797362305947612264445779396588926045716520939743983554865161621981844461803916873006676692772818146219205605659259312525762808463312652328953221335581959428221327402508348563684446015860985006595478779141650946388470687015741187425609871070986689975568990294063744450695811152913104984103930641019114558584383682739868604076127656239645757057789111019540115349183928166488696742537906337257938518245442401419325520616605735553074367734226036915570905972435061493008134677021616846166614661581969220827744510475854463153291948984959191907458383753230289638328880114635307002854732598186172199422272951518776858904994408153089120768508522723681725481974860675105375552242793278805685603861860251826985957640293825243018954099114290277830811099013033593440870157374067113015924327229820447875453607428428124114261731078005403247357442238924112619470388726389406823049791360277811190602814653556270018071134985823895207795019163455241837390716861441354974251932120715160663063309972332896911405931010625803784883549654877228280064306505999489629770639732015927455517820441151472234582635807814561379957012672713209181597199158786244458403412999870757438895076181363002458224429906106679688485094332874379676928259185067421558604241455121314174346026870486606384855932593945400795765573681117123795602536505166304270603673324567715544447343328222709241553607418253661997114849056381342702840572952060654828208840860304199200523128637738951508085417735162225126210428197693969680562441826685075527888687705173150573790768916115932733780221094570930080973619456829638559562580541635170432632530086446371424366273726965459701919166298962211971516367231796517389454319844298789066998388193363762580979025101576135779380075620104613622617501102413198232922918717762700783919624797987090330635314520585043253461474586014903182070917902937430217277154840085848714023607542765050294664314293948554119433245027595520743089646488773074395557386475673885494410875234640038777800216760036741055067444092387608087786292673828709806165376453549071236838959694141448394632202870766852868737365953567883239236659136353000554497069709213408116895212271407119389213113135046579183214660402180727265237285313406148360786575575518843641897312554662685949747448293793704090622830851164730634187077105600628212983636624634379238018382426689208311289360738318557994055678122483404196808281830903491505674327776678957165354607734163158683185731298624825026233134437492296814845636165574514366832666668072944579363991515761495356291560604894042623289911147188965378635570008889080619346797658855367835874811632031253203581707200942341428260023198530623479208786064598188112002378595768242898661333407936747420273335766979525224259861331566493733485425788918111259946285114444716878227798903993690385866814310447505755558099047137046264599474480333097839648541383605102979156630266584322794316833307052286271439322265022347231255603520663353344719342443417306039573853552422966150366978721159517667596333184387853379068387554226240306996194682086338108076891046261309844780178802095362712757780090906340595167768772894863133207548485161665742023231756972327701695371762338965810476932712803014696979523881176422697225824616964919716332470861246371332498435243715372370759082241475866088821802227562529145050643907247699914803340080661229359875722712233918834653979859453776772207128525161546050897160963313514603413060251701039209645696322737214747940772191428902382251065247823447052582867244425844587554290242571825235981466217857747985157404961395047015682683317428727628107524536855936007345978140719347445406108118977097045528263699208763159340007544725758741944508544554236514543948540902992745642392605043538545962139225368467606762200273873544838744819412262322084372688337119177688109687379847342798421038972270298761084244389240840331501081055606708960837691944340016169567603937282547520277300184618826569798942506878190383238275061393723802673657390679134303704646254070986884371679387635021097077120856504753451475888437666249559816910456863968795528058478798006838359581630532333139423155224841747734773654379000831276299462200587928501252386524160230886139125105551840170438068383814994783625387820302587122302994618822834527049377982633136285615044394469086132611702186874975653914166909214984897962492422350972359685163914767573756159336571375137749546700615708665275535357619673422247553169859144779917651042960196386449139354900702104896193366843847927177094963389643387782275133977744841131750099211130624620217099604576322415052951147151442902955243508029109393438914190071028364347370452911507034594874016119050639746094039625331611927690383575064795401492067327549277517225876429033306945659776070809875588541814570189959033869074243034076339799673049103430064921633817419682827259903869123011914956913605501186303608573545992395186971392454472358944778189032984032243226983973012074549871985495326986137637466988558491074399825035535002645105287857011223523779770274029830280864039545957847808867946379572491158756846918852827911773116675103611642388617941689228646403628519493300138282267940256999187417227238103060455760481137034479401057407146952409555256014316300539105919222141153191115963926685654513237598097100165910315128174147706103253344479954137035915595752846511593007676998359920304847222814836950148022196011505271209830265988120021359078766484799133546366766375421424439150394402566813042009604523541780127863619442055272494848848971704418097226650363018448722521294008146607839773300054098576086894299975573227165330587984600217938286211135593444701332647033771933448308416778721646506241674436319996810033234280020210044712347550781351422353852262322214471416891016033517592492935331775345218948033831319276543279752168021824231202111228668080562940047538751238430631554686705792353869868301962236915508403876014470798585209176622788367876131074136374147392887302355450786449883019964220131207074951372425169871998200827469708478947562471687549205022120523092467806503180061041845365196653554536434086798824726061604629626651884228878955277000882446596907621568780572334866969947878210556914558064297947381902202131117056673742111954275590848866480398186995611847692086428041183390392021678707354701881931331407143661830126690808636004426052337708297529763649526515453519491887378636639646990668611928594457283189201144916959733644291915342455840312016334856344357537211733844360656616290414690927664963049056906175556435167461365246810283251398334031922182739736151798948907234949066310549694276909626839831952540959141916597211042890931905695918303839558169434528171418796093244097888089987089951715192516125531331293778361494565838028404513199852776988085280352713829726822875176218958732938259917754303574611970121202147205403162686132540989671323007482275451465347018978395738607096770007286434385020774057797472126312765388217496942072996150820462647722875494555918566280838557644899583253504371102852178230623701319800510456205855680798070503159330756822782440423028982930919605524643502355710154501512837339861696100012377615256681844543040150569410863427758959406618802817633933760886301024291232468930036751980409132404719162368101242689959598633651162988498746514567173826179803714498668930752301317159561772229112622149718005940554267799989833314697281755124917943912463573155635300595299756069057687529309271122084943918682574481383165155354754896298828747950670067452231420259088628691105764823817745711125613826768309421615137155407713527799692343940577058206840472582384549852644029571349270945624984836399658482272435392889293672603669335376686269914080977338626273588335454860501885860955331629251563725710983142255671827352391240215432826015931563238406448035147936720706422558096182710931536686850129330870693344339098784407936469765767472597804768211344082133772973929940258011144304008463341604540133677051002372684288902194434989726726676262407789002163475947332766891973775830942456166410138084216869736892875165390640919832606677329506561052972406035176746335345036472580557286700734869795132222652684321340944209320443077577520084536692158117485887059204457571243092739700276500263137704486098938510300901113619537658585795272369582929799075712324010663655012239019110998104309327635829324052334393908230589726035632983472179085155452683665142591354067599192932441305544728677593270200272093647585887305199710065060501732252263503385886222152427622948119414124763487944699271773997610928965052316861888814655394597477614820948975317609542886178086404962725564860477590527339758455905887457393502846182383651838466121531429510313325304009491776053647657702811641809045572636364556252680247617517821382063684669392431822995282638086353227936180933066515178494603821002456894267221355577931191726072644704320024818498679125119836513334271313047901391796731810533332584207131904596749410258126861506984170691017972282415800933146579895639577652162882664865405524146741329965600415008561840187606338287203545882931883007563532577292466742575409056100833473519957579097875040518004440041997259463587192657396863429488877379723040585776067341710861979405594427447863870283711686455877538411294528682091158409555915736847570635185709634125271868892216999747348380652942371622791927639642195657989952997147694045172140907831318681138754473163551196500644241568120462174522183284033187129030898126101835503446793900425424502073629334434147289954768766393674058054204431444504299613238228686893478128718465669184895551790428861893545605890893992153499706575255893420388339783002583748072789008230225020119707269979521647711139059291721102321775219290748941882574276663154559129077583090495062955753150833269748827749846628475339595510646763809775084627731135265591629605358439843974618200378868704409716710059866825088020311006525888219391438887837991482488222163959301873905606097766283304633919147222160090056659544362229880753666063797665553468720669959020896670710715080306773401595907103464756458609434665339842181968747162072447217012794905071012110779177902144665058120568899752585776767291311858856272716317245009947928510305588923199234961671350197853502699385768197930176049927110845313403731995641384363962121469556089854757322235461946575156087252438048624445471037690895111876034894476189083852158185240670973492217670254670020234392018079288082478753918987981668561511195682324841462581225156895070863886931930598340639950604267096853179727319162596151466814223834578609412386468969080224323390679547095564389446634977239546411413211030438443976667819579774288415043568651125088322885830836225082649271526456554666524160732373979770983582677076691029775085159062233908468004448832912199250138251787565010256947966306317929607000849341718018324786052352975205453991074005356805051621367406814183954134225892144318728593332522302040777104781770839838344804423870965238934411755424982899873960902456488531972257353405818973132376704045681427127446043299395627833152617365505544203610288630440481668832986381673267175216398777123955317194854092194034203640453539413083638736996129937565432339006305194194719129854213067085441771319356076045761799560001372238672370968267914405355886533350503782787821654351589534787359445696106419434569525666049517528490465985774207981196925581921917787015866099925110673587616696010349223404374203098323544853676861309768106962653335914423953179599218137766980645380435604061611649971655968962295275445749704265502306441618135400658075528424531545458085624348069442771964881297840227030967977582033042523587633243711045369304390585151972963170753698805393280670923819958144310709390382132006786886547195932526073714363097525795862865275790304671575934855517719287519094364419118825625428880884190323016578424990996982899203900756380602121784857957443995341960448699367037494865882400411372172287059750906095385703905634774277913605944547473059867549846166199445422755293254626953194503323199671346629036874332004442106002017655535599324391638306005007845767816084534860813872685015675786393885048496565526748124448380329406255311858695057605469170946000076756685737792255643895410579988485639583293577500070323807456046308209534085613533137911397128880425518320556018830332854519431035025584925754683196919453618301541564906092678252361555893037608106287464446766112941883143671229215234668174231064987014136418671186256619789236937688409785222205094413823974182493766722566660599492928181987932217131058962942068509189934401693317922461195191829462886917709544131414257840181032987395037261838692823511837433778247793062866586064889919340732771590354996554112932328366782752398832351221934348633763829076939986856473252492969923212759505707694047656572184129049153088709336096109380187546203385051515804245723159247722605725595002454018311913267216248439397214993028478675355445016647510870064706904208047909176376663330424496234605559046613306549871184791033564139678520914245899779206459381100963173219360739680925489439973482292668509847656506603497646731726765836174250094557229056701268383903171867587994856362673069410668330138077782192877709466603463051835345855006908326988563295008236202524202996355556645348810495954281247899187609248434734073173806152702423141448499265195405176036185366329868886442108267796828113895675676716441260956736742841218191460962099925846074793293991229616187080986755641346594886248810583124615996654179819218197484948142851829794160363328461930060780798239433799524966766006680615728140041610686521239583983879548891063746341132816699144107971357220880534114677347322477473454491808202061042532006331132165469755232619735118339215789496688925008570124920113573928845222842981407978031407942888871793379339421082014067192090009823553881779962541449546360489161466901993137735827458060086975008411453485032090848393724483664047842444367936185188382517355115750338487186176811444361780068716849087689176768218455070961136848661136286847095379823949202488989097617406873841341944838601042232563090037579958093705003069199472347408587539527749252107920036221028029644364969024265034916708935007433104252955634342516851103781946073715061614759382283248798001556406443931588192551656226205584561977501963642262671298785644429922694887524523587349411354367423007253454223959072982463553160374941999864171969188135044079067334004041309619732555407599714813305564441161394048193253577103203840786401338782900382078397252961282269938366595061391520627814256959921189994691626717682460814515012285718860144451147903402011346718289368774669130260439175006401449136541687622443760603843793616366823797740831174348074095767394991627698500303914238718233620258372212506689487046295203969501679711967973657773535201347313601996984240624824346954095823595237488280160496287480162218330585059261213368529319444996776650090059269509982522524032251904297652508366647585193347073274242365545238657276234464031458982524272309388396562115909382416516095339369816385284035009038832581897125133278564667148681174068147984155102395433893408619784352977060750716204655863277486633531129227991577614409826656242464514394269210809015577261554962752796457914728005765448026639682369890685189304519228921029829615307546476643285190864879495370508318112462679087450639248470380310455580941671385777879782218691896247147530921121180839166645440741419989819096739954451179575054973960644523278675390581953245856034232177090922970277299026869207282307823172470735812923716762987265748125875929234162306734344855419036285559885076025520723092031626733951333902356506943860503835491951311501756280723138863539174187132917102851647774815752247970799899680434119403174158677796779918245980670516342922303076070802874190958655818678145358654456795899125042711539380083732409649991478075609643530119500840848724559458800841613538915717518866519341332844796297903040392370737957718893710960627278534180440195905614570437994358595921999043980543518485247665022716335019158387946730446383701269907712011875034851095666699183419188436200067738534892357850530678676757912921601530169957734823200051401651669999123470749501364326387865386100192274540027960314995423187664890329482606095503119034141302212072712475140246020633829216780214399710817271900331394252679348110070364908132725866536328686627339765981789774908845176510332981717944600039609227098833716565783874915314897715805509837258125132322796992267345528913924767616601969267071742877531357505196478826911472725277665368894596309259661382904334754765338880272056357408056323384260994289881465212190164572357713248633706242267738541205055996709225598371992071294148027489005428322000538494216111247593954343527944300644303980398506751057805373245192512283303670887499967174703352514754035945867571226666729197614551226834401298630768549313877985310185419006733130342152752143005629619939394365576408731480094315079620355714836465351103218471128491439291444474979728093809548301813461056708086098850683647320765978926179629819225617380180278590705892745937166010160399751459602071811763597837610157834372973267678633586947593623413663227016260671512183307594118322620486429755621320394978344656133355202376502818609044422683099697854134401239289173895084027861259524710269369597077703485216830390942832643055333887685313646569992601006539210770978021278614484112359247989671861540148898472663064501975336119351224212960506100901425068372615738474104342810399001905191838814366221372988249861939451220301433253687736461378143578365997981193770108306439369264008561601745003672416350251213283498527139268117705686309367967823337863712999774262859244859346501258399227563086908045393630150544436567173175206573101594082887295089167158157747452925920190036401807281571357810744935004116481800081169661929072817324233160844315142634220256641276253523384130435433078194425766843360691234361924323762437911996488486332084024711200302568679880780237736546063776166988879323195052235508268933769335364901367360956293975775611179472767595896826266045260500803437380269294858490449144706600046762411653407771484334142547698192910961151805161275542032567584658712211274294413426449646764090813077479553453068912697997213898163644554082386181964944144657493727605433956001465019034315918016718308070026647610519490773411509001593107568540253713276122850320131712294856413536761857943838941907213633618045195765738416282968782590808547377582174378862763777338178868076135462086943259948762189083291303094588785301008994452424032706230432640781952531302410736086049482021090892689801549153735902231542906894249230189555835257676900318053957589396640149511632306399178361071278118564119641744330985947973237702039554668622565945912551440239068046395188295461814281393862928280360650693444260865332072607562560711861246680900238042056582593503184990918056841216861347240490016273272286709457040671545898208523250175704943520590301525807484124787226472035589069629565999204291735588209666072613344458763457743533322974000073618125509402615373329470029097540189711664504764922965732773071124672282427221859967347483824112972392245418025109712306927427158013763437542066747702856218046688168310028326978760724177363536788464527201558280371195050389529882347137940367058192134203153564039807439791646577558474250546836319507899726833038695447275579817000829061267631558532059068062232310842922802701408985515488907674690756420265432804868975900212737115767782862214443242073349434846924682229099306659694290118364113392010751130883907392765643546209232456369095008445221931545044019162049315208459648217013060960132902916680896404132171987307722042922856618523562675099697077565617136592182735754084742300303145409577311713564802614175835455073517734186344484181355436336344505478861593452886630546099520742650133472990308796494178552042835958980987765747252841896623107795436058481760467141051327655774711922840263021241550473084908513930833328316653456918500341526092828402815725988316097985485989356586005865220141409181191087070786300736207681324683239726198458725884086677081149432762922866570959401239394462971519464234882190234845510111037572273314034438333913350942545154899443124775129340947497734468055397740280126625077141465975768392014725812559461413562412195132989538094776169041165811944646711501105188657803288498588759394003974571675720301075136875909465859437541953711634651425761511242194402210091821378536219764000994848395979795800633542327120243681997120225612510182708316725227331847077024458528822180005952662028800975396749233125112034866032079421994964001562415413000756162328927637098754701634404322659802334595982243958125694697232303419486234224565949740304221908370876840121132083906013301964333091892168374170287010112229528901078491887237900761113540461464219549222386278761925537421954566786611652215511524056750638885189242744500178247645975588177836518801509895703198556267797255105768495163674240587343871170929377042595254334139833602874254453413224473041075337340978270853230727843122933056735009595670627707820605382900712601561194872240420161969356892252863211285404420589711513231336642226250030070827348433327124006652898506910311636939828147847242957762513777891537476359414124151564538773449628921292964757553034875761177014854103558949154878805562322351132941618981321614923524499525649244259232053577186377858602838888619967860518917713389701036287144961761526950486190346367176097540555626103989990254903128011371493334712240100886500019587213108010380693684937840311842243470407726448621533494425742993308641780053716714115194357526768497980362270875924059987343396247573055503004478649241952915792593943949207999880928485624072300071751375536546168496485563965675530301990461905287744585767242919559985068781019097325802102735974323825539547738560437824865963615788429245499463678526970458874141631117296853443887139462750234215294921375509444166500236309194572216292660291749195700999113050769268637356883999612204507326175542505214281231941112916076733125850878581743312860612448830055752400895761636348147516754985086741875006725894209716874612407561098057417912230578741847471281414523515543686681846869844890100658193989620691535333977414532663414595871922136181008680233431925063065711850293304546325832463264848191908365362029409829590265487972661634210512728184407710814092215167432294435794071159834905074140053615477329866425005282173333079267923173905411850658332434964763574817672797117620351261681735577890543942315272774259572515170712719772040242498920447608830059009595044378905277307850059703829430154929741870039942463921728571712722934827886847015118851914271592446664462947362996575843967487554784438867735388235488219734264453806550007904823756773569965024729046821784077718454767710844372224515934701046044091574165293585796921731553811800249792958968681586934282939087937406232419451850726837420511586469190728454586485857712810286916130775654860416732943936818265370161362236263724966911409372240805572812437866621207588553020008125506591958943940453270042737607069365879096368349691603226795784900748438341285483329730684376253144298021026937510133363790195574274687148152453924629156919971786511343652509075730282720159448301008580928630810526111442610063817987910760093758431022340342645092093488085100605263615256367145633090436647393767229991842207251909667836126536705358451828274597149590536227292930137083524060505671841866820840957892446609956625854483665361093033773009311679785080986892753352449986734058321345112694853652897539035820863269772598533988692723106847304654990904863758467624150113572762086260368075987980725505098148370763704924833189089254652143294275077832433552972993380034961738105986458774639808410118825870307626762809583528553071662557082909219172275676792341353827513439409667161069734588001525211751464573083880189379260819314681181996493660298387324431709795670140959491268327209792911415211139386763096685371680128960722820865599266009359068551968060263452551123070696826632901017208984815884596426502201709660073254720752799971514164163642390561533572027458369154448524791443894575612742478552702577052850042247750883319915262732553718515036243992517273525840710712369972386618648500563419515899502432798658922698527289386647100246514930470954570825028458264478194330707667479583055454493183469383424282033661331415571470930038803778266221527300536201156409830821109300360914344298842570250086998400447016508716756334688553941054309331648876719242323527213714458101369912251166104271321257482419978468107012814852836238877112972894511756981680223797962155316745255760624119489155669232319437316738761447773180929314148419625167258082041888882557362315928968499463556379673451540562720826591029441555854351411375900811998577022072489841191077158696340564290628698786954582248379303537843639488780374832760334411843837877209063152927059903399898809815009673099880249500114289379244100844971275102121089532114559503977208395644048775149174102622058839535341768777278517674282811389860895187634936674962919834783766190059253449970848314673339856819920177544392812678607387037142957000132405637900345684702222707562098010338181351708273509175507222901817926808833056942903611630255515232174974153131690297152653959650832154577292372060245927559143842252562032255474251398403930216799431730231627893973651244182926036218515954353619631981201228179056574688654017668154597282994915219246203126379902725089326475216391315752349325437165020266986469557990115682118316922557609068036505146743295633800337826157099629804149731695511735097560387717256959996540347489781734701493230911454133189147836418001749909216519346467109244666430789388903959998597036452269986493396373945842792251835997450799513191971736766170958359530120756593677087555431595830892036566150545872502748645739235702906213063851122782886816195420070075921844031007065337652982885833436050608688998241787755944653291824163838383365180534146821688952966584120756489495769307539794281563686890935432517442141891546724200860725865466021451067315623890646596779756863460856306614786762900906305763107045944915210747890391598336665292608309103345313965305569052183043424021881028028121132479859117276420163498324097063918136362058622756574483008763674211164321170255380502515527214773197442592288671351087896477632261890777884803986565746646978960924525662603645275155058150185445483509944374442236685793389354974780614866631246311906595238099550573653836532572360151572795850877262209762335299978530511524734589508628228153141905467809618266618518504472206446406905575467588592056499790835146781033565564764283496079026566415326996499932571320755222271817475111509421289826677626153888613013626753091599862531200432275839881507605583517780127012710275859310574223566377181890708316388942714474908450307732718408317380371693520218373245422395827386833158287885580933519370195002690280506147867156215915234320128761932548379962191521205933038178607951556547643462554056548629263878402121130822367465476775629298064900898263857705800655337920000885643615457444279669108845148214737742939751804202902394806145757294487198192547638057738726968194983110842424629812552414789213114877135843704093286638163796101860037697142848339119266153873387871831116176746196585502181218399175881299265578270167047335022139854326517383688451742888373856150572730724970691324706456556277723799038003715586334225147051074520232540695208901541881083950180489630014272951806432140236584907093606830078825366755397358172929186985129977299257482396903461778459898921531974106062342801044315283378114073636045191049416660515549839509769982105687102765581223029349072442779901266447799450129970243830130274729004011680655141081522671677254016020436103995208493281906307900373359754761632498559878046646627670706192749884412540929559774331544706886672952478940247291243719565062477630884321432390590130523831804149627839604593548858336705099387140063852548343938593400343232849454472452516206949390015791069188636684746372469576293364028627802071144384983475833982103070477426119036127475364364328215225937969569019492579120818164586830605340086885646497787218032144687441158183952739525726791394551382847147454822707834994260970880449599292394612045620568418690421935064039230856787599093253617380352091692297485849932063257565557924265213208033772180489470373231100476480371717253125052176565117539755285169266252111218033103091918371819420167914135723052239769213765897808709281585958160842263994638243175007843526540540459195649857013270868678128013445703020458114160675228102691697157084306129205759893149068874056253182932870422384884284431439956158396987602841981859643347797382206039563197343191361703702691676247652330343563458015257294589647307431674558287848484338872214626709927744524615341211444722328459918451924532951677255319826904963086068600729278868509904431788542109004566204488282966832401342331303299265217713249031610434514115973822874145588517305711896521207086169721101296513798472623698982856745004299314891305411664487043917939338453237695273302526774326100970335591838841382320667684217167218338443792464295161225743167668362130370184133385800277448551746733320101431589861785938608326510119056895246428868371579669803535147170481370526427963333109329747873684514307475427955096569704673221525105863768284598729721384391977640088279489007973763980472029270696735630964320930363150578243020429764758342412855262787996692596964386900784902890703334398149489446815796174844511823909909651410744463274719879427955296647713717369600117005493191421724526894052293683747499074763146281848729644429545887021158426548582285856102224819255095958388206285782712453825588013747774747220589185065814699498036275384842873063642468410272452082674614227749625131244077559513815818794927880102644374686375524744456277205730520463336680212605169860650604796284274980943102173053643570561649054892294631304444959895305213578216202435587489085025503685621935966969563699000257882490415847930320114847946653458306949880271871685323132857455905219843146896887218521788619287309505577240421405486248777964272598993000918646054081554229028780378294262009412003780274950300247293799197042002274830688351008066582134051545774860059240685558229348554238680079985933937636772614561020698152029619208783169543082772816364197983479555479749210592570090648899670358336166629580186635580170602364951708196595939200547227757371545758413680283901432448215863537908563819832720834232347437958745802504823859580711171841013672638656317745698613016392964640473879076679835023517181378978889654393806377732844315673763528355382108922159678682947820784675451475372921674965172474831807392237093522264441558739552293323899019869160094431233005883815113733273742827273686091347821003969766534227816297113080549318331893996160672812166223387661896193163466726881806039973637333108839295623000121854323999352023739258256378472946390006013939817318422196400594501744977309901006375592988713754731668352838638599473504754173287921744233572606523132219890303092661473416897987055162577786704253176063436929895911724416288869609838246170409106757022599591243181058041356283727728208218466709044692246884367961527100770102674727138647178726023818939214983732550555145687318664706507499469018752896339307158578920764398557079454717372606571900786423640399000873240574553716796327896640934075971046826469161450076698365101211096763898986949818270840274054470253418427829331396868206691691521081769987423311498255111735096536578389740513254827782989412492989165670040714522507594840345170952768331202550548023814180170503020913596121893553800143763318543335323241396089099163179733724731188716621787658230612274205684326978493475574890554750598066036285467546763119132907654208085123109984086219151175705474647203098426938149568920609408108787164704348080366568901082303005882352436482025421786253132955657194600074902984262802131417183673502763212976913233147625347151573441771325150595517401714433286073662971116460187453547654346239440144973702620246776823379330679622774668989614458356630161928275015174998320580458769357260503772705879890978765163426889922317195243331671394264145516261118298057606605190042138548370594856950883015874013249067810982938873208654662855830963484407226910954939515601268663654936077126436124319928387162610918474538584059201252842672830475647456382660965347348132559300241003389144640150299891867378975700658685495720021757567999456651652442588375783274472302854586074507709128948152918955758102615361919789889951401568033613399906990840196797040644453718704815673358088560465231716737757628766661207006906277946647472786108339954755073168188130756601752198031613009580161553480951793944568714941577306597989156019341336336986091124100369821402968610166905671185918817269025594376753290521567998369909987035978370322448077469661145358615749799007781095350184165390522291113417110810059765654150076438504848448493688004443884205064419588435747661893876510574545651791762509193494390574372142544237007328715671846432879350580875041974645546287517137666612328980081313329939385767351470395741159313638910906277397803160493365383654679911194972537246930983965459266278468257396125949123370334305804918318739166400927602063014253678159770239753865255834835356707132773683392508826088584885868194018747645612313174032624687443957281595750999764198964277544295883086555014971161412755630111184130927889487995466027879825599068764708011634947373741896454412848280987179583376023840518364018576035042341680905720490915791141367376250880685465196334570745855075765677409588680014668692039191791547181149455444926078341430872400336630044149005417370933662933807067921044766323362107298794821608640296150323837133371318718055897264717067463561628594145841244486100663522624813286372219651886912268623720618506837626708504945851241704990152248664289214109617181061117706195050131364834579982871178967603787822631952788383321799865209037996813236207785036738673868926731251734780876427319348720713863093004618967724747581160650392317699807012184707861912826202111253830390672685377753224884642194459159684870062528790545707344808169673385651181435026168545977848165428977133274642475002836597701777112571344435479398446892442380187571109647984818137062526272856924929440656956341315043668676968599065927702712051308919169944447964160618756390018602832923413746704483174307459767297565367747801472858424215495438240896292360909210224953912046392855314758605874154650606571387838623750695171389471090203196766698044107877381614299800785550176238956478659209134391406008959998264949030347292267646010704737848924335069548540973339158201694464352960837263219893722858286977195111473222851939773185082622102454354994478631261657707640773021747706856381123489628797178314896998292426436311177614027859670977563807354582270297437051779328814585823596069782811487391853998281519843087771058120956577228808623449151168776956477621915919482391430021258178052083438967758940307107032238375739662741896145976176168605411064628222953031561515026353132190700540680703917291892200415271503422257624974872159892259684043537239286129510260019201231079129962018439871405885054803551518003854618325739527368970446145361011879102639551184526380233060425514701624882707289102314899530154629287599738255340848674342531413301817879202860599365201813201426979324623317429565718407148154136411839990790629547942136818384392368816563747239336299950779188506972013891650919943999653251881376730648955912317110056762366058148214452351475417905636185821925461805334317937626566707135331100273009494266653038657180661332546767953500383633898573840848429691490773789030118124853364726373487054331383592198253846283455430101263992363460191672837711929403277222305775652587033527231271654328198294479276239165201026860443858543612005281410219563828974244316179024487935361947355792700977621865637941427897796315883758595781207883954393668707010135683979473304272714743948836150392555894928750533806251264534550949620756991480379684699579593766484843879001078991285896609637417330214121072304083405443523667581652200990264633666221659020168901814010176242452684741843125666927876686320551744804459320826628684775049562376184316158615883239679968122425959551291401213178619114348591805197387175033286762431990821031581136383974251345594018482456637159382286524502618030949371968218378537662680865892968417278976374401208866905992254036654839893063672740446511320801221301098942400526881043981571905285057287599711902930206663091771256105640037912903895403527242449847008743449557137965613800149628051589639155686161059871527781402730922116745134226583428832906156239433694464456949973573902276127647474815571362314670944268108690299358652110506658207340399484016066989438130210562038282437896971399081905922406755848460492691055805505541922412757048947354118361003410236831473303057742577647673123140837398280377718505997040838789171461685368931316412415228803628305284897315317750169650198153788372780434988464692786934916112541514278774743805813875299360220674717301637150908910561772786434257417595108489158818965552779885466830712279161194787241329780427054708306763326970954971954797960533034332563955233357185024341035678553642704554050516141766057582911285758162387431145160807878245623793356953293149840854127861859408827167787707535816749255102281102397780087191806314205772242896316418635377698224296781529764964622240819526711353892673983578152999470251818165392811248136004907618240043650895664846191891420296024060607181307725739383448638458210094790611989090373195174986921287757873497446892884492927693040469589859512294070626669320294030846919511322819957226228156978454406317164665049324030327280181598012896692281317453745695741149449465018303838906653918709986518951690650689332801137930686263013648027602345975824705527457551321232260531316691438496061566297959882439002759189773641908113629815767642044277733378419889661636843641373672339901131488476832055130446080847913908681650239674996659702045662913762202633329951470742985257142529365834637274155221191387204364023250090563578342970606397929858057577815953753383101473759893273718829558869314498531259990276754855188331349416960898951801197632925777450339880484229325314153700815273938304013522468606464479116470510888778420342727799113074951731809642246714479185971273370596281278824364504506069826042902846840430288057797589609720288924930006148483789565321215259336691234976842852271980218443968840591824165036695517895457554452973470341495936630713300414697693299317388438544585223516825518379523673752132859850537642352442523556391830591783894327619389524842070876899435068785324204910404494873127636638206632840663633707951392264949231607230082298224715460217703656305657833986509437219653709154697903165391198051587237468335522720132547036862090310740521283952225555588764971641733896495858507225280207297032788456621966306004735617354149683770119575343169164050862030538370479937428543377112372625943630062306727304999506858408182489042532755070287374133542060682177002424369770663641634267822878146020363807626043162262192601691266517523009196875738435267646993573901908174607208529580104351838589289973145866927241686956221224228841948962368242825923597458101418890553920470775979042064786646318956824361099911497604200020040829879873009018971332566685974526380050797187005050110778183158088467330446835893019166357501514213924814937873140614589559735783233835448479000748263599646119412605407168385730140510145865462113857693956364363074029802644928875395506606214201643284061616930318164038446134553035910125922644570847308088020336997934881038132169409583091146123990478982846607078383763941221479886178989717509564130085406049106648277814593748743737975065885301610995982573813321723950642867670052515252976340451691252315158748334018278669248201011686340372154149526864359155789563398028292618977038085486536625459439009338857396108326606832300741928653272102169991449992765120851484193248434141208924010276172654379991955253466701695426624640616960187028575550325519613445820408926901946819636919852048520330212369802040488013993338172354818632608426864550589869353329645318995982261692549300687566026681952224631200632494729417443661786334691338941176071975082178644260435464384706399450713061940044825400454815817354196008506689956944572683113094464962269919974526469710151237983384934545185861318193474209923035498051009846380178730192096883099349822529381219817240048817162940231181012259427288126963489965686591223774465218637384336326526368986691360420672918210721462557772531719796358653033856987657381852925356884678820241103267763846252615607477157024197237438986969258326219818074535680695295745233077022445468315680904130603835139697514066432657593096820665369960155463505114386363359538642228339719863537578513031670071710360425729944844087437617510054757465590438985961472040752334527001106062717392212654193947005415761697760736889275067114485988846979729929395652376187672247575918134533319096193187724098249753612662786730600823712340455377713688854194235760159009058083052240048955945657260361138580176734253260682463053537610046446443719149854012074003335481538424521815182272193432283094038541253076358646165903196973491814757962621024870502016309511250150114633175158447664844577011084463982917334998453194863116180544110214619720686895447398898710597762053551140125990608329766462293866552417672368983171941694041642973451543794181944525553414808887841509994855782140342197474187668571244655208050680468296835444646463104636346679558979937910716618433386944384991234033036677564785918883619189716549933403736705833445247061834028250258055561204639618746153079872671389261881371819781380063748712018241128451564153035922108518307340610275009567703874220289428007012441119220062041701654301267083948009126033259231810984045219199877239860372406067018875462637691421910800540550246893394008086412719492793951290182332240171708255497577638581213337029866088178131647639126962735432237089754173151814367174506755864959232715284457471035212920275084773606642602574220123660478905524919653741217665263854914355504983414755183953196182274540575721884263855637065788298220823694016855765449127610329885193234787053297179263194202000932133381627544126819363061756172018120048531716935604411454569297999561599127933086344421190704405902733726877452947321290010225327790646315463743984482031557643002860984062328546844869165508687651056722047436771106591436882441695014324936749807692330900504726626906808105152693024859726339969559892678085338477086321393910871613818786016950626306787949336940315490806745514122501175196397619536881401530895784696856252519705981433328811514220399881462068331895602757816350516728180187221373844193954606540839559047061198858952927781511571396928138708507124327283827774232150786011389646770602687937158742255063254524738591970749703690872060137145950156185914932406595801389441634644671428759978601543032475206825873429453724293764384519018151442976540389648662025838368445063078739160139616855110464548638463690226564748480862288578552730043921062719550728398298681663757061163873982663412453635216355272860681924197428913037339181577937899788391520988471519355862829239276048816759861519538314888996933253501417347511654441670422823131362403561467627798231294658996811016319595287070214065983908652845383687450879409823676312435499212924090280684797369056352747061928434179710637201852444289471387334745531624813910383836438760481724516496426559519083497381887426064764604918660823750355094603013422341938755781884172029435941424108272860353430309589159606497892813817001821732484591963190458279111538181810823393173686552012577177867354139973420212466969608393492366757179859235673943704762403939806762360340019206359841166577958040654440299381360182727018922030542249585569535329992572987862906290069636922651012005224812620401668958799840806916908757615476933582010667541846918476602650414497248763724045257592413961723795888103816961029778272008431334561680314737801122835256205308268314602505802871132235590068284447001026610732212901876779872881875506075698781261671290257858677768692107732200857458906384232843090861066184707183416086458252372971232584612897468560851143433875794973215141847112457300938671049611388027814177792569907053634218833568140302618660499149483775250492165860825615801221237988185932097615067325740754196037177650876579661583860687915884092568928163933580473246269125831930717101819092507250912158618236998512602349995598717725634841909395851833416879804720012468359414237025651926975561857143288491028716064270971069370682426241968895468503901630798083898002751841961194518959650249314870806462626371519724115786725498359701134149593043938306206931180240055105922612541366416180894117319528874452998852743440323087372812026579628400007894543625640528604073231452799296353484884625030327087383140233915287701213329871480155421659900433065764414446857279752948755070353109292452082452244479125688852173069818775565671698914147596354874696412163049333951612728111568611511539658522753583037251425586945314642268309833737445132010928975777951020598588107003863978314836686581585670519075204599742924301887736837606854423348333941985837074045675023388062814104268304918941616747409929902857929158677605571798818425671511136354422205678789984472114196395753775320648037087872692042423765703016672422042760456092396243763286233168802997695620162046031491948532351106870362870610252631231007189825613560037270594320801988940285372320394445002557370938994475074705934728734621157760758030421327415586269709377166864655327366978712152169488049166956991140084082816060413686478863160321586062616694838116826242977960065109268627239015923248869482589541203020051656554577176884131058409957775312790714865085866281846356340603571887409920546962136282792755866508675492376042075284921546663248783346491868592464172953666654542379094008428713695008245061340157697290331951628389699982714897862266459898418318739504857718249844319726649733588410230330430110542733358100535354946909173168010155937661844985560133094682765216673335649848492743252973530360631404032101767342602401588725930595742494574168028314709115766757972362673275895242182825722750659789341520047701456092462386494863591560492229028740000162435123716945909386345599299801460486709203056802781908460224372677376471204064644243859357535722495907141648926805878897611974941290710560061174512349288280365677057442522061222353599769330823213995598363572591246598065217915216043363009120985706166943103708574244129163022136621360210651289889049598982017276740264921921862440260156518644570570048248757329032988979627380935767081165671465736757565095886616332131312325271096201097663331871850988890281154189100612783121659855614400563699046927094468533200007287079113728741461375652558603284561794216949514077557041566678744761682274790020628840544706689598719806727352318875677205203438386892896354853054415680595458229890668753224254977340714804379418201469480871930694159802403390105549406499850312846809973492630846505132712872311412569621321225684054099675220638231868261896177882835999875870092076523399291477701145533537554629025307207508011298816784667306232013919551117907588469728091888328237559803631611225118315257450381599821021785816728568426207697394504423251761816173255958491878528067824341261830780343275583759238582806176889806564191186033361557481906976484690833710996711476818200534251304565416278520435856092567202123547118583448628836909137397722499537240392999543078363007322568725083381215655919215111362675742425710352506711956964934097954084588786034628117486700775894541802190796757051250547880531800878583729006310812464634206587189272925454031091572687988564848856698466500167894554889696788289064532068117606913243045414704553875289448248062164485910044295671640631655135170797286636708589166569115667727142742119729318544527617059494010034536426827007225200276191304052956905975144504451519069320453571285924388204377746489731463405878177112136074783312098593120910517963140962795904435366138439583127486751495158411041882305265314968351726623392052664719287219018288480969097079216731545533855715419739972643166583285559595558465764523537309452196225096939326366648505861639668138576857451682657592157100909099324988105896280791151078111223352977127847153555160892745409707179433119928372362908965078447311339861751106495053400837843001220911382967795799181371864127951138252378999145336864397423355363516215381305306228372075893450809831614681213079679548304871332281157603440847096288001775556847583140063912021545509977279978211481746505807605766002607878086969119848909569868040621483766995928725003739981763418532890353449262628155545162273201462213155340876322805013581245515555788613711170714406912786908768200809055933113906850252242296670545000832091028889347498068663026925189858278862701289980305745092286120000491675691686710617226248357796373035575807925449668354994117885644551202939844066849077048809998105415186785623600622091101243907416861245631057556705146131615283080902128266080654642176898451920382924672870960056812957379321528841738804432214234648379109921320512839468705373371035674549138661739804777590717772777073460850021518349104204223594128624313979440289565073841359966501599909292761794554434007984850423669649919761574757193089138351448454370690316697939546916620650579533024752797857093994050550088346740179578056126073274031477797136501558093175182599894630619750940874838837874531352251918760095323882387466910232503475776517943258993337459533729659250114432488961360293754214440202967573604456185347265924089100107971408165619047570614648354152064933303540380558400123832927746126089457108577019535053758452634801060003237008763784102198025646159943761484767603942497406831992005094943370329250742484159194536971401384161917742347032220104510930743630362082979091750766046387405786170345790515864989102713984335224705257287799944084797033192349674851780772193013926629927412838268864632744129642170946190130121502285578655828707805582634119135519562677148997364791233359779847521038233053015757605207929324654697791220581787079932350445649989861542904017041047885006739940169246622474612464219086795644491158913048454278033794437728255910542894445227053866073713224631171445383139605714173390238120155059045149455076277194603147723044150062460886330012678159032939501551317843485030451325423289782647690092424590958332081246311174996596291258383451346417762924630836824997240898069985233564533061740053198379551040155157662361928079558780426425501243369574259095408030520222452822805471083508097642319436291570409470235701745716951267320082358731201187331656540830833744938087288305090673835106602148016935522209340735670194871830787217668416404220097272913843431069952061658548024919147734972418375447942000093866715265714859132276321503279748301779664130694371932947775288432949587937482885079113393986656987273052311526087590503196605238817452116133948109001022862101522416603042815871854026519707091867690156481114542565229088637427461493211374959662944375255159555393664844926140538944693477410904682234890665397018484334347561417544124046481703845149325520914275515923927332127929301575930937432244651978155107416782528578795926747900530017891112409317103212082325974497711960367984429947669707472799901558285221743870935692343938820010944039923565999062935845864383895595676462648661629494513776542802540078215010196785169394389084079651701550848447625270220012762012234711989926566018138582987545795360800798483085208004969866980011686011056217866430624319322403372145313648680918082655751507857548758502664663538315281133223414193613969924632106173492001042861084010017966731186815392912464313020322795477435098380475037724111138718804549469740620039743203993845006158241215634727064484297918403884625671558410966127651074490486702909855262238168798973597071368646926854826296185108844478128159453357580009325120103617383837595308406097767054317510141402638861701482433147012545092027414478128216057376020245174681968231181423237470789972701200589738722965335319429490388682617588163269063810231730555612494288449569501446591531625301060438047372970887954130550744847169873032197551329081380252229859775765220305888204756600961902322026335405165951694808604832058332599638155715458436427946441192133481676881842024258346145064786705595360510780496017909228681592475887993703388643390622423624131648421154630971073300995747490106028896837446104599491009075618187016187666058395625085466511787650239553924993530767811106656057308767510617433344237183871651359787452721810181357202746894124600367033223400287170911171657681306124430830726741282149942513948820386651175147043406125318512927540976074281610625495188925205856692234803958913452407427244778187329918501746589721679077625676312939766471907550601073051858500440248819514045089084379674961721140547280791200881255819427295612497492986600094922680478239403509575806684978619703826385132463372633278620601297803435624767624288725586403591199390110229133236992041954362672377897543579722929027517064433882081712158044527266517199628255779243263913812108117497337720004449518063328156688609583518301623930387726200015627918248797653161009979481055462852525340915430129019767555484024950925811451147610479617665555008500671941042225983295868716190491639554614602198196508820041167551177101134230635077699763121610919082065245602349437814087092612530490177457622798162260826718790634746172454023905050591189918048795959367851430833243930864378225448677208563108276904309502471437797340678732461527529987410611133989190658749064519233841972645208515136713837015228184431242299217830870558830890005900714498898603369823731033393401978688262740442411359538265838405335992867771260447040100002724273108711039149912963206337951128055235495830003963714950459060680631476259626576273014204446808360301002671015109284469382340033254146410097952427074035766090765070224287586587903385242382114124937144776333802419714217123170510558588421043487146758940961817271210273147235597005036275226995802815290276841308053417287017427850836470450721099533111451783026571711716033218186211160184223605957440210107142227877880716102124850674783141475426614160473700987288091568050648949346036876773266609060398355053718764060171599601355370448153742414661929837099165591619878051616457557140587975416299874021923931114998078831852428089002835313049712830750662098006978431693094389844877594860475887987885242347269097207661104986821238913586430416150064204655544621337847840783214903930365421618495387437287275721163353806277101994678256023794627695993677455111501316532131522636666940913791752725106299122168524278080554614284004110319662157513985295878705766123569395319324511130170433190955164485961700768702787792889170942373565674416233369733470287841120075654092938970176679506305911052530984327888635892776703871973439727178270440560978753329367149775255863984995841638850653955647436785911477600449029174425573467854588810412211012819983681242009192886532776312817843815568921847056749284257729466931786441078590052872499252946435214496282233818025495512242543828753839216367007932973740071749997290720357680398532986811223760962712636565839899348930244817364166301095003927392689894369704444083881492577852661203601314858315607621562259554013562341219574527517987026169640174572183691192444389387835284855615179204766985970403599785701141000098071553821526066844939633794748974233797659951213872945628779657224168620954431850906232045379024750624829903559965716973852741463265390096684252950797020125233841747012606878832606606710076957353054348780239072870965096621538938451929650159134885759638125621907369595891579284140246029776361081381727317589788551442944112953623632398231827948915811008848801998726907289742520581466044961297238553099466296539563554917200422845765597965973677248287453910078673510122587726199067299102674329944242128686956954913548743329596760010277170919210639544134974367133248634091210241057643124589600074699178622244317906148476462423198364373885450317149903611115610650442311161699652734736704184420014693738353403476585108596109552585680556372390336144908473329237966680205136651053170105446126291662509607604075762647226727719876125055368576892922323999468036939950164770947316903639741716109805201778187264027689676492671421746534087663215977104086037922734932700649986320659483971900983473137777349067678307811635204625811786459030643082797603506855659582427309359345644331618825707486635267925264624855271840440715123283789660819652344050866541092289151269897931652233267833528149481339908737744849055983851947330117589326751193885107717642104454356134094550164569887938419689293567243054330974447493988085020315604029701407265349211453866722678208910595974007553948887180514600926338568521603477725698503685697860672939263105950473582687777480340113436349929236780450716982695230743782932686119845879288565809381362478973607960197705547908868933107040669609168446732847166127207251218929617919192972549077603830189891851804778967335714174875787678776046251347914515526744869882817933366125991441078591278398928022638743131253349377867437285580268020756936271043534272751622796643233991766616452437686460153814806086521358466871788330822976498655308951851411116825818195846700441261238120732331349825756173921029733730107168812755947523729489900988198651881904059457945245042674974524499732530953533241134668126564479874770244637052812694745309466068207856153934216601196303806490402430959727242310570236428073099769476069205935939788903031725063433693367973279064290086185709878075528122216035442216925513105958846412451323077730614871825564061487927724796031788705630963443469299595764155629322878053174086253406091701312374398495251360413834946918072936779882341404992468693323863093654140391704734414069507134995552317056174835021626064412528890325810321599870125445405951461007015601516018240743394794969311815177073478369598040041319858701339266173907659063951644687354548256016680980391158923029483167010036051643682049988886161682102981721209045628740712790549117350954039571574040407402295254351940087291058707381648485330817655946412403304063696212650056407594467308388828917093572857690914191432309496919465000302719533740492854027350769525775347727058085770905693900082662017113259080954833693391210435233033815582759047576409061255437449504622855619468052665799510372998870104486264753233579466645803767608454304216538276418629101633414456195000099657263662051614554852906361448192384889139509948848621786571958549018787655758282753673033878604737628556707540935145175001353478306379790174335735255637378756241575741638288086104029939777568279053692506695881698604891327360611428303313029673933939444490579841710872888358979969195405543030385190398665801686858192368492294514768675644356694942672211679162860389810683925674646102400729252351223633391646300700960679772033792650903530179006667961137157867206868757264426935231585173227214798770190787888361093253565079855531734237107316671984233847257743923408910493836661209302741435189484452338247636638564096319532161838322731605097613429560410825622998112418677682163576703300555748058660339029508651284594736048589251995547496214056409318666894366187111398297704585511498565754615915486842795301271327504815154711761385649134378225420825218206751047237647346834676729083856879339200881022142268085700779828316388705774295180825717232327815527844958038824598617415540305562188257226175676229413826799822801807436004572677901302582799195444053553779177184074428919835641224868851420444879360585819145158895416163521374875134028291678092561655881697027104249434273408318700218347301290745073002323600716619261050659881582490037879443486404898268012068712346542267568230857093737560502313663643484770861026113742097074343129912549490607738840453225288924998602331328446814564759268510182567663221278162354033889503615072411258438747958752439183121862581201608565079305710458254404708623490477339020235903447273848184488593258480162993341321632374276238800900062895209752339654167633909074787818776891989123508751185258083390466953163002467126306555983225773170668063056804430062183322172763516874228720832339880427861642105616468485094149190305911867947064540914033451625107974251716161677033814314246291719890673059846148959395955628235916819938481298613120939493628955447321792110804177798866543863711589635724644342335050227554686962153579161175396598240061937430034623839243180055838287033704731280864823599464593655780434667864033940154690699913965479461040975335760774585847335125197281471458711718068121762444262568951261707934559733430789173456679485260525964458650225738901929834839580376013700862739784542242226178727008792428855013836808959426005178212999971698212551204128129210161832421607179625475733915490675812565387667315960146739686066426005612483215179521233274325972073425115637976941899440207313857585353003988001352751230054884432884917378070837672661841541760801605369168809847986282971768557031926632759298891284720114104259629495712790403560131980169864730773573153845244540762884812290146135544859296079125324734693093932446130296804055913881234311921659563310099689372073060329078203020992394112067585038790378556668023555653826691128326089360085455433799184853695284242619158709691041905593547135565691943773519172714537475220973637352340157639767279393498357077656170999727360599384291223993642046921049460769467565819219397021019533255934457754970627323166416372647533501400546914284394618554037519078090717982090241373264041237045406675573642418385453446874791645432553959312558023179838752477588347638168402776335619114840737446723091304146852526175492578403603710416168386777596704622193499083561648299487572238701144592737564147978463968044172497308887972531199521700886828487665025714817239954677613741244842537675888011302580484436065407681138334632282564581310146861502023015531081917380417591909263432798333180936098788933597012334318494553307245949620462904185377214459558713559973761222756439639700350885675328399115013888920250213586661108089840358892834657410254269206734851377746905364898079242208828809005931034515196742362866382538773984431679865307791763217028743174797256532941479512992559880283409259468572718002017016087082142788626702803999860444430023653238483425952244501705576292983360866956137452211893808715180135132394515034634800166849849800993485856502277933095460937233517262944474383831475690804976426455798626714119804299551487320256611189100994826811349320322604816771256285889765687068383587709715172111269419250764249827921195045681386340668810044833211153513647978887876241388945670193401794672721769204042171534232379225399022856345803988922901100661192828496856972685345269064451759992078506720553115320796816634049431600850392255110843240622025984106693742634373066739031944952185484399499637424421740581659511933172412908305050723453962537621449031213138182973322281156800384804332450854193495341651061046782459458532137633026801000765619623266325907909702324680886796517673202845833586886202525656683201477655432750989317084771420425127662975204414349619893115344814651139206333717899183966955120489113448075095536114478505402551049889327064762620931755650280295748028263103586014734540916943903770407866201170234035178590325990342400309524104617203791093828972871753674949416434630803179239628785848788878592121881282185442550716777473276553747446796754670019684369107227028321727315858151630950618699163512295017057268990219552641637840507634534025293825184652508644823436394190323717499837127065163968354763916082765927768280143437858048643726729559495657528141594299148033983963187783989402928243697825098508619189724337050636643042104349818688822393935780126636493272157705304817867680251322863800089574477790138750058818865304905233305375629512122226895427043449801323030399582710295198898630576760500429865632324041649728724032408825037148958448294569553925351418945768231828059550766618012311998831696948019398376733342310895734853430393830932919419350487302319994883662080619587573538687470975433856288460630722711835286824864545933884188080266884252007308127478006502028860120779799924736756279453892037248313217861676245138963625369886401395660199190005269049292595354032572649243451286667730147037521137702093894667827693415232350434879945730974547951620383145986229045606464689119613304881584759124135012216684823780479225886136574101390228945055756135660563867179415771910813191538717992886067343316818482988195283218445764511114779448972730118666896126503468010447928252853733477612553826740340488688704938510350224408346656003377856358645447084493808873227863574344081425721937351462996217393346788376172719119283251249756913320364868585119765990705095649459335137186383709647859698693215597091136131777354117497853161447334885311178199587601151063928303321748619944655561494407040082310026690525884683386265798131292028714709464773773000840427648568690727636827723072103053354394759234269084025322855344412187406016116378382905373381849746935836316666518570668483882803232963470453065362130599477354556808349167548730064053272917161742464602555681724899017849896872434373897016229106928237894391649714596170836024700738469047318639176281595901483326142009785961408331932099362053173239548337129350438202922275700365725382153156348233280664590272280857312998454476098181086426749835187441622926446495823451152005702761796931105871292583336488641679266732424309349171508249763077301490634342048505190807480031478068290912111184299787523289845963478684776819683068962504449164704438053961252269917149487801438020880761856659173370317101061664537459425984019889217373367976017046899438293144144206270188092674431756537942655811291823416323001057869423225778807730165169245632377804751341907582996888804798473557490612285834343765169948711825211803601992196411545976482563987903488967762642954294810791897737159309321865910408187506943759359345454017543747485606891927982242283898872605720492821746247478013545634290156304096461232256389406433839079844002148122933772122033901346005943696774738500143922580223660139499309016462988824036273111081364274468098635195015137139034721742265795875738388654223454121820215675314271932524169819065433838510204110831075153678983399899814243658755470979845027732962871115283154281746742900478611991460599992638861047379777988230111960271855720168149916409440434853951440384450192149937755102033736837327136183364538545910993754401754529861870864952232781532185960996319529010482253706738816554528168982986412202073845732279470272746115170865459537193554963882467290996445578518276592661388313492421954851381291517344194903452943885747997346167805738882962790881000307280935318929814957665556927271980234499445737405509430427996157178796196143885795054200385466086642329482011521750709674041580242550314258633715875639341633465153016649785651147493135566968066763091531006093052885503700153337110784890791024937006119081354671046922204898340840649701447546055477443514081880817375003729280160354072736341197327840948508541541525216927549247575682617844135126285100683066346321778203377829856732161339208705318086295572588575168084512081938897635233232144669724302488079994039508258009135226812712441841944664381809543803475796889001326476866983313297069208396258939663618693632112238068752747246308273985736010192998782335438817708718904612008743580356203225521615743276301997574238838356424852420602693464902857820638175179923431268401267595345871141638943876145489071062323440173972746545306724998191913883854164127057054655558119212409109091678317791887338471469731313780141659679249168794596446792866060328024560179720796964744337187064281916414244337450843729007251139508104556281862492281647507546059455027823976837597347681500739816977522630726740047702319174107966678217597721706965780866922340546431840196773480608447218072269432332512704707624274102472535107738959247620033790415239104557427596668366042690092117807165006074234176928988411243060091704064364082195106651687338674542386512053419951762967414114989258103431084718421375392520418583824511933631579530967101442590036519046501255577157261496574819804388904367974966868377046871352909069535820420133615641691774259732826994584867956400227662064884002772791572562114789703142595871359828607644959948262750884045587523512953874548138751461768046253622829780785687369793159971581020270698630910877577131339247463013171179109549002515875391417189841764016885036737504083449033240100156252517165159713642681599465199191411271571228536063278154489698501211351501049757086813867667846596066237809909645542512346296612267296394273748645862602425115630345472437820682273315685520248584378923840406976789700960010479574297309516287006056209139219694603020412010909671303611914326999326588271544789919448161278258939555085871231372695376970203477356823726379530663072812694250539536234258646651554156642898069153109659313296596611866825209029709790391077631396843317418121917503787040682880994197731872646163208611187906133237386560603795591772238269803651957868029551197660896194191484561150331979114294184254748413636148459604658806275544790805692798731323523601297207770174717480989238595548092023370300986780634791141103475259747231510176529411613666257574613611215467884698759502270961363735775955752975697013607922853713663123010411138846673587552453823961423269073155940693520598382704886450706483506602968154620742683677210824998255970123798180583718513869481722068088033512210269905739963516253548587324111476824656719643581590032173361995446903958722241910406371945525033388122846720222391953657381436916053826989747908283549263816341013166240108979520908172433664060631841071603450281179210182582461944770304176095310160762472401326391238111145719816848088552446107035874840972425079821138378859108495753507196300343352377935736995764270212207250873440885238334297117701798256933733817374867579919736194486804468134862201340514762057538999662290485430123959344136387117887268262840339843748974362184339287491383160975742931575437567643131989373553108128503318912511163706992900288541928538328698732751076516388451617859436541538681430960213114155100129846292611506741486325829436861388565349455683844826554433665777552961233420645456850183676541035329493583385562063200990068318231384688051415020032549495176938295070625296415136629310647154286449472353651325564094886342204143326265951587054085846758886188958472439828421526505105910029584307012281621492473806251849617155446242489939754808116301539956324253844014501204022364604096687538566048104997561119563025092442377301222983340507867686691226026432146160778207894487574772295269702772925383779078921271933060980398883336962422330200234175675629932361922937925226881103619963309503693859193654094054030372394745307942446660220114174569129353413697094310884497658460558910493941054614934497285533921611211397664821605743424951418960514261400209818866143730444269950082908513129389832134112840742703075268189712485133114525051698542752286841348038588379945071516498628937034112594554082763184029417646683725237155547133973355753371710641593236282937127181307440772355067329867204478378758965046351602085183736208559672606380334154924966283508951894020642979373435325881729832812147503846149676032758998831568481702928432890616111722634819667669894722886540613032976058375055769566874872391521582789151822210626548298136268139615188111423933473467961181795240619889347086153810051314499714355701010544297810687396783293125397217838776753570082135704389871944848716281761006992709519506857831458368722332346508946596556174455420479452503246499931847282291896166360876649648447483993351772297448141767551962524765751433612902455271520491720788240089124780131839922342811268439621053718621819561862359206020993037522401951152211997518926597315357152188285409389701065448066458580083088535020125176657741322160815588497097601864417259261590953500393255817402531626488554738128906549484760192261018112066745248250926466762129348445263514924161033165052687713630090929812163735699269112909794582262471029043245254122048896857849160564104112319303880340494729474043909392009219285799107231986640291392233394851847367364321819877376433931298449240070657479985092124361388504327747640734980129656825517621798827043736690859525978035150384330047677204363567236024271845527823089228381229651286732578847909764927842649259760454231420027413983766620127547538896211966593713976419175382619526887414897936675912501602798394642220907772331525382604444932837574734700540642175141459973737659150354065594644893766581788701519147962402098219438125341320019061915839169017730184731931986210793863327466296752355964923314048279154652064777704559153323711884818921485283117120194133817827956199650369255233893828038138722073662989669300627939805276844953222802775045769918090295609220637981244471388925339783642404870455171140298727746539346606649064247741620968506892507459049654979513458093337084325156375124158396831120752797900032267604322631112520488143901476088613660155896156077011644025596304913649133423069040915135226148688270204014875707830086908858695170827614562254189799319634334610537341230213225853581824328441572679111217009025517405764626051664537664879366622155339625006496095171578093988678575345423049672597068555224723828270904696775027437152120146294611353488733474674246560039178537813314735632172463427917999438414892338547445705095584437241779799734091799342763228198681535775150812393500555706367909818057365772851991839350591475098389074438186758439701494949540553042313096138072025209182735633483001170419689268202221345789096144408004982086442721826662203956578518107177224775708029504798873367718159621858937032257394190871782691023026716203937038026778468957107638981145084259192338770311324386791857736473930626893154518763948157443341716765403504891874523590566952472190161773225089925904209723682554106154099753282884334244130763556729691657557034348012200087849729613408969942613769311114840657133269627638420342540484116900450560176989265173317120119362085357558554350935518661429040072908587648397892997178803452045127245584560666853891201508531643748679012695465316026194529939636831059365779124795125027995042424190139459513082091805522066409302294502814601789678811847803221993666386180372307436285943549723606284196980862884714798795820487080482954659835896392999748527660244297255110091599128960452082333311579743121080412291265031134230370280412477227334852890753300691623532388556677576571142089692255633481593210479846014192278386536159231204024244188860218098382347951072981136398942898214096602905648640267133435741606057738432223949262622108387788826747169365815776437970748482495600235633566987844554492718301530412245133510839288960181862999560713789389697594118021078939307437206995498065605366215146468850168927398488087020937811159514280599161113040804016266466232551389111335891580070301673133027372221608122716473954010475702523253272758048814087552976348155616381261320758330513722262094760467271250231808303392561463380805415444940704555201647179244282835864634771279526125555914757997177526076468635383870339766532692988819321550168650420994641354925531868573324160289927470090472071851229936285653692998777443588970334672873511793973086055373274253634079337064018885763040484566075212650887219926110657330397902676697634142946085299065428263335249494628354881741857898765840358594855174088814050798834992148097018321579738748026576824337543623840077064583257118994864115036267737558548411158446117374156185586192447101706336181765947877166761478095091532314667967501151861271181785657747691019049651646104850883329778791906217495672354643486004364430117944436936739800096428060365872706879207688299951417242319536306168722229858322580164302778854384041995067828931297655645825245662420251952030524238513142996421130244579329748347618757367321878314070510564016518730754681406460729643564953789347023548588037117825252458978391440875680598082264585627727946524546804894481410023429767535388095333912408224113862746919530961488770561074643591505876965961089355961451291015873572222275812742721017399373466106518576643105956186756769735790528072348927828525065675229171625359461935556280887936472648179021823357607799718564220236073621684838599126293642635409132538156699596055497374016513527334279373663220090000903272695467673454545495567175718707451291228227935411127254624114322403172727152203982822602524171259558624480078242643290618920363320722226497966985136096475955942913553301245381136954962071451363135358073132442030392706071990427728179466411228645357997009500865651577884857662904088009584053168242973814242154810581708082736907061937684078508524126183516738977148948175055746789538379092840941318530368460280240887290115693708563642736826607436932674412650126342434142136804868692024631486544791823041769244398289799030403929601180387482112915399790677015496998970931446358716827239797604778986986584045955680142957574549958383086589232506577975890652973737061620515414306107534850688669184403929433096452222194991743010474103864260273277829297660927767501927795691726779071656361559378001180864701989813789159021388014509499851218370584557066836720335804983565495330412306515568530252113530516470047362572145969655471137954233595899735223436042619307789025693653806022186311755924951691902457621073776282052574169109269919160440236365997067599791380320982611892962833008244309354178987676212089324873172393698202582675046474952258398825363859932699432369311375422332890021567889999586543919669456480528983873353538627023715970521098001148678684928199138823806399386032936747173262387490859739843120568115354201256415380704739109858574720321463798335478834536531692085707183521085327076577712652839982939645257141145478884041205116027108983289481756069604073369640231427164417298613897465478293677098612310051372804449244181725486460898078778176496085855347512946628580427553501250327791318932573483154168263783604693371743661609622695983846038141294323349787153795114292464852469830780912025586538296637742443756590692019468482105097124080380610042105836619621430758148668178115864419620217180909844582694700221511735009076808724104020619451212262647990741066511241604416031453697258937036339958555974520847322742082719795121225244754885018718990375442264634809097679264582011937024930334089459737060221782749145389955583919359844898728356647002385926150414911860246215181869805182353445815369169270403966818832961233978141423785870875618948039488514114152385934974503527452432261475588221023864175238310768026895820818143926499097038278716964710902904148746184723598007066032922216800444510198692887856194159248807713365614912311059069736597892938917677993053679197973137555743769507016136356132966602817459106912403705975444930645027933541526601481223337427677782879637388339133440908251290906329299884220370734724764124251883880816032215783241731569907088547329296061729879670468023832591863282851754219435724907794076086411497882512457793858323721829511762820087089452602578133194472294659131455662177540363944699002312245573184542330666073512194818151429297040995917177831264307470961211648817269299734986309980054797805781836173267014196803611148607299175453163501123833055812023127734729316498557550613714754229522196513878182296075551309789665122295422152913821095528655693835132160494000818593744660256476708772146105090533890825747061826941439634147539141595535132747150774771465946429175427639639052798343887262973514005661084300561792648559491817684107953140337226837990594049596259328607672148347766691202557478387000039723124412166364672706285043714488069691915021227944327955503683909212202307463187218609840073260020100251056554007836661714485247181101583576276050654024535981103906006072546939917770162551627436648774641395346336239210046325265202533013641812696120302746339253389683279869120406637527742467977956497680537842594250451465063827157704505946890120382534150166872184623974732445873693343829594036528296214019429120756595671526316341048276900063183556972373114778887309272171183811268070160164559245104726189315278654038227029585841776860714983839671271809626889411686861510694539354203771469202432362696206673381705786841725258854779152596400239318361998118713714686319400909045985130666933453446320450535663553453513215407253948912861365977305580325599684116432982596222658790394465001681322385832210379100869047418618159795428462169113236076096630154699621361323703732742172177238801170903480721967643649942425563398274544820180217602987187389746502784416708230059016092099512828836371606020752942481158225754330793707991927775918521832878679564433890934007749521742636337728602185331767130047434238927283558254434398878739568679070776329988726786119477141572343330679852630193083469262687836107135772868008680651744159174012501736298957373870896197412705471331443614519136947290353401263925674145402871977582420186701427154032869611244994175840186260174935312190224956797301057472367900643697719364242350710666739383729815951344201795847095042101523111165966039318255666554787608645949436853637304887865275222455285531772144702988118382829034639468830325340087546710770418559528099740808611082541878893711670985822006315355777935326379806693990527205634177194964273734720458261738657923807676185778290023242192446901376589075607125866685197318638992732772519880545272834877010045198001612623869360389583753553433131186637916550111179184751097996048505828011700659165802712296286153662459623250845398520801531095087598440640339196191730366221970364394975636675140315586404681203838229762521830612413049338556927482937191548673953033999623327790492088153069531663350096841680098249144566726067825252003688149197177423808838444481384855675334758931275477077930682061190425264762877923902950709271186247400279792572529836496997323056154229715914016138425490819160586857318244462500309591688943887365112723627592298877779838728727981151331462937764103934004553082068518493861695562781771523774695341520295197884046594662960339969394066631408994195127658853118219507221113081112223789641969864409310183532952901052249746169771330845445253392838568321992023344956624538702644651052174155417564858973253378375633308516775919178326915287930669955286837628215474566849546951708685330740450141948465547568992951418239747832399215122334300893745406154160286359548500642825871229820625271921190452150218187623503635413187675121099691812230001008052011753814719444092650017084305761614002349740260109611703549020799891029789731208931651833141304554999333418366500176157507749723972407208077491641267922409910631659987418239793063851617467426811794240253075307061247533425643272065086608907374893841442982868584909235551972639714123352222394603573240711758257769971847783903223611324016140553259739366170155474761885250592641255797352176645378723313709593970120215543813539311653361970066627845876627974347007820389552005395483432392686318211478139893391936381520540814741259787031013258543786827060811485248283827910993737341995331332114554956545004203432019520490131391972021346658738008251280255950916052572577715212599248250774187299862921548749383594928098591601191538955015429513788095909396134757146609448216619780587478306142548660671830075528220823066318978813239218723417328173104331325522941816869612915754339026779779751300051693750057711511150105924093456517751278941753864891364282429239192305123760317339450557502053703684336843607837866779695945198464255239433854103427578537320396322897584456246951125027637982810911076865709568972010649392376539430333261941587273257374124128315466229841603255931010108127767439248165078029902768883691373051064283096409884332773141380045460974764231292138484710906314321306392236478352741875713375652902649393553337172264621171160838769208597861421606723773948591437057418464642816967159775029261006369151033463590034812299123074943606127745847675707225432093877630579983190011425011516656752570834439831663772854251362758173735913483403115880427395538302852431431523558123039594128059218434956432571681052813012503372513325649207069314912450486578973184931441248073389035772036566186680466064789927746062638442382755787759152340277865325610782908390366817039009431920483153165056151947313713562246705598708163986899204794604779132999729052191620964621495380050365660302195855422270435751897317621247198793565468538904767446554832880689825258309200799845249154902776968841017689618210161086337250450195974309478268924878649160719352648068706417067480669691002367864701460935180828644993874993906311774250712250438886348351633864508952867738634175656806635081362163132111924020740179219286971341276323361869553077725528024391323477136436639162900288815021313747801011827856724453496633203919537037364014245273970268947621017966399950146902497629242130328802748957944737619105383245209571804777256994106227701500011287433125438913179121539760542158393520812049991324612557061540625601730938788776541167071334494013202844311103965356093794426559376217885164658090391236272197467252130839098226488149310358322973152025969582646636677273904525819224008846567311845798804603323207692745584373163358741134767224622136905007605648537900308030742791352269748480511206929101910768588122970678284682308267156757650657192467887839851463046090553807753676847547264424237362447574653826290201253236501203603734952739390318987348154427390046363320296209089452639779014136942309076044119615778187853047689429514296326274518813283270014516315587352085079507010912786245187175951842609956007642499694305735011998836760166269799953398431460285888546087178296982868580271353004892135458501861072506691830969871248001213761856336006452143072214599026693381051161670701419606858512569498571535989176326074633813748960732294513963562782099765396710480287741206178905290344184253341150395998537432382307863959398445892817760938785915106952371549851330548918897373603436881886815482052151202357859818244309066379981090432582203196708564746354684439250872285681860254885971502538917490047817392172131058950132078536238554825365488980095590910181358221056897236779878352007227609053533371264565694623767983092994748456077473393782971771515687446103927801420408396138170630214827209278642134587757061747142544641719461432922157850979560910416673382391747923073385967539795517557825105342772176267527640539506975508106838506411587521296408811247480753942385543731998650079559062258962470656565916132903992965344431427200512883929171021100443431566899226920693449364990626387446073447770917793732889247381662957503792938638193166339648306273709375864238727845556236419318451053414857616485943918466702853606670969207490694142958678860375753461545702129950544592018715121780279789707966090186433889197362643627142198947659299857406102127224426611435363926715374536435342160729979038321980323180660712529398279443320216365316535655290479849306746254957606046457993581481839838152935548109819076243026829218333191315998710531433308292789307955093295805293521438174292528797712989447697528339129140519092144377126964219446658222412009654606551092114283471854774888760792674857664724938437427935336868758565881732740432277060757056151236329799265688432509255472684418859730048166138793866105438236021643714011904465177115197911327474067875895253918954753506748158302129467612821147383689611379551388210648862975911787999287095243748743690624121638445718020655020317186645928388885806875970708337782375858554243413250652396776086564685338297182281295869803914418948129148992969468683239280271796602676735157566327407742909566592925834183294973627012426695605722233392319637257974815293493262558544682515414342833925364039939231086195425320819202915775070195734531177496934820724107609136212045531571059703177799484376071129124663363039421196170807942198414761432337807094468907346881188791842118184904374429954066038439669772057342763624710414028218240890580717036885779277085887405662552750249547089242729613959155201097257449670779040095628356774440156190025311810916583371042898504110221047200104259546127431141239888867852502726834022292652877610171268432448343907478755832529974690009968517353872420712796936296439426401306773434639974615452849978508215783542987668129447227964656589221938503916356210150595695344582428479766560927281362613337787187235241548742250122063513208679691080792199583889225967405920697466123160866111766229686348818949555255668673963859606485470432423563479608673414944386743118172984612398808852433088106840388364162889362167559079506781616832898216300928588378135988003854008994464450738537833083648856107876692772602206408108967528222528010371871084139097555622323897099481090697725255253048193346366904224678512577426540460607845680235470239381484710813269277403012828534334455397981163511737761809879024692967764601621563528780763563844853325752141075212564609500135987273501699990238957847826496886384551621387172110660934807427402589421125993701723427093753298932463432723444650377254260259869507306384519968298519446594189344488791746502081065474190645679994303639162838502203673170906513135593569651527967481986175425891585137365723299397667258649452799019195456842525546747825798009531053772765882329374069135901644224552866083448833784098408733308557701937260693954396783611755076911331830773984890998202929123916632408633167398206853934885164468162929774934756908194478935357569931807460659961359577915756915523888384919760713795939380672915969366765301743333486693364133335298191588144543289160359703896294104945635388943844522492659881784656310146128474805405831103720003695776785668407651926650934012420655476914700435418518554163541354219640977738409188803070281378704205594592565535490936955310720360621054215183268840554210202509093776038697287705929226274332561036770046875747891405613692356929257380478968417893519910155084261998191658914386044498466746890984505263389965453663415144417605339495445787136634880726333990149469091478207439036169151756526286352491052579184705119472532717679546302124305468742274920511789648926444679673285087291082096782731138244848787463200546338113793401273916404988493178261119131870943609594671074809484394366180132287701395892796782351083279626967742041103788149949491523478716059854523246002117144291063064545159715865208685674554252768431524448230610189683031975693427502087804254271340348166423285170617436673666278307015681748663025405060162123498689403878418176951520155808823250870958749123400887151100969884129394632349956296623918196528180131729415711329255180188970394118176581961220754279720192646221403848453494795529338255659519601212975789719751500044901974947941919347728376765531230535615335338681039708030422036771736285160220114597275369406784417526229887490245352353229653760874311542040496896660597317551754433593519031025390610362964192392415942015834288185116350686832790555027812502879436089389981303238786172319798658819802404357199470341367726766917449376231093019070534698817577638016084408721068970484757666442311343273280367196797087174248990828899050322920167742380574856293568979777678153803113354131540094176808893772134080267905047818498472510960048700684795368113138298381212057142976253344617621426614900206096390338702261185737033555970810324902983522788982608675254417595144444934156878624975829823748975169956121894865528558207924244399240479954320586749804586222219746886735970261346659760317261651465340678088388465900118763288931577297646840484314091420213844036625898840802888407485235612696824399094939973265300586033622407806308769453197222078385557271968369509139059428862546410206844058982309893486307693250296137945681296316023750202574527468163084269783368444556523015629083801896157132973682104138339436926655785122528342139539133039793886679154502734407835678809173093739782606901281450643812946961776226411708397921758028922776192457347670752038638227836733783587287050626282524565053697956917927440972777877443483009668739341075739105065109736726003340016096687733778016648567018295820284855149564329901243426909370957121402106536246111200559380490253790693739109706891688035837312481391417192065197326946352995765378141982785163612238636975026889943925160057906138247289773449280055350382124328275947288046543302353932867008474741154197270857631523181530187705690050339381660239145141123936347802143636240004762264729357475296993644918374177015238046234263828811220041122638537155123074596751738489491139878872423033910217796317904143216868431122604002062175541206102791621881787369022546551158869654847208508393306443346941193236768142059434518812769160060391419182903886512899939161131555905707717189863185494395590645518675158571562049132389905957825170535229790325725745237647715167211299881030906687210806787434660174561256081910193261676974984042316644147542179756453805408537863560867830179642048358017063109861996679785172998780976298732091886160574287445516391693926777927304680540183084266613563359870743772227463157649185155719534909499222273017118092125180336381186753939517898141016667182800837058238410595636261940713878644900606870787521454661433913328098873872789909510499977988525923473719387068150407397066640595038840881795182730498307342265185508912575077914753111033924690682398127367595956285186724863460812582631133632891309887302368904942127324161780731179113958727988129014069460756835970979629445083455377092956447355339410932460769824776083258454250635598911245082910266342407449490861271853612266813181257098108907425266050364200436757323916536517198685191628160216953175206739293616757828202785370366808502041785919461840199962530309182838693943156666845586451428632870446313656496590529297010772316135113287669527752970244936968694581448298286232038379403760811282854644904366189337826766083177230356569982479530419918462446514167577842123247022102698317290981214247170716146366150968472465575438380250592817599660281602749311537059138420908299935815500745595989808464160322259219768003547668848211770224031310277717614684549437864977763758703736881936212197761034977345023634593880571368860465021240586671368238860482521040937650375592956691492923635686770514976805043646748823642132499331857792682668105450401259259493359375185791369791719243477322946336720452930129165112907662635126961493716140347800829057793320409162087961406583932208351195237808820799737352891280197577957885033561752019679060477578865604472926789411078471032062230945926177987353393172410324659175996334618135662312164522973542622302735635532418599765546366149090908059619812729981710435221642412327481786622933757891277730965222211037390251797072255744600241208431675244874315401453818759085402349495059550289361586933545411102870210555704014327085399889774570679429926039459897104869001095486795867370934277814364902912759541185345737485902091973768700347374232306975074866389280038598455382525625099524883012186727597703807645420798710464868424649503652980316570662143417027575509387388344241506817358975707455410828543633263378132803567026843624326034043459245750717494765392146280562757863176168829329316978729675104988654076444534801753185669960600484814816474916876789950365042402952312768729516375801673505034808368902343247324585854565702387130743226471013979926706661249130837893920471941496932283332559540216771120916433423786472249394663816960296652516031739485332874853212911910576542608014344635044089382873943918236667624956328388896196049421723673240812687040510880041932745620582724007655707391744539175668356229959057377869299999661015741935008842794521836131119724066310460139012573948845424472009490351697998170145521582838566983315751758376027461560758895840325817274074221796033273756950653480440379307991933493780764602361205461131517303038596531137200390102076040596108822286666880166238199289604109139733259274990125431278583921504730012687049579327537912266732566059467491798285432341096744514942465541098104433931933445522269835517715636906886091892956510361040520300371908875215319515570164062075106024482703992345164880581238641723306876231311647763892061903160696095551159918630720735713138288556335541465202007997367809499328253202141761797747714876566006969444709785947700453571734009802325073713127613482527688072982696668878184680391474484183540770280465943478298806653053441742026160509728579972063756303770777172494923087190129737458294952984005055847315850987850156076996421690619849707450310060168634938137964634460029721382440435459119774715163070799754211313923838105536309473393097040746411154237392582981301294919951645254607013896058448778802795203393796874517432249888523982355195873386537592218119625959640058623613254732050769631324605455760096253019734695991339200515420280349961976021383808862840112563667992019639399001009433369006045993856130782050673384447543294544919850027163045742156113833229070924091348459140584928434700538778940032125532015221287800721359382140129419368697203169200229701102791008191566762290734255141797135738312972536684091410916121515488789435892324010537753924404650558640298914642204348643662725754521544362138875630904594973895812174261849446529641925518632506690886487339522692732155498071266139933186355211338943565649552626663577015497408143287420975122578010140923986953384048152947910876425763427296734650272533096361937065656083713368367477628554873130753691242709445380301353735810150384789541681209337836636478493117052053377053058885220289930806344192995545673272420477787949965990102084653718740442755957180193647135210982711240711091347716559566951194169446369651443835497346906937619365087037331461979891510429392721240860490537457783775986204508642455141587613238299754196058322975606572325115820079261191382864540713594425321568120606924486456966936930273065095310728793885987767202842363399884895357422016779567705782042468999134834865359110652452046809890679255887682868617328786751628018657949143934453148828261880730547555370257689196350834012189319191126105668152666701856683355694332218076744313638712382015074828608081918962539574234482525483263019409199990513977784267201597823596463751753446243124122084197407314938374227926425819535503633731683275664631371413686409262178718400662515241992923323416414818081036817146529722798436636927802299429405311836114516319545480341375450957924532962814778907736794593643515171443510957524754052019767232425279131829827017585719455390591043700513683561725094191972599539875333518671177680486413382901570028146687794490353067200806529817988362284519349303038101682750700328818846046196733129946046061246792829917489806803685906506526296882914734043924685611910740108950228285251598494140927434209344281015811536729972609798980670510631393141984187384904506948549835850812919082460579627272022088039678854725796819054006915858922766447930857976977291536606862088954616757781921909022390208999690043621434239128494402072421283910902592300762455493019737349963823004243704210662013544057781554186641786893120942892662862703768230959557875499157091483889771364140932542253518508357511925941682365004409046410698552746772795714799508456155759619278900414486976241632658724578688724650497925761665885429446936288623046572441546563422702303437319294495447018112328184209840812362598093159139733099783295771041526905659048166912020883069619878160496683699467454970386343418599599711481519992132347732728488929460275399636804100651330783672102998775413857539780403114404005503101558431601802781895686560564120416366218294972780848822458445877962037340402748062859928915610564723573330391962669032084147865823936563448199197647691552303289425309476562045706634630293399971342986359525541165536040157241322590485723991474331343971158820248428274874493479984213480430415122705103179657036613131112210843267490605222700928356415889774787540794932131600974222585238678796493743223771869843511058511417410744908301414633612229199813503114087171043479867762774977399802666914149019811895572289408030673151622790491876151140614840706703681389545177486276065257648504166228932418453195957914856496651286632073064651617127585672850299596459318196020923575681518903299127036354471375273772411585402698130698417897079888850646945756884816433855957307436962563513711490762373607221583671302647019495705483164687894987925398938889781083087390763196469708109718751513715881221304403437569216516293235388042818032848470914635463550603215577916488093476685305524972608001084768322378837330068946157968023146183330467872246193009456346369023048233023288157299599334762796436432081644148839790982004096433632788879299649750581124888681515332355911508158904815347933450199737320450555485630003288390358760054377154339210126666138811465985576442250537861012734460943634662000241882410198696184550958713286481729190133064180299734843078340474568415629830867638012400501250167502199140756745395533544475599597700986967845109279526749348474773660044536648220434670451418284857427463571059500841040601759383122955798311605688836548380001527469894691524448801023698312346582703432925770878133785783461330198119836422908210648262135396017007701021029911955904871945575299197959517947849466914387061077664348071785614092003528896115356387343446690891173300387119108898539567252479500035133145237468469130021312444592694884035890649877581196065347138849872126587268746579663912922363778364949438116237831578564517503142480191852787400171605857677226502633801858316516431974911590339582060428687426421813708720724673984856982542820926471407467869675386258090972825983622378543693812950072638511663369214985008849868248965549440050704103689936583035156171915589878536825226578491211306610455619242099325208293323758427904152129755238459245884706589952923541347469500483164714694114671881888298363487005537702788010892747793987415518888489158889248988686579291163493691139721285229127920998940246513090282092241782478273808324272431402118574321034106553848378498144650897582949600991930417299589117613964294026046025086114302127257280379952948893154393611695143472378939764119415349100464473619656382205115363603733680002263608295979917485553301786129290760258039474836715738494153101838736459168683502840096932560936817573715639454055606907435118785379879621273341968936220109712426090522877807625493464540110009561246565511464720290822950742141326576270309158535542117148519656955238382026968906355611080652097797018804263199128742283047436141346848914816745713952253595307168496197763806183246634795425356806255944437557979958930895479317750448770810562416476043613791447984277274327393485090159876570064805737503964106827391126889176344363185213258713159261360385092747244475279954848249671334621993856885528261700014696475406057338153738148008577375179402387840210491867022781788668117944088352154991194050674450242917028620971304945481965970995927566917320543788632319759264250683978875163788051166970223089699788442907816850738878348377864003592002333358149345752083441745801638260314082425046325370262013084593565881434436397764075839388811820166287960744322355534712601247269376771595137094372117341270533392394292297413852120745853945550312521445674826831588400491063827457922824754920949468167398600056444245696436527878940489781393728945570046594829374813300944827864668207821204235475120027313030565876887788452400736156083399471988498781723626011662370034371616427965114233061313611029659298521924171956120590541817793817526486867811644804078917913042899901894261506384004705843952775272337749381556386129969631528823362757406904972972461348725026861371683984667940506624193342866976400413819365968152082179426427005363755080683598993312865659569325492223857738675984766715872005625272037570670342752212248599033046720369739875176128596085742807881159662969559853875256766341082283452658143082018017547585317940682969276127491410665106082620306330916469577102511402675474551578858269496704900501313824011992286351201573594633306153663512523403943168254995329457991928179026826164804423446300524381785944982432908951881065763315801397347989203151344294722226107431112049335591843979314031751466978918802272208648911613119487994707206981677659035482828394468051339173007102913172671741506909872157092617322877928489341558617465478994255733526806666445069289938474335923267621123664460629982475407220502790255042954107496012406280989251814110262997884567648380351628057403986724350024960620370719699848199932927577611105504643672016623586182845538076489743678407743852855642365844300520535735247331324840904574448565984921964483064506593057579497503384696633916937909629631626869206660005211607677039284984964851746328362591383159777855058333200361540761162109867060951673470559579270634523569931266481317542235283620742139863296185059665647876133237690099482926800733608401640723867433112600256518781392668105004296946190537341938826333815897512024873191667018882993019958569913251858897227122369066139201411801716372816963248794627722180325007645351684674585198768149862403802329389210149866688245893199348288088386345467072145297578834714757817468708401028450779907871277963735228598777113551470065693805694267153340419242831377588215519911771245965897459121203583851618332795445760468509073559303085881950920077656766375998921183765329156265404660578843607276295598357350837505660686730553765471365511402896563027793560406691156088775829821101836739873285197800062658495614167511451092450528678179591910597511131678425033473159815375836264393177236270944409758374336511683575860710945789360404116972642616384085659693632168797225774127260531644589565651619483322236337887038379005531447468256690864339937092006614449294785183218127971171235521130262537022261455234798033287034339063153177185484348600159597145551392882270795500991475113129115612917924936308902068173003815631029570913519100092465494712245805771870946671959504828453761905680570351372208486889238560219433367041347965980667630051513375580074970997828676735421219993713742889261528935496617257623847470817962275907940967762776390175330175572514769772011273007518174579334769053706964506578847203465061414624183835336960545177880022685446850563518764287623124432059507456913245703286603376313895380986417240663938457244714097731653765073328163154749055132108977940806033127183776210870284260098254258144815114161920233170488286288898195477397826973163772436571814672247079557181661738801640749317786172595361816261311764278572541364521442160169573489151336931552504163759403266111964226234301128246479852883488035197854289769921484614924178001547206317791446005414390636115600792737088986724502098644321459702966494497465401175197001635380546650304338060136971955509051687475322404429121240654237837763540613981118962216950933715314043366607693470693264190934531156922535688849768091083335079603092034825182403294097720586207252319604887680472523420320654848807597012087040884994818336563014662601938693965124450949780388421357777344205197481493635000714395413376018272183470485841764475885147403584993561077412519123817799329108474330105854630893603355663820485300393257428837019953547559981981057745048894819713999032204984482831564590464674303297111392213863507901187378893366557319595616973819534225382836329507510377642643509148402620091059004242479237833254411590729014341965148607986464117986107903764550958685787384999710043084537002475755456390472300792439780420129276939654969426752800021161839424344806187382184062543360644890328001441716531385138420263166258929741014511265787024952620237875262181190540939014696003899028061518206992707462544563941930793348772719934656939651834928853385809517313251611560702731604086846360073514974381938808107937955203790965601820719885136999350620550416000168396162382389162408896201249955395103117428896778157759200367438246679674314011751613071349951107306018179810504092654269960730073425627342351368582868621231599173598173507999237523375154081471324755415858962026207038257578534153147164618825678421920396460944404204977918533710057600160959012012219218846257862715521483253465610523473357238652042043632473875951642357589515221994690173001589412941829510437168693723811095037675415303791532763645830293442414906974743889368377660757194717146622660807051825510284482825204894840383280349901588703300278432464749894281719399623637348959275174897001416295142665619996580171899126918866611046109009638682251710509616353850784997992719088889120132932532984789899944434294116407603543085271445745765293934470798510313431763303045531457366126688575581358058918296760410064848965579926847056270572933341740335473640204291786252570616593769446444852954807320013213626993719339605375137117251586778694917773852094144984400142575610649019099976435039630718218629286484603984470167899396922267099618116582728450843263155072667760994122468736127108294814346230268015870158276713716051012678903392213863592536409814468431129305030647233905044057192166625983974090578256177583553214480188726176192151782246219981650132685385209956947328869097062154754687035582322672001959541628097331416964375965236954677628645926833385890184312905328918311168886195551327603600138963626567910215568081615106127823636777202102536836529492938004466461684875059023715551424341794738256315968517513276230463376379916799637986675412608853352447982445123533360249719967447479171233232253656113474663930694935462313768891263960453462535144994126176612191280272503836119549923287612694454761444842935642345430512433131953856869955608673196217098895700290810737194783029998877525721654672007989854660862018714988616195578484558131223428368842070349544089376678959910066834891448330441040648626309605916813294348846325567953474601016505196801528722552424683435084530574098895623249667759523146366339015009395413275244390512208986068175907483015166891638574800723672226119376649779076000449635278630636504444700877643043386103424467249819893886526730278088053720251565442527820499980315408721599191440129802318977245545237418223866531679445820234061501655023757496876027374720273342684851380343684234521285589653592552098885565168922569013556768104988334436564669636362720428448233973872191650942052496089311734311766396859243856235363165290996496780846058156499263709253092199207788911234332246596421377148799647753067558394105813803970823995456436479470579157222204774271583571206001393905401502277279176767467327866301772471850094593224338705437125975974510752887373334254098025348339599101078908327713549587178073875501402088032003459060638737731032789081149664413986872195048014717916504530784616161287318453325813202096405029315157588465914572485416383166185308990613299767966854004770491618619683406961747183730827032234955716373317438666724072848044059368243018308519897769172426455830147137423205150292369383870120152247080819999810236672909280178561376989263614368719664961882140650855255416916436084322636349042184753022619718235427903474786667993197314404496791852760534361264125415473926165721619585787598450176280148930927041038673034513217672584920336549681374789531694635823220691697880638643577405899549680446748348567047088544440943359039488354216070630484133505911968509606693120068756561082162819423572869827903066987171232098184588642109591771789618521660692801734766546568410653838980927701561880745888495111346443381389460791917164312845560133753375919877252331728740873432978895893245522353266886953262295476365049055462931164834357971277247661258673375464428971161761747207326596410324180050755621218675814061298208712278428590406015546875071891848623127067388225393089348719832034070804516517095442503787524732178689962257151091681098711163859240445091181070059199785794765729483597555616688890694290835367138353510313556369467583676701894731021083473417488499780213120139441268638159991816737242286655764872208659835449433597260912330934411806017689991965821756053867783836071900244242452800411334470377624374862315544844670577866290519535932253405357180954345715102579078259876997704957520291388725584076548925645465822041063285336290856372451775846789498707910104813766512642679812852577868485464704158403907311797042631721147818132192839304569905219434065959092031820820802686390193022626408350586921474739336379749648362527676976647219154904018792755504213815346956353017118177359341275817719246982732529910934481945231614373538527488419193514194755410468916814081514776874402057313520995241996819546040979397315153085438556860537624646959230127033282030031847896127708460859736168582068419426945057304591810394741269211586744991676813890692214152343841562518007346573330614895023419456859674381623598594577581582596285796465002874204581058508300409112903238093132779475877699138189111054198544893744358967038573670693502840625995746026631789268079207962830298219243097132701127045135000120554375866519249525138501046668837185033023648569924033404183143980520897485744366193505558029374647937075615994692611552166715635162380910419400456207090327139605293359068056823029591462936926094055879880337148087644004913052208462469223326578417675719400990778248452688457188724532986298396060981460490761147099106130779373762975048704262503744567002670876597695195538783954666631689868519401521957951507857561596539679074043923520193153963757299157176201944497140292656985873952583296367282741022625853194570041005263093449841328206388880101555179796676528738144498223481784900732652752699024985017689322878653092047703742608521376378034720751837141986982547874133901521570027826656794952289836717242253890903247634204052756935769571345716282410807416597622948352810708866905388607711620343432658027424887578584227355960045396998748814268723930944651746100752199500060616699704113419276604974970570682688456157623789962567103171955318019853950741382481260526547791696876525691096407277043059659186189575247375052167233317010977187480357643505003389489488954168150634457421697842052273866463553669946858601872336903693812521563765856875716229103787168224017908794762722695238176639576418980194855879409844463313410143627754636048042710431047651382901544724045692104759122318045210832438968511285846090331942217640151145754832472208142226723543624527385206903605060539010437277575994710612437273081146514072775742851203032291985458334037099877943882489174160409471041052804006394660992096350481021583566076931838426290790989497774389169573444090056284157243082521358953571167048090839663280846105547418201422458471020565195982897184845822484632987145582210516325650621809850655904440691559022658324206892992714643104704055962529446169705656208596171676414503061201334485825876266436262753195112554621446289792345593580051808090347363330767488584918655117210735028573801917427298598034757659793776952814492856468075767682875477799432919177716983636071448257126548937413243556683721563230085936287753959135439580395933722206299750347736055676832207581694091443938607882661008290981601022553339817307767581250409567085347227824212626282844369859930332555072740034760553183025373807516982796961611792094670068094725976950835517538220456874122009771575672426364483816289589045344706176388321906036295030716044165494856661838105839467445696763391577318861262608213403505302745828856783351376400806708393629103564024490525759273779306419098033334536188842652220668434204861392410198331863225082092081311100967540555971850683421731161971370579178064504819193253094664153707790006054005206525991834651984719858266556728034329803206319359912098889476628436459353272379373446407279448427042879103720027196105367781074312542516359413742761885013120529837773951865444672671088936553224695806682423643702774636212242878070238598127902950092168087327047818426038894709538840670017091942041995950447684503671189367703008098077241109863735339453309795008312320871715426193664461889746104854800984827999987654654928116194879632239221817864409057458682070610140929326592157677755200956854412498165001347716696916683469606741033805232369094775189670242208237482943469207488853400167388319417748759153721232066947920163574540139463379685917137074314306172138030350573528464624915262822739996394453959942821979726249567873769042199017660374253747480607429657135034604754954465772154182546163156832032222766026743488862790217095525154447818958591526661027547593466097768059568667116829765799240248902597595248008323528685353500643504656742050983526022662968933175521417369542534013922915284761833514041637763332370888108631776393714262764919802494831058568790848701369749775300162752673521314811506115721987617077590739857998298458551586896632324909368671282295699214114964929831052688726771867465274710897416527419952408928488501069555659320161863055605110806403608050771556729904317476289644822460627304963384833688974273769642993118648474978213106703326173413672143137378138402463938117451012914387471874332449676356559090485301469944030515666401596884546437310637111485771078209733363028034293420346232594848078219694697120219828439753879282997476919474095145749280118544819097407150943240867389955201281063904263507211789093534715428972714241104759681778946440795210204726580504389824827311245686376797958487637736210449903586443797595009552463711491756922745405617192545400348144618565765350185851503197029503748588351086999799401465697445245967091627947934474527898292238404926816389610554987078147943881812606165545491823957899848980898826648083123568433364894388305311853216076469815630335499096820784707425833990627217747950445077972769854390475848652215310417124031573004313964211002693868160039146016536406493792772252774815421843789367082204044720782169412330495668867036107410052817743111412768050797299412837076214479388775964372767367320307796264557029135300797348261486171304218205762553246943468666839129779509073737404819457171045538313389406763715167689311930746920204777703994121690766993581627387035487935575545143402979808332601839312242912492285586034250060670061950954766904874646465410394226609872984007728971712731820355313204832657030019029808987494111536338082455958156929120943174237786011731233648640701891915535235447326657143065732527751199959659045679796633733105173282295932707510586014233116030837877952999498509855337202389952514077468963940556483618833356994897649789828389173573237948462136825923351387993134155712187906369580941064286644378413186121847453210901323730298245917179094767259478851800517666704765786696117550046798743633173277009594366262941933156767251615206141388523504457729003176421796194183848330796298704129774318773267769514067302148789214783503276249194580993769858877284469956313807960889411461079098682663601219026126834985662660097763780795887872782082423016504668720043511188803560917251261017558546638735596789687001151048339475590108066744469344420706172817603640860071930001162337999445253746605513233663069109127941322608800834933352290646201932613856966300510730917906136740722777808941348553729989378665288467800847404085109175067397339196027481427608823317450576547919160267387955067178423379643209492228989239090964184620922160153837727681356612165679244270374127423773094122127253837261645125596120971182940615747493907577635636889108234262387663456857946979449610620480674565555764587866045003933591039501638001268431191203774312780263723140091923490460020189797324409739945894633233056096045253828660599853700653363530203644169937349884487912316125865461721300767481695884661014553058357558812939785524286460112665857093167263333000803840501606043805991706210099068442940908886132281599763754711039046150912710158976715752045551720779230661826371285051127275407470076157795326430716284407407387580438600368776979110573394168014626547556047330268070505807804915957670662798332663300468734900854710262318684472976735702461965786922032207446613878678499966850289301203813301595020411057869586601697604237036505478243127615290459818367357813129353724793211875283433418185163483578940384239680771318471936457177054190037247792539109197462396481124454065523156229035179150487738513816534812708787143003290213240537481249346795718753197939439031857634528445141066796280317549014776118057908206901612961599664290147694975669259201010756901056675829047586640044415430332256088642580396714422751136648801454204025267896518252876023478160619204434984949797361451698503505514359229214923755689561312063259749672782049218160661135519092872912065075572467452284519424201701020435986496335641703464431300889655809716152318480940455209524551305415588464219830708516065687331770420836074488775963319243630297670303971449727565618934140428106422507169430879834995905246647867678524314068712046555577725415926117592219709673110151517405644589906017122066827190589257592435822812220862956810163140199377229925968558805426708243235699610361721025279776706961661976036551034810624326644510572316414811077012413210683009908228914410129500134914035333326240423548945017132016182422813583543212081359795697873555243544403767757140533280047689231986172677140148457653559056273770978878889886324445824455959585785947015331032525448645298461671683913860585128115195261342681412956875248092688143208087685418733503716179614013101920176460095849954880680298746054079982248904661446619833121724265798842238927145790529137750785813593010974884094907301524377814145088705817124122953266024950872195297565490085552952686414049281827137559094960255771850369881821991741523995074482363079671653575537223966848000748778904248196510586567725851302025589844899403716419707672003688974348528761659798764571180025313954890400513972263041752131089138649159387701841999706857875596843953058604636487681370549280470404056993484930107238196085190403053029659759059467568564225188695351947958034494001074432427312587344911748362414259668383637948370376315788302781728604940210000784347649680689628271873056209635304181289518167665578557360723388385153547221231970434479933262304196309573183034670746534805646323081670800837366767702419383590045788721539327475260556114403770267017475015369393678300876979542665314427054567011401409297776834767501140077657824794785835107557229914827478862549017493757781411829760139022890441984311760773772034437247096356238224069882298900930812093306928159061259619239524991187005729068683239069699709915128844462551989623080742431788839942275400989310609132565814687305560118993177796316639069842856911493552101557317441600119330124060838677838386677478992342543945096287991011084310551832364202907683227028181471955579118029730018674226891090088919676463131898645473122053544554735523432716304304691671218203691063713311971233137770210087009286820470768253472340096605543487811258238993999758944950329630067907786501396458394630354305611489207489816784839104892326834032990247099241640849417133659325591267593601182914344245244560001887965803166587828010639010786901417532441950457937302321230706228702006044107989054831592571567924090104942241890925452151497192823852309307347559439510048666244612913815326432859599802065654482899747786429985561943278246243486536789765127454454445750296869109287952922143364355238576633080529388149241229262589751376253553771120834097631831193463303936018178506810768074656270198853297137592773330970230303144776183051505173232763261818961272060542619672262757509404134706756904139229312749670472714152884342491434404494901665187243089492290708275882359362760162517155117938449261486762034234567432617984914282170624581109188013298250182085466619245487188527511239891144310869761020355967573533573574863441972388717671951629483026361088351808754087383658466494081490507411419899362619518208909886234074492131194311148749339933447336084736127196919229923261755345675894609228539389061774661077952602719349673080932966107988953323900978101313821420969851865583755064442972925768455258465599388650990186963311783280748717622836762907721135714284836219330932021966892709082752355191793604748420633091314207135509971003297088548508197021377585739327711048178195647755554924596865916562117609945773793691020756512635799579250102795779371897302807253796888660037107733963688476707136571808130269883375642678961104567602159139320574205120133679527553962855504660007393045983888944832248607870586452774703030204227665338841216097809745322702544244428917056037622544467612784997264795713941427157089350587835340529799170827554149753634663533980375607524065182323444786365755605638631169924098122227426334205846834519238919351888849103729969375492153675020009254374017247294147437701328551510781104123263944164108137245935116916957171322587078067823829465954095512370309422331320120748459946175440228635891016682070829024360847775616572285076946316893214162511642596216206172410787808559667040035227518665099087578486337316502622545645848835044327572857333475232633171195001224443667169764160249561221268869457941823087574990441880954547189720675514772431581965969242411360863688276615470734212654353431496626210177696528166475049930076476678797592567909101827800485804882500074502610899637034468512897832394369549394974221509722604208956130504481104325138992171797018512866699805111101503861114819783047280847350669017322016629712756772350593850630395758416153660767257332476194471995178905990065777890532528167903560210853700501004217486328073488862362984031797099872792579383709468827132295146696511273796924578287610086707282199697581184651420290093567019315044938646010624233162764437425243821921399499446171283034807420929393675931021134087249556899866557831638709760985866524209494179719540250342578256368536025180513770026291940061293502676093984457273363606582987102578685252835928082783808443080371966991678894337196816424159276834700320414249182211202592296652715346223094249602101011647897479541713207975515352349255680130496722193066661802222951592551303607116203239388284445274371385854342893837963074350007404167868194504622029066795307505231488657152820417537364275763704676146838991803545985165781832176914924482553428627710380799727818650239965609214814263584771846706908033682240018728377352057180246588293627390676651559481535353373818244932157816671323187118665668556419577691710836414742266754881308326231402426776760141039431422098660218395698792588536082271065564460244218684688277030100110628881243298208257726635236220285680357236266688210447092314684257088450443290281225712529028086476122502827614135733778628758005435848494271822742710022121142542975819813434406513994743494730712232044488650466457760010281872137011245108578977582512560879904037619241431876803118234523823861006121429158382039248484262679711738215773466771017642566480230422932772818123045323985054745267272818230824105053241420211523953121353146150264796210445353828761993846624812340398524019279543070516773774569374928089132518178802551012038560551209780254923963692779605401350796379088002200617011036686448176856154960796226321681256903256361439492389829483842459816667334186788083754289457299258320990799509035154507417154290237759863875902870215811030376284477156019463392342134301235020271357389333478751920962457931417369279700165530664446557907935237229382484839261492183890420146877522868334816102584582145086743943213046787339627475970567756147533383478888655006611639124359835981399712320171941551656643393185112944478789267189018113332810174643955731823843634390764014487139503369273436250516228679429927619089955549692525473823858186981536668538116945970863641308807717677218073814965778395818558628667550791470620962660090338183454844638386012727027024010026149030882568455200196223358784698558395904037069675781170403418699731249491476558818148104753559922766892856774178812379942698868118598126769240010436173991218148717963844686339889304531379642557175749339094847634273978068260508167788126142884489263464819631904689225150543614488962813480160180521400819636457965008544304458702316040056330367553950393287358008377884152583910056082449118576576391428894409385930569406736257141711083355287820516552037776357394380813720554272813043025012328765211320410592840581378566401918181071279427468238289730743144783386043428496047424985940163243280307815141621116990853625027518540338270331706470148493237947058789502155455053449820235444749429869171581303572925130068573693635562792167287396145308591707884885693532418193255100110728871500382476459513571319725531441713677311843260646485799957168114439315591658452267621198810784860659951754809400738690522049075763011508328526415890551413914643766786349478413422725258175697425687920489831706956151858567064925060538263509439141517793624535606558596855636605063606996209200146369303889821899721764390852979673598555025781462280467617825778539034484226398292857300494838281730219755321278164598097879868557452693055031359200975079422432008761226912773611328243083655296424953456405057654787999553980645504950829635967362237601626898839457410517826400630913535971278323219815196011876451470294917885145139817853512269156775042355460780202375449119857912491786645762976902248585409447144233296473203017373086788098646932179403258585163461211618757341811054714876606973434445696441131100488149734449093465542150527069239265301716866276632844146503627455189788816961224677745556074663436315066912356680237453120672837549787907093032176798712705248682042045248011258340479066704934810157350863710236910233222000842981733883061236995353977714644033402869127154614438804931878095101895298753568701301012615258820277766189608185076851231590694628162120672763558191279456691673404198147659616395922022718901931015098583852456659737389685572813144707357203723727130107086845625376024874812505823079655474465767183340189029639119258220064402249356126658664769752541920518108699977059034487321253142265265269477215512535900072825477518577333314220872192122731413758004852257266562517295215837970919587614480802486251935302536014225454168764573795734395529362540758965878430239004847964011968034949816641651358537460825258148494528759723854265885769104609977362096355045371692749760360750537598817341555729418393520049756548217881250685336883883695318987898118272170156680226075407691460078848241423748243699464084023926264589312150445051714023807923082289363950763574021702630211202404615590883534316575216178577582984000676506714401053338733310218684582948933446834856525095682205013229546473306800582091601818322856356077098702104471921264252937960894332243516962680900046706728685535010024069042240049947415423300556610625309973115865331838800813431471775355001495149137861652815006036332407306266552676302933957137962702534282030029318499857458722373491516552578571524338945821461177895649576687865468674253112708824058529092266481173531372742313301650869605390286966120756159406411856073192442073775907324535899644699451439804096315476338345724815079007279060807251123446201735185089611506721741975105318912632225652000124528103183775372316283616807492442621168520140749065941922398673864354037956774492557189615535333398677033050578192771579179814437004045360062206699184175754823736580587276469407171165402873969118613860846269126451523795035936021316593649100920100008425521255195043261144167265272323680828893501728532531438913001391804923270073798629846239277392454398416550407861525786156344194666422582142656385332385186795748141411478348625527047486013808951289369629070210707372570432771569789070077423364504914965907626583648544724341036170541318583654534820371575568531944158320431207738612555770898788675077428849584612273211191076254527188507819791505739737336426234520960548411891258457330373708506771530141284744886853598930601036191873954850224603933635588648828152140675053212201337942871577985103630586831476020929597993824545025550271987281662153049881099222818710784874541533517090361056118559924863025649366142054282127387940299804449108206989660796141457242913994605082182214551986042062745608677087037095708969525614782558941287068845467388042800333107037942084222616795184519120262354436064808547837261742111783617059470627365748357456479863385884629053478083205388729252969441084742006112964467086224724032581969061399681228126433979210029497460146392112708731627542339210011773447512305819519518068323932995204161086255212316633155627922075220467691032370475686504104627390344943556067883425553675334885379375404743386119407546298723831124979442655865846107437941260823515932443944734422607159491661390064130158622533915271529967001927359069836840955883205497519073219074784065687179787860408477961765916047172299608338484497731351338362391734392353805231999070313711596345541890709553945130224142477831082034386697628422080672989514811384112643111341817773480161932810382120787442877585086638138351751428711251771047167790023360752735136473683381175306777059768820634954617980297004208375604130623193900302774527411113092444718752094689105043968583671979264804695075276515298694682392995258711225570879493435490311399819674163327468976372972722311440090542255423603377710136812425957847018764693412066307341119826503324628664905095284446611083262875613879067892479828914328240303413790990758922521827492241262776445015538629606571626865970322346487022188981643766569121449311679727225585116759709951645550043611684312188383142038426836218976574799828229544843056515640030878039868843340746634204241401516544622709811539126006481758472989702416126162150953284002378460388276247209439149956965262808381316154424263287342975589366130612766315376126297213069879314495607201293918536174072553738611401174819099470704374140221283515926824554609747411954894617614674051550063717421238824227737505350033159147598852948947115635267642919172860394549419042677724197026034806572484237649533681966501618459831124614681878883696689181154816690707931031437303307590468815079887318035787064047852809423187683500689965471757336263438028560057778665310791818433824902547794924776706720105080251352605818854986223651553390381120941185518361556575305818598934887988879808046662782058289517667194725820205404323555647870293236437716000383984461242000546511362263415785167960321273471925789874732741332970516848954533244972059895232564680957344571426972850930570571048691254816132575086779902809259360064819639266191823937687838713579866109510402603933150429985353531969812799192510307966969884073256916258008110998521888800504626166652804122032538819133850900855436991594521216692110572466569534172506212004081295067702565306245061144080354421222103716086507694347534617040341080816146940618660446704555217596718174258709002307585274033725430589254445090455888724773305116813050130920268500199252420200373878283811250130082761215074595653063144364179235488745285120457041951090956703789752728590703506899740328321594259225097818440534121934383001871938734259634784567394728760887038107129085238153178919250232525449103666393813942502590273853150290035563172291385482739504188221959026043053344497767997592218647308752822973432503590218092819611464886478889744587801300736063259186265875835044094599092474574364184006045843763688122233560685569096169522877874964458206610665283426275082751584177596768644470582549262452083192625336512543515045208526284155948019849946138002961719367557385230031603106519232142872037766411319256619881314692940472045123344212920980224541938345118853419094128530342287796657665489138387192873913796452453638296494766143878173068665771227841437729620288902499749913419224203149895941013089354005998177713538735923071078181813198704602251694674090997732816275764305089456226541764105657060034732741387496652844743257654580755080590830828593601847091932282553873725140686266391692009480707479899036876809605726491249475301853189556813515306975784376821686373825585735712138636204147983924040979610063413533400359143846908459512192728118275230350498905122230657899828903551745765726952163381929025627986915660698501678768841004469682406368145002519144897909637151826812422785646481058205808127427438621623708126956176442750780701385673216245001413582121815440545399373847665508835643715474156320426019717045869298065203610876997520794183854433782399969428892693891151399982160494081623107279134908014005857131846203464221884199215321618912543254133988210348349468811016747193188733583628488870002328559404530628292650616441073292685807353424610629699995349211865364232601957170016100835541576663352894047966709298847687507400755448556336826999751726142640314651444514100772070852264222420299622067136453988150857379606415959347060608614496892574711989935321416122491023196879061869595564652696782061401866498429135188566219864343980376531049991638581616074486725776941735986383431751482163017603641627356932836542662450720176414674161666307322746714237546265979083342534594701184096366046218344200119514492783222231649931753398308734829894431190905480420693005878725265474362641809321851196062738858426620579368379496755876257329816506365548428706165095027291263487455459395908774665759653317262868048638174370348897239607592339057347018656986101705334728103183521981938962742363002729284840551027882311494140525016043941606641987815515039814995810549758596222080775827983399317154633623327938609242022992387358577011952023503697992046305168885584343744597578719938163243862395506539721189392935917296935881076449040190665737730380301728715829485013732708553735490136690148243609251466737012355606822013710687192997675558385132580057311434627693968432061635166533442521311467905552050883478353903545146016748585012553846835528678334255374522445721850836847640716226726046379915480524283262563486224425075729840662875169465938120372587369983787087370412156289756469032685554748773586716525264638666126985588679190557667255558340088731440570710447008028430330415545055162100733203634183663345402663637445607568671665649394234066255530133052091065605766445150669063767925848912485661513048900299893449559758313649664973614121885654352216287775400555165175791814131199810554491049854377346950404922003146889088662783239104723115741081420864428128925297358457183773536226727541891337823947051513028685711571485600848699098217132362840358132615290991402137851309345593999038420079963395425526586830800725486987529719327092877722630721211636137330107361486159411479271472216010827301908636535329358971549862430574515475489037333107532850274758087344912645811345876624329413050502002513770489523123319627282043639936192319046275818821408470530561869483140096835109659036499825147742776292037557539142564272073170442859316613304416990511373020247263723687465093398285307486644499020304160651953182956874291361435947327232257507485212294085051325882860374618472622550536358580231197499799685220709195683125647487112061788305753109144878223693969617849179230021850096144750577499123988336895945069290146462504150718783667467625351302086808014278354533466549037522458760447072346807304008279211613432615051732277025416375459014570760650474846462775209703135489576735365466837708509450702325083472036810228311176168944327313739173227862041904322799194038336457692462926009638106616557139801846916103002537169006100468931839249151470204969282036504722662662248499326127628120398210791861724370453951556742761113805231427280607867833423243243289667580106762251260075188425270397338652808078766899607176095063356628973058531573014662872378915571184170873596677533516598246381337655155000402044542427676141146452131898434522769019829940774532395358948951017744028761628107797300308818474421708158723917856730029925987618114867216136416829878302886367062194798404389937457124394279342247133650186896465318189586905780827859502570457806989176598565393346447355188494825380814460969053463015133856337580966286608561529894197028277457919337171007240850897245032318178528056871631642047786278816641337334711756839450218391710309958709843270034449287890710462528706180799172811652264301347623495879924180585039116970918369184895327233172171706716304606421634019949545237503774054923449489416764068741778252627717041096419313096523141590424275384125446888258528501825045274242318649475409543521383163047291391744068464938804657319731008781722172583022321544193195336986128408143951715106321387459487371607144532182286826691064290223216062535841320086423471687937345352737520585424232510476856366520471272956095163880997093571838445230437056527149123804505336312291536431082747506449015563565549667608032017160716360805578611228888779098889068129191191375230153122155694976748357354133319258099416508514813307622238785994294657083827546984302863346320789463699097903888573488218530960135182062629504241224571912948414202134697840828980067819982119322823720376300367438924028981495797761076151399540907198793522033659448591733770473258218552899752582327826798196588601361665008754899672931809338233497646495410730660326039031861568188149502562819778623764500863585656545288433163491680777442458934249964874155158976424752940413265841861755703574845275240378780802388249042086708169289604223496390002934495487980023551973939255991433935972064892807140016516423604294100256649675476977475317882269730968767214434028141417478107595169922754882950640364600713289970389327586679417216154348079181176529174021498361132657992024355324952596919714376341774742712639970218552949845628946617299004180028126176064842978206267942897370662513159783522161298946730919552483575470399890388322006080979339094965517700936699007583230839717302466105751781883633707874385555938796549995454920873485271493343453690814239135352221604459982026181021946857287793576543648545482989231854294430191749522457093149576038840521999605264639226539919665420507257454160134962722469085077641201109528190449159294810816065077039283984606264217087045537574085060895511328018133754533991204890432247051170064647020003625001103676839286827138220152499094886846588757114755121841412432750438282888783629492775803270859751243267609036356894809797072999886730370989953160200038068338130717290558379625719476374576485553666350987316399868868463695220891409939711937319246452586122665664724932242325391442910658169510189847520640921560630405606037125452905375569392713401401356351020484354637465520747488544371540148879320522982957457132559550215542872405165149950179054478098329729119243664149944433694740596928404259977331299611633964112411589721462870392538761834582494420658555460326632069138502456312411973232955729352124330286833685726861812529237038638179226648237294504924024328865841471563394029855777940968142320827307836506002794413113123128079630958194347044623547357171748274868647041507719708638197571605254103758957992081213650462736285475767630481625636938905293483980952153324726167916417460061957569356600164862385349928335205313486265050232421826009413396783939118307488342373260321422969741674271761482435606906221279680921768557622632956515643547730043483978248444329894154982180990588332103396015568936177433339329546281148716569630249483254094945484320872563922429695568349481152116951187094395294539482309342372551660901246028807084289747999776164955532923018489231392083922290763340674258449346284463690186814103353557807076954111510266292692565450168398613316558321884524550470875010292110774294320657990397547999929121154658291730030744712688274621653272532750445081039371772783921297720130427153596831064024245184870647364429061842347231766642463307429560849457484990031593228885514611060562045568907262787395513454337120367302908899944443971351814609544287536980828718075405929354032317837327015352235276900439543889967556059351419554167093987780643109997627480802117727578317307909734968564944189000658956163456337180355656866717925601860192778939007126018418781059345009810448789817707236571499574389456376124782755176722159239769819373494839988662928930785495636004979435208643575618484084129212255050299231643368900168808201548985587483247255079744822666557705921643511880301459495470010652537459412568924536118125463741501749282870691078188262092855992372809072102736004204503655276649699482591074184354399082215581065499697939612035308693967570418313803231435512166827161947231452416244441749856697237823802875991327514865954151992446192961442653707253863113812101353664840981455882125631592455282513242898783214859697057314287428588417776723005192011930370330233828377839530991656600880554091962814270970378315471224290065011505608351461267755717933621144197356045378949789039422326225298681056354184675018727790993567110074469582824213995552373109110051008107190129790419411548974016155371575444003106386598977890771477169199091252416321904763729856310046871978794914007695013217878695735239764882847651037704732735717350690319032181934681450414553268147588197844444745378439194739305318473406425761921823953167786737396905251206223573342025580847073238906740870127655960213900198809147453438040738475000164466777026516114981712163298646506719945447173033126771522270663519004294029490223086903152840379789969668206623069570376395549595812357163134658631963534905701436724196727666951089786584660513701481787157615710085911827426241872869721157759697871012893639452530355468462133042953964527724735637918596936015155773850120894018985412657468170234464292647660756756868971519003973323234299470623262667663061738988928828995107868529405337922333254903111859386603297804340165843984653593376176921455293250519177783180559915511124730407438092362948445489887013717684510351145934857437107870133455923013464801567805134732606002704862149439242041711472622006667101262513096252056070435489732173539733809483306110841348935838988859186315322067704117751737506851749561947368170908254500962779806748792853176570558174221522651236922859602887601208174811698085616390787108508383587631960906234190439799769295360859576457183843520785327853650962271790197799237233031793439376984667330238865144061485573588396686650430107449704341597469018558416720061171195105245566161024695543541195019830747993664316271546468989804102021545894445328067735043361028437307401518480109678018374906463000162584982977619714767472674290058091691199856003300898926342946682453877881226947080323793153554937662528056212366697186335778998935686135854162988169283443955015453556988148334462504627471357947436202167116153268642451157701892264729894956003008879821247451977084256347514685606290560317165723337150484097612429579254951534858940301118896907753587890189804332998986897669425614830287108714153738734812423330749213256091416031366509565847658056637104460509950163169703144842022275115068990001071574837240392180403497120689056982979160699827469311690705347801571233528059358179096587261765826523068502049160133149323271848644298976328195651165998266828237687191640827866706350804535681455653219820111132210909129592267296643378688977910038640211609270376779923612815248864164027431675361599351377208723897677637772909512840565138029885945857373996711345853068695091890982502452757515042650718681828890602371864483045712751869798144981013656450284594527460826343235476249704470698215194099308582489787697125429541034070210898663488874934991848620764089546492714772124922830285545078257504417078301848596208398432521806238507722705684188922688144349142897471345447309727962427498256073337260688737146322012099932599598017136642267481931669871068457145632123228918642855281884571349873086886198769669315591168726243390835331259733462473722359050323400180435411423866939348499833704480767204514758284076897645141110240671517338387563637802335203894510765979795537452087724930034496020218164340235484260911541970548026811892610411773415794864022937106804163995355109869202856516184895792844182260819770823648578605046883073376274202196123462432431437760561382766239068898621425914224170392830258587395938933585701145165326877538897378044049361344055176722523758581606318028748614476530626954128683895108480078081822824155224712569630302036851730762064169162720440823249088157623493685434907145392887871471378234187022046097765136910512783806382224026824110339040293290069748056436341607625708737224890147351555163512978100802176633708233624647496546836506246071770284070893817793637791204484949239245683142672983031305356782988766119326676331832291060208803501903854091007422318392682879796812728642179967111635660525980919619246013323893902128640877046588212079061382964207251206689435342881698977811898382484746231057397448039363688635303640472941353230184696051390164308240932774241154322666049816066869537542521232254088353206890530551211898897957459302007919764143317888261660638312201191756291163061701316155352437170738916127255908937911661260807749910461931339842759238106735163227731306754264723069954128661286064537286279302876011270234665265982055132177962008575749607011820420747732505311031243945319719507443036588150890970040900281315840001748537071466933042476388187012293595257590799806669073347643180825346045621175424758280252793631344628489448530088481963790284674488297954273814105543948043158013195151980212785275657644641569201345855302545563165941490062179085967785479994870757744465188205522822231936685200037687228688376781751422706684210451470320079667749462420860504422351062451860969425893134463894832057895331607144699171342948521718550699074425498206950445859347556553031472027111326586835707217979144175896175037349093954735580107632718025197591595332296139935689956111853457074462343529773354934748721520000819860165786518958457065484625318207654239159761053953314578921348473943975780892981270101896169035904074695213742305299831864503886987936194866970369789872072305824589478929096145861252492295892106170813285252773594864034754550773089685845449286450057935688242606357840448593353373133892284529519752542590661731040044306632260445775763065938552833161948962143044817779093542884655386217016594226401103393489430976938515479526589722939924926102414729276062819550345973441987514854297206223624850437058945582701573121082395523889563045538996259688948518161219484921272854869245015376274738267646953017141144742731679820745021289709392720078506665724273228178319494491234103010070909338874012413869896635575364419208397946078663122410257259242173484945153952887338117295685054590404367919242400408430122314414751063478768082388827282079754995699314928324842322847753803668050987764406645034902241190539541929081903574228585992947081227576981925752537140331203124537595295479101435764099908058920823036853890820562251645078270391962106459797634110648711746338627161732986425934566213528902189481017683312462507923830394695105348347850542821820311930141795436171590618522492057087725310608133313761556057903120623918910291207161296298508137151573057408683345561861419688048215767506964217853700851067594358104477052028295992178118265462997149848464404172437710975338132788938501658898497829139885322508707127275918417897011135488266787854911527480858337607107512419005751767555162016104223340434265862340030539483361433867471721402455826478848933774699782004782178580543789201925587741244758762276789065317102897237538630798368603675395826655975640580662338777417379519833649494484055712961129398390058676702056598301911648992604664455422492501380342971792850528462879447720637095101782967046820152719782624757941778080182130148937996042781265927721022998634755456424352934775254280442959139286314127652395217927717022722427618457083090190588371689643331273080845887505927436402791469752744326382865663530248444312218706378611606859278874263586117364966607917346444784780644679464243434892586664983121333357327679561032899365686338502572607524373250704872398009362012502179871531736701844560602283477875255564608362432762469442831768940436486880976992600687793385804350854447976111046406696246187315876625534704369612414162216640927770546300827483496504974013691902650305634880831102540356579626572223535448987544340879289232966379132013039765415102941698339688753554783342992429313779132923763275774008819903437458442039459136813235893043836877291929875870224205453815314386627310537872526958760638792429966717454935349717770756635702084559663301211107607053828119327056319756480298216940233301366154254961184588262933234023561708278332173593389595805762809778539794374340448567145255432945948724370090516347721114429012202080914276725767996321805935305211452462348424804669231063330839895983003428918345270449386201822881855276974952960059904114712313890667825488351159953274131719226581093389057708344698657969331119099273358362107280058702979868032498559338054518477668502633627034139762327260415412732236723953475377693275182154262520627630601014684254295037096007765500196821041609840513204542899663357847628999190502756866614744317219313185709364418299248218311282709118852996197666899884153276632386446505911700793733456228192339459373603991489891464242897798920314207689864555443524340102646483044841032332094922092867841933107484786621539559044658873812105147700996694798284673775972379211358761139685457343564344628479544683117124352588211042056267305130531698573743215513009714550494729218347869394768165372653034430501021545406600399769970194432621028703791093544299841531923229141322076715087977546214859022960273085770024926156318971816130398501905849744096007525471777150999993940976575702891502125530606407847078780730956463767150798271214306908200537103146568860212744876688106112936112789749848667916710508435767945842799919093308768565812752369989362011147817968241224901292224985697058831324200673698239399671425537631899303389952859741823248080786180697192629093694323560921563233565936765321258772873479269185737744773750096561556029909836386227760390955448924831815747752595367808834350954332140719367338301494572333684462423068416941095904833378499821423740937786171081864177533274564030683660313479071986478987334175888710067462654485527755697921664142266352591689564145934369206306775965374932766492796927135230277341730848288724948540731085295352781031717042198521372589885871512693311402345694810713435298069346287722328597270638141350731533637751296433169050567667159276353356039808638557425570671392041831071734824857269994501368445753548753982822379454115824100708547754337357993740836038368457080767274165858655827083137963706444417654447145994932781015661016156410216520739472810634950514849088627955684750552453957943550039037024874898815865780554454866754151270840902824193775418011067176318248012265310820235144122713487377439746894428413931456069944598306702801635196114462953726014088134593695886126686810111704211476703111180370159921481723262007957631425197750530412971298399357812522793107610042195696137042391447774996879540075216000416259231957267313376026828616284048259172918502114682105223654474800280536472235363350570324642228582426575292406527498407736142570054113932343675367445667758232984199491874364413638857945241384058195630733030024816819629578217997013012313512108284299433499822301150909400725379652687791960038719723110946677697490663104771186322314693049311948696790942453762742924050090012286971206590481678737865545424036873072332672441728849685006621083339898121641259879970455262208974657859896217257774076847888488239409783377503266085794192697814487352911936163827555345558834475351192536983176662316934012991418735869713262262186331719281364969549487592113986880848368830141113421134629173207352517083693327242505878526446023469564518975342382750506953369176467411814150911146453689450928212434922020680458314208243521868821693098390788662629526287399038176303840384749222681373828454183479080554711204877620972711940785807371392317254524787675657824404590992364523144426220883667594015031727911111910237769849570500110368372441139901121782834318024646195915420767463503022675058353316589311830310583098036623773502522732098103778572255493234321000695325383517787596883617717297393812769538611266065233677328423754564789139577611214127704223273489832313735601291828194534753906279070516065065562231353334124176631489533680607034023913558340007155127716562598485267079227979598274586148558697250211981446852796557235792207849330862811255583271681185958124795728309946831034080026158405059210519629962989574464511807522606853616066762794346568331038988695293820801306581946458460318527820857297969839508950607258421577623081201074609613062126103729507434231506460522917301999387791476009371642215005248326887100398869589221791660637031978437161588141796970790120558004828051192114010815468828434060479051081840837394545632169732564097596413915250924448703578523120937571392469637813508493516879208415735897879053375566250175269496649176289042471819697064650994451157753403340581011109411200664578892728205942264101705189895772564952241180899853653124454577962058947060570972506836024891239430480323707119771497615747447462406106176793691621413044533686267595413735338037345032341298997907198347789144078906860946799489472271473603827748581618218459192830213412476550360997813709461236707490235042689202327511980367107756141869050788905491825897942020936657017154544822305178933312392507235538072337444801415319235792389067496827631268123973589538373690276812442787323229340635278630851263862117158116757167066738483638031121348051433023760876827701990594025475817967139676714145568144864489744923489590238484596066600259715032564879391477458135145914841086893716057940147823370396770340491491437211410796088922780646533175273886016706134009606932261372002117079637073509376887505012464612416836663842423885713856778797521714348306179228777946067823840007183794758240707990759697117870441719893002403284407431955616995427573438414775378315840476223879444454222932791693022257954947433491298887293515204755432966976670973945753634043717452690721808192883639739366549386380901542398211757353447373166198232259867836676256811460453783047152056960569238053430481976456953448889058216727093493819813359800599029206983217828619467459078253142995797416054285920836722153873990954456357658798218209496007293175992941630169032163905010111298954332891799231947821549474103428905276636322649328657553490529307970928111394940294723347004302624499115935769733131109944043992222769479090628439997003780965884855136580749472268500591779072058796920170996476727466849235106385461744393919848118979580878460818671244436807274849925801754059249148421441375869462810462229027498925670413950319815427413948380746067026664718803066475908343819749680659268908517172536663010652913169160687714061373214369726553202795192571176840008620797763099648027493745583664713224613009488410685201768731474644518114977573538873854039341231104820093347347979596290476290815145103625134587359025593118496781385836290166662273158928473820489204851461382221067791074324474190288398258304861494418610021953724131935442128272994806130796713097883169879689866657220817045319276814225947464906550874416384343358962491750158558919245834222228607438544457370789972626681224147934212747613402234156041213577851359956681050584805022580675541749401895237743706290732466681383776017895806435767562752235028087542423823708945830556018217772000995673453387433500174036815382845497465052583071851013933208860815353568760807033568840748867194490074551964990214081021746339024114334822310887013420974037334578535583742378342930187789755309417839451268255834942898426826091485048325404507936206607170519759436983156637823434500069683969176664070268983732683200810552346607610189320197685290731389899004986208677926475909268079994872362311301399086884521429402571076369880415539216401963287686654639108823181817539319035468444363957666575950756934384201832156792598527014875746931201899381049862644120380173997262765946223563546048011180802696129030108701830047525533462671783284043648668088283654859876653659078406948110194820625260678326785791261067603665914543457603538731933096119614114767729973836920192229849613016789590676096504136693901810390374368812529604825850730324183979103132987692257173593304132960227638213821531975483902066209049479671075711220272705580476038910402281018539364684499823081547705622072080352475360660523057765432429425896404357117147311870326806797528217959339427986609965121774695400397569803975070065691798161134526250681062743756113242101825456572684902383121684775206239143913435365767616250619948285271999535159881664626091131441558029736580186440511492303597303041793269706484371832067515086438155268874770403245843128187785276533563089222885839503831373353595676904498289485890734067345242984075198320858660570743889141804828447707568261341921211666386342168723788337320564911841584674127986897423356453698198699935425155160880177703492879911929010012743621694050887656784958753393648604181032063212138809214679093199543793324963009802468231409950828805243479853055083917698388016669255720351905518447189071213109408833941121476476987498104141243148181563735536265876033356958969292297418396684504330734136528155537892667037046173838200917108373755433534709700317384562193206804644416128200485090938404116592123609022566508017154706642310824588571322937574838968612807216457806928587985462547067435929466928598902400883460068227868908200738512053150590910263780332324095348259759510987452524885503999441707615928002196496150855956833245166426036884855307378513435219695467995396867503355421330744880806080334144523371518018082316516207337511846405725932207668887958086597603730114748275301609665554569956238835397651452602116247095735929136106994924006516226169578723276932159083129352553412460113282128412083397501122565402468401886157161289075300139519977031395766529649268629373268856252794925373899589156476265051765092742467163847688376972080585520821978107002887444123015155936150141642729013582396491283779205389865995842721526660736185123388153419841715844517394250951916400665853655562805915414310143889347582936573199855317549012405617996003797725614309239153788243586108876180557250191032040260371676267982326422829905019119820144209491925878410525170051515431558699864296876208147552368854781409101411877879547678693677032291955030078355651030681838764348456812504208100794102848428463731401235951705425021844711508021280074918520654164210362986224573914452220001350523704947094932024012111062077860800858358643763494795719509393070923928566237287721912985721925327285788978296686947926142980650919966332022604935799944398812729203477335650885809870836410207884581046150616836310952121710956604120658173645916201815912251950678585747549209465508645800832506592421412374228355619436063876660800682335683354804538373178818853066392347792978064202325273998455877499336965483498659620874439859734359812729540986016054310683359221597911784056991554180284806090700329985033137669188818939991454579234091263921613481131327987169348190710544085091824179894347772028288088077020231754924000618404695103155296874182344718553989977157995588221994988388601275459082694140994169970228575652444802171523797696497873593506210479518010048123611331493120493233864965270684817133826242170350949639808865415803959096403676800262199791965297822901295665173128603543095295590940787003917285650347925579293337711946926228123917275348357115759916781437562799710544599721455485686003181767905752279228225683947467439794031400469529129580963626129865853646235083170124749100834026062814176545706239908987319956453206440872864370467436147681560175926555350106734747080120582080450471699775234329833026156456580695042807616979539025845605058085055524931112588792077520507257189494246660665897325033645771886054353951350717241316232370601656643804670567953229854398170966203398566105671165322385757784815483103374286853930568385166780279040750416035900366365428082184799283373296447238013388002542857537195858095274451505942649312060279002433673191839070421663527274281699229956338787781200555465916257705043427420725971464461486027261993315724866956797557342811212972657805112478556992465152341857488411671574825601174786771282171513623124263361388743126000769873471007535966082250854015971483764305083444119880710874233925799290073921483006334095972499602424064345189384448187270345357987333081392981456722755148283248993906484864559836304277472001154512413365205620776681855942133201241810173634001698354210055828678604241818279369458976257461151573820249199796083515386822903532256414966821883600285012532783357767199544756594797491159937372903764384523389640276661270501171660848073277468798081505875122198140309078851594830771319549613214368414918295933014009584032185054120624339256931876923933839663258709127871472862555482876342257902037727474669157580776012713981528339896848709713383416734175075495269445091776127136264938807467083998546707904132327876644285249069779798225379761830327590824472821362334439015177138184483638326331628241611990916409951959300603379384199075801986065240541906598771032989561332464762022448023299544976146974807032483077333680460193854871834918339303430011844489077321532210338622291831323344571469415871517096865754874112465621858851931186525295087049335542148026691401190389377400133955108780751230149267838959691930837637448027786429494503486658655851287357797109512785844563351322640112648426550226022032043798859823901308561244830170423917574449776867956151743831973468577579194996676733136199947312703616519990653196790060279066880001105119422592147214086402693227740109915846889175210733944512898170605122960082269434042839861868894739049136672107232652812988825355813749335894121057201295624170448476928837608942793719714562248036941160653770321735197818954516745463254877979350276201244809349946101903384139793163031242867244454963142567930788869954971874711130507668507622257151474517270752901334787004278311679914185715508233726895932871023425657419683055432780250056851107310330647339038682734625065872021987980699189816981231672492919472544904269055068171347130742530242427911174839606887060461666523267073328379984387070878245701111489593946712267713100054160235430241487761408046025301187097008296590301133943445680501143137922640688384444478839126884346074414332480166973136614260368306439961971276713520304703635057118936085040189943467338869261567706838986347236408507133663230263998331932577411238865975792355860766546948627879476763290142607837543698816783221006139508977994430553090259679158760728199737608325909564341504823645559584502107420266572918547620404025343562059556172716809846721518743530600844931820509320960880139860734428209613941119188849583135770600490211833222394307955231652346241885602589666762868494624738616761489637045494813844385141925989931423129016286144973866773440563791062135845599846626754039785866368843653890895398652719113459905138876851527724593887660089418620350387543499316740165221018236836463379499493468717036467056382510356443672455325597232855107264783333641793695078312240389692779286984818000284061976254886211273965764693876110052869963362357960017448972903656578617836783531039599366524614565740315845182893213238125526895128584467650572114176201070215738624048620638097689329338826394027201216101593535777991264889635817391707052848198921157981132005053464894482512701741686035342770292058994694783841908546933948010772820806587880573170282000212219014301527370802939767188000620626664649841917562061827796368287640004872446417552799128381756940178403780465997327054305518488533038101987739052500357441014861840695783663108337533009995333286581994563943749468372225477979800263889848882960071805969342941446765023263216522512659191093498290980902796824891315564989534156988275447692881101195603497385236255941419100901418557253683167910726698211762980207249329481674501603013714305502105846333226424374702187937696244158771516846110915501857504588381062677910969626226084952275643259726246301895680007149717929294299706704567109289442703371888204756260581015781296368181946755955537291083408163376534188222798377104114689714883116545721481644927702310562960205568761788129751368263296891855309168149684611037959617035979422674760262498901837497728838772617210280100720138628057654833021828821181573291495805898179159027285800180530275591026264020304483272305509137322328878899131792230587737220769155699818726464140819296227436140476756089868601829090013389520049143128775146613417074964572169148726184116645405089881912749824716041049418277578253776520685829926583588664719506546652704694250355382366782464695731415231201746504335910048146940990361220810107919838616627488457001901225481438950660247382579116084999595977772207315310536872120651910008802543168029303175961932781399261872453206280870330990935699319395886758497780529890945623106694413488707784521542240154181374325135689771793739006483688092182680130172698843802390774322061637291823667574433816874907688637499000030169542348650123948330643700175345884340908611505203428947773837338578578911824359021107617114189596018645639021767645976205961143023141865333115539332984694143693182023121472877988965768873709306493564139083141526144374194498589419153309713134072450107784542464678070649839005101507487675177085480823105292354890508576870900804755177171813585856934276119834924777486577982191942673938479261340125514839437509695355334938638079735926298508865024145433362978977547844143758020001780409879252494581593247447892901462450381396806044274363769747627237716514070330739366929621060093609983368043157953841490433880847002970530608083796452078874063991042492215982081595928295185844095053033118868933556024786088067489195962062075493956532708174225582246919637231978401489143349804050049528331743762105752092065855883848469112680146718155465803927329996317524003778492113332972590793589897242792360408452419994375126337101076539298603139816503945236451497854773719912883285513273643406184679845364813744127665849513321762339441061443047389207024981978810425576325190725807780620551446433506101287942687550887743013388198427448174812037858194416804925317096877287731700383820135624143824165348848578748112641480622372846806760646763313502473421195719731276728467333726031249498721905388475819842133944406746075019623933633898485651495153970993569297916184658452810678177039968644718350490299126223612526088389847968672978483847647842928560433583578464514318858473021969780769301612910977748652319939502760315504874582451853233013094445981613699935017337186667012465344702518905495008273693550270842174121795306212896240176380892351924278292665568775315923005743469864816670352243449480601706591276069972019396324298720664325793981183104505117874882537755380863282505628901431514791596280290755486330282700491915915713942331438542760828072099246865301858951814221365721701736230202436829255509386812341451336743933254996890391230326654241868551127113887104664682252562076105084930209749143944322227346260637695174636063182135467333053519683738580465897948541061582025233249579090317571250590042933824832876956547329526660673741632296881032513155976382040522615579878351437885951524929775104582470550574247526943796022689575377333608643566145653018070181637265591910382054753464554459870146191225832375268856958766863579002287253235876529143839734521739273696970936060665765748945668130759399742932391570168003609737132146052554833723724439469622317738719758413487798800900942415430259139071835610217463326136198342078438679955554412364397933606583031336139245063553238614709187879391837837635977080699457351063812816620695123772146378807030255711946788343329114558571764646647315452556960635245888770412787114077594684996596924928391183530223209999090045696368693973264756418773569949894315731502822704494744682222919669980199995339928976278640031124414417619199836929901566081599377465810817481090092289987684027416477033733430767966668785586891689926081827372064526359348907722118315221221649598422005844788901686753101698201936495134294279230891875027218421506243686632412738062236959408832985005101959376800627786979052629873844832954330347114664371810795637149488792605423630210133349615314386613713129317938680020060970227914433082298587896413143001930449763689944899107585570122861334962762044423611497294517240791128827361119981282210331523229962914858484672399116463938349393788889442934101596254039683353350604192110269600522453971463216554831208717849805769073748498003197486054000301639763078058925289066448664203549596858308486323180266820249729903553179194012155198987275419821718673740380167563986332977912123616443910005299090607056926172831531439673765423125277621487994385811076025494216838637715614184827591679473792270201837928756397122599712202737998619831470468990765166005512157466239758402698695809779093083471967575820185580872628020377854475095713865170998272961499277897985975560227367807912195957136289496381300484935328306447039731512249293731732794636907781534757965466550610289175021344809501190471726539500448179818303545545504764567800922801647289104224917931810877894150026484036288101901825743854415827393620523730241303163291676485188989404090604489521856926097474038107350455374612866589373574977216669290452633598035282215832736321409818560848037437205107666278307539115033633149105600348165373585041290523138191162367474860706042584638665995136395498414548739562661449251418823572420150723434338091401900695333187070896388842619655930200245123407625123944749051018454279305382243845738472381003126214134515166004397863864053051073178378293902646640721450572624725515164234192338181715952751632580990243836325294822600335908419466087811695301093111351015286292677233304417949554876503554432190238029908700590039777582483734194616056439700448948589617268559793665114670708799783180118285697396478808896853022874178986167670710734649785589087754324483749411669312150462985935309261755029167934399094612897926393499514245472366989681202424656318514680785006279993105906637775343776239372674235224545957258325811624858507441517112396507812793011102643343803481397765011768675311501166285205655216017842544278762529884088067143119857459457574931341022668225458688635873243308771311926366019811807869238585226700509349589692762471305669240369932048948058889963060995421697513128369708596734359215906227445596185306751205250202334886970820455966831306518113660377335951095492170593290230582009860523446420726960880196557851732551054677878930853028759087451691880429476827871382314544863138909786622602769098397437421748451265049436917961722643177348323526605882938898217847599652735350988437609991123010889216676199593257528214979903248854286659558112193511156395529233860439367057151067139310711471109386027431697786100256399422426565927007643332392712748746082042693352789166927549632628749701312256800259851381096517607422389493978840033749063179783933981538893104228471782583926192292746263801562721404283200814243442105493095332565875732270044203397771466758699270322399778465131775876292736209213618254921112507790084905192295593910519386098546089059957110849030904354422796388846402487379614356005631237131768505282807241619464465345254224990651921328307020623050558269520844118521581133738788497321351592308801522886483099536570943535097059673687267243865316949196661773450071213626012334484414216556986538950327840951843040866253026359616247170726861581222608623053314828778480585583637574322126963209797863292545649452090930248667634877858971768375559147714388478796791179662182881503820997621744987734973690030056801872721058838681287270693034692036197702787507629498239760333549287462797795562316683500740404496833321595543780715652151557047249881768295502412617524345981926827938612480000519805179809780849590274949088392291496994356936270003698557655240767856840772002785475168491320614118042936675642600653785158084043295349162057622450177707329900317238433892586145814207405444131278687323818992510071009389597056747579958447585138161728883574842694855233004719153543192945789822955459982497778588866997690278142603475119768931975168344444059734921674170633624523301983030120051307089590643793705512513136312208815777604261133794165533176535087529704603477163950068381049069316537568363110425783219030244806102819321035604857199008439704871848633497083897919751876449315950622557195470747455837775272855635903920897275598532358572736089368216297884284330898763514484090372676663823489815315032480548247611056088363157331219435730166909795916404036601643675962515170349880905713760939810892465728383278503757847954470083352272317574318852600399108039688097035002933554190727999383404455241660005380312645072509194273913266977546393727737589547610570259820589223544651613880654430602620857405306140908207405991486356545189792375364699838159551699308688745776826973764695328657359434231930099419594511064245035091258051389662987014696799042333422403375379903763023700924032504603329474128820259914396041770822066319512707745730167386999448026397391467221885135375424612224349472806128687181004257130024715432586274807370227510778542092877135554739912927356510404042529300563498715163201887236120265859706457797632495322536657594030321751663035412035767749785317992362397485666400701187613498750532160741945132286300937125566332679867912845951457877720984992446516530722922679878872776333237392748095480843126752274073685154781970565730194165035089398823687578078584280638559058196050708370893847731677812072748314213428990544229773162209570422525004703262497484153695817979961059534439266222720336017425063984276419959974306099087302777220737004216372240682667665576012251386503938485603694470617625035797082349688167571501784950380082180254995192625762797967619322665449252194384672005704219587054020046349044979273268018991258567782490511114304786359448768045832264034084650212800840345069523957965797354631971332051736651854287652669066479277458071601619698682886114574538939077266004864901334631564450119244938551259234168546059344323258804531656936974075232385095547061894418825697614042930706010022811486499454138455646207162540962882733135872926114991450619422184774800461153371310761169326522674355450144209573138479686704288069439255121002444249413739687001925062620527314768578937784003223697691340879317790387181882739623480309168371711980870367093461382662633893802814200046052069939244646715347822946818492040763632994354850520972289568328269918044810167248161359543791823256226680038172227477832777809189119996571084100686755015554923573903938096071083963420342654471320023115314429597159418722289435336176673313660703633440190043586712780451614097752893048297931831871028998240284610915521472881492567903738539311019333438322998169066848988607886626506152189114297023005887758973603624598577551998592224555320408350955271379814802670665551474777406142846086141045660990033908122263985854890360179941112624859839704560420663553792359094995494625226511147763069107133002006879945244574896689024986042805146501263326450365965975665109462748920378127160925905315142934754494052270758797095925803765554564816178678199413379956801625338278158122571418249505657383887630370769436523428982271123268368202434466039383369252018260911643821146562833007773070326232175617041010239321574295293196480288446665993728513396270751393765624706217645623593700641376464347341751666264062876134182405631793223601360899013693431008883465497569277925538275790606617485057475340538577723864263949276220911097306387391745475588172870544922896115500593414937634096502135369854346744327867494306347561346047787185447223869160541159293115601656224907146858671581535045734209809663776303829963598478496506192611220988214654415778544519520933193365766222056256877956968357281853404920901830819027776228228084429161118370955623514011742958255334379862161711986586364724018503185253971429303261949617573170375538440120197877205602006634721721110679957341184342519020290334978087253579525392116752564390698322799036368813558254999790166503012647231019473991366868870764513289693766387639150938589135982381256288230206231198273073685933048223396561324613666008996356312243016710365602106235213539278768198177129349336315867415513907792168438563885433537737670458696036943680557107667429882866949707672513292309398986399836389932583994818716731199078892971230788007726733744138700432384797027779601542095278193346498296978751961084239845829396042341936920458750809610185525069875181937167677115595748031935422974333383305512022553709760829952755118546383390378803007238924853695245518041051946911655191016931016040475487723031479242057144024559765112065127358381296749764267329821690993335517854993676352777394185448021264774129243651260531307273059961543367878115268109171272244560104303616227117993554342958012894822265095602949091824057715748000828910217262721610077792943177411873921388886665677630697724963389020964450776808322460336238374906822435979618659768042562209210529077153856009270075737153064684233371234669151388880931098316232385494874353726631431091869589098421451446061299659636513940489852358440796531974356708321855359861534119459513545495511789795826011937950342834274418408229072215810806972730936788530150176757616609710877932148940915419237982479776406544841921613693450726936987355866506331054828452007874177379235230880022971572989271085600515850940610071674116655235640730518537115294371153496484004920642098380216721725754053712005355497601930236428819441522846986890392176728236212865555906405029092612979640298497124058058874838017419390991518829451186587049023072128491320127334707777119055990803569613412155529171489850157931449740585202112807001942452142180052979148550378702563582576259700654688808572379925724368135726830944257158156763119558508099774014052257611896856603950427183871062827134587001139777229443379585993183139747497427922285028469920827728156610319544862278631926470323584055707737839972780509034198053167162938826529227817432769552205506324602907236774164691095731351285231967885170060632435527589904073150658195718296447083813171516393838539086361322976903386393155200220704541935825540134794801181649668745489511849700986180874486064243848017936279034984712997844903874776480299798521915379975163562846040326254689099664932943590962467007601096754178429010136606585064670979617284758717512588838526147980622814871095158661639336568341517898638488902396428744955788546711512740480385994661743864689955852274693001639404881908085886459013125443345463412666392456050285793799791549724981226631696144714129620047308918601941072470054838327557822086211836715704187765172875441017236199617301058470183384332788334332940664209309085834280071399944473887896996957541299143945827147546643846627396104097748960428426325020079930368468933783695478029753069590332365108967339876009637698533643722901754093545848702236266010270612994381328155905806371144827898753097365602849939734849030893513799698498232076717387483381803706454017387708069040972444379559540538855139354295032142458763562256523160662868293382115870147239448809763252550536634667037297926778339897438557583296190572060675265081941076876195610167711771698382547021336805235503843084072754336446616972631496331043467213436282090143563233862012825787576308622611880404353215029269051307891855802862149236574764581643993584374305561930647886422948053710318702087734599783211940960415706815782250567635377404791216519680077880831031512048629807668546055071707546808288003480879527751171392658629274837921967683155265053316476215350056394143392761568065541870773529177853747023530754985676953398688461245416179082423915792634105615162668082186142158239788892049746983585574988146697457945780212804772401109818905106766206323373797568370493171096354116306268900287077890579545619217950877695355081594460040066512590647917468798985246803361961490055260264016694667661592794126954378641761285837099060191983851805268394078170968991710327709381295909774536394105837453873195683800682429224185980582920077494010466773595389815812722913070730260715219630704107205180292363291044564611282980234233238438709047753454691550224781139289427662969491559080109075286248074358956224396758185523749956306448430995692470124236015422674088276043014468267161717612625505700680526326909705405144576987902120372662530026325511078974895630183079770165952359018789680441287099063889450484774098728928950835679666211835727021089729000646557735922682373191129129892265101281052275202487012309551499369298361715228236533062868284774542781209261124431701219033743021233313949810663061395806490031538156589552082182678785969868929260837671270755668435224241160677567932994863088603351733146928738155544349939543491787052084181666749365234972892969841385559859459581317553208146389551969552880395008712504693931860887405989573633315969564051921838701642260740577869141083316066998316740165196127521089356529012018232907951634595653814620986179844211287158405143171673410633320764960007287130878094857922660068844865509365439763264792904142106921886901720550703488197055040260076214919697637901350524300235743904754521664414051433853960406417336419031046757846607164345383531744988153025421156679874979857803342326125886618090024310283766164702672098842747844282008498577046751149202309606370418135266239311143340239660346983093405943725850678958512169811680636719934254583058610445889631992485159787348524285596941660748991998524244044261302100048973790909990893276435537056786750949726723547008151749639419543670018843645241872913346514280320244270794496704417224178316147476666230150506898299827206422309391892645199015504316765121557372858168480166652331649408847161095048550323754872376528380300255315419758396227457358033033651380001455337470478559571924384983427170425501708682459737103024673870014588575283571831638237382625831459307900242971945465501788892565776095934038970528212058769141774017984356896228487695992962261423752152116485111174355036034206041364769355755963239801315614963707222773084635630053346585529540510054721311101286120457566100238849580912320001120180844026213250504787705900222046222197756482831764738262006538198942451746062525792441324447847661931854544451439734392177489396465113048604005545219029658350685316499154041057043829509845572252448182868926818288588058393733534219421397708559058631499960597178221250808828089681058997540910135527112286934616448848456985288612718954064147111521523628290982926299933370452240170199211098365349780523840491139577543625161687692845055618449436958002750519705351089697043144046137579724743233502976811409065396456466520684396801281876429823681237575823180628179945339652805764634160814351036301783728906390062303293676156977202356453117692908963315825703276052120485487481305989211378163967297889137237613551994426120463433693430529548803703708248268718542442942507417160915880263984531245630094226670436490561927018824284475563222330767277415387889431737768877738822641714916295978799824076733514992539022006974675368878490728543958968522359922913061491853481347923536842489913817764119348973690913948126635403240399987135612880488317807940027278462190861024522015298437834055387138710731703978231192261860565192420154033676444190404120113749656287546980243069243749554032490568904643929846382033826249406446678683549436407939499247956350976931520078484252870237777179492763886393997357568294552538496637165509092803347170528327078656048038539928273730559629967186861518848499602855777101812038937017732312663766368571752915681288849065775291818781431891827368838078882045619050209731320681680141132153468264584801761458899038989022385087086466737704475635272520423386381829923503053865578835227815365248534859689356535027043198026698636046682990931158512942111511449822187376447831799429830254709942673466109458603738821894714675635147444515713131625623544676535052833792919967296913353862856890204448115584537916623678107140628351645700280429713902361513914616412807734566064418588450706375535223104571666024221653316596172497458016538126338597841692566328838693456744290158613733818358308137059410389607836318082768161020210721329739981532432257069442206152835864330788718134584572224207365157427731529378174520954589346807115139745218573762286629449880531243196805669426280918851128808028793860727926060241573266972054117438858813840261613086271894258030654751479740351538609283324314454816599401722471504420037597628432450197317912077672009597419182058034965241945258577336176591871937202268370370132130624199330834829889461973971387528002783750379616969137915442518978533253016291458847109017347389391471033716829275701831237047256254310918428739602103485826674533901061474618734970277063180590335231561052710579593483027804359946861377356393195643581870123519485257225821069962018043538728622027022057496262428344763127097456773582354828443805910656877469004838031137032398372950179011095206017402679808528704030851142815713340432229562655702149048495115417134154067274841868586498654419786897671475467276750814977807208694268371289101223176825933584246512356364403709470763640027361828624179851760982886047255490738828859870201259892798065611042345062370238624991228947715435703307874679721100363804794506782156174577055333959865101721294589612572634717166592495756783036617918628158538974275792460894892688881728599843680233001154871530840350312783795611524321179103705238246378167933530559687248762365690608670507313704069865006476905887764867617814933412909922229608920829712763162171353078976497991486415613598775356439617123997136164010831389632816143676692307242008062798965366710589918350324455250719632972163717931165666195070943586285396176469576059374972117921318848075436788275756558051645104605332148121382880154968107219566202638562275921573856907480342515200442069966360745309926991510027220387330197492753714188200940360407773179897919366109772516910531910736649063013672005517863164972706116765609552891765616521833982083889367560308447734925316760409179176796874652419631843956878747600386105765677970001881128169624280901129801287677060811406837115161618603360053569579986518517835935153676604581000361456310950672439597434072812845010638241471016002536070995160895083924736030396233080541052761759782273737903187673878999966263895866255067248842465229276770628199567251432630643435638048798388601102744753099361397654231803833809007201341800462354466165217481541287964365872011832360928376987679777311057176177603972518793650313722596513387775482110999331475769525088173825677335343045305758736517971953923538355188549409675432123087453344767328668528789402953007785436149060885593399666327518728651013382521150152001868080956030954267079671394320369141848705258359997041469282134746195867434838532030718350019440579857452646541290514139346397842495590788296301759452935949981828357056173363187277968289665214111824767315818184131471053354191060159251605530727206781013116098039101705530445608011040038810747519602278945119806007752216195435621419220641533614043699435246532813410560181820763060398622951041501471673093840588156619235147904125669594973940124173089193144621905156516282425367309679022190375869943952844976629689797012534762750577741194108582514622477485873294751813508057136149844730693190057777048665046451973765600206330124652163792184248593834384513801579930234609290254360045673391677740788164058358094298817974587695350748684905340306312944935326725827241686425838909175559573447330247899196909174860500690044462150824006128201804504939661998892971137272756076002436410981690248009929941107463616786577101515581118171446196612734088815487506214317279212177925613585027494557300794096066140130577580067523191428563255231794957757532612879583482761445484944568348202481485617174013150637957292269904631347140099913609493244903330837189014046652592037791239951400574496810465155848739331676875187111479128363031580836836661090699164900389519163692718391721673246766143544143230234368763245779650809872635737697899082679164071094621731645315349054871005380516656828169614207487413344423571080094139911254290231742938657905586932838025955319906624056742720760421439964280267399385805485015650583494541776368553462293713821123653545760895128422094321693191270599945201054432959584606719585570262825471918437574044207847236368707937350463005656071597291430184944788293163191612147909572048760203525157291741142346741361724617501682878490837936012374409156043859467065082474161415529757673282602301494324345646976525331702184326834197466259992385357310466904580409651331564552329314630562830667169496535675734590163919022904811152726497075750310891802382214094866949457215522156241308244397420214743877907639415141513198093067885685166106492233677373739259738915586922868589832479668705300840234512083913254574939324373278964235779285496293930436394272345719340960961378881241836936285999401531837179181640361295739722196550822573744722593694357241785572705720493215086435260016546609064701647339724458580278127375670679282997911133305980018850191161186976653096389954700173066099427842800985025868428745314476299193554412057606247538791743921416267249502276033141134963931019909058487117997942502108907457664817913310020203403366176037157270963725189402629667811378295719048799346386910794878902396241232861884712610377433806845209512725206308423416719367835931085868597772783113659037338166031590411581385505712971941960706596204026807412376017689327213913473298785146557245230300851728657673225891791906611232375415907630853371456563919844739272423108480147183607545600739523898038111763159763370394233147884118906107700672387470092491433810906511356217658648015195750676833716078718696227921657624077676700447441768154510028025756535518194359407237023241286049380006183897075623160464910663717303407044049268842883668699149702201736075473745628289077083766273510662256555242853896139030928393407044049922674142563424288373482126686986342591117116682562115670572294167122601789720017794928161131247112966027597847842097627010052781066265541850563414986814564335532004437667846750427675155008873735042901260140152819722873687290880416579115053173390018524544661717089211962327970502638862901171585387164197165172057469126766385324734721580950879096524300743657879768884926588264613009624423182686820080403723464665459064148732694615742189096341689428807592029991895283294485354416983855748261795530765937251005911341788735480409567741024178314311916876856622173088191397412860884362443302637593757629318589555959556607503030065543199890608962170767218101019594406045710366558495317736042371030727859964952010056304631944930568039806638971644007040860138967479810450153906066495464285581244464017207242309128289843637343521139020155592566587498580034100225161421742731166049495783975804329923483868294003888931186539061351268142001508035434313490254533991108281475592493655219476650213589120827853044783514208800304526270042977875617644431994300341670540669723041475844541099219814847624437117611840562054091817422067680443138805132725862534565209231609615908246746005102094543375615680602834731646012478929432903095930895307143254002794150187275539048435990675825635974638836253296785187558576498875735047541662551937572838096234337593979634334745385433008339504758309172865247925972841862467724693708494742535278114364594504847433850647498614382480119467031273699182550468871488109304679003496429865172820537366944389491978497756096168807995408218907634992447425629312489151435044948338627595312384823004969007427488021855441218330222388049522403814521632419457467494595140953594373117130844685943892652289385347192464485430484840982670430177087182494827225680847557149819676977321923314689529290182063675323023221585690867567826052895535567771327842963859678785055904615323849691075631941568149303611216073782389139939091840837863194160028859938378287093806740296797217440995312084130613603782794846340196193366345959156400392974886724636551571825213198323896529655524217955275451848707574994805869869123993304660878553069836292573956045783634647519711518928760856728303184138499135833392163445740573800401768916530623511805020043425653966927837622244208130552384586944122567173080911586105380874685789170178412993437430128212952749537319962078883842867190971244382827536254066169021709555234626309988835699984414583286177062853443824582802100696626000627320416846624194661501288337840893661321974111024976915606921359880029819029441636299232133369487261480886459036649173734282102865836240915244422669698253845701391797621486189917935897737852369361609395695417764536962259791115362944883881515448396976157750382664855339023668034676720658802545951884837533625626167776584072063467600247676399951037411822992710502670182448774434662933653799356897971332340389105086711095605198765885238751180645857607214877069856822924487740951016714934833752680573297105981379477279147455783077546087883311855574130987528591551953051710080183442250722704651132963819879755989279358071618544306652191727091557074170632331383555071811652991179067361906472139841817652108563676595146097701201569244923494735786936057825846732042837548768651524163035451928780272559187060597471110715111384158970972829383037482986834188545254416668671100921453699335708754433361941141700350808023742511014093409251633503035698000742354310442427079811429757895037447411316506768585077050029032416930914749773804097337880916021057939273081271429739863693226771143574113378816855406397918599702414923216815990035191380857757728880994453694552603953553575387809168626246934444047057997818299619782660457745469622033298189608286586525403984988404894235785599902547507285635708033296093256387137527656323444621318078851496970431487436281620861081846998508406246715488528674975231359329790585601800700122586217657087018906601336452003265008422786748043535221174104057016775550035643009024924893961790206014685245925032620796615940798884558040524303079247163150694090957500208638244652774268489443385682009617292381077183355351690354933257491688040264138204749236194228843577630795113312077330453638070184043352962821633173415760175031265444218226577975143695460292802487095589237867899151347046623387836776078331039140671915614706710099218559260108851460465463219191577989352073394475657984102182031609113131292261200629996410606026503732523922001080495286565972449707620179610040386258706658826737956853056239248216772809872961306692953183422906423799440212651374373678342026891573558972958528135726736782792044333658720319003429810649118907663003013091860275007890167075839977559207603171136128958135943690175091296414720766384209560711653226253297809611425391085632249594362988146621735070014273969430577048129090117237595991306504338724605308741856446267138457404650103528310514780671814665241223054284437534704064595002046968703223014717274363504546780999616833246951575304099412546579351289350665320720714170504351638565297449207391201115241501831179883046818142059589857878089939268903310780260631508902822366475614557715468877113873638252579261506243829075916626528894189225867279477067146599648449187645157833722364251625336298666595437925678371526627036052287837307708186720017349044782232152895117684489821952479458149898673739266625589956067218239559281082410997098240436895821585010682662623030817744672935199077668742386878809904608376119066930523494168151878948354912744048981931474316189891127219944849831350340090278790252725062325019799605350661250643359729935848961994608056795857289870227856908550025215802770598416714128084128692194083501641763529949948723174761403032625131279818687899364888189515582757361731726873944244245391659843424167465799672260126715866654534154922234112487518062617266427858754452527605499285247175232848707044975364094136265323970555974658332290043662650223817723358858581220941296026900772709635554652330070582028830008262190381553017827210317543965670646845434124963545825673673714778323765296841354725928859693224065324794628207691259433026788411951870249890804433613756013749836252550124572932785189081942020325638914597729214583109366954708296430231673621528724881411237091405167219365339724422696057367941403816231704967430456674847825330729185866910675958393543782824859851618168568000187565156864075860826274328085661743564108213591961408612984366234699752295616449375486624744278753023145120572969811696813495854623011690268179412288789581180920565344914782715664910467840618952976894635532075702022076854951699095929876684065277730771223660276893709531038490735635941219020563339177539347045539815721835441418791940174350994604262218704922791191559272291945267958794580650280830281842597527882490277701447227135445574022326849768516048352207760178118652610729473493423579849261855740274472202402174023081881634257297314972446672862550295718153032059031842816199617274865198868177435597141155986359919701235381427114028353604902133907316972553331947704855683568955151979794120215425123077693381669975460152825380566857057427055100074527530325842406415066235600393855443522344843137071912537067372182630537158949679738967753128769960231935285830135420977429681242678860976345371376690061556054253370606900226936514773008503426708657646621964262882978860756674723864939901848921375242732579662715963761348000137903862311749644484486862742208671443844823349564560173313002731649075547667251660960934857777467983525493582336265916486330399698076097403087223699748412068377068296289128237970131581120157143972727472960021417944297167945944986394476568169405553362632966029852079784817595243048499541949084666137241354281651097358056977157100816720374793425348106764202964148848790016733740845064271482625947575525123840498048242984417109302449219722985572163262755322090059671437573445685263061861110139617621635760626358572528303876360188152168838228994223407912021618826954370955737208894729547096254077634150592217914423871214266323398573195338412608344986591077135412191495889706369139945559768824387723994099804471660856122706801482152581009816981067492741176822819777644405884317467477269490112076569824914944540370290076593511034240111583572304994673106204015009433490267021486397150332924362728533240742840634499145985122272682177515083993880560635274384436198670864965415813917813392468057873385337904622547549728528036543937303610580093882388068475688127299941314149505940290310822118282974730949106162976301107098562992253625205235701522049555539348807985378086212828090025574757980328888512490630872288471970499535616578552563914525222049713169146893849412175714068769376199616667901158234145918655403346098453621746183373383627024329481966693520466655149240093429919078468865035626503632502525652304066702686318003182445892916533981751475397641297769040975685209158229982385023214052760615875516600026307448632045044065357148092912463838420688324047292372484962750497483015016908233464235818408873811891896835021852375880472626652501560304588240415944862921298450815357797414324087876470760662083544042256688052018796495311445143920157245406330470704808789967086757552051333459698007239067938632330964566934368819757340521616216746046330146587706994909226527518069168910659676833973398913680614467449255486929270763656567053474126795569849843692548746845794264153809075870545396998309714168184528472754332889172846082841529488646117277768987159642352970227560879897782923138376823742642641679881449934206814748037166795797885352024786568707621400221846080169826490539243750175163586525504228156230701420507893557393563309325071405985956073544287050856230112725824236966370015090818891456793810863750309280293859538535681401205185297336636469950048770517295208115331557889259578564636026099264357428231387102925395452592067677234331662449056632129149538477057373613662469631834967288209054853052399292506053946884749647978875970605022604879464194485553981429408550558469256884466805563934083060718931966285362168171746400102486366062533584907040910246282649040417027298075297084181425751147288984554414992954074629271921715742873054189996264724881959928183890198835451477735945989713292521390442292172681959530449868446914705489092098409175865402061365344663618527830724444808937120866638025409956134046321996015964877589736051543263385408807461909775619221649590921845248188119999122140945243371905049243465101514452842710561816540872654763396526170894034508970677523837445958246190450433514299342203517473738096976142361548887916656529352047547668926127427449881855706097750615071031840651149348915478204772362800293916063427910474203343056875065530395087723358510092544687071406926435516885701250885773209968576455517741664325170592086954400768263031638853932154940676596145305011181252175146968723337254829638860378390936040701636210823732542501833519849119707056037096137134149175755021463262522927296411776721168845601434868329227011952095881547412638017620662304124339571648754689727778069413075624244440361347679952463389207571118635366245314863619083966244626179165877550870975564517318776296949295960355271202141795170752476305678578671250399678976612063190843676366837680625277372423848651357823298990674224113433997325923908570436555922339132619886918326822416763893837472205232503475653956412066628497185999403226734576331281375876786298664167522113701508690829074214680592538693267670253748541825585685894120464529709746244974225378868294952094875688490855401321109234712560686814314361030816631839117483106732250554288721417267567921743488388989929648519660048252944809108569616667863089445849075550611601864880838494154716182827826952391527802501219248856046604168359632413480860255449982002252907810468526470636060947700153172663278639353078785798147421056141478763635172898802054162089116375171282021783844479110127477112963602694444291675469306333063870690927598805699189194310793480341494441173545733981055588298921192692920875672120490602114096996184683429100305676277254089634632001926831784464201433062174165586837351505718588249347730154372506901087159213804645661943666472646706368789059733910747479318904295637641977835261412679229007380440908138976457505040140048171913718446208201312642152187184464142810188948295354703378436090145365625066709297522529714801753818100400709233151075452242967380230950054665928693049414636715671936709687608983741367068858073455815459460426176139513052728289910345649730918534566590580487993856731577921251935745973206321649451888198265813509417627599113200861577617501855088001619794840970567754072122977482112552875955165504242242553408187289249054457887859644224838510166095819625878199637610163119563062614802608576623282731449560929422675965258857608654255781719604075211742361969761224931276769237167332776339813772046647064299325339863911776193915184222488265302533638644977419864267767805552131765329464622162154654692530545557956740659677580855432158557172785859793667717870022829538399678357226574856302340375371058201170258008382445335923009850701961924601261665095485480612093687806911441682315267959785197496189902541014540079797520084670682183959408559195057136737577153438105343779301181718839579790670368125430743130720041174736659017118997330519707328441353718587910496729504427092672639144397251055410960893518108449388675530581831943492057781357397456692943532129222285852482281827968839216426771855603431552126069209090677710653423138139129445815097638688936991275523358971228420511550620195297100344624725133142789205834509611314775883089374183274072826531233683546511910173360375759120013655033285549473211774989140388277093334858185253623722981794771495580081818552954960215151628253285786400519023808046842090257420354787188589798706896798255161675896942528174136524552617788154260765841026358914130031383004411457888706643109679946115674419889311124073822625199499626684459705211655063620961187112222921566706877170744688860632720710693490047734420350485018144452093824801520897504060406369752618133831086077375158388371711313817310938267259797320268716028638016499641041429653706064568045983305809792625302385834549516935832626278583906230233593459065330112062519758628478484660389039772996338822329419137909522658286683606239799631271547579849216022017279199412621377793271610366316539170531444801894453778201829169137827510165816977465093686989895671093397276315373368610365477458737216448314484576411497826853583752485701266704950738684098799396756270557721822400742280944611371099168130636619015125367134930218462747279942426005176233297979425139091366829406702982886265593693697819868389688574402999137131272094446007819133828647645608685263719465509504512187275370223115334750458683122291020608658979679667990310861205271302112359099266512739707130357347795574485567962650338623965727008878765987280425134726748535593730249040536074215425425105137777970835614922529167464863524434671188465439499172206717020686435446468436791725592113189330216631776012910743719938687452102740041195984282900009150160957167779414779253831782524269048612392400336273605726264118122701473057741962135412458725340970645215459561499490327842550484744068647906733114991520437002182230176663236556119282755394505754319333109840846866500161677694126292107302265191216549753775956822259937871552391537940735170204179714373365096408133528276805427854640954088955626219846008326786667669617567891515324977230669987218099744435492407631375208717087376177744508771411220815244279041853671299425944329864428020300282866225408418327658580004655966573128289869908445869670045128378292932404447634976498194688283412213265946152105606376766244165408650002513094914296231644480585565159980051955299055950356251233400377180631949260575241503282566297186595504870937229024548285313067129846591133093988582472740773818120465250684007198395734385807509065258024665822347918004852873743591502560496446080005069589528627458521794080849174550679087097778707581960799814878354272232611561145677040425268918031345223115263755010340961552911693683365334620321260677283181330624918104092098382367907598670814451106211096047434469845235587889821021298641720099095541830873886178900372694074448895460896560635359498977306387569585945757568717388327614979239052570717691385818094706002227417300090262470865842934922949206677757271736220851537641964185613968216230575774701150551143076169903248266813411854360798952622393053025071004857168612655913991361287540775721580992791536565640245433821712571639434589738608611091418669070803451787542499230447289847715531712433870324599735856242819954004139247798078564728739286951702369050668504807453730317453335837869291031071257671427671197256262675589965624737642651571352040658817149680987848352971759954845291943740842256036225535117255399186091507383573890007985305088438456656722294732910915018069997133220932810545868905749174325387508711266794289910004314680484380793317200431345741052635012230222557811014067282930914801100752164467215425838465439253429324599114293099319991008488305982256044002549182428469200147417834083398990810749826666645278364756628619629637926592754636988358693241913063702953634661654342217016376707493970936858455629026873704960533031246345138346424488521041606007647584267717888470761671593003540013836843492117469641520722370792227999318058231217077943735625723824894088918145083296287410542673431051315193085053438288430581462406150865957894734580173065069693024585010638838364389558092407026191945132694821499129891195492026514881646752808509021253421457418053326115391607168927268247283262535428279486233528921340856468662089014622431138501206627671714599638660764580881091251428628768862221780700197435155023140572172796315761440420272209716274902208425040211790899277845842419082112029168136496650798469626878895211077746657633322687271324794119756436829543856434851402685894377771909128445833522606010078684072816220560295523203010997179773699083966123023754058565058328389100820350771705118793454697396479711185913029555533731322167936169066853266145867494777449639623096453072813346072732559260595681826440600890661257840022525113481017882320759532468704219193407654389490164011182811931974613523793942220893339150470595850843973772364875549431216471536823177770074069894876215077813352065331444225027848969737664853444820851083898408822145584468815111879562383577324526235653940948967172109136201069213339222582673173560223343938067863453166086907152531601835715652294229027461123954483065323325797260169485138405212467551329841609230666404155805644887100563933779223660177817275176763970585653471339379330316651242673836176119375627223893335581488931612316033546522950020640540994676831269659150020159528806913237715564936537747264500900435280274091179149190533008680891238047834818627571485778909897012104416699775184361814429753457200554920496555961360119346974140963827336219590177293811029009118798713826595894817591801348203313423983483293701382574092935488069792090688019539736908753297787968786302698999921818805996384040147073998939018848130572384928736999939158342206224143167399134284602623041230702470281818430869334587651164606830081373393881605202564924323407860181511321531971222294732125583966253445739602961713056442574974361904450732106901099472030450707746122816833630744540216276157943580224527257180791178773794121507223324823548510454233879724389748795739513414013394854580793548559068841249847374809406644434904274884992317376089901734660873179333197820358980079073001170681788207959261548528421415256318696098138993510499267362422875097107949331054650300173356822858968651492254298017208469066189436860092425626761082507390428581524616380914590504390649044218605520384974516629097693221210982491455087183658725781732130883789012494701762049707697542066774056771794969939950421845867110257105534503563295836003941317740487508591103333367252447416612824225429959663361265483088132262508759346626786855675023468596094687606648098822287638950531526485199336564523091816953305312305912701796729493208177361897030911667777978211954469363812482686825927413281452543665290349680561215390651570316677128733689101515644797545883256525911858370049328393269674653450225262736913871974264480158545704556804141420838067510931674307328102083511161096702077303411296293081826454172021835315221586269373440978038005697097612069144122129733361554272959620068647689822576596516138500432369291944614273796299795530189322597316803163941257287187615601865940338925823697383379942617423470786200294456012211827953623033791410519267173116482989974972328489786437666458515796675611223312252469235322911442096427531568293702718016525527838533110170362743516064947222229335063390692350674750259808203346725771564650955524718841892332694450992182375212880054326717367908013732617511568497962084684954778110996479121288582778584137528858890550284538533080447290356162987624066188100609374615732402063603444329432045646861812056622802894827250369497433962055625915234740000455656482491220211312976084243792515147003103769082362173065366386998458085224907145136544893246010030733587759256198645868535807365137580671641883080421918357577797969920131571423007153080553019905724346016740581029277169569356175027365220552635503968921638954833378078722136931368146883659629906772810889279404516469917743831733541053706127168543914891115426435299703098877821530353764983632962404902547448596361346898874849244013687729528705601834519081852597964542434096020793690292134241379773883548725188664536518601091873645484790220704261678702514290176678605447552059034346258829952913175107362309574359786337864544951566866579567557565875935225724169579337073752088654696193622513860888113534067979816586175177496270994552520957387312238817334238282154955563591343676191882107448790034624951618512249887152831253464385283445875168291464738954927489499090791423581135921586590375899018427798391308984009087525006494312328741614138634235294258651655608874132026150817972992204584325419178058770985535938582753305302134616730364874685968268083824860658930181352579202130595443532132268863467861537387599010884285671774939228041711144446619713211388224942211253088152260819719440467876518095643150488896178475324269558693732743658936727376542608120676949394169783843048588726314928397926194466698393061750575606839097303656649194553464275042385514490279765609456743751310834165809937979734166271204578798004941646328558026632462303306696401538735504945462509361393694794059970777350938818232804631058211544777315727763604740134305329011537474005294320932441232153833505021364403554567074689272973161727733733491471220248579171244537176039741125841404746211664812149316961772238312526816057618845704978399649722806841422065232805680471603735598030128183465054149121091831319825486172332968963546591411499299649368014849530262644940873804442577095793228796212613759664960305833155520692271885048848522001192285226682747087466593184917178812808819748135321917372920466145034628492078246559448596566816645795379291452928658002665012173940610008062999604558697479134707844498664261449312922340197839761556245914009093043499169812510960737114927234481735965502050809261671397685458437535660080575041303805519096346214058133078828114426692427267216805440987878871189987437895598646397629968049251903353383106908493281280458969042396492032268066323967098596330722719609061933416762307918340453758713203660489122871452916438262988123323145482020261894189031578646638134679837842091065979238942553585604315063128564165939434885118450111010796062426974461102209209688265740983283020503796924555972657932572991377270113749086205846584342676114429124862833287243885328718993451971456920656038968216523482033176669971388365706799870924965693375183696077457928819801108402872825421317926553415420123327334389973113136974763647730818656120531874622697654916645872887472716392284734749824732763260164722494756840651891219126750461389328483756262819487749414933246134462276670558350223074930986262931255417234507800696824052937045987795801416959029371213625645266754707789454477245414196815403644252470468280769604768885248412407727357089295343560661352846981374807666584665889345817629815956613180797487936966381424783431915700028617451205242594791482149673888228797035846710209329009241693766529412666950282032003129950750341518547225668303489387119025973201113437448917188489749466641052127997467196947373732636110459333219730104196973750357703495164787284931895637559196635867489813922576257425276690179373449903311331383266429034405074320575653897682147838445183920985166278388393681184533378791980214440667273166887057571139417554499350293840755726891058862789422234330097286777291549802195120703856521770910968267157307784207709216215821116668712874738064459932447224882886485607249411268024930082762168476211075726037953179970006526718985802810234618099268332462916657552007099397181469729563935098725700050108843964214912731086608393243455133744181427136843744671458387170518927035325015062823120894335535167120163289809686198060499226847187897356698792074455239360829380717776945979647144679623304074510866508558888426305814911483454644138347532581313243372814232856530597364465297832876322795937892663948879213926497123666697869964153137999573933408203075473468970307418580839917159548535812683451090393697151548868850391915819261310186443185445202487305254610340851488218272477868703239520327393930808557760443356858061784716353788146755501660767958629786500704486788388964733305419222232064168443662741241862662043185057127376113479422870915714719628644998388230304919601883212024699642045898578725259556386365505381976865621321551901168989276867077945869134156898472263790356976352244032535675276368143754893553340183189462073389641995510838267728581177458558832436866432537602536499906111275634625442164996360962642158802069924111904465788181386563411726083296886382830850120634043024941651498928539302416522477694073175709885792737661662775318443082872131673218357512260905442915846790037015711399454980851045406421862313073070466458949529133680882510295033905478973652858848919955200736932809095732817539141886246360837473236200249519451537065025698801410841965816069262619142408628861857239138290870326347588968551351457767090281115419744182491001108861958307458007822223785355997258972690283116797111300405561798752915116213127702587847329978901871413976886749590542080068387983369297210943320161920532546753367825705724214449588246377284554632122104747115755159466825628134091626112586698081825871797331197559579147648240772416095617566557549242295137488730810509972389364195965149244225168128338775791493667979453622987805839756584805757240380307462941592258252134087583056030182835293603120668538351400789166883127724141663686385643525451040648576143319043817957224640124081944659130151469339089351851008078990171492701783295140558456560711098825572076500405949646598115470014096823767487868657095664729162434297049204936203416904922942120072404372042605834309777144343746616366581153141285796864155595535887222112138019649009758823211636518886418267274315245908656536882280466741374139151507489547162058979960744781803297545369670461080036768328224748279626536821647908199534427668546512639750450865951461520899612640172707563044006374258697932026039702089103479282039717739437231675516883855770077405046699334330313729511647675466378825520649698574040420093355734056628380949510433027331071950296047030209903812273734345043248980002433218007132520208363855874268158551296207731279862215752268592899595108142238882213586671265199035041612864965448390338425864542433355821854946803419321603189216033661697758642319173063070544999777274539665398301301255355499127175989221242527552327242372056816781489551478761916471582167504995485232036727158785757841081813613096947310997061278926326435728190820816930277821819204986540974739495949416900577207356034282030725699421354510919219782914660213049569172336885890666997221232437671185617831830514490309751185933025537002418645183541208720359535516507715518831890695329831461683587268927531837703143682456873990392089429803902598503468436559075423543239227170564367536140568753115607518582064583674983673867787313988363065951280018331421726288196596558902774162955511359374522507272483881311475639607947597724954686522711112460304705010919580898144984895261726137134698566757135050397634826928296896827356654514119745758307655588978072358184218056105554152562338539345481882717928803923519792569066351615087885961866796184118653357634476993714662433524428928854406864186675680942710816668652715519589189185120253537648954224948210140545071857685801832663338801700692279669109745781357994257547094542561516725276804606366219357642440972018183902815426699513827123373886475320679334940060100233641805000831120950604896186221631972765630166613046659521281904767255671096205618121565642022988148534898057065729438993166537125429305836647714915131962310113877424883741818998051242052992581562655219320896160415981985520232635221959625766290819693959871774156784029964840281259127316306615589409063676478983699612122704990851626312676019255665053317036219428394010811139628867461459628705936434553940861567252676225714147671545541980354008392553759539762339023425541954519230592944904063687676782638961924037884745842414097184017781954708994607169262599159766251382500103094329719444924383452045896714018546800191192472860237857785012148825631152470255031728623394248670998346823921824300540865318569953404219247884165294072859224240313041425635312475873906915011151476204700341048265482896181997968390704748546932188682850920582604233620623256099730028139196334279274538578642127889110407192946310597887200142830512100638070548924922261733040245052061403678765779842213060825741197801080550473637997092192490753421867080324989752292659888188824282883451641504953628867778574288169877926679179751858308185737716644521740576653024039300604182128312357336631042935137400107267662783424044535522832695725172757715141761268475306306724765585384789270848574025295991723664469915620525059876435401335530186099383253794437049278767553393253092277212468106750503375396853639738852360382364692372629134662941161320580990466939559030013362607558715711972506185206602550426155196088132056214764476775171729759936508989435049118367308069768170621322532280973204393890860672237132970081741788273911903236050362868848034725437401467815695043756932389244605700719532926865912757454872848733042910245121830866688564274021514979512116245907357671612380943769583654913402684552760621243328047447211414762322468064121156616597904098360094257775092574984593243302978454235804499990374979127147408211678143282590133452607351023847593541817929017135662775778115630846799482908185579048651738824279424815845852159295114145545142252730244014129334991821425343778436092919114804728054617071894927238678871668837838394731523144391587341028143177585940313548493159327516565192729516271490216900026738282494084773051321662417521213070802719184196849233479279996746534035566883378948122691135927614088571826581444549234908928397531304314958620487631497555970762818820880114526313656629085597618226793565176841712848256899677257445251972608628720966244903185110145032830887775923711696326535025484862952743308570730335602392442511921547446862020426859038595988540424538563471398454921152551789320482320401481717753938186864934033576641780995343056604519941289473685681261185094818216819918318464605383903319041731523728309829055488909020829285593553038928069719282406807968899563553282910111885519780912723997846938423555205853330862195921380682704929102222329114986444388055128614724927663713376330019763120526297298610085700326188231332095413995613637403935671924440699011751840549868479531868975618004198588035197777713280659219079147935253975028405377433119882458179175681631600575856181721395397800743069462080262124316840080308188457095450649804122222008598941413838285347351925060993450888133646686622292160770793201862653981717003967256221017381869710321032952189436915727483040685440557209795148290238814503319952685792649026541635513818060050981381859504081287772139396041173346741769521364335586255588172042033139914408335189772153343066267625460825033564541087346626595741812353098416710045153526998879633726045512583280211931880990034297394235409640715815721664564294210035787895604550151500862021544533894506073712753601232746110351351745591643403368990218091499020026531990989184428966614574691939883914164871284075390716937425166843995719808125887800718371990926638050631989164752579560157911446954994189182459906094768183288354875047399487637590787901031963788994459173739653292615733052244387969523570745091901685791973298808345150997291563890055347026973035059819999036753010954983030952812185637413628866696102719653137736375269207112239006181839354788624622253466103466453564144456169997773874171126062364976832264987819684846722233938645642354527263412847792311232880530280268608537510265139173623397401376241400532836219935313230356492848701178359022046316139441363955326459816720018717453294659339190927974996686783196513029520160566657521203090248496601332320884624799878745277474228408612581288657894562336161395386206209598567761740475056024510687171071266334971627980771375170687762792618285159415255370314732597636105372915072279838441939449446914605868647577049776490346231868934134259579240776607590929172060004490602976794600529628627733982586540162246286487247614262109197229923452843945786210416716690779848219703412149652580647223642969372270522304822369786828848976513503990587917478203165161321710241845536471717850436187932593257471639656271231795600471624304432935312217765319137070167828790644247585953568165018252332377873551432065893587802742352269070290122563852033076302088101726509823231963872581573073827917334018810639706027091706635080843719131608622400966267825861154254123101738865322566640576229298225050737112182274126398368793095814820714969752620780921935790639316474250562909809324921773203891487889470390806895270808347344835077915120673423858146476328790858262054373666448150734541161922791810890756480347036583023665057168848147464761683150386562698290212065901095697920372757386594093865161094608850946147773702594302925175003277194758228671659642666268984189916696079791558392588091171125011450238548077823816320975596615393312888513731060425072439999142843569389860613758718389329290609241545389806801702305942691412057501717165377625109303981443595664044876760202887127356630330613810996672404896236620631829524172678203702273740790901520593870573995797087532707929236240012800023079353293613392773416446124660422105352349674538359692428379917659403195336956101581634332051917950444735835515878491745722706331282536572555555634096256123151669479336984488750953760323949707108264340756996691374895775099349119571667502254114948171246440798630660046524925996560854898556979699890015423361219318159233976120547588534866548295211187182201690417409900587645800242479425081607421241053859823164610896989274340807967538233561492718939223721817886128213274156815565728992598779402458026465796075365992767986554175319219985460907607675600930720949598497963951154193660888587489736050674082068110144834062181569444565972431920580708298478477067831304141052192946761149489967182156497825974829265060011862265081352465751696916990613696025377763813079977302663730044977208736124847303003273086448567040204202374924665541621645751111859324400994571769785766796098170206679044825665933821610973090472506114090245415109856679546500246155021024357424978843427797859215762216134956408931065027077789310056099544460466169586458372213502567499053847897918047565395844182843515836240900416674001708604996745885501035081940409738490850933355626843196758122751248388734592928707542838265928703007210377857550563898505337729473930524609339665982221506049879572962406947893120278592940476276802516437277201936642120956186711996662181737796081527454658998482115566744506370864207193884708212082432771385814179806079751364476412535364756890350791250192409441195277910017648819468033311438452668034823331296223837384223636960683207991281274022682568200844306955311872857334998327112885507020411845750446741949198415332463595999468008819642667850080626744418439822078444659702556542904450873513762808566262060422677081763831832165709688162678992871902706838855933717863393953743120028653553324243844952118168698737889410220123086657474231799590127081789077526521194635916129332703979533823397820310711198726865833834245010446022032748479249897784632851398881101723654604534586760701558515396065323249185077752517300034733823417684314000048879405019351734769156399752137212106375540490809238000319954002639987518524093142116882436976973268438887037596010926402796254161826933778287293213617789816436117451207203073982095118087409172367770259276839590850196320022169157100771835467461383271617238454868931775945261039513371454039879404743031127119325076992612189706142738285040673514964969467092717711037354779895727278169429724535388836768513332770110086160787595015448642235850734530957594725550438006354169646747176921551139859171047966161372372150330033559199879538142654361470922769571226609553129108231043458422194234413628865973053816842711076307563938875460776077797209415441630722697962362202821234765666410386914452188794555240773104238493533120313350958255016721388628809117612092918197051677182351806429808064301452323343260341827425199296527969161237350542547548907137952641657043902877909871457392095193146585482420998937468991194061826896195114434150022762563083417695897509821176125616832796012943731798628122209513926382126867256424887968490298173650119250291398823459419049332753900088508425437794538275019322680620598165119312880584711408474489932456900920670586148221242243738986867638750040974048255851199810109693147494781701629338986358751494833942152854841703346226152930088415143528500385535482552898327654730974062310123804905570920960647104923358022198347155076246956616624846032437254543617957569113608471239668401968491908462617937038569469006061080689279255977470256448968421598431502598905986228715134770813400469601465459787870007938412485668769606747701588764636428729255733471892181556691858038176057622339762417423704145024253723464102547216203572745960633083363949359337030544772259424329665874051806395871981865457792791113127684828780089801318109702255855606849593845339695597744623874288985358350678974096863621483537159413241237895535442726397183142686702741211663675308393361943473557759594193789902225048369694666792535974471646965385972586076448965577534561773807529283059246085429358705690973892847081194699180992219564621702533797807104173675667624383343482440888513744666829690781281066213410394853789404812943121024910684064065004106258416490825259966123704882276964693536399317969299110756841214898585891389097213909597158369186094006410846996136389475342639825173441103961421310752058867775583520024483215470300720014028533775304594835519188771814031452781233366326688335064841131896892897363830225650644002607737578629982255133253017557652259074591407983824162828107657510321614845973676482290913406145692785157843464915659005367474294039192681149153830038917852494099090756846605126925923254679349886586085606510295058352311290778984063826214285552823447241625033801461025969079888393896836489837869140814013995490841239062536808842065739206684786475492461634916290000238484303243973066164064001889947997732590809234015227691087164913659443363875239166447341922078256328182793519906259156737636650598876081084872632959609557569132575307561694792627178604065932505123971182873111541907588546984458056237876157416247292680993787444127162844082760780491898826990105993344453406652681617018011779342570589290179450870466883871649000675192947680362622600033233928368397926231567402081076231290382677718118145281934348256660383295480457962052764889523255602376091877600471936200753232293352780940432991668185740705246440407293930360745035884313429823823227293577634853392797973535254790224297227071198650191445621653716976986596033267933930256940098572625007361537948639900781500299313058055555470599117301488501813245073720694111622596604811461244031416961311966602029877501202202821085392428768862597016300911375942029689205172237785108663813042240301015046534749573644388397482749008350659206913309811574439215938760853692686954366241360451439337416237728912881787923807936165248404556591016451508235739335553175479776331812425859544258835313492186149787370486070274718927393605573021065374793702089382487217226720054051324615343146925620098257018298064606551183212522046648749485257348923919765484565352430159672027439639521998645452534307627635848507993543901851913148077897092116191044556744303851795111812249333033453164114768476602071802487479237559244907925428541795812641817633715278376784062928886359177617439533070452768060927525462163874776612050824930491999427093764994247229132960995784650075614401156748306668533798215116905375012040854860147372283997955732179725547285853733410854907593137150528603643133532418203777829027420524132477743764255943008567858198701557044371261914659126606917069069065271453613599309528575331632145376418651188828706502535477574125901871055493694265865099034869436398429696674289258934068383501353792095951065254047625237968515933335406863106170336209801758112517992159790672485681553277783548970719265965272328615408827598554172960811625040588352267467926466099226666456182432785661350076644956875172789950155958201827557925683619204948404893460957991407397769437765149403013356913046426375441744806857548708326661502046858729550132408433939302913603578455670845088412131770009766981532487127162332152027931296024594465989955282570448339165531271360718123195409419265243113867930411891678496205622903602512532180149417623584922444200314490526254845696129721827304996148797994807134898123136135436757761190054364699564733461278475891040578791232843009338751120562969094952756656941173838507156198619284563215187392382543326498175415080247074913216235303994046397808741186027078885573427115398246812782105059841989292611467684641177296952468680717547308549938632567842378820479677974215803844802694830399576709442783116948561737357408416002083660422057297710776728855229244391790166015596850152386554965546740425074920131349207428065240761729179665501104575696231144955199034664377158294078336119306880805945978587973712670301236878985978005858430422234914932935562163241961849151887402511378696758915520111782440740743073941363920126908238437216567330086594767064929989382961221516909616768513973033254039173899663340241137264253560067852514519777897949777538430370392423517948074522819749901968062999483565270126139964816701369144998862130380922966668801833658881389363055313462691125393054697001013544728257128732244484014868157160612033925500111516614756893132500141953143799875597637208173461830986405881572353057707854183359364400719445156991723752144067072362874119032036351235841699281212092373733425091871084222117131592271254584476451437614933028211895350920507281238802610246865990044085944046771459898326272871895244223754652861126788269795326404054941865904116078802726386909921163774202196046092331377131285824109350829700817491843573372173048569635620051202465005249950133244309666258929888111290926453856560531369194556030827639233928762443228713127519674242257057072520090567667952154727558606987921880498308350287934469954137444578553545865408526826601423341453322169402804520899397630705088277197356041511138369761310967120671908248624160862414073711484781584781398123639266077055057468024686222329499470881616267863779784935623809069168451147022784608554872706056529101768856009598500674775581868230271348441745355741874219909599260603916300236123296328539381322609240292151009088393633849097430733656769352079141501996530899186864603099330659133127383463421853075032559864470538822391770155110358848050134085120173846995406967229015852684882442667163657622851377882480092160565116238447144885056235679242682159315555266281693736378785058719774731452331846040149086459523667589253612488091608334519303560788609692348113185640025013614400798461016124614056229039698614800658560129134505655197626348953475084908484507846935829459185429905817657573963207271988979624239753343429567974001186217206082679424017645468528737663810301506416735250900323700005089529533390201346693478625519774202141089289658014733065992042153639688299938958443732032352727379837930960879085262664753798171207128855369952592659482745845082163767953394511382752776991864939401104612102056802968776054206155738866354884365836409232456931737911722804884009722039471268011142764635837934756515894901970098024386587054458745790124193189172748301627531289277187789157216269413948590370521836373750363043948750332344888114361665005352117799016704034628430477833698159621475490613988009290632998795500985781297520014647680452616322368758842735878128387564661949122976800903978549000814574346439532524068553124568399127320864142080572356936383292571562182174914065873234820895661653060919821931666921592016527422680258299993801993285896461265445946374180474293590651167039329443544764524827642719496697444104472270492159305794885428287774037435974342593224883436131639847932220937234558786497902819041695370291422023927825149521061253464779669511093244472576356654863743277258445197096677513078534463116327166877995884250230796100862552074427138108491369156775581107208940535340031817222063862107150774462260939466964026276007486728237447666757897605029687110243001362770556471836946704426796001382550123308411916449990249107539144121982831614952569815319429117910233052884830701596185795636365986958977444765680936465187371690906775734676447095606276885622867359245573469488988499902506610115922878442471642384431107439670992407850929616182474221881301840142057254498039266346980493972976094250683831384829163713960750716907740415978809809758107637898605525647989457288534664712420013505785339981266353526152877946400953046434722719780147813248072060440860258586302540367464506926146825646629939381353468689666059005309393522163526532230220851940796886106722525249394176151207857050494950576646530908346444866908460630796356947920944713852781833366661774329497354609255766997543607648195098329061243396276064641240112604192397212737481695510217796666702679105258781484550899612555251172375734728967310640139728549174713661829944695540993821052564964612585157011277311677110720962916688421354614559493561149438938531979881415773222297037171866250502171741843930682848920811819347563691074490067842646209116285004239904224860095036657482399543318354089817298786401143927242773624820762491819915779666736264015920851005844976854404432695771667830315441491863626968051130336245490588764344525004825675807480901952783836132711581389169944700839103154811803220257886403514057766580828378331813620805890075041766176882965225506171686162393708396521152316025290025109347308306584579498850713070886951454790117424125177304622563034390629250351371193762320286944538460862520600261846236276044331383448758919235237031271014269823772742417762266203480611065112704816996989404615085325905499416277207014647807706309840387762437745833652459756026848518633366314299926108026670130433704342833398187464454730698872948415952215388387713899550527252005533695279162343477305146866383320562081456371982210416073377942869210714770109730432783812268984056398366296871632805304864380367259270680202251633056003172451751693415635651906641750587144781889772866442873906217702001741417402013083765458707874865850252554773208632773530705828213535076735646476906040571815002993528298026725952700563181493266266336881215939956018352111574156369948355541122430149698394446023296290412416862732447656124533698997953357134176672586086485228440417821010136215623334656727138618624234357936557276204013674787958076917634783272933865872333547998647511044848571658681891663456146869938263898198682051521178162927875826743877942787810009512459215834817188676635405718649030664338518780020930468582163520658731426826016888171886054686249724459843210971323924098198141920868011496022335139695184347550718288377776094213351126529118549664769254941755849903557348725723961728491137626381937450327800083228158457453316217222328245496580242058234558801622405168067237917117478748337396958028445457041307097469986450294748007208746133647635789324981805249781625319635780265686025784795859516064963326351282530542465249494748522313215543074741426175265443541343183478959131317438742625998903093799013612923765376797300358401308079846741675230411556633614187745424415122304939818320639539678850240881390293331268660291674094884486614564090169282583254670085722542221625315980385271561991284643573196006063437665158384855436747472825143737289900596594601580897628321508968443748284460169789360229611028436215243456459617446744364604735327372721264233487160480019749571363296355841577474864889390812537392975647404491778447121786486153849388941133985377035278125035302026443285901712933073879675823858852018772791518196312105613675283507976169063498416492473380604807772092354461009496903585594174693578621734852955173808275748880311961261106345315983206940460298712660227146429735644645376914706038980087324576112451480742270322708186081449276519871941548188583060811093305080189003022107724106505970916576991954304342241673283629970721829327825770923583291424081672574821632256318501296571163455328474007999196137903511309200737832241846530575229376621562156229067735407146014510755337080372927869929924866795760130208327859830032684528441546648143030354459777429474132741380889782322274111044158464144816819353823959279905449547490401209849994841282590874289561383379658817988310704307681113369235372651667857903637805694967905128079230603019834134093466635886309264208022970234487365908102838691658110957931047058991475483936174076894406957041766312942545461956522095715735635411449445995373827182761615348849375216584759610986453534836571974097629471472485114663283460681942729629364589201688170975070262154782084682249008311611908436047184681352360254507955031154607399044082321009486836932938358533576700713936613040002125065698893889265909174076697287255104209699506964634594276354597604876378048397127629479247911922574640181776910506487737583900495525468129067222006413098683816338577055866982546531410389481396677512160121707415820732568144316937694269783846975916231801311393180210602172011056086920416291649304561587725663179270247876984673123389457868442336875090781360331378646213692470659078604555540779603517137951853951033331816662859944954259816761151930768089310345075516110310832144191598205095882314744617483272443236554747555450870339968364087668778778820620468768278416477655595863261832218723992390954148623565292962181282214631787123587836455429905316034498006113409463135483511038080592791176949608106436897368662072858191029028426141414636427703762390097480107179452604801744472957376263500899564265591457466333254178489100716127395562333193799662885664826286899549667769326428343982076609759946284251211778596509692939256743332979913224283867492764706316920144770443769890744302585622198727556031107128467191360795428049088134549583895291876157442069112280108220653220057334119195536093285312799511066745035491960342027437908900598715087374716321348944030144016886357583214654955033697965137655271005240445285823708109778174748372763327099915689815147734053539477758558132839596228689055428736282483150488304940204279373183021106305509102082586555788321584066204794379497240842906111605655900450157181009337974839201907025504067539905998879661029447892140338177673753599220910609381515649297607387490598979464220706609050030052364058421307897152639852078271613634828481162577572473177052382338687488941785863338734270268860913886521478422331664089179962366042266601464772628684043717416929014343815049314012655665588646814690013334460852714103917030141839323447364200941800092754737391659023749412818565296586373830103152013302526020097444415432292674779583830919833438850304207884624532217448313851001863662907416525365601932332564437839193799706605256451002884288813517553219688532335201785028511617123376247438635162010285273097834267976934759152012168109188511428949117313409332967725625424932385806457300611377984957556447417811885423215148812852365817838210500173027682263563956262677981614455401666244095000671693899195850066013953534474512410306206538882303669541838370384103391587657971442168705030744060633206556057237709107280741769244562323243028306626132961343374410876245189279219792622041388501435130663081640141815829664400222373262198611555439306551118013957582485353810662150000107134360104218668365279086127311517597958556247547639959362404180284303091197720870377099091115603657890804915396535420693805284284148616663218063716621462196561061723559472494884918277691708384393023062864641716695795346083608957184991580432997046491979955616222454995584158442406819380778531100297215863829245815405176472702514191116215679132002350025142670693311868685919617535181882744715860910203175250205927949708782207956499984409702575033943882585276701625744518275716199664800687918707081970752452486996204782407712065659512877680483211979855211965037648210403667535826859376595533174256406599443439992572354105765705980314319176435999379099135447142870145187357334420230364225831210936279400834769485961314742057269291068450809252429351707662717391319181005145975958971551951921054247333168614879872356009612175246446292658503209933425703432154526306828535952607952017185265752638587588652826644411138015974213803177134718223159793354912890439962176577591105108978407126895604026160101986662521753679749412559697559216663735999763249224716001977194074609121840853583684696553667244260656520653982344260574506269873670390131705106846788757959291417363292732897226719795745184427024576969731078677041572635096498352080001954211361544320424634040904173626381209100472321144273055183596860260536623738674925920391684485214413398757762818633085227744836974099174707217035999588014222847950508077903360979254248744401085606305843559401658155639348610759016059018785209474325044993812621638277842877793970033563101114302595272069532741488697286675369158800734168896681202291939495639904321448272411512645459161375354819539844489357683236335461458988422900280370956205268887432280472241346186289428483383672870903474168197150854801200940726514160683325338856239513857705995783700878996894815860730414250317394928507661200729035367504871782768803759281803308936950294106709481114240839540579096595191565046331820617067203897358254692402478928614742457617546518975349976169209225859173008117261876779063257444854784850069983914213859551491350216762865663494062421489574091257518105231489796788827170700318081245955212614203990249662227407477400326587172535370846433256545789925098242729509895357516919694188077588637577526239901337217460970561930156026483500823080921795261703001748615259647126758483837876024560365809916623167455267693919200395538432582218665961164562283644796759919686111877086678808429651381989822093791006766760547683210273725637061145113338141886070991920049436040655249880340741952042501667156298073633735691735195222218558744517829431324653680986158218469283058194486413252666530033515054958401693666427514797976664713044601433141296735828660599176855969202015004769902601274753974813609339255367735903465281211144809878239369422524197958783005401526320398068455570045102786082251634972944054919960418442734439510859632204035826361754250062704384236966547802959793128996288947426584986521229038102497688989921466464513224771301430986842388308703200753039291583284359391993384634856473763582742737624727693877226442155836486169028705351867698634300886429942078824503909828986370093369166329884020924776435885960030470473842729381346834704680791250975838110846585530179832210939635852785473201383001040390533315555589075864240273905545694231722540498219708543215251572817033621783030296988300135570585923202769137202856669682117118340307259552055412551002245813888658329127799924049621757458072916022250638655931961066021637389470561348675822111846186375577761958905408799847561663888352704770635222324435165614255725664823617509582454507849861048523020291056023281926857974328164218140506256023869261322780556715803546350799780581604023162626515084111461065398902266352104673450796026587579769321981080917146808332393714115814666207079841013414706600612045058801806382449411061669988493042065063405878622895546952624351650209769688832535942403315345408993033852767205352331992361619246923677311667648785720582863909932681764455804932115122138005236198886229257995988727022710766331623124052770447353710424865550276032234797613201579197276815378265200796256636236303542616185629762573702809495467440937017608063507578060067624965024123227926274990610929767357324461172280975667067016396805615321727943295954739983725301559096313221888732572982600013792206177044849636533010073538188820809412767952659735225679390039577690011137631491090702888816082586869716075122764759043936127942850557751196212910176368696906151527801570040431701577870658881955665798298158066511273122627208365184006133965911549182225655264976457548192775921442065097592513934715716596089241032578504554343055489106960236160957996100866708781292779940340677495938680804774477698511249435124341023643037700973620311224123533242001768827957896763465720335365046117682268910826633860428948690071457987544983102774772764777195035754821554048893177393669327404672305749599841421056880114089526893418569469840586682389285744005559529169158272294584349431955534513311762401140950834820957589756349662287817894788344877098819785588337895785630743331926773763207470891254516044298072209557928147334449535111817921965441751669485349210289447013230377102896140010975540337728361268168589962023226680544730242188984624786107542599254545984182482324357669127351442047048310492276795678939123270836725927633576047570736592293465124333562155445296769700074154527553039035330963616262271595502362956865052904688493125755592109194891961682308006462124551621919346391589462717214256034457209774300777667718330998707628180556691043463977601086829500176052216379689424570796163821722282255079258034099639274663928150038605930329750885167753174669848932394365678918979863081884238997385852165643438953699306942105832127627371700568969889410183249068702986105339346898858399158685630001003757528230896734489066433446912236688291753455004059438156105514647694314617162207569790917044098749214485424239047541696841290753217537892560622010687393470338780935319071960769810291115284156256934228730545360469569614044572442877249120815394851685502897425973080916710854131253158441798408357353308981336917346018120096898626810584554978889679543994781046813017339728231990619185724331745931363776691585769146462578038091746239830038313412216584999388903656524978638511059393435454347719764411352633763098009585423000037340495673162114422143960926672498916545823760925563827753714425693573791404489346138009723672306711830232464246076407893726076987515083788819083687650139691092640561656512622478446074721155861657506696412520081279550097104713983296806181309473990919005822404047595874198313889886648054790236954179868960824940503284526464525103860906254095294079159904437069385179409381751135591965817877042635625795654566927654428388761951047912504267904568258511472460982703250871260769436791196936566971439339705389275311921201159194894124202633659522231342346497968477033641299536472802045635841543774643983614846049556697672997650084570220832476144827532419114487052060588215456940879709862102753825536252638364201607558214512590470511729550317980051110788490594539033736096893805186662636839081404534521210268325562731362808884110979834634943957231382330658036205441946946754098144642593443038020885475628629578166762554038097196927814342403270722872164975469821834597444277594662341197785518740499757724099259894723704706507619433059157626893023211986900556287140680055024471683102291983827797742499051401246204908654673895219207946228307587861387697681399822421923101947134738267598013462607228347141666162532689258751725296261904797411675611288055153489875995813230004318374559647889811188775329977484611093915535361292090854228191640129718642050498042097617138718527897781431320862853904930158175880965473238295083145629614398317435423891697458066790845428066447675771799013885496594719809637285926317764477888915803677328046142352685417417486601505139305962887140573190068911812943152980637764304471987113908070039617157418593156522292090970606416831936129007579302789321439013611238135200534178210967388948056711379252687717977027985769769025133658886990958756408476876002058436841178725673261388097853175238604792278739180502609188721430390483823590262096182051080374329770450918306767852455978245876702984975215357416842398442139002927104006171657897517273113001647989453540347351894112491842143149187060211325813684335883623678927456356165616523147764931124482165701054822229313907325177110815853756310531834771211306722896431594507356147127010033057198415262921680669239140045847703371748110734013498365657617224434808216816630738131857548724206528784892823818076519204748334452629950088695561975924772527233338925068943890611851998181530742300493551283518183668296246201604657013753686237145210251047120607887892594593121995978197311967896277998925491313055154402418398808123561592116173107193820626191693928738828785296960040099840089268700236211531621102441045301380982372483242661426429428508571051023462484577538424185047403518338983531325183822579793298770498724984737704350487562348634456874599142176488149446062472079523164815953828620176285526438601477511168567128267528175358025302831425349195796845036426563664557645211518997521095625250286752859828312700446807467564385043977815290003466174469372416727802598940616969782867630448491380847803984184180107976423056055977018765624507505214133921799928163439717895538569946354560286306160826204789962719254556478031161886421737936707586241260522908914654640683213368748451681100642037978938527443477033506223049475219729140816956891774575314669115909090035187827137157214865397914007662160568943722886364586749803986987313292023893455994049121105356693488794360696576499184187390474137542024126905575026251628019514659772353914230101012071358355652487313188100651882103840590856649039827977953334024699687900866215643545624821448705115404993477967421250123250112642949407666084480698419710510144437759317161806628973426393445859773934329752940132611789004707429282520991040708856752670545106919435286382667868877258336943848938260771311088556025445809884664446386514306950933185468838319476958442519573862720225913052966288351168630816274630983928255727468573580655810167730854535565882379480400607503380941578312155817214061400216539320386572650332291896318183696735788775643492953405338724285525833448690376073286869568304336564026229546862007454315596423250576056545201616553973439137521997805101686103947769359692976988881994406484357820784567975247630345303878562707817400497869958915319629129557196938086228323504632398662587431171507825460400765722977273435129879104424867259027255068659271157935855258130153612400138415479301050523976820433964859823309353149948480490336188413666092739085085064803712030882781358786800557905979932026614808364731403372466929796597453596672690786716863097590091034340514696021860379578375339478444407074129495490464354160336689065409118549677535098399243626943134914283665983350092844783224141912471806765744614046006755367523352388084346350837711277849220901740907595023624281066771370050022524757850657772206038076232372331751194825975298976768585211909072871476269609215727072165211555702423054643790383167090635284062065423788066678968553491938657812537233499567306269397178084859036188812448837184539708203601520255423129111280442537592117440744824733302930949888935710339245266431575325533283977933618328879474050546554071586836647930155798492582675270768521929784612810454356698814061352902283152030835256388550194301353879770172030034171568373623338540640595945669231577173765331703294258429075482190089861922202574320863846481327893790167349435177969006929917454368870864238609774245178596497110887327413866043412263767711106360943472500247072549872729662198028016388092887856835532454596358184475589375778921859947677007278340466984260182704869477822997084965865608519186582111607747557561037015714897648570848348709071167022563361351153698898588519963366840509600411307113851065587033254268594504809885800627165064269527062602716549101634729724108993166491526077263177296292663284977656274584957334583368240380056197093116114065812062352032691973558523356842456312384816744399612890364506162052285945853907223479901442498654768365957747840706988627091451733412395816351368316912123274396406477927204755005708690656076560205700003459164420871864215320554269510618342398789398848388760948874482764374210453847328296478516190727858631815482232386864165702678765799561471937757415824789334302755857332612990307077428469476671705125211801691310182111672952659806377176857343067009593379967307155518837119337814057970298096991578157219643629521322862949962829784954763504629468957833313636846696328565199946354281260205538841656678960218823971875604143271990940344688997004466032604037905353128469826237943463355684032151853690320911240416739905115300876505287917439439084859610762789848195815241771974283091506409862237551434305571691385111125341380228458848749388748108411509039472655606521308714611681868068474433552580513984145068070179769505370715782219130381698789874499733450770940783714594041177839623544503891074820182151007842685181891322374384969810566214870442018538401490781102247834877453633838030734600413567553944320525739019251887733753781798967255217489366242276993597285300896425473576209009022743558377928309873968786991633707791214906505233801982720956051763648970394050567213735669310667246429397707775428799320590826091987951852430233840915502777914825289360605280476895090401299468443340708724770247785841740796324423852809233664589870655268454874989492129570286210153179409171810844521315006647754592087467614418139024792440247773709621749697204768983961348614330762338464168354997861855300556224124081866649427063812620571723717936541780419748585493223970748307899059229312554986816505380301604245522530655697986195630355959928956552253043392674405182643526210146104115115189928606497337797297298328289320022057420412643864217432362302951940868028910676438436153775381026368611337097555349219610816711247248213927158472400652185471355291417888705179658135541347323520450478694439327293775068667018022793071998751462609374066650885345658779101331937390377242300069379163133557388594821423581620507091236930948307061636407861849563723111271104174096910329586112884019208690634318116822823526185572705872231789637297646884605747161218363675831311693236343430452712402737403840570431339180702767231123139109280024810276643545753101907570855745572703107955078648231660572468255339882543515513446563900191627919529767454683329349272746141913858439771795791897109767053923394386282398694703935893253002942585582066481535149481856694139112197432029257939430684556015642557892606810524735925538286580089673566552926954595854894363424974900986090458248711610891104346800951531284866105441831198529804591227120563729190894003832443781301029539106445263060434589440337470515198319103560000372534293220625306296246697033119941469850732416282164449985039082187892106033705544743628852010641116730685424272514349332293166613567854646560652119009380249346670173720656212970932622382064447319430049531053760566872834255281698556075000066818902272796045550168423294395477754970046130131405004916194655805711575439816067322329422368305178500434912747421358505115303423026754537993974914884895538949311564045235196028750724700408713921088477481061553107082915183573231277629416552822048803038275161920289916308222592655699464059102270274950667543568228169738059337055944958429223098071208543004327664303110359504358429546832504788261139158801091528394944732148929622617239216743445465449271875119137632522876553819119002001843588482151535728319363846385456547497418034903271125757428139356556709034162969718975737505864651428745124551926498607268504337942387275969865976095591448399398414740298002452095859021772895573212191578581687527389806340726670891930230757628182137691628907268232428001990514610543746557596557046021492758594517680063010296312025252435631344767622017833454214307561459329214089255423689884154608321554386485087465079915807926329858416039568643718478125195282898085207976000267084959283247857249118116084766558991449573407070761714619240420442025228726567532798043246017945944280458647635369282987848518225099221785125542763899760689788750809187922730906644799802248399828720524580860064403848279644919859211896306364445871851749993234725029791908049022849735582159285312828067845059121199085786468602008254707496511856461208046454326115064292893995418899141100973399064796848729482488386180619235620700574275232853200970200571914772314672348770022380669472559519272073922472257208359179290682891773429286363090111002817565262199305137504455465625029882746471803683357052154638718603797495740291695965288511689565559262927440251813510412797911121464403298833680803740873801940455848346474912768818777739205976833623188946806615748985377509555458816654954908462043344886339636443818145395550052298038257113819857546254445089868387410818587759377261147900636544912356072739224779131700718570892770211936509801975800244499769969847682682730625753332095386749056970658435660255857657634423576998847907902559875478142823351132707742638618268442737859661721556288503213573154077184353432051145265240074608743891808923370495392644765713429589289615222098402950990815290657265540137772678483073383063138021222396553723443705292533340547860263665748237970805132200799795660176187016767623182513161131783044232310801069353352719120299499114813683848078863279232966376058883704465389854929149078913116222195572499407732366092399245000791939492962590796003187696402388826124936988493230443121577912177973312167049665842398186669250928355885370656129111858423309638650577912223038333627573741207624431134818531250453961491765898463997703425540320787650653952514642961421598491518247866292410921548336198459447271462743063820128142507997599659207889129361541887710691239967887429518089256258725837107834145528612813354612168267287035526836578931075735781452585434393334210517432977417321269993196535091585948877231931165604511694719016444994940934283326851366723438073401182874262194280317624068153080834898896691590402523071478821095885698003250306093090353832395456280033231517528218611880334440280247301520864726641333148761345097230161996704698456208221858039168127699758627137503319548944495111773463281996690023617498632829821566393051908043513627086538726213598549197715466495786662581618458670331371891934531690321645692003279283203595853305713806963210133473077225035326174083990133203590921662605608526359261283389840120153626851042254439610439664971891346598121825559994214606172897800375354109214220428668276712382949472479056343719051446572058387815966833121149063261035165809538554525570206913419020992369450554530867256537433880056217172778654535638195004635100579608932690271638953897202802107752773243356333858742736852993874711952451301721871715675567850044710737437948468491598415399520454091137155255875108341513976910660413405333741694338268849901862194208741495825022551983462440866605521761202366148346365656455118928554951430581038596915582279973925009972897257034288180675438731362178595365719998978893258481896724904022088932470577357895418749009633731380573137457781731326176025465136122270696973727928999803919788891705585764758004601648251785122700229352673418343914128366323772666060686504008430242386956033304392684098425333912299610652190700056155008725278840345606001099100277562362216695893997057341207796017121751732789729358191029794881464779695661807519579490879968418791085039271157318627633708890954692647585511654735870627157095063972369085438788010576214524459652744132411697984902960291045108138608483639538141195003803744818387128167629224867522734941011727025393976727326557325890640420176703373088872846959465013860867786316803365928169157866351763920291068434676055783127004917469940691386360052920686856349339826475742664544967482071308464816873495496677401509285583211116305930630810612581629308577892371513591736977510802871523920508717122112183219295997936214669989415620901822091740414933948341570741186998429759805374538057924340496850735646251143899845909925109830635701204098432094614369192679938466512140212025464014343045147129780115517559930708449952440192605987364852397633056194030253159588035960583954297210619243702302880937600324752937898271031064170035333830194576367183458100085290124974448126326039092917407432333953945196927346083523201603594605093996766133366655187063141702152033337275323301541942860164497121095829135759018830910076919029536588631141691261479196500454164949023941112918040702140387383588289029328530500071308802339490826749691856321435546440147460260333899054777057521988843033267972658590297265535588706637386636507053393086248678989441225914151332683688760628062541948737894141523418868553848478466507445513100491300830115118489832118749283032100519774877958723872736419870769103926857011927091603882574365989529026430186072761833408354425226065207483332077427688855197607549172280009525325976250893844199994357453108790456969251390883433352316231939557422490916534447822029459465401737243333351782683618694671616703972080784569955203926578126504319777585144003878198380649164657870783302777285298749757208729647758690112315835404140057810993349940970189670810049402909928118426173237545989091832162230449258461011240970743989478103235315938451031245738105567776089051030326669347009678983018999811627998559322376193605347944933493344212486129464979119449162855963236696866282706662661686796515893934169707655568700554367518148914545619271068405579530867178901790785444857756929741252029268158055716021794505701418174209560921521012814406754351530910543883672345312774204066485660834550427358287171804599646701216344108333667326434626790458854903306369200152711589908122876392178571678778295737609061067815196716151727216790883979994026423368123799454160138488024442512318115653238916929815527005825952984357661070782106616945943963905329112163282544086895213410463396957987791256031483125363514438863988822231816900156424640685143350684280597389214740501041734629877545207899679973983156069640919467630265282179865156002567484984156381731671512073932838751581334363311290412411388237064561671822059184695525406679134639841534460219042788261014575566573193933890496541095304831605021914428687541479514292074962124332134779816274478223388420626366803431000712993013952496794405910612378589434239892503688684650442952997276496846012826508319773889980294121156541732037606516873575662604703751689192835010041296748210371099755186157055311178379168554337304835265968867965366152117503477039629912440734387163606844271536920299014665706799808211456187510543838877882208666764902774952609608879689687176241507224136838848476750278857118960875051907740719735081945129890381902868134902704062126318999114257858895547047657572715717270187025552426547436684754996146656659364757307299916972133402262220655874274605595309843797519595617452120216090753332849440347897388468032146645893365296556487433045934959268463803076870045894779213677848713885194987271108644177325626463355354577479422008861856500110351391946931188536035191031604046095731529005512014052559705548255038330590632962382431539619930389874285165119081822828941539050119380033035008415069355085684010693912297052258517909274185302696385846754544625268376831632709386001965092436624305785641694161912190698036100094817177434319090934266157442743818933510618705882113506735314260233045961797078450855536803418269784066439761763471938024367348080957581040384551840643742798114793958416931575628651963424695998532104735682529069066228529395612268883957793179390550418472822476536859892669558061484301698975179959066720253138302281067795298076795319432966411163792324632496153740775976241837602488997401060475934559724630075792923720779224752519367739874639821819452876170613979360006346866406134655689871434041677000832095870455625866410277428557744223400096179016209041514807801580247042799044996666794677739240794765680287854487690111728982823003463259722250855246180406776813608922809250134756026545948840073373782372871949248494181570681095580191807176521387723403911220376901692062861355046073125589556072782853519660032613839431707668562527300910032824047009875691258736955671560778957378751519617564893301144634490241590232360418629754317177473401607821297895045948099306832521483847859104408839276383145539764866191918623677766214881285374302001730497538028906888850187621678394068343640274299652261809786014654041018031143622387174758219149362052338027499509802343736848024063374320904848076864296382242590135798436329836315611416286618311201490344051864072353408890286288737261505561683922088956059669409358802611724541009765294407340226973217474262537051673649571602786246806615408887106081992827313208624661316924803784069893457786233133462468885341558788625672219267793308233708585490672024312134274989753203795231885272169378750779211102031255883060475531704172688858821384569052706080496491956938148533672698423663702801285385469043692665912853999988670887671939067868716804779051698874952426382144751349892258064132729627810458102082118267106835189070255316572527281306136118067553713951150095243983147199365618335010551465600004669900235975500768758452528258629041827948850767183324867090224963843562731790310804113894849667416673629468852834985661268552145540386751483503378000493842955790355882600824793994088741912938086137069487656780295414286675477669604296409905275718599332928943361045936071747250818489052080530712319141570546811449109095993409487287061694729340243410169513003465316955265762322711625721026302546652521351506221066651865938489485575862209599613731401852059078431684080672158315915080536879994044564410586422652559542228012516553682220432481653734611840602286781194069661227419652742947445378261722874291638044462445993598651741860835059029298176075364229267362289823486638130247689406461057741477387069810417207110863772955333442683244222073003097968731108144673069012938218929936584565989884787355378388456155663030512353132218915584049923278411269924829728501371813832400653831323142416032969079514113556450402971839298439070241046607509693621736389070235646455964832715636284221782977987219915740127091501538321045629943837224490661588599536585974015901007489060738416983108172485155060060079869005080155643324858386957537281151022195010755577583069377041852965166939253618366558752507476487614996206063276352375828288404597344246688750943986408142965773967811338613414227593306247877581788036197045460686342135815493742361579547073495599859327910835723031573046525493147393628065498716777009657124008598919548544547597062717635395347996236141158356582304142967415101490487693827783962684373852571525264419634518707808237999242829892154280873630143879853249509105475528798813503193988741461021241692659545608593125322361709065861408517119945431109316708820525356400090661459447122801874126759699050237982338006337155531987767287813776049458734633392276977292592574592850948238524192087733115179161674169209986368961034105613333744981511959326146673975923272548395637505645744670683602026504122124177861629218547903994559736654848846774685498102795636442521293026780715383305157731748118028809045626491867847218912916484748109392322444925330511998060695384765289923813147075631106800106848505088297953357220308453904610802272303017347780097505968194888880863341444639858865896722597306766074502324340363192875984695473836366828727758495350414899986052335208475102524571263874288145906894028789868942640041725122358897125417859296050070841080601955905223882925402932737855633648870002789464811601801077906217915581119485196444423675107122406174645019046865437800639068578143742701029733234035282633917710224765316270065708473956716860616779493760601127470630278745964507197115256637764480569728097820602375897798336055839845804445104325493683680821539980703551961505250322133384472285210020972124580277368654167545002473806454990112315282578756897919540492803666018863239897107509340171352142988670517109514657625363947674260894054312229932753221144042769746895959851692124211451357529952163823359586552231731211555999397815051035585009984177132553605233460805173735690634256625857705735328596428209587424595893613802923502850544547497198253022603279635861090251994096362321847237921506969936639939075234678181398419204138081998688843671855677679217551197296557803853364156572736877004947406520686004849817293538695933694401334296636325841160678877354296245695983723653431095839220124399410685507467007128876554572064150780551246703689355181679557367022624249339951926606777237483523920998484535275407673064907249294549974590275735041054619131989102889830531680888547390449683563788100611604766106488809051282560609682170889399813341602459304357689575322810811100621359726909567461630987853189264566005420962398603301604619075019964828655870303100232115777781543712682446975771976598842348288693251127430313419696933185091336715381266446254567853295905828604317771200918941339521999308811484786415688299323711192385167730349666693490557614305980735711328049961288023800591878135769799888559263607239071038883700538331584595650612660820788264009554823699223295011797411111302033296631839160303760228285856903612302491337980957537000953962525608669666958089426692077304011722652295380734663785819737934420462908155913840943579843134664331063149158189050473225527559692660582113196126631870599490918348123968587448838215549043909036564063367304585693567669410499535390269895962397167927170322654147417686038366370535426413075339083810788953424239820114645475257177572367606401151309221536808020576194783575745232049422561676438967069613122585150253459099436908564530698585142299068710496962111120686374059434219362513691244749818145670868468963799709333111531490624862323909775903010615442817290714721266330008623087336665789535505082727821463804328717534771926207768405760310392190961214473455767257011733351421354263690219360370088327725225710882424068497898387036525419073407557794331350470244469875013670916008256866828233047441081852430593424473142737234016937389510822251636490771662895596463276819891437244716477091780660860327701232461224121852316896457102453253148321393088840264065606007981335028610962742502867164478960773150079704065077285482474694083797437104186050065770862043136834765432127470391701922800109165944164644416251355140277073831778784085622716941097111160450662354082459057326405923251914806975036689359099515376076330615534727896807627780357263591227123511017390629376821526542974513246674418168554354864510901617756695325975031377073638766717007862427353628529546459840731346936949284323603634466720008193295858174939017359636473950758639803145586687292485540843057067455309146796051728018759568766159949197356263458374459782418795205855882059482722633986038383666577331549663728786525244870096863010823430401370584068576679068242927345066269375840994795281086110623946823875945042854474567066465506691397849739676345729409155773703835258719354083051868976900836417788947946281191066721933083080805230426237365989947498030643754823148543570960938215133737373588273961559137747643820725136700559219417209491966134251494476315377718362804392661520333012813980279695575242907227913130525631090945043677549710637664002016718531882587960147244988746208391018330404469875957797585494211201783252172488633666686875058666153701942508540981236789068256192988425564875557705976919281008249237564381060359734474157429844517625818941782557048683060892344914235175616915585618183053475653044175732417457519437451723860653061107807544935959370248779217039207133171829464677436218363577842206911237217674315678257495824093099564680079845197549964559610732329898837228093422816120012999724850753137617882523268124036537223036918042145220827222169246883915602694463854825910838781254232668559493135505106415222250553019074295462253934725225168457248996416443534422349363064214983526883484257092626036262379087666125343474401125134019491290422085674318398960416341308704654680185581051211042565881444948030144331781240362543531831266123952864280437873310872472851277550981868785045055237733092877251919930664419257183525794018555781945563687072844296743818736798897270059768561074535014245858474618145572040926521769990995526494429680058914933836896259575301678374381875805864200164021040199775214175216460599257975313798135521406315652176056992619192560926128830068799174785845364589585098519914201559052865536121123162075372971353101389942343429992859250337322129663159283962252154735101626770573334006778104644231677724536937927304902366361638871438516495155071517262011672792025157956055098388555465683383995189791213940589311093119082882963744558746614756048191354493984591221786546951132951573448324679094450493909917475114178608453341195436240745656373761933131369130748512484355491483860423579586306345436295499027676222378826111528439071980101634003789937516680416257505196293598551369225559372123327993257443285492612533041131216783823731692153598590548886247314231654707483553304063479207161145488888062826250369322027148256252983805238726221515071204750701316338417549517133975153673335174556881063347742284861743677587972619933946807308308964771414915157616558900953400567490283414614614440038100045440917645362029695260131936913992346411447414978011524865154831212966807241101993190331652204234659542365785350437126038563146932391706742036940464284875996320489731941538112206767429520513865611451362413994736843487600181246617516753966552935625247595658712666551758981615130531933178800913933725317950668810067768813679916955983010461396525581164006434362142025344773065690182688800256806774091262765411840696739418146765268622090604079104446335096759685308397106075934690379661636139253916350882079663002643285952403117142783107208761515433179323275269154937087145758476244736693606267645001453628219181576179422691209111870517371265520143011144035279945323499798105015813008723845317874851342017329997779393750436776722002510082137505201577349219777174664655461933199752153209137426905195781739945086835303702070359677744085979371976211129301192235256920967882036601466915794847773691704666521579200482060733556357343359316121601415709062312019931923399920960234710920918064600757113534234908072930164851549860928008656114378410354532802551797374855354469155661396816678790323363167979360206943048259936963366031414045358719905157535806411179866607051781378934724281046651430048069788450176036986326311761619563829996074170658197188904653723261479161107397422519900355662747589565356067088671347963441970831389887134781305921556286246061037645323067937086661102263908997342192365396544769839280993892380349718149013478552076994577346885259856909034344666700054853620908177343679141256357781248162444076241136524494189556764456176388530080896484423762575001004448668781670164942184390952767782096393528830346106642275384143377703616716652953198034366507859995708954953615519447085326241356619769597599517995811221566049776747922082283495420348452157214987911097684134580983134338267252997214330717546707447726538183904321946315290258556328097111408814960958179822771831811487198978677625501091584131986224570932855261557981624585333466785921907054563354822311605088037028403401988789180168120689782455252394457599337825115231154646728389125366825979202051002567892077307051033693730039997997567836755402785977590155230212812669212149040651069028713423805260936774115224716179269827470876365849969463810912473952396381049519017665556716846474512439700622786686273252085284195669348374338465205826871836354400693352096169779738220495592238142407288688511277433896107295656257313080013699841030567558771377770618401286126571618629357410751977327851192955053073209208745475106120594843245036907791688971459724781058207920045806168094807993377963606751342144299640389882934593716131123933438280607257835189365437188044875901292998527733918185853377414131550711117088961741109545078288564111728142344699022083258411769843297745480328567052522342339277771708188627460607031269183348796075281520726306408156284429930157580654359112709517462013381910345598556301396831978534832274775423045516300841201815903211984767739625812170888466543263278467573705707268076494595161141965794245170491913617693952550199079673068426900971584536228507286570218604380075185025853505491913316555464165395628885447506857042449915701375504781362584243410369355826130352809035003258929334472481127855770277830768787328798226689073101502200297196868433883423796162801771839743563201995643013886303998276059583344429836963852920010280176158314219952008967161500262481687468995319959266829908810262554934070274946984139682782390176597089109499039533477215346133769444971974494098368268433756382819651415630708828247694039814166905195094086308068609333673043930121041199597345017966409716593926232498821619474516561868037331779735447240457713259698363157038526055812141804729820017268609892796058194508166496530883093480397303777757206625840907955677563747316317855999337876805090839233744406724841812911585942878246715310296995361403185208950580388989430563080216003356752093967595081319000732704891003988745119390633288961874238206618219534025759237037288707964983137143511021051165401203305740272356237471649798695159287911272046510652523530175056427532587170913068066283700108837259744302590700449430175774213396761477100944058926715465115461630560067520195537338321086250302226351521660759794316485167350904666295649751004674154888887949784194861853723021727552496351142153417279469331610579445384158703595339214252206635580056397543599196455095485528443767767103803316958784077328064953399559605664435148611405998038471601928633840904638413148755440203582801673489875145889893169639951816454062701155846008195475800348076028857862956158442980007037087648615354294051582693082589394385543470255999383829289836013348028462697033723794869590594040320999539884289852939347378517364837044907673141749847047633986753261903871492352317065589968264677727276838595544622598668496030248496100819334971350031981183569133768862662008480230403965703944493066905583964683437719939058804252303474389818696026324396583228860002698436545134649734161653553565957283497609007301181774852810446252182863666868329561439558920975732650706425940907123452195740044608595649636452354258158921403967983445065348316619507864306720651145356281119421242416734146052211440726601971325795142728016177497397042233791735805798466835863223498810727590311082109065178475974704317753235480303234597999676212461360587277817370288595965990280779256742482907185969270398639261158660434425921588977896630074363808046825828879861852232562824995836250622213917518038448060387779923627282893528132042690990713375773804947124310699382135241927173874958379343405273734199308895772043464150492778905918628723281475181749971248029540431160850404555429156109524600146156565340086041539052073201415537019280708943294397072988643861792636867904727952597240734774357309461938628134313692462059908426978321218385676160670615486713984163616719326318523329169402658523884624310870389064838915738853240989619240131479541871665200888248708254999543319659558013730760100797915283788483662430216440577894312166725390220641359234530804316384357380633968363314838426824905497096306135790805567767283081049561445468914990751931193638349880310494767907694423048110817123313680707198286171106362259410725692957900909720789790700751996537160825807886313838429497177800528378528655640452255902791855580863523937721051588950028735464425266028514241372151114353957262770579101261489205944710000375460824153722865910042319155020474714985965033375131069428763594033510915332584732981081098824006206406271436855032965265884872227338300433154499191803310465493265363401263414215794701088872230453176359060463418213651046836862961991969930565775314768786030834053635493694570580653332450044691460902874006478293321092451386931030646617480941045643221616112541244876051534405302857915212568724720514978393976021714657137043480227338395372491321741414545842562639725853882438045445654664668785426830409815640370650159719912245519635534294197324557507923788063456474025939746698403535328167558769488286123435479145344931434226738956031504023641143674299442527518789543486327117627587716646130909346531916017104820071137557415005314075620707007360998449203247048142564620801015163927299833479643973889457713533995917366774717763627731600743608824603438514006006867674984810022301995518766167606699490597692836316328050873603508824860656989374990872449740839331702996669164691104406860429300328905633562144334609322959034328171710392337977637443577393913418875159164997225180380993058030237342153980217162572813919124644285549493734906037539392676721993729009388710242194031806032896873956031792968824820642375069618252609463065116256342933415056230633565372302898208698940063125062663893319745217645017134711154101118974330733321179477504468201762127905683244891679167404556996894886319363405883475931860191238454589144986814466774496707199650582794275403477458693570392318486277059605173028311570218096215707999205176235389771117012035817534487787570205815872801675159529327288050213528963341252816932120501210731813242394011901619438419949996549159765824573193465268541753453491381275682701050374927680787547862202923500812542331618356093773316762318769291166702321368613757011990093980412732437488074852232991757213071682284841275414788755162614712379741308320251406388631856733342334495258927402404655338449012006278011779206466631615176955845469982788372994470893239949422604877672602693675641928134402990972078721486929275199477774877689574237917528274557215202616600008209282147908933698472610922356259792682202698876648014983017745629704212929577253873180509811940739731485935184418658636794332155981709010613286913520746099362283824077595145836965541278175547644064159717916251559845837729442696482393176394873480585663294578456632119579357001354322846164326625498781319115268464222023795821621345378459044330164993674291826861678584931098019966987303036808026245053468952170583650751586864322356637802750536530084851651691671896149231154530445127745300911421809959451577738619425756999478411740009371555145345935779840438252520415817932156927895138332761195914760446670367256739089577301551937521608252603535456444412594362843942845704441852546491715150560039050257468229236727980688423815394906262204138532196547025599709678389178982395917952062020931421348389988071550970650008066717807780339361172632150506702930140134770537713487644182049716863211450919375152252922986290972098777154391050971708051217359631103590904131103783163729229749769860489435929631172095277218424759826705864103763514815821224788284445247991016702300868785817211753739799226866566481137365752075454086464633704848716175402196349950790156104334740407614389199867288283348047570342040231098330144079644597105042165399952428755643835408313436324877376809431867643354498739082755808685860983333609085821381772481874226096108588191641445159854015650381331153347709034403569557774444666389692439891315323125981766859571161251005374999602652971222722132378986208686078698549794051819290623149990106097495320532360396051710288463290168509246914586070101259687483769864763069255372681151576298933543305555932247504050170375774645619270350024191227143895672086534497208008858280658644007376561273980239159948425794914241352675733544840288490308787687188989165284392458470293693864238892516845328921557305339915636115384972517688460027310532279141934414633898524355282413268064450749039028207832080748981176376880914825816902831505471476988013188308906163058637530514226503546589737721213997449584290054588194994761848333025530358266072014125469505993082595490523062463507441204368111229956776336055304845362035331317193369926805891425334271755922710982623056812494687620685658495200222501278276769155719502404237383322714843062677904496878775339268914877634186442926691792890165086754454402884808543129212079251443110855257937132676761425984745660737003862147020911510547512982972713886955385183294589636379901893272303665202566458268988816403219533060215914825586496792980967301425601874490792391467416322274130815321876597827267515511776275665288147613084098814044493899134490895955576694761749259581364643091106789535589577463572088590952846684512250956423356951751924272031946300804924288954510046543867737846272906692569113322295357692433138744059808501548996000583202343944517200169915348024359135601894380825441316890535245587356132096783743523139170644198266029439579138696595744655675290271738835695748830794526214176445650849956777555446144598587290066441198455234832248098420527619040553881611618673579676396205545180332808496662809215482828648236412434237119160083088168095243297833868658712922304487174635588474433729325879784773374885455433165304948536130999923441325906251975313194733493136940340843830659006711630962329696497040639482441649863954585057897399770730510584209684534204256322284862369285764763870034739311441417693078092899250390484985576913673990349091280957544927973309708918409160527736431647601524204224509594132460553902809726736499471380595767153432866869569751923837580711144188748588417076539714822262870253971451833386628744554631332198284961649106954661079046865294828295801064341865871058193725690311134014792677232024878407027967695798424848264387215875169574890477590783724466232756172730505615763654885868682710823690901193209460836876189564616743982009432923648865926561481681108668051242762389906892432061116294067815101619210797982188531700639110398086349561066216635331577478866514105921134061448628700320159003335326719638671591430854392042928994706616674228678207442314722528950982761053286621863187285370733579889192271341075751454626342378784824565774546476471275052186636983809401598833327227937866492729476652250690928631738870782961079402834068590361979116190402510450456329065494019309597775716563658025798184903521218889431849803522269864964428040794521568591138988409198603520853431772300254312951491552521723239614320996467980658983094525749589522280849128909399195779932238978573047302034753748962293634588979517454053160368138105385174730892388134334635243826468686753601654351105311525408095717081825585606251797034665534934232517695699586735640237775927822376544200144174336673972213770060082697717038976362538882560354143697469997858506777325832397000850678207532450176687196835834203023986671286185305198083261528629865605681281780487961529404353680186781219507323958273026918770018029208496472326307894999387593914158190105068383323602208024318199798801124605270526836902758511074682193392549906363611214941913364710130134997009226119912540262797120449767895913353518114583161228981050668251540002598511527126623694099611176357987419327970467345035086829666957643620307092212968550649142923927280188989970461813448675295297996130787036519552682614356650205737482457698175875875163519376762083835653360970149801408518111299972423305255704108660790960561260055925895346891224328481460753800138777736085910679607900940428238604275648945252927239823906108892211721516186287599555210015327295013167237380946177589975103647423714035045846856627987084135488462781298502821593982474114803425527046876007804204490765589192375465616667792058741324889308007272709415025973694004308346667132212924738316392813755217955142494378356385897803097846981183245515262894603528607707770920128038112005532579372764247871460885300479258599232238415178690710775292677702308012264520173364633059076185717249922646812266583441277061635251519082488206513191623641108009570286891899427196028755779262622234001037730655446192430267615559137277802906334672907177090693407735782504760002774993189574015719326294190174013994574286766613664867209788296915192887583310397855976741099082292197236202731523230006476857553536626841993201771920840839748314551449888944473312688692746893202360563469279402018416322136265544796565837622644208522132175955765663192848489849056580549886064135400820687398691297559265254810685895783394222151817765887695309121849637368999826714632160066390680484498448469101145625665125218227511234997832934774264859204537514929169612869317048323131141211522943796832079933958662392506761699402733996851320326342027646951220955436393829323824010143192143880563721576121678383513079943728558718214915451884666034376703711488548691360132421975821047490645718990285399492682352878055369313369002052722123004044594547607433227299548792260467204712808796054080631924933732428649755599461564256858450358161437235117244062133059390174884062052903361580882539717733306104096330996326827634618173119931716003925539598436729285148529398006112050678262426251878687518220323267921334733235241007815628453361010144132364551256921510529599951804306280374290440107584941707206717534828397045510016073577057753982882698369952242712941694264932334067431188524867348052653940574280490496399821058743189718131586526612053787116466262401905471238684611883205970515451345747914998025984549089371008279595132616302510025445115759533629770789815483907769740776449213115838257523394923560480168638125615920746905368391000138179487537901461974873692159357204551858474430156504173693424803193014501440458278613999038038193071936022757033646788046310106059979319972302863016671406520571302907078063944052044114638406825636477287043839222578613760555140479575305741908546974651350342672093984408645076468648559617161070247027515749845068865432388286102837950075159922244747047313243395315853291911196598299308839006352761627164022803233942842652327271823531125366623593604782814703434288148999604507241440101857898796465952804325748848418424549374073579921860026354012145671497964772205864014169954223796265612498152980155859492023776228927321298094895828698022085938425525130471576978758419298636998173890025811631306707644926683058452491203695869601649315217741759646703769677214051618676113171400795686676205571642639629921295058046340477375059041583411369273409232114058179478092252829336668887857762678324511390004748503514612094323502809466884111205688131504814263839463035512736361869963280437071244940173454809628589632504838828120478869705350407814104253600466424632714092733706259545201636652232164638063884638456543090592327596244399265938971752507005417813083906676996352345679962688078591903007600774302579619436856227327302045745490190621333569021286702080474945435784654336393189772822643828872492970399956563441769499158153793888120579463415220769809710733445594718713598712274650525422330965795551745877442066231952583689556465845981641822773602951394211096812154710933532461333609802451884017620454269237896076848117150493102048014753035988923977456285608619069711144615971803274927213825239256486881262077660460754221867028540593203664824609848895958596572417182207505127734668042140648559193007130990672124718185567289120308738016548593124772613991408298511455427860411203834267773280556221430881567536216563257480417269258733977101376203667531309020892735278710806470698751371962870465388894225803918891371435140835110606266022596190011829590931415659049657681337986875162349227197978504971252832224930296061529940850908589627019441195065985657421925986513696878967162643315722754164297790699891205567794064001550539889659333211971110209695885329397129631044743898392198865185336497831747968782772391524851775813054271066157179989457363910847440252646818521159012505349088275883134155749861729541974798167910339082805869727821317572542217826203316729927674991116468180506936933427750580443860726673037289670485940335423201296274884939115500273500312647145376329398652425536525304935066467087288132620889376700686709804813285934017270511559273051438350200473938082026336358858362348630445525006829291373542285313452598176453432990906535118584467705165791320531403499216833962997302348389331005666873341762418860089265484661489364361562050220524919038091681829591331729159681724846228268145969914590332594630050315027580539536650344974218495111925119456873202620386476262707455208292357442090013033310731241870372043348598212185217156868169600355374790516408839357006954264466815469448384647829465617861538411039002650010242559545793276941069780535757744329038135951653009033598627525619639254989108525815191275880523561318696519580094349787769932193440822619979937221031685764233121053938336286021529837421079457500983526009754631756476952057468603423089619398477279935695230669528581845836971637416022754851792170488924163408645596070609356042699329672956208979889192193597280800056512063571123999637330818032679355866776547142339473455657689811191267242800649285422444977851331411767922471695317934722765710828453355450680567328644856470460247207865572173274979989613161224489859881314221228713909445530901892695166694919856115563606189524367494610042577511496323784167103336190519388874393778967285029106197967407267229499188692313526597681518934635612608757069204588143370513848850724880828924890251366430643777298693224206504809231129831076631652197766492095656606328370617151610455474506463725214781041349174487557826725685738599444216342509983435275550816268508887758682926837173714202681708403994469576155412989829713504671514349970317463846255470004522892992889249633299292561303697187810565278866661971244165406236564103847487489289832686697460111582838048207044716958405370220629865327787468433193834503377784435897047230048562036237767488619225870352682861638997092036163137450089645192629376069047317947552876157624342083779348832716388393401207649015149413995371574690327221891568740111367138141972563562746856980231110145282046624844648134450625093082236208598751891156772686210984783528421127339967611181769184400223456713360318258447006773170362380355719814823298209204478955087933235540837097468981022571306545915659414658243546336154635684673219137943286318701824168059552883318519492156417373673683707520116134952313036839773993311176952614108254814074460117997943302546857887448741951829612337697380757729118897270266807907405767360136954254752913610139263750782398378138674006702131973678036635549176875668107880404032814738891398908531954151629720210720753448188243112770775929173897962174364378407816732356064065186170442094403200930455693199331048773758635754210707912463895708983772134349681655085715257310519697684300441504429603029694578705935587555731834988101802344236569684623105371221103213466729047074932472035486394582493336193260434102237349579974476624924767921090855538980670705685057583818827577221927379287240636815369027110945354614028882616477955244136005739932561705638915075059660549000819549156517575465318577450409569553657177491321896580405095075501343873869019287437161081588761566217606751326715606599131869784916041995113944036327050884425731474285759483572890985307779329499306456529522973100974443072012075579036752441289348805731179197386628004668562520595287051146140843025729367195603120372739642405119605830070529696724589894998831096165773206367538772920258910188319975553308723230755199365900278524032976789373751011361978936810847024022345576990340945542747940290989659721616105000943192582007025410737622254872136069218797244026093887155067219408917063489462969628489292418291018859026583269817539054988322674921176178228487974352076431611843344763072998797491076432673237717850132077231921449868666988637844185746113154257788028187119185908448955112212250710091782164172366482393196170958638081958034572619788245241664485309339717864052477492501574532285455613978057043135050404564501650924147484166637695610977947492388807079731810449187351185861735377219045601659751552561416725013103761465130411270916571237806173365408626337011830741789779734071234476366521628503923414735466501400229034588938837347940220598137849777060781215775791649497851319546041322510974822677271908688973372390745987489856199925315703397589811618190224973927467412580257364183924640395707977655748327012377971462784404620540127916377021510867503085343205919459554850623904930810219829325839115283463652098085283961701530269775960078735598409188343693473657205415428353301207061780974983176014165233293805163028803913260227892727857240746983396197296473555166448566242191250532052850709590367927441483628342296708716341039731399706727527361422124580823938086207481385454522766164930972378932294504154623259894120998354910133259388501253727856533957088493331818087852717510570134323611107930280860691023997025672554808878183910114828819600554605568716893864146070572417118722282917865475508187318305331213000023209878919104850898825790182077411964748594478168003652109097663330437742916725393686854438690733237868325696285579928854716706118671438936301652565652224101010879554193216868970425211066028257011621071139632264656748245521363585543887028811484610026514943413853480979696763397144395332117556166039919620124452180257585780980722403217699579395733886881520211706555873709855530043154105539721445426933602730321556187642279479802441466723467184145811411152044694965841895361455131789775018704499918100882274329621912972876313001651492008389341961385839105437784417950714909556618128480204791040722670228693446687219506947452627317959202421923440608467295472497294609432941234560559764215733569351648624624472662718856949960053381707428228118998935006169739581366129445706918537049648014239105594444309158059518620482657551902901679683064650535843592707556246948894456220389612136323145440806732489593399035747722020488065044731244630593684842278540854818031255533138569856892006830708471231337757081910168511857089756910567147941749379900800560739657699470984383498783158357497909258804287493861076936325961091887371086579889473610417127680892085244333118799451993446583716137556259493204552231890359504492882986380792744689794990330113187994533912544101803094796307635706186543084195805523081192631308770118823028748216956158853216500648864792491400383402338960338013744987165401613478809564458316560260227479405211742861834510288913367820357308663091375248584930163906715169123504638730138332193339550285934191446937858861038551358863807235033623761685257916284094119823952163173758483461096723092441593538900480683664547260207757274227103897674036899844789781633838970612586714950084538942061858824728659331399554686647347961685530098145638845535730170979734364479308435600104538026956708436541165979666650949347464197283298316928707759008749635488900990355688188531732608966797544715293326903166698007418707510470785652243259987628074353628260098076388014688388645856355786343196200860973947603778985149024598306666511181386730508644699284203605721832764571639211558781746672120104663937383982463168815666216375227531683206354128327716997048090945521331832754372896708094354550837906305210620461169492315126755367916036349561967562941716161078895689007320209250040400412273991418987453972820888157998988553568537445730790320162289327485582345245056208796815753254489679644624026974067398758062791226126057358942454110448843501695384704654738965062873405021127477932063587310973587360473466377102098066811966891055008594448314464382732494224006430814025288304767810282564912439443166245055330264257322220859015029723320620982064620097366913984516796367035468291696829509924317050219992704698999896864210317654283239354678707855115679208891823863452161863907536410206743364902750806419386301612058886317957227982236219479721125050129671562772162138502219132108357370310547122058014669490984283857738414937961022962721065330295153163848675600589763893798951615868941073463998867478553258228267900389383693165095697559544149821726194582502744480280959476299316090022319083702673482545422534391244341297137142517705599687257176357954021228014422745282641689806849274386452390969810617794821971123481290326678935328806513064373936420277207155231171371842192251673079798231344100616652873862630718405596154968660639198256548397379953021218505373680215970384440810517650621180995343783063382759127681311505618464401082727571734610675581695570429699313086900942373884595664736635485422813607117437746196655274906134753198699410355041662639313581875180438059124417477200566471741401666450644697543834802506304715001810533113549980348090691692336494135817342851443037359875694535476632368710228272150080755290067641377777667234776504585077813230717393850741824527273679074606939187165880820524689781947892721047837330562195880695288571469010324337870719893356863673720192120023616756054445467617067518252527254706021716672192775291405836926904353308476755167932557237067427243982885239619410801899156314733467422604238502785444772664071823106053322044382403680918714681406812712362701549146968538488436194174688579747871246731559235480944644039759500875454399250521824810822802086370953162560882987559703694806595970431187969226215016775119831976191883325103311024342659889696872062221980587956521607783838229363485674334373043113835357083949863612319935469775672382043446502907416921960341704036429189216282460115708878365999187852959299248200672402612869990699994106158837181331778444413947088681660725418303671120242502418680919608285428174758580958691012771689355217361875413402803517809700369374640017599831277987518448299622574715909730981139515590973195972343792448917332786307991740534748202998500329894907582054253194467591032274564507483426768388317162165072122540139310330984606020951718161768468902009398684018323665424695199956713622784532716803363975429622179122613991929891351774771511332157498748702644852552057928642576758966878391519908503439968145212597980773219392585722583705267665100757610186725768140998861429067458293917613384843978783136244034027598243806278388377110637263560437227650865574574863394748364334855385834395935979004515560457861409113523882400350698443337751713241509748420100773648969498483114660904831769317580144167406842279997680075450256927818832942390052954806137955035236772206144121824237712232872045598130867434758033747555824310387656437643858074342333741121841316465106920249826224279739225036656011585668476599167686347961576364281508454389422368235599339552908287352038450179374086441345430760883264691000261991829928600416469180924590134220564760876243355704478340718246126838819579164629246498502458289036564414761138735917568716628874769136713763877914649278647221587250082019773917090205659324977348969979218198325994450739575819259160194674909438332441076917891147419809467486892974897015362260475149978423491787425604259409073593565349641928344927336539700931035911130177823456821718026519565068836570402458247725605665006350489968947027676616256723042191649695406213013182286908567087084852889513726230863608239509676818849333944735451045309578711308898862127626400104311805747424256121044221708721906780370002085038027445425586263292502355199873542408839402348004139747393383504104345114897355246423362661581762060445018468238995677492112535773308709680294214290339437811967124664181777898246645660106031985418898283830138064467998825462826691383596161059973488015912403695683298130095501530281145057413211972249073599022397201974520042769494333900018384550659216998396589048992970467117791798755763692897452313665485149026658075370152438300751074751358630754785143352533729262863454774863508953017656648946776824000021389606195299379242730815684974581567425850961893997402945887517885771339048473544379314815145390142671549017773942473850531858240690735517175831682619217899950629582679067196807727200251330989097567068824084675534827264290607654611473742051482165468217737514067968528509682162667445579256039624258581061081781858193478026429836745506216134825373877913623981686214619501555246612710955059596323011266310914176707103325276519449445805901677044003947412885898849414419746637814108199140444160801185506064842110342357508941001150687082072514330256657431865903481725257404593628972018872226965293482735393409077987780698171983210927603425480872623651908716801663747759928107133077612508453713264203412640718807118230366228533061407535729282645545488804920562830770757997188958099864689791137518695244384729886621731292485997189986043746629924261960052911946669284457124118030438618432798705357662350574441973598682900692480667066296587665759283242248792061367918363594732988416067489100690811754535679698470202760395036112925722040098265450545176163650025154320779740902771099164761950094330994803393285455879186639638115290866159314698311572675434757847511427588007210505441754609001060267334694645202282655217324202175294981387569483197368940350134742392373053365362159132399924814876724491896765021116534786040685947650404245800865716657684985467147811390321252100832822172897629159858090994358957697768465417818583044073926951925586411092068902739946243754903463883525914279294940117230790340174327187841300432821176519947723936017298981262120334701393089934287035316585892618679261867391712893729050226102515323168678068392145357253567987037099299107856726501942329741950267129743612096488843689309866215331942237962955795639291740882769943812720813091765379479147627475437317546967668837888696833829481284936949114344965918921567378801213329945122028066994679142776960736122028817025573553687281757446150982365930409863698739661608321790545707849324252783967206067885881387488502101413148784786387905168768676073792571513570713278387375200089561785038116873458804689193075011755939769170279825828827350445474448219206596571440311451924694162508999714165244447540657670079726187819525374158045742515949971406995472017754724052127753778131480093998849426840151368325876297835135908120715368780507151811991458727573147813209822542163148032021627639990387800220987443972734738219242783468239001067032034628387843508375496986754331207420258012988544336621269967453055169258815097029406246526185573848904222933970686012830990508570711741979659977713475571163274595797045511224050952207185841138938716059164614833109745695437410418910467279977109931061859170070986905982183494562131172288111641030338445265936466075061721853028800107775607017299196267979060971584542834521259856963048070503559942764914781990817761592254185310138288697725377814069574824398407423408270166794042127741270534021402394525370784797681273329379072989907195075301762483159813306490138554087049457407161253786245653731401557335603705657080060727717379779505102795185550595983581905428735010223031855088914339155555762545623589399008821705979937136061443814775928975518714073300892304121640469871297420018997383514331073428551442792326865652206884576108309266164617513577260852423232150027625805098401728608967030931920249263512986449007299619011223034279522111350323003541720583293050682344458293117944500584186019416212597537806415092055701866929475667181922747118795340814390771877225450759774360981020994941201598356498916373736836090306883974730226874041525202215267057338281666660411419511116656375373979902521120795244130900089990305694465639699272701368012018323120090211353845420289101529228347360603144052688893605866792578890060419468809409407751155743480818294510337219608817251746251318930647454364425433390084994527188985788092238188246369959310628588883629596461993557803860679752247210926186251897346650985296315200305786890219492918949205011671423575150753288628177550213229102603572636928353261772927675014963742792174086442781059919222770443344302095840344920616244491870042340253013823791568298420102566787550112756409597316869773761124375689655803483446361867431668372864018194834888492196100680575720518665722375557511120803252459570962617421027285856891173403100526879088727803850637859336637038939897811964331638697813725497275769714162592451017770238710159487748827232099211089944849230591147401227813767155146087434906424899405211251733272827105171580783185732913530197572726434843021482001326970909092228898839634451087579314203531055158917462829461195477743064212309741958446314270851135475270906587510338057961868513989780341034024478465741401342452594906575457726482691034028636519026899313942562849926664167890202178244750523071572816755984464631759888225446506065490771768064184834505634078526872015238588902723331565542685284092146018080451203717511827713423705798654193093704774559217504251053745947299779647808922147280401147340647002247071905483681264147385601056154201099132861162573232515578324560884155556087590954101976148844985859245766173707279142707626406465707996336846013603198242510598350104201328845181399545160460265193109567541026819338288340796613829786491108328214695945953753165856728555270189099033879325699733293526855720045969659232418727502693010898135107425807289818122597075782426179324050289543511039240026501555720666719886246303911202330463849650003191115504588226314352087148046054113859039207169472156905880590559350249310427989954831680271098852492359044317003218406222471121684135596551262326569800479666317248554326149295692598323947518429898135056128044634776734356922634692771082675683747206298835463072813380245794638470752803623118925429644932099817713065100777040837242181652288360678698409412167105716098151131024516496173889408516878154856190436377118395828202331375123152273027049132575336011301969466933664108676512521654617275375853512448979128195589136221095039939748109869108266310531478901158835135912605109292267793139335207136799944181338720001007268895237836713440687097231804459259870685639835026544021896736278306516959846041943681289586770373350781346165085496547362974446599305388393862413478150730952547643288774335774431875541560615990810938284182602905354755494422777468375114171731297678791205297393759741222999145757110383687406883318382919222792188362865793253086087230119411613519079008085770215736857935850035049024764057453278459138194119662823193567506764028216821914377210507580311544850935038185114412105523869484241472416978378046387154360421574387291269463799971636979498702703712638892431957006296151971188309667682544508375452202694334680403680006316295757778707257904642377345470987072202694030760868413845241398462421446207626621844494417121859609893314541368984123424891855503573274274545406712955227805423570634305990785482521530704869852737569175978468211354909851802825774141989007310968424989603983322808569225902622061860170959509233325830342362249099127555538275102332835355522325629740264867331766628758895240029253457281568004550754183801080532301714388593567908491258965494355336998114473384500034395883485683148379173709299785735014030849456736894890269989553282663676676042943589279010706310060494802228531044933636455312009727119323111929884035064949335972939738303269339362133414937608552824047872589871656722122518504666146087551996531554343323630627921214845699702177115399279487299708589774700690275611845837448832963082702189729834175394458734543977133192696497415877940869065292470773310428587855699795331429171375627161459724616181352630952479429846120453288533257297165065489789556085661922327376876261500955750771096705066137897223170351864624028689658387663503137446378614934914865128593554336502811386765730976110050035286030390022707023840453849120536548867874393580367796315393468854134919316014064975539153372251189841567822158123029917172270358677203048306142623344968303816023933100797252053986777889573062636563417628731013714667254330480403671650476384678554952347228552708214951636354475708836279799189931241678154017607653234673070485829459558286013725383250280401538288761454668371952674752219966344982338747192488649641894060198748811295427351704143568446287172130388683626547777101432018060517991802303086321609399590780167915662720885586360897939910953356890067417374985521491300719915169731226871290209584044552412127484286831390568118541403825730512097765080600592360440419991094162804861995858462015228991026578013415315715795451585371847396898453512683421915829429315545886772225083449527410609780469559568801398809547525511061906065063259872049257745003450345049478280023386586480394169881655258553615883095488071331700668420846862917766579095326377564717110571570075381009168978317856995728879848667490223438274905480865273318761562285019313274721322686983892355261190333185694028715206799782386196412193773388053877398627593065057920980071711162640465152583247068200182050189248593291733372426054429971577758201826542022529205121305859861266135591079648219268385874996802055180957795984336538727583405078563745148817077506923576257417177798897381230417034507324163727887427816494598725885564027846584985686652057588751762060032248645269406944717791575008732754026525151761410854741462259320858592858490683490949442744000885429785153078913692518647595819495277755713504773795436837325744497272915482570998996284757723235519244004162565947933039824222195867846034922460523963344595229937921292904795518956678145920410098123343553598732179323594340263666230081820798674368516394592338786724123279852999507001193901763412656498697344797885995583660813529435399904258591869053244318501217624377137447462087689171375850379506863360407094156453632267756544402621227226345460199195938783927332958732828928413679559976838429081722803055095564915018491536287899834259674444006247346496693843448701129817619265137294818040931460626227904063300023404710327660438436402840784171953103238049536954864354369032612952661491104400567133930485838327848868801713117272035364081369779921674688738691359999755413186367881144382627154809630347175522971523028765858575139093832055782514797402849329210384907103116214881173346737455759288971598994182731515831699529798323488300092534618405910208356004506769224000495108657921597361472964737514206544524344848457764098608688111764825540177474474890470313580610560272966969004059614183930048829317897255046085262892844349706166406867755177919486839667101285127449070121555306550602856214278158925871911866303997671852492237875306982342710076935853043124994796468600023095169330822406212404747616761964282354172599985647948491439723472439903128008982962288784298888526867367239802497265526353309393265521192762868430438027369889272769920169915701152572603894045898107666527938223818980630469060081940074048980703810426440724290379171379866646617933008900979252435081142306335697646197866081311789709047298424208317737817958527099445825016434566783329917358511285559243269262971057454978263618685973744551126967251344287959254113429558876723617091037788180191586141839466744466118819959089561538101650083083505245546059353733967903350958145106087465499382267412525649929925355555771860396203855270531779845938221864291378706327074945869768886836653787586006701561202820999058613007489764679845220009639116581019743231223733854138549582869043334501188923064610640743605978905091446950886009665137914127318828543815150399207819917403766830001329229553096475693921670002358403164736034055318008926785773852923123703924447854371842708636863608508835826179455562434275563534239143371641976172258488496262591691292823216950028527445691295257663383455399661713128173236704107649936350584947450228962478369828334273041043234042073286398575439484058830581184091376708980020550051268528461670747052501971409104072526998088520150510433858728520176757423236082197226326564527072355982100601029675397125063787150028284097392683432469577801085345573095772603866548768349673823951960387992866275089025635551087665315479544032634188598580748982711257661880511079979180070829514451445747525290409035823102547864610725428889565434575186842626940308965346642853579031989058692779488681738220527921608793830239615257473050913818218465929671472667112752833371739051876798141320935990137243642620670521939293424036985462178942327480101406800199895952712420474017957466566856215570315546803704025291459987266923467877921554335118534041321725738522827430843497567761987305043272744286097256129156902017379321875214565298832514539461117312744989377555779465263808408218813506755601126881415723887284860724335326012150364954489619255795056092423117839827360305986611638372447903653566840958599018257705115020973730932281235738729448667157326581818875638354675142946613576174772856333336517683844082007784998776295029253987340401912127750381417912520838739129195712392196174204441929704206868144858528923881661634604094947753590706944020128392724609301934430596563825832638238199245526528513430168109571115808469768119018806743861785615321346847896589722597988992280971693307198087237786620164969485099863468584989352881900313396767042740554698639480965524175211061010205946207892951581283948254745764987354137834334119220190200374995829751041964596300685352325187840497602179638753415915559391370616997020198540119905906577827106605233531771437355736184754762495149516135433305498899908826499555132187912123288070981305566343262851927623277791977072753236584343703701025818938541721333980706267605882016399688986615509381487587314645650399449654902406178010158529268098723937055885068903012371278523209109036524233157527579135257800620893607955048754643053102872462723966221677219298195660850865663737636222495193182773529527323864140118521818981512375909569766274394162628060586963221177470737190736280615614646946962859289370533969426980525441460738922242842857083269577391833866236193344544649582652187514140348547430816572903925327383456542598723852722747257084586771840121164040747305001323872910031447395506021809921872005326851984482931113150405872797922657012218959100183348941833855420713994279243488934732817730247877576151881001495509555238902753017987439899745840077776069433308016674573217157238141154269940519177378908134105543577435858389243782101719766607374093598502040375920303235800498979731172051053159560483664433946032098905839002281227363103350929570472916194205518339111003850560825057915334577589880291693249228757379130153443105895040238458743249109788343807251011233869600294306829048523777073690175489925612856588017760125557712259075384301767341437564684155162618393372768877428971980973367393153327657357999591532076452001550639214703877195920791742378117407725069302665133318060216679042013681894134896223378555199623844831469863254711555518665165445755210689523916666534225404393485441417583470152342160967260919514471374533842363803805800576500010636104450588000523918932296683638236938965218842226532072570797630683123669936246854083401015660510561650372756926119380203397426362201493423168304922473837555190590712994807597818959031433630766023789282784216197511449147565275276271916989413058617330190476854189318690138445205453583636262506715036968723292286709493035347115636204730197446697461145115678002180248792696615304156235818483791012429482263254312884747836990211198386657529567275025903699443120412910188594442764537165744725329370683820746331813337952704568039116263337276675258319196284376164348391775772817693708164842046291245896782382080713184748348766402258569668421781970080950443175797348492579637534756024649596038443382003864457136596565999126069836473878050557054516571924379422151151092374296306054049662261407693019234465090897990334027621763040512623082368957333064548067121165344072247709163580974347053359170720268802051027933452765376973884838642878301035595665744564576286138246889381179636939879497189686796605169949832890870255029249918538251877833485397612407258722503463533586861285001503762196775020065416950652842817629163047535041782942450147842333447813880578183229394228636163469410707176847284390648669797052407873937584506016685437587083689114801762427176814923219133646523076109705882671553077052384317395859332244456929542832420733630314662127141756661484872105239061268053960746821638246650066411146578939643534959760180510999465609387367884779895674262575205689480962360893147579314694962364392010688181563275992602647533989675108760443383373522409008398630878366632943705949580250193426875043527827469071824011243380480089418966955961548048583753493509746635410494336580094901141800635827532777366807912055129110130663754721879651940679544686728888611945584003599244879224993189415507293276558022927878513995563319934162946631323045174015617658269662214915972823970949152077513915253574532660035930068623267283230396746314237813409714604025097130834733416318541335684683281563468549518826311873599250609198475735871378653688820192692732692540868443345187116588447898032231674428325400741666414269666616267090738155434009766305242746017818047505368267355068954741418712909026103344764858905018507951904505386359665194742771502974711309773410787257297713863975646670761072301997409713234605255352765316734400339140976968238468013255442205929581127072617215248670433207970168890034808740088319266644451737203407371285950019616022950606852675657181832762068043227733392798958682524787500189952568261286920586967761569401665340591615521499140529853046457040934184892492705664721289152151959010116644783004560219728394141280875989137939374582203669071289211611417081757929889945958669442065915094001687276113254701118306906336578740368557293115408157156487189506837117648623758196318112229741078961419645497547974308733058111318872417351262112015221128250190878294337525962154494814709459226960027514348005115866537084462347357110547015616334497784478806444737839966980291395384081580727906100677496033422241559481714751743995919688956038257398242063622242789914508906238792984111591028286888675416908999231361937737846102175844565490826752420008272832735435973411406285580202850394239161270473964005625180629327910023260640782331877060506379612503845621215694126620532203968041090996705017143867280532963214552452237043910303517829205021089340493376251034241085114297236767460154948374375328479167258200050846924041712691252271216042044090285249340738221926567234760207688944383745536433755081190199142154483938484825728310467203396512871475266372901469547948661467475239354959839846791154774776266446636715269916823178147123938052193104376693267784479947641633326313032789356270255047728349761282705610337600682409288525669098982029522299535871737412488434080206580072663939961336173861004715505665453795365605555580378507190667098512681427752417270599882121994837911845352148257467805266365904960714767513622111983845415036855424938323116181355108507755364713416211008239422910748972945611466062435126573597034480914941911505914855906145997672502285608060633990259787802165493016013272593502625192250787622235673541250293116538324781418697821936765470888137513961781256756955578832969745047061302083169793628831980825941896777780491831547029408599267859401182320667056214257518359541473855125878993543298992664223386474219892194332012301487234987663591030267725480997773212904885897779977689771699834096645795100494783046050835229913798508237440429694277913074094450481487417361542173252398668474160179615563404786861935223536781521058401605109874328545332549386636844550982193333872468100069242721295413730801214949688787295485047636900520783574257188580787225970355606141114891211701634246760508888409337626143034072273498228679973730566236187358367352857057466788362294241185344596409883209342202499025103588695013314657777491882037709798733637223838272743001072518161950020037552026377380876456235628755731720656486302064102181439381281822029599001256128023705427291098045892473443776850815235774562014643706152020745963883392301518920093725734729594654116893129516906807461803863666282976278713885650486755579559853098201292382704889604926663128510912433647501611828939083545535444739126964645283946102269813544973260047605886580404447639164376464994608317370807230839346697153089878394152976748463480067593598115752019506217956250731752169369580208730381951220987683570918629497032084424178376032702119976454890394486888387896169281820027305941074077759843446502121312580414660816139852551471290146640140228550831419714170663552886402720359612318334866478268127463418314838807081366250456290563183490425599422371226187089670023503024891722317759460763385279558684003154790064808123282170572692037944461616333277520514522278396972604325443043951689191541786856589410164435655643880615900424981366050201487790177466526828949470749654840899813600668448668292623327376534528551875774421265091027513232726356156723680291698533072077152832597195769746148678266078380808436134335355983779937884003553240986291093942347708658204356844158303309372192733259436118871208205916233704525276635157212438476251918521419230508698464677727329883420062171704765127368259138128220035079009475454822244282471986992883861456438852822193726229346451178330400520557729416215613071066237355519595907878064897144269855615416314886306963515557959476537241176223494965527632276663067384942708118883585101985220147506812343574829208137953991515240843742300320567664831875560594860383713016248686687000363934945988424706641473967565094656971392948425234496094073884302699151282275524976394777655063291906958375607965128559921542321436392741433197381394637145699620478481078837375568893269051903191437343622132434374187298856793737503177342701318640348397494403184990799133273633131475932990338929888274618088354383481370764075590658001896654750738815393985748218853816026855635712453124625875762597054280900854690725849961072058044776000634148429122774736361805341843731202751362551092364696524689882863460331631682667324474441369675679091669774981668996008910165118311701465912190851526262063507014421699381530716550249566336293251269397312836821852905936214169079385338325886330898233293701881924379743070019243118021046279573320529322689329197624339221690478412295411161255653643164595430702900464844699774429754952826053915118498912215584348533531225800521860151309578621028691581268054355176746514857591029126267222205693850152888516072901636713946021285753493776731835070260864418910506550418903997707871327603550285705605491826073804773079803211452976528206030062536729933879384083673958342917374359819745997688019522673039526384686284360046058277482166216299079348354675435674073955678175924316645059201085085337092741815016677364399596703369018799792521794940609815035426241679976117531636450426946658214417579647492934167098439888690151682180680875462733301945794227874968887513171221929114748568511628527692050959178073146949022292756685874345305821052395856971815334894559052315415718996100941592679360798034446175541140518436969239099376870366657559315949820240670514089266545032445534455030795570983142011854421230175348729016736055096691663470686148360669908221665715846224534298327463779468458645413365051400043668368463919700400396186372960503681433728003732390896585934499104929287766335060932299986136826519647669109507078002517023720829595214049424499532557262432349338070479693689372949621202993084395930403397794356992897795131872908235318804456586450483779030415156700253153729845902731303387170728852690684199114699595829506084607422540187986694815041881888481831218890928413716761029102794079195121766027882242273709115977599783183470647001814872517160942961238401725089008379133927259088838300426638301773731755783572709699710213964146596632962799685475062755628726882341851533476476509798741643773286171425797881287991550064849127151666867042141856189649093124772913825976086009561191141670795389648712877512036102432759148544735949676325247973154477386129046459725507575043560432702968847530802832780858455997606234451772827153933126338726032878346417959960390955576591120395593808887587176546872728901026852081967183227684607507501316743141072181537403808565225973570548807872999358155354647471056945643045075648478211746344542629167082881850185711227514998022459622740613023998017448929648415876511558836079575947177266645919217437160266705706600243969569797448201121506948870603303802196570263815324967334262995118109008958938264764967715339377962433818452840053434112672854597011789301948558429279409224797597456963329756637187209059345750358244962585348119302135187724571891182375531652248778269328251986882654200527532044640557980945643665665021539388880743594216461123994047734614466603671191203245039370392406392561888800772772496989737694594883424289971212434895235749293911924677795734733341161032055291849699059054384983633120895531851813455191784100061045885228194646832160560994121678975836520681245947680860660671848189279569188048976252998636541345341265854651873730072770843387773869574522424463784607466981246656956435754048883687541719033767987187893695032190388336784450183578709939675650578899030444730980323342548737096278329683793284888568389146964287846187409153983732907694773159145535508919653872324231731128848113870980910000087471015105155425210269570710394750550753870523402033897697408216968631032075017135240002783006450769004324307165391652816475582260585932728571167538742947087249365301461031528445333662910454301237903596888751088328810498075909331974862975230979565192302293901142970605859326460292756328870470904472050584270937173523091557459000800169167529873223839637116971548213544749741685668123648019008625008910015016449259465438547328890235348814512644073076987393816766907324763776469792299490567210884000958192673990968051866316360493038662779833344369316743952266753825239420060517517818696018242988113584221708979784146600149677415975851184423560888253862392403571810334076738348158812729008710448665989129865529004175434190254678266418216657771165802216716199057851005405262287992465987248285590743086836670360237250860990420067169567901295104804119580612197714873544862059511357988600900723159096232373826392613902432316356798107868521319675227921586378119331106901618555583986914400445173470963918519993461905022470663903236795659147000577553602674398766501718981919157117934823489063457868684926795930091926438671257714193824254387223469452699552909414970039615167555641207271894775523493771852137264305452502715248307927421192099609125438812947217448747630928919076188011727923667440807582651127106261417138889173676835222134233411182278307384109698160014775774324693054100140895241915702438450940844129983728340517759141258133723673449968786277906031476921605819998362784880051277678994594838610416538195923227151287232653753431620446638720021740851164111553735901536416328146317080502252148858625014631243880870197472889417644198357927147885258363931025742502124332656181504331060561836443330902605861449749971284728339562140190400058421614871728457184207274747301047707639809397933174470189776104516170675937368236937778873634947227963830642013820827064254318736785920888241724410062277786011862523240668010599893441255926084473233365874934163875598495119173854878530423200817547831853246549624150760867318627811468635050809038919805164569544959048537937039822699082480577265129062120831492013594945294816588082812822293925744789821140703308617333021080752677154052308269336513075849086548500374311427225662357690647020259493698924449130464916255032930982901407457137212654989610997037588861683185993199374344908715427678768151597205380010496268261358891944615232947836452243680302031905629669981922286529518535987209131195255874148340366920232984628468421861201920905214755047256668652510303512630558306226663556071928824073909217932480705284091772411974249149131361004605475272432087693552793331057010214296455048614789336089493604046145316727329790657116242185238752757384668298708504488003599655507702573445570246760208249029547510672498791908197459299418317066528226310453846641626103811884228901467271392932963441644433973112967698321757641798813227707445877328931963172004535534722003402677851999867213319197419368174405370070024802397676025723194453084000428509625683130128391427645251506746229479487782975763953335377256083657139500747806991314350348595250985418887122979199101391540291820405997426072778811428235227589249638709661678335504636148179001742463459109146616935359666529577337899777052777343018154284040566563155684571610559210433987460732758283946313787710506782589887229902473736044873628695254671065028898352006709164824168537729105196472947632651955174469794586784264417988134915427882908127305149330180370270670172649881044010813445979124554433316890589801325671299091398998748746083090214993480797768160996686822594732764706651180348261630805016164461149089254966608359274280719354145278520310783842258146053050153900569166203723742596261498432593960432871522165474056426971604689920790150114402213245762359986731869273370909053743360566627253897625308843020646414776017158629238595593014767703262965255127348932032068505053657735365222741622186242039566122407392402709126341760967413375413249544149470187447216171011124136416166254833832001060022113608014851824145687776632036650950078273304274500020746547973254451769012116209078901921511980128414865437007963888892508353682300319119340736191724550988510816423137111816764530860486735270279166866859016071422987028419558524852904839242834472941613744303271737355962418119294594500352565370218245849538496918080406237891026215207163057193645702404590561999854231142565195337899356619880772956985981186997649286479338349480938205470024028702528781350341525981531217345103757245543690561106929151419883208691576801741310810475834283061822996263700925266460062877680146189729439308776132524987415287834349051872629019353807277033050054391329864404358327083807837005910887386150236610629029267519541004784995934613900222481117500030037356491365315396312970622197148472089734748250583283067901106469437521034174563143109248226064341778610475627989353006754959654981202592530496849323814996287910401480115629897415578562337928322307507881188559660314594855638490128198199255202419319891781352645809042204978380423019500749929408422082162334068351449763056345392145230245333305292735862398065755641343533161478946584044303887064868354803679793092654814452313698996507083710905810353529753251069558016627148354808839304354125223982403062557764406068089692465676265500666445631338894436685167123801322603858144008472722171165048121856412295986032438794140461102703076216105346941227735901855123605612505152236881273641313246724029893116996652223891664850931804907287704723487569952978015261336220282123739784001460514607791189471300155360685110714797112890763542024160775185915493567955318599406946959019451042168777966581363189153563112943361569168319620189469530803822694371588880306184958761581517323696345753336517376529606705026611898973252270934292475614359961508632609344336667847159328590320809119896821212893259376172478849141659313457017787881093156564249694590877325137178982597028062724675031288549687919133148445540359293462120907640185831916856155923326206510455366817802670740926993050598079832237557361450828557864470099352114417059481148344381602383786908936276422553894270076856019755953558501014068771746994980247449476364114083538033074012560586707083691790397886694499902562839755590411774481399642834081332267730235438984719673159362616605491687874145987727611510430035338536835848973898923483688610257969730059634413737326233731811495123096002390576918811091353171450407041962648702552964649774621753529882878986686406265713072650898646080505115987902963817668483972526698083802823275616665676433827385611595052007136607528903797412016586075727304688000381622685609769782724881704711919368013606971800426810068813593572024781369127650179443145955280710097911863534529594524547874451700823392061578475182567495308885993464788467226216721755224150745463419527086819420286832970925272221788912956891176753404156597491384951061630878729932727701787157685862138653246093498364759319950201623620981823852168587997620488505216226646737424447195672190253180196276305081713428844917837451776108825439097239212021018112174695574053675377670246559514919473785916983437966723230946841057762682806881413353431583138500786566587654139552690632387417513040430624892383016631196201617246313046226325021427428023954137820530374552795734831436213183512158449190182623543498374670907954261554890417345446072001676018116947115884140174380843374750760291406090312407441703267056838571258827863852910880762763272787375652235551204481514687544641129068785273127263474151284538978825154650495474804310210111691378442369261894971418800714685941180293176808867872645423056077292454289985454600881255600623510074044879372766080672644201334090768257812825249432689164746842675482260467531474554362448881014796814638189791009999602511497512963319897883726418898581046849379239130997821387741490047438878395072821716624745198867187281951219039035499860829069238980829167746418561219633005189779534238855537444021767614657540561347506896666540946830793782120190261936692948897149219443942409633276291260490552448033483979761474007456111793439588412443705148507190660206260450282554806265739149000336933035749626118327000234922064754230093150143483032388150966237307955125618323841450626765318917100293488989595587189488080454840771684779062077589764286173200870791411535324132245697920815110082254833262146023684392397664694483420052621264847267922149574502655367445508329161610752039510285856911185293733312586872578956929552905004606106049858274935111085343088387175289244825224406558564897030347445861895871652498872232315661100764185766377257792340415175881723861299986793937265746478873138762006025427931591505412759397956853162029957014539073830006297276323351399107830995092524222479802795516740943894027688229555899958384518296840932160660631388086160201010285847949147472153169692945189601784471497743293740246081686752090340759362269063489014554316973275187758265724476298742132612650615671345537897458554661427095567580532448907526459780514153932580291116926252065446850608231557503422593902979746517074935711874907356038353185924739856607341046984681270667801005651857386147800770255962651360670219042339143935838392266708392344608923188025631839616904919247470665095926885533743685043497096186954828922250761436030400166509118027813953902471872173002170778850419966549203668984642791507532329397078389047894635998825171221518314484305607260682445065288104327849507007934205184993931996660971033134323748620959345947365773158130574862409139655167423225703091575525881562549026747882083813139980992781546067723135148001432502491881896322845835433491268422052208570932279016283414815374351860423207569247034624652386501336451766914544027694166816617629120170288947643332954197737318923041425574761490691111884724103249825574781723672857624597154782104113453559209447492690446245223092970014283041340659817010234243970821600808632647654775039752339537855823526230341043277853226595388052448323565091988330598160185637069506951531472762061923474739397869141415602301467525287997433858194590880657995097471125422255721119989523799174329431454951620418730340380558509989361451964765122743598586671125671220174483470328452464626103214308716552548720666725241016700120594474149709734787507682780215979112922861367761579957092868621428554168574394895060695130327166183611423425925547448723908479535856116662774553705878091728351425220230845726475988341399815942550433390489579158215947285389971089055257181332412233866393193523034318029615756531846066258310544462097585462978107221943547782461826495216456133827761192869656742708844758275616572411411457151607464916443493425866299061058463615792275207623833358483387422706722615208765123560586910712897678478778386293565178522091727029545622973579732245640913566089202360429414817431816721679275761485754444147292899499794176506819463740943031249502266528959306322586987546185022084251838167757483286728268810199472916516010045581452164019426707028505655842104160038844718901416955974610273639018081093458443851351637307958835459084166975197955595936513646735410961091278364790377560487890797954165129910959466815992106025218145866883155722363096443711535135742751180157528212909760981462945062951819487696419357430387647193080421839535405194509716278335790576100983309144949620911155077668350519251235753089062108763244162408073929823316309713409570097356921264648906475047357152545720493920936716374060238106594240241856382899408522498045671941306343643824190156993919373152237300835749448343203911358635776695635845832319349961473254170202116520552089329534666607358258273107957150810073343502634864788237711496831742695077481016954241767309591122346948271931296151581223266786337102095570544052980199605748090620646004068272735302174909614766477897750423554242740505645062836410656237036427644847686732200399392523979192351061355955788947163946245858022844460057268835389708809909237708591523558533907167768468798734551856156002817902523848423447844769838209141828855554517944905865556492163417679218794830542850666651864630254324053921377966954067910046317084739934951627365396283406193341524516109230614187139197867341930339358280961690827567364435805010417002775289163615998919149398528401276694257845314819869352778713137589000933221926304695222284683325239287627670834212771964513056399319531856546811486897307068048688226447256568352497243478828495228138554494586968880154147844551811610557625773008569786369330643431371065268929071952529870465479754217747982347220449843568823554307314916797152705239848006326155525701857287196283816707319498905030752406410150208680108275830111570883404318610036787020410688300934004633560806779640846699688278541760730642425362277511612315829179724123647191774417141480769678093110345116398118452491879809679451644908552860635554649399225536636148464918087162376700502009559831056701089216811570419775145194609400638040606605283881652249832830792475059828893513470593176062552078370184991308216278527580751554303079279096214826339312546342162565801295381322610325662182835683316608923100857358257460435267237199854805146121851114665192787406255018708795176243305453363038405122542967264907792175529843926564748396193834767275818280530982290423436603005134060453446302904850800914907568674466691478507950308618592784906267957190980698644020658047230242315406982797458410761024467008813826061403988658740224105831677921554151333528036347961730361359224188402304405663203460862637263582998165858959465513201038670989502721232121249544800416292721039862488704177635088030478035257367046277576161814798784342559821444018655764444509841425759883410384749948845606657787870663017163583043673589476375375729370439665794086277050073969815392992958945510870832594294911082835038730056876816584257246119130912511113566200843038341233716926566547302366877435679209084522602181456930626664499800278058284334894694232156560855487957025826360686808298374284537558458225321119333835603096088822815042474682556882209230175180875715366716003390179559055352914377909356263350186268083789656085234486625881098190630538985738898563962203527339432945603138119185233925878317648362427918058956445558319127369908346268975166022462639865666692706668270713898669990116736721305551791688000656645448345314073001256093185168603865798033303430873766368446063701234227529590495212574770743331092627034527542375726364085336684350131255513110228564277160248265710335271595912933826400421368577470533612648995845330676989490220025748688273245467821060687032046813384143431545673331730818545769804712518528057151082455509789812017332891835172424353620214119442767281477184215834548816360216796375917764636348499369906098036813707720621896732442992068706696674856417123827586399791288709010226552653857633037514092161960036009121974570032679000650202340738085138959274315874597279158653820286046529094401291287027693583988417302588516091547961334527043605942079660508981885043361024260680821740578842830783538145605602899124373617087696114802852578458470057516417050494297004609208844328642155275315780654603726501394618817388126689191889375866029033571602423656677676445581767074075952957780095925310704729005490866884854524842861077766493501897483371782519548621177061424121857021735736843734965962384844378423167213896226007930202734647283716877917530678499641914709094059887955828733824555180464706385306734308694856244537962332944418170342154183547096406350507643427583311861080377094580926927511704038471504790865681890180319326947956612856693612885851089168065633593869575477644822593890632954738906356379948875427308678545728219377165462362609344955207207825905954808736964967232004265392247430135213136490045418605224985821076508485362590388404885996296517719125036502129092536941120416787068643505132056683039413469812851845351510411118642538129937842369852042271218659484092454948916072613896323272471700804601194092129438622187426484343063153090554782770677597626572884704413691130284320314827647397362187652316508963176711837758206172278043694916030879927104723519410781840701855813396450410056273160088741723031391486366303248384074225493167701502644920934776485728756642079130438398620395667524426670657801299190232436418339769581226162986322677537135635280156234161464318489944630540474443818176576604008603271277214667748844867339324744124892984553028680186662751637569342639521204110954887630114888269680141470540999003620200812547946191216504938316078975972373986290978375810532739900712043025614984909970550327746541346608204713375498377715008118849926231793461220949117542219888119624462731752500734853730804890132636390347086292272069323453369771329826662286249395457188701416313676466349802740982016734567881573820134950875619513051983066198365993232724340801340983180165222683734821380756264594064552809092837352832875429846863847865381810111687980458347074778496877748121277435161121601851240407795166772697224563258064994566851166822194051395189221633071441736189579959300592521608890375212906695651692174752121175740961197344942945340671990734579462509421803357849725182579250623482524854655172938075004618047738705307693085707817959628721184041881049717863774686493892666186467935755141096863532534942093024638257169084127430361453936824597605433737015947338116112258324703427795985072476791513448590573217603970722526663426697679485972046687060598370620050803498746198891929157527371441051391058535907576335568996383790035717372222902233131663315749492672490144433289795162762326256234173196105515434752962906107876915884616996955216028065591205398914679068060329375844649958776000522529609489573205094896341953934940279427225551060998561628728306128366962443495646200293721301996171821566732713006908535089078563372803689177016859316769109448603386403419735379938666561892857115282998564844406838260603363347837568968615919945167452522048071407412839884685392130874386611258828514992660896504832814464128790099435212211083595495633945177576953735472370790574828645718047607466420323703653136177193482084601054346627906846487400140393787720872374464460976997365665335345719861955071279107572219653593829813243825072730118788316189281736560465253712823962148411900736801343659441449193751280049801452263175376512317173593487275578023728233231207117068846179977141650217778404018684107726350568398043300992602517282615480539437620668688403479373516044814442694687336469307461354310824998506971833328543555280227243526004808718957218872459501034849742773541041139768205367431873313398778579300359571591300574633090197919554651170777374970794601707629706822499669739191047009149773105936616882821786938867237208795678109610287103317609063326915795808492619308534138381695280659140635512547158201443091958157935309782859686596003634831737791706882948810650846871914240891272068243508810219101633484835255304547788093821686636762738394755357426561840293235032022739889568321606466220937523734319959578372181908340128806085788725486895508099182849157992039734529855712624993938143992104653437514387632878430271982279393504092151765334136634031229811521841097955489735518151920980437965643257254860667575323554763849436599130394953079346915219882903717855585670366444960545224755118746616174785069455582492318602186441143984743373796622150881139204852956342476149771338628551848331213459336456906496242561569553444744084361268486496161503334781406038730782029287020156060214984912159240416784829821449176306387563866905920394825720272943746888892444164743227814071434040365052047179064975127207053989163275164780323736564004114880735394969657474610844779022993672667927698410786356184568708762642211929514109812259477139623808837271104998480900799820626656257737047812209013353062094968768574422055517194160511312011040289896251941763414723163368154312132884168941152164691605173140885558187255108375649956770605226052344825210797108556481681747501344164026057149701314270008215695232235152654245251090090800416168654473665508792712695126050542225972544074826913753156591614831977247793884858443557557623528371373742590225410502241800113680128737965549110245505590275945813418954770128561934407285717245125407421418632988856458772996260776016439470881818037825877302389873516074208769980287665332372291638903298309858559470223643137455598095091054692724711006586864172652684428538973753719391614328714756101657120850563739725722965221062441274570369535695061443447613532408099746508754513251165804667159061871670816794751346521257177332890493272118155689734478429428544878216036232160085146538210535215395688418523421709434205130756529853130667691421623376213980360913759636602055639730202337964607067501273812387256490875338136112335764724294976278779087101100060870554454309807627190095660401301572198414346130997502439892667868354281426280027865674777636489239848903279944606202030456877844113622130273721660441952764917267325947339428432499832820718523330446128131539846968342731045990131197797548322374118841703898593142495995746823808500968731240476220814891655785132406478733773537120257607679453692425360397596234904873813447350603197160373526802739706487529327893232311376768803711605655970713961963870677706894889314668115662403523697094994051447377161178555171178645982400506214594094761966310722676314689567774500706710210162639601408602898990554071011889813515132557303288207587338949566789131042938595786430398032595404879850336076364060364746197385172722316779927551405178267049773529080073027655373722115348752735542013540482857726436943631740680023546304791262366412085991707806933883147105840378424928693942017947659770277093687084128007535723897839943785601477280878043263580158920226026970337596664991058363608448423794243244245301799800370516423605236024929153667382989801340684235531064583953989993917678228740911353550862360570970310216690565943309484260666138171708280897397714223459856333516988094966788599358469275628968304921863377153000126947370727491118731521870741826141562467406464657422894085892601929341516008169300784385864322445204976715855590833214338179528252971824128931263224941854092701281752509408234566441702937629415665744356411460416702830122307609529037649353387806716588137129136415805946093615609615397440533128939009279966752417357070646265191650351269794710848807231246130953235645286425418658615849143018871192133767473599105010123439206209518351421123084641208139710425628093921283907196880109902421191674286502947916263720666899217381228582736773258859617294813515143227618679981954067565125256315401816928584469794052006549530297896931321579505974270943841933555902580785177424583685480750886240734019002922634494765291561598155609431347705238763518527845837219362042135952151473858951707510956437140070430995988188497294847933595278052515863617064535823214290268951968130391840187135693259495058239446226362186802413457490254921679021282577698807084385338411203447599629681020979608378257101374001364321523696470565719254822025714475760796860966778399027935834142586142759874969029238354777353171946888369474649711851789944960878437120095357232238348018919137146647500433523679507941811919620913748142035573159046588159993884669501118082940400109086877724223340806393437484486085740194876161725768934486717568340843053767308803065898495083094430601067062707103416523721537140991194474301699101491561775393389004914515172520481063376426247981808678158500298947532358387088946660341387274048986506545524122569557893522269841131241671604529618972136258037194122157365958719834939587890864968344090037501742509112132316486220580785882646843963704405011239129364966937950190970311148567940244579088713019299683196571224270917484414023793126816956519241030433919900545765555728427103253651367808058763453485854844854227133446425611259497121570844976226573658270689114803847636739158514260072644123427233299409082195045726005602059511424269862058271225036817181058665962539692150470290083309654192090100611179251270899350109194672592095749634053898613454443107034710707403003753605205780650394673774021474468731541076656564201541209199730465977554794084970308595122867895377140092796037709152109773073037459909294898855656723272525585962632434263565825861013501989461118973407579279832416339093041875528762758692923643117116555948041949608988513767234457730311229945250081944586414092529226056203282242818704530005461659029875750150889010200475696924662815143157745322628840628088790485081509258483109740290053589555066027687426922995471284761846002212056506847897173459701017257476522998554045875742507115333319315062975690158992103787755879566826031590425705464190653100474730651647779069901579003410320038940455289363230408497465990842031910608556870017419654240214754321098822516504708641341315966141008303287713660823940867352132809095365421612425914103655157502933791569637254001072538815697629556286942182666740780230466023146429526944135073057817597191764406734036337344382560860812160489334496762806861598401385929228470240483170826261021643253256420587269857228123683381513082692122166576796932042550949040521316517206022489842451208285128692817867622469715756223991625309452626810538368853288389401550946336722360398623405709358240756721394017983289326577296661751039440874082536549541638233643365468322380950694700245271842103417950598351498691105178455643570894942322035430218237062906718195450901034891392071456871933722394314216241924075155465344261913478959053967340523248097408508284602848399535071891025443585222792942826052134119260666433499400610409794685308022044731749094521844783723862581947941091828362357351432340874441860206836113411886160435743446248193174526098046258555641330654776255198869923888209542724810548095112988371014291090852139628763140811779034045163258724782525751704162780207089358052091886718445906645774481425053916914593902030254910027488201096104401158605836903461493018988911149917421998870646016067284500646569304945780585964007532900031437687456277525037599997597287414644193853352944921116507853692666036370081992083440336835705947339767736860796541603785768380267724879863386812534349040846615610037242679033770173970168773591557835780830953819757839504878938074645606066794401222837727782719020449346714184749939193328890337364118847719883938124508898546755810501896001552502874761099834842995294760350416550672205893696228756245440748695519153308844992726590949753734926494477680898387349091276680865046720642943028833473610462072278355474384964467461410465818058864561390925568474155023074810481526089914046620357415191207231807696123039458823848020871838639951048728720993609643619064251276257519582511833892418838298129596291675617067379112321284402671333181285837725571598669175505160720762047139546324520915794912145754994931185437858785764663826336014925864307381168588253172957171155115120946715904959086993685116027013566013906150202743185820265516683000147219816696602260479540214399220783685823728866233229227552132336955512502994810401481283904531142776341271032891185807256969093680784645824749069475945567298213950621429017032956447214045768031780147206120347739161415606754098833581080233474265532724652098687765742529530242673142538552431263840489936833991654985999656003619796478612966982960047796354630802117401403454495719729139756439102722365151127928014044174206397359101983378455908384822979816463136021063991245931327501884504692025552407311040513849414436593769488211956633376307725475974528995690639270208383036081513632981533607654954416821180235150992732861109201664525949427561254660234014739392289710557962775752746200836724085641531255071940963795156276061720472784986053670542568186357309736925405255457137442819763723000816771837604692749390221744672109480372257999242263399279588334094564952394941996431742451217867196718722378072526774491768557167768551650871033519506445914379697506975512519492655438821319222025055755807775346184860301816784247598165841850119651713462334116405823922780388133907222003834999921807396727621945900872345442778692806620701057166936241016835644987625687142466777014844841682274726919266767824417244604031855448440666674426846035093135690071414228828208661068419620694056994477790879798349856050105864096054901013624137434230161794515946356974413979245323026408694462030658711263439426024843763363103442017846885092695834123136651578722771578098044315346290195688756933260636591955865973160850857695696021858181890174236824305306234618313553959175030149414184602096165444763591043539219905108608461361822189276942655665200299959363025283179637630913318843722184360951047799212411257367134861015006667202535812492144499978639710245060982676345743367282565952586905344633374691154074774286313462775007228442342547140706375705965778092240802937399118231513852734051366132118350418948608981124283798656200807826898026198905530433384088337716373474657111517538184902512438517168413492168331903151921108601833499061203734570144524794680375149217358415143371612746575932040387001937862268722655386553269437408571575799324383992552976014570852146888288450597756254262669134745829154701128011499477455120264931251141797934418022985684578703270955738139316902784821089811414889247850430647864625162360916883008543645934502547261432243682517031576307629456261497791613250192627311767077568115896355553653163565146949088212094708104911899075855414634721641796415462442841495042843300920761778935480320282669914745965656428836901850769687445607037165151719219449686799959091708074814687995582661865983784241858966431283775137364212568335746311853216907442036901830184435465559154206976186433300419418531110471555113754200828263659011554483146364698991768739247154424197784550366739292976062427958014935794139289867811604383210988005027743519103302788048875861604757956874228885700269611665057778370315593827874296818952737140831931429261822198285818592583372652356960756281738060221507224654714130128382222429837741361113209724672132319066465368756307708969754264150571410298468184632670766656939383709594844876656082182583248168611815188854924670288880146582568625220281004526457808939893213024469684159572998507659417361091447111665592221853202286883253744488241907573976312859128240145511252534809621153933746927321157231684910074120098180498518497152344810102979412243846332142535516133736123319481836450697295419721632442317569939536629740259645256226346604375563009865162230781488593053814279339567292606343909313074240810165345364301522213287454776679833803320720522425124603767399605622877487869908081443388119964914145873055557046641584914281671759506413666468423852391359512112393267359711474362231053200895443130189384719912732506963592327811000677889336437073716805035332604580019242812368612810313350462379099888689009088248362227190187246265499660883492016677429999064888950300240965160339297343173618319035988329581957049223569545018231313220436740892733015272070295578526705659055117077742983059305448321705723423735661418742395735633421905794778066127275642927919318037370569847990662271184714908670999814009483569804457573561920783467045387449496457864057401122111338084458168131879863866970349179509013117207773316454785508037374116925835432973709225875377197419333563409222517732740591130990804198114157707972960244840983782171706883778221166615415767284165708829869104604679003615611868802077778421369162362926855005619777754701801303599916722126073313182563132771298607485356687127822000648929399653240393750240947251413985825351376816200166873141851255681479043560541137903902743189460585161844488427435143421741989644110842425248298505846272158803697270706468495504187883691059154822591269414569723036190525098842213398403440588199011762943521229538169709097312965204489734332158333747695970928411035219712535300556176700868368296728771036621077456955149484115515610142760928719944832194388300880893139049482855433708735215466712510508636341608245127595586767419375578918241120640339792846015130953836554583085732958067499558138405910432748484281049779183170530201530794209663357914906253645444621512072228462846484099569679168949702193312422247234562020601772471421878012182404237758964706876360563174120691077309122053985078454354939474723139018110623786199799926265391641398718493831534112677514413877529943869108662629648698587721163387435746202124473710609606212704329836124375985510290459070139070874695943276802919478375460757724714880517483412823096669298412685391912860053504911711877747137741477992747021515542256518880445986771200594310616829342393780444271497458505381043662700595132521529527282244310836458875749053121270120908261913395187464020940828003328851113340206961277325673005382682813002016981254124772431596051884753699797051771876553397537475060470033225733362306932274634516935460166798957632029712800669817413620540578105446374927823825357024711086183990453903462697982227995727330324334699074329335923208136306323327420010592809134866832178638474909234866557251405855816204190134891741360823577054792042876662714911503572271565646414240951953783990259239558523114955788663051586499517314405782121490543472596554143675649048519073064872300314773768170257395696460132798591634875007820759126985831333713883918124630992627110284937976898491285573937533484461771863798047006353311754869556115340954163190218074139533458869223611042533362352530495759359563552006562010932160354278958444989312869770885815245179222044609339096197498244320104283505268246192309957432125037335141411685084796165850221077429711392671155025530543941081739642694550940890834389231626400595785772500145024152451905786826329349641274454947996337472333215018284767408334275245381921035227919459735111569765445227102019759255326017170065215247101246000302177157662605121162093610436141476792733042399614119498136648826314985235200011511613775235470023844884200871599501826094115356070770418793561966741013703652979431290022477549547051117244585305105745824401668856305207100345517181283757030798005681173482456839622756101795626772865255601034645598171096128240945242569546586398952490950906578658404689106391282499261456200079493000359693449604944004430441485961814781897814735023976354348850340870985894591094358963743372563671819942475564083040278529386637893867684900022948335781583447910652968417879749379475268003231668541926641672135912837600522542932232881139523298739397967003604147036427187003427200056932181015263136260821579828657694728549865368660449693555626406229054399091757185674382189473004980121666419922064848089654583018666868529405575589533367986272564018776890014997080107385775309211275643058014077938877208038502491172192331441595619194732793138791509973385828295835173696321552339709530186438537104553841165110317904773196383845264551462094055486359709692852771368392602469843483458959415006852175370179788522316029097938255939327056313075932399701551415299766645216625349715935991690446928994565973118040954966426010693574985467363255046799900612779855745295905813911604092530337819563455094881036007915354131771413455396127810085232959409104349231565069315698113992644590121235715897558320049811668890814359791553413905373819006337873018160704734091377987422730769249965027282858664211779554258409923965100994890968747468804932222417722965596206546000873714112616366284913932474265950599767438787923855445856581854728914035247117586351000192364038303488012078546496160864462861030698082366596815677397443767234604152076532678433970861182290494114078646701125989639485867851032471890549214464781272567333182692119091752817996408894891212536099053195016911892464234425755914079327316650556619463703170836902580023508500038369047417013551482971251138951472161713508313706591165708040450554884747386666895790634323197836191414280311295423251380394187496667999376068247199525666563444006118375211769188709451462957563117090920777522952239160447341052762845299069559018954959401506096856234294079410694897023501645762155300606071202063665469275503110058385566004586741151635039994186344507633530747271070021975891167499970506154707246919067251273110954548803525681531475682188115568810774522885280648493337091544425940099284201382127067048043536921895430970656467513011769612246577263949282222330618792278089551035202329291765097243493299332654482927244004659694250740364061569767294846246387381875825714392846655038049167599762801870084280300849029496805526134752427079644090332311013629851542825217893409603900989684717688765091084237101711671596243404428553196486335138599579029244709844483495587844233954901491539123797972179791819138901748928042713456105211834419812188742346714262593281859004726543515462476590300667510864321619784328759615678070753433098142577334937397796589763430701346555621684805783199740682645002433325062153891161444334696667323287897197493015462253829781415740966356266075770862085930254684444069533649155460907936058838125280746718950207621739059081284996570392783113077485779957898367115323742171303766268458026797809350266880213204312326803675889061444710410419677267519479803552731426116530842817867706282909778965301794428971211221152320810634452025592529011826178706671567879521142611129887860947773517948567316403321211357839592071908423993765083398978368901416071542062586453893329390515231406167854047660898607098796011834499615971336947446723972583324446278624630272485801711199810893979735750988282248599643109923827976818168650760401766320946866300833410149751694181826381656394236731157784119957981436731968114301409064121198630153152569273405385591641459420297364100667831918677750954949386474409564571313443034814290104445588407282039776295243776478953455369332482881750505718695752345834364651305195945564717998816247363005469699475747740944081589022671837758163015790228053275899310718659218962748726557537187360531109315161291752031499990898998538982017008492050276092407963473170673484884046694121582928747266273432506278620674515654703490756409397730894441499968161971961411541426706920381019892122097943842062758617963926091977674445091465145277000332795014874272685628990080563564104658616472988188821284825765477087380359132123868385710064603177090263030013621494048110031917444947756691798668422598129271264432121423400982410324083094756050448309988813552666924382435576238099083558158205110605399159886887350669795008682020259721746376953297740824386520095021919001362048617032368984441220184170912549894568289831842195980167267832178938635388933886927551779857796858469176673199573467799051842357511826085130726764403928747135938994725566480706958776111374495898994296203569440292973564662267505224882181856798766694421938859560513601668630708961906627389711150760179258807603229843919172151706584652330606789718706518104724455675511514621022422057858176161149692157346557123758604754408106874841944869206395681239144272457652288451745760722687964234939202393473468392529873538040781163583064987385127309354212915103032175997254470621391163874870156846906509739394634457142585236767251646801472887790391445072327196022211408576636297349675483535381147693620979974787128589080881486772859447606966420627097639866442371276608640529246276404266302668288311394486815707568569574428176057159983875178314453048039254446970871758148886251490352852152655119835188373101586541031729388850010281619629642805951573531709619762794601524217384848200127338498290344697673752578688565945259760721715835782047172702989971668724035597901575138410310454872848715285480709100464660538298811565357708587584955093194874264938631284604294877340328473249729769309404005089095944015486765041151122168627205239280332214063317362075238710647525013438440086698394517668203385333923828745094865930814077347097920897269986314104608906714511211860217155759818906017553256720613893870393380127659289685459632833403055598251789268379573437617907009188081107271927185885524846976370596064258003746129668017892734502996832777462711818331866518928644046512533552338068264511157018541365523573213160593143365957926585789933355852360554453040944856974728302030110627739380542002569435238511073938897698653450917385358005815656309575138239519857178603236221544284603057985369078200482677691413518814216529334316648951323052041175224155551175651238336077267355253622831673759742666176528862432085941097528646627249456315856617252109061729487572278506982491530318872458121812693382735733374971190960421411539669837349852747084206680598722016825850889431838528559886045102494180120973840454938396787140334996678787424512057558725580433021941398816899814747347708365912430247117930841346613708332995968985689191607990650662559799297368857026673324812461629568628728988038928529439100369652479528457242698096114308319473332072473426888294602975304941859581049886801373737523086861007869287504426141058950494536521562390845359402192921593962583234526805053647750485350606894663530383555468708357409514775592828364695351149504988096847218377920218876112300372799516620827237002923579037755301748050904821263970725434418049671141039029102152444690267538524903701595991800019729374436248982879124950156774365539832732181901881318570004953460620702606516511078459144179724449149777102603087881963530131481891730885895164665375280264797274074261848664612353494146151967735031238730918737501733592331831462827458846060923931949184477596783217628673567565655610451199884028574692060256531417428543511192815648811181390275519035947741804510856292124297530698819885941094192917076412630226970688335704651427952671607945500375411751488719368816938531790114989948814578140064648114292125434931922133184729917884346811921771840202040307343920099270635493782789715563314921732395152266402949677935115026397850795187045904673077828557125597016006798623956194193186042024689954329400330336668850067392373256192235071539836537096427833247450119866370392753170522335614020204058439659030848643345233693272100428364198763197146194828941367205082995742063909078392043373385895490583588283893838188059910347641158936702287630807781751024261945937363212790344011575710392772745771227925294453339731294518645302024748531084041737923540419961834217194918475044269454273279186287278359244482136901085088181138306215577503972841147986326658713257706756476028707878596797648757868903258719011885086187030635441912681070753535280860424446086461847142418269572905306690922012843444407710655888508937598954487591274945400255205646742962643642550420437313872736475136844497695430253843410334403204559576321309968075172717968344346287059054781937039471663483498265869427612495252059642372445635897682664210821197450870889400605959911852364473508397077041525624273455547569178438066215161443400086376050006118062938448385664769643942583736479389197927678192188292924749471805127403076611589319269851756660588656672041974692967282170774574222252894998358917683906445712773764311082807889262793749669330093204987327308045122136476331789132747735044598439616582668491770782623748044656486772839275158907803359500719267443567142388933243994916177871064396043592294237126475339538286967766739789766922306637747231549731952513971111545855735333107324631217420999531439270874528168082041583112951046769787436257178285028483644843930044652501088284878631073469753283415169111264444685803060458791991116622722895031888323439033277095290290763777372939455520181292008486478122545489218630764247674110463816942978194641817174625276298376872579275762034558005504460306566304243776962876411456223961373435089249755484205506326824064214655148550878927874110725937430697956203783327365496274948241842525817959326209876030172580835831736836981247933854842229468611019489774997982380859296339553213545595766318557878607173076618497745382863135325897219534186370181702565726942814449294989858857304408175746642713209127455748788922415242456952571653992056841844409748575065273630403988234096194702080069177318942924014473473857302745853284107890519039407104184166131130062269562987358132843339828692801159964577854851912982965840197052139997363761528981490561238685588519925317289381229624992611523295841397475249276174405548593124062023366441712851921217037974585432562519959362842088857183771030654022733730991129620760951352087078393120032778888916935972564063231248161983306237939434471744467439468970549485467266215791942514176002756090962084604076725939173073866541093361346407484477113270716480904363587049072267068115847658529536639734687667903557380667798674867372230399153244552810206705384044897718675117187168032612036474668626923691150519919853661076322192416911614910517748205768324311376588270862097949150037641636461640446991061838902261914703107955087196136784428568909690366711105619297561188831092080628459364815095075240152708398553940664377046141120803771994450479887942757164282649674172236995345789470823071847531797249103850611754974759058188724777472895180100232038175912046459239672812570540774357173016563935064261938236822357242888862702265233849766673725637053798961614470990609428131906161848419111808651160111579910539050360693112782330512110864185612977907565664907623193318728635298159745497368227646843430690831411501480111809702969912961325218140077137465937113017970631106624481570540108276802653308324341514381399206063571989903567765559002303533904537878208121200006116960502107045668086863971342686443572270401580465012149574145545082872114801860438226857488411261581644111744459571103182247600668502124400282199470390043607733741267290180164157455631059402394940713228796877657582068638026206977482791622311595613500069443218282702828036376247832602824420721307031341732536888712964422998636362302344944750423836003562380562575623364670657584757482302872822472800171810316904446235706706413345733569995006945707145291980188766673710033091035350149624283772202498068209412316708703101557005002472344093170349868119911415266383867666318708985687995909484698555345885694830112740831886738585389374714564361437911867263629092875820082411499167433496032572061860582019144908751711366629901842595700544572510528401025472009353140098871715527811633572308140893702231231012491300542417939047513940628775551663684217178694604939162429189165967702946746870412871984280466190653039126809828111512192666031245177047040859329843192875620345015584480559965810282741035591377442081836615623618830311224201536351292177767371622141342304620749842029708738487191128552346596534669183760498520223940616804530413244629592450863509305381178326936374390782842634523714728168875731890695200559637978446093090948325258735767460382810060470537331189503346682290900703195938341737904247644491372241542784116495384352960339136043352312929478399665254175298614637931677536757372078816062159901413209303623773128879587252154149576489930904564336991179629940640834467164308604287736021546065191361607142828485012479628609169433646537490774223748603088826181747023134373977054730942452425127096959713805017610482267142637921324986716423624504960204126012873613810784247954410870092593385541185881317815537879845852331220722913751409554088202740506371393966263913602548416210044495184065564145343949208274748819609270381923857068909942198198680771964980708837910199137430230029401010569796281456682675316311506478629642812380565000193562062441305802932451075814248881131705580328462398034297777680698546898974426764662638070662784833722594472215645521130327839082156203345878313188150593470784608391849434018230374661970464609017053428600108278995530819819029663298563868662707935556900998070432789471196015756281926338163995476780343640776060899312383625770904018503752862388263614127178407944327509579147546774937247352138980181506632994769469910508153589939274365226846805380518045362741365634931545317219110095977797957649623299511622329111254269862944662623111025618274795372841067284065105254386583069429901231796250293668120171776676763310941496313340304826657244454460033071495425841844663533714961162705749997627313900571084040233586070819181703830348911406507457261517149226838932992819467292848211107236583158706253904599385758626111774363922553051894169725386311473232070866395880402350685656894592032790363963712764451551835624887546158832154451015062106064367723754382159800259069754773249436659719685916934206364448593035093628154829226534299566654528230299377070570105665616946364875043908407619689800947029487833678999580580015859011954249776906311114174205196052721232726767365588881199070232863531528865398432209425634474552066442017868019433155114683575699710274809849333333378568352951140688016412540315993033144216461589258605479046742471671849433965732499670818229810952121889837138287233868454651610068061419922539787211599740644399385199033024916785063046149660573235663156669093508843117527746783404414071501620678401139681347642718857607043684408114563656251569641582194211128119203438089241957258813255182043166129247087451346904787346437342953246892650396442197167176148712875327455100224548110983288106662370064500652416264596529269808788028167826573605527332286387434388829472509602451576335934148724824481039907700708282564723646695219654041292707055282592438535740475367335621149351788228863552542950833759266521966150862361760657881078972992295010109067528905578101871680487195061335310002249390440837452485008704022296006374348926626580209344664262560100853438236134560703970107356704450434878611726249449944107784694120689008596267094929936628373671932949944911714071426160185581754606367480796178976563834671099814289441000360612879599098759097735015002246412576604445287248035464293313380326893959565942902429451623572960659468004766266570565746313302426911341554754772518210778544863996881791877909979261441717621323617948211625569765763271589460162378492892562793981640949680969110005078553539478065298820927600071772818260965377925775103782630830097253368527960259033227261585608768116848896989060341781570509276322309304830797205106739488434702226654462300349844876686148027770499012730259732442346314016701547074829547265065459086400032198363706605306008087755562728146059689652384549567139529935916642801116958989945336409638880056710096084970274299014426721990948948693116224684618701833732210153389138320269220312614659454163458909193754135050858029246182080247020750742616704174704777012682740971233238865162792358904693133710678375850447185394480315160020537517013401100725067518200046210801875751537323466504888050764695067600760392847050588381247872673898090685147354946604740870764205427618888833405417343428076072937234040931321066501772592484300471489789602234265538080402559457904204783104637381163874461760585267017216200357610562794485988179601369188515576986709267667770196623320366888830188278758942508742317678790783588414857481843173389954157129962810377531329850386300339843875383052702041205109064927765069565183012584371288935943077035479475399441591254787739955578566179804675410802833894887789412310063229965667226322255194852398537295848381920640796713590114478175718193670845788185941615982718775112774012119013247988996757492861350526153336295181115258270827127334217892620458770268196443922105952090692378429149316724120464299629712886449205537581593553068510549815860073730094705584988823065712096823269911346636984219667335024900636440854732463590289528224861228048437820488477222039876075171002982570071960318684810617629953951223291703978367920361497309865759830355431024282931448336935813402566395769133412977624791830456189542205653215865439251474805844393231630669884575548187328211315750307269893792067162560536138471344401377101629616422846394366038386720795615623097168524295747037965178975997854065299333538876880901258128542806795266422941090911902927857369328257641163663156573348276483176558552041801922530143493661834618390040415896597358321472799135189246322897017888425307103727546036498532848778529599012389135530459998747440586925840742652440433184833032101489195922723912005284940174019685505590937802409275458245175850984353918668815827863642285859944237616063707310311989868675076958035445819836480842113727266116986043833861918055655070952055814404317648954967104006307914146963555310433909457095286207368879858140253592809406783182599632203743765686421551721777307798340944459944903005004432196516155654563417277580612508558743710792103091745626202058649750532218251215944482779896320354837066129322717881861370214668152567398522548677631395275766683041939444811947685039547025827251460067356433994829529268582848560164067822943439391035549966755273115736992833161043177453631494270476899863347368868800919946250324084969760332399110976038938361325224620088524788264525253226750961653473847167048907913435931624360506374037562217011918419445285897191610056990707200006675815348320394441966635193391640984235928224802688286886546675801940607819378092951913396467473296591055289997980759244818899994520293409245446028801750105888641018411397914608858787018793162291865445352369493633719482765866638934001125971155786790328104708745118879781370753045368246687659940031981555362844481780144407733152836403443296314982452606441655535772994085256132978787965763734174862883704501171585126256420795559100187588352176553314622150037315575681787404566431738648390123908892801257178928138847523375088765077788809293105385083200502228326719180018769650322246467833870737552292780300470783175243743461020544812563871546366333697330427465083993561719484033869282700578639689155183942960511796866491754396820114790398243543546525192377378559946662533721817322790799686117483638915588492958883248331024721964149815901747681959464687763551662944629623182114129874901965213289616737069721039082223534776235242180897325959844161304890228124590340909601939683934883654945068335282211212240765204216356743026463105042706269104286885541263502237890342925178786373325686315208928023337482837422179379724647202852345452786839270954462077154327774932492414663272696917432003961779372507100042093616026422511791875754409194713783300515534097940730473354792418784013857236110457473828626126341317362036505214815346592167941210264047630185672899906207360723012614713887266917874497047563936988862348986267044001199695789547582123299704393363781898771968932279072453321970636093566260244404649586822338639135493474957086257476591188973916693271805833628013695474259684627213176166511896695591185644191312047687291846412430633087479619562518012345380168407912924919278450284270260109778074259249342225103989200313094837963382044457547379617630223042008072366826057487321676237586951435193742267261076142121249143262130856134270668824903856608209176059127109940152011288585576597488385722070725806508254317463131851987924825437124916504815038553493015172798571300448614073794842918614168530026011350940376065919792593886022485700684796727945806904734130513061049145244560715467797051468293586229112976625593398403849569543381702244886825096795334048854382337966386350186324693902566354277314194592257736450702564939593136813065005665042841540983033473804730814029444948640270101878542180294396381827005890178710985504250195369430656640541520336907772017840731057650849630679593316790525290379552732622070567972626229817741149132580253426797418231791975410038239910233556641864195509464913580970024513661529431711477730397961753769999810904559987110326490837635235656289369863984498050981177705701347197955575984555269554875192669484443271603430379121024050761554395645103307233484099267093037804994473914532237245015024285621081411580878498664128629509827365763948591686907627928608620527387385419742302002339221555507519985333481042248255068127312866664492454905245792029133411935447360504449953532788335912267991786671336134629400318053474896150951263178719572235568543087504783417616201631286949972266334906781324166858423314133711057542354123060770959072463589316862301606800573278609051461805767340172163478880222300092167729094983142055781603171132980001369172053641988962437167861156139824661292218446335960646754686263545056350935578128602396233961437455565422629353150250766879687934268501746094410970465493309247521735650244858047372849830695610751085399884894023025930969650730929674507447601980540572322144568554681396526472874026726460050186828158637020570396563313598944967708203646916941436760571504909495716287727428877839463323922619991222903059981048227744543960459526681884266533104143832049383592548573550048445463182415888136884167021278206356325270077456680989657000872462305586065168874349661545751240498452455821818795292748002335417640795778515019119784010667276166980318830273281880424586795668797319807571389940071587156215564924636249347060194984169620787391474544807519861102278829330842307659371464632267755303779839131040350371461339955581378571581163594313079380917731251787275730673211769583664905977079536689735673338539481086082275457538931657989545102515981275558654765837455337714558466321655951038796504440361330981058634210763716556825482094514998083911438374308701651835016288666548714296407238592811467200179477886677795662152962252944692246396543562438419004988826228518055325394595406012306448725976294341926798814823805125002156021653835131251636227880947552673022318965727594273614288661381380391758473977138659348187294070689204711019533289158674838113470366376539110215009365063702157972448132879398647161388022693827247616147364121935265454760293774907125730788177074499336000448092839667969022091319744454038105619915673557894478595071904211252209280429439366059111080817972441134304058900668140848025589203238289110864089762328321062716674319594176563729429324478838664899168008358734108157122013179019539855624568757394493452735157489815934982133624267837415920222062508822968473702578620918818876928985299890405967828191703926703879793999626324534739138775892384483096937170511724441761565059553478104140335791651609588936890837889227467542820743382024791448777337280375173229706635613264310420512209073651766478746887010404782088400946440528047254334086110299390613522236916119549173775960962541565234667525062810126876679378860290308708868320086061104067861585234052061821703242215326268870453198555983040613322415372964049467916384725114766173112782939395602241310467861373806953468702395776686654313572352280585523073466862313726932051562344843731641316158703648261237774627353144406816372667163953194171718683981314048430509250856429289600235902901590098252292399261567808117399954657584758108611900049067997810992076026175168951278152311785428686040118515029404807004334180064310961181930261887325233924739058705596671105570581640905657559391320480721485512040025983678108970143302262442435562757111058133284454292566659755880006503641914371910709046951569980148302820999650216680225855576760649458525950141435919736520922023836030395881694123995291177491573018503229768816623043935546892053275810612654465243666400162694361635933383094899830930422413716359435008841009645124055957789233092369955200814848217002756999364780534170098456205012388091102420299629062507551720735641159740251552998466030329841116576664376762937462579076746211705308197971720207985834889958870928915175090728072528438852989412680259322421315333316001387904375294381246561823254645546621699292256165103770253935366269917236112702348440255344650959844391422050218675897836071881298891870745862718112714936638524215734260759694863155364633527795509279506113238655401388670386490985381911790174052153083813303653683712440716616247992558888060688013398744697595695304542627839425360464167178020391504751020502962852709492801628082472689123147500674487437761704762179353785805267512756618411005382794234075257969236822316668531871069600719846768255727545190059154478963282946390009910049776539969302462630782507774047253550893772098458509726634652831024179396919063671956068625937049239299497535106953487576310468794660079647638581007610433623812280581184374685712220534054502049210348272334326425985671860116015873500225949891438841316264995060979627248189939417466399284973534264783605027494910266430885111724743170840855481473598379314719796725263019247305905704109628232886264322601873623855775717001252925005057781017618563250648858158396558421846736671558455839044040851753608690697215131640046753737540195899750830781396664171274252174281368648269085566505177149394230931081062591740045146227638280001167211094466320179466422145796709450717808627355292232986496234251056765157753073499265350380619250923073999537593857173011477603105771868149155618979980460860146753057904341762192202554419969680706663850803457187884833242769123155830877969722260390876544566005346681632815827395245766124092729156303684223487040294132636222040792273912453132125742156210126170464360075767299690222833871574002682129855710878650518969612280446501991639777427385936176740519877941196473272360791832342580661377303943091586855051112316824031101496514646832392047179677871553806038651641036970992460563422830189868049664943046446931231521985567094007463036418236912151441421434170753744884828224085347297318484005137064801873161076980029756602703123043441435047972401028695071810509068681692181640939669347457568131860516362645600090032813509404899940989598215206671825403724241842596482683251446098177489156934534932730369102691238377336113913014837345932341368507088957316341445725055834770664894930150003159277547510571051896145448343131065709596688703706097463772618429488175099506048250923212569930593064410503186003703632807670430980368963262444369797801830522592665438639302629534941739549924539378468193188342986167273012052639022330072342584088384847806293105574343445322214967044634244181113778951661190321790741263432570453576280631971231114991719411545230014286483419964868590572774161169989484225485923353466923905102587688365841724525464942080761994898561940101821331883939979264167240411664565465991204562528460585450410192507652184876821419515322483084157707352434792320315169091368991786512654637961419461744661111123663739538218815309057067754766820201233151520420289203266429302079239260654624380713136802517968800626157621924938894374674583776554952546748431318063304134212442764084715889124192474812703295042735304173521566407617248280983487691691238061267315053269776822645608789758198609181014421588307120455684921642800297513765432761596126050872077892963449324034216993964046410857672028712771334320981715338958191153592214102229407123040298921207522516749379305033855363541799802882373650644796410111186424612347310972186851436552282150707957317772715242401069914026824652586774287301872493117453021670144133540428453590393130325572684650114782790138866801945496286794508725508670916168884059696073035414532534665612164751423326863630929909930356263733063379855066593031960801975995407721897462189939386357448890511253423891261722458890128200876943693944543093989609776657177490989051258963323957330656983435345476987791488877135858031062676809020158968920386702355815155629828163819371813546251237864546417989229826452071506565301246839081241206192275840518288646759547273565677384910310811644274192716842813497364748693574016821504664228820715107065419015800304653941446784390550723400306530214076691314293098210838735097258529431632747055377953046405464890006749874998685028458626454964408533185136285969263711666609750260634599428644787242279748454442271965703699542075689624478197359370310268513684194243524817384108978274879393525893330714575611499060112223397849643447322324034205589845951667500486610146122430473505712192733557554983443910770325320734054395089555752443628116359595471484790584681429002709321910027988290903296233328169811872733849090155786242935464093256274454296147628509487383075275424798380687896238713504833592153944912455760312932860007444611915921402310530025887382323411050564995019023725360668727651112266551600205764686107165609628270529593081073017498230033093520152222487089216482019511499112074091801888900914235621747078171856891083228555337306058119192301480509841495918589299193091386590552485811707927766619866423761164002570845087141400526283233917079171547481547081753850389635267807139730470937902807333342615681852922144851049472900092947838091406351143887251537317946743873516506197209307275787762072005101099552149962474323421245783564489576700371559977988677215327365193199400957739851417079925684918394325045623335954737568716402391136259662104410092544300232178142720322386690056206521679487196536743286228391580561492907443226837212145281377789604101052785510750705734407185092942866320063904066150817877658707748416899327371415966972675684388429955505459981245651745517655565826734018153201571280895523915273327789025621538332799155741501499264397318861571259850373329925571809907249724634432400568929758332402033337696076373724108364391002751686917765840391705951060436914139726269373781913094027788961874856303577200924837551904689116699505489053735011934281464198910953950339825782430826763027191607977684862499392631432795529303460914899857223243063694931877427497537225443152547731987261213331251617190190616927413871546380975315151381300431112075689591164818901208172668467020729717012156687402436741902524263207748099853696841663993377811915053804892540018454588497575298582935455705802243646987782116936113893494601665582790338531510989891109540136765223397648339137089493669975293362241885537562780411445931771571040619043398718686498335673197504002277300860127449334226632718968339177209128262739377017063624008854708216139972322163032348580852167674491444603520094209030554207592856029041780177443887465524815425625104948202087073437664749734332587414504661762205560389336209144908978580491935730045842082227339205342138806497057489019122430375970971710897101067919461745853862576465386661436670556972623781337849076745175607757009022616689708346724378746399289827789971161856121835167986756475241618648358417708821336476371832173005035109421599613576677860206999152049994145476234189834241445934694751174739761778517141476340717139429905549742520608833867590229312048947466947766146965382226955820167462307286687944712879805159770033979713928891942927008876997409338639106376297398811648472724625409993968874907945661361329596571003847354641559726655009607523465922699027194654055274288982601000636951251841677419773620041169901929823945686871451578047123422837691056986428735339510976085159352889031678766287965814470031335082087592956330470102086575966794196026317368805851810839637480961176946205970932242349557204988335061879236219542751969445478991147755597064586065068733644887162402285141635523270615219293620321292901283717904248300139891712107903003150061022987562666828729317591966252817082246062333648932269354088640583937500307763716008608051272525906873195014608189258901646660873148883018689959257504226004264032655889270246787703938323405767966603618606928543663350154220476105608358527064948496499387572063738704036212572555715713199675795830512318297356783804098365606353795143087843548490273518709911802351179138472950228658329473295587465662636246419121080614708436656956537810478294813810058169711781564066266602913595476170101343417405116204046821254843913633826817766455712791444542822813532093677205259034804717664914163333154283090090252935938798516098931949155221912246987324215690216385245042892523598523421837492380167878527285871485340759993956718458960439229929874959223976907348351141588442832145397049223633273262404089861216095597594961674788290717312385134593698555718369606761870018309648655679459815850201542714134141688699718603950231712847224285773469335917214644211388331652755941237558879520932591633005231771240342424136167453972582112241459707195391323751491818959881007323608260370486703005810538091267931929880302646044310721395961150898195390406424317965475794983677440815003434043732341069782834128187792916973599893984630629468296527001249197917953111070294183225941389029278800279097199109141423451624240998847971403552067911954833044406037384029775577709403229989116419782121706547568261795372395821576331220942867201237317898925131016216644439828585320295563500724236651315815660334430428587274339467605787862195577402972632947133795613767025947365719871143752203662266526502918885719458749132213811684106194749463406876049561421726772482159002991556222968345196566510779777342721986837107325041869865670419632255813394890367780067581396928239140218304524666321237905876285393349904801556955582671907997716257480496665158047504240190745547189353784029059678280412504946305617862288638576772143790491439736882482467738643337747456169283804041172779873458025419629035597371285491719976864446563581132084599266896865273834052575991739056994912664683191383472485504299755641266397181670650741111440014111098775885871388376344957156041993835054350932389398939177780242250275638126972430634345672433730834274847871235088410356711288144396797478207438213002321818000738997198066444702997180416602368119991899467240315783700516365240097854756926667304204498585746240187132026329353179958952031988666920357886508210914300880510400199825852549481831819037075192572813215146637330622358931194850100877016413448820427403967522006616437933807646017006815652151146469307452245769202689181348119887966562428054749199432392561624950356665214150327010668224175007158649580780612037904320193113859788821990634641456803722333630176071464893012659395902166197321635976902040284969382231537402487781874977552084587764120733322305353471660788314877948278653850378886647532821037978021429915366620013538637928404109582617871635492589351916876917292796272678206457102197112248326689496013235665411596982792948049926909743884309131732679241031616567496014157606319561863325098678164066984324590385520385307273961877084132578944383349280491091412689008752301379940638921397547215811577665652896875370825940808323047341704156306264691550985104058613620594893018222468460770642100477098467717036811527824034023648442650612124126242260541638952738697961384188301804113781961635643858600454990440385462415330418472733740173904413188309095641516984493891439733353554812593586194825302529533131748824231938327642674016901707300205707286697304379589242860084496031430184644685883481707437020629566478301504721800564949939592282116705705051272607858322582930108355632422214922911316964343606398012084178728830298743286742917392649019544534844820529032891785055674251032776395418121251883036210164334273509935143788977373349425800190879444432964960498147382240180748358513680929664492641594391696615250945826929504018926990263223944880320907882494053792958483358385957284959039877075425306296467514228807217605683623792435451505847401655134672318751984354598287172337320056498580868420852320991393674712184750870684672794362673802994838052888981762436771012091581379054057418271872362709670716654702556545279357164844740446526863698326489896698652345566023260601112758341068531890366771027141516989313890925649220104594386858117345143980262073704054886505814306121025495439181827878610361777536724002906507160782369880514293003245119378733586403645922842350243162934885490580490867540522840221285870089769124280086834285983865220118385212328229550666884633357756325132976244399199788449533363574674465987077284643916596564100602094144962016049680198789726758166858811284201018636204327516706519617096313572847610123694217788991329396345192706719608745161497573557684751285462164177455161480423040346467249786348939957152419524158079250567829258608427367875289961181293553596354620001946834485298241083263124450745244280436845484278280223878682736984970695107213259354892682050113033840116122421465161599144329727058083702616918889057396155737786829846743730336839326254791614712457513537310699710145251146200245467211568109281296852438930140029131597864334981150779362980555026717194328137183141192121721134617743887772630867479835781237971156529706485293246907499682509237906437918914043316437337484665598741969401098192956837181656984389848136271948445635402358660754814248076619004365640632554389630341856870726551756139871106707352183719142035571812538732534180579374324209061369336628669044111707732286278169348821185075919386575843004793801512974103514643569151888167968968392253997907076811429106159612560826921377613022233541818076357798612074905786185464002286545614845334461511143102506196586122452567525237121840445523306110253788974031221911622668111923266474931783988318655027676458686131413376683609268764733505285684478263310284647321647671924561421970302625496092030568468727402634588712723851049278752345233809072057585617265321132309384136185366150077816310394727273935572464237303809290239345488889622320294012636467676688810488428130339113558465567016285035783341122977843977769376189947638304340593417522152021397286926225900143065188913035713233210826390908110122106400857605853575630667356627291561458444016488274035179380332132102924488250199086475054139934247355317382195112051196082039830708162881158830160005181138742424060464543558391354779735000266687313829122293371820234245076528071591076956935829205530623408483929711661910604662282629030747822696615516844962420561051790995877974862473187758649927945935549293049281089500619904023642079112391419120464328331117428168951285130953673993266132320173174944969351003133829700323342819853061960100893006170512717788557370408370771975990195549004721734062030230969747503837345259953596429697392251695399147533177513085901634086123855239908994723037377191010525229596246319588934235023521420319791386149758272765170914648968579045708327102059446178624652202892098091277731463703916750451438258504524178258079608516652168261753713162676067279643407330778303643529875275345469325998261444086403653379061422091482344104264577416897132125804411051649302872768249492203421440334610786034876953748387777264481418548733250610340201910135914547989343280925575672995108171564351545973929834307172142354871955117342581424680708381817619679440681818204530411380640634050536722710027593428424134329463313941389583364122559136079362966068308879332305993493140813905551660681136426344822861057775895116970471026665815980461948610391487881160650514040823968606908841475500544405991131443279839243725605393986817469257495470438543662950519582364673126850847823052552132289797691142431874510099192795827070265504942055845183639367332455863327122171498470621754326541581044374334797414131176972011112828045946579875575329830186428576166999318950623322198948143978075368039446282235210735184184195220678330196251160163623011557497707960715390892434565299614240184047573504289174713521600941472940467897974873541087623465002430798382941303783177060824183386366546996682821846640138358021577889429713892822955772062268297915280894465035746733886884162886916421940777685112607600546211713787111353941369228175118772950754690429260505931103191591251159284178001051377476483681237749010432010111535115066409289380667474239470694127130474104750454199326517983419685811608189841795432484228508008806691065121917471695916171946620588132749929084389064949977075405856757019679982642114857725488230114217196733352899752653044966161659676528282067194605464551910681512864867693114078242404002486867488024986987492201957405878119588590991314646717753615856968448202129762402026946452018447293784046511494342566585791921258869829272481343839080854126077906529406161651083804459524840514680576662799147561546263234759018155943338524871226313312717536678666351134517434996408571132483790535152670939330904440601917446518855791193680648770860853299024330794199314657259747615277757302126100472348601293757458953130533483297108035479865075653524586618406898162265265607197622824748387643065726803294256333539291783242203883369386724914035393185992428362961967390157015833389399840526269272085984809209731575007704161358308478779917983034743752907700317164654181809767356869796472482194822444531797518718034441487767539700928935018037426409276649805939916140573787105067067239218884400287053063908501443209034931427571906200201022510811388650499822140978578908361300294151124476886263988920671569875202798450207344731197737087125427764175319926747603938586067407174055979050392764633141301545059082605790001859249292088307044419260365129076534267588046993705656736928239249156984457127217611223022221738247244288217058498965737368017340145673427690552691143434176937749994950129352437695171228454364518470952970720661770432150286526792956115681027931861746311736007251712721275977850170598220662662534526672948168893998632510671324212460268461538530943239377112555215985202708696372140794258871367050744649468284800521342003890918889156259149993412689038133680733038464652977851790876782887412264787706536696577439845880773037229141154186423246916938677923964387580088955215498711040115056339362759523366486924851692931169412568506020249565961869723150673647249853211821170500892830286330268802478075996831884832547509256976901359855840243694899664741844870281798144574690831123780953167345635752815014868559727090668553157638932372722837200284052790177583472842140862963025902372685493126278750977077515932818670359157630447655571551700143071618449122257730380392702754353402990290088811422158571839375103411166359398611593055334197783637558511726400404650728906206400550158249369033662432692682390045216419879366334885779290192478354233308787862166684150456079834652573178004665903296452827807405162336798663765109572055278275041461466632316649877169611218027067444119537009746456064551812480250258658591191396593504261082614454132845779802055519408550016335453878306290094829804378144074103641373820622798114586492151509748730701190180952294476470538850141863321902725805709124378379594416794579815239430602849288362900391268361444617692643822454242844564530313423274269594008301935841006924019872518840115593275155812747240244061569029627158434624838624774701476987820282847229058307477821166818758235996290862746108892144584105502096439363783935919512713618984638735602062613437838192399943057315979296157143877275735085558579660862992156759497761211734137331767384949817184022107905931685204173959354311883928860139090352027543979692936369458443897019829588121543057887369787476353456266998777912021759079984996888971319015221572887273039724950576748633108179865204303518681133230258678015850393531586748631737194166768144894856240256010994749580167478963896281688608332933004924412541157230803347049184174762060018332281989525774015544824048218954595242374498823383088388204378850623195601243705162328574283631803980604861982012156506947363437671805322055529662651447914267146457015863510746479270979344989294646743286228007206696373471553521801796006859948498047080591800071981321838089528410674902035369300397904920803050209683913336246160027135099087064318871225991421273087610799194862395802743386907162953788828908898283108525526477652709199230707374967664399335988469310971392037306385481406325327507493133006741797770592533906071004934834662274249717220621570210051311204947072101676831060470841576449022959824502333543098538996890085982633304830401161812536838675752566909801791505023097801919498503165301767155542997885319903457372096155864311314838383968031007573165659977878146378460306839468778885881896584305093882694009019993061607365593195384382830856002351767210731919512704120016420544322736813759940987313626576421462254709427281899560315089250473825327454135424182257964988298016488258976524160042678623542564455684384084838556626162801833962369101446123332935096613180616073574957893050498641801356393535295393046667919654619392849056818491119188833437666217491754478322251426510601084335771755187278370143329304604910550921578886574784118450701598764797832015288269171305080837988300192187818396654456328529681014813571838910785249966355596546274930489210369797726440454035500780235486103665676476000746193566686199510231060521590083179997513598324466202198928891778569420347343413330439605574522208494065234334915480068909738887897707467961989647810477046685145513234117233552816094105113839106218928848475286134130864979758380043445914784691978851208635722112465712887613057797994919894338814405121849324972661316436461696990435502771477423762514727680498379061997916063675914334598620639768282741556122328208273981333175541209778298381370003971135913818680977123395344544892132070268214673677302245671733863182294561360522957120075973041704443881813983165271906997099647951501768344384664154919111690818702851434727786766207418035175880703248034754296055300764914831155007205739991130106640245820588437997597633187781402669106691737571827220662724111936271406286020719483001098738997485801001245336359927452611102055105141605172811340854027220514285066748747598545040918480564760121195814423249375110476078718341083583823037876565274375867211743840036154576809638936016106791872092126147174545955078412259459597339376248356041809286792936593756445528866741317004696523745910832175955628950396896605178770285263907998811065964078551989378923255234929282662492295370908934171936522401050226188164801602685235417328440108028537769279102966018487236747808256177058933755963698398716404145633365646607582091388620165508122711839658614346628884105662547421770055198374261312700498389716389218431211085153921009081207139424169487819281444733232961386545138078050285398423636646557542184186758131159211847338053633564937731400977940976155388435797042320041437230580111720902694825837007109711901447115462404919091724713458715680276749271400361452389687631172091741122555860914493734004267244799971991276295170012320993891653240065584493000767020110548663405109524534387055744652034456980879376435355350844337279520137325023088755310074365243971283948713599929241983565740697169978198054377993722844208746822152528377465572494915005131500588905352221287242541165818546727755357167921203216939861283411782261067658677761497335270967355551481393409957925082811073016256664080594817660411233436938993744740359695460792814870260100689445033803056566347713845316232536386967114439424635090352642152932745100399687581461963994802100535811687891902284090669298127286261324950813091399884869238122708805856649401477638846517796097348998544281037507728919932675520401652407593335430405717513682154500732128528888778232318794389934334264571945442021251188791118105245061134362079442090295902562024463953768324994957891025488022056315201983881317873235088785020649862482030255081959942239050484977644807332608068826277434499245241943809574816720096350234593754342893176295632511369062006562490907718046264994267316185654437533451416015478775547783695263436117617049837879915814483812194264925042026973917635023580678592034680994669206545220153061850968271068975513055508662462528590851580446155776064888156045205846604233728121624294820798722321282959201825024327639047713925808309458645493673414451303199740725502386465967191623415243761265780066063603262439010533169726545454734784752921533447598304006610276926703256816226976067250481908141562152454787494538468175330413869147650188813477055721015955042194152448930027286846911258434129989089737762595502521203854108510493031245902215392077118242532537308612990478188183044916271557913310045416507373587090167044736905388927325290523050422888732304892583300327507322929343236029798825902129182807621435922247274521469532458556450596932860152819572193117886260083218833289286331813862718886827701221473413484007471829821152240285629236041854650568637169668332919415205413246075195262543684597850695923138894433225904890521208617709644711550656736675976437880548316487756132748720619385046833127035097030209161187020448812505161098244145048821774218311250045003222185315645603531052211753834154106063674333604845336479963704906009311195656162404470225418243052972339489033983028492934105734342030600134339325686763225303769397618675770609306800404072884125130976996417937994048194306334672459311187550067388738892501396375546739108937990760307692593461999397979182722995747158547931250789974878185000599927827955671694693609626864347172508158025063835536401410420912498550534820915845236613616174351964806734994856121534070509512075922129128022208987232228479831880440974671182988883635313206247646907866387974133708202441954053715120331190873928541678663187139446531936007256250643732321768998726166582597107251011755816127668628244896227072510272869465595115153227911844551239210226577070145310628771965707595875752176358735088739022536710753725635872940869951780752433654759895862881036443025177418161742703599934951514733747288990248454550845369235683155973724361411709574578715259959417718942018425338779893028830238694813716378844796060648549068769821489655695751758037152854502348034069524677936115791739479367715797825827140040374904422417200023827514800503816965624431042256469855689588091729751599588158678254602016182740922991587365263778461133802237404727366840979142259693964458906448228811082036261977540914395840881854115272159933434418820796366480984298352812810110818912644129484546481149359691027135537230341229451920610624803288371904777026979884083873097945356154587080697105893999356975009839491065212131725707922827113843206772554632186071481370999842553946133176781031389978154068394203507848437492834621202225021133072696370646984824362944683756964866284993346403545535402813492888064912807656473008924511789998815813247916751776143941930642303294505508810353568482163032548180152317512885639718565276648268416098543974087397927644212579484794484684528806882793910468833823903498018000256864045783033993567573771631245308944868854292296593556543217326514191976546025049286698105077408689124201975363191968536374624001064569765082830714283553733047554065225106071668681902864300568206767235849083943628939031468402588515998389071307448583381077308156415471549632837428099347831701501698710389510394776932619015315520398907908968099939467423811308997142207801192184305348825943449487652874700765587293788867626304077622048931326660224912379438726048957118568650837860367520996192382925044023005803073638154455157480189922585220637740591797392969320032049869691736794888422412010008315145886759883763855914597348841825555082341202184872187620802623686764324524662784733434757020273635419817201977783055220183869769919791436702401126770661675852863792893420762098005666423830427114041919920830354558635069787560398833620202459049033957466709282693633604464374143690141752019111543005974415121081319163646919205753864262643247540947205705589245561440517745058693880412225874196246278081459365061923719396200588941024601690815823936343423103797649477824572090841267667150002346289693583077324517952409029017096340118986756848752856358106830943111481988935348466286253340694285665175663473401337687959486312511587078299503968051137282036649501982734123867833971945923762022907910347076203558892194954520973759534663181397162507207104986258211898917950576307346753869773154533754493314547229762502954880010938100600889863819692441931302127836146949481984690801892045153490179520800721836937157243992136494385850377987000618976709653812591727742199803333788958785973643992872879537368915298716580265311014311950246955044701137763382312952825983659753813380391158841976636917405138365252544189613622750656397492136099006877773077747252640969103283712115756883442950048507116730587311093010653634469771106124802149978822915754603901367428728895125190419366906070175902022618521081129070379929588386574474855510409012351868737913176098300432544938766915734736875442087957234861460483316728697695112519467053523477728244660084054103322316019243714955132688407261447598180207326963460480306613912974146786650825674085820994383232377645012728967508727487246228284305542077482938929166802389759554692247657159745226340215781896259946910633365695688410818203206943373276810442354949529199110865992073467381690024142681571044983281295020587610846755411186728551946595165518752003831916418891158140721530860900629183826816964113511735882890534118750047514697163868445834629877013764500227016611210730575457001989497184909166680226796066094344951107306157179827013248804597853830138194801532758076940669210283398730592769758899071592930078099856926417566214862378704626577321936607523018656421618664328660056499316191528045692788319228072318441932576105206257802805325586860778593792964980815246016314811629540383124591173699932257521897308227064564067033642719858619543989350256670081258704204613900476845456864483616814249732563143207377281025549516779991642784366275043728813696527235032125412236965420311762201953378261075619490831383126809070637001954245109869087111801166091011479689976197643737287932547602451451918248522624881918354738868605998970764107473680689449275377735866185397091193448491221341030190828322566425498159643925224048190062152950698201055666393438883605148072299909588667186279606296304311286241077084248819930838159648425670195467505010878766066723691185878960663804388910859842503716216557184665924393687922821474216811966458315591396154687073955630411197442174296688364231809853839636757603816817761448382501306687207918880502603123597571031490779529324441572447357796634011803923573576320872364623737820171317308958747747582791372054356694742428489910142152020793066534748147298208248804759300919534767277723502808405102247280957611383038347145180603428014516321516099246389606525412485256896107484934113664069337035695318377344693213880121699148543869077366383983980809822230362249826076180740673707665129410497124714495885605929525376694839033157767636268262333215164569660503374021811645575443717880718807185209399613782396576062065257108890826151174431543526812107159941972866907137674359073773713541173800009442782102567249832710660243125769235781819405325958951759890771144974407158593284979649858438410079097392323584725774660566793933312949126310276601049474384213470933131896002336048163424825264105543624369301149804489957967197958097576706121436431411864369597714871382010208390979760906144783862038003307672840464996937061932811654384937389403727663808319146379155787052679530251777305564581092573745862246361336739156250864405875625907392794288290250472666747943651664973997396855789448547361535993370085619336671986076671905279143832384615382486936531713742684497823857430526416054170814518959028754171431846123397551964595187966864415305162520346498601705037698655114663296278450008093214354943077398442055313244476163580790649290245337306605956875506978524196424753064637195036529300873023621154356554992763139187397896230285293721125188085942358038322623237649106424737585660623329978003799981776207011399396444573525464816238476975513142242298279246836988618088485956134890868416655395704147795679125552652782848984889057618971723524257229388304021240420711826528219343314215532357932844423535480946249313065580843802600928045489268750229075723757796827651258623886662744162295908530322085894298070849967408200760211168681865748405335582624089889193662272926536148346937897013306515043282322765523447857601379185749008099352495816356352215089653380523368885133839555162367134592380702620537728815440579396138943077091974314089551598158661661153939608167441297543750412357893042577204955939091946052895999703816347809401128957311583671978415579797656138546544136496426448734666337507369429465217226348728608922702012585948141542955550534265776623639135991283360531443165250733360899469931873424489523233719744914095856984842662538532229947802732976633283837539149561534669880135701313694369039185708212994484259579140626482535386817526733416397604754688130981563895574217883452913044607367826803551983802314076237968722141166662051095502515178824861134097810881486106475536460366452960552274847133150499720844421584872895055571582026646426765743950054473909980186334280312729626854310283229399362690556639873103644346112090131306576528949410235101498943216217250662043015554456881552362899619344022244505338166390488947115329977814830638769696687690705046271687291954363062598312511104303589946716376501376014030095093357107915616009662415039063896209289209944163565276441293567252256654697874661460308812952939787057366779439224060157980415057655109556937969876167925264695375206062274210377680537058702264691299847968499922170621819723514492936602387247315216344965180691949231857781618927471226246545882020484134212378856416760797656462687507643081691992499433221582376444122338424057645371683584694079414655239170600182792647220743796928007071722358934127418705861760487385335495312729847310482871818400067098769102902978736519238007548555000522698019439123925969420245364233620399592721421795582769749455045794742638754584034179114892784664164051598950840082685201325981470682304971173246973082249293539773245624185571006852637358961620053996110647323997484036600596493207570921675566308560345476744206135993017239767907879333181595212599478423653689800040317789564960685179898586235334554139615387582189003037349846773134048617387250268244175881214191129461271186591116933261708411655410123538052717132386863754176425371233302848625451962406292328263322622539235052437814134905935109906205862989679655223016556216522455225844406581803850357850173415480985056863806629612901032515671218804535208573681089778838829102220607875530204875558831284995620509517333920078925226142544877105639242596350409523611235639580749801205850285071224263143251205518631922834876493865094684753339029297303059115378913412707489240093367123321268227453424455048350103356357215518398963177203150834722324449423160681466793122954278222976578147452331249040269556001004955396404153920811179694876841434880504703588073181136170687133977757419992687209170936677800730294835257279277470315942449553029007008191839742849469081578471324797472392387487315433950382770699831655475362003559966509289054402455253661396585838568686511831684028185874028258534302954739164205617690563755688248468678107386143734988620763835180197786246933435867356453311741782945923451653580205331330232972888185593848261818488053186634329625542747195618195933137499188975424271955909873916903379236883126866063386088249373980976533498698749468150185095395950334366286652131191405489028659260613128680460267551184266067173949108840586327164899664870066334832631909457038660306821463362797555909952503087820284998297263068837321362674428926964409419258093060250060232064938391634722858975804037836540060824951395164599158710269320488745590860983661347800785406009207478698895272928845375682278668198490523993987344225746933717096031453008843627567369831030098868983776435265211905041798280440705236252326754232750776936598494278912793847900908715637307017443224993211826278177772773059426043932929268664062443089571721894847375618613349712977697559086703230445397223946935528326267378448490748929753667337588977428970061848551200797027949117890575043358222518910919183133647801634049290483903396366137700236868292194610129839659870383503639409455086205012880308628144711654996916829603154710704575144727462317457561884517196678530114787253073589721874173460924007465084313597148690636215624813189502498935462924336452971665885589117910137930777043007533801479120441639944405774581023961183990127853010404112780899357224406246853657696487446856709459534171287853029990280195080355687455019878125310584682291972053390755590715267990473067759525490023061736212077388349167527910601266019295155958139625127097253391321344071605459441067677618263403334375723086372475375412369456893397188544819907113745002041895707886404166091269160250984523875111736903433827407831791337705516821925596707245280140615344518895104844954564710817449140243150275877079116775697688280048161950188658945365436144999254662349941267918869637350215325346295989735068852649112169893533567670545050960178454807232199499300666175716208811799823913189757470064797380049444524516364205513174121259635456037900292758303198443274721796006297035922177860073313641516001189208734135917520367719915493321335454749772174530957701996263830046393629558183249692696118872170208074674061116518213542701663432497865554345881639956019997896940329481513197778926733448563213749725618467848892518595348532011431317675355804005754945859102818135209903847784848190473943142438560514330044902447469934793331687099476801362193373463878306716204116485021685010794289149503002517377301359024351348652828629199603998646630250663849151733122372906830005225981733446843953539419123606977236381909065622058581761611444993822652770861739417763088200737578504190592101006787882757458441013004595560481482958155863404277148892892534148743005299224831679442133580434083729740751272421620433918805479355849207555523737915506863031858793180531002294109047981054578632852504420793313784910675220375937917872274859054160331425346335362917925157598349386903980304399930466600797038261672407154305908682499948268846837531282937133278375350740501464729693436522229672705599538783732667176182267109340145640304302921323231780889396349007192923921153654567965060882485749198737567504651725343404284652974339761373122813061056005080703286709642747907851239244215007515487218091094765035534989433164599451523259872445762426870081039338342126544059762207163882238944358093658757541623371594114699107028204067533601726000342912287475341468761998879997572127349333457833665008081676185939761660043406644903837648763003676516401439150022627977825490796378414704937088201690125949927582822997161596574727604476791609459982086488256366758538753918766458842385140795733744449080995399107624788276286641007123101042795189587006039435308919999815178217261147730698460524207569052547133683077173476846728289333912375637659728197918351533712406989913509163872289741676870523344184698517119815390445123771151260754005837299571328051653542768052396945652221993784895326421671125041382543318861017841540492292262859324759286390053117111112131500077141367307264800097826119605831307981621988073019260208391241431112460544973872647831782089786135799922937309397107277862035646243802628449348951531653109209192243377535481202023650091375991550355945985875663206736381007072924849584513587057345622830011694040824603242238667169611205384666041173444481181786124294790406362835487810918870477114671816946144075322044972615801360659756689617701691768343953210399172811559123969648204962796235743382809158305479574770627255579361807598931063215338706665158489037792048782449230411205992650557284771290266561140570087039599206442044525278196335139722912085051437246564523648435878163127774101846163090937439309089835161842161055965407965874597290933772427030040364253263963427879507885948537945497641647285446277765562211563776439743097972356189485605571310658345833188892176064842336135513547185817999978169525203264325063603006013364539649628659069140428334670204028461035296394022359059727884316774557623950195964843873262716693002380404365271337990503325371866413393230004729398587656101943494267139841465831590079226279840066532544623267502986193727794210170956800276975883510763381829108806661147081476119932291337433125416891308914102319681134707228741015553920269967530421887959685288569372683759278182646968180679068344178395473515545498845713871876838149729974427706843865227111711486385357899457378113330198433893142274694082148965338094235908205734365128931282549118998750825009135894890585624957045016145026290506043876343238271271603628411256027068018415597334968853989791391577751737348952444808929937514221752396261443596800564853103759278338413344479786336555087043556886787168954119373798531993516928830122674615666583078264038322414334622238327417031647166409814792644691477007829096205898718295590405363190564356578118403534175819983861190128286897651710789950702813501520234439702910255910036970905801019643106075275010972222458967580201926526967883120750811887219589145107214537974263899650931453430998382033660925978718108992140794049818014804540392371062520308720612614773825069823619919516660014516030501442906251817567773920761638522300325811083682009739566318884021245654644435485513335548430206541290805595318968004188072286312489115116124635923351456513483255804119660671488956635037398165630796839382863693401194426633790111417939116672498013908501651169317911907188618585662659680138365012642547834714728347484239015549274918982204553398166510245138953690704859201746494530343972682096776145609540286485762376848476382627780373782829216150326532964600930168356617593779597391143462396048102587525098731422975835641522651734653804353028082871796715595097308365895524528684981192031758276377585107585539058733938700305830722318415486911837092612964238954252335038486416278434563077136155087302223395139334039720244891425384947855599844197888436181335566569607385591109446895755145895395498751921154735657712846381724563873736748117235039622823419406651202194935980212995137318866450825869400979197490499528301284484791701004564177007157592908325001499813252486830275216831696704474627571150895508408097020870955373703413997651401232345690507700040881571863805042550340179269185129259106966087007293947495554807716780935523656981322748046504601662045315744841874090876857766008500211442246246498602586983848629842222028393847093124136619672650326375725269435190264648191183161362535110361926157540975059071031192079310674940141967662486757464508468273144543200129347440489970692403091655849918068238178234659076464073828806848188430633233473837445361698453117395302616824534414537312677089756540298708298225484790237248667229813191171824338039379121639278184607654268091223814425094698589120086268886359405962448178856570901141472887403413549171311483486823655465302369912383075789633793341248595498974755464607260031211097278205653481999257764231800999422869821451129247375032163340280179437499751783059270083977654453671984148174517411411503432983788471516002691678170385154993680411481700311237577691341629366583305194583841688809264606641050391176989236561969266996694015637722864319204255666989503957732589317768989732401935692297958177830548961792849757142232361519170016607076307963379334644563197830821302837389498601776544412998383262251658414644726998033270141629816264054251853924033077583081894214773240990382620229922121070906891689976690408319758301225466397781227983423454690052088146966623587445243998233309849193756202267135919533069019495155539618680960101729092626079947317080589110672623821437991757750563981685333304095837883134667588083908472278986592670749482763273175831197121739948892591674366387490081795565446926116801071409814843105701040215321474157683097961743695231763459866710593434688405117357263689624415298697615365038558167423016497307471316174849884769456211817715498523463823306071218361296198618187953591966480895638055472785261995226501096158361574602669713424430097118088227232314939807532674851544807961204385097666410271043192355725813033640213058181800709476159132158127288792622806748906404932561769902722193661525716303451597624383928122947742708194633536526140342529247165169227896952148772328107427082430691751120905981655038093485387452227180799610710503159233234556811859863003750330709611202943875209074144692674037109140254363875371749210092683214027464707908707153490692220847600680741423829478349470387201899075735272408254452109675851339567402316612937740494560447385850551860461503832639243366849156752438690053961371369273508817908302026441870183220014718399094984093672002883524503590141174321342453135895843250134267873661012469655471740960551863691211759632738393958453866542952043634946244819802902052781095666972455864990364135747938525407300109889384446692039188273630025591475471812062272197347373319633709399778909525630905820828155415449279185106480966769088669790194564895397967363370287067104691081979620494661192416726357394872697964997288325342982743469085910927930013843313031624608316462143114347699199959334467041015290432739110359608238995640989773250688705982732302732046548032125748319344227675558493372809835623340113560760740749434332203206667354464605586935873636640881129056928308153963991287057702155588841951193486106425565059632626874558207847587094980302102546487695585677539349539755550774954338640049806286916367796463039657078041032501267270592530282802358559995468560469308262837339889333656483771481174274247978017405772213761403512177366247942731773707534461338282524152206453309459736819036774620678864605352712162668163251229542958556767078395277924719624909190747991144924988019378773868930341636488612029175536546541783974512641934600936703868315462028304520040094735990884364674417818090981444173914634991700881964245436658711495833561918951514976961696383714769861796420859399852211582963271127198354621269773085730323473835820348166457336547131630604770696910316778828197076418463714886421551348855588633619222975064998156714452343647238085256918354248217483146974923378393559393229374920220594711369543227823572296831550804317099203882537381491327430222602026540679774758148794156626585295265693083345483535807769426392947869145394132660058544587194341795433464282417958545857129452732177970724129228237435148764031841964900832974201705181948528276371194649442693094064923019074060383077920425962163068530642585620645383440690256743910373965919014947616080628289597024598927782798149245942659995147069764183090344168291537509098229280750197518243088479682875253473266169829312954844516536377216463637654003433399663316754346169150924205267077994528396596192796799882625762629663311745268893312329963776858979252445077950977603064834053995492433995344190779316091125603759569622325611932881566445206351757450446414872472293101003369038435205900532449457858628458267585105254778693729105020804538338789671521253994272982187656878038889427385716545168921102028955456273874103964153032968141286428590587658734251044668738386329345088676043859551676828279728678936774390223248597272680632433047553405037573778964515027059271036589445148480468297790137428894167546959863165413007099470826395480736676502393105433801201915295528380359838840206706839213485070037986516762492422964580580678357220460806961342515687339749048708440719767813079093359943463787209171098755015855848340928649243753805333464767263679673227128887460479246976340067473952509415284695987587097957472747607969417083796142422507574137147733116492544166525370358584751018783867382645719774594953820324832040676734373503677609047138807272144699723514222019851292839040127572278892746409262488354290890577837878784605973329409351352356563039636022439729665225085607154181479173877179811965377910214363618603703926809792155951740024282480903848941317867086660565996211022273034873771228022881215349234196845654880013502229351799805920762917470945273405656703955732408640366829028034277690385978668227275476203965791308194439437748670649262652273491206365491825120459998763256075228070337166428930731483442548823449676938712103789576091552508411456339094355894078130869359846790666744952344568200772990213645951563628907151234167772970381039789040838473399881237368703189170981994827118156103005683811922684974969009868123199600234583230886685120209624101751490520625462229336662095278228532283011803918935730251738793455870016558550588961306453882485252687940790669016542646607409999173974545771639114468166448755650349025940521665106860915403759695027125367290972265424076338357231652319984442614711813986309271555252242050937661372334239903634145607952707834089303955031885698883990058935912006629449261230921451985976060666857442332622043562361327977754681430874207814161388347515835288016755450707731374596773243395856994804376462431850989651317343982576117732628361458171108388272775594590549573454805250261789242680598273059389003156541256000374250054100869689506359950140871287572965213857315794870890972468022181352870775228574326110327430080528143422273006413485809987105423621364102010788664267815727891785921654102908923804463551248035411114712162268838949257790185050716769838489677396961262508429698117875122250881617848988798961282026771102838120474583713196091726823966034932051042424017491214906482111130289190684499123542076381407589854583699430217400071444335647474457790191336569778241774983246581227345335097373644353171910546092489545860768965392979452301662016008565256009213157103928400974447191780358263862078850364703315010834640048177922990362207272054994097071166048950692251457631435237544610384148054845180107857464837699047667937560326746147402601264614172451688725658517590274685020195586909929159722350112462471288031733713326938739456332009840346169758488154798326704764540307541966063478736182091042690747497586544141996678477543455896579076215564443814257598236437542615398988652245497408171847284309558046606104850204173724618172771027310378740010095232356582326847812548992800121099312334318272181696798167077085071768820297423301754175989259221585527912139376990942148835354897033320482989212840271936202113029612861009370595867294569240664085818305354607383136085206179864972198877129458196232710463378437401613160662969191894629292632226865540128558094685376116668162242545177197067663764967608267526530000425872512393856171754839474757492039661710150021944023523192766678668338137038543572022465228236189774791865499738051582947854532935573807251430112797689103865805607234281840534791497565100789166455951477504297048319027179806627050177328849059326472388585824213750664653193440740366765677606216331177750821424270906169457687911392089817685603424367045404844118946953354936665610671099680141329336372182476000979670812974319150300118914223059188032611850557758513064387453554736882616380520782285039462773332252368425602376675100105441762997935115315771745517407893345180071224016923331305252692403986385799518193615002963875157156137245195054754261521713180409694275118347113054287822276634717768470692562457659196588348799473282556128203079893094203183829701128521469199791987707390719954108809425263643509764550815022649156074606920117928303578091200571730754180427539476801488833905307970302964040975886375773324357006705558280437270846235679869113891816563743082760011303524570650588704261024532669024218977588297996425369755912589374221531889137306530691837968325657542991933202238969428314125994194588904919331359705740856614859885154970374310178134627207295162549748230199877099246199359568429180666633500313547924358902825957500749042068848905093763162134740822440967116601887964424984687769802592563151436519474673203594497804399967084475383738156311390598416750927453530571299648057039080688337218356984676847337650219916034557181210361436858908990707577007745994960092787201258398260134571608254925923247841320404138862034107699127758224221881448138150241455179880214553350014486532448035045944000676348937021628002822875267195398713776721236430925283889941000900965350238120238860308787791700564590335157723743063049063557466912069379671659606207959515978247666398405714215764293411027595900899201261097332338914901836601653276897592184271574643833773001374034784272107914404075100515080276668333504234099129653380856505587031239757470092038590203428227338580758664406004838998200784962659178115741331419313155813186108869613500349245329922917536943994127452057080259880300862546423245066573450501766104484114922075356339766340086531970220845895223415948092293789684934994243153144190421858426372909088614504396878740367763048289110869751373999617804203950387757375244451234606532040145260910974338946752353034374557571696889804249844996546049946010489376186563252047922559922166286169961077508956726572197277180009520425810256351230287852679615044931502458358602298267412407976379308417464376179095470137772485109368662467983647225408982374869018190958587485798733715841172222647956974949112437992260806404992668781441829702320929678110092027880973096274599131892069919168864361650222887329907841255825698786971587671428549298837148875478935748873353201572364034424054759562865461980021808925441603450713818512736046343602342806061020655667632296345288990780930631102876753081350989162451560569451368303250143327824877858394948258472253860240468403921493260363768085635358946259242457848066837258412671082252157187279910925953621767152605100878381236547688674133333038383281407209294666910506516201754596173240228406268480488213447807055144602912771963261178626267351073654220590143140198920196686539339046901044288511919373042556108018817699755334162010430690458672500469385921866502819635114543788459088678016438006983562013123357143444588312191177322159339164559593261413844374068674940427590291807142591153320295851940300541368306205331105572895491072031288969810307297214004356044953517773658325300976686690646192739726293351970860605800054395980649187851487351761853411056249930167155913015955535060818134886989198991027551446770449689620319666179636912692515753239670752670647912166274196487109089556713853645798623374512420783751107889719255075516068316244914455683227049194412353360531361652219558959454072586064223978518951977751714257718635278880777415586179246404324747922912094121893066776277663188049516838384261939624770107198700161694076918380774994160036427969076224956519019375688602919752047097524918610286069999395395547027956294182606288501685378416624664794291834941467889800543059371135317340355934275072828854618916379308151877430623216158235144886849167877097603532255787130338473230771931727263209857527490035497935673631126979953268049674078890709959824493971777302584560468658683300016065881095128497903700140900688437970490493132443602118760043217434948525146568548461570261574677975379693537617822373209352064679715812614909102357020665473465557846269369498867743177756606619804617160579874516929662709179588088661141310316806777529025911800840678205696578023031937234971573827387000429630879251604923315676347771838969511803574274201255040658793619195615685603690788518011363937171113818191152335489950075288963310629530406762865159264696692358449732894624717115800523059359378456731454621589477696590900230854043330100491998284671919319739928463675126930166829533721872327845551741664173511446751894360277754556861034437475340703116290680466188847875425685674179070786746280670439527117686377644763906146953712679501552680464597201742352148567823922001479424108066556044937598185801494701743212070545540600790042490471174234210188950998329344680707751310738570941859244007793455986771815116199528017188479384948531331741141050060789885585491518601002012475859220250738842804223230537893760212021506750231740301127069938567849188187074488086046081518018419206686765504917188372866653048263830592952465039928431869629370954936978505184518002436178651357608268994466395893374798672860502057121406182295754984344688039392557406420380826405773130992827192106552211512430596476932347115366842737692002093506389830544085712060033799202332045505190676856086201806752579984108296198122128236086658213893759722033957669420912441961714358212441709190828126737486681322289517949977266523377808772939878073872952455048905638205294192633375791864373622375509175514945679705547906677334053416237839704896757371028516876370114426321985849545911179355734613649521034308935298854233140807385784597448574920303292989521740437434519279039163878482305412011487366062408214829911591488586995564709067621925064208743393714301113437004814618207747091558330250833931227104902306203850275480696408860830366110374421341598440834406679980575750260524351676526939326720082031430633822536560864787387423095613322050883530587242461517343718445779095051605613120132727923293482499979649269649010680437300930725730337463140839620357706145337960110926602875532396354916368326856359565587931515239406013426499826358278312948387144414450974071682250039567892874207562602140516037752839154162225265063690683331871817673737828082957198821424007914128138454856830755147536153297697171444575464752712967943102233724992593547282082144164090376938369680857079806284559409435819472531220978822180275240768782891812013976954654252972454986009157994298713349209253108278007419344403808714775271319342152318085931352033030270919034323246074982467531260509903248029273548694658283880772074404661893712969997170949178681451505268374644538661529460232895784620671974580760120547446631721621039679185285786350257494165036462472114073214667807467793676253968614062347422530449839947112124343664436729409644648534883751825238772696988088584961656373294776172336029691419600105491895491476583825526009659144206738649497270411984453205050501108942247786140172379405808757096734485123674678899573967734048778855160713961820644521164717932885411417009855044673573945501358828105828723629323309535142771990802724675291903558517210893256153371615023509648608782593453602604185534517990396989981973194785602491279791235816024157996494656071668096603236395859011737080915875589634540027005685499135411871979324844873867959201597610743504588254669077252916036575108813451029084209176178095312237021908132142653583175904334157297129127370519288021102722885010903981525117547122867437628197870769837840827538875740398036364858316024423146185157110347126226357631128567530422779383793942832131113971302189851453975454276489353444552709153845213646772495287928196835833017786745139350300118049938503910846102233871790867615578140236249507080260061326781095582079257091453512152526990573676923233960772867733737737696202124512452087079773531358964374103685956839789908806072253474944385235487567090411353082531702645786883553550960741954665954659911712158717471575188196694708229743469871557740318779650774941399081290251274520622429521961871183188123969213101018548548543546493132389594910493540003745122351537894919492001674878430662318725406273889794464035583702279500061897803447614873444661740667703064647777856619919049107956954425301548194366143491844273759762019817115407985896328458982418433021227468511710895215471162892982728055493179952400711112038910827533972664733837385890341141829093282126782163825094661107186040251480559612859336073897728715571177601164495994717610198284454081924152158821843386014785556322136544612003180049752076678165190301087640446212480155094305562864192405039594534923691605327040841389151290284101360613081262823063752392858844179245892044682665442431068692052622480398654206450375376723255797408102494663682858110436878917612067098197890590133876701150463088787493483979787535204892715829242044297887525000586477411659924340892342563795591038974945845850919698525589436496966741968804779790172635271421204648570047928197077307750120990894034012514199561318774862138547142129255216047612859716613335990456301809711316178122761347183586673118763564583869656695291118900795732098325280062974845342563495695760693596183073490804865720162944810595822453496993017291015988437562363088741123037658440234107498050642602899317826720028086556619480407834475639474890999528906425565200501947942054982535731971224710029230808559420976727075515315902876451142647978940392119715242581338082030755069570543961393276128363341282905143304082912736575912989766322429945157146800978437396071117464445574742748136754727231630720366362828060369720374732875042234687083429024152199617029792340588664320904012783060069600421706402800221674526947481713546892796263309418989980543291032031439382454452354754407871107360030126993383582826772160045144191162276853650530515214141591409825042144635947643907149488599526253943907831833423110522343389409981879241631204820340449160750963114077305564275103546567181728913748475518191906368368505173060996205472983264337051617469533783242863354976213360083929114901677308297994823039592797565793955330256091123089405536002938426043986295721204529753268099410657286039406979742860698645718668775607102090584104848053704306170627555263825461452289625208014107194717168263045692609190127710971627845857984161051919766386961052675170876904238014889540561369208016897170155160422832327206386044662836457119056198146791394576113175883993112910149667356557423707284989666808082878051958677801851765702201257744919395833840111003851550126882811631946856937688398501987042557318307869830794728321250726287949706335721309195515535400738510550385738984265239345965110141227523357103099003816078022877537869203273732896672770270472332085663630414101878127091530903136298969155336398156831123208285366172323394687233361264880171470919626653721430352138490065165772502741955237766105919830320161177981680763385262565310539140187539162344539552434813781583325141774411107825838699152845803326739877272551714108447551793576373373194324929485142840895426966968878627581868171339473234825708537725169707054966810589538494120690677066734372369683003683553787461516389968771605049336822875902995995725873010839199613048004269280668948651783127567724635982331099644141684854742331894925781515161709081504730937248652480615396534019065613198961143932942672579827041375077393841475168378224525055963933492177948100542340326081995145327198380101547925414942114719287665349203789545112340003660952485270147384674150607985717851266707082477995751354175450432610733437112549172487053228434018889694863438741797554830449043782793057368166099090038087691826329532620320369355440241374097425093224384314190135964536676297748016202326395609299364008938899146069947167140770828695517740482050477128592139199539853925254403867096822418383383787918452732516247235389453118094562686270817572292141510430458542700851207330063938902723789908813738153073890127645497508543054047516103063102850639421872019853211864994758006326361430129769589848615176850347417973646769462905541960992376251435661218075257906333305877932810758688789902379639355588357331011748671814084950735145766236164384090576751614124707516618099590877527743321200510723207395231681569354125916414997172550596723625553795719773372672152260903529520547785512930193032754883269434909960984886833848647619357532610448796294596955025586069923463147783631472274833476423904146222179659100090972235311684182246881838913155128829425182102812241583921285312830044041053994944115938109785878104039295929474892780380727587872981440839577336923596389940185647235166835687641889751521370349236774087469389017031356283297901666371480112693524256731498705910172471237815530307562265894147406780099919652917874069320691392048069720202243891788028130827762621996252413644570599353955246773080806894830041277724269759773907310038390914086992880819781594792061351570952416521931002590713594412702893457511495082510227870242591873352732910973879791013077071400819245555056004677859514298032032805936588377819732199258063548572343043551528793985819481163346179057891453868412245047642406049383239506518833115984947760170690420757143745478594437570179611724684661402432263936236127689229695154688151964511813762937853802571821639782946160359102322054454572529801682145634050537744275914943647965873123169982522589195454280614967818612304532298292984131556096029370413901613223220293956362337711805861920470957376083025313840494906432920950261634921615341888836923029898418724706040326316898841363601085199300333554164218400628287135347111377533076935505017972677435724285796524161659001981870653965879281105700343576829080380495897625181725625078761136961351151918838669328351438259334049825491792529892078783296941403775041508555089238009012275511448806864598963924187536273359432143881519797593129075662623387988972405605857228577893915814018827883366860463463833121620713904726540593189979459197235528401465774451819986412115191655052175056461027824381347686507191166209312077724738349991395414475985318501725632938654881770364675804365349707297480744812905251178680892022138851067599575228659468241457307656154062703673162201017021538277803756006783433761743667722735125652907128597992795755014117802970249363305334996033765068663447121875351341119148839156081809719825749126425601736943296963619876948613244544640787391662447682703542583865543141885149537598732955135623261016880652206440036399245342224815007184331725778703142005698796415844606445894205974394485600648154403263920675653046049664158511885621089752389439062464803624274477881888310244783085617156856604017875994855929896420505621276904935353067184036633447814038042276529899735962794020655847647850846499609821034811162491844710960357202006457664386721330114758283463576604911062178092103850292242789422670598346890910334561891716848377012637224040255190212040677445917140396855747631234260228597398812701972011015258857011593229133574981644143013284351265986460214515299758716667157338774279798007254245733016401597285054420429154451772476767678002639300741615974093054022970153769390832204105933645765823043091013977364802105710807930624573488871072093668301952768428424277087456323874563534727032490693827213411890947560236520160525919562903839426931341474728055646030371730194879974227144190181013978887512130727619288868601741560592810418732942923345017269544496060901505112933272123178540608468808141244498009160974657598004959149160782695166797073696436467761983677941652786040599945379152084756222182345128398876336056616131666696046421527944870386552369359665321085952316384253760623518545789534667880003649857972303918236607501992840673106527195637080326190969579363743042847213986920435511712667218752483485565720174174341458588663256356356983119241774721380156090458600051105749613829094257229088253714912066900329705322367055275842590768156678143672592678595310870126287671292175720840502048838821233888407475545486270910492894196409323832016088621415292708257973497453848378048938782635654117944132467226641911969380063485214719840695431351019984915182678893661826271167976722897914413355844093161054635395289070053078445147272197549365985492947604385044489814262524723009733567987839332727246677886203116583285230163738390011357031826910436004023950075323519976200086109558405695839109609343188067546998570624263840250334806470859605603871469156573791333554562914761012084860242013071393554414647662074473009836861638028192965183425492335602744402506922587646975047883270344493472566910927493199263669432005234559140763563250633308827873275133126331516447335607383551333531576084606137190540639024351123843114313326841958201745138444093388806476572863691116797132730263582429391882497026170369249023971400059426498533490931427968447116632158180510084737297120326965259646382979433616970179803744277950732115826852809868479368977649239362647924820771423659890010042442461939638332113398220656587279291013406733979046240570449377306155976156609901774098000193849202322594212301492168984320964468239194632420302532172097533953827511758816989102340970614002604355033828613750359534200339208336526207347458399884354962373504782573987886719071023003204812777675697906418275060995164608817363138567673460452962076704829113616741443413558157683193996405489739612910086556336872994881485071899847254140536176674150557969810860940089982182838353345605003298943770656281262665164281305256853132106504946734650539423465280693429428587750164189874422141709537158080820674738216395939834175626264781722168345578940644059896149327239292696537017155502718279427904335548066430008962408286080664132807198658479078373938849155882837340923689390664443897711665847379662517212990229177195332269560214328446181795257388255434290035530749333874512683096929650744397840423921221951057229644454934113689082757030303676945927265071152864303728821548760560141491770368349534212653428182819961181694126244182362242481116585390731636867788917413707709413740481431782412044197301843717300532818714592583750276960002129414191409929468190851472838542455392953242367984509005767964949678008417142487888968380823223472775433771162800895094429760362198200243250798213684856224684059859240258363987121234398665058593673942982597129914296569986059351450598775987021592891352459107916883660826091356721666957952993424675523637245552226395733988809732847921886812584690371053846727313859783345447502314943976508714606349786683367216245145453538044624660476362742223873240728259602692799176181181225359245857011378597599636405662173808317588408201446495613939826974678735204775274348779012644140458020753171409419961062897111564087265635715648151405148350934759970060644218082055408330665759540354094997411657309562534092424359593434092653174026479712138986648463504979012625885717408567898337547845304635591285868855123282630276370131924908057071595349427113651715338619885068136092567628906329101177328419302039504212301028511448254533529348188721609853601195351919094095303225250347451669186538938986497287731031795971972353616915438721020341978670415764113544098069979791317278853024237381502680925914403649099770289239899543085492257518534683969268771075932436253457935892852172846752854146608504454124895416913325035372302587150410619830123106837485617667379376613765622480390223226936637518313678990002195191387827962303550843922034820265056359140870044164311760048445626333025086528101012145518532428182032589284686540254194905347474536335888366490506957287146521901864969923848316370750058016905758226063199338606742501883681465254538944015623967718292530150581548812076183150545934111486335481943532724002703801949136983961325614804658815435875475104993760999874614831359578185611825535759735068388434594269241660318676517780448197199118537716701996103915116035926767451230905722303363385004972255656599227869851119709370242114239468353356706983958344482311260613929432828655730776846254896282361746533591796577564828023066120724470544357072560515708636634262678849774195085579949611193978315083246971985768451642451920491529423146933584688948495861563611103339124597459937280733095163316847189006029545736924885194670975671813325836459617557664391728059153899982698226373480143752462784437760716968843325115503519719696101233478246062359419378592849688224740577383941045950039226319439033799852923593433559771560090737849527638653892755491853479986993707047815866463525220511167854997718565534261922286438836359438906434430025593460562943651218164964141918690415061706519493060820475818409679592346994196390043050876896106699991712287290836816175900839094799202687925427440551882314427781303359599317202417087509552402549389914357472840971627907544590300527629441700827891368563389326016047033574312238372044846966403825721497633231167717896195584759059971745353849453536147916751522594207841398945869801884449937234614880268445162678761748723109214065092106827399796306488514162788134372621016896165959326109700218259210036845327967861416108562837343499375653785251305031971880873478821564771497110091405497843482297164413391229944764122692071723724770945311640223328464031336392621143413086201089427199085568211417471529170854879051798954059016507585822652844195252352122418988890061902185433623299947197102996441597235992150048236265621798520478098929818661653347324568267051311556393407281950478828514580257382196868715887429701384351848883142774627367955954468090767970046774655892997650393632503465673536995129178378724204945114920532755162694054032224320401869029781024700767612270031353257345900995858258407776310501372095626816296129016573498857783174317356044648559760967828718203014585427373236730129521882514682419761292030774585841574290574443428167823660965085772838891484970475177258571476629168626010351446056670160360007138395683425128448618477184971599200707275307562935514264250997947309780026283043404138313974744224464661820901638718996936637972953697816819724068178177392573881529463224675141501232129368046180549303051301800457589204720549495497390121063183112002383087469290290032619436297339236626893883015366490352805250564135792662306457103704177961121230301797692554008367922155529417696855011504519122392178111331741748862293911104190165170574079397028925582702498016110887099992994360104322945766830249859274149963241934291065097125735169024623798142011678659382651717075009967761040288822333957337735474153800154426895635564730492187072288641039032494927878404324704343815631593383593280104250553519603358274539637948926637947645435894945966688097782270555851412719591018354362405628060305928665504603311583059138117107016158115108871113497423085450295408353811055947204388617946973893145896709652550411299455591408704270752236983755821055301885443153202260649471825871082706549760953736256113888589324173852102242629341078184686169318581603923260966545059270564798453213359936929356137317792268227146514782280636955947206513956668306586287917930372109142775413818557446891006839645412909533593652520699748188666814541804712615049430785095969832129995597287795646701698210370813923417442137760061355427019362994098008749408078216670119871275236714976388362863639385003974373792127741101257940392211781690293885198077327769635765241554978457877395357333010393256868416869052828502040363870419833764091547506348128195632481026416118434048032534850422450370930379367525087562827131038941509709285863239132899700219262556336494792469939443036600589147493306695443799675726093699507817707460698833920453080081609529323332808873038436466643007572958974437939172272114529244592528373969476296283186600649617308505595812953090272522934386568541292726272429657867485867151467315732287850229948679998446202256270292592338987156000674665669759499163724573538741503225932992156094523000978375954972488610354620489698680186863163639780578595991859347727191164342106377460749272874940291253661703181810467628168422703174229034197598454055183876964506405149114128131967805518232940756055987294915267072164604976855401917067206019253229426073291424603810210645367814270555655178559613411135824615187968179869479037758857581562801381573170787243680653625489712742766867142302294106478541046827366039123731212556432015781087043165267517685702061718973375824978881797832242288168981818788222118163782835398833565153669682689200170928866899437507041413808125536698386456909314506441927258481690582908575608431570388108481239795000342769143971256656805115265323423917822935652453709145716494158559782890555012854207230895408636088335238483310412149559637524555089524668793158771758049314138048917152308954607521856398893395406664339892007286576822294170512857512445769434792821131089823256955945704516936834566352942266760181933742498600537588338740997427404287154227041065756165359406489412841400949915417973070282837737387162209912978989758614804855816816830927785538671608230030931587313914355875635321346340164110324314879142334086799770809095675417936004851618142895603616512003547813170452742449870182795849389202466636746322321475557276710182802997680555415403492560011456855667788127970401479404092547294811538092655597709997784980995870568455926373295548403427056074949054743284971037011647204445493208592663314168717011986411641785634752767922036276699395827506420838795028558613194235544081442357322196884507257720818725796706711227701721150562711596275532961257474274991378081736550513390995237931073909234132279061673832138959408951541155638092055669365560600823537556880602231385577945273898374743832246228097020485861415647894056125304718484632926939392102929219292555241146768090779240725304695347934312444154226749597719440887707257910917524977258049405734285764954803867412975963227116162105345004112829744240483140749423711809444015662123084795003763493847726317642754639708858684997353147716526550242355860523198989229993866519780742944876277011120947545851353215923114103852189002722924598743296881576083949463444716517676847966747351356991495742125824610058140631221865537067923239538131875933327845815218675278619885542040811981900903725908399961952704948097268410298990285025034326087112326573051406951050470586087985778455092303840234296679619472341816698330117460711216915888479613166743348227383217747260823229652427916798433771463544943761192198866369050332359001979794349090921431606623639794542775427078807451091643889286956537005746523418752703454406104579943211230014180536440840509831677677937722914161023323256277745498035468569944850091100239987676405037296861142364807044163109195591319728065208106834750951985331189423364228716832789946838668587940148467888707745728877324947567113085264760840687453130170382728817651475405961433815462048855877660857180597899011266654082033307167837902442677072383267821252569844964422851928471869142176069214795751278146842835251108580293039118833233415927585844288033565716621597207301601740162486672087134324476045867233060098250952366118734486955221465275186838013049493380134309337613212568958944642381603937793504028287067278956682608544958954235549640709731176118700947895029379734287257026237262885656816527809900222622574292382534344462448313107710518540218697257962312897418081618277765593640320294850590080711437817430705717327986006665549362814825982808922330496700663376326430377446041137590882042191977570931824725930485407363250815692275725696326649738913542436694790790122825592575684685434483168675361145794138462351120368426996966112966083955666356778908936110416243107878807317209454634575363815586260441951698532911250334385945480544665226284723198684779248940378022048210745306794170378459894777670165467067145027069618502994276542998897483049303864283043637193237017805815411741596387499981337599853383640692019201807641781187823832580238020994877881078878946860475220524122528865305540271105147834083845637926193175707628733787042909942263100005845278902281281464522506529139201984896503200856736293246935370550876969961428346684121323887852427787878624558626837604325508227144171005549678004530872628551145292789671716230790663076626124248134813488162131448258785005465952593630166229395826029090604418047813353370364966878612828033894165141056531259996367950181572950895733023400352048925777363063858534027787026840509880034341255175116001571851277731340914506276322382686621524634053969635349693895897371314449767195933731593306980863108175489551778972737422256924280655152294314470434109119320330433225097058773787321272664752844250173335544448143604407676087823983712786118630318718449666555505706854543881146989612815079845610487195000129165488867329346811593042142705844879516115612574611904373686937916471011144852654762675102328990123030169848495903323015145696136630976267119863718999760748486996115146409423911621615985940801202330025057199906391978257802419823000509256369043213877466650014782850188217628282639391297381782609800105359696377146544673977144270868009412182311836608974879309976971504891786414639838490110754921579081976948579686280245761729426346540191334021092573079789402703501793821688996104163970301282245634741430270244055961465139698341534718185438249382778100905714759233257992213014918406288443774234549871698078376724197144946432314888749131296041475087180731114759964210420472019325895765767328169550263804749708510100734206996472222109605600003083427556771220435503819571784765082401931557531807671880606356406827690863844900048415251610327677352179846655933665569180336515154941817127519857895644487270929676086136257007906534483542675730139598770845430048333050595088895250926031543818509652200920595766954184806842415686975159591403310725042504725065618039035398159346841532589589703549999332263676423485666457810541983222210628754639327765712453761997387707846695531950483832745225428256926073340238468427443334684794555953787152889823204583981172776603352300449945786055297795144556228154712957597804444799177497841185743758552350748719080347753448262878852455526164275335188529299011384469338466664441968053118554340811214130658447129901080547160042805420128904093812678854383444105991933153392922529897889425039109984591045380366625171666532348905148779683973846670424100128549621389208116528905864019324126058177353332156712294897064105680561618254646116035658731930224941619084172404087709031712705984037802904675036503152509966892132197458320748143841894451383583664379200309481943593244557458335622148848609408111855710137690134919972868329387680776385846561777607161938456342311133551657463939459735890989602261512271533539367906804854678746018045547624709285372213653798754892161228498613462777320300471878413240977992338198761629513135838785516327268026507713363513744656770207160136803121928143221509169164204975677497483468345054861336932790158884652166277131055089700521587704445841104880787662012680090594039131950740522997154018645791954431882101909803868447983470247763083985914775466640452515287796637464937483675355128492854464662438217884764496949159100406534819187233195237383025395165528518009604361650371745382250207948390878372161060949676079031362911721336959443240977213771863998643820492650315173459798710267435041764808959394212296428516364064056192390256608651529223901849323306754354062075956790367280217155551566610546845600383329461492537084215866515806299947574944931092595166288790281675281768189405720857666588448267315668414742511952710542486944027028062550520009172298089455210667702759692917924792514721509140877817878482231727609899093629697993135590610693644062139558660630835163277130611723951683003412606106236525408270675072677602407179339143755744371719022109052940939494786482128141838741000467559339436009847006942434862264515101544917520020067790055305561078059843053634741355356377549832116112539284718485223775588961441157793607807928862471784437423418230390410177367167777145370676419418201009910378593344303701385959175605085323178615645723953393313962118169602455746190526764322209512545849196083628820608124924304370903987651401076062448040229992632911549745444011108703263714021359466223032456819494762436076793220885682455691038920877324746619526585369839709832113033875115608553213581649517309087770587797333227908461613932600573371910536025417155433232013109649503920877104100043040971572887882436917453828965474870229387898895132077736570347877537826666327429810870392431382845560508467782154238553451920741574640537496498647873212888794238673347242214805244648113674575744051903087372638187531999969542112260961826312199115163768875545343724848258920054464778895562779589001790970879349094852749926423716992407764639830007350560924056782989849492937740299767555363704667638028069838344114438593629088864147347225393570911208534485603188851164039474433049977833861767655937479064029026715921700102493942984243287617701909517170115958343828412507748882158779681724968260661706579819702556945561047383314668135210269241302579416178119045778446239154213696711791826252211568597856048783046723703516836761509279774307230294729973157255307783776945243550200067796689641171743846440228523669830965369032358513389816322992433604755262651143731820404289626912712678779157235508872181282117153802472774171139103533726571118951945950929127453541916970441435534874343275613365043847600982583351926477069910884647855407078429507264963930757606914237239462343042080160002054928728099258955156122531905056919253789732018004737698697323430082891209365844308100388286771845184567934731931409247864111652658309704305132330997334149005837335694475368281307477198830005557160640291340777516670670423044050899415661060468902607155212818798094552140256119313980842670813579091666825836132181646058333671038472421297606123622924992680617564280162227681753652805153453101191395890784825305449300471458040597029183817696444374118726485682853180345280354638940923410066167050911834861886207953726921403515715051940072082979131283170375377711091163755319271000959080514113875583162432694667920103432092237479578101889393887612723633125922984876936993666533751410797158842232189488215220013501229934944364682684085801364404241825830759995298786370345463110249713516403615907250366186582742047878249357954204851696628962117202047427177014273182618850714656406469664145629442340349308042654536903935614404866150817813639917146081578346048898603251504153779155698796221281902760269077229990996711351842547042860007572636416547781403039227538276512606260860654837335944025450341434452305082240728316214376304328113687883061060056584846880436002869547969712396655251110414141555623423774283049039370593432501945738260043773063930186073889932679369669014457913226502122714645727612481185894882042350611879248021584289078989095017066374912326190687677124301785215104918994467325200009882246210134602249657873044810931934792612380572359989812690632884891229268683266199920225264161284526393896474708774296503195989461518818625398303835641801838672557272759134265778574310458170615489659911498520586169529163544269104924224128129416278990157570548838010330890210985154701175324291024806981288508428693841477024595397097473451924295755268959471995312182590905982956855703532584614500568466838573474476032179817130669275979292324401246948390083994086269164215606982511743040662212566009864499301297382436570482293458905666979169456806343571780481659705063233654662530467212105057559673806467442258968902087797961191710034108146363133396957721762256525427579703867412700663464007269678635506479644171715671819020996429510347987772283233123533674554640144957225872613476635871394673111658428181251104304232614060994118177574219465788997896289360304872090442408727374725153717833266568646275981648985242458569126861237528494554543355651308183052990479591355402073845964267743461290409458865587758429287760692303767390666645652068400494385026926213626121639168225530261670955334038758798177259842280878137365148812534144144884655647884899594111708896773730253121606751355950276980094989659157418526450210038092503967029728652900385230718428913158430527569587565288442469704622023042731985967984823521607920880236332744852313247983863437116121382569781207726927857191799540115718832988920011483282920246839006105750906336056415090815576022460799359022082703776762062364683587888904446589851919956184049680426301797506454278355283938667129666429962703117939145945560826963505279703509574446886334615493331877661579858705529213576364523428223292295533544923042165447596716657180079806357872489061346732411594101078629176193230982275844259031588665071602729747959873198356650492770383013989733518767462675481930934057058974073933779469239118707886263572987048534947509179603614271446771565256062371577818967000823112795026593671804321447494724469174968191310225286303771309522647644499012895052159522625716636665624506367513694616519817322175904331054366763764995999443244861952809377563518173985126419409694141639615666686866047031350555806572889563144840156083220145350708586738987265554010787187075651769052455197279339033059712830826173438334641136399943641551195426627519630955623973840812573673746919642020935768176371499378730108724579424033033772590602105440285579761570026174901065032394307883323565377836234016939052864447137284075027094564779514743475779450625947012032872241964792106805214727388793332105693259799386241027890850028005203516299779719621853792138902647067660331532835671822760800102834125843029842440667503458227803577769943903191294191273173110669498493663324356407138833937462365059152808511631606696097246850105123197335062057873091147164517213244996532277660738654040777588387833841694606099807209094912744309601009277566414471003433371110312141179483416794412707938719251124004096032846446994885405072620122505007016530476938049632394815033580805032527663011889937030254840578044925449097189444562431531121383195630010271653636886288649490866187459485120343054272414224202214643851087064670245224138420277589513555265288679160771770913666757965532091785705739221469333855562268003688766282489196313259112775749013226234789487490870956586463551223200662046955094324974397174901919208009571106446241221748438197346162709440136856707170938601283594215358986135135868731398596480274093599278463227124465238720031825522107895432356843682066641066239868728635081413420808522828070565657106949278425152782259238850953905594570694869445493331567916993804938075346717445086495138549785600463837917286924657377993977182339741575992183763825404586230381885382664568398431798169545528343388034414812885493629213603128098651917248319157181918583245353420148533874811995736175612396071741122940631684316778695833414293128799077978615976430334111631753394135431306860041289096346255199671132079674766929298271115577405348382370821520335183952386926571892214674407535263477628585405690657796132083333269528205839060961943410000287013306027137307914991668808520424856180589785424664521872150031045963047753434870151575875418967080271515422304506390693442062375816750025603441691375617918523041466158749184268024375123068579678290138228681636661865658191728388427873681357764573169551911885628049021477561846081445687447956225461926740678640041812665422609210922934227839700613516688478189454074974111529454619529581064651563768433535581562740223061164989034671193887353243685343496485150105486023314730860914944165275680448187840256696587234706242925488802893709612372882380040631213217367795789591951020810122789737572053066103687833627314021516641022593064533734702066095846272417872589694882792004870398342079875476562250796285683020378671428656692355447656248644758877912136289853789868221869327338488035154552452212269282893173913109908097155983513052814422409139304967008976633590271305470048907144458944505858474198064880699952880512322813521639025293350156773685696202259244560106975590015424132965502982097758778614551850106085984018145730895458980019740951883747591277550834554587200793662220689122501363749609800638794702972980503936344521622654422458261228229598715118335253220550617490763902917685304843764130569274233362589238910526428140530161907060806067228516447480560418248000809679945251088176408400196445067616410650336090065070291862599916705461460715452847626036511056335172198029126975121885123327559775865055689315817756507290623400461580228053546655827189363694541946418475144207901579897352321696129395473434999884228477850856667737853158576893952120941009989161873494741165015459031288597410999348488808802424567232727316800367463339345966988924869234837396146197798735873423325188726683088324762594440851840786573438900784622444463388443759348575137989251908034206985358358040390578108897990501613039045088439539131008917447732100624455204056943063225505789676629678603825149297725266864587055508162147098268624257670688850731664974318948820664771386894197308804495567595623513467214917373234172216971143093407278062210181016837159797169499318057910851254328359271296787236918251133539544584310529306146293071074704093330687121647128054488641642596676290431979049311666423436871017211767890044180967210566447398559379746024926207396356815999150871620663866824308434296035572376458153940523598481060288790787269778602450838359050649117397076055759405318477516195944792586949579378768993907565746931242059675586756254043536370990072562127860983119928764905318793921393526839933236905375185029847857067855471030285760696995825231451833769858126069338233760344717215858025428457312906954056170278742631747875512696382468674595541492150529848810259934935252017703877737952365493260875143946472502362452457583048496655326667222899414592173121858405695005701025449399083558060011285595337889032033213587468054940020083135834200816539839772570487108849982871957383142376386591037504083567407010676467363134779477244328168737580823213056388918026879195461466434445834937379394536322855241094015475020286295111984292333512470602531766503235368344120666117609797735407115577880967726448198206321323376052069927457658509001656881743209367432086075494952235012297410416710218469695691189440842398467926822409300506431100264084687287936084044344333791532804674645613012706012805366761173266478041616974751526320716575463477799562482462071347172836178342891358709883374829559881496822039688023642408514876249214430388967917453817225050610029985164827606383689856440290281445803879093402885073967960282523727166638576605668111242147998466185203529671201201400404766371236544087800502568808286452787075842331716060331230014584057719329448812466930366042309926299695220128719567565610442306393526820181792614035861776667028501987937110572485185417091350370719079383833073229220313441177724276666472496984361250660436702191856662031006989840001139757383244984866063018144469816957991215873764035173933094566234081706725602853967546448892924919588225231974076023418577592455358113097200747206338706889929195692652348374273661922571036573085773517269515565381076774843820380189618778093964185405274174586160336757314182136203297982501357008209197710329341715904343825800339288922695735277471529201603482992305745445264600407122055140970778221506676180936672885789014055302176035848336626908606052484774388237239939305333819768638764852563198445045087683967554597386463847452309383115487931970332358458877356476288748606157206521874700035166583338515997457437604321777260798600037407300996092563406076868826908865242349033693206938717319676489217274771829761546332984580085294814684299131079402450203217310265304740618003785474406481805066564106226439388551996139386541178256281323517050877461008546758818442059269380192455149799758725388095748883113166771925074056063375645590069218893119081572833575951404089998303533702235329251417914324607513511000043245359258507704292710853597956285073212092737073632825944865552311349800214247127241232975883986408215684228699236668562078568692207097729455264470049981157689956007401896541630424588073930289481823898537561537365095085801395731715602623904705722378110900035035183115281771554223865144866831359647958963097602169402995387035469368118290337471775708623480984410474859687737004713829611085435404335207034170760480355740931994574302822504594039920017098850886230484374807801625577211617785810934223979968272261815681785701658728078020444203274074607763915985556295893140672115564553246419169083295601455613893749552535459400004252967947837599746964308390537575532984473133127393631972241510010041153426575129704786004314497581485911760991867218574089890212240543875364989789100802499437628374326476436610474119705054698859196450741610519219703210381207910278358857144251056887188007303855667893415979281982098592135132641577136846934360593685108331643308291211366940132581374449002298867999406149258125480031185474723436157275522286136234675786216902236713609635910236442893902801826693921933860418804758638775739615032120912166431709009025520575247718152099195548197492200606904620679669699935421785186786267259170487359431899549195546088063894545686933215121517764600496694597165892936879084126025889606090657014402126373885403855161853725665053204176277296904636796777231317805461528236212794197398429220367982416696817829367338777650602507628420190656180058749533092632350030824516086587387846915477746814507682740378572554008815442199752725899978173771417192851903555998247896943210140961121556192384172626975541654896169723151670534653143221612343271005514824139439770863674678671460777763495815484939562279658210050525771534060309295507108787199821077091157497442418471092322022452159278115277958995674782117645266604529122259762321759077932860071877547454116934469484143843463637376355494620255281676921633321678613702991171073677043209495148635008857275765765324213139151397575808904646286138647375314697061183954195725447648480078088717344747891319681545249554121231129461210734483756799356030906773519047882902827680670266030362213915414340630648803346716774448970949690886882246924947526569051420333475973693763439656691664296299082992825121760896755094599104464605209610913202738896310635619460166711703262148273703255788317969463410411225927388834353799679855538378207587617569291564652652368537613630138464998827320656578589994991196943197464304778928738769592051826852711685200731138308886730225561956611589374545103721260355696610698523052148974520579259616345134845388804129032123700079216878711400089304298845135090761332904842527757247574844789200624244902942507719463038382710765635802865782201507677886279506037485654371003440361207314901959008905453936228596069815989021487888143084692174059647400955452538283287565804355186356384148038058957790815026563560047404726887517554616118736478228158029470030095524514186122947273811480463037848971267595074221383777063166071349842495667405501969492805176090380710667523084354203908110204712259684451856338317700309677535312630168263606266447150562046636323754713639440095032978861063776183982071642458138640010191829383470866898032551455323014153573407819989597905597586356593209469953604628885647692631322667806464632106125101488420678360858547521931011343432838668615480835065517852393236634504624091640858300270823704478819450871042481817202394195252950017147700624874086893701712168572625719940219859554306954456861633655417481740991232906523328429243120216341917792841054770252358466034859237365095497276735646607779350176912431651853736469122828967205682418246053954968846418956951017290289981976707349295265989420003844187544301699222890711713809781802317994536173263189913317025787002282100050597045736073432172626987574967619806237942968827635559207511921048294126994469802652654030357375526932098331525727416915888585787688278448878177873859755570153377487095845569079861507902776153007083523680531089966575533042080114960262913635977471012261843140197817083720362009046312674053418216555960016488885777809069834027188601340268874060351297931329088956146795722650261785992648062231005721446118140674960010153241670577233124640368637390102817924007866022782478370776084458338850298893122875205254969088058504839295533971750511183189878908113460684982624303944953112772090274328578482808402231075441551462495406704801674103309089524116367963530835871657327809696554171099605375943474542465964589063844018085457320405225359824620518657845235228437530353459594947698462407497115795388736778082244916720332874366294773053822261258302365714379533682648562679421483456491715259670874861307390728842360920967240057663095980196618968079370564989862981993381268742843707741260556334021827479705494351598118122239401261943174080200468750450598862465407732613918840630652311498024372978200726203907467171083284034178395167061052169797181818328999639243929278757912798665276345732321576267752243145201791085857867449915380042556644898673024354500311346582494846332357598605642451962471075439791481183324029561866190129910146910944626777737600670244043466090636334756762773211618214506486342501722759189946792789605052767560739686468690236218055583702678351001296282276970838021041463561949451938111422087589523029293893084302522155904230551329251348594701379514108566181645742278175074478770727927583183289231207101980385852112949906984003199081711637865120033755074758661064450165507077961471815450653365440203879805527282074998325128467446148966997056030359570432044451154077828436628351852606259376970491693538140827641016848437459289578631514533153265198651099640311260144034772610251705453473100841522075561935180409507238410391031567524457779004544018167581736654230927155859260202225954685261614792577289037916771777356359697393675993277121514806614447400203520016181644875429103028994358216373178262772830562220018328426138977266556248357773168691617814125756124140002115384133883089189193723851189315582266425204585494241221015489003099538191524008875397303860813823108782381565165161074322146699495800627525291299409962612760105217969647246677036139212735797258546665262246256752100097064820696954377427670171846823505751964379142665618513645163304584213168613653105617923632747291881200224194279373183004268433798338303955273211742746886119889909758415089464554397293798882297131433033401671051611264116314419051303044351891056130049156244148648755124701732467329750823570374264422051005455346523281756663177275617931602766732473975126368343427662739124448047908699376479904295176788353477153876452710360146345319146477285115467079539489483919490635842952932587704455038538864538651727124926517253508945139497952532585348611604577267825158047810164260319275958352174721284311669918076720562665413803679496151627044022735272659203492570075821343849523182355316925588819928499026786387978153511152360893777823843428813899184846500003005155335243643102941768253779206824807644991872086152912520635923107623129151994466478256468795621545071183586612574457541206086121088011613308745029857931487970432719832241694729310784051734703739372646458023606096372473529530896397911472323452847042511043328060823974862953366255933812152035396687777558708990122941282899497402583883247850897581381017369396146036935196181476690717622641755146728939342283979092901639734967206552439707126840953573964743910334237068372554753070730632526398802777978636480029805287751304147133941773106913371456692131771120031654256686871028981267575812452485465828994251452492484597885099837909608511005954203896116209847016493085473285563282354312399404938198781344607864778199979198603086467753668312653402147282691583160238895474656429405741515042843087688596480071249786223990210847676616795911740440767046901888631419042413918213579047053283951749025407659629170396121494934765413887627411721974975436012981766108812154056761867763720947504294758975994634543374407341762418862484130468842585102186799274889128940605137610966653313585456627284940904564799430552273475520086240690288691960308016732237200623413400795296597932644984768547196824086918008170057810865688684285182106322100037376118265503554814449363935881910841430931654244523307983413391186757328852827305492880428227666414466690869887844975276002329426704282913630605848077207035626851142348098046691348875557651746296032701324755228418446247831643999297025335832688270189480498614807729657632668394138929138478464227760499065859369697480838499051325713925833677856166610186516461472917908127760009034503713565282614266851212357436978650344138874644318804233719448037864840637266519920377353350654198202747201902112759584938862873204824022946046085629830788486638668806824422146217136375153664118385262208991340109821362283966779218463909371213520083678089859343934497562470870988528797252663757246302605418865266500462085055725306527276883177776296318231069996045310333740995034257188049975083226776903089512251914265280730802300139614194407284407204815999652246826106349857309049966364335600339658710355802183742591915257891444278368299274258937518590949163289587856178314942260616660456394722495644159551070638470558212118086059992982309776978364819274488737415494804909782416786444778127536549966628535369696989286432155086393179797236457488720809182707277059061668221714585924581544716247057868633823404482658059052649923400264102674133179601889617745613194594938090007423127077902008438448336517225463895107338273904572570290550445906000939256673197423838766391691368599557873741239037060832901793595762312371890771796353474397596707045255573183762401727162144447737796609819158557452823884425881061466527884922734407131978298091188483146535855760667635697039457897123482444308797957881502539229253148094339409356424131748968061371056112605058151169231573394935311305726581272581455526176638655683248884234527746896794463030968438551065118296157712383236434854408998309321617952543756722587203896737746893433097852418392641764072518536578061375125500674889903254908160557737884919489677095365834117220406712570137881854297430383580159795350646463982764617269081787770796489018259670786994959380435157742900093903259850361147780356736462541387812780901901874807057222953609014070594073751855673012429748195512153572078006118163220761903626121853896198502610491969509250300196753834634096271005943356061119621868834208281697074077199430799934811296270222690400486222596320659579705041370149138007151844018533091746265571940367424172260013329837304868659545489122453925477714925485887685582394672358043178784336413112718302865112860518769446082918822846049625506122690529035304766000173183240039820375337393910269924763943039641201866961883450848802771365537042070934232014722787909465232639948162528000453436803058765340123433531990317618789826318009522590134249378937553948266077111997357505108102717500621632159649683407228916147959871207177270722949667534690013279047537177749120251051682090160220299990824243076330119004320271253932586147095282675839686891018294009941055782970278425112972851897203515824370684877985422895477450122167649321553346560794290087996555728780918775311643454657181848422689373955913491962643650618914608376293470598189873481334210834113530462360300642819270629132226037533986364333860691888760025330679523613109355208519137337791941484689560803820375673444391274465731215053458804647625303840360768897053190478951926108495891188818772820243000976318561603265654089760750551435262363876122135070304300204594299533261726978445423166690839521985381652588229521228070448346447653382255602971425772612583319959389497877751899604921754878676821239987458164050259857908237961132805401973420448628471917994001996466465496672948332693059669426519571002023992308418131809319250962166118111569556725253904161901173355110838038316161245792353922961679938789466858275964031277875662194933592602609935530447422424161930125494283869619150286875625362152659407954367003102927436113451871585688797221175225115620916416502240217597451131667774411317238087335776909472014361766608431065229416199121480793724119543362017619542520416020575155759208867932344957402401475608084079482697018680869293566497329315051122077750847124943531239369810554820332697012402405308749635990066157674751329113719039236394971831326016787128365185269870426514432017376806212704882253152325685104919882138307410309655662422819253143226152407674682028355680390919818075128660027801553360973452642753613670583015591999836432952890852212545653832433708854571042759906070706439094409196459270645941370861429957791150236789872268370825223057561189862590635167168824084412021492295050618048517907563519813237185719374456523859939182213100588284086191253699160599016747349975112323441487086211163210109902877251661213781933487185354429615133121756289982934613609935807681417541681970273100383076764052715773520167260702193037648309742364634725101691177341938328506971980204232362783195303287099460557445658533944648487683095880656881672981148949805989999624113314520268915856298078581243032318013909263309943899727730626193696297971382446167415494600548610715224112310468152362615977434917356476243849878218993103674530062679102242822828354379836425238741474480078915842470760114168477024156106461449182417985489859338728188648353260569987900877154884309819139348262526828157346293532332037622151225240041669863459908347750640343777106188541113958093507126501251044264809082094259406194146816872340840506816058715851390307068459197586626195251459909673542147231239057554965761285875251730908982087460410881724395029426894256629579119196872825062533734768919423080224702766543418980082087346143204909726457118732598218115558371117597615173673360170026845173432002062843071880427874385647347692045855739485924013169941676660838216013030444046419819971838844519669238390264347441840697166728564110122742742975924647079392115128307455013726312244319613372628578518737585328344646051715352140485289102339608992662408344824059032314344494966117362971071941691953579335988117141871122872938531373425511221029388087933293298670751066424260723887905481085586936183595037649159284194257259274197716397476970871272355634849265062385442731648493051936488783286294481225008199136401257297042916801599409215846093916193673206287079635534599919727234954162302681416139005650919490020903541914711943425402529350239203385489779341045312821054048404019481843617152388549632240649400351970228740463164424162369642032677692607673061117431470982334303031051428161652686251306723347462762312701959511944885905974909011107511904437815821701119786317483788639648526082559745340132679211111823162137476811924753727634257049513107175144079719031758699259996189583441841792336614059130795660807980111994026703553318552968551512475553538931721253260633123456142046497411313220284208178131111981220943500029396015815415553601731800208081193515392699898510673223100139184455760281400495097389295531010191252218596519104847425226241351939283298057135994876956226429303730812085386566897585574600473775364395630954584792390567715911589878360601775953207822719718790166004843188681414651856646946805034736466046314926372194020987933280853801572309753448159216520227614527692551318476033526443824982582698477932757059035091068391933494656557020928542934860861795741691318259659436688879409003315545744517247929011764879126327147245756200305097403599258133322311260216194633794536252321904761820012420474927634843876288062701992304744409586299667600508873688433662740497461124440913326848295462919780926743434541942583172419296719076720217492604706465590534969110010920924677703981424075476155261452328381179189584137285163201852851813441221422461991855527309453226228197834532239760797285366018445884055661954390550718579119861778660299966789201930478581684999239540824427720249056976415525881110429830111294184895294581983564280905140970127203324573051557058459921814087180409515238379733868110848458133081759596571679289814429252413407977958571224865910235495277447907938284015251394424087741195712875585245992590845745282668459732198088217398642118099559397940496886414185414488054551759180077268411480884040997828295400636057625834962919257349359647688020726896187643642879225054215487280603516764336641263104858516113777679068104385735606985322964900230525816394623956800762190652083319097656630782484064743962285586529011274523872249343281348164525981193133887883412180884208383204703351637246281914559078973518486585963310652242613631928924596287698066130815394211508457671666167770508650972983232761295271859263847336406740087090564274840633182272946115400456418694320250600013994347324814070698734964254577733027349405959309350516058795088516554192028058001873700592815247244839306487255655324907706781478665477655378745607874591617693803104424718234298023013767496820840784446786675025803923004908349735891790744610163480274139470669270567051774670590064492971174258227835233500471120907733709802482855029166779380054309419374940344659305859629804634414880204363350122390755124076396997539061015024559931748552440906919325757207141460146263136770273191364704904024814423126551346331400132437981274877557004413529364670907885405988499810059260288890821047755069077476168767042404191806409659465350056076553769210572958656778706142647677340667482424469557233907666725431781482997887494651279251869957533158922825645896961385926454296725954256621638594437537607547099273537231609824026030655832581024863517530274869286382857383993698691988452366231979596695842787105896433074423387054254500326596526832258057630231657765500770906305454781489765149112896777748991393739033520358169986201400971981308278523454740409498064602182875992686212411319723091758876898894023574647164818661466799994346955773276209089449092275340623657875179829743295067857884243266209778842199394068744807665977027710932348555640027785966176674498246368491786188040160611438920830518506629424837797902508787181408590615463782300257708623551638533976217442236471374991031038047536245432997234443059203865175258837497480120117357929150400370058340484191956706101514938228951174159248674506125682502419347905958571416131004835481316515198785083439321548660963604426958598312575985109800097218865242459487652465725715453090209084492968951399173180246168557673909099144656876321701933637759256698739113131065088778277917956788246265738921189562119265142590596133636565804506238731025313158607017393556754561714620970035125041024790254008836630676086319176776110675752545412771155312742586690478697395807658720913891356544664916812155709895352369161174866541363929436600169525785692206452009846709077699595660333310024476491795356408713900104716597239054587209731929969841042735525247764863215516473616997621620768452670301468955617119628741276917364411154895899314600906065531768187855276955676309651385766248889930149946205790492258135557097006667809724164643202484924413335755107427493480894924033002099788828772309573573778045676161397692851390723873656747720796115799338052177918565936282256061224323830443622370313775488619589585984553395746588038299735995457012057901614589521735790937714784820108886499743621683545403230928387528162360473666112928520788363792838752316855114638208085257079644459084128121931179171175319226716886344344631268510869244172684519859593039632024553496997663535436810238246406378907962174339664044092900346616823039340136427201945293670846383225610081642540174734423683255639251832100819747732609110635164049737866562339922616955310833773815582682311544934768542621887791875288623070561705358117187408178773979469569131056757460343018869949736812242356979045015795319308501099727439538040672605061551548414782208851546269643901578686611506905195339640806936294313247103990409842788105508820349319119467869334027825298321367107827352005983059237270081990545855799703679991540281083352974348856764186628304528229360351202887005959091869488419810045910599656916408282630631523295230902315562831554611175010457274616719620350186875218406929711663508078046583177455422890103852741464790959157237751193782122335018431299858281409038733662707428173734335971414242785908433855011748708428493431248519503022552445307788472753602450178839911111778017550966380092043279852314528204643460738383962691433815191320884407179482202307908321692033773428426951483495011350509483757197434698013884577391630866334305381281307649791374108877145529084177193423887866017661341300679978361259800196830341430459290750627607320860530753479729071174152267006680568702867257939126344067686329647115072957197500894233015442920503799419435723649601832974615813298720359868999145060758002062308768752839007302587635016957078651002770579840947674101935083500297114819989516428992297821510313414622992765419075427465615531179639944151033577074640877303218106090379130664809546860638065132111856694619098787053100445459112813074892711365381613331876260923638371051403896839034745208966068608084099438714106960219681082136405138545629796137499749469254562758877793530480815188960878305837801601787819478421612968605917846424510592973568793120726190416767324848639418517804516966180251464374168746471890301685832515180077333044715344194163342493747917217626514532414429296125418047322128521528169602275912195884699999563102000257166111453036578759462321890977270657311802536480626293993851250783543898156245950261743602262880290931492734944739612089897041612545444662585124340807830607227356592868467768483971607348584627340776915423448473131438936851444977393115040954218084115469781621286040716957867108407552318871117050668280903094810567317473046584946922684648694141125049751512590063605013730317196911958298708070200579513200904195342749218599285621793741212441661143450211655532537272389593629745233942557076923482761334706842025238810562929487447355542020782597128070315429022564842532709717693483825888979243012437149321476502029128248491020236854133492112774666740328563678277201309219535743984198283264430001361117353637013790735657945798432675903521298491032849518154116412042182106745469261302506863288690988019776619234683117496342616741364141746035598698486956765736203727183007131563763506273971605719045051321437437882597328243761712957841327836880089269241388626242417008015337382366896754811347725138041121142030050017145686989287881198571532903060214323191078093912293206279738432848323665336539002939307363090750578101863626224865116402990032878735526382398635661498090180888572596262673874808414827122658904369888303255952077097994816839089475972409809687820366906399930727484812136659892241709062907299962520372801471013889242069853429190578636094866497369151802808889973346001390030196397288358595447732931544395967484225590009000139829050165284847166210676623042458855763434573035646234354179603681738098151904117367570858673155661617096376519990691273838797058290281284398309516202760450252378678308006062387493963679919946972475891022379753726315961875749795425226931151094949176269018322951603967181154543360148569073201882409591387354361864331412792843052245164231321406768315089613059794907684340002480558110468747042758112128327762320038482013366659529863226348532670453834105159268880747825082591621827258938587331900558938062125277567093244835668635209233741458491551377728531746713930685389555953979910698274476284116881851265308262059017765716335338983264797068514936808298050014666594212979653310027757084156812197877611041306747037175794260339932619323232862470465025647287006329870193753882603833620379164833183153134340126100189621070021811690022287421777441271652793518948032541312446273460270276427638185173372775884089774920091420270140144614703268817015959622905957375825572788017423598030767094442141644353255567150035050428559339504417006752382276468733903043283235809624396189954229494171053405947265369155699079421264530144127768816214763046044040668814995119102386181792401886526768542189758313308676243845224462165591251787161252914183460784624260052978469341565852297318387633377171611321227575478545993624920869846050157028243032070986993017544966906420986695838777018991050494711601261739565387942126026472807974958250737123543738134772456830414069074015647853962734033511676195005001731614573768608995129194785965937979321640223997826685367260402812643772238249188137723740373011297577015092540838131213459913439201546273529703789172541542783583428114142807011553166532871907085898948429787903780270077283468399638484462262070711681081518814946132329684825866010838406758268929788807850501199975697457935078815709309951922553901408563128655183258899358733605422265560928367721040897470171643049637491440365287758275743736706328135770613819920089701236268170032790402039465498319819221163472594544178436487441206235530925557311062771443700138450764996000796568664448587630540936095190610301756906265225955453222308685708578562901047285435749948173693152426014379934431032325464487703378589675584582381999350319925661207922106935459053849378913995890003859723893531868961265882267646214409028953197993264350860289312293073155752970477550953645401262519013577563642020963630267733788699927950530875221860116664732239756044049077561376160939459765720967613493683759411481691910509920116765536414894388860158175822916853387078821467103292011500815079000526209079265756645980134366421787895626615401873653728401775866596717745230095065494964452732638575156901181036938190811389462458094810934685766925375502911328639985855235706465658802997659153059750112100827825562072376062838271331620597470576742064382121378427921921638540059936885481607729488983803417633717669782037611887038185619897346949573842342288194088095384781509995129910869014680988733739974387996285876903347698740524193884307372143635569939642718018664647594902737068703437623651235695489195827107367540634888519744963972042788159744671330194312800027504645908622638143312465807343661764568788086406565666524156934847436899012046418570138466746155584506834094004773116911705434923032583926262147862179381348321216364342195249113532984107500733466990590063697758076118840110259273319975889699905763733988177450270286893087477669676618065033354770599694531865592375001726000370965716552654593962729805214634441423996161856193250653132544397797403936128147007645999768361387677103049590228690849348081184933793462971956944523587304991111761312478782661161966354727748214134955029511853199258673894756998523296013939209420909592683428620032287547643924476845820611442227210983530360672870438389120467497501600971134212975600326873821624448835683051295667559797700285076514647322298737851793256336723660467174879130549883171351172966124745566579094785882349877045474919659558592339859256265154643852914415698674101212992787273209236292859094587401515969487761787247777925633115495053581658114930306092425475299054833375891940312170260398909023339958306393575311372975241017957628064075099129856810258321507936145563216249497814420852437741607498059866754305767533001590161806257589791931802881834223916612870532005258928997445256197207809653690915442686600304523027537995066479062275190592244724497934224155172426591121409367004357456759898006918646668413545078462094523724684500169427822210408792760772551739377863283882118110853500950293508031930586709479299147364640215072219733360557461597167151210347823205113030033353525457588984580002876766534104418804144005354148829376578241694989647126595830056385784154915056009399314712870904610831548294773875587392358666372399591025718455320405209589809430390218167357900688173026717031750511345176190913322000729187197146802832532326284368769905619003635215379362622100316043501462788296100691325299349434234249844688473048562483403457193462067668455874484134844969468060154747344550363910247703060567688580848291888944575957455707351723465548710061807186967870148189460909880574582742623355048910794679286857832661254530347488866162764794194858152891918539408011473409986218693497711763861824738371987223772842686070120967032943019520025892423187617486398748337692534635292230003271481523760857390353930579018034502828096560394389024993293832016110156031812899077827219678476385046653069470650563266706268699940322241000650599795930741241330885170424361092268990675434111994959063819900912559292721990985935342528798349634559485050747909502466630307167382957177127314191063242271187762107969879274106480566406199148715493426324816747808752924797407763222760818513135117364373947212711698089416253402518900114143912736518594676675916608515833800712153220203835165685059037773652893597698230830679162360906109593339805615065416200673527189039206852707862421979697777871570626041011559131573463782036145298153690789008129801100783643410053089549682580731992403159302816875857760612981680689352262486713081144368577564856198919943140321366450293184544499294157806975784100179999538868078735905796098219442164056296191955118855814622580238666213920094023156775353086398085028371423497470547502324271229431393980139564844938700184517175922566281188745566218881798435025793345663794259755178003234575114077321691802549972454699369110694894718756017793211531288093190162041738958753975800557358128619273106959382588068641163037175118922542999552754620084691077080807274152996502381719898470753259569097637245235398915842897606089510935758365275773724735182532707134173733514853423959748672891871172093623809138792315633294166969996532338356380010110505716910535792454752321056430208062883978693481000273906210797338052555447585279867268588183967625149488195999666025997714542695582096313383858986436599711350064851028588137218862202010309439919950650028544093715566049404248893495750722903307053395496276030701560584403372885295423478413680390828225830233387509359182068345541871212993264630462062990298137971035695784868988785417328336663089215487937535071687672947730768319198036080110543417303934610027063595500535855812495130846374607811521141604366193168153290001904348054768426858294113012349067471461694718440936016524972766815526378720525188868183666369577563630703136360060205448178734895102231818098793877190699452739054850286825599759226025618467919973083237224558387373084111265405301453609026031006465018457753540194290496444567345638754360931057386412321166888924799782506513300183524083558057709580366870337925414337141078663656991496218727980347186532945048508640762364925168363115525982653439462326638844380370262020089466631419553700027734796665461321873002689638122014556273802859068895827951476899480364858144698872839960872370151960402471853336076940799713700946045855125100105863403572462910716743034322155183549551090959038813188839783838007260897844651327348937839826614851504855854025550580095005381183398092296870156566436407573868217442864961511031004802839128079791418441426405141338200001809242853273664093756629901931269452091707476892686249965231338734237839421228685958585088353348341775143140685062414824152976981591620610169089615331954548621149273254874448874233172740926507265259585981395268018291943833607997985822315599680557300321023579364684471632097154702752463682572460591848005983745426091518469511349486839163581360682136345741080885108906545585112272934245923507262789136812051684994164808563685895079955970940952461939373757390625693983316323455226471146632699128433124281945488489405660925726352247481363997642392065969282802827431207905610573528511243445695608471544343157145751974978103835072589832277964701324584713372147027459952213451665264714793895319252144091523798340183497161215155634818091352319531480486280981976202200947158570418434471143779710029183131437941415687081129323166914904929381004116863135818950437712067298281375338174451853593720490331782168005304448819204598914314963053987112493511134757582615118382173208750394510247448469002066231209442078059358956542961517746758445306754639405107034858008295843651714070848762493406625659690785137315807514556508906671255388461121173927110915238191476591131054177223598922679054934630133547514743585474851759841448014056967452666711481984521195770780175744305218934795814130571556692171932431174102828219528236779050170530391687218499384247449000394292544120252566858953396733255853787282982771087264370822487647650213400723778295708383001461208801972579751455793427875184885269785000506900744388005848947506241318456847401350713679818866233523292252137727904719148105334483208263914977032658168612006705693667068609864073525579930467152891509525208862389308856344486452246024510052118994338300490413007283193989957555347134786341525775282165004677942516434184507423656584204861844428012443353705084290076597452452831693074427985230292179994038637884332102418088736190970031160515865904290331889057932905557005788994462431701780579118417155709415529590186603207946295708073234066510648458664533759396970247243919691958356883133770345047032304949412622472288634377204201418616959954055197384628872747191206798819033513803561540343609132322097769624626386413321978612619335849735544733286163600434604979541221542162312360115013869893292230755977666138919934406179014828912710889546051010722079422760627592647069949591528123418587407653388935437489060578433870932546792333874394968703557698908319208118057220507603699870174021175977222505241326873826780026783801276697331777405905565267750867477055395144546735380648150433292382713331245296343902062612737267029955264880286785150878852739334236289400188929923590672227203994111726558614993858459895566204673312440855258669563190316349118142518231857301961800601134852307149061213485889354790649944416761847008876983807933734859748873297235759449883512027397771782531629043386811645256587133396304971672034244456121078315061161046666617169993090345495864899786342401906471043550984501348364255161775263933353662192405213790423498731244393615569424483888249537779457397478259494376655600038325301516179953031622258222076536236321693620681729987526395436056987175064835286846440228157626613969286045848598473342171390425208097454031955175746865873720260848633949212911021158438794093941913581536676265818918991127055565769892310837830434045997401604511868475059851817945406569633164815438372279760951403057161240048951346519491585072950491937076923523956744305027002673285714973897808655053741722209564821482013304189665794418133508487617289356495939233704543647681185199935116084062995891877502925571664840742672935417057084358820535362059458020065663710674663061084429035264181442154368838809943272135156030104327475601296169239548872642507412312884757765423454391896463856100484945382352089256172781232670459866113213657520102294250386070715299201125708370224277864900879852167347264866951291881305056339737173871108542080893490375846360761565736052596029816410137721929273863144834291086056231119407978227840237276565527267282542043969285868223295047557872918510699793094656752465387381858274901809659170142100422245131310294894321629651829837790551597492707127467728100149437719441595107076450845251289863006447575345238291717055585986442493602513593308275943488391629497076881935721089990964675552244846110294611060331533071579329979953714415116266785854535711492134203149707511383281170996565669105358716549405686634050324225272062755938960159831466273027875681124416826199090128206542234788980658045692931979997122866775448851867389999214445560090408490114760657016776185688849602923319422959287516575708279123322714834613844538808693323425668766801198808676178877936840447770198999003304357848723670414777811338662279126160292197369999720600811107085063635006906782772628634174126025467460514091773952915121685570619379440006727340620046996188737547683467662291899749581863523423408937898281616405561361618977799384898252788860682812170088394989265313578898723837497960196826173626853508601379866211083661632003095558295607048568081232141240411504748955727016677563592222283093817880612976685147973518968277426345899767377064269691364874993592724645774914213218647072906238622439423083315303942030849722920255332422077109803283077858836485826581766801399967705899604110717213127896870034346402867762907714857395255904285489186558126554731366003926365735365161587382927108676558628341593976754734945341290920346577167943262791428228280614775638550909838221092005771691317579360014238851053199609482618594378540741848382713366390852132038290378241791489529025157721510225438054527465239599072415246217593627673410868343772346619311190696332656138612036214578444490048518810748681242112768717302911097933547346180621528918789287431005533361153758826137506330437443870144310169941899798725728906491763676946292013106266069849917044253880713909947722112786074666088060385192915071177638535164259407383505995416180689149434250501121851248213888137127337270412223853294912870915018792355418246195597428418866597421491994591164023226326301464219893360726036463617424341530220124237127287682185989322855054702815160573984531765745942785221924359175554634971341656736069902056077315365630959744423953674484152913031065380922188668121178737972367817386419838210620075656992270393324476020245202691873457904026139959580089009622648327192739044727020931071982034643054963096687882191747559772360362261745828700373174898159923612880858827189300539666102238287676967348143027107993233638792129498885064801843799583918077070065027833523075967032253399364583164272241844963455128131629836646167281629421843140014849381897554717304483936886672295656743163564294977491785397487516925578070569856619706741176894966416385927988934485483927819033463248132912511627448986261754384929481340964127354016345083221029077944923079471606264607882947941876617260023915615615418348180647635639448474163481395293228879906842816335356160397363996478177616472005638160911447891143099957929519750483015102421924365460103008069075959796212448147135900972510894591088796106022175539948344276865336249636588016233193931786810074746415780259550355460972814305855354317001546798256567338255253625159541527098413182242431666294234412591348662392596011615395713391254572201352861055316373346458002023318114556644236733545629724740475948801218224694289018742798656313962579348047491943556390829755456992671223998339684557425970770213825453673360824131324946360310940930715715724158280520415618489374346715922558484563733579048886746616878753686489516435852201666078956847898850416264929804030814946918211534007151292414087775193750999404449795880508188664400062323213083119600844422174494345287991110906376712392087416238307788461010174581980240687322613824692233534525377216748935946145280492583873819961666837610214290494199560259298158483403866505831182367854708612843527160901322135932558593813772615193650171568536508396390157417028673146073805974741591818235247856662217810443284844720212336892699144842518861627572630711276317436852737584995901704947195179072835680186548232692814724646266413051598669769492080936338927227827986685079629770702791498325314889264884994463519141208436670472943434860877230743033252613169557185135651726978567757645030568774843813321044199379097944606950314106504463967197593034913416423820991303492037910825506480161071111124903584777830401004872847026687776696354499444205660329026337187300159512603138360214330808243490336045429661090640240969627576721806828656752793153238919843453454628119884839052974555239711573459208695342072002522548377071960953645837534847808823430721010583108463425321185062874483625958583907181803161243913330588367014719305698132459431525562575878652684048633656704013167498077711005360919644391738984602256478706383509732109849947106438712226720848075542632619946180900963030591913884488427300625709521695830479895198478603438014311629938624194540289747852064805061722142100612329664699275169099246124105536392985050839549114254833835292263967043356967294322334997616568388921869051815168937604565626046059071402177158828914500914903965395935871158400837227923590804376274739229454403622787366440152018970511355730056908682078873477278796436185205532382963200756073376207675203331890453921708807151383489794867021682368179313016784482149970216860088632746449310495117598107845208305992065032286293026038461838238321478025043260606951658195452385878693000102668741466540159407657982080153711783339263502270781161649235499515284213892236337438746719887093579092612359849463663577854170914484029335408292606277408324838067207206797488388036961145559172459486325005496900806237060859962422650500520691886667930021494529516444624973852869341195680728916614594863139470131592155802690451881157339144746899637846485160246296348452358841884933834937882050106658060182808654186000476859091204301170304279213662935113265881056772343543797462451308844081075601247913626311948870291667204278699385909091204369735856826611231069976697924584038223082759655858473592266600768555637936901168900512236319760410846516750642898267336416997859641927303278348694616661333852020456108040039370027643819550842230173210655193868540594183820109988520147304624810515285939406370833873071674999996230403569332346630867142928278853938174566997359798026730799124927210204532840958459555680422993984458988519100068669172953820850827173718740474595544035958132198469724916215094918056603838984397123631886972234246457881132371350300137488417010409590664051181496460047447619137058721098205287544572933744722394358620976655944206371076745068398169386591466475669362760541851957727791806641382554363014115942242022959827888662712233773408322430130708513905514046851080574539082788356435193389660985587951955003454692390159393271112082098689387486291332645767115923301851096076304372018826020126253782787203527103062187934633135927045800632816635635943405427662184400529711860980524270950205395430397641017041294714504899129045077400097706590825825818727738371382808019303092002047000258275608715118472969597479410752630588807379679829238330211242629065884776885321069614023762110490979251068027528003839447087135658765840492616420747007319769912287692630339063430123555029511265162597461064510376238561128280885243167895897921356542368608669710648975188730456555424272620043506150660015731340811584376259405145763742905711355782955005221844563457555454916584823675659552763318379838185765774253207020279315912377867650883367031375584729985203003112407280715815314472453946617865395647548340574520468204682252462137506778956530646617565985298611732904055333919866064977107014042694989982561622885098153943300612227322898531939453721878816109967984628568798399969293187338341210638388074818769892302037477078712988656530675320862339830514684473046733232505511760713346352549389984064353442565632759010083663691536878705108222715901258455630944312322161535031787821362196683461585715159247257439963352232070737965630465386344294269347893160693387774636824555760308012651279117107989198025747680431116966001073448034447263497383095512428537410715695912860496734667472486127716293927690423759947822950728077713577136018048905791729241381149548330592843957137255823686215047105334394735450147849356608218103872616312021080702582643788383785448515898445523554505695206279474612554788934553629250457075733054630118992416758239436590036963937747360374183553750557496797937952464933950289089886803141919221065768059483500144759145855732543408798737158942823283703429081282687695970229178011159701450195555113731206947893220012516099485601222432012276245005011129346949708817469506689056838109153287824194601093001019007414213019641030935006906863659660811610956018184811174580704697223641317741192907106990992890448046985045601345505820969848988481670694003196632228183020265226947412526649845556974549243171029572278697772683967049661601991997753268527789963299401794705772691073629821034887928921758493917635927522124974272791620555768429138097557438982762028119356716679175835385649043280192708547785825395614739699074321673392244153520483025119483577596881699990132665606377565410040647191768628045233089611538180523310329529266524353269202171007323727936466084588541325240981963762431596075530130504524323886452155154033467298595268246601224067535787749577357323647397616134633798280081050141166284779770478359568171466397093665548454063569415786082497188191740717769695471268108006398624000703972399583649407731154079135996109697579363917175756873946372404088526177203346815625045909480251524283423726072491536015027346534663107082751684465069299366352466623712976124412690708836461750151895890872146357926681390485707723355909334259653769814991677161311730742471306098703307670063755787085935446847261149336460985971140753901258316442628735887897167665003569727862255767091905950448747868002474118864352924365382729681467859854585614899333532912128654571455151860381366745324642317302312060028025778184579261198079888416364265655063119125424325734205362702542992500717607012636516526637517223333211214445987975907373780920385084072978997326597357777964374000322685210640483033362299372046751876238801951186098723751867921642503858027577853669570227350438552696918923033723753178306928237305691462672003861853097837727116474075224221601385911067118792329195245501227170567358813876675368837980335266744194202877873753906269906083661047323531319181270313519497645854809456456966069414124576498843298042415400855344526575630944804530744865589129831382375180756634192544980845422310665595979470125559245141127985168231455708191773530784049092088808505144877256228603200548414722832628123732827813966497865611115273456137742419934939605739483492141460598071815407255622965409056137490345900987173579590839914330474805402097178074391436122276167172127818365524013844822294520062635141755652557209709259252530272423364533623325864726101719510612283676300987642838258133940844892971340502261223010168283317152266952612953508979645860826904503964121302660468820453439287493151667407472132077870918694268942994142702430708880056052708436728761637442923714795984067732470306165713564569345217083071067901964811022850047199468804797916151478653585695343339540251909107715072522268028880164161870121408161720559307481293198112207784182034392344593097181984565012445730208911780943981543008493381152679381944882173450658190836234494854999899221863100797820059517973384088650595318960116991995193314352802132603675837874267206800495319226868624893016545264949191288095237349281282723177680752799609781585812113907782765557986689144927594304981970829646308603258663482642232603669229194618851912873839037799781911427201641359648826103286962845311114693769146903449291885980663201107047074791876216063486210064140062171041113611853376466476643678405511000820843439300872928261457821859197885369774682488839310530017768092775786666788913487670178581763964636534718750900140819481451864487960567015151894455767556717030691309949195810452703785146726481246793611703955557671728519198159794246669249363442782760178999814295061325177992642878573460189829080430009951786889579173018386822376414947819258325966040650238239796920900959037678409415658286161693444259545345294878920546446165728481256511778514155700542803555570952487918201716333376390418011060613512995063452729170197827081647717228778655016489375086287978099820840412171719245061569806915679831206253219565149535587883775541997758408591843238661361713741510144124457045123242315911472796834589380000858692409736330848315021772315551168658240680703641601986110442733866876941000247260091254516886936946644762065178286381120855402480746165943375017419926382239287537160099724099796630562633654359245635384393240382895762416718884287630474601485661358384612333720155125075030797207196738815409889045951250451985282653911848193639760316478957129881383439469009510442660760303933088154526647196053334809061151204155029631910122169888749396736728601159215212935770612063430272481962880078396144599913783109674401476313411557308474009493321116991364834803875196845301338741091531380438168073439293080810307847000045786954084008016348115690358164675257654723316177885401433487069185665417564407641523804177738158214884933217922109278115836135663236644022499565252333612227655748815603593610513281344943720874392018562084060030646580975086308127103826424547662061280115467440690849886044800623486006596744423917928422173356548736410253506641365289921204986750101197316246740745258613380484259175280313609405844078080967328280741627974744049559950450066462795055744999625948728870807209664008476806688640813958090321630855032506366890332266513712352428005648523368121814048337375844052217588256036128730463588402911462338702158510035912763436706354638750098209272558474285158205577624939037173491049053111079478482205847272529303745477039960909447032603379764648664766007482996783121370291654115604983099416769335383437173070059870524334370254252295765314619682776059405371674257276280340684893262634434070563668492837624752477444697005788885010924627956520531889642446358678610753234510109351026469352111315527664634656430087929997253593104737352098460082224052802310253145213873947698309652337223704371029891362434303113678869612739826232310576388329916316035895786119458786094354680835640921136684265090335057371471768265537991965071969241439551452828767489530402674353913103959857345671509487144252849410365293899543175283306661613271489815236882535845174847050088362768285509682094363079325336596760224134222899477905027205649762362984735853771372736515855942032062471401533687563463952656725431066609652885459369547965759105960164929508984400271619268144427855629905923701209433075312649203886383451221766717254987258629174164500159073283688798200507735276538322191703237332070030598070600394001644617374757059994544074458267392160819505971596742316838605373246270439105184840464670448384937287766366197810492384089046158418196794752064209825319777970427570881780587334796756659964748900874807833827361389288520081248066642660204819758276944073688592276849584618786352013643582993493076082023318530065547844978084860176797760691041234800701134536186468895855774415446173931018156108690404190637654363944646601006064811623905669394413075277056298197969556160742855828735652855766247798615872841447475205702123247716160659061050092239742658965404338742294388986647422971675076469949535452890278350121944834527945845061630683969040468580649409863402350743496920033991050804508886439479905663408815519629502200619451275035405500802082164902530989534557344646770994385782461315848744185068094438380079568538754867906627719307298262575466754661546423118848027459895100542016332830364099031720593264817699167701220118853138191324997735141585594454536016271286992319937986106307493667971115468289158561341930889003034677610548995874472515291431899799828637643577817515351086001817518860506380434269992236432656460867562654115083728529773989722378991343552306188952725212123799424823095831515406564068002326255263416001313546285667073689287818352999567819125319026281890531340833095854690644534287195981095981847172411326713735686892854244078302928665561269544713877266767358524188722886041707660391350559183124408531487927947249360574149431592110750018428398733604398724676936740087635632818289286341679603497107304072681904394619699494331479117498944591657738341685261803822715800974103978311988539078169138159286494483387120804020330454007045487027702347340487708971803046906757702520439439890077949159847293547005677862474133813427683230859465183750312057062327856606065614039071215991376297957305168687677240143911268098719345787575565775537230444220464410195981947762957677053479879360819615185958609578526169583145875228045256948953669065637099883650423016408346635052027740952616478798913544649194518725743645988218587154710104701463081941290353884323911274944144635142729896708868137548323450625211692245128252297355415497769093730915581475007079684556564349912016096462672807543882044332962694941940052075961121531948565475183260235310171652480285033264374004446577293728406899321829335718465642793645574254038292874523167203056854718361872783571165931124305393061341890125132396401467733132158800069605514910635809438967923587435626946211032209124068674373078263671772618761679021487709022761565987824066754906673808233475396467777191171717946603335121277209291890334447886550431478556728995806723272087312465650558683163230538635062195075272059559774823475112708099710025043879022402245139867469233066865782599778860836646365421323846716198648017310426240972953388422517508150541641207595089504455826317649945603760594863888330042644361825658578083575180165220231735895811385518381628856269348125414760859779057607636571360723025930609627453070621192362098169246188112389619788758203467138922155195815867192929279206950284902623250007892225164195416787527103408182928694448030716937729047620680194445816103206112512079253756156498903583941410077952280267241668181551878030055956268270352352360540236087454578970626518966918639663556964311944618237319500739179126250865592278820108149764877039189954677555459670258153208321784605119822559621320654323823399028589005822366846912851166331060177891624057369222245751645903206093507280244828991773191996387029127798023663434639510965537306678469724767067359683994811660187901919027310527299302691029504765828185845093926956672130788545133160604412649091482418099514407192882544300560553954404857046123010396769248705456851921624105989826977075962677173916378959239163117711208580772346983418594537059848319571947140657034171107461881724431429355842825410598824358431782930416410308182989711085043769705500361099738503753510003069283404690176290361348267141090983150813891695677989755179327514432790520495278271156588042408223913181634337765296115402833840935559884064533459153117878799427237497527135317866155158237049214607285017257823000544930959474976359149934432848635733109122142271802151734662439408580177381470986551500624920540348542085677330265407019323381121813867868588086430579478456033006632214084327885232393996737369821009805389628204117695149469786457431511096683011349661733175928829163921228200827865580537077724998848918168325619921429476071871394878473312471897558369598925373860440300910792583595205902405049329818894258530781177969627721430168320503049542023278327161272158717110432779369083997817733714422538749439603165977656272412666523900671441459002262301202900251874632366248419686069454177514656108131096289116625733584070130259757652020139991900129242787681992824062325409939207071495026732499453957922575486643758749868475730469390296896784112594903581676377214579316847227101969454439217316689388458440721566815850384051950041809528304412045058293581144920731318071285729943800248666218585959305943419454768286512236177583417156994080523737103607433148756318291408180850332287861405699882300959319394245248810588921207777815117170399138792696188336771199069843859502742688801583525809140671857963413273221120616607138975905973939177856902526122406619967979610040418752675219468403034104163864061850268701702459213012867386083613243783954479063928008475166359848789661634866681109243525807892026219781489960900251692540716705609638591291716819251353107856965240863007504992955222171372734794988573612660529566798650700171443506589717605478255362345682242864752178036043746303317980751491869413577837993794209302881039985192346871374929960576535792201210141450025102969822779996196315346176088566987503175568776908764327666382505522395077263069406120351413313850695830801108776062055876874961281466351269782472460059190550807257685289714568234921933616661198464454155691554296432895117232471011697547321049870974028568552540174266728838786468310579471119047513437569663106309950536218601013273395032653875453884608122957098269970285998589418351229488373257400183493099152159770333098853435850117151001967188736943098419711540229453729373304858882993002387723479557271613833239091014986126370813790105627161597351326931852977115642645230345694892335020206402425902445222262999954338964399033853548778064283900349612746840802991575650891215670177131109109381661442248812588477207692402662449527390396330924880938750439773145852499951179579310988284368631857544486816751118140863987939451825227520860727092798050154468853200210166730442019019668249444092495809143975066787539593477803029922904929144699094437835211158464170385045685138212208235593269424310118070645799532024228876616464951966899914072974689047427102674333167063615334296598860232614949187742287727622861043649121182735070624340502239291862518135110952132836901178379333525845320974406291756325653577462516316234699386447955273484151877379137740640600965581939431801633961838128438702781929754306853271906838989418324262243680718678326940854340413623548656968951546049034876065918393168221463143311283373058170058182225449608329089654555809022047412246567261228253820191762567448992696099786295013576350195545444923003088375931707305140650829925188684801323374362540543915480424672366966572553566679182981354127850119818956217275718031848237806011643999944507194557092019849046417260345516957863967914874388599765509394362507974069313972215966668242982466551222658204014859341405463170678566597224650058681335585177660254943054978705463659849474494100132213160992654867467707510357176761599927404047192994009399575680691296506969326319525645567322402416656844547360174685267618615608602377569910817832557413030642419968399453030085355284023609618285559584471627661833277605372658686462477349480655798218579959015218394788374178551562712616787985974332885591822835270497496094106726824597901676299090026101637824687425847028438187986335679859436573430304005704621715396800816759922030257071357524780779953039654124771032922920766343332193796785774866447101310301136057229624904911155855560115330489881092532637690040685855230543729232346721541233964274962673449761208132951747943520910941330066361318448492783299739844670826813946760442551596302817189065944980047892539687352542054350681383766966893050322911850356377903943250339021960215059283437873950154145729241482585398231669891544580667796647865381198015813742045543411710383846528295904863837746771214082396892749402238198369966870042635350397993638945242935315765280820926196443985924230702327067294470653528894981758118527667086143511771133151497422989197943169791188887582193109470778651768802984914461279769518560941862308538998535008239901029824442443664605736615322719444088168931924824523301361277284301328337829572845890376819755913824067565924135521042483177050465913533993304479125106786383826418471984292860465722122364893242330310661141670675605500977763570511004072100151463510503294293473029165091963814432409630895063471594416168806836118628379241943987077438122759754609107106808091548214235159161511247911960980111489027801460277537866472018777027053219347817622875605749802290439021367815255990018397809527212105650549690394659902439372274836670311892741412731315731582357998720196777280720365606641815230466266388778061829575165242171384813484030418434592524259126439148872805589752038638218080776338907099034865526328509909489905251859349932326796629701726257475268257054649359572694417328695139023129756536644343884699215443274236994641198483505604384469743780555908517630182604747079775982627781916600462106948765957976878932151142567293353034968066079530408495561578279910284546557706445062543431553828902870179973761590052770029535330919643096214271082556101149994771565584461479295644796334389544487588882318131162263739975573726065578876468844621824631085868066191824184894406730825347157428971994441384473687210578809494844107002642873673617613325620600900765000276537441411962583944822038808865357436946281868519542609762831713969693337648700979571023078866170311911015982959030476556938312051928912248120581301454922096967360912702903454109136830278227766161847173009023872417570366717323216078471881497246937476833498880796482500831677815012092962941318061649305531583024905912114921582725053367377657407740342176919649297349336143405702844014363274823092324227381704405037162666448276191951305860942023826870503246566415715169648030223372946112734093056197512803548709754794808461713258956879028435221097243682257776457736384902318565635619722579851267159349290414811323342860034027439737460534973050867118284714628281868436578761660813201568410346463677572658797082087292248399369261455398138958891131421427325577888271618879421871141353436006656454536402250552197720978274026462180175440674886424158140138909936638109342921904329199259130082857892200461375318469942027916104996991613684563003804773123356546675401018956152720863821620106685692646661217531728937455676948924284988694783554690768459380175559737842081584507967996698958465256248225364141003473977905946807203838953024661647741070949086345915088865212323937909932089415753140295471903914760366362555038925898982443255024590294034674711952106921562888065000413367407455063249159737877267822037810394771746036365080095483922316203734654624276213167695776670470310381983432590748016955489319662897813047605488353331107873321579406296775411733548527473645133036997766156078105859762746502926226753176711780050964466354727039259028932827245409929652374757868673901470404228088522860809561297802751406972917051879809839052414176871442882406955128001873059889414579494999889512018991487775617588484856981445641296862742066419533407260918274703651924926886442175280700347351938903234125937787269247046985266888924361590640112672652598953651916286994455358674165698582710607166515529778598226924185380881454197687444590210079796996058152466624656836191360825244592019339432436400152035606407382955669310996245645709696030526908917457558875219181200241402102876710689497367009262655951898683946886289237156245721038630370818500436951314570467672955758939912677843784738345580142007648375330127660582006859215337072718298765450096021257745211305103668922943700040749206531658889873952248064925525183159675904756422855917944571652408823874254676586491265050964344169919197787563559722844009734066294142891802453966992897890217788312522180050069868888238069582064212236008480002908336232330357344777644373003735161180226172635396657433255747055732187514472484175544659021390429426211993458496894277804101066288199433085479926848171989042873960331957136710417534769651863356013630973675165370600289242001167755893870199997985366978078849864541770604586762193455926460532355785199516215589404027208912848434971891644203668729795665648674531576596294592317899030016224819089617488074157641094959742872782923733729076262840676301450349399183050872317025671376871560484737404795039594742570739498392485384933266513066594146687823294853348870727087976325316062986598850697273895544338558252141464925342497747986643426582725517231356012624928228141271693433478082430788215014788821715510721253708924829283947806621390861499493597335673781777108364390507884557607300231801302396200469258044715816960355503781471486518732802942531636354751110685131288695001268477421907924761698141475518979714534610361175098933719868973875020654900377535888428850253695801143435785118003880130018962598043737317234824800027162272676131878381805928454496832964209870715229026555441931811775941954057701313193050806042987577365382637619415350739328603682216305562867797241373021234472264260545854886401747554621574386289100860034874035486156378841099814540209579210439354124147388691197355057802038955889142788710366119927949679411325064436905796384891661046952173705986752436764753906597891890954548688190502048784496275120429375363936618385156587244438037577013564661635239257584359639900243706306653818252159142100896406794537612490651471555237640618958871240468544081535902289385911885674258115847609624366072498492045652909309202613345157226916815597052978137520158211709127671689686621624617405263837212037440448966910767471479639475988285321667970943458331060973790723692528726354645197914461750689749300381449420513558307652012601884435837323983664601019054920959213651031026205241797744344538325042789168298632095001083105458153913716566075950079637331478833066376530782217599826676756400491966344902718184241637414111295978446311398077868427284471181443676218638157709740352383110247032317401935805706084405827503388761596693789115016244135494067538872650255934944267845963417745567929791744009802344279339428274764396462311435140687488572622176085399708227003407933376353024990878795159865253819381549933744613530584615827938578010688862645272018399476020634674301530970195589301379764546356197832095474168342094905359279864489994617432981825991773041111495448116335096787539645142990768493094016106788783470593887774683659840864384317567692355609776831661229202100384508357172332321176519598450515758830687819730097928852336292625687207170734207258209062176764986045788933514247737880833550679948458259018458222227695745241180051030947171070526213535575134902005561523450666997743651657735286507301174597862624457787318721614189934087372471661908742692389000399775028705808089105678671456639466165486230775878461479724066380569773585965883862117879676891143742169078432966226732593582208378993417914270993651417756209431062911918543296736244003656510721043761768518124067094461386921576356230307295040295305230188629681461016317742919976598243237459852048919187089790547623102899898647177376505773952968425169668466424960333625069237142238691808027985123324772616152563126378526639781187368771528397000972943284468331290937957985718540007823318623593270078134049643889661884169672702976442465224166370752418577980331415542639824873091607079602649348502814023426852360148275397880772354192228402336054750746242739550119874781226748002217944935798192105207804319805649686422633958271753281331272752988185375359769645203436717859793652153229144575186436682453854636330125266357759975857472694302779528352266746218824328291608833812372616645856050202672563695525448614386970282350974002445127673788215547454697417126293192338931890482861442052190870208793500216385770839415307091692466532964851059462013285485756165149357317672521954286476077211599945320778118984543396951493752614822485632471278285627990139494089659991046244140933674884566308084232597765750849428827193018194917744628289227234997891395787915421182632092932784125539996911228916710364500661543420580563200809215787948289684060370866362494434149979679742661761140956193402109871959589123195424791124526545181800433841453426040107735982152776409953188798040432075373290921291214517477550993692374442179260216646451872677005796847030502967815216038844921384019693296270152674456222856446607477968639117733838640803308863550554374353450120291155502027398245404981942525483770281627153897888273392835508669985483648457106193587525910005859218124221922135818258061885049960876293259125728605270468034987170982143634937973877212418544996589538143866859358605074199669227582114959076932362602131511498318618803200039569831889202732757875053342284910147559185291128145946048078831004169073698188589838775777503735007578203801351032706846939584922473205125613742686005507441497985129487361567649660920484750554197564337499768658634588347726578949865759410746471983028078438996023103129487467318832837285717205906115605753141116586841779748989516727388310500974015172112384441281829162300486876473484536709328375341719220353120022532181460235579266150793370893454261724014846108585342551459786797544584051674077415703626656243474010763018611541758906591034023752198281987936819921639838127560677173311082912764422187489850094447544699554677123751379665898662997314998182090393142826970070679030057062444485111441588478774625219451692291877606049960304830543406479112241362829021998515322414770936617295920666065565135953673950873901005184042637891309031501471761495599510961526388131604845313587745177108793132176026338930947577342188599160009954783469893253886800630101133687180092783708312031054404972826528390005577156412980959181307405584316247399704980224816476310204477717785731320755209232131500347940777607013767665650807211659824017108379758155790253715547900671126087118772362665299369279021802153090997932740348795184027420385006831296095725178049186962640987096190429216288580966161810555930087517806034052142226197411360993890475258885129499054438752416490591742089214496090683081577339667152872787988361331422184069323700310711385421057706449376488770735065775332322387225806837842757799820724422200518100120687068476088905636529722096241400726731473283408706164443627323729503848421659537863019622085812526393330227080448609495983222327890849076962714775010632748831449060698661942687737175576843761581587450798746992679657667360781766588281616899726694457902823795634411009307276047500665411670171708998277505340362371623158278589968585811079069354984337629688585261669341685125619256689312190324484572340300233087196592425116170932227099183001033452246600652835919304968703513827847289890678855712714112000172210466689113422537529176830757226019235498898198008147208636255544051420084497884271047117020311040275758842834238570957747699705875612089978919088063475869118310400611172700365155984907998154477667217204428312075447257102889347301584728923233556948249045123524301243531837472913374490528005861835084225539577922805611432979639787397262466429736292360241424899413452846704041930560331510783712845120855643754000631411305228239379764212942184520066265260066562433572513982881786451179139054553111066018146227621454030042081004195930296612463267968273127291745819617265843627212202344408518268000240049150113485933447011013635489169355111544831158513680626836460331708109629132261623539217216258437650202048565549923977761781660178566929108141713458464117564108773202774556213002416621086626968434307575943690085810384602916096218747120163462108791842502873379019570828274419984954546036367273934557957069956950689201842037035913252463501546014156259463689536157644503247321751411145083369011482491093307398075041604088787121854251833624849726729539181390700650990691005205720238031836565237746353671922457527457593109162946527487624913991586368062682115004964922792159776186372484682174368926235412152929866736188521252074149224110675805631847431651801403868298046518614277368331579313437887261750869479331036624390939986059918735695261529824881663299478096430240071518336245697241206318697706241531870270173191777561684726138068050687869834972541085556930141575562389084280177253328757691687032207762993388595262712933148499130377406936406909949919388555363086691425603559134515211912703424979601975641822514479485346797295169079905782966924114189381873149912863229869110812527469287299193083087352450468462503992184818310221521928342116338936644035164708235833660735929135047417869139333179099443897835472629710254258699846015031409003107167007590957062927578902479390461287683992114831051218616714127535044725130575719588540579740257942042422571417472763882717601229118512784761353444478231520172468896880861676097677771038336123355934459506907871081945949588742558967594717847830200348093756996615711885095700293916277135468593341976508229053483115649530283229693786029048388898851020527327774548316299612877453086023380438332598102557370369908416983327171624775819857357685489232988366123266826596952097717317143106760085550836919117533594913645346124239770305423226543390335267569597584766160150053987904457381283324193231030947678577684387967369742166660196875146204306873632939332159504766052632586920899832927453655391721622292724002082100954678427034612513432827918355441117980649288412387339571920909960672794570048917598978375302379128063933756388584788232054835204749298784628940144700832913974788173828797687751586301812028963063606787614626129597272327631027685811385359980558454477925318119789122761328689621063951496177920340639794763970306819712285353773192025476281717744035383410221954992139450056956255931321868758456239938187848053572158270676735609044205788022339400626213882615406376422012286611281641674510877819009419589921460550555617543888728248355762326369039164476692338927747279061226105364854331405521258147808472049671796952641285203412702236602492817217563682443443573940436848563335135039204455150646576465363645270030278464368062644318387507711459236323889623641445313508870877385647032517417780838593227294007562262587541192556774455987542631426562089863638504099686043964489745240141305213928031152114252217862967272890720457453958393261867164863457637100085262110008747704848809557379695346751094171708125256022383451179630026952605850120635091764141723134833453814382739290847389068579622052837809528447657658998515375107240940472888936029722314607498293203242885439459938362007016563531974642761816614975958741189571958887667910381999946121535352966823944305531362233099173599744636387790526051905738394651710056490133715311734911032357213393542989947133968044287803977911183780463853079493318179036132868901767310779793847573332489670759276310127122720093456264358140959446802567084334269390953690789232247115935518671478470287137753530717774141627341132180929497761402634769140719657008917191332002402586158719711866721891633536093769283415027594224512705786650666704817238944728271295284263616446057344324652133573192660640577947230018468963440611012110273959954784029057614907307013909792801726165858488699945351899821121286661143688998096294195735979598265883468120075808394240982044099672914277829671664144782805277010892951954645771297081014583978080174261425592926533864026597694751640510295088077088927992520890096930591828555512027499226997208876064736707745648918324820183158785944630741403452238085378552530697701933901093468739504922705019752370855393474866150982527842921186703434080523498143077648285401254332155921183116905960677094491601627655010176678924965444780172912256365025987518055221278682066699159292027189224249391844537573012983413955215914790237871199304884324147543179137291475415653988341972857229349677982172451180628061086455024471188351848633695320729455030960746616092358992316794139215829351805461429335435046096382555020530224953095497715214807276186516959942043291847134728761961368934808183398067520693970429465315594192714175192912611131594557287777924754851416560358882985046224141370468121253323056103480675629967809347074510415365831712971303644562085238457837023693133835676157327043830024191995423667749974206358360689038186341903200357137251768300424096083097097231497231624733650374752316402901738899628471989247664372854564092053972544161938463200210423232140717124751875762836994680325805041781241026077557772513021911084545561866568862035216613937867730799490481308854140919826807903434806658361414102502861323209575538668397965265648498078234428678898581253048575380501702722643600668495210870108168222333391229396069956713752269625719526369830302321736278898016758248169923132027690158730551666547282271364545104221207678540224884892625063618100012672410795591782287839581505760145929830936533848023901105319812500356627438025149101524074414356721940560957249264299373280306483694322812607354225168692545675634793132148556858179971381801712762477954933175939069930858284112609908036094796252049725233816888948027511036243414622005863982747447601713600397892392681495541400491349615564827712418423030736074747359987261788214984103578212973531870488150265325945356304616191099759863238723546563079311530203316318081376231517211825639637597681095318007218256730507312341123741103945635333964564665225029702101855649977545653541251605757407224471569888945979391898390303197197792417364094324823146673135626533908351596577846072098449460473620976498944885202398337653339268030969009823855831410391031177376778121305150908400583665194889824948051932468098549215311053098190018484695652850560034381879522626421869760705853475392395615931571988628118154192284118619164510462429810399806541942363523590004184698000621071612242876245483158962053545125183980589951408879656792834091370614803909079276681660939415882765420884545347948738678026187388803167148913471968705677052916662052523693181026669817062684774831231891550144025203130027333082621951573643756146069093637253793935442481010066678617394760606125423469667104885933635307684657833613953328662806183951732947527127501677993137487859162349719999048535173480348597824627895964547462583167722100082773238020331755576368402512582360126472372543888195000477005097391206345825730579280228880070540525817202186629770688458188095664311774934997853479260702819771672254454551631104210796180453060051683672599116925615229956589004830290964903127306713501116288378107533560027654375583594215747594885451773932032263415173720261508546127714898074806919755256022323026609654959328903365127138603019065973022476686082568043483486104954801500279448940873301405836733566624200812419255773797806827301808629664023821848512770868124822230116469491473100836442257971847605854720123064027904885427329652662219459776250538337692016984528425388195232862397575501304843273499574743829210531234906524084583188223319238559825955884417284164730881684732966856658874626384460812606828535352196798731470596907747963835324130757935805614381357354617295752780250623954667458054526829885823842966023104803243750260341536517848575146537994307354108132620527241142340112046429953109525810003379629814285619460566905120048044560173904839384568289970537803738271285311587554136119633133059805352107153180727518366285087616761948965371163116286288731639403488707090379067211241621358148654583753299840762711026933264553744653387715525794915553378328367568862007520058040255202078114164491297589462143555428387561340445469698759687386940473471417907744508397183414763399218356162268145507267780591582101772215628450580437867046491601773851958761724599276810899477830683528465584990425846790447212804590908564796590345933441274136700767056518780349529362164602082495608661056116055857159590166532526895371585590931517760601799263125457493749763512916616315887638037745025280731688564291115386452014084615658824300554488756126285959490728490747468543035236562167493184206243902894131583338607897660995930651449315278199592125456173299474158796269706292477573202479419602370563489701740079097975936151542238756387971975823026755404426238102096259789187437546098294063198333770634066714073879696672484142354250978039490118081684029298242432833674500627442118048277056514120186020322959546517010672195409070839983947581216198897225900396876151161340650713398110732473514752533399788366853753375819487364282631768896549335497061696441759458674975300020617902183656678963977362056515119100795361278614162224963522369654800719587235211979497550104702869637742675711062841866178815702637876445096303004115107875044386830604492373676732264346473543465145858059745457742659617893899275204229794133862086817387725347631263706886312700799695713728753607516237119057742562485597556438062953683875163174408610364097205078100831356971597699315825054111311731756387582181987980951831616483952185147895398753210955204164827608902722279532208426952457401167906383160407253498953525536876315832548872091816897911481111014368817202341176919015863282746751436874266051350846293779929543120265752984439291891988059560908496075537471856039368323346449589671239305609072563021196724826819222157539380733608590304984109261367788231355289106774835760507415808382694898867645534220028688685102626455504718472350722610655083097162027401547875507611204049320535598524604692972323050314877243243791453053341927882277271879003285775815148856390949501065696172832190243874929922885849510686645545019192045943314811095295507821369184848259030470722247515876766228276093207825308387569229886834346713579163299249522036664022756406442120014849758311256076729990840759322886433467010770983090843489333176252915538380183858208841358221927835413735249564500904081988459042144523598994720788578239679090310812667311862108373852014136731223344605167275306928132956613827239945587422551390946603833740882512004190157209272820408436312338097421559810707886651809874874498856188248686963346462797755911722777002823107982477514122766836886214538517200229790190715057902645909372150201767154047982511347090039290648136498312701611282631409061897257651216803668569864776646608710550312028660396778285702792769972817530452741250531270368259481768356238243243602781762438978368782631751349712220004531003560790146222918953116215564869404472058197076050036935447316722966612168410801572838082761317292309247682659374130433441283595512495189548608788354022417396045616060877112911895840159658157407730782354259143230535220047912723558617217451411015383497699296929707890191352897420318197560806410521179285626168119943223372266335665325044618709288704880727125938778435391258919818088855874690079157587979968218531048228583229242154320641488324064184070447736804502263199393464224279910532389583876438929185599733612915535183440800590708913563959183682249312758003784547345130194649764093260586914466005231364875815853751011663811132851478852125302421552898892482259894435048978204348257955660777476313203424494867624037617973855117704727597370735214499430283522170807851233293706357188080775937651574885710975630440904060299259691471312031665922106509280741219772874545807077601266269782755412386400033297121837292260627761128816309393562481633991837741388174806182927542233866926951498943926088362213675618038892046672835504703816757869935946964677070597080260254494581200545326592836559108276778625180539274304175546972115260083172237886707045985453897552510716839731875099163172306037523460226782269599869654735308094614270373388589049781547962895059107022461185867691716989542463568759494778107926575797476207287095616697963792034449027694225589402868713862560801312101749758513145865087127141433195985488147070466338946320941043716575352358165106499151608060519135052402171972164358569299958577865666516845502518308831945461825556669370592246584175313149117816661493533566124808745272681539158486690921116925126253951036294079279435235610662283185730855199207594557949862781755403798883353131477185070136768932566722987904251178248665507489546408720798316736121920286655514043120705665866192514351663139690490169664451308879827435228448574729726582190996095370304862371343513674977217339749413063991166351024283987714377651297269426450026765317261873353625988620656117690880860207617607951018318358324073906293856964968895779972981226896820967420070786155299553534042876613325240950578298778069885727046327585754406728284233488564149708236650258917783038706635820990704313380929882751346729381477862702292311976240204282558640499024396608276573771049212235912288024635934551541820998144313409704880205929239430864234937996541662027061887694144328104804839938715689769254588260393462731090795312152575191895759949157141180776883795518523191748266908268348964943334668553437959811852346154758936135123238450515657666501525596865829062454768518291678573185682551027289046100951449414899898825375108373647707205467155571212028550972414977455078654908140594919651855639981140245459640050246945992508206095084105469049862043743856485788553672067546476317751803906929896799209179756566663742883143228588162924227231170101393615816714260184079048088005775100352435289573579920009826646846772923127688872338344931034466406026497384727106891940501402479368791011512882553863033590957704808551709452837219250388092703432955942797939994226960348964879395336781406792326160618441584673349235406361651114105638127534049881239848389065100729536013968808367339460768024402837204114588015290243875371754467950466924743525284203906955082114453915052955054968490248035446731084997736635722457600204488140746119016517467726262251613324983450509334123973539367492119444251054959131474415483174313412452524010560454068044762944328214823118536002744269284991898717216312842489314204902773363033611770710169357697899621135934412382027949066797227316974095381733950125294938387832965873737858450992066419207745112011009043367642248831898783506072839293494980814551295319659761206032394971560326453257207780810079096700698525634003804141303181272370391640542902551347296771899288194144678028559278649466153299372855729705206896590718559459523714362831000339917970482052755321828503633810828602346414375671134570935977643216233634918921352907024031651092544655080084566617453656541330596013625727597564764114424481959804749463593363452206003012075576381274760146912175327516524597863760737846986564956039031486326354662532764227620118091181668080721186937733725382048562167738888487020786431530578457890783109550004732439195587271331197208864368657261647521226348749623359859535617581593202996803571151040514609765011225323625899802425340376757591262139719199561271163106325101100232250048452116078244270521087471323560975712912600244489261987155854696552322571097052062824789284176041058063962238616844061493808535486415101210596621030020069598269630686009293331975210349157537197587415055010512849964480400440052552787255330784266361538707246720875142784337901843126604201121002769781847597065347016947039025585082754285784781997058123385548576695490969334657439142332548513225047649713833461323359178947359780751552961860822608082926862220931632038777263947588573607009940569777641395052354883657364442119141470850536661285317334843329839539980681231967758409052941619508711010427939699780554638779406449341520962890818730033689819835979583049834574017801310506071922160390246345257949841165129221516798790054814512082206555258316082011501119459630659782252437886474351175433986230769439575434159689996044746793189080492671718659982715766626666426146327479076568163525267788420140910125039069113346909172197733246773869005306117308013244550960395708534088745248837428805606393149862713310948589831401509402274584241809082669202286450347620888780202535375918984883954820776081818388199705558678499672286433161628789154324084677208301545054555154137595260584179765251401271790425151507845349550642232778758074372191521053928477062827549925388314283809585465553136310356686025900527691283383426238476076108464280512229169346465153804208336472330734650975965180578330037708005367082603698953835589918525518971874621033380637204624945790739507377645205261770859594404209120034542944168154055229085928863690431452942593833685731933186942097435983990879489581194003405168703444998453939677725776804842948128579832878317479034871650727697658517923405372156150056761941563027325605434131452876405454584603201296155958127655399702519467014042352400352622750715208341961732998427719929310326250931609622149407055608271202014498548275323835073481687467094315389582600810743361463013471894365583348512803806584233250444843669617725449242075570442303509423685487689981945858764633149287661653122138597307992483765565111671530805429859467657460355766791448808230110688423304145686124855482988961407836751327523858187461176789552431074713154114147477446973057360210436163873168418554564044697283928377425722797409736518559261899744549934845834991846457684439614686843348613989174927031681890906216304414979348867702556214363158203304569355758263260124220882971403766379468697974644865136896850086900325130648088399198449415734636016296544431626902693826708115158120917068496154696123227175352177109049221202569216407677779465284853312994946617017178427832508234492959901188270450944763629681228291061931801570412276802945220099075451917701718357244166238751262526671776279796202070321249400803245958343512085352477524330096065861691827271625441578796060808303039551761481844591687603816001828737356036255931256358095813842803003849205022364617527558467318882490393472849243349583759933557808830939843969153839622940353505464980440543004069649049218068070633090185928531216250065760545607824155957758419805041032857016893535658180290422305963110681398009952428995690627643753243009947148757553308419346352094958929032752592108871752259063733503542075959080650319908028467052486975112214836283784835676406708890856883292810440165340527055660485247157119238051346411960164745224276506262915174371981409320856565639181601829668175572668545488295016254968803855786945953473436709508385249692334002192791541916990611210874995532990832884409843612991600416488871928232603114075450247344361610400052658399342940946196605883121134018450798225659977514999539638383491066105430016631310889957699789275757991883006596598176051283854609468200582388164409909829213567799177780358484237692220524092866499873362789340623203987238019628181684408743138738514462562957699574709051931084603553784711552557212752347635458398925774699009375607159148415522968351741929180812157644322446464467182006184075060982621588797457740658748975928529668682173076062586586277153658047239212723100788132024560779031211448373772876186318783882839028829482469617456673700763355627968416029545607097955009548098838203042804499564978139178518145779993346729487467181618479954005114339062649570909423734036517233844739904261625027278794714454021500297892462731867533981106592445933858546200651550598370656738390970868785083029381880470581004161318649174960413564452336355997184241735730491644447119502407441311273018402487103478416842463276818054705077215140747495550164594260896495701854620587348823397615017103470298234930002798223641015683390404703007893549197245138242809075270121325992184593799586081634969447293848088569087218237115307279697167372341174160910069052985019983073109588015612114306935156812700324592411750311425283773816810121426526337599060827641789652613983185408586855769858761679984091196830397309437122564968940834294417714026351591640303473022606523214346206473491175833672388783994017484217418576705990026145124756455985893251037269827669597506319178317348855125246915176660224006583214578617903404678970416485056400140223371655731245678067075949630524140189614180811286826264577840773759448789570458681745296370292278012469335344315595624534681243702627762880095651969337896395213069270903230044379125873970354651895080560239023579635821696022951643074786772522853866605078166284106220855283946042375784737139069869602533838866198299627066632033012618867071800279123476143713412179251232938824677217628697552698988926878707126684830955212827321717667037749654446850864441651376713895839755270002903543789211239894431401701577884751221726312645490318763264143442775485715094186423242942357593149238845228777584534506474341345304093171942971476980890145415624028820010517539534606893247778868208544342001980392831271795115248786873886263912754156327842698578580313655778403936200663708380054416091956170663011119866114161080942877435080821387407345583112075919933839208374022073876319191177553623273531191632813492466698708007291894761171385993041593830628615980981103418835572907439531085704558195185401034305905184567581544495681913214663930987258310487201043085889696147202164150091769417582418201375761913552835561036834369374171067302908199827032210232449075723737534828382408212741456711474431869035750683091586804818015290735378692669871160075206638675232075962771799846372944009047601267878751862595865946363227123914983268982424916025547106075774475134274403148315995691738209249039508984091631483699729259223380264353318677820863056049592513874099380135362976851198185512722830835989891763414826637114556995425667187357992213579896944696821932972892176206078101676956473159132132271915428228467841284527798041902057599059793189358046964190709094431966173093338668382068937701217553149033134708238351547913927271738416849925512718012929475300879948414350075332276325094560732986084088694709640122896755579353363785469081816817313731558416132290198187376293711700031937545329397003776603866914275033067576639560263280259916730128359957944262334548539361899052736542964536100562003387790147904136187833855988365150354090414970005831314408499285055393025491778622895568230833093579237986606688953379983459290685467627572338393581207240595124312249499336783200770259862697569867267468807485672822133545877271107451344267168360584927892037043270180117326691140488179844518526894161577749355338688501484914296799319936040726978739387790566162171572859363466778553311515156351356798034233755021085118334693537552798185010740049455239933170711455128253721715711997028964346397884734024593581271712005263479142285322037221237057265013302128149955343400035386152250586099350119728991797601366238745509219423247639720820527822339350672020697862625869871410108771224382789056150753291404533822424853737335795082547914998793965633291934510371446050455774847112978482506774395134751913736874760079554657702226177675624603783297487149084420783129819337712908501689840599027882056234713065510618067679250749579744480594328097403258926898673148083409817181358987515481406134620444514125443661712264676607160119600624598957849296577130427121347283947724576068494016955663884022512689371761986333994287214689858335550966499671249184207146181334515410500199116978369504474740309302977701234416971889468367347945083934730773114004515662692451843762883400898270337484009498451876552789267184040030913614972791128315577110383813990146919646687164901481753732909216529887891194697151926960343508997865773866944163781203777963311205488022677659483236635654103991490830762903941858309768281625375260854779183776931972590798628205139403350233302242445820757897749673431990427282974779881384018518755465120173587328936826478981113529606877534715685742358987972010353955677419526456018901428582572039210268194934082962633326813660376627982627074160126605065641478378913013805408661833601787639690321521757546670448291523212067325825268796391365808280978568202855352793263021306823944100523306668799631813549498757378225255422481511276513497200762587590361186868672147188390701710890678758367369027864390465654927273985341137685861908035858622012404819965366628071610411753313285201799748099564782971949363261291846792913960768834071954479053054243175580615846703806561604389708289408406747414380745740662046512476093404790609825721263763001461188474476641839577408043382167359549053635487338983659769696683906948531863590858290904207937047023556500909608387828152892855407049374013381564718543314662770145457109521442675929721377095891432940545758094091339614095978189587915283863608450490040199376664938472007330489716855370821720094905295693716725625767037743472794507544000639916350722943461634442377062262438089748686937576658890392879278182336917816692453616894323749933498178597883142620247337781721555622377749609537742711543841676491277614842185739208157314480842574869278666645981250860252355554137594809478471935789838219580922726074050292415283927065060800689224334628715488866231784830179765392619100798570867909302126915813298087552798516499097793763573532227219548900977220829839389909027227361878248750215818000917349671709743443221548429691332996763961517487458462877566538569201637605181389009473323835029742317222624988995019244318075910372703216379807582920066956708605903008169040407128581051959596388254677807002306799771702218546302612117143461855116636162020222432839447907232002877103651632385318740096579060794311913356437073863260828396608683325095263565054993576588872569147661382228422528212755969930950164925037487898026241583940482024191115882045456052239026225672777213486678834119998966318750463347214347004958393990890402403602736630497154327268497563920413520789728202102123202887466750631190301916751934004151799469456464892223309858871634561752763821298541520344677104967979568684545518032891392604896555666634071881197739715486102366094533498044484629460845176116687693485521761070930387340883633805081385523342372060028360885059269429709108619813195560114840477937038880362679326347636492078128065986963860614000224674498953707766375236774443378322139319028104112817809918968447797475887398826803988777482883938590662489872604712340200353186285692776643003193159164008436287299958174588407097382527104340975777172566256436312297782399094029522092695865113499994649236927298193500442205312041769391241203574553576322730842174352555270227438688767916283882745744270830224702605741273441612159333134417877580706973023951893640808173463254821288104848685633307240989059378692694374448608760530998946167589384984442959718703999790762247979448164652479420648510817359484241916439098992570572988478705112522290364794816706609473085910513046864039797260419376463643908613731038895619868583871302065468503332303648484054733313979085315684123592759590909972209934751028468115668689998332240994744373295770369025992842648993196378472605622155309996564942455909007423088530815479047601528214852774720047012350418981631067210938217434716099622519018611601632714107954143755105762847845675581710486580483932771098665750750938611706429324638253119134833907494906327259846508300636478391330050520150365722565352128266615060398207050533570177849116763092526470987878577024600719957913314337872121244425869850600839031928512908197991036742177877392599947356507448334259985314068685235132820080744486956274946443503823080283338734953512013431618972561289256867092006397029325948908831289673026852054272946030806962820418334601055219175265159168574838386803293969748742189323578905672235858370565008032246445919366963604660130449319712485071247893883825758611529117013235052734296851828774670932203429573282632697455346300339715646535306462112718425033987063911077914761950727232638625153981129080828300992561788934570936714504395063832285522032130929919885431862822500373972450919593215462446597820787440389643808147190888172037226473669951652833461276128164280479638373280943090828357780021032030949382561637630512090579255612622972907959045314547660424111955041007468540057894826566866422760215828250391532805458195453227724331377278819531665251543215265710998489467234853857386274288418610730804581463712501074364116779056585430110661205664843548155563273495102277256047251063260987184014720501615823610058144986094817898346633401390060516160933030698093324315438726488204957501384950391381483167261714319768625220610039257359853080407040985168856796660772957930954716229949890072628048727142628363266903891161248183069878794816404198289230900577126744730702630811282052179321163031717028157360907081173738771005258631137231712787692906440765939268266284736290527558740031699781486599948803009096986245530221578196496231469629290608317703314616707378198924944337053645082625990551290521844984515163552176272477058169365779129144776018994255240991781324837292897608301808931134924369531201627473939604813992067476159608884420150821646880739766581901022108928934880658477187222090833771864904230852325797000404170100286240293504644737510022601536893835903959042024501608236645680283964252926940269624356467776701688660931185596839061786375977718759099224701506724310038076333048641994165800041594053303329609066309341123139229668100651415433683957429501019699036605878112278472344558197152116274755329921632952315564823417561877421092108848484278270039617682857282497944901388856967219931187689923060851946126614049042129706332136097739018964166354378253819062044625626895930790128920984765289244719053510544730288302545497185257049640424869590843461981841727763830111767095387833939330619278217986573844854310799121094941225581753067967956166256919810889422838873656008069636548437430620542360954125528399981046939149167804104701835412894429602219724455445208869389437895686268527087202942937495610419590168507007450596123515362258248693507553191498989411371606929168595191531254254969518958767816466986704556156518784419884385250649591358098173395737702971295298865637004962953522821749553138252303681652406642818768285663391144120009488110262617266624366757381862344889661460063482163193685137507698960305474838488175162059917809256067812792190971735981156852863827959293026723136765190565503299393702459453987637501055074256867766312937234423208926498554484801842703821460852099743189758183281683501626642907948479448369059053801095616821344751654003811232869973361709344854717824677772806181347245151532064738208774933282318434590881846167247325709678613847125224912417512524506826944831613696700597770892659041352541226364558689825732811121613459886788479728611898042011295109504506298217700482966076514925139796131958245200959632830799277635029743635721126141821723114215731175710782663991058935704939061824586858920065801338655640953806240104284352580774832738145929902169835435698066278469379982090760197670806560294250814575103510100726390878366297713805255869689044146688045785118770169820603360933322991913217978986722457140507242883079996729418175848367412557655490102784317629508882419615230179142185638793856888278963749555267835639203064833981779644266530051266621193955068160040252002901213591889002380408369581318534733266232821050735045526638572829656194609655075819042505065316988958658938319321809065492518785689085532111758917265901235909264506239476596698333858225908423846663046344777594685678901460496547837393368604652483851670490715324227037671669957079676533178942869016565737023635634327736685668265821581385068810633036490088031733301333527620175914612089728317732277074184328024664760472975532023026726427195906631513557489934391809721719185258113500859353117844029526264479424395169281966074486855620870233068377132720419048327684805821153470827784956249079015256368632562520123622067481342964735434409685883797222468717781868240728568494543992183709387307421929229036983448469505167253892097374072973329504353061703665121628453398343108540765369490621929914867261752249852829276883316041010418613785019651748810162733474731526442178591519996662471511705748555470697450290147807391243227236212889205934586005354090178931342713743030547358210291406267873979514467437217824131832210454975040329109305920190365891430541694687927744548417015086475076926749159691970116715867063291390650503869197713798712930438028655037935907586694970271461637933661494758112485405619126620236312454298835237440814187550328647079545808315426272364399884396105346961721778117884831389701731508460040481565215144653371827263448942217954619054981962830054792184323192920335126305916839943141826722863871899999733950846302702465730215752491197388209963041554112713387466975433642524413707483406179853351599565864606017220032196704043154368379720553886681239426315512636884528065912035136197219478274103000224176780936758710344797145663768839680810660828593375867798559179516790129693040678755792366344369282075559533552664339040936389490929547709475684831354700164853019056100248983234479894286933165427829599135832014388042508533212310794571826258207793473478733989706485962898252162985793991432900281985090103820206188024103676441018431637852412496304304281207793107823644307787728793821860507595334384186768187332192476860299638720937956485024281208604750025320923242677496625308599594230363316424169237387023575526365405279954223958595087254913305385001210942407091007458320651426369223060360679638253250983955758519490694583345545509080725450741937932865402050272946918184778198692944115110346864473835169280930621130259729072846095107512344221508978298856787780381230926679769769272445051575668532763406200069145526626760839733358479615656021913136941909012724343563517113195982969123580494533054933279055345701972051469380721955757007842360760544696704538442749732438040376690633611487317358288120685618889163469146680417604222582975551938881356007710499461822768313258270169703341617975221742647547953912575684622984881360358174444487119780103424509208637791885442387762315754751822338406222062792284919692300587851160269795164274614753376601598716287112474032801142103479995925699524983577408486644553036962194975583761125872501998619203547404088904703376533984751571940940612134219915048154253802709155424733288863833241960124551149070868526089787861595858773324145881552118811896784086155284381012040251074874147769928166528749887418254976298883945291022455053923764642016388144160167219737677984301223888516395781046384689262713144371761074622020366487552340355492147180250461421725996679614662602210201532332684088320499392225872246089585754729927293036032435882370920602433745606398648160372751669138467834967430725325967181314452921786442583024317878870337015941111073938852938382505487311177643551164794146367526597392792107945600705312028744085390859848030743499691897130582526716847696359432155216972545233160465617190495611140891802697845510293087753106107133987507707992140217299766815499766569027015731537147832986762027909915291717135564162101025406132687329062565362556817335663217842939318990555167270215784194696923538729980826247947476683395552455224371048419802790681320976379162633773970466415637149752421514587892683023716843947986561792602416159241723768205597247967270802082991182474874598467677042616937114922087708966484704145729329010738754331066324932023194265062022713032379261617440139716476435137268588527548416656511033614261873446783116686061799185439874924713593933268734325573098623449746168644151252906476927639160799158956096261966821645793075276933949943743178777903972173806830573291868814102778481645921011544171830338228012431418196329389358545211268135328705989674085368451538278583840041595060639520633201846892746816881806347482439035517033961684836747007127333974416453545955875196681139018036531705141027631921208214491982010206495603452051889749483166711796961452450905541924706611805288142400786262107167549131491093936519035553261884298644282517571826322869722790772030797702966867384649947390162456113420552916439428927568641633756804559608001742598100992359856798296347114803610572910169664996061018178932810505295001679031040411612272518029638029544256588716285565909018545201162974870919428346624223126160271762172962366679802149273224216772901307258126684484604276847964945826299422656259485898100464541428397939957001901018369851462259980475075159665683933330396562941054841983812325805918763256680830562976085022257508521847143285075964626555288763595168290769924731908416910340596173063365285598956532040004409756914502197940414849942283497096421722332383721828038890236328563063262114445045713488052129023935911749208127948829793067446377835317177062563009240486247769849866278088699546930385850485499730982427879393238840265375618703352420609636897263646319258466101039818419895548031308091294259558542182846812394942527254944442464988878918278077275297867551142572711342914712235240906161962315369381910702547377820328748220642302048919241979500122364317456499698652604597379253421157047520296146353011110608967729741066967600615802768185059599260922827765717401122335162821976739643961521005308953972641665725793521250173077295439102388361875665803470134150178828263070168889073186486653109822470028183265717386300270121626657273850464861054215180475070794955825460486990439878787510980518843425258039478124580912260103650007877659167317823978640578052296909282074387263135592920477245190739413912405619673221945365807882224189484595695352533280242589621399367263880926938195695497349650302022710601106691040823225217201290262780279722898716198973686710754185006740971703455664423699310010864779623987560802205620485758684014922189328625223601629784742795003999998772306883484442247697217819309510870956980262630493965454958353106592775176913659466484483965453456444526715629675685914665500049832103104720295487676419060186399598103542439002418310587296303719679758002236227213066968640748446405336340521755873273228591696648470322055191199999213624662290263198605526641202169815278460616306017185480911347927213436681099059502159556915799524060136092983408013809075215446327411876065139809762924311180238490644406249428568680639699984006124409112254320794687551821362620991081035708432295168160261174674361156023369359421415222794522045436747902280024971207966076047588193384926174730103418694171123007627662004427815154264040718016978683202533689080244189997507181376338122123791205290845884637929768070446761818783442972307142841334536313552315556524185133437322510066185494139498649340629405944046045219165176666326089493413962584416949065404470943145005227951002891967367853935338021830231360219363175763159881951883572747316677330421107364000874032415082502761028922487393227916356740223948734033540774887745367390686255739603069804594229334613560432889965260364993235437578576461396597638182355803994383038295981320350693994796342232681374213851344036626117537270376618261682516151633161649961824937783014082256768878313487037200774113078688059349702929385478021783419530916853413034593830269536484769860695887462976393123619904377744501371756293366552457471860527617414967063648773487672527645829067750339683902886908069244472704639689408572239994127539765797383388286044486553812911433083003408707958894876327236834510097747948267892182614180612373951467411343263767025367536277364237861093435968017839564423142353046610905434659070332074096873468939183189312983403492128236016649300315256036827429508302393817355970203624501100111779688298304928945527407184209017175162022135142330518971896289425712198972351603825988957033427684718030050356388043967842379736460841645623569912656281275255870585536515513419138909952889884061085368916289152456880107894622496405046635096761205179517725775147062472216848144063520036672404973746975314522796924075666528918741460549424606747748747882673741827621657751539466067984473545312469856077437727385113686270723275553902940491005967686940856212852415248501327940721333543549700643160125110317417403687601343899261742326957329092020945600597890376725634217016660657842364493547398261815057257426792479850850581898922736078378121645803753112823506697968636814810161163327815890361304636958146395020967413799424057599033069041368164307868833182624031612040289889350285790591858609758994978536034844905082376504971233000518213774989641112875011838066642417580265457323129523397514289275815930859344766979669853784317016193644754448533948437381756371125921004562554746259860469989571891842397293168257150160177283926721280329574186473162559807728386412600457555087977555996433818014952857855463337297104039160386070606914961308335020649249501489404058548641782404640731875279344193386078975510736941282900339351885579808337007000482333564097982439766070654704026662924375105257875299818642471407325132764157629412709992153087783293660044066630858359123871598622173373716649007522186360330879162796280393126902260580293064148404641120321370261399221184196308419347828222564979340479505348006139553148345945913833657511776379321067214038355991797038259318077494570860082738335250460640927617411385241751376860662765471027640909512143357121950085531569642003008941587420612073066617220854528792853477536791803956381159139797423936798720824846803217510893410822759841324707134625942810381314755321868382365720259967798087026420768348858531596536806735068252743087541254571588680380336551941146702954264568109695845860057701793866831075700889125260356020282527056364731612073568036490121765146620655007695211317226801139534474821128759812624525157665616854440249225676586829579344039611251191190048427109855375337654440546337865268284130992705530907558068216462366766448362446981718574865340299140475819526295535173117346474420336177040201723712308476170316592998833780664974662521440671149557328558125157642037102690875806495882246671120656853530036679210386920766988115646796761446174597939124680600958427146187596868769793792506300303266683783802042661325981015217781431189571429938026039227432653421082754907394772458571415302794064789668634907999402748284616393828515615098432664393823660128656111642713574050878171086898342296612151749518762569323271193497464682934063567210533561895131648463990601091260772138534235743892377200488799500713238183761884118379002148946702040484317275581632420199151379160263299814926583675894444013242882312407428667577505487558726699841684628144670964158030462639565758453505613969286564293558581266344023586588124780727500573111331583077389771977717487025530230676470178602829202629404702010693189001136013809269985223608999105015160570536059300161478682861403162823994107868764629653634551261963549233172285402464789604002330344038002499606273046463207450494513982415704353215349062041661891029631652613526183586384663420998605726548799992017657921168706773348760880287692064000383923088950963984011010674641221511208953710231632497919873393882705449751190614890518452379522987190012013071408076932261983168914684737002486892930553999087386957753640109096099478105681320285928874504373550323570238919765543887781248849455955352092367027281945643143902155394506417417100160406068866473535417262891378347121580235433938875592995057216712439701664409409571856604538506445474455943913891968226810173668827256222712065403572484431083894122638812270882966077140318861761325573149117838117265157729429867159637666241306648937982454687302104504581914931241082964109417325203887565473986788604305885989623733928013730630128515841046503701983027937785842279564416583345380526540288990826106272776659428120416602453847138419811053752008692611299708794439300503947442220253039422481930406553254164882831303369064133453725566472932421024393062214328342280657743022176088172672421203249016524126870831183260534561654186689513925533418456192148898907841081288378985031692442075115294433800383852702451173562261346302814075344510203536647644700066846508717380201121510584637997864688956273179934533696742525859570363869078596159874149280402211684810026177503448064118702533843274281548509493717159734227526148906060285066052658865873502116202797827252554324608522046175701779238795734010302479228921280634333638831496151278059541435246256712075684899326920331382834713449525049287891454758869292368646112285665705078597767084207817478549871990587054158365335619790396864848022644632766615628758044876577403978703421853906672797447487004206413518583390479590938997671386829671179670010326264918930209432054849668847223456207585757196318691384943776064549328007508308041902799863128898422081412662476765569850693508662372815404049506364452879571473662173284292731777092034998230106916793453561854129670507137854598638839195585160444074137605951962342279160261994550663262626851637920871204094965584661408299845772070650880228819374130097871451808706094328528181881999088038486374718131650148017800799187802756130716509254486166575909926585550674084016307769590709383196624115968625028333302119975321318221743411235307162477131742996463477639909868173506916578140544233637580765323466803570695377320249174609075320771368120852684172832682580274799324170559366842413226295992844524437075711141884691134276971200920374000464052212340623008073297289847557685836065874497854773677381688748661467617395189975181361270826023298433707871184535908246459637203230271937151887382836554044247863431645952191459032169680203635490195825804492530652135500873371058361946635000826356570958234225208528365479083012220754854829530249556215397887250809916657668150509222815028587286334957208147089433800096100206312756885259666010821937483833333281505647374935734859921149890785657758786154965189130725083262166920476094360877454918033948467933916553430212284306297965524923052023530386376628311023148632062498394916019088168498025460866209724023955753827569757678374645257389284548504448767954658716534990329112360802726798975732705988859867512619313584105963790663193843368406532159493017081981349865455295991021440409173012115440144653516743971882219664699885625263055741037346085108427170491476099523695414891641539883099582695803508473033355071006770419761886406129245624079416353457120523427657883598201873187589345770381054229217811055504244707474637029109724358038926356441217151140247442800960689077189913916061703640431119665935450068956394433760255457090617672040002105541578401249676636595328467754926039002296921620818637854655021696646817165055054765785335001559627433542270380116715950954933227315005425423004045281256618686712355525463950265969832804831539768713112941601052747320644545671745644177517921229765342879432732366823016452550147731515220797415215479919326116959367776197795821295768789831103497347322433860384359768216941545638957507994532969911815471797306501628072912962332995877257268287671125315998743623067890855527155776503143593202671823818753574636001403755294922720787911883575189377825498470587877905697198966164704315121982118587441225915535998359785732907047133222592246404237378860429156657468305118660926207500249624384156596626521652536512109167776609930246025742110443229541734023148036876802787907243329142997444517288174637428586408263213407927691078501854297589027330421230999577860983051842927575660486621994324201431644921384445878575911886265337457292479865994347281924276118171837093929988703821092973855005424527711178602069273286215523682238941592995402884893489797799802615212396510507188062969602138323136150636231034519878275650473211516756192166060570887948700653130233369795688343797481735823822835836927341717670272448985311800139155675211765521043786173548949151364427476980079895385655660170864465847155558189472536227249548132385577966650969276579155942533946793296311847123026696674664955968911168502108878095122765207128393043994247880163943897864083235255615331998513731902565100354095291429929134300761987693757422052964140963123302393276538067026198509119861941176564584957628086908036001024427542696736404879028889973470647489614137475276662918100909951740978228445138197653113183326458289089696974655060627443252295385795627137054812744376354714230547382575586027774953298593654354676613924769035364970425350905750180200216000339682933364973944279425969458412048740969312004996744848125431215095446694764521427066904001812433305824457897018586062949472957158776606704230726470469911037933426495162012377886414852318822733995108437723319588374421157779032564180176466187305927365144862727944368103072264133952086817063323825062676278295398380697712341592388549968196048348954777110221471399069928271577398630385898898670324743218949678981377174641657586726889145808155058721207343273735385360692977075318349734394633656211143056495382127287191385889838487616213742836516450492420411166141508958438055915804557416464750664972760644194480901562122355807576013390901534912069047791066460987174544490941074059352061469011533180923573181121148201389215664636049684784485209496392263526461019800938184399661379268461923316002502788684510341536548092478584544763056238309718872420590128664437878165292582865231839103587453042694263572431811551045316528939392053457514417183497949566887025909563757395509920452180680606853608703144852142376800043625921819748815055057551231123463672889510109751397344593169583595872478172956068257098510152376688519084127234784543002729847373028343373002921659685338734085713990436238353173760230450457792930062487203985742684369145426097339701655058326962024044047499962967920820114475256297746976764348257777339926203820855537600622481280098573394230740276579166434935015889819951871832406707378870283880808985610049845631762397555842632195065970965153039834544378441668252285612295241287017300726242978587919767388981993228009736835992210781115970018796114100378309059568776467206526750479093514293316248744747133214296040265305680197528939817792314676889010386834006326377950195509600238010235844554483497850383962859666483730207145062076267489519359651192500291100606464014506846902701752719406730112707419202932930110151646424760644783698318080128239389616717140018011901547822552815783339390579767171826443222677747436681743837236814890201529850729148123557749226028588252747747942299370935628052858451397666844874140773747439236272374890016129676739380594697734339990239211774481497631787459454985236206503729659823944470677848199785454411123145335269742439080980465308403782128271148266843541887713422548954956693300203377889615475969240666872486741498959981436854508129280311877806545947342343182395720985809226381885844513032486590611055728869095630546461941723542954465052904762574483759659752155460703788683057508244414446894678504724377065307005921825954952634494168041327019083473363208914275642127434532184893245537532191691410793644495652147009759473141769156096516688464229084465379796236546375460034740577720658345186366997269232333670683812792425576783355968917288456874828253228252709314720912684454709567186498181155934346978299927783521088407186449426274021791480088419492495582611939080998318949656334138137717995931268339201304297130673455818108774381134015518788116227673773994384033247619056910032301511192976676764253326487540207210725263736161497518810799540460961406728843178363487674407591286766435906331857015118989669923379938038120001087741996189007802374781677763811802493195002671767872326322422539350991349113513819652688511424110119923732747657860153581374505776969846216526605386452737133609122411583478515647464027561813365013496040767290338167132479659280644193478575839841791462546465229832542745519152149142294705782543541934657497347788409924510106693803977363313883875470578019528313254656122773722551274758967911982563937095457965912883379981549558534767722294248224477949666965016601036014517238415652911361117580644854816824540541560916427522378912664092462973814908759641209416581607058894782912312635340066852013934193733955426686007900821867441350363411813486976277464594532581558136784570343098747126406380483340099019476762410045723040658312750851994884077583355460944924004441047481754059129400390988490754867639856090595074288946935070374033686743764757338615295084588478951796748616667970028064773257259028726445741915443089522059792968105780949750054168232318377823796308399535646208859765822829799449747172919584269352275201148671088710934575004199142261627278693383985606277941191321314083434191518591849283862185995565943606688720710983386733066758771714498659013990643848412655492979904057892501198102993547999714041361075577366427373716010765680229204997753314925476967620749105667280842547943238145355685235923377203371447034983322144203803587348811195474963249180862658857417896663357586130411639684637932189921769244252017686491298414424211158705781909142099846656210026542025514046919421432068161240888301101270070550934210126148966563609172986899934826697080593105410723695977479472918747609894386055332355982032862788844528052421862804564889183056092684593656778119973956223010223185276100505634545531611515535854590210558540117516716770513439898870811726292955490925959463354662111948662034847106557844697575558869999015493600914018849896957820055335345309153344067003101666393584980179014501558402923754206959428051761712213002683962561520536803783334496238282505222365696680719773542133656509561176524390077984733258965976403740866063895919045166139265457084800760384105410518306812099850442505534861311640878770757743176414968217121778545162501218182407708690059165525784692054292006603888844734318817525255624722108162996260162832949124589525185446821579270660091509760393404011900792842883593290350489449733160282851920113714948531635340348493271001561783341729705714222557112898012915338217428246098235532283849389761750317218744945824383178912566888759928957410421170307354908007523931831481851454621930915768382897128562989722524930694008084877208741945276614767617476049958763458712736705545733644624484012446943865969548897659120612302723069649746245133255668437435753597394863045186862654439794459703466106549755975460567231176013982147997506751281806435583699218944075080732309402659144753301132537280614284859633354654515135930644576382718559917257095385333451570721329318267945342743926454034021284753917884229093647989659603040359467554299155367546494083283645706831510257695147186798360403168776258937267768074846122311500701266757133462043703587050534652539664659441277486937521243322140016713112089374960156900159783259522232972044815859870638421665825912827325783278475096044361379556834354097552545990437396721464413139714339825025431025457726852414710552058043007330718038873985086647004404061631326526181369042789888389821269328917024357837419593559926777824487366542527102742873063162034076880396229585713007101393836353700093968991046709439522525923508935073359204690003932340402991381914465330735233339664903658947127153371354329044582183528612711272618049131128561953862502654396376290435232612957016592013512606813869086481785522621810616233843383580614578340677260797587113327076288679374737733071666776861806592585706641207278860708816912721531076542635698716714095162655559581376162797766202641057818490189944708838582613371748553484190024995211469876659647745525747964043887174106914034934022201364759650086216675956353475431996511964353659391125136441455497215683226214052310465728944292446170167477650034348982697089020584087304185387853625653033884969414405052904295196251587401873131661035017429340073140866432833859182990071251605029924624012223065477220114466059086884130868911265972820168330446385617973362039677212826125145283940596811831012667562828585634294025788602235928949110686850851785765672160848649689019706334578755400108292405003449940171663990286597596113630643191350067696284531629011415846687514096783822688991428535000109965867315366383493217154679568181561609458931056877042138347831500766021406636961137994079459094413299480080146280696294864880271158030493674293132351448743805834603012172879764046348254361996354006181652356852802855574055439243850197565726828735367333125462067304135915091038878937692341742639843139723775514106446520590461426526761337621605353764623885639684029659678400828193166906802275788364734496974256478335055627337174383823024955180300788466543145971432075803451748390091563332776293952170764264739995023232422378268797340601041932164622141082069932792271873485690771454378336935270958506639728977751352856590221773098763199214422097179082730837834335439365027529956576438879716951712143810336135792346843353236972419815463108207894110159408689196270219602551755672494329176028249800223248071678687678681379427104730603129266929294608439206489364523373107742917786704130721111426926368774134753802658106275485395804685889463485212222415721626919433151574050125466173392293919922634391336125682452340256431221067535782830381536502727235712875548745859121800385651249249001300117652815066668595355357295743677335623565528327165541184664958864229595879084804602713757445353229037786298841174360432811939473691955434441597456551446687834310373068997673634392535448452250422696100910160188852675659077887579103133736043740432906112390430762725950735985499389918989503700955893781632158554918097615244694929318221733498651655468100476317267061890076869461279079998294476577020969618984135561658128610403979089180299323845713895966366794156898228972183839173349827678439552649393949622269451739360237492500760856612347903168109087504440382835467996751308528688434558534914127212499574245916469723824857169226707447969055636053509388155980157648621626010158316472132362860058752548581258932799426777485661494104477486747604239249917539231865192803932159293823568607427373471250528650197263613508130232680735612018897340323728138744909427464584448617364278488398930867656758504533342786365215172542671330087692293895120271322792516789359445909490246733175277349568512306122040251763674013643168141724681005511080206093128854937908967138609918210232785318827115281966514089406003146247407397105851161395146077616660805966611234258006245664813844889122549834148043343818798373173691434305590898793162850414799566173872990277026436527818251713981332976732979319072073392140672728073133218051924920907947960269440467340995557893969561005831592200478666812344696261916639419818338088404352485140615655835655492115478109600626652985030930176017205142450135404977816169790676123559702476529990604713319954355986333819259160672872797851943611210402095763408353893723536860485201013865869457479700359363255115526343044619256023179266792669318842845540673464090217992162061880645737456688638157806568323540065394591483309406241709512788860970749571146240877533452995837311347661745718669902009860563690196254752438520493530854601094530513703753913016845544012266189269541033194914566941957757739878076246475669503999972352057572469173829116745502300030011924242371439003129774068381395570971201964149705540226781864544931927539619410795410353284460523417959563702368520121360655548874387784837753027303733098638081535582148613563099605412071724624942719050828222905618030497087994727510045174692241180985005423980179953868826658469173802878392735423932397000291694023890864034989008037788120449569761137731844850448863920802636009790833959217564609318240295978207835075622827825360397011689304716431121581287017437859566986774668893152576768203130684122504785138918697094225247399691470337066725004732739867348781954377810195226800063615022153483328992414130586423964760510271509133748064161308163177922001310340358234546305819806839580476752711410275181608248468696416148433418132579733565346649129558228651097305895159734411438710054086469340145764489053608923857053528593216482664096324596026350095683864883439231450494098061857855405693258601346193483509905868313187821256352925916142170265051675382706352669813426911257355640533779163079777238321249357196025793315282488973048950105089279854385859410656374433802051592422837567986130719866278865320767758169485931514931461868171598514538231674253655723571465873102608954057794099084698903395840474622102216067317785239128847683432922409029232638882902332134007963695148424391870898327002013686545703177499084037661214068458626473391977869639012882772642079974784793709986401160236786582740414367774643014236008694614053332909899003104667586138884678508461477730371016218110944070664497403305756149132631028351428656408935107948311292830457900742153537429307457362193238526900853838604116021266071943371699814239395893240644864152081077293940057340331900034795156356104465622355530313901205640978050037450721907014783023651519829059583664592186667558138705317339087590957300308029004369043812036658397765928759737511009860981598091232782991510357950591734363894145701439309179603826390919355839262045215389949317219255554564836935051524323795587924383004837730304260196501472152126578556050215044481592835078702113116665571107382140829719519905475962791741873211997987917591579402385473252314739651293173552064888048937215574303592862815083153445831076985723721790342036102988860767200487798440547572639814499590211196270091208796315325170085097912540974158265037302777748648008036849329061745618673441848468577060326484626526474231001170515959339096937887813995075385697867317228667652086852782996069762414856121701653557608356074049330125358637123687243333657913602267320196906541009297708851087884688418209380411639702748191863124747767996952315736866611678465800366878201148812182561922833528222604779100129585550722762706559665103488688747652787615901657765372477374732889923300423795983370230977260534624425632692090798823974480097955563271587333474219535902901531997211237459214775438418176784175131809390578315095719731377582339465300303802636986100882093065971441368606777242415663028203185572729461874825713219637285727044626557387555120284093078592496475159898727905378885940504867588528403093696271548883186936422145189610804101570613597581753432420117966281505615277730727087845427114158762111976850587821733657476924948077347411318287320202995304064272580694973373762651094407052246016255721227886009724679066032447787688203301440832443832625325111665230181979546722424416568204500941949327748483773818752977271814519993990662558780802427618548885532730624012872745941174262302166899936317321526949548300629714013389340431907223851086099404452435471030080945600008042328213167558452873626354759657364907311729570032429572802724503348609669687025865902355756079292111791511243696487187248584464081329538132461125297554484466324304682607502402593048981504896096503683745011227448222811039642358810434555443563372289791225740264051832836317579947931193491913218070153518202157928598208971924526607031435410691921918793877141275777084587026620132351474219110382418031304575875690768677499306728359113814694662176526451278458823735666414891045861498820929095135876555094814994744029292526243273612510260328674214150252572130852057689174188728931566545564213113172137482546189308576726479914724340684758209182452972146086322880442101233083812698180387436412568178700836323182017883347564028042512488080696936044735635391660730728077025752216975180888267902307458417781919204397640324317588290636434171486538256273405900366953124351545378987286746788875210135673348848440012684685238009031346678662229213551952308644548016201084208681594702692798391670079268552217540780176108727019317813383911080818742615608601039889118486898992236771607586420735124260748651512452431798793155218216593729624842837067148474153830753738439778255278557449444783087696888122257814607835789199581431998256110659948040459708395033906995890195596802038383617421017186064218557974319249197528105710116753513336932910855403190763961365498413600590315726892600601994151296113760931403079350446415273977627155880372793808872183181651790608148182859796103134523816446790079738014584470420729808146302468159260420271913066363038329973228148844892284537877817983393284177454909345287558881937541704763019397755603619523637922244135840989935373418637987969366506811305883748739577145685185374806285119059091967543939176776804648282665171297477997126810549810733607231857944054845408364612128643556809697948512353106187922798158750096790340470338172644045374719494003382750232308034049198407483843525319687310440683471765073495339965067867442769931502723466132029190166050179663213416725980309966442363242326042039071729182067968055546771254019439460958669150337530063556609162088399951504188092057687426246494828695325662164579394169632946064234873317675807669012408849561490704411131282777489856409196056683508106208146196479884593114220183488640190400884335509057715993081152873190065656577414179816906120690196455776371644420754813823988841897644764647035667168278317264858124458762333525494311113313185529808347650495467480112043416412306673449208342493444342733762378852691229968664644903140110908427453202305832161816419724979251240368171654955852037539217044214832964407649051353022989397097634872163680156021025604047997870095805307527040757499568133122239909775459836437066943309141053930772103704412900480049789496211065100270765232952926515015347625379668616056703476746576200732958075825795940952560889309208214452126674232445317754879528579832078452308633585641080862575592973904417096668354570658074104524789892320184127144975220029046715404618931728628950133268429169008844875969688733465932375474385588047127344065017027074626746058304484360609802490402499045380398591938154853253174855021820695660038612556055341507823795146941272284101304631691381028850071602871626041467318977810213968965195712641650524569381071861965461255357869494420528758187434452803326384695947349699673446333507854396186690641850990514856577803013673991296337989683988270336528264925920360803012454236305100002684711531096564173496099073048784492144721092066021626479624498788795688584980409510117119889883867986325195151048059341028573261157185792211504897317907751544554827918416101453034945646367254349867293605016229687298127274837447974430018998612835079883825903576987879850716271189219207177356693197762832528827806554404683720209477556283861680466089393438685236473706989272050691102026322274601239772993362149740364780045019934523500000240938146261775331470133080088236398107647854140246331516930776546508318093580926151088034539399314290883965284413080238814517935172174119211151331828351963366214611119339224039498517372557886858020664693451458876531864503944491772488705530096305797939624089013403310174041992625854026156703429333703544063056612268950978918628230856051083909006015240707147039560643692485516114972625589178906287136573662778280077781195576020693666071699056820237337639581482144191894508107227887592819585658392149124481074816800032110414285981306952526112003256711874348293353244958342921468017033077570653010393091079076078947991867253752248581974049275813561824698492670126315507400207749136927247689176303763720863573089125751536296207171326702530148620517864779545433779526888449933048863131855932719595036556445595502527848316756806569519678508037633690999622726665251474520019544730061520423404225267705456715074445682946709171866313553721952879852773316779876865130631480146575843781148480110486068289154076192213133625477799047184019115206904986267006824078212258658238084950571218966779908476552967451984685840152761912449073183699166241728250138632253822957598865823730131920486266239618774425625730467330007869004072246494993465856824140396456051206846368061740014533635828421451066970332247461558467111767801442808053811081274878237285359910468713049883279576510550676506255271409637586081863711053031432008439963169655409089770314666541031160779368733656407258831835731276459177613624859862229624979571016208940630758749535168686855996543834704849019584861841337125412630836799926955884216877423956387567877720651376302875956335737855110858842407009317497592555852289954314307840413994649240369376929480989400510295117523737522022370878409929157768817052877775245603130844479352482834113605512573301294110935937842635628845063706775466793887464009198223371231289765027173974687499161772393728385259349570160700221801819610318618524597892281797840274129646592220806151918753785690484906222963080220911017834192630167827180096180441459452451318662616323236864215942355886303975465378362938682822156304341312823790654417571561279068341407020751995714351333907523635458796128144481359785343838892619601554442838340767185484264607917067520492326122331816253158206738874790284115148928494841426780095437709715232784480623998586745889442750285833611126385690382977514965528762662664118572087906700766459342311841523174731351108726783671739102935903867701977209655837659669913454675142106394178455002542710952931400286370558770712106825382151744149852418516554140343359774302399153163701204599524839351868730513738411946006427701647962077450074012421767168960242341924459156788348450318532492320181761538600006040831755028914606660769882621987832480298559814902601300841117103535844402345300866019144648568310367789491586411765633716527732367470417400034031058197814310995870090652848601936123674830864315301034625572150499354744799262772155027019671848837003077186085511514717105758300969163087818571499295774024847115576250372003865352505242906338693430883621517106114291449790922374387540796631106165974293095759679644068734674592579217146883461436185532401099700522657528661707684848690600765263451892842907804016127274192922036157468109007870725869994295405545910869981997550019982115816538737247182944710879692000282692240008230903979882175560145597117433890386771049642625741775725637207365390291541545639231309408052635992926040013263496335743875657923020516270643287000392417801622034206887429647390966361233745173433585458155708998888714089375063075656487244613621757614872875147579723345613226595146954912214600524396415902815189694337120851239193299248053004599768407914164162842163752238088702031939098980876107510298157148576717863215464287540345536716076545401824952799446607243985149644540009548534430929543938012740785145219292093142184780131365226683145232661554535033099200986290552933093168767814373076059301626576748568052288890621999270552580586090280898379837730358789311359430826671175271450545098533734549388120617153471417954882154389347939320708462538039991524185115985402383048004002526422243350443811846090548574086532510196145365105745023444938384743789831786001952569958994592887451446948152506342555216867776157136866338026451108488114169369765615714388625831306568138601084392522720252274468680373956758229960710556404737037820776429867558874297009412513336157035889038160831115271111349901566140711680168142329853516422688035392267022200292333706954370902705393737215578878312627054669248643618286297752884736730974579070358720683897181676155288819243344219951948515470201961375847084101462817439312093830129126902708404688513458175489186400923371896566087499295007764380577303304268855079384767104838000438961004141402189837316310735458835010004616695102125112883200087370133846043827382608383731833837329483792345404318753925623504314537210248583347350483640148098179189059246445751393228449809011493137132688684592919050219470911283531546290522744858660682137356642771213951236982775492707286430824910172146893990884568940998962685731391732287153140546869245778472816578202225780430835543705014948069301292834708860376031199877449570175414014561914698228360431368692509160769794488176609109192934620434863919591222858051330132568170245401357896074809042051642087906459437423812886865470579309113001768455587477061880888004574825152086910158859749235650238432528015078531837650350784612266265393274319986302778223846489728933788326122100523986134228022631049065177299629212263863160592788955230918987520043502307518800836780592288334384559886900620873729734821600244629755198786278012416990399828801086988870730955307616936892197982147008850608181319231428389672806824229409633549851959762289659848235162968482307439007545940500418110392360547289622291567611239797413420711369111085048428922089738099415834537911251604677440188308923543127224886685729718973394400172416671754012374116932015713951526768307125461213559729162667563469376543211027871461701363777645501031117835867916688407447011391553059441353488959233397253886821726901900729692482721019608708564437211607406288079877249769227838636721024178597336543502601809179094767647080091563502508911833830329931183735370994483608685634027217491206498496315775605647257453614835805021569318345460639883478592550374003362175803089970365245805941122926301297342087312792389944647116650165680376558773479679670596193161540427634015133445660911733146397649986735601206802561746019844383975927064962815913212639869013725747597113505890731413815697956131765074739291680097765126263802653298445667744663189843484701919813084388681982458670249108969245268517232898423948732923128664385387703023808781086638530545255664730659517460620359243091161089026276471549348425360938097627304506485914570124416075764859627131227584256775066820610170993323073407464635479684522617889103362684840833995839151309737319000290894719067804624049674179191979830064198296085701092124322718449035639501715197885839011980821794678573181871990665878625660290524556910164616630254345093343148458484349357261875814893378274974663720793119372312591241321590522427917082189242891369996421033320501638390325435500024304765070295073006271462465178756741968180739771620617159282376803697742391238385485545340933853848591912780827400585731814415436978158734219441058157974054404188941472757389009589686917797064052316703718485034590889360954147940007259238597628362159128102342212900485634474036372462636728722354683014018840769674236170849887071363447505799349994914016271344799475754465519602182434276375499765205878867770238186816357356770581582535084909894735855870447776656156789085159792311109890092877599531596886944933818039767969325244263313212334760047208951472757306615926318989002278856030961380150553974254016126834343454771518153097071973349789659792889160546396868457581378273779221430981036800037221437691191162868524611918811806397113242931358379390817618366175916670506627338275640222964159387634226490155998883923228609904775055467288443950039186379933161156316561937068184912969097348307637290244832600172551944473983997467009626396556793358411967970613371446692844816771281600865913680358455915522043704174356950405779448004034768281677162355903680408562241316148093019544251286064710494091859932387729089853989802025127647461903837695869702673926951346206645859076305681931544628379067419294902939256082815482286423374750551164608567542268916897235046963898435087745590985324037376592765283005205348639489543688637009396277330675723812898176777470630985479606746324418413903101986561733347785030206768004136945126247524094610051133810632292668798673681191670154704046714232468976560445118074392838742152266357519575627854199875034186510779167985682281671417191421758703508218207873001208941989955124596220649114600359370313591172488632325038704103830570296781452848223611177503873273397501381160977928257487109273755458389650969737868447418835529942959861136043267876612508378802948155732401198234498807907771994113167354627459911152444759228608029250863664569222995230316800184292935149626107523116151118672944682194286622038648331373966849753809258419879930987004021615115811750611897419691724090472379481158282186898943278481684656265916527980199714749116474609110653240990264965818536215466536708458382003211675606584605567109915557265413916835913852174397874593396351791273561157873813145901286242180506457694927936728381484566857752321094149194656102608148550100165214238471270435618546660122980478542625590063428317226419631886378608279591619552342997165417747926172185384091345881174851440451389155645085699201432910290600346467393522666885652632448788506008319019635827297710353946403982969402814981920363676734027270153512767104945478663979031438018087448584991232297600924054899689231097393115362388252331131464790268483908850357124814400209549703598491788087284139772631888598656317589772136121719360560968471450020946194515370397359956630851688018056417875687779212083439987692239359497377295198095928994281038588773789398062925271710099700306887315701608651554686035526764494415209125351043862775194259669692477122911977016614233707610705009511423847990726753987849891573797447269245691245557907089331729015791389384856420592544330184703177898502551900565192019913354247035985199797020153469346068167260186982916598938506563210725810740125976782930069644383364649948456977426260300618299214960339054757783750948167778463611717519967121065271439959554391711403170955343159882514955893680591427788638868966982635449253110798322266830655325479075158369799829636259586047440997724522072612884605154509018048787344371564587854664528532064885729568099594663602245437657480577639871762381308295148930816315294511755848230024733506818711018339868992452596761463462373110035264886972981645794032001177047296979817009031861420852830284677041189815196208252038963605516093185877171242970016732353520194212340252335451032652151106428025727275835181431171689933941854761247209552509151049645553951812620427583074643369605173687561583098622399252013631544667966056023984210892418941640598808102015004315532091096250775608848575711985707798949324046275648617514425853199939136288699307556776889537861545527152652384203603497168473621689541929678711758398554388338093387682929361854208383158653885926551677010087057700209350328715651139990723393953915532782805772978006550425202501766343235059475545895941501444223298949988656027963783091668093025890920340950813221581904851206681138755159572835589048787610611234474194289342887152003438035935748257842393452778063590746798795607938695330664714043129515543564140594690842285005896242881141418752323842117118917434499406452264632798368783151202251191316064025720764675421507110360656887146619511935235955496046768830816118110565392730807851576820445715384818713259784986827996731879887481075984647542851604080930010525814578295946872801358597085175177577817393050731315336599873907013658888954119044352473443571514607271979594072173420436095107577047127041165339382475407614138559964548833528400876058796418451545248096359412852209676741037376427476455347043892871698667694789907286020497335042132908326025630019484651805009866513207578175783558828865762192473355341066331995488677708647938947179083504246975063374469679220171494973439201088715246713219526731840616210052717906593996720173718154193986535639267281205257352580361524223184823794424565792761600503102736259304394767651742988521668412496738861220505387298955328717311655066905645878106611776714717034286341911131194069433264938544176843410417797562192377755223528449189637382917718759722984470343535233477710784269873707097490798113942593259188347013086879999818029607437723045843661178348285911553245460690673441527225091094911012138518052671994456917688585210587576305009569748605415358024785687367113779453155879932603030226413187756747095901615801976053105217226125601724293236627591185908882514909627179555237893578179174811566544153157661985556961084260943318129393491547206316880903340402278907755501226502506948865515683086384458380762625851877508783502181806925479711634836184294841247647377257137515379995996176022820656583959106231704254055304754397995453525377000157241738026411860305978377176314260151933663334803503257364087746513547014033267844035151491072301214752560489251099224163391141534699610428981662736442661339881409750148240791453106800196388230616328349292883514819338273792014908598810914487626466292712407727625147491180138680161756122303200153589635411478630725067683961918219483800471611037209382332745975750291614566608641706382669729949085105098591992800177806708361528087227241590704811600806419189256570100428949642378112931779577628776347974535643465945236713403938277804998907005300038577524574929545518161030139980595041208183120522586116314189384378414584206960011231983878955626319751126070512689098382032479726976981727405580733289761169952000152139817762117716856022177576485772838437759326058647309470932198882417971968334439878489473870981009536635581871754276026179795264682082144132952887015373185342525107033293664104794059269565721547040078665219131020599197075043718219613042896733117650243298167826068917477556106093377672836556355429894112783628604917091771697871376515591408466298631907658367913398247920685651682043907420812508119233885691148828008375805974977897103736569681086198402659278145358829683349633006964023487039664498815987591544292378462666233354775422744818265248993133405194887328532002940242254784802009114625973700884170991362266018140398319480598009624860555738717564743456936791797521449104619877218072724127541552340575958124512432001768602371159919733874363289202904473708055897528612030778318174744727384925269967723395756501318174310386463559516711901837450439102576070532658947803438910877200313379647392718505746849975001945492060058978930581884778145798458330764494989621845533953116983059395121436001776897601445950859064194422282715324644205703751585140646250593370229778559764869318768746424989673702067825757593115911582658342901081521061277439789104301777065347239961735503877345478952689167812368737071409652476434829128443575404423592068933575429483017606773048141741435231693647502034754223475972633019079658281344984090130244449172957863822970095228632054571077822509516973811990093031517391310472018991759005354672541666115412976425250603398935130765329458536027986583895398582826877632548892446007933580563863100028452929539141974098969261658852836233125231465388993545373031256835090123722350288709154558546797060786282845861259123682659823181696800467364966160858616006053532385614891337508918148091784572494390272420592915358395839223469728622098552074403699329076822773174840969529714712536964609260481205962704935324692231767921233915938871822651879635659713532307792649868918782058454532689448652878122168668316596096596236106806218189115948235293688398703818965435346298200798956240069422674927436249159516971053109538657914177701998519799237076757083187738363576652071665517446124215224044095783312678603637483191705215212879010685531107638169363643615934296275666672870477051739535166999189990034270577335654546366845977934069766769478259097148202020248439546569301610105831148929059421932208913523904423546685536995478567854507020859426113364897103730589829947406206997082857358662396790743745714768512686969492326841829695224494920287061401486689843515870495903814188850149787222431791000741512291160293439525660024163739911851059428006580172013816872706894686214427156195122485105891802622896206971142870475628346502764367578406698534151383191679635274714165926890420930124955230142304928665645040681583774000883782857809132033997965545677580669817384677668280736439061474592517853756541392504905437764014149628263671589747956809724704912780630115612752136775759955868530591748091849395849681979130300549819984963457007901176569490731751646769586314131497330017820244013987915501388831902658148017169734048068770355528933038607023815198506486821890467238725583923143483149003123929724980126087156337068029938293550730917393678872127116228231163339675497641263056424068192141353461975425338977349049874911125253253378192446314154754205085903794974419355305347124368151932354267432251978147081976600858931680251809133420771828166904739152338413506148316868479765554092270163965474259352374248976978179679639969978971170689847850438888862184129265129961748794313784994720017253925053229481330989401681881891271171911314815819852013326549980463994735328919434028790728394695915696829512230783343410526308276554123410685922695360509437107209674773324425908464335383715182711309271922642674033743930986862732684555590998815578761072614826624232065275372046193353620192435724933119260237144411926416806500227062489798615350397462742147465547313307649462845556820255545704298273915557718187734182846194496129929597283938172773509607711890452037488406116543329367433873586278258914990808152947810719223839368809977615352196793064455325045995472743985583382268933409127818312646435954425495391894083050076158934502328311221472766732277306760630883499598790789129990369811512623835966990830589320213335930739008412005938309608388385293239003192378281563047137764582553236922501576419222239695854232987375385117513633338768801089876827817036395916039289343617861983104867321985539355941457506528092398823716422109298978046901219150691381454228226662963262753568545670077483445574014159503753274109527460786142159074818244502255739611341587344931641051246696802478622861828146966713102213813483548785703018162846088031790202406162494593338658501987697047466185306543104795990480659796934416059236448384761157798939930663285692616971596806058814072850934442770075063743386344039091158284980527603986159831422878553224400250307331896672335432955651638941083829298703817513630934224558694225184252297409441164541650999360758102263306070633988311077853819740796424400406721678579312413980029961512103122418528386829123139178149354855983935084711965839744492083941390639783697872640041377356278501508412010673561649836871522814841622860092133890437330050976905194000887947769372149712298407317098573260542639337206816937785488290993669840529295751805227173562435186340745176334516870721922739429480778372321296768515483980864755431604745908696147963971676504065492926386562862376701918878403344039476326007384106934380083830785788684864219362453560254628381700993514636438739280823631782463875193441476979522468048124259483714450156608078935173272184445257427808400754855835422173531380332032979147883940296731226041989533194618639478708627720811059993527091996883939683849330309289543545558802993515017062090775478229751684431091989422457729141454978236456442466611290491715461878686321802694946424062227636262767740339997125307832759667012844167528949933514087301559749248836997846693699576330444251243219674693649404674722782019331680342214565380386547746126214660344882265657068402944153755832018307477691387153766155602997757582758007019217875096341461749966409907694865505737940655588688614665691626889662448229320026128771288215443919497009775165826176404930095058527401839481747087072600089047432870921402955207047342799271061271305468519200056632396729652700025012216546422549741712474194065108228222916984246745123199278321436110570180035384651622805699993172756680721186981810877571608212616617253705161266090929119448117114290347532177894367936773016329827486690205275505906428562207064838304933776492605856350473258202007102240069481052210755349504018827007719490780866768517926849598186237293890478137312728502726021607665971868461135249262785225469440991797899901316772423966143844894061586154747652449728977906542058195482633632123942280800840763576973316077920896424886300677057808942369994353351056260401822754102676236338573814954086688692268740191051283669634303667612395436765677125637541689489077007976091360395912270916327421731031531693153618844911071933769669961754720315479343726629148326255372154210193070484674979726313795659519746688535360244790523719442548022890411335662037260312102002290129028269760494480334829888834523563472322605229902342220336015529075867699397862597368931838990192985122838680574798553055463485060629252645316025089769333278445319901728621636290985064327470510095775044813712882844735195734410832583439274052771058241160546673225666838217327621636674083213286551422527345932210418060125376181349081371494880371908195341168674974673783947938024384633545709217855436195767391894154115938359538591473414492417250830640248674180209314336113689337661888175326699382125530041315825798605051793370497519693536664234583636489140734263814691699679013821546986293447521322620499930835399652686536160929382349978254619288173450504119911952206912851726597883101754433918414849840910806586305326396178130267511379192384563080026258057557879692558165754358250431183639139603511518322335724028080848975516185445049617579859046288330213174143187789400003334074890190562025148765485857309553031076652012787583956367552488612019835988409001799688145871764941602526193810085155573499375415257159704060180834339525979301340441288356111301114284769118921285299686408426773169491684771504486222770240420227107178446677006460081483001468449452680681809968774372442401546729086594447923734416690518623060703765191071952209269876845811728899517899413591391805750474863995534162321501939469058824284783523745828399959627538075096955824675488609183106622509173689738780444235653386900589924261302457379033705211728439529130043453882337471173845444102713080970541183066081003085433187577120799964218151966434166512921107755584071930042601552644988453953146135654181634910461794613592511475788801595673147578843126903109023739186653285894102491224247568006036605949405728976351990927894142973916585412998632354485358479990982915590454149998867527768624232122798777186891096902032957376772460840071851972335800602335839358995553633959007801265079852972330432461617054262477305677246675755208682666912851501114769080578198337751221053208847587316442416861867717884618032937663118324937730696588263739311891755198896847516046210893048194888894695685599514558766595706364666085130899186139641363306235848749329246671353557381238468844400550267552637119014600643693163703810403127050093892058137611724092463576386531054240046144130585042305476896669036680903213950223749840461848640041272958098579624917644229906411930152717300417628237289067755703007714904127349037788023407228096288004949154257149121744766737334199435995578358513926366037766350573874121858374994376832481086557604425949761715491495625782483744121096554485937918240714921983386179263635648367537213240993028282843867943222068407535182056217224624650886556493141503856348464181310514212871876182524412716845388173322550469920933549906509752972468583842096821484452038120966973505624419918623608750470325707780199298397995361983933067809027371991500004282193916963570225553155389467713018737934862200383644506876645171953764611111390579056165643261990703922906793487028300041711186203355939125069131738915075678874639435452070584132913754359649877851584540899702372622141597345648937094421412676564681332877259016476923858686515406869370955111023319649603259672486241505459584993549426942108585551877969638929758281693034587544083094877153534030884116861736333303066630301116506959059671606181517504478647361697059896444908150291798030586137794999878658323080695306329285621450143647211173223322644529864308317334867014132881999581887326541891546517610901549016414440491870326285916312618375938338842373169448780345104495299930509508366398957518899573026158232575573777382756741312191103321092852354739578344324902442379022032137033547457915365401998825630904247920635428196496884807300203860084605794045910047686653939682871541402245953002239083783100589721831912830585643405689716695143325247817000376308857088036399383226803905446426085564379817570178781553300000602518426511941526248075033944205483975166809187311673898474765627669291071728076963495001477389154571514229968928599613981191430493553227007548160190339738800407047538248088101271259470640854702584113452025077790754579122033193125791509955412129906775003277168766014714079710901528847404709925239778509091940167357595611780515495108373810608465757505566409706567978173030168951815684524306728993222236149890171526672138714551937308899225370741890137803622250284417523045757303299699081244581319672276718740682591515746852881453583637467450585862161713404575683489350929609853106050564850043872872497923800040673572193451822980084178461824649036080850209320720369989698452681914394964235915205735541811516426649944522497221443413212174797434478008522959095485611422228701536226440480359348004127826054179294976598048080415767140071055827038087796401156706985057383724268727131371868010985557473401052279835731174204015574416969763331861569320468594117990044798584652230886135641023462776355536375374388073848305879764039905602092643333877883057553357418512509824032016803250393455587559458152166022706937835544507220454931224136436667915884420207075882802523704665604182999856129561553388461301212887806776525284450603498416039193959315248434624634861446411124449520850818735385786189359944857239693298870530871136938827679830403760000522762829589170880513836884954444133321726429331449796345507927270695561805158049357134180391008789686379921476223385907156823324673007411740010648050572018595594529251032764890229920641006697959003567084727808305227295520571186104473683724394094218296997570677698559932500365286676177273867838325066775786728888456616026035865060032155152194308971803546110823596069006050998405772442735326693237963143656334788975090084069608407596299389224003350028203501422560654206337541144852566245591468869798522729853697259596061515521152096524990108920777220217488630291575447241625253728147683790783243242933515460540859448775047272896425285385362314030129494457631840557433145402707695779913769473101723792135642163992720859684541806384948923378542646968250079011877837992958242373605160227629011689058432109989166975261152085533927601089700494886154992205675528036139812669149617451972035423084147083753443345589704534181924567593457195899745945790820055918488102698611160366739712850726651185357381296029061340883336425209220001760374166981429929997733504573594128587729023779348279137886451113864108384221878384837459822342615073280263195647092332961211194453519765767815189237500628173394828660546494006651010513249423165454306945903267984623317981392896724285955040467323454152757550562812028978606442444447573443740338780158789221597330480180208105241442821368298820810879691271175337945154467552734670190388035189644205457258738678017179213320921011728986051882871558650377130462324322043013114586180994822749874648919676883894711943413594560121262138597169312712718980389081024193057853100344436068858924110827531638546116164427715002575533026547172317114909539997376524618729828452920286979170453957504850862572805666998894273580358210908555505224307470372317355227095706410378269210555326230489070287632616055320403868512073103539036554516012394672598645624757925915536544315449245039785310881167360278546659568842157203209853041023627223670253452694526496092838009251860041501548591375347812203474247818754169209514882334833475312047802912399695163594854010482184853437238112312973275406471050982089358059930524709919732331030347063153944035263375130990061535609341850653105031604409025141379063900989427821392895997707469061421984163486457695634699936642728828987286076121356215823476576046004456945598909028418732595125192012824479578438295716492606596422871811817566903406864535528645437762414177873704482653422978146593217334460855156333317263726271981703740441794009432939456691676143056324009179925359393001321671284118007168825791812295911047156354676137211979470810283485728238977028016581463880449091602517161169638244142737853423838721377971838558741405158068202983456492783236010071895808909874271313027419249641803427919268654712773298004003633803319404827202281491056648344445609841289088579395506018309975179581861536063677487550053000959553159323719181106769670561208314212159685135313303300513995807009770533454051387938653903645362403032612481252612183029542799180046458603310256498869663613182885374000192113828357170284382174131484277618902117881837901608666776968109871486075220528155209642079719245741764182419945088932238037196424615032391385675704376972026708500320373025534462235711683500366612895511961622811607770436281195042304135832974092918662222066298571716373559185764516474116088641855514578365354048945588540932407174109177507216872851961300649806105762291404358975198157995586365824504924526740898263465098095179365416034247963801302528801166320090198496272165948225186843863836669899813140040941184981055332792672556384126505574183309856964058147262696964256473049121399391522377528588889514407177618108736256752827784250503792087740310950810472378022927473401075044733891582929325260892361871990637133751264840940253727903150458274860465638922695107249094299600910955706026066019700944793313482314397311838378951054692282505186595263555852064011474136796643276722382881625357287530856007874458759085140260116396555406459207365165871050860322301705834919017078290930067728765465277820106136659053093885188009612098759325517992893401894281812880320457070230416948630203843868477870485974221829888160757790142921307223580595259552195916586635797472441809592101610527562042788221810007030606447558540816720071206580906899815011825300904591518042312153406498969541411663554191656091087546965546639432868387068415826164050389008718548819839991389073711049978515376791410037374363381565389659037328376285159468812550651810824474529612215512044256214748308374667770786990244587303337949409358177253977973376026063890141433256966214239516229285967049889658954930602594046864888074046711753984858511723719458747958596706375235022450950752269031280992346594581194035206409152863341941416785460663833735078941315924600669781787617079092668942224001656220191775353559861980784821899383588206074741897365430784602174483987467577870486528970336845934029914306039611661858171373490784864417101894490891000740652480545612457729061359940608942192918010306425280183205402710168784397305228743809899451476647417026438409725078048474611063557219877292740350199814468986108045170176919511612300323917870082229194412002472138135740935059139378976705337395558702932604927695015151592834109476392853286954292517523264169814632671792050113715948751069515036144655723211562826907831181063170824088071101333681766216327715633046978213998813231151728791114866080172797988928278465359759627535651888118480856657002291677254114984744736978347415210919545700596228638260549561600794811525300347144698867964304557306251974015446484592356639474503577619448928915796892334054191030755559967542963734889014230209649722077788772756430817516553623514544925998797754755767971210123798848252740331898974188882650875792132418327134172571352897859990956582897826772111018194326452625264581224009667163871330647486086623463888277340684967740933380131234727090150170466063493614583201321584650390464691078392019935268016471795587485031605022973271661296056990282306564695853804758487187257080350211474678229170103064833166305074320142762317358059666818251859944947759634735460853326173142530455268545652220389447006302363231296016200354652066366292867586967423838385258982008521628283959513662869477801251661853825089076444184912001199839486683767198132085491331853921306937960013824149027645807401907684961321651006383345198948828268131088045948807747537180534383218190568941327006831247503024204692238779164742291950151672963961669450841602441219337390057597204035953163490894671281521993675612349007288008638929617603457350743609179442563579262689628332912637173851025524644279139357188433435851015165718868717708709031241952073481806918544412874270971314714300678208636925378208792749319671675507161435793383734802672054371605093660449750715757750524608923447897521551171365136113798085927543540780061191807892651685399639223869445588628659026710428712573137047292676122481992237487910368303215409092209678454942421515047618997742132244788985479711542998107182633953146994126649658754193864107612230129140125001129913809628639621460155948689738895838494955338575443235894931613022915091772265375972500471228228424757518962872041595063575918969920503731866501721268906649766249259003994617862429001412874775136336963403087736391670052697095890404370582290822146630612665117620179533822537314900863081640493502280687292319043190394695332451262515516031799399927720095494144307108536684582116080299357364849880324049475801235476284022687561707459079189790159242927126523955727716829337745964758002191449547324612491683969700536420876407967849754038237946776419174783161114142237126985680062873202463038066142962274917834908795613949708774495891969153743367961981190177503005270232091708528139756322629167757393038852470921754599787030845033790814786438927217888107105060803454693090732267844371132172942371135766933517700730022260275597131487321783053620464302749667667585760509743953617342865541488378957653151322638644499074072899901622853574051278624234463020727399523137003564865112710791000321734305410575450188808742383246998037219625176312716402673305639589253054544195603749283145181052148337631620774769655287348611563215606172110459918439323585698820138845817433598344133154986629175456026761123513688887787414465494539729185695971491978799898435866527970810609671269666724693712494782624506266122319622143110888018452048010462993849972707611746772885832751152334942404789357359972830489806628860444046586001937467678127454886555360350316235823338863449107287584119546864058521931367302591137571274016903637254307381995515783085567413186209462850161854429901515034629483558871332122512262147380975192055682479414274520471844112835430403334732060441345954852154686191403057045133974860686073613080910441884367600831723754209602989719828184520136137286767917639541218140346423021442858312840279670322052634346052131894460185279539037719796836856681248866030246609299171201448278077427453715719819346867446846237639962646241542398221927308409302238752397841922276846229686950785236905610305719540576293752332046795316337261236864562207340790738308845119818047254444610681531024051114827015458535606421602429889453900065215591534596436400895594625343370436140710897945501512991657657837704655457834469434687330146942787901303448319398686218423455480101337967474964229432589331551122100846341545807775413217379271667089014517363195533082462827382880604224437863574136561435567299115565903404336306737374043170673658453000519358885713805754576379154047666600480194877452016706086376007936566924923441310543193548693096371330209696253465316658307866581828732700115331745728691325323323264978395022846049653482488141973963182968533008905006892409983317000106107482863802901192079531728089170698294182198832437493724921050317900883052242726034219451608293198884178696868582068592909548959486081810621445212127293044598789391248248785784380662968941826359907246139209885975867328805720048237471007425444808180998141974081628430850826470402186451520340156075418189433428029559140683460239062398254402387309239130928824718570107660967960921140384494518935485697182938446131457744297804395112111709640310353926990369182901538385225728143400762008528815534496109140754022852019663352818223701070978776016245022555388739167114311118244205417977775453706431403990107576786702196937528167617118750095358859635195166767444623483116212678798100441266039976088307367124337457847445097052459952055344749414586327326885006120747145930772850658908335048571579157138718776964560385336449817347249216202727898764663369663816286738013714522021458282120501831414870518789678710458670917300353900965922609544031542128137592224970105424110192309513296418580328293323083644485043146977357869635344028930041154437916445787325710540320870268167077657950491765206148508034834446516017669313057157159309774334241376977259717285205650387032923648038276552381705583136685368479183556318747502918411615544915225025872196336747974988120522721124627661028696879649326908816979797835608865629745736934854191673887724785822771241644887159105544663020574525284479000672876675101537816526704412140338298661884374998516012755466443460474850847608855984585061343139557943943919234081969258682702765386618482830173934758874040769356853890891097939143738961817810173924068229775345187814073416866895498666878077460064424268677922560574864636494319737623449430819079755827556230720691412577996980384696196551440170991439295058113676423411269575281883107847390993789046839967533207901324961066286455074781278340841839891022085641650507826832505832280617502235463767443835362650665676117217682126112174020364767182939431606949754733930529827836570864830356062880773528652364204896575364353304993422272863878137726253484934834925656226401449727771770776727768260706033625872130050531117302688638654765501927701549078707509228037362877328604254478773394409756705691745538063495344286994863501777088215801046594751703044761326175263007388481781468133088826655149873898615801429113857941740804936858631618681421137761816965696217736845924270710098362395578877523853433329692475521289364316285891804837518173349567822287190672734294580157003711672171575811046377759148034749996303059079250883571483421920081763494778564993459806333149171813835633221353448640743236679897828257713104506770045732255642037040031125977584271594166564365774920929428568750931728614752603418539198090274533070849202403284155459222234769492214590567087261741541108312336671076966525915823293361603161023475627668915884787657217829325192474474879171770703298163151978121455733612119634908705806502999870774800407506230703771652731553734873061005140410863481438697451802884843725755563454012585260804388535404923538113406605229730480053786717076943290472427390963779597250115707127761266098532418035566417342053327209715337977238696835889589840583004814910486069955790382074734681964706962586888596232835821881398224626828247905998653122408803982928600009515494979752552431482843727530169959567021929135555373919434600807996574396387521304221774506254205821029808500215077480033518120984361527095329864828694804121652774635044310057937602819461878301960327989567044988466294896599728839666597063055077424896484362902969711291112008645308448006876959320435057700129467853265251231511605077292130741031226429363042565262453730127586167614519210555748784397709541110383928518272671761280556369601384612895553118859045539649094384873138359815842901969210755495008938981488969017130979432506638498310966036877124110020161190907967491769742304748009882019670174556135110914204007437416328384368058680246602029371218239827177487821372917217499930893086050724812243653278651572711740545520279645621696006655198972939225089131570391061445318599654051084640281775569368192824556737467350463832078877129704999709640082010131352228043994756346295802324823483372077196068274862774137678571153731243913192507778853216109617555858282735209561562660741487061230086275971283166420188127798196430457280716724481559659958611659848401125454447776478495860058973764245210687706847089160352222868509475151981071776750876150732158419423652661690953138891760137256744644031793681194797913668462303935119447681535678532437086371474953738307034056866510828757746007608689772687048670639903678594580646586685449169565800039412525589867913183564516284575485791594810430390058228312420219995391778706874479061681813226728989377981071630206663470404226268274269575562373238718079981867656357092159834033757418579883647719062580458568693615990708681679380517452960497773320324456157032072021704138008581808972456844643158788746280514014527873849834662580657622511094041593341268571072806497028374957610021667749168992686802059519267006746485654238648038586875528232451964305212735869956415438148298732072994308017670308534747754497091008772412239721253738200541488832965212947415934574224421324519614798365051873463279559236403721071875492540287846709735394998372819560896388171166746956114917663024095111395926020796158116360768012935612809733446360082919404013173003263015869746465052591483504468530474322758863265405690012743342346187617011491001152586419410321960681202586102123012773607680266216592153195574756404728834624586964913725085084933500189628150891962775662285971268547727607962574270596813772880324603225247002693705156530737117528698559404073842088633871157073202740909636966639301281565504833741294659351224549749441681329370577355352489480522316336803517289673451745494419233128860537903084669065593453140228464871928556983454664012286028866038258140484695045390644171933239632548812308141796575563142367443876924923948025674063632007993529029009236562307658734983432391887795055157254196974657005192960691563597873060326090340117712050251568961112243176831933023451580991071307746234732703689139945326766322078702842869849252441793225658827743860495900551978078449417439285926822383806180409430279139914440320451954533889151504871166880671027455469627898918419245391247767076262428866388466180506672037221797466399363748740295904808090800141010433792012514952680951844024560454972463508489222593173294159424230928534803919580741595801833997307594282295398489137824275712316702572431485219238166563169283468105901985932681154711976489845829752446383862277172550086965081981285847769563533503287788453972944049564927709048473067551737448669598828508022055471174484747116645843339272236895279081199033238137581563680613400656060004012250524832902023587521146579002288409222260079358658332373107510492362810318901298867591705024743740612071070820451208533174047631937990453609517314189050382977181544156082369268779588383979317256930695997067674507956827350490363774080746215475243447319408142938117699947670861553162032930185139608321875217943015797774857351126839960230223566696560838096651309215651332893959214547812260661809408750189615708215750582801861093777523534734388714739181482159983667790459518691356192739468501372200923167175382108294895321237494589981156289862191006230458086596291961834069436343008222407971523020586833604029007636263969351591190278152263237485380461752904677783066804799631875614885532686345354723803525533141157267315500144670050232188787046504050583231475113912599543510032394907504538275476425193216919395562160500115704100518506752887873353888781293480840574188936897676584850757275924842593050550245726981670158078063580175573975362232872839756189249934296392805408537004032222938447346178530518729514238497403172817433347351390366497263198671467072210299234450259612931874972232278143859124757320120576196542568833568398531417770587987109425152014418748998186788134582220718297739979425140868530257515408734432917809999967508156913406439370216505078119585217863798820121366646461301312705481169389297571715298060015710891562622014639350903813723296880126737145177187620941733813009163593976888608170659136963606651318030243524716129238268413639668834790560717108917697276607592433776417227722769299479164351470420608264254317648415994333146853751336071408189275571048913437330342415183943602752554467018153679959878462752871197882241212779589842645256200063295474533333701940333864220958474418657900813998661466838286197728402341156634467094081159440610531439231009678840638904492363332975001785378208685354508636929304497704705788396249132129587462551841714890078041063158245174461716970650211830781077322632635113109493822643028989876585860943611748352735494943112426283956519965653080738743892999148573830690916716061949427756661954126048654600189849423820280062978496679650566779586204326314101521902926836098744673057167929224265997161731478424094945916878651444064089299678568734386450816356981066037832166297055769165627928923984306190178765011836898172803739777503227776834348456783543901871793544556591898256781306564728792830947868608624344636641968957613802951163631912471170847307688905364535511135922084664887420478965413516263933667150688651574508880010355830903813600298416458816747342528531198867115286731221809307371142021263051674291467695493014000597524668105857875071069905323267554076680585706084192257324684656852781376036768702555591398563181327397242427722560129895210219411144773505783349048259752896554059319726784856672990096045996903157334720453512624380177643254792762887550644811938139432359884127112926370213491336048350163918164212880548563969415364382164502751704915174944520487711124901983790062096294376130809356439995078518545020187752478722242134357850665816168891416014901474440539073678157087959179701758614819791622099061862412131628203045444011529017426901705267515940469558372205466528668563209560420560874563205214462267422554009593104732095990959508463353788365076224135532157426936775209162875069481168458138988876044158872830952052931042614877124632147707395045795430761119589624996500000713591119437514100179137103088995706520653303362508268576120877874386150073067835971500166978800305508826002698644137185915718845677057302125661824016963705856861707469518197453972883117539268069905226092683199571182857484254115419304935777898230931937576446316833465303610297854310533145819994815810548984261825849945951334524166336541308824670443940241269101617897162193079859092442894813087076197234986443607303661079842830519310821475067893044504285660297808845398750955182524560084116004376567617219505916162474967218926388163273673710973811074518681316909797270155291335610806267556739542123198917132085091914822933924461361742970745074175412628461061921134633236589794755356727032452535307573944209185579556756737744111737219870489818130157536880712801576669892645486484040020009517712877728884752797992015495163825177300677595258985425296117566854693363806628098932720268277730545523359824791838351862357830062366763417904081346994660030225024968686333767231116934785218205356783375520231245486531514191559353691070282934200668755127818374430676244030750184316556478562284451411388620870085173971153432045893708565573698182898929019687883207965623316818128991441658667239777132898695901212152124768842381063490646356580844227689807262330126255370470099942338821338625118494053230144596452560881913789256128293445776073773407096540503834491178932332948481365009563534662025811418246272439209990555333991343248935207774054278013588171396570438783792363583609984654137692729804083104954511063433049564864753595314518072940676830042581231889349123258625313473773264205071355940669060343644031789914349052698205804904579304924608758301369214867987879370970850407038770749333458485737756315443556683810179054532988704752741078941128089844223847311903830470115997067664583009795096795765102917693945381268818358533051203804956087570402711381603347416375251958004544193209200872929346445099619190641306043978836119334974819492592092198849889775006335046195308116700468831665149817462342986098611407754877574777267546278102431145439628280310623575827467249764138706870764545278218209659231884193761364125874023563303165385005064964124588143813555184324602253235770221553700857701471387324908031610985817223112631658345609351742979630154179041380324343152657818640168529845881710664477822343211789735751103576332384091414893621079416276200443324788119630949898879380379046435165440701670885018319076433892932435917162577893029006311957123560150146779324819253360766347414913320283764728616931948732248981499568391696975988198721525163029602926587132870231519912277495931584951804001126932102985022460341239455864627709711508369364358872773861054808247071091775403473163812849181130343421795790825213471828143211586232972320031460405110051184323582592041388786174201311284401537778835366364731157704977909870747792330244596951051120076159072511790356401578522977122881239632313633722966204688130998441786222519920063745502972476607085565342658731608187541819683177221404848140345117481353691320532558814315380638711794428899318903865091891503077112110507865115600137357575152267134282597116250218420657226817629979515576510147018370178101155526207276972864753826048851304665827637913695912306939229593348717553547291248357909908110701324163465150777027140748901419907121557997967622744478044555275368930963017327344308987818741528802826605521684558516122074946148209309741706724243010460076257301919455251228406190516890815810805283260690149195433720619985891598798378199795720171768288038717128981570842919055214049036402499947653820485487444514024183006064881754305005647779031776278495715422977026383898285090783449396544900854744831445863287842059193264889554008414026152097608076177292757035237018922518155701385528489674071732846651365241101082651530565805298601999696924533210494858504505594510139303019139861007674189900545515538301192920335260125271296052144199688956531923954437751938730641564734492851019850186065236180666614577167954641024654297660069118467034040144655410512601151795556063174345479270757450233919565771850641040922598446965101607319176827802098715895200906581079284113902369650671770712868590977161130882005346635420812494991484338544350557742027945848705038754966956563198795625149292656378728140641403080809828873226086002630090419604634053119562174205430150238205642103707651890247972388764649988672241901878981058998584445142629907691520630113142741036817502228226561637487697558887438687987804757831845051635930510475590620106731334253717424875606371472325949085429150375092727248706887553978995474737958687053000297449450367918412002110957612047263573038857637926048936989143609329584891343061366634491984541221798946750846219911347337146400243767075749129160548721897291755593752622880591864151847920237949285085619407489822570518541591678388377339255607324802516164483185192685541289166465292348490110919998350598587234799358392160964954509588941412504913714495854350862787757477700251213823433694775703547449969177243784843454906097637217172005789723121781129192604624223397036928087759083113091823796590509733240078432355259926606798385420133471951302968882044005217208173109752228701643041438021791305021626729218983966977505804082909461554834631882627126999057182844797793337803359223335921056945849268625417145474838887837379507712298619030240376642036342916713198738800039352243899522618436627869943839960651497086927233562376499745968310744633907390368320387916892948292982387275440229609264442433592371233227063667376133306358320951050751942479528489975444161247194835539137858843005565641703766932945688204407193508386714069480732185194843855464276987566278997721081561474530653559272147005364142466073977045360004687615486154072359109034758616145360783961453176286429951258047107539630269160399786188464621408370510458057512303276433223647146451182965402116264044743329330903557902560818708816677688062913660468587162367239053272991187142562135801203763756890723124373153266187213869679854510301494931167681399602594561980033389322471750384406143164392472277882422094980276599933258510175196244495096107556047542524692715083694641531105383347868851873797636656446136142212976722702418321285641768726839536509417220461138849822566537177809621834410503414958377138168173135852074252130016975023850393252693321858756505200170502241042197119545250338930500622737282320855191218956020681699690323489001608794233486525383239013193836809807938144817466797580993246571291549491011242982080056421071011097954201391222695308988986331643067430014503549471640018500570342008052804205317329694839171558657551351516906623895548167382730660135820501977710405087077890303048727815257928138755580260292693481220611959234436406271679137685355297781735088839990852374785305929655970263457395111490797362481612731667890062287989264156994345308445485820264553615912334600546461147739252687676139950661905130555494728258425617784384759419272101629549864148951063117118133706923063061584979925692892170638227774406351274117081002845354892257448213552018663625990397845344562495758159005319340456030510435960931402452011665327122029273626095215428645876104914848093572156915452357480157581392548061467341048990337318842919312393644981138443903730294998501760327490933830359132336296575623088267324872581965869125444920396543717734482092052528133773871788552149158787820350378236175236586617900913845353542970687638781286579934837037868107687266355885907754207501294999783704135044056143121233726533156213273845765258104846329701245843926680471711568626701031657708769178313149032109393647365184216323382299704132220874422143525878673873311908703822053018496276753640053650207908695240822652302156602886287212461299129016138104675978927729253956807538832255285460699002450260137700272134375716173098807215376432151573329512475650719049122359101731862405861138869411965099131524184701802734252988202495654673466206480496331721157982591708401402875654839721838715704858858447437920818709341784674354153692412717308387928023430049362378319206648827127304697849362747770506896491005283952747124903434481634414772314843054035820959431835277275245376682588179894106213015705687667095267333528047534539389752856844966968831965887971227597571286224349630110883083770032207003260554916394109098895659914350187315289731732761745233842150530510690718889952336769446634400857411295646743219321452537443945394209730996267339518343162126073055544104176506350226122177749279024926150748972425686282573850768209987211502809834128990345067209827766636360348534589000857466667896725356594288491227100881049661731682324427091374659319952535937614426626258506579730630612103246731712285185009545833613804041242214651139529999025491470073899597883502405360047670719888413949370717255990811021095400874294490053821386874905818657129286113101318624875169263692897265809136741945391060435465831461853218774993868464703759245145388222060567973600922161132039491478465255557780152845554273201062548431550060796599904898555797220276694056874421100083840281540323334861926407621637521999880021387628016152217832737393959537278438054690201092335103111920836572099351584926802915602423204170989182980081767178314775836481437944927472895189727770489806527984432882094440292649127535033694823185638796020229682936957945714434862337800054457806032901094718342458700661248917838323917336712787638233761439955528963242326183864213172970191333971421837766581268472234447012495678098066441333497972733594454416565840778416725604500794511834897161064736115259366459881869342237488342747253114199321618045510781398526896554935561442880214923092179279702107374589988477220605538854718431781091582967839877261082972896474641127079552886920621828596968656057456107688061220410551588998684032371113416303157193932278370099354081510757443474909910362537234824934089621231290037199132084487775048390290573069487096232283269897259014718092960842536574904593416803183525758257642146317556859563892736270763468344781996290050792453569712223498752365149133067205063077990053368811774230760972536564184279858004191848644503457096479197621421278638787724491089692978374879215820111549411776468405913030250790321432402333278950742310943240398205561949211286230309674261628103275447362071668546954260334911644924989120726660922039068080368734312871878726021186264013020255623931057522120563891362360119279805621372808630545168335545679329176573877241345030752012954207232488687972584137833028396019435368151918507123707392441487431450534791845593464115935959897532080492564950079618973240153203642082830531358674805804641772430535356268736513711945562189319996509186091313852482576647319729212707090481110235830404157982495596952077016438435322109700215006051484293327857133617817918797154634974031863593044682563773030749092774605354561340270594552003190235318599147168247016410207587332564530183372876081723641020483696646248358231181135274270006990417980001582748537965745362445208973159488576123365117541122347935327811416161271730496529203901959695324547148989302353525371707327535528269300320701268938761314019924160361833073972009524313910084197197667058045409918802754211972055062187140156365047168611602755230619620868821364477838785747054818321581107644124953435927845279605211695682163712411528950585714586701130528806972079065944170441192673490323136197590611359449095592666525748829952374683039873871031063237073449083297731144504506649961246496149467927522617646335086053377663468372374193163050945692486260519024925948284490828090651713167644945034229788881895442837636415859583279588041426562917874549097142477133397303308350263633960431207296398336518132391495020514528401093971253829002992190634198279556896868374972343149839938816269184463297257170813464171747585260008352355582187684580077649770161306181457547663255851466078103539722184697338750728614564637772577559189089482345042620889289498281123386688985957770322590993252721089245804990866170577723884172814890651409429206003793471031909184682531102862034159866076556097857496083268502769446445464351728509466760871935011077660382352067250251303423491912745880668684524015075031862306802509416293361380978111370555588622798485776980008488548755053862509239272092816298815761216621409440656593362455137376597468883203277037271190844431674865757691540191978760517059853026024355781678865848791387030009725082673766822217076057556891181850753721889053493872911223450614874533160311790358670232047295114633618463542580249702186926106890122583488762785809260346397368473000919238432270038259309284277845962501972618708615244617133637246817320373481425629926076178805076318053700153905598107070348744712295161833584838041141956209415146773826870609789700531868858372076525063523729108620050823979937898573751990383341077309668064627022194777843837333579821447824631676908433157130079467774237153840769290779658101950018091331185748720456918928053158539159998894481105555528613043479367636111500666240767252764793654400706509468867433312366191540804255281363153543732165982461359460667859622777158926394053038251294951774073696893307007397023035883990347009430177502595248833941386457231426751047398783749909850781991005371399730326539880153144239417434553213081002258065507580872916767001967705017996120474923543126751654612167998854150308668116919619534872914109769640129368057595816890964892616717520897672923183742218342069911824007085212228217499225382032391275196459142500570814624564643549054722605244014185428291289530127182251716899160206283902368538871940251996766566667370732355022781861046784827966930732984370909080022575770011542947890466814163245268146825582693433304615815095655793573085398590982775913424585505417461154856062228116694065601463908020862421215830727402706101727685208796675769183611767260281464835885396948708879352913353479127326975173224351879424907066852630492946536432384533386027560920694748919699211644239027536896884480449415154558424984036662108717585094828545612197538498388242720143255875005144200611874257948656923103982729042820558228995467522600847680810118030566984156175608103263995432344100790959431021181314877226780918878916105825881560147426437686697147322022858355911712422069044892459397229728154356076760343392709607501274337111434687421518794811356800001014718510154819545500451506805432855419058262363563540373171256478084249975571377289617207152238089586684659619574281920036357946798149228435124321001505856716971474005752824051752676733136043843418979670846341143796554443896099456979928200715721494898478739862034978153361852360077055735009405978437382725945282784985919164226732829295929722422802611313127940249396469408993935786680817351188295358920740783204066402341672928247329930188369965702101425477547918236717360809534408980604091636380012322157195164547584202379128620294626246132540619173711484514148821841627498591815155954992684202190648238622915330238865209691342818609308109553710149924893212134433403533992732255103791832018950788793592626097542653948527348692014320474903657104400854041947280663095555141540491890251197210573148681628351029091676689681442693527863526762649659906509393413681287634169503599713716911976519880945648360128664995371508230292615229399260307994074717794548366240437838435447158984733023014257809597235803198193760865484272365816650413210840402033403244744828908701899793825354580276198770970683443215468398173564985221214826438905097835657613264801500855824024266697932600199066321520563452313203141466165901627809414989920319666323465520314914540417463696044729579590218849821810174899738623369991046401972480945863014498992954659379540742326349414830678160023292495681112031058144375346288954254080006801170128010303639208536565184912745063880272579121419220655837392322561983804637933911261985071383678349068783526521822272544805205597749796800252687874324943786742267648556039707957280020396476458940243902043143552356676459705296543871961744156026843827217159973686616148321228683499154548983693328148776309560862527960088799488038417609692134879933679002411878485274628395867705671099859359500780068370314013896308970753590822345966074703645971938075114478424708006261997994531411324785750476506004151287831358799698610171731195386788820300248862164657383971544777544307737774352143091375827969091915223091655106859528716871642219144981121652689973497980695973186651785938550082211790779815167008295975704777889785426732019335973985311819304595144662653023988443071390764388112689630348797950050318196282403464705225255246457437878089457573754651038341411661308621298825420117138793219628364529259851646447858007468620985365538202613000910571827341705631761874612257984467488522859152449035631027586053875202447733292343816658893889329083781125754525378929892211492430822356045545198336877728132666223237081929978276919377401691081954531420113226055073120410060349601146436047157214468836203974765250927377695072842510383737125296778947794780209037800736648860994997798954416006585929653257411073117437287336412234098112652072231650829199795231121089465883284854411129233300233869682244167017866914963094639744289641730440619909861402006517060045118737489595598064452962467370206302416031892356740592011088349723264884735533620136817935933664155226307262484082501864441649512077252940029007292496599827775116699432329748941544446281879333268458057738940544955308731840181115921492657763328389169152510144120922645803022929051813707076292670607920179190832123742511613739909359228853087880313460974481535155214130368762714740524427459209477100204484457721692822022918542623064020830613225550696154117462472974034640559772640739453790584520585873232569010162883885374541471722118404012532547782088343240950320875769926123328640497748553810387035753577592991377037523979638443391171155621172564190404496786339355634930357219621037860195076994979207344923465581931849636568436596150606242504753532220135018237835266651966799860008395407703847501787364804955878687180109111663369304854552214534885504011072893695950826955464562109959033289359398179311296122863417409164510326148788718069991003027234960225023188308731043825313005611966141234796119882048849719789079907170073590591995065090073664770601660943630809964124516017957486531071024067714994909382224741318851130295499499026712578558661445716821778792154151802515530735697764314437477402085965551979583009320838393168580959817153484012286278134980711142234474733123017545500321025274682530417115983688128087074789341732058595455582737132048734136852008166186982939705906624438161405401766765696581190664280026121055527334293079688520015587457586126988004357357774203799681921463574386570282014026566285015544392928191129929453582778235660314096148160672969349184750339420664973491369333530688851824473183269098986857867698314918321389315473302323129186590833600804496983370455391952851408206214439328070481265862589356855360766966691533713174880004314049505893538859148272902984443314634633717350262966465398938745390937565760255706119838756146779664417384563583412180403513024780849701947612616280872616143629329761465555994493832642716996648846139581097370966283601702478870983514529127520478296295167469963157812246840670578107198759211525205022714930688227516918849239310445942484130472151679692405815691476573911189454930072288138447629252397691043195703805181540566809515317950894401809535401603067576923069885556853803423589961632857227148159183615140204800076516226496912604669251958263961026666171386658227640594570929204126473138192387648926911020519143693468742266332172377255897044070667405434193301205106455063177842678018931834857555210453010749255725928530412659660265890463851016267902762578657539511619242759317574059214505944263655948855224962103697763597648104675168095333568663654334484458396598338682156670388094957088813403008171488293167207505213580893535344443300948930536570743732931758545398964276391027548615749947724204448229103043322050937136504836622591434646414794786561361090178641554566028954310830197868489321173606161532846314983355278886741677181478706931664523196707991631061612177438146927293152979623234304339758059374270916653831712769538763409191949382288289814141718575972196700185081100076664829635430567804245624828029628775116460990997797519943793103378868419750468276472329621374510519592823950605440509485105954746840408939009896807614603742234518806349289134266255926133823222071755517312435522233064594226990327843001421005931875736607938717917402171300878316168426018488714171385143883269687374021780427383033121041035345674716418050579687414236163931594715293850914021894072002021071141063951278612490276541365768963658844234266403404803958057742745781115681948195400870939362543477501125991955105603108946779788865827878621961958692046854756899735812047356776350624645389742664207341070830416095049325734289073942243103962932118197767557741595685330821478464929946252848641081780641051246445356501053134019473736099441838981033595885798115329664515866125587707603869940865678151549866549633932019955503784548372154150655138320415987676625107793166605090845440097941816112992277367114230942111981491358873650787419659442558972977328706977529241777043025653729494932344092365873075629753673368345069417897281151728635181540524257019957961938549096144948633301552481494083882383006071109351878891244881251179735225176651127449475392155205251003313300148959412950506214293770222830936327072582013673332643221039948725721064543420895059806540271031184207434272914188561095005708046676784327613822307993187454281008089079860218348394989515709137950069966991984906136328570279156729162336659106574565552240504345361927375567363394088964240441587588015154848988274481621185478065232871620074155294588013304902913242586656331839766953342284457651036719917637726166362769670737400342691641889160403941954986748905918420921051474704043537834237967114014717395817446372178343496324592939171575514043022907226838231492008655012866216472775451223938249056278340179993075849031460575946657991733094399195994607471506153482154581033104206796837334468037131850960076000666290393734894963699371816732179803470805343080729729866974257422415843485939640097748990309804200195733170934896022240776353271225900645482248631416807817492386808534466956863449107405709513602022445697790970686441540247224697689212643557785106424439734750828412947236197752966897038614850056239037463986569576892795265461951671680166950141730763712511351838828308046046289857000393868262317216107713943801640507460838655031981493051855017006980903001161724587015803273623066210518582241411675144466975012568118650802443179011419070627793798798638462529676261944142885221669840809918410777223871000228479513623057438794054160699277045634408089206354439141923074664668786865211308789785829166764280604713955990045848878156389782349184958460297195773142342179577010223452713595893341657950774519598356794619754809231971789339959184588708262783230110178567332901644313710063303356399633764595083764569181658094560396911040136524092525807243628312609993260786392612210620895529973752056547814170958364322981530185322392034969538277931370135161578200475777061890326169607259236112202420554864611064139528552063594131592995636369936273258330301932741983372087033714733014694170079265993934574617864053668447698966948551692521247176734222324449589563964959532519347114508323640787524125111723533655617930472080720213027340207066559077474992630096315419993676469619981620323492512369164905532902880533013962970562953451531902697749306575417477364204608649031440093988878126119143427837405852559612268839318901271536551934372673567047161006676282317697800570787280000749737835636112748151194348947984176720111023098577789199801802493530093557187587450281818711725059780011957726458906125692695517474519765304918040445527470810489503420080851211401369093272836101640168867829712661459842957258870560928651382057532223881946121531866146652060950293143888440816695903121984115035827239409101755557527450811635333023901838238944278336987396698656249513376185812219594421776319095655636145747938630216488069469815218462247755527708374657286145746917898910070502934505247552298449055194419558211253786570716560429566926149209545955780889207350262197872725207589199851842018980847266662917671316589194678474874703856112589150267450108541422880525927578832262237526690940731729285511531276200678439646972243589788453052927883001551931075135351130629925233160705044179276608091763640840057495767618632371825612203349707685031633001597220365591314408883730548353415333848124048535049265938040823661172895755453460268360336516900515794640652499490022193883863132894622362044910680176299250325349345407973823217760765375482287819616417594930488113006927281664439192546117402746721753059211541069895674679090470346086808419889030631274416009767048782254803304355116906570586842461214119202612361812899730661196841211585427176380417807276913207205055787318887174331915884525677337615632608403704079867804095891585285551259203097975058759759233845870454669536928855423998685884461188094491543069143230822025505618048034825158974981343218047390898069951479788988786996231256423007797122970901146583922462163005784218614412456622868476183516640987502861869999146036611761407750132647501893528688164016213201129458355429468393202290220198376992914225272444588273215683425681048628659804183462011851294582174157282185683951058676994518918968645240331352740154459277567535957957320559676396990488514743261254475461510463444587102732523369651257143675612227141997114341349300409367751596480449994589512957036725440637233345129757948019522313703512154660506932896497202795160245591800782239405609594296016434964953199718984439954550072228591341985854894842139628205146679897638094731641798111211135453593051657362933192203194168824828762035630053128377140788636316197486747848303516078909922261518140183359244319584610065500492968609203524675955244556404942790154240644706231547073852296596707805177741852666953814116689352094199548225941591676572713195285643258639177400279475659608994528667543661863793084777833141247060260319351998645227081811679338888149312543641056193702353618212838498089974100099849275612888305070820186212714525659143029973609240159688266622047922904609501438054666461743593364483763312331322823889323224196551702212153256841329161697161108625308699342069755465872753375553936984605449565553984549186411644624132795588534037270822834514179444553242308257384171966736554347436469434252617626261763202085857673962834978670106491894262563156328619466362109719636838564832889235311440268548293869854730178661646985365964464768776923327611590407463155780979790282338768297096754126253514047683435298652896184638210811876448449345348690974460993278339174558538396244071309073252048555929509504083297417940569717134539411035675374803114785358788488125760672876161226183323931488186416282308760216980779394873785876683238951509147939360606771490230725407673241606785076706180874933335952651819810559068513615297955752616670015836044246508575396901316878906476380717436451448047935814368765836389668048055723941123267613153500460727058814967211243476996338726624477562317967800409634685960737146659208466382734669622070702248234645354731260602418401471272166842172675363254853553385950205374509595458614777189193689365484603524893737498000212849504124375351184387302282078736832045319390263224065239310209042946877894640275825767418289492495623239491274383958948528010342011484002637334824096112543002059561942855997667978063446930904307647680362966026415216917867923358324517599549438225082171975123600853201376344174897481490821570685988866064204232821268279272799025088293283830716841980186856832069985501487666327491882717334796629289058557449652169594833473675538070029216279326613093332651601075467999028514702737641452332948010190450161483437565308459125066732144025427371144870020882004558567547025613829946480771403950679012091093254855969967929755578723153185231116409898656375783955231482143165264480807385447663540945729128799366727302963468032031717587667069705304192348921310205972719119355815594764474437358759074816031641994164657452865415552381941421913497382881854416104713736806644620090390573009396392518114354548874821431164007909091882780024914709495455947836224807536547028293025181650690008081535859233480321779323581208571685199997836094866697086245920889472545512564676019916150854958160528720762967695866263600827969635911834087663765812493244189395172868640490263079450849659677988166579131232548584195885160659115465946201542472986234929770563019975956967958474175641954777104936405178893732031088915198786123626485904837983225475368709505850281596923919862356023484611906574995147165288441585736425725383923570631016238592830861402201062237499797847443717261339808587086320425553099799301834158657214596084341180516467647640121910157378049288536816782558293355424090661061761661783761357974883859816823151600454434376413442606284233021388710718664857732757974311111140817505035149159537671925444284846000315882260841737834702499878329961416168521856807794501445965834976494269591661362097769252901290790236309516399785439947218038811471214238499774304801731893419895249644006846828217974619337048801162279162413622691748472783349360518114986379912431210488669842096478050496415922323111420536229294781933563674283178182708683770280607788102421061376018537814340077601693507496451716115998180840029390996348197238499629905352102086998699771285865216050847970099804021310014247275871803845277996890044247140988779868949821080614783413611550739407773532295439713329453608623581114424849030758225023999861153450005791756122960859761342537193476252347291935181854204032760016322766988433702241735800021783123049209129909000195551319645234611139937970319586223476684228488057956844474672736524873736953829785217044008267295674738593675654441167164151309195755191305078177845303553003433566149671759979395727669267261301292855963306418235380676813346082642649680616601590568197836825236149149276482769621844130355209628443698574770107777226634548380852543273170807148106009098516494102976767297071326094731876124241835242262974014704465449045017661957193360385360411643216757974996752276877870819052508547177004547224423268483826892733439895399603664113726659135819443193083502065328589354104265284061125244973374668127753183446288121370065179624912835208084386346137757308709219185190902934548011407400080449187933446145287919992308095541240141590429927093770292980745877971520019207530398914693925655087840336347803584813588180343019889021430440737035555090818937338777102755544530689672805871225603683057972012159722263825822980355904333361027989711345044267473566180506106756911953241040717012284136690475867496301193080121071736735431595809848006235050810679921865101276593734486291946681041944682794183072955412141009840123980440381239122239737786681562813311936389036567136283967671363632096809125373168012568790119333115991059655970193805850432589818785813886447705411541142211758822911319135611894629576722826769332190025416936277930451859739028771666114010328876593069414613030540871166993818424371351616400068302339147537501501448235167625436869898741181777724193101070939652283046931379758494702714444244970776195947789049777764912464232903240320079441210662509876847498930993921747818630253282941528013367448666002798133755645917406300247799135113182374350464233400981601841451653232732473517011460604533503925561737083615019005334705093316471062710078675971741598603171332452182985463848130552441860399664215435501571100965643352203848946196912313207045900876315583617813829003272866592237811920006254689003836008911768537631127469584449376015369465938295391741824897857554075895267362520018596679397657993033073434835721191496802973542225304066738489790175295101688136403542108821490751205685087755001848937028180958684974306857936797285980264949673102278325076567388963968279894480809513613090544095613280304963775638009554513659816082332615814517113572226300163343260060566929134861564755377779959461821357667400430115142102930918650193576176734456035074285350495712733177876293750154823364820905131148168897650734938793854068894865792736274717676344977416756196616044708455302262239902844938807323545676605726588962167399115852753279021463683466697262519407319214698197556905493131883613424236199345926319417037830147946203868798091189428461391838117588910959371477576545051420470495269072350908147920689740539098518274735467124206728507421191770753374898364303241266323663509531847430482529232122575178137823558558289779915993055054551423132708561429013618480645854533630374514441814843957788567446872434787845794867970147718159163732318381836671232008262394302605514659323220123577618988604693072119367316804531116246839476712122029999711366066743242088671865361915613543907745510250022735580494595524864521775941367624742309508869570773526722542006883411527050065238982211131299737801676214863670292702744657555816639938443295991838023335894859037660347176870253966266455357481400030723071692179513458117143890312051789352864904685400476633385846695355110992265664920951896274587281290445958622951738168915994036455099563203203119345780779548896322831246491246240417479975609937725669016897574897957591709903799074689071091963061975478596793287331408941699852266903439974703364280277005110701639077303044046189143743972879012722852743941926892335782091877953958132901503839639132442738176450025002835566019303595134657007402620024101506339226122969034714029108645887511309555551840334368005178615090828573151634244000914005076588690070454054614354158307421219099599133837821989464832000826650599943107037219363918418119126186984441161935536777974583276642902114831825963759709169149096111925346879979415532077208684711029493191260108421446997391995065566316390960163986215259927644004335426886059077753785296065047671018593216207474712566714243979623082072740786645622698811812244502714559457258785769659576941597685994513740848027397210676345346745009335932168152376891361071120056641832583282277287008342006398680522376531423547247969016639953719587800784131215699186888251450940944775152551573554638283873848666648261056568124425155466213782543072602508956738994415165383358322826547676227962100765584858950845430045505136128306847737325604755653039943128407916567046302433669662050765159133400899719418591039182358662262921446272605255976006636494381873456125710340051010489764470702308893311631569835326375647577485474494445322747111032136648560219425784232033270268814921025665511963282275243437962244278851521252235637076256159264204885440432617152257205282536400923670243973520269080389976485964393611933737065964177709863515933140145070131156321521575318103521488472261916869086694924324315162875399215821046239794060026955039680040733443076218355603366947678356603315142736698969543984756025548308180226734322599047222299104024245182392754580930844679226140173134104949095933265292840324182066955827523402139766617556783571130272348880480113919896471462109265025314589682207284198970106424764685109783836261801827478603571595902896651932011861456919346882071806121687400509953730864290841764048349433491048888647211884649060009775886479344612953778460755790140441736775380427279124144611642585220722489533368538267430008438247639347322237309797695251078916863294876008015087635189822605921709371050663326818595045016457457204563628519700819660356446404981104854353402688305939759202990852788264100967236109805389444165713337990403704446661440525347255402344463913896545991318226716108187423936031253495385433856580217571012268544791978522615353192412600910081001024229917085691458545953987102824587549692565827334381468475072216494567899756541200729948163851661364291042272565907927860010660034055247867568413290342253236883797064024348883145060591917034060505930256173580550304690879683800944005160045822462421467058515878234542050780100931739535382184393442642755091847181174104740231760339844789665471985264302419904526930556330491388852661291092284862355156245480739903016094929154859513052695215205304358845362727907964360530343607298400004232821418288092944021423047858678686239782668959878745970899050941816871661034894661662086406298052719648579127947551994554704941833169369901791153751364743971826331796847367649462475518987298701794223650730496805718319355414727000287731375055700966205699264936663820810169756993049239691696491345683971818528496878060028170246183466861507462033745093104651124921067672574717490712809315557868787440329965385569208758330371976460724284260313331682267448405459323402777254082348795615159433574986815944084721129218087640187617365757316229831551256499074643791147290178503726636409851674934238927966652235824639610739985930991270903966774167106660545802673077428602925292698279711989240664055523535590711305840803379057419049562550393619875863285764929321146951889041075546254947577825490391212417126504385108876542132088765496026933004124958891437508133853364901623445087925527879731847031957759093034622566453864115881143070098721229418223713006250162023438152670149706842164996851281465549812946177103711644316269583774649423298867069198919141518441261083696613440859378900076485490843777051729429136655345664890363052513717224067385809893289542994633566872199149631210297795432167265913122196701177373334064484744796736484322057170943274574754791859132270070571561610817783136194767765232562208546121473272461202491314631461359832511664457005519553899289334700344805968657348568015237874832937019080462607178359232407491736434670806294618928281699272324093373183312490174270497614929254633029491048981110587464291995729209241889236348269107594238868961211718941443197948606960957536273052635386167338530849320207654515082677493366809271280036927582260539437491381539325084179527854520580497159193997479065335774099430244582130328998071061574504425128363558522269304181247802058294632877948035681677783198985779762825401861158415756480055919716273593779608216224967031596142710968377230014264605900749403406523219261446292465234777688845348062225095500084991373590933024661587911073617819582921517950481595544969796036132561593110017537287440657565272222471827977245790404575554019457766862089163962245482495477789807125459363907940131601854520380849593950180514525297643116609761944955689892321375466735000807507895231953782793910142596971540036534997625543658257372018794327589721741635743142080245652167572000382585129021699601404571380449397055770575323742083236875333520535819247497809556748516981772880813038927748263530130670874150844442536626256141403216755842303438207880323104449471302756150721440126879265528789732458469252583929925795187576948029404106587848686406322353809874324637720600227811142977765350438806448651788630699084698982127982886764800838663892731644361704300042688147313685681546232636466832723478187963349321034796697466301665508858153723352332875557490322770412289704821131625422574340993948849915916450936651511131900288636502669971240191993231062665842578363595470913922016923897576482560609812744608304074603723728570480977411095937512605304087767448762174381966779284049273126608180310075336945745697353196384592100958068831638494002230046153878709057319239122383596609431052867899876353964518367532547712006496099160869671715573623846840597928975345431690264862820076659299397013398561234337271171745022060563821905289274842852738832906606109946751717979612273421999895790629159047382329430284861203879353096246913998572691868822279322965744131712094445327244799433723264284876460114367839775733386709978143246226397010784555029747040947972256736225382919605337677686002853213295309673333808836683975464587576469389206894688284863733829146802947711659558171806420433926059211390017443329817906178705289308076836778894118594919573845013611048664310852823668147610810849723017557989483264596712443199090296059287589034417212950625527826888067654653447298642601573224638246682099377066394746489468684773066757544170301167791585969402703707546904665995742946748454900576073805709170366050469616528091016899487407451170654123330741351500493047178063120817238412848980229218730968030115760044150360878127564464720019472001749595386545807811906093378571650487305120829120399903525297839198546915101559159431019271629335729473472330066156725862515160837261455006900852612169821545469517259132888080660886431545271203011725459599532430048951898922574122368311105625250753064641523933304060140359983588334367447165598804480589756093083652641502940209863047902088312860125414562099794629372913923368189661382981757689166367416214070935372319665192306946164683251011672751788992456279635028894311352014037047410478298353249044111824100775601420140622672302919611934745834072091617226207481630867353411632710095531522078404611040312568348407400044636699950830310908253409412984665871654226200341610875631207685159545553287342110111482310448915116619529469414727130594825231508819107801424019587098449394801096055982041408847235709120998647647608832895240251271143096854217505655139196578699428844295692198383002989454600328995780927110320699286676771091725772073209371226448678054679534870945661869493210530134974479896291676932211873296366143233660256163649820677094220249905562090549783717631989786149551530619235940693964364391189732592920773127737160638743711331165124814055211362857909338611509632834547129420659234566210403271379653323992114129578717896137417075811721572399601745559464189667118335495468319677992610814616341415623404122165965386597246797279042573086567467298478831291599027770728856035691685014703748039019208191792406698679473392269347448660453403433738591819489579411847907821003377652759706775747999625560993280364432684553173337613398780191443057973650584162544131543736522600769672956347594567660683337457069438300935366810864052156820934838315593826751733491515205851135705770237449145234286048041080039693766092345732148573690401578971909433592517207981556335473456384661511633693640364044618892846992426611339822230112129729027091857999598870202773403790435044441593462643802651607443542765866975009942262827790484689399737016156250824720519234955418476448520101418212118262182772464197790650584818265911189584829213592077481985256478476654766363558084663701854787067700010079157992390313516202963304172036926651466783986547285566291818643313001530870032374013014830155622322407712581370546831235063527363565434004726830802055400655563899109101594082221897675927197284754012641861204392344186249483519665485452224320973878091558403924766283649426290532059449963557741915578953816900394960970670177163754122992746703923927030074508211820878626433143842125640068659060316696642905182711277109415157709515559602821005706131486141700234704438475841767101490063784288671187999940622745664741588663089486684289120160879436290056881834387618971867157713450175818627417801955475295710398097813683633838639444270695224280356171671287768753550285502891200843043744926339620842978395009817794368113544299778186544307666858653294231439017057158810413884441088389712999830121977194276609536758289442499903344962898466641253280204696594135942674917488289015702594368998229201274248672115801138380151396616705996808158284491603427211331066501094446494148063951146334187277948215094990115367485582524526555914379051690740521259797786357436747730377345180284978982923042395611627097216395142299982525621661955824939307945311300088611833366926083688970803347510136661968683374326550489183610302951662792825888965501736800809666796937413663312059140034720108637450241369249266022231812480292560189428405794810102608128363016268610527830666872738937779684023958626791547857649643472213267283370307344764987724550285235713083414265549059691826133962996800712221136387463994649228412307936772638478984116779264942877387369453146545558076971571294178175146525377277412993936315520455199374363457185228439325693909916286514796429815129884142538167549938045707677944011833696771013061920710527772273206916650179517675969119257825880200519622729221004813784484328122241882788040065175031156759417501996566682976523806931311671074259667706765013336035236499983398172696273259178501325687578998113319043650451921615078265224225512661234309363651470874628767319095586338059768570545483895265916148333731077673593646316207968201250086951374334853578685703057071038385140550186738154824891119908040769349710084280461450418801550688702084404120458009091846649780510089287266557152364993631753015974059666477034680991435750454904822923435473688483832541790357077377977849289220775664127039334665066283264219669668959412546247470607738468838493754580027533913247721358735689061970847392001202694425539926939215458375419463513067312987245928617578211245932044981680541854621710964247075738017173972906804185728915984708017522319783224379610372544423383091697578172030954065919901156097779693736786334042058861197268630844031232408695622963616867851511928345973261163038475818285735373030072982817941568041743660014953824677434486993443515669468829588240674086656879313036752390508747991747783597298296210840119132875003508500471195415962816977697559073060790679935029496466091236008308854576050646260335668599931311378502211118903200218705952589478375733441506407544882888075334910509372760066006537408153786879182902456491279329147951866267989461429885470361640421386146648444091015102734864303153652880643319487681701194293553441400587361191756075189495198319039645340633835293316232822865451816522343363407168055004643405595926810926608956123603417254914910162470306435110856247893522889139480974428080755156081315534240293407958358857010668079962315624698026525885027415033366524392786813458454262463973832064337969336173681234276969956634454921686424847022538660068409827164601502431039349301067651044842070107762319832028818593367640237760368253490497263681222761926061710629032718095125498047731237739669649295341851999479774509694104474728429766437210378164231827362258156106533263117053010256884058156579685434122059707913274671797310640968555569405911957719996189324513099325782740645842094734084133172966902526430215722826602491279948528575067634540779874308885354065660799342199359003500192383110198134323263496253299308303027570621029569296917754412697526114270096201047836000863620215452710291222884117301203328712838547677545636683705590786659199992337122994054508867248606626673907478141735785866752855732579583235485862268300432613959101095335302903966605774109296842729324935423789708051400706749403161279159152462949571636198240852851625157260601783686673201325865708944398691034733128179304054923012377994047807393938806718028728928325208049257201716673060089420683488133707005931766758956170573538328721216954788431324513935130286340926450230793232772855741184676570173141152150796914970671981501756326554073054640645498008652276332749418105978649661379348267348372592082747395270031073764820361277612555464613610735367041514590358148116469381586779443267211542604113427039395491199058936506829173156103144718145129933515787646947909526598956113652602099707335459927890781507332786139737628858648059603665600675662017448170978034920934365781131219563767125913885546317281373562042496726876573339519014648880036231937073094331759177272737479870510346376508618837844304723894667307413754214424644354291028993975734113306622920277074222635441835815755020201344412003939609663825210595827258804521251479112460020743507906149034141109674003292295702399604830942556344805938197863627026322123371887456807797700216851024746003025288579431561201491518316385381487287540249046105262761181729308605142932433271563232347236345922633853176273815822708398790150478300523081420603247590525522936892356322602758281089073193910741592245614524953454479872338585867577239112033283082570681049137187985491679702249252630318696931415015785172335106863269001674555701691063239765702023902024155943256100281425337195050495928896849262818282205000276639242280751969384932772240278332453075699113379846718139275838291686659778441726645982509381636075443485385993396962558637718755387439272749438275720083016429437943774377577357640661845344919999650197257800679241113862748522051222380280532368866750543811122651306401976035769127911337738386722519164173983202901759753575770100164991628629192962519529346860825461372676581121792490332850331593936126256546549120077956502236815188326542042095687391934846885440712088170441990931377115975361225280542572368324549475674748937746488259520154958046805748058491898699236876426835165330447949981056801022592759966497153689332885879471803310787615813867508816679920033454622973522529785307979498448045302258234975625901825306870735519317885927905483335054737037178955043172211933806561689011726226279371082655484735327199028595345534131023186561777820889441717391823617031491581588500228261158442083072265635378475692118813498928585849950902644381879736931179103429211985226009132103028658011023753302410580720673489958807413017811822297665437564625656960700523987413244137256910417285472322078699392307193337544709766219256422751834352907811582537791652918979556545336850632404291973591730193504983336714874822632013959352725147080376913371647123475118092098014418210985819057207252007041134822991015866293938396793326862772301123622923016175065682469407152243754203512092090381506030485184487355074956829237348497505924821712821205462361726887154436895437487725116087814403753699657289887899369801845424364209971518927351913276074002484260229565008761644929302311275375113501340790296426588850477273945099327765256516884516629261185074564222233642126322216406474398618231450593970129527998267384036678650939795526401956361075783190079055760529383964898050933689768085486595650679492905265296601519684238520311531581644986223370821363380750554238085289036467411452533992948381142540241390141245676136905879403193980171150958576492521400404219278378338605563820443494362953968352319108811787829488453171158004940495032442847360842071914616027172943928876123274102579256593168353080814025441205919315831335299581442635011619689372244625922591402603270042945428773568506578582114093831980665815840358437359839765937787365432509732164854330497331558713400113960805964569306212778849929807105515870170537262588444069563977391438864339367464677331457023161506424092850131988545140961190723557740004394825476321770968212494180204303025101527593382356349360534217712229064862645860253640470607730872229770022353000318414458146007355027693621037796800683155999888969358891507453448330302240211974057781225104607265115576245381694548875219815917368151812921088012854860600793834663917065705561792509236838513536280510572598433471638645788985458689135923173696889354281003419078757746680195728630224523379477456286614838721993263868472854184707314945344561394743036445449677284008281478015352911934855753190178385218374171556148040096510692772767865084414532462142466438991075702507412468214726182402421077009775219327283512700438609142811488362254465016534128080894606676944584896892522181431704232493910252100603713378201186653539320595488698487798963987016943678578542661734536399418016689383996053575588781154940919125368897614158289852992285752819729189601637627761602343649785619813172882767668194894366032248720999903659484251456652728114412629999410681981607568096495702468310868206028350592935432609166897139637363266415969073136287250717019931257952566713016838151285334226041529610074913268345842830364821396347188576607107520336020436778922983369710096066337594394214162465817063816267122499311892730332369523238564883665543290597058010604192300252313133931695202738956466580068128386995117220502750456537300613724294118115305791863207769290775933772717336530646280126503866923745264709065064306034010018490618427120744548221673365530270902727863908015310825587865320230077799354301840118741912428572233674100122770391398968350321178880338695456310890001535824380832397451367992531263410569621084173171985359972696703900854549138819058794827671415213950288651443360876977727534592361898042755019506806876377628234028998178076119285261724668795479079521679913144450119592340845577427374685914562246675199856358516665142971613109599242284412960767835723023276565842113489784935700506056800977098378937140506225563120157785176865416140695668666829356747271562202820542120819953944933062025297065345006138919860512554531464160563605858924048083988499926927736158117894636151238845809953809092360568369379895531634359956190741394012169679028026984769190262391334274163483200941730271732514674764447181565924011439579670619435974598653814270050602441489669617059844727586581738549872529711158168019353471466261791301621730654211563525671769168750675371733765966494408700248063638656202601420660097335169034040409655595528357589605501910348715577379473340298001555846388089575911615572511282259986040049436175189764077095160834389718805718430133958022941252204403596201455243682137828260340149909106359979670252213062561144663001380203498390918167823461549186531977318452650984636959654909832841897571248120159083030643054484438261211040148658569762390418218119733949038713058362973333738642154475000035039286703722388199602911184119192897662884869010197529985198920559744913805164637346634547500594174926845774812406633623079608123091436807096000093908060371701222183011713274699135436467966969129449004913010079867034995956409981434731163758315942159233822316775251895477635146556106775612604568617827727074276611817938990478979943264777123260987422672961981229957963693131293982764562328466197559803622671345494162900268591560475626239648914608803875888818422771569826572791380900276880856344646436303255422989402832312430081092876829683155592904939914171954883416862870052627232527923635561171425253455214523664994162782043389104700128709861834641815081350353114517393769965586579289622283326128569516476012021116051934408220291562538210170296996155239364240874428091549966583116539874663636582380968516863098782202455921649004419367998124162935126139496136362851545563505094431743235885240256784215353973922000276627619001078080109531386338370925891329493321047904445299431657254045101088988438612772799334931712796393574899670433578249110273958753977036421359689381724002499435511301556776803917436609041054146650926514452610865888952622688650645138358201600317748704239955113916749071935600013884578186552610665758866558199987573666399297724751185762151931040356979921731959242075425828702498220325375929927799175944928041160259811553700176214744480625660855359062052843450861264292420520937981848789043190064761502318916468908899883421124106604734061932617100401998398242234975244821255925293964579767648550481804715656392818233226429767469556787118255208496626874848522104882636547598778173494776154447913355260869148187259874345863967657024619127251201459305140680204480535468136448741169967368698268552908130097833971276985787186901121633921946216109584245135483002080514833613188335653182958743124686079644683993999874732196165997649728394028837062454609074450348230844324272887605837136817932847719466381807007477610094231297818340798019845995198227619319099478846699825781405498023250600187345718313803052161997716678727767408911667055753119196514527874289868886340860097560871892823012559024026733126076224872513918552927961433467755115495391085024471767992997550928651968461129942288071021791948589176673307180015480854912273780393794960776727666175056287727880324936503069800463616801591550077835005955368534700023890721516993467847886637147140165362305849892595858242680008613321347433279562598833083312557769822479331715358942340818462289817658170270322355129944525264080813088126959274646935808996241791589360779045494646485978710075915790761984911892292151567643697778412281692530361873647931220739886465078220784847244796599154754154679136439794670066261985864452738753461316953107325357104916514926876320827452679177240558595658369124326365323769261463028267428060063409954782794445776617359292755923713686002189222210463472854500275808502659484944410453974278629936952599502359788776167910505073589482463097834127305795279644224194156133364548793845237410183299010908143189760234901034822083871511227935852161910432695096931432311394576303818007151912385223856283064150918966010488222432703341435965506203117563774936464614209137736292048183617468566712485430206306980946226472859002182169001367859351385882952963112847949203382573216654539964259098466793632589651142970334217527510179266974121531465915895114739570500747083848368390268486141895751428522723381643210708849174707850622433130334576565301643946570411029120332860257536613283197197666167081923005807111173455599428135764058633577017155491379966143663568655020022036217233041857269930883387087503862360214329002440435898543733508479694678099620948366403621455828778923608535188522728931736307615191021632212752244312886467993926495311808931906047167976147231809121987159691508617507505996754284264832367488632163790029409831909745306456182414372475391730472671754885315138286917418930425092797810652695510755315911543576276520876716949105686096189612003247076410563148417542286745767724779249036509343119792598685949137286484482763909971142434185549989202890808444334154654125174511588680981870748640205582630105078889127765308344233589889652055268113846465711317701821846921416456477914947778278197197310071617955035956713565548940110124173023135225269311909520524875073199198944450700488474991806665225813059554889377146489272045766352793453287380439066131182478414193422059274436052486455313481778545443706275013721943496765730087757771156465453277193256202730766710849303473114769955371477043252028236250779426271494174909071938395317059661892612667395676297652003077471534983127414573347754921814483717625425806103358945537494863619160050292224824550070666716198149081447988635013651451461414097184169296884898187525648159980476896803633304148162706623207133026162497158695064480007181416684427970411326007171848750956802674304825085277124296613201432067885471564788284662254147217615659435622706888217721017697586304740216977351200752210523764647417564587644875871662645952359360378053197500467360449449759972963855193495160127546969092380178029685361417753118955291589852059762289620218776442714964500187505425338569783185437010936176324200057217904296475349474659609033591403292630351326566533285538332762691105662707821350660893842890919927613617355529747208340594923582151040489050510616581230064484645603228841152918846258126066424543453834805813607229382962465509826614024397186866630563146414198624163977093480854293760039850178709956499335756550652489119320628897517019375606308458884667453437463421526670257726575272539811763014978788755754291874288785464010273382887266433720486677514796344496450435121971358288411089194617964604363385601515121310309726655053642875029570314381816871309037597625665253249164009555786791183285271341687924795383840527807304430938741193603119271957676003073509548750214135553608244106307227852533157990396001229002808042938189452023716635532994107361159295017403142773030647144597997569180518824488085220650997656370418804979671709191592646911163089740601838710445757417921839129068286061040519096016457656168993080821066461639757707935141014966167870150521014925106234161149923976257792661677107078383369803800049375014659473790271570989403391769719539249638415471909959633528922393326235605236844018909317012024334003945176527238732665060369482991402984528581818776566304058534723797662632213310476228695187686770841801286431844408860154257490270794803634740620050013396285986644681378207188405801965149877877807154833912497543559497866042074036986231882330460183617664951280830553885783984104853748118170731066473076443283767996439926608893931423484068039790390321069516643238488751018049279989523825543545002097634519056275553580772134724183818781814800595768460037109734517149498304350348605931899220061415530674460377447035912680752110786098883968311543071878927835735555129325793470832345006016554642607127448996278935165141293616316714058346774015204413074188576682621931259271080426585148635419223353348248244563400715648981966648535939629691551402636812226536644137010396986821373733624765704785534352988063701606875684779159852788416535001569646061350597889422910855747093609258122483011406990843077157237457006977800060993321114149641058847517704644343646532306834043545090853693090745840275392819375386947432598806845424833584846257363466451812386471497616135528488483670658459586011372580907275092821099046023989953133198984519170304947332928174924431873291409533499341340806927758964129653805046921179560073066597937856469674744445009056746026720244358537961052048312959066649613104396668822596282502028083064289749632189186360438378232724076474662971777077719456993986069911480399040448382132839452786595217029077210437478477458444751030302471584942148006162271230814224000565033589215694838000555361350970301192890809282815182074105060944433090029591525147272505330923611657165959109249492826117669752263699851538734574004832264269208421314782737590289554938670534354086670140477726502528076908249146585179672489992240527134609584535599430134472455543339920283168022384559338369133591725506956209132927225216658157347899326255596969728334891632412422603252399240756615128817376715689797259144000800774777484356323560550370265659177210288932016114347176023440670818136424420521263227713365406506635673411089137145318410429107751051807480861652968148491311890964145749227470003372181373550667396730922200363927073931104462034342083992451882501877975631089862845905281840776616980664495213491337492829444532773525288148574201464041131528405198420447688366703251025692582305802101729404016761356722273558429360378840235528915403661093729257243279163953882570740181876775729187120318046652075467543402722410473796641547266962256574059196820204660215779214145007707085886228607803553855235268831038645272713293745511959542451639842223760879358590427374578318600453072260581975733902942074934058009771255036939534991017467376134130722705504574382899700018343735880107490388542261989271838383163861870357978022092146994552776502921657763827082972240242464789720358453825588457041734410142734586855761529162373976702599131659054950621831524398305082479695629903730903264230782596500522846819128713552967473200873250257060792020865216214354135821236099455673702145403659801837919782548422834261194745699547986250694811844473735328231072314105733036081280453393885009440913559845463071331740507188567973236039547464154063192180683257390419497786010681697256495967347874244947162736348382608358404857000477418558912890013249994784069639307493320686670586694936229283927834763753536717216872726901117338028145615702784081763624853820278424062134891113700212726987526624589314832903753749502387541170871732307275589267768428399151630714568078407656142874633569367275392777249587070557355189407117790344244385452474135553071863891588638553727871298160338829785098609902410186857494326827699436359313432054254848096052488210887890454454421025165733589047100789202348462813653547692102819610485083262499732457717451255411197746369468375787721402153665520151025457497246692390904639440130517870803572102375056421378979130677484797229318070178929232071940669484527323993907191797813683398253187301397866390670521456854232514366516859536376802962549646289204635873790562090495622496839868807424097616633763762853568918599986279267090178253029915579505402060816541298692170033286225393688738735199987030573651774562043727221819882228283445464530873172143707806415586906282149302828819998673349490788599656885107291194867608133295985822808479621577538732907093519565550200316190815163436343074848501158935083474209126857552079740286738505198706822258301946025230950392228574364961170842219989827475549756243278174827542358548510735355760498059364079551390460932104562068481511565392917218510206550507518554718403647243412788929341416585154205933122530729014626460731879635057709535692393823140421655650821038518794841003272302420728816823939813052020473830069625012342229538810563706125098999913009773808600670487669316104435971264075565887142383578139442048524358790297927443113988233714067987156713996858896476787656176632847717085979901277063786608398285661672479127558582237577441184069390925737854471188421180526460106651830760496428538405619991936533442380897961537004491085460271776166037364849704423292220505201481412267100423317134994158310867184308637171410373540724965027343848646997728914046637323378516230040329481497269100886775688800799862452070971058144546910586530543082176831103714503063340287175581571955326310511675578041983519636403228339475300997039532929751833604140508746166998158476965648591304182461085625880842138885763204414735038293160967871691777512097685876379516140799299650168463607459675098603397079900736769670611159863265965440619757445902150319386878020986582626345086472758497212603089504367548576885348737317479260362149873953790425187011878697213258188064334739137646954922773234134207331176659076039090589939647708488985262279585093797949583272359854763850911034466811541015823379383089512769027936100974380584627046695940179767487837019936998836660284625390964392984317410684599118967514283914740478215875644582347039034972535225148832415046284196226955377039292901038853248758632296898610007450674396160449300198319959191148042757282191679857357316167768271484536556251868083017659254325055894316663965187807660994417266381581367480017363601477859640909550295157718781742804781432472232077525284670245912491786371190399327902843654256566076890988430152215674248558350881385152893891929083703761880557080160490589678500917072697797877774336332278008645146829142858626666666720257528240753281327024668681807622559015221005367433830331788746995329893067839831663904558209473329339743309361613395435262925303095254947938474620023975020662889777649922456957322247539034541211110495996012053378084702526366333314216973818644482834313187483144402298217263837596682369916557240565067125059621882569286702466228226419187699024062688308945551594597840423161613256364889038970220458320730935201585082623576850383045798250845832460067376214885938299641114713575887807783216421120603310900556033311558200407310608602322975981112176946306536391487642410764768573092496553583921563253305206970163634281631974588765167579250208982589209901680788613842528332103301593525857009025582944322089001625351596192929324241470161974163525494937701343842993057034657808329308664003102281349321423529002927342179014647375124161190627543452394109596095610045689592367575406667583805430182798607427445165650313178292849955178540178230341423910458137499359157582525261479364254123744551072601267820599433442515809738783925112267688750490201453146968136321729416303754562461032735273453408372322532639433202427691140704883737189148895895024752776868496226483709789759891744851054617770058090892372228217778437028633841202310760413514540934933617724343620989858519142850904232835328273948150671517733270932890658733926567286796630254735260574806187578934945065902614904479949292006208134664193366831312480684503024526022304182150524835808422778775751732383686169951264487789649982395267109304765504425264013844385071839390341442590950948303745617197707086511736332273012826724001592678647973108376609347285699214896392919265178507371210444574489376379450113267449714340962493236069661026304948883098841186590803849340136078414096480431071823154055321128114637837348014226962633438867197827501121409408277000202837639008839576311180656802197928023458456315902980154262751925185209758079875259995797647458940253030409389566595302689886152178150722364996280566300363558244532868702120208886946422479895285771718322230059570038204244799392097879842744041096149933085072489112404259046289195335876676545323849076828694263095650324720075521698757960988095410684972175428870759367556542561940457078421102861725869107417336285671274015915385230828252939406662740656623867519072510339144376020600027982967730014603634424554239690263581296161523923198359340162139294104484345916941416036506822162630306109374836785701091654687800028998100883837127268608034756254799612895912804250611597074155073322105719993821186858042173605049616936218305232252448862286230591836432146937983739230478751145863984152916665783168180876093296900360729158192252757588287394992430554056829569516991794236724471730994698476905921119796697185772106862904137107487065206622939743908528781439593984771925556561265839126945331817958724761431675459347339633168712377542328614954731740595519995177461920067952031265542490088566103629655712842971711651035097093652589401254576403508257251459950122734839113574100446711534590000222313043758086016366032473851614393263269865957487738505713947351093074544610305325979274457720697011923755574218366107677980161751158890619080672736140106726492774920186372012152801801636682499383468446994547935602268885629018989294751659147006414073917818820122140789206636008938695355306933921951849851427533206832434938890528407202552681215437230102528933881592500941353546376021771735728495209609444273583732060746376766314147972043449747668982896691337751090631549863594758869486928104687436893498399243929351533851068497979710070255894222324823197367683723963248185162619540325109407126118364126100952962972726999183355382603316567222369193088491295989062522406480120774690794253065687895317629829560763288629457757871222951235080357368962402431471969979001354027886365525918905793180835710318428372216963653003676443066505388285892013277053188735997133769733924924638542523647674282396435134898453028099593221333290815176588942350601294581120048094645547507544945944930331672544558655219499255694997054318414410988750209846933784587486058187846262741956573338082289649395716030191999701275041533629299560517550012543143513408709248111299087658329974602125278139190682770475851039727961248504233832607835648411396895888837144227147879618483190513107080677414860678025481178635001551687136349968234109105667562559536851318826500726692962342083983037572758902926498838917101107343163322664841295672122896399874684338142180113556981520843116555260217779222551104651430856403054459704727571499965817734450296635751907182096936207333789667412922373708202249738103980603322128404862348291284527033923213842124772373321205178886192313036310292826920420654956262234858728833197049863929852057190950346078198897788245187602624649656928466299774073324482156730918348520753244407227788863088971071890133625969494735101365124350514729800857342124980372255356626902109388916323493712760393537541621018338129462120227913821989393144660598924866815934763430725788051722153642035259694388726736843997798562161209941400757638743912732977278398487045656555519167485754770068818919743711036786196671676031163644465419087412356472940315600292832642381683067490132118275687858343710885122811529213886712430655232815280143181298180283754679089277519908337671337835933949715097924609264552176320433645710472451212679397849434762058973615955730254920544468246680652602752384171993169459865293788656075283783146223514080351805464744378789524047145764808365966310313484376364313847428994896893750624911546298819297251751177865739507589351268034975908685945481750402062103238034047356840161313020789129264444479083825325209889620543722149153749837551113882721690300635160258199902655806415917234190892471632742506594216278354716387459342136182642287478231397143515317512453019144802624453012523618234390776742750763127126294291523183156247725675507728354514516033536388103578801401578603153914630716187646977484601702426910270996369534674424814653957011888760997468143153819823587327752616589070768464592544468301817797513133535327859632795940913841974617237073545637846112142116611461076755656928922354841995413324850928720246944225649430950427885968627953874388350057019974462366677176085124538317871721466118037191846044567386217417798423350779520332385703864835940256978017516275594215984117686754204476458186827953757658836517662920081177416192068379078136690626761833236554159627254392899787308704866135613017645904142201609707530518166575965170151180885111305820792423150739634890172094031561662417254943667577388598649154023598594343350834254770596645473474395135869848605242262081522655824328316472253518798033879129276953060814674140967988015712422232587862064874009766384420737960768954723579544474126089279114964259075314670505825690894503367150433095773989308213092592334535034762425078089577330624407499818814379722458090331636814624725798955754225626645118867910646002604710298806340830642291399239744069521257624638557095296144037111696162319293690616987698416458362736787714988312183734479617946782928775506724958593671656441088352795557308681459629956201321153791754054298946989533718209449902750265423751801880423932018800466696600658291411287586429994696790056300551097303867033420104519593165423429178224510439955629588364197781346806111202900273688859353266818379624231916191975921066964497664543870027428676857221289002157691004360317444330130933719042435000556242263072817737176606678862471542822514482663193718133927321127808671528810601121335732977613969470507281182393006341352538737256170325980692585312972996989733531045789378893467808004859006157969650298226282211682522725187172670968383429814021638271879848494436615463752533082891947365830312059321903958171989607572545834035514276136341965617993636815082485274758377958400428861917427614809583828613296390583814557368249507284284196855092672866507624725251140941130469906041486077444834602933102540458727559066336512253397123771944661077253574815752376706605330795559841333646218765844147194300607605793428119836979901536476656515067748064463681620108861672485475742652488599150610808067059175720004785839307752894084079293864733049467160826864132500407740053160486969056010473221408273022997174649701381232011825931654172269198827501243282943764446590851436996362101997208267134748410960164983322933848652562477234535614198330834866141548132980832040167110474804406202749350588084860564363246810292696376055450650225546054650962782255576335317937263270860871967774380490795317491653172247308565471651225842758555464241825102122005043839278473527175411113645502721453456374547335340738212585194922980001779468937063981252107044248988195785965044781300932458157028894112187187555205642526870245197186564066964041264414219177514821479238671727981377167223583694256047244221869542232972026121154063663563203938745222726935809339731400169137915069209986530584816311353553191262048231279776324227439455637152410355605263231040794394085148506769056097486232108750994067046631820047878063970399683599617103305122253079503958416251637222894193725295053515620769821928969502330172547836823807527910083419372499265494354111568550845102360797134552695350929176814572534035676021589982956733067525957679761729737439310392899183993959154731955491279964269699277879598456393974907267442532764961125750251251951717697247640677628253183779961551672017368524048775441964708437712641561891412439448064322938081875836684532781236533338911153004042440425868975869987502625420719170449954403338751993541737871744431685765836637315405101057352368759489377822498266864551600928417552666467266608604357254817796623739448902250920717105508508036552445997791398506072645736742348096160609619554122952582015662781355564186407225345040642141612738850519473174569880216746283610838479765353221086608365960272014239189218964260956033984092132890506260723431185054912352044556443933084603279031818414554655350086449920802215256302984029960801994234807131895473423487709825307502658106862087475247203002141242568716550175643613982665557510606320333309964045120223166910669065004531012290891073918359971155457310013470436104936840827094619018496986907444019059596848858615785837542125497881152265939511155607456110697296226135421125392880654787881328501909406769552174115473392736963072425008923785882105213246194149927888487432463791595349381832977593897513379125020352263283850686066457986235909228562182386787599131967772003473609166316451024544501513595648362234717039216268293544472687633563082473749405090421948222856967667626053136321974773825554439684098145506229880848396378662429109988614639961980261389478631624752082722752086150159014218701839460591407224320634624048709882362337604315250556250782681412368549281091697573514333044030600482891049673603629080974675537222456698785090926809915464110511238989153857367548965893261869523825222579534597354443332748377578065771014359550775711966657389907011796462111145390433287760909256812028298460358329335245776293598790874817465235246723168257946423298741737879772768717698263457978400713514085083543838938309855554673145693917365564408067011671183893912762630544195916874986170157049544020723524581129690750479763580239475795545599286021380365903561066038776427795854039232899834518449962897812957549657433467771626250610038840077344011914198353998741479394937611509801414017002823703991435350172528849260195608730212245938806578834502970342868940320163583742225729949360237052093526606412367563229583554507167658456996892877563659931050841629727499763033691581651388209563145371442266101523736103601884390612414834380797318347973241295294731606599323551667060355865678866370137350879320081321084154397889079642290150892037913981648450309448399064372704305315946877658278172959388015125205798765271813853896129728690258365197482624350105747210785339618397061068038932848183477984590202612391969311671443882659610870877249106906295930815850474566831507741150023919313089256473032254465882511667828799400335834433141791176260337595277671702620582244344607559866249187346532454768394631957730212839145478854481669070012992406761842763849685742244711862174773591451713265331805391660729220526384115232075055302151602108886658833902941671329699775004487251123650915436381866406877277099512569939158578284988069518577772703834800087606939404682269746514986250983572407001352649567232062858764486479733298387529275666088171514825200231454652534332527160677423768327975287232329639419478425406790753064853834266187749909454690637417403847278072849007338343191956966641196248796914842682619376717789960940881893086270917644432193990855859328801843526212051267201038600045713507324494858502154431131322137342811269033079902168196665567482090311748278913125767950661165653399855354122368799814157990657310075265276343727842483361839071878715865055161612777268287627833538398127791292556730778742689817364826863915709739539351200408100276535839085196993662283381163983640099240374591321571060512670579044415987906060105630580788143665061971078163592952809842793075703398631922445999974836873774951110984725743373691598440539311927463810437747153886384121614004383397456733962441140443923997243809301539265526877072620322248987502983043432887828744051006725792728176890875023705038145607588248546070482337412889610676886560567819644045222469457042359626418157583778514405075356528938960725522689767421521627315903362141908889662447619346873366220897099977283052602357915597881272631186480360670107634054436573447738317185913978616152070476749594753615798830413689114482696675024355824699736795390077430965561170620644138376142037217972413877316858914393284239337586280015065602194450723159407786132895233362452435390271209884644911303054103760537204243840985985803489344754314153934740176055256013379726018220981876265931652486448491730338210423097364231927276928314064382364673982105471912054280870647381482162508379777249429436895270554018101796453646162565005656171426743160278719640799181039674854879657133879413767370301617645339471944047818408049679247872769725371558032035086780560520782595819891198890971784983209270634312634515292023644603061190209765499839531492889419180467867626042337772579304434285609896481993944709717673211965237377988494533588351533461981666022885602249285407972242983020515779635256649456251691565849926869802959772568615617800881515262544913566437750591785759978840432145815217789017271485653086143528642569187099876406441732920249735675086377171558460630668961276870092495140370950350551219702550050667748781315458546940199660988138579620122145189315857707980947846065467631900514802685645780055015432201244824108026821179334572243408951667946775233182328541554517579096907897891156728126486240956730555820298946929109645087313667957739453395418773546481431066390102682477541090363402903410469862762167749958801821341841021595608491198154320374465335591868626459647152134108900539731560025253556006874295207844869908494223880553711838707332709302203876781485630867488038119277153371408338405908446203255628809306600128626870598959694412459381275347434350843351089271610939437853585641729395590985306536487314639854488871749492107803546777913933061791565218809904096729660522938046221564668545868240359788011529918130049388458750645611944273244085607203192937138798587817358533179438097836159915608826919981515090578211009340862146395153800035494242447238273041360749421011045303606020174498435925236366724078031715957870438306198943183687608795617491888932194236357586247958714616824494835051988539124206747571600339554045766317519044470186941217455921884253966923155298399077128150470883088582555542678783498050993630479201057366359411703185544538029100280326453542972259223273979018853728269094880399411724910566586288513903710624303376976512764693429831153557434756701871974225432035912388196898414160713720333466058568526665987566396498189114665661342101430998733218498888937775284332131445234484851265709778410235869804376357384728391582092456009311682107604295180170232409913492620648941950776649820663770918942734752408331003001170988265674645055606385569376452037872420251571685527794791257378085973226784457788575814471734343637468244277160770995381164259749057330585009022620767148028399984669424766474573715110215531257118339983224142545342473187743839920184167542262681701939447549981457501739578924852000085410431852790854594276665560330436655628966574837595288153016373559525371352740800067239737026054003960747131190667337230177987060883944559435608687876846250685068693441608620148734709211183053594575720916272993344844438180367767466882310726007701559815001550068596955815183686551276303179619391698925731203001219132868607928155727853453684121387116508398760111149325346716511849806224033438931480225673331760183221721979035836936153871757416874305004326479703246042031785523194207251667197746322925459637531865757118195025253317192873036898437610505846165061353787585249603630180285497321557195129808537104246144259125739789755470576638252817241308623414902687271845447859841894232840562882924486422896499486830473796778178307754833260878452831252106460550238263042323682919675966551226942338131068837021002088792959460727297398329140459895556664735516413850592495938358523588318885416192922213911802396145875346394090743670229340689652352020959975533023883315997088150961601131035782079276505972896499096311287917868562165781530915881841009541342756307817096849069820285124273912399976626859738642684345367665932640661972076904771994694482825990988940962006938434058008385815223492224092527748906175632595074653190004262838799545153258869704868492313242648422503169403087030947619025284616033421655199093030348137273413434192842379183256822265594257100705203795932002511489098300661819871230302763119850186021575501757627011974738550842227035532938116421711316728116026122190369397024934080632471554588190983746451003209176251293229418681667544514336710203039178722548147508243456284782885900349817652659609236089407343184671433120783678379641289117157401561737909728540963764219759799322145837749216570303144483057680326260307714229475206875711283064851181728778204033208248767854165716158282556461507904715920350758171351034200492598778138618918276585964130781369791353058279780695636932010006752535329127206869963729613116552344284216960880047163460995100189581070242107484512724920718350226476577236033789680023942109549667315616261029975903620792257588149395235669394089503122765155146543713142252526650333439459425943378509353402272678691000514219646227152130193538873755123582622318100075201295368668953069506709659847885363904095268480142859749648800231730750674105116849871778161611034662603901232045070239291410297284934826702396636909886288372790138014689293380812338745102168794790807281331907437033392242086636225320960352066732751628980147589191959019477489076526096143430349084392505843642832088568028464110710660464992973373096202398546399340374071571274847286540529300868548408520286145620102740003555200465183830301124785599564924516850202500812235211876532331229464600873730295360168250879613569074728290759855477476226813500666625346489228739879142589249006575190296157205575426735690357851696792818608469757808737800442639879797616547731082033715489892359657912704789104571541532222414625830601770519257302526101689995796985466360111338172813057143685219449526358686103472522869965845054801144644818058431932705844321351841376814871604386449118074460638032679518204316582021245180984996071446003643652692216173184231356693920976426858287467338607670191085656492390567871091604499607460194076741289179706603637218182770875443141793725006394162293808992786159038830489746020545630529184951314639442459959126579868825648727926367166159521294622978246519622503328813632424376349660288656863219299560074678750109468478155404877722721125664521151739803013271110217298900684547159928185731192950570935401443077604139660639926984426062730251321544665938877879424624652856721763316207212608923798393122102008456683170718090348418692373094458305721059147684413429733902752358719425392437540320625681432991849084948857465814649414789213041085958684067272781899715508263138645101181958428255307677507391650853169741115151524454963670164774256330819194125177675261080281176540229589479909784351779311314787001298436788761529176083653056088082005160105543107593533866754956695369558165121325754952620110504723281346995975042955726512215122395562868806673785426986720054149446768221550252714147771498021068802482728436787427736779584710217876484563160278190401555590934656156579447209189017399971492784930718903660504831507141407969792114420345238188729198580678035107068735655045489749972666441150585172512923595539194313917700238487424763623321099491368485013871335597305763785462585847443948379987975847572089485460422706082681094992616365865886061161672608939703105315215192791488595672787966072120316222067357797741055388124215070076639652338699412371518423879622009374417205037720372275033495335013725117554693742221604010246791517074667233970553562414702354638466014286659379902678335434236200473475410529663035816487323674689755098221349434074870936991303429429311955848690672302260869772109423767690854459561639914551706426829778827747055481744794194917008654965732045589357264078932553874958941178339652829485972104794033426833077593911734341973623670696103831119363040847804709755617657865540007658234708864888361660414319328074021933143379607228000745194288576174861187112053812695435256065348879868392696540129350092546313763211430793882883999557551506578947930387157069427821984069608388977778617715905256056149088723895935888675707106897348850814990938702528527568803821325316213972519758985724722934048373284114168567651432718877946304664426857018430823943170647885463641301419194960761201505117613253309008881942265248950112332615021847571443570976224468642520786479843150998107740097987915257628460619170722685027076908661311502465331350697380215334531658463659678960956474417436109714616829240953191780309761757019001599835100541671708954516073660049198825309419634743420448216923687314933346929969193093173857536756936490851979364735277920115256807467826272415863497585633414281884076333024136637733623643279100618204339349800280808473801058356916635493424360875520893635819723794387706272182886663881493488946135473751358768595503207340564989303459390199274422617283825667440245652337131826635853319305574839514322850343559302447507751705288025817517392019695489161484978107780088566763131658695283873103910450494522772034533548744298272239364960477779652211019105471127996113622123343649617803513595845319857180956398357892063425352209708414227305640813693831370368142724443229539190810712300345069821730489464302091791653258950061812109197893103101073322120966412153909996160734203720679766189713087964089131535279731396426111643421873565531687273429565255020664557822736972217241376918291158579853326258034826356093351355369597363221808194709876813969055039918256748418710522221286814164067691160145767743607536631427875546208723236056396286655093219876435689400582705835903228300262084568482198958484056393220022920109435798867711846054537164490807482273958335942072245772545541081528888791223758356990751397726604446300211274447181073553235996324428774955855877913807951951066718765722448504836397416932077715065650862899464260522003567464962751573204531459396179726218618466767055176413918589645954477251515271063811192839974963015492848271495675793655791648661421571679213856242802831334655809307039741048105081099819959347003660515634207816287562207583479082318618094339917424471425888186692406123265641423014419819502685108088831818092822046354491965046950604339780326754369558093337525627757592727682493846118411318596928346472618050772239170792203585463798689075152502556444539977721153036881752010327717581756980104538589646888580034004822953541335958790895073600370417026690050207658181671330850390433532711926220545290476593493060944315027769796406168513266753822747156295482591065297594134945319526092319661973180578765342137535943850001955420764071667108907874671843689900651376260100591590211286697424738077480279336786240466901947039163736572011745521448113267941698671441083476150213726255845562821298659856041961737869104149685418527387789640384908572355126141532819588672820499523530769572428995521498049288842136345957359883870360317085875642678436242647274751322239015715094775691579512383421011045117973853655482312882699227272598284111335231582542064214862299778161526431227384292836873150562915826422425494393072304607518293985016025754744658746331776334707209383838616847068969376120514799480901564434956707992463770654376778494446687281843053776753442030290962635112025460662328109291164309495359047472780486484438833274200839346359829702406955887610890028221429493454587728586070967557975660161518854254074481792364114133581891649379178009941024865424713557431545450650678499074775959190495704348922810299184234239310306742789424088578799874612116149388301113417723598909523442270412355694126200342334886220050702155298266814531576829815583595513812767994440456067093400145285662239745934057325339195291642704698407938322513809566332980600822628939373704367340818692916594152474539423439328880040243631996533150387465447732588197908667413817376654178907863442762532253528313251009199892170355285627943061663379124744970846642359838101981629906992233664572678171305284167330164668149401001437976176663392745504774375235182634314536056536552971015717464007845986256582697672332483501246937530499010367771656672281600719799596213263850816374624755456779604856878638940378185621068016223867808984332312903566112857053196278077492676417048742837738918985337178191001982407765331583311875714309166580230141289668777333194658784388290564825508815014672143592741733294650357193757311033973976874514679173602283900858793547901876979457006916175604315928756937334976929145976239266570095032391357580534947622376596553416599926541543722764492610958033381814023030493622928969172875938547947527555571588681344964909143249643154269341469052312888798864526811064622128409861542147241968952616657984219727726322400805585601706480470123690100649497016503946033787365419782491954381361000508738918505515367954249778655706958984833079746935554454515478376163741856757879225076965251332704894721374766629647835509590257751709066450009950520838161124536226705748330303662007857844185051316848150289302242125496651048594218146703608427428004109692930521529129414647832098082464484593568112330698058979050312324050730461897434082458821191236379767831746302326707123566483192183976434523532246730651043716516883942103917034754830969925041872073453056125983863576675624125266854047373752849264239533551404447435730858002093256635098728847257987474382546999505257308971650958928737221893396185648469606583872217742872714487287548393415443055534074643446793186871048972925364114543983623384591637848818545406491525892682145319933172554863638821179569440484692664128576892249033700998586318179832008695523625921670749550839048791331953945855216145008070542018333721755431285565668444888827680834779781470034772853280791598264812872697709345564559932353472740083916435409653017460132879714015563822150533600588274894837981777108664245251235380958099626372365442519460072676035545294116143297054723519256290699482570886270889033188041578502645119972164582112337301674723597580918551211503664299172894184655456287602894256003866308816594821196216453421222131665580796821837263413160870711910078386084121343357801187513647369614659575284788796020502648928367282097918875493353127722922264666801979609737568647493747669594434086863526537874570198656285401858974130841066512301876617796993126653936719351446562540478595730011670177940326871088976157506141956947623738947809421878147113572811728586027132159286927942137217678359178200576424547319674524354844762611047214427423332774520880387501134924915083021076330918069550559134996126612671060192191916747233424811492454759315147321877833152633616453969166858719228490675399023424916679006722034120705714212584954233117622512739623370960426555789676211320016602383245056398242898103354292297942628824876187561610648576463029101148830645654728187998095012165578139922357318289028396429092013661871803894536432444552791910431622172434655436182458922922763838351893039214116651448241001771449084851442226850287165524944617069811618583868409158292473648031014034384839739783140429822498016329113364010981776978678198979200935119197048219313578294779113165968715186001298791644705530037785720042467198443014897050136042017297769651199914913618515623132513531208087825743239758889542539777991669398473941560955992669046032936250012236619535987175673845974328856546959817964163715569461039745495872969840423420710297905014762439191349032986803001830181227697794816552541550591999512515550298907026455126913801081726042428469057613359475012782651565901697188963528955506480507359886632958804389596662241956524914222999311619921205497179067149455119159919662693807661870040420381482212966594459276817906792242852337086213083253835821852820047214765859472166538125192634315122243249396870081463286044582287865187271568223744703748099888962567896013969400520248358597267273128224481204750780367903402352692038991957304723946743768776589484984478466602207962057645162763660360786988432913191473370045293948264970120225295136939219141942686220743011802320043792394691432168147547794259000101137760064869667927466853965450382565266550261363140401544958981462985301926083363944129887517241334791238732204636609223533327667279549558297630698980323990348617897550728994125477287862638348718453011015210283181999691657483098414543890041462939139331453449301932519971921363106726071291870403843906918619215627669593937407091813350081207670671393283249990703375583362097400015318235002978704527531555462807772120954798165857823454143374964804340008701324747001737736710585591911517952394303863830257019666266507718744363373664493208370662189353834748366134271323431953238801993373532644381896628192127688626220067750865322187837094981060464592424544280640597084806578649946424464666559400152177736585710247488360080599954292748269166730923558295785785015835784894811302055765600763347647786634735449242977396566053213345441360127935814186078006320362800194835614869258154299888110701130122247451643155251635505418481930661017448436328965970637953590234498915710439304953819432304818650557980825660037334257865683072269489171013732704308814422716475684140918544023957244199182591788521581165189289873927324298316319621221672800653700131384888609072508594755802360590601446696788104181965627023405855695162155785124193673958810801896789955884455484305517587589397783383561831912256842102817462184118053898422457360934901586703278272640813089255592271831503953638591309470448250992174903689593964136665645226757855536476534433126363580736115106480830603293151468980806236015006387174442392509997045093286843795359622772706881332798209383979395706063891256993776987788594866016210734791729220348236651712968699692418592498670677741993589535293835677420045253210267929692164437846474136320339077975542033041661042966840535513301041732903855433254002064010910156281055935052948473391817072758330575125967489610560804187880664968301461829115963639002939861382124195188338509303363686111802000317096797068690734124817019099423484002159966478981861094115108073415766119607324450431629484132962127650250545268801326055456055327424570936466431898807704692184880718344293736347875386501294963987558790034421900234869083860559751933752327515472790230295111645119368837966665657669015672800893798535829377801656956579153024204406855151068368841879799797854135454180154175346325406507743151717266279993627547967044328757577376210415898024380797422586790010426055636407121678777041964523262413399804910091864859093470427127330296598404005256451549658457653990332050691323218950751866588474617571404547638506994602593533500979904943888212089365079371037686837604998552678173901858451608100673427497329417750075369815428313739607671242450822765366980873431265038610030176272186634376726669011665427684444199737258702783559293203187574102734748264889593090973047420074702305120926558950694171858877292326158179609821881203112807732482772136932629421736564405098770709205361806734087763858405205294073753830121807443927439296787563652446867114741030040839021278267894795144110123428261232393964698495818425848370502732410223797180493947462989329231143038067676669655006387493039800431925665688604273830492707365051770471416161511605919129261239364173285660630109627600959438920852495456364229824307167475069097489178713415462247354487071436285223449367845629253513945391421288116707349051128028682154442660854401959179528715906271556281710962535301439435627214810204836324514214844097776561469028774128661894912222063429353056867404507913255454138876526199341100109558432749920583541779950665013489001483346454062974666394968950188289170003999047565946910873487720041645924788818346161540565510749714816183703897862229737206935384442477487819538109980194975546329312482569792327902643588947826180936583152742603568856406508700609976207257955050437665826887228264243755756103140167234611362506683982710236727066563811459587470000222311962021937484893113677791862030596913848530173303733100546623886626513283261166179902866614928846674166918168919797891897306584276728947138634650454722222795460478675386070716420213914295493630522206779571607507584286872844773093761972841285454313109472584457732426111401640811411509099422530898040131177421544505844604304425460869037251308118802941270894588133869839896232727430500256819174286411425876380124109768222955397048419332985634634149743351925370134692253417133664365077001323161836585644532987497241745692977989167769831154223155962458126705535466334655884344404567326605099104731432467004700710260253037927829845655802822939001105282480849506345438493307437951580632943369046839264725456804302877639492314528083148337992815608560003007810341610906528235664193289873950274880689164514898801454655680878320350716935593168872144043783889102565714004239634486751440546266803262063612518897029287090369515797073894454108105093798981751131528864217756901677425931748189925756679964986077703918404899748101881792605757339595561850370494546310542717438639428495579660441917054171729982467414273620695118056600301866823162365286027904554081989835787048614229601012653028913637994684292705649677724106718488349757663570178847809547767431207223499539856005675796236067522187335643208911124471091030998546399349356365989201699941601156598583715186250243096603952411202087144997805147520123604741880185449082856869992511614036091258765019100057612675994638719810334545501341195073211848638178927734827811614973229621541735284312442674357222265696922527168482109097283834532617564713908933246849841734628473458470891064018705854545013401776721925560764191397320715788441023028763107903464484605491132244587631213527063649131340260353164051993905079938942960733338271499607731203044399568061701286855044446040654303765821856549628144920188322614243778174912895549561914539538943882079733306284366634740077916208994777837416843423269711609726011669044975904759958154752952237934366562371870344658278251107803150193868328726922523107038429673675826128688272873312423858739003154149613580549228238872867782778145804303047741117450625910252212094761627808306761086096684471975993822174211630880046536112563192623430177444705308795456683345539352696394572453703860528126064210969060913592412596597186821702648564648400791048834929491469172918026060965372581548224006067387989548575988030952137695630853737129008106941374960549573645015193084041279770883332266584691046745995460658978564044626770336205409149943698588783127812175770232314769616697746762210980502484402426796157285713837806869004824313432974549335489610819132205564977565893841535450657863739865335323961285824045833629442320374403435730477788163649763595469324771244912834181548690359651555814980833377081041534094503923051368409441496069825780949513582157527979878454154970196341665362068646167467507372123210938452422956057269751394152345260416698742817806153722225075019571579376345766470053861914154035686715821391131673007213921179002160857521288330093737444582872961232808834148755931243795745855507216633422181011277366044084157564135158348226564226460302998325001936526832574527213920162212725300805921206932691082210376343281706802417971157417942859083579490656340430753472530082159892689427931715559069305470989940041768541449493342930299006849041915245483697116412692899704536860109109078652791973947457018622988693083215471837158158068152179150871542883272790211338122435272894122782760131782895741297413752353585766481566220690891328746268934936012141410310659244620934099047171273943295483333801311967368539696235255827052894444728328235021633475185691536501135345482208632462049156399777694670878798128856531593757298336495105518027950700422479780980558157950311723389283763348831831029290081581327755069620129128552742703992472816487969962328307303674278335913988597684579365255661749769282824948465328874445810319174989593392682728666742687492185574513934934470467712365128599533954743078885161764883431243853017402142618415159679917882582706423592540329762469786422927466180052087208017414955080117871207482675805464702838743742215039295664017228626658083038407154325041728376222735973041550402283504394356483418394793137271234724581636915622106909351505681406372245255854496242875505771466451194409494367010151296090123000851540082956575083188183180380291301382260212744355025519325327247247818982369129085496704753500412583156358723581117376310153260181324613863911736501594734562982408521421575596757060570830024756090313134629655420725056129154605913369480693003754802134392962783724934933975211346176864183406656192399759673599244228346010776663410759969121076782038696345047393040327975557112129138096501853289552898400025089680232026897856693540525643477983034921192171836463597454348024123313796844763000524461182590117047667935002510480613389501952932404795190975361746798189912554089967947325421622176914104467489307848484324165060428013691093190944933711984912732160243842277265899518071549790123817039959698622891104546548556545856596142637426972456085142680695290717466055868423722136702177890913667195399288518840114835571724592009383452931629952991644315662002178391670357932126651597149457147984926070517934872876445005449918692333522210800549546722724092509874984201773964776258467723615603929071375243251748592160172253638205382381070853706608579993208325495464775224078188098035029253898325898752722619748932041977294781375863414191391962297537034598132009571805842131731653391274552429892253648325395277199976313523232264237725993758553822356687059384983772418114685393835419287020051363805219758061943270498248177607226326009656674714425518352031742292559352808845022550396218120822554249421328059363416196220321200386658091530292295533402107946730980834570881918052833972444400822947241889205816807922142912125254580953335157873777353398265375144105636469087571410442836071839584704065592012516593334941429861174538246891520300745967037432523556446717426496566825936984780077619924949880543954842299872108338731013654549495956654015321094075061689056372193577599520355109544463649956362518170681074828353564572397708853558476473062358160866225389212629195146553339195474662592806702328003655009213066943021292561512826334348914534435289877175699227238277744870514064555909012460390232552229561426418375014116237695729453514531583508733441366810976457054549176872331575003367935106266528862996339429886580457796143483981552963908739674445927512399622962026682043454230268790155945472444880976125956284559969221936335642710636988894853221048545208335559160385946391362011886490778506379076032651620755414883678788120809053204777438986582366745337340412992407074250929159027453690498175810201369082645025563922134166459139607862644779359887117373346410524222698082710562301461069394884931654416858858351554749944980557691485864206726423028752057063942987821083257740141452883925075153824894875622436488391590104906662982888133979362123792775885855498369401009293453104379121752649595201231158365911460579108554843392493838550378801361067892357822375900264596807969156658158243991169264040658417034766188142541552953272327033920532770230841113225675774253414166321438203283716767239997948839871137175003477580680150807156191472991476473811969958368484387256479958152080519211380832561623665338641434728466181837725679190268825059647272796668148436051846434788154087657958509875086267441704691382212886336213125250426018365678967234693199416947467486524331734379857978114300626315449328384431331726036201319041671336705650567041207864047042471905314209798008608293835963105600733051895447453490508616407600991664235042714763338994188880822226542044728245311453644830372253232438682833591493045764746126102193205877487602552409860792194459156596669249988669046852341593814317282973078990033983485503074046569425670274229624530176993015982699734049645184531857132286307916183765646635967631483358553351270250567549611432805427680850924412215733714906303103397415599532320622585705995146056151059513259068996690268892178458702779567568821603890371514901265968958453333997390814433217838229384267823972573522317964061421351711650651937669183860937585485871777816280043413936844421866079730130556691515678368561704715068090179898759676113563262297421570342771940907503186236425378156592924470862238446849021106361452549126038009880506673465618268256754514779861893597336353059474717354080949717870099379234002724576587197320243677142458832882955029397965699824703817612218124508372088895352131997371018133471360285648082401172701696412841977607855278154935776781292526532627295198325960361857397873389339344079396311714321698266194876253602254042980368506232084016145538628298150217914814119090024194310767418047433881204903161708011629118139783842249017455736595388400496437095517573964967599656108707863853768478102124150370800687718693228117207984401662757352262706508900342782763591890722596862825380755996396278042800682145255697554013613421682363614445073950461345494648725727459385736036915179871052009007914441678515271491385699923686916001574524692837062295225490576034494959225394546481720599034052526806353886277409287838654489089971239641493727610906405047389211377399290043522826122262648760095021549058106806966768678828139604260509621396136459706131080414959572153838894634155358643030529721850155993734459722468250287886692623888771413899132652891636767645093651042420061713769315803193139444713755505767143735737155473741359082490189174364942034582522962554967654270075184496208437129903879881844702265188122625736187854438379498210587860214473347054503626464166938579401307037587298241405183592674894357532324600613404360683765247693219199323935898406028462797508109725615673530258418590411816032570754506604022364801707201771828796127468028596224773400021308691668075336061928263779461510626741773960787262082241964829664630111678676178100592462689489845438865055838102748221879063362677101381206991112447927246956080807981835432839314573819693372952721078351101287409702125413036188952279717649942687521685091037015303572639408991288560343988444553792867748725994069715784323615131455840498980486832388429908305654227604926852987083346235108127858580971899958007279114665138924276602124700060825563031485373041579779186358351319079823243952549665600951745793720489356711159171911054791492073264438535322641087227475033465489942089487231642985894972628532003074065310843176714992010112838268096412181097803356129114746682848522672959369147125281934173486556630371436622944053019059588100542800412051953146645176212381190267435242909959577026175039974767332560707578720565783419918287585799199935522908304799795826983845970389828740300899925019111036784281051107530569983065360619595523488059989943154910172083556819396833714243360915245769289077133688770608931237113646302502337419724376015963574891911038745998529482502546642519749229252689187475160952326752421246550214184383973685066489252010514380548629045121421041866836564322009380918608570136739890375632060868126613359681954333383035929456354220515025790171638639830089995735102596435493270992314737947828304411086747455034020778905718759483913524046851390248844882272383331851429467486796654878243170573341573650286499827428550320930358271554963425779621172671211579470380686491928246241016620372362909405297941067019725564523832571382212923537599188831849889899054502711952710690937642332360549705767454834331174315596140898928405388754170953201027550506562732191505259876797454410942131969177735307838727892634066059041458222770585637936951992069482694797560800746166410527267512384781390680612579326268876665083790916127565146374160394418916993630946787585492780722792385632971045858352974009853283123372653079399689167755815353961234122395856132110888484746504797251979237468227678866485701166419035188281072901380218783938806863225211265698242883404090042665402086483281745268386002669853840296853046578223898089897925884574610498515339344218920854213506366536051801376887123708542165787477959280516322618843901643200648137374737124909269195886708069304111237861645264845785114043606859488952537968466912040420933521011445257212288742972705657962725965639094390184626781087890773107631558687970888261898406215866560577933869777963881878500659711980007614623322769271264146560681504590698262458524576827227843107709876077703880044908893880212093076262860626217152199726422024995135110785108250929055410202305592072815348106551923159246347755565977554055292665632113551894786864191892350952760052657192130815785040907911456413367733009499311117284285909559853484949766262477979782349383674584602668848151019907125334800837628292671772601547501277107521047668324797124094958266398877152923276566424782629070261512849814931121889066815703421998499145606450250611058826469047580485117103299500402986649320905981821391035867461170120552412152392028218395184828089287385008582765020771812435813394374706575837690015278465801681414605801698065399866330375954868170402547937109995454234928051899492900846017767601496742389849144833343217235818102951179953684696239256753072141241766490724502399555918552973192913437814157459932036437110957509420571387470964865898456761112718010732443358496225050068556319368712577086847407616397889515191250046564049186424464840669281908421802637269081283063712489363736992409038587782101007590570228068489391844485198240392209462068461287818220256695105628513298103437442863961699345495543855350497725313937007802726349516317308818680516272663197518428841692265971326600074879761452019950038422617789635323424843256499903175249764271017923398573054031481672272320516811171245257481573634287331717426652014672896405720384184093454827290828292544496418668676217680171860438538021019132275690562756642067082487842652859188713509577738526872863386983579691291265359596089517491721002994975747120515243604309697902364319616181092985415663008326799806727804383204471487470897091732108590114114100894150129596754286355814687666367536059215341196654790705336417780647956353263368214939724352225647339411147979775330802968639553317435183053104841132246095429279783324450889303272006392966351436680686538123583402873551946057662570005738519034969533539281934158332643099297383167699790492565071073938418077712668650188539552281918803287871066925856238240431962972811112931257386094878836641130676705005701297883274838760027823162496877078184227987118412644233170770035405454106518810745586603423458494558988882204328177709178815111318055585680811727668598714538997839567266867851433545143033987516763915706883739322620011057429075651111376155837542622349443249506306597340983439984063045281054132072089480868607172760909512965063408354891329734005129781175048396513557215754239015444990936310383072275665099594657183681548870031610867386976479443811912667338328583697543970324476705177658419856783375540834563672039120089978333758533716487249001542276402519053804406185196714143554654574629573068459369699493930422615183248909588257967662141632835432828424595297927766954076609801392229482730144344353511877142700816850173694472108238710549976226102561689641228326890726529893945377655755443030691804064496175096490260415118875947601838416547948471259995069401177764955838051344621635958576537207424230216410688768440685122201908659026569052286294770451155738322200474281950034567164052180876472005964146212200282596194365707534894580744849129434552512040512451507169531125102274570480702333565356227782067775886383497898116449186137595992367033924344553837050191363558989887832263530653686823341038912239163599317162381101690300923627347170320068543531585372717837907285241853068601696431636539190628016620088232787455953448492514555496200293460128517273950640793099190155914709639785217945390053859523279115407867753873742325925173741813551905423128083029834322324841497483394968234183011864871549789721685110685621656697776481875722660968562937573259381522697431845045199088776096827884181235161377966263583771723640923960360235686650390116997540896381019431387418680097559321488145096931872843145316918293525830285612672586619359485862568315153075159571037248458818427831154730844598253805409528611872716483983859654572166893677615445950250776106428906069107188696655189776316159138981263717545286458062028284071920625321478968618561022164139920096134805685555224267288701982102891190655626164079445745529807279409315504694766729055705718272629519096297901959847153279859328638851530896665131176488270544730970251025315151733578209515327599834443501257880992558924591493267552804224547106190119397268750434243441807729788484564682607233823617438085870529521961989239208257902965726496171303881248856131296256662533433475090434291271389665271384384829346316516170005585973580367161775631329432266913161822635053553949013597699353365836757444356124035861129546978885448418379696794319036102990217573635182052061776930464385840343332971975872610705799795365862856066841006498315159817165873103782280988469895716556078320757307103790922466702805292961695744596623597171151946618638244475634610014773386489692550734739830083248289075027465642806594217970342427834491313030642020789915059174484630522815359433163654938803734439963293577120538046913086786855458627333307633794158156095825663534574703858575580048271313784404975949370323480502040192720064095222957132373894094717016198195924246827561882908339813896253863825153003592298363576416234850200399841028932595895589868838831668089369759168034980153682928710270264876631975740353381082271627149896076736382935056457726279264706955005026330619291839782529955931288377293622822572402029795813787924205381528814124973842214245199985682406645819860785715560869229081251214214351657192765684030831714833243282040966257333128666982706162816905701920192775166519427777451061684477089868835077986109771306161040770587714862181389010960922808989558884384969532064976817644324766227391634672690284943873014608325857084823784717525342155431398329769986024827560993670427874391904362553870059957097173506925755382297278451241244254296048456996066786369773324174980339604291216344023342335506962484540906032896471260679328240680696854338055985403316672613767979290387995745984093314461939498683514625951429205237567067567982232364077653065601785657069754861211692165570019741269800750572412706112887143537844894988216971071971809923985417542328642981495603710016931587896526423823668702413822239127656248406031981023454343181208707906290467220538353269421026852559693477077755052297545313893202911199664621605892226255959146369978546015627706885066350256637864711063301901854405558527724047572601670269306800233287035962421564515967658918188737889166016059846870174567900139425552693072422010359259560192229229405868906067776361590909053977972555357505476885585493198486021655646761084190714462515891002184501436991340361197694477682617784454708879192316858439602105924340020400257215465385146464275968729683360483716733617253487609765751758505248271323802249163354931265218452096444830439861142972654144097484862804811844143283595355435163527645901820126207753935338420566432322829080819024910030676785462016339689179417049474371388743029953416035253361421685098513145042946866338870138948468607553972157644321754645751181300847129784767170743869883317727443925470759876985848447791318197150209728609376832720271671905911034424539128729848091465221667973340086524577337197118922845772300357878426554572907362347072102702551356688646337802746636197485886409564166761099597302345234652311148993825292951955202738250143586291242890607153015504300449273760108056601976911451389183178389405947728379872881812589359664360443302734489508261910011753940660747621728465228546754445258461406613355493784299355551243071760085279409222641839963357218368329197415235326924948057593391700838640197496715387522405903339774031366410204096061436042409310685065902254737122109091465275873807715333409618974729349748779896102761975623323661208727468638505027293011162786548171418711588980232368494465419648801250853784721084816954462099083648434291334670518485214398182872631129350555451664643143747958188932497450567749845897368798615610598800226151819136082555306830813240924907822054054756438328805604582520064982599074141946873519950890422564821258600650422554431328761796477334282158737211772165444037494939775264220180070530614584618933581962360933324206649783697089965785055766337784858319470655989337504071074083795948740520520065950821891687811542775031826008549518079539938613330813441034379283785403642885050066608551752130591699861727122159872966512775595399061126007935104675940467816341006340165805131222263863309428178911353462248152619585683696707943111057129804744742210949811020444154203968713097369014408091218891413729103034882589940776983308778133373242840815677343476237956514659087860398023546772021969507922616063645628963065332838694427769156922260541370631046945608732932013980297107494203017984219827115800209389589108883559015248261402012594670955460300477604071791128267793256867992306545398276953682641547076834887577967441538887650524111922282109515240067587478551785621851574685187000158064745400486862707462957206328067213609138362481260594382059174688083846092749638063355853581137946268337655993281802685575549534934424488709297746197243488258755601290857903472199612833193059539202191198525460005854808338002453647519082016482360317191709499858208251413789507001293326228236779600105605361137157933077638754696229705090258326373751312354783109931897268480702347969403188918687688278379243032545890395634070822575141471119002418121446843737375086302353571319097422775413286214905400508232546041896010531536116281279704254775115557574024414804639071236166668348792463989547326347012585332444254854893210575001278305175086354882273578156075167294340703427144062593693813153079224378355660487703153350606536890310109345071881094424657474700754054414929806948936895125602182402990735516076168774425059414658140755599843075289141971475554351654588978943781878392371571344454268057792867545476123244480788842319910634590396386971756896577403246165326109372740656314906192952676054658315366291657400150067337225989674053229002306097264709151382689598853257394310645077366024452719476023687966827234384935416997988854048589334797901798383120681350400946292031546869636983293108780656923430297607873682655082571526540109096747184234252975992073295286142022982818616533934346765381497598115399407850961176668871856236124822908233009751406328112100746342375225781218257634245782937173483281122008872713862279539336539286177428612713892256839065395784012355459518189324911765717823324966654851771618155881079293097663860274256957392318146516250483223393605040259286116497684236019714494407894909259457011048583381469462316514534125763170925347203544207157473048948526298675261789324194519443428811240616586447390131844156371203900128925012209657315210133101669245276969705046776815851452439395887527330146914410798551507784305526533046133832832518089517391453724800770835422784878363409086170115306184106273105765837125007073984448763785657407743877165281760822812569630089085062541105696615476392016590471460560981386896621301759441617637578254652458258503576025501962110305873996125190117130453850621894180484655885385217063275760185157716201406005919597715546431895187364335764009815841968294544497774952066431056794114271815762212459103768468327852392786555999786715508018165944395618517103463119421632650632306370880007591238390327306775731361654420387455539920485298943199837181488316477776539558864077478932289826396011831938069845997433883233352249377064321912904521951823434755736573480877345680517422095796556526779676972961582086169153143180900115431094243763694298253013431869167661063981028973546382544606892531664566567623276426521980202763837963452939609755706404126146750889028543927532675439208728039374024976256933616270209315859245253641060772329692219234528858178601183553117709591037796207163144359361288488167268995075297068836365841118592585030651375130253715795597543044626367413539469488621597822474396016065038989091041055924030718712861871282349715132397928719223872531651194002916185084153370928638659853447240298655107966777489941691779849856956664800250663491327096666444315318498405188271482173959836034816162422047883886900218708435498324811913269131439231604899106327541209840557737903233741113931468863445699146952024146608692475547084890331220968679371962453167431419349421369808913880304474761451111733427676627490943123014372268813934506486960435588616315450989401818278641625499506184277600834958583323320305413628709864435017641569272467354263708112929706491584778958324065100559626623150322350782429523899323713386452663634369308780770675076161410462134826636575521111970656574195431167400914809462561926623958951485169931262033717870954915099256828333233851543563406339728046747209973243412589875345704668117377410394528624352695998381118565512437808465584280482460567755184714997533267030305374478184763879778310706299753056715005495654465941997410383961845662099764365132171735116321662067432303175025974097177867153134619420423495196412805288289298536459162138556767961034880600949878137504943118353453184915662576098184758954200834461701401091419357689728493745679726110739872481457105296143889396256070825479883986913193300166529227997104146117247647587623277209673532996355754080250205828689247562445588730127096582173227698079709461401729050373825929749578592542721420144742855869513704565099922496540645128985460554821832798097227303033559416579605809753532390977783351009370580740748666844099595297031886690256166707913599419673902010372194613633316709140613787487991227542039796692796492922336362935087866107247149007428981429258212118820163828181760697799871613169946720423994841219796012253239198230905136246834822830201943095322267457567297558406383637679877275143686329123558498198817072123519564139437582521981662569605447216212617456441246385500682897525312485125719133376933686312750125209709752938195760093016900750227909189796760981381540467437943379344446980698242232834924071698744536790378081169621017696289083427344584454660864729536235340261900460170262330602448597540896769693543513131354897658589580466762721763814374407943360495482748944978666227327529821562581892695351392406471790886868505166209614177190786480454175573502792756446782828156756026000564589912946467479289108526360761443586019983736696329598939037461879036388770678845225683324102864790920712327021988716135110085634005964412000929396530479386402048515977839707469851044164485313061003337150080079072961101861508642104246426765938121761022122699000208410806157237689466857048564423736049120216428420559022465396187883023230703073389279569472276655045437981488076702898935573561500953852119989748615271436023694314514850046917297860433064642386409327593956293572390611477535600369819757527892971273193462585789614660611709929716203523035653810256678208397077861279912416485590336885082090104181452617415920548064777625572204332033199896264204651100349731008699898953536438800468968459532030250560889370287998701228439391543880727554606768199210276011940507002703290815015256556896268571052068208677023949183470990331388852547048759784977231248428002331811313801407943663642956141447130095801040526786163486461376345816555771781202776681361781931107036005435738246549406818085729848973209953397694577031673356819419831751650359020514038656315579070187242147413540363465006936745272265725775904197978705975049728144057874448744696151239796075204940063967631593145150777784540260235008460568916240229024339953902640390718312545006691930458985892768843234889815804224055266908576647875101230714733660181442970495157450056914365547020411069992042265437116738323240352472547958526725321093463715859395697606920541605292615620004092267661248456344966902926107450476139372907645981494886905366951877851617727553966980397539509638766445433608069753658928666545221341233400991418527465993640728543410289172604164074044144110124009354782798746070688975914966249969385880305019905439505490792241722615512505515361082205102694207581610526006702078383213784315706180786628184320384508346510515346719889227524364605215548822167245346889801239853689456538739036021429226919296093983519328277726651725566281919066208234759167558736943349357065603363129721846721811446323722552107101382501648023602764203213788577438790888761668254912399355644526872435063143073843539688151204817635430620504937293318612032242169311407298393588938311049769258138510557604874061800185544831827201995466643396156260648115657914295776228896075585147327922052729295607434827273704709821152798465408233563305778968022610003575201570303748592936366778153551175763610059638316203784649883346943570869993301590185651449042821096384092400705550723714525112588738258688339435166269330914259525638783987536201384466255655449923077769012845342600255361553024270004915718560186251325248406242459748094728996371541249426380432986880840519609906750168078786120670315425690959442664256694894290737190353546986827510833816584752613168064366558082516638621962331524963292768278361592954185885590376478818048479881698216805866695897874582086008646203843614018705724401962815058944527841093126345815682687067944936182548864352134549183877052173092307940649595844280473689211425632012487496159116417289054306513376024593812257926433629593455347949932290155283369778521109537362877866908716472417175261729367992659635208251718089469070774030996428192205577617279652677342563379083688137383070884697239787430852155730124874011564373207730153631007008127675276738767040294174267997905527115607573477863371091145584667413548126892711656066707241708430981379266628607513023196595786677385764228190556848839664068036863293095445808325783968717454862655976561663083540508671420168355820097860814955865379632499273821251870345106314437563038793673916017431802844076955092373076204655211031909063461637596191383745025476394334588364489946765967821163535423299815508313699312225099573829443169604049058794314769143209115481613613233671981686044695710050719757525413820176194787606157384121194208996286238967892810073653441193695474576361228410118636805069040399492468700187489253986517760609940231822287008433406489181561749668788060767348603169755373243137164451339511936551719302840340731169582944053732753612146712112092722659242753523643469238876765303757521113299471651220278578505881662639095323211653133341830885971840320557988595670024698769185354253642883313428993962125897101147414287399819466580444028812602409696801792288330785540033204696521313706732296900481828326058667062906807698332945946095322013194113676635677353003295383173533935616648382330415825819144613524004857397448912055947504907822803242807844490135875317546215613011973378309688075047717891977476184647968356181829917108351955313306878886367731413313095012189794409341187019885935691093539983123119538182133266736550970648110797401899067715144312160150948033506175859228675590099223072053609998504554136794010508271915228810131322402353780001001015681863996558453918923395740099203964825640693385144362372747046125617945074992440707240097735072452015014112650131770795927706349484639773514819712624080559323012558108140461123125723343983470464614401445249390757080981502186210422464348953745192927041653080604587017556786110715231002178314586841224829521357498939548310778033968088295976180366939445600884446487946111311133890589978526243327456026797740109314022636929879806642353647301672312279283246482905900721666475271220536322087667529552306712779792841651721394951928682591761180503328009125434752290879403603590095706154678994575502251241095191292471941087173849437342734610547686816197979094144533719624809737649535177527447457960214204149794034774135267546657869340126074739699993365706428034599326469931141779073061946984181970863806308710683514854909021607135775909646338868621368432429470981547176019120594950948244902184816397639412074768109306617501497272642075955425896836972242616263575227178652650361416197892887081279319039512035632445998958039300708595907581112401146732417725403806250831196694197831269796438235792282728327529308457351610002948314375945493953054730507206305673719603506462125651557560350551444908013101642100167283230596135461814968600527674835137395809921075489188277689304038241367751041705514899184591555243959725759124367927441220378688280785690833342473082297677592266298276043217447749027879497228482723832664491340629713565842973644201714145115477515389202896412827161963468730303904032084565510950826036397730078406558685504380447160650107891632943469139493539832951095651378123456152193725458129103896842568303950051173830241699688317420537814171409768036065558045280189995264508384136916682779697984462052523985909645743239438500922453156017802168171534653793109592144719458627101587450176092563561423429579424474744239680508156825383843687960293467135793378763614732588504797662066164212945453282780146602390216500853967357937290884790791933165909523034898816724661339225242806643537793331754338512823949282002312195059121804143642991458343907303672886120630122253445337752404150757147436085380987214806386493798659352526929681202206122638060903782256619511094793988650679069766053557817214704549802607465006665798089775616357899870271229684540903528497811643149070818230751534456037075824260307875679338397041649444227051495150993232924706443043259745467716678378101445132798067538890256153249879111893356280148538916595717392817700791417672198136340122387041493562782240260947241128454860879666653553409682440133732176918221808576466040030496394315366295959421806673038177440704251645074447094710540191573621608906048766188117836836149679079302013691716630741331477154076873603190337919928405182635121224292001156301958782498087347176520547104197588526727396244815218524196155977852352520120694076142761068096714833800101906303971628557338349027726336846521843538330926231976725032359716746159753535064126710060643752371201343188174874687118424878234751025527282077502801318279428368779293633010883994341150203515457556202857546991107847615697316340768561444635381185861674061911165475533777296706144626442872565268331593791780012832083752953281741542336506979345133697161272799521521619279407223400063789750217740160055511595675347361998249928901519855459659879190712247900304429205327504567912321729588198967102691733771150458578535727998408020798088227667187947747174892413576680793834435836793073965171502064504201645157086678083743975518050999800219881102218179484837331552573610735093935700885148841134424332687690739327659483033894475174105849333959555053974633392798377581241061306376809566840860753811163330006180025761672303769456602760365905644517338742010905862102189641940257026119309640569457211967714148565937308505555586277701191100143217780834092886352178255949612800489250038598790680861946518075203629278990935283787996920410937972700493959284482052997371020754991284906731548625276195346941790268439144149957790558325371753149328289468834987903140635964175483879411157194330158640273232545076122276555685138809371835484680290822414464216152259791541391857814443854207027574293973178670388709242552454778883227029015138268334439873578779726036998692794686613817133096001825994402675631466454323364181373028434754159909656913326754962865066157915895783247839065394213623557397914482583278260431842391440985393259685815349287253660096054413826529953243441741550923151390608250322164064239705854623536744989987482079275894298679787045498265639974795897582864931984977016258878569853537317733943060975569282988358388560998405612564000699779831829776163893241282386135008391231002228749093768636984202630575624256344199773676658381290151930992650300019570789844321187398150548300553087202492767696250603123048619869735799470729783658602661100679169155682878486529027204695796413359527867002382845937966052872361853007622229313363195172264096021088185451941467739078156584007475353179275500067232524877289632615346103353195099541176824303911374009451224242323595722783974749238866955239422602868189534177882397752714983639144458386655240174504070667040221750480567752032564443180976229500317702091667098102634342857643253646206951834241734143869552401023150767748564022841050798623764493725545333526426446108875327044155366681255803878189143968482450372185196531264742248999367227546167160386839300580185283402423956492044265330003259015728933192646299048627886658560374833974786768395096209782496705818761166242582597797301407347636114870575297832470650253334539810876743014788059811298092160221998442667673437169755154533072804800297144420837297071554109170299053875757150452051889692263519098720900735547628911768172340450395221296746749109484506874493807616696614859661186152520773064458687860750970537961262407222294840385892359273476814008508697324230430456539340990464919878797320010669866345932539541044032814954077893878688633798365876379404427288373148746742603916532718222667314290965492412765977573829848059380010130984695960339754978975804306764335635936487421621526222620852142218774611860953471188501130607399785592388359541677784432019268277063660738020020085079964691642486420686340132660141414859349551089084736295297160410050969628282129508482915423267517585950010171216784967062755714721455281067500127211765849653285296087986803926243008084554288304065124713892527237533483159701103107530244104134034852869840763877252717100508037181295517711939309983899942579497198308705095118156101994136715765798789078037908770605274639700385569968169182978600818909198806948551099914231992345359344158124687522551836375424738271751540374940090881633722965861944427149006216083941873276834011863825295559464092512086144033240265744595101534253099057887194559792429294688202907470715702579728668415253911847727894142215560516406734658473754076514233796013434296737530812794878071637565574153493123459562320085606508153264735009117069984612062426100698310011356702618802195016078069318443145102935304045754776033357088475494792917108499467860280610171641318340312181258999211633002203786628722503679266439760799507489700154980368518649295776311535596975662446935784135331396757659635872185260836233391020967134252974671958809587014958122765981491354298275358506226737470704829864419907821172645555780027046070544839916365945582229460557363938147565121993016561941673807271893073149964407264503231240887896768233619570607207856392710550900019507931612549180812920483327553228155746283601711803740413736844128434415414992079701885192416176799748266097246888024465944477832810949171737013470958199186992867796653768664034150547313503088605684668975469778064054228953413929114409671636305052141056310081824884656572587172857425641899576112926946461536579496562646173046787396451448188920224112915579413340334488950658251246744553057525614354076188898536635947935112039035888171640555436029643579261420714197670141211413419177008056373430567062395881867216063597401966192963824210064218463283581618031133552979901026443349680564600685680264022154900998207237282202312257817793248263781351614555152029863886337242350536565061278446913567764691693128289086175277052484674188473144307559689768056451785553782310979541274345509651596038275645757157343553918070645442746954332741325627715740607994816022355727512906610044433237749685745618112219506488030006062471679413038141248232610736740750650445217944619575024509792464007283481956536473936057465293966348634758020273749965185758939604784491522071786829263768933168167859638726902339221180931495960261576803678322461466221826623938852448066559597080111421423721915425551308028853698815815825298051640035134384609260372861851492998711432292857320889023718990817521319080306509719136930302237181401905109276164093440229945432813386462927641696856715977742585161490160706671461028074991997793268134436175720617630059071648781187275921382593185058556855546427813053102347096562807401990610458059998469267075323121236195687594299539510767881613480134491525716071594056418531997827116073123688587106134837405109887560295041460493220359266820293725516193306086254213190058827616175056608321746153369600412296640188405619791853455692692676252966297727557612685580448661264665434494239483757300708834871154084057733813734022201928490569794993651105584796507214699252595758620006980665772858067021780270832272845367559486541204826039498899520514721015901428876959638196905611076443072813535601427203054740067441257874703530277881482066820603357776041963138093561671482927578856760408832690518602770008453240623568574037441448438573492867148639350106871368847969248650262641278872153622312796345892817816671958220471217742641885426253935925181963725511494929852070178544379432962764404438980600313293524381232613598977541991985113037861081089959547521143073220950749949497625827316987915779436299606533950276145617667146200699321225788376462775371494070715757808995902848867908791968717250509568014516984262805478046558928432163023993482024036106990988259468690965081003467916456433373664121607839327874399500598550012191897820960332267061387041040866729040625194066003903763383437434422471804923125368115056670916624208426445604457175273534893454332242349811225557772915518401059179029165959213713557795821828326182279943656832086978490275791247290943387436698115721782454449834151837527740640302027435055514031576760073098155752223742222836518839143027542533861255178635781437047065415585067973549864644115031530228212160458530352554627077551361268069394002606684089213359001864461673127560627962140090568813159854797747399218138053237330140164733464713838840929377059628199422672537028350680941770876205604730104683852763502581445262310860109487062659067031656922116775941983407585583993028259139413076935222278131813801913779140449424622836801456196448084608370347891729843110683565133021430927350217157697150872797717542310364639410780848468814270173475496193216800877347080076611425101450684132120119235084160437076753852528695953836798826540087425893831875904912743282481019713156974527368953469714192119471484463078614128559018892685118152307329225550895295413623170078325795265499934140451877010119807751031172517444775470498380604233853099026286130174175128630626206857555666185222489723744700846298040675667187182892344043584601655418868965678192045892310531344106481225305949271701809562210996059296761402671103844052820275148638533034281349083496240541583759197671657245369535572500269074286393014146620788255812398136729382755768464220661945763636814067519247509450163977429197734866314227992835278113478626871962360427076844540962873685861758911676632533447713978667178580890751206654196153735080653336313676718539639134242293217105366754436680796010483600067850587052627990146516722181579157372002552111061029922196670178489654144234476793872675486381507509110279532468407636283370315808376181232553800694450315124991865561056333228935364791545169059084355598770955526150934782050608954172391123716323422217524804743196023839239583645449827549083064636755758389533951990365695098838630913220123294563231673668510241287156543786836497476969233523756674701590368196916544782270297295523177846196401610503411841953883011385419413389225762835431864900750880650698844991523270108856569416657687508905425724389497892649533874088831354673661503775078210100743593777501549596324143207646971579297707779525445268534304523759039825234687480045103262774199620217972126331651113744592393710079008631800590173063540907032795632651222181726930192835044325956023693213900080208729475193136882575401957644952617743061340370981438978487683954999079100147908704926253077067747542587081465199479990633216648042418574676386802029513991218331483535896239633212896543864147314605308376314442654162364523592390055259733059073535137663054678852327338244354222074845717229637255926043502647711265022312295783879790272648109946919394722856155985566188412110112059444686109993654208853939424647647924928413410501058037977009874088237580724625879936950445729871924498579286649218288938261058501654455584320743369062819141652909409328017707459532149668227297465049195451706939112934845615591838619442150659470688780781826381232298418246782784242702132087994334584238922299926895701430842295439877047711097226359924678023630924104861763920912827895388420798752473855750602175978416774273444610757313617804578037389604581279729848504982957425725855515202789933041973073422235969897728389703517413354853312898961010870841192064539942297260779226246970861827853902723942500572323846629332447193674792656416287076807709373782881155723166551630663619475986646966825946353717860353717222323594485935035390015531053363671618559405684299062356385106683323761413384817019489627716719643189042200158649972444064957139604400384198627584146112969535758158323635809644068392173045249313200379653812014386450470847072834602434685125764506984725446132551497696032254035946975941501748242803908002961916136289056002513644796906572200106673564575307325164068763946826735130420248451317542530870726999564584058384383459322301632932524208304321075330690083109699213218833045432655651035004228118186890394597800489306581189486371696653120426436487979079323163974690860008137193966218407042080641458617184861830390170335304194451016869693638133574966783640457966627800513435256278335409276319151485711554347650087289197784722902960901722814211790309802881622060091829699555966287213845370082337089478246104022355477488222305804431406309161324993460080211321778558653859176817764691473560314581089586542573895172842637044178916134500598344666397621888435439819873380678101565068044007623277481318021967074774906933666470507095926132362817179804958299586808036128538804258485985230734499931189491104058134018954049495429004236079077326116459495350661228036264623072147053587211764673910193716493917311281265785816392238151065952436847736891190629623720471662672029709907406360927727589178195627413734044234502906712123139665284405216228582821714668465007125981524214439929643951912767423355564279694980314170067626259214020581073281788584510101109188047591525622034060485888137467142798986608990381357518436823680668697997794937088271432164661348920237901523650699764275843665906510734063547835245835105105354122695917637249029372200769353658135672982694080443968317913026943296011354908344745186887316311217253871939064564804493809996810477630463692798731500526174617181105955822391628911716889739355428826269287653124590167035941394246522308062694780072031624842649085845061812454846860976732901123016848736133610157608821466766642560329226350561978098048709615537539807006933918104257878579963374485825072493369258988814896925006877212174072092493100895842838884366736346987440615552247465700324195267348660016066233796894580728338828074704138213219467003209583005141917805606754842521404545255089706164422414935363419801945986033228239248059588510780082737205236209262994791861106229119450225632894588302818020817296842526023071520276088890588863826986618548764405242938487862958680037753121742877001024167088255982313421858600104161280539458453800376351101595520350712245982448008525907833778367306815762207161337448256822495149337457010184197933963163655963526178849122203145068208966124544234160545138674361077945481352596311233506771251483428958047323467606420621113988706384439169562557553988628143011738359436743161779384657122150149325701694413484531005176492951472480113041460885220598682843966599853343511630484185558001956817083737176625541626300408247078678099022973232358476622803855085236269229906844566739312243491034163051209207171651833458856051510931651230264596773471419307853802304411926514511626053377587849519374009336071285096614119318314278171441682454610004406559713519449354377631993984967055612211421859180066201268387716999906552879657750526159627911404721780323712256925867654184965977265521519238050480507007181578571298196695359275078743131724710924399335058161148066564320907647157159056881216132955944317585589831836098779773890384969287726290789803849341332869258862676275060308632315356539598107015811420034472436558076449363626904473911127358374532950131360581381644265916282605185966803900733735131170636035209614952319809666973565506751116806901641041851388212871251233909749142704963977067987982580662354160034121067576786717436348690243817476607214514644313799829950917485296109053078459223338136794513428070234076130562104221724313233722776960951647868964492055050289358612063018173844373036915699177817573185409208906217273140871039268378201747906670055949110154210286009311647378519000663873851054100840882062296277213369801902339002008365672102577194094101985296611652658859988563749950140836891291768276496031137505389110125064961978992125489566488996803373475067453654860818471361613903194194605986186774167938932361466856727798109639816233831621105854188989018165033325203228095776147521535497038064348862405866251437500439243150474899948333050899866172558568991814415430681275194281139837217829038599571472896464171134653392782017576251158966748811979586241844176814757990127515505546197520322408969080914615582208814929712747819133996618447906145515212501227524236717436548305111653856112762806379640177082822816745191514496449056572376169917470414359347429033144904174003684449803643161217602304257553098820997715515659078315015189717942822596246476946670371898574682777862858826771499406575497784496977198504291258150499973293276585190459902453064655166427874316446187984316374434827851021341077089471055559145012141668967091747868566464901568857970498098357149585126301886104372047214204385967995962199628181022970995440433361743155612235749917846923938107411806309973116219208564324168614854205610039983099895327557831171413861421227351672705656521584930676588273463115237123911431241172026435439527332586014955161356724178247788595135258840951446990140446218131779386453415146956736819559415314376797934123945691500037082098361331480580202305021364605532739575953360300981566393821587602044813324869850210359180570526603194832683705684813271961708820578872746707850493862991328550125355768164319635027632827874581951874447903570533423577167135529455556534587904337518215322277717223766349335066673528445036920824313971236185753735873954788520681578391743544153559248120499397352669216678858349346879478709195547458123611094836790770257089049727896289817314236973423760521314839154361784445621157367118903241286751623439066189672205863144352357365218949231307166508946145438441391963593619177334785905192233789988748190628913758670523879086275685515591106446329718289000054777415068261501178810682535127465315003563104230570324076637334412068038967228667140205700241744268388027154983579331969194156431351763766800130020238376484387872297302976886446700406869410621778653338604100504858920537499854644061130308053364623807551595175831610623816570151109620545826378567846676077890594741762119970121791446042160015988436281800882263028962660221065014864945149981947993185196779973904534812126034014345520218820518131261153168196404851826204940700365052633577293858943713884558956881642506834442470595281944307535618963836649737589704580566275775370569913227686592166314431437479732676336859392431751576159412523706521086531771253752619354130073268228303082509911380254284030856358848197831423542680839359874813449983364677881792750353968960574519131873907336951068414632097950711983910550288396444487915692902922940710409813212497377591322159380617492643060645670271980167270247231307455744512016927118417678754265929359322821482700391768080272870047293878339390803316907532001180965062605590864113686790876900457045409678135528751537681111624391705671467808498852159898670736288808196348578182912788944128249819328452039919679472861548464812539529689373677151869978745661057735853498340275692880520681956188177143475560987256779314775887859262241551725714358572675508298971042235147647847036764142253268738849749884230634494338198208065904871630870118874613805761835493939645948655501228031850040373383714414015738119690732393827377019667225903857670133266666950008024141540630770290381005929463033423833673535588490077559614324509828279329194541832773426588713314135627435483807583046801038465222003449082057324175882247265521392959387171268174976236688610174505057551166264873003535519770540498654678709972697226421361036336803854236558643830427600096419354942361155134274716310075279704472878434708242708138816894705777080529271214948124334858258205846362810943406292806874812032860831835320790927710318898262265668585696839190963735141750241566212549403597549292406112658558341205705689733357659304954833489691262066982599821897224213760898047366396720947634875526552848839055289964937990602235982341810223428585808838305037895361197364216314625002063986092790352879307915397542360199886840722153462566375800539474727313613060933119594097190567420986446287670310540183923525196065413771772542947746172039362796608633237593445332293872887504069997573639702546678966662316831226187988958177029824300670041923214631731347308103632659759035815682555584967284570242208253945940695834289599418104264500189295920931139858803486204370161384643184277435079963990900552481359471857043874132969364217223860057552754794192049553290656307005952181723569590700571910669681501229522217393385620267028009133442538916937290717773678675951688540184700080553687336233530900813121147166316254632802101406420359362535176701164404329510140910370254324228259770837980742927580257786357897041101142370407628783514935092362013808599002906003275894207885147128172925100403447949699070155724355223458403272303823641401684669689281196937993163996432829464493418431835588051513033672591206827561348509448902200115169648521271801971310136894256101434671302937804780266252120451385411853538361668474762979098773473799715705678310771865885835377156147426567894965195858519071238725581276749431400309884962890942247890623442637901101029303939943180381422751242497628967483709153423782067629312296518191485996511239851628088463328645437345261146518763363126476849047372918530270449999339551376713808327125185179786708172338382534359899867858581709627519418506400283601566398142129565872935632330448253707559862342591236374426019189803797140644290568000757147302766041207985601129526676802296555821158554110427898741725891676457234207892768369274119070152843625825506967803587533497307932205315017099379699519351094438577963898002898166354199418024166119524471655242167360073391721452909668063879823093992628077287885895658324986189708748465569718104143649659100539849331242815582153361890210189687661843810811870260530427607295630412780086076805878565164839430748997770818154226180643171150894830503136650021829556355249182774472930754912159401888418795920604300726780099559727301248233848857438539052647953095800346326162876760113073228691391144238090707192400370439249573870501509824793712136108267068811825806974675908190886946301647256709745644997494980137890635910485742073457401326587236742734186788647053626603548117302251994217450766882105935588673964003568691031876508587409796686280387407210207056808706450649597453609103776046793495247622136112798745624900007065278696716112745067601307915613643593606731899409468505319281580580226375547353890516462768837449676794324277943148331803133809630329244379246798016089881285605727087556354822557122520941891913847677779871282835828228938922863558695273334490310672898613312686251217564543994009599068503133605194980452036008103141015600423873876700171633482184306602066522102817818343000041604089906100646327390671129383459602992216146454967015213846360620443463777734630010771154395122336010647499014098944359035499664767561032231896832838253271350390581175882092082653636525062266780509207755279768290096894213563469289788061641947343744869538918074731013822186733708760435347863009923362301292866751709551253647277084108359289552173002824637270784733462917544841268456927706170167456190889478486217581301335627314693253667198938026411718119650147373817371428166553525382593353971644735015990210898115868525889416007845441558773377877486534865127516884101855597309123196727755155037250725131874464668666893600415126899172151239888256965419288700912488992110159495432125423798576867855288261092215470003652796446763817147358506545967511403360063497677129653591216966267454240180209073798126939683346077840194855284785874887745360106999315944545194848534400890787502825390346911548349325245635729918324513155546987185223978294799918924516741796572147607669399684732264173179030159135449105344454194539360925842348830145226107476640477092455797546373787761510713801659485772116066941522806545120222486662440360848881334844596580898284358107696242427211955679724661802868759526872945532046367441952763364234757178533710990661436891414089191213999190819090206616289155266929637436529255224802416057579011227980654095378371718176496781706350868182705178332951412746776810462297928656108258336398387010468618334438862056241886362006179317070214303542415307932470041759485458653716564769324892452566998816251156983810994717041873631546767701856472700759308973403913552178858465709648443559316683448426385565298371051278106741238730269565555253642503036485996532130509811280322724664627739301307766611206275590003267809607314205160040577464915415557276002813510270736974755178962718710199970674702054446153859770947798737115136380992851286141990123243888560102128747962805849485527713741708048934599443210157934606260303552437843486409601905366164012364723910267331689252938067543138166088181019872572262766688211381572529940558242052152392388244422163898188586210136480666647294534171420530949693726562851401487269726787008259512213365666323859905247579907775047406007824665451167792436826184297313798722505237951620467636829766438034538162449393653356777767955774477613085316939663558343735364583910394490981267888017649718262302599807380226552419347942244519180257906870006847032333789275342653534124655731546501394653439787544531458074380393979886532475539288237374327229199536206917062648534255448207264579078616158236163928081031125689780226495077948250131099488486770173062129594139239490731015431951939900266981208890715595194149176196910541450856334276378621477515169391875980199841432553469615322607981376802397685488197335614392518960669976168435141981255164555723768784538101156010416149129360066088687339903672744921596562269335640726663774213023986644279038952558928936047378099919396920846913534600933784648936592726852304700812246970439174578132617940073461703736162829332379447990503852229698868681958098184820600981869707438089702457830678120299638664859423021149326799792916405734845256159011924983746294165096893487673165890419312150608303358508256689615736816427188324178318088129500918894856087245188711491570387083399707522041024728059719368894848119961510744487441711675579428683282537747021458513245799911701143209605095554389073091345076670896193882613778693584304660175107671002377296078436578666260199764009129787509876071233758134560394665658633533239968905947640213965457081652688841810269793069194402497395078955703675802369003749746741618879256503425387277101858487839119267740036166713719726450357245978819940026717697509928523483136202231069893644558171074964788668313916053316489179680637137058292688566649865508867602098987170219495373589406707038874239332857309611866692347102340835230527992482618127721972838885502209135525605251802785629103379719109502536603348154822958638785786505391720836902009813949393999732732789562716547434447051069198372710546016180958785730290296764392150612756514258552364871205005828484995302906746884289236042398147366245196187884967245700151369285367917131144681999289898156609014571452654677303610046446640127309133959721675682420793896113899050862338060416768787952596995559879522574449830064437662230996343017423437895403308335976474758149770253410466221579042017212857005671957669198073250349162983335556393575868373955847951401634036731199161633872404462947819975958523718941555727628349965132853575183294776507874456938998765441972281074049610643299140689647367653547406924425085051059549253502003093297947840219456391250845299133329184895860033098992095145772900365853710281503431363292047323023619865354635669156781948480312234729455137155393619058645734874983386399089960784769929294791969317117353444926028285353685552242345608032983269269343502448644458618117563711708120455203135242032244768643172581935431503020493960592787423579896811001859241123892041840841578636976815768901120150803589328250512721904740889836783949507391144072006693277095324284778793374641477486008318802784701250696861474540403811428185144884938946956748287739505373974299858372198567966496330974246905203356328610214695479627987260288843801081224900301081686287166055175738266823499276612612367981229378982956685791853680971595927558336875455291390298370631834869175712690255830657555633686713652176553228581831190934912219749109451891382855440481547756798200428683197337420257770260941532993275695743252074296241821975157680678048854787460775556901637819240566222477671695600403302510656106406320334532831701484825542137031083693927664151790996041794207985166892515912771753012188630172454717421222096807201977118539244744791186520697838303266544509572037044400344745374533651301237328344970976583982463942562167136730766482798099765698995733314570076989976535477146288179182905075809826944303004737530988951400131718760820627145439075419124737214780367017785254062538230525777090524280830526903432279681760721803899006735444098619364669409202158340513174621666293241160662081683830694496549780537727536745070452095027356663592087961654269445166614661101161992406852841508088732753499120514014605100903325937645184677671913606934966409588300258754265018910999402633108112864218026655109879284210733750393315834298952914460625987373787985807186388661256577849994940105859419223800034711968285053544298783687607127700938617085011944498078514652843532291197011842889025510684468583993589631251846933447425815289669737408010378228599088167735625863866240755751892147809107124622608710998989558463770008469775844313320312878568416535773499433022489078351057938581271164127637865593668545677258547059692230096291576106317416596182926025507184478891931856188451321349628370733583894514359677854522600008402946636568379972492560209200864763033993944134663968278885067820761133572073207838507240107990615398248209726649634641517885868338390378727366958038329079941681819610748958222506420017912082950602589470089991953890596973317077051449119012549862687082887738843078334338287844667187000714485593162110582878522555183052634997322228071710760478188655450317921533046497746343337985710986890153049736113786712696385570756464822217723048542750644198646501953823320495257276495728481212053587820880277796063279681447724385733099801546611374957594601803661558639820643305778065109326342950663000035533164793003284443004078068657112298113241167631577789514939735868524546995068612791354356413422531505259591963195086399736551801776397209550336074191614929803750793932397880685351347481351088296179765000241327270540270074349622107181852540548752134020959626749152791219468830127204842334104128635744804099107509999997476251872105315611537134936769727056725640442469705968978896267717525922842537466516886824914436923980223491615683724416020958489640019735372772604805801755479266136719131736608293208876368477395040279717029583044956835054418771460873406787960021211053557984705980679257179422169619515864167349908655242339639886347907861284733038370683663729633856683749896768335813398681787961289389203820175524619027150502089768129413207759591477236574439414630433478287381587861343790071886071703193853595263993271014136099603675271244259279110555643050832461078507133840891952053545621761161788436798858086437352242060439283855712447242052228461505071475752135893278225179852971161367626833760567201648756750532907812201274387387012464510378812039492795343391477945302216369809067845003726648232152535739257285051105664960525891835386815552128957577309993986143669899467188745836766947730772877699575122223609371583769033315254723473067345053779372438204104459853515362822893511634321770251300897664384177376980666641695921982741464825092267494384785987203025356343891984769291389533873501766751065130653055339187169578177897927158837477061997174091726212958158812190843739774642990942818378066780842640977565019158892526864214346944601486493745838501015341623749878914716115628853526628993852661926924293309497017338017918153549424215005822964558836954844462016679654890050810855748347058947222612405493048079888622894776587295371740666176765860601836750111760579931514558185975909513922666244247276883212645705288913293809661967579875341977971366130521222247726533070104919718587741359900192826385757666844904462124454461901500623753157714105912409309000153053310757579188226241916283543455769036893789011602180549373802755726309730624086805194761968082969346374961176886284279031060220542401958540994520855495568721241358317382734065114210446890493734775443184182668386792396313700669246225040781320176738340283760133555971964395927721095857129322883645973063835672621545617122441633632465949827233081613247076480101622128291224063767193111992663560773318336125693720077968051924071372302181644881235553364614986131400229691925241563969280860620320172996086435326312719358526131991628261857087421102489722764452294089254872080447214764876109753704854792489762219170117380168335296879978218168781348703242523425273775673850771606084953415373254981811867923099989971555002418269609769686057463691524412560251320347421242165095946492519860221608183442460442416893063065366191831167431165230158818389947824734534026588452842425130707963506279851433010996912185568868032881028771877492048146587828231697148889421230697142418830258183320418078089736594981388012516541395228637463169221491844718014809589450316014162431882635752645250653521967470815052297487509704384422248909269601227530504086811250575753804446742738619087602505712373382689610205172528586024223002270973100801126027912700312079985420673264118710698339839739988796088941957203836648053930784692264498426004296161296486990304461643725752935458887180787279978601033602018148601657317397697182258596825902532699641324554435177251022079016344676663746932248366712184224238353491076042480304924050061143785402283973990600290603210375998154782258757473536302647151075282262201128043129915686271836106941310694314881353951934547581125301622827921197079236215742081595029040582266526976669862291789650506652936626111477629206022019283838862252325679942823600372206176934629089009227774490258830754365052516823496105634169272968419763510507756627290731897213642018616197801500519469481400720928255153944895236431743779020880527457380745589642729135158796311388418825569417417111358274534235645027457406746852261150673060761278924936226009517898556492863501309937996279554576311459631575644052098141252597651514874014707828170007995255263119671206270907922099051947873325629655784092502821756488431994785701019696172016216852640625544766496384475293910494569213951729645127307337055782563935459346192200614913441847277245433276442813039887963644413188553426963222315158756934847053191235062133824504528406876230706524239019548442902963131258173890277921593826172490900587048619949363156773417155505338814019753847085661496557527521311618314773501133017940447357733690224883405072706646613277834136141712458412837696186216325104579245221377194208122484838219347463275788869929395090732655281600621448931486067780879875888288947040457317572498531219230680331177720782493216500206775851355147394680564754233185439361175708444504775707237745257873542849221986042992375975372594396570697209121603614168820111965773954997305938164855247483484068983300025018747793118006133114565023740552725685079114076793536224661014611024955603868424300347863701053851198055139871945121308396927764232412724717046887470180232998812051766637135872796116284894566116227935337884326234693769684481856654551892222758932574784095348839962099750232769978333071506379426051776480264947139798273450365978019859805314045525810441016976078947425967260669906242894735272559498078270623823059157371232853853982290752636724448073143246394949750400580050757042162395309499283224518406596544881933237849358295890340833702084609491848941710823018155193173222279615656465893727144702744203828854485811606658203686451179244095341886656354578585050379367085729331893321170610837807132249210416294199602175736601153780129667997531027137780001782779560754717759176826446017610871859820230744340069579591781419147968714863949756856635607960145661229253342794813127593461312710794719219257229164153992513904140519895800003251190071736403539629390548754062525461954100258268019734704854907850558866434084127392310355366938234173609777268295235880383940188279857607102982687389534683731742964180650114759816350278103173195618769301151600842062005274151408505566878799317606904053437104049771768648236003379053926378172441647508377856780416828126010056101123445437857578491891954371775420043199786859395673840529057195345809119488313936552618843775347695820888580009225305181093767841298122136378776803116261986879556301756116777314751456668860554779468044249755296926206856500020713802548770585726426741465348917048990208086338885669079650644982048725677804000238694764713141229295224540243611331519593505376628228359004205956552019694990696134282246102884957873994621344397035942709246898437291149015428764679128323609167054973929432219729179559833512646513396406382239445094766230063542370742029784155088067252783418269164449786883270473723787142809957051762705120688643473819439366780902881376595948867512645351677766196997392465684574892527609268419960705880990260171897933181994274132245031436610144424927908162480424778405273189758678286893542376432314316173336338006871280991551156665618684830466027729874163345658065725546374785986518173139877828517112811300898938977234199866199812327993606815196667127051916447268672021637480230501019804909610222997233247399744978201012486695145428863851186702136787352967133816475703849192546866807488763008389681824978941085693903670358908750254049188880519269951724806499729781367681196402526029424831060768737920987572372234263305161134371314629762346094034480222957714965492897182385591401276128001665508222543663641200485321791616179009190324430652935809043434049597306373107459144741160951968160057150781408305405863838016659603244538345440212971838716861902559979047838443915610486897144267600043055505593267069709290372494982853032599546747881653327410083530850480115778136700172471122705896816899130615907129258639092905643924766405554007080756070189058387034268834002811250361122769824740547216363711894649821471566157769884169638647337455129289030486299937299376723589267442265432302412902199400004946745967754108446892989205404024374935696511928341418932432815595208716634698029171641841114316399620904714426470196521060639930438369470802109298486583046315372778642125388851048626863430652848575774990959488349176302770447550856591179294412276793821180151601734242714818972056232484835957376184615991572369274928412139678111712273417105897272386978265746473793728107295705234436604014161386580847915010000777672183122051393815334607052794932425902358728263558864234026700778032189363270424746524042073025321555624492826163558097129544957417088778923712680129987716583870537662583729212415746612095348412661146946069269870568351752691480966721128922595677104898493169065963976468985449124133222990400111296834081654836488464758010373989863490495180914079574962657777023312030676883029711328175404542274885935200705138334183214495968198311823508327539947034199227206636970142552812590988657221167434193322083310643149755018379954413980866979112860562779057655601146715170229804343317293459995984704692268488884716648266673369799243808674220157973866535889816386336505277169143925709993115863527847586254266420567394555730146328337559577453024915902956337133469570750415962793969511751408619984746034630155297974634142454811109072399072745406297427508869584627449443294036788398919243886644521450224372344327400938945560688738829642881857669723591098080731676534326314851193080588485449997759555575817692784505728659629726204084564688811926808014204452425864954550797904156690511631875814082221681627556803689864677913804738369091988454554660485650866256354173132808057493119444136409991771054898953897558268247823398375840964149438469780779427276103269422325887416988058118238950133071637779971942614892037347218434953967676768121210600190936552732843840613453249966757623660274246691600579685213893644597370221627769164440256107616949559141258399441018490656250944047897867365758682283452921390669928010995603409751987319425885168638563497727032764175079161811429065201297925947527038595655561685334577102056604877971924376910426942254593081517252067412392434121273790237739329671566263047367206571608962259026458995598324137640570656036359522127142154170655204194456825605085523036966937040130072484607675498081817363927296202397261727179875439728802384372207675314966482952182920966619406500965410824972540208049652113634289202715458856806477618005613254552348017971091119361594607302142725094796328172890405534911960054054979444554884495582069235484237880585377600234047497044650682673679109702815304649451736058490430689549470099528922953314278163099968505638538954982420711598972880814050171191581777874032674309717566851291997737617563626872996141760461621469637972728877141389972650648003456308706289221901228846449329604118669538388155227005404297705098334706989294043052730919235374356525331706215224750025628477111379504712013428950877234276135381254028564486661951214262837133785157429981867968962488651307870804529009784594895498332368234085585546788580387697811451389495234335353515209554606434606931618386687198854916990900687245593278139809517605884042846472579724048635911896256382752116775326961085574537893042341712558960985902759645031895431801149109275645300084622261938557955927135251596289832927362977847511781371083759880966345669358953690921494757919161756402835728267317356901947186676362631388571177710701130723868249989024615108036180363680128928622299161866226053661839054999813636842159029730504883226667223977206508521859149397386049956523723283919927830285432658660946933461185282760872142916377258831623020964856454895658982594100750392050602879093813627676591352198337397907479707000199252869620096043050941580277606591658518001307978792535713557387382331331494623247866575389112759297077970278558584602723868536306105837815796904273378512115959753702446727605255482739487070516882623999837497673338288096221954581830692321229055069328742833695875002568121036410829892763557158078027678772231273206345417530962402012436529834429475419900974721356214090356818924884827076575956334893607893768998860427121539055361620845794946222108517688430825393484313423740745976096472546476846349595232399523994310228736063205531663679771240582496781209663541031375278719094577812583978725351498399501919839048382051101556879373399581897207479743526790132309160055194392150468055644320915966059041419717208389939281171539968003672617453151307744680236952509804096718498730361039601316559812022841364050915195617332338215974535065202117707078796820003569467272739147400751089530730036422917979215508981708122118752532370385914793529660354355178583736681597255994085926754769398652546625484703208171680049671445761172587727881493983564614500299837849934715159618495190381202086633709707213897626578614647590641517369340088815743243648652376618964742423811720640483168385794949819881670237598547686947802171024379085798175197554644140999600027643482000322135154132958998829518602637635841576110199019871548830860972429492228748496258947048804661944209438079216108273537778037724587474546075796381491439541946875096512775264777176383700894746966524892207740142257539278850867542728705526131402647980430541513261825804477873128796657722168436556829626698440431079972957524120584662462860933413240044918298077203961934719314927760914676147479154309124282911211332962490564007414500171354715559285264418056394505115071963147892026632356806918979665047909409675960876302995378157440107645599408574498532605003441942355448372075375751685662480021900254562130460506279409975230527080051215649965243729535780622225902135045962897659163107624161463824313745475948226309582231968919092352804478608037305762215142896622525394345300032412597007318079403118675135116023992869259772057022185094096457590995760714256121164292561695833061334608203464721341902665223559177201127840580469533453480915419815539525334351743276743292674659480282645439164623784116611890018139253274106776848387997594059524310395933760267119071228316162797843339401207669794519009919448015899337936075022894521789804787366749646483241340524252445852475898936870650400170370697727789346513998950495127982503065529446959072297476122264499278086057499016422577994332346650658359812921028248320942842700250774050983122614159382908569056834544188588667736678837389029507717140423625649284509317345735480847764313165514009252106123852382892235768823643531177687523100852098853317879044735072941600223654263252488360904649103179496919171888803951826479756953614206898898792907316950242642585874412709658523659046249621316218313687441182057838502211370186941455510985762321075742250836891235135524578709495399488430702430884583691111134899377503352236933785647189169917744137047370765642636863486767292620314006048196796414515033240037578047505807461121696511196257249231736725507333999522894117583991068167859981884310583264799061187811943491517962604437920552005271019417246575737023604936783059344832622510175256016756591693578903520707491608891507938548505354900356175112540703032056894111908798122802313842675121475693973322331363313401972070411790156963854327488345908542828130652883395341375027670850356056679912159136007727077348111688490140885302258252767021694320667157394054967896377062468887893857854985269280871273867363912027972637543649012521696597322652955102343028040088227494506311419472987737166183861869972028421152780234677125264951245290148835243544208855789964582064826137858057230400912523837605867224571970790140705245257185877250122352838363678815288788727773182048847889503229567303419429841317857469396038897140058922348725807842550998064992331916499798520271016598929115983277326158131571224660457980862703096398275485392045034590741831584054041108707329749339526571454522301232012174036054529005433257477361755493884933784691213908799797082330393196965847704630524756570705893469634395825411496058367525770164169651126962020161548990386592857991592094879461256167179310594118298233343390301406337552365425343550894803510144010322613722391993045556454142743660887018065525715137537072883678938475400497227395672122238627985010951933340298582334506727282854165300856446476123043573960000060874840150902885533158568929026864286748517204547178478447615717290535178515975450065539242191689014661660933932679480224536462494338734756788857259607188194926988413950235192259569360160130668456081283753957635714286886377292471336426260395993688388548862019627630804144440258835957904643062736570859409451333609229664573764080678908039556941967823697693675324922279818035449729601986590304043330751147560794818888431916435118490074530626854246585446448523865196263178671579277215694169737094820811359014427906535981323732174081298174390393033899772962875764143675306130339032020526568346279441262400446479859330612858336526969461119606617900223394672600552559933745917042626621562770640257919138915316076706244437677996925075117989657350083522667938216659019000253223745355993877989930006221348984216673799038373420689012502365860131871285064290382829176574373037117314699286412745009848918726814800153554094373069484004926786774801665457967145017845361117020202890608211711945069054457512201032863084792908728728583859753094380119769010294059354864754068497246649350821474428069932919228299216353303962065912966935628624392618743608819165983890991282072783622441721849003130051576085212185430453515931880341825598973126021815707720098795890658365171655812806273459284152869773973275895168773599526467319391474696477902452847267267617472790557933345775466298398428497796880009936685950205106629350607246298357344539523268597283846794906573182342329698750803917102027357529326066967815199009988888754047942517340932726182104477061062111051613310193857026131855919853335197949428200830083603730035342369386383549750365165088989107694329418751369031408592826351437961826430911604762074229348195685443388205121848128627680286919712854686915416838302371956118365361685546586335764537547681365465484875573761193150312427183314811772056606614562290421454831014191936216684849743539766473037170353589001924473754851065805267498907238906515986808522564572427150264849181626466135109275833961705868445683953687639386388810758461908884838702514443478601225929253589367716509550507081835487882201521446795683402255334081907268884753842710989566231900222414432523859836221915154410379937006459627066373429937841462395899110716976276940905590408085525301561996126109025482996200082465628757916625850820509021440706726502106001563702680985869272827757617516180157604343725640694248584541307069420792944488544733596932173317940814251359644487468654416864552242187929525600788204149491542781118650916002079593678299413369919660980160433563171085061622600538614973693705772825953515313924728566311939960920742074460674083362464766911567814301764455351476073357548771115797460508542696427745951746998183195905307518833852441165571661223971759406180224852133416330795030673339014983965902590034213011487874433251224812817318488434062685223713525793462247717647006397707857652016596490746915068327633666860881379590059415809277639156427106815387838699270235759746610229191748314156492592233538089235678135703867383522623285028274475973684574905352045184871335400671208594595233584245340588922131704431565594801107775905082662769471971700902681773279834010711446604067814532270235467210973255968637585290056183344871183610999818765953826064476446060142740874126677000866367783358563018876939793204867173162511560211571192009794928656441667154617794206838748533509282918996697457655337638075427098571334635295824104888853748407069691794778256030663488904835255660860778994666561719820995707512068514734416936964024976865190133243273574116566104644381956500614848986269956008542831713498043450442485149748036000011858289115358422787019256398352729819994648657248747008641482172218500396242719517685543064510617505558985387547268542732607250816030101349141062730407359562968590413121114434804106739092249705828842261036397476872455999224102386165497480120881436751412561069107301216191825708242886005445230171021539647371761595349176161771645793621419022623376534198098296354186648156872632288634755339299216578791386874987026486654070269856119269669184862954016719876884756745793381085709252883655323406686206433075662830816186706418213941081359647475687748741595101040972407033052071146133228284817597745167611168394828051305451543180552635069223054369297074173375487935646581235727628907072991133010365305258348781380496477323337251955611925075773966692182001037569655995938642468252816819917556692496226739575626526942104974034367866313000937671058613963753316601534776740123648504568326563667856650984299850340443950107805080558797490293697579656289224447372467382179406050247839684699541038915990807254726931683609510681552022787803357844118951510409651442606823136589542221293560837806382787645540567444978372160317533194675663621446188684999539649438738407031843614825020172904813480089784472301909741508237734473419829108250978200384773252887923817824112924545677696218414035857890494549455659382168152245969968601561063745136224610242321344840334236372186283281228958837792709630904210861724030962627588220838088466694131389174705755418369427860364351435104304793390701874217792727164252816925685750625802436557497518127661832712608130522136638287492870205217932446541116328459464910398821277269067967967636333253120476418385123282758050237497173611992639451003225584974369060718061989991622547380196042683798001657897956685700808295163041297080097513720398616632698972887823867378216935741658729259455083586326734570167579805263398450462913553949283757542287286908523151992610118219721877506786232603552201941460817736198372312043161282111756832130916473409661099015969116652841745774550410018999035074524290794133620478359706060780529932849559895325484024024762030271654897521287987246835305588790916222735559584197164537548652953920126140612876654235604541668944873254474772826698976648732906225799767342329397485135285027964093291773662211085903901334887365686841700740616662623716810041251918555004008257570674772939201065494493028835019404244757422494847207845963867675371427441966283617874349918553810259647501991848860093110835159428933036324448018374507773878890293761620620375622853298014923019914084221217760611148642126606915567824884110292197000762644227160135285325003633086960580911799700468071779573857757774734062187966775186506999185486568172797097153213326424348089157849405793030232279816324453446144936058903676898792777573512577215419600455478120984891058303970497862677600392418886436840456897919510630965629322878088861796459112688266982282416017039998154400353891595704669688306507460286233431113945529840008116603928272721603393000575194536422728447294292331272460381364958964863013430226827072293960442837367398497208727687010047759985681062647160073459910193213267415614474459185170530079234289593424383151803740024618184359514966033701241406809548292046706628876319241326598406800420376695921959063257753604280602380211451552352535558004760089538838299153863387650294615307892179697533596684764475246541300640494841148260653717634852494684633538786762467960370031432392378654607081392687927003198053500801833999934144994861197297972907518490457291277480613741377771061826765352691359026112912819478052401786819458546606613586339371443266496629741813881374318932765273117130804426578373793386489930567043930060468994963795599739377530806581516662749246498706281452123757867632116451395522900019469499912715273975945096638683843836628813541557894188445300327070130254886221517695042294388654406478514810021789718581080820405789633084418918832475295995771862126096789232021442957959158732556535411115293813611050160118473363894329123010925475568354047973285754801702682691277256352605667150846014336089794961810872358007804506432625574125853808159362373324123879489843585287641929226070577440424760444612617628209607140131875765731193539995366346709572154113573979150818952443098523182884914903108558322198047431595473786173417204707971870646225560514375928384479258605367946100928927281639696748288014737311200328181458225057501551877620703660302019849173310175009612168610559367366428605593618251370799149747858930817556508436880304923294080474280836785471927403280292695269285983720754996334256494823700054974671972774968315595001454558504003529871251876746985621213321008434304839725027898646733624258784883036611368279429159313144075149274031617923712730628768893068921321995844635320362773871867948717488262297874413364703003217669484003499718684339714641850676509196749558559686912855143452239016871953597625857681309015667993836887059102797154851079540719765855640171595057660404567187605967427022073465562436124057185946972804114807064035920024900325097374182670946398963735571746078128926519555999000456660262420074503712071246935700510157692421971852077864692917936697508211556835610753728337048215452314538821626706549788987355138121969043654857569087119385842989911394572628922292511766072408638302558822658632935216407000887876343770427844804107811663928351770719387820326622779258232543691731565543539934151964295749273829559275770315024577046249065159067826707972139457307205677098595397245959176289148262822174777448647628227593384832240131574049458100428701822618058767936988087478395064669707436797924226451341936467588050254257066508940867536919162941677420778922932800592422343159689471045639364859254518674362639652515803576591463212548413337360838137518449775820820598753954640258904502283356355394961178226435231636911200111244745249515075569559603444271582442315295017743041765055368616514185031803315761191452010096211141935492631648054064324807032953677066006915338877433681241095893995987733644080582049514523443018894883397883267145638302200107632824246770405641127445091576452651384067652972015045042267524970557478336540538585094385103013535784183095526787935930551722996578700697990712120668168601037685443117012035662715923122657814431671298092446749107002618399123389901522732124391481566510007335919931885451480070584876306949073399519933944450580753788538021805289433543949370835702423578298671123191273089423475129705916256516718457154816301196496817429406004127500400038599566268911048925031879390362173656818842625771058930114271322935421947117417446586704854292853504555286455496835836171317899276163344170417896259380501249131241151639375084296820735880022122420886268552234229266862644874231263600501724812538156347884038396662911689111000460957817172141145504285282564174624853748697409088378883220647372635903543389549604657268606602636455643252792650563406051863669067866611753841006427351276806779054832665847619204355370091788825838627319181719842509016284591824373691403571500638520021065312835103794017173194336169826331711091871602593472847457533436015465607771420019225171318993294566777752084518370543444092446870401112656537692780634951756820557717064102080096210200085374763033604181310627642612636983656950853576911821028509965107544340705667803944870205302640422539934102033820549259610540649385128781373929117158362498818709689185965873194929600592547329548682903870519686870595301577616289947535759738181656011598890412020141931729212187284545665204985832339540348093923357102060537196858657212915326549603254246871375870899790168866230695803297089526870634405686223866713980181732184404102137401154111919301389524447465931698003047989097985078969815228562307540672727951506554456668243283603824065479239720637040575954406111269414082881304016153559295624234625659464645166016599094412371570828405295565022427250508361711544824709433768702404088861978188745893775266584178598830737576996159727649388223112667079197891400534636189405884229718440200351132158911944809504443974355336148484604468460666570576009201406120627717305664302353816584358860424418789090190020310754426026809453185912541819464501705157967572821275951786708756390011724061340727440266721285405221500322715498239005072478830784145062737724128852209529027357944381773575159337344793818404280748582312233238417952232412620146950954561358262782245227629171855927255719695059321365990067609761575457676586846233839423471295110282201630403834871822943527816062026717843104822200488199200302655710789876615125029070858009870557364412267645332098605139407731599347531791950547300611785902585041436231387844185467349344764615919749596563523458838535703067294829730531573975301927451305933853509555397433784254414095620537490701633783478746105452919214053367862755993782678229010303915174254945874713622130258992047773021852979464271195274427853935286954719006958990659841516533546226490469083650714817107660662039799684536226698342806746258239941744427315446894780802196570537398824426821991149883493516658997294809582096568013037226758599688691649161958995143955132686805944104466404264362651459872921877449367675709914742801707596086902570294954382924018941552225382943714794565440321010966498193816844113610320053114364215911643423440389241125860218574295165475377380879760517704366213160573259859644808297793630170401445663852039810848171132134448493370318022979578014409090644152891411685248806915200724553534235815038730435663213810947946525880336520385659195085530634391651533173613596048537972899457004269976916816665882872331472073542381624506409059660675149391520761009072765083451652005117677477353002097478695547060863395359052284151863700147132416774969790552547543548570548082700515006683765836073750486094564739311570364593754267166289679102598603388989956414944300625090789193225381010337625948807644452164121312801785964105819552604489499891151703188705173983172336935361394855318530226165199266826191933777726275323549492767088236349294573003329533568112049981508825359422746382140407422077126442823232531901120792188677723608348846875807599280499933728702436462706596241771757111310538411359735566954458305089142864943705176763218990386371810524848887352857831087503695949478735900392191453117953528483760628448968604352109866939003343124428899340113720690792991803649996225978870384823621311949615703075179291766695170586520942043979457182370930049295275460739218585545067439121345597423307556626756630340994860050952276689882166023282857167206055246260524115930584548053543220118209614544057974097381096616643094193464742729558294232907176478426868284836579124022800166221424862460200226160078420865410247597989005064398300497188612660767432906577349981167734116411472076235954162884650238320271943377910550908547466065952871335126930633335506468613630671359155706497994381931387596046600282477548871663153849198955169414962811808081011026679268993574524013591451636175367988044780380580328462872970122772899069185294829236928125675339439386999254111750332678302896912116325774181236737593987080428813299886189979921420451212188022016503940871702557567654426179985602676484212769166966110321032131143740628570876366215982517406387164215742314806335332560119387398715529401551876921866168600472079479635436297127927896896041248334425620939514869486215093808150831771452399236865359667599931312250610824614024640507379069996426400011295103271085398592552297951163824676718387639582122067783263048477668355163987581113446669973289742642904609972671070636223495974274389623192576253947782520550860171584903007969440544573287022280733596707525957004611929776847578447303386218514669957895808617688176013036030315210684411001521991159539299706770956793406831698378342332020609106077971580081749579147552782262231350993860794946086398318449064232927538718297679795358523831893483840949904806563264459869284642660189607866412268704512761801373393727660878278057445624410064318369301933534671598256353446025353656923681093973891293782058410569393251581525889813438506241182602231489948801436518668481174360738517439107351531601009516263299305821741215397555077321146981364728873210838340803506090952359475108923325368336492469703735442141795139994936723955493204981449741312657232526978249844694239925827104601960746165594287610649741619194099927473285881075219676347874603229448706031978503222035589682670265212593356385133290991051120802784514014134739852131787614199433709739153435534856523309182268415614606965543937303120108871236535945967307065983051373678173969180270980570343500997859663478449767727070161712932377943981534310150432645359373311643292711174756324567584537234159838286052960178806264214971265459331487723535426314182759171365717486240361783504936664666783692367448946096669072708665270912161406651592840051919521371811597764564847947900942906654311932595005654727855734786596783474751693730059200782309291907024303345819419147566725194046770547341356929742809672250214413332620488886896880379446923040826021878768051818996677193054384244412058631991737201213029019798168700742789878014746342819707373503474929778160511859267418299708131918393336071476310323680691419964398993058655359722531294884783879772466193941634786778062644178477813223932431338623740337651233186021011088480690118896712561547039078917563842376023041483201535244464964869451214715452221864769995039807175634432305434443629682815160201787930156222843876044097616255864718617368346462583009228733219618700826717385157237489739383617344343030150921434424070874240685258389496184895466157824258729722131718059496927757625217574402405833484146792420466978522212004972642396901430701566484137023421532990524004760773228308432545084010616481907104375578615934754265341087624582399159027486841898848091857841994151361290056596141304052551875225229888240082493815733783289343277961608406638902819182762442297888692955023965992900493370490003782751079541771823841548696273558531747157117915734971077935632497994476498807336062677647022277401072746638244575824575049080795741004252356909038376566918548731589870972662380258567328260476958545612072352265593849557139327653752835569593629964184905401400329347445024608945422616042039175361814383686166984659428597716253934222793371849629967989907808411334824383445596512144450639637444281501004196690847214435429509365494819127883407128672046439403304886491071277200134215804187596249587285581769404663954975094882542208328084795897704256721969082945683255043082883847378002285597479434330729542867178494004545538265739072351174678208500324964922867803165103418760658900510102446413731271545112041502951801606523293539769493280719423053079765238250348576330141744771062730867344367555893065369882817530711501211325049848368720507048107046095856266636197480253999107776391151681374118507340871365933814005718291940664615069602816041272428566013070165310896239426879753521344748840816148348872668364555401328547861333335174125325920193828448229758555557278078615628639828954524819470219456300859293142254154821273849469883810703874502373296592525909805427310572287314323646534643500991619274956840676865709370118882667616044941037288182633045461535140729006810884023906734991327292457450779209167393619681283504164430052496864240323845922580762975420113917810254064222258464740573545279433843077407656074699781780737194001028820167754231303152758000819565870582202625347499417027230108815439516839295411227161647445146815225997601929762899510428782397311947372119034978556034353250815249628853136841608991212913475412185355464157221814904795671892219376255279816049642656269956599865380512188497369112860591743545784198986389767486113375107345286844624614727497377018275200304951175001107193807871076082033432435804731652918827495595345238463793542915827322295416783356929374862031618849040393675677103641650575942116410366674326795552661730845950196530456259765850203253779381143658154287178462883080655315299491830189497872182287228544979600925742536515528233894740908392927861564216082714728890460484032822610562536534023621014059111319652947288739415683935034395593256360743841726391378197223951419823228531090253773389705864940300864777697027848668300333230008665318313606131250825414646737794237255559700468586724453359132168252432485018536098068220646852332425936763153857943313765932995758311955832204974666955860241735200554057753465250707649751210389640581891363995443171049386999787516207496087411407308802388204626076557231381971468281043894675237704195039333032073364580930584528755570823562480850229666492656629741679557342178839906908472095471247302171952224517171360856281834117364819005242097111142358475948652524983067334589515685960180493916791803344693805537836515607754856106363475431641158645207833304525603340154542723528655103565019602136150243216216424256693263724995484781702334400740818945277639630044996985648488155306903670545585129072065789024146824328813283795013298186399986601336967610266086120755329251497427486572536613687743450333849685015099266654180905841262508860815674979562254894747102677063580675738539742370498769698534260381424335097601202738731917491451596856671173756088895467023964908969056948503315666902124844546148240874022658348552026931745000907121524664004207579674448176555283704822592567489212508799056068988294237597420099413250231001337693992036671910506583630462620663937375201308398497254860899205991689573805893307902503320051495173693924223924346040732421682830968601281453321955364290534053035307150062148963851061486770328507464537189178834101998509100906441820144178121764322099894110011112060111815020674172183202497687356207310583516288230927289309833113856916869847835605146232858379626978681451237175644776936158649536387498513633558843893029941911288436696636242696828728808537432525437584874272896826340078325599975795365222349891625085549652475639438745115778434126587119961431871271904113845226360770210810486309538385859164812999360133379922322703728308510814734256267289453098502118735857321078179520154652609853162253174732684832114228348227667360377382885514964882266115830484293884903157188648265457990100592596321991907527311149804030116349363072779780205815526677503438579281951103235137010630119946473687471635091086291488833788233953918617985471299967570051990135747170251455779710253296530744552316574224930655083811187780070538181465452508860476108482740563324180864456884530797542584485577043589238511873217754754682318873531944197862688047874465117360357447432039635421421342761329337924422235174867716208837835405727431898491831146136405203788581150267883136720203059982439858800994803140316488199786441612555992690236756712794677857424131610437115021019264101748582155964515878848254003354070673296423590508065635426170024483948928518329080693848776701543580775147141630145969758837160830406317548850277977590087002226108698065556707230969413165473769991042296634504229555423519547649073175131115849734998368552931216430804818622556213546443530763839261502469148482684968655797581112831918485033035293901575196630573537246228294510433576934042847223439771936200400158443405005752627349591500083205326567905157730610857424648454699475637747456184330091518669886722651261848709379368917768878988506313231321852656248801945399953403635456949224341133468129310812962037886627721870293354693225234371572267271588006385396131473423741444754554635233625063350658124211648194595912996804620548958937001839323429868477056864013392414403374593457837398437656285909187935754619803662426387941423393145680793943408255270579627454734237239692932503011368344028661672203926478929864985270184974935609106239352825394468364740216707900154972981723107199552258963482732195342494765872557243784103858799652196758029789318924947554780253590650386216932031337486740746294247877011310626310857992689204638058291217856536707128708241783900195095710244911292265731544212594416695499335311825701815991381758964751495021483371431136889950460517975737189470748787030287462045981926716069015259976063884449389672604569321006761014829726240789888673053987740734348545174851084829964157545339898610056039931858139143655318746233705334345314306733069651063265491033997852674966718437298450476636410445592302122947985138930723934321329420030454682270284389037938734117225526542111158257206850636681631836496041556209652134272322179582046184270622616736005063208297030733159700792335672812066520998447312883136952989622823796037710329857548771724841040616149308272361994966816907670902004502211501895658678109626648098540728808184580045286266745593730370551750800877727403922515857251748186624563432736722228328949738235034376914423807332232739051950930662842302534114860996129625400950119173682577957239966809267960599635178813501277955504623764561220950533287264657908612033573848489043570825516888203104107349956254402689210722505194847716967724263745321518224300040896581813056946776136801738701757807138725485198206659317610299773262160170098242504937431544303660245756125157061070506729007843597032029506916446740669363475616173067709651104545978369180908843477996969695840763885153191357150166120631697709437008965007883493029526018137932165290271990480223159729823042748174197494011103676422204256079745414944652059281900895918439258355354673327674414177559571588899566951189789988931097322435852630789317854751308746045375055086186330654147604408320915678801708147617438005179225912838962726924377060574953516508113582817633878276905654392162971888465213962224323787896462724273473233150528334606024926017062187867397444959533791090735910611580027659455723558670870315339620779353280051012724942233333572921342041273892302651329721510115074726003119408494617662000509291967467216289096883215124916130448157121750323090444679060997027914363870384997919685489111230316684277115177369675364288490441317639612592723595111833145964498218061573769301318866850233439159685044166430242213590048893992026372326871204679336075308112523293264851635044846393535794846001998114296122145640121156838217983348776880299959473173333393230226411271785016851964331319141296534655263028368173384777452199471354952642953651793414442336289474954937430772134429732118168389308719801870428118417337010135270155642891110963744134721282514651664853561432982869125360896569005115076533458152151553702114216479720736017859049073673371575596147933173906522209573434274796338910543447963102045657653704810166550150300470457393982349981227749370132452125766955806775825295937313582590377088257597856509496609998697555457439160025617411972458929094433352309522195673242475418922739854317930929401302354931794046786399885181896289877071682019835760422677616136681916056695227060298555847684047601181250146834215091924010652207350456527546487776146107155972900145737970635417341652253623577650536723293814850605690325918410778187507110386487432094698258221113295322976842263967693081905729529266758642888181003436780712148009311593769277106683813683857916812438508584101883041368892418692488670181603337455206697896505463435864131139090134411552391250088809016216503946941891947451952899760187654570489146227774469006273999662306367725639747722021880695893700981662024733493059037305837671439296522152904533270550595448532608828038472032336675874729124480831761930731962415725696955725650155254786962491350133138751304108508072390547200496012577004492135063427466312614132588105970907007003559591896103076120755985604790324327707265108667688832836189749193530651725721205830962673282521662743613860544898030689562254985623110619564231075556980080196530518940665896266292867893878737026880730303600656855451751106274475784485430111000858014838874096722001539325441050750719458175364178036396736744108234902717122036852960867959485592415573633166046865901991561031195464252893217212216673660246425232191672520485258390856510918279113815441604283873575579908545353059647606377511991778764259678684701525152423120141985626370811278019623004032420487771550343990725466466128232052174313028222872347878049562929962648475678512879940737535905777424056271937253860407584106817848405004938233083154973905566770524008376071649493298568192038111366395577335656265224812991932200884472050172210619756423980998638771956447386586263578707087962284806243949923743158142163364677190834498134032108354920614130813036714006607131072164764588136780712421780151469103478603128495902811570581410723128749328386400578950228366343812368239461780628000874893432774196320806352298722903861627054711225868322563202926737688017590634749525847727513941446043888750355098560069560767296374736263335533123366576520123124730917282302050734567543164646160861388693487619720552481796183685266756208127647239724541543287526305797202953328677623941199989568030161553688110963274117148467176069309306589290361357530401793985325884661450124058190923599325113172159222285918064238397231339642697365725183859928651097452097971459614615139973586125598703797820693076798430664536904815030973894403385424662551169880177929442233722510587491571364049005063056659460615507757773976101762232520277786453410810583220577666674576198450799883983768149880940481044294346245815212838251787511481950165500651711048760375226236368904040512101049381704014980961597193903441267855310055969983478728706770662373308205162176132751854238771250232164083987050308595376994578179126806296638235930944033976850695544834150095523121505299678880863770594547503109490431007226019646029090136612271417421870368823343592166837952841235600673401791262212463175842142434052317164630220161075335023590639547040860291309978873053667317404948213919616447938114698893386977641485503871026252361378560067304073163436327428836204733952882968442332494090781840675046064081554531725385331899790186133664176905470959846269190835185330644507051582593542265564446219634254875670172938169908586409041388497185654298437465611044744386476001021816440647092745186649481928790423916573167855646783436077651330326504759966169564294166113395463109733629020463517902460276561681568042556851143699214382010426539398787696753999130146395534611091875717589269510113866377360809925308399408493218025788459716381102689677179182205625732562138266729846328621591020337841221385213040273345341043868514314901553450234097591480130114145954935297456767559361551075779604935860731132003393700021351110207223544801742379924087415402380179500311605299764613868512658826098086571838070831011240185320493591156548730827373618148427609162739820933715663501806102771031438810951873653819647993721394790686116215466410623957711263302291357094720929870458422901672857733865534532834489640055950527553633169395958950967957644802168454262047031326311117652076854051461821565881447822111419138690502158405305529293485677773960135944134351153842416171463196006078186162501092776508759422443122706356188337767533938560256792378712953998567264539510992247418140162998196116005152897924586123654018106823283107191932906950427186614467419257775758336573936872154906069886290623407198238970301153992249138683144214428738481931697236751714031456215446756421103452857274974287177157563813565965194863665246792541257870442838712455891067530454115966596469659925779514731504380062762418962810602351644366337614688965285759292719807932383948643573738619801066309703081410594589807301275643666310517963737222458575599871319620269026569296389877117504111340879890467582324209708128307096513825935908777323913997223878226111288767171190749131306436501296954346561389678885991552980618382969355419204258377786014308679605304528502857292706812103849678342956505764704512843160470910816843390654267707875116972628263733660643857884191795272258521787985832698924444980148614670487529283109209879552483405891544354455881471395827357576917927021116569012046559146026182495614393082362223944497711244176014467225317832534917317605485242396793047241479555276167824211189212289542407143079788816834814461148700294840032310863466589009170875277439143979862794530784556382134035921591240854650547528438598693992115077688354642974364909239878035945016410660138342666701661275773476930905912974421122584656245437728918158960685888439696185687810126281692678304584228943032199761688283221930464253983512974537136408591843902052910504596030936450473116916711330147979995220180883912811189523432029862029536945412773580454977280930453529289453294794277592118698817839746497461400958574723225422972833997162203166101296200468039126985750119733954480185051236587259815809430051766295193918374824933468789843465489193207351825178424508351281412581205270460947643177104523717554086866457864592746549130684666768702851780395741995257969382417846490187533481981750374084767723953289188430236513536154590381293022588257871647484986967204098427199321084159989674441199606365518973552904852429821607329306257678311116352013740655607808994813229042220682949599574078696764518002864611645993138183749215092589761959483074974826885094948112674666620915694688262559359053835115096428145686988295544044334361115192280623419777768017054304072228369435095832458340092167377596041707360497047472074811465655005719443114938178727453835267472521165591428955883352666239283063110338528409581508780659698167607219310380239002909096996296813479044504661288560224077512284465806808400781443453512905418230893148169767161695832519664006476352488582193327402210143969374201410241625691971373921066054210316026769550444585009083198546904182117529302789887706765684538640658381027136130286368209280393400908399103236576419851573230868772900301753378892821583695690049815312858361978793081165845169813203351927886439796481621498078221344671582005686813281894093300282628760913211833143117320311043455512038461986064882565847737995038865013698092051707300546632196685556038668958233392683141797483288886354366348737699586673664805632981042913768731108267889434242474307827799931811588092897163953891654705161629225186061077400124502930770489871322367241440550777289913804915612120276971395284103703190654905847666960828902176090869222160336768337140575784314335351274713856811860158731699005990001664730645674821346571765956659916009227599996886283150036051232313622534708613054912133635907118447311942930124206298108707176366671422084255218483711868140794139442496530636883413781796572992834021885572385363372366367186234300506813285440080403257869212904548609858601159058171567437144460644575813866740040640818827256293523367162082092081683878702568174087624924432574110143373233668301789449958827977879337209693697551907834790591862450003499402750778141367393692159974979655411392243035123508301238547890888188263240603004309702882691760607289709839667929832251457583269640937732269840725085663731165592060925515340614817302221294750240471135231248166508505670394591523725516236200550299065120679763695349125805912388385525734276393148350686514590205135148501588722455285324665331034677130810778261343467742596401151821402537968115398445706742799058055419876211080113766076705776562831006930688939184845370069529214448189506475689868840728115000544661840912129614079858385139899876855710521269639907357905445624677954978345881277198490200814885204224713341548466338491532296678148928272987528717422033033251679667695269680204272232552483700365295168483643563349839708306662965491334835238741327854600880620851105252954148564664463300417365923047678127895220327024399335410156765553143145793650700234908243488242760132000308335253780802086337955397261343185299490439835794206061665334344600584117576370479843346954980158070823918399928994994852110328665494085142391379264444513369604626792765778974410809716625021999742416104763318002483284291235494233483267772619819093599837275775573722538336708377112769732537176735990451052267337972369327594132144328443830507494310341163140767163198460418191447637072703314934406013957750950059264339273422353033707072643178631234190654438211186832511745215322249882530255814155353830068931416372832405042931007957002848983461226345093763101836219039874679591840324784322965816911686426453318844673691245664564643024687487952630675778847816996772203389481316888839771967656770793011082441994277935888626721884277376626382698227609083105298714514110979083883529999281578134966791421956380667953824104849759715272326943709290260003983335052928563694757948895897547545754854449387294474784810760348114972263743502466804571659766833639522367963512090762909036864130960255136182820471327198499258261429282633501912001891447419575559704416937454601247968540127192143445525428977100225033756909326908959703052631976156775043204511211304066996224842004363026726001279082526199407725509138105246944067796979603524555277328842817714033447868678059502890534550695098106676483430467275881088334085738886015767595432143662473083121794903819103188850652144547290372610933381265499946231388326963058281856874586174456002969258389439949590901053668679626212535448822038453434149754722471932612224489184932589869162659517722317881306257749901107707235914321419138669278773539366710850027847120281509714910869667656181768694501200058649941847079888704327209031804835417713049135538299507132553662656988398446313960515311508766397314847988463199469193938011300994201912633667636428471451351772286049834002914250498847878727511991320961318661312257518567334220249806089284273425209984255987509710415953549534746184748887511024784174900067054846136780653967881051188749683845640870629013843418106841786557630985804169224818361245891899005349802522356750713689941022728746613706886415411095417549946507044782420288205636236235544762667697330071554126600592899968718964953351722112807327223100784592501914976533936541226064869003005405319173823086841236439065391397482847468804232776012109413631712803190476223355654274175510007809621726434722332410362167672814204813991353685314436341452158369366914927697541483660482385988915413373134573282093574145693616525313819704767218650364147899013106216700151331022541099513724130293978825374986628786416732936737449426819018609034943243653555299615033716043224552587134168022911753532428294500029600600916281396099851894595390234714788516002818235766799917665551719148173509335587156551339749748249866771865228706352831894932884230890029012278223148005513422201949736499354257560711877759424204752324298050088788192640822324114054582682805414563133028057438704604145041060992730939690076830836868125655574073414929752776979047108110052675892571012300552112228657697483070170334533088267519342964044680326782281498872924525966775681229642736182186161863157932602261065884008004251016237070128137056065714738825715257123422293614017368530663331375581167181171552640196134377099405333415285189871407663956243112570091484217381836379877983966349699442877255376994553350167428618306430818216827941343985613866596254991635884579222977755474099021606941733486630171063805172003723463155053554284561143109574125082005341870190701779711687485919472293999430696704595463761194269556640805984200037354848884897954164382614812131959996796136838494408491301298412389763885213313165398548395324253205835792420517552868318894314988478946864355160149844477411933177550454934358470016306599313702596781308916609354478763932424924718219534607885560066842131275435320938559061187628265157897772360292546009288808477069025097973718124196303690518809830552965813094883933214332178259772559823949664115911033877742614457130634978082402225875512307675565676227143554325017415122375993423183358435803657070410936953318662858247680850105150933308552572984674485836579840863851499673183090555472091851832519259837738614521786207579021881870149716358505126450147441323787099113900465376188264267199985184933197218075325913004112549295506773797296067907359617881256922571803741833711350938713181553781417815633258836338891014439474641045903828525361205885844925519893627790125938502869748441703255081952743253125876819426765978449205092483684936555106879456193764104290062976644981129740202710347736366411765945743626978601455986841388516370147305261306920565541281695349872961828430135149041095880042548685705068402922196269833875275503652990802902508440525606399342008773114007259644035859420206762401600107420067060081250317071068551893446601427856705499746492002641591705364545548443463674530020022999151173983411496216311368875919440101708245554523580310872865512055911348357187677910678544545316941127831212959434873814503129677178959716840829557309020308912109523414550204347215460623166162771130379509984631341848042794860411263786686105143954564646159623200288601223139400457953551308997664601673040224327761527850618350085142686705554849785103204345350104421741538720017368495549738316527210720962303268086305943019461234543463375046155289170739164187429935362030963301977068732367574429509659977547196201701498848562484266675240574849634716703507517675349489869342790681113583433809890889291787836332451644543068779059555261929202999451190435932995527992959167957721997638435851590155482469991851367097057853938408251873864869872390046864341714218420449879959808093116482273945486352994915068640550387890145619805060851230851668352016004949196913598780286717193378067338437156609505368511044609520458049290522980471151291937888722431363308435619597871290416815886416339970364839234080609572572157204975676525229022190109341507744641639709322035891255770377353577374745478351067835548249519498823802991264078351479872335962018448315120851384388342527038541130520353758059553826155088719322727867853775947333493639515435561714566268364771494869359102814606377196545602843297388617245134458316754993384816154524195707266294924863051947538376626938157167469638083044781963488014138692843478328452473603887229793728462387813782878641562066559133465103428580239162657705143371484627952129356057350946820830147534398062820368924800750482219556797561137388376603017152207453697182257764800842587516856844969387524078082108092825556235591101447853689257327876799840591545671130325769886910052248066372055646733202787087474561235657510442272722239574095356700569291458246150918197843274780940151706801524830765614227927063130372986623460164542476588916747351643950209414637091988087904493122845032252391884365091852154143820583012796595047227930285897212817190967828376274746843346237623486895522450808384569292142976231062008606314837054988445322152627365022959290710085423653445954184852183016232090716964195166112999033537640520705423287946719202643325286661680066438541938752817123600712071416581727253457677602590783152449657887779364214591116507394835541727934581834829542789973962711444370980156337753101719835199315543840789591133289466990183870358304650475679284005901942889142949669141812460487898012219437589210268372051607729253772530487605139219804406142506274688452748834703203478783358594058551320603402524527548744331295310486592082814207471014734086185583135973689120140233142956533397706623948659038752760077385881108530519244219960182378853158235947737147788272220956281609774801229402499030806793234663387820705403797636503668687152530019293572310378316717014821464681672076926534494641286122462499854306231494457842274205361658341506773858772026484127104272274672148395129519605889198978965695323887816136344045506025034755168609687765838064824274090266719709513493267242942594669013902941200189267250959149553758101298673710812559757686215335367136590803844479096095437766787500449358664945732454606178476482031534849775774012479337158258532156931573559654091064712842496860874410674391782895136994831095081870741353070770159608002000882882406404329178976279323746595016956372148046473376478952745534731800006045897960536888622577223642441106306606851831694586539028916398128652254186572353400404841072951782223547058926887211829784443336198299706062669972557751273241486421727467074671359010184617365764140182121576481187543066796395501406382485590318103800321581837540414231050028624975528230378439222554598229036162653246687892162248395278663837065757127320526743009657816554842270539921199022276657377740139335387408520210372695399131804780910523605994186669296587674604700313602085469271900779420561508620877561011701302952969819129072670684146060726317778910135188918267828378222070800341483828383446241014356896716177705333641010624831058437994463284574849346316733372297427936510443744865683899638294102008390084219707832496003696454769889067007001009691527467140520532341605267917185672595116663248410123910006839723291412430377685912964698964932643684688114655279678284026156847657889561442545610193295468470148494296072317072341848290200919649653545936127248610238937805609161903937684561505740611289858790228784076966783229405249852180424449167864781578770088317585749540180010034745948791079639617572754280174924594489235912525958484531914403317703325824776275963013072714046899412999371571376836021690721122574757397453400265285289612280971596151834940878417219424262081547256343952384912449604837838226493769988357554044933598766372206736293761262526480677301372232318731082684315930376251760172260408454447248739061081893867266499863149494665915153369244921504845523478389156135951437083343349750394561238908925905256353749743344334059674899653203356728837250821858343646896252873094115573049789329733213206840601786629040867508952465040270051634152967450521438388765749476642082352619811192636432513972396371024487060462079271470728800457414190310584758181490237946381772101901634812841040448832118513862387079212981953400245721224419711936059193415052217430789837491091206863044661886042520260925117547369440271104868343765780818307987091951088864634463015068348936691489475512047209585331204133274346241241537586099562101485976033956841104612522885226264634860990543873470898074368175421071515204303351542414919106060954485122827516957238259283589884186805071678585702830468139296603799885056819453408930065879274488425279310175416035286613700467354697391899343247201791886203236385242544138203114432397506794214881258488369106465189962350169911623235803830679483614759044803576030461173450700086208966446056887149724734549769961056187593497040544480675502865026551659221811978407764970244800903356709480391788617805548587593615165443784154878939256423466623234163232894097752985231219039535402194542342810722219061376799434805851780983857595934001169828467353588565330334091295815181778330198085171299678085359600785148058635782384876707905788071947588969156850274478551339102689253298537054059657467194739613459031798616873755606925939984076465329783909579920803250381708106890781546599081688899760031223616236825571040493397911618109902121580033035189845591095848337623152729704014950899114258918905644884765589718723862820463749804116150398735652516313984021622272322316859627682980659274214346026081948912481349679025336079701804067676840168522502544491490601375263685365111915745460664812815701656987745873611971061702560338438506668720281133448003572862246018804509982759426683838765056028272854265320515289450919614576759206962944872158864476388185474985136477685938962022430041574611146083161446279415289920494576160060251906785087342404109117323390011734064574237427833216038554138624162601523704076265133059495440782402169093870641934265698792530555451438755355936911714420074139109456093531514494225100303532063003166231902282037832246350411821243232455496796056730516610290640976917843587190657216072778735340452307516666297798857906780180050905604703077419547465944898030156645293619721704451398057452005734658577742718507029284691653809324079070779539534757132368587633761788791195533813586441833643211062149330681890018508010281673298603427889120987788050750840566486826343025430023273779868154513143683680516824706492698772064470126316868665985173235726138586360781689966253564298009988071074218092560348966596688315583027533620265637175275500632134083344700954163610661891090241812725241387891091637136361238754736643760051376228804542939753441426312131221742550741849794262753076034157362478463455634931841820922370147100681182734156825698217744473737823277266131387820910848646141854863202139377083939717442639562245854612604917544649901396719341829057039309460041257147449618159945471881036708651549189567151451518181441988957871777069930434132985199108102133469839425473945800559644261731874973745535795256877421877884867821138927918990062615158945663882522935073991617234832050551800753911064211078990634908683255005157618805327403180887529664351576934343622856535588363928668231128181543500213594344688039915522915532249392933467304588099288042441214345398483896416207469187592770978073096686405826763618046833429006638418400802516588916019774604262198630437757678908295594943308177677493237443236047502903912247441388002390594049828294726319881487687506770917073091688191779326483420456176772707881705655115763505099469055661563948713096008664280621273561165889768820945674631074311050166777217090097131620810693587140827943615876833824329617839708388053514792527351012852450590040163556883596862077400950973100494000252689046115519326234522413266259435198613267246846627457165241700285591866600142764931212543139074136148657993314302223419017785679318326953092694733056809056873600017773876105781187587912372998300167026823806538902402365439833866880959738053607315151581345164265732905645703487682533494756900066852945328176407569603087215504716942067259964100280610696337160724617419364910394898671018776536567631215398447580646058046773191920674895203660980965001486140162854951751428123465243453198722428827125141732883069203350077859682746965539170104456980160799230739775710787238340023987568763211726864842570684636593207727156383719908762007899315323812318133892014623880916392801089904613263767205336259297693374977069685559962332614643536952893356673804967167993741923673535698747246240269577304697168682814832825652786450099910901409627873927817236688220934403136184719649949765421734559312812289558980082906495710299091029838982085065771434331291439598784194812407220029999297141872646055267570719239648459088350252798786626183537599694154966610737199723950788265066601424133452167096609577543066903041442739700313513133435254011161017226324619913471341546296282025790388685325151235007269545210120283706828110156104277722959551471667664741212204977951643101049733222969280344669399939123867152482811167167707457093358645871970705843336023742361759170900817208938791048906628782730723599219622274959465949331779267512806911024955630011771485555813417297739007128715721236430619531696530227663201898557681526372495653589206302074312080769051268105618617490456084946464123694619725579272680484344243480165959728780014718160500615039546730499117503287046601159578000463882784655177318587549086190546710217968298492341614722888442130204214706427183254911325737732048305474452016758266418625460390698887850999109283599745042279743368365043737503330181082627671177760043903173871504718552650177307427934770068442776590955761458425198770956708274563095900611408567354070646368007462136764365530935036712210974079775924587103731111143456702695277460535053153365625344721327097599200346786169815116515925831249176780310153821563507208042331190569367621725938111109266447952049766611292823201997420258868177972591264911151113727516468825267128929740520129122762608810409167589670042325277003101508776484954698319064601586767541944442342815673907176910443221077576735296118463111404950559258909209004757282020489117163711108637111673023023188457330450745520335785540615061610996502401552697648639435087125942817237853640795526933279974791319215151075367615778077745717182077766093414412737958827303655056010573322680605915305835119172968096043599636108894736930112305858264467929849585115856992451492600759992215156688535824509991946369568881136982898745045822175268324081821432808904672966030989047196766402125386640185650622453113334142179991597328023278487259356601949604623696423981852099449779175254021694221736488008744761710877272064926794272347207181366287460070824571572708250844429176899335714245614791474583574967255540383439413833747048084018991600870712892030829199550870174956146414780456037751991281212903225098453246054869211456566904335831275967178650242065257827337027489381129477338848368272569731473072775518901682463198948745496042655429885157781591650022062717650559507545516524552605017574437302747384842301326488707951276832063563655397101129797590457756613330338009568597626265058419411146503012070872282664808173357844730606893565196233631154708228660084910139997594707255127779738982824683222380658485552475987050903766721326780536004034077725292419721690093565997924288417475215504694308050248560454075079091780677139877408935963949891275163905696035183286019306151027477471874117145445649622310457610031310353333612514083037989971702004271526895091911270725268260997935341926612782570975716999234923945009695879465882893322299456085970494494552370887748351395908018814543833066529232051293667886289613427177126630745968602013172378834037614346769643894212234011223804026664981762881969112483101735029547577007136984725131709521708555093139172287848403581945232604745572752172801102197858703661499459868490788427255265654777944310194090828712292496640683327054685542188722262591488018184314740333875461648123571910953557269154014085975790481978750071767627198915486058098762150185274431931256706391070322634902040694791895636460473054112267490477506703264829436534002504313217183810577862379155276931948107479825260360788170158945054569578260268476790549462010148823527307394932132382379882171398010188888224207582261185661804455065641802287650191546667254426410838018473204423907895117824547378046804345278120669890851624700366277612783293408353948189731942045395426653067151319380853148950343916331855547578754571111734749705044068911203151767157839106246751767964638183386027884143187415111207391321621092266037264970967515703368707839622524404027818573793298906570484387036429646588070951728429165584344384964953001770177800014726670238182565799981530540236593072504270015817869767486581807923912411432444300609047417571644106431445762810073212216710914416642652375752656799761785640226005194192437845790625863204864574286865531890829092780214329933328785846368873214489154958373683393875156112925970237932572082110089576410094649399202733456439400780169453763824548290095007952567668299677731004451788890585097894175320438153454567442033432737944628093149187715796728089369663788424270193869211859948755510184534911375269983344527638916844649035311860067006852629063178759621540899662664152309267326019655325398715612093661558042571291369153980925016959747140759976544849285140563983383393066331473520354154652398477393223435141100238827060084016446365761121725447836200488955263415762316375717537252161346607231003782129394523974141643434592597937713777515201186753382265862639561019750828942917489955353005361019160036855223547117862589462422260923898718743653584881087403003043322327522957820338648047181280448588238792636479248669158749617996155484507754358021017889796734642291275383951728952223590233578857142170070135726837324914927630570151812070289165917522542459126589739913887736898097018893890223738347279422879579566191135511104951572010170698733664505635618649692368073684244630952704337586320424904217199272104860396170714451516114837130253617740059342449784803845377920357908792427139893557823991014821746031242385573063606882298111310814486890104735791218409542359662671054004484636962003910690883618504790986159907771033355784332227568900787711187873753005770562460960111436756799399172093424048304667321265265239970311481068812351520946585749198433639641534426935041376059719198672825920284544990450281493900856206592925043658476361303214421747154208294563861059627104625328779563592802989817857152490089644773891073253992285398975195943788935649909899458851514181780741524239415918008935055407287635594879349252315656232842137304832885972366784777193457513091790788247077303152252781376258754263167414678977640646807552350641708187591857341335623843911171864401700780649450400502328559908497680089555330649369173059070055258027195351905998700350443592852897869458142688407575321717116937837062714809407080262253279507900913630556032072058598391261703304218255440762274230877253121813802720475619388038849082144088324849243559912487118488554778359845670762823662257872016465381907135829456537150062039985824923495863850195940777986063795656600096235257352486193394514301717150171175896300234437263431436114214147411471984031391968384737366206885634670556094502301678613231933428038196932583274683641547613438193618304141170879747017465046425574010246780655726554472705807190339485855489993121367920882693080758116716702374215178250335979818497923630560272664221323810977192990712766673511611671555929464245158922470824605196797649214534826459864660684197321186358767758179359982181811612312604469744906011091301756169193445791417984845967483157294315054103481823499263205728925784286755494167385879366350174168077735281297573796044658430129976882123625886058534815856023470799543924444519161455044312331824667956199733157617930744959839221403313193019629310748832035189848176024174020136702190139434217023691045260357039647104215043487925910290694595828598404424065860851875318270382275132565088724689475088807264929262180187981938097995196680508140155656619495564676531390713033212388632758151020596979078501223948457795218276608093104582607018055286340921120856445762963457838649722663705570657629367310071667326638045973588969409848327427684287015081535302122075202045746611159489917875076717811625466611823385414284322688795934251181423497816333363952094774878763767625557685111834046712704231745604273899816858727624997094357793135198570864733184964658688755159240829090553172497807454367291675880334577343340169338905505776594634273749559192861795076478993556082342730228876655866982402467006951996541551117238206813458467023969760831425502998403250520431193189218456219059222367042261931248096690270919638706271539494407090623207768819839352337291964202715028846180593336868844856085293261205413956287645976470102931153901059806647153432101028647137668079694158688978730526500700391148910190420617303553079781503625753978697585364554725725414079885739428097615344297892866077849378669430183345469454051355000233541941789056380640273733328837394789323358981700194281024146956376337036416206285610515097570954209887626356564554533193420078247958785607820205528285475116468124236800747319764435151535710468058951169079353758940428938007929731062408717699654487946708595071841272529499200022449566265971721475153206424986089245346759864934618302134848114713168279754214899762039006730948190348504793128502870805032611696775759323900886189928250493376457578630460447681148393827415354474410327117325425114910388289411172077644365544584638189967662960686026363714993033252382414713048179704149412571027696713268653565079101820564103639954802707309308143161354717359115596214819469000336396566401092951760601657228953169327670969625422244579639184925970949078571608308981851248248776781802330578784101371729014706973169809836737035320956957047882383830578510663685336801826688101133794108854982679105266426518461061748093920255755832322674590199845616068767723507941003356862197986077840509517112899992311396527489224952125156590544249367303232997658773000765384784520667759596175088091155701931105720547592895543201074181959244969620854591226562491359972337282928667128133790020409105614937895102551701039936978371872172725209728484309827482610637621489672222056750971532379050760896992913345496784273219018664775737116057598399691493239120376382130226597595792491853189124526378934794387555193846139659527291688362616512824298798703841086256685881650235742331655843797344566864014684143433523613119295443836169387293783956453874048559005652690842503454354310477745523253930271511327223413071067093410832451591368341934554685998105564233277841599271335926802609243251034227838695233795164017544091155305698614326675840806720205271389923744526335846418140759098179097767002289869361842112300396519563353336006509996008202963199154283206270589782086257416048229843403514306938770912909503591667538326583413843249532527802023577937505972292982441399544757676459369685868592855210067676415205253850183774969633901124094531338011141468628004602348736763352415343659845928739697998076147236184387217779052943455473677054758916913232671834783101213190627242930177047690007513530384037386803528585727030562399892560378052244448690568801242997359638697997654774680275484443585297498809336071573613868649077685170342247912368589910692503042770338394377730562274299428731708336813605125682925440782427513732787445751100581837110633233627809571827807584869574170221486853038089746476099658408814929238008282140327028658275184748730976378893631678015069754299329680972966295981435233631229231541491884262228461983774464848430952015990892288587604962740956816601497980774703421450692662680936424151362408391743667316186905378726934493427614643502008843900927670064706255760853757352731466878783790769122670592149213001211716603798069517501672861142546030348737111085031644584115628758469824524431055081416227550832898859840596364141544868499746397211189705583480605338936369101093305658984865351078836344339605005657655608684906956079656355187560737901888200825413469531515897901824735782978868327542175150668054804090296330337973857744593095143414542695085679434301696396715567899476255008611146402443803999019318610277551003566028826356231133230735677176505326264496383036098835118146843140766018025208882351780331579820822506453458035432668551599444197872586170812646285936512412524887356963049561922865120599518934439835507740251753739939959471837033302843620034038814175334152261184964844296157780381217881372679387397877564440760656753035241212674621923639168052386843882017334321287922636124889705013836872807190099186653514751386490572696026775533429611459227969203646974699108640793732119410881504707008653420652605971348377668548714527687671461695527860906188082806858931091217275636207198131555398085323308491237923053612852096443789517758647264418531451371808748939379592243069260035374955593210110047405341389288340089715090754206197155356716870330730192997687444170723297449701172540031946072453009506206427246239106453222967432724112645686766355535339540780615952669746027128426462084118253470066369465936098504534189867609765828381208714126387101314547318636953439137623164716161434456166947755441768974599194407308571693774498912221378994321510613070495160059779645790912556566581225808399596390972783768552828458392325823212041881695742357871081658347019529821871700799241167981659213633384291938912975239956123934665247379611550921371190826313265049569078246803353914148910955279067895274099369695082024185424232161752496899965498835427160200364958667285230089724863721042764852440054849185967513128430106629463148408843279730573231344879521587819935913343409918721460845449033105924621412147366101331175689021895228063662345796573138114974475718087898531838022309849334014173736269334272515410072535770388585542627518225059542800453314962637173239898621092893927758886425905670001034822360566538312734579502177938829877039025874199765537596630774402608320179117318699534758096813102078483601105029557267750847854159988253118637282595809159012455279174019027870542050699590183766396092210796020094090541780520950984546623651320876894923109827942697649631445551286479002079983468049869392163943387197274884058373832842190903166027841117291322215567759022153447376232934642470236659018821909228252744962282134784693323752559183516017558896444091044513701416535764043012637076064032614306523174579106841603958694628807890500885754671692884689733184869543018994027955218264708554379032062534936401801682901543234991867409429562588582331280404574218439294972000836572061317890916659476902917981611085161952728543594945443787904631687087685609425416245375679167097513119847678701758482545851133125633376315112672506789869735349737137508715595190510309072380195484140727429496173110731994605657093853188809520076686791999640485541540680376471824816197692218732995666084023602767807011781657641169521898222458899329180953572602771184162778904041513567007527405027536871631733553767106113801704294026390738774960519211457289857447200711466521444161491817795373664305193235599266653563774006739053398767724769113494910133245266214183407083647796255515734883352280141683395726301423691094998386123399024015908272874536564076487880629047863209446679271630416871725889970493449795300536231054263782496392626521548938445904272816985984735986703553704379588009557662935411752028560393361932027956032971397469381559605743108954167436318367821817354348319771613894418220663473190675327209351004157838502235907713506640777807595619556460716829082847352090053554437595104326958110950160250975640345368067511282059105887965855818328414249570472441381065400022740294996379572548595053324245460130004362703773875594227417383470302944447450577368018350874131104923020937439339404069983898165978501080444382770118115981540883861304504063566870894648590478180684415592393670056644554758915327840724845258991007542141468397917522406819760041084221813638571974162554158340621894027827756477392103542467984280836512866368701700961275136548263272774228467567318269979673304600319483077996957054255601616399422347710529725983829684493771641272660631845362602463231141941153935680520257594946372344474005539886550405144120657879078778446970459727314805825568106352168845423002571502755815610924605468927027256616905401212405855153584531138173123228924285232806339355521902039530991895992501572425810125393162332331790260020382571693172838763981536629726888459824839869089101666196865978147503847595704291324523665574899323440057837981759971204547418457714580347760012215272518207431678576149576233780437982603891705029484641049762657422771954946033710368859572576423516378692437416921169120877352961436086738458191199466708970758225834825811513915559338850112080265332995326565543556065762290282887679676071834432059994535998606734322547596012136492425626915158197104259478639063223640345322773438930841087397866452692526264079962453140769269277290171361113915705018979781975602946384171842342624459239535418463706442515263653545736735433882140833432862928581725743494727303952945285109440657558857030019712313627274363585115737923290987367919472537450788200189500696472519620887343079546612351975893063105497691331014747163876961697902153075088229163025753839328740875690290331211217905031863473035852053227456891990323469240862088625746802545167428743810790593880045074287665534480708584146228758766146579607177049565611279768409114125667052669885318420763067705071984917759549571024946594738631752131912365572864869568551897960675080923204319178213604917993215104271915083450329098071224708740945205490085434162991327840848427947897043300845462819314234007746890766473423356577385949889461159522901250771867299454110717723564941373175392136592499512326832159320329387809356296482799951180377088130097740166493344319418066061948579978990729261133531523715572508678340085757098215298498506371937760580492740137256639266711314484732118045796921295623987232359163354204458096468670648172912168862049913792600614524387043530187312771971828863872606419898715075946563802549743660983637447061138012149475818879708468790862813826112237593596940300818933159131780017168211393690780687057021004011101933284199093102853507404325691360056844341017002275129099825559221418427961562510926487727800671649472899233507140666123431093504562640589999133693473836758577294961671595003772049832011745835699176090489180947207533529064531002735998288208115258398034104464338881760316936586885178182882083442190761580688234949207081967239021181696643817238840421763791408412318322573037692229457836408391248000578204963335646829912308998282685774758270659144870978768396343304810714418076115818339249733122682894228161420537538510687171610911163554182827575939424387725773526563736374239851455920175055344832815570750030545946317033380201546216367021542712476868126909009440207905413708053641244164115749175873518108062299645618972890568538741921729869537009970656593417039488466159643617046423087076366516206820530072983201471199663090264876558922276539326550051504745861080423339409227425502601136102250535861093389934567930170582369220297734979936213247178708735994198234315088211808691528106510691201511826184357077948294326478723039893529098677230387052438276928059597675439852243864355112215424492024860782342219415466458351435528827153787684288610421621828658438692821519511759964618118705634573200492942029746083238483245014630157411317804467783768893910875725557134502591646334650591554590512219041993464121005337523300240496521721260006592012600034161031619879910105194271304931065110263552655410177591583152756265952073605069401947042461438329870833657726013597828332133226673736100733328018072236417962614809289990655994194676390184116970641728617639520689376734789340693969288228275121134648309577419387568578206992214542029083290628074203254507980012012047102068044948540398076714462984442999596486854433150983816043154580429800609837054353611306341534758189257681227047218690159188362978913668148143495606023363046835499862074889019114157026734043799778798192460535734759621649903623610539312090928215076995490568823517235633170958778668806961861011445023839067186575405527811330440698010471099933393900130679759713344790901238593674068569522480781360522243860579764884917166249178278715219229674855814231640016587724540448327372736507384501482435856769736766676636058942193575368525283503145788313717905235649015961527417945073555799914122182195099748723685710425016579717677853674806334416791461823493026482175766604092856848461773657495321702902778002554219281717123583152353705150502633378639905000959486251122519273867287681292827836804399338144615603597496414264025247110597249042026555351940937172598215005310748819660964621316067392753519491985887945685966413713340364228089862590661747490021623254876684906622792476305278628608454018502125678851261115016835379537976832676963383063510567282949091959402646691127370008191719729227802282116540048280837205013649248796918099130448824951825173218413014939850642368061126845487709436170071529926471510554902588957857489872966190755389828686893050495630285423049863405628772740220133445135459787566451577042892830131013326035093288700095712544524664040348772003902283788090297677879945831067298053088482648956024722701879214248476525611944369037003920258615885656131758586645142248659469845747581728885613742725317591627242321074506753716316414953382432056339254694805769203578426464148006795583197030871075552331133846111939512895759599623254200322719608302138750697984288077675362357710920561443070590738536323391943340906295166209998533446362580440217046681095086311566677689575592954027437486979544168385318164075836280190412622726516698799738782897695508578350934431402818629945768919987754036230391529450528000534315083280166941232003116156623993620560891977220668579012865421484356526669120943343412191853721713547730625402445567577333068968253077148207571713406995123630900971910956036239462073228322659271304043796205677711910971811710181324485509255284838421505737350678992409644896634652701275738194747670954977733114744305908654704726076817980144356390493872836846255278099639285701886297268694474002748354032126407648737412942063707287272342861720595084066573037722709805515586289610762293846425059533318488048113376412887121638647019891181634508207027709516752952508883154789600206676181461031480589164184557125747362817844524942150856729209465562854207964644264836264260564574405584638426325268575032222744534123171393775989486799917507238545766053062979057770622523743245863245442963518361306037605107779407031915519949105222958912490186182804674891941349199611317287377202819952213415417757166343235895384013509944166185010353166286334890386141788668349035451558805911823280585931698472102989610951915448880030877130604543146620746890247383757985665932666765182998695469530985791610885268181095621757164411052131139798838465625605681520274894956266123765825453232384851832025917247329577788486797834223007857514671680905773812581274433685332734700994378780672717682775489411215067511842226787864372844440638277212428512920413171360964327433050952421900013275521689085054820106680328747890236305366958533337679979384847834232958113452128693217506311621695216679484393992645242573538831683602594337387543589938679981767670128683211665900959806113026179888573201398039819921538290410726793654443992861757207470283191713396696430978419685120106415296062868009485698169638362007339148833275190389321376579337145696846337779317527650922404128785965421296353962707435207249735639155984245632830963296162679957359123272526258963988176455233467958183854714601079949111194196300723569270251352417998606472350148435329061738626594949634267463400202770340685556681635794851500827650485848860258426315910784571742714807342904900342041782146498932859673849655557428268869549361534522957767282784958213468777385810740845697181227678212574567806339214043115694256461402735746731695460015746444056414321035274891095929552453194621717171407132090178501204996705455364281928402896986737030266093420166025077790718848380301159063550808917547787723769718262290082690056835225607454909711197007830595573528624782426035478660923652388686163063180259249570128584012227552889703064113631698204308952855643896819298005994209563728423339662852419805590119877770704298491645113835911110439520712799701050769615865966698879276310936635281205419596865468030252835627261933217981474572213577090510103873233610686481546972661039119653370203692553740168433501859883843612235185138666684409918421741848529627855215722383327829805935519981333021779299038788211138210141779325563346364957128736425236770663134080305996154051436944170472107667439337141123071948514097067957320319254282061782695493807877859164233476117508070535235597044780625021553961414288197374128622787441280304767317644993107246910237340677769185060416445328234209294687100442175685073551717155079303588753772607596982006077904781434717960709959526992771892716250568748054281627001728861275558308487298424249336289496575199194519051827205791748708952673453132528819634490862853064431226115460367413751771837502323247224747756841371034978515114093264713135074483571274506645494887366691172498690098065870861139627563360581257266329207451896766514445487021964221760329335072827275710329652147172441854627066232626083935780993094461249914762398576882945250244777779345057234085004326294839269717228006965123596784402397924201737759863936270375139691913291668303698002154412846237552605804722127197360635060434861682961533560793948310627726434965221975074369299703794779367894694941920580603553852526529225564461661263491284632904976771878432906702174281989844914541941520757007697281488798108935968429863835245655851017236361782307929083526910764422468347867723301909097228047693731644998492156639799334915326012598590229641434012686580760464740144067805188328284216152809129604581024490737437487007707733361701251945967098282174545244941649224234005024112801085478586312995744790513072441826608936145575292330853099231348050294326643429343265254756947317462193959489083834362680479691463800871205417442016160100914116780011605692592179640264645222351730832012914236037161125652568718730637816679826310132909170986549989589666487795103442695806865954816148039580800153218532828331376176888724786971260471371385663750958149748105544626583351469864268484543455079443300394093961456156604052483458452459083780762658167371155693526635256699085741415850801430992140600547167685504197851466902449085813997970374826089036684800725394931132665502523407860096891072279464368342894565327143215684868385921577350043120646359578014395959037969496757526191115147797107683197277565600645490964390136421164146318074340879109173460665379001929622908496942349751341904026213160811799631671088885182967077445201746897429712583648545607049250863038756268795346255677566077631380989943570379493876954066964044285992433563869904907853486297369116406098748093124058043830469948205222788269640948838046246920438432690392845575158966211859320702293577491920158967652907787676757119907024463642044238790684246144313591475143907216707988115795010912515867821602813619966315544141047997519412399570483415233966831805050595082579859656491753636265157150299359393515214204064396980435427423913289604144743895275467524310283980812218860809665404473038827377738533920475335797421953060296539782279002914115460185391213113803107361647341054780688991352469485663622815479184779796398051648921938160263604928558455741871275459378651030003492258692856031989964700504047115895249297046188753636197966624399018775174419866830313672581635508120787563510296372191632614526288411676067507242588354254441971145280159229713060291927525855528150999425494819183200484196206550857510796023049366370669013989280240792524056905893629452966342365253032976363332881941748253275696986465733861879256208819029106389702544085540761724047942853205762016214159682418201159808823480789130612601105501879297116255421720039171473882699745090930771323619840128706754750277271661222024569030593028967269776532419726879670525046260906066364656757604283549060769074448082968216051193776083499021062819403712759173187157713595602469553761339551819030907263747033322512619234597479778500002017390307600984307577763861675941712585250215473892580000314374508240751555508258753746233262741789206331365068493994099212864588263982035441430545906289646203542908268359384910427264854539540747172491013403015044646750103596163610118020419800992726301091977117571487712491930812978469997191821271232946507994547848211648636101520043073582943077640364745269599224299216259789141389632059255798037503225197171031383461067056427177418819912486294856764631001764592713730793764921016399616333540862406449536802607331685666138327279507980883568286080785183285495427319913625470214847192424251932322256538763286588059094694830930701083245283256542177296985536627869052056258309218841838238204740178482502616902434237185937999088240071752211395762203468966515292137223057904448092924246467891084758331361389704362627490579849201647948420294190163416255059774389490398647011298660124517902991796327787091723586072849517773652692841741018406070236938599668510695092251530965702549734832723514829831272511362304432675006702588112578945099549163807424852843124463560773670334430622227936328969135263190827016645762781420542916939674957280437049147537336863719350769195861960826905428918957653671987032669483698685204796001677262198240298428709597321752792456629690894040244288293652186182594170206189987106395704807422198575076562117303771088993134770779764974132668616798629411586242079449599399981918794947796892262458122941500963966710823894390668300127150758243905805552113377176611001838809981180591983052110249602508677577851598739389340090325000651261532271151373670194819915146226127470546700408301856763471902673812412686459342536488226886364607960874090985450511625774455206070216966405982386046474630950718984316443936624105890703511706652940297628459115315256094259957664902180017077964007708792846374108709029844186300698149725743572769774142828073862825352524529477569817711878077319375470220411460361823074974520072101710509328302326524854926326136862040600793897716067967581619632288150334280750683162716846620613995978179212600785154389829143335275172249545906323120031230929699833223462522329084747429979203542579064887130872791463225129222299901968150517913085417576351074568583066720272719173600336002907412263704786699340712718288983320116879827964765180625574459164944709049036485487883748358605567504536633448507099281240746059134207175194825096660074294518954512279428635941631618381122659041625040625590427007571431339992294978359028081274298480898802870381225384927876315839076095561217194687596246547308620531985912836935031618795366186157526709625707123746838893770003278778384731165865014827184460414610051503873237105113396979533206370100144754235836249502543820513706584866140835252954536911004289329014963569073453529269673568708649141012691665323604746529455402583442139760074107078790888645381615785681664305673825574583038032754069389032632374875936728445772747926527184094032430414332843771222820767464642674108161988959384046887308908277747903804159440921223292943277331733258347130246623198345126222647349287260717334839742538019108677427848403023565555137811671606115039256624692897648240591064803163644702703288094270011838820006039014086476936146399572267609111243558733546766897594359520387013188028636192904629081367862829333857784030653164623820627552991551444566529167837677667902261821217137422883926010216084700300369758827766471612146401084281425272231939583138537208649636853512656398415090330723055192107791364794217651035315170614936184960029429500444515846762039115716338497478459692662995878998139636618022343825399122876666913236360465809602434335834616583018969162090555898374249131019047971987933449116224121161515197713946861398516279524218749541495942185749085701137167751945094329229768569897438244632374646965628963797289137747750893608817189644177315285429030111903239859631490697725603211975807104772293768875926403584423670418036833750352584342476487558067490271216704766862592734172744288525674700983297120312606486270916108877914595993707799464032016576235519607978317508063143141650404067521705155377821805869743138869684390266061471307760645605201947618030271449137180082725326261192578505245824854926243051541111524370919901396973590272774386171193242716279932348755831674267616446643354525004086941571211107264952920356382637560436646970670385151197206522994716087899963425262725899523951185331447120307349693713944263022245674384550696252748540277338025245290767495010164121484260478567833029351060116457171775850910953010079643672931677299225925753500181668936315315493256686108227705400234707501976177708690649790906052637589346117594540435725276407692849796901334041821344176260919565900845339732576184292119872163170748495473046372790623420354934381603823379894909994832784787301928292798479269812556652954918416835818600368628275504571526512788714433545356530995645125952028547086285168882548700954319120283894853199118296227295914509518321680346636760877300167354069706301910601331342351652207644911907786903018475396521293158936324401634486943090707891310493897354711325437908859415834125085504346405769241199581816001954293996488272538635634985401025036389117718760296470718262669083047143973164079344894231416746371180781926339980056047141566196091905332269033763849225566137596256927971687111651952959005909803830900486566935573745014940805872539231454722635286704918546344399609161942672839984487978951372078627780073788479425962590908373349896012660285118246229061842184699360573143711726470134418325671606735159743772033289612929270348266164010236832217851674673984216426330154001805911779730013560932876532156396745169531978788282169550188381551983151107820446193846331158333930108321064840925359142500215172454075070539312213823695066689706438949246092843182810634007841160421890571017567697122004041544176168496463842494247511091798723255470034787213183914453838485581451376317848785911290765363223963421812378229429111226894299399282600784404527391362829680355741532114474855425751415466501137184633829775954124437708755980166533356025619506740397743709063108288039309587452265049586452095290305080948073402232618491974364712412350321484645092543191122324035850572421180527410454680941430250644026196923523238064165210060886440909275840944602925544658057999547207626698405217421514486300128063399770174479954087841923452842021450711789546246126037030937825701357018778846255013432976887023007418108262552545313287367193361483141420759960024110113820857104964727674225493959035063371486322818551742870887273164768796540842373946852539170025989700187438751577465687618000606204818469444923005146891398248623265463768222594013106882053718950800950864002214216332769146640845361084247867819434236192967449165216754971572542911182241840665905230310720836385995458722749278402392215308807383645935294412711188143459051261271172067293345801725923733951056424039129457460210782732734883314959306185300106108419185490103898949228544545251022035825768664597503395518151740364049464911148270274507425700357735671140121456813160291558746777821912749135425180289316790600590530324585558401376195239905841256592552293164847886581483591186588563794277070762000219359473673387792005333468333457878150073007124107637603121701398076563059958801437030594120218676475278833723007484314736731647581327604070086604182556418387421711563046693722196530809552963486819491603769688606888664261200405710648984602915500948650653708636960174260446123378416380450249888575916106926883029007809033712324977585913152144719339728095541605259796046050687086211406026054068926352679565673063132201427737322653276851986154928162939075094580714557078244474764997694140280797805835282882623709214763771458678832630498210732643670368370175650772260250003854673310875766675891788228910407111700332512366942248340407991001532385179474794410215818642062886504918668374079825851891788749844458983306150588570779326107454261124423137557429916867370705967354281697683869133092401793590261489094494866432261081718349642566781934880388970903467884302877283105583594856138168654050298475303758061875471439838642641907295510421828930075691691431162173694142086397100175377107112298344376795924448856228484435343169372912956525526728840085096150606530190602569966845525429673767942575000026519386609343641459974067137568238077180767141817444700822128798467509287090178218281356331382617890217268160559425430372335400911454679553787268102233160766072589345234344376100905655580324300318376047774291068248982233719675250992858845682762421444212511417244341344171623338682568861849925851990327584021334533621669031379870265552546519591715829392747309982647552680688364154429258737075902750310486480734032960274418446344880878120382974839958455728603378409402519922178912740178678915983485007875781606829521646807365471763131104386639388580885753872098234859345644860760773239039280050915634223546914904648773496993923436615672085504389090701609395461952753704975948305163882835318035725637335103195187191622954749419937486941775850543930417904102362114393234405908952307105563687306591998517116828235586179948482626031475651373732109078002232971109877059401753803509632649917695698584282836301915789462525345989525992069115439939777139082577480592551300224350160903985836412520345993788808019302812907624858163578952799109503028398032118866995178048551704724236863752001701933981518251654976836749025224511207697959322209670290309421533350547262898203459203568834183573369985479141393546903001624014529960910131362750101790838705818875300654520952208693293503759124917465815687537786757208242217015440571740233153154538141401450560383218578844087332897326816800868056400962156175784806896058553925818057443245753725153398991561648202416868801750614995854576474321563179786907854397420406089133400378004037558505498293541120722466796596185621273616655845586964184582619884326042132472443501190404497474426762931925875533098952720345066277132414257351813689018941504428739441543524683123486462226132048602677179641107190513049183548875817328127924017440360920205216632453768134942105512325434085778970628882661190975009835241169769371642075305078114150903551521095698987557657976225063365351917398954049129103650937355270359262433331795508228231640557663450755507660238479809039372670571672559437086874662839378920480287281590894976005627020215344965307092884255804786965400304496740441604291976739357753387833367451269688671874156363613210329864236544013816781485128896334105804471171365836544898432148465500916484816188249480157545713115881970264565611679907264733535784846484755249763352250491907906847456378463961135383032861130057902598720628262531352643560377720084419565359017749951736863028328888352106972042111290800687738446470976771440541816928737515540139445128554705305482251968151740109149854399225484637918191511342550182364275502698278188202055333992676003755413794734684507748871244367547638101063391422235315005420080755317915575362749289519686576183964511631606494829869325766298344623195769580021444358641516383991851468561665339608420022980821449077673358777712206843791519241622045355790655983373041086636526507804771209893600750821301666410107968363798226455915935487415663311199088437940539656631298648842261676181714083440980557927472679967633091509803075703615301934231522978742753967007153176425676528791613283756244998853126818780670811027283672621903480447196976565300773971220551465207092280910100999984686122744914486084592326967272458292132148678743709207597813329947162431057183727910093629008145771446225078257676302664835474394859461323865053445544400041150830741322859175036087288173727449141841035451900644486994501782045167544883051835196756263636301071387820034413014494003698745094791481281252389668189732570198886690388235443073085275647059898015860302846642132279883484489523974838708611662570937230709054457691422631966305078899251428682873451282764383981221550119124719663467471645913413456237531744984010264287426984048363624201636096532145127836510871018260590294220286848342575416786066342162387062443567467886724852968117491829876500288720403994170573592500489886021612168998331152524721511048184999488870997661367302979606876752395524816060629811213676807133624461210309301631175756224486877402599942113765687596735235926866155350432817529575995122122578483640301099854230367341438481153253728666318002987147976244128477002718097332304732693004573450751398573232664559198045890111990096076097974184477896646085036789977324033017565973577865314628530490107817289422317768918893768124675977506728310408680317485202132476113714518568472417077850125887867459919438476979043175048209153452764700948176759162948695639276951069634841118887291107934852238168355402728792577998889345750102169425316456707806932456796273610338120489421584671863271714252830771063399301701229393153757366972276371815696171346762280053832876196123709960132653459208796984480796144369153835465574849894948332452997881861458224047446623398142671280104927764268927322109427154210747879423599873099818439784744735762144728416626919568314170872578191417525730741744203748214866367703230013500249223828528238003562095026423694225710171890260074930437927319962207990574169442483608736224489894771829504502993171795573143982726989283522051311441460854078973574160438969411858557528423014351862196175440995825084528324220603533309470590080927272047910458316844570560099880133064371303730364971149484394742420125761086731116311995826501173231053665962384021661343063884574665682214686082860169017865457945643772311087000353703340092770095997044871491218978318924683558876225188324203690316150499873279539002856762309598162236296168086885663092588285766432844534416362311964314216940190875689801180606983595514563797986712759280487640108148538557140467403307497671435605857551718058886285848678726694683960107173823214901853865052684980201569716247887158091607481422262654843252498446081415838410956670459015548558619268614111033695367785006257181166899902351586444761049545603721435882629353665646163536490567109483888029004889775034332794702639561617372942755738361436483455072034489611709216244232639771464685286866597897600080024970273670351761381297560168541104365559754890592397759720888421536334732848096317023033027872198799967590117673189735322517578770783120975375948123000554462117425976337360473533118700242182900704258478654553371105479534404154760578878609748997673110377185392936618365090353462033199997158122756450652760997340358950463039825977957802755248062228444976508101427601676834864894938517720235722904619504167505665569027558204797366826875930583571934756202223172350677397835509484671912016692117842897413104482236811030681257506796640571748207612818110193341520000161792993306346993373137273073062516122035383426475647781836256319016018591519229676734985582630263792814963566776024150287362199670903110622432549347228736792806797769792828899981446089088875489946312989069205597282080353430180961736114913531369789210739422581612284871338357618407259584815458778805934337638349469646968531544567764154504356011636975996648005216656019987883126020413313411207019984895600023256663092479538079110746809645566331398302425448243613498003356491546471712991527925113433248359170063102198943459425745772526387850574911899753209121287436232413672167366952795458944794707030257003605400925786852620547858119421235483894546661173189465248513599535958355914699329559875630413716251060632053333281647018551060612741278274365888935972468279987463149167629082298522890763932496653482144405982700829584314545301552932044792176859023662486859798527424676567148195491663375529064663389509233865237631934474098195011304468788109143723829274252905689174951842961555763660671015808336507635211079653242461629529870972811752634507774800736529927796450001770638034366691332045675423717222507361153923388112119338998622057809261117241512292298468918293703590665292041046708520865553492300521476216408970407249128393252017405378403594075374593995833100898265084895273129228364169626138688047560276346876801710551765311654988178759514820356914303537648537650105413706607692336745526545118621224205048569436870911783285674524020324170671327419565805817802208950639381504639198555996823590967467079133170224992170853296412445103188742948313042798488136182068345067932946437726986310638347950129107540295332909461206033056617562079242208991127656354141273587516551987314369327097741491119409206711079499203207881393127591713913281531493559166776150887333465673168708722470616063514589997531060025761807738266635412177181026372147537880321738400168571391022231020389387720991231595671206914223619184612150574867848900101707258740780381183646160032608285710515833981561332121588501127381918240612534666763122037744433801866659141697916343880438474372891776277745743015229218558510144886297923773323776546851910854995812482443039943367580482598941753479044529542493124196386334268034953963131875088691159368189888225761488064578276574461238199968691163985341857508867088472364924826562037566514566135963649438488859659880039672063735320240452976299634041646989912936983790201986860581141347656188693951970500443291471514442096575396212942447933212098169418308680481675302752059144932796113007788018381223852674336545137315862476318309589626203617814534537265430697218389922066261087566239103731968071329840839641940737263920971821942341195860005956029870146743501537706519276114157368944639318179642293189790598748843701762741504497777101800655121068792572145927857701163102451364497015087011410397309553696033102303426593330409388504262658887954835660190240836307425542580989584943904181156399950032703111613055296606415733206182479844150819699560613663510058264103303127830563793715607068515188983824877505430015622323980247339071544324512552211770561662790226211364302767848490511713072493368285043212469782037842990075268073683039573533171163971988892203768792639731819990293971160040399455374281397248107408847317753899822717862094516770305727568175043008240117161055182813330110945446440669784312663145443056137606403190372231971405102654239211353304163993803401311755473693498108476310300291814936279913261917563126804733075278491529125749874351948577483558182599547287808710759917948101372185628149335564611202176046566653952404377155315435062065883473230254706436540710632677257304907910488981991350729652597186327673716074244322373250598071077211753107193005919093865994777907330237787090312553815944997535020460340632010767654267832606805520966796501037812712385087479394695629529948491838466334096580307204784250256531815609777945227881594739345372519393499322586555626911568773991617157777219954535533180170644822196091815132991202587837102949910968907032221258913015046786311910740373774248925327147826951902841697867956599462316157489609472794213822391074993336378749804337400806372997689120074090650712304225366792783200721454830008784216077350571945688977140097192383420109119116434992719177513132881099578724840747711958918919816689894250210862001754661229075884489106569917082785570454286443650080006899154560847542127364418979669233401534722775444289107046480674218477861624309252236845472001522456392793791783690158327673098039144435209726096411089364945633350438996517570514950379139985793023128789812376138454945040904590743719290982673301358804364946103527710141172096009401815918250724620909148816926263551639907740496221807560265503961768128595268878482197279983130204135040183351500963215790279855645424054727747475238884580105911461559299165093178923216051194314667518816617259511326408269572163740791828739485221405252569781960695732661649475770766451811126180630819381207219404160436994055635257366371132374351702596736265739513330599399309980310941131116001374802913509785840467308626246829291030834486665504896724773283106349941099805277427384631284504502853857200713703348160918057993590898193058369693760676195112905194682002357312660427373811460702873191100620930934666727034820092426186302048215659960102608920917508993168321433683547526099363755972354216354137258918553752557856956089210312475349130238754184893518430075444780650893456966743435314040761744440729933151089909544433645727887838553458695225517346687237066301973661448939416741842458096574083612179238277183485583728369864433176173575576932939464657588535023522919126112144221254690506035773470333675619779413093468420087061651852892337631180853514446400246564078429660731877896258481192609541199013761405527145707203001016953570747456010336431561837768470135353555620656228119575959421625137275455500870567209651947564665004705421137124413448411709053126514023386248166248918364476243419876091898889302363265338957697543635179404665169428068526322683221108211508653504784585771321061914001002253733763425200442609874312600962107593304614993330701822303279069054034412483251659290887868610265004836798366473635949282993136789896615042806558410584748484212206440071583609026449289435943801437416588918008604477690869894925639518847738598548185440034451861585930756189585303040332273753523003381352054764953765785048638566198772296929433187890533296578264777940967843363702751543202859904236491330301904920755202617648779484052234009786833381464628305080314230157505886365823354653854307515382810216591107744627488426155918136035306255849296079055284768876235553165275836705349691581096658415958898130693946090396198556480702228530830919760313322021822926657386174617427701025531804793674593911177644242873405859988718658615412109621057785787180353666560625359652149292054194563794932933313041795220313506243146702501202177709846500168766823745662655370905937921729042494480859814342960241849874624757295920800057080630503336757977278548717491880525924261354126269888224555094237885365132560719695735686408824480897862266478917768772537277904278141383678179696338741607996356503922526154507941180383582423408715308584571425684842784241266367514981052041214792984940456646374543168411785388573704652404941486544200732496154992306705942084058250938627725167809454003618176803498127113457562661197049936056053997916020275350335988183623557849205958219747961447016167330772450089085483231108716253222476405439824398629482727636958163840631606029822504613214708092853595736595229492769822162657529796909459216253992297705234807379343758957682623358160906160925247664537372210827687083030607442491441963248698719021318198382953855835711043536765882914148963400369098763567601605778208995107847451874399852431598245925915088855295297613038083046756058998179389373855984531384759288813303983203995042921195023655322416504578216858071028592519644376397177533826626239842920630290466721549310041159659525396644314750893614202890016005300894405403684749540284533933276599092393512666299410280038152182330636526991165118214709007052390858827013991338611491853222699893085357701438326009868840160931794133033665323792989054420087607557771677747214726543957844864673754990574484630715347215337663723207893672531036039224434658867669028915496905772202572631106110076473561168093768687530960315607024946402833690019275162176596792657614048238892516925480715217503663052556912541163084785106062557661448894339859768974842753866127109380389996298825058854651493797446737921797311079336520492339225486861825857110350694441089624782276018129668732654109544973501546646533750788729222753105073334782030609743588511310987101827591337871027874853324915900441126151225397020427720444897188419297767468860332278595607454136963890399192881969538578502111809870073576537149339858680401525071432249545526827050115218122827886463481058489138075676844102949996011554675721270922444111868196856884614934429024031055690953037156881062176538268461674698177019015200573321727337770871826459568894892137740823981904224041940216398310427548537707202686310520136443077252772582879417533969134440974333050906796248620312583741638093084079064255228444613963846984615786463934251974256287873669148341123684615178319891471421021585036136514293123632510750006437760305289917127665628330534609607832174886122965150805422360048428419995478720888763625692537955599973620815806928161519501619654521874221089978538251887246171624362858418088598743345522231449166590299519250220476947936921026291475666760673521368653446709897994628042918191644968711998855999498757133688235256776751488090098215964974794874473100535469095230098135741711435172266244140006121480400389559495085942020900231237590681293482594794539968003159191634344532119439945296226169305583336161423622227596456960758744646566319446332740935599341258535203578954658550192977861065410036225172680712215500260835085486965363796066875916991390648081341114114574003469175439261839071279336109530058424116100839817067112208548977096657768135911175064172046032457063190517265135820579452258307185874019624814517376786043666130881361546954823957741657552298172012349276626288286753422036637971980177230747322013955116957453289306858105201731782376291517052898350993072498447186789319700279760649025734705703885547605192253812869598913776088300521193604020039833656606120907294084265056086423553786995077959740630791976951849373977226852244486892401694241104131189277308940094241941961849754175980400520418604261787751223206699833937580208955083076482240634867869358236370950436434177106610776372580810119486872310350885083099410611915464954334570492663775866751149462944078779319729951687280301677495037224624905320908263115315185479835879930799957928328533535730659720743975784316026814573393711255294643021120028657672230152764704582599074573356762921739552132076098993179202148689067701096762055747622658691474235197766294413643320621316799165382065796889016353571082145134317072595418988712411488472320360907625832475326700643380845564304946623579194176265287477199252787636917778161327465111419193371101640176224397336474349863356229580355842507914491145929207570207107370697627657202898538975154567489640383747400804524569511538992429655250146975261733207460840847517527320914219933876293922781678666878724575989774002127824615956657957835025838860120189826691653267714438281090934556844498709935805831302846601155108981705678476725209757058162859289004106895304381340270656630968364753763833391311897562710018668087842832650553209362379001574478000023622412212655029620923383447075584100499970194252372174506496618869101117083671217562651906838510312606126349538474649140832209513099816749886463072506993338917511322197613344639022804306305936072844800094198663403407657331310132127168090761639185651848721668604531968079308108221347908648430188213138823089130375492085469281496649031733285476142635105081299706683249920610016690366444147746058785184430383989857576698184895415662943059683221287114676069110497456905149298314150806907373744178126560078706583464264639245578247268205360797348716947003023224339139243957810674568300984022038901786736452616800268103224133411164854972543594961067577014595748894279106607639716666292113997094012272597365870702015356618730461564980950600171952232834759068075786712033092215437912573659426011610000675820106660479885399143938010014354300907739924307313787272074974050897246056183650670452111888298199127658398177099182933024604424075986373537123362238016928952435309574188877986810868024394590228775510389247487253264471811023918149968844100502206835350024940946186546377411142418130262744031819654344775611823933744106815726912150213140951923811343665425806051239695107025127979227825111276138569987442862425389743197209172956504360148072421541573752195944971301422600444977301765601822134105421909936787782844522730315700180786574288848582035546139000779014663538188788488482540716244320923064595513850482006738975332030721304721854364346335631713030528656149808447010168638387178913840045315470080848746459194498975956068571285543087298245615577823251815769939341925709048713441189387659310401859588699070557424878293863975286892615418495145968894737578247952391084927293607017943681608387424859593654757826179359412936268589586307187135068001856718855945829139405648327170980352117983040893334467863507193808157701992969789477808725712008575607819317138000428878908783027061458482199613060081631071943131146847608813574085907085014455473085591534007548555042254177147853866840752495394600174564224380656738772118788111449431458706415228437575659777959884843201546203400228243227425439735385377814864232916536061875981849189816755224046547301626978873200442433062526081925320476666036524241845624414026258463373502064695502933415749114453366490306947737806410495343153949739519792995272759723194579410348739869607872655924395785505666632185376355980558307067327568356678329250436536029857140189798995739902599814088289605779671443418846022643797000466004972411265408527791520391877189717733282877761492970617528713003402043291519893743171433609853820455840093679587765987877371487197139858119694897112686588064147139082785367114886658039181155625061515644270433262402434010124679079212252499950909531916789146904511416871209536508811761385426921356391351627506058507299724620333395941357428749551335863099479675696817341169948953952862579512868749991487955923772439235620755500350997059721574682510087479596634469530026790423299207092127981507086993954887901629329454121295823988647616162166467921820998229137993909166295613490518495208652364184884867815337246470845888323338027311349590044419952979938936632956987885889883937527780004761858991155428907287046040309329216274596515213726944438922245045329271705388426858054548082090799629022878472151824837687144394304409651330256384383019160781033394780097972184073668306003697133814042303749442483720024685292453647688675819781357420215177732267474441038903250230662946714284255611525995321423835731043343823471771711266265645020798767179367422241382157479351829788616546324388828334014835450776818514122531791040639994567444177155041217406758113114936706837617615570791629871518938055479989719810595176454545810817754909679571193578605130152483675436261215207268651302951929217136775849661326862530221425512669025134429152857871512410759151514239889375044212989318318594893801706638618587488394968581980017846650488386332027405286733843097998686433747912457776073155219990029170710665423353397681809574242344528695868537319186986523356369440211182363387221067904015682197217299800942526394729053751171940735815453268161999743663638955730678427316574120285858395888416628241671137901150070018615145744974681788114214074351922319847391423556273749838903034523927262563630642060771455678820707135504664279718217311306794521533606249035800989632403934396427951612319812540550295242164321475399011047265771517374481174608985988882171564489750386821113216657458692821086320134772423142879666119194292036266975178307810456212708641558758868970776877253650087299419733846155905983763768897390693247586924700439179602567133387536975488390273807679366153862524872531683303749322044205854298210724662037780239498168429574591848312567153547538934804904508354848843157250743825645640066970684681488362868590648187620740365134325999079495989223872299763525408392151367814686893970162214957079072991792001333346481724488010852579976427972365363309710650636574802836942332274627760920435712190048325108382932933993779921346273188133516999520659832110980877366589006763681576250613326321389768014357571720175104377263540281641100604387355860190599165815260696743125822043321744631478955234902608657432067042959478492135912718636405500558993885972326107496530269480021290757313613371391404220862586964104749332359511395445805911301353143450725099640015663488918647576576769020875550877550437435537661818443117124873834975882209406138594818276312857712302068207674311896360110076247207768092387471394392741263532621888608842280252062247812127011819471695154070858628220469982441171901130958501654074883255383693509340801142521260012257495490663944884833529494920611034508101088335412812420111290389314355928609330045620425121922490305297425109965236136206176138904329888866883382916667537890303702812895718657379022836276683552636363274773737507322665492251857560912493475642865234725329505041320696434477078407390834649609475862056401010186975783498266981002911412220204238316839191353555254417663841725945037456809020161134746378275623515553450343118651750958593262041846819554004535956527099651478251562867267036890218612654485230634044094847436167817442201578739867255411615061989037312791716405567258657412099886800309364199904106642242934616002010606532458811952279979485788584856876064161199986380721858560440724107856348847634532326653691810012484202791447580250209281968133120842903827739229828177681291298217390364131795040622894593099415612406144339531673862403798591115552094361442488219060478141829088481654632592215307608889796827658611792652831581316826211917575092583386964571228622701168219466784299769031530854681642015316305360586065616683867783661256515977759246043087061697351532570016846680995926206897368474783791014179198375367986636992648793027758115748556128993165179551843524749562078425948800199789337856156239790615070251872612644533575890572280581078474180032737870233093120654852973187257804035659001161079971905036002028853513255163621762204239580752699900905235534232104906488911499301776400568651066320451919128338583450557542945598942086030513865226425038132287543860610503652049934687216020511774390359207632669796298975721674342748255075287618907696879176456811161803186914481475197448075901074170407645699885231939314315304138386267753314113022361447611940198161932768358372031538993707365640127485095606198324206971633252697438667149832535785464134116607011174960554284436317678640992105634605206109713257424321767452832050801709892540325531100781237697326568792164013311245368378325457327655687868091485914813011754623093551093913513476451275193224875120160901125595940416752475575803800885234350147470270659979731128719976680819931371843729536637187613088154552185072931149388610805657577553001730390439570488465365631334479596493533663183021608428156016713770576415550685279158027557152231311674154768812168361471485233755246791234553434295827947075583803208139519268424702138379904280661576109844521584936447801542513398110002041092580612086214393563543582288602351969374158666362901083104619914103681905555132343841537017400202570590362992524712884351338684197596321773404523129739781357917914912138069249210033284315837532513991245682309020008572985159228768654730918191556304691414545769150961496009155962452957367118670623447273771764968517208017546274323426029017012684436632564321038013082799077696831104144148200472010523071107839722452314736571881521395456432558438879909695885714530524090790101971926235305557944935720770959065936267403164945029167506152702179955003646380386931890717201993356380967416628716648709250916796287947452313681722903795051944795521015984897122231801772274970372329912025867853381244786772605947227505446556410957305940513985122760548005924107647438787354563312621991310728167071551218858525185558934095238916025042462318672845473182202841651137209611495122528664708574517973398481674475925528449178914150875388782291254878033864438203452970460037648857412994475773736008924952378389697480180442122736395633316127918884743024880315619186744617537181152604820359740140340527490781189411140690436083021079198983328580084092506213038231391185974963106005084156813549217525721220775224375993010556478296851637696545925003182128341245181728184072190173545762170519316306950269771090458650479229780802842527137895661337288911209891802069665017546260670808281518304524687828949021588309009918701109358229660660404626488674886832611894950771005162009938521932380445354469165905500273269723874419425476476018505408382552718223389504009646821512121281512675374704570609725548107141906329742781332459262683977946563920789101304262256781095967996842449956832828057633841603926587177092831765735223622201190841425578234587131579902084934851518179391242564489788724749910129026773527122180588225904777423038479473987172398818608978006665728013478175861797936767840911797620520376096049932044453816161037857730657351396264351639584889334144244778278868601318865891402853808471529323391054430373995462182772750099329171942295220172014932369157106549397169675739472523482127089141742449928729011804740780293148904411900114313883554988126104341431024437484563041491605716307792591036067253283003005239876798432368885266649044781874853349066484035828158067013335568167213618124430428174360569186078473710216180510832828492727614236664970388487848742380459354764550072303427692120208675918491349214710355675531199590958243096126969360608342841508138472881617773430150311172720390143962382075575483197234833701561461477808037615308269929272109256158932365266726027413257758766236848888452870744739244753366207825004139082641026507493915919761363750405828992352451849709047808496154420557188899088488297040238015983843264357026580121957013420720756621844720746092871414707848676870840227939680333771712768385866059701000688648639084581810563117972611513881101852288629406829853197142871747165005937681463613994240644369577943450340245599090706906854334942652703149422105758247527792723015888957701388331222612293168943925092291769887946070819788152811816987850847577605013166218771780077393236396313146568650936119998743782249081830242564731293531725169470143024794177769494489941517192497998597378114597196650293466826202847363903157391065562745448737469340006330680337820849737136094416512503210016961812181725267111418353255879888694761283243422540372006496905562583898539171263738271493742390566401351963391164763980992040192939347091941716690062600997088065433763540017453628919777444279279801552001033436472066942015644169667766630241677949794067571312439762288932130396639732027348994039082864380181773433737987966096391455108619373462018123322939355796507773306704844808093670874067842360480391363225715026502611688289596677913485357602393078498998817416913207067169797235729149025648868127901251543763423091915667981906991417205134620902170420623997752044989095225896298651250674737591173427110540012649335548944670709792325000993041177989436450255690724389689355034409484417965069738410657984648144029014309565974878550319576311429497431255287975126750803004788097300586448128968569578301638889543800005909150717765924831072923556846675456225810061352592697129104750016840992388114172170570136833507837367192944786249380225404115805256542282752702412001441443211471256050899481950357256051870842274957249406781251862718885045970348973295268649272617012864192355464326139581303223238718177414263846236967950434580787450979057681141517336872965706068423696992630215698259380388709538194230722638635880582878197391358471187977220179785385037163726780737766219532212437800516044406734368386053137930167594977599339160099208299949784398340541312789111021646430889832774992753327783633245127499269347106343955726379710256060265634189130006507102032519450960102956952489613334225823895869405836225445183547517922560319774406449104274758011753844751014821977999683649993351924685399315005628759479663092773365616633223280993123904898967479832245802969377998203458616428914370248070709600479737351725457663059913515907252227507475592102392925473056229156212891934785688197828416184994131255013154828306838577631981016440207040673468763015703876197011614467360278193139191968266940804210092124754615085958144489030868149252417481781845616746087332159581523994560243170704107378649771165565591134445863995332469561273780891603056072717693538491079683198596640705142273051855645943690520425362777038196962848346565216980217238957032445819432232465191115521875703286778354693800796700608496622409412541782419149249904352908441078230199444407471941313828472380191132956904102747255677625835433188192749912531537067340775788520127950933934247916453979703171059394143827703708475520778308030763098710373897128164239269458596125633372724597720622735714846030810224455650650144307516669057990495634908589831215597751371050405843628522035671836403635028271406721945539979094917987203761644006760229210025102148928843281451833957303406054129434436833504735768845142019529264800433419738846627955196696306897438133490973466852912007382559926401644447566280555775638399697390585134973378832229795102843664044742646230822753020564738507047481960959520516144827501181520948577567011649201271691474127690974419509426452203354036850144206241819595477855753770819583585407562543185102280754040127036517853129553699701930500818224743689479598834125836014515420394266341046964957637255276070537559001752613418648815714943273577635137817177501641668654233230762373527742968766222450674163905577389226097148377062661200222985995936068089038553834856131144174004044401596665162936075283870038562686496976427101338496991903985173531276662953687834778677465412404261302262142702999357793397184720306362900056455987780545194246439613589929490622697218653023978617375338311018495700539969548936290198150410352022870107948305323682296998594520549277071427919299462407423921338109337378499315118501020947675785246095910942111130269922713742782251849243743991225000763759289202037060094706857731615489541082534735726756147653834764349512543057727977165285433900618815286065766105677693319622134769522001836700383065038844122431696543525971549918864074983780412635611769379636881063202127989495065872035504666647955541104734164241239074231796973394502006498980672031666731167953597662109402299594188113678516805958494789037517751898481302496699042546989232691247672879000130707544342395343060549310714588350459659454653940758484005438756480685080415100213651519857284546336214954733288792595297503519845090543970649975069880362838484674527607172839830750639304704343863616425533528833912957198540474839464762899083798796657554317041424978808036473717143408167949347735554611121423138125866941306802856962271281795420220571504967936631570048370012945306458617107259693464471182047019247661914057266546824409673716732123786543599252693879944643217029238878846633761658760237664614558735602200521228262529051667953004816755267753789072102413511871165251837388529346013984097900313426992597631368047573324394020221596088565198475553939032257047069912279952748692249510567131652165482141191682761821632235308209849498882993875614849591308564975844570395367652087945389572938680277946825989500767732714787189459234919942142782797456782724409189505182271038252490369235678597974391316743641516092498453289204357909711243199196512977323010001539974611323381482617922632033333413979465030601902777339615458910781812819810018604189455285365003102002024559934178839810434550818687404466134442340144764888182655405127540134586412382045921900635363298875535985211902832066240726872399400459589515321864614322303164781683993814757149137799082472181980600240950381916587496093750461871595246218744575923761804862279362660847012262466302163921939131630366636808391807814579488544310245593487679300628997410983787074326653520441888729748363810968369228369969446415710694216945425584382297142706890114660756560119420687361511609062821544336118890413027376663947960427707613410117769408007706169781212081142851864724616348697191703261702182025574405989169216108418831162350321073737655440617105923250993540878461792870394311935261969410512193046194124910185100800834467243359704455253788949686386039370275503360147691860715955736972796464679254683572962491760928895996149428686276294167308367709956911030430016150472869024731592251700128756537227406099324755813172364328985918551227256467424515737965059393504643243998756131193018058077063903490426004267529282493673424780274678473336294489226699824287206238904212170597233561053584117393097164142592460002103912175018293946136059693910866505525514130666964444001386749852957216388144876284706289991401965331641151209206294252720541041495126939256750866049385872590374741717491262831736273869443701778807236236146622593432833812276539120119672315334230521912808245463511827861482003837078550955294713747361668780094137081791261706426678162791387045962936848233157956743752500458911270244047717644689817419061224773290877637182014574180763935068257460890735340790723736041281746529324372578588628730796301697168001119380163169096068397452942351521202045271295197361067126033397113884146088808833384348377980425422495807064801607268380982942726883957368457802007027234240266430481704260031684399620718590518942883110648971134315614596505585157916747087707639139504787303319387784103406580660606426207916857641405520637190662385467784773719140376716739964171640210034080790451931703465648125270691568098553895148569715966602039016682833829165897022792295917337856445871723596443109765223623891780523172040125072449561474832008084015244592617057864208545441379937044785179926919026416638576958426900361237373614399558859713467998094155381525759246650567587173852772076968211497921285977042126036717948056254375495024361063389054948524252736184332984183858205169903934874194481224104274226182685476948392639158461863740140152693269650207578348800107960461254119563868401664946234779527927714592942256815945418309987887646931897417659864818974097021143617663070368202632162593832187502982492782564912483763079913608905129521889090015905698934646875495738422649763101892891664617857561833850935624335557515582571352844045642018325099281086685823741873149275427845565130868573000824582234541403680575853991486571942938120730936490528073584865425558753008475650710357659525124185183839146362973529509080998320643305082670370999157868042831091506709848940778321533537749107391246462841027947532164696828429965844036167082366822318819269086738390008138968477871646159176568244101163870310351871542347593785189044047152381524217902080321851713419500796507713781944651805820069704453165917996794154464764406979863587513421766470286777081783099252137233687669217242071868342058749740160849542843967603814683335164549990425747398635513261815941958908765101603755941796678459631373378586798845369343175974908652829926839137918674399939549770598450870344639697181038317808555686381160803877220238794003692555739978029589997640488420118601751582535104777128209717561435563085662925780708228777272937624002971002925456425277270379751923502111427968542595419585071372865662496686136708531301976565758923608355966951271434445449463737285154494116836323752167735909528024131622086728631727776173946192474594577444095578659110126263215265308053377073212893543737096093847131604226217181176580484894377664572774953289487345157708333468880439590640070841668027132840921394829715794089814633439918299601159173101267290558804276078203968829257951842498156943683784572215111216293564287466371309387986417702488085260286754532280300200592704435948364091982264012319103582287333739165497969061997217762265390996708069210803973906203420065143434258840897553657978866223556122265537271019407234588004797067472036671262961103259215977410575958962528417896754239674666375682821741210926970654294632010819800588873466044056590662187305963961137615090307915751318008047543508163606298029047106993528996241810073034556910615543320771249150374279584552599412883397852961595974772135552992852322282799690385547058153784010078085688294543233408980837778256799252886437695455529101464837377906439996378539141461754274092074019117857256055548840184684215712755923937934543500754304807657399029554669672764370375223093759389850179351768600189163057261873261352532398183367793712465597053171615404503034420903673983264567299152327233527525344450278091036687581196363810291606034916441037270885639880094584607525808130510558641999972142613270578654646401897461853462892383121667334470690823321690812732654492518583689844811075806289895054306233315276185581570775650465481076851014746223945389088661891200859965011295048060404746923614903872365056690157505227244709280328613478892807161879743732063555669379913270638641418624512256958467318654729490107031070053455915031571812052693769606439128280892976898041846805826521165368085970739836821064904561919869992685365614047961648006806806970690394787719436767325037233386682667878845298009552770290562915202499811824319385295727304642430581720209853198945691883525983700245444610975776686635009300024419579313447685235768494006502710220464711338040986979933753290219488654048919368713203315556943829380222575219498976703837983239846478817831639649904644060617757433328985794512128306442270178943324061371989624399914009647790856488227494522474608025909778266684374449023060648500069421859784574372396646312260116200598015652883484226762390578390874040450907677317925331859510635203373008690698173545439841510479251671643996854476406247109475859474576362470399628903346318688441548333057990616660648319255884268095228556597732089942869566183236655519578241876415916473751594227082798610262442629885806793766062100011575295403026800788171759228970836779781393196551928430446612203089532097553872902587053350702867117530084289263686388822262334602570708571641460270895156323487301308306664773626674176800358537248784843030667878932852311702380785907099340576108107458565297541254708102954790855920567176521413012600612138727320042166839220004112083253274023594218223568780112480008660606109985257204361927464583942700266649699888917576182399483989688377946552678905827612580391817003207830568412426890203966100219781071160427661205676459909797177625516424788340757303071183633460531655691814940679870069305261126963980051076407574576511391267594097893928950000518043391054809629388673658991106015407646170041435619857787769008584026789539894225649924906989372836961366823339763029287345843470762477401515296238234134011227347853257663850093720601412955859895645581464212570228803309956730712159711934907963988087987239369159206072395256446880078284609582517530019907750109525947712669992351664728434000088663538367347792056032189556038554987844473720364803656349542605264659685069257296127928863661580063361898159268208662451603163772119030226654180203772272213236635247906239355334420421905053065131380529884736508365313618458419630620933593033611255444914628684116391976364324654059803729021777150137010308927053946896996494965555306312375641185861394398305483702038526904911847671022801553950229377406423832740393605903003222418934805293719363376118672548995295779062023912047904580895981982547099770031228720185769358299462971802362853042111724754644126672106438736966243863432780184334804720482101029347777825206414334843964266505269486139663570160049754836298645654854879892584285312624087217722813056045282338485080086242023277996147620288756590430375003024761266690653610808802233130116687506856280443453650276081939732373793749275073581633637939706823598459060247417257961405873722386214555760667323764969239750725553878202160578383933014338401009500126888630715604846978268158659943116724493026323459169726780369496435314441589202582589629453396033550979274958275291785666391026188246598297793386492201163567286747725038893645806724030761912534045504180187320547771320998139824888749834313601843729895842137674898727650848777469338898662215729729492659991333747772104653732463053116043372629909437537677347821946098260926547726235424863049042247880091707962442493849138279432059713788770387032790253838403523931991794206743037044165185192194653478645117524861294277664966628080313931356236201616500355832895719150753809700701379158767244822255065196989481978250794737022764590127101740776034365853302973666728616240439239356931467457637362359410526715792875246600608747239315856600845971129157683164863332463752464717716996138884265323971196993010631180166420500520297544319683097393674257723229363837402433581929695099209501836828089706159127808795856065211960520879018660281697390487690407879500444628482548803537767188569832800339805266360980772123779047039523889829776416056963224916591234143563917133203592815163101255977017831582203322103095936518888570939747270881507653043269105826093459033370612245741553804575564666210790911954369607727310016944372292127686494210582052765155480053867380482883343095459696554830336581415876299495388199743908551042473168285356357170696234703413882026783377286700662693640005364914542376086963005567653158327684224095951705437281731806316953612030856956663396671845006001382773264774184201781012809319171736497879117263762515506587240397426681534467058530185572472882601872608476717100951153367014615320296123064717295903760147174820084247386541623663390287758008536689100761158893971042036601618977034590984838116139182310281644877484891435347328228085901753511423711075357083406603576845333952484313709308045393576864345080067522387308381180909646148812638489120070546268089458104118557193700017150405335845117329483545169864475382903932742422188618756109756115573392238580574875276131816057062465807086506581384066523771968200757919611281856017883169938073622933174329647931900589447074816398248848774877303698065901752729096023692975402207056092051426691684635819590718601900868767153745483787366464208974452741937430584799836469033801194121378113841133868565668411461785629583629229086322487169240324706605515847034557321195178230649123773316484835968927335088755794936634613270883720323452062470768153179464588586683959821392935641154127754449433964575813839239357620390866654402702650887907723603111386478136652252769838704667457903029321567705918680482126870585693656094392719251280369565895161092136460740424072807802104801931712154830001902272769999178755880944219177030035308500893953171379698526774974369417611194219129907510833819173972399715743118334391428540069810797765121641945877194043798268322588115986799993319851234720026988300628246394465396634395139680904676943581212115550200163272234135716187304188410318854856165046514676121791429630850908509816531847245930867604143518772167052453334518847549333727881999591188693428280872432977374028133404224207068565291019097974840238088049106949276657825290925122255956122092049512054913652998080762203515296781578185059690332430961913248745513370507525163762723549473081046634966962876855471331845410010879285252513457023420650821822516798675226229207615339529711287571152513709928949073460278168265211322795686337192272898245533430644776662672350109453477047008221530235727104270933751238722806251260572578754483473831845405042193962823354927884828281691964739018411529395479064714562628457568124573834969619478512383687460780209351544603384935570388770232287662346847458197919127305750629100247615569570441932419299726425320285094934549639084796224672713269045196327087083887869680154389759046103897163786688565235540149614303459530878700029264224350651726681569292217532991246158136635706245003234408547750043795732175004302064167618032210581879596414208094376286856861023604255475079696008916573536680004845187071142259072152919505930202244791058020779564330251020653148593928382897959572772647273939394625581224365037554626742770065212749920744592481432235359134217053488002171202186452685235240904395548760948186806725807585325828536153984606293602674936226835816452771356438543210107204798841560172111071259367105592949934138762598565009086875620042680782053750512729730013896122592291787719423687760076580470824770221044591922444577820949629100274337080851149787429055081123850983627841962279265117786495291736255171598323179159524718767184393459162657341313828019983314967537128918617052850939959756690353203814481336107244626328010232829202938453444132016785995812012496796829856252547500122261577670470637981775060542958407763037948353953293974048235565096586749646659350355278417418996668086175950733657844518229428892535913756100113507301437887412479462476114328297675627734583751312653373990335656536994456471652254631360181368184415678960730845160934874726174161652757669817494835591396941181854456458661251142210773167551896113900234391774141372347270208493282068527435506493361495590762308710864864691398606118555149615526165334413367727034500159293478771073798103543635643809313546197803061816030660765011443927660103398126602720165707395606849235897951254437791686941934479898281589752539806852445573164084430008671194271029693176057088311905601133745995963255431195345974328269497725210070849289752766854097436722810983229569387694376897172402925880916235737101474156825882442788450229795472320596105890858102250557528227761017205060287684641184369642969479109711647657351832942442742504239828067454771753273650889243526383989385764228546610640355519306217756742893233293600378683580440963231848109833671855415966880675851677566980744974546714029221889505612281277035016438378054704248484201666605612578162107959223530845340037695616326337286560484953051704265256220565472904426434475732709525243590606776020968055054550812186080536881453770940855676413676418913485362362205858584248849628942181750924219895201836839771269388626279866744872945112056680814993582825559322603011894514099523391050401248641053441634204105211735661374076919025450699703912535374389476117797588304415814400322911468871427086985502026634212585952131962479696445303178512254747526689056447075853494767593246724331548635003313941928651889333449050459538550526966164526571685852337322739966720647914333702454891794615248482567144241561556581061092641170322135741265245680449094898483705080884723105261520769834960932392844230814530980706209435554227318745680363250925793981540482515267900684155786170088717173334879619831188216288471630711024569305542400777359965853547167996782843911878342325476946674523463864024300466196354198981197804679639123512173849865448039973724227260124867792240737020269757439382030230157617289353346685978336130270055776830044760773306496482547259229918296897402126350643303956599422856434830015412380933445550804974606868584606847524435423306456040914969930436196855775964374985045833508005430731553158011950992097553469721200970771735423488062058915479121719415262703201466664359288088917810694740945781030313617419520176949269166894876494291634766610199147781726043356380522807390312120834163829928380146661455841398210114257934394171022803182134662637250918170146531185570651762838601018454068728663040145027723012920073923123941084412229723828811424208313095849010266013818318176354141395150821458989471757513630471537481933499286167357634748615559233754341980126452042436359118514663665072590207325739161186494576875593788477554922206639224401491308290246249471145979991656035769270275479724933202658337065510796303924076969407973134773537040440968516642612340751690681845176012988985161605477491350588071619362010500036873211415156923442557738374658453423078192048642262999136598228922818695448397705180972000092518066756184022242112137535467303410122301245027332204667350829965892658975433842019655460154175681929239085735859176742695878674447494934601962548487256996959757623226362619876762468086368550541976938058004913707395035304202561445899375086141168579875608200517073752666181962858264800664821483583271419820802480044700185149996679671147576669482170554827505905098630566743112905113838192702728422817477539202298882883006145663564830691591026913796803010371468224905958267166605531445843157960462856765195752858335527635063133385202655746464366467443201952405907223400034754798722855328077188226418672784792164422571436253940657034199472084982802587595933694261541234761055606852891053731370370409837951480948818921963037671961529350362014157401824550835269331603223862460078490644252727629905614537331670997914762384035288523294849606110246023152436118428567480707777115342764092325056365167995042302443833980401804717699676036141023827399162800581427224591102630075330353085116435084927780860842515905736024415014412427258699543973071396392223630883123108101838836294487378559303258653153173381517577444002187678282233784820990767717454001388803842588188519355605485743265843941186351475865917615072661198794425185182805462296621983586993072617519772311135706631397812129937769146491534861778345507476965054563074985508552601337398930149472109020985442598900580525918512297510687479852926121141111270897426494786672539936551541749084498343725210455421297765329926707903027486166799919828857066824810204108007890988270833804420806415540434233647282081015381995706232806661300738796944893174136524173992942241529486333031493750526425842280034206334877317052227711994257106684262845067347814926160726337001227655369674709707077662196262396326557144604209083187605955737609318980108611322027151795907518703409975478464854228087876547848026478372009359793412331340202650751283131305376414552085890853527105460101351412391095567619004579487251928897681275274550219085286110259421700954651765325494727004807151419295775443491216222792477828919940481246920784578814009682866950730411723577984804380816177961617780134187072102117890139438421117198266970574439152651316217287294808033323758543813311138894126830728700333306670416912605639763534882374404286632138234727611373581816384730125912965290584698983555579182155215019971600049403535923318325410107517665354700193215258623203909411472037415774183279966440812585277152246779683504058535650871329018325965997142820591985419555010631498039428776412748857367588509285049487398359871010684181259667501065279858358054626449282101220106925274406670083688233154625662627233622153978272535342740698265195178400647505135698947943725228826437761172064467399940722439896951610747724262942883694653601957612113444168044254339840960437025804690126370191897935164917008295416723500006452652781752934883017813450594028293037026297798503515511898577002740910640458934772823201188666104114415182779519153500591143365071838750942328329276537033636201938727795386010471515508038740114252908169975045939462701363967771074003059997192256870906320165455948139536137133826837814773453155075691425625599131035396311169735321003620531684176063118982646345820545783679176821255422558886623270127494128071713066429146758661702205849381251222794643219186230022797201319687564894946024297691202429112451112835931289770182875286196320993632300140491430905320050398659771094864905297930647514771748993415626731467889482140061171689638273395200642543270945967392190387524734345604529263825541163159127418949206197552473988052901916713542004921542281781419684803743394046561396199424204283047105477014445688888196661980958707270461588430814319714188863195700221778598612769560165556416724408866685683633389337516423963351744477254359739353381582021556501087521721886919327254274844241372475393497763614902784591611177538639265864602881310805080197472391675019243612108369151957064800962419399214326266926224084504101208984114102312860355545483318854909750383724778744435237707282207803027942024039247472958172004591597270223261075745347862222140296658616673080346361437169046686784858797697912900826777383997898665195496397591824505491732830932318631860641772407732355663512384513351098431177068760944117672063374447562627134088479406201021317763723842474796842010075100194818467316518341140123612462208617389330573371197251947787646583616990946156332368873017465028302100513221184021071275785098824221281123226350595854237385459173370570183315057316142677792562456212757383083491427131732796901748369942429663005483697408117611354081096953738705498093721071782486243670445575295472882376602392923188927253646895365231071771710475666984810203261103144773638460623507960891514503291780913168512716793026901312157427109784822334390130067846857677304070051909261087648891527147939648418188560304299931941514456462813035872804889429971894249398310268474662624829743663579495232717460830491412117862821161608102361688756510784500746930906507185360299044059492937051972043674494620890069459604764111999859166771217906401982976080089128724193856842699918944390534812895451760371954619539464022986359860639432903822215252536488462410986108932011357837650535710298211758471997960354193246991031436201738691197475451003009487628357133679058186333220386622486270494203741216983481532559125313468360653805462866740086843126597797169021263495479138092349716443398989959650544658646059104096011352278209099130386384983368055448997088604370709731185604954380721708764491583201761191894102300856083845604160483079468209545053307184014943510800941273772202604843776703621075976775035993747312418680312447556388847858590865165413116939464860170418684194902687340930203183356073295235501644432171084820481890086405612242917090058738207721081390802399174304788561268506515394415047141681111234879923519683448821578404909260023055594960318386796052729844479796540305367920953293780914526170414444568085071930998628983388010192138807886546265881627230519673052401916412555733946277410419954196362763592123554730658336957038496929287456150651301065551671704437533970419955671464535540694312069819427309061371054066603708387127557751916692591986383968518959303005261820426528941112113318783835212935364374798500894649600794078076309370003563094069536087909030120897397624422964754098507697166846484936452434234029527519078430996305463641432336399337640139546668366012227996261572085811724523862597303023642405232218648071614247359153873555270258699693896021930987206597080872783725047685596636951807984786337093338218934941383151860926175873110118342879511351327121465230246082549838384381556066207959354225388557337608132155549686734762951975265712814551020298999291786851763419798975418534561341591410199140728332033591543924002832908150189125969593434689735989462236708191573018835651975589402876073654600288224815410498640185388363100810025485475474394554303391370502380877768959417785361080458570363153959052945641370084910475253886984194032155999611459108037733360740656771943537427434715589030858153488725704290579635341948640052822609683453433319226769975595576100267572172018705088270977928758115205270125506642260725181051858665400154759659085629642887703764505186955986334795230930218193457579570998654880952080264398468537462312914232398397109749131599525683727402242472186548410807147173081557407681830758414605714203810561714173912152956697762556207332221581094668032645135123309207675050295776497351491180119190154015798716993844790300164232796913754962573443294332151861037135323455531132744204786229906224112044002833424953674226397525113651008887324990711069195959666916153031862491148507268374961105471130013566863834867802938377587820657087132161983586449987868011768061271717390848147394287991518903494788277859588324531836207088208067027569960354839134375640954176768462247289195306696112442260817315571445048778458318354808247786465118378459558092115277346226634511526144176458693859905544173355008377080734440941156076960973162064382508496639553443838352321467395163624801713914016750219886805317243504371977469035552357081361859622217438853900787010270204265820677033399827309715608765263068814089961919604833242170948707835255068153154051899847950370299660020803960222475871747124637263064077218186176395010367532592970967557556059686969295808198667307884174573060682522642837072798037579250380198386267905974234491230859919037740060378202776685047832225729438800378633984888863416831944312854356643727352898713901181823219852407319846860678295903176900024381016113877424049158891024300137415282757404788374309426451216864543386404385696633047303927250400531547694624620902110823482009272672023698354306673620520574062123790972753463229256859387836571784356152286580522261857052889491637017806000750358468091162617422648327741059978020630615350860659654354449328027275178115279529701069624059635421898797757187692497484976996828330166146576803448722478932309055731311640050252076038091473035052341452594717949712766390944194493732971492828190096456790043812136197331515070376552733978464317408143457284128980403346868979103555736031912995989743233504518784883840942598893165654280881299655826643531693449965605860254233901971068733655918218849719703819355149104956504481125074734579623235628188335778651732490217671044935868928547291711838999227935605582840232181676078537401887764565783625069513013014840806416098680445541251283012777384059699114446733981950750574444122421777002960606308893610840174870993608036452267250878310468837800708253072092468976885387835275369657210019078522363243086435203482884623170627285142944151461659402465627626578489263091811940747520857269248940916830319899316319182611633463994602641610573480140057371516878782696137593184941625978368495073500937471303606284940799014300435438187561233874421584883212426351955764394288518120569855425320500928112358185716637352756947906799959458653078390972356698829564230592654657816391257090765449339951124381055396016088729324237348913847694474044122893218984847777892563775689335020118858525473507842026257188533094567698410695304530185913871214923459848734361309439626471133837403816755157657380677138312303573907689398076884802277118029791953417967967859719527259468900883678114228856464439961828140034413699442321742648252409406984514874461458441826367944679986692916633426383360828213543891412223146518006854249431748465318532679668684695443952317104359683280963052324128854296410563098898732081184565448623687394445097197109655216883783931114993074142036186317057822424906101850491205428673396017598376495309259716845364129008200514292318725092274641359645253668191637171545752771096028031725814513263456786910682957810221147547507585676234564691785761246740641540221174604781767292270976485658670039988490308200054198526602672806811107602465709374838725331595255714974220107476922833892828737303316822347424154035446929226035363079553194802902205770917829071338645925337703306146147093338287923010115623147891616952946877619687717187059021668965426390391212441569310588305414520086943121372842415624936796499262520330631660558331168914000491163853656935527161196388313543761339486407645464425329483221673225670715360177633858797433157465170737522038795375901532940748448241272051481571318380295580482066093574910211459485967321829888650194601794704118295716663500805259873146028129621723662498268349689609293508810608841879372900248107782440194293040054522326535549525778579595456416445657811962469897357120204591803376560865330003909826293717987268410164430375303224348383187983199332550009912529681485641476188121305411318248667652170108578256373656308130507856200564803771081630786455562063722646039041267713221190597873755027514667682028727125156301528658810771341106515577782482488957665700707285478371607329904945960261994152332500638700974672150811793331267536467901245406258110184680747546334333002960380961131643986088739145871404992979977901390848651587992208621191882520432588827639262613559351436625080151449187807288945416796503840488289011434852067909333161250669451767027638442511738310228361339666842254316797676426375729184784240722401179515811525720077442060577288981062312968529466580307593665968802273387309917529875073103866017559135844615963769350626244484754246070627479070543195303534232292451962342273056779022936191331644684645196224984824214348997618519860890144462931295563852000878046476819423296908984703671991153518922523166153844923936485418530358006314965483766445402114866129733542141735607102304827579323732723017500537275899341112720880116533195406150831747261844208682571549247841347461171913499085997034555043091915925918710428456532037796920019336182441055241593775980756081756541882553682251182504913178405464260517235370432711110912466030470740688850649523664082448915729019246856814813555635135144332595545420362070020943057128877828188889686481192298128284217770565578251890765020928594823880020887598783647910115328282542691019949025350309461661073406772619197763927511568649321798009441534098636544375804524074711908541975302415258470951359723555879452251075795022289893543077516896580980462392525311983072622457880211921075258328598068415238293903173868418837655733553943740221560940332612620562146946528597591252358498032684775418714326124217160547865034868124255091585485349222220693230789629631730942891446078916329812024478529699077006923230401815258419951412497222247688660654295290116037428516820476936926883174830210820671769619975694865804585705338451769530547404998094519856137743533693416274322600576189769384073598564969763339688595218650009287422841412202618525449203185574451475827483122640169293863559634460447158496195349072574831046091451611910317372768873104693501748464465501011129208849486080829202477862542447512119898935983714822536981676191729883296234064598598510720968682016236358578841176443841360440113346282379337945585762375714019481131501245141200786120141348689964419407086868733128645959046651344919315331940372901644096764708700607114952391014958912208759138223687557824992937434536708591704761826733847285017565208916755271797243134590583649693668257322213577870409128563820900060994886042007551860422503653345656392245550985160844684190154745954009805653376145720777052753396495710335322322508054350719600248660602464419852326231233019122118568773165126207481288365408426054025907626127595360109647577585200459636210511645833232543950886773319186102360226673146594587412081444519162151293167674405577372331525758105094595654163496504205791690665827936160986964127953033079720848476694477113046397393452794114292475381050623920034358703759651819611016336759094777381232438321270723054588597676078436892474103195801789287457117808649082539058094353600903590413955617317335813024110638919730367495862554648627200221503478314869388641269502832570742486692495667785379905135068650828987460188381369310146664855391718209650519639326853688554466171038945594893242793957504488535534509774708224431194744652515799402930489426544535859338918430875829185430637591736163751088911717826360063694282111737016610942558336301857846519791382068039566170969746608936227038914162445035629480331444394176754744149390061710807635872299471078905144382832142132755354783334821490404608226158170501265363340487820823201248599148197225684304722972008523971348374538935741396515904843365717435303871351162478898808674036682004703005404089402377265941689915085654919272985351745012519014168764849705068867905874643742794510176652125858463810792674985461236044752303034874014513639861896044571284567841573945699493232330512096614218205614887211415248606403180061755522272904665081619984228423647429297703635899652868319128189002227016474895418623601802881571920984614910861451724247409784307942021241027523707036183393880176383359203242126557975851560579461000969553996322386982092537142673781532895059554133228024649499136554827418787811103177497720958874704503519094484827670253435851834706708155392792876869539081727671286374104281421392937845417569922326275938879752927591135233813997577282239297318533489453967487138185786583882230402440954666421064327381070857087410648295682300674804363815296296260822319963218522534381164556725436335976613205365407558798502528392481440747236038381281943676624236679808475015187959499314399491081397720683941901117747492291304146255601568182011892303592350687818154643352984971567258190156764628882257947934287505754818926594775696174233411755516899873317117923240606266700882192934377018681919230455641486461352210609798566610810255039684538890919095876931178778275691857370616476276726389436522168826481056053807156264040179058402487218590146065626832150615775326103190499687209452477487014954408747213690031558795591541727778722432629869868536797651631040304464378239306949835393760221658027998562612522836319296994119692193577090793374191675086948373458405629185959036361532074257704167720631377572917059721367967833594127538181894344537404069489138540870079043173661710917149117090885910832745413629290392809317868481003088519876233644918422577623249990540461539565623837144520516650853531800113728613023847157003348164737269717149115684414209084423448034871631947828929506843058730596524583949630549592576266375422840955661448863987311695986919051424208829616118859660026602279657270181846589445159063403987838976940539776945776481024473348710418148190549974510885641827912132499774812606573798701285399214059856496750131968880199632551501624175465903538657405552344501607947979831641200178879793552221485630583682442919498568189886690747253516056586985630201723106804205185695589391275821915545383213812619965454204937799546242348648986282888757099028404581148554594174852443061548667417729163302756749416043466580333359260965931706275731141622177056569264213624135846777060083492102936743187532075968315991253188049920873905255225032919720354311400729874840955598300575114660626984005180190399557869010885120351708279115796709928906704852413319262907648371312096574048859502571115863426852966000381610193139799752021067697424025613003749366353596216291687524813125626699349086262970495812319238994016874790720414377989992058312807875866676975559088897495517287059230125404610285758470032557989836522614823469913348495086412776317079933835003229931586505763605792818959385199986265142929752036551584152115166448252009208617340970755667536706764770298261634636498097476162768601418312779854375416415142207623778453118505600391837958993111086530792323760938283799933285956395249667028175023767819054160804340438742616557299732675457528194079629552632171854331030144100363463948311289099327694881856771646551113541623838308659633391202970933911142517555882842410158904939766898169183752467725781598793060128550752730190315255066690816528491757185057375285377555083645582929502456399449544480693779319109131408646688132762644144554630874248235287645460552702215648068549482752542539782081639898586095897537835217409040899210210954765417058045013743919830838355358265977222233527809931281566400159817353096001625451055461570946673631580932336623332832691836347484149660039887986284487945224593971308915286452929615560029200308845819613184994068450876887450488639795788410480555714668682526770939997879879195185138139461102956211413428357895197489564352643262924782651105936726745680311265176549508577860713882244938309468127699341939658745202911692715299056771752340532919558918030130477984012109348824471349539402710002778252577439566149674080302101991084067318825065309866521142703863026446012521836791280597306856972028397350059407658838658848309382201270493945495978171387567936072546535641987301682401228690682570579308299916730519914934212867373604541952141747398954825835363995722092036542394832142701666387023909049826568630176805053196318851008645002837680381473368171471632481669290642662109050399971164341532154147049648704902207022604994733315488291792069423811732371775493636301579684728781196657954516010528699343852142808876282515311789160539561149638362126807338765729695887898651494640919236719373945880671998437071572441866524703741436298776322377511324979961437665238366836692656915606762916799693306943513320318575118912264831321913860314709866780703244330557233798282323391581826867169839595595738000691071580803581329415170912619893569846975655097605490279933962124920881354054091716705579410438064923927499884904422996766722447331928561380991177654128945625767411540848436185864289149116863931921150739142610425599862009594201477794929965117583702567218732850669110141289726913625302244007162852889857142484226165555640616546581007327475613262467156289390468651853844026619259858604441786338457765205167892898170988736103249666362953214785296130281864553454068492862513788080065219135966138208881921184398540784233718622084333081661529509736007778872905952246330110440480394817263759101968394156499712488728215886142303886859635079352704729935431900710215930886591305462537057685405571699944127789432898007078133666021939176681404866280022393724092211845554022473948709968300538755343696513050309464804758833072358198029779463124012370605756598738722337458695203299728766051258700332606676517146694528338066974655481729767043251691614804290221046195233359554306827807250342174220926825422584291698356351733160330089971216081037044563728423152467737486248228994878945655880417411353693148978737929176076957737418071783580898665731495201080808527181398685296240797930456516254811947422996377813534539866444054207156690635258185432515178890563221787477624281807769115149089547324236793279187192970491975355811053805669959713648839726552618305633405636493300723296658728232093756377281463097558922533753609503434077264076169785169748607372842574044034742951517500829036226078227328800287615890750140801534795235802805056020929772978077098088197398905980534337943082797717410786913575430543284821486933345451304494426795824722675953594744946443950053030588362506252560147579678948225424797941370994908224154423584413135768123352289635157522246524432251288388160147625520548418006373636051933775022171285813881218275457818931425628844196091078603123897138619023690487896281966423477060164838879534509029777298314892585709180260939801423756281713915537377632407028586183481007507550677684496666863568131900615817974363540689510188973118248981375457426763132100571081322621809871178597246106115836963726126297670894000613271556719436100315600555900322090080789036036390803700697497824246133903586140456369837941583672338488528277552691695003083733164433592482657189246194102764203738023802055150157540211386233175056644963062665426138450371798417495701740372580624070550375383531431691040589860867304904944707998370611750672440699427744551555436922107682384348789934256370331048515728078168254701555584160957182751171605198384806144827717775630574268909250219490499711344806814333414952259377772943995038277430704839309765577097576308190963663901373531198064160930667939734688899837010965908183294296757243856906529196779389597409623849981973438640537257517452892921641674068760847999764837692445038978394829865046116058967528539744006583267494464344796357937459152140632880289513948959749001248289128554008732034839638939016252145683404207885609253415431214851297045879452272469670587672351319296215308413810917035554727063089988981075696345741189030024800887572275066698578019899588232524086030273724543425769572606226863500984817072622022929981939244800830868931826174459346627081401436044410259542632580155940829118966021002177135202763459560064848352743966572840927229883650938644535004552702440446985864863602207012156349163007928166347889009915174867307612820528138322472821621016568447136319167704192425750158083374243093266031655990125599562868019369264004375774558592177966088242264940634375630221264744129177150348578204349788517301558115812467890358500428290597835605860981778302617941405284542168539237175143730078027398834716657677093502789445061435334470239817373374375671277427755777392645388826939805673183308903428638307014294000009624941251183831175941561210523165317983384554510055060019532851335082811706078242238545907945076269001202769815443572397454566418424802897416778668897554792408345615087225071377427833105772034209443269011421773715657633437745291814575357642936301020620440156091829828892370441991007029806559519556763625929860021417724623452996546665545748729156654270489693432286126501884846562415055464409776536521177127399697014980890831972773453142595290038745675118491797897630968029015202769205654917078365799313283999352758284487038457999432140744339613458469426213531628912032996930561752889335005219638142521197539691183043041271978847954968815554500093700929112184149973707413240257470832812862293985253111055142775175219667462341174047447596829532511850301157263769764710716339244513374614437083502552327191746355785664688371302115597391917093725943619412185355572757588271304938720720127942844233102896479479820368381080578693995567763140527747186284587234276157984870364596431026251611061542000189188368878055860732652318184275529212402644210259145834032763357295219696908884619742559648996246795885929246420144611772312662128330023743549710487091167286827213201980437756557177840034413126652234232827841918976677912159464893009976859416973833643285998056960556978115280006819458746273981497699708442978637342394906155427394650413600995744509206037358825897076544774683748026488732865925550487458115727127185759427112629137352402344721654214627002715427736698651753070872022898486153206573873182090944395699345077782024472975610985456033068152610254462778766919185696407726447881972438606294249418781924239558996837269010059245983660920798875439189450920474033039304584867096940966000011573684595354178430315972575221445931329419835066010088314438462983771302016690637860243177665200053086075065375616904144482868600583981860100726479127488603455613858761531928337217708396867690858686406139384994612323201340162791246433797813552470318187177413090029004723827750102777871747821419974595881400873506687793809095556288616890423779774734570211120107278338698120224995694541166475376268353218094750555677098439007524468621417423839261455131553699798761182234996426781101634493715360846716466667989398068034801863743038658705446875692154937826713536010478912705533764400221751515085699759056062745266080075101577466422819145118873613824750047492734712034802683301441795833378406027641359477335544073174596674616370173630416063050580526109623937879518483479389907189799585453585848517841932159334394190625618484993940460976391943388433845505199745332399926054395708683120577852207348879257805976483510112370147120365752215018410765137280808987924909956760893712128414345695167874397867081856422326466326225033385400701024217331020932902230114486240342402872748128322662919262683729260345965470839053706324483659601492563174305298792550102468792936231867129636413310591421424941985338915627682105842032523912084469408208173873867076858871777273949945949345404114261747604670055501529424514806342315563860985526267477720134162205003302932927940981034850180296946704500797112708908673323986941377368655855021993889341821304537325267546238633929517958662527219824355613662530310171155340228547510509736103155913066060021028380298804594972384472502206780458818186388064538480961843890366542601368551667805310481723127643575304999773049937758175315798009012514335446227291061792715553535222744689587151231647968716158126108253866811107578254395189383649777438086173647750610859406088267955720836719888546928988173248519391220608354583686432494783686517424706687172836776783438707340452620954274643356985110045666203764720183484795209855364519656377039603113842815381374000609116566041981500117059602269863341656811149032588798511288439114999388496076776676963582543331984483163414725662617389094480128211177302707277533974275400196575803276264716861577078057921285390511132219401676865557510986547253037765769460680588060655149135751564615253638065231526026011814836029245321799102020524361136360814211586444377373329105135210913008142015025676605798196424348869248002423658347237285122290794300382101625137134213096881230253176563139528930382405614566878183613864724376242894711195421247559060315355514706918757374470869739538944527190345408516076115228136088084532573570930992124910910422641948704410523751216819779176674175743280409301190569680009780655954344670503300881146252720777119295413931915267941571351144211063520367964632232287820978801935124467513789642589742352259413196043748975420541761356638177326655179483400964741750874936217935718475751704340787746789210751568145942395543747168590242825317672510364222954920700191765532908795885393323569999387345846729547025460616088569927859051005377919508002720236924270400036621354682706124853147434215978811367555261985158781572269488128255285361690203173455471790827709586914728392504388000574304539734646274338968913699218587382695016519907951995780330072915869243716225277879693579121438846393785927433059343364463785911428166700530339723449700485882689914742152840351000841036305160171229009198516573959214148139150748033003852608689885143599645097356152601159254865974921767520614075387096232600054630203420850543129754558384687446809974704976251329671765290842567978187831239918820419560882534334443103396960405939427580452795900035142672997209580705546469005351196523717938214749670229062103651496314814633720269088995302523270135488084108144120155262021970467841602245402458422900320528026762885739582866461211944267793067139396939781225344308241568201123936725767233092511276660170661454488389216392093506803015357000921958188523953045347054123161980202067781353152372418087169929794007508555644899231072820132752127286781280517936590825471954732064438348100763317301579403563255042361107953239982836425203451669035834885272588720884826107995610272776485710227694563044461918873437444450765140134829565602499619131740754548288706106046282013019441343427857151204074002706801403312700004794314256129563816733580692750870084909183965306857104588956655903210696620109556064479144411435147306501145057075144097677169286483945368008584275842842748516039955674210285189101787806327817767867013201202633850226643291729764123900226896552607840048972160573159295913756899124641291036472125256588839824215508343318801127335927275843419570483980656745696585119156474165371452524973965731955621697957926838722311933076406717994901908385603781397231261700023973098381886171804666615877145157940518814701257890682023060734573801355917431762923857710703197585332749013623170308502826217935276902317325577280788249893071219162437356208413038088869519689492967203608590627340928195451204258879608533460533472773064790336201523645542166612143532620467986210951377660396645083373804898832280555335126907335774191683176483566059559143414611887243648381402973428597363381288365612226642284692683796828689627960087671995597669890730199996323035494122616960702769334060614419240240261319998164112749235228961070936518175781613893079606063000228535474936175550058859540225214118354011967569339550208388543947486579086313871673702536439726213062925609360861157777020845930288844460755591806250847113268865983203668003851963451530638385854992672520319307845493159363614580813444589088150178067376402087854645462799397292231082498612159627937583162998388020686849323717522346835148320515653704489473030824220433806612188369092740902300952661789160154223316861977702566511192195566309832872796840390471137274790330461971951354295535567749050587319942119489417799942685078633326163660634390170886722539795677325425221133373409026523221527576275251476530346091557572928268376435648434300155694319906116132497314458804855485632429969247967380499859651828641461899292870493034258448792930000477419422911178997075581715841022837878752426317074904684619831311132432419270341073430630500211206640015620222924843526593851123873497728614134871600396732729894284164228000137960172265492574108256634555012346565012175366973692382184551467613049060142561912693104626255924646304936291227544619505002243325368725072576731730190443033311655680854954257313742538405645413449035979444096396103722413474436556440537241730250249097360594158534615597128844571830574932719042004372772403061845637385545038469474130022606654253619833888643659314118744350513403824000573363963627882685761862356454213059486207328463924153799764461277590818178617975559354135666866353928711409185670448914879326171212732098294629775500801069953659085150418583016668754870734983429138719549750544085270109272057179400606486001662695242378035259992504611793686139712489206220698620569414842679586183637226614517545301478413638173544006469342286710025033417734519502893382187760167503638753911745644384699716171761970460925085883053204401033886344177891178649232177607370139622469813554629376496992599024270286586489119241428790110705129112522986346023228795238974592525943547679137919983516759004529559607096618292042970692986511320287537673235850147441619520199601336450652754774508677528786847047631181138110169847923193219487483181471869828376277033241005782947919678321517874999311243606723165817431244041742985974280868405202616240130862325766710983212214670272046665042722827476813891992189141100691427731032463421844880947520870958909177892681019456455506625895417260162896732498061865963971773570156678415696281300361852317710255267395484446876729520766086537020896555934998484300223662139705510512466160388416639389550105907979539311017870642688394753101219346480848746597565763304740255122170415770510151153558727755016380366183185468740691885111553227367979078661105410780218989807595317502322080493200995702964840296507774362153265749119634800790302532070604382810961770540480658386713367848380397119459437266692999418734326496809598652999248115953143699903806089211993078236377059602146951487928712497644925593219763727066984697729942712468569085281368083948901260921842700834058562372893501970418727160549611411304486036769190020142012073089804766926253785573242102625061967056409492709824066918940375655915043524771460354381009513761196270860574909051445202648484566129711631121309256202509533106544997019600807021514139704180238922685190784840594719332294197764228275242434718157280293157394259339460557119673584031462542928927918538395596177948851172002814906481383180897654336888877470397247074500216633827960727133459718530078561819639797110537169662776221188335656089644689803975851986903512876814251317416282400771379149105014502590298799615432356181420896548905191320963941082511777034923349842373800616147106431478740311680512847562212277328510020255230826435242999881974985190032359504962351291367359578748083870102860417058646274779720146837723887786876736808027076169351843147303754867469671461424076873701565469657217958669887719767130858181611269784328997931232458607244429885927141387081342920540079049813693752565821557829174967408273465741445672812025448411052863689977455356934909113082634919861954927777808836266753318241452103691559229397624038985713027035320377506887049328450269190983332910789508049269753875714862282124031691696152921339400384398911787545063844738785043790688179849813646684746022432260890700089662892617534973307249579132435531927314418949356387962305101770415627112274033414680451323404584319226103795248012756748982857938692019892899992267923252584109316653532917588612529163138227835554292812019219014534856334839502235886348247638004679824142738766158092288239167269983197235957018130690118845080587564672748808568002147605371913458565908156949959503731153112141656469234469613583628761624228179705388951042701679745568675113709710974299744694762372527093148183379314656983604824639231683262036820093455794851629430553618044542319885056544850973401095022626511660694699977708191565816807521375141094499500384952305759417199035746428142324515036911763273097764191904802727160874563366291287753415607446478213885828321735822459667871397287075025279256368597568231262961400576349417339510052825529209762147937592395379991912932378072470112246275373887466395422638741770526877508241174358874558019353861375987528565591097758015039279363694148375603040082117225047295650601317585373975393225046335661745415331399551114886445179403162174952853547228731712291230204346122496765265892366956820760922768477477672289239871767160693416567360745781702469716922106353325660536000724897657514315960029949391184936435051217420297172958555958628773673292866335685838853809116956202558252572833040300798183347767286660583601513133530106766007351948753037553692169070228856281773187302027212422305157308431453829591494993393921769203534812829938988244997568195170388815432905285728487966558087741751857413874622137370518148691845553020726055435735986393373308694759905023163174579338945951637361556521921922310862368373457342607697262454228926328277853869198784493776593432670469520295016093581070649413002529240287807981216021629042601966717175406597313594460963500713895116280231963407887892417393843026838373940510696908283238280913001592466162526289103927186495853231699549031066821937499029510413245866117332770212411256740431368142544001811387934916089858916435439928788782107604492507175475368581503679286478527764895157498589871500607103295068518958884704927356410135881058588384852490609742612063341374934477519444167208253011613649629307146249515931410636603622351475912601619344204996569239761490755998291476595560599108797288816164784086584226364030244696604109650898938630354365944089455616425143256277770824985474569627491412997717308169422629499344571429809495333407448488730986472901230440587910602311466754152829390628714995096533328673877227922801933246500804954129381534363434814378192707103358863818299135255868279789542057918125334475513662212926485908081405526865686589576714261693982614214468435995073772090154097622827586251581090432341367817383697901587648033347669078555674513574036169632659754515193937489411028155948981673381551371587074003474888404431203961496390651828889140868089924076385606941537384328521108590450221953558968327838406656162684971408539607251173155473753666477717613393160297509920839217349908518287767172215460142449786910250107162074523332537149224804001364144443334974165101545648253452518641307339541880399078976018483289688242198565539726809549136032331714482597350088548698253402306601940744542111071028063450040339044372697105456327203737105996633027980414739339073349244087321662534831930102162836365997427722481390946235691786106211540153958384196298172360018119409735844945743290608407232119347093729030925734381656786010088396683575421525534999554127970358878819478671162193827069461309795888548608668033957962085006886424398691902853652432292280759819389236853518912284640190724354037325903351710420778047371836979287998559684986266821620542017944890102458380476642494041640507433742390541670149482017780131737184671080915555003813126440550576045581644815257091520750679367738490989117327738265603532252968569506163393813260191307772183782199762736141478818210111520096064265136468934886465525459629474010846923672717303725033529628823635274424659473227965279447860628830108850231175439779479708474546967640667089847010117294791233963851167558426547043936856999215070375269694237136388978973933376767784080412998396644496121082447778476300548523734987397603735794568509844516731029904000897121570095537488640279222072755669866718847240241077974119939336273221891766617461579340315618416206592297770931670147198842830846431807789691489504418728459133078563498828280232201559564727110211683436541334049970919182928908644397777569011556832190683390297845480886589308818574050900170907434228122192039177895021119217217812380589516431211593704684939442265554913619647060398849132740911787813701980617679312507850297266371070559805159812899604083894700774341328889184242019516873299072001177276112021564135391733661891701834656745404609027386713165328299853117258786414498545658768768632834932606064063193216568361769262350575353034936527911403168148670161213266408379104650801725709786473829657587961359177437902949813883428469306049902150176589272957668081429014386006331958340718629105888603149098817009077825923261048838793949539406782271720487089492305756010198645902024365330320978173929119926275342979631551324657719175582229045650934074700166297150910714775234381804819522711155592904010544575300606239023576988810326626067717994880823012545774235756232224029914922059001111773881176688204118851437324098887656865278900813911882175814181610540981650927908691953410382712480099603826602330457509425116210977173500472934369750101881545462468825089919255154773184867169336622020447998938719338611302383953862727328741857084501175734058265686909537401025459444983464269611474324283040624145750908198842254251868761370606314241966365675646015441678609762203002859280779511538114074336913338586724518863865504001355247303093310311581966840868532500001060215181506078396094387459464868819262054353272705581146599034790699714310846165430611836773639926358112430153730656841539662425097410646953985612826651556935953502996532843733183750565945739944440771221124729724587316717444357259924224431897446266915923534283036486100649125937199775820787213221742634292418591536804470634787492483562726086852725177774029965563724243663777355198322161854266164961601316422967433647931309079413818198834565085465542767596129523510780708061146600366454451357682048131061069972039284080676514007105907909397346036173679607234977731606706285875287853844683952744955945959787801845415922529221601655991320730848672948153297528212994151218708180736511769647169410341629517499610900733117824442231630424660262667136703961130774860919155557691744430945172067929412126951842398191532775236924407702583517111709991824624540470446207443376969318341694944467266513895552987174693501280522094562492510325610581146750367464414472271011805233695934141862348147499550929769820214258294294728586192659211139124617086452427836908606578159189248264143432866238183247031071482654845146964674547424260411740577869948166104875175369931922238104116661198531171953378889581113291032818884671467486274502299883933702497034395742419202341120303707942492708502265980703956503248304973712067031646314617539997697867187092893475315137180084942835124715223240731654608797914858515115443506746676224827691262766061599128454328739370876326770225844932929804831028364148445432191991303796350515849055809189252688707869197262898865267993027212702163846917419190730682432311671915797073282932244462054534295600655496876194406416581223154477666329411746697850162640819310374923021317540280738548085647160732849081484521670500328433016081803530023470447989008127470634251673836646448563612233254421122686821774956457684340639637808676873060208046150903854924195465018008623264958698580112755640631736617839666105372894529003376907333643549121794733819375283026201789321643438138427816511147098606128582224317819850617171348321370401868321093101568430920761328824154446202889464783108147962253251673154310626861057231206235826056427533133206231053668064136204802669504125742907844961831277635959233363350265477887596966088433511990917041327454633276364944955531347552628124635387786540796344684698200901426337280837698480427842958298320389572390034323156184213681697855895266734115246954924500792991668574097618793161219834647928935692053404789959741744679415518867680774946163167505972261056051315463128179377584413199571092626446777976105477679385558165174312288418254311973938911131801815450984002976366197667155371225443193554487801605644938202520363756451427910075688249424923935882535801946189755273666077778533838376407469112146967611358944195939188694548380222767231563259501569965952125847143641358624852888384608514448991113791289258635980037465077697920363672247765521633811470895545890530122640091957966351403539080066572982653194547743756256230396606271755099333656571629607275252116958664548730038562773566475524599006079763627655190777800583817040153787782680249567619386725462957378306026030465066751075958314799619998214349225164139164431770109132492971868137090234835799278415745228196501170811337311086437083913506254222438497922092036127354672303724830928276295525679818376709296716318471434441103588663175280903919929744586296027994953456328344347703809267186859954140763054664435875593597280059950787625104697600894394967787088145843893565053080548629838562405973022731989123694148576308504473184428925350448461786800803111670443088427992180765637275926504784826559376639086719266757940153672760854867517271463656542399588246834472404459951136891360008749141128090387005772391521987718643695771554565688108818294343119062206002590264077168218869787032141312336824888252294218172851963791668635849525287278793362914910261788830570503551539882182746985941894958262105679914741438173647466303813196253867959615458097614582961625347592713788763537568928846471088116321116244445335445959051299855016674666896866130612609553932303130226412977403602493386306446930119703481147340759435199843378821363047176991372799949417006617672111283009846104995475440648975165441858304720930059551966833268707191722234516700313235026278593702481356550338062971371909126174085595696223406510475143956206708290316694242801094865451082933253895958774394159779623072371981829528520990047849234156779624434171064106291737655817211162623828511409170532248639548474137762830279579995291026568510466125449388841047211321569820822489962231386514405670899216721804833226082833336166907158133635952066018363995958979101711717605190142074501099245786530133717775830197579491519992636403721748644040083146873170230165304295437624966292728698729722561289498876326884614550930889716920336460544341113836656343011551505591564244897977094544544305317887441003145466050260446876676525881671846959892096037181926715834218106921477998688463768207649910600086562648163649040239333218758337452390192203302331605644464080443373450346046783294170291145822805091205105669330146731928070888606489240049250456083014097100062030843458388647790411373744565599006282855738660712754804187728810668877494736730959514846566268765222913807636802681316982836844565017791415102282191362319748966179429750060643255166876694211054586804738908844600272814025482238619436463186058158727236956929919069057250504428654077491068626701138314551225254872970599162365637905298085927718842739150851583668611671062802409344737840132253206522022208827654894355352092094911379439788776733640084257869159374405861812581931843013933527892489479455416609255348425737272919553136227261724380523907037324891287927679569539920773715402088713461373132864197312978963748732309568355219695586496946657803311384528285288650583008149438568045685359426068816559168968135994355900294287508945708053245762900193379898547619871040180261078682936667409275776633036188660717728505393497676771184148152421260770411174906906484111106826217253337699986043596099923927308563219644543832773826951673118173502678739971530638552562515590682192632481540699199756226686291784438658736525149750057386158377509551291122969960776491101115346731701384718536574285745677797826854427319688696857858310881258427966371330818467649878266074057043486424373074030786968178176859847861336220410826798386933347906503502386081874817224419966796238692224208438119899676297096103066243188716973734270565761046926896587899925909790238315580147443178301057173707344729295459371324630741722639536797656118365277401977298482377203668492090118607474641041818273001317654535838246656893606994982954833039707285449304628108068925139523193174595744452689433320641025086017121093373315190287938636456414286665497492075154739516864878436672425822770190528604648178967491211904889380845872232238330567731580570513911185227698615561637804489364756952486279985185344627964123708165566495023571302325392239841375563214837982535000733435298611269280064950695897040071063870611254898084649864069821063336606918365932898638345347201762534270205674356071104139956190866192136018243427789410375836995455954470920467001413950813625886278269239837696534904196132909424826789805122652847691300372063425435301570238783322540648846769304335260688419996522232103498564331824977796299669172469942188021042070613577347180139794884176353527944850490838061909748758741544240632331540180136464094181024359943521328641821372798786544176225679154451449704424458754577891179529161518903974642954474337714206607608879637174053021042604009971972279410311039222503379089464159072633086200990206123703225170848322368339766768053503722229702100326452784999467819680405452598457563020845360286971259563659166502040559229419704969034392159733026830443064787666376149464924156545108483133297856537787494964278176647489818995781147067607039632933289578179053652537648566226932653739763308206767800321166834856877980190221509294952426356106912025657839014818302506951052270903215110924411034272345669782574914512526200526902562947747775405137734894927769403946697206220301528706093117404891156400225813256892866120038578168955711656614337135213745753963068944003139518280563504282558711498422093084072365210535921143595697870030584700957600663754206394708419543537160959421165361394865598424110812665111059486107004489244844414039411961839082661483372384173243584073269850430489633861529344232615783400146786410547348178023913187437730462663700402172796521387961433755000766681725873939233397997786869397823629241166748670444430497033464797259868432706472988004227830626531954596566315200861119306751611721221807262514001484366370930872432401698150255846527157928979253595007379370360247912349267254031035684163298151033701786075328261170119076890791317050283733112763653647783124479725639924569255700184556615348344458943210184815472612036828486182204240346190145905850625136328704492827384695104209236397538994365750582692905582937766320201622286299993217887432535107102505765317296762782337827069146658245948215905886450578628368893930802494608918688922076965896253027696098046601439651894616019357652580620248578918242209576374045777026424825621244976483600235548414006705225512844027279740024593258707271664398152428978821029417073807308160174314698727062915547548918430736608372113353168159466507277608405469347235610393267605998244489228879851703766086578497300154224475602898250955386923471493979018853023188812382518181276751561538096520774067184260246237055575395043835242890298223380421537571835215969230558682210809352262803254604995839554304650742558448866733998230276268137925876990415590558424013732529800165863433105360613059005750045828231618822583277321747318206592906873453112838118758948884199489965060143362925138884874122159584270253143800134747015100200896824272431066769455904672505659312496314937126867725357705885991502557961380235895446999407831967048112567502409125410310760201510452180071931304531866338281132662233297892735526714299777834822384737892440296811210742885398252348083882235262606912255642774470730411212705471225902883438553245490729869731502168207735380804208858066200278469531072492444304756415410942983589594030023382999280501849003375681234575464721820486513422396964972222578116555418222531615392319440844993127769743430248136028337928668757121582011155264882867621662019707097157415696356635877408099977803217341390127673510128182399747619113428810028184699747112866787508569344579882199043775427862603244737983607807546571157907319918916019478820199921618877585711787534031594659951801932795827532003328524614729057447011192828223924658165860428484616701648044623709843927201652791910239210778870422875406573540446638547364708519173973116492557336553269410629117256050740282691560848942059859084444331207793510026769394448187543492894597117460323651575820915913631149735797357820781860086521705337116674812901546479978734553409723368229899260698255968792683466895931697577051363830059964449395598144926787340134364571455934723521601949626646499941271457304684595150964261939888298350582839989760877114427235294071445206758722505141042828128094478611308555956810809736113104375494984880785657946927129866243665334637131017036937435210440161083371229814126175648811718726509686080056577459899544631607355576970141565780263154190610850058328420559613513943049603922478620195203554637715265595678081269238293853496387281437093119681347747488201145550849687257753860189307933391809680677421561958180055458396508618564241275763926254061152919133905938301217646320932220820218792812149129142091873695464162913311604677009485480393496639415969473354296471436089357109867474485241302941443169618901952836602030370959711674885519928658317844031305588837756831730447417771557591042789314638373513221894290490244446344587224803074762775326643168981918452778126099629619076832377723085520295233058308319609400983200409471504195822729114421994278360387523667631355459717499942133672462039191137451233207386421401924484059018177904356155560309063206408317688004813954071997080073357634697097576070230693905085133330904873423637210012925195678038215049298703387226031209195333073753362167807761104526488843506466319168860708267843048653369713868170561944141225049278700562025109583483738275423065464609664382815950299854544403940936617662310931488028405137684928047824354225291380004039989867786004325378799706167315507507603883170367946869349481976725892731887058564523423026554371221657191756115641248406038242007212227467403841294247197494333309227798572083710139402203471219712184052753084031348784790646065271209053805100309071946320785651295987719668435594177145425718801455680667087648035794475278819865469248407756143990010837540788500580459840576220621812409564006284875431085142175881850450331018408770008932921726563351874239100261755827557428375060275852443946423921740116741933309665263370579037636295007929134607875249885235439361322618798523638969978002718503496921196463239652213413243049801962055054504051753702611556806406361810330374070712322043671139128050335104415463284181977542427925745198658061009659965946833156429941256051882757874851606959475570075424851186323350250462477779705866120568659950738593470580556316724282568307568381189428449193189655044528280322757479858098640925310150077496241790023642499430802559501355618349363195240833067477179426146155859938469356622800704890263853429441275673441396509393512633015036499996283885119210248679679622389604263238322214256558641901022615074918967142404725177491877797674273726732099972767590585781670498501353834640529767473911800435448347306028472145923832268350912389184314463473288731181314252837614977327461411170883849034002582001683769056207394415103095511724118749787505741774683904605046267484395381188997351467742064999604706664123898943414050330683032690491603225502049767078243605036524172346805440561693675912755310008805657371374511477194702580027100886622394475952004048710841158660698235447611387457305234876479207083493416221564376764851648989958175605611530573992386442842151271173419922005080312609947841856147117876269713973800917362874943532798892069600182243740361040208806621219188299683118001674480867067821429760601165454751596380309984148193973955798779083628802662442157735269748478550211362915835909102387754862332958825802153842767439833653046318094642018110192727044122537441513511771063796901021688109342228075850472792229440334747538608086729312295276906632256792565431692896361483395844426993753948450922382957389175537254426313602458729681768485829006351255269916509621137949341563605145880215895193440647904937612098691612181459883955030825893079999961747307021646857325598955151753527512035599418752815268227614759676938604578594441643950787500038591599103239229116180877947030501550843417230772605047872092456603686511640014368098823858404294659929505541841648353479152373904937200149862315923673247359752430693496658492351055352996361187608752973250626979894327701485016075675755431219806496183129456301389368726869089191832410796271400878557442037253851016077892871552995220573177831445185842065655794937483930091792584466142811331913895208764604466346231571685291484813156998274010866197821146343705102320323849367018446758090241003243928598532744602146315536056581760411451124130819892546378123456716100795924351151208173294573378421585976380316530897203772279381660120306906937649549279279406267325062424029115779643340297048165658097761397574460713575837935568167031665924319768968159061589580443064102545253917658959871690401927765293647624818777911821756485836600403928129375038923984553220229409860586102111126775022722410049683152756601122421715662563470676801962209839363165888118921837078245295672632557960673082600675087537009386602975172444577941230659516314794440943025333739943568681515842366710672158578453795632565692465063564446926687955950948710566275100379000505977247614985346405367157687621464030553470125224370818337612287967012394096665701576545063229508224337832750710566867033134099830851972248396280383076444336936902136448062566314859915659487986116575112805664721831675008595799155542089226278332505899108751477926806785072449189130200275746750379941139140876474813735086560085926340444435818364622580885338028485535213214359393656917232993111114924326295292178250672844292185776747502368473250837094650334865319366782531567067604049942962881479504412639083163564927770002233849160803623001497694960120806178842786798442740622513378743474588505973880055091134947139326060776963569068883547519183975403258459746501920269442037758475687758653963668454363676424571342771338768867397448776077182766629388222785127396862467380423573609085307476071961995662926060926511755734502228314449895466961662254072407198131985969192404553023665409449785796233904504616213634071206741276907314321624491348772535482754353281898413903160150425234624428545118509667555943598009100092139349020938482428836503326334639386044410721034028817571983696185847158739954465776307638943517612719226767581370536643173423203992026391994182994174492354517937549453339311953096006739092647771891508727315685223449426867606281217785920015391366605022587657886543157959952073767094981333868672584041967402475936048012558018802847561408461078633631410353221883628668055203298895855136539182146166762531725398972760208070339997604554572792020016560471595116387432347831225408090860337738037591186987805589910373902429615872885249795220670331167895509403078538429648623410377916146649316870342231763014040893798368982184307762534338405471652382682322418707805065098022649083049931565116329978657603679746487853888911813079995966377287373825603690011108111496148243540002486409081188990420154049083966770856692122710696110146718341071755193895500111092790848675226711122061916415488366116398157094727748954802765847128304672165108017829455181387180832184072157266086040214097001000206429767766054088028159117837489404533911953711784522009532621816555841286755349345502100662484238424271262863712790682673755712875456171111366936968136541671340776427404218136235243933393664444617176750294921106112936267686896633511883020887559189574034601123173879034919557882899056367312567769973982228226688306782716267275572819152536379654163878159886690637631732947823976498400795805613384910418623935120525956923937511588638732127314596068499519503171204741970956409120962156860349525260871726676122474230757012534083806049240677767814559078116486942398109458036719379920365989074232524601209015671122451491486875578574746136404658090392207623123338119695186138979414089013511583397301611301192323383150819975338661680515751389604909991093910471427450326815700463027748624531147436398351127033826850941210407547029047372086944606992868016002113311725353234226347121160013739262264262542783317774489816989590874827884275486816338574306143873822350369885841851599122676335148967623428384358459079373997301608332067587040251614441812817945118049752618328038437297589754105794105022963982666978362097451533672162370549750907615536714345042420941710240186793616545496473013958769796863333653067177427601353206940222524734012038955000468755733531524789736939594856314024388803578797891119194630438680836121556275884727061955906816916625421506815396447822034618349320368517487736160657255468196163058949283638410747076325702051566922158179658309017086484265620354396666098340219408260011626913475201719408288492848630113798342651953310368719525561159776163867097198800943284498492282100463365003648043563707729841600004249200652026065014573031214611315780985397338996471370054954828406628437003486013011878538811630564034907934049873551497687976998668713659861318861044258787694278792729100197327476901987375868150432170477729139780794722798470010234229801129279951770387897406718376791643646957976883129798158831777584560295970330968135250801329338851894822886015921987678941277038315464711884968875730269799388833355370186153554270405953333028380196916941714637654730250839154153108195722255949968469695993426627357518682594751382823476678399215167397324958677726770598094385099298394421156425834814838281179473578150463272366373286766957671750730940260609726464317311754397323796855832884624279615274697594933885897376552585381195409153437060164003255709463586303179411261731019701934227195359506193175911223786357195020510931510424583507934584494718496902872158306918414302444602431570822909426207344992139496232470552329845626856949444409357596762046559848699811113204659638769915520481505223139270208631282456081590962548338102665171541667849315687013113415672920522657686663209387334144869791061320894210319427983798060844271258886439413651296140704844566020934028199960950024464439270925750945765734236734288130907250039905779170258234040497340706700611115159901437472112948824500903565622606685125073801767191072973873105425578316132279279122379870860131871524973790631373901243302242504510870113252943428550677023468087432637400635216842210421398830931156988072412506261571511261600228787216629700665533026522191254482764555453479257758595298428467343306193689415007744904970549811016916213511321370257942611288333174723108856736847654415556557492872911461907731733188658217225483901799569064613381432836768129460747041507885749965470953712971614582321510794647339985065268220414440136010801197791290240808668784796865633375443017784722937924363939450789517883739808472400351404533221466351042034921881487973318874240625100003506660043028137347664193210187875310581525147429234999681454839788706425960418960049092315560382487998743814420472949398925210519575312667803831719691453359066489323664348933842530194529554973135634935309449836458881176204485222615356683337817275850545446254984461074600155129548515813576163301775386402530934747618858175858531720121359796872449942500849157686711693428995153929949941951988614317107380598945751599654556935233587440479521960658081982282285999692740761826621303750527137623064354128929901431458930059161681959125205798816923891201516977814899597290385592213411607154656457054776447483792464494228617918498122277736605794502114563229585043293874283147668279514323446073197081660753097038651897859165118071513056925728077533824995224508313375334510398629266740589549267174977645343425277108253140203871470384399230484546091015851723226688734522293466174462144861069399992592041906693368897322849274212719336106505407445250367775710090667171555816163091134769719132162501959765894833065335793008374827524643262996495866847168621267899993758201621488013292198253330590972924152591846693218064828569038280678778714660358056656354853208749890875516199692935523610381439960264883931321144925601531398916314743616161448071778239405445838031820145474384682901617965458481099432970040513986526085331686987554144011918699888264601828890804876269515187827186850320097178182885015706937398905806696910306916496132756199523815862740605711875514171694999557341714800829547899836737263077213828756521263111997344561622312233925725766477400737472780644541944550319201088468673103527830846918526932248691955320919575996252998287782766007482572909676278591852987580204049562134355151142756427463680589065238543547046223905657438675038150577244180907541026355013431718399524506771472425771321419566892317600644740245953623822385818459232337336365638650831217127859276298852757211045486634775893046682157240446606772166294458777046498060602560310897250095104180244675007102647882466820750725752627479973138008874525997254531468755151384911751837119483667260251157129055899359964023616632799315485516138457960632482856935500290623358708208815427153825586272083255338122970756438574061622700358940832898438274064173381767975716610353533010728030298563457911018784495366853963330699526866371815091070710829359825496357406273278000144702963175462297107334865758909808334501298021638285098827397628065623549381458216486106934359866725622129593170002641563132417718407394021672695000459875849901113509919798593058166408984143069678467399837648437419715465468334535080381932689324337459817506274168602000777507015936580083517700367790795473069235476078258855245115186662597294281983522467524824039048778011213905725421475987547018669553189244647979023027774788458648363901586654663879349287798316362001370719741763036303744757147830905862794416247390901212362089326870519531654685781776987131716881159174959167859464883914094114987320290981876111866479773044393354894255063830625268638053757529426575712779758735920814707486531919794954784036579789138960662686236069039169026678173108934775256365407895437113157511405049345052059825044471963434635689522384368681733013818346564973009647688778233195474617282440500831887617769421273187185740623870052659934425683717166728717927462163844939137876760050647095922531379433631996350546433898942960964329649177666046313829989078553422647684107881141975776802541193628991720179682006900579947240323078413978906069916167383511622624806154304112671782401316553903460410062357419010577467511024205234724770853087387117914056836873863951507228570185669591804454469587545186126685726224374435950724380703214885686028105579496974877720981843470136362759883326182897248051117393194499956948466633474902243273705579138959775297015003419164014095687593426457611617584599068005936828360852849002157752682489396374266818328316938607659218304610611851391169739825564702283124893556087390144475063741801607008221247162757926702796919124205862642379425715793190802553412784167865838789865146449935085099635735308911983205957804934413132142434792629437076456594453736117375509023755658262005025885499113818925230452292324886893568341864716013105082208154786432831779073262017555003068369784929411680015462133169062779485613032111006649864734683673473214135150189139507941150846890536760660706265679833666163941135116755490099494715584273355095814781190999686479913864090771584289029874972753991413050306497530737163196819223345676152158924378304253763013138992943624575623164053961807843228088919015635704253935903999480129456486262211472531967291886012294510096155888039059268145125736290708805615507687040565370671009777773840154929860318372181132062170392054116717091992111715961457349028597122098328613386177017873483211991640577971245404119200513217722185856147161924651847230254197895615470634478248644000725636666191969133822486146358549474818709295544907017014149209547364197750981378560550281653527625065969784706176669763775892815385898909306178036868340021117379651199604078964474829215722879146317938658285381927887855998467848566895395945999073115604641735172808971357948345580822611886455225576400697398410818272998009295956112601751776133670674399856607724838774905551524112818228436312393425494315306278783947690159398515034301176919994334431049573192573596485290706273468710720231233480026199273064351901652566933484766765152555850940116688816303103210003932123872467702925812235914223940267006950123318876128932637693136828859016929641043222179670382944387714462534508160244353328720229615940615212216380709167077968975826274199400905466609516106510940844549487782802247552429116897301198660842410749723416413343225899094009410053119227173022139416688397312799544358700802407084045905918066533145728399481660727897612382540044394459146688276743694855740364461840668698320907976538417626050505149518546092037317495262510233806183121749420366318356297862825679813708276030726658765123282487157293890396448797219380956910794910823487571789268734240407859850917204839608290887602358035629839683584025863390729255145060296612395635932003170577117309474175347845166614385413714285435381163228536011171807010698238044505764476029420890231077873311085795417833723505583204693159769251676935423436795610769118139820595640727549989528350919449597821344476529593980991949050929701112933534532323230399752221108084877324220964010719079646713293562195356516068577659784897409756660070554480052538431236993432358499766311513660900566054662882692826177951898682802230628588272105111675989410034982140871042674674461418047926126009375184082083543321985826631271050938800556780308505257064904029035707828290584998820133609146056923848091500869826222249945660942150351164439908077283994546876337691694829437800332017727126311945227420981878080118451042641246558222565113386431032917586468384711051695656965934115625840555292870247493382121654541595544973229463562532956729736793719721327785591826036144448940650026872178303793111047293032003561333788768507545982696321261160148943220517709330705246108941399047278705324642974360867343753439383569753071819121240893379363480167973034392118806637923168301570203335082477322997409226200398393540380615896671383808369294515887764369309777746447968940220605430469210606544101998831357550929234042476318744306788128995262924992978133166389132377643465808171379368026401964693950726020100528632171195253511270343413917636633126172686635545305480713039030251571032135511315714894439873158912428304006186505599406939057433732529295924104277683352866335216627973950369255067748724964437703974043716683405068118330796871439050541189330918855605571921704464798293008850245265807476224009224933142974586032769089092242199937956025385501264065295550409352334283627737149079824275667453353506540388260298439811571511334222884325885621766351001013680820999756369869051703791605905934096859082653386843956008218608679988794275062890135327477277526898025121397557499206946694692722061888884755323847247781908784857728417873882220196227523723236861801041041053238874745332499428473676618532508420187061796964957930854175515792692621100404934232191345823632731528382530438934076734183192511990799987349474924496952086717712357975945650031117804518087833245666616389608644903577717294724173184315399373175648429221533813410272166497582169231366657282019919342864158035386972507533818318545216724830163351942144674205546988074210331148512319451873946003891308930058658543797249813058369952475697347286855082984356247797652218781286558544944426886991603656496083444796429882532273137986888329199941957883713188196334361847985256561301627815473798075875003982633136604286838431732457228056050587092396434860482454796706530063748158569070160092124258016511842962733956680920907668450343057936763433295223948070886294575243428531226825615180543127460552746670496751201370915054072329928576139543119284861791691327864358252999195551125024557093355485658156085033057638109235653921336701402691215187019638479120973736184517463524828647763844581605220180737515383148797201945850561157506655582490630297455940111032771472463330644736820108391937942200937732645931903228670614893332647447580116464764241054616364102387353664614588943956900895317985971485377898600456086020745029234555269771158469268569841941597909567106043138644608108578779437704391996442596275518904693621042199346961142457071848465891757991937203758137137778615037754335905477460138718626364256157406874458207370725934975311631284570464316728250067781043423793921334888710499580719216950821706677487511593965302546073558621921558922414047926373841425885984139379213168753129613754487880037351607974039426696324255479387772071864539884163700748453162490826551999236726562165248024490773514927742902574653690422532220778623226804410532296408946840603811513109769119239192116253791374772037373422380995994616045001527047976388814300239570516064630444232366760801723068266622847809679313822754456593847716453399310711103236275666054348907475084865930305206140027506947230115917508435880214821577581673860460744065231137741658603754598550683487343252113939748186119180093951132338600197264472712710064420057383492263025021442902733566092590801947292381543562954647891229756286941236809992592254203714384890608027104148967639764564448598672163432871676051939073946312497168498550060685105694163947970351787147700002609758034098896263133410745493180136988344858325389190715941755018257766918021794462672521444700263289483842782081286883287411403241361556224361635226242200262710243188885967066046377303345370814548944763126538219661284688222049695258334298479468365731949096806945593470853974784896484570585190605150746467712813125776026179276418016026610668790323026144091526923187232314681477034027311901099489580286917029509492352369448737449433910580664958944068173166545753147941281807723072495119177927036565795853481771404900500479752322480496073914266384699323604594176217154211148434374079636779968182529930849696883177881318709487591217982060309574467017726467001966389175063473298777694707034267410259236324488358746917617635922136430371198774071653543984163872401068277397773059578105310323479708690942636677385102437984198287124844891679008405496157943520957029848140878474530068581518813163074336822361163904270621388912144872802045672739179093491620574086289626807792572616115061249869053537827405639911638390521108241095908843636785240053857979922299003626283961280782516419750782682387844960569121101532157621600481343128234011440690290374112560474098105919310019561433793966706022034555628128769710485876495932454917939074775005162146689589193925079428110424538491782296122937238561781188202103398789427161380561329733932817215657601852561218869177142608266447628618048877510984482412695915371706263957880057533078031734444540755251886937779216618781894085992488345209147022163706134608566874346866646599631929651278557884019241283932801364107444648494135147960161440300643247281388977616036846671480191651059381948064789140053175510365503529203815111870487526903097256277249255511669155904167440422844313089754960225577604854508888154188145729565722989182976893851332840254551057897165737784208595151133012757465839457113906878660962862847955544766756059615199809965772864859872875422460723058651712505740013032875705759698011568375388382161644051505532611267759914583866811115502978804350294966782069693631966921527946553604629147718154492566736215330315168499321883090160509499420839949453051705739269427081381061604960681540968774131660753581740821014870868655473922239748825685051046596316130801638211610731509986985947257658519492642494406309153973115003790574606626306248022056450595415538847382989313723093932625174902785644863583728756038244850188531494483969210227740723487422068144212400074840326687257578357258427110393454820263725044576666041431492092806939880124151337039577153582954943987013535453311379439438297553564106305283845064903824972719948925098513264977622672845922825670611890096459717362850498197391156246405895915438470036128287950661489562212407460231687857526818156083530182959834493950311248336787404533497183311748747899446743273228887175950208498805438934588065339130499226585734128357607841117985928059756695784415128940684852587084043692958910171833432186112012781360454951765668759046236124150129841395940907353154243685686336416671198157792925253057920741291345971365608817747147312063762746373564497429126974364042235055223743145880927287690417430358052745090839676652534158671484640579909378390828923774091761976657059388796621349561324234118299117779644335077532337710042944852363373823420935687826509382118735094979234313283882027613591000382548106024529438412457083933396224430670615030023314031309905167770344163060376101040413846376251608694414773617377442428011598168529854346546716885805826594029490339281438415020466757911115515706991054801229527352001106001578756718920249658130189557346972115844172309610474937827263890440324975635891905077253694574139488510029156411359696902320879900010699486389242177953226296804350831962681140511140378502670479502497675013677143090972168665564017383802024268549632678119708588117601980073788540235627790032453871535378418712299084158409561748710074438436644900679606848328219311920587077481374885589844457115153675955725137614198881156399938261565442883574995214971177709070084184632285808995873258387033092726430354245489001011411234905928474327052190149735981619947883640247268470963034627911968085294940441877025953179814779601149553013340388240737177576867274797997136987104649108271426750824803159070453186333006426785514109256109691665207568192058223479143569990590654874388421943562836543518124605244499094635891336929583444758909548912251240478810065235106611164218750025864629606475457296998366142187504590927025696713682469961685932424957190825181316430044397944588381830836988264578063788530661301107699026341848484236695720794055204718169272506892036444999030826325703481410776160333453160380294436027794257281261051952285478588093479457674094644853111804450866903561869302634867770275513891248443059271482949675716297083517789784199837031025751121656863526458290272145767674019665564544281776047709420426876834761528109457461865927835052841504304235958679564267117519731650144638204515043800980519965312478584200962627601129425388110630230150343584185897472292357928480530325059656487710816305519985759799962250796885818093813544773854684325246538492379754033310245647047348344582182829206692093108592199763028696157270720666844521284802976631191205178966568259439133372011624815487931857996209717787306801843648072208487395520880377880947210066601554378753097917824495756351553149657355577267982221932365881974301144406863390723509850523516204216214837713382437061282529974014292766295506342938635501424148374144993252477230183476391575308434130820004760000035568156492289671048974118394175277113247796578546667809018258935571587988866726291780568514441607674488168350585502698584829263316379773730124823218776906284109415714773665250892416618502325596212609272388134034873794985847651618112736979572173193352571541691065499764693426361409485639218979975556729438369622719396196004121071981686585931002683733053001821026637343019906054020185007603672428487051249214011803196186161281911041576971062145830725774368195259405240660741605162565621512260671270453764550930294645617110939226762492902388018854545575974728861054851780316416199246469082360242928254012366356033453058554347671240337294236876470501215800160457623633159150170737802607296912925417071117873925930885361569072995530659676024201638122687097430629878694867061674806240920074756561782582162132181441742770751449833547196260646692534849227395297669324980734817501272436710329751676595349502397637614066442438190079049763293418520815992531141339305369721788487155600541241298991647045409118451280021457384208961075240868725098890775296346846580367238789508951315070680209910594540049950511774003794385231335962541139886480334405104200833740776453802883073093773822634666149988393531241793701480754464905944324725456397769069914506656009241653459471009232032660894717291038653115347340171294991807330242372949382120757858208636899408940462596133549022429852193647323254965926890047139816228088318721239286977666499797926726930102850235380982090644085753219779470675610061628956731239096547420380129879152240228810972294515219270078710124359978235294480477779264786640967875242642250662094928697671733596862741518224957568655021392803905691132740335259094934006445501908611387528165110238592624132855742389820061122475285224019958485437850465096816507940672929017466121534623830497145573705617707924229928857773199118371807993904525587233622921863542329468674124520252798186387563955315406595247863433090649314913400026440215280793664864211287608514705363176779181778072957969277565215632198854389635604724872476511441842285253643916128398037804665033929794603971810004492909037953938230627264140209139975023170416636414767524079813287241784716148542499915916794378959931153974776243834395081164706097116356014914545149873264196223732434863879476954009024418669889966575487878721984637494036861606241816754017441243107488724677606635009473477699720930750880851442697256640469007336051981468231742995196086003159421552288935250543675163170334927786353988576601342714665328628980781922113313120122878915846214677382543875800422693495771731200768012192840697720662816480443023447895441407873725542962152916041198893037395313284872495485376613923523943895661066073017868229407666848474268680341143435126385288679719758103035762070043695549123071350697751674551025840311645047249241754463158152684094653167015384360682801001086637641153136656374056906309606956831838539738031513376327022522769427678729276615046132528893869773022100410492470927294316903237458831426716881785481032867279620100364539893856861594709857821033474187174081086836744055832841996928375664621086279747220437507470902874979388637532409263431091239445880817112172382609516529083891108381738279582293643217414296428098433826943730384524760032373687483520258823642762950206698133796437499361284266660300218482742866362678991628109242079185236212382210411166899906824242942204576001612623960041212632169744379809971169518691701429914672858801534128611521999463643520173505320995797503963977288989220300443011045739125701748086882058280457550842905349789011810272391761297506051438664789402697635357695296548888158444913010198464674168822007287440685129145669276224647304920358712065668130825845275440634605212300727677058710826321044271735552706952207791147832227108227303077317964936126830639520405977255718175059188049154564674836988766270914365411150726991941091536523778562336022018043337017435018386399399914954335947727468095655065796552590860180949569588775316556184655354706469257046939268662874496303177929396537130535112816145402672478473249526543414638564981017239765158003548175659219043713158286963855659971665009562534174403597413973599856008868546443764285303682834068758760673167044093471892914920607273146067786283600383295219080499695192231172363282401040789426361121714896369708900803345899368636696505265809658733416247172537018233810686735753780270448875965421519476560589418787020711072888036617631746821263783681158438910507694301952104752419686934602814497460637536669540850773503518202281722913545992149243766380733732211672268130943844474222399215223510000855082005336423341138501046202375321569284054831115079661336581798437332733056220501548490019613774339931348661900028333475598699825866810773589662175315055518623957563338412536341376427966017856539533702658822556202313234696702982669796366327859202958244972407757146782589126528708551165932134409597514797014296366375951016043895504813203193906772107751679878584149490529189673079458348678612801774035044587929906797781156144568183641106937427840956151372768561805731758127059660408590850149813816468191178522424984554422825408777053205649929712930800325956241178618092693790029828218922462687025107210956394765249138975532710901751065735594101813387401699988923941118138438882198785106084153526259096874677208997041016045181991094682881864842543987568267554380597587288371992980902799582030645240746191627601904003030072700160273718854363634175692584266077731823620750427459271842138707780431235948264158401997559535011268734365726868920372588161107611605854516905013255453191962914020202639367217257389919054165842135488859196060969963988927631440248690390584921283863100925988518692057301722375936443269313591485431881930526022315878408477247423384239076789790557937456928828525902246428851843214772535414131335713716881308358767349285153731473586497704434856868172720904724363616891833160010009540765525160137218756163157580525935678217468530615115448379493244841873332817796900741122625006775878619336739571277027134159208062896897568354656301302504986650777285475509282937682491509628292102511429434669245603556253102662271870851946098174973685126719449657107452966189217931652761246718022543515046321949449774477122554571178628672774980812098578559229592398030771032180274162130366000938770146302720965708299710588623618442408164842885391903368441648212610753802238758875472774595724993476711809535631977641570812970493324074628282937388629055620900403655285570936709734509847982648903656214611054123005897026400956350149131692770403286676004437634554697824988514886937518517000931435723931281840573434942720247031278668142474360670536520122303843487644538010863455933504018749817351029581838420727743882406066855418192990050470955940622853271311042708543331570149931752206811802826650514827493160018445710000335584952335092936650698962215745508091725664392776059928552769278692371721264107162245243026150679535460090061878001779956730888571182619681904282768774801650989033019696653065988473445187389337946771293691396972680473757217785971670920201260631943650459928073800696346995329610060850200463582013396018383917390574652650412299841561846166716751821435387568741271528571212403290029483948347046546700487116198287373089140763778449647268911610195323181215662090170805510034693813148518425953552495769411378770337051652028349928196740849988303165963350568572752137818258232009459888219059842662996564075762952753705200290631688218318917224047012323343778204549865580483461038530153324547706253028463178355481298977520247652855980382853767887647203000770595167647818236947872794096811728046637253519131681404789509632138213679506710477922756228120389266718770352119189360923223557378263104911110709085050543410454109555971976773804336349623815869711518047200483144568156440754155493426898181407450810948362630632630304861732090821834804311061741731382795417250321998662745184078209938503953725783877269773115987404847005827261423209282314182172314335926494701987427001798030502610095399854377346415813187296717758467265089336201389864585534151341272691685579505660888175255791650238375903946897944977896699105052519147073253800376810655308202080034454843341342088945770916065559707130095154484948467427285029242318300606174663293186468241533304302942624733003298174716728830297906809910474534011266849121778934533938891885204153121765605589667124142094127440799686236693938172021446085328587164815101647618107575679744793608313960422224647630690176738381601150463564431573381001534865357253817453874126789247948845084847683954516629441563521482125957312474236637033437046948064509117801389908585918440390868010470958256924753725429490549216911844119230905232746187543769924774982110669590396168108088665926717762746575416683838375085916304249478604050682595783357566876789648548422920334848228332094551898213164934494957409282766795446475512173776855069885624427050992822848184116578983006636599319255908693688694471280959917042339872838595560723271504668853093692243982629576323940958026594513821840856908718768620585988611804088160636259592620282235824517013400245846178848623233620198592022507158024175777451138626238010526719018197547056089917184825722554222117661730540311495494892216933631368632619470039586454627160284448104561097249708740312207763500223948514768853616572088223919060384174446971621518297234717396285402237709320375961692442306727830239214985887196284542099956659321019239518191129159789566483425833495293865274505888191861039891997183109828125297463348089075934834858023170459737976082976493874106479053420440251301318333810474929095216719667445995990009839929978380612344131869906283433281619137314241069361334055061951528584675778787588219843031534111222945832501693024180352529949341956080320999039131111865804069449004018078003101416254277089429776772871497056613257888469577810442218700207890837538044287813412247342919869141882860282480662143156590955886140722104345852616126761846898528006465471302823057048082898647883977064304050866392875264561224299278410638534577476614434138399227435183557431192604160887289183360152527469576602321266700030782507298547348979451850089237987076434219004937678299727823921218542332339068655296114702380829268168234875137276381763230994088750923455855910591036100382003256813018642829302555440523221695911320445838454505774372881089087118942333107647664820828050573645250599842084582895761485891211981229712767487561218137762470671429455858156359586847517628123390826345851700204109692877581950109739550962515334546610634263649786284707903756834533500105060415308058066202501775678158136201260960698914573156679010127013064606390695322261426664590567005869889947601548139766163825571098538520757358494502741888024603086589650124132894145000736032705269868404254955072059368548425256067075553935544926077254767507728113349238894808618104816132577500377598989993096246571374722484801756248226274616136807773066728041225883493982601730250323806788992522534439616244347884648855444998454468043478981072389927790870909547232138913087312214016971069214077201641492749036723436971041974304692924112547135043626595332675094612095732711016997394846402034703514844505661584949181326256838752057277468161442396118855740776296795271852312163963839534249104448992401136524902928547856762895477210263641105036005869059356594426948675612060039694875049544680348626764581629308012815224796426305885847770296323682349199690949468889949143488843164317120292215857230460138944990164966881810543597238222336773486719689385488941759340509478218709327859727325633790235880537878142380375879700384384849107477435840177761182876796030675915537451972585590477596949313492774316458466407054034087998610894296182181013692601897427760477986015424181332440389714268650700801859827731577472882541674045268174522788696358946193789270180644103651983699973547034940662171733892275231413959718768089528727328951975861213184937669050046936638203340995152564237707927599553845832852018064338488600498036407761347186247436410703776922755564778564163882801731004002820453420598228589056000845242585348824526900849801643350414638463519667931279618118594235007797943988869115655144955849532559681519577989930277648054866246751864882073141725898782650852806184135903832645242174274143266086856745753671740014176025297739524242585102412710019950964114582272135984726355909922173681069456843691758744939508630161334024934019239818894910246672999049465083649393458086425074659634266062442537958780828614913704397813756882053801240915074295262776797221916343785673956464797155994374610096245229215305329365645084284990969324942510147943446744757173127817923480277642268161223463252387846192056125263623062251329693159346209546174093159348856801050771486219106806381533025800886856288275553646011570120808575069897575054810962168135242724755710282593124724398593105421489692551538003629304777123050223507018469510569241311747514426392706985228408769890228875576698193590963192301695103106551507353767706808400127740641342923610104530778302577885767330590205648969286221320838654388076410906090268120162913843086488233541812245843881238789049221162829611474754975999272622664683648883147415063543438835546898880523235274778172949423446306681414930464579774715425643136920724344333419670822232660654481398803650487884102672251652586851035876910113376265279768046575067287332667707650424653602139278598699041224368368226338438983825933264056492492540793480627894445590353410946098364785408510961909331449985233755618133183268265591556109330587196099735391164461148051093715131794351713759401809432460605204603026312611840949516328672440787963958797548289649935027385919770447721208473511560209517924670587232801009458703659052192564682577955615186613941764390917981761321160819739825507166535603726659720817064694669511455213278509235189864682591024478610135526831454393882518766239202582107633388440173241199153551200004338052448865617282079527249339700295624154972993199875468463228517472567261374635924407439127324968806833164721113718161712573337279310158041336494478451243487945440070282222167237089538736589702005640570201626262271904446800920667266661204367371089399530740696735514954525921296337175341483487184906444006559250128266882272325691209301885999792805193745202342827440726443807061629320969092947081630647045134947847606128997082074684114308365520648943240377151759461711290546665593039077572942683104124262907073967275039041533857492831615132067310358166375720537350105392211498966432338178369015718766718486949857422753499669669454419367099554204964182858042518647987410252309372234760200900561683290496956674700799067908723779439215991237223157650755681383822065518084588932303918181783247337540449864324611249958991407208207164931142492489503963102405871374202195490436757710386020414206035197839941835128774215605930853765023032547672505476903340344780089631991444248674519980074981231985214314924883433182470774791380177184895366569655775547554476404971391387172620582229412560780648526868137585322369943359236036768854886129632651980893617251205165896756524118481483491474197933143234238543932576079855181609779949387619658965828204837135992463630667904143808411432905361189103916078999196149585251254883680557490338493701925611160517656784168727800103251122260673945842728140348297702826901020458878258441688746703765550622642823231637008166000174787433542663097354401561893828435377277517786829558895901957522950642091508248970103233779167410015881318172853143563838417972566668258206604817970477415602912089123817542103623294330185561578066572003498186599328847899815509534077610988635428670331143888257000338739595598411793081348290796792295271588019967782921389383246722734827805277027780621893466259406165855103933503935306063113290341269020395067774383716072113340959376310758121833511525597314216202456073170038729316456881537697815046487256869387029502081828765825793173791124464668611030468731003842456849996559914641240634239202130428105020999138363875026471318242409281435953720700888085632291850717985702039080118937163926647954399525004253264864741156755305767374678207700096384563547988671340546396205586347081899092997862619417894193372153594952623963559125678983896061677702990197858212231981842431518256792329250586975636895403549790206884310537958847788315171878681117189717563980969227125587105420818063138764835820100922477380601367453798300984231494149991513228859940384356877850010545317974327618777855076750761635324249668989926748568624358437206951238539931635470472995444443660251960102867008014468568193853895843540983457591996288830628916654568852492202707092838180930374236836477087363587927607237984585119624529674777441900879526040270980191448976994538432948257672481235492413174713476493992587392572731416241060900165740565733217214080919464934230755636800667327561759497768156072024613195931515432942553630391522179767392586373856854441762842408791397324052075755624343413329947945820157973460060124638209768787401343347528987329865098982337943823861405291498604094579666368190067897426137349631310079985082173277770451831390499196854928263762167650453051306286005143127512779331239511457709275314878999576392027520962350119799793538277745230257689510130402492409468235231283295164600833188003882267239925728795794169054057811394091181064122220555570172686127030930288168005018891896274351978301725261154390955109781581571874569910841599785063983334337693856242686160313316770361875588971797197388794764623850913021658528476024261656068500819464706957802630949948520356738453268298563280517039533530475290940884616149923312724155401944923256254656463935969497960177035298787262193910806266292681971504875379871212285444987701287588580308509813439806372659871404448098243642124518960177389080337380372129063756027045121386147842651742945717446056708719608684277974438599671753080290570126568996760175959112786442828648727440561199920718422797042913496700131810619555801234640018744618923351715822232439298974238103720842599807817492193835698570921050923289924063365210845824554720121147688493912529126895901476680245385106488720098571874140305604105850723097248702565082977755223195934079941824632577374597375245790973638454949193731753902308924897556386559921671927468383939812024712171869562229336303960003757193419001802878558997440335789540898758981308519933521432058956343146160170839911632711923042688781399437587959642527224474447542419709292178313540429998075349867303834087069858444180146342522083051362945577017064650428143669669838745742214101092104369822287408609881711685977555712556148122819747047998993808538815855947903710637151936220634843906212638573166328974191529809854010319668924745235166798185748959594471971701666013841903900944077728362160765990670730614193363547530302483634812391485802912984659661786761727676152914692722460834292411558480072102711646868448957060919643979689789579680675959173152335054319510404500010758339113331469512519578931912920973361046902697737595034321755747265393901759141391791405993805267978448655482223537920024586332790791720277163147775561855687932206139151916851289718932082677467907233426129168186972908270483067621767622989536097519072970341533329570445254156864407693126781737839471128854648108938391250202523929178117535243836264157578357178808522571221347621832016485005674609159004128225841098367200887096749209509784119870316502659703286436963401319508604400228151373859861134840890784844393017558762010787606560203256500687937678607813363075140870866401007278602772558102277048739958388599510758025995684704927283266589200011425747197328163296512894030168050823283473334124326997373372476534535737241068481897595183884643041598323036433759432620385523273928369752678831496814464720304763075636540457400862763581542140411334980163887979411097186206965795806832194375645099454671441714582705266008276919977966432002743817090456869649123688273782316282595580823185258920000410844461615408356098796847297424139605847905143671570108384485910972580194315389097345290536475822279107019123101372770486123147570616644795107363514602673737708637213742413893746747801811973294343482285027257319671750773914178216193850723085921153320245206942828397092480635300971813351298514926599244490863802756270063046884159486541767286312237495362940377584692529902665718561629415882141111637866569190219351299702125730235642172315745550471584515183129678078089982614659019265700508316988862489848723547933909107894332675055158794468081938652893283095421037727907978256818937206710951915112971868999489124092093805976590271965555242373209103981439215300731917520701073284594114737071776369829225966429750585924432813068312714606487035973277501014002097857134944646068778064514486455190919249416683380960106472005596803346041138268621083379153637940515214112032241728202910607006038530632523878487266683266324493491020972883104027270366788434124948401818692562923266045901290890471191699177398865925895884197185172304858621540607717290258730479343644889752067577888993489985864348547980253874003556632017866412379423255281326363826754297869065275148066299212827390354909892627032463622822629045471401740278954715046284853409956400918199406875156385637826608223388916943082827174375766273196560511609551444079423175755886804571198110989248764540759042033703310246369121524936142920933392747801812633354692256123324369358044522584169028960452655206053134322959430737260898654660491728539201930283659734457485729197163820441851291573803235599190707771051147477909094087769222741991268511899678640698183863495614339086898259679307060513054254594670029093776756086140758684469702162452776874397403473756610932331391992369705104829813316908564015646703275628899850028854416995021186190156758467015875036941278860961405194106711083297558295768000526075703801412647705225732831266450739438725775525475381362452390204540615087898781111843678963703808277353957616605867834371459839853680798363976417185443049844003946768996968760655606843324859355908874975744270119750663128623551927196264061128650591744270272947465793576105169810000052312374434473620070453712538207859065986661991126145767855058438834585147343964005658102391456293814798293989243961605758269058796144658265070642129187299332042889872913471614254901371008445819789353744863832125376468620019742731527467666568305074660125812196429930386708728506103570331776634059975970062910220863618592406595841930559661779231669581129975685761795689208041808713726571798576564658725106768121251411821489822670480601913132987009827346948125058148700887942149120776323472879539342960252382905300201560926739136429372777483261080023130401925580148302635615668473646815146178639488566193272177646889615341214318442685814536672631414887607011998222416489473084293720384814688186086937560248793398970044414746828827070724208378258457543242277211125600147232968019204539831368789042036502720093266403027144949438983670211823685324668530653798162047363461086807804076215023556850439208097059638311998918888896395691589715980135537083100192231751876065401372793787310321275230408958691667015697390733894836111382515446981100447224214123958425360320495793869165613906087407597838200379132480101823616685867567102710302691574028556956683954070674380718010460800890040001819787782057884590824189263375972907655690258401593898645882205851633761443521602189486202636673479253781382933303007630093392100469035482896615694990390374680146788492919298798802157426051057735442938953084220039750392098496267902996990361448046287538854723042579278304251060491692451816553967533565204428136190643995350303334564861357824532413981468232931347283824239633990083999660087734479429083456841481181103214361703861333098077434792252150374353185846754788069798240174334201380396934065783541103831228019064559276521428052031603214589952873396872508722194160149988052464466859192946913647320463407943641780390896255534157131174867021712694210883422763427191713908485266799457104799286193049703631303053194794437275388042943737099631047220932033700023886525801778932032526325737057024692196826410807411461967843691280652239732687641292101678848909794381243861815381997085477129708814286559945400233422040968854835893517426659989384108643592359547709478289172320340367637339725531842410750419936857681445998002205720653678665440793272138317333927020234177195995844359820036162717323420772439261451350587322584323612773969721864845419285480219490912068850304951553271154637372674336979692600783567216304643357952476206841908478162191206618433048230643102990060335598826911435290408798734502371737436346248328919759865949266873563786326628858862087237268763529815649654023679980391405563176545635849827881664345045313888793241707571850566924717854351410593716792338369107370857544416685729540726714425855430072598715508447906958903940494281325416554619712261912415042614978251762171753758520684665094878703926890494019842369743389557775786355824419318131093963368877026631485640877205413065474658510904959954029868757405329056472294245211144434505011460510009742787856790822957325511871833806026147641306940496136381609603916130026559072172475732362954517604201376181575835839339582399273619280249776469845295162665498107283312922927986251070830435698838478205771050411819359098298793779335110262443876639178475944322465703794833989255736107674780394557871039317503832255653974531671417489135633906610978997099789418022500728176253438241682034150576188109760832887789059079929325691331225662197347232904748361728679306526014900895505045660788815264687604344239865722159260130852207772341836851216579745281986159270863418247836039378886130678582256584770302284010920845228769821606535167168656849009000108761761822528120339972441620732259399395749570402463664345076308840179932558887335684513094205535419328506283311034073085086159518216983931892895152014052260627037709902085181953393465105547338632981407014743211517953498199122275488847499783855614295990476450416056579040076568261661091874637128540297930919447547426284935370361372278193111902864469523854917976236600002548731843870701792770374640811519947228020445868209327262771097403442089317135658506315784962952414891545353166940030078435967278232840692791834849037365110933353460362096688446399985218308752610369496143589774043986131700591090100535213107610875790505472494047945866839890111351049675195329951115540133270355249670900155424546409285250654010230470671673537798021368219875771403364499588553764190277703452743996544335037420878107650833074126820879119480920971066432069105266038900983280559459116295561857600299547955368461659202750531583598018552550805353657310913132045452142746981839240037614237669794475238871846096902372819401308358230762131054231230125982031456977901005683508478212680916500024502814498307447977856103570083557147657162027564023277206214050419061811778129069939063862502493459027871226998030487092922397542406895050501730197260018940106176160669640180021382309001212918419854184323137246395482693878583791070147380712483232908836096831940419253001667391403801814279675416257163662054103291535903658652467170515772318117845884882005574829313476049933898331625059090244617664572783795579022156482313589679534961168607435071817467903250644607430414638163928554537722862540417434978645278933802014430967877225720969233938790181514343779937005824128962831434679123205066752558994887575167365745260988336875042989599978833506957124654757642954270201276187915739145349242468073304665836551888272960108687957283059079063355124252825216268244211191582443840618582724593850241310546411705860918351487058655879142204499054079951734032675395102800842618370100469264257598979041750055099329797554710387461023438976832112694950937043202651473753552543413155833257983024729547131802381197570366056803372992072723347866863571645853639487966018713711187344205383340671635324260162372827630919975003719823077770200553915251545149452716137975919021828477212507581039883058759654529038057916087407696204024132064231449597238472945003274086699637071668785368645345804215825705988738829055434088868313147709843190233953038527289977662077504465274271367242910860733277351548423598453205221780976490935268193924191832212970939550502531709566758011244897778944919588430601430469102883926581274690485442692793677322677549513216031443683848960753166414320089946922065948156024163368770914165179463606164389632906550310233529968834461928977442511506009742930471286677993249793259079906346522790111639366860179518246157807121618402636475636448168572575100511520369331490298700282398517699720444887023663352996562355145302103358393611616576700276756208442970702469234812747991999543742538510870688504813802976667778884834913075046235451429981041060945832270514927296825776005145112167842693620347358835594784105091538851869405893012491587952343520832912947601085711206109785952208826164745969939636144913309915834048231210975465983272015644714446501632945812100999240528618872056693313538232264784179070862255311772148590402225305385927569485155316098538076754570932096852543257295067299547874838908506542866014965240485868821984836397646990406359285047959083575680287859047171298481315964627254529909638924107421586413572300733368278386480920974776918595067519400983489901443394335097236422261963358406267799536274411368746192220403027146686908048169674562234308008966743576062112785231597904662852061253635847335155093983456809260869808316038732466198993655026166765708106545748525659688264438630323484539205652602698321617338978187867011033257261767265925468184901741286974539394085931972450859056670799050503860883089802640152800119089221942195780071027544620426996291914185578487170041701123901170770452847025241292335975292016831919039313238844015593928057224968136185753328892221098032372967826073220794947974925020256247549562165398590879940694615248212265901039084834751908383724078476073231096948694355013205240237434093602537749242295031511551929356467442407392812168506992225500776018646749641101673274628190446928644042443085781215336195239856443337617197245877066997521747652511633675462030564642910548237519829401489582251129739680217081903424340349429466083901911706098188236937127800682570707370665578961943812522378918176027649992489970740188781531594963077998130171188339953490185602565045251524626034623084020790386210950115675153987259941907863652378486660497310194971950772061854685426909293266869470993611104255559143067831242608686367805154835069865965835185396318875006219519587150055484097332805644205548410426654191641549409557615550532435742602177809504629304094651531506125589025192136093140224454191644780419594566487004234422376487954301341437980384640663575850883516580388090781643476638233424858310547790777383430130215583838793499129213896622660849443535775186675658047139900760075935719710263046470288586918555984889511974700669778212019388315473152327744510936977033936093186556763416947078584932980619400573306399350178023041204133699072897887071292624391552860338955041873395553275381700047169548543625104660952996567541344242808545367605455013925976269574429124872763649000377011130798057025232949399902702631211088298237590081387864638045689651393906368245356506047169494124472558588662894937695525770468860994660572198323421182477098578279725204225504652707399987728739016443560555158711016559597782400033334623825149535984822252342081447132992916648585699135511422682649771970668129644539942809679732503474779761269792524253251360444373850135188224759906341966656135962506898680249815895519051544316574469340463230997873506386748228362452507124178162017073239445673428007209392244240053330689537032757807846441809480495408310266187455036763230860904118493362311018346575317117039801819094851861534930260753117911221324532015839832189661839212946273497460603305133102358158073406520196299934350736374855390389459146438759192318597266301412586979952418260851891234859734155549233024521280301212910099298210084382673068514836606895457508353387929331361450357874553820416969467503816583191781529594946495157181099150447939669379461383700291962574171624171485659350487483434822673281686918567094783388930672955254572470323239613796567621960856381130797904024294420137927907217254596036973784776173518159531365055382596851000125626236489924262190420140765287889299483098088783958761039348882875344769083926847011545561192361960643825326742387295974671460581730147868770540896509803756252389699153787750369442140635209765415869938442518451876347210684473314023834007267293341404901439924027900223439896899136401005220436962489738609616786811905793539010364004765260092970322191437631556374197729980383217766271492411598433513005130844498483728743921762662095836611081234630456782050055327533615615403363863127623683580916208500977243525719123611819800451212349962738825742748270588653071321750027453824893996046204024926090036262334659153471563830109942138812262220709219371630022897905416500795028086032822037507409573042731510941246607098822784901384197684371339633382140971542228473401803102300488248267756174429754924241142070932270666644537149875288696387891400386575318751742015891259519129351542273390910744227134892225730502462724166229344886044716988060709930751516158621430430797565603681343256495406093310377445900221775629030470775662039889835196301676491292346596256596850944442231674968174331899496812000784014891209026226530317839767094722527944506450822480006362907967640184964633742039038884050517472272189330734450018161182292050030154819936870415277480769815402557656360733936506787461146238084451363661508676753716311966827467198987725902653045726130325459859235926072125525863324201055438464978916397461171774626844445704752325008985589760542810014206398278484590602039677012333184527039122966764264938802276491001831251675079986237759318471864085802517298898698390879506116774028814563306504279075331350187805397720667800572639031996154368992301759423536150639321990205906998960216944710782128589806485540641277364273443615877335827104935975533203422281176629592898464820139943660327005658085120407496730757945754052824133980048019188616660876603165390413956298431417107301090515015984428339877413556248699785202584879030649133009899689674114966811610661271267383982074767589310083536380231959764310328593409581767554684407042036979718495369395567709407928969873951755875422437668495606668844176745759330834491812174334805570466977367435485570357725044789370371916301147633127689079992396739900297611570967682684972573489523521910865933413387825950224431982676253094318652003521054758098701139699225070546751323176327018261425608243832165797293087990433523460297998423822977408831657872715347120255458905283476135002213196764121858420888393395914458899320587002316892634242161618987262631748945716340432481729075705456791123861409031409674971713934365264937223778351048920519842652851100374283114062297746186269183942839732943273794477871339486736123817272626127491156199647965688867551495020008646767286052344320627352212595946863779254766621101134449060310459167484107397764993133141221522478602695227384764770074777842721139426185565690776062335682391449797209714602376151958405755869783740249119264948724660899540129465409275064755838887031807256552904526576795322154644500501389546472119436019256974963410377868675791684818264582678997109010209473624918425402227122859397281523421989536544668129162306382188910248792774567545011978399538774153230664817765099048876299632112001859028917758598012135244953967580803832554630964266735511924170327828960389923433651147918710840475879040089184753619368277462038231451308391750368619028554933353161011605080576624876631123367056522648372492864831625305722049241999190192450721666917585707278275596253633589226313151112484747118439553934924822659946443715063245522800380152147932310000101539530414365011790318391889564455069433391151285751715766103866360246158768098286354378806628145765431450241216315591517728463224323334221914516801399389219183897597706188517949183326845143427274412345430473409176712789730383638531516486828491583433414457692832567686279340862724323901449930043188719286996809410442428799031977801011014468508178650410047615541313590739447179620684600337960936057010517871344189168298943906867498631180694480337408597167124569932655954131572745416507024092970325253513345715507111361717274664805857470577413430074973064655391840305246872913820249971973488666693865696378778970720693339964715684086645047594410015953545009340246104831474203261995451863556423433690276315319689357453253002678287048599593980495037123074808127599823468472973111136174719518181433991761837137823879805767146790127516583888042597153322896846328394241926538505362065804214323219695465795105276043649955133003873679584434721504517157301828895577195910308894809711657038786322263705822409049153503154293675849325503357144152078043265387684974563674924469498853949548829949783884136613525217321436894607732284250972222485818295887953131943451417206639480775407896885138408266662776477905948595999401701722862812160416516279801178935002841539613554838580093707285491573068610553843061869462184330577755632977669640318690265818253325689854025548142967296536016090424283007115948027730153279395815290888507658106657433222152623134227273439582838330112638530550911783296135432135384345608922903312691869813903823796883025885535543977349705541128593943555522481609034045719431806703853252865089114913469294013632473243757011418036576732280695765374885485086275913700340322571479930070013117519505180998285540246807335929694563419473569700414028056060992816077931923723945341183052255522144607677653550348899350388517308195699935812925994580484688892033775959889268706074656849841435682390266497893238587121352226463423799898444327342126414816028290573361802350203630250252175761868609609758226367163703811285301757368409269398664855750155212214942396605328426774656071862153569835285693540154409552826450125083465444724218600228672380165076147019451273559757633120100681697580226012877593514889462763209911186546313954768080217059408378992411080056483704224759929741193215334728276333952453503643266508411789229177134274200392900206828872158464278556554435735342616410296832345680576286147728468089140519364123737048462556014456887902539138187961650152332270241987702572280439106797788861752146908542302985735418909120669044212014421035330737733322803492809894711468930893301706080278583994261969235140129325233408540199697918400011973018938638634974761578643626272626091952753754172676466739247403501834328490464485479361854192028512874936284895269223622290524091453353761372620129291149901465729484042039492379456897492984171564376524915417316138638022873196548175388496597694722228889270179047987726786063109906334035847657407634165914278416243748495216610865448768698592491907283703706411893804870026960156928400488874562486297109820363496884290334745100441231811343348721777213192643593609325519732213364689269489808974224299507409820967525447623477745682132650011051320368281023119389797885366156148915417912165747133045747372273935241812592072451947774948138707309243017347434789999029252798642714860650165277399848301824070706272291695040864248345436382888634767344761023616476406083574549425935778494698342381989508575256662610008782897200191364906715569408210538140397281207212544159789274988152035154128066914006444050829787846472173428111298088181127290969799017177575997106415773796754762993795862825603600591302270523443831204446432643109832148415265891503779862185249110968623953109766910806486250912851088731697277347148211983712201254304892068889958904732105613696311383714232174530460978273207929096972072837845238392412332374434024103704885238497349891577827956350839812589901073612190768515070588505266143268067487049900755430361826036513833983501520832035906906287140537587842459385138375663164440256959889211040405979096833412138559191513041174935720005441452915375364019294100888587776938891733497903662243103499422477722669576085681542570705786579416218663902833455877227065320372079976282718033177980441951126200621320396806838996213445225336824968746298115722266204141664363346131816860557513419675022542622294324835038615945448681218930980358901000468052382887599230473340529388163875483128589487382801896583000438108821297811689706400724143770106252548777725553333523924538981644339116725016385693218932547813485235378926483187927209779798189002729077517528668624494115174136996719643681131485391425265550259628639085671458577372126559819321558836532769152146093473936458451306213530781948075585097813311728633944099850130621285800559590070181971161524185224579984730430356180247005615050257748863293098149851094082011480233799427862759302342901509821664560481641634397392011507909964956674629432301100320606621930233781951795863606931299592249019557456237982052904440692008582668589126690707767735552919312971782985679571401118605178210064281101468814284447784881043252530489306250377586880755812065496818558653407308567362622691063752201301701631250151563912177310327909111545772984651912190538133242508683978836568332082014410339837999050944279451869563432223673541403363290402824472895329433285014401926150678450693344545849257761125693545372713100073498049532706577277596038703901152157205723117821625947192335996695433477923640599939259870888135423862324026149605199489979692595666317152142764982652914899319004248609737736558395070532171643131192226263736155812555674646953000075724892040772252828282623527232712736235269603159773552195666511081260564642719232123252285309133654448649538573415083209989534834058913206679458217788026647136660181483774837947671521468744689139397431231725369030707043467888136328901674982778349241184011443772749798559285185023368229951920261010125633247741670219685879763599213481264081949136495357823061117939101129273647521876465766644780971627889057739828249945209852677193384279268905773146248937025420662246962519663059797157436028704192100059525974891656066618407240119460597324309997937389697406069407733446974306765515322283777909867946800062433676167934132761707460180928607787718172362818521393218185538500579929543826662468654698186021737012628461060276581852894026084192364197296100435027975073069324194359484729622364565966370981860776039069700842286583483891163300620367162611576300616634208483581966771347750719271889960091067312687114796657683721999105398047084872349487596536660012525462792888710118653890737969860609418803904833495680819027162643260878870211239248395240144451844664798181821276101880039153026013520850996583934102995829020122895834035268810326633743193238114747283226371790011272356919512611133465853862673618703021086653729190287458166647293919943115695489597007549273230082266010098223745701367980333559822169852293705171250504410076210595833096606401179223237686755751470028836884492700772323375135107586763227343957125923466636154844190991264045589014453792877444598613831387700012858879781433275261779724443321025613690002758467217179242440709656649316470275895462355516466758299262105477690736673552277518212943978052406586408849938433889186847221110881452159701444855199211598721547286603645845795347321890487755891476826324026076611413725187336928933287710325898328910427849824132572126100684350225339720343451875766502764879934935348372195095553054099647353762958192346979617900237374448035775936541855272060872133210067827884570601837005288979501820440726957818730831269978532022211069935431418052519221736473192640957783394954280451094131584687442147115352795540990839615424033255531446646193604203502982239528838070528912440598488953485835553310420913271725191999334837861753810758756774241367007068707395649304006494788258162063953723443074902502453131947736499734997842871012937126032817724155952556186993609347649047415983564798122980816554509965850309266178455817401609646032978079623153469603232207638570505012642399823973281882230979297184243808529438317925185020774654753054951547077126206737761246857141400967097833337843299353961400255957849991185496647246095954957120314644218133933980200304495405163734282151282108451901959205835244294432062896801986355087945323429298073032477698937516383169319962834302148933862803421895094628061855163397302262496371585143301240082903036975432881641062854620208248115391542399523928882256842483244629731336842103668568125464303219437619746586959265399364548232259120969593596688572649259336683179504397031692876136314611905561593943972394793631186305692151852989997521454285400194067301100046192682636775666947772558674217883557944352921306364293203005826183608187314270783895157808249459186142833992542157048436952793596924947271156888262615825598817031604963088265110055680385248401985067258221840741912436033736183747276825633515567306861741575747611349093055435409105231406273100000602069367472289556367684259094471055954525338118611676438734162049643540518365086249650866629561544230458922244382724137480560307787984580880293511602543948333730349805372370241426991183924933081590623579409550172770170028298466966013065875719043619186876466859123874893001677572563579451179795260362549777940946046641837596576785427177945024010050328427640098386417443121544639506554652009748927950217719559464678138430836287619203034606231308696697897301157785356440455172311508748329049905023528684296345248552640565601490146963709740689874427879136134354003970351109001912041313365422224053438996140146358818120071303150661739168474125258491617387649210675349907673583724563784765098584670684704074865465235242947718762652228677110892509451672752362064317892142316769223625016644158978999733151002519825955094168820059941167121993520535127780248157219490789164056661866691535237493000123948290086141252537525587241909130562425114532988555906569052775295622187686980556749974374307201667654575379686760985724676775104842152202776606017181886025938729880728530485856638922519133763156665880295549131160027133681191909561878194605451538619258426815284422066307088340893951739991348751830963593582374809554701856404268355875703103678899030148055588585317311471337372479804401291346962602642264754144165307052284158519191741718417488242766608280362758665237822538255919257063448412675959719260617803680142451984112614937771440472443580639172599832259611774925825302902239013348030782852690137245911564596161742486485836127794178755676336128181328743723386628114178815707850745756222846785353742873848914126122111548011253108920041269294023668427590568596826228472203598277859019681486952203351852013639681399919684328351432963209070836475108373150541609979792480856073435910282044443531189355148682614937350853572704369755143531501655204069858942274416582987533447201863259111960743865303665729127685974445924314820131955172971362355217087837738494575019147019705727497748709792265876123171985012324883539279215833046899401506600647820515080146219074813088057749241037919227076924642124900322450731461366216910662141767086314519998869525076165794908343644147892258345951873719272296916604528285926985963534042366272177277316413145001100400729997914130874790882756542608542924611705811957564022778909123536110818810178236089028163997582081490128599182961611242696916993186809735400684912877191587242404352564991713693011374972724445283483186267630918813159203469695018599040945150395445380737764637123685620916468898012350555742657882087018946474669685915555524016795058659443506570605299685780881205322451497421425032717677613802910422332728711006340139777283948013069374553271755638102688309476442268991285486817588009649988870866850781415615720682364874055940032602598258400628118615259695105108010788207727884403577448204284308439915430946915357416088301526997401557078102880329540018514567624951618027030976446401226840217866570120240793768278472255819248266537841393181153904033677636719898193143110872945294381999040824164152278296660196901556285940734332912991184552334713085019988140214974486012908950531342948292964753069318473354835306332176816281858146691497384944922789285783906441194628440016178095447450243177463029143308705128002442305978784936901695056740109330018848690267990514198068651199563556837589347713233883658388605050408174886329962216320856510721274802225410810381137499370279528593003793322414032732656692222456474752137618297822309387155635675240107937029529440065212843013579438889658941840318560330913130471840110804131963289152874294607657982660757236850714329259693551928844217370760963925178296245043938337975581622817292591452854457584297844306458874059709752583151686206074577985600521345622849959244373153653242364377586190052002312990450664514982202186214994592989023297132270880680548745403842565205337585027853992342478834416781848507998472566953974491160089730870640476902536926602292094440623652630154872187266730727181410828651898462338042360341235851608496398144557190989068614660306586871400961269346525499087923275230576002006232509577797824355050854591619768974539649645193606255355540527183992585751072297876660997965143507971744796746154825474774677480379308684044364129042232062029622841217355661119281135177378975210529688988654895980296073050085406430128540453787847744355300464677271491650481973029293211152968900110189967945493823755568006523681336451853104862740803489269071388317240334304810745594924933806333807963640366617817204796293202175525122517688075516012539936352406905791098844503604997663359103452365644038694264067297016238428379126156713912905953463785022599144427251645536511929840845999936972093440217162545049445836400405672201014861801761288818484053605989352899458776348687727191461062838418853184088266247863410726310044433990689335760723196592959491116791658411891966303764280863913752518246492234304799609867872282576510773885023276037023886740583895912852587790708266592136447019144155116608391155419126945363377656760594268752096981517886371955126814238195604807762346108634141078059051332904805199842257901746241565189893255612255003746391007806561661693563249645299454418700575299101088712682255186002417102896022672289520063376013056914912037716123410495969452233870267194840497740220181111950880170009100521941560934115098331713331559965118760406696861858049162755212573918267986713432623790502012368138714282571600361919411261155322598655932187193898092395632781323548986641674294722867641774589807490113258047984457369259509579441507624128116148500540673755924159641874548032969611514575773776137751653387999893218870828620069229272949614497445206236983601353259477664227762806801633851276643708467199488262327702934491662668990590033603489136709901203418416946689970330836843535757008881335634033378053604770272443303662566066356276457567703010016607448416653698025030296073071571411331442590681904747694528097387612711439195374270498467433902204648804250255195196127752468895595236727987719083106651043298200427367026841913609168111015093912302914811137838553980938383839836853024975289539695849561144096482697437672698370682411198594301347290964477469486632871060363298806269004928496049153155093983473639664079682125128915852310033829167399683606876019685501486493601821707211170557141679433140020289331626125833818002307168004344975196860337169096092068867952759488848791676427274652647579764180796390131138650219664176136707525143854745056637560123016456395392055756645908558823022238080812861194346808369624667329713040540457895612170753597104628492491923327231406114840776990806422428585962155243992329731937152618416319153114426231228923264758964410217091708190653181349517115341594384191594650614687429462126629771683921689304702728813821713541778518178030058826836969796681977221888928526702672191280655398632372978147585178928190620635645954329188183182007008432297061890295800910763204532134693991415768142651247478081079531610294091112905862801312837867127968692068360754498320909606658909997224625897430666129874266016283265502637564330239821629776461883884452225263075378263562556335526745195394395554554830305845951052834357391668926731340378364111828924306515193769856608161574363382551639680828160070573702140132287232298890377670325643168694517699205622883464069594678039588391526758993372914992936817857753227696472852009535457017552835367815838673554913809786481970398899444545761359855333014898228469420882581803601778173417963566877296333641047431910739094689723611864126310188147311826021276484689441013641283154575362327816026088404511026420598818063792596753743606745384384938714921375195518139837505300219281244789243146095989366686820061707137244380491421042887892762015606421079896343923159212379153015792204335681681865242334975360655257663030252350157204304304426575100820652350593365683130579217180330326058446533339790104490113793761232281964081555861070461365539671860113146620103726346405133641090689040075399664288232077807194480238385866743586125422305709623372528899183854624271741073964118241751089292150270865962354171909585947174832629071171300551588289057663547956849039310765416105363498818844618703237298266268783826825895542258822377527897291008345115065115040280455747779603944148674385976347745829539386204998053711300320426521483044669871931622102515789406399657012006733885507534147484676917163722175620112738778210175877199092113037649189490471813327333152277442433852769495848041909763703262629378011015780350752056860277691452225239176671937023915850417555991521688217392781405171258003220433584743672369394378694769363374644419218106633182594266691163841683611671878542012054799972169992631169109306481702579133912670278029220040035803424408650654905032876731706611289796936019886049902438209561743197247520963924144436758156179279207129712140331517068762511497000002290476074205334176931947186279294678344102064393041775102303417973296813380255622191138402933667531512922188934603813374965697828843317667619429705049420804891114296812516807386503652260072155573665424793803426733615409889071077055258934629014181042822170338230297805222019541868310363637551649981564359655386357130445615719399916124560527830650499954683149543599307289610318150706135165189130071813470293743830682872679862312024408170276081549967652446561637152141134369551126386554502464836719252516493515968541469500388525371715257082188167346476482147736658379609424873845090491673502686452241742031233722007640882587197191481019708342072363922840012758233765892712106991855960723761370928656749937101411238389618445996735719460835313904051348706491488052781821482080155592846701408473708050660093354662149060837924726216670510110483109174270246031726172399196184335307435330479978436036774731152161998399781109381558473397158312427810676492473155473791535294746671601749382692843244701790604811166345495021574066180899213454961097636279453479668413117932526381824754363958885635507843051478900572152288369136631621553463274599049815790852470690727955667440269079112972918069155706895199083113561802997062578804173784684296184265531863002158560420226052004474770841620194495052595698152957296432996387881323018933629905098890739230694493279173561454723304824645664497596108536719959030076886451030126473361526155487041449067624652218918476451064143029822881366817095122063732834364409004776102903865198842020326243210767351187721247411114684852219116657499480239316931410093948012075236052161821492714287141185377981799123502578227832997791233422604903934058991940748841053048648300629838665693454820338483861948603809455974324988704505886626289817291137891833786047416306307137785506813015367331987410935396561493069174202469028779030859259186760201204293054655434168318562157470710845691384861294654165836675304890347931888645468991577206342879024658794320975568329297580328963804546562806234717730760681603430730324580775014345025918941284977306928998767334694271128934686679310261563913696799314096713871379882320537647251473236378744028893102506979912389326225009216903804031705124756357149866824611462673224069145312440751624974874732729300511941050453125596316584515734045929210432523027765064189185829492250678887295337242559399537993818090956746823759769475627688342253641244715669087113500321297716620729768147407892704349715932367581245047953055041087039528358016179748092016746283408114392536320293874444202578117008357490870368400499116951392009459068698951344281385451565117430462789971476090921505411035783044422078602655988941619342589410919531754605105245574960842061975393741770244698250855821711198037639974313582919540033960184200911004574962282015485914276881541385676463257793216372468899065553207907392392100340341202634507883529508217524178081822211837212228352412941505152606262192071704992915582077969275062821482228759867155999979235826203772259517131841360733726725917803492468915656008129590313072033488028040514157766981757990982151970499737333259186271772517580774081668759837176652689230255169154769240796615566772862137320067006324246296368579353816849317525459012201912823500255423258885328716822723353990302133865960324183476146356376013083162817029185760903830597869329047642573332664674806998093150058184644048122615507767974831666133104791153892447466759639656154219019299524419848295859239199199794705079580296695895319124938719215259787300911809852275981302515169358760433183322106976609970908811463968753406763406720082313158151106023087277297930480178989206875132299544336535265456561636377302680184356064767653919038785456614006028611552165366363721197409172540803795601006475839266352471093877561237423878278944318897959646705313921237796116450147668669809643535347097364613664029266342934220281481667033272108604911297716179758890970197170721991519720229141905522209207370634481464845682863689106174143633979630129389949474945735422565910005330427472919698086359824483846158993834808643388453889195123276543634185613386197435295442131397661134543896131822473327393457193861822960322456074032904508614102758005939314192245594513271439598316607266419248557406583820837892039108733129764757654610707040150740166198827156237955194978596105139841313523486927036595346258835705921355906173013761171583965616203013448522524594321169233208391017208680115829401391432613544797475128326855058219544836889681101934289112662859556598679339212950494613676274237535984805612343484598987703487493897185294331994283812356109476022256198775499577500079578215657975321734864312914088241848193075353633154293719747342997989228822133103304689646887611247377041186998635104133116063625097726152127794019897365146206960108042752108536306865110583918728028955119431795020990466242935090486121945557019151483200409578866004895857569190328753665548485527342627570051402206513759205498409003870525267318249411983142605744003889541745443183239272742476516536216000818554792888087712927362954849554118980196932785328267931306721958553630754046385879988508393176590723239175199106204175805756558896331841489579507964018443230337398282100629869751104736444004054518359286127801610777796751230643203725306766315226743226198703216620988653202380745260202723140643170068678848852565038076345808747693368849637805836704947554583466646011920486255408211638841939636619788837249346605766918243283509650431299929018382008439072954569186511924132282399348621284881200836130168931444435696879767625800560439244549667368229762066104001111376285558364466082630537233954004789052431393198930401718848767435999210504524871976561968615848912446775312551877038205866764786190143459537260404583475090145448588239281564263342948961160257140472271792231614109929059627737781125170915475350916911676614098432573835874511206733081065596859324780896071048910879970626498290038914594503263627426216164321581750150870529131577531198145977204612593940830082033040298115025096473879960973498998987103171053592037244747322250007871591272261943239022218139826392305328135780647919524890006192467094693370498627365349803399922649618200730709290895251401513140954245053410739946002531417107465759152309363927072884741432750494018258370077297123379064950679199615214509950680033058901817388300418522969374254933318984059827850503360950538660699351008190275280333528527350508918927153252092448074313197107872243425813475729400165309857962602756276635946851144893441271695340069739946955049904011586521485968659646591240450301901473011320525128130013404274660784417108708913190605404860294222948150217342667927065063675629522157588257150095933708256066468768667913150837131305629015947969759291464532236490364270529261015246927032430293729393017790632705566868931619009129994350310135024598880878569292989054368265124879076206831044752570348934617054999911623611443118625673130702858648910203371782008427447497597277003322286525157762323555243382872725802458005184830148239923198932933427302307724102963859508980848420596291837708258714189307002265748764807934572499263413989435100130230925758630274890140351979045844845938096214855371815913256156801898988395550978359661765110937796124776414265289938402829300077580557868663243921678093680230945396507262424989553496068894438623998355853405312927996780964912485830602929822948103594382812323212620895893172181831724492925263366805090903702051770864063168081939689542911677077677477606849497774865380034409025261892947262811013513146792220538008758946093634079650252697981775060120328184001434048508470962650386391731129567561690847738194174035142023897570571618941096236903911169935243378665311246293605122214439046231097804720344446316526784829515474252036222986620438796573745965211404167558662424802462620142256603277573096917409064270437874479538588401974466067152518330265459699301704291874712553178254603027392990907991085590623995715196563859084550268264604652252666653417328190336600704162100528802000357128868009984634357196384141968626407198961967942206288908754755689797969155669641062018709960419547241305134457547156477657562112821340211751187891020838889454573771419939508318493759382370208058724888208035596003360287092929830179600350037594412144310896062348008624936868389489512547074016131829865462848208493009082513549450210882811410888259893676479750029386732059861154613896132244366854479580866117614243647268837128545502950435115902701769124633200384035462726404555449133708060040706597368294583818431601230393293325567661513459893615675990350048463349288223255159664185912956254980787080098533529494636319874416170365969928848104457586183815070722016356092029806499221530189446698042227506482564371393083109192473914482460518870529890922702953374562867385435550155837870192349458580706531325417604581600205376867630578425098306338828233774473673589769356038176503362122941866659516300426571191480217519909607540216830411503066957358698813861432193510587560093360852994639373014239814147561718370363956231019636106754700452765814325943151836924402826821490574874923684330396926964497602545922866487832173253020781663874699371962983915615215858520308561586927554500542522676882924407910786120747096399347080175762187524922014302743975969648993092648870243601174097357622139263123420280801317784566090631222984662382541621843261747110893149301626559614179581353274954162856986096611436965122933191404770525802429621136697147942208814148661615462736003209540028193373128622050490307720912966516687160291937119113336684377391861433540409755133013981602855935623724574856631771410912900516727117169308035891125888979478948523666299472893514733490563057896279068884660622914650420602475073288082725974136223931623208767851679100412432262455077318200964326124224342745048093143294838928690231852162246997881615963577096167128884096529262256131469803566333896664270014812016524655302809396049565821304244629904474953507093663569982807946792514037740631107397093506778078545036682439403380350665271667007581051728165375732506268881619431973798908425170676073404059191216240518511946761244657352052428122903061339862548718230985551350621583817583009760328293054396549878406528614292270443963501033867971680137308861184071964638690756568505423739453543115131145378044968979091198142033687872247921793551170030270923709089740004162066272533486261932347539363904019573502135185594996974402256547139373537810951823635721662803890438915970485463079427755456455352600089828956555593020353332336936182916671573139981840792007605141534876646259250280375812900194670618497327986933501071623030412374226477949843352880619285692482118144525405933367089002899154165171836991724787309173087714701580164165988134131636030103326107177666320429880772791948258169723783313816388994528130066021271350332908985352341954754454934705365094722161291249660699976089467844596734171298891826834341227365372864072337775294521657695488107423244406612156244874528765393722589160841721382396718668567493972949706811539054024527562000900058384398580769491255777485365918131398287068010106146173151203280862833888362504833902491836199121682233585002556767707445508049932037885935459037359975040143612508742810283185747346898281186598393077950615573814973638445246064765823281050352630856537160415158095942923438549087467366987056680460527064307248211205496428022763114215019378343082199117130665604617797860988136211890311763268148514409809743080857633607869808523212130498621204818677861420599962505859606523830462634119306467211296010437746251461329063510823674560657778034081457797515843587994812951164338510051155417840176188925704025156264539862170694699925303337265978567584979335870722354366178971976766804868111008524905146092127898893169500012815652717961470482748337880862147649772280783842021835375081768084398483903724312221158853833309094425743288229714330253647075388968629247605629078127252897096304803054305154701960504661627236907926498118355796325325296889103118719701173964750446878550855081008445625347156711247864747196567374988437907790970469097685284417292977010933959783976355429147194833753674802636203866568606295608983079772783653527747068742863081662273219410753229207889822499512201518936141391010315570195290403006677818174447305702570278915554830418025395664513703019685340957139396500892457197242302692720425276329381389930833316589528638624401297309599545457636045014803283531057294740176949494023119391383815733570789943536497865476239224949662281739263186171954145847340920940993908194196819407192529497189685314053008017547413431955208472771944686792234810483003867744782422911096812965031032581601588798686661053273211139208288723032393553918530885591100635192394270717533030585341370226327348437949207329443699381190234343711902018502396415944994198818949423488698763140635543536638151314377425739870321697728635407361553320924298732313013198040747737639410031189977849841591331976220482434983409634811646993523658606043949044628952134518946288936048126394278087684120963710627237960066103009785277383999913742825505309265794712666944004513976401941156002647649639704627393831955509661960283069474250463921234645813987905906009599413957461167551475851905192233731400305201507954686814429359729610903671538314830171047870237218975744441655593818734386983239124365344554216194938541951348078583325484127577894503142676964940636178002019821780474646581577524728080059076824433790234920562610283180242808361485723418934302274982484793959319213270775654803173100357503406916025395123013946031479451828668809361127578937304493502646334943382312933641656292917859875325674854386198659201076488824997752153460129862669012298653797376369597061344491686292063129991684359762803539919890779260098729503845521823440038596395512475000248330447884124801111118795098118119840083260853702100931185442821261761773008395735552117612529427899941744403948277566038021823554820135638295108901041217551222193954534960433882994711721741507084920190780892437979294864000433962618993472445919687389107487632893286476049645929334357238143896439404604240679260512674138223248966453601091360090506475587584925708767731029428089490972793765043203104525799753653450900221806956890561282766831483570889025185022178016386717841521175536560280077933360531696222926239141471043212602013108624121947611272181737774963369890217829962461547565143812294638190099890143844293388133868998037566712019993228682649993723236689132557809930419665816511084964718782596897439203990952314456483537528060221668843013059650177266661103352070044963406578885209456618198170322113905894958770132743902404591807041958472484390047861166661925775188207704187148257538767933581235947381855688651657684984133319882396695313092956487235538952997160271579023345063337094383275924997424014471788945893369971778054447641852121113495157715866336107415767463798717147754404096697248217827243669508928937281075061165859896419001909660443536227480443322845686013106341260370043454484732044702305479858079436456418172408476449042712710411611786216762472737405865972060792888151896490940917611732301329460088612883502565043452921901324264525970474484361682682425716855826074364060069357922809775976296443139269377159025034188396886526226943169810773221378867315912182282160091242745864323207348766674750080979927972967376096852210677363637848833096941479489255472405819155221777057843830836911588572658570174106174112213465835883866332476196535850019166311151110860434603431924199702190076754682092125839382572349903795703669612150403518409337600612172726327443460996852681293892935918598203809445233451847055187728988469908839842802996983546617796950408854657705456512771142059866388199311286339879918018171344254683666589422771361901001995609138573728527385916096257140974823734864929303067128732083893251994389796968150970753576129504948777379239878208447489278017907104725888511343068972331079464668364289276310039796316547876131637897993754990416393187962379016855710806773754159048230761114031831064996293637245768886834326507347943448071455384026921565656578166474875783326379357780041669157229977943469286721609274964508198066539526218532612573600556936838045569295708260286147922084521360179857859353519162668610736580223704034924921093993696366280994385246246982289165716869072770416368705200445203150565641613182747732901515279075011215153258810145936719881061258908918455372254523511604708982283552148298657242297434497293985009974127586034195525260792732458011278146509035006034132733286738980501035314002181555572417395854981351299038437439761533476852102483425845799518933961362960130140055685199352119241951797707141123752321400965576922246138101056076894587749507044832357950289194240726987907977240876089980416913090612966597642072163988640966531096907325517317182153547299714898107807245353638008821307297972502519847416381270599195766727016931953186199804100164890474085375996808758366662703335250461463402831707512403046112312859655090340322261586263912835789773738915008857593759016216823055788485991123269021791269758859355164155922053972875611276946565372245143362474616914573042840524246850098516835764781380288567253906398291549507474945253611801469720951762636410671417981494246216198466952653489978595799206836014533722066675945153806642852057177232088751339411151633694206766634854573180832942218566914031727656373833980986057711628094849671232756729825455185804450197271483384149629555964486863388848542343486973515624110203124553783949312627215009692342843655209122053055845501721771739162015235953910364091333298348646406822448665101630267010826308222340235769481155950366388187516650484705685787343031708161158340880594195709037947254484302610220069443122999546699279736361468138585767365336734649458335719125226853516386596216285334389232617109927567790764985100862235935096639310943524116813185957970966924061164797180076723287221429221353832519358351564929746129692227160216717082584245362105211616450504428212340011243533936508800050395331919449815991969564864452975213341674002173565621630404530739565146764750560071673680174757309633807013889194349023373428295061663296800637992963150193013743349443290782080024001814771186467135570973235624688924189814855917707082792364083219061070959589346327675633627226806737738934793868865125279488081946534210342958244568895283349109138009289766305044610722005653872536062361629932033795261792051331227358598504165530962292554271805385184243195147391212171186289259095434095666880285066260056753645439283891117899030607511225156463630338436281995805269674717457327913113867664022571604109837858990832508389321159709713795195429274881578332551632607104003706477373372266156928550604389380718436127498466617943731984015067243112237166088942216250258114250169505678188716502677300394748450903988673170316510127800112927182925432120803136967143958662687679961233411005016261709948272393232646798532547592911882467866176357999997916213795590888864574099312523112145922918538780028993965460139662691263417022814184366934161322606884368848142272232001674509370117574937661912468607122873485838533721174186404468401101269697173104765483801248309767499640378571171204315601291053484062298935475580695132430000847468271563033805199300779932876771714330919096224629258913513816969689711554225310166389159938776350227747286036381943575843929301512361535394528191703755931866515231976657191915820025740539515675559538914170212911801485511772370178357674265549429033809792225755720591298963711344900140750066045587554277433351722080069035637656230383973846806156331068621416202734579349559169854495687540885072606010587446036379734700706440185523373036414592043164463230466341029942252362786875242808972056107778390544232200680748575331616456071565250625049771263443193616596548842366755648090159529940669276677476710097211514735737625133315849283715245063187214385207486842742249515832547895928110152690489991163748158411259152144263573503794505540339831975704217029430624009460809137600854939346269616072399896739597265049139431394273469223530029690831833806813040466184853062722769145600063883752751673033363151889538479996211656603247431675470578455548490077787779144622328555851581392095390048662648340506070686074003078833432208551144551963131469015330467986478209596299011032317413152820567080929354376107725777867896974803622671422884022355802546605912900685464914576517741143235403366346431297403499551244683072293871754280768343238445320113535683753616074766012950006827077342690786625576904405536329917720277562476542264190652194826799674713220728455423538658021753414780437164036790729014149817510120142723670557299393963739434454961590768387971149514798155381633045271866584648763852377175607139373816172507255581952852222035936209059549714043009355795003594584837717199944735054592330355032609412495296027612912275923445031470923361982804734433622768622622201826067324637446384275034161574585667426758876916763261953824796199649171469101188979314623466505572064041959448500828005010284436283800993980540623225526917507237530122153753650131695071519429346791407479775847613611065198734574845089151086059481914324484182324405535058628929842025682150813363246975233885907918659360696500634082770803774252972876069270818271865060884299943355888733177676094365009513012850230886859997803358688557559360745723261737975446906944532992836629281523103431380111941017063143242667094893470716273170853087840003455783233989835162963514045574926844422167258815876943583235368829130756304209950433036583628865149142604317303534640388239814736093535554699186972915655301438520993343540928646627094819522745351165924689757095791541633355067328769279672157794004314490408040421828751091959789231818134408629849611507833981007456736131893848253631321469605089006234672786395086973121554089271494181174023348792317160605203857621245943129848615371471798805449554474127222409428005390456357061865906552222991545221009640277512347117019977511647575906440959679521498090437305272230499157878636560318311691346262880890730964158609030615270819132974569825688904294694141817796122717361207532262789647185933310519052446213645655728696407445676692377826058908430356416081485331414805867779468281711767498106819162747566830010221373267922019445810478194934317319420826206215611912742110511015695544992063880796215694853480422393864034006004885250993481900798059290735051624216910117998330337776730501603448197904311560066873499124803017251231323982186306921948360513675356334395388377602659178555434854820427340273946438666642481255941894510083012880613402818598517841791595259857232517109911926631342841958168639414796933801854384276025857441511522334058354573810795392865799063139989424878803197183456624566040320381091994611720278960491128161745612847917940818417203919163334974894630269522724982302900981878094321750118162181768672120915131154683519911414106229765288974016651232473377113820433867282853271924034926224762276210744376018170740510372169825062920166057082160366357812774885369855186648708283093177860932901152613517712686821595714823876334086150615904305481763438021754592527290261990679616644274506866485296817014587894175078639688306919116364757645683373328672207959408809450000026165603973652349803183807719998002654747621296477100429364410206091171385055732631740907312725434734985951748837124373123676375685763541835200958057064845741301377344668212946284273947567139265336890101741570471221332153089827143473280820442842921594640043300643498603358151793751317993139265529565751441309568089835793720208925250062545353433028904904780425472265264872185490768632307691995551387373002427601928376118469242095597322946466785404019539622357476604023616315193641537515892954883178398223498221562726545392597171818987257711287954769743657201818917451335628087221585682351610863068561884933516272503722962286997036433450090503257039570502743893292819814516310828515321024695584232932915086364707110330743666781357046598325027857778665069130402677517649262025384876014231900420306237234523826108310709573688734903104546030590855066535415944986562429325979819641925886980233113419776165664640825896479399559988709589528599322514353139302085067511009384449179119998490361457740172852934067417796451516617929719727234116982273585081831051278513453959389655209346789301230616116368128486386158091823051810396044930397867009587789769768331140119814449856941567216131383706353671760877489080065947693721911072571597250269186441589310818806195864362768657320848514013479440288148260999709351089517841013108908525007840975307771659028510702402244574004398560625175518522622173419031809856816347148842661938985268777354870712199634289022417868147616375440967984921286780482510661278647614823425000749810986006324299351676693371509523217370237036800040108201308280221530200044864489513278243990267628621657887391298740066645081878009241875428288096629922483653418648069395687865149871645571424926642146584248862772664569181845068254563543648650897442079529463260841656599206750793779754187295044018978822817249752006359700752841328240338509377787441643096646348352016284009702960105269807818834294131026285984905508223399634960597152563554164353239612101928682059603472980287675928004440439458856001650234982960788520834692630849343400633718180249986903999758973920640809292297565553806217139516182292260291252376928787726684634938236886448772215222000547908180870123687617247959437310527675902735124089826362204311871166504471880484250391350685773302588159444883227994427097914402658190790059270517113074102817536638323769472121281118123136094614467516439539519270223292623441122613569181882850837374916079600927663883380006520521436055746040020219886546133226070977826942908692452378851911475873368142573678127439448250663237387909352121467272086934866253558214774361220613993192617716236175107513865759933193145969186694393217955040416181558887123090188835759991437016766939165465133784385416513406708388211900097507879863361152161160704624353218294661846820625138061511639040900927692773273035788954955834296401804542579116685220730825806631898258899007890324589023689935302563799855121739843445925507503768925071998433564047558774138528658672179457903163442133868560284134206101873033804712824589670737943076921816608167001748480525767516410734151362522720859184392181017734626799672730311304704060716210110704709768477318349758174754718339950811170072765913291956444019417395223176530240601121912027901646358783414469072581756632808778923277627600521532903774343184650031034882472024507489863650038744687860122173834306717728651470254986216707596954806405950596788443663775642988133719198337872389821531297364930282495190719087367539889376316913609268090432943157610799059134689662797151519445522457443154592551880631211129970138786464430572651641486426663081710708767895559219299690034245674686081442142174741234632279237195540072597536953760046525376652417796286125546231229085082387466115946231723109562360583933939473320363031199192374111445193208068985483195472881885737865500505211507721776436744716867601138368883979919336363645499582365895620367016262877941470534064358079321633227020240333887620789243350793766278905367866237564007028625902250819698400140088910599168621197934551545952122963550981565879216283820132410799430949424975759700765367614560968155806821747902790925981116440832663758172467181267473748341689991138188337524674995626089860404186293542119398768710964842727925422643906587202806569458705976643386325474630226271287944575021637939010717399987512361453824881443583235809708051713711615027474023144287193155125295117907730914629270628657958942146249534028426071644752346112004645343898482056074592885952024464851484496371193196592058763078827001354294359485644753038230691048324811316969209301277986304161014955960211011670129348463992764473043771609237813730609274117063702972507754732286702014666042459859607142990036387333273263092011897862677971502720271336547846073409591176875708287534406505978717598462196417935607789863801964396876923013219777612685919289350422223177447444551461179582195457568467142022787483370184291497013149009007967745491658292221787900897270970825945915624194220914019549666674453371932364676708907585724802374219361333401477078682091353341093260450202742077685182077822291591671085192652726091747512261016682056653457966323201274181736290524110699567106489091674756307292404331158610622386912851322105115175930563748837016698500255082328267197634508250545844534978888875212823439602027901010224560076529043474945780899834482283804163063168030373217093460663416848884113348034207956992056715321479061285860179839314571245834513908953599277322684163734114852027706589330239145567282688066750492511532668825667372178945603848098119235619282407396094621732937964622942081122741264528140334215909239072448900342906322630165690200253484950363558271392180483334292795409710570356888046803990312794255413506255046633386514643038228477961398426753396364666137315601175215581367323329900719772763419841480841055215482206053592448418996391054142522342388546282937475781788548023682666785384384528043098579093737883455033411921442472473855328079755438065521467779984448460233913313389590897963983710949832077111049784379522057686714963215133784244072232792443549401366534550356188546365679511938154092312436876846871031531547444083087388351746662531691132773722290983266485290923119692278401475664518001648397365272906375837444290827299541644996308224625027566078832985976531336783872200267353810550060721467259611173957540558001695709312551717555209763405606278028762045558648439771997289679543902890757899465541096094828329843223325760062199276772426413702538738730991270393948031459655689230107369987484540887552291709889265792612070256186745920637127665686052445664941474149154162322695695240614084239711668358955306957202219732881445480002676270226260025515465252939172429004668933866792274093867882883670417718533779470762921448024505410373549785214017012076270029298122103064193037075805439967274510032833522072894375986601227651252936636948445791925532991101439712859527633533989481242353467930720988400065481769941594331168894308913506095286119175311820338782539968834929982577592508723993140863509331564796718113910385514473049894754357752780197508694186972328493070444507761658223692900562497649362032106254568227842300670125130874946448186371356013591967298059147635208086354489638375014964753824605048339141393223949937631165675144907706470634632619944786029860155446831981353195521734854458522156011507859306642505298852306611985058887128132511196191273648511671613621097916530101433603675428721486802316379405073888387312302372988868791871743898624040257485531688854030894778809088207281601749072767303778106507811374659569062386867852748439780731887182991418705593719919802897944592174578105655759201759840210775293932183605473469923195206634590301871520284030021303823245728331988217452360893206870544900321031878092179716348091425432746687550298861866676277601276355579940709411195663242771942983669510723529782905122278114802746464834837343543637712079324490244606352939806166203933897228547321579364977612384301553355142352722846442804417498675390368420792689643606310942386837111492963336369973496542351372752610864060318464264170601423977119459451184994997430768796389501481938286017173326566843688550830745548591017901289340967824675263786806296202753281619719025570022000939262009877394891633115785272680101873608166124442981102065648711105603417442471703287629250700618438566899791519261788885119187748853260662808878770897155353419335022964211948902274425149045278723085153050692220722119292605961812296880865657133657299733869769015659661886510137235720416127720862238308708750798111161498752282689862638077301395515806637677174689785491334333088246115353058126837834413793703378689577068064955409767658249612413615492863305171854461567315090114797591544632270342152078566063077213560077303612510975075343063133674110828352395670445111362055507254603437388163312598217707288919950236875945814343804311319942025494623406241085092675353573960452847649962264461928831284673494776428656880050082250988308589958642240109946729718261400806136660228032593453024799134290410537885766351718027788765272578703959876478083329396469752639221464869033800076937418269249352236617942627881117916946365639276784468160350992728290739925118510463783496782300868105404639853035051971388237751478071517619156633139366583829644251813351163282815211920856888769268504172773515853352043408831934637380068131783313665791328831619239836615763912762208599706179424466205861094473641849787198635352461012552947704270419305577430020798175542924990415259252603078933469507998030528626335103874425798430240433767137964409063397313501135347212195897177316836648282507125052285024339681765291963123544192649493624146738096210579911135807996425102453581862943194684581940561503244956516149821547346870246548050842155729632588832274271446760968331918252223984395019005366830396881026057499854842376653669441310481043834966009053216724159595148514208843330240351240113728980630514640404677700153289981505370776758140731160009294283844024892783062642102827954952269215083421860775378756544732076229251689312037922404174291796330149129576243382029127431866991061782920128730648289818498921888767778193823504593900661634758638069967076214358145848763116587643786383295029103153123595876779761297291065821628388329270222478949028870361450399229998134023550200950753001089733902009688854337299003018669866688437715666133962726084973990896940222805964742122840149176690094900555381950388552086012308757538593559287430580142088407648556700576465219633153823934290652370487110059051324409722415900894525716047902947440170832266611770299865670783308934739399762500145797325642525214704526941611787311630439261398213181042424552137477329619908568012744873200080639452531419466886770529136511790313302423924768741401154040371432822927123807286142775978072539670584581403251901424890556773415012219726216055206622350512182768522912261249919068018511668424231887746190126824733247799274534766152869749031627638682058566688301945074986711925748604151816670378725404805581949220576338497204464676521687160464724252843691399255211099808525818290990890662593332606502920410538562245587015455755879319183633319107806956893347554826874370057234143839723193969006420138328749192200824562866348392363223726626881610561080150067067383819137036044051174900191515315006693011843323616084037525143616602092831156568385788454529057525268113749254463556902077159266691795250970330984194931944722370722346712251912852935440025984572480236481281408164568470265581075296378256874136154231883591857946740612646982014737650964557217597074752203962863670279207887467768821483341042875021824117659036997649150457858211945240586560678458129767571833656208957145319806640598741095684287200969731507464905200311645994261908273231472964185170137560264434101954844744224588629174379519196191496369396593873683455178992146548323862375309435438434241735349841919585462041776689522620936642464135068633776119424198559268875081084899311801170973632974725196840471653055688523862592814531401877767557545615227045848190901939235139021786438964816992109872889781911768663893377086077455818453945232677013061569318736277723957333672688567139885368693127150245381091449974777920573960612203910103112203483787237873331100049926791187109251781529254733586179663946002685914716201301261774481059002474530981769677878835656107613447742019237167882532241477201360153082998728059412631376983770411661139178594529899320293621285236947908760277016845280093316322918947794114611093458572691346707814194487542047121845970231506920542593142873452707776807943772558084180747215463284052499537753638191353120109507427630050207828684432518131589937437070409468463517771098397846381416580282127236198788360120568387971243599362809028435636583095572756864697314044535151879138494421309177054982560997975181314692356035980395513491264675203409337409625533014990294486894805560429457431181831507718917346574036871009833539610408454149595904907446635620470668309198367637189902065313836345762661006217838522686560042549940190764054231138558633965661665476996978934129259054863108600202166682118390619650364994766968693989225973042890942464210011872738110998714042139767653619232455725353918616841380540249932267773017771854114129868865804407976975186937870690553226115902595186897071387162371139929366604184437212106481964880470992298426749255241173802457608623442869295027201802578215733424135665220216292723056762645755286690563767835290423222391142679063827120182107627620849824153284686225467480915515574117903315713950519360231685459766356392706919586979396551471401219635957410469040797763259093908693928677994455593307406842241195702858666287228559685733243512746867285028345548568539126027717466124429582422374816489664467650141669906761784348957919440692048920065530497062509693356604096419001365926931729600552251494374054466653788665154875481143795691566852807129749193610597678629325996463326051857125363441541045744958148826903214542040292606375026382968448701304300853105533284141012283546161008296501219065416124898622877937922719050855523337837833365421298294674640775630498638448152208692047292470463520363856114549887827257073382786230423977854717477102059756019477849189548778512674619917726453604382234699377942024898452024957076763983317916885584375257168430831627036001796101893353474344225300166169337120171010534280421489091954766027779940745791631450350262602827846257441118299591493266591915717036537969359054966545108290059562917396661744753877465596317589452249183349708565174429938538829475393336082122928853543350436477750241399175045251543148854845408532710387725318878640557465449675360774999366918322870946945528623507401129960206227518459066751897999815946081066395975272579792927651204813434563685791274689411676636784413608231295857969005233501216820176194307927103050272250370467690677893566753584477642600164299373223382617527874957876898624820704230611970601595437986091741425514947224530424994711606537680341150408278740146171786558898515004169990640714701999505792811674881159863641076745019895054332820398461179276927819755244217724366853927951665111176327980871735366212363712994714252666334236542838578983245818154010570654417086530077879496131368165579710070752313265604314838108664718407955449706513246047217609652516552234366691091670568849139399996140700910173169309141945031252373722473440143186595658400632722135712375266671850336416811144311019565542702578033152167682052240119370657459459083023964353848218974607683672310128185001659288934338961782889442257505564276153217335440855689247408043744232041569959464712979679967633572535228757171179215591639063854081989831969997136640196107992291855354034570288035918591280200933588357705079747082388956136418160754251523426327961070811473256077007913636248802319958562315634387972692832304704291157140846946511718168442233129771022870559354783927411966447467329879124617238067562352002245118987003192964466213913527528380618203429540215610489375428082491882219716677976670331727814461709094645674585019699962776251198051524221843976460661519166751282736886973594848263897134688873754654198480004659482594100557854497269366518841353605081500136581830854285520744053118382152735748635556716761009026757578794401429965591317224226305362642438727269347237186399796182893735133822513809613880742220731292116805601913784733626756427501812805349610579718139159279070283213770699939682184801123537512450481805726261361274756506617264455525094183141344107047568032374678161377503787220454784614485874525820448853301374108584008227016009935091652781033005062071731813941438881571292945823608545677299371605943262393770973173570959643371902978390917488643149893145490345747766327961497793408296213424002810720347297106098554115929860267579913544749263382484622506607812529419645613950276881757065724129356233517911086250935495642504556525905372610584855392957196902216877896155034976990514425817797612261597272978177200737905107783840995024500090839816157452348623374955104238126375397070198031406863378589778511161572645595597635439033902838962798177701979378252857077431730876614374126140615462771876141744824177102329968367015146485592620015851487201202277105473136513695169655987341675170869876462435381568455735068134035630197477380228366323909727906187599443306562054921848755867396783814526646563577012491589635373374769465404870504826576237691656085027659413284602347512154515741997653464439261247218920014571122475571903193822554780292337409278357507521068350548170897092713826279038038647426008845387305811635549337110753623470637195672526383184108591358754764176909874562967716943629269812680791045964634965195754720585349335058585136776437491304350431255480038365865125004731826089126704630314987714741295773089186043012468472815993002138860067868019746188868539663376846358481416205065498997045642345519704000426248352106811565959926859852833825417796865427167332534303485120870812725873291388149325459841301725852906808635918026169397850790807762794172774170269092564100399003119367042008909903945875390412810323119606444646773532061792825177315150047437071607476108007802380129243042161912188530383532022475207477615908292397234551788028660224387877585050559462562136413931645382343438635827838344084160998684908928264451996883402775170565738322219347822378973263648551117732608611380526387144959045116967279869966755367073679010562637735960036285701151143693250570469253035734735967686742658208680338290283091349707065013399250979914743248851364490470629363342374926150266037548973483113534468676212635113209236493982392044298770701899294963805963138081591298292761967254582497850975641798553427472289387082066297866377749645328587545940632353043233319598680143483536810286105343721743171148018483845231475438873679261952872994533942222919108165017148585461942193468600852003043025941228201948728438543181460415707432730883884218554469740897966268477534864045782393865223058448493641880692289066104315450973708104680575890710613609766378541994726085330680177254979187623734183661256038732904173434037560213593620559754767235513669292640407221111523936488826062372526140646115815604117011590080226414491747287678740573164801906725695431680571390153234830228396370938004755021979337802652902614742708719865341073185939067080589411760301444161523498640497276259040461514788045902081933517648168886851920299644071380202832182459708271489262305217361670764454063399523846723529468424794617610812437960954962841894616061252024057911310806765178093014251138081348801872106453024788356280497207299538205810599893565913368266557749407188195018002683189811266974911572958232783830726287089213773770136115230986719494822802632425354187046523984691516547458211878425293478392575129113959199599279346519183381418631196555189617700126289119016968734918054325028818062852903140383684174995844057977310071712705613383074823184449984229107287044081006350897493289895955350969742114425439614026952838216531405701768320252929841003574386056625142209525806235454494458061727292082375273882917810114062617725993346873305321498292344486573461646948875191784832159535796492081928053067596672456607066944477282854215610245083135334394285640316129621237580932213544364026304724576003084514520877104928420224743957167268662302490023105937218770662280695217872880393060673589945280214880547531658238686962656714741065956961317855028750800992948143295458799988564642612846515271157366955716175662459615761570878260661271294702561631678651803782100440129151818601282103570038672443899991654148328955713648091465506081498320473132783545558122379354833323545496685710768433958660490510715122102819406599869676142885480621672558736345669266319613868121443977573184208753659040822594583530577136871930249832254674002803952300135448971352938372416464558387125687966196029146320602940479078112418741016767628579865542018251237702812572970499451092923861665441432079599375348125842301099875426972037831656897669114116961782008094971689196508429485392060086814193006376973917890719421036586708272827583336626983445549165241439375692617159090966146884525314181429118651423058224350256461146928894642425493331890886757947128345814227605094719963839930119661983880216590256189169579383868260951894497527332165591779023672995731513423380554891431904244819176999435668503674132466609974291790013558910416624879649856606761153141567511912505743536178616299381277748881884303123896216089797500094274005362699216013841694583717431021945584354404351509951856751714969117791161127016675893813039312129253150235979035796574515763029896434764306419224585343891536524733848351436794653761617023603359657842327760742099067780858400962554980877725427819148475419890893691268240340881862672682132128722430605976172833506708094852992382362402358432592878903679423186571815100535751462150521260798455234982668856570334848331861257546001711372963508886239133134602709670661887523520292399028151682966810204715164468066196598840268519408870886589811415440056832370516108285214706523989497388233481979364741709155111886662623714178723088127854455214438569425739422816040256732220976521368068479326924767702188711517854577197804026123940576904154016442672432287108590143230949382777029790167159828673736600091699397150731857256992926375233454263793103185235175240494344879918203748153845888099754123797034634745523366494649844403816047677581392271342814388318987185141465645201761003709608341677325535518780236403088699786588321756661529920196440165778138681510755331542756479624031760665730215420503576360183652486205120912358164745967132238414888608154992793181089897818679335235633210311349440052376203655822559212324067160715879352804569133409248655605670642198293179872768134556784467190719871129268089329833792656716453221315561308619260436908444292082059484143377274206639417029894663033869696867193112792129652755975136544559394508753259503323825987785292233518111258664688730938335729002623697495222845390275436593001355229333099092109090598445808707555960791973173669423813747810182137813854231911790465596935285940118078670797688638311884409991709849792294035295498931331709403748613519410725504455879274065393184017624883592059521655040736371753906893951089638224083560272922794843006583498941748620926808439200348129720838856435696003555736217551272432840234701340726365080621813767467421736454587388708329914684533079538459461207933805356928459014537723761774815030055330991102219242607351128379164127104033333915600337271719888992822605993957690569395819067444627966047277135489084496691949896833314475367041757701019903503286803868516100229388635559175171043237445579046440192346305299001893676928891314819173072391735420676562956468144386191582132236563945674853063354215072228049168435304987242193334876197202256522387630510673830159141434377626017978253618137105048749228142954928341105500838948024523675945260725890363803255341586222200451309053631636152804262589091529839634803880105098457263714968536570717697601522743642117195706694727436684378529140210717210147052561466359810239769409963404767674951181839629748701837360175916266493285872764322777726297589095729068276473985245081201349032739297015549011871473346527585525461586399465356675305950918373162558230426565771629322401931010782931318539770493511190144493810325626555369234995942340838584299287857877448032202554601301535447391037229746543740655707068606224533251736498339581257136362904096464347165054068650440349693378387406212896067357655049634377806216288525799618685124149418703276274959398435145607626057161883492216869708789667002151166447541403439601300961047499745207998428249639614075226874546665997933152472692571695276987788011180994249888165400897029627544986103250614414349242433252734455261713905037920500222868946292276210544678401502828942102712172819497788423750208438343172766604965117483619983958832359127673502409734734478044324981965441762381506422943780142610109642222567931566922550416819362706470078086161263458214184036637485867491540652859266760354777503365967057652631339124559729914515663634865309503341518124639846525067597083217573609742890509111806069483570728027135435523255804424258461021779001244281734838511832638377460660368783766136799886684415972181774757745399002067547088343398272982799669957962083351192320909638137113390924711046264740022999366083123151229000134815676222400276271356925389528982009414321994970759500330052783065901070129358007264082820092590708683813960022258243690734515965135583343525236162833248416731327450643878748997714967303602426153702927416816385114752425148709725024850607970720252597436178421165956467517993372602559005009948094249516112386240534261166227296472031017222120188635770431534488824468845684847332165530983061454307437397570252593552520415511519561173259739221778224020656822895709021931158028449630709134920285475091137361652540070056109484358643362231606568249080891281076427913517386618966206261974501246913684981117136372380948527699118236358677197756296508921902355732959704252354629603688380231901268460415380843772543322382670022032437336447259066236120023146168522670367417692735356034614396479862276319708211610522900934570668333399714281715740355827212141051413990668966512749702856742241469931397896255884908401106524221941262920731647392306898800422180882092036126329856358664860994740938121386054903052971125170030895096966695380701001955835505068824323393254261255527357821213704317654521539667112360822288263668588726268765430856169123025666453070203842532343250974362845808295870154279475583251578790171942552022882514080792890925619857821861518088156288737077408790846987370544487105401734037607551294139677647651074382464485837957895483171543126267403829645341119736455544209474858940153450841008097383162620932499433566112647914766519508264612053493576576919805457115672012110621685311879997337625902085010523977707560008732779689470369286531465915175876981723463494793336375890073111799812612629387134156342269090159028133000694944721929030801172760156879937343256304450379671288699294328316291184733961031663020488555430711020075356546744953705414415547361724088394972414015132221554404001682049451472879068561130717817960755075039192287399845081999416759166243576118773613495828816555849115823082732890108302667431463501114561898062460072772993918316285656823834084405565827021626489195069861949987777208758015566015175121488942338914236482627118225491751244714199718645061447100311781602056581434170619395103566872167888717857012575137744019268104293052275066749493069658740095658133342775215242582240310516904963526437083004265123526582034339644755989473076007329936137121132928205038220638626955498851818118367133647609783933560317844127416490486451775118132367027113074795669838416393868376901182264937985913461506791901022951284306247648892278102162268070530180553027971457424463337875055791278119140459180215345399820588589917340909120055339647474168636339966760728113614624579956843081866103866494282058166611343000233633250911431067701011585824045975011902917460578425045103926527912143396135679084326802422493848322174068026372304258957134083975300373327721962337716175584983259720374322461887411670360909524577793206699995607414892654342825533267161839979423500608876778636758705556674869937654334766855839710696766701516677644484439647261312796927378350523399025133080772661985076452637669965408762675664529517262021742307536635937192882772174712265288208785427851794827180080803797228970032980791846851060467063621854410701824953843929821073262350507183655213021450172788572887363973961402022226640673963713341908237880029368907651050355615196946767523750014757487821557216116423605734250312304683992094974387332307771081991124291072399442729544631875296451705728580274050577683021504432244441370836472686009833555836055838994345713718533931689898927441746652538333948491130701409516138450062427724883949930591124579358392137289244735285874527768990744580939070439877529561981667377091646297781746435914886936977282110164936927962061361726758381287544336532588602586292658224962029491820837600008788473912778846049385954182730378314218143037900688969877274434833481254381002976199030726146347361366405307872630756939935560719918379664008141939162521029939609861932004388044816521712313523061919799594654349396969911701469168049008230854835823638134845683998314844787618412313458124942147110993880987908860905484546602163390195165760827954630626010071978467016101497243130170815036276345494802385869286053471594087114170540900126315313308274641773254747903301807634590487605581527312319209404984372900544735772372315945956337613252463741799789188288593811775183460759136877299483230396476272038258515683461389389396187645411577075472229131402810763812714131987618742653053420879704910890777771871010672072018475408540431567012982987018060500642435550366439650249818936959833446510459158417992588094670331384157758935348099707510689358187733592498754519082492532019069691137956220639380117441778536281464079292887095244241874992251660499304188589349236039148096861522356437358523339889681950236461234235522178827789288165051575909404009022568846406818161726917799343629261896037990579240137641950930960068135239623044694362048301378325159927427263954676361251861928887377102692513751978392837920573289179536106277180476323341630060388690729117202402230610125476961620856981929950827435360453966094437410026431989688947292218952808724665974260395171860012784060772204897210566711864055242958456069542982187629637415465394004464192711574766956979797012338186893396629271593920667688698768511213970769900170499922025649077205876341373776933811781299242505856719300344154039067623019547266954624716654119135830163843174944810271932926042470381809856355335956250867172366924914655938505759974353940274742957419188604464587541037968959367733777321609231925538628394961697625424186365660005268744246086840649762936856231912202794814598827537225949899376734660917496278995384307753004829905515722225388271279480971961433232073202219427011893558169149804841393474217645764875182157119117335247208546815046216151660448795306927047818784125075740484303336215219229096558503433482698776558884063733014474942091031998583956328653872887310386805769989705306969201228211805511200052113390963985820718064200427809346817273959440287002228671908253105676615975670416973790417242475758770331697864736459035927558612158203400453297287181857578319939786402018113486755411702639580418868645892093416768967908401059162686736179029364420970840092702395586345405801193825858129243225879841938832727045506362044017438668358789540963412406617695509831398843729663835642331223724731943254483482209663059582163190850249923328354794355556653335272367134140854908913853995631905094811532092389925308741283628700876216900806529091599789605223597810001859945478968655321418888416008198266155720836447868190272360426101641535077957782514782743663910153257366900847266210973880142903234524254236193027037031851262168698881246347149094175420233192640530691543763186118352306789884519760191457433503898987970796729662333003599681486513684316285583208216140918144863926542091794503450214972709177788971382784532233387236897313046173981736675600342392039434632428980421151992116651472758904787184895842897629413547654266091182197096662958216329561444260204591382997933751491269781117564922433813635041425748216113051998408123487763453166583796402975150628983096264448816591523420095317138412176467912872562256152553315921378441639533025893251834566870349494616172204764179537395250626250255835848255195300365487848320720847635151472521694435833115959397376770764732952391222287050334034410552867329339083313901945324736270845942710757885223519915538670235615338276676744326560930929672988206842600716308865072097945538508940778063298404544709271854587208044068389207675780553918521002622537356941323569765342197701813811424956471289130822873344565369095934060588458132464961819913138237898346076488875614872106702927769843929192325671282319747839383752305066042149698307565838556899616647219802832907455587274865235266951962138862628296874507588419491375956664928307467188782173068395755881666377211587718720242091462598312274794055567286382759888784741016440859386236852436258738208372682232240331184057995360696253230458073610421591790018018407439930710724195022311210270876895289297168805477403190325310481634172915378301611506441845291104145904440399125950690914381464471328576158731577154634026087583756500445396434473985203543741025677790436386304684970339655406649446391895784251877645215596732930296226903510923444804887267444542714976927026007383724398829563369734463361688220301633171453301777381072531207292290575478862735554932123316648388425188608103870847297811939370990571300823680688025662638062805825320526086303508250597859164060752169479846611092598825437548523040058754498015467394409600053061687261300889255899893891891733757459854171160442605250110411874983576264053806262357798239612474281024086695738171418218930960172859567715920898857984285328799768008211949071617204393618196805317958081931817053400565453698811369074188407296077630676430588368202418850934315767626990399161839578392566006854042465412948563800469020386162157902982010086218917726720551108899458237161620437273240271089649886928069070692516084341724365342105151013505652273548330165405155149766803186724138560474999194768447146447409512999384958765319041323777155347264663015345975186592400486640253191999801343957752217246888375425418933269053538926136987735039566287219961051866253907181766226110573535018822055572542067163634782593371128491670807310626151125591100977499070039885406257065958907193428076165444400287091316757793228922107165253669121944197601998054448720684540605313530075565122359041198895595393871276544813769236568286566214282906699874716303814977675808374872977181145701781911232994264653299213218329221231898644296443635523048869154248676833657966714868943323061989438084798955503579428281292687589619609131190080948926703990257208584744736224934010983242718074037809501542063056222019465839176892454820291068805007617384591352702113844469128048148176570196367106971991228133547454090384870678429739694974454493786752894753656575647008008323374190549190608590059511252448869584010475702534999905632204451328374245600206434799203133845688467317026501028201181888823049645338074037055928456060549414856283630794228104561487858951051009844183106482192309132122671227605882616366612110463258603366513087457348924664841594099897630815545439819877462002691582140788069532401859713017126172249030402512925035663669924065996638569925021616474391863941936382072026336736841482539204816386294192251520310911606943726380636857826308876092293646615433544076805455248052072507405372938403862110171152981573517978663286772754337443184551906570575896360518362661691580186942756414209273778187950632539426750489834264980688367802325687666285748293720656774074070850939840975324388491004400759500391756714366932438340789371803358074150744257154275600940091462682497585292959217105494410721585823999884004247090110854491777277114390642109191680622627283688905909280776946587216384041847675308595358941099016132760314166967394758241692999146467693736208264172580926984663171808670711219058575764134211532206241315890844112778898136107498994191691905317560904395339758313875438881245045964219914776426086972114995445145681986742402869355786403061554043879659009495736640047490906775101998868411822368871452275523508115370377421191211718094162834719532520892312438921265522161794488230980762180855949784983003604470158616711960162623188662464594338361173604855128143814565671385552361189656852316786577691239611367031946772675274293090138644137671060888430800363776910577727709942146418032653525822452717695928282878219876467912494528694056149240260945390641128644720766696824796535255681503667836018488120169381049236957556328322788436327402682683745628554866364934368148505047199804396564733530335208178514496506360189046109402733221999295946815723768143197872936984589708048490153350801226161974517174319490197846362761512666522747220737160497338217445749509436363926016469207284424620025295943301472752711048393884552591334228912777440088038352422775033974568734840065749378796477552827209505439346213169378580311457929906724238618563171827807518977366487172738716570045720826716589974324946167985711595247077157075259744323443246094128327386253622150973268292367065229256002250151643527392951003948605039271349974135389218309585814075797005231280708489728019206892472036281575523901000779695377720744995003501591883092406631542218751895473900803304881811910799440667659134477884469210817177354769219719916761067406131653852384416034941258259020203227670918203133488269387975293353224694554832312670822846881683735887020105279823868483793772324056946669261472632160938202454473484314709073642935946706459450511831185934848949245379442973073457327204249718214269029519481321360276974257604956876671897169717681681561178575896953562081898157312739078585105043484520909983922273120799275910447749098565090482806771206905320080646931714548714638196618685708502161872677961058248829984511157279991138771411511302927523779441778803304760995637157983342195936421254890883779888117707332606867337118906255377641058124569401655301734310387428813139190315726889449391235904120107864464518111068471565769862052913114492913756357878025917058297768341658039301737061233167647204501122723983450167872699103768156557012371689162964465261102928733653490222241744963796290652263711250735763859526533786887503560175904370665576191602489662686829992657869506861381320337502406405415090943415874573453205202351130818003451925373726883161141532368399189332113703464462456325132405226040324099715247886229530432466326191864328893820489750865314284679924293689954673984193262134467383556489338857120970021005332914996085779998097042427046840819500781394074004117465168393059884985164316057601361609791602364288922144182310061021567930613938217295054036892068676715781178049359245363086193132497205484067755857966136762812962290096640415769225669248309041659044527940558392132176536964791182950014997034811232392110622623369258822988227986711673018159127201094781437503026843370069232982052089014937239123079418775819207796915978885105128598221941523488763701764705683213593417984851398828036137676239226324293167259891254239709550416059610309913465846024857670215390847189317364004892386312084023101115049980680096223862448746574595794637715318219631143903198670708493662833229794706095391345517097550605830496276417385651093593587864754946205247000912698082856532410702849826843020503296235077087251457107803833768097961288180162357297900359408332992442035767790235599581610523205845403972935814643003719536614121082167836190219176649153180155737067116826697287883088728170324258038059989683511954715251339413690275968926563685380975728130758481955664773354844060241382974385361990031692377376244747743321992632743653393068284101112283160332931585999751145067053228158888909970145095006420330198968294477786655429509277230903308031343471048281541196826816089591988671087808224368623001518902853464577135160472030233002135166116620414138065771866799698365303889848192232594941255200684240643702462406324167143298672511957292200257978583525528922969541336251028474566833744394391130641809864516600284771023129634427563150692831490846209565296396943064396972469603921256638024027955643101394900233532139113447564082561269241782524985019416401899945142241584327881878633788788007561830062905200926885624431230806534971414250072889594591955065648413123778560113860779705718584239733395705356571974581269655825846215175655239874293675715074359687153147290853072763934949306215953964354397729357515940511696456924122621599874381386834321847119123619863021082459607749441743803208066929059995726764896750602625125029972771777326955957376058940352559116479019568440807420600246779753582921310267945274836454403225436906230753795453560194645700969031973389452117729118516616962512659776375670768961503104830221657241477670501209536626503615781934908556666821336853937476417422083398077321124022138839275765955287504591204585636507497046772596871453725377102363055191274829711995482525458723712879307171633612539415270848903531975160520405303354690771856245221658311012751813973862112474551761243720727314059330251624447267956198985492383825526410164434787590307096964524495334828472794373062709507328160541079550924967894946109067387565123082030103274958132201101532572809132840239141821125752669374869637502955676222361986113954041068409570210108964360340601482101785060764091465171824170166474931136562152404399443584044911712033732781562481946436081582780517237905612854942053857905963913063764399563086732730589302832703034084494517320063910107517233349925191248462997493319410249875364299871407064299881795313097281521927811780776710509903784214623714943183770664766058154779143501879473910509537070627344790300785035703697369492668484786519578839260213257413562523107908994447718714124057923481071573385868734145127547033555464344049844025950057513640533187084420847465476404424386696040393845555540091037571801375098233475470143258603835281265960001438280950512129058763858523125964710266846542898314376787729979286135728890525009880187470129322333422553049620685961974834295117930289120056563596271486982541315138763129289569523783009973017007915784794471708462510199245097514434737525217493138674620190025979196554627952086482510353689197452031157816692122924505236940226485391061061008969520222292397628944758999841230105731846706541116882034264412169586951666479159200317680699786491066706353928420346851345183206094671156225457097153476050822762281560177659230044606982512812710531974095864251966168619493959846802609956630658991337690215186322568198818104319272560222751089765844326427280429209064424487640788625264101099567926506469581679120292133738651230455573366382119414070114193849616820944894757623742222811888867239430529569684473878973792975834376124434081902409772068348409127891589236885218030551233402275638211375568948415169147899517688347697286544911006032486534165149761864062061724519829293323461920341112724237701903994316350775013899967362291896681717271011083174613306577703313737732278370998462664118509349787687999834645982507088406621161728895274311762105264673951355279306294137720020800629156815848965436750804571403280319705747684504611405404001571261900068331977169698259253118089841942822083768108649158256036912931735072819480263729339428697597520858853470892094293282533489007389504891537998157871019724254892549121535103064926569259127845632185235139770358076905880919476545000192529575954567805772316335100582446501822029310811428774562930088947103445360842370588870748765963169550080683489406523945494052902565078415464929189090585340407630617049876828486519385678554344109613474168443424753753865140777226418845586812798991652769639311899025245326521254361992652021782931602030824771235145572035666282503498671708256482828976698336936774212630180165225977829608459784464199377896546177884997767952965318063847083367184719253638401313325833051722503953914223985531862685235628654087496840011725711780304247259410977498894247809457798366144002134790081211097099279021592005653166996295938751442990663913999073846440190144221907953718665906480761438096666508530867044402979942725733118289450065352633145245371461881192636674291254361229118002515617317628384147428903163846117338235088536065549117841909014660315026597171595091387257073242911291165322828123965200944419564784687919288182688305168335791648585982835239354027591479120310330527666014703273427713360856483842512161585192152440588712359441312081405737341093566247730365327931100056083793215655161862249660375750378812033288524975750227954268215507029855320499471068304119409577173406442845256255628495970674481957264419895464957571126117375829387324455470540510795214918077354281335815170418112177651012317831523951783714379763913231826888085951613492875061785202350459401968956419131503035099415697811908767985948997104369031086417444121713944185786298254862908315207643293645124814104646475867818395987965491185397715059020884218206168644279679333325852763305511192091743309225642181092656419825972517376110599271092571871485867008716925806103274830299000052576750610914637545992574492814838022329994785233262755080760106861655188440352744957293809878742013068793515201445940718709305062550831513681040373993440881548713769647321281053803660283007005220596966632594535021516397980433223607975791101520877704658283006461524807714795688846585195364373569942285916527911555933230302760340924712776231620367671531817640415848653943239397216573518289497050421399172376430477736574823663344340368227812948729002597759334998793287250501721529066282947313548692790541464749461511568578307958930184377395290070620572982065450831037708462569200121954101347364726266857074352666581423086346048185364650580185997458443352159505069291624408283539762635880897965345143542614466000781271313468294152947307548830878298920896833967983471150363096546436679217814017646752315209780743852576195062125870167550995139887969772168126530011115328592269123743285642326139836649206139325178522177377178329106748969392028244724111131461823497927395165935599058324502971698628334807820080881737231440282018004783576254836668338197527619469488592641816582450040733627899164076601770056974240515309928765436523443149126058702293926357573264416528159695478833646665064614176104577080015188472678647318574240696863270548894473304304130681699167018938197786926585812603284771644156639946993495260101409653526507874375759416422059174890641528304539048318365111657543814798373916627876406878868025775206815727777494724213175903516700793774801858769683921789151755686645403240586030931173881046584893893125823705401221985143499382707811969576404708909384783058652552923086490915835696223279710587054480438906655924847160501248090004204400042047177727595208414789338219093671587537219123502717533285420855167756075561254390047028898996851727241523096715393272112634621552699552564264648480869426249221993371610478096795847542028521078610122861812073025341142777452629672706538716761167480302482829281108879006077292111624893497595078037221106997832842838156112309841620296769221024392521734670646919193997543457031794750478441371767154065520999389965277307419218612754531466174799340245732768640709336775002875385549662197080468165989820547312137078277858787764233299632465375464436086492064469188210072869168982618056368232259743268188844080478875008347852561054203580652208820016281812607885115320396132096593745237819929504971571135515303119977741936337494971179870440369689002400029129468851616532767880309249182859191533515148044909886284893533986240236595733532429322470877401168880671489802015037662395109621139884408633255191453998629988791792627074511920753639313711196162014106692289219691239915383803722155664891430607042066967173370459241398825711641133086670643476583468154293379594255816687868286966262619917903609153544521694997262717054926175842258224223201996357352682704620686327522067549775405913799697397069982338075266029742153458453770509168417298747452339898881134764256022246945102267234789048147771979981465013881358317656251034911192372704045831547436935803615648759632662365334232683547246386901051549518425557345759337204099639157818274190689016712980038955088461976051818730975414486175525170603594996243159969858314353192544573249968440736579080924174209116919564547283851215681124510295208725908392074732370190851562516699020411019916047680878933302447054950947932698838936191844805529803026502030742267444604111987872661070494672965700426375266600906686085520757032660100555007286543069098527765415563031485484353659013445041302076809893073592996936421758309757733748501190625894148081880402059685119444900281288865687972404678346899575999699904746877709448837258445925511784827118780147440936715401919154165227755317507624049438238468650755195729034060101193534792175827886691225828887429201744002388903208669398943478025779559172708301932338015272296450990289677366163956364583282913749849231245293806759625604974758099933105789808840269439388623263781677796535235104250837238880495642419558164163983939897198649949607948276245820001125102486159588947701924547829058023465152554023533107103151666187981687032573996730829617435645178760889758303519799417586447607711019170980480770627846622231544798686641254042636246611133248576188790166106680157786802967741354239426721532034821364035071017139888248630911104149422044941604400400916408312723426202870252993197565160164396921784982444587851211802249091641013026605675050644718397561513481694086105557182478798268160315696499364138303143329394655682641806181945852296583775664374691362777038926761074136433293096180819085480447060160646229837938971075755477444441099919512749963388826871411406759731740612280610545906087543149719544785193324959809308248710076343204723498482884215676070256421419895577314495343580698179015071913092141888672415166921034287704891488111963311412530529513421001854454774912425180897557787815451008036872725042417963593450801347109346916810801486537973014366311950311155313693596953929794862190103768673276456930842528415206090593494493443718801886346566595405536377990895915986356373548015624772291940551221747258781067862642155508753380669293145196762829201668934378161651603441904171038231490562336757133059841127022422717553118165637266105417103378633738510295208898185139543576203315006099396417790615262511170514378817410202068619359128899171216392010091009852967086444914185744788191590017087958347410794662812095817956095797663566004263387996047105790879808948891144988632629619812192509381881911829605906929877707773951720895400771741042709242567453631924511758047319793075825927463066396070214874000119909739192285884424076198243558633680809870237203544989732191078254290257504701961571593173401493707948478352462421485487329244416914556709121445304296120364367217697867481607055798538399375117325317628000266498705968979538117727208033266299393022784659913313199194817194264514263299241193753858551853372599625002777037331741183674475190534609216818809138398739067425427929040754918396053747926050562789094585306244760320539646847407828584258771218526143280303703655727817129596078249555995237938913849858350682929688815715747613497659988204786731836349345432645308296812218173088017344717773457797397087983769265298665459316449743419277653736821456800128529584010201048314780129039806048244254279527959529154630278409387789743087451582632899106476432310047288410745298683516850230494432839249374816686716231427344312620803919701933169168605005351598353336524170384770894605807560381684765471720189183946682371796695132290493802097699247075944268166601500894634192249411321655291108026280111145443475617450257064912171268147895184720069672615238885128700337333230971924712880992535017261646760730975442156663588284076593940115762628148982142487641830238816328484500238362867097230218326049931222115748673176859354648008734719074668611455774173268188381960703970426130338924704786798756870768519993055735737170473893118524615062301810268839924187318296131482556857739142677267160661981933615023074613568145416018596524920618532315928786278157897712779351311130624331724894815386517175014959817557701968670894315475302735748811459952539286954432150591424050621437936019806076595902010002724063212830414984710528568948908350310770231450489733842883026289737774239112056486353378258291111726778744198445171623875594502789846624217545914897730635862382710330499719123699942972896468136579973385513024888621175773854419200826052274075086633199511208705926776347534181698541959985690076523089750462417540345653898748635298437324290072675816708296708435186010031677843476784551924113755269701565819760675872869384315811914795623530070702486117689311474633934155995364555955331245001861252038941563663646358347317423102575836849149609189003135995939345884475221165922336392919144220516311260897921049397579225799889401070658131268022369583252776323053021439927381949454703941635518556846358226609095935124251489335327057332139801068834730209288052920646553605952313048445563868777554098997873725416422755476250947707891972500876598652703140340367374117789085313861915997693568506558006447268648093244882279841189079410160861251083282307764418998250334967162887702642009470925125981192462914543659768714630991413755494239590753237081851164753973706857316505011853910431256789441780741881696309552069738587822230997681907278129893577130153832686379261930611584528284907839792800831705007086954990666480760217724789800908291419902477632930907755567546069760297889272437505596958506045449663729259896404367808540596138469525137732822436180766401399738975348999580629122924309927413489965976491536619481765476617410716269634298406374731500722070265230228087510558265219012319288676071231415454346272054954219020070071719910576413789905610392991330329944954520306208732247961923978584936755664409489528270677670907587475828885008116609765840321635063012998928126749974115414838270088223274257515861275342629874650452336287047426265771257780260344020752087792989919667311682417127353068454258362564995989927416750570949104752839630262172995922327458356130111151092781791100324843165344386244964166003281660248109564207141422589111171946867454910461059610798224062563057978749094720738846299528356674160676460754369924024212159999096928734801058735338998198650673541810184903770929972831462016611579375768289980187413914637616314387610007004960178305256937287949032174086896381160667773641758015568309742596138941238897932634721214539062142987464167770160338470771289771918152494805944386956330009078122190223924333705420590032138135831738478245645191852756391825937569746022645261055627348022241681964926637716935678665589220387051913989789651089940678329672090954216287964460113367944395930938552368625629848860704452045891225347069022083190546338938924071809030199430656855507513767464122024784913290719957919430391032205084246522015358337340745618304695011966715593197268063919062309463050518201208166027458891423245899252984974132341023881340109105968482986786710967862730596470863085084913281433691190689072448862299650957231606754641529977778652064921164392947828369122536545981321809625643922203128382392209849198221862022395470249421648147486916318287959217990715054049002506710580909204790804231080582135483504005231162349056953944836061721230733473441209299813296263988188423839683769223901845252802293310918492536070101394208854468718255106621789029680569444164579810340483189559925478732940352069933437085937590810943099567156483915663379078725972019812829003015953530524638799068479106122605453798905774468963929623447945160578728377746460499263338922079948534467459780592117367134364729930545269718590654536961542559656002198194701727907505774548995986502692672389164578071904364788934222781553509018163246026492356839991904576854369606911511385840074638440775649755912701400629033429310445175263932909092690336761465896775107697472070429541521699029531631900231369875910885726229636445430210611906513936245492240325015831752379289059976195668541056563104778772539229156606006175225805273002704237732673385076097206298015457378891855193052386646062753652040638402014143518518043001365557103269576679891109403099094175503305634781415038178418410686925628964307992339639990178675415407511755957770979429899158169693997307244633607322569739805626468043834371479910347694567267289483099797993058610082196737486246963356419587067279095620952634107826743904571381735244161925285008655341255024368698310175070169275550428952221465318230442479508917876986196103284988230583480801496291688198570817828943547403588126244925608700310410122375339579527818989825589490737145281734351430036700328352622743298141337989717200806769936793124255324132479689576361620401625794305836055287959017061943532317842603386769785194088939611566234639436941462370676351365546615205813181545549472897497515411396709719855969833302468423614225793430981509640880322273746612674633714439650535443214158636483937387877248655967538845915679013251149897786583633829343972694055193896471410563278992553335315337887317321968337604752149181721901496894959828126279082189462220323953780089111148173686877251120747936628476510862757948347596928535034664785990061622280993974579615883136060401297638873095325087948012807120759012649497731902358691131273310660180669248496895885584422051498460458563732842923689043583454936126819510213235774442677737214670972148403299698195923141153883616030660745226952402911726667990530824669568584683921152702717346635758252170417453395264673900173402483503166795226356233921739301027846512576183300045012144878570976287115690895248884126492999815251533203551930964690804017466382029610091299721874511763948741257513285628564193203180657255074162130571110435507808807499259769765805446371143247496938538902387300569330571360876258424821417105017753824880733915757795188225391165866751005441837966669630504837948810031921723812191675541999562182952793305022397905081307911683412007226399444750758870257402921828390506229424363534191329093741249544119924830277531553154178068254152591278173953830442772544639191704954713220000285873753996817143213261326709330944006279763392183247254169434772446484722840835234444044601011967744726230649709829797173758620722050864672229134627719494932669278765716610322102654630554093250849943361825968900034383411499694366950680300789708280088654069570258360414976861084069998057611220179826601928919975125073996235834341082830287850683306577901484155733082484597186035391358431430311440333510971364085443916742243017853275204561836966651698069341716384866452484423811364888219344939358530644038270919094973244570555480293831619157305481974354553322155307599921125529421102672407586307046294756945701740407333034184234034483202236920122951785465263615205737045831951988963171749719333657625862391168559523931301731333550906008537783594599471408074448122754983068780618264507793299500926730993752706058939953883042326493095618489525606685209476436160433528657774082163599823421834062812600335830743916783402379525590960547536013200929282317869409571801968638091336648142579465934007024747916677851469567161310755177914334627090221782269214078681004426744597275600539070911950523344113971003545729904721117840714634533778401783126339667036346922729096304616312674646877068874214204030211950795053147337181330450890425882327457200163288774732151487726348795168700511311744888878840397983391203948212403043173308819693456280766667482833941825185052388599556097486705707249804308152605838556312486733398790945148981370210308744517657300122257860036121733788147756633723310060611240664263638803328528689278166443827749076742356094644282460990738048408670343345326239871426248082866918265456742353106442857749212204287250757311610652010675378518738448505980140011997325610492021176401405814036404701001860423458771430971734726080069480905499427637170652802793295477603871366354029434080850469937086402809658748353210005049206526991428493951480044446620175717494771824909978856316039264129663261807804857017366324602787436913626767283498781194709323128865707634894929106102441320336234520141839116500101427155253287339742707194850465531017239518797785771703137471886681192865162217196935434219980480896038974349853246207680646056556747899076855255942139693060916705608115552812688506325201147998841970757681084294645633036493436139761912052966433035566717120761495734058556347738343020094085695517425425934136489450971419735623184874630111864912905024013930887536304953795423687532813296920695989801328628429697709338564968453416279968286108519990857499678343233760193441678705554432458677191216547164722025888660005246788002706438600174626326431969833594308533723062225529194934478815670062055546799697858157391601393761049445669788106228529355124035442994719323166078830079601874643923077303132895903479590745418043638179407293404393916691889451637844536504502958731895540936119131027023331795115567457236129669754013623568427072259890895474892198030035087516576809014043919505981954250150096124022545879021336349710971366956227511822462357953555608168988804489298386783398115002462838850483708598119191211858485752269168657008619147075790049131346248506473609604626882634713233982799078705677794151633838007090986870975899335125734903630591089213021731941673260159065814719738778478605771452918692740809350767057867158295756688061367634795546395692461541720524331356535836024328931294115786845755132882705888608430765544992108887890647133363806097212371371667251830658914325774565489537346108598778980901815532744778362322880851249314070175410205232003785327988449837080205724238915991267828583733491632945890723112797961359512125190903267627007142863001440205263191542429644048979255718631570561850815760414554388449008031378600046125837915474165639089282861997286429722839999520332238296778161755803615443836030110316313333951876037471882858179379474951326169698003768049103484202066263050591191705482835866596781555005737519490771068536999623199344167811822756808240524894016905679658765090235792930345419929204759734347358695388258642027606445938667989960652115526539652152203398536934404398511002636037062371782598642005567417839409174909841886121309926371150215193097177440523786694895296528315755012442379162225614967384572758596620458093718832555603297308962363554209302325069235740946300512848695586846379620792697555761003296064678345852367690411561390775206334737443295063628062280967557127228831055933614252316444855500022105460488256567660118071981404875010595896714319282976026450705559377954077856225147209955721078307808729217106084525444295945351766655238013873479186954437125197105495307818196941112339736584534707515696015176217222646751198313227781425514359906820950929180705684656012105467370355900423823413431067971268943500121857563756762911536942654902449463676347944715658979320711914534313083803059217655133952125951104976440406935822542121694408004172659652033150944831006338784302099539500664884942253235324127305967200828867827413103363621297794054928815417600617040671259449511010726769205456078444155304726379862983108315104298167699016679243757374455404227100488822871926270604356179896262712017255290339229371238967590065092250888832299062053996791029177960094375483652991996121559775928155709717772672284375156753864171827313499855523490056460376867231057057396249201678486957200347052094497750692980145752158116765701801636894159325114055111955915759036840389041960117085665704929497907787830256914001968465712471530578530005261641307851215354272068958493185015087309255841048216203098766254265706892225709084948037443866768055884344629028268274106055904479813515858108951376456498469138660579242547600470963254558513651819760156105941846537034774763774182168082998110585513921732066155370586016486303086082849885634087923197298052318812213948062457879939517942728151931517735339270246970550804785612850945142063576727481155825655206099596894966659764487521436078896528511456850951451289447321812669717409902181348796532635474895200702130424832295353143215899682257883772078379141441151077805961693205311460428462937187430438655013081908431295148532056499976470776930508159872635154639020005309856528851754246677082941622596938332250331615768140663635473563087524031488120034446894942599763921300683167861987104621887815974993154815960507449393318935591839380302751235945727217214525174750936442008385197091981859941891221763168005861998284541932920449286069388329606164972398558689251111863880981498180525418953548732983681167371805737645426393743980899322464224546765419296624271297181480497065729836448282149854528769858426626563553259647965341043997971021557825609837904694057032903701357871074566975405609734734552625393766280097502657920269545088396679842283161373363309336872075739196198892592652792220641919335571141854930946291456362740162120338091036950636312504502427508356709597234124276411951280473060143895791023018710676712600136599910711884092690605591881706620153952646442327724588894779005540819272461211223212305253187142728590958979881291497615038604928136169876831300436766696584303714053236794587158287980932321883182332299634538685818260141551407656918251858253090483997485391207858478658508392939390021002764558142984664296481384358175289105413614144149118399346255801098485621721201764663952885180254026521330423194256075158663396748693904891332414179105420584491526966190818868038668895876674504761764902815475191600586617064882727259076421784289744319556089342864339186491830073325627598422342577428025773268928099661912363972264485757931335714008892062885510404400214865583448402870670169920246275516571683612068426981821667175940924952790533901955724701419741876725321397123727727816122576824688195802356818611589032309233917885952959289784939968125540740921452782811044113466363352045117010953426747950765678795860030219080603348202599561933994849785638669187263538952111317689860858099367591857957973783379439573431277941310973203994428990261601195768478072203381036312728872079773294216538332498186315234565111670508735962879118310658102967769146760124931904565514150231435256040627923529397842632521999159684392352208095066909561354712466370712796863545935010157011989072168541062203263583169684724645356356784324956687348094326480265989147737417715200075907693743167621439752368924312887241476917166282656561651499037731010249257434144366701118218261726596660887904508403337315785553453866035090678434499754215747746478211577760673689100436275126758876949318442851640343770515633425081305163208090091276633458820729759717058925535685806320742777156269875078165185807780065831884029128474234474803925775386809936171531601648650915355048017586099974528850899645789178850990940235608694044561891888676297430201728372342498801703677300491900879281769787298659207394622543419163787784688184448291228411265922988946783745545816491962963505895329158239865757819954899985702667387983595378125742113838713848367494164522814767823672728599589627106678468203677645520897037229999348228872117562369461023001828004012690765746813637543499478403282338549841225952629486400361908166069266566914762246083938820211520445595257699724546882004765292754735098757748089240933268540251567707287375113517334378554951816805188143002387047970905008237552323051138703773714728851291200117898904946754856410735562217303599101124528957063844842028900411166136445981081134378203709700010796496135337424334050005182726144771322338400551194283597384215886341729380750605286498616547087128362164465315917462770074922863426138808656931555541157929190034824679480075161664320706080185109616215178915657338102785188452906066737724973148401408692362164567234852150305002097262627565364608827607169722842454054640433335890751566320426158058247582808726582609430513797483145058647342108157955749907666796169495224404054276426784530875866604360131978268632001826331394338354374755303976285585465333096548449148116965345117185440289377063682143840682201815810987610470251397412610066334123365702357118100375168589733694465761963672349067082016412441253837745790161766187345722567060536354821787761653693174937741239073417959188444693168852489109497576750655452252431033360246489424394155327056606364338513360098527061661214572312972293696670564098605273882961809806107905769311132717368805488322713448108770792405892372810517348726557950635265645725556977041061979035012899883355089994590760989580533166488454865493054805250657753509762781665783341807672562552961511291836286047810412286244156556665717616898322271192038365797956669675231791520075003258746679851423383991854361812544414028871424171713239657476308544166083197553231306941002525949600747717361605223961253338088302379081177556501321608050446734080371581920776344204798753113212170655026976473751200682105905724546857598254413360694708473023063574604181889325963864699484073607902828226407299376198836920664682037890505358634266784042770384291847247386373965354384639135937898175033716307908243610400561299805103588623216616054344687482549942298450548127285869329621994560908075280157129114480029851540172780310313305026288112273478079014569655119294433875122271941943173087371597610178713845916284409175229754470613004250040111374948292312415484382667462442136585079907081923693847312858426340944860643868284774158810104439052653162418716482590857879043892855758286299380628408757812316209641116024327501002994539398358575087435851201851453482238972579045741834803909880395978286205343866703779114944092837136504497479726874269629626487322253529055916732887547936367272276709994994515842487017397024543187028611682849095455682803996980460745170902087161894063968097701107973914486040231808150603703832290928859613492029382199144790487993897583040557100452791774694215988727962814417203578053381355636105755343209480718395032287238138532006394455896069180943622652426987922519261187281531500367794426740508451531074803876265323119618488967176513930327919258904015639629556475842943293971649959622746384461048503701801764828527018067873331408455753120110630964031593159084390391226666555428809539673614539300446454283130418156406427739509247937495032860086678910177294950006408433379025546490043747495410554817742147133859868779637190306808034419187691818018862234611092526582473431709630157005412606450034934238457336661622344780807776740214425572017988219566195904032043820277569275891034058806572745819317308366925254073763507606955335333974513147166722027814007435287945922541954453399007211732239436219016386499656787405251881662376465723265597312801757124911538883482443311967942878249548268240313910245083835643428692129834403311493181386030780457533615175387467241464669883867254250525706992255827121108146461649130400977447544172656913308306771307429003386148542386443702179933744327607681606520189555360881333016310631432597390397094992549099027997008090208924978394672404061239571693051754855575019773717191419866848953598190378844677702153657000089613711864297282771115241407730414683312102333716180353013229016014899721594984648160950805600413689493567386764197325000116208822015129370028744456712808631360122128775705257045036960543440544236052120648170780824675611624863605851399368782673039659047939254548921680254155353425050629203350170191502454989772072822260994395095603551930392089006707008105000538658134068446683368659416698187661352453793615563372311271841470324537975841445784568360404516221987287676168514192896232555302486866253299186985013570769424067590094422782174041542515100450350153526844891488565588862005809297393336201060404470001224716309448905572147115260522142881197164881068484468325678049250194182420449568499863303487974639980529847603869287230928507402355324042104621238099776550892093542897367118723680801377517112485582768988005210377578766481222948362463317724539498426527952220158183315821094357358995251615847130380288264323084693885444355768646491436720472483953562295972091870826058380587538690177682152518234393597763067866949061813433000286760545056024134421346021925129480213982175261424315191239351283830807758336961985814981547084257958011354840721542955099210773106500404426706328496350799974875373860069460302162538727679718994809585397250847878905471622062261872967786507650321952297164467619374737699998378659094157832126991522664959055296139886609478743384389160024459025602214720867095429474141871611504972264607296286847571733135914577591372224841434423063291444786870715084472038131010699404631620380089801044038016639048643012910249422413262497212225766442976188760311480902859126183779941121302938636394023189372795406071245006211040390760691548342790995340560651384152800671999247255525047892131906050496008841653479383476159690153856833590345438846408797246676898128578146537470998432483605020261872383235795687978111690196894853670350739060824843136631366638387836800142481925011211843283188752706159263989410137274265795635511450202731212798961933814735161099025523302676674924645699580840780425484029617449361267849615961295498620488414086469749786486489009705523509022486987248930513972324374089827778397645772404628817137043080889976212593763811488299660460815828893298221910032739086254809411950190015631515897551271430702816772433577215795875493218116216414318064726792518764118130210560164632547181145959038738339628881103063347408952620500091733837388229273744356155820518167302376405569813702185851361381884830614394235605994353357668021006992500142246901740847304508333201868077807925636964938784851531359580710939673201325849139974376295825722937137125363363747516957141087412252683870063172802475360966875531581728483189167079162129013511093766847566890759115056204021624850964652801647589857823712168187482398226140433094536835569438138474472977088553160371612481744084789232440631843629342377119424652436567363540185551213900194709195432160882195183254809161461990575140919776113589092220351278578075899470428585418889835242721192409123734257057789639877776918226339277091119407708702357615660559006523368606934025617969711912304675607655833906633581384026051674663933716550999195783890398021726440539083501482056380553976811719369294536719661287875096715652981198168741744309190126527987107093296709646175513487923694800215092597807022215712501434085328628658681002713652331420722249767569749413292226070336680532071569068483294853574640581029659963126113485441183185317624731942232376749252216701495182762435387249979768170302828616589586133341972917419975015198940646281766877745298692000069763948319740199998062244536040820930062941249537431645009508772215487688241543968917143373220305571563899683540131110671057019796827049738682082464949697664156960107013840911005754109792685253237898697042030060796204241864120650330204109876430711740456703859599300395779193382593185649451753053243394302505821607490898134693105496347811732426099006094981211059695498104787624827709934934427952601763667432372603502004619455087447117364858426516989758819885522523255864507863896800492837307876028563212071915939927161214578829536308141321290097504552398719464153050281841176052555420116941997106920587021723709929305378373835676189000232186137582642437221109810554677565853657096479423500715298621155441433867196542097828545678272755392454476238251723742548462764977603645412211255702590749775868140377919668475590633654344053987421286900866407081442047916203600800673900331319449316132624934347474252086510762852710638180386305446417458731635522657802063398451011079614367696062932503998005602257887653882017813893373932145416081581067586627447872493458647646711330842963030408749852170760235955152579480362143453607350478167824569180363655199921871456622085634358756956869279162235812795398312101199300678445480375530854433853495407491552647179056699494336080024173789149288596622287530924917682176449421547944221822769280407639672822914676582025543101276816766528589329082194314203818206777986469087556585204388983268796433462886270776536569330026845046675157206758740097962555940468651139074425281334475523923248116033224518495357466085641036141495120712525382286076778387986316957017007686014798223826210999108980882459247307473268959234240816937122223159216566418902190006534633089455055487624585847117374536023870985470525048272166386175805177820209657641089143196413581748086620589933739057778754500310592674563542274991892680741123104975052699476456829545088983848334692049431876964478779478956544779920170033369786254047129458502764124356610719853878155097543917657402267781696621733345418644129480408415376724873279094754586369262066105351019977819560933777084013120981379256953890966987040576782743439068896500512657355200027900789162345173906830754045404046173929444311016289589726021334464341679351440354108519127868559905914903753825532207250995068098094315305440602362868100525954948873307230895579082873732090952897705684600139343853002621133237940030590631648203295599419066747177492735088143535375601166860894179065005487652468774345550911292151241443010303363683538879998457359069201919784345374582879641730479688298935258200659129315630885038688700804200462176127854865873058956195769182349850677566085204080059416423032665564318221513554568990675403184495548003635252686518306498940077499123979275633735392505436811138331636727564482592637504004153277905387407917739322475277084209120844190551886078212738517002512544464290123324719017133260906991299297654340520021608998511213094114818685646434674615101625911512962663320601843262202447747276718942411930976991929032315892235413743950622735834352954456522506035336845665646386615574705348114044221230894591296842859820650991975117860424889143305668207207937587448237978549672818203078305768706343763487591974036384556915202887369596641849555963267439425372824687783657126483487143837289799872668519826196752055283025428112321912840843103670343661812730806333792685551756560588810757256168177185347019895752565045281346919351480346275625754813041591075586778387213847240416784789173831859579662001878191179202300445490603616061061838091623928189351179854583834642781800501202143673052082894142824911754439609726369949258750614246807994646925181601217643685440851548210798666033308527978143582346391355387712096457059809244095907772399036093728446602019538125191634931867304944499039048230550582672282238380659590705908502560638645538092957723504419729929032851961457909438708713931544095186621648063129704186654998070158576275804041530363414938633402876811458994816507624198605489498118386757139937983037630593035610450844102600696863955449031836495671155711339427879112109045649110126783328662110300487436326218796251850470825911313403361646282363272607272520860768519520995643133439171626255102931327159414075592395690360748966692672056134826172906259462872501351324727023240291398756292245018230563520710872857903957382416015882445507475452756402262797413392058971427504098336792332686691707267213575031405939238830255521699328031082162049272304140017908199687699057728580047367689053460502170127747961018589353359518756404013681101045732752353255032836557090215647991141160412864114862601770544362782584126489926245897319442807581954278328100311499681688463697127099538425101808156042020550640237338424382573458060999406478139413609299167457150433308734946222806508348209774677463006262894352902561582728790098971574173034925787593657628663210764412619595728880139420340644784373827441812004677364151795355111022469365842574529945295211356261419060806265491516235786791653123893095085304267549330677397156273992998826144569234361425614556312528594168274419231303267695933145436948959672870746535651283096716599349245809252539126615355371575863229177432076788052699273588117751167139862042363106952154536264981979994833404248068019073838034430139938213220850201176456694326016123948511788884542008105944514148298797292978161289106693128436477085832590059627872018202702027971445299081691502917487828650055622007229971721875752967911709940718240334083480026972709992244592211303309034971901852452325571861767765020822190516321648673161362095419606225101313681512029086184817285355903505148481950601905544206142598633776839806704511981164791034424759252516700469359858428622782343529317569738771254954290051136390055895156139762280315626529636103331597072901918624652615647127277217535124258291382813949343775717245599087422929724258466318761132963937861145888027866975141998290860331013140533307178359395312254990168452487681480146773268110565967078554781324551654967058118952729580203395147955063878375734727188292409787420361996304598643250940024692842709671437265908589475423575965354524216522635902197279355094024646315317242664938117593321865165089041573333050190211769664822187875896338831512480002480732316833893057110895362893272845323975864044691134541049692699382666022586564500200833374284405685404476759722498181289141522435590222010212747043514566160635559983427024373466709579677411239521865625675054117788871707782200791714466552000729400123668062938600123225039354194286803796891276976359668595824108521151133413800643875971108828013666219304752466722682122573248261857932180210465024382393662486306416879277092811203471937389083332772415706122990584939032951320069780411059355105675474681122826875685125441911200520599955482096986382422878533145972503425593728558582504340112913945961615844008298219056155253487622643318265799039417751600277527832338631796284688974203783449160244686216568523639408889244027654293581087130071641832417840422700490997386810373759743227838350164195920112797695458088241056617207918135856580093614608282725950952703000274010698978438050264940820725230706442248015354995392579680027009885206183283119069293309975140975603872280552049968831201373731975323822014082680573763664366984592151374802058264229624716121568830973679364673517926183253493703915659086982199879263725223048505268453099859077776654398310034761823780168203737276845362508194495179341886016698252406033520652722148701020041596970686027208612261370355113857130652711573916972146633120860136820764481012604668388076757730451327530058847629502057751087472621203272380238786887730383514116278831228538209745791273597060671722789486725445991693378719063339719783227943591067618866492715076854596905894877337751162563898091525133104645912855155889319269150154241947578996138391593769695484566099395323952947859163619374481398689617811396748604683342177614570963424397358603438097028192402248723256482027697898517337661916274219632778569462010669578682970778877844270910570704515120712273348897884417344711134436686653306922540617129751741398331691376758386863401467038634217308945910991495168638288581324854960192387418311616742401161741253465895952618777427189394576662512429160399228010174885427846153288187465810356574420911027694866076335320134000057818855618385052646703901808070298172957970833927631843799817933500742907615688117186876164013893092575863399625195755306749236445122627973195384091079113696401671150756126788427256894944418167679657056986563047085830861116888512149186597706964316969509776019037920058547760274984026831289483231117231874660503994390590859199935063283759889249441828472940417576197498433585838865191212547467307220058558732348448051109238877823765198406725847346049189683766536897928112505360514310741974359144106226714337518977312727563289984584085014437429225513977589307331590072837933271861104135002762250861270608623383914007497968107704398942298136393529312126144250917391898675135161732074753596118958173487708299997366489591881196485666337792714464458175789564991409250329607871883953008974417914391021428876336709247240437500887415486390215447486834238895567629305323176108720344064340865190768643593020839235108411135608177861395250542280870274038564851590267434912318981641699556160441369791912070096802212613395160394683307248372601843331509312694957385378669999510197434675413337255394696327532956205447626804761110876250104394192214642123742387722705137485051243339549492544620954884660108553528251932023696360440647756227840861215547920657779451059077606637537605653189589419822962822506744571729821919486824195044709216144130438974252305207721885631207977098373870904576631780259644910522318856926050357787245221626977565349924712748134768055651634788808636024810672448563440583825718061650792359739230265071222711245744269950126687537254159664342288767919384078972716636726440787388143875789560037672588869785876814001741206310994738989036712499275469596061389769927047709034737912437730628735225784057046077609211776621285533815379010384061525324996271943174455761694314393841004755922412195391691557730568229151541340502131428926101945272920184545783337481105375070090921732808959819457064734825718240067535062065628820654701087771718658895055920516428013797155740447418945857512422175096070537897325898275082020825173364611520761248638904554759677147084162446164531089489550176423514042410148699787060795883051158260410662743543185248009737021372752133267705549331326999664941912995303373906565910272911542262355368256460090891388234185732512661180801888518100669646864434109542397437765440298895747169149391388477381359942400293612270179145844767039574470161993047390993783583809206797159969776411493732765424084086517909837878704400671571096042222242822293999599023350869211597189453377054626615219897922545661840985977479646240077936816039594085601896414781407970419956768238753303465732001410394172441767605719766818086376486729357424264760049535666407384514842928614174976031651324156793283450362341714259323431627917243398104038047542376577370213360966127135896232970916510330768268172175045192336925322798733286520071706800627715169064258327229119494966087380836407972796720517814731080041387819427584265982739859131571069014629471820936305294116357504666060510367606343995924738956546457798495932222510055151171241593911517849314618868081125526125488544732826731752671723074388669995050169933402868141226852573859728208509706299509311899053579685401721397462624456502159144261485185301130384557445261416843626181538101239815672783028365223530543783006372353280234797014848624635803453746404990554132846888716112261730796917882088930534651596542042074727002817112304054659161660218160120236092322982155351037354311745443791010181606521327610996883699840547402203200721710187142058512243842492596211057174685706844155596569012586367866946513159936815622570227286613381172783592485399744752216916545019209281999910617233801135704737993618183540194965469356646030778003174020953170344928284595422827383297811836147679993247208738307472327257029267467192639551199338787064592383672168115582501117979275930045723077065251003946072153356380408038566910260964103510108407956621064366727430270660482200507682303560791093746933301912933961261246749090013888464615674090970875469081124294083622642298429236808889126324868076475771052897285606606482813872209618293928303538873399625390908355247587802742014535422753440933842780429309469248177403512266350757207026470854409841931074576503481625016725979623614599267974345191789260770442223768490701734573617308451763460470843443024844729411484870589110535244842027348369011792683951564431995655597129093056283940981946353099939323741288286630747179018207869413572916357221548565188779580356232338151212787386148229041821976458497426662225279274469176868268257178398399080983646721226884519376055351392236412550370582302270782564669353304055820645575294421089366278332360886511206384398324520357621822741065659307507764748548137538252415203670743060611644794745427090494865799802564251514219843165593680739721341190048538672900721386020615423937506144256636332713436287808413210021917708612575985835465097711509162193562197446879566861937226711361829757164208290855063306279593083329118174506247229721026390011684441630618056726168915926128316577626774441001578716682076573087158428733047160295958986342285804658668390549950304697232526537428709196457456365437014268399079914925487760016533944725997829232471106927036687201142297579137826917204240102333758498500320289689494813054986329541910360842883576895459867069391842048281067792440368023727571151643683434103179304499398359018232137678457310531111083752065073392256778150334469381410288557672866408986099950366955468883025598997480418417570060871497777031153435110026474261414046749171170745344427038497547762956596120284338579524025736970763418386047837755768150386028874680100191614261815609969467802377290297016435018134436185056762028023969603656004397826596988900332950924739732350866357803489790118060136233419065006902671186488557474681503204061226380949911948322014110228025384573749245950407059039253272793385611017675796261935884406318762075209668195075446756253678815444507051027763846402288657351786310974043201064071301237024710238706953277092563208335392695140054693198719538985558223121750570578187415420994060830156697839369768269954812294195507696027199706000488775209563917241416734511289787065879090410954372625162226567532959370278681133380536394484698417376874960023127495459732038433157963360878527376815512482014227334404838249420348254042136616487772939505134550268806676181358026962600202681662109131223313419527459176712361866437823914363448527601446202103777339732572478290918495136087055595596616335212447051107185640445196153400942948774431146488846675662887158894380260586290305351963427786377365887929929985127277075005219887705138893032467671267207267785640506510566795039942359161693502924978239558929974022096689987288133036045214402792278091488679616638558300073294560954990959649189964529811888253447249164587820165236694957643827990496694574071085514578569404757303638819694536473703092823877359130693198748787621923494144184380690527830266378294315027480432142892931702780768860816429482801922264278184441854262065473891217430197022473927388428644263277451503323736535705334387535128951314617080360782034859958969888547062748387416762703593931192325299094378535288090756323888323401375089330563957948145919458064853988372469650885891603715543219683606927319782917197693187337991867234914012816382031567882095108541827607095747770701789316695581273662986101021385173158438594127524200825579273791269001968328222331806932364520935054679314213421980081774401930435768709517927670124963272433659855022509449264471513883741835768142140822566196828603251714423671509411566483352669612765635760481691963107923881952836923267172012792412288154049966515947714257739515977915493490992084101117661552138066046869110497290346195570131337729153011609039276444941777832372732149545524332715582662194218209114706064532356012021246973776113309825987574754981756027584863298950318594075964364178690735878209184624998534525527741059799725891289256776453747086067316195064559234949065271675230106927427820291673739002028925523240721011260252504365019225753762603984794793523907161545487697310248446130168845757507842817438954034289341597810570278729671758796890008845460790379710460377552215020247487256566505756567992753338082856914089286421146749792187799074077507398840292302614952973514698318060306272484802815861418216008003825682971990692267216095757304786547242645322374737295959022642230741617262278836636183057282318712670825774476226628764476771826275257816875619039704949444885034051753628747361866612469209565805489348220748674957266800683692467395051987792725989672609648174751067104385623306316445114700399046711092809332906100149277993781724625911112733518475312628963429449479684071656466273414230321927203801585645419287550374055940871378464006248017241361045682431898694791313021973866644756123864780890187031325966991312508022315962366428448054615864071477854057974230788207131145227990455167607121523799324538045225191553788967898162122856320579780575581348532019570179624054860774679832767783215166836648688560958639097139238614884537631564251014194539345381789480864140617012220514470221510371579620105280470498534573571790058221863182489264428770910633190936767952712337805013031261568922504150231171575490182065175317781875314275928499138944625593247353543674987289922968012291233188931264401562244885081934815338589355304744250897482088194913133479805114979404622273256520817235610344425431005231884700436225521449486233851003659365305811096594175983749111554466993409752814430495905821567696911330889512939036892100552873903380266710859771722901653268695465476319429727754749503263737123401080169184294454858082929778338171024318319187051709255457912199679990471223250993458341877300472084044202320850170624004741957046786572478551707569749218358053287049531009214132811295205758105365855296286540454938774050526060181414700943545943316178857294960510198851400021176196056556675702703192621970663882785652055588245965498084909138328444247701317948468219922289623595247873856443636909548261589491461568290112685557318564999438078122211721075883391850864359958434844513038189557191904642944361851788811810024284964772371757986846833369056990635176657535848981786536634020629728321503786453221658625838735624856902714174603059691089848610073817592149232110231070046223868422408137089515074141992630324840883445310338093566784693157223054217664522751682170196317533546941998440644690167151334698876303402041434970036403418468991623044427992658886286112517801566664345746501358254649927290206366505788025480472804483352610841432135931047753753537866320305592413429339756689438629283096748112252978294440112495535290376477137477718148880718525527056237197460632447268211618672092366110531779714907559279854792032990778804868059219167091195938573545357032154369698450300408255192408840364372363207957089819346063274019777609479992372718611241774162926521482758391117354625193639449938176301995213988952896335352358685493681037648517556546293467450701166389927404971742115668574340184402683221360839594511688743021937523884020232480474727005786659337622541816488985132809210681174825856270816921556843775595635043380420835202470017899118353044800989803061339330738079455612025105355667258716673327123945399502633934266863148974865597117829281428182619714386284250241979085943198722363889740177027257649090097448110762335330799784441052064160344159080567424189712909352178982288715601222480597031635766750761581831382286679759591514619680076490868868891654496278229711968476257338083400237704488191171403437577707688060351017715115144184459634140929894081172327847101822776998704907228050286513156213620942027793414626912185863187213989921540849088236793073485041691636217325762307443192054624840172384327536724724507592600932153798673855869604534361811984222476805013007054946370226835631287831215725680720610557730986725891623011322645856390053817858956145681693540425257501446043590284382161032822590079776771620259080709467087718697255756252995354603700649800256217345974515903092998284820011121582299626422535329634092957726298286443246686869634502244309466418541370221510120092169674830598042538462823628175747695514051461450654192682668726244292990104331942609292992680363968275015231197840348503366783147867938033325248361595587735292080655548381528375100881499521284370929119118958215751715098124464149855724341194418574096797787954921945770399376037934049365500539207480689830015132585900209411566324595270550202075522078423483790754635947447636644274637051517104496322385018554712753000513761967744420606839954634785929128607272012209566964987801166379727780355621153622556672501470576544274192316209200489175449837311905605411378044412135423227163570670644739465823903502985080695516846670814791487886629356799891301273518222138590310712037635563749372499180531013269791672600878146118158077690002447854417115615115484600203360955440071337582631728495326425309080672210579557070796157386945407303694378115154895553176939247753528013721666932660901608518068123026634308954807044776692290051861221453901068077364550910971457577978014804244748153990407677844929824252453097200587709348213171656275472031121224739218307563377793784262320693691026839745919676908513869389399156297681506579142780462312063552147644195307373069453967522338571000799119174708539277816413597795573863834242961970213034536032572803371386176464610914838304100764307633624692019083460010384346221929158224560590465336497750421167237818302335077213326598172413515425284135973331295875395601246552746676057713481812258492778659936094073267028499080623375450517703241560583195007897377611738492573540278252966977217573450716536780442244995920872438663617650548217747217460650255076930984036114129540027370411700312978758778719337610752084283630662865010641106958094955431953553049307473864267698115120436331785879888130002443062601896124795332874109457248797193033399749964854436101458838931396768201603001463706849016051771332209142971244399060387600038213740407304470536421641983020784905257189323883791948946218065497258870999280202051618900071394992809215168328231169361345011175607243461176829168873175738192113603692125055172402530727762563182521338656151198619933779132207070564800501883911819217531950296624858734408484203121862098973487764413263413452934040525510981334110689808780523597920373860189987123953302515642546961246416476834400586681588794785372094827356047252607730483801783555722458770180893733819549779173101851726080642121930125491289736916191479376474743751333294387264490103786715331772883828449257416681605613127885383028331867906084253414628439958718081689265704535247580218362194197383444438070405821067950263475445891177751348070377784325777093378260360561527260952848286970045443754248262739559327060797800161833327679792859568874916530328034445660143944867515754008993908181067725692328154617080053560191762194551029769500340274271359308111661732303067538686684174703749284962988175449610336769220811194510812913792289800968132865272750208454191112216374218821280119812572655234406133283497380563133927885080976087815755263582931860030653675148985015493861549623107211603495067625971801005540115687318831012522385519081360394003158725046838112613579676161037598914386302935260760780487814565552289483173506887329914248137960533725991901511204987942589876663180652599632254389911339555497618822434808833322065774600707238735451630023345090909542505266808758506622591535594824936986980841983125714376662559516056021657893632905011483093502340985057057706261787310444282732644775898441171093075882940037186671574799270481104244915695916758818694847654953131125515896016635061346565959470654644019439188273274632217054499840039049992658793213843319616513645072559430108974070286028051454373595789263339232995371220168283232750725527313196409640199025690815868535300906841999536485912797937282415828526181715675404478232824303124893717690142754561402564207181067923910622945401177656022616188811560314501584225115929817787928792739943199224900690836836156293245104151756191921750274943152391024592155392489063105321779322249118767319920110211266349350077645333315361031975690226407580773345576976842877212226472684459294794752254740765942179603963147605506445477677560266773682821077594941990577166561240234819370953424845828958075186602109614861182275519708988842245211812546654669276125719403432054300553062919816246628403445274475295430903622944021301214342034123994826082537312232383623450262282414425688087807846881146745151755607270434605667516639466501731828852736918461666855591238305395738069818227550114073579410873945149467705172932399634568735569343549459764283204152165660580645778365345279957267345685111945804026938265038964455676239762828529653077813634804288470268508077552117723739262685042438120717676234210346692140063172817878914668452231297303714461839853137651446504695506885334795960947705767735836732194978358490335936748118022001005976646936895113359551047661120630344859271991657506201347829023747322102830813136645391650111773532043415182058558859063651997603163992413009699562258726922033908232434375381766291123627571754223552654820179804029699440764987392427691589465772653545648204481946491015179164755217414036691128696723035795156277333241910752884612069612733383658591567243746438415033655056524567761916078309027221273332681369336404177038604879739691673381181311656778490196042230172307025869910951910568283969221617616139181382672670517892082536236702933909526672329550748120517160810469406811944764889867128263031048051811757384126546029780548744722034837660857867149317520822910633098012038924070068423091473227005593290765718658377107261006491834390544992590630286663787575344734181641032556336935881132682060590659691120116499515917667611834131444119725109165398978555077368751674570753931894139833006509547198803092283412930510687757185836533456165314689778339905464280183780082045873490753971632093529182784118036149457401094554732564826301773093349816483635318209941041028839271248822974370019659140119288170173891033227591048348297773488877297414933817632623438251861070380633033983235942665201903023400492240347802306999573406690022815992199764743240329013936085523481133650426641461188130353844196024842671376495702139788438448685176915078940026403854706357114113398389451338762657892707473274568738811438717413582754640882287364271616732509530198919111637466932100546842108498906858481342100489546210364155761509516013074323419602578116089481693443714343026077414014572401626038870757602127434471269059960019149284859182219491912867182386325578978341643709003085998835581582932529948980629214633033154915952972426371030966565643377207924053408319687938594098192081184212798898705239098124557399121784544729624023694246584253195623535239232808679915522629570563323812997621410161210261092801432725287587457149428345168658471553584761163942850313450967902885940885485301990573821947442675795861700929466378013408782691087028380329339223441069850652423236004580883245917331562798251942185550699473686222367963368473574256332252668822866809541469667739149228339696019712274829466353518523983039550951954742867459111463384803469846586492063099051776348350582123428766192386192828245612147173209844365054874574734658854713583094022953636798039177620692370546567711440142563930680798687527718947620323695310487762995844973274641911141179846315573646275507967698485961606023034582600502692281014720919952071667371136108421675778431780838138932837685975745412823773163161952651643589947632288964505407878119680893233149515423095805807617562080132115267565856755288971337119283749943798970078524642115940637597655642969184015193873191052530930694493990335207523140270382487880645381528075044390332337776111466035320570163503360224230803966145895355482237970578875015151819629386940470227804701533999812541776522687711319075379442189132145436785564406744722194264426814849182000480361782676911160710794353948271605431626455627805101379090831226507439897915951513045707795831781675105166263573715277674641881381305788417266723304603071864563449485651382937130613346386986564690571970668526579689591755747113811257521577970636998855746251137527545489341127884670105811049920066087094518158859434642927227566734483694268732429864569981379777885302560389827424115205876722576896666946872215630790228039780208316172450614820511143418525561741263062945261127030829350363783801019043935999698929431176105891967422116776057755410164703183222917638191836844542840788095947160244212604347868511006770864527664930079835600709960570671694317955967793063937739211777185068245840067260892245522646052483940373280531473147335895284200576352824222804090044743493551706239238345622287672140971861397959124643807530454139300748048740791733552085750912446351247833256595345545563069231257436023907590302518391298012555297054072872030962462109262715655642843230611820119602187543276720260842231905336098806457062615437952682250785265104768217032638309178089910302651792566300083547546388579704740127004625615472722481391182466094106347610920594759780563840016004776273364216135360267686987898364770490357773870457858986830756645344897041611151489657417809912577046183525987715478041858050826864864429336399969303177488958181470871265644864471720119126939398088054436977886061784961682796590812859238762144985330765261776546409953840415115146267634228529617275816698519482798828586511819399936342861177003977287125059220834838189723712031050072309290584751229645931586162478793044154682051313456174419148011638579984098919045297232731051259546198706767036958940663592404073497132715406671855469803451021099606621589539527991734528169386191500055511240067279112181530271867935676751627310902924760260989789619526740372741831271005582556088977674068954880119867623550281048220719803492189711194492778786866751855422086132707337631294773375071054718836136636593756707680760419724549086182705579404282320178342135364303876921293046831399401084014572102259847007128913671167826108884244771270476570483795585584310329103700702308876974504889895570635214857291565189209733164083908785670491065863169708519629805864354095928028332331860738615646546437875243219076320671294645547323754954996498820388421589342497463495632359527456359847285938270537128819452859289902410041174885089998316212139685839886062061456192187891676554778190291570106047822146437644778403190575438934965400934159584707858777983013384227345066255681698134761478565521333353319071361567014721673101800900873746988023802557968401991623452078925152104252276165235857151849588268914463442652504382128171941341893102086764972284327749761151005895211020993142871811279060531496382874008196105637476681567133155825312526517594468100724472196700782382841868483824813105485260518518604185214190076391425693265701759719376371372269742050230204629380327530911040518803550272382116783920575431880231278457325236578459180492164280242681078649573301123816718178437927712934678253324216519381839898403265553415873693575251245749075134594869481382130491600396002325585825759668783814836495897519711998194886474007215357943420968065115254942619454647558050629716790040029328176742863660736169235292001785849616820068750603247704823540892547389440090490981198784893336056385143705110416577121082910489219176045120401563475659793631426102699184301378576611588093518967752808425909222308802608570735234832633805135185183451380499555424630907405694223030832353797755216235964622857059883493700956393672855750605578444305724266308017449805440011495966753186806962253955294077039870178277221661911182398359801549360077607879167266823278439287406918774904334601228344713363671437180658229757133282827016580204683201676859732890551529829771486982466342402644201847383024113079336615105259401588928902795084374265479714269267352693702988369528655057028882692372778264018035779929304621668778122340692970186359316166394595582248328572829490468794947770047643220210035878207732470284221296146996669381035641291592501136828210095780741305354380563856872279879172583954323417052094563061210607367848836362484494434123030474912533243423950364080343473173827263395729380833323968709743645503966633487748312646718585655670252473978479263992936821332497523902356453651761105755261813774817552912696634996488412505770369664072689244264152299272023228237655622003456484268122930381262564239130832186129779871065859189943311020949475135779178277543667697473107776922877699162744707880481494306903163739014711314494446161180833766223861731216336843996420301277305150811874907955517586645121332958441068572708008057519239881668878280777007928633243477566196153552428844644905804517254074381924461861032280138389042223150957711226534972465525063582745430798646125549815292275451951012853104519330186607629461167413985840330893939133760948460849256498392140207214886795406223733368455712693400968601156291711900776920707252694120520439019486984509754533470924534097216447992057522436617203627483927572817988291097363296194563150128188124363686357603299339153061116897528500766189839353152743839286108825733365706926533672613380300555148093885080527223375621970351617142118198355710015440931867654740917942271512776862220491736823182226162874822117616813883741804691359055287972753157107690227449794205405069202415504276064857372107523790910568227223968155043774529795171444495668952718694316793499539219789988528004492857007985260034724283374906237074308476192856660461173927195326866923985341406455621090310009401808547085665994698814049945236488926496649572573836649291218085297747667408755213812203638467302451222546080654779537198960704453398912143722180232008838385354024185881447866497058781933875235955195077027339463399294747597939991776211791568839303707808369129811929104034178686049933786083790470485141324279022920193014497306363426586036807350054359659246448398416137310742207413591976293575683604943695572654355353550666413925774020767196184974094177837159744448656006837693423509997433159421455280887965921219613936403807992854060736184493532633638857740211150650288712088951579369918546969809610997979043218398871841721418544553725308412046448329846628123744185026686039556279952502170907861649755600433931933529775363244450282124094090550263037448780209127078964950611762873874449555625627487875996721828695621876443159740295436668755239958339942507454164962536449079112724973502603949360822095807175450675670168906690075116803485510120789815484685635748218519163101143638023356069752956081399391776172144282850702268228719312883383927896092472342528034941407740788112292655890966326787775173189359605233317493643586766442418792545020866973949045221699910858517058220550190954925431777447004080294459701501016126945995020914281108738937023619417151636188105021456747297518590287123473295106044770337570639076497715711052151960230773814002580166554249829704719453681068187494221344262817322192517544016742434297438308212604044618906852958784177537192780950947092868215836544886729185000731988998370316227622781174012392897173300924595952110060506521307511197779828548274505981928694270505314353394079909995831711641991799352608554548046012826340694560152995255885045628146009761939955754208847251188182710694580447948928625209994054342190340069729794636869995531293177361672118104494377151542152827696669775783497648077150045224381454572839023412152313014740723265350601991811606809097373627543851454306535536506685200957991979083000928833586299419890568752461890744053850974196521636778828072176489531641626638117712210196169711393822429173217169394196492428645248608019840898550893072269903080787185096345871536889141585120374744967172827501422909187949814319336507394683862263294905228753164106976800472922288713189180019061255304981947234530901951331930392791608117930625606411709565317703822039900224681363378458022751919720389941927554244795302667638633225960122704535375912789306600347984261127138619708453746478194567786562926426299215298908976796511281216020235285442294023243727180783180056735359166294257276093584787709945440880453400501843794338155842882433406842265565844093474096442757329858969324254814787740814009666426977527682792208347586369056457570928505485635422453980797937555607179692964252388630695626361200055344240505907077192117031124430368155330510461064654990924280954474211430051483676297711090288068104402486500414122339542627803323797058642111303109331943793721579363266256352626228712511630170948756787828284795550480747030904381833619521644855962023626320740923229715433212845643866518952355466644324275824057987243638735904003920755144053624982448791140853963979480089661448191490806624008094139850164625696951380213211273709667473762590839099562740511845086657642294702368658081717003240968945006284322656821280149230326890937490287161138564322233885944802156256572368906291601515118458604899965546510618028670317930046427855509963954353021781366765261842863177247360106373118846669728279189693019253207164305821451997335820103752303880095770574807816389854377136448637701661526320566860905733498499930723126266773245094955079623947757939818604971335023626338098014091849231289729975364703830919020470982898900860306864871558086578122618274660713521293232889245431898067575786445442686024851638878582592338514481231360564752049957211153401305387626309705297693069975225420266979173723557765128743954804007288833358750797303992996988219228069556554136704434083373478202693815885271776145095484488437286793276060009455409440867040194434230806884626020364201409795552250061299800960338852790477170577871332877301012907214708815865255935899107447352218681386430419170810902897611925906318334284349083077061372582034037399608961494567005164656432520900323262130717963280898721670109906954424168784098522072120269962319125483633316157565082526687765551658653991819294371095733617609047357149635616153110586849516013026184741180977031212311172652109931453325757216271544552500493425007945544314804867517211563033772272338865326166859638893914435159885218150668878340819133319071697532966321168582478653442183378863592622594096412563977328408859516248406384553112457364555629160510732560801883819821808318275795259048450861571819768888759350389537308982544466594219551516623249945516195900667019978488232813291896775026099038803172502005319582979275642753927462414242790853647861238190679788409554867317867952772033782581870691840633601015508219701763258244300244676474926788379082422708222093279904870466052185536428621919862468824058614410006168066483584860613426932509389322966451343737660470494649714276800779033246589547982126815179759243307611111810496109420467075335783244803462230276201641819888543117141483134437657505695510381367512406277434495826774627872422203570903113753445615684380744272918241829942894647619478375118513619817706424635543502967748632585265415662770054279024631558114157064522183309617859852223612420466412566690737316736683471853730186585477554857747689944413881988584318092192276517625763202542147921110587592322167376505114588951202502999367782160272601134062943256027861422753838313630783421075299709424017797930607998879019005911115061461072970179287902864681648091959320615432898848673683722325756555400879517218127075328888687559609277574952964249712630718087134375557358822995043585848693437251197255851591934233539780309582024002574130000909168446817160573840716674243959347356307628213325705813135848772165651283545500071618772189773023105383000020806470929943934135882452401957612530974338902413841799784434157390688988046849543899268944507948701439176248112381117612015751340563771063265721623071583917178324332980426823937553224384218206389503649934648956492315560448594965278890300015768225596681329776479263133959052207909133990901395653520438772603000746783221991589094412772443412426422600505450851292823921142349547540340170320183735121481220641196472542018557556518621533955877097401328038861094097924158463433967442233837543594180183799985036142796933678962299934451282026090508940645130771474231195800041361505280057612006088139382514947541062331246707735052466268345952482145955397714259994708652529795968204997850505086373880331975090896388128406306366438827371158308547703594708271869308221701259596629192370307244954747121382799725257933635559907498639011992557505220823843614699144326762676269877164573376002175072464702333964256235217500272570764010817203753704854400899504696483831872114620458667539747925616692359240616587583434812886946193197935382343813880247857565053859490796728393475017207415426354807810381840659658466564391729446626694453919053297266673033717593926332875536366393040188992860769402858510327040544803926179025108665905113000072220317153782884465030166716920640751967783682027755088674224016492559186915325600991121403658801456246473989573220959433738705464708696525492317742329497168240578114235342552763352570624264523450768522350342825885111785115762391021048134906224437255100935104045257084607206802288473002639374496635983760408336473707241915302946092492899665711150847246113328878237858162017874871245408216176525854064071406978816967697032640294299360434196050163778526876435125486286433381051748388347540072554469358036613721482478730209320611939728024920505496692392620122967012609728434540606482748422271139993948245459571707303931642861068676017445650316008991484079619602081945435695796932996848060327204573786582287077496736967089462267210173294593594907710978304623571445727432913751476795107805815686821512256777886285309023903024827911524679293311340474746034952944273359524167166608777189104816052802530805830385185286972320487155396558097021054606256645480700232082042480468316537895401228594785320297279368606198660646877237803998893667182000133427739744042604926984061101969465106172252387341729147590838163530503232152197290794153976601866771556234854818793185624827369984185037929392936645248570907315662833719351573217945710095227645945937689554843981709074926887632110096040100857832661325191779510311619754481326280513144138003309732656688297302960724213921747489703085055434692845775678555342118514241928112617813201816441427358275945033327017311218836043062490075145897947854801074955269783794459771642802078807246095075370773383644848516810985849088911540683388138885743883270540402246456878062211087708949398298640961313753738673640614272938609772995056775997840334802978597079244740932111346268437159482493038843480133460526925802468554613584189161227553936827048838157932588448486294032057479641173332575218255721749760482519123080152395313641083978803643447038430194936722974063134663912986620693426561583488865599859176894280697173096672712517736560462509156492089421923066701791207196850489249349919121932569614676904588720063941236610253119489114200363337914059916986750205897162381287070138026746922057061624123249475452361657728709051162751952268158286825248235224728217763814609248814386730897300543548243316937396411728022053985005391720728478670530981287933146178312524688440353808665134007260666658337967542732236190166640887298152104556957448973300202399943229361655444344712774782489344507578441167980698654624929621938630865319229929040438442313536603092058040280878661994972884310760582072697487917142216076935274604613037575356020377003845496181912563298473730555867524680199348887708103861335090467531207679549968676627610489470575272389547484449260080349834034726261377238360872112005339859629073993066342631814584107350569048253860988370959110370836796228850998448760340504503035576106217594453086528417200798965943642051839408791190211447839992369101707941898376062732339545648436789286582337132671867396507533113556323018343156994195160199970258222923044943915921746212298363075786598200463225417512991317767798492780698975679897196052466231672090280238707501319894946541799567752784548090335840436921648063946972348924266969327502430333244196663245313759425504441932154262647658771655751055955646324130759222748179187762029297934079794114517567375474344896644214835112684132339306634620544998145240903286501745522888487841135736783095909274656612398468984873559616292394058622669610049287004965404826057791078996307665629996909749720606842003488539603167580861041597351476544080747659526295153528741614167193622631952250324162258165491573826324625987502500865844104424172328865894736630873697094574079925326452863158624631350790521501680368045113396011731070025157192134216521779785619104133275179371341095864359400969764111392810624668881184037216362399035806523689858029013347934001335396814167953597854662948526593712390391005509854850721617975039257545238697028949506285654888095100943617506367815003680711042820136128767745073257469960949230050921800803837443535781757294018923546867399759895383483764087796791227250261151589933881944054915552008748021511232308634781741386952110665199271191445100848444146503396403551211639976527149804229790552410574414472965333573504981275971904119945490968741589274656454960996995709178130947952973919974210634691874752008664218504221540097773108588366142013540115210984168280179025202065230135403292194649600563709037233735087286643850836341143362039599177487488498853706497374691819960173725934647721546878853960024399171297323138258563725345799408806084822885310733727745909032845757560916511550202397861672864894247981152119820452849435736889480908648564816756796037549515996941302487900073839738904458706560598680695699401712236373135729458823542849190878347148701866417406021851806992306419820812912827002165392138013747321291825380248611895546855927357265572608732473077120832098557157673123665772011162559480180681591471508333516637625361864051103783883468113926661020453611741798201250926942471667285258256275690636877547559112882500715155910237825715172844817349388785667674195535639360433784889507916761683522728913798720859449796729584296336999604259199950782581101807671124826108858722285526927167259536091578397653506751210247459276641659140395024146074213582369312670483222570469336849354461668801161194495607662338799558562061768314919417441891571485493797773661049299421502121247033979946141146058959993845279790950019083676365047187669649656404678534249795347375115840720328735795795293737262569751101323696608562759429517340934821037876688836295747916428621274406098208552060310215984013410053143348596642452210615526999709389055150686915878710715460973002477775919519278297424248647536652272165356326890576718661357070436698156962587055250952063675429018313678119834458360315051084782558895235302325495217488437521720831747255530415437678620165752930066888849935244341952904064842506289660222756947336991922017235535808461774826674135158141944576782137407095366973936249256823754369432111502734703193162079198523687348865931014366294508459984249071227306092966029795573848026329685730299874108674664785051067101902128565922138752930704452978946645549312010355083159484139784629337064522662472439000505466967663125831252995371502957870236356091155675484410939800535570586135965237122500590553177596561202240894187894934560090212417633664200814839930415233282908061174062457672145676786543438278597527561693816101409089591523960860235992303079534791425467381367821974864893302546673188847480051206268805184625551824294468554400982253857146882134881437434695627716168956795195376722365828665622615313254301763359285991481269206099938293950000225170942803106279744817490874406986873553116306098872924548563885290074418140195866685630674372190792924811672808668342708087536898739952504046764059713484594697003955301772794191322683063170715969234394696699145056471730951108737731875812662269209264168009815996167718948386071106198392533070612903195417680417838511567925920313051821109098024385138507812886960828075443238021448475441748897151221755078876968023017151111928310295563238665220615136176848269221674789115801112904770391887380108232291883997617143052350490530119432975343389585551159544458065530969825032238855135911357210974464916141901304639546767954067847530440534719031253081884878751742377329082803067717354190360711885055241683631327712217270792937470548103362784302326990448199656903620333013153074962485530537622130748096700190955906714733474835595032498401709872931293144844820840425249390085005062219325583002887986495531887052559973724067952298645102855957606386858979095743836128587407451835563903712727513206169668423191291994440179867797277744811948661672020281314084187801650193715886172748067765367411995281954249054176060204444923560691927445919357130871140214174560424898394238267177887328589056041209025107696259408430438947808108696354941185581132095084366629390552947345273648254482280826806427653751288870653813630611126214798630164995208267070327176358920867556064925813589653835835581587091667372303533337518433349876450561862673836497095269089504786494262617500017619657580441373515737379265940415379780493528168700671345810259559247983219544759136867368180874150553961779111861318241024797090500764447077404348268975619919494461112898517534469837195107932153693139127559757007018375838818077329559318289484036463015295308117019728580387663408298588210997271530087729316659004428157637592804144488789938527532769634220117129244221471841238656487988849117249053972248454274156387828993696557781244583388452314431300388184692868742274389453705573990616067824071953126657664655456320077003299662406010159123079356759969673925291080779443203139393711931103050947912554578977049335534350987346914820758473395094277106021037937444787345601693852815692027002523363841605626809324420493098429101556111388703086250965648891497536124553905240110700721434384359365184477002522638128607413521045949148741877908124485251105335856072369251147156124157036456981359942394974292950025075748064557090484948795842644042696179890516458546530214027931409898522384316927877311732499625506088268032903463022007238466922681738858384106004187766013792518927032209333998715081101200826102706497024820043465722161841690694214161623392195865301794203079511283301112492939139148153709291297538898196630346330146813077359267649799756250579940975880937946000878817601321810410234888413254354481747410327630361232594669316773527059093984945594638570505027284057670665972325498610170065553158023156396750950620819756285905169976045154966785740248407694492864178829304884151150703902620454310313234470421403632968834938942903546646490467372206588984465432693343129559727927994048043587313210639644822060284652150250771505605898890243534765670128005198123022916980215465813898122920689422616282415359008765020234603978595713186793772634549865545403019469167494558452704071075298217035683469154412505680659269899823151075173938917653266503552182821552296178470921904629743998558999516750609615416095471908352308254483698142285152576171848786625641946665924688048014163975495952468586656813776123819946061320312881885450332934832733864865644341699815139999543614398827932400138222600574765773943888576938249875884051948467127092511496061866051394101886050888021888101877178187504149553213987909075689851589678755473973671470414463602558866526052967894305125763045217657034363837793258141097951598040774875591801439983321601340020365115524357774739273407230630395080197112732470970351283300793653517394314404966531188171724054550856844295116525716517430245557356717560394085359026277274862198270147517050112630266975226251651589536477798693674831154632870152826418176322007155587743058171058682020859464661628288081343311338026733221702906201641884034478417866211192370888255521497264236072764828109366021785220619212213441690693935548673878109578803677903019575468332598578099703250615712224067573256462683976822822357533202729627272167669193916169475826993460726226286632283491176760044340176093793126093286959219021541598238660000218646029520151204352805642553126981855804009718897136173189472982813729292838863050331150278964860079181103834465772578218102489212727960550554677395577167972821632578102748618778164266319743389189429942524962253241694374679035273218026801905969638631583469254276653139198493424177421596977573186863168165377711371066243087165821559578548346088426145854652134881128328598647669818994042131485922255437288398245127780725658127630459084763473409827270581114188545177066286872347587306291045939420414168233480048664926029826954350764945634232301699697749229498259731324685369321500375978706201207658511939585564462300499296703530005594197902293126440635332592424498946645284013642951215397759937948494970699384701934430508948339935777045087562062798198334239074920770071974717143482394721809752994455578130513159809611072230430137655228730325942094832594125219584601613585615447534512328536614123111288451934385345548390084557902696857407652189234040631076953211480816549554869792744259233115984220414737733119744803857221410041374524702876869107067597494202325453100711545741118168865158821927510882456007370398659584617866805511617112600452095731930039433917885925586743851311203795586821927906363644749958242610720297189262349446032203860237573709135174803406014360607133146850697139950350188897384834015683958407371719170131785447551836285643520867078215300817273964973614888396692812467950856442405119944053399487976300539525940231954742483970342782758473421537055270080757494187341688864659230470168611843357659811128794399767577232392146337602579152635970000260865974038884602691985025028990012269768113759123422653060893048811292958615206857519550249305347916829247004641107546138986484995465050969640035968143012912417350120488276891657610178382898772513412029251613634815372691655605460995779537253231757711507690310231214698891699641146653921610940053691160679846952434598806683331759099467410919700185362021024720240038261600938681708112466791201102594315123039981088070880186565122645270408655760837241755275054480843917840231454545658295728491659683892718481566081713545883898775826857109076397524555137629847549194466322503018106058281629674217643381477043662902233453036229304317438696668880721648250682480497546705005388809776708514398508898890669400943904410381545253358261657393192060521507317801501415073499077437545710100199741707372540577717466757589956868141047610000279330618087145682056065173371539281643037129683446128896939763478121031978377615953765779074200983155769736418703925214465619355627657531695366214274868335572167904441336559106311582768292869777097150995370735481610096898359227047011697015423995343793146300373304318042455064813722504849133267289646983538349899957624354275110308726483485530489007008566138476515263228662785953179731798613229640272267032184722220906174071208640668064238426597050321382337483926208077431677932398559982969114090764290476160044112932129850142522291763026053872307377263501344523478146330324531367605305003319641395310312878159426861349789650456843582558780224353856056326856331540126632438323284052144209973816254106751561091824415231310216336176841955035768580081909878248815450386610518528075908555605443704940851260095828892681514004573642668632379254182626757864042731847018634955808356039110670989245994629498538199407147017770210885977142189664596996291830702724383534960537454043564208270108584381057272856878839403976724279457526354020677596995565055212853994562438134159681701619438312002083749587909629392021834367933634262488656087461389755811916785061140777067292352182051067926316606096048530456221843783600734869733517962586025183025244655736756633061907394703349142692042314506102154600000879745187721834150073128094674173233898612631314007804136395116633001718107919037352744071725165967714203633572504130724007209026501976940705836504324983448569524474124120447828768670264769766088285625678822074004962813518760874902759359284954362840384002816671145177148774895203304178111730362210032968689232948052947898276402711796481101442676825074857091797351228370910908588448881114462964654287742860450533701775807741221631738691801130298650342015254613187893604783690454232296194245807089846485748170305176318681223879345650401259713771961078310008266152643828194690950008293030348759885751853097417183712291318049696809157503738335389313553577219442052887442354535272942649351144167014679203714515877128601646985077949448703703241016063038541604533336930063640955375449103835525394258672074915692879107357475335735001062330927210173390260722735954506443046798455390836056561650430829457851192124881262225478150917721574838046987015752620515404703588568463065365493352671878855620589388075620105494341311894091485972166264721370670285377600286871647203299662973068232675201584379477711664743594472733172634950504053575441659560500226992535351013291134887332900998009598805071290692008180378806043134791342158392385267470223320210781358903313479824003790493398270036923801838110301476711789178135762611951925172910401868808785640064520508795495110801103112397128820615860594252388204392774445113502848475392363126501458403270012796140917012129945708195167987652587189090196332023533683130012083015317504912569005175558460275143060651556265297318313408394822713024052629292582782827223409124821354225878641489984963225532658292078753255379718029345271374739269584806088213912139719583008623287491568550486197918079491922313824728966213202945515925752775829056293963168366361078187504076892731278420682280139538975097974160764509131048205851329763134797837759568031817731464975486134298021602777381020719211556638575347146937055872802809686310264886987851364212046359631516795445621281355247955151904288225379234095993766742114718761025481564958252912547864031246266017630276957299362908070488099310225810859927406420501139094490031226707115240438833465311980677220481768400794049699887048823491891282644580860911607991030568716240558704684194705005218479930168415188635775609833170292063510479510959313225773389630359630371015216228849820908033576019562099566114878809921366027777812810439571785054721499051563051608619163087989327457831557800152974596667131710365540088106727677388138704226567834962848804228067761295417419142350874682679288422345142636422684034591811270731842439989752604738509817604598184307698006207350623878328180061466249336781009380894828053678228375887245548837498367515638440005621554955902386667557983439615597192166627094683213558994911296539370196634408219394954758607793363568937388950478032307279104569501786430825565052487384193922159553895245312462254763528372506832972366954731854135045750522971315955844734494150716677757584206724087005332877900683244564178183115824821332557881092829420777735172374470804595378667389606347412182570401643169521984323842604133672654843820663996591131513154812665173041125800442710342976433238912057205577583254964017588871591176894752189111818279237482719504929537536112637174702938828239237493677174680665735568520120671571588398695535141651647660767190846437264736382699049872796226251317294392348827196687812496082022172660327579386370703616780889926076543400621781393869154933858316455936420483945180456075026945429319543122978766079110727402909042243437843292759223451529582864189236562869751873106369375794444943504825565233182240336828173897624580966003508256373108161046813514944942963136588558265205985774209722460098847051092645239317821651483867137460162209920569719338898002939813749525686988691000012452872699264049629997993615488697137355545314682848510838443694218245790414205282972392895695537858062323184773486469016643773019700045533581590962235639998715766953996487137090988038514401495562809907505847052525436496503948177543247965622474078846399065185687195777015610497553189934210420661676625390602505459568502193835226239664724086351481063126585936715573933132716460948736374363437138309842396480028287476279808167894352437475555723324136180668571878914762996739211717550810165305177315241660399894453887908803936305306616181861213453700256970269430902921835292462197521943662985916545396996239831764061188683526978472875910530314185610800290908401960781415117024312717260125628742423244030243232314405433362046150611301270336149862581838589491621247252815916414868881785703203828873871767073224665851774904759984602152749251792727564802468192983235409294722233357894764511463746013958474870811140566951434728244991289959757861619252280845687173811616265847606215293114325184798501478525647238116966629943940467424651623787021312559667616550198115666109035772531443918682457036548109387960280943459498425975013652008149278169730901669452680060812912446176885359441772035224871162872584480964025709110569210428434810350255293801520913233409665696611317416850203773572874998900869123722099083391336650589818258527147302963599473319771273815504263630249738988861000216866893192399138119340653626241098879280957099007905263233214475433829714731294735634200028617075706380351439622678774910712144047156595614696375059863658349313486077375233505506468853064586563364562436428341292657809264428163805760997133744478008536012353550261039011974213761838701887951795973391308429164188274588888682705441548086032987749393578888036533631151522676673490889346611112000476869637438057703466673098533870678037870185799819920141834372868170406560566885784647822511114477121068607989195909862247388844983421995061374197955687383106351092057982016978714321390648348154638927226478367340345366899319442378608312229532656080645954399678933765941263077884452380813842549104414984574198987321866810630731905292050105957170954860977810458699195033687261547075153325222335243777503585861679282538065500108898112172251960546310370656846933089218498156558250962623936580694355719683180837782047543449752667736549185002826996465101199065587537226459920188992582913186576812815900098485783739535984032171479420332982007362580504207855778705719114954293165034536837127423792830387685190338407620670781912199375835019372310740575203204686531807113544867667103560605056813764298089459124210915749978562282422460730107413686199463234843817061525221947611980288460776069047952142951952509782392080942387585613358231195470643531477803999032369462934962698948169729933887471901578933915713943185364817157983669377009360790944104346874209791818191049135870505778051180663709384233145717360546997506344865053008967729449999991223670322771558974924542721762476714490821423107602754894234165660818519451781318866093573612090797609514112967494425530624183660840571046979179484074496325650877193319134745655623182894901230057780852125571921073837518750989290587577226579821087917633858401494162312166490394984336650689790967103272231690959990378736766117893036646397903008924995016413609282685997887353803038247508054200754488861539421711792467169141511589581215464119774126807878020489624186946672747207312223097233862859018502891511253471192697764479522219433326951322949036153145303404264517975165711354858677765177581257028572413411167725743265757035956406439884359539258921322820464644416762793499429407103875020346427763302050082433785576021357071780942648831311473709455740972439258498125735210386164701213247077625859838126908273300302796807024370900336079729763877516886098193025538894626614144915889392800161930611668012925390577267991755148001879750740409765785646766986649816191114076139914851230263342299605052943927750316402196578680584446420230493868896615712938065540552113919689772818550857460019981416502494344635796722349094175510425085139261289732870174460908020431899220246628178855508682801160281851783881653248226148870175762980157956200844925135310158936739310072810567459026850156022569751326204698683951452839726314817553309414628521892938267865029562317657291500931811722735341666793254718547772611425188513991807540808073325048990462959790392561919472626203648300024774730336313159042291656144458241578848732790995076859977940907633071707739319859718024601101352878650033539000272753204767115529989136848434585538954221438819563696841861050914040960874108150311535003925934293685095925092076657946437294798945988050916453252770992629844944886178167440088375900980867966389990551127076296254723511293629818043110011142395402977972091583243119599230814004194893696761234934497048724399743995239804296674303787673590105423042941678337118595487074079905714060291014211036962257477319148367261408021670517095940118424736722512631994223936605521730440841964041696408258639953623688283202708871587206215033776298909854147597865619039752076666640037291848151755836678210395141111465405039799899838701914938307751040439823861299276793976514999636410405249242923721179228381888348816590360968920297913141619839242229851483740505981293531999437197516469458345828781474908794795753572644621995107798701773712296401215427967509348290384538329734105481392618892425380640012690784846098912742762622098244619296278739292196802865928324075255963421169194778832181123477889070731274180730357301896807799875387960114843209883610772062649081628172382993975062233891765553798527676355608619322184771832288150155256214374601947606371687485368709663651061133693899202002292374323313927404496316400614143149243572537039802602404717653385280624777356138351795292318800800290383138319286688462380557477015435223874173721177328236434083524135519185798944809571228085687113422835907710483121495870837826889636226796718851351984220355655927299773537062806071218592061783009450094271929442683860656550767003792105042469852901741311304433820744039122285304162296526845388016311864571465010106514644758740494682836758321695948896531132880127933903342347119377442421358984209175774052227303081233568665762384716834310375019300892697234340082585283712691163606895411425181853536632938511369546653928554651305436826274463346800379042032391882035861605413172912824946798733949680398116959709347617788297055406299654754477888841344759373442467220054029092702303123851839155243794907101339556216955022013918591991824262100142907725976371600367070420561377389652076856485291219590986699017589207697175433518129493752761761467070719363734472032388625729489819649153801348295738871402890513078010074912901011308055581722132059807601712781855062896698285023619644861041446677226805980149129331796710078145653028575146905942132982127899411036106658831683799832692798910598733828528043518861435444107785466223275755005060433454934876874820370370107261087716342778481509196013532663327869643951549525090903302408115807863232905869384794842926298297014423641069106155953677650991967148329297351649534236105988292858308361809653116495806367614921031332696025339047918076973265053265834231919376359932845954361123651421277238684530724427479182583457451019204141378670287323217293052863936055499123227598990902000097888902789768770094865365005221250374941280906137449886486527363713159527552770852042249809117969560169229135753339858382153567333578743567946290132600500500446697392977862146276368261359551192090086018713674255217900051555250588125197787776673765563077936845289862982436606439291243777786549703159752983653414867254189653522245761836323160783833270651958222794207633887542277582867267391468090376029071463535712577240342592568916720962868915651532868868294707391071857990503265708559016137778312772868823367461864265796644951696581844334108391683438972975982161364259183568455163714600799243474471636819040587625632902663207011901884929559587828304082391409404955793194894265893676149475725944195505910154692254468649053096857874391830526180903993192250021242012316334337155515523878833597716193593327951618291608177363120153756401996659602000122301548566529000385048825722364467668659133332061689332541933550537411439667272780860607671828085609117124633528149675520252525780523545478040806038037019482227744654371542133386457070869472369729521280655585328712378161951398154387526118432669582250109566075148548254978581905314646573257148692887115667361532665538494697532514369655695090750056908023843452549583343155450038262458591208685544014351061948121636530872816651822607890006992472974083692365805657242901346404001821898169861417569827382286281758516925808699785108271152112654437379777392728983108228332281234372646375483320940458873232358783071748629115357014678619317037990126501732567454928586718351251958612660649195083285026279702957161633496484073745373078018220372509216008094428319603298205529888329367604797938720215049921605831390281645580271312680559483066835907644720791342686647167338088238856438669857326131646805639122293001521073604749266621565376614865801500376542061552971758204027012153889127981767493594871595916976085626318760724505963646721363153324345535484990506267909777104039501009454237041302383972039087661094934326373107034212252717545415753926028919317451594510131240564835668911061530882189417519023871677909411163695559192458044772382005771765416042194807433089558861829002526110321597885694597632991069246462929346448534229739906038229463001323714464519288952751861271589627725200485950722720031832296275764362591881051477462027044674607328865307680731444781008208765897437766683356214428104255410063530221783224035227923344337052730779600442408289887092468447638763745118657037823274278549952605648203885427895256253416479537521322895833937867650935082340781307599242359546956735807795364153180016382825885841637312544071027785086704015185386918409725582899352794791604859183410368694714597617843849499393162402129521439402617865593794607773126405357052838092262860081091026921154989086298381306723553731227695871316033964219280682202716774513782723511033553809838563829702401687374299459487214779028215973638057560522857575196788738203166711489181220580018590314294269355382546332715139652995074789699773910512141831337174104436756826135802771426921432347379483107976136127783366583202559350588508643150619475080898477674729856817364751510948079797916589315297372042863465509698551520913901344494825246769881445141901504332362881334783618635890408124616932349749151716012461110738366334304557383360247820861916701012996869751072968191621911687648767489968692409175962726045490171827487872214268133802941729255701795209094043017582519124915553771679768019188279436994886447130922473082060275492719878968215325131211820110540875370062996029870365990401634669055246335340202209535975275402987504115878350027934991418626285998021336977140911656547531505209030486814423600200557369841462877053241979231591426612986063453012078952474517947001167531755283534883043836537577534382832969740032638616695786620440033297981935647071847960122253196267293022335560400822748339052261196923496582283794813186691507638960819577654055910413426670234385466245721446856279595668747324045629930705629619273078322017614888690533248545264395094674953155342946473724265179990958927657083657682087144871872148320184896390825611786421208366437154962993445408025730555063525429410115337725415255963856379338811606768904068554453758299984216837714955707256507884551399796738580516865273844324853118035759688636794759314908057388700054549904195730077695099974019055841698454604940848896658440814777101553397059839436455199992824555774276607272687512525037966603575486998603390896621084008345074826470999319769725412587880664039183988708599248358735962874568558364897174522783502213894694072699811132698392695114934869151995618972702029824829048084037567931407810173828473097936967573738090235063166139694690450587511749361796260113461044045472210713440804074618008643274458028334391215493912982076918659604677103202237262650385306918727237268520903916143450395554111023877434059557031901507052869641171516522591780814226493239318164731579346097814385734362181473444152838020194172248879781280211896599530429547756104055935010236548149716955498899902675194176447562451475409183727376831896184892571466367763403185797241216233483830052391202278540799670163926388856332143270421587378244201981809501905201254847017121482745730919109092592384800034710433955811639320574889962229460370642647823776340127515869333199580849185262572849444979638201775439220909701817144965973533372343813452215805595712560477784845671609847808455892565025433586134381348345919736551081664069967102001168543228071559573504812462556585242063790176889251275690307811433359786114483887837262871753456247395782925147769013977772420438649638714164854402591608655469036626356468873843943093774054054980920120069074601326461997635241312416610289030760289549547628269426477791773253566044720926508388759437255187775708322835132837671695224989547410139788221759962839705852833492638013985352160744864536221187121332873417566106558301145485230282827529260261500686901783022666722243820170048269678389113900927101194655739687487954556078525845456649254808081812178164729943566217945536638021239178174522145401205383492691971339402143021320705455251874701758850011330121582782842166545255398102348113232070752276755281946123797976913302982181359009654309051581639209815370533009700912555894281846799485244209814170721245422898154411117043121733012677807457908354202986210034604635557946197867489994374298816858437762276151989842335327363083833740586991170101488727864626989020122067423316517494137313268541395238142243037359099800320024217442821883420068123446268145024328742830495169174032881182361692525384083960538730566933677971108942081309479947775151963566120062703412009473723562106704279867990592142939663912655180361878530987527871297948736770586362833052590790044420417057230068302468226904058990059307031509436966612923668073121361602139371321664096989206254235041539044281598493329798082404222034129226760669784744879805870200065055909893167067255539845925133202211215027184102168577806789538271349635045924557420012227175056812976384814156391466155468221986743729807550755909967506767810396762325394356289684688352253274651397553625602566032907605277221449806056200550621254558133876699002814355931195928206885893124161139779194621129270302841913560258798035127014617935938346098016938950990082451613511423634133267232681561538881006561586466410681513786119607487211955776290107342389618906262867518751279794280892958194996777802984468997715196400746329981379715120117883921800501712588809922983234947121314021186989778879772711894414517876286853610569155415392939958631818323465995515785510251244030898020230155886055726847124880956060358235324096673705477554975453674359876150894438412545494551713738896055468891257589713425879940164887295503990419249522202004712900332182363103166733791253246847288801154570022088129787045102326231691562613682599893403041410937881571153457352480360440977328420750973553849782272908870579929400147670251832106867056753822899809294374232435492423192040058821598830655442861434263419535111194062120072146573852236160296240446318246267012827273717827242289199000201015647611092216805821625931536198060309028871049269140022634851789594358545747751672895257688790820323152784643236940711462411095606501853939564913284264209504147577204831726497687448432413218055490971571314053976730107302569122109486012683291068632144309233975706110749689325060236885704463895369058393166908591571081468278118148512528439487385939519999866243838915221936800090649227433000389175098884784044122605072091485484600457029147397430835656959858307063942202495081276633077305376158064564385322015667686979096452039660155882495272241751995916874718301630589309980497951283666111564220387056516718546785443209053206616862865182640228585800611194235646452977301770771911155383011738473620097370492073399574044349652301096533471383564281650097043518935885731854698912481475750135361536511967141318747269561311413441329262475850100449521288746789239284936602591440573173858461695478140091553627006191972860087651105031230927522757852649891746423829478307963119696113262824902341642349924995271295863410619623713022530737418430081248209045752094175152532408426023897559196220037400718751909851500966809377751671464636315327455644727963821386373323251968858725215515379882889926267880845668996021461977218154622736215229934509257889029677452372739581326801396378410659510464643147792183897517452019107788279615303241258570233405148151235123113147611261163403663600734249150417644469697673283375316661612540890735137774277044480344963491183815190493222866022788716255015658765062895226195008060265046821237599962329400223243666601944818664909504750181667851201731490118109617996281430446008931924162970874108296674714278181232172690575300024828709589953113827298043714782781435752917104173622004838568226817939601392182121269210209649636116651717010307243784669353603606702897316038166035853319965544985725668018116423382092028805356094851865984252142338496430858882633894017682317068599860330467876957429537666950446308122590458106038773824972757652443992926502090709450285661331613782581264479311595274526291519440175557343946520029347138556565343464979658652434305305808637267319147114480636715021642111485628055303579717072226139561605861840439517117975195171914301837106265459541591201753225323722328172163920445259207257827042564144607778666556812627071666389120677120967897498312845709235840733371609614092904546439154335091918522188684911920814700623355439200041258691572498705790338680697486848527070021768817349760952065897524591168886176911307316659773070345168609779602860168825438310037147554535308951985007586269166032613911253183709204291755252501408639186712257277803549524638932351197818215286796345396769707379060613220868098534252408900915841242224919608293027532431347600814532708232687907617999064084821969575402037113887662722613987075903502597142888786192040517125989488909424608654026213520489523502669313294844505396710615608741170026379803508997706684120308895057807463276983428382429874607032760907711581225308543560521558429876342307910565523535948622579188305187309229482682582227068352220848794914025976081640180897909383103878857786431106593005110044641691148995830440141183889530336547959681295809135175265048177329810268639144804797699440043750105785401990952727842848649544783113005392724783333701963454928529949397829216550891339700644038349801332168771247757552267915703242194153670092440997567750663432028314276462162671866647635577646996341018278740183156613760732203919854870259090833842207733963393747184938837426336923656277045403399761508645059241491685528582997677713482039050101777231663880453848085687137947090053693935646655904489503586945171167808249138903890537595166439185474965840169754638664917010695116977677023829177337262881120913589284890130607517211504792987021216132987901328612197848846186354111206496691889832191936952846512569785358282773858776943632356961961761858600615632538450944362766904601809299795139819458566506083711596056738338535223749666816014939164780719833571144790082150314963515541694348338641544270826881044454920538497804658833760232046976115743179366998985535453730495906490542147068233067570818719801620152127423195018556666863549010190145967972475239400823397700644665599106318082384235515733089987415500219167741256464396570361994929453931227971104006782592292519813363526687516509972052707458537754263867479582258752332572465495077173245481701850797438740948689221933308669106455067498594078380325443274778084936681170239534584064090225513899969926344204206054995770613070306327514286757893006305240680459237466073822747785292740130238961559900127149448858594636728113982451667818954812406368396415895257001177993361891780843881097353267388539553118015280570368976166994277589469714829094601532988067548746354841861442127403282582233950738827993844180726029124752630685564030685755701293778869091214331833543457956652533070937817276496949701043493837509708018496697145217465825669656814218416283455646445634016594648660194485915091012641184733323499251704292614523211367615625872076464473273024003077237133306897716645997818939468132105525942737408227674164320036209588691372338372495353918399400682677687401285880660032177335603584913622084512987813324115139189073141096157755105580290151170231575964291286921253638270855026370623101029519744187411958010856853525970602737533798512804008212088177455926260771579280978339873388006525839262721757890534397315456138307651013195960959141772638866557611778185661380595149723529876942185947701180631585663246637737826162566200592273597037140773711409102959833833708795487049539057877069450567278540132161649982003435444297722236032054839868863269756027858578418682276720153031753731168350459975713525658610395594815372088752544977957349133389190353359246428791711566015126722846234160599735823262422705818919628385860892096938059426130882433880101960467836465166814794621059259329930280732385071233188426687888401756109766295656892977949661382695984406293534583720932134001475145546520343143888052320746109152089757632596558338557285666199684051628570666585438423926993391010319467838535449833556997046502882674067589479585188423638098205338827693696647053635492273447720806951183546185969086328663380333762750661340734255039252442428284815567689039679040986825093151527023844701327833002909230504020904613919597294220385665778565857787170083263549921492433015753831431744605282866426599874910816706117702918987948560831326937771474751667859216471662496102183472010432277181504118125032800399131857498432953856055559304694227184288322633215703308446084993961666142889277144515668883844650892114578953927630017239287272647601625173390036270330878791690722320783110231291009997970298471166253453782765750984820997294271559738382504754124807373633003782241435378036307867463378961205098939914161926140878664569043330710131805937280933211023208795642038132922290374889309995627824406727027494929707472739201590417126016211020319100432159497422565809037081197538765859020294151401628908379063289600685941645096803075608555201505848619051508104273951707489821070112023566603470993884286766604816650469474635506266060332694239591778440651402297903620822405578023452030376109840505748775051877915400958710155427510431524832416871154459202498809251435057516492944291826383504637866518815772340596570835537896999150659608445374343214920233033285503544231795507482235226703708724793885746658121567971632417511613185993926270992063727059812423424506540531006483891027350500477804518767659743070532790306862191256955304274060896860342947651336022373449983560076473966773574609902488817046283868196769738412730371359946559448675943676137411733353589183117134825548599991455247818465714927873165000412848251577163233679448671829224461447614133104913768910134680729539370154169563268823830539145281693282366873822637642251629742648531414202181413108853644247624548569520988711128609711611053413820099236136032698015957143283670923658288134119074748579305404452770541720670650939882306308811503817770720971830712095897915696297991815167290671716137117528036042809195285762624527774477070155131776525328087087646530250433303560625762630314054269647857783872429977792603403246122741115146410400089458372944298701942620977423481672317578367086272456390289641509280625839438532770915820721846585324803896207765140119070273667334203203494445456980754882040139737923041129887200188162614170522753864261923208197949311324567678865299904336060240935291877224779383594825508747759960869764611365273283471850511337445351356902244145971727729564878488357998818659093157782265965451002991509189792896423059361012832890722009480382144346964275895768759088076008810887734216941776245339936643960602594492294269627585333673258079157273094947405526613770275828551269717700645691130578783972410969254416520690690928021654669929495227059133474767828715927067092756680503661352006380313608375248534875646277280880106403254576495371645695088800150030508895197524784394980954590470880184000093811111153418089457232657527451104128806424098398220583875100096740419327228248866778308786157749659067887529977311658388826483496271343412721862384415495382161376806466069938299623290415306986196803727815941076998160228413023853833114700747275484917775700526607848610659520797433895147945341490613635960800736685146657396321021821541618747664425580908499366185127217679019747274071173724564440429727403249508873078248195432885462790892159297216872383996911936491401822706450069568718221724985924689393392668245134689080963430574978627288264115992933540414368384316853960831827528113618093907361179986920795680990270986624128665778461355542549568069357603668410074187509642805017258158635479923500676412241728530784968296574957021073680807689943702827325023409330713879172300532110082255687233124184833286375691194024525929955011949052240203190138090567549186275537220442572049284379997069220991048639318017693005130581796753854159278721788148352931543188036524312155820546630390736888903019101803278745876770307970010099867085307636804221928262534790336292816363870051765985066931876697042715657754297258575307658866177838755582199106109469281590845199684404211448736593499874540325293424294382294940559289284956958268795267826204221561865112613328005602971854690314997014423893918427318587946722391277265787793486677731590594084043315575971815824789001851954480717384109756271050656061899568664771416452369032028997726523384226115633207931488436977976111004194004706523985962433597327291519797740665674780069945329172641089698722581944736157696632509083000632031933991617395232621717799204090620472923494387746946657377991910039294334443112429054845839261810565913907035008765145286590202358144958992227955344158291631069303099366100835545681809634006466401358511407471683697932437026831513729134450742504420625453871435947747085708139014059463328471638990395955752407789906213234662450328818001158065297214823514233693802590352341047172479495395839937175853849303910361960443702002258503712152167716396874443125900055249703240688083817719677063002755263911509272584024305450125341336757464262778807407256380956418417849170735589144760781375525850179553063407689358481095996451614083292475040534203196010448677324545610216413174400064647134952338767901412311183327342482108381074165857039640584210323696113766279697183886119687928866380061966287780360954586452417229969390401436248778703130648684062549256305513028005314714948241138253604688601931407300755702614281331203160654728788871997486882380392561610356635405251877817887659967290537783514349919422692014996966238549374642114494604562711859353933200812763631715139144237534366563871356515636447072914236378961689395406231577812319123088631739142200434984875302698250195309106511755886755289857817517991652509236933235906795697602713351016452658866298563913375369865312695760377534097565179165253233129173716756672476958580400923797623223125833984043655276741786801641175386203062053489128717351749487961328406614360291591109589622149759522071661364222100915241357567500290060063463469479208429099514926784132155536912217645816934075545340051757321315516478557765809493295432155341238396549490207353264417691508858962813817975324826488594869034530685189691578688225876593152804064564185037164186807056766671618550799044718655955703193289100992832702272696583714724944793850970871323630441726608938143613674283323388346652616863729530250602784256492054283877059936073397153459912666445154915311270896612572847109522275737860351906710220279687980362032002241371776839197087827594522686717116819953349018201331740509708174050751744410681145159155712661424833594234934448286696491784027044755413284651434632556118147509430426199115246355827919351943420795555298991033394235711641577173984901735490940241681782694508797316204867256194546392700939566812347192833668134220404899544748953172211837335160809408239505723573637570941238778753418756038816061253270111710785214110302588736464714827896176499329614199144871947614841709919963620783072721671726472779305702110515410964413408523704602165749707120323471574413241085090824306194090911686247118417048410278474336124738327706167406424905552289713427141458812918448979225331597140778318224366649055379038523696471647531182369965846634327825234686459308806037829940501431342051370019573237690177780547621228677136711685147124152541537559443522218352421572771546896258240354546406616281850765986498718715334532706139455557281566810888879175516273735685434934614720521427814204639659364873793271805532268325743778259313666932178758110640721536802986063368326603356208133670472996083612772746066574009826706677277817637683722558342561721538517805207389118247125061680384349762048485622602906428022423114188921924016076675245284117496886603513139622587102335215367822396164224004156250831199152404026244479143664695308213183170932621465413571415102254657265271098981060044778367868994337259670805592694808082953510302531110769019014320124530276006329237353446541934295805137492585696248258291692747319565280368774162190636411060135890020622048020166310990434782475230693226487732438550518406008096422697891907000954365362993508457661708174403042208110790234947405406518473012860257717191865433516595609810082085768216883256649962335467481149491317460236424588265999601427836667932661695120030210984899653165171999323127682209165862840649339934179563778251587727319257527094755043815135811375158270300724909328085770109247706748465929133705713487671308420451801581653212985379503269170020521130290748988388204176462311552793620531125161983817799739742199034766242809714392931656827052075250697726117129725711245147571645264942498165481581211308346609880895236364135088279969665398098913400416142444109281718877141604369158057071072923724752881073133351166916335472102612469532135453076869184676424400549956178982775290775191542071118587609284720335730565115646284616650443089419203375666363672629640582851594362999373307875296317877729366905331236582797882925901124310711474404654129155850178119305625318883581677290440326720142760477013858503851832856449530304500647690925944708924431742570706594041850545998332618047022617756007246181863289023882974449249402666281006155912727010080354091242080680777672867147349192426096693281794585333081518465325637229709850222914945144799308930263716188049960065442729260478028404978832835651590854194109468966980781598369489162244439703813048085730830375099957671751521885679674381407306998131566933783015734776879033191877340809711842252580975591130333947217978605226363309847540364579458237157568631606686810400001928610798097018001584059601755159206638733514434721157190237342407871086891426457775327314004379604345685314758945887877291952009678628326231730475714156502946113121528539848384812718869201054851876566682660957497674121259151911334807166237340044991891419254891907479298846052843993759167658116389592267199965228143433070055448426176509674383176331326529046318288687373943991550051267084619939318248212953261232229321202786111422196053800261374311709641390894909049075962528654946053170811782999847415496256730872988579236528045660174072744197409862569107512327226214287857635656993459720665442406392499274202827165480131493099871565851264013642475896120282757560124452049909984828959244440126070207034496251329591879744580540116063322153067058629700983804848326593700590674137618787887366631722055845825685277627870155016645503691923703048214842090781361591254726824312523728700253797675847691187865022850434005826198926212010268243209804037557097373060506409154484973246202488748924782824232540222225581657148725279165336442055269094879285578136057565611746119638858285071619583237829056984170870968628753791504682483778592643077558446381552958592375592414472823068490194708226054625673329220096659111313639787500193786881968617767300112209047406955650930679037545899474300751995823754155182806673144498941519835885206215472823088405537270075565825766541165262119133254433865382781791939067882729537858886895932879995894986773528128488210811004786005698384929771481026644013670477078984391152840251025965412781558890524447901318156147022615959498695742041562953403716000389802314958012959162126522110589176713346700580308860880055765558596450065159738749162307980685247956172954378444392139194535310339527035240924631434241126357810252104083936012006909402267566462753919683340591262978093445119791280283840103718665415497880990590493326331255966173886647281310344698650320641335431468298872348892672533686674223790368947708511544694408345521978772200633352259947329810560953269027255901553030484991222611097349356475798286996931989816685114458600002857029747198247027009511772227237609674734047492122137702878439495012186055433795697337556392421346076067456617474154742261858821553873406537817461304986790131166298458421831677663511421432325311940619827508601637008782440394969525955254737740903841010836958571035121606063538702811818691995294813602696369226090484316710394397358039125286813522106183349268639361341380884776137091012403648904805595614917013200476403149427775429046568212770978593543658057332803034376998078332439472482105051788130493248185381434992863830928547579263417174332647351657976099084157176781981778618277586812571642696238386440193031469688255874355082874307819421269651051384828219104389771839473199993310646720529855904206749946184770137491489993146224025993130061842747778356223309461403313830390019971155122444941930523089208070099124120651407466590494176204847480378444497265647816024734266117363964347418150989959745509470012486099259667892388132613586840364189970859273869299050358776611117135453823556269237196447647333190828700529013000502431730731778650668111503826507769394088666775786404652492709490964831569015783594433538086217871109922013457460139102116307899382300836031796106671746350600625335937021344544896601667586937122222574530541517578451616903880098138533630789642292390456201347645439438764464655031101415749628210607805463898253796514058966857255035411100156041021868884370814224087728198596073512404771924454164886863991396445032630304389907643467758503060771251358678854158155331880017022982534641667790274793195944806430257326707503710365438591774674626885656325645051468408812721518649293258834211330876728213843167859979922624123917785585591907782649501847638512711387972785723404015456169079795537666206433969954517616291756433226557840054313149644829806723665083418223104093455506865042133551741435474058725528148055059994546530692815569286539620330199877436305527292761324671268856503413886488397893494740395401625948128324051222788020388168634194712214278189196862311543645030775527430624238665966976334242859886811478041503367207609166839465370968481682724418869396564808150966406900754204378010478882527376739854621459285751799117857445156985423234399713855005007241628649810376027919133430179375141574337424811524498934610604652182947123554776325130539526636892954056298050337067711799046026143689560653809647068802279128907608730549531194142420381804067908112020478941042540069724618400229125374440850399636828614162706429688751487435685746563182882544106067227671476444144200683465247229687785419463442374501358727163816023272771695876371992955413051422438867627806307058988121111061100256678103721353300289026862010941354723618247031939577849353708106957397058329570919802363748216410297453731634168368043518293387460774242843950374781846290555154500048374001836717521391121710551897406348715243936677267625769757312774834995228781832837794024616276595774417256124069854117993531775886624309950380482023661701255493918703349411337023823670837547897994064026979399696738968633953079283771215148136786717449414417077648652361372613981460320027249303912223828449060134993207852463190022194774051544790075670410264636548074573507293750862673749974242350519922046456917668669537582943555107316422018359954786048597091966596816352711181477483394161792989146227931473972727435631703441901513543762433364379364549956416140769266565737645651349414953925385323892904975662736456731639482794973367986966720214636348538505247395766357454215048542392805515821529552288627273744473905405822560907684642306104767425449510238464421931570975980258261037707078675731118586345324321220337979070578779650258775755376589026956943273134514084279785090736723567185467468101199266253414273107474593954325362606069894156637003635103482580122371709676964560112052326583975598954083197259062919259563582233210719852357562354105705572337038530340707915316952464512381333379165904123258668583909013341838381344743714245194277730107553333782622816016332764612692832689016232290758499849170979219659188124713824284421439629754987485747009077841294101652100324217086261762767866645677084843834582234485071835721602089196790764698911766310749922060818797304951258066796731879907862598645291429813495966534570240686826525721465302357759823103823195365296592870993702767843354363681733940820275926732389306440092415062014285066683291505582564552482344419851658271876248211830301673145406037920275922105414873428412579855803523469511408476024968284837040524683964920711760523105204554612480248089206997262524919573647321145809774993327466479078401494586732791269886023505709391347352156638412855683723090748412041746248488338639352304436275430074297411279046479138579837259498542800405416363108033660555127714590448166855626037220361517366373779424713711079662262120191586780113026140632758868281203671614938319412707714901575151827052101360159173964094087935004222635591277913980595232862780306340101712672293741176012356644780689770328806172619473570367863807023422658002443154308423922756764891832088614678292524093338384248848786361901874267832827936422058923299397657225165129032197123028184036748379028371010122724748031068776521634089873474234788653800216075855562553553903068160488125525628019038963160571297180387133117515075020324787610481213235769988700217172767015977757286097623864263457271920462237201457143512378103305724958928161449219429590997421800969334873638006311957663562429656892114245629338061614881644329236740469533173985314210620076213286758619619358927980325881793783749116346629934974821095179369686431603680031958192638538399210352716030432220604995947702011304928375278136636500807681861984754746123664316487143657377075160297489121844196017322338286469607153336513557520405318954481915369918827439458302101104544205112131423779317526823314568681661065733594158917032717650234078358856722918593150174335614593445918327578571925156172530183372647352468082665912713664647307874909585267543520286819696982649177023752026638414128131592326019385387756054244158061251628867679971908568740542448387871713180800234064962099470041851926129017803827904029608226867602287119831174761837515734232600075065974547229411345659265974483208645485264748001818849646870397764334406611863230351597891780671619396157250510900954005177793654222799044328950216106120782973962512193086352145880503512077080315687088863493945792954836383853427810966493247775461464069086797774756532837189138918538233405788894641772224953867119831661161797686984210902281128590706914403750329726533620818331258162348439334701984163013592012013097585750308200211570146616758013588099441439823796854749247652499546038872831361972290251650432601804404043465428501449939407496749405655591326788476639685832907632449807478943935143967907582161003290730577511064545438568138070813095982230577362096704649306455106033026272642271360131577216984387895062218370300556820565761966332557310981076933663154561470935975040370114401001062712609693196749531046241194590131942253898886461824329293893168614402099871026438795600672174550772969362924205427016330299364975957251045712813744276979810529857987514867940626102224229774740429005858458539176135400079869571528369524010502890643240024363843809270545159262579703633166240750831684639741001469406252475151745377346124667423895302110405650065462378940109729885122945616208119102772330980122724687382346772948076506820895035275455391450858631171730604845585117618084787076080783762618378417712999117870413756034367846192322198513792676216972747422890996063413981709156746568753367758290866667851324100546059276757334964722100826896492214589624011311323352955083515981473812743567505643320474563040230080771743562007612014864459753095954449123923457628282912351404752486502189343196872999857643758846308196690647466714529111894436172231290219574516324794373709940967170700239499064617618760775542536443576844758827314117427006832751089042359011901692077781685760662625025695057102571762921560219272733580972132352788546605009269083144148322140084098042988832796537750301224038281430933483047562149366583954672594467331658151972268252230334278211836767229749161520369508279450267181354092268273464662677038314856308009748732074191574016699186015701670130185406286437173864375709748303938780743176861786433606623417668084105011950775994431808383871457512397635516439500379278849717099136368624622272525760841628935103592094839171579881895856652340002042315224228792378550598022844421728735355471003147192055971977084877782149988450014233465480716024551418644294524662844345285129289467593303270334930419956806925923588064736301817796312872107798778321158294254786556327506696638221579394009153936841711090282035049456411062746373757529552289970568908958043714732685838959907887721728745408915176239888585390088168077783683357605854105812725444858009300036721222618598775149368810719218874878956769360356351887219950758107145614580831469245518530528937316678102585243469299396010284998247647306350274539916983448429208072056652902267090864699804302233376640341187125773985726996638955960131747038833161105794574625253724392369849043485406989265606544748244235866739339566605910497308259229447758196132851714853219515342385863292091643381298909797969812679491066606900569843579167307205930886329278740766156299967256779253904259224260154887799602083775318080198886554216044011357630495990094388485603336505818371886148652023622525265292608786585915692185249348018951347227680918652207893358121563354774042249051847771832925186225703844173502802670238522383532333663732583325997077745381222466916881120593552238374933120597082724351637297577619654145489596038262383400931420468949546269179978686619091879869669859595630048920148013372003026964285293987547712819315936764606519936410922291911994479845421696475630538659742572048063230545570570803947393464186839121613429010872685743897230046896682247118930203177242573218499187430277276773199627947287575290267684984430201293889828704269226746546736895436653655130868801869374314482486838309882244806497537500116758486270669865018508872974137665182892724033394222554668312370603250839796612845662621999652084571290031434833260156693001807313525268191965260283412532898051262862741807207738751070853204486177245083605719469049336120826238736495108388843776607607345566222947688840586427897199403635043748177995022354125378797641606250457452757273562931709054415337111866577036312069050716619614018567645283633221578301654765048320778764377066433848341144634078673002974141542877653439853366151368676489258970374356006050816038441845898374410291019699431700057427460869377360499038393483853212135941175282220685465891062948309200875907462737079627961462618744967178077011031719345838466221008054826564044687014191123623523377790696024167586297302152970878441227232745275194097060939929009952833481840114872984877434837248244421443149874528113691175814872825514847058691350117322397394325506997503741829487997487680530522269953906355885770141967930667681859110670397895024911506150596542425013135540525953073997530653671335794021139061685125869545526274760288490290316712233254084207993918783530570934347390632304202934102432097613535428442504633078802790725972816823827371496344799585348846841845784129504909812441922987147991362962403265161515042572391179067566114255330502300856703079577285454740794252318772737816077615031160965051182606944231917836532909240460550141508963799319268304727650138487746045391614779677025256253118522066971020845751249741866767683293534633364414966744332770835918513338903891603484586063751881402911116603424343202314704684885283302113645655788081352276215903749196437550142817331145987315377393478455384038316795191843276086878360466998772029197244524468235270025308547364338003817542290312952928548961961022098991223126744463584671481347055474675704390087514235667768288154432162194457404171073999466231445814543487648188738136773216343024559983761916544013325848914636129732223372887822811885921262788467960247553319541303249641912446234888128245836726761848436850204115111224549834201727585853516188262240264575937871647704777323220678112747374283653415170362440648970156591068988655469532844927324419974384944460364504491915463017152314516274894950127555806964198268716172650297284200823511900272499733079379390548655296838760583868333836487221284182699695882342418015525138288483521580935668296135990695449207007325127947719144053317752958029948521533265232556883659338480021867171507272451600439424189042163390502830528100030452687718715527817446117262618536196874669424444094132424277092948107267777151295029566203107337847198307867438382233959719035978496435932165744489022662076901767119707586468387744390431580405628334291296255900793984143680963605414820108343580579817718435982037675872144953181767649200200908379969678647818526644530035113733142909167757675883245281471741304012354613647093045082172410762076488037498544902473117984217664260645240667680078830986095879750238985861547148158575110573574548623230722442717481155874951160604576240668155857609625797640436635968083180823967256281613863731157642704114062343838322008472334248138998031333667152566321810300077514079977684178272071991778526159600971794197033537520877959878349067453044846118222973749049087359456002614597376352715250813790955413800453440341876714191620913784011418691794079868360320539232283386703422905173692806361731842754529268207423718319614789138265788695738344803653459650868580216672899987791804030703408576695065179742530569803430960027778265900331706430832483011567304444129222910190006164010232363158868649035646611061815382428947128458581678813982733933190952655515134185788386313761555174832897677949557088632972385444847540237668541601734862509357930540546019514259916537075847195772188885304824328454904771266618200469941196023382567351226699208920036323947454954511576458091766775932882285580372807004106315139315336847891362156272476695555797192896787535037811852706585085103809847793100761871978803667857063523975530805869159138641481325179969764390338685577783427695841023934675891642163178325707630171988279046711131907114152980242984834918366906512135626606467455984184958807841214066134422511212969349888102561059804740491654099070538299798756023069591616661213015301034737290910183656160725403821896198362200569736567977891176156287420741644909154716120173923155848419325015792325766793552114395416604266208307900032533781195753206359290475627458166977058495741301201738674607090126337746837340272864258860172029979456438364539843167739274808180805314761164702776449675935251548471397499132233692459873344638176894902185030390731397218894431472849443013963542851736257318224624982191175205959771566745536190949856451080965855096136855913553265130870997859497798445965125189636779969185947903888196533003512355014504240790340872762324563243395931869708492651711327664938555315062335471663736046973729023425379307936095247864923706540387744110415044064681658866684569158131708254405104590359182092324935069518619062326578566348180497259353940037923343558150759619154052249599747628885443056131357476231424908506957394727100637998337454796995934741506533371627594396497083061714429258354699457110678020852034028791308287816684530400048892623482686615317260040938726804061980929001047569175716530797711337662481391698664889542596480949543945182164269538978868391482119602677482263660708367903302425630663275153785708258915123754174716631606796786526322406262610392366909058840617672617382613649594404264216820713293625881152571179553538197247362092309352850068026966256366777324286424474572635688152451131327593701219711214408630588798106708635965583240396539743554656094127487948245362388870593731409834414255722623568510618321939106905822721079412683203944056979605537754837953054820453293693153576464147046324383471667908547202737589376017094258047175253077389067339173905404338995440913764845415720407664445384975654087769144082311461000257221457110108326584232352373109773487756397803859236196013341511853920058560469000571105451502491304621304420264347920314768499495776872490245463096294203247677043252859835557988189629833273892294687644406347587244015237314719614572043959755515492638335298183824197474948133583874153392408747677909926153328518121781163023890692327209209997507837878635793747205267409251136955868083922975242093335949089099609787924264394277262081729059994357995886272162105464914129308332449052718687174861494683837368788893455962952051559278624169092797510031110569700165987704881454806847081013695691426098076718148569043742706521894450317035435692759216059129830336927109354115317710009542802636661604927429938568894475428432378597430131395660863395712953708129239397308531373474533968042021061395946661543647262754200640300931879593420675409609542999538685656548645582596396333987525394943561510262990930525644409780615669443760546891119583624503192072149405996258114958247210944631143070925325506025028346580336208608535332213414647223751717191935366189503433780979408812934243106391108489953030792427266399216634308833495846145210135701698626232553220472246984177232553953404290086694567306528936731104065624073110894087305597980051061544596280951845039539300978430703198935984165429647737671392549835750952826927645394526573285068587139136971373791982201881555503652489948738544412166676187804656047218712059929986369751034063591899775657044050284502100538644384165163136764600458334878398771546745451490389009182653806857788048675923648788013872620099737594762013544260423281095301748402427368292832235820922441093777631949310183268230013737814799967526493468163740457114829081933978651260841861238441444116656124338457854035006402026826319957004622312432377960455999708570534083567442919096991943923440512595599017389547849737942732730277088930039327084986445129785480334796761895797935621024636289439040769879557442495855424364177195876179312384006713159618684552721474234920700356802150801209623203108344036074000794829851124708307142531671390459597480361883560021698445212323272059729002235645778813695107702024514916828794675937359264814464221645689467115997562541161713046761464628230630225215976137445075650122344661845545159095864050326658910646284595703670766866781592284367043218160967639033809351542830948166600708046802391844232697945909416099381681827039330296554015743307902221520736769929729085529415958594319042101472679072217587041782291477923710390365560760321551180570516806365132041337337575778939802000816234592063006208320504564787722316260599310123295893498357015903624844094755447585311964576266323238518213004227016123598635737101154877184841635195557771192046734584053048770810798047823825157154859837514160006043043135584999543911040311296638273469720014825763253691599156129997882442813934924454824898572928792833711469422691485773814548786119012880383212851344213853409916723708919487087250151186073971542633520388166139087650233434074614737304770980606454109985199350901033098012316170162498710535530100577485360129407071685566155384586045690345201907719155810649294071322110624305661537369333270801667571110217561665430274469710983136158591479853891603133052688979266247639992883003225343853796930153358905319079230670841002755155495301761639078240937012001866571447199027398695591126076829636064160607799151845274113376577401547507575815102868549134624784221927825086901119228402701924699620766311123213278727086025221874620802321697774669278812299440798997596387021670710494416320911685857394499338095898009362844732482558377647599680063356815062943647042335819198806621621175658633806683055449196804754144754119596226918975585447663059661059970488493524230118537836977149542033759658587644269309770285967676555427272877931900055723361594838954811507791677602936718423064286057669847914238087722979598394354541382410472099299702617878050177242544627177289987723726068955332676602427981556750639041899189396269812991537512488954894018371953953410532302459133274066855092079760467116952958258825134446249172229888319497871333016650912353415529543489126774619548553202627281675927639989276156870438086018089910479310345039294508916233491372674862119584953747366141735161211621951651054633041680871365171640217248078453184484988861777616244962635756748858490488920956668936350283772813776120358697479706641442007314603987987343415026164604122610632438985474522575516975642774697326920993648404588152933859357430456595538356580141553408131070180344344764092274987431514750552520202920993406528795257209247189642091747761026331960283009838142850909872260511638398684671554788277455601769113624135067089363138068283858973501972638220310793521892570037585538170944886194261557014194806220129183850202667331681539426272298225116146742352241927177925656723959370025211162958185588388486060687777388039139353034011015814655311546252273027298216926896815450869625376384964150652462060209841996282124157178469898992214905819566627829538620892885534630475041154310702664594403196550191491248157420598234669990889657173778491902628837974692575357200694149128704287179593442989984721680709117534644025001367111117431408889678998182338789329225067597250711513589602557496425184937144961609785142659268411636701192657748155243874091018955360694974770212870786238870177476392908127885549057760381981288730308265155565638783488293394437753350472314451319817226097257027850030742964564746611812175890589676067348034889676746893769100380792743942237518611479576449808597386688030897349017457862384710648948133357062259690647878995127214592824750268409982528474119977919324149804852489035288899496740846402011881416861605155200356914145896241554940945873072472989439223105699224873331872592606457799484309824288675197253552569748605474126304418771613718698770814648397385227957182213998468404582378533391049507223353834496432556074287358163593887441314278855732554313906189579149091036611634555583467982852370202682443407934643790242307491293179028869774130089698003000336424287260672843995670874221394545644945313608674033985541660202601374061474311359731782157513612297840921112021843483916706223811347146265022621700366947821309546870676506319401192101396796121352861395981394088314214626906461254096501403187590677062357946367496272758360264642351665276193223198764048336193310865719817570420566144244751279372368217991079907192517415287096771431050743248185711484743073977569570591255370746962176061144349892397186608961314764927182072315429792305932676184995403520373995836934689211865502118679034079686788766648432359293087663136509475985622574927710664651902579429000416898285623562736042475253411067086343190676307247353424115454493305420332432210618804817420100126348697436510290401867692789762719469396606874416749339526306458688636901256112711096271831906679180421950989325363928145318148031734219286576424353860563571408693364931448354455914215908029362323708952678104813341660120855693646109852218130617554163621387836366009422989576684289226194472246896376948094926924652277827036178733252354815002375838414346674906930694889179523681984211607605494636989563727691424790564510165724724798374425941972214154076537603551664012505894825964720608841533200778609196539418812088474419788773780303837918508276179722839161204070484586543112204192976010216317932347590933279599374103032575669068785814474979020382010123119319774678058297260259687774742673485428369166609536861740407353381410670822110066556387697396377233034083711262717585817820085779036738799656252719877422765641819183301585390381526017866041222363793212395814080554949515005770742344679771895306781226874069339722264212413776893906755314591913949500114780184994852693252635955564888775291703107747084486176975318429787643799664348835601995596213599448062976439886530637108286551886516602862911263441003306373640077606960385146747334626170357513817739175937802668093482310142350402256286741570008357360346534647213502946366123344427202859788061245002942400658728752897974836184358923156039331574929515982039907382487612977419101763161825548337484244379603035148505546449470999854681461360803087174360070846502197403055321841897255128558839036815052188787609647125469911860580838954846840487042389862194281654535724321208732648412851554451082441426993166059383534685928102027166603210544118215428783075077460064093765382047582192442593952288263175263642804868493391212572242593564739367884038608641611737177657531070512333263647231231784222950202402781480911556370217487125976595351667432663641349055166670481831273158510836968204194362013884393382573413035552263613656225182497134852045384295255452849448449339708373112723301523955874373300447059894734814984707579107063576754613952328029409607342283427418005338071253260474193375005716177189819963161346475443565684663524138438283430113239405122999406171198271983240616439011279248560294726447308282984118896244430771172661353997768698204319054277133873489952262313637385804624713854929014703887195061848586358959511735565469679415371104397227291178136597488704451185236078414367104546614042742587626228038183541267074976291649622230122201723835963914884637456246224683697249389822932165103998212422471977910738623203666735870196392601834357761224635405411947449055184834274078792360810960480050747505966176419857707126833573913422653556909671584855499013143405516856961831465359742834063564371547763117486643255513306479708156373884719212909850507737362587700236361280488276350314394270712266997832742072576168213987850604162125858047033086523056481599191474978765634610465050067258352483488726553226520020646817531951481502866021451336276641330923559288560049023789247408400930442621841688593190139158442273190287128932466251053953276290907213598968717773956370542209360086215683593958745696529651281543159480847532218710243013974470642536425609941320258456415456649263025569946257279833039977921290140440262664703868760353509100832866512388844314233775483111572867843750508150636478627240849672289982620095173071464395146842874126605080712283178166394504137102827719966851985703961383384160620005316068613017974857565936081658743199904099060371320964406916087095959558049188173793959372153385318127602961117220117370949986469896904327310541849109781189793667502111150929731172299123443232283230157980706775140113938566233750963816312401533910217997514268434013219676296695247460397510676111029417989755478641765010163417889563763037801135296763115622622147541000966048886778218320099825928734586202691515842876342079904504945229986888413442833357458807651533260861299971289358547962017997335635666576678222487776780224773363077589862709245613366972958376810741722859887185072330624790612582305400444162063046182564435281504241145292299997539397207036814371916778357959050387381788843908026282883105230850576686080351548370023888404730123526884334991766317761222367034520980151027717100735355426104114613830657894774200345570300462258250070792301295061426149679649768736619627029680556187898566185863911574714683008298534353824187967214889747364247231713318025503592674755208719297762166081486275327255552247196376909312107248250639416527261485331004669758393790633277808175718233752863051649866685880707667147750165015850749646986950639750360417028893575957690553499304618476457129278670237252605278174752013992629595555078668764865590432732811278782161994486707831681358235965949595112523688598174552986066521855528126402856314812691443336342787116799657007198182324041959693527728689205563151095011812077329585118768911568911939668883629415273321309808498622858329321441575145321536509859786052973305340956641598240789335769832325009135145814052742611233360748842810551202937217049887117208112830084574912402606478940696128908238903377023633579083530714828438113195040474191455744440780605200576609638169282482264860279056329529261050254708273218169396800113676650685321976746071424696266874439655532388481345196591267470588986388508927278017652780838770321880604895615466350114939635504598422575992194333500236640954029133401956153211442292189687895894531312511321530894525642877487161713733606585648248732379129471352856614213957480314797482015735907631601263074320360369896158429762383788557381515479595644710888199438234872524451247936786553702318798116532541292072025920350003045458405014808390309287436022311599677101714104006003225283725915578871264595453557764349570104625900192108044411874130501159858290748182452613036909422102227226811053450397906737662628509082465979174169473980818475436639305124618166374204916275800229217751640745296345216947122714903546404019486802911588370574094077818273530910416073635204485687446767415106403031514925947287002972545135124545929456236442643859522055096494412702829811745239383773716755464968635367677474727194750108959089673395976666434878003149169635368250224927064097097224421269825199749672442604660679766293488009513192900936197602936492527746358358001322335483129180991397798903723081246761836291454240219930750687629443413645371121175402866012246862432618210331429630125603703504676243224714035652233505289883599040982804805423820495201224921062072664854044370717473807123667072031582515147231682667343980739542503623741210024807871035097344266618948683049126735935785469561142596515121646935072488609792797201239195103612968265790521631176260483297954430101453266484654758169320035186944721608310635464328339725867578799590239507827093754006413217481478677371185653927647962543543436261566257245875482661331013860339896485902023725264760962395888623629047468249333342502475194053958598476462820325465757358141824459702292731434699096055172545780309241711863364004273373234911578368319366328513724880460306600915806504479301617723905764035716734288725187056538605372816383989967032705006282206642884611411394135710751658595854306678259045962748795552465551700768766496653028430105426748889964704804810862984286163267409521676375659138283424198374488009463499164748674923065288599835572399859036173319527519189511621063518776042627983857314637827550138495331921366940260945877502523118516377513057739880490612709514552631122399039592315054652505586561193229757579710961459457516664533972999358164562851481827564696274905421925953666148523174953514157084228210430978428596357654441825298453538134346516483570290184079302245272687364576730368663576007596258140697593785092222200074975345148988771326674402544803563002676625390182806209364507809278435863936404702504552764295176210921344316379092808401943550542642869133211533031387006912232516563536690930321522357792024151613526710604228024084517488597706729944350336354440243777534445281187631479338720213466810269287206820648406751787712744037761318730941433733745516750923964406839999712450612248718231958368746206975042065916094581912435857128884881599532400266926591235341844238172702372876633035587802846022002614365293196830541373132227216969500452272654962647159148488212059119144588526617352108525752809697286338832515332146765797096633647737510994254053403800499058132744547348073701957320272120467600379343545259296337309207423627844717628020280473642518944797762607061080606868607092565166724234358941792585835523547754963590157744324331284747945803223050966426097611144836002724037174366231961372229689342331929653864711761366824073190912644791544228686946254911728974194537868651679155141572963765982978522499658668089599138782264713393096117165545009045168608623680339802965560447166764907164839740700964807437781143928823177589199727981574132841115603008153526877110747552458762871238338959780848934209665263455262279368762893696386411437381469396724936025252256523754167293061039345827939195605858163508666512228460716243981872664386663416046663076690729441209569254958282318387368517309184130549288391206500449232056429526871408493863111227144074779871983031091248343737778819404711776251832081594330959235954598304078625404204535186349425402939655582960517063519653521599193017213715981806544026023963745761001329671628721027276560177674338839223582777251201431696334079027072930472990504278118245664992285567513219878980752546372809353596965970226845157733380258202883677267661338453197471842173114437937407430099639491165368138107490418675160685821214576752315263814721338146030149948443986544298956906745344193623186661232634462589459000484192827337918995835787055437111131376578774741837922748234864594887558620231385049482516260527907975543550380310969322208921420633464443207942184926265773697052357845702977574462908348096349675099304493494752802928340896427699648341520064367803990351814938366164369102257706050931595285402137409104203363744659603580695785771280256682209289953169595145011329101326278231997169045062190250282843934347350974875853360033982083198385231107177743520191511915816016817464110030682412518044638482139156616834013425921068095868445098232758228804803834783963263416969713324765198632253830154638421556805305486247045963504938101134541426921555491801611992541354969124627975561627729784996208003393203431509269527660699564956244456852524425903701339941702123380254492577317098967396336916745776761810956908247318991606105199335306353065662499102303235809267110231406827703802345467302563549438354155339743143942853310801579928176001124532002975104504975318198124297437148354209359507450985536916597640036555466799157765055921668403803979691587196511979604979201486736628509792053920007885788209713593236449330521948148783755234170997485170162389161729947591606147639129607575809072545494741067673134803111628325102263185003987345577093320736841710382456486365388060295518366408263056870077956407276546193486639879268533812263821073846763486916301472450759832153746702469734087955133998841208837518851216256992766976149748187406875891078115288810427361941858206056759096413875792937529989298809552563826307053821553901357287083352795601357739302725718846936387238879350199658517911999958508642922027031747736252827803153908295408396226547694921792361487739468534212981140191237323801571562866651363351493370793388028147931591881240112533937449460447391812122475376840401975260405873817854095874574478466837525092668169547531580435257541390095901684425424510472953875951973582800070695220470687817059530333885013543625908082197346313260843791420763198093522391177157100331142169832241483833884708266849754702873102122680083625046544592495492973563843166837595083347101246848977270153954903986440340507955220490736405827308047528177418951943085194064991563941910017290622920258178629786837186248731230427119414429342111926423763975297712233378237457381716682062197390789729019963901558508167348964194201476779462544614655119008908015523416053016174156905072880689963012445348662636951521897697517364762736909293772276351365268424792917735022058489418681980593180186564535394195611904567762073197995114577997935564884856593955882818469350860874896284890695611572990898919119550377399672714830603286718851205374074383514220995525192616268024270996500004561925964098350507772661581872193138866567415792320791419441626543720156038026782259261365878246318628100810986153983152349709005113677872427591417924028211871248672062740274745097786271748282732017683819720031584130762950133845203876247145718326225557731698380103968679950219699394591639250884956432780617272649236649496457686345164299573302688480122961107794808379297823516106386900043768061893950615505685444893867058081362317904609750846812984354392959058643034585711926167643427182912179090623398427364807879130580558993156899366236380161266309336029907242046411942620748696061127752957339053103107614637649647155710059297233669883960802569147407451814031780131276264344805364401635912397968630748591541870725284781592553908814325003647365038765746062873751228638009216862583229519797913600101270208733155596584663333433539751908786836494574470522459287473483748645383251839890706809035837486297720726313377173386100200264527870533230167004826411862983038721032508842782421186662755264174157025685403867624545094796354913836465832964411129335138816948934511475305968894996742182928993252995832035701229328174058532800639281318515306209395363126241928264881222894885104167296065120372736250219374236186557825707429188418905495140607811985565767223309622891461248314510062002820721921080948140762279307190427871710599876222926175607979060175825980203435808146988994513477888855212697768710068434814346704903280609827164165923764198541480449095398752437944132647247752226929157031250274727995480844951562843121815896532054743574058951308027606223474986060805179172691809219960272006217489492279900878404592443278753859706590076377409398405655760107895665516313051930452466386862664026280820407130788625411662235331399232790091653669009940764375024249798354354363417948710183367478821001900209509076290709286544691286381420503675376915295538774186772765069656579137421952994116974652534356903597018249476146684968035045363806137656009675288211065113244464262178774333084455242081802086294219389025856424535152400341049377076617068909035977679219016234698742602407032042108803762727901662188482376929259617763960889826219405484019418164863754092460167222473773170537104199181422104444476829698910662357530715085973507179385109488657788851620517459988709850368356882661836368682983026377514881732195933367752668551563154502818313533979646648228119159175854326974757932106940595993254022879610217601201388618234018647716428988809358981050995271596343681980215553766213307500080823308099442142268928368928517699641591846275434421763863467011045088722388278325360449609402729239332310612940785247515943594290930202106705819437407201103676684018732770331741674841389884479775384786938268862757868743888051819130886020948368712954059761841970478147900109551289264028285366077461509056064832994547335732557538990811790709038093178232334815531449372938833120823493393888948373411687215618172142499178698068021062518935845490572651706448256225883504633415974340742679570092987929988635062053668423382083994730910529248830298225663295271024590436694085674065358473627835549714154184240207226779843208062289989107249182372483983797181490556900475511809984923778037795336204602867692029936231229165878252668223405184838485449310042648224304141182972662904595952105606839253886292418835884579894882005589993186301357270156764867884457296092435229799813239738002591464816873299501784905861947917368365480620636661477925462694761847132949677739926910013227255742084925884589174504348628616342615693868787656378210608571491839444673349878287075168209801374339681737531017328280793310628704149782832066157173196032662794493619094519150089460652370007100514561312987617018820947163821312262888571081018977904687325177508668638546757734936475899617162119568472370977623596938989709349478564064165177685658445584952258168322169480989531437267229541060818620730181894480450674415067192488610995946364971311703583507663876045666956713425455868601062654131308137180704354831903062231949850864094602594118161080269237616879703443774285546633306892816773718007273580269837080236680752111245679665486191830301891175171020771344481431525445670645979189219385293557999827836759953876025885949439924748189523064483764754754560564098463955849436603550388467147143669640859177623769820421458730738461947270638546145005577931573716536603407031787766443881935284083358948619107012235189072353024766301943187475517400132308199360648325106683015104999859824442887400388799287912603172534811703979729870572421963742283670770735935819166356612512070953780570630028161976486255751647551577178083555918503948420152424881438196655603526476488180194385094804900428419571227967931375128254946805215212054850335257109504674912047290817221717402287262412132887518007788085658461993897630903403522616693732205408059663762995592994512557679807534674673942912877896173739345876417326020749531207193807348564875708108631704687019381373838152305758369621698413847492648512950022928135755004297200919022707184254678066987667507245562695842718278570057688078671585664224138903181428106779198684523350768035717474069435512423715883373575770343241070507116760946909895020436312787696240679776788989994719321387287435267397528126973068930287660024127778262271664024563661869315090773616995845145389419667621719724719386661085320804815038956544039815069290706392475113982569449558228718962980863661679166252633667226260872925114717127869500720122922978429016682403228174141646279180737846348416168589439627804991434257067632724271995853242467858131824389512454236480863204820327721929509661861583741195355408025114727692707348310382467639341536595904566143237524695939892271290489712233173932352120127822640706643004696385135766816947115474491966558485069307624823563887253613980553314136823559460677432077627157098490078554769089544886505842362369335003198350963637508209397697227149144430292248256827883809112727030495544604891099413409774066492947805653809593924617947055320639835121688409271834647544537307083275292346388160480492512104701947698658829294025306016766703764968702191405555181321087031199518544749877561666490616371209186694208818742555542058548839979598551101378226184198717777574265154707728300263818288079802210558570005469035830385001606527272775055118933784971023925500029482562646775630213252947725989040995825590480349475031447971340455599830043856180257739313746443603767887814449153255554406927485788148583673329794912331720184574743457618106058854982311418956288802616759840099828339886832378542905330429717765447506597167426077218215971528994898705165007372634505568319302408165469877841342522925216376753346874927525721547022573384496016613057312137901748287925349308799061647327149931499998655597458892778159670728238063703070930332738154147197839297566625208155106047545724502271768739817313090494875692927688457857322444530641969151734891700034842814616699647234167815546870889510994899086361130280054118993433930007312816278592014297695174391532384563110568597233171587778346711998762438580967960743367663551373873152892459879323964542722079217393327247120278917089606582839372109062687985796812550814148248870417183382992702752702848304691465257755179938729935000187330155263543466040420732821360216550496516563448563551058572403340745860451434243542971852662788836764167745497593129532313599438970462033839546394714823136244731952148037416293561014043639829044881987580630852692790797729010602052759057805307570601371205910774965672065670079844269650735790907916709444704551687735269976790789103195827804595936994014547920480758439013758706454835625226726933871386458167045894777784964820368082277288632600780570697707355134709302288494450819458466173496309084453644312834038453746590329100769945857231218977656069464322036049408887548392853075474342744142682921290900791336874253821166552596388226425643494393028424411301825400826701986748573080420324721293176785747852848938938411566285006239390789806349855665267535281041847594646487390235471018676261285630480680973939863974549694575587586901416469378470429661520376559108186688515138896955293293744896587310797240190903286918892191892988993135483606861806581936737750346718710765289182169085241211342785687307344124944233473978477126377286768931190795972536322493288439520411579202631494415975108799353789589960635797500535755257255094897018825353965634692121433094580650483003315854430978314269949843907257417206393508260895942886315949625682619890490388852995454076476686242417924117883250246857862284188395683709246521555905935910934228985766231515058921991028958726615683855430811876813698200093355203736734784127389638274292102171230392145852498373415231216141110895762655418576721866621303310907374688728533630218660862512503575222678102480383856237955043195215672820943565072221749012014415851141058317212473432992205910769632296337000850824611464836563896907973343811764085393626808128618425416314792522424799486814157698435007721342019315878566299012609580226382171240604950197270953136019886435397558333964038167819506456003352997229603960386017704129680277506298045827830680575780439041403573156017360104298889085331589233358559396081079554799894860015233573978130125927396132042625423872193972163480816147546310159198469305592031003762291749631587755033298366405359881581269557017026254141719838423885676197789065770821207294702355379947723294656135076022555252914722591295396023474641391177836258877397244669526706602770835348512397961905539683534076049281185278729719097297979877446213813415516768935662495265655654656824144019276971122876740216274290111125603882070481563656490640676188829219410721166020512072117942176350629533304124116072495205714255401742253305957002213187757252908601501579703732790750590443676585249215319875641797826695511719310403978491950909513789055110529487651657816435665338365723650930133475972926880709380696916659417360545138298093639578857155556726081209017935350143382676161139898953764505897092288549199275943196984491164703690125437305001636476159111786020483688974530999380111277950671119433311399181536549716636784456707030948935492011858391234552389780843966151847772665970317777462428427584904344394365382753297871210409818970142907077343049822170845454884873553252685189321326908647820519435818255696518110991828201492578086999058789770401448924826941598639126210796133374110028783625294304208626771545388769054163202215593083484984928095903695116413937342728135674173485460664882926341640415261015928354681617834361962812103914544311409802830373276929794882918682731051359600822401663931231958470554336770053511137793125083981850157710484323012903730486595946222942719514882048996101582460366071176423856726977026845682534031510929990310725327850857962108893051780910973882427841802622296743796047263565185429508250957210622311395708120893595538618297662985291868742774573613321270153222166649615333273873947821833638165519590115773755316735159361443091743005350638295292418341875247907805196892876274503934831790403208611337281409040312024402502106008087624696876054685472917485997160979468089380757469697642893891245654768631000108120150335145407071992292515433677592584313188374383549709671187569332845197983752385571029954696496800246519057042906276659680703759129093612265117282624796680944618452269739195798932450264158963167531776810248096456030402281581907341571925132209301769349603032582853837366634364765915611771708356151687838619437147812215540274439272728954246670000092580635231906606797094030296323121456149734645923379375820275469305260426828856356741730810098514213007997494126895208840665986807209420885291540524135125038147828966286811235423683580917880891651355742836706430125906171771519884615629436445967317515780811089653579573926142325930933435011577347246805895215223860337377863224568774957846500734666889866180899826419285266011919121354697737311932459509923302160059462891015819958003504287158578817217295353716036943915352884677025366343746741502006759556195632993446566418732611716531545462462579981569135947615448208672828349737922392298310875557852467957445735055531462002974469697009372180635740379465944161813497260115880021231516416240253362731025093248832211912670584599095530343736304498238515350742125188958691888312592598586700755666357920422156102332359390909795942740628218457502765607155067716061848684416424072339145900893606080601943719558413898703211682368727907731928333928562044858554742913361819897606589912093885862208114843326563995606960430285919771333356124939032623630089322101599016024682271860790519865354918415677881812043823989720945363347311310396044867639156759439974714439012535324763319746328719376789438529550469297977758538962685824570523177467151177791262760789226300163696004784895686411725968724190713295778182206368879725481368721237170957913597235203527559575071901193794092018997444199469957336556627961297626393918917745486268360057541741908155951893344093174615641993589555624356281520471436404679073028576594053011794146061891969303202220715108799028894655717723794026078409335966402949950244907058423314206610867805387484084824321688224402856012144415409881521242747708851760560073089690665301330938562212796149067355115513424610908553675553382113665704667622326513793954360586237841519228033319217982133902337514184245931634798287919375032113356588599700335700473765283307717842231265818134804157325135852501226561962731997549474776084144865941580285652828420969901916036193410414712044967081411298638719204954292811347825874755285482161384527087375717807615396242153242267714783710364177754282524191273891952173649131575829107858990591295299074969796198321842552864020547466951261803078540955417506000784350080643617624155823222479170616323480465133203489557583621372296442923863144009921911358106421713558415132141839100107232874760715350855776997878226274962893871989314035782659067414369159764021666708939648508120794626992757968795556278475576158034259656918497405334639532095338482748540613550999847463144349921232514246154819052549035278823906087332589415317102312614987811106325314588823452242499846960110684992726509216789520490610955135672238963449658518009279800322719151495271386899141418849311634517413597966957394898246315212775639489573592667590409441479468074699559462067945375919243080467661015410226713068460588888964557754810795936710857591155360623789059440666604346449165391440476241633210818847894405332319284321442447434969380707040583678615575002978356893101731564113068434738148751996351196807118700806300682535086570266310105821929321866755751047431474854825175540245947683746319983196561979123010203442095438388497540929365108752440951989590014364850859457389564587976239788624552490903117948441347509527672112215073493077860519046329026289353898669517893108545488704054068009033881070112929430982462017995773251129694753027399178502961217652121379379466814120950494947845817121098897160811477203375609438542966121333741660008683916938370798751522848001649533338707324709857469136340013691562402022404955682653393239285112853235959445616682395050707823940948637021888829130824633697082846831367226724035275790668116191253695717667171253014248147925909232533022591107405534259599290602644792558974276105438027995923035493694288526717132347049811149365781598593038707475533656433217457340423986824762683749181874287547614523531445135192606615716354432612350852447895807876205017579413101373197252290750673120802412025550490464708828442613308137951148093970297932260103767843104443103223128938933368636438387337215334129744108633575294403451614736345956093336958594158868937510050045811450164052758243244854145123544056071619991937127574245450104403742905266322318563182830017693494121399457243539066465603592890324143913050110717206733821137123931395785930705410946006401948107604013701333826842943525344933574275244971815449079425668276824389460032354002993618977350338952994632255007594235323531326361984606753097584504665017665931351005840467285949762904795580564839142829008387079130450542909035216516153245679152653383526202121634777645996943084866938274738089616391032674595384879301484814902035734748243263358067066576165845898027114449634254611152514153019098117620053031447663309655159236089340759112041742082712712419438963414725159654053963053413191946123879818599680093230414099093758105322115302499286822083222795760791655363395229036454104895151700190537205238813025873170333074381932183254019914447974828283755789885927421756328456060163125060020165874890374113253673798508521319162744525508865274095952078816297828600805279275450620672901396225319487505312726060323239195788105542351264275497347412617895455541315489865641506208276697157165848805586692707561921651461116927331200725592444804415570562069693833919890377196317733605716956222398184162158135328140445602144993816094288090626575812683881341104783746323543126200128042665785347185552679941402288076951614841059301592583888277021757312180196601750012452058826059734532168573798569134185951789116370087998581049040257964163673943511091161089899540061422751273966544030773382547362328507795149817461418794748843868443113969484226423956089635255316627513189742475878816163389208020343786616797593825090412874121382228662729278138020926933998702096787316725424093814392567438459866621741122199265619704338437187696742227768329443687187505214826653916747232580909710064488521723955528009380683930623300231992428515708085313928290011144796149730473472594134295871034093758605950118834396920520217922854491864880359032002915082793374725051588001725949210630925460117686611652001244205005507372087760657028861611657448795149889740333208943501047117840890489010235199723332569590301678700652805872723172163183238807644313262196123716254237351757631614235797013610103603262060203556543322187256513170105940232205982278321951119120272227903500155070138474098827156704133692512726223734831738895886776704376159858150791855245065037336464165368149224736637307870982971444330145473162816580885158178949951006754492417919844248733963580260239428084829992892875588853387915931607642017931922207749320683448236212995338344896341325127102818652255447486468330368534216507849407043297154282897451528541746559447488307941753583748118849750692833963139053009989399601167840555537566160141122421698996758427412256371684474842269231273384445862416275723083309392563533342017675236453960874614968315716636538246780770744258539745147366436007548815985966962634128543497036342986163183095943098143031458365353526565106369194879161587387244846479105922703015480314253405951037224991082604772096791153055200453799843863259893729441470659798609011645401449683003073101717016712261717782294975804225881360061030754617796745502067593384558756903366113066136520785926056119960402753587428406403593913325702371600621832898337007305503808388360393548831705580689009160406881009169785724925545858571003278534450093411166767459263557431940523303542855042547852798021078765511813975238031299368431944474695124976524473009938499112714401445064564119238854630033073934006312526498102575908815532502898673093966524464854728138504121100243873393252489916938416362002287892857082452666702336495222594758964054993005741487227279755530998224392701657469867684906195154155711496099787109090090786875253071352541849368198249859115953285920797482681990050576464324816343924377260607402602477551760754121696292165045653668061250673374745474333590550492449109751105324880615877871400985451484276541571521871919791377910162519480336022664160124431341759808009808137434598644714411520181315789408265385008040390536758162695991495511888278980493993969529848313094099639184776765396830928751765756705218358240010302589958126911192894386834438183567296161821647517679201064159863392534874516920357966020976090330432500667842420330106142211677382276169334681550385454492272434723552602686702159434755652195346091751214677843072385999457657564461069740833956846277202180435149913789596031787789964327022675228158388256667675204214030300901195748965349347133713671487053305083229548075168047924969499120799883106538286961560415941159025916766911113298204540861490901270504815357143696760845517859753628036640306369660048099634323209510265142584582457634280474103746456449716924569688563842128304502537053296961375746553347283447571028199364667031173538188341443431149106479761180503318634493362977711531206198941079811219294280098617717781540216291259025307086368664023106489550552365736777422414254331530776344877698618540474399646994890103037518732599834669007904805025810606731317460924959203877272241744368916429840916298185234462742866370208046893145964927426600487264588024825496482449583356128673261267575693732255638222433222458020798211560041372844403888258314217130407112965520400104537772205766553214905833670214891754392697972902125945556044305024156765495235336430569660504100987553735885822311761007784602634488762138130566005239508539022054923125729262026386099939259157343565642081162040888754813278315116537115046779476916628092991250612531916440809428801149637804233724295141817581692371212656227968337434563236491019432689243142890466174821648330172613091363363999764086038470765788354960169446204990199412522819458748874685479243518147782105936222504606835904355758856484135966953421471915306677484310057919123661803221329663107852992150746349770044467244500936065258999270741836679926027780739388270039446695061649485876986992884715890524526193670299771135783341884439856427636243524906046118207572195298494455604490848267041345479719671991388031472237055134395048556380891997064196863255152422585738116183297836532847695426634802769671599534417130418995483412257409355723791070992788891290874223794636265826520791651901503134411789201387715647069904400610378826304290402131084107403469501238099975538342805913352426173733287015629493822368417665259268961646673261355480229430688927568216021707363176798233135240604171754000095473822455902851104149252514313794046637482592592409165103972482376891186422285586082730747402949002148802399573807187316114125528334656061918401819825935956910172509999975642962669194557070164361567562921872625418444036944546516212277790522809560659564064528511956756473444781803194220158203276781686823285723388450499058140587796385953954625752962761077005203349008775441888209898772344478585106745220571353093942743658391928898595382051095528844764134317645312268491472510632511320245991547179637581346327206305025903809762936137408621541800599463900120014353565624437391652769083011143943431241397667991356094645304530245773078661822592335548127456591461393668036869093307546407867399474833264768924443005040013448421541814780440673500547290943636001121245602800855991295352282086943579250942265536674424292149534562046642973373452921564597127900345236540939318830849485719938788214760080566558269052003136585537498442707440745914917273487058824474511315061274516244371771430753528140226291332657513729094550178447254465915590849069483611489435721960615926052198870568263689190710629979540983517586676275543588226852732896949032899356728202419584272431467896615304665661697698570073939533850673910025624438661358750673539257460600579243047889212488076359161081054744746591879112353918300929126824981986057866157500611567347992886204822583818048227831812411272121898681366558785677366569388040460600813682048763945474505614306530304856796829651704280042002771702582102871788328583209758788549896053675179115112143763690159214880700678989953380628326772656886617903451577069034894639314611768864950108351747315687824284014009161288569860752022503790805097003549093253442671037783289521524846503670879982216318028858352517035422394990065720685289132663114520057309276033283870335287699407129097351590355741212232163352682822130739042183141503465327166650701754580592478460924206705829635355067204335582343074745066267655465745676964065295706824868110259890616179526057295595747161045758590479344731827139799549667295565402269619945836520313596241822126971007414590828312668742448970965986478034800955196806523465650029306580711067841721487370790924494808123017004487309271489011988575419698652220884629759163401339119210823735743805512272815973872623873804411993685102072055616116837722076042069466464836867217679268895402250382158877100229978587238095265080419504377140040132792128066109963077157503326876008414755186607671424006432819466527212006902982765514208395009324581571486820770684104301159141527613137664099852286385079151766887500022383074664973394097822915114126214438692610863687997636183311545164093091999659516118111949280421220522784824139606794981874618577050440585822126200551039774570894071214231213939938500971715870577861014536419547270689325195485087901710847241588555990883063682049313783375665298755275239528725167316151945938375128087653147297991627926947969794154302005046750200936195919863772728362314955519800513361135678446257731604463161035674484361623004066138541246121907610598976386418406044274126837435098616419853734930008744308203204094054223503703369195340558030622484181660884741834177802515865921305270948760618902535736798850698320290915074068399894584281527474087353829636890166348252304425665955777152590619940008708971858313346392997290203954012951248608835822189643005262412951701401083430887385716377827986801791969397834795355490483054495744350992938708079432638225258749636973376261027272408850182996687935817379150712923387027772266039503157846704774260099160106785772282036817482234769553363391365814314903363201726940680809276792315581127241956543105640309114309143842987915073607724914396866490857328418720811436078903142646546707370971063037711688420072386476936149801497666484154184102061083602405201602081570366983420465792440659513694016561117578732695024979782492451808104107744449942825717137178380936086810478061603111332354739195196024232615565135431032366611213752019529438316396107214394635465113220844276971046491555669351386946515205853091479640029208766470297362632567967071431125882236127229677250604126626787642935453304576011941694762608137131034031506663142462693180244516634022472568084952863269246912540033334766483074747330264531975842887311979304156976424376805824733078759799271696982216640571475261871756932790956527597797830668034002356890104315428680345393744886255780261496228752242900622276153548286892953060710133576698658336272723601446679892096789873628696922503051839165515291753490067426437763537561227715946994860251728175814853485766698881327630614973194355078545239297850039227824516540525093106184303860467700037100885315441320787619967470561807300268263301087142160307301017144952901062698851451083174165703615974952734311412734904907050839727624048088647840808536061888198719861212928218672115230792792167618477266073412521656736516582776112279649974076209011947284588318692176693943775881124380493616877761540144013578841814875367392995329352459545632679667475430387230853448185730446187071434025404758362480267746708065784865702971359914435460521021756793540093673259037775721700247012580398338831092021984457226861181970708581087456490484324783872855109881561251352848630925530882385787391599986333712661775760024477728717523455221230729772223567754955138398758643875780219269701140143978981600723012044221390925653491872646944782358245537824058110242452050593497099152550256725970104317413737274388574581778902968544364811520226064211569522967843200975504871837840870094523680367474736536746920652374665523647569415697274556850926080109241493390002508062093271714086761237265843923997807123925766935876966350412208659077310976436328846123364604044703231486726673762521257282750607073857120788784244438549228404887659139618822235053555974336370166385554053135445853317903758136881319185931025779044227499642016367039871177472630207469242065464015143980781013763508530952099959338053264228045071223939611968002273131155073817471282362064641616804078369514940398743336034564178299276773409108431145634383111743352726435770786771455584423260797915767342388838207979707775468596002752359398455548266860927104988617985584047766880377603940511966352659640967017952029473051342617786066118153525972726755073911349333380974948460893323717048305626417171975850852418674139658834456743354781063800384399606498784588990516817345612842808171951795942054153253110040110544204430237390931847008330685516050201943684515895751689588762723763397981011994978308782420319458278759295345020154567318521425266503466647947162159517408404591235634592948346776533415132689127003899421205773541195654440815216264871275569508498140701517479154439572998476319793578080657968316374523980407700876292585556526219647799206451393411773452770591156204451088102641032705390501579513004665484285493358247343528859860247006373213199893936862832593467682104744499103102826426213337122371529352248352964839366346528661761255104609145477013071612190687009509492441000211519468669477254254588556527283879051592318612613382637957322953721344410190541812844261474739616853182174400439430898329649162293966250014245967037207361389944999493202745932050606607965949374470371919915499219158465015025415054362574398290993058048369233344629487871314263581004032769332047029736238718002292633602908619046500759883256920194845870910541137565492752746771771827026249957644971693568639451582459252220202874311850806646190735427819905340579528738342312897507690291032214011125660365070478679242783871361021975094776563562819900238008015552340088941118888241904516151060328936030492558621344746678930087830086897637444757994231717024278776770243044831321308138148410118733620885861324909450262540331570535052165194406533825797955894520412288956647007355361880089156931231485978834784884978395313706722614875724672712647517860666711982694971307746507658070231193531629652249621074229523314804679816236815470035624940085758115453246559710641821186764901499046254716561734303923445238401596437470421939570314675564784111333160821500883154074729269985416640647251468190431465316465170866083405671951617349110804819666118512131085309357185596120765544237507374634606042489828031789848776835878580155008757598885693205291764626213526828432486197861906350423760290923783976751758851235327554835038113306014608219242545246332769563950072156001549622719907382165383942859355761927732787528696261847314032705733453916873220827408642495104962165372885810727937255737523817822621255536158821771317730063537908159597444168438882860681521726728925997947746137825296888199923832735118798242061454633998169107487643598276532566528224981950061790016110788886525022563986398749797319507645425885379285444299227468611093561126496207440489858114670452159305151042580752490989275179629819827559173811140644193197803346910561407762018673812678200980392812101512314793145547938867386028901041512423773933022157276434520873057238191408968735800146597184193058398920325068832320060200815856739415686251563660360885345014044033267992273040127093149780791584238873082265817260326905550445987026125127965771189019558507981960470087066443879705370887331965387380598995331133374801685402754752461270572527552834306559217028573831547264238016473465168457462434725902259698216312651598326167934411913832680563332455632002120987799956385431456615128724041104328166045404480437073506370257669206784776769319056713846452195842325386118029898337312229445065436524138351983016044229271777693615384560090556194884760460074177664733964356509254184285756354725656222341096704623971112898575217008383168764578169293117623281982341361004357323779972792792080740227687673087008321924563868796354986088919731480176895886183830537003043053612478781821608901506595984487940304076028717734300032500594673157589717053547857683440711834146547995975522579456546074165487536235253142022472976004288389969683254893414546731494492997437270685869201154049564283221483442442503304812207667141039616186629039994681192207544635596961700651094029181970623504688223481575470246814822620373825290606596003264667158940460988735039003049360981795134141915197329180833477677522345172186126627827938390965502772785828484359680981829004709656929558864915948220520918328917915013979699541886628064275648619220792406471111896546569736679090737562294555262891107059257795430292880080240605067200367674669612529625535963620002904875102808272454595570582350456132158361162788650167388973713283703596915677971877943823658791863503851195868737603327665970866608368979837010443531949965585243986159905099319855363752044070827801300323465431272455000355190287223917071732275268601125401337974502953149534993342332167125845451995689094727489058880900149017385456963596362501748399935294738807657354771159026232981804785440598005996872475902004785418142033684731251638300530294797523170599322062583357741450838796029825414882367789221538712402572489738017493465168275584517521809455181180432597013832994988059493482293298910954638592346884336321604053732895431835173115738733776970214716998652495319867902479528047190116827141533361563488874612529037024827337064285810263271228042861145649485283309339048611785801794556567536991849814959000681131269863765046544968745137282266725869761825709951891700198093741892564220083638807816125735823534382943003517901462239509504783608649843461960988462874497580819677037567801929644843279042611712419575829194167641960250391318702887962419888573169173652726947887314468833517613254981047967105162689941788004777703085073936558818105429910964763503678811780682727480479310069486795128603324593973838493371857723916787288900093653479050820464107222413417986829420194821578556878183109423339286501899121969987083172379704723767294374540282426174353553871358129392606152327674103333352700697831382542726272680146161358358788418839289525195842908877929777011740369570296679568668972982155700197669605081817346467014773185161726560992007153561357494284084139862868438523535064055051797795729230892937812545905656725680825847499688336407395248043062455475825085895639497412324790180872478882643119334851140557564011546987450431451768881050289726587284912633649477355406664812768736210704022212803350010881414279377944604325901068429171126558319851711695015355406482841279044416797237244573167056067098810536805291588709298084571439452560321147669546586424970638243976014821472469779555338555671180927647812855587875521590504534922892560867822238250263438566686868286867250939970355727379777526741884784408581477738131817777692672549990579614080059522750985825780533528117274367741024136709917621266113145092395164529416281733307570300948137800673725925216817969961528243671836706160906193706667020218162484961339268519616828012540563637181617894595966457499394561954735625496058043704240032848962209535269489621348922780133398231800805082356721747365475166465969658737190671009595071715014941933685782344751917514821087348210750847421001159230931674402532496926942706029602747592165515683321567863490178740091349989910847973800805424770290860962857318420523281590910130204868361654219644142854175725126651152057536856393599257928943056611757041694724396271927262372239440425495305415018426584363720505965096771579450857641582658318221198420092913114982605624346569630068527955957522055626288343284240159089558527135350121343533974677338641244107128030553143342384747853557284330704139658522590129836986126357113142587253969695837591041699495242842861353713421793807115353395342931929488903640712788830456048753415564542696867656255400111872604732911751198884400954141066955257631539967412975528874556329425131521852737043928455419677737586825534158115484451198535194394163419151715318751052615270094141604640691131172140394469788759069669330516743757381688562718164375906617741341216864150554089015156520690955536954215083841629367490738573339858955451338394000269983074845795351029482717005477446283636626063576393941124801657704947891530398112238814881879140228462551917005539413151179809382490737803948442925332583133823601451455223275842545028170767960058953442325297759284486435910910303461442370231444054899013149796378147880910120386379733614717399782788100650863684986276740143462088217682123562879246619776890704743487372200060078640430089241515029800266437684381288131738254802071148975539102814439654319901782985874414056892994358096366343685384080647375340487052818019279532932737233177593303739270413621099507876728466984523872574484159165022968819063423807098210616248861896741654272005412448836147289590165307811183882647170820782239006124202188509253505486153921234993133279806626099837479862849249899980257819776440591882583036945289202949543556496862653435595799647961628209207742857939689499513772220405713535002544253846424210991281235270145851041180379865143503694863054519581547555054286430722380198171824246023248662069859695403651446482582197297340670840631199850691486359870939116869792462038330231851172251133271985300585874331436915914254156898496042907476104028179546880198107764370798596960881832485968719122033012418832104613304352359641145421051592087440686898774761782621259337252556976848572607984157528901752477375874882679023065515068467458687925843060049887376160292095784983353217700144310627949862241616637556831355748123445939220691813896436769508854800852184885867299471757931893289303630238002625705843241486354532636227958978813666400427414153287103341445712637547065297937570667992699997205723838449134532879517170340455216021010253054468426254980827069764646327435921611476446289500552098001511243948588111429922418834917281295769361408029964026153045316734125994859470805909055568399145063057311742425536373187931282918046352181664546285353198527928545104060658475802048348780599856267470935833778424703104133039301153645529286249870252820203168381139826298636762666517088197979923812384296549333177640063331773067177054161839577060598818993146252515054383508533783547318291822613587582604495044456202624674579395873221638857384151077684036144111904595381164247055184986080695714130757521342494219432083536654584507459776978730626259270857400902668734700025623634171688472251017757198115572243948040579930546991060650076284063636002449586800922401792513964748683642407401999350377603816939350627700830058203488220481423632182518559172042364723108008061907596539646367589631719441286204286287616032986755015272864804509577954171921911947507843046554553721898432032725919866535293483398421980408862720991633216078086437977083168013696764862707960272428309552370269566292052922084959083680103220708120543642232054877008625301510815812084668799985542801136772594124816632849361088593576895334519349547921167498214819991741386347991945721675249842765289844454718605744183096873168819613876998769930147752912657555583457350964838408035110296234236907597282716202750153359788030938923700163579931666751663644906533386640021608397277335565881188645298852666719618942673802087271625479710497710430442925499366746417633567323718732430420246083938164565702667529174133330711941558074608731089897353952111280843837040866801231510649962116153688334282855264858022468575981420901244367410675219136081190812801798427419595716628214317122915399683971229616349895573255379080044920135208619296689724503193066634947880337009176018987871517781161430723358260818274184490310597618332807061301828478235101182247777970172592695112440913110803198055855471306860370458319773688914088807821201012999511908321863580111891012443186479026870043665838525749767293243844340933643871856869143620902987238301072912411423040888884349484225704264489528430635130163270466342002710730330963509875911919509819865180690127695188956660608619065917952716826612329795611484160343560339233031063437571858425713036148398141916870997244534931464780372823821793109121500546206503874586438241044503076916550712078101757909105555390846995187180717509954832203518442923466457855721385916676197198271963475646194081375647733800795706105525883245853922732547344021719628711982627326568606953676098438160498249554773747636414189973251625546067471787124826777496236246249554507388067010274070830315709394768674298944356045260111669242130508120347915070499579473849897563468319952446422811910473320848154241010777254601232090778179023064555635202789513353662336150668372819016754432896941366008017573229031591350575062212311758367649073901984916768752439376925458049125564148766734594580690505989796912824273759965428788395949510089226329639475498574249668328919345710355528643823216779506626279527497160129254895504145515959579328539402667073366537999935864206503528682937155537038941501283044966058064758031393788626309398290719294666237781869560876224124275088777669364220156943909197095739505804279130401365632882719742136270944256740336365911230986182658465848917407683371159985861630254927334551399594526794345737919210770064301122019122311988374298298426437448880650620327932978377665932017754472559943193472183139195375777418536604517622843709683523009788133213814817075574382137140808519437982163237847614424400981255364378331753417937416424243187059982817310850271261596842997618409690483406769122791319949235122056599424238787370830779035707450557542451820263708033097601876388891108277916622031959341403510057858580781769869137330351153374375606241256988173440535078379874778632671529876134166371622653194651883980727474168524191146154221905538933725471468994463906281798595032413960469952861232379775667767083715170871342038153905393886927220758343900416446342523016135912670645450579029558933050392057904015445355823778606687437687790007116130959368007002241196901227454537090299579519634794019832446480094642571012519616542541670279363380737400346282921502935454214244922595816442289319098487387089490130055182734267979155495965441296617859548406823815718088899062423723367672738089523940538152583631836387371405431104278469190038498187680842317451454180604324898928244776493211093485564601203504871843192110202738920861023508809273412815131436995878755135753458084281562753632827340502746892289880258075195868866249401287758193583852931898488697838705483206451479794813268285897713517751457331202269481696472766752235446128542695173081795752601342056544516453102028715787415570204149115045414639573981483013843444016978411496732926772539117272382244004777304309306241967242289017494701856851309888378622908415563605455107571697051039730229966720732145160630989968611955892069479176732514880928369344583137578121106455256700576691882536261611037567332292977493477926784524312102268966642689674341929826512653957439070446324024283528418237381435967746383518738062183531289190075927123296012400132197243059370403144190450909786436753227946559660862491509644273832371216971161894932627830357189948618917837438966751723240989351598664642909972918795725305089838001802051389840020786649168098643718498482608898885813335108141229698490401376517801709687306568655877982393173189688024880365587832115368252837165712265918407569951609950039189778069273238899546844536507142495039917846357949814931505558784869386416316793784816189672219572055129147488744281318302945036460366672420685838197720247988653632129666848581708573520901806202120876074384568363785247249647092027223381669975615384287238218018435343219452675971071088678421105604135965926078202990414974218192461707764272513886106348971632711600456909478951520885547028311443520007285336118096873214817464956112428228091151418354103461874918259689230516591986129571982645495596769449909432557154782968870087076154111294181109314092457340206871167417129937891567697188334148735338116493537552476574436446654198752280234842824901428446971679653238561674230008057640714739911397174354379582589929058226414740014526199404386247029927250466810224180549024063076581461313261026898326807725987695219703316270619503179197275558575541821523699269217833783232922498602440743702170223470529997126591722579844850662937301500607261097620327027185548320237488552557259060661976430118689374904391844124107954471423037529427472915433103291452082115645241848614365653503236648844432520003669253689931951751330783792139355832332944185217758754140204681313915463539495445473115575253472182544711683201543016722085794396026158712226037564305390140675492211958319004496929115390059146067346010550435963786870881959741568852765255704696125044092942294311792398616158788300652367547556373664753132202999323662916624530866436115905425346381679139015745076901341780617587588432892129895318087151515956185290631095616346310887096031151164177723351562171047961082555126610045873485320171990954542446619509533616051179258644568359308432366087058878575910814485951616287594051733806930521710291177637763204007968817422400693592369973808507178094374957399385315489600687723344543902215960179491533295644879307195928807435618897742701138450756261880681247739468450033874239156509596079630097073911866678478793395612840472092999775897545015969890557962207593349180476295156744876007595013927035032882193304973826666775201925239076914392577908918725321770128017285149395650575044938188525751327793303918083591601627394553523084443652522772595715131758289019534057389982647390126890892745078846221294674378866410341697941374955922199613539469194463181299093058210538458946438611918477766213557961478969522291077214348792563525395369901112140786971491835789448689383761428990539730817283353073554999129211834473125687948455701384446552364793025653848813729102441001001443250841953659039473204068020222529191548882802305706624972440750183397349445342791249451792698953241680386091836030742740018085495344483534953908495910653602013063550565468231659712854517277860720523734390613905477213335191733852600878718920540212230948312178579542778563638268773006711193765786734994478424026307021152263855400791904906205804229839901055128511221811052290920324590382316799093900872528726688232920228461587974980249140663613777714632462951663660122340260948404431945022873509880491743699523922608676402918292117939662457579385021686805414015021668791994935369088552246166073081163380640356122202753187967523555044834698433660584819044370331150973472425653648980222851775466586065639207931034395997492620980991919413168891271061307666557766795157769664597658743710459717724387607229951853913282112763520072715480867684374889955548008738473630620331158199626404366356392950922816795889942641515554437364802218955120928614170138496625734634353541774228463123646136398644988188351097095695498187020220308020870835515003074136117963214016631512158676961619360069295554138405946643818140134108807677555388292600791647504708841186532310337556120640589720739567749338979451551152302040505036855512333439426674460648107471734685125223073013571720399436848459240298007701143054533934675315739428561282123933952146491828501449274528363594605123495867266246182078760268391211298260895394749519683533854156623663668222861580864886953978911462011154055652751369124416000846365485267202439141860460205575118583146054937971460988523963147563361153817395912330912490282049865488200265387307549360089451023247458654381475958254661879624162763096644595612160067282459318031494075867922306468062861631028847974501603497411464614968502813295400114651356775762603188823362246073536564415443233650311288044801054493930860581554509164999584912406419985577726895079894731741886331434077550095648231545136118647146791484804364371638973575532704366284715881744602145007656525359090211757855231200938281102648983231688264039678814355922823921793643172492337986998999783146346286104517916104144926141171333636577466873564854756055689666774053516251420122802561953969635522189469358086075022629967466629954836114384698808647117940116579782649072944029276248156026771424346623013847017008052319923921593072607558128990288275777854768057215583908266804764535829149836082286996782481970997524211730266890480547127709879637464300809465178552854037889240666179202707584767598646525317831034265578097440739415043366871417709201217939497311016897922646785273003048674833752936981288195960355818096138979677885927128357774764123259340539829442610994139534246691411394719703315497222877919397306844006342585276101069967789097130899037543342772954052528272266118916791654334618515142561676679124265203225373223364082809637516869016403870642044835879530912132681304253203563178458028482722778372088648535203123135826341568806732017605268483541673605170081936257184291744140008434205502069711735622794118082941680420556997740228415302739484310847264968689760276130317461549682073607734779684253025578974962455723315268589881660181184945086724218446129878084728895222206763817868528620536635325613029026862179652512233460657180944973917431701434520064968359865477331053208788152298100818653438241535308805065831057260507767391201513951148262918599577755979687464690327897709512221625120867165156527541611194974046668575335324369424086066798947183255203885874866850793641697265803158921730825165127181778280096334252483397163433993336582990200151288839969159172065557784466171064872822343297099643971386799502520765473944641808520788110017008125500111404553285798581471073790970624437233171332984055075546231909449318833501848436940609859645396799229909424170081305017675051406774810549903389614971072159559018931929646989449129153208176708190063161608194603633601295372134755728097852798526824219208648326927338336254191810819185640775353873257159287532306825246439228449108936056963323899813460218562132883837157340250071764054577637248952254615855825536203842145244347645230361395119067935461099823275279547984036519375207748562761197830607510920433465337287620688197801677830955068597185656571460152734150338235451499462884363874796723661810413528015887469090231823919231794544642356986550077926431717548844139449242276552707352141937568803161275394381874210297432660686536867288049037961154552729286260959678437362604970678804305336850908553401219418601183590122089418002875929609378650921292413684007093317973858998921111134321892265974918018144885775876955381114700220255271809708374999423011949597086002544095462346123344557946361474382494222506286366706164705398808959086320174522384025204924996727886617389715363254329094499264553849051373308363849273324125372804681359560398346774079143859785015304565689885553669447272942324468870613192686044008303656049908160429488093315396833645094923754252216597498599255393691152123158232625495977376755185400528797389255271637031121402065643103337562874285984630045113248437946749110587976089841542674365666930748625439005928212718861556247700169252053315766680190512300638244669871958408761691334747953422171410225583781844027811399655009084440935323054798656651278439886570350198622713072862667527298769023259378740060415063148345541422559201551702263722806800954301976110322590730836616734020319642758810078927594413927235496950988481039772009302528716841397962009021719185351545043232015097593373610878060154326139708258408185566530528417584606304487772375362376494817870881259206544514291933792270801656704107713185260967662245500131699958991545591215835574269859124640000315996981309686978738041073512640723873462186535742819418461199920374248301247383502967128862618046127925112336365296951336080316183442116395141709523157861770932960440985362885574744852176323213282632768712258635603692932320153311679153106290102753858307796614868287761313076292271150397950554293093121053054353919460921710486564922597445301583524445567510909579095868162831979908250012218602052062446111013512238548869016967817445540769359400731246247271113596752571096715615201045235875667177087736301146980775397943554207756920065717348440219586642545143770002152569478145597815259561240858905272954851447838339754492173682189972518816727088898756995535031820849038730651249930553079258522068267423509510610882244202983576639477026253156889947814995138484347140321635809454735424869393837981496846300742288787328688937213177509675002779819663971431785892392983269180342645813018893023876285585022018630423839057222420876988117973102011821970890198639887522131035809228256186590019430049338055641094286401599618139166564797705330603762886759405705798793534727591960523286174320495940867763481913189695008328660019011849143629838805062547597721652297520053862093877195325568458047684991941434271288408330682773579947520198869280489245194530611353346868563294945768104984544477709437544194740209826803583953557759128358645260549776777539757114319730602127711857921742241206121172000982632696669948380458206991247813849902905410787095675965504989966231865497260066638591865065171970100702556857044843987562400937899667149923396703199277134959058183687268404738588212963039263984711996815744414650865915956045987095923153029607511192614561037785110498971060496547139144771388594494000447803214104926177324671735739693838369812800595343173042350051608888489841355142795172673426545560002461218912015263976120598975426486844273618688971623472818137470399136294560997142017453828635988633008474150127180730489955761489291682558238896828935887756624309221330593919084216437649080146338012253527939378652905769770789123599559518481553113738307981069300296933855038323960330408998535739824315297095539728893286915377354687675869203575999969851487779010477196700259817200711851381477259303543082817159569961733664630720625892464225648870954096548926098741723768303008171626388642308184944272242630343145873645791305566053538859089547915154978090405855123533262021168224723327094261162761742159140120698764064609650528411942979240417409634844807833340302192864175078342701572902816906530989636789664327435679278785786070347818872810376243591818216176223266405118583787507324172605538874667832616064687186435465535340353067256863126182461821556197363605769485255929384644673931428536992522608663671775146976150146133558261592511338618914494308982434591687098468712652607655712132718919582100119882591780726353298041988664227274357445192612956094916392928554188858354584767245086530492086332867574531166073719508609148787372843928504591299143474123190535939475864522297658695291278050666575004884724900136347041703920281877261262141410859861119848755156863005941821512692447517111914204227981640998180598529422768589342745388150748966202761320160016328780023629966277050283096961757167693781410713837008189157672263686179028345521824009171053109877374484007410928745414898870410684511316140579334298483507217854543140532155631608796207243412899257183708815865360456183154863839913282724476263528253912565781172937476658105844300629293795242273425129916820352711454049998758989410299750820879649760587758691271214575692381592708188692461686431386532588469429928020837394175921665078986087075520010015570564444077559115736309169529693877190193041822568090402492929079103354310710204361143383934128530584670376077037516758037865853481565933727405344888243973026464580024340854575559833433910275940046298724320259015912344080196213840272196877633478412867840030132778336911886920916316471395845261118053105740254231706274321445125455668997497077899416263894727487365509046635871704645311563807044572997941564674352977392473608273941425434573521263682669857114578542169166712129149481703702617366112436289834514225791240805788413711782916054716241929080259851134065028041911056523368416614908287896721726976972635788857246099970247726812084048121316791606470545432553792058288926853047746391836919423125598737653684390238141842249074471898106115580497871291135841523160797966484135406439868533170195417595713363150252436102168915549246433084251063129262919990560615839706654766454136386402267325013969647687899801492313253450473673355527899646845706895741005447924745694229494670096563113777840533986048509718338671003663625934641797931838651983106158442669665426050581884608382273581300867915882371008884855198017414578111266999998879791153273085389212485315828700623720405355403374019896947468168894237861560654840300121975402290033415178085685833174702891268419247969702884439803756532571366252444734230814295190423308802652822432430661100918033056570281089593360811401084113981797957142448575387294387352955728397439713134500122292052001844122624895710733924411434303677057453093865137281579451349488781328126989331887549735568214125584479374062400293177954842684419719302932258891207141139013254567500399778019988828126972147078074234150678988243218645987070231256655526917730659503997207329700690085003496360265367646438173302363979558709644646216390846234044013385315522303079312291858137008260830870836637974286552598100848135881491107324008982824806529417173649338791640074510750402051124533156129279282784528038129424821564965996664964386994859343993333937671594160813969938141414966894262499660592977412954756684307752757405404347330668662352253349630412517868453016918515356485724125815968248808314674195214841583166140112830079774196986580793298488504719656534367957051364285150461796081190162705875435045988880108756192702751040377741613429689569550063739186153183498847285522144197349598679386490544858676728109497946275481392768825784011334880754976880715048823510762012208212085288037299610349890237636385389559468212927872388942020812467725099500477443923557045476333220891428863721224723873425390737609837343869850123278029825071709050856745029733677362783982363838881194915185565000545620920147734485437247565838512507465740570965876218123854354179724420553516930506060555290149731105915964783345849821017843670505064141188101181419807812196254555130895896295462441430282633321812428674023719852960072406176057705787314833313510954513437416187051044191091837656747936025335820283335821984079707398648378994459409571414202001178535423310579214371869057802556873705710642678286315010684416614983932164855917884775159563948572553402055186211708202491269360969564454620758255869510103402715973506912347331820973405183697604745583644963214820011735497579693006489548430075348620811718614744983458419230541911268949544361036912182362927277431683854849310052747235641588012108942330719297186208098838133846214029733918586393109907857444150109649858584993251938789664076213871140423521446231558681225028293121414888305290012011330014524173417357604940074837480033593553529325212047452024267189426798229543365675964570192939447800581692710161749341397722293373027809385091149298302630405885771631715087122820459031057344247521115065935249103522457719858858492212755222150612655963915135841783566919758813409972945614295363111192088041361305378208925461717142059817375662167149477930732962800953458574352409943864826538017362880329904903316506926715825838929768652768976798387837171623260338638948080134350385454455758185537317461761344772271691548443593806460414137533571727458336264132387491121772955955098682321401264501075977828481799878468615170871425245940648400855525565069006876518719164755759895698217656869832629430680838583657270492874803147948565230004157271979417106061096930995895381460282509712310072461163061052928420484691161055937253472029419204273863228757598270662509728195452484188017019930461299415348469229135586270429597206084401563178009663840894629844413808669190701327253073212143538512111526462281347943606363462996060707012035291689357767103180611471003794337034513699724107749775072146876883714639405146525021681838288917679377363984911007541045692116943535860244839413744496230798987659506801514498182212464063250552000248475873895322250138956056747889948061059402946680507717692424699810281269791897379829954482813494307488695786155635656343591287127284853385030552156442178250979985199284678033943840863529350058299004192464493343068324601364547147752555043353823194554852236958227661326772350151900092118833061165538087430421176487055371394997180410115927795737725018969444486478551817963160687494468566804451869291612015079689672763819845174584496231918000085242293614640732324393154169948538649952469877146845234829391013050707773934505170296150363765074925828593635965498867561523305984716613218046946119758096656244028993819725571935816721591993080065960566875129706900687837446271067947772653238546273382635560647004637038178877490772752120532830671841812839641911344531219630349387614471487461025306507295062908950882770041590847625575816896026043912279617654136226637473524185233140177210139552549635141233798659488355201628779936798245608499779156643509092567450505255741407118089113331129022497032097214723796266397354338602941513655710045085646433950086580842654616681457454530046508053092741258254622396734158539775058176699766473534245847224614743269535027827919895418468374954292932426544827445924600991221001096111156763800798458551915915352048729629067871680065075069201789859799470157769632426752940637702332978621355686126592781928899978555550216153366964109591930405591085278822003700475636159976009540781562974954706054432690608425858572346765269758227238140723299788420241192777436972747060162965190788552366635309436943519401727419773809232458400462615164646538749058739017976589405373780758356879434374852188066732945616299453803783715123161069332112254138958256455790098093444806097251242484738584568930780463415634456190480716601270587845581498228119081486258320051811037244146674037964922293284740010176309705005582900664466099875505530190550786674921461870318001220011654038941563609824449617603130678845384183360748184335747815656796403567925446839935042359156485841672551539293088242778368099203995697158871393678412341314397150478231566743603314973172134555589384826716460282862635220299997950330526910819128851595723905179699520085144488367955939704280633819414308105054475383304881169446348236993209870915365724474539359780572698752971424881562920173359819601815991568959906043228262902280594861004732501709441673531604334903705470302159297859843832895641775430104971768475519226326160671539771701021457716476713812956929425437319233839111264933555714316205934954518259797366228385228298594108406685926739145588123178455747167248175552379328635896514602151012789790111735432894255815258894185279447412548938479893036584268061501946413690198360649692012860387438481558134632196738076456595507749535467657513299156052018837642159758082474606488774370231438435511106649575799504267723754839169445752248643669101606187909745030613426466825077242404427236996381964189609644352950009150982232705836527260352102043103414569504356422341172822336399891201911861286139374146543470044923281960308189949391510941344778304105795117825341076456415954820963699648477735150906484334223515637300172968120002639739911656713514686955805617487194794802088487260389269695769955233268284777298971821820438329665042907239374560011748609253529130367001980534331055983750841084688500409515516406947124636874059405531631485697553965882598317442151597125092546319892837377054285261239877724833186769776773626489608311740731828866497755548152559920383064284608072740640569551130983490337527526528508251340800400821403970539213734491315249925149744155881449914254593493706559011093435751818744034182034403648822461423208059751658246922224051241818604354209088287316978100713107627608270275606083926547823838723416843178089997688492426770969100625321037357324399065423694808224846066580149754745843069545270123467512588172947793668003361982848557026721973547942054929456388333830350298831218772102072690452139506635185918552313035678448420806978770836060708110485677255237965261917408604418509312885390112642502558500745355733210724844686026410403792827436919686788414732683971236188456181813356296119196038548283099123349949218280626490983227644373315566912090811069270073050430962028430392305408672681777723156293359877537096031276510366331158438307524216048290241571309810816118703392556744916867961988234173962276511280185869698309006514497967641526781848643208980354593958211285217304320417200338353020963388938963685771663150691247718953269287373754477289262547555470557153606239787539188378777541058555236770311017286389570427868507444944547935105112121414029327440247449114053511815380946683337901992196460944445413234143798166130869139260868971767095293944304855115780225302879825356600526741127709206241279297154529472652392848527500799139627910664363566761392969244220061709792692533852212962056710264677938322631025620641320932324319578943709790043643027214529035145673479080788816232524524568488854202251415382545723967463401297958565654201757288245625373898972496626896117073150954136332402503862159954270321554446895530209650345212334321262994561594280160215087911705296993757563813449669023062272992276025527804718364394847260936815900736827717498298450049691287832467053361205705082326721531858680316742973438025171715372762766791933527255789599304138997252836681673557228880129566130318564948217899387679775845541099313299252468618238309078425297640167581816852333484157183266399592857470899770189782442779058701809595837825500912706399411583013222602800168907484181135431970847357739316708482371472431130849752824432112984352389349370534286503716067605726096121666262366856157262341739489477267472085248958811383601783811733455049105895356151089443955910307453598154636887024527623940578834904879960936575638916338864596378209864076297036967995416026745640032683187623726252705297332934737228851876792319320422164641645772779653663003144789711850446897268428748844155355973290700892324868538893948109472855265932708908610031720602195976556127538467815162758349572823485703190562320174765246180326839607714725554903763111968385163164202093994539178069308153528218068358244990184801739533302107308223303480744138342686482463496415508467496527059018236512788239393285234426591052613755764648578158644667263663746999905898918736802257139623359636738999758355097970737479303874979020009587722151535861788932530536334984922014773039946546858596893281291864583815381619706914256312473803989671642572364053937837969709156986530829705317859303490656521670783510237168768551581057198177519588555819266325782128941397276301476369805694541942973232553158427613954883167799427884842195334621350675190461162245579672074263340580023328975225750575465685509002436139049151881081954895050810533667953286678570248002761794888112837767996053769492408834694997852057646953589861322250255115338445814559860376437683964836607750211112412791714653714365152888334658503785292843702889696516614531394392835223803855755233715871669410871153200548213587654970096943509220742516279779954215084437584817770474978728141708799711586237006587209680250426791539326954351017292268203443911744925144657776620121791227167248168737404556969841385101372642573917828830376131929345991784939039227386396703413463567257480585587407386811426074661677454752531495131065046899096144549520469678498836486688720370346132363272798704231552505531089643212443765761664088446578187714205231160986399732447012869457396839985184332966023861983716946303753446071655115781459357196396676261425760029782953443024198638314283465181720339403712844430741264786554619975541869340363921431901676812479870204660026374604804214120317856366253809394579490006332825516822668109039850083774079156892250235458601324862867956298889296223331232308442333938031084030318428728121266350704545367131097807948542119704449540245914273306902362002216791658464883160316627836600586727736296481805604561695023397682323956189444133698753163680117318953952538631655750583349654354335037633792775036526317192786629412597264719119908659717068773581286954175315595318304946930451333360869526693276610812994885620117881407786102845778934589176617456520480201936918648296650863280336696781897142632303967266180162960387260589307119933808378659450443441681272519680523699332361685730415977982914437272099187132364329881501646375869134334617026242816772439152580749311234394766609065779225100759219038702341974349577883141230830478792132761583597710789365588429092528610948627903622669834548990613148110612572877897446056407242366578600367913208999507795087248682988782398292997850582782197813403983655732519952773256660077662091616286845874997651547330498869655998023567991632529296506036815725506461232980491304591395276425823367391003307023694420935164435305218188521014339407809538059515498005600490480529917302613602417969057159827253820291807954407126682502800353548892991914274954497319560218487044409416867900282508511789890681384679479235010279900902972857747061833107612816349154055261268225974677613074159101093679591140558703230301632941271349847060849308840763587637518189398628614830589174568448850645297362532798507681373084209969822806238815730409527042275572673375115744624045016775208925022411928895103320870920721496669936059971473630035164875444848359575094428245104762074187061601383675808890139427647589316032659607812394507759682909143595139368823795150557180277578006635199226714909084931592731179024942768539240430512484076495392344766019583887638529622323888838179266522392127430925849678517802864110248733334774974459172713544780365878608866679601561713399604071561792031306019705324420874104311249131865310592773934645513201430724145616109235212846070914227515622152151493976063721687939227445337480851403886958071616184306449824882479336464097130915125488606640283706115147039477290325807988906564395035638642105148250308599732177566878650968118245810302481530332610363221799555839542343403524741584083036398499091573262696753477687478986329887400780005623541225666528052689944971108684427856934064434022028513081416679339703887281615911988391909660902414522532488273117399356190707361315711090080486523041313936612916643677598759277301655750253155963365967859882897418999439631754511929989076389967270632477387087470465541004219957164734504041946175490634662749443244565691494361892051537391628089194445527002262736945111054502626848497348021493733191724667383122498681406779153560584736314660101418367401619123052450176114662102272134622614261716304683965631811357125420724252442375534322909602082776178720469356511842386965675232223405791155165403903293973978748237339332743884704218129544990477521324183527958696084722737475687349492255822778492722407576002403356550961175151270306110832289031450934619684102773678068852176311382862942679307177375094782709630528048115718169974665469935820079007666420536454130079672324002953867726527079985902069922727218399148186719243149505915181179136036930626776140705830249764770076581259286613447324883493596055554481545825697974315194274459223050219524632988273862535264684929747491435704890013911702380632678873000035011752209860963027187678421513338882839951422739889634405609498761846083408604688888416318318015156209590452868199406306414414443055029148191613809432441970452119119187845602026957081199724663921858932026042167964354730080990585481958264210254012386394483726891736590814788517991304436220544290151111809322896794509376331454833940619162725209955918185760763090668278843535516348761741149205853899989733248801805310652788228545960229197817626284332003455119520332357780116369995560634027425986277369183034735928910935205456407214911774065588937473087150115440545274452988872263598505200915700907797009815777612164864457527732376543341503985336574822554598589225785226285570227786474348577895353215179529904230453490065680417910140507097323937123911388230110177966886296870782166183740866773400896095673651368274610846070398549062600151640550474039211402093086451252364904851708303760303408885312286980836618162659959059741036931181537803124883376345945508052204887541090149633391243325203417005844838624715364069393475043295958121820160022511065758306567534713893427205406325801593614045759415820482301811868637795223635007015456785270229138385214299033099285924049334049322135644534219416603791466370448135822240861849679293619842645636734312443671852903145188990996097907293664416724937848793068817018433045060672485215799496796777384769814184062144685808659948674101032393069137438947595025441835181082646599576673743366452597712703444681264409676415613859264561187599537917234748052289860801403292651716032216732526328633976622224405878250241975717885133934597841967066220858970852877141521455262503817519071895173679114626529416473190648277562673689089657339705721423296822958254439234247347436754837383820279824896444373785282653477640572227723990624396901056757410509882007753637385504460752893519501910682353900278122611837502542959815552454795239173051632313953733897739904689609452992990307597237612498961830981075727573443174890970547357841318343787186491282494992872729684955773449169382071762785226214542654639041765191495499908991259520548374205272459815683645456309023121592599258056446868017833480521938937161330160046837718020041151213364857191446902920702690491419832367125370743100703700247551976216367943670785238984499009126044887755802533733152565433857938453396371263133908564556668748837225325398969254766223993942067304016047256219915662077058000425892042834797847000495203531885691820864836791873608792690316835785736717481934800159642964879785120145551276289571752193491190477257694152449242474433177802415093183355675442536523246388794490292921299870236192042903117867149387310903896578301193650583885935738808149627358769510328716726853721680284568567054963962840359077789191821485723301877282704698316134766044126104911696799479769139396771065034210215985009199153656433216376689188351676513288577147920577464590964912404018418207808520652735132754617051465311480479753604404804581033321668438350828949770944928826526508010007734097088267487725122497044673322719184728426466422051027636240049048694021336840835296398543076003835831170715858283948958631758341251612837391175157903719816038218223765389671153701438364693915019875651547327012246197691238691845095522155117100997093106410483207335835798990938207163190737122095930830302841117047014069745082597454347784355700492480648931482470298744839537300100605488923464708876295216137153517112992351614597437281478025675724462997303435159942581818531323479575319843972013901426901793176989070217029593760696632912811021341940702551848428663932630997287767990559455856513037350565355626466272559920570759808615301911413177592175625581449378692081055036524936404803247306221808204447762485515389999307292445308351387812145215635666190096046150334557144395609709807233314219985988727881724535839531080332623709362402764433814678821021252502270006078127446880325114537984218169331211437603866509705444237909285089284909035026401248116229245906993102560750004685775931510773050022532208619143962666491429727008317071838533115527363978026625956633387967037836185432074769424355435259660759827481359507356557063027161839364639391211021721068184544871609146073640809855909049852681435903325837671407979697789338781127089338018559372743624309071850013535772187163715100446962262764915400326874148379677521295380345708553725146970043513205130710499268889809873890074508428229955016277055031727244275494234620668980119276248516489077304453884361849832120458038261478236133133172673036292507423765787333670370172112139557945523997807836957024996127876630512893575562433427682473944130236616901551948273137238211018919194378910497815274891602121577585445702727578562387690693543713421910821634955276599054157992193715635343265662797446351657005048288892424398461469879807897294554328602313743640348124124289425793920572985828586806597320234592679093222311541122873978157402361175285314912247103977628135390633632127745787655223165168197042797842391494660094484804366683752699502768536339101655775307753873903475514862367760737912119471239010602663022439196592334620708895690254656900819733149753359134205544406596960416199072036791325059465555426531444165478941835601778910448576349824876880136735669982053040415957579464738132991380658095389279573158820240958466811480537224221579746387251357351268163057596050397095331077229499914561842160497037173273022655126229133637349542629121869698644954664243149038381107520508149923302534843525756840480943642324788778113412443484173451186391974810329553023793604914225781652848564714793876306244837926926200171824806285272452604384922908473075479375405029150514867138774242701093864344261989417684062436873049416277431239424631143927407065049956320383420978617407093723876296164705196016632576767056577904403625788022431478639187705373141694649077798518963500305156440719349270240363563308363198045059869886696901047922031543548749867567630164172027945320836070846545833577296493934150935474824684616319089986889018441222919984030990086648673961499011654608189984899546503135412209845821955092688154803076166626650972070435476689470849985547833496223774632522755084939261735209570812669955634146090782918446790817219142360209322889696842182158915059733875509428259584547331900643683682877721968703246837531266813553542172954042500023434562870093293522024883840848149832124408253295739862919393752758072749014819421144610521543304573344859359541323267029932521885461819755162670399049391480662477101629288165635592366314519379314544949420051657526373506499550805460828651117016860983285288379170399270493089937873870762859961462962391027663128043583360214669730301597010772903386048029661397888217913753640349186497252029224611824973078567811525710349194326963281198185124230257303726101598751419442314403478280201449221028972452591664543243546631691911427929028639042441777375931617060981801668755895185626002368159647795170440362368833337752997257234458736980591890014262340392656404745451383023565429737385714310858801133177105867283087541834031549386372596448674840110526800051378646563078001541999815280920900063573686287995312209337469988035335731582592485762716186297441417490248918997090995489546110131230987215288665376961144662099504495538786988308451866125068969448110920355582201153372152967884941373400594567249322943787203905523653034779075280641886186559143697095587414654646124679408213847328573565384520188060791971931358733448826038224162843325955135524596554046892645814931638268575746088907096035808699474414728412079778352610997791477061911362282919240573483660445562174470639764818062922592986830118928930498293568689124047200448286282753602913548780409306245749440565815606401147224285123962137659961650081463186389001780836164938782854572074144886339908407927695142058693036780428206904318384876361761682826430712128254984083562721006169131107374950131022179072467310560484451979968630977530526713454390415946192040584802061448633176985481616524727097685093940590646922844805794875183606542233068585769059529367325860651842092477068012433141726046154734139250812435380887249747244158676808348294704184886693409753847544669927577219048253263398867258412626624252055245128979123059452373334011143625087661350430172342550775415663922510284365241837968710367200957249899614692047019165657368581652623304567673191107137645021722708739789063346596430516728989152505262390345251916474765365905501177547271478294316227062072253231858187846429284469487564298417652388259384025614976822932828548845903946601443972403539219886580316069723204001315815968121577109200758651542146352462409243208928930713608954319303606663903907138485344687749342607159457715464488412559589699582986866711309876597313287358031849631355716063493129974984842941231811892792696883195829258289984710291114401218193586486049503825670988028320266256546731955040206955432206496265593277619104215010748969522764732530635806801824900691253325655157509137572374643517547600115672286253942599563555149116243851743864184276026655553119781329177047318513081760998330204883009053929945618698441597640623135936836724831103146499809007515673239099319565958641743989219675220425896100075520052139716507261292228671386389948021040988291488471462051085159619207779985301506130875828287101967437210063691752523931956254793861469015699246261926636931767029449087385808677384411568110587115060783873322785882862028348093003767993711459433497659871482632662012877375438961974660794503445575517810783321836678476843450382083338726886928834626298842649610523573248614322834609963624443467623576921362186617297883717998003293017642451643869621758100030592240833383684391372625378947339764261213554798825408407045352592289092339643568158687382670854202385115722349271344371990142074389664270708779051449785341968293699397790136326001938585789971521972336084613314349123599346299285375554512211848247210722187680071615605797386415396795266774492408848350818014931056893819442023104092874955602761595164235921556215428976224030701925255681735901359533567469341556789412126132249172124028376136549850498918036676125891083670630568768112827211018487233987230465618639861970002393559417434934324829485214246549720669638053918599729637234913614102974018329010639627873720746318938927683085295605950669099473973196762577731664986274383668023121472014745502929885220325656959505291516593683064825053725468431911244128604391751264290920967028438380326260641531328700495599425449444642310638280341025712734706726283557286302378789401760038402525346002673673724221727749102604819557897432029012450642087417460464548173382306918227777828228249780834668861674865347196813032869478696413921622510538877381290817892907764581690299288805852522495666264410589930451221198850897180849711763149100304761739932190697088487980433772541814713446198083034364398744014675370116409739296196561696743208557444176807257619267356344953791810807952165523890101027101550921446536680900077958433445030499354810062732594247492477213797308524020903985330053410235538711077299643780572183881451902448116975695162815487395996601602244356546551477843018743227714172293324761568257997956856216650300499703495964074188200714634952892076176548515605580095086987487619338025008425906561494620416904231642201058689196691462762621535912785147748306281939411044636450988206359387049745464783425769627750471185999039104971075796083015815932705848011377238613035325799563591925164539307952912942591306472686799270428555344185916190532774366422552782768955592317824808715250270653470916786379806635535412260965784613604745447456760033596732115675567983186834360745541969369119396765868556911470794427757066280484945556746776494947807819854211458280647368502462706530412086329429876657009596795648107935261449454334194632950481201313846432780098861065252465165474991417716889533545875651567302376394048243293554144233484207205313459357291709437126123943890717431582275694072795359589050332164973131668036501463129381026858397573931985840413653141561493080362774117111838878221305546224055455092518995045970529342082491245847927131993581118615495327163111517984760851105658800931824581713214342822767513505554252754263735004840587163312016442755055220213322927409298214393091283689386299334570421422345644690735807651919222492299930170277581260421225247067868130912778367505777822587543871659653947253218566479866515385828595702976044885749133518303439726713305431565437967468937311282896039099389332370031207208308206727288225475178258048302256730077673915180021092051132456028817442432781089844129981680101448169466074727125448773334384153466982372058151663949455192374720182356226719068628217730886218300171372086720225540730920441144977626872881642438852759157978054066799849561942903959682320835081413946386377405454390120499080173964926256970956039634661218673287248022938226455152236536378710708063755100381033149977955159768639576776591364034087670585980951131959689632082768459130814955296648602127021341424115583403593282399769867602463571927895463887742492880009634357951327799973846775608879831213562406280783103997687361641762491268913373624459365125286155866546517064617027525198163712629156067369402917608541042978594250927083777249879521591442473280382663294441248354077475611249585061778956590187191575444565530544223329339310284610014437761862507786641202897659979802189615247940510826049958165903083461684771066684634414301052512196838268533502201244212899740053810540193760158907515408379747119801351656157661246536035296560925845291416567593465564499438935417109119614259768786421351528079535768860102846190586357891931301481575129626650848697694676552734986276021494749550330896643233496346467375303133391289833009861487754293068467864228138873184379102450958331838529462509105354833175771298060469851142048521976382746282883129661409948374156120201189502786792766265828392447565229236941075404974252641461804285724225502443589502113249612870312450334515807084203877138380520346159313641487074853962254099100925070170226737095005978966644886024895606948818711428991335126988432652570336786538715865443889805473914916110882842522994420314617314740601240343554842473523932747921018980432277284220450362617335678961954365357028559386578572227857012866814947673655925060620925159189430188883251806368350185225611296891663296218456308866423385484144097244361797002872343954366658917342729965741062399122384161148052415313122363662800252029010140782166267138232210460416303001759874844129935374050704771183749176839435704782534624131942201152609485724476472239712822621246404860746219024413804088365033857187938451980778219214586318295466845095120409639684872070162961453145808075435867331310562356798871975663613035327551701216448984067975165314907709356453416715298400836378280549572366766034417805957569654507147246629515774808426746225574140127979172972716029022373241538161026585251803223461401093463797794440921562211323953213795987455734340712673987740272227040156250798441831500033600368251100197015472842715825491712519642167999468565584615666174283973075693343145425356880692309624296676497402777899142766238600264508658782247221244699693827921761998042458295659504304915083752053157093034776570688636766195678533186278518747160891441615599642833807501321674745446831786910338396870126789299043009468731481007114734065910316488898009569681296154652466529590510532202265849883376461855897029210986972321523713598515047517651743547078128545759960812636719743811877525002103863706922203899378858612861395788303527076988172472611942400914101972093419647399059664805165517864136657822133620939936315473348978834764039190215074846433598732600644544826594352788349936227017165582812162833800822471768923418984400355500773189810489168605770900025099449350243100606339224792540756904698743464571982340842103031798140509014997342398401387737897728524160118031903431250289098019722557544038124958927627151221361333507079554891153622880484419009652542557419351305735893252189774047101710133524235800009059240481356367403781287833836011707675743173856033201492562486632980218590265760896354473858371354968398613771852051059871630485762612707655136712170053780603284120785716185564261989419620791581145552136274679859287915661191244253544269641566101983871771638388117262068231241793554932910120570877498961627523435170104555721140369333934689960553952590795800986285161235731277511295226540402055458251055726143950030762784462438460745953108935252192401780044533944587283702117304360141799722387272825055536089057639513738422577335531036823936235848733572512105688963530568365268454020750851099902014288477439529536274486944078202529804641536363497278984806808013773801189384169287063558854252426005125147192596540827014403167030336816894994921532833244266469951810356787309228850979160670690220229162062573920220768679153984331237941738009067388987678475553206534478135462465364442867070769857289967734980225384674731197911589752431684940818533605645988389575494589863370271479376907564029041013504274756215038867614838236218817621226196276201800518122254898017252626640288813859524976638357272052635080102399399011028029885490819291284585804821735114015856451393394784478305206343120202348913801951880041553186077753764116883028502457115367193179319275197881158835412916584842089909356864165175395942679509081597166028733873683600516414409164050460563635745353991751052199878758799021578644132892515238070741134598397985464000731315480172171310273398249964605941553020596935534720202036166393674006374473582294900381141845810147845899969543967235785608713963773010226254481372465787022403506428879957775328053182502256070298221380845140011242015288687661870394723120727492111741165971008938884383694783108479418043753293186143133554554598183094141170678679534124930869421815441743747404468276237894024805148422030162784081207839248396176480886661693274774772679273092097722610733881204604086737386418359339650983327252904220646130279283119829133810740655245368033340297167167086247651806249694208462607115212006610778350433836831092605044713932595681311094273407739258220816860424767999241256049997692955095571811500317047681998236527508014714610285577182501461976809956711409189548020206930004207053299590721202030514299624613073086304074128584563748929217185565006386295966876360533903509898020127904781478297435098538174910461905755978879429752568477140541999421008333154960807330998735206637574999052453812357292776216535901440823290357394740830145008590120322073202267439651800884576664646580901229008658839353252664916846636645088769633169501251498625144721838118554084567171988025509383030076659486830393381871355518178011853968857288770212106307414538226695968120490209478808286918929758274788654796411630866090278522872853722007645008296142186554410471638696908133923613445549748135164709411524533568183130835814444677622970373441767470478015638449227872573211993353284527678107491868665184851572307890360559530638319423154536932945281636075433227442669076265787324200775970820552956999073381379326968898160232142111025033169350872574307073876202173100684275823536393468670586014829468784161480683982334642812091289718167267752106644287810744198775474465499565920553075707822474541474204119477528653138626715692711323071975614044477825029799691360209940569218302287044930193266130043541742726085963929281460556553000720070645742142756965735688556767422629118215280161391891733194025666750685375842804055738759319676044169328603309802442627571679471303388503724266305092426588183109371890126813129252551739842497163258685748697766988531410032520119271426887290553404813497781447082914590495001839567171789295320033563280148845209127535362264621065016777493042621730392127533838981532361388295453681489639707980650012299156019332524263508618948232004557395692942161039038766432719419865559592000998003530736407958284022357516206934059361550183768718440147622634922485245468239799097324397673565459785204297323367038953776426250564454842014257409987982152848599570684912803582401476829330405493410403659924174084002442239076398081035935557578268746982536632635813643235145046898797178096720254313661836148097217321981000504120816780844688783619483131483788187592238227144390115834982751462330694446863734222319103528611993373724355311861130946576488300240333288142011398080356008679060820361391123017107630748612070476596850315570859080806284662055845305500062968128670659807427780381064864234569284842552981346611616621646153029221356289944200139341855280463339478096098078703375874300073181973774187154897047421761487316156203688174417739962533520240391259409468713712892765938629572459859714888129848293952666580486550688879645101249611476715297919007979379265347964433095527698556538786302182180361231003391072645980360193469278208525181078499294445708915726638483767997188613464022691915591858511022237459045269196218496099000824949073177125255059073019753428663331270372245484614563047827598848915648886018849659480786134940887137576834832205490715454429906445093723878916938415689006553642963804197305711173242506064757136673796664263344876675923408622396196969245437238832103894301533807343578097547380785090578436834551988012046629812118955758121286806465429046958240287259564557482728522795579753926487847263819790969398426498869658956971654725122737480606712741697548975015157335974295485588255921686079617179452090100216293234156983567072171440620612829095698956520966528480264740692274331624569725834314008346468040580161692966759321624411529648607419115717334955824030953384247988955878441449670546008243137830697647386285324549950291844702121996286082274503683376191559201917555159168022767709020866253676728979723628243699821823705199180454194601392810436845040925496024762045272697877020633009228564970820015609752544560967462002125632218308336120090096511692507611032443076199067371592245217866785515896024056985078584542702172109966168520364465292745471223165063904595222392128981837915355324018105895497900302685894834626195723872495215910189616259288568438869376842686945174839341760228527371128191908937012839160801846102130982374712613052611710270877701116768789209281501955415127836793878882015785273657249065214919466977501578904535049979576832765975448494623685775499720065550752057133727279344871181576534569346205498367679205247939677180029126280754849634703912149315070705880592085995501937787133432308262286159522640988997191593541091457433008549541533325637633950339003187810124002917931425541299121023055556124345178011670847557236219954072752225535275003756453728730447251660112063542564067489635307032172641126453709540635678222780150533968429715581534129767719651031329726019941951044722030373314150891187619375227670180546096647557796122425921380422249362208487389532400049102593488069804336453292447833579311996283870331241079838118076412985128533522049135636930703722641583330971457754869872502029088657187656741699373809492572209900594143155741581878111953795121747485413503298852873634063404221883620897206991233620510698941171810129218241439732479712796062170052377497376621326833448616703459817125179808781225170927922898264202805339048102842899065151360555442457429902521842809577506654289901857075898771256515270264166426532694069926879305695021360330040795894330462956644172684539577434525126623079800011318049522186120881063868776897491763536175831591277736312335578693680741296051358264048384969806934447117509330612908677636910292410964611235750527307187752579837855613937413932155991122242750353911404192543271643711685616271457743120002661706263970549225302896411759144487926440871141410532682369288452854141308717668143715567265474489728026158210338882664749191884734474727816925900665426696515129442982092210705254905248752569889703278394704519949885107259493383286125041058410482022048100486936604917130147887363297825262939228840633673053522726760918619429858765611130697434705209312481081628680630362058549045038164138313717694609101631917399100287766457274793909361726526224294275725832899442808191695982611671609049677834731406452586288679075701916594326923103796750127733424348776872793930972065721107197536704707975267541570436509101949103053828263558815943365910409543170001204261379871126797302312252450335585681500984713749222134647938167026679615900644751790756347189843565066457901890777368351950056644206790952302552732261789066412607167254930913014637697115565699590167015200662972417979592209216520021917790614221494349484170375801049407693770983159211101628764188535351117696707287658535933396138364559274545945395957969610072190747724226726369436285988641659372660045191633640896855020638518115566753303043602264502607275954190120826925005862333713028693724257197992571520354064001983039555742202441132374707346885518615130730479548956079215733136019627309974491665417652502732923909180719700444382424608212507662106703527874888661682803104860591168649744616444987972664491845056211664985308225115092174483413314547371185436911623085568394512960756108965117810812494437174183842553458374008623171068497672882057823549477404250374389267262961017008452914520240872179583815254063220684809639901080419903830737363894003904716255312637713043179026170954240995552592514640299926928947538589081893217422336450224321471965551466692840381070060983110082137095796438633459414438273092770255080898631852016628982343619367188882187408555516640319767806171040009827351318063215304853913980771915260747792433754460110110547846984533199310833533938970640328450083147227646742756503956158237335074345280440383536075161952074439393461649822120817785216881356396583196158711649952396224830419939910101795296463814463046072624140565681275044034100644999985598929007811026000196389561214531147733462583050046405086074909904980552657687959646756091352600676379265917306601519196725979733122459547585846010890089632081497876040922053256732549559380113149985498249440868225318960993905393918864199416740282239076289852901472802054717311219925742901647380043311349722867684218549341720558994355989054504526647784687828163497079960411133147605073185691273647086590539428174625511815794067725558970573376573172047740305613841093547382387617465274152232245583404549292647881528944431764520098695896158425096996927142051966430234033722713808069323877696137493600808572824300243127426877202758415148699211451693218426946628557905369580336291498233368021437356164887390210639121195526486196771852923790197817183171687648124635123325623680832554251646612187643108656970749060735980808450340399394711024778994608044771189123496144011469694544942841772787207662348651904069451312665560807861436234753128282788723328510590294195895739622797174443599797360582823696815539114353299893662027311701067979244714485410237639434292409530832976140784158101924290017701971365256022391289149467341664188284573142109558553569489827071378061512222133749971694980359498810742739556090561865977594567777600282327805205749464829921993997151304723728998873696461771667076409747950462905052131476864327717670290125313738319844261497459084970840514217837276348437534150054096139802452630618931692023115802623932361996165771707049516512973065933052761449117821177481707835279270440683463255500788282008955571082840923092575372520672613916673300595064666918438493927179936916283046748224620196633276730737520225782905259104112255116680794428220130337971878138499394882900779669098986847911669946437046812841278282279466919101616355750150149072727357448682680607551363649058226725378832656075612969897537146936777096461899743822594760152247054666028376141581113117208273737699188021841607991565015290882932442121998872780804708597868474499625407614563409021304491416189799844208638257806887703495020890804663902852916131341035249714243316499970961267022125917845446477303706931515235669587946088788074441815674330374163628718789279664523224473644580742261673926977477307292087978470017171764301532698651860341641600175514587152282192160737577873309809860072910619928937326541563875934094459333717890336017219674562452251872968760563339944414087075855938155745178272708820768559771767040726845165353894366958122598070191808736753704528674801047853067983211190001235849073197945380308614261103710950442727476140321185198464914594255798871766279503500134998248121085089899257013914546704083796931684212213984540223837528822478831748673181134560643296464840907595069580624874056155915920581922038746955060566545626156974526307708265169996418721362588199943882525717239988592513985674018831879355664924855152057679789550847856647774580297156391065957725883031536297908327403733990854411094500400892719362162412186770885891273964853661190098973648254284916276403696447059510972440758113498430526313022331182338557930529157556345762832902586394817852914068373623119666713069617123703490499004915966588273265946473625103514514629157678880698774060849999302749000608216801758219616075233434586387495579568675094690255587656559605741296224278487591944745348092189871910987311435116101297557564250646945841686890237138239042469861612343579741297737133542731485308797148255470958827047568199743825752431124187681439783146378052228261575414499994668170563882768618209912920679805887029548430826376528305594918708476071513717462094861144281070547315506795824750171572955900986816612021835634814925181631113879712319490702900944533161379672901656254232468888191866327040846635434978445697517667297282031666019891500028432193939713746556742720077057614533746207916793990767524784465451894833616757401865923070668179450073843114593228559315763729042145137946344740355423898113064583215273816672849158664339976008550040091193809572360924171358970936845261854689119464495485888254192344205613305533660039959515416663695317835670690619140971458565684698300476727469694858994949258025330623530172110090333478957366902852649468045466860214368056909391040023068541188695492675062418780825096499583657064478013134366644119975677736858353370449811409985099344354304063406506841504413331511440690449107965332058903103743684417994016184846438632220926520780312930878440507842710470127609318994963725953426488128184731314516770705284204979454377842281487475044350702520375335547405767657838087109239204024824959295175215269380188142509039475970867888070745913906311607182995672933430283020156754742860765706870509561758749506036219555647999920071006076412509328293386857186164897229503518401329989027188492123533908452876963664136656931559942585445281251126796617879673109055526834154471988347999497972936712812851077268746722896421681073961294406857033921359186765612018310872438791378284232074301611540746308329431804415100087649410525174100587749886637753915627027538220406931712999993173731051580348465599575316547838484509765074618520158159174852344070353568894997732344197039269399279032976082356890269633039992402431228402794984846722289220560598887735747330222347445101297330503788669602722786414256359924950756835405274669267190498803066188960304512080740342993584368764729479005766704154066270722785706210881221060452870488209758331282862667310638980260236706699895294590083501440057682076122121593834485061660671699786642739680157007070947722042119503241997955539740334969235708705995486807196768333446308556002899052127109776239053012303212066020904854084149870039779627428195285737820401719969113754651778028159608585107733903804310078422051918945162156246043463146832982334754369515595346966694182157186264563289716790916813992512514903748102275816424234267460404292840160673752405203833020003905520464382938924167896989194614536391202624038497344875989628250153129691741072345177841585023105863611305239135938757171152007702704407213634789122027567637245954243383779812093006394271633119062282213895309365517842126648164789244496267292202677012546245798899898010156613766668963592665473076973237529547640791024656051021588739705143418826342919807324876069653441647409322944266477665312906361246935825635425627832374181295830272606024836357422502749760123600464422566152856449999732604008345955932052386636663656963264671217777948559352071329319812592673907706924563370610138576507772661686463127939840253981648198820912573545799967729114577489613536168162480537646805395068608005915844372077491075896917559654714838949051902774465912765064207881259157159713313346594196862767407742022802361248535484195467422315916736316627397885876623821228022817799234422893864494857410778756423265916407946582856420372231135327318362833832491832083265883939976382078830299696276774333013220823500485148897113578499504673864179673794553326438723011620967630692610267728005475093199776855482827549426416315611389554963618624201447220426227548155884308497566930820779082684696253095279995752341496725808308286838665467148289539644765752198469387217482000524050194047497882336200005997339024131128525395999334796093003019041027072136629240921158348444616427151013733391668967714096425289524017223817429351143615938179984241202829317781886591419572787300418791450992550453622942098431762505259619227061947700440374939585650574849498793975418811700228033090033736155175771435169256112699360754431339858003752374397765029082082308858689543724182848770947501640286119512719143685203082370682751274653804609149967876969640221812485573764994643436168238900185808187316397528407495072981129484651357707166153540632225572574279377793133715103286773052938015968849922162563818837474754959816005774619947889444066713038898106152044068895462984208319292122492040766844620757898014269838596294543993198392014414021135205551103398551677531246512543018950927395255656648127165758425005977179849688350922666841583626263858930505754871341915521633950267274900527434011424585225013379707456492468323846609585541071556397667851970716834893030914654535307712079611255125201760393203227487386461217100673471036873789933345750048002927519102419473580244002435925243833432447203896346004315012619203526550524268680501849423282677784401977269646000071954975334951180545060125908607249460739878770909259556823743608061272875587424985482848877675108517027912130339191313763930233264734760363612516296786883454382531728619385293797631477523374613788333609469470010217382403155789557933052612943637829110788262951112460939518226157467847295854105978946330229501526195495766803914991902102404687467959434669953136187300233327533194003596562535713387751676979775882052143124371578383642036665688605415485535949988831257501526269410597016360600160073061041233581087195594683374360290752848864650895996011740943235621920416202718922418147934071709710833108780735513461973355977431026949996311513934508839097296860508669176154269732900643301595488494982227819355810345665228525364286215402916488943513911561069178448658226988663074068506662153048898892934881522081790361837859182897466612962033984039480749640750372224956483178628526694041823288152520125182545196962293955876540562935144644002407418836072008943170710344215226298470986484690247734380096797821896471790647156632012615517187263692800889610799256847643895071787008319221264612444760928796091782649961342726789616932240493957682028084395318220914122661302991148519284061464755068868052317944535440757151185420470631884165150548506988902564738213034708045694593748329858281387960575951681823107396729274917200977196544988850727902589796670008211074756390726478697777068118200455644361891939246909463234670793931555891265958709408916389009182063423570241491996839136947323962646175229237499818180698608297551111408776804550629782978842409631757076722595316422351080347639173987320757279541135773651093574795665078468831542451353384585617651978764660806521208682087712337272927905604462282835072243560569352475976347683883198471457645038307350436744363993749851136444978163407233071099281939563807940743823574832346783673180491838599721121529926233360865378251000484380797406405598948219090867927262297354275336906963124458572497253738617623242786434605203721856121921552136719034688698404347844709321724561654037364008527844961594382089007187691470985006635887701353891651782755723884374157249727299970925760543202832983636664162734512070349045961573996376675252007949848603365455467580497009046655180060864791711981469622460045582170521492918220664394376354001023715791726965108220202653765609656639749292403750579210739450443080615783441781252323438020938837768542975880044291210713412734170569700964857734161685348615871092138475378969729929816945423258213365515350719675282490270675343595664659590789152876544535213736264240137406821019031163754718856983983505637137837509948376778448392362995224055129253994793561736457746166591935845093086487156330643967193234394331918372595913129494224147200809551307372097957653729558999208028198485823947168682465334917074469575028729357650785739444641326797074449821273671890353690065726849370468176235560893568991912306632288366792067929225523305495503093283138002356039613895468934513273429146101761351182749560096342886222869424657371927274216434533900720075581207435558231707657010185336836207393300112605548092185606994087024170696662106651380657295665097855054859333755880358331586410070008104036226860677603779570680049740484773514707382808086971289774384672242863137666003693266289988816997680165369869154818881389284008379528679696274148047095112904356187872799863689963230596719338689027704274454339587972786198317948661476378486491375023761914435750898277397402463445445709261703479317353436341448194207781875463615854313419672067408934663469013815010133250520196652064477883681835304410029177236674441257666057030121636420766002780032780751998280890627903952802756725940525874521389015799225412568454896815357929912765579425404307653263121624619827726764479369594119975609534835960553381981412307498936134167721420477224070351615396310082034450666826018224072708791595446562781542576590272061921677561876506413830878293264454417666898687927611861815899518337352666619720558568221490903542259900629822090453213584941211793269945144262210732490077968434815651443188934050688378164091715197125688617180463439261143186945848134377319225580308807566794484480745639387722340407413151796872106181142233522223197993095488834032849232414164414569324196897469205995866310381982118458567882949659013019423593489946907417500467833939396978900249748657629406814150151094045050380605394609472671700352939092349185414498217646602940148743743954394694683012576466562926001890786797179292735348153006038298169770813242151097686359630078826156375724620527114780753095102717110189952475949290135024036138794722749913495060666245642624587816435870809752901184466689429181213343605548348623478023457847540771063188853696204577834843960466720068449591111974565932590242953270501932948027696337225087851152297644372798705094218598050360253017984586623687398756358943152136919426157764256044690197344316011352437722851048165818919852020221310771620342751980992462863932736167974155900258630118665299573464277927867678551478365621530652401111414804425762010298046448751252913866176014084916981170884905717909762831869532580496378832505075816700727172499170900115309649484066898741803971260900792659574102160188080845201848100574283387535603164812472304225218029993504951510374656746515092010929419687463804328400855581812634876511453898045240636235447892607972952595237643823331081029293792988754733372827553070567109062356456008580081748107956023723936480929810317412287544592706006097190179314643715076201605791242761952340802607111939450558597875493438074340818981821664299730952413384442295499306788550331478653725534624093640472471205430330435299661956623008337288550614448947733308806962928776729076454056238255174182382084489195663455604093705032718615012525445428059946616434261308742227854191302546141887857245012053415611709658110338593545966007960920625629245958325667245821157020435170556248239291528469630832713514021520778449085588604424957481418359589701659424250404906819072943734211615996548470912283780026367685019738355624230270712156244822182833769549988097511648595416257278165556272091310825726261467174844886519386826874192409857743425241105699790156041002932027597628246243424334542472182259235773923948540882506625094094205578345093912150433737467263715711151328538832925180036720239943947460053419755780777794554830071132761552365178522777884034176192298715288358939650497890979587449611238244051772673296274293215550542420448525704430578944248268950501405911156715944277992623211209375761667955971172708284193032487104399029141757649025205473431683252433435660711333749019447018402179097608619241460038658748485454840959578355395680086013057197665279227626301285712540642080997743141324575469492117508565597674595728318347863032173741653058203497686681532392702753147885832032608733432584310640976435181257331966504796321589238731149256469577685413024318361737412750220297200197419239890881907836482912350355532375637684481858817311488334355691699735084112527728000893362865854034069798107586026811146106740386937719803343319206911130860083331936025492191098609447769946495964764464862752336036815649141601527555690171509729837330131455547013336711774678244111432444040424491091849746679282431413709538086485439478293747446030061321395447369889531390882710101504446102889234728377165439441739395494819073616349836355150668525872211089704172989559879999812696997338401459055566265310248348153784221001954933548545095347272328161356795347040172955895065134147527823619064486467272339591011692746972931232832354495311554686922416269197814830041363051112185351943560027823689705425492875136053184137500875653058066188982707780552473523461720338868582481675449920629502038759535375971826646666603412743025660317650463363901824444800427786799167281623806210781585265689853044641170219608030530503151388946055762614085231024773423517227145025435996173079021012692033588954976099874813639094843214723049307252788168926658335687421973595982384163613775525293716205320114931052653084953348530038560661534667221046395067755549189358857021725800084675976335111935718891564455790910611842658607958858009861603013394354872784987579761081556001889360493260758782763767939794524538059059331872971187895686126201931751946163312923683781317465875934520944448114627796465428763157755325560288851572602210241752917881475814187766051034986496265986953060556147107925619840516228296662588894663750311099910676148197878558754158937955945547032935627954520045019724121275680103695581189059285153911109894439002737779917972782119370844930381539425006633621473411570108927640099684345110221254273093443413589938690600931894442076376875298800650757388540297881399757470360331858798321429623462908695902807269435837785033353813048133685272631727416797247798534551887542091858020932303814626588216613725390706130799987314457051817054937280564581398265277373330446782612494145149985543420309426554835277761149134781361411374109709909596573484838482835967262604037281984062547539293752302226903600432113701542822888306256271880116679322461208987311205736166292805829692173193396688749178950223216156706230316437695583965328200396281711690499472406662971079803960896768887373141094442986211009658001444013665114247860595589867273702817175526055804037438994612647758858040243567151276019877497120586719192951467244068709959063498942535918353771168996195884958370875259860440136864884474357146096809694267148373339429495109357610237924963963884559173956968137593288993805822963798369239384872165050904946569147050613111849162120329331363736525245404092495254564303240828551678120824212737069581813140783647680351138832429621850016466733825268964856219780272325972591980422368620076872507177679576169826369516784628842594314028185250616137863519747252596367611925830156365474904652272437605241560614985144334716639711909717186572178747893551833217261481378725208672808133850802389242502793667549403738697470124638909121850044356591217851530144787558721639452633397701186795998138796448053715337799117338000227782571032320339772725194334118903984994569130837865614550523351406979128960868223580013191579914526780991762160743008704138665806084110872134459335878621868976767490066222894754951757806734443677004828131980261131745050683222751334985609498872217677879782837092282376405464803065989330844463550473603204383717501218234218537063971207468218303015610950708162489425331487059545431671637009184701695879103313220304958048062487384744231283038138152898005726245747708502343928759424715530369163085848945227336103932238808436535902834595129207801446849134285511748247356602829992706818161102500511890926520056175505451686222267386370639327827745824557005680557243516537114070678392196613141968836976795471092222512613045429808655777699414563234580281845697101001943515002878934694759535365976128844033931521901729553172513706281376677647879290664948722414352367963863150786812350501080036441239007863800794423188929848484181793599171603203337878166665015263753820129219266105838685146471743335104471682070948584033944577306935812652087378675089069588005743077588259090264840212513256087466546166587754386223077691011673720915087665504701804104984112527765110752459551939601411758292317435819302284947248794034898254329093946698556761394686649550092583243507660873467109096996152767661679407635208155675993826029059395189509959111537775814948210194775217590981642913765983421382125660488025768712890552817938779260880260203374032359466930930266652316452860317428305499302308177923550294789212174442061655180520567562834644094167004251557688946378166622007165569623607150849618069272727659841683986718291075644211255825086795554204049950258711902092978944279220432000874470531684688355841150089263758605296361474577769922236282152918512887019016185868371440610791522859250866577717844171090926466350805180394202224150179132791489622348849260476453874179466117156408115434032638895426216079964165132841314271197740576590364078917200587199859372281649389480509230760739826435478696899578928012708155909958159357730800114054650080020966591996116855604890108671685994745026014345337177435164505149715077837229375308251031609292879659051890826843709693651290004633165768886469465092466569864835542595840589925904519520423509702171391043096254458426567531697633567631626427863449107741237571104654274478553893095060797932440336086945211169472274900478272256739688268881815202697049961157998295611012044169878038073060420759574166307480345156358708678316644326484020164779030353236225743454646519925332766461542259874307389301613567666215123311275577580159648427054654740104525343345352967086219132229116030928167749296716614926500816374362258627926953143065880300994470919474888491878686598826839204447764577373435011291693376179827710530021480221420174292331083786243763652746123217816671442354989704826813388253827276629128103847331062966222004620987102843146077311860680409024374429052482335836426005055477529069877649764082557109047648264699850406613172645730453956053690688002336806296731408361847278502609334616896652905822262539440662062583165871219356940258932764032360706914856086348588353567432349036300953351659159982772498935658272847126022939634286329544530002118287191362661102101356164533942654370094706166170539057670573533218127054412424484703481032502489619779114001343497835367386374733653226021067302460763404989839403433884817837233231908100330653088590510709324702811485688891482968165631102332592845617655192313820511060780245947984295132672744155611916116334747332148981346931177966983153164008160940530129516900657687048027404824082284154507170609854583269663449929964589787518403840969044885555051550658726924025836074943181660079005548311519920958335129319512610008557374541025681928719322897538633497854481104601758028709393996461364662929639103852858562189058453552526506146493120343151283759034733039268853672686923596199009206853146228407559454932102954009342092318665854329353348591082692792335550879004241047625902100904038206757685375968289189732120516182810957389747995344035520982045488360069660148562193318619165236810264268788249223308732038989422905983171529077436494566718880200714150433201530282678573181978304287644175974593061294837293609708425655699696917902272205564641480951924850095487023308165919980556563957258197499443774486958178269788479288951904727962331185447590480814585078901028222708844772223491392833635860053612649131308937841692405359051006740081999065948991185343825755979185016529086670915749157203762953541910366297504728237982758500406509567082567623405602501153259415359659323234291073596227366389673930729331934458481083337652035213182576934150648082162595124201221545436478001383451900300193034487638438294284063533861185231311703332874370835155663163340012742201509784660767769251408174765209370010417078662741626280818133719193613287488375209340030010442832001170897644139753874429295327344966521815521478633345987657846024898990298246486360360890365857658117894199353544247697575705584149350734721666364278938021100391634558545772798985462790458984123919936016618119422031916795139912705997357350580695257959862056993382483782594652916514285412895369159315027581212905482795976068342209462984272674631801557617972061249678463132666252926507166146777798630463640182564487551018922897626685863617011886698827906449406301534823265148802319155671406895517927690362154344617023481935585658487634078621895071591596695179484879177591186885676167646717842830638767868216596566658570910379274500357435351527333723662661718131167039614012666998338148057119656819527347907669919726905679856462583430596369200951994343286140310594862127240989999430592756857632204667122783753751349168392346775614566103688733935376873293899738291000038802000014114474759733685774871675529517708109818201060734649906926227211833135635346571890371487956645432098634358053978091634166370352822180330704637578646425546887258508315165399149321905630616948431033366161506701411842085298289377577151379548178259389706313685411679707261708498374894628165957390092143967952386046978607023299953855465930697199083944361943421646642820726510380465128871385530724882896982796446342126102345155100612398476437079276449942999776260822046175209208252572208299106579762811837771807342481470877402833172920697501623804065742488074460378691559101407886713121143531326162689150142098147788568534618462143603444638767921549504534926212914519172238319025473699972349537173396691806465030169181652258563082558912232589268073921280494964514321084773857880029289786152646359861058052193022139941189870557374734487619856260668043063272644732657005436360664646159443611505040890831339920437441695280342015431588663596033750121518473395815237764967840519083959756570951824574004213361204367116902827302155811829735533098468505467465422852269103584189440542994876389741868584917151752968400938000398014959910541028812761273013407886056013607273570611682223503558452843750117598628530681825172739344703364623936465200236583755407743114193198913932512878407546480153213517769867318351774462402977897448591382146319774865504529407540704165145237033757861615589569173222383664429680997116566973260928569560182970919217842030923235124459426965902450844019186240234792010517057177695199447740502910868002284316992616050672287367367047572611854077087614107468318672125429090152518554667810043704657048221918637559883486804519422644652337312792250732756258552642164222629101425282698930639313849002662463963197288894750452156087612279114237515309725406251499460531071562257296527375044682286445935825802713575322394900579506386152844091436094005765024642281239356445642488045837923321321765257075077230059051835991558045553561899452089898882083747764183418519366114434710901949389131504766836511058021888801057748845197372952991649330469492445216111604396984141156282763811144174627976930940443159820476057669420757632447664706415028221208074990309010230183317728396163898548494235563801699470785145733039589863915785455967740478797139681851790881560039253959909681006250812628358353801397072770700194697076141013205043536309420245811829475840733614753993859937227841333506150346297429726542054967879973728954796946955848041555054291919355597328436552464746801950156231027379993701756730370083467050922903537222910021126158797340094825210227267645776622204739843543338952736336658510444155458822971028510147325817992036468909801147841522305669044901500347573883591465048626472740198626149638778334809960981787101144170353270361989294054113266968643936177760543442156022064075966412077510273112383214088545955387976181278608659385863276562154683034236081984870204560052812363545181881768614461618742928165384610688077161904784793493431796123307806459039655953990668709414383018171446723224815058207042974900781167981152461488170968965161929348708855941395315162664337035736236781642863652458759321171053435063779751851217196277182082246876760783645618087439257741170351351582573627451491064491335435032378778138462963972480980600753737307859060812707902756089856557363714041451650940462884441304538750526579771268696480797688652992708270478831387009054088596961690661090547996803651218821691414983636832204137175272691082238403277319116809360899127710127896203831763284672259822716767767718908143654382763770928404316060571974706014874417053850229295297002533749292255940419137751028222254115307375054361359102029488450089213690662658016501386277164859105889511910975618222127588977955010056227819063096945310408684307663186693888071376341961012096133525644608364122550812590690356589966323388247026212857935839225054845599281079441920913813553833730254916769528409289624982817172360545361606811299911902873266456697911237822945447265913513189222432783921093915575042376308363014482517503756312062824275866279035245243351666366572796547733680462725695858595334030197078812721767717682096063135470552804536344269620304098116637732909183309681911858472562930185788323997693843106016801372951947334686002618600382871613760792666660072631974312245687138948857672331214668342130713614721837936854228290776782781630467258897696781538080258036988084439472709821079853660215336205394802282253086206088565453108273959724423147194821405689427153366262288283320287395490542956460257198982825247157638142479336804102034721004190527868460145124828044462614715369881598537699321696760682787625414454562571639570215897330769907745727967080391634918251763382814269798058028414292715349545385444920289317529992019013015445643250812920000388523156922228360770366126316501507379451080531096858149168210553665923868705396721771378836591964921966394282681284540566142819272499395351642711238436128735379421539738914755704083457137468364341535245342730798014840017738689764196788521764841286801797102739217329232559527333619107478835784407478638544346860522173228455052058941559488650200503124303924565153910390635611331924392300011103182187174612611386175968791367331277274511916719789481070378542426284961887642174576006872656049309485414032767817147068207191030721570150811078387610359406363127787621156832754454415530409884783319780101597091659314856354232797684504091879625345663300078199292403311907084959548418944012106328893045460113594749412307003354564045240933875636942473151961371961813314665566384905777225375607237242703951392264642478105002655888664221081129594241870313516036937564673822098973531747877460088668941077314232489174049852809371761904508598884408110584443903557341086423220258052916360053854483422541837041068294199536749262312777618502368008531310862104813834961481434302375749306494698923872746718759573481604066747957410890150101871210316896191974492908171732881311170525999135899310846461385163858923603256886450205495509304151215533739000212229503420160683044338824747075186644148013854071244140317244074339841304479010575531551618415838856419270064959889752306814702312205948306799038576749745568307797575535957221594766823957869263847914330185229989813799510130962033860415799231240355713431907523335911316401716308436248608688056288765789347254164463728846479029263545660398191822252585044949002876922203661344327738643845871008467968139935433826443549808526576879263259019576005808840547018722254554643112254932521712675942599281067888557254768067689745190096393538163482202114964408356648963478420972736887460473650605830395841132455022137286697524358262375808208290922390034500863427637020283554816507840989485112156025496911392886610564224118226626512150547364858953508819766777185814064104235198507835607628010665796927808337943850925447832126403023398593728663379876189307903481598087242377384786720399396522155717406708237856661467288146694126975813419057556368363402201395633666477306478075240254276915438570685286713441869307424623092573266309955036808952849256561487333428991983184997602564523780690154552312784424409474764434206127475381189086908884292118145965357829194873505581473984691440852365703119377987083159801100013944964813798212897084865088192674140706995228451423405020295310369336600782298515180626656079635408621384891757309846144219821815175489014580327971383359504927867304180957320839531762200690328271691158677402010122224132456754256192374176460845220694472719332783239424155858169917482315916256899197499179335519262485743334532896066712090254189705940571372004351984291669455738630793356147969646415061454130231318352621946681534879836908932154339147698838883584521636744161907188703149603188009603187869390082620199346317639671184295166838395073171516354356974530788663019966204015284174398261833027653674542027401852247737921885497567511912459755226422291844471173111825117823848850143516422017252696398997581212828210059727049836174908753462600731891539337792582187191831050104810046404165590899763811612635966992249660406975083508510998570025246429192937791199448597996625494843229581575652279925374338864378194743217673746089398483196771926995982876221403056538941378761472057539781704391831099353334492543906977465801610284112540255015459860430297882359678637446160429561293824898745567787824084415777384110496507753519037839528963175312466768452028189937888230292870872801759542385626548986023159183934359247548099434164246272482109572299052769367733482816011857302699424932195678288599709382708080486659897137427255890047818948938004783511076742279811135054575764626603513552572513977903850903525042978908879302392855774605191746071643078749115439687951394701436145925045929461019106130198279481147582157560151332139598938146954064985869833852693021803079011068585285371037682910795595249984787161691288430147176611734098560981973041934955259395479644375068049118166082319813204446122881807521678547811010153471877887253372864589112936347028500162723920507795544014723163518284067327282507770520605581584976589917524276502203390205075569133077837192002873987512168074282438071081611228256369320856176186300049503690232481834564954905040673357136602191877066259331480204814032612971560385704023048233088591288200583974660729176312436077000937145415975410299850558459591199620282534579423574345577882398228137098540575183040511320837462483900141797739257150185076891734765581439186759426800606727094370943803807429290408477593969547710833325170708089083408420418799107353148125588593245668763681124058747683322872828367354386432180809449766671724389807691814725207731744724163610175462520798614217862081767804897093044391406711968851568510097090293465283749276851895714303090941246301990783506698545232921202414819889188296358644723305601211622271200706218011488363259673175120325911239322292718840950673238299693781668656473401369497777054954257987192343931210339466071211985134577928425557106018279092923580738658783714468733919254455039068625179468472102031276279330131834178922782537959410352330102036955764944966252761838658456231326047253374686275285075852155130795828923448338896190582219173434811013565801822968788609018951060329983085373608796189752609766994851079840057602414830187284977476988296835830301381738272775378364705583532130106767479742807937096097379918761460607123197631795179202291161679573010099624635797357848886421312642173793624757302803516145475213523966674613099432989460493240066668858372644726945784927471249955563204418854718010125561572483678376424815803595183723569768224100217314262412287576761224870812697346108771194136689629570673446025220403416679858685992875508903350373730118255775754054189833565298796595097016564237724414973255217097450203114899989732223269494657983710548089163578991982975755415921958272244156375298699473424931089542040858795859234743153142795727372902447037567175395891741971570445014408539260497713936024456435342544697529214994963944365309284452551937895894978528287274797190035427227979132127823481758558339988142308273354747248466865038987819469756517497561830450015884560955466734569655336706733409434829307792530595278841552990051605236585290131479324125403663079802331583317456499370023301654137233715641781493212485163279716214607673286423241848933037574657269515884525963617995507316036060684708743454358281318369881657909563737752874180673818513395143897710765256607077028028812133803025259424149455481393823939496259369954771411735638207292652364500773027660510579728152579659353119869219204252269162633547369580376531650595761613826829934876939636227391037907561047726266771123589385876820368076925176278388072561861543581986919370283000934120330069402547418248544458205897514212954768104557094845214336390568341089593217325415386759222940352225267367629358311026051981067735495428862691507698509458924796080674575201813053778584402654243538191035497656267209476187580879671762457476994069581298418996994360148219167277397998271831351849239268246152566770930778456005852892131297181111113236332012667414189726105354717989226868040028160886651164726780858799826260520701587060386324036419998610654240755619610636775249963634726104996112732675724832416600668950669819563495340529772663774503618733230771015752065770896138455995301635355941021496947265270643322929780284806012377707381429760588753383397816420431206885526690436238187559749664225939596027563052541452698586965026463337428794167666319423049119054369075581046987919910773239106582860254477130461879506477701032423210445940565468074476521109130377318374673102446213457947214165733385258929516454650565159719019470675494296880255008639757397694251524486138619446139455104703907445613111685362974076191229438421248833575660484884177789325965664619054399192862856239683862553287172985700366288654589425088535283484152186658529436584208013593466123107346962545730838006547157124768475626989529080983636811568358623697946083685837490828810182864526797533302358219278325731386063463908427341548825662762365542102729636150503219655502671478754756894527505367572371448358444233421506817052146852572309051508799362150249677736147427155157683060829575600665083104086616421359303191718542547891627232312370646931011642514898363637208869652241837734764453648055218946065116138335854905154977695596868913041662362362755236066743387103631272283754249341457246996627221442997873234905304403706507963282988380173537284824324391649903011397774843923058233197783039466496406854957390878904957257677240020690357301575941620835220114419771229106309209177341338531771533456723844634044796287884932331017322852343987639564914030830447657218168929972572487388199831826479821980247360903617368869742412850580696681140467249362521547691053979948660304645845028487086623448164407244524212360837702083901386322206418948489840108612069254229779054892448212442761228939880297819094985439206869773500627922591826660885544159731594309813658629517301044079290623917855738669027683142302052768095907764251697107884069781394367455827757642212046611183580039023979299799657006419744119729575968116662171302572165280496847604530445722137541020461165350666347922597435263555236549985167005357674086608591032087157369406590247041080418964475087416858445149010124789579791835673517811474493873532706055285600436773154042356247927968122459180244251727649200787668743351348972547594843120909136664932016589777627464376706525013722616434804616263298552860169129085777956565530305355527648902164446370665479296871508338237535564020831662706451825744350182224739924295183983662460759289910527095302181187275160686847245868614552181020842298119995818352742280152523477981121904455642827949807934124619019117245853275439639474688280497291099481094846295862711089011031517123667033636675835802288411432952147340534792298635747582309667559753091517057613453624432894506855181124800598800727427160559159605815333897806237498243019165599100138497693761600171330474863923766084466527315262931606155301665288108910720491057473699248593424331548542218850894663756980007241854438041283978406380173647601863057125653320692075902079150136004722376390420130761747825607370302942155123954174039769550562534668659391991935028851633714056534699304914429259881081778101576092388645568251866579399546869843050920903068592299311879628690333630621389411430056845589317408826829616756053141997357390906060078014781611022210143247948589945818061877806054174482848817178209481641767765980168270128496555539806908732296455022575808984759559649744117310624758804272316435309666414966701646968482587346980842592424065773011125372158892144502617336205499341900911123979062148571806801293480445172852206661819937007363689484691208082386076992028239987932163227677553426390574131377193686136710381921365653316904166954300472309656371341147215026711749006025446923717471504090605226479007312454942534635037986233829204983564357531635862731132158681581935836627028419640081886864974618365960095487309941299014819150096666877518172852993281052585942882205925981106265224682974641632639938085447762196569904504338806353515096839984809732842440274305523853750907414423879898914558143169525262667768671974307508634504733930411824883758205702369386543700740254013531637935547691704750633602183407845841575494526814831576186479715304543668547945471688767165821673377065192165993824278515298877921879223672517240847761826682121627750700593546212763488269846657958075145482179689314932067630388543032303027177335853817276673794022205536475499422368084763681112331586256701895621256309577254134282036709827981764775087495988322527716688722446924730243032038761952769596361460206349199319003177697825115598262635279232849110689870273246501780826877858655474938509485899415633347235548364553249557841007452285711609926470952866814245335842990176300675371620955833842970263605023593520725481525867159516671986667351868336215638976022097668905482847528921262509425104519124419197969329340194671031587750007949350992148324231328609716381278333682418420327613249041500080900973011684734780004904266743303257922228174136408335688021283267092020669854401844100395403706057648003681176855232005690459082896926780106012892313910301296361762646004996865798068063679072116978183485014885991967453364439795593819161441959982014317871891039412930160257687211178879286418217885190013572343837436850177235020178600103464413161411499617686787853751470679331611800203491612311046109489006743580740979055331849014929591237219672921668316565529194130734932494313994906439547802788325709553353002970142046767401492933343034992014073421911655597032056199318814357487959395848164626340180449436995685612872996006009849958463978531957462195692163058265013275440120233558444440102132709741055678646607701045764566085103105210164678214058552179578450846302176961568095863305298468572021205003465502724845608198900702342979201897218590054673502946259840461818444723903858538652338392136854223217048150567324849237422942512641061158686879673414876681870503398224290577289162642618956890800726009938037140515800762357860076426733739258689835914008518354974479302986958707248311271444742205780970421410181389536113238675891620302476018529981092479888004000899938383209779687212491443733209415509187121899741010058275062856154305025615047209983345164437444790662351729003872936828908280452063101050027479078182268578817352604363859950023677208750306009914662749440487073831973791109423272578378756096694361176806878514087138681585725339371625018892812798034630300578810874994275720572929023729056276780445981425761744891365119672786384239577226363012270408287337258341189201945678830676920042401323600461179913620988422841481219657877329882054621209580928925914846037399169973997929004328729653955216908740691842820314647030231590392050661471789830521020715447603287119048307107881731809841350404317327902422989150766853720903186109281531023934535725526926679572263338606522559356286049292718308558371787909348817777626044492148128371709801253517714520431859119139021031448108790863030066646013298015400630563955472177365634453335053854174606254472060174718810184317728957750711668506494788267881606847309935725375194715468097803696375534355396173791937830061580842489044032953848803423382025335407011214414107814250844071909816847912129558547601223073136114394259889212855567207729123469876372338802558419917361777011321990359295083137177593313863024585050415881248750106552222917002917225455131352629459520548627135294691116610587386928704432810507059603576644319768356726754778283489411798100878142292773612849195817604002979233627055227485246336390389285652027497747084535116979661070498933546153483952734187704742234414785816341393200008579506628095113189743946862995794855881623018652612877161479448378134928327732576352327525239473680770424294219935209544599073627033931382756581743044600552602097348641715448617222864215095492461252961963340943622827386204310788029847592802423263143955529461092297203615726693439329110407900138600397254932928662867173698509961973993148225620804934213236450312226388742939739784460089007663628211770038161282770726043931875597468718751515923870244624483811269602918948104389449216467568576431929346121700213846440394049314840529110789313290226860900198345292136670389409115507695080725844775306427676793218892361905988233686282203223725689151606742827930326850493854427377955139404828791247136843925425319079194043180394470088562540134566312882820504080032442985578327697370531248358405006518526480195091036600019046812570615211533004758962582771018871720757279557345876690029812997797175420079479701881132766297968248334640929506747548174604322872526487221825637697632496456025996489884587435990243497341258519212405926503684576919867228202356243823687473579923524469991292616849951610325374942247420794012463633052976171711970430074104245708966928430884322104126794032514566798499249105109522517515770665691180518652950193150148020338235202495483235826150899160508213399313484457474069126370846839663604998362519686650700586800869527575281177387962762846445304286252781626684520583068256851725003615771266959096246326429001771835692019292295503955892492786578883046180333121941467702858890266487281685533799049401969162610867460082136527227872810623434723920712018195373138705934461546365509364717661154902621980868514408591789921306628110073963236821201071765552228187566724143203447996065385501638434283206637730903746322721172402698986405516025245716578679493905583726763966857100103959067770596864888591141222310771536787930708467211654515520717922669364674849031603633771845130101527443098408387753746008295620174814758274112379024792663839633635340253876736696110202720845395253260968843439984037492710417313722056805611436368353393616332334800735463458961116785171877290288431231886445449094664570247694268280302273492187537427722490354824390241896773532812608570414670221815438480850356845133843368378760033564442634640013366294440628720144320967294631394415983331343441353739075634990046496814123289847474895980870273126322540713372912142295283113230812756242447496953764859548451451191234158815582275010850218970798807219752730887712874519402280629080548045407314882100019701094268812459007503117799216587627598917244652447450675229903247233959727423384161548807316953122720989781235999980069812460946691031367642617947744816992898164851075590645408817021988063259371748545815031027121823297443480613942431550763692358137133974510727233512784440687887547307163964784045561828556438049267514373811654988475685015220893023177287837615089256316914448414077427964334991705662012045276554933188029913549810865734146056373858648351820976295462797444265181001697472948609837998314008097503192685624681568136064052639447495796410431895035409677843284266460451070818225204638577791832532792383428085662712829143350664592672765094134628207912566848576084452762509582157492107284769598519025884174574424083592439008813223035292044244762938503310285475448077324849289929358381830613166803658326829927206465653230860802245350273151346413856403702749697286291720192391028564007463046618295213876503541524758824627343930674980002487943434870055181423296519112396924486835628220182608999363167083334337352321762652963980634728728891544519147784967011646427879544060371275280654995375778425149296461538864841713877969960108367820055503023448735992409973541315685061709865915747925704617744784295878163900988808833965664714712434269242919132302834323088651348784389211652806024277686164697458412637972333276850374853119251710649363487810990854572302379443021480374331513119852956008155557359517871680468725253134058642201382883541344309863566714023691212687112733998191677267253214342899032942146452252555441810380944716105209246381789624441974707983271151461705850979063674119467246677197444044622338038916762278063093213951570946572476958171306903124782345047015309204446213469541562698036921463642630444221096563006769809341326767649939993386084182091180063023253871449485234377696322453962983789299803348886507392037734533985821028484638819940487234917850027121481919492220526664123190225026105594532162855289368226574899843789014773687507421243035216297501131915394075055230973259404494667333132156731932965010862547652612308362126891236306191300729848694481847589729932794504607960938076649439708160856340750738968221064501692874509195057810219614961763852701587791695867828784145618605798325480656720438670578767995686268350515151252603131560562648926338341669463319415249751558727576992106170733046194222754932172267859615528938677842275380287116014805304074678705773007144989845102645189721794731835244066325067072463812632332529694004786074340665815672642464282647060540779890076608754653961505370026416811601840313306728324562617553326124018638021301109082319864318368385069318595439961068897513787686681427667440274420612446888396770584232604971711909780099575318398419349365126879834132565153502849591593533649705404207483293352994867910857418503596124794091066974873699322917469321079967250358342422334110819371592281514969552517023120191582424720118335233741940089668346801708643400445588366819363767523260326562172914852370751390636140606451918407802091306876794208284530852046928424959259334872653488087237186256521374390990885266917854078167097183829875203150406298187836319576686688710246497609295906962954110525110542946972857219832981572291909687735538773690981969477303639880745729068479424238128121922120045722157533622155799480164349902538565428890773238829111232800091944836654107067129134972098144877380956990695074978487985899124624813703811228729516931583940518240113855844388387116325818983531090914752518556505763570720710952288169418915452960830708428167390600535623008527283881418336665518281139654941758496187402561677531867781428183148771147916806895760016540023371837235951001641287374264003945133781113892957547603472090402254220114020951502952468744474725839252980584206298258330753854249497154492925265215823385107794496867174320978137832119736682578414199264446849598808557291324964063074695088518848268745111310733853050625146820263715270858395132362324922947246585033232091101978768419215651899182219796394809825510353420724222928168887713628870792475711172041777614350617596522093236322563842227491894387991557588006217857194658145820613233052145791148538863332340760177845965302549827411806226138296673566752890144221912920577856911652093950871397924250794187413049193149209869154613945745805724058442835671368580843153273667270583795672076459782529662093913266818606433415596948327373786613960429988782726592409373167032588868501619740021736747821990522730094125104211420864304389414720224940220699666226797531286553375467326259796851332787613703327849661182837201735772937019806972893538022112655894960666917181141451217969208637321347215391873022083156236375436891910996938317510917951579904152877024049966240100524256676908403337319828684006688608177589083349335072147702315896200933986836956530249896761779395859664387364628941020831283691923317458902762177847504961184914761399080082874612911505006914365851185790465725296457838937756737273410361559118950641800947359582709040853704875043297248885391427752495131805575557812897304674886552350582521804804516572662144472811164841321991926709607242739656846790523248756998646463761080170809394288372114830522934678284962379265879490928359126361123491876769721759157286293809595525746983906637504983093002097207991707983936435448515092652972569868088452405309105824368932994750518083900053591871059375157490494708961301004853232644299660415062228685278679484152179939107028865722735028299947309317515128174317017931453776172567859729108916807626219830816962350681232248833759841642440849578265527726840090142905653040328720881390651068662904062415898501486678291525721527387073888949217105410290317478332928553525438624262896011675851106817305991619190603996117675406709220432208000108004739366029442602598007790843896838405737350671660068096451258032796370107180047055419976689040410778641419139248177799582895734280018748428832532732327329805847050666995177441421142247553708685745300968092219542562250724133562922741574221987204084091729577261240503669769239079609229099621367994347111552088352576014878192208593852503456726922200096312050363320370752112790033659795434721871509452264695958670196760471630668864915121276412644410324289385055465037720890650318566921658812433740543315867066889396865833432085974132337761587835334277432713076625898359794302926452590664682620990516197976113673571191807781709653546484211051130834599434188448246999748343973040425522395255881334359443689656180668789350411963938662089372239389144297250226829430349774684855802254342083926647157149267450138387868250207420257026014338860276385244824042005377574417641018729784729472251651849517779311027955105092211273947295014720454935174070803550280389071093466502873169069005082135123615259089761535910182143871778124389707920990686096129315629041716847188500195154719481649976404359120111693213677517312927608129331231338231271306780688253287977854930398236590890317766870866237470338733031990406917100643311319554606610211529908002931549377700461270579410321584778600635664605588855235128151196737718638435835140951572618554512174779055092136217299319948727656087252454192574984589091397391483456288317594296311885514691061689242111930558915826870017610828642799120490644672460527021690949668118042429079479645367221832634198711401875562818938684021281308838263906490164132104624352505820277680606647366156139766041192822502985642203127050169564771300410948503808083497581995868270421000939092319910095571543466662215837200037392844376466934143082447547827909196916597729631423815174985350165963475535703644668507063946195224667964470756258598840193140951579100146065246703010989848704986648158869536754930392669533312592263417057831739168025534793398465255037611654183623769317028223235606420102058335721254336518960316944462612171563698750804455422409741465664280492125783293397263502089050065604936695722917839858318924483067326836721079026964048097160252533293431958703614675648285729284357227618199993949802604158243066634025069319843109564477397808947448304298960695482036903602948560401003425921434430295776022261395685273540632482541490771447168989169608174795793535447959131060602494954421101443851462545780692342546934803312831046374091534512000657449296998552975665665718622484159834275198309725801682765445119265283913153305084630990113406630884496563308919614374401505375794276254514542716269565561655443230686632326105080586852161495143954940063083228562618768127375950390440279536024900538134737167683600483543843970170797585057867070798108733985309447440031499866656613028212090844409929728072591688414878101765409076058059730973147420349052060929056252238302303983518386433390751520191848231145203573874824169147525777287875842199513633712326956967716424660911312881523639502300122846043233375197432630646748257351744518859772456676260352383232503944645055672497442720247462999810393475833261957744390696139319064884079898102836411855316069770202216371006010534161499068992823961698411836971356601032770736112830637843695406485298047253833874678337688021394077308078494994119336681777990471215491297632953392468425418090561380454054068399343232906450167101467934322941771588416669343447622215642483122626301192861273033401548722012401744978661670010232787271141946618564014917747701765570681758545866088594114346332987656210501023294712662137247399908711225047714752048688886665629717286466248576411630264823318476561664979148965423407105711927525740926601184008105833519395965780103900996990637869900123705240125317229330396368266975478870970443870534700399822939465119489148479582377817896974466387689378916912500323282859334521624876113968855946302977806575449474942171829237373075123596646403132568929426324876020043173965896981778359412808307718509021485240767978946191563542334451431456300948387199083222933852165872736246643209858158346639059979670492321196573042899078833849727241073042109660217524145348188064853631425399209983665681177532546806475687269355267567819763679180344302757306069199245675863776712101020007939390417112189561467862045266926009262176251574867892632552117720620945085806292317623027294610926156488403577265979532626591725881946499678345698596738139605880274301542672443231003984493645809254194272978694979317519776996649592359920445015723091144235856011165859630039368759017827874379467263843266017948529071143394271480234578721399224459131453901073316480545655646202748751284419161811869917934310809990369637619486422970357030890739376124386199949185681224637948346062836608539855544828210685938753792115963561835763536324721176939911751479064118998332559911835720775457498373125324709229123590089368972537186946514881572659489432965466915807762278640252420409701869633534133233349825598934991938487748849575448722633575894300284142133207270539936521680367043040712821368848596761972396640700942091477606285366397754136404893222556194103521120841137130361861892981474644842537425373262420399270873173591039094568882838767048403206525723288065839257470320397991614050990088546950222598427717738062256096301299115566328616709088332071453783529053809374708762459892478289650083069588015257275916124428428818345477072088131354656519802686724184804334182360898736171671460440949368853225308383036978044479815723092521344879846129240569217683696120197040912893890944162835298750148302436892538250789109526346713296601042959780095381597659752385855806200225709981205466508525577067765950565407370515519452195982879468151285427473992304975734754694530188962182911686776794984440050703401013562306895386850095504935799579962749490078411117244272237751654794125353780926247865249423479990427507409563481839743907914321902016904443231338834158526742880634396548476973359548445626157340594261521988079521584811051636040948936613174085152428705836719099591968679362471841131449272808735415750766140348709455216181580394983221061485789035179403021410412200877710398320131722747230560862521455333756087531345277015010491949088283061389880680200400652734553327002138799676506363729674349199795962140192214984127836791154281586932136491231172186979841625953315233547776433826288616013428209901087785930579422148685458058970688277219590001239249283109802591727523195880879688557713708990313663675771191225971700750458660628385219820770865551616906652816401695099358288615318646134591844281388947983889759300929464617086897650429983748817657103615573895317896578092757318361022287901956063594827256873899669394694986194497043571140880310708498449340310026234198168571500903045483715420317429935568006072652226660958093197237941980483390937746045462892743566757262913598364016641895569092585535626742379700031150061096763966772174359323646773098686603275128855623280305329137959053984226332525024315365501695286360932820156702353582593225921427428633483654573264286924889037211844696396416564104282312128778286827575607553201779522258271080184883295449130333699147127984443045934001882857830456148087574913718779157778399550969279365947472070036967950392497100687652284054473175782526062091423675774734333492947802475636080319558708263132069855254736562006488387538252184956435799397220100066480743764263017939095692014355164024967096477874845549475851614079502247579344307473010526899419323306675298722049747655321691157027643905364452044022886999330032892484464247399345671650914108541531449263371410997757899023557150221927707698906362153870791841247725727724586169352381836695596604072382229336171830775737483033469827642587836802029175958442260072618941066001167476497845468482799769493960959076584150375976076954458974450729655409203127181153009199336944840230718943355727330886844625671700528297880697355806475766274975562534431646427699286330495353192229031966036977760335812437216183785164893247562416707493228227877666339170391085193717687167752670141904399780553062694534894346953265661299800462747048917955389865177751771878974420057987849743786820586187912093954996863419559206749458731848266855787209936028835832828883976834545197772825848787615243387506431074608332383339801826061498167973114128012952910508753170140901131919202128813266375332438711709909749913705315816051057386941177812482218414689393794331692275177042556529895597119805080390151994773037379016400023416644866514788815826579732604649997078107083148886634453628496800014024877088790747404804372415250982602318712903751741779472886578709467495144043360636658609039948486127045846774471054800579017346665157601356825792067317636649065660750070442684286684642483310376258789314220917808978587857994594224729292626825717227580303504309196219635622967777711231533350684923300405505149970908464598684974986344150420302785084888337858340206643168802216802861260504831889176924987118287621059888622548395380352405305898258298367868977705729829307200637977859474804342307973457527566895860073506985291832321075881425099969856475047350874685834271727028387665180946363150683539167494730870707597729264982070704122932876494390666293371436050338124411344888169956707619319031780098628063263307555048176135443181065634737766397323555314059931669584526307175812335840503547340991037083165432468575966606505319038230878195774398725376795485088801666077052499050396000540169996480726607923254499276057011680326308580065508571315885719040629874481949169498443442640820291142652313923587359004576948331668349902370284638897211097061109319680971466591272007529718807862781720374962465581182389996811739389368490404951524159954236385116984585640391669998280491273823496317411506450488239420020316041018639893880171159402819353854132229417923827171246196516219586903544678543696735017284318966332287653402223639644444876905998502119600811892737707944920361504418424051014308246709633503783188386503300265613119655739138450670036355185288796689546273873081252849091750935600730824497348364629631660709092912218830880157514786953240456179412596576488991630763303739227053416907468294854503809493367352462823995942298452472011307159511948634138443005483784041614188288808776476041183833198579158840237919785459254969143421960890693297640853254991905583814468699187317149897378885210881121568346016078497338037490040038328096857009782839825755446947271510341983056248412565092197091102912003154161631951355991124999232141838078651738095162994995659248411594230296806788226692876754773909547683863042712485463101090988605093589620205117968887067626745784837096132435722283265686498767397753046179663803826351963989896968642447380984401621738464231409794497825084770828059461206781438005562837191454228131098514867649834603195654218744629175004914642877425812097936048472300004721569753094989889764587842000889415083545774550615001775599696128372754625844004331301149892722945714999129175884803457160111951934944900877133259473387335729417411313710598403369546236807060754189509323337077492876866952940111492383089992298656596564782613764782830552829645354079719490361024855991081064702352703695423198357070989405746130835245531663349522824085304899413968319504543763792604995939236299588773781878289856827060578196191251096331085782892056436119705898840151854446780657487857843305770024175209511801635614695250110204992359807740656232075378417552202748463328111767046179486919282066737072351191872736355582117489151797987581326977391045127600824359917237374704733491097403547280893458867302354646490907490379964823355265309961621077465774683495183086698323964957918344655905377634875028802104438378082765454763233213285045004788513130604577295666232982914827098025005042876015466739779046177976009413743401104933391174284484162911826155291704778752536367479420461656706152030437616972798134381030450082569121134197614880498802955387046733222763991548425598717917254436592114772544192122727627091959821304494414677503044229062152841280250161253223985164640516986574792857041249628515401859963040272007001986635012452636388670864164673408923129320254929428150130680769828065664370417412424043832320688284804305743981818224573126318103781213346734814879944714047486481003132328972273140139052076144308971259834946694552762682369676395472290516626888630647865667930143031318277532931565317819388522406620069908090529086734889343221947440603301473910905466003884200804202625683953682513937186248358332409512594204458985679890438832994427337288861953760506721156636421348242701017799429903619979301234108403842776943144189338884559252216129825826902144926392136812604617041192187704107147875992070849358755762837922468340923894119802934945722790214590771163008830705903370135522281923506767383638693570506937000835673929920866424310848815560095721038785999357646877259337409015605842026031769777725568048955513303370912227429380812305514170304980928193990898575222152600588268943541251224250973955887413738214858629965193187706720636655490717087225295139701292844364430783045433338179855314951500789567326572677828786600644373173415248927681596316247356837659075102395237899188141093752281329810084954888816057825020546347997793032206716945643396140121369906171432756987817153851230710490605507593461467942964879775842202959294518969184671143269932426630064212067919099761700388574143547388705772428311049937663934228615145363570296673097561347107875008554188619375245425096404957446836292955185576079176920320992680975126527420868498910145795890693749647310969894064456586151774454486009386078082027996507348914911752471524264510120609685387576384923892713740597454607391648045740317409725484683091334671642466299785566806746273257321422683715493544330735847890193513757592202221213672378851709287816768423579770488107612684476449673496635377367404675964558003421641064927449120703257179117041856756084206196164611366612090458514123519403976915823841111428007525501942190248658396057283692597112992386499734298003687113487931104270668374024556750123608629520028668109503517627475244165121098924572206238473313756830028762975873702861723608601142402627755680440945079097767632950864503846620561802858367262373254031485235743151187116385142589039228474721182433127190820237488726493245419387288920679270069681914989234124233091637844242105701693443026656513798169462935811442179863429366195755781010597679876158689999245953762644389876215040861107841872564493810728018431947997232636782309508898889824150047241387298931862475432984342067900458279505800781931275874482900857784728510492660426864040910929024510714162354490668488653631524626657561132561088198779462590633752842241949021113348722299015812000681227832606841475646612231791598256313805398189665941425178973189528862848251255162407772503792335575882528978980195679169057400201467714743837871728486426715181492996831290302616978717452873975989965148221854046756722418893436672872914330451268559791345546819447396711130163238872329344234238874281034330274106989548722654347624789540735791259798275287087763859258085124233497470651195565528764811093266781708258273005490104496760828591529208880677538582840627524166322238600809106631283646657861913688936444190270788287016101644007588151378121493557861757160240293438407317492570527566305759453798395866120487132841464574703799187438593235301988816924596977383643535824577116772283464355668149970010213971966469382432977997822425169255737980051735179701665180771066882768376110111962088345304640514088800124400015994901751782138308328285124761687435089948600693529370114691686901542718120760469812057788634891338178490113645071513645249063852382854420713603486465725859031575386164581293965133155863916992717325988507198143597922674580522364382383643620598938602438017668164000810710170823243365084897993779413019740396583414162992735021010076338715339385537493666235932287488200547543219752294494805271944057256619684942700401164438348914125614008681569426529000497426137951345306753574686348200767208406415970481098374505086241943650470795456022470215126393943419204562670388495550994955742169486678147195700655272184658231266410938400587449088756576737894554698092117116525167809454357043579914807108143733809246668784224053300059305042103264574652174431476522713556018378673017244104364965731113858555357490739130670150311460533989301345628852306054235198254818028071665373438958126454504549578851536754513922330497231166669563177615371666240833024825302600102139046627445328255541276349698625696631058771992464283563836971683873378911480312469092245017751364048787541975600353521178374682931988304243803225304283093900710956378016667321196117090464094832760308592608036529788237138248905526242627712437577776086452969021043983792954992384454250025565041445397839041240893484358661668049484695234204565514816541767548047844952637236141019313126313478197197657287560278607724650547308715864885747980045524171898964213644904938783289124259953307403538959940133364763514173828657962663237092056386602129560937268334410666897526020460511354769204761510932417533387284472573227498617083043380814815883533836647198873976273982407921406371649917835565361415957637429344340308576563946455973613024736090754052388365787341265469604044582970321464211477862691257041497702455905280125801627230214879578333586173110369023080485671464483536068761764131285381838022452602404231874056054649429278009064923556889032945317220758354966303944916464405052390919996131912757968246292654053882611434033594770161095327879160967195262949846114798717323353866698741394370569865821902779660162365287517498567790440008704771744831228716802740571937891405788997130900897894391917812744814599897352625775617349855651214076579060768295712989430959349678247508581675667037394180727855540047946927512305775547097410988781064126167850236052446210695779256416231988222238366562077870159264740822948167503999368745499809323766946739675474883123094211950994011045292460500216684770803020972551984580498140069623837127985070992663598427103071684941278218049635529823514292248555726932623166982822474207458000092958691008231875077695781701998075344289496575661205847620333995000542649700736295670411289259133746395583660650724577764590121288120273740059192711419030155789879049660181737981164132601076098427574324393225257950062010441683074785525477049258737746357276322802183451333270799932373321743518362061390983205523622874740267891953577259773305682907238698984586648544354987383145034003886343346638115441432791474211970209232188354141899560795139189098167203016650749941726368797636829487836035832335227057267844800558984062231965151377852727854381188037257408436112082832106343001115703878444600233929292888571243858200624868709414195028268150251509230908746781784142732800096196382400271650055341206684995698881291523768600099121305093300648292761383132326766166775145516616422007445508070375210726809396977947557705705096400769381346903951146749534209028273022232891071500849560318184951638424303470552143046026562220715070489286873046828788197230793135151317131879515063252479845022073814559699206681014933103837938008734041970222701027507901830257220868197217473544229732024541360934412925937385601819899637527642597978654227450086151149508457725386276276053077442657748388860328664277536571962595532060072897054388796224307444520868973669558189175717527715627362589808623863188198589647751952958524347582909800053668966318499896458614509217145155281377444410492649834734795138350424349751434432310811728571418652726809480828166344298010302163846788165892989295156573773700686510983594381807642949508260138582138555559760313199955763819904915076336967462921899961219817163956481837140525840852891741897643061415448129619983129989345180653595824676390259771068033962424337105206521638563449722016479579200032271285832239640273378758537192670938517860177946348889037965289768180836840557907866834965826683994596917240069483475255800791994655185509037579901150138673040216314785436320127642139937725673351697710099429068756419626584607274342966094051068678611806743226701003115016880853240652498593237806752721912016494788243983926299216671295971635074011866030464338039153758754384635878044066468144617578500899592359831296839377501620401067133868933323218835349347131824109863987455608001038225097608661667364924773972369025735532846301979595551172169394467362568401914266358289438123920273632227076027258871159194753082480358683607063101128210033189923906645620737912457393148723021330494556749319695249046234975021965939259245498580125698234608619451668667407402661420753641559677012677358040025288938585677601612588948084580390420737440171710567533625600028185410841178149780486964542876232771467571314072882623208240633524235394825505281677022078294586082634210886841797313409357087227670725445371202043759000072950442212071800237656202608308861991392472903529814735133301001728091321512411554958430886557273322888707143379370967865338106880386527854396423839503311486917315931725579597266869365647137289027262309748969568927541090272976147214812652754324869874666863494211701212509110492523642884366031540180023796391294802721539948269790644606042397735504307020216835787249567753201663121815138514338387801565759488976213491496897713222556897474828557668846242206838676743581084996887656190442818590257709048739912822402632152881830186555447148278621132326718975714859327110242551338585395017893615545448377360690089298014925221141404674169044053088231659207457280842972253318162951847183527391046796113387959043029204972170477320957739426219968218154551569559019609148253199117160062443483928644437761840078404560192443425944452513103853108043154369080453522040123351786684035968291171686802875268120830388434659483258410082744573820743448087723839872114330923772164412241392288417293500960374081596602762132348990481020459970656964560588177867916283932212662591882830573493684426036348008474189534851443990945710850697499823225585352162551008459606525016021017884081395573653731676146872427394523685332723846664014234904314650560024710751290105333561768891999204355833891457931450412074990502624637622671103357013869711988956511464038823532812987007619494548423121496335461981235275983694581682784810728271193524188822484811491797510489905100112318993050136949751824630366694494205481982800684175815561548395162555003333827418051805088617150503272412775726522950025275198567143453802112648195782099877066536836724504327833309327498374734769324270187569829129780936889408863034009452577718372221410196332627784059098010536188794971858731151733987956838977322133179231605195739438839978273751832661232930198461564471377979603353997984842195208059635227465087675969385296571315182937599077921303570825351014614882771182922958757716094139732018717851950642924578680736752371999098205955708105463588074631077676229927087330773908052080411558606946190146025647616780784593432702322045263521922422933918789626695103813869270409211339593485459908638680112188995870336104316986524075901493208400708625086755399490651947149811377270311569581853185022612591397748970627896797037841727383164346120496311146969006636305614173918804121225464466232827616146011188653562043999225872292118256691949093047740840976742699593710009049234215628513850848330910338623254030286331829207132886665631950531843984010804250096278960468644112528800818478862501472297657825061828156622268852929636575783478487146233605170074444746635824153741021931173121905747979874916633207510894071705478381155666487397844840557915141943029708252288955249131888255710923437007805192683616453104470095640673039503371481177539067566825663034831598695861718109582443377668883694272064646533156791379017589994493715378417019515952245023434458754440177636137863623691971530218008833264766891034778364268713021618184494356627137045887655390681899469219396985662015144821673538707953939369098598075786553909896395021734398162613593490273157846818360428068123014299307743278209817349986062127255581537239115701202354138001052929018378074953805582816717787676692873709609444370930549636298313142230396034268779379064715131168412653425792599533072387577422705493940736453807804277138733020930225823058560672878234952252696100123433413063300938566051566783329843748205574156375402422408496644347383860440654987137648326190314683445044847165689530412273509004762226456458364080073801892974517764926062378275004248930412799359049644194661571262849895316592558238933438744062219598905776185893422389794428273594699809657976355412332667641121132641581845787881770351041086517451541406122333787485488663643775489025531887402190509570204238874594842636771889381978436221242612246203989451368125861988801036034926424296940431888778344842045635621337678971382499546921105072070422053127391346592411121001197800242532233501442822196594665253021201293044121771443158885698320991740416459098966892403904638497049868883186147522758005937783065017374341655467903649086786827357660614262006403294704062595341797596836153193530621138945098901739014555569794804389377010610710901785814082679466915424276771864788470496330736556656424599559938863975441129693581498500611682873215319764216310415532540617629632236717890780138394489866193890073177158273752658769994867521241343809645519164809614246757063137518479043960417536373313880657655337402738714616844562379057012113336616835304657299480952228536813114322108611377935823153990282535192761171295165731765719935918266589293566857022167083514764394910039075215514166595180313358974508360193790770210447682978597835353061831970005235885109712551115328296224311311304523009099588473110550895733824292544918806839225349396462251455832410535986958894525024294455595537868551652367685579194938488748960776766196657545735787981418484931007612622242258303410458429077068811408895782599783007703146778394992881083118018614327331270765837713908617018016446724667993832162029311642915139662315294444932560826884220592479611996629079649547166599275502416946300229697497466678980378019574477811351822478116869416041167180909818343644738348242993091766385684269639084176335388006050668341378524090033309522341017131829553820673972499408024734643919954726561670352391704714249175107550878115731925380375419398193750576473278583924366564456128704558027241592933753077466902155065858790211854652816350694894443010818745472696911716181922147916666847769690772730551742173718722208012040603913414990880621817643727645539155671968204873815467672098447265669020073900603845474719173419025476543057212619108217459325768221665952504361757132618380210395389094587708922352229573046328102147101282216244741476796194065933892590465366989174375054571017164832261283215042137528661264343767542155725912381160851214877054889298477184480827392852617564912511917781665927538458595641284299198298550617812699262618934244872667100167470201130095953754396358464323560358360150032864994430592265999241356734939515429696766775195457725470077729067965873910976701781478789912358148572453212556605889016763288824356430386583088051846455557112525038674397316356042860503737056957544782502577516988432786994625256463830499046899098948776476686564344780668604960462945067497085350917084182835208909165828103717533203319162847272303524390536426355239338547814080066904814653459812258944332959037157782375561012723047603624759722170133792312525857497960805287470832740292281727859243840783462556641552340475837892501692805447434634572751894503665460232957442540314884041272468596319934915987621551976645238422401865134007807622677282304919949063856604167854128525196444967431744275069174283468285794591026435755666582005960842110941482468640287409469416435802351769197945471227979962239364511979228269058343727872196548927414953622540658004509121932958134211699218568331269939408220339952149470944308235757325992207222383941684643244930857099089007864169962227457015924812065605805262736687556500753067722373527472513693067704059145151886735439797007106014719214866245041415330973457587862213143687991897935784313217734438389490448966500594845952197436020952040087316488898649149924513319186455300317421602945171506382124974796364409479482203780689559584972358312897909560887648482010946448187445246377524578449903834672143594899016109979548697745435365680933474300523449168864357007961205154930063710272026319142013973638783822137489802461669838272221512541296652623141238156169901473817500680580635023483289842972350890146048858395930968504351076911936154255918044995399063705479148142612952850381808543373508352265420098634876463766815623237709964702838266497886208891109016908580175567255766037885017261508402032018882799047274032731498477089423205116102020630016194404495262540717637776463616869522409995887026795108629003335608059195238104784068442739375421131134617516007607080446079016797468863930485015197507790171182579139017749276316221179728835491874090477155173088089401742568609502742430409988240912090627223771447679853563042256368470008669492492003898348547963257419240993652634010058396202338742287514500127104996173705511523385117925790780212927519801443008238291624763246317770965045483297738394303011534535522484448896468112247137810116264371616264084592934606843458175566440366473932795449496592427035587986074861418947244219116791926267484568771717747447652327775256168284382699774254441404001831587982128268731594890527662096954539174614208675989015874050870276327075761149051289817397237000886967989601851660614940209086789457883193749799640079243938554800887971568218086247237598247854560296141141040980825838091736309440178164112437591007346175746538687812678597584902802448014368668794698207261020661364653376200133821070993715168216069791843711651139824987570701213648481327667021677911008376646562538230629144608129600983693379250909883998995376150316344248338743820144932778511163569579571199426348738031878673047139741805109104357082724739544403659815060947754629423784503723265444057459737804981242735015185741799418258913201336117549604352374528435205896222645624308685470325847672290054256285449637262856202637683882289162424692144307838218258189435017150652487489618766413455403390075336476577617126557705318839696528354874544170221761803980684248451864348428339469623539970051360813566617592396590883656279610356443653707553560876403259088596452135372813507319328530743320087535308636247218436871235552416571494528516530614541980388000580800175192059105297226546968107967944899145249342883242391160501567629623137254051773581833886508160503989595544111694858912525848885690957154829445320262236539888342483967123315254809790161517649514348185773796243262903145665400983002027282199456986268876580651112325690402154741333584730289023951477772403494260429772619976096538680684375121282846459252034788025544577548613387389194295494984655996781274622548772447618589310135016270519154074460480388472297687641840233000044836548102340866268337518190091610652997173730605310514178832560026046752100749532903918066102496992913436494720315097518854475965731370512808694738054280377321822693738432893699774318343059923271783289951757882405723938673422295265543074342138479248590042145200475237866383758800930117638253745966441458605635869224933871641012842665558578623790829724304390162689088078729441118931909439607108963445107040054257499147600246006769671160084517077994339285627808697389878225849317272380885681244388080681264244758709784092639983398024753405925844072284790444575818157684022591766858395806371667600977108328894784767512921787578655301052448483058288664289743420684347365831016657986851734665528970518835235877389316347757947515777675754289491415135342404548912212104743058153667224040056254458292279297551157243093106041655587427343666929349152728859400326865138665949211198423746056167167739032271036149910374066499004472190745695870004175787176083720986549709734788070003056082898699622728718421556372101272993516825398235380049726853688304634024385087672016350774918843041404259507471623185639546872065472730055955393630219162995697789327139060688335977937122753843997524063841016773780129713605875925907153054449138464342287203837947245591977909939620408600493796002664624762538975448824219501397900757436796610938768939841730892638896745385818818530528401200963930851955205379017275646983734295290764347885966985753997496922902902575690312702852459816822720526243760456785329584230970197703697524956342909244605852081729976883122374243756645310192552229046923923426253062309831723667747626529633619415308308315380637419342808871376266335354036842412425262939423189801843044766134438321943367002529465856451905600078575353633285913959089425163468856989245305088523010186023987356358659247500535013915097047037341113532217312832786113948555302452270409134729963360849603840248919838899150558959613378038529044620459141646864387546391657276719237694814297802450217970707040508337479077505102071271776265657515965991120666801794291490291842083727249156316399197734333332162139712427277172145455522971318564058794720804784754094644620153461247646184376134812361907053696951107568075503020355857866797318845118905661711885585717810862210966800895242676726197711594412246371144746267488334065208206175962000761360153611632845982155538568629554643717601485233806092385891591457951158405787302796481393344344296673936198081189895465486684001433208436829051106954440222060412525765996164886964567453080579824502025790536006158744952892140406016729834172083203380993270472795893531594490573846178181516791554308498774374369700133277126073649511574609184591013131204121416342453422206453461917055296011228289570835169263163953539735590433487385695905216993089542187692507893681069051477327667524694775319216185197483531708363173715360496508454922567077975003487130780193034953264543932589515673389788489444429396868744023674929171343003937949367933152371927223021948106558120280863679397203094085592270006611478585212286205855280782367404355097378250929459462979338449806970144454825669340104512484150729208085410696351421219879885965031771854374491036682573201503472962816454974713698061028969631537206702708160219746684830250821524851534312408005678136384794622166794610189214480713844498183558036328859561282693680843368234629292193039130267335071482945062160134085130899075474584243646386983230785111385107150988406566970725119429503873136413661104784484778202279206701773098922697837935372653396385876525080758245991317111631835399982985412336167521386524484073238916059983559038392612562694376386468053264587960980943361612308031489720679381263857964419808523548820575554260078446899227368839042129268717913016062212382431131573653152539254924852876058067303457045600168821323788261856309827229776196273238285665569697645292677571188084531411454153530777881965314923709386402599665695339026185492429806918958205710168731142323524942835520292435794294738264404309979701413524451812903177769232468784445271442332001731322429860318685810979389890419366154899638951540060415417599458238405299513921249880848134069416700403715544749244260899036478437078503200852733849190187874380857934678997591198231739328367209100439726194023022814592782794039201498635502510297983044208070459023004703734980695180988866155264419345821534032088570408495878242393559797689544520396288468156498281867685129342166808826413707363259594913039222608452797720686194715155053463084237901025360914825458833204321343821335054474834778743143967783845699028081881449584669459370474825340588057775325087898621532102130538546383335425271209574318843439297538771074979569456880976653501721287240734185749034239051238937815283277122433286407521283818381794608229475556810909674931769468181864442617773653871067573740979450920937915871022551315910127766961318999400029311716450761901703253259803651665929641887987950062452379862350532544322546322606166404593856938360160392107878914210198014886027476460544971741999505344709873774448540990765797341568522262861285847933846647802407167692020063493804756876203796084633991859534294301095252836882133593013159156785643302865104056092747992673477196443236738647053026863836355353584930709831502895247562099417171776306733590918571908409006327560269951648018737967918082841190582920154766907247356958341759102348290719422413549942734758930536093105443599062998156632600854716712775589553041460542093263199783063058788084829794077194338251240780664239803068068348544817740049707713386008883119294632090363786894992832838049723498149098831077451676354968231699814152235224962275978930935459134519279774532008726175393531385261904882149106962587328200766317704008357780124006097834721861906755557011345421452510765827010310716611761545981808696102304663739071017961706143029366070004850280738350358827331999109188342370159162604259317038348606787176856820044354106879738070222871900042616526816420531392592603057449672968952901685847479602330234905259980966049292664053297629344446739923536193828783114038896990821735859278642607444302012364177703772397830754527267900535709350951627048238333984995888457453277644641463751435808281411232329164438211066376080660311338680668524017811487320972423596330872268606319671376113643716856336604209206995402836294554818035378235681565930175007675697848150255428167659490557908409753878990549968153560099565322530536957139049358649784819777555294089913080028922020872353975967884793763279580949344689878390600100101074488672306274702657641349779716852443778451365872578881987674498859242243366467574861635664370027981694131501291309372705318057156824073020897933047971463539802225796045646142301869632114819500793667121461339596625992981816536507316829852990029815694106070594370500551767700784653538308979548651808784624481369353014658933304447295099392064606375922664270954427380648781063558143399910855360079618477573593506019602570383876559306671784493024339949869629724100482075493172247644082805458486628085544841603188510428404825780743496696266707064396619758753046359055854012430078908362168175534203289606767745095858641668175335892893002761330836427848589484859260483668794558134165985654706871124756530453550798500000234099850968695950159195437064907592379633441644037877995078490238567660422680805268161961101523459447834242897519438775161454517060877564947460802216872737675330186790200333572213587070958018044863501107462155657925914694236926253963711962829946716665617138854317997182211946784987158703497062265526553672299114554306289720240130136518479138126887506038955128866905418523734133818384206844828523243669007194206747225093934580881140834410838917551673794639897921211904000732189336199557999246019728526447883302557719529012529199707151563329619333363191825334990987904354855025003947043754751200432836280435635442582333616641464744166842553649978515702707690126583847832557633009329370659530955070924143467409940323269920351917753029764452779773461806910210764152121777491935377612801645830071185852244926670140153424834869898613816754247525234104382187079234171825888279332928575447617175252492347235570352177943277540685383810678974655858170904552441928755272764245919968740689720039305542590285462826165361880660136851997290977506077980511334676809504178118493448052479720639019070661141249345545549112411350183188197226675453614125103675163925787934597822055222281219367431213366515977107906208460516008279831918135545395841438313330010062872145822935072198308712282050255951356647344698425293264987253888335885742384633283740405285840855733735842520212733876508321440508703933518161798724395644629147177973356971547136268937067364900393293548733942077866794510922504501557495040218670621663781868821801189146780135385101939647545986640191912960958647898784205737669177577696419979847795845758436868116640192522105829824031968990260625140319722423393918673414289986882338536750611674038696434261877001566379641254381600325805810978390071471603804707449426988216647400067138802749527564121411432789023490375998387555682158701337336479168749286376180423355979935109239898213265438899164827061140358389128868710297108147098224892431560146061617005966261708609938446384985105301316290505973775587036950592268085915787184187509129248488361831850059549607877920381477539211689931927650488928306898220323053814256387824181717572972960245453413016018713361956520111491943221578772497748886514203195437612650902672775264262264804204923895479096912531560847818512913041374401673855762528691706272995601784651514732164078339783067812022225875748588241097174618533967673913226958303503478932741551736196905134470121130913195724732485453879943267122998706246228523491223559113920880949456895136073757936233280891563368947849439564446418213177202901173334766523622378630341904505525917472449373085082380707818694116057688270835165852626735439690656397195462573888754150298745790902183643326730578394688046041251249312376446723146072852708559697070811946672056981924304698868178812502698815030932731856925953921943941275644963378122746219944460525846859297403508721279108686705318347530323746509307739854977468073024571238888591294033240449636514693737372849396489748923062663345116255024691062459625493755440791680661043707498162228675468092903051405873095330280107845496906151226866556377348205604306135883828569252381056965225480548686709902075421254382193109987230983359628798454033634045355935284752863135325631773677746422074450129334963730706835528467338720044063720594066025610544159142230742358475283185181975525253815005196192196444498756774680016207240160456987291790809934336857822659963574518592855504579037471039624176770431270251121995822462606862309505115077148688296329278259572888024963591690797492887526413558820578637162951367908212841540407712615886255144830551945888480870170457940075641485980487165054390671337798177827798786246791917282760999448961450588434355987228724431563992908384240975270368421187210482183536895822845544301676220036798030073566369082315293827747361426413207042645223812554156556497025447416393464934298865834849215330495365978100086924259585379518161523282330323691881307720634091591939611911533132266802701799828798330776121128417130320548367391553285201481486097253087400412020827072319107159123112540297607581869515775144618432347315644797623069354152096503888840225046495390239362130891714016344693882153130654752580618565235229223459574470985955839059165771745316545754675659920715782510414095056295349497269790986377462909756477841808441710276896261324941008579987803588239501920776163093606253062082119293426997207588371322772535137537438657355600165262868691639854504226979993811885547987966427264383480910790792674427093534726554424948616425370157031979196920513827117945280628962467741910900999555976183770302946968225624967678397524544843096980380851361221123771420808962530410525661791294227148455059090707432036996360981077599754987102500290894606821978720514295204109103378504946964769338990158426821569067321831399921254281460609212024464250375322434327673183903008651446369407790614585118401030564726888239747678081298156169449582146958339383469631657681186243821965623483924567228759451391207634317203496838246655982962521360524689064607246244852990421819623934167514194585082168431921915198234297874832726524133431927886903023085601506822579519032342293429607869248287512978347596360975391478066891410742058857543745152034118295469080594766977178978771281891091071735842575103931878030265352466436223191561211689396065158574345411778646436533650122823962181612464144171835464085269414572677725902651100376354369679214149777703780921603195793546301570619245837299407394723937945008625408471261990333053667766557359974550800158288511789439935466506045199034114726630373221056449090893567626872852623417155693623621176072634380193141359810132652670210846370607191559969765312592718147774847642595914672539283775722121818820709178838692913727550766044159292367708848449454178521338039094133949921656048998699593019917746524232679468628933745181541129578770258045043504439913856329334503633088980035134108602021097386793022507481728403454656868337937506754794277084487219411213084358766011319179312543526300750463535371140320562843012740140637055020656304148235082709304562974470367044223077767331442565420025107167479672182429494643269844957493605088391235761150703742109933437030636071994420017324618500347588092230077089062437261741173806605382710645650549944172750423318911490368778401078248693654201917710386751527989085872010395856340494692443607467533089765165626792938013676429887819647413257086873338219317460550790842092291372440565772214530879433487915645043854844528426654494893461903390212060200741172034485237523979072183081166020848832723183369863971240571051503271017160554965631949659946884849977251622384871443564018336723698129045510907300462274039305644733246892696732311750011670792003873921107326721417057702900113266515631393742837422017529383015451291146528343794384640715211569774885961590484519572581072094216634341134458924482925006499230618384180550004606548632012453119895403092597115731105037242368663754374861163310263111418907795975479226320223390126315094101822561139376354149766624500458064344914446621953570286153914745679371156226717267214459500180172645739302798380637317725362619251354355266713928486989853277858903183126212171700832200913491717806499715147662313563787138044187503764835076508069764576025325348080965360619835967080335802116907184728040983687204137399794429526167441420622014241253467476170222285516462841909936668761780428736286414129294046042620034396715591921861127363073169558293189817683844089415824129096743180195319308876228548010116502069751312826235347443663398487124719423365182186125886190350075590278308950641618361321164814056287341848587808427209881352888887152213990328652867637345896765207755160337641044934193298145346228910166836391324531363745959341883212717446285160704256423101926991125264817563340007465329230537251781984621425791065026239419111299473408574936008716595962995930720318101782711242945604098927282641954964955981085444152072029288699724061305432115307529134964407976673043203662088429439081911170945966066642286159582756554347286389643545190604191130843146819960478939228794651417284575672402325405568516395568154346736395963061866158576993327427915037868003918959572370227126178962044048571687636978710712902761914464698666301709998423871798629543717108751181916873860183412293835438776749248769712987234439639717315383994880713793522973621247149896539937520798273287237553436231066441794057219695465640210824987596828426436241493538901280718616540482535064908156307604242052133772406564653669329472954307532706227144863137471933159479802434523716696603095268605810324063981324710695624269729975796385472884239522204859265923261816470401974037855627046051840090530220160046451213881584624142510351081966984480948883737702802538496644825312473046252622482801395014412114849521573393823079336843281983955159045391955681799701278185497205694481525361760816425215970487880221821638518897569239108139748842882610613143029186940437511027920606338454397519106107468964100480879734246880761935049648642826352363316427009752515116545319325499349040605068372719747355892717525115162826907586337094651293770765528496769721927472202087288770944760334301108296039039287600165210924248307571366927800598042304504551695944277208979279898837167425959717557870261278707863280844465397847666951227251454429678682144133172818561613126264378882516682382500927357057850332942109014903699629788587125435162013607292283661510694880015594577624750028192090551655640449845622902608707719357619775803351372326840221638936021600960546331317888775323673075741449270151273172758888341821363194546388639492168730099250987638695036516481908219160324140986431455225820650260916743452377798215095240407906366200648712909113016587953786633329535078060976323916732389932132172267279798227202697309963633881506204786842469430757220393128179011848367676788117216039351156468903313137492726419085803675023709299575335662354599402423273803184524180987629184579434405894884534099596863075102133184899387780462061184030898814025234557933730856398708613164516565871274433546543358130470376820144018687212951419309843522672175583675673301082212712052663138842817877180672969692747325901867452545146797526660701112188269357509514866216732862135596361049954704851022829997273820457337248617865399610038752169197699690122450568641419115461333317768998334673761799190464990701161948372063859682146196817646151602600999831005054553203026850256449498338290594444450389679970999131093181021561340411169691639626331710385608449406218211560671030977728497725186080360774231494806185563954464623635729552148334606273849780806765594686075811074092916193736412412774570314079152923032929736430310767079505012936779010169598644270402538065827829364729791346528692254743475721966749608348754569971199030503250201658749737802716131379544840744989620290572801519012625137453355643315934782445869698522999311768322975356200257677730221507793821855882330495903261838077129519238193372404194910578853247787434875665240770290765936920852324892130822763579916014302806729847230940012094805985942723114254203111827707401369668727862218879013395564545950381466963498457454392648560962028706663109955648037621777812159893765360960856403863265349735616483946084367575254545116492709652954237369308505452407927257934094695336426317364403035602679588155289122064174287226639440285370254396138761652499537096084578957348283327370660622798288773610597107169729159744969727165316186469863427379598296556463918393389129316965702828565700491807897414277950134519018361359116192298724218160879530201573889232565026943044305403987586269330565241954246875142125373154488308015286742095824855873632795039618036410567304319085353046182037689990960237718267625154303905876082285434130844272028941006236866829312498558347028932101488414055686482112257462494032563126121614847075262662324542708501604692271448845752915790313343317256819840958808946659352742605909936297739527333410436232808753435663332620053139013355696126568760276736538254287755836181867597925023022582344240431747703741921126006150418295502981955838263336088061553562287577314177483880999183122650761352502932911068931200726053268382328270904107196487275631826379430963536893773764748693522456230374266425366391611079854531383180013810100882500830164552126314476310519620793732007239637580481205491193568061257871064967087940879804999207107765964562323436010399269106965657609884341494387123406579543906276924683992056399967840075473777826764778393386645237043221950458178198551410195625419746809574894440208529567509489957339420455599055138373922579392606091624185203531570065261777014583439236637015304553769373005931563195576487027148628225009408823152472784952638020513291034616942277813409682133815961616817344151145612661748691100637131704258378096361069795439000765896289039401294263552278112693809823243525198822398463440268428430130322388444192465317562244209717658520573775370843299142765513244244156310603357139385321621101824893016268199939259379792860628582466628590328596581227106460183587663188379882009980676482163940489204478542583669131746828948206365320446188293682854634934760921908643442174780208130440302140916637617732661913206808266331395189766492444245578570969214927496963056290920597853712485654095529253652163177235142763040731716301180282198112465643891723025898497599587841406801077796732282424172379815634086609799229589497406380987668758703656818916077734853114709492654871266151874846016268968891190489940156901818797954295395766554870937982464991902574781582832370789565336592701136544263602760312039216216766314327387838344626709578472789847316985190016357689786688771083340157326878094738940649157758506015590313721468717829289061490745408596226237071698723851583261355618799434199148320480935709171389549624383889983907803805898173882783302819095008947663348110270227752443831066897546176660548293501854185315521400826669339148143937777573751381398777514688610774663696066494957646385523904240943610576544389649219461103609960271515082881508423593736098765715429350949067785713886445605052658863756319664791851098623664983436736174107823692933828067007616776662819566273391621538555750511136714000792607470423522442102629693593923717856210472757193503103121172473569505785705966868670931258668525367733356440576817645463539630009802723662700974547451036487213608019009716532503134988536240289927087008364239953357974977528837318136218087435165188007966632621366053482773340738998180817110325692761619834939724601708473653545424655257606421885995904582449589115694120782461072546249805804341346467303751104872486890121991506449274062495470033482442776046040037074825604814605784354511469571907932987325716917949020588112561352444977657735393366861686924723977477546207022954414560405194172165470147629168853927854657678413704736496778413047712727813607117757519500006347550805476372888401618429586305589741854273113194070601438816171626925934233396112071609732653757000592113685872247133117816129379152510600523086665161173883682426303910912787517351862842087684942538687689589709320902810743566194647435618689700615108673426761779297702195927388327442255881741262479865212142921835569355080048738049414347382723502952581637143977467407872920248199935892462682991647780731862617345160549087333608858741138013046950174862110349047751656772093066775734902056041076237444938835845055395214060318679299284587515833486251903356175129442756127547663038353570876948305678177623334012737129533446580533526323659817727891395734653866063401344989847677114945063267452193806980951827019623769355364871310752704629719964571839691068321824332377598718475955452047996882237342163353682107009904669243848506527630489024364841910662998451136103643870006585940712325760098316720275881924048308946930496888229732789464346585463875534681072199309494119928980548702355655869915946106791444767467710338742275615923116196214365946469352897442150634442739270548304453727020310986636671974090294794810071919997547539325837107689701154481818329091921129545545309975587287026926503490693693509622610981139745260759728731365436489910127013964454678880251941357988220743500954618679578545094437701250962464996652609171439297801261168371493425258313899737666468075270641128688764482590263465038916848841159551350892139174572684871164846073191923309528143485545867494258160592482446393190852930019755079745209641973536230134311231188630883606901163583590662215025409404722884786252143129608203521928731267612655245169632743491956598613867298419650626319839321207878738951714200554384256770523691110591412807971505564980288051023372103025892136272493003138365626603340181232365660145111211732749786946712733439267767540913815169909685594520583881470199370717589703174969485847960623909305207985557520193257672906601350911534879295990354100341307651738286953098401378144304100904416171899634110020023031132573473776374370159383538995895997380936996892734728884467742292070988347335823584771792310008128507564262751372574749237238892075748180668387397355731796049126517775578609521272480539462001470406834596116976264719916348174139526697622502334838513256596596026102521403121013512069942900061348180538357659419976623360755922035366967744582582872555558657771091780692660286522493815397536686649996912381928775252001167457884996050808619730126774390147221666423895584484276305482307579550873762772868649335586099447278997232079130011674383838561229513311167378040388539173981475426506633799776800017603197848863481484293138786994557396091535627145074827329081949110771168540475130428776749401956703059839413139919472216739352089554989785182035078458178685786527437554361422607777528113730778598859867601138194992900338002586627835488279846519771014730383140885373938290053982702975273399852920517120111390208955012257589635848779870778962090504086383628163272283312598125234437809981895016444189180761741729913158109174462670083593675052109395930450373168481512526225045984763059220913079727447841251394442972445206646578963574081672201610090995647071305780823019327999629224983824916104150641828547876605772235729749223428120728197457037464019125366089277627859134617908767656366206797924158816463344139106718776088486897235275483841294010888384495964359230838367233545758181219433118693628535048884752150370775532812038155265244273096854261634225460360957944919088152645365336011030399770048539377632280486133044041073935322869035396941865077316694742535028032507530565743314760045159825693999721960932932649059996840019136204796946016632004455793287186740109963225424832614366141701709148308721727434247838090914046458699829799236729791457573597589547248284227109270152571174519165253229679731967947806423955496964106508635130189648850145632384331476063339843093284890458401169153434735281060772027548407752353110504572398945523664756185886795919366664954517423374930684770370583238688013654888205313669240993310677260065673826934348519775517013096736834639490125343575187664875210422178853080942018194487269139278241501821981608706421801430775701589511178362617783207691484465570308576956122143436382719978151995039898605703457345200762807398488464279452040416583164374824741456966972132413461319077687670154913600436740140253444540283241886040304301029469070158632625414436292315169434229267956353141976274629895657899865581890979569284330415098004747392819385540995554636280856947383224383444293824237235439061383287597710413035839145893919166284494012881147097132000749892534125968024736345768993500925805520849679699323148980358795596375757476531832961939805229704184726306161912056591342746764240938102168870257987374853157998598988661342492019649395901236375379222624287362702496022696144881117849230212189436735383386120028944800967713857151405650319702388729480912186736041913167097030090309432179381814041226754857093902310148641812856349602912979792155021605644125194185694946440642300485339978542921271843312808146135469370679698614465187099311794324424711150048630608256455969210740132311294026543368224820935038896143175567236429984031557294149079150312102937115557691987181768416180755929831597532728600017045732767385264037460851600642566171401283939373267701636670511819521521169245985244704788038639902938373352970508816197103530311294488700645356085542021032598409313505689709182609723575627062326946566205364664180522910936329923847320400372166841893382917714648279400436342869619221001161902700215458117679067807133666405292335400022446117743989903525624609077858145138044344645524579990081521336510648770464007429466815145075989104978912263644654732048184008977384343752751758905849831073907295405689403474259061762731177990495077518576617768694252040607787179923830733570108240269527588337743609888501559405300006314693733292174427078209079837578232861868327968268583598358064351048723853879595066522546472465593217823121227260071403794898879271032175212877962695893240669095596349843421512154905546415336006106618376901760757461465117041711620793590525845414297912088516228155188926445636391404774554214169069880490939264374652430016208938663444502875638103540010985492705232082402107585601478079493150651139721097194253779169862645218194275431991872610363414831430314306025782655368536408218585771107273905853177713176103539891607321636997120315562123734088662048623492866089407231207274539602841420411216943210379115089158233778550575377327025162860227515983606415603742665888779530704354391682840556517132275772236529569307324447847297207329833365055651667567038910463784716283125882123126176156461142712562513053880694578323193081744978632962273821027599281390766162975690436123720061508056687272462215149531101717494903550896795697938039363667880065083378420163921911188030289326497860759754412767504191998166518861855118364917042087963275280274102975467556966488843700093471889570606773330918211219283256839783289218639505896442412309286990249972007836631197740932747486656994442040505304469091737776327570026944558773822717544187190479700233265631761056678721122734737482962023795224615973864715327521792254660242864742945885409358215439918206098940357998908623970490552011582313143419422898270834252922236215069262710726539190416650849599499117510464009591296610409035133437815511686649199179088778604051967763007529852547488362343300028305045838609499817018074566257705492056098638785405058086486698997951656868094901768342081809610360894576844826846899007097525315585100542691010650168391284132792487914637332051148678580307591311086607757920501290530498222949341546515096894896284221028664587446635936090834468690293860746817061011123416702116990396429184021787830759062531885210383141990181270756695817350599081869294948304342213975661654602081227689621035203066705224329460164296380479233565595023148349955568831312701996092863866459575635545821786700648677738370849927625215190070047169560885939051846064499459726251724296975483172717110503539577488376345308589256007342033245245255690877105857693073367613893918739898043975346350557227698741776319076033852552075819311922141235422820042175469431591864624351083608206330828421933625991415372541020540948199996341563921710172659590207240217602548252027946500227159931713851464327777346379555030355857765498689566323184827211812402950799121234604068605661198306117400515261645537411753856840266707952534433634916769444671647946616297518545049839895389848064187376968996030723654996283078321716294895841270928373360624604842063328481805373261663222326455510930308017530293544881355230877078135355159692484805839873483818844514610686504788077560664230249160912337539787344865771982611244403183514286130630571367826010381656605824867275825430254035100004455248882818176182865588176128265796359593001805299422845547407826927655733872780312098890686448978476207378731007009595461704620849534407643003280276121433940970987598628834358921236270520656637688407954892013008378608262015917620324014093712929052933288605647502394561847072698901236681618836857628065441596649568669241683640096080847892428037254310927709631108697936121154887587759468353079437711487045439528664402909882642101019026874635440091766558123785892388408539295328258919071730927906011925769565608507318518076078069458198054461684473245373293330773671241579538660812665679788999785174183301822308077337516868782230887328086040063084935832772298523547241317327560407405848245439352189044802717529298114558711686459997060947080563452435443167879976844774703165335118056700151474089035113753403701200234458292288776860431716564057972058186824868882028171622098914295835550791909735367715278393367266006673176965481180346134824059687654820516513322174810897498296310463194136983367047659894998542927993017689784885451316955222469221120387848324423416941514605514562843140852277664687492660198917634245081361455226691414151441159432995088572718045144327891850385307781888494818842973821498027647847035049729846668828582296321957800838827939278645597587931262168512117530377576061401546975769228230910449218403922895972777304265877654199292783471809490401542628738206381554493614956212507511984588852255444261997316041382719332100977235104820770303394474998424726297282970280938762865455261777202679551841216135877055415148335472386915348937570711108860353953509831970656384198450324763404180628943778610306204184540879699115518286479372151842067537464231789945684222288054843219239960564748619421646115307702840796385299805778928588668456235361519655031993062301629157004189873831739905669044745109708249924803179926918101730733083541933738641386444588350425310651170582718071133607914747609315196007923404893833819801360518395884983865578949357356931356363436416277645066614210690063417863469189631726235811699105894795265698075354611493404404343119491110014281528869228245213696429848385849238645152321141233501777232393440721269308821523509616461878412176546037716192541129293294251156811375609177460285729467989976629709697739289150018239391420414287660023899095947370271712045529368250351117615370313268426138444505034435075364507618236717736204302691426603652763078516853799906460183634072288142005766440045718711609424293623112888793216658521547078630742936668754814517759279784028231274511494577441146700354856005176180987336556639260641807554611087513059013600982619016520606005891341268154492236366534829351744602844972825197665740672100410025407680102441466885856091396867319271682062564467609000304747317274314017657958864615067112143648158181005769576509944752535826139525435190725206789417960936712187069696605342152499558875144243937978934842545291639353355628131482700285140332016670168005272340968500892304385971376163767889327600208695725823554388735348396654068328879358181584296625259255489719166683342436710783352167416929546555239588756266639919638128685272455079389065173643708780683342974690209885869799085464966741608780511436960578643663449941693146263205954090884538591974785312172089665882906829418619944339340033367896096155998662358556573370862877393628168924878625946761629003296249969069367631212266272712382460427713904568750924764204306273862324616252351820040423476867128959043956213636709213825951702811121763055397215546486737138594600704966033550735718278201407744361675766517397444853762213816984961974819072376735376920063213938886023299436028007853255561954055756358546489628776493975124248184530665219808533286343685692365176486212935741570327687806026451334277544851288422264705060195449609195461534243634313603227223725377496711834243036604155944593651266221496674438723632159571105924687882333898530525087051129085354005605260803108545056561746768391909074497642764791829015548810488186907422502568226218040217572378049616035714805555223508157167707220378189260549821474153631000640396162516686678619432600298607094022977072207040609428139415091204881174342432486983903642062494013592535005256978087695961782844111874053772824789332152630222424155391527420833610569107942586614804347328093863561888349401075671562603922276841713283239787134053256114566131469836530654237357250168719360929085826173101137722076493467731825804033276303172311933814441550149514441919597102697394466772846256348906795299446590166580993604232491201747170635022567505902072520437684843962591896206107415033262475455000398584526924878211935004612701964951858940878228536816822102005700476418626574874802643570539897707275504215661938238635078676340659954296922726903657501839492006325146881282071213650500636161555377864670190796645096285648489354521282116406601219468855674730419438985670546234398908271537951700743769276095418278771094217750792053190042912264166169641161609339533291716874615860633462360373570705162851378856413510274363970153150301813802108626545475286871226963879806556337394672758761988592818811979618026071111357753760327235088679914789519017724963226516438222256384500566323448520333293717527848987622123953103890383381825147092281837024561013725811300752090700107599482185283981287121615011439236059758908782804058385771967330779046023171192192502594160363785385270219813647891225363964951878397982744676293425213403118036531104895223348264919282170527389875784989468763190613887341307911681988080481178566362993271782901861303609201208162980544331927628668077917557927837757148093879677078148923184183939763572895590293053135441664311604103988340113316847585877431643220536907055478112337994814525097098830697070603473190221792100230893387785229978709950298825289149338097835142623921447857535096462257858939701355768959941699671808697214520245901680408622290773712315337880307341426246486780778644186606893926774444923903401400229662384517839487164435176912770386776447822240489373680523911190068659895428156268412490071195443450739387735540572450688081428153430939692783549049549461730737061592685839312546630397475181359498220776557665269754432592900269466619889792566457926138470620576673506605933867584127469797903744215520779154432392283461996534135632661448072736448722214889605422861488141066873656998030231709547447359557496142479383233373260066128426761579295900690297433346231106250263990126963418241533205116908492256221123966383585981813283409874472454271405221081971459508684524865059905570850345616895743677946375288334611522542912290054939994338708766545190149898535032468163269756261330404829043385651552860151769411993253895316287901377549758957668234396766936109844936498718609174651255045296647789757171395602602172848369210391627171430735065874271253842188897726922423957198436412287220123715687225299559428783107749445524178078195496256718644226062028218128834349951962181101542384458666140922693638384058447756066783454305941697476271081834303575607851281632936260556464449575518839564153120522614428364711391490258793008288360424317878639044211491946677913670700696823834504998073338356127661739431099869264235607058734364996834481693663087909791103216997085848338864315453426459588559410950103036869920934441327257513825872807716440070012884019315045637471077498122475578034170918137574717668964204840429364071642021348938102102076980183889559927103659785893317905494920732054941780997680398185699797370978403950118605768376512182087072637518491454854356037188022413486727356167757124716763155843938616493188930077123868174190896936918507781914849818530734180570480090172026770358948968938678168186588913745591662764694074259793907947521026530737526111465865951951605814400816267293660899995065248145404014983475735215368811237917337457153411757974690765257509403756424962763472830073872644252791220674394973893404700226583855738122735680990796469502061251478751358471133952991029092160891875816306317757617838074895331453430974675909089659951445976032542999348988597778428717740983455625609065102679464742570484025379693102881517833723874984274973686987288383809242265460987174589939198519367709448846130951102140849020190691740478852535246154862043062934395897903581184693188235713421609379087164450036340368668459540129892875829821409162676128365571503033499505085040806056520802726137033642102335091962640224899921807409557999621751898159189335380148652834345890425151047020468066885966214375390681413269157348519036440113986469460112735434583339469072566812058539482527074225915876717278945319242143842093386376916008780214793670551031577486202594451672034186434006122958069432404506279173476427192373436885752983793878460996568417435548413578421021653094484334899592333725957321548299568632628042773278631980217470043488211783962468605222801449085586244652195395946329256098507172213836657068448187548169891739987479407624768240741749057631758617956515126207671579111207404967238583558779785276626948841606265518848732342010610331053855315126130963403212602011204293793370452565770579558997412523284414321227828142225402413387612425976009511268803167065521974890066613640306631315968953736688239950551164726625629533726242318737605892595850090432096614700238053327546648500774373775257155131198965376265047539789420138173058398432439954587374342211555768284684175033616090137708039918431173254946225089061031057526227855744389632106079152783733737787238765577724454317836259875497505015444128538013960002276663819118529887682119911729951070572860926325767780874200396976020332472699837737138270616835670020270813056772189613828495735963349242825120038555309642268702284054351619380652744548288255463481082957959792375777888934375609736793497842148569588818443047016037111668106265122683822764600451842943326525862219110153892221739026758653500779843508000705614713848677205621595236935347435225636764427820538641741730637056702711448133370474923113196414158249803328138402314563551800838570217288054898643222868169583777809226096844670966258678685132703679860126958325087169948313022152468694343797060313974867836643882950794693380833453065622347714881598946422816733809685859699785349780782114643817222045231506620558887054902458830710333098109759283887209758826925580571011491951380697520313956747177884998700472347295850643694542462832376656627328252943500816520219563405225841387092939617771574676583054040828043204579660385393726259426096268421178233292533873079695027526398600840150055607200788162029927202492219647014636819764067769618863071002651008398592542267807224777225137339002318705272058494013035315637315681682327473138471511332095533343654017655314140819853890455012569504137778176803568375479866262606352371416968024820543410154664021608578333846711783383658101487393235672208640805492466727361684759167974516900306560790312757325954144491647139570283441995947878215655031099920531514099457797264226853808877450635527974396714524592385334859528539614789223343253634341981987669504956829239339911686758869601060719068416779585777243966155474756374043673968606075492504741572083230975441826466465925937049224242221983472031691675373669785709757509596464245348650795900984072384085729131210157656158336951704223764570599315887406068845615993167092389530451605666897321133812521549654664927129357338070699259382707487064067498318147534186713399050806231506401086014529746299724590168377466934269544863461585329944701333153389735416682589298401103264398760685817972361890478835526291282700949016167063956418731226971312042398547524643337757841931457494308429664398961725052158597555547999483366168979236937720229268794887816901981777923784353561500473548474479082360517825844669001192019548771274450438282729559904368518842774140515236715295455784742731005866027057749163928461957550545601605250477646960235288542364402666760737767720493284732685837224753599309114646524588305607048429544994748246807950390950220998222760635585489664028272625650002887042529282543171343471496872284208916144916647701595768976017903390776390350532010454319331183850914837551579594075875275067575550432927162381293306603163589220408556838108452457701418771451192430073534045191269651493670152006666012421832510881914434721346396235571065908913572300936571977878862435717837048585328085115189001666547721763432284369082030419501224035414111705589561708882233906041681234275412585133942303101887696559823859400149613466475651591086607008852963213378888739288414133640562591915478525873396268069336473255443335844402409349802492473320981529671996881638251367000929329233330405800415554476989228962840080808755895097119374676618284350767981647362061119661882021624423891956203894367374307776050441079996659453915446442051502049433347097506306215874098779481127888578216731893732720045169988489642671786754089399588832065065240897188082392690417137019350339745562898588810761644640255919637248977171819668502126992760786088996253885036591995650288680563329627256033106331721713984412940263936942888407640365889047908395299420045213681204261349124804120085742167160104526034569720783022302297822492248198530880908647085573627995641870988790942420497914904584901467375515634440030346302251193103853498230278922631160072950787498349064601891766948912027501085920096544095228498507150376964896001391593963796900578424988051116830520491427071854271089982685842144616486545351059004650400954330735212069741289562663990890667030054909851895335506880743264946376588151714673520264894418926163841824624927863768542098236045031368598766815017889361802341523634315818937564070810527262591668909459573035420620102602209754890688733903494383078981933499735745889671058624360841328539919392177531655644099988257211496534645613520955277003903821714537228039443359930790107838983281515226005006772274051896094645159540770580962393175038721334452122454926140072910141006461855702536963790582949843280507000516226230885653891407135019864780541233132684695516901033433090145002077548583097055834713942556701406329543768083348075588141079542983916444246770298356606064195985888213875355034567081186844570720358112986833449497684249954981181216160151950627233553083253567564706319170417690661257347182890799039893287311950959344888569284574036172661892265045736983287817006456447988496145331840493890869678715922896114959562756215633431184023836490349398751634545956823551292196851738921521370507417466411638891224733322179142918579652668253392485846512863584868041937028399213195434487994269610110620787257163699913593810326970193988346978995202530929230988205281099925488273146357056904818498430573849202230472624062972884009252012497053754322264706260976931527959482034146854169390220245057532706509461778983667911480884071584649016941419191070985774800694617688991076633753641051770566645247606028491359186462315530881532995163711601967164980508215650104942140785447668530492622922909517485216597499011206306292765719894435429778168442179087848446694451556867440092185356115902363742449584108503360823724144421006636451145803504139348209151164650078248946921749346151389390162425045567959558161808942121942775234735357641155659111295953945918737067894895355014364834906062010182907363031686075502314973489526574715806608863614890610440514258876300191892135459346661085601632610763230974699500523789259703143667938522970268498495958831625198103789265553041378725158225484886886655467576312530115855836912675643287825327718749315929860574661500391211262383089131036843943982241368243323369387862602163108016907657160831248187653242978191189837200739255309633608993816141279247639718502326544008601575878398143484502603714512022744791659644935487005858254077438172070833139692351654426173983945326212091195220751602863284651118659882363621260597844681771148105356237800239477688467616205062299310135011738020979876161443741195052854163019761171423848986592231705696861147045050863731100069384978033186152311398663139489651940808265476801039969586184463264061868898317640620893911311072427882167351967615821694923644116508795824271819465031777145801787685844968821189772558218925778381612132712752410372910942452316923930542193037566239273065412923899845138371126364933875494064455365265493322143855838309268254336245919875293428631228997450582617663306211854295850730563358277750024892574505973874977943775950336527329638862326998060576506697995782194042430806665882979356226099489578169337914697361416764774325232266021627877481213981032874628559839299649436225090235762238539210746016483183199948468666301138390667093546351834389043823563727916524214064510488648235523575189288132548489833194362509989568450817406807539615009149738109678053918588459285767556557321580951913283957899274776304731507738492046897951389293677569863079046894484117190523498536605704894229127450598144270035815896172091237092272854106247600558230401739802051909495011410880499049957926118683800285137565194029049898319652458123387262207582762656389877152512570517586403819548153432086581541842187728458961447866582469505395269749100844467417723793842249946805985783990416705396719561752284360261959517904768465577493381662740648905944749328999884797823173097887993350001082304193187996491012121670622375157532458583916547394651030160845037894382609865010451612196050447886409140243956349110870032905284333968109660373116696159726245264015923203268427522381833116245245156448943792629145848643317108007646041102828706657120301350736462612142194532836665827956307474074028602948444211713664266215100408786643717018884687715697782468433821451869552485411291627986648768092008211683800658246385363302454202066999169910596047454514694471674025343617890352230400613842813381529159506380961899387159532300101674950228693539261324652722532295387615415568220917318494852409858307939651810884771353589590775273156836651061745791159492235759157317439048691595726863009092203856983018877975982966776996753724278444867178405592084971336766387199834186651350490808599009196509427951033090580784119009396517680597000152195192239709722749502249011588642083290996566857103646195618676816400192475071032495508151980336439713551775067161747504537097902083400479084067407060739713406812907267014277766927826854749941150848423908300195306872115002078034697361248629481927403932056834687187710932532037134257909153940682923634585832809982491603189246584161830403313695519572111345568278975912661382564353408454561675961925811064399963517749083111488793232731038365950660574784288269360392790527299905329349309560255114711498738491345302286288037427741854946179125466907932045364706760606376067112289938155401453735995447538431288170441335937293060154580225828561788234213809164275261015401527902725123675324954530987484946603251197223549924053685454852775328214476427275008099274007811667452395083736306423390902284184319699700772439970442032274187697996025258873857033192856761229404268589287632504096141453006035541273667927217302959884394602169096349723950999202884428697934303826127401544943690735569496668909674486948503063144244220503632774818842048691959172298372117772998129904900021302596379987795097463345721505462010721009469706904689504542787954932081953335508875683174410157588308259677274819084882400462225356520381305530162643901743051958819339607751876633080704546797262687673016748324269178443195918961377235625439503479970136508905325007754690127530557475598653155983676266621147562303497682711884800608883730084363602478708170656627048479032111626702279147637045024780357409041603260987085919443678680218752657378113912679768334259556886127814965276318990775976810458071300747618917473192694928726105128431957333146179441551699854045334339260638922012761640454438556129680961881044316000817691392408095489702254599968930855993223564536530292857791012449487349179235948624552467762600661907797763143277903813732837513781002145285077149879698694949019055791531361748676856049572471510870285854072880900988777122453103988041833312693049233793042873700816296502083655622827972950364930877119983449998621456320635807756701465656875803079108191177656867010116328866595356929427383207586562944543483608405757343001080220633508488583614416211796705339749160205317502695267707292699395766400873246226448542546821785998391821619768462043389688501719561789597795601357105758979102949138703975720844050914260263944490317316362516525353646796139291796501582435522682760586294263723953012550452893770702261351040864201417526537588552184865980981314784564298999874659230063630875937099298005305860621333936581864498859402061292187555380636402159801280080899084272997724169545275102063225894962581433390224371018423931123106009766436644386019907659830067258144515575878793634121035886922610558301577691297025083994968723406725889001384913445211549435475752835533951721339956027693869829506006694736892335024535660128217420813665587970641155312561204631322655864776363844076943592658637692551398543392503812530957099021979171510891186770740706184650791009854012237275339047304407633716269344344219548502648991153613751542324148692550808082129025466839091265579941822918168623366719104089328722288635633561999126315865941466719721825759591787506798318446309133077078322741713843146490601363269563443229819244857002298063479049355141867546300228095979771816954631495395037612194159421611903047675063214295136929805034111644700581838711433106548223434692813148978335504608196466599456577050981404959398889745827295195964734362085212955440992113044486605943571667563880930277820492737164491636991367463255770915476702827845465694229543949992646223398456077670311592451031373937177349560524049693561066005978493418423075926723667085266991208482079058041327772120954260031023161933956282347074734007358923134876988142129220809755927616406577087929272848849477016268758106877180931757319646159006130405000697913662811335863330759919136603385698827371839406433002164596486001640714366081043588030139482425750280288965021837588204898775336417013744306021901062124694867789111789954817077999736344885488242353763505443735308107923134628101965439901025056126165863805985755097464460882962820492889880765482934755195752654637367887321614571917499607603060416977981443789978735012090159470420701177732505964144606493578556175155721558835095572696356366148013089527077213376029328688872852204401539866965244569449331587514912314437765477455251250535214929516045332911927556362713278137202674895968918826355112561035822713104789836306016219082623807340067755451472627320370894786927351033796625015214161067944866170932678401674912726114354328398651623068058809741963530168310866709837805808342763725624396942111714118688149572369386646517033456145267596780749769927528022857731232303351468443840702443576333007242791278480682407052329309257210268979473861177739916496835289655305981723129470339467417087089947035391472278250226592935663308370067651934024135606426834931188154672180763404541602491182485170878551137311901976187556787785412610945021290922728460870828062761284779835572060770419549261280502913755652161965436289628286003294083464215781045176928585021744249093211816792837541608737653870447591081992849178753109485036874035366267091704925185859074009996837108532255556994179464622439769015429805101961689998829565801400204496725616968794545256272765054758750842206112922503540727128304694987573747456247299917848600949710034622278450546009288230674084472623094470134223503349288491626501553429471072260340688447173094235703621350850915036421491180567133503214896400952972188744992500803202782999858673546747269060362969541924086063688111434578535104530841223966177464481712488597765942656936761986909269006826420465754623229531914607688869230802486435816568071220316737645202701025619049589814569097997143004826513846317004884378243792001714753927740829835642816175012213189317418146067141305801639824730091102077569130487009459229526117786239507447541677298588344621218460530243460094147532604930401958500510424245055631479167975209871037417489199374309240036101923059226733170329556016172371458274145418592094747184568663482890440470920414416215123736840970514295510343227494336959957008411433010012105128724616996060067700647768609369859412049242522313858913007696763747544897511958576269605549110811678761261324289822679859973870492243311333094807023171137169145601531704527338611687253251537484730671115463305403573801543348210711709066744152597695719636194100774324648958102773387410185872141732753559358069023653121532222625519425005279141907667629403614610123226852675708418384398730875247195340106971172353276848914762132921059806544750657301624352808359553680084096708236528623035359864409463669417997632820406709766234450600627076176274945957305586317412634959663436386079439027214967374031880381911558892349769126696196137472940560801877909105326056265211424422939729052658766162394655483968163216491892191694970519002197780899010803441653234779057444743304993212950997632434266916176282055543653269369422679289576870518363168537306663935253599213870864377400715336056767607979294771076042914390880443284555431941166142878410907072224073740961935699817713476358477554882924883550619501109708008419837587776247898863147747271077169632548522470823424827663809930911282645989613364344494494569132642563038709241944374701468102856777574000226774255232070016167062617037732589451385047646494501442402841274501668277774123441348091935142593303915288384920858469829319794993698421418046059292125846673358991921272147686849386912993458689050887032876010174944993416247668554816091727300830525930598186363550564670978230640384953455352820177733369364068832384997553746587328004717137447643090937008682141282031599049726664211820682436756833664496781834823376078147247940834716260367549741149161350700783188123383604225144664977659033017238019244222781941212392736033639374106229944427683071395388425063138070683940377380960068317564177096863075496587744043248186005216335499388038384569631911054387675943992457018966259689828145897123095979630191993985452725651275909059181200195969798186822822279320887558280352082314685730593010395429519513954050715332129365666845375537947966632838066989513013672439762798983405126042848895736833124272873484376769641414519058986497094207927867418644089744799058981603093115372642007977568408073057599032188142240366037705870073894358329562668899064123945933726472588324753530034144526224562748599745497146729249150341568678110409754629303216606246838268937069310515909773791011861095827617281154636006056561715889883327184336114199179477374310651852541092414615664125366579142199955146584044186828364610384210977031628797404432940627271233856247691184883343836333774080790781383642894468695915608913369113931245343421735390464388928941034028872569910433719837882934883593165051486656343254435504033355339779757453868714948536579116152947945549484875756114406933504838020270741952017623587076844751418965967353626429616734977789293309411863409144197282827217566889557961074587863045250946751514891227139500070804754314732195617682522939536658553421064123881466118245828109962316807988929719742287488466020726401361298989660179856392970834707733741623969554952696800058877103783301313557026927205451895200866018670908300074614530202448314910504218774619326937053965727938339628125521236373611057315129144314095741150448260882889846868046084800818822328846326717148144164324274512404263025618420494130120016415360166496027135600286167764847669175416025841497193604754874214760216503573700215782690347100532463074285862724823870819719220546548667297922436353083973550315007429932462304931310806629588399906884917538295071408112420806484174147867777886139237883656197953785905203836660235897168756314755431141656840912145676769397062478131135210943043699944589341315970772109776790353380324858833728038757652981641307868109423249552814607756823203210646876548309902946257582453686086899405304197783423407898651344179352518962759497489068919842746474640729444267013070602646697424430053352565586270235362078483175562586753022993182899588381167253155335992135645194379837370783260686183550717103742930093783860967223858156374931744534128501464229679517323112301131962917015693046872505370050850309552724537207834608745545335723266267257628734225115477807724414025285783592231672042580109545015361170374596125620538227674394371078599957469589430027847751239693092383815503684737891849581176279785751984853679447779820619568261872024214222131840205073317873690359109414543431056258135800359239421769211472315191334671331528285585827584443962761965521455765092128997224700005710410598054362483534934264712585592186462781296730454650275355290111193610478197015172265593588994105961348059351811516429556419615411009830310766571195276308060998292034834208437468267455680135063972813297656844775286636367016247855321453812549255927562437759458739514860139342549456472585045640751583477429907761607577587534014573845762457222379449981540322920476473852978336705483344289436705179544422971661692140072504153880281757965782322483125858104141827108879400756512304450143932927415780003487899714147338415848948372992912031824118331512770798350823007764036193040706531472456287925259623732434747234934160459077984209504070813459432152720692219326846010176499162038228285556011303728545747357309013958917190041407802185199564658257461954727336253491371426299336970665919786474378226125674988217095730214331648631952725727161554504908164884791718724717164429097850899381115995724942983349019278649594391353154496974649163914126438523006275881366606123745289883969463441614999461516068471101458909514304992907520933959709871919059256079486838753356361749196959196209835733637897195449214103978169771076557569557072197364587397987831592186015191523887429325337778871907280871363902510671782470525742036660359616868959170702124010373099810592218045550543381134947171148226306820567503373180149107911868416762320207875174544537814765451724561928714833779112966409708115093569283006457912988848234138270754839049062592722320349830575816703079747948742824579074329083775137538282296727009619782278099360696927303257147425642431342201137821048326261612154273984763098732605910226048834824722125619904739928110502538124884870900390336429832632673429011132867345472824029920899272230842918000711389190781352253623192684244851848966096500096077253411966507809644027618197038313943383092711568501945384409639794650049910035752065564373259374463873771864154864226308696540400611466061719933835750088071656039747483377967278132001545186072300826763986495140606581361354817036109936131000163007572452556116661107975854527567669938981996611067901184223164628874632738763095784216428491196541509804833650409191260908423898855336725024887611916809694915605623246593728667533632680455072043627993794416892569460691906998528762329393488429472425347734039775849733841168381120596428422848309533189102308168572962613293782744130534579026716504991293022849660872817202178984901123826366996510747216597491662932294835204210550324744894637952001324707951435708935348054250672470997452973017525762298829504659648706554412479897252600772064362989786039370547540879388984863357637558695695608355491303043793905870420536272869108876027718820439343311374255363863410576339043839895271604419452576362457002176896639434571471430813782068620110465080668157247004738571008507278622945718348117004989179592587427581116525877402555982219288616083823468349505645973962576127174052041293895750060096724139402505136805721650995581796044042222042319865937471007305349734664256891263949037900198920409098762790584386573534556253705685986746776811829123552478952260635937652128991273629756149883324801980976697432028310507675118438584602010605572871521365980708833969885812906818019301386041561959812561430329221895074704210036238284880551020806523912485749221098837173474307769198561269453647085522023214870750442453218744030990696939150734190217499701101156398040715062128536959283646757323617743667735058273296418183660038972452156854686087943463910935513648597339659029704868815444703365935110278433728558879360904176276878119545463794935278742542913438832840402153480344902070290271955733302324428167879823250030931776992147319021220167490313084930732701050309484484229437010431002268407428080572246391922359420144071575838239560479603821899133508520463643771281165134012148422897959933086323341256152291192211255126127956790547037274888149808982803346698320221538718877141378768740989267642934204956651288533705697426396538346610011328832685646389737644857095603243387769959436690387595922639257791864675069297339957507913114010501324182933044826319240102189114617989179471593088879260453875582594561851691497885382932963394484138709185159813576218914306846132231223581670914855869585546612471385152086718976451564162078621451476350095308892149442698121091324909412111341037885612958682450218043917230740352381930780980065443621650877037558204746651824799451681132857654660420093216561256823210589582020954635121347054177186337938232834890292786595096225850832147610118798378595555107907032581606051258419050396461118452343510178509478394424774798144208631788136852667037239202832495451800836481857979759704991409017541288874880387349667367717126450650485150263622155121746493965267311264357245078302445960755765118082243343326240438922649957809203013442344963259152405651409220373476130613150563233269299316312060898883670365427249432995760015947455951945716784266148014233220125706683519575064351433782421690413979057382059843626099192257567926801450511485758030515716049208275797746869427696435904697264051100778373041133646673315254248387424512973667601703518309042980845703993363938231968131162190265334797530493634087630385864068976845025738663563080788162626859917598330210622988941627409190655820518104323186751997669817276691737013105986304706054531458044045002150269078158624131395347808821225220430062188841674379326383049221356732037954980198673188885298561238225378453204824291439427105328824058041750306136665109586840609322296500301013353871886880691093458796808519637908813161465107283546196845390123134680623072692765582733976757984695784501823944584573318845147607160230988578443836059571995889144025890744682828810277954986660127201633117365842449021795846082422424127594758803373607918842804077368417479607012128726046708573132221366995077024308544684816618559545476968975787201556466741350975023215773919805504560954733002364665480860191669462612015584398849780870644117653057819155679327681377331947818607187523877177165809167142245017484303238703298910034646021907332375892465931142426401294224018014940121740842915601744747435622219815893041797979395611936610777584749441388593905250687677006213379221419202565891413931478918372736263302396361283978792755083679548943932735135047817257003758611352483292306465686099291380081772502664556810305271871730568792112960989131542215845602609682027940093868668119755429319907243052591661724244163784611896530182092939026414460509296408545017179376982562783449704387820725704799500746603353563453051417098602234410412336735835685972461603705878674379122957434771811873080367424745870679693853218282429912429410776219618800389725122283854577657770856135362129352931843058620397502820818667034443230988003857675853225406374279295657811526693682505872874893761876908983808592403637323902287184664877052381943619235088100779856487377189397236024118774209016563640836401365528641399592785011760222209291518225675925930388651594040280918936315369972747310270534847033784282003183448026641512777927244870651663689130740150733466625195401452786811763692373149470394352425901020773388419533761257727065309508350234295637745284068162898419232766803701960119723394599694400416796878605712655771040056060698552781485588473459362767753574077031534632062446307637818274769502858952814392229364022523279338129045461188211235375449688307710230599025904509985515533294803694906477471733122052997894914141677830178702606740970205250354078525090163632135591018619479930019555473788637718056722324767248678228441589435730880230851650074794900839332120554707166253716499840284241269250527382493652121276292522650408768690176599763569805987975706011831129354877263119396412449585348270552345821466270076578973160014630452312123541121987421298174306227885830759847985012691285184468764332441889591416216134908021890992401325786919812801872829095015024460055898340976540402871413127470650445276658863735460039715780309880515965267672796444535269031998939259195578052245769867201695966116422792267887380139304309808860783917487756365733388442102223670596033483790318213870745584040422770463865470187163193704478886290864681857692320816175331926673617250659654863697458957165832590750841989201420207418757209756404346348971600008837146618675913042972965464716585231338508056055801925085804219245641257475102983396790562139005420202925177080300848115418140079752255035065937146805668104091077487086492415374102753784021181795297613215251270464640266962925587699819828014736501933782704581734641077509667919603587950772291982414916560447664541315351296302489901362187037363051322759458191257680333626604881506319100520307432573657233705588843033224557809560139670901758812790305520152813670564598147956619883610927954245567450288081716726157922879489021195717692502484419076690279400318574734773813804479937320560935848621895399905695904651503561175070319637057837515428136543976650501370942557006131807879443349795634392504675919611042179834941454685850317649036426132447194613790370393301340230716377460215470158453734806545434367667885837742649565906660297160446623422276309966566184728385921828513443576466962980239244013096485434783195791221460840075275795100818140515466588894015967896358371033672570595821436309581953615709272112354227174500045695807226637908184023761760381636307844465469634799043054386291164953164946260437154921291450704521420127869612917992636418936587252170327041333554403902539288260732684009661060507078271702377316366479769652717741285165127410954148527214241593178526879272826060788868949341657949967038286437367191907801689904169649019555219656859595390702378264744041444653540233959662457132746810696062207343613760678734784853743258268823080330275087482755145055645783689935903332433037499362453930053553061076331147795198981887767495175494320167288967145028784393533977102601300514752223394181555596168942876465802464597144119679989235492539873913044337902552568778354125181638153914573076904972740443494697714660874747644394905628655864622229551941632569430719793627726666835546884328675117635922884873687185995716238483078606891296787706190688160474746154591564631298706802711490339451820182235374203328605644779047187762341820718731205585990234722977992203918256167667174769684392392268748950138108666879714173177753648325362583514842673988165294185675221787340866598083500198435042616013731929397785841884617430301351747830955754934518694273428987382305054374260475525271117435933617173836616329877710617646622450838630590078746738803449245762822565578472982192467741203389475561546886779638619267429365495791633660440551239506291249236043541309443319592715565984492736847804792541579545621070451761270277556819032198690107498312723458217575219012233012687295585612083623487401064011330812425155350354565829506339040074033820316545256347168263034876705568271236842409646493434235262091992874325904339280069213273655964338488430603389249315565348484397845511344423120585757694722982647845714340619968864097253310770777217032094953205454983650408199219599536389415221882111070876207724337158679113524125285298694470554952467088205779659674256044530322946673454685077557074483368909349255254275444848300040530705309515655905167227458423852295253235642344293662949240472170327667381425665392361849644413422178132746440417205855490214832310474319082613064559989294340818793680067938990228601865639161200215091482306549226119012412365736723113922747063988609000598247321350588214233921174931895847771504676373884254843434919478990302732873358265499444259098983887814994298759650570185959341996630576717020134853433094417109531388043837316836529668627665512782334595993029461407026595671303796934780502988393509531431777751943792973362599068276084686878220698923140951735957979040671870959965315453437472410834674987355282904628473590461148480173316255313183033147270469305387859646975190141935313467180655476310682745429542819595855187552526387786709958233893729026166354512028522151456626884878914479605894786595814176048682653401944059667882983353925656655008526559913037731077193114947666049882818261291435150652595476819465005994161481979740763763067223265478635078734060012401977486109063551057560069297384982578811995073696951202244565703059208400035224476626004548503559362612349954551312781715433991999441351902663866447352564090879949469589563453454446763699357733627775862174011417465028586258194445885922055798076151612645167405141374790451231854345783273205418560758885117238336566624175281790485592948398789042738289638113714703670659166266427436735447657366562049404487376441781840827085461759034522253992739584710490701565328096297912275183133363802652056382601404597767843562818555132700212098250570833422116205464681025465853498035305690936455567290291207471200755632951003726676989125700710078808297549764485030323515045453211165590724787959639791025811025616910516408094129220793856325472445133207784688147256169594016328555664965948453446900650093843791667769284132993891270812817179641981187931794481163258170157603777825804483857449182942880784635517401529555116063342527248771543916583959816581460431496039149479638453509196835229416107589934724481866088095693913241555356707287831178666304974618184668952038815196255366264817878431625304325716843076213202403885698024648208988706189626640344457779382473468333337170759879537569904439955357132304487470571229284026473871298073085989578834347804924820397185303874982784945626027652360234867248108690241106761101824823119057169823584670571176071278412758698643281428524654941839827208326709753105634324991294625320288295127973837797049761350770565939961903944368700786613839411340232061269017318717488767846090851149384773834297885600337573466309413849402853395568187864183743228223996839748831764720276268269231738712233921512815253938852319532963244340116569268158958638266209110432623823896918779966967826225439171590101119418194754395903902568119751786569677228179144174382475777158005333219980608214585928480560333047834260969866910163264668812045705338149950836579408965174025285760354001504525941198977476970919266828045984405110625989157888755779129176989585243414772889181227244104780056556616877515665131870525269171607829912458992390710174507684375467657080826230841688371213158646916644121937812808679679312944802239523424172660996914779353883607217219346185646935524906748555708196928161683467445517726337879975684588728639193137029495695231865168633382180674363617922147576959115670082536979963371663528928073507742238245698780387373460105314886950623462509013748611032161778221783411527982250495186135276649865457359468556647409840584284779744292138517592856704980296695789145184876494101045454874837802999623309384102917502035338626633697344624248701420871646518669510683118779363405304057406287682831734961921464341813594011315627049896803805935127554645759762204952643547709268694431858694849980383169431846442162944694635919492117035136175377296667200115494148149391783859018187191348683660948526814829159476047047913116243317198941001330425155254114482799966000526136554255181483759617696835589112987379470831741517924967055240166808767539873369560667504055759278777409748371396413415183881351051768054149863863388612152800620797958919740265127787906376050528139670336324233264617396927820460633718241165687661558189092512742633249897501217096069176554765779405246061497386688962723452075961094909210243144128250750293744003193347381300780720585309623411755915286680782935943187035350210771028063587753818408813653252186714332771715010091386276184555663030026450481180375119730340921697449801881367503027051235609721162384538297203440908273423007373457896827421059799355205660546124998094958518548431702609412162889821378736993827562680395507176747081524158820275223503699632528607283559843095173354223791098749923406974612560583843513526026903495852270451159011974756173190249231132619261822578588379597139847239597674924294708063569782867573603472670714736711146379133602943403735505783670868322042202247870860676807368144069594792475114844603925901143973948438505753038062804700872197542105389657496971901758028979193221839397420487527966284535410265774040881696012066168857460893579443521976169121192248174527629928626000537841914729320857078323404773874129364865554200593528582929140208543234376164293945680445671519803710582528033142716703499718066969881848020186044161670732477522032470412972216488941801790163119719600275416690896957785906421196455096331002763428736396470145102882832422438650161545569936830302961298867331753607949393555847389992564118026853839966530933371466072528338986676905534493602158883854468731223862449977613117047319827598868280681873846716999572053732501805504646718028177434428190368081056206219766469831670339604416710892793109827534950588996347658479445143319657304320492236040692048323175004126667368461505706725646531189797551060747778827740442573981620527659006540998978717923038798186067788144257627503265704376557586051271363768422084079259518110083290271916816408723331938689095310254060839720679728965134616610784806284508026181693373647489806913158806006955742338191658755563728319495153808226358203536028904652823817833933721456238395614499061691661315486071080725132704354922070371809491324566411122228688390732894652413095364265349878455749112586028518638702684019000261105305628036406999809323222361269726826866081384080446846902347313456317653850460523936171798830231763382198234253696878576085190953233445273588466149464262737775429243864510610943097648675094458435417120127917899148619938986249444563169651490521792609291804546815175884941880456201445520959938287055704441950082403271670307311761959313601247104135271663332323392894250866244889490466946077822501968802105686502506100815306908650897187380082647901748195001342818888115834672464226587870670713275359031749347090890704367525090862081045925240979259665031896930044600260289044534704732343886268046993484252088726529375297748317880457632830991430264258461554696242566603283584121899769068671941338663073722374830084643245397475633387914351554384317388019210348866752331684872044627798908048667718680549159587966792230101072184844786734055574407822772925210638399303715593495158839994409721798804751357198695893717852104859888979284365227788950895870222265469365746376224380599149533930135655780031706978795261565086842866950677856997926862854945750093839480649155659139452679908188075748515360577089864696862377380758999225007340628360174377744571758099915620259316039474367692722552641393117500168892714407036217067917208572948906757503000901243282608234935183083495444601857715677727319892041427653903184270403625025465562545625845060713325072187366153743443016715754774558973059680090697213790463648042175322280299232941191858059202684510590619411713078612992999662388201285125639556124151854839149477143065489823007890487076543617401276760062349140996391906380392213007196802855050958689410346870026381312491751587041356453006253392797491369706101763069609334174596444432415486426279612844281158478281017921467142576533138250410678305189745776341844466152114201711979490325028885743518216425343976924556776171988529566186192028603433180349234284486577961371442827334702023161720616151198701638462055910431819116387849583771326858425588074578315157574148226635540385233535115048397502108751501892146799440099829499315862317695809439961922684782046751196101084869058261081379328388255367268782734448118688699287540462906817380190695536687507388152201757595232793369101181569800980409271118208646578440674720565870558290662037189234863933332083524836719940290332372871485443699864453480435472242625891217017252483997866324157621321062954163480315231154094545159749614993877297141457755619555211622442086012617353489939674708781826093203531076721473716387159581349282447560705608621419624267169780956620261131337084504720955658295604373792969148401148709953472394254429481743781976189649114088943295584925252041013029109978947946371989336329490024261156030945779192562824631066018836306186564188184785450952085391477176188403945450284284784324469679055734845915074235464556789024132684572701005184867331184235705006420677802426417592724170844819658396355793688952698206774126743838631466729155014268172759205666726051476186404187513210526997459319210278446837767693851627462383563945934477837988059434074292807971253694419215523641451593102283965910259874441365800522264172879689554363182962625630523225810256353774564874898980742971442747670637385937210861027016841101565244442535948334380584529970565594658616774218829785723719024417850035455716301176068283928559932424700745120991770072213576751590084220467608929781691665316015438141115799416533405062551087504181949266326093493254195348153787667621043859659593031510370936973683869931945971148836203815456398359951695401775885427598877996078902213832045999891798946857121209549809952981469879060057617534022656747183749469684168260351783956180154347115807468567369783713561014752624560856737046808623972575483839312123152710673013125401891731987843976050501892699323264884846250727194852011972589144722903149947910002882326634794152628737314709877547795874065279232777126192820119129997033393902303043465595674295526925506855743483124294197752853461971722411089689208928701760143786528413997258591114624701940790659055557802328866752132020384095543955150424304521253425307075284910281280548448806747846843133507102932855186494003802747720373863780485492075685114084144737053013626125666939137323987811542730029939212806860234333748034095128738673679691402948071317218164471653217588398157710108882352375796014739045510816509888465620694102416896591230344206479042559812968030985724920858710243608189784439075998222427179086939998142422289434766183666729790221043097497145846508927147749947093222997180133976962291463529712868633905389365226834283127119289829281348262972977781865871935906594539597892996277635128248999083206768396952876498482939572974470034709091469987411123038009068125103386974263479638101177935304936766332618627607575091366086328483912528883336333693536427121826776273243667877911354256244370217965498278576471080015475074553260101194598857353252179749482524970355737702454477030942463674504335667677306364820670447878314248980698872766277628401656945411176865628963299285331064589580600333995078585515340795859433027358262962101697280905771108232277028803549419014468106882838315415671409055936898965116393608229257361884886570495298552909712317395241018062121926301770682740379043303119953264108314376845290402838173599338699550729227108423977434177986395531433497802615056080336048452843006251787396040797121824843564085215752162774195525251110213360815974921801551951382227932362032431658879546531619097779758703519673190386227971277130824668086142562848881070116514982512091540917764440910431116391099225264674755440493229310000147269783531033808764164942465644572377983097707200438591891155794321824429735390092325404795772404293618592786495872819126698918800160806388813406541175241199986043720461583814646171370925056909098633623406824520205505931739012544041596675680899474965527590834671985246156394750753041519150827555048988090397444724125163119645236075014329637573372913718178914952484813573202191721453316509490697630935038274414940676564120269924670413510786234438153087752789575026011115213902264611591926037247686832793872717655263705527669509636537291162582330683921483029832651026468034138848125916569234212772887028587645000964256085063950007292016102715901403420756251413642182017679731420240052408041838608312450996217718044434741850677574136492376480017812721131784955895478919633488208028122892579347228106194020688434246906782988009690769858458270005439903040874678327054636179997848424733584325634011909958488062682477733744568362123098594874038359145952171512235057041627660111317118702717489728792197421061513360902233088638441794239377081927696993545266977219999339186875501231899120432841761746852256111185093034289519303501546120850305158553604977325738212447199804255896204107427738088762606953875071515903570052172621348456030019402743489934666561725836318426976402448391708944438969841342078386732529067478548086511721988841809006269852030520695611471432539798442556041467328762751817017777043884470215746704585316214032452534046623107022451841264703761016925829098089686393842121866353158142297728113290180618567221671069029954717231279493510330646758037790203365915135600547457588523247935087580214629116885642421708667118474601065748936933131597098246513322923838727672006325766425806895084379483008102201848692804515286880854059004515666472089886563402207392434581256809475007078745831020547486514364143861578374406666643905775026400684972957119229205345978632037656580885651898201592551754664557262305237062840221267605597611648503282559743856700701558918344593765454267495239568078068302798526929011773450566561219392426810180091836713278343900629409778982222700068701143147413661995225822043960407004347218831974174236636176376020117960031751597475565514547179318419855692724822106300517449107381967793523987134944573791632916248481455178510105184135880892704035417181037421736446965583917145235945815292522622513273571777069726152655301501333150354760768168786885506779746308281786227797758193552933067138649281563453887412944903348472494484054295369098982125594013071780321944309448388052854046847084709215989673345721915451131375074219914718302602466226612981138769796959647435201768977572631669764697306094585235447399432625898113784502850187049406910491118085150260085993330581417644187081290528701582017556512426650110289518366115985534081174799109194814223932883558414016967521826423667917505609912133859013493097961770222260010231247313676579860036949353230019590909051795334260114802375474025879648777639564730251769022543028104517659633191332715051872750193622866033334979911050309871570575002948186750352904311936983088544388852777598539940787035789074926742864755260431569027085188669186177158549423754063560875670197867860116735107553573479912461660487352135112112944848952146231158799909820132224813959910962097174162438191170527231170346739731928288269586215791955849537535505712722495134645636651686893763896361543937839690829110809499062635647601942922256398355767050997893902444887393404801119868885661651076129853230164347685565603039125800085588819953201642427438331185103677516458408075100915632824534747479032263917480001911200749770329144823004919719336722061363211950992358709225611373144856375275621902315051336204577179481115518071143002028775876586783568680413976007470495166546517036876148610787252107273459041281675856975108767309240766733940547477119020796955461614197810895780436237125393071395697843750298365309101067172409242176915569458920119525040440428489257915022435727685665457613170084679389962442132822238696837835379047342224301706294982494103195925934285688279253392730754145341199014435872260365991958981840168669662087295703497349660772778109867719275849438838727151871963961822783705105989287204535675075711597955374936804401771002751092062362221103582026437578234252250145254008698186986480034724586870569505506533460814390575165612483521681865449855587164352214538876508072220552711470341281962695106898389663511559704115513628327184355803500419757764672355700636572540783952863430032779119389219276446594480944461889953564325829625153775007361120862527240231897502995475200500931277379618223043062372701968144963965318784561761567845026038750114372578446741775196519875233737696022462717779799918714465308957302871760830263599218559879176741894680082815986477444739906736884397817748238259508877603454653658329274192432209253688914972234489416865893042092772566128639441143487553657254906702680122971198734371138139270861784871395908502923730381751052985661874987878501629970619225239970371525038814187096350235578631114635971765510235368259202419979190035617219824309256771113418347261441479660320191973691337695024198644112646727235465996499509394570026584419178669913042194887257579907278560820418834470885108734768497119441209750796381507806432674597581234786325700466112526558961365463494849716714921906616421675135669466076661075644572946760105037114240507354782238700097983265886379487421979699495439584176873323708465956536057800909360871962934013522919211078590609238859372165660552999375069715098725742331705638763985652020960258431443633535457587274487860477782200114079667252022637992759920847937318050183975769561402310392204710175097628349742304621628712234992730257131929753333283526671413878102481206515909233710304960120074748812216013969480067698691920621329104808501592720474921640888809004300530223015011002073473001530545877310290786510617575330516757758788219441078482560676426948026291752285727727942845578137420515558646646740624990387482070817147956917298485038364329185017353706740227356180443012511019066246974550406266476957983887620602360819345970678562894138586882989037354557881005707139682396031112808039686064823253663095446638294620841651792298185203842066843239893157828538145395710619099680712136092946235366873399787896758840242026153259819448054230139583305071278898416036029807400024259091485024901861232080165560748832474137546837536480863635244159449882089483263463367381726385790811720728780765263427767896416323570097879358670087511828410452677596220173177706480737240280088793191534648486107381047987170983909932517841980880492152670125720984144103370537155189559724965301460280805223621072489750288501156699135381029265222260569627600727929234010981986218650706651744025073703142330355772260934584827630039138723372802157257642933336973069841616922892891147894353577511888523367100494291276417103684120078070027172351588292345062061547105498574088776029202939466181879190873293033253165366940721742132645433928153865828690415487315913991266612826636184827302708158924310283131235229490174301070343291475623847363244890618343870781520664813586213742479935966923111055784526056233393601229624230794910195130825723625698395908552676117697660494087194050200853161625556730340843957848278600585156829165193397729170596083953547991539029060754017683609667691842292832734293051854399584662716749208372562325617781310719470741995268853698639237098397515083730628785885288859486097393964054872320136176645263159598405770865216009981079394073650519304278272257042609514719948966754140132842310766594371546694858257319898981296566637153789823422591165468974233378636845373927173602914355938681284010812001991873172864494177552607218656297490811798625184220975853837080252035149514862164384265163986561499234160939592428720941623811891098662288444293716706159311385685906058736097436325332823884916396163200975292981397103633643326495959450876433244310518494599532322394436452880985194676897675967533670023101068450675398737789567136638177717669509954731523464763478698314481768032351738146240250651485865379067900663472727902864337994254200287572988969216685208217645703909139823416449740604543231905997764935582026061508396772301719462618122673729371569291625006520899167574855789237266336199346773163042822565934702047672870040936706997821643376223289924228948471806580175423438745025601258879504970606554068719555915806002083390651245404856813292035351357215065985048996552435883807251951550392558807479498034405820254258476012641222325012747722643172407671026031815405667042896088675711229312560327159106143707364878049838742801095937169046826750240503627321404555972503772059460488056250230415605661236065659683671907503812538118375496633753268616296559635478557663572547116395082571706696086936976027044133241138515231651207276994319667867270976151804538868615590452595112551367565944240671445033546286443411942514156712736954635215873584182624722588550533458834975418397248220996296096905558858250570106465200040628208529483292572455257752276070325422993587126389929048033377494591265725706595400408084858954283730911295180821517025901010966359545225837167227351149044857830766420051998841970742948464195611832264884607008073897527564160207141119973724171926326051528424881567530739614781364994998618421360935078911829682332183276764558880805098895325645501740835340457413625308549369820132228463878988397829181628376938065025028115449742980740864038021369508225012968667268124051343449094361482304213217739190645876541414178880846788543889160541558934616558966522108214283046725548661092236170147007139036677711220226926955895497514762505752895791845235582745045017162145160210381627310060140180525900234621233333767042830650090843141942571217540572637967912270686166989186671449052210738711869238765693830612914172141107473283870292712083782044262323284910978252277136322583837501472082711250518390798892958096309616333865122044699836774163277990626563252804258951992014477606958242675756286590065485566735529632035959111983031068203845549504866197193079880662867759586576764213183890898970303725690146524908049413871481643566125664476352468452624841748826523597141320877770754695964560483328461840676873875737192564643204391648856138054517179860812873900535013872239570053887481902119673734543430198599990635144361800312229483422058079620508186656757688106607671983814745781326212724998489111216739850355676769598623112186368590383779541590788995661097080171210527487016305244148476368872073671135062142163205039718433561784377171469767652470968170028436010530434010571243864029953959371799169518769729391769022220175381022517383970555494037171462974661254490750904259985057010789815332916194641592403053272625034778484507398617876509529327914864840724768040619509967767503583847225089465320548746366646793955778470293484263964765805097937622769042675185457529411138285804412261409910664470720653153872004502098330518499497299057222485181530369419143448213089058505954349398684466177290564559319820421591695703130020745785741528654313626346409468733887003184833690203357184151902779261549494314464249665720364145760542403541326119967347531892633827149089695359584668194951012703467867994240415752906791829936327025213489908860107833236749742027448684961791770070289461879371798842625297486817420857786079517467871621644558887127183063754311840080042516890004061074890058950020432954555412900713936031080069455251373176754906881595228826020623495497962259042682106195121352872243977585798368018414364260679462124893039157157335714476736342119134524145550291808388322989479265531831439270725134975158087670383523727529441758613702362787915978568559152141018046330711861307213244518925004945342763765661713717915905685695746694210497786983270398336215885976081856952416428420761772813494983904556917434930308081287224894291129689384874977508906821074714724930624326634520215706901282303515298550968815068298279064336131849169815602800634637523675779107735308712762249421332817517131647346237855152877402929511863282727744402276769204693159296271870275673475097127975541699008009176822518251036758652298943430803368810095942506873668303337388206533601630058765811499464462365415862381357937279579203048613441229219571436847460630538472294348619128435100236029577376736568624819246008247353615374740698891511869161894175242979297451059436549663959635861023669010274917218000967855534929582393927675102625897134843104844574336217011495327909637640493242097672985518176681708441052415598349884694484507732049837281646589081195943975039979900494099061859608275975581135016332057381334124366567598097997443257622278541534613002570126219941065535775307788714857163564729636043201324554294126696187278896761363300668433622718119862975205150280306060118692968840850452926272050905081970586702351033951142411489953628271405566043099998823610121314378373346299601775592925981474000087203148645965062037661094265092985071411983129801133699928531868833480708060308810709255459083671990678948100608225050098484089993200273698937384632529970493264560668525827612037345718177285618570358837777442227517817011799789388473786363447378216096911363278014200227884237542121755732313461411658354465990298369829969314411068215191081984948218160652594585143961096728638846726437098200410719485997332164095543231451799173030243542721205267935294750745834012720023980947588913315025106373795988942903290989484964035251713132217101845376808770259000898376632880062415520962557499394002476241364074623681649308954325183124406143848287646316174568970246777470519887471339974930701348084315540463494167358875657822942058099932126569685277245479326018066484569907740245550569253771022843434754272368530163018395318894021380721874214910175850583733573203295121680058404430819581295931642181217431079866333466224949466810322225023454099699935709297284441844643196089586503648297711019552505600987878936387299483645931831540577638928809056162672501397648150557220511372490472041348815026430989345332395336689867319186865812621611855219586228273946760792740942458270408306168994616422718899115486189929948088467618762921375766195581985396111910449227784697372114146803953565401334447720710090027269594735782997490201953170387170713024588486943313253595614426049281823916874653029937071781103496330669468528642621546569905562416427271931222281524706481890231344118065380550588924270550629975079357802621142638729343116361315702009057718225246666285881639789511077414483418835063209203476284002166426165568039977167568525566451784738313570863172497591820569926066333586844023160410732402926133819973363257730813001805069633741277777970100184650690354232329710143435897297474476523921824938875642280768058071164030387748047289179359684645423562477977597962378394194803422566787920888579591180216378527534624125948561935196008786238399890624855302570979190315514911136237906063458143763380334237274047220649443609882715601748391594179854096322946351229382488392933199188087774981885768959023865735390761390133675067073102531098350171358852914461313795907606362192737822808511747884773832312970973430035539554345770802646132847916782646188582572672589076817839015623210118544227831707261074675692974236370921372519087121153390798940139871639160557275872371551124569877117115053533499181564381191740165183865508407143496538731673723906718274284511691534577538855595605653954686692264361841671352931333791452972843633560922237875962876034603352026416940920114180691622977311581172898367505720289959754619919074248157758066968012385511672291529097254978060580357878537551904022296668165113161270414807332167662359880496359904740706436390695659962946009735562845006999063253554912202328341274950038888967273202872698990872877601617678259051666481016353947129123649459705615948123239414112334569251651658314881125749078105081887327887537648913069540630047364728055365954698479521913040982857600932859572723731082267156507232327934086273157784212504092604261367113311476757972764706243609241540677431930121535093544527402978347940968472665185141291728660528923693020409155892016631381070409173947176296854366562805776544723541000915943495636247918808157584681964570186658190195866303649067789854327929014594252904916956199562245478765160215182375240178419312289609138641779573017154273336569034420608329276191715814953670441763104077976732861461276893260238643993211239692400204822171187150100637218834726915103373271644176579617257525911226894989220170056199602516398908417497543255314130983082617047470078992143771793648030537721939638306793272366824124229330941875216249223985784618590017205990866921495382844080186426521444434165211461526049731917242105703216620070770372588577618857884488579361550450828103743805181029162056750740051904010677874211677906329361341415683088818917619158142227453808137119665867775975850848781635933731728396008453927251529097503704568191200031378457390413686661362630384621697927165543488526263642757665244935928915857594254432104965556281186983011642772456229664489307291425926566048856177445614539147843170518905152538921634912546850185655968837361672738119184725437142215174752660759611029297770168167032178870735245856206200259595336279962853809014910341771488816238813918322223504238973988738765268115602537576350427796060811368998852958595023236912515534567514530147267470236324698259232465468209432018628168523656594023483817820643664939003119567591982573987216377674785916190018199376797736825839857350534377308661460924301332017049200633572675816876392765233490480157312485498865849438731990743015943411356639366432234384587793542063066697921404694695501710767298897196928438809276122686216025319592653806043255593180637855188898441343385441339535441317419758174031784560637773541476307474529779420874316230053581169629929543234240440834340468656826203655941090984331957045499112758026164865795689837911319921154855618614168243395917272277819064423549258874140708825199311777438984400862473671826327165182118949484403211596375154029497061592643614337530039656535685603580741263592765747740164052262613997312099324408577535748369944685323752152033081686715083132316605442045715716414047628160401374165281867845574804227448821868686285890726036213334379984604560977646509360557906035379250293980691440802886858494566034263910476872899556496937889701323834784070598890615868095916731177611736844304774997130521002331417463612375028862858672893831852154071987662298113355661261661257656926348281168938970345930174511100885650124376556543041075961695724353956746636375000710853023699370008525323867337238061864690743489610041804481253561530208999667712596591312465360382459795341602874523635571764182324422775868255950473746031692895391456581268733329697071792467247295676522680567125064585900991308252761346103609881624361307471261718762274099874875425247114348085949341461440410224998000467800676053798064494195673882517638965868139822154770114428270289832320530862577791432587875957601336888790388103191428853818618321435566133729868341290349472371627937139773304655576016908143509530527275607954179815463541088392854651212134092451809160316340181083068760974354159829914583101344847214924989084374336287883680442114472486122580691835628759300187947062418066674442769605209676375116964275314813101510135613590845490864071468016107136715680909286016777816802733690654469267721449227562047131473265939641124795085021261868248550538258089067513482105026354317058749755116517838777596995853392028290399257133861690779083503510631655007778438309261652490653942818106619910543070312830531449855253629133805478494324187771740720896732582148638238584857564926965055892190163401660408807047511034114884097031294773579086182695004970028769477859188560934478204538078313415104553469303255478735406141291519949249158602393039166440150812149931222930119211902147456362370963781071193501557922377868322732248964463795284291685037758447407934348510969677096552740083961513088535373124977623193964746921313022953162685961665426732855697823205617665603363451859382913581703576679352765150514554509022389307804404129017580647769243703549898847044218343844415743363493696034366511836012891815542837515389468359168023603148317692398272437788053237951486436060608273904061258474209308752986572790298442413374458960982765299416658598886729411000589262326748876182982868870132032878608288211633414232493636696688643775128767750469411687868745804080011370252438770537437813043003227716301945956062251776616214367846118100514972772782174626255436280539031680985001696408903627626413498363710121032132959321390306170729096536929376701101988847601969932090390470102886231752071626845945916819591784914491334815943243516510921067255500119632919873809271480684841653351995602346131868587217356720530339394545156324527322075170624373954507699300647783996496193978418948569899063128124236677175555693363007737622683133996036904911773037523116030143024774107388302772782093967832871564838064832356196594895897152518171133141367312516344060478472952647885449502319660642623645419910377854762145364137984994532529642097372636093469755843068266067278563788476681732921004772622300622727942339089402287314802848423717859689179029552055943825181547037339001393665557900711530007888863005692148975952246909223230720851124607128943625573353669756980453608606876645434591663686466778001782852421388071979184682587887611299556725951190836750873518167058800667704904295687214731018116150463844578159393399566304106607955216127057353793514592149627092401813951964120074240923705652185829297235636007424712296273819455218178718034294999906511834032411087248693820492622782280145978022016314016164815216511024274596933735000672437696519825960500676739436893452607141039141916250399072886309848635769715597392408558460699542943258911241402161403165444272606763581313702691413365032465208203478494688101441568656151356749626543272013170316230158765931242374029885911071243376707066763242548535982983422896826457608785260634820031734779226142765424818387183866280125972459082509295983875979878866930014441783098389013516327844959837908747062104931629408352531667264753678956361050100964609130282960028089698438864300340060362180133786307595040959467082862087127578364754517741873229308341032888314879847655577973116737516996369379592104281168884486267137473812311821515063709983510686860589057030444029731603607180439505022479975843580583164049876553180604872183841852484701966624590991033110157098544660250489952580802425970882625538436708159674504326349996356538502767353147931394791123974885385885595447042057803193151586071157528250511178756505140836636892322281714325142024233978850925496463157866334650730547047484592142517987366440201499726907081319726763961742969428697692375010519209451176864833172359842260060054482358171923900299399886645378340652575099778381081335636556859823113972509547085073380530310057264206266103212055702141922966394596388186592584850823520474601136140387815565792323088717696540696237069107829792404858309911569312978027022509401472045312745360665386553794451893812394968683756067427348862159984217267880547130325777362286231633547619622637758403775795030238575622966014037205254741684368004599459690332009447029409768635203216135994298117322864583232867533576767393974342414477703978908992961880452953258952727010715706586132607802171496571110753688203557917976169430746189362621305957667064707462869957207926958121744660825097125640136144421048340658419066332587643817045966369189305654197734855642665728581670050934580857190326223854436979580660585862334361682950085408104302742008882341374544137331054068666282695767395302544526138221209597275558993670684320245576540992699287101765776992496996760964236058039023332484532410029042822684482103733256370421182550177699552973961523475069779257800604587684061614688871155596844815899923917358285973953623157699965191050042104505477049698577136082582519111124814823571254203385148382545403013650289619710290902118300801076406839264300865702522244514962761751300320533949393237209902333289316820054620868933688302694396700721212964336853576251472311988205749014878249070759038900598851647537395138496049410987816099498345680952659263018488362282288177532025412225215526741179651070831170702834655872294966776516967492703126085849553936979939354472230483436247858682474388253700236856228514917636022554254370837036173655243660149054844299797394326634792693718754326749395715870949949203817198565834080883659220413912394406179474480258947030212779517634752917883867009230176878405137506232159042733422766794380772227379476556947286993491979384060920284242781127137309442201629235452464959009014695051171773908225821132635347542111992561524332974319981259766718538446379621224843465172092019125309424852708617107886500634472617561186840047196037651343297700366001599521179999366791828614582947782172502320350691214141442198629156973617164545380891808019911472170845407826780571787848456946285883779735523278605645101162518774878514739887689533671386431845635150317291266284904460073006778155955298194796179188138013755114397058520237315461404980281764163233206057206746495262354126441489525787136970036583915285166185600015965043619484145198371580754657453147433952062793832178851039681226850422216121119313384182401217196318417710237252602628618312203142763686071788796253796025467671303806410176920238860302287874200907072280083216348807359904821870588332813394539603104081793800525905900043058506217769161501989678511671877236057888055889687751390584602769459660375648710515716069329963893098607182940415411384772430244827156924226435385022470634557550738694680757548367220414867942372797168480874828355382785020382528569042572454714466188159695174370136393911107262481424649866646584825924900480799280900587316476085987076824776002666476233352205391937693959702142428710791486319874404935929221290537196745453069973889800133016085179436751583886100356756556029595339327601426107065337075717306957965179993226579720195409335886935548149586279655094537128570359740197269760781577622541369672468026344062376090858180901409576631210617579931530935799655190889622704882207213510679673738788335728637960319737448920283956550035411852433476756712185097079216913435688748643956376463245287488980327408993302515182067128677526441775622279866918157383053089545570539427172716445673926036572155945468522684969651211062296188509042484494223544141060318944742913674642182758388426462859834884557853184561686707853242339020831460297950742836220696755871022950404746004805337464152689234409275625553389031076319405042272086457891539050921090449638236979896106101659114014683089955374284201534476570352005958390733816023470630685129376672029178558386849298443442322089055989958432157078925704911220520459202970058096713899859689165792074073281337019578050702878741174563558386496175434681777584440143453894559625008173638255049865042901431727821490077473608265796338858254692880011039601510756959242717846685140298865191598072272070980045700798714952369316317326814392737227440309162009091559836744736710364789518698926201134073181505700813059881207233372519679663382455023891577928664776171899655236640102923919883086665368134993478724419149946646467778016517532342612171755061384706282494791491774670149778895203832753003236628139256602896623058804802581149308824603457269343502185714438773553773241072557312149038685755969897868967513946639583766311501873992525427760269667005429793553558758656821926420415260526651613810587977192875377224999384779172575110723626127946709540364451734757040094203278385829669665218050037330322903015595872562456046751325625958083384142873026915282654086821202383947520157339291488025641397276544963782920559053930375794537706469954938524889849356723518977886509908454986098986482180696167624606616279256137728304140082335628297683004442234587687395848001096568418700677413730825840526034830041348034034906463163723581728756576094859581285039969259320111173609830752511104114153071892053401050906485558819222612833074641839320283030042910252563468089824448860827807006829622930119668450396714694067154147162381568754539948981619168790031228691043309682163399191313590524285857314448520919501030535276372033971037186780315369934749645994442179411576279757907099721081239027513587673585012434389525674632676437943434348123787739392443031698442792507993037128471051112166996828566980064837574507405141403401265724915704732123283067378202338924425075886725692198160330853973955724383678038985803904757290948140574016965779966218710861866481212288929643826221760212870326422662791214914924505622885657292025944024382868348186560152522662618747357459490626836246353192404158710127360268459032216172613221018181619702028078876995195127821275550593799059884210173417948122721310059298485155056976082090419591825283700026600258666550484723973039039685126058603471660257728488144130050719875810637536652631539050972820698008215328151246882297199783643988321215745908381965369898736614558937307217505079572576208106836398580723376555323016875063334388441243938907354015043436398352086906114902636813348264731597260088524133989221870114747392182020691735353918394162836371798502570922219327070280085661563545609397795412481077490242649524312345266163381770599928519888420756964138730387463295618259113910766616727966842057515414352058727625394883637616937582739130498662048175429271011693373284307058340924636636210667685902953438388959748806766608411422360371475181871909268570911748271781204522148482056218159063967224170765034957606956070565702256591870822363085755921855193184301788481279042316196760045583231436733690630867067604750733270276296976679725675432042935829875670676071412277438399859635180992134434767497762545604959139323240877262050849922023847406926790168846746729342363369114021461962050641242153715400526846850377474852319089661163584888266465210675420399742882423348917554238526938746053783932116941119448931897536854214416598702613871817670183294894524974650933906010186707555208549638026143664105086935461852452058364411357267348629137174862189892186474406985027532754529478981415515238933616437641524484563269056105840227265690665471956033806306484093878649478109014960106734819754685402005235480378406745482517704672038660782579714486177202192421560456048399063311918820804454651618246136439261435224692920406941951837953620172641479752507531744359500835984362329719212458703040979415400833542717544055077063535006443026701156557067586330864614751574098030843287384278444275600491477435585701069188631077694025739119948800178271569259163429264038665894274855417321019092599193241154545414782302705858740031911474800757773608819845908179894302357676549317768662890711611458299462828866689422433297390273881573058495943561844792481335577185119218221761721204756072868584364775256280127223551706268979006833682227542311439019955537224341256622084680322102786054712524415765656887858106514365387515659157345622006553328908232811268059732686974600594555532611660981270024313338164435192165758991666126752893422714448404767212108187731594852066780003770997927861879839865892701702137359806028809011023578727095893229990204533578213396118108047755456528706949320159829866319035574675160398799445444194571658934113414523309842470438731331088088572868416616377940346410851202665115715122793733689275133842270118686384296665595695440585718435493747000336567534175120104596020904959574636005688854935240747956549190892831816381272984191414068413706414011314901417031448927686615387441487795230301631458735851592329043716383018334367921402793960936373898290839506255394990545835601396443435633493039338067269459934727652992873593487588758601200079476051209970005620637558959451350687808478032842208935960545845486348864760477478375673730193699742021645278899792412556388181917745747818479977637469148128358451729951760202192796215065499871157766024987592679528275158856294385634066261076738986412344476909836774167643914747818298649701411323921192209430873733869593186669292201677344151901903287264843331385481879184163340213571765620135200971713507863248924610068439875953499825639606303258239154527971876132605376092148317030670167536044243415172699550908752437002846579591625597647782412163987027710069379620283044027633792704153746525874767602367371002490397976028065131550407033504585589797187802715695326861995337389408097591604537438892366302289530342237567931558965899654163755469812195793822607427293940754010846982668315261196890382907453458768866489541847406575765510286871450883211195305730072272530522764758392987554355521421357688604384245935781513673781956016188893314727333744295057163707432848599843536332535816349970350365452388461750772907626667656716263425031327428178261461335958384123757241009537124139298336077319274287174385056082990349001741448468429157399669409165372683770860984031262828152826899839376902602392644959564334638036177061426111722988546538058904295855662791380885909397478385136735339035260158308224766257118002414479825699107147595698416160001958913878548029852329962552214713059855323887189735418775162773099365852522027851093049658646729998059494851748327781684021573739185747603953671646116764770503028086707120123541875527702443569077497156595366899773853087665067867614025682051509168266557122669742308019093535079435847989121130702440196838655310912062864663315963952531348783617462584719063562459773741703783071085486335778559775037474752194334153744581852762861281428312119384265319870453239016215697549413539517355562093537469192656683914848748261530715800263330011512374848756927014309245839689986117099978894264699451150207153425730746897322591281330286336221452622819848490596773556002261092104766957970116645114621684127948800762479672831227042357422314583271481758478768006650116977087738594112585588688394763414594410002439361788473078138402987885516156947412004359765812771723042101891077226208177025990356522404564814457866444003005606787841210091835651114527687942443072636908131413753645963552389102592201053888775115727773927803429804210903930406986670573466627998859922845050617541550638872923272145917929662403333488184254987201464344182058967539050891237070084655141792120963969558462172105896034608686477835213091431429163895864949794871453398449922702223976826025469869170480184712827929704479181263766320656543421996764871572203395180702660016777706943603489726401497705870454723887368496265059782810320519390429132508643271446964473282411106748531371123139180221341195537704934640916799228781752084091805044033504221788596296375057305550631498146885457797054534332172947297795015990813947308415254553977444402735320643421798641297438625327023240045713974242495909283361470928777639521115379867413233236411633071337468371035766408347871759781918175641997808021430086491593565876071508315033465251023987289957017127397996000490852906031752074900161651114845257827107373989208902255706607215893269702454903241985168818028344513755743890958033693145090982998995318380593493798911418913547581242016177006880883704794104509953413534701754425269727502913115918348497419571041238035349651027068042653728392028655807257315867037615184730373052286319169911385002903767631443624001294146838474103410655468690105686604637982187666751098845839237479111393923609918941797337476054609755163891163598918131437065865150151665012019836248621742362257613298094994738893483416969133127497621651096401234663495905971220998859891346213488710866798840678435983759741598546809996068848610997904029267281126944789237030197223380863600768963835312790725916035342299195714973290363126731128067914158124803954304019707994079475038247013197076236397373752919922241769339216733483606707802590525382223945379698142743765992986668568243598523998352432150392292345873637606566572251636493426770532774866443009670184005947029618256870403670834233822673059564428438380561574341367238122140551749161504878560016381888953709940480442289952868749389599354339616502872715992932150731343645591826285707365659718954981683325263282462112397857035980461560598260104306440945401328316678346073019565066581710427655937376296600950370734792969809843877690194203286688483923930836510654014252663965346100847852856530063183064233544313513457242242963649500346341192475433910030525488689804406388341993843953588846329953853936499234447385374814044856477102484671254273339933173784825538613508282184351533966952306946175516210907560245974871637749897986972897705049604064729761379418416580941603091743741839255691690308837008661186125698206277351285837061431265683020661392445730747729279217140733069906542128574265482678894672010337907114886782017078347650251924585349319838735735251815093251418711228863839395791557258665246134316393032400684048213616513576567994750672630357786913722824979542700448519858304837871345465848711604501471825091048087232808061537782446381897523498749599356377964080898396768031376087660289332499741941200018103875910928272861013740182348468618800047327600510206796451862784680282753825397347648824159190082186203252804712831521987685021375750584812552332478627916419134509263380615239864511247064849534237771213183129575305146348858448715414541280471385133491964200611653099725711178269625278688404503138889853098268943546971313541864873848172643940662595992413264376738234800196560190544424941259882339011690399681242188573227304021316597492329008222220562656050620595841713501696175884119585887223712465128356029193323999526572211385933927474938529182557571204517250807767178057920742203528416451868078734011148751248853760241000556937304228527722800997992192760697470460505759982423261766309038738062293405687494697526494511761090474330464142442157690267335334084394239657395892326840755281159201459295421120775560563978500476623995936137066923057219570834977364277764028445723907380273530444837599588299970717649945981528809491005659697113248826171142166470599774475592953189191438546427324041836698016496932999990732132011826785888744534538345912611467783397719631405737498077346362041686659072882162281427319855968011409777043528115591179607845718551341096486096473873514275733141320294034342956383841889652592331086523805257514627415754772330902098745364430315424685378705999665014369177671021760529748427942177268256862595653907764745968370863677306054730455416439112738290600199879066163571783717323090233070123968443540834299895120865452899671967647892125008668353540383854126415737588989372629380046131814550347835696129066366893705731461552903012547480976730872411382509192735407644118509680908829904449465451628804352558595022613301498063128200929885493960597261260035517919345916239225624252812777004569783647002598643485405057346879985756951633053529365004431606247666283991829642641457204431082130931704860420605014928287653149233936285111998064475097755401977519133578271938334093651136057969417680708510607643220242564502187926289093307829738302890518307655683488868033184157175790017723893496733355370944182331167826219447349036363255244894069764477055693610536999644746760677995640100283441866017808918578184596750389263087738581351315741351487504143204874132142692650866167404773269035017200802191769631246171910762530749973534066980854057467534230392884913849946663376100655170137025783441688057968424162371968839809894601872119320294580739246165522701113654036425256053582077883724962386154933621783865346956796466709046362050309796170313574232921203772328666425636739348815305304937878200646724501731215923385012941121832517177915875021607802584221553127746076636091157617162245231149757939165611895711194218565312676693659289388967601804607081360826268852827582449847983612781793329364852859486434643948089181433825576266667313898735721487202079832806108634122021020362807109742209258633748871262298446382949083193851877541651986063656960019126456498126919921869718138688712343625629098118684277651243302055470369058934885257758469235777309679388945654212368464122099910650789890459909629789426476060347051435998679898776837266211718573913281334883194129705290372603927112451171429608664264472891977766688796437783475019035738101100040793672037936352882541359416015023446346043743120172393134901535031458832032069604240030930607105449025682780766919797531717314797253642108730248428828534274153226844316826067189482999369108963633167334396289441507655494855501754383525145241803962886186064780278572216454097516267397403562605965954526523491163458473676859097319511513566325980301260711291988363276937185140604907556049715303129343962052548570548004723859409249813990873185655813801520691956099231448825805343127438023252874490708250238384840763485313930918536005305572139151058812645427330151064239790635518664488302218185752034496028987438123764067837670798754627144365603124854471807665522133293139598973169697901469661561496525631872504618042643398071773416297261648515439876253328884216963162616957359571251680138040864488013987831272419392925439486516133226219497080910845276316510914040203203700893097597986196912558367157115325410493041808392848566983383522162771955111068849674654419889857448685709101744507120084173830888686517461057023374005846257904168869519748364240206665283509642734062011779043626766929535082879340387788604723917219886027843420723455032710466272189452440260141422763157008097234929867631913150561076402734360686216031615495114195653640606532807450567715054767061464034655639758938133368969904618527852489333135934249226699695165849075789595323239533078560444098962449904453834600788483078093744777277700694297940543289055695700206356932915107800504652685217689785678288267828476100573169776615209800734983859948282966071819984594958689484437280447696103975793644723708877480292591775968093806891007897551625086299564437943417844545800406081784320566190271103625917581917767898777382050015590030312168362247381763789485510372869367248766169622580197818108528271361351920866836645547721670625199280788827291046838969556094833133383221939932592732217243201354171353775132444034264572134180048015749220023316897052993948849268851094989515297086927359691077054871576514531935390062684572768986420509210679295845081907663643310888799901194459505109175621335846770471736941490271109613638782469024223069937655731396719864521436768478571107436927943947686121872921341208459282869305176009379664463330623063174295046621808398398845617319426364947123851925693234905785429525214541543164085874032119427294749337727343771305561289905306305868951566401822770568553071227871889907158520268975094888199512192752086235414135656925416037048975203719888950654331678834055270490627732219026859148255267047738753043776019576263176537264806046403013557574602874715872463406981697258557348210196857671477004033936461604742636938562101818837317599632293280225718737028586959424817334329834584483863211314213635867240436943501719580708406116079588367742914783534230745942203073000578108852752643969772778369190176212234952141475467736250059433641380059772831867395069098673327218197620195497289800168679059900559575878446065085018809259740025984908999320080758971639598246253172592442111019961402420790858683441084580478203510669705792190923662412013295385406679145925257024200829302663662010055029401905054238892206987975145646320950064977918572054707877617877734727632974964369092368009215639599511720085240289203641158994887153797268923826246061127794544018191468931982333753049856535297907821856468708064631934098709877982413331363240833380720640770520895538558231561324899488869892332604547195847008473948309380517560470575376339972005864213304357531297299098073359191273709390043139858104607455260432208088902793570591068394313368331768306774424740831307872289677325122271947844643893338859678325831868075883794830733018659049516516399208518306213902993507705190903100660267937186790375397554431830633565646198413369134364646960550893110386242775357767148549601322335492105240050241568280607650113672624634191366878448657295111685428303248599235651735007692054639294487826965505993550923924264106615671615930584810091047253434239786850504479630458231500551194836468299279464893107395684422451612680315945199310641841015343577502730132882990818774675285517563010303519428220515308662572763083991219923584475127794134714466661999465795645032738753781961831090009878341675463933963076753650479289675001856000319229996473591303996668988941444552130369532341315603873643670809426589019853873677014079919226288343837083212100548486730950780427865553994888928314696956568841099820924029028088276968357808603294426698539696850958062903117759245471860655754519341851245405853324315827567966780273145381356932568454563612285087277398532130691364475962360659478151025353572573872099627996287596975374492690820824159804494760471096898048167132436383444633126340279382101206551459185427430717896211832457860708034503515810452319584359203599227724503648644361300745761726539819577958702938990000280623416073174352927564617403699482593613623503831736337624268939343314457675212592831670196809462791890652751598962938567410626892478275393249317530382250516613210588236068948106500504752013581060462626911696926246442463438972307982969609646323564544721691736957821298175387308735149027025280311022530269904339094543740369804840024777995220659262049679835982683452184830152048519626845848972288396177457099936608365438817764516368147409603684496366677665428836137625597278242083775140082713028046738566635944808666339846133232591690084126310240364005158852814418736423342536622453639257875189450500802912767763565654401422985210826133431673745699086135703653812579446465505228099130310399558682247095204706365377361987232982983873449060821702114422842360273044951828428785034419889004718556062282558352141409654606100586869205165025488838513573561964644434369737044458704768487224951061397419194889616552045401389047487472393601523223567123288441531017457159855969671671886925061308518254784264774936849185696821046710846924457848492388800657529209168844404996215952338707209038194128147289957345300641874961752344830264013393799297984845840323626923611078228662207270898474153905501624987523037811214757711510960134123622689950023165767371481818958111233516624417675926332903210668370172909567173314618493145010385825666217231783387329136886760963294433382790030905525828430908241267673617405100773765007223760868168522099573293039220159958900043562403785912609537080291246350050788009485413200865966154120913540055205868809791436557367822668995620193306259487907038390223396924179059134494972980997941298340153269722022444130148502754952397144015962626714512407935042265277987074669636634828088411328048975384481528002517685572954983317448864823291276262922529931683893048235402570264453789473684147205443450402993821582746354017386625427894572097965313321116988502658326233803724958784609550523854784826458887347852844423196892950714673230283786912841826470649852523567751467692414507629475859854509405001177049881029968022650599815387948940662202993096317423073617687002702259646690470319191767844226381865226795688734662799837745337555678718387694789603897388061823730866701849244855848320828559629158026521731125558035123764889776253599818669548857268594714617666065531651034753198293278894761972910311284354796730636205072138302746867610893134208554073683890534353429944877741048531771830263538651226274206681973666566044543609653742273175584097928834924509094091268842514654191748988374589038388446502010562236149740794748908949212510581929345877442608050839250175978027543132813932506763061219064583865612701600280551563291140059950325373579392804744691592747646615130990633192890222560452925838137930970961313826424761150919587129655118156704028217827741256705920380970495163741628991586435967020033249485778919385673145627421130177867264935066544822891547556085353478116745940708502301248523538785339421927456406642814591878458706767068082694559604923112902858769608807789556988559290855764436685402594522087820559508225442912918975862355619838842643944827036740941098799502557903752815711334823495770137286854694308389023320643801564458097099950186006271131270944376056357089876545673584435373725330887983403118953014718883532024568774910890309087377538711361937930354214806797805000592816485531580231978197916684633564686232400672826757620512195505662251256581577090697594570827666469374427551651064272222881073583592153474600505323887568851792813534818970364712221067386221151171622621674427954517337377467759769648011544662416450384961197066924841084149781837759370666255762163620122600997238225730665567127535386741576493231499314048235031352679963257587367852292060673755487051251266688237509230535860766117704918316430029132664462872575810171975726462617595171298564160378328258102896561052436783281003743382221207338540687472504835572925791641800338634857262294386325679247349188287285951667798599935777552478417661184296622133197582572944675318207359291598946285904998905942848858155012338372522980065421166618661731268335900245860622241879837052854455422809204727289729496276549251212855298683129838154423371438284845864929379815763908947918330828604979808608795620272122996601779931928346302698509524269208253852228637674877802026459459746601752499302274025008049776536854705515551598047229637353646728830461326346112353713560047572038718221458436675717107371054795951790946339186229255818807297646882784891313996436762535341973071729176972535621724513546855466345236107581744535265907613921886075501845420010353544541541059975393861637256587336570369539857331570330309048300190488593584948307821399487948968137789828339689830768060252730152300355571650149468109742433526844320941389026066788726357954951388347917011468582855700049530480526593694850135705460843145786327732781393046088962514874867946539454697227334498992705645895393645634789081567836987034775030623278206264485127939596193831206388127512768387416056465308157455917960252535957412495128113086813938817387634012052830077551377321739867482057024590705182745616787800656663341298523072453220091012048262863145509647978739065154538016279967334444662611407485640265241743227545586451552601662583797577777630453100034295035121052732391116763565826694105609688026547515676679899296596539095587228557357104269853489753817593118275679479974403541973778601011110620811242496423948169074685416948773044004921281929282653942337465980556249975820014189611964860093794184302367590224904901136564365842495884719457846604453273563531495889284098503758806859350527493111948678112789255774228460144420134669006199462287132818967741925686610866792814216924309181015271957104826115670406822184608314457121895147848372656329875042774605745769149581049749346948524504190579676857114845324873825030369727346909919826146846149325565079051846830406605002939292917863817044835292910061345466595709061656986636338851974185432133448611699756029685661009666283301817329344676007980546684592162320506177355094273251829478859950063889319665719423270659693217552741137018082494826183302569476226681840994240896367302106822095138930226373342427141336900194935597663009890880562806477440534906334060474706208080944811800536173070610250344297334557276653553432074598390877764672242422362943616905998894436824915394697087040871735309062101581816180078886544869224335355573865557003696632661162219403188144558416771072720966666151270184410569962869119289066677094284311547818028496438510970186962027809760949891357379741620125479670331030664014122699296647714349264462534932922030023960846780149736991913140183279802632330640398965813238887053581288350195537735997901796813981545726109437382413802719130477980592035574009839605208634081646445795151313295317101875918417236683186494309430217770080315686474959566889637435618745084089508383579064580766461985242293114534103477948341620830027248183069694644444286787162704840850120302765432685792191819547189322763274988000744747449210385908632945792706430016069076518452985387987306349882579176462692198023886309061266602121833217036647645706842827702007415789918858211401094325830487023171900489345801112075807005861592387704708533767747406345652860708783323907504779875806836851823309128859197921306014655534209665011444847013703305839731321206659741009456073604099015076531642387430617155100152126375173292990122154025959645697580142072350309989278673374850950606137707554137067698608413695912158231264846745758833059437769050153104928746486128164728306349067441655817822816989348836811984026913984302677339145191137713776197822915742394531181994090100773837331973622291456789946887819490525231871901823791250565490114128213873775365340255267094697369626574014444341650875588614322812035701409700702261714936932657963391815895435189333167048045732069612460436319845687883603425383039032696435518399533183133955713276952557781720757566846514970245953210159590818727952714189806448833725318796598908496394702990572520852779304358152703431080330702984620499018196439329409675998457079449548435288753287950713291295581649836230237156518291221127978684173144496837861806993704162237112483136687202173720631159476590212052282655422909282464861047524998623150326480531870031693722454057096866789671819274267352356628589666660114713318068005644321785772765202278310594530570462205082452925608455295809271938696733714399336014101336616348592790212178319556097085499497069390892677046287818269253989307621207855552164118639064760565218576466325926829700303268752377579947285955991159537513416039420903625331187348942372621983325026164570550663683016733827095514976099808805713327892256904596059976890416229840616178534668997673027778154396547820179408489007776708900955244201446222994111466429634952576968395118774884449174065241214286228309362399701262988523223474205641116449075847971767834332710922391656865145149092567843440899540017019466199287780409497357118356042660814864268765120906541843321769656718587929088189564798501908933342271350636125847628043583563092611707156103480937653707720635920598334780187217162659658573455760465395261335209799499869793342042563014405871541141431892600957247048280121011160491817737303896290245670436487410839102871037153397090628463060159919687433168278009214295314204139000896294679843998773547735985233748224431549294859563831477382714978273236321803379693784156848506315311096015272266131396215680155393860135960571182775384267940569399457915899187236129791074111828949817050994455418804050644566832727033556051268174357849840399776466547667400586917759946367676029574055931059728632285866850230881123383530324736422402982181393441937409362532579746477516350655945805643639329386304248771033376549153931630735244823332931704273208862523774083675122175090192243458853741164827620792709242923872905826652018697173771621211549493677303079361960353063713016390966091602436498348552379790114188957420679229673419947589423005754852669411026684514140665045341514573591012050458536328910455528830513938654478315430664310019383306512036079861879780808521203844962737243124053484090437867255878122433847996529513576529990518273512892422070738748521089858397161714908086467259469599130366519230197905961295856456448263451713546805182984326949022447317334105272797910710392320162857938301073668275868553420835628449224738100027994115525406415423852015892196984993672878019881349256474615817441611563840701634983442711894036416773185778867447834684644395592897027627014471902831676574539979541202580412624157990749958413904509283102160586232697526707861095869338818785901703361624696869675869596599951940697741987412568486084737453660993437687490299323475671075216533336008959959603564284943355155457802676744361945428747382703620552621261264186198458781603507376667176774576709800836990478395415513757438058320119884887408043907518238283685866974202349613512140967727386484053036410428506048334927463894460442673991857073025482447809300087888238325263085630887850857517584498971092247264456208620572077722528132823002373596662088951109795663264692818777444965827568782698748711530232211991459026619213445316798118569975221807230713057328920361607170721248979758093878839844291116928883060023143569309064542840291737446506746263000336871959618865431156785359963805677501076431504097827297090691577065244945976932446690329745696859022047519365660528208685620430603486966487173152274864151891302787764441616760111122587017221197217734092409169741222297289582065635712957842139010658659823195492316302850376697567294289275371996251448624731110135170222158166601709490522808570231658135593217325419159412499495843423902944265201844973286836093922889221313409470396204932336608841498574806263352185810864291177293027594967591311146918280211611507694462574002587750137530785223355564239088244656595003211562957737225712923662262550561826979586811740807575873109868773334527410443700594223990008636451281935340331931616643082129328688389870270924859107721635126071471909691450772438029541607037334397991199273459181024208553683472615508825902659425029952210903957675894948301404607159104607633010944633648009379500239260298223197283876850449367377741780560090788604494303318778664801564503181876605629501127998278886900714477729318598169527483088302337963914177023828709383272841659538841876634135233431814695381419259691926041370791277178075567383085793692955134288887310694181867626659576210303364049914815420512254642261144861479706944506398836521097752487794461647097153617594044965503803102339982191613410441609232957439058134239039202466098630661770478701302794710323934975731849935309062610974863085316751949893066674722407284903921446032659897396814992850504796430742156821674633252001770786586507010235625030911074776235912146072503823017361518427738021150139895897053636116901732191725841374636664928974616240541721382247055435917019247055711983197672133094033023330233454369537186475247308488777433128138639312610863605299284521483734854442485280790992040807435568219293335515449393484409897808732884622928350281664994675998148530780610428962357063093690199980532042573046522758842763053368427672936900079924700671975658256466373462838121582904170904484561862187075562950272764403166969907739101480195346208613587595184307564467750430549807536550215734868101466554126854451211531683987477306135728705694008227430542448528346492769333941021525340489856815093605356517997951326207561342534215264373561833645530647822400576338321312604135516110130868355388106234527105420905533197786627515046733871027630072104845478861745004964107641693645388862070001307038006940954514120087949503461629655394338732335385183693221704163633329901267606435793316696645879557360769522416275311271880703077377808883400090561407193278148887145850253072862659398863085690364622122716060039670709067215700450283091798228087721369306946457812565908382925868517829327890077794281810453795042481470667780048609990229896767348247765090505143230626119325415718996937824765340776069231175573552731170927011528861173949106580496595390613034061174065433525114090803979797930507691276064146342742190125463132063859630469678478724047186777730220811277127277103074092594641207024356626101141083619840693131363248325068723460734829388177822222255474172200355409994582075513302809187173856832390463675095571188881061566190671984187695538531444004827492287911952498390254096852012635305141483403353220311750511921908418396748416166242904108250332071487723645834692580159858761103375453218472356136606732322077092404489406700946292009140633453610457103447019921535363468337955330653388567467331970559062163166306021823898418591024229016404524534185760359175675487204047589820911035390610533174361538183464215782072710504851931825815824369450054508531344152484935510759740445610008703405512256046745893809493664921572133198957118513697307444994160859498524561354694352801314591223899664586732991849395580128265862892389270042583889821851198620704372133682851918998797425805742403743788495504630819133688936048373994083338099667586386519838592995496656161683437502476369316268363170994399523466885652956747160698063431740896821841013315813313969982071836076318884939679869129235432440073337594370247139620625574710581525917450273558638577765296517477410711899987096083760961258014076281453110075727600076129752626428989585780553266598987895513630609068821009326993202755552702541297873642799751621049926426281684883591570380883363175304652675947544169093944887472665582938420580116769923461909596801681540083036114996734394201621932222616548802207403532876882093067485417007147023856595677599459687977321655131598595064293215607703810946481418931696555914694284191458618445587477536622885865895015491865124856035493775767555623052201532982081290698735832642439545872098349637365613246917693902260328363405808112565820091698798435532252482953834450950125598197061085756189817969125438533273211926245783744411300170662693268610432930761859793116201935368920599391075286869212883611709881179677551934167453769748618717514334043768390251271732147798159936536084551674500382184018669414025179472811914169838031105486272001769557963677013861941498718281540177867423010387621401450939357978084626638125258949245160333463796680884962937863547172360498921635835319539882233673466555081353541802969933054457272538032550084912331035420426201037079485207512418484991052947314881552715321245273599099159471840978811807880540803666299299029335212664007475881405321208289291334774358340993247022895120225815976142617117099645608538170151043133869626888719276632578613522599480603088516768435351295794861025203189024689841251861851546838198875115609335309369349562280186535023756360297322160468207969257519312833600582611785065459395263687988728147364711356956750713331450462822526266572804827636057232286470829609952758337165166280591163601104571857208669586992249388765168130431181644139596741935126263506736946846567552311554777810893335354075897758965316719866495189764518303017769605713686666310020311861721409311893047682531491834598048175030742598612414310308479127277071410852830199963913495890540063096474646360367628238963723944726007058188334047016292181212668324614496969582151468898408954216655307858992863444274967521532551618475236581133105040085223625591079649460722958822679887206022759872651623011826682059973407661013645280073856009514129780310128238149193436900347140533430284566330715807702201867255038104559687510877172440800946516447458289963952616746323372785964558046252600241698623472760726539785032732610561195320072116578263399409694396535142984842581909511338589824570162538892702148245130188581906063946066525333937102886534057954860930900963320967923072019398103401235782046929576544708234335170603539448926658767146935853929940367301131393814467739627948349486005976758045616715881871673037149046975675078002518738356821886618553933190108207686688259403785503321950025181234701227128957864420380060694216674793085220363139433156872518764724463282129295395810044419418054204145981144654833148562993800737878730805079452652247583705105561793701216843863363981851683827723145435086021455474975767658534184862295157092204892580172626648969509855763813089985743503286383459661300813169411014907288151319083753439933046885334980872406033670526614710293353562206648173917015971681310072838018715016796143831401304137055770196206846658198740740212664962683014596840622273410366491108494239177113695236775248953527903403216191129752801982387750427055141638932808574774338381816567236658586766893550117930609107659043256510744199834989610492023530146989275348566993607855995938823903226839329546239660134969769202583732477716994845184308225156369422397067561466662110067905814779670036244227568682277879690661538456676607727910216091752174635286793562981222743333934745240058800925782999095315975841866882055045810782727448380107989338816342588059677136831012055965440363162333049689970968323056089918268094066283143057546527048655274952993988023657173577115811890884415673221106546741127696687297070004363600538865845641669752141793918347092368081488575663830113611777140350708487506694772704655081485785526070148688985212559788774755934831973836459524532846488013484399042580075207381002567691532256544691636066458501103016609451014476750863510923917996422002510785826408916231207592305185237146258518225181028649137345718552779781222914033777982129524819045418808288565000847415729253204036725987113394415024713500455105185935957415207130271031838814208936546487617331401579977763182432359502536454418599264104556397216336529887888540583472552050270246050092833885628383537716324251616633438829043728846968417317389428698434270231783563959315029501222392698966711718231344084645699750850157291173411294637386994895990130120021867639538030998820280829915599604041874548321348478808198872232234805955443998063380894788339023938776211935400277109137336899578086884128203393803041963819479995567343993054320158001447711850438504595523009071466764006966584524346068443270742513282864428978541915738600712681666907192194617555174180045182014113813590994035664762339672061122793289892189906195953107474605458878986473678896601301712531266126698625133536570064137730041918487690899130122437611460164926835058630171334482979736903572019534573150092030501237687199686934215196836391257607666994052529563816504964257265619770232555382247770412552700380384325125130366817413697462927561182025960139108121450213993994526342791889010976623395024635854430770972986374179890968626451937560998414351304520965514171917387140522309157453973362812456442463593242882815424745299015908974966977173500453023704009644607506989479217418388054796221683718757150949236418963446601589035599562577335690107126189092868274775304554137225814922688846820396400385676933361442794833284332507736859722878054994651090155959942474165449354835851379061448370413968438866461319856160444551133026777271848863093038918758828375305140068715597370172450325528000086909178334742660977562378707346497810156267518728593851085056420498959873651253912281334100264723989858891297137549393231852508398737285354614562150250942998513544117244946565447373146140445693572364766158792297903916147348358680205219641965243020960115978471887222316155720305692737733887835789946867783774359830997662137711399178955770760495241498434658241275835921744323317583140370996273563026860581232295594225047487938122871735172497279772361334595143940905148391914524870149504869027831544293214826761879993474570461347309074934505048493161250670646158394144810735118354707788042393194390066297319141475615182502566186933017580713607239681803307741817517708950525700545898406598372360211466963145705342291904307282088390774239551181624137329878565309738537656026317703488203996799064256416411277589123246302994064046434413897914802637446700926849616186202523272682981612934866601581019117445002274326921893297726738423137965726126630967026202957244709383473161037349222906418739299836605521070787518774548324625285964195806728825569766704282821574515267613600024695100589730553030607438839463729330966228499490063112087238243390809624256302587165206751853716532591048814076391573448713586483609248813154645242107803899821276317762548291030458482512123311192512698541370172658176864269478983226093720117557920111051858066602012615097991883554809020394096872276354211645242049924466033869721278855043851520907453949225248355009553399936814074124202635678584449818571934234240542566498562646305445564215882992960825891884343086989965384562165022794491266255492757270035188065167357162461641927907900476643419458809445593679034431903516330796314130166240914563845698057636223813993843995405203075142090398347096532582822582970264629779050460582009818038981410573891326760693384604161250214543335278602363082827728679214140948038587756191982773868478815640598173862513738147789946823561655521780549906436357919042280834955086483693300379380507840141426054449515669998202661003008133715106370692246764737060011492972371459930649052492884242738136272207756546951701028399871721223167114746962402519698581543269177142563146333528827871755384736534910663022654805143730105007205150352379210778572168849468016864473531975681687956953722285486922839711497222427103120109383648290331160358385106685177086813815906890040484357969259722224795064583903955715693587840677194556803248304903464919732043471327542017249642427674501321596076907532888799225502903743977951218641879472455809862393798580738867495363618747211880569980944418233201985537868677377818147568779567524945825321462281840248573781618457815513584110225017171891577810559465181334680361264046680573317638983705378429583109942685862910121954302383108565424609238755211115060627375674090509433584253796150943642523535289902081394501377808869956029077101317369590304200491596064392408844082269045469722687077594584470494722373820049829720526965804229290155524484886521176563088226042427058932181630625642299625031002134372343352379156866444795811413030065772247563448383330365376820257756761316051650699497843094202792377231594221764177149037303136855665855940474864864832105465342471167324337895309953884752902060931735216370820506574621871010038946343797755073998876911044653126191199248853216255524631177916239320287859781116542178299516750698917696743324357782681953817294544662157885758499167428285737551540039219765013479945555984787683665107267110764452041320158566871973342361445935629961689185345815788435520625729097122764143851321277084596675798901194926233143373625194047210802637108524762491092247629725818246274688673928658777465611267009452288576315378471374303931485286943575733922661388172192013126366024592143906725286256439234573981893352458343273175916542327843719029908241573189714609800857915276082038152354649694869728271307840744732727901197985124887409024929545642115524932576116555616166797909350858848876061090466485888048242968870831379451435022617743760807522726274865641627634622949256520814924281707500258335236220910063109754639406162081327235667975224711141470921084904447140093963938074100573279127743059399238214219520297982671870917131339930749231574674683838482066319849510401997986740077457752412800519015669080735473765356441607675834665238705342065027878716502964556950631313470024125335761033665575306281466833688115958083229169584010774647591013078375667933237595282700798264040633417940179129731760631679278161836318540323592675623513745414477578342790873773618317288428362338366121069833755064845309247459556286000649869196279752055210443897364196607756866382017945480105339258850333910904894308921285263227304342784180547416851271816502559816900114750293398543367943911346179250525997651496092977695688871943651355694272975776654887550995657694617963770067888761597497372076059448803969408384452979089434143667671965090544957048577949051648053856981207758026746702437025117190152678752429429925693076063414775174440665606752056346579948924989225826447128462810129904583303990292528825112363535677716335273194902751596635636230220189572980062457391920063907892558078639170024463421235082680234345958195323651846700697455834784823225078493079290429730561773397817402875804620185682076793720613155420632574924350633496478676777521691247408411306986927958587509619112194384922288569153948165085027470466608660611242780014223826071661446252499848926137183961174877773714117943008829106245775146952713648643657971107461073110339917202390589613393172587788605344190745914226569762643488759116830157055230937639851099234878053546719542669015015092890736411238920215912415671279015582637614538641555357252440941103864530602026162318787439637103974156665219728446964941269227070069119714439430785902962216136239399826222137175760038198993565970511565139588930990644947106012582580947955564296141912559422375801372945206687038103883205619742285128338530708389536059463787203054925800119963859961633988242790639911448941411151261366355194627189899407347743368285899878556905445048020292682080922466039448943279408545215187405196218507622476345579916739730379739120659739987981896670681964104423323858907354075909342057482909139959960438176686065236927883895136171207899745058813648233013619515526841948405295888927470221463587621226154444426537648544290597573303277564838611800433043328304754159076773407734265268580506491997493229131306715769954638248456101597114702144708785933621251910447935417642991615573760318117097257430426397777987643589646624868819494888855283592478877540946439213388922279735003446037704010127950009418412067303724999138813136408654116659184398647273794391579037453824564486095758006470076468132051654272274900066839041476052293384457074118896569963632890441601888813659196127720716569864460125739575626151969597116039758186150318350123547238448174015256747971474887586241337186972242540674751407820259767003062088441114945628335382586758863467891309503210003438599155641181151799903496780140372363578030566478058421116218681319131923078440449718569145173424335791702335033569895385027969199095604739051338200606192337165137030156541999040079016966648804469762058528057313790620265651076913514732329062232412149130097733532432752163351103558838999731307701904562081215686991717289932689595892907178847599087585295524413953078919826477821383465736558418221143377265549443317158952726192862829676228880454131423263695364018793232499414699281914997363854416768175183630658737886280616226796129697138149073560366664623242925972003334212656236164247022950446696108062754712832932765276737204282805630253638370547373428984704787365591700208423331779738585661671123449782694587334305001464188875486006426745706903459022989560231914344940746828864830034042486425961393740527848822526350425340510795644268896615416911238889389033259611117579263838646352617147833985991721120431764315885786824393088023881662272269147616988374341323248099652324873886261234650472295468878110167375977714480221396744327807455348667087567609570503389503223487282880791004528015923773848893168178393771027563346456483461773702254728558173091361316577787755303159906893833225531778182479898254159746264575911636450218636046089784117815751122959253625478450973816011551758386977707034945618069961406562288304700677154176398481571039958721919321999561798019810062697623241851379826386431182330117542272994976300163380238926108963551347218427973779486074306016442486255042595950880339724676427269932371421986799208250782497780858458720707051321072416588561032427910671073372251707957867514047417799104823401155226126722784537067694238240954681839484905118868254452412650019821760706533266461081787179531160377240231804593824610899233687743843149722575606430290304380469832265056639893675998865693824311692493674768054803854867213297381778373316868419518752380595890787005680473765902833689970335619545187154875899477290301119131301525905810739111914656019122965052650212383624490191169393474558023259109094475981548685399733951090126695133497893184264970992047290102651434032061826455253681626781297139316629311443004341041370788502196181826329485825462372718015947848914743686521518976859992009991989723168138175520181897544999457560860839077235787472765813468296882281748321612920251440467479819027203807461061967061602640473881458906702314613230706572804626524612714923969580997968227012554341708947917644651991981599788609515235478111577675422291639573743482092388532040852865839710524042151906669474430301801994442467085969789296058296523354924769791066577778769707761713618425981607630079013751106798920398202467647258901178887191203975809697867520008987218441375196464581187783773898349858461728002830143292289412037541389364365223929600675086836382136309765479041825948021720909027795718581861575112390119284012543418385726982187789980345606871966982135644012107745943441633989494424811676613590582720223538354928690452335119671219345267896799156459669884885948297382707216782863816481637383571681855160164433838223386913342681621418165794190092663336728722744113467395820597113864165781521765344402169368593661757261316091400712365232633444160319620316354405517027909811346974972394240032134553568058591112444907233812790458977415437951779787123907348981272881689683572951182971770713123543738786035027834004467923644024771883165588857282847325188243532290069545914388744969073305482366866786671966470303031199453271552219923206843918510630235948336337483900959655998219656692189559450965762658632643167203715596728192234143113256539731717647263395927254379575847235161401409319297526726502782019535065060123680238911586826831152557889429620352458317818248230372725206622836954170739751646521311659184090636639687702781006628981642576978970148793818503412400215539589790579320745014013276339844726694482356210748344338644165245510096052214282736466738704285124171353535522271818357728761400673532459302354629095918724492856936386206071888726597484506139312491844899609315447748384647239315993620504926632977129300957313213388724491589323427056419872431122591569966169998210015262338334028650080294392008026134737150783612250347502375410211263870831331107016516925757406987923796050964969725677411782101381874749328503412500899925353576000533572206918399477910918573143677546258826700187932134334214819685213443406382596732328622376618008841321444241488940587676711205074680715299492278655157058113696903266447675408117436174389116216110030883200537606296366266392440015054130482269040912225373958307637329530740547473928831570319241250285946862188334845665629736816933170289973145190133258395559679672645521171836706471730729774958533837419167988346842878438841599300847492386901531968175662245097788502034705248699557036100954663291611196600196786297409520851247485620601323138134945046339770277652033664276153642800579824894884707679313006581292519959273835323310122420783603294330238593382402332158830702643606992214854311870866521004102675432692456078865530785831327657574277114678630018884917111413563855266211361905794326431381057828047170801904682166037942438100904202149887789986505550246978651937023593242008696066694195744511447651837929205955110104574206749368331367518198896645769864770867546252852677689406318979584476926349505678231048786321344533177850242382935224833118040194196897008780678559515637972981975665151123198417693068349684263589102940622807987971455547261640996168011799016584848028798431004150494752699542568682159749551560788841969077315064403854987922986027633356612417040723838350573019264179239477258617044719550694996862538631562664178092340652812446143521359978230601065764411545977509108849929951095815120739940820571322040459629102292377660300057771555936852646098982288544927969584557874773102082882390912325781841262353656248680308858971755424575954667290180825934824480378559354721640390417844720834861390920234744740851127913088769219742018225388792859379297962055402782591169575214714750521333516294816931640494434158588501456516813113538123370521941002470463879833092352033670402944070214329752029370261941397792780654477195209806193395837228873110692979125229304845338776805730092582711205361591002042183576182864397695334449651713656877610157989814280532498692461155327034795610797620810129314179344134897199089796468939523580557195984736693716012942448737504975493888353820319861541012097065627016845607183803772787112391841593561709758644298639635463790737106801914739406330922553857269270751333789138962469389664794806497682286254023913093600910456320935941448923767758953354727800096871477869056064180173826160558607337289828930995565573834545332102623433635245653145240184200275761744818009100721763427745766374758705106623770883594341039340098046270159446631357006794031361801488787340224854848318992807843634236024046856458363468247825551508583096358967530453974537371626962341752437319551653051381404924002896013759050024882487436978459313404629705883640403540340103000597008686695619315646060733880230953413268146588656260700711952078026775379833785098904512800617333830226556891725656487093751967442903326188517823820562730867770076086032454370954894283813903104316700609921656654905660722406254841809482443738745898475071504088014024535680360775680707526367681968494296198003917279234981389594802407762652994830521435309055279801259979060765387940138542273832383004283652667202065361889148740203452422860586959306368789057558788221900771476856626906889505925576405275666530308179090868560143538873450117715128039545108343146486190374691735298977723196721749590624787263654210684944673454248452439193107575922915854087299549763914123363532066074459827766730208509033907407471563575045166262103807446368904544245074735471461804284361674032939089476395528536198548596421407015726588575176627521317264812534205342617202991680545717593601217815826445013791653594823335156186041207735030804609310167092890024789087257229986253418956811729362581265012066231915535630656655820619785026629994531997510942009948154210354306962600728233648461374801202518942345778238426854784128371577692145685694231023287782357853897819829411781107284126734392965505061658030136597091068363700360733707361077052750138912637901153653699374877464672765599864976950478597816359028975978415639686102098507711434261888115540534572718993305962326365162585526309634713898452637654077487875806477763572862252194813562546002642777423745632687850160261919722957044907951384567271227633343041716781942900423430866114361950874207114820793698827781851739477885348029633971130184244398197907644950880937825600324632623596026163498456778014457113394258194928217736240953738293255455222830994131217940908392475486601187785569161846060518145736473007796611148986533595156467085613556239144960983875560036538752884810027618373529218407972110599951401742600092171385911755291338179816291504858545708243933513983104335561567475306370027168774442715416847233761873293236888810942990017478968044834918597259873391835249088170025339039532730925859822643293284237018615757738979997096344715322876193559615646278849548307464467224200356475040603451307178157482597570809303670409191065559550077600759878335581865489264726902284283695547187486028395588870778523513743894604451081455172865988211345920033838555430799974268127711121638406233981629087976476462971130016046439224737649032408555997461144890955681525233391256822684968986526784046256959653104946918099198874627928092526337661707963432177556417710029344140574446279020412898803061290125265333480030668541044882986767129310340884201462197598408888678381359996655157046259061714162327204852576721844731348405923095265421211245726535892566012711180170745166993826361176400627399256008111542129115436761347027717952989833972425226773590785994535459266524047812740675579069767366429462565360968790586286062446377434839912558935376972324633008289507885635435498954946176870443178450074968635317575870776333863545089686591040253216568405100859870604126100926340302184199675522761600461668809210447590902862599754405472244295611501753175192329207189025695551030036292255773276481739765486511094596164241882237698882759372007851229563468912509678158677908964478116322951191943838676454595764422614977464517387276444105457027880754128311956702862867697686183848443216753009211560211223082169769932899498649152411404591013749740758580836454339940865213792904346985173218691220731871256724533247246876892987417002526595626870260917787289446899973619710225100739674973089363489130748600045601292067525585972732536277250894379418169769247517634458554873421961923496515973946183632132680449694930823695602077859958607783324599764777667845113620550875688081583056429479013897310272869876959171640083587881480688959319591295483857814599549851906966769027157146428680443555495460051623077921104172703686423055726637312612591877606197574775667533052612048229909084542864754960179649256675888023883281242403065535826299369413548562574580432443711116459637941098279743139855109210145043632050426335349820207787392643306441693754185250652503947782612764360964224678731081339311564012763456929153504547231280628043841738201995875636627920663021928256330040458908076688613288449415002605514363892325981833286167126712925926311397565089317203157330130156520042944325281946805670575621901678171082366231589234443869554849234669448152145281350151602981240689341353739615575403157141213632803761076552739049187721468086541788041482839692611754569424347028829666704253923885150121430554692467412345801167749291309153814210738245156849039874025728860281009580553926317547302487201074201631219265644353552152490381583296836952515527191844070316611266540536935275773877890208146926700701701384492430405211828513760941350951861777748100139189883579435624254210371248013944295560215789756123916310385724316365016580622539105602335324051900159973731715828214252859286305194844214156405708670224185209375902432429286057087276217220434075775854102099070748978773019375792444192327473158896542206813081517259302553692197716074742771075159707034053535287839913114429958264249415972456518879882785600912851803551547935011692276360338119664335529909662520168641632964310425165233112100282670904353599147510826926529662067743247898685098652260244945030027116125830816546298551513857193060405345303477414533461064325036896378492634909955903136808115040203021478528881029868041278332110132160526383951866016178898102386225211895729903383231927825412709768392175056078808262924143432397033416168864453340429422814564645286460452025965886776068459892149398825563513814602921358630053566357566311831583048320540041416895653188142584322050160365914165637097147793454467556853347542029266278640820605194939374174500811223001119407147013453215036506815227527140708663484860754805066714984730277219994729388731607240546937685215013518348277387375623644344436847849028707604767590251203987912538790487835239907621521662510289870054622599675041904597247846376011785583734579352292948522053117421567133123141541045194264064777399368508986811739815284138229987838881997179177473167025442263370615573895800214354081200188371986566803720447852390414210995226270940080113794951232175008967732168537262830211151688259625417467398353873104014648314122407745421504782801843447098503616260830176293059784386653155984063430475638473691399619603257936024514678347249790856022469390795393341009561422984377450004792551462520696439401672576991531563473024658938477678286594113436311084924408775530088205262407130553305422263493281433886067750868023955329990950545625642765696571868572646993831394004330920322618575694174782640238695906956822345536815970436732400325987919316017602367068146992192233685941547445785253846208586054363856498546122897730877381657791208570865511899513477862913417146943602648926462565088741908179180132488036876678025280022454072949088147638824179090266970182509578385069384063796164727961900544191667682747232426863829529794384211303101533906016443277303020380052314932381171358623873621902701779766754169266937645308489874330748521605151787048883682000990040669586501975730106177281227665053305738363079097104322227563941456359821439187429317938428960454845830213611277696193821150433895993601686182211866456641171111320053419442777017033737795207186985655270085621835876708285763201275809923006238409329135381450948697400918610219269082813885785435836824310513434456835882210175516120972655773470450724145921777685096019977155879925307130634787356969721894297791729052806268405657885887975123539777060791897422215829973990885422289902858027025011128456301602539588803648166506674319182001946648652991574006117387301039031652822285190025341122406367452131681858871424029627109498551411658950819949402333903212330888631565017693978813102330246400738000669527706479324891225198345227326243375408993407822995852657146006697732884254567810304948872181540713915945910800810700386860532574822992708285177768474709283554526219601279192576063944264172455631143309803864317462430907119521878779038871846089753793038491274916098943689143663607747522614687063565254987080183540313165184520254212183810585209559649004821572309319246382253770480897432130209498848056405794499104173997615441612143781939955782158735267748286620795969052099327364483247622631382740563050119438495545886305782896694905295166076618326655302674577015476874112499678808227125872609669184579500349359519398780032696201885240148245740148382564663624594720393615021927055717736311041234646957806754543552593278153002858788323059372053306187179845174665680349396250282467957072077612044146460706220597648804401801070133314600155107265700976968198542716411396142489357783647475134502679619192613834279293670252819434288637937447602589149104738497021810693179837236366144636293293027911277929359231200846458801676877916851073330272863703399947431479026694308574495503765210426534602154161654664030310830267635058925185362084994328449654689048886061277239900705435230461035613364362922145140122892393668652147245980286823127728359183695298070586628105917236826285345609429770896743619201384121673252067792308669571402086225232052567504482016269498313945742151147419715706214418894525800563291509701561381501773947230338854610182266426131926753496139952464455700348147933163577890066194575986448344679709048421578975005376030614051478666354646295144103145330766292644266031533817376060006316918408573801645818312582067854641942744523222071506100796157308075426903203364820328698375927017289097572143277568585654714058710047694306610458552998613104370939838017443782161444375695966046726795836579529871745665974789320979354647227916736683077913219958390526565766400978641601801393315601482599920024196679308774666592841184947205967358141262769508337258849681804562449126615774257033479711323783680871765207984833990946749959154344691474274491191988102888456550932844745514616712170255328016797705711505792610677497216201869595932237811926931336802307420220143932059569297998440963416316858575945291000415257592324453124927988295200081363484802695750495733710550814423077662967320747998169298371426403011008156121963861528572437501968221626157670662344160275481637134232206400008289780685866050791351644949117040821991788920126242990346606445567923952765922800428136244203373476840896279441560642218836846261342371079101329601905253882851790842003150061145454163268110265962367490453169289143148176932578624564700577531490383617167372860758280749288102994432710152280165200163837953378382261832370624929061843460929185285722550783935521913478652397904976681716254319989333902199076505303011178699046992280529859518733162463693105817485165239702845380270261259901556387143702238890819475959345995211341440173819252833429844669335399595627984403721746294692418100933027944739229815333504075303311623800863783206368743090751723956472204643573732569191034068951250546185448577579191883423509110919609604532650846248281792034452183886876835335174695307461592449855885420650137616887077678773481581345247084284496876499934922033781439915773716383952242434110264368753859934681421037992166448711701422738220593560002371213013214100130739819044745694579088150566954898109877494776637965547106567980203017207642146970536617649596988441783822530583173422973464548550162280863189758934515594884459511392706321913384723191261920103610327429615063764426407344314488589074705527945207696678396609158112724773686231415769255749721666132200636775194430158571832296219619547220517658085065968464002386771972137174542151872648318785371202836041356521412136920355817116656423708803586785465149987216205409692267007784002841448796639562490453882073385203308022578433729167778080581804878287858001688925684932942350409927315839586358738369173755888556255392530484026171452603331511952583747715855362656429590741475441334909363607507547674938493064369433083223628093378525459286821061764734685813726135771359028830543075277765667928227008457491046195336611547489014409742212692727600008997655046961424983639752557139708211746307573257429328128114099075275904325439129209850050054374607079244111582068117844585109835696149414607674128958130776981267515652959452866625283632416197495480709260863099586538602533807667867626125780704529368398047098585295940722640917497966397284464323685718801319981135091451164606215131792719024728687688655122429527267372198490866181097416889406358742965483655079608237817143981782697683322510621101817229028990924881411728632055891534272215650933650192920026294270275399510873840844743542002206071266111091789380779128409819695689858803491644951374545108370679817649064371278459002471921112941628336026641184634139206782067134482054041741824564881678525009412244487410063344977579132994006785259104947346883380255907115828104025198189283760365718875581911511125630432366671342676600689093500567524518722255199451281302874727858401695599332876933331358759397416265334132241794240156580989382336566066341920407437146013127276366274004564504004823732082410024488251022536443127463323899222792485154118630224125851171218771020566350051931645531998954281816432537233585492886152384289153175990938208342506558741409312623119469088863182161652416665632840557806558047293231496227444753378046485701013006044935616657586854169123764831833088639102104237894315846493334541384590278604189454524582103112745662905267510248420992067965709239905125081525332407220578018302050456013631526326448266919808285308155631420706326918612311515334174347948319350073119835278546799910266733845424732308179948984946316697372758127820449495864054304286237023493206047718032980592967208638677920589298995848801270589421037603961816167774054399277970129117881200089656657330988428842814415691290509369614965955507400452219585616266456241778509926036867085257339361151459296466414679106677648881990440314133137976633475865099391095634154576759840755251090494667557298404387641574431603598923015452874352526082028667166231893197940589406154926199198126814124775701577887997281519858795652091441584070776267667299845765786712562926516492175780353663745317333089452188710102363324897967659310570020943122187975839938357266270856165934717810021710699605983921900880141733058388333913979822595043725938597977148671311773600794743294896478696677958753082086740124958181606187675450901442933081721561360667640744286541338649745889607970830094832719555882920349751141508404443199181193101301996439374718214885589011112015636139196732002771504564625379791747169175376996494663855307473783983854496879035894154109255677596248795512821467981842662497321892465096302607923570339359433882392663182682486591721631206703711436235753250230371550967607592288319096296833694624072083210858254256396771127943568096660744213708239959850652079909122892778376175853170221473068106801272228566517123682443855475832440148977474710330597566763850472371023588302966394614528975827025373079283680563964418013392410199244094593627243426069399664047874750058302035828331318090593280111343381830957122277074073510150780406668903116248437235358453026297683514391914725820542360366913221326843346556556135899107642602621448493941992253362577281356639972878080535269001763678439777057800833554078155515258970835905250581335201300434514940337139320640170476342854708697392711693289496819539185817169526979517370436836145859862269043520848405969191159209487401047484378298929830370143138636803934198724256527165144689729089416994918215793613445583126583208711603961399676869042161074279628672068483693441427936528384040538861707978184231714850129328478128305818642105613639309137504569515627555938656484453994300011018775981632495310736240215848289999181346738453446227041025848147622547754844661492580030720076290245175723886899674951305313664038601210695888936889851584325080528295164451930307018935354170615476417070173869000176719941796507114490762148718968411513647543770275258882572745307054973634279151747968436197813389038700071733162475795740942398155347189959864157783715718243419418746042839499935068577145927599506757483336647992871356585415033163342668131892709417539142461100887743609177572835091635149787875740879909296643662480045685419932302772473783783594249300367380384873676898325521951551549897680124108872996912095240898605535327417510293488705813450485644298480593497609502283106181720960548863165709316322541947386595018004766474200859244521853414563954757551930984926596806610214587085730623662699747689632166683528362565457935382271108923797911686107102505625302038310790313689759193057483536963928198886415855962335051758873095918416552283701362271573775904714277822064804478886901598241930279701328343116325333164922614752797767844637693136377274992924572504313666674729720739152607722184843302924113259421431781006140795360948173919447538679010312833357629954104115560039402606638787801817320370716575508127740148162028042207664399796015667453988413983186548937085621184036382058724802850924688141058886191025331940109287972415279497803414476776567985711177996040279565696105700433539577740425926897376985374779830438179674196004297593198600327675491089024377134135493541861353456622033791763654274185853295984983178860110718759871465006110755358583008050599572050263385415243093739771642147234090693806888647415551924560362609938075463807936961299520581267131030594845662758452577661907371528420289012676989805528776109042720364664543621130073891217737796978036380696909659464553909572741617960169792633839246377903976283061920570033584248775955974936259182612544630361473774425819197841162513552430923951532407312727696426637495011127606018503641545990208982894654388238131679644391829483729919962404690567716513009171624906116403760039737004896594544348516776121958274339207850166638414859715994766119935825147451885687167760315180900344526049132960699234410131437078167502300066665343682378659295392801355385120439970338148425177068016503120028160058146849111751441141625397847562282731079733898366202994758432860411942260635547745712847220693951135493994065057476578342268446488395585618078664124432974212233588197669516408354088275468808818966398354639437034714982541839590048491495526153115040881119574070814622374296737796211174757017380302499033404975142631875857398469466353620806266212960809492671161664029930694317310373400896897811796696635033083963517831993035766046270127582959493537031124051747760467101971989723756748122779406880443760371191643721370112076401190481925239921123100980016196504402472283659382573294508354595493608082555154895772475123438919707071572715463824016377454461971146237461696142806043666993072821518053959900241685007161274963850224969485130669897921699948353295017654786274789634888128605992561777529723296977569552212753918670632445580691894780284941498388367649299657401283694357280435978685719210293330813934847045270002015442384915547775279241770399289245293898543924742448618329448773470415663888233601445542134182410124873533060941262099056181621708467095412293796496609858607249139782595163862745767540810077473313062656956104208965071368258177178239719773891217568603633425655310464993016303317149812842534324030458007559189289250144778269768097730374307418939562836140140951446956168505796491475380229270676585500306266223625863653142676425731376466238716742667167792426248096950065055381299640087365518838604672834459047286348894590520038147082669424571272485538043863389710884088457716960706533831856338252067413440437740635068990735537573076121071828143289605048062851893339214890898163519725234875598767255162308577676271927178421221578992792646597236612375860896518280438184791973771699003211778588133746139282527728680803126719858408426637024193694718405843159169309281478399389914455132559923407720595975474405733714693629227255728954452251771137454501014377188249433270915134038514607473562014349658534516149797316776695532355169390457889248125935429040767910191607225162302003080655316433635589269624064868051353238537741029295105675078616527436813784269817485560299259897703253812406175038028282032896890626619437388339368062947079382026524882567021875535499203693464613881286128172589787088312061179982311851103007384319397968779872154895265110263787925051136931712918713833477519360849270524578459781800828895055927769478074461464318637928159621096737470650724964333781255905257594335631393585846316114485087574702475638431473235019594206167179101815606161416493903653692101916393173647634789411975043070765614105871922844993056409553780658427628621704362838701980258482444973096903465500136296468683505192093448903459140549540820085552177828249774854694576045098995792383191944617856215845625280128812771396093099597787143053596905142507829322585139673549671089829537769582347656283928700744588373266868993236765348480893767984172531381711999100465363525961616473098578963279853879480639403456326516211593333683497535684966866772926370666000889787171640102450338835691061814536648976714556923808927447695970073662167161419717272459130841460538938065030773270192485746933504871127755505619224642491679865361381802518446710289066206559919380555789714970951659126028671569927480945056967001946156307562727666717118081415593635690600558989979381812946638793880051386866594771654179132824436789152041020368517769119381623460200469467114493376390039697566161768149205414470301954356260337070057710026173413321714965344128763347991609460452858568268494315135164031904432753964770774534010905254816312999398495321505512944447970962087975622544542679130901609385715336711514634760639860313584409570667002185364483603517546823328372204557531853619295376098683007127783393108359319644952815220085521387332517694963143748566061977574917995695950884240737306500353807933678390495717801870537343959118177106421955901940322662996048050849220994498091928247112247828779558202884911548262585294788015584179793754563463117387652839897354198457734739518743666615292337299472988055093758547012999231693952932317475945370484599373192067322151178324054805755294998620338991235003223374848342786345221845335095793360324865710944911545157208888020489317941124186524842445545569041008497084680585993505323148766500154102027496241488083153440654038161640138036744448939719296888216817157639585944606454919965432925997084926407861645738728098109595680502199516314551390904985710452464649250015293621385464650351631822117848034498892354121630875187079961754218493599509178444950558938165029485220631698670396182935645464071591934733122633306901598481148418616213555489844652069668189254525905086779091559343355255240629107523639719597968340919841692699478752241854233852208971928130920804719799813035099107049931572166663838584938811010488429206252509089945285530420370810244977821628512280367813394259737875991758790600417216585022080050242605321343274927672347501775683654845674642444926477569771215538426184873179810959303000229997357180565734721223463840105774706859756645532705783305581614720321912720951375675864292663058610800451717469927009431425705760037033655358763992831284554583593439789383489070646357689668807395047078592532267297987994075583610436768481152812470905245794203686476048302555794797216328371971223802292420450117142551316077020373049910870659776876982321607990473986564911657903891974224528247432968829452085621468261717461985235631809098420467391013158804876342009645894137667497583221444663754549861018718855760669508112959014470438853284172029674836255780800891540897001671577399694932481160024508609013146362748517739550442819150177518165234505952435081546316342349407846723823153569005390671206532757027453466378877760868704161244559765163065326389798755135795653701681350970300875088146377006166056111941484653592455528535580653473394310159567398325674357384845857856013302737011961485166477107964244738383647693806725757650245882495325043231083557657689226554307204835574222200477149871093573662716600278820361227627086031924412148985531430549271666338326343365587595910755404222644229655012218253831030673384863220976095792000152741104150404227005974282642634095102590674414105371374670029252576380984951970992033490324599967118765888790002432733085168023727584627687021812716941576732302731958893903629814081213370536145997300445715901416623703893839688486380091138207632270895798004296282245748730859047597729063360600094457991818197053660220767627573343672621001447080768573775992362672464792662894028907544168209872065917757940605415032757030636272058210201130473646587477055030153753183396368185259416302185047148486517951035091140469881472518975651257693497855029355691646708184961840808497017524344427674704294159916207216047472029380602191711479579950701033519287865471763196495728562559196394670543202972930583691857678028063230200012886684728437093736654952779679991169548982163042687469665144754806882866657626041710060370201715593126285884618804018421828415404611543215968142004404400592614694217565990963964404711716104095638282743401773303635416782952393783330280618601521275617084352909967817974871415603943900939631645792491315584331521727219850395384247443594421509165399069786705549295427526639555016906618470653429769697718551031013184665846699787456745622165229567487352957565387551761517875779001185648938581479806028859161804160484553381056913348074338581292097625352268298433570596041736663842338380533105987439414092482904844651352485031829239073738610747974768633348886196782018888456811888563235461730387154898846641417315390562152766185865600191724072695094064281179546963568524344077821886803224473913608232242679136957222925748763010295857216866808230768281648277118740626916811720316781216378898950975213420294994593528717197942115720762174704864367508853768703912504431350536040693213020365803203124666679799129379185668880705289540875114780700977184331981752427120443614877164854935390190703083139230844176407950927885502647443903241873260623462954742662415120123031474758454734344550786639501008144126553025889768959342856416722893646595659941681911141550010966564261825200726880621432493636051513494975641183760363508268062521353513632208298002273302828878139480758551705546277716938051276572635565420503081932086345403022612573289356516671407191100980241517959195513579196090577551917305390679137602241343011087721356638725273221687970607544106387350462809284033572568682768532141372785944759790370331301161352026044017576700504216116449835879824222259896365863891895418328241598003094351552221147296956352074291962733297584337784940922658224680219005722383356193921142934027245815650712229961094246291213632771031589626940867034868683185564185548220045423191524255039253920379848165192649783313383776276554388171938308000734397651214568745734375656148383548134641426496404175590737675214581754322536461310599159453395115931270427602696690979459133610609327390436047667991814890994854070530773909479556513392170226892917563326841068904807680769916992180409229217021702191155634404334053045078320685934557560090107901569209623017411458867085819828160768433704261407521214064706642458860805265190069435735423637680385689671881297913002337357364307983055798261856894703046577438673078373611800319996929992305167291544084087172790636008324302184867916725730622701296973909118946979491345082864163537160784625290721689101876092620924138615434092733368930715824945828713189747052543239100547111412882495204749749290654085487522490136203928684486295935667471886832139642525875662646732513018204161904232673973586900915153475272835846720640883120466674572877440359859830745619696742555978563652046485413987612616334353416786555018484362301475835597553701643192522975572257586402007253695909044517660634560966775509519137671904952370661539680475419048552560233724036732047430035353089161960279304784617824837685870665732308952791429404899672384224794470486422736097201748945573763240368098391794183531537575744398112228954015542882281510079296162668369769016907012320729848127877790334906746661832266922220571057279016299670399300180182237328170002794542917089686477287588619635453069658490550750489373802569354958926759430443892633912886253664458840180667288420148660891862154131617601618702823385760791394653906415485241524600975237378628667087603385348530657820324735025267280922627858889385117106260930442140046392058651416695084091033852471253105229878018175300763907080048972091831257670024989991386531226892512522520950980265045776233613644495162347388045102057677004155066173017805184009064342036928204446410613647025674311341625851806054787570684179787575240591710967668164891714809653663181651147607375350164346235197920581174751583644805333915508827441591110014680428796432578801988791145416775296858100451310303486725514004871316206399923149549902056333068810431018726732281432748847085476915725416128225176514747588570132567862838043054342938300347362271032111229621572755898779973697385900843509145004597858165248772578879355469089189959527141035510409734564530029178290814124882156708009582490296595751542081136888204025398573074814604108175939279050498818408754733655199362420286515974773631413874858965198013750477701121949940221951873916767816824656489326458088934041446745120716013448542306287392963460446184485497237403226526245814391857121644647802186906205610724078798301086254929137827540820418740854996341683324389420328502144292581854394325128867296054663370138178578734379998756818769823623278266007393637926641614270513146885475869530722698010973881500411258159928759766997242190490443418590156888636619242085957358464613128481288123720421660074913108755475083096817219252118748066490911053040438828194027714364437982295312889583962658808115594444834221318321459323680994802855885405531602102931101717472883152401393821662447981187542856266966663806188427840347794235234280316139313788972166112681680278205782268776299698574207722333383377837090159137960556340905405256654374181961886850512052410125015116181093522384787264859033382810275721710317522224208253847339714690629309728943763550958143020365440486593039877349915091583746342985067428282755008451878287842911999618337373243742971368810482774840034310009208280828557305014923422228488447060474348752666341641472656803547809201202898856579692539060495008541271036629436219930792267874710830331897563424885495096805295440061446840182137806062875637010093268798351543582067222881326496537798453757864295657253785558025509431135150782739878388809390134813668515482443749451008555473594058463556501656292448416821315448145798143401711721468027987003850620477809218317258793169864641198581034861298381537124405891415138928083088023824187169848945705851022063509728367804752597249441877737946370610628494432354564253520647524065585011831594650747867418617116621627423395947166979430575602948933038830143815043942720155831461855359135848255289659948011386707633725562587030269850775151269000085608959310134117514550374484635506848079548697472695254014820351430760000063520521541981787689358144436211509086462707658754088898648574740140447261752340078213913635459339317054266103238172562683816027010250411047109471580544934201869686651877946930138122049792076624271639522550817314986092404235790261099747775066107675770630841284797127609118344150650127882783517689213609415949745434171882590187594838271976573791004561563957590379261961961258461903719156183884026138050151706271555026906070773241941441553443002092109564387075573519030672246995017251351297969339024911656255514032175917141959787998401414633151592579387078866188347090647266468091506682323287820890728136216170548436983733535088287215083405963591609636957223448420862111098657097970111809841846815755784761048924259296378643922192018533590471085625269781845001746404945921895423436013704247191043440175856453414038470296776456928834681456674558612645550323157358164045282345249362219308920551163668358022737190030640687626589029618392630071796203875055259274377556832778242797437154919445495193548564242320114767114238938109422339344590804360230192689484784872112571358229294463388778077888511871682858088621992244825061688943815135313801788748200061213520804795498193753411467580771595787196924517741456188938638580929762935726905851845355124850300306618666626285775415664136525086153167362961434205936443705631822602898329906526770858006597537669925849586001983762134965744438067484046777582663560187460867802956956307926831263464289775757599955784063351499186711195206198236101809411703765347432467970631813596681916447632560862576945770695925484215972405165514443410907984852954506796987706509865306071191145438365082877806140149383420395495657058343528800169833613651656110840990847481690227035542919939955874606732122472467903607580823866804032669419390708236666395439324406556050949942128583771278608521868229749822909353219379178855693956772619894395626619835229273999383982576312266561762668168512553706076275530811890735913993477906237360800039114586041604789487032495476157752770298756083275759366739083652870004299981550198643327863454869309573283848362088291074924621557822448541872385520568459444297610514550671689841893746376341202174625600583831520795979499061205290445516147465472247699017746779163029855230677710592506412680906212835925292150911713570648516924966901211951660723165456892978455720537370778152743732286022443295844060572713796182342612581332655795980066161828127149535373685388630631552668852180503237565749860919263388799192111697311019375595684446743305776915368489667194070242597204015464045333983098033150864571558245955404241335004562043894751120528871139918343716806898117536962319181755000205696586018768258890220520901878196476169835524761849371985406573556990553508295866555122097870619979037022467536529897275636962814818925836021599272237989946803911408413935209014113236162074436811274199720831898498412657610036651209808286799651115294703440993974806646273745988604112124750508343042768564379409073506652913135543093348144676650380504069286942139559977997864321144937904174998782419693361937356709450786383035162440350958570908434001521991933631673697965577216509104752711506368740806351331095539985553764874467299118129399731542523688442547260115693035370698702100678904775501702173657637312410647273922511356177517068135773791564056664088221091413715928063709048826113785224400104713350522535974659749445685082969058077797202630575984735839580098869771647819659976654629772693575208237936365655375484826208179789409364690453164987705038935375728474869686083968447372587364486568324602131030458025417894067590013242783447130686526679264965659481041098855476757775567448129245724803888383958158953082573355241596481296541842851230854202436077736421166043369312301938211934225618803126729968004767187003024973490478877975926666800439329514519179244282561339736602621344979901312201908738510996939563204311019741184649083433092341767198966775417791899503401302837373636745086893607455805206851959569406939451348700840377597487416872502336936019023401709254933480420508096844449996715671414733164130075907510462951360323802102757106067864108530343739146132498704544591317862808632746468349571267156789839064315485859692674055730029733442066780648857823319929235633492346860027129001333891765783745249764018021399584971515925926875651865933156253509858743595025244032955829126415416274223661691238354499519657657078158398299530054753654574672511099573613777755889108507688156366214647158318081420893325990008374431112310070098221482486923280471398161532034180893661648784563354565552683546553225863357645020242259638285882875875122451895581388013327072744270476131877350669103479225924430445123776736120293545218894772056193727865251275578451488446705965470419531418531479051698372002638887861794030448498296608353281031705341264226474772516291110086835401196211270242165998430030308715504492843586271562076243233137632584884521056161148954619887977497775428035459604293107809232306943458901027060527298840884038643966179619426035232302050118977525266210987072565044455025344704464076380567918198763801281086429458842963548312440883321557898018291237643845786463048286143347549369470872111996790679641143069733077095610885214088281143249422980810251618824064292670104304274644304253117688056721027309996832511157753546807198834740595020110568238371062625482110507122885042960905066615130561850535381663740767101381273771834163873739177980108994494192800791065028931120857764428020445982500959489272160152140727387077562302685636384551518970543167941233144971409784287706157792406763825441769553631882863137009404596516556299635961608866223600448360973582019314138831297955771249999165681982466911657633690313703221225623175197368710773458859207906766183980852882261070182661936996388642499175439233719894950431516100440165805757728818815997132833280880426841810011125286859834147432607846971885655649231792765598792755915074999072940873503952998847959229598427128391217748187740987103542019268879719796932201133175186140812018914767456235615762953475272529728306674263067939043115898326093977837859642277390139603407895009846235207496983842735788124516804711178889223627420818951956917488021782301958279741644579182466199773245941942477803091534579332281890625372287841480453599288034509569876609918894820156612920152206465411298545850162492324673440767189366321541671815736253457587090948957791389995429125766593748348723751451160367117821795760970429517156930503555949968370946835508698726307485627498218491755124555389082858840178416140295020806742779824368850715125279296262548245065263980840918849450268117888371977760733615525559973180009009245075051116502404521408341092651644668038726137464102876667935027879488186630796813725856499303526563323142444943053289772373402687068208300103798796127145627979391405924009067242631267556797030060799148833257357014643057006584410319854948865808765038901658904553012781958782025218705351510896297488528305907049348766542032907457481380206309768512187644781720802498955208785455548757758727761966744209572528277703404448982897235690042803330613412941416911016791023149515296530519418754778730741862120018097459822945037280688947830002204773039593696656784803825299290814519781137586005932204815530297915442001233518649476178267895907380673098941102951035497900396747000909962956272871808953746516358561787650998535920974809225982262234854526936748428932514837442341415866234322769314021960245772399938213842743795548156459977764653462879764783976327162984659022409052519672724094028245296788586669309628004916909598760896653755931481433851826593975743653201413410773746524391076137954864278890716153942542794956422413302204947144862861798962081240683667087868648242862752528801894288058497360999781605944092373107865961958394322745316301854163190745419603647494794675809737671143359095205262537821224390859502134446208641095580839401952249323751125090292543191360401510151069004320096249057402651639332680378998983084419950556718971652930827345596099693482381290656609021418724729700268428878639027565297851043328808518373864434603433378866891586553520156901550468497779940449479829869302707597952402411104109403513842406704150807221498805534086941227200829067316724471328904581893753926727163447697601517035582921735572264625919860053271476232868339741109959842590669760730232442750364142158369130131800243432057510234685529001922025717928342522242911176379745134443286715151175744496980500582925563840138347053136265252790675477022415860025706658728760557907276969040565738767505560689085571993046438516891951655368354302648101924955442157447124959981335290899308687273764890423917571337833590369509006948062039035578442832318570399681961217323256652442706852938739849222313722186940123146609639023044694035077257831934017398855380499973822147962133765600841104880239569634754569402508714150463143575088333750029610460779309135610566870326646424578821047148066122408136462762048059831097759038886872442415134613295707369466697848010320746860162983371479068125560759921838825072076269758628088172086122542627695363556224701100471208756494305730262741942766741496764885984739132478639137148025355492782148531589409838759928656771415113142234578293797973743485759298622347071626910026937558780270558791218208484485507414153335112081195835106486616446197942245729119031966247108376211927838870013975188957653647112432201658992750756209348952781902288628454453667266544833492855194270836730460305127967385730828581212874634981522629006890650528920521703027998768207505126089541201980700989031060238590606085827331265577351320516204811646255435834159289006013298439871403752856106749066320719567416627818524929428932314513233103844984942812927175890993097937334222050753670402237936204862643066506767328381711935246626894591257166509239868564047896748951435621902522051165234482137687856383498253466020224629577845370623463643303448148397478536439978053708400062812678659616450258456254663921187008028327732950763085870023160664049613267341883074746925956560909770901000359105722087585182682407586198698279810796047660523271885693633115375935112999034000633882445157840549260991589582685100612580077003324746479328124413280722813685108404517716641321350441775085123254654427255611561764622167301520441869682687840211689627499963640120907038379833093181314629274932420109163544709700121343742703007779211364879909029889999125010424927896826044452030847791142779101090153837718840821190266395718955052006399368364320202808193391856669065326497274599531166918044065868531272491614232256203070156320838861031918595383824947235704142242369909356443484821883348636835829446911014270508523810691208801963805913076474447964635679455769170240022612717039716846461532227102357499741302748699236723543576875678293345547324401673917408577916752524512132852639508387422630028738466301311646326705465673007588227254267545148629390565966130007345170356537237443772680887323119971015118966786850383173402055292256828240497295593364697785703101047811839222076487468676552383682664981983833638678751501715262694265732088519959406097451665870671516425062946146067902680658157847645968473461060868342795898282479675708885308903136825875955838604896228594464157537552134803403678255349642234421382332995658190330879561092539955313541220202877106704671690666931525685724682590319929861962800108693064977961465157771670053592050350529052538393215383328517648845072934565998798956056306185491412498403779641412058174213154835316938296302583597070024848544560762930230572980428574248197670122679753387083409853502501336430545599750967724081858341003073466049450009337225377757165775958505554288732677536137196932144075830917138489220142908996608111956333570521013591434265071109999672715878712090903352935183400960418592690592853992995061534392985380920823424346387445362194938139800697736626718886852110208634461587565016315073676918237350017065469042261410463429128560629287504730649985854441519595443997775644619635788098281538767678029564605850393780464947723817262827969486956655457390478996026525662829682182416260466103457172775185517699426716266671064496551973018358348359229463175796673384634066289376511016673068024059120349944285995594711228173773744368614631200897243157673019480467265533886690587797825635112395680294778864463633517152754782195861614354049131434567579539928474124206010255068637981594855417143849567046400752957618125327101313749614238000393231851876177735281090119632953610519620038966335185828662397843727317030940513791612315251307440218635114772774374190250843537873641763830558684595270621080665520538712780818266876410915253713979202068036966208022714143146485473450288510833691113266221443189391555365383881034010231704500456753483977531323341894895711727049738919245634726352765495441082300190917088369463441429069211484878301040688561086890356179521128143856350884725762160899615942116453438752887110486216765102903419299915505927485716756782602940172185668692350657580786004328208790619877041712059659236917791211942452166654410502544112281886208015958678761226061741240232915814573726076679901034631083652585144436681877079523718401341815208832553855288304057987988306311700241638818707031510226722848713969673489719928994770979975681531114484561911580700436673989126103866702125915860836212869060792616270904956888595574985168471845958907563045207035582481482790120735771179730279533746389637528057255534982545809367739381512577362316814888998570793152263347918102458376342479218104372163892819191322802100260570496971134808404050480608729554943382460442242650186437872432335398704053883310410762989290622320322254716056034196045189227280342158982254318382445621551880427252626489613060126325977904471971027363768554549989178307494278461008140949499390778120888233412565865210437036658068064509040952545172312601327646196910168086971307940484293845777962019362047075660320095166025956398791168809350442002508374054247114014534412862767223928103453145164311692921125813087606711802046689155268692118642089831015594174293197506214004365262438903949673293411564348097334140421442504837367587299552842190789998996307092108028314586870774785577764433045028466182976475989168908034783613450018786832954959361834066199662763130837140747813395681384634714377036717412470970133911112001481519206787206090893433155870423833975169712262609950249375510187622590978496308150526200412874236221288606471514113840316908216897273378446950946305089569425142222607521536177362818728259094424899684882177434574670196892583756326271977217724002455644075702089621113797696794053100151957279783738850045073192841647606245113396295639915802823111296475588963256912570151310758819744515728192980986444692673818274476780638265789457380199790152317185483978470657087079025800582005789406504117579067735119950702902141281894388303309574171408906299631432861752402610232372030102806315121390178304076639245974530778502395908314434539117609265044373230147285352934951598673120653693466446705273179010911436518977995670276480683625999625363512598962324117891860746572826628507857010961188841527374810530214922199324934415915117823237687246642816382555199894238886897635928314664610843198941258332099881118724183474723576446929139904489053665423794580242806609302269704055422909273899132647069614187905405131577691542888439821872289487673946509128947411720037388595817410358391384461133409640188019094414324530788869567928176530998886681549503725833663385352784737839030973938323583645841470911495298929301705296578825488287557817806997390087706068609083301280145827038224264405600408803745415412824684924172222573474812400623098151667770184513026864153201061152410731234497494838140738348152912036860108183699460402483798676277161975831705179932130995545061404734260926548595872567305214728875164573252979269543698686751420098467302005523401954383806072827852436092870775752997660130466787528684538803573056422130873935157317335292058430563586662383510677471315438164510253518072301813229137908540846270339557561694412471054005302566955231999689634234024708753570411800547500440927963491556633329040458507597230591365105899209863149697859760206394869750321271551772314372007871469717624795955314843193389178926862923412715561336435638848141524411194751848396204032077701608452807544238288789684430980617403319015980252146143668843471097498262857357522974829002549730187775536981128896926084832698473228196838685813812015392058441323337821476792699073146031196555705176274246158724547323408083500699438330754161949261988940720512956411853079823689239194780312482524287372814917510488431506578377295138286960745872511977715750470431262353009627948671869968532249469285769163032999303527866121702093387746274502755271901367472784821165195938580443018183726523255734483538961841962507693117661646789977447878448257236658051264142665807738507506414758311232103885580666088900869439287520292465022561745726420756869967002514296646140049698963934233215632892793534640829518818758161099281310220507992969234123364621889108745309971073403062872105373188212411700165355437685538608082159905221414833251826644441013423319413297942383091294096554353043432324666003061264975912495473833894306970374543539741093748232034398554840775483231595918415708308600861000004389173320065960778064212052524348229437307120529205157353464426350800563660925234656627126344768738161227048902389172173212386068213566995530499429518729997672386655734614878556647036924764180504596314431511646806248276750987092934033244655350716892626254709661065725101041573701479352684131373436729467706665249688400810650499640906306231015253944853175878700116764921938222212970709277904983670260067485951947294038559354051242927699201579137850428716343799862288129640541086315057954020742380300353290951513843540500788590502246818402877720367512451244218543032024319148283200192634788578925070669520352913227130554890784270000690721164314273605277258741682527984579918605602437885985035648366754874615934069182325119051101700250089162196912500737188335004005442910293484439836803905137946863817047298061077050806807457848629871213711859018201340982385473441986955433731978377753110433429595178579569687315420988763265801336616736116909016680790830175155558180410584784643630867612698618025375794382706921603133036835495657295750265211442115037564781012452739370830652875392909111944432018352591480809584410492865366404795059055796967748354226801867445631801304445536024668593174312046173924814372782735018034889142197266977753711003417059242959057321705052939578252716516050606113328125129427858463948462818270882310461147948300297281759855075361673967776753738548666349208435529554097946051367134317132569202711915215858155033145579632004193111777716653313754542379840268927643078862536515249763423013743844697568505024984978377780361589512906927335159544945418466388297482756914707936014784506753003572979506113539401548091007881130253491501098322793825243168771861465566336347891613778483474927158230600160677752230740004658135045711809972900962760217196536765474123109723825666024325337068842392794379212696562826841552217987031038013388375568191450711684313239916245016316115311298702851976346335396260036980088284075353131788432638392482660617707017049393751312440855921052177510770806812860847677133263740349241992582911750607523817943437886707525151823122035826162637181411784172297462826626648641243474512609524917754233030002387419709765505274429393258190573485545151203653896839705115249670035223664163913063257562557208992029909748391641079804447351620535583395869097547217379331431879271967802219452174974940237050665338962807184029255986258908026085623073937416277093842780890022133201694157858078551381569821716842294467287762252346205467784278514091199080683117183396491085945658056744647701126263993144092434132150275944292315464255790251673626196311756510655032973477990198740717950510157191557772000047632911316349823678017784598279851313407075613441328562066998947665574974832361726668554785547700583133601287455819845179146100499593327050719784302386419581473434432254770181781232308702829523866439713848935869372775722509022899958953404103801244275908156180353027826032566852217027798257363233079110283913481413155071336815112783677354380769088420071076297721552213693678863634690707092708532273987117583744659207901124811981765003415699955786790781385499876906354094809093126494564100670457075211652314937789038974428889533816191836993292446975485037053830912336288888929821350737105983479396271536999078062680648780627437626053690256141131136658402774454203077458004834553332809559407007621636316672001931001852637357145575925558112188393789446678627775672646584607417748985386825287712947541740497422107821660609493270443934133855213758508432467018800283131903413337339193642989839699497372817863026650249353283979829215709012361399035778382544425414823158206354363419759412971518058126692729151179595232026980922028780807354107426850361212509961500479705232489044250010290408089986716738454465481586186684200546893395064083198589640585878365919620637907212993265414414570847335553091300869232349792430771673478174163192363267652677293088199010531752947220573913834862285800140714844031778796409525921761917451190595050130676595305858463101696491314207872315903651960745208801173973907300621904743133251383666510064632995697230430559212786102453741525413519587165669799390077169068016995668877911046918643717559118103257293263972448639978821489001062572042943165403880752085714247617195220004631984532346267059509012744148375580122713402925650510374881235259749681070078413382558366174366659543970852338455709961371357103633457996321584282425060902215583149018903710256267894763081670109760866297068377635482899220657033943205500442080511160905156024990648082718880843365887960043797211461515639145118700915213086608208100208724455903412001086045045804459583712473177944997322205066950920465704483223143600490768013527338735631751985651497131798846545069223546960619065018162582969712624417058808640595146924520996561136141951098811436164364810352142340242438772141663385365331738797665665769406398406662264137594132006732253721672943860467149460746473624708955890952957755181590791890163824717703993251759589361022277510528945729156465139037578265009437128526806577344449273893489509861559244279865386515002338865853164447419395789758572428369619451093703366985656865283134847309775219683924846256923511383374377010546996645699976372999106066579937592921194438395604165178213747433995403847955416061936579920676113818508519236233928460640742756762345978871482409526217099041752006978160375741953315095855406334312754206020441509859882942515720172387070004020431597241405379894934473141351207989849267160562123654485908731128787183910938863688699109227752216510777367248171410548460767962133641938883760709751674722528236688237824879089114586223532810685123593679512916646120839486956004215853494613194252757774647794926844469983748715515352881214593848439745600184961908472305009006609250278294619588328711230921814249977092969636121668837809619655770892576940875123402825395454039665106095580186162624278607132530756825785166072228864691791510635737680867001205850919105561724937854625790132416329844218760466066905165980475535510702276357411931262933113005091164915389619388307970460695173171939565863628380760236819435995445814208119472382438325807077200366195187596086287368639371642796380599949721874979470463083297481758531519462651923972506451418253215430048925808555396293932079766383459020993087656170367066176943872591604788867347158111811137226310726436565900424432676891805243801832370680998476348599874364339725684316674134427116886458585003554156501065458045712493129057835173760121847670127910016271881948729901485197337747635933918536355329481005390474653351599562330315963687277418741051730391300678980223297483088042614323936204316863750423021601833636745047809081075190816165519827067478752640208663711496902378243725671443274447401589461104824821892439817659746475755295254168876119948705185142578804663605249882214623180762181140468370657754384766897171190740630063554568195396453420372987902884396608428987444125263934472355240935948252176213815277649498399538597588586018947840634590863463438409752136537975382368988357584647792079599587280176873442533475516412094897617662193904082626237456636804578711870968261390128704195972463876192158237186126483547041690645312364065837391556089711292010575823163854240951106259963140045676248564337025879745063511079674003031438442168664902914349198940613479960682524097081718972039087207321435034702161230889559994018001116845931152302456197564515698833141452714892236448188963828746595683309362497193699662022725943057063535608421001201551918157860977020368046095136298432943096399444811671469891655735508003004396418770036056249002738605096277252716107584290420715971087659226882003951884020501803687798150538579854441808725164616676084600986676434859725592854319876918802605797590324141092428092851674785413689285354095264896466071262075231641075844070923561291279031232975818604019663703069851444309606832601083682096190125630318197833646098865471024051550472064401664446903648601282250214098348052687852943165823503437835712030332620823830188114837903796609869248293109099685037930262423277392119522751359436501582130439672285164792331096574352282335603718247758547632502496065669180041638000321834408626304465195116173306385473399584972569196185105840411441028641856118056030321670492217593971740148413919379397704065047919957865626295802619129230126861008298519441596716723921944149061289252831238268417024437588683181033001899508598422609391556720146258648370593583880868757392008412323213408057410824053258905797842581751994666194349213935205725702176369702233159650915407094394277851805668731085697002711691059336857583918632780253308368838406946973008593170627523111979100234387827751017886644045787235605118926980198624963849684580259678719679941236198142404136292333550924168509968473851308311060919892300342437132706700130270952907702805134556644089199289196411698848088653754714881477906761367712019384553566575041088455287938431145369988865536540121729141232127473377002106688149920390087758916158795579577340981083963646736205945487352264379445662185735906851909622580933515896955613456819345122476755139699978321702858222781820972926714179166705845131371928555862847220867884083131322890532391660774638303691191420759056481931262196651766288674922687823979234672388891763487999772265652411338225141773384423799466914873164974327229561734087839076728746347801651241848705207173440296380048959456346832677461135698083281584519513528531797067272601007685749030973588002708943562832850120068068724364722293322064558085572699928579160086691315621883839050374897216951825023547699981653347048300166124259002114479536949942246550639186188039333449332446768965914383049171569744732995753315251070134902093712601097153122179714122579098787546409670782924512288095789254927277268029134878338506165368782901701278587861137251662243180750987641344334305048223361614360696974449500324671246570874409632813204370719520795527511542283316093257666273097793431909249731791378449294225986911990449382448587608180433797261537406509866227372279201165759010895024515707410286977773767000863655754993575972148392493076439589265891167350972030157864997408549473985739028375144996751035430211783694699893740938887068946015617919202077092356656592242313247351483928703473978934654361700089212215607183902940831471385487036931741213119275933493334125958609712237213699194623126316500720194694979523308003795690804555007030186043919185085644397538750522989042920742755311310247807418728390278024887697669833307511004409466856442396008687697042399376216923681536047761921591251102167190817634249269099168482839734584774735193258987751969097210242077020228646462561348562422559118405786057843207938744651490214756815133238567037230610548477403651312956257823381807587710236947805366396369545748559337893131270555804196857492449673167909104715777927577623600998864894324934999413524589922934018132593942270059275113476949748556763769238688905988498484376959987364133988759285206418506577103305574965671391296489434019695423656596250873535373159558775113659802058452963056016295528429882190898064518225444866985148580237631734031456148331972108944869881393256526723641083072470424826310223792267504989451890686014094142658144826206660866541010106205314219547454559166110757270969265943264847259779777818420644304259120618678994246784961334022609276886247787673570927987121625102654059277645927539277899368764863886005108866147752760205123015998811646387844376887576351208747253385973029956528628971295689569981981098066078670415157593823308677712692090609484185681777286207953362444787465985580298958504956034813185893928257176024399767231362792901847128154120230317279719892348772594544769037700898713272001398477414333524876182815126782572303516919946334286686651386340164485378576928462046404556435888293810267734135744358325294048679683079329460295472267570342394015067194458652642295379457195695296055520647218991153685642701325876717133192710977551544681790987130028522558658640009346582079192572231957154269392477685089089470870211673838945199045922541069487454097280947423293930003111749268645887001060778280176622208693924066829608169964399573874699690216394755626001295797576721239352630368248777555004869698172260686029682580494998592710111908544374056010638713955309357311902944142230388440005144105054722760280238145027653974759807331968910618884417719071003115065283140859676440928706512125717511300579708813321829200502206707712189027044657410440540194151552918261380783066393735314621657790817293001478550541917870727390085540191224840487777293558291922739501289951549068085678797327962027814294996376465850686666066777996235777951270683145805602921898425169432001848796934050116670923754047114007116534708328535570865918411210269847654148689044951103277602483251141698229176703097816326216446572459481260214174586640360727131893002891089799813269228236657642330012861369135196224402905940678886658863782572455035918749004674099437027763128591190565654340503376778468380780758148337322299593254896121216032041539167135575389482382595479728718771454340542116523081541400279972818565163509865421270972040130474590597021045974706062476673848612427794345887129507976981889276522324560535306174246835493597738419519832545611254588826074587752775783969628975410150165743605734457994438614483067420674471727173264775643389627080868613497313220169006778186206703409719701107911983226940332380857003260500759132180845868617755521126073591863629211496005041794689696024062795633062869457429357193605682180766606603099046072843557002195519770040951749334194892267860162808446349828118509434657439246472965544166066671783247597591193049753301405116892599174714078006015851655204042733408324312545007368713996369206375621621832863333424514078054518415226869448744791158861671748757400072888587844873131715369093372665325395189643767805599258161301291402144473483594780085839835016474281550318481503053349865027924299714240176703972010305945184933317399920086028326973627031576044981416111387192526171352414737266050120027943266340873372589216674315936825103646030216208036002228681469085263946791705884351156430753966049948748416677282280151793562883895697119830131027544590795935165445824861711321148094325390047706343738147228309214969177571614812301162346147610660615758966458897475568193966071679442406645309410581264261184174735628121797951210498937712822536233229139518921755404844942792580897322196875919082705431930500189255088337466306409935356588851556679067942044892664740973225651201246883553433767296888871583380183371425454844595870235750192965789267206867785484049392588288131868302445825500727732166747751907672954369750597498875193658268589887725081242242846467281843168497368932907775081200373526899445847799807157201696242800284504580864059621595423192231988037536966552725778275956214793805395061296165384470867564436665075472629750291519499295504057885496070116673074800716265432374014846487442223729746230411000189939456794740067209877227417552393140702868722034639964989007076148737678823615996631337009919022261629027407130978713072505911609382380459757403173469763125803520831499201244744551732836958660851004247999565835276865661119716740275048352281023966495869073851241809161088473407472349436733111734656899911193701621322004176558582891127077978794475712204716900055890345442814897106265720117922461667463295536996632521777103824915531993330672087297030488295963795220243436042549740638682082995813765124221276556385910428880150447637056013082580314354601729653965335682774212232470054975318062627813007044489821664334092826904257341898405160588565306421186649047752658153993870663299327973677085280713151892213698444645054162445476873915415221975997870624317011215491651813673709750136666352017954737232874761996318396891368237474949062333776834864114416829844999101001198172345863407631491052585623689796335750310536930383774893143500895710151238909085359331450931595915468990614215236066205287550093419245768392680963961068930224409080266239603842249914053191008509655549782041386355005586462435386131012218747932961286130860057761692011106548944510701688334686327457888513889278171021018635889614371380770393134420782364233929222890544069783407153373115682835208534989169927240077550561001085822001564976935768613650228048155818732733274128965799894584468327543742844097324965550226950757751033386292034696895880971527646185859678651868231936851553924235595457084134305933792789502380311740567057105060857660434471204517630981649725045772222979506858604292406403566817689195701108813678301463453603415525883081988249422836636169760685325746502054950075783621891587888466029193213364294089071226801896535868306636823454224853331987372859482666193149690080623854286784826209401301371001001336051260391141291309142901319889486469437555028449666799349554728925077953707958854521995878077027856380340252784164896264532514265657654229174807764339861417369538615385510113865793290058320570656698036582600690316328325068302171817169096278550825115452016054976580190717418985057400553935886172323488762929118882315714959788042631055711311243481616684764746254975425941586794647567282498531756632023999603168175870383799975969157895166696699567290001201356756181991955566967209360715169282885891444158354373916632758869027203772619753100849659741920934415291461711617411734240515383634699339778817502649915514815819197315088223749891733802301272147833211643888938698784947229695131964042490259339502024308733328345126164965921900009614550908007340851869602550384956838552150395770878528853132324403846173864515658264123154734094715153455211660469442418262229680407272773082103203321487798969058930749275502875650830230300198666230765035976015100960731048984127359205936900834622196320415751101639700498109871245727371144462510737221597713174227535146503055724364054376311561621316973758651828090875292662058665941744376604197766318381902336339551725019561093259983680469502583509160608800426742733667227840553199697608199967995939333916418458645272526724717799448021023994575787885042855988448104540653967005002369885023982286609253544511749678221404305363516068285688791874413362500190066179013254457170512474368772942256422526062649524298252023395041592034149143863842190665979939709471405500683076585935103489523217868904987146781628423397678081856789605686718869458346968084343784556534438946507264735345246346762783887020113139705787780300731748007787160570928490837133566974290685265200809144421596214984559669051765288875613292454300265237732325564769903559079021657032753477399083533872591057670261673224872568854321325578236157301790345714522826420133067577020215250526699758574522268671424737190915136040390378542067516055263445876106238676521237180778135929851449523322273874986595956751161118688227116131777872565496210288394997474757631803595093985841862029083660314284756018184026403835583256991075440984559907182372789598008745902213302927479202635717400345509266030575634692727612627015937083615009163193444478345853177930446722900466446559065161959447501632127502171726354208280878424093620242749990461017230899993399714990806907495447609113389211139927410144901699968371238722923563067448077732384546536521482194600443013119860734835295818899872084615132687634021148407405158403936829837388412546530269044705608488025745586048275631746243170857910305133819864817045116486896214722968225579578064876075058472698666521522380537157180391345527175741864710398691021423258387564037966163170599464543013504517290612826404224841298062544190762598216513529297101744317312167043499308835698102343512002551588232030363632431178151852021213186284505511497960193894385071806750878477553325209585485059471455773535162399687518889106901882475929307856054036931542787286699134776614031535161268126457121001165290259011315642921581505836073995680397648347922144843624561180103824676625232495103200557988159030328742896009531868192392104277049531662821039044166177810950994502727987060114999314813424174404277228832712234561791625895596763445944034026123307417443424861063206052712308241010013527502517312410247929409995760061638221420029933749054814083718476275272349429525005335935012538085652396030718225550529313282465558498604182594427843428505875762014621218740381074791783693248051379666782964229804273270267494298300240510779160695986691889242929335425889281537775013309148706607372443921790252508234236207838570319366804301628605867354098704665348428761395555841882032800713778425098369940714413510717506962497455954966485929029250092015189046337510945280057798994355356313510810160544259284012381696856434370432931078368080195911214249278477589127162777068026023255675804826731713487986372069803141079305435701706601171482174843526069271569641732733598134975601549279754152306063359931173416215968627855738088416389442085863694259762893121982041068902856091719845930314565703466010902260626518258863038696536320840599950387031983494019057665252275943052937068334937129743466411429448283929170623436099029232609788408294276272707131733291087133967233655483960107198745042136144703784083578986528128604335794717704454907352545888717480665556459687847562469675497518540882947451717620373041105006730311763578759443279020629091237739794320550551115659155964695957489969751584618221014082904738756354478516587282542926916750965224734980551879887419983451849666258522347125926040153807509810716166099049847937044321642499975562182741069017986853889098364226655725055586535863485202740427009403078647872759117350971296085543847096714123193529671246194837863203044085404906726251769619307411055159960415037379202828481095205572142478561397124190233330403119538110704058558803656693963767942194195651278206828380574203163620920946003558612173275229286459594047690966953417917913017862433183602414449994832841313291576841702595560367707829652424084514882117598897960629530295335044835011208028745902919435933696699858318472616148361349945384628981618036364651799801609578839104156836182119626789202387911729431243650108086580984790403139884691753831252411285481658925663402886816625031261903108816000350494941388638211390913684512964358666596435206308870559325945611560457537608737309385671314383002750766668030123389390351892430488140230455032611158349072651218237372321198912688482962136665934231590079256970507547051251178810074356784357165151125032035709773193743077882873192226261943411328840803912757622734569308362923485625735331581658596963998538513634592326357197823027263954674608948942864212440246512794603048120926261717181707156733884277768667303475757125294713385935520189223736168678418617761209630903180475128168974997546463890283410643668467624168941479690319050432017360978248564992461857197688977033076589494938262175320048995391189485896577820045981350131904347525467408909309680500393485021696808631052864602644698223935323957563713458178443489058924075245097111759895191418401365443883863621189217053263362826294156406384391487805552858043658889733016476954807512065551928308188993186360027054908447095964227611618668038606528100614470208186098582208965387439985002114150153154130964821638988299083877834062683752235424174931158905725524387965556879009221147663816418750247204227919311895284054825770033354978070931393673468103137079223549683945079311669796383953845446602872660269340126975486183157940449416094828024598909318236143157289375138519714824936043131247071121114905007722020747810555104786907432150694186776734231745886125381768780773257735639112918163177874701494600032118106086412674697900657680379341170516985655311213490587242036937542544880957893390804375718111817638989890273973502194112808023685026928488970382549351576730214427245212633140371782095902952605947431020690579569380765140561194462093335850806582651596567443394400033260669950388774998514154227285348312593443571727945219331371757921644123322496924680220929527735257361447524140948012704806088402861221741119579768973444969928753080614398788392699710868567474905253056998380183311414109337101083246416026075549736204492718464969334495392534511229342017629552937138039640195321207665490145451178960472357725931572223040772494831595984151940576286589896174607357913169092783708963820617228848797041874315735634026617553103469766329264415077509392860990898120339692031384747022966513599825829771069153559082201083897781422761027352083679261410564126906594647584288060347550478820111759875147670827592763603740815429741769594837645127541596933551146404381637836742769413395992305530092223227989983807154239408519335855178709690047076691054690509190625355921645998881196287476599545494075858892093186469700254649107223434257254949188941407330062760650529624008515037762151121801903062722872544160354252368714249616164601516388310734061534620453418569261328979017735222527911949211254450509314062063460453229368175035435289035612577246081984017276748847759488778700110845250336362089601274429057353118429665870495163176505048276419642271073422001032514114545267939273603520728074483215689352741034712921975528077866528688042287161836938213832021961729542059079893280297518827598042254615678145464940209356955787009542561671612704509471820977844922236718634298567282434947826404056215093432071626851730513709195797005913913767269130400187558033280641996935692483701660555869127989133140242199765546460512535274484859347378853554362924670957650966576576421434978129417583146465822608215194943785847612087445120373736586759901432059477725472716042573052527874717034898067162327219553730379846766390225676001819413448389217686178359772439206223191187264589220930599426235423103273694276236906079866339192690054900538023698368398748207996528018384626263563824585002087035222689999262642315108994216833532986827735108930987005231629448295315314255118176227115692637250232798912289604467284725208361432459601422699128243896305187551536441651035129889069355054027446873357462691255803830385611102307726917381039366314871699945277319469299515905946065358396614853338549158330531780396540316486435232287424978417374448416052642315102194102519770377488383673638002867575583149273887539918243026330640701417461136884002202464503769141373319202140177073886081276730166433515954395674021768498791240899801552294315592171704756111196985611540504696927257427491209849700573948281933593719929746429865989012308980903263957425462312637293810111938329741808059237941076966269393204805047968794709953738258670168097059097812054135373213406742259558703008773700254563929218208731223013538641463663658299905877708076241396859260757350485206260585526051308568119878764683733567680124832588594203531903362220448035509295967927199120733957679789239308711476593361385566028489325415334990846861565619805026213967773551824431317350209943572548588728973845773781711663505989847740485072327030842937880611853343579677225622004257594364521525286003652134443399470701797286942875275297910793289628859332935565956359397102329417432980403232596334393544222072524197447427883029070661710125678167086385958204419313280026911560975630962546783261909024610026251318899642098910534264971697878733707051070082353821245581969345813588272351627703567583344447057070041128000815998899597341677986405948935758148715966192691271638073842297820867570471558476769300188790826237590737868994385357779956568889637095098974082379366172725554629338064197236680538225520278961684439217071061295773819083046065935542466417592032063035696995558177399717080918647523523537803088593223780085350480672892646598339599632638515040369586723558628547207660507367727584196190953485908273655310504107326274634291405025559210336811429393717645607950166061964376157253729841833727990702847392045070346513219285588533998645142475613401003879512838706843390973017592190068270231681536955009765195438723421636959241468073424612449592099104882263802565474275746092400490526560278734578121655725436663869766411896251366684852130862968078436571729502697399843169404886698681560767970822274894428020577816196747629776863728999752621858687580479567302170620540853547497850050485724106814144890089786570951395101744919335076574061935806480978979887989859249364933791645324636300638883164586108957965024508317552124213331493759949229777361849191701598364790160787793708624341144614336086671154994541462000625621701328222958413191179938997003009746121602727522637725353181671515219179895939927672149234247226604462616844165431283643722918392227198992560008193655535179828588581078043451734887831061114687738210456223382722369824949839504373028922491714718849169752424049090667884219909962139844012562934240549720556018015839363776993812138784408651039990627775637766549243280712850351412221566780120533121298040741152705921389605180431296321985608028370368502791208546051739448157973202379053267133402456262555028855056825515307782624989188478983867440422184471839936163207616074286102780190251468798011841098220055999314788826404040350399355884638953163425871409152985116873729440108805689043759772203466358761888450635698231525127735903157479822705544047485072807367966535360716009966004077500622496740524009738538933071559109589494300512834100651156927078204171824210133985853603958709121625410762067195807756038079798702480466979435992877688043076457469580328458024151387631542296176821727923648068222078218590891985176679033814350639846523991657204926362120456723389832802397845484165657317071889566062921730264348998076262337655124184295037316051438682703193143697336609088061565473858164591593249505140419708962554729012599585514124500022986716936879331646249265334133758520257008147769045171962097315401215655149625214947873960804541248639018112972383321370923229837271762336352411182279025793512293267235362455287403186773063800176470442516405140923205860766819770021633160180802373374833423629275858799640542230664670887137925448390264849324567947672852323186719547605894125481747708650684034944092184903376521881148556521425398468069462131790555657052511044552045090966815700253381813209300946228350936378923798807132778451686311625084255168028624107559030140023463386819463986166381876990408508434604150328373604410672746601703762738878952619238707902071062360887247807373847938189992144888793389612922651099532311973752881171437096626772171933951956280340287573592298936910712567703947253738096863746939119509472993726230909271507147128911225073570322771323420433146489775631322020152534168805750686352275117670842232819064358536489748995406423283304804925301821083500420232245740454574300269535799865991877578095081398099570829668301785715182307002347154275742700046234167339379883917967234528928592636388090831206897724757498450313920014765251353410431680658266469510323369169947247687811400631141478738637047003372916156647990145363478011621777006688604207334439701819841797653243755862367962489290301956000678407417717893938011691057498593134529872193588025230496196411744079490273939248643876276125791891506463927031835415428698112712553490634595670577318614914109398940537111545564599601645894347881244250910191062975916980466266465114006046576147477181164739246793087050981300497308209991262765939167052491321729133081172553785781065423875658842855651034585035894163884391704744296678972736008601211712366129520967160673810439201766163301815504769833994115437545982831669966460849710845264139776039635895126676561468908511492657819397867945893785462837922794271630724739487063407793589356091473694922343813654508907982847246285223022866667858845040786134049914860624799962176076858535956713902110190512462121874502938269330626169393817883879308970205098634529125614641412100870063392094221238124312601929507922990514762032675698823523090677931257742373439535735171667921374277564579568733787090716065187955489640632179826202846178654568903563538699193601456024432458767557084889793411477408850893911534510237465796340410767732859692139310565325949906705174728176827300856502657948245806353162512964775134479488013249949118053452228091440427356776139308645482310232968243965290795111254186087271377315721101022991013044160279001663768409103810457938864969030912378272391073628205872915200626990335576866299367686554703721815232367355862122140606660290265639363259163805241300656281683882031929434895928209137030778966097677412529571879442621512018023446200793847698318275242802772736005850520017829561739491078368968529683251647812133435967874307563480819674141223460105840247423489073230264847927540756248914740986909188240081386803514961899406046656544826659746003138536248768622102506338972709794029150526738138177920261233965746376876735010200151594004591996988210931434718147202866762239465560224729253558743689450408099391077712495315224277814117660955256376372098681433425098029549969609183950805435673654165572181297075974062140933717295522545516968398058079221969429283306944853223154550570939115778436548026411874687940254371418265953658749619426822210192670519344831966444370637939101244486863285120124345396221484913785097731191614927449876926149449556476325572353548483737665772765012486464784928915399939359770118542219286262473544279357759565050697479313487469299070411763365379461567777891972517795112973884029332870209540552926423873138719192474840512750378557465750969950350382186638243658388374663341415386917443378734598689778547292998383354989563567540701536334123810477747614200708849061143065972285094390347838554386274416052649199041677683989291531344557908122457900185648288753459277194042986732234418258283533876683908188106688156563360309660594548261466796621584132622374904964269419680736008741343030508811426659838558275686352063338483085556574934873994172736349487220318691511366318185281192456184076132819631454482791347684503292487587716056989012619309494469043038475631797958668953984890525048774074953593668791626115282419101223004064363405166430714292951303541289599246834225880018506955619035991017788466486295243381601492966611318644279501259221027426399986465386561183993383745274893399023496101195209801306636697771627591006184134910176824246407821122083091654068446873201554611328835883595484645894208030243923024744131204859266586859330741846843031210602000338748067307092240538650617563246423883658376833888906359550103325554580215446709632197905047148860021644660485659580623897416071568474472511964574473646617478460585839988133997634835008366170941169717383974912771836488405391139829814987960246882213947977213498363102814777546715364024845679434759169152649657526729649692263114930806195282737377050444158634563029397071487743063807559335272135075659268098310908124001316840896713828455682114124281538715319699699695328215537417611053773557258424877715768825354483540157553842395492468175245808674511945309848073122321047326287970439210183707352683711563880129198294065446726402072596127253149683668758087884106385334724579086999810141040289396639248029612437823227960077559842898912735340900960059269322241610674827442769140580093388569389224354733885394196703473737311755930669311613515191281686930653661644174207091830923775151347242739519744093206115593149030161795161139535540809656828363703577392457543136616588737331608174625048698695403595576853042700550024442687552271481093483449230741248244562501187760125010129927617971471015082290136402382248820727082876371917060035469839376120040834132922001576041906754773441441702732929976010681258396106231273049636372511032461854648860554715078510475312036404735402887397659261161617782885532159011196249062710071519697376860440567378078648791626890179742601598151227152789961096101265640697546366834590624122022978636033698530731657608752564074053149445187122392927818683133108497886345753342389076909001879258894193002433140497486309988514078179789451187336734083426820068636986562560009439286453486592125139523953483014681853191329456611584179856998107463179383263361968695653279752364431834804085617740189946475588393234057941328446063179872180782980745716562760183252490609581484983766433000696156770006249363155594986487605068669297397693994782289020839060900651820517173753278918473633243932058464524242435935463606116460879282347186304612874453442069620231228936953670597848282035488142805487176791247884751546506307890793191943797137134635836625263096702450413379719115460203266420967853012344143300860049868173561672933327977404242636929072047627770142385995982233946848044198690634852083248470584475485296964868628137990585625483409448924095349427747027398095022887218456754628166723859086292560111868564393979612530939398823740320579161596341499122614173623462845904861872758617449025686746079188055505936667677989928492847418935595281431604929023146062684835948077811205926731241381867528636656823537457947326183651310555130288543532140759638662342823997753502301256983609953154008568990024097967766404231473464902631681745325975544443155668976564383342537914755070316236571395938617045414527175901274246046153374629969338476967607688040043870836791943356958522893201487235117425146223365238923490860356211499775015203784713709858927778959355438731809203524756636767405297600849490256929989451356984526286829324691619812263131422667642745015749924708425253028620831316330659459581746799384219772065752937603097389122163210644542510356741524329772537293008599768747579500484840909217760459267965120209797339366766063419754846919253452386634762934368256943954419076203422823202469181465136220293300248560519299271393314332248286348192717287238330769842667308700148121859573120323123003754125753017920782142030372003542245424761831730858668736128062989423594624396932537488715756072389277919650867006282786443251379244491158126312244841079361772316765563088342064949507956797423933836471501599790576560992630298892150062274943956318771808744581108219124841450333769056515835218673217024388820836620413200799478942083723360835329431506753954706211676035458629791275540911757490630324384885709411604090299613422487196361645456654870992938578250915191388557663330916182991741079538321861294328962794607166290898297256123744826244329098685585158119910701680995197086563666687989286830623439260351823660327273788957189887702817284942924149082560512453839697098520602273204600404557540516772392907884985851712285187250367477848942579587384703833251231199738015231495268187442370350638464482838253226896210663600330937758568889284446715184794172008080070331909584525433569469906651062288396633628062047998341473099272517530549895950896698905497139111056830732327659175867720521508174730962046372357626419756187634413581564439681289734971710383137833241836968626550543724243538118758030517239880088371591198511527567728370457216669210617323923989638860686346301464947087040570631048224927459959305344121010389357739568038296183732491787288628152889981504909886857146407353794475050665496091796512785975394254585200979344429319641464365378702902796427092140971476278753772624966663798113682204093098781004540653886138670722901775125475290266133759574907198699652171567831941441247053958818434049053177036826207784555420359542212513822330708454554849247190299321410285994134697734773136348255413085485842262160993559024887274159827939550669664887387196558329196441556422293928433013531571484143876288342968639842904118229416896923057989403113196462064529312726676368029518908765419812328590240857393489499505613269936081689517663689110099715030296075514812700741679202371526202794764064059909453213027684203311363032906578080129626316829804230321332822101821362466890461171518888329266657357733547042752696499932722951910357591046900712943081711886572524773303960661474225466218438418060852285341138614918400567382456867333048263409692916413173415321658044245203260448646749657465860012474549283224630152949669731533014230210313861769367018636312818743708585029213334137176705350946613562410011346971723751249339582304572946551538566538657397550404189207631381224270199940146722065488816375505547909693782802044132536818720705134151708368121084320781266964876537305979930507479059980814239518435685264882779604645491877686071796522151042384263519379817824718374511686646886159733833676716284910399243282662158048164276386705970516111548610509736776257822939699504332987444371441954612801659841198894788097433149684220981693252006854800570868055071486280158321845286428087094999915158676260855331988275056322851325502287612267350300370946655974647113425077001210180850652156047604754921473860185077974791570683993232586271480455821145117820382440046928164118059448296905394263209545457623426513465744860992953556090302092821316486694315711295724281825179488287295656494177799135267397405742939055988442651190776281860892836379544599278126703338468855950841753391073505524898129521900661881217170803434961380106754046847857700778105539701513682180235913078344794864727520535854421260015572953402839398009052299474066013174299336032141342646455077599502994728868401435613188799342610441323316949509870663508715036022188679611434643499528513484741769019718768186028263267033027691348352294406169383965873272616234354936410986106696967102377382205128909655237889875325101432470160898305139389875786361420173307494935009319282327306439477267563756906074670864671888880826466582526376866560177554571626058968638897664964227259967880518849674718377955873536555616800330114878551820595408204292186667903184962679203451848679220380092977564967810403141851390685753272415505922220148239656355234988433514299450983683043668453542917133244371176363846676185445638879279004037353751437502832519566944408811697354981196801735708862352346122630750968894493320774790109262449609040534731259024093228765546920485715137351156250578308264898025149454042520757629505938937174758841972151184692698351190337960756534905039720353142572648493048381993567606680117255706874772862359488207940716770104263071725884334745951356314069260596662019830809354079039804900787003574438226784060217530016411453929368494004349822275679388678944267713073502694342293966494599828924263585021335942132394541244404509273710434299561768043831892359342311338164917706948581871699216793883505804034319281352105876920638514591693906693430657712308891127030293987005500394768254406165247404170956878395685739959102451506636320023159809524650259534671188574746299009198723165316219657635061617448827262689752595695671737747633167347967037954767429167904518667198820994530893521624654108776367794313378486006589520681038556017287260478241296673540378319656279547978728960792026847364777024164382365311461635040588673826324599072275826217245627720676710043953340956694012603592409017967694085209094172726018855693583623373213283990868768292497186773787403095703223918938116965569075797471890728499207545228235667728662292692419960008129527700249979084892927923070606373459373976317170977857247079892971239018370388228560233815710482959431757439056546507482266398233442677442267688531967122502635103338479150845918414697537879067809105669398018757002764189878474525265313033567611837237880467387345464036214671281079303892709703116453026510222676161647492239741537547597865265602235727819514395643294432694652007668705629219027667693170356535632567436801539179112444794624746209051381356968580995779885506427042692982284965096905076946399827512249806090435284271620750343424841160405158253025512504731132540757188501929906175002050972911747066272677661595788790705197007093209770507143943972307234426050025337627624954491534126143631869343098074892826341232693022507302104285461733963418289892070551487805968130882260826905201488493155519522083403391397123034114602611209466218173626904194490825441975566696766800741411154360394059116382066791601714690017082422416032313932877992606213556515359073402017222769990391641073183598449848126224398136996606308667293527106219785238085383287075954301772885229928144097861970437082907208920362780349812972228900852567686770412046106989296470604121806314227762803311368699175085752843135878170339222813376361246313976846041613628968659944344682525182380786823306218788990990988720689985894277476898503183172811732030525016884750544978364499573737330743980224115415426477428599065398043122116579112145707670837462672909912653070224462091429718012825514204363729539243768907261377144356087932961105621394455479252840931165267277934112212896445202409423474546958885244043877138119523196915438213380028154857023962369460976037841532486804282408477293656037214731719294273748023546779779522379347347862466933564431482772611224166792075848643290902587025637773905020605916385064508110143020395923546407501923834130583951071630169409794166681173790308259312047313856427884438593642253714991236932267384904153674041900731035898262322324745763430656931894326706744310139016523209172742659585310613784437145546779333845486053461913308045938598459702783250728674944262551340827851911343590256287063165898791567020684577632185953414402698561048392878749541479755641012543069694067193628432700495548217495013110074108824868373034306737298621602603172278282491027580856484718449431737364994465232282223770739418713650087261459014370795314965030891933701955554433799249342565306353804840419202626175329988986541205702850368258207275140493499751021503672049520237509396462362426216739590793764486260609181837891551900133198228204105476728740262073252507344181536284268345121224125424446500283535346933343577931225955127034449931110776034909846303946164492720208963507737092723997881384472170322093138484316611249752892446301098947343586224937046517875672655859716735730930854112648436359694311383711077082693745482965794172391993066919352848440185002537512782172834675377204888354687437688635489008796109895238059727277688622076203436132899281840710963030182639278721528562661084663950152464187776197926337397098452222865428530141478970165047666501389338314242057991234387006611443629860775296116995369418951631572013163959783357567519688121538446037975754806417275984298708065183599968972488751905009847589822554527627592522927303108413421456471015163368788950697706745574379744270107395878291894023338748168369359391119510636780239991065430516796243434838917747492162394241347907610814826124869888178371555943400274831775083744748792703694768102254857214443984900118413389098268904160548254231651276323367159542663718131137869675201844870748912346264792989606707516361885205107150634122344377397614584053287834773242999935085308731275438534574688519853635203062739384078653374642701648533222808942751983408736948660108275675094828034947126530661003280941251370167161722364073313061165925533512328543204872410226647850337254126688642388085280810177974344219607307660809583193699229084136298565933225947888053146065999136759416096784240006657695627232080712493969694138675684568126646593101531303935955720163403062473732835899127517324246902991601838107897590586733916762036017043255416308445988694119629554807807171831442615797714608087089731734325856099985165545532338549323526309223214177698137409006832955064490334908051802744027181318703132885322258677695039260596106821644466023485398852571607213814505752129013754932850885547277086045273303534342020534832512114963582164761319902243309068180958926249364756394214461291807480170367631274181305316722130622387339539573367688141245809903967019617352623881858393902448784931222183657124036872318044815372261121921981381207963101137926857627497089025922474312567121557385112537761834915597825327313569708064106692246826619212506838392047036867354237221052510711937834466632207910029319360147712670055393386283217290643727626878849656768946317068222948339301786671692059551061254144122153135425496248429377117051557157359501711144048766428160502731792106008113230791684822255627313603772574556742107037525364159344508107537728807700067925541562041345063418600353128012115661688505987938910873910623313572456865783745631879643380625587368920672938550571830282083176217362450578947683358486419830711794208367477879638861721353021702886931657247921324283851947343154832352653448867005450843828114354201485739701731918012901189094661644258694773960013377082076462519482649589210180860227358416899161930866202523894536883560262269468473312604996312682381614202125541755348484960361903482033038020250039136256441083654059003838070181700985965300769335317993053340438000869602234434688355955994150919985024296592625234616617777760511384803100896098116336260662330632766989100688891820229608711700372096919681793936012994681230670354068138696660034402399041601863761949936841830157492192528961807054954064727398120303580487757822288788744375354079044248978041685449863119356909752130974706977381196231701909381427495703845144211762767738500628733019545292674138203131825804743282522493945530316680592438705316621878344351601066974081684942776898605058946042454537442934545103627112632070483868422862148050943078592878886266247757136245260220278737303314781011405807913896475889636729134821122862942902365667411974461017258304604766414914304195370426239186013228280364686539775804034294971754588572180774648137564121297219141953169641711523603114660218978916125455695390112974076450509918970138372178668962534612117318258887957729794467224493866381561072881182134027305060712802341053391023477209271691717677304049274062417532953634573432762646205246594071496482044836364814945762167783742248872636913166814894712705985041033515793861511821521867852482172315882697043558108681317957416136502400854665631591584452607082432547566439004357624897551972778592318603094394382543450879452119818739710089315397099636338708962606496779241906050167415666651144819567012882997786625037663576384121124556587666502815896151366981161015415962227686475217759133887596617331849227144772471890051837782432559915163364617626096016768139472215999387916403290690782048968703770823808166922370085352186934399172506716968306240665379908906454768437331832168923161985476898267916685120566467823732035848445695147501961738522161743127944111283938600830905417382046956470374240311812213494545661852792189104520405375247765483702262137129811868270385617156506849995717263618661253480755357389165092163835655602845164911599330391007436148761474672777736828104742805779384020413441117408568318592159166206912434088466609514914123958181765712018930183735580503957389971586717934712743067295680326687602533592537120038319049466408641748903806097223113572762177402208499803249234102421966566982726155005665609667926478744492270170356024138781546230880290455704005150043562655334334398186921173225511879199280799654159120973300410473465463517052554696351210519954613805667883747944783280702033151971352697224796975350274848956238293101729298317272340873265109964759962210602044476740314587911543520461211445626093337126333522932403431222074412497666685838294220209279551865809143186455530924355926148535187525164804169327360473698604209024636840434241684043558891223958707816055107819177925592077185158737101503925509554984722263197858619683133806121564022547738598104146461849995121965963202121687830724093221004012605232088065845655088987947272258330011333417410562902244478478087825631448895048030851846377982824845073337446640490635051141997438334801354722087446016407130455695217562535081186919155969288347674310886637105144687889205122849821129977010453686300451536399212786759848929034131610930503383753194604714624571758898833431096092719244786664698086716387509256845049342784707118763565345250054611431151006662657011796147052655164354902548850836703599225470016648785602960782328511656616087603219522974676580331570357350757723874211762438725461229416023771380077148257802944948090543529125512788415316823530765568512691576043715412508339096718042557529526913956309631202127901915060708276672737646211339088015745038600544821839569794460119176268816972024361796890985939338928682083864620781415177688433579719594891308417789385113962617075728477486664528707277430450061946153260329049173587738482229555609491058344166295245600661380524143645508033127472913400354318387393874074360295635068708616997420744858844802646837204885215012188218538243141207488775534149339051565053234626638721235873042948883599395333093697246107606784472160098042550012878089954656236168905900573567209609123458123862701632487579684732756404410693339980681447964083447002624304196051134132194267236262442187097574983640293512544993790582938806463426897514146674203254297226329842978373273215004270335391893035604157908020946351094084966741093246089021704182205943295055043522906918726605107968914712455266174663046216506100685096626064023191151073466208443044738507846673335929957590517612006330588383154721644254811221540936720095401663891950515810585256593792639373789625254792596983025043668882594444626329457433035566546945334392845610482721721322621803662581760400667986886721309496598806617561749578220666631172825179077372515398681219926410537474327230268748757344608566823363577853756711773560217841127938528454854640720424641211249824367485400832577740746967791898837120244895290624475380486453879521351768659367232298777820796320217785207710249116170967445144157029699447910498882897121388240681554247662095673456002114132854809665129213595840898101679370394888493043679440902494801171663463348634230093615044305612618699769256593927777763296414928268842402431273780367453120800670704632464087590744871810697598293369125603245412478959753661633956618976039659524677282696940748261297276165293022357352836026218407488540779337599055106841533544737848477336064982630218606953212988968143042381974386629710264380365843809029587891933460796417920972837000168560346935926416510171820979503429737451795411694956587587903035605268122983950448495432893424042168684423771184906395066916734935391365897940281374138705836747735912109428688695133048701780612308780290412331520761077325002149018489832417855736812811323840040587106553936994259591420521255597239326368437679367840980908994057835713228659470298170454035843082930898272672215176192738777312677147297972883187834361707328677597894594696847731116440737009305558651820635186249590496430577059313424405451403681974645044920602803532705193007161492586237739111616752841075633503126527963802646382239255250902908225838534165239061048177468901379807166358843282632697135164006596499678130332344660084926044403402451908196833582763606707350333970149573313825965832201596960137366051528116955336832974828431499512490692489122917468774516447621749899111280433285567590170021461600382905294438029141676241150172870092778461628336705816908072341116921344028926504297832500258587157680730984947159889539815905004137702648663644332939316215609144071956937172867754073419787655885439074022806467641196793635255709089181139885085870113621179572539002690930092131374096137588872631196123441397303068422816613925240083037442699439027836607543315388277476826441700517309201453043443239468064014797889667280566724178734144339764353585369704350468428049256390606713026159564155234330696756672987701048151609067909914231648910534262888575053068311040567731317389170298372797264226294870431596116820313438335299423603727173980903736033271219902619737699089697140171313403117212892824756050467686338708109888051907857513038282561750821491589765133233531692081996639977879895409989567384125910652135976463630197158912511324889451065472513287104856485246948184643810525895280796101218430906983175291890527051968284229954682180448947066286462947657118602847003926833621062089805716063961684333250702330346634199623856896792997717047262581574911053076717552572025479222424033893026942429359088242080361934200556408900954600687126101862716168178187028345563100881317091479151053733884214981788257786631308903188695711554366536634646631779391142052690089225996424480390841443088072792536835128987545747560967911931269809458168938331608290953073639331814894245710135555280521450969846600616753121182155047567592829309573499132575376403795567066546006929699323448626873974616454462885744349894027715526898366282793695677762812906715128422911865901053713166108567013293580609533060375393394634498656027035295384540164042591911539948734481533055487163617889040082844699336125121908962343951343429843231951594674352647630402102053816142025403180064059048654361221523400934908968735655853366378445722575412585977069477729256292301424997171696286501943975032077403637714180199674997599796121414307739548701667796634071476308638063006729186725210177251891151237314300374303825883462597469538765775869254285119446764349103733261281376574164693765338322708409488109350812431102877413969107967188130996395872104156269259202694322102338132728155320624212381779755688081449562414570010680468367000980848039431753283680973741368480113529460974434904007915819137141786667371275034562033846526829569875000959681754752441863909196271459912674763200853569781993467668591085154626232374611572905586916571485107515186835814182866846538732361645612357250269214627309290353714202211361353485697687948732751402680961798031689078752366318883720080657498151486210544102952866927694152678398721545585476037117793587998325183081072514519437438916623132341088338455345306800808263138153071592052519940810117378503690900899418980422874327775160063617514785644752772647893333154229085742079395938459646526012553283202680862687189215987319699429256083794627128408955520532092203873498403823010675605213831407567930482514850212808144309103714712976000986315238328349106333671681422355326127107004751217749188032314475259331873091697227432669507077239946840977063425623411639267860534479235483884401280598685435153898354022009004455212212703428363223452075777224413184370263293622724120336324846958144638780924988784473014321978561382533470562585802381689788472415430578424820603841327834495515388709408810368101756769324839096600787793209488862662072754074324995178381402215631536601963682425294535652622569443789318095990697013807722012182041462954394147414499195418564389899442848989839635197058830642980943563581155946669808593426262997528501604927275839499709827584226494242490269704986865122182874641641164819771981504286748092634588924459417812422522762384210929188087810102261792807775203870073064598442535293354961145686843284008994734602713012424493018773272988621503672608653131036441905953631695538148753288915377445348005257612176295559248816719449013030602559564432666828628972019227412544593889884976887584548243929561728508984182856743277269473773640407082464163935193661609522882599674212254617313810300993089087871988205340893879618621647367019058202328791520510962205503808046521638737914615405985838381823775562583263132922522415495530268137503536062207750327259173534037138148420587198733178841594836254868435316962822935592462035846968173885684892377886564944065571350707026217417332359125698593630249427947231319227231541538386120293844614975186595580138499029710974573225637215935790723392255669954776896083597846347466737994828389262790430951649371742837474445719452748233113627699759136256840539459495465981092369135310346709053757364501247696254329703612909551341711677306846181248920981127916976884013568708267286343618600294845627157078188525898968543963241518545629295138529816659067348142681648567140547758842353702896109851485192844889734305135357337518729622399684648155013288345866009548919276116533088559949633912976145841877557952054062461332390820128059354324687085952243354432064956627163849572952381588833535259785185401699655919413951238689257175278339627635813051226112059849457068779345097209926426352873545381616901429135149774750461015293210009361123552358483566969704857574621660262300853778367277282556561015591571042971664011594711184163737486387864664546795032179461966314912919769772336066471994255703129878031080017366570371583770203521764835185685050502380160777458701487379529488859317585455328605926555459322355622950048001578657160431872309528925465372391004513514774051832852276515238651129272392757107199143659446298185976309158606991113238667673476090321365055086446120172051984942760846118831847018365414461948234969511352103048983176004926057125839910210051449179202147963981178781183278795920408924407401534726633837383202672192417731062467075684137102595248623529121131577389917281570762231198235166551306388400702097179580791989040472804287476341097690373045171675085250578896839653775426596024062278924669856623530403984565279015025632749745092467903800323407077717727818355256066238881225663733600645365942055586777068473330437769992846348299192413467371273981059014734750491322221958300655869751096474717662325143905742907440396393171986212733290471968685719518127790229669148912680340910904750967849957576334796947930009113785520941729706469433413750366882848480662433842787191382772855661201982908190340919160073761183685109892056050425563164197513686226506464303210622455584226053885945890111482596094331272052034354645221237242735625458494127074898205891564529338688893850893208693018012141605556793771326127735717634562668616589635657354331200442347117349565754047485911413196584837791893628963081810391803519883088955256332737358074270300817895579387040260517698448930706736628988017170050873589998368392529721836668865090761600186558504600195720440188092375902524863720126175023557965773848700176246071217145346257249174808223411721121910554889588486800761202553235015168754873159399346749106583321022381618373721833776572082634604956876361913645718796187715174453834095452118322983826196604734554265687387636726146273036493310282170936619388763380683844200032737771877264697177785999012513178082184546098770694280018919673053627430076914168384499498638029388488704365459165009503858985121965916620537745741415372254926124033507360442214912485305561321738651692964230470533621682966680504312199363601040626212372015632248675551726757745238773466243529934255364435920745365090621722554614897211874004654051243266347178508952417656855437357354324089521330990431491283835093235222910712842507475368432012966716477981831149606798620885029821031296067354832631838170659586136113148296770894811948027483736201072256823413047901211253374756465366960245724689674293326608713424223710412205594132015588368704684197217879731740929906362867016634006123644897025337212299174317707198844823987126452821237937263864951351460836612475725131342824025290169477142385585716254502097756004414648106786463391827852012395167110469658306414259829185231925995703319875112699413040604160909255985438948604602348157493350606360654020967781045631323082254362005959448873281123701396732061276963805500079371804026426742539013404120674808174524905563020800182060996773316609267941115513522327575365809982697526987437935620668536558564096931551732171940077631612079511928783144859705629762022660534327196457648147579053302857588346251746674771968631217973834541604410569371433753736754245381590741507374234492831312121408101795950293626438380896241591572344327789297744881215460476541437191430449317012583565676633811881794557688652814493926650196673324286664970121915126778557675004203739033966472853060629744391695009841556764311490244468208631328010468022713849603396133605886297399504056320224999483873065829053151389507807828730906377017632776562203334229235953022693463381186975941543235142524692950051290597002817074435751446648237963492547062344321741995656037812343871637240975084832159225508550001190346626910558954844212445038277247826075672868769876113581460266378351345181635110410125214766101447134217062223921414170460652603142089416126447502654801487299382931488092447628240939999827588241487322536150702210843075026614081671926326635215953544519911045082833016215489784935446201263881723205600947818867460072524945353095530065452140360211401864273769202474381283834982253143255572476904373275327380404226318075200243009393896783480252314287426417600361362049076356134671334528796658852690953558332304476323412346043550894037011246591798890998377370761129417873722828621711466951532124894291111800967037274355829072631666967697811419895065292897225976969134356842263322912416255888324393238805305061338752938343095198215180857833414395431262215141232459716997337849473649048191200984260135444162985132526395155760287822761124798234081229396478803069101437967386815487194199851714321391106631602878669801364788924741612552080567078903858023603729696623594134936535683081198247959263785847901496365231424095517042932284736466846242078557378339303714325965421602039652140884826823934945844277296291897659284619979307837332557649989415592245342231160591922449423607372336293171378130342160817309606254290026393518944813271749085613632928973230725374573522837588309208242384391059686129376736141803339542930968707058103526005567605090251937037144696949209687468554218996805462097274447994159796059324912067046114065099522230262326220680806189853200753224294155874546234204551747737458997861497023399789591505556794317198070079806496892815480668271350143264791004650646577387495734153006679157719320067114495222215690832033285843262703001725180452251292560914276703247446784170576877553173495181012208520698740913529810824466215182362625746903239779478287678081935346695098414907025398089275396772661977104988946703466678403579748158728792425946976167772721742862013394352539384201660820909271551026224638607972126070147357715150150053371826391396508573909338924726972367113472806536518063021279234795327967170722012583735420966818860205567448241146966478914649270445744018250025862747054444750889094294283014511696394255278894298522487086135251391347141582338590026517775753111502804198919571462490181644747394359313791507042041431414237085906922815854515316211435589466248499872253101535346289143599127208689003573626539585702710405853476670803277577363620563680374041454130351974936808931384513856032555784081045556829988917075596093572985577730321835400032763304244120283579667792286304293846645633960714108387028117343474079754615853804439551355327222375560650124295032465132591752138328374338773559433485962152277473949741184236557768262962737431586529013822822646310398703037967460822373939609692952509788351322903665579337103974906694341773240275994588206842005177549605428030282935377487418099439454884269418521111418389325451198925199658316617617837003281757559708456264516226004613582542982064130880016097285906553273160216078613103030154813075576777613943478188298638575400342775556787507013858353614445287670598973199965268504942393973818612754203373335475016420294381227661164161428643535699076021901210944158845291078901778348535375355093041764326244048718408128621248327588201078950315010055732558854996163376760160493041139714376554960282225477415851748757058949186745762677298253146649662227989468783717409812783776736095923684891207825837245530958409746652653295932381935475719334403614664284345854959380565211461590430814345283739578186157611598794845908686237902106953710734334149702958730687764006814411381181372931894505895316620692316253438599894078858287754984738827273134718935895886531168756202605695733985455352493198727676322713263205591456184924830931193678639370421232394812476839674072951278731916919661442044238461447206438252001788621419517359272609566882283618224951364529115030366375591074903232485287733640200839403646516395478803250805271105994437270202252225364954770963726121677393699486906516147547515647677105891374616737296130079407597080248890218834269566561713605097510527822548146172749980687906343838704634992692189066199442120421949875038210205471585453238434797586464398244218400507188536811132290944395844589496722909656462435485142995130369657568357269754640858240916339227319323069405479359823252163191689572490607312373830662087910752289939653121931881394671963187830975609185822319638789171997509816521430179182307719973430452107902102166681606403891556968554467866986117605605530918180158660868431171760721924909804585754681495201141597971207948803846725347316746831781755773846722328301972645218879461872125466572452141732995046214662122299451903068212716391852365408652212706130232972443713145491340806996923971383213655521733647293060991770958921067974094645289364209921894453110911295015129819441853577227292697659932704920394587572749663424493962383017105027307563707534878589723553337888513747765343972847729055208046460125019694920739497587384941291037814978294908241362414425219292838392372074640697749538777796752021639506137384693655024837040534677958691338001240291689532243233783297086617346769186472311700386839721942048725890465724300347744197356183915944306320477418190665581906205005984377898682675548764927666412566645753922907172979880434757713543223275893307762661450822747687992404008471569487827468890185595797124925097265913611579943960002699791549730385522959039771199269914676444518766518284536876912127918004233583541283805253052802582460185651031290647326036389660753854624978064408511038960966505794649048775069048131997212157515717413827784676057893796371291009229984643214822759390978355273199678616187546928695601959798780062731951119059197715074072186201033627143295908824512284893472576094757561412708620843829505436385302878314665881126710448289087034923215271529456895834292247989618267527901657984602955901014505137749188417141013274055490049622963563257194130691933265594882592998323955436804159285315468795025032367120164547364841668279924541086590503099442277180977278582160514196903627605068715789722697961953063394132611418941076221822433727649980841762361809804315596334210787394523534129988165543335972335127946768007323709674831495109986273455486824142189180004145580900640396144959481467551307775922159796128850312177432550711618827804265654497387972175107578964858796245157876181913488366291436697955648908859353265367791362713924164776800763561672082969076337002337194359989094391891297006958055079860679822274350667732706622912654736088382641657682689090058880134053302203701632121978575696437837955914970958175514327200690439131180919040964365440409795106659049163237986752282068226927931540373129140509821456243496084749541156740157136269334515543354442462130717331186745424715411944595176535970228311456124693047907386020152092939701597554997403549593354048540165142971665742702410952275404203686027284809112558103054005704887594733266205803571140500380374134229412172615729658524347816775048176809336314423234414810503684823963887170165955251903713095649395750863484219085051435393785130771883873010607822253103298269943536408252758556570845066521649782686475105236994918131658011070271784162993784144957153511087808384355402921059505194558099599050132630799727101029347940386953684088897933008578306566066148230447981366635805525531299088306706575081374505218363259845686267004925790753012298842561876778425827116069195205855085259521179850007497179637215960337823478656132708625743934491536830646869147723737097777587936311971006588043337060896562030751032328842296793468150572073557971951811220682114465238339999698863579569489214637701626392586505995046734715868727068894833150289689061365805684296539297303639279305176512091977731268969895378182800115466097780270132327484219665728991203541033546249698036627005185741026005057976656830836545278117783203011603914249601012426941467221450878464450327883810956287291045134749592065744035623052727334903348677814364403942909886552806515525817311132448770115542867680920276398775482842406372822723579637820173496987630162952647936068330420659150973077686554303178612437223337062125457682252087283105651504139646643756151732434396930626063526527316601634788234429584362531038809205333373265796297730966169705094653910118706634152145102023711978216060148115622406264882993050777847820671782953655522164618697518802818665275583345722726614033809162094225950630898239483243459965478225428440234871913128911354518361610613361015975753467867994279014865326141260288012436554015274916586201857425332789773408473528890580117690453781893511944832790536582140314037420860237132520705091589878392469788056540328266131478525098564325049377473224040188141397828009133086562826861280972593827969342873968141021234474727361094902375534547517286697014828775894430371044436288971388749295926658270500231084386151462863788197985960190153472222027455317365957339759895598434342812850793442916457554107664977936626259098472789735493396187879267626846845367285475820805797436480665056741918308911414845698611333554559299143068703622118821744514363709778471526353176980044464168721420520108328125694148262924227790452533987789015640750645897737366916499309634816253478335759430347036824289501081999857193698329806623847570488383676760371674763852977608472473609802622710797750071844199702835434791794297568374692230607672035259500522567077510369707065874284287046986638267478618240399342717842910431857555027148688444625320320961576942702898765970814084598034667258886948921160199955402614901921758175110319983681529787578771779273644828530873820380305856372339033387707265599483380585968721095332794705662258576792748910534575515277640570013666934115339149114064719382851530666157993535682010849412081253413741378787892974229471570249875512505472002241973947015416857748479243184957385246373801565962660943641407656784497268478229301603618813134244446114356757715967006598098303613731946822735130975664479459557712350721804951644925956207974036168549540876407769957134545624776630748114300551107575053946623520555391871786597806735705532898513829809498944649893660254905990801944699714421489103069368137267617557316087313959880089430266101789512914097599789322855365598571342745132972296732410871381660574246251322077419415310751310481848047411083512155520665124343244185492328063043288346236209391763576998855408020099294790693848810217951208101329604584424158921146261207205904842092957570840085215997932442934359080932774279551220943876681530053935174323660766133280684410660271590989710173625996456958456883428026573840649227242643389118837165556149225238068864886733721191897278202971002313158641686171619867469261914402152642426702022459519569829544400403290113473520938209661867747085143218249521168404905650761351322987842306605294025221451927119788212029530838441809323559484985748019854923423917193017772842596955766268117626793411830968888964808629866404240391024471828782771183790727512762910543845062858052562931052602658992411459849825055140891772292785145267644329520377109738255115094825941632003945835057844838299805456244597019905805025733073484792120553626467177656632548451286564752742737042608272437508838690352287608230136702961788687851383013342808561672542121201267055622383990552026892278392866188692386542838123681964144470432280476875691318340635258329655814064222022217539685871801040599500155054073817251424489026976222161494341270891343220015248353599524231646739417824657282232328089786077353432569943846895057229576919204708719090265355611565282841254328873615424176246283996067281150410380427357001730599953898452085549181840965847248337274477249902670121466518482019430259962870379305259176156795299783206755481995992450998241817214189738679073044873561923686404896138650067455909520957100921067293033406058533708982967566632705693688779819364304419591038875465911190279345936072290258625225864224622054633363258386119207510392889822325587530834933458138236332144691853083337298492610216696452308821674625412986016925218704349837473272332989489248221620988298745378571130727692691580027231373665245265782523448009825661128939287402541964864586208381352556699061578716545821030775332585753146279451310251902292573854345182062493005654774614067579553011730478208997178137916848643983358463034783913541766491634960601748601998977148622934997870862737296260428403556901597613000785185000281130275869906120424547465752826797521837515130580454709603517522773836684975854881929603598938198075300059917073409359457050412522020196490110387956783005608537625024509101934511560379243700217144525549201624905673611844242891414913209076572400474890881050317308732742424152314034587864091715298152551000804208479462107067125084191375558049969631521835558607221759914792325943984682218862533757896282028413896096013380979290167764998459823995560068322058890234832058955430704948985021849521022541068902232757151393741211488077570839767543662299096351352469317479125228837954955078013304335397887831168534736535149103114197290298084326339196209162890993868335616261204290323458401562516900570680484723964872826540868067337941313138503760813710961763404983049498751239418893965320786544738377726679223977932943109698458245192285642564695705605900064935590773248074604300671186617766351371530731169686349080619918520282577756261903520243728925871454953337729761967608900285144814653893745185264964566606425825418751593301212303924162080889139273721100129271030498196307940072558715252131893956917591498700380713541467315305017910564560687235219538288466667524841292834211067267383234113779292026805145018295466705736433472222966209962301867419233227692305621165391897075336916006558301701537845445672891560045273174888271536448917035267354394030521497185951014799110508163323753859989531533168796058098162128273690128541650343232641231173287920314123014594374860901221840439717023275273164392163493669516576420517733534171892955744921334023993288212485716864881531740197264581182064845610736485174455874764136302638168860976577580971861715287083987805470305121930404370869032535120893547509136759363667965847826547227788829918212350620332470266271579388119215502175545471981907679644672182480636852382579663361329167273182324663839752054451598689589501034615471667647332999292185816844530609158208331796457965513627479759051945263460805810080470021441529828148956573821802707005829204973690856057810698669495079944168036248165896115064472933662210133990110108193473127895144790112695536085802001785577477602545402966068584295107267609877588025013864713831016115610393956235673414262914386255671075117605509571246325303993073462233924723950200288264152081454591182188334680952589005902813924563503053162206834743339599930789888706928239959799321492525212725006353434647934257468589660383815189087952780705353977378869994187244502044359160856009947449387957010787292728206743409250671075612170195970459286349365905698028774609509400151068542781359051665287399335926441903503783234199890769534506885899206477110026277123500727313947053297102381048612522331882023058886979063796336621152344138133278384963376224943560470654695006620493235745285560523995422407716806434892406418228247249331702069731236944158817816937860783347674911928764277883939421777163588389180467986374909881166507926646849089296508510803523605687642177492812346736568453463644569875536621922108022405793553520323852457799913693171919240998765388844337647314523263181772576190093984037203572283239251244835733815123823537672207932022880655091112381863990029652449462409012488288761306669302238418895179418513649305435687515799794886540376105938660366394697634400936632814160365922318371143286518964808097590121666055099052694471950747510125366744414071495370098600500506318216778501408933904024122218808173086795464357219298180189186588878191886985577260583727435609399133992808647601368421487585334505478235215490899288740598144290226921056610658762732294799138647674538093723080804315497690971539770016399307809714516505494804381240710220460863037304560030435135119233251573977917048762248731552421484843722020817920017553391565193274791259564867123297827708293139082706620598676916500346437494787004379930460648658632226615040593959125444300810962698367912270024893433777897673069447184964060186298924174050232591313602761825195197511906270270666555419406104713731693373510982535128447278696178011983470020245444072787527045639303181059561214059250246158006189206511474610091015876229934949083560950054320168637448568852398053757622090561771270068134997038890608217606930375098599446582488954362291936718831488078548800594191228096017753802909014467030933374483820860078504885695110545935934422845498691525666035357024998835750421655917599065761597670875602470498685197247752737990488455567646118786022120897787903895925185924883501026112703317978115464181188804051633768446940393945866552919370160959694752594815167070365033897545433244029423926592363425736754869902156034892880217700557072590895984195633047245805869395064406899283569280202944184279385969441706585743644355869693563053650599567162157895108739760878657896262041808119871413237462242053798979961227033446180504383978001388694522041437807630139137381743729997458526115150824985672742233348113353371471629975587840593127900819919890257265711409830461390053527250478899579109520629817047367227346043482976372777226288227989920770445074784790786051773633969630662883553465885498021847136308228618807360535236587942040262943302019634547717268025512995518105498956174552020314934603805694756158169000267286457468367840593836833836772698693424058907695923055532113210685717601996360122148335010346871349091644438700025322785732721513479456071762583067269532309333289093143425903068273925903411030689078084173674707258297473336873398231765066369024717938587017970604787233754815092925077311032539101770788886117201609527795574748562781283668095279065257490697996379033650971778951176538002490983610556689482150779244386389163194461636458616410937568067110562893976733550838544354943702612241759981424480234547657091750725506791359227198680382207303429070933132667879110106312388447370903249148682357303414345191935301062766529523483929762354247249521528721580312523254682154600090439994658627593725566282578243102568451850458168982743331497667655219441620513714880839584751421307673267132023151188925076199858039979577059212284716227088836605845744736793465760086089880391954154341140049786651551436351770826951275393321474434952434006652986138226865123245870218759599702921773410732528027197785017138752407040829695581867056749307846959483670303879648801701727707621946199917081281564855611500249565372765879500530876273872154703698165750022221606766777495728106512860450074490526485794979909740806867506085131304619489248013309625930789165816205094310997234355427612783248416936701768151012855735854308320769628214590478877089144052867352341868737909119304739509216057668933994145831619054535649091246236112724014691391128016879543529449141556297805928150186543871126947645290331486560864829358747533229726916391062199855999965259564065393311538689503336249048622343561266245490178401805673930787920036281326039732012192456372020394358613606785037920193321182152952693172554346817775910221109660396031022005868104344628636886719039512714444285417703851355142301619353751832598112827489076729290329589505371591547985041341314130707607410408619021886906844277067670542890684222013154529824097159798552100997290667487574911904494859915817678853019823160643672118314820154216648948823311977278630726877386433858889002107565517122472312824647213711189301540153127682791497405343197377668185220605552792060723825364412410135900829560391816904997513399037458654366844490551427331748517638507640389120208074862552032334881531401726628465349010781186558899965116413180194685358580073934353319535405925181284929874637871149779003827839440928193188054232291077246545495433369465773264444352783857247080758623322760543741886179881270877909523881486794902028391744525847778611661195432088145784574429665853059523958872342669286568338839162737811812979584046432623273565046477082407067626048759714613367162196832735538095721457169458876802603199886764588897383146713510583489653392212650464315013811933333649227020400463704726102979663670111989152910072603437286426647618540023691264585596035193768119603265894114767361886365388103969393288725853203754186943626293683934275736530805582765696986485023417444095815538970813777153900862693568077298762073973926345551102967848256347344589682041986277669116688154550090187131062926911839098081040915688747251374062911059093831120799647478243845849573483381266573233209482893810995083459265695268298000144635710608171539197208974611419233225662899888523585948835751003657585630510091475194392761925172341037486178944777500759369209844464260497517574438439968146972980143313751995901527484404236789043920373780709241180188741086786393991293466897108808888467156209579965377189011190387996169225752442301412956134167430436134348113347411198705832151966317558921693233434838984822894278321377215015454548870170253093435574981687896740107701754963415027225917928329124032096869243821784294203501613591282825642707655077874707313532363438357387996934768877269290325692485765119880308494720928817005206593290354942054722617186849939039842803200742222132949751565749243797668589374439867203083906435119473811645951991138976912468181355084305158699811099862729195729321444031205219286530845903614010344282870304194814458788538342986762152646994215969758304817394601059960763091599615681762737228401756810978775096585720274739569147886179994748884957364143384148957749615606905492285579686952452665463114367349369409101263723224156852040669775440563454001829680678996126666452889685783415476321547442730186425548333701617376657726916346280544745992113899761316000498020134002301035144850214829752727229442856398119806235234308108870765970428087153972033904415526662165162902363591841593044850986491169481725321530009019613860034992664251567257114365962292291216552826357942328304522516938914542199694869524812958226548591037782433729548339398664238815676502254383463323761311070578325075752884936017383381944244773598052351224760167101476522104897779772419313032652547659108591195210068410689640144970680423860247246684392016269172067635911887668377888139040664834207999885864847208018729120886940444135212194095573411335856416488588947106521957004909267141484145847680178759516498782907886353822031492430539464748554680821531855935350886315517074084589948357195949466322710338717162549734170393102664524293646210037147462928964317412735033327154862321038719016691570905268803706046592357816331562285866835754273066932790764219625892953186385803194153897615336021848007458525866213734756800205105390756509241264833865953243789518423717571864610950721477123529066247903132297367840518671224859853247409327892976830823002932099637021373260551801245102975412142014569000543571625899134351800652039149901637187577773866353140652450119744545951272095850968231555142684758100330948454409387088554535795109407500941569816021879586164222150209311162432494801880147488328212885096900352723525175071273207523700608459382101791653923439190652804176958384023161831882272438941694874599261417516288164853324491014609230950251732782749079781822003804819298375803293934019317424488240607227757146055194700681973844112709031176756254126911767002944356697386279915306835398328891827581664654753010954902503297565706289215539242433897223656644082651524253026912532622690127557780261936584917190117554047138918650647270094758058145785522891778859130050655160010071547670915988947043817186347018254289291589560096556168848787235162907641787166846850045560479898105582630210227403971893326234756353451897106734247519982900794257783329419059423895499988055091249109978530450115452908007161351043561799881811534917879363640839027045810078874239407850606688922717289983315013868106869294633281994156162288237398242707528773018261769965959374522820846577758717785651923731012156927748844465235120130148654113370843623573884011009722559822604579005587842365070604148903967152558430181426243990398974284261411683557893442110994515672840302620536878104445109099636352878760368577143950541298913491120776045324686699744737299230761731028200641483195472859086359017528341214362626653719450144506249122914903235346688475124678673587610397964427988692569545516268649219521734830719714727520698433280527120347784336279333286902803938400707472041604078831688330120725227941852302068019141094122152989201317552447044107930502570533239130089062914904804415092133845466862160272481171361173325790467209635708579998432603798890424614882859252680987787244228402767945544334019899086361297004707220502093518970040326319729275886849298389308081222924356405948017969734168578512024325309108129063522303159116926796997558197638508716590204951745411747853022702609906309702485219377546901383635796567671531422085590018537125523015983711864902211796952687718696725507549144888094984723393829906497095754493878775971353096465544901253807846569486188889420172377922907553731395374525808457939181195784824189307139906939683364371713906674169180295416173449174268337258826175200774343548578520369353712717985815032308710832242745327554310187922076183720834081774044178532517774918897067678880936225865172280319085766067906968169351164136213053324801246997086368648502321536499818864566878401052496241102881990677328889646155659715908048735903398708393009354227628539393947968890341620256915359298949804245834899464428748762703296151465153114832436085504277010376728255732665789357508746076195630342925523537216055812900631416535844866953599337498192300268302608361818411613717226246296680856656758854203027401827058175517518503641743452351013100433578959542354762589238809723763261161736062855698747473390898148290721475710940012358935041463395592407622503291499433451350488703214121717010068032839225137939303768155995854017573594161697741512482612994035693513333726057328444377139457306275132768563817644816397967523351984579588644060279519829350716719313093695709638358910290488032707263196573671832178897770383281443866172075828584016217679682540907389589375365483096558617650789286689064561368768251906980245248170913185424453492510973150648034339985111092372320199069204199320629348160065476734454912934447057812279225465117999390709738681922071396323917957365519669726731160985484056431999303808034836979347341712358760409578098874247956193940535046567070259870417874378454731877416240302650739762811721585694388445371334450402100280565221268788236814189216978446334388865478490545451811740669391158066505873176051232233308974882517764338261884318763182162975780585088232765413884743952701627707346355497605808685262516094369791019574333956243820161752037968031359314985655198219856502688136273708848515039998648181406636942861946517889784537002259434737070873661437819408826873488208425740957239833170100265647387864593541372424667722688154551156545339815319996362601401417900510154894139240489483162419119362548709999231452151043481347060654714690219734256847179789018344982867696855231077212144014540076894370897664372672004817766941299893967568148567096273702952261871219909196816646472307496441250544185311185328989713454817349916297452611478025252224905463718015410691988250546865888757559731968253630578172868192442249864373108419732451355502996538944967964500814741908413133523821315357671299571265192126301144898095450428915457633688602750416381580495915535548402799562354903325082188256029915126587645760226663366131527138266925335849287534134167631047411690746825567409404944945195404525615332378423371139950335653587304061985465461296222588341351607812975605729097912352911211749562300566830039664198715561151379755879737284832100171288164717249897818902597679920110779906034304601132380497034939632751178185168571436008235056595173587986114613039901893843266918474503489842624266922961628137597555191223472596493688664729566538394861265499217650396700163797137137426818552802039752986678606797512202268003159776922814999189839748723249797995351515436350463746646840633500205224607645968317087394725807730343598827235571411994179660054704786909036668543291233601843197089494155666332986531159862905043583150371560845478604552681983667362691719867768402486037823959194274281771370288697076588037351019550695562838467474907004129377534225837162311586142807729663387452710920422781504300104154599780658208646980897169819079227477682187002046926994224188483065735231169802342810772177052481268723121703428976466239277251462931761037823036500136718068978410459712372692314849592078733219746863811703385839309933651377744427777736566253408428314255610954360737785200078834192675241054539115144140138455368879697049469824888046848290532773916756786161581817894235349884017350798689041494723860678389665322600764705825067611702959745086098522432800553263472118740643657432637002182110942221703349716287175683860986065416837299258783525880866948543591539825849184822197407657130167019960453435113944822320319603004051541383205147821279185359919785548957990263155937109490914563387346784591327626115413702375089513436408138094322499128175954561234985353531377260848819069130788400343976191042588442238785879765485924513292187822670780791202183623836476805422278143077476020043108302373361011163639976401911094230038846252963158675791791401583197544398108876847382653551160937828292263119470023419899701257235102908597132026215679703881592180082771777616667896206837800806983823561469829942698795448384317015660850372557000479968166463255597580071591587306383946244027537897408920637701636768971215644183895645320779129799647881134595013997544072421964641010339851991761628666206024150716935401384481634691940134563617583391024978253971919352502320607813696534818243858516707613791642687418230169910745598261860224844276790918610336633221361123728722161910479063338652163963186714121842146207928425565959926240140754234895611726865505947105957662913636407210151991292610328731034511937226616246995006262428871764888098727856647480437751385831783380940119689250216248196116001026578627938750881626163229500380142282092191273757073440945205210924679555573925416094687436310552575850719452684394943904636363967309706740932145985901308771275729725425861433673566760873444439197154793338899718289007439361349991918752638667769366901119425272972129926785679483790893296303412297391009370560624269292653629056943804063624051059737756505930870608420822521749370455475865516405949017851194539247477931084960685942982003274637702832966896639684761864916448589533119550815764685304580414191504250299501035641196437438802722073297390071158439227665226394696300312662563669848872345073669307047171403380825442514665358020219568560344523811136102576648513405975419531465192407491216662108170917813308354838626576471157793765873286894058024662040034701217716696956115662822890275827913839934023988442759216171496820359224100622136658986752739793581415417064633469327548497361748741656216098552994490430261354011553750796279015475710086471274479892574036214279136028707093283972357454090580150962696860524043535752838556917851990148818344039160101445495769964254026059206223169400176843600933967476919635457402356008022309581191415041783679750806569621087035125962259289486871246331659402067891791845111172867325392566989112030046923408916666049581020097289952138696579826371210169723940917387620150520690053831180982480561214044870166962268796981236757049426123112229088338784085203961516217738948567990805838903423764367241067727873694540755716243968759498602289670793835101614285453990090065793873740195332559462957155318451217087897307888217833775641833028867286002812573009387780407118679062136672937207371441923631965411346840268543466619722282378033365766376461170372189220405124507652062042183274131690236692884854275743766362601308883895795302858757734827972952328171682380910791150671879447129715676897896266432310581548636803925540906377313003389065674295003629214171335112672307841040878488128946151710359246813193006209609183878263015429467268563124192060371431567227972078099093752956955954082416584775104698621084640766434706306767643424864333322031691906627691294126109597616447875443188654537879664473329761178584514185287128677805445087169948524740734354310388984489448742550917739965852259037821361807127523739031675568503809702211834358878267432139657876177968206980856117058348419459370401249975258567123865844641207076238392516851729143001710590686074374124832884437985962323341970242747939975211215502898469104795308674065482553543181987977647026616872353113589172253687269113310133000192172626013161713608682260502000066828145418218829200484987471791848506332159164471150675722702505971171979935579384486999676960338777934122755984221101987173780607784558871095533078123430108909366122918129350880578866702442043306755308763241476872619526616886218700009478135925672824452041699796408324677561041505410478069849476099128743054601578471493293072461244365225706253240558520546877692952838754509044958998473428858311239317646922371613571908097288405286118535131094464344113400420572105091336706123389436424294581537407307363697015933673504077854067564402198949905789459382982220884441924927961105168086911628980475682892900048626805609648612750089969955563996161068625384432966405212613306146420454376128343309793366633952526959058603058000952884656028219339967550327723561412296057700641207334629227897072103779531288322169751569959042547461855948673076239445171595328943639504227721735718252445144507023064300497044877258702175805913857681519281838460793779305597269402948693498501990736198794133834536069996146761837490799381920921651099887895558489273692549633618306081436207722022574842289003153209228498531990268877288870364948914681824473302262676961343211424158939715197916506257617705006837590291306740345599771881892030419210800374477144099814031582275083677233181638846085597281475752798812825570350967781186174382299264500865413260535408998739351429720982306376801532998082398633727517567031726893584677647038137958094013523639286633139898222785723221226971030425098500931861110489444973880720286685138257397885044397019054127069461357084069321420288657540259923537367690927920011904551043748051612741640099002944451772014505355287822622047975935441106098278259250548228976217474899880233102472114458587039468321101257458356763568811781589449726778618272301794657862738252136201519364013452815659553564894358496640671278290734893113321363418158100135015178557040567543604333306828287583122770466784165110949824756118426142005764560989669286507805326016879751779781656403662733958580032433287969100478253167745506314385586774944876894698267328615007159140016167346159664941368044440641515248486188604971829503201367110344869406536056009037817856986772643177219286375175911969858825834252900505832413163046789441719947885099421735505981116143745389470522546082800494494643201314398505288751963386435220200659462332285035305242049470488439710853592790809281613007194347651091084183153927838642266360905125699022957988310955109807981015447940585539815276627977527583222979819646756381656236352830767331578580539174886849608548803592897286118720587892017579211137533841322846551890893430968542977540530882032844190106872374035711905933948378387837272031335208792056617495981503674453388629404698552513789366179639113179278071680055459629767964510689131773991467649148323924219491125493483518516442045748196852161589335031591088776315486089988498739802652844619131134946097637720889930150747295094218026398052960377772479437201148761260230153804384544792605654528948833552022430523166719726285203926464536232587964704149650481618710723085463274568997308313381359308463010604138277597371167628353030463173994835152876493021936745724037785496355662440902158268693144906668960714433340455395943433691480105768266012042403101919544616880353008578825346838809919472710746983166897834559667651683447786825300402916059994993037290121731266676803388811599341186197831303838774585064036868435386947438102901779565894974304557392122130578336369597674328889600187969566538286164953194997691994240910290202219972179457111243093865520437199453554785075368602156573120931366552539455053497578715391433051671159681927581598515608061675603118630479795130143841276144052240076363104045401704431120845280067793325785244983708724701848165818969602214486352707533497710981042315125806175992271663941380497749286385711192492131095241080860851537796675392946728148908251570869139972132411788920437718136561850052183636818696205691016128158687650559114411478737446995197101907852391025422716237608946273550183271687693810699872529495591250079811979269799220180672342747781276546777431611966148602961462580166089566423443398171211892875859395765560278218263226281518769974992182915768066980450756844477812948453178885514339491417015908789349019605221286328860370665003486545493970221370096635020134269293147321790986723183169463285560954299411612440181556418051771859811601417615916593922199117679794396096246632463360378596956468838036857000015026097729210697280203942645929944150721061134866294109601642332690346795247124855155643449533260226587337680451022920714058892952907731703431951453380199361535406442980341249877219624922615972985804856195525293999245183530973353644852943563234914930725132040991996333787578610663739233157442607704823502724483538981759748090474689424354439400187121519379733952668864997700479036499959950890491577915342989146062865531908431474852264232655446834937613905490311972199276336704841515437642286449328933317956411176089922387628865867288075652653235106927949430862437644877513105410361157570313645092924916919718752443095833031195510226571900060975658836689459787871595232737630473219569350727118906406162763756713881069716734799934231050921024374296308119747346957290839381492239770053949111134199272782411892634069362446012577007695428468342547274936883228142315115416110961866640871466336182922266251273047238901571068030355801210928526396766196038205296365365695757469695232982082695285110851254480247600039765435332022707570487742640044676417607924383033849866952160869268316909245195880640866674052200665233153250062658643894858044081786099804627431381127726585992642269252995973588624678815389384344439926463691369759155993646062503874827848532501895052315391008401209432413790944812936633114872848899775865605809722421398154228492386189321613778267873364153665430304760210504976540295869491476426309488955357774424160384771592924637771162928679745819663058573867384591995505862172536541768719319844191809264503918964372741689817753763091528423435146350511102821538167243286832674872811955146515293794385705887367204063309339334293141141463296051928601854907261518466635372824136258320211528367545661040051284753417084161768802400224501934143070007887199457425629889115592895427801834716918554452119883411544469363772063465504804391751840704662965517366621148741162451010101028750205909544518691255767879456899346365009295709020655311129592161462180030338614230543140723038256172211967598592474539279737171127782501398039800670375522335012203758606810413916599449995937204253938479715844724825698699637223977153934890283656045433933975574027118181494652326033754060458737542019788278155346123396333469959022176386375329228699679996968287562059047220398105633602449786634162782963371824691943140624359045659623570107894679478810534141981114659739211230716923521772573517355683006171152291311357267936365220591363941047419308131039147270618726906217639410735915598852721009932090672775806114168430048350115080826197386553834015434329328634335671713955615370482051263995235969095835752509989673029463450357104670391707889569525911756755653974429141202196092047568526471234505621536692554731355537624785964365074354948115251982662096677326337092012367555422494596513012964314886816470931696401416247350590277552792420682918255749372295342625966133491917561518856818145253285585522386996570062907475066752710344123778437256402849923029983218918948461374735160328077949511760703263286337236140150774162783479718220525728211619526332645099422473186541957394733618283190562352651141212686613502099210546673138263557033379901294597954097394786961195443720733638364228329065715544627819038148218477738761375624927957986707679480168153129249286132413838502131842819784039360454877165385789075118658455751088142029277246242523505642052872269967658733631319295360750555024887957021184388605032419486834545896798937812470654882591801688379129910848724926250946193278915314548267291043347042299810314459327047839576126212936055573445873484383736310886666138365374871022747831477388701822625973379952093916833331960037855610879043312776979537554309176364593985751512320470083206617842080822217096528603000424329533308032868838805131508068213134209325465263621079560980006602396616768582840826559551015862406073127120948253649912849602967321132557184846031815005634438959531292160074989599088388894943971365914833236053574917341959094246897101021293804028897119228648808703355555465751066000386228569197995571837638431041547893428195319393688951940532906978921852643014177812821605378095430813965841143174634797929656762072121764917328704564354970868733258604197785871847271945205073656053068803887563303062299132430690422660580321094108504446966983337038103933068872259975290016738447317010055972855993514962407869438696761916649935994387799699831071060450418696707715778988537464662136791972099986290256875340089279334116881079977445975374603422826321880946447288342689755728182210209091295250331628576459689886576860904942661098656711524188341789326602177515356665616402732529985161478377391357933314814538425971922843901790108496308935446117028315714255988606426744929878014310620107510513500156470827073808885657608366204707354730340610249774618373178983106619962074457391718229000553798628986460612187020759768264483105371991491724990865739337066991094699120672266291486204038067902807922404122498981197211043449682496187302566428659563194020095585756013269493953701657070981952127563231005744832364809233060017963586300399479952257268599140286218307898664810684873252289351893867086003254357205268421279449464731436141351033845854199590870217580211534285028514105236555851854045288825869794775646760114947711477909682251788558800386969208259236150367794389216960695331882922041530513972961980614591626637073237071501825057617678490338841891204792294774045553702084437013945676578501876947504654470124314626989999769445905634876923102640302861082973421155183322987377159172439558075644428313543297563826779376604065867522709023473396514271681595583987181248528476061258145670609884020014282270725644144367524339868812049323327973098644076145003319006068001010871209078008969290935212740085430656845763568263166344408484236378254147237184080018780268180387456130144872984288828121460638051389291907333382638295257101338490985998272610385806382997816939902300116589326319576920427084248704122486184546480295506629036096887341490138322540130753274777875544294446030733739966316222720866468329146324313056748705181333090649790307946596761195597857618118403512980015479904211078244695778736402708246199066249895379976668892542164877024894568946410590749142116376368361752663353065480444280067605743259902051877953371497804941696196196158817216419708780168559937687535056786786471913664899609720309770468812949857175002672817737994170896457817518948803730624287737742932319407806895992949694714280086436932180164232105360507313807618554371066174286319455551602674798358552476081192260425764649531538437615189493966144517807074950882038176777686760237472077967489082182469550184897965278302011790381301699670251268360166689286326578165239561411333435576164816568259745672642110785596264361581240003237438908607526868946262600471565926805904636180250271102026404097937860845542300315902163486269476696351287132659865196229800902219723299261944560867104273480518922264304524769228820517886064611018090606217751526641899807434350272018084865077409700558098098047639743907059959346716018795680250231127391902589850353098004812218544765255995807882569766163696230055970298898007270162807846487843549844902253163695352815781949700153276588600043999839300620362011341487469068495018879476932487886806587998381258331446110860719862802693753433097601164034236635128089392574625790825777720685095033289655290455045188002994327638347084873632206031486248050306491236094197688799980178386179173655267868061571940484578333401562017299069136715558229649383088074897424753787052598889664652804556180352509640734520481597431792078326835611386140436149148031665441613278509037209292736401350710553205488751543767832440885437399446631993942313830212855711493084862367756806851623777540818819689831042860082537368962352018736452088471990191669112743387053900288810695205349489329348847920035393215641674912459980665189558738255041523980638780215901710341607247860635958894106154857413292582197716465050008047115739065252476538062569640752966513149331581936825065880547797271981342015904179187552550431932266688480017962807199173014796488500870019164746778430010307715806368528458737279871177109434066690168120022771956835106369116600764567600375747049182845836879052690957924182654941128807637364754085507294998053028781963521303983074554624776076715035533719849221965825201856799674509099296301508038170793536779634092009701782416091998770226766329432411332564403924703296179900691067244010768159143901994002380339641428091107291178496114195074399888784587779734635010685549103066412798117614187264365796207120742017942456565520080658579951449853112207680346464739619930619957077329706025961511223946419865136201427275472324432586255343991237313377238894833705275385751629453152511644532106927015448222186964274528928940714368197768605524435835420246577544492223117530539783270931382412576542683818423926615665112518187124931124578941751565755477896144380881838709342535705776275634694963298459602526618906737819721835416608456997772303736160049641034274884879851762553705745397158930795093552337171438097824226248693271626727862840709896826670862397988617798910033853013553852812004619706769132337146708336193911146810075054550180908561022825400708706340731411045460756695894366496337212736038906676730813287606272540371121011631438589105511731425925022226762192470971444688482683656213235641962629825013257536217631100646027148733994800655544831022768489553990768071350129340270462938650685380816346978893023908520744341347345978216775136702039874531408756111760649738736355622742161783755999025869796129977526059744674858109516088584041372152190918465532278293019416727087819314360527775053655632939515660966187440591587005712245260440093916297746999682785534296018832803029590439557052262755202062234463817490035487774519883700001349204047736748386899052120464920979082719951643073483567134694689281213072863348335582766453549864533452924660375521684782225991597918956820796892387290743564127416751493987699066268270568636832027660409671288819695512155679646064780495288794672881046644949679142657417038403752045576456722448498692676543581675787606465531385562434249884215892024377722073404273223001773904289744939883241720588348913208662873328451817990852063570289915244287722144716845168714679912817503410777515792300284154612026715770878089557429921939198503306753862943342437414600090832802539119928583333020571900138749067807367833741617170505932412212973750681682058483185561666834495604799721236306963014489046123928794275957719202969699883253072605417168021398217587149564156035114683610101460094059861295668730018708753736468769583060106211114360288436235617652362434144832563852158718170814898036018467012499903908404843677294916996967906023025628750922212820757319107457077747417935364031559693931208631061387730904801262460397398901217275330103256642162067082802059746435159394993727597230396748963959848360098340370479096397366757131087140369527056450942627121747986503459445389022871893932871243309863760548468186682624940035947551679944798114423380216377463530035843493970858524397294093341485643768202130072420908310404378665967208086702022858214589973514901661566620005704697207893431665677372214554529461765163700826894610091194198273582011464250023639621638423600522141980626066533924898600416053848204866430559741678088210905306624463910689344813493686694115613983439727386338937907182604699587753204354935071699227587243817499146579956256617970150984062783890407743713899762322046148581959668980339231700407041227606991570235712578411020627438362624216021909890326680500209102249965813812827349756412567775567904919911537277190709559320001948976195622574565304442090594342747693394513429909126053002692890972530880188749371641728721232219924186585760099620000119459399537315380917252966142255481219654866192400020307235518556725225599089343251240358235330377158562484586432740402946087254113281066556618681156983098502391860205654575728604669586285417820462436591507625993733655120579055339628994833034810578570694427888667923955087965783763861549005626640608932431135003838081543761923094347779453913878174707229555547137882718202615751739711051234023532453035130171209943456886757927151384541040992457525277290289249701726274381779405087902018559515491735903998785564645482092432063669519255231979298177465488752072347484163927855451465324390336320924601505053773363761778993798451978963660633153944647759670260424147357592476151620953864011153723202776118056254048328648576421520845462186512879596528103457341541399807993278550470843785746827422294391297399885591358841735838702489311575053472270103399345977873628663937674515540912160290637981495981167993183970488672131698451628738656299485148052219969214286264826745379108862860018046379102307995040237852696564757082039414586723090078988371710203106275563885376867567259044138640737287293829779413636568740936084684595822943527879624233247193357907067377987905834372973392370352835936160197371252923994093423952120994079838878802592509453305520070789664120247286549857968848838855606195067662368501614011721349154667599116616102052079951593307622913548840250805937894166295834013118990714277459743370653012825595982755532324768726780401769910274701003667123658172014600209650385902224119050255830719836117926269709783377872985261971496294279924558482545948412184357566683258015488087805505515277600255695983509235502529963084449147173709910775567149043971629111898931265220628583574795292685546760520614760761470517378332384737879967840476301757525451658300124667694617066433989476914557756047594299254171451161795560330699406303628945209734463429696471768000823234348268781932940235106350014287033293324866374683878354851998482126700990736210681615792844495775681864306905651491448609740887497926417703920604342671092391707640473692197021130623631831050189507973332407209453271597384749000552512154684053634913903461663275155139098725412528306583684235748157127333924425446554464292127157335718140677935732796931313429192217249474499627992229989105432970834906074168511978397770990108081502281020129606877803316673639248709938331689754477649110670547508886332952999658182348168094754777299696915435464766169230116045476256259477923165098354962375400137196094734323248672183901985808776013969355630386678720151914689011803301221282266135000479504447290181161496205125142459074788138333435656968781975933638030316830152365398049249257019196652409844108264459709910037126430883820468157049148847389662994660900396510265938306965278956101304528350575967573968526383156515818682405495875674346089660950662530199593894753976254658678386825862870346353726756645419629550391933186986877190172427912335646179830450644808736273747413277146666413846242895169891092178140601288484570013161348813462605254465664938543250876919636579878786631603523900258973532062015654033158600677390562841622208070889568168703095942692731428864343261095553827290519684371214013355991292734031269961546465751720380376818067091446379727604259110479145307911773908518332977544849236205314174583911384600926293712516014236697649127337651493061943192520712390382024509625012710748223127399873483473555737123292322312154853973406306940300410799685958134944870668756629814501307869322505919612108026322498806220299879342396630926663764194666814182264831944126187265392630743902482697907357059654640369744455683212205434181257857520891742786724394299460268504993155254434249499953165813498324755027316070676339660847435927909626219323823877137399344300303747933937873593241520260508196759865235345888793895675257369039110292978218867191008664459023023036285137760202175783521640052110868351483911611237303356120215876400205559459576223768431526444592023234657414052312532285486783035355698259235001434589757862450244726762462052076996934792758496676651431339530540477993155076193930775370647387637484376439489824196551543406743593497568117272264798195713136513386009258396447022610247415326980862498993258178779518961836741215006893207878929626758956173021778697552780281843074441046036739683881212942500468034492440595304409547868883279066585008850900042139833667462204674720385061738371271875177509770880015553551481328663928062413738392486758242261033500686190301985428929690292659312280384003303657476301420577468650162409143623292250996677932073152051295058646830291106689733285831599170207780984998765888240571705841256764194022419911374315480507491816823627562270203408701445424335269712349052365860145496950620939432843338372744755103296985800925781241307829991584678253431480989892710413279239913490386441176207217694747017483355451417617242915126198061197349422913726266221886488881134902978742546528572511067231007433646559248327663842542298108260791127787392827881932680531378882725827690956117700080473548733674732221693615289942111857686965481794734065402529812807689852050373941056134081128341855402416604192511268301680308470061846175876266277883679152012789396333769492075930320071624602311237994981713772035569372276977648174465672562834707352190257073571733976995766077613321324707485080695337376084160237904018156759415244092262248251213622383246858099917821787789037966101622595718068118456329580553542004849342854201250681495968513970513581368835314001349967615960055516128136497261178719035813040143334810492829373138295542841725146657671026609630749829493054752996763386086773545447547389560559789007841175670587605046848748454724846983813435906092634486671375367537552248238469606589935247456080951224656824070094334384805895825941054004767472254767380881007660546314589844610683698080053953219175777024991446004442623188462169230420916230455463269843846567781156865788106473790643713867665725497122405622574621062647633194276949988807516548422346864443817181562213455846015610539767430344511748591470333631366585496574988142909521421472438755618750338033771899751233125511932411236614194070593397928958100280320685721435762868420095129639457141960503092248572327189762092781856860519405441230218601296346205780878336438998878872546811528654574700565668349539451984239721485157174356062545531885778189032704907773805177361306659221015531541303289382022798554210192130093984489169359668040816219887745631776138222305518794585278596325575692178874308150376379667698126613906911273264508976703922809624202705285056650835505260292782667877119313411747195395691098429056173641272433208940938186685695484436327864637972154285502708669530042788008337934426492422284341274166131480732862251143810827799162799330631407476896200694001802679138513159458303390746970592926111205238477818329909589884397619541108121847749526079408715370006326030794480994193232797344159166734998032197812045045044365126039598954525628101825372514773997678225241763495888036108477162259586494224715051880686404331757770649304299275329361463888758742756492463006864554271270105135846901672926291385739812426282962012742944271508391058466427323665172790956648200440721332157078763189250879968645050839666275383618067536623107497048221644285046554600621476973732537008485084899750092136341592517230660017891447066051685655306106266207289633788989699538913436207456617903016368899952524553031555221023358548050818877635780662440337868494799974473174019816810850201098456662456360092667933801630130195701561078330492814749197959621003550400074402241527001466359671134764487470733042448652231876022498244039775573360743274490201625034581960506626395818238876238572482780541892919683875724362962733971577841521409359376079222722308633874424519749355993301879622095488023864301278592494152708296757250464929069872536318221731932654925274596714023282637689591915639180682419013242578361534339877153726845475768083268962503711137423795125524776892433953834088336219899548785519231422887037957720278063853183703112395833149234620769471129291861766358363530876275273963725791994000752624355771321997416006228217454404417132944315881417032480077552807917981074663798931178774684833583379447414149450332841705598563426335232727910778603111693137109436294767450680336113208060985394949625315706314024870019493563760868054225153791606530557132120863323975561218961949358901183517565040053726925148899541264896295737541875605124926647377884103456963376813092190396620740112548146976009676995278037419904067437248145580104583450424476950632321549998769565779852598794302239663017709534650673792152624456800034662670326058758448279258503152684743080476498697070792030298440332392426679961102369170311376490439634556322014707935147056989406736010378504534061529775836217011376150554726695511963198198987450599509003245169040747810548535601623935351691111283902984189160993438101627112064407978753997656470358346663718979511348499378948479311240927181472460157073559045338178646020847957640735972818370878063273388640337332801668709063806207944920069530969489640272399854241187779984548202410591535475342177033686510786968513040262098236043477382200940907433171332364649272095084200183706857634530833138266758269010482482405189116844029962760554028634586385108052144591125643554284209942288752494915983714737108325622752995053702782942779143089446745371403175542407133448097100891078675586257541158755608313053773520662675537943690742875690710389947445308092399701225038321292901471495188879883193799871160162755228327860195324658894973264119861081093940035348120325142184259909449320273738584731945712449781426353393156157413853719333369090928357791522201564680126151060390150427931801194873934933754018422966066784220993217896541390495665048974005221047062327131750807900370865157579060080632668550318145673776446527969063818149716413602416809718272886831731981524963210989648795690212664242110069078101351543481463588896460236498525434237137047972793156380184509631787561631004491868067369050944932471204468955562244710767950662812492111325860891479522555182478396289971098523167816028310813225716156267378736463959326007035498966617452023278008133214145163524898964904967523420016313889951130015140079521566003457027542607501615198926894074044259158461288173898278927321446420825894954130611511686736728129341805280220479660911972485677626939518671472787052724009889008584930263527035632504868709127695970261978082930789688691624415087421272800977606773598323619960657922451893091716601525384183531512880194108766028302752781292214577676366602857084597412555602250102670881300390328683663437950806811765255938325848377977928219129945151823040806959698025663940825386961385714793164312793504219652421769689588154477860039570097204620214256997988407876439665820701527111630035417099183020356432092927706875338452939502822442472285490230100840782552996439194596427613587415283375146761690230790531137411089555818639963429639206260790003769736726294003935732376660636814622420654221595120357071397284333185259593144402983184313480579418668670885115993687566845496018901719319167025094314340487347000711846846497578341853249788728550284627527416639994116987444539749734053383921661614079405373822099730344109895365312781464499443139433892427169766965674317593694820113636989290678357393439548555635891170975922260322473733549847957444025481968801306046387060564858050346937756566478106034417125120137723836958024945150927639427130860067347942333472290621917195530836765072979702543386898917180883520085308883412348369882823994861395529935899135717204032640311403506400964635339073123404755244758272902325752098614362644861357479575478509549708976423315174458742227987463262881606979046893730447886457630022155414493294161534098836743500186594347174910720049338739006392802880648956185903732622609009727334232305136903743924968267171562431776472961305684191147544488723202462444108388263479826584922733150232771520533533226192669134464811615895136565260929486546640958924608765169597964694457040037710302484955364072957156703348873068194812886717989432509286892315514768609397150565960653672400294081834741224426465034022533019767177404343990208202267173875005875638042153778651440814290295133705802416844949504599632876469300853228938765652006942671339774806441491447450679744449936961158754493708438542780572605736053567410191303580713601628732007685081206763734194690906637628194793780123489653254586705036302683141055067731336259390349081146898383831730508442283903174387399030685491854671662546339717034120903448045161646729029448897518417104292193427529316188332064176234242690373065921012765059941445041590300749026410909830152360112070116915276999207771909809662081635458227894164078024067066736376403059015696267156823982382781714330605150259316386185806357831840016649832452708315041081461522886640607464344470961789127301528539320561149063239378464398877181195102315087309392203552976109093740512058884556262117949353010940938569407466238714376506364243292727411621883024799801431567625799341243048897716481291612709655664662641570131469889265643551734071312816460718675736831465910697164994595501654165736390904775208525661677155830407732430063963027817347809817392075526967156120630394890447204099095353432624580583566498792115419876162872010877136558549144467531109367198219335305409291958822548054267471770718162503393588110627129842535885972302848103063357921017244622202656270582017250057145347451072370512564004872395909885950783100122027483166108415822994490075667624928125326732571365550096037334685626705403761805998338435803644548420400146603162380480517326145545062721763289259093084420844565911696441499049308557014797353412287518750897486076785271774003022619673010776943722584530171110487778171799856449545190991530695287093848929774799197941029436228456764594338628410314843058959128410386566910302445801686646583619627524970811008384480176556762283159507272786264309997753363573402075097996076803443503592058128723435284727859309056635830268688621700706181399529662190509578858980825572410699296061425022138979986032339711996816818898503076001403882610602891071859652970577559766814555984283269792276819782168483691832891366618281506101568701460650608964495231066840592012465605020652566229429590491461321357336656681431078741816310939590237639291809460548904087840801123336330470522384063271699562607369919724756144230812060588567805150815410274851876355601461163296878653293928066785577804303270186258510421352972249703110961495044504894825720592657175261155213566824094202607326382754812792229199662583764570221216301011896118459187010904400935439697610815228539665263838980423969229331555140874347839485118464531551649092148512516191942392806944119145557493390176262812978816539977623995148054541539637416078052661086954831983973697800630824092585067182251664342676980423614392238772859672596210162842172355905534680365742455620811863305654055974949844453263776931696579100464369071808860299373628091920682797848111595120755406628937852216213797651853311284293698240083157442157603531338745811236660780534006887906202529441278933956071791163853984108126812596949122353116969346271998977696106729295508192509654089995240561316793052111176856045669431109599729948097387376816379900283500582657850243977670322138536098346321994001468154071650225885815817101342284034672537551412700438080523488893648914758635334878581613754069990157965957051990465853707048052597463903964918128941485968647606149898519798924172325383422664466976929415518190156399937745999899717475223574302230676709079635481040808981140135518518969069901288069106567946079783385264967753392758156692970821670526785225563589432889329383708700261575611199975994855771520740216219791248641282077823232161986193157962981896382626629358621734947418970995116668063874809667820925248316055418152757292761398743412351800157509696818223091288464365533559866101129114061955593324976588002226486203710367371348403776974665950555962389800600339918488911841792215783950644943905867801762253029149615347234558542614924726762197870721282105821060775826415864754662633482056174997173996218341663249991874725908494055199832035269338565306781319506688424845309349954735205762227813004442083931916578172515248049626040421262745971176359741535599901593805803875083225268137812377250101421430323605028456138146909536924701170534595015148656703389251162698504938900510117588961845114531452086450839302784033787309319149362131227056070774452701948364190228299650482873141076110773282108411584448874887362893628469211646116487044574783379657096545852250124361319568373840952902592626783600117282197652031751215452545419942397851031010611554868190912337244041960226488108048576936480396900999244563263706401609299485442348450721325114943500303553784229328713999299176639146984642986265481115998030055153194036190814435013789101879067680097398244561893641862824468158550271802719546692382003626713453864746152946587391969475429246404305263926192582123207742438015600827786480565229670647345421719729231248012200006848687331846385095289437661217462317391460542987190305008181893574688542157475082213151715031748341320458354950278120227907433077085409530026288425157964565306446439606618391027005283042650067616803097283192545715108693891844723293026726550521008923015120469776917437016206470119591349675904533277210423084797360248182101218775660957424486779966480891434771701299251797476114209374768819373812470901182657683435080662742476459053487441649569093938122459533732229640292565691070858652352813238448562439044684748762216085441583312418837096650145169923881350599073115710169188011870625252456803719391931644865751819726146061027051400049016601144766186498605754767479716674761161951856385422139923819130802365379716674356596551684344757365195034064902206673078206965790844789184653290891929506735624563470303877907966328794743722382572359697710602374960221758613210834949294019187465924205552887635388621519921326505367529407417038239390860367888783876553934756916874725262576100989835778283580749733309268326299254343752478594775126892355238222603920622596181761426820781369985240741841702055264048036834632195145498691725790103568093452674461516275032763362736109060600347366867212758142910399989960470405466561976063211259677866074527205638665317303077037505336390627748538476678711696261643845361522911700635508767529275785627136661797862858641024963207231395735017532692089606080985997638522380626217436057242901986415317087296294658745627964863360228654300491434663640099165351201194754529167118859751444817727863814314098662584491707587659154341587987990372940973523690414214003862823017069780174534006930731832990880989327627711656441265908599816573469530389702055949136544610806222451423031700570110473573336582177151966769665629680338754394485055487127479473688691429294703786799892177213073407520761511732315958736964049604802472625551499874575361192629109164286809943105963920585751759608242304666522199817074264995600197794096527889421493744876979413039973447640771688736825142864502691261340849894819222219667770036095771870659387318870500954458693226578399044784915611736561729475599352569614306024842094012472897675372564542269231130225523277289133637588688364848467192970830375263779995370285781665919450226763917489014097953059865984043449586325322938823834784985510706740625802866257979762516246669387775627160231157749591189651977157651793407366480135305003761848397238376026002348357543085480411565539660929892011136021664819913068082346454127987345003129718219725592922910413141138587527829437937285510646154992251688185764200670609925336001832343197491145463638401517036881959897539974017940708231129364206663229641499690634091917197663461357201055630520798128833540627652096882033009175396357734782692743034493122913142832808901117112573578369874806961442400168973744791116112020657912326450007622053871608450209493586730731946776924834090410324567070077518589625921994735427883652123038584019207961634785133507891169465387248373077437598758504660492406236390456291859646000552186378966574183950444072179454664794583214199684677313321594773671412677575281324517486502546552175863408473993607400569813793025907635917040263954746865641075232896310136506598663487607436334396711162775460077486202377677817807823627517723593698347450890188021165054761839345180896327228653137078765658537340888116316598831375373573535645251630543138942302676384044519399798898807269852128665996580473888814661464179111954547388010974585403884545738512069607258580581356295294769587124414524321729758848037320569373693103301586096158108248341171199208631163379556848627476091271010556696892379509798622396196328437505769079001463168979229171833069020347494857353099783813640035190885659979372918394552500312751432521105369839215954411783213575397314832537715403373634959326952377431269930830764429813482676614246668178818282639064624876168986783922728905632882718790109655787469838134936539247824021107609114667574490871124628043281829888585727784481635425030361390723384523388306381744046431393879512458549420440097879838935270803572808815651687431004573732147489807641336789226631970293354320137110848920238824112479185250299981041343832471923558052721520416304632032520456327643264034683472153013912120570637188001094260341835943561558353812619053304941560580123922510197209250272371270196783515298327833830323228310113311354174206551829810835692704390504757191886079837753654438336322221253228243799168755092171212058926448888832087948423823700533860485415308126714758674766961257462347648395588395058015596408843327053508013751468279285745558592612305763982449981618586742030663019857113459989988261203037379989516644008391081077634164093768259642092423039686649869488600720467345984587398602913674257180804565120929136827751941300261641432400394195910554944170718443573367437226021241414668968083592053920887791422522073147902830473622908420796733369893119340271036706376609511579400593629410920716505996119413869903284316049873999981071922551898675744821642143844217418716193981082341628526467098415752470433268614114570935795338292739763023786387404376020674762213953605891763710177384142243395701098119515734229341646150512550780528915115459488523926746552505803212139979662238362406866634834786966614461537776468899903355418635896915357266864796425661253844981247880978048584324665221348472684018287397949089819885514115469179055621471570800604945365902142174659024733341624455930929919772944449311753965813637304205298970919416069406310266694185475051740246862236643504928620653237330092144251029921797729991526552096492334626218497914629482599791458512604330844339069361626081632863558078708191377067104423283761213383342792754126779187891674870517995003507039597091086738559795605675585205654391511528525905210295684833502465437453569447697902139492011430562578137700267007914097986848411864611394983847875482153056255708959850596026490050713720469715144469523369525384119147718116928913951479724830751646209648401295239392995103377936950988357245870221365017893079582504345103544771595981278323368839728773141293856835920034644800249999634384341133883384922549188180108644116637345026737284596109547068289067940767937787665334840760007655165677986481960338126117451764158162448173591786342565216374088240486671308813569085186538855553516980619798935488796784647972014404798733316353806919272460773698202448353519684874752086025629926917053535083643240359304024530701589162071991277707363278589411688739193766860811442585139175745568761221151686210551343105262016678204795942714759243819446658157522538597284310028021047178003329358728332138487042301870684737716380735996159987762212043425066436203692894931477714280298687122317885294695011621794573917888626724557491978327835104071753338326849700093320092825467987239378996968292177835663457495909973179206003643256155148626165685944150961079639272254543043013518084647148636940309504374341024670151151152531951291529626480389003984138225989504453672124791534635348812285803709504318301400595097829270558845335111476122264044623237383680824987925348435594465663230018500218988474654865708098247091752343394442602076531463422985654144596869744636726783966927251067608746822234703822634273431422997692838114377891602783896297754149774387642778512995720830181713463196582936204985688322353688341082699908024656970798115940252812091766009752506809027778643977989807121984059273026934722415792397802597290549316414887131925637954225149280171181133751290884300329220572918970119096902907720578122399416353670013746747556016549594158628222504272963890213791168024276843402834474070922314230743572324726587052201675522690309638190175893775086452458496906177531092810605876735620890460667920748735202602027856597661028756495078722121183185428865216885668237395007881640266129270916551610558816806840324600241676847309525437714827922628379102768292118199333915755444606345588049758506563205602476163093652892145658832505583125690722738561350268452435346116282420768178882720738599937439925360797554222247855224503129995327105737588253375854302859995038306155156611820351059981817909250627070303299679837310602103032726288941709185382039096359701848983973529392035804968426344122378747642247409809691823350123391759986573301982633254259757960121943175784915917363766657848524211439510320070660654049900214986890167435651819711852358251903671714923287487386062050128026145540987486345595680604754828784641606791123511333074379251376394393141866539095186933213739690589965486221340123302231449034345495636631583897886734161086147367409393211706053195064443098077073806518557881392935142517694162466957863496225478938853016965813273190812046503738145808911042267789065343291660169840020579604590780967340833893182218165541031224483918997393831114428144411679808113729688398366105546951834327195153020663048408930297069074815208413814314922946681891823686667632540685164150213114130882700739651720402223915959802567479583754047727717543604919677932123361496189782893979118956208544655985133080106383975687977429727556367103764226449405968205485578837883784199532920721842086523958853925739219917957233508967833915005807477112457684035322155214235097160293139917740714927094448842951093979716072842675905599955239411881549862258990533978891482274910109895104880235899696888690034772707208586394293829231757964061481039448113768040609211138509291781259324687067345961243452085711593090500121498500123888377945321111261039835890735698016987400839312380202138854614490929452729591938183806943732668147639882977354181717849373505836436186051355097785566778192396977962729982894064248146890725805980788868705858048483806680161922003922764364962454378202880131993753992810938324359235683836946949491357034180667892064787072501486121999549991716108321676209767691743475754909685494979951805689001723378581991417070668511552373796385105724186931226906240424695694158362046850159203356414793035468899919497213887796583224502169446247374345097660712827201016047854084013537582003036936238349061429726466907946920252637289559206326278153248955433011846150241917826464553220759274569797796011630330895716239015117754718010128737048540505494580981528508153943174450802761605322546821728541265868962785732028164608590433254085745394657414685464292616118901885229301867354489776277717141258406293493272513184289770498832389099489749558083494003270446935880091610937203424737867721620059450266059474437829483172186581265973860234368486315187034647053231264215703476766464402686892437517732617381712255412666195529331492129517075713478428745411817390195866398534429935800715380392227835431445259328532802825587986739122941168494010792900498694492837369836339813068515144637687169432198704451607911329820378774921012273179006541507715808714350359388749061609976238299316021164116035918272882757669526603197321533380912355138838162940081819305178543646520713284071963536029850947257041916242938058709164839586042431780900061029052249447271320582272768039188889238454113412479197881755547885784094406030452949530675113232166384662666378615002113855698063112994988476668070491877785543631510174022831938318816692905193012318868356635805756018508594702042238381345999190389215735207864802873598946592654280004147534363463496347513854176967177560342654994758011183187765441614004449133437925676369889095584065972925470707642315296604332950836317234331920940009065663819862508843800497303590478376215527259022701198373753920924160670947924065991540407651483453640451332430180775405489488589066983212613837228287796149326486458844736666169865636303741486963422068074284957474949859293301305469353331262833978857618790372922588213449827542412105863155115061248034351304312388088687105667926883085166843201407747120408703212995886284642079995992506590881141776626477194769519336814379855840824051784090932604264781234192566181901004254265891180270466014899511692896135196515358454089584932416824330007666024061309932321194496714794483950304315344492519912944044035901765169030961828488267262260240285312024861250277802569983892199998539169734371855921735845353873800868433303457319796566572716617893637041384487367663519950763921119934199703860162899458211666627846250216807063206227373190243502910305403862676000065925448434103840486819526426080032632240528555121271606169299059557706572326721918349822738343849848909277399983983449855739038463542323164787553564864573728346002932522065112547914647538904160933649714588738977333681867002251197584331417050977973049345601531388042342165387618951115490198050495771492836366700353822619442810479725392019440077237140742837569920633027800417069423680154733590193149190706001791884588790075367678628109714550466632306969981261258785580243731663373879056607693260088974246805598428011644265818772601472370192792069173909565343447157151900673309464548727902006135672689913105509787898282608315310321477570183418419142417925545474699942486197798378499026793827134628133828047003700445110557883390491326975548441835492984550786457674934675100804567445701731233053960480027302798015163799144940123498857065215327059747742072704965235710245805206068523793120579658782930283982645871296801623486702979045491163406092550911124998996429232864332519805842244123043178176661111200744455250862306532918904139571602248010931738821322371709724428743418541331516549077098257286681023180696993089286130742940977037683705716067139609583037646156200621440983279935364859336787193063035516435609112927753089935772737692606270645325809693782510800452758065256132353804238175819918016177704764676882083223493630078256826649643098661315301099239434371567186845028011882255783650675483908363679218732059023269311278420862023390192352172025860376464933056737922063161362271476911374702868092004219396720055140792669822424317022095559817692940655725116688450091057454423016369025881641292647131291564116118180888228906341610173278844474412961523806003386438927119212223650544984250984291473979082223660613610084747166920431123392750605000196347886707810534587267517501298644812128523113729386356832749473415372766932590845623409369771214020387300117767005523006197173414928144805211690496855277399333900377414950522427950545317911314459883370178313619492482329498958676947446019317411122166318437427961302018771824724785744748021023615841848680485615543657807119833683943600853324076539541862128449222021793961654624502585878978582731781325481545485369446474394080931707139266568447468008194025424440442756699171611717126492683611587128642624681378474490131895880372628658399897007017396887217367465480991725098612456206576057045288352235188150143934800609712907966609449680334928396032086246668414116933344326643730016020004468513411133078364062497446024641665170487279806842279685650786250168655273993869453178389874612179282491854155204701238761880309364176639480166179213431134242348132128368634157444486251508441663693442153867895099999949148953984430902464687348411488041478078468424691536090955335040534257661384180795486195079650059621422852356853026007946313278959127322565267110678013677150035353423110579838389306285784540989618640056898152722333679509360381089963970349315343884226782790644872011979417486587090029394319362041547772218273860281087810780429004786453238560421457332416581393632991762961878827984832755338904402815329440612334595472185083492393778866208173220586773407647085640818919937599671125324767106732772914924588908808542144310341265315283981329059605251142973855209120324298811686190708215611321353516731227829440330052008424126188503759305389458441443794266100683826327452946562482891769009984329746550283542914497364880640455707814035277158762809205028390117525272900761454486920636548769076893356136798244717047580712150996397981244809258903854581287799123100330673721901326058965830045216789064576491019315853103958995164803713928829612830118882919759858056429210972714231544730257662870322471864736944297269121424305298780729865505749428703637244845566718894724834167657435899646520211389501290988256327314623306021471899081112109126216806359648708271640254101614449248782800781612017703929961556019145171142094968282828217632392747792338128728329674962900062553923662495111857194464732792053105008552505085235818156885703710035759905108513325653254471992298029316814854816566536266167628817318792631880472849113357433789096191710176863417424063820284032762856871396800748264099057416741391194845048844790012649177401460925909614781639397988885932071427308288156426427343594173408163920906222411754814248509903159706176258637273401220579869572114199879738763134025253923783671475303160295617989329780818721179939518706072298633196456746854605603771991596374556342204543474660294071484254496419547379683556552267559301684536743735393073741671157041502591012887979508321426708692763726716957423374837421461286435761239783362696807810698243250260331133600789777018908530458543471122052522853510581300301369866018089897856645288960584311451520030765972044895175124697625168407658569371836977320804013169662885805034720951022269255689265987199455952853341793917059056151983507934069583672494550745170708758072371528179299938361913206210693267484124304870066075302616452128575421175592503756717265304696575464523870192213331222091561058932747545710905981382029117993567962172882316232617282534886482968109059925337153099603598930033825254651150589272076581612873923288047011041806632315130568456269232855148890734133797094592710663227759243985535355807168929061257597808740376106956139818055448623293732774393047213827458869756694286315751406986225103356252311330916981870501522023696844825311640528320837615729751650525989589947090562830455250092693553875109939306696960426800113440901770583126768459983253867458961900540456323510648769376926741691802459589580583339085213445136359409306952198703113710212820705005182248043307703726735526863991203555688871640914180324427083036934271812540858376059591370109146765905236602258687098413635179621809939755728781533827751747513955054768689062270914525485046216871038577940768135679935282620447070101186643483347510506466050256130842786087068941511054183855046293754511970026087061469641114540211990864756846485742901266577823177617439868305810279077455008883205486767781272802032627507795118868355599437128214919185617152482713085425745124238199176781254072982185645329505186576804487058638184356851762119009950594453056366607943463799313728978984580008217620837489084853737074304983444049373392311694334988341707097300081494483393126857719060583284122026710378965106682100333128602773042988704884731759804244929754912848672298141220970107702219420837221417720700541018389108642616441074847187688305396088004669890179935885021094194524039543960572032074496379974059104720621472979403819227999106448713409047463881862998874849709086794534337492302144700250058795591989120372296225042432392234198638406944630042771157131717133912822489998828378900510479685230537043219186892176716873454772663295656754624002154034884993675397934077461088848597916863393109897613581081667901758174843387290195166005675506581256411750112398520874246310576394991851439411678724051795091085069770115316598578113802334970015881016651673224945744298772606834280844135360444427445539684127897537937544863412906477132358344516404832725530477408506298405636271150857177377047625698866351193858415704186606051639759629632974331455117985750136167644527339610658570338435808259590262587693315333144461654301224910634592646522212925567407966635942278464111641553197712641266806884649357164642959308797414999000273713951853540115433528841338366276286753514121693565841075547309960151998633094418389356743581545410264773276633863599101111533351173200680423198995428042471866433900567353168510798303285404892775112038991654276726541958231994163514500538806815335367246063965000256721612482083983333766737257484784501981110356917593337125417175855464869973013236083526267326316060628862218518983016142773581324847137230969509826288118987918628417978091553976178859298433996509200402693451844812489362435062471865609839024753934492225753659853244347301104218836366596211296993306753369932679147824759087597285511473461725639409303698725682722312987561144786018848511698094207589224977455778519670987458157441820050408318894998440896708682129826105936341406035245780624458805873976404320679757328833994640404395967328992506729218461588832754504865534591206170356540363013618309510144443710389334842467537938843254137910945154703821787335011408615334120827274487448763074814638463461440203857391788849322474538300079683081531466015251695518361767259645074773458750172202518924141152646070624944166862922082117919423021396283058034325131017011123348205348048993969704437065902170152091903064332125218547699549497294628772929042608164704160710971050323117062809123796361014734948599454099554777897196520616787039615291737715517912285828861037737468496324987543881194375182420414707073382097252461208779906896440788733714171396607636341835482166687251155786983784587282167454304644805091119768748085775875299418009212182399456018309794127752898519098632124598107034880855256145132638101242762667780485655073715302572584725633746919806722897913445381503325912813878080290820306035842360265004913466633553931128684493168929488879738101576588276398025149582731488658182163188496268209152669302472372768006334319192884031751122268497701868896209570388803061559815021861503787924218151438674128847295895433394349032555503891664610203493484130862982437975982315766269746129772138311160969473592292758313786340307433225642577715989186137330853834023785997133242156182197716029009942344587914660137982497428148253094448219592361905351386942470342300722409934383080646038575076071021348488195613811748834352392493422152296210033066728803692600468045769538640675086273270279365091536658577660360989026712210241433362573113047073151309791710150408147599146210170289745718736943543408141955102424813499272769829546942723179287462340851633438623717415888950011936567979742055408634379211184879556243126517925283235077505274932862472391546038168291916907208690810315037044482862744279185766346626095696419477451939751360056972097976632740554174581746739464387117244325185341581998711568216723119785456976695269052241010906874290712439805040261526889477610595077259211825984407916321588855021057149369529497298286433039674081801589307716266837109453667760503162172709108617709987927449762097813158902097525973775413339821623365638658249713126793308682811693403311507019153879312182450997678244419271101063972893586217174733028078557804286998164624875462591872324436371146838673374074878676454923225234776126061721778687355684252240981052695501451730746781496933458415783478596804534886342629626027501516560293386430069032214944307838674794071406460545165757844715540249029443522452101423874088155056427589871979825677293013993984044868146502145700018931113655919823620395947630147864918952102552113204803072468020826140430026590811239934448169087986569263430772391965353335739718028544873854642134163977946657221726182527604055657536136977819291470956379222491735689932952939998852300364229391937161150669536803334305345791461228604263626576917671630939068653567423458243836594695664548892649325716702119728658955608748052363925712567787218817448157846925501895628352438852990132155682092336958921662403058108978685454809684829757938791314929920404520062624029170641391681030524526596415228018821942896013754545614136742518834514589329033591027806965214965811709151343575086803340653330588018359261463088029911087053070596937460121529363883196771745802944609420461689776030931193633452968055444535917964254934596658044729841844812574609995819946661846317090099865171248089752896895865540237702445427598492828458079504602257132281518229335756160631440834513446424361826366248623526597545224789452537282208606590382475723101289771876081498421887971215507071204447605092693891526248162428915748005306185957985437631642376298860497795194703533053094434946289234505835451388102704571428420787893904611208665848545377155998422366105561787620703354338310446712812054985613922334227986046725064434051095809706244482433406073607523401591062577509084652549047557425517227140848763384642042505097980159325172483744221072742141677430584898902291722612508187530815004842032717422197423383066428848193445068383162441333199963509608355157710075416443661596347459810368699961751586729858603091896252767916622444163288391002886105461285360268064334199727916902692697948916262995408640573734926262171538666220032276887531373889184265808848733775528744111237242838377754264011215173681141371353962343528374917160992867480435807749835056423094860785767036236489302613058994021022657190419078946724837771393283933645653990914705698973438295232358476645682251819660186194298821816749408907644353688460727544477529137889509781825313928552996135031006839800054112132477527567527294692436074705727303190883394392849837362764461972534850008088198215825575643462809343002994391933047030826354399742303310895403483060595146302028570810327230485572582570290469925180961114804020080838251930037661916344032088017254194048681282094221686135402415224232955808213982348108155858147338105991757567236233548262863022511222507920666479353907532362302946416091205985059965753237709008227774421809184790644524153392577389400502487129136763252512988655045014409833067121775393506092993919400502671888490146928236801209703621371491003632071230977599550854411424848608729625579521493553938294682643832119005268182654347107520151776369943422985828193910232544090953438745115162967542358720060712725959998156460408254583201418167468562666958976758412090628433405848688615532190719415019615625578588119956946593088262804096793652935852591825289902886514729731185855562483951728452963706176080601141083074018259420447381349011849275524138318652461980535666720389632527825061157702766832676345809191989543972346083765221172906563082186554471234002807440715083974847039442907676314234470257254343228915523552366715464923180523850437827457578632027010711309161295077061484607522014252997965860142681418881123241135030370769953656577922263663212908118532531465822365823711509002651485219150142627641152266246260497521640645389970000530358317622886887865208896449590627989053731045896583974771165165546198425863422611678339055556700249583325529880233194520293163545478519520467770072263463336982033239208096443466061790671809613448971421927657777939816404398735941634866200560196785047771462088054783596246210903983341190014377587346362691176263286440394181538085556036491085795890962584391126833134773946385209949971208917822812002713267252630099327695752848097829515856049741805905772581899730127066065770468566351770153295593630366602403828355172802297846871199278748763053228579693753151185982453052697062297968513139854903111773638114099450870451294709987939958717337137064686652715816224617548228894255812131225040743763093603591095284648131234924226248838621376627158069273238737542603366049344984729869828942517119706138287403259947445496305349952450260424655986229994626193015700335264994115694706866484669707629746386636207553403265215734896566489211599845864033376490474574338824116610842757743829846148681078572250127492218082546686803840164306898152307824217276962036114541999903205089916260969936834060203712572924278971210360775042458453678329611048778157281440743343308182676601986009175162385961172810926771727857704109846553952391361733960992753900583931357164753064327113222868414237166342554439356137980707947459798450684004115600635407611416003065080743951174957540926228171690450539050547584083741372146480257975556031683010044593426110678532450745935364968223879486325980444102730560028599764926721458811494460297151511431415855030890149105273384805224719888317449222798973530183698065181874905210820730101018071780353391343004170659026534110814752422074699344442272428160317284169645245929098383111826379934446440369478143435674541694147162514624236541817927506103567643314585898472667654441219580049327230037366141377833239380674812775934497479663160215899937503700212083905163369347999043361458587762571036498042705295154073871577484930305340820275460531987038866358932900574464681409356368392755914496216133242286222300358504514979505043585798661376910922599649463612316120019251228903728335325709020495671185478117197003654640836692112316897267779537555639547683672973619865917973029586567104077195187512347797158169314598683116674587631385898215472878069532823882873939731147062472356440838286683487594459000857386353403278635999033911738080539290304838396333976046306039090144425047909456257741024105746908305043931778727229424191009023738719375200316148298753273218707246513688308740837776840189541071807447265626921909689348441128004080569167961382075564664089846304058397259493234181992259465645133123494727261936744094371894652110650568238839910053844696020952162972695222882752444248977587012075347485451412479814994526339360639880319467649474585765156490877276524095511660536356412804085946437297274185479006218540990010653412339864561036572050898930407129169491807239880936117982267071825209642228510256636901537649688981482787116584619667541570503620926938174990063417317075156000199475356771652213251525335760260391147951446310338621303434182035595765390331622380226657986792861420461597257891008822524518043018280730093598095933445837638412348849700784318300380719213139622629821717754950578726289530440146845936624493265141187366305551165126067512838714349583980823504737198889404081328498279986064643205245264514070142511981350324937878366357852466797981226497845049115831989509715478261798882261561976816105566571162193653961242754199577978649888800245846059162075305130949745722103919349437957207740672937892672792399929162807825431725260499714766669995123007794420959884618098289594921898134653938167502514064545436069148124822269880667993574788151740215913456686561099475497796131309778704641415922026761900734792616445511739169713933861371075994654591581977033325083298087238251640102362400831118516989026323532136346674789192649564595376198276270021729525263333020475584271371790823722675222692401558738335919751396669529981035819467151096485195217890725180316080332438539584630533574635854312896525488042194828900659575720302270465917333943159090669235548219934927996237265681895840866365030761319263042267055615318494024031404430701631902395340901142343215212814672754450821427811945973612305045856007177718133037202202487018619247839469618316041024100634423709445568567052323316183901290038646540199626224036045845847839712976207289916668348017201968689631484223304703975949170837519258976974057823543602578171534039463319215530421344350339348228878721774671355374982838471526463005584300348758757626839940800303095738506230455994181365829797362901516176518204592894811917854397089502537047027493901623491911413954325257967978882040572222353305261456154034254651151159584245961057070480159288413429518313843391700965686565790165565790300970671351276226864212999297726371487655816984079677580281141026258266984644933807003881511916540255967212071670728720895973778049844519046393705665802117592413519711842970667838863058298548883896539955370097517548901176754754618096491079109285135900527296509058477602690118378701254248216757420211229407514016532100083343898828788208507099678195559278250123757394784199146105989584350406690866652062547346258989089320326965380752781905715672332079216243577409590774866491504026916252331090012138451888636187660127115154498510520209095627382392510152739833929919726183738320548802795893902829500780172402519003922698709467400061071963958983866325240737208901660187020893836355027751533874764456927783727073144751211472128760713661655137310738919781282143977476621223833527897143926982751405230844832982576570524431751669341531281497821917517925233548659950930148708986146195013003827987475469508261739476727818368215471491803285796469314259725428672872156914602860781926222804182189953713832048297844053877825922701751422738562125649298939304750259120528367793745881755201613962905241137744856389536819422939912787836580426853775155955968349746607924612384330356756032670825001424041500220446938204940938259255671490503411163189427636386628431592206395934872149613915512872565850964479355765061330575815224135764824218473526677983480173527545506150437785288838807516223423113232894423136197416194721648423828935631056716989781034587949088004008821423758484925580093873107913856166420382985570203611667576452759433131660344666894864236021660683411676517657665528708453016478191448736960334478366140021001197295286308835788174729554107351205605180700199391404416229313550943464365856304912706846123747060625366588029351195813094097955972661503154571390885095611542997189064909338668984721680264948192697423108021200467774400584662096572415938984664508502258841683260862169688677127917378809815740206126539203517755571026853932386493005205843887945757057616945009925556067198743611308315747131128843999339263987388751529045448037384701844593527792985003407288188193165268532942494653437596236834297527990018909415412355206396861950698870057967382080689252410173252800600583477889389566206354685066944425738212814851666698670804533200559567356314261428720116504783942221704657547106714040915809596631331130616981816764050177225511653402045911129222936609691146179632755411275019131936514930499746384228298846647697334089211615409708783337003969471178574110184610617813636452651630998192297686932782453634138598183950796661421025068958101345190734666432555212219012260687702930733163165165523041943054311905439428237833056970571002662903479676503097620632781538083451667818136369177158433907088160711756233648964898734099436640857229410372491040335422608655467882426125293474595549334535137026170396764644503302729477237385301468981119977028323119237394820233735255623574512677146085239249753045160389060338608595282950456119992292252219692042232684503423051425372993585989978574923568058971612631892137549721308582111324944906804531055320642112811075842236271475791414353169159157088232313532912739581899828682306932007132651576546834573080832049372971420869245545436268589893633017574252951298391422274873707790426037995200958690627035502419441302429958965252000833973476735448055036917985518064149687273048106177635914937245535997439532266873201158233658669114256208670824230575179373158989476212922779240613534376440544004227970732281450318279971246819197945924368701105527485230066210077544483692069540918620114945710756210122289906079485339413735732633885818532870654497211957482098475607276634175097309872602366106616146474300227813437484563426656592456542585269424914223662134708759092305439914755996111123924912583882441378743837722609836951405715874301972602274462455084289144651897900641252198124679000184466998399647979034717673171207401576297601541192643661408097989352122958903274562423147740477548724725543001186169501536746541634863122638442344226932113649421914745886242319369363906502842808082463788857636674309171837082792348134249421469953396079578585087270711177979382614383248480193521883871417216836627372881058815995964840779292169335826124713035645553870522646856939471024658085574358038793844664217318151770119739715601169492957337239340464796949707281056695082164304293418830908337998734230601438100553599877536484157514713682199352797176061946140128977077581601588187459222439592523408091822247247966280363806464806461001230186894122916650073544848348797559658610399764379441235671558072203241011619431848257695925162894466206506778091084266500291371885041094505020678307038653890938813320373343714134122749563350938943214708971904657770757624062158020716025378767425960840224164634846878830572330455830692467394929391889961510956710842135069194451328665137831930495072322770980307437238268358176426162803687154968995815589487040559853729492849582263143772749322306636738154560209721245177511286892038648820413179437555458086748911922589824051576073096334723065553727472058693305250663820967786273194963842736999119231938081582978126829442903867763966489621861215847962777889500417183005759863997519521531326858419561210365594019272049414842123954580657156946571765524315988605268440169500987939589565724941795700341183722804746990015170822668084566318882459454631705634523699647943485280844132871058309534780300702240808996458431576276257447315173517220158079819477025341933941924652894865447868340659261282755800368784143300734228275218657223567728040005782093828063521338796948820367742453449429432610388680561260159686455515003688277090045286122206497792411627322758949669124545439914926934494080489861498896682784899976810916851263427168534048909252061045652756509981366024700571923482496406786699100490839587757773465801047224250516338179415539794026636993351816315414222468670430663219063853414437822215868799706574829459580644618887711319478386844559310846388686618492739104366869254763194358339886834220425039603780734326660857716567008043633071661779358470051241062292779927000506547372352766192649053404223818611386063134510013989298001780582684074366347504329459699129748172224130493666319660550827929544265722488213983343838898908335288685722513257741418804725667005030950049103938639828375134052952721524785765193185245054780887015193290891887259575225580215110967328069109423441768984569670114126982297415775446321389784032086413703073022633272475151130804326225893386004988152403550868300207170338382547845432151556143213175796462096126596678281373897652577244218038312333295592853804685730088548752577897748163957231515290506673312723729680573840329526205783809569706933858948396597097372078818892885360398620390161618147959507518091318174863499664175668883088528971589164650286546483373170287381168743970816962231680533486984358073802750641726406962525613734257092195669520617444748922961253337058728142892970952035921024125101587201632252254395989599144079010255220177935108909688054612801322042264318596835353387371278579529637959988215551728166784610444341424159238146581027559838017971152285701765358967533567887842355617848352581848053666717039113857986361535696726470685737611317585213953272605480786335137585952226305772936472517565129257696539141985687420808477175803636434728598027022188178959599651794741336497610266186148857610196023834110601859226883533236278856972247566228610164692725871454997364426041563600078387111374597779637388293054432532048976454533056414585340365351742950616409645907137084063164269567327151840885180896270423535336995557540733815580837170823558829944672271711410577717226437388652215763058592032422523124627306108142454019471430932533562777361710291435947095674779851097667926824492728998361079119026272588267025288190662476644167614033769767072988173010966229915521058575139026937799236033160291586430498470987330033733984883112402387493060874380780666180700008183673466850979457454674373201146091896237638139999433809555466526009265500754095419198433704345988961201275926925311499195029664184394434567466122592036383606142336683890788610629619072562280474378976593097480240126976032799273480645567267032546164456513392342370603643581138596401507165166918302530249951054972106534930360425808525317772866854785173127638689923550205140991045606894853643999528437734237280323417183783466012292970671640186052242279295840408035688643382857774964925879623222641952576439115808183339532197028041390814744921190848825932931511249028339690745391689017665117793090663215603155492160215975594319636186297682148527370736280165292000093442416028055698746475508701805489710874347141861918926713761370376546888889457475767680720930880910416443069138513144395989406100510337658595257100386666166219028995570479284888956900918276738854704202859495036617347636557913613456287140328511898822066039536903377840155088202436084329543015125031476849707949832604570162988393927241508165744050349525248658593666104150195795465194472109570566343107332578898480160818648351719868254182758345155989503564756431754853424999166831935743998441371046207159714643171811211451855635864974457692238154995344924394044203919302883381385841008273612979420128187428472126293800780034462464748291509276810618363335137778600942545302095676164344567684378686220399597934172355574379160491067959829803652671643660567688527520071414206654264159144131597857066581930329731511526282409148080308156781232995917875029832012730019315751453149098655012783813271390805107416782178000050430147753358975075033504012859476859522436180561273007660604422676326204378418262044705887437757349644368519908333045725604567634579007669979330578416789791880993071318930222819213569682134414801761917846560317605056573441854243938717853990052350532059527721135733274633136006408651514517131395249312208957738024022382220382097011165284417435524079644852631140875446152283999831303138712697518293468712014597177821229755561431994515310472066905310877096564201506623301812589272538757474037606900453159618731909740449952532595872156428798614092394771398075844232841130338033098997790220648179913557099233676315455689651871467206407864170089769391155951372215271776812207942246678369312143768073153072906018896149736526736400929273158854180255568561543956771841787934919271514889328902866176947994886530510455278000850851889653002328989758687962585388161363839084711074643260402387943985600892247682807061920531724354041861451025913251845644058446629532620546642677521631563888353825481376513051366326358143633963717045236202599410330935771595401314046087399728394876874727949808487959735168384961378033386532987522883704057631238547223829064404585079084631003125577630111780685951448953841966794905154541821818806996543724601945405996666046089227907777771314221981821464452497808167984544960626872334701679576461337886704512803378439057875587697647162101519505665756250829377453220298835472334003167464413045423250710470839575962049707926310118946312675311617468449923423379395378465602857081081571404841599009335379785229395018235191016878589087496283210794003409037077010926598498057581757913940616429813080939065523507666610778519000272916455735204001875166505542528404626884392303889930364785654004796300174288100526421469060484429161547069272764642163681550807698695964893888194435729441359629739184028496123023939086341731645456851712999719117198819219198495226357087866402269798314513873136779564754114568049584617844872520360178900348047749355772434432598261616825838350676932091525422737161398143100909727199829702302566707595909443764310933681939744403696772105697681776869881020088985268607776118119890075893749938961417168497937835421906976216033001656988780534955111472642679789239556570657158801266730590023225411772574529045139995173856322994067509525499763445942148140812535815042722954812427287792122447323916307830818214116883849328920034452639739622117090220702639786786702347061911484226915822423318674940857104342279052881547448793467400479095434320334933742347342886331941879636546952040847149594875688470212587789750480078826186830774252952675755361755240611159681510027085518641429486436734862357604457291219276418738382187107180712968688888494791316075834042419565905017136850359624308397838602699479156011890469403704719750167626422849573109208171629734351562178762293568926970454959802768579368857210466693936296236345218091567039889196963565788287536931865640833662873708327875507073078753652928562590152635613368337867098356383296729239008154773654563538252962285319166738218604295994691411608925671367259926508585493718892556093334794177855297852988912140179125104932101342729803726694632692400145136424196868715793310360358085374644460374150477914410694729662283517370628043999518180365851111984099495282427539921875747827381244279413478270998458584016379204903302827999860449207381455367325533702248776430606162604706704082532061547776504543569465013071831446514266192563901782196043992757050660644982082514859843430884292981064658030447570458614280973760384950247302103042001027541015572922983126089478608189256224331369327091051387349082587565797123484781908613361474760871316353234328281549389986677110943991298085587027994766179906780213723334081708476066393413378810790131293621125121617389555738102102754855246403481828468241788473658628768146600378949760306453824075443703592408681216187050221478392258008339895303451325939960543388337229857076943778061870445551459680437900955762393360764148411536548790400997602154368828556971259401520647708727877658304478148650293845678162341912158802205630970882772302825353251093875124556387497548916352127272853091153471738425300852741663602524986005521778493644833246542442577510515385842268862171475314118628882045157818670730611637962640661137396665741696855679144537830309509745599921880571656464183394329926515671088990370835519842389195625125133048985045177278309430922232607736260308266729928326025491507830954861079531226205854771464423776461029849543216492822175058858453710803786805688189746299316452618602405415244100953734923556980721744957730067529122359151238117987569421423839258552000536957756906787450260898990741534497624728945035412408316670278237801974087194071523970155346685351083248040162694497292280054986267939828916020504570718701253500958319233346327860799531943279645141156655315947054974405812508134011520790967671775998404303990442877432261851086154777765452251064006318754378203430006443140744652863418616947512805441935587101951673509844470397789460633655214180695391595787714567863200880557590680463467505511332014146156571598974704728122057227060038845023962417193895346983948183614680387631940918680915332268618250776883305293772001018119109958697225971766190819149925554531590031527208124308733515992575350605124440996569541547059492332129063547381183510138149697942215893505719026201384056256924380411571538490683378772741501744798277643965754193265107336619218019115848777868375113930363789480464585161881733947375568035648832058459828475252741835011725032321901510364891001860852897019532163386386247386949469627265389707001088937206190547272212137070528368699104597639182312087427058561289780006218098421897986878867162295698913228335140046790544813509494688477302698813010451977196426616111284606548507911692851322590522194471562233696676718886417899926818349024884396106890380376304248601755847217086646888029557335701012223923152816415010048640880634189189129808769449632558707371381182673264890401795063857623601709138291082691992101768853099740817829272382437400950295801332783832266890308033681632900895793689317754611966910944038470325425907409725358794392812215916277391491730299555424239325313328248297606472971272949387489784269850459125543141567350424612209466004656165823537943480887370836021739846924629799003473839595479613861104890246516584635048972982597728780970536766587211907315145652328940396128528493675218211857664857872251279161887088090723423366788836092180147987088905075462023904085954935122078706838543002629867274347443549934287162246235813118714770988449606687308469548166094968587205931048350606262110444089887355304985756435144032947770139894614334158132862346153633932285699101667187072901831405198631750233333525448879813584769879603859570549159867809863351063477691464964931097342923632203498729275576547985695475513168999049997880805270875943556032204073310108446204432450919214039769813702511009603269678929466930946469953650185632756210222044231990869210942540757705848239402154795355355902429194849761104943738226644444337241673837596462862239391326068821673555102679294764410540393830061508593527848923336203908403680780900301976299040284298260053262209251767754960512601861011216275660982159874237376615672543256746076751697645594052650194780780633840868005202064873477803882610658437587689748599608638200214063414864778035655050480514382302108201726758509533342744301375075304202323737727986641884321908938746508190443558141602220671627454444608843354253034114135490754562110530637031739135918136035649680451841301629685049727828330028456110661397650729542594276769111251491678036181422165305722666979640137795644647440685877589760105446384368617688183414119217488470338591966545199073499020266822909653318885293175629320885089943102209188181542669779076813375600074751997300172787544264318421954850331921177217995457930384786781183500600773506885360797095398049211112925998309917718056570307704590128227215169656946307517990294099958073621688142123230746919577421485258947022218298938550210647799769836591688150532994734136398368729383571360291174433036765977337724926665063013753626479429138186233184946601083481209559028306618920992179931190785954220404861411070898724098318879120628919859599484308665894923867205192792636172801919861100463498941370167118732856995442424780789025112539283858984576102633759335479181842849024849887685023119663303771103143131336991224638534152995332161605047036232156069598386307235916517957345682423578631620294824834911026842908249571533055626458791825534328902150508085733995040922338421756822620008532408720669814583254319301218732673536675305747169861173205375330513874589246540028582596395815463173198383992745763175365850713272168625618189353017439918058477647166428118315372204278674014224853380912132525660934815279188069073333515585778156800830185417133918573929496269256494775439869619014081831612131612758189366746171769181585926935735939519362824949350211890801099072881993275165562393123234831627095767041895693879385028191619500054078764148802053898309190359700839676229137623134299342190607692556736836973668122396488628223656957838160686629085295954824323058189235493683272562465415557814338277975312627641876273384824798140859996414495601249959943533778441628196300713355129916367050050154085427392421640166689167698929754598724459442273054318406322204288742462515400187098019538426376995405388068599645539329363656388274148251320824793112035624852878273546240284022910040763471823833745882882396822524931778692599997303503198692003535089372016687700778278339793663228719454798560846940969146670387396496074044848108060476478900390025421449116950680974887484649893972799517926140129910240535959943588821433173474663937524600989965971576794565249213112998814015576919433582113565752912443832186293965733363368562853579320548282603385581645137469134844987567510618396811491207175767026987379331539854827185529164607630574212327956209743974123170255098854602219412313344859577298712843483127528165352607571787150498756781022376934724632004535659068000496020485657326496884702644224042489082919488517276004370406771063298288668452628710517940667931705567271429432886091556999039068474607117473775479036032737087317496841883446533109923754881170645166377270596053811981448519692764438667008402777045518773992217030077259802549189250163114637135743997664454240287035261946005620870720728938456765140152275108062864132312753492027119704928733699163504297300475447645096234038805894575872873546916512865622503114624806165534610874627004158925410038206369771079708070194604080535576469107455043807777823289650650053072099321325073312034441128787091619437585472898397499756254319452034574447198898790843035310873219978727710000286756217039080791523414949529006035763227564528301863274118793045137433441753597955419670294983153868016483250863747792386587586849863352071749702656961064063460713664157665004426640647899328840754730494741201795941800109508160994113102102668058406723368042599147960330314711016705797611111563169184678739008758187280761013114148217003431096741918052417960689361397725462246186400248330594187064775583132325178292312933211254029874516339016957137955325922998155092161929742355534214460516295247435910656207292060703597231478070349802546330158776970937544312808464788288258484338782830591875564729358649508913728706964789535951509881545173865201416939780814459051995949820939287967427119970646024757569667119560847931049764752273043875468188892940724855054750823208027409005139253876929287210671372546780056687653717535973923847316262817174014121356667791989352686381403770630951365823132199064553710048443521021716739123529602766464337873822324209592356507459222661788211410800162011059672150283428440938513364358784281543810697421425047693334833219724662256505660370605574198244593191019414066187641208977021015078470484325037555547015660452183881142972609242013596352746926778656847114599281087130645913122858062385897097039050091284563061628354171424660720942902549291320845135110654997295701608974771746073164895152412032189535949089290053379408277486701769193902055644415859020030134358120544302438845294436806012993501955203506904914203924216044680955938204516820138673156978002633688978116945705234800161482825520916886127804014656118419519298367296346809244538522864776326716180573812903357317265114836839991757831447168235187119874662162644993050914567959597829983707418710808298890037772719398651724181067004980026889758674809163088282984536349232616316559024805643854531916419865410799165862881080896057908164965205555527578036056677883618409376914156196999283855402585669617445528123439755259513912508719734935030704365673766936810834928937381804643271688687355134426867895819583982556439156438864236029340760295771609171300909150386538180706400458771300191528716186913579779331170493001559727941256316858444038951432409747523194204200479929050293905409061260828423448992139905671989882344298059846163202477017314004735272333096308591380789926737719704861298520329851649038437485269239314123298737562355899691314845400610022224907383472192485369414487342937185058863031246975331066680787142100554335906694807002898306432681449210673758194983270831207538650559956834998858067846450598295181936102063734393342399843485939180685248581309246383408425678209948377193249684525309805028445218067892501175159335233440398168541675423633386623376824251138875304031659762033305182225440786548662901231234470175699153536714627392771298973010480900765778435529344927233582632009768935055019684200191877657339980111790453973096887832075007294489539184719077987735381835054437546384071577325545922725873581148349122151044836930266775535083289729884550478227898960916007251445032023507048291692396414660505385139202407709765129360236962571921618616117105682289220593523093580605934651024192603413119182822195847908580689444018822150227253558783765470724675360579900763863157976900654786242111555073818253730213036287523558972220764670470734981325338361478215022729067590763080929036556738291626794980891230276973561531948169535177270351517732843256723666674368114507133812372790866604962347447707164658454122433804379649357709255976385122802592733258379727923778698840007033953358368045768495453828110409818181989283106830323125118790726690817681925236318923634403180100511772078271817772483521314549027595959489863857489993179325375225735921567907742830837394655501279333619691319010769879724146548933460438634844213849352746935885991792168973025702792687404198410654452326338794879602938428188093071991621882171698842239696956942922799902207399617672181493179809103778465929561899597978458165919466597910746937891933295667862264654147269658799486770122149247399963005856663532038473559118261636781735709879981914542648071961116079397190034890514735027827555988017509138447127699847272060348347224202388236437804052980061927204002099638864863847615126588907781190326035135146373629925492116773124488688481356382542739571993482641489784792662994495800041010835831257026086360362822920894012531881004290295746949689287017216982200874016417078232550108125132016053012344653820445322148096185314277746874898918743786683830070905145720643334796119199826116142005069960363114452101301294528723558105577005307648303546952619611469479790535245678477775807634820242015891468554175390337460941754019238642596601358053416489649404027793251999048368648583477801964273491614164167626306579584279016670975897106103229499096358296936598957737036392070474904031812539016143591588484727400371972027630078538492641418247308210216583758161759747989000672241615561375862958864703424960066775016176548586748143734220897173219668828707648786839156427061701991016743566018989376841415614651685921863468025815585113132865729711090635156447993900457507208878395962441993607323192778104699221982077684869735968513559043229339979853879037791888274773093232017655298687894000797339815644539279712205484065394350258121440620869882281049130248689457676379800385613668316263844439348238509744320826751165978787618853196946348407921081676362725075342596059585281742799429672720614398571051459642886385350314746590616067606351728020249467020724413083230268889788344092393839490818211863298464621563462664018823053105071562142803605888943332203057791728026303554182024009700820111600708902757238765440868486641844069412136237683244496695079889058912158016683005211572780491217074233265492393939668791017903950216931683354275319750748753099336365161153413431136488925421903116054017920818506933392134844188411222678911296458215455476631874232888676866374265095466672643115403520407126294307889913510209033655469968576507647450295911702035677428478872243335166234068490564680694883694031665628276402945653027722437614635539579481321892450507832359353819047928967580715938103024563197532444794215800339839863260576643909110734211858930516603455920189301482868538715589723217447740673268273052152902575544092341279790390592612636930714916779245292239035332770971714889188405341619957166379684356202733780309385593897517966922699843000132788766239940413916146830681028887045214030536277250222577075079740421750747850435046392555065530592965686520503310428660906545723035888416489395571489605588516955194210525421219548485567351105423376175377917212818338659717042236877831327180272618136377454312445109915465190233059481223506918647006750737722087330602326431459124613128131326907883689165469092241017468139308806618837938734544869373134068649106395199956020395230470640361709038726226435889814672821472879817158189154186593163750642439660675111637404832749490419390500226047038812589498244747488008145304534056885972202960114418426330981704694051222579106136749895118295884878878195633177545696216689781675639052107781243555103968645461797421394566341546496738764818740390664919761477927786705361362631760410512110587268138444570648380092053157771098954922074724078034215288047155664862623063919744034308716113768080234486498984209433888748560035199151281929696462882267525084301376988152579781222730116930809626258939456350019464833422333932476680297806279841299906592932888208315015675726656489815954213331559554728259962781381578353571382485632284971252370747740331054553626861854761350334194491243317142072413675819757312449301912221945614968338786763188773835322788461421289671560464028274646627272861790950209691845579575198949185481542919103818022445863709814027032824734042179915401800798334715403347134821186394070727084970879409014131285444639713825630726971914462703009628046405182009379101146405073744307270494126393266725040903368886972720996621674274268468082306439064212153571884087014034578390010438341757828688327936593621919146229571331563622076804943227625244330525887742662026342135425663279662848242727047588037125336410852448298974083467825830636314896201339698513191600401420487562546479285774527156387418627389490849258712895392356775690325836669393468504415512908206618250616040454401052725607385976208143186234667988988843241971843790903074562539253148201890512441036302295814436315987610988567825840032301948754027780691300302413257866226884273249363597808657117269078185104724096811167673791228075158664417132623343985304077723378617327021851109907269972168611533001774776642675815691398190584252423590209168371451937647650593014119537594735360660777622681889495328232814631816756870213008561226151542834156757042301631348499820261134520384738029262014602507506709419479732740037195014984779294193160496135038888362175522405804609357025448643732723848695477593107690371641631886627562434817036426151262873193577366945704719202935463315349839637845026587752625904932626013247328049431995813304678539415441318471972207978249349036554458948245761192907798077088860225526450869114890107220635146185016950958492194124833482323387557057027201879970678450354997538044323335497899712757813283991150937229127087354603109709944128763682064895582252865854555103971311950275751121411932674459974615877124518585411972916372262413388561506903412422651714247267126895129983755316036133714123346920811234312938961995406298213138973251037639364064546813702772171448279444779816526662601292808831792535466358976519144479442965119085785908840709536052406874421701931490713122210301662503586834184141425052770379192750723928213389042713137710041184223405789102494420202391360789054066586250522204050010759529599896457894674535814610039696245321640969332914180839851856694924931319509543724239535948294891835363286623207439316112426115962522040403267523321575577480636892432116385277168822973361150167062264955127410900465935944109760570997130171034693187564789783562570106565010487356337770046576177415371727335565395115410348485031489588273359125303160542428290116522160913349968164584558045601414698577274280135589019539901041426465190942104648583841896430431810601720075345659541189354492109026083843158086544161739884797903316560769358027999533992266075834037354623563963506294177940892183694489062481845069150643039627249207065233773377173630290127922863133778791245208804153692453029346512209611150048898032742942945338725334519136239280416837096327189458723428899945702799044328602423250771057536616319561327639614144285864005901755594855451713532402235170372031955529175692904748949880249340363442611290082448352318779437439749905032313314455443953973715894014020480077432408610360830623127630678433838650812530256686304921547741460488623646231635066386846349100432238170943661674518799777832476565266439606015527405556001247351225250457284779995457942661151311123095903693424652465196014940930026414615384463844001450992768071989264398150284551637543947972506913675967798528684359196586725751441017072016519610607605158389634761338069349181086319778323126788054458093745855297648209904151872362768616335542880659604153512825917826069611007824278727915225653274811187839609506208859913321574684570940326694831640507822350072543090412649209878621246428753278677288661206132913725402770212511198501675851961817690372310076060407253848524731025627688556261710721624146190935790530903698295660850806070112367118934822225873918105617408441903330959492938703194065151136398992650182719717553382554195156076460446286032314627080501238834715676614997231283284413547812140923520989857961811334924934382854931488330014644232544805301006606779628406982364690308365157568241725358410927174513969659272200934565543595601037429295285111793126717490428571741805980870572640496476563946456786360870045910581497760327510420190499057742303903022338126776939545346863231278754897195471914935649242699704507204101710804445520661458738563568740105307580705867672417547133061357183775148324106113983303821244009930063615802453831821361527054117143199944304443300197759087543592233031403480791304270377811910680610349481639705564923472538761341227966561482846736004627078089881283458690859483860192478422568782903088604293338593009106973234311896728994959920773320061098707965292970712280658685413935682324028600731401953186525256365120630743475122785369711645243304246068608576205270512948787944953142363876262656829297120659899721594675941215694789428237467096265333742571881784729169277443301460618915417660246745035772165163166925808398129490855696228830676877489556292990094459482134701684310339881239839602723004475779927147600461121602345566775320469620198515780195669419067390401358824567513198002591119578938311117347717781963522325529471472691433793686415125298436946066878808996427260112103958210417403555127645845556152020039264586317394045567968316680261504615557892360603223146841175236709094965420744985627937766189381656664550616100504255080180502066524856720975191114618361721236032096831629125665529123898068733118624138287776309554876755613961680909888411374195107098441978239306441150841950050778948501935954008769362140853620239281521076071963684713582251088758742159977226372480718143068812469136115726910424629271315074265675989145571197880971365545975283871310086352833460260213224751309881236683620576624692241140923164072040104826523054883820857227955659303968249752346818064440238493658029515395255509862749198046748851099221318879856893967853447434382847351550656384498430463661432770300186082109615458020546232405769267746455389470052038520484866375339198108033983736266829735920004684408549394230866846523411942995000392620399102593132648204154935567246557228941932510781082076527652901390252010109052519168246940959349326619990673285139067339147555517658090141270133661886248214558134362705694072305762174490589769194101045701533723453040508252251828840595498686056248565488011069875527333189676800566459676125339563157515451313519381115521239173239813484937526233184121756020841483561403434854572511793649225807181939616351629636245420194158473256395574273627612306158707095739248945922513928795580243850685017047402513326392735735755731776196217815932341270173019743894661473392340041876360558181875185205390884347547613698740331709725507283765605529288654058208523040933182333223547528080345130050171879144092947162563899181784637535612617147195348678568449542203317462555862710842727021532015194277842904199394631938946244598170471322640971479865980785443847978094352771218518965922910903853991904944250900431826526043809742293488905756198453750789391655278639107544173556088332362087470525012015200517614733073402571906420895659942140142958745073677296382028386621091538578432102375537608190571680645871544502230760860542731099137005771214643871220254030915181415044251458069628206828057192569837204759295781898063881376009921075712072749098622266649726571577829097513605830910854502498653506014577467314150598390659035887987297043794297748050680581829847907895996720174586211597890925714878463851126103525099974001020323968499272639292991648406547198169573539539097790924160994560001661432335410843015852857560706916295405541503116088753098082149788979492707171983422362102004504261225132631127125319688757380368511474409044838460061353350621351251081180987839247063025562539759743959055793067529692055265413744390519531325568359469753034033843560429577075400269488693295508822928792061211390120535152055431155117234483862077742998374077407133726946827666054708158354300698962261359678338575962023314538268489255337693313818272271309524115924314261272545557811379304547281035260036379649689830611238797802369057177745007915138798922339537887168763766217677654319694197896068186148408410896450291315305078087192178350931682156113369618956204331463799964356968508242720273695055628705634201251997330362182894256421434942511870279917663110255844897022329239218316380960832787507049908189328702646717668549848091415085321247346423180655569047550834423217098392513115844418490323672480516550812737458563594558810431004325966771607400073204056233204618295897667878008858263034297649278621286860603814159363694789402118681869924533582868213330120589405031900380195534836149280864077111627860871367593548048836446815759153828827546978249552763564375974739186416664221186988845005734945645336284003711511311814934822460618390030468824803574444572003838916054052242938284015691351499500810751216342622489627384549257258015628444191621392456243036214846079577699430623613487048375165255495886654738090376479787718371352117159457470622220350015918275479565609624234810267995646087216342436296123571186635824623167312930416658260479617988908535541641313238470030365589324299707245067711605750546589499425161443676889667605814484206602110215157153053790949750808925584638948894023035930804253101554618100528543283009370382263294715906185964038512393713339810337274852637336181553714846044837051274258487258724096912050378233022948682514303451047026183908559087996224392159882316264381058674372920811424681609713451712077395358650022707766139868808658912910419919206114805032804832909738832018276009909656240872362348626376359279672603124543833398249406179907285383988591517003751826870269906368609914405098040068347771444839211486232793707935018902168989156935476231232211849811188593562955395699470604145193950687847315118143376683412965511443161035077680918750932411961347287326981846384643952676663165471832447846742224757586580549081605918606968272747696776812914705256883333247689633142990171159474256407976661039309360050337445849535229801864004692368725561266621233691608320470567088936002444964568134763676561808732193139976001938239854018106976009935856534086606430661450129769196966856002631325659027751875807314554572355918183425677166863402483576133467187690041919103630796184072039320526129032370487374481485760222791447384690929197535376084600979345071024949281999030116400610993687499832576639515849937865095788905281229553845044748762761292964544685816585176064168766896738141218421677003771829197028416180655103990411040551457502926868776716368422085333398659717637399359900703274050852751945948595688134937113674797428925851474953695936304308159545550577244630844974542444077219068181624255988720662228113276655785338752179273050132204892564515778602943078170499994686327927935668072742621890541594858432658983939726026342115923977396617504818954104176197321266932284141022448670762586881452459546094057405216879250978335110688290505212481528930211635294990576010342167177837349061729626495215595380221525183872744423458959190169266174308435248450696798383347590490556070133375011505468062648850277711642580892196149519861933765910107837718033432291881246330204237299945483285722319990024345500619001849099153074511990702224016306620818055560712868692166928890958704034972851147030469057525935885359538660860257352454757874658363144123710196453357350615428754261558598210746710203853585582762859080695443973301007633951469695191985496150945211102983169909810297999751884905528766403916899360924713993549115348324334939436751492423792357449290617067497583534820994053525101567963005260319988866940933734057894324216867746271087094703595228968844781436458732401992011840975168911643171488136360327898650621820144348925445349039016680450752080537226524765146450635761872860423755316777117682207800212869856067264280679216464768822434398091910335723130243244144648969330042709151981249272688794179598382901258802471116382821061964921749876210006771420302122228180743942795355457488553610318672928920252612777236466649062172630317580586419479651184772527147895865157631960655404418288928014234068271627168479703605293332492041242989815989208500074301028395885371361826670755603812302206985482754357661280291641936174886185592370974341909201225042742320640394572822594216693540020106518870004274872294210221011410086568489118582134966256996744871448645080208533011427609306892017524785820620769804647598834809177564262619847704120820204410828519718537123269860773556289355750263347182035419201062914541929590830790307997694049869585586886987772693033168527773689583112490848946583231937908457160959035539206783024299390395865189783680769430398007561338209310372950452613943827908615661185848736282126824237249722037699112391347321574777588031294046892855289211269358272670946380140877537153569442050550103953586993746226408009008423686777345289539228588750220936288845340241528771230678661233541102078784976367186320674003438014926204158570843593641006752479877825781538335020678982434518053791633736837851095092481576943198423927066124730016036927015267973041456827397510035213762875225036777008361935871663089758565840787765396212203624823065958065857828648130132127307449666355342653879930644640197760883374601105514913329299902769315850611862102752279162705421764878619166342595260774572503510882187676304271216437905761815573067818731140986190769108125681080668288517520895736342021277071653298807956644693108753275596982665643102885155076075171153015714196227609763713669168081125365236913177691460537920283797221458224074866228626352374088693041137206437167064181158919333944598680837030345918899272809433543766864727648082643321241030339965511957228120101126134227392747489680000273980050582839096963963671623527331080698770802894976171119939067964318534035143215927893350590697635817443978759854403515947263191055701993218379840540534855878993248077180112905790823796276797038492728830245123184742878101040687600678900572328989416546667302680305780532613842541348735498959901798653778639682113967777191511257683892138991761010559588555926849500202975618538562056486596609370512352433586808517853621420135893452703026031420934028091897250029849892302865777887401471329915118682685959297928885377298933787155904685916275985904110680167619841936571605698962375399516008637805378429884797553766852842934631993212998729876508762019790989694662730984660447042192470820013851130870839677432891904043766577934309327407350327044250861406911910355864083054157251588322989424877176038994231749993794210700724740222173345165384870527770969852518908429458219269343942962387360794124676749396730457563265347456346091035049435708395184077777485780777272798242532398707585452242229697526596812191878389155911009132878406114992336988140843758921556157989465743243682024044431119376014059295628764614903575760063308830943500565128943538217132037785066927440595560047765327264728155463401603916196040084240558208594305014493753848246740841847491427929504617839777901853045762880170701707518472299324301809694474425402747723251160208865720100259203451236682219483870457252159548612961263660445430113104649165576895452529698620833467873817510672748856776295058048064190169239856548843822608310191998612844536164227477275355168511623276459556550757451904882976983917335689224413885763239559765073392273515459503694681290663267880336689644016041892330460514391610791843404736766772759740237055265558854593339477013264168085107333077931195721997857873387960581039800460346710743640066524004832471460943980240950983659188155481204802948792712065411358402572019490281624388169305522795481474593509880360477484071237720041285393705281562114189892644970567186530072228301747245589391729714272745017686432115574965211609664979074601041257482461582732225652994161620218519727434494787460282468118847923151459951511767797999393542382569357641099207576225615491381356253451523941455321351683112737924256247562369635444003255116915844483700255577063539259577506115121188650361519213697047549950665699329536681749417508872398644815292447509473399855480073099040917021636992638048885058913567160011836489115548612756346980921106263203028588850710071968284170980784922030650634233618268351620107041782712064820899885268560382760817563156951546220788469402250970719964974150112637197623672483020697926102243856576170049716711215968881887317825648916271687389593760962374854066555988994512780503938365554831697748651294039355610608583450914415741805527644900110001357896755003156652665781809641054975547247814485251808869582964457797348550440552584591619853449138962521692620148307225016528074686429636990652326946828412859153936667263662684800172038987884015347039883062408279821326100317742202686982841246118948274640988009147530794781153207374198072077736571342603942128593323756821472924954135475930480512765740031981731484321895129503718598810486630711165018529615290373292442079686055588461842039346117422864775933488198807230543201525418237342791009252736195189920340750721958567081022994518197343663624225448721361537133561034850053894215184452209176344154138932048967064036258447899235439697435577905814511314909115758910070206267728900207153095542343835710800515490365315219776470674800932018547130607224804149472047603216199238107057519963822125649018739106103725097293774252274365400281667711136044214758309521535188773752415353434065938511060135682618683970846850997963047861362067323861104201964854468053099898792890962543057632477619844078932870928247930120427336975687624524628690813608176710285085921879465007625952731907641735261676041902673479927679750758707031315425294407006418855389564729826707376179452584880264478959350514532161931265593144096420772462984536581120265190639791572947438159692075258198260661075108709921088898604782196057315083488016467347624382874469272356830735400844830911876277727278102249111162655542162248284562355328592558460203848771301805012583676251404275358754939808795668676984562732688395219608178340077143083317059466069283230320314756930820997227358374753004932225827525427186179379551325288210600801927995319034460785244024607498245255315839464638481191643625480869596324739599264314460166973545623509170020608805696559778275171946868933156743602362893283630266939568752151171577643621130856145797379542494634900431555408711333384327027334950887382247128598795590884338496027015340480090309200404889023821708188002765320237980906356911526410965168558096831255130209927038879114301732926233613666708102849851223023444651370544240557367757482568103748348770875850661918369024364373145848970803958574998697743873105950723753256779638342910435808680856844675321722976853401553475339421104489334359535929530833471663940000085734092252925506104516541106366183716540440034056407711730194016932490997996250321740013047726849458935117913294849761647169617465962376474197721005279062797167850723954719395579350046768014972144441703007770198676643011751737384983791763173397278950051862262870132392276637310519623152892978949741510211180135184466072811496017646241231743739028800288027498859137864968850464280284201827948572331870967222589048607037988098746226213503403812957341554448515180816290057245298042992318196659909535637294237694891258374988991920767757295318548030783152208766910071814977522211073582420775894308246217302295098368416333525474950041591031911859481640850646855503070325754188181989579584750213299884173773025682645594069528469425358456429115964932081069434326866528812460020992130433499926586615149456214287591111258663140027339477286148765117323924071365104138881141677236402361379633089520093427858312219369338699640206762948553656840522618832890698897043338961503605623233427073873653647675897111282257332823589073942595206041819784771457442991401568505913178516856433568211130984997919862485850325323770745922478422389018306638172804568697813338875909522443554902857075559240216635402176853652077968879235563136103097516766881260030126013557777683349628163434561900372971755202191610237455898168315890562401091488842048213846138181542820536469019267181312416458094224512281591362155772942199946635799266759314604459106567388564071014268924523310654560828705116207819250918161402650753351571708826494948599060759581531648770966807189363488815622111301196656254764310742554495178477064519399540002855087695810061072556203011933582071049514724682818826470160842370276926552706800768238635729756742073364169369495518469077133583059328625109669734779194742792357640414325436468920842293440330999650007216356569775721147362383959868811417308057318310398781133975380438246598636990538086935936554754253234778796776268732686059780808351176332417601479182146336405468067239375460025950234099845749238657659582208283189810237273499641219070634377038252539434013009941287805206251682771048443112569316353846911445194989734685785065250139888244346678895449162704088494881549666941654641899680224895443686238720674391755203862415096959689671894705732063019528691784695973467732043300265869115344339287603173755559590643590127396698460379856250193692638638680886302372958373615983071228174136313871933316578393263930635791348699617321717466085210560142075577983466926671106937015819270138977095942244868166101807952817555162434736644816008874823893157496306825664787384116175806387087202686758649600730189251761612194898956853950704406913946366955997055527425837676852285524337462013014906357121491845411758645150984615032498218892960315872421284706195144636371513653405285419876610846022499112376130820876107227318316301705566477611102256125466883410635609538213183003942243248837012372723339327177478078767872995822564392607630813587641292054836680758781816380164626504589412365935258460254373094235909295203798412899032296446642602850415267622357632775578466700946813304685836971956794085006844982981438905230328941876393102086231946198490968999906265564099474745273550839069452717016782717222429972042197491821186864131150124893084377937742256604227680048467491975932119212876414192054935691749666929023184975109583934783394235131567230297215967329580997051777676415156949160219060868705145416095492693845541873239190835393616796915241609661895383947588728692614486400614759776452626156124003736168365786653974916208321674485168507261053732451902703675258143214440986124718267329459971308731205434163003503038655448341919700206574930640605396378523343621119338685422393354637623489354171420565170184487677459968171146528829243298577141137541973919240952316121483775822425177738256973225326659852286703718516799275430786018433607839767245454858045124785378351726355514828339743499325891430722362985961629728639040069748082285685965507915144146773868458546367713583684568218322889055630094186353858798598869078440389355403568430042069727988497499693699006395826784605172554599483113851364689460017490591157197840550811929203138837173000017826644255646718261919165463536452655825335737571610228350203593917931727289297593164109337084857524879472637144356839298182362679526272743362569219525445138270132727129267865908229147043749054537114812511862820516826201586386045383444773791062122834561407868421930811813687475470971270845443742185736071588273673570764207697016486979129041395798358257517506396831255817337135620510996982900779539246693846261459159832653315627749889873975795420065858192930867095571343278562461562327948051131970222193617551742147257673727331255474662916027700639907210628261511726247311648384836239120507773355855050521054782574200704003259758317812189151022929879755811085242919093219853569486299232847731809031728569410920193502634395270148056887783518319745343423094944674368761257162237782608562393212700934638419330838406862335273586281902888329151728740523675112811639703684359576774244579682032635920726605028972798229784560176556260894012442753807305523478614747750330807577487370180047616549198506974020347920513324920759376282509582115955412117403650479116168534109644000753936842662106539772682070370489745027429555217077887548667935303536192041747016852962836900192456713705605177022297817897298825935765087528562816247906586551592392123373254399699844425567605189411260111815978439968322570401566281328355499218824231483127041308056433170769742378721114974681859712244433235023886199705485243874574548832771259089752622677791813601043482235137347448881285246992863145544497570675590612275595680243338038330769534226268816506533706188327654897283714102525194593911765421030398864236938933886983085935838899172857568500444305560911303369043043062100996144013750993715383378837183632828771473967446639868429976271606163119258547401664491510425850793378690117081535123515881837653165547897632375389493233241960761135585946583447262427476482943554609848329842718204614739924839168760424658493546354282686338848800657396607071247943918686670920530924850548240463918245813107177761783900143026433645445695843285787073823819040131936562547515247703213036626763685105686631091252660374927894364361183900752115111644793607864507817807472165487700633390677074782069239445829736995874414483370291067870187023928563837862065753467479420501650195115270250327188138810484533776104876402910038155436231305612341392783183752612221870282442490432604954780534643474059422019504783271898351014093773298128357780059760564875908406242577592885138432110419809874382932629865060905441770705760631407509817312933892491719893214365584228917679478760277404539723004030694884752870446603263271767820608403336811864650549664451144795660103789540081479838777486958345757000270402069103474750685471934073350675249685039511209780246867928348746679159786123804787068488075240177490716076026805159508056614574562919148104746388127369066095853743766684076021475440059708179963616894378257158271099548208330069430268017513971327112470421076677690778484968871761315930192043478548852274862521483209426818593898767429810439239839758891871288401901149266182990689246831136406463863374033987763540884081114050765232023005851113533457620985574266797041511408360147264366812501556408187411923846737000989064739836660221072974212745779367062269468005553246675066321472769066195778028532561754456886627407836443494872471463157534086071966205225634185922632877199454178709656419450988915287157813053077460387860624911403100068916287961965381390885334694249804819653684649750663791964457813837169725980876867995928503268875406815794490334711152928736610165127021013064423282518502241086124187872313286377095704337025403277998121990600932407200420345257760312499588197830977956513438490066693133260420214839577644527134533630227924212988972123269402484544050453805717677798319744755250239999078834871096846726159114199737202281846519144635362042019045035018209249498854798531452875057159447444695708329785400205769464450047860305138638623179814185543873799859836425216392939833899753677721439668169593153166635957700788767948066107029224620071472952035480667038461698635111643984498055348788952014974867083783080698847187028157445754166964890359216723527614996743774822759436065638382567650427425546721413162393883539528956464091239866975660477942923056506862327440375165742469377220759929304448726467354195709050631728348316262221456411851546121988824569441382876311732374874307423415080894363775304584335468658706103569484464337325238123311178253190471783356797887292049800564905169417041023199965386734771533080736823512555190214552546891703184971394403161537193621565896587570824054519170175054487664706530314913403016332185595423611476252407557599354913020414649323874482180270854403775121644772669561517176698083830789760241020802093099524762276286198342291442884463460306108592945888916639239340124373241319274858114502939182331551244366249399699993635075467853217274229393075854406331199914793239287043242622865045806436334282587155115084107599602922140736995438439363987719258037405964995706866799630506918946107226155277539860351346104732035449843195409344678425648321237674691479145141468676083651433670291988852891797800711768834675004783864325121283616342518553275731397490944773457234354097819450003965197639944653660185624425433385204848467031507989672279507887630384693138456191049921750370024550785774068519313005745101695599522786056414685329701367376220097226170809770945243437658672857201640178942014427600560859842606424276896490972788895047565101899573927629873408061152504800069322539249215194377484891520912416057586187938591524679219746924368892820078140138148623977377842900881786432024911266371835972481731228906704086519149866334079914613627036296343251148785602382058497732066266914354347910017393611842882693464891381438734551887543561223147396295757378497520100302510177220038501498975986836758342865026148530738091078876324709655094347894500804412747702720027416680090295461733420786320497692160151217382469277817816323046543565557414198951700804201838528268085512084549873088373492641611323342957698428481538278082645680996631479732694549537055955023949360003676480719732831116816491006455373023749210058123881420402616495349388181289812128552232342550327242590652550271627578683316585477436494209998677507052080900839905811906762725314502330652065703381894035595169040987117102384067210674727640253493855836158319170846503594682400914593779202268276290399539568846885234648061731867887579490785498262363349880352420309405494069386185683740183674711989741584306315776149188328917261009886158752495033539053090797903922825047090010139450661491978283332678322269217293589439006547364542534954805585424558709819989915462458164430519536939276926323466248157767891118796736427519363337366602482417141242100867272075832665562010063491432465402187457521320844900301274607792764416190196355204309768106533510451385548218877001134890504472546252012958184759349522317253430145749825884449771275771578808304295470987777348069681707029886371058983566084736857845232403476931020716971073764818509984589269755904123742240460865487186535275319736952825657193391394147302628274586994342205388026748301923621807360766287702452671640488331716853778522332673139905957341822640703089228725309194827156030532091587334317166515197659209121275603946877164829195128120367870684013075135729304390064121661508361420029434695686061285236565532333066710511415461753713999690315593484005413749826949624919741034847894566925073748322915466856687716817926093210441222431098118884595711449862476121225272977318265623445912816659203186068541085119253468748360060089454902226080863769499514697540886379178179666108604478981720367026772168359425865697926084959256278500994885416247814289238750994889444381874711209152384375768080460830669416749486167310060130092181210756772180713274958611648163832652980062414867801486578346938594196277601366099277113106778571721556129644341725118794593074538557173085812966911978253431367184443837682654223904078465395736396134086742151698937654715644295445809406145612911344835408748667416010858391895138827582861974202872685264508689329558141859544394738709459203037969658375304094046672123443783589635100006386517265734610373892584404172634093176797991445907377502969295565232390036264932048691023649057525196336693902146832814458895641832462808823689165668818270077810466665707280507390944969942420524652755205207355360410917866558686916518293216361443779823485935845976752928039457647053950631606656739633538345013203691539221065036382906493380253576214325156171347177024516045898254917368689693665329666124045147607886523277202166691236997761768508249860913459540539519438761760894154010095012824930662496957746261371408508002554958130345137642614807504011713065435344543756875429848943824460751484792604929415074768091958815394092818865330916400085487143818493993698803681468900897749603093294506338114166963481399724219731134791017044709109104741286402994930456834538280290442767837882155431464410483040439619140903382128598326688421498749877675509364636197032332173503410398679014423628876213217682361713189185442035379507753274984762189668561078592519616464470747682577896772360495206856671833685730343220876763514875363018588688610540800783186593940707536833084397099674364452978615282513663689527381957707773848485104141948580279083830320464074454603962363189290904182907991997009507987951508272755732088508022824045775735263405980817133219025084720001752256042765667854490566676466319441836118367112387428241558315913962805998160107337511431205675585178512176047923241324368250448599948601267402903589026927280545758335236538298049871661661834690112758235611710293510144291620659154810071960447214901248981505965284134831212700793566106166411911028366303083803467493443793592582373672983173742102472404409681678425522788516107054081626690169409446653925996124086351731660068065984286603802159911350324632349832385943227185973935613181611084637237985538171111323189786489530415081504961744935505693893121774464315019620328804185470431483618524384523105845329870183089525412948876960652522215449867970569634585632696454753285421837194678991656877418182359766712616670955867410518331614271857767516468337169168806600681756852301509227033852117312977824488969000949439014793876769329315517617433861251507626836921047168531514452256498480771439264536486139154670896031209074434747243136468696025395715242750579077814832393305760779673449002181727937126099604757663354202293830230304959234665000543985351037841577021710184899540893560325119897227316691426290401006545128807204946342437864035353412629608042791138404738536610440850206980252465710458129393731600151193716915985106560489981586632459769950766619691373766007273929181451354155113180698414764490001599146520436117567994596746652591478691155464897737946453092395927892054323507780428416754375035571231320931900682890130548971725366526822671948190862615349672930956102727318676207337717448641014782611062143255179460538642410830372349742966595818730358091589881526601031524702787392114491290866061584831842774620918390780332945330838545646468787265672497385654048860369875703453942788580344185148560229168050851189390446230716672277798026766543558362240165029468125721330129973244037899980679906812815294389008490648861394351023897019345295978551419432083504952125370520198551405418389164529192074405053106590003674259208605225859365981142452569716982953836047300930149165807226216240644202881798777147741393263263649132597871920407610372627639255718915278966328666340591021591495083026075721796095016387472011023009881433285804427069454226775364906441507559591377287354122747002045033775426897471922032323679509016355612979110705059125781614948050807046726395790815757577963001356717512352368590406306395809398489617735679291635854238722598317470137348983918059876275270928537024433335092232277945321593572142397831407069053669530412233955018104550622716757910703639561494510066618599839799708124944727662661024947171265207757503712854009677909020967491555519058843596905562279272309324517881747311929141652539688791997123320282900141616827455286420397958702338149675975953192706369627658710940358637448172357052317765999276003239741823675849164851408918011944171257512202379736390020191635646772387263347153700273243946879164480955940969717833182262971174193742242111179689241548745100352552098919601233090268703323270617279151381729105426322125463194373900294972545328918473798223600356749223994991285616432273821483922235067968065391006615102772438089899529843748637376019546099071706752945435098946903574159682863984807213751794724565234468684770579763310216394125811334780696878796206618650689636448164942878473416176387827231852570712954095699303135226548724479032931092760086159909564852194085761905894775015049783697738373246839924044935180278867994774150210569591420696595252388670109651059415149119013776413625128296209260855300164199786618431017647366235199269242941355777036743360881458633510480172055264202971717519188288717535513097255689810249260814352894517986908169987217111788703174092140954512834806779359594619424049801042823504281239271629698130604401157438593117554353930947219560919000495621868675220473228670671470374041763109421422192843064136729115854966108497056606568999224712611722543564464280034989929967614086011708709702169797116038274898597162406241244999040548443477969158119090549989700662176742260802672516056420770679784057092995288275076882630295246751774163850850695475560944516203620989901889225638997408952504664789044946419938509893064397119380727286326036128013348993719671976271562494684677034396554167765859839415576060130310393184707841815939273347874844417714571152662372793192295150458117954054335915862285861990922534243310630558733381450553309711712477748414833731502814040598163800528842118438150358977918068306905074939689063376889238907614034339043215269928625103494113116818489631916426561909746660105507180207120668259227916653897304170477317571101507178924542901809088945210802010373726807629219185285859535249819004601494576717917980414632646194690106166419949729440058984982416131695127186359257257702530928105181920657668665884859050706739828759459721515368546905028941321614526603175747044572690380013417246784276155493866764859279925984522506100425523810177076820422285978708458859933236221473403971986378250462742031881333520346279793161360809690164257353880797665962514545579085457000041307085576966535518554346312802273466315334620794078778838443459735612727073013577704139978551474355556493489282530629197410147538471630425808050863355397541482029717375677285591889355185099869356837497404147250547969821890648056731085463346896386124378634252882201056420723163867148961472142502572753186469269884259909423235649404329840622282980907826021802608247403670579706809032845972381034697256764696368614745643714830737003992244492172605903685293558242066683711246235085969249268577637684774537409966634897450549130302632734553235490790291578567861720566552316446433380569499999508912270619217005476013590821237850008666509065438929496952648400891270284506293261851976499225129441464581762858492916433632069542500653363717202991984304064071244134094551346661385626070070192091521352304173228426170750369247272360760014717021988074481657447325809689372722341722882633837902096505544681345806956945101731292238610635746052798201513979729363035317078901189301055787358759890276183056662617904906497289428603778570177423383197122205060458854386871336290337768575222981527239521817350656557390364381403074184253550891169586373964923543825475736900101114130406408525929671286035404533590652875420529736150674007943809711009951148443365494237018584647871765517539648687828939335594008353605614316576094693531225414275103423098634112156823558181935512314735539485777869503696867740154178116341603366252732892849336763458463704323712610671231578725017805690556323627738108517177182979520190853333594586102821174323049511321549590963089296924061041319181700025312493308177143046644039331624702349233163774636475741299003025864465261942128701505204051207167614097289189645009101634492793938619613471889224165938483637685724406803359793789127547258065642886201239862660164616520952569720245550707537886860842780335442042559131432222123412718774676635712466499345956337780450708055819471692192132500572563702745035619202806181304954238004184429082614075100113914920116966070812332628057484974900543367121684585324559119767366037981264526749173681933888206899097324013064201590918018970942379531619297181729913061974071228514235027654514362667934832142885467456872605175599690894964295915173163921907599338796440873112612867657464979084784197988646744627597698632830461140705107903341291966436617436653804054631490043651046774565098926280659031509525840421501515641363306077007614550094875211599704332658209125690624506909396379510931644349511512846803637108552641207408878846895841336000403646882301278105825907888493288601228502948678629487743319425226378093964188182992769378987319654360063770710176811573949865142396620827108538440910283199909905316817888449261743763940204195818227611970508132634224494830009512438139543419725910414115709686276910840366579654403397015152164965806873156451960435494556258463706615670136028375372190542225914545279042946322360891059222726404930839457052669813668916179879469147405087977191639578336629489036179737204429386128567604227537607109862358850534013305113168721644850670709457573515499406505426979289846944421254369829805804773934269701770002027739476010748383412499940649248156897190291283010702174956084718202501099281754483700728470680375030405117301159217199135052569789752113821331119135574727378103872394653929074486775276844798908162420584958754459731723768452568329462463391578005097810568039527120211243304087171621783053289554783752171828190806397179905787006234707998843597237238736353517024875780328382893739104883716089098242309920828112734873522760360314506622572291470533208768991326230995943655549688074465388454792740360875234250715378755284647842538712816537423454998586433574510610006668288089366856638138199596179420274193865440009246584412909022613694738361571978139070325253180040736053328203981607965637100975476916849384164398698144493493544674319590134294417692136752827379290117378196219691744690081455939858732144727268942500264867222997807192859551684614739356664278286050261936107753188638817671996952568657169804954462725619663075682952530934494788206378461715328153900666431655668505554107926234795010118218523962315254207433702060063747232666744819142827717770881449306016264403582991575392152341222431148594616297459532789839557474080503116127629708731538622015341044286516115051882070719029276974267957594850715959950163997261935429902334442911888688038163789834711326497738256475660915018640495123327013735800024656795540385022189665718907798022378618816326944123043090348372726083871260542800616400772336717480839333908873800024535430036759454468333566074318603219077212665002328281538999054994261176081283100294839331368690604437921688176661900324975190195677886647250737876727634593475759959993046341839702283489345923814727180273191738749345424196799602969745429370350662279690257893105726456625685616953827123066315595696233726277990992505068376578103323952610762673490425217531396076379819554323265654893530334020908363048843548989591017646462821731552025758309586625608446828533255582720966701458221756764190450460505749112629149432834814642874130615755356165183735673880278561742015888231586272844540457812005810502498691581758605153915618300880312554212500215693166897324086037316124888670290223488408459073225448543467662695219126622808361774790661498163089684161099173817682994342766294001728195989180324500529437967298699401795069567070838232070992336435029010175206830452716600374063378907913578249503880386955645787277111491293309455634119629570460565292356108706801104182980967510826192055883387784199896957865626627899188386376669316547868352219062619561546629335091127714158883092038265206094862573071237033728148901747904552603575969133735419449422882210907348138980285032920841158110235463963516650444737171316508340806416887786412947600394666241320971403914863906555749204590544885561277558058834529442326017725542876773238041511602080363150027654105871833683546923630450851919944543363792440846038185378737723156810652135201671951759220898315823333901665153512459388685053549551030083167729571991445539999075645731168548851605941888974531804024915509621361455453964753446897676425104211194186986256749591852048057727927880828353719383567783697013293862477356484939160015359557576301090383474555775962279344827665281999197375347474221300537021835151770120478837658241318748998818139587265319608953140359306652599564036815452729175570533599916946112094200444321019912405010846062684742794492480512668329222639580550477810754545448105629616526787131190166258838893055799510070862344823602910619268927246930288373273199758824159591838212800661557057453518163800111917669081316060083881289521549718908323210995418516698267394842895810319797313118646184592458564957646637838424849700218430123745539212607513313763867296523862177521188650239238378895895168708805696698884078026886424629812240462790728157848000421739637977076250502107439546771358468894233266938825110679209443368160027923363714367418426123811232698588109396981717244869222037648087421009178095072722315806252080236308131336453759956489067559552947991467711710663622748574970518465994692001640624008492402693008090799174655050011020185115091331101290025107067689748048304909889000804393465041512650741931850979942277860615057105481889265642064098467238005018815811585950769951233776213055683316974941775093887104433772456749652259831996754122037313672299415905090198496363992480741977867470232506375409349757431382342803397941721854237888572305828716104587357684007246045691337056349745950479454802366244135294244241727792265115374870271774862848520866336191422577273103176066818168966281614030891055005277293879229629346449287921044130146637011169407224942951076091183465420414875128344489515302426339079442755233991455641945549931234024423947952629426175504708113858349829633449264071524794321794920007490119455067690944344993911815610897407367664201422119355422088875292447897486879064652491668811418740767114479450076257472670120206431248739649976032917130225386019336203405765837379786678580579789230212864118400379463676804268719265972194186633639670780644274705864565287597876855364595711368942820500861155326223179333447816689947398036423702928157460870596213670081092331995617422193455509241336632824796994651695604042469490667112354802222168389306296450096465378148916900136666402440143759527497177418705952399818259858437737888306182547170392522738019763662621921616682170869476871500286324794467790765809903070231967826742504960199186895023775842616775480954944184675785854127178733797908031169413205715588412371381371149787612244624547755110759124837702426762688681294290978750102535281234852799731006403583536067205313823035210749559517005497413994946487078103165410522096834152131046733542022983877130546823854202616064325876611346348877587989976136373671133166959173234338453740973929418800337773502890676361108086475296330019523215309164829023168196331118955103387364582408886783611651070974186798344585314733895956057334158587154018391438423840726437029081798335176007791365129143830944243979816702239156440454758441309587326425137159018167974468721154605431827983350898922824783289625258051758669171408023896490376841080455170303006211344223363216513786778140417123201683828053582514924946158663155552435299056180487802354332089089284479169152812226129680266664231987601951072051294234064670446940470956524669250134342570775054611880186104470611117170981887724976078234188207905972607457526407991026757040600747156441578048967353103891780157332665982998306911826115438141681085450967531886357667259389794489263993711852578914392978866730827462365429743976418049666950581979498838160744430753420466051807214031125849256661474925001338948397907075293272556697043531270167932361064555010371055884911942565093389656454744750254828580309915900299837105400364268695284292410198057316496475542603897557298367311703718891634140835167520754340683706707137594084556621517056585743194968001748752383751114758073242531488962058868554441108852116025584811909833554676780312335033545502571820120692189419815296996656769560193914948472696372284407972390289013798807780172783385262641426824213053363170195672170489855051900529968572732723515900836557719301277949125588992502845289267824440241234005057985943967045262366688586598304256520488823013166627431563715598694938292158715013495682212463880287689190892900088241423889684145580505755780349024110254528221313592232372221542646622223975167480933036669336269329694577288616454838818204893277018339399984538759253713415571135908233118167817942561140350816982544260124247349333163285203815246367650912086564710160319341341494456338817825266807946274825351514050233626546214249660972584665147558445636275824293430477723167038102546227834178346575721376361066130049488640451672695580650144179449142769221915319829548465764456409947181400288814988634182619936558219646313150124259930961437291390837200167395637878805041042680755941953711739107587528486996502978504378509867990133182829836765313707831874017312964445208335860702109374687436343077639048398450791244421822578040326788169986715586177392163749862658107659458646343738240385771246302953393623742816031720706993690603905190746443622170315859928530073038777858525818915047610620906353896174086224793647046988944566813601988579596482869313233525250908198985692647409856771999592348866095783586107319182494191588558131758486648919380286548904382123886868770083728565295289007402238560593394822463452060893963825635347510763472878803775510969698472733825954451052983371826660978341823629889761117596683066182468724096300625218935637036589127105202218995857954982592190445025409640735388037167761808846994922149129613214315142671415769435552842386413548076714969708055613479599334512827266230833321364925828280986787495728192988322149900215707384006999814686724304060366711143328749641209155017729455286784247025331306380193143064414197598321640874550207195617425660323619243320043542134912017178406047762579203554832339716056310354099760918214687825422394774536936903883202579240287280974188648175744968638284687589446739754569917786680695467414687570344925413705356801226880526363445577428925375088599378901980617052620219187331542111354972090936260883020444791914493459827705066179553893481081647678409847222994876728951316925583885520539222359164506816258315920443494157704940747203974620780540531582378571083862637402050630328332578329879953368577818627113293337650384748137419870768037158834011785399321801018873762179200991751348100715319123628108375519757523695434424700135142877105441452263836532989112909573476497572709748976951153729324084617603698989233001825320013142161143251706433129571833212489590018640669701530307463449968360647240499531802154561263625338947218241711920840508424461517875723795005862597926683967262508590095285164213157292242021646371938727234069837023085508426946143964062128555301238745836600784007030753497119649444928692093991432608042500815322636381992084100677128399097982503982716196052954488808575544484039887789172538294659663034296803493101213828883439568560499200287774521286443135565680717803315328040945298425612960489551067954819704592123978613390253776413088773617754182416209380329477063586886686694787265425674312332682127564438912163026900307302652087578741598551740797238191456956759284412757678604651060844155997395510888500202442141859273532168079837040623099524571345053368042547882445431303175396825477661657993692814782899205168434455467584767572804847505991964964524976183168185334323344712737520150260025075894877708855797978439554181212454723193359788094211363854214862911280709529150827953582758274268789640276903000466565168231836092271049335767635697399686685157302746979158504650947594040016410928940641573415250290447492566417865850648253967821113275088076130671898534243865557939844057371283428576294115336273358018669282001603541554504888597711083511743598788397513967134155782708038356850557149657032425659830421512623091992694482665574239297345358283093784161298676569818454131427934816323725575935545916545847609358526991456254214327316561518230256676477226437873102436568092004311778460125489691463096794952885034017430048599216081584666605257291696537221409028816541587278581727117675119856549427346228208615766657766813632656949516840046407141811520114163800585695908401299498979829920645245052042879101434768986141556928687990826665103949576668996656076403003132793911197196548854785851944903698916028887133246042845831092538145789622819446854482041356312708515275898237602049305032963060001176326710066788501759139017453458673126824775619781707908973746355423676308662934044279642710749833722944249858929781203392027084999236067795621236248420468328170398125439259438163943521938899027408043931614572929771109010925067320109917609251768679063412130863923403521005486767293441126447145571961221342405550588747263002032949468327442672111855713730576221225765271209723012506454517665011318805477456381624058527657173797727881123363657004050252401810371510316411663319482297654968272107870449087323130684912399956341323243706594522816899115148278711339532250947945779982179485437944502283077152287294603389194718173126824412965848454916284105226062577066800180524002706759094445821383612934818257074809562744884828312316840682976555183979163510456072568861355751531001114791562761369067527504107108190212181692071347727268268936061532880942203876610207120120506725301073617325596169723986548789398093327177666593302992619017223641127591547413894156948371646469329446175633023995817936563012339085149936404393220820586690036978072536535006817691281568144382168230476866030831229492532949833758624225650870781567164273057630452946253184050926502033574548952127388989577074873408619018765537988351238162729546956363535520039578528911864752985010595760592649695222927170973822932095305891639279225737772857059432504292573188374578853224993232364063877505940837255008308114171956827423719488435558459596326009652354740170627015672281137446397695456461029615666637291225123159492649154492117090753734851153952216807080683018679990828407762891042406995936961663251969237674366217281979172386873434482121890129788152184260442164729453375100246310700551684131534195264717527719336595203654267696749788713361091958205779510425396161943272113556007052573037944571310362436353608500282664327553485231737918932189558869359878669719720462473114814681637465654116327726183560213330281862630669372677058063544471618784063476326531927238460789218405767179912409182104307265547292255304704944444130094780470736187055184022605383440629994265222892884045430453333302554666134233520304802645307993440983971797200101232795743463254728481705443385181624950664183225444711980371031329574620514013518741920326647711648928764047895852427440500665918127192323803446467442567180483371335893790110801393341209633262337659661498917801880753503162674254777156024012198010398230138799300232217430458910411924800624504362413269764160446665264459056575726078922844489988559951862313882952101086806657217320237643675196208868155623225083468451487306356011396148463420236001036000675812502607677373872033183391585144454402964502824133401599901388673658482287252102192252000131495112107303415707018613774338138750296702212271319527387821795544736720471715585844189242431985176792200327145978493272846763607522542474766411470884737350544935082220931753441820036983485951888493193102594604449965928798007686104370721693044796315286591661322057476511132395271647861766813717905449351885665379383791052537429134439697228853389485490025581385894255604868008893591000671786521590405446590524732052694948456613471946600448980668477427187113003452090784655256451682296426534050105560506504453057071958011299097703460438913019814204607998657121630089634537031397046239258221726902637226852788621063466693100536896789151704714323684083391053248163518519087912019347502710342331674746068840117100952262510738061971781309396005041557130036802560075320755190703631024807625765657069035883143043716520210923736784875856444556924115582435609702346813334259372806486063234103411230007944497289928262097948868029804687912171589561959818715110844792000134453098706357135453199254883013482545466921739673424454917290357967964991681301148635217585031618530864359128120817152668021110347265577232059052636001950476717214451476557016558200787969392904803737285211428105913672324177743080476549384006551308769871360414571141720395965511822060891478585514529607207262459842795564678700315222070068399984215888400291595846199884667284113963945608763371394215282981644025348736109896253151414911157814314851567244874039282569985698522741219501033845710537164817253750619155273196238216438811073475904755564766551139903837399117885320696244609755225869334987625108579756073313867855216123780069881420385903238526244562963735622538749422711183721341172361258306251027082753005973948817898310256448760963711113321341677713573573120624710813844515853848933841091679611451163070093861945919749304192636333777505541027540775853329879061697239362050841257299530772067503983823756074286049361655662318186960859983122685681280487814581825838026447629988186112687616674811096577527131445162972815673042830371983798989188902914478117625787331523425536328019021959712422317024685543598873905548024150651602450233546059273026194077158852107331290278660647811000360151011505604333552617861532862024712287844433467100835634663865562921782971340393587495090683882281957039729268239825623708462803622357913848877182267460775269064333113697881886994768200579170845880547721396577328896413488518558334315992729456081401149059321143365575388558291628742405107960074203975711029993481540353901648444524427611896374206365533235205419084800615800324571375220406895698113798674054749374074538707328201468283757228502942422269987307087573694977486204484236398780036466293979195648524183409941549021502575984747243194981344261656872171894511677224616836256650512522172342556446563275787177750150228951158500446978046403953907187521704180244782837284098394567994851275608116991827678583170998098177703118822978001362550174091296669281204162448823696572851876200517239217508965735812111969443901917246030181129179009173557115547732122297731786556893325675943414900118724492700046484115216247463225930129180174042813946235255240133114724426554978572499155404431618061608296529139314489661336608708656936125261430111289111858400457325252559858742025985500662554273573141152879531699679547184172824269573738829057654248836850586918205221321394531142950507868112448914698632040998204821005252679658458138292998481364379781174160650435454024316491232212512268920404115189491065603694092733364414751301011680592987250197785675588607846676026964346962278960872112804336561506244770312984740468276563638027764708070550861078757941991262859117209546282314825144198299184701181164834145144601637478640085766890008739329226381845769334012742417245125138999729719132056133836379896848404050652910977403088468789889162715448890984277202252532886017353176399905897968221887477607379039283432878772771610679434771221864506817989515630688849222008764751699714525291569208377410093872786944257410781294030207325314845127138312944905336474609064479989895051595066951911855305787725463332993541705856961369097872570427562649730519932199491299811635746807874354517824760834291480519178196000956250435591788688040449874245340120319826657229899522626568685892876584857355569983721120608100607259211920796901315012523773494501257841659970615181324688800018643424243410785226273319150241404157600766396363844866589906159284031016306022707694938429101716036556930635830193454426290659613406828276291310202623158663399337188364108771131725816844315049153035624503560062525739190387726722292591688625220206495387202497528638832755404312403613150225965892634777604573511160317235078852229538389090503236503318496083313829590472321623158235235203662606347062151958581852661080430299749214872890846765232577018138179976905841632984098559494538721274964245833612634850377938165046074295312582917225065787485344162125757235053933317761631692930206878934881459440485781735266383849473364298063992185832942997886569700911303113658622706948210639062689065051882073300681329541186553339994788544319521681737792563731407930152301401734491547076610943462266305381047773425906130443423286451119816331797369753852686471716832262582026495271635866682778366795126834573461163550607379755105908700718806063612762554727568953743823347947605969278105358651488018782329338092771791831644935347717328846739955559482200313975299025290468401906470400075752939799971200696870944931046582066548758910698469335507237398880524264596938640772398388221951898430300783897930570916802857430086902158572898994342620197145742765065304674016602446610054858806974503655339745285742227751468409633968540064666763150562352060272027911071985338012881397439625221334806305529552363801472631128730010274148354956456444095544802420975632502435796372102832536387857615004342332907889762113475460623386451161954435469501091814229700835799032726171978210971127991154986549903513906512268023847374141418039121552745671463690482788967483476039416293589743061845692006989326359384412953559278278790027368657984123504188351692113683629511910739995216925375588981299204526218369148985194400057674524834208615779075915893719209232842465921467069389094081553224439196326630080093184106895025618268834310351511546683848688622710744105075220683548515361980443675359624106962321533851924163859883857905223553657524425132220442141374859632278172675660599861396117958112679305127377250306667866670414240970498513273124507791735407640093831931280170025849230599740370173409331682186360330319595457904849483403986649157313749095307892122407899583976350312295793373979879989523116267646908113671785464339045582722914308689251619299450255630376742617344841150737024369982437116121567318474908010298704588720690167908307057402264199902007100359704271460404704258493917997235235206986917930808607275302264272028830986623073897910974159136863573293523530221591646801982506119421132870832081340412357492554825822670802407334360039652246113548993167803907765419756447988221860702208345773503461168595172558053889488442134008580907682166113285866986838036492845404824443763087507637424337807335370270436770202208501531943959378574285146674006881018972870610108315912436860371216342037464301794682208563312552628510256958914714612019481616661376374110767838629396702254256806490985453038008010253045642324891946169878114103458320753188956203327471904595732791434836716245469599491834747041378964595065581410620564736604708579055590814769858467566112589053127315989053331710046868027355557862855176383079662462692501561996870934005570948796741398890645354463958708828083931685055806953980939991348986157476164666588076481258042059068036333183024674236159548313670805337415266520448911459764769507817680536914184057017233365751735162754051323523001528418995757052412894615777237332566631537539061482646563396186902408595814293115047598602356692511389540068455926707123126873835821439825350126698472999377532505838753377816762994637902035735314245337478565650696402013195662273208047728925517996801624250107642346467541795670784488052998436426593371851720558923385113201048146357954414212578471402551890999095018557096887218875527771149404397631557019704255602683727502259080525424104359786446452521387961492767444962577119027351828271708845519370836001003046179226916607023945697793626510717400471630909782789769370921110183222161268776853771656365629196465168057705792488200769203533450751274029856440806421295958021454064938343169223680784603355894840949491336783711810647075734733988103545060270148725401958986973746907590066619036876383935790133204630878039651960369069191915611962008137209786065113112697170871031820914941248668586236292853388500796173010754697350277205156164199408960453846377590863105844564568916357167406934729781019518781377386501539814935220242450262097572860083706288774010895194193701682014387903073980627418205223134310813312991203627808781161606163966440803926868963901958144421261624355620695987660601669950518696641658411734592126828527647289776997415091889576346309310376820708985865220334797019654103027603233394720734831958660845697397794284483531087024074246563024442399596015992767777827210922622990479628574382616079512600886161251387193360859631945661303087710844167727573944676041858614320713766202233445903170965527092246087229402028615557867403730970026767915190287406457429649948018541824359880878558437907457740266096105386233256293711118834415336769132113157102653574500853138119329791256935584941781417206971534361196041048231335000572641156088244829231297507002531676653199108525072288161020795819892236077441014933092491312654241056788748593573544475761252476032233791751529315021751582094527834347107527620355702501146662713137682817264486831656594069409883091434082413736678817555301063959935120491385615005149899304404289766818933615237561794022445394978937165269232641963598269560436982939521251212522800218991704267087681667287776352147152664544338879635060952878625724156805757703549278910111698317081177893305279756190232282634163296532788175714968891364238203041453519274029367752865201103495028902323505960214023638209378339376311047343433459547673740740195881215114005449544699754849140021213280381587605502140009418824367259801793537245857603324952025059144478392088765609715720375113535557240623627799468907417009707373726415672269087994184549100781889291320332585248387597768047044180571068220012116361780803913273731508166615223789360998074625189773125108893288060055929118818530373125859457371447240744280830489246782132974486300948183267572236884415817320483363928600614396747185144072373965184288548441025771371909488593981241232045651012726968674702626585350994045963592699917812525121986411707729015646376251503711926631493084269634449847906974684115919005404779260732478722109476484987664544344314810675753326929363456696653691153826244078282819805837049171295750041109028743509646730787284269200123833610744593552838299714097693900055237850805968662173929799200981977805594662522702440601381697841106027293362650871734834291928386995226803460626736776143690714226743153662579305385741703615683012283758997218140124172313205916337914028555291768124821881792077295934770235994782505367176240095816506221767485932599670442961857592986891684764180397766432395355479052085786873707416529154416350829233881109907816589976404242732866804535375842794513041862299129347942953608942944172986810681983497605908713973166395038382709808745984649255087392082197565519493893606208886950146914587149804462197797023420383062137397034963906768638767063417680465142896800177452714172843921356675029773978981672162031805843685938446671214461068867325453027299819032967761527183931748582936153329844151032190866064079030417167672148798646970417944325946385119368473835000697105474780212749505944187555808286781790531649475916760103483716785043680541388831411586531965950026037827197803401910785429510663101871713145550475783104465981843568308793367887394211024587180628209156890978639972923010089608585762664953317394869962673116898091733919049349134422308715176298036395320772465279228197838665267055243274415870900917593557618104731351419303094294550759066623634972419373184892805724344184002104228369509639538567170726269076071912407356134492264604776551249853066638910888135917386049691069805079539890134128643671290182860295922102497905032211033620959859443526249815159840106011459645972915658680775873560548837065637714186647246762828289806721372672221882064927208273972998904283152981528210847878230268874121931617670772362267780410941893394392027369621251365876634897709624342885187440563929949018169540453960778970623701105086089370998623354475358474733551406925895028811084764421812964277656726027911725813211763544490452782107367468044588699521744412406375496292503952231388039063134099163202380577298876481002524708666978346731906321144319652326549043522959800786169013726164725310676934567844972906593725338731884559072819632350014809907308266165324771257444824485465423026739281300375633817716846674345458936797919584657722134293876550802500778324083854101021740526675654769029422230649170609602655647657101384208352152937593019959673205705165388595214239213538103094017422932019780409816513087436280991546423259575427305479112660621293314479416464486011072663421678019340154808431268443847157861795788207567340633842322461220905335643677061732051802744806004619036879687311557315288752461549752563074202190372657313151346637954039873217488948199724768260873253775421560261413267685931373934043474757458862129321672152869027028734846262050164107028534249464095135965411177183870987961411062580732594926681140693187401087919624897401329259019046789914405806188506048658974695167609222736563882143900222343034954899167753260706562275452751835613730831141209724725580470268386717142803365863134528334218642579286635876958737724489499449586112994067712795311801341055302309471144383924595460864236322123071597515113924721948908325293377422921533997130997545553277208328943592385457532390835355346848470685922016290955725323961702034929121742740757523151929052113847860488575187663266275676302433237744627661514044741355689514287962585123163415774198944847437315327132793174423106493904882636276701359935887970971983439033631543576084603653512687432811068879229103261179860819537909759997283727552757744799661391911737209438777850281275638303800129563120200048051141219508104815093574539865734619106527546878553583664781818184743638032079804784196384887158029538962618546176421942242114806858192136331196337169407733899428847785713772237194978009856912841298722236223149300498319743599309563611467762262442126902700442282068594907557301332098140717839010710722490110141648222855052558863671167286919589143851601164817097156287196338149975503217274879408313335817203522258257137695571692969468173098419490227707839159564746706403097119727231597678424334167567365930448463853099781510029054804488603159143449414423980947855508416539571295973699146956514879267779985900492588577666378012298428593285482125867718036583080052356976945656568908681517077116770710094064863745862971043361672753429453253308493283294266988687247827365843076962760225404901742966180710916853269932742140719619938086510722330134481293886456393285652085967826410175819063408694686143545224112453155775370776092842599767865364598261910370015633678866490211022850613197013905436925334493647973366958329731642895878868551377820829561004776045708006793702767535047344629299654545159300294768592619578955664222167372043652723961600600372925914988401389986756359613062334019220357086974826670555286438931303171610944167807826892471926909988540528081897013559383703920145108822876342138168125639486585468883795701775654972461907080119244743935894214057946947968085910472270392885976582858964616607763165172662878938726905692298908676105050488046733983151335036679373120015049605712441776116830406524873393127467728712121770312960495850188210062860640656457312704087112871047157459372582500204403245802882353546836963803023786505883049809977982224095006455713302029019764511596499670262093882026803581428354841890788096760830555105114811811258590281054131772781498863638370075778395351525044959412800166873519192378311056641048839210763066252723147092409094711078909555887011268777219655207700411058796677688628619225536751146649784941697676117537129284613163105104341396473815575493412449852309733433587768541466625960258125438203698990378566015226825221833738663419791859627155464086819953400160707434068999856335475107199452551171658855109339559007556939479571732023866722189915723081586855102021247751463765361942972117087606185655507153331190499916322873441302850378053781322891316872344064287283790417625765941236891400434107634879099205713909808410649800284738730259496439173708411087109063557993776621588906865382164229538507365546796299776311704719545912471546496738071587213894571664851531532148898200784738843680607794206462077117447884025742040385784799313991845870036877827165677459715060703319210489696943146177350663110592933322193379031491823894704502635866506007537017675184838119050535833069600018545479057839207454162032239612855483852154663253528596848996628479276311790449832459414357889644983287071330648195924142374646503836474605382259172560786193524650841722929612048353566972030976742133124245318110788222597887890629606985964601118265640355926297376046969266031192001227651098421997565890884620248854605718331964939619827578757165998642769223283682171950816552916570745584168895802501992457789840857893833442641763700730805472234868565617126595744093689012395851880363558425198950414548437484573018406934603285971884545355058688406198795277787280347282922404690300323871477951380293383849685866804182982475650083498558997290371405781668185273787307068356756181571839378180746003868517316269980149755518405153944010442860558253566379370804986896914541916613250122471729372785059130172737126502176544914371775302565254601637372536621790640642737112530890168741159838961574195729818513559745803808865320168926363176074364246230110714379681317896776476170570747681642269407242622495291039125643752556489507207900445794827510912983025362982543205263880810005154426408556657831723569181021192580189333902299973424468656667232020248466207367991492010407293211179041180603218804324042836720582857904724303015441995739423024961124931931699048632369563513571104126063128554797461293175927092484032829947610731523188848939872494738562687937126124283239150035512983276628370738708965629253872666490326721716371560740836640487305386367273509889722127780748093326790883899051790261350315186920594880765207870739906552377248970453946367772594606426304187546493155982866400223306284650717818554068069016383061021698553390097783944539097778635366786357378778822774348095544087850401729932868034290743294232919456058351128629293151103162042942476742787778705977553530985243462347693179791850447957729786009342844825917478559536872313605691311876831402323366476011360228510125398685697803816849113044837737526521506605785389548593012874135217035819043330727067391143790146268290233349705541462318139567143623442190254973610301248270551102167539795728958799434274594685703377127153039324362931293276171591851733622110717557895088693731399055115566457886606760656095801985019604313888820528759067056836755084116973275406724244188532709277362150668982423307968529682639119764122114949735616070570403474330361480526180316463630449164214545800838373760613770483600234303077417779872012662393060163754478371428924889053905280884137385292968271914453255048243488472878001837380083825436751274556661238772581027600896824839291148299283048675640199226667566406867343171237484812037166570608046421861926428867828466809713221900789547241803290885830771941008107915085376690315730901552639738649212650938023986232679324391318489000918038802255274932385926181653965826940526847309147034122771522567488602862636860925007837489125196402245275383771084727676956518127589782151355967346517759273807033173664863130112117559453625827964962050450976801048909770300699197737543729816560357936698908802602648986757583934075706199471039512574084754322838266735728674660951321262414530957662891916550513261717690333667091209385745032888513778933357460829212268648038528738461361521161610262875217951208879950341848699457033958805839358701757165668339876662295264576371353559649681925296637805514280617664971871443185413452786613579389072494741830066207960517931542353804676037651479014513221639701104172207030692554674218541084918251521689882532679282713476921257271821883181866621682588266931079952212150009705072307894652360441013032431797741401515460114614307132179556609391537147947022286677644957926802832572543514655103454232720252840133098876666597218228278072865578582948311646870997434443965416867577616166117586787567538487887585226191676621164631745261001892778772595860656306470333218570584338911198703836081994410588222843331381985466298410858326444221873760876049862787534824278553409459789225043900149651309239970635639675542811341684731048958153633048080225425109534528585866414758833335118189436179310781812988224323552959296329978773584760200525042896897305045122063939167296587517559316338631863195050359671259650078777411569401083682744873472366795454767641061587810827978747615163021244245543675477374749083530354928595686464979915957562388718907990517192238140066790659014982606469902245870235550117028452868064407406066523486541162168108054524148414938743010454022457470819854221389235990165877184388009489662928870255189726882829268464975691107596803432887964250683909907184049139250199685174977025635040901974423154712828544239310048185865111357649949478497289871231874840495222250481245124493088286289570845335176307781316481979716084020844901601940886315129080557143333524899209842204024899298547103368702802947363679422007793245390916942361316951422778323492370514590646321126098365434840648634967319037354227188231650245301650853251056887401991602156977664483397438623413724976476554746457019731909203463412894600083920527514400224858647065378987690559576016592131635727088825116084248823868406750354884359091716950572379934146585673217244713933773328087170338656663772835821609436769711000284205827130985614802370092520240907579345123949907972140625007244504440407446503099354372889208988764758484633383943320686620972683311474536328610273677355303505728638897976541457460841284311687542254810348159313527368460643728666124928982326659297632751356424425717902123562094778745245009224985614318579070501655890403359071123657504570198246597193297628419564157853542802796999080741825257779643899512474080296118201780731413821206389297905663657641663503744482765416461774466863423547567656284630738567095567785262398611412180613686222805545091342793691272060533413998788055062734104502827823789900015255425601369052142877990830665994308775121630937255077324416797914478703020038080948540027646966536046945922064107315828174206535231270652961920571576462532890767254166586677870826464418042407525841308094203889309015217198410719928865479449063697972808955388284305220572005378218800845769790915379623306915944251760257436260180484228142192505991388943982629265464590160216739804374430494218450053740782080310912733266427717112708978914412075226703886131028758135390752135460429065508056873311533535418208385934843905962284160562263856616616229486410414671328235380087774292813282217216653880967944185141733693036070911754419309493504834207350989642885124057645916289769450258062551641281493616733447722371626931301664920319425631943883170119284317025079489844716428361292756686067938977673238352975431510654139890269116998941375134714824415555881592803987893160714753951952647792962346353533788057431008084041412145687789902472358151244647917415702292573664716506816089856048113000084163058744392167792062679023276495849065596687659507100536718197586619203765582894804678969240148313610711849126697468127669365587441931977734093915855912012063115056641009319197969509570636741973297763720619585321193287904071970552468406337729014162329877354725070562579551237358974558816678225367857253524004091993199412802513794213275492972721718226935581700152710454526153615804839328902910236923481060241904274851482482101615594857971375211718501069607054139386347623023690829813719661794990353505915935371478972817843130187855346642173871007227984431804237966428186482823298315527496668399742430579269220853063124457099104683928287979326333169168124901571938073068492693155726675309872436245689878780527458055977653211088020792107046791289163591140635317725438670375963742854419949780179879042054864635185639763134803060559110710523298659368537702757011743814128107481278438292691494781860872197357827614901394852111219569575076641074962732021628700219554842829435854112771518044539350867589931744438162347311671543428940563400286643951009625929187978411809516667680648505756894962449218620194529000150240239718554640927217994998294983082319328226850201742199840686161270049304767650376229808724008350564338688626261999660914238732501814382284661901299797099319565315183740348845650366113446167162417759043453951628113186165684472476400225379700240392931347438940551707897953702560480632582441687716805226075564872326284182817105782602167220698205922696820146410737403672245013133853364347950106709747959381127688762009984801041863398671292954894684852762957138102375667347319809248805510220393189446135508848294162508597944742533219998960872298260305431878860197003351554582307020979793671461861290700355784039928087071589908070874490831647883700329147331746342548176302650993680785178047545324894542658910939875446066969013139780438910754136994459148471482843587750161344938064740940388623512521622950734777845831821888637020685657416940767660116278524941952913000270452172770291821244967503253741405360748250798267623181958137030038809616430423691288985801632563651162938307701221315869496179760249983500861070664871982826418003241746751502808811988682942179216535719018125956861572143764912679587884604599542448226857277323490442281858653549261346338955208440167049017202158085110572189138437038894322345406891594041706257756489758639230659294269031322845596142724421312852961817278792538397506399455528623019890275278833123347643653773951738420029616690991390351919749794247766134873508175465281416891797598535694505943188474025167340449052438368054960416146481303609126538548629189682192160743188363174153653341108310830429339944148249160107637475151712919182210282489290821976122553836823375873818502954681728385021427326623612373032546926122906127202793011225971194899660102206085030904857306091514768248502897464654731198436049298473713814814412786822082047509790588839792179050952285250770324132902608464584696647730525417306971332695389740829626327080077680365052119159308790663512918835086190050180631425574511081409220586078223016396728596400935244106790377046187521092726586198418591910546601008674935678506609942067087243495048567722535982673782286663570119688227694484478124906029097845685009055405811277861930965491756329891202462780232379086703189398970101717669242462920798952187558822183399931759468524281776043743866894628365176455991380063016003209059290537911656925232780365294718389766606796879640814088271587367904288439593283159143593109205065025888246664018644219714633100363313344790908283662215472489375061518312864104806290069990919641438242430967622554159220129479560322611222897765171962161492284501624634229155655074231798744945653570657894501434714724320519816341012902192471167420730707185382924037386048795999799845239042238020411052923498901424062035273566482814286615186742390738344088393513999434372746449666461602137056267055216415910838023798051395372564591412702253638248981783880309237141498047623318180205322331013483766910144190399347574443169262398028314819632225358971887682854335926257651868679003697584624969776747690162407976783142012019126784089960858771891467459346781314019497116139320677337268131923936999202911758958335827728653454869082692243222154924037306640946357918850506880500698665974910765358459769596229979785978685913995078944343842318061532801893665867492641339512134922825410366364315574772448957821746253086111508939666232833733080319863528940815352798422774265574744329382856035302851992891069689668541351754419469632714353411463571230888050022040853275270594063541090089610705724448232208938412064136228948875811220327581631325584216649623881734818994827928544248309452727548116487721804424079163121657850395430369397538334051767663700539076631559436226629163276455236185926858056361906868021561401883029717248474503376128793781988236959731484196915489548945952394602495034869627327325430766514463786922179712669055486206425863916361041575903990313869469636787254588620150674888797449606644263613546339742858447793363186653169190620081207683402083849882462332757030364516845439753959721585691078686247779874108196992026695675888215352319566673714579134643286075144984600699164890334931871973987159818099247827547730879249063874126549212121646106431210683528855218756689953960212418310922155190237946951834045644096090311281069418567842295688009949438739610162049690875542718399947365053553286711377541999914038794347037154336092019091185069718864250416739570584777258346740369837077989381376525666304123233432104973589680248119605821236434038591218919834332531870338129754394565093694925576809813467403380585197662938355298721608186846763037402746175028049231252692620418956110268703791396470286255309083236850823976679604684131742726184312356793920887095725706952903992027754195217593324456951606424570866651597981415942829848479979631579928467462716720588654299402249966419642990372763263531634181344575875145545924749475745957955327448057386069804313083612209258891575704671688598555236182851060661155723726064105692259055411119115039442449338385141543578822717898008179645865244174841104097143890804090772327554117760671354500605478891155830678936941693979643100255755948663012505679680873505279021207576984330088858804607694369479798093689794141142700761144850649428074997170521303594434690463373506989653988294156046949907504577700595560197167500579226593444460759673062241801031984834551279063159881502099493673190318438222857883099698127135704900338481593439887184085760723088427359619814844398795020210351156592165155912781935208494869267647223957404434364803169842453750148417841271406296007143417465238488964807845218222016187159872017052430660262578828016418729128835896975605178501387667353587325816016282077050662746978405742000058472241633878211648699263942500459785633049102850765067369839305375075320221465924823234602518133540563144971344495838015844317386129257635630551934592614437401493223429072753417987452805821696908571893503866347578093723648990524063484029839736113112065417178786399951236614098239643341120378678148982848446848538683326235220303880499625103806670073780729034725329311101129124761571224176246870379435291816212353752433717562089506556978974426819172217257890111356501866357734175988499444846768661120087898608949354628684831878649708850905264230975904760510882559085287259806473435640728606771423439906859848544322954247504685162248653768484529025147324619399154973280441702829449537715294580447987312090474422646422996092039269153750984295466161716686690087923332816659529181560360032791657862730199381469737441316616275217825993595876458163896890417245932025153233883977243070312484733216401921721931677594155992776146503933064614008528466188197085723348323605803718300864626571641529066859361048277472690566004351309604059546956598055887435218739668102108079912473271531395345245450795854773684640522691468519698518104010168192516618955186637242922169744248289832235660627732880596712441250378190609249792170085149611602609381583767779020984235073704538355230828439947061610349462169279653473492927963928023080143237157247069029026836335745293705633165226642121728003204412784234647574099634535375427835188730218053930398665039104724323748276775105966053327849826580813804483348119933763278684848539960821992367158956769479197275826634215215604055853922274180324547740048099938769820696364130800649362610842338326512943122669859168811904123784803425804508812539552462156973023173617845466777150496126125678497122318245962100745763132793323881495542417386696967169096021500587036261852582736489068015766553049060039680607492685212176303517735921567140134344684185289271822099914009251791407155400099231690085305022314550699612923830237533619833182214374520193987271675248055634675716076931982022146812412965865367419914088856122834153491177479284787894379156310225424692187523968583789569094919757761352389724830531089796105205816919310109541668996172605141548473616818043490281992277624884238844336112410609272798934443593573618589558953069842520080781321655301287589086074694947598635450709758920425244738987051068956682682491846803011707437228912533489732395637452254777966426806779324305754271111449826003768296378683692394075970136891136689845821598481514267737259836752326928033291446857675410540548156403087724340219873146719295988961795885756840091475768305072990458861349117902555207851576549853698328498176607403682239058905127236999645095981147491132760409763470820574774024395444738228346896790984475665101431941177478531933400534412558800272495826289629933598857810072745002904827588348117145565802013199279989738737474734465638625184277606757208536219614755053786670417286414417923736331955144435884195280712495541188179924100853522476367546430715820266648666660663830711775131279224662919286733506502932219544827021643962575203524112057329256895208824787313650959804467341787908196970847616947573731049129490115186415157047834702089487972955635771642789456945384378463549802692054173087412535511044352661616936616695611224881207528290123637391665133050739284562994444032825707914148906413562349631723896272281585791840664742514244520432582967847030849106032421331114708663996606469010885911134492082719945986654362533606976135640824823862502701946977232204071289384906092092475335534362909469872635692424382085447112537539981597506441623807988993054595601167840780251123036782501149629830496214102065436553805565259209715516347048641921929193819453712929776855131526287029849889183500086137001506927763725097107102047145004099076035859900952715985142913815618577896455000991934341668398387527643780201303079372830006725204874672989578248998941736221140984378594875006539287581869274995260928683709757624155325693321477282898969089829653659292497763075533618189266123513876295276266835399185227397897023579648363595213257483779004422143359548829364248859587296125336083761415892154657996770623987560492757810180911006353806183504512721876521716429191225828669057261926530782244768176167855249598324426494572509688412535080914180355169631099543832231106872638579978548492929066033480902799604224899853834728490350188049304413631215122930587524541723624284144238177644853010565335747077354918649417416402692803649879465017828358266524733594329189935048575541021433766543185604801220495899794550694630188702745541949779648636931413502517723068532585974659919223588477972914528296449737073575170781093669007931149590097516011104204894934828343991339870415333117939862256622609416397048023000032854539322850573438633743631583266108141223470544804591757380143372072356862714273103464852728504154669600449251822974197109852969868990029116647447661243085075143237036595549885456861426430672939720084412334366394513770628794248311288772769747533571776754037440260503449054297338911896874377086164173666476057854498846558082394895114081402953038426189407719206359897952062048494878832545979348006856782022069805761017709334568310632842344949638147255251892626118307763194290497208282690204118149371365268275488686128869379983724759687749694049725885192396920780257166229150774247734375122018812142025503796305555727453854087085429084976184404432174207469382751092425778167539646783468926707716428642065438935546549998633702632080792558739572215051734004157775780866616243955382243662267187133444609004902596006898922303921145350763978899328069358173964462093739745706386607361153192141436577250468031620395750087495633981993881347400570268677575331493641907278206610024605142308286995430551269548701767244294330240679784176621129839838143486982428374183035518808462618119909990811502177426874996307866074226556052091925628611249548349061298264774709368208928402707151326929864901234823387151856330471267816935332553144521301521817134048390451328056852367649548908517067196907328623016249649862590654209531714491711794795023010305769252123749561809632030281889573046165050332539971212828547636840317298756445235112283077676005123325930089195203096484447430615717011278917053914561596466818667632840530078380822438039181792692615807728951021678432028372595018883943495837380390034387116913082255652677618248866167880443223595849015857700516636630939232379786954463804978769266122497636063177974539373219499649952108463506908087169716929900224081689078225918603358495628426724792676858164194066135361036778682051624617714782876167323598980254632983613375997934637738996617880149556748300153070171573724210069839840826042325038324336963856914899328040938118352633783800185158578949347967451465277941952130278964110857047759529016479601772296848631797475908860145191592657052137852019860600223187731916360881700817583982931405546490678660492143680392695283746634602517544979217612568738747313455902149996993940839705197540606409109109582607357976583036895647437046432742513081038313429867638913602123420783829534557364465268869018938445322324269496003779970417163264291540324320530619819737722860363798611399864502453688253310584073538229947626586320531401898137614600355433541921228089605111632292049077513173508638238165331745326242125538921727441235894105086685630601888483885126387443689252198466041337811901765220627627504051602321608008808840081136395567614000497563468153548414986624715248169510775394473187879132160402140517929391757350422130701552701169981005505415089490544539231846282153339499195605944475702510893722013551455328914830494715079211958573890314579969287922968036772741663170853487845128418652547296375260263023133568507662203751522683788131965684222735697581589329077176560696825117369511935678383897039818618433604323515728981518913304067731772358720373994177074034943416736696346081314441749842969125172530683718266964129553293267967671722482536439209193371424777608644434200986197993506513463847529040272325083621977676442116229594852032886666637747944514930276421955056830771909897223140726705290841288277506915845064007364571766006885602907821118091172752087942360524945413302614365318176548715158523740451003979698352580308930349038777374755907897477950835416400072852376554784091744452995356951615577934201271120709607112028635736736893508794010878376212633467495963660665829344269362821283576595648959502577544065643684349785953875570027005315958874858655417173556113355436366242525443833470630585230255701912339368649874135923673574314873109494845219243517664667103858198469256467969011025851830906707069808704804416108664394151966831209151845098890894395413897727163153431220060872641456809122450548632769212076460873222887500309086276318366989500738381462692670871259100521734814693704180729748124553624120450652808276192504617227387450346031781017847828540328657572103822987815548866278638056209652575725897874422257127071935000480698150010233714168249396250052818631257795821911645047818160950538282327982221639916457969734361571935625201832210728401487012871851501730792291541245814343751343223338241503880148813325339714837576139156558717307890805862057562428059248375557563056004469810245194263475831166669984516201937735562388879286896200100238443318250189668665129595777483303312763261832493506096010638508147236090401173975136324953573329767115785552926698484975340153972889947500086536998154171041800599396717388334821858902566074036279182442648475557055056760611664796263555441220991811453896275053602658031430431635521889065255574014194477475854463090051760376440316109220137066820306962190888807555610591237914323976480696162697825731540078456635768875907491215854407000485203520855813964017979184814240974616583516398113700344720253491078469668994738742072209621662638852922446522962504446392577279787905854508456518921910839788279482514351776495822395802002591744740170955663400544488109085482769523138944596567393392532619023764106593387189736081946494251378062803218844710139208261507470232264456462422661115206069937989666538934508922899872818933451239044355794078566407734100604446992850969625239191456798576327277836580740998595628787366936400652606135634917701345769327834932250166103460160751936804591569654781561516068620845273346740585903904235363965681581543974181925251126753149386164583211007174932986706785307480140431069812996522695003877855065453904159239128328197566543539358724084946352567331967795061068150206010704371160447703284440132423733850170177833854183081436683876454283395921392644660329132107256408873266885048892177350698301866324225798052206497394057912850823005959168309509257218670590322646209940906826885009694794873796551064560260188975817643202607988071512721091969737813070096209777481798069510418261196037436468300793352596062881033235689012785788190298222709445138560742152590794371456293701132438722957717457976730953797964303454631945763603794971385035239188381331646585605377644893989662516153989478382931702853188628490320193247793901139275527731553928520338424544041749257950752220216005204680547385467941068313135474839398760851936948660119747568238308506337841459094677851286424160284751642612934412368096024657391125803994958070406455831183420164201017842238703064004453773086505076271878734344748720688276275145847240109471121925078078314099081707399413813288801846783674908139214796914395368513039951567902887242627562666613708339391497904528644059961753616339428289286688718606763808750252533690988085368942859232395624014610473430216286768507363062611324227027086671476558358281030440595927365632456839152626024911060665298584868259995512736618799130225103666683511676126463714620279695509334674901689483376730035379355622447483370983558406591756016828237726028740840179650672463465848419953346509412185744635185727901540454692690551580166912031419231257329172923187575758072493165952714547715142463492210121535066089337418771963577434144299696820803369681411547516951130742568132634790726497486296740385600430071534573447692100345949318632497523823686719894467228970782384348351236086463786114698380156729392189651955896240967122128669424759322917354620430776687411284750228529259145962022211768282401143393667458147069990239192700586789895100942925790952286486212614785433571964429982423397568492723160459027756720485527600525138609144145898277420815642397977692697252603414353933977355469456496035492648508134951890959582589117609929899882620648229071674172770539099757376165723238277006309758949976686754291840109257141456133035916798698037344480995791582153654679347910010376326082384680691426324773134603333260386313179553522174999207440156262116320686678300588185933295726091835064763342490912035146485423818431974750685080976049801871378324837264765997739074346460574270848715024532460282464707470022441428144001873393356306105783302741504006676934841333068792026579951514711063052242828164803619871267103344486468713361685179129619411921405567670588948389615247885914420492176438694963522281404169428288084818311223406589594382125728800325920063576208006417414133077852931300508663708346292006393203182132456146686704324548933408605396517374526219186281961002521484895854819510147641694261384781989533166344081120996292501544329030728617871198396340231204346418087017378914388136149434177292904235953577879083046082922754111809095785725206961807778569142973779205682851669015040597452075690865115720443200258804733458974207322828006939772900172788006596642856801743979982303773577348692639434574776485832327751703516398645595874614505849884338679882624168089614862241972300164340373741624853542301669731408491797926033993825809800693870802056087045661703519608556799716012502539160351329707654736669167959500765667021531554106319000764683711753305043336454411185839583700358303761769466006481288060262735360632856626205827647901689959180483972725465457212798206083319956097673849256624612837874011450003189631508229662414126038952451832871754207797109064557213498135663087668338168476497439128013952333743844599572015796584077423514849937744870438366523397181882581565210531086533633977200731235068976771170627382647166077738798981791588003380741412905432965984660711883516545010852954077283613633855337909035148403301367378609308571721848930139280305299512542955080431164027648007694841182233115177146998984726459296510005967097701074726870319906016306754683219304809508433649606180911078727748150929454160052072006683635957545830575523850698002265292788427504281636167247304628674014234023880438686100480208733006765636891985763016476110565823233949742020559131302571629918637228305585738079049134178378395981079941236725130338657394340276363711862982125779283407299971703203795089886902879882602476444536155729553885493067009964192493712040521473719817886883318852589622103117395853919015887524912101897470245316342562366172655228415852179173829126288522676766968082832964332837371407457531996930483048620214362724889781049380493501136810822339656919172331916755573726493231367077546019671561078762443009154140232432250095134021560287086926203759138689776346797873476835058730595199523142109523156342566823394499107486052084096166108652357788642396356940928941962977920562680587708739847291467945884617319578890677569267354546592666127813686835918013698425387794508120002099516500695335409349024118783683344000838416147720501667219579453395005722291019796684261259539673916646513341045951637942772976079147248953657071286109149712773840755976322295480176794353225316216272927573892193396353196007920414909004804762853634691877196369397717883644003122666497410577852537085061576696000425259215780743511142211721847599647822014976376237930366531319851997252232820225811834592658702154683086305287230202910150016656599939561492533693629615144504612152717221523288596829189525215444315886524994604952125667699594558572830153257722281403705159290673362284098573853996455925328362128489499147938015552988959143429765379061096890152978716589863436128352539159997017545412069348790020225298796438024609961778031995854730910291958978025266759400879154294532294078780361466506101085060884717373718983235699755048482330109720151729376085525334242113447080376941717003806006794478377362049976881868120165264579269394083540175911077030885202236111478733860276137960827205069345272748254442339883255405596567290199182091351629214416483611781745510716886553924664083725152542008475780911202887525498542608902113101038845529661207465018684574818498539944273428278169083730352583319881368572874966053477450969367442663505431072226673663663413330315105104785084898946178329293921372227566196608213470032505735021436670852415841944719660435667945879728759625770280842514882623439904018967780645756885497452505100032879905865129841873542211967990679230419411251935353155510850671723151875257933036794316560371250587685392056405773107281532395298588611376746846342667048835765636168842131317827473847172733758966629500337408672896158438321718294903292013359550691497405388543157682293678568534293380646693600648335330464463764077782896838452806130520001043150776187570204699197171956283286669179766204589478868002789414372477888147909354033201463010108715251854225290785763919884367835280410428808122146384201868559874207829094982325418795577957535652523695032282357049074277822167138368131604880064030320794125580520826393027071277704135636379572110852923348833834108434969304380112623979707238223727438430827734723740284960466968828406217508557706370274263605860160971462661050647703885244180682686816411840600735703536619092363258398317447969629907289056600614748630761687348361166080902999269511899190373404227528586696775442981931154505244432502271499537193808279468602289720911523545777258954916918718353363731293707902163507769655568686020114067109572085649599203023099231692477868190828409185535279597960294855470234622709500043191622088989973279412703221783556865125375006044260026179440525775644338130702514314406346102782498654149911176767157543693791059832040052010073713816821275960646339043366799239619795440559717316500048850111022525899552898761972814043222045040250306312036820649785200051778430417822543888328837875155342874777121735474615573384549649317502979806464694320186217818184542680436430068067496928228971540961037979410239098982634351548020837121816719558924786125081647140876369411363978425227247836108710415805263248071980955734432353506453321765594367923013276350299232939070177262311568882909409324851250160180244972130892214476975530959547054094707509756587434029884314014903744651008213680902023119551457334765495572468857807950242304930405596943731970033442498669476329096083251300447486416038862799003578316554016720512017438562994358491643058916595876228510606508373579970881079652274347952863332387109542656054549970003197018502145902585829430578676278038026708147719832164383768132008898610720982135612029915847563041706590085852279299137813141802025923034812490310407904956876253873257725095336344636576794003541139741158067118526757225498296105020494099298244456116409025523486356011987875672494336600247601527011728585108420741240861535565038104365858353791182836540874414046285221707483387596469283528873693982304190930143399428079004264873754037106435777418312159832945225406573880499454685657359796608471199508887038835440304250086964763492260394319115325733119306795867813163733213957980324497368438630872043679873337145771024322811232222370923159760143685959084768487753924529722619402619678985977848187417623200751289197018799918116067037893964238880353878144880379343590738528918403199877415697430066627481081894773018972073630440412087007462360055994860484071593933759060561473115027671814478311332883277555613167796492297563384129439875637349822705809466054800479926596512885884465525000623175623128551698943579989485547921413766260275723440432305645250398547039186941511004304994587602950982101399842523786139663412405750566250067333387723446602990655572075874466426469860971168605345873825082493921002172267781347322624882817949671194051542429121628888414307269233481936793878439846952045499015873375004150454630450343158028403403501852044357971209450871444077235526539875243385329510718734346305254290579726597002406091155560407835947016218061421996256912124245234098190347374881465724350205977155896859725937766830085463863932290119754460415169233599537359687436077743417279498791246466636183259084818257773768580653741426659933166418970127274468731646441467074304108794484110734901675861994853763772205418425583395708426728896781719321799205701240032062190643524513029283189986666564308395303450351575184254705210366683307573111421071365030320011824780696581573009888917487505697666884801789298767509094786494874310925687052176808380663879123771838559351351919197417433182604106775201608628941478937498389976587039574843871256793975154095183024599552795366889796873128720311741663701084016621698692653307373215592478876002096054854134529184459351493803214847617358889148953312164027978662323609889700959334494539142946659251384274008793161045269580565078291427252481087445477157794622588046036182117888759220865928261591738709744843042441593975767183287777327002125267475412530975649764848652896049538279459813472467338599132948071945178970867058680569194055789878538238299476528967722139006738039708987779742876883090801753235073406917815065727689797610051871249885936725270349925935540803602814139604299867317919323202081249173679733222141630292095075951263990899547458156751347639633060196554103780617890576999996842794538600408177396630081670591075549389393188800823514443441021023590759118742714103416320141895344783429646251082918975830868603766128128417501883981516475292854887153277083485871038985807614835113144185082991207005809948961013923730768190187392790271248171782756125968511338631378929392072342261670206193140541575074739929907518488147623895991129199949693899667656167708344982629061238380858984457275586269345512946963340334955656983671484833773840239205162393485177705001072499936782009403980482339681177079798225988445056293359857423398222742220080233263502763794155588757629188306126520581308266327662976183477366978706425861527657327883151618491713125753308723204220359565427174311547352410342134301078352619750104107296386534058115941836033971532025335054486174597380347180235445898756873571878732833822181706773911862291094745892765926352402610954928797563385355978646093093875529454188951323796908455740875591999990711774278325236855024626638819878136608835107233677466546454218017621918914543557405444657271496563690590429870550486479203972796811945540785758648370432362572717003843155111131416851181562669278269772467502124266370562714257250402540341824943785672758751122478675830243994002038837859954442201541126555346726468604285708503563246936170531189457136904107307205553114336579228107024231253806016009815316255214949956005939326493038104185536719846762048644046845702461458372630027549156278616070303975453830640101611370260470012849817296624804901349390739623466848547082864813534235718945385312521209153926822454543170249366362376979437011291093644983743152769424380984506899302281522229447845933913556317175517784790928487977409239367065028035186125363160360828745553154785137975928573677402899109889672941023407712739086477134905402299701116518531168180809962200997589542834342129657068702772336685549753994655998076983818927757061729106390248444907748431514844485420682559368637238718923730047646898601982393629819549543081363087177645034039040082060513891005895022579904806732996434274815865721533628225882576191343806749555497950128521325042513752835248933102799437988834225219018388379334226298582340268644943796702876786626101707613765592544749300480492669096044226757857984476659965559444743847386585171740960105190568189512135342368186379077317180031297737953018566507530413282211586028451991781804276001971716750572234350859630876522986933824868078850095364201982078884257596491502556111207967752088603220916546170256738197375100810703183004275764305722618249673714540176851447369648867005106508323355628760115791454172112554865688573551816198658870215012142762016138039692739583900421445641368860827689542538685348489103696658295776424949442241934470422293141558643658186550405651645006978282481826890255440526459321216910396559202801532515870845264013322825079266219493625590699697250890165617196886496903001829426364289856845387135568420134698605543373868902198550052525603726885449530721553351228383270589796083487741897779217914805620377536130649922152693194906978110861580285029609210370455759131308155659976844655941200958303520156330400271849003264297839174366066830894133620408704697468172312202082449878951652638916443204010821264258991299826863212083181519486672359231022444273454573185945328919905076157083271754791700515465388838047923289131166434132961816800313263403773704623509723965161051044730718558575239225207837783877010089386185665593490411432091227478054655318531096663034094050343737961747968250871201320209786777430272356832556697860690250017941910324167571332076434942326300900394511122458221321363612871180970037039272685402512644925129140961040915897479230576393406868951772345856477805567622791310015184100908665349290529326164666668832880128093608403690880051935584709741616160426246079399334317111865386115169118103999387042941260097459187566735685434044740633393080977661320393214311134043622183738158959938914690096307726276288186286974673825443732490568783764845023999813960114898272440348597556350987506264988671527032641801042015851390593044010700871805771312717019982320461319988194686401949002195857369358500746869606309210738349915199943727208137922026088626083997074724217854896976717847074071550132191099060428953477946032276189218228652633302288797520918755412029963578881656035680857543623778352198133151322703361680468403488091110033720766383070162231605387131965059515057670261772082047977258673796650871135970073215971372671389370339966422535526218912037653976179225779525222362355156644253939154288764474173223704236790162055124007500430245796319196370038431733063513239450185990323944949782806875418327052789749354229105890530407275485488667741284238544940771626052945172442683349262027765496185703047946785944684307693816689759453950964212017269058100210372075056046518604176039323098328917569707654004441037498148002475638565679064354486515778617068851899038178253199853483845812082631523145309713996001686589763549006740604639535475886462693989653424615725334851441974134866494975061491135546959847523185576782017918334035167826755698952271741317522026936223362106963037705712202272848042294566661579276174601618427512175333368359961150546740995108709200920784726215058133704332484685577433417837381626014055517476377455062427741265379703357594920821956902906866821464635552552070671162320186314388400912969268409280769521134152642719251791985435744985352245938447958841476425384884719577812969344270697981979062608010022195224359788948090522907087183245373899384557466206959314838991738550418865973818122666210790825544931535714534572825961837233964395193324885037211120286703168922365895214894050998022476276587060441527882941976064341777061942885173973351785764280224934094270035262954493936042086468199368067935845548394201862996016813651803196329220394405983951775340767246715844827107694583667792311975735199871140856613042768368467895946038283791998313738041099157517765682519330417526165512790744787936057002433083483020287001782180510679038687561251309226971935881831717370283082582562643790440584839544185545832139883550401475753060273300707542352329667945237644774400386774620955803656514469346839432355610835617222605961704245552507912771207389278317249138605993996741354654814583998618589950241943529247989016534343106751785780588453471086717787960521198525261586077489001352302377419129458094871060699335219020330298447666977124322136760538159523905710391524646177069806077539297878768006060834714856564790695590070863735895196414186576560633280310767994705421470234045339955050457958039929851828732029308863450135558604308169400861953388268917488973578774878154798123964313023249042081517651360350017418681468707092702942500997898854065759555025637508286565893015302331665181781288612847036556668144277373073743216590008061212432088435864149752910565839935632078278779753539797049639394567981179224217850279887236440712820396792691052024132339299087639089779049406424723219994430735385688478837850480287730536661858084512028353359126314637590151454964593104597573016080769407289707813488788794816571260015207049645234089977430024447048261809630542446224686781667549827570440281000438279413658442059703027856189523771289548962039001777238504479477006935623028839172990097370582769160692788653122448676757061153483199129645243063942617437029853954861768577650915193689332525767077740394160148674209838172114990626043066506587528150524452526560240893911947894730883077476851287993918083403534180814870736306448337966603322608235387757641052653782409755011191742549565162157729618464654636149043783369835161471246301967310051635605483515540644411753439833101984482556978207528286057203522191234780313846528286585660703368321966500869551978810283629742755610525193257579516934825648615830721531206507098213796505703221755230459299677576565836447666686606198809085228735129050686524446294727816179928876654774153322702076362328279310013778104270612862139804792246797614512220325736972503611632422449252761154928476870310073907661684238098851758996481091678072797235519830428936864037051042703444833363935464517333337717057657671083007100202857630388034234282553183406927802706691909453875767247418231296664119117883873417696633413937555727640821922761015212868213628308103424714322862521782229041280118161012437567066788119886497639096677509981210346565465148590595253678708822407946663346935594812229489302105344911234944580117207287908618371992083589007163854612429586389627995799296716537236065902670670029710192367739855040139343857437418426259997793228118393019481943380758256175442468146453819218642054486738339289361606426312472077740559884252854599404364077345129375631460481602054499815340758333840929007294855390888263216826016293790882103110499355814785612311921623554918330660230781068212300777866680908536651818812671362031728782542787360819840639776491434990153807615250704102046322150016859580237720707615591597770005965868963635475166096338525518274250738081611870077767398010948265568893767273205097223190676953289905727183421625874800327030266549529885897904224109133091348065419416218632756835470679817642482649196978171670301197555247686604582853077085581794098981561969404915136701179029472865876408912125484744817157140025376331427271860899554534830778168514050657273989899518262444217614071303896724564706132378286769760941808727513665873955500185912640400576860936519691646319373218697048396693156787948794004019139289852992602691073314844658792252585808784512967103888597758140578268282686942933935913675292619894615644002192057358158517848701858505551659183906809917453873105927080152155879319655185458258748266392174604100742177823042082897366285202295420593154323371990561373126476986918527457068264731638252627234557889181961365839648606294417228632567290682215835013636752935159393555930025446188077895374429025605472737006820216749911721269177106115230715379326049146849212642858436544264375031457992120832087732575504949908518507163704363527250561785213184345102313774773804727778977204103979010116348586554646444139276997331231668941284339677946254530999427785005848300768168334068168854288072784392060162360914875246667800020597807918072020543314819796969962834861462094258953297510024755472402092017492308955897972977924708469680495730326423105372882849542680697393885334733735006124648557515780235985015699400582502772297884208061363134835902657715656542885098575156824954822049284108192368584556456686723035777353091387469476234719960470051081686933533263261319883107077000378060738830784844396528490538878509029190560983158574697401362788876893377936672038901627295145638183191656796844728842755307193774100931348268938130533450160570037359323312319645092051127031766820798106557878117052418134367740509266187753577394770126126688916476615221890969750397459923721086821705642789368328780319550319961344216513398492368962743743955465291523863623859982068548137245678568353475284113398369798684662627716647402842391231553621799572308423099010715805361536978651698203063925623613442137882181150080132187254545864795088024917574649309993586219047200581415441274054178709298448846526805246790071071987027827088288621445788343912340856705251122678155337410910239691209619708665502874114864843934327284092117916265779631355405472870649794444260833823132402916930319975461805442204042483841778935151372367218101918394355397416828993875480785218105825940536218136974032168568591409491777148081206745622610936524105081170997202936168248847658605024120926603591194105312575945737134071642461732252837114131243952207995555589422494169338664610535471776616232461585875576298273559355167662568017574653091703877164743587821689177434351257218914711397703059175588712833811820241861269611798125179369659138693552021386151548540417446508354217749178404640818640082690540084268632910486103743600619941294327513072753131112826895721778728182435994244672301483475198257852748122456766002833149844280734121553537857873763753821413080077127664621603254872703764784540675223902591473235224609739418923203712070133449707286624826396990331787264503540872902738001778743461202260666606079409470626428445673361383972802490704617278786728283271080086703314042843108048059852040931505955700155798312390076867311240475399911126594074933215891190484982407581360859060501144257391017832174790080241551394268480400676663990720128923646771265041801902941651266535080516641133938005341742814823852657560753564125158772564412779377422505209451273484589856077368489824568231442603196029869348139616905909367968151767818937589917593276366030533689950863698085071950628191486591889874116262756757144666686179799415043703072653429166825593046602281882118153559265144832030396274594595085324078624067080681636513725409378215346707126119606170406317035373056016322498772790240700645939251455252222296894761752309878887922416418270298101332121050156633349259756022654897594336880807312235097230864408288159108217139922289235575925146175755713067731351170702020885034721018042430344253410123577929594137513187439873628780472092571604211300692347569933506277797597166305151679560207604607955212839571914241273382534048293659548842994429664249023985381141754160974275517187125736887722448984829452793157066940851507212824974086145750231962720134866700359232705177983549704382633147055758323739715605191923633637653882619976113565419245310530765335431223266048847631716638778341754594986545355843220993234588804678493762299075370771081675416891608493944501755864295625606640054175000304582019502682737632246985592183640443787545647495842655220315904910960324382112727482680808995241358430133676130509421211327523730226154340335097515700862742188894943731596671777084853881865563292704408340620666876679257806183598615490138052845889822697836505309591619734791223883958497128524614339249861870413955964218102213152151092222880442428643719793162104789887888635909941514604044603257338436804696158871550573290086578614558061158176877391317516769307966467143578332723255370288018452974311126113166000536723206885629262375484409785405594922659726747456522595634177292030338649308038929749153151734147961891954801305986889709691719716170215374864607631926303296107842136081702538532998758818066975254725686981218312301554347901367792432551381064311065438324852587236831414465156363472697376732680014897416179474342230926314602069089520000165522742682913102763013145592904341326937057349042187355731455340946990415196748970515119570388773695387864948691545640498409187289214038221858553768614039889014107152956784395368591412692316433146137296456744973588105041466656056648487230027421875736802781985170247831094146964769933907138340631888258329637281067486147534663747550413402480035511454309658509673364400837046070099035160250488417876355546491430502973801085503039097215354415283986266133342271215587091939573126943198834399549941734581472244621285302606764180940270658809191968584188569587758579467258541002689400476729714927142916569649662057048785304290054717707653800158555778776828139037686113249627209559241331148792627156622303763378038930068852449698194614720500936451850029124929404842180248311671496566887091983788370261713467855436664139355258713548362815133363022420881823809097222241813970132532945085728412613977804378583957868840603678438977359579955684329167536291584562306771313208772614656149088420953330316795888159436908648653979626445438381622312525077628418222196967344582969015104744658912845022013531576891678995736503197381980226568946011650327488380799586341848084590038572456170786543496393485349083569404403320102357552698284742771941038140410541622455469959070631493477966513452604824542383972915468621268818432247591607429889569917970154022638603712636161559733665269142691282279252475953074064267550506309194744244011273414503708868864278174713465653537954233080951530893563860969759788037000978553997250137778897339666050394476121821620815761764579204648786491830013221831508886686470070423211777264364000213694563536959725472991371592866877461226633700775759516319466559763905600124817137506809655409437182402131438516716679112645624154070220812492577003518031894932002610349723058080944299428891563743723422688657727985286350777488183866039086655863953892732552454517502573391087737395404639796787292210272965519693345309818050656708877946773068530045269092967399911110775826109143495960431269979684267765699716659463203516349943333392694417313093990486634337724632612053811556720245839801242031035034384197961353836801636070619196404360871336103033744919095153077899923474055969017728995506520608420677889859526705218291050531624641865583836864857820320849917502300286967245655875131231720458773619394462362388034059031791404593272694985019335062006869735894223481095782027280272422851033770765409359579433839578951076555747602347498186139747316456797788127196614124863700107765824929503979611316323112037944782631527662994454708464343896983546894068718829266938779928210991026606589617228731196331793054407155686616314566882971358302729374772721989291192100466426249524468086093777763697926844972182101222137296534782057004689251687237589801403809401666205180409148708928090402882122442737738940590889877184299808487562724624550307446998175228833972541867508242371716082586974019198579531406201392308296745437901335910706774994331407002684530999682944744411115785767252994596223109359411467627787983578683364856038568405553073183796553652793132191701255297998580252716260450450813848421928069404847728184204277702687021616751681553507535428688624712622681677643224066759849432280190474838194173311827425195810670970117070868119222209847435505139496560907805727843699118660470520815539978949983292650700658884316841722417868211152892103012314834034704128259308477469989100629551617341947592959104660414443809618016793785100130606126664592530238755674548469707225221487788289759203921817689393121865200810574263253658231321547392786642785850641706415018575105366803458925163770766717812578040693601397397158122350040077428998216945502151937778768378270519816117419651579091501504365957122977476030055766266573384697654971236912407979902824999033882098175700463266683705991629739108673722678545342437970376047909871706969688132790224565855277606486613105776867011921457673790403516881262229621658676472545297524606255484569823081022016936053778488994907801298542142775166746534393116850827137020564495796538514270551287933468920928584757171439921967297670276433957747524948786590362524023778328008853807542468896716403973450068708098028300881749537346456983641754328592743274873789354340061710268540793807888838502000725309506203132888755564548458568163480545071220948301382324129422158744854246130641624552704639843122367092526929218377290641961331107612688857023918628765084919081961850949926929826202306011490521242491329534493829096154888871069640413135833537707116936074530043862763620447205407860537848881257733025854161223402446776231071952472616925342373292126875762849473857991613425044179148844241839630754779705949171906113189112280036485039673292148256374812584127523636715115834908825044701135440627369658956307479869058222514560227903539382853316122868340653348956327612752383578551937473595710679088556517033750894053302772728124557469149235728671576806115911088922648789271811581069831145183796784362775789847432975389124214285667898408853958041343717703679693930139633292047003271921874506785942287477553973271063551512771571908351226395253664869662362032110547289360997902793187836467033068363733876719789419407664748032681445488253800983535324675627359342561475135533642942804702308785292715950730750304962903169606900648503439271694332398235047863664570380227426140421503104826243789142908879307717258084453932020628203264679615464332904309186505516400930995301348928779495328257872162959120839444386529527508609351797974616933401563090813412875560983525317663685194564392051806867708340061442699015047030966347441720204738663702556649620680076772112491308781525492455202195498920177488302406571809464312143730956685587600920966164219348688423019806962865125057432829929869115348799463723513463706245048752014354598289212821308294003889979942260474605625313165127255062022333973278756468947299192452759558222150146955885874855722831054626188826306330074410214053621761216751368578226258295057027171874768362005637524034114845487867064256899264844621846414518905915034774641106340906258155995572600503754490860737292515809421762669920635026202953599100179090265658371144179308604804689820702433102207610352445333675795481626675988683055644618185705042405328150086142401296692134978865869498206531422764395232263927729896919219954087708908520807803429456139325227784567545764872762938890714779375832074333922818244071411721001438527249693187834972020371986018470202354504273005564713090875949953908938100763343903967658781012672721817094845529027671637275217415973496691370548801071016057127346592033433492250844061172490668851749820773081259199480889271400331782914855565647727635822668880564315333507379069026594271381872527474390146980773864200042912651792926459657222401653635035797308627504813203618483262101730245076247589757509003036644190257965646404072674114916068997887532608267337543350215928703911168729719144900017381149132856186285668599872804530781181105995069935600653078304835526152227345784754178243259894146823787982796956537896767604901461488094703886122750500968568133134364875436816933311700562286771427888314033137692006082978503388996034336166099013877134948158061553044377021471751530394726591567433887620349173550310571992303484251250643157942821272497524065409199634296254287411006258087875136996754838488078659630986387511643230893096810493043129330949280664882589955351601560902932802815815181923898094673689900263058706845288356669115388736642471858901042846818247276925637611450206047089686997867488268519699750573182470595847959258485030177191049819585139021062799447276720375212761770642656229020087590004780309921900269189239028558527455976927934355468939876953334045072083413264141008387116903952580293223352525763117441634809899389523953071688320036857515414499356290781508709835905182834711794560793485846681351600921322900098373027252372602089441829493948918611247885420832512798149096729483468980515643783183403144027811788872035419409435911130294596711755908122431440047547056946536974898558050328146291858053338543470031493240127930933646590845299868578131740789663124156536190758803663999743881765375948726102700367912721311925954269302617518515052895517338950512727544730998731174622286378927170777531060357322827954481884422067273865326078760629293237503316490517628072396718483066225632967230388623964297404338899976546813773367391537333827393241650076936436395382090024057576048110940537855749440713534169976391725112593233235586313336281891005937398991586925036951553802801064639657829284187008107483710946407747593641340240932244355501099977768045055811271533940488266057787026199700683308281497657828404059126457364586819518411798544168176768930391259443940738542631780623128399885173035150970632221623199048799487412295481456163502728091851611192633318146912665598990777913319899018354052504619725606491873289651231472220215909486149776689597298128365799426386926301284115829035445632831820236897230777678030328116396637947199423630054354287861069391972632771322512273952139585778162263836581670529205991555445334574453799863695865420238680095441019994839210335944646103758671507710160355131160392257446334448860462633642239447023934937495046398124714313812315727824069378388405355029381469494140981098123482977908677950049690846288417661113247027040961925742489738889010861065586978769044026362593052077734313930741977263594306288311195056324414937326327862673282258011661847767537839492436510020334658708282654635394849609773672127752399542950282098427881577634230705839394021203834055477530354743623465339034830588385853719436774669016400429635016884381967610773271360755270962619345065750597241234094052065734972749487404897179174632056511768706551287949949664426990275234854125800954244591353740790926939474589895125584669456701751609188092546430678785755339226737196086725440537864344057672746684226968356069337101278971653899472569784965930660037798256078440916523416282053942043319563657982592834883322192667652368924623627765864562650089324209253260637681180867482835429180045982207953409255524104281729852045333478078506999431667532004118097570874096523046188431626528161750557748595929974737370125123000160290836800983345356229424405014536373936909492387287378454005090785407975760051413425171765138483303654376229345835810950343784522496971765651915742956777655393314228835947363139054383393064112104276911028104878805181045215715145064532323494475825341429854563476340184471227873980845381445780324310906364809699479440066592801329828288990749016823683360118984834722514969100024918612142371117174551465977623953656206614934262174716978000792241593744647796938263426807822183793158853470955676192751170896834357080991544658660628720896919567384371195778418134435039003208474916640207527049781437618259601470406276675045817993580244985026044612622067820261017679965206853196507630399874756676760109329061582839897239854163986465242889211325435420675653207179400631059874284388102016168153463314255565778904057374342291703274498701756475277659416543876741421867743819031579391977365563625119504459386547141129593090290183671927274652433652127998744099951284959427940267367813366635804496662088060322047086105127645560632161432237772574951890320122722567659545216983420832639672041967374926278637995984261534022928062946238876583985678079297619400597719004659637144980486841045283098014827279177232275567482149697417863049077933633225918534415992940387204021304024833682361873662464052931131883371308535377390044202087405001838230769599682722004070535543043028385919424796415550241577152456565664825124115306652628983386241134235874412621746027948485624048398477422884979707435604894186053508137922609006776534986205314544749436201359825676400677157753789677750028510421400766871467839123138832785247748276111828151141524166146314417569995789460382769130540058336582337828761295929839108103566500528001956286592392289391243697705317378285246705945244690089264459538885501641442063065115304978222598331354966576994309503334336958638878105509208908168925015299506206308727350296407893954143652740690245729599406296121725507923836681686989678228217027065438925756275442473378527929452219099414724075231673615066621013581116196006346704542573327551146004130058937766961806915167184110908271174849201733960121553959605059951258424555485049999810586755446513612344626901868863651459737243541754016960293904097227248195204802647258049583989222519109389519954663527654724154962848714432804403049429904700336028342773165246104970967970626440675414225598163011339477013967021959739112926178741049034222115923238633994896679025422197652957018505063012575985809044266728357732761079859965312398634600541776302935391128790474820474210123414519869625266403255535071311785846656827107615516632837448806258138638355107939813965078052029291702535895117928216095004880573700083389114879994072690770789787744388970089218380139953939034084440026821338934304869748568888518931306419972446917272325569870104371880316931930490231481408867959541479099175122391031218760466383695509317687311008841261007802338968143361388660122708838729491448195345063387471304357903534526445474927927830027672133496298877272443988480892582829115947405881149813169953238586033560362225606969278868927586445770465233479212573320607014091393643783569416953788452218668901110845067176646924072013380336358326047671720207356445418790987907352358753321968274904462092369935440662040277341815224840759018594618871847463294655127802224848320380296060159591893498785436873898520527439220291404399943519199958390932657969933428344734579553030893573958955030434023162588396873207047935228972162941573072235720126182270651176748667832289251621096858175893131390780887761809813294361922730201758041254903701158873435040060506174868080799796884386224496379522145542661449573828444375446584461383539229892944703192996073446524079719411492939021155909483012266386764307015331805890506279508854763085000245854058248721431271312440511269213060768499797398131204100327425280514556187732075568387469119258635173869555718222452051112608532724122975826938082854597044715612667472540302085852414749566984350978730351697438020750414621557871347676782356897966191712404370126006276110120634826276400509019732190393910579692068207864844290503360822780735244581843592549446384265180448991826320731221227709835396704054710643374056990973944795278573024709505640490224467280655805979834883745242379231791328140973697606148761965359040162389179760848922036711746906820602724798569235564116713887335400571570910973803866836589443113503478278258145731186485448295118452868495326741148658944350540826968429670721599198259351976952407190103197569877944768006914371996787213225043083433730800528258151888072090419341741443435460995937534294259215299912707054824144955545145261237942019265378583455676100995043487222730598901170482042404484358437660203137765590745157383265669301849344421910324612070163754788347275842164677918638286096849340670144490860622170506836123044314241630711907161671734989039584330071819080908949148339425223467269375855096031421692902551661466375296749592278449197335545622948844208239454954648832584818817399490865168461376574569524248008453021711281983577816802846654216328450039267458540207259742631574561641964829986108087333667524347214092501568828113064970051105889703479340123051099138611664782820898212221429092399698338075826710211971756472881302461659268986957828790818335760948427908266004369237976159539553982908937262611830857359574419194385273353433030725347648446797023279427724519613472395441019151678866258452990179916716138770697878621948948309494632183133667431024125886050008467995451089918123077067723210872004304957527901338884565019119899693784902963512134261822776777912283876749849120272905221606781121825107025743095061875178012452601774952459236819643167517488732188555536052577871248757509858344184581169080151106531362028858370174135662939595971148388990426848255894156719063835350791397276909783747283601264259977660119023867821102229148993664942782366251456390228440801941997175741427646894384480685709061439829453661104895738747459664301739955060729259531928058700308677334373218126641632016756912596422300837532405483424648285300574273438060514846606403054558997875598274310478802738723131777213519658021911956968442461920105013935159533441020777828995856464619142098611234461716906247144701621706448912862959452052192950180317561750305083310607369791938851817130458826190899420427363026773826884453787979770200025598451454606265129213619181138891475600248105251817394457206956314704436039884350455839951187806530874231489940578224069624412564857470522978930701135505889013139253323419693844654583250489133219573399464678651378030500174802995582768308308484922033502146326701653348294601718345316754698450553619344988515899518375751210510532718943627963283592365029141805235624151447981243778017036914752636070854476879032443430505642629631338323737585197633778536813537034588950334188780967800069788038652520193940698798195570421754002281684235350962656953478143190921872164496611364207926573962424095773614376613833331481632267671669163125613360014119921323799479376348125540119023378109939952024741604872875538946202095563740495985797886817708635120902333619852112318717199238467122245889749558854218735989378237040345767858933380379468045060010951773708603452151364341045687159353942950893036236813439434151569180336401658023277106120802300247105594554812281327463387108407355278603039976372145492565429351174311176268598013501135391113059075938253385346479310700572719818719210102416949110684547541410339061331195859420607868276910030472180338109867841812619745525784529774879755194095672744257104932758953931847507723378544058642023862110466528581222850650489952678685243685316683919663334085193781063898926927936542359304251072113912436681318203750192970921728189498460377044756564271745224822334188941086804341755617598528999478143813880051958909087961094388638929899405635656042880292772323826583724880113898821118181373305712584529743986649113690511473299815202647279952366595933916867517770031724379668819094805276158357762084260666577475364687616751848939288792020883893933012522559142440258361041227993910136674759578713173081101636050792816015859568179561414073140265278225273967640061886799330677898026053302815662703278438515063095381317950154589558558025441385728856539745316649197145512889604179952072297422841037747446960886103743788376967855330283384266577056666374805966864438306264918791533012989623826771257927955131592895072420172797816822426536083658424830619425409952285238192445463579312606885013214545194976120592162286607192602414606670947906332851782865984636001463839802871175805874332725156347893890146052443452997565472771528905288901915316147217890689045550871561324273531445458910038594063486138755546932046267482830215228307518841069304465102334736489858216662377027204341987566530497644979935440352546658295613056845065066718530569000574770323833602918657261601286755367413029842116860375118169070485086155593834475940569010003528331963988251837262706500243916131228365354591033190767065902156404679274499971152245749924490492111792051348610430214590972327939025493859888822301326714685274423534856930051933598792038399164108428237673927647325888223540861423067406861219253551998337212822154023029313630896069690991219382165275987438171452330041883904632776549346097300402703328103568713099320281315509360994262925761737435853302540068407483979279309082298574131150870263425009501011534176029933545063133691881562404147602455981838803314587749752458565024283988191456840911444167179763319904069841836866314680542363344713815184978633363785056602979991911392452444096613933884621235256816937245536391397606953021676213533915199546084013521455028391406185067745036718506825991614969698767917075085934339905666275628291338938939798916738625443819841599896921310811204773252557511478890632447150106150620220415047204121953890446231671964064857791386672936486049856003709742583314879778414981667863492514910405416160086177669531802403414717362712402642116573069610154631723406461395932428116923240808297394800947673354628929947279934307689281095304249982582979455425695830276293548317082534440089120153654826581738057227767584306204724881828377481223715468256642853008214642496385354527685407629151003298155882560038516442499936890950237251487469965157959260365629281300210337907589288816940393048124774216590439325842579032526176466995703759634713520114787865808141925545445622112678327132021967344485569913967430070030373902287530901010236905449349195938190395519367474769242751712432031781354161604009833366223474750477022135583613591563596874105749858610784264053187179623679646315590698242541840941540658695401014977418539148257107790648212949717721081030089176683882752578493085031806267784115166678358491707081878338142285375243142223865309099464531798983464495345507578541035087359034121337368389859879818090124160989867571225551937781231148978067978756940538728040811482311287358258568870582972493510145988804765061481931969809686180418858105554313060655762811367703989659443549435813977753661559902911725139136617370286606248012558004017347548381904552793771176941289035152417234531966597130673075929315210568142326689309049979639646541349985248507202046121011489605954312493754581947101581904584780476102422968326456036656446745019763675320867111433467921644929844953237795002171362505832154238976040595040865820343504372718686000411384367946447261913548878120650038260951957057109905165963495137663033929227324005318990733098839218289680956415634894721274632975987138640777203425662433839040860067206255522462543942757206585328287143121065417533596214426818557905679104555778581414098709682331628975068543888182130146864343157782145819865061358472667038728546410745770118380998555188598577675553381195031050720818438319520601779319614869987928216127477817537989366136219878420317057526536035387321791268576335708614996038288274102913557236294875172031723387571088814584582057838385957835810728918981006747888319381193519636152371573550685390722529961168220092242194833295713832266531644256286680070326196482002647061805410253837519982726304569470656671737707116987496760910221518225625849404313796305323970605618120817372697173284831507334060408534761805940391976591319358778781864666399400712646725671203163623514743677048116724073502787203587192532580565819374664150151974446095704899228262102575349958287834518563523561710644444015804898240672140853770565623308060276991086223929925654442680098432907426071240766792183629053848039842272543596961326717954654549786909136661166916030344825259086358023885016277620449624181063035600182170446475837615305236246335694546907092299407266250363090388830245342792825782749724653809492651161381634196897769184325773802827151300806319230637460516049304165886572079779618034892425382199551727331113115953286420290857370971356116931182865842542279096202652251686791761012972862050918291844973890811077811018779040789921579311549780007703969398688911879612489589681876563239626116690475365109057681668773710986168240705631796436013114941726139085502739297411845452957057749664784170854088621259191382548124933370319978078954171388499553567477262575664547508509920916762338395634866538801471014113747381604047675365908018897976981048715992417287770295803306867303811616785339151686325896978957223003351665009384824301311240912345305658385255321721786959134301592586066518460851770855169383794475656400130187439943677518498603830059427153388572185947936804047735550996572730518568878137700532458974483663788584785571932940341370462273110822026937376897084123093560368689131520583635313077703616540828064358108503603817809091078861416417231237279598090742081674488463510831655599501378644583686681178501148586136300032583296705161991626624276145696322667412847986085829930729060600972420360941006777507839164405675063815839965436823589875249743324066098279358283293937697289644134905665807312010855382018646560798760261712802187975507905567649763895071587849768172745692919535716089968180922519534910816342212644098438140959584216540450085827280016391482218359111477673029686445230939878575241218824508262118283647893987183829177658759209298207478262956099899435026203862055867240909739899846827412087183957510619020251752891235254256303096031457427078430325191019968732556141893308068652151269294298490747229953843048835996926680814710405686686737155415811250124246211213247397481078502759677040669242112157746681934137457907218227604581255233414471339741903652179626112613874334562350686190542399203396333388479071431376879714987208759982543728217616805784479213399097134453312054593962285382734925178263713355093903661118480248010314883059366105517298049019229910606962097367204859116575291102236592663354217814268288455196384989193288623041458324784051035981748160785535134777503198951405890912888830302507932427496673226579688110299709713207927216148087718037163118979410899412517205286933583973903716863740491454972870571539599325376874680068879830093684372624901496624253569753177667455344187818161884465994960772139240193606443227141143195051819321501552017732531723099485625695281185362074039719676549425941646124921838740205976413550721951683938575656075344259668173593289799105749469400650984981904125269481620054151767756176492294900578662965270187432760131005107747002558090573180210510335470890095070231465346845998293732850004021936401053829312359816629311784814005417513472268264045040474888500190250853300421848071376534694418804860007618718080851471495171814400283202270232964568719851871633355352126846476950087505981677186861548926615958268838655857979899603748864782654207585642108589046608746567865738396127576500793035585810474609187251782214763341638090706786202092158120730674708102813711240207126466213771091093228914627748058978611811464588760690643103651406754618244501207587362337275882304918280869127186146075602818783528928294806965978326904846133742950712127827616672013017936353942688316566075620585116633038150146773874077637626719954108167511454868831809553601839980449868579090691054322756460634824787134032764270657887754744225743585125891249191616077518110775532635595663524339780939673415049048686569095767692759553608641844433904724011707480280453384275527671276109506052571974358691643748972380328425386816477000105625409018636104156829035317750190500347778455809387754424238223791191214291498004749876201293180072139645017436189086914722262650976057777749593135863540459565177614841279430975551999789037697877485206971258990541544336085142301417080534264830527264832237421813799716555825756586910713886784876317637907276111887676276366164738179982791783831547407810699307081255333143763594014250176088697389473929746237753475052781853094082606936179819979629289516798422420183525928351131633711541344810648233037183441630352722792427364108499933398008333888672386266412228942819857857590669290107602409170919120170977899936114811695449487645077638005664916039567051513576924286043141701992301937844030874418696443213129310195860005867576278983648092373315259514342200924607971131506632115009046635590698220636658165135910947656844583809267165140394668796742967622849553332587049655281375744341978767368626929174632527808285594925043951520464171782523712951349600435093004882113741020305720876129455293188055407541708950426519952489494355367987937982938824695334165432699013924103122765480667595016623714293502016106605031874698734086206192425943485304964239971643990323213580666202578270742172990744883889759180702953321771538375059076354847366372776084007004802660214868546124454455393213412309766071219548799629980432174013033844658092698732502082136369926650969991709005358358556896635077763101732094715206134456251182487408985561898046466566860920523302300044213690200682944165050343755372802004660924617051770946115992109941621445019446811397345272404917238631142816064350651209847331130860305815720844872767476849851716372841331036535783457803626001608121029345752289149103827508912382699176875940987623346595998228096164314518094504016267404233859756880607888817857448252929530040457051887630465813409242141036252586962808923062528394187857082430055026245160403579866134069718943678985271540842098921556905506322073187481910372388609422570373298360419096696772216839766504641432052406096081405073886836178297725477595597001169690326294267458735880490989163463297272529663383542972200218542017322025194688298716419553356454680039404542955669462671366983336029685533501307719491995274383690550275628873267048366086231503212412153442271365887603581497429736698113164965644411994079402735793140947956913106676180565340401588836936898662999980378172078002561530351284706312057339321550830335702467207454371565176862947232324360650784054663965684247588386064228686129559464747744616237204021596403793229759200113595515465164179859643480272744328366168738417178539133309687623889860768472662957033880154305153584073215306666329748622269785479807669087492582539457185432731408491223466742360814238000544815044728480777698861656762940851879497499176072566253150781962435554299840035472794938711816767907143544789080662401953245494956502205624015063591912517389912143414017640705483805357494952842072755621972760171863950209743096391544214715831375629890739790543505684467926017407150323464595913732804321600442158291444003464242469975568473805976228918545524011102927756442002515566224823308884114092800628371052231011796885619482512289373109294371478893223222814169131409960436638901306520187291577274032910721741233087608843195371507440553207507364850813612773377862725298275926600552530955763358317863954549625155965587481727238495018087499926749857441322081831774749979425661968523419174548944895154105701004224186941808674025838814088549049352732702554994637753472952898127462326027847109835864535715167875972679214703822016115061224015337756658700704344781007982400476936567748732308210148438389957724618379904028223291348192507873542032634889886323081370840572215298160281260309469012752742745042317998881781980882896287237533371894270005456036502959415363977825050504410229506425739910894122613114004374587183118706632330365709086176268280983485953979002520394674648669661234832084846114028610336558144970708881239579582291667166685833468560323416716058214227324093668648492812495445770541340083109081173698063630182931832625897408247369421786072594667693819378211440816596088950254972850079148533477680124809812786507142710485418354181011846118265906304076020441099194855286192039665763612039711781425191287819142500346194708469176016504022024758810030734661995107955887992461618838182426899878458325891108282523295173952740148433409600351788021692939172114614597208828300697656217792910218365800120043608233043090669049063867002119705015640208146589779635463150048666451037587768575670984911047111868852822185855980461473284980503685605846253986318937291425285866797771104519909578346667618225439376298301456350705887324062701733872424825900309640309917732072250017568156832388694356536004794834542201222282483099425036594374296939949589612582832154818210342522335251701034803860280260428247712690163453162170230735836118249372722782869834907027170881649469672686064574136105710947109484160495387674592605774787519522014271862528464040750708933862433605858990979732194345960880869860761973363190726758132423402234885836972840626867682886159677816062551257872748142811149459458059628323590548835936835000168517247890672015050989601675811979695599012948261953525148658536207391805199647808711111575672168514819335858998490842224737139829215516523044411719234276353355907835999984132713925505833148972215583967397553293747800474921904470504945392775299111285027330418905121622884370735377831979179554899696355384609985406254506607270927452849004906132330215005939916023412302378946569572524446813393478666520196796530122035009096283716149899017601852699779324292238889347690995551076019875413048025573981742254173818280073887569264574135550203192723056804135179768229915545366177195533789572895999815680854650225236615595164917124536034945489330685052767804313072922307847765193910663643192657612739549231857593924953330329426693573008259545908140478649370683385089392843755324918648768084571037055767613453213054225762819328038895001466331965929279675470837483700091047218152596426618491521443842095281905852613741230533183591362358197139615798703211745631227375015762901405090463958663909498223461506490082064010681502137170091194443383589371818444554377727313652843025762234018518747927203877664347574116345417817306393649119292991005742900524989924164715761247458303386298946091778672896782279632147719367684425487827854013705915258025260846456857567111436637688972070412221499773404323175745568256918798313481845463041068994623642474399069505570349963962447121249206689416237921534082158783981815830923332325224994845230007623489837314528619335461756093577815453620318112048678259910030468925202442423787463141872049591740796805374860735932776675852576769313837370675832129560750637399549849456778848184313317445458526063267431305347667662581507198305264363087140065117619885812895341836383838467683377736854776487068873028083395741891424617067824050637581746219410427557411762989000006277541549141192946135001887673017128102305588547710692477058691732701389723292856475814108768714520450197257591564913653230920820246795782552860558201149527195184394582301042336089627869858325974983954557131117866583438131415793330278077575873394290770153729711269015778005277223185787401547994989338020192824777037881242347632369300354024522319759977781642619115438922021727203537509956657967730306043123416551227794519125523489468145837383092888280641757939385680036446331185298642488934751815460270321939485500042363488555816195383859885509075357361946786718943592493964204280336063389582348606816963644851945684552741710078085044410924936200692013467340334358582961089770040296883412063000874585661733051692661118920056675876974212845586526211438008753005439904734621835779024602956290071719801616052473798218075629339791819614923449955879535723974370314466473533423916968080203750575311040198826328557823250058499747940678049454212616606137043700586436616444197574796294332208271932306267635433759999055941763317814412447719744951099186603322645976986278404536504637306247374682662217364690028486894541792558749506727159852979847944548299104054763159525439507248172976697850646250055976583255194000528418674278182765090723771732862709976533740358793524302980486416621755368527559653593021836252662667664997588851820955303220248065880848423643148598176299391631728752451845382548796302282452812712906209838842313662429354305702571087953896606556011416821396905148748308493327233304977160376290301744942206485154003370161947154387646611149450014663118854350810200196689164118624459489958537826053171458911268503199122153530603595145398957139715392833941451051262977981795920994095886452569917699605232888018939797675433877905773102932927151523266473715104018364621876593941873750008501260377487817479328203606897757904611564400957537534211145006938826383156775020173799764264476749114598841635443718512357667121656450652426281337866469259053786994752159907963528357704353580760482582666378883546476283124741429930825255098077292253549170627272039784213459933092003173609801454443371856070192054857571642780094122217147885932170434029070982301486135808159164669847172002477508096253780144837152076373980627220760798815300002013834457135575805045524662590524408001623218855499694460298116158662756794086126822974657569512294676631503127220447832197909799562313217792023638870453390831330804246329306730082462090801217804579845657767169929484618373470572566299036135898356537326433581776786878797154269995493442399123844360794603451448924451656554660719510018615770660765089789816351402832287131424829295601381828522720193776906857713242235283054124138061517452855982447609024865334130241103140831003463402982440478149503858417770312155598498887586615317099069125891050860939772291078693994125407513463165071426417101154455640662491512265285755779986060723529448419054298270546241327315634172616716754595185902328198668872851208218099250891964988344828820520379406750129479283680602465294703080329968407621262923337894181869464881593200781116133718274847270045675260642509164739533430042321455135750762685405137879562920025605838150147802380781861800942905104189841202204639843207399466769994151927553874619124733272377807333789809875598191235865460361867825659245806713030649163891129117250171755682150945455541583715228080215091243064175444368183506734229580573429790635984918729065050513441111244154595920053547558104566861473739547671156067162362870543535233582302949132292510579449824384089560551242572552486505302268191167209671571206172481019943638285473155058217153519352410397927641788137226007777197044517191506933601594648908158893145837834214641884443072304640426505203640695747866419531249670514647611906118722884359723809059806153964941253655532352900616751234631039548488992433947836150217441741211308356539571761001296871282778794179889189130529630780540867097870538114684077158451134522286690489006858374479657728746539325336766211985089782312440307004927493054440630242540941317844403948736254779824995325877149651918371554126310628585775231898823154307724877853916407760016517754827070157322865490185278188792639031759697284924886938869952471921475602720384480276088015205329902828597991094269743089652380092756349562567949224687503453683640216809457943918857637746446193246442456431068748793558529420816167907675359173817541304739104125591463310456569643223959207615611458504613466699767277131705524328279169646042797232180319334533328282720823627442866440890153068232385053484692593825292277485533469979061041770584579046659412959198055105564744026275879783276922338873942020797377988464604808311858251904420903885123221462917613862459523181214547776000592746560618731800242419373525448332958812104564502933151207385105538936919166336918634783216895209909208083735580865391985219257968295411371476898662195957871138779848103119009915383268325521598559406342530897984085838083598909598385227557266229910443555761791659801723371817272738376043607261927523754631255913245101673358484412296172934492953189168938814709156206833348673621363063546019740332448007039906561174283499093956170950005615775461879325691705756569687883453311645554887361949512869840470416892370635981107742661942771737206633213622712977357193548655724463451984219244130484425848773241690171977287698601244640016849139466466149168817924650058923952394963227398550468059908550088722521065645358056623224172703945270431132515071793815379641144480253624527762951761754467643103161308527543732777877231330218430831244679515493740023404673519409613243379172772412986156374847737033460647042807610258799264945573000723784981408361713296848300119372344914413646896035007447633735806308984932563318865374293116959397762681852899199752929625931522790403615443389645749570797868001919862646942451965877567893090871588890232904047585617223541390876320763844753264909770538561236198617218223141979668315044151300429411966865048107347490163537722599138234762728552304370684397221198476832797312427352498508355182043865434154205518031596942189950418168960689144366689783444224318770107780723950495848448866425546662094598575469471089643551036041742204029506837932914323823669659923714035864724173821523323163298066982576275239090304607663076801358687336198734231088041125710679689479920345922632356550475462452222165112257036004180700379942504809777603843036485184070550430181890321239273825867742251564104011381091033046667805139474401296403209461077293767562681017238645779602881037112558052597064422083876101119559270413180103414206816536935201941600217888994226447695803074110086347977490213203001693276272384840688088714375836922377681227081333510474483788215079121310115287914035506630315471573432345225957828320184142999393751013105478827204673517275605977494205102485090618200888283041139475387292132576058797501264069851808021938412620050911794282892518535196501956635787797578050884936007640397181460129964840232856801658279193928979317878649282107286414350970172408051486213396078189897847622102826671125107316898616657554913492467456720800053659821428822068407016419868645215722100475047826128690093817436138779295109751816969624102412213114246546741554699061347711232942234866548530629193838764639224341245568505521425625275458050850604510434557926840377286399234204299820624586196940742866456369330547069906580650528447345827029647603639775673762547047429316880882976108418223657623600725287126549969792320996106139049374421343080561608476140954210408219196168095527141229758057532944913070398856000380854790551500811740109719877800460982815877061457791774765744667473368151545531534569424463222904734417280150474022967342705416526451219446278533826277243928671616227752328091073010437277550453719014673643606240230413791388773076350654444132337345924663693853448362054884673226399773582578772411462585313796920491518155752128168527106804099310472149071412744022177637552520005360395197374165674515025394834427297583640166765941828254676443777259576213143103317731407544725901999270914278774524134978162307943582430483753632388111994201808440391977215442548962979437535026027444971114193976209301961038832383964814094269383354393240214682535981057419265993289070295140330915774848551240028463963282873234645337826526831453419450275613706101897025532335569786458445877091542319917793243353372935440265088771881047828419597037045856683679948719872104855498792104501159757782669554767235837448640283768267029595809819935388731613168067282267282095810697950931133921810827742568333992712408883002844704425822186867888204605137096094296911840310669195499520706047587157777962087186985656038159149814135054691935753451463107432148152594857119311999117670900658770201923364719531252266370742599158438191567492228738816253842418078583536748521719067315544467682485897519557962291826487566904246012711064060863680201312529385229897563183256047172375515215805982963497875515624405931868945317954169115884186416791573719970685260657975211800238348013850288115533719240138042557890385869673765708354692520910227685163074564023596753363994344849113908135455582537019637033161781832954461062341348793535055534386458023804535585422377157383064626291236542303972613338595399565279967824048193696782234697741125992222559923102889618367043950500144943697119754056900536447894620120893744576703545565451275579987286155739232267079137641390709139242408577447240917722179526929216998240701408711591767637174556197053448026839076920127154501737462336563813406754639143616122164180515954311617915865768739843337808584055228661949533381691298106435900521696247513134861365121488213857359452640942774129511926482548779821533201906245591763747200366731931983993692390013121639131664179343742479695370906326131954477407343657663969655378635630747654330663252763798697291486845849526253551790542424192771408332782221008616322871212564567436316581860694671382567039911722499131722988827914570070922426367420046008103927497121016982971714826112438225789220691890988632526504570412735962700425817975027676794681501283103377625598258276792289858905582643929770335512799212286055956654100462044450270090331483637139716798424165908131714092939159561488165257792776247431354249543574539816604218880265796826130387879894247215285004104446673463876957662450071380276015192458898891164827279571686120463625046275490113010959720348870229856949887377612624991727176484303753187352705963675013289911915360268732340966683070238412091339650089005726827915261374782206539801334350060684916621461051567695425257711193135441135108700938724459434205203903294474705005403776175552899941042941787232518975929967390640568363596591119856137096571032454283208671466202869517856581396732375840462692303072254635338443425084489165907881817399042272948799889732953333922041926242101232529320113216139132849498303789223274643222737660671712692555161846262087589378677660684472856404340654877936030083286145007557373686700677897180576127786726640888793993376800148277008276230442683871058519220681926558127851067259194235956109279227407597909712150811487163191094532991635688321260667404413092949535474803278761760529427387171550645261104126981710695643289971736951026888236183065641148360603960776534044907897286554204795496610518156255082875251215019248555609225131096210861369758868474969724153730605806789295287929498422344409086188885781602839221422058667488842042115512844972657014776723368904987311736742354503817355607527968247883041327005342514411423606872277732717040346158460795027765671982678881403960785606388576668952364317362704281460994999263528470404788516360241621964783126445101248221892300465677353084535427361244977691738413776915335907015047356280050979111235391914654803244659344972098108052260823458768011013680306283045325759725832034443605012610758137943922458917801676802846036846360305197846103144938959401456081529777240663796384116161642241320203156192753460276829075913111309211770297627529216208586142097832328133963793692967182563725866244186769374196152217179636077924273445753951307362036693250089392680000763249634639649169355492001590726339753735553613955575356189223037029952584588689395979914315486824873254977979182936052763017888246020949378623572814522452128254238945604770367859778527773977144800444426962253593439267007419267751400472418796628625369585341807486140046914475982871912616390378493140801827606015468685819915331646308149454752034478124402828074180869165264860794422892431029184257263315564512032989409023647987729913625389493856050769966276638091381943071654770057941674318154109548174342367983743831430146012583181936791141039726837036160739260196658681076375620111978506916195553732208430563865583809301312794408176290089126130596859449345742987314739121604869475793277481622925205583434915933998327715072130121660683164037878322496677569788274828323624188145070165158561608602201465328751402604989713532116712204559580844891633914845821317010998531202228745182287570707277566619913563405406251177412778144155147231847820245057182827488651218728070408759888512941133740139785991655423711035666755404939317045990000305286167573271002712488104201270512565742008809238108983046068477843489777292690297304838097322384491498991287128556968654809545459824622431761586957604044562966751954915548732656317156681693756561811052861876594739117616700129019883940960827730149827144246484374365619709614778071997145066642999108971252836909761892455887781138840759243128030169599307660869430980834569901461001918525374073185387207968191615825941126837635921725624718961078915548903513165902002399695002762652522443742014086576738668764531974946462815456994676375383188721984421786261399597211759013737466174071182133405587228031342305275988513996747035483990892917652103277538674244455845148132069148605018768729432675957466340175249020166405940232241919597057207504604734237563271928764718849817567249108314211528189133135237244420310230119842616575323129196321703760045257215853098139728205599227475695666165048356922206036974962037458307186804192343046310651509781168901074293616397172209523700352242525374768763089795564332690119048500670269438017859083375468642092967651905653594672452354844554126776895035222391821848559302001027151062498420171286907912480253935002909196170097332532041400293682800947254200020142740805479051839228530728882494664695254322651914348134880431346595802733988518347953363635158506275826946584803735108249286918777673593567762487733345251345672738604628153203641535405666198822401626106081399704867913243406468036598456226218978378246649106298529404081387664339485305619280591161646798048887395585862700311486983551035502389771376400615777356575283078634908582347567021642917113772981656205765690472049160857485597827388565278556929516669428013832059960816183901457033035740313561673869546165211619486976702456144519436956965092677360515191502052675106313563256731266865242311109815449283387029873795475177583742988064136753720236901071714963646329397781339938662101474403263754781379878744320809997477131031314565092123696704408293844702941934437920763768428770005600501948287016533609684884648486889851746051052618443119179698221771432603603576121198435728888398923484299374273805802628930770352011073190720413082949090160265104976369058408456265501313326850779113496854604051784027773967307256728384418746349973158623026642528425815039403174853118394295103529010456786694353042929854282385761139845161418127428043935803311163321616667598147764910677037080662084721455094942096302812412898926785725244529605939587612638805894480752281036032357456593234416186560477149864671207319026733193878813486762773853936913365412120795131136265029698644587597369288001889923645927942816879380366894232905611425098125182619404316844070380020638837524997026201918195336154242396930401148460830332861333708899126036982003220810872294110656987205727203737061004787965285340900080852156586246624027494431919552673744932276112256602769849958967585474694728508993538519861098579551006780119123799380680429317824471734423534247584481166172529486906719510079224351736061916157125115980038860905764988373165571621283783662106575572649457409288909793306081696637194344633553046251298015898165137866592802078582843854038611809193905782748021583327161945658685355804863081946239770776647138439118286009645634631153967940307561929174757147708280087932871239780533315330146980567654821042276631412036494635215342424770706715770917751940264825011520871926457146247171288226937431801692122488578317423899214291189568902147288675573166220788511312409268739995062004654041607501646284003987479693364502482034980117004709009084333736026807525776729153307351260946970594451959390052465568470575827421245488932361047669426221674416287014396546442270240224887730068121819930683604219701599874729792083275451569641460421347271197033397507799737122427279971140247373391066313875790045600567069676326995340675995600964425587453577040876925359529373374359775061768767809564126834216227314316078227601172645287806115323747379427626679894009309876407715099897722578316915494954950167051354373904773871815200377863876094223251148956102911790644243880188897512893719857578025974380073873951813748532505104321100076488531132713227107296247092532601783939396908823572988284210799835070627599862147495970216688541207192297145431803140516015321532220291410116437202849858166117279362949098367230104613732447002667565471778981116811155493089233811996185895094566972434421140570188301008400697431671442737349206011058186459174491074718465310889821929441849614328222055022540837047085255295320461497824354554017149220292611424383344156948256809650445667428567276717853211130980662967618485603970967959759348019244336891884876888995335354723010033150942940469852884095558196276371037836628811866883159256402751213124335405789444603512794200584012908555021679787074902116917536475872366852224747212427122427192950088149878744999922164985404211943705750987275397615845853094028717960031448692870403591615778326250645005953612812558251175161889579814222695244062611233624758932636732184350589186557357041434043284335949354946369606242346073855098919445080631078468182517629390501133084254614239841160541177875824946375961390398259215410457952289410279092380917680947549484071956766644490693385495158923245236079447606740892243735968540130448813137275433768218426706283677508974634239473807759707730719150654673539662633615737821566442901273564638105479316327622641409479530185999166421538596301257010353029801070369191687092351183369733488357214901324959804281050988592098823327188608609176435607400565533672014562879716043073706137498789396132157926524348466584859916060446556992635816287120991882692036742359564971864649349002708589587747608563892384323449005793347724209740816932647886302355362634285664237686674441434188466426892508014359283706159415239674913309938730437037636715121990523263491719099022111560530183830302457103568857404125025265135539917456918915267008025624134010660142597312682789761440800406244640227314155870265236120596684055479165339547996280869100203861039712392671628634132043596900390824786027466767479685103990753109725028377584519915434221367560641231995882539572613295733642689266781219179406947809571078910704843079789189592761613984501788177671652787028641415738738954239501947165335673727807472446025116351202859781222719274638178326839554297874133920723814870585416241796323839760100642242422959127142789038690940359893738398006790338316703166353543557135348068100140077115811940950305181042808502952921096444334843993835153887400088419623970757132639528442145612409637544311789819594350320766799369666684778533538009429688509846613714466851838674655227795842887059501409861570006737949750537625112619955688260305593745571992616982217992238101779874959850710010279614959606684717921790808661862702153379493665267585828096587189596422010928200130135563935471117495487659290955312457713466467077701711172407911901572651813004808653769806016906735142946522386376375557819859630924182801264264348038188185323818281254707285515500147901095516079176028421294573688794376843958150068134183817822805020342031280339521383089329002018856070449596964714950578946796145522762194749804005824611562005102588327815986023757112546562709947568108660279647434690638306842481231207236379398784104401463673782702964248283035966783999569869605579666262334566666384065290816256132621998057941648631963512592118058776849156996908605078287173183815958368655712032624001652510753715092174480620942880502158053588911424758230106093645609387554280059289535228278787767471789671173746036467878491349626618069370709775529844504124077390798621365608906368842830792343814735125620429897117604502583081482508771666550616881262729034400440155472640426369507579761745504488743825581375566776180810151319085159159433703059025856448697620832586157628356017414332776017685764166782154265440928323119587484617322829287039916182607686820051281884651812853835111220300837586433041686901107430192842984536526739774493595084447554305729047506841988792336252195226922801236083834926252896170354001382119372983185483046827795439416061516591555239035953595708655536183589932039461339851515443348040187206076134458390899542793422520122566506833616741037625927566539221449202225993363521327812953438996103392767861730908772573913687616725945232683499864477927179028665311568146362731923309593223273934360307436314655511825427591597761942562491021297633643901048126922798188951238204057332608775146480558904914468552121916021566416864214428045190416896690372114377809106447412022864708418535916397459915442146258681036941390195662274446773867875261326120047458789928136541894344273036556781617899127379674821775333195835830294556331563018325727656088317065412829449087348503858952651700575344251006586933397183059535618171051136341858284581284057611101464657699272595748968210118436648981449880202541366526009069116148420795533111615538806244700563962680374625346660268372185491551573351303504037433955673756158136494121604649534077703784255973651043475014496884558334968642176167290873729223990229965909001132191321863894995310536557266504742659434243719176447157076702976050259988565264905470240946347769714593527404502781468471205363287610649411150944716420175272157199157613352152250397941712080209564156692751898583639228477446060687734020586289898488290304533789648995361310626613283138900082239097238852562952780457686411887803964468781962836794661657627167242171915532294961556395592401335383641998048575411862872408556297769349761433121419538678772043713389358860474746166222248830850094000072398992551247200241910064996377123105336027742088148733321824478300682125863093887388571064688706793715170259615996602743933497539236327941411754073655987796189110354497121534052220172935378571884649489200948191723444201093267895743743395782578499415033193495070822754656803632157672601326708729981935545474120358238980248006253279579043840187326041938400661724465020279597881824597056946687200389527001306567963316051707638298335125164264755008949871740444870517900763377354547664487911349770173027292170093238162194301632248401487693812663880528336634658452330361249441561664400283127013066301612127222837613351371672318401127254385873441052491101455066000653041804740387976767035820931518843471613787914002520555904146631331113880075878874571165470566727885755777549218176021207015692511733901630474408985340418393667982346855851634747516988890608745622495837512002146641999590296065867551688073209641690391041922902659468874327620645607367117180267735183395224970655090422336736623654631772056826008862630948508939862757844786631230043830065925497314555668142030410279825387764616233453535783770650013453323898014224316526971945266149418804219989978907331019211374138096632276754185645609390206919540257504344216578941957006696610846605493838371651123805923439843922227649900129573918678845446540057950574810285871021961611730771493978389836326040063514217080505070589557757754123671876329836539148162307091630203055627519909091039710691133433250577570987842715962627527838259478769423011438281885937350516821052675962787725577688657503936773224765499998778854944443544824944810597341695830900294941557497247097290032814999067578550739164924212042662869966654109264821245149707372451755266331244245344729997459690825181160217934270281277010214968401279286823398334954823686718915200917872545118806565548955106030964676152543461959698741866926516425901508830673681283907713012701411456885895945807432043885771682669661859315475414933898322497716668458698346352736349705912340042409137697387126096784298174438118916263074729195289713080768065248882349133312443845339411200330668849587142993518154439077561252890760934278914219203312070941656131807731904416127701448225110973036055231515648389463315960551760527168509290959864867744265959724093399165374905479705285280719090039796327587078501389946950318087253165202180663560564956852353585779307144234100183870773592417993331721643832598307100596677560994360859228621153307238285093074910925852543657831117494513152736096263604743645854619545891500619970609885377677550732779909445799322699136797338347681916811988829834767178545566969377035554706969249344843807143418674289797974284519534347882415409036812620086482305389278092536490789501294569970381805019362556107399223848014415169203481224933613457498125232343514277611911764407622000108468046035011295763516777827687571824650185715082120773407425547367778443451953683069089011715597288364384897454330079524901222071308864429914649729305202752837867225241835095947867736464487835801997293810879999075823671318565597291548874086378862572000774801081883853968727010436167276611348616300706488970499054077039959099690082690078512039936360516982393815381672980044842872382394009084083659107122902864021531429068815888289040436061821283796941055367137939009017086387599295989953325065437306784736554353778870658163867923383400164158462819835405704778327609762696071040532249964689115971364092057494470019994734507011113538540486216498175669062032272884334339642916398266164157491285264085878595070220434965966783382257679128392956526050487185810457352453780751825267241583170938949223687728842805088799493283446727856209721440674412698658645759160214387802570217361296310029988051488490202307714698119500321480131072130239217450275266308755199977835663118557583596960506515757732445236765149425698920576445537454290171157466605638365471942821447936392401460767595472360494583956628000597861305011678832859700412522613238383261143456163649570660820114345411685298978599345719017154393773394787033008639547541087374103409807991250985136835464707769797636079208323862918585841254640681373496249729137722938765533537698944427309172835800595107296006286618310392579535831887832032134296825784623952381005375132250786516234795289638011786043928026412986663729970831889673628012480200219400971830397017848006288074052210042121227749219598471060116931686881240646601170539661241877751985141689543504863138333586517962046339657725378700127602348749704905315761460967006218859378399368680072017917115332698483855270855701625188346068694259932441188040844917804571244094005372552205918676743597928143384772687678339225850174210957891212208493611253838547241151772797467420360909578616339444651755078902772042117859595081548947795330449508090798622611742017931529161414838560311282118915533724369376409087075320278251634509711897429486161294339453748825700872654570058640323298254665327260289645361778168980771018949348138955964066222859777582983181130177638428700948089558827457606427482368664245507467711369496541132848583020732923065840430724900071828828816958932364572584413646061835183113106379211203738556098793575968747200740851191942778524814007454630035461695523940482998268043413462572754886386206731637292772791081229477070514837125336816167140884636309013813983763133554575604480086782071841847173003819685601710936626536082322444765083899748794201851339318868416209045147426022396745818964571453962234102753334802025402462417073635687957643865666174297978516728870956532246019803147437533345117780009106656027222802758139914523022699965774350399122979187375876724118496638727814184022443833064558265519804403334212869817511039755360231578017532272041673080876768644689490242105145566013886843082764772388870688880832226124948657102736874770332493735688906104901811062081430659312608401320564710649704778531626776291064627438819002052064002843116720291897602202475646319724869571631396510797337029816766076318652264047119670213167963054712020716732367008026837075074002657879400194630029460729245217607404941012953837319192568335747516509533611130977871431158758019641438698289317330474768895728697002182178593756372750657756988289616856692074748879652816479686694510690636022084502625428251334191801912442947605507817127018644038107853170014536506908875240353758953853229008340789907552845237760395361794386656014911236168809083754467564664861530119398660236115928763726724272856894202158564284223721241179026657176214675077780162036802503638783424551667299079178387033170048794748365526326421649414293110963520049909990386897826148438774073363604089868992704105266531278233265249916139587725242966073729665414553922552798675703799928959675621870602267928598726327486214889549969938212788459633727061460498469665059501148794572353816159531372787874461046098184597520147750723716370369886320711052815202254166379269464651692301474838945790866382682352048798700437856865691226883289296922881433074774050437720078187307492073873599159326215760214548813062873844658601643026233873459792019007221977291288521900470718908688926973879240596931041445839009902175325780197349145734262165559466219280132551119675724343888945256406575002926068685082344413487654358929031634373046435728342969783562800729243350629922791891323026155635113824967050694956999175129747124517363418048577889733784277588371152334879209085893253530239329421959657783388593381218632510667055947336185191207249077441038783018297397078192268585150232361748614794175857922135410250500970574317457530121934630287192709524971204831007431558666780027874257521851886311726808051525665877280931714199742190706306720325124097707831783031372473353457501673824780901391783538520918287354060503777567577741536548543862395989668809872827291795324900716817908907872855738697066266539865355602447432211819916942535904104014575409475887367502893425224397358045066159781848933865255949965942485657831876202289295651787499676244339669678281674739977250653069183041132270467828970994127571195370412016302201367829554257686675068138903046942315422065530311158992715323672213464446692455530421001277662442351002227960147121707566407323370341091685228235288096240393003469896679942966727354693343460404707887661991537521038378117595838432082622233112509563204985537452727434031744320297840521739423272420349777064252796189331411114287083136679945720451435967885559599680515388498210610442842078771853079896277059117729069481552639291797487438879619508043214782336435308495802638494874392002490816515859179371561254816486271282195226981465280250398536508318379656346580012405284717275641393262662066230826237894682567153836806257673034469393798251952305505442279366670466193359724795858846211251299697290712371471805994296444156627228626418827292498010395951928798315203178854970193294402866091990758199283834014095883181479968495003266965032745322327554033248621718853219356379002580576676489092700536926434143913704994245639725168499750499188003784204707742550347618031212613496444469796675789101521860245542509261166737645938829674008943373684869137502619039490206635170175742442755674805479714816055240302319360899318355058790544998834474205717186010336039988484151389563742245735796610278005306280875915421453171064932896141194332532188987030435679111346650409095349308154845387783497629165803597302071256549432307397160002671433065450296827058120512233518330338213434963067333509791438416440744179191816539721118073940894015406813997322502280536382909115433855423807870476940968913029960675726355666344030911714589203497926539675560570783847944742423569475210315968462120394643624140860067018737490294933317865981490811702251294503712061399184465440399905674896926742638804343129483947294286879153107638370541244527215879580026103048258964636623210399292400355408610429775216224279824056805055457064815123405420551935291486400393624779130527187497931309308496680279815974332470105803321722965752269322837831580668264261898272003643133254274352438454935643422827654542295654684150969848282250364710777724865759996665466905546272355962894634165486956459289396434841525408743113377738622874435067667372427918043752711592839995085364041955808259045960529398017408802876355672707026113329870017518652138702856886066266916168295548709984017293748438918438803765922523789572811399710735582296491423544761665651939919105805435515460026413224393869087437414454426274352858788135286657758029581710415070370487562592286568370654453083845100196228212469314793043663829220514254599520689706084541697279486750005792611316230465568232252313062369517634374384544066446869179119598192553624553623896210212539142237933285593977939572691610157471214084427170087078766206697639531190347382220344792256746840725652196004283931487953792318145865608950926665651307740363777694866716802402097877004820937302120659846720944993148448386527895432698682587376802429420605504471446803532654775526956554510454823070332889466506309343423994148897170411685280973676056913390165125488412052715149620097049547041511386548347025244070885881033067948538950263314507934631338984135863832585699004654789820421202601411202018103700121772649177853057879003325200028986102263314701996911375283470198201458001570217621931527106395770361066779634670483718538412842917841932490068183080509066171054056731792204541376832323213795087043115454752066835170640215128721210050713911404708336235731761042624873767821943185119554997615963476838278903717419938143474574436871961868961196955511176069264819591152420301523573486228246698386131717320615564035709893889538782765193624557559477062219924693390946689562268242186459365620912993961260427932243561951473467542557431536044503955130890996148872955794819434849355977307185105319705413750964884378781479956091048104510551232512313005228128247494516788210774434837039676444180841056445572692828856159123032186840201163964182744651793846277755211453675432819776397736582567582526387072980257239422951549846063776980920757954256606581738990761114100162896437350192941690124353748383939942872630343937213389301892835593368987521650893285414521584279652496515678272082082337820637342635168929487994833581368258859744296292519375310129191978675563765836070151163594376321172920839696115201865804749645850540650015552163160959661205665628072286740799876510536212900359390524447726369419080102597145403561654266837564013416325218873782870392127413677829584517913101493917418700822358815390667019082044995856066056739694384259855845390691853165784715194983318933959352907698750749022489825771877483275449260715881170561628494988655110085935660051225361873780652014089312671600513882145364215545944524716426414305362867103789496303033862016076463108977471635185244672111070402036696639773256784680014956365097863319666968769318300120429377024942257179370917026575369704271254163023882608229072273784340513060131332819548136883051395122587446190088403134969568326247328608730229741271858432318349597203856187171370632389036760669825578887145228153478925199717232798941308732795731162682283788549107318085216959245452740760200753636606875714634015816324062456404791993148613643158194074224692594541141676981141853623639321813710639855843676893013559685770591596082252210955492042394827830217876660222288711072207698902971953831207032832396838431448210263056759371354861264896987386197513580258902674165685063211278263884489976866142153301961413489540983807179672602331487289359712953321916403881125657789489513765273541021229476282676020855002314589534907056517476629572052923951637063514751922242337405891589261464986413277878730067373783521334831456030932911762235430920114108134392831419265060554349824376751072840435243951985941352981599930504959610084117095716652989922378224855408251966764513322438315989144936746963377927340389724581724238059938245099499292847774875265762685241859665823937666518013504678408408977537940847460655820672343908493379828570145664840883685796189894215989107728286290594592984282974351129547566721879429244301933168022906452436514549619350598624136589070556122950862098832768114509956155993245992921906160591910870930590224312309727097413141678313114203648665549377803044382090239451009696400873706156828488647196412309051143767708299369827884363359638589011042286975310599337390795071383159384944723967459488531005338951789311250554987410753685340448245136041515903538064411218262806510202566219997735299569502000569630359208445864122140695229759154260464064594041737179032899464953830579331046617523108698208347684488379025618918800826728288821778777375047771400282571622324732592608533734172327296391415111474504371983670296575922015562532092875124910378255974535073733022083261042095509134410591278340823175862178116201554208196769305949114657324320494530345006907388594856314882195992338704256698984122271033295102535576403914757002352636902771571378512312089929902127041849041367687654943209939170035335834877885542956829679148077277902220892614381633955826397137169681951159563220132387084135625817496039525049958430143815068871549561646982041033604743693975026321190174329341860842081578992911402356097302813350413166803303383825405460078526935737246212004689707488053931408821335057198672814306241961356882267298070006648761564626996031879725997379069288316720954767766849413064565302375324397303369922490800957320942217047628795908834222273591548566946820340009149063247513864051257145500709595305525443497375050794624652655675729664214132760085857229155310794446504219108790075007865494779817971655585588879171610870421921257393593518039122779331705474804967190357920838022919876900768433142056024488863249480134392281754512446205103307102333267040855280659589640055209968878802891095739599126866908304652620194347634375460434794178765335657818353323852121174979728840469945768294593148493757820357701249021765831159166010006006494131906422123611857288029260637152532237071390911383872634917296441996001490949319690144834546895730943574164823516200654887666694678750176734888287516945931684512236413898737634558697370820095110137496945932291061458457107837477994915351652773824224141510481723497896475148943271642622198262459743320633102288808972823411972321937054435502687303070398498120742698033279131369179669044187134726839000212794970838362751420109915339806755497454725719261732568552627560265330223484956579578590938871253903452451401354619406435958548341984510399942281901421380792775941239805075143152981525815017588216807215517063417470987696736117999431330087204714915185320442708077612720180935228087973455580599536298305169015647029847582962837036316214944321776059913195508409309624222474390831666302778121657960355873912046183289273696173098013213884963268705254582065359290766703723767125579860105588809981351672747536095181539807959062988147603485608817555236218135024923855849619521225317187893351348107471654709196045397116239715074376026299908761690388576551627611102019900824453890660159320169037110025712264723700441987886812550360258966269841431775243916580399501818960508147296796014394472544182674729236355721085659425700286154907667705871249308527420098379794280534130703823641158892422248908955912725617403938773995338623047241952987102829096096972540382537205211680099000532654814028778112575422252229966912545958249942695168057311655917380392650936937411353786294763501795570321658367927311086500014481018029286521806820386992316721231543032103438331584324610037205667618440506651276184425144186781456536961496413949344348721495911468875501890550673896645379523449869517647994546161511902703242158068111688942101955486048664822587915871157650850971773843740711394772719970940744536702770379521999424942257945006936691599456117434235626275022262351766293188940173209177776816831575089378549005230364135484138003108474501830609390449558957012420665041644106129025158906738628406132491990237711826243902636032657706478099480537346402128131298344688234887231940515176557242824535226602528547144114105165449452766686292707384088469747296312847394376848825409559149850652357923218095347596702338165501651300612756507112103217010939809572571490452435434992319404603721926672592864256128681850846221523025125269329740294660551826131430081516599931074174592888321862352602062749459826662820348959236594340654896511109047175112386630296301150537906062341816999831009777912391263963210625597468539109554438020393655528236109655694714515157594220904784897930901022144720681298655372587340398843082219218484988286010227583661324579790299523471515072315149299429269481187063710378619853058687384211107488595895381079401350660338087834935312939809791235457275098754458073928502405517727896957198070085770484047511509080059466406247340146096008716274998402107722572134364396221614722232635501508643015840878960695867804622919571187994296820880313277556763808108524307524164091224101475890901298668405615938498601697627387045557153424019894071199559730572107574223933480880693869023951363990344496866023124420163397166614164787395612747790741903505099336396087730647741267887491020857237626940677481585576410361885327699679639490781632724893762845314996091480287065221798832804330726964428227863347950222476478016213127869657285418151427627714819524626993174885886812436048059229294527701389881538585196242817469065460021253014615661624499170912957440880360640123952002202135066746566148086973425987720533122642529367158611972008521175404230913894943598295112465117679407204521259031200467771091187554563475302711305714092159755173431617351257944951627151491927343399980399198749993610156109920408316053915519405208986476369677687105411793861788329105924807700137364189791006541823882966363024160204440278721338762073597029463775331270311691125263979056998832117351245915651413083814603370527481849971630872161375835832641834912907480634041721927675756353859380333409925979442749383316626171313711557268880373844979217442731881081576420134378218038057588624548485708120539835924776817444493570946140073697180717213738244243058940277121938738113541365727459950466220966378599952543551414344739493947718328856323481473803350491382620221531573606215212915055823088542614437300849755899764235191254363252264410963033749008765654499501034056202020543213723481308838566672618376308157141622995756136024619694128849142773019154843040433852872100331460832195553489163176986680839040990692631991599044205652562661130082893658552937451694003699612193527432475191967897460222023192838858106688389100479117855821037336382841895172998684464236354307526427942837483315384683228483539119709977044974744451764902203556221492396099463509271896141962186579413829463610173602446759280226116702008248290047758863598785777578701107741056649686236566154520841186185639809455406379179184873632478727529563106973125038688624396074039190806107222716962131937120749892522749194887122907840482758103843211751296243784067263968849449523174286555009833740322451765414688380181745572155322687386195750922847004213260346809024654744502087437251386655797191112757316915894279517738487235184085134778809206283784240700591997186829742330711972604584353189684417149138662394460286795385671006446092038528949749027971179257554146394436690199472477165556001027120968160877291811092459500557262378251655789598653717541161851601212741082301875600358041396622737599327063558171449538260625134069507917495341900406749715857674278802164052691290998790799032352490813230828744551229476207333334011494008603141973578639431786820341005447844921478448423970863172684275984945476351797726504159945509435892505509373758822061567614410010132431599699658168910694090715171475795015392212807147941110763349303324336256360709698697352564127814906772848811724928432015545878016344067190332884460187360232513533993227891840060156457622363843998754863380780012652475552165914733911538717464043134871198383381506264079366526247471991249053632614383502752873842598392988638628949588277644350657746759369718994236980429357684597350779847442236147375268275439007026147786750357484786898554054460268478387024810584427526265183896435955092077850409228140950937176963839013838200045353713177414602042514245373104189596930999343524980252794907524460538724739077962566477832241795544557389068611774119291979497526879744218152091794906045730044084659606982017566313236328023953301511775471642899460790670261990601850220891378772308356129890808051721056241010471591638662095035069059931749974035823807961641124178631677784046305301709206545765115462169706441766801733134197869114362225877531596861253060280636017818434167756044122700348787036454613233622833162450748281305165716371909857958288453775685145969968473823309415853664202422284295726856105637253868431437796460466990557394531666957335300456958580792681654807019573536317783411780045937338125206299726277704807901472050300229745936403978679588889602640745087209556661943117801935377049194830090343782646439612819899104931952521460251145216332332585584456901827022917881896449697312734063741928593273352077651676160329332519457173373697779747578225742097339724668954082468794765884099553049945238115127337978393879628715669726078431602517245523343405475751758042557803551861669952845930417285886369188228777122113823394504339133573526961366822447294079482062690478770663882165377157422008791436750866758709998266009921741109057935734416685593271413997963017649810012663050744333979206065297613423398092306737135305506446667397951275267637431597540279469039624466316006376598394410690609056983854986967950462421941006815274890184128160688143898928473529634816311197433036574755923993538060702199308726852985874445746729555954109641746914052988811530545648813997959981496784529935976493641237955563869012812331340720305655567880255869701857905700131784729926687763363787576991351024586496144189096198712983977344538175062271654527482795360067913820915787368852550644361565013614073942873450258100828379596928177969582510638115386809305918769634180475482087978165969427639889890940061748636199454908011502306724935406570869045497726544905729575087179004561375374995441227966578607589362770678842897155657059621740300102122151016239388893757725016510745749203813162243358756408760232472002541916732869064151523293595473364101462620662377105060391908954477259158017336802521919897666470714435490499183673021715473114668524947630227591558995932525647345558871843766123208328367440640455257920246065398625906724313162932491153235365584255912955544529761004069449370628198451052058156599395959290826037223005961071513334500067439282496826711623294766046642924699145188120790355656567978883036299861047527856151413869055000418897983619233483820248251912945862043535884066256945829497002916279463457117044749242013079274448407011467689860365871234606965401172028668075646922252432260207372768445522373528339199690293168059542398966034841388215043042625733872403055860723970260634782132749857684595178349892621103231373241590820635152958310748630136631597211810361547021444563883802647973214535212059999598511023449914733300308130687328698884618575803502851952598428393021999423776502356312592439824699924775221106717919023195433210566558114627547408020701767584712641126844125729682323013996322573221185712280382721754984014117479575546898948258454141148748888532900878826667094820433188731793763957993308193920229556037143396486793277994004815044960957202302673896845133330138848132160335283213557779951283039150347275828207211725410613957183340073512845159996523342075297055125344643723681397779657375003816861464656079482979417850272463543610677299738059298904305193632533479803947925212865168217104084799084784610080666681402832046351380055924322728383617514224454394894498581817333667312323857711494218277335016071969874755736598655990405023553621936405953422559249183476433330947884346222907240415918483539826042268471957367380111647242317423979775496688834225541384774113680850957579745230653752219871165311553769110625484882891456918863777926643375886489712645617949536013237348158442092406987781931051293595371270439608665166367855076823132080650716814411357236483583077678464817017728136814635387012191479734808183147638328036706164263022948205721564313526849487384792501859595708290090357511875315214705943369366410890677650295343996775780372193039801274749815306477757694318356583263127408886041680249580939969644583086145614409302166548854267234138127996376167348175160794087084330788065076570739286347892199870814792712043718275205469510168502680408429082937509242997084150970648063762564049545006817158610815882919117385044721680131333665642400350481308868835572540820965692837926840962119109968382827863370973293524166450610386241880116256945987344691762663882379406726347530636539419744137795990168971595156212090654291100761493830607058284455938734225953980379001852001715559931930151312736398373748333645536559707396289468768129877275074629235853611708597362482624606376315030533792570277629735775532906792807668665661297844097331267473468751417118635823602282251836940545165477227789885893332577114496806618219353709043145750725025899389427049435271358252255635256190347313764724823767799365581669988860153819099469083263463089230002941418606503241259886449654753101688610003584858094386735697497935630784068309644491101896583931427965807611951987711575808224973333632695002366245276439209078831892962162890497231514605292559156611911875956948317883721631483101043650672612371311153978883986793935944033046724137207758258778352739504934506925222165558801860987923276513298161757232015822819870523889102408645339826335883137293054891400398381221864381048924548934952962940431906788601879590953874145315757798746909627291784738831492122505846343536512914548818385137098906439491790294145000697872768348345946495950950834810289525641124195804693421970959412191353666492147095540592433079252852752022880433291576701434669663019590237936281706062956126813024208689199250007147394522729522824641817143762474450442425160344920478540861585211519648962754829325901751642307656986212757000900881777636887778907183072976038812029772827582421129599415102111768695600911745446901046647636880304956154329882605690268876194891963480921952502437183590157486180820872660482729205061127233920584313230839215254544854250668383705214673198834768790923771007601966947152442492674993472829974970885167644266316560547046385962629351922189477687796905039948611822669469880432419122383488079668380380359762730023865572601270791098633718362038144575299735936270713851426746127217011150906417515774755402995645059786667437267389385572322443209932213593740946620573404590059388705401775859766974004467234819153239113353048400798412787023042673128868184732057283712118335282987699132274594548578732615247219937245487836348693284778353944094198468336276040669794245584665841853253955297244791311822830375598046145670114388013217431339602811501689040899337443731348619210529216272519847480848830801801944076730556196543624993537606451552879092089808048896866629339575257953713969772610646958079441457365492941686130508072798748247869334554721973251083848230441178858932667648988898225453744923507748999047279003749796810206974063117004953390222458001073809485177898436113955042795676173949034201720735524957693112339345856293494843953622786441602784870105416711374020806065846494775705184261826313004128471383380285752242452149013000486592086630969315939292273759836812755955144117691620642069366701224249640807481686005684659353595463044094884666311634038773271189920597347447489127248198075129699715448066204091708935721895556367451093399374395412391185723022189892301440215048128499187167349716085357276552766693245366803247158012630049246543811657217116475153488231582323415545310868182925076000596129135368986167382623723802780051027026748863822580727090097719331120871362222647476618978442915855282470621811538131182365180570515061914888762568410522319260400964073066976852064058548352594198264974115279255817091070898578253694184410743240858460575027272512710373452147988650780951124147553934006455765848425516963092977117269289745211623296579247873681031293396439951106299506371511344249736507672804474191578391905391684211337410183117988202282250956971150088724556397775546121039749157934931787326841833539506959182898403417541209211447382270134036597338570121666001174439620464243617605945790078267800084090812397153971287544924390282581214606874252304592170689271304303334571295882010983734053726672158917136206538485313575565249589553620009744862751975776816746206067572368668592713636286173190749985135069573887503924369485794489646179853883358932127787346713608689939592343922637041788541047190385824855385451230510449361030433151753943832854436478539074247158948628621232894749895579015512099811960619066881228932100733636188008452885635694522233669153527121083408916036365622505058132163680173871591710422992350567390521747790239428771228615402319637119119372151636605668102833256228689486638584180432177399201445750279284587205377408769614412704047084205306193680457208947562187779493626964474472811908358312761960722259502602611517743851941726915408237954575365855473980508852004271697824868536475748632197300509095324378947222193974319341889105262992025083665937960099142365244692021212680393468951568201347823736060880432774409766391828243360897518575640285181858583620278409743313065264800764681937750663731867079529625636819023680624859755395781855553631192975906176341609539862444422289498167542384089150197260724879368889240770234464195198137449866306160394649492176236393492412043680938168448659252501927460462983475904093949854987950662282645990376407480693756261630238979775512125858865320709993197713181983280639174489439367847141809335314801451803247359848277990213917000091096428790606323891468158084110206715485229237591593077175737235087670023255629096734180816714592016429906794480139109583332020536720156733855310385268841665980487349948936702500966721339483895786159307781329750782494479148075053427889632967001108376190615566630625230849442286027210231173988228701381713353944020510093294942585643209801724230238809117137969559619992351147143644648221430522125028065409477170928573247173543764524466450368032211046100486985549670248463912898861420656982585738627669012610266426888412048181093938810665428057790096841077182372873181898029441716124340219700407041417416331672998200542202127250574166573926373591884088442458247217448521149746064507646778317951737095369168478835911965231931733790933950372202103011001185768001875276620012736590191834449937862852595658500377688951912048290433391340973322077882963213768700660767475613386828102253379638118070579006029642492697297762563198416447757435600349244064466018498462400484345788439901540710894308608050770418873973844100460696105307391630380231950054253045367304436743975794041511660099801652789535070301961837645298568107704480590413513921134387417791427556743319021287009611481318937902145632285044976565968498802962663160389772685435957449652647340972493323946634032395143669509905375460410721239221255990943621648491820337482339232200395753118145993715344764190006510458886933505130025597472967802772056469132324097837232950131446105340879610296367661933364189044011630825119075531589625437285412699753497261754416967961463869102322971571159525067870414069964598738786134481550144211741391550700487223670470682959875597505814040762315593789955892646959543103198054611948903918958524950125143420031079446702923514365858526442371322003461688767520543151721569932923858823207478873565321846917308849505015770784658530758931551384159156535104914785161254679697576952853964400382805524197166375596228789735486259043705206382392088774975719609034303180119321420800508063834366281215694409089831310057885220365451604922846700828120121806248413574918867065277099642485630306880251206310265919084718495299969251525983538796110164707332059245550020037845658440642364641596886882929629172770195962564052254985726118454428120197325922215543864869475055528488373207159707670863367319548619679126347657953914991127568444207890167385528028368988139757956579769136578170954502578818340869158265557289453433890237735165841075198185398361535991100026172274592222634667663818180655159161994169012706622876099966341054672488173365872085169639516228073322546676014870303742739945893080883494101681469367883962659385535121001533658050136740720575381314875029807228374065363939817514856632674337338362857677244604162327409620317171369510022167862645775657389488210296216116618273235582845733386447949573317280938701209218007181177230758655596451680268293089744409249954025651340238443346021988422195456500739300295414676037954989353826004598845786195093108623608430283608834185504807029823202072347814241241878132819326084142429453076767390333486798654175835832149869156190059349354946857271983989498779717124266930829032672758284015434970906387493457947319913333597003430143790705650012677498970953107842091269965185384660519577828934648948346034344010193870138259638380714037026015289994465620433359288136871100328950956097906523150910786888663990559123413457271368734946651342354126810217430447382666823898224880825117198342405505084815059181712024894020449935358953831836399662387103299862930191628118465552877339008631357459639272214134858520891310938161377921634431982803670979169372224184885110334658166626625926135064274681814145058251048062750750554672419012276589011348178568406621206521270175650617114235013900689162367440367408390074102271089489381397851520038297466412094364642678805164117429106941552883365925389826972330785561234337372667720665620389116414228336959493656727205112168221907247419049471422993777780734609689822028900795746020392803036989322250440598768421797048807745425061075808168494398573692406717413392247538270260069016750857191380037030801528681834589010967611683738370500147774571669169390114369409475637864937209476654100396654348263916092693532023041793532719541832968263434607878446882829625967767182741741003046743978064982658261204023168165536126648918358646808426098921198050608236803907397889452050710748698921692714930873755435985516229730836415465697122498273957066270567594980405585345458013523727422513714434170973139710361743007156261812842933092135430308076160965597047919640936875623202165687031880606801422502343034306080935463127764631927285568739794814351283653537121463226509458781703453606946018244289638587046604073507336801690111700278828778921153320106906193261918910934552739693076094224629241798381176337291199670113080980337123988396224022405963564376792696169859537569941414310669814320127113776603568424239566593455001945793184725205042585436904953254391217482331799215954997760448817097551300057465228988999837601453712868509416211214272933971521667338079782356137659191425307920329433148161005405170540284893764858780760941410165840654256865277242690569327845256249473966372534917354335172842941991865229610669034432294329290855556444942990412228790645170324979335246417469408340043234050700956479865333550283433230643573448248837577121928225682078323510579631322558965850112939599034682349741875908308722495520669416117193930808132485215514356491018583377355205346110325042893099076923722504758357955621944021769890420016865564164747765470411224076577682155064130091194749740954034164248328281450690553504340500048290425287866757634247821654186532331129703494185213286050961745351546402296354860636478171304591109651211339756587906546377491714963234336653784213540673600168036310328190333641262129093135630159639811305712381997316950880359941730195881432066579402583497947538992848875061467347158758532201092366748609193536717270208305870705670205384623639807217184121031944050170272474474193779596607722713626314556529884597299980159756420017632613680083079778747953472249718615668172853369428689064163851441730059919792353048659036057810218917703095914363253786359750246102838898323266330567269677129725202184727239912405846055362178644997141715297969369504207083171568822972044121969810615591375862514198921179574870084813579624579096726455582158350255527262779025366880952280544088511891049701950074193194198400240834031190406751858037627667876817334057052955447914507926964511799497117380351095360648872407850992655084724956579255941477595865538519531611429006456663748953813054669274054843540103867999070101377212136757776705293657640054374965817875767193937233633465583015839608881955409243812120253991377377600084445379822056414043150883706963611392055006627593802821023026373744650266765350935039487730181169201801566986908894226733726052416710597851133627876480171564068677082681467424487729023590439400845121204636603519445947851246846583873073786908014043860632276567566465698086875196312577168435999404270677316554895512172107348127827174287432184030077582872902300003731670815400893256403856634251441107019984339302214264768354207418754510196007361441877311398747156985091831011960878318698369856071434279141970249476460685703970094353845505025701569579887929325238403135465424691552219326873392260508085787103246928631622095107641627477209326780165383343297509534252662877715061548479569810798235131267643436867736622376475323303447456177022660960423983451988030313670559385094912148622684360791762940702598241060298275050847307413413217945389669620124833218717379169350563437304298194796317216492180075390149432190081160985884195448304577751859536561341397158529206092594772067388185023715410831106169683808762019747790031777494636038476031491925753136607580459603834214209547943075297177049581354655562369420201903884339598846519419810123494776425928471593405928854561790013970452821511578482570431637415211263008608376422780064732426341897099829576277078013630076889995152662919206550945526486454193533212338480382624940994206443238395245892129104878092350085277920941534863163211063058355493429445270976439471072865656842318750804030607482287756083470566413707981369726335361547599975935987106225894822567926407848758637289858279143187452924345591106602067488261150405676274251291093718119566311555185765314700024904166339847268400616427172015458735283124654447389858216144359655509665700494569998965936959333045760099041828633811540026987371586918673489163729243102171080659005119243288756521308951741480777226409581767643277362090795928826272524308932105156756480451765610985308277419447004508712413133807827032842336364914160890527071302003753375344499670853384635931960403479100338836011677923098302015412524965766444979557484977009653084090061928211662049490041000290460297853747303766876510263831874220584264893150298860235621538079502730723305795594386124753076355067065949000822513265402674789430182450962235998104542536081027106062699797596445928768149926698626787916057918233600663680292605713557325966274946841786766641646112685511685882566841049018356179557510336627655890134664806841484063009148854402804418420459699536081676058603503064877620552808955502886241497332313851569322868672395564887672458644953424690581537299047881746170750381681789495747723836267543589688166224371698175072994727079906120941850003524581442473145449574736815279889180178974121234966181935303185116167570135486300926076401624845893328615296683333896300560326287295428916389106341900423611207804059620881955263016672780913084477341547509085377203486233190738144398246281984294257371859226844653202347434582571165516797943778668633077584645018311846460891685841649589458500178324662496766525704528312342602395686825462818964381911232702242086236036230897675228893748607214697956915190085912386057746207789424994465188998927818858023364418358414753606341541255910536034005206455553184254949339321518837685372787207765937343650688400976968920549149489912376982758070650949855936432409348800013700794002930238624445814403592805619045789770131828130322235272945165290914448648676126258948392195684265858485308008841210082101247482843149142202886925758768755238204885711766611940807706738294770108460401677039052952142384455058614993574545006634347077151309785298050267677681595633045520324332810809349243760561120368940296660764293347496861001821789079474758668689430685247643857443624353960381144841632263136316029590251407827086711961364656273337820958149026418965921444759817560759673851285606297566836455061615595495830169321476019719037105875610003742500043244908559010358656250494537444194926403656828564090963147042476298998754526071278713319043066719483749582778106919677974338081690052076967311548417855578325180424597177555344466256982411508779077063245232105486585390950669773447753225349992627547380926041038243940719465980765624861351738981387369984839964076360531149836534081150679102393634987198632600109548410723434845327503740452042501538078856888265251453121275496017379637166399234099393754477299964534456950530615203549813839946029051993007466273591998094492742622214287924949180421614990432757895544172367717252421746421345856791104584869447826431649460187452285233917300223962318617164511921620886279927083848998564434099781232871368547526166868749569797270171089889676076477149547860999297097398135278882250740935265590962438534369701760675792390485341734850948389874063175360444547304069026952857916598922029390508274824078162491875226183911414026270704972070291664733817310625735858031597481266580939369061191226635105088553558011632349748228936106402387878525135083771043582944117446226987224658228529683423286709599524713585633245190767997633617329834158690522459278493988185907512099020792707327560221915699831649427053761951495618103848709807696630224429305585664490345826859160155053070775612811044704127926398730097542962579023396316881985831899216171578384324165758195518572394588198694038012877177663736960124364586894381143671064719101946057788096934550482159166084375072329564988099286465423017915662815363347426095539484435768116986961704214715034436693938319452596292432287991485710591810501261739534749983537155974709646781099232288906785832632723461897075449863480816367030658670205723980172183243001954734808620158770699233808642118751650448494394923768784658007446132432428518992659328774620340608812356960496145833875523694847610805270401816436936378465149155761751168471642493340601901511290382448225150970317291939361102174425981731467172988824874660576235690864362821411108700010367590146502833154341065493630858124566963902018271900614759500294861308220911945598639262322002214999986969106377095216039366792465530093843612439173051298094384057468862876546132753456667100702783874576047200045105857034002630895289200162216260004311115130206970412450594021704657985895686913469403835049504506066029111840033214317770745396345200566599247528627720692898985975875480866098803346507310002564645010317058176290959642345111526295000813257846384277256697205042115808893997738100082895603345581747383797495632693116056365675688680588008669358517232106663566012247199171173111167314155792137710756500893231513478462056411376717932625882773861551744550465914833637191253014451281927986130805907695452632286615468786612928133080041104408995573669663113675619797995339904114089169915758350372877927176406636668406922623736310833709962857610942668598799253169010196549530140616945588266140540627941737125270591276543569255520660810040564682214414793343523530105426123842380575112893502373789822298362198928350678647652938227801885321498962453358218344339896353946359241677193707041243472405572653908932154166649233595063868089728127468113884752950172100733163852262156287455061753100965140162565099128209419631914493075366944310336052623741860308129703295366807170324227165213716871778386729988750977981640504256777613230567780350463738776323390739120440402767621435613013006838727914779380213148888982286293743588287988530100113360546101284203863124808675955144666767670752313131386201152002744938773801684221054344078831501377573109011689557109143668561413456508994406144146823082043862058418954044041816934324029382647667006008184816186139510209634733477327644108282640957809515892590196064000611229439932956760745900542467260757624019888688583603795836745259883811279989312141252985144564796286452985622912429612990960966316021043428671639362350627310439591646111338987016626071941488494641911724605236050212227080889453538723949831074866262962763853593912893062387232451138392946678947827148961514889156786600999824923831327157422438772935864165177860914786563502501265818393164745998924259464502446221818045279628494479921353750596762538680060338844675237348728643137245496942374991884564488262785518969377817916962497940320975622422426548780461639590850263597253488682106260658908582245933278845329339633743800648525875641176363619941945455719600296077064568919407642019801367776899360090474140033722557632937451297577538559380018347218973785089310201039913698821102682457887709721308069697021869255040659841623197631146409582100186810054921829074411636732677813723915016185427830819400971564304062130862683843530448543129425697104186337340171958499567400543135275183007397639144680091449307542333607853720464642558067991114681450351951716515698430803218068482528710404088541690474268062395207826818350078108946314099020460793076446263751563676240481600015270133918015597218067643704556752988526348868737452748453952642781922728052715227323519589800999797375464190391026641292796045626414301367242393846371630459819442262740752681551657398912831610590113479731908910530405877492644872617017608688884542664687232020668944818670669956784291645888242285759744800225906728879703596280791223310444836772641703434922306623517680260673421529999876064985855972652561475498839089422370268135924262798897819892407980506273967406788493230116069256969611302056227131845139316662568766204335558412731865362591322466364080408537008989330928782146833634698287603964573049414518404736029646885916063114234003799912779784885325461036469501654063123058015308181471230592592718277885652800923613645487776197304979372792428188180281686108613452414469862252362983187001579775467472713439714279423706179285699879033536064209388040365871302189954325491806658784263284265832291329705375511759828659695644912075349338707841344936147891440935975369512363615226940774918125877289963735876358666742157952458794411449739603524235973082662276615095665301535411793976322990827133362978518467903921992503851729965404812619859616083052034617163325847415924623132271296011420938660648278393147367864076248502020334856795348185406878232359479099253462851758903522535768863849469684354153914728157919575031494712983328689642762646723586337665075650669756830834113575552399258687729427517833767754021110386148600418738358441919857205616418669675419847642349619092669825963540050233877430654084849369678864303360402520171039003845144127915962652326857906968543128792163213429157574506907724197418358896470443140628314275871423595816297145564166948031341792699355859027645351217807481475942824295068506682128449037106562449707514621657884155331334759500261688191759378215787496139232390591576739228113824766012017328590744810609690537085475217274022483340536575090350731481195250202738705828306538935487056707314908861403702221868676942171654860520983104882875031581329770760084676611291244681926520780584074663038284998472355540234126623268380265407891724891161954215050069170417735705406518492985254331402744396764945348345162271565760048752170090511420689563494363709828820649768978202572703281279464314314755353876678518029847981825016213324441099641533309629368956633246952718365077396237018643051114913319661320642950281654758513421088002105945284768991300898045398887302488183630782167501531722247060156528177102323651929368133012170206735164307201402636610747496984092751936227200812131349405761128890152138347443644332135434590646530356911883429116810613274015021420727035639898000376795954823229481229567420244338730198420972425468262142230586732410692088665909138079921209470638697527853820057160493363523669196908819708512000818968267343210818494030208420404895231182814161954372829971057936100787219956678193898227933975360505366646828800725676327085854624076436587024203851376567106093483489342895853351654594456458967690054897071519962355050428674992139521761725101689030516360063374818328339861558310656751725865209743547059067942753509081422933058268556265490050077384252480019048296367290431056251360983963630933143005964356707592784031508982119901505945602603416654515424066735447178979313060219720501149157537468035147645158936880709685560116716582982569064716831299749100340193313265646605377211603289510439539832425693487069408036506649098760065903003724718856067729456512835037746222922837080322573002396695097553853425603501576090000517044679921888085208464774785333285731147524824097345057020233879456676791144522813336909245215423758510802197568098311781985475984604833430647146274361468645580398898058341748874630967927155589843127060705329729872406941092029836516727315913452388735842556983963341217677441596677338970849746737627491413927196957218079163068286649109109156166959283208564133106017318379583836154069312653690387989700354761614033674217923191119972384511807001509434377014833568385387173655252176696950024704038116931126481291758711639677583289677781362917249551706758042852269767724579393039372072838881969171600692371115621551721275716406273013368734429590807024010837919149232392259161818529602931388730452192001780709367719332854444286137672467472974065599994136985457932417036404214353804929652973463652915088669848547572519576629756136740292071401540700758709646867323731183382710866302866757650506122020554246049333614823296157396877284749785617862956060758267398309770090972938815101438406335779163547874475894468539385196424500224561204842548455754960492220804898477931902144140404872025338937514942786075615158472501965211343898764308858446523139913001986250736693326304729604182980734320103145411685453593010654036683758869613943483891876031310312125334787358561213861567488428905871102199591480180670232338585567697041666305303324704978449091796917463241080157427615711230221961286355426275442264027924724961355813041393513923062379388483042795843945066689336112085463529481090950517675558984029167134568162462554862486067372337666979144767226475041308358098637136842462944073164170944556549533783593741872955292105451811599416361606358696544348669556158513399354612713693556542021976878617622682440165710916723191125240543702618235980302908298609219934984980847298305089363009273847489420773909799204711911821073009640265788318768712576194475958659543248495830549626595236416697398215642144384525858559531574654343571861263585095692286561145126612644132362260001976592287736330488759767772453311569254387482787515262327911092190729841605719443044999236382836634708784548831144635823901172517185270822823652575631857422813514487849237221201248658042206232562342979454931525663245170908181222886150402147847942384411682612010452020680771222467395565566244188646537001441098777436410904691630647296475108969964827115232113669521371328469676595919744751000980914866522359043096268775376289757543553248393696679185344623726907625247241911534169395258185316111878096302992617648570276668993159657647740813628426479278294900075540866626001903690789037059262351204147697847736561311372882510046982132293593206702954270260113866078263097691674528820631088537997199529136118808777260437526675841733911569776160852151046380577168641899393877003593492873437754774541560061870673630890876869210454675814840702405396466785365731652484987686432759624488039768115382144431392756598120232519483231152309250914032308256619747030833819437274847385029673618312311176876445688792252145392230295866176954512701928447586559085220816144619830575117043577580892792333074796416762448699657515390424882045146705667589434376552396028018650432355392634658385693384454859471526443524118906326912751828183786018370144819982297061765094226207791424283436030395944525519647730138606347752324980982013034300787499029489941965200148278652692088356262724853000568680404211455388616322224946941009946819847720727619570401424219522065606597459217107087647815119771329223938458013862955515187799135719900127259796499499185693906855272686296950659411925059212071420035555361155321005353627487703090588307182512502955074219272713370925443699318820613614872856013567102471898435333326423499867366560390700634282834546013689460277319115401869687869483072189758151348512627869994287069151815213954340353177083268591429317512194324124566995597516506325182451473729658858941192002139053518451490757346143391393358980925476996618334680188029884681152624781026808060346511124134506069065675104186623772768976019024688155677434293459106423285301577655634806177534184310350898950800251566417689814968229597947916561303716298585314173995675657397613937561966023964637913710288475585684479160577540618934344600133240013929818762408144553329718408320472234860877527427988877768392761848636454857726906846228762634365198073512467491290384751598724113567596826939251909211992513405578998537933731225046094568161820825554057656374281283620626144330900693685512313563296350191015630652851747604440685794410153540389450633652863244065989805437130765246414962011775522556195658318366605188629391367940147983454434541377589229972061878642520943464515600841461778131803712523430652420792412351817313056072341947105413082361328955124703335397438914351619119848292560606975441343393598433051780726962500256047977996126383545374804693716015391739592535771092638368446719055955931436560321767731419633689325066455188752204147997626279971762855535988372819366153683624369286708494658490442429515977005631617210930071797801122874389644671018049412751890660576386271201902235396096064447207901157675479599897778306805738790817243177215973020209868006906227935603742602231640613619648666453762581538962436608306303664681939386830513391238607640502987397984386038386395067579122141882759031915186336500239261275082720634981401358811804357488645264565187885935530469903174602661518461874147635787489338855434070799845459770321126112871814122404392523628576601240305854689679845863361609981530821914363250086015168425547193231990365359110086347215833027800688983803168261743026637481982483091397011338578197471323135992279241701699547559317090403898408198645112076359663233357138550667382174402679560403988148929262838481445498961932542460621909638167602844320313264834967483004487250436430467074762056617273038217355360602738936839663022815171540968907274030738662624801492885637985821696780664985470570416594740416138019582981457562642725175525880429301135393174161897967411963314905934455041555458993599886450163660861006764429140891667668725156570983571057463093770643830592166693734775775300438038294932676662722752256044364276234302476904753259348243474642045257694274086908446622190448029450095296297405832616151031642139145756265175995179951466162399524923192106385131706030638337305616754173319973450028662671868950341009870529902610253108754089735161662776256217354510801369393698790280614038827644851329095284037717800254433335899465874468721692290172930727723997390611548693662228829454022549445417479796880094524227689570002473347085357629471906595391495202456029777155255262614591764070097246301541816006095980113096340321950854724969486747807268408356658263037562972895412969686672833274441926920665194967074596626872858101077006656217748187854828112765350282031622025265725554280495598782904399685507421890983873619405296834675239968756492695684617197360945811638776936155291165923074104516433164360844619008551573031819351829087645001527813692215882762804598915201273036179930584331203967670261200258025924044211826888092328869097464087597376544215000358721896835145668615150924497178354133297943933411192183309893118202989509531268735524554971024683303087253377983419989756586466238226129447642532368235442955346155522704880250469133751014629357456716107986495666282036278006321424745422270814780329117455185661242867020852475614758249763092488280827291651193382946357123715844750816471117476625541212445072904369319205328333006831295438713615700093666863932279257230793849829842575984512926757124802016196897745927970062735171454222412558693465383350605024590005366512156698197564681270497423639619744508114431594146040397106946425700808654381484361091585058131895862703632909153320563313733666110842186460211743183710834640890111658530975152725134475675340142474749418814225813881964776341270306079729887110786426509134305141404391589916524471949323711179547223411993233680095742078409658529197578713764546798112828580231324126159125917108225116504246086166481148498937243889136168173641501017451850476368751661933641618956427709163321106685150063601025082504761210971333551750510735918953269054809392664094179626054024633415138768998475504447057866963643576530945589704769816363497582282166987622996628658253422359009805754576875768657838542523395272541562083880786202185482887061554687401592745046358637937689593437617296046668769971423825487941215909856004466655974002155333851235687279736337774150901488301699328611683253734969672964165166351268917786997933106621555633108712453748524073901392705075276386978812118044690026259156285179281707528539453577754205776292468654281215106992599198415045093938449509438706826042819513937297648434499146994668797052619402674515807579609845041620252614463349326154001486639639012613998148864399193268768344797860367754568752555898589647656340188930436596069459256294109060959824617041764882734303511534403957540373399473397691426779827980912336895980243398989263602763621105149986855678264462550568406287477578993299023259167630023056509107191255198223385426924841101538920389562560274619894138673804127295272531876292959570214555979813147273350786371343761644292987251805005726936498216624390440109511437611626241658140087578007945278229844928386460838489226109962672551923996700022834306073941534472613264461036246072514641027198661243598432773800145114507299617820200536673404370981121568984223658732869178842376855759607515186044671686249549541673132095930763705182855300929930218912170998246543553755575734246692446197240216544819914223075516985693344085246914756032740272456290283674255475712142941433559367596587677304349381327824418098318198659039552316171154012189684914548532146255862642351327880085592594403681286244536935258480113564885170366697852876839844094640920073661013049784622194398102803197696103730602132302580094077169453616300317214920011097061204545831999163640085340167304571323910321991240842278564610670348807045063358540486955696565305419893527023777049830039135446502194110236122471900895236778881497858954208165582875654350614537179409298251246714501056033312295621781917513943891477896033820963420115854484100433455041846198413792915864430197313503432015460449542052823197167125066928693664264069899846895412233229554990523845493518531299706133719784465343409734052814624430711367042916051632040844247195470926857182265483825923343486534048336623059466313621008193516692039282682405032370266496089105277679560156655668985450516393124596114273054711367818280830233229140445928690048290760436532004151852984727598456839807670838282442267653079258638751973413114353428430971424990547195379094772133646206390575428020033304211898263404057766239440938804982902980380899954747171505762266179310062567567694948005832330721533470003811701259430780576774029873001453402661446798474409762312496300268069689300873708340591871345707206341645783145573673342728212931448716876010771595488911874574073614869254342955845523160219902755797261623953695696848099662185168688823265447923273294122411052110729173289911510042968574985167256402918992327523616611720441855308347720988828311595271779416237015526766256731573740349024682553026206111100203814722657688957176291460737446705610522315530067356057656735464756103251694451400794587179943779364909381627134505374353208688245151625469651694213975585561945121348370754555079312203657658357057058984030811997558468640187528558898853017761086965321253222730566467325501169815550405600410030806583334603366249040626973007552747252910708365878767615306564956071827721070985947896754992610118881854728702979097398571240845494275088766219970089516126786385739150117909832075809795418241688794168039126919395955137331065229184868211215255797271717275437816918578903329442672023905733006934696258198273953210005015330675744897383999887819945961238980631832909533836005730271475251831341312961678399460801387116238093825883923206265021698725058127569752156063892457109109791325213274170133898430565908406335061558337892711974745642391383097054839096897825403370635876525448846856614192682238867284419750117431018760597817046612924746192551908406732388771233050013730943900272735186659557047011429372166006880512765488296177314296688733629506867973089087404136038629415018881307829299023095714341521849049958015890850174345826648908847805983783004512641658359431836498548316822771693474431954383855887745880768254642160541839486464182844933730029322446607399464984526433750915105133165385458116482124997900973805224055179763244850442286632532605177652608443077644516239548688351997500927016771442388760013823196837150908741374844695656104415864206297276127974480743671172691736975296055780699575192911274051325943933652447723570287538058803087888587604703814291391198543504022766168209826250657142187611703279969796368501536060512870264421876687570085178716192689814945890284277909563307326272936527701103570878309433735674168056546598353371977569838565330276964505210458762084469032877969052974001447829130801859573819526172165895224991667358995524775537716440637207837156522335401351505938328028603025875897362128551103756711299077934707375553968275433853607685560374462969589420147131087114687117148592391216928249441244627664351187274630167422819228116209515798652227179533141286982774911058766265493705325918806908286902261497745582619977110314447822304633325871458942418186358259219156071857304453941767301656143939810302515172634131923781359404976812051617539770303146501038436020382568412146530710655076588768463618892291065497170415778458671502881779206971892145005611298634334293998569839208784391006987742561548779642676117453301838319600525667280442932392584638998822715483153558040003456270298295550170557510830285165031564535360198608672424527960742311427082222433853638703447855916651563427529148565137818695723146045930221636618398069463555126645162633274468769171564604590798033876403006286291221723424076430819754729825118352081277961470242168572819136600865361871071642468545743369153678396500437047935992163861972141682490756439357345295168961700766712993226696389248848878603893550816587173783465226068441091418735185074114674217887782194544430440687926616301807947934325153016726194629346780923233607764902672676791244320155187355653496962038320060096759002906750123482449893876833762955806086612735503083249948439257054196068776663345673285823961046253520530746935167277359509721640343205352115712652652371261346251709104511735688879144067687874631363245747325753054802972446164745805786179136190512579838230944949386918326796952918082130125313041492723434581627027630536094162062445346264770209198221819250611257366051795431127463445609232934955755238531534422980793262959444009532154905684499495882439699279897349696020741502526848848339227058031408459156723250074926388928465754563890141087568299564680472681719173707832523112290715193178806088079966767809621362605680588350484133975352144414651925613077495131264880588048360928191387361360984841651523204557972606267316239105701366080992244699633104725295330235005196520648443303566738538553722254102285618088725153250387832073753306611081436814981713906517613124958325962277194926873326313868112384317975280426008847500004295571073134773726390394382229270645434709357070951837109942274617423488794399194048897910539836488702685420296353865789278177606673531668685877637383410485025898599884988776550531764477141671529848071630999210084762423865722112061495116895097273017591348909797022759233006047181391719828872736600489829115025442650265848619369449582189035531764808004307623477108455286201551885286790903321431679809254028635986593242221502846625170323975193479215955869468812531544800385334274906521057882439036308734973402658467677575719985941816194142897285563222479857577140565714874888383296937569296001908920108088335405314155566246690091395980779922233763694026218085978634292192667688473556976066880265871444599704627522730564779510315802502372979905288985002564049469847049989074841976064544589156318297582386549127089329936182771705389800849228438858386609792833670745124418797876203436803596723738525233949373702534426916811225966375869420389948894483659094615932227901164867708089285401759822736547441688477297284838625056968713818590312566506687581075817107809398460765403885179752500397400870638327061059216089883170147164588234691812393935420721194296963696697243415045067971897652610545933192402298789281703118760129315000090330661809929565372781456231661449379582504976634105594453152459818061584026859100996893188429812175042914503310357433848982174183086841033120931885446415578021302645780838330170665059252841244602845952201780139201384919499795272513150398169691287405737833480240975371717779363326773804353982695240626942982110594756007689365103507503276763507185619825588601791923099136456969311687339191945586887028485192693311949201380486545418273393433181761452593933766295577644904016265740854511726921885705231751124338852947495475347020551135997892337540087400737020460534320268345946093873015514055382700568309500857776238614090035755463305911766282738327701872010468313033616148079779912539485026909875030871229857600869646077536053589867868337792463552866898947899243742944205325044178914368526460413346056608768850532822947113302487209142471959503730797229057998455117460447156960782707618541989821025675664638719050738818136167525627833576809638371862556504497334593713532976013838016757043431769710032506462876746064112896882858861314506279081940932980682317454977176272874517088252783678502694953342955019461831654688894946435356240485217973434706723209287374655845871231719369180589358582851861316641387176337183049561049977899812675216565085143179936022430071997969045672452633527009355688447359171692939914668567959421351176661057269392597432330734283612708283316250435070684955744107089055586630702854128309483715544345263435295941337782099936359023737997000805147199208851569255992023683449383842172102658916194823795542112385421223161446763304176591465096957853622000581601985605112884843600975206594439177530550344451903596728776916781647681507644165165434779113792576557034270843134265521559674588454840013557038634917388685747552905349424659191573379369399724676718355278978891031131822083100066253731260673207828392211705315506472845541545220364357160495260569355253256845792972438838002079859272483163079907989990160876420109873832290863535793316406457108691875468976425816522159005633143638880182942949748228071912738085380336001391821507591505960954866829442680561551879376229308829414811429497503119185576079652525505104280348780299565606249342485574706951921325498603660429262628782646949848130067219162854842856716097564166288899692883664879009662430578697538418843105042014312951894587772001691272197997653426914747620092596084592214305855799910532677879171764976826593571551956300082991789280364783277505335820794425985607282347833834421205758647750987141778267895152693945238294040300285220505482416427065835671465209741423431250031192456166853199500452688395355858856098440631106213294567850453381094524901222881786575693125275267277873537315800783020781089282320927454384733015150161503774850046203330357340572039377604434064480635167669190398488529052188219264270584947660477497901156290110929052269140151027734742748225252482714137891590148156910302806699532911392476588059702496782424005877233397058142391417382219670374159709036060090278629201305146558382971220362261433971713216221493854272011484763873707094039527716380910451095332414217465782216985457263717752772479265128370679923975117797601688476109824659809085747947732594535171426949206191518191719200786694932627130619129599418445486959985336153297933942850284536267030187206034069070574326890151922729526894084617376473168963190212630984850162664431607790100195547745385069696812834476461250462994498538866942412589345022770710103857119532206128234160121788216451999623428320076928251598661801177989254291418880924792483200401663988915033254479163114968875830174306751781262260573713699997875931942016566111095113637500125887788544796299085398452207015846451022030010289997264292056673306622473939415015211318857103296247827378961297876403276528624850123146261153661566826396417806003817522144355572842561307236541171242174533006292281796880977357148708697665360082345546071978912939038079323445942548454213145070502838545282537456946424490503334793955501274814814530177542378948884624947519912045777969855584262112008983802995139305926416237357995627643990629642639621122201184327159024216439628553086251173489139724172317128077169002454460915639565953099436217259255266182785858336397977292278756894036907039217797045945031583966749886606245054243617757625008583370020520314280764788757233896089468026650036297675124361001179961986138389445597172060784826005904723439708242985609490497710289075777732609995810198581415969065773686719531818285390873137194491511291182252926866394488700109766373060255252479911005656677783679796864821022121453821530372575252997371613678901765540830638553114632566665337396799244792247504249994353630381292975476993393794427713099637877254012335291730765717483215503082811234765532421145735256357231230607145218352532570145798830538233476427476647156918700147274754361601752820409623743347473420089072970792209069132104499789113450039170147248939530442410212940766808175338483634663848333006753203978919993977016362093287748854064428579279543193376544237717091426193570378595429290632190746528767845279467124916739115796502256622698776436240915358747990796606030860591377641176728297186641257090551227128515865253195639045135352697074794477726635416689410180549522881606355919336854953019100182340697446680283450368443338539592380931460740417369238120711316522107937756152118419526354771304873755063537177081456327295683266302671286830251712910887683401887768732353010949142629661929759456312828219213694246590081131462104201319302235807573598253853560257900612368228818229564016011822104962165357893899156669445212804166593495030535213136387247390808654175386170702044229329574565390019399291080607334321118429700488251322038373899410386806422464272690987085803680631198674636697997724923722761850733319771184915027433660854370442109282803952941393036450941012918316668415004185155198588766201695332700924201297420237377848649229762011557476114841933862304992262324813984121826923879768298495372279002134386795759383699574057139538938645584174622802485923427188463118541009036818238462238030980172876352454840280401945410142095174447883092337440116846454161172729227574601498014006812944591027822272139518652642176167428786162434640703378391002020805310844474162676850539450405046711337045660565197596517739882147535004635990352416780651109425802173608935674184060859668714023475266310864706477647804849660458034789096034403769755666465756710145023084067245053840230218033733728424529435479387135621870464896441080706586783539970597163084851617799343729087271611355743839760629084167815026138104585508111660445298128417745592122411784976414312764588976048987628474276547478967830445150945306080889701118656343799442385899784947878876395852055025850836677035514930140551577358762661548282129579469039612009635206927007048627827225902983852762636071755283427758776616661363132216227229302808286515487970283340807207551285330472074061094913016954551922418261628007524156497354609388357381669096209743120518313667704918181301662678898517731403735115129670567336829291203302954589515603345056649380209376654723994069380694638281855139041831384229011946430402073447149056234092617521629287217994391469027785637816707682300055939907618617068851425846571052712865649393475414541362717878028582087154934514279737065278389514122328977790659880076190165819423748402813745058988186520515792334179591305819573868049944581385025893761945801181125857647013527246148819732898651473243386834432733928348445411914921955503222955431526718049936921735297534436640782278162142421734153656657013738794171302919479066929401626004903984162650377526077074028253359948199012900449895356189207410381126517685619605743108248692557335348462264678086744604565769582139459894275614949688350006658341473267019076881738709430094880274071810764576109375411636852114946080187570739597898026116377794518003968736720568129660954991914489129230625311589219118256511111490517235604191808859671096944766296189372736931155143643677152442743494972484797420364015800593537768965333371198712911783576334972692207182308736438938550171607613738534707666252871393014975700716802965992388854962146489224311805307098755125956080586213037217943443652033674764521303650833058385125808326645400140439869056017788454919959274112682028582531531758226605149424792360861783384038750526694333584946253131992401758637395071030452224542113366642322500334174702191000419098098973607636293682192432790623028270843933303289404706714349214293356856919208672814202000713133430226143623408387194237829953387584209753434697958866471764821646943460101937095488693488935289651522408371087158581738298843293991891252201420178033225622960248834451697710049734119197777909193236935680035601008061302052608298786910353000768540569648201921382840441907914196248130838271904620036152827098146111240788550497636683516856923084518910162028388085818844434550051892781339089680903385099434953401951844011127604426802155862615890156841860214578111094001463233430060819483818262465131615424201486116807997804829191668580779931851905678908807349487454088945916064876042910539381517475863965540864693594465805733696682941428899798437525640512082150958523540237863356630319497698367534418500003534966184703173870367079833480868764781525139522362589836141649186984127741291343524733563464141777016212411276880086003963322552408741300454495156345272319137657209492167221127477201328734597801532724837700235219251925701175584282103919851285867586499271535596567637570922221542544557846137586466083828493865228526303827096531190569091859893868018475284929936594191641310821156376453463295801171815684992702481808831419862484174362532176061484816309452448944408233955429275167774367948797496913701940178447967857717464969763861498324953840884495598441121447262870491510882774172175902677047974650338183756601227919336184836025672942303513058261615912714979033330609138475330370084353875012038118709774484632998891492159188090983860285970976263451898222359926031545670795176663538900547933001040701210755730347967713938789900604354707767176680559509789416038730353704975454053720521808276967080760500824260194948835742876807581288895437896716883157682053747646387151955924968218365730500289440671502810956409648097337589669247991596184799830498448965763642520529688990675827504950027419896953901629078604435152504825164951907325209103100493409428748662613982282950778410300194497850310020034352467650574000598615459354783939656157853480941571086159530165763636092771715255039483407897546158719972825156652527639801237135222765356361753958550147869144751579515296013100877837182009639711377346991319802625255446819295901771032421473747411701299410265526237348829781684561605509135532580530923549696487315477765349460909576510542199234520198408796143354065424952025561971393626730617983886899106827137494818516212931530010927157922311633389136357039788983331836046054675464790431717598183857365905106708000546051201265682315991865740908314110837409790100861816432229043570682324284388365955447375202075543568951300856504260925340577184192030366246690324385288889387199284858590595755856185107689312665286049526944116454043378829606518612247518343914212158911129711148118357216742863056430404113791086230745654927071483276536512511285522154986241963247958926291167222317659932116335540408257290279927872620713501462694901215863183894973343101609080633746311310360302388573738806607539096560604781022991311356545476764264418047144994743376774538531344882266561916467440665109023397694393095898828345303593410608500063680099526480014679301590039630659161708716465825118008956866379114563158070210411426130381415065882663039878716431388368212342859434729265778307345046987253569270864622719115047371415863316747777632500049186790154194273854753483976219095651393306752684382437361925393141325450694500641050047053792698046746724646479719749823871203241063342723281232946639153458971767797835676806675938992770702969996381643477310291914782874584370142825093663831762792127033079452742476200525092936093464340853588552970453482865854980829564457520144533534424177536775446342277548615294992688006197226400214338124834991123824600455245753692239284951640133225500845088717180508774260881167627386343779052719575888719420253794137628563877184582499439785311289997223011931596402450711400262236093665679390881765152212826399456075981568275956662754412493006946749156560311805870906263304220647880636221303678482883705945425078047298003124687785745042643344834918911999752932548973482203248767608162231623497495815297252063648381746781507027104792957484012130479641966339873029384246485894750896367234629867557446695420915176785336385321363971017877704896405385694628097648351378551522922357596841329031630833907157144372108996061815171650043132915550683491588933630153799089538517483352675285890550183649200871745854457353475133648142185425349079704179211635327598452327292908387662935969536329735630617907224307019849521353008613722196651648188009653230072306600401225241086559468165312556399130429166389688778951268478603651003331692329007478675818975462617819045104393432333768802200192742770806237931174517406112086132045424495922152592365359651459846029437456435961452702451555727448795821493291437773880495000465359955724415905481037771126164372232465004311183170836183581694898234476542670839619807781269988920582196512572799809397933668935977393841236660202498558155622115890186248947715759575171339927085211876587980549605796798169396634010143989295688063317780775114572920655281279814605872638840339990686458152352012811978649491295629829705091699120214847207665456446134140106563038324177998569928467404481271494496131317336708653421221835790075987653828189097463629232399347261150455706436617589387182585643107943518149729478958397984826842684089533971565978928308778881926675401982297843357070407918914477922487733206298337421188052503921251898574105264049630391324042938642519802709703152335883717537565043030524377193808205539480093839688148048852297656398341578855111357235909583584260067112332057126582984211142567808511762763516961470704655063796283931614374293299130246450812636349152619495257085076526868358518812281943460116411867259339263046172806939604073942460224141180558269947006356311175190573457957725834138090856326065020158441907094412956470238356742500035481540779026200601384114307779547714387756302754557709824679907617297867697571999979006170923182199300652035597699818255709164303948030848095569978526716693254184851546708842736102433817248884291469517372718871425584909581201120830734243288332981716843527228120244453452647014455622175888530464557270552254624046750653406588031753264236957535699364273614429507850485864252354435867732081058832759113792373543037610668401433224576844301624340118509568631186323630341268179436482386819927769729488164857847025519013060393140531032345756450223931395024227332692610560329680813344785321340263158385530277861821399085602975320763874208564427129669259611260063667094827880819634425986129405137573059026566041582680931314347504157448373160774176109966538411036819279915517037286824997061964018027283930777004369336830737803543377249967639645001284863962628935587227812483937115643399411124745427075512420528748738162652394629221144096159120968866732224316244100690689388819049581511727560223874107687849450511668584718343449847386483489422980678229015311725045961928643186228315219400568400773423286774416265069502119342727395842245978381635161429630551268151289253059791252841035986022656750862150761617354626128552816257085792556273778795350502743110779297077771362062932262959333206175186068905805853797701064438297369405973758992376616128147888976895025113404196831017907667027470720287920888336544603939006982109994131182880352676951415130907384802528391107110526262927802087673616987581575694819569559283541107749030365304421479368240768126313279822188955388492973973550711468872897792750288245684239365426836516292043433068225830853297907677407030004433290076364927646685921790146871176014227986185564435070939883842738897032040266141414545536248462522318630868276503905765927095511966412869794476600513175374239895871221846287617042637022515941395955340799283701310987639987459043757122469048640795508739942778714272290112217648840594231068794081256595016237253252021003707128859238033212375999963445878799841772640171983402993625403442320047933880854784387252010393189199770481777322182201694172136167466946320727748224742086900469707635151033264262263219496852248829447656519133735717860553963434044693269928130030059932161982959916289546245381272670345541988287608720714796743821407619849791785476736736789203535093214144033628035164670566025862126276047997129418139430986562121068834226237494850341723442056428337637749242339700754482054198496179351406015200133989192973569570393579294928872554888830956566852053223615771192162914689251206232537837677960518258681131997369329768295408498657560069023129028561587877813199334094987341313960100455161183802217392334915109591321241975126697924054268250130611339150677238402227014515033144978933574836211743505125028080013301167257761476190335564031583572413597466158404654955089166349999406078891343913166223249899869036940453495993014125986956685779375882163383136300366352035945338531102176003902192400973297938795188867000075675996683083547255574754074223778913568433058811604665806673993435979222598577348111974303008157128944483712134259309767465975381580218764990390924876013298348552965132561120531329727264024800145517629124860122375263956800443794051281293123461142464682741605184111441691788837670919050815387151134410468145075943449142326834959742436052588499352377688453825732782547595111632745449202705478131001564683265111191580736445841517313080177402314635847365217795854582501285907068494353166359452523968016459768500278156381096860245237163710068193955351822086159312212214962451605981077255956812792386735185158463876800350775357971685335603921662531942778983042611822664849581367897955801767490102889745528634233877475773253689759465952524473660383301792879762247478144876869831507312129637143906160572731227115604596361690990189391024918993933575734864581976379331201335545355021623601254979200989343736086569586828922436255009572188220395694686045967443207801999419294915559131901718797507095645288940706362975670150967599552596413809247551526844367068958219680146137966472738199096433812797244767111018017713747605242252353044496282256272288137201211488627939785835065079639507249714843346702120299207942442503872095757924591889195627056593030862161848291179940563412340415051644912799187254013191594172360260736995619620196155518643028326962219992456142133835979119415332752760078902483731640872483174753962974426478713633022888338156475588193825706698898195305571010211555513964031610814677522293754193959313151025867884275647560325879435846192485282051466853439596277685177741574613413317820965367795457360235378117307578878064862041921330108177061846343187273762587368325291352938023803693814488135742986571326869481469544886867835162933559135966711066139809205386868468597890750413186164913398470512858677261414912301101668804810081976574781842172703687774481022568348026613461521432655270894638202361200375671758116846371449769778401561744059567308386288884881092102078111097909105818010143182088775343470809281208734692163827504170004992186318919884461904866391380652030791274954986306260148192480933296386007780626136834223062725826854575254150072276238161965578332535218359955624844970926142956911704374545017175623408394349203618052682624477809210545901057223979676259888066221690925163768903866037025468666911269993832041869393627284042038082488651038340454795540129025931032152977248621705006601689561883005503523116002046636674441450148569993941277192818584127226342747431642613230918251710959654499331691435837162882169215412815652360520919824888082793961707965589598210985687068285050986783183481558149436906580278152939237717955471887581477448982975383665756558777318601856283318894583646512452048462229885134409272355197530405121650858444779384249701537175657173378513037673071311826666740701226211283982226427191536818528893742436422617945977714723739325053475226159587283389245733347175258144886883937668453172496996664530689119345594923867329646335502602330342776766372111172561096116950365707480877361933670820859170221962987070344607629369285110760653802157281169215124037332081942003721196629711331997431138821490423027901072934736120436074998613616920699433603392344712938053360167415661706754689075657559221851422092076879018023944130867711250746707490006059353686668234882400168880122458098126468040145596495380171701690286548847976928482581733623746160931269270240992531609951377443754563271144415539565510299028007083059745723910150498180534827581981902354778412783459413750725441592465428530663780343524619813285493584172535159622850162395132202376209277388340764919165491842304282083048663693420672415239645315080934422479209681651982076029667833635643249811103977365053567522585825471079420402738500666769338748115890955116642158923897432527761355110113105888403951683296643640924161430878848687686730381284641685680369366582096722627862990648189907913965388612847138930796573737666440369454058527793625855902685192273701665749552325790315610662046453310642432173687643236700644414189423338644252108912018795720758678037510290914918626609981812959336191839081288622287521768671872638884068274241143137896201742327629580245887735303022395893600092867506903279119080030964194336712555753548571783288951664640362443685667458468150517423959084332083093684854474619732026952553695178695118706466489410946726967797405094311384511761933118488525817890395259289196532927659783523735787351436706598332455322379172712872249181747837474387883043193713029204442791514081352764479175039497926855786553160643289422318524060994173374379725480958132601220869294293451772110357233566265478621685070738946077212348529756349816255563111302999727631875197148127944504153438148681165876148524473854082115083313251965545703304821452601380904021002416161543392941769663709861697625083720250145871318547916590457207640352254686481751922392275475843703729444303831033711415049392410014025907693283063937897879205766602261753601264010492803614789377546450300962580370250344090251767129444180777409316690205140323395511308995688827213944534401776334589415938767213247783017718217939534593428455459798153784978525137950493361317325664809839358802945144165568227400155733249346487050112832374008870151950976283589761697381408085141254220120878773699556140827868840405573001374354977660571820521534459964900900256770820730388608179158860323062035449838843163985670704190330161181865041655238336573576643531154936520873978817279587749305119236621450018045289009301396887190885429752597103792114825556482530118647783817134621862079644427988594169744364583040451472218035254217174911049628445678870656099762447784176367106218629527190100560221593247341980840127456935371244574885125080916375851808677794610265484426265484384095527025694849239977442735789307726603655052491714728334326107437991017361705807621727775916361341388744020704480553849069295769606316968371898254840088208932069574601563058576094767209018286868061190710218552867127367382019481112036032826553382307220242896726634152075895467309522297703795215478585872159185213688925928069234753680451239726026753173307652498506233120458020693372327707337144905480002833347888503602435389216246848521186503157320929721606809327353551120361234818861354222689471091023726285776426780928397143276687191937710187961998713901981426913996669708680224279117486463942118960593174860824626113916750139096393176785017170813138831536608937787172206542946411417619373938578455276956327690273482344854827731114505695224606091738352452024985643831371771766616126141810084311705825706303765918131963268615658777815198308516013818854927034412824159733568782374050423775304488072651283494025996754452552875288601659047847228634142958823258516072394805337019556140975588895259220302488120245168977687854206993197113462686688296831935458424429896619728177591435667295446494997601730492156313860987065744267241926876959870859012843784776413701604169184024305266524520066326490015615058150214298322374592444618284792028539912382504301706105193028432527038845334441554765775025049728258667611048264875795856338055809830055688153106111607637987596766812822586538977868454879539313997479545012787944408900173798275340822771105317231911658682397839528155990818615577565013671368524202930697389931437035805355904480831822526185370711170923241707667089389156683545569462015576734400903628760438410777917271515137730851877745479979825496757025705757328770954752651958402225089351036328577372742375859152177680170832350959012508880641594713047687137992062479568199163776680822853208006487058073668360290801873754380227391249753533933703330718591096472095883237189035776120341564199878987852176832530222713984236564589643681727467448441948825472681715087622604433656599430798943375086600669387244154265634545977345178648508644492273846304853177294449134180932566694922225541171734397814302653612298959140600690580623906265356777155470486929746085948301052707487911049761093484711272317650213930723667169553758806562500631186051975124869526774673745488233153452977268780505492707030237682304975676955370582629659985402968396452539580856642019492212868796556232702660952747210502052576515859361077701031946644126113882325863462453269533503338112390477080111602792459085493869442854568233294620673296763149559580776358777279118403918682778834979380676390073446287502585883101382670796169846460107286072964470774723328610729400105794646185675103602583819713877668767175845360186490419329633272743372095701975539588352039347015122800513440277599625235983790055710154514724212957255541629018198567758711123664908790803411055255672523111448180272794592411763638477549942519481929500215924931926240281380494142121461971809550591614197768962077586095531631823828805240394986744038307411830730697120438160184418504842568193523200260512738747958166532118305800339799933689577267735839222306713941172798370364535528249726452723125409768780762448530531186115168799862518941786791367298114248344313128814672110256663254745999558692971342367100537757205954826879878437924820481323320869344944031063713125714891885974059055898769119765349820902062607308650531309955477033259732042557966894426435203412003382359362630057251019752800371213422910871428021138312499438024531611468675728935368083582435170938893788626662637760543033902678424895852051015265320449704964651198684421988938555886621988818803213151624650722438987351833599398660862445391584405705276197797134860319028200031587277222440642358088008742560273294115445326974876053314762694109479622155934678534136317392669947294158540584866297919364983420063845582160495432010944422809707034856980359325376020452989105062670712493770714250608621914875007245295754055170648107235799688320674511716796021309854895428507146445494078723647878546535673312173801054640574264527264375752688960206932744536765196981366349990145313012350855079468785849050331205588255386009431189618745138940960014092022250469340755648920082196400319892642458791857519335770384824649811664662888892933689420664207425701886930562134978886667286887361589555123223953339003384469922731672742696232591032394493764062745814231954684207210139131234434440635912571562540216643407071590228131921343515945753247220172185408151841940783163422048145908233718938374340168185904098083940781600565832057875409128512195659527773656002553615195074746327509753305150622602318236477492957716398017538295947647543406266260656737241638574612149330678199836066006682375465472179404342820237013664156238812953673222610302702359621876139083971971360299961940165713079859174162355326296711628096150532308383071861600694144118548679329384503514238065365418167346577839859984727684367039560607835324320656207303340490093492935544045964438307720104627273647382908303493354570195569121156270188629843698246088232047967858542228509324228291583057236913288865838427942039948850216070742451025777820091621346240830599693592635583365060656977820964324456546086549934291721187012888344511118722811464373611680525277776871532612120112452322804375404573223911527213366776998558194541561465745988279048193481761818990937589296450436770683822619400724246586541205470020314106086686939813365967587823356487586218172115777620189842913958208301762682224145055576255437733347477809229296531227460575885283195112381869508450034899733866881880090967689911771256789689118979623582845763304018567606440353244379350258139085435997399272409704565907720935672186157549938848324842246637900232728460487182762320184445280051312212099311414049369638222760337283868740139054456629216878601187972196261888807277577224931632606322004089384820845807320414529625510568157685941209167401170583251730620952652487896791208007365762797507172567658532948352673670469538697755890680125929209986712930941595048229431494060144676318138133959426771469103794120946791404632943947271188015766351287988961429803321323832414344489429931467675855996272462864666056269640588949873527722099302145884859008624034600385911625165768344428496226772390610037013765131171323319039108779491903856774661190449634437732899909699244700042438373834456039286228369795970434552475910066679236214364204233924097131327812187942129508889100322048595144156220302364736684801027919794479029435896169805747756175637338386108745857125331426624146521941738344511082933911454024100664678404996991953225230756595324458120178785806262570376926780269598957178562841488595357657868950922467766431109414207351799038711554608549032050328895961722935553237720583151125331575239393893600192708129774001522988037438856019945454935463245088423605765891144836590469750471508125537923305648184209294320272775778532211716877936048236851343748915889777102813211325885411977967150251159622239703318743734486649986868866783414892568396488054945230192001653686827991274143227185042627700318481074097781599123464242169730911173382868133224082200324478600783091597697588189763250812131098474801299527152545956229807147730502964404430633231455774740500674796472070592544281326962707730259487527516212434236608920988723143467465640994898852519147371322359029471082004015199577054498079947854282517074514009678932953671390082426244257228092172905789775314273663702798747720272351873277975356741576372139200300494608701621476919203078024526749836740272186712697622233608585295165217711997207198422861146367366537747394759790106428924941419692817043342541823392096477765164673635778084339366691447944643107612032020239800125892012150934721403252115451053621052315115827863479622520601975136141236533470585935970035249531897776028287675377041441710932995835404636156489497457373388625149814694320867620110201999942485563850385325073891329992394922231421074966321857725358469657261903228990879752343698389606393430205253071765628768747866971646038882182721689431494287986314232946303236753341366227851403926406270647052758702441041878780508041138337493695836332302182679718967971966319932010717716939731849877428922441999152878006985826068568843655622369570184681831984922286237203943253485122679612500333280122172344836008459701143382879225120066189436615781359593861662581502316993122770914931826587557791639128525281394207282855684947283261606727890374094804988116204208634501305208815151855355445683863887077377635483216724965315272095444308946474408127013360962647562429120792102845648627363349245639589410734094846008073151827155419454261883561967579143143985783600133820912611992308047775890754988243423954321927011972369788486024260780145839827193143077237963975991317232392012119273396224826043646833362473958716907038233229317472789276121001464954033109955280385807001509648418834687197215123694201608888447923802063046734150592280968284342201514800794476158025751800975644039592423111825558762353170289613229691581699247569035201106726568645072282003951933420865031091592173784250498315110741282922943071284821721348690873619989915131602927011117288874984209789974808845934693401719448346489818696662655696642288535463863782625170445605781701683957114547601722654205689545955341353352307455131801535818153131371793989428884723482835015369962495256222857198850701857980100696443245090719226358088177980806875297628371907319010932097130215243103353147384139750351670490093390788771110841768206813672859519724115845478269008862109373305591825732053419518785507860940928402061312740573040559598208407199958647023374318819942305930814260293285347717577277528082144992593700557379706988678959849384504172882963703963733415984902610883342400543072803716149480331131308662832710230651024990864328408546898357902663034199392010421858003614173429115946615868149086240623524649892673160973629157025372377583681655516924409757242141181056028773406970662346735825727984054555612527307862426062912907177312176312723515647365372322084939583307504457382335821521998419842416239010488573477148555013274861483843209408178821522430839079750750734252487950848868229565500891641297794275459643153752584084987959209122803636860370440567231975490135085389766386186811894477149724171587452691992454362172440215589610560166262228440827541518216116328112808944947612554792637742761540313886618753022345824262104425358062005401357953134519055466616990070074152462850981758879484557688905552876951150197159922473960538334916528417726435840497906350579995290938644467559391206231494226943303908528187240337508065392332815170185804056546605693548151158642085173995046609454697614386445296712852585072757701631704670609245667230647146530358455657022326895131181877057032392477717501081954330026235322105481052118351345622798327745860604402273269708740011769879441943354001777636697033049711101631417797890357052020245878544921263468851837575005975885074950310232185370972007982052891991968825166060422573639734465881282091267337217517633916689802078129262624016948224556073871297158062593744835807747214191776832983241226872074445887386545298686051095428330258470378069386104629401478715173980267691630046964661586820136733173364974531718760277184363296178689412389480671830126291642678884475484553113627073056814416762067830040455248545468653951831535951844052389954456723957940473867701847164528484529644422216388441955041154428028613244201374208122297720302256300682403493942766604107927985087426435678550841025990199736004712540196219606585587963142021138943246744764181362692866939137852251809779230938871241161402862342493858850249904374669146558457245360817095632097828777004368178065154270317805097977215134538884829986340956166728093708613184936793303907799862966946947213792992650506158618134355888748398260540639717420948040293404398833221702211407677653594230713448312525827124278192474229073458187061782532441900421937443163392149646491535314430514325598384728269373511221146985012426894431152693336321569780416759421975023276410567538301063714480590263896407019169139763569480299775157175610634236705527776101556706408554164781556617519310446393417659045783846777578304436221418661125660732726739179201635935648862414984857851060598607288283647395617177720505839361301917688548909633387011423257684276628691047533758813715128414343263430863309855348969802881944722752223044302533559704298268553907681365543839812038445040196188826863513697665613942969891620555358580855210537912072756154703067844261462440252704922628677640821113983236692932837753327524858977573226875326393603480417498853129834512086380618921663694601905961508800047448176635498834694312463862811527829946153919140112687393883258318740864856303304576821646067037634081298500828289453260665935959914775225823896956685458214894637710006427663929708987058235193157817173731422046424195663417850204619657385436312202991617201930964416497773979956675608588822080985536298681960285966126772459685602698383573365065864234511880422214144578004159765966534338635188517555129372262346768153153726419607719992234005493216522113234768077298092652316084842099306422183506365043341742135655065643908563380244276316385562735909653850825474808415780625432455725410317555205440287937913701679611165294200437823220800536353311533949913007447600821521342498536702054977022625071448442527819596591800871725564911728674648091176226316635282064355338638280177198557348854547659368188472255792161919115850528940131736143945554033521561117236723924131733264849172315739092337962179524615413649354861683709973627518315003199799432006403921713700929025154704255931561963591854421060119419310277114213411924258460600137311329725321390431107120309651862510041860215020331191308110077556595037763254188844719462971776148115005789840835531191893581370471454254984659430764886026841863611404444037906129994618250455071534214665358986405752087211782386352858034600169993021667185621270639751366602147844125042749140166257270233233645162934670236636555968042496117846105322825873791368447299696941720319837922401304897024626607957276544264259424769933178478638115940778626898875082552769583109219157688246286306409068935942400352724727583187162064244441309458571828215557902792569867322764163420226196162805586816708433029484584530982934783105464735969602023107010350711102163333615591723009904058939138456412051454449577594142013862383573672352626862949557954390551094578105874636143774998560525547737684628162705249054590796331506883225680505369121291916417240604204708749844371364149422794774267440932517597686235702160061350148214086011043454000244468863840258744240424494800908079538136819620441312923915153991365790934364928483838097781357023471706107264032587495583116372210175430938821844613462955283524754943367392511586391460443846525631604002856297005481973761637013596163702968353112897694995044307258458109512688127312421950447156645325364384024646369525594857929096018141148699352951702889032738466231928470982455945757224428445589589704951349164784612084588893665161267772244515872696716518756695843486199521328152411797093566359115818246013247330221219370931220838154006952637393088702009592770207151913833755357034838234890874815849862144769703912759789652233256167021707657479242770141996368186548782887591153525598963183407614749545737217449224934354524062007330155839506083323767414944531325157636981100897722601953461954567785592056640472220283741620403049455699476912298002094149656083045072359040277036954795905340509872699514788051177444850308467544093873219160038850035806515528465881730162498512727919437408305793399238235214026694166715717039629755971709682858626137443132779452284256412345299692427768561762326442059229477073945833350803423572475227093510612539339716115998623592676908849754890005939865206622092847918911972428052872568437633793834258181178106785815838226172297704981476428548363271111402787861944853971246633477602206252599469467303421842681662495008946172870116661334605889503711426182729468663880315740784670419379337360786609234023862451221558259626717977341346512163470070333657106623099609005256688793710300844367074862882729780929179524242366168706970581622831052290107978655290699543309260681462177859635122869449100198636344488962772598956141549612875851256846462107655855886517214474285268998577885333477471669244780019739571874746065332963318222097040071170968660737320648828598873413204749178089258286636847006617694288478254083216886855118434778108865479402774169239105960967327538568476395213456380562545168130151716551567713884456533901807313747586194039566343285279734335579892125190451451053449552939153151274006391471566614481309308432801851437302831070672248939928846724417598669326845241084660918237297740326909394949612598153164829633634039225398364233067275072125116587176884531903378306294279103702661602070418456711458653627930568819171308440125558442477454646208797235219793271739526250385216144938236922415995326846668456147499568796891301796429795100351856428834035082994871078455259462935337230331027833698957764429561141875889679654329047896763903510185699234754402076306730078717284532991484137539578754061301214864080750857074487343200127158378581333799537776021817991945670013218684731288176965934310563525979954845024866230172825091166716674356352476436970566181453983504589065292948677765181624574602495265968419486978255266538170175195943127172744543275156587248166073175568701920648154146553579997174298652644305010014457340584363276002051959605884681602962216224613069243129978272384200063991757202406965780014274109495768851275121583325281853074457460539983285058001014798828475671469266840447191948443109755463280208038061546011327412484417865742931861521592243662785261713538561291106748116630045984055174751218468620906413638213052134623963862258968052734037623845375566211290017038785252041693549965291492523354466205416229925953847726750074423918294025871105038495814282576178736145741566824472172991323578463503329210854181439063662193589058481158783484975981573976953918509562637037918225801341019780139612979668258315046964366406072248228870858031010277121838037481947530600968201810516724607704993807068657265018282915285971926414924576462161672375443513284851277673931131771183443532914367619159144757458889625919050957450041734009645278246805253165434483422458984150741347790331724653176357496536766287301976931571640846594495082123357915868297434921356099419600553354656439189161542194136951230540142549925971548556544078503633932671089947986096494878620979062481922060954373846975935923110276552109039921103797219960628101715920788380572778699258504795887182004018423075105478601340447480434208091897680649873003456298631899120307252734789899669195898636049839809074988513996984073036731184205499204076987921678996517358750039350909950782546669049911728345463879597959518679002430671581883371453789672149747295290622890905917586921651105540893925875317391076867939724208635264715691318717271870655276775088684655461552137562994479157892260414042764233518120871704865291918044534492367290731967378981729757713582606215383935676207427067881825746496171657958851434419277795303898104847225276668840866498363393943181898456501604960228524207380402957981445993048548840800084689004232743816769905407198116030619578117339768184901710896960401775905572427288506657611098022007343551634823901531298708095370338164752905372565759914684109988856893060813079663504609627941483769177141930437121192452118485583528649065635601860247399459293551171866655476220287441445632616372666950900524786993569517770646206405485667947903255050900323039027817929171999592160817978790032406631346177646944549835543607187751420125809714716323977663385675196810881821094592812355808557546942819387178635878194574591157434078211788816899721094122824023509991987771394845591291644501393856912409995459492519152753161530055451348287276474345822191499232828732805153307495142610068838713649361179288654225766981401284509214177585173163359454800425116462571547612833481909905253497418316963472075206607788999567199125655711025758213989641441179788059455025994205111020303088261559613586867713233628418270515945316976469251545573599571823620214870991756447040800915823624660473117114099749109608088115845410616186845100189376313096104073029584481163027822320588332627796331202933501348723852107520209907438949970464662505911433946992188657848793493183861233026319342751385202189986603944234750764216871712361748790464037590167653368186435873573630365853175227505592405868347769617566649165348636979774875139885217101049553774999695981449873025130929287186790480202511196612788281123763710183708505875368780014048542061632073400676071859409456418133798013393500307448309626209020771374319351577523285830242183520887513749808973991092132920843544891990376511791935861133220960744463527565466229913992100747914192685833728912725329363909769200272320196845793029614107928443273545934506591535018229370611637290038456934035210466237317919874068914202968004641517897174584526401377123590654574270773603225382873178815025197948376000700640563740322900224312455764620738329472623492744845757630496042559944177167049622202370233431799955513196440647506541876080811713372204945272111399838151387493625288678197757233547508827440884530491794951814818656707645280381207163943002334159032762981619687602678607898740089871418210287635875596730697455982573346242301197464675892993770229470631239988268585743793352639969058340938411628240357607071364799197805285819952453858022246811352559992826990118805644967636990533484370589770241578968296207233483644224171982799970229910140823721848231263084557438354834413486053090753216548348945217386300371586533837481191353062361857276011977919382436892511297282369245749508625580885257028972776675507946512285934700641160610203336109598591485413680671065880279604449622972860286114497831333253858365524904982150905627771644218977552049674799612098678048288387322426792113053063917522035081589878409888733289839497552385829751973106040188197129996087416798345236381085341281663447681617146280672631943455194646657599965565839485664299888833793777236198821511328443899416467717464629192140986763953491318706315611909720818048014846979874710487383401054919602922894625500138905823901868078550888875058439171442243715992373878508363223398243955233006056427464322356167483245398924189536008576519522709511257515887193875613208349282721471909711318132388882366720267426046447723192867517281800095186303344560244552998137739113721397549169644046720505841509412632339092812969733513541430117436179333753650475473388322936279597225978283179922732023858335768886127813214982188554763899207858079014765307121063114771086648147154077806411883576388694546000394111727034039509655669934333247856544134608870300005821066395624514587635913932137655220838237811451717442136084724495081249455385888832278076560148057185275186054649674347229287113786534231954114554349505347691164691803021828945020755602807193843034293966124237727397538857545475009144802344108435308399325578511905675912276877901356875290580499883137685040771008824609349200708190659664095753987069530870306673621989933252907620718205054857571262714134960086141250935059130464717797408761501020876930137989345756669517037693842857471750449719947353176856376008603377065941676066059360201355066355362635932106019536886584825277959208118500531370469523520466284652639520553441163794314580898447879382857737385247713657704611173673928960266502174371601715150041374155477399650583639269105577949262157234248943121058804242666794166463339268340644340339439075670878807778590745514233469561758248997710971455374961704004236688000272958814956122264987757436202558315429160778652565838146519693383404622013487391257591312253492106524973261363435203481269091606549574983535155572157583100313826575985096408481766093991657183560096403635174335859730215212755349952293655482745260690132802065296923524859193170833852009717290571953783288080986807967899676968808570071252435867570604290177678179386242697050943129268825370979175845373009353827415787707650280983248816333958349070396376897414107789221529300508649170519338483826617858865686347187106163665339858793258599435384028329318551202397524908489076475745376224085237548659979312102447291554231317976612579034844945584836698514018204953348163325271147724271684063410404412914611310552597965181511946536568991455660656490744979292905969139481595455433313645720419224690842412751438669468044728288914633755236983784516395380059610361392330693906312699416269178815732017326682898009257230343466973505061641386049267828122182684011300486900761210240848460227090543418112078434337063597421520207809934177472073671743434160965445821836347285016766190421122172620914715163282075473992828371055912719670462032130166105934819294320981064489531528064960379500464524265892151110104746981277902709263994882402721956688322014109534493597675030264914945809112943549322869453281811750453313147517318201702894173061079430605277764379104611247866725162509073972719327101049287677725795095966983149405642093924644156702952171374620681436102933875466933383360213502640981476200893889277772055772504937934466317118243937912482486847424940352432815365784779263170173503980368260445118347432222714001100949009881046317277113772551319610704799708052548337153067867711157498992933966927645043457444234028075461767665355254849647585371915045428336991771117708167751636995513297935027204187926699894175921531564399573231401977087960563951831928887928810827106885099250799494023789722698816035816596781951443930347947269802953939344132321679612986236995477283321553564110421578680795748238788583033378952142126857559803984015457565921409414751739086140451161354751522989173901786402519281659451399797186086097062296492396960008371297381539942789889287728084640767752749138615717719288199114649692200146915206167042863440310308848430444222328624125558650605308014600103200784133003209803821757494525177708873257625881473962377569246812129143930849498804631909899382441663183675387394782639632894109835929623176140400629602618399447305883427004663789230066653799319380405434683400994046937806370248715802855420880127937389222758883535053529016616579295701827248393770878282268238183521007526649017044815319917342438028638011687382175987338921922945295328099299462646684246021641141981226854991222492179752893319069115369153197002060324369280230449614103836064956692245387022677720058403671382879228102071946732720126080704263140745932524382926900707529581022016259441112004930061854807493786331032141795413894606350130618663428667216624182392608103965724584767996254512414270797353585766044368871745554111563771847349285630774306540343335494707437008940464653096884391156781603655640624074520512831284526396511067378477785342231267308499131527511370455290252528848629265612821383642632657177347213057139523489148304437959727536288233483312766354316727270083379595230878552917705374092081983434901746488353916374153153914239245345544157435083534388671698343053120440450439058442762234772441441254720445559299930259596592035858053408760759785225650749639917997396934732029713817825968050561516921206336440242141804015434547940616858673228682632689809476520139694950453147356906604374838640700164939883468505544484473746439863565072480624788221092392066290312621098567387313524285049582866405200878833502694887965284051589398581284652759259442927708933115275324766174966011817542701802807250591733024204590169853628279754485270450641430383232295689695848008041264238756895535182841128321648992178613267950745215275575030216802138339184763212077744635422167250503577033708678518156356816422876556812972281836320151552432179070807420748327431765361560903299749450924084303008415608714501681531273525101971099750510150955532248198066485767929783852391789982136880552803462353552258392334070387990881172254409604326058719087292835893990983689372542004377157749497720429098344233400647077561714890185500736862114702314147342652378582217359247801734676698475310262676749453341627355714953560365359692160420096110443323684640910583233643368816933053567189939524284818514645217600473633510531243836266821288829904550376995745742221007076249202900853221823739568619168579119110762043842000120890762133945350212355986499706008605189780453443494374290710112582667843515485622427327263695914222158680486112763280312373439006874858149804422792276529811198738877671649973111891613878068675243645497155761060304908498010640427689123200975324776015089985036707250668018527165374685462146943633202139271803577361454845139798440980730774569633592409542949756609118814370171936012606318450180054555086862202589462707800714553063588489054686134613104066308573893633459869062396834210872955029665932615399155112611476472173809485270384228680426999861375790942627649028678530982552038469699932280324357751016746493398976771763842741058087386283812953167810037591729302597957724089929772153319205466582639403455566005741315694719704261606884984871687963697559454688420919852258687806810397676872529285978221044299942366670813851131485981678899595963126675110204302808772265028460447347655456576361053373799927985130514646109558631298876210404487846988181169810409725478689362571930850383131644106274748418480499830659528498077848915398544912680429291483103764962014154066841032121813998724633534780971208101778174316184294813296864342123472760711753807203817716634730033950330128079994948984307379300858852525146030255291830199612990041385438840589327404560253151430152325653263431697237836002779765873320955880947612771273209069216885769623779565028748779254724697201959559615536091078422102054167991438261176488140028431594088000900422449709761196121194215267104928829724367953324377320242031502000341540525285052500731623963180619734230446180380421624965893636331102327199602376229883004732200828887101310532067161522151241691977492767961963880042714645828772228181711326085421373915207860258730015578997325491109931425652431200289559774815998228093006042933837274597554771465805341121274937951973142255387157296453357178719323694688238343330195430562558948589160272106086695000220886994897050406937753494376300620068731933913505911335654223400359043462312657061320186689947233579873981141710309272204482331598557722317404291486791415459911731178731661526205848048425681277153009658736903674422376209563092826853554889009938136902278766153891409714296561246689847323550283845941744356500993174076119951546323417470585581893433908326865464282668220187927247423590846329952436607739835358941499264806329126663441738489795815681937665090078315533817680093089745821999316622806692356930058442689802952137028212344282059242008710782487111476002586542983005555641301205589421631048673885480856679937823954931312791990732382688382882934979948713526143545166794676903344985403347985732707477202781487789167524775843423366816159591816108502232938352901529524078251780633682958035153130771248158895399322310272865483861187744868226558199809965423624183713456084010989355554607654800116611350777362824836992567714239285334390231263740570297952788051642375489595371687605275332223524399658312600196379051818696637121679430594179268198571108281461957058818409292806505804167095160922906250557942992636274611099306434255481237660771941114400868110495435950396996065311320401482185650998173688019495356067496470322861393547315249626430566984593455592412694985463540899549659309095538309971335681477864076048265018084944182395673856949547453627353820300726780613808947485106594527165035342966294097332505492858499599125363427570671457165203200832363484411005069903102771273667867818668364450353720519041643701880352278965661925394113074567337340645208814625005921071955319366130728398891083235667778585716521731125491816296981621584198365963855757053891006204016214126260280161534607140458508343892710230612410307776867502572020048221666776236923409180347568667243536005335774324670670540247690900157376300270283053037161533662669659332390602917794919298413603439168191834312450707753970651999571220286555238401244422469309758201408108339489025652060557040939873434764022393988091228322815533926570391532036280267475393633995827354938778286520877370179078233677919294627310924797199359752893749988107373950766458500424358204122868156424313621286496473740670852522863757137366802283545522037947537459669812641822699958494773187359737492195990719104634303365986110752663801332823405360542928084423331818432089698365203415497529287639931720458923369377259424631486333743731000969216140615301204716238143619809774895887237001751988561700416802529437703720733517395974781067357883823706229656491946968553828974255585211616204749383794518278425426142156923994662243522641501592590485055117431318143547671092137899868481011275310197944184817627527880489954225498947972296674943814143983035813061083157034320873435272418923707341038322319116986935549749256811896759462800003356685678367944846451974200030964843660988258149058597496885904450043000840754701831233965779373518650758162790123354301336033432703985709453673399531367159180984727321039922055614087486413075093088066621840533144414088281791949382874759203156022732949718425849297161343252738992350945883578695653377218873993724602572673661377125749241145401266476712332701783157859515186340688844097280165305913099827429048200551414913392635623125647123548762958332172779689214273398020435617980049493102398397568980049637895183914343861056554576540838496677457210723293493197208396458174346005846568497365946524310527293631372576923290395713530593838597312502140791975629880758990959971333770874375374148576649398164976849153535681075228414075375221086255595103506226863257885251322174829966015476865482541938828213228325407254743252582911053903631757457962553058858858488574896157712170556620870543797536556795137708559366198304196085462456848949172189825779675187948228981480597625607928723710041477170251805315053064548270482789685306379979420822498616239809930370272222269271675622972116367489348045893782264321655307058116994836827470984270682573552339151595278504855515662872501938592778003101506820501252049490128117672295460571307403311985627635049555974284102727513703053468631611290969828563047902981246204641867924372891997299411240492678342805399136959452273151619836384601183601585141961100821973683005786511275599461176175428426135313225492666643812109242303158263807918470775783734147231587019076920627510870098476783660649385478718054001728373905203434246920951681371841773830233647113470966102018152109627023744533002082706450162548619409845747214068856853199902443055288353472883659061171627398913397626690711172711561244495741875901756225494337669944639873926771802592076927432670396330658332362217118153787533826629292087848866959953702938479541522444080047307279380087223118066186009786962136580159680444365037006826770736338633491754861427884904095209225495901806139315063631462699178255150179631926184529135772222204890394683364406157000461997998664554237697255306945174970504940346613829234078368800749113006762301453794000272793016472839197044788994044298668410666352032104463420679661128182345056698384504681252342456287330648753903702475032144787484023679803038015440637976351695836566425841338477153559665949891559312813757967714357849057334584548302572702131882038695595061577752995809344438076500646109142339526984919536852242440069561090137205885074267018189568268373942114974414428067630176435793524268491935681438983479681970964305406397350277687304115896415526008992184692289624118385127438295777162396911157458479169043491199630639143737354133836433056685370282080827572886557082889699377821574914616085956623304274584016124367565398033254903042503252394597632058560713802202026159330116752148256180350837204185735301447027513004603450177266960083257870455946604712873849430524580649552133014149571475627442556429056418521695971781953870970052355637071088720707015025442259678344943487280580789237375233732805071058400244242991220037211877709740824344226723986225059354558859729384237443016337915246486878757512673612631054403864525969989368849148387549537061743412225402383072482133963748720915743630256567815703768731960172429556339085372079726257719850449936159752541627353295542179158851236591387066287097875378877916382554600341161105009651496128416371565098569985861531730439903190847564504291475780003569979166976584924463554751994199004999267211978903869573494879142570846316739126322960482826899930846574285679938269216074059581857068444945623188470073152995320219326122502824169159125379118207300749137533798704076356376396636850017921791540581901721120970256936877356207396996950995176362759200689590446403028147293299875225314600598983432981501012496814306570913534811211786170341066476155387363052409294028654378048247351007766533873456353559697350428489318988385416176275954878762383768616345279090600669835917334437241249911750860981861690074070538748967739722652895185197905788568692307585736261059191915083950903537063075347785034839492800656095803613786653640400779416416984097894068582793441259933491996589741194354764780918735246675633687138580535985153196695922060835314635107619733664060833797066060064454139360291214634275943647610096544861799416602578082383875732010851966669497856004371197716568101158187096644208115452684909598903420132371295352154675922750583351367633287304816519135963339238952483530301518637775875291245087120866392960461957565325485222083115552682021223300818736077823168463054510212892776094681503709304422758846933212364883091510189699096905666556482799021365848801274342623922853295088672180146850273815785970696270114109304692460062426891372102978074565890680079403797202596838947597352637937950721591393120917878478381023912866275708187645249552519599782411223234939559058679506115253257527160069661799815346410545854539615460956463038549820023418736480341299902518260902855937188863534499878363545576664159026061610991528826416166223225822368628083668228556742341347586551644156795158031343931605070769427558478205468811587568198179737212496049680544431999938913680019621453254485545023812875797616408903717121148394556983187183519166581646639352238354750154112174406652727441585043069842405082780688119187064760738251607570514081628668133337971354154154120761834563555288632344652348764126795823085136561937107260028300989454325063019002975020302136608403047010057628587885129470658266220144142490816175529163843949127884809499391306025643555348857676934487389233749994245826990989511350635043383893996568955420179173482629550286020403633429941328460751720183415451462414516261873972171175500217889190184402302339599024815549646051547943640273977611881723864313545686173201768494530105366022363384064761777308956602301326453118391063423523958696697790935925789258453368477067159667098968675482739364072419749007330462466497772912300431023289409748774909033459053925597501021303803565739246451726387635657259528691003021061926916976564330353173300026346514164516683761581974076001334934384754349936587348627663150194932635766584082964905760373918667101221270222360239274098553105595148201409476097089584609822737419507225304393863234571627625642916808616800381063086059286902186544390623824427516772920334979382728469493212884976484481689439166605836358830234305056149387599470571930158587992249578792012298958743417763939244596975666992636781214108982354899030613546169662685846478220972482259386489551002415272568398718320007960739925514657324007588388977297407402276669099498887458125363474930064406029536197376338921506068048916016910126267966566836914074141824094996703015717796666962287004374946691817150314302408186303356651822410156507417252375330230139082749993316647931479750073616453771594806157282585107825078790869908883960006702007752984996252438719379408956469651175507234111199428336627322968342028977316678516114343173106090406065262048466560391457749840794273979564673104140993245003828231004221668018180967316997879311473072080400538722323121474578937863361939010560124379809794219762093274990258856694574625059521298552171027789372734985207772018046765845080205772732887326604790394423081667678477457597206484464012035676728247207865501150511747773402186039941624531917143095898498411740926409345403157923389937259336263797158516317130272563294181244206779711486675228379328978715538304851329919564551652269930701798164374340655464628056839624937121911573124491394756647365360713197215992827663669532066826562940326679928760007890448366434990198692341839239964009047439192975059934326746907420185975086508526000585690058990780585305872955725828119804575143317822350954885468471044203514100879170095180467708061923727181126594811719309564173992820938387211488509523871490450570857891398349717676835830685572874916587966378574995206731786861685212151655797713524203487653750865835775515513743267458572443866623226415131671001556780981942869605882706940307113708667589885977126006949352626768828482513782384149419096263030756936913002196011829524244795456022749235728707503778454341173414837746895888228400619631250401404146373843760980769787824546780820287499283971288990933617724373679503034594576845096891758664859379307292257139074713788983174620437819196633867374045753269306205249818322482936676231263253011141331475002530693364129468397187404778007106368657496098791088742334220864124794952799007940102516798818726078808672879294969178702691975406148198491607845128723730182599153398337579203786429197945212968165963255188919396473192759125718384565136481499929647536406948949811565654799600529813097199791048013064353712193662908283453241187141365321712156833481313863550526223641768371379258463186316224572606969402307178861774044597038964621643839013287711648196798903175940991893417543645384362219760154962596552457363170078681034757206728793120524176529589767578710319838233362053746993707118036534089845174980823219537564624245132579122632483187078862348385197012111893576464335283763846731489065741617290225203063201853430310369280833286617891272226084426353457956876945112307066860508746534599707262027901977154019058895247197459281918190102774820373352773377326590879878676571188563286078351684230086484666855676800974985009235115814160680890061038444732109803818524530920036458312337532213758508737452584672561619210373723870186817991937239800199294615378163970863722433920844174533298081581331654117190720398224683368091636565277790369491419139502602139320283796846805332836308925443743018209645753871228287589452242781237491040842565978047378984161607354436699593763472512838832012105693473712148190051560373409092036513609977436902536524123703118551123813619570311165983884056126897023727700772051463317340241446474695203085499019032857984528978033930062580640420884043141519922941452718971770375458445086015002136236855519516779774475795604238437676543175678869847107336114468992652672202129274158265004627607396598084652374258500840783239366773669390598093366598519498285904595377033472002414056662692497432659648113239448250823832669299229709554771005213667602663967590784844127523049037872818256653066540077295817592044266953494180014572094451867589105899679998365797345028804037278634900647314149370748042196778792866885835072687225248613166699865348285842983488399532082049025698515436266262038863019052057499058872543970609950194303058401859097538758141576800686357705255830634694188164839276533322651348533361588440329786749010850306643343253053498063134352980965727923793913838593619949689101356688156648565566866611742257983438616456989167184033534053536414768827512250960358036554429748634154111784267141859156295758016282749455086318682485137562953207680012018768462738031588375766675406931369515352707826169560339517648527914586933597632541921986440519996855176916471284374608729390168093833978294967933854098198190829530006176162883700577132099128070395797894704987427008668432435214538030332728850861754039620560525114975409894294272643609964406603389292184371465681169760182707813371610250916410885541875347478221508412180980455394932702979518697570445281956421721230526222214323151985617548438717740537789727135155430936617215377713103330968824148244468278834058670531475523980391802248568956329963062242680200799946872153381173965688201009141725959177258909025216965635949269482872217759997002200272320868015108184412408219846601946021898718708899898515187734436359979009433402966585222501828262359380078662420731977158490017084373897796069451298771324103955644683819301635520322017519264953200909737702166950627821974611643646770160017567085168914080280997224887080958734599262702685081273451471897203555399213377086769812107842725712857183166729932901289449474023400359148062639656450498261605256037449862427026888770850424182854378617506063956824182114530692589648456450494750664855642918259961490853637835229948462068798086770136793369380711724661809907618245716928985663930838259935322817927501626181763930788513385337143277726381949796624506398727001162090367449215056061128020527174759104663469618191768713270555811036731566912992420140084363661199823814403985034502009668332967771359410505556506897026008720938664937902015796785923207509379082981129899669099246791919799666121209089968036502148254878771806230021589218142054208970249420900949567407255174766291705948437572400618727821940344084072978431733784575074478464699916593322834985390494906352146760755600159029268938305683187060887842128805186865412540051120428184250924857598037460650722080579646578845301749432363294783395223799937584955387604189271123764238990612888975827914457024069154328237097617565383006680850822245072828450340644138876723833572848704487162269979741275117424736204824328627357287345574983522709543671822720319034813739201609340271139570938321624652426859691570039999666159774779251475799090798444726761909637832062245220049799804924550151293817470383798062239296101072600695787918191156654336129867473121316808402397640131833006758118272443797622605230395398720563899091606496969474378542894282320097572939714240665128927097669900152104428441272838253104379786548027351348208836295004439071688440992787534440206299535061723012114205021788448542584099189083236543496154931582957808994942669520337788804409621796067190060205119924470806346680971589190623835335128704998635122997146771291232399558066725620383794530789628685033023529127728741710214322907027818173082460259218973954556862317518093392067748749637510804890516383130508127860717550869224643738674330036429497623841980214220849268028891824006622669044026467601761142960683025526011718200098472168468124684267441249794057002965692604988920253217536019582581472364749754000716197707747021975073606049885345474172382736940737746593444963950950104405434573786159477303889964757000235316000354280066773819306677214985264997300073919480708591799317646950743862426897840647198030189770374306239737082402803071593496527053302803496701735953619573850036353104122041661760316046798166591970098317887679846830626513791169790989665485478909738357788607779539439882430986635914313755604091322358621303150796464796178090183638110054062816365835975615047975264550805677217989272451122074185373033620057824943169231606885417076858062796996051031755363247836146563744151363460297548339394971483198412554848852638596653764147699393660672732514736456483256045942680846531055588666747869921439059657439090380185919698784094569540977152937428203380997837034374657552814006316458793301012380931017175015018735301185277346932181627732297883168470312110195256177189104290630241455953204156833418836400072276793842393108416827203709497219253707839071784690413713808055169069213352830156872764135190448741912917887006511581655282550564143054430513652418209323693703290507524947148706878535858510819507033067843015447882251011358490574372322473201274830721950095198439925509584949476616811166340626614093355802285417354996820342863587352765417642709420159374039608185437644663742037270071129369072812505728189861228201298107119986243973636221139798078631987732410265340173685441228645135862808686579337386500803918723355777741771228875261372996605512823094691274211254860669986986972024941534731619262540589351905926610539123086623675168563401402670438857903131548472435573054404685777950953700743261073706681015651515758986723178994208475259717329267407249464965944870440726626693257720382308350724633773792912758637504942895454712151117401462537038924240073375367048287185091161344721150886641396199979372029627108180938448994581534844744171283681152942862668734559244125047432224964147393387325069792031094670297858552883901533550020446576037828999561286336440455823187414114903880284221421638027932469772970639409869957873516542162199586594704697194254035443653622331217196639864503133446913759315990129390309380689654436630625735419937828508690707634180909362726227942963520477289938971409160223095627273693637200447618942880468223567598652107636829480866250288059556680838944270987213530893699295296975164270366822693692422873626613131572379738785321233878750112347558406782507298781056351491715117252434726250656580018160801980957918889680927956462610533134657124440795966268065135468786679803634166454726767001362562351976643099067702231806171148423476696463014949982393005542885374605589715829016344759844422358405772963359443864943828609392988893789532721119110324490183856067006755810450257151572291192867328223713353275252870790931030636285186072882362004032022876215164692745331894953292573670638062896726330770324821124354764954485703916161928458501792270362650280363236967137965073931137804372348969742659422439068607113155703483131867071043109229094504310328131011278101080851054958906193768226925373907817744686467187307768451759455537999808873055969201910797022843979443547962777696131927149553767706951961942307108332509818022064760241226363337301737657846452039586892888546134181423529481253193207049136603145466948670433969624321305418305062934204186349653639223276258983206524151453557609665128398630682509065824296416926079957067155646832677682942602866549398829737460065934024857299577803995292630277576335291793755345694010876421169418582739604069874838973055357877555051851868585826832082938099594730081119377540341921937987518212808270090607258084079713637479464414141889320925553092721157632035457932315202572200505575026553332106368693513862951419405023026385110267322060039438421792050437204011635043870744656934039869995153091629712664411586006506957045909556127554790264049520111334295097122579948246020262658920167410021902590298208738665363441279226469826720329243776558105627593907894724949238135067244355889791801966113331391685823480454257568980411585838480943710171869702322761451850940907880769458345207855917396393904544505639880792252578412765105085828370889907649071637556981807731174287200928964896210651404477840743218214464535055048350330019980527532054705613355513638523186281481414480589974444673413998047678847178794572148492090011946306417517114409779155998208516586291451387751214343064100744988995693291291456764868087194921246101903093458742557280259571474755978032323173764766463186486385096935511585581466390566061558396450948350156950941252693509506031113981399364859134056348708172540377646413098311122202927625543373547593707026402420847641868773242975634165418583929712372536472709509052201872787714386639228336673835840478797105739846141961907827970055073652773129660465057059580201738619227010573175731319173154741515860039400118767037254186578179396396767555965481782668510010953636858814226164369285404996895922018301613681434577728678310913476006663899031655947471532693322592516073600382867861660118822778747546526233620567348580676338201357596042124354234450861794226325095956993822555577742023577548618233344741515896858633384863148500995665070556137103574925873522551926638888927537115128895924403586360459736548340421385796563569579555654659054781764557359139935903039234457153944526977876664655330329839759172900744822927718118112582551909256916479869188898231589501803748412263805156204716191741567517598793300982961624474947832652972062386740456956925233500573958566500480662302745595893543838592763297749755915214338962342087955068553515186102958088386732390186797680378052291910173338360923241895757648739520870720284876244015237124751637304936403024730370500702758463550165748554794476337859049594370263701784589649025338355266059353190345620630082806683476109946414200339830407405082706637099835639452239267805710759791168078176397296656996345840342445105894649582067080204253070026497482879743571560482615711969848770511474970686725019147309538498202735034620968081056035181476101532425175754128624506869287647212775478668678408608256228415878822739046227016503214400903964397293307394088373498149061289320490752459344055357335010374764901577032425665204573987911654025433591209389192332427375837791697123076448559566416500176886238392985558596179763709603720177419494357560382760228394350477540660929734810077401597087038447134761358127942464589053193160284505618309996292198812725143761736157080387315018276963331338965847070675435968369655186379701465877667791881807252989877621250787826103978818583476083003675825774539102092285829636632963462329215963591499238741607571924893275918215709529479451496942673269745036891888777158518360917378478459601546820146953450913782450096522806617793149228706460356303196397701095880176499352861267609864355291829527342554037913050594344464062939053039100281905027374706174373383411115944294301268711386668199559055302899564999056488200034845897605640001981756128553578085619912796841594324493757188301035825489200863364968188692027507614796947674174496250866994130363213455527868804639143668725406063539866489115841485458181459840844940950491561940154225179344689989714010963223651362583539194837812220359855798388228918293841987592620054078067790379751149226270262973652678807461822937809689623970988682901131190650246497719770101222481480570487637188646267645410750861523563544487159785139020640241653942892631592190847457893656366408043687921583015039706476195159130327800163867832374383586134227337884677211603530005428895388836176767880251612904555468963782650819677656851785962965305180576170810565375331376485292701079736706921527235678987996390668664919453546824773310232991734025578252961688407624137140859950896763937830495408502941896888819076950311022351768905846179562935154883384055062991384363406693358323115425784180888035488177289314674304536280912769403126279167278487090071337955854242812490906354636402802963275965875435946843212298825828029806166384441477841303978167362124394754076119979204534268199025048698828538588786871566953236256186432099914069489994442615515047141950693092800839392765243072775784017359883366183760986106911574981194147674189993840364300400658223834354312582777204814405599040633908137346948462982442525841009875003526382970700617747335410002394580572821857318951870909353707130272673718470631999285348382446832875286852780095024665039042579998487925861618880654018463905826197346968760580377490221866306328084438962711111411632326734057097571862962745153761860503037769162087872329486974804745412091419037265355104023679391708057121556840532949470584582388228161098646915458278673190245791497695866946793231331844141387317503961297098121536108633518508478627404399916808033992216865805336620957178815360892171900385791168791546035404477262444031677900260233025890711607159967372786898720195242777339559294150157183894428066782290383160558371581396134735857177842064451357346859695382960675882975022745880512166051845091549544146240782803615530902700959577482715613918245102076252902095548677448130832972298264492831720297153939885462695442436977099757255799715758598156663839660782234452576542140986744446218760430958592868278818186808914131413785608502230991439098639510755606097583103646166514127181928412715283207227548481709144591149289640297400716582801603792522348204148203285645277063895091737993405163535560559810977010783757974443012839368332492768968479841140474047047152799035958563523609610501027519899075375886285924645370249855241782345552432439148599131893050271346777004759234373521605618535246101876499274347455764109015055110215024153515748893305989753603016454476294648889198350097679492413635767276636884346418884499873376872831408896689045790919640675993714792387449256933123205607489727568828869565994340642699187758099369265107813888866024697775639277272811920428973687659005966835577095684945998863497003540773434045959412272862030876093711797394051760421673657534177472074165365894629701710456281391660426476487146123135097470444296029352886962172370301496096209384635224916338212400752428750770314553826754766746497878473899188468751971754498037295875683624054920043622351258503229640292215749037730153405579789832224218192622319630363334075478610105531628760167765424906501136854690017537103584076201514532956105941620186204007586557964116526556351294761314187382881504848489052485112626444782736654591345687842701827749153361742426625468995213560608000913397077020296204660696489068751854730851758498595384556763512531970116767360264049367769113612643830445694412690373899880469245022541888753404379939549969496949076814418523736940642286655026424995489741149939491592881287739477919488143682568469807435230765624494733195035568923038122749847137555497443067796467791216771442947344804562201150833645799107708545008863555053619469773603414180207735649628654028045379415873283575485652377944471186775612767743465364981767251468917161543495149521218219725364088034064700378816542499457552033920058046356154275068250061641319369569335990298062385054759685710473602664326106223358466227882419177888307394381337184792208928511594842141823396735484526839348563634555611666717004641671021181500625756032179635644709785894652534891443100184815932201337499992873212408227555050271291893892961464228582216990260423058084664864517402170052743380221292426387092577833260252134948658807578843348860874323582046523154573179177265036791613098486446262457586507245925829735222534765680446805045551144630180341491882860574286355731147942890545843012627674286807921690182326895159270952461141011176261165580862797957129251775751659161197232020108694538231734878461256391728848805176782893613168231967189749250428468312412458101899783848269823449692007636212682598581920979153301718072538666381951303602114665522251921802918339034662079487481402705504368175325477680290323761099704474007920418797527281159270839076872525642865862532481649580677679375998830284237227821484350403359418872938323941162240484125828450446337842994368814175530588792644732128626154942537629991770256236849829117829205913395397765007921174422843484041640093455797055534264865041448942191987766955022178738086481310732353701615003741585436187854432959842776768118229811088555546024200816345248159108223861323115359130110895252876131035162902523272769107451405874410614385392283681365793481904504006046617563285498316858088427981225004926664632659477976138634951567156550660545661774591299654201544339386318046552772270719241610894796242333492169311461712207729266802086162894445240187932373498721019378305909458604017732841642256529614583560866743457796665170858941935275124134969926931854243117867301787989799161929496367165529631783052505956756111358767749082837254462214381449286331271744502686610390672828424182055689601376262783034325756043369828804281470244922928891822864338473104533917554054609673543792335645058238034636056246908306595407884700027205814989431721822063809479864617397429659800242543972912412460387565466945239161226084084795153977738909656163560626650125724043658356522202963485251007262800744479857503316112065296364394251954288827011402689548403114859700236738173102179105008877398807326071688352917741454571794708737393741199820272728800064405934186222933840289235769765537055910344313060026397938370785696830082918099239809793758397028267740539303497438836227499199795139987234950999284681649477787124439838991704364853415464560855883100853559512987593306636876288386616945832367077194094754269897197042151359639584356174073036578983681580377178971653990230075479373909345173504686241738129596578209144555132337776236976732125662976427791806965704285897916921896154445397393447917654206016198397641904174948013055810795512385489261363091692055148829832945999690095448972774536393107167376227597476051975604345547492700416125832826333526682232596957233787555348012431123185944157004151684129023431119826817460984818548793835890787746647066264111278332022676451235014703866653353561198914680948151355617012966039653891526885986887992882036344696294570050377314900944276864510133065915020013415819854883214894933721262089064722345007608016601888293565790591976367887002247434864479244112057033007911411302558791097952733214781736293861360558998442084457696733515201557689278930932846193524247978114515845589661527317743676447167958620329601510468512457868633989526512054191827709402142058561098427806095002834652980479058845162743782550761484786702845657303223377020984184162771673609374117770676388587790216538076848721077092267981693127826200997093255514984625285273305671746030968276737844243458417114607770025970697795324477337255745972994026399608986715599432522865064941100069734697958039170447754124588621483787827516216651770147930092713422002117971962126369310704710240778989317716329453557576155187589635895278005022407705991215381567873854385203458488931699591125317180340811807598807734885526224186418122677304832180204055597770519963224863435034306560939824763911178263709549717559960434859866824943770307704001788781515512820662980248309263619030239081099533926360382320617293643920458649292825727843070337873707630138404454766846933737525655233380360491708092112550247089204821753502556133011497315144973764100872413526310451238857530058674387631206267599154625768624877984030099527563896869932513862550336493758626739155653063457730193597299701854486730793683171037917091817749985439642294278532760386984653421387247316028668646033282626741832847548237672238213973134114993095016875783952424732180275946439066642564846916227921489587028283182382856843767040747328517457890823161507465094470964402518433466696270522699493988494048209314971523923751097788638177056366892068114295220570143678089948465893227875266672793392129126195999047375911323874645856090038254790240966416957807869915082802591862821719458587648572768296362142611037018545407276123633937039599684477967397971351266590607021476668645552372076300800147628824614987343543993650208427127779369435579460514198485013184901727866814062868809261024871296155234841745858047949500260627973545281588583752599448904557919287345071140335989884382609787430992353252607694581928148136128777041318719716806104377775209559695974099020497295377199962951293483420351445190497953699125136690235407272289097551052609742902255942047218279430408271549775658448072853143019041213120583608414763882621132686774271563213089333205318354837959491232380876574262155615971623020091042698291821333031505569345371262576980360568720912872308263691841668302559903415654654621037455764474552061023200783050494949914943854564543146529387288835271785617146933680122904434170046326582954480816917009668452696775803450827321294564190671714945416561483791438387080785571175350016729442629926954924229775126984117844209554519809291806516538106900489235611845642138452771139630553656053230250752702172295979354979321604555846939112063811398518577113707241457238516663931543397909182827089916753129291794619623493013531499626600611025822677969194394217921917879968362544400111683677498693003438808988270445295737331246261837372030398249207705643875171352716208187594148614148559977037871730184642282801921618630731584700157932021609686476542071808314568735959961524557203577913313327257689981338857063923782639572815225607707780159955313568119800559608839254183511711981801416212409541207986005831625650910671816456808015168458343045509561774632919112842947578281843694730228152884257416681598052744892585210539061958688854618693183579075901371393345697216811043539864821853722072147611083397327088318022026838439465011272723950562474022571054888137028770617951916907722915023385449131705958035676358869481381163683974793125625995286799826711287310452031164492402128468362664725240521424457975251009249274455928479158942665654411735755520064623443458025576008596961576766688025098935415219836777445139798876615275898798915516207092244714707359722609560235105292405173945861445920761531195073653482164903710568428593101554590940891400860645263600827776830984395420592108759465779786338006062255827516588384107092656638167410331141536264796351057174171081528925587846233609706019668873166921950774483522717666785702889969691711891455225635680903540749207182467768068430758701153410432177109293528603483931253315404777015985830079574209494989467389634773271535206469183104819020371699466352166409623460906416732829181072927884317907673107106437799359557853281112676580613493604978388230992012788334237731289581072686428249230037365692900417716721760512887909921280538275004805906579286252311555455972638665303138142261979076485011144799770630923381224185141106357435578511968195283474181207719139344153131210622240172343574897009878971304337880209285849183351565575520635583271694372755788843781448141856434134337223786000634453462748880605209324130726008957275499787242340289042515528288479532263956321858063408560730058049944758780781946672941066979843286622341274083222524679612613439504576002515647068124614546486782778503600779141156791245057539040570594758692632862542254424988285492474623436917575135427526371281846161437789579089902044146564789033537631932638329265530854777472541281374258125358962997568248731115534763271876350686010421207243265068275523017619523225553487194146008003455142395410319105644088223690835416656314975451603428554907040587244744616454378063679199424326323877402509965642012733423861423227438817100371883093324161598172635797932954439398496615652261803054970177561783797265886434384959373621152792228450812448426997854986492482763228342905190059733687357722939551393441824623199349471039948641042006515712619077052723382452770990821307971064748667846548670224268523235719912672402626477199368076708138374675484144465159650301944404176372969589608384515247661726903840075080544810850103283056586551252308827444748933000939644729564257488519970775093553875729558022368350284412258206602913167736213874906130091925272124269053698886680647875577521762070797144871333299278787833440356635498509229540051961919492380191071521192977751458767446001853178303283361473788183458367405765998881295313696896007390169797493073163709474888098257146171078619667506133967804893814455363494018812937781823021563591555266921688078495850322321542507483138543073463744574843267040784328275225475022939491899489306661469842141453642717872065515019806983958324693895002324412804557998345168750725737385482138251150912017831142280428631396398912671869124536910486181275617778681369463612901934670818832528834973345938798702749315378923618292380741516749088965122085889516828949013751468863748120663687565499952881996626905144001634604703364131892923598499405472030550182771749069684612377439415597373253645996115045039717483116224558601259778796537664592115077941318347701099743146212095343745873095744673609628857885502202412058271076384975146191458110911042839315642595255599749974377574584888666933066238355839458689502463503501589375579675597677355840850998866824823110481381694618074892391929191420053928148781508183092551376390357525814142449005452702589256872758625070899521530595596159128207417296046832630295381636769276736513954630572145213505652026260821001216109755538301153820954598736009263092006386513026721502193279321684052814287570160846710483822568058710623698881573786120053803794715081390255949125750533894911382211711151013308055820510234583366183453506995739547265785247139223275112441032998461784416344382134429692860618995078232356843279148530764848844384981334649540644214748511863294136306066619862930710251674391884587890344319373907510264848748785966958474977898757606254063096495727821606865483813548360290045436297000643728576652961878644908499220182058885581553623378400193987299650594738451843248426309800166034469369905558283559107753978983172279253157406136494821649881872117772720542901924656674225230280811830495323447161712252899563753080716068838603971218824713300280493704068749259527297662598360794100622650059709869242424489010932265993977921933404974866568578526574233200387979195160658904668151528779876230916151368862530436657775507539194420544381420120436828335642929737975292056859724953278227235570108750669394486345577815032705844780605305488755964964227540979729915847723384855149941036869986607184895958779739119181501047007462619920280424072364038079236414234491019507880459182101997006232860485122838399718514523699148816103520768520961064918488310767211267549371647424358039182861486983949720978224430425900598136467158601360876762774036919507336105544877242207936533498567553204070184247284631296092499813118771283877356584441157866047438795694487929797883359198075511568199404099315472795269385600045899263108663385521817352287915163199566889548891240718335910397472387750032739468428147135226939330718738533077871207294249427824373807832047981585165530501700728634500617337631564192048179060411818990053356395904441355062840324232793946611821974780105244775718040808637778652532450228395424380616600859168448406529284964101558142656375160550130607098759002203019916676320801967637216256840706733563506569132640306874173895087713623366854000303592246384392784111741240499875201025332737608807813603614556170275061032988390647866803676899971824587096816931990135917094983239198699900799957239695488397301615924751139785393281736135188393734582400430360498406933826537993178964461402714828032245638032458899934929277369564345411820547873006931500300617799366583077377225562469310103135298493432933491133026054804118483054805390666287272757038913845601316448899114102650331849922014685494583885001788550315416424817407262219517661583330342183182219375049663150502161472709358625911999597329223301139482805876295015136612341148642679413138486652221384046422874207745715165063276191636618305200164336123071033639945234536938917003311235932060577092866618823827534941676717040074927790512074250255079845424919178516295387751586872805954157787619786323673214568313719712345260560554965072822021790627429391122736885798895370033516212147537652311773788249879212244698043117724435892280263785829396120743663046748898208856104836726805993196886756334251215262170165763626681932448764488835409527108275287657800377694951494969089544833810213833106712224663141573577488648903475642688351830538047242584354463909806109528352690420695927829465736251367111482085204537916336466089821028441217478514698754056045521946681038763734346829279040360126327100487339559490956363294439640777312529929447659776152420242702046486317837658707164519485590189616684605999600700794186251086626385853348915592546137338717662758283353126230774310076370320308063871364399746077811400931221363968476802472777468885523283474705983752900179746271089192762393000616883238698260571076856980236191575201845354299408558688692869419151546308780631420328819403791866889036459160936193838829917473777622580226497708912089561183238749614649707585729647332631109327480689304015371017642414155180993305477766558734632632228210575512739416744066539812179736976862246941080022339154975155899706581195540555236055583389005261699379214690338056273785656649606717366824423307400099417870349054923524087138746419756125449244585673054564484016162604412137148854458559352084423033609170597689023000261482910880401365666120930714578340573336282323057631791631458169041083168681423978568075261179252518906104087019168241314722464102860816154656457323017141613677962971697658979824792815581669158534489927760212984223830815500134993933854923668352965815238277990109696676839738872836322708521895392401498176063314337439852918416308014703399360295780526633708170263406419521291912784124089334183784082175949622962657099072223522887640051142949600008345334916869246817352126440810538238564957972173176404577886836903825575128220681192197731303074838728618157464102081683405763796579877505512698175718075721549753479926339117865429190831435481913599345077048124531932610497864047495286842181618717407227398275928796134852807679953429098492053321488579131473382054433346693758134846419332341371750900963074473881368862835309462018614499406010384397643123601172137300637598425238211904711222169620867259746829917851029216266697318043925879428423144454158280253714678269286987440340895371482185049733665428881288303498333402491795341031974218564063195491413335309949123813814525412450462646177580672250967890069092099261823843217802288557298853296223058658800364425110239582466793322667171811214091257867408680409676619926210006402147461326985644078559490057982419656163547845637651917087460319999105271636529257099108682766335016679174356507933881015043022040534985163042473474722599461480381296182127329813459324030257486741123786497145628277964632857414350746856670281576006507882639281050210154837627260772023923787362812361386920467880497650853258584768762179891760985184629766282220009825955034632351899941476159208279495838747419046198979850329016937818825834323710337247849402056544557406280695039447893945852352062741690964563033579652899424706570321644297626343657293668943350796134814723252773999246465017185273486222301749992556042221588163130171559523005796443368349587185340436937362080009915005506945953637906716616271394366258967655562346733634568922076359932300098204158456265166979403359362124755245969149540495169735631224209220755786826214434900856044979104227760622130067678399928182629132953861584810949957870525553546057727071732033687288377262980455948044861976861536770386174227690693835195486172397894075497127920448849919830920948720436719722247054628561802874574422524254705027443494503391977414858258883843894275731925782624403814723614155350845771373998771386206679865059905197089179417844177907824462566049116104362703048695918617099040582969236429571277559388452147061600158251969275082724388003596351570146585293061853299007505105089971281793488149016158099897642406242086779720028850117123164683104861008968881663811585227943773520546952140564376611820514450864444299513178287210592792841248260566675452450628042634498239102449602075673182265191962642461400956078471560807553620929029819621144452672682114761506356803474683081765682066122931037052405279203209189495953065365598321914430846459901073676025971719814887108382609166030840924985239810292902166196638253629468045881952700164571792710359159613004176815771041642098954201159590043401138527339456596479160034452103306660627176223353125374724606286634426316681677875936734183039232368679421141796350126789402807544107993621027736481254624834511503623802356995129977570028600794844974757990251011472583969784434650024138895365022243248014914628675625408704386888463228748031453513375661591953367217067175480294452863528137707523912964721662448890650727874119019137587870792091196502343301827084830294309969892781976677441531408732696141297587113436252207485904174063652737873825617834500655577655580799075535084144322996809549153738229774414351614312669745451400428943129068213769837169585063275557728870531268977543671080794479898722671407032725172180253385256830995871299172234379346738420529158263606153149534230622423518098527517693845253450008056534262666643185828703503613974194682166034802884310505978634022663842548686871090324389336987518387244946505024153342072645187057911271318225491092215807364045299984762041614385747091840399871708514670041582351168686189022939674556325207457588239684984912046183142135097665621844240699712855817228848973978236526811494938388017850564884480547290158720023874309826831346784767461353692456146072148427216280232212955503585343658427972069316074351364833763313751517948246786545206827696542727587897108249072438712609393189097927836614511606411425473780911839413802518864112410361944648236062703283181511797157853823850660602410925573826343961675203055475483120681245776927475230721074633971907846757589880938554017892777875845609095028479585363984867195781670619888228135723451002561394810600407544420946164596949826377430366220867680070948292646179531012947583333902582466952592273801471536662427514873433253317014382509088717966287351284344958189768646906172891888495166070458519544813616345798760064314299511379325473680790233133862020157520805720314585332731116467916557351683691558428719401096074869055480554266015226938844417381358238027519535385378076975962242180752842400957291786624913029074769382945560799408436279332254528322334174362192787375834847119164661839540760084683924918122005704133452789150148940617554034841563490671288555183828543727281549612580060376726860708779690625783456237302420053765313325336236818256280626881979985057792886369441012880176650952980984406433386074243646132671594994041869434497473337402549628443165152426279458012119963621186179762489796944330141973313819454518640575160481682710986613200255952234269195109093225009126563069628692872435615361318067050178679433478475784058138017651590898345298853341777427354817019392433119888252134537857168810796436886221502164133178268734648826500499475469399984146650120181281170556947790574267587947376051304223617861359013188994542859970108590074138146951113199911699887836167661755405423342654788535530175820134135937768581406583866291438801124069406560999003539766999863402684581579885436381124451401892976151322238650072684536293281807818090450249838053083281702011076185014699419515972063102888256457184379061918711830301265274308109254114676320381845879538581219518651514066661606849290005321215681606632504381738855432514985342138432787473687309609329186344054140048851865378636872262328552135075955090546147905398541577808503787503500913604353795503511574030276643519084499950086626127369221658509103685177026657880022123026366549015787188504365739793256971198659991003812034438840960440133471082968161356462557636510748809079413020532964905978612430705709169301988918177876916820575664982959897939541360863632065636649881122323595315946265826034051988241772499936022442765427078363869896786524158223085676874460343071228592201290401408449456929807456027399732120062608159769844428176983639900579658256866965649433656909920777166420180456491071109127239346100578234298432080882905794788731654275838221022509773828941677132594357403431046801081713144747303022391760185978696002654793463001604476095747789179836737678927639636011229498301474504603725069003201739531794862144988637802638033021235944208667735025036556982100672589344670806264275316950568259636952441405725895499221261134251243419633466855577046708800755267000880475474555529374275727222079960770847848309352859021093691988298887448703036902978190821633315000677199912188915230338684341751369401882746769861598962576335928381068281799654774843690503369512045618060932573781271515292415474586327212376281350334301106274084493128538694145716635130319462312077087175919926828806139919190988490991692906478345263710437276195444248329405017468640788539080229353637645720573089676590612866613173235160705949470302279735288298943323503386603877117413448575809810932578383529842354173776848033772800137617768417186356195603575480914936948419219745949208213126510343003236780994252283400271444929639004929915547042233201049750253957651631050876678852373306851281607661384958166759111493672353189163037936813756992774642935504121893960357919986385162785085407642139206846386017175807348700915302943414370421104759602030885091303491291546187547747400306735233429289582574162642535211538463854031485532224911470572963148433835138512640850052697455889771524562877681542204242745554010326642098463737654083873076932478229802937057131983989228210716206387850452813212903316585926180394649199025873913128455901183987380159620420418464093016999619025203471067847090145552858209714961653789459588696446001413948596592043861476846678046889336807288183033151242074332811947120032177255465797189724300694241937481415591946671814575693965825928963913268096325224008616035745767360580977991024442554477803012255056333251365600740373278410120994290041616650419728009258726379268551933158288723537751153555110876384451814740765294918347281925628073580072223110726688850120650420271265380285458604091940502828145905011065522856224347988455601582797916482672832007288201639026194044627043865385840398531851816859377017829921946630166994915902831033904332044335386440454052033502977915280906393692140163918866959965356087643245871163311680685415455613472192475315227578098906334168083134989932208040778207910740258134226765373465854122705906384494058668597133376634047163457756366013381177544349910319851348330006636674210224500459608007307318189287233407053545216530484652359965244030814434889284476042772546209429857888126509880748614745898942528591000428933170234770623456472110846094800317720239156300538325142504806967172729308118502201027642633117252875398337623377736839453302664753027154072617017515322561942390767054178060035316622372327404352103142122535882384212501883294579112180163178360275610049252055193766789407322795434519430922919223369677120416324477320605451232601792031617562215612043836623069272078673108057575579286023685631007109719139747796088893638888719071909710478661815966469350283017880081537414925689246640872814122777421276536565178522818362332394563866662541398945813379964930631101937521137991438009935678677837344151972023424930321838642324861775537944347224854763482219243606039783702723248002436237580938314526845209434945967826091068187715609142965439059738831483283256675531050900205123968088085265544700514327610343108584392958271483645832701147352253522576311994539952272002996146979827898309506272180448241400359144777733738393037411465108392029099406161100009400612764996609283355783344527804589382877075744523468755626293488998833546431545646749120071708122771466458362308477133936703973750381347931408698873164529848856130109047110898834587779411567575864503390563365440320565431609070207704613255400529721044079893678250325470891838179900933459351013106416576579058663749624201684714699790713523190772696356793279196507463260692136005949803090869692288848295152090822608577301490533604540389744413528292823379545048128146136631671787448602584305794283733013136358234540443272328789487096555128856062787431083418267581231767957844596007497481954622548453292852518323471214227534277356499225522346708556571842041857143025123638321096092368897964859589080108811111353049521006237860872618712732943145224382148137536954711056264598526060371908872458393152484882422238099190728848007704576373156140681434563073178654777453274743284400086705003364809140089138892580514674815383469192303767661958347582582844182152571658496258918803024454568451425062927815269338307284833688168933409146272324871561341527597743506488725544534290035154358431549116878352401985527600807160712473788597700916651260983141119966094585736565536405097824470083011530307405940843349440315132977290130979862613013047877390107604376817619242141425289451518666857574148150074285777706296234013797759604238927655462839154893046954974457488066488465146998086629679436602313871871869159080152515341191406057355270027469929861084197196311175159174301731171473148175580577566926798316167709304480249655705491179561515753157170783757716258823268075437700040079033443537740762757618624429305970894265914428046078239543261092749602572595280876479091242985645151822202371519516790723268303657352986295089585887832113932324737282405157344808604781339071234480344131615975281166399206881053057688936572441062358221259530722999207681294287588524020400028604597602250907795559288504893875433309100611702961071726176463569731709549647058020503258652876210914114219535404770693069513271462886736574754055326600613574013328181296387516530197374108187357424173484322756590967953280164664891581450278976504928368983999081329748972952114612765276911718858485349355195734060591346804918309121510240826246164587978328069607795207065488550185313534604236300093373465143376059350592083790498759039716680020595357606514765544998867123922140868736669123866186046143573573498193666936265952358146985397962909676935714396562328393920971598381699735649162349238937059844728127776258557460188498232287590467261119032405653569390775696579858887353917728777752494357122471327891523599039934099939610449248369695865521803539824856462638698251194264792709060073550329621624300422491390308092362808755685707641141419625266251262491763568777471464384645991766549841749025990184976537695593553842185697566747077790460741543035065727553674166742913807696009312309318634521960890186163194647253667054686495092060259204404447502123637178630568260031269496916109536827660699340830930904819383062775122895480487300680372788469333920485443828208527464819460338831125642261313866026806390479999371074680867530664603256523762411802037636607052634736165754286255910358132958853021971381652003046792077291808071023638174926292436618409630079699111234843396132316513964909739417827959256260919579100354527078569248511781656144048404313999491859729789061542095046412250263359091787713341648804452742655461442080204008195515015851541478301281739236204253596466586255462651638856305526254416802497142845689855633263529160027324393824968759476413612252927756894657649563833203738955474667291113450656512167340723990281065160626957073473286125088380796070963422131925227270846154182947503510976971551574102089099079597690309423578150168576727084728001489407056124654297785830159188173076088269201276016539214326057969027564509650221061016019951735754262161912456237072900795902211553681832810101173121344729484687749175176254537850327856213887178357798361592691079357101750472547229953891897425115919929340353572097610263661847625624244327008686101123049576412355157094201984572519326912890544096357529991429072670699666328966190324239770285466002195889257233155375451100067212036315553190506578053528147092915174446692557999707030277327916504582884187172556874933205654059813003435596958716549654625075165509364786254960841366246011994929061125991064028759328870248993891791559516725811534158104516308751540938872554880803758653301714475570945016154072644575169723051706890697267253319481041560965408008630028415577773013109932710653141799424833248573545113625840276083823307086022634704998161763591797914321251176739450262728408652615815417532739027879699882478712239951865669231665618179908383171446375673665010946514723167275410098634854734300944949669866242703843479086580740358419328831147624904962811668666613744997494994817021432822366680005522643398066522050352757866589947080119353089807073752526164451225967632532040315389290206280948372924842551481425411660740296892941764560615862351109438504991045677862584285061103294927800273616869657871493548376364033165151316380844596418044264591738637083859810560184252501920563721440343232632589001966797580429981858042542024579944096052767925717574040599063106556642912266831710270618959268500727618082431783425536458899851687599411974344255695598130164818496029920516036830180795083103328907950426649164690375496393844679580983281351243715477699630723495388437784495469692552173466619115708969998352481280690859504044093256939115113613062218598966319472414693544467883055860526359385160637241214202833556560997541647206232884390436914156792175917649674364674276225965832842321055229268776972600568561852776152760175831234953524659238936199916740234407278879904085202224023880525689045879233151114401193379177246577173565424813155647561635259916954698397304515997531316997695096508700738607524125620725832378427491575639781192298176224418601122658370786920620809503747762429647245369260135325716736369343055160343105992504438129803323868827920192352460117282445529328638076002562581622115965168567313595644548198157726948482905741696716035256623157662727352213561802357875838802209328937785231450545832091237860220024400586535301557451368117110154217370525264911177614803174097977888650288526969186886060687917542940046829450060019690614102713219864597958533350002592079890349779377958095159614456407220344649325427971610905517674948421867377034337819420188916367710791316000180351537783038821787216756210925367906569716005223287320290523467544014890680272932263228400950094302871845825855902053403826104191271935647391986690365117843801874696064185888271906130809778331269735123715669302205748544368927096954629649927258749533556457381411503515042576554676210724997884635232690270626782291455367533777092683117610188821756669181723887722631962421391407330097255235497745117291324602364152255042863874889306126293156487076608986504564827599082409821465709135045272032627311712498027375915096946802941361250069611355564236686465871507493994606337997095700524618835602038140378309242242599023212742170752176246430808724207771229506487489828167712728877400686567621024041794458446273842354597377978233193120457653125586835195884519139530500106228915210253684038710162503429198058148432940459451662921850055744567952726798873981882791104713107915846565586430839120302576542634952110752093253065085190186543309133587281669750338555875128673301377380534321769157409201820355999880846848731692630284357631068144994630341303888462620165092866409578254160544299771960802893365763243839600220690335159724348860120018315618249822889957055264248687998090984232478181484180889716900073663612819542299695527718734666337298085389343561978016102993298448277945552373312053392373860342569873787145174713645337075209138019230484469302225113786561985728693635802776209378670467482096935861712930286064363152450535477321430818869706410225956727823983450583164913091363877016162875799375373541417508917657078245594245207907971524261719287533414206553244295237028293223377892681266391324367282384925038447621320593277951150274672387379233438415779599198354214484193235819780170666739772945324527197233256376698228348104449175047090814038037326387233178096122598630375707425329483558090377727828409403477926494200343529628851148040417427127227946575880373445455186254987905978936923857527917816123761580352451624432440508848854301915402901412465007094853569567997295693702866833543199056656427366402616139106627697684794910072563804738000449818771285242777539327341614603866141878320422782122795501421391921146666463333333126401772957537764934745002386122364464224758453832862632836125451237801129817674213690865666771384076215016925844180947244658292839273305986585130550114677887544971005141353395027791428665313922731478630164119232640876148305347873566566946762115763204306968033522162004048884749949071724982051282459294235909089673400423102376995807338073957627294461358915076169788897956648886867485415852164332145789601741587484376687790434895050175999135254133721134072155744683807737821835856001592175093187418583285835008609804500525174407610363976175501027524058631169799517119953129221722488014433511712444838183706103094637471834910790624529852000864755392444960931399525471808026564646628766459515387078563286704469026387873161169708846702197856605150909006587573675591149511507023190691711790911590311881897291241652680979150269927589088222367804650564477486735471279565430389928515635167808412691099951983877926439889837308154348855761709928331414077405627129421984299257358419250165471985677004909497876926562104138144997194336982345185717040054611638519730081068771862145682125488173657619239862703103284391242945006480885775913135461762037732561483195126760290976430984304262533707894953282865637731649723228101672042827864444685241929221973572878580516077902372861282029294686693086284741147118189193697976385535673304247582214894313682999005880156270777241730359248774315786456601033668267279812901607172985671307105345803669979127608757962070233991063662308921017369561946987537861520252435226963185675969078496983969960612659636462857514506849418297794135268129402925606306171680095498366878173820956639612799609096029067533047523807581154044601779589635421113880565692735865656169185026223225171461953055296734588555084683337467485989158276925580135364816604617575866888236073000125723612931937015632036435875029489682428510052381249716069173233659519701138782660148665641506099593389788410404057193460385471305499969170940321671088397475441062008558126030960863938656700671885946401592115059139049975137061455734768315992654474277526537332151716899518034399161296812178144651587014559430335824738663503600790590132138182703026490226199676107653786142279204431634370840548953748794074961543185251808983815858738302626414390859768207128895676683308916546952736586119044994276746599543531582377220577464371835383654284966321735627814793777412016687915587794919450210782451897209824827147177574397200197568397441344313721637904128950776609170086257102306431432467555507771738004911701741536960864114018496703218618417899296021958735774530596058813681279022307796882750561778182422521712129620047900728022282791563152740230977066005961657775320671968464490767845212629190762922834919153111156778563779081545538875934603688306979290560851932047017498741926385470618533713560583738178930789497466442949203592300493823118425937370167929246936875862039641713314156166435178659412645650639079082618555976621731175871265541478798099225649054975077168188447757136582601313970388865175137660972768358604925028048741823102427838700362278347475205773059526060201842558071107233490923139088824159765188950540610018270338143024091772313027576476979178396953412822845869205503297403676675891164490795356105771566052524709583795538203116433048530649683986095404375425227293684804632176006534057006963536000926147524064550850743025724885313956562597199431221710092740295323170421846220527040260855675681268560778344254249205332903427280503769002065488739139075003368393635910825243741367804803338608263975962085916270106599934094377225851976253074171116530606745384298508622521925720325074876755648839444852998361316447843593867685130344052836813596351463589528013318530434726223544449134218297565396930940898255655439405764123445531988787415604728869814191055754642744921770558846216311236081098851405820539766201985230330295883957300427373269329422049529868609591273567679826251513427409820451841552072483699294018163440619869153414624301302179775651160585566158242468946178116841015200998160354329850129817407263929895570890972846467608608017872642440855533806717857110011725295459992211224513073473023436162557555199278728110724509939999196681723555603296290149282549163501822486903993448427865643979035628893122432222313505856594480246971629327717502703243774232658994949426742397745489978005198338716508244304838881546617337709828302006693058141839318397585041216543662637872377285948237539336134490929572682214384643607930634682890390374673087140717863069541534359067098583034803336114825166231215651527739424872956175290321462440628280161841041620610648930776332407825339581371602110217238610014786592316892591358694940942395657845494419448620100211902149798391525320687587418476861621625751058413987905788292192907433383668915390351143643928240209542985028190037231642162187395760746821353289800852173393217992622130843640081072129437791409123990963223554153411713018339968975528856656529264608457373385347067934841049995630171745410831695377335857516820387386466429897696462497953732249263700882171608826126919860646526704545129948092421619907756078562569583974422604337637035733520698195094292459324727006858165651630510732660741917131730797899290866756727903620720698410065613123344853409902886441756421580251124446504533831948209316960538669325332901281984959887024503470400763674322844140818183925230858831772902859801521597357328059397354056112532294024506754601917405327539738178952359975358805532515566664000157634355176085432061670503140680641871434827903487610124274965514112062121444114940185519811721542726542057154537746097229659061291114819779737032453365869913392191877793852310786978987311071275364382333854898085613087292192661212288005882636784613654135696168763907125363076503128837900213598222206952822454234312129082041247794578931642044588489441452260284783515236215789847983093491958532197484198778624798148987280120627937170771560188176350289374876631248772299366015575488280768275285948705346905771470434203190278021026004229275012073559289178909687530537020075916947913595993638850036147525070734469914819959864434748737234034477111300748913855111936725831656306380932425797578044539888539769784117479839841659237224075312368748200776842911208616730377922586483596228621130372954783673185823926210903131263876519216144058049359355251420757854587865423499497514647948610208026263478584306466891998582654250463362757456678372584834227588758495212667950029177552587221374710356808452986420665110946141833486275739782713525485025940971514086626036023082134483485694576483447845685907665130822077240923664591456680721658659135632750764679421251957898921426494481346633133479276736505240108908700774956503751595718562273476473890566235453710834958202424023027713660017365892347523313318355145842913323621797841474717986648285125493493886100002837026856919192116726981867155879614528263958565788434632043759682280036842039218231685243447585456943462720583816304298054232491758676454818111960155604454673743959474858832884204579436592532771894006868070652010499227818051877819430699333396308007886956064180958245422126828861132078658630868947874127519741698027377926900425961031250048350541443141667539599803616114488832822991782040755540750934572264840766302043614143885998752802848958954275482252891229468261828574003587534723381951058012612863701159094814733874460768947762714245228058515058322328942551572528982346269747140924724566772999950430679811129515448255372597269628309619549302100876646346421152699297076889356316880522083970769121257979906693045950992421529386947871997624572986307636311220070143264322158515302549394327912683740003922233390277576200722616704804264816819150995104596808587433746983012936513629368868584684900409236472106490520583264755407510509486471979246158664590626840410346810406584302954303857227050768839739618417593948260575225669194180143867022671806474233079114155693680398831511815328264870709265886614526911496079205469512673321281679680858964921900885137549432457419443270756017931611173403244453853439188430671291300995679887015332817865957230723446527832305348307634844034421163630397240198846015725247824055885750047627542634075153303911560690567067413696660444438763463418745004979835149887081293986068644424262868448479520737215092978633319682941561632034691053848434310075186127224258706825881020063163852910788544595678799893749327773274968076401049953859389570039528811961410200863181858227822270123704026160888173110676262447627442821316811311652585179960789004892978577997897591142130751621899740194738296785184402299141653762790302215993352830464084435539666809065456661477006129683930176210418231064084938706186811918263115059508416175440574753684842664816383929337902950601844501513598893875756529525023842688647601802127168181495204251118834392483176988504069176610617045583110365287223050613314510162418743584631985927502676900785788708067177099553129960445718862906476938829292513703396666478016792372746264507321256939987872791077806345942865732430385358111280611279605318921175150797596731240228543148476671845433130715530953735491811786517389987852634327324759158942732141188729432890765313994914254940250932446239200436614962334020852091958115657184217568023483416822594612813546201014536491642618612589690619496477455297031855369935042070311232526803238917581710214681848229553851143238687079974806591414392375650115619536970623110850810465746374731231772679778655906940285014613808853012630345622920891166093120345716070358596634890347335750660679068792256272248704293894925914357908445712286865629515609223834681869551349870439301338646025407937197695763152923250004879156302540003876710191566874051741860421469612549333232438508140658873299259795699241879705177495428874045171104040663236239193208173868908150554433884081763656181547973589970196450676319756698905434714241787968941165107596278321783129063794708883226765803921081011918475359362407279855614351096974274474250608268469703847549205028207501223946770604198615818515264650931736220760125608358550052038027374911868834779352717073477257952280165220734261123770352658300850480169571364714031325331805148850308626053485053326837080795137389290440683620366084564750013827806323439452446776839277857249921037313444480062748717685999297320022575631264197623736678614793511100136987136495573546589549111415657482841900331981825222217961984848702775208411557075079133116096819649030717497031250251038705478034824389631244418727999567094534714092970519185294585503738710541473619490816328774526242411942667974397925726008870567195176974752555064612318235685805946812983960600205839340999394423729122056013480377310182726528153095217942168988812550036393561242752130660375640338819188258940575587091890995643962888009770060473641878668833347020984076005229667019511493900113810759750978394214236644635369519472357167329963138357031708825642311467097497197981165797790730759940619183527363237647687703157916025312836784477487803062062459652037118299584065338263845630636108942411789739726444879481693137025831473995732313633494113010161342109502325929896585329654848528552127987966425503884672736727822426468520745413950639763170133050742116873973905567266965268332165103733530466460069085638749412822194169214636158842928202053304766793351262091589593575163957886099655225324992593654416131956107134555823047898517478506138134125715142676060661136996455486394480771350952305302274926751444033201889015522730143911555551909910116328168463368458794513148006014458733357731898606824702730755991744808992670900236174813496624872855402191611930392008909011461214481257558292121282133789928339970101843342710567497229580759189494990438901458883794047837734603936554114975068439876013270777882138658128503062821314798831549855890451685402843779288660271754521601076176980002438914955493193598963660855851020680801806966116557977629986474434332411262832800376962600001851237924221920021965097681973125287765236462082595638911122274562248342396175703382876567968066903705546904137527287610734696421597857660572101351905556249065405859515344299177798334766279820242046581157810450860717372846056461623697928480115923874933001108678957496516075100983609295637685476180018109924969809752780489735076691325505717412782061080847309481999921396684675452536136208912711464178065128122771631501424517542621442953302871080372174338446472262168241996627059860278452649812869028599739110545513203188841274562980930225480073755565231455944871759440779805249292481372278736437699607364299374877461743398087730823300725043952273325057725280986330957499787909919060044242512771719211868810113397520294131533940689353550561290616816875238301651488488111705250009962702597154815475753678909171562632928727739930884641894872873028018973505115435510063420714348045716335544837614136467168125133575983954113718801603073750702121344888966674227785035225458081663835789316234205835324175529627942988050454795079784504392599056341975610795201748971481025222183461824614532708543705246598653790744386127907998685431972621585318695377919527865965706253537909867494396719772719834120095842969330315933888131670734990218151471873794126593127311494021063044567403739032822571752309710797984944739829290611181708449187832427857914635217834273748231260589742474046294128973897001023899695579801743356981657667125181531625949748346816335563671147015800032411255560531313145597120952740142830382397245234887013436385224668652151224939451109185762953320705497928102948587953766807739485168529864965053436333646384665880535847728701286964520293901457758537801680361618262135871280419800754841929142827200362011316568399980194132885073327042092514226753031918662707365536066536662384621246959527767562708805203685835017256343732989827899017648697424793425345950898289234079442133199627968506834342015595694996283811370849656346611505573309954051096574119750679678453952738891878183796240159901411931358913674514521780466608087145040825254588511571277307402112295259144839008065039656517861368210108980413876490367986510215446998396411306870183942217962940415894488412917355223349676961485572731367942317491422291626598952986596270089014036155578789683666747638470787166120674590549550295803778679279968479017961121595525748062879485602340874522879804452096439590859921740557186536886920433473152541305760044985752654549845760770779386442735211424366865373018368891307676052829750172433180756976895200120824465703683978174237154832227411017107145046541907053000633941233691852720576557210861289486213127540125708942426013914257949597927924247954543370313498600715254316884640399917242474240551784005456075311466844176922049564371688041059914420477779299554239446901478333781993783644081265111260582784869798140774830492586112235856550979922590919672332712650368053694818819475042127775595969517507463996889258039831969247181821597213655724612967845122417616889598915847530997734103332113228434402270940233247729405461799743818856310856282366552773955193043318846654454193832969539308529167738542237948826545765748758891442868954678795592302428308843325801882740378732571787600406493137097649884071457076361992155735269996780621821742546857676320702321380509717084678755578745321331590410309636245874458954126700484203306808527848211487794457343021404145844727129065012116231109116017046944922115982070350035178944678439619979408541186426656062067814951906481096435381437311333673985652452658457028682773074072083194789424368354500142315958697811453206313867142443928656446381045418500331464145169770417639188153813404350627425391874260891116143823630186121531370689451183209773166253991398913265471688583896009911593903128978488431941278979170429094838873351509158766650259448976205305621271864314864783600839247564463792596279972410296894406295445248360819324773595428242541771730578513840382113509509485482323805385406050531302222182918410075354479379682572970782233711063376600732525344804531840882348796411612933266972691411151947585240311868063758558049988789867713334537719798614850620564135480878694752563227685371974976594940001969031624572585707504217261497918952208984105333486720039902823055326983998275496678827965761641237070670663965530702882275305784233092837494808382639851907528144595289280457579561395583901274554228154766105821615129953589295366241235228789852737944447807133588274035374398960199899348529344257590964097942345860810467608108877054250755448744041097296540477560840553933363871376663402979811765014320213075511670706430032483664694611508790838171586859434878073730146473766770604647424883120823001729494212612101753044644126578368186997603632415606602307907783629360397392385270079869754362311689078791754946623847315005970359831712835457135365404058108841326377843899331329445734331586967443306824018467108667863152174508851552942359361850173191012665040995363507512352817544092452895242528291587150860127029824493432942640442436520711196852263588006120173036962116771637967606949568515614189163021207136132470468028018310309714282975933929034207547585581115655863484322273057540190585860984630612981127601247471890974382424894867348795468190309935856429241359714945247479025193861229052060372965491900530716530130159642513523390540497216535019686831860710507712629018529112033360617448271818465893861832036882260680017424321953640927378699422787077685610851484267319867491748263921816775558902737172118472948374442268873376756694946813248190940639723573365031342632030368132228313218965956757415780086730715058833991563024202078005251444320570649489791935240618284044182572399760990704754448484305848769001463556426784084484567416768256926894137999764512329129386828193686239676155283500353285390242418697772422927786290339602352126996346483341530379801374821138409792056057628920892975955876554694149200472583238538932024864745980320519459214170425871109991568998347669561613063166302513039527475248382015478491929194310641047712509322429990461046351141183381874757533278137785642222463390111936343816846624816259305148870761708214105474693223530458978486100492718016018937140682086203577531220182586476004178754700975539150788717997609622810115672826019281712832976300009872673312754937972943501423023156616594237448468689337811529918357586464425603579321401668758711423406404371847715644491609952724854001721205041957080265609553336157383399756259329012288017401797326756011560621646711979948419415652336571672753470609665056559030791747353073860263298341251319311478821087936673162554290044906841322933824331493071149819100808827621169529989353733661667444469128700603260252715341825227428654499904594230572752503257380818272337192406785953940944518056127665455623975203077750722808894827807231532389032656941057022873182966150223545584208262625921789944786723190058441751639124433224116933881477827569842591652702732287026388329015564635269945734627339248355630097864343087644727692728665441447272381002147206226350890500992372540199009641673963710112241778504486658750153699196991305267439449767866982484191841531115004535774317418643399234793531558767306282276707436770181670696678453292037321423842827801773765654189904089897258190624397423942726075176222900473522921201942116903388768588128736920166754421237012062931923713741785657370787540102586091136298955365906853197701523280390465244053152038427583998337394330871723699508350639159086103097320051074292385394712173697493910687351545462063212062813306036179572511196899326063554271758470529867404107035012590486695238739132760863585782773444866496421682562713567004199689195774161591663875960092354264152867594936808480694754842748036606924456828031260935151682375792974472625637348150992215939548043252825445754665388760653009986761645820227976854401033024977795584895567370915835530199212203000636533001435216659518862303684873529941069994235351054545955601579285366550310224679823579119423650029732507304951964280387726730122418630526886505915772604274837925957591057146647059455618622442210956519178018525331085492453493059118006486502200546813737426195627985694174939463502733601725622556794256754069058772245254859255936825707326128937255187844909034379974898156309058292998612848109319108906017101463717869891306358354712566291626060492572615620889270722748113996462337265614026019854687870819555373786885647625905636863330461576960794981953158628491985334570195387576609410347150026552377130319381949041814438497509439884280112216637630159285143489116674308170922241560075245211968398395003500507634370593371651432226287400327899746340493523222278283895886561561050202908122680916358279868311055718763353971390817528533776208153028854899123830445347027510523850891648653607466728916141419386840486859016853973683595036966514798565445223031702096371659520928471969068706508655501640563543682695257002635502419024519207744834492781157787456326204283698850227470765635314540290836932813804247388345915736969430371616400051939112052529647232114872154790849827352584708813088991015809650178352013714883098530560247521713971131425338608403229696632404248607787129301924018152156560181138927348050200819122580511455108413894060651865442317558961165649493691223335170008501762110936070740695744634075061337444964528746122201110687616728097337669034183540328477569232882521995067497063276916138247167055612845964786041997985663506858134116213678354147382960242022637930915523901824157795819130974529309768075394944423470911969744003547626707208052827972729311041376775832172936638246628042181311198235642122259573454143747304177156416067370304295377735032629984797335489217514786371652349514469245908884259729632365603367301613005371448545163226179236820970430351753301508496602883307343961727715705165606766920487433296715290708148966880252994771766142640705211027981085151548447227479213001389850941307214428824774059482130562186293458771727723251875885611285444787107950324817562557401355903742579677584604320862931390904927079154007035452542960165367968262229604537352153763108530322353032864053307108012382687517741989083903534741942902287905655320566447754524283022884613694654398389510744423314714889927355453778677405599068586821808646140703629022920805109406612520421296985439583076383119231172423680745515079428879659642696403553259342964886805060034241261469557084220692217263415158708546219149451987710336557097682216179377344828677766103237475629962279848924103212788802168653025829574624891132954705892609284006637889648961067564346424419455517918241763326915548414769357677413665806709319941079023242778706273075533821018951298098295857294684949248702962256286477088274509238456494638963944282650888011168925547456008961174690027260231251698042110164100725817696484257224917135981117793943601666407013619537277549582958677163586132029087888541999110595656080160531760009469443820795932648866374828478464954565687536429551848377951116658201738749671904340535923551925110269417706989224269841397297559903196238646327738976264301158431057054555642597715622520935128762769207171081405968699789495634708762299250812497983608390278166079649095058965007850474589570384171868687576123469181772554888044691745641143278096634270429332778879633852983788117643411569400350519113241390417586570075712301912199481062070552832940912650224704889576490143328624358421188503560502658222848738086298858823157742868780444116316874923895329930862080880694961730376489706852904539607756990286509415415046295179773178732772313411483597293961392256069494564391990927726400166392960874938592618383022575522690707604721627114914000765172248504949230635778827147045835409522691596611872963927934938855577325271154068895330081091791792487533885726627691347934477289569156569587760682381965315469785275880567423810398634345930657487347859448837235719240440160671396355062762623657509742401175526306051396114549137964248919529862786072649629446067159417652926402591928499231447133304977201322634225140653227338480033404761307441104570208549719304617255825595062739210554890399971933143488395421629280028729296161867730008571575327601315359899335250563697894783831533878362837701141649234738829156996054243755229381294391696596212110196850279178913372146718321295192353800748418174853586002269867773985197255838348938432840290014271646962176575645134489540670032068212172870625551320093778648438382453791701390027694343693990092822736302563507196532424849709349304386220672319659867976176392220094669246631470640758180445638670423117538277598883605359766434694941717450570526542994899518647805450288381027117560545162745849029147572910883014256459931318728479925064520711247082925622854189115170965980254768907378505124639947311760130082705221449999239047634823516902514079231522021202779162821468618739693862321188776389527057137544278719130549509780556426585963348146622995621497370874276136256115833729898873434874361886808055901627689547993590736538298437210691497117396051245112736881042999997809574308020845141597951802179429040903009532546824196942666133402763156416030708741932645802470986227943216655916348859074013280261211153717757220580246159300722476749270631286796087085585773275597660082413205985449140144564099728543964027424824549687937898621951259223961179001007902252755335806347291852206302759587769575941212524677609176391072175445269098909465249792923453441711595366525350170013024528033147945307559517673605000284605618821821224471745232739135458506731463643132087586036828941499383045498488372175397769839336226773041215641639863933245999374000192120202808337515926045336277145379108876922013937338773312255477133578200930769839995099779466420338868354579352102986535694078173395193961558813008584410413545996599198305740258725527612490794818644090422391412605004981696331462120344701476963039099103822802867239155520859670836053221858900600177070420538024172561004536597130850872119024744658632965662026190050469281867021232342326561945447714869348094072469847779519667923896861723580336255669768473170893162952943913134369110419969797430591093332923487635679064081532274297231140713018390594522599745739423780903680000625501152234603959980254793641282049048589637643871459684186007500287947089942934449183437874073609758802044333985888538534604825465278793317917961638063552816883073839488620210505382670763005529758329314747435320408713478627005079624359267829241149907169222942150408660608871044584365174448252820079758470179390059085180762985332226073280144112062927654870911017012046201152225975652139679434752372250603959315300178711030888917361065120703865579033779879131806884081571410905851658156814003899538139572220649725764851071157723618941303799689318681201041085000725443963882921055789640074179835249856048889831870345089410663357506260500299543374915680475614775178491657296273969359922953767650555897349574713441912248461868431413355331107223925549466815589995831503884903981488651824778829142469355914258501190388359208619725706633050477921564549247805629313177137526990677056755862709001039902277756853130985930498343153158069943952743001322985471984150410240419013424655960349219844261760972682791288752479284194451096492035354394653637406722676636601429340544209158834898640706801100871944959090713138843783392415377348881803553913299803502515180244907984356815845417793806824309767426058215433041748006411114524618343092020334979848540076970087009099930352514730911046109104392702899186260829452934179633245957473277648280280783912517215859380332666789085792852358802088213763798577919406820857413977436949004163718799355425364436944572868215402819319831879162765200364414032602168834882887785397976826579913095166447418810700541721128905068779377849582110893030661153420234782692293673038213489917580196127752046692187194822186261902658983620498134430019835291464888999695583280704625965693699537857343487971095471247086179395574242202416969997702124193867209736126242221303509416081021037014458386491302862311200375787544297670550260183644370666596132694788691605115593592367780594183318019739845375690240527327527349157586735799875227700468849452945858713258422502965494311039934303124539452646222244678541190530588856013407652461201006143042156044335522971740093817937306831649713633210013740477056696730256464266209047155905827740878388815480051705551636755422722974961520046428400390578303677510458243170178529305986934152925366804597370900831833696218332553435906444569310197885026741236634715139679198717074775583539815905168856440690427884770658592660688006787436216719653720846231982394514354459729938598928075156197912942004103477031371893084381479645358745040486367245498343970247706501440838663171420126011153461656211977977264318959831622381284894271428775734933925352462119727474091956004716505227172183898072372826109338151520867647071868987534514246366309053797595191430446614569502282791849965810742111124429765741119251971314584618096060563153748944400054610975400031835192191810832101066369391566192419775645876405902121800713506031127685801526151481582878288190647569691367119486323441422186272877191222960436461338593726340093541240434088639000764824994833852205641505546219332077095204849354221066816505111321405438435281744756472873765522575532432239681797519795224917811494605346860189860902228112829154343432645746601333740059370148026972196076084871452672099904060880958035241864967260552068775130331575049861882833818468665016922581602630363158476745906399435180977747689332958270803725060222519622474471275844609404424064684504721031789729506681802453798317941970026637305020341418739540096963272924320973223541662933613715134912207183159586029642193499542380398147066702326152411839615981333194914360084939150932387182169698030528141378675207194305763266605791533546147419572398601967261458534627313653333082464939168111313680855549470902649988380744104816354683685705381694714853488322162146387374441412583068066582232627777584632211400211139816889929712412308046520737700158627529310937028834316492402196601693366044491452543144801310751213326407231593503629718086872160950394652006089750797605533992645717837274987548704466090128766706260404019467912480217791958487632725344597750555965031539529238700264179720705103807734040063119571842426332541702869144065240113363846111626603639159525020921434758603729530432117066983701449221836665785520090532435355184559870301178367405853897572463795974682941554146723544761012104022375060511599286278828675652957921855184766613447542934708444231303083973018010547211483384706219345575187331295383640583075746548731479567587590723767367416799590035266942592327781579644345292668888690693777454201314953930332595786811391104817124813207642718448354502067985542830800292394822347537275351387631046056998432410660692932102084734504921042604636867292603507248655351589595164578186434079583959503310249416207733895351319984644687613533684334835554000565531676393873128885142627243269575648889334591696643758786421807993086969433015805769432445929988031389845451478056029439548359386907285646981754242789461669155255227415085213812888271553153607814836159718196702824024437477714142559222229382270360424635291140264833972710428293878689527735112226805398582370011800259422860691942624319828254365513251019554010687882787922309901743574384485636053658302011012192770962514147779314978053661817180621279058055189999993009191225797844290461683615251802687632406905789076676455416130069425294119438281520335540215196366545227457446998868229090399251687252388592654676745964921471816202981815027545578405521896923928977421939093412480849311172703316755248604617847705623980876652877221346723197943311351966538090257740430953654545796656488009896557361550484492922353373607140543897535524156185464072210671846529091142684848626218806134006843917587755470825877995618465427730326383396605254982419358342600366273768551634472154973325764323041233590277310763962618570110570525855828267484093013429158772469393491804398940196969157547818336932992474344546840724972695946493840521185859262726329723307616520315036546208490039036849190757084917102080511224536925476035153803951460250634570521591050426609653402990983076415656259938468498281788495615777696200808600928410965615406998008220597658812185696277865308177672032283977905409907189144679462920834982787188896381872672999679358398890545471851443862580129099087333779061846590679781566350875486789329456151997667242481010724331470360266666603166307876647750112281231517941611308256129030470009843740494073845231567335562350368280653290827182939814072845594925467999552472593796817548933417064982404418283722680189975172367169320872335490628860720157554158954218727950499074699970048781456099158629618613972472981640473743142056417266762688989537853142604144799205433286981055009492161639766211302433672916275024727756238718974515150841494525237889638064679287165333210971168918116168112807892438753151790630390517944592029796577706751335689824123339246529755358097866496624069037947119816315059865463120893874131192922811430436809985094262700711871743619134494502815603508735031242903007850661663739026394919100317407244095171738818094636847825232156017877705829555533023086634927768177997949418065171213083200215030457334226116048005863204694810630503706024020375957339620453886425268852826148350628082208035334542328401005418979988347485783578767502745803167443698003524553578854913559332549092522039236033407217751676741555597990874265938762010011508703786040412231169046957294807837945021955403042649954571226076206412000358716511216399922812580443461734177611647775338591996975870588353265505166424478269800326996986531508939596131090077824118181655937959980501844889975873108722142898760930075661597294653680374698890633332862257235338728924733098621417777662095806708889881947667815469188809778916721596865267730200090940254312798064779552057910050197307004610820261154752581047551785833360230353897620354087941514004131131171541865799217433537599052479418475466738109733776591760555560236585879194436024479103137535257572908692425566767228691107336616762601880435150064835207197603884352777139881145690136855564011629189867255387676192577400305743646733845081417989740688596698086044211215441412051478072661951282455228904332679451299289484811071863697286493867133942152971481198051774477853056061977019077601726973400706567686149961568784019846279849846746985834993902486098093048673596299693117476681671918177935104578502081865492744195366302780796712826419651656706458305870748982326232138641056051478947116163583077540389941165266306700795707261903796156316441692641679096368307901231614139888326417545879040489182229325660609493488015373971259209201541411513015646192426950750359826116948053739469221804578700302119220856810609829169517478144675830496323161671757314824210383116244937738579847525384432774153966212963947569372506792816661035655272116211093150369912888808264731490469863997985718008645265099525260767665395807431936124795212017650199417202721329598057915400286222927251404747203851763951840985228162257790802152351317306450995876755230304632942208805470537898322257191444418916604071078062965276531109953254952417355854325078028058670837291826622574895003053850938551156785138881097115807714258585168715193340566376365780189234868109948465589677306554556489860113513053115509942683451108178782553858081433358689239431225535985716769397091772650327570171392573307243554115987209027639543878058529589543139150615015945156115393526338320616164873631925715321069456353261557862540834751472910820814269329884187118357739666238582310121352006922619076537622332650038487959125370348200895151310952391770993811153922529881584876024432274935400297533792921966231490526019612077268232749507903908799437187015016071432409848033608757008398531437602875558600656912097197187868532893591969743958525390434686987423625969283501244907928950751400026644164680610433060655400550098497963480730967434622359863557041000761779630703181243896927246338942435408343766221895925826771573272148180099317063352245112052653765433882961214290501975084717551971629743740736366551165175480509445615764756864153359207843405868844592059982147056383248488470422431380469071177816069016235058363989115104500551157713601678969185241321827210509720929064205868920762106960806189608222111159738848135641195437338267148867353963101183738761273159830517012380180993457809066278089036903391202213948029137694940726191772417026737650334869988008618323530070144802932101915680587887587333299367757733358664089142773807183156722409644154298293443645168366695063430142276832751878191197518797192471670930926323937288575873728498245048799001733680647159355773498579020974705802882217125602021003887103325139636704887975449742050228148158873257011445059098309428175705643878196566514819808993649699526208049273783469174820756749941687100899517602910841976214076741539163998801874589586473595015190016597571140776601092370875164893101402497190077148589858198261924636113058911401327619073233902665727046578475058376253437271761381598541650247908070854668689171346210398333601700512224142460953268308590087378152619676329437864434402485368276752463162388494907414059110297160158260917473045504459960556860213667016476584225536267317647007576483845830246698829420525695889294913738411557492610147609343150871048621757225533263275941400839434808966249217759263852605137546575549472541496741213755695403910988123671603162268421574644289396662024423835678138318900282834382842560214522826854925187826267458194706407802870318115715599358091814826167277640894570063630831612325963856835495484671220203625786281379983223524011440657072826152074924866020932982643723539144003081754821792408290326839549892333156170169147439776709577898932676328872373355249183629641410619630670089069473768830264745781761274060436372464246625049973490843813106359337279015598380304685235361765181015627052311133077405336039075860620818040008689482164906043273503431894840618419446038597604358399657188866532668548210207555118255465108982453746098431209748910587961582541535808966351010606281979843345530661571377636793048598751326959969289193006670043358052001165145390499675205732378773178944210580531442373962094222036543459185844604781669233390175873841729754750047059546892611555463098840972981117989567538462433808250859265826431120138865688640957804582790545784039886366916804545051311491247091724550791157775318047049132478237246578961528463614622805587735593476374895307294886300510815140756499648607203190501762920587417296218173729622183595009617445374748223043702712549394551146758626634497549506572021773706213833260499683261694712742440441923475109108062975583549370745654790838578919131802735118268091326195168923546826942127073643929659398640602060169636112730907485917312099401904377899941303404524235979492572571261944222198059948238561615066165612679492259802136707979808971101501764094593117253056550557644317332270734901951421119209537843044818906614411321336017131295450174680778361009270870821165246793016355517572567138988213521717421089659947949160117238700028123488592886874920844446940853431164754504075707192667685291370216018197878792208225523026890996160093167242936910349431624125097481669798868385673852737254905969484437360211389760998837519452075980356384558381605846580386602723417730478951989263880196207889570889947599786872542064846076514622547482894825908229082768465391471764805472524401629643580885108141893702471549186715350415404966960388058836680066933931380855156759387334710606879424518451521781938096551467678822089490879881858607339127600524914659192137461649505764843754491022881177778719838579786070692103864779250672680408990567914751725519155728244124602813422079821218353275794825475024839806541119672670789567872150843464948586886938603934163119107763132666655701071967996801330110619417005130790256557985532210335322994056845078395295028513548338859036326843361838571991631963619128832149692295324159315942552541611307154247115543749252393507366782923510345280001459093275993436222573550452518733466939493148820538058310687573581424508512161822850887692554689222622521887829154265050231438116455305413308361017665778908282819411139503442204331214813537132209032397086339380465824174751706774745083221005483017837224435495626479240174425720346010608489183748123469994027270774810014575481324344850997180670300387853481159635168932927788438499105600328406485753084682611822030110512103831251875170022971725608798167832566936992560533371091427872664847908921162473299486484367502804099087398928273910033416665186308211006966001561573212133058519027445221342820342688771827673735451749626547092670237882507833416559649318516577101651600797129081816740929421473134706548867578650240764329258749078054745187360608035660464074031152876773951229325157860099708285097679297890957289653159450645866868383145213670325450678371441655541430225228875303655103412203459493582374497014420495586142620919860305878200444816100740374969060819175356072864968434576153873686732395098699477153925527983615643410337827288551493863746530550477282466285061699806699368148786789457804554039115632233396728641805878358261896746219379143304470579543930700227825624376650334648815156406554671936370306530292128113858533497859228773892227647755938952691449038088749635664258835005416398980596597964236849102510436114375923648787868107135630214858621592974681076650362625941332141009100705540763329198262749892269415416453268648956006066304554277109893153554034207145042178220518814423339804300077027186983955022761814912205972237625432004785332883135572332330301861263508235203490285671836588818648715264543509619570518274022671261765605312663227128275695865753924546558118877658553938105884893710838902472395291211685052481292248871542102187072629193711489932907460933185695671207878233575698049711429871394946428611307413649652657100859636096484870594910599759717656295317335805654143999637703590486619203566899547790196177156027153269304797906127958768596250115957480952094992366785962432771600209651240693450109577513209560385527051241113304022267051930887319008023642557405646361683179531524057854515727719514284184509854410223406931354632323876034076111408320817987582225680730500139071739396139440082233078086302906409734570966842916205547588160841372652742594874343409062599676138103149283360614334778306641819598052743309337927701859481196245057270066534995447206055832232816444218641542918079025342886301418353042562258814141990831677464120338790579294041241154292640721819694609951842875368469365266306553039033835306912175741026195476391431193124590813284875667882374244269709416084276414450383443655069833349697534226165076254902746449645714540900207917643334530514404858981637167453296368345464638459390146484699921262857176826018290881477936036779948600865112313307900663733199854359750177641317691406457635893932530074328096642546453575862209002766118508479862435247270190706684652770039487933673385726864890826270615199599153704659103333970829338800291425152566805247491302652683835794522608212786816352158082669022360721185972292881909098933622784364509907349381872987169057588202022805170753434877819411638765079595318577222807998837833228887229524657427872233410761305339350862255619030416319628432050694692607818154678570654696003966763428004915395674364955699902319424411053398533785939251046398458960444231603457288896624693666246432029512316559254261807440279746724770067529142521035937296878910481785703354239935753675463911853153686708589904172330758889093922707842290518087566207450768238871404739292458440741934229728690701296692995473752376209947451643276427345344162752256015840467392456877896436929804459804524910253411649300399561401301786561117419055870936803379857213411862498427184130042688051098823200411154817380496030822589357150614234000476010899506258072210550064346483333238281838767281350572442445100235169619251238139376137054500419684341890787723453069158051402093465795230220290882718736147596832452686792357441393331969707812552191792204000030773097729554744264187920978310559940633532705171704374253635662382978168693382529745828053364059010077462975976318608962958085582751523128013286526493150155723185163704513973320465219833662664783347459790623612466368687150642629644068750938781448966350740204761406229107396611282633995285500389348994566628395848704548975565133335768554042523669204703842677604857557788381412503591957768907411616043482393755091770344951168172855351729384802466363518252417161225891265887619226353516159595576269923098794069130892949238529483309158523089554583814029696824579689666741883764164742360400870068147301555246181137129651590289159616889333996547929198853035885839210705432846562570613189402124524745590555281620804178571725136026951248636514184128882400237775718600091936327666623738553156117111999634737141203879485165795205369364239449033697929009071816597781266322731529785068392488206472877673620907020716296948330190073799567432275903983242955687917030362312247262462957442567849091267175587085172721119459976794049728431175342842320874695280230272445452492283461809528058485234061951236712457380077370564535760702954654689245563207465126975170899897653835952375659289488279851944067285347715489974799370936606783418786224657003940684919192573880690126783711425688291944376862789956992563842407881361632678591200562435710953934137226184209945472661211686055297773351807318069469771516838909468353042555228276474997870803973025826322109354372426092587460371370615721235063064564384358678507616887464836400615168469432540431085895587866022859881264470639010047060065652578679741622511966135705301018416500967578266283316128048404877870748931494734087511673340739320861424352505474971706963046670225872548255003966291323272522937902495865832092095823469506653873796934706431525550048932906822878096137806347985192707970159821541963030542593947430089143039744722099917016707412005345566468555018885347790729146898994754389154371439880068393789203192435257649886371268882646085073430673493131760454508275619033168864325994098913512179125748350140667687074178228822779257079081421884908613061231431102720728415801457982740536192606715260969657927881621099971271630981039786678751997786750258361899756100466965099179262897249889301473529886892925997554426466915224653698852548554314215630000036392731242439994896363471948504075875562162769632119829791541502407850272063913795417837268419447779230254800663355669863502467482568425745653326730602380533642969474562154442333453313839763369815436034066435343913142997339901875926039455812144243500904768219903479426165942399149333443980681776372321897530498048721844976164332977865619693978670863215576488851536816240393090783341493868182198685624345278839634285755912303941625254212261882254161631986713363092727258945952234285602757115813508377226263699422616861760965452565541436279603097103834481623171982451903360198271465048961225454306586161447820547660791677087002310622136763926611169494756342865760241821789887765442127228049271684925169661200546228844256866146684706790310242259059452960103139414388564310375595622152381758991867292109064406225806864784508290535007666050635879974632690854957483938794081451519082856199170139009743290888799420994054767368424416716245992603888479409732886996233766373018379990492614441555967623496679834166295959472210349200876514833529987237138385016038601890057228506747949773168698222012470595371061533864324404324785598241835209085140838601266074395999906971569311680616623985324480386688631385515274987784119750854845674350864400271115493238370136062588860312781099006555335037859803431168967947650255776237584563253559835792070770059616350839235189234574229193980898574622493072456749906907964339002043227734022185959551178650324597904197258307222778819539315305666322409638510270097505176130959073355283049048371984687847404261514314655277951802541345627616509501225075299478931502057222203531679429495546827416318187699949470247472311163567259604826660179102570929614944321699158900038120552888962102642078837346561000763394523055094459720271556295373859853933991368631873284717042753076949384044323895294492159348029435720691247324829080769855454784095771255288046548102964307975823969689371667579910695123831382705930287840340337349999442689649826044824945830738098175657847291366343789167995869900316975413590516460847792938652343791174867471750199202690554793577462967265897507304802219273672124666795015570208090535859911100433968703055797001935954871075821940301308421127980506694735284087435765854305635209961948119221642643417390864200823564339521333287205536678897146827790979931284109421637064732121730004789888384894196424141915717349354802889345510676117747210479671946448437195714582599531929905841659855253103568946262767875473176714214422850572335566029933885592901805293642248078320739796023164990778494999307629591511632793428173813714016310085251743807403074519917280468814914085480601254932599789674244356520039451110437636305667156946685111517362896646261014262369135498485155908265772716899045706120497020798641504797267545039013807594541269068127190832922546072714457404824152738206627477864051493458567588147443659098951394296028759413954648818755021015271327365953053867858129241012613814779798484913564997318143691608720165939124594125356171069065932141726334155244559566427634876863596478526987707181349048262546582936893740211277448480457018331196902514231643800293340033460427275644301696046904664576517959498495640684241387722617636440058568582890134824582138146722950404494009806153824025001067021890446876482403471995960031546639021017665255776712743784152510771289136661483068105214758124387226714340069267033040017326560374300138993041612211202137812117003204717279688921650161788581909732428577590519037233006819319052411073316700178526242626524039809411987520452381968048314042723947844950925713582779981130552209070785959542303974189568597981306322518785363895484826930191919567571002654692811644866352114911328448805186129188253691044184719990857793562312275248617070002506269492075336823190525556509485889241583983509727672855936852096866457017519993519344670276760246281810892652688517505495090993331049329164945668929379332369499904734748194241838435494072812742812996332046212392141218066983478630267581562049958565774995531006159542331631179970686222620070801703964227491248812353758649322125865754184259664838156642095442168598846732736516462759582633327494132480869818615502058310005450785337029484678052263420631942054392594702295915395936863582424285830359219920162617511790650318769511709427235082375470971983982797119893219006617727401705127450980594212359930392401954976681543357042300021886491432302823506906405016894207004512721544382095277261658860521276020645129028672130545430693985246260069318215150862248782130693441422050034811477992882708776190241488016268683188090753950105719117473515373423438962997767066493271232794839466358468482987722046178953579937080074098400229537740082607875822051080875440882897876341115730075565631330004442035781994829520421790674242394003756754969159072863278401028835066413166531634170470870253053999761615770937800090441546765108029011281839162958404215468011480997507639506510458553248690022354868768809583752462098089939687440540127621450725884942076373727988431782720968102736532311174578511993054778714401115939515638359417361020192236739201546297299644671544959142998820842742347572910849191493681369407317794952701345806077381150488259140222675919417253277876078549409334572242729633406485119295751762683410676234735902782316946185623586395003655629977738947719891118537935106294259808970601773469015618782856105985771542424554738582921087588331708325153423633119692501839069011386922311921120079064105541466915981186813721677739217485607487119926233660198282535137095519986605988325794813786681293631898979251996630569903868560805162382130826876454140075378940661762014246629372866547543243247665236031623887977473189273603306070678995098518370241716564608588752106336330869109725865068360918071730877142985098057645621181862144201605631368943205663331776753474861230642724859514776757931202771378814412452406506734456068146579808971824182237453916183912539455758891400588609964401831170299502728722818090842530326813703627706631326643447987672154682492891020246473437705040089929711159294180459661203420362016618285576761105894903937528288476613007384064771705644029896112717541059977976208035878091681842551641381431750177583061997487856143761740071698435783296387050641310294417019207733633754936603885027063176293906407342992718036982639474415556854532364190147962042116431116457435164341697271044660280659257442288891940145153120686714046456807841967148844962641221170915074434789750264357926330564651254403111022041415094239759502653614341311792945952136513334247537969698749937322525621641752837487551128775428870242465089905174535729337542049329692242257435481410230736651301760721698081074403827435543977107193377563547566140562219799606098034402714246924659562116996691649258692257981623571892166045958639937554663505388151117217653924914230062055595117118582809220116839498776905949918674000125765939304399400022318978941406113052011290884691208949743561475715593923064598946844609154973339721400341845050829138825320992414457714047927376354837836431938188426387619629487139141013622843683693556613334896546021242105920268677306020749122722360683877393936355361768128176779237359407532360029383213500283313534938102013508891300418623434714894505604391498779003611437797240470405032792194329735373510957809945972236221085526175370166709308130075333559954639202747719641051895863085690710754532003788727327439497033447290251148027350935892622169821382124488984419210844958326517835677539628949065387092653830520829604587120017154602432832083359894197596488984140204635624214106068896000625315069728168209246086370122270559013037855263883507154604118060397605038861295487962275476531038632073485150382970350187305649461614202568902917872030510981447552866280039437101218613120484945485452768420649738774938140242247626901145346156564739475992953014793955538538762603254611353420050478595682910991271901825374666128661853165454008091575559828636551436477633662839327820218744833264871265316741495027565795472864704865190679583559650439497741849927057949141926401316692038648613591897737382746171533252219598500679875370006725735393948149633906129085022344334306787359231150304352412218914994142465656974311663014346962984529147896723550650755297752514897576730128641355875369976267603950379566170041123829678031245953403432897322489595486971021233632534826221692551513478044935870038583248252849181932440060703713107404582695749498874525115464351879959084266143208594556307553320151799487813864386604910023464367289630787170872483718606848835973426537237619919593310058762805977757778911430006477500447497137224773840914325137423999535087366734867765255216257751441835715631775115945010126674856688941131722094211216354202645563361515388757760647133149897758316015270974675747885909955442720613771734037824376140254050306150372326896124706802260875847832612207105169369910122439404878635471634383791639995986449781394294259860075769945246159337157782364680846019891787773960039963951503521503786301177589251370210961050991301834120001735134372242055258326449570925853030967309832548087642607080600433031571697788354662369138234682686990140232380772031579375639739096031105270006514786905894090046276127047631105794624935295635916500636305011214009875801758144037987388865290493152000367045559172016300463950925311552197459128799363860168019883657834252071394917244085108996915253670834884592337661851932727293131590663347338952292077006516293874402338480982557983166938338280885987469193145106293594233241947973909802164897200515848639214930867443935563488667490439999521877038774406025527087215689709508764328322669130322216280718300945931680658997932474622084435773869985320487567431082302828440786662337130702692121677951375147627696603548104506754828820902778383581035306746888655945077436213651289752280529512387953378352527685366210141832766138671055624227230825720066139817521357324465456088912199579965776540793929338043514187404518588551664214405768317154390478541153975142710281699578327021215703785581508378977603331586209368816276206032678624766111544813911254272161512716080580033761762871621753889628741428692877132406138763963171628326250395588508008537448402022928595694236612073055542907674022777719829581118824102072641265269559846499999668199237090599636582833117151346418751557912162837148116042407858436696160678071012829922646317579053331098938687820624101547770143898368681104446272418143588996807099888866196404609389571486855491762206625772031712187149516285525437997411922313041859520147984337143506296321307293781887807097598800213160548112215830206898879105769256706929284011264706111461773381543958199904976648359283888194479491991843879765810668580172190919620430074286256021257530131570586445365280323247770187189057312265145754628188322135238731647893613781326182918362497884105463211845183599880295645787243707087655843976446250579688084400223766715744167891489406666155629491842295474539447769639951212729782944425154551298640545626765220339041733452510213847425691909337675507375124144479488565059017607109722001336377440770801167444728362879886916390788690285752689427269190004724871333526593370703213674256569171294055544735690177838098607691864083424427365152191928946629845269510634971754399994592538734097990365801429955060650999317061862761061396743492298824864229858046759484331272124577922664442370274622812097059652201799358726033310591783928728996739350688362355049610204873895185321729514996982380724523688995462413803453715360579360946981913468936470639743452560749993369585702324766291097772228920243508726972754142793738443809165977966892766274585614326591669946780919514189754254996517588622401389267419495659515076229128574018552957383974653208947272528452192982502012466114473096795832273320195241708192735957357497194020970876861868043876477577045964467205073027108648053686679946462311486405324070456250641702227474563820299912881252890603243409854237388251935669117853497745579005991067490798483163331449369546059726850097322192409921704185733135530221040791740704371236119484967863233600532844803051612255809172718668882110618694911415765896421249135681960956832222848223996635752501282825586229607078515254857969029107576469336105270925535444996617845839701526677843139838751731279959450189731642376762775528607882620118397753671609299836578639327855549192281754780269267980901965017327541511481205146797272782772189959083509799063648500381905609508077391496400738160716355367956099323545440876209067505128830421772903118669576668096661229797420249347850709480206845972871493103502905637289753870336140440804675251050377074267527634234508272036611088937524506935829512858324614995063483896799122687891266873770300199032964977578740464888624205687455052834969538236875414048095376461011796602865961904155842386009697206660635096523728594204500668836097443696699672313944258437813523307582521609267917068203252090869932706439150996285837965693514096306219780195542531215361074891894434262531286541743594037108110700943681396704498338923379344534898093081423893018780400517641380223323015384913520928466168508806860774717759820042132555856310672308300866435343137840711020624768633243394770832645976977392025887687097675670319269547073087862349562704980138503901557730537425233746555553454514998758323148619715993403153181602019353340995900433959630556414860491328872828877307053162867661227312657087908608469562952859836925167168280354016396757112818189103911784217435660560143413485570981067918023040853056442449240835498707289049129009329831952218045704484460688338678244576976951001380312485824735292720355542321923041149023061254316182067993539612732561260301397383461978400014535543750259811307982699851647204666191349329217490357866734260599067372489508986231988303935010035392044747548285335734488050445434770609752488367262900421268307369797727456471290367120101175878666054014722662431999579122592056233886073441041336119136878103057523601162666904385398822716692067594800331084068298466058910399898371225520076940732075631704778336148211536594172530714487372797808668446829969533062481202898080417805474536360922060716288789142621547440718343059422627573405999165839879605676603245671904777948790774537698875392696558190226532626216203470438440841896083983591849165749549317965989720678962965751561134465413214031509991695722120257211400420017630048493185520711724457595430356578120315416048729668230274849138891020400660821464284945752309781332321689440463191777046916888206682763368203872112751822645273955198359484732019201709244888391539598956156772167779348496732677630351330047023616574612537998972644429594530866234278805865798718560680097051233442497956831327004687687191263986770230365108475957015102179446555339295297846162142999578133883283814488419226009745177757823106014116891785224759289564343274954244770812845206431633817334293837159807397180524976493076078079011082073557385106689363775871571573506248786243281438574926213475222991317698584276478613051337562850533779603473901439576103739895701217666372133796638840788233658476526952828189948742514018083712747880167959727175613815874052163095990297582032030295163993860639154948486334183303430349289463209577428311830239900755134183929439509219820020212541882991590199081091604720750931965232764832590991706895228861295410608364547588285514575163598764664530000911685724126002665751727726405577866926817682629044417958145890800175965395380261557348123656524726599669485130581663499917740132651716761472142114413295855315409683310809884291984713929935172995153705164823472429402260119954196498215967390885133517395900405078545042052474663297717302200001113383782813224489637974878283011512310909922797698850823277482494348692209962711198078893967057817865655749544649104055894517413763100635713879042874194912616927037243936745510663855480748436909306869545088262038979896668953808687291257419250687404686379677799695782116481999958796262103929981605633845406082303846759391394537152987889109650175718182929887543620920406860755775202986022249433032426814204401003222207453859807243057169815706567224360468426968491052126928421809279020813312723552303784134426990992851442566692174585947925870106780695252571021844532130701999018689011426973245144331581657395571766240047199099537506448166359784923334165468275454967520275192747385509370307690716001686969425772354607790747599773666884833770367645835673581772575222138795800683254520921222926170001668614971714649790428834059481812342186008945409015842565189071630583536188265502565801271137775808951831747110532467510363247707832359511655553681840372889463693502608143612108848119378949720351554720568328481880948150767416158706985378158365921937290731447905924123078596511349476071426647000370301422402141985128388647965009552212693974592666351634832588800764549218062000258497466906813696082666233744486569272472218808237797382360756163341830232549620397101265520994692372948396148568480593150788509559868987465463042202782033953670074565074934535104914006617857705508905819978227727474365423426637639159517511136101089796435161707655230002064385401045545776252718037661941566668929549350027302727770936744727550362800109733080323392295084342387559451423911164335943213579958434932083547323818665271865245811801438896090278147747777735197196830796518880297585070859118913598025350607981105963206835599057017185563975390343335505762482987021589273700326642257811267420258519861851808054461766168853322062350784131094526216397030354170753611300104922149835235215209941796855198014329100303878297124147061656058077421408634455207736524707929189169502602330133354095463139267556065007523667897231777248302445311670933347293209926906485256702859649718350065505568835915775445294539974951635565104768884840914114683431227201498309713289279606273919513809800336034174796029920475710021390500734054248157376217101220709639261999524247867858060555412325801898070665222239039384202802257405307901740115459781908501618911767353965431781003574137266810403912756710530551918956006882839517894354228505922883635963752919644355429231561595656863213730230592677914693212924824533597213061173643284991185290920471233957522427898470518494972917480772461498695337719509963451780625392233573094925504758814521146355138517542676583170337567361952385628222090942470117062659732076267257848877894242680585072475128062808964157956444281892780721006078611878879668505552991442733458102047040537789532024024703504671817776496132624319784719347077689696240324351969667271644513778104584842589852491250126449362195247324414520533677474126950472842215240275154268451871260007745067116298837397252579117136011542637747377512097163934673634438702730222250702645024013718236817616741925567329935786710409142228084065089518259701797521404366204152855127534405681356549144995498058071296840282853339668884231747884115839205021449721998628605468305288819571668578315000806110780269565789547297312434458917561759396808737378940683185186507935990341412897756986499259488916851295425170213966549357696714468352214468995474596188834855799763491512543331361731634723131753698278173290649958646566060871254836607492990097140249639673401650253924731141917260174225068427659430878500661518589654743147957714621676063834253155169826774383370666792832625477286778180355134946425193983660588407816379388447389587999582951955879845572838099787119033335308032118246493122002065842109368459130146378233915114179418510425187403393424922152469417568438838168122308233385495667188233457532207737982128517360334753795510517421894048600609324672133274424704885641150043392985468524031611640798962052349897954333042376779172234653096180432630122265568829919899360410107278600850697616615961365229126523537412495722669558554659500458993788651256852743505228536285121779764803665396812863698104104113282021905891969726895097057109689481449499536519894620311804278540415194328465121525835642414131402441211013980131546443474016086800621938567608404740446293879686768971289331894122038773348409157677267857073435229557384379312135950500867088913923065480573946724183743357531595396262598352591241841494986285800422244476418637287689161917254399670071283523292352570444031778962749241497261840374180176421443367744198877999441669239535418163000973935531249273487583113581984361502811405317975489265317436239247285456016148282097322715035511694174769930832868457652533847771777785625630347845630622012341366504771371940328703036279756003135615418990779895742450940663490298887521999641293502469787125947828111092517028024849170018900571942519226624570950676701490486191776055208256109230906090093492196588017222936269243538614080421544773827242132004428038743850854188165993822541683076809627373115240103454567520762692557268699845887141525573965529076196148263710697418155363119051069457639083304857273887804892944396382215153545725879122899526909411735869650739645392591305352267988471322500407435848701643257661357688631519244326690381662424560852565621952537439028580668268712643233494270639848299778975647936214429955536417682704197399150084095485917897614955011931518412942427580959760791150696723460412753752931146363823506748732570955437139208707071311747860784882869669583667130816616182515379488207527779679825728485151718796165581301640736676508169638661455041615636688114598957872539468420776542283860864448172361119651459833999799010108669079576575131422166404494144637883950725355526111015039772924887634480457700469422113402894741829015864083059252709229903345843673828675110666206078780029710235575974982789937218826171271430980270285329466594618772356391987034501700943618591595497739371249906679675381196124025587761262102509920926128764596676084774692950585856171104266275494263537884548139180922367622183338488578126413766433665778108816147237451737856337972938556278497897598593656637195027616473959554022602417054510035004509916889862004736603619475105543997065593093378289528629345405609466604978448697374446201026091272651175550749914606786075969316870714911113480113979958449767853234024805219041417251258451011071525172534317474863410293191320556455027327179978375063696978317362936066131143070235671788424885162055212669007675755178985068048989410811663923569353246819394196892263715805006941850106178173033357132924602917547678875344495955042096065483637838282735653504464876580044512536201919147266460540367502410513631066124224102245005102645572371446201314002577244864119671911071088152198770590918162487338024353848217758670889181733318660356813714201314188561145800828467204455672831735817496283537368567670487230240515467466679941843159507871389492898325232568717751117084931016208181025062975233002342838985198471357099512127591192940362804487450929010076550203176900021490800576531062190647661373465958822365149141943104820965482061882139284773942981261106128779592095206579188018178421985355959806326618794810422950879512000609994628678023294896776492400047340173821697518978859714163303989259983487124561609146121621214911543264240303911902473208155644881300289125480249419305707140004422147486979218379386864228560729025291455713336213555678118840554438551041196830390182778177214084916958584444342550438836441697693449129931174808490171535476524897643809209126707176246020040818875265846838967063772617852348769146716350177619503024036053540164854320329814043259749460278948449080840784754517375812692807519895682676590968146237199059105092012239658168736209481645962596735930434600262799439738148248220134152492433280252917039173464862519209494765795912038119212724404462920251961548138622601205198735069415883742717556525585340426526707378043521227776992614387515279379487787783721355183952686310568732319259782664414465174887480025631476253449620261363324734585553187137905203022041892154378421096653856755730963089130309460654489880242917214290330734326942757732596042075529479861774701126493257714230623075326845060396629726213298952571875324179555264780143750790363663651676794283675939706873177661519968076607673377004792622810081025784169370676228853352333312873373886714177054711827758760231690631183682673193915538928259911783356499927067497625665241788965731933034893881094774399868189757459001065645505659917246518586613001850648792828705325381843978327025393386589130230783966155958689061843134845750918663047799472481476527334114769997480014483762658087673689274551787473958951540993829742464647138231832532472369459633339501552591582735268633212837265335443666648095740955177779419266052342963134731340220625027297279176298774051427296663636456194706251961774977302129356303357037835535143372980758220192627745381324780124907033122543961304071182838038500527241601340962609987046551527582770771481066427946692641337699733334755150182695616655293849911771781865143291592086454823718150559338625471875076448390331422840411760619182333816755276227247818993942762467957806114674533497019298019642693144274342118976138969653433462643604777477938984551627770352164095974881079017821164872370733879681207374996944096497719450082601164637234260932112473812432382627413480353889451638434326850206390545357669456773102106304194523929037666879229774763667284624879546039448785579017741216965146706680740540189023127496501799586577682955978109359877537282296223203752085272372438108890737929517274611789224318962703262544304928488452610485302402377979700782199538019944759838720313638892328109124886027712447176253271251379398412032576013342063466914670291092762640499446327899036644101688718102980651946035462223301459257141402248727518072383944962945829408081234137493291527006867383366330123808447464092787095936919013550191626478338462243730528683686957993894003239641903619309440579674871341494053667861265922618358367110534807665463588059113159860550883464315725863081649443295306847775470270688672045648190239602775961415183160913256274734017775261711200092226054347201768196258612276286376130255546656253386957971418842381329866570254904941093550856754825694845624763057594590901636270024445358667687501883770204755918504721839188768976828284014056406227652213747998210308115038406863682913482372896957184501778348563145910139978348081283057990451801934462023705181835879945543235834614096410056927676857224354949609343227543968036648705943842846407960322000886542258903949755666267936389485539053189903497317687064119351988833521329283766328632427394872726391141257035428552720316424652639971986709467884917948934604712455952121825060038217293089941449803792697070188177018767635833459214782329253362176481593776770449351066037256488701691544853239377206012304244081901077021413130400619395499869393286011923376958697367886354229112366233824942465766336160950020443362454944297721294397548509668789244589272594299026189394011204453396963841909279311734521826655147295053865462403433465196672584021444162063991160329472523033424722157067069988017777496357800862632148331862850536294374616818137351528543618657470589090574792453891699327887453519226045793872471648297810405154516370952869890863126480582909207915717082913237857601466604175317852677069511737882441119012835607954973100363751902561005620997532802459995816631640009342098164792199131593436697521996610604884355591404748848950302188088590051341469357143294429555160717457991656035648753188292527940763332921611588859666927603809100510052640983243257515999737031611176656100427265951494506403800716933590349008478051564573358211330065698500000203468485284447280499952442735066085779180774154874901084940397205324398736528473478697890851821503458017375525642147180481552769983812211565894628446738766284243504559294023371721739810153792003949907767149054375535896792662625323046886482690210648535436357221439753397805768860769407639480939277634936651325419648913105395588599123713697126536421325446297343871418616698140020656090504006221002174935141725354044075201345856074781496557661975277786979621540832749449657159678652541950376039718077383129063721155630367714450739672082971449229573482483902315627762832530009140351316236064972034345151077936658622757900886228644501843483079818375071309041782698983711599059113733657519969597451897967149405557408094281321747693559554980702514730349152890723162210744418129529221937118267330251386164122912566524390470333904963170464034794301161996745434508323101770572105081121381200460324366281452149511377263377719696265635468253292237604046815296232467718270952554350218299336176187599572603890182658668645256599368065062260953629457182021078918061330726956472625017188954830878846686213800229813638856046053418672904053656167269400825059065292415176977590447835857605187855517590210724016133811889625031662631423797512863958921584058752634542389519426838475388289571718900786272109711544718899824438839957680642046114781601434973216689459595945812730101593794365289855995065725536905130238330715914858405728498091873527142355811457135310570693709331222568461729503361439260928049939147095127476461617493394963239679082612801285894481841255850139046064677208739113286395615011218479180808634390776479815771135002558806997568858543617462258176743196225933303783655360095173294808828155764200265637486919914698851592245887990943685143496091749971817143328364767017133050785079291791221161511611917535311855963859616474328114727770536358864087383462112400070207323182125705556065046205428747810521560540576378561597252502014547125107149610025767429885039164561595686111631453530870514844892472066551512500442984902474217958545897553537957461565782854357683691825343261649480431108236970155696823537107070130196263387379268944857265066407121176625106874250000951823963108067273259235989218814616908980337069517692162068161260659768974515739658352326875741358384725109316158219958724240400875006195856193441932243119423036407703984447079861976931055720794456074413066988201204982548411292115383384353032669001000277550961647669004248319394144280999408214608280771983606971671561974505515200568625241768634280349945130484356396175113267261991674555579816365409359068195026152134921770413799364421830294906499403479328528451596482639851961898246313780766206945373451346949843015056904359488190734873185614513285197683236904434554603621426138597720626714814638469927330054076195844155891209039280052577276806421035791498472175527316502444596474340016569075272358951575168543188883429449597025478041236045268819340871535458571488427518905808396387191297692781530985241389948515094515289336267998332688086347691528469519574905853841336211421524208390537775714531047324703224691906152739423603941160806848459901019471444144203254100995015171603563369631914432222330256632814924113693138637128991226697722690122569080806549776643015298411895183606592405908340646701531067952198594725581040879486213860715202738987666803029710072358859462569001508244113459626930653435628849633837823149897169051170175568297428837008264988347642657662059965018196660597372045812821102041948374804390552649137129858348413150327642155046166142035344248665899430760028135184584940586726454681529981050553217143009512066614545984646910577183372461448254113107752676692925876324128263951810848948342217750494746232577989358826187812775635083294179287329651357788935142316645939478191743907804483592074588704601470438162703676578371316456609411804149781951378555282197746427241038076340121412009946190911952457864107105280604795876833469435685511939882947944915999106046286737602917150690291557423010723467784359800352791874019577310816032430708142604916312153971575678244308742454772967053672307398475793894267455540191482626601338642229854655416528832573520001387473402767814044176451321676091480005250234862070421292420986915995609152887534111232227279139992387900098748099365992794995125213744786998712169143453827640651849691315127755259018541113243852330502780612843170680103449791176757660944192027072633367791838277980481618129043780417427764741563003110999059663591990312602634908227736774900908342175668780390153761791395273281606796295127431503325664638624258555321185431257956236655170020804729131974063478943201699182378092730694030373601082687286096889772300335556254554371954949426661306235611638270472281954812392277532322089426929130854078403923325335116494327261760608280925622618305365659413686180441280214077320328661807025229266087590499827486094794414120032635526386289495299807114689653014750222691115102092997603601872236031532029313820623605484328667254115132434616297351393533472221905543534385189461008123364399889015285121726862829647649763297249832119603531865878139662564347344796284837932580402563594791186586825662808454771140315576696611274547179279018356357318224304439087511000960526300477603775041082932749209899377522006422422401374552380577709193434793142894024129012989077998172245609151486180210949527254871462147152796643029191274907604417557479084663916735912025340293670259569806688140185783483564662987448195551297321698065247158764405067347845134322027725892827322912773722245715586709291213106478020293164160828039576945243519913261661696464743977147862437951495627685885690744758714291428655712282347924186285307055228355756858789180044311429704657785037564257160577968642752161743007468115563286230355857687244172180022995879816920788140446301068432831700517554172156096903813325803841064338688095970351130836113842356542343009861384096488443664234158157616197160533716776627682158459422074013691728877129375309138404449191478536172526403130687640915558715667658831036627674935556444646224282324879618139439206158698735955964198926459199020389068493900603957375440338821570484767758651297387198174665262260775549099180527081111121222007385019370920106473252698174928885072177148744860049306676843005732634580461914437572928276493043118213106504176544334454234421399375043169955355751134638260171570384670764007835701935796678298540281740229503337106563580983963200631285214488340669887628966991290030385469625707656115350050173827329000596111239908754727244816325895833725966910573843233683511517224573686825388850511588242986891845038772366121187416493172324318168955748502375247454496061511087754763257570352773002591622503565729239171148526703488339961124211114961147138433793930733813752322478699013518308765868632922162721976769204185175227523565979222350482655275586234022167542301606717865653213405508477488608397147767287746770853382135641813980297187577337212990730500971598365505756357353658781073337979169533391392150158486586409581171291867722741730043475867575860878829179285864590971182651846046688686793140033331772695591572649178871590837470366242943185009718856075198971211277588951626364579054322765404028412157003478714532251668148707306363204389708162908035782883836282702485344859252001826826732998788121504568745915030962320834869055579528004206160893066141296661386466594720706407215958584778869216015553861705768453178623054515791428303018885338765806352227899230115593032162446226621992676643273598350851143722872598658851914418610049703521823133146931675759780907809895276896217704141028830272264991543525563975032862845287195551068698278118647248930501576186789625110298475258924244021368062518437991083581012233861273020136435744119983499530106087442392935487604137790503965272637328080311023583358254639810844974803611492914573383816871183134220597722872376975754221986157536770205592509920832777984054029598067121296488622139861854221238424459870501366923854839579903300204230594084121063242608294008567384836425497919540353870239290639410171977553101877493576017184975851601416508743194425499928895915226415832350670980054325610554810528095684398721509847308865806356719176980853012465714126635805007907938695974338089881061599320464707257575103868546247844824666290919378321288076981074780884714436788729857724647955389874240346395651776458736445385927379582143548676872303880397047287068496802160604810377901180804534598577220509040853817096469610316360135541032209339833521286709335249527531698808435663087430701753209038329316926676298970387370109037679073504973070523123985135759675493139383590340304516850309654766648612060188221483848589348030049637855871751115068400210705776050531984676148473400979009790766556429093529184240886350540263280572652265725973901284822373495649828869072683888615400830711475837949027036589762438727429593447987619984591529492031973480538577187905947928005191020198605384920410812711751133574682386493131330211571172688925576103531672341789892468769558049646974854872383230170574380462217608023139359456217937086180121329480458937727129680134234495992727042713840720479230384768930929459771877799480109359410311648453770592484193107249451384192133611593591385426705419437981059393710910816243659475386487467734248563020265654314459673964714736773256895432665413908393030030932337144435925586160179535209953975696596747464779951693644552906977070566845106659167793920766452299319371247195096465072086870750981268649471374460839225732089465641314876834958435456273133851782737784206639306485376436948011523814811844238113477221756777268463714618278736256469268916872857146542950115695150097009732505466971484108942102046157380092075007017696369582356708811198106202351086009170792043329064731221911952711008077638151126962656687791062637451581860199133686810274727626819095101036303055553748282643902048909618716446951162583122494779191827049425225372417516164713222156558460274879274655145410183791124412555112197656445021310218715344893437648139941967022107084597065316072416396259718734503047594018733595959124111239833373453777042136356877109179036480943930139971269643305823526067129116015476874166251499235816994730171797492677861337815150502269813995374834479511334240504403084930951815310647323630320469597417311768592401654204009413463703642826179153879126738151631287898360580771034713284316572715316539707194896123582126511582181296069954115693886192999337627478566711802887421796843363005387263419302252374658129041832120194876111817840168808593721102108601267701560313600879349075694450666609956186647142451925006126518010725181689306828729259495403371326817278255187933336448000981722723084416433160265616454276917278350274342732751732782443568368060723404271830989002313787191875979313902005592707797711675863868416940716235177973814371000926207557380035195613289758596806977001282291708087261581527760852281259020507698094923829857989890806656125677384948029982317603465588239253602682065846979506927868117249327340148173507726358840333340263359937038264216113432567161727588882848295994446011858650862551637775804385614054701026242824501918442538714384012571009784506046582071911388919908707708384443129779847077235231450525393447689313037613104502150391695385911870447362643258402844327145874004861036046646122644922391899519662838879367908160337541507153809854082838303283360720688152980956732133039739315943516374956353493031175856849393216856930755710657408621660268731529987818093437025951666606539781079915161753903303728936916585359268684023779724570339873915382199974781762512693097426354099036469945795951353564534081751939482630984778341068379492097960011753741349746336051389556973354837165776471234715522437563660323661197565375670609197989833119769945021432181508197041593245260180764411724482622792953131649689374615061699659328915061477253472966603513508231556992905955901683398144122686285335453587259856754005603076195903089286764541394903296844028006816963887468921091715382660576194207011093909731336326686414214764065954268565757389685201511895893849496192352410565391184937489715644727127043348194905097383833857565057888244294759017841310875762687332495942696898396994439229268288963228715737022271736485642841336538467760821511669194476796310027085486827297271343927782767501191675586406614012128521880371579214589133090709592215500753095144011091529129666563110956496747092548116513677145101429611247561486801501552380394356801343812034894437851197719976761501605352193239131301115121017904883073489423984236558208976311574930091408257413320521962264708680824198942766539701128285595043344489224384193157771146463574583376366208281292723241245385549132067947944683976684018336049568944119144701979612225119076760892840730026742813232174755516199047579537126378468277729642806281089918858795641455402542763744433663078434291381044559255791486548516057429774930693694428175535662015395389991402342552902317100320537702482875499678510148125781679120018426274844389611840010208646459168793034526455925591178741181126944550942429521762836425591103142324067112814232409395731612698734539284068702859147648164641653056847065397404131150365179211713804498651000325328600748946713258962566684634934070778957510833447249984295505142537122098451360168806975566808339680684000349563616365903422433045778077388807324850290610995228134443925783494395973943240158319655942534185358952304544357074246393592970565426364164092169334934190747195591026797631806606468645757153739045306479616148660542655285890260566758792973180735282191015954000655032359986663832360230882965725711333503223350469025532566530333569620256527173270309491830292413437483916441669758727613130573414278834608846146544787720414877049647770517451181547159586509978582941109309563356334724296532710029079855398547777849359541656442974307496589403684306952720917099368944389976185258759288841344866988163968930095492736641787230767889072706579339419129798147069977522118500699893299191013115079995017114152608293010539530374473191226740713432583296465421729029614903270232188064607498214654802047131766075717626461628395178859782581541072084636306222683912642805001973005638071690343304163135876364100043861673650085875372232225098234845388033191672206740884842332705093657183610214453678957093467105774286685272682757409954634968446183868765483838527951612185270758239462685403481642274852390529983243978545054969802414296408541671323029640318093029557366130427192955207729415536191275705914288221854246851523105465209917434386699434722568923124606511271643637795842810622374536155937684460489889571153025950674695679283281395051444589651166192200434182865982881546473851750104672601186645085981871131254923912450580878433948464649866744951797617668425592625444967705273005235362503264158877257982957957389928251309411895530213320320292563655398854296478038796774638226139683086508464739655818853716098405395504806500830020798010947058514884839360128759923415376645341089892931324829364929678083263530234971075712570628700014057275994806619267642574941887908557296010203043048446664345700070054389220138244180052240806846505389709830850593550097345710714738678015642829598961231691509592861848320767752624414066517844440122063711575900592867492408572050808229722738988417818543010700158635875356815156378032948664509990862038296850212802237642975991894620674408670047577544178527509527048120586406374966014146286058643214712977421710189507371033637505849232853522876012873045611749117757546894835984133444693183401701753692155145517619366534167622570817026288360804586810957187210001088201213517895234567738734504664974227238221816584378039822488606809774830494280327002759592306315535859242152290254831308973355237056080567377421221390017262517267526537452555631945699462086919981491925091151557375347733322832889190662495729586046594705652593364495828567769497279070353426849024057907481378169197184038659160425230973690309848778507716908167494996849359875344873155278384949848133918566772222584203971601366093879373555214078735790815920429069832379236585554996749547902951623471623144272929328226139350138663209178622615103979411825858197957031336378987336309183902766448451822851372088679994157471886313190985182800203445114713213897415321816592450215086962648938275565679776305048469097287650104437441311726990229322555850651789562499989664844534766611554498724160669285856821544757200714312012883337803776515168945439194715112633304563556396357381427328938115772160698081050884537321221151493846776907288487381415157503735287219637354869226418653554571367935155352922884549636424289924114179129533972957156333130490024169678275559265238466272281435808651043120271925136600671998359624418573338820504386301572714712368370228591618168725810823466561905986023194479860987151620859562785768332660357595421409261147632638776505155475417157201344153950679234913944180982557620305145153262985980091896245862527663367043179054424628167099647449932227267150151860094982027973670675668498335082337454270814939236655818318068900504634865184358756035257009343242951032910575238440907908972657755750716815685738624348367667654639101315482468917826176815034607853308726557347057941478832913216275641478733756776960534970688230577611375019659826640200779251164587683303864540434402239938128008698160976954106741036858195172692776983590861839291849667058613210981243548249862126782629431158877455555321375003290831449594443375801063675161601602323592726392481556387179874320869301014025380116997988755753509205242784979868916184664252961347113395902346877949180183827201700544366472738155262424784841102244808186690695875058124243965298314996733595981831915665731631117815485698887453358227354400972199154648205471121742701887577127127064741265644857166175325019800107027690082608263942359012514695610064246672085308937829494644707685699562995908116546829907330125379070220761639516162547439239763589675135446694315185697012683801684909697783264871487587019541252106018441999910399344970540015207306077795277155908437043942905298986284563723044636800443649885669403975121504431969085015756440576512192930765082379751420115953202932975942373043788563802015874940704486806772443384679229705004186605442741896260208265629448056146779756986005133446723642299771429767363197610126180077761777137445808081557874960827448134723220013352653558001309875091732627242761184762278380784763427790901624925377963105115881608923788026852776347767702577195221672479036405652554007475113007950411543470078817713410625870198796307776557752969642100452689980750881146551346341009272384430180116842920596796866928995364691387152993434625758185006678978377141577562575349295405328888114200194214866980028610043537722148884886549856237549695587267229489634461932470670895666623482084050078341726884195432335811476356541757795535235006380020307309367887383034326429772561509306512317253088302167663644576057198079863169292894471490412991355380615126856648161367412399394511291087996075974381614649050404554729959207764063666215087118295691197805511711042687372161829585241839712809513172463022924708448056844483636251751362527837564436498539742596888846822762040389496934932582983058240370830857124672497904991534322448894477682054297982397523881673270252985986049049296237487116742033124280717116306297539038914814406530195196828402415081144200177226419334739489637730813666401977857562369754584146551620899721987933074668030425047243852160709953571314740934620629803001817902274642751990010066598095322120505705240201576623339585865741204768492448990118631905790284350421130072771414936835531948709441474601537546069926023616397507251576797801048350885721324726808116516138296212793982343995163998084806943411477670260763900743529799271432306902946567248687337990108660717157752581173732594997320812959283862592223975568975195808954312903832087637919820816095584666761460938533930283581515168804164784802085561455525011106215621046654189302316831432874869714250601724157468227043489621956165434266444374540192301067768857297688554969549875715861694610757345468648758555910118579024093833692402992658509265783512395217366550348628967684813537497419505062228015198637757038369793526616482632963535435229412356341047561748920882656874102514139080248605173746567360820441102307506526817718603210615197670810327256880985804977531947834169418108916234610581982550013835420661248501432033955816407459225940717079614789869230030856007470897832319067981774728026738307292700467000816402302424521214733814858807493612016825761284258133989334269954275952747320277372065292923321165145934065229933005768975475975209068966418522854234742153139610809440737159202056432388375870901109182906040299516930490606044224704992287900777545211384838344634195341918733578590964915044829499009758034714140333774301229567903608596498615524736708474563775693935925544844100058755589088137637718647545964591420220468584853967437785097461053503852870263266324912704516612703239749654454398602915894737780175426661333974240361340726547485813294188886126982174728313740572444767004346235571806663010011018958758766387272446867137474248118115992970877633315756816125522554934423125459563216953411316754404957637035111569126468202724593994617733431865482696772228681289942765576036000725653458876139454968416379574407878816415138152435524574261416205389186236029485086185881487919092462761083640699957354232179042289268664142080837186861259410252760138160710079315861327538361002315215729486235083594799049857573028434328922023488138891318206299749460980683309873800213642461533295066499195430936359154603189845836107887689675475392507479181724943939953955187483914669968040727383799112808043337157708177314859547061322880929148779699773303745903059042524004755040474872311526022391431317657686368875635042239257504694712898699920040582111357812634926763275084853601922949022589577682798962189357373161422646385454868488972632050487026894415658459426468123018136596387455944113467974365523232339950422231772318404529130891178014937263525428483029596532267404012293730314990722532223580264639453608659171303722242498106849738372648343308183253890941127910625073094325733740241037084702084630361428038786854579660178661755437671746273819847952429761815409640760902778331090505485032485844440793192280129591725968443559689934701881226767479643991059585302364594180767907520331868649897734305525235748990279355449436661368757820951406723457084680296055743717386272582692056176607907950373700894434451265825208685983753302298248229953831410207125819132775415339670637683433970211435762510426727683758967184001824618457569071270599974114769083108102453435750056762153797356044804137832993534768493132458350512673408072647247653505496800025611734975183119201703454151770935136074368929344158609383779028962149577437741293653708231472746114035854689929164398481784347079408290508953471670477490348183502629323452516784280864907188432970083343354366336444253888416327026315761116387382470866767602537892075490438590570193828638093497720107564203732478509879306091361418459108648347338288285240364539332561231531524441297997002332451679978776974802705948435282098455578557556711366762542540114425071004549565877394441023784079347632411040551666911118407507141485416361150201620346513047444573038961399285722900275165531370454165025755208199195255999669668978342373091389292711957237652721303818568098908086850807607314046090587105009533841146709758118558292717862450396180486727746613853204889016000407659960112600409400229935391743349677837009317859885609733814815428638844118936650577108819635813121392156559073173017341723942645294286664256935942512206330137286397475104378343922560300477863136221067931031591509771294657236606140701648911802287259620328434602063092437908253180122495586508079084525178332421286936120188710217527429112350503210260981060727316770964419190792266584968422115072751434388471716715778142884290870652547396831181649694422198733729154061595083586582449649715060605725031611150650921318023625564696193050397356061091046732775960733825606131216702559121681176339545716980386230610342715204305715081621802469829873615610105141888601786985591637831001979742594519144967477580840666232310298278146779274485834664231124190755042024177247894473099022027369260800594418804432551807841828910914189807675847152210519000074168369374653597042359048083777053502359542249012933938417615794816825290228475440198056538275603774217302663561305255333775853527208898211524536903380998680747895474688886091249763886049850173685087358403628759413561302481385827238101215939328473953337545120987088527776245659308858789020961156895798607136885057740883206736883696439326034598637489590952245274946510868285071305327690344230080426499469456430389511667617259630032406111792401084487587247831083967406906086565271293924400974340560620672820794538173224966626917655226107762522648949575368023220195994662664868225018243254056339525312100582506846134876268720316638025236964123750105729892458664414803696960743057069062796869055545146180635893086998986311291711613846668715625201554220649591330159541368144977486177488492917400645348575090871203428185982137621247857388933823973961552247891824769642342824976355207039726552462682955053073031951866697824075394276240605374462106696809077045381505947104140569230574653400102460125391386872309806003949509818393187250284322598145793527862147637450215877864048408439385948166890982651488184198706188736677776328653433259181807134494308212537393689248224377885072313508205793189942033546470396574824629995554957431159591424822164250812303890183262241350443532326629113720405957711346912677983226668857938667792783008317774049162889084775216094144352304317697962175937927398412549846984669954836026690842292124831289589858332949518887086314647178794338382022970747567688017566714392772674706411958510024971878383794708489437238447081090681190848053471210523938204997201472938307662525542575444334988002831030234949886137779679667900559457735510210226790779551883045021486750150342288819289351673967322666560869634803742762717091373297182688513597083017371166598947709240268774062587195958614903091302983103593220676953318174597254798433798699812321667458721947693091616091860924219561199247194851749052038265973373852886645906420747007387276775906344051115148903653836659791783964994896111372108574337172339142854926882606661930782046625250842309359854391895021750690070502140093017558072965907499477971667856488458383660861631686402000290964248779715591999421369468868420430295200112447016550380778954693355213646910910674806503494902419508857223296897934912784733064134557293324573923885034328897315851713824686086413874411920721102877591987235306757584278301819890457807645362979789022417524869411655439225963752671900563746631320024130705648682747791576976463295204613462228522660414036371523922121320156470989315850313666419587771503595039642429829147319428022956442934041524673020917304355554142271112769806193944380206618031888994830616537971801466275186659117289419624721174574308170798322624068579303247895814063709140447835556781960051820435159171753133494965292005920519039469516119187382819327466338522914076163379816198372550822198568626751556606257947069454823390333699963886888959147599330602424899655960762902558961795665733179072900793339167654784986313127461755660002153837800516433343758288046147548418052099276903920931496081154965555091010959290976804220176991339063608231268725868153949332413417370862376965908702224285925128173240917194931880278058863227138719725952637153387492910255889212068026988201237541461625846712971187817160301581691615165137813459757201456445170634348511860482297465695477786593084401832347403024241886418125115465187750979653957662302462884928432514862528209420568771747912000667340539983245251299105790920742325347832692143401738895514520383157863961314815079009677857327483543466400461246057073906313601328524685826949938732876701792323939581650310645687125941259883627835028423071841099737784116941113324479485433427776025679946402427683103297227056505889894802870839662832211788638864317122199794683528099614923616697190032292939842604695889758148297241912697065902188181516761334069641913783564901239490712193641343777915505287678743824594928711447584876372352337500440667149684563081906793675667052409332192186823753040245535969662690973987548298324809844934630779264926310928723723235970860627065892984789562593743857643967725806375005024708621313492323029016669042184066308339353213882193714033639741273646306778653605593488859326601700548488248966775394029590508895688980501826554581812545417686766073774840334543646706978800229309250893758218602702253462826157715650836852038672138801988346650596979823329479680123285525535161302888534883563409899189713549813350337929864079469772633417031422752737755959496547394331574193052152983802276323181306502633004441222061102651068645772781946640220972861109981999135672574572824206689383272252685161926459514854355876577021469529245031871694286932431719378419513124271189564808373157324284311863743591953898422186820457283628884911337911483202353599140890569311767642588006665391614267412430656071472489388338099676023469443916579717378447132753708210280864884102153866330370324994757106231855789420854144723537719105360444302182057580083170572572990826450515550944177420127110977600313862483787600585077461004205109835542304922847783699868999479930741953997369510536345433614229456299833982388880285595878635796300689175344238685437462632387735066953083835063249546376027462828754489899682845850526261859027715543187523809690483653649276072944807825186289250554516103026813110625351126170379133110487005839646720467083471446993497228280288602672993867302236548146724209525799161922228352422449950999481572417598156500112848919835772149491814074724518443377792985668441365358527264844625627254304426218696406195916958485585938018596636890336128144642865587793436754817071042768176902118154393493959018300961689640594596314543027419532172995842016810268941933715233545415529827601958038215267959621652293991634813615427481346258342013913815928526599330589048042098396100861737004307147334972682125349735339814541007157919243311724660825764161887793706867969010447669481718306204614084808062850898654276879917473967530915052391607030641447131500821543791981505657840189426194348231868292329269059944030488648120693220724327782050066541884182685996664632556098761992808496204920000336575720550925248905487543179118220557432984703253599674054693226057979668278542763888669324321672869208341106106834959155911142369433158913021870331865273661085869582574769835390473358733153127434253203852292686633289243615159030283939883394753196305921099454411992939764311092867733018402462160394985564979931569861396451986163494930357341632465695238985067450503434757959687974266865151448578167067393267663914099438078910964317434031955502267338543395345778585346996138341751196065789697345912697499366826196887879009971237852888747449064700989331763613708331165576565779607198765188497723315077054518062022906901158068892295506187061943315493334583062420234004383952706886579749298135630314913486670255213736162633794638386705002553818720527225491411486947892622429210400828302130126211805366096919092402766755626591498705154640335417205751852989853388429096198370308076190200716547059998966304484743944558627135148497711846007547363536821755464673942195661639936043624877442052417931105145503690874342872045082809148182705093194964036776036417948385423085984199833527283016271768069570379632869825900954776767752796298219810396722527343800344307580756169830900942913612013065658494405120734514139516094540831819948616748641318969527510443347423969009106024222973531319462040109500342551789412438519786141263281600347522372458091111744648554798998093955452584277642362335832282828942660459171762252083209054401958475501182249830947327054916781328247752892014489388028723851635533778588031516218890406262375664657431117919640367385237672044203565201451411239331055234346855243549152665313536401088736736899166366596669650763036410560435897951451765851848912867551831827378415181975492281336096239343427180236133461359905112657342573091611229890856340923763644210474260172796739466151151624428360396619910074570509074064702669448972926238572914440403772166800832917203586162507344468388572324107845466320805402656911526465589593081706909015576188167436511556327374268211675306448431563693208823079504625725144677102165316907430104063548500680614448501373944939652036410693704290214144838189384820965413911135185518014563789016336225302244490649068920594596330450123904456937971490573021372065215731744791441642602305899483278768811094619878541749137196671544318604361085913866642151569430942577894591824432104510809261802823089861477452535154454383812232052021981841419921341566907055581569236617568557949383208895427335108763364116758163299546096186456915817770330715648379524338197812036461064054809921950583974785243372227599469202207225298294168219752531011487856238950188637995539030124941818341440076729808162392287210797812776706729470439275757671435671918971025123636638355144612692725215961900108332148271114359629122818151257785657249415847955935404423403056751002666780348631871762140812394765517852979115072682256858491409961375249105466777526784531386792852284194416643959369833311347164951832721992061179729036984212368766700970610764795677351267149717368363818801735965868265502137126086285244735752271511025597958683919135922711135951639403925785932187288094690321416442510288338281592020580068007984215572491465111843420885945019086221830447637372572600146993864594356287525669721939720139189655932194073248388075436101314620557195314955939402702785768853092547578683889640035502027028500988219652348212500344100460259417940073399267764896216099120070072696955214422698867096198221281476528431485457399865682171398950288794298392698448375508026005632278638565001993819541856409860418663917200248774325538758192558972975187519971396689245288072420295357545466063470572535342265958644961715919851062340749775173824176277240699791422953465317535232926608310387418232955252507754752975293809610333291423867373190488339754263871068787675628627834900706293558282786028889514370276605079465301428489050127801634242682131200079378791531007511285922005412312513518996646254082068390579429508423829652289594172455122809369016083944767138609635898003020380053178855325651405026033392982794963681034026050735413548456743199009230545625218825984127264221070683790561683557458710279222345332420277759497792733884188700435433990416906129321709574477735314998977360904039797085177921494241604164352085589170211578539256499938879362223921145422561530530105345867549864357911700349153109233107566669314909403941888032421210894474444276838400472769601339931964922035386868451991249606460725978489025136673177307415908939268081348590343952579147202300563038040793858466250720266713232687571977576423013403526721650659333622799043085637294146854994097456666167258160701588101398451524828124361112140086333620252459694620122565158767349128332491451224579069935313468972869328978377589723735262658777950716007476343633736587103436088518167440483782323332781784145452984548659571910296520901900703234818060409993473862412427097143187084844096036255754762476390705819939552945740420979584133376952796131401089789271887687712937949154661250646987535197968843742540483638027326234214539429414903615515023185569513599670770432957894324731430504948981236490778083616213721761422493285083335619519976286497564489421133327663017661699047746947346105734022433275086571760080984621005795344022478426051259380843107180603054584596611559876212506322810444957719863270891214676235823113244945881589059777539688755579448007413324971763488505952740648418684166141781264349628859995770035687434858931491877917975198783953734172495096143737872686154677157718767953983043516791930004252202699404479904924765215035384078443843492085613335047658915498127790481556736292431035531251703440734063232516035172631991451399693764798088826298977799715171359202376142280685504707524556415981564185698651032931035237217429044669728852072401474745604638382664377745096119340804598951049328098496834183611303234586345058731567387887898116196215852876446847492518535676269919095985572325873320094994092866428171441928118526966420130606683541807377630044665471599057260079294039529589759566400488647572164882580435715457945735870312560381027582681339229096833291282565823564573011944658925053890728560061942467569570341982953306140435779680688469617829573982581274737553485018570607481597427727700272393491552115796378115412058783338613972254240003650941914024910658995560874171594956765429087002403724579401048632216682927182009582128613570477912539941404925391015062602837376288143301996206687435501239997672591313594277759108163391081933078099160170558102953234820863513913165812658707671732091949237552490281122164695675090240285861389531365462038764687013609473175834344360247723651773106755426857367212946299476919196406164233712662645940741012643712589536335847419569043567095414378817605600183510366614854610739509054974358308560349955813930722558075239951033295028004558510093620405214686498214142731189067711625049270618346850641910981503057297711904807889388271130959538423905438968156808980526714277566427719895404689987688900783660012485749823250967874441698402633478590533191936125943585341924311603545414763008800359334858908933055906177056461469244221691788698178417341013745584818812088440878610296057260679926377574089937192129922658793124618335588581765514708344801835724390365563233136874972903243500898868053922639411198871530749744495119647928225682872263538360405837893010011149242104310882850282531119461653845862359727683564813130249360066860655538204447964470927727341137947119784898767481916852787529101916369155536534950866768668906080205259361847804529801538669692416820443723560403874863504330905297133465211865036210852193594399886886882533123379318280988435033732674749659699546168764388492099228692366365840914673639804903014809446100158518775811855119307216226044371284727836561301361872997050931754942279140777564632895233284601371866545832575948368134528550394394545164874152400653638595242850960251904046171151677611477432844846449283811999445196980968278740175029306230411418945991873502069672699034602689820890498856845855175853656806432111248957113857656675856233999331164393484580842470458814280639699298973284074143594774876603225836258613441535936465257730244396264888180619355213033589923836864829390719905176498159838158551623640854229705550322985226202238389697428854129720341293719386756236704903507739670050665636370675645740719182623715496837349849957391094080378569021560317054336285922074046420107257986153539420027002452347019095741406874258130899982773772079574600344833004119639667497613950040126495785476583406537404140821325965990025250139994788526788247514478851548295998803029666200859373133456481072593561990277120254865985463102337380211468283956179864188477656265761597698907196550410053247525448629642539738188620096226585007709579159239139091406666728154732098258198744503015859556200839597282808062457611236261366938561126954905663358730304607054539730168904793328137482106449218534942029561873062819727955409666600434448745833353290899403214714743433228686798490664576327787063110808037424209969001463754526712319262460931329265329968615170122516162630746094145868682366478223665029701875927735171672308369805645975275885086293876989251298960038936820856858253840179292456696048382474246589339313548674058417900285253598447620838458076218195687692447567889764798197961672513664506499818758534425011776073879759941845164117783995778433735935503908958925636247893322526618652462125850391506188750243719830231593337330683967072603282157124938386794392321798378951309311824356987174112986757291565537826426486090447656931808759097695628547706814825371461680619016049705101599987572834718844470543803267709790180281215650481894574216300237717737601003443147427178962911693499466556730925671084833789407023738010238308299530811716016347587063421260472164590233825660388259326551479602060670588174357795979372774438266776317218122723922861748454710667036312373505656616993398704602952490394573446394076992801498611191179317488273033345340280440708180306698199544032606235566813095746977284319039469020790987875240992078692034425703298168478424844496407718632865595235938409192779194466195106106648060044673616213238540687496809726971505562671411220081603974386906015717976412847071806765998187117969307778105654118879898659880370495872918847813146718198035910780214041419750995616707837349004685534298335834584411594310706274347197386939999251259142902569038472405593187561736657141173926119687633658969666944829703529689181951974715472118714984286996529312859365303195461694363802927838243380419792856428182507004780209032623476338509000169837772690536261696501460419449786444761097894676941663403676985648119272650514778353675926131951716108801870741282044013377776522066296240098558101746298970980254340678949511528733387164205286382856764928151416437239838893512831408071872297472359183687659179561432216328199592879412447638245332448921430785300232528789697985166379498758783670725396927781020656472289874832626484982139415649592429092136388019266491016299534898639953806648168806326866469262617279898054120612649647609368850316618509702250286633158894104234143901982505895785528497582211586440017543426470835962526553447033810806289086591003739347590236136009727318084211323390357635862511689537845431308512033983129206985257017224251097584960414699265403863322757987598215862814412554121352242553211063338821929308537919240971814750658275611455770334434947883226441376215202568939941158479260016386300615538154895651546667572245750145436775978287146915702109101343159118831324067043052280927501310098289049815251741233679296660322396201838756848940924987380391323508112206242454468874682202674186076747306136460861288046090555981965924392789358203975015901469210694205939612482434188315333312070929031407481585546065667826142118527584144677636273980846317754777987170163837374945527054874698202659940032395048887968740220231238435832285345157100598084009486524880469171628339412843948745495359272273162127060151607859186512617502390444600828913770955224899047603574139085657906079735535013339686955793575492331973761376245371339451500548148536040449721779234034255279054829345112986504065489182510028774364812595875810013971763198487423907114055596838978253648609267698513680510406009996041531234859183338388908571862162370485998099334676959002998853647167077227653661222398659440241384216037789823046704779789448338432180645675436488415436403964318602547348935411589537076016112149219054778678501410627628767803058048507667704330158093754291482431547505308162354991972923921790199457071025553913171317635165865095139589344276384426227928722419181208855400693361360537671398059901735463021334042082991556228860073692835858029337207738033736672920719070442606022552392192543863310850546909182518268256120352779730668407332698782763468271130599662577863598262518548084452984815369992949814086025808158307916066947927185166445379634988993684315172065389606969250321954501695267298059713181236623994365604503183448829420744429242679834672186110993424786543211537120859213912983630801540529101542442463569874810011878327172981653359691471931407733323523473311085756434030535884018143948319343814060382065220099037691203032633531225654940106710491815878599262063347013543715599500265790164502309010163456585849507698006781898734930363106630772709557060763463081756775346492814978156120709627214387136528283802164934908177193069531147904533878955954417082538015223202366855611301185570889674006792126959851622686885987546186954345638190699420558740372340214934714586625836350528321196016461391664210292867890908462004374408516256196376046188222182131948282219600202613168170566089843861483433588438754693119195682416033688150396087138046121720775516748962104939414632213323305001906456093810754191116535404216189575791596418142632626517790495155781962274533810640972957163749694560058655371180695191363369322790940779280230265257796243449366040655806052513835653910741429714755129784127895009291239481205217987538645173932677372333412522680822867920158984107186341482965785560840676211523668255440791736468921860491467983380964540989632528425377187592638037264091506606809926476633413341607636827799987238134089920395796789755657855577548010924957119080338938661918813133303105408775698622071321763734669066575573559327725880406640926776567754371290173938511310089649431480042226946900281031763023585399942667374802392899973076223704735849554659279274826121943261605312417524897152367573844406882677800943861637829518205207849892865715453238779098897204730410862164107953695379897940443640241531840731493079208861807625892784121580296487643047864145857725900348299030228652950445579063427877548121715161968323310049349256228448893940610934289309001184627169869799596115336975765034556404555264121599182785958338566616220094447339847728624251747801127862342177063222228488596102567559920119133537589192658060037553205299212124257010022036625550098106287310522100408708313182352899055188013917542234901616862159279063580137481864826715916177710377360117242589850689337146290159279197218363457362404138043198283428173598445627290198232254847821387967138413778223791693641258967437772215659681751579903262567370026870713713154070055257676685552743161015399287636147794576924544816538641496816375900732779807493334450143414028518236558131770885523210858977544407135107916848173944127949594443187814880083175395291029078718245291233371774471363900047833144559916315305946761560921254754020678088091961058617968411907774380867074682691992546632193012089556971896118591452216478268593812191741940603156704235788986926442308457978368093755585575960615548278499474055111686905608998490958921917273469740098619097003049420037495379177705915038582111342288884300350686710038507782822821826883299153434661912528740430068940703163730216799389327494551181011529777196442922480451518373109930111873337859925520001680613143586119000893390220267662855856480044235828840467140470294266439470008362218235111941687926928671829632886882908069026032166392996892749114626107785713001386716662705093587254265792793997578305025412209829195181186173016064107770375746127013368854170129181118226447645096433269739444846469130236385999162068287109722234914646727220689775281528327286998392173074385851392888724311219362734588942407094693283968703208426802648765618737770209677698450478070294622438967750533570049044585303234058605338568981202854821618705007174010074709260138540920126306325236143181561633266896066949361239786819880907259713216877712556251894726947885193249368742183768491221392197230701346422151718438426720875154299981183391038262246942532487173632386725829791512192668284568402550966280872758408263375640155995600226806792194601981303964589834187241895263908163459460932857664792425500747359681276647539976866186373611605534278968665823297234494125876278176497317088065153103148129365451146338117961181456365188525270604847055794668349954485366513861355387479061946609353597387886935253486534973569359381414484245100934050822518976298527701587865745505308528815214544692371011716671332578820517268854086898618355552955997870607821381649011133969089430982614509630466495813712739331091279721423579087536298990205362628417460254166081850177586239801915629807031552720424889975844780220564378437745003542189481383295973037533408540758293533856819467310209482082728768705565277305473460769335374513154728876576168432802199739162998361009226669724480209755546357034575432410158444784574860198578808955731071670534911853466837501203879666099367986948904963032903269674441347477841242314696948953744049291411208400766952540587162778620046601680679613374107842794422411876508187284690898788766807653955152799611440425790488663030451562013759118486551336559580289636053694138675097370565963743240449454337089778647863622313607173403124142788995028777110286027426339216592002932547742182175622597872335369298516828962142755166227876764892176187310893998516976897380803064795340734532393923578832001620117044802875913351136537951049819403081455257373572947531073937044879375203889100607931756249592701115348254968079582550000646320029241005154746799899307707092284010433519426949029931142598989656200963949993403200177747322734998859539605836997393301945129419213925984440009094234460101479990057630612089342562376526771452085677550368435881790575856271355986755441271481534319714276515319318273047236454783614050656625429607992956351559273206739869362426130468359729767761117417686842901926494528278526842659076982674694751435877240815563192754032086763179625527261772443914537753324006334655373559427055795119584388138797623566849178473794739254337981678628127175673032140935958010263378385999151194480293934202176307901453146976159351226138442610411963363497274179712088970675644147817111020592059445548866242928701902997427782144730020994778460371061688435343876843203240806629231711199557387630926398819664522762877670956415204989409858137536294033755335219230510246082488935555256300460396607027399414423049541759210181608672081028374992277649333797403056470266133942911825244666657001517646459591373663470099356825737990760509491269882525736154773310121631668867021120409080467983662724181111615925634625835059375870559070494803947900160365614227059415186206159160432921217026391206475944206239825752695756000164989539312635345050359019256690035528657368801540830812042510640269032331432666033005652616438244973212231580735098015263565752701005005131536737698974176101453962206370260757918317597506532412179284984362025328188383687457445721635481095692275300239400180489062496756203972689949523634978221812786264755142444499814419334312452489272847089497115612563238040457431654557014393932647222907240804171502532338515939314263389719499115252678103754231695111124084481789703746571292970789638596537588316962992011891319724621036410307491963093829523344079844712659438468956618630455868364934392455571324833627359848130290567791174133701523968406757139501241843804100142979150415477599335435866806132510949623741976824726239962547547011740778179448847892574357381225408686673300112353390804110671054079127631938748995130876166568433397416769787035760363846544339260148054722294414613032789364567109429124947327452569242341257883831015565970086046618247335766955032245607061946803456232062731636505508407298952336957713248024476653801474840266521077096527928732291304080044425153647029392027376381202400861777938899175623107906460491187424872891111406749693589854615642977730934869638316133630335409206881242074963675602030068948063011138296293362280215913193309208231265193851560919153995621824152417933628014303924148298914545609220907192600631366440542486248723866387449488881029668098567763504680266813197878975558934313553353810058524502715679867506787539201199824630381295255738136186073417236506086668838754791466302697359411756377765695749195240740288175716200206761741757640536136434098542844798226033786217609530594752836578603309154565647891902094690950778565846388303926564944566198586731678875829326182659894021501508101274073078139660701118188860061394118961778244876255249086436482839008618491929537553904782976786154673065085948884601707084275498750082555208175947563576417010428812530385855118711245911817790577991332100712978726039891066828858032790287458093647295266491619986289784033766826818870174448499478232904116131780557043352328851245892376070563650616282484531411175120116276013439555743098415211218031825037075672786048280860631413420672617360029453425188745201716703132152272184301935653609731780368983138697040957727763527779393136685254682340841990739579953528123088195798988640484332044434502677587882377863989360935502878723859330077588513496850724964241933891127195698978939428183546290172207045233848952184233702638141428551592882928666143723393408675136411655362102213592460374126764607990586747511467550516590276396876736709728173317185182360914419201637987195158235604913965833544262256952642078754844040997070112046955838256447296346340423057825997431960747184809593674543907445241235881599117289414940871319842908810157459204050511100698173493576877064568444345607311157918733598493639919312503608560102627644113904834202585536242350056097039796028814380481237105088786390611127649682665352521548974383916561014289551599163495495757229092697270124163579024179213108349269973310003289085191080917878732455868258317137478114720047121223907312508986259392308704136995883262831865431803315250487124001089004309052043839216790369056945618934953117801984025466447458116871296429099141346400664083289602282984093594806290387433271181888553665245685259386548130981262091469677068265240454186404222355306238742806607692448654863218507845734574168333083009605214091472787617593261486687923213784328662266507514949962682079013341909776593157085472785638114197437705509514090720456120876291599130392017264499895283899898439126270032004514758184826553536910124898863040380168595742632368528420119283672330187807390006158494339130257355063196924452659298299047951298956097641342522536264904292789048656934540714745153425268221092306546543311729567126395505268947391168858547921487555560878929461757338766664282104643663851125226694351145367164038114109653769632733330622070050641615443555375001913972988853333971155317724272384875795607472698199919169136567613308451003626687445948031532764307782103398065485282386147243312896915019596640587635892510112362243126905826598970763302006294639873950664470897092554814585316768170449371489104156193295289562097738824712898903736627827507564596467148941004622665825867599112421637282599700274586983357115672978587973306656295324187016543037428804081250759499278325777696309467163713066213205637844788209486319649505072703556357958772043538254826437955438688705753469668859567013423269892487403674519232498678433501140658405829934145436604654213208271175745833738763499815848075300743152591130283191403887079176156668921039103839540418251048357533876992397478251777622930775176327905337631066327269155053684036566033177617006280882172938267257225390313929668058554705082976155662284072110735299937570446350598639623024126850351733007139114775705578271873965409597688428856564884902820674398183755801610823959777012480521580951773832821815591935378699008008252745172931112741481200625096236759655700080879847965294367798551711959518804716878330339251703031597003377205295115793847933318167481902444029150491878538703045464431419861532446262136447591688273001310207595189932829755678559052657851796680840502717463127675738642619790149670278711381085046256993973413514017143581483666356037963864450079202279794694025244263757439744681443137933176254606000614788715772092054014901248076522924653357173174016654768990322404456999908886646145747776633329906889339127870826493241093446165467205306103825345163951549789203407927612466620240967498399018403285143448261555345201614488240446388818295440628270196040320421203058791338209527692913301640142169334005339283802498789220824468231966634819660968115779853883276637288417002646021767844858412125657732426561175797004062068142620223456047424393156418110165765864614196868998677139808842411792225034112062460096200153960344561327381563764622482462084204566642089551587759473286022264813091799117716789567914372609365598277215967868081448178063236852141542059363968546929405367624792930070911471453632488403881811044134128939306216234424344028651570288708919755511913453070864594367713573034074149364730256871891151287019694429976760370754658844422300912329341026697679445054791933893989424416451619750597116316029998642968887001713492719004695680478085752345969812409148564068750905991872572426486184677330229288522313965501869037773325730342212041683400349091785226496850342336594073349183473908837649726471946977157989988155557755251971247158694072406143661744549995179418431386830950310848816446100529320529242431594362239735952135776879679611957991502629958942402522616565381046137488386915016654954782127594224172596068837471884793121589908860878959334824889375322052824813156489638102399252937563794471572962984886349844638861039444382637677804286926308096709440202338417813677214882004464855037045011538362900175072080564783268739611362774171309291582187409975755819133231779265581603958563024129458684848735980553757863722883022734116886956392941861054168615432629304583721071912143135890159516428969100092247031307308576543972316293422094760642168103381479071116037844990002398319587234211730199437593930562713520776490464151374927386805957317212596837703180371536892676750085702839337214558835400787284161570949262543594751379594965322338590327191863729897270302569767120149359027886967554392691343867692699626237035091806255078488844362681550649306030987464790545188864086928507579284390890832804424404337344324273798532878054404472539987489626384283497114576784413979066642285079952646777329505727503802360424200302526513775425808952986442502851045581202253994223423974979181863997448081328534664935530430721319415338075948539250626555472603924565291880216611760791999056522232015156803176963845120171560845483471802702218277494224752333106183549958909617100942165644893814695655159552918616555167225460184596319493077614598038670118538802857722423171546046948301847105154670806733506924746412631095074623877762960002771749679312298453022414402800789598866278553998386220889773058549215352170168846565276080011221095047963922865127438688819038444402777078182205085372603006750389197438032792616233652510684088467846858767160186026161888977983321192004540939337912044039529139071754135612016204356380972955223855351338678001387809061398900175135108293457626853694465355412032106870595715058654152480687971062684280898882920035369903982986981887451011654697954204949157487882755017567299988578760815708379325281008381436882288824284014738454489043168646063119516336956179098587051002727735262289210487572059858654286852592776889983068849015933402896100152462588948172454049904557076456158318739926691619771857477875921920792254292572296378386927534844619296715891203629116931043722414165762045956246726039121562743412779485477801917773943111084869952909957944587301512210993746111072805539076803693755948440621874889099666524159020758204683953036457818745808931288568049629684501954106125656861769635371313088421845757101877407692598518008279755767714547251254323169497686718200575328229140803592506165142776382125596926061392594933122728754327499625097403056072896657654725872245907261079115474908216093076753514499184320263265362525836810919757823369030317041298913690313048706647551906066018326156531260837828861100712062725936879236145479561767785650660024427336737994209169004333347615349441801998591526728468907752025259205112276756307021128359753464433167073437032841812330324777990808406736257905739318239180972421397550665184263232350540966682619617263319169911316028621120716253819479902486167489018980294969571131760941786446461166895263669648686996584327041602261450604966456603214539374620675035760019032747616423661059272838432399284678269931741712081321851043210810409021011517215413499285752025273582314448574135947797162151739456754777574854380850180095158158130150992423053853367867357827155195727244763594449418613033174016800606731715467547732258082370845036354334821655450970868490502088824158290183042755009829348076009291325746919493992432934013632096676455103342740680892625864140521092760450305882038202674123065745155127362673367404608691529022637301673616115700737539536814167755578857488916802765834773012291133520762636724579981819435198794431121982652090974525494019360582135084715663879127388397201266896836782515914521559454806281685059984373551168214282833234740834465271533432218408895245673834819774328001919908693221025162904035157473601099031039961534093093770362101936952095407562542904064999807395416427019297852821086941129452311244152121689560164222840013872113052490675891122188734116582013721149192588182134950525042572424431135067304046218849990359431856748669297200295074710091008989951085002802430818546262711782679835960300375180893812104167307637027873088018310106844922049462431580977958078301918871632634651872672612816425107141314784536663408072295050481839889007163363728339080893519530879191959885384942202732248637408346378686071081681808111713243344288397081169848062682300783790599137279486323070481279030577395526920028668339519578973247710013648644365954605686321876651358996274050625482605276272958097583371530258881586882425018681552919048069302587300727119796422398445204194031017597189078072973995422559469873107242526384834110122763722503863801468694487332351419425528578277998650680855864476633047475063977545303406131906063883533621145091130872300883492431246691342412161963334925393230173072307492948608257622013362847653670237347250538428901304124327712639206027075746538397259365219555670203377397705016551764550269407922973968086455113082518170920583106790892250530149423248488292197819705020223202437670121126971919454245715546418078260606788572346884571299422690633782096039246199187997503801845948236282462647045798895998536798620110618669603351928627551031581564359754067469962027059362818673801247619136316266327093958907947755167001717392889170555826398798032492752301670887497760741750798626849553752660113158652759368554504804137034700160397884117057858467749462303769703415737671735281676157024099886406613602053544729565742698391466239146872764675237643730551549145400108543770595775621442804513076862222348187498448734748000548389231825493036147572195957411770055167564011364540648977089116284406906568850163535906364096101620353248080036312240331417925696426231601434663221351863326877605794970243872521323613588925122607641181263225180788807264037717452442280072179893126037941974443720214261418387752783563899667574355353849733612296045682535147510934640754680436501058481674186358199374992104463913237142026622784146327565862756958853666629195120952798255606302787321493780979606721215313846630960482589379701255913602306666909264853437481007269349799840320652982957467469644502600109527948564907613390552578963005867406511266295577762720357109461841611162844718803181268587257498902246197523550199385664121058696295678842258273352753592977113665524166805042277096996450022983520403247502461118559443133528407298763198805935936094980900811509514124503345869043205980798715262473527750686487877970499047856181958861307894295834281473893577415244385779800896955631091461416090105008790908636041140929086630648573840657147375607797186101494125152417597215420216586148170312854628966089445896373738926104251434721224171771888612150901431331310194483302446066151320919999379694574334764404250555392960651947307216970205004021770878708911279388686554579707994013017638092540597990091930078334017610051807183009289513931096240838684245728527470962334680610919401909354158560406736098083156602860558122609458422868713208805124053605034075520947251438468707018341359130280478324295254416641717431089754942427179433387374907767603852271984562212758919895924214343641367695260018418925524928865013384015256398036635048190033380787265993257223090856077324114963213084791293694175354181280823063288055344492984814915305521499354237141401895502283231260805238776811617067332471853164952836862507169379134605576910771162085362333475429962240076239879272690130334032531061359415731378185978517386231420692487821835950561932878833357071664832782655242635639483853008640991306179008303390525159114199925827256421100142856574751677648193342053615042611285622486209815031115542894760934545673781902030106507994269245136425497031261711413080035556030153388926176520856954240571124890222740373637777926917615852012143905514214286632566801211826603636087753530664833429720091043065638460096406654101339034207070524414636211948391545673884445237411818555330590032658563012680320771368890004478366783488478214371909308417169237411726400941566525256789407625811318084145258013241796692307162856790132137259359633762147026944423195780265524105456524198033845914430102050184624365069524706449877951502598862110162684138745331781887078456667116538778591916800979844239796860255194705319213967036091794347004516008673600535984846776865384418511496908379914147441643728899881391466649642207166679351628990926822197642993510371277934733786744161642566341393589982097832519015495882453872792042549651450508807763012504419937153660409562718236983393964845134417478181875244870306787589327923197064927562462008327031229678611735160279858962361425594148660401173532746739550977595721909854173821997471550828899045531857170394796880793704408843591174075338342050678471846408586135470493687340881785099426032508458034039827545009078148897937249408287248562780298350641935554732408588098606819277861973525366327769550925853019290814002097282056492851400858702359047889759403002073865903657533895955711535443991918035692678627755983357040896647161385144936446204422647289594411525067540798624215955149381453814122665347253359783837664587129912238417500169926247580842664492004738461493518265537083414256042648625870187862886543414031230220943296059141193262385822387709342770421556593083271682568814057616200351964602771552050392915245183180298893405778514346775580614312101182717689190758390778351556668500289401349821839008989456753679452177692127027106339512929185782718239814400190519796177915709892496092780758190884348907917225885570705296813300981666915649105988783072991106540432393107465961044793268126737408572851550086612754983171201724855417433186432127684417746802814566953709895172215312112232107622081887653144436018083116874387493379384374152877082129125052049390465700621258784094202560642971572310667200076535557773840412148344015058275057557534194027086194513712714673895238704015041873394934339724845561273582234793044435688354069567473099085941834415516517837355428759543769283877213894176614077739341752873728517743684606467112672650782732112765198918691029714560999706507714409218874094734746792370624742993189015332239609816746473526120238124526689547993509005821079233756871440578716595949045335908975774115583499847328228500527522578237119173595893908823797751479796988822406806911546419723413104950561815018648909113405885706318156227907453929849419132919465168767152208864493370040100913466630160707428024440087711872554425189489816874617324067859782847658704582836679623015732422912672786903934255947418333978551192026859766556016151623190213210712174115074713785627160534472591734501093772160717265912702142746627024650070777351599732335911960451951200308378107061452852853280658592971314194768912764909421658887032098085474240336558835442249886958069257176486359920222430696438575826147440773536035059082460799604096142230892872814326258908295017392384394542151469672211944814757545563482580029955520098012260446894420301880733348119706351615414692376501505336637740480673887581402017810503666583378111728221996532707466889633839538651296726412280915382337612308657239375237203095130869218524772680660211840783748587828006487254777572165853380078628057467069919097424409235679487255596709606208615013593634134044973492737548747742971546532867639774772443249901510335303455361058288666386793440967076271734723077510417209885672156522900704429853357790915302278208180958973093931124047092901931704792297678840403081543968948243525156875691483910781826229556745090174561662063987550282424290147087982594504014496778901574847994463651159266305310916613446491223064940087042664593301580239305596153032809276689152079574797714430717998062208512284505466401052622446627223820457100956070934512562093457735627248851637330243472043361871555019659611148327596853594591320983988328534267871023948692230706612247864090901723864062227905409463520540638231429274422851741471839592898349677180712144860961565096716278821746065319897917644946380303586284209987407437802286038374089503545649405086397966962119491721211619391904426774671361087072398507639224806758192487787216064268070013501939658456196685800137617635277175599347789555660647274219754577041061836350147414080720879899323784751188210542026002414032182254689594538636732847970548246210093163275984169471791732254661492462269547377854750602597328726296204179788925254132108513773834436596507329975131436822820954167551268713611593128143989192218747589634473269132154645005953419051636689543548888997168994683521189407006569547480642217306939975868541518224566602421871419873479173695831591192024216176502855380649729134267160798689292265374532068604703899719866816042690141213092829559941719940171128484661709415294694068782712276341095409273415364665127570500372593069530294274729550679747745576231008118788313036100848126851233294364020249539173591809071095722116080404267964981741456334856054723837451285885965797059738828964984543551587784357023552213692209684620801758378281868750325680765797445063952847576691522636039079578914147764623364518934212064618457124483973027155250980857854784184477604575613437282322347350096629750735283475816161959523690197847970410128838984881947026995794821193323974144151128356314515739088430951454016524072589002305128851040758376797025737291333548898152266450859199676905838268840473652403191398431039022648497793983757235703230105681226441145369841194495340905859887369198895585638101461785424108066404802330941704192236748531051970809008114238676576224094440621122955441755177961111211011841722399450893508221332570598645901304729788194034789229306469899597009319679286310206069682134427270251471249858137956848789603564973090003141151592140777630411891768167645604317573536416975431245065660323043346944367562221521436689102688806279762834928095458754705120287545151367459230243200266855074491549327187345849888349449476500006216077727354922717432079383576624585237875714756464016887252087044181288595406979313804616858092305522636444566492446782776541606111045043543918640244031326984737992911437148710124457019295070900712713399774415420854890342911781145082560216223521058805056456109307400919351417259644726401741891175000906767314638040904633307097273474329243629872264706709849615684758335264132579893212143471308456426225918812333709539421567598815833251976404334273916765385031981347732493364298806677792330122622846547680494039507382836138935865879470451193690460307700980188021052295969832314603627130568952396676456352410873312686854892723549070938749327619189538653435631629784490051401368876591495698603685498275462696554389839735821310945222985010348065774038229312700403716382944144786771935174126352143809154714911011224147941230214224707452273342634250538301587940171988987171583884545537722165251924331830241515251484835601878126841465221779663403173414481612282066748693254946278240002921634151726038578786989783584736104923100216770297923377828007514253503561830419193249144086489643955821018686534917335600321213519182117766725268089839960288516510055219764579624230617994706563143371954489518074783971128550471763409682912339837404279049126876622584906083937104133087877474109696585210895119968227115893753282821710106030685213544335574187450507877554576982649692350854202152103271819764798584508356149395008660510926576762173421991761816516610829344472010024600577052236174989000702569760671779541653497547600248056398444304571803367715961383661026292036289172897334939464178744060352495073048085184511435239824771669279624598596190624056989755954360155290531004306258441803255047130299823713847693756416444755310511464205128433187393188740352252447298362712466373193053700746485883496769148397793783933656752250490429083062818742705214741659759454635603216848956730133670250252969093226795030831683977242081746851881828534565450817053668637618903658930925472186714845449139576129619122405871638034664386449230440154494371508626982820649056839192410449018001491413478303977460612924164098731727879466744735626200086863527374637870441298644484152158817398285098279505725337562376456933602901871024914447309153052696490325210393652571907459360909014627669545878574563987019796428553963459496878428049082043074048568126853021596843801617688743154079797258804631430224939562613911956641493565261073791748475057863428283023611475467655627227252664074121335861607716520739729386099023935816110677668985332052755337611307542883631321430380491840268670508871539049217398846257958113910488881445538661777022493894812969362209558646557560934342403524870570744796947699835934514701846024637876018829697116431880665376483107886653573743133197206927074680286908749603539001804301356571008775840125340395678250906790899451103736489537345772558496639640666414171300581028041301782458456342475273090864170814512310451600098632912146807934484244669570953957583691386018431676560336959658161126882990978536561205338544481948938619816392696518663473556598225026537166160056834400214686658553561982207762633256858722293182165406246627783244320423926282515826123188455955761292265178202815031150082879730973623378038417744946363851131599681118995694659692246033134525615467412310319425498288926569199315982545655938711762887154593803954334522011964051683954869675658597072138356945143065602337518387992310671205817958855674748966899095993577006045019685394460325926318096586353595164099388214958767032829933152969917487955590374697537910975299891468295705524626174676736579771580536940488132515782152851016481531492164661218728233770034889658843109115895427030378574496525560286133669185593836337815691539996847249729578077620413526104182741933888907240087949442011777933206448032164845265224618879257659488754019004406865664822009878763239853709352921424755059629518514172805229428646130564262268542928587981444898767048229641333781495231163518574329937064663870767503642831467993709584761608412132556400978361516423660016018825205655072160208111577375150882183796413256898240995651243446367215252785099250830837870483827362913048068913772202836963139770132472349362015374699340360143961722099687197737746053054559308923811905900855717250207618629884619905400362266845770022276789985748967972711350661928824937377926224577770270303108140374002942226931112572110568917984746437678653916493324086864325440630121500414506745010782087646569461761897204055080108485852472000497346899767728041129313809462848510661494003138372055982007003791129525398143156318344882657996243452112425221958509328965967024323152212360642841952054621642044168514554264064940648006205954167928864829373956240050834154496876706090883081803938320195287305236596718069680133527173843993403681103613052522796547260855005852379869124665146388527105018527094380578032232902080166444122338622592187092058826305164819667720631290485394461784909275351671821721328687291312579010200135479548867646515682781265971971977516043192990781245548331049243896623039527792870484136727408671477908249341556721724317681691698957501157183900199894280281803278714465038790364137251433839928647126055569406104090875476724334649729887519227109711538033525799028475946778431870565168630149094027089615411153469376065609328871070095024253727324054599279453218061839478715217416653575355163103997502009357943596402644183945239227791065894876697759542276020672342186999217869691184083245578201746128541981166755013870633582375836336663283592008826245845764511831354295817220228004686433300667814764357500260340501742529076269164039797532393442165181290433400241069619217513880627279037224953464962205848107262278611115450957935068455204477728952803443406001270184201819667331364684613169786965010186958277689933492753472123189197360818692934279231913714685897672898863061505030581913147063335327181283945761665398172644232805532058685342165896576522792145304372190033815182357584624597015886369776675220292573226967499160299236416336922696296196707336111446889150843024714618839013386577273023202293071079557064880457810714197605712426173097996669330637530431296503214808038703542782456255865850547196872257259096125195126819591207062151807855486407984420534280189605764322585492167646080306700295086785925504885468888026776253504736956238636198493240078310231558910126189483189854611403294079373791333769539587272488995843728197546663078257481794390032805311707492198684748558587488031774919747650277812723568454100669799333187693527034439002399932635058517171249721824439702418537116614135823921676801115209273066493272821683813112864978007687033281058670701201090074927018539851309901942948625070526590485294970033583999923932328416669967347054869003305744232474384571086337363345985635346839068052464204032425947622466779981002852029955131144099652000794490111550805348485120945780542098653874028320436941352675813109830452238637791100831532476604700384059997590119167342545171001525868993090595478210915722299549844413659134031907088097368109388819844522929361165166446913237032183444801982285021665873086162130018774096886943018766721723823545399825615372213211435109359043296446969419006165065990816454151637226050154602914078629834851130974708538438034021579724928692274879350822277215599789618878477434417741763709661512028516103151382341187431919041416653457672001354244420899456420505020475400794093451383305675028097167471960404579247712913853508644438022236588004394031263801963450811716885013073990428787933808840797141661745922814217907379575833810114143454882767750699343093546338447004825742321126116768064146783369372614405763668422822217964674079032522138861047280231493268617014175788460416681993715285426994030972924560680698655516329732152752905049879077499791673426728440767683492396568522773101037930960637739243541595743892222042637207396028111099734806832715625502119117975007831668356040618641814373151491069554725794532463987163567851764717849071084197115882900524792489921517395348243415488629287778326658010322681281318339683737210831316925361774996891533500848818700047228078972024802120637911213754493851450455584939886650597387826045272077338600566715950386210236213301791613941879837850363525215426378295823517164699086838248811741728588687400305521818148423730384122705855958319986839527933712040246873250488219066836409074555125244471342017850949505752343809002051973257730418441947337543751503872367291167968793929888070549239749185831554729686290935073123801063210601046850044181272440816829476640943692267714699028636831188002798370299313321900379540164906698098282697868106370757023671250532267724384740286214682490805745607039189649088747701873241397504308544174653848762145672564389776784935196153054334960458866509095419286484913944135391927200070897436406908335431624964675060794802494857803430935142538681809815205665867324217644619890880434394611428149388092020734249365534380604739163682129160274154680989289142117816355634270016498844425895238697290794924922026839872829688187382008114353895614514409107066197461035302408442495327066415199332284025253043203580994360954311829279151191006399731062661907030140914446560378615209623566823808960621623357609925041741759847567271832143017251060847642316875021022644693889793945002215518333056263636391567174914510471204608321253905614235036951033197020637051198914645347100758504702075888342181305988738629050151364612537252792573536330248736253719620243080599180201889602591765868075074036386166668494066171724246328217143705448154503624843322434045191692177797009341757520469919669542665539114799372188720788294061538339948738252697833659633140421286224269425523632033782915046247047704207912686326282540620802425425912483820362725857733888493516628145288124795645112128918800005854913632326864223502325355356877440757655909190576279514974712536237025065716431024102203558601936225056048054499351833786834056916447345231580895326383081051294479466154605604035975446291203305879038072935683941564363500902270852166962242308007693344678620977049344153385833407537224734405787487364827410468439141106928555151181653895555704524317368315587591458726717406149344664723529445225611278911015590912620707763198976253447815542078731221014211300350786072782753828741455026406683165212679770080428891349204163274969293159397695649618471415287973291071136245349405612784519763381754304161610189991726392849000276298883667223113269736909161229421162140620671797171473562555511795313175353258917994664543897041157710378391675432625756263006952622358524852550847182358868797215334606065263520439716308948335174631611478821157817025987293763169804691511548834792798911315590237761169314721539093134999663288600247727334275888003861685052552618592364214221427631005843025491822697899427281995566220014148631593628659905026229852912364541899960006776908793821167971348447965676661016020416253460007786466874834333066593341154978726364732705183610909835190487098894671114025613653276069389025025051688596879101372539882730320177651982972135339362124335568193684165950900890600600542262846528939616055833948206813065202025018124365223130566284016581266710443655924828614425452344754849387991723143736751262069548736728254982916805367250343849618139800015530466416847020041174201930106833413277858317900783545579819403836146626665080936553301897029622554425104813113753275499964987047573255136778836919233107186098875985354995679870386718876472312853055237900993400433898430762539183761631407546946529287717113027011260314091793401907084647075960422222475855998508279690933704471155645865401487073187474198151943321565628345523351253510711005401744125838522687351619255429836878346205617553188624369629038221946951543464877725998126799934672977581002216599443177713548228562034400886517644401854947808445771504302707944390045934773713127839178616550548136582193335954769338361870573032144013758941411473785724813798700761887760688182228332398979690175347399317380446198320899928544225402310422296103632728917770142537495285859399482410674701465980288504556131416445281224891791898859060182105647195482485238575724813992899683618750493828947577415851782128212314482620116192146849949877210716578416718684108978264484347645882960116894077909890727723697013070861582178469517238562556083694728970794333742272452802032035141169139559724904417443128039227572110840279052769139726382574430541864194941879726964228348781868720427497707968842567271015545252843540261555732736296544171276937279481183966772059496121147148351591246550039973151274342929200197940019817523655756143651895817743544322064171592557006745230899459064125197377220029207367869068239338874876497836461939197283828655358418065148822417571415210810868932299715357002801617001446906962700614841045581976165526120019580333519713350417862036268646842298043150852652145665345705269771977529534641837192018259204179279614064452961510558578063719543097024317224959956563386509590590668418635254329158068007731128353863051653014309748728504892331048030515891956045468298689650540434429234286183976179147155765554918611185619860758844308817026154313732269513075700036518343975454487549974321523628153755457661451663307226787178441612184147008142402838852996222933632696887008145477494390990519976040507434361855604801855875610996872089473731843334701706223345934260061762025789134257137715652670242800008268687012290908128134435499303558768389877782469245668679365174987456331711034954362074577765367936515361261106232966508128053122030702733289212553548506949217335309029794489963527790913989517340178615890923447719694219944511965495224981474231641958539165288496978918123401395145208153337678081526834426931514042237556721113360033794378626604617533519787784130259164585587582378476447833438780522077377917016778775380524963140423075310825165965568528721007271059038049345946699431624681807034044019295534034141233432689754958123207068573950195370196791650505531190869355161908432733649031882274176468511187474555405013382878227094217948082910120834380419456521548047824253360917325629809955434045684222028289494113472696391689605251886020371523582067122515475249105811956523944985566877433980757958518753967602075797813522821077377536718497898112320722023580279751289835585030168897477266006331056018061392090599655510963519157295812361984754123050504339352442011308774739065708393343592731527511095738369413516521670974705108558388566030695600743710347139238068930386223282932915522196545135881003402693861187129168428385440411039506971522242811344634239259534836886267877785047945739831722802923555814502278681947025239685124646326526358296300885542090993045023551215537730354163418669257721572665035791936933102604349787355830361213154057898923369919093596706167084665831628283792975723991259500870416785673260729078599548360654398868715884890004637249838236616924336779075497771207403107040859968506099475625954493847098832483600284107026386048965669419661633905327863368743251529113795186425967088054833786643538486456450431874549787059050799890039368351720595265608176442727699106274262450608983093686391669269393069488144138571158173491566913645313242798989380185107766149858819024403784656848002637646110571727679320738889011144275956090745487651615584729330604093786403608124333449688288932557309121884206449503599488039552378475519744494783946438021772293145185356612513142575116211768854007879592442186600226284207186754694686501809484727456732156814624949264638245116518586042755786297554580364084291183754092522751150261468958629732897772016721424916009631082874152338814875253347261383899269296045831453082441189606948002762806435381315866594423387070285766514087539585936608440853106847788007139840921487779479610554177237557079449390764634342938787146380069311556026708594304992911224086850104401224322207876515598218846085019729365020488473756364779531533601373286710271557783315259632969620016595807825329454664220856629949942054748047768192633871029296712013249187265381868604630694692302988905696965502667189219404284287692537061178866120583742810276129146097742050476529973277568500880659155296621978935881701240223189956362101639329930247090599262618555947336721450314323496636407179384340412902200222699676365745600907801348718028938065651202548439935390840350588857513443650619715571047430764641344505188602614458326090758570184512280450524255038243949920464714252607176921475380289631296035051307002686962431738276771597736573771718584515152611377706935112621145361708539491175114398220572488832126476304281624885167699615032347020186716197864041383418790596060485481941700967971259468465991110014901157375736156212077053793148596885954601231749866308351470915892685563665389088735704073859003169171694354068548392569433328585823673518354107410416737660434552317985213697221265915892583595046383590952807858358482372727108117485533506903054075340548554553727117144607458249486447899581496614041638344291487874383314391654048694595440631725197524130314235263413188244705849292363654392078872678234161460752321937564780185479967793190025219967829167241014328138527683160121901751283603026130668065930651338484840450458091491848649882056802857815792738180486450385962302780674518299925474840137755751719024931370290348244999924455450584485526048180832875327371112562706175768656397524040841326966576679123208781494825984561213500974849442680085486286179536498974758758386620261368363140308019625877303281412590849530967567238451009424458381129410947197198115489668049445858524236268691370024886542523648661810968642562755978115283444829105054724333725847089592876031183435999805839112282386633258607546849266819627307524388277482917091653156278498145071457238983834082516187345837941660503447854001048358346271471899623365838386706218141529904148754829438553870740715753989642996066107374417418967755319690910073060463861824041398303686129619577311797733594066510037410273671414307290025290056264308637127299287632665780186190233041037463193286984614455508284784916200132769815637119259990519444923814431542433283330815895003130357318138581567446121723381159626574831311040772147100431988094852983889877282239898305856307870820765568201260233064276993506886211783162649501480029568969093641378072799448466834502837164582149305963418416129290420301229442248813605739527475271143426023308636560879738923298399763886647226204152147931823558247933687568812555031927481389652312429325540759064159568760548448379224102756926584197308536278996842944014419583174220029532764992952448891803521629256711728307136522240669404607449708986549498026845013513806173133491735845983570762195083645872674312719883738451930060127007580534329298360907510795604628447365015255504811452579154476465975109306314751075631354152290370375520847793840182089514739716799711687056296427459156826095601337488491887027909898898700295489664736450394010520354967383392368924863412591752815122528921759549505176770153649897038442283802170590091742036414303633240849791646976783226278082237752897131216048179693886891023901939826307625762293202480438433751544622434339104595392910384619832743484413477155235676996746951887148716853870376153205620315901708379003296765274744527282243686962818208285259329912643503576806948250242044872408395412967402098543584681908121677612595501123675909863353475684390852611437524966137654477704765782728497007479259324540379891023393134784633109060727156609400058055584287506159593697322815853988541614383538975229351500482947598699880793943967708414272509645645494649920732887327905553499487429551375980038964582647524632022687013174047386165344922964943705095739215730000639523469537694055546358766224944991210568650130368879035729000473454937461764427833270365457929710873444063284886025918994482436250506211975168208381101926227574604947736015900205254027913711729383210190634752369054256437082601194157915131195796641824515730284248705468132423907074297785292538440032891319884152073506945931614990584729624961297843379764383326131966064007736518440197754227804042823066836589265796760830869757401352758699432187392913444188400818577565208659817528457848732647339267309746202667560744080718970435394901126709594533027892011037430518160285025791523853907411187141603082944584670805056272406535828281929150868513820306528985512552994789709544101761374216371147527107750723992698407131214503935452679604194142313324072406450894524108271480559600812768751568345468058834011703253869085117843439441917834835742500998596745982196993908705434942637023693495792875791135244210094463443635682457982790480999991307324662971083836113338650075934454949573094519423322107007797304221376839320013379598714530982466269592645011359563115442823446600657702818233152402848621437462477941208801067286113353022682618506496685784116704486887023406966645743160353565448219230164561891316286943459938549888790643520574510400145550683890445242942875642179443985814728765725456320360329386338642337444065555533965798105454652386913776552871094695817298904412170279355794169153680797100205141235657754349031091436839582915905105198970205505967071568976210380291950860682236670542867576410923300296285916079846654699512952919721672171129522132887382720421129249553911554437442238530660320244320064919971649470233205755214906564630360748074077225097165489944859901876748054411210190057171159603801918730638153029481453179775441221665305740920085226919667834661959375208379795198613657878683905550984569946942414238864302751711684416595243073363758402319305773550410124561658811273703259949091462503351756450816081439191185503227725890566201709651844453194767465205289984340405678686805482975786687049308469503534846864330126360989749776392595687089347875695343984899515871782463926735338598699421903647419806082189224674196411947323726739683164304080593289396749826910041484787153547163228444238155563648044465428427365504644221884750301968104138694558902119451431546099676510647844744761564600872429750216820335015901765152041051728550905339477327507015747938688372468785441262356984036140391267911998565614867653856620952639173347485357303688258854796017468830957070471033428134046218126793703695662274393341381820226831209897961880493481715006806135583350964335983633364379879032750440843217995308487601743218832113555060726395974803387524438943936936846633311360588937128915178361650917499130836848048789227342513479685676036492937032501783391553872804208212832398905656942892709425744651890161929326698171926599920750297188397478464032253275285703487643723087628918942510737185188207221587124474299767128199636465473743887739470629216421547731081859822659265397310170939845815264685139688652412770635854881025646910649846086224710301782432850757879815341579532056016527501280589376606203943394211291872176363721970810042387201266540174071258363556799292619019065575741575553042397541037619425566829252106413957985836186813342274104306570794850367078920863784086751489128505104956772151082818796119472315348769116988300157355318882591876571276997774631764275768001408827165756812411306627897002437928723306950653298425187909824784831443405463785570109287605528690786855260754030661544057400894999574086421280425432679717600615165327273169613218249164262299303731099354433457991627608045399691646630716770748491608379015986377386471941986045429241349784545014255154319664083619224044795784687278945219131619590002422301948859477838198092849498998341459034872389889861078372301318857385956661372292537158803152969681193246828059804999719111109117563808318102985664507783212369878391086099755262350630426455590399636745393239053862360996639465129855070764064646249275696461974073678678004470105461411350159318418821609282723253613047129673796968659896798577307540901160175790673239856798357656195600413068475921976596643189717292770510727738686056207807691845051730878201033208103440363333641789533957130442679954637627700633671205449876208799288718616542745936810416899094524161931195085938623244065676065022144181155345986108016123470860488943301489236975427606623184401266321294744161235521750095867172341066289662172719889756903270930866074718507034792726010912950586516086427594887389147440969499430948682094703683727996711278273212436858874671168654100336833106687501344679996673526500454972411504235843179392815585422970930220835620842024878879905427740985150616190463722853755638962625133135950620240502722966004135032449446419850922288081547698183573780203350734890410452041399399486284316315258009467746307296373821795148645192944576311439029171308214805785993482418481968615339701711015857049055001692630919844580630164255840277569022087217481809344591396357161904158952562917191277268288232386978881564301423317764048096900506214828817395744928499630687016366459730602167458179665365359983849610456285067356177975807010128272135588681955627559427736057272172359748765199905675472285403315659513566745141610944085550246500946580052727994323691005556464911837418575550250111644062422457704012614318851413539757651986960556645156246514485255234823155431216772814256289229375752200946535868355440484156871279253565563577581168675223729415410631318369374051174077192835677037840419597018136288661281499332514670053487650453396509689262443496351370986091410246990199056253734457357691156612725094210299272601998248241951259918574744355738872283992700425985542658201680175789155923060495083342353335863471439979296568116041315208926907171522025284183188809181327869829942611546517704841113434786411070511299800438948142831587765621879522279482192377587364021574536190172267212883579432189871110393713624973566707326020248065457126062030369858262529251362462282173843878250850267592575619794504468281056775185400923664496390770736679587422825090359462169615974007135514375055526500745990459147749255805151023187285084832868337736330354672994497452251297935740420336260139150921318181103611940324743047870626985028512403848229685822643734406283856178720097387437871269392240964889673260176918717243399585342280059704311079125811436467043629718242421333425991492290599982271886792289757382826376847976806889527449933289141032819958020393303866974897633913365837399904701737126153734266491256597038703965364116135173172615606557669572778053283685486920439400889283628722438474872547918304876114239359501447344190457780646695219464009438339096905513555345708160917589018742166201256107268007652189903307734372544958344199177052280001586368119541711916645715765148722629650197666615937124707576550954736544736299913143338018584437565108084200784695439363820790377375163404545155438906155520692575908639348812888625532940327315584073713541433347718940522898010024516123889892968790112453321457649324146203056271148141604319105801874219724006125653345098000074314295800319805468438988915563224212489413357023524320916306913367902689380734658174931060410891833241940381556280691850083957785457030291467511700925581879182224009094000577620637069933373420350922690880446965476328732537250597962775059896984533296658047407870349097175863890728085180219277402188889998957630668899519815975638239892573722544105920325054967698902355981563063865593181372917667314709341882143376919761552903663236857984354902350012207900929341609711932601495147839114921477781482046728160165537963790275066322653361226304854287998378549794467250035952247453485019476241405275476015837908632778975432388147280838298146075638743558727245555733459232153463632019516991889607262457126655391489528689913581805723899988300070502940220526763219993202125382490357415175330303471825289279095264477997151809405151626266931313579423287483900180226054490353012016424084542826696602434748548343770177122316823788646221734924701723029610052701623987085961483115788986416465146741490129025910009024354145058938084218600233123175770957866491751041474598370629315627333452969389146975271882869535940178005822137797704528422371313438956760830262931593730869546425432279976509490130671154074308010442966576738804385069913215479644307221204477990902802789895000267344347183734262296236573496722790348983929518180518939771594284333673350480308132562747023972117342236935134075799016268233176037658647069294799626701652917027541574497134657391471497380672322204353366108248397127161528145074263826174308688558411989719653000766104157665020128955469792476555329518828554569503095136596318438280119982602799603187193889553812758238967365347678529580518505931586291060850549348205293769673743850189085026473615990624418508740638791377111390152313059145643272820423658879932007831309578880086311789446929125599867151048164898028564388631994951255122941563682646156673560344115480663092607260446131066920176947592550537628290830128786735556381549973295756870355282242706122910825928560754518366361512907072124147140184875850762926620551379075640325605823783615643646827224414369957334979535852407906776517624161571131469590585484995419314320645430035339314505266022655015382812693504441712811438050206323786843120206168685010799559795160583016767692166445027445099088391774392407064581620209595357722889596565730999753493201011430417702214248663626307399011680055199159188019735498151380524663010609240511079806289485882733229164662524281372829813617011839763718241214796802077912847404168928241318216194138549968631353616098768939266023548521872402581977194712415082940545491114263847634920030634804122227335837595612730311175988239055746659644515524246219875801627695827021366544306382747901438694206386100165452601778647728466258120946391339613245582004390191182917448598910763540146709274479906471982571475440644602117031421639266758287341585711313990898903340824958694526531841294668461918930208409993519003183750293458320715004122350302817067634222684884685188400323148840294141602389040111059770513749432605738632660350058839404726450903034734462152050944470476656561100348578999865143978653439738907362201684900873007456675137002567191676203564660717190926480389825978725180216899913397516345031658561588312254677402148751498128960911324356968090399223610832350750114402704454219947327881994818151903654627788990352635459583611488295132551379759068492476706262753570432079248672816049985446581410498922340840882701804901278649893388995811117452640799522385375773627263099147953956046321149894978946157107014548126715611612614739380031531667565729166769043567286279908566422627280053420423109885833513822320836480392636139681430951136628637097575215052205081300522418934205388395074118677559459458618191729112708709955655012083515578046655946854056564049596661515371406974969269388269072181562727804055930535116532521807537274465773784387186070519904327759932901805222559896992255584833797646227694476114301266608070861301453289584987044866081257306369955294286072051158060508755240917058174495323547192966735263928936959567652500460050273154587974785526681475666281050201230321774771893028043006622177136265469489741640768673573729097762531607038942462716240435471366033045999979183540346861781095951373088491701345788403405353368078582240034334959167378212508480652257295236291962766626878670583055722169328961181303832779296355011884691408199984587053786908095280917163977800770425471230415937858984600712443522753955541336016222591661364398447229952148324878615692746490964767308134784940575999603649038902818676009702163522303549204540823267054898488144589803498472085121049083914631780438946592869390915344582144687312494348406185367634766344243531204098081500122508076728580507800566307981805437025216017869630974103375116246062630492561724742640308615921258520242516584741991998020405005175614049015914760977206912620143743258918097901823723359119500091530610087524178804089617401060215354103574021691671429238915895525232396658040553144400688699808051047146742776410497973008665445951947465189005393044498921984300935414253496214106471105568931689931142159316059679741760611933748602324950448718581624051150893783256470897573115237730627111085275438731640780738269650240469333287214880833095698847228524948511700227590552178798751227204159505795831570846569742851788979716686755824051658058828972307826160162346176509207958679170938860898422142410457709026547020900511055083534914753950158877887980441490304141952814806856816704558813449963346467907095948412214969656013910380482062235000981458202248360748647700000323695887975605532065941390570502813491094034603181445058992241423466914450782727831296271866234548716719580563621048210290985814186674285108202489156273937507634677548272542631429928580197280492007955498355988465449299132256893410328042195175978051343752277884128438018511659195569455587573764730922238778965647593405084996852046630539257611154974478897269351360465632464544673904536334933190119599802888951131722394764400667134215079562443460804489504698279352620689475757222023439020316867770132150179858549147193165254511848793511257477017286921629535892881046574906333722362123555456942861792933482461984675238225278554848831388764852275194673799754476077379827544504790556493044599378355141630832542262583525922750564485080856124472595572488966673208851949253331469770832105092186574910828954224294911079196293100926608440101731511475435520954460692782531664337205354301000654550591831756584474483427403999613938251244102308929916193753046450084510590351585915504603341253558230699633195960392189781878154590084447557947561157169439631487364115443732305803945594024298054034378343399458338907234748791503672844791063929867698219524209780066107101469625072168736539421317494414886367575491248058771773737067157302587375950774991741267203975566157072099922604580335744261858604997075220111815352654656404770508174063232689326298383890679812419133797549493527903652159926991367695557897832396797997460385645417624675096969992817054912293121344950002007678773349797672751481653278594787187187813630723471890709580972055238808441867161616523176018334108119036575986991099316515405477291970928154466906494188160677945402786619090494653398988317273442819077700621242287827570917446728478384130188773829124489536152583920744911025644566431754890599597404000415647717759009060676777349521954937761993841415938872807252474272459726279432618462137363371127879734472653580131838546976148424550293708166994206410074778239117851665329877087668206385151423016396659170525341710382803424500553812843730089989853180794495878380395348633543563090519891813183905182880945946692238370484479083178932684754294332726644242173414933515910798132074540696093732987856958633502107401109433725976773237612384196759440305020150400186528350023259116719367985821342186683670949926307462292562375422739731373088673417240229483314356953375476381411247430980728479434661433652860092240954771366609709675628239498047811665033477468789289427468588694739373341863745981993118712776895081297305266551143705467542627951150718901105560142800713735247816287784813487729871962589430984795005049892730759377061411039733134754053147916775839152814537643926962222538455286655266054078324152759166011118926092091479093240971995506586939431799369558738193677119770958078507103433252444646942691355205232947218732279178254660370359582566657451613931900093158183900863521433354625679383029574864657545468016248058925926296649847407850603380701245462571661936973530045625719688180234899046557347135797542709510959351156388522735864443487235558282774237248273779530359835032371518084452298673380500564589708300410345710946914307607569720062012244665521787820484516106768200094826419485015061244983700013507674237019951018893041164560419554934287132457491633353573437842372056803085691494416598313388525830466908984627791961353440457613935187891199534686618499780204361350244206253002223090366905507943244182458016633969879901842866400457497697238741344959831942174489612255007251063265180165152724389273281812263214654888485160716344181248245610105316442399027163224966265718589494091414900033772663278965991891284306159720242513685682694289308736725343370115167815662756108462961684579161125528486781978097742235389665211942411312129123040309659902895592312743868059998677932679296852234399720291388366546425851120866138000956407776818515063182051899657450562150976689943153145573816458216588463027664750591579386034930203523530202032997371923536157983609530393937216377925930486364739856206413685977299078124831093298523702538617359831187812494575769596514793658205646261674820677666582482824337260118127842490067282333256569718932880850828552860497676167215994592699335785345663748125714407071068801951439693640425273832068744572273724435551932348794943666291247370183003862645593460137464121159715401857294679834413794824865852887141293747758403174827962347302580526824307737161175321697050818460096360230081004009195639720169564448971617288585558313369699356556292069217855116948991124581913516993643377899424037571909004934252839460791765011298370718175425305522812670184701675169209403221285677261366418185670995018871350865167361743076238839479837759858826130626385334346569439380190169083417074150452167607674200658046931220392535908862082702191864275326679984750669950476467513275217733020455761839056131062121013315611761555851518065879102787820055785885192327571652961097755649812408657532125082362073580520391070055001376332231900872166546326708226396644918424934267474651837698724613953350231380706599297917570981609886182831762178602749523995952115915047330103923140222485586738415169906412341775734329937407388123920640991768542487775273732892561377860056135185498931843170197027579331299331523305887312459193952923973102710681648293807467248682390645833875970708740055985924416640360587269670923047689121471957023315247779636197075763081812702460578838505757619036513048797303796747663882495608982660574903121904400888189757801324795536427861095380749039595721781808871464880859647681418576409860923837123200607470088467755255608655784178499480554418005157518911857177404309571217035165186411990277669268751958953438390775643988782735984535942886309473981033236034772650385544926473302021320308126840908147685354434141557492601750929165844864708010992000427055782575695561210480185513642946397953363306030373296351436182910856676138956513814344749027055529924013376410630669946263677829430338199877475679082924938654954357535494331265171680269899236570459169286417908484412466367625086427889827205059916408396775603661245175398948546208261751973532864897616445853155572135969088678158130759107376622390645860134992128200231267946630408707756887404168561459453873967999245394793275229394242854939036773457138383152139454985504721937447322809235880138921021662438131027495681574408779477352284143245596019393974088869682935232263312429821367297860896274566260957077056166822886166169062616761086915008785138978690067976625272767705034636092934721580582068335584476048189854374913308501009065734309919787069446622648290635786769232748237883294273436071096587000661488103833105826639264011924406731687436115814593409636002660554346481175923713957682276225795632635582638178178700122576586704482821605940268898096579112031928439173443065340053856528716330997214099970943781814399794173178604321945961589464453616315154224772627888107437037933023617046623493942539204963277064649132437497229022990011951392527752331846551632712940359369111670338877379995993262420129964989454014259022781445427365059998363515075907194568354791643411021871280071109923450385370971486585262996033147149268164892045966697393225723870479673777202367788347705573105307387980437028626084702196478558658741971494620333949065868630901736448135649208433584397618945609859500024930599375559632631147130069485482414978708460723533191345419118843489933897559822090516109080194646449488678576749937964029530552651149739715079454831443274092139398609037831579989786979642595109000637330463726779508892837725254320939572513557409963915393237889347304646618521645679778801726599501755076570981850798901191080468906045210067785251002230121139554911050947131750071590362328101879038669965714350257453284865324664373649673905627920745474000490917124975222291328348717277165680806980812914353058375163942065547015487454530133251703625531030314611833105453903281385694771565988592302276515804995638212159534942493579369865199883352964665129565332450638010739355533016240333988414292697435672925988815938621512382824903365875676417421546157242840405525255616891714298494384929449687450129085112853618715251353210238555097451720424033931176375848753928697563022575740957016939354774060001190098451432047684160237926583425514400212875735530899974351377578085211062433427361611809511191651513534327001036613263627614862011899668807931316211964913014029257622297357397390124769192456911751405631870073228049554984453336856939997521295952369558715596940243136906182182675134589261117165694489217919789180981317150916101457899195687173895635142948172594055723599337957573921037653998464125634790186253263645004762406220451962211170582385103049427284591639846989900507033883129069978851477372103781595163086439280072414312442601571300560007661942367068660203633846619296630130304938046751715901089850628954478316419507235983915804268226373936618546616285232944348414035230720266859218739456137761963108726898902759143283504434601292690353629612797429691851364607549087458541842656614835929145812216029920263633062317168143890016032729775409640245360753962298023224058666612212447198923589050596083510348755178466519399264586591680980239248894606110406656366799781156099486926046704447318250126297586197066959114769403910976787422436730438749002044580873029055552039256637610328125046996923692186731853835581703613228052426377181383263433498665501684117113904855173571139094999147959100699527913299854482016131848799885058920509528296072363229273737630592126161823403756448025181373601400371865260533351589831119331098755812862339022027590151304925301214261601380001354776328081969277144477203186179907676611762822381779052703998078244842460572564900250603296129593975728444427066504800718630576554096633513538212973325563360439097181894204699733384688786710363875921619845036190254743509769023851106052739963883174502188345450580005834401459919469248829052833109063740786214789432988513556274517586989720715859476484372340630980955643915340645401414480349016172877221325534967416074696857647299256327263371205636920517291875361557729566504074395242775461126733713780002658730669479869145152692033136936120808131259986656639559786598011170907848839792588822641180806723863736593783807133916094262534037106670773458951592689384792856566123468622667212900814229519604298835605845939174907744699926433181083359779543468522240672309566249183830170847026549720456803541257170245542531353905226198300654681715670227579114197308934042408652814646742658775750393242340518266286351358436566663138535095549714698255925327041211736925118745147010397593188977161242946260207267333275057423113722399256929900223080252245325899326846158948248609856482300093387778080851886297391640442444887851064708558493820403377108863794153863747099442079728505273141676466801906303140747330079860144085215490038858681907724851090893223866829107055054816429707145934380243091909687087508467390823316100363738219256612426388905913870708737578054925637367744354143780832510494926075982733956005917359578728691421110159673404174754972066423007026981997321673189094236263501510499690664352533770003427265079015103223877127893600724104759676131477843783103426427114149807460000700735963776508901369423884450399552034003592050148015022614782213528355023117898586711116377584015282260302792374298744330623300184141262162471344032917993400983098982818737509433399623288491174319582694716439994474405198740162057391731217961048676370980284342458043044497159593485723194307249360855827410526714409417584645785297199258408806772973701137021748197527855819099618135636611113338384428171732960925631994380452187833564968943780346603370435771761996816810898604552742189948263768114969643547319565498745858693721026840824520903282320084513082178953102714426951183696445892348066999372135945147507050570986153452100395504007910326313349883508368482298769947626994396533384463632377795112132582705253819965226292147594400099723010050505832434595641077598459466283804231102579168082374528279522402666941925669441132292637450986121422768711050099019073594003392606577897722507812698565578034137969227219372860724387785756034793148515837211779784983373194092317062299710703021339161382308337369934561728777160466056714299233381348251535522205361373759448336766267788242923130141333167368594836918390513572213987237319039574543302564488165155355553674449705532822266078663319718670242335273637155821434353680998304691094045724945796402126682941076618440120004068107623515453511642407180013247794998090041853736805171661346206364828427366622876254943815991526253411973777186958833446085926000734818483158796337640596694549938494639353857595933688459613256902027793360447535166460917459706791304339615611910648662283959381514399731173741714893856633968590366636673600825746225215026351169969785650576151615403268689027924473386239928257716220152324095889295564533926542272369717919519090800152210668665557866949650176151639174695307407233001798121885345008121143653980842739529783197725405261392181340867312406168520249947073685783101439967488233995068429179435265482174453721538006395137202534947884841710380254652318840901725351847817378973576129137666098780168016035563787895461480077046223148256196331869010648571185955331425228497651774365331947526265990321158909764485495382469935122679711701210591530850206428544962486006755097016401834202846316756529951641209297272435887354365783052450076063150050326661422057665851527037295293348365831526744506530544704212800286346004745308834229053449360012021723093075296103570805015022508550789730745890082871533731292499618281082112787241362925240007452237336865879243772037449022866573866926934523830216291076163196403212105243416818282742413127469496998315953288438953066952295223486926449576646034598331827100884124194412055807019524159862496301865607966274339252053707376948781991106042703266671502280665838792606509782391776997045447808944083302901457878414264970831644193449902115818919558597767246295473399769545809371113595828370930131928915921109953074950158723904647753920303925536062932923150946785423248109714753751507859648384939185848744108076097952890537578269900050295631587672158363139988394658217137535057107943622211522452801941993060338143483725881891800311871494028374294350847402182758925833967834161121627543525069950621808821743356979496643094819703413754987341226621634467576453673250445017382468493776051062035969042839198061936466141019784126473618910909737036805330380611853232741079233652852631168808253968137959890991329064260456682600763189583027091302904045278837458620529896071273492366327045025756331189355646132974811534727894547035442520627290692100499003232786731493033560799287066522873552089270275262211343221890956573350865462020465058617762323008941065644675354799552432864686363748065940947818631106625836625420204914725251973350215629047242962783428120711947263328149738844987190812960134822732294232587328334532952909999714753102093900836556316133677957339563480250837309939292361374852613452130420076240718602821092311108971191730123391590045698726365960739630709546163861515614566748544921465805675347429271788486818134452925928438205646776260621746113823321065058766893212710683402727409383419207105956035594427543180021736489776400329075889086452151334074771876315477154006240444781991955541989975001196689043347931603816855717137145618453903703619826367727684017979684197696302263936469504686205645377263780459647035237929892441806333779602308041067563195393072547180034539869312601873463359895212853890122530442431990494257906775163341077243628319449353404464060537180754550428940900714834642619240219768403407045631505832141866492645017604655277233945309026123852255909125983694406652684207540854272944251549081273735820706220890873592462624069450719594554295506192272378257109507466936826664021022775018442407653753234541345140089750715558422383122433274524074728337531967973945360845239869734781531201834804868901429324318297240763762754723945608879992124248570805160997786137940766080351259302276133639384641226237413353098243186369599366793216381261623106158069445443811975446376022462620041943899279207101122188741862457788785166622596292523331382942929340226900731317678773468106945294059251172355420562539930466423941412841118859694540614743155059283412466428914246915468056590905543194896145480012981835411404824113402428897699381672272563270231585391768377056935447872247169064039841086395122901901868723986754090447831148817644080365743451888597087314681767477252270800801005969903792471989681094775297675591292411718247313041384679474264399602716978844054184093538144174975678422357428033900297697566540017000217604008919378580920942714007556130450153219206686320776414947821698678972690141761894481407977618522632216367529722257185083849683433372111454470649790570750546724392109547255716471232695488125468989316304332542762666003082998994251411728590254600863278687424678514180997569116385396378010740336674851873364488191783708421847075236968991511294887605265627418239365356415391207952392576644993670757914690389975391430652580659019971830912541415773929397849914312164419010761501412551618625362054859012975841194943959594730698906095850404100645070484765795860994575618644219424291440811016946951807503270045645691456069419741136878874643342000785941172689031372059483435221299281295395812613898430356726037751243207304204668839301051617312293843748856860754222423851588872523379137635355112662535090710858208151656068539137596025812846588410055725232469425193516431882652850040730179112474405605498402793347827709518627090314704227705229315076411245050981754457827479771817109301337460534191215407738446963630926325671853725386869271100989220802765329441873054094914974728052144914495803118263159934562520749509945080270440794089151234624773474384319189470936869400254326865526477749176232806518454647136746501697356921008473503654447268255265649794393370131046916330455685087932993803788892485827193091832093325670468524234753351793547166671552072312404449585398242612133224631079162344795548859117161928541449957461964337102850443902917390270758579626887737925395261393586394626226158180425153716829002421731935765579485291396527364259909126368910089306729330352107114775706227794283603338114533355325250607194854564332721019354724903517872918979777505692637333413738133889805828322868592390387016083620065591160885966085747853214757846029088801589938962745609772799395152390652143133232361299528623550581516312825641954647518027590782400511795904614158827129637897329031310877147598333289546291873538602445206284994250585024126720215791521230486225862010214028614121000927418185373551241462698601902785905762916556634994111008625741145188817427834871089073063014891151072322215809754776655734989405007532895731208381841241536179149994134415176370876188260082397742558913177721630313139970131428648694618178346035166035204898266330568875697179973193774261303790365490030814040850084769505987700565353484480168378978241713971938751136049572685876545121561832461976515890439166447456187237703850413271489737941530286621401609985989783847229808833682341274241515968756163603032145483519974434178634808879098418602623393833697619622782818125827431399757921307485337672110048350347185763790600285013821763685765224184874102763490712986038463285541449942271547624135207715727164053850962140810131630334832614209096900715000150306457967851374954680182339656572940564011294661374363367513303260553547990008318900834725369543916592520292725484920057649584209508102961830474970949712230741948510598119665847659239410076851464831056634277846575589381164159655883005546246193133256355253964911939361904201101585821097398867766960281879796074853447714778326381278737599356776360869329994583545290227294180013072551348883372987169003115812463531494202268760011611694384081437904058180958106781055269650045257839046536283944132204885105002640079168691479380605095028251757716247745470009261923426546585058308602407369264005782170994165598739099049374155339682645911708989722723191982801595594453775838770253496460322813031604268284778881256748159784010048383541181050952003182640687133634978814188443735180847081156212278584059771222842310137834192332468888055474336080500003320121818336488556191560358105082693035513386984314991388553386523321524150775662762326059782481132367161591213284202707777566094548917475030371647505316104038171566871226923171192565754602474581081210452865675106602020246668460698254848005277160312341214982323728968363544192914417322461493601798220232761302079923126479813276350083208599888945895216330777999239642058431189071734810865163562307866995714865239194537503826985789034255365511709886599672388766748937892187020117166933395360152140157438395679678782347871610973116995572632641457474098954017993976978969094597889247410513424487198973726703643898778951763738411939439147032084158411538281556048370549903512815069486178748310402707614567219764174995709630305827310700569463573501630660245143339782339165482209672832908562139654725235542031223069246540885818800195243988794284889094139331197606456104649705499924849387055410169740735314221259289255045982619388694140849084677000356933421202470084807478290936451541847688173918658286363027180129713752180354293894545263079493183948569343350759875759837362412942351207614475751813712328267214693577448746390108533125503172948986705371027054863614009746826876580089935971217769398899398680206665702344717014199606864641165096789500220656491328625484699190136568247589636849666480598796558452460799641145101759611817785778309045599497541203812579894418969863813972411178342607658628914088057797443904248378290727802216567352752803317117238238441488308483689097581454739640399579962755526534939394715170529949428039508691972716363866328954246532653688745338555580402747605143700066331810618142472262136104684749464219547548020298640239097437907454870967133284784454530590632364831605689675764577272204443990273083300164377345975846413673105084027871986312514695921890247036712206460660426241404962340517462924816393621514794087436325876571064059446445160218109227852942418552145300356695512608956418233134457617375232043753981272157953957068740466657209931593776995432610012171984522557008816089456221421141915818406699545576026747768794321112645914848244309877822527593540767978106612933779973599089128580707792015695448465394932020527022706735186595387946773875283552074137210150208130855594421888923587437048777080208134453763584895896599233645760680837416459640237996468982583536143027379237239653442954729313006350738224325024645783712776735361470094136819522035976146548909948340420655589386359429414356832202815672949588489339035858642582645964023947031628224806731922994347171940535615378720557503510705295738225848685002087406723939255228689688022706234431356333454626438170030596646994517853356755018907771710690241693404019913368748243076821090176349799265592463848298404159748275209353224830888784745511590299998707738922536333639645513296695523719742749305204638494166471514393803019978072014738572944096947641066974108828297957442453232580606518828061413227291858606476258223095088795916715914824308042581713395330709776470215643046592147023682785002578168130438025567666210566564264964964244440642392909352803180600516789793891635541362304579499007917000707110905534790000884898449757389995168981704706077990029611887528808564280529731134284925302765777232787374087338597003802503300522011538122697209020145554803450715679858824404153363133744383210305875343874532588353011943752746904832330130885084050155548042817302084683208325679079741718256226387764635203966738184602150999672006719969205516873635432336648931106881936036875379581223929024690444013254092370638111050195292984577892785298676142421383972522515517748322584954690138286143827959277797697408174606977268302010462754810058845451641299137859158550285402747714273016704025380821853522054499060490947673179628479871065610039944665241719603599160166770587007853993929144121582151565378850225179287476977302260864602811419199899868394612031011475392894926626568525686224128540213837044350917312307198101903145424960158658159524813082958149182844246401292679730845817592012088522147662264835631023795310316994878819312935645766404754321365355203831034780228870187275985512773503458519246230997205596322744852528786379758734314155220637740558689159280690358141841472979944024969604216897137925738640970239641882820074082368592732548141976036731822238236533348795316270849884097510623522505723698385775326107233289378017446310421826755257210131657775892043628689071629684467049726035882205552558438115029691722562972466118666449417806274460767639497604585932290343106435053570241995412804235053154227678692016822676079840342133675905866920307473124915600376981112972176262927134954745042579123837474780611471514988373024442283633154850886646887071194374191322394713138013609422416323312567141798158172824865890020179497249295683358193988396644561390061795799708413664049098042147720051222160825543269979185773954080263311797280392201622086437497949038759974189940074229541599806733518312350180173550373135166626351725040093690339971246103339652548832278865017847372013866267401473297551736732606184396687683192256385125665416436781755468529537607447415111005576037956534036994413246995174145742395671474338988112093023040660058067035828845899976714802682332708003211024843489833204324372192745215880550084399749998969973916244965232044036084654671808611807120772649606991428725721787472506695471119793002308786396765039270494075999496454097425570625995825925578755975990125472469859793905966721437146311218659164715619058811021680742057953549907744053245490172600877523979204751026033103430504419057661841901381294892569801048164544226504335203631920641490513694584337347503410308784247613772296164447635413926772322914355813442231228920697962975883854774598676324736410441133421167109913419084160695239743980461616123431955257075925538010958401330484378574475547105870320695241997819597130325345005180222807997331782612841267137704006682438608022569663809593863415954862255348199263450463721483532102855173159907102639686430374289282439341432687370776123962169052586006453504229723713510329808996794938466491902802357026039266511849218942140824473738559968354796737829635137874175313563796706085928818099546647750345468309476552190954923413033175636541831220331992183873064572134427531498517113115464905021018334384483176114023904815481334169954776556291756520967128465618173489466281158845251893776272389058095070120666241143765776415219463944506590380557799987649415556413038620449006468972016092403906466403050451467843252827358599166539811678533813817036364371253567383467079001121017639836077440712717289822985429672860459798655270515149710143604761399897697374877936932505012941029883581292451325526231538383766529503487332187552664210081549909617784272477141015171815410884865972426844097234674296953195030155196252920481864461454744837738410552369511662855558712538836141531608113274686478754680803578457972411436739373696501665902169228425227205272708036634563636379895583062917445870159039445908905212748270999774438029697635462317742530057334513495236495016117800196273252067647293775434574862432886453908977368209322754925154904139650890256893605279421657497660707037311092160465974291340369039605859559189649242851366427504263236199447256261889611967691422950695272302868322369779135289263719359846652165164347957487044992460812569777630328434784801172978996658116600043907494854660598477542605012728078633453075699856277087979227589198532506087721510950830596706635955134327057559784034702659073699847365722976422295032342375970640622027427960426872054772038288784578112170392502094514918841773357720736873234450011266060083941431499300283557627377208655254947551957218399025558583134365435544101515467527093062577608390806562023701143198693442551388986059429878503971667167672719593954990647877781738379272900127661224598093256649978077495605943650785142202076328195694062335844429365090077531544512201643045719845981952721779120306278472963737006086653046140725423544978820152677647276142768346413948220013290572800928220787228421934009871455248721293738419065421709399004041076792146502317063687950813503266651114617830304855426674230135190620399531806426565162835737563707295705227949394400493067530343147987570559180110638538134843867078351114169293864749368210123001876604510313270985215391848752207757688103173755819217760040470915107189453476644379496467718259916043640490408833565206089329300086051095896121578237070182799369766859761145937560117098916427183281405788557252023497694782464469040376018275682667932785507276086932386977063128408249309411267593515466753799804244337404207846719756984268408109263638159266608985839762249089137701533353974420632620766282356217245205488333899388691239134541360113101740489387210448765389887813243709617732314512144689342718683439535437331073224732212328017036379707245149420455769869319404112717999013708955162502131117230382461853473624946271409393692512245485251648027198641492219468267316004749968617246812572542383337588601889022341404332266171823215373554926644454929080037190124479494061131608940230876335687320938007110107598844157962277061977019959187999974068458631827625685954616321694892545418626891119719832158838984664772120128203528665993146282913820779662172710599707077144487214808336473168058678286849676786420513611009164395886128241820987015550404667609519508310211945211289819472233427695558811406310174779927246029838076420861321686537848509509592387579066845963076632740896157008502690424284282572769966949685986293928553458456288252764659129297106681197309465790466633219022659081353527896116603929169836417059513957006323519201532938747340792631979956176366600454325015592694353445622225987220780313903237609433926869586259545729506653512394803444953186292186236488072709512604713490437093887843397855835760339996768682535571002725529172779269845705113245416196931186666915275828089243919649177589687161528380831965969085922576401922122657784890758556997988302691333891920122968910778061473905833036682695402053870950374584916826325770961379065723918432693126724716085885355556593266280813635253477162743830001273547459888064770759406970205865806417617096014543235940388647479346534400246709642519022421988723006812652015498478809507235813428423327410700805397244137988936822511325082700864568426678573248141128030999547668562729127724094176176780419827200349794283682369139164763955545505798762490338442810284850432535036279713659111507149948156079925494926582823967362517916215709626403969918145322043309444356913250822082886456230749752900406085796387634550241629639198916340024174679431191780711526562812403789256341607591937723817535968719208199616266828024464463128137601780470894591272744921654096942639165718130837954521451275339629857500008294588841510517744686997892070869487416471632759193993054742579002749944798627501402566335660153343812408207850558854190785784959289051946092155689967518201647414323804048463676029848665037410011338409374980337087783769122906721369258326309398202736318298440988157974377181983232449305445022716968487493197931432150548013888652965265412008581142186765949307648226341295882991232828306349694348180326421416812854060765842916386739772807551473308721411745272794855544302833427986699724693373696685480355507861677234454112184889910041758636663229054373230094625825611840540300907167039297662858394315042526950367666609858980202124484751457396132619029498609876768777084889093820592248327139254790837899134223433621357448510492698952668270898627102241936028535263831484926339182102896100878322351768143791285930457717008112687082197490072527365537860122488575105287714962774906480704846653436776979046498294370275284523389092955294700163572796897691830641071470189182698075129442222082565274489451781446838360696228775283124799204139912297411642490195495624726523308699145845426637646220254863781559812788094923171389582589982223771225711094633524742237190583516588303204233446400577976012609168522821740563611316507135724579880833451574267276256648728027695392126257912433357617832613165116415595400923123001245745882251031780772674014081375402284702831304871492811507739192642255433881938434779399037073495700875592158976553321556863653367236815470271661050565931249831475439969987422762711379674791122632450131130478742749846410836082697143826223519519878812914738527520330872293294333987576760853317101434096995375543612516485317247625121538750343787593892936525407086420070127369005350026738606236837800715850704355133688493798544366666066515050448376754817322501450252864093577703697316141601941661201322320608506329454728586020477036926584914110077101556907214368455121231522967118701229690896589587968533794964324201391844244297112518323813825945493918056030574948211077132104461150562146121072542405690451072207054670134388868646119624761823910286663539516797631637931837681757449696320335225132769718228513785087791052607956149389601821910300303368106965567529137218774614885967706996377360279756135711044957550851526978691815016380498990483715137979492809431002365146685002836179922524313466623407141519791792397317838937132538378791417117590568655268325018365780521197070457675365814528717582695972030965604379748733297342117155028048973690529327987555362560393478425675980107584679876922541033247152843420602611916046263358034022553431877547763839747326968279100682420620980413650067034917831236924984575594472026106092272478139369665092170505247318109849479283070012795860466712985068059836158168959178970418921186736459739166602431247537000496056731486523328831569086091727418897467346274900753750469468512740076230972352024550897162564228141288978265115868805417187571136640075540749162989925958238483112463633958327398989067570581359178184057361384490984359945734256601178279817616345908817699443658631265710120367218199923130344460154310651203743145003100489735591689546333870871668253740860755820819309942846246182553310026627619969985917311141404634895569543756006134306361549378939151865610517992240665717075910498856464828300537037445914139555912318069088619353461194898240578666259829136071326454423947730877082513740305846289830896748709335695654046812088830666388387233788721748733908204668202702286839289873563257043203121846524320366539307517607347838830094957692796707244859595651060229182898095410442892004950233829949641948748484746188294487946017127322127226509084193548182313292407704210498350056462089088991513052271005668720950789335043019846250729602011412100511013928166926744002249278106318113772183714626457301508828650741083884948407968916373594148553644476359810083385934015934485394466784543426449657358923250497529436227154354771089525689175526591665792089030345837143533652236136452668031692097268730449027614679311952849021148362977861381551704414160808583092539724488146261108270069806474533185012549539519694548275141992932351504557499206226033271982961871196370060611402638301040040339034173106258260474486454287952149236958764190675531168246511247480583134725166699995896643222899751757366576538822895668017729800438443978753186041642478669107460713316910413956714525011126816318099396745719762918699854447856947860230819660597538447870841249501742715029476084204485538077873769985308036315240313528082599684081712976754168570640565603225805525129486966456827660521218901390081048054045477263860736195722219281040546169729378760820754097250136415213563904706870117313423075151702646296511114187628777903273231310408629232044694433243151754372317097065099241617614716436839831866900295526938342003364056956194358084850102919887443331504303378040502442171193746799182086915698958144442621245279795157766118456483885955667783417237342641127249331610856786655837305598915472669721330801097953050064843160968691197103262710451546637830888030265025773993045923979047499234220262632346161605841119734527599779192227779499133962800553495914051258476103758347764447105779961855711769899855710897247124253261503892443379840325295190812700477484315614146414011541171147893147875923277599846524617197707430209573479433966460077013003828195777484116111419710114278495337162918851834673471689238395883088016399608548681709194801336599364061033767371833505107552652890105268614180223261590615711538121445711812009699025597646078117977988601766951858910170183257116673432661596166181551589394460931084674457142932323038379011042427715953070488288256427214241986179099140111112509904859806142387783839406102142223708194922658210147258331604332474312700202696518774379969481918960981636388299803774630618632244940401563969011603641610466239330103543661525970134084662735312863942284373536553575888746945912558190943410268478812991203676120049384558817439967525009952541207227767525067873498997123219510114486278885170225253623988363259139991050234029172269781917123637907251991745221138083817327777724565194791042608817411985379255635217790395732490773550347705340929093060546543225862772599932370010153995915351878404290858600449942516814294340510427256182350392311472071114592715987975382137113959008381124038067199371399469263830110898721146508422733877195200197717019789631633866361265428943308728126496927193616597548502628455374107435542330682012649434516737768603092672577726344578423894066586590071484369175491970195813147459421056514445476515894610989045691695194851398935348037898092854121156091534136579064530990373841713138485805725988480606445780638769847667293440509907018989227952869463177690491552398567243188580416635887302676569365703637528560197234124742247547496016662771354954191396678145201124859890103621602766253117184461586900380614270003391879497694283038283431497286885474134871898458972775243458734019633183012197856630266602620035612927161697479246101847261965914016915356939717391833259223184563028536225665014467901572828697423277962394318260496697047079013283654219639257709034698422132696072712227953913319476883867948437615181178974615223596411122761551774236900288406054738728045498505152782499354739433227866310841784756141863817285165672597706157574207780318764118865549220636685036982232198017595235277397494998702447393661594474710258544242970311627741912960481191414258315128002758879789812430067524272416658333598881101573096312566331093836254356129788615329221192206787429292673558342934924617290706435297203482956676331715209968588706906826927973999267671622395452214416540326596335041205034973396818224999150738561764894416100009294055716900775266803968672083351431224809577923863161342829225654836360071631356924857594203440018929531756918397219763507842299859785403667214866215926675433776953212292909132685229985071253227668275840392843517334235553602401706871874642026986937795377738301099092655768633016611717287338653042132934072693519534492298365227780229480851467207600673759169662612687891985753254791793245508750319986423954880474601092767874682325583202457803120971390243054886569515246465051314031732480799123900063166412155496202044184034696622234702807897307527175484069245347590210707231235927092697398393915864128442144749562657624957966113123555901807423138917715992147469657981589411694123126139701839655180306850987193373447024215193339052628716093487196227552231683901177539500346667251434547341840660324555078112540880318565503967602678654037107457386009465024690474578602286269152889797093391550595879575213391133720679290095656836028134105017468163730913310134473291611236286713112570786539620170134785059578552393532657442050817254556177246359995815606623213379481260915615647463967198023713500152511250334127323125408445629574265705884877331993213065274144709744876600185313106755432315075088486034835604858154335237979056520674204581388428149012988533570024863718649574536976173527859066217449836768674770490290509229447277920042014791994206920109278103799561975871578423051102700732896167471284700879349163558296494436769461519267770869718798967184233329263426457267261101826745693793138172594710488761252588709290118123544256002417321880373195843174815349864037042197187375861036753431527955148366285251418064940727403707695842800899550337375827009425719787555293196287286552843706100312628021917087641983375626817421345865765657412888946011733473944169964562916547607134700483241961961255160355151639418260402833094521932169018387548411408425104608235979990349019580697798739369042140641632678103446498483025884303554167418205780019227675865386421437670386606255721535435545701811714908451894887371556952726591543760448435119742699043019775759906553492167298113034365353127430565789280362905497613327374061532696725919255853148822147340762744573936085757912310456613277528392278523832814888958815037209998547640171582987476612341358195265419547475395876590130724588115485624016604998021513450387497539700514411828135139938480958023966065855736012328951407346783814779041782275186171496684162829620501029194443615939497167458137275758961226250571940540896808089553514031606518821985798298247198370639343951795394996757098419928361551394018296973241675305309659307793484516736212795430812937038626261262264457165453148180402280648677201070788936508660995514609408484212595835215124489517553927482672915508757924130335437453219854964627519396802365261799223163896045113113215260607151663225219414484903035444285490698606229746060526099639969445379547022183482920327771403591011213533319220442115088224709996649393285883423413799657091904392153911299292323473560224585553697928870101285102288628657620379193647831115168649406869123653951047486300483658875363113496357658040637010735063628753750903719122517588749623632441136259475879546784075672253850392286506301659996182237364490484192720593697859856575655041983247068222808962886614733775096570179988424985540952529190148634626774365325380253666875833745013973751353485893130250415281870529465693749545840044649524634293672146676259971145396765445471608505856405483596709286756533759555753621470824790174076051751469397408281520979324118578034285909509138723728727316922420739634412097655346125282616612132973697022379512959386052696459060203425244627470613462646172088253220671525090059754787715703019145017063404147723848902669872091552532562908126270674693617543096339280219831159442869269065032668779051676792779754775186565773184470703291064735825494991264451664789035998497098425948051570920653427422518841025858792973230928012863231367805054214513080654973278348544600629678916495972970364173710090062671177096744730231835170496647184384320033790571396595651942327713094064238030981119250140941961441366417949823078560187541017115207087107511908994502702637622021086438396312669850124748887797246851592421326853325832954694055928783023095953990870378665558860810320792289591952005911270078356489818702961083363338480867187426279844894444470680345334061784407490213953580013334111076973940933691955665205750342225074324076354019379698504054046203624890678141489862270294011644487835571748348039205312475907044638963518682816793996922805160669871015399476523190885566692381073093324037165495725815222788883918005300825382930428876542723563254776774769245797934894557102376280285320218682453780082914193068263853418331986360954700864065571796912228063009501963696104803379107875280315470947772736614128704295327821117678557633309508772836613431196806049404781945767444207070313809624015932805817785679810272451770981759190344750122223133817137130745755045942331977945763610544971551585923620980864696820964935263608130761620296453107892240482666753405495165063732684239683885683915776464658612199433792932073339516911876161064823919930455844808315873261983378742797339724720893489821994603694315289678382766744220408756573794902971165697357253948545073806345731098397830517133198950982402366672282980658564463144404047816074961663953049707716956098120714681553317763547948721467358633641906976145048710608099767766089115920632149428692924411588290510868422838799165531616354211398153920374375147498446757720763344566652135315007831176833479801504776245889131334079879476607963258625108181477404474208888416755319315367258941044964795186017000953940229845496064281347734017741914126859646104878915147122861943445672823034323466745678623001711233337160562530267767950973434217586369365925148605680839978794259431921894096739652384217610062828972161390669100812389466522056476026670344095656087535060432788678499060079879696011111924897568706165343002072889030906309869975846281832142122474791924953326131885677072650764741249404506541469783055740771104932112000258070209182624735727077657470451214022697982928194827173658599209600749449360331590562466590716969003071947021789139312329843451429858470058854203203284412513758413018758646646129176028668885433718601467935154126159674551760947845008422492648709863011319348034120560491396044133975312459278109500313221471632837629525973257483840482213004598860675677825581917348385742524468617609939904857679803145894224903813067230925308189716760047505354115183412887732746470580473159579732673737356121415097961357268243895046722690316598843955800271307189010198172970620428336520207179559158491501541204354981122546676315243508825864777064981952061081760799596668955103295393718809114778280939015084697056683534731419590596664681323526523377954926905360350683661541815273797387716825209047533439366578761394601119092044505459905754063882493128567766221563440835052884136856378302959578269713313413118455687157741875773454765305434892805901794408975706504985757500516515572770623091947046850583122356371018275551301841800962977058085948298311495969408630063804845154539663744330097368905073543739651040007934268496575338525858096327866724964269852423989923268589328145142218707270709868863601463371455028910576639358842960721970795197765828749738950625711511921287810469670667146346842544867442183410708335587626426938408741834877635320399276647566327714345721714435074505245715325379428312926883038062256606050168840921846885930530624092987596125425968038958612442458161478115431402739446999139266547301813696727813519473469507737458389849356075201980447934897192637836638186572059604039985187438817293264468616413991340306476970651186283401717120608959118657221922296308013133301453038697037606579166486393716018850245673638994368889045632707500791582538670851256662333937184948704546250465284765798658701333460911632517685259563397337826241832722034115402068921742132561208639581503651851405810665377954087948795742762880778259744355418757726867257493613151703201544482652755657156896163478405975547408543660001546524430722872215392334311024070035240409893770393184964259612315444443580513910317878991224662936912529561869275138449181967932730501999289484373930840766171253203840856181612566600380446407034659101657730585712711560517262328698554761098551019098674260516906020412224297807501371888095661533958423704369623631099187776709574380408670719638260471424404964453668302621445333006164669349987868061979456692977624713184886667651841459131868304591729383228704205517959671723569609560455115563471375497026785930497223029352917388223672946421700944128398741308569254868186906526069145491005034679693863713196522863167344125305449214868892428934394545420548063962631420585926560515139256704808450233992891099237914662791114438084795591680835670504896592392942304845105160340334672892825403732565718446436023384678760925295181308797125089416331076701990898914807783135089314608112724758851248643865145437576275358006307623578191085671144774773203214984490058350496390159040397157056617308433309638610002598023599947946127954231801299213757164641802266851044939939503322238398792895217219829994989738817565279413311329145950485652581134541811194194919147511634130775848440002600646471883143337884835333323107488648695187971878297134384875277517624945787586370126286836876996692090503730204209532986563136110511666454687184017298416412850204621826188879320904770292446119878572892223806241499003577685705123063167241882230998905419300526527526842292751184395531074201398747771870138148373289335897067558428923836412297250546254221659916588782858344529803477056761940607011257892755125004353817785476853640212705913003486809128274067238917040499849883459324216095844674978984981402869047415397108058447487912322356524154708368915521171010492007656513554421538602282184467320299951810696061464281134353461295417441100723261915157402665597213602024487741415981716679452871606065030030037152844861476854065186079975385140700461385451740405002697152381015506756404836002333279122851327108109399864363130131121783225455947315178923206149821961068914485387634634640733306101071538156709486087704010255336386215344400368750100249733297324130926000753583095690854218383117294077750045964308491928612912761630363682751158334836178451989203616482648628720476892202205571778501336153527227801781959125565250814991830010276586075054450531228189215881038588603795620201421771378720205815476758004586188025089599184790183228684580120170040487954670272390897859096687740986500879896255529759454487937044400991817641585915645695148693983913447509790607894114845629089007609976135046588819338671828160285409475777008811814576075124380028912050815309188447305093009616258686214011660630967485733220544927635519861753416258483645750740849421888841206801092818419647346498508661280356008501065462341046058093216472742455841081334014194843627316259574601583015584715199758514229467890288766595831691249827771923294914210175174493085385099974681961593746232981812380681494099367210542243455654481376099023227208839398186853657115472787226568097573324706278525831180401823142951436645971759730920851180170722908691719193068205411289956973263768288419020063226029121089363543347707490428252289209843565574610065076941288177782827644708296264078658539331804063228303170800330194109869246275213733587350248797042939326866958504480626512089373490499075920637136410626931846519816502542413757492131192834404206738865840207362515121142824008299236916815499873331149293745849571073386297418724952348605468738879741639007458171421940052834370053989107086914022436473925897112873345058079465149413135335046595927569067579451929745583381673839362013280806064559261084734155534587912568806269619884174756459839333094243461814763479796261419824364073525138901490587476696885273889831795681810364590276061254480702985056014299108525900974253127843134048544621792747831822666762034051013972369473066903681653101672455325225994234980783521712037764984689580604932267103229508429609388656340708124333767930009599672640464541301208702686874743294731618635872983695049553314962281026928057930832244217306972663250532458483438626279118377977065696726583202136020980879004635366035857737874989217876477043497463708460250827082318823191640544769915505820225198213144894407857029274350835102511053340531984408628450583099261419182624646119165772582195714819618453836533531685134808971535501434821520020905010623664697608583146582981754746000254165020833997823064148734355866833117206240946866632566715122948878919031946937476538251452003246525489859414010791093136079713694731574487565502199619359706753435447902915814527428332926922383446614588161491451373616102433003172586660153811352530059913917144397073499320641592951821176007809169898575291772679063495013138710565383620131948747850211662956319014232124781160595341724203882298564900503911257249142242016739132752058656967340750655076483697351927325190923945310390483526691151267727288130225226912659648480554409607047701283894725028792239259711159285511361932927307062453695190221742705011314309434877415123594503633525020083791382405851334912790553687602543966255017924934463577415657727602787259033157740556709509573521780024161514744670145271591001568067292229899588301805889816683865164360089986019581707256861578686553735593955400871353013965351279456549295079280284041718945646985841402454599839723554150804879832149091221736860666147108747876871741522367195421914788024659417066900915083994285498821199967792044565865915586272981883764158193375598250669113510217223270808503121903753720460298360456436084496865548927198985567199731709620308536101925281801470033770934550938712990637419549269696484899437927071704837963070274138409923954548164974698195056170989406606967937427813065808509723018354925858192916838180382332463083499008540585519652198653134650975942144332297973308841268660271899154465949390954593376081804353227252428292384780097498875484999476660496255329831987963632695784716498646444482526595981383292284893028169910763545744398318997734565083248732087112376579780357220684506541517776914736541065355658447667267903433989323525038216793030291109037850801172630065943466493256564685326934071668915687118268093529195328676838630860054356897225399947949780979438990237939412754684560615974979347576821197014398215049955021724539956730398759192086353394341606340040773069508094250567173015477903344844421047529036585841354259160269365234578188829478192711068528124639200306187383598154512153524304460911006240817383907823552322539138323121636454180665449293846611095837219203687014848021594225396841109998741393843340930614056901959889454067203312422376690422511637725429064294486761173372887600410356610723917411922296465436069923512905731585624068936897882810592860118363918939613792451694307306544627747711916478448526806566035525175541404678751363297916779219006953224896109942007887853116757346364238077234993331800707247799266950291908637088916105243174265479060549253611701870710481397281373579279299645982474584242534990694983689526617691199455164457239665655048078978914687981243679428139912612488139117693026403823160536692023155776479746639545844510624826862913051540859362738684232363838146006214357781998633608643495178743972634969078385136898236599781459237172782085478665510707792343091731361897453607990683856160106071018888107263036124868419690109594223261187093421421272922727167456014971576570695456055430540482432084751424281688935811897109785778798350098821905377961509834212960130070215701454075057565286516812079415609495384086284957246368692201071058217525601124259322254413689076124846841752408244821625218052768391806956937082695873402699907541613947787377909635220683708476780577375468100187387185300635010523853965487882770378566829845253661995555338389907665259088161396620667689243620372696078946802732487465590637530727520314600740522269291914149401157665490742267017924658786724190954524570051828118730905139747610203994876403886646597372938577826744307768215305217597476287656652155382101955139559196698259511561928095351535518671657989259449492351091356824936112689009940620305982985275828237678323546878727114455967740884109697048411901659246846983621845278769923327125402455607269697389825167901269849352900196561667651377779622259173952914987532637402459201873897534396686965172085774637492334405296905422555407724094414993970541820148097624312547432192277508743217594790907371047509134306701893992520497726396695881210232039751602179853520472594874196332495230076898569265828155491132315883648765609017113244095642520454082168617452193658141177250550676229253922279421806369166111161436987349677393318012064680485895439857797769686283721346445848615721051968296875288162894318063452717904673378594027789644736909117308104008015790279043242051704589495778843229082460107227342741381011536817032138379980366900345578821679528314131579465679044518508475512302761660971947313832996834276212650965586974833784341804596749654270314146799117942336582362014225214103389321450411537857485276631836273711718958096509414424775513066249659053251013184056722754313889148366962880959598923002424951157189811387519583497689318391834781187822024236795845864110629430192790498901288240200765483464041026476674931117424561334054965128651002149319046040424636558660162419785942065464701149892899895159012909919190308901110507471685229756804684134824580754708592899904597309060978403307421431691594396425984067028563914795790504229837103912085788935973979333364212997750141039391744680047614049607160855769308707739242608366543399746701775049586193233125577315071909992733985273624717543533748276650008716569943891771035723203686721962649096688198770081220711755580721070540471593203656672589761871908054313039076560336558558826519884047180585894997480985752572859061876320676702058316509858689203421717576235464918217067036418689162826147412478525667432524679377533925070264909057428070569552226814514988703856481140728297763456301131185977935036020234165530148615813594160497296120878685953700882774305605268630191521424790902540175365215539931514130438564382433628765825510512686316116451295468861357952066640796600760143593492671916106849875891905305156059652914728972971737033331138248400133818603674644670923613864318502913845345649352377337070817306676205488936738529233783497889496363538981305299467786035233823977349530404157609339069084991536767647778063838186886062520257830442350067189399759668879113191091225539312110829651328139871622802386806453020986059356727089593237356986472922993928616826473423367592806117873420918880357168915014281360428928330791871890977021732538353651925282369540381592352721512159479876688215245667232169597004803783520291527337705471470151292994058734182595396041590791484572359484015271333523825431132349119792653666566078913921426365879008360804993050025645549053879671528944130216291906675552133707432338570264827369725057191518174064446512996122774085270323268346433494648481606608029177902648709597041726286438001830088870637732221119499728571076543879281213313211955928330821930135837400246063467906848028460717400191948134574655200554321631430458794534226075223503973408977958990595267263586149650754739035283956877747930278067191231118526846586443765358912762863195670455993707453450754537573009504570627708937750434968093165619099947599670262159627902462727816061567775234796604348945266063653511844588070431975170139611207187377236576605624632220964631520760794207656145004599991047631285197324882032366543841467153295315173843685940505706609522664584447443390780679857271727436962925782268496474865441394634162179014333432211238797461646289345466105467902314444627968248563977161378854762664347861805727607992857113586643723909645002914019041652093557425946665288179616864737711793658852072207935040213854161050624646349619104150456623822934119442276811817879939078268649769181728274715434448500516384069303943784410427082426638441290654320603190497300513714344395474513953937940379477623536102802127377776962428759189737350119245248239000584762759969512866638481614184148868515643989263287794446007340719280820306910668991743303050992878965434266493284829173541268671345683968889722360182555755505944661484482472120632741336011961072688327444172134757855269554760735119288795490647302445932168767159507535805829915863900640737548995210113068827405878010487681117833984065364225094244190699398325821720471343901162889604114520747332923651433059242617292260980051875777300802221170921324674777637896675104319053704891973710580578306198711107873291983280415613004772632911819052202967842013503605350635225694010231795415021974166392006756292059308835858614943233885348387433391996246756077463424956181398349319899826934901945105050818682140751786117822185870124422290859234782653143846893398905646574695425714587443750613542679697399760065298854029954117945467831620244702364999664745228227593516829775265254424005703991971195183137614040755837554364692303075753457898483032979031742886743092383454318054039340279691942902923307966363772973060840348617334994013094080856483951417790962566638268439426492072789013316403105725275337472645981003238902853714384427314732225811433992249699773983834760774854896154379838257805112979545789465573428219953403763465324130717564705677533352847682133615751519627338879096225108872202522243732299252799020304961271953249518537989791722487838919638009837046168878663955489553448086359138867370101632695057250655439719683566133271130143237451971247992708298064475019685092272813286960800039413190279179747870086671457712395611061204418964886938270658692230844552591380218655056368448635630442870106496407810834763663062331955749718801031309770226069747886980328468052260452196225754912016106610372014790053936387103684958877920400540000254951959243174814374326965213951914578339989053341148512549045873128104751989493352775582937990515810078206852879383171318059793863429666706988960081892264064656185044610668204950518943513932651041917982884852739195027117797435947777913126808467200632811694619289733744393007662233912973475212853295582474315424746210755133703396309496658863481752052309663422188708320261235331572254220159501382321558626422214371557341829101410594176698244178751058272580109141943585565978041875244656441594162363662709181294873639083296349897900558725247003203634261432750230292782909622848342903627972037778981837768848691844507775575468448118125819906483743067774529592539926881169098908137704998010001014954475581312221704816390736037837254282870868474529135244557234100835465593544863924605958198878082154293989295265221668903656171489042134914875908706982679138932120467434925275675541585299795737328659872816863554715902803238746703491212091440975679727647449301432796755344711495519977608774364924967991996944299668076236837030097993694002106494743222669860308384147027523975631230440431940377749460585000780523698278187214030784152416517179691096446289169428831975523478114578655975041947100140854710513757311916326239661823174812961056886905024749686002331286666819358614227688585881242051513774671726785228545039122430848140150128503765078383490078106055649002304620807973975015592928063761383634558680749259912514301820332304355925213375476518942099545458827220528357656880138980011981177363067577436638894167489803469922922823179323225642224925121945563913540232475958585895925467385490127055815248402691489601105601517578906858996047234417403199767739203173783797399710504121352853619965840995306370503590584601359070045495806846693711992675265900098450497404350301110194357087324294213779690440298459242054896740867075741439553038936636892739847910784271173937765578443787603658035383492640490736659904154978589479491523015197088658635890743001193849168835947662188210440273031297512420785529620942501741559355374816935971345456900282486984539961959580528176607308619233392744742816904934010411166777162197796808351398470424571231564750847903954764440398426561889995430736777748790075615688851445055275881227895187773002767857883286107775766455543066527390460875258575636206725981215461283367564492812260343609985207134858027602123025626487171079293704297644406053854900408770056377046095414361372362848752515816607926392168312066764919246103291582029829771259775760201488292210114671931755814319183023918774941254402175840095744264009919720436096571931967183029351352468476546639959337329947393962186651793691107276289444760541955255945850655386544218620981929781327305031479892228471846623627538732669104189145419037505130393717878008194015898967936772285727059076900088310976134645327353075296785691947694016143228232443175466900208894532261214705228948346705185022135078264453906635430400277083069068761604157753855656055135563995178943863113389538116854602224960123790596643939511165516882537721600894379143041891627808001359075657917731284518002817629858078184276314830046633057973759014401033481877653883285515636962124647548068767755118669763912831887347325378145430035818945149177491549395173232515610317983493287048770825992724453307526589336732871446507189418271069009660003796881037194929337487080024401833150937366341117128726257520355802953604577599449640669669812484156085895914501096993426945062124528595640218638717497960097674835713117909482972114217303309646377190999434777419292324393186504607217129661725470175937115047243795773468656844284472665102093247419497728471463980752895122464550567219386439497280708663119192737702018688669684197236581555980749743223096993792397298377980178952225764579875196371655503350988325748627724842346414694729132626485052443626511691787682999433388480016199351760446102641070886177326248097954822785644903353837039150082697676418823675557085116460469765747230972364278109028600064793904829097199584330024132905520097643047146548946456894775930554144082820216008125990349349379413553056210004463871641704215289084070083644176993454705147137128766571791325356594546126054383541021514550146461469541923044513101471731087201929542578929432162652323853154127460145963955803007810624583469356790629586230594787566779867647359267389390637439831589206508103252440268384692151776165187981038927531320069726868415730036633132646734792141384100807183461213027382985772295943093253864245995807435852194305223447993330084242262319405627570944536465291055172771428174112172906170537821494263502977461619687683120238825533152267568538650342110287007496988967258106958545724386472469251436096189478004778484426825077764745567156297426715032091546760466847079713539027914411774118879650223904933062216596654195713156784326591906314085681890791863662030672475106780019246889634505471982527618531475785419498326862773174539230138034851227454498859376428755158167773299816300403962507252266002080237202981382266154640254915921179213527698630924414987381416754508424335711486881336676725044234283710534896659681443087399918488594054689266247812428906893266770505529885479017410209956482219322028581608756418334725368196583840758095379316477857801656498881722594174245500778710314502772322635853780320889508431313124874608541653361284946238568464569432785125819890662437821098974551366240955237001855244260661624969734712704900135677493303638861096724704403562388604711416360920941740321012554520605204888793828578240496639819060772062234530707905176027860938968698030396011186597972593093495628044068273269662963508325008293462587412391703362942590378256727271481840898295494128211081800768779585610245770313126841705249932188952984813125881381253475435956482385376329895708045830988038899789244819993135648345239375542281469930079046613196474587128585630397512744650301266694505205541038777662511708782234143555701564682480531181732582368547556956821759118227789694102391457069453560622492679991499485275170578624581032214753188143504541501193681764344580154218012077346982491472490061716888356519006123490368469766079130636881167767545915237176930616966932722393433108175133235455080646200211655639887796287185871787744393997252359015999899532143231679784524468584388383030967299698125990344613192004410778716915252174638790902644451430031236928197272769697614062653833946667502924600537954508887954799600081969248510467645969788146210925586231019174311837086842252843790027828434064485485166331581787028908850024831886536031475696972234284356246992328453434289691427458383262311363126793791164534689641403079284126714616840883543481312916818482015465830148388946465123965312472493321695335431242946867107055246974756533923654383418328818765562978527080151859481673344396697294627975982619351445752372094766769055795621729860387628131025905061517815198394765849341666458345214163728401489758743890528024768267854698490691064982401064764418311636651048225453507345748586615298636732170456846056056463932685190570571379607223511623224265466059558214567000435449701423746823341978698697193128497366853115375606657972296460750181338261150278342189108243376665393108873006366326694185899132384895464196672043161475361186177125941323816072366382158688284237342236325347902113753185300323996016090532709869713562278275984070687728658885297994891937603368459420306966534541737187429928138972041724116430375195213954437979725141342310168952626178064475884064339089710392338631416026705668654852849987615883154094886866775820625558757107064717224685830064241892805212649178448033300033039832101016434382202972029341971594388676509663793588071534515569979380520663724909324088452276417224542210034693086490608671708548843621851141904724595802198847663046042588870338002936202190847750386150351849140844332027638056305693047278125669898529842548571291596734043716044664261434449662066921013481811935645949531275541862393719580827884767782358052924393802816837340986589186102934101609489756983624640558770117977538684083897790067986047202843250508689964874103156033612229381873056216612525340739718659688987381071306364332349199608518474404768987727497529171067708432430613422829090008466663453607439685880058008339382973840649095227768310756862667113098501935029080531610467205975830321700343612919948145032985307441584034619237015097166405674726517781875251674722806763799843029509062749615211067077730638851988804007461255140282932495140497011891283542471294481092978427390795770636698904684694638299590790304578707471330304712761781565485719513107526283841748600505095858361748582437662014794163238025421678402917094898139025806538805961304780874462063221171847956340651219424333393728302088731555648129641994350357753863991755093042359407451858342147654139222237020724706392072373495766491511629387689936817981108230443603754819406960282013251359268303371445677944327251192561787366386335123986326973506997370712442208987017299808990097341874034462645748811793579496577292381157112134206344035654079822900113250843627184200992595469683326403799638784914181854802815297362612563816654814224944070096306166215364584594653196809129486765142723868401028104179756942788607924027590122597715760661800297473739014250829126727746550621979313790201956689249325159983036647004345237665874071697166032641643406099905611031497714402733375544244269446677121401361609543635332860231354729464023133019081434604028675916204045111410548077413640209859826010096323810741138148347674139487098089806921098568186702864721814164979165266145295189047174138371321194525810119537853952955881191247190343108655983128984588318887056210369439284528794482516120114729835307645662717044913756974020117074920182934196269290605661615679159264990838433033791267562109207880145055695494147230254366783461805696589614839972149383545282253322026410092258429626003539280824493823283148277056216693781151812153605926285755581051962444190607174414358061621941368630129672582757903796116455347265697773131686446825115112988804841541462374779846843031806340808289491515309220648002805832902675094916451256368060410813776242817886724137384796534757767160671420819629787091938743066718533858268499793260370347110591814606339810568023874298293345712320867228771891016937337330049008975806076916772631624730981615372057860188389759770378718243144408341919811301829762887619376121778804288485255658513956325906394722506324838803808545979337619412301134816285298249516040594423086554690236065862530178068943242314943887671561551590160045113814747275881073024988175425113311989696448595383951744650625510277584542259259314937182867283343038788138369799520466892124109698215223648943853706985719952394062009199090947590692035135589862141086390468725879751117122903075183791149744737569495625421613664154475318473054798533094582382710232003426495917033604990353700359356895060540149655867280329659314594768227720953417037502468687045020097094422034437171115454324001204992560040537421192367595145193685073697445207118224734033705217070323522177557308400553119356525234503995144435337017307007488484726097886470472648464998761781050320564962949833096097161990947484211052785398657459143692387092966695716529175055887010750814739482775469911204702651578668048090673637217192211886075239978540708642217021074645604701313433366644251137960671826838603937530590761359445341061894147989112716922404721557884286395411656529702889332424312996899606012066436599936255369747414867582874566025917253686621536537634007063764362217721598442844200561890027963790821381159894982482453244122022920221282964414906555337264679192400336783644626801655009791127790132410394132006087726406585975224731176920421547535518244893090420606379848669820787655859028226811802913214168531920481459888106973037392652176152969754355266318321716840922254671290912375628340692039046635168257285743496772874096627529052771719557009793597815768293570837613427877290877470666262209741385519351601026376359946255278525350886535166935334930223368662990204730058118676289593872772961557369807271705425270619432140592642266610139319441154377346841599445984880601420701216953002626912401569401466060619005340966843749773006052529879325679421592833866537407121505497978157565914421735925464161587147893879663991727306302986048927738460528459501679684435345041789133569509285992904524061447321684736143375121828937152979700814393304199585307661003865422161965584830397719699096837523782352444629875164859313716144726102062252096124243165270288051316036750412898417073642655097066390396135996224026480826074820769216683692951507833613860868575515371121915326620502342061944517328152165732139001695253110668876060234381443013095516291289763963357289223299844771959862394344924350261908202665988446517849522329872187988119366102053394573984208277456199111410334472193667115510721589770591905478344933921896037620716191040264501782670073721728193833978901769058708516170928374394044308287138244550234091124756142966255628965324973888802459238058891342624639692325347559261803322816300933028693350324871705701076994924994643896819358519536168782413713649024490303622393320437213601118535718796726567053301871574896988492373045098726315739257166000218998472833544988164003445922602182950644517657970471805320994981266874907053472354857234107647007481087904270863675148924301815532024943313584441493238309371108014758620216978867122314440079642637133227199028489406535002256805647411852781367713356503599570207719505275774522465616329920715338478697610015165433501248534035752156495939415663658883064885501255590191151923809191088938498518806333858079316458067568661829774827795814492408323655724835609865164256228613703885196030417706787612253752870400464686490588203927059402528905685363557058026106520498745290255956301866621692229219673116041471420666821877845080429253979699665232022613819685505175803986310431695927017846200823383487652903191771645777987855343161125809729629259748400514432606465375323010135740097558273367090363143399963951055190067877719072433839328633814866839336642072212132443728866612279324740545016933605838786030246268720305197375157021412402894194975832657716912404483964579544362622915638519585107087917076440357082296792728801341015219305754783692186532589990903103772299408820884727025311719810147016913451729166552641857097810776355815404723820828748918950313126052974892855183906430306199441900684592374004799936604377190540133016865726248612873052960383298737843526403824781736626703666929923261835499021032505427677016776816951732895473681663942462903118454716048990086254084070693465384470629813201895998067942847489189580261896481041668008953502582931269536750381233500074974369971217524999413866227801056895681655066964742595767073417369799451007713453979073582376729384228694966096104143098398165213484144175074431016645150407887846749392101977797708687158706711573502311386817461614821629682439679552413723855516856812905115260280168610696953763505988543203041443198478144475864882785724713205510264011869249666173191323455706178463344044091544905095693829870409257222831301759772888478288020079293687626203212811820479009627776406050312279979373854085434768231105645243380848725136632925265256613632016558474204272508117330573352511153719690413554984463474298332513054943222195689631530569582218983019095471041425879805667777457762103116000138687916305249820862148328087322694117029530597401971956126454606827235772052710405982890068157205815305835705810053726427698650918356477390205458254096806054083522541191618718976277198809017714225245693301943552422872387377460592190142111445173471879773673064587644672835661191044048313167766218291778541166380751893527024777523105140957732905670448531672182159040574370185082296209252048736807346095348963768254572489602915018278856979930798916028990516318614229825643321904674890835140451187407724682313844283495441105359319387167867547692577156324734297373625992514130009102142237403596257763440619074021179049310168277529077090557028137136704005015052596128125017364857466459562941872404454456186109506381248771941413487422076371437311937413640492461155493459792365555233154483386446931184390218026173907067857799594679579157453204695203203451740130118237687732887396416021065179255600455394215121156946573010819552740922918645087325228703162463886949027258933321427773040915506417983293367632102239303800601777857414942664067621819574133609018584372916393799382307366353478655771704523654198069047676600526559916524036794887113480048790655563747112573011800973481091969984944692995434116799318345976424385614520077507346258578057789021443375896962020796043083257635678950638315096737349085752211850233764360453783709435820118894502979425258384685788770421251716719593238140011319130704508190218873450843969765762709149518117095957020793118499234774603157412513971509894093309088193266304458550897812307931338356381814156013880539328280048354114876559374722887310607206152918284561684747999397125332516554800460956894260712812334908106825694558492054253358850624514677677908849101844455397864789819483092775369253941927477511022391700670828169759528486359566995205859360384403118200754368656083961431442756560791483213450954167366098262587472453329852263282811363905980163260957313291698886951375008752626729807672460573882285642434751913662646487777924638847722200121893610369259543675014811357482705151314983444976170051085133812393428390344784275426338144637379088531538492253475139666496653406895717725041967433021984375444660756357274378054798578757749746096778525096624036723528442540083895643258315667320665259686233789934415199390319979132848201955422891428004142645376442892873004545622126820860906074594922953956444581111325342039236063082073337620475840323490279766282932946217146540607303750848361727079922664958815006482381971305436550930248273085404655154753182708506722168308792157463348929688277372166445141697401902519239141556258041949716779068478745375233698719011105249126718032636430334599723340091936429372870560041850680394474360375543217838953360696292777220544624974181499050611227124964046618897321669591038660265144468799528700728384854491103590926998691267904612740869385727727910392290274619002647770992235999983255155357066368156552642442964675309555038770935691787427723376039350567333097112604951830919247883313291499910293242834165952818618255540702979901460775362535608126454429889213843950108523364027138818180850840516366747897211272610092448766474665548806084577613702485859124438790485965235571525482761125935797606601611164848403696270666076020137925229848370141229053781474407928008752148456914211070755090566808698726746879648037894016302813853224346476895733465373902801457527446616068450867342622421821758141538654879125209656843681461494179312837843711084459533797749528345825548979206835139672198592713547622934806684332378851855853315667011897106718452169517589154933295479452348255304870478106570965103545968415480429823818892587012820627214548978020694598740562849295648440096911530304968270525068112059073544217724397355315454318460619647571241460739862883754957469315712860442095219322580588325479951381479930165410353296714437590278381578886497777788978257211581656080615852406060917528364902392237349295277768366418247107844466808165686219965266382939569839060568588723976718677957508681329260011494027527627164590606482002838612761539979687304033611616338305831588077094003471961337838539561973334524356881608293231312374865029418795741825634227659767863673974624421512253523371637543786958931534234094091551365745752455769334557393746744681595164312569326111832741938814874481864614195259295498789770788905296379945533040043774509902690703176675990441552269801150112844489875892502736108084886848394365785357720534747516325534100794163066362394406922059847940932150781907950224574385095551811940377301098611116018232866407097651446010218533499917772650605268356178489645048795181934549462609786891276478279413753744646636556787665642531063145323528201994449521593168090464331056366009118478855588975791596847183377386052941319308293241937321265032290738327487389680244633957867436353027788889926202958411719392441937264128004557974648224861186106989954492768215754517061039260881830536741396546633783643627170129350864234635986435269696206206543586544421137146203958517541778077494218558279317827379207964646859530364758332584019862411714766621335904915002290359855580602142122343676819815984356481395071297645107723672767928267056639591799924942136357527762545679221624966234151778026287418663030429897664287235666449637223404560226423476489004948475670530294694070917445803419538479021055477435127515848250498411080459380800950890982208154228240364848036186946152332136960399675031953063639723555549166920462012513099879277546310258282671913449173536119285009520092659864465727181878078812564346256587575106946968284887446000045860779842758718095669658831133116990745979197127066271208114262005708525127002946274577342605345707270028115741928557134511926010596652847558900210957513432588193261153148988919739176073738174325421932957785974484655193675408932001195415002861301317006135939684033813197601618598776286196894688471367943397009727487979989105327152224344622843059028642153241075162420420024530321651877227829238952762445689636625000373335452778244104612438611650165453667026514064905790803338268336714860007585756879670075888037387808540721348769782417528273403229072720309436877781320838489634998454831734329983060753557062359749112282209373951576033301716524819300034917331730858536039812786605484093625136977665878903158958222551049475103661426088135183353562565106149584822219647837675700735257535750969711878099982743549410837642076831619953464231098624197956812330920406898360049379845214264740266215806072335883437245922200846598193423875739724138265720654019880341704307756611986876142782432476961186075843355319980048056129631376286503052077628749212534363189341011616117550824025261595443513354694846805570559243604605083961017743692773423642208902001213809960654268343654688489562514595853260109658965982099082768124073956940883400433267339911828090840115510927770563521832197466360398118271451103698550365728284612153782765272301846745360810798871735950801797494771122129320294076766674588325864869254369094124600856042613231795222327546962134458398607841439675881550399187595130896279184356205320765258492840026937504008838173106031542515797932881447711923416374851030941477613366187366524948875253587616068010787664804959102120988478191338084244402964532452577022056688620505562788949359890971335581618574925790022694143376917723714505942619938304353916902862395374368401556170575926242733489856235281770728636930418640335764693738921611100713925164840221990038401074846712018701367957489285568657769307488947683614216080156331119225303257127151212350277017761360932337771929079750259503783251245474185775475413956427399192443124468812151462785853469967659877063833660703042758082009451085286477314856967885525317644613778826225100159317275470470274281343719323833054925420137685210091439167580862051269406558781443131213402388419398129976534509173059917442462685425847610018614175754818412162309765180875523311670673804045408670486090709913827772751472418540474330766009837286323627940453761880179672479158244225351324050895803758104778852218608172336876425635710215247120675181505935867513721348927626723907322625748311842176007559781554962361222922079831985378768515726129170818145614931987532634537482103194294707577757848068329488779680749974653720423120010564325923414577783959041795254649429703134331954354518832518176382323792356842004838247002908940143598747701362769583148343854167251773198016724791735967768964763829664545825168325295267269247734393763409149030930380207964579461993404818220870737662091317062248800580621663907165856813788288455814330854570557252218256613534713797963507927135692405597412973840079541250852536055977293916170002653025190248912112600990254197903454150829901720243986333922029017366668570825582320419136382070752715980979581468667457719528596160110745219416243105965188653195597778236278963247321442704358281403356628134699756211074669877595065328683236763614243097968846008864200727448142858898790909135074741134704429720382951978416553477299524250613735108986785326280673886081826008107725623999767489779662052877582198988244893749732574835433291322183928379136783302845856534542848527563545607874613600044390525434635942525352697769600078183721296976757892263503676604024762594935916157167364158589735117573129806492312342735219836453163863950396766871605545966969749005758375745368284483163651853134086582090407820296094407446733616526797542558601484255734245694884805438261176597800204872278482110119172463377769766282448520208285374791587838393784849435094739797623671877355730811862603201104062141244390764985497635391578574384883352884511673654919606223668313009797787015389353092670902025928975632868901520960564535539108213966684139819346127969428616319558235126255953850049271860764688927985954064361001698748990785986372568746200473217141225086970482166790131774020988375152021825934436993272145360930179935310715972711086201965265368170289911689311860404182668098522562755619496367369076524835832495372493205549999891386287846986021800397108763742836749518519929721171545600808299530912038887567824365441938338675658591227081106458765703427445630455182162784239239023031114558033975736849112514473920672829375573559725494890603802005598704140071577858920447578817317244288341792096347702521819445723620693519105304809737699785382175203944114555902521774888229721765597533519343967820505372462765107858433335887958288398261266516991234798349323114775123996926991287059772974438473322249537746105685882757985272386562290546937706668101535182614374127240106680757864556851881182602420561988323701824124221910221663272148165450386370985618765549471518514358792722020482061662435272576365100167683423947185760056521326712251587037678742999989472985409698057931940538636387068002918423825141042033380711544603093125790082481933670257920755578385688763885964372327034475340636457868152432739353035761849761079524063030291168367523082078559338795349088452395919329917202402145063590111433346967241452489134921485036505019292745737040088133834220362993625476616026728956060630001498761067684009565233380262053571975325808646497319912445190190384883204397921769915915328168290230236448163076699945601584679967330609528188309721755968186000666780970670933807486515790366915833042257128932884957516636090493375084633497316989811491681322686724319308926579431503983798311224338169990573909684135026981203495996301936844391649411499777486617845636664435654478247553246354436741870670335723118534689074258848830253794742329782924885848028928482160748548216629682718674235548347075600292640276968097396516172619766907973071627105695758935483083157645096142751466822264354707608678634823492764118176870670752532736031383040410147815044863698313074546197445354457141332649960402421487443472711762187980836063642723557282252754917138487714204148269325747409300514132698730389321380552954884677545771624804771252971098696241245363389690655688547880643094425639803644263568008377642778457079711060350157965885062853539543728947207893180283129626243583639275237910098035828809542527992621694379001992257877139575955536271294354167605071795948365860389236412163974304355187764311433182925468167806748957556401070173885498941066551548906920962170643402887203345306836490757496310896128508692021510699452996107851241159674484999724380467862662035245609504732083358074085253431188257002304386606362769788946955297365940582330022354648768325880057945679020461741420499560236533060773122086897709709330007971274751712327654012819898599913665371669674591552195225321060732210978026958538148503744250084320943237220820460279506763592512769214011407406137792778769392038170204832380170499332833788333667427363512289749100901146379586787903811502041633477111340136505654706483473489550553136146183177935028645015795110323929979123625097883629507326210933493524810163136492665370100030401144377638281734339914199718249652278002528282760080588383488526721845860733422819611044907280099145993812735414312837329764633028185323578498664891342627885220572851633283224966035294035470739255383657676194313237467871298222246157220533508417763960136489943754807638663355220287685498442289359573765707151818322501922923819002627595327373334254965600046046967913920386846584084610417560757257924151789098805290716860550715106319491096086459353382910169036316406966983431998317051239865658581007752232409394160721525231592509647765160490497837297997361011344154014756543761916023794922236731002804637938015100990762462350805782581908237509931829881342937472189913452028098882148202881417224548405719898113496264115116053659519307135252218292531019854912212017155164731465840690478535849536129227374800235422461028181473147612310844039110742365616848905251414178571374352731201428572359193686353984584595661732436293080504370523327790451284543110845864236733551735690426807273915699151304993897515849300854038034699263214179253067226083928713509187599065125142095214781043298521383063160983469951519365666219914084368474921460184136880963369296480743724327553818226463487989489616833666868878499750198740951305809166176176177985751556031579870433615749774908911333816705208509268512942003937275890512733869229527403692878532254075553260586222884934743147049359114593591743948714438188085989850463035651598273916477266394189540021232278884319414239577396124447844037018704118370360997997464635881584922703210172978339100938949669145164230384090028680396717128308419691811723421063794352463451442465471444249797481793248729199806584655023111171821719713755205581143158969920014288758443686519490159533883366500323908712709164688186606567074832264851144538161423242975790485321712466951345327594313863397857749467823901126925795359614240716401867868227700080371739685236063689888701190902224293037210754478402765395193841817671756870171088553724013986562049082398860112058292413185594532803577171324251267082907346583493527445433276862936430461207071406353847559409305567092855470927444531267963044165997286827130837690171279144692170257332129121483628230838923618287987117329786779724189340407366190755179847302363619659545952337560400416177565609574307125189236470973090697703186251950965073613483479683392972578505737057427616265474328492697394665284332421182994939828117537808584727149092752631864300315547736592590873319182428279950108526961890922836750712524275420312884712601976612111488446457309304546249593779768542626548259894112849975802908722881425593976282700923708253193243822450865744848838192633687860882054013474786037155721509512768413001845453664176073384441236280488956307336173372738290634191202814587697788488837193773877117437486663199914613993328836811936433721983577498690382840934906558243636014541735735272803758101039022842626262831893579215227543955948758801337921366055381250004776186422368996768573146674423499951314789035456425662330342559852867380849363687430055246711411953316201478115840163737721001994744048363338067971982631666372717652931681520783305293088720595644133043238111160377793561630633062103810890941841520684147415065570018712827731554976642290586528813093868297696010174846741170696696847421103821806262463096387386254387125143375733813169216375531721015356052330482765987388713406213490266974531960883575662187760657003237540023211747870149353929628305730009155038016311328747222507135837691342503416785313120435698560527309753218055927991976402265110677236500956460983893475146824475757275196922426140047955522823402587374220266415533350569197386844180923422775127908917589939584527592562368050731459595707189246756975403645531557705258560170658469562791151133835028899214153220286559216604497691396458134478643329115899339743829129336233761838440202936090539938392905797780970163684190917079675610637287428051965374763173880474985276470604359205099525638321193369215673272571207384046731780470313108528330637160832784966580834302819593985028030304417249838622079344294289895836965330888707022052376010847793253363724912183789977567084401912026273783133990869564024539310767802109025923943157070761193497326063471536966924103917546999524800906770032793535959054747465675569241286287449866811649021502496225031019586271030141545613615244139704280462028927906019982152900624782595331422160665802282006335645302152114461366353784489203980257455298231773241654159841124096686534778459097333788776726656141823062115752164633923647817960939667311743357076917021711136921972524046160130426362421810058132101201031725451897084721064164413227568315366317426208672997355546805696436964096449845860809453844005686584878006046398637014296410286984162140653635185216415984669485502933191301648269219066066860595980452118830505087343672946194693079867734165888133349161262407061142548831097663797653645913098905165225027288784402493258644343871085189999625224907583007551828547256712524431640532700990125679844422135660637399069444767198220085221360913989660941888946571236490684008351684687341846005986826843005367504578825284832876401149341817449045173666780760937202121565844617157403022178547612125471037764605059565720462280138644944682564069867872877697481500976146120465991787600205733677573995673056000001090152455642218951364857488316885922831203601599808188445497385641532846383975849293341324151454117753067251039120852054274433618371165136929397859767766281358923463531275224007657247096248493676584125311401641962427152247821937502151765802191934768974498176098293589662468901005409727681888766976818802334263574481231311885516677438564266431533711672494039711228244862218138655159876997976087923102307646955210320037371054054885068042355354013013845448068520557194312407081371385701965392334863074115910505000345109414293931795688698046713993824167433961339615504891687132426246905309315142294179665100936674233215791655946239621188568414289128215122637954555272993637998508847815680597791499754814985537460516027828792028033030920486277140250640783405999539353047222304309065128513247539709096762189117044295567696346110687021801506101657488416437096821902647446995027677465478641431047471629887267879205949476461948085521381911773187924502620672947276659100165056771378502086516310630184662315059876866858333958641182670233895380146158580945146757319091244237438109329544606417230453663981664841119656894334615001584752743468602898409312968840915266372238888326235760427077672136320245130464099751754141140985514261948871515264114922892485312858837424478175394355896883001773138971777858620209276784884680427106826414992564488769987307822789383062810523859004582492069193215226908137474256177263648060762373030781631298837948772590556773948656113963631972766689532357600030821151505499113187055713067241421503113282501506112173819004645056301621652304518227344749687010621605220862176329696940368170433401131862653321410602480243020964061146183716618825230515196400709212603512923580546799485513864169283762699215157890306261110338119053766439399036187531805359148637287152390213920799645553139125149487399651105787703726855304852599210402335998957711890061810876706807121670574391207129295419320060899607256767263240895827285478269025341040943177836909760503272440025626731251177173294423735104542683384287717432106530933795228601846658390306257692336125960741511538886095117312953621705235424104555771038362791545878112880743607470241726129944375125940381299767844932657703824841183292349831317852027479497750495487694548964520766306405166572731809054326084377474634342030430102760456543529110385391659664972134145162491084580622743681875483682094047879891214411474039981512895320934583462740694748766594933236296934560578611583180827876165119886541883816721255084409541606903530361773416921024212381797768009789154871236567048827071936826912471009497692458267352556654095471603249599609137608595301879603921027713415304231332324061349426731458953198063597787518785798646478781938719916966631091056741127178513638280142973910786083500559274841599448666457990575306812718749838463810905138355021877288819885652939671433603669828919446641612452490835132775976770920299756532859288583120665009247342973844120465160713668547785592904551263451232269933008661054610878702396888312371350223336761886876647639226623849275928662219042916857936957634914740705555698430183506925213231349729092823680583300397840470971057270117838933476022070525667301037881604008375251001139538524275888014850054367471999994472398196384958162230487703895115903564295768996804539516004933716457773770856834310818823536587860794095330856156591075587799204529665714671998560960164560337003464940719983992058634438675231602682846267879338047940839109780590099733091740783664142569563850935098408357741979258641276151218628849136152073428926400332509898249971207160863527885329072622792916027316546216059972281935204658197834032606210380755920142433431902356762670469312245553318576188627710076797941987794859649894389543849584845363435455143431919403422630134725664269233149255280224029501266396800079480970568044780145743139907500856355976376717031322448955685225846191684687040030367284138393210555130139557237159742987768533605075101185973703839838651278174171023720797949325216802638093421590646046722474393081877094143790278453047286218364056123718800082301711957993699168949946417209002888915366377287749119959130944041530771681721804925223633518310212645288362185989025980513809820882255544819516890146369295043516152053149385476165131576648762706393037558333700944129016314940409141397138991007560145310637086095728310702080492339537254703668716948449303002672589356704993396087680305885976602265863434511464551418112482350688710734898074667056656665100567118173901626473946994236881347700340686187087323661329281300885429107059421976242940431483486203932351523800188731671590295065359280700957851054538711240428735317150238147212675429121131769471149010234271449961879068909262820899658388192458197383927477780910368910561744310870151426715253218469238883359815078986191783593646006067455789115478769769320480043350621435557565887942528176240810191357625374988186581840781700254319753667071982522097150641671598697170391064375450577624791187287900419180003671001614699113307829729808858004770556884440529450715751607012946452913075925939516079440991002333688187217777900669310536291272832114927724245558383115406324225857924185212563765213022571740986872666184125192621909624937431650403597350394624625287942576764556247565646763191471560016960565808774701696440373536756877299602216870942370057319183768562172257213919017425793900716138499761528385603427369263377809812997968955453754178417761332450363981297868831988150707690931355332208353993392438479384893005071272149948196376700741920617986763689397221851911084927874094810668173617489851393940732156284550068719470731952900717790686717252999955336624869372337915303589153917881122041098083264475615410711929258188526372040638111416021634576422086433945751347047118517746443274133835630602877621360074887328702626780687995879672959374671014203575134772486891954737969307058909386919107435442103644233326794124328756201474421866502898488881237527871320059610522025495697155666017589607286821661251789321135359663831118232333788961089778612191684670419171041757315348281420877158101696576860905918365689168156370380993942156444197600463451740996747453665140613592719836135464512165906203138963584959212947091346049125369869202928349291241749637807075873748172499884394421094115180956619202397149997467514058832611876763216754977593522980972723560302904339911363678797960854629621174706154177086117329503648287082209931442983810849638268040503816706622718488033688614583901642673600010954406691662710927042469839642086308516502148094653954219164136731833939729747040926506024480877512541463949558620079417811192384300475269522343312854058446061172490589674554433122348251199718703605369560750389163823498027775213660187910355857001867078272605343120624672833271018417060848428790256657621320827268292333102812712405702956163527729418034201318451903077408183205749999798999966456534647597571675306468688316499161750023803330082445923968477475446710116228554858390608489615807766354894579900992556570558315803894294696340270744888181386974999743415320544700037546649792075522813021225095103559321182921314841800684776455809056030205683293546781641389158921536247922069158576161297874062390792102947427814823829812649257359452387081944561887877354375782196604610121252454174069222121990079855914401928437808282055761260349383631228245922596157675044343633699112257753745454263989079668705952524291362835479759213593771713533931855826014533299360665337170845873306558665916125840149181566458241641806623144085745333906955396606305251968244479958840279938494823366825931136886242114123852924497266805809047236278731653100012473224640715069694314756287630699350536043512488465289174998199063567218704514255503641557930272247851223320742928942503420876365010169578781689956347973627803549397949020482840998882714219212092600725286344301216924542681173116283571700111157563611517110434900348756526893734382492351149427481312464923011308054967997757859192479655971052427804521317141363191098505444440547782320997799986374702883303044145758806299495338239940073303227626472591188444501820386730441501672368748055360677937205941122672073230009476139562054600623353270379274954784434413580203569821477117711741584277300276718081210516509961298237069953670242484680264249229568838846275500049870838404574348406713297478165201733465350538202749055906463751558354477277480501464256632273008901814256034314593550394143687085513208286056242824982533660731662202996518597296899805807175384111285272189803715238359403614759828906943345349403289187408588282615762759404855287911065401646997405603329001655513182066564390698168165843644101706534568349199453247577648762726357997061958301121223461861734363676824792178147343192239819419675708807530393463258476434735487260104551342997867642808737266872922609556211762399937036812795966645001473009049311143791815600822604034554274967774858302751592326625592401160968111227432355542762033193867341302904552566410676677890826642249584545433652382602907786055641299938236556012658970145746254555960167368498115766054933164078946115640166316770554361442955154281774348882730514941156020433458769664688693841508920018688969882120551483557566072494856799487960793290723929381528961581597779314219334306686558342727612707560225924708024719677507820625900502585582691507849654286570449694187135027825496907628457266034931619526638327933463110524205272665621884236105010400620825437075786047039246952806630099645170760494152781622358423895055452042828424235324963613079244474934651822077379006873474633196771719499771968819022290896724464352952713669346631875102574804506808814513295270106320365196933081922426993818339075839553811013725133355361645933290125004101504855224431037615739446394704102354637163235362819702971151955652611751501992180461644985644703615845311469869586198833418202569022531333311769193308488465232070193044136576363859846560190233282428350011125282744943987860549536530099738922454802067918134017964911771801156131521909896527068632029248026568070905246706447181593605533479047550510711206656566953893744140214593772512047118362485737258954443652360204258967243228688765706350045427932612163548208900034251058315174600820818761074439286591553436086984687797259649664996594486757376776835143941456582610742430457812111287767716731504036298516514228536468876326075246355472968569498852847699981396617313506472637455952746238812478298610770355830523268692352721159040697215670955544686701771682011637385495503277543824053655840934846394663103532294696331465101994003973067216898716547843873112023252936229823698632130944045719109042511855973580669527720095597285744872015025419274167423418703146655072108611540372828357775443199413510168016356774339074637175105012775714063500168477992234002044718138416677703511750057196355959108974768231599321848827880070263817106646045232897488426782644140825189015890338977017273285262257837765528013734802493109168872526997876570348295509631822740576584684785625358520314886924222207996032119422249816007726592084830614010719197924543499208726356380027627443407571352370973505160961744621759613566269603698550787022646834919597668350453716362815936299206345747301933693654647344954099863989793870893843738026939559156885609013576041561210012417026294426455292519655226046588606633302610023193167680477811851747421358902898007775037553692998707430029725005659985880628779200024774709678125329585728557561488503971145431478770430916049688109222082606209003754528851231691707271740470561696826031462737350300501847041319351080883186226152699440360940886306464397695853149061140371280412083211669432350839779283053626421166700767590000442684205236547710915621514290957310394983346879079199584166142126579107997098200092349626792149546353184563545340776200818604227852502024296255417273125019676120638346109714616759189122704682930801603862914828138426731450708647676648588542338763465124540012430096083327355624212641852715581096893103925110205291681147766666106518771303120049462568715627705621425009917477513607538474201705546436958732916985662809288517963317060818767871135742826814125708224508655298046161347607154708490961621101593145079687690543199155167257841157669459272022316269056447125330837112244023775535470873766423936397010730572587982819087007714823356980178209437571828875400843921945814250986553797336984999154469674272771809939823077237293716038339944950166613627229490771153535006794238155353981102896859970215070706549395421607994784119027361150668643922366390778168502206788651109687937949245376026455404747723964725779026441949997740883873839743784402149879500491243071059251362133530520928905469691110634749365633122309905064489432455835631399206136048136259365071961059126946413822892644793634563850140751248167423019287867412647643964229589781338118702720742229955832728363495949575498053636775406274932785348414147450177823803730220256398632940870322604667088891477499246544807496648836040195324521451389048167052103964950665777571230359130241316378204236988152979180758896556602103296379045064203514828497959751136252293839862054592873425814731407922645429834702732630115718607908705294335668576312808048900818317428181072211141539255624147332938508514528064998202459108551800689120075191243559205090736697454611401793332255546999616840094368069011648374301771333705782253390410607924000610116797598737583211862774499193903615675355714615437104383875834260213177749924181471772962456821033507557297204000521562628088808617418772596604557285426355003096929469088134778384886247179330771767410414762238700807216614898162626812332741445048040549671216924227471265404932926447516479448487424979236933415677742069070177238396186208899210514905370948106836198686908630691033741168649193676019632640869748876215221591844112504688793280382035793598972518085735886228805659417790972139863873190292310478813033456604903176970619912922505240630892951324958867358632696177028783199062742266435359733566679147702518974395747832330126957340523290190500368052824654445655101053200175197522919690855048906023593773759887495436880038948444559831536567024153670426260523732194817361018699674348965336468021682777803157190911161389456096890801469026517591058043863485950528004296534165794104841441851398239634736866353767498277971528163011174316243409724223102557191695594836085370392520344178187336029435423748597998948131164026377322407055195487857642633401341728277980065849555987925966269767033852492857652514137569440901502253077038120322907299605716654723020037316501500498789222266178258724672877885458726860216266050290611871737518134362845207277293443804586188315755684863077702429895987432231104216894804836684870722667623394577699704193063424801345114521440273887071435269155675545531396925608533612877315373543363062013197611612491479636575053831263982567449034663897146355196243807335815171179015601402160463109057072807664814419007094193943491880030957366768660564326813227576149678403769856195890053931927405212880154532721894308107403614123552371195760112457537024573317571918200648282499145934733981736959417687336270966886383373331083988875094229991167158023158580449171539168559226665239525443569689173807561225453359155660300253307233827594847703007610756199702844082599118348228044389132557787271134674816864662827075580591557693111130631069751006240191530939546255295123933254857630106376812669616495926837138750001800026226101752211025068270291833917642854870157238709092227196853788946464062165711942745165540694594845409950963813168394064490418553792124649227462614103424340751146892911448535733680512934087833289869098641184048687097273759222125139186806466590471907034764717676785654242816808873342449437250092223222032101615524294188715704463289331049585228801022240279216048444789560100059241730263657267661586317262259028395369847401254220048674725895848949395390467463500745836269237121252464671516518635776783911191453789334905488785417403765215524852108332666946381067624167985345357360331799888516649670521000472111304104301745626978271605332878263605715279441606752930831515392756351319858836413803981070630792898919887912051697713866958854630954440841081950786530369977331124867475247456714951281950975052404415919226851343501310111772165277321724006807432548515900054177102454739639597439518863107821008837156352298764081933244890604064129680709502400324110328521919716839352896960599433190602246012957967493984843174533403684408360756808224015377748657628454432253585906579245016693811716560848204975995859310089054900711130035249452528862817702573576975351612285452725454719559294373437803390020166757167498541158693586733851708539220924858363063128738948853540381920610824306569182683965658612022103420483466417462239599676838817396670056915987621034815706753864560408570037156303613085255943823564133798457861126508673190283848127069223647246065243772348799401421258833576401493476077411267147924720987054684913941084407194032096865821609954357745557370272757910508938717699665792188830496436544889815907336304932664123716884367950524138630335250576732621462182257751857055468316340392735000195670553451945500339237857472373343913116475340686729428185563163668921262627052998599066325522001189839706896049544117004622786295114666341129414070204111035335133415330680255340891757871578613450983520424078521322304527552507868574029905560527521531970253074837426995299917399664483214375675914889970781999561875200466359864732081971993991806770597626100170939588796485608283474076511216647364074940507936649248704881314365625031591598590733534785484820086960544602302012149420907797046959551146054782259719098529883421248969550025833924354738371382795842820498999793184182941714923576028191334533873640883613817611580372390624158530374304155381237544908538413019496867236988570559233877526216919026049163476010513900154046963967675564039026229045965256332222114156343486330844399289484282340373008223220217120592261946388182913608714098441320988769720725381871906822492010723233824346627805792898415172692304961993808915247093780509286364565563881299987450782457384800880970663525524955299652336574258644217278489988042272813550720602837255094772248363498778456940723193250106856983656832185791104489049515419916967973171488180384427602206656728097281270241567048862585074792619807530926098761200171419416195028453154929179782697321020174241626170025290319000257809811926705284524920390332494427748744961754587854767290403560112605297207323028320208843813575492051395587224410287796979225297479199980574298587949816222488303174256164611352168589935758963508140284840457599919448580211585240139244647910076734124142699102677341656665744779836269002205186480635861263425814505519406292889101028997074709402980438490376321072997171044595344295265949340942642285584662092525198478655655365091963191278071097743603945961397917784314631241891054382313840073611473572916328776716910507344392247327160475188701523487555301294608613611657647900770295159831616800330847040814931363052458103861528310097255160631532155970561997811679446562468642022627309332735855395360911363729867060867704741326120991485931765531401305716254502358376581508518936514648882580018128638264344933851329917924847401657497456662538069609616664215024557717027474165289004425473463560139621265021516495501672275023586863136487971971924891751624814880445071774435162783748803703702646819255259897336600429295736266159284615977778357834482645958911743241318310203059917058511317524964239625718086744062228237982780204315330241339392958971204041109355807659619630086333436446864849587079685349600512621573522189622490547248757928763320393956285282574281151706156919032326662057877001717128301595434803389573351490544489247071220798072318322622380675309794735913448804723326074101565064528775678422340003642097408778560662738714634414230189652506824916387688152288151216615644261910150080894103294777298571020803516106853841742536021736682091638953953335011331955078303365175921654471470535738157207104216705534476638981290767418760558357356730958289207861786540743934438135876075305861784380945657287012908716841381912031809331657822161749620726372267099481923462346601543731705742849032905493813673060226082276041034024364993809733503910100306550941240006193135617771774819746118845110538607081226302244481742146695453511133635391009667024607396208160811210804894999211189009002255244091485961017700543590649463828172217320765581224500562713879809369038930980939694267460041468184026694763713816067138224889875207934724354614442352430793900473746869762830865289314603673592949612531643709622388725747942171244135964292280633505054750510165164525430270425560515704514919881450942784867788818793218234407333740917089176785405757677972589608299211184560892031874607860668314835108395299885636997840317804520615987807101397490449114860937081795598464411851676624834337346520104829527696706274947626559816069930098055112721433828751222273510995642470687520366066111698113649140501172636216348479457514293482823139570253943146740716241103430653509966748431183534238080824209536959019173645909836648765392347734862188274398271937735454681937091556693201329378671852419436328969891171685757423973376393508733632801712809604689615034441675707045627607896310383808900073773096466453209700106062636158629509022696129336893966949980890723135637864411953883088892507870482936809383947116534459620650652392009335401550360182697920507135895271652336842322268979196062803569276270814336245845408613875637612901503870952738536887038374193659883265271571103582001125868670910390614095517341402889373033438402738552681380712112286537345367647092107701196220685473552215778013240990721648561087588058927059723542660745195407022807733730280888650946074805961620284442184762485951072260504246286554780335647157726709950327412253336088596265924160636935736893923511735976192750625458063863262259042805180663433294919665857384730419258227814894706084474047436810183203216770044470838981919273824115555468180100081148131563198002430616079577387011093529158474354483471563695853289183775320435987801941037123327522036096156669894933134544398916581094927598526884081059569089154797489689812894611795727497256533639903337243178495106662838712697051237702051919645732013250622840211812637903959553698268916013847408186133787650321175308871564334716404438526596529677342391704355516824732838462961348877143345312242209696040887982204332228609102986169467814538592592642715573401251676585238789921619976060303521786290328315474622247468816908646500081820306856369142233328444954808734234398347861601179838214980894480548475819596498903354301074170489135281870840250866608482421641226643657259030446054504281275431575694344407291585911399151930451201664815604153487716700633514762746906303086839210217863496891327494103010292937012557091754407448186786934195231760243133067291128418385754744495132241484371314199275168543954126602475129641646329408889843632668559428538731707811837912170093751981440196155597975872159612526708676266920498330597215899582946055194950614729014913078208929619591702181647519032330769597790346237401851261481035191184519064398501853050090840780632100386383680128406240320444693050260650718412124783833959219302125933591120761094654982218476192821451077178302416827613822710023944717292582473598814339967058173294187038215667757826419560386443195277886517267276438029937566857542285631205309890370711210608294346601804673645053930493308813666680549194912996400987255067258363194816773569012308385244042288754422732555476537447865800229788052215654472218543190297065800393278085430111534470038730427639189026461566837895846733597699528611021247656401161223912150870321811727441961660746532945908622316489534444342021017268798247982332205121474566984524284150132127440813801572583104400590149553210166196639551036425399096425554740248945905031515292000808715513667324218361668184598779460505279245103387543219085585194173968829248516799897069367204870054941941255926995482674777659211439511636756722926521887105661081377908919999341808054112426979539193018266573603042171822763560826393726344922624396933578850821895517947861852285004888441634962548345723883785037516390940269725351605218234472013058693120568357273484370726642936430713528209294041776517940510126299675537947475352524683153211607024069549765499888470492292552291927793612506493820945325532852988030522173290359066734795766781967275818312710750503037916420239062466031439973169823832027557095689126942917929298915532791455443170870151168054808811648390672924511569979232272681600058518062238578603004787734752258171732646301416956471429937000444963625516632739373853502435197901342789403622158162383871473924811369674124931088040654167327965261366351607173050757994548675899490005109435266221729771092792577927737195444711787504875676993869186116474817252228784123414780067158468029510469355607912533568898589928671255720386083123964959642805396540474479711716719208937516898634190692343373500484313775383853525461886427732848320848632443756005159113777009147666090393069885711414465518245877970848342128440042037470299225582990919126331025277630078479360096957236418491351199464521666964855791673275948618357713709651540106455191713604226690783430990726197760409991684737139339498858087399921841814570356370642664819621628344175180841198954436897529628580715177434794361414447854059631704835504128449611489807707613176677980557698898362070392892317553239930794945563497668930519506933533682368957272880996847634686270623561504843083319589564025375039896029448145298300084201006359680640140173603491025947008375541029119512339246631782882420697269246754107625864953596192617237781814672590610185520425156595273333908519510029719252459014523439704448407500040015964242286457330979483334810384583845272072754071765707995498677754656654508916057373012295713341043516372659519579941373795211168028864840200884800343332892811482869852136151019958912241354600659596515060520421436885228498639748603595645983488297031453629950706255616246145255834190629207579659641023783223432772138502868351138420898216333180136517127885241556693553068218859151717405093538331857477496997815381864682877484759782376618186638700898339515778706402584910004233004022691847414442000900979853430528185648945311777299355649274811329596624005967073711456693603526767157480854560069403590721509097760912703153438547888981973808713352011259996652409834258943410079147577424786115855555502392032448007179782263035302087446909328425410550479429956427906430133675273193354438698323945761566393619870111996475023894073238952672830005217298089697995413054285527895336871409484171202095183007685964805332032821563014286196312620562082237416091471636588717562199224950335974208808719663807119264429917714280896234632861397837961563331056280470419765835674329728457303562534893687618884676556401903514430434076440305908709425869472882510428189813580582819800566412039621914955194756952276736160211801761492838309373687454778264458922402176688815070292140618256168433383980598387186047604302549579803366593492071220206123178887562099236969553446954418624250787744531000512482325692443646341880820620788822810069482824490231501381872027705898861294397797451804874778312577789688384041837819198774857525968828732101296034416762054500111682935152589494051355581787385272588941252276110765890796966627297508187057914990872235618937669194870978793771402434526253484985869355627033340996925878863962865492289492981978369479909951381594991130442890846958381181193744797135442030071140514537073618169661018278322979331211097882797675962670099073935864376203824061899929964769897525658825233095807904890602033885098205133447099170245601762404679574776491521521170781027379661201107302815716533628229313190000120700377493246884421327816630662472107190735221956963677921844150491305320735742514935399573921835404015225954425840408556514880606172240537851065016806009155047471697201653431080746988955844123071456426896764091538568060367153213972851265016238898295608910611005735667560110967042547283592431064073713680866742472899347575880944619622020532266722843346617335702003164121281722043268315274064349226760416427148787538076321052713233709501315527094834851090376719970600693326045512628759235722863407141530435836739018087304506340609724547951601080920455413094356991717861578101539746636795445868869834388666358755029947056478580106185717999146219847316554957609456887081353809129237381057821117478920810065302392950381903005542080491503683832049208928459577799177325834207966017390167283243092286269466032711991943569200460823819681373050480791110444577774290492290284442872926199238187857130943714892287784718830492037671902483506093606549054348818549052047421076560966613486441590673398483097004208221168855102408878343965824381435228486937553454498887292179863234468969855191647806176307542825402728442843213050891598739786590757843955850290918138628926432962694237082242524806554147136263417875118816236742138215354689862921790242920828936024903300165316333506957790451639263781165625765522194119119389751453225878897061352904604120141992462774586258188060203186516081962623156281144281743291416458373448525869605457656203376326943522320117630882396306460632281394711568496472841716396366930775530873836630636509217521357855779599215420076665630991634510873875278877243089544509538699625481870549066660335328219997674640868875880851513511821497175634749795382704835437855688652023116129856876107125600227399308660146529821572398466837817980125706977462414198164933412878849619713158572419369953356914985659088930218698159101313907183175503363219603976916805932840036030130504061924059367623837426317404138120766239218146334646923259352567824981871929301837413570276399719411966843013541161872712894108776970888284096699777966599113205069262650115564320516161633229880992534122515670853811500662152209072494676333939127015703717198900181319426643440327618942021117501090187789898157194021607582361331441773941907782054902821496182351354730753577552017766957560946485955491283957559359837336824670187828788921979116650996953315215415319122686826440016947061863615100659921699042015325538157045372276666028810240241415977683892511214453667961623891546278628704218596573654458280740822861886386278377905804111226765856620171483393895033896588890832279990955355688668616104601088115548932412942324510699167738807629034771544274774744060773845161129675371362508585900285082811375640342952763069457537768646119081233595269716959020673037652251445296772642778495759464851421142382584100008064251732088946865777538713532667279206412367126316010462752175171067921913609547771193567426711411941902314935615584774659353059189707215711308854409543760360394420946281728547430477202186661438494139003702529071956780633410523587879702568420419514799852344120927191348022757069913011214403343143313376511547036260625196962435266083203547383311643551169769321245923011077576306749663767821054031719777735527514094802725701264788029995171754696050396733203624895445916370335505988721210435506419971897168206309284407236809087571005456154927277773435096543104511509144673920864276065662238115829488856678572780471751102299266334341515817205039776741086936170607936032605959828255986365365848508417890227887110730441221458627414783999460273429665111567442618596289039584683702380639892198538564937559376261463633540795119986227385023635934649431848756786152484669693206595511722748520261188549158441084624733655340109767466388583481557720529431683671037819393686022806833544886154854920656496402850209980800582251937379969765205675049657286356329906714890992307123810189719763107014000626370402002418038799093809726256107372669874737189375666776727500571190991126763546509853315865934322421241245178541019922935384562161735854550150301726535787724249610898037901438035325636773823291361060319970947893699708400871355079253773217068599116557478751817532598960994902382652483698258363191880417385090693045553016242350902150915014293214074116180844573830822182412855120292550403349323512654551145701542203711747728550456400062184593770875875080737426101181743207361456015866832363854114996450473560108507233210154605666023792154153939233348549308351848881800300080412062109099964169021288655965606977431516170904106171470112473432008153097574537449808414434983529033201370135061774856693673553126541330096637704542934763793856202110767355690754013722909713283892812584181027709777781620862822883866764538178049465588248591983236828469903561882880184210896619606406223671865622553209769506328763418377059549490071627024645672707737014991328567249967550287304502781067841298063901861815676240043957490179139122364858985093572931955152295293264278570178523347854587570095125804051496877577737356066497052616921467558950342219827235327103977665354433054042021945391089295571426667963043053592024787185705957275408293688989620034559125769093303142822687949588818010240957170656614536899609812642634664579289894222302295088144644862310916693599899788583622831988504645588351118770225973441702861673430897837649476499507026771236148635182579454588540917612615505611325656606014230588753880208270143209261423002222218135753109318537747474911548144410610681420167498911337097133446122283889956036256418139623977675150287284036116304680357453990973106874219761472473465484091722812769387423970168873380939736979947269090623326632683802432604138915487722925214028538463206682862943532847099029061720610531938931356513106876921873185667462873234032878382687304912959496847068636321042567606868149096332488745838772222164653696285774867746259968971367802848161366465207097666934292338236207904484064392221204742761102009954713680312097485345043981791272980784330607006511190098390345110334594274487897346829836719262278498346598617258837101426717666662634654014343983281617779383483989134030596442194412674605171162268096867770619761242863313494080361658714166655552536524502720152438996432208702186642033411282562828489911339734321530973076187523535534864408224577343100018590055177871116383779167901366440033892258392930068724043509133720360125917565987362448405864641169466629781197079737917077860981028274797242500008974474364110783881430193934027286712207658979322057614739890456437667004002400141193947641961227828582467893705984231987940969879604430188886266809518688052772810032246339192712425992931791188282321190917170300546521199382315057476061159869954213274298266364378542505983103829324569034158525962481232390370598797883168736818168585976600675263292915091080470331834105792100552984532103441954666175798895825625176983008705320774792250870360897335240930799884533554907147441880719558778679851630661693231746516727484665292691715402155098800722451692157884685941245666215406322379928394374889257463011981119943931688617320600523680749769209067262144821197549077824116599770587320393841951031144634915373934713611317299597844718857080547525062297136942646474096992798517995059207765181527939060713598224667388223742350233120617937154802667170904608224544358097892890983424974435777476602864166919397515177434083370965300007886148969130779436518578853295089752368659072263667083020567363692430803208822395190062391364612219026772938675960907427094512854215007446003751093224354638669708370597506695306425087571921965782274163605894688750797282988653078464452300939797936180176366973760778244579324368796762192335716296440719309293791154011559074721031419427805037865352807043593393425912732660259271597195109958669756501134958465254929547542752585809528232064177171573958389685033384122663660646518514120939748928082554364317807516559395548049857002517811932661148771004955882801702888098211969859044979695539274678364549816595995147405118020410966214179660231531379316289765318358803378148614201367746897799491947144265587568784310367880399650628800003634908751434187869245733180258775171835813618574878837236507650377958919241333835544946103555305181739200585719916460602835115751864666312732520032314507381227354291992652884158065803271181864914406138936858772388315393655027469656242724107256608093268571403979829310681430863504592336005691716444708251523909308921586920452697216205867996099308593571110494563467392125209555063014335276071752130494802790721062960901870655513558337435917081974764029181852016326127542450863461585678471375162373776396993363861190269776847092434680663607739281033444182008224424083733223215056412234574990079355715395083744245562257288524720730079184816672826986764114711470529912889650368874782579517913907316081525565998481575764073367802557050712181880932283987626440857663301709709201696974369219453819952992919796189074178205532610285004346339354739743861608360395179338319916024730109389382715768872636416153346234733198723808094356091503995425685056524122567033087150787521527370624809970254834629866192903750828474878433089592796336926595736742201007004925941809125185686058514633539091792382908928863006757124932127523920596187687977370967432756368494864814793025952678915983645680978308083119654786359835337588744868524130651190514751454794473644494273918979383183357087399078081911287629416534228366808167879155918971491016933433347874709136886593625586581720061153275106726032364816971781876473131303687500950244324438845556915756687614878536504834515960792131838830596078345217313848943020748324159374742738335831203039480178347523826081031824979610222987954449429561570498655939394432204387837080467562444598069903497537480858999979967908648639713354090281476104897568613219401294496043020342719205368829261554905878839695118948017389591525803883960883361209348202528551392630388484618568040598762412663133200838373890640676142662981505354676748791456019125723710835794668041460771741271231762821824957064801445142233548102560044586967145502180851393119374464678007923973519238004228165894078824201549890617507980654628694915145691545624568576741311163793697236800121145860999331756207421563804425775256864916453635655923274043148557374093621790279031676039182605633051051885719752532183099902215379916265824564271466803471679247705688977885264734043955863617949912075767561408629063736271820434451981482561308105685579175713713942497155733386317417323088438726276919018629235506766069356939987034853694724394724851454441759924322276142151648961555311366577646417420629973069820355063468953453854027576968269203554639843293582846284899782377666929073706812784929636198463144458100451959707120088775296426443153301538096561236861205293397547224061380649074528513154834249360730615800313625548132578484091248685871389465887878220393676759144121076423886480675584799346917920464402097394026357498851453746150980569624315255240051021831002995467331732492608072499966453842519419232321071011078922619807088200969327175151233050582788429854029969432858442996781776365941024496025598525644138972947656044604913630923857350199615645454581694670128958930558334847492769333890015567837446806336626838222779330956444979150876563696495544159368385559067933102169215246926644018671203623759359352107202611949949790760504322053274416436095045196566399252321127822250041620907960928153462946927459304706942531496104774637535991369331914662238050280147361215248681487198436020528299942344852832302614443311718955253393339355398178660598566747189072518080343143968836288916506185927355375419693495865406138860456982609504207905974368154245783805288506285212554847197046709777251598025607158466894982833783819846510109592971778750544371138738170376083059397506196603168724188127411571106574204436754648290144597566626366403521531027604236600384672668323968877854494450337375542323374716771950646660899953130198310603199228511115171214202894588083629805133629972521464219225042389652028929165311688151889020866681426953135307541677358952684441812204259500206672505246969435109023406923419123810446314679420439869905746586747862504183374066242740559787781511102538486489219859559159351996423175242674545933176211532062786556489609613841964977993727273408613431504850372099221534014108054289243188728229947057913425878857338550196871438280537905008099536140628706258728758735257361644813467564558975936797126510510915799115539635551099852540222910200954325622241069366398243475384656305784547254362076997240709835164051379634635659629907744060411973471727880698663333012976474059279816948429537237193945925059658568485825057275035188560880019565789393921546936429232933168448749553384723074089956288208111995542201798465042298035460689294627403465957148811840702191219584705335920828016021470103806948160647433748126974398111022910771053369772214964466449302118605578736709369034981129841276612056141356005706284805296526342789725928823558049675036072781227353793874384642921393660052136857797484793027307218186219438111386860719070869205913033989044996456515461935070830354323377988387219991992565090655959814972999764150263593590635077186871305781242912252692247088435425944614067467830020268900689662173108353549017496562074577463556856175160612143363159132220550060695145774114893475282582501621954857322980635485505915555802545645169339125626151495688427282370905165587496033183825190782711470659372934259057819730110393260793042536162320214599160709529999032602295381748719916393457475898747310928668490594028043791922400203455424320789302168020492780826241471867851845505184716419567612905775370555573115261753900445299661654043138057904911619072698444482799236350862607310590592207018888109790481427380496355017064192780917580818331330780450827056333725475303389949633952479100010918430064378436441006424759161262760417516533858400070065916972883800176243516418038510033063972235901823721659560328171833835362343238119253108902768651385199923549360381569925475494062373174380422318891679328725631419658343627828681402527378313303535747893399526709205856742680393276851957945163168663290420776119153513288594044847192458484301221116890364465589070067296204902000010765530762922737669097244611300319243494984219427608944819903940099344770843043294424186908992431083380167749633668195925478769542627942994741354397903464684253504167556572830229982507607984523230198266749171944378993191710522372943739493941174598957612104162005111940882267660029440594538429718302645916075287918891393976610446983942872151902340647418829306615097854300981697369841542686738256155299940364838864284116198106900796236626324459486865132304365615155879899488904266857017455014984857114881029302716273860419067978370879097099871265313930725118237507145244246921147625091156874580518683826632143993818684214279146954110967418127578985547615634504707774368012044553282187247580826061746090903607155756410897655008010895756563365001724287580742538403516588845119816716182868628770609176649147656820430058769004491457491897373450971385045761926790344032211693760677160440333785160616160456787431411231123188446770196422203831020479972389242407582790685844639100190623769003715233421851440155874105106657033696354053036532008088687872178843084538819336034738266892409485821416135106091847395756782587986057954150559702826196475764466692749599924482954195717095386226215994991651913296059006976290445842721099419223044090622834940409911047674142440084763492911823342704630687646067660129390764387604175861341169645297526996440869916963796007079782764043685372113676813444073212466374569042189422555735375971241007989404454017522119948849958893552665418450744242581402495086810263987532985392882377997066313061029107795062544132732579834158368161344643502095579299369967818817565950591294681498567870377248497634035245568642984622031041604117424557685537515008029817353519759628679324713450014489224146932262557287283677509112378118641481979645119702827967665702219173009663497215927549688947042311157319650822425278969468353805610823666084007078412190368702716200194063600000959681121708331042833774863229729444460486600236731390996391554065752908643991771138235249419110750528073622335746645276989470219276022443700269134842794929318596244503776089786758596603668550479024875852208355643364705092312514560435132080351528856805188371790792530711647101325422030616333617297070904831690122740949426000001454025542529044059444037078525742372794685554714901025583204806587812596742992542885417552728214214180076610828698805710440721088396275318769797211645317364887944451190787252497299053322082243045471270267133465533384768603706659700424310740503699219505355297611465595829900553338535843088718540391055820676069719098433336758378058521156516888446602714369746811933510244491734499109722277032534363182987865662181388306668462596156613106772741261947389940148955651175997559867366623935763123832575107613348226370576070830944318953079471267239193977959859316914217962647614065071671362160095508653532925005104944527413158272970322141315814080665154307098931720169319693775195199939215729253347753954604582400267203357987120556748355151335645448628841491628958097238329298441760639975466276012563020094592999441729614429792424139584155942190733825393001526524032504496819125744018591111695786381939991479579303593044796484286802764120159080187283660208228097936929441867077456996199391011360911978841637596770256427362387586553638008865125808765588801616451782707201420049008464902478957498637822204447543551182322232635523194049674009997487420662431384600764837007456745277268625558161283165115175883584939858069968102060961366560508437455152380805960475199853111043669452940502426293904804166479268194720532774075071087563454729709495542590186258357782582408226605661658656940051090811405732959155404593835435293937149543834276611025483463967251341121789473504623002346180725351432514245763225969685882180086243618303477570753387778295722853181911517832910109388438885075275021702860828019904103466345433680047899495717718068165914129565487239464523815415838887769038378219024074355899484984812549997650275202080952520634970755348267270784443561523167208474277543278792458567182998669723687921971855897595631321195175428288104222674575249798053019206458129930004339856414810886212566667380735967038611796671255212269412392768262537243556458059905973015707937252283271979244364486760766361882383576283261195933173587649215539321004828911284224714589034705044255617154266181161802999888125684145039421186779182462088282224964148624542583929755557303799060837789736798853462150890971533894674418081879164802827818680049257421429517826785254900741171915149952349467556613357010471480410320253853977714572356078144203670142436796832245706413751739426583149782168179751274564929687096684967936325800894684861685447368887566093459068917693004967331275638877047184703790743306152387147200500238804162158947056162981874212285308244622554695920951978336712545324886218083513460091932572592701627861655459040052251345767784207617474827266465431307014867770725961579797957704528532997260091239185965449889717079572824037323213894868290788804387112024529354263704109993124837308311540252092240245893699026819715774355952612102370942554154888475894849032957896572452778975990688417383248276891709184442715473643107970382644610355352729706276621574048488897280754725697212556241345796685970786950176724383989253904950587997516521372460737928139562239206966015190975090830334787531920267970149255696908941941184407510867232880942121047614286807177415823164867243921622776342720233526480571844578116262013032218349489727458161301340189218179326924187491879108137067444650940751104354259055183253546531267589754457346759969651772391217780302582231452997082714644497634687164749115817092208234974491840888169970901871682368716392890511713343976079916346224274618933970278659965390741735769398361406971836691271415785100085989991440400204296508740932356458543394322659147313230298821585441480351708588067529362445090227034061883533660303580127798513659586763765465071142609194031906361634290508684912702191240084055915848036159407064333925450258326950683490355246865567119864821299465523608766805766215993367011867696781759881822405596298366284845729630280462076929515449012709938775504678173231967506301153720502449635212093684700285958321153874262896494792005772906587940418908294784494271545296764033861980895577641174431505700474754950973691378710526370393703351942148101719208967080773687850383053940971342016068448179997979327953329149225758445649230588194169838892962522828940779732937669648539860531154623617521052873449105232671633688604763085170951332881123131223944232838933211059300667143184083669345442291192935653255827126160234081929215744921028589506331342947285518662389944151636288401899285021606259635552948617470422231429456358650175605109832561083922096660826258105044141347569107066805145851384758799249981765603016273865737703915001963750287927147937770592570209595362003474198014351839359187657488437996677725885640111714036164272786938113376185427313685817155829871033977200015519127340804718455406346523572820637435095457422649369246212936324759884517051776531460559457864860450262643854877827784887562398283839459235915130115779502365545317572649369307670424389072644672941586219667732080574862812418528480149295429794710148033801122699579454405732049159340642383376662079764997664684430809521854062888912424202046986373836540992750371916854822755479188919043048720629650836878018431614799769606544995663315239965297482833585876690024733113663676235875075101939150548393830439461445506010085444361869903915997576334318328538291969354303693863600892494879650789350297679266963146313417436652398045217975697305002086574477289545487933048232069569796743108113512997775082227235357363920364360354645219131702629187058168177075268374719180159680014417464381965937098357645737471586748634875880256526260687955017989454882525509967518390360413538688111068549726707779881675844481864019938249324568416290516180294214107998291508578312517701690643759301014610501433190630377300723618867104395684982194661651387205915391345261116216244097434978603474256584896094326293954612034287520675060982134684477060694905640915220393426212878340297321257551448085593605678070030355076531881464224402003105889860464234121176259799956277959048563213764495603501752730420234372349317766743494839010848848514565377541894008910164602992490197858054135368751987343024874005307302495562398771942483795460477100462382738478823194361428662845751466553495665798298587020723248500502104006479322519157887733102405160185360619185127754562880717264179697252196936961651115177405845082879426715666275144182560310251021449585721861305383379114075852372091073394290278203004972021967758233045632637793407960988626691406648184609974375797098351378503611360863292891890094916374219284566392854417532726394678935122350178830079011602661630734361133608127684034624609252532919658888111834619911129379240016478484206083500510263026990915298482336329537229959756828087258951056091603054684266067268374393846636728871200556661050166184176997376546303843847143768452979880182400858057359253658984385634197786660948732355040543267282667612187432901950876270447337561556723479692587804852215008406927549606672929032649070867717241151212401643894956701530662099235992857461409631496797515061782533948420568219484053029619739350615225101462593225319688527874771348436569984077381272130046600264179796788390147390093854767809382142845330636477039701435458255845283147203378646406603447699101642247522499410938879747716535985814301535111621946761620577402966615052226446174477915044200785770499120528628141026761431695367492970772604811680017283274963474942940965457752514141270227377147930532103397650748552771765837341742765351765819020506284039929083165118964652476349644813227021617526373452223696628519719226371230436798540521655108975562350147949298665406609835761144220327651998151085447501050060746786400834811557092313423013937130588622556366363281858868749977079317184383028064591489465332907195360560367429715871940375837287530888900414714066397055026228601837683821994213690357661686008255606273962980933842726441165577641636143730883501793354873616509062508081216238874519425654552559830487152437585099512427832602955860630703847716527680750008570209496973150563422777226419345578011076529133548350215710554174105087436093776582241194218327090485025624644136567563911216553602812401530435881550231320328014533952764237701117479266773161068104883951742034980503973189182457505182733477656053391771251831124073553115395277689911652928250613136587754100691605995945377018974541289190334537887719697091273609507216168122670074581134056525146384732642363979432725886708384021570600585694760382467664901488535456646684834823985974905538934715598179777189014910645140090288798040815529231583748225304338239284274665170198350858142997752740066014674585906365623611323746506436088997341258118623970171749424769679249428554505272171427390396216645391944371180139950099176050947361997802358953599443462823675528921937366084876678117417320896977398515156219030760068647139490986425398394494793083997622705556257379183574624370091808487498583475235831885850357437322523173223174504377089947839260003240215263638816804804336397815411005350935964539320415108836296550455870643961976228075660744011161684187930077586412347966912779248848643797510197249305598204285276318147387351512432846974712837613614955388717471775376736320706583287307912260171747299913690434803881119203641774908471370843631133596256108877241676212417938648378481291793225763914419669390408502181483930794967906928427405268740365944865176684244693019487541574769046608678815393027657742513952749649112087015005541987293114969069220079350793958242622807117872996684997430531595647091344739320931534110337189189792153190753850711590298451460297328467078567381179062299690974334171729512671654475890174284645373104648118359188893537516002160630052291060980674077702326806216256174262882613304067089777015295842319171904832485985403570032077732685522612102216350833210534378146261613337700133830815889618849434781121340301537103833806738340534142674049933610698788001092251594929080140141054714428596368470213188265635075286087799972538776744946884597600311441306650434733713830644795120343196161528451435411683425852026352576206156134618742862201404499778347582683392648754840469756390124239821219807241400808377271249283254002074350391550231048548519374948341573665797974275160465703008206349658439686259152424844811898645215634027737203657660088213089862455695258550028480531994234649528717179853940158112215589416699498837313449835780144833805442102768551945554574872355128207101705521018903917263860307688291854900555518619473889551564161003363081301011004068251650337758290893519320988666768519605950876996424818256033409410320629781253402565898740871340813413331611953975509762739595447111961019349030254304294910797995511285676213044620229455076356327502586773949341864407979230535302287714859300422389253052191540493775550247677280768121581369507056988200186984634853399131718719917547184717446891844188286495315652527037994565459877591251407286996924160460228307970913962552069449766961578689958561583817957561774880199898946088334976409483947235152523878723597131248718245921644398852740765926869156188505295958713971329200683341021526676574029932123548181638057155166765261773454829827602100496994881221824652582334344557417175928311817579294165258646254676171788886264012336865579894840776232816480872679867252949478977605853644329952879363367267330571529429339644592359506774191494819699215102934206757174340024379529890755384516225678145360225372790060424491129969179122094387926100136954307164579366758255886988091609934835392867124877269980122940924781461793122687680015138541200761288198260267043918727977639239707312189346898713977634513000506334490719098926070708285056658329133592278340886980275357471408474206768649414969341877802955382489733387908995400479331642713668883105507672000623418551271528449692800098325646743043232119302938914049954843259311351895194684625065932302442922186845313475453737941370878527331881303075122372719466708998689551282375631999822573504117562325223597144594792142554919020847205308472040480895311828675952730633545593428180607509405329128898857884722112020980774277100979080831325335834177387213401815038964047758002420021997943853010638990787393241683642515585936791997979337072135847830538331908408819385586299134235847089038460780962512965599857772944561446917171638544370053733996283588036391648060384948666708945441387615513581126733729390621437348494423167791615268724714852284956373175822488975009847005733203926693617859951420458192171003660552691723077247376329063275399546533527015442535081384752994791361934378714170356959920196383294985952111605142748998133762086523539470850539226806634668192905186313020998971167802280758986259405847795201150978273314336780033489459247552994304430746466612731372912324677559870170542660502170090756803698313412861440686054349593904567740121988562538954009358633422292859013812713550721790816795047105469407718690692899133582776459232817366859300140984729065123578249346974990466860714549551179330084953864428073002077388321236376257887821093679712278619772434538757983840988790964091773542668437633486746390975877110670697516319031799162047988781530632345442847502693212356988273283055873898768299051771942410678177887361033841753192427906856388197894617328258698110371472673296364473504880772411468779257444368555592171087484267651940966908815068283561011397456325953570357310178131896987806473904941821674707664929026199090278398455325748844385776336750290446855204327938912919716262205611513838915638389166169131683823805197622877387667632825983483232230168944960254462657657169798000987072558792089111981643447269147855859579976362898415549573846183784686049157462520306158652006720747432814093652740798298641252885251155874893709379981236728576057469780995549221359369325835353132595679070364522277176777842791626650535728945014040701693598062717083211439111605930386956671748776218895781033901164688281354346114699914210606777168239689810369956955589693295019016811157760871484213285819691070935712552956464168948179955058044615063951031008105332442159972942432885036157270751211502637840352357194541180978922314951879100925219588326619130566881383500848127585386112960034485911505628919301236448247677315827934783159632201900788927846524245245833685633133410083141091882822078075773325475455236583802871490475721940149945918313128964164380930305101499522237017273691457719819213072676955461427550697188471558513894829765373772857092976543778788030254610782520109332324672467701000046997496657612994657076181706549786283055636124533670904788833594239465789962880190137672542609791051242809291200455900861967932286369121669760093817566901331403790614941520169479810491227780714206907217579178865922351399065662983762055151081393280399265500585993770774106062778069873987672210611336809370641862090227582299115240654796183499855237556006503130333403057254487074516274112940248318067490255038326309769352657359018088749759788222584360277033092959834105642380127137763096763197578513164952345884384582211245590533866323010040476398073838621376154230396625198884854633629181474744349168118047377752148432068716924827188326311269284165206110372946459711081115504063957348200429581469395177836583914175364046312741761065224377905070806446430273415285638601514055727391297958030363695838370626979219588910116626771566306050468208768406592703772940710570040438921886615917037170730740534428160309970122808872623861181882012928405243399153589136797542693197869482874738707772899126647485585614738965955414653631387603942404739029720881205385635690675574047719438310725971726464859362642517946923762511541490949707356664731062876680279288241316068298554762640745950964879020059814967092345129273283610790438981364676058828426052347425057708649031841991835312278449688393525859289894133870317363475230047615087213097625643259330793385345613066679921169065514938288651764049039465469320789803084598811401550770383649008274256773997343208921536796451994725335411396061928970939809143809389050354416914010734605945198497239028253918057282037180325195812913367818344583287679490575325920361494397099902230743081292857180169880997174271542101756892796119720400972185769195068753533463954281723281311739864264806468364520695723767129391024958097850112119646986615269751787590976992081667145621921274539467222722492802009664680615106964586059903793480552326900960174025645579518679911558955311340427052335406603770120948064686831504451930524516370705312370239629027897353924152602727282771397064784239655436662256638246345045221085839198013417103225824329599141950081701929944740840044685711141643356247193473003601385099673921167110551295555910162295019092201293372955664911797158685161692972561867168332066678047403921631888250823686007591467931124324184696224105086419407548447627122820715847150845983075720042892359944614953649743371865219538241105209804817085552106638554199353690747113593672583347182744079320916548407923885672093380007614576807929617788894884830166722158356016167247138793456840215670203963595084859146702095450782017071531970275235856430560063380794064435382376573329899645074591914588572909040102892635408971478007845673934867068585957240739220698603472853936042899197265648650791172585168770319578904609890830659533565636227459937635281919565094710925677459707858827886264571279445040725800415822420697641184103233776025173028779356755007598621599590236429798829542021814885197263995322827127579231651986718480534582703541060715340691945029966371008583390700028401872757858634475739912669312078107213835555657737499065385180891002824356171655919007796973474016884615007113097554246467214000900534478207623874205684703212540791492825194703908859680167570161871484375660045946110287568274361710871754996611593992065716920545366981908408505844484738752003799573423538959114621102766935849861495408494654880579271826370385479815702358490983881186493946189507789026751461479589992180443614258133584908097163037243688306897330708531215841748611357510459262513072037993291968631624391321618323432076361171426655468711616773651408980902759972174700251753072875312095664786757341865776576036383383965498324726791130606423049596217724542494055253050988782699268238815086207745647577119271776344172596912846448901653456729138054026848158999997894974060324071331452465294843837885560238474239150983418444967520483147333330737293667804634987009360688176993044222988972066242237283290872760592428741658287368519461133602432575127170687544292153114476706280805974565161426055269223776831747405537476790150649914568129065166359416881835188201184328533669057896733781866377522325816398036631006244560047997839595460802290254706842612348151042691848332016203594218114509276630853908486560578964071302280053500873641513646555286781785753307157575189216270314610384898277510502733831277654120686688318727755302704776685052861572032381550826884232049379198763247228196532344339716388033263706555949752083208558208399020493140068025917159922704991699702070285291485610902430082726732986623211147617810955717001565930430489058121643579201372691444209817575294718674810971397350313300700103726659345776662366353569770621709898720763249955908760800222206499325336860550023793010129875501711630110961513594860360109074999185527970058709697077482506695724417189933276762524607632693872508882017175404314632464397215705736631766740716741282129937669276627793828430111582957523847898047147039638633225536399224277911234945290834178700918970781588401424223155182250479505818704118379194491003929298141317107550970975267990285181916832256807747960898860167973505500143071119497283462946317140388742215395259624168571644513324035320365504662606768586007929607326818235761504557746113997441778093315745258468186484411137840092620258777330449043215648783281358140146703565222761526497614422161831094581308427759656994798066926319118479299462596414462954394400563449163806007442245185185846198605647049619223309975325010761568444120048713957910755120089625336133371228080167729516496131171199751001141484245993171347942678228251018567477571777542435177826403648451506168525517162746063385871791500220787910688902368587284587880104625659323894452688427384795184895958471065534895515504370412940576870152758792876366147848019739055715751867495629110453105653299678495716377100949545965480420287942409871300260630251149463556971625708761012724084042112290023337197625526921577754196192007142783842115792802066221309942566016972599146796064133033555137508684666331482825545758884006107723840552524427905639611099626526896454981669440934753032682668048372453508983268141895098701678235210233823300792270921218722625183051239538485521839743500367562406819392935031283403334233248281334229209491099123840148647159091725067875855527531972827302054142120625120579201623857461220830106575402428488465632297083686343975942233444149276320714295937406339500043801441884955675371065492618258143709270577770394856905377908735569350450162587419629855122773705657695168572057331959661476771429964579368454458064654118057310868460219127603025960323145061969169244871187042051210447456146631540723075256515082734630348930192341021505782279527362097314619364761365922930282669769307457967809329575272367765088450646670046026013737381302175076559603423359735943765255193684239077137431546604256857089155042025668881437886027460522630828269420924760779666169264747976504622695646368739363193840137980947689478954282311645408833115818054045829829077566399558731115465992732956134750875479698852786749178048127040003238276695318264359657609189222106334964354310072988522104055055435579549012227998149613767153857655474215153948214293669889906126906505230559955020980158949317344019230830000935486078125157180548664635582246148452759140138533569545210143263156922238083850586710193083317944607403181781578871177290857218028438804754217036540602759108096040003917307389901862420527876361486502861277684427526261566378204012246159535463704130522488785871622612455564228809584078885798282830073238281870192300768190595738588219857526605327412926518999219878163443147626042300287807601485834821696692115590346265747900545535378655458247279069628961905323911771761514046398778579107586148488466186956696467585152913726187364255233212579116684018420978850737448562252315082388867388036252374002954864506985874995862350210893318054258090206334821307438803640058965440271645002100459813354068198960514744993558888514789782017911119531318404078685159387853664524045445038251056496692168322027873256648547553250237056451620973632465381256198717399399228588526627134321873969050754161486007932513443051238825404865082849186411164163024118947476632436290713191143098215386063774610071611565970707685054602021381243741929350179760429914153039040061577163304595218726882862893192924676957780026454779282559540066361344357720338229612288400374179150750859887592831510733844129517837387831878644938410388753583231476072485920572860925106102508475980590265366413878359808195159909793090129983821620395543697531396916241991122196909139803088498027749900665634017913128511082080835455884248754180249342930704779852235529894670737232202550162163095508601938390440081690945986160879651314217581540132179262533679166016365122253156469349510632110221492130329652372722418512244218530254817978536551947679169077371289957753465831690046048327575328782390215056464181301033586874985611920074580967510542333427032332542612348710964149948989517314757563707128593645717970061941206349422027995097530690876521115814529088552171243280345239327083709478286535060500366049302185170192319261332801736109424469228295365887030119325855114664040862444074369893054479065136386878146234910064900304785808988210817512386323371760737928075185656417484475125455377952858482676247627980301209014654070714394271137870435652188098924388743930886221854684425400826947321937265129694109774632974859129843790512757433045601929783628459192125480940431081181076263442524799972110249900404724896087192351246566455315709303814396482222229670021177891793282635802814927889321406699495614750774314224791486429078753829820990960299774488555240650839347645764716607336592051641261393725191151322220694031496158656696617102286497850325234875133683088575588849009320059612050827065933921516380626413977320018660577055309019520669176015109474725672757602301075027010067508471175249194716056949764516680044375594939509492303546028155686917186009921399170767684107476210277121785001127495582181298964554501179168645973512907401748981482373337383433209519536202488521196020623946265115511401520802264430111026048025368779764630803784991709602792259926233191819571336034840097462939593295869166677813149722566768439083573757913524626323909281781677917383094992465844684524706876968681944782352448277601433839636047134309032328803223686735692869792207658668166480889959083656927358051702647867325037789724136178007495149077062075438351105933622669462663613382964482296138073616491675499669478101551795763963638470196898761712316355478370485876621885593532376559075456671799896563302604952749789802925687324942992571117203578264968053461998526424305710073744712413802852199735781071524199934573529504215367513516142378108895585368664216069285640190698642194500379586950737310850791883122088437280022895919890786474024101349082915725914918622684204720528829388965595713250693988107227511256522857419380502838010434364459272028507747444767127026781487487169350928120530596266335671724170982197479131982423248902712239856289082169487370273756294436588391070933641657977826220312217829546245858717820273471970923865281552435532953355603134428082118439261497890586357264785251567047613972452651083222184767298842472570554682520681398638622707357478137669871449148885935195877587650523736032401611656333576077334272224083386481287172086765213019621272365361135767896293339195014420440037057022257792348652286866052862698570834046261962712641474135999386771480261221314998287220760141773435916402014604486382535374469110071310590504610979679721902756391580550994456506257849459344887996946484884438325269821316111989532365455114547669478534415104257816420548694906575575329281141969688219032721500318878816036757766092061985815679372745630255576365915277097831848848970580793551199362314664573726924913499561736374782187705165539896944943844059720205087898822302537993700016609916471057521268083015438372576799832899575018882005584087957377937530094253116421486369447163128232587249232795548097663184399113240812807779214453183857115398356329055047110563384157965362299101447058499719592436057070544458389057773272767433273698887756419043398303854933208772008336775133855320680548343491675199686112211868242121693249622744813891947920369799357564116813374796045979212787134595834043037633274121847092420164476026192145989029537108369677728066584157976022532292107685146347928552141837373793327785467850793162251392871600954301121768247226188799476402428619871716837153446800297270068748054515958829332119823517277290842266810308238159959405095306194441147079226989723026648520567843973484721792812186412291920410658281028059351831900156207501359140857115585621785296105433457471184242843390853933681168319357426914520234822675415362653532361429064485822920420386910258933066558062644533025347519697926092247170570225792019886213824536214865925250535335143440589563351325714567918690240485298299933644861624137604590520722777006861788121951464638857228545923566454643469875278017801298973370238522622603116490552421268138180443842344282461101874437794786871356981269992308226367512498332354124184037055728490156815234639956826953452632323758104243448950012601659627965817552741945325844443712264617585786847670014542358093325587324987093102975945409100667190518434244609452124596530787474578739550434950258798807352017596009107917229070434848503970111055155066888194620327184470883040172287333104778935484835952420800889958931395418079511008843425775330991263953043631687063382469980567925605968605116040353844175560763737640409508119490301195727755258789167428509142504060933324882572039857233002224509037144062756750877828418257414448376414431707185770141595764360524352580239069069728244592818169285605351111210199823968270309790064963278533212922308793568711679149564920995436336506027638060247781340381511764495236696148745215032778021453720561483074486056478446373245715670089762705287907521852032095341990451354398821116154960765498283488070418574486404076154213352364398894536926120124413441564307704564258394368154937445589155309412497425049292370251851421603120186402617094803679554434018500055871406549032025132720393066826196800687539440927589356745461736973205561756071243091476538289722793256976590799411928031260661120763482992746632010837587821893876042459687339894440465590969232987182938741618706501477724648874425076215772994205408899394070868172282860271119892016149598950714118260257166949524562487598664843532278545977431591115464176001704412733712771082370159411487275803083665028021918638627690044916498168710849450924419129144450082082598566206717115323041084222379334965647536013513069705109386500283404554070859014897881605679234743948860418308550610830043967397162294431258392672738510661915787642051743055177295887479401264341791050373745240026738386145273101284247831561458453866897487112735278900125760982784979060981084891841397559073041576091574925393744405533491579243240295320622967469588447074655054561373132137267487303886713096575075967323733991995967615805860981828861640774791516868942780628535109403124798601108596284916909411700423663998855356756621081308012295699281398426450479136990505155399511468559265362878768354793965635248829965566991264026473631988581912053269689943121331133069051275694103968092552974550448093919286537288068067489438774106704023163902170526557521150433599101523247175640285356919687647729956194174541014610617807220229995382703600410403798675552667209379906641351306338550478560017605148358410989425483571040037509661475175305136060887943549932768267898949754636468479999669091847407113609247132959999134034926010954164652817441630091398194266136030879977894142723819578667295557791549711758074530346218822348686669662749162413877435425861429747624446093683319631544621106511053811314961257684941682047775888266496520382433047987617041500731539067312253993375269731290745613941489290194600734624677121611791752608805231892772862183117711610445009262817849759653855413809177616137152285578576917336862214032451726160628776101173728808634074985876089194013885656419233465331185157321738742468316293136542930482219541277568974810783592621161944768497806795564581855921001044712929549635814132758805799145756262674456176533635291187591605495507660221796205947660625827026007241548876966750389423921960046251216331722688875071532995136805285507679337341683590273934767130079691764509778976286165975526874423791431677841472021763314914209834352869878767696132145600887432259169771449270362183961864356717797761429210708587916550632682837201746064068439541075912452093776974127841657758217751130071757370692009169698961770318573311719492139788608003022951419589232444692453831279557844354768887115508493354614561985760077097584932913609980438466845981779950871383371692713763222570075925304684764914109067142133872182790150768902138054926351814438750057101881596559040419999201555122542011009757963441070001809556782602774281057114466091864147163588099381619619666153306553908811493794367923936866928671757558738564565555225098653977454895297464892135722972370326528766615068956130454705522709695338896022984846212501172230175960171873372661636516297629731534837084044364037805996304156407878335163578248281969929987191780937858614477806758210101291052022174296733426569547208863279823139386896716198294004344424365602214852542645827651775591609677354139155508179647679668768295318337479005032907353247451259091747241375108471454046618055044095353087351028424875809935949055581292826079071212419075060065224942966582808330351454771030301077963283419355750528333063360920498855963237807827030430100791714365437759107446820511595040375114478527635249629091867550467075953523890952372889739710066727126124455757884134484846968291879010532540922120116360964965458620706180739310758214890009231337639340995796927093366395075074959594196963719973103230759137167398500057474949263898171473961804253248739991869279193791224892789528606245066733321801644284606268574270996946595068704234400592804132829422543948778226066414536019376447122017478396344870971410741393330191281235838085559006283071447175933340458054565679508347889968344754234899669103377139383083268155970604879891760219116671227681085026291585605056915494054943136157053005543859640145868691055933436744035624410393101233048851978664786874315812607355640629464056743655498651536113379114041458899504736815929242941080722102989526931969608627188814271193473203126043544013922900330496303181968119089371214043792619605431182768715644304106961451791960859997179018516892420345897111641440008932384942413080553323568041921423565132522455656034894234246491278317295527961732103269081842999751054278689574161825741525383552842086208165677723059946792585215387715693921778587766809372562713196471928984926664296427268057028313483122698112774473437053600193427515335751547564845981545116349888828980703050728108594546205460705851910007349111961191499363356396980115787000641407418941519048778836396407649873039208852580949695115280206599761416180813392593872782145776252330852944063698213330602538031486942809494540258786687510391203732565056348214326049752803931212030695188871828214812211626689416707885963227222663870373162831514790768437826730721095829202468651579538987690441701450263683039416504912169169018541084945848662013258304498174705963134141613763669899638704705491099277002057436669862939550739324477005696179394734583715399699891826443389549159592945226585769281155176252808742784818202695833660320327262412262269825921500055830118044369437247913812392772247352200425026881740885348154932742162449442108923902321810683113580359983691931507984634813853124924452158050790185923598191690669601153161286189837157363624890844804520082028656639675026666762465033918983340344067297438328164919178853831819658248071918058806001287266241291418685485248906745881043348305129460737714652170069411345527243667982135150023719773465310410908946591969242526796764267914293678893720796221059526834043189577626308534574062863726347414462123434294592147613451598341909865612005741074464354013523892171765019139230274416942839566333107174963422899165131828083689285243051113205837454603198744331922586652702934140302751354392241918888159243689900478312134159052962618494798775182961346016503658199619296118384105180972054790943877864777495952952925878262263070904932724093199330981603405140708495606071291808889139454979401881622722784194911967371170178525585844313692995290704655285580935875901532830762244310858310900373640558458908142381639674770756279932137306967505785520484315361415087472198275717998828697016866482789589254554971549829470438435806079244515363301940128654322630101022153859587774851922941693960173492029536635198599150087657268617543788889979308013283622311089659848361820512559831444994956675414074811362858453343513913350840170193661786794631391543059635429172952162925149203543214128009128049888809763676819907343953280101512472923149603072095599358833855257646897593838002387505121223324922131765751207594581930197370686555580972031233646879586814428717537736950414711704642906850474523575989597025407759277797645624722658565214331881842687685716573926197806873394535512546829619629171764651919163278102752144415089082384081885061011709597864345249910624761142010831100164219250675033481553950431161412060905723474875141044355452046211426172638735708230767462455873535306156382474286367711103125913675897341331047566473967830260251125966908563646230747442117952218047662179323907506490427735496181492763647409252879504266963208098205604503627254836207235825237420922097904206666689205328881158507590586264794790811857793069175430891121515819839981831772835371995826090339850236368761187283062999711719962795951697774959875051081701035792769244404701258803661732983477613186077757024511894948917313771851645478780268210272930751190328925803022747202866817998566447662248820661693177357289666283249123523901975545204752363075152317984539055779657039782836585718825068251131973243942027142660099734965138861046250930881296064663888849334100282388031408113474077537651489609365399838026851608828298959524444190439988273449119877257384170422950878429003436330127908636840476631759470061508444697390528094800711749872898312164844767580198613235995765977773016887960927023290112959443992075853804820781632368412518465692547853202831197039466858781688410362296984844004077267669417206678509267601262277608142459171327855268885932937322990996665783531925427706880698800310247557057147013162947387424519106234253129747978088038515356050866140659872396070499398964777318151607411910222729759174115639468172265190386829789872990504973729435714012108871656516200865683543653452371163817388352184844969751505411608063553649202258192594308210170263087674824770152884546660380914912132880605979903279489964527413383211995896884375882003637880411493344312739779521124669794665794156377730772772359286159214041813816014520872366074397583741522570233794330063168098692460673582051502135636964401996035541165239560515279596183492990340682590586471251463711013329025277088383336526413932557548570371064475928452203057102764803072400326994043317613053982512563720707206078067432282387169558058616409335979715803596465320285170917835871901034725844732530913029170266081175785960220584409851478308347873516676410251154063241558954873659538648524786467398237954089169988848285281148043814056905623027859385136698605730581283021133127408067611798414398568693000354997854870561612153532707418031515722027344800889525560517182738315560048366020461512027752507518456534678546787225262786195091393360157367291923879389926780164941537980358922604140509919909568547600372379884522596818998065825263439518000026685903645869745039775738338594747870452819363971492539697533647119635660847106693262658870609453674604496943368156407313179390744699060832616810080470672726167102996842799580782849354933592393412055164867057640752482282423409577959659663745785165936612653635780946958104440880766452502277751687995009001367818836860735875700316461768948014793138313357395728145800423131670395202917369777318945527587338505321282771538375281523325426577056324156440621240564820198312657093239052308213805696213022025903681335325235734328102201448868208176918714739984815312107280422732500757589775403050248222437303159243437073358643850224899310447815428514779678280973048258204551531191838003255033920278268668871941616713913028271115864803347928622584521261555797283863066241312388335492979752147624725414643656836233313152875784273445133621169958220672788316904406600266784813509635556757826150796553904986431004436858952730267402640736092115633425370307887963385596730548578112868650359419488473823685881258947862514871096491386056709366086131266612707613266893382495453380670540720630839255448423428479688556352824494741368045399726291065437174594973299590053214712070194248479869739710175277446675120286840793866902255491947299401058365215024451642085176021691431702515365687695452467873910742714239157119993358037359526471058510627747255322255111424378652515875477729988863275888349227802208402483686266662444775883196261870069886768722074076558353288068099740826081869041785503501032762677722026743019028521254649939374053353414287270139845896343332380802123622297609214718244843899809847623728777392819746134097498188295826086333230424654950223809480074698425970396749056296810077419549413904905649069326366831573513141541317248746492509822357390055042696328677020002883562293284804341878319433626879660949973975111635705431714103631224416327214352426256591808334940933359079718156015587447953186774540776740442568211726021625717182382321827560837880201163892541948668924335742075014324364364069103568969605087751904760149072246496081936844283302843177669454339555669998993508545397155896489677059832031700107670431678203051830096699886542171555175175764911373098877163028176424307678108406638481073792712644714919316601840052612812453327703548904507837709575697750815282204766916843439878250690470600378753068811053083172140253921152684607255373416258844782707184279588257253628887005645189353257531297278231298583482558964470072112812851114808241623962003820022685519962639221055124270374074596469704055852570478613640844748087023860161002408755069924938806800354585479206304351445998100934017650897394862170864112849089938762094165596342623500279400013703716982141869363136387964766173516767977501822864474471946414260701993635375092380921606367630957138321041564550529612269859309960471450616072705964583789533149186210764145338426782508571422619622159899212723383728986615288924925509068329372781150011979028718452276248228970612714249584535535806344963362622543423597164751862732272936701972417635509231340158657492258448938857104033231149038276633468613969006459750239389801594090746783811069372361986491871324717706237767301664513671377439365489501911632192275676919978279854432294355857029016233695549488721020710956296264608055742013099461172348355901006957836435826425241912472738961054814112100940378419157861966120688888974283463147913572521209798864228083630911187570289081986158166367018445051217148773338543608252243654140152103000944712631871678415974349884105781169547944062268275468464480599936078516877694077397885617325551538162078510291594016582556330073003424432309032439785129365857184004547069270732209213577903902326095496640850147393824920220828265506444259089109060456237840658677135628655915642874485646172744389924880669812726294609097935947759772529484641758971518452927926413495159737058193292374667505658087620991904881991255630083311682922119626730170592630164057556068482320199178517522077383288067848755279233496752935412013335269340152504495490273636614371271981812459147801881831916719720872609038709616193416245527613316683735363132783841207215036220423718630107028503168178209251356232102042757160697829562132024682047438238160700696252416234578978394668026654601891172778895910957192420332799202036178622016333135145214554755247377596172999218302295120300197384754869413554892215646439785132777545532233481076269782891249695738532004099300635358421771647820651722593749376970063420890535990968966863851075061344402905172627199924873947586700505371023207292799099063989127151827657575389468567292489320530981201162778859127110467941021943426909244269007816281102242675785242319979381676948712717435375847558023494445662264142852216611894811081150955780991100632337788850288333016339325365344608162382482938070533950008241317896137472732506230858725565221902007359355429129019478119158896717960407016856519228370462865391608801794821165657813303794640445775944721269987331470444792405067520060092033393796017412829847440190387911146624106755485971294057715028741465838571058005952133838569663712228985161853273544130615033805560217201051728271665997506628305957906777835255997637333678051701256200689322170252724906418887658306455344476177787746462568216933367611962873096217108230467168429680597241459923947836607033835289528616062653436213589200914835339701626451889463661892027799256718703637953666520887782437604572676043643690803689876395128484251941850891883224860587424845808881549512588150689682275224268817184227915824911982777076235383030780476418625258202596338719513812956312386523448373257999491310413588452950245606560080195457720568406598234733740242077832362360474984728858094314213867972577764364561382312284674927774535085716405269405244159473279976018465189329210875755877975031175674433766204228912899492057329519292731058705256949108201522459531690632605562272784902789530330097809373307151668647617118762563682859343171072725090863250971678219878241560534519787449816454172761457310851187332731077861018043250697596100344582719218263051492078339423610197843469976472100351148779069905917254248346533611323264290873749153532286107542119053235396935666069588676768794432927975205370931318840088205423838955891982504326416347432062718102073951026459111276094377805894684499037548040684903758120302390448076926951768817384007015570165246525164212505609142004730639151685620118582443330366579604494822779202198110411453342078297962237927770061384663626569403210810733083009135810233933371443414697205113384653512873073496449217732946814469821492683231343962226520471364138620867915935686033798789814545420993897975887584914816146219632686547531623110711006251365437819674296569289108180645174078358118150320318550470355428302486260612898896794325546087529341815524129213924609163808661566744207183760296053836874087704118326354452576345822045518737380153784310290604503624928549759444025449312396803439754413133864880581452980006142025012157572174689548317112423576850813177142768752318026958384605750133897328574610597222697908574434311801186881494921802137506155361619646297320942557294217544226647086932516297011249655714975596432758328680066185750257361084106259223021329218517846679900366175586311684437168210383596052569527230027620497044600721273651425951858435231760315610886806455814845165811469835898267944689626571003194896434165728388512574412530563996027612878792456506840575636468604690791325798894774208160889310099107896597388263106231978366299989378872149479516001943397291538623924199719338464237418118172639728904599866102479198398410538664590518374164457140404494940514481224114262489961901023347916023224109354022186904348396206517755533966036048535336212549690170186407264613569333778283718222074581193532455496051013624620261562793654972121221647953246331768903481197508394257567882919093553728515940602837290081536749221760629066188818581780058084565352213207773025954460965178249323683494039134472629310726876360512805877910912158757543081191015208224218168159574120113688507988732666126689862746977776885155380511482502280467544488336349590819244989808367689457808146120140428073130388789832536358158725304252365707110692694764656249074205651810904275779522217254600244622058737286322921248313549274528780555953013908800925533447030785616166150174024804216203641445851387288153578305316551947806796626917544339769114708336231159493115579282553934437318633883688584021682022702749057719418971592394776411009664287909828872901526217679427316926577367807054111640377865828137570130576570477675256421665592117820314240510252879718119274608908656630779824038646551617272324577042324294524370266811770277651871610040283424777778758464333069690811316231711657604969423101756534890371096743504202753526248826570541624232006108788975753748797506078869181525327996910357569506993801949850757794454153957588291316475252194164695939481123480856083044331979287768249337911337449557372620404504619209701965040610116496036600629103201274191408361899768721171970675597212505769449191610536293794286016299856244796420561253816784714245548646081315273173287044434257859748172416643532342303367463521648044074747410951166695706035199085817674292333170187040311698739717232436965545490729797927313352132995696693814363911822957536102521105555405467527291185608817943996894648111703010494371820159947584761482626681177640521699659817399643020909531281959967424238781023357127645051221099308528602417264065660370911573218266297403631035627225045870464232027713669683391327127910325148283089359138274101160589784413627786150549327685969456444744305803249400097128290520128692598053838895514677920654764488723892938697503595725615628002944761903551786078294336959889416099033453619022804856528220864282498697467718509062735453324597209888592978039052357139721916557065802329739319895697099177305867532761240593393400846770839423832064776075267705090067819398545188033777429964236947087025584189109529808531889218116603025376041331023157970289550248968392596270774338867527498170454728860249864557811310771465044427821391519535173233412297560847942503957036911043656956302324928433976192014220454423539831424153068653251754975927303236606390567824026044819408796379424520405236975645818314358987768087981238710510299107194222116535119523474573866278425925807446455690028970399011995566279751421225096294372214857241427162549980452217415870556322136914856058512317319174180308933465036459714604981265442410013063989442517747461741570377759765416738465595741192853255654504855984823510751904791638961546807382473739407341487873425333654167356368670655699219778121359808355123631791248687539348475358296172015979320305507255816623557441720121457907135890713293465067930891192985824474129465949437760099482736342756854886944394862123690242581169028950081215020077106516714758443203522184501582226217453596656831050612253700746082005772221031279591054720402051228120391805204775267111070535850530191699071300069862620313873713832457893772075884310143643783483518751332289981012267667517581072393871494503874812583849227544245102006605234054892327325756352447465534578388814864838160058261902967294961919775861559295351884785722039660848132972593560586883199941646900065351549224827425543460957462079185062436678547980960391376455940728459132603618305193384378078460168063089543674435321465463691768165668419544329479241963434696140866161937959263692105983358871184902957233386699768892275543739953938384897885588818390553067117354015361453566474664123935785868577322780304053420578920961036572314767300638094964055861330457345689886438087540653010571457922704936781588408917492426177256468633600238266053152837970200162219251403223850874902341514070634416666005522051183210152139387724864107958905434331752218807663862343043763989387870700253912028730476063940897212933126683377716864731618098507907612892075096331663584459947090908063378924328391932137131333244001136927968004709498904297811511844671804710011557284387005571598774405315719484071162217003238651573936682894774042138782722970529278197513708404684737918152535818821811062941774990995503985678931975859719245946151562338739867028714384481801636766032006374131615804490694847145030383637527500968660962849419614033101352636194995375298703395310010117581234697103556934322546575239455367396235873099494391773545494953703127649839443715333710793622719703363308120762050590129351002713362713430327392368019445095757899810512018573500368967052753488885495474650912223722331644594115348838986465360287924284937136401453404512830707192815269838794711810324031011402891712168552673126277028630779483618972473548734687213403748988059581904206200299581807082432627965686037818060711464002367427148461914093987995326225260335565900978025394223812052459427440308169441674710190765189259136842736631529566730884154272659386025223691012741974249969784512659790967788301219181209922241528413820858466645523529771555530528621560564004089662755446023128770521258934015020074189200184636960057292651455673276017253332749503562606747728967577685461616557047767301884171912979910172985381230588719295201865435472469175910922360051797258778731461141170320041403915945243826150240023876650431241203512466959577888656164336609376776131440538072068866285210871752545950090175075353267719642843673284033793429605413260316954633290971766520704507620149895695724608001821761462596529230584764566417175604095131319085154212609498187756134476668541231647650013918001189363483335569008680818175296487797665088175755424277343935219504464091425594178326595392566554534962118171356665282397734985756461172568967555191630128192359249595586597679203587688691591041734444509639534396286360302463229976599314386718999603205224080624162804866129424674520562978870359507821815603250323839404997249781566088954541694078219565580974327458278934952641228981941562496659020586909190463383812619849464290598584542717774525821694929862648950501863595201139602262355233894686318828242431500873933820522573017729263511604859799076901701493876899759891030643639560004637448155175739190101185341621908421891071710348709470180391264348867111145087417069244909535255734919112032230704512212052937145506519194376900424393119048013854955014097000713909424795656102894342729348950983089672341397755281604386335867833007892141053861832127399001048206184863003495439699378441577434896902561068345222634666153603756043734986041944945534755464379931360555975166501748367855214990686973554070389883722993055542532347043014125182598154492310106768060409647347923692392822988529040224534109377040048234617541247708124069000304775828240976576311777011225398991718881759690566326598255217335077720764805429828372904393719051903567566008531264648563510925955883889550952723812749794789193230520255507721116602407700121529237142631001629661274718643636924053141516201955737906142742055646586325406993677689385044420983491222351080894402703931925280991892768359382065914979723428554683317250095764657648842907369263639093857565658295681484436049294856177349758584926011974743971876346827825217808660504228061928936161521596006778425870092706696045763493962944610581408816008452687762352596621968984700300122635165487171220056628846316036155748238057977277692776682584944316366747212888417892339270866579190905667364664526551063220056509799378744955030124416249613597688551438915664043560357239245082202454096282673429971707966424177975393058484869014894620034526395020559335612512174328449531282136793660527024351926905980882853209751824714094234419794951386118309900775671351991349010733556128900573392874859745250728660678948531229734092629665624721110570259436988441926685670779135198316833770007145737390412714426669525366225202140380374194835060289488810858840037191976627947147541825752121993135080185238170226206758822953955192633258507015191274628068512843051154307051975702091900372903317595530862120323626687846496411413129543961999747299014048397563423336523108150063609061974523135649617780176000763576238212178611349081041869862340175015923530359086449939046919236324208549577135244013997851632985955713158314941459756163506776348838666931056946403435964744431532341083161294559736755826656925548622486383746174044838844190073397367016673504618017941054922279814123688069002679671646461264124779731746677863620235123343668836326419202236776451194330543627214763019223096222647864657289929514483027089689082936626854191656099274848915556067639338445116827459644484117304629913324236374811160138532384044579749195395143514627211216944583485494502266150252213861362642487785724449288903839877290206532230326037776250968737658635695654659861537801953879107141758654829537386071761559126418378918594423237858176835880559409833521795265236679795637345116413371556392194862301435900326275606420268230268434474718483911899602975595700505831207634101228027154815389306937705143947158321540853694060340048868473528700734710915896066216504277146236215001265373736467877253925218951773914642417537496542375923041348465173585293900040964577234436719667455132287774370147714174864269618276433130569059769402360954754638014944910849725506571784693777521028491758020554784327895058376174034959640479936902408341757082971326011874967362253813157931172618916174505819788849049688769779534494188809047739933382395713125288522139482935725496587466354566329915313687675176800909762759157593411495447856450255861464042468566256330714993504587500787123840241996291696274227418313125657653699369638558363212030921239962220810939035627133193850619217952240680915742920611499061639161916700908750996052321462593719839691401658191446594495534111848636772437141692012698300290248764213170738717663863133142272999619271216530531228850276217438846532257873330507641123032230804100382884221653952796143120682774252418774647927964749314300787505958964914515730474115364942948538577803081433460486934344983790691676630851208150913073538338620932185259343282243268423480155395528646723525877918591975752570953127217769859003230707478574298309486839082776789820037974399700488958604357571715071498233944131936136763501085245824339979752888411241648295892824840506943256773245823497696699731990098786683114774870621798115411100042900210533989927157080214265112070442274663746877578356737668094536438387599291929000439411832832953693523766242820529671544771709059563949820800690354925733354892591037295170422011681211501075098650144992186106996599845606520112328168495843359914046775853906220166894295665945275313373768125565658020400083315297502459613284087458957577435364565775565509584424751789482966352317796801238610554031718581122529355462165610161568649006863463576281626803766976644198132368607303811631996043258914198055456020234587452448236320587886057032556985944358812115888611348739369911198044913183836905094557546632754801973342748859907519281414455278640266391009996470020268758379213894671509975647882532349661946538344284071176152579786251847614701983455781106300613091459716876331161501074648863780526821816935667936932095332552768912256597448165669580980156266511334900816155164500833737005293067208396388147447894251165448690914979607697580117905798535106998323015316716566881966706537624641161705999915282154182561623741007592967956752248759226391344448594590022024033648264556950741104644914838588976195375997253835280870380916499365093955882828971682158167208732523001153508519120633931948872515239329993203567674250520278466874770570073747545684363027893301528998135143269267826429020191945743003223976464373831510527151038736828508461375766611505271739670428896853711100095382660535463689194475831502119714312966562556292166930021007679922747532621312449826964092799113934631253537270651084557740175939829907007031375997369818669682342034386143046291765746361595510071425167729602416626754610290948122727459101019235075104123063332782339569496273354196903134118143332190175130202546485031438001301392005771523286008666082095546042372593636279355200423238648546571086886554960366402564667453986473657448136747623566101720532110279640996223716292343402127760984907276453579488211603602955515851524714080048639964214400771841701957792241922998475553683216654126551091955520672373733592222765884258036822599126233500569527907351779871766882208536460541827878931362317862571536061006508181049526952820087163611260863183046580511673084491304256890066517676593060353919908109327818999356908144976496113025719485305599112973769600138397587767784274514399107441008487988402825192272511153892577395961643678138457243575216524247436760985045648951837559963958009620092906646863265052248082364316614334597451117658289498413315954144121962371524806357327878351659194862591843650431837254491335531501838296851355077318804113660943958903749648020196134405824932019713180992627523706154564765959039013354767934713259287483605808489182069253497893441268248697975312619295614001626033018706624036151885245417958761825864714013642058788425327490150266240372008174228124080944975557001325230966798048337314896831868137212449904783865881543555179278498002175979838757421262942161745621691951022589791765508962430195261232831718440119561580538154665218441408414926385468129913450611478205687496491257047209248252689155896390890852792802231259767025977787039056566778002810072255656683062666462171187502775278863404928222313798681140767749284146497880692356031344885768292127946653081933806602264422725078651377484610676731702060013122585480734508863603721611031206174143273569948583334823761354232764084776360737463987503153825908103333847277722913794541008068780543550123854778743748871993237494671952707642416945128084778873949310441581469740679652835725492229455231168244648866972942990517230503080391450655947003386528100137363239151817766068338494087613047516656968243078169151468109242546251503083663515068957172828267206989464482070670695199761388725690990141856712752665734758674430709014202723465889298673927676639782957369344890556904876712968408468827963961208256888250098452023855976280664505431298921432899192598525205277465433190853398028569289235184324325351445209533861472631184619735201389312640539430189761047911401019983493262628024696259337460120197123227472186112275874864391897369292780639330986073987773010583848027140721592679881260326131885102940195916455023817116969976184029505192596243596661358649545615030517680040424260000867261194341619445934628102398134537575290720765577201484725854178925855250343307128713922109340052238499454701670764094004522697793515244541267615388713374088509623793855860228383383292148677978595378781570265793110158862377691021457107749220984248611936560686832964870641696178048386005102458767691886554080028046026507021524594324175973393178151908807176553428053249640784921468774968736768449526807501398018723074748742147189055062171537235496985097731024475599427333019811800940518987727797065171536208524825129167148767243295879110328109269237209973505910074303323803725552548400569712001224749436256731420014150512422284478588502031177622107399772482365020831797991566225502325588640374963021487282518715619180026460244426274595322755229306805056518599011462594248836005037882065914015954112199883353732560237832480686455481577655758469694643768142722640687988869668030902673105892104587577649719654185937265755434876226731561692746654671949657815738654178777502953977256423766912281145186372661107210920381781407772995427296100299972176620701802676654197016443598886901732050382019357915419782706677363034166378420254801657661034934355982588859938612422860502529801645585934632781320918685971479247412023825365205235155389442380094512185824559003620476086986205686223156295934370129246523803989853946214418878710439540236584338866916166385088682355547255521631171354565124945808065960809179060841798268141798709379251241625195344608668520476265236432301418543993155148896712236599214091429418247207566482552296653063914053649106994636310391067880922675867178363385338765402863320091535135999032772683570601017789016241877097224530683969226851965675382688467981976158757324647372987540915387508059669296954242250027861097645157662511266569115030640858740713421156823794719475514394150781168576963983127111218504902855745621003268628751939269199537072004755859568918098873732143513924174582202177334469659700976404899245833433436036342685740618545704966078089874813900624858433660383280671693231806234076413296471736472507261217920966975905802185361689696578750042379347218545562111104561864810275827925445106715286802191772839398391033256566251545396260741797315486178918594714038466441196044000363483781268348081230458602663117456428496606777141241402957461254791968010899470445944617837353475339301509171332776117253694928923860431378587215235423803652996264823655704689433827298479388127601910595900497398643956535114157790679513728479102348269362908484153570175988808026184337083237313902145288723426551273601253653467129936745581471743714564024221136639271281263486734679907410536727721404711948353230043582511648580126051321599392519775708051110859045475632145428619906869800546473542730968319452151541597429380506647450453018878094703340219785764779082221544326947502158279616162004484905010817036426238787270044209956671062292595652445723664936545960209291574973776150128319432502666314645638729028432154858466413324620558884393767038500028728858830469915268720509215490454906296877501657242565784378067890823335190225478740714733950139865426053250076002830556705686821028526958713004944565594436961281419329361824431477698864079352620763773292866626485618073142710070283124441725006719518916570998755700701408411939091285139216304150167680784292766353976031281065469173722879821901800780109049401816110817369737383913910396343940361221429114532953454724802750981925167082081950850337287620966354204493459160857033880309557595583851984664056150128365497820348272247424313840575869311132538921270212174330779495323427978139589992136146650301334708121058539275257998809032911708703377793350805639695727664569630664985414813265999982264531014374855949416368294532728627951805965528201757178940850701234374257543417870032822974155807530299264741403661249382544583263584685097365077727309891626944764763762522004994380753831945037197942376306521997121597423055947011786688876123608186050063054836967063461968109642951932174799768388231769387465195797148666967013791416470403098646078504948256519502151073548618330006697392580790119579209103347363072394780249558743382727933081617434086440589095498429828799760490675252027675073224731659232341741768437311165534251814422956351912920588210351868367967752625199848237451487808882803041376754660009554184846162564760323521864857767781378104307470384878882796975784911332716487932449618655595916080992618319498595471623689168685266891934898807819121398384449049978295700454569770750584598098429300790696890745158223663514610133597115127103499975245850454119874896124817886008365973373199618657930136849676985067893275059982454671295450583389858152146685145077558373457730876494102101546473437176567315752571079074511758845460932485978868104975043448928623518397843669999615875108221780315613640925044670233404029770512796886638482812825809877122355954454271670735340767035574042376526317345134031689792953628794647665847979872822682654024480621047412607051080733759483148851607647532441903332640639890891858518450329447429239140866730624471211453380956015497945194371641948329324408721496288377267557069864075736442468706468250147313061467242872578535250264926488857436069019902116101743442284902922537964802953993066371474084663573153463006867082680921367213382039655620867671898516976739903689330894919718089734674250396867465531217321926575577645726977114555272728567519402677791271203310051338419209108753008519581983146830186098764985677312175007196180684584841100251348994726508411183238070529596411638321278812785773880764767592203042508380463154458402918224562223983076081693322004939335963975177943950603986666239827765580381018317057645118748474178906397905446835088788480215444832288003256635512047207716472259207132512667304149838995244622379607220212717186692779453147912834562797391522661983725895009318453148935845710895401603561840928514469107040698653151230822062882835716138774019477914512412817198636430575917822717201319480026429105927891853230215612179261140073216841339378014044216189537025576441902001708124792731731848815270456640916600715770368536322729119941236832712151814888168906723860843222651339290000734909975718180883826192085389287162578510058079633936495918486647703743203677348340147103750881090461685362576223358640956554204886386473058655714470527737503897095566442244718117619549196917709699236373456024865401336502425996518032604512800185386198409420643150186539528602934919867460121462724595088127233865545427767793937604851893893015234962743244984136635022507313521592503491863063117414103346633743555187493028501010911904366100479039019360246768230906676887905615420354231295455029684631593267006659358415283068239301205975231938961010602313047386631149429767758498235269831117433458453137276793150407988697299492422114112406898076337115778457311859650625448677989107111092293875766094845835255756096110122752164243687072066449682158554543625385172442837676201499929496567815597203723252196510677060272111716195777423549613095013859982432739477779636871032918660892818494033963772079422290056150749763020489718397260579317548141486373978481852357276346851765966136510649423577469564666232291731574548755151346065204766295754138455195673698254217359045855629343424254733061117264439138247769431606268700194006373956054078424147300598228478958279394287289102299869517705170728225104316689842408939210993573564440914618299244646702598371781187633021470058905429980465457261453941184725809396997874083142060892730400090418322936074869938509699093059930511140425681141300950365684237958042546393275429753350424364716362655264680009291197029973917462575583343748196876889644256931700714231773646260834853143779225320128808245659189454773394008724973398200845844931168506348829410454041252857293240902501675576965317947323938668303209154048805861950286401142400854555451308757092626804644264148262623451200544914939721725181676829727427682502979161771301511970202980994038409829135219182618380797722867068600637529126239735303150038394843325679707182937711501909703902325394043546096310565023642728040635906704122656449049254684888332878990829111776802176286483798868480935172940958931289523023605388367504435453052517920616118258552982425222613008355263679495827895152482898812276609490576577085379746197379844494000124847132247459344888522151589006786037032066893594794898121586391612920219537973542439385945428718431001434973559051341376309624945033802392740051082244229144015645529979124096208272436860985846092190067860106685550972317767847175097594455203440040215372043540418702148880655008043205298977863879689629423147963211070053427052128339445593031577891287072039506308964919522018540194703771921129938367929242109497339055426015055711628683266840988247962386071077425648903084620676178780856657191078306608723555105827380474634680153591586522035178802377840226999640542322888042696462277838342239609357800519200809738530381877011163963917939535808166144478149271029351077772340163987941256797343088421140354190145942060417338063358942270570917010501921194377201647534192412428903536193872341121545199252735350236127370608367654755829015749077269966450410128686714329384585582426177524626105120197260267819861016471815165958691808961495925967897891278812153055228132141318207314018152342984364833948806270193497424625399249583872196354433581382350043169271018161501954388713634465395036848091412373203953515263246792012511705091646145943538115937397751889775462103995013441875686903030378349472302517163810206679254312882483263683825392618229015194371771653579649886414103037738656994256649761584137179571058514042894797987694246553094708546674521437085346294578616370284910423598700165797234049539989778643077200491149064396330006836075873645655253736790522521532168435121121416554646997926061469831081391297133184907320381939775831105747274626352154012342343625538584545156582092053722072673653751475871727917271151721013238705486846831620948348695134061787143030802035293194247738795884338198091233851199248589017348189496977024919087240238686029155980781009835593615486131839701854310474029269269617967187802802307537995896469747066793879330995917657763982335355939188652719558726796476344853329315056448611512042060224634202533821997280123306015888748748113729412211343811955359924313670068337935356030074860998182731948098813693440756057319286747903197078643803457425801426237943506088229147064243955169863411549718952671164128288282113140378063817516545972277461185390400296255370206997201540735966630977016183772986459148360734662988037771918602786280534755201687320074955229497434769089559708559035260550944472287230414509340840825213635819365672743181005657098025457204901227853675738223288776685027991565950603251527809579646551215738991806434459006878308592046966687808961451397548155906287098551604169485830348214474913907266901998555902760569172543980700358847420886147042161247105801186541459552970388840709410390999244309853953329124220806865661832960376392512412872335592998700197880400110497977149504773358713573704172615797183504219854738740685049931096659828260711240220893930080468947249509269761924506515936747343372541811611017374924960213622534756653870528183548545333621154743666701584760499913100030569954576656631797140935415842017384973698772275600026812618001513152031438138594456001356122875119260902006154699117952111629391862490627177831454089452475558281149816790186025365138753546885776834529468793783431887276388197537328670725230291794690517554417015869138181208322070172325614622487245277840355098839920756488806263116750246847961433739400750621354872294717934795769799588983879594701990958381538530378935010928250932190146251944565541013718142255282822467929423685756344584952026848450409189194324567117628018313288029486233969899121444939100639751347773755755723073030869600077701782699737766571416561624409503284052032883773364951858728043183931930741804156909576993589554670856588800964403121739968900520240799524872929172718536637783229211317058819656175281606931641159571101637972967769166397792029645922036498759814707169461079225539684414285521803435706674885404460169557640493663831075733277548484063530457728906331172693216739394980222450032927931147412627350984518883464140703675736411530881493576521549121302062705552710876752708377965799306614542865245054375496953662009883505232902791629160022641041062221053456183683493585759946044253632239393041658880213705439002125869021621954952056436861376968163272022686233952710036619291929107235331883716904155234666204451928114361210301120392303772181111870985800207391491296326546229203510360519896836086339354122946481844495531345175427768120380689117117865623569339449876407335632222140561306405563249057724773607960122039148974347765828235079809676918356139238635330940542023438161244518204413846735652105302895401994296321709104904570531484123500963344389577274098501074474521927060524546871727436289213715762858019615491662961436955813832524249895025148768449764129208007720419307994522468681366559955963342242783498581127579921139830490793698905329627997434319384923498805463041077351156525050494985292544791176929714192322526014219448759603700210123841898236366552072998348222236291594495992029115195058992019275692116203330125879662171841712150565448486751493432392840659688462024023688636444136188893544978998063211237772532550804068302190695810154030437936917338040279460848200686004036717665942529996327213959780669774250406292371594272087870921651423407115299468608188329970579431788229015091267668774927671855839073070426393712779675410197796402136074253463002682552144870631284853265769744448579905104163726868959777143417870701867068974780821735940481132438669934373375050655044561845515518748645523576216430275817287882891638906809779594777882019256616888362267693302605565588878176198816535681658226086799338247829857147078217910606731805155585579213421915417998717117830858122126273254125542991324946739123375067579896484596831045891014011678672161054643373397254379417750372686496786298455152326885579668896406228502556763993571676244137543181757325532014738959472847852031564573023813351543714919461516711030812564272150386861402187546843215856805731770167678560384392119522447742838681406488377799736325091229818747792395918572848605641798209131522492755238356040987900036508571648188521422986571287348837703339066919177123956051394890700194456350975991598749777103489631101218704672252479726764956922686017070748678781214386656637878140417296903627071687548276916172548344257433350039184179898616205318274521617164671791510296944679915689673512498009057572944360084053087210693933500097599644576734756730285385231063716496211336761931449752168386040598944902326250430369693013519390267962059230720626364380347425309977521252191838433330511635433336813704793553396432938080753896167602841597701089037765508592528560070742979821711232663985034335203686551362633448806390469219356562275597634717983399130047587015806606682730118586358354606787840412100424449476836278811909584058713576280738381235588780592295724704236353735497767183161955157704452854251143374755399710438078372196236409756996077401331910492507643254142338325641200821555560566115062687943448116503185713333327533552913459350472972123251637651054839050589369709958172455336979809232519093915876008397418211606784437814830088054682776216782996739300336456885282313456252723035842534288903190596417033938974868735640494399158954910567715980050778713820832780394737911587783267291535399647222084402351679716455736865769343138560003489271014901018285227576224596966304664366153011290214014979608966784167404317644475562154937906240977181631411119608270939558139206347682245637139419888235014350132828314312763927250522272156679398467685354243787809426355217131826938248101062566829204293762568561760255328082714686667666957286957506093473403452067244770233457184085706833204617026490455968467250652414554036699185001291836571334697125099893097728711951895753329297905509876459335176302951466935757959811114292693161756571141986024558817885192808818795678691520609576689173579254159687345780533746315168603404862270691571727742633396815034637945660340532681422634597982021001633141546901155720679107007166992536466284798072623670192028720855362962952599311827344709155948771209312032749678532823047638884255948346863002837215317417755400389796313653787385468045755731392623010623950979890045210209731163206178813794313316642028238466081988079275139109804980780371479452526367034774654597272211886359398319160987488515142496625088400724678464735560145989662584896127881831406148681730634668972822920292437886620826924782109580352321014867574902931559972388022828520360310262637933332668045413151133387218749888554723334766733372752993927532504745720327653620710969583845417228152423121622261021584552419887248198214672756460802654336816996698376028550829149180305096746875906154950542929047429207731535471421344598964686361529680859586225320177778004517459257234779514485315038437978629182030133722922876564470259148666148731742802070797988676205099322609633278098113284578202205357290054751259404690294635533917364483137226215944025929627311312277910789651633271960115758987406271089887649753037986129948700106067549238750756683953834716107831067932759256066966055396530222763740574987768138612154929927228807187324120803492003628709917169797962782335964783001874938159554534435897940898431500586291546015661128410177894362603433337214104015527678572547450834191120945829295999628665439490029803769457872521292862156951615328909286426663079945046024475658069121074973201549810502048261197535932057737572747282201539082417930393013648319879975157146465688467906687878954890408762461042171654737139088103137644584172248758324171166051397022400056578293610199287698757614907012160866621286251612742656382017899905257546910266339770034151766197552757781608614319617272561509599812651701586317631436273528078364450320518295672405046047134923812546717885102589872762173866867964289504701274089311103699829933903736355327420342808223754007338343121139097939987042675131623491796712109530362523779270465290526750349671300483800566600685838580824913504636899441586506461505003821565541787079484440033356053122644547676399884956803561542331782359147655101845632700360141085431154570070063468067150150084374445679030427003250643821753382518215682056916776415758505389120993793220946978981745464915644818015842666234317104308581479713259787669548247989406651328226021428856328932436464320168858110225999923763686328654767768659020864412155031129965244591480011085683637223140868615681284560838291915779708258058803260364173211414586081790942495852995039801947801726659663065575765262561789673200126139759235929255874051334020804088483775050109434185954030577522031191928061895839358882936860909615462125629960908944587241787306657824809437300690720092362560575102125118293576264025455872596114305463432621201741210910860601723354540258888837897898424953253586015351370923045307457104102337519384711584636635884818434003319553055550449439061925873655190711492442052038398976104159098918895565335974182172340862895892392088668969141999311185904261129595478240760924657183270626037447703040835553582141230816232264790792315123431973064855728723401818762199111689936523463783739660330175373380323105774301652765850701328676139426247321680516629612503487527260338530807280665107893991679708813132916794388173761825779705167011047539989531130714121759949777441930924917934137960415219989807008539336989080385425261459755378013247174477563424176358397091598865762007609617625825200815628037527533023224327064434659099538025287893987068109751750492174711643606773528416301105572736248472556520286598540222034807411549868048940625704107045096000161690887996963560638236853740575126004835267409124874860387489518554179616902349833169614017411470548301199029164580356390617270909072380776301649051347289845789935783445288331405793487989011113023012357147218243648056545041361344017092681621140337341339204699975767811746560622225756314753976992317305657320177761004588196557322728038434716776362933494593696486876227025084087264591041133083901273078237517613302431171788321596531197039732028516818872399715432275291075528973386368071808582470430833333323421303663869963133990093830010366283540393559164648002262403767091747989565482089480846470313620648173954261848366351712003284175712350513933507091248263827869391663410533816386935648331313578962359617018574272657915745111627459652614422440175394313799426137385305777776414331282263376384059621527418846690775943767075806975511559646185527845051467981365560210668267268498777388021338982889058950101054795842540014351192622904384894843820083874670548249678083823015499262045952188435547750771530522564285842605288353936965813115704815646014696359350289434558092325256749650174152834410693269939133540854894210948806579091132013984240873418134721853760775197133495585048225712559741420874091216226404930733932888886208163064152036506208748028947909836089160923795073441449942056567125540775303077810577969165393251496172232215915115528191416655246027015850261567335092278095630845741633481418194270196268480694351047776168309837943782675961405500027531086598436720452285835389936665920981870831915132384139137711267804619371226465379892994341174845592810532765947230274659348442099177417326174998753003321891229369941074459262068545161425482909450325250894017931117621055830912699227554844516483454737402090712201131331201020473389235608370833981843926755892776687365597596593812723286305710998264230496825345831150097773950154026109099873483760930405977537063456048101822298281764001619350507104924008045997345117271626859479263665889624874187675084513968194336293174235821242630069955048657654370347183148198121089197305817480188825537216378127973071243438304510868525585086464693203073541420484184677391602635512377016334814927249416555373566612838382733683221526086890214583722323916317126822756154872072361114851465628908341267670800992858936448723690230839464895545880032607869900989682190092445757433123651768538847643437052751685624686547057568004427518829737622714280974434744583371153547062543724518552160448480304959785567083222277650518999644500316940557716234553817618547046139522617611306687194059040376206983670690876491351744422086595227615190667367187112526476876140189079212244538517624005193867467760263759783769555223167487283125715638696831127262381805846962508551146247962805947584420640510420357557353686580518337060655627036511808862177508128252830317609481764163952638396090608484033434903671500312871602649944171219978794291412957502699362271826079144665160019397422251336320357460689340974755089728891057768607092127798322828279098185101466439419165711637549813506507780489861057741454574841329616665698428768690235404196664063980664902166225683093312001091644516932968456612701058765798126356928952848997715179778049155430992280788504264559564095828534393535049534139020254313800879080586830101495013162730446311304904919917648888781646981420729504409522785356191288410060720356258594518477091392621340107658321312059106320646872506132006019286455369525728328103836994643767928647180443398501524262695528906182647810162731060387517056694779012861846084163197048369149242192855918322439972158775987047616277062914845423714566250247373464685918158663145058248429983784055612901463722707772035429440708601302066728179419119035580767178187046159888025174828888538710297984194563602197040155213422513319134798872350691569213906830483268786744101954416702985803960032213789139373830760522588947401020988925131462786873355709214318987909618536096717215787103259980530383858862696470011212693810359495170839120790502173632759057861038177307407421331725061855459249478420630789930472197145337124928699135678433394837581436988114326947109970091001172849530072571341334352942926489373317393959514572844065551335591220258025016232506363853253931152856952275194866309806263044664871169505863974674416877701553347496871906597087502620018550931836916305330621517581493168794276144406495382747903284528294028931418311592612758236548999290565053007803563370711732716474325979846880788124830484455284673701829489267088882531008036423155520618538216174979297386738514569594028122020900370445273610331397834496855687666464570784364704985241821166931275055885851651700657812641495514711115895657670577405887889122355888867338770599555874957005610100807734834917048636098859836459245803797080435186958534157842950380187573761829981065743130459379796816682498206651714778691954513006624818810160658758286333857660043697685788268567287248094900687713251295378449659048343285923671234527044216754581095906983896065508872516038088008138067417566410403799626379287120819023745447637797783276630293311786159940833370493591045331470651541676310475259420151564043381042812504643153812518366088584116430154625315872194806442348244315774044762769763266652072092882128070577796011709714386134455016261806724892899986433007479273765244613940155117592367861413381590714359596610205915852321578800986791247116881610205533818535160097655742136261481181110399796173793954569371062198689360392598591727486809173900211327002519916900269603379042276668512540543084680591817451686572041625336371548527049703935432005083373444182423824608909918808005483387481604486345966491100283636707646527547921127063774146003247551291595233397606979037073801866070698463353378160653434880275629217826537235769056623806253991169169761615134034242798077350437322923131756723316674250911973183682811600064798049463025015864894935967190450418942767297654824380714395086184334832467195959348268277135188755837629829549287676673041192122141853688516000507480321582264760246648311615601145772688857444101575261746345652554659669116994224805681020600436345365886722171227388318284184035602018834483237102667247890951292627913576367548192874742086657468222628291383707944210824842686170686567074841836183711878976410540831600101017304082366595679831780820274282467267588029771660074360479150504528072604426391371899075958624843919581679771400600135157298681879898256384332544128624633016622642051732511626327049349015326398177399338311366560455620658101943228442782408358216125467849445599953771295144429347126251630416348672137191427277965725266214691086557682303051632326824427018174975139341676177126106820660527212344533828032481336909585183990422799983236645758938437199410386492055684206720095834111185212460715681475979623689364776577881865334146603818750491982803431533496494728089707110005433066725019133555732185597003054946970496382678241469186198815665172971112873187226702239644207835857656875895713864488912359712698877595726315895440701243489200097029987358847000054667277245218373421686184842073593189609015034375996850530050249275822922556158552439013435657832797701136785924649656812326659337417290040932326714539220471101999081821672980742304769466898542479410342389176453888784812263157285808659978861933062722986844925637379446638221412711209331254412323239834979715170339638465383153953938887443451384126718404939592415771311166862633748599093562445759709037865966984372669329827097965492807035998800029978805020608664313931897941873256110777474749398683382858140754229564215967766752277265431802221397252608451698048933938560451626952884511104808329839059610104715056864225208638979842611210969058583426370253774589253037700148534343035382299782184830928593073354563746050672229678731792083491834623634540998075831182213687937904272264132273869286041731848417103725844662835652148031746847758003267535387787472204134405364398270987353059121049644153735791496455678726119205713962332133417406036636395072932676156594734579752845834361149875812153758590757345659944419119234628728114997369123926023919231097462487759870765201535215329365299200705778514040852562015664721992019565517670899107183096582630427636439415483508881634721666978435749813721042413514424743355317591816274383883587276425881471048090481875009871787154241802388153751009984114812373081885902979228142871167983494663073597473588277918837437801953510512239655939002373365837723962656048054135968418054544533086171456852992781160197370084761647502612113274392060235657641800600195895474197797206108517877900068259333001809387674502197266389127484470505963379744064263009299846415054813065016918489335000896312777701739440576436142239528081154803398169043028934484671055033326941189197713189980887210137893840154907605723555373688200564278672094504135612119127024620587974432297826282806257678646772869183152797134630359847387725306587742433969043015159446373445466969368345799133929048490999154252730267102556739719796192924771948995381741407247666722965285528357894995229203424357439291857574486306077735830073656843655318153678133738006934144608066571544340512438478196309967745393175750211376683736047371109370371312602083994749575628474793100669191618819867744201689057448261370550077300138853099464931978665174821582472381475912808125194497676826273830783152901927468673139081057646728472380848455540771350773048911183976993821514263633540982768480948876053872360476554743114348827775240328536652568960089923512939218027440499224001294284196455454016877037833889347704446190303656681142097246923273526417399998539126843006996635848688726306098466754932910307969247565144383217280699250377846492660379086891642495396739304505143630226803954960712677565346082814352127620999139184187050940917698768575382186911387994690433770842968566021780186196469122435179600262393857308219107239842908549256027057360182746887270011321560947645291882971975021179759558682359884764128478698149422303937597108900228397676848755244377468439343261048262515010965669468806925811865523785035447744431391080604003847415685679749984199297837514191953673363305840520218358515268377878052148612301062325039031012300668051411860130893050748601756226865642859357694111185343940765534272236139802184662184525464234982717350100617909156388193695266354542722279225795254217805653000053698775664110035907240913486854499231657387764007602832284515334491900762330996304423126652450319734815231964767643000803841701721845723088037036436753597727884399575507179137869603981601100660408799381944890957717474397295801025225958041548741773758163000977776738588144646497941133272614473715143773557272546293690025841481686242443980714512931845906722482339052399283799310112147814513041437019112235947417706303846938565516428890510384112399093726516859394093969141330801068043531803792829470412066073957091705325444527520768462552619917573585896893765441209414743806078864686749257363584325008561316079416862455742365231135134627972897007335343254189691722511678869907922733865548069962228506427898141428961106144648664792301479011525143744944306092558687940624028878495857122553628780470247342258829045392155864766339690872114752957045835126350516155696479491356741118916618243367205076946605425569724317196886870090466837298858153131796548525608266818342705656421360295331887073429947260931943682269124111218425935992776758576615183651237924079876880393710356226843744090941589210186761296801250931433136710382961033403962222735380380741714790433170068831599630900247944717333311429568412433220918377434664766300037732059454364846861291835708267527280137165939404219601720929475076845937967208079600035198460047346227992794588189614493030939981611152563980992039501484245576930075849720469552248992679130591654580107046399872578931287768202975808260283610556796275021498192536035094626574160575937777437303456035795743770188556233891214662639874756865952455196879308000178018670404890423967883726433680597192787364334781998656941133875701154243450986222590646605239004792816122778748922314494030219097225878845884299245164347811636327427676009122070254547348960015641663818293952124755436661720963133083869263935369224801495158736834936544057558094603430452005205518498643655543390333245291589334984055642488745315668254541938694273226267545065768757519748587204246132107883952308548739302697349671214225904981573367968554461591664739477882148092055112141497096826289035934360385533935933291710535587194906081374497251397097891032748041920533768728603484202555920943498334692975283524255344873742539644853050158264053369021420962475160297126251088432016153761213591050372251457855843653513658761210802195303784793471350791726138257099530074129616918338871086889008798748246312322890234816072829439970896629879083949084652874352400860714906069027473464539282030662175233442881637625595937124963585260066766668279019128973829671996158995263001275147324328535112772359505442081737019716064622144793560050135090757478178628444819318408292933182854952347782625282398642732530323459562717831960821429908292173187812067313879664749942089475762937770615173316924830937018662001495199903907404012659637991379848631192825409652249156752582044831479860412674389646293518968207587579130701630593078747992668365142702007912566078651898087080903566194148629118957960326678289076957872928587319629076424668206194301115315073054826408547562227087930431516373771165560138594249918684197034666961069248402284072777105074754363691918722918012888291234072414663717149711659795399450952277583669384011950453264880333578761587235826917198047825534327513151290734550795921513311050440230745753906762840077366158777484338864549612559716320956728113043813619311642520781398298672682876827512116408386857471309693289066852921843095608590116257995166597802762332346258090409046003956634326148445022122518851400961196675229476628095361011991544535725618057667310617471272848290542194829133981461058976956659040958569121633277043215924369144648147478856506805333153109592798471533033272031011022967807128814006526114327554003749823366142308406307176021141592356292884992422402306974312134584301774037740226025553290512566445585226842409878381377722229088090742522642139172147296457149037924707896482030417164315356274861749567309897908761415972413332793299759163154149515974360879116848711200695676110040990960640923816938104902364594370972898649898130300659448672794288643465320929445753049844754299863892356732453686456770268920710300813674536331476773863973858640956260901908218656544089782027929102338145594215744847754058139318141409576274214917090075753842984232512880331973472358215346921364747459427074389881457144963405536763989702849765316237618060478690932433482976339077585219112613765592827575754302807465414072321136592639027809604453381340047199973470317201152420990396628537180915277802691517505112670745183284135836931323693261468641048204972955827101444564810732808531842538202027013096593755943469366538983373618814038313041540624372314960063640803680562367503933131262549059733041978437315123803859267340856298677338632021782137506657215764928845713417854781238041594341509183604895673287221626400797070044427537795964042568193054652432007517204949541824901867923885662620137442478530763751982482975090848496609328169152465770232486388155135921350067198578864690085500859066515082973642402089883647774005076612053148246039005245022987920310684747112519691689943483152780915222590226059239307800990760435655143922544514618898046201536605388437084612944576118963494743349268319231076165763012386263058018756766709841768597358074866154164063369529775058824118833319608030128038291229592404468829601489317760048306282703652015394488125146086609513483653330373822919043506475343458223639881765171947122518010616240699392864771785566976023017842171347208768545018581579710136724945789224999289409616865433072615669442724590578078334836615866678469202001140311199138992308319994392289920204951928917566367911682983857812118351806838015303588995645687136172817374164560556748524350135928330811390318479819773347046209484401399674439397515026054473399333312194660179526692401017578406096353649417085874651548052069249325555599024551088799501283002844467504271540475901697352516508997894359995904915332618901383309894306876104172860067897118375904155156589963708677718728785352150138207266274831554258089494849990303735851891157588775313399858777674097285301909884074472809616492317500636358957039932093237782140361617006190165113219777493635461076430517935506554646091417200412884495502349465160055695765916333163728685008454391320416661819974139085245290149347913923719400245741997022170160140241256560621000720604721096022481846117502367085099220931459406361134783326892618712079597743271260574224316727344803363038467908942494162400426935757797335571638196535194003146225730261923280521538854355698766776554755393554988793847198913445761512640385406393016995960027616040529803554097622309999849337878460979267270832451872905807554386805597545604535264465891677087798638257069479746077808774565456075102989906938682915822641664080878996523916236616233280424274336486880341322364857920767025601859285161257335348821850827392312438608405058297057793336830696982955908577621164300900664507390675327612404873852878977888821175563351230052085080739177416392889309839519463991070881686760395868516940149548335484678515670989785583965566381987506798995897271751721244953941063192354003296563367418084631332082578969288522132701690077873715120636862297649072211529271174585374614884129118599548355411128195390144898675593658241532605062065498215092232056965389314445182709138055829758816245998854515451913492358782520335470716763240884854735961071841214175252421199382786836998128768553162098435447765424842377433056942741087553097757617562469402445757071331563722757912155968339581781768417266182506490054467577612602062058788010639576556755044812954542890907597779390335341884229194440646344698777423151687995416451906994078283639707050759509178272095074187244813427114143173153953010508187353115094928739959584233318732460220999327691698729356381285590043418842622388364284600023295316427763100937974016798034996985460092556415562482583935665732192379828449281852767890496631385634650392760848623889427610493619169237397217420395339075497074963530175587117963551122169003916543622171521701801303371484149425019492702106502449569069676795175276874394411028091077518021213189440185229383441269050919665035268235595461529299296472914155379713932464110837748440039256348869213033240927975608857964765392347144239069429895196275201806341648735099623443772508312736719030528195008286069603226632425418899583020957419838275053682289597017924257829223153441008202585434584732196022040185232215594948696004907573246486862245448828435875674068592575876278986270201745863478947635908191690811018387309924646269174686630869499083935337760180457731751835005599183797266120371894604047830697715102701705740203906010449834674590078258163641347698254874749029823040102383051511671586466366179846236421198104382343673691426925754502580652269912106964197997860094626001201539851113558986807039648538601774655330073048928519355308051391098172338041155139351528250306215204285660629049032950358456635482005519983430778340475075442362884583418746919187672220758669966608615011786879976022665706906068361327855764813871958564334243457552636939647078944952426910641885675243997648963665173695722814423097090779348316857498305517151294912443351209580861681734626899335451418624117996780893413010222928235510120609428454238361819879339589668811764527696108957323571503784213088141067028820695065730540166366951824738597009712513206691377269027291182922431980843201974035944956433342138340993361522330316690030392003704644345088259909183406328779273374597644957661711112508817946937922140911030044337054769426343752923985203027403158143520863075922510245456720409367023455803307557849872303637043803020169063320867262716596251303415753702019316140375531729754592541851280178927735553117748785653521396878854129265511697115242708668675000615159919260526292865851528388751661393873462392429650682531863337200289089337878738768003824127993931465527205498419883006563909270866737770314000791651800738374450562154969487823452397396857528195017698935586307607301920879244239673564278107374802286687272599210764598338735197853973592117381632650652953628549765339878439192072518989975977242600525644641820655646112117991821096770198887844607310651433062881391595756707083378149046270628247443383730998838945987365251445810630551562132907158727639580146169293025159375210722353040973705739583217571368655316602208431975770922067796618648348281545073205920754361247509388690072409853306533901966621751101015020218079667435293978860253094807346659907399084351223309389543720834026547328188215967600447410956047955485730878945734642620288875873442620427531602115755944225608735665892859431891182174876807476565819634490540415305234135647897193443975842758310981334846638324365103879248524585358067342763397301759307185818487781605645370827607877433068585121959775116405925266476837487741266502558045463338735198381591399215523707144821148061572793645178596670635524930217465628152451782252214915763155034229504166549065106185105232649987719231426096986059872603292332216163056307256940142833716074985383781544380820813306125081426292816844323877722125084758143211958088272063237418095747549260872747346996613768010955392332001379951650643115576708258980629165209188534594720720536569937965347395044428111148467842822501339896700713851571647861167897672075712084891026191106683661186856598907896853409664410837350491172569486260164301772310722326869570654109609944029410514713787454257247515676362104061104899365709610538464002163270037921522939877474384392060718281809415690909946234252214928364134704578355165802246334760989219890688415954577650232065160544944670943238976981267832599675052259155628014922147746128851883458392810550513141769970010589459508846544699499825798665481640429287239367225583267631005787480063153302901982227648254563642508723359640396881511119783610269446320484765809171628956474999187815944259070642567038693736428477533592014960665947494954024169714797379129551730358736547989749992508165938087680638371318812552882040680155303208324451126707570678101012809903996656982859822537124359077260277724528986062343469472972412830819921502829587827853957413525623021660444389476434200445501789724765520576471518758031584020936596280124165348833553002657309269684259579953522468307689262303024222050143251392265214205586483448580747747739868085212162426927107353052962526973959400159517992720216409120850501377561949653859760937734101046874580270273126302944666853246979010087420811771667877562110978031964027927914472682676332337259464779284733976586918364970234233277227524882779168874597070756448414666012229576726360281798290124059316742696430420403397436175472207415104212904541212408525347539467608141576148547979096716073314201922036493146373342076634248330274609963515259340237165509022253978612043126925640498489017823599003832910568832361311910941248159108572144636351192547827870887877660033456423666108399489339701861671842656892034771594629189332961883840514323579569144270513578992144503805501965054433637900891154392867802582365588229230230007167906768051331425723743121575148483031219609640398191481545083436851083834949618837949325894590863018538000010009019836808704769945698168857652482684270421540169125565751021950779351576753946544238863238188398766648742506885549058087654957981507757908120712728005909632505110182757478496348082453636620983868789427132414776954527824642734219551871341718497429791630561001045442059266320176375739650728536753314555701253869179673074459163959985532612482440852856350128957657062719071624616141088514029751279018620894140382717674774053013947556651357302582252430978294342861301648648716673866604353148451382184131135570658571365162994176732134943055903107255538920096413621758616417358633435526123085308760690698265448897074892842409070599428928539007012962880047442177685816025129393986960199758915316062845807984274285423479573121181542310365085847259306972814751908217773766783062156307069288667698609487058394287295258559535299967595735789761613945231462144640412975541133583571703447746660611608714522051755316173798474778232066010990302902143007190344210216133537003298138018249028669948086940350413727151758128194639279958691654735439685707635966673961185303092426373403422360515616787041393014390299961867664203288881448858374018791969247000137672676482712723557312236457497676664113530720832745591427899537912796284084502563124789099749590916732360685835108803662741287121027959364914013305974017563627697505624166613908344708068854783077445836210156506355153604263357591369364043980281215550531884385270419490978942931160678934758078423818526665593101662548064384076637535492393158735292210510616959703298357563910029899313673614910787730807866208636171065091901602771151667146959291900448510150101134072790936865210425356173636865564011095964204774223390057262978856060586330112481545888284401254472614016747360406532796057864027430004285190169798455277845960827487412932280994886579762022108565843217179758784238342035825158646404736960019643988208934603177290410635544788822540999692806949135705778737411367561142230545768939998176293822155357994586257370441081167779311545561230660242109151935925941767068710168213987382472420857085071552039356839971872942658704541578719043511212291635970855560292005226030494935342851522084918735301925751560595060591122080899303578864416917450900328453205627465425923095762782248249643382354474679974628181397462097169373754118916883708891038184774718353103853379376787699386985678196962231931981388793452769165931976880077823652148695539925004194618741414344106850616394655437613814348847013961997465853643990555646862747234670593751724155109381149872373920225517563672179350548273180532583851593968305991635663932339647934764007003480375645648046423241078483132445198637344457135202482754071528666819071663714437941318993438900348140588083815023102113242321067261920442682474675430775188857839517983462821417439506011013078821893319953689347341448837862804499970070103544472113137828288083861922851822400271290284934564573050899894374993794012057021197257020714494786720997799523386157598647951508309656029844786677114308220940949676790335152743293360196281531108553429786208608693380566456409682801472331061430121671069243873249780754454120730322399250886987114208265442605065914659565657730879185764039127818642272027587356400541840791392553496490622920613706777761551381268848084193101058166511368582429824513388097403707012099289543321727656132402612586750654039905555045978057377175981307562305240085318281236926874277829333428886274956715410237011756021367295608024538868766779864700561277090298382201925463623107714386858050540507576333196621781596337913400324631684167010354051114154201513018271384030199938627774161355554233230007964172095072567663215975918785162810980114696764028806257000500054221564277458509718721438958460486485012901467889091641375274457004259768326969677134440016651383350110444205028186449362554769708648920807284744076242881882571106063824489844057747684624225450578100123180527787356250953028485303359128839725205466667630840466538993950965474342684704441956766977723332510095804496853126849513664495072301136758504221438009911206193398045174932504269039638175171937883901082612793766815555558669340310965095692955664248665313276759352855954896330068823176924956426220404256078288862876164838679819019218131701167346959252468182487165505672116891813921898564754835430952610877189604665424857192628883706035645548947848377664235522874626441265783203965760899474387824697995934250137893109188526331034094225764423252008444234026119995255341863345512621991360571223675415157221748353227350263841818714182845476612963410011143786681131930671873948407778716693439007333844960155471705899623048207786549700130539668266624755622272602170195217434154997177153474537022377374470979161038348791859746167084440071733699770683932140333424409831761690152505407354134727890491054168272424640471981957042101324915200361453293261443987283936230754604311290660499479488289203076335065503961365349363708064958120519399242547247716264814501985402146509734464700703615318208499986402295621968582326797760543656419443146393475529240915355751269899467697277222577947594765391843786182429665827884357369405169031048433837396958479115400967519210824297612000725454854459546205600505453318819866032127835867028063621517477644024204356446650090150601566907534533575887580714510196740064008405654140120411778605913257294816997705737581753759563540559535651712854893655308646445422592786082047202384958997828856580926772164889604108984397641465719857801763517012992150518095618345464303401780306420793993104307193602255592582917714949992052202220693862220932326300429383038870763369890464893646608071308800781407399928259052515409085682909280703910941056104485558676453512841811693445333200497928299595856160891198006013163225610936174071733191745485040311250032991107660610803009343313662389602880495036508094987090754013451079573794118775001090795228930975665461279564232488647266661650635395817557122008377605979786064960582482342820816054709661172251328543931020406042885247510559726220024221384068800467486399340109754079570135411448163913826119989040266975013749706852349473025053324708593618484820471253283109622968527847587493358757234176580690142907493558894780983098702088678292162816953306302110824207823371379068702330058136392043265718397851195658803351886386516368147877901865358597499996992979845417058518762555089091464281342677139473772900362637950842973248656756371101904700106032583526984281491896641119932753690280694509172985653297493620744168329067191136860924460240045681420730314121150396213704823481885319981328514688854108177474199643818155312802950548305588059176650006901693637243458249958519982244088192220027437504962455332653140478247131226069159426484377797013343329067199699579828950529374134094711621498625204770612703914522153655403956760513929981539442687056229240836853797293783953057561064636342601991446162673219833076252061526230217052859230529351880148176667816252865455819122660194663093096387817405598118550946638245494990954132744734698292478991370884203930610669313644787704920827475197712575774064058008805817052440594649100861670099308513129037500483414581939946420986606687804319484602925742037926812632000027201564387977555952908843678231116470044488784321721722091312205355839281712653507576354087983204438454322599122769435441647427449617608587342123846043795214800500682312843282547778106485421710295760468094613870085697881856340254684228238444944082775385701878057002578150352366066827825872356533164505174587586036666881668562296979369219698232595206033087717313983553282365677549257355967967801017014813655355632020617925925254215287009537961341280396238033982728567252615136006864156643896226481180377133632919690072176414913686698788608313286208098600537588178447168548751830566002261408422507817158225532324131071388341252341297232174288039748018773922590952787822963989085608575079878125616314695981883396557130684467877378416884380762141828120031273441720383244305438530940552278835082063659019864766925060597594577005400148048302581057029529923785334456363096566787011435593023144407745623413379722453693561991567347998186696681881060030044947625456788385099092603392392783935989678244636358839226690550098043392971973357553496328169822279745683928132442604569035271087835246023220279884175989260829873995328295285714432680604054500105249064310868544669573223163634596780610533361824021496934365222284403541618427777042480612493057431003882732180342614128628695343149225166137693182222884032371782783198469054536905153415220590365876175287555169145239101528104958030390281090118804297312657338877323222189810217745439134260383891239854543074473593120613852758418051863760479115977883022360113905474405177872198671588774666369606928253976884096071482500230646156486138223654686226265516049203380014878874982334757308836157492268594890723695579030968383495264700141113957921178424954948905939791722204860073491839230676049411684270126412845027715296741915517492480479636833534026900060140584923420575827584627533853581702674860555807460844677473110127898067393158926586840288602812545812220458447858868962033606943402767107657873127769289382823013137415460015876226052183322274123569003882877694113053448655743318203081328017445207899525432405967314233088716487120058653071154750390755659075352992977887054411694719347560441416278613547764299759891782901176091221664741598499500833874410564406311186420683050211520550901288443645902333971007626117457922027929740173618625643674250939161442925905793178293047729194650666132766456010557252526988710284155561810653027618258182480187633472144465577252717815841525026188218144864611232211085355947259199960599862171621713658762097303823164236015167219098336733560643506227810998092384944630847855979873355331799775461222588223484802754742930459765123283732172454567194274145441566307569097015109336746446228006913345167450506828393276997962345688274838872347150136809986068407311923529033599596729030528173975868309965386972709488489939120690129061716598966467333897368606919003760712488736772431753707136994574933988747121190502164518891673527554971504873760941297004060764239563259809471572332067501211870026095487787524763043210951788710369707548619236708543090103243819490852097617478572504909083978316855704976557854632776526775733035890935288293642831106891809403764191618600594273544593444687945322725108506295131826232710260524212435420660091391819010890885209880533648902336577296942494757490602056446533504600162180529541521639527916651595104820346793411338290839767581165333417090088885729011967041518647428180909011551869883693657591036357987748811174388441367666027727742098455878613414772863974427504713627897466386059580762286542130807267501920262919613136295708639255470905674085528113081865742233986757912184212857112522088703155796491760266221304237702273832471295692639795639683152665226757582397297720782673649481171638282116691653144407225371118496060298144101690984550357647440277866140889457584194532566931512964718809682142593542407165382704980034810056745959412688949626970422199261713114509063004447823334171645605456341556419286398279017130532917202969870991587606570223080305977756300277748424383137871074218944733155571394147349429153645114210554591869650080473544485029932432596999600376168263425429681800177345150202879822734558567769149372505384903760032208845506903019369879868102036516219165195528506803008609956052668977544494897380902739147023794706887972086629370035073528667105195643659726332393253550415021149434347651392113621276860196104627442467691796906553537825088432095446675898504989082342253569163382439810818662273127217177133802307309406483062742703912628564256334800782321753736866128397400580852104715432887340761727868171088178339161759352794908739865981824738584095936584522344665769858511310023276173522001613431780376926068605779005795375801790461089200724259545377125001394299691405952166290239822674394678477819810538274927545624410478011245812714479412183803618293471092964447022221254346037868618404143281346307560667721645234194517458429073850861161870729119349626642704109411570497524744295660716280944850763497098753093346645640604834163240384383838320168113911533252520855676849479890505252629252845390697397326946741728089060775902399475271914975355684443544521866677266183872165745761991291121112707734086004220227770227199732919081449008769892945609560365023640521436437314175433385843649375028736040686591177331971438282857377287976837107561134266573127506988860315250190249158568531945381907386722664457622905294732288717959423309938559499400783565028532631168350120134571640228330268914763548883925586407939725846840231112828063506648858874416361880493474632132429334041712283627751885631311135623209964564195410204868403258511353261316711015794898190102410391180780271917713018370131782762678609108238490286892021456106392693192278522733978219731072863007607916221775264363679756974574904350506319402747756013470121870816921415824872007404293700780891913939182920962219523885025351204298821538649210911463949457562513723393601208704824611843369738000214624746153328768414798388203469771281219896319934952251492618957649328734838367261034713749830283725165260211652530409880048708881991483770750023155718169919331559202514285105006868033866357224804469715298672898589058125689804964128487981291404748736374171414421001791060309150288181641527938776466811751626776037444918879126432130296342018090650895602139301716794760897246180647551960343126987888500965205565865808826491145581194726667140458481973789747696262118665599745399198825069338633622067389545029068425590555833382437573677380057180796109336842755638404283952812046544667560852214742917030562197057523073272449818492801796491197964456095151483150490894976512558291673372239203500259007068113357335410685074902725863914628375392943902661930413157513348658699219813950158221057422232523100858789096600231879510698255013154251973871725792570279180331585278908304008638784813121338567109772878894022676531307572441303326946174560150470243441765524602461490381481144238531345183809045464635046785365601196727755885817473957969178065712736224070031829299258840522990269079654045936972564121817647226725526863900789016141280664145523620331249649736544737388544594895666729428060320928086554952993488857753427318703653866131764701097225534853756039338017832053600253485903192978638550723339523259012871790949441929046134630318184003664197817747494072365691327552099922611302812143912901826874519780051965139481488725360813307454128105371938138182497375821788780724587400311939239179506152527186042592902383879298817236713584650427049758818243474204902197263438339131908367639615507158396616859870182488654059238440607251485178260897409959776495642887530682885461905291408633081421561575943872624926591434235704470950785280920219305791017759176061453086387722318408388927503952820298577140033945798932044814980050164565105537764421711075415387248176690501169964871175603261055498729223882488721545684073864778298363795082073105949066258008717258851263996467549856714576358304191748198022917838462028393155300504135066614090165105972239279453875112001808240829508636320450491747795312051492823953105174807763208729110411461017969571897801243279221849346241188860861535883195991000118596531270628902418517331547547753239178759462138995275451887053501293290396793468424424644709655941965110558370940330032419339840045836149412203752802065435313372445645229873807714266530850442539998123465721605252055209168942112310764304302682344859476874041929590798963966943102500623691879767017079358418753853712162445805881250503639472301025457081115007493055346439042692641324040760938011486696147362142003518944884173888472903982943868096273633606720587453661398913736657566458844257818160804793215101081296097925511935655059450732879833504146215895931311519417549113846899516521230018275496777177222004660193386775840140760171657930268359745269573438860475051833104757571079946639591521766670405564655503748896484720845159384341606233864560970059305617627426474002653353072543874786987162329493853107920335280813076697406348430217189196388782626344341314502080821119888425144410871934164815306344474422311769873796067455772270329896651003628813727291990786476818611524283750249547279078282102625832844036628998272412507634733580024749674399765913597646650178628959572692838836311056155770830337233741946380028039313847500026106050658874391407719768478499248139462311747353165427770550630763503707522656007668849796109691981922442668842528827718810062384680752389249000843898391532527511439824868455090376692276276775611437559796754799934754577085276407083762286967976178849699742913452220334071198989152619655861700358932290085474649139945634113897710051899498182469322331007409430953025095224958185019640231863723030530745056168299083468998429281814021413137137637359172958500549520724441684557034064552761353610320991021488557616915654311230084374183527414950570881073478510602871808495218097844012729990784275564369116032304080759583571383320933451869423363075914119042346380132745542250901000219566926844201208989689678322351851213844711769859126582471410026955402923664252723974918179807134135567960482813966945960016276374749943505934181959134781781490740445938152645109888252601116263088239410926903634683287778419011592796673206425397448876975966806745874637616620955541359639391799527245284509256468050648162349311410652061281783144946453738578878854895955010262275671400554021942717728956739072780351117042647489883203996239611094360855395688276326426970542550990444106822236284753347986386373404409523459337021602154512706588925944906578708394402102488510674364997780026610621257046071632642225997184872667495639833606235944938844759653380800188594469570400491358497187660721049770765716760393612722465881753232375090441953738476428932203418519447287022381914416979949240170059933237888396581396132584119527068173696133723123340717984715564485899544848526239919288348236875429411101677780768390524969885182077829264224517403517307848975034468638489416996174646327491781057059111593511784281796912132846439884474168869402032362907136379170563647510479167909510049730450437242065397481333606504080058276144367929164984959122736866953079441929449305927018318758537311025384010933085582683502350155739056421925129181684846153643308659762536526616348557737735794821891670825947570426419620529888981075539724459910922122198772314426211551405090646002915253929796906108154957960935482914926476061814119799639267095892347810321425121443973273653156615405125999885380069977038464238591221573794099782211306365408345277035542842988383517780939900095518307246815369684890648428224789147213614074967174613090151431851012793153097960618366403376789862006573623030327194786217296547036444306595179203392519679305292581000019521919434571679846093210536753399344887425352051654026700504504296283167138004819143658254485389084806478494474003641887283994139970134380491154720229037164006100252677255398859542991857420480712577323908130082105302351513459745939582189973696794008051025446820352754502380489115748786895690375556360263933739386489741974220749707009502865925674858553006647972148256846967065932444169057814823192544278109705640267607025910297022264138851301885109696283998038721421910383989854793085025128406324518843987536946513106516333361624807303792428640183420310923734139429734448570773181555362766261254623823016122318865280968507470371135049772361595914766767881748040475772824945248804674091624529522412532272214406479202474077794929296874493184779292134663409696778110396460779580702804794201685271370327965631032078098888560479731345686322604257165121915276730132345197621218698000863418076151486806059723315937654462128112929553901234278792219802194332760415146324911657555053920339752042461233142383399253557988104423311916483808452448434042861703555330932080702245765027744846004062861828379692008066436015623426907326058995872509820331038210944891535148433498115360147171089370018923669117561849847210270272651190975518247349818724848934191888531276403784397902259508281502189918781279338183947397269367814399123274904996326576868912658632539223720314414269292774181802105986540334420873248586660343806200797921794307130462162874677349636279732317401108436223950031544983705893049436800047631894669422048912106904684824462566756578675207726114861280021556636105471582860679413357073101626321130013935835244574895763471404813385416690094620816845555642230013077424831727423558834872286359292307411441613345871349823364363125166529376872508244475483094994269727368740372977872292086481293369516009703038871490476227282653290607667031962041106295299365591550680205178889231236658877685838508822429964693958867859036931465272724102243609166486726348340626982248879380473755377814895921739617380077801277589785744864930291191174965150417986194734629678361822719413768638697679274735536616532618907136034963380031028249415252019014941453088045721184441850994843003627674242630801885744342681962649937508437229304028202912458926366092063080673778483202708009959215933992413537356392675763921274826371576847595095347657904123624104463222840388073041686522847559682585247560291652148612751069647782192788874956656649909421529369061467084352683883013490990741143869188532771836585135352922074607300561747055690090461216518678008226606669356169044142111378515286820337510815623286547850051161749157580701914844494791273447194360846376064786890159912712187689019542834872877431163429208691964063027932210029637701532746900074936498816300567649857121708158207590552130005345211122335434468305875783591679575054165907579006872659523987208789264121992824495324607324679719198245897246006429260862569078867407789123524982808765877084360557432353877239714924355414848618489178603876413618245649166840216856399471828262356093757860096084689239845220464079122037948225274717897758002765491764055311894833594215227878774706630371492886729251994526758952225096655654288170675569096161477405470319621035074586424418085616143398727689351766334089768933996157337207856166830001927650675304389836862283526489936451848687674661570983665925203701361643530368233426923349832756142066244975277433079995870455341125465456373159753544237235742618723184676457436288642111539298461602366898301995741605562943910616779947018794195697343686273101773797142906418465787249508657561339156834765687498161462750177434763345820297462503041290599668103849434964859745930082189579544113012631622832501818420871049867141395336194822698354499427583454109104355109266816004249754434204499844474925094868078752492837630461920709306379541744567073176306249398935221226472981927853680003495756524576270151208661968521723477564115382440151677559413945370724436091677846392239819610043501556823741767038383353549151066314838728330877288013561447015118895594282232574543902840650332337495295329216512387840898609964582120491741901913084993826954093126777603979320974098455050259002485442207331209895668631659525001735662630465907235197777007830162339018906080949129354143412733389860441410443200556052017346150119728148202087700195414046972940799436129026103410289447970188496707383401306777680989796471417339415611896959343051380629646981475367567023554494567044431233390938604893252044902936680541965400521280620945212864069469156493596821972566474997419326042188834672503897391748014198373786086512155756672610725920384213276769249354317330125261692097245591936281444123756811918048972019200149104314778908967949548876271719102621494928796452194969702496355303841617245285490700723105404860285217539599346434851028249193500191545456025397573005241284375897646996148918198751815014548349079388903342727699116089251799250061756961493940633826106364454825348513121104984699544168054593866412404515972744203712664245495207934936857422212754616357231952918196909896360674039157168091080073533501484582043944082092939433880500743651348532723340452183307696558641068012661202539867773056079652602202822796523374565614940166555171878897317471901065606486546305416751035199758198001504478740845342333015996721780387821996505207240446241031076704144669156123071426285675364267625195449554570035084712033883468252548470820383233097122438450833898374647774753815636591403888000291234464913437209715452612451492089707491226615485475309519940807991803927655262104011357628298092301236449288847467851490219161364664285331334080809335678002834229560557307490628758914849537681840261284905703123031247094092657771765411935118985785514978414519598316560044462083234123110298501494721813824495007314429741169118297790155124334250304957620132839681075166015704096995320505080841737126239062456820361107969726024542488182835207661090309637881578679765660066206230333490446743360075123705504355795047617255992282940708336587163103394023362934273738361893636123946623345044939666719725171939320885705447362392051724445946514609229178135281240458633867658528484888663083276362091177478475511580580880945447950687706781211118222068613859165175125882843948800615994016548643704550155025763328344229715207359184682427721306228032688817788545484267101855568418766366198214427946896639017588424541644398855161110849352856262451882748385948870559715779924256815684587799440207342099511569431488257282350332756029040208182381581930040585468543508462999338299036263443238517537201375295052655158552057659504158567783823363634851040838236254832906784062486579230967249344585356485072698777456569184432642451813670295107971228125571778980799422142605017083296384988759071423829900211376227808636701804966093456705057572811185981180512912486564540690998878611571828450073888051446548078816084681320294190101616478707104258155532555057332497400106159738579851756122986503301807322848171485388943929689639796786786319387263903844475404458086672956094640170410497294968141647713761351832588188415658885464484007703041897970840859887785098744323695229895037143609862601443570599088382943161916054727939026317646520346958415865128866429240985720149183345441598785916008866589664178030397275744638573154821894574401364442835693235251975751518530066031132522177777499944497965598941253337916336863845652741006113744206406150895339324040571022371387336634313568493819356001791052643084289188734942891678633003846600577341274419634947365957697652625723600927426918758938338377065012050556727327104396953800335407301490906349062230535815171665477545490037968783348731612341334721130314916445368812274597392366120400083569943688214118417551047433585477228808959298334364431757176687629117417986313562268415513805113724249119396661891206556699978172747527929122859908204315488094106172429670270279990164738998781687894014946931017978741924058175519275652191754928208035231771439559900435311715398201448985872678435728140877311750236742955597725650763640804875286218463286347618467713689812938800384519381876327495943926153605096086258523729539957952139572093661411616306501412295587788022088887558649066426143598430641265246644812270117918706913116818018247903837560785703701684696252240180634097802934459297775544261263403963352301426953275630181582012477450489483756457110933035481099653090337439287927501930167808133329855527353378696263366172040478073066137347340357088648347100448162259458636408784906019132251426518883845835185811073685403226500536899813280487352681607013157256072171438347356375302152346466284672759938822031499344387062265650072214679271044932185063184485641497782863752196966221320214772826216392653666487490543639979264869884754710013021442398085018569856066206785679067757793598945154073022853601153786762795225885160748485218061691538221728483416083360618242145302675190422591735577066892470746731244319978895978521443645226845919095173083119755767310621248446628952245093789890463206303053476600302458350291516129980272333450833734925442320138382456855267385596643791962807960277340824915509308524827264458403187002419415428718013446732546719208932557243362400217800070641989386689071599169180591510166469238030398309667664513081777511664049797550428821688091821005511437360393010574644348343516874044450833217954171748356139700278350378234761596851396254934821649431226592516012679467045550306087417651801273475092003409539729817323773260613561812511325853260953220146414545714451576726975505644580091005779228179507387317530835388287001930889495133711713311382907814955103370249784843891327855744667878251094481737226825617251801993024429739592882422131862705195658706138751942091810997538050757393374062204829538580144378926405901880444132308460046728263473731428430697043194028424079695144313127731244594627622938120824130277948244139042898416970504156022025359008943488143941193951764424423568646274642912073555131598088585688079252634400138537513240106046069269115384043251950653482169105479688440781981326188434460321393219136674280587842222339146517684392014254785760554877834124345678495698098231689110953704828006642566550271996594858008477557000817783223171458810891902193974033143715003381439930536573815860291247651955918536243910179463725122277533034715956929482249802790135082574222763984850334764484882096509535287736893576873906389952630479587586804964918912824956151833402699730968465807990450854705408191180671629719225969970460168792103643699887952420185190345779496275131324462438337114430857471845544705120698906729058190220342743711115138854205551833603258419721643125097197892501578941326884310311451675405303368439827731647132502422985190504642444183719077490662548911615276213465670716380447703722876785498283909592907312398189005715456802867947316451919455273760098661968430795202151503052591554481337110506760601661789544157653814751737236691245413239679397310351060551139693601959698393757036813955938750365225672243664358974941905104706938794054548103132002019706800609198570788042181853920079269700943349589934835532913743896738256978146114438248561922020421626138793290819169825846391830839163631678204544532014091503499775933988182112742505140098182259823032332687690032411630847405504282661904267170602858614391526079959228336124384331478513884877931406158906330257508231851912499431097273859768424023830188664723129153042938784576792720141198311774384291241815409566557425316987809856798692278844395308592466792145522397466382342559100377635639944758879954375000155472251700225019041539787135936009542205830239281121206567641367991275875536417391094188471788084907634591339113126331140184697790665173725925421168834533866146528915188392451027831476153075930480733419940838391223545740055161188664599551580714270732765458048909054424490401491614046069981158686937071188339182367243746015193238800036175186583027882853164809734001902457049068734872064911108328509842718453230568082920419720597678212969570997583788645446598732697226912994664520937917911152132624161038111795260413978897634378854131833201918146521465921437258578667093898836465888084747419439795390054074115054461205360323171365231459359810760217107620020025571188968044852039175401334385779039622552272966784018640725864313776727503563250383525415381338225999378726218323077198615649438173274626942432528746037900329030919925472885063375903318690820926148977082343169142283877133952942865224161826784574326757567268288488209212358896909828828071958052975872595108149065661176281651040054711700696420498119579427748978281972849092635498506379002358212105815874276775161115307906838961178319949316397314267351028562492687498986263270586121170759201492983822910995938604792199504494649317748991762708655174118030305495279073781054655760255081986782435947450326928284564780431714223701444657773015416799714933328881554837871167822466520194701519686587826240983578027144206782121711880096992631355219843948385727629162945599594892270189489217792772461848796092175250200021393472754578289461884571658764314655898619104642372148394702106981038595469804856105258824711677027845435530054620236750552958774835364964571559641704134466562075517229805103122796253494569043485641784398707624428965506042586308523984972567001987011557686051957394818862463361204132016039484416659788997868337331310667370100790253624347979463648059938435468378242015366607770751812751539857462601756510500567124677750791851145980716465625784106838875856617587083349836086751198942392476557236604840683511690625962394235634153969798780640910311093547435615971211683493106673280320104401835776439515248360613225255669356663393835948389151360916725870932204729149341463052196963924506906767548921198082864980494263692416675425153975727457710559546410247532433922910846755855922445767164676388155502252949704026480109058044315909806113800966486082203318415355000923001452537593672180887440133947032877932154146945086313276171518478105630742135660932850480850809870673371955660915213965512130161685145049922746689533056243885459694543055986197594617120667236239650101282186188514064728179893412369137360601023515510542407443685755022620181127977901609349649246432097540820110066468563637721452338510014996003538117379727761350480989547285532955551519059380402403982241547208118863610800793786598573581748825087911474850855302148325835582480383662589810697029142365922213138614949230151971057183994646427328079432375745008842941425444058159697154350481575083183622006453102205217531177227264700320799619268155952299007097153239220274393969559094896934619091463536752070012508044526420768231856206385300959639056938539131882832535659691966493172637641505917559299681850612227935966162432756606574496988313566060154076122557491840703859980932014012035430567612434426985916683691557088782227354272855349610163264817442200716542923528872278830686013709209215497100074397558588553196153051281667683428914893336602034569657286962580423057217466432289640437381147137529554964863214568461146259603845503170736193256258454392481083017872231346259357102926532819485787940224453230573786610608567583131091051148017652777338043633350439936407474122761891185536008980583421082459953846557259998919408816019651196347969789087341843303520077542988182782794988521653274473220006013733994013974855706003152698299701538759270307913895353208220803673364130697183910920770040804805508926818449659810489128885068833186828133829075729330869381663769810256728529914301041542322904568470039261503049819172627276983080360658071893715734029033572666646855260110328718710670282329018199084432900749740437895785870349804824013415246271183659965023063921208124552126210364093161330043445004444726754459230410827376000692489618004679778426664458286201468343997414123708417110175075321142575511900328878028719620470351276577447592865784724573877924178099450364148364829440339418611189839547500510411243494089090235132095590075244001485866838295432146150032057455535078498167164175204491006278629528862455706778234474745910229231769166110734385739046044701053858074572021979101790575778853380516656599773135483179570795565913822152702187249481671869156689621636800966196394943614313384933445681053714220142702146463231295563490344619541499744348746968845391552547467604213239992898080763182753281188106764231613479315306660311999227988712565038293528452986825210553260385182864432962430572676580139162713739413990577544946858921719562693848100420533291333058004552682660617276970924049216050795314395126905475495662679051023964163094388413694575872365788055421063881315006720487741857948254707777680731867140302475469957069708842565539494616946615865460701015791194409147156617286266073644770565449916736530646200667145327465115269630322254174691464200669577367765076582716540779469315297114554316673861397893968552967479996991951355795937203001184993929637512911932587381117231901038646926337121066627172667691588898874762556031724366337496523356525389575318627126965297521263680516308469840755030351457087087611864545854314520838039203216995317007932885017773067113164174917170165762021810221493413618154607272035487902310224581373062425042321238617691068310901671374371457536835878408679553325639105982779014927446288593017579869303396748969577768414322915708664277606724511052362896970880721725665444725807769205414167941888253578115550882042167697791123046692049162778879329075668757475617978857045547555310665228476667118208218644978081123025084528442261683378348233987439736326426929057433899053895691535310058593265843402343779355127707214003382210606388857041315365694773654291950271138832012662201453811055233294042968728004150012351089176089810700722331496655686231597365821036333674905431310034070587597821440875311252819915765757341812388420759093237180308874266933701521697558516080811211270188985642427167901982480196954625279933335329815934974015403151223973899645043864846505784275284270291984983779381297253482479195121765086527229983125587770436215497219063264208550445275188609368178885032032657438835181415606660295295610691829791772666181348042424497989323172109549450736661668192004696992296291127486920479765271895387330427404300881536627681768338872244693492213922440080672472803534382192749838484789315326404523178550013154938512936064875098336251235506282650552339097456019549767443314240308551764615701159107760382792487428459395900636701896839998194638345426368615100518480840095767197769022473111126369094972810723223872550953582886339670504762930898620356524394362405674966441068277453020094359666725669671933235922817359439712592335855024425788770821895795011638025282860266742733314089026356854729582899740434588721468867144245610312061666036884271654258004533459480127562218807638671874013329278872928747519029330394697577246543529055730055084062584101125197448909536648895905292711642465880965793264075077281639142042468320575999767938365313780659019410300848326911860660287555367905591053207622336840296288854156605203565849009178793994724623383335261703305337501089938549479918493027517930571940778415882519538029132575806406158421835456325886468246840371095802611648049632736718027339961577655807207095490035050612202578633702759148459947295544349009507643153666004760387590974819306521521346329614007192263572966662120436059642299091023765397172994041973243309073013006020520506545725876309901026777347941954832308454355632970383452646068785327080698882493297795856201869323078882602886931075051170851006743962199691196908340901714177598060468953489563846304465250246881973220072926927160477470568340681659349372434191407380087602743112417475271515447313736293381062605845633388818224169779640472267741096985603130535019686804920990597838339666566962941801432738781422974852503716011857095073805653349066292992198428848667038156640847061470926800058460332964968720033558009720650829161376779679604745216888683174026033771550355980805519834740901413047744973268939953518082659649720681447874147479127638337206281243348285573640354072148775404547753343607331864484678882433020295774888412930249511376946679207108468007610351526164047220124717058188530679335005399122774850763453565740075507087866130107730511240665650711321862367278930794196970972482394983917928527229995116761299491126281381650917625911401290948878006997416227578117735463401313198547195972395117457885136524212838263215186501112969854698661679504330168109551597631544677641769049664526024162305714109158205182316787251472918525014587696086114438098131631034677917977537485615188005143086615061664419647689530513979664786202872023307829908802051133798258261062808376444349201576647871183054862834794245609198742654653425107931803889977993360979942236880426233193088409338234888951619009716517636917895857809983211645532637800898869119967115211487106646184572455436396571739137256437658472638652256578309955913724170471363194426518116030563442744005353094727462353055343153275720580555894510135008408989897672256336670851678454566668017731990082697473415493395596941226759156339214905315347992359708034452573062222158301054148863869557022941579646864078217302687520661044829100174779732545014106096453035607003420356762628617758034442126365464511857492427141032411660917874173332389316388937619040686184429018952082916109839859767490181290783966138377163344277503376045190861792793257108075986087077474592854342783847820727609494101888513089699392287278878153948354163992765763815550841709722372902559043962703738937871527118128366842595890570913985868852415376104337884266431312525887442709693020158958613625854106464635402690813124696608839151436815045827136825270342156172313634103228280819464219092203948310973656001952953104100040058851781450139266539553642829816728191940719646692642943893147900678478912227651630151000061739854275320950206284691566658446661428976282593825449058499367382741753010056213746047515088933921007597372464225066728639322804022656599582702057987176381789870378777925991635395795397293779471546384286328102927408564691363589334473314854181698575632526501330985651837766977694622349148388179486693318579508883189402430107529191483656455986125483146474490159814996741383630234803891342478848198938815660235761833843612423809723061091450220061210370584081702715320013755276114158479627845922538908006520779353705327238677132125524235438260195702576768676214435833878126013876310241234081356425505327450146707922524023199085252835026716882238198132439552081459711722854754582412881061660557636216163125854498885555090570130488886109446563064967213341466144953138336738391332963007188342813057725647523061750474044766907468387451069160640375890724456986243708176080092282027731592564952705835512190301046129640823888715220353959254785487755550384337142341094259787460632134116391936583148315000554545455801016861747314298419781180416129743397777000163371183675168963203086829858742142258334939526861090987121835029647938329655192895680523950068646977798876475306085045960238548470523220091815675365918824489467902461032588946180667441906395401082622775467593560302348236734728924069981643977468842777133337639728749296347607565310931020129876466863954132757450902859267727058945562782441541178362030266902317831100303133642561251915070204942437673631883235809758576740983054105318649907195594126297695922265637096583221455957198635340086745739904342479812804745608753141816904830062469406727635521903993491181396879008191983855661076148159186005956246359049198150796392258337556585050553639109858088554211126792297158302135470527572520052336586525028458142411807116797490192997522670280651932654471181499472220612606801411713465872980174244431399621489008064895382929501694864148550910069635073965679403088434356233872285334756447617142297724292667392230212464735660508637819247691070309987628006065648945979772872484801157623355452590608188355546993564554371755987052220118793592289456702663389718825540418744922935142677218907472208616017686749398413921392160704557571608117566914834632284716743055640474486446576847112168411729386326418669659532065021963378828035717364222595319767042920708803990191035381312097843518306838865548406501943566883731009500914546008818596500846848917132937945638379416524458794833189603823610158223270810665267561889094970475583519012588180718443859529725948016584647174726114921587561611445199709811575808551928086402739482398095167017827596813496213740540638635022778053767415392021904914076894416282642019309926041472504845500732024793269302280245449608592881292236227313256554092389786511288894984890297249140354428468328146703480029844320950688455826200457847475758459173683078124841469946811978860985186518741312997392232298248188309352561509587806532006977607631467380087293987528209978068793462355546530220997473821849396965700794499531580698844123891738993971622456264674175407146840463419016439445027796722399141507882001445666466600280879375902643637554712275788732234034735527796996175059849560335087268580000652532523105706920229973972624915787530681788082202725888558359506775848132621455551072312725500416555877610399579069990228419944090527057608025812309858027829743677264869796089664341133357101685344545748056854407536171434162959184153951510054848911161472665757879947352355370819589658149596947872372791232164809012372986943942479035679104095872686355897180639553066025571119104220946393500525340365376226713823358904301654589621096821229088507180706726558764078448002860946830363041865788275384688832739251976413891431826755780808546041180432574978629983653112764538909211336695126061630053619411341586032239837155836882123710166297092961623077573944276909528324742084564757106740477145980240574173821716255250212795377446580625265337072759548965401765491235516196323576853545348034026473434838975211157920307817439323735491293404604800341729841868711651112817839467628473392314562875148219973904468098877850282059397509668758355986995118208908811866428229143423895164602821618351307932056530662426123145619230783142277822758768993741189429433499803740786041516000324784575822886424633188668157806297247227227537382956420408404748920233548303931150456465093454026293130161914238163944526554669934280470985392985307000589334936626531057556050565337362952877471383212857974478327885567327601850217163788484656271236558552545261790589355433681975796440645614444394370169484478464150491349443380470122905496939861203923294339106895735049929205027924119014546489845434555531862627943341162531500977039605511507773514243223435851828525319991654992329198603333572530207110524636012407957813532945255141525203109243842676784817280795014837490366226755744857527478530284866223380281113834418176645444650506538719443848660343682741631831547577720563979738023778534009388362661420723217593698966183045055693156158593443176550451733878613976405264485626835966758595755484392655351714536963962983806563456566996832937530050870917781934267207786298208065246798343723849990072810743004540637205578218012602678661072672859093962134254456577853926037558618900904049157893406652267428497851350838953830612013053104049649079443848971134624328247721096888195510323045239248972119208983735404956726163288219239750962811794721888170750802900617581055078318087218451106447211611945189730150513658333280907925502616485540076098407400569618797069682724729952623951870560083829961793772398633805068799742315833926561588184397121595468855722609052682125247742974248735296160973740591507747211192890581660474253655132442645738766379397199529320492606063298491369814202466016676515075315786738727938515754160891115565844089781189400303798180618484709479680811926063301164445905739593320770854701017608507504680123640433439848559323506353099767312130095172742075761653837278667260570338688090932256336666891874212133627456914668974395481730262156453830019427910396519729047065330981972390130359385172987201386447197163194247546067397124494790578102580922818454430736165980583867593109094221975564484648712619310696650477186866349966074586884009842333297920114671529341620093603826038681647536258246160462346197956986837990880009794268437821405293106065981293062749235878573055705153839919718430208471771629636881384690717272917640286214106219167824832839893896814952787876010107830606775595571170493698904540794507742148841976992259957615080371124733361118987105612137889688641579056442682294280364707719968968546064919996185158184562659275496982520471088416385707138429464996816634646218050882635841835480944448759006780952289234368667148026397082626386257027838722214007501108218853444155538287131630823229238358809241225502644966705040078596966073844911523871124300939784340707092777133373690823357522430751659650126331425072375730503162519427996346328470046394927147086555504676620650884014466359499630108327050038611289899124029781839404764532194489679203625882339268944975899823423980913455898804063469456381857070654866526317690160361890838162394535305372328528023317375786864673018081381724054938554582224891212563874720581825525901523684212140469022977462628094177788306735170257197762933829595115752132564184438667689240733756016311463064285968346473630805971038562211276206475716463099954469827947512835524093613902585065709902199900935995166770473375433589332755677194176169415652659225478206740172188746105398031368985200967268767571650757644976205334310119084357021803904251797551321674817190763831643248773251202636373082256018848664133288682513819961746726957705375431988099643758436129255810308571397121796286504954368597988265902831132721997435362138001262586886119635748249104109409698028171398399961962767859708644957320812914622182482277183318172813822042803782970041081284628834667040015193098094005385729115525923572457041022048499784816300939545475604262907071181263175299570199903952706200071711989314231491039537386019300715222701615511876994040670201781706628446608704330580332978291134135889683714913329807556823057171357787321914632077866913505300394516919820963624266266831690588570409060422030739260069430347924146456372955853581092410090899186422474282839847861234699431852756855059939590401279741854299258588282487736018710201253982941554148499285188704648671434069802623252521968387841976950696491268548004627571220994406586339461588017353694270559970986506567258351915116650331564221559141214930969387209068112130852508705114755360947384936636765063888273196725241690399594130237221846109917837529287603763584615327501142113355216971497813950006517220417374232949062435553848831117352668041472097756029010295423497163776777835356620111987642241320898038499313513673337231635047167142377627581160901293762359275531342862469218103080606655976498866487918719496831139999447629960771080434727735924741405450633038580933669576847480174385428935760253402029526864939195928768522776934684641996474239372026122062162824604009607417176630062887389824076251038401163471132963843997609940879073443842119169135419941764908536363047291108420730869611150601379537574975056689762666653023757369932956988848838555761934131304866998540124921155520285614180774357053942844765710508758923508305189499180537435909150984168518151657801379650987461901565378922417110468789576584206647246304408519030980384029424571546544460192115720225209185101492424574698660582436407253046275424442107586871058575856190978391770676938789872780070146759602066657008610692450533752292278860270112159993071625936768225330777058031836785242741644934134966396545744897301811291244865479766293975376921415540158777530141868475009771500543539403962800800895905069377857396925572248529650916600188101041642981070321103976852590407621112444298822063973236367900557534693862587804384181402734847365143321720884841298448581204498425996519502537207653121223337504498458865857093906538808373753343923478456798267119777318676278928620548585753752818002614675838689737276622326101297236297335612003115746824275458088848586118281092774270702064051014312376987655478765666806427713387817489299227448896659716295998049507165607356137643080580534148710818285559466436330185531393006748358758365450725174968300344620637253454642777267236346695030341676736013516049197939423744819821413719149050579180288572237583842548725977073422367860627797949200072736349076939196819860034971159707433806757284284182048590662244281575730270330821614207619838386455539151153714795907906659830366666687150779314131613535081934315242223575385296559258274141188563861528370490832633990148764398695869096560469324197569848447044701569207326903335823187240543542018245599184056777178498033880458535397744527747692274174560100939026503202950261896965804575947201784855325876638794060273959464235198746603953620226257105238397257404686385828591360581529735452205792538956306326509511043323840890729401340823167061581532522781581425496650887609102262760291516274773109535287559849714695841813758958969480735001097161979626225614257966721385219678018977592065665121945869376332660255213963854235073491829870740988728687616864510729659397172543558163707137068660903846523213064156403900293657463387380379886741127372933573933435136096504610223589671751822125830240408858822162393227279056957728476009799277709088479189691616946665352418375863294395861965385347537568339584131146157994254645977032724225506493303074106628335841533200868028310825823645976000879872055342805096823228275419287425130505304514461784101018908962422680617074338077669444117262681292523234082638552338600128544227433722852832333818799363275586661685002495200127423315663086950155414269262345886161715091880687632673012219108616957172861353070910673506913046701385594480401289521099061483319864693025099639186946180763994519564821652604985293808374852289330920223029753327722195351604747766900680775876517597093850291064238873344077470202784661456714716423150672415887226668093022591427649832984494596603462034620132386249367059888211717073464060210729975835717776165232241405267334617747856192620451017410257358134511892658130817553916692551267566590933159507665601025245143802013932505201306461324234145421848172037681312622193475436099865222964066996494878981822903560621192371174309226632405457815344832749932552252079232111980794991822611909355212743273066174188593651850750706005629570348584967047706269594020802766851470897723503874511073742583450634472878869974531792082845731904513338432278872628336693022031835252840225154604677823278577598932786482251960312552072611826654742575193808153213602625601895126010732398737908080417462476931832003644869876199090783478247012423078390466207636952211431261588488294634225134042852745213175190453264284122093163443084347930805870644192063731469386826243624415048331458163020852051512477814041371864050074772262388124689930258631236917444612262273973260602080144394329321679135031212652257801662690555890359042133418320207649649782221890582776049927852436105172471307641966206436546288659864221375793438051106509781706429016547083397192134785228608144315947084809563396156568460456755202535695940810877069524565339771179686030784362697667136755235008158054069183702053921020012466655716446094855207069811948859655502475848403025873993795157840460626237507044114418739170929911828277774277440093411041438556647269651139047275468559613611420837257499542608233130273222605109192446745076525294854207075107616939305625023793790648998420534605782135904471964277769690928564543762454439154172650776201831433746469222918887611199577728570862906599351850027081854530314353272048121794809178557509690374166440575489985906928412959347420579574111685398702595946624802560730330334134985031679632813428230549656654563370643796171997298222006173049115870184847886438273773852071938381543123625463768662388472282439173420649062423395501887798312832214859057830730367251246805905453257453780768157230436121102760749768193665064126124832654190644358017434244467843288212231595021001425041768569529647296452316700604119838219156705521485671862686233758817243470200314066011502528204140350549521953657605254507792501975003412354824778035600756783177389408512161447196695177690956909433335680589041377555659381874000649962443398904722833672579650653975511330102077607632061630866935088396725914777957590137889116720671426526801008314518649100527126812653935219237730584868865155113858012132884009852596905121062343516492324919521770077456387339209810678387564823738583453003695028228839027157986704734189081611828224264141660858003196425158412541027700707373503794148349780425773601843726013988950462960242296689446293018186773595057075265425175761745748665123967654737656272952461360983219123128519094099636736860698409859227289316995849717248408196109817793191683378815023776238301028608895004641297477897749397995919014196084417868473536086302613976477791692151292928999960646957242377714304851737049504080447982540929716112661447142235742874750661514752830220667928177722507395791672980705739985159014253726398536211332765075791353779577873465755376207632985880942777231196424446942570655438787212481668083800532409376478145430436303724399146195734703841685357958142505429017816396424747920333574160933954065539678452402634248678027191123712321189417784118932533157016821414466096394589239316226753974463985439683848975244655942497961763987052220468797832419430240664984533164254625429780691156459842525912065838318615811302289433126133129365066957867648187586666031212092904490946279743011350589616185588951381809583427378975000510939556160814264163770369440063653201766636198478210064597812959026267065045742336007753862717665347187698927586986913061122878124385275352741497393528037355666584277395183973473237785498980895564122044855965830544869192564826660332017555001314264196577876425413940353448325295735539888946781820607497664447836222925500862455070894002456063012886242999538420197700987890043287383296997080573742583495085413430604253804211384889358756419851355227252055664891837876566179731373182281425663876642295097937303318747347158025148870528776033191829311227172110411950576499131577037379204038939147641812875508900459764172599629341255826929637162656774375735246133733867703222676725049137583986739510424845456951503062374589110896553987573910243646305625556273219068531288402026488613226566694025320195919265854708400187874988072532744650956974386060593961137055033053440111905375147149289075625069081396425914580508840137198343233807909838467824271431353345525567495613791928641482946000787253970523050376459365489477098896634032420250290142728725395619083364948501201619704430704208930718539095862115042711354175480418378168876486509155928892593736298501817664423114372423064264809608708770205124452490478032412341555872355105291510491682293191574617753334661190209009491952371227886547116578356316637596611566760712913064779368069753947116188959216496387127969206039456169804326721833837963002100243460802456951726814640788890646555652538869453747256986941075329256335251539679212080389879068575008746187363956721557291884478208243350925190202455603717875324545824460041756643523925794284524387983030552998131395835392790735522462676199301323958262379617515679357518646768509359293519738073873233946778951304269482147320808039823477549416031462535646221119696402995343159529545803473481099286688359620640984422229977196427544154763616078818853183288380953143978848421375091625644203135001006146690354019946602826898768046063559212699496025154322614775420190843974888826741987955852217728464454287118952688078636246767591338552996990225831885263975317103884414646311858554808462913958764954828900352985878907849994984235984074284584441969732474680887546229024475147710731063402212333346884772314243755137073864786365023914830601320754112782867579124795446720272844858644860059393984543922148089573510812015243373541284244645769602880813170062685463291496062122870030830532368110258338855038831152544039882800122414732296365031962742961568225529635845399418349945891491602050278853874416856005896198855010729159707476461869954579196318332284452652138775751799563763932758161653493671344233204824246129609425899100979241314588962255903689449626626026742552815773359219553389270322691917731271312742198548166831873353543959290895392881303841707282487221870141889885344573825475671508231054029232914812421179878583424297720862677005645354456306487130010914177912387511610035374496883637839835868105927796944878867898611567318757688316939013880571476042486097156046901597623090352512863448430399343991894447395881276722540644909455836833489756362906108676474527771786424551912708165817778717246379672017362777710568753796384920611817025735811328522785719237561662289328031007201325484718016455200315119719321098217439856305422763179471560913179792352641118424516862499032633251094603954190082073007452269884633288136149599122984042959833484404106437872697563932562708105908509639884587150120416648876939499331462924886688227536471382713112057961738320072502850930398198220463035536172393600175509304848754194659450292921341821614242524995576156928484359851569099126097408626420120262620821937012977166048431402542671445820660154433723094553951379628994530624650049535655587797008482728297157212062420354562800203353683133350128923534369285249941428762788295604985575813782137146906302670449417056143326948603649256699098198920384348351407018127169519242107851752535536761478002966162698778233036749955743480741764022557396399781602688411108907443456238629988598804616347729928905634807373354573382229446933753935599732354670376534078153493864488413549546566803695558034590946839607007750333835650725999941605368058091771393550272533840773361253660131841930882129878905252676502502487681140662135285478871847730511898439589760304814304634343311518153166994523286581481099736346784624214224567435283393750137703623801104208702705544776891752836181981105896737644700589041501398833812008068565458432760242896583344239905233012786091379506436001840772807808133318010805161226160547550227972022735324449092022931292102401124108681966837629710337046276284388192735887115588790179789505374687145118432575390813197813589856907703272781035353902865232419295638753366087792439905619449725057997243715159615001600755809814367989867802494251945099857748964574947927834216410367046806533945524433281652010658009353063924113901342852539993445729854509735051739226553977742170809135484230607320014992357185387858274180373076902200222656634315923483679179180856018444246281786842802815964301319707684381357989751161629519022033398932904144236780885298272050858071188911602585232930915337624003978167927775674497198706011717867053083780907608780749705092492423239343616985932165237725915898811492211069833094328011825288812732107843316710539650389430390865121735413158471877311047399449324214700919931658812853012537431331605312072256923511340933234667014309380421239257493022377811389506243151752967186224879655695057646070103359462926023301082465351726722275533727053055389398256206412190196957198276901908466980270886038232098036013978891916065583127794118484951692384302928235209226107311736536384796807835978059283272151488440029147233333510585830073664153210564241705081268263902608231608660704138810238190939255855724335614669332088180099464282447730882565669351607609205946527964958393914066595991758751111482018824000894324626190294995588234925560075437521254841757417053597994130264246402283230264883321069790081039000636606302540111754762092306720593082610691189818271643701485372992145782749405243638055765172371464706040312201778068057166225492503444554672768126435050102748287723287404522718759311557111365381877905031559558147552624826038028987752892083418893319630353334861810634594631788943189254292516459868086150887073866297787703436420917014756537058188786291132866233906737576644951987973296218111568431517024001039281843017763357307899260105665733702002422924256959532290063849533784704484374348180359428721138210110915910580694973016878356298686830378468094041464631812742358242126673650674442039560906093835054004202710749627645127125739951489306702970220527401630792011312240820022416317147595273148212793052664721330567017102789497396833635238671676482250007420219340408264847071529246298813836404782436293274481034849719025446530502122982263037699251693759519322369866730578692369350572865331260680559742054925734646931376088829555922133529228375102050646191631256248564900519566313725371731984051554417081879393038160895983988432827848974905165914193558115902249118586245260095226243669369843682277919733620979496463163720817384012735970935247030014271807792678743229246575779303439596110485801945933907104878087558040471865488620222187679691787866996501345651698549854211249005568305693403924342069961476037218632090199079459057232999529178376154375551704450431737421983742250522677714477564578501419232248916555816189804117368557649927713003352729072022581552733866175316966151420738103685956525448862914263981555268206929940601370815749462105044842882966136440511672130500258822009233964664431673944064134011417808276561306133148151264757318909574978071560229083395758737114383754697868827318389340034685036299343127993216681540542951516346415484530743968698041786472744014554210217928906928018320165295108864299343731120518202431691977125566026737996646147064146484309626158512647268144688366603157928329711438174466251169633995795934245822738043531232473803348590918970190827368407632867629015970728840457595443818618386101933425159291817702032048946633806968762288979994419758669362108465680888384055115319250955945820085871452222281900331302854470899988707522039931174477745338868200785601368812016268958993663294372304848331958525714894910688374970242336993163959796492147350886128731078629917164225775746909656322894688020205760880435989467086189847848090745065335555097583673420004986668777012241651396527871888610776724698092969894196922183377483471356823192336107274839201409739034391907316863441252327222740881495332515247739636528775608279445167217354775624924144518051168315028761284757981594729517981005926749612117642927254358179140722437271850988533201229844237022386430519338850607770471560274768791118593748332064485973178006197167886645434696909694215388719389724899766625817184007748695622617472462367664404147235411144715348760325202979627726660819160905797602932004266164546603876959698122816794635484742504775111346293075859673463640898249564752571345339113620946444357186052986661271309052925738397625607732119009780621262369631719473829518699533017008434256410466123743686080805097533795364043453067033815735848953322069277017385681961055991619777302602309922970193259610663565161179403479720602984076962684472282740330134453089947801085500196854781718618493015743876678828908990548104178994364207057242536570870761227651086557221941785231467158472909301463592588288319128839213048201320562130843457546775108037821639166499210477830222517742757570431337418985774858824203331997149797372204945776485376368448231314801568401895665513861377996121807854404351878300666941026661467034259809043214465621336811218038776611498586407074082412510831991822202660401896456163261693613919898935700640932675366540968965435071283548805392918416333713809598552450003500395210212034251865079527237191163097052885799340908314430695640165531426929196000184910216224712766192583039869830068607107029655381910487681598780828480425055084185134124443724244735250885592603575045114033048713148901376743742730962808196226603612591017831018429343440204251481111126595652447702809126377284490327343581490939516733576233671164887649661064167755631172765372099326990885039737041510240778113705000798538157291468720817052251716227679478214604322473082481674936076369559941759409609681666475720203853324601834953316394474187135502977806012632518473121835800382773391095952900214107145822366535218551782721785673345099975843502256870954989523627721965116906641510916653895544371706583695064315648721719419582463147160167592595682853294845553214849947623252071799921171359560171581271428003191966451963449332162667261117348967992352244071575628771743637538676108177236558918478979006720922590188924715355454998529119356920225228995123428499550798750199817885004412874202815380887115337080855916466529417204342876118879645542832339293848721605499821572070623895816395014955181686045348862185771589631304116756532952925716504027570113652082199519702191550500875186769081198085921519742899022536185772691158476377779639274883274886944106790073327164819199999971896371512961276881137890834271396512990282475444427937120418463765229771226028957009789494825941545113204685073900094751815795695887173820540672077304352848541115253774932514774320176980230675969076125169777348216613077513505951251120568967964090313691199179938717328256006168303541158587907510303760867852780155879838170600721303721114658596968722350892746312584632049834798801630617063908934278815261163717844682800850728283414207025077334735058343489088341988731402414778837663688917774378795883071307890303915892562351969714194593395272197078103122604791139204825266173020737442799377604553632774050396745630190566204337657676646007653214663723009199999711800371259141560044872861089585359629928211347860921261993145414719299559830178831578549736124392522783426997985885821956273109436187768277739342625386496944215174652994287320165391803378343109024624305366368140537516357580423807040333626373826785113694845378431375026207697443514023675465313061610562911792284974996136673901239170586956704897340955776570476659312559340057948239030209422937111927898086915649603649499336148673167929698639116838676061098484539514878954653087739518127821845116223171631421071381564415355769107339626293908138632192177280663957544298058069338979106277899996500333558760972389356002122256070139753548546401405050806437576969245013925337571319524900634746512682518952584534554920493655813471409451170498032179147159164395521197696050689820705872264965578233105385113671516612449383832061008923630041696361434995575587199717971080326409573068666895643416946818915583603462471623667508320299054993300457529782892529097514659212725983613315996246563843317927914289441686247818768094390487163472761965715667666733024872896127092501878758759161034359988073921446723408425557995550736487101058803576142597556997588755442471737211641073345937849323851484366872384686661920145860038775605482173452035296727187480646983681804167797427467988435430190314887329517739858178172166446483117841906491676251060642742318903549242959964909369387053546163660338603101438315822994918893753000801143891875480857920845886072533130977106321400221891148659518757794394581027790309838670279456389511910964335203014283431323806334118523354987380783401737377283670136620856739290041096346486754928897943014147419842494720542255919575984563191556901980772310155096219924625583154931874828323110875659338544286048600486224232085544883017190701390921213719448142993766860705459796230327577710346573863180595537268701812484601648784935573612948378096453948619663005478093614805607631451894143975111855848340825892921050266156977399950585303619253188056299756245404551073774369746421667978345612555897389785009418642167667371366825086860278909454032175967431199886300455922691859261751357120687529814834813323947805580183298163775353005914599758729644503863353696534222860866969068851849645058761863162663896446971626009372022519214734433621630787446979882425985562308748107133549536459424923891407690560381231296422473263893629927168936429803812255242137729594671645012081922101936026191566173907367908472486208713099578207953249297620727258924239189894729033610242764764697969839434753756462526273533138787538380836741020931551077377430254367172001548069732414583150585896707821895687629511499386270344191213884968915573339717941424266389941266809345631477047127846884603769493335930250309491292875078923580046801928325379685217708424087815749722612867263071220808516421524955248805350480231965488649258650288670555002169955227827920423642077320068929355491728370030045960498081811587064424508859127664611437258350645421155127634760148590527221565478545178892763766175731406524137635888557180348404702026436893421762305702279595852942090518532865918253217078180389697967895898479705339204128271095075581010009338323734530374357248521336413323710872748547399368617662836919517596727058969246014213130887510051891950081364219492818301666775452646537151486251103789743635113915837963673890310858646437776167412110170592760437130177791922983162742248608666708414108086976668943782222964201686642378150720028401877915827627773138420355439840134107148074077202850024296505730426278682974719974022773599339127788059973115572768843026620381198883211229089946058379651773773578641307960922284542619120349557114342908535745233130345971877902091304601858070043770313174092516509036209479248048924902842615786530791528113316211642025962324436734310009966219483507141310964226166197889854603445807570347953964335885284237003614436180663656846384089936345451662886959101849689349349207548237303505963657186360563423901446509388999320538902862837309982755862743250034153411006551434184902759545812121666069555167467882579081317489951754494353300558665158033917523375401659577032780247842666918137585153463754511809720978544048254048166281743820190819128125496358887792553319518007039450907595342070820175970695627186227803390524228858441284036382239832617277059028462397286584211772724049338432513948272547641874350352018652406166411689110475012986079088414437429551291364731990532338021447030015282573011183223109439184840354152251833173041345116362735021073406742356998391777844658500120052862450823175267135036934201041751728337924397024426035184330907728872566778902552458803174198467316751823334187673611201424331146416439067527735829242776955823295879010296932599605108982217288876723573822172654420769194552209843210957448049806588760329611284729019968245436122614582893296014776618354789438818514278778119412113063014132784289169474996251722228697260624549284994064159338108634562649062595775828890783118666946530496112261456644858551838804584140135173511150349988076592120295125052875338320035043774514707435861471424472357265257624573687080386443016045850748585414960151462966016045557068185127979430495482527745278225033457680881609632555580771464783119151164667838953087400411164751830147172393922449145455048013419161701963840218214075755162395754998911441233513850533925460546400411118039730235148770203332958890212270738224452423112078211015475283838575042508474305029838087156603567916849414605116058736547027517825090908788869019682150900490722032118705312653668003832040014683561993583676614136294049050302924908987229213555257539036642120917021484330958932397476175464784448914503618515831065092431157507722962403247353489976672288174287522149858474154231758695030087714432598682848490026069404867149134338463721365063629865999490676062003111198754662183547810653835503898288932555361283464050267747260042031010620713863397509502606099115693114762304083018784239200026360171942225516241482204392442378934402852828915443533586350610543360170879787696456148681366165104177204229166312178284139271192990472409176805489812382388250366318571978951472154131790640576444270594834731602475263192633612996486340233500302953065932465926146510285740942276015798029470816665074365265211391942324816745531340028650679311995301709161135429695144839246451243666769728392074005879415160339800124070268900025466144789417483915879265094078612126704316443208832176140676725090573089417328319238208230360660242827445444281455462001825511876003810218839348774871016999314188902916419918885887116855369937787465478750824607851819627654944343640400622299572338093154272578968274889585675825678259341377216918432892635597676092049343388550349749310367980221988806931533451450499093174495849554598686479234865730553958886891301103424576655563555727057428743594920457155854921255457281697387319055979738493973398748508297187172465945527568724090021469977187518059653133149650410088772743041981731025859903669311156993382571174731979880470462691141054159427626795455556051928758017210118264401477851296062782163309225736095833930004715877440160795177986641940920805318606561960529028421138481515922809676349267575754251747556360214960435935797143574421586955042458703567450208796415900062854767759075510751935397805413724349101547240761286092356257877798026162412036155910913019910173732366594341038745381711898632705804316540675609879149498709370368559603144108587971447757643801211957878606514235203091493026173996257865615084516721989673574533427264710739373118759766055429795807913882005286860009540363611224733558670194950839842883477350821748237075649055161199256886458694948364998430547218323027889978385179908546337402270105843139107324135671280716016270449925711851687484201836812890761665454093166719882589557214618869920340788395862232425135803604468880926256603347951581977304990729435720639850294168752666702329500749207001070347334833769675426517041440714813805864145213822755130481367101492923757712848535231444276848359941006694287479374744514102612366322701801782652261894082298059615733770736904933132982665366257463889514934490735886167385945543362926348846107685636719646576771779775335770004666414808295776515584897863266994733057579308606542443454955368026258054575313191646999859985151262663747414828477756200024404951916712557903717214766171043060205775071388018392233475800917289191252645574627592065658774863041805438864457625309467627598233838181112624930739832243887662528251255757317681382945390219369445437216725262163021194385793068637118738702594759152751469666310096554526144368288805133870105845352543349618618421105111126780739084182334614589601555545148315286788919491868780498837106554310875491340368734968077712459216862455949281231008650106733062771899627967002618311340645647899043274990654775757879603813716867388062050396275906802658586707808097772961338266822486060448567826313252143269892530269219013783989999440425351432049618306067600078332398323145774568070476688238009236251495492367530991577585879168401569862320330438057534315494952540289313119839205316549186181305072525687006553480190303816839822895416651088795972911609803709177065979542467078000944312944281698777141079109348367820983937120010129669929220776434016472586394189565790707177866180203407477861680043828995049459790133253539534066669552660538770317093874311684392458982520021359182966294097730246628355453656348243950710730545044651832131785121087634024041899847538500522148472326779744054696518135092507705631161611619472586712153695365606866677862794422718013988420718069983322523790477101833902866500360789919779586186938588376411796922716521639760661676047402595730940117084473524718889153390306130655358485817290111534059822892517158621791191691907352392796885012427161031488239301900190927690957785528063668509789925167280867220208609011632452717244127863598980169283849194723740497972478922986236157584758290634300335436656623742550070642778105946638576838081287005108839935974792749287233623765236709836724350877908006277104684530999675461504772116586484177822666401824209891712365856763596671131495149916325580977652533013623494505254429336115033024331671902081111468473863796283611858165306774895280185441268224717629842439475889027228217367694988983889039244191778166204123372486259766432267933133073096943782830897770648762532784824770711524077407822902800616951478746560938229682100990805728382131162124450933261123102226411252306552507910025803667569772181490483275303391706491228484798276624157242408228035216673199193811467483781798482906318486702537245295675350522946843939341119766944268668726364522520563785356457432428246309471952173863853265301965261602905698440673245312111145944174212408216839151697513266117624039437292323364323686596970221550696021130656469112764063875685574433329952491540701948698816844606869112991470859661715539324203210623342939751085389825364988970192135230353020160617048073242663777544967321998867982175921658540876824947130720682880240499980149263303451524060778433184911619034964972215823701546038750710726800692398810738166014302843991247335970898677096408429142449757552856620921288663171997577429118619366060863509844500500945870919973375579337251870339673534773378331151958349578748760863786237964028313710409990310457242995741158633484203489149350856512780928151660518365643035300402282326725704722710050348800920908042829229393139259021423621410067749810045643196699952228208371765495441452559695448473991153539430679800287373320400633384442517295996955799533263267353584176156128231351217265558500265334678938332588606547205600352048999798838674807867517867417405130862930270860456294104188100992597998616520975873722287262607862079043450683395277092340408601816788763887685581852761444602168430699774589698991831624101238591888609229771430440881761759527150258437319143205103809610980146181148571939583593860808416755914228490385762434944706077812580655262893633721568045940483251550558818814562186810073365133625642419132464589427061195767013264455156377146789607013235532591496706399571448388568968246756998220210121815271180800401825115718612910582629084202036687101896593950132819626724105943845790116426831959358537473731490574361865734076760096223755604018798680387539523643928259296092422170115334889914777422480904973178385612169194284145592397838241582133149892532801130294017521755787931526006257187589637025865487857849010199399937516525607196303425802717120430454467428466063406200710001757661682393483453550270174956836963104188152533146225742989298722518796992638315383136012208582682658471281241418423390948284823276967275796375870204927323023534811043036627574878090054207308419280350886536862747577041061771568847529840907718631276229758038205996786801264537184295891690372356255476113044390402848643659566878413089403604456109098799614575528681434504782342366483724857820147832281264421818278870638710631689385036922223978739153198661647479860986630846230544931837476630389416878286237325528788102660978743567419808323847229243631429123085524154306600278897207410118295742791036336885854582694276307393677929543015462678256800064685214754323278711425246832835529027368757022128420621048015324058067146378705272351564232761040225739636967688587897147502561789756174001003770324136205255666062747850317786059930449080056186648894122156592497344516792010975893571105140474730406717392505086235418004176932640402964967899474645152383556946475411431813710587438991501272421245072271011072459999597552094241290244788598626741483875212493762674415283225588115266364325909057736875737433813815992423851307780994399192845290136746532712526644215441834648050386009220564899211021686529353812462420645875849847396491154293839465167610425505785332973583576811451580292415811844799362100428236661682709950166907688348204433044842095376992147422032380189631554923838963103202248786413542701926013057118217293658390908519755688352840382788519002840377828335219027746023121273301929524407118750031329471510255461959634590048819626595684631763468677270219720055155576090451351462880903644534567895247267433326238019955047421666973715271579486254583456671371628011109297935136413011036693823970005776450363625933375679829302178931592578915298628718656508216513789316837837859439556558584239663217918244563175640967526239342510057481513207654822727097761677110793498790003532106081617668542793548366142904548913047908838765718002146981379428471853106430794244444833461985992573566149448467031754753750951610662166609289109412437221685977624914483844549586785467754001813426686089439102551410600498647713401522882648773088890071072396103846227887582261917735664484490992332776878268234076338178292058322684427074727606580143920903169283465503911559738300787771233373770062833210971295679221838101168975725070738652741647830247547979681191771542016021584031545488284139071423957359159161018605249162769316721523143571599088989747076562642200381820549381489873731775276699134442796483915909157520792358426189133476259796233859082878151989616502024792870180253600577333023596979800317657035420868619059670281910585869669950965772538153194330793929232807305411285933636885496883717309703637977049847927147480991501401562886425838535711700190658008508447664005977356838986947411321378868116396635269499983737727043491506573267029466329879373911578370629720224779600155638581657769016947203812615671229313068606946590682946576912112345838015942903358592502195563182627384972758626968499579690677206960638543980111019141975545245616845699581992598006824554536325922777555642670943468860237995772758052466302877403538711770906727886247600812087978561887341755243773830035589319042711301420075013418960655984549116681383830989235936928766841748559343602800207407663430452823907564304381063008277190529562817020753490436326582057005217908877029071720135549051603911457735102885416900414190713119097913731694706267424277384391487838679363995843030029299096190878573046548818821368848514100994647838990462423704932350840739666491824355346274187214422929130281567432954665026335639825959134819238004577786661065912346072506969439346971151046110120012867493833745135741035859745409892036812458959268732477522288785979260000171363275352434107648977515821124751804485452815871165945373111203895651078672701844827154733015368586980655283399684808870149074749179214360920278256346712079786919750420595260098920455001938190221437203582290266278186646562215087327121351215964485857938591258406284875206362454027103476293680992262585634448304266851046909261849146340688110266962194590510905319169534403356723602112247052334029930831087525509483293106829525350475643817215391022405159572636556807301580412278706279912723141411544949922221739138889846349300211691881388530926296040115670447304786415946567724238544707063792976475714085288524670669898548322684019487693668082340933148108750027419997279954035789721780006438040025498331356600325660679211402787858436009260350499706219301769008995202988216350026772639561271638185980774853668921517227843601587506561700793964358791464446934317575827762572638961967819610951724536675217228098471155011226548491263453862290681942880157991394354730693394405608466120420517116510855526105459589737999857958639536399582795488733099015939004531067481500129258813342090313929710012686489600666788932549072391321872384220644726685801714419247182890203835521264368476287517714909473966577916153830538110259467297049292785734489867496473460334601278908365062827110209792608515887029822612067537339092125029092508982025175084020521460098428428314365635105211455248376246750940544878138602141332556216706177017440623361396915493518532795218690876877031024241998345175106561352880474162864416543934682155712326559789410871591695154107230066141600541197180998735198917959272254105118755938639219949875106351875381251721420632538583490196884392687327850673309306791937309253277470462580009049544202506500477764066558236916663013824655009519074495595911056900600529125277418853262725709599130667648772677852690361256718208648147115345484308763442094876778253921737662610711117096127399218829103542702162100079635637607095703009196123831705252965511978897884743753757132931406004198280243216074078951356365745753407776772203834645236497877008464787979647352643117718780925524657047714606409576866720655199185317686600180841190583718620600130098124547905419020122986882291298946552071174577900835670048592805796539496011229410742000234257264330314856967868167566511876970234347374555898598812062821569149383222611536085282865373097789811698309720893065766270800321073425580059215498292144672572033216015652203595908019243941027956984374960301672553008921460404800479583176549598534391767699336712199056307366688923257474479150178937841578583719956614918695804839926957429234029093748902624767737145561452795105291782541599071501274045984346901483735991675357114795833380991112226003222213488742235600217804400218769249715969447325924548931054110210184758289602414179917258843786710699106353422041892961036596163321417657238945440356714425333045937857930047079745902745246206979338117631951360921235423840051297722660535013478638010186310925515741910320383605673142134938070143078737497058105241581482503524848905342676860071449583814399356987248629783681568127696396403119415346187263538330882131426972581582839600045787577805145625661567575684054308286502510367325641400808261070435671533106543050789024594144667690734588705732299630480065889590903325159294035722999521566389349800531160555429550165967212437324467365407452141618210384829712799345010955356091115849709699585477174811636272967569253601576930758786062654995933651274765171204141103602583486868352482661341017690923056279858880301989261325945085236755872901448420111240673192753427946332890133703044478648920576196560536712633419234881383601287206647645506249829736229181395412734767484975862742278549941265562607920162407549506471760013370096845750372370639435804862730351250847357611613104445935421528734579663627177544637895907307718376773596747563971243534036640415865204061284303132198659490136892595284515712216056726511634688586704213887938179333676911955147458987476842805080227893429763997178746283904019531635652533830690718761805123713841924220835411512807158320709481710907878342869189539264199901657329144491109103845649822122419223292634206645323023804461487859371893752912495735972624762426795109125844520211366539032233466919440709372602297571307596885559555130193776845954192183701312219873416177213798919758851093674868172585264563108322140923506621164316438411004964770689137117036542995151776454915181841627768741269604716720118953763533824783449562260817382465827277722607551209912641763211492140396392610885958349486644525096235747149334100605683342839973483056113513926462342346458065245652794621344144556145987765954792591494597331388829960015108812818810387312287518866078185626529300920795622150120211348677586062368764181877339461433091536617901049165503013620040567432708387386619213059406850729316653141017537812280304693448344251566000925034130870429020499361466886146525412713609177565455884740530448428263175000578106408447800689430471266999217685180634156952757299347613278299217624049518426171333499714406951886947565577756512037614887094632624492101689524353452764052542348197666332651529679280164847484060225038172532069787060472883935260311536694457655647354799387766512593185014546944738338845163806934950646979631186811631993013022374537153054443819240508091598758211048949116213132984621109023694154734871028091924992824346718916987466327994219781947022099698172253413722680879711831339183091790476151441546487256459705893361418055567522840459507459919379419354185383104435961543012922673816516538600693153385763449473973499369188313685723022892472544166035851421026799214253922812291046765382201076722406502583845376600639033622601729603430364724862118542388680165463924299385050768563241826665555311252200214576009576086786531121856005539345311225076112252207119406195413792655999077431309261161850883651465176991227472201518350789290772504673569386941374669839836292163258819461116176910431108617028942956433614708182519835898588090267757379173688414515189099072678836942045125676569505916825303298684625103242815576209538025623894174388385407168085088322161210827886198769111327819499680433796956272592805784834165703381340211363961595018081180840973421183808249660401241236013968712198831348705780984262902924300357505927845524389542835969967749033661709190074767801917423632612279928250867827757269514331760252591569072663796992231882731453230741033714767337919529634189666887695182734171256284779194353144102621808695823021591790587162371877272365858181164919113681482328107686317046868320518189013743975475351431231054092918055181444940005041879688073311610713215146279542611756174432963988164678564672950213145085241405677576449759076372930346097352982511576387843346357492101256326596068809126200413955376291602540028317304185962135514382311344641301053807497392077870194890609628066025000244709562493349136951161957381363120032159866814352137579823688432645965452203857613993945907115702169803504186704096569656296306782768572776163473253605085432372830566965757243089820458757517138007779832676875384299373614798464829239571972816790778045538295864182861261012405616885790597293720109844409355105666036869850907669233431751409472290990442015756809666282716750707225795928597991103110459128190117253100873090560202557215980987159288153666180001184961067911057927404730769869805201531887242097811663040790611676327870375993658360409380500143062184106162670497432129965175275547804029306653611364063173973855322507827666654371720096671581015414977540967591108193094841884059502960518211712560438298950490620169260237975633524472742073288644131262008044646346814073588496775830177873503973330028077693072692678253039789283324283180296572375873268193013950993212116650619108388248998814576984698387517696447854685382703457910868248987135976479943521538130820982816604125877655925565176483542220835803274167093520259336937320388144717457330766866385430141361724014317716831190914190363733890438673937091786427526610931168589507782637740816527858039391951841581292525233601129571784891320824455452063657766593440475820855560514144643662319504320958018539448167960263658337631075256674835625382859478204411338953542055963308680525509508119098011350281723302292745459853831780425420077210927920000904008951608047657841373700220375530361753506330574377430260953924221022331092148230482527337641077827351237370335640120160827079380555492774869213435991845593452884378603314666715544688368271274664148028727877075906822283071207335317317520776495818828588092792291159708116048519054966754422586703197803470801242148652335162766374109564861169227926518660581399435871589818622350173600079356188958263825420070547087266899629284493905599396208056132097760125602279972622358811985603700319388087774062670363131385409488165126981883252350939449968137470135803165938666327480571074616115388140810880912932278870269554062763777823481303271626284834195878525032169243902391269821053984993947910326505575012335137387226805647982993859078174912669144443683165260223053258739971306979316027989126460715678068268021412445119292834105424331384236953729687673730802613317237191212976315832833325232325622733085606633974094788770216361724633008125056007224141773052040587000029775776350039366611483878945856291041360217190801797062025742142230917768600613056913154120172714924812438388623384534629881655445289229254705784807803675289602697061979605286787374881869039516062305586404596891072640324724164773345363875803536159819031554533173456051773886600052721817919512738063172226237397930814567155126232307359921876966415873572928742492064414770447678025809875188684777778950928275340143175748741456852964977234925823969516080138162986733718444012779021694277511154747686954515076216403566015046047014151377148174389987186849604704974443415312592877574230133293905626319340797857429111601534265327944248695441137849876961761176838235126750944351068324283156630212885639248749210217300926161139779451066504231153423933686595225326337449016025886536346818235696592043979791260575277126929992137831901783701356459320153111277407715921439347750802642743007871857993751957967079900117335962160735602353670016771106485055804547930467354756330869428497738145603942595538950941317877363205354429494204906159481910055002948329147272297703118286515033329819560078389631623701817115014363540657672729973706875185387563176138661603131918993598176424327616523493179358734278552544795940387661442992065165002295465735466914710801357665514505653310675106803492946256285886779434047476373736586687165464408093428566441262470411392002030511135643909394997419681968653899000082135916886158287214450597140665612815809242424430796376430193170116514983236790314498287374511127619289601038930774048896608994453647084416366049532148722912754905030126784973530864535528618864986220145278333627646829201715767361225849377209002961421214976655339030533196583194637646879183309707124261355066120682644364396739997986662873749624481150490447555325727573710293474105013022599682384354893251657357541118367162580657827506019019321318661077438022259835394419041046520666228094155109510394394704628418404061750805419051185760599449786570767795707255846437587417588749801649908790791647516360443539627435635277674164748228483859713612115346068754069867033306982393004491188847030228921841236651676200432299858904830709443744608367397572558697360472604083246463502833023305227955612758618018220766648233675059216027551783728290125485703083592198534523549821926678317934652341801476840882382890426199839987549428230439972721701833187511544720507538971631745600406197273442032962510931949894142473668154387707922945632776878758442753806978778065366734938579873894983921228707138836204769302464837843998404921369914571530955393212313051239348488276573462099908279576148097406803613108980117740484784698419705298787632857352905734352468190641646941976253856747802019401758171568323214078331699281560858046372988719063383190254618011086603354091647118859269717271863548588568273731367338322969373799349045055227523697118542404283961265324455689398812762226402339422228634657254340721586145771023192420336821435640047902322053124781210178994472717334199916219465722598306587961031294264434514872186078808837293606767681640353637953288821656188668893063021421840367055780232509599479335328961144849980448251646187325952112520612089911035688707628039266986899437927349349880656883204565251146660371743370835933757816656865367049525837464833874477741040669833258590980103375465240893975575767065722790449167508738194401107282159482005391561216905854021653069628129789904668950122011404682031470393930525431281614127803499947169765326038406848488184806647655587675466617325317197159694987796531251679311892267152910361779479248734342270011948996997107458950900833832325671357933102198144046448058290809628897337216194716747439970457118242006045999606686964601924735487815122606515430456787865831864101462596647856614904827625258976625398250073351809941478461885405527349537194630165220790559467630322915778904020953576890477823167321112276169474467335802718726886589725257857942065665529341502420934907858045415060211243559541251838757331550447253698920474786747281363953376595874148007178483339591468526242131906577550954623747622255000452458460002834197668590372027745035121843572277650339905346525016925631921306946960031726039649024166197947045407183546981567949950486791203181497607438629571879995054212406999505621924146120599750958558724398022803791204613799561583473945624051368476652019889756683622889049305961021847989405332758420963449344600676518337553565177596720681024969253578938122897102890648135062573664269518346410335551336993921600287399755246898812026942059401087256882921428559367068442138877967091505048899137680235109146716385697938062654910500062607096105618817863637603199808328666701785832800540174647782240789320863831669411918609523683702175924241318537543189094341655188703995278490306432318901239647768365642791829715436671140230691407752752337477990450505583624339430907659297702106014354275559932380284211956329430317281425990863282542783345702928532082328798338641593913178654801425279128458803689430580250072273593046216797285680671186438883715085483370112150178486525071194200879991987045546154253711669456895841879037719194087176431207851941631518498550086736619943687043852512331983933772469358713766643746375684513949042575002452411633190271225741563275018047733771274573110434738736300305794692560003936922440119613262027484826364017456085993222308001111931799261139973635187645768088929693737979725262050016204093775691222726275908932748374546007459554010220497776375958077769591447586018978688400134832326551733779600902488684384063223138951887136403374763035810282098975270525856470312383764234471858033065553164202173175117525564803772665426867141684460037397442045906226978763385393307089723740678420454709331987359386080148998526485508107728464792842024951946845060827306768941638263045777850554711273386708975289788630497299449270245624405004645955027463744893885262696860926881839658238278965357047078723810276665983850359762163534281311459947370838462523578577283555779932061787746261930782855518140687076448056256247357970332659178988354828063162326720109659773569258905758471838124937057105513932531222117917742085849222098841497964395697035677003888801489959625149040266355537513719704447360246182193605821958575685202730280602187484635044790926644781448343768221111464557805165584192899853031964260218745553088479776611968856068448874902940670941875757030052051052109016868590347493998229131373441168727298120635296775625601529210829895677308587158597594937500178381679055684099360740100482386288001749203003701233323428030197157896013742332912740510658361719903449068601329054268883215514321486141435808193007323161774766081813692452449260541261380856386499824129257477004654066435138341603754829581693295846583576240973525809431311806914679886552627075598793774101430593493413029148951159696710190995192741946939530665778241111955616591869489499433233787816470109410561104827178241252205775774118386783340129281216690097813297790401245450027642439645629279838810378885902708576169403458217578031576863220950309683272572462434168547667600376256460231850611162894580530504437694249459718563931662152681985832984058838699769799974753241924887820182904801533043970735541110770797922401917119952104861542467723530273141615686567625451740774432134370979424528656154106192759267732249981109652225055406175889832385279979770740557454599735069082972364457983774861882540235381082773438686127471627593294660622971134717866536726933538595397152142148837425732703716999184812256045514869234082390094453776854792091071515868223717963002070224939164300530276849246443409843301804921055190054288655023770044471129562739858297377036937272365026905382835122800939366226681413176305352328185672035693572495714307945978457085390952809356774404598455637066412301027046804136007118925086297497111752401636594315662650038076105244346857440933810547011652980156664764957869127017953615151738528863598186924806892101656693051963412093792365147923966544772584512824238429678462905262247806079426561682675010143899639169263891180159934359532886273345642640947585749421919702504811408206905136172498494262108586422516981244670742529820786366736157385291359379585947099774043694083575540379304355341001697489645210856219494005585047206221201413916669090743379031350312090299307935897215345761829224857155011682849972961468855796088775461646710559375597611185056745047987991735609459955222952623533128218342960368475768378598534408663044873010928935282498466817736395069847358008735998482023864282079470519360754623461823295521343022382236225800722291758906762752551316242239766832801737552277178524722221892288300247288307766815374333829050007982379042824331494503383930987253858871254149183283350847377022758459546682501186657662321517925207865538610310299448593616458516402287381495555300263378766864797177238014661269848333963151545096934567600458349391473833666286458539096115409751168978555669134557482992136596131934583015983692863589854120846209189761770813040348998553657966890885191096881942191035781125108076592958090386673318383640816535902494094921104552101900204354576992181624942432378554192059271390879222460412126558444363723219434743140394811558649207288672446311213974452395110097885824242520336201878916499529141135737967890205778446497929627431900379773865445051772597889193380448808618382233927510666202862743923388396053204559642923314901491294299508116896710920075257849094859153946339408022347824962121619293179947361721235990973212790081843040120708194710761405719680057191689974303935636174218019564510077975971075368234396410732899962621330892446988646359587487932702300936377390490129867242994713366845700899857609131683612529329253859468027210649993348177271189135050957731708796029693997965557041851351000033152410874617558130308906244140564658796005864002439801213239018101004213030444155046128596612414696199501682792768300549909439932382608329928901236797098974944528131699838397326196808378426435683029496523781578879052740406803745944051045944309146925096540247425962734301638184326942107205729258474257390587856090078354877308826685412228679322081608092309976403420581139834992918431496258331348722865099056370959113914481692155519391571278789787078622183849577702354295558311568120129542405663721427154989601499651868979699254374768372299617305228145348331484003602921596451093254012203946241974625782827352292922218085670895716842181766042458651364534321826773223555408285921099796267227041042115809678041536659895011010311227974993100078199398049907762827823868132301484454139687275479815354404787114217248160380131203836485514300049123436446665876667118551282719248412374356431326485587929698960041250561326562804275963589115164381402284106493253165668375840890690643774843176539463521373979939891204918849134590370104096135833381576397069996894105331329248784840677318868088670293354895163166872426310221117854912144334550612229357110520896690990190583429570780822580001830232713213475297021595365678734534880623377462260957927148961430644012500412509177467354825075025245691901010954764902180350188742310567391028089419190288186587066798809859199399616681456568031228619938495764459248767316063613578060135638702472308026278631879191156271073763158764522610759631595518197080559694316916452243707331824553555145902172594289159163480067702692216128688572865282495119973626895013139771563155449773964797548598921524031901943259910948175464505808696787763623936392202480014115992328284979128940106825625574886102783399111137425670265882234843241266317102503725668971144676864099377362298399522411632330913590955876754889028489878326050594558747529949610086495433493257591504873893605894142988571259261891042210295698423416818050042922051112601142264068133775035495547487347671752204744633049318950517927700486432361106771876850447064564463424573642684321375847705794081872506764361935021143306735439211885239146597016207172872087212584265046726789720293468829650866738342995622018364542787734661986340975581320085748866703986939357657899371550557590067067846657717485448688892056457249541536854002060639907199317368143973344070195884912748841299671865343335352833174762522340279652450890026505754869343577913333686617969656441494137280206443493471920900824570819195588702953294169884076300005639564543544361492541211033382268795554419267961824310042563849876086511818114265779814728165730490847056480228871574764373518372209877012289153022470077967012473396742693085571851853409106696109977810243894574082392990193576629827976403690090167038950043374907376663199553931350506808353209418637225024930455243559153784855400684385228849126027508132525017766274999624271352057429528580012873928641939554858990076681744988539985726102693917554162647985318562802623471203260315996066709244304261374956814504857405128521135165740212826200453490350774701921565521535965832389427351835404400398163879864853891764527694271888527623824807438102280985023826433968434697263443887171078388564407844584566495735973084729846303659124560155820496154162421273479253016154560956942192001389902864017282514363322728918026761791771844278376496381333988170613821982757958021990077428587787118558485650866590214410269468369607047329762913885214679464075027187318867489777131864024994790255873897764237566703666282815600496949304681308632593925411278851545805506658452585583724354625260607588748212047777552743505526273795526118907893322844562295757514649416491884578775711216321085174548134768283220853402145921106652661060577390340497517853292129969997155746583734594095030917022664601618683110134323905289288708420591035412241745070096463053600071180130612865782434282032889697835122943265324262088694713452835344825516088181592094236863699475790033806261747789476484124010644893967437260125383925001256200146785181993134472743608695869583166435771896875612196012693217418312395123340879929826063052431410722632829205408289301578067094859549806490021878925644039124024485429054466845917707822077494455253026280081870660350129762457716391728653487476305399673736427761356926999935800546756417355707034167079781657304257158476070858989086088659611938774935200289714151562423378923199119530356328466417311118773028031785947925054942397501854543830934270757067523477820572736746227741068828465872271626191132715919481350166827231593130162931760840222454219783523564876595585043010167863168779234011381203596538719188796819716688917296338976645495706503425691015221386414158989997410890529237731405806096673666557119269148646604230194653119241825318039762641031552104668182577813837451130907347719136963338732728064759686051930494472363605949374283038475421615990498406063847719576868626373910897511408156045829905691702067977650459438968531144995454750299242944817967401105405716309615731063002427107090458759885197980806294061924413127364271802129143027262890505664318433772518678767456931259259936758236243601268196933303964709558818611635250170709374873464449772924082193236171990733797705959374142150628869826545964898860389032806359620351918049800579375360302528089763710761499052095404726074116148727241963857129267301953431418681803341657421814808701593561663508933346501259127921287635424951131588304600174120022824344639479574131873480037012966792652286805961960016528205295711088883217535887177963964212621555703273400935438025692953534150147405151780275088706526754396393864069280348527437728465892623324735866210830520859248152445494748341180081578069939746591118144844347904867369620225837183435561241632210259487108741488834649858675933397889441181646451041506774105101643866736829696939803805745037930228683326375101397619072242385467819111206724563405462957716595013555508237833936430631886025512438097871177786609505538301001092396918023821619559547401187012884841639220839599294381503401069161867095413525478840427435399707310356829756529875030435887120794594897614282980367296673245570142243190481295230914435304826889171485962958823522452631432219775395632807380862265675435339818019642723097854635340266291246035693617526187001473549772334231085164959324467497903305139635815801133547831035651803053576310503504249114983200480912787432725360854691673316049114236678495406574762563091971727353337536557293233193283198294745623815482079727933776553960912580413943684389764302017036924272816800643946363025717262435891196577168622106048432887210087643921909064351010609707491739502639907856598510111912975527747813716466818175693820627440671214202155277728928394981784056488154949401577971164592686582198946895715585112138297725197450436120360506960639048706623900960547867169291540538403454395950701020802398636900609351978556650321390044484528889472745960241688543642310227531659142685442072685356615629571105698162519751753242769214335741461346451257109949968313527465223243767228774728364787465892281626193320663020944713604050690180587031055631607963411044913900443775179401974575135559046620782272929044405963135310193176889772971589439618175872218267673457055688496264824453130401708328115623468967918996583985828769175321634850487926629228727787116494586204600608151104513589590329366608088772323375757719268229182603368145663572161622657807588714117203720606247687419639617125324017699235648105168075811640860349136866690674174798546380009461088818125628046670136974343701010039402301450548355130111461316263146962395654674661800627110400678634166066799563342381486770955909434032780991219943564662402026262942334003660350914304791806969448614184756516264326518058374266996127027784240405986350373203779126198021449106999486555214071121658928837765524690894990754480236676798912140577154611465017612185970062904919064076614284293059942256024632913885955505765251099544372700313431581045151482944938544630914373065609187240426289477193232691097883538924918064389672849285818219377180059973596088741312958994965144755318014667953124220425480531151217572896734209601226912456394893832375503171783861586727305384674477468674659085512124568720391413630303769844229115686492412697701822681364140030360276240152496960208529478659344487488235474376487415541781132326996409618181177749688781224403500704696733074942990886883191124859388489269455108794700209811994850272381776097074854301004293492065351239766397486356134148460053323260858799409581001323368870863721210551936655041718424726538078114474099607672257494428869049127760789311172877866916103816885290935212150154269107781301675822470448375385313247480132064986667037079957683596823086477224712458123771767886527833155890225398259657540213407788671633779870848170228529270144829712355401651333620426559925114139731620130798538282011245211728894824335586380710729286317689255237447429233645326158678729740584944676743390554529852018415248752769877256614400019139117410334564972989270409567505239176042442828541085950574387824325033686023770368010782590377764356123772293516132737812788591365894229587690767566469479826452995724669965116304551393049876243509435858271310987783371303568424640497240876745354831415709534761423722808331521906261645485403112345490216873396805126209589144941964440330874380018641775886654446115914768447746728998452176840043459839724254489868748620571691193837723512182688291585880596140120958807007789764763149546244258937078071663950734199875260686925678662783171684567889351110427450666820946721233583742825198289870302152976666292841314346330861301288951338321990182953749989926127152981362563727190613356969653279742914943710494535212349027288246966953729296265500865008802783726524668784864252330038600772791858987139218035028093632165303667056366155928044751617441090404181013294617481277686241203500924008478893847426152337628817830190272373393771900987702788272150844152635468149312360821463830090132031991630445234598222212580273848779988693108330084155862320941529182228590563164953489639916835667438978946689256841241714951268004479564354897822064417969244485848839586652857513999795496145087902010110070225729514712873096002010267486720875747246394449919631245525966829627351285413717460763901315216835169450029542664340147784518719294396301376476403031717399473030786363841815236230937900182917473232758260755544313092071559412820836880279474082405549468955037329737316522562050225998364658138078869712961070157659452709948445034608959235637812288519245719230301602904622761205985716588406896920871173247505639522998361505312744265847009684641211167604555434808992163467409248657300388542940758041895827619378541694229287461060491588688512168609839237497357689832716330943263069194096241217243176038048627901078754127619975565753457912368757781113221830299863430851058027362820137058316762648317733378394915819095799031406824408643412854860731589259642142690630933066711674902490376100128424675993138789611679859034396034254508160789731780632346271893996483601888771935072194364998984462651109932941480284973501832567397388732266034134461974717503677787838941048312037826424026373527113525462923468446847292505675282668109437983712830422842433811111363571417704725569684216339236476949177834573452978581870931397241131279829817630065847320230686380877115227542829696269224725291986501853613557832985847069055235190387387258833092681375588823742402524620267506778939978695865351737420768543467728460870184569995633593016258324168101221326913037748794911516863403852448261980739053161356733053080576289253564876537405358699329136472673936089705775140674214071665936772933102943248284968288776840809175415354954671437869872360907843335085208815519992990316011862065285719973983067168194340964755286794535280782589133853841493485979843320021359053082196719978532468645320906283160452355412846850146264042244867692307036187972223421598013922135045562310832536092384731187136994271606032660575003842688274313655606235299362108334510196465592997031308766848945377171104293771469561896339574067622461978213577457568889804652244716603792918036505602042100634178290253792851621666458953028973363661689729436702268366020145741296556171515497141902220367016057970357544710944022407217307973852592565888047038075042275562712574247402339187569639643912606951695547246249639295688903302541214536899794408950758685238974307578860902978653536292595951475021078627336691047888795243420583241040316796774734839046353550963571147681593738507741703136669293743040796545175846454989178925664486903246978093226308803604919315658132806332144707571612994085826757909992108691653927318064370366346402946420548302728813399381735795945959770664667916988427518869172910008854116380234790486199059551323203322258851896255084093510763850650821131582497635815913450093970977579995855866848130147215228124836833630257234740406581437327428498387480387257522735510762249910092277863903233059154194670198596260998329244573891759535113010070568163016617972213979452323192344799215338071435903867618077175378047263372830217216739482798266382128556322252901422769303792355687248701338012690249555297950258238679597556903787376753569982165300053528909468854907681968452053565596820072348623883431698934738044542211378339093598481381983488609401703820161652608962306974602360742078146308079401463891495970135389288566819963301093754744702271285846426544518129851176428382570480867144209700162755441503955076201377812243869166254646996607332286732229183400047408978389258623699197435389165127443517146200867726772589005404954437749025820753855226926071472247102660905086214953796514210582212693026990944724718869467278775844848446442984981802288609027785051730683518748549011178842359106481319401261686823666921499882929027218914122381353237725233354696993466416821767506921948456585613807937461463226469227814735223742250772420624576087484754029867796990509052696133576134125166945934392199913955171340137561224280675935239995284144663205901276913778872317299986904910644077441204905290164740121227630319933153794555692017513211735131534028071277678823363458758537551427385481462067451685523912645536466034652413629856401314222373587479984340791063014155412932097842250016567298557806904422020704036037171300324637141556926602150124593246851027562283663186991290563601999130473004742313510604920293468472587422934166587761976224995014510344562742022604063242544191213347284706790298260150739462150630036848632499146786362945808592930618292873670133404857719707210236895827146343319562806350350304658962088586137936876449733153481746785899869295343085963492187721989547322385858836133303389274282599586301716795826285255503548174400871517408488090541462109233883288074515764460936144764526127594668904538670667697751538490130667313280285116652059850049638076922752476785134489151239103098859656094576111940309073690210080473642313133373714587739415619799664742437969022863332343440054484582031552694051310321537940352820461211963802053248312273019448530132070001831439747594175741262932398461978999603529526457685207399242808722230238966976235728995415497159407559636348656477538547520002958824899268686114079761742628904310040424622701577247409216870873499989492691396817728011695056447123428025784633785659322523956908998236808229013725812012382972382112324028935045371733174918051773983244323960235858663716260795972513658982811005145293886119200146897110406959570096212108057056920687182625331812928491711127438025815062190922484350684856905026852616023873533222898065700679277372136974307177624894427900823663182502772581434567399842145093626182317988659447982788793662634346519828363633773423133078506069139916618106437104382532518205611766211207415824331340622939591879070732433021914540713265885340803724608227649009006321717727748683719572559698488453562156055959512619285124118929207130239752513900896891807124257347104412917553434346650010818568912305864411356012597479877367116971639000903044313281228753378027398726799727531360314103310483468597919704790681845033588028845921251863926628297351628999305005362041418717914891888358164099663404129777096762743341422062110095971884970095401745052322014777118413302914990154913716197887219562531727161851297536774862867447357032520429462301062462257873222987638488883825920915878424031336680129094171133573474199101766782093790215879812536565986548870756954985118926049428713673904276205646030672956910366724890140580283612847655955234112447434724988520427850755023334820816995353093696206190100980903878361370882464575122391413118351687174654840343030545884269719646707473310894678869099590090866387375149774305273513025486797697505417112494577693421292112727890232692193066042545542484833410928948960661303765656891888983924902593829632290982166228205541865975413880663048072352930270149689625237795849726162706769230569842377879040107715520104195412258346851508587565026711236214345851868888454633993497410078587246043170581280228803606448840546917627542685866437541650875257111453804929615323943988285604659995217933276300109765059411687657638412032395071865530964564014473848027325220018906394177331465899588089514612110665756572467398099375358046348468451365211019896329063464046473276756735194771859597088748598486152594929902926629726345914995207612839688233659497319232896238347865607303984858702520301083535054876392739700836286342484943422945624770197363460069257066703653092196254264879599207968257580652632935206756572655630777135990012718541111418316248803035183622435810850360726594144977918797889536491155542242447024165495962516300081021478772679815797550917113442096286007180268868697099241999485411754261334383832771837146434002023100779671983345619571403765743145414428367232798926546692251902511934391134210736764640386293513828080618484628114701472700489464133085333001750037224320171980011758603715319052444087673000924886247143143650070949033981075044710095857891777517076222694966643078124420508009530766370656254853112981173535965930599850389968908518693275663929121638661952004692994610746665239461254111378626394926468409939797123928466759832305344961268377488656270686713005565487302535831601461650672815147533774656210278533382707167999683214332995566140689765007925437101679683162508175519893928583035607024020646393140423984768829161872872408995537590863620364570558602219599115999078132501951999706367193302801778750124467226832601008223487509505233980154305727528513114678576756721336600727501745045882020832704534538820196516189980394552394612303195816422152987893443848154023697778922433479582725876551804804141853401534970281476158593405584085026703041757215456436747290655154792053170064777675062484289829363234630469638047295258460486753779794819219927206028273857786828361537766899000876638405188279341203560363056300889244354302700677575460176132583207664447654005789921868964578548116674376201493881944496821044019385790893699345144915950692453940982999727843740967470626140428228908248102739153804574745584034136018345232282878338942316217162703861689244190746238389584999797416715332434941780405792131343684744353266689796775481196456034345169618276450873954489451952376484722094188642008748500136656429393500558282464997337571867049551220683484529262215430953579841715346054922988420744611628405326276859394973403734804626438520375247039728275376066506459427531787217666317736699158362999102888239607541468267816373914402351027865888242981709395745562271446399074077909854596214403460548192187282709279626647197157118120941911327451922031947616463147745034960969985964138444143191202442452213496514832555867564372562229313238330229109302355561073057893803927355482831263724630955504386628546791106894758762910781568518626208502262627332655718142751070163286511167949946557999691287504877235881688658432055846620858887581861684510730808122323015020161746810766596671560269621067250044910195918436120716702107800702367360107588888845280745225853566033187250566600266124972919689544340148030813007769437185611582959268084150671081061922987425317256051721375633436506293304837546845198350120535381825708895407268289535377755542406048467035994828889402560973417750017325310158969440687344055133784352954018585353816421124793943889738593551088575417395279842329399156769213900509129273854029295649888452417075201239873428287638069079229109940046695853260671772511880146495176278985545741202143495950989693964230323469334320573611413529764922670845277646842398136374409588178214943689006720107634381362527218985525184746776987506809759730726231904067992068242144073949218138603780078325673642111977413061678548387097455820639128184295652716106645626822153333728483625704012477364497759622410385134393131788602591658470978503398824337126243696937627838023587705355699788688288602799088089686697212455504597368569937358496970440231527868134064673264635521014749962821738620063755584475316075209448159283446559388229727802862999927778924651581585382266761198132797050708081773394941496274408550555784783018972411254757419712294087556730642918993866688512691191043084570364778329903027139426858052631294797481088349123209078891354597128855816706974965681508649816945832543953062388651225942888356600048079040235580191703689813771172537670597098686205480121459721358754786711522346426454257989821133646446910380917469647300888388368149613859475514085146643218063272417524296755856286066016712201435949804631395685135556362116674072056546320778282499856880520894939472148091859108292027161647677042700221891721801311128430294272120887956915349296564919201156527720332554081879708475057140392020744636831984546233202069812042832374290093036206711329621153837125958158618579727723371201030828931542662897614758612932488782752405974137567542268050925945531053104749182456086001060146504168494324717114629492431872100646865318419610682540637563362291174398444851509337083952565399197126978621445467232010289011730397425444404096100129683352376408778004486920671738195392384718057972991142595692489592333883347379912494339294791136170213775242100844698544265018818791790623172371242318592500311419560738626434757249461602792250972178175166754715416316761150117159112991027870861873772302336077466429733812093370350055245881196184834351732312491038888687749222775308395410954830953957913946053357437710311106698169588397243850114339693010304705719082584323517759128858087970659052734488427847957350459664954086324996618582522001389368715476534483195715540760350869314989328798353417412116904156863387984463340378169276821090155715577694240602409721391238716399610168016793328838219221645714628773877387014661022167565113237742139788071804743183414798922056832141543610728391100262161179770614828372241921519120494928776144379086951675953276970804724620494923172638642611137044197398252327127847695777290042039528190525977824616826117812392875612033729215809621278516136911808418145931987011765758840954146614586478392104199272776686735987030342015854282826319497177766242877584588722433194811708369439516389004231349535890146972076479898686000644504990746211534874908888062082760820179404944583142909451327928510016396477541309387282020299589214111723781469820662233995381221840406106201283658270367433151571823109273754157481253104948675607352047669429159653767416486697761452826575320381095906899665637382069196131414935420685444142835059031429413393201270807898771103886103593729420898873179813170346170061278665757668616817871960918897542302398486578858533725156604603610072625775661438603974069528050601761742664342682409831067345778686360309842488022026539324894188155833906387311988756523210107304822145751103591785707075651132032846694774779464056536373099594386793203622198059575650549277318180113128733645582505230557591765491442801200450514974378350013488809338498099834634090956403243490402128830930105170343981482996321084168376671049121992770681349993049789519327697491947970567870411885910021027989904825154146203120001734821299049457337466200495733068737795668907810800134531361609200427634785129851613224492608421998667472884344168648211274480172262146503750068492806040603380675930372628350561746030758838387227065101833059763705456309259022590098822077452962117388398486991217472729115441921516321033350227088084625575375603530104297823025263201198035563025697144250196573288862769629412029720706687930810395237977945395542025416380790787666366384863656359822664450257017289396099609753695868323524949515072310119939307446478553103039660277639738156043611520395207283561446980386975034594787563990664230705728432737180847833286989179557640313284862099651845799576448359217373829441531437175999106984881779723369200734179663283253525393094341504164938857573982208312643646346813958691433574681736244076664672622257437593803092446689475065987471402388719948691943752278959152408155400210100723853750014785387249546430715127155510729876896440428974737336306963780149445357067277515040637888058948000981831789761374216775950074581341195136642741335604739876969874392620871903692664195950893577403537330954894728114141637884310871562806653326766396433462464662488370424093962540966743099004093152991602131183084156085736103614404842389035599604548116144566310597305077194411461322196679441736163442052652495868435002455632689895023802432185413271336104315429365982079805062117303651617740449758392201489161141754352991073853059334797462308738102812790098905289907862538568205055587058092092763679085852631945579838345646248192912594798241060766470209752768039028795559956744408573537437132491147448842945632068199974029630780869256583298878080148666569434384974269394458471223727514213365517622219537097277618833341803337707714903133401286203454322813922490959791948529996093390975668258974978245963598220371750574309143255892065571144111641461208810967481273855337389838118470489597291163923991564903486761375861839606344592818148888478043244011665744388994654728656370478580706317031949433348984902334695099590150615027994106660104075302933107975070955453589900582065142651963481761087316833544355685384693629800793071852659826875444026838930661880113256500757985508469012636809696107345804489831199824557109072560695375528730793489329165731466272995726232756295886091763272121206605732669664612985005507106863175124470431797979904760142043216752455639569491541263471772740964622834328988615726959738757448104533386077784434295407527867974493082412924636837474933389636562353712234067790915686069717148077182515225876137106738481324794481062032118854181144940746764143581495968990365058912317703109691414967720912242915318853650280161861436801117907460410463164758559508490646340721320191723011647323909536737207797344493887829591395133562472071599404964013306558040902491474699527714696865565769640807067814650857237967063565443805708025540665949285242941761364546319435494661392647100235910086506471030311258225100426048988297445561669227750259104290619194347427803626406846486477280438488488068654993968726679141991201846720712061596391436049666249775996559251701283522502737334338642957563329755026541099375250709589795265833158741491746357888598615224572067677796071215210859733902166624626510431467923297528085222254675087112777428280822956682780259808005890176460230640397612984722399421275115417707474580108060035608592867838169844642876799546141311696138316703499234986575303055093781765612368541125351702503155742997202898807994005573911574060764534909973610636434845941433031350899137856640832607542452981054372308679848686830064144487346122115200090042473028895290131669415479920809215352480441810768503577319612871168591431414003861936374155644748136752295684800794629039445296632376122846790446953106278885735955387713011110185859470088306745805371431000552475674505588466058908620377717658353283963346212804283952303740333878127511316548185592587255713667004554181749839374621535653669908711394935387220267577696418480254064678541760609486419588697610897380594157240859173032511819240756807807592960004459574703869432946788460138064524472209718848578733447693583725670460635871753388961283022270814993287921670767291960296855409515951406937207840518813549120926143614475253443350169911850020064727118353858821527535209494429720231787818941019655153533121787984581405270835791815963398666910910460297095761759181739917640611334460797133960224488285339985468920849388179552090279296917182338707648854221359268972007886294278083789127031666900826701633108700655106214087332653684636690970332624115862985578171106387312255617588582870819979655845027996695036826015543989393729316722061452080306524831883429353816102016038442899233163474828242464001406255811539579787040862082309634652201060856472945025279383946846629440125372929906687161261470033340175483041663924115953481574909207750584071169192681292577464370833529307271140141494864679073269694986732597101237846868239263178252888946576476650644480600341357876689137000725160335563723547217947775129975811564889077170557912647587138632745551570293630296001730215982456651021333848242896414574680265689113040064269878928140393130075773537518055299907075926856426178752584085259296033962673015560236367358346253687410057788947394656728175340415896521419518770482494035860065506603495094394249540887568631814793125915156725776238469204254945111448432560935271089377041469843733884229409940143438441865568151309645166132707760976155785940882241594551927204361865970711231210435798679515341202050917499064954319315934887489058792376302298545800336327310289664163530062144510905169524350873637417246068043124574618118818893009566523166294672091558515920318071716283138350395301680904831000421514534422215902553370011568965873144815501308802668210976989300600270528645495534069180400432990453869302596443290819070920028085193402430539604226034785924539406099270291346040148621536134252903050047497901299442791195759049011504282911801480117434195763616587915788394266258011644595801147102544060166936303862266412454411080831573527309332393850342335408390241249083059163744906787075852214496053453798583852945064405814912287218651323588606130681030548359287827780556279564370732930860438251588650226002640701151234363301139633685651010859440427011687022850855559036565824547376009600392801534410606585611867774068390786908131163793227814720215141103768723315268584208435402456851323735197833683856747163581447807298481223217602506295123382230896396641496414019290984829721766553629325835522373436962894441099411037508766236868040481709107665546261586795159616501515019637762121952118651939958674187577629117744273590253000403206477585434977655168298589141865341030812374817655530614595651194412654713047796009191470071707585521673797021073805981814862065746452770885105862576573635251720877652106990246399159054248507175240805834226870635643553814106826091555147174652229550134787970355237882528206737108211231637199572386033548047722969867580596067961330239566183483375400260138351728764154832348704525542089408385421840315848326896742464459079402068291686149586306804051716921101104347171390963210414135956815415308723498587020431103323580814559114921531996473975784298667735995159743545046464042655333006370502713226466214505555841060649289152151649707440235537768987837726602382775601482477957968196491469728726404395638378705493274279122690822675621010762812657218298885512289200310556707075057694663529010131337121369472147254960993964145724195458297462558174866611873923772702695356073140021967556471454341554881507723785952157486773447304572075027110491795074640478104626883308384929894690595731482802576317446481841513798989077335276505122781227398779593618070475624291077945862836415636758739711305306675433766497003857817623018912179097257993912931263067221406618281813444314097012128457982366711208590830135040974787112825828869866979890577795489398798531866266639072873640758765271605538121530230537672188121044199702333882437958409979507830135236343120087809664838538511839064177280501246645350687447070012475328248181417623201958264859283804549032229531227741438348009169666432907997877047643578570340129626054739914888246643903239647317311362229446197701762745793481845557620180133935555351646727023499331550560101042145988423411592443719775123118938557195151901372790104022352512234963357964114603305918798030922662177093770705114980588006858545064084080473812735226458384113419107153129703557423367940477085633306808225379412919505889346936577513516132818382655225703106789959721503235638423577595631486818807940310699922044907310198110179540281654702413896640872614461846630561716880303391599346252437631142770553431919401605507133531532442779261602307313756276017415213833499229946980140375522929048345064424949547495809231109059752587429088670269396077864564997898186856354242073161114998316052092533706673254823017703622318583186219977521896765963689786424409493904791388072647959430794634252275486312702160621433699154723597414292074484591088084695953852779232601833657234384516892177304375680570627279952239044614755220207816580058675938889181151155654011734054122328632233227833115730260712459586920189660721044699449532790517255830820238499624650664058289556111893323344547125273589011294318184656029588894003084149776405228883678954368090856177632373278374172098659100961312816871884806876260610656845439956396980688723974736412610154030931002002375701768022917815652008581031286457059302012026965846139819281134277444983013855148783072475073769008981217160057371412719990712533730212514727469921391030297461195367640583348493113586997197097864484578501486373946943344426501614321945789371673400411124575353888728681384716444431498658368280662604032555195297090885266664502530810335475969417474081249366174386067820546420841434998745022114928675817019266718503633643029945348911492551416653080034152147408246803104801026866155954696828728748528790554315862837461096033195586262016661890745729077750729044099537334896355888192116125392018648844557613557042505776377346301693670698866508030430728318747901542047669946471961036563224114744090968994985468354786658928451679453367230815552558227254462349699875625743622114895629943271931502216351712342041326848829975141847987894775763712078797991327117331769867030757752811302647698819850130720394747548934938759760562118120874526703413502465471942534411113109235974360552404988239448504259924673790918444462797261281049348361299373825225128342021237371379746676971373533182140732287155027051325140327222014000049398483069046185733059432924691525552388469461459446549088206249103190090343926883868727007831498615818152635702936406527968830051122895192270766090572560448183101557086050640263671010710684798373087403817833242029934258254517693849028419789041193480421844222535127358817081509517501496810495160147573205491254837783298211920030509260194461750569460611354272550466291900376034255619772960191935739117253281505151910500811445279807793101684626793335281343919258020972948571822799994130925716747399766386671024882915886028889449497927286042333774789923374042689346185164652669967910224115283524494290852487226380921908474724890249226665206195515492338845551479718417245210936445518023371418560114157817985199604369362289808605218466268515298967426993552242362805041629272787667737068836026944124066089579443773383634244037950995771077148300405077199618512368308839960827925366520762816637049641866604105284715588596236454881620133034969470426919173293064204034468975003873468116779069500847961532043736866196203359961092671926675110150209193005118636268010325945964421650644808987054464930173336656695793597446732732613797681279238422944915709626034526551030499402900180256380977731613431459472924130026183979734368750748152540337199239820714543480270469120804219288483320814186167056803643492256132159514540556149083058275167211106109655359754152313756179490192406491613086936613223231780919691313439802251951042366807699587723267720610093973349816826289682288902552414115947957891484351109439984586905745011212673164570710592263689526174747745147691708312955709663329548189879489280324440081815240273618782150222715046682825587092140282223616280183536714075016032712728967636210981879567241555307752764560305339942778314086945656431566495853260903360860041090662795429094943604657871301418207396733292550925868777789046177786888861842396292725921260458814850108699490674965200958506884675453829417332748264598505664412212909246091525487817177894303196744786470205918364440281436288494336708118128204652134143405183513811856849156945321993478405697106321123051044776141847702165501952070711096578142798182091720979063830589800856409008192887122542629693913282646237405068628168871030513291945834185784173284035423368088205317805274079027435917038431919003930292967498971405859346000583975678315817573806805306460387337267602228239716475719666149969782132605522851375994020190540577564413759211607786849849214379788181113874140923639420947761918895387686084758787729683016795694753721693126511773285283273394895758600319886669297761302864859612139662339128184931072157410375994982600216413335568712426324332208121607610797848392067128924607228368510137626630622864922475486736948123041229122015170700059397003105962994650786899185938114729882962247120700033551048624210510834334445044984677767100387649008050839796953437100972570353465602110974321990000909081531667858395490861063621822216400174665945525515517181490884737323418527216038176700372406575578819738477392678998814123790405114482676471321121436609552966807756803895533697885149550581670603067291663529818002255895521265400814814267731062064727949247495488400673873233506783884041151190150735941397664838676134750418858348429077776584438411249317638985473328616569525016477150757683342289859482765874723198603687325387240556308124359663158799306165027022196572640548975068642887056816210843179994735977049793219307650341696934524092279503515014397433798690377621958536252327450308032403838682446772572865587206569593918016702231816811724932088756512427205428634838609552945017930654501610867638301929854802677695206030010438300159576168420465077908695595692267733450539916069113112980458905712489638087059767339072247252432291811214179565094858246624577892973535481648732576994135899408278327425452488657443919132845767164666606131810588429045675954290423159479445939136799590016194844829139643575160723013789083470497209762211170139950709680630316786629973067666280608719801657843621143113739071757621263130394474679153308675679429212849413209581405253724891137400905019406032652631683306418772037571277039325781595298479993529829231801359340461839067125760403661734925476069135839462872393997465569314920078267547117521312745883598433618467643686323411480147593154550102681227817748745875805962009194238864418425455895627601042281500237358509865695624775869474755423517995841797043185435246425891211824181919710471258685488689690558364097929829549301139716371087426410069737877341240246796690016230474835269855861610531014222440718282876414195886451969329526529733848798357215876286763775323947373131074597463853862329503265143045594932137294835092009146247655087144732974505609634294414320129689248439731631817037762659558765609055985900461159761403858485892469290598023663176267606883358983388101363293199113787405017182932953027166413097993698978596150828940365114464491690773802239036670332187120314965442940333262483918527011244498200858796825112795076152939357655691964417890053883731929023468155139881121115273555585193422039535511604274077029585330390635802731069168799008191174725151384310528228515808689556507335843791302684824999501721737968986793988589274495067945576527142764423890520281194557101805312282578261096342080362596492303465509179876544671448047348553428216081249234428857285291333907430812427230316330860969612373960989973583717884246326057866977185172017609952328819572523043921203818648449874359680510183857863493283958542385683256493458015974364760644951093283174127692131355642113410646759241672722704690891069589477894007034246403987073855647188917670174476298363275373978566235015224904611836861317859290117072688696040007823010115926224344786197694883036457410802572762581774470090732380907941442932093377413861613139619768127980898028717024392010067495559879729157144127798106627656820421532249611447333845754206035561368034085484867054625277306373592130324427975862578662886257080749056249884356294882152498310815300118553703970536112161376102750505094935822512201467394926184065901116360012642042151842156812964099429695617567039462215885086084781625101591371801547519226259892372033098677518369521594562860699636302898250282709425505805882849728353914939941871679198071600935677437547467936360871787277363249652470218522547417661916737886804017556253832973402554412388716912533950603916682130951403062167623529791241339767313891367691339211629762535243804269038674599217014320177579256581893657213317427676225394824015134189306009750162038722941732652797396545093794418969710931796160110195997092745834485757740979529222174377250367356425377872593920298044057490780472421438832151402294459022747834548258230638075509142621570107452243545125399099958178305476595296476212323324435130812308764973462099607442384711205936595496370474416357227242738163968660303291959345258018990765982537273357650486862479524596069466055634885703829994288255655122966405444995762399215067375964368990374094974318657590876607263187369113274294207366967401697997676013954033557973652713744642885784695490905960198365067470571793250731253702251940020544662210696705472459250010959627203657474911038622615348040154232059906463837415617865636915432209162819150120088429508923975116624325292580903082533404626117222222046198074801019243311139962998341457532420494799360639153007350271063369280241126320417554023193183260463952652266649510600656973233224501979063007914726715949380053677492427203519723840638398356563278470065582960471637268782404879255068331057512761704967548470695868405599099869077613598896962639117332405496906058348112341384739866846231794457692538545115929317494182480610119883790669156434875040333646407179348440953736157650481847280492856024737617760513093301746725320387025550806644118844038483941037488760691987148381496662599825501797298814949286595575500433099558314536157178080907765858773082918924266710093435249857082462412560190669010251285920693800349246982072189317326768891291695618564565710444968005256474219171815305693944931559158815935985226562046664574588700095048031633498779236813180848420614228747927206556532164434319715557187871733393115828255232050127137710913576446742432457868284443500864650955518880728719931488796982158965264977984842534158908828240533749264382962104325982143690940101986542813915259399452439217066512897514814561251089616691001000179758257323664683644978656475058671195855253935250456528264820365919170211520430561011828518045592076758033781467729447559501210305497995020055225445080773782937647227091392904682570574882481002777306854822889481634501524957885469165398622295551232492374485516883268210639283283448607338444166344623076314165269676713976673606448038584769736100453217891849802729561636735486758989976304387374978996624259794427064934756430387137846481162804359787717077225261061584639700306928753354615012851489006719941319264203719220726806282771621017532103397157652965749304042131849940827124843543697735220242392188904549037029548499966576774790254870143070724664450626259957180340207847297009263766275051148673503919088346159510064842073923171712069043387137297818622352711523423580873359423659399395499275555994025069295306524756639582538909603936215354570301599866625836237139268982183203772700379077718913340442500118663291714835174690075712848771402295934197824708605866853700777511999979622535458040806093446173787413355211879235342083980188195505025440315913566827029348805957103667976630367626379467910704353294002700147311284587890536343445432842370554982456662888747160730253356573419448154921361658249680736549006269715037466115017306790554493748130393907537617052022033786719414231440707203363475279811521308207265446121313042573467959378473351489318126812983668949779284259421177408769985256803512958092814722147160726316847092635711279866416651164792587348746572050849556650980079545731193607216180028858134089507087276783458330375629381665892892465770419376517445536913051007911959375321601178990191158835960003174767692342407075408585021718670614510034391971223482093557523031720751402225767148283099025444746101042985422048399492464481265807311484382057262871886222743427813807525173875534430638545962458049252398686694583131474060185005911693235468966960206863463719203846363665113935520179659932683344386851786147376617622198215143891148077571221944916495951669788831992054936149964993504746628907588425740805847867708077590346434916747551620377953280117303221120540986393224016191257481883736330857034580083423184748311508960700933887133624178014500839411999722772243024998422061325512196411330215013954982894332445117137732251167489795759642701307637538868875815638693166602362636909557853275616640232113612690742942271981191933446809520286739266788216672409833776327337466109405590649273183201979799019161330103818480908678803159768181339213181884537456501547293641395740315887121911031606414337674738280838195527181802903600847198239114846436268658382309989832970263534512878090786815729821868868376894810433709790784643413980755760960443941163431340737995772294001195639164087969646448244035603001406918172490865313323990089663275153048840202335294718290552647297195363284138614180380370755978653244186169907434153728989945822253201235099146093809787340385320607832568650670869684344725400990259863911683425618945675572991642817009736843607401911965391653272947671075643920405217919909952139090710325097611202143787902207285391548889066969436492524571409385345460625613398519783609511586301669417502704968454923912739621320114856773579016312447653864098814086570776578322468341870234227804739107527239235043859890362456372496310732231135481203745078270349420771900198269617942879445524581914134158674561246903777236780650827621018526591648341756987651690063726495728324430806159929286844161172097639611694463903581553589266844802360036906621088509752599696358911010575160610239025796375136139711353588463908869972663818653029891521662123415702388251873123538029444020674751721509825355305736437640086160877949865993591922291513680359834342584506726788339551822549427022953148600032212671511626268130259646162038927463746301665259299882511462076052178665823640108527810906915500065347680670679753435606709398983197213730199827122574538038998474571090365205601213379632906343010527493064106449659388102558826937758715176751959409433817506372270658906280889937850928942198250334737896198964862009165372304123610739479808838225841649233039577999518402794624726289652657104309535348151031473402914968777232830727718337247900942790821969800312424766640896668386756441493142830434186044718639710532386324260354162306430980123161358636855868129812105420894003857461203801765673648583960739511639929213795443347620170453726099067308760518399188034032440335639685657200687394574580865859007234770952309827030596908583139505623695430699808966534905164966789265058170336395068010655664799977935641210553626828800753095423267755144986238930611506028293146602058900619704302494456398734007627491500485679031045558988470089821212839758028437523926057838337769847088970238669012601128169873059365706958899962420395696638462191293526551540198962895337060992814000294652314827337164367286383533402859628538628738676475607195945771130701348854925703904306295456890695378609765563643531048866356560611035150707752969448288901217082445676040149041426915584483985121102626831687669720283393676524610551585858378928388648168458617194123785879542860456982109976577919692486089661671921609378653179412653178690111172625159058445759713323659865330516154531685241665636053702240142611618987526218694343195230400219709084569030546215818016357617222858515001049989289589537810795141573251636046708552585868692711079858103786517729163977260441846227010083625187576352225919156253740243069213814274681475882387415684684382161875496616387362975390544295895829861659789848680126777285835871237996534090288884681253679820124179099792258859148137292672926735761822783710106030542044229528024614462395109819915412018700722875672435962106662536422846938597919457521333175571137417767356028912490873830599983206549954735049382323791508387378371704107415443366568026167639423144262426587308681457262785388706454053944881742322190206594136492729011798054274005986429962639963918587380776995524576522734830953822478131232959654267947976331396069777105889218867212635248834896189451838136177147371499825353823782299840076339466634135181495455787650166238294827458533991386078061759132907498042980040862807269703342128742190473356975490272788255178019823117671723732166346741232996397639533832114684551588456477418800851076185425574840840745997915280603967809264546902749369334796054015475662601533668987554604353963601037928502729610707399015914098611877787396661481404149601868056215935033938604683354352385693716934892928795083115772125632461373551708936057009348142778184190340667537653223679174208254507216721110228028048458509682760479853209118769419965376294960743331598277098852971701081057240248064023234261426052203561878965096589970480403774804523547772412312377841404969081929842668769312728804238265255079393618876321624885739031884801946081424915355394921356612998670757716938195639137257075963865771117052252994837153486732150959573100583463384128829893934216189660960298803252639334649277874714059522512747579379096198254710245619050777125510883594938365473840675182579200285171973105455670953741326160136312283067965366150985474217805785012977700618554833675753079239668632432537370770686095263691744935729118957197472286473439188002762446065267018670904515205418795672298109781290060243449489414783389530860198918764203678066999334935399411840137161297961454879305667115924562627570776248943237659177651267105581774740566128645243893068494073411073589542487752404599486792481304567779682912036206835878931624817186538872230428214503187501053135360185928929907259315949949051403368584035980798027967941305850267790521961943696524807710294565506961511633505238574815829707031591030375486791539951279435757484302946814261893107423298749906602485573340589967049469989310604854012691963547082884476509319026184740181563459022856858299063866144499384215878621450084346800847616699203367804110112917172639094280769392284047483279426505798778925156947444427980932491174763599766765799539154298506777507208362420541016688211406724528155987069542780498571542051890835374581847468501470894722105443199492163805282179372580788685226366853231431769287965970658848506320581853863780322265995002293213091308980009627666998863456409521978286175836026399851398390781191813452683252531425176147973849227175769469891261007578373864428033592382345340848382819566237189460790304905640479151731791805763128919013592496830606871427511320375788095306225679481358743072570577574252160618555452439330600157139658732160690064512114136018310325925431148464670197701024098646990376541814606581012268956166634285849388831276607185722581234067176771383843849611864609812462021209053693840553877778614433612289763789081327671521340149034154263394012022320953209551654712147696206700283753670261855891589429731795907164176757109621833929079629984834819038322609015382949899363727320840710792890622881612017675901033130378463268850148198441636409033481470020894836407091510263124590477901419606148662063244460594660894222346546495826609208739813771390953336920055182030012871446166749541405559646543108459032136505718118830655752028846101950196282573686759853689747938505214548077333095659407101008297024434770194943954529436226085661818646187984196234363556226100215032550861813282125430230713960090854260197797940669146375043610932222066117577029946061762459282935083100139042660787580254689847404263403300873500212917331143366747777503791534110709059774282202054582589381147452862107182436848332593001117329651492119064999847281725703451401499474481757874535345258105891183845260209476453768970403444670100060659923016729009738229671230416486588391652961738602532956320532862188631984352695832042068029456798701491009262225119369905275409456254009086559866728870374296394608620649507480532830595536935739053014762952335302697603756789631338858173167674111221156313614812808667426276880061400171374152668369941889885008197724088131652166573710181349241452451206354131597103174700051275176213207528083543797739686688454425640360610108441982850599276573087502171589033243410853292906866474868090436729089210252313349985625732876933728922447130656250391422737247468597826776227205734923568204467413557360837979900356181877475204078140702572729189786424752257301840845141381168765860194942277981503507445425712662878071938287446604498195711658790246108976971400689912472305590857967808120706034809432154517528865221187303804745814600757664722281475325580201199524856404369855458096218407455351234547508939154066136960171072288875626691910996033474624408806976168219127178514893572690975405752409486780086947056717967257172424159189530224050582092558688105287572393972674185132995230243849144418524171418362336857498663778039149562906327217976316765802385057908640252257473731515547528881983001250621466298049995227222820125878739965103545738419564049511437108478011759942218582240674665051903787495605490496406199296449066017128940725185323173381726197444916160967446050806620432570647130188612333306752439956079096512136305040566766409613094265678747195371542729789072763941591681580976348666025298161214949719617578413748745745524402810853609420293114703098904728214580395374330463864289968815644866694068445743193534968205263209037529190248432130238460353711606064793232646112671237726147967970342567770191900003273524660508050712869446023970321117300360655892282687592507845690792057640682220841248688232806012005987425791355457354289681570086694821540740288344873090180164249217108099383713978403551485579488775719203514651275585571648299629277440181022362848066398815662253819202592518367683149121527958989052892620237194234423846949264224991134340315140480127351053390159598527585319716513601460937217861689453168658679388408619374461140515014912993676361655061665464131652337672925020813653402914697332257623470641497266821566174158345938223471361926775765894717647715276207061803490075140414746279756373407163539583152793124335730332530988495216566495366717315888710952058485163571480663656935379093199856706308182801508084067553600874263885266522424316635062990329897296146087425360703031283439525598722123841030732246012405093716451233837236024985043165279916682598119520224426344007512359610881656426621159622057429347117764451546337113489858119196256902197797628031340283460595076843060238562053776666408285980832294493629606685967275503991702196901005626929837820678949526489099138432954113880460314243117723734584192294742576042025060854074517288623335161902214893785038934977898178443870559041660052516881627010329367890733234101276518537109394275395601995171700561705208643061296414064931802437909605016372745952529621211159653894591158808169964379010398937952497833985704213434670748829812696370687677678215662684846561538564900985797738497922219045677446331245679653333259287317430594833922107569740233827143666358263621723724817201557999101049131726366468207274115378883433729964640800494690036688018468893905699933288312483626464217490865368364507347184017010755077827378323504130540625628865127302625911703527122791442731047681983013212066360017980330613769549040398568252964782746909940321005659505285568632460061621034528689383954591951196844083267240996571705734893307882434039390431299015720247138535987761604894643863125803868907568886021548188332863065946396990322333748033049798308363003377504611958600896890326960148777157448985264540351640699608031083756202367733153901568474512462720454805883803059714012734271004371395238094746629277635009438166785361799618789886815597099480937063485143075785082847038827475170054157302476894372312434175196166119195048588964892248494088199551754602171539299829927914390411310265806745830734118702098672521437964487698313335704861218892034980657640495247842722674775989267380610963762421210266709802764982503585267052579577309745544778793762487838064872671144939093093093091524208881459508961609119642776598669181030889715039028681938366013330509625238701101055440547733609376055087819840372484086781266790951917271020904823415645644851551201801395999272592298643666413737578498754123668865613452500334152524988759150717189195940929919277361431923076288344111279273325172162317108356962424460609361411695482834277394766768959217438838508379228999466578291803351532672190805817803448836287223634651444028245734283297682943814319736669147731445680926393125772576805020305747282576206863646178419357943811405062484567051876836678490214940743519029741247255670474662043795114423486648071334719255843687904122485762889732188268357460172646178577086827855815740827731989400446414197628559823544762692032549414035712034121238669202897310068568140844585031320938821259589609374954159267986838434096875916958370699453908673463548552132889694943520355651643454546237262255490524895414771344149831662389492885648262088457866116251709079003855174216867207432732266251441199002738591947885790855797460817611057243663076728665393866794262235892349143583734375630981825279083328020446944942305875782991349209065321353278753462703887527895239527965277224498477452214360390412104409683776295290042395498993729206826588851985663153119870931015175028887149404224101106004479699414272997330572987083245312136010725716127862471347746094838242567173526930366159725831433054533696921866529175329602909430711274795969108317518275243296454827317252841902309984467384548655049531408170399406170545852340297077709299068112552660244590414318354992127994547381630263860941276716316355885635209423731977730371540655844048647207036971099215644490766646309144519209161480379511209757060742955385203854648918430440023102152835528172238750796673421259337997554792761813450282974765634926937645193245957173580659343671815827502295248408994888951719147687663936638683417996657008864490878719911890370690886918463653344688590263350626242266525798011064754681064776459413258365747710913994907039622075462703220356064967050185619892599230443059163470829810266448417566448934604965671160142002677793350204448751172075951547906239061231013299436000226026372856435943756809903688455464826247357060801388329730645109820362999411344885287289660252527746692096923152222507732568002177687353654756364623924198476132028406336911324979937918710039372188352068274858382981029212209551785328115522727636682897571734097459834610868590020633459354749161135133031040250394971941656621931746209941309607338536910264259040719750405520094772575004255588118697149699540735872578810180374027143461425196057166748155366630412809795532733157678621490211502237805341175170810826507317124158889101658433854192208263786771969084611228124250479536157203609452956162859696729565454397378572567193963895361856377209106372051155455080419364258671022833942215790610396827461429534865819518703272364350444867257375349215549527295658761875135858616181098206444346883802165841497843120545415943829769623989592883485747783612457383502332977940010225175580051533871017208224651926350631713928157447231918198365379202059142968972337969017383497636117120876135064083608100355065457193322733009201028438771645899297342844374305434522235367730375685010417113601314815060214073188648310943246746442320691883940878969899206016141051121722712030500472005024174573810994870873468458745159749406288729926930442149058382491671318200140216418058972319983515132440997964369644554313112519032804084828375190399671317600140030072996071806358487800113821854283438238442166986154836348012878940988960126251222403341489506038810209786240780247637462352807866553632736145947254442361282245914489952447603196147398347019107474903641877648780966934468049618396271113097985160340502896755435454879756307076075783222055846407209667749967537364463658138118378991983981887841885983940377262015157433932150635547581638028234207918779178758633255185368413651100778901328660797296350562139083261352621579529311430138863313283567846808108809237756465957742822908542951750554014971008350779234162925942930509568158485134173093381925261636153800584341047087169292515002282444855861120811032394497105110011567858491458310598568712765642732243856380163935922544013659760379177160275841209763112706645823644928183973628862098465304083757702990881120061761816404564976400722060083742043761017311746223081937068539630718995937981726542917868637321432772892951875622375096775914133634416365216536629301306642410233498092486317551572581798717452433746449069896535227240738528858567595755519026727679609800002641797234908222511543007696172375299138327145642615466831605197322497500851861819923259556199182049600311011945678811337041913354339344147359135118048694820819520665986516941568692089473543657039830681422292106684657159616107066233501807404530573407426066912222274755774079618624965562626367967213481265508593697504309738036789531472551017227297815533054159516112273581019429658462639263996598853148109131853161724915086064657515458203143309946903304870182709020383609414233928357349849398844968554450969752920379403706171863383287225464508956383545889133756327992098507891449727842443493644367455669668989806766211246104811131639839454023292119950856424453287845641344317531021623840626410269484236051772550115188171456240076566425540954082248136817075816378440377408862762214124985786785199006105341357075014201038688658466572070743213795324266188404850409034747649887557697956996979297655534348335328523708017490831089050931487958449332147017649090473560323152427395468233517655171479722116898626850216268328905095987150031945228699042862460879080126791191318465386910995001857075816377740399692022485920239894231976598599665089301286697966188142212805241493339076945242099706179909687407090840653699845575142625472519893643549930765793935802396517520733249887238068424883172020343021541656454217785873030235584289672679862101435506994240104008651611279233831498352314971217153762566595714732087625305796303621978743125313282441156150214943960267773355210635469695250242267191348548603239833493572838746502904268901194460662430896908662212644213296140693914093874936955956646407611315000176900748016177392933381121899173159401300507853271806901079249708091424536186454658995617270560718491047131156963689869417487411618479546832822033658134276115470649211538759268935182355583782267856464778860638430073910954821278377920429200512827162010757004610126241550668990898300802540036241753574609291635519867393461532102616173863558226316829115561958195001940474258759078433383009611457007802978273591140970737835545661794694898711574821617690676610482443661852051907624736898605829313014191313554658926469448474303974283103386858865633239287437807622893058486597851257090413417201897247448266351418708455392692868012692002873164959960175254767874337884454128673399520223756811351340940945890192123741081487849466945042794919636161422895109023644151314360416534102019405680878535143014225389846930510926913808375033588533466765157357624355298461689030937574112983297954700065251313925424808628179898224968912830996356583352582881597967203901163159375965678890449230598604716235947948868418272573456539053052321608966339075118480900786186499211227035237433148124700771103440958394514460723898828254109172012794262705558829452684291672222175261758852286956953723488356081359491747636855840362177675716583560467262826573354203308499880200624969354823554187685276988992023973894333704989858879974902855141612147721525174042225425466340903793023934228126711149116836525544945804489880426941349371362083548477582037520429487008856575267760474058877729084273187115735284861049654077901897137122145028331458933525112376714213822261622485704094330822995984614122344596457329125425028644032560345597857085421020577245163825961696552367046037308746586320469474243340432557969455068880653865020758429054824731256485571883083321264608521133699166338326505878151699820073289025305624930174226823503509240668631216371026654733437064828293976042536084324484281465273371014064214351345405382044499392587523003983591773525669526933048423321966725338290719892335301444164562874751160443588926221175461145064076711302592985149374325217760948172905101912242862343772260053521071228933439045100958674274509831489857630854365652245790299627749718455973519334187057969772089630412414894201251282944198616722238582039168733621019740744045337910883414963119444078389997295012463926420835611495623238133073426632567160231694895730961396762878046395508787637850565785941673101727024560025970381116598477228588645237784142175365375907904315985115762910246885907881503523403914166620302237032579163732749556642389246157065469323877345392905822498119159268158964219149306106639830193688094649291372003614782480159859410718927931791051323073458324559995933589678515153543853242772417711199197640690618201462481563632389171994976538879195982764432271070433832353707899165334046358141562528407089619351276234094069846409363094109405135394218307762482703501049078144629864639486316941895336374644527081948458094835499989132555111576564859511786569262144821457491926723045501552046500447235917293725442899337584152580964673758840200304767330848915933156225929176985973790741296091063173496896684203596146855666784881187702547181199779615584173125512135585003583268673708573759302540305329638107593649395524345203293448120034245057160371912952953775318428641193948014554713387104512202557235537438165861297822468873104811811926422419558698669953589760529726201476942903287722471291231550561880278398191293052129885351007273870025795690894925732046961193018296127124145445161500832873655199497963161972456418586385488267446759041123851066992185411454571470406540362352589204599804356041524478639749416387088451537436439191032213893240526011371316322597330674721347692838850426461352807271789356236617807122827390934251267572885927648640507959152658203664908332808487437541654673219314287639094948990843703792960756807609005289348772493009427941048305054100936196446830440561442356448072479981991393864300865064772514201405046138069511557923483572410860055562031916451964222610344500710135557768992037309541430474414404503657033555399181809537494745181038709899125827877344217972757888329545786661159880503124948483797961168855443838229426610096076232546558433876802528958684267767807494530140586507664945026908295351399381651342036832593806635221766530178038631162588335889982291396701142871384205506691968642835977147540631115464422791119185472761585558365133473318191838810558419801363280211300216153093790832486535056104553652583737977167107519302733200411772650508283670912826462437339123102073000066114010417688534185000233689825180004939220767352634238877929954300565690710258589746386958938134298128536028906859642149192031616609557872555434566264103268467708621296033546667134831927167021782388271414898031606494918070424311036374303209224316825158641921378648651919900499264231782415059371536245608089766676222555864421462661357062400755434217730690971059376832715393931630730553929707181850358992413369779358031327160358775342334975983271157226886358620852310772268518020233524344941456131038347944390408372109729442783468724834823715618883692937699680233522823410045075827368406711042786587374107331904632083991543922042813334398051033260677656575971267962158321445795100718529382190249851411039222042253010351276927192994778937202679037969832536583919963685283581559252589411023173041807337155233629084249384450857467380057932493212379424651407492518426409942038067650720156707714776746600001492086378043390748214034162852739991878785186930891449897290386106382277562080922186364272224068149782224279159888922191829852518649288672137566060161243351812584391590783894087015127761224717566320809248008693766032028815824879294976277498879949825914493919177431448397104902472576881459952617367311397141996249264020500745695024879290614774932954904146902215369873525060518618121946892394635618429597183709966600565931680961945049372688907485237068710452648458413646747165615595319654293607495852763018419830739279239222703243544875999986327584057688673507380854058734423869015394091148591473747127198565065572371981561643348204168426964024942816097678606672468856097594086838882713168399905913115971693932239870663720856917167548369312842585233511725021994552287317394912490614485916825253027537954395310876297759614838727998667334799294073589052321396834453699750494876777542583033964714964852899553732115252599862054024859901491662203867360596895649872545302240145363700581061072594297028616704906901958325408997794059639294369637430091590161290526517437907752347575821378629159015578007789046914008965940548690296063430818035957363240284107252023488186538006328945861375286936462166568426223469273991679084394023192514133469880187194026779304032372382297704943666790559232004206681146397477377609126909843574617062430130652538056881412382279908247112495836088744741651893270765627196570965560066867232276149442017065614305953917352814957633176472016762980244496773779354204382868287907832199122267723623691678612475472359669196791219490298028077791048221686086988243420989438290884822370464798844004051817715506476026636344490615921622718781812486939905477206965535490296017777466830416860281614485785241964775138725436568149394045457145860834536981132902826990600889424041308816476035123521767823994052593133018594896340803380023341572162812226970261378168363478980951481025961910178468465369433922436476269633115315791225733010153041647063034760015744500134891229520777634628543303314546238761494695657919224396710476104223404870954939297889488006683605927719535189420619224950575102401555602401192053130057397006190624190987451452743696889065525952283377701330390941934396129307337871184958405152064368104751708595106675053561790700749295334160281243891254863121195929790951594350156794369236413210581866213225425496448204032321246127177500228128128364761390474415524415264470964857711228378425655622670973979968240477790694924622212275984648128980216818525758879358225876843655997054045456915501392148615725076724083120442011118618005829680604443877725925286989807393780667621823005433630731507106156368575874841691795845324964734361336278903807949923236413248394350920043836758671172991947345337532653467596866473747464055131382073713848512668663223168250188827427664548459171275997906402769352651499610151568056876253392638097322981355815982050760323693420924298787978977756819410315185343719513811613709541231110917322977602399622916986485331887660149904957744576525224511264970029664256229143032062343802479552359932956763441438569354280002274092349940741715847584209909694568394330475457128332118786623662080153789919762353659273130335486102424764284597050580285315322417838147903866845842259444640877760194302969644978574455347257033227461687403385123626601364279155539927184110810176464001916692910904528962370139805517671961629696761435540141044742255732013356660196598662809918341258836912006853566432137604051449274393264981718976575898895673931322150852706933369596141049000952781455430016452003070664008309376682463422262912854145468218165526300777229535724900680412030308699761986988415009823987812726860642915674793912615234652127603487610633677088156324666031021816762703951863264621977546519370096830146735046928795502991584507555917170585719660557914214524590280794398739789533374561802070509490902426953551265488450759118930598213458182953462536351116190111191538277596495007603694832565086408222395280431548630376702164172473877136458243225162063796859250936633987037489375483638536998581172901612403722784643075907380134820341397071730595602862467409474115562690762921448815772799183118357360921078439350988325643997430899802938783164790578561408524537947168232321378942933966773195869497336968384981248688554327231615867105485110186858342206838167336498165165280505757319808081154578338994890564436291496804859295078500614475837182371798770353062631189769152182557341961531941357711078427404582011774498719837542119874942524585962919438077190357851307241195335065159922908390715592772696815969078426330106461207386216895306030057319090996234008699080432214145536288743830864619869835615478986562024061654119178132897521910497405934484941935492503187378338721215538044152716744989730136530209213965662712406748160763299707172902919002702492232879707409615326130390203087740764106914393634904969084715346944204225541112320448880337120461868998611432349961924409110815381893418245902948042280656292571118371477132707334242418523748039102357286399840117325450904955332842095302676693131342149419626402444850391940625169678255059316511913475738818359151174964428598942589428897832801132940466862089123431057100116760854525965797490351737228477125081281312081973091041296213315808775896411249850007747529298306999757949546404127173703471720003064990712259578742053488471201093731132834590992119970855996529915110389089286564668027614134755051235034285924356697384722742391195750310163359899225548362933797027221891229753220182973155408104926739881233453749402386292799432723126567516499029404464970522184299686861844828758820978337597125002469716450645280719948263892925145673105583417259794029085162379820344843146752954992087455346719890099154572570281301435836277982942579013973585654128661610938443947599304945608390020329240330626597223614258987056962926843112184294769323309785094783069473791516070294140057702685594842813773787147597420041056545221438654601795105851473441605848355917615051902514646082575144058962066339480979182615377547389539459530137267943486583536932571353982899454334269912503328951032105008986482193315674280425115304704456297879790655540793935290918979139424569702444197767606574952335782163316414658948160844013987107093265613065215196580199119933152580993979470266841612656512384347206252079892878958151634006260778858672220510384755933542470482380921177229191010396498296706500072829005424841753742415442399694326834213696069727779338195620202409041033764214029167184899703635221541932069679394118469835896290030225792737060850185597918525238024484771858079696625840721626269516396951334262642505243903276966286189983056088572651035463336472549917757413645027075505522182233488175652495194387634619206270896298785315709467117250179248158342927691169641111472623059822596839208748144172938716317351188572039746438414043835202517222992734464456341279259111105376111229597856157545943992343524132404271999732767432093548161683988455171004914800209908898380687590936758342509942798137159469070836276480870910584888570250935580082808685960939690871700880572160672440688819207342547934350510294725447810294873465406603661154022901761210026729743095308076361554273310421194749082792668330165879180455294161719910864577198168047023233201501469192096295169490419592832068591187494303235444979729522985079114907690502915654092082464778477715377552359351710365269923373448886567217001962351493625974341083319043777467336721288731534624742695177667643155316409066304387534306474249578369592799065383315477761698742892689779665443712085008081768087821623009393043984130582175869449475696304298975528180686902913467084463953133930356449032996921944230540596683746693976399555806446161524500108037957288459944877956822289281315130654915377963196520109759849908387734352324420825925247652831846553686259462163950116650093793536927403343639585831157198705123412001288401458284068740057919758786174300455128103777177278303139515719347830413375880471068092958013246444600032661305042981684526975945404302940977745261950775463879322872060338280319108992480251208289986224458729451011805898871922926109682523967245894955251254864099405525741262347432651832962236578594504395204984697591231645665823855904643752992018881796023833546907848529044683396037050258993483341381905912363113153795769322677091812924062243321951738434503623308537530177686087728721901320342828919912206930645767166500292563031534363333886760986369171513272193153005527890431786238300627437845047916533973689880202696039431257608350009122409416818058022022482221318745576408796151797243999909231189323392675396503945635353544414167384847013394340274587046396369799729251704345348599390151148237524410470193167103737373306466928092855413406673739597065850221603457810442448087723801981602701004680553568545099070008310493510221248258468853531055424673876818156350820670175226796245158611992244705777322676683773217011767080355865834257685831833825547076565184180518102977430654948405928301235036987373721422718512932896396483692257293290159985426253761072599096682447308654990881434490118387196178483650393231725368792080305099883830978410690371210543289696671596859950685195734106892908386393976353857047869477588551922614774268516049498088604631455366869798778866851159309171888360924820267281167931894033011132156613932324495387917806276306729596540102829749329597457163786105186041993710134997638786512180561676397562261989861226406126805118226948729597040673756912950171652251617337738180419815249155915765356267813534858373764208845864752415833340300809825656867993719784507405047989906632802014026501201826566791688181226497358278367163017385285611492051294281106654386390902916438934373273838144100047418296367991114331879813415914458368227278978519858987695935656474641985838031819319917798255072638418152263107087469377512916709061788022502074665587642988337254389706530460251479240854897648100338641122017471686557757127799562931909887447599029491751042048515659497905669913104666176908689307843951542613031870532185561422164660610264946267188759268770446145359099588090067134285567634606013845503738610423782945854958265891885373932692339833676665237449847592538953127007778829493080850423952804486453562089601414184163186667512777163447127000864110894923425488778240839495553242737778306509441365868847514540897561248335617213937191254548084545435777314575224099801665163187650471355004845247831126234174136331205243649173557514323448586794215410132106139511287875660334380738769035278520326849699267660662956729287332053885848056789846418938353599869246738451924325857044456232169547194026679069865699472951408479484952859821164292204026523418214476806202733160043795377802924204812083066742806774022387354131754940244215885095714900176812661395278844425884670939991198219194785460707526250735179352142264556925769259221425025328381952198300897947414956294556052977940607421849818146236292955358646669277487916979914640010796433079434029623276877465483358453193411958532069134727817188439961439435595474387431094460294272050898867910753247390043479844108664292556420380198356966630204702738601394867191377568492921699738908683429125572660402737495269969485913478716039216299227072637567200389071305789812834004382516933109008133088474341707708537122085491696191649908537403663177505605322482003689317219607885716679652840603763330557394582571296181502083950454193393889267405597831955217593774373700007789602226697548882898706061159375913222450765364881297841924364030321938510812370734702531866787233697175967627569334513984468060633468089928632240683965434749292068780311017692498221983899550492357284617223365764051367901359605915483334682569353050675187565182466227122496138781222428874470310677496264751700457149894811537038863580411355327796081737492831216620310456842479545149131323171548397524879081310522629495829753852170616119161179912006852420599320742373680628603776486787641773120664976652814223018740853082524765923197386652932653900015624470680077238658910336376855137802715976300844190837097095949227167707732111172447423967721715145042831356620128123094755927872868214191645094159305804699395261752343553874413533715674059864949963561318656835077806176277444038395073543015128140493497824188651333122515811373163666881680142603087073184866868707566505628492942298518839131065578596321048815587871607092433931332221710895050485145153149886619167981561376765383570728439504425237941692553058265331298472914541392139077072449645058278574110393456060500720972115582201722558883178861016230078450931985765127693930080277855255840116847622227740497783348794697053085690033958766891425532647621094625619266894612691289083450684101822552564946549897686506527257162022315375646290586483254326879031448581324508151442082406943318966036243296941589666204472006843322255421822679833552004319518231401209423083632330421017392625856933873046092351406021878592146201646126338668500980189397867376308362700953967745241547995469835966800079061808051979163799962721823429537520699229930546666519248149943352000796507019065876832523172055872015387268907451744061314242825208210954525280354194499582949092219659477370173103365061252588414441660888737844449935075169689945712210171108247064456942829501919065042845112854784416410293221822097572079598540961445663843161955050397962425689923501132915903251698493706298021222673386764828993045032990438699602867158334396726737616920493131119399238525420780985534097755592362826708262586326015688004752829930054793740564240621240923056045374564732224266028328470999093706548679587398723558963543445837723401023095347644871542433024613190225443257997489979444773885689769824271971098581820629356133466254926556278330096209281528069164188476533579271791917041700939228608910501269415362576302022474876367685216643588471158586926521111163550174510544957347897926546866093529831868587893388478606132004757498380537953955871328063165430057431175645013414392709252292414676399223290137081633736387800123040768248672064955717476612170499362491231018838375458086853855560954994005637668505365840213032390042841105359041109237702636094868567939500725418450200882893329524117401564986772174575803450988253434641429953802936722878630916901455078599271557501684583882646384735196282680143868997508782540814300327202516552338747533325916170854592460632437556784817527104852381613391739457298187131533099398191002892477237942360199819948272144832077394024136506901679002803209621206489052291359586087685166903274412394053210348687943864130627885171478579396008081131396997393766069380408338468889838970493694293900208008107024095373070511477080044067350958805099795286958200101773567483850994639385794385885510307374248337571175226714368311931415913762176440788897508984505923491971631521882339033135215755573170566524744740331633350579362679731387752557020022698533258534643753077482132567943339556719175210192731844808104459717698253696470284724434797414930525628457261296780403583014682995017577047119362164996907249765046333381426187798029614749175123424861337613573386307927119450323277199581496208482409447984606497697957436851214109468969893142116264987342838029622604428499963977655603408751668870125595092869083696683985146549226438002152185375047245393753095503053151472061941697311759389548332678447463264706434911771565144513176478745176524571688745211153336737023450832975778445636734548831361329458016259966698985791070711279144956736847143622917868474350540366157431237016489549904773345687459981011547650847382160568635670784060167398644691610234230427072548657532692634948169242542127272847566413666688727513082439671307261401814342441839729202681686540701626599805570102636328576364189788401598199815039829617042542094854344348631473930968017657870180386041224569738719404231908898044064539548868126822996638459496689867765937015190893334708590265711176202904986393614293152040897842817119977230470873183254431782429774507077513706331590213108679644098145570811934660423199053518480422913784384124340690841350038513311782829377312430770499611168671364129139622319898071440179672806893603908270865683233397122049285242887514081482126497958275568019516423395615179136367927011189838087979282800137252315820329664200664049233727137368972586276857946606673354384572429707559056067345679301460475691803961922790980321274776983718654050772823620860401250531910168624826824454759414055114018556141264454430795163340386948513517038752959411011277919079862412549498135573200401786279790404228820566712278975778503937827173552958002734931617111855545136293931374437812114201236424814014134076955615628860217806366143977614959857671339847947824977760173674638852789873370446847384232518930689827427340513627309154794665936479514225265511860532696629845926393421347290086366850604054379858720603966170939516993701371198120848466643420293069239358619957370955118337325823688612650235144307738275888872327947639015164142963051002945235285166495228640710806414412233875107505407723088145909131816186225885960078749316521321700430134415512498958753251102204539037157282636551815828609275879646106473634481058864482166899812507428733397125943178537531995557247512071164157617058609284392038047257421526259770232345507184936768612704193522825224286334191586009825903059349048020067550878402937783565732136477396406954776550223340538038700595801771889648402884808294949738363981540060556710559207685853532326474442326985056283973969075575778986778215350547678161603020224161213902364615872858002308234977563388857939338109134763754420862163141293007328577351373050973578297798487870989875755999802491609895700423236812408937082828333084740008915526475779083545077410812101939590687725136913973157083617413897987650914659620032876562341482067027550582532827273119997585740670533404441550924852004322410963568434869696425436744635988885842765596791844753171959850342641909653156928120702760051446942549388188719321590541100386463850104762564769191728646960664094132751564263487440163362506995373879971156709635402728704345413185751189394619047941991828300866164429886940842674934623208285499340744016872190590491393127589461313144589553776829676127236048511290978480981317454982902737333777041449398424886772039863260554827935628710534877285040832365017490184054543328159083460170599545404894298409108182124043197669200489312431746347842991630135700067473263712367261944850112036693055020879389733932498519422569282210199059349381186141116579931562669034722997848558906569606040686446511426015599536941571611552720446201830030841816087176533718132490544894089343456420213098584612539052778099745385963457117731712647149811042537448473301909168769362877088312643174444862670400333422451351278611753162412706352028840903270152184747960603032937967352183856457209515921547119577464623413320147878513832306157530892781940410100217449487036791034855151377481077235584274633261513863927200073881576160202598681983691499861789850441818943595030012910477120450466266779437924676455768086086456608321021339109285818113540874013200703480569279981622128113495280580103773426287992576331531097105092900940272756134924735913658460084330162890373100843478315982700631463633245068462908731676452840365372887769168172138344469549198095322550084984161454652595510445716236634905888328865507764349215707847858568733252380404409713527399534976886987700267326445529418518530887612573647453368733914223950321122619708010769961699328478519160121916650474687174735103837462976534335871089274278119151515728093832690040235263372959244390793080589317419955257273632492275401428703030134114689432968314984275742326997028401248267333284582317449843118350097040173764628213915933107855663540501443757574180903970988102134659619387219647382266569880347700543050063900474736777861153906804619565502000224253423145358498596095192311059555127777572721357887452402031380513738255632970155693111182175956579625761016233958501557941360272531981463691912159731897360488904980687688404408676333345086281095239829227641237764034705215917917103170804439391992811987960234628906285197417662022073173036801323787093321395950928464807728820238428992236222738113316074142655676852730398068938259598307229751413020689863187900772730887418944932022056897887233032125758747999242188382905756668318820147926780046843028311195792490102989148099041083002210506568338625130032179953088627552172124013449017081606640620002098993685582114414184187533630365261608872726538349338208544245205528358046498164669170041744435693708172181190048076339002843126106282529578480726585366006212078898121268663539825655452895123915253693659326182804713478939658426170810864716079530252920991088704175413199388749980709826368750183734761250345352931010793084123104329695814111140018473460578802520822716495805563109605111145958845516108538405280616169279593530006090368422862057982788076394015576713307768774666489018691833068031002627747904818600752943708449257655705549338160392270603561558924269085348442218908407051004897123453273492707454479868923487178051050288024487832401735854683003051555210606188778224449671408473762734747643556238900048482854250870221617153049385739712337473526909743918335717140427353428715019890107387764851079664562507429393309985056268757720208613617179666161538070785714441113236597633674605359960456920887938746065362928853516064276348300104993517317527771562240042064030691035636859839750024733235677042913301002134535781279491841353708673234328075997494110167430332199055999647430879479425367872849830430468895435575051981526826911060142360591424771518640677749586363389304940076613292408856104236341777127469844536456187166591056854680303296760605753700826026971733547104093685170024162271009684388279798155672255088098091854552765574747784834554241434853671110051037269612934033706344132314126362690964925546646315695904550937063009112501243645126569326001624956270838113729622281637766477332812300779051818055825061394254179536494707960144158775426813847096322400537851133412261195281908678501026977575261569445372111015247589162223938408493298408719802254870386484800144246679460518463172145898199480398166105115921242356002999419375193388741561280852161885207378001050672484507494004328048910511391636123819609010921235619745436208614906727254127363371775710343413869229709984203721008390051099644622486386444218201816114047741690892040203253206604114302936236389507507529108925739973062447133807187230497602644693363885732846119323641675004958855735965716197636921564489964138843395057822171786322196475177467917994080483792025083258586781080744356455572244131744349404887959594469120053934696417852412894876988284421732118433966842176416552303757304293213582772879768408081589693021079706759772350873783593922202173284260245285024241316475115954886610334498334361704989617429485965351605764860944444269546942161721656097309539716691754815566538324343573045031461622003518447709339930051432605016562717572325949745507817112415358827484631889472650218032997408490578062593935782628023778867983212462568797919718684833652448896375142015326496263148956561922828297653707653457156529511628595359437649074535422650315239054120262105052823430101221568951297655035788404165028751834214791331719071303157350014085847187404643973601582478098972377391558970142551946040197805130707224360914407840419110815355953625299148120450337203513174907640606656278250728418241030057829659208182063198879366048836334121165503259848243293689168494295828888018628616132315582250284196329481726124001773307471244535258947985001766771350740422723350737075974630070780096788200366352796003536286922459030858732178329818751761775393205705440364935474088714490685474046517866824616277417799705185270871578880278903347267081716738357086422782634903582763972956076870465601492380996488209854595087147760449044746341634513144279647759348444040862017022736080956297489243766875831311780158642082314862736279147611245735626155593988908022199132387852316659127539457549539753886067168101292609438259363831160334116266994308500280200690170028955716867332612368590238521884416098249965429030475065007965803961243612560842757655229290148773213966536655944753389153612030395558947099608591103502390652792904834909814957142036412117873343205937068531967253122412627251572993931923711168872243299311827561690279414694892179429076657275616784589735940443338861903892652174232864347938131084014883162458026331831135033612483497475176555398091173139899762411540960989181188724978052054239009687956785500991822665804890630080654718880105697960176241568386109704282013668118977529115378210162161317147719847289755991457143362926606169945135978831136751574930183278594074341265133099940243527666126364041994718228076596932543202503000434175623408692088503515929344911924098993177975995146814597130992725444512296903023988684095379084623899890955076396145427367902579957409685646629789542694125600420160623728796314514979828113626376569264267181990404687931546837194541715431282643590135679308046807228632315400041534920957507268898211980679875221633897315486626733670119803456132870594617605491950566911570738512386536446210212466431677692879004426566124141024459021767189553172313357444148062017490997173902462561070287006090949950230700719707139058515211402609178917930308452906114975835551289111320659007118881962834762127758177141446485528365797464952160911590376999545587697679825966201380572947158472627772561388539560723239576141096954271545784767742807667715180745659441725223613495299283060012272898623806226113137087371381255441084423864908433610040470306093422567473137589520145478599295936474144038924044709010557985699661359555826213008152408508921602734845125840734484864708057370622554900100310891349544964715610224480728621812464525755461101538024660796734353079524817964486555723673701711905203425272125653114800404211413477581393622859304582645034733061708883328385966717370015158731932096733393151637557278938378350606184855380415945786802312185102372886484776895929239517221295777427256602774593635627911344376515739695331679487692995532346041239009616490395977644623930120117120202946909411447059719943657504608630243597822377104681859475204842169680108031979407183528010232296281818410951682916736238456970466001559819578286742116952566620152451233373541225570084248353624478383964462438992753090403834749872125795358368544749012159038284074705927718419715768213437890393183065648674562754908531258994281050077324852121368487459460348703847853053754992451725026268606668485032116565865823378090275648906245523968400742079257898369860723656364191382140775905394640579939235996971699432121312853154095209414167064575019643933567968158284738556141688012749862970085904442404913142017683328341845278291039041325599419625347917398938036162089216005169972667427560325796111555407088730739585510315525055535946625178008093560449824628521118722951201365579330405715866584049058485019256812740995758924431178006995485281360465557088554963438336930339895600041431793850587829744708841647593681788373375840544845006179516748047349435570232479010526450582419498517067453548871261301754251342263635851069601264510399276157772292014964096482223939289362455968241875292335015993366425715847119407533040951554275468424675116638151704638910783419227282975992704948170007555717615933812112633357472557023989904438822531874815806436227169541293453264692295155445665942740502179801920723957115173161312757414478944061596527883226248953345458629221929153425483862697873982521508771572611432362069773719666532367826872161482485936258158728195922915563069887822378918147385837191303903921287939863946992014553697083367866365313871876032803077361865715275694655940666885826509971140684454298007225213676995831686550604656167921396376654602187631180857804527708779846842363889832027031108594377074324307120152982063979376396342767443467185703593604983023187956491548298610410408606850088701228648043060053815089251719014270471898563526788545974042163395054388232912059100310704535990797194767379999881089068492276677458050392357825596225528397463010156134028926554918900058573150107827983963110118117326958133628814463691358089677772721944069834043129298745061902879593805115968163232370721459123663396028208577933786213542204589475535378772957716774524221146679427519572238450084457040058294106225823956376312923048244822740710070969467296035265149315447474041571215529764727235633354433725244252264300315086297009733939024313185344891164361047728792202406701961844932963059776659008768109495341837777190948723470572677184724618991825407139843451539126401422688952321277261090372585801468958701334526016738221571251881347648546434028318116960731924999588209269946317272537333602468929937392101116321126551365387357872452442506556187400389933873158453273525340334646914839339732414193996648905081612196145194503241545105712955484461446702880075506066691670241512557948068388061685178772886800081209860940551354001477627676718038131875581617635999762622289360153848816645207530727052097192541850434237232582058196048213861575591989229177448316718022941896424855332066552436762548710752804909962430420736484843801592280857785481989722475134875561144702719148027584618583707212367263630893118155072190173256746964098549559797078097406861626050195521288306122553310698730493229099969166868552088637426533164640432766191100920559064246431533533510179697616221648288591706880844344149713956537970010351573129698261866566695667608233190851602129098417631196493508826892338026933059906872868085651333867468201361197362352050301328583876717755470469311938347992921078223672857790025268066971090269777209572112493066466545913444669815612727638250094875969580808274063369672091097207055882711680463123300650920458964551211673128544858621550060085446743993684724573534836988948027523318724440497933350833412507395030307265521450150057586183111520540588778397501308054865251245173674163434978670598311591785386146347116773642042277223794645950935339856823744340146670736485074860638757012788709152658392346811512797370989980497871503541737692834520599709569118068756218071800763900660527106656682146936513797292752483104577850553838818068614173225958809020660301748038358096276221339511858098085186910706817441875115246640478300699799830687667214108120178047281469039805731278730423549483823904480078703241579430331791294565827684987619982763255608229766769849128825254378010979334918895643855888641731027565320843501815782209079360135307337441995821366555329047491067447724597327336416195583789025578188354010093081210399196274980972186580331045906210649757899500483467884266273209289725630216999024533586818169678039778777797715601834188958146907081570193732825207917430601853223365487208762454383608000540245170408532705980677388839887531407574688685502153484591060856774891086112409978877754829168292321960508267746685545353991104432259396201046025867325167677783411094954011501885273743126744405575198425308601156480163506984715990753508811403087600374512693676504163830837593815732810697615180368572941193613811959066616409473563496058809110996295776104293766113670419283817329746375242955973343773503605383873181650951821882693419494152456187091869376604814189666045106035473201522953066870478044992211458457824862078032562161700506436431673337769193418901217567311520965002435775059825572715091812516378831384116856594315008332236053290659572156640923699344979498160244601861123893274913577380503765815145346071400068277039287417044897898428347796344192972938918675687600553930520628215524237710869455481685945134105207432897491410454256074965390093405941716805634315705037393889169040276394794015358532087800856806462894094997079312007499063177558502637196162772291514679138370418436488019162685782909730177449753031260044974432479795998110338265512637263379304754078737738084345825575670513909369639272474771430107281516966057676776484901624192595282885700635156036658660475898997514932421813870411342424652969045518104216590414329416269149881113983607838500029758788140664513817120235114281386131276016233725157412446193741402549754252893656506629594177978285540130558611155713364568107616406189027346410265722009014561807093566410064853875631140762895192469080257022651223160723476154218259397297537251325241172063102090588135836827335578339173131822866380257860091593621150599696073243386384507975074692407226668093526516668722238627892693791355038127983453555634740137300285482130675475754323839584599524040285607751347938305978312200723551031883994456279087048673986681034092167729146790467338024690623366051376454141616266387503495993271792490355957589726404896974736060500764516420332307302595185231354186408734178507677364363235214255422530384200820702432775048964781592990787320313511308554984440498544721962411886031010564136199539872219555724729230951272327031424418346951369573655771407279696257185376539919246308453497028961408506476584579745894092659481333402511912887894489191020740225314915945100271214822088745512191864249617009401610881716261044648549883597020772147899416160431965219343586921445663581555029131874754422654001769101290634447787482445968133539889950454686482495594159380404820330056017459263851393396172823355918482406732794744925278969710126567717811737602535466570314567724097347188158168430848358690579314668130650100461226255812092026899680356490734265421292745884661514123694890204620712426962389819742633946656561602627700403294718082882025049357143254525154148806876437084207593564145921523550277754563994983693860957817437971563025498486561664321099464828669290580108497805659174467782668888629253202012450734621290293072316739495933265213328502216257445129022050907400032871241834285651272119058265060881758678627264021403676646068199548198665244803747128841897471104609552041833363111910884826980602523517266648949686068893883752095216715162709466215932360130215048519738955301222205922220465998320158712349419309936243701168630297479595812010990365564517809975979746668849895920400672594673968003838740538006833390726364063174371867642470904792392160464932601534114426449161043184919818501699630554975276359902092925270515304373951837586616402670247394286725722822312422499115057190390780970116203064816107398365154953189979158376918664586667405628585851192946021286240207371753320040980444384511735608000722576146137726397072292609312260195598544897062063202079763635529365323864047149375600641904826615351374370373354500386051459183780500948778497328830738625835164261160483617561148243566358547520015357206469456328057584569804118164118355760872797060487297879945507189612850305081088997054710460263049492038250493530471839330095887197943692889837703287693123891803920484841740193503675244655287730266557212258652222255421090832001862539888699269537531572599103463338577113017362485812312417162088999098825459713594065727064582142853164236055828915927299112602496107033506098784826369300927112355347460982867756239847668011160288012140094236213795046954991052719821305126651436194760803574401388054789365982210385135192997812493900123117903479678896410543718291434696235518368615456495864008442377302342952445668822726861710508211381636468927074591719294097768075638759984189966939476792541671614289949180028429038915620457517503936007390407847871093595852373221773754520086742512585594034194011038612976777687851327877689744710888296892739000373611617225800459468165811168945725057397248489717418722423831649220140213262672239476092806245262262906803877933822073517669704023679187823084015329840301883091328358239445939737828584503270249834414085901027164035133939945636936215727927622118762058869332586333000205293789759803832860942523057815220262118771387067559842463935698530066514941095582184919141545322304030284900475627058109107278389459107972989096053885180120428402868491398272280945725942110660804044329579030050526531750148408897765353059146892030160290360997042832870777689441882073963064524771831285353519099033166452382430819984464800616769218312701514886984704448347701415758660561701591353722701536699484430329942505708783893673104502042726957700646902174088671203503376027463941111425162261227543924974010389259076245464531450056651024002255850420664987001326210261347636098506341911857834786187555876592233283167687350365930316463939958544884442755742157336278194529224835759864848908058952355655004086129928020894529630847958247502561967633493166974878530955768000608123450552189818324024938691867648667930115457208893486685955726764817237431459976303399766112213361457861671913089389732900398248056865195710281353816523322065313405944187182656142662505787637081113374931309505145157999253574346744482956487213132104598728425115708637359613720517525344358297238605453758754774995216669122532009729385293775359651358713035959075913925086144090429362101933800348748419457793228188625640925343990091135183328843996195462989809037671726378745479284114826949270898932868026606080714064190462392482049808040912550514546775200046863546541139667591323552996357881046414615741320444474789638256297936397055107883999236649856676605099129997137970787374287724798812725326244012909429349934778943301086694495699350478564457269668995337929908077352877573921903290339197596482852624839169623552840933548183509417381586205052627549813765497232898745529930313396940489668786131463830185164870539389648200606276263665864834293443270818162580685129560217049382674519031204672798578406621720536403710254475442133789976730892425749806273550735930747469385756050649836215173531469163850443183662679055348368036409518859469075627128656318519763306639859705489461357354506269189879331472862740621761105650453609752413715693228519566078381199976719005708613470301229715944498541833491310724808122136590317424331953749607087731421721678956439671537412814813734430154618170883861186935544289734105601996121918332736138482589527211584049444074520574631803358818430326573780151314059127423388669120646840286865465910430115049734979124413080552754090507929304976338208753581104882531751432245717332638486530761563247109693917884659293366551310362023307140515649542880810017698869150881741029482808120368973812540534130415683423363230515225056541807679647358190289938650089758835066843617694722412127857046119078611977423527676843367554147912004273101427190266148927688371495018524025008833752052659255536047846516153948900233726286203801394570900754726922282282507498589949205000854015099524403287968335624471149578105711855789089556758367925598398062616053875724155300340606565197622107685406500390019495800230343421644190114700600234833958080857519150044518209445868354625986363608727780978648759743624417889287422348896965190888974924009229171963990255497454819782040068989901213281389878162921911888314992623987024082249022870214665543692747739850193797292250861674646792909180724213090981612921128728131496938477824939209676050164611663161098469303733429651404281849913265930668935541531827827658867623843552086470934567912845371526010878102207973295020454526291664125436643363352667913881741685186263861091838130923842896531998414066078491859139870240450732241031083206793302036391723245483098056344479931567605776550978506468794605562173981289091221614277455007794784491549602934030816861621565822816432138786140274407784535970478125498339256909580004222400359183496366264253209874843278629389968169803746489907574637275875292189578150191544106654745988469150215146334222542919992804871237459372789025536877885257991221990231756841562907114954995326332701804421331604530061508751542959657914814852444089961470908654109127232659666181402199076987211429412002008406679702328372225780997404300055861849267088739020118730437522885606197805955139113963521125700939238205731369134279135851553829792052758630449875636942410884140553690668416056447932371391275751052791341023939654879377246825815970888243826782578851626357544163063472783173617560732724585486977567133263150406972100428523224777470931958563557889571683913421518366907510480346794447626741404933922270813381361439260270690898997763396921374767279251786576118715803287857224877877887952167807659272338756709528366987944953157837475734004137826154053823713662030163563267984258241108048462461477658610994491172495406926830904077228006049793183591128279275311585975071542034913992425128397395352672503040587861430058114486289520505515035838377523490456170208100274979735336416512588047707477208604372260731183708496569161680091047437787351162780382622447501246973634914318593201201555254360379555075748315058948715781277328934413080772779428897238217547725932396079857287155739558183656831102189531708679560169904813428908232208599240649297522593244957542058037758667202694687093766424203100692715109298838640230030433341723339631660008458962812745248239630231768089283066848396374240030633943464153156712198881324342874983216239104085959798685930737966170328950447610010940214498057213971047594928017256373399720022199256191172619611061347940473197587481082276026597028320014143324851606057104007558338821078905487019666463036355831405625168463318947121415445226110439227261539824252332591386198272126759151871254273263608892719899055054911839426552524081160332573227244031211797727131579122189733956270821397027567429936829532424846358907057637400815553776944320787936467417335334153981644602601543704829237823491345429731790898886367546784209628210147093140503661003932829980621506399795330586983181981145007008068480518194487641627957520364989532088924088086343537723235329165206888191327327629510957283181476207545584958330001729619714997634261397698330563532180937780119419542723942290205400737087188168010971272720102913121682514172733319325377084511283400403473499093102007482856571675738078924373121930899793645232279214440361216173180972853127088187917024450150468539807602127122815716632375068642444890103424993995710558028831929986852965525090168975453655597938366930314492650159245005748671791568474271578144230102734535023956186331508231054677629302260373884434403126986437335573312540828319063314224626133178744193683639168664087714529040345123725934244902564724111017306505987395705077947234013237506409475637078460987154183422009359472487047710950769217141849694649575530488224614604739083468212182437123189534340891685023782600171635400562067799499537434786798291372842547364573693881674916984236958158813827452227605862563678651016961576613639368325459316227978440045054705066343395225041168266958932410228947395526785312757938422639537280505317341078019565987529182405398865744098869057526636583943022501140122696779565395729607229276144790264032737300823506027240351819245252619307956134639777002901165224234060783714582443617817676842236547450955040720549807609391118777846883818535588635004162435710605796534839640175743104764395849620388499659083558853437596313436415977904870911742421278808791478855012040098925570801186397840822246430620983747851289499804466948091358513232915021402557825328368268703733302088309777055090650431273832422084548557142478631535200097928427013238144202783502116564912982121927848878268096753602873936232391934345092188196998708353275009490661289395725987730504578559362936169500629789276449903785015420767835004478170643021774956130488149540242483353393779326811347829269802765634342896068620451575172909743349135360025442134751394995056009989874895679293504922982180595248620415977109288144659248176580852109230575684833599900602356736573776663769587831738718188500189209713077952852293066280394070678215032870769081896092270899973636341659208814042253048222957223370025841373244571943777910931354284171441015164731149139598724860797865141783484007525665721887615183305856381984012279877332444801273138774434377918427749531758400644899209195321926376772327620963395997666044065555646442178188013445131476426274378442373669355393026313730715715719138603403711759033505224737026418319376072286855553591022769964513288955533896942858824928348621649887381546512955315391771333669924328756356330465518947308062362803945414015934732777474843275040976613216273553956885957880187531701449020691910515723736004730075553753671695267393821347213127976854265277408152330752672731530625243182472676512453974950895561079613685038987869541916570140831424290862846919282246131503923039080853326039398952548217188418103875903080533405675001069775793563355885954609657800605615396066703066395201001122138214609435798807725154404777217362171339808957956490858936548673901043185274600005070674931770258661323858979476820537262772226937074368725864976734531130950707075568108616084915138246962406041755074664018363461233358022020478529153121412758048883311228091460063023706113836279690607087508160301817715859406361203754099855405134959868326603029723006711476267738654841904094795547443987765798804513675425825343311141989185220353513521957967437493742174865126320675429938902905210637782774901286492931161964660363518251673862507670185720794279253491175934840955850665964141361247199209444995017824897840107012925630696143151366188914667662253707433171012831184062003959545982200495867300640252646713299522215281853440323885712962389542244635848780732561662107042482877466034285266866948509142112985787464227113266502039927703442068682315535094049805687632565617879740573970825594289144639642192460526255465966976005890715455984524223590528832406277278302289679627459330181843009299121249332015075541512634448853990699185306756117123697231273316003640737439083880471445063019029061906396682019710117632322767346894569166356079525135344272268639818141865568655220745941214545486055488330723391147352999919692487604265247562136317717655536868486214977353018334133128518910711102241055164753603297668926617544324935380648207485859991059472894244557935809984500116642457052485689321825406222924197655821968043169007776647899797266206660401607685319746729835447081349154082024132566093266597950640558575823382322569712746838766850118456416159871892847175707457460131890888278091743023109470305841566335184254212355542572189622070065355830125346465771097958198659074284883357970370301745666536804542390860116281285638808216881688209069004453058701333582309034289694045373827298772901988720838445061503615640824940308072129969439657636327518331246681361209208485973421317751483526986481401564400364993448182861093363015888911284499617040829565367218377375019005148817983564129771611900194530922898883410814376589784835761856071609791633771898064109166452780566161355815245812409660910651089617701307912003279787952973794954619121149560193731680441523576678555696796681947637722047817049286940362771944343877541537077046237102499501099971910318493826323248443508272280868587771316852842642088150793726805638839283025776154881334447756934194394255949685436928359041013758322414620880608497922069846040290539036604072181058116285529941901034200415805801430462445967130443161838074873922297082830976173283380602816382939857292150680162992578459881184201132707226070414125376036569612894651738522137719697646290244496759012815681248713082567157241633966050873767057226583746811894112961334490100592296865087415445021239100741266506204342028404625104410518607036576929264952256153840482521001987469878951314789557568239030945956585770404186166048015731267815579272675042862838277105253985146804807886648753025398900244516548864013874545202196343444625442946123059920694859791214300485045311161382985960479594394815342184804514679863146020939132403818852000593677496945245785469969887001790688681375049132883826287024848599635031483135551221474862120924518788710888234400218570902508902876650129744561012409030713308246274136714337536061743497113762440596151590972395411882197070071348563571730977457473125948721594136429762849896401520631969758193550295703542207116962968491107425555980260370076557542636075245894445803758329619832912562424737314750211369075168904192037864890941869860366770081613300151877757319453283665135961728226132374856774171647584071799080315985532205916463491631124190626868160572389540895613195598385963705824331974816518746405592615981411500530179238950148037312193267101692292279052837863613397612250237785331813389308548253841793794184714106663622845584274177897016741973986678801892298999543706115041387849395458677118222102105260047289703671136752377890075093397453945219687747324346088659768369248336652949969539914911370111231231005444575463295790702114726162402519427465314075378496565342914604986916156546309585184505394561118829568010229365360591941183597755980597489455316543393155041762617665928883818414107388801079182997189334804572857013048412757035888301414490303574389981434673066567899462356176319763128537247448602107503503561569192388766675096706567717848675269874728020497324243521507355751522838809503298689642294290036169868422298871439241308509583041946722769011281637299572322854170191074694180976592206181500216785500043802834157325987937067043358910146666293524236463085385163264629162179211669355816239935187409544733768866464863243346073714224747144098605193646436454862821905121358849316433946929268199569305282734172836687897446696857206198290244225812912449387595373497052844782915368444884489089100280495798717286528443445131537831514045860577192122632312579203462415171775661452898155399551754546020559564673079499962677528850980268549575657786635384569457788867755907002552665834238939579901986330799053619788795867700868017085031163136129589151831227658442985460012745700137223043954637189805277982267973531842533930893270680284095093175546543949353495768620962527460630004846911139197156184411831374968655367928068991466957186635440088239073541499870241008985978036767712111611492545736511849964621553512129286430167336984719641328131913863041350688223384478211103903854892346012345445157337181976914540079752256676064255217331166017986201101820326292877807934922430922099920720634628525198406361895200864141599400901056645790580359097872074726209831838922729462600584476695477360055798175559504607229942888839807258075567877693806374112921599304486913810657029511761632401288899056556086836957460703217408436903604833191254696033700558128153699455675606951158433500525846583413169941449334417893765613251446560530400175490127744260919669485445387655804177445481047638844272367933920138141770131977863503527652399389919401235681063580070531611163436112182570294776357980796841607790913573464752695714233671898804345619012009734240845526754659700636521002491510815640198217983736812967480997017024542590270904942713870186823734718987142303488363704108940742626944775949639465021916289813017926851419276036769391867847845775714971736544360054085922874236596614411561071904547504070891162718440319185861610112605886250710544811582235658787346198782892304488490795471833924963943176651168693966614089419244037459499180218158761698375864836233713144641839862357582321933847054551810049368986636568356099146667390938042462144233624142551501341658601434619090768834472670398366449260428007232353002537619365907774643270699218275922561356752916693441092208796372923813995454948543300161465055411007918495310419918392172131334026853889391373556928721371281163719005966160575265741631889582236725113890447508551561322263598309934981063894453031461275508117610054517775616320199960298313108639168532118658886203428851619395523443745385347123951743523897400289662382021234113424965635337422954414390111215614780435625312989542812441021409900505220590130154611645080159216442803966981052856942939454834314356254429657288819846527386715830159381423211525865802706114574104180581669458549118117327832742861176290498571880617009012551345792124534935054747941032696042599419298516798529447682652052736288757720289183459288058279413230225694621527118644642922230935299722342110055212424783714478448058722530308442277770341923439760849837331762734227977836393393088245789726332945064126561332979157778078274368948892254066347862751637097215254496185689513474564908836707412583508050107888947966554673097266380797641846351661414216826135104625328279043306513907310522980032332652951409605161043323076505538590211071029415045818496268815341162857225929619834634828425644886921382567476176848855241302516551001172946950377779492633644314384490972952286476579218900837925440623551834554818059490837516795108247656110643388298865552680629161777438907020523437912012621683624758617567773244942822932696545595730440229961350922909000763570152487111262445302721765862022837649316418560240032951477449016488766025570504451365257558646736448514462867002593958379346119474972298507524477278837847344457819988313265278491699359984757288204638386734557840811084331129370168818673626008348510261639220364065949524858332157489537668509986195639301033586564486018297126788689290749581951613539371235327358146906000562986612382105290599361776831979860353896795962455802296825312609301818738919147575116684312313895632720060050260071967033477606478027367188959693668394742788120298471224213992755006847213382597078508949914289000003217146838622666783945055087019897694918462435895535717858390540249310138626562457645501106380204746998374353256286907811853915390386386848985905872530253126090187210659574185442898126419901864673310980167292685720403978002775350888659277867944111418142454804923075174282352454077503723862378870357316653686411737026490907932543808442366315823260460497941568363313265057890414505863928181298313107873842312894912790105759647488259458484588419676105210306028548471700901352102205832961939422892188647895440801532062889328309981120599128307448037663474594762055606541393204147112076431865057030023800007910315457931701312741271998907711537866866097030141421017374828218876887231961754822405908196304782776109515047468077423919954602069660451202184033833395644621454112181984854239135091286190232569488501132202655853481151941601764217295394229848957639573599925421054889128425297798693348397897987538794001606126313866661910550790621351187764180643171297179446670052071757391307002016544007243195046175691418387497814593906414808911729528035890457448680407839288609233853592261257505457908982865734729444956182444879047710063090473451785994793511282216729545537188203334430209423232358484661838696538488679464331629955246683805569534847327630080062352053682090008863551389130398613081860066898739317689822345717423283819471751026383826372857994221538229464955396627970874669937596580071820576843821647167883219727694660365924595955314125302878758049978356048086319212480176525905951030103991491231382664600269691446592994588089987683747216767497464843082985134265589274027469238105993006610817072203915885458411436254638617675184757168535752808176697164138115004683212223781542320729787134483317482813565666783074765359593260929112369794171526296417079653124188810633295049086181017900376604506316101385742617850188522893944038304116163279895442488565942378251570951605113205822109148538544548098006973556322120408817850939834904334559025261488376738587106020702154790007520093699763626583458672591369054388082732449265814154860504982375853003506805989515231161751607404545315072959282105173336649164185587582212820416835221737667875480856027522173048704526992457447119795729193054145075903598811909741116396273806903500389578379388346819215624349302146743887423898955975839389357986022867886633143664649953886693309998530916269035125329238936022369150102656125484645691069253643953606664886301173741077166018142052030789472024546309459100944966977620599669555045204965357229263889502530608443592509242404149630024060912355371672886684664075003840204260627094353623973930873439013436968670429319829656700586415302344640278739817461645233808933376866865430796881808370594881688811755990666550185025031431017296858942792796887192014672828093124670551506174561868693786346548001683443243769414567328918780511451427517428527602777661682709310936718760741107903796210019781955512820050979728934161741178926415980066051130628913425341016123276352364629086564564159825910734604353212487547705296980514908942445683823019300318295241728651377546433235789028726946432215139654845699208658266914881773739866280505615477847517149226087481006818303521007456848590262215692151172948162223534093910937634883137736223309054913797967195295788788848667635310418233371019277252438635379237452779800029570959375114219688778719200883448959042779062774212052479863848712703819728207321460428054206671262029266156962784459977913266422383708507994080258143406779560907646062871793043527557779664447561767152389640144866754834952583384046812912367049587899186105931572495897985234217823503648762405278685961906299602161847741551655239597222756978484353054796391360988294684314066498416015592367000258620078469970417333289476366836255372906438827978890463725780341799446277764674283898573470079778031148781451627814956963880813516006979968119981586856546986632230678324104715803181998827761614557866938287520723256713166479877071465788473920035794679470701199896538518052256821294945631487440317430652614921113335304702905646133221546462189465331184833798031722615091643108342601005502974661701527180205299256539517914085357256629328927853039905134916882438440112996757810222285909616010298090675844708687041500231898787872864303779065219690759293056989256527297971838881646315941139373840776707179901547663581152398261987405206183508558700450751360275029343719439030896254599321268532201807136045240433231352724680253419662249691580804307714596567388588814068128434125697912415955814822275697567002009989969979092981019477831403065945835862208094415588726005286964917921794308938884658945973202072900013615637332529918309327709426115413728677089483213536078484457226766337623237554168370487996463436138381118554252261044380273251381108173906815770837345979187442221681961484491528695810081551880364905289413058723959781789785176354660142983516609406181644382989712845711364524138579809174448634590131958594007201251384672658332684857934283965472808732724002277826963577371551709951178703462005693341757895077721608351658040788327772682610734766710269899881731066215308287655414701823799880152547061305749792008177457856001985687922528097854191330115094356669484081535047256216125380020504195083866214083448225928713149245910431121026129053257338502270873087023053302771560302773579276711352577249427196291778380231919327285328067846153258064197311959158987662326440518744574768627801599484085486167258486548036548742376777791571058077276448357883119872943617875968526575321475125917721347799231627820975031104135235145956288651784196647424277656891602355601715257409413773586021116012973930213416459740600413042606911180048735744168674024837516465494207157052518644612062843490909850471914105092220476828079760916126116268663352092793643020892404505896615944905970457372371517025436951590224229460862987420809178880752170829016432301986718185399906497404533213725184671867396392383779813903886482976521437941568655184509003470086712846826323022867023868380287778179323872530751090581084206507522031906968866231720657157092859998215518325875571173672452933944785215345010282243401896734586292967328351077638563954597637141461515312097314495540012549637260823580393291268325663344974308556734101182983631456982364285053828950794689012784078862351920523765934258675592088534898531338483625932600005815359243792913991619713530257149829302134622094208118535946860942827431590235806088360137228782052382356412705975578080066569194879952877899804881173474005656416129000963471348902145470566621864884668586243665811719842019815131308699510160219224021463720384609534473979206509949964912311768205837837280464577915494898362444652215176419050545742002143200912678604957864070146233575304398973744587016776735295831418567023308403237222361491772721791157497279740594690295077233158302946278780379466590259010152154273816023504299080468032528033254524088315093002300864236358476833521891890119812515417942536943654759218703638067296902351767100550271722032656837848772296811646107023480625079094559121914572408608535078523245869400014163983114336702106774556007903358283331544988027675546814071019829154814471274665943600346465867258445591005316574979598956558993774399614381518324691607056473000137836385541378240073713140693412472412753439172220498333019807529771418104171221523375055501055690361171121874286755994593522201972522835110871887386442254426444925979760364195237544797029610195933344918864427306974419552143306502070784474031704249411929372436508338511411882657799809158663625502222791876074393597944579463415352402566326329869947979616230738753582384697193825640565385931617978157648632876602942628178368756481717903489580630122305156672417371242702719677456187241748456689908753129648696644684462075471347409648382639850448047099889532396532614082786045491095959461746722112494531076771662275077473589409388612665344504941135555005873872603403343862097260134722856034791543775094841239682335162017254094261750604891728469484341023726330027381217772512613488278387921865538820025463500010179105530128482318194681850718600283568354115648076338516798375710892285263243569738303817200103392403551794567889684110467484909451153941555194297915052747701598335224875043177711364561970562712842634683978701421762887578935773033406106367438412492740793931419134243556945355483551661279323205108832342103295791124550932947481008614137100278194866463023718714526962740807786698279084910009995429565094594927835843440798354407093070991868618775849144370440395985380448962969433222369302738991156993259331431946307926664367555832368308957215205988986499256720120640626727214937623904273246763254364492456853498437902481586829670360885573383046865802186699981092570919519759203981835491392364832675569370985866426017638740811337438235315473401208994249635576176267621900651860914204485698746909718757627911025722240227502649574615217674097442080425652154612005192342889194866862449759362200586262534789231494272793490563874252462157565005872117234312750243678716874259723593588700762653624203744228854140390917751425913264216312024231703777682090481932264797468599280448328417272840106356536467916534822023504266263633512772222430334230408293696479665791573855443863892099954689250487810757876915441988174021457771853633996218884215135244164497605685184423867157839156349550580187005186494760028040006996141344127379228352648923873714205690039736244320598502795601550972310187038521147976689856581008652388016961304153450961046667608478586568401020396631939493028115980318969462699627422181704802593416270138185204582530076674002214150231498278480095432267655063246959437353730789562901625514484208827741191755186117819429494706104986796251700033387196810304821301136538297706146531394984791622886654884048637349084891739031017410046320216058595608767715838944297064516941383679508790110320786511476694834858659168868000631011911748809777780116843328770388940712948694044198222361769565439142641979490839371552353153387900501348480175205592442790387276346705121475159501667114436698560243236639157517533950153646914382884407884674562765298879106582161484669496881865878661483431712882378152529394523655339633867520080090495296000846694169314360061132335426479986758732125628186314778156589906376345740458631358110202452746738886184305555668097912306962673863476994673370871887511685304319093894424409483174798026402589119599890757910424856162650630657558037971169889538086999198149552566813029881774301240411682009563700624149112912967451995676398059381875448464553259755983839074612171731870198029952548867958214460753784279972013554764834487796258078262359227741884147723525912223282379884801049652446242597216722406799894853852798309695172649334507988943401951700411075539280148051517716429507387383996483215444197733991043389430908231327998502153950511735026845950500182741662632448719376392519522873025515588131076143532029690636488164247703844808711963315870904658090314535724215561159971318811211352267213765460049483538704731713178550886589805530961798026671586264235151897006503117655646252524415997727797089848221542887559651758968374488582838216172551808702980894696638352392712055699605313412674730022273663289075201253912052091701633591940638439135694947388182387080385027770904756213283638914757010865519291802228951756256914983143802813409505456316818713831308557558745266648163560702733861443691375433122229108971135576050477167033241944663869093555565537914051831415601887930535142858817641251438403176893654482081625564919778127744069930166206176193556829252933008358880773086569045317955224518659414596523900854818184629366316107249877575969360404279521588169448506597054058588331481509671531396437257077831116561896314544658337726564580571480668739494286198546533037164404840135284677403685358952783585156187093919212710466723034054125025630238025792601162141737370915592741877591572057402008523195252236279320338694025303803558083705905394906657520043037640344319855928987450452585460542892616506785576776860331435753387813837746751174992625505387389756453463143541080365555964263335631363018763032421564576909791088245462611123061090822315484182513289524788227995253882213483121119716069122155223828872107057535281609141057451338829067749949168729466215959277328747633137282597327944323988968535583571547275220976254324840476891422731251006871524353700218296702350407626537852953608850005122598819360712669212041167418354809602534165975760284009423316035592458901672454866260144131283532382963804118080331590973012004292746179468602932081678759608530929523094371869401866551717487204660621842899301936663598510088941962559148344056870004339880153074498387723709642793777308517904267244284481995385391745851067153480774039671656445230852479658628941976794234571259394841853784688163229692172895000650627109106379807422297057195263149369097799111793409471756891832135653152805798496503421596397880106250667640396343472409403736215594148281978031713859477761414933661836539503295573307722339427705766092024196752242481028417221568033240399861171911636081003342142040330028686971390598529057600537146553336365491596871897180508636607787155770800057304930036513039418273058786731940808063088831601643878555356951750235116488018090944138621426536362615835774791056470440200087544226306571107203445395182572621217901897145355959507187590156812518808151726997018858496218824398988400019949290782350184427750585832652003684852939773657992627987736661382683693559160030695805901683156784694063638070147667580732328237323551595279715804518745127093113439672339924108853740937406191254641123943378976665253023197702309126841785790750530408602680889059446707656417784424572455247390412099320260835065906771538385502706246622126602805795307350928912760652707952212183451545262305250186774733916212165067638709066819421662221577547603905697651930296925373138243890590689855834647580090463425781828018497709361977322469643000292952818039753507827732111638071884873966965404186189963199037399498389332330479074767237088833782377211623790472330929897888343088718920937538032852846828205360150314801300619275242055656763881549527063431383050458507840571512039428266451732393767005813161956176144074173289083894626638736107718230246046165095457597563562191102693655711034950115452198429280301312876294852364293336043444195767737999853803035577641990596315933657528872286828390745565969560973962379029780544067440964445097295206730872232165904450187170879767259068903793258523403245185188095594953485627227352033142720860805244438173419108829122973791061939051967490698101796629658320248458865244281567119480157948373060134134172423083804304808172596379507367044855179055700127985240732527759720137146422103832225235593573136208699394115225727140555843063269451677585102912416780956355435044090876604691404240985353909413582739037454218018429921693129584075862662137646631188374715208320714022899435790366243516406553241596446570956011196975015680146975467335660104309627975652632087834069553900623143686443718413016817528022522710832545442383299035158914680214069888299726771210747340988426937571863730761185073189573328644476602866582742410697590300620538655728158203910313178116649406526234326460653876505193953318276817821213256089569921779879364087761504851687928876506396419000905215936041002189463136314978135376771848781833562025916733144741954892315470497127728787278089465786411734505124722734283711941215114007160419280959312761023548838128458184049682622439258399527656494805147367108711159768295861573422357124804269387829125578809950036266312425272203332004514619118816996271179642413486156163883387610784413276069700341890379993919360799508087648194798727583316746631711749332449143445206348284804547902651859739920660622231314530500236581551328921424329629260840661609139943196165513921447448056568423030134057475089543295140877474310045383463571861544904850301554010726863170129979501103888201972722709493587591132276465328135253790849278544257583796892040490088277776974860211843451109045505065767636367479311648924050005634018476193725362653682572505971567028095854762870901452236863853751914635108606481265745514889157357168251927647938481636334788664585428212154213591397273106176846181154899868098387599545533487224566558691343561916142018330022865710725084309336722846768190293706684327998352388447567059137095712002908209945662027265886713353829909039627579943148913148140053821640640005637544337933016666236786171045496423092823022362061505162616096213070049517401218141428447954750238198146950711472773139153070570215749123826158668606224724629047583790207936278562877935038918221994706297524248273862970143809647453249445075004788780357733040062771980870201014756199339143856170171092069618974098200405767270973017514313417237736551073641571128850227428439436636118329509808550654032608946761759630898693561640026916469596356661735820424126932503291608807798946472989491072221164893899490617266012635138842422665703114727764778343502646077235685885004185014762416352101288798818961759356597350512742783890724685216881282669085591354951961945719051693592879853971458537538956628594207260428766440437986824868482440337471805740427854830624819921144830245703927962675786881546592756058382297646456043360863865288106480963547221544598857647370418126932538632091678317477877656118844416173952831453872381920757531186208380947887331246829883528631766728653487042776453497891461131638529353095476542257220376677165017226223710012395623038123903490206208518574461251557966682472467603804287222843212661317103469856179918526751825677274504967608354870657882706878828617363006044722940356553744353967158998975283012260293216008662525395024298797186868391664679509299541059257741030795888191246695855712345701387933094876671957370038886413452806394596149662271912633558262005455891339149965894600740273695251451321036402466688936038617737541606828361652290893182381387288205100022051757178455432261806587846268424362633057371031450889671222131868549092426690018237536187412336005709788626558970519741142069992917648104483471397436237045860814238077958876631989055967567434821573370036967167271710962613268387574639472124965417815837941342864453485271015646188094818668867168459034159537608393842673504211481807650955688526942396994720667414206925474399864301381952290175725829916154543382235324332758092382395850929738341295581089893917899340982950555493556055652023527387714171056899302595474343804268223063448737434206985738918089328869471875773195170841633830485245106514446998663015594608721371649099894006933383065669350703480973527431654959825378691890724393130411060110378902189066257872026307877716381618690519271232143697119437197999049411040711057601217858929905127966440990606459074206585919369452250034265959326273213603581019016046861029207854287640161297003763316200528888916300394053662294267117310638289585866518709765386452785219922487680399194104854492808368993794818868351321950786448350050351379928553701715041014220945867148704660349068983245815076989710025675581856732277183406485936674231903293271803340128634090604166940774177240499163226700730097577868939089028632421153886002795484239538344320805377089968625600049237179338022745282421573654428207017009552693077020894834333549481125994531306826884439552086267121113007035657386587217978461968746255733735932718507873089388939741499066006325542559591619402138843988065672877159604592528330409683704749354021130639163040219527717615683592360674206688360084976397611973368788015035200323474905536837977039453479246134854867661916910721294864210503432841097851154976731459642493255156336157997276268821063083147317517312162521147008110224000478843377018044587241212491524535751885143019602740176324710864714717084150616629114520762889564568694297450848894688738257822621191624039815250546329134797995893759623403306561448049046590789005524799316666230379237264642863761189312497338198973039063603313154483828300252020117945388721068034304502624610010111929175655490045116508890149728414122098047221513259721101080064689992380160025104477607726009805307608148168425489084868069060448219927991101155892010834807352248378416354218602092022616065043266755763642736901257003182278068778274427944720943833990303506860768566683880431855042406123656224983294780228842669842638941577912536080007539262530001548796093897337295795024432711983115514594473476103357544941744718407119140121781115586507622339740248718335646156286684677707862252337849076693869704229272958678169327248330034784027466112145815720870045447974812315277831689609477775929354279552891763868030242401570822817399160951928781757702343515577389748306987816159689005533338775277728902324032651509749281222098575526458102061189129745483262031912825403602508585538749983972282222655349543097748674710797342813565164273148851198247016680130768384072404277572645787431624346435883534092685027437989382173320340149171352056407278526680390825991412498500712839312591024700807319243929466664843402449878920073543935097372670412918645307576972408719940093356112579949716107796687737785660715029710574065867038429104974881647119422885596244655122696701971476285721380014993045510418208190278414858567381159571786313922458463207027123425384380662615788463052823291013769579559612047226596946112417484255603677629152247581705138510382687410305701738346364452690840250625861783581539135136818162408144669762261244291496253332047461135921735088888312669473417374945626693924826407265559330418693040470752887873607107567338910259307059773771188895271513264030658420488606838438151707243640193410122912017598541622371265721073853728499126700801675452660144011692805382769996470014429862738890886791132730213666871549180812459433939358772301209789988589535913068753739691386216804866934681861672156247252201540500713001135853140346854450128616282824099951870074946101969917016252476326638907676722100369649112589588268966202342037256411961824857583973767465681509444803914465180868418376602608568500939042319026108594057114807301112071229575635991749653377419059540331408542699421600611632560468290932460016711355332506554017769581914580257682225591209273555799763110518541089356941685481902237536035069647347991596914215424155508472788788421636644245899951306059085064514123087242003917049995453988370757424694300385352151252759667647939574566973625087930115642140081841517943367946745699689040600807795963050939853848729555747369857340054763561960141674998059926742218673743220708907251652294891505788348022275721095156267681746141598014576164043628652760620271642769094822835336265431166287300237622238930590775556643712891045430290765139791465340000133282129695405638668202817212447281023882705210125217776842102292893586739437899334314736225152903992617279728021251897015162736431677463564783573433530168680727122576895428592499320008318791485229851200839831199613478095439716142069427596189664006661663513430123350716377679538461401555721457473673720468023155473583826669184141637968302538652044301137966960953494409467576451714684922577340701741070976550560133855809026307243105818957382906600142148387165731932265038689697320085413980931220277690686852371113335832392580717192714790153887423042819010177005039551393309505996340693245291553067851894150612497196933458502290708051873358272525553129716099373423696275986943160833753954184782067027131604222015008639644657875472392099216808152241053936733073480090203371403866661821784002229623413603271846294490903166047007413065514523987496662773210355027705928591859955051841790724723379365848540427728553893711980770652976615776823043700938999072724625265958794688688988803786848480394101743467783597466760944055205036554228663145166806665276012557723834410143740518392609043433736898186366065963051003324236848545314188811482022756814068287217047790141918287844753620183814158129256770584940991757593243740262973264321030068220942421146465554030491308833260175321303495783347001051376437224122574576033035623882787144771111651756107551931893054071914219117535185744283200285340832518246832473671440783657646681470072894741916501660814985481766358726899524764250430488031296810681000359699582860505830077221729641482955455214129196385434330034748134482930319049360021818376731140851541980644159627337121863284307261839986112454100459773495677016254909838969129014491498279398645079294095317647137658115016431455806096637301833039801224265093319536552154793233383977856513683620148356015737692670142607992709102422607878577560799923189487254054594406823240813315959812518919591337281676428438457047260007341334624752171659060944360807726417207708487139261002276907988259310809289710431331610176818953961804501905757264600072179441483826102776652086330288111084940402513349028089450940482654795194529422205192710790114982866995181946663424285673741059051817928240544975150284003913854153780118590221140957831308708861388931558422522911589343709887359380719072841650431761288343147043074400626342721368065042734566921439099213575335822349519289751233519695074818668499663407277081322605885243606742724554715437889961621553434225775253697745806143502885793465150167210152055698162132674863263168481720195398526123309531094461153393357181464376821420869548623461484233444627788419822674612604478575052588657429224825764927131812989946411075442933026591980591353329047888566649489835482788742057537949861419540639821004964331964317197420055698666732758363105994499545733294371247589228691202088081242500920428748164753696966591524199285436446899839584395913349137429053178667464348202979522467447374998915483746905604607057279292136836949249016407629444558844813454467914618430480831226128246920887454753851893342862381563972105825998212695656954119486611409769565600721062502714709045835177278884322683837422278009791722049369159982641480150551503955336381814313041605543620639737618944001730518609901309717028888742527223771941989121692381453527940919828128446329725934098853029927520976758892057632672765678679697785812852773322936430669591260671054711835451562837524690612283917564599939303150684332671257003978851187287642337034089937072812291465472923878165396387336905314671650951751903193998468443453130401128488480473877519344278572987530186971865587876410018803703484108738062452616375702652727761577575435177348234604302079896979106817344071048854741139610844661723993641985853592119460059453599057088376279871636018394026626001520472318365812538367838900739739371916494151308858213401249681218758596908814262524029954741366441466489272164438570410155824543253871115897743021717762123014281994944366207363383965781684073955649549318215729549647507333183409641081296399401276274796956142509568875647900135595596362578232934716568030741040157671271864632138883033334985634560678962137038225840063239093257445678177311887048450695691905299675019560631381318810919965717343173475354568934215150212600908559103541201534432011053887913189887954212085649891878701555924049689444667660559991895820458440260711762981215241947972709399441893966537195413931212661905678197981128796963708556144596822429659040208944149579664329609769514314498278779594625907950410621807123881630704033968534349604385638631804989243476106052455673398733182753567408664279850147918378909310009281115428585536935620868749820876956481473558491559086187197967220461743207614402688352558127491034190961698423151531275029138658430490165809703747984126735867026324119229870263453609293222875701010667834705204964693528110619391991724958401142413915836883836439631395982658133169247531988262501441999483152603985680904573869970593488330246258995619397116709661205138154978852337004194139570380768314091735461557112542123406101278755024527468441548132295211600102830024111535620787633127135652807146914561719084204753892974773557060429929584797575000575688716319902618872093973617660831199548502059163161691451879258652586788543174562055496514782072274032461868649768489781150725992897619103638676443095570335083143551824613452868251170617864623980444065482956893954480060070157628706360823959284016178570569102635170217217516447162907600976479154465161659226509799025490586891310666778873688713184075484033709525823677390683819847498027943534533230478137917158572377902038106952058056054534178920379612147076087762456859351402132526889512707679826480048527437191218141965759228006287996365385575963030865136306427112179619080596187205395625459437608491814221102960338415084109047952686485464026212568885139236505326316376676372255341557828188895310258459838271217537391275394331325056292145074410908956959726188754622845883720293338773581423308220059684801711470242565097900614240147797653021821484314062905849250600516213684007993177576814478896950275564708760642827083450652224420983993275668556103962428650506932467036485245059235257189910492341664703538914633134180355053837381916083442252263545559446731100736057045089994608150664328596725746644206391386228994634529327607567565936757517288264097217582904080279668115259618647959213164730123420956990236259028073832038229816632494695307039786407374741921856945529542931315038483003705022389327086934151516294861460124520537477485902891944190865381713044499585016756320912851608727708331097387795554670128158242182823773424180530703547750992637807964017761718011633929388376896581436832515098283180207744672701320491374464278826514533447942995288755584253963452305957179767554865963639979503518265674104087707084726190783907878889358181119855134073385156226479906579403114358927864269641977487496438921144155358810126305799311859981415473455875045335443194846457031397337604092719564808707290187194503945629191906365364990989566050208368285135385255705822931699588537328613000420348122585333260983660279663748045061108346259827691726048772234789253037846914644228348451568786895079180366243167868408593188108209824774588187484093379440958209895855677661635769078889651879577167747165472096395270171160581712330621433340378921957339245242567615244403351789222076746698271275943969201307387414792955537533872976789508702464208122746370127054136161178747446525103148403917021815464686377780336453124751712712391891349617713541878248914168482598781838119372724983755721769319590143711968411849834327854855738807000898687943138883916994622098704559693610837726639800784971077496350771818302242207241632982270018345822392739559096508912224914275144607871522322990460916618763448730468764900027985892113223554234773012140592963170447733724057890196155243676652339896625507323358134577400439737686444868257343136992652757253878496926805636372507925161239909953528993010612284440124778055759852559849614931429237564146996416393860202410226216408912150518533488731919198387855929539850869577078591204673282390065928779591593902049758769151341648002410452647868558610136553761506300956751030771287401661010722761974205450219756516339423168025178489760915121174828672552475977744078308632694986706752262435792555516356044767688174269585662376024150779514376693709428170218382865822351493561251681193292137416780446819652989922179054202806202519360596068615484949717828265037977592506843181749058906397100332246141221828454469020232308698157092652917470497375970651795734853273924633876846835293384761932721593518285821955258154238228691769464371040568620165161840444167176328608007559281628293639540359088654916542444089709465062503952359293067066029804529369612652294286274931771235569101685063677923026318286755330798194625295082557071642779155201665260100623343172361687472462384100541460941834764733816109771064083766907965386520938976623354108760096272734799661889466477721179420528509273636777753472519925365413783127592252711462578629806427787122171581099541039755984657604315226482728395420374756293615016772088153102507177315726326902490209065314392258691726221157748259166349031636893095311184111722140678324262779436450968246826969505214717021011411445534246538217253048185230176351437107421125733596985208961192397321832627324868285725047360182469349654913408531717170243361833486105606059202377496376305733185623090772435884919079288845695786079263468018201770337401967170112805748981850790906347235429815438626265984464191359651969684826639173276418141411750312160991061938404080045859158334854134531861360637641144230078612341828887712019681999676097004491843927279891043228416923575875986175106618570475125903070540692741856440952757633815259649906974031406514665321413461079107398337036818348049795441456321341916222271634319850225368270976815823681449568836087291764544860581325541790476701224610164987756140501608701813604292640280917197451751062817777762200034802324498428786169784865741006849436492872539004755101451954216493382482579870991868452525860510943422535030688452861439143130914348930335530777905488860184379231326382256895320153645200370055323838738792494550101232373184611140915301699462898846840307971414958508912451024362898218822701348441778274834320807201658550062022709085929936245979164154033324195107479589217298881077959123754456055330051918719678124972761424905396464756610416537166048554441762172367180898712197683698373901694050860851893433917827913431609219741267177125453771550315714948501658185736510688153648069029173356565139821880275182111952082754058142634759947527597556198337725945749315322100774786617924182813048749551932286089720737903393968667820272389502033591200688165956106840342838876308412814882484827785819412680758742674200965800768062669243087309923032208607803167605603002556899315037806728756890824544801379346907651448339770159317015804380280500076931507569274999909259442624071875740005752981445104419570458283313991248132479162050388009945733211367244773642581926281292429935588779164297933118008210019340630161831442702919292651225352073864913940082983828863850710528680301838325648756242926497055503689732804449699363327349568381809043612325697750275528895666503698657938762959810756871343994443755177374353879352504460622123043633367450389739788766467155494523801834484907888473289502569504917281003561069008930168418387807199923370639866484596514339745495076568757514882576339343552568560628481966121080543541953537364127144254432341289960527745428756445969204704723447940475561704889622546441714166803356929991384476664988030391743278570154847394654844182158357439679979346099109170384590554819393006876265512442618217330990293253055691999852980280779149300372451449494288129089927999498364807412703374222155122511674356603111328700319690906873472226203300757891063620462689664702415048643962921401497425453292884973481937274735163606229776168321141329115792608121672100814627133466678853935296473497894567332214478655997364369055304685430473909053164953337172685703021234359226496499879377239807102064835641263456238546985739889765118166298810738044285864831888526248207688094531626645771228618795674849436789098477224955931758663325746749699099522391311625372271118965827562490115470080744720790589598362834522206282745239910865957416365424851238792924484874370890439617186534925275387086265310005946802224059858798909856327265861710898402530044817655711528504309831932378224585612809880127891100971504610604573534313716918790817549185336500923185650235383667407402390070013500519986971516139247117463452042077690988182904000783677330146832204330359892657670611828276079056804822318056390136893899904733673376553223304552852795047956168715217253677347860077604801567987481463798247393542452962895772430600674639716076549996347547463555919600054204974722025898085798123811162913494623864826394222501259189263218324280134321251492771470719872416793851781934885803930299594416648211742903883054601972180285098221615183412383793438612740634088113546743979531595801038251107964211001733370659831537096708164043812382691102990393333620856423683720792881476859227549427340280332975662639445037187474580471301538781203905761255434482059594097529078058341585485699737705657440246239256450635980030169013420019070216303832934955682053251427504757689554455678579181168044886968383977903135653743673856806521875987291826965774807554635941738627471740393727984630804350284649781613445053962047297882181664369056502598200006773457355897198232513908086202362274401268584931986316542456032772281898733786496789084909716259772384521373729352549265278080671872921279475965168479040265274446462816340957540249182500959794497201263931842195843351998833808875900284100325007520581942023419748918232410227896140868847556787720148455140333729707994422942479707906974739695617966962123929281509188236112208761381944498186816767222025251408357659230184869177846091618349049126602080376278088694570751484907689854110493602274033296213068818939621348523477172773684564468487856511095138923639409293413549689589538253727001160946843872378090427241760775053034718359474907885485261114897398936554544345660442864872810368464155535206404936868486022394998994349923072694493963377210975980729328862137486605706620844919874847023270352556035601846845466778422274269318022447819559331569467548590825226643552536850142285892462687930147355889602591543128368797520257533276782533367181305144793179588026293654128640900275055143350710580135928820155256721915135025188168361217776185692017435200985648289190888069020818875748103171336589093522886737765566702602602328404314304397919935201980021956973957918927196097053710619644586877076220690712405456327134666089149083989654151893148324881416235147263364287830915162360026180123745446441155343029208733325724765647030788398322434611189203395385215118290022552084957376991015129519396570756302274700126408118559887100048900196304821337137934879079059476633134822293599941909621227804052623092993508258566577681852168817870992635634691490519411553045024745276224163530389780753289337956035663942167073262280192468695119108233903898550549252707476619227897919009244461161239140289407449852485315652255658806565261964542839808091372147242101483420934918376343805120949066760820053386228890994339033847852364576663011890902508885443479564743722020478452217804122424369425379080704101879544394775326970910070190185937730025408631303088941033545926070727588959454034387909322387841485245649428917523151721487876619193905712660847304634954768184896131259214334882372813012955192528318710101582379444410504337262036927950921921470879467183314841797383512465924069280765421293804719113835006923201754769236667257900180060077258263440864546557035907771984939930364261263246965615811751323014068793369727342928552367623290646832266165695541057107938242514267461733599845425819352957436885135399970595630313391889602680597409606229076348760962785687103764155982481282668954594556467944976668936979525220630622195189897537807476814775050520127363874332918284971306479273572428082849823271750366663092340748944423773467119356228459773957606213189626875283105781422214303679748256457034115671897906612466906325909727204998276258071204555580597115135692428054663791951565956710062937835586858381750981122376030075577130946796232430257203802614421186385376535157340399566618899196104340984674918739376357318318312478181849980859980200566217564849240876863729373099529817937091814333804755893802591189036588953534670352556884937180714540650462413998748215882486113165200835333224085721336857681373136189448994491634950865110640084479136188090995403437314855493303551311920708282064835675344576528237041394497359259806716341595732761437814281411288162127925012772835589895807969713974697602856545140755642745737676043706462750274789753678532109562976772837130079251097846934496987556216901789471595066178492124396388884890325452711547483260870061606819660981266087472765667877474369516621325955591298385075373278207447242984798104980514415560223497937517981922023714564436056241646866699435062378711280866017088949133755672916840998604256276952232478152997471242416935428045599791867737652513513743197344647320593405570529232887510498804720654728230520153338706563812568040679498735293667340426982954812184505882511395814547019356439748232200388968231613047243335562794944321498785181103225534880139768872374253192637084073108290368634929697334766515919703190508104340045398457793943967042716629293987870045416662358396314825065485074256144972572208400744600647482756344794993619155183916626596655919866804689667416398454194282884401362941646230098493350072264643632456896078983966052049925187221571350471564574389127320867770551747128711448252227510537838449595336605326539572704500574859015198134388665439088376450674138348684436877208486606858423806773179600983051986917103817756653636679630253739565723716799482955689027523535259202847358470798503202011569418719888171215601920740034622543247396070584976983477870068971619654939753636550798680234775840610802540713003808476116147126253474967905826206419447171744182909895782994373234762377674494983297834684186468063089092039400497462380235513200880940289335398637229923460060601906264486560702654501253463527561717962910963078448716793284808170722331956476926422869216886234498190935442052387108518105677668402126746027503270965750351756762520023924882420551178763808426215291111508259642400368305360457491046743975358434667889793349013573500010294330315272302494657855215223768070270002031260468983245724054695327182875795521770928772744890664586364154764098666451493828291306567545866497642495626064883938532012876203600143819743698746484329047901731762065994928865898083419630617433583954095559796075458032531358562521684181232063560973152197612213935624033467775200962706384329643024974447827471090640705502621301637252208773783508900099768693088693825333241552511976462587448444453210202300186342980459840716075862227385039026914613068382648892264155133632841023790133959482148998962441971099401169835076686373817770551173485687990337923419324759652522968590228017915115522334214542644956926531804123706245842924022556778289421093718877347912407514599385700527986120153114373370633258344652645980739936504222049905960789386297320446754365889706457788463867286040630465395372628448397324150418473052388686061821070688882704949559229610261173449405172206884970562134136347186266605197558867231760075653541857091597381483194179872799898010244545166836459743365423835303790242337494015620163768795206257113464737524852624522329764048248930853505826407165658632316788852177274387651733770727688698838389831831540126393909101295670471942279846080993336290389955403872050673542522501111533496324824424864106495199648026018708175859359987642843422776263515058829318030718226078672322907129027988533924137029667689672444802707689523729706191097710147997764859023795925061727051139151497125141844280974582742461804253965096057872003605708148459459126178523253770511868868577656199269910348099028943570492419620881510980180263294799680876065475942310534175697294885228875360054571105912997368955327499959294191873200092883222973978770936189551403042885166247229212859476260396841378075192557983479520504781061273692125727624432657283970145354329255791593725203289700799114010577790973028218941396296319902811327029697230809428506765697887745738364152878768176191078380386450714237000596423450571477574116122472999095256005919750855391712072254659477160170468432132455789769536769555608998077444053383722690128366080936374031724166093645596193453969340301648838445278045623735758224988669502034978213289987097084520156467284870016477411453874123403173424048955495936811867331319457207261493337816455000054075895268060539322201781696940096163269986054533519210789670523969407844829631482481214351148440979477563877904719883010285156204357624823555447243145914922474177471738614238128208187473743169361707914681602402210203081805000441102837089224462786847223419604679720944857468079176023711915646213149312209213408570175804556250663424406757774883096786254252920557250388319396742456209844785463334050156028018234368730455726725532385803264764143880175165100560044564061819374497868463641013655228643414189869714198362815540678072515358707672010807022722246878297347934566358284272213403634972770570839286610726459338829989853199447336113618515811822764463515635092850738874580129826914241670687846463846463006530218817986855223874669149699199144612511010939455578900440363750334847358004882106943402520868874866014342178943618023247968376819437551757305934929917501251337389354590165508246137160436968248210931349817570328651408402913386377067740583661173206147661072782112704101755825561576156543751794712457427211972429960154700083807609275631383604419873136567917724217210626292332173634367970440904299692229644466231557990238890848046522611812362604086662200463045523931682883037847712281956717263019353853306125777689546298668956697685220088057500371957872216754816921148931889637848189118771570781219491808131246180948201357293353155019393114783892923077846460748878630026102904333127703205615019313731489760196566666158578069200952965251287423920364728786087171137512169366908157500953590203298949311644068699699534496133827849948679562882552618370249315968751099228199928344753479490679482310846851306500449314862019162356826252200873642319508109245415202029473959973229155879370871646803883895222537387885067063175419614153495473083974395364333997475540524757326470957389099101916004339688820853949702404830273267172101852132939901360684431954570725714069886347403965950872339926209305266998661440526926704699698226573616260171561263012381724615115660975624054102940595562166621347839207133492032089371261614395109677613547264678885303442093006300907298268053211894422358526584142537395997989312051562307527822842981868538662264671152420416069654232578501381649374824791576652082950954179058292285647024987743490212714505039005713752285923123767050597051580646137240942552024806458609478255770292592248193688182010895800704866216696267453659879505294802425275346008318989711789500236318604793493952807250352319482030271296815633133722495016817638388642528721278185169707163835943794128148076777530038628404485972044947340567644519382997398639629675133494199152715927278353498216286318758648734536312462831364353893410819740002859430420311240731725371991155438134867731325997173259613944974129996504248124983946857120001475573724071791510629912484194472754879197043332771267551828982750708225993656616092725711882978895760393728585688542736322851335008256323003466461134638251489121277901239511162933675485509568362332445537423196835155383016653183907108189751547280096262870633733600558111397088580199140206999017703573174314253720641872447350072168253429351467433829344591104207780592035445486702819857095107393742265213413315324060622836205768738867732982255279638654079252799791649785873039047885309440341888631672736515278409787251211203579093400558786644124875544026218705731340890662009576699097041072924133171677463274119051455887179689590356257341840620746701822662257533000297271271709970209162909980102216758325611089040584947480834753867974495303620320906044210170970368584185130209747732456189354542807412385598599466594640058713536239194710782666879779946064758752015234734934340616021812405883470491930741486013128181334014348479758828695050571384577911077839386899888714071797782380682514025086518807868585511512967930355023303722874455501901822661402959329964822017133897653353430306110723109892879703031446856031484640239644504479205025002495511244055116263161511955884505279003898526611923437820305506568006183711310721728857320062466816660816837199305066730937162242318320661025054936419542596741883555113864889079200714004068041667497377229927615218757561974486941004074386537845613155204590385957464765484662419577487096526799469826602988495016909531366790662714069127476188752319103286307857990042783484940790464156077285624214390152291724380636146183324665846059596520613362839665845463250448001706748642008188646096223740109749128725918700962318958024496386347111969515682233591731134457425927441390266832644574788809203979565957823006335110538736678695267317194948359207945980657594231204996145573939354832819437800393138020111879259361453932342035679431917326207661406298620552167579175568408785699142760662300405984525528831786740034260065637600752194011330916521086765463848720961379657667127798581892545615217833319371710527872406000247509009826813594635110037964652705155604165279798748694841808010873551654884627879869408857039111801619492387237148995773722670869602676339933254114214872667739066926145992447119619145682153453134255511557673497745015364801658103850323030237854295338000929363293512436610054804798713999446293254788376228780067760115348023145816116970008524635177625666981284490954750475462582093864840538766128538764766321647442457434729325660089920781990100146546546416068400804048683052172417599044126582983559601440589453503521912186157322190579701626177327686043962728922564801120783364688692325895588769438503202589676077930585128300927679311865805943296922407900835652984022339380944972602969238266549583045648733351890732897530166113605761790081320747083038303030458202612218754278034398326148505137850247747326372708385688178021992089540891600247934163518650193120982451259489414048610980286969450306134684683952780519813456207699083682633839220995888020051627020682790431568024896560122496359641058995752009268824608124981769589470106672591201321882275139229849539326523692196204533130757347368444152999046765054258381728306963745144043368968009512684397139546552891453062024742692767096826967534667459600036463122879788847796314662228906859492561545926551544023475429154893133607448866981286047730653349027276256142615002510852329579813335326205575999016288936213704990552200956754814901390246477264434839471869591958175453235115119506734894607318739208653623586385983190495047285164329465188832391230205192285690816423701347616099905117309074604046761869905258573342982157944168115216410284328474014764677191768176449946494840677534491644405010673513760543113076603124838371598252167429788048039946578358546942864556352816983644016066079424380268965945066571835354695468047877367585335692737421804005446263673466195936523106525435249540467047391817364008033758851990757402221474361107751807037209206061932851169185319147183918777754520322848177505422357188079937084149417127979875092786948938594582875679478979990189111402764368206943154843433061666228959277594181224547717843992948560332550174925546078191165992859191453095985323655589799832133143811299016047377578451112151619731769537278561086798210030288213212744932579605356547469618471188788660141061262868744370670441028662967851057265743747535917737532353436022818885309757040475094083147027649240121808930606643763909492615769008239491794863510331825085981395400246009185251817345445958724180351412810754042367158465895911134250519199152404373441827281780443950525649669332227910707929902264847215921092917075624253374654411727310163265775692018315873657050183494725994401200827481484627855417485405689672594803482403890681133476755919229460638157897341855498360260218268521132203202665035644308509186326257047081527860087778950702829677977509208680368429795593818369909860995398357678118455559414636465327469827343908702937161192561269182740483275838209628196044586703628473805855556357005019237070297290026179446887298429711952693631119562650576836437718583661881965817823379955468549704215897526913030564841203330480098329667552171999927189053911093623325030316382233116968228178234811918658910919120144808119077694260669543156537290178705983858738092822765021639311834612408873125281818987785759546634336786740806266948576974680551725870450504829783022842783583183376049682567409721393862054865867035943170444584697073450088923715758468238978153080117215957203616400538125018416603312278672751475989776388628703633010151029959423587831030241045785295362215616583447721318007223628909022492015090759964473408601284544223853267694578743611466630261049314102558852304252445364172407652285114774307276042756978899085908280104818305060515649244043132469914705411961665365013844663923906054215590253117055537491673468966269627461119427128145205646557052458302837616621653321604700782434044054850828588093106303925785723124742484411844048941497763885911908425505901668540986246971524164816004897638700817547270250753874522376569716290968095498151447175176488749427640984355161280767224790309779786848566738574918044514667845435674426986395319787089395779187268735664329251120070930569441518757236448936647473176100900268487355027747131557001276134571937425398131088622297263858638425481531264214627306067427776517089136016595249567796409031962374411487630375010130876253480789745594733271664295398445044849867643230881376065141584036637349239444687460530488505047133202568996925930936671324786217798524323611259126267631763500026439426819612901485914473556522216362471782866287307321786976071347164758889102948026936258530792233532683256296622280392517681845278752297930026885925303039680828582315095500404165670702395588671769994300325227601730013066240999955526529830224454363291003781066600970711258658051131111219832241176082916357957365415133615032111964094668876638508911944410582691107909114322944491079765747615835071081835657652240400303405380958601454922672570628825984433216807652831542500719879253962099397321451147075940668947658881188969409319171473393361670572203435317658025390152020681049292060662790561918308864117516591463064140538929201178329562889947815568051156975272435857107431435762412695421996500083987251068913704434011757454541936673525423140017676028935426530176494098969563014631125757180933916850807262238521428147209809180529858530891040752163198580643535904897075996876973691999388059075923251356880687061857767570449385390296069388598552545478421238174429738464851543036828680938151539415921833553852419692808098221504849929545606224400051941629363584977749543428021886127267439306859157411773723789445973858731579763445109916941233194244912747215439433418483676978988411667701688837872510507075624095682519844068066702173093713754763713757850868089529475139133117544504139666945350492261440847241885335624776053657989225102709617869176019831353792876128326288287407719032232492640258644982749197231351421240093640172513742266146964158777143261916778436344711965337484871383055259643405386469049586232562141272818757835632758333866509621382025349350255748087892470748330801582079548513980881517069387374935354871091197078655322038083727649336321092399295325576170523074433868248837595397891504228793362732663332321434009692326885074058008847262394724307764783624690876981652790949677291007502680565050054397464727522657029221107976172610874657858916142657998258467575832980085627649044089554266035712234690545602097418731573785908864332565252730455349973574765568336325410331377115282265814835915224175421420177435503476637431318309499628747649883077636790103785401102943757565477622543167984393454633295989190594680287038230211707669832067398012522636849690162528657930089325993263360598071662775505028300408987237832811978028045856726835507479623661345958832342265330350040337092546946722273892433387598254399124360071000794929228183451399075161476744944944078551873309745750033700534208247209379175597373901850408029819904164435389608046176172483323096865837055112177478672575974258722575207946284770053806453261556437613681154051033070740232253281676479440648690980376841097550590275796547508482356699465790532553179228208674295302552142791486191415407563538430089078801258923757334119389740409916274141087092415806055166581837067713667147044868876074491793085514086537234990918455737464594013519147845010273546115347537520704289182723339883422467333730323204922895144531558219755115597131125982363852648016651825412841461727582856812551198849458062929443575308222225388110866960626759375941257020456414030584248749133834890439322961939438945971147796929975966647214058926604552671531380776447262622911886125817514635616997102281644872142626025792683538091530367029969622734407838868300509813031571744771742134129271009754256305169119468912449774526845838214983660013324135441024183857226929251889840068896335845695419873920308316767143433333893678674027778162202989453321096207830694878122093220603915665876073998485379705793717529997238611835072794534575742042170051255378384913368459349150413395823269221624497857678684683856388938953824468085152413967833300085301298112689039021476182774008141745702923667053959956657613085019238431911067591963921690640432728739094096605620544729631504001023302884802083057499949033307464278016874930620380257423914436446450057679966279401884816871142964429909493564033894719117398715006097170628857346021459557859937636347603378092633794221171979445603037571234013090289014223153762620172003654604554818109994095025876956292319995159546120639762998634765477355253700694517029667530489587042452942333001523530235181385939807087061887447956291768439104806461663746861984806277157256107221423888459239618600407797369762386897054680625174170490544386173057868738062886469732573821133679715952441134023703655066969796312195792131250921750881897446453770738744505219305632973704063575951816062702389365628649371013526770783266124006371895235042179558235885534855435624759681191120019540579343205020002909930081344202930847187072688326473422625791181584452040944047733662521487957508950991240291582824980837702501923084432303542370418279794936456614223923406313484414476596893712631284412935266573995057093574499345458916210687741883592813904420522068333547691216247862953299159582460863548797733623905862175327868917928163194982674694226796101541040964395141683718747081358391389587134997616801743269163311669946943721922341717975622389372636363512304976650256870162157136092213350078165722357175413627426857461380440904822864293545009490247851602823135689203278796859553920916603764873130342967106046130043681977379078126838426914692517249022859709706054512473712013299570162619854601038802674860119851028560173237844434893295926433886650033570016708584608930923632726899355181948348957393914883249379846722570468202576036568809603904808506073985182572385626603285781633884441867167982193268922043121493681023572127036416789846135399969518257513970047865335205101873371572512236247221409722062916044350986816305282522538950162819398844078796255830343926230806080969427778334689571925059331886750037212012750745417130377724237613848417448841214764754160289729092511818949991181323138048567874888006548465618016866105760467225162060174329072620240102787123677794314453091733749365975578774039301726186749414837887874940055740044828472725734497278826925920997576137617223453684976663464986940656397825210705784925013635131626749584286286772921699432661772966058796137630353616941374199030054066033544836365460339359950473876669713268869322833397101461546587597585255365844275061094422954921488391433183634630356949562059075519488404726292022218775173031945786804241255599490296915148699151896890298190387493075368840322950353050844217398285566493418058868194162571228321807561900553702770929221927631451034860791459636876282734585112339600127533119626878959074565220762311401569975146209060038487719440919656181445139656979687094535629728513030692165239035965487063696681956623216888362167933191421179761596111895719636621891558921849409786842552380738771241261176541316265754129167151372490101039839109549936867392479888136227924618345834869370652101562208159861137740852802730861682427189128334569426555170367319927281581078732046804231722367790860158757282309189040206793677153655869982391999657868712466113192759969404495656741181781363986103184714946076384014356714153394557229455077450310171686474115046273089673346077781049784246449101801610296257806269708466081644459638253424505476189166767799350951761136392533789522468128157276238817028945077011653470979412083264273352788572818137559078062244985922444314565314275833347118065946233276983306211177295034382919406759092850883054780741809872890686194399110905626166468957222283608287178281514469210226882887693253118132400005496326822575937877717254034361248247874994395907835884213510817312110513798582665264041517772964103768268232072844039652309339539713054068103726060279012994275762154147653277344703670917691340800212197015074350480547029485487167264067385621992817409021272567299345803307402838198935829644448800365269601671485363128522154445542009162163796195839923964542275673619747069352387827456020949893177158467383185061195619084099117178118576771371697029985299972435533369224309966617938995332493609663938415287131795114497108687523189043644599217439000713345096883627062894602944845505503731061886614305139892659538985403986006114338088716324228606250307083730242293410297070815307480126406476486435738661471896772279934525525904303595251530056321673083933736924962918782436806677626117909395067450949220920217465413424078410096881173351318301275348421564194153074290044869181972127773420332965545712678696494089129903046447342167890432234183927059548220106931139875617308526540043103300554508771130781711426989371596850376233956479916448715075078731050514139837382386257439520269796614141184170986688570075434805950162444087214293355810990926216991581767821763564260337624821041336804751578911950995564861737192723208072786135614831171384400650558731910474140871905918157213274777033902011304585738430190282975178898076709919651756093875395561303410857572580614809914049338139143426823418935841781631255359603504948160139583645231456379189472996402466570091441310896036352024549499647701928050387826491015158596863683017659767188802532499934380471909416666195692497917993203934025617258365515329746935453614646862493899491145167347570387829789909376814496672279765663502822551697490812006156387503615083632915176683844092132377470507007873279874587976376643802461538208211030474808928188067485584931307553652052879340242828466515378524517472256949698427797221878894808500917953801513213401216489173509007791161550408178533744520468526216783699144430108948244999152770923236488327154208664655268648010980518054483907506164251628151286954957512994749126760366804985116845390173788629989923338244039224752202287148215907923805782925349441604128806742425853780124074369392844948747860965874415327747515054949800506565162916308144983939598415745381118645226684483451102637969991687467827400393874584864964188756468151383120526219471768710121051992647316490252783784018758556672214099455989314760318955583369506071144992109134725979181954199394574797859717532820278277203329985658901470185981369884705758796616881625146814120630862535073609304336024806025683506370393615528462304971624550422595068617487455804902420209400396795853765530889038512411266701141018650362998587470949154928516392842619616973248535927662263185866928594251259299641653521515918783325624532422061160383674809527320566630209678876334233835901821865421436049072445073012529667353344836611721996658424175735396243532801514039406913368437502312872081811985885564706477643548316946310413520107454205051593640041326554691676729008704925787885142582720625466632227042863992634683194563285341971599223209840076074285803876468792504050523259447668577416379235847075371448030349292957365508041981116597204094860504714433968052322801357117385596699836146594106238079807332699676621494741205995626423758053574054320467542919037637771518751334689432698247582969963572717186931501161695776702760909449361968313091547274122240400236606551479109765725458325438650541691731086100989803265658037209802964779273357517385545549508361671496523435354610251512524227575401150247146435387520078596570302426678006422082253442304646579340647956476451399765466939678062582818762290050299512399085793026362964435115081667676778874379373832516858175131640199657112346285943492837469645387176212750369127233495038237778682146209488924120194250547357544654648562694793482452965328846419485909454149858223511776018001919340427956420435475833878082460565013316438209851845012625846255838980397317778106849014562975494854017640827538032859780047033896205710692312940617317210032213881645884227008917460572458252934702589175262217872646648896873794661054849396980704911249910078695885945676235725256439762270651039223608981375389195195776192382399761247575667366070457406613773697079551422880049001705483928589695606728305460639720078437452889825155131611434275211225614573672222918125298618352710378881273326773532342251336321916450245575129784010380040672675632903107402497286238526207122414272363598211675613312771584479754470661241178368041922938926651860424287607248421714133156560354926966802299093132439019299448570577736075790816681276368392946069307896129727582416679891288205483741452620483132495290849919489097701803358086059412084264088664039021885791294502489626870668253736439310010946577948982148572083337461043521552417604411096898770854014657530037816712873551466253616442269255659324417650038056293741740601617246394793050030127290857057652039301056134103755411550273732174298673805809714436382347870529797546317982869642369133119888158346919411067313712992494612281861864733192160415182036674880547643248432588018596309079132761354999531998477155178802393249569399381006763610448857649348760012860444625666823597762513915864857786479185465041158893869344166715476709844763053449986220499983116926666917478654058524865750062064233743742387531551060456876191085219185654763890109163406434265593726186298553905809226133697557892845140034047404970986393939523338823095359420061532354421561090368034547227977714152032547874788152017914165375085355012062651706228401910435460687649876744503395861925752526176293524852771927074196573019743115128623894201144946039367388203908108106421007825592025611590835915948626040699994970814458736218378599377698869136730901268924614228876476445727638608764306074350860319340277195588922293698727069051144451959101712907335581644889235968360318871530541056975227065327827155413937350876589145193330717031813910522531492381689425972609112515403767131821014649523986043927861751194184153900255777455045064450892619212444934380387762624653969443453221014761193961879728552449868464326758825034954932070419621565454346846274274899237321144970817709239201088873803809953927437063639495465124435038579753090718839767247439229087890032550174853056951333927290213523879495817878193855833323328463959681047161100028003502660180464591424286287783959323500714111954147208717165945264436560067305935537629529555181363396553202248193547620282922744330792457031984002145892592877187606613548085893773931461346740504917921946442675970190313652152133644232910020303238715029760489398292809404815687671819143041475703480715460501598737014768664196889832594131347269410434379232653598217992086466514259341955719157695353793779601175309492261994037965700158241461600228683272361858391178914770301585434666853066766990194017855734846054691432309604755958527046300471012573524048665154784864626922798138941534385611761451711137550262108880078473008177779635941644111444186302960971665791091243322816391270672328670434904570775091603325882903519599307819383103864630422154966177681413840749558166499585727438706716456869141321352958500772066125924256937428944364858695982552584540006083213029541333031820229724159761948741949921302884072165210385687112340460291538392458776253038700056828950487645882373799151184957323171525821434951546688738420249744326924630979487847079330294310922879372349435911930449447383944319075593626160605134947062894662032252306594300178189549289234818398877947860562372212818780630536882174913921772486526995515412712921714945883450997784821783433578554375303597880577333491198021977320781996652942123384040314434583654610727977209897405054030127640855372845334865320956990283235681027560635875623875705355397547932567747464462513854980762875355819097475326831266163325491060483828916777540386035117883696436317257187029485457425434713120891186591929452927052389161430179997972547132235387934550451370455055757373409213664586961879615582995022924738585036717552200597553810067289306144586993964988791408756084974020038218971639643641262430949959624439130706846576943444977588456527898813953260875719100430034065896166030473719000504245737764958170123658967494221940301232204890745828193721333159580376674826844452680585548475654489694303392954842513341808744179722954778862233181544405944944412219574186023594827447582889175400542146938489616120753940884571456813601126966981570006797680393712672217727297456137797600945475259562384668772078084698295976240324135684069081082602780632875764484908279822383949626360222967080364594961244624014951631703655639194998051467317999089503864948181410538473525791493439404703753900077638843839746259892767500870813881528148859781676281275407659451500825623449681487976985879422370334224340203358015531668446461574737776564426791142587211276890429136371964767188717312153853198659558890690653611763806078843240417811433859200976257784481545640977222671632034169128467446658242333999567738391410856635662397657473113277863278250705667876890249013993687121134126605400498695452898315008826372814346585497729656456303084827134589324601797180196857892441664430344319655967699277745361326510537663655570347455412121325134350233657933864064635744067347691899441718095667306012564890170079258128759087353032367732112097408473225433954721605524593937802738739990214252845205088150488086996056020202180665473849036580033495410615811122211671775302741473260559168403985721477778958311129174075313557855288580316382381510127308948587990146855828667438871568223982635457640119858244248242140535929929347726664239708423140788463833181110790393563289746394829995598806483054147940347903849249935793821493237146110754061151141863736385951275173848902838554697841456913470585748150330332419094212453619075292996853283509349201526807037854857541009248048461289446767768344277520504709463672207990091898193338597428891284732021089859729097707310111986208178835874381990087110103508326571833845367687030190897343398470701596576691344891044391724680940060656872626601982720154290964517457186449239933236276249004048121573223454200521960848541630895225468072837139769825886739046742582477910540868143162642201831904977836510463658538595830645565838013681619395130480787886864937050748553623218308621225418701303239616037625440261298514453357646383665994195847648143783887654699884664415979585842634230921738176800382816128416871358107722928705472036689162229643439852349978658623441537120517872575579329933343346615100729699640529519199187507319525035030557749981192767369005978711322218498457616994333409901489657863302266373368218853253971895165458259349944912274989105940622091436304747725078300616995920647007856734840969272834877393624690013197589223174888131236908229991715118815635185639613732646475850296554090967900337783160458390679538480723341863019811474871222988261871983358892675224203098636558433655338994011893868172806295723627896151202604041065257535019156195299120581717637406374043752536701997999296962411966639056061223186052534757631606673839192184888379133941867538139188868483341058223302103923814831028236910142632269186392075346579745621970452096151827756200144222862314098906745332425310324115090716633152916125152812653651971673421897073595961651947920556150290609436488076620046490633268914592796390799913853562973021755815818123803161939384559027192717290816675295260257835988632016986503005862615258882520211700209574566044295774524060979562336341202304810370813858480363900152792360382650232480987687847488810539612839330006834021221646073238629577551471753928778206790709922620014971117984282350223481382924251142156067691200207587550893052546594363257946026851132624830933813534132043633809812504408041361041148799560135548930666317396408019731765149899172826854535504901900990321685998361898840806429696760217975523393540423506129965511083049845629290392128763758417552529240365663755742953866608970337738552681040694454746613045271458429765449876315754323868045840693360815127940213693327957391306798128291978222505028772918121482400997565832919782792504704975343331895610200047999212879391221629350324442814490265536362030724457950358371857006739544871374684124171277068142257964451823405261942933449514221913751431099881142292567105778568446316693599671960562955989024863121007694963572043117064125864584571348093854371235665520658412336111752137771465878583369636731052920866659171221493362542541581169820026718760389001111092394171329527332859515519199601304926149077787618120226015256962552604837388090021323301612950648435771315087426426130758604999766215852135582060872540550397635037302077602741310765142136204429111191679124109625197993963936100417726725910943813575135439861509994243103127389655289002338682782531592976044877962023197656420329022130707638202942455798272562136492180578835158847138392327538188837402718735753925493513419584369181134674620065573414648721440571828538601342409432748932184104247508893896335743271388403593354412985523263396088041990584872589994845275196727824759408921887828442980506166944824415078046986520659393881518158814077540025934863251798079408910691050028982273782961550841040487888275182093422871842569372255985630718693088565076380218685603617752978465514501117215395183681317152950452359062885514795178933071117139808670095474047180034218410583658814022653327734859854060666737447656783608146435688155913435647598686477379035099593602251646256469826352052567259305115719261767776296988419936365544332988435989593108385960685680029097052805686713814075538963903405444134671944471834586988047076826836568819129305124542447861529828268683589951875135175137335001335604084992774990807012936304396070452452696954041059934643100751846717328640745026784555978189654586610969007707371680463755581393736349114200184385873377589689407735214702758283076817754731957328600855750579005125525900044381614834694979016569090240867848860602665922072866163231097194518303193884722094753524175699688076749713533669683125164873612748434802975471918550096276383914553714022692368188126011515722123774117151556979473621713110481837779391410703286634528500428386806624626801507632658975589161874141662747570786336254395324720360224551943430667939059783708573019382097761572836281968492884590563051092419173638281671489755624682166484640159988358605833237145091784729744056332170966730540620080301784987951849492318138659995434949179589820249352457399648186863856290528104456859193951411803928463173543468791475405079751169088171518202687543025572663204630607980679481230605460164505977522346161103091423568585568972510169180172307713950724076731966703061299744478897351536218224387447891134747437714104332475393451250186555554618216373980492202141127462342553023677716337860147440265388382140791733148101845912297464422285366091192761505348689759796484682879061853706868728390459370183347998127353006916771432859300698171234256689144105875945358343231401421187384295098616453751411670060188911360301941745544078932787951064072873620054120086036203902739144283307560665804100023384486760725109363691717723686528204386146570606550859011891020973226823899396446113290632791271086162601765845973660184689079509608106211439322330322976323979213653662388206125368660249248473892924171938867583790027823855013998468817219586682078484816603074181286410807820034349648500341439381264664873988813256965754347651115578126369173102038663142768169232231304436146281242189127880519879760532610547816065099500250066789197535861210119166654235984494400951235001518516373559167515110301910242187882148758631452120071740908239746243801034471746869230104113397053981821322422958893015480560234947355898132302863480184436056526126858630450324354488994738202573132937259433215825780921929707740230195397831504514114232478515720469630967996778487210518762289767071068471531406981809089086200804556428751790855225334861884589586094796078664936760270594028535473605895500609672860342135772793973698970089153165151987216221014695068760716335598977737792783164916450709290564959724907494405953773043648198998521492252496039300056790954888183866447116948943421395405012593504476235780664326122901327920332798730917162033909941890361705802771565494585621159237661545271948239797056539237063000918675290587619139281405147101217415288301257569745662216616809604641439177213352404257541225564432973125289526130495077533690502662344028349710885274313861268115939617932088513003425227993868506575910357328227818245368210624604478559835409343012237084840281324640238960796263874223967862748941823125889118954381229278741617361557635722604784424064011546798120998127980810996852882645280372565949113776040916520607152815152268790652732440890822867577089032562800005398657793600710606213420451908586870491333654799003149345075243246420695560106902870813977121513364807691678981664148405610958880555353113473028436522495329833709458190636927178679028858275110860948981210099792493037820107371648316207548810162765271047159371409033862580589389515106592362089667826724262318528681659763639927151671920203703437961465481185325884910268704685616736298949711816623456839664783503059639166364147061645968196959086648122729230388345829161313100137802438857547005135869360205227143898921917324042161066456926777460006225580621151127367249035380535824122170601536386253438921825274459041662088740950520173025621609388398736814011911606800502027859347627295364329709184945935280921232933250861986078160662646923468026067349714256322116905682389175920099486040685432590730453900403697482337823991347505206716376694518528625634319060340832649675777802995785957695143864753156614468780682373633051112392446686775356641917779041749353743192848035405753368567475574984278548506669262362679142811051514778073483477869914470918539476965815739979964733390217491751238157422465888737011395768919806767177324913650122399289571237278923079158296734470381351189803950073561582990898616781845016719764974282428569927714975677745500667853714765267095767488102987634870236255914234704025747494046683093796484404714997265433847782291055061840577058420503495291086472999088592173387917961471393186015561728670527046643686460181653775182842207586246795959802276090958204590823547062402978054081609930602029972344609668797956645767203368060393360676868385958710353822388680956122336211519663362155879814211954823372390550133330844056258722893452817060001413646682854205628075217058119666728955093238547193225756664255508812427760839303111492884786186850887347552255023136381173635569941536306761580837583299033608920261621159152082391588369526194698918676714969965392616714022610940803410813738682383905742301359510143993068755835515620071193825647862745639973138049795833722576947255892502634160298843614903122379367831216422511080765995587010215066112016265626934724185095164880325932004591122650855857762280194473427157030032769835403133588963471679254119643785615397633824923582745636872568156333211101028513952129775446761170484718198596481316313067231285839228564983527095981114581837134538417957496376085970314989043193508034677224246266211269008565764462466608281580938536580435728616797730285962387909078669236276055994111519366533347140490353717417615187661561437180348996454655262225974580183509955871898178004683946793426219405510252102574168242331471842918816265407465821683023859356591076674160451112373703996020968166243788337458495012515408396594329482092840471762318697056068078014809360057025916966374435118901231064358578652271984389439898122040594499187154513253239084022111341217834279558715756139587374794400535822267859455855171064766141351918217346151773223741312345200734908215859848108362385191004651378639693063061577106818592097629624717825329340031317575373837105731482229735193433614606663073549230319849982847774679872254668280240633997555280344676503611332396064412943350776934512720070537993131666172418465443766772450514299434713007397402939974349616283764712497382083552732219505909992896546198598695280805552756058980807831225774945373093670694584266612022490266962498164237952092981253117404807901390515321171454907446119750176240210590429208990272736189671166753884321019333917532109403475140694427353770432745894292028383708632856342576090691058939973437467262939296575269843444016827722466057155690943633079541058585284422879305324124042476025605960086377988251451181951881420141920222878688036492501153088950200252781909990480358441325102659001407362991111957054417807517084475057657926872820942300996216753058897787651403284300555316807693275574799322965321045234368629266051694629673894541152031073024776942071448704384239628444525223243645971944220401505001058986378260534105682520736192861976478573291585732425921791039903058134213831055924654306495515979028167759219309218987421645214938902525254959740806421312925854389249587928077496430931729834181287214399935572657977429830317678021921012686503284985567926634338979966336292170497429841171775617714530636811279706375988759167466566378508632995125546957976839526034100226687244888101890306579146275009428620776110069574284382850661999225365323077390409596712273548354815917699236659031144982897542925243691140793712691184767483598720296061535831395022528199439129356605470103299992151144276202866288522764233249270286600803850022279980883158848362300982969048433986150448502600837912337578828005516318230919505218327673761787626705619875600440577030084810101857591499012665232164483056602998132691125651215913239655533712603089660987422174357723854745670698968055204972625129325066650894869418159738900321860460380735292571331339722671111008385500226046695090164269623472129210804460351659708885877683366130393524844972531503655127255271432790801797914271238185425727461641402033479450132460008403504503297462773602937463602383936106058872290773168050935892398304747900993953004182165924639130467948704327366192002057004355991915922122913042029151061231965828889571861024733031914352376676287407749991035426646143579130912468407946266850590965283294917346132663381148185261474725883714948155817835245463680063621130158710320479485323395566449102859016805299593436287896788707545679920545404351905121618418792974705838563529433632687308701789200038182932470766075659662778162495345230417934339935507025005273119027271923533961754881679607431864229529720530565510611169160899460633998567596700090706883225462773436929506299066293830591447267183922062395741438030670265901838788105700798027362223355037635151806592655184915535676747661825529958153453580201007421880161973047214729705215622414431810313721109625719001654079936018701891172127057024916137554957147193414846385775916905041879745700605541851512294747421798108636989168521701465426415412038116505567027502450007150002532748572555142834073015752493801599232277984766549070864735217915777443771276257969160506873540510354003529079549058032685674868523346140603531131833295960131594942572661272004842646989280197582157063245106471508363998861991736411660343946222114330641572270130673181480849355985110758237017817368147444272434400125568917318655135999029672380697802879896485890598269641269967973685967532462750849232068386584465250840033209797718244908927899540816751415172595566198324862598319746858794046068353489899768304540782639776270363381557513172154680939182454865998910823968585766320577604106716905513649895856482427580470360231681351187897510690361832563381249845449004934698018516800401934720324429126992114714457468586425844622505651800857740312381517642068416629882903858492388430356373320870840578459193257320505163831061521488069223922354790919863060812085331162178940756973683002960516239705279801111451631008553666055187091484012646767947333027856844505107949169793632812340223367420410138496468755496473621212938900119606753678725310642739689979573913623588612961179265871836594823602656463037268710657210491298976316985180514978357701621079223514642713121329779629513530375644952918009443936157674536450407286447450284948292468160883198019997462277224810498260382866209894872516906858595086604756813273300475781582389852792733450104754122130052018187844302683406393447424007724982962715195394023171960141201999817075786412548298832303649098909042414942157864612935475689031998848314260404959467992924657698202755688638707435638884939694283334132360555559858936557212480598773493957594411876211984296746619735964937277902433175236626905571889689441660779842300580137076313844252174548735111187697747658113268885831157197819076434398793593775995654116736902261642822298827271371069612455386542784683005996110611549645591118124679309120382450390545148955218164121556086500269572960991485884493562023309903830327531673909240270907423992552855693778676026013262396242099835975677547314650092746984858175297505671403211534132364402479723597096261527637816034813267528949522993894564544411875841651540855655443417353688819889283893176798018559003771852602971930370282216074811168818000610045947823898559379358119971818054086229780579069610581865044346849364852221395309942617026928080066978257297921818391849849621896056267555867325465110768598244303537396138240564709748300853767802008495115985245636350281048022018061056760922422287431752369488881813653211684206735578869252238722888723980722392308466042982431624945504817293733759017105291127596859852520564108634213043326181904304911383329028440493127509102592339311277160270428431241582020160816278079247380747892591773653485389461295356715943741457244059689676539331106100432010188109301899275968516323006391015020156571969244752405831388131838026687599186216087513096142926363688382178401816216819167076800228870914024317880391758239609626086632125874370282568215646489702137678581602184017076537261317909550036250776331907663687864648390645170922987713395498433933499626235928934595041291818256680645028563501548714421121467080927991290784511840899803668089350596868225885132293089503814901747484392401884871130190242312895918221432428197468592460174521512468442357240346829448260452175538864538946085930002013374488365732253168563534515000247646013272538013553791396309217168716661386765048764569649444590223359530451529570215345162308632748293549125645629123609338714913883310069637995756135742446911728973709839916412698476195186359418591165237515123073802590321302956923126474987185450186620943192069043132413744446185277498924688578841135523259741579636842380937948121914363533410028691087277976598774517821901964973378508950144091420304913703397114853668049516482742623172296296742545672339088648727804114997458677847311428904269316843716192533924053706356940184693768459502616387856220884752122612916484149832282924500499790465891210592547846346674259743060585125545082577298617496429687772834996272946675355016729520832394057175305176783362541073011574068182534842410480178110503827774244369730378795923575594573446243448500436316333884997356313966535565745388894205594415746178949063741670540333365186713464823798958761216159787667517413045734204556637158496659214870112861790966455071527366141915103939616659553976352556855786087346022310724061354971557031849827958070623817768454751045558159394652593743653374226866863797730171355541339680007468516657002482706897244743360872717260305523736679871848198521865004046266215292873220488723155056109051580397916782151278245724638728249493082789265532565637322355866460222555818533644983195962901608447475058828617540643322050430879861454992402499105386419555672589894650058268982383928729693113714346759508419609738928500831546565105250040161637164023854384469740601264813816780853007438767180375834130582737069201200243553698393826156131360052761842236839940378655546919486947247070504358720068420734292077973974240786713106090952167091743733849539087466348225416714620718474083295860830136959030250071768736081369276216938453496469288161118102037672296643134660781062201074030382812439696695476555501458182240360448292509695039813533059008899700111328018356502376934449328882627930705972189945123523897153118580866836685678437767450800437897522206999714067067960412943317516062776680826343362911535735237592725346938747403118789620135889398040508965564794815468084885216060775376121996466128641345534577282663563559601798938652279784398185940483963474405509067325758274318211412256663625865428753024833891141403442323004454466098004449078863758653743402125741675029313736373734227618708441423551429603155884373978966619255577319364409942914660446341842629452260104847177500968353113022408818304655679032648529925683908008520673911859743706963610774910974392463563463826278291627764218318932520199469481047208426092840961855610757278143708005886398253518998848736881497217417587525298392940781968313406928596077546758701962614964595183188095218671631280390475787488466587534773057037121503326253586107100141781249468738695278190550423903498548199280241888244501316718708456714782628096361365382501997815788536962744930505620798967504774925353596294918990557251922355713428226398935890091470778074281865027663510581867403079877287851307906648734690279071578045977050869281503556946368179850621375517258900356791517774523633261119906162760949425166377518823302922282373150195132902831217404252832371925603319931659445684212986205416473128008798240192880102884841619422872283238937644124302799885765245518720110134364855797146377678106909875667963617720893658109573344211239903950749188401104111073787530040497379604323771214237666612911471514937797510170373186102958375532249590748214015317676947532739682385400966625912874140470387583710123765539076211515765276349046448537029075904850898976747130882500123200462627948948276208856272077588337481206265849714120290282635957502760568131721542215245028863334905634429116836376579037592683243678879734351353589150189136040830211742554832209263963623385452975163204640140854151541259576949051526261625058112757234396449443318552496843741247290936764665231578500293683233949542937751522253407826481075034773963767011244726084589904370997664515000025259916050542820260685790138446719144627028638911492077013338995278074258300127786071675076577755598874321038500823916751085097051227967934347254692477057216243559311790176228762400334144829017406845816815539524484037019358973459435270582981615268023455228220685403528105594299806211498697672602986139567602698841093651308638802475636397364946240469395275139614268487575386339665205318763883829251592822707536827554660179880547895119689262438555318182005311064826094293950524325879270412101531592954090879508888446411823155387518995093580148176365737270570051999901963216489682116106023858743631465557555620120477284194354448580459582182799639306300363655502320518979612070084452390913432497215544202502302582669472614536538498382107288676640267222833458811622620374460852608339176817880750515514226333029043664475788766640526547757478183939727238636021824176505744273495152799504928385077673525717543345157073753933526109099460723655408935283792863410020902559011029037401847687566649292783465613985522681833539053952358905834557832647339488245266439915113422409595239364918429978175473631008826004775817001253722542322092883217563052368797688683871306861268423060773902517322184081593422968931837767541713874547305391154309023977224366137254174884381514491676850351454261247812374768971499684411200914415632428004438859339235455336834869983160048042995660573041102969165478475591671116001751331829695951309706163060677207891685745032724483223097368159958578184545009700406352562026507802316014161468978484243133228563938549739974277411035027497931566339835140803166336089571287334182276289943796938536238572432576261132290197545368227908102199044404152751825095233839561692699347097778851082339352298621510496281771410628671923579548989783117695040422919083970979257834380798001918047492948734304076990592816930854984004275488189159055558024187699620490457807901462313824109200880263608537481304386505680648090730898829591809828458781458157856668170161284867518592742552608185100885531551767469846047994734717076473668784305271571120721684250390007933597181369408790805613168677246013510441057418920094584834680673880281910744775332755447714976403685356255843638539568709904942160268239640866350206522632461672503831581386690060599471253621254446113697523133909512212414489773108373696576289863834977645973233457409955575877276696910651214850474744735501647628365848461576902674346482218119880130979742546730419746293816898099585022075749623854454829608744117743892017369926951109445629194150866747554494602324896718411883038866583938693685074795868195656935849566637217684306638569541644903427247386760725671800074155177713388746453441517333019621837663649846558594420985804409390890548925867786466803791858241258502928627583332110268599136486420589430438059659185858986350861760792751505224471247755837984428527383827261441923226404297387516224593016699260641137037838832763755550726066660100260556122635599708597682539925728185428648948196755322168238217775493722983956449463142518611104026854775095682942766959575707795278767736624497508766222364726998785947164320021258361460736381149292222072920800006292093898181194152776333398395977584430905559381526893254667203723300420454097526425235645633383581793624832553952372563812962034168571279751855261112721878590019158612711186455104712618647819619493525759532032375368105305194107194020382148439392448867534386049892974793820012350239351875751834222737289572842545035313925558052946112256072503724779737028081334154816526266175450505323041465920445991190772108649647309917820612620759519370393409589722485770921625191779402862596857018931280227819789864106565856102296086471624409930719303997661207110395814514108805891666917648282506125797286359621725866819373404894297485650275805552444683722514903845217417073896027659475138156703445140530265784159730422682269768206287838355668020906904219075156452677107734118710238137455300548309150448684427999844711399781153292561532914967729238533335796913260009488622611194719133348166897014975645831190847531532809002579138679604569976716303814170866195823219792802641674572491732339720410952717771123435581154326329648850988914323811417168276973361443450647002565349962438103350872925452461633193662601933517071008870083060101412823780566565637191625558938864557754689642658277371139742253427452044205702621767573586778627257795259953007576976573824825439942886110389794763017685288323055470650571230462412313255122199157886122577977853997195980884054360761107874410238969883428280099932025495950551454951842771747226537779215757097100647486518621618570952388701104166789428470847872009961812373338813026379889421590775806790101964275458372187969697934278324113850473156947051823878974600519256677049903769313595028073885806099055956941318200168462819506404027701796973082899684591198863199820485709647098160031046677603495227225361889904404445602583264407418317389163225845486867811126440888153015572718652204803751203880423168602237598693325673196763103723629315511976465113519307470332930512137099393402740357046922057242565283548701063125224768462405447115707154249599062513078146988267038597218396101223787487382717684654470876470184257126398600431974742448624133574592570822943377807368762985930033658593525107308008333840129399230371700358759482581343504567195714242741260573185972359233054142395675064102211532937505898690563101703066645870460512295419549309726954234103633962003522678508498512057479433593463912409662880155770873047219994168461784159540189049071190370189949309504558934741734091162022569480169326367220926321603567969824358567976372306214102254520243724098506864742189027359906561107618603559066755516120540678472343772457295985110738942299341112689556516253526493271154193375952119604477314444176235205524934094456302026328489866552738048149845054792146918309893634387761259864434571145408352741236794181057765781462339788286366566013846782795494427041155544178973918150544066303426417693931261770542807853892889033958310420328095473545511499645227237125394356226088402825467518882600907250118466665868607622150739804133975540957298665774459950538797221523223616444660138252771990660001302771279833745418949997766008839019072977298529628396728351339265400589389226849109439333329542242279767151403383028528292243751231470795359931788307234686091921772632061542000310637933416098309456601512516317374555399136822808047196441250052542585896424181166678490978086603595987139473748648644161245254619102990159402699034360068494422354988229999429422867834328769570100964000474299457979708532967070855521129043715469271169775616529242594035229079283157322176935994334156794526341149815857255944799610117771392127832270247023629248405775621831485272078265727659485428917777185044187252032349122555043322833133869978743737732228222993593451540236984274936441125816578148417353323321443904099008398490691124730304333186230378402128183870329567522102986702417564414919140659193949119848861862339146719290778812748046361748969403138250849797883622471983649196236384140402766422968926228474689203020543420684060861894059164657460501837869051699173647490116183346500262515190521277991463892154337366836684477352652595639172005951606410264221016836246751323524022468735647807644516726052721375683245125728010439583764418253983734124755078014981850821439158399543971164336814361973427048476689801507464386550335523018819696656286325350724010529927122637527927821087916073390382421911038757806113330829085863600209471826768075704705475158140594779990333119201881027050246227595994360742935734504111981433216064733311226223160975193108023752579407521442120257083744161677175192297748390809866716100901554667470888248831038041623439524135738327315857795889270730930692622558868401715663527628823666863431647508872628589920297991293389898870173884336724801598050793300791316995426149398445935135079624404109118407816096139998178924256166101083034044704997204348516284248144681857584138367157771999563342231267175980094541290601201094228353322057882318778968474995383399477126831889931069533647106527278797101938887600206972960470444622490866891348863826214560736414019827713116026720094080792972087330395250238130085238506086943782516183803385558080562342006063621222698457924447723021348484242548606201616261223215141339772074553562243944489203146465732694474526439082825299212313708129855492993126641078935380073267370948557672127670254915633951143342081581017817248510182540573074475534706432383066114108320215051957061957051926648084608864931966759661270191950265083627346708946720016563470086917906593074228670309051398855960145482881077533865691604600668825694132810680503748009785984747141926187883619726221754662076876679451094253977992427749925886279014412824342674574338551559984248063560644424501793148674213434826578010385117215464403328443281062377928251650950668137762814292592250212326469919288106896494198888207324380547894924732574919390206015251991161604863859053968849462627727880519962129133220239312259112422390891127132085475204346106274109692868729732922253419452057668560619482447479904797250832413112450357161647078192117791308122394700960147925876236072035483951237673839823508957882775924170270787551975019625684477754384414098934939721758989719465980596319530714936723419024328589002203288135742372519956507942923343147826066524171046430017007483148423863626622183361873741288583109424857900336602481387988154955102525021807473691233620869981714895989702027491244043856477554460782513983560993702661776400241217081306174968275005352789818338506443481148190557003033161958540872585189252120219095144114521771676609363601339715046968932926599546690734721353102380043076283950164320066770042440033731414803752986830519543829065020425702649873363132143777634505683263860419277240406299129896351011313370437492050354079439790613466083026806403383732303287165016948734892547509925110385674074487201811111340943277973286137610786906423428319615439956724613156113841563641940308854236409891643546789786257357671650602887799514592226109130859322372267091379530835494869990353197129484841107567616996240753729453455037233599527757321787909825700164268653707032781588132106307483874519174838444568316502569968140198324198177303898720376140531988233947974473684135013160259361978443104175760372780240328266071834402024687028995017061304977700461208886949603613468100453089657516830379302312751079064319479111477203191783620785810956291482260307045338549888157541318318054409602917660466119614108457447246565438357504166093695718836308183594964947845898102033222920395093185156797900618480168614470144563492789759973399717147585583323486727471501307487393606645320061474292139378132873530734156791383045329943997829240265400431699980588208206649331794112269897967972904050797917423507450628564899373430629115154632969262632269096033880278247022680511350247363160854676458914669255248453190127660088362760510170538393224083570192295481844515712624571150080581293168641413773647966808171343504409861465379807111469911696292903821744910459347181638076383504000986327078233654910083022105439464924612880002186772119350028448036493022147072678363050795231037233444987242394884363546559228482007538274625464171462242814117174344487811501936487163337597477913343997230489918395031701747151559128989616545465334444136285931688970264014054516970915432723438384351778574140366558346013215389316482311101522130139092531014879864305126885754659169878182803622559542112714059643401929422114208694899689381641359959055264766813623877853376744716092330730166636823955255995020889258129403882674895700339963395147841788204181694664445214458567770283162266611801855489759834397472608698998610261421189530281445464628309303199287286667495035534201715736121696045193306878681905273414710793436047586683575066368985218317454818368917238908540495355188911866099847783650058720936753424601962094562790060993241040769352676261817208760180817786567237161324658364509044943602110943344775811765989306277824152588743658216956971408600551011571851556425306946306731182256403140054399957571545491265695995392186379684383880343623025831665950645161209293531813524100217250912971593085778849708784449462910616411608306213513644351164439244828127600248283555474895931557978175318007803151388493506457146799855751885781475768508640183888267492110955082309335203107781271732489848064279506096847267662634062723455449071801075768348786514089136848869055564841844979432977022900941822111784133380710574503759496033360366934578092396743541255556315877274745990298389772905732147033515417098765636132655435676783851805934459320826878662468513209944576885582827814881556826878164611297681503224804605966128315231319009236094415065130602551259255345067043989759270121905333648579826952325125938124113058316726497476762617343945658174011337119932911911593464613503878575752264245063853497729123928450351301143287176842522205456330273943139010559577392253886106799225476023881153394002992770928788064216185676582065351917805205455962390407934122604456553367976009706172942347162949501978968239028137545305558782998666641677311209313074138193440160060693213955547094854076786410698855967300073370788002065628359182642096889813173490589666329197340204654867203064334856069244732204039321632851944222304675412730516202702995806921624780024368709926257840986043536327395480616887284695101376060270867591343986646479769928302545230646067053763562902161990528007635660032433709770919431711394692907775179030963896125607330937458178754744344166123671215747304920028034528269227754588493877649101746489918385067854841642708213716319158385586724508881339185071317264950828226917352084823967857339506588428368458047639619854060294008268526290518064335846862457237375464815506341398113124711939899191158874423351020666437218615375840312200428243741381474623877903506180950815508026846645227714566398335523216955780350712769409039022052046889167972158987180226550920098702877580022562439642003555445947672782601493938611718443653922794563427693662694418291487423130543813867006743031547320610621279758379278614630569205987786023925667902985671936355755579261374734135021240082477318537867197284906153385755347560289495365804864226626354438012232935746862447720872303440088996632405220935427025611049582288566141715458778773142431166468856850013404162638851095128605864607709352423726436136348114598911179918576432285279124259358273184849027582089916006736721813264106731778199403886656066559524051826780988110934296360889421522143681029784768947467892009015152143596802657548429579252393787478702811118238740371779968608452623115743783062973242140264180193550391616924469880887227270548065423073479739070521920505649797719333691072792776706425676621698387479813983768739133445184249781050466704328589657453363803922685777587007891559662968098805370135213842153414922763221091468157086031155891284332735628828300878595785822639116810180335233067446297025842644664374706176837408504978146842362452265031112234373246041354912421093077388960232220236447387097699944988557954126807883878207241709717902984812716880456594010874157471248666760198857039669576101238870343291232217956476225401473114634153350518018851048730412561912330587324286515318869512526448370739141312993979133592826738308429392315443418305498982587761725397860458666726645863710145719866469831933870438257912118754693085080424123252878977654203722744833851981143542520059039489745156162013916462553357745742497805202795387037075820019151520068195074279894820627372676892336281687042113901264398672685247280997447926353082084562689767364398339171162851043864627177416333254705783808467655881240764955191428553264077445170082835035124150125893670947726689337887396600514714119429832089444009033990374953606528811913095991036155704966307424276707320223572572381344928461615383683252791282850425834741561436638245956977134164324917984811118623580552139735906049721177529908997031349391744052486585418518844535666858631419459663638635213951778692124855003160260248466479179622633680522459273991923681413774785861866710766313769137007904836836246575709250182778262287139526885417109590885891944529402097372343534771729230368572406318636871938237833551935959503440957467966490304652731450724973844031651108730952713644995476137365085306448820721781731233771522968929120588814920066093487437558361030419470587436793724132723375029286161941225074047411450886249666825150091260789032968394339962508944924119785457763192758120485841454632223794693239371988559547008060519624690865977819169637708374069053944671280626511709027846489427227104840929141781312522388653499652387191029453902268756862736260190771886346668592395443084301516852675716267664965959096904410666161086186605697721673723114565974570317035960895657671664390454948159823290219927817628479540462349069733524451222172337387251087864971209732355981195325327873492363704842935781655783046479723263442518787675489860923224620705205047951080773133400399227164138811994933569632402856216111606533226915024920786659761598854437673746047496959846456148090732204332565022506725006150459378595897454252766048725926303030602721556590922492667469627728015125195202681441895824700768553775492299219696137327737195608920503688401150233005342367063796297623316725339882668349028769539170876260613130804865420174080956339425664408522519571379475348315087872558420573356306576917157007015329236215697878883510653307471279259801233819604080445307250549062227681517729248125070749864343427604303395793559622465992025251630916862932713931154015708245729671953403254281530346089065154689927095495572822335746779872811446762686488151248871021858802764116983325656290644706687782206426041499800874756861281411962706958955123171912135424393096369689683493755756759955699984462643223387008516221246125353557733848591049669255382700623657318428619810943841447916207844725400415584729237251605419244290058355664648207088238229705935887252403865865474686731748238709207186399311404020236078081474000908747565709238357600732120076209548587065168449699810575731858181884925778524025690150518986756461573547718986973545329329488052275898880678598367323260224540873603760808624717140945818618440119953888826303805481119417813467596173302946275242214798918066415890129516178632646364425129931780448579549243307972783870719604771656801183312797657086952728452795304140186430838314016026461055660032359224401651737544070197052129622056132303502987175638485677913266242464555458297505170010977921173384462958315186773128707063590556951417726746738973653135111430868098491801159026863037489628726120304255963519366412934732813250480184583592055147518606108311147172413767561902948990868913781198165619023975659750093889547515915016317527969562040018014102026606722912667059054435426494723539062935620231895312578174174782762648372691573344433437424459864112913638241561591890461188233081529867517196419102649472417603496730149089846160948228749812860777517674228477014015236592048730821425180377586090805925144281172369333107021873580291069156840537320570709391940140194463066987628291999033361966150784262491704056048730779037491611011422602395041931814438239484987211659572455084676491181097009404073446881783099135475461207401812810940753327507184238186780173709741039657540428451705441219775685724165739563723761569793377819682383369190335111492928840944687526834658128156739187165398766940291989634561476221646341111489716631840801800611377543199098460353855809517830670179450230857584786268289444758892708520571371803089683837786332793392654490913525307449306187129302050013721046257847596012079449914126377182313418966155460911218672623643986893206395739845134412934725569582552070942560261647851320700274757597738303315179342125503057277898073093646120653300235895456676828854428705445804734545108535869647021913263740418297546237368580815714134352331403439178862328795993640824449311858942673093297817468938829380353981846763149659770909290895172915261673705548483246304281775410334144429016061139045630019912222739381768809895898629415629747736131794174261954167853316181107628858169219486549576654712852671006732351540874640622526889313509712976335304716811512864499979802717063921984409230182784469742745579141008657640984810976071565306946722168284545518107103544254959944345761699731191087896970490319623669072571149899976139746826372950090255142276198554898708256031139900809696077086500068381696124622288911209915737359736929650656666255026053871052250007269954368568651413570531731489164468512578291659831773080967020809743670018350325072931488195291860112939663254176532108572370034847847045687587928023532144231661779870899649506651495930863368865913041068556145100258692824809972476373599630174323027141374535424203091517441137044789151410040609841096106892049099783229296215701254324069601175739134982688406068485540308872346336399243042966890756946641699508200188755654399263259676444347005212114958513913100561486873472677291821070241144155442678852245204653433001043530307057244841610494856861097823121846978058178909326996399473386723735840153864179472913419475075930562716084954771851836377382620512049466633944213191204969395260644793033603148826913256272779604488593915605695543716675248010173819868577460510707243507824599739311284967945629986987080706317654935935902664148681142581851810190489228725727606999545042238999685434633835015673997067050553716014750872339051113474996280115974792574531198230712600751165407293535285989613774234450633184672432169676370897928817109441250080295670600854602301557515737671279102408124118991770173680477596842563037132544835307638431623255994475209618325166823758836777633983300025421604155359541028807706104168469727532474706558852915421065970253757127264669253865455691344405404716031191334772476459917868719613289399223910527319709415491062397063454838991590701001393197762582700765400957838471114332878883912639256382081444109137479897309329811796154095685063047709575893717732715287017137887170437959641007654509394127312555847803319218514896655518956803412911824308309905204424781447372760966816425842803341679018191834077323564425739960620305932224762613531740524494272490750511177074163175998105946722067060980449237727135488081580562668089839129549308004071577058601007377154701190565098769817152163765080286099332033520602152843945616775557390930370877557153770834797249022877772756187100217848348567026402709308349276175032163614427137336840094274345041458314653116602846644481704743908360870571274146478664719905162719251409211202261085088611469948307890603419650941283450044005773983970761350145275561477341378230925238525492437414008169470913612192446924022312146618347525258751753004054213053595658584714660508420853118169720152170612223831881876478723121181929963614588231992426275156987350728946069373810985747225604775725593016290924576314128275327569091534305515782343095562552260648820299295152477510774431517300620296769706835433309661028536074085975327577352832192988625549070653611786401645496828007858062115528675960963493264212418863220020104999164281276000462778122152430013654435499964718923754483963552353221970502342830220129729435513031249361982312141134697227795302281421813973370569939136890656148366637201254894777292048235918837401106547029121859542852534102834615390595561031987915090674590378228763317712883327013536575486171893151550357292666806573880124296450779238809266453679276318868072748689648272552773268280274743233985424201541722081582264556354204045141200637658750102311900061819627579692626616862286271222773732730343030147215636349030687992909261113670850943868484471521325707684861522338430166619469230957587539918513725411159792413379144498769469043248118285171758534164402839070614303935798117512487031064494494071433336679328755114218462770025317682805496851353306600520475892782110099455805925562678004080152482560989157675595564987018390464235775526598841605826304951603939541838239600744894847915170334395251078147000626110215409770526974654778590095842156149832754933463528587872180628375278840926174374360782106690843723124473817935370983608293302245419008876527612976639300501918993318200819642684710402578999278024405492239706194926280570502332338891378775394549806488557104908635577914924340794859259577545793294428149697021986926951331281189633605169128579498568325426035988257594264727585809038622775590341530474747834723270568892741620728591620075234107526130035864160424866408684749891271569427402523103810960626600496503494219542213331366952335260886187841317523242937122471172268370631682658393269134954997760100543854050355444161784186632644519263673950082256158360350050084993373026561947702381780441959899152299853651331032360303935159018534153606413164646281379613995773471627872219775608385757864188059069470539619584171132287901320414422205054680947659669148061672811447311459262806684698801136270139668840506292647906026882451453495579585067312365228908555512360253304201645349450752608778230903543870321924060703492740246571134472759349311269734382366967895759907132336997036542798060341391998906467482044052484486290708126397627172877611138313766295894561997643421027007900689947891129837744989421255902098031106972229314629693400966134836327586361585564752892728480973491827721995695688391295763947849618848619674012850819789002745556872635058960506105635264606478137185961182434386038774675164589299150421021957391833905355513289877639527392668002194741576855083059325496851913209826455784255060513565277655622313021665692402287919977948718113010210007842018328405072899146545865543254221041439281910597539323642653653137097963903926344401336737405691642460418939728419328213083812591025616449357376031994819512176605245664642898503301940837569770975788825974177497412312368115427570317135464207922037189418770755103110161884943939321602254996310959506668299141999238259258399950986397638107169954813676864922408486492529558695790639346843019909050748579987316560178322672443632373515137486895826917638155718997547683000535459314041960027000538499444248114523502684009557176757898488891017063577194621786738807898038131070583767786777148822722506025819915748491624618758370916783937113247357188040575580094745930866955318938837202845536637681765793015377609212925920074527834620692950640977037046846353146621825600764887645946268444170117531013610070088334471222235348547559903237487775618708379405276856738123433210714125735303493568707337119658459008845841809267248302979401171682702964521972895645570387009288350351881971323786592582053295171923754814827156814836776833038345927038730045741005800944174157437943577684011435070455528488633706561574099121396743656590568663875119517753452392682167735727248828944136006010390304426664319534619229475312679478428635963993186284861861196446604291146109168137790497536594247409676485809116249768869533269637404128846538041982019911324741628545024086468241588266557123419466712086541793510926100451257722710702819019969211386739803485290372065862177029674369038926665821216222167607317478550974159966530489931131040903507140629437063636098739336672216501809458544054082254562102707248449361823128641283315616502317293648620705318753715418193650276158242339156348386999472675359190297395617294485831877007176669715179996162641651647046527894098965653146127011930823916173360939214064184168507835422815525720155709117238283329439166125861243372770914735315743528415730153219346686714470620950380606202571501736774958727104300348861204186756609279807833258263359224716204472239097440254452591104031621390720791616725274987644877409577488257453580463148748781400411553527503331052140918553256269605321547014782570456734058805316808822002027230131903790290046908075873220329273110825872248250548946542017210968273527927637862115746325279498804741102554173263502284405137462358359069737200318036805457811412096493565223627881061213875649418469326368920007224640955100882781281625513159400797977912454725582804809232660972767264557623460486075698101964078348234374936394940766816820780073818422842317110201977404269312338013344328578752413289539545145663875488596777329174234666991503701489723238240057431378353730135982028913731210676361632755756305003916016790568368318454482643624751887353115480580254538036778324953038548416031744877175264051013474937467599474998577228076637776490661734851501212582239889895202473747907442448593047619900117521156049351670099232556273591013215001318624317780278644413802530591574919999809076063362697791285757499211985326127886706061254114960731889361919839515085289154781679359038782352259936649871257061539638169834530253311963537200433709713599408355698912246924017588226661650349568791151519344127542415681602325533779723637542169044734046924560105590919471637911696277018354232748564205135273620006016983433996548158660371847867212035505676957149343227309485871394485702615599107729000578857328153724522835529633905133980279028832416492597454666925506028467836646532875926460332737342077862814698125633639631691492100537040049173846032371341952414718325557046631165759667517298580301558014849702794002127785248783265974445355767621796114807508770965560345629946355064256757366833719264494001053913868989845573679649214191256133876156594230181788292031057652776278123896097905301663257999776802408188156079917804785125744568092144680847970228693795185565603553534175582486626028377360672116256382453471595792478531248002911440374288734089470891825702903694576901977492448320523483824937227080117752521958551330344506998013287235439992371261968735719426731988245029084863625250625610047013334162536371730501739180796307633026383221653705028573640627295553180910337904260177810669341823019809123645152274110206699673338485756519905152567334933044530345650224147604940466898027195015360310241105382853028138639535980057130309091995951638970739735523874886348672490177645772845862572833683613923492549075878094776416913088170054083985745542206590440583293398243742114117819086010928454660709283066180504477953080741169920805447356116842505029269855228388873736109045127658571695618548385642349333536543260182734574996735329368850979426537390376615003085450605258871551835479752359074634934921135971855422012965098855930873238901707967821714549099423159712120584061821032333370720801904793192124043728861810350734235221499787827120270029274493770384891577781470862920373914290551384541642703950240671027198787400527119364292582211242955954701795645097487806805671938791239134949884398063239603648540071360108813389273409200473169486167082982022556512167781016507497197520396767097327559601836705362126872017446315714658481900870892775101046041307187544048827168294173569067813680115915638491623536633703368672006537819804720900523993767096945645823262409829051802635983605147834289071061878153985554485515780115588427560879984359376919672276482881654177708287652461531501944542731662078019597964137838793525928141982351172127766597736595773024631096931277084183874082683590523171445028913156482642924229412041826028787191923476036181453293041480524353165749416194053693348163089866187140479417345493824044937998234421208367235956437934368783506638037507853595328533257494261432212730443465176215562260747105889593925884018413767199574103562903306968067239492714867840717868670785156099089860089030606342253526513409805975687716603174405299429200281433856633652495389471590660198648227874780637006937522882802245082025313777216195665129501296103368539473516900061929468561429193102863953232820584066488617553518271577179453316205129322426887775827899903618204428289387477363749255403731230301009059441489334833779930403068102281066130107975844600308177291197879386130024443526546295780756030878609006096415695087844524217494503313197188935274325753824653596218220582144862915445334160681994956629987793423292018007973494498224297007555740144156397370062209573426370920538126676803581026643095576191712122539332166994943708242957422439595054441033660437773084476579302557177953677022119716167353253187161405308603342332686365056261993811962002963730503900971015083953083955247418137674117781594511983330018091121883321146601361542440737480723783317278174909915713274741375399091687259882295430502411342472079392199236021493310772333838144974563978446322992853187083945692304062875847499396572771352240093456077937097895599832887631867961460751676098435047514667560532750762500501909888114356874319100505032319119696210004026818387053098093169509314342805111434756403002857534902912503262173046009152668619385230090661532052390873369669812669053513914178232546610831881494997184284139196690938005717938203796756111013076458985191170672014752137973452522554355279166070742407380444444304722989912395946483698631037171991791653669695730554416165472516472791176610363835331032567176597601011127634917433485435511012107925552449504776207164512982652260530916003595098100664311298145041269237251579091937424806801797276650206141397036945628834017460311519557943605521179900353983484666599635763998844658313833349304965437479618547428597079491215671768619490319749135925579491313889970838092781796700835862025458604762577840318691998007313493722751997578136502671754901908023095559888424067239398915835043714122972053690866009729657853934870107052505302028634966860846974623018140616506175644174681518426216025192370989866474371061756646708998843140939050020613967901775096659930024670279935071822527354347373048313746940388216082700350026746198067343274231427676342473751688135651280349789782394123178743834692506559083769723519221967761635431957116327353825304890123970440879673904579867798809243518270437455657105802095056156090392905603444763377908563190970793527641447346385553620649739687195696159655046561455460083790829326267094345310685132498175764000644116898128727476476258870140053294093380718616498551589643056132684008882659035004724786630991334316337055145085499448452638730428994761404771516894042268742074939409076413257265535988272119661966273372624381038892155774456470908903619750179300412175580836057597587756041082469219908831282829657420586004055536239257033724961788957175899532117601506347637087178663684081491439627233243358214568479471228644302451774345405139853802921229039892648035816832996674910944137443956171447844964890212109811629370187340896805057904263741392519133451762113185900123669432475560337737527996365067752327638992100978213090644856570206149027965447469441194076219190254050211152897130913865122198213060055049171237859274676041057002640648809160751568523821222771818101249673861138061758634062622699968644009478981945451272312609687738470831860550640732770432752708198597252358271460535849777347387995443236424258026746263823995053200129013851525830631835429628437071134274222295832388348872160158797751557410224663585650531549045007710321253259983496388075250357821407527489071070445039577870615879090810041211535417939879066424421910662835146390513894457751009765228716493260432483493395642362196067557039389006074188729483694619798641014590487516451755133892364083061768758584366030179612410878518960694066321858318598424254833259356236632662388777243648564250884309171070050519274308130843652516534177650445901051590429754061299227452336101019068246614751713768268762295212507473707042224429900815290967196342521691260576723011748792591899601996827173815376548802050298968196046546138998046600572036655670625883788249449979401114607165220431497375398399445513008763809704009661602740416786585939991378999502285987749870587451428384495631640201560491238418535138653343301430475730697666259742130446442317890475727703461972635563347337025296293457622643742485926245798639503663007248956386596791533126032889139290177333807369126388231361310009802198715969554661144407867869195912831736963488495570126025257859710257983076040090827816601285378908741854516740567858080192395629809146358175402562609336542113201733251856856168355953360593436637966592447839839176947725491664864676664528564686198787264269439907562825681911285637101491931996069265687382255185563192430169194318803446867675855033872461642711005679763427149242366247559580749155721251980363939134742776548884670089792905054277220639828299513152249832718142577577952932814985140928816213324250381735324077482534117817594036251485584321275848629391892600212328447344154827139942431651486838748099975732170267272328538727046567504854296102236842982111649632290724346893095577102154840890448559499235746284472948914906427053812496469790625151634802795519786817848569472348999897197361502605241410231544408697795558390884407931780228716997158357968393098385365471076865807774725671254980305273271408353681887864812857989783558385299327887449291182595118064725020301351574161061523235782888339555310230832321573230251464787301777631804987312674549558608252475365936340410357162264965707747292375232874264463675157277389146404986285765269023575700080902944014729759323797822427943399300726059025002236022641646422313372378352207389501874942137088682488145330799508088122327379336716378138130860489028194190040446071307483140763593662386543592694519663609300264177253536171088005334642455253024966193137939388396929565860184031906744642910317087791442131013451260827622866438993149585633429647111170110304226373271483205569078244357310546412690716914314129921120941780355700247884490141397478582798503610108449393839551195710743697350143864109674111221918711059940197792550230197453764738886929974927849284197539395776376280497636944652216988008574374567832094416921406645841395141112701004279799101046693652186126916600510037690582715568371259934206676552905544459696235276872794671760919201239451136916390282131484229797950572812806509521776529886423227007243745939504346393907521640689208964754987680923419930889139800933991415860634900090175757640561532970279791869373130291470852304595313620251307997555669819572209077042312970865056284965397425567954782035652014934768441169179041404768015047578529316359563894063608792259711751800276791108826182433878470812966683001796106178604091107518762304463671122993618066377165326751127602879365749546825127595340414215444130223548193104131262333801423312605855674891040993980639967708718579365549700138429468439516556486462673730046997884621478975007649392369491327644227234010944886499574193747247367992954846073003795255966444271748498246425313457659403900602712600496400493516638087639944686032401895914439283727607256481443799826464635322100338647051097430426082491770342004142289716781956548818255503102702782728817111260984478499562996714101107994134358464272011822251215629080285417018308329987495273836811797379761618080858544902995372095862272710347758680362557376156288243457665635072273646012289022105365128740230115478081113099436982195094358319860314314722422553166672634618154344570991677100812421933256240450180664534700913396016150571685950821416269907422516350782994156161981406960518701239430356556345922149377852116867265157702307299029607924322958574388249745381769859857268942209386499074966464487704858372051415772946025802211501408886256323261406322272329107296687245309422947640795379175125188076399532494330697950829184994253450860839971971689057519907113503694597719009922858393148263090884702950883972308444304093870642899678245746320004739820531356447141563124625259999803053200167539867664547287904000431049091946460882495390146971476534980193581473546406876444831057718834849161439942698153746264197460898367132081395663313321731493483208401302476979709088475431947324006996914506964538627869548368479325401374840203528853883739430685754771505809585331349693134484220947442827107884158367157464358640795000416045886563046522576942451776346329348337758947321275008735809468511226856997971534540760874666702864303101109535601286121950350368478655530384150956314612792179240334798422082162753092228795569639934506555763415698487050266692462089184538087918092710361562509420036231770817677362732843396346531869441058260686995139635727799607632499423580501828479588688940134516103170016805017659111208030910380262369419886953088168607241562183760807890374649574278051720243608656518715345481564661026729616504918579593213838825926665410687797291884788811452888474331611340605804057172206361007886937605608531202145076322003869482849530094987095151153555780666515647721450391118330783525595378700624854684398763559210220311176037940802463963307884402498049394535242799720226038373048234854141785089692733335646153354394661465102160922535441982224095665180363720898409472001575059698705884351688474669771394337041869432034117006052007073521828402447621642859401375363729898857916216072176897068702789274921531273135676496318192577772742533655315689731889169169436772362533932075496023495282519923163341293824276061938734781299672706924630281385156117178871699671356841012816004356874275816762777210553814864113808923163490129025315695031172851500927257958054678111583136832544742952790498727210443938592158578922039626728395216383009990488962051858905740160557955073384928701810843706853815624008847001541508433633148665453520226265472715804326531174212988883311190470479792660492177158151019373592147689339476066126434602259965670948059500695909062098877591530896431402699078066009264570072378562917528455309644461798336729481822754837469107473859956130584132655399592938339173693338807042125813791674600150772147274007661375839975622509492621493815666719897193736665020569142251486016502656315283360087979414812412136508517767287564041791108630969106960292956931905417429059231212827977869034716061591171033802017509141648155953496167644668768710044017931090580919936098053833794366679161694397425017638520019383482652473736768152731818033652601657724550226199058453908641217702920387220259803904294641970503583428810923004301584055689368220924808817803987120496736809720388591706413673947654330863459052395328760906711350183549817593885923439741198008902279733915169441208905386472704477854787918268978646220473472316109075626298820135744594035631904025231286070674744252127873315992684167134596285611077549547501394136438361319089753383284071463499968226115852770496649074772078392509462386007974769476009245374439550998930491113018260208599796440772396176972677746730254375972663967685930783237871636751124089184509864176023416656397134664212390045380091226829343784852125108880439899778912757808268007790607991447578393320390235090298525835583858641001276141242806301339025511996864861077113745632234035852871595203608582284149349826960832019043698264826207668063318218353339766557168732152291647835947126811091191717496361776475260416047224501870080460530074987293646758662349765349366681279652685295134597942786727373577553973153609827840895165679652495900350479347148924754323637748548334235373498920328544001751664630289057290791563630297712970037983404059814773094617609980524444391446743507526408537524783443779517144287899129653804506114803073356077375919737908399964679382483250826854978280394017971078876221681517956686304494911863708519517559681098512597565751444267769824909216977257340952967282114065451899509695989704185054779370222730638308693060545737001760952944917178113017205192341955722732588602184106882374742286240303461449882062764919774778309139837299731033674666564395086959943174820257925854264752810162458011972145153919855854760741711161697353411445994432861199308877921407323174855264680330774294585497656557060320975902383799700224833878907256584956472419607904017266526329573519641121204557180756539269773078393269176852765964626232217452456852796626014910592671589385482473575430982853002276824063576129318739501259942559790068735867750109942737145969343612449840101626440454590048925993331188236570013637783822241634792098682834833064459863390839207296488091386750874686512789834693512079971382710565978974792413258784412116136625989680328027622587547517488221464082635989795773959365762491414934042668853090800204937080284581136782922277002593177116203319096173262997511038913985566256802797568695332857575294239862599372175037076489901043404879457750428375053382733159431031199451694024648718149322941138223433292833235515530447176027566074499630288014597608396883964640107519311787606346187483807460356981855560091878685495947373007958673403724796051418672605551339683909557519174070712794778873582409643779842820690544543192567336113367580009973932984147984772665773888992482121899529953593684842309089150925195734939135204586027964548352506018990150863869387537767209995322218432020483525592745127313817929551164645665427273510294797486413058404345049740527813506199447561420016416367990568116048605688995592509897920440746057297990298880328536663063390001540031001504033903803848882723760748449577034151323687558173668216814162162328407667674789308654260522546033519036366874509918238426391749412503396691188516241782333461072638166867765418984344572060821455886402528216951872579693759475046339653535275843781495702006217858335715301881004405113868892730722956572097711892644846348793971428033482903800382374786046028169784735212165218948432251575611207583148262709532795037955308354013587535150980061764319868595022490717491188684891612744895738704348290685921799564763764642580040180731193888641541821545534809621423381026433561251920628375575040212075066964023017638481320395981481935243533165027997136224600948465515031192631549846685890840320314992301278018814617762698902091233436810488073664343094275111153334485704093664855482989669181905322439867908777946191807750060159438348357280996725742869429856762686354361360547796260029470014672166299078187884423140926780919438490055801059079657137698992694196524852954365402006172347572836703943274433629401683555854265791634417516536849952411517229284868894115617703929782005452880944486278836653997782662518941252076423568125670081797972370441956491340558864339258467905009570091408024113880566369467908064195613294417593488131027295687368348730123549349909757211400191457745053580099461640222793167413022835364255941002769168314327439474375602854843161362433555054459584459553518588689716429736472668819595864725667358611571371418639325910573509515094457889459251026190594046837491933973987588855510958412179925910697134534879076649225697459814834623585843047197411831927581009613549692624390809536445339000770354606567501825296979612184126603068119039958744351770207077344538883531578633119571007187563796034158031770880962366712029519674383560022221058833274740702713270933576770985996334194348736117867295207925815973602558649126824120274863662948357079652175189233580421123666783803142293029380046565646948573622973276348700886110459468460393902068266592591259540896468985153864291273902883198739008637975505913886726470189878937648711841010809644991512366996078373474252553426062505323978305254788459288558135040380832703311933271951603887452817065245441035435990845855670429723767895954148005684248936376273774273885969853768795269769816596968195860865411008405695659830503423941063031087939879564705767530250300552770828727603514978501015251696220295375512037103096707828671766854977694870375320941787483925054406699767474011052577613134852732553911103896449436046478177330653534750440041547590174659290658044032390209884187065252379983888813997532947094721579147571410517211324930958626009916291420487599972855859947451783372965776815962843127075694211534578316427681019074374394749587963306377198877656348218968531154864995353408036081501534400637807106606955614037372553510528189379080531441627029749845995186651515528016402626212526182774272670859997945569535338956095168329536796595394986674669871889528681374287323946321621344979592791886146834134572784307085401335193189911241985750574496194173658823189292362902562092445308829140815922474067253722081018655717891787752936755826119586855531183195906571715593044344155731501221391090201630523758283674981195488264330476493842953890362017226926625215714788431100422799881050529779280670024324780730683510317036958906036820260749884631636202883161662311038434244526782534526436084802515633718574734117216560422837473971854830132417996756160752739356535495707831776175981197062703055804302824192252404840385175541127190929783985457800160213377805659934356619406649420497756471483162308855480158542733914636580859358692782197444850077197287354140593363808886158111911518498045845286766613880253015338518140354260762072114605258835279416455171626009839241581680981538715672198443161347969084413039001780391504752735035904855600205365574483220960414171844186269812233462112104761000242467765593320242213624890114396653666952723835812466281487918654929070824696536216712431698253286633590613238515660777218194031662505271545941867276558744496791194910879194137798762028056501525811707427614866891582181681052441704812336739972881244689485035216777239524392463612982004870127007136493264297405017258424808676132271598189023024797399320281734386266763731189190284043992267608368245325434874864849406332828757283914162333385433053267040065266478081520292628343415443181142829027728769259073647994229088866026487769965339781643459725751279020825494716519781464193598009128919060444742595913005012583352218495647438417521668049902384074292782140014212838317656371221160460334977660275446708118913807575057757097516700428727360025325786974222532578636359917862080699753271647736410388303065509674483546941859451967413865169577890053544446725423024960939576183459893511081941236598178095447931555665480248334544154135337127366215737433773134876399473331587158680284951355986328373994832519877869028843756552896027365688268738950701952698426109756817049126864166708974268086155085045255600441782029121727121270129030063021831648632500795450002526342041858618086748156525433723083665090240889063692424322619308731279845857713757236350320802027272144934957686286798789666019372933823928089828155957483408995953309415330366104354127651923331080504687419037391281958991850288560626927492219368768176998154439810335144010391807843769710561952252165634055577252754414773396049454058385663198084370931137121724675244897686289319306673963773265770273143724600615058037776829538534678205940051981788956018940604960987161489987701472503812149150863403096558290436581197464719133397237735135404410848126173671634850756076921954736245002546354176105151253111755532148615195831583802413835168861910587156007818540966187256076147355101368758732336305292652927397132716962302299554030206993403824903990973857679074245333259425089676265129358046374417407894260746927664867205277293328764761441221857584193679076047343111615081180760220402112151679502771451270079186074405085368535010998133544653034572197985637007400473549464901266931060906379452779044581534899315048588878419269517503476494680193436975892132612555400798546603429438731833105464223120216985677080626255983492618682753027168860859912315767856786710364815674249525876623871000469687317334308698898629881181638850868545854142248451913183919076054055372045143944090223964897008334594791846786079614311337191267990373519641239358092868930093272310409630533020508273512165249439193600671528909187112785861041297269795772160459584217317013792425935385736568906336490595896579157618821276407862834332281248781516438689283765675054213342083934375063978800007966302648261504224221642925956504642415116254129931496067712559478726272340090229858128704915048068405473166033659947097094884814912985241219124720902648180783540312692383588344361220326060776626936570857195993429035358616969175671539732308238545091938434845888138226490022175963101300769106567103968746805137764647614725235618508556562162032578357832548088086198881685982472739619435247970170980249770632673872675446131268520978947353850723666870164741381847236637621463351729660077377894301180217220241438489583196967573479291471571453181527554924411668351187860957029959391751734283115718311810995618413445446453066658996867577914340903885348292618467872090902898671790938002511428797505614688828512981995744176282971433843231706487480949671131725101171833506827055068508438573342474480872557133258523363057470970663358919263164141737461819895441048273001425248526604863521342453514811271370225167597991489754591643200843992700034810951679302473746105295133206559692053637205790846936016535708269672744648135906347807859962061983299557861695285395580482617910778546978738012338994045931069002581999123086938811001048223088532088035225162125906091863148816365232891156932910533050724284978068937842363604046980392686245595227633677800449640017799437054642890405171186880123916651499479311392747326932628861155300026691661117742765601146859191030947842319633202521227371425123125472675649767456225067642036822406043988401812269045294017442667917881303877673293310016653724640124814914537255662997271522202397127338076184149427332270431162796126504378321555914036331125246546644748099511786971982783711988495354723943139771090417868364117413471471999524209172539443583054126763429985652003193749561590217811803799476889451157710368507280954762185229000815291464543826682795477752567334686457771285502137782360670718222959521497974150568977919574592605547426653356463212680943475158242509808887357259385027384163495773362700944484886002732565203674162679284787018371973098757375291216915496951103254706896211545911364337430890116469778365167730465285696068333498262933737235243975900459979459023430881457783017524900090693011812356460960437176722993151351771366897374646273376811284004495247229199483373389410240376464133424832745260293070402513348141611986440710766543567528745954953474677164232845977936695045754356721072632970990736592677258967970559467839274177158222908928040094092594161612929529648835739593259000129103008014504413717817005978109528170764443517411991466738067079520338454371197626230416425734564765346599049610740942614740579787278395754595168148102881276531248005528238490544279189175298309890515593124935749722243716419980283660364958058446367902881477821608236492576408633992585105785544676252810805056984422035378999660836333468456325273405272528685537196973517588043078477872078278227267485730797957872703032786537410321299697308858124397509507422687255261341472765385791786632609510541246640124896887871316562098861693083385434625013251814656015036574284740426607789162404504249060229574866087877334292653299596856058653763451030823337635595064400661301674611495361791991461090724495733082616969397014224205322730984821040263084741667329608256524675949568176060599231209316706873617146663351133434980814484530858408417709512623847333810351427418725893062102309893716478914777198586306363831295795884807049015964961534241897870692369641227157604768307292553362178361158082300465142240505654775582407075660430219532489992979187366324365714776180800955919763106952151622135307206081540167291858280256252218197982193372150686410838945311953493930690068033561132808363851278807710503784821936190404155129831847728754164358260778422977309550920641287145839973464017119561059075452824265748987291182314944508542088836270523463895640290317898070045195965496216959755845899034605227492143661671866052483061656168601400868036194946481227555946095160120560696007804882136730268343636377001432394175386087136954299515530059579657028563135477020063160353224723476504034103232563401043881639442461730446540542593599937040541940770915115446904863734379693825402889498801876903055926906307801772293123417267002025692403328644628491476936603629859008881453700357539314821645049332058185073698692910014688158991173216066789121186036884408994081805589153496769949052638157339809046402319193365964729036192252621665828241336767576976625753588562638274618225797276654267573548370685641238116708505037118692484695287749678618896425546804674267429250958112350478329784094849425094552468576318740559026715180051720679949894912993408636771021822165486402791816353016959389392853875960307556319259938719813741136495935360461521814166161993713020393865791148533499416044193504365550938482450748348455108332241163557773029033321749651107969866467514236108221775586137178838770380321776302643951492332843700219326031993321663580678256986713996717110053986872738171666621817944783203077394354577241665531696714512086770399980976382245263067031359210534551962166319138951207329627912165932605424281469196911380511857229743306323067421846717782880045411553612721432374008077634486343173342012555825601518150007429279793658823758852147477027359057281107662389563206477280090473029096468146707649115776829422815043412065282695809277673447478773175387955841451418168600625929959640965588385692731693103877638694600310367149820272803671336385853565764645544404499951874616018612171012864504897822781563886030523157217375546643551821814916443319604864209431265511424390563946398589541643974316976210459104228793491564479988515762124563290018764667914294844016640816924982156911252847696231353090372238806790599001487882230387129846454932826987042548160804160775421419134361997103480697749349551261611453686715305200048067144623336703135240595440435947349403206872345457447203684141753519249173476871756936807567548970219034711243820504046754988075303680016854845280622304852888336143521217468061125818444741598285430092307793266079763949387733205531908590319152382811299457952149166061224973356511616470918336309761158656977645708228387804968609274159176807173622486572992750234167754566800427021933060408290271225993290158163041511847069575195774963146212534898106648720575310068894248826090388726363494956150083079857512586153259448179448643086378116033007533691685258118997657725699202496046467613200082851678375359581459562465031237609884818467938753733261338450985959106651652325761154298692984020777826166433592208378033295086523908067085218875048402918254770046228510459318944041326405606897387909678283208031203045385416354805780232285941291485278358979588398816893083631809393350805328186879148578081407982324577083817131163267134617214380650136728438281295183458755787473790555461290581738258532392155308789449422717821500803898651895032126432174478343105188792279290965780484677964635711836650257174516176564118699796500950417299327533855652535752000456020115530887090540068629424515366699568660564270505104955554398239128756719667478842238630076550981235607949728223571829021953709452634777218463927222079340504193260812404766477763260319408121834499972765073402925758382752828700256649276457034723938804011079862408611223865227413818965381520919736269816484271737781821651614583639806124941693136879448430543523131223648280475741771265257184957347734776735915690749234321831488638824879170636889747442730979336384957667641004137617310413261406298675606658442582501426141847977510381651628893843103351686408400888532006014646290133214820368535053352162360585503163608010260789420963382542921982297496780181882119025486620228616194607591892217260934849100514855972482322651178338214218066452969642058017073110921407618325191018488896904220082248011729320574617954259065060010107874646908454410440034759180597238826294939499627452078585394440366642875816460730242638815959533444823253200945799233529142838388854752823754229151767454840673259311826131212090709206960605815090436127072292767066214319853040722814141555986204453918866500310430650938509510280065416290804063047733217549630873134810530734356319588723676369994495429156638560404043762699196205201809508597036440618170154229673378359850001843960762340603757749799212888472262653409811989435357018649305055752952032725583756972400571426719054771312976170965774765375216069323810282483200802086128434526254361536691533742124017298431038162708364052925219225451277007952670929590032634549145663299900308432894764752728261302670937501068610079688281602067960775704367481970586323304568820617512576603386474420800616458036082926373154491905422543921955569358717240014428439778223750415374586821527038641520909171344006769997627721044731756933469703566336575425044618783028550487837777982845287396475004414593454614886311303856625482179374991725222219725083267747680689966663465358671774848627182788345559950429933319069669516207364995126805226371704352809627044279057214433626515791776153730428884155084122168297333139467793556772805762431580308829011835401287530141038392709093312858914815881373981642911527289472133268566797971098232286719380205008017370728716603859816669781506655497835276292733216845668077815369447611628765262812349123449159854549690868788674203778039247546179365346632656237539844586707427553103513567289296450600711362447764037029540782344419984882697245624662069490002216118332985138550696608427700638526205897459941064836515048628460087355047842301041203695376826695799921047351512938691002654157714356631102441293866473270937020525660942533853623622650630562710487514815829438653800482358177979186177780043849776046449337389979205739427503399381297570026213529022565573348745283094904681137042138343669638070735714427508669032511203442568115246222119375529189383683141835736972874272470071567378615593552299211394936508638951157533948865283917121510225027971528598326301383536264382880757998769522715502162435479190489789288581448193416356548020082247278145815714332411176033506973604583973504155665535572514325950084307132939462233438180637532276648517357394760865757249836189831982169621206618162527548851821646652807617238689422417428472854759966768249897466142946142926340182105058421239667928538688610743309268432467521327225817193856627338375688049969995316678213465005668638980357359791647138391868966084264475280630692973792505770342492921387934171719751785986893929890830253177260919705957196390091170964975333958948726818930639118776847672700031560866395362974304087820150990613335831308444713089811827103520854456925700868766578035561550263216080902611308227632346818647974700577540913108412023294717404670764224546137223978189705507659270900450694122942808192620922227100594257623775010654555429469887002723630797856425232475751876205158831369389514821778914591355296600215469542618167896785719513252900197523597366896649752146957635550921627944243845174524402910762477015777626230226075200427021471718033764490769075975700184915114870053587540266401202228349834235812188300045917448355863088834115718379766710240724574772046659344197752721951612310177174771629683390786467371483267721651803935499717677301411805533072613844378279864650393144170953206650275030147658849641363773533496213362464226916150287718988871491182819095612860884761125535905935105413384183279805525891904610803935527854259586103824215505686472773928848201870793846069213271944428960771851225040417955601508886253399901383340256348437032282809240011862120698814711246117910893543433397108750899616051149591845146473758788737443370069826546995040247839540028705765766793211745314742816689726183909129598596341027193289974197042534738951744923949232762848080556368957422617723451498957188691406067688857333845497407543272319212609956624534347377840832132033253328556407216040395694311940792091568705169438865975624612683935006061485824820167937546138325118124060409701295411418964887729058711490404581586945791607894991903029491481327434747401464574338429897396052735492505636394493108679865433855327793057447378263906066979517128921356983916489705487353209188247479135178281634908832360905498533819116973308839096461218044125078765603791785855329264516857099338265823219723056595489234492550522602668259304304463850049344182382874488250663028558656450412613041439999470293373685458436347172675510975186594544129425692672548212384471347031912420646192368318179350512046938105944170134372455747988190787719998690713941293420707980932117300274270869472539627535765776379663256001914634497234432723906081592396072167507350905631798650352097629903491510797816470836548459442384627570810946796373362664579182708850936001339230249349605549661918739993188790083615408808035282209162561231694805612166344853507336410518350842251307164844185675069053433612081437570515214583188336422365754925835538936302526816269553095339283130044307797371808152637138788088702451941433002775008756789651996355234877565688945298408321970160535239171261386243554728858045999119433518013464019599839218924658349432949170492737757196378024162050691225428933136046183808098183869446503047314953958683739330002899116107549220862144552330615870848318443396136046799181115946089367582312908453412805129033818108715582563999935958153655062427643525474645982898887321272125407021420455882223704561390453859394949851596264500163104458218907128654980488973790628634839209980988868863273415034802949349375564617461690080902606068616466902290738348953558043177733333647467639616991870372194631904511658958833862978998331804443043872572257923621067021315971773488495910065410261277498107996975775966448618528274661465061866184637963807812774149706819578597615865067189743395768443716311461773760387516699545171934769026709435149894839624108398904395623232595787507716001030304608476553959042602789924188791951223705695580934461770774951146522319453808165419783028869835136288723426073810312784390823909437791010047460476037021391459118928180721672042383951913149892830286908728697748189994071834820491927651927626494069325412198846203513819480584384695415575797451258228886933054548430921592657401964570696876928245436917025451391685071804445936960761942923007022535266978694436307035080455505654913605255392465390268135121664756363625710644387687337650340028672262058678114342358817032380449785807058122964238002296551289262276630087526489099224910695376901696467859510177986556384492295278970207530669057569555934497093505290758150894648501696438962949282955514187175888657269270793956139369163737618431191394395803595897930072050404251283655084022050165602771862040270414801664184106113977300365661080713736408892552695531341269520058196637660078227598915434901954573525582845913999755036002119130391041002880459715768308579497960047208892518649497575398699712906876062341224761371461191650121365503812204618431033111250121641378866942786707354954318535789534137810162192812909925211849907478342417528549057701074171447825305277357663721672043809293689495196317536390422186608099951912905347962222334858006335356267842037098952757928258544679088278582843368770863351177486309002144879717891076007755132481390416584102958463912214715907856515392894402049862814889185095526892074644575395091759333065438767324335796532514767582635799146323186512942582652445685580637624401354944919828675534755249560113868281020232191485619162597883159928249724594971179729593498013851517216577208196235958868879413724429536491397468141685169416280443321352542901252685612486402345281688568327680309148939264063272261425387943448906418114374885866067819969633327882523101034508498056053379295349692871126274296325387715519456942005091295182166685564937069679492570921104242900735027243049757879663844088107436698079333763310851965697214880847270583622854859050926927614285097554605790736067292101787260374801637734486655289989166300592225831938468097366153819474594693161020532409130838217904004591244995637634589637001932662323080589178834824070109911137347708798919148851571124964619692429930329170114894852927868174533306768161402800767956898516862409278749016919838588031558930361418705600585258791269123071160405495097787861623420764667952051031646861456811043547991855759721194819455617769522493788092788028452717683238303702644114996015295491052920020143605273661441423085228857415802245830070022848845740148501067419709182455702543152731291209564957238193485491900569637560002096865597463094405474682385961960084067830954584749750515291915437620948823135402656880942255700491519484341556832357006758825173844816224980338752541176400768711172801290372257565023503400158458863929763918303057557216058424587146127488138939806550724327965607303204089253175717425653679865090403278393478349593108598256001648456023817056406923810385803645626618418966397237566375674946938031319940958942912848125887787701675403955030538746098775411439144652969544971544172604823401565445377247762045390798887910758322427214628385269135492498622830198548490748888289068567804455064380274659678508148920986281820726958839485606038292625297133301017113939825653985577339791422254762731300492613579346076280200956968091554481875039605769690203762948874872559595302067042421790457709674572523267154319337146720205883411943157952303219010033713268694204081097046358596560313529975452052651611813214901336167995605534037232373494963964357189740100715645419655640410953860965173752441718946610681587285727819079552470021632329596889616510069699948994405033049220595145376457812977023479076891652236276909352716502841334954567081251592478100778780126734960108612354621500186229238364418094593725424150379111218173697561492703184630885674701639780675724879161375537135341183910600751603532197045883493902181701127436235650655803882450259319425386238165720203294249310450259529318742368356069520483786601032648357723205692182341529625166675383320342029255565404316885829996295642359026136003222731854447835536289742572597474384312561307987794747307520529989216720709949882310288478018513939747031582861721361571881122377291175531588625541780211562153091031598086144322507652317561157346495969947082754804683576137635746757104842652870684776637701582248849250081194129090059044710895499663603470512171141827040854113838658616582417695584559061684125375865462935234255901870081196893379603025544442000997913291876576101876136924815482160723466343618931358266738080114285054237363812020863132012678263191755501732379372719583669241215001232631828555340287689435796217185083392971472283177073869473100998589793235694137951753627295898130213022498970894937648906834857586103560794196825306959235072212239939441199697283688839852395716503327735667423825055684030925510170801193008828091719667989230072147238847938564050416855182886243780819306390494101174583583168612915246649574368608427171021464538445332950782213252640367280140834041030594285897368901462751209227489289103211198534844150247956311595408360362863236784141145742293254830392893733618712219009810749528338101643964980745315943599234071078204403097742496287909728544147484828354787496537994048315151384774123653532003068075145121748370848425731870905513473955350948628860107408871972045004144913658492391555293597616686182729990695287361749143472874232300285270231566625994711573806367730214312502114582380646231528612777074086847216163897591198296991341201671624425348501430477471855898634873192390558129472996815872385117777452627889068619819252281752989850658493986933202454679155696570454485228056490132533719662619403715007597860952230695270569685115330065089208463833897853751549569485187005025706837251452356073912533445490019166558905337992740552137277323646548187664987230096781492144277607542596421035802399554432289486182791364967262475731390769063604362148764594563002671630046581352100261449285211736418182429096507606505205540724432811774261388313269968395006649747264089689424820560172911718024973535580212781659012603736967573163177859324940878835477109679034791112612204057936583237200738719086408242099372948424415286042580935301899321110758210361939059672588876083067077046736899156037697192372006771572225513461214055737268528286213020307164244412487398081328295686142202031311044355658010974642251405528513038674349308237396614166770797959169042497933521848158110233024220686425142798420618862176704239692796216432676642413441254236175445033165898877205669206019533447694373658188244493919481071678783602650868993970099237657175946644951182519131730995245543683814156732331245309640707582874404696570311573732733819359940524315117450551122345321574979044939973316075341838183642157194892978091872177868501570431837722875486538951158541630957390542327316245366353736397271031506172918083281015933323111406525735694704976168238489878800520890949246084237096645484610878039105458274265423127126734569613043445670985225446893012159282039526015129538827263149933119718505906695480914276453602932770812872537396000496845603759454840461824884190900243817981343493194552519708821465137772174842946275096377920883712993753632201545591820465139020628081656807628726758569863892774599034860126764624098982052469574506548124233701009835885115155868041233567092409471069860939133825551438708388383092956395453800352085363001085530481117703768588493906335913267533162874124094402023946735422433765892454585647438117252808630538632477588621379284252384831919352744144794460930747828964502914960064825585520151091960500835042735972351198214647955955824945033418187954108248951304287261754820011806747213030795431771177565799560787676759671000997440535702511314559780125734993357850185746728594009811429623822923991216286433116636537847099348740229916549138741121717147043500111397418150112588923853466063182047169380135269905024752867907246001749524108679220803473561585618329513210363160158154449839662826425470802497156955868089115708049459441331717593814432806886039272978198573577856103761663804667921913392408039429445216595068469807348132551623561515475723094324495689710313343402215395213261122740348560754726447985054697516851812449994104982084948690142216067151192344184423470691521681232067012363085041513487432804637796627990946256939433584894801596158269516143390687795459379050012228444841948594300059560633447178612795024319528825500598231494617578849701588118396604446555881117227157204476560774281800334652674035771795280861775589931323178442625368616905959619345000127985854775309903870359684982244756613541744192512504570751078661337780580514087674411274392933011294685620870035760519063664559326155086421867748339114842738837540416346938836467056600259924274050433036046845529647842632491737642067153690658804682519274764062033068312340790089555047733975706753404345334219883056464828294946150700240723088776819468753077200304286019284424133063388243638755213259781255834206623017846790144518656461520448242491607039577501187316288281442770195650823964829208728841910177219915947630845832330335504960726250573791955936376717949129979791119003359840662124438302227212358821765388946860038637997090480298834165859141990750218547943240444967717941494406755905419341574706609555147210580515260912507310005354099273922547412815544474122611351330248067485034342422339654150237045341982251662435842143739031488650424636318780649873833395607227201816531015345845665157822199379683063963672762960206171903622198554771698228081076585014738844240635968530605097971672539369151687524300416772665307324389378034871146927251184372631799745601320289300256059617635603800103485357043937454913596684540377725696070692087238799185612829836836456706560371580583392854864478889425342870833280975204690945277158071431795536371204049907827602241832010173293473007249213238910168066135659265996300608677679839550196753788334703238760149352439114779394075607046693288345393998255813759188164107207085565745317504697504818223319957668859218136955712077586774165897592890052821881694621186241052707102407885457052128657419960486551682777282865146526984449813268945662197009096637173504283755096463163408173879564800015626855269481225206763761300635547686081039213146727151223612965028884416112840543164662441409669572831774463252512015179016470581290046661064640403819702887467245461336230357989880387264758879249031793233719844034561971885970173626277903505093290451958928963224344514197567443010556668915390247321912200925375347026641202313646773801765774432192233959148913354491641154814192161220533907278007252957364847445651916544646437117973341647821718330985722196242330955735590294891056795403945973998043422972409315444997593520625131431504575445280296356129175894541168311795049078160940941501183277185287629855242529042173264282230572220480485423768422952076732663360633937950856298212847064056486752704167545872710597343973704133412696753095834871191850395853226329785436649026793631790948783833972577282999445349297566908594726299229008450904391701505314648421677289348579891889915052750222953253421179318073028224665616524002448313130235108135998224322724705938973374906156308334119107911342515873413458366453645488642983291043911419964760025787675882764890904202007348539302672537038334778359498330086853009368044448761471930453589640853621061867038078070732169933162926079676463511899928237278124514290000695249671003579081775888052779809655983223346945189248833408207721292030505677102685631376865082287923586486573808573790446345067244955477232678954029883825262135250862531679838972572730057259413806968265957777671412034361644507871435582346195462652019572866610251215977793323954526770503804621552619542134867973739576632951303080955163608271272542719831100451196061066687845140706380110117336821267474046185807652203961124867245866636536343490918504319185893651424361740687298528801802495849024120107905959220277352812582940457030045894916474912209370489572639222125956582491541607288805329848456341689305551156159042246148522896909499023383639294288375620987886746624965184139229329315489767913300428595472077330734640745666042727286340381048555358268254195591137137205729795804859653962215253642497708714297711913733015192210130236068613887928218122379073378629548819380087757113571547941626647340428382654013150331953426329005536636007571757170790283047222283682258131542457390422842570869046111330416963357489000827695471208794201080259986856289932099044411636627406545670457003788929296539553074270779911515865838195175449784471587763575501365409323878702604584725536469629325839413359090677625554634508791194355280668124330354333797720824686331358423956303125299881961049767999539452193314991032984101887479572162223719616198136195357325995174203044854680580408025090275011824469484843543438275395115937447647613394553713749446687486604151141463781163669432724817523250975312521572581345795346091069012239411292952943482021099054910821816720010733648890869119611206270995909939331320920400062639432997502495965361644840324027276134777882739765247952577403872054711578882927836879966842583485046227419519486399221507819832249335786508604683641753849278348636036273299872737434083137034085575209718394091334940555752864841529080920300085950782738840338896456921629900242759876145247164386874243415065132405413465531373801681466103971491342661771809594553401340183520130704585236044250987103477426922774943967695596904690613505722224696144207128010443674802023016551017550273595824616372295204588058840310832815892263841500347236274168911839744197456411951507881595898980768696633882006152505463270184704215987063560719097203270763780608994086334174182168127635944288541898402362198926670894426474380355394190545849614600839205515878040242569821694669600429398049401192653324920085965844579326860099079046572742568772760847821074244312046597218876434604385324540862837048702926787170420263738790031832853372198920755108522466428174853650118801744238609427388382234324717185710067318236833000547790178459624104863080106993993000713047732920619735043407866512462506091910879832024311701291105357838536939346083412301449378171890603694739827871098189129676129596663165378840992036591206343348971213741152837372158058092126029145687681348500875724467216429883283824972147426129043619310606337980284568746324961556927801388517885627973761564081222099737935271823247556644156297151615370641804763104678501104839568595017228545235926037306983242696522692091972372912673123808207245492040168237466093025080907894574349754122162670984692888351160609719797087228781311433259316675377124061055046378128733773697644713634845890861091955429540092142167399084467100108005771487083881719480163966370004086038923803694458229899196205625582457294586967063659961699127729861121141254782407408327953971683317579936863550398615347771527077744908139027542551854897013279010060380032664360287152584495776549764412419744863601132915372445090046535337832784823705580709092100506073810566516587645506599729770444533786433751206292029618344249560734887262658508390503091261987862152885790707843921723859445438629135604403773291035242154336505928246388381255350089947128456828460369504801568492783194826301109278910940424387410819268794016601395117423463330699395803599660736662603895292929209962475671015039812006474940457087903719372267920684331392236957991774084353514938944436126058296431507708479864469930668032551964782320402584441043836063674038493894633041149057996539764557860261257778989456256822598435427071899552778250516214619066650409977491504415295113501180742362712161558288426711547098672999847283313807576137918478049331530460120922171662354944020320863317400875183945100501064742936139388692651107164007143478875652133508309296583226825337720278106872106515361971082550565281502163897743255298772097480546912638089200943280054079964491186756748098467533088961466802718372176563653041991562203618808258740902545773421826845268536042985022391154115155442653416367657700207885945668951254769558845917704212468564563642033041820348520618711793643041435707912718542804035674817648391394188525774884430625998781527705405660422729879176615854050088379484239171484233971571931316966581527152080748665489269170143645280218090928177685702800369103528951294971741205732037636102617132302151819016782599254432027047714626070563658620974354289478646842669391059608533418137194012473748035537820805771391053074986261101877591101015980194206068961112730390076720909975897067566981738874628455696946675103159197268785553690513330646989319722079446560256219499873093623160128983010141727627326193687980970266173548822715654102078818551390724291847226709868457997238757918588805168110859611145108587684348626348209873469217047147125997851959912109608657317464935470417961543209027984419819979440824036570563830730157999938211328052821684319147761016058412369134541549716916559026591829832220878095427316999542440406923305293768460424362627955881406604452130855609265084691063301255307507519412952783928882211995287016029052113453183932693277952756177450752818663516380980038034869264391967575036610729570664979546537606793164600808314799190219997336739262853180863572953783453801975256475445941353831672458471755665026014146819781183429801609020964883312514085264625225252909781643896058940503412308682386060141695854401793876381318446563534036503262811728705096073709227822007276668313689256889497769054356954930308234790986697501466373917990926935308049768823178524564773661092818418302681440260130964097671215490757608662880636620617154953304565840557041426742347862457296127797977889516326499279572842466847880928323427371017901673278541725249012692724480161792562536579025819250991247728293394725482471905351902774557010293353516151541233030324369856178832884252299170081080596706710280797826214996611294269739190235835739368364828048717871948285071820781681744030337838555788283628165158259865664181296861279464397176671425144370427075160150432432812422292732679519990108536540984723879223187910028746671465035596769142372257811445335456542182666514949236552198208813408995447093445126452630699166324978193956080259048926295455306981749839309438618306865781815196841937053312206138287358353721909512549115588355574972357555417394949807811392153603167597129043568039618827858045155586639854445182431031377627261248497366116710347993067387956285976286105481856420129317358431325157253753206519221819932081047751515559407897750506444182173539029589785240241526979354285888597678111895880011234397439366840210172789166007217310974898778516202208032531609786784537583979648948583686171229270033067493122587806589776267846277452178505695518381072509981098068907536115268402971243860907276989879132548067470510929608308440853659257106267659161852647755137706555190723119760847368472366737888660785232375444433590275037886373346784438356012585334642834390541729332997497287037034461605592250440619601306118593244682111439532039590550675651147235820847140489049672818300963446904975592740541268679794994602482116127869783853591757140393096016755058162397379413481845139844395200759697608554198428671291600420147355783564846532579040090698621971362321362025703347173775874506224184697860486817998520921998731978021398506658497735627268273129843986169779196961666640843601876908751749857725152257775747949571191718916428070019576157959322875074989806219752118606115289854348722064013546796100405304540057482331948685762299292205667491962284208534711272518139404933718203115765200030092819453904719425849487449633789854775556461650234741527718763408467194306730897228203617493183674130425243872165709735114962753258429494937659082446617077806377419180792387686112064662552685209707554477502461566413405946248521412068847941995252656216168138486665270778843376707890787000159763451436372373020605751360536607578218197722698732539294559310112081922242222421888963666432161996348215499970438641801930145769058304383552338342708192435390919670597856127389944534941526793927900634915955689588173111327493575901576809616195956995264526462546532437337177645694569552781713211839908063532406484840935409734091507963778482724683455767543677149270678378537702537992468157758053135870243931842271621303947730232960359659651500488800293911357573970829345055545731882685160797205362375747154886652806757643468372558004152136780243094984840185397411936650900955695702181915339653631486369058289865231830886733008327829948909539883944119702014550488969214597928410442063101353461437586957726864000311689520535326146305714990586847612926404724789325629640210559289169751621897616348885814597576740511559520737557413474922410938408117676847415091710658497032233978205032644795986194317200468136361147226244457499031965457692078926383100664081257214907456703667363930415351835207353049182957538820010777384952758326228227994381402483648343827438837896271448616812694542440387724841696887788381873174412337068510739507214647775537045345838093940876754134147206261870311515869760742115368393362241140489970292854892250849630293641062526134656768968665756934748878523269554604486331751728132937047550040315599620907528026153987809426871052480635571581814329341073851815123826334561935667101693451676634448710429571245837537482155541736891543241346242332879555546070569460777445804703312026174601537032057272162400535830729638135485039055560686707567178139767716161196985376791500707109072992338099750531551644014908558465431247770123914496337984207336191046839319752048973963864091689815850494811067691015123275571480054761833530265802779197500318934862949630661733225634952883196538775452683030867052909754340920715241078109944342164393062867606338173481679721691485965458922639933673153130361062229335632639040777693231932941569495689006802733952381663512049473596153790803779784142869005451195558342274447885187298134473096429607059683974207950597287969859239827829450079266753114062390107422807798394109232202948441744934976452440268050284415823764230071333144538654907153676042570559400981023279788008958249205279928722189357178305871437016227506812587781769123347414405458815387152445137349182799422141255748192783873001293381430596212237089470354161689784529305649986200027817468716087717298593756382745667573797706411482535925209583230878559013061481502162784955902144264794606970024229201184569368689729410344117327709840545369238651732521046561326505414254248362158181082313773520620810829759031656583509663046441879593103221366993226242418458062739315609703472425604550556877656177958035224825286218028965675626943604275256612166037797380293966197107340410473638533616103646736910014178780329376984298887159672985285497191304191534773830357729243611187708606000013855719315344382164045150065085190313036254958980843406075978955730122350725251831158442782889716375469286575152605540828321372517486095965872992119486224743930257301182703341624528227784542838667083003610246980814826254981078072877792659594082629532439910264154209793693641855744545408335621425268960420268936383089341145407314324372048333015804225729817712725703243801668408363148926352072118992788191478636615057591240037718794900962374944245253602836724794567558782309100975849849326049785030595928669782963417826918753043643264736443587527318825468930313864582843724182451611917205243108785276974232025585696045607637659680073510645754363009217624979133704358201962917450382437469647577833727231675184159754062967900906166839089851294029396117170818746877816883404647522221818924708721673349138657412452042420958089350905534628642701397757669173711072387973204272245402406561746586838826994585863202780642683593343212432619592013710084731556866062354282090800779554510698216421147682109141189125482077305249752289353744597383012274490283615500930611545861041906216075996708312260576027210260467841936475751272190173173400489155638223932250428864742379545261409780066392770508227742876089391348175662160700816738767496579485071468741173914167500936351220065798871138931262243654078094576853326530143182037681743995211819262189129283618475271388839733762901477790897836529359734670293828988434109301971031943147158953420402028667398863360732063191904222329482408600104360057162674695408935061342884309681000976884094951096940527656151193804571225711886075778022235955779625848091137090405062815489993096579782978342838633455918178089306229003209396795183259572352251044005651987621108138711066753043665180030493926317312448767845995011032938063978517897093693661989180080381060891828708566183909804100465290173478262696601635041144450498266088462298179210159146768733390155401733133990158910083757158401993657451243082202675905025652651068576184546355994835402174035608724355155091659934253877256047060597238187786660136800081263639233580877859262018333211281797992450863793704757575109076266946078608071154889464395950255295569843966806410597016585145015206415352377664473665830822341536213858191891838616335806803564029755140683105320586992207303267538431174058892717275726531475162428054564679410703248348273979080444544702558777217001378078917534252553806831181122509885497672066284254717890761906540610428478615401343300259592420817766671701117201237105742106926086294160218492465002756803009636480409678344446550479364893482211726800595875023060847077879165063730100575709618743950008539828698654635773688827761868778240080165324569762686252768571886642601673419528224408121904221640050557737202998298299789201444356585346208046663799671338709290755731968407914189392418026604768969436136736218112257610135024940532550193703017461106173441340152201225162449308760102941638047205201239926110278270912146729599655802097403234071561190946232634003671106395994647414552384731636298125331422047514320680843684068747231915720900857932565811512867361914385179505464268450854880992139644920803066287270367704790711546764467740167782701856631131433179172232314738688784602433768127642898936558279375978305200959969942121367330014642644256547711291926153227279836650996038735448742841277675324320790410751501848569831966841002506077484850732414892069512256904740439602611983280863634072184604202201411885336420976776802274755503816157342226870886106481588159100512465879680877294582779248176511443751225869138675814493715671836236819414127623726871760186916588558633024417264248518631655276013617118348540788255419017822834601535501524619491608871322423803668065568984143353015986476774056597683688659918568356758596035202643605208942223336118734251007469987208843807071308970405433629744722485338243291538707736757126735518680699261303755721101429691448546286004970380305436647981670576694021916381368734267702224009293917083719751804951796534653592493945327618448919013113612976191910557874507851268861109543482293616892242595893036337391346482303016389364472267921844540093293029751513369348010975028116081800510148255515183652140406804637919138785068175890212733090194816666218907794266848541626943191024026050129869691722557566839865833873740316776003328289751899355020900809689149269427045766770010216912949747770919984193961401142776874508898800967212642473662475592779242351774119912385787957777421780729900469047616890680834615247206556109789098009351133953490381505021090855289353480534970793404445111477202233378883161636652333344200818384044670536121720603813123075621484955060628443044506165035800931965873098768976290661972995639296374838911803025269891468149423619282774358316962453361897484134624901001288508921160712503541504123892234433763888585647267935573979655693936046700417893192768826851250458658275095741905578724643191516372016273881644124583444097988206356681260589633501820054182415404785958809237288826179561983445748489775229672204618058742893018761614896483009878479343445642186785378216096761454054528414004141197594265236365188952150364719137377007156346343448428259407216275046230743829605722522630614189367560928480647687614730267453657374939403473425977190955694338939410794024787202852964920359030595785192877284914658148126395932137763667696059765576555472334412685294702389352653463896341823349772621273211138185184260420849019137240893239757282466164069629977728013700565309286630374764181680812800225781243796256741388950300688792384219894035651371540127659876340290376963071476052575057776128810043241713043990915817325509887332778227506940807004563807908979333778340533053913856113661306704567347888441356494193350060327344271695078552829106066545564772062976534939829886318239075112227233411741083589340933487077580859658680495095822430098305247027577350369269719081297721015110661329972425516765529182618466907882219170709223705275918235888930388564161850812135614842969971604020172369544899797951608220442563925345776989124298767771978146390416793616328084207309855715128796852828332606145292622390071765512092458503101894198450817059704100377574069902850993912964003814356426689371329822156375465068178787653968292310889433576744222200505117173439479653816361879896712157257224002507466765288518869173089747515527530300378909773766007691935076575678875643719282262684296047068491127062291730928535506438844035389919272093709178643897029954680141312418648405309865210191122302204294710034038166927509513643437663200671268641023037662533460451816755628933326640335199145014595210776787893755612749037886394929170080108447596399404536556250480181186045138068786774498853367362674869815929567834602525740227617962338468499444523934292227713236889076288330719193013186614951368626866968285523900150400353377021900625401741916977431912037691551310985815185203398008932390973130414124674661322833655004524367265618070722719168375618744751084285063872513726129242933397738977679172265115108928262491904817416798296968391884522135034969860099478771593596800158227721942630331950790295853757119584766877835013800058894588349848634396990206895346863848472129474116720685017183447311232320579639633745795214213727202096514802643414189157582341019905835053340906824441465414817177093514575644565687281995889831284755361249325026408319053821951353100241829996981310121165010401315955364302295318733433895081143560975396989567533784441942615619081512693646839144571547501409900459199235716840190601823104198567338145279785230698429525182932247511261845895387417150415219668543384964184448281479243884128442348481412054355463488732912434752128681082423271868809282913819134052253933188998240279018134939107008307498179836459037932426471635594971824907899881807590367729153759784122689826016455327963295377180564511560423958277920022292228760403511933115076426274064782917778210331308182156031301523996504634465496940793117940897602598743008631475750038087920722236656041299763786462338657602320256788566062746812795040076009572398910067208013839182757632723603264160923438463098871306129561843651409407562742559603098803448847947214310437001070498186215370315559116537822262356810140945237735286692009691173507013437067607992761498160706186605020144682585277211083009378202275893215459239064743115308414006648836929862016485216911305181751336434201142768253339073993180338013191896195430751052758764667654882651586405595919253982774039588029197778280556881699787191849688765558649789070647649341351566034177152617542769767097569286558589938097064469309326283179849510173107161390059740916756187797585066228303781126936394434320764075129699161439232259232591080614790447994199097080327881942340553741927577270265495055027794202739527516972795964492947489530537875379641809071580919988548825684564869044673240680557469249601590885070624244673844329263116110617111479577544248321280343956153048813776084208701723427412519446198301326571714315515875176252677693451065872384644676172436162598110875526969949184031733489576415425243014817794098141280567105723332847437011432359171686613676922794627022302109186649804417854780569724057882422163336309785859545191398032785291124463547855223775150845573294732770556835004078234765306493825024356139521991797284407193548178253169852313370003399507983270752996402065113484044766774748166853904838994413897494498719632181276876868705907409795275902006675886760284123195062753960805780899001150011084878565031948339500133601787323203139095544717857679848825458154993154231300859105457114271535914760345849835308721667760003686655060904053449926771680708820292478991847404156195714558974114635333999080650236117970937279626305835320258029239245316731364051000533078663172893672602255504549200393168234289899433547865404119173497924712800474036361441555548720162967751508699951630100458294994964162962205487965371025823441340720603062659485876891085030121578507095015568221001966043680149831537048532734012964331514446999678441700319427762623583352960108585194935036464167652537168675505125045947609239780025077435190679718508760194862339754878762433299849197498190695982418376660809791156583936937913263404516657329021288856207517471948934192506175938053207626688428428174469042566840994001457372872429331261370542020263572178463354355717163840507829347639505818163386011943918269068280156623404670328403520213145631508809194357421891105277832713571360275919930857457305145425582514793320384783111875646539129089083394294350819471512915952271375643339777746362719005082294124003248745797595372208274224063271201462174261263978187985256625511866448651492112249378446341461174012734917358513438090290148083648031131496101839754642650907778150641821175384538673324004640686614235168976768580215186046199990994384270112995343829446241580317083264828149720893324001996861219121594917520733731345088313518518205493415686966962492578016588710907469397480047246155225597365916381485127898861517984914242857498367889566605149388432705938982441243381194770772204081132871170241791797469615133280545496661350523320361546862244349722228624256403796486067211539040944095858234934840707093578574151682317245130889088948241882499253038130771667640391447992221796528139709955922820335003362591067671652538831992113476247734797959885167512170090201298769134505562496120441583119970171648500894756291248908618073827112842134534472479938790862659930163589430480355633815656887229642872708411599924113197886825385154730838127379642693842796967814628101693135059738360353596518230172183425160987608070523222543454054987756597824411130679829897727129417088283870497492898912300058267770267590777170758216815203987758835104689583955094278336957138991428890941308962611960824359540721000908467235846590131424314099960918790729303944543156871154579799004107864181478001624724623040198135926311610710911020061641167370727351800412273124303440069164945998020122958269223718309366473898185786285845249716724613592064001378140256836316625729556607489112408561830514791689799909299138320351278348860891527802679371817388095456205862305609639661267873469077973464438337328819256274871615045602997223088794735989498963878874639311324697541089562571804805991958259991609881219566519569068702573686990054800621535813001913669545396775895079123805479519116927265058375269646956371823328120837435846024291198062991991610554860868956260653741566800160362287867539567647832020811720428020732072967187676108624565778272352310523587040064596545447290561704589234310465056909395096139533945164735273173323925639170149648134667945120796058992609340250192701525461883756739150126068323060091593266654995110539303731807351986655034046003786500802790766807307385961795551474957814831567650501129543198778705475785181118088229429823345846272024883967551789422493404709398953850898661835431296642424932382436240182969022598545501765490760621137871777988370009054838968490514677138359529020535956241077499795258094030169065454327850956080180852580860947764053200860220894054300782546930456064464424529985654383024034985817968159572774405929367988353576558288761804342356999704246125674840539422288265544579284296100890649982025259211769186508998528392908693051369678412713744726951390434583636573090256473315598397602513689844951291646024364086522531686002571022708348692893672931964870261320004798327944376969943408165968170546436160245822551142773272320376465842508001399602521633070670494475610363215025596457980227390681742321972462251609323293492627755303873169805304951352604265537834341937950315166741160436551365278148118897419970378493141306994974540870867107607431096651648374975301873983118927256298970663093649126807868135482652150542465196919806547745491587592769229035624520228013320273144910525216804208444543491700385213096225795852610544812050298893183612399625311897761151558553160023807015229593876453860899598740965393053366589379747206340450077867143598719135784219062334615052292187915838872861010258090435262378381461029599204812422323241195635772588574271937534642540004229681007330560854497513136838669729647748550899709027769331915569904769280387554323177925562580079580365781885099772193308875550119536983718284246950622361534544645469701981113135247096070779046332428185985043910949695657866590072009372279375753646670591298862258613173670049929628347976396039308771590526907806586316628672159334333060758459452324783367929850375563610281863755715491237019277800812509117439377393241872745360275037209539623335920684859424880249452285345786312507090912416260177446203980594068984899776894057388362394333144492484197427907624830218963640675091124944345376719503839006322466691143635390100210538220798476707172567561529499152570384890219796437493871580137374434404723505376539321835762485531588739457815504460143260931093882356045005476540711708792778127342898102118792284441903798040953365438397732499265435068771637636467497414995078836104129508364585826157851980636103812271742021735558268851279046931509457846344845215314061725688933624952540685228000548861216763776128237911639419372088292170233951054371924004228219393866908398732942421572034851767271813455685555990426533136237105665532023408937351782060818213866452111905139014211804272584358855450022487627793946933351493743580005114502487609369002809696886441412673313424584418944818459402681745351655594938239303483227327043807019367229880811755169089785563647311678930749079581113181880800928577826363951723202070055123348322929012645381157537126423366696972576621272032041201464663561362706232474269712198207894110742148334735615503159803042440833241756564838246660505307087616252826456041792592675562832859579927170736014946499150267805935172956113687770019210475843336036619610997305279325000705828612957320694104311206125401837713024703664679267654031240995616030664274708512084133808554134108420038838075678331269026437748246130146227220656860629095407894559591532254563303470781226930274155050950232946498851032780492875343279912157011541340790866502195223192308908814057891133738919224187495339500989171903855825917593115150039005931138638835779858243398580539565061367201716906990797294966685063256348841517563311778127112065350976677731417637809849777628962420555133141510599590742456022125236099288063961682152490980498699862627676581772600331567956966208945986135408726959359494028742973906652840783708933884602334770838103576460070252558474106461523723951492032623404914124884220288317997902446843080796524661510062188918188502604064339219638707694443101076868537782624014483593072718433802313521772739079358152792086431850835189337427330930699932401415870479206333723637020382884323068606354535085864388310570377097069823022175001226732888039109063688921007471363086408742427831407107521873349649845745786565421312695012960715732706940780752232157428146979341009763559343591360122383286306853783279002937990511821478466793294987753146106288218395528538064941207931963389767101025561208378157866332872317729147422805442338949432166803722507826562184282626975195074129315298356179947881424012709882080339206708523811730272499359220273475493376959604913002285180677649139860696387993171740572465334979073108264844057401104364836177997492776891354617690607757510198029711386152602937624727314993304824027065350335874887576387682525756967656713487296730891910339514843101384848565323262684790611439349954618070433111307494013001588229746902329602691205913858955132158635453117251914616052772397234121238756950458131710181891697788923159071906834985283653137024879507643456756199531907079763423668932270333201492746187904586305097792303563518501399513670934940227915986275498932811129400145054364575546696309570419502603311629641703084881263842142916419007777499386377615888433175261721190581732489265513458939781398572587813722864138302318608544230152607080765161754691686731657826976578712241257202843485683863199582198326423385903247939216431247906253386580245802070388091945691705443979565556127423814507594176850390946087671878825121037083752046397019068569479014532022139023916072153295065747428075739982989767681683751213498665115666467734745704789885456428012720822073141868456545236070357598234592950357050280256366619670754132633194481348789298264618559695601625805285205008649888385735813225013497973659520180091194510480848808034752666588738752792468953345358894826650970168104246206107323595390632800639052623937652244090688890309519893647741237535114039385364935093741031402929062523995639641718283927969029543891077478692877409018390694690595949837877628976123740883175750677379936120588666820267858747824859261072019563772958893106978812523890046550292834158168719727657108744992308828522193170433844073389930126523522755729320747159149225701418879728471104980276947289202405691347961706620869533478612002637375795107782796651350450449204304004223271860630399115740710943498428282486289281023234421005166994706556696274174021814908075063093870661587167596862050232774176114331498136907524516384549323828360981145512171864522969591696009631090304966849230268171235633071105000681490493120777461345381020745992893608663560518453643076886596489760009224844434603069965261944261566543250430474341157972913210711916009357305364031189734758398004045360081493883631395464224302381882468756133256170871280504641740556935336112747580015779363126458577213515605769708030423535522368641127860655756322931516819601171685701662070130544280353559020029095065427091363781632086349203181960101231661981486614636253385220525322994555977222123580113111243733159607792734893938824683558198600119794903122278445208681214251307493547872377164895386221006767174533063998155493023850696708062933264919858758050185666118799475654880766129302242871941936874035944411620517334088421483421919667533285745870899784063027752389792062060701126689967350627850221991409965443574443253062165086814370774378256474528220399948199179989526500323279171699377186817428081972575198348542075386491231195858391194295759746555687241317961401143371839702627661636030554070054303348446988977995184064787326924694244431444000234845530001938258912389756580378823818850212676935559049771341278898661507539333727067202890141899074399183707475383100964730940888118891058086523851197101555739278766397400597045852697186212807752606376275634765011925675733051242895640908636548842319054464830725561808595831153634663557740441989101194538375128944600762620431475690882831906496881713408521585648069327384877963528408349055172165124083370601439934560273486061919334202240410364329360863706922949347360712295623546226385039263294509894592692087563389548984628924837522060250871872296988812457065652078952900390144841585000749364991194199580295562137236710983830779183610843406696802346945695964972998680508235960093653548116963390273717023782609470563997700590128438985846029272114512976721427536825572248766023971150715489522234575897363244384299438090902931330571978913232571302589056196083748085152869817217123863956465683164936238730246111764265349631601753513558078931165488603486705379425701454539673405750135749183934045953515637264442161218420781060008389145208709006328737659447789601004342448487848763289094676538225982155931368249044069525499541802727767536404688775295649107152580191579269046269485954626339899099839689490065284131659109423831372543659395924840945121467078489937468876720234286531929587796136587132444574008582243141820318198390306929696950544275703172294207945520931644891232672731098273376765522934474673526430402224343610758590470921274391502202131681141956948759841295049175346866867667108280633460607217018097110569622438855526760037220260032098119501322658943487028497478311278647051204692760101548799328530488310060756082912002949320158892028230349072352020332008519550100648213386148390512807386493104536801739441857383667894149478640575734243061855536557504335277798742548168275668460394758114858445656922164448614257826834078611471295217974351753637471324353946244878655948157059560785890816949576444565758333451022738058921905013951348586116455393226790906370182584480242435984019313598716055455913699339697106884873309033438348533596421580223466356636581123840825935905896746210509851728097729831135476566409965303778372051526542860799335126014356972953561305705227217427700972524978830365863052375604885619848065832320559880225239323159708788700846040172614765476049711238124186671938753299908217726180636493276024121194487155568559314648807038478088502099311448726014285932142532688361705753660961757550073885570009014185645766104981204065911871306077677905392126353103707288959620654493981284582233872201056933737449913692501737117844991830307773220789366370175550784089333365687176937005848578464524168474349274681583217908518990100945662772501083531617022076816376855458228947818155894258609443950115510742613154480077414581015859461380143414691909516489402479458346072136557515305629753093998184254409792092165667231912107364650310844263496240918918610549983499185848377634314853435183171898592264240038912648264878907828838653966671600506450074444335582979748474550627619192200169145864715655342476611691024785090939540109341950025055185403241744546552615760578439947548112015955862994797409203369949907049734186676054936174289809795774168522338854193626288784035596599514480824128208148815208426600616173596714201783752646043799147558924693582728260576911529108734091948011601915396754567567301699489394386331575734561311194157772701875653148110119998234246801421584425084258833359895353076020613189362285332676690415961168271942291521071493208170512049677867943070981408294654319107058034710995446649013764821500243846877002301302931980482748682134927513607530852436679720585978324408556091543067331001708665134966050429006034711781612712308148595290351479727832131522634601251151131518931161406966871296166962949509945685748634019884285143590481495803712884362981561649636900894585945361616088482216392881956395093253156516330127430405994500419435524514639003112464011926119266997130450433051881974335985549609756300161646786917355228377331275265184112644155277730446969135213501367683068954207681683031737202781461136580787700911181701725229912717354312714846028247123221508855754010329160764227251173886160729532613314980824190876947276933789625333487213505614121269943867977736354137003754971431059059966339784175474193628060654108659688259825344499021404161075029565118939381928760466075312582475255814482835114883418230583105604341305223080178492588552808046191813701991022262523119471717789545371968023447665915291018159518557816182002861468839228199331906238297264092406275001004689050382266867891757802757457512564143665305501194825835982020905156805249462131797394682936802392068220601195579504998877285988493521842754689869105948747369250010731377717086649671206755708555293349991057409855322127950203965132445133919941186538345756087289136317934059498692736920132032573808953362471554914992801730534735076161778033555753763368168238671569367241035806807920594070978067916333872349138678977547422335520947586592647048834591665129094314091371932890685654931305842699808048577314849151675889144310512902112604995668459501378725800194230240709275205219115063833202930051387075038980778666107233990924802950096905055802017376854743910007317059924931609160111089764962310592276893638304665518495759251003264962080161374737853612811260382320532310606090238343526896022976765735037863282230186958239981012409935734896189795604318460986918278191748105221023350800218465012858585080021440856903650379103365584372970648490072338616023342067380099945233743583847621231746722087500071080899685730761498996231886605016436413951011914564984200275126816556619116845558769421915249138325382714649965279663246860485565223346490939010367811107067400104779172709265198217489097625022268240344260023853147285877649908502763729619066836378398920514406789220523609379069064838637456343132173286914825320516829258532520699872389020951078497775820549788251855015348960733687782248288950532178502625125502886257747497183255184038518701822858498024177898790727776127860103765094665265379937507321501471942582039961025376265272912091373377229481752045168554798343645252865872748176542155189311790165298756099982651486925318859156512022632342620847234706759575163792442088638441406111640189016004708221295016230835033427121738965921452514875883235459742577647595279581354285208417165949534595897062707436963674682326001330783393611660137195295251921202641637673535712979389565093491872497207948949269668580601485865962852351243523041928002693316222984910434803800192964764495014455430206531057399780117002803029512544093831263830198934290010361943124147183380320495487681108136428435082688375297502910277886733358394641114919953253388338326823290894124518892417016834942674571056101210294054201083576700244320425310529028704459805187636868589527495616735780482135700293653154137780284664041948620981387115031538981252067818915500423145221094843472830005180013257220837066316567469884087786618484889544565470674657256544476767524065490025667241176916816049282072395293942707932363107368723010743528705694790444997681449220927317336734075412519993227378116461194937983686685126442043297927537416747452564161853387364093485014876506512220018456517873800278954356174069048057374682909170605284629553570075340949335498370568426861825717570632866341639941702305792069835414282043215946802245482222806250704027191447345909266352678532962246530495181769309092729034915217323062749892046504907868886545615989027894249895083836797055626606830759634244949954913762462778955092978556984110111185243158516467992313414425087435815555917120719640678490284823750146883967505987971551459466467911417023775939402073556355258354641441812936155840704233698646904653073609591986536375066421886765031113230454266808004094445674494058338561629375394674181415819395492601387072680786329546187459218694076072156885941723077276716180857681884365126691894828963746105063995566378966939212955703272794734030963053413368542125041211843770970387283956866281615450090952229910467294041342577871097658066263582429846434842091002563491311043708396234048802438630749444103531216386867828884637038418337270146654305205391978305919585747391402733821704964959676044031102339531452793056537717496193565462038075249346850554797593855646649178278424097301749903339834910271657463993171964555383018230261362246284963161698622587481492823441268507038084884320094181793374015510290934953932257518816484311172815305133080447126663765617901797093332538049104727151075253840216442370386940540909253605905099668867059484337609006831542693830328075419620522807009062386153616869759447522197639371799194149456827094973735064514381900987287106588325198262060045280497183765119924071708503767536241029939193859169262906347902599368875188397425869802230049993885396031056225307101572245461734003851342850992257498822519461465381130957917131351250291828330380299028959955444930322053739050383751263726314990369864895940106516933400105267651777507283834885633510490888593709091599120465173068698590125742851694523303427216616805141813236593262656414113160523816983503111632082286371609130840359391451074937462358370170597707842124224950084386167776946970273344331662674520072665934247084896059772665626812112090908095949775463022863076944946306050039628147446315995743758090834609224159451021637952229062144097930620193214331215721403211897954194658113509648290602130924319984466460271660079243462100173806221370466955802582058969133783633392546475840841603368300951394460931826406923952554046642724557924089642678779091279212209028097202899287969214563762642125328637574204399596009284958636216169172175920514161568041225457950433521134157950275581073765007801722383948122558618091955962746077170757687717513244028994591394816026153732862970384365959027914333710637946527127809823231258009555896851158985107448698537157609515735187226827021414713343746885825878273921393553442874144919102567339599461409493577482627189110087841404984616319002096597869169479273536239101908024947198592543285470299429809793402358206991569102430975305571027022566133991322209371756781655048925241292179842188560242223923392843157835492672765432945764325555422292285451377706015304009207285539554959359757648186419304529067922608355666020850345743033966530371239413263434484199276418688885461665777657275750542157371910185456619898860080240033102248460194396985527122660558456416292604562981344798198250337783062137153182307807830520947615440707993955175139478243964573979904294553913603131638202928774100070395260996285931849250807560077693388866911162022623794219158899307833345793693149200131992449054956522661279549369439031076172947475218305381056550763290467287834324421776678978076111856028743359802122329996896539768008170124284524796495002693578257109388011703405336496776687216986403790976823264069386909648841214335112909018965046867605765070261736251791083853465922757462829274168698419604999442230525690027993595398156863183967826594431989928734562562367371395351895968752447990913713601911509163788777826871990199170360653301133914060614831091203553538681052219127785231750034470882191979936344996264787039909561663308175755462016924078080378619712371655838876716406703857021579837477282406491061769628656312614796876250866938318916042773470083610451687219880714064558014300236440127957176554266183108153385496569856152920516636584344768235480654798395868099609272186841555113340993854166471500497859753667060846194062713764657303368137250535198344134839424258106579839913025371120196579293075630555961799833917199929295238926000852857145574349676132001576153582236154457124557395504626331031103551374235504754505156473457537214137635690909730240855610317773790881895502401078139625139959587512028151008372464333580722590763251688583032523766156463522266434919108410801718658043074480276443352436233810015264125498054645171412701495246683074941964843141590294799120869435901282587574991019659679200038872390304056606220864753817864278709005312794869346469338116985357498171486849900498479003726814787142626773859214595750517435063450019035102586460344436519231719083771475569629487553570938522398490522580221194095381994062890172975181549357251166312724037460347642651589634247357515099252457483134118005242358283718533914883009754703469753362989746343365377552552037436710348612824176356305381238191968269452308463084959775610774397832184703461005672956472757389323963086442689309392811102750314352342274655482781265406195492488610781401752136563815834119433160184655261170648578849851578525556203405392670895221958333186573957464665890911480407575350362141349353141824545061820889041956806414032985291977743802011757334724655883943961307670970883038919009766662711983221691390027121604840622505284665267292377679189830291202052573484231974454215692240545441719852369228993449962819994530849377639400721200837554571969568797900095620634087163133627877872341634587716667945971595396695310305580006609882421510918054952529256531392414027818732062143766626271527863079923106625837554078207720385785961531831788114657931625010975275661762865946568242389428282948521292056018766888683690534686909711986662844661618343430130228057543826125960168726088329467323841441679515031146317759785287691346676036395401883834474177597745499206506552006317258787236748350457115582950447183500395014753488774990422159345213399417067987743069515743005270947759531132425364851051372123747158893765479544344181260757671211305036200004119210731117752491830458581872043841305432173829379517368095369133152428046650162787411372786713563466076764353092692330397585458305805333766355168476621142246817652755384671708361504024177880623315735710385988116989931165140965165879470967130604576626086203455945872314330267095226134419301585581740208615043888971456239430810907132567247345385985959142927082729655107376470466612451584879196755889157127772251116607650384116230495685079840205825693801859009511711663083900433179557445509246306523440028305413777562157238937976459637276512687909971383354197089127535107415055756071262616292549849939958600455685212832887791071775033088245554782812962900003892651524626628477325533335901814558306523838526718664837823801984454841430731883515625591896904475436691049929012307812687561011186615414208160216988913723346502500469935800869724167786612106925232497658555722591055190410673624117584303430546330707126230397523990073268433009445084980054708146383354169468545823109801445256292948815397022430718529536634527412795914869543740980710900535048581772050025360267877585471298453318078683641601572396790090523030747211926625192164200468268690616450596199329494789446764083169356551173763227537087079135481335569423822743479855844138486534268072547176673193585012225072578013054390290113602588967865591804322909109422842483321271329216395123716039935208679214110373397254251978691584166978489351001508277113598368199631694913397642568371096306698740144940038785459311391442294959377220692511254804022876327846815614794382989578972930642999517648339487727548287931443618094784624046108248906004052562856232929082801853530110819474282217068296432748217688710102404391328146894382117252638069533916494947799446139063533698302308487416812755625614757179663386395129775948499659809990280765003284236324533950243550285627603612178816148716252606408839188847252629177457411081516053294826324618541944591967784470491385770915763223889669359337461263379194673274164195720394929463399105466364119990082665669166426304112063045613469305795261385156785106789570043835197503199179496538954837088281747836230234544610882568719001041264798671975452459259195419465703874135158954760812705144723162065374675067807218887952754498577520909673808959495774926090489508466029926520989501288305054895652564858317094014563239286737639762590969322150491583888754729733220911895705575224392605811419512220691872254645016627242750859477402873634796009675055899787582372818340324102945386819589497097742499262933898159004871991874252057997789622696842287330690012456485086315737570865867525795214776623228761076981427423893466724906711190640769826215464911163846017864069723141544205299069797270495565015235127217286723433994859701228540334491875876280878476614688027543173017066034308643180152308873949682721745385165032541417389261669583923241356163732584666885975655167171353317612160693448989328476673887499769450747278688195903363010316827283576645184479039617436769485769523948226714732080243042657989587220813950248792801102705578497658134370205615360749109038288013373246198471922671561110349785118936044539427266718272084366705427824697579525991384774542285170439398643086005405319240907722057101857570002057769180232721656790478843770654439397429238975373662135735471448479855212717297181791304161737084481229916580204133477572386193534382910460113942009041144823477258925475030894892594329413327667393600405902603862089127832206424606459203711533042315485100223264981655159630049800842228786165454969138759358244148235533615137478189961126707391359440993518342034988232647847208368562066169429485077377875840962418388633392202825314566576473612244445908305095169988661896225310787520429184684465863131799607072043307164973818500763262176927827995962020622045470605707500810634700732196687280966572864310173106439696497119602661757323852393520425793113876803186099637713527604636544155391271888132155672276314269532193385312342864670764052493993869164054402122340076678297789273321601059488634646069025662785201975601792909963218595038359088013769590386766667502245514290636432105038589893052710985003636583219374761401790268094258006388926362853401019870444559264333885216696965401976899311318474174477762649512975247621781021416607950418326401036793854251110631351004980891561709683846440920424986341702238554578638306040478645016330023590784773877290768201400626888445374425692389269693607724404570633680187751073076214927615107197640414448859711930605424573031465945079088961353923461330539522271275268906464843821608503075958991032415921014469899498246938951934303994859524210210585440725870443176332921625615403582578924794692607287817003769998519365961657725272829833098124636263415659601390679224019354863998521174937484956305593775340473522755624688304841121217306511779121952639422589656857985939270842464700105445113461326258051126516562442337723799106879128195067796548420447583098249859793694237212055944854389114084551747040992717111090065696145018674864087261229921491223692898628864325501060354149960471095790452835382451242098417423284176227916423935680371189751139663141165268731257911792309132524368212575548982596539402712493973608343031704222882688594332332060915599461862961551806452635706861315884396779689100524456078487158815394524815389903428878997435757078543729645832809411778184491809178467947750125829200159718200740917709174231489148096191653488040824559968371412305615073990499147392215494263752693651326359922647323136134521466835155085892159381980809619275710479258811795530048966445730211952548190440573361249861262683526923106652377122340003109786965897237182746567690184150963117086748561368549761141996781589949089567255886264317445825210864623920779630825255074686505842198145565139432670799991238428024019259560149910595575714865740495418073488411127321550169033043368749528771400151185409611452654275172375690837620854572402341374015897640393210333092797575158376888476675588239619371746420682827196831795054886264167763461731809563145596155549266253257802494634858305034217408602191157196854501683287005541389300417191971250391518567497008578851591267352379289394422701769678158325486253452086357382759282674935740769905210539694499205585101113527455032253540614117711066968406491987080964759505023646655770790697615160693532633519245277853420873153279496000329580086875387672240573470471161563784133263000487122076776351265442424952253281183023959724572224868159525636257788669044967233354712500387402491889841239190726012069791345210790586851488761821297679951794409285164698942764482073702030347748413574256276808752505996969564757804221760852003760977837420105064632608182803597416033718892361047541926600086186236562772312512215413560098858146227107290921683940963483023900946030942420624663017111649793854646205343349774825089762154525370353000281089627628251157385419757784550982822211487472520601980345424957280670965825649848338299903890687110577923346424031021596514060431306101303707172985638228094503651701937263573749840568138290835205725366396879704221291650413756471052514183105751978985870000365376794673440930479576324175917866878917639231099133689688821998311104773302996724084245119283735885207424117635365805073061312651658468454404384567056840107547236875417051570062240969835185962837381514064963421093514254791379344513403117722624386893070668732288296280625214297590863825463331221727684034334207526050636607621815434823283400227191829034376227337108993040414707985036559333018556527457607572067939335488461143988511339785187288121441364999564719364566042240004042907296619276325695579899796328536465593615742178640817833704068706162840466758237840292934991259365889092027282317255251982465588107769074117061742205097808636087075178436293550880422555118490766774350486756931895081953600596690700136872950527079766597014112583723547434447533607439260205079732185546514879561995678914666898433101614163285579646166481262794827532556030878535487769501270130534921524380828507548298292967026611831999798027815601548659301973476505052292602877689738165221970210405383843569698094291212278785292760678301196615870290141562309531084973283567829452256699578045936518223500518973844625331759936452392187510799932695556994980967407772581621227843032840404954374749752758127237604956208270712893696685512051593044539493284403291244751258864379211624626956102746772662905211183528501801899418299903237146781947605003435107787405814764964275957547670123886409190304722072209655179239159929764605859265833004503264168739510829466399519445581946206179964548322012492566486902402137696300324541180992666743424406856988173769532730764277450808031165920023129090860057487335874879828857072662285982995213110277219688992055309411062262318116037722982502829216104991154051511243624267887430753684214075465851523711807950646251345682554518604173394815696805575952599086988427778995238341337608075013124612587490732055363061467376377673646019881308386463886809409314196681532096977959049142369940904189132394557465558792207795276654200407013893031717234899782371047082452276094592584317167485207958059067843425456525192956161334440736852164964562169246700091508929830711007508091489658549529222967826827482602637046578828655291439577377547123019233356951308210418248150622826296151569174014873617070606707327182080072407776451243440810128745089723547539785983311239816579863883869121029199885152787068927381990278002186301037010989023224288860206388014987695868850633759327302250937767613177605062743647688897433560585880833951059983556810430344565310114458338256393055669166457873206966547274357056487056626551995289030706273627272479220938654745750753841130212293851421584922378341730973842929695762649895021904322048734675722487267505207272092693951138253205422441010689746042076824504606416339908048895762820836907493884858579364077712261807614498478664900595669324165460516527497234215816119464258388460012737500439313511864435968528393393921672310537802620205500329095882539223423000175807572716810264598611816165085619317072138268870076768132343416754502542322524370167604443403427395513211295149999860087398883639831891556176317022710138488340330706845292612207551985279609291498817262960806489856283649241396852631732326925884765673570604575795156753907254252507836673061216631410685816487128293304313644136838182886485948370824994101369648443121364026986864554325277137379250864022503908232001560258567770276372761866566234145429798778659284878604991509810114687500946504354795091281185855596174750056265772102954447394746470879280828546483183157184187758746010063273859948918550169605806775699389530251224422769386145276461329279944564723525384827135425375636064183710620213517437695431966631606521372291252642647319313114296710939987991484682491957901021290840975451654760652238808675032570180055642853805196613056484727663602900217922147753566686798936621765796216598336470471098777097696411897747453888646980068103213356058552211888098526254750214921003854645602871444175319637783274898113302634702454266141447478134382035138460755501353982836416104914324966994863605932488410851386424592204129380413163500987737714924584130123256780407674993814209763723417761278873516896713998470660737248718640747573469881682379753228560181253929972277121360226637716292478579160612753197366373020474123535647034122162701077729663460429292866118927985011259780397197608254695725078934934497109135499287022347390344481909962123980009905366026311457298850540326405520952429333796875323996112927487855124914911797990666128584442458291121737074190349301537155382014792924562208580588235421568601879758951614198230273703349701107396390301761557674175427794446941878016532802300977808108055716870041672959221557450326954986105191021717521036179492764807880826162929331593651524993218181944182823431590818130827560378023668639610569404151576021008325897400920962311417717517962855434581394528314980481460266151025422208970611524157813866641184973188480072187909779125353014312410984601116319389927200848790148484095338252905881820932789709402295515301802270375955239328514834385315800585940201320835803222397401656919817840166889136892167515896035382808800106408311632458892033917214734555273038918870042245244638225165514792160736322706818377146023158128487070412395186129007110541260675701478249853557033822732196750656159167782710837768580749818184358861879415544431292639966187480595612488335817326334850210553855110115934919501902951857263105668298565293511192306980121755479331119283389587580408976225725633230097322776562022389229688906883159333430204845605152154805516046519597094403997429186526962577215306906061059761257171089821543445684440530218235858778377175797251933712196610985885935242451531051374369850950485174773528160973490968862349541950176431707614190752951026596532857389161696372099282889926203880236333487380916494283705989508349738535622395843660636762436450286425110229934566976536404034617139260228676796385817579272164276764056874229040395397749620234929924658830852473564345236613053984655797951387105228402778443752591563644631491041432783206192212166347098147436817929648543487323464639229210666749248319910669614483692649792915377409033384567642470693474569221413841221048686015855736428581389621053584026201469514644937543617681588761808041151154434945420240441065003030616669499754109639500314831090400877627500298694634066569108066010585977142277625287214275964630415943971416436888970360803758130472142894547049942771470986887364840893421031479500732713842312690169077651665608655324824228327030388112168698871516668064304122972496904742863128905333781171496509404811670945599190000036473458587376347869633063957567873433746206932434918426393778471503688623143123267838816215491114035906563082359858178491390099539932222965577691601976325113016853605764131628785342942060364447001488331893888711352679530417398570635820824245652587386796584460747140712373193134674925839835820902344680951483285557536515948754855535024102201892092717630907600123782426164176115951414749021631732594608517865549855178685077298682234238665776096233536159729297517498531817003975638704780032235711884902772334785396608495886021674868883583259059811705636249554077401838978292209215716963255890497681035863057706175481510292771150742764514639126897429461752652937849865555294321423850020687655461662955392516088577692940907251999453952676191602638683568558993684441369316061571342860674319070852484208890429433084043152440147424149221332491178354441332741341068327098203629622211888494626040455467917449324096641268989363558636044841154984322877633075673311458578838092102366821522635276994456156175597026315639148021617278960885398802910272514316233559594057755690589970603508556103321784626878613198062775197356770157515567813792338029457084061134419060452965799987880178608603916431231449842824178224986791568994002528586884921889453208379214633210789421311725871378327857044396508396299756670770134891739838222429754174359625783781725809060750907521374775838746371339846558109139800146747804042234708584341383129685541257012752490607452291076628370944869480475927558765372985727572150805456599659786253031985079619188714181237429257702792547889033221836509617949006654904124809837208174973577524468786829093487401873435867037601218785621617689649160393452733303195309689809581475614467891149672793842964420195336853717060014074988385922082698665382170372792112848710548219459204473500283780035750047295417244726235140953526827709901684744068621688956411353546512999351131955111011966401984523506227333810135411555434407635338391397031611617938461001057245871379259547601523733619852483528471765233266926315395664860752054792444650310858822659601733081111759547717638160245555967358676451483843436735819579591815772771304436655727923189219693736168103235255371864716516982801333082493694710638121899012601050069866699236108631475663699131693516351321157156689131678116768134324350482822061899910327270764938493737873611898205391946231554912017296552971439773662508088785801271260559907138203071670377700910232920263686270529859744702226472521963113981671912889469247522114544387978136524088961805023947198891891398212358951777931450639834865988927428517774411570149333939715518367105144398591990411036119802842200401647758528987090429093223800680701231535439314423892493811374230857261022426471359556589583463942590820007720364745184152066041843657739520875559668212648951138996543874269937871402752752330426459541943292399682801762707767783927820712129762869660282167951769773344594984147300064084132701991305888257015515144820218884511666315688531954243229593475811146527200733982312045878189056234908550049430383247913712561599611924548213259619546861351520388794541095496414635479155251093437359274241453657720882024135193195869404346801328842761355286927104798279564291804708710053153093666963863289574721986154858828905576192598931615936644217745907870811956015334154306988576648771840377344472242195483677605165576854066851761464001093415529979516772511949325907135059262092913101615177870578766274254921576173007649706570544297077798062400664137364223558700979943330946263710624460110357559922353473819263836293920251099278354917040095863296188420125929931668110749684258566705162491729676381043757999850898276145734517417608406079111564418635536104631736095877826126348952460802027214292834417409603212862850939132933626708658499360348307212544601831624723034203730300547103228455932890854889033179613648590934979482649678444227231564173268168709246039303755683109196721911900872459556463124834935381948973173007040851194240885089013098734181177646414795570125682340049895064596312511997391931578983869668906150268411650266362753751781847323532923184937525032675774948437058027803377421917925980371208990786367725717741601181052312989139227824082632265140280455431674202677736107179709992218966023931789121612047754699424608279902258000617584662600194040107425631240081698237983091304739364826038169171453573455662437538663969582897018248692757941672065878049654322991928792954814508044693060668527161114898972580150764392073360189149058873231529246710066431764134718629145219279592868943011177821585120603208541060267662762941531091156617608195860546134563560377519413752233095916244864074719912084622768548897348862761162545724135465662570458183262045091133764873322800358737639208976823939922520528210401614694623207586407581497504655707855162384438488719360014831723163900256701078763278137212280014389581855909941005438401195362299525266072889118892506904562004691247422450427559166731808001556533943769453370446395872064956902045101646522675657533147696372815157304361031397896159074512575854061679893873371637182256635353618323247220526834246848196781659083774831441247153854845914735427397243874353656410784546720057430240522561073356970548721903805140205016284476044984293334413261546858053120280032411650501078179329102072637208727147231270887432726078527457908018488891549378507446036023924233487411610021524820226785344776307335284075550378615365583364211104614418289496049937485763625508865712815904563671209488415917664335163446121460142692147712491824570287559808291169312911884508589683307641985895774915975691942876361587540794612775140503502127754715463981313443989837737551625534153082541608201479530899968687870481044521206087423600832171313769346944446060560100865929769323584377277047264631123099788367074656420451446087970489169597337562383905375286208539305536025692343868215970759086310536663185097191933904564399010553442570225929814317196638699713244498185782453518253770704620275807385983192874338408451231564502176979586019626268901979452968556823916424764158891187767071688101776264390025641525627458038342626506203930895215476787089049036414796876285709443925763391023366205879125029557989337818221052790157448163371121608680946023088137812132571597122607387886749606705253852762012469316079545120518360048306650386628494978638769710395876831530929156522152268331000707526167615916835186494332893080057910403372405120737796993436230141176525515882491771670628102442989621809590144000990234291536143896659312847812819052093821194116483613226729297129330732912398033695838098842688905977053877910811815554254096798305947491437316415894661642503674470322291525844038314532500759153313464147249848547583122801745932405348317770898348974822465109708712015825685323375863546758337050080903361692905976983090419497819008370058915687561161960811686331092910030956999154831755066462194224128663772686387280312598195950985680212362964890960161547039266255837717585999298246605263771317586513677792329926198493616883401730455451462259409477531510197288875337432258963049256673694154789491503235591298785533455787342737966631819456290890704202257431093924727516875606014819328168892787121189217926073346387792377291456422491090185183012558473214049753399904416243607684290972138345587409417007672870806348691602070646096474085834820545482317462488652797764848420572395511231963970996306174046433411088007694519874603807296149276311638120580794352707917329810567064077924696415314157741639611079080117508795666151318951741999136347049713068540232142379767053992760858971597598121133549890617278931154093890827311736170207541825592776754032878982576346149816758251932404586180287802761239591393885444450258180608076933859470847425929765578371034899444947990910235483066519766002967238330759937743595910919610724791658976812119429933995760266509350403608017392993128550441637367704151838542723577767541851088249532375028184551524476610092020958908773975850422267859338733120104334216955585050109446819333333914358201919535296052708243240857658262757262057424236936487046787927887204610495897411853413224474686567714480300064758975339632082225442586809791691917106048192165865146540083500780603841716480084867294786483913511248166485205840063346657638568956427465840008744903541136221523634529597608948327800102004938475416247792676767082277720311619718096338958176193292916375820972138059205609428351919332433187355032390683699133580657973376507509738270051080598033852125365975645809191345867844546655932116928008826500402200840830661911914052446982403957976376235117737525833632499898374574659053389797967613539306436662441003158893152795489248453809667442280984707213780522053364987870678725938208326854260723497190364416790209453571488915383119541062855338718453538417982689286408344210627340590129604986241265599161411082490613610519849866131327269589524923047886510880970970658105504882243284505403946720867898734402330827290411432968879609965894942712708968140300002486735746449482161740140173347627895606789256578614358969624935469614603480167529566512349756783006792674950498426400318628717219055378242973309992507594839144454254073633568705348148688681608515559016495127745192684566892219009630363520533263047269298702367494633656632873882633139593791765633107370481515365227491246596939437915788004388581532663638223958792191790680148167040132449435711524602814877450158882589254978494329166035780237953605012329978838182657556645751423897447294065890544215332472953605212391717480712240938222565900303027125122939022272333374646668793000626440994188600983680434066357219231730076605045281120406866885126252355091324277635946139796335249409322116166810115408606208207979352566814033096377697474273711778240446698035905958035606309409479961236691938821530137154448223705702142475437881108963343192998317241727861118919585941054832211471060156187503378176522147598612036829701034481087027033706170872553330887744607235675295233695310175772033369568266655668464544145338230371171970841788862166957401461766173756218937417737666869334154561818787552804150696836329338818257575773291527349812494427533829321093613090429105159450200578169375668008271633888570668256767785834297219357120172792836343129370250890831375941662762755509415816066715195695754389413005793734954211652641406119968339870631412294344204745501336459965496968384882436092955330925795727414713724449835350905719414990500031533553592197727651570223544803103091473739352104717125549268322426452069574321939396465790984096975915432022741291739094065585604743421533038984364981388391613769791964367000696758646485754981153735607602781664635024231218611368194460281716063741952903557651266236532566597171601145632187394502198401577261433556972857315672388683750245023903916310835281456209963928471189989084064345438617049772137228327725312873346742933947419488454291651722604848359255492679493605639670129842962635033464837148050180221796372266578941920950578905058504493919901893377359583319139488364788031097085683332867804347115637621833579499197589442370966934686109879395602113669273866853655437412835211007895445026709273636409888823317983569432338901104816965035531560386953303540069944142711824328083866863628068450118565081431668287668966970845008572628500220899357543971079641106507126650669910595590889840525886970946225457180621481840514396198425038679559216317536480920140053235443384122476170199112678756107480946193491701735419838633360034231159616676932822343009387932670809585095722570503136697981496304566363298764860458901124432461988696455134879119369970098152651892274263543331863415449365406501246775531380522190993822247135221517190505032462374458238663217085076593550015160156411514423349954938832651764402581385140700939490159591605190694823642627406606842425041550740509276648596037904706900969027826365645228060703368332256010025275372583064260292902044073841404926051216338129322013353576620951819937254504684359478768489193348185012762564995185102618884806113517858738724960932350034987082772294411708515482712000387725929785139247497150490793446105490665701471985245978682937365431386933762895462373007665712781868322134289981347452381867760247967609182528126002194528589213132945096352779434963588290968256222369108844668722266658076175950759965029093160663757333481586204601885911133608680893747634182747896092329671057199533790408871456823780576564141245560490469944175175937456606442518166980967957704857228516774549100238619160771553582090977890267998020717142407676419515066499148548954183720291634393881248562470834404687008813597221452045416420710747981928254042149188756027194814930781570920975893076626699506528957674642117606556702215343701871390756169226362900980603665500875506190457797001255852196506691252523731638349158551490999843577707628575641929700570512314242170495391328530004127272913172416968058054942646563125526499830872242400526275170241118047442880476353464537922292571415403729333902604577028534646324390685068435186980441178877852106693462707052966614235202973410296295208434246864593576548511776530658594491918066735655196041545299786854564585711052242230714118189439030229587307114411764653863382521860026333600385576879885854816304746106813477325907546939564701612451536598872533527604019357215069423684226110498755822125498452098930733010195990477118700789928575541224296079294785235352750018764024139764883759440172218222932484219723525391032196331148083691563097563008382554541435239344413687097626029339831523541513239610562779459717773891269442173154307522796909989254659178144053539335034022417452480587330149572590670334113144695559089712895380307062523014325279386484710740818689280048880372794531738153421996783416242561688476422107293643923308025565134168709198416301610796307898892322518302271393832557137291973935376651291629143783330808896101483156555424960929366622531901020143632814924121005762908768236880348621724943527154548182572842440856739313325933732825976022025451856443095854583732949139964238156737135959647794688377223664066059704575977275201165659811471824665177082502892444002033670303234177461045816571938756784735254538830851076954787994737592426271420549259742016474564233465466470900197824130689636138618397271001352848903743541922544863103142081212315027736229540945784069741950586322338680614261373558093380754595164968560324670614064393737996899966706874011620764401193355884588894273037429584749888294488061888119835139526127066460514750745832524112497430295860220464562327582751007371367981321595208810741871785756323204468007942417263019739707068723111156871111489368236140332152508925140805134736679470434746401020819015767161525078224209548755640960094890018839342038073812326579356428224473930725317411448589299522443071449756066134597329119195914811126694598118969177358685371806119647173768440568540484009197055425134038363458949292438910995511638914898850039954616123885018852835129898684828439913411370391872160589106825451778187183611722594195660116315679764399691637059732513523884203863437068522551585138823216343771730828564730874597453810109232240669903183626925618015332663674543859767924613451846430131873540159090476919459694046124921560517581986098775832549798487191936263927530708130944358697096825731279449077899845390569672374443818605437992023775732826423726266380396595909365775134384104724359897739570069102780824663688169727152041523840980939667121350614374686953278136098354020624088985652940717670446279201041563061628953990596515551405717360929509366922179104880183456728694279075777995789061711864644865636456879153344021943168969525754600967616757117706445779978305038841052254823133581593886503121017802941225425498488928992577065504738696557501342530348871517312280875679114761935754396755733802172763513103781543288405057624198229544331783318636322695517147928146458696948422137628697134843888581365624313981115509796096506503266260656766890896911934226800332161250946864296098830179535513545024399199791766591278694419385074902142645464156013974933582716864663113780515152132412271623590658961794772686208831037025251947401119103447523575475758397660973888025616633780978169036337610325138727066448464888670740049480441835090118343167651601774384752253363813269860343202513482340181621665735197316919867672489608154912923052437850323240639216266213325162208791411120057399239607699265031062888904164727498512303047995590438945366493946266307268689492318087661143152309776125659545715647905136293594861562422725201311275072867748087517851289858645012602710062092854612107558151920273912257014933688910480252205855631870957445792377553598230696611051408978609357322402109660927008250325075639013939139066676973838438763918697200700059176821289016349120650372883171493035410343283444892351317973347740593331064966496928865129952531854580845900046094927632036640166716125329739229883583997446062527225190730869390913900409724460745040184822251972714431714734482244280529723962432002384085822668750768796433214433302744639859668826487621145791950623993891163589107628412261584036909651143565231078835927999215245050273658208195365189613870163291149399780115224199298871794147895214958072139754815737970648789448274835222803917122544274532218094581820625115802829457259024217011845519084265442637090828227460911867675520102279288793696469201865160209883188889019316390174641969122118381254318846717151595878963084428951964905770075128377354183014675727813990403538000790509772582561050177654988338088870705380843601386910106693146238653597918216331208486967094686396926440593956274979142149435223712648427854431279345493836715939367745674707242025058071603578043940580927425580136578915631850872776367264348556109383081331633278884510539569874023976112134708324088028187312321854023194733595538783141565066123144459124076651993501242581228342122171137459543213607846035145738876645036826433277685268260971347527977704322828104353289313022632350337263596404690628975181242096754702663196581067295222955709355778472297585963833277142658162543018206810607480337128274332394127749588797888244842539638456946668503344706374412186155815569325755450347187639988146560813414010640863881105547755506230608857391461673895004439681367736910440192584657435555017069034447887072220296136307591229974950178835560811237844147675675127828286500332319284123479713252561174633008440260427659004793340781987412567948450130121742614901404074457296665460705722247714883495893398909563337736244810082479713385647304168009862603995315554837929123049417019599176782850845890643569859680033646050683986481848236210306929706581529014212139145432317629159432203720496813002426828996319735033165694292572601991704335164473856360333822529166881764657341238291090958445290022035154568362247987836813046510330817553871296810224817187820668007652586170712568410962135427621471958754684430939854343212143805717392880928572498558288281438402507527015257380367464117798940255299753167549605366441501159221011525448472348602164830543797851879424947204801996353875850778502785117974910800242071212649577805193934509788782449008754545231847628773537481960293571374401116260112397531251815063322486418274745752829569382045824854257716375245336357309800108550204954783543811716695609827594611100676902028110235717389404371673639686935911518114924211312278834877854009004803494719094411900246041657090595494609314637832603988239365611825473432747592999105331578107626032579462389716392680801688224061550380649311923896332347085990160905677094446377634239424139777711469927727361926350629800467038326856307386025053295986747753864248930825278839567114239338021762007404062443147591173038326437546386329174173543119029346585717744011254472263535989742207897041580181148543710168420159071424066222263823506169986433333820450457221625886951546073167186502472010403682169832339355883030599722109644362769534216514323789098477120049822549803573759855490903853718087919124469812231918540365117635088978659348598783359555526312240261337268016758386175864899226127986163088358378118393208603793824351494696375543125198877485766169047783024828745753294577268375330790663745194231949381890132673060390393301975648935599937594215015409860597892555884299015637998464625093931086851624655595098838219535330277916517142818112674722835516924412594867916760952594945857932182504487999895812542659588460467421662874592875842211269387365709458536998742873969695592810476521481726422859029477218437220819650236804130325603321959351816936766917430745068809065054043664495936621092811190554672498542325110234252315781556290534053019150898713753344494674325077188025774985419300213587460966416981047865163581161035681876511961115065767400037442874832713152941624027473351891668832064131728520205972087770673298158182419998741669584126820818426282111340061211749554897177590898938895170398681619645319484172418841931465000853264377434206943834211730718155505600510766972058648771050659088213493581161532681650491474718393609705169203853574042839742840640380763140268502728269666727561640611276667743338930644739112897101352368271290129684136288307238521085974566383696053261869718898652662182993855321176896974395774886502486757271429378036260215975315126807106157498029401379858382298406856271234334619358524596884693062392395644347334003201868669802771058217009711246305427216687725451850305678908839214653673916694915474392868356561082831572950376996781943668571145799325124485232729896102108136022648480088434103324733744278218145964425760028106478020235240087202711883473729030051231617899534734670245900589754370105242314372915276373883808748276539963592607321655492372209653650031914788142770341045467998980465485089180238406957365093536206233672175252098005506259275639166545577271234131275540119461286576122090403019483597666778060717272764970971369347554730170667151559463465589299162383022337115227437976297447626388900991598493648930795932243291897092497407747373743219088305056982394307956602867293070002046784344160133393388872583897153652970631012068869200058912259655056174424577863222482090993777379330887315897904357367936873660989630231594125620242639857944697397190152348300000432331023789243205259004260847585208049105972156011548670040896806765198741574538019340140793499877952151058170328499753587516358108717028267095841655920503859563347342150128682886693639443027447283418453650932972815168976711300174617289521960646392196560532328098085639010013180110109910438542683920472385654022173864567872852691829053388959435636130988714951261884840487501436684249100628509598546083423254085067923623438849101716013109877229332687113562416624630372294910182535900003827476076493812983947824467541842273893618898989951539195125212576391882212845341974978209594666430551180682722196020299642192742594004647773987691779654853370465955251136311503250863581175384161065967308278430021521754615028042179959063733344476163343394551115255953101989721771511629010740733462366858144972903081484140996149924023753434779011938870658618281979844653550736021249339132006056625282323596338381962021048981885570128526111606413742518575705253597771522491240466810901563248523100815406308298310018650064084074112319212284286617231376534243615694554171767792361329364626628604526479754250423955086437660592089793498791919513469495879219733098238224984309916824922307706141041251110995002549991841232539323779329512877807481689026225035442694097676552372553676284685229899761267233634986269331952506068539746743617184872005040016480305823738810085014259952577850555842096002340871002417065630313312398143699353359488998966510617261081347436653133924759949171460499896519016828607142448723148803170589442076708924099068844109716182592436531059711711172681874130667576487252279556902856144493950146236246626005149405612911587103726292236159101268889183726159798881323667430202061815442705939840434796640960983130397395407929699137598229194124579411688470587374467475804336526822420151985569849205532999336465229127734701834893152357121345395473808728596157812234697048828384101874422464034464305896042610641060118782173284111272293503267755549059935267216919981120525349195650109130450259243114449270251596009913659529442583468902576954051174671851506494068566608100215605326953118876482623209944395056977436767643765523388693068635206314416558929144109291683328885057736781592605700429812589856961310302174352273899680073319379428082304171036744584791541149482055506617227136976197108593693732713231964538059884142208904056608273512250591104685407871718056568927389802484625440420094833176111069112185089183263784249464600349309312229679026286431631524710819062440822232510363153581149474859532453042165601759508576643462301807255823529600656930961112270527616537480321703588578180754251856912560761406147341903870692776075142521404963862728439366524980550886100580235585098538423654627328801232493458308561981387236770042736110244722365767211236818792952671096325220635935966582794638045008553470313910870156129042769775019877922770416351066187242074763124659971540569819921649104015921251383242403980706297420705435610357094186663213801320742388859201232027405247636351929922949055048671363917026139847416463090633657780761329027952590453496092499078363698351380310670572333143403572578635132155061491371335393427493150451016582409965227370237214613107558353495783683241830224528781587454674508676605665548639532075145418881922806055843825093139229546338002878204180052901217777453459353928655742440882677739266213626335236398686404367842667253751813721833864889750175502056651278088781978732353704408791496503753689801413175188569194439369284305572546297648796943340719607488152442540080969624307963040228809399211240320781459474607920716807564517565792488374865714144548501363077243091505811463648090832429038726668432116840898025089192072106211725889392079153781923117775562893598846569237222184605835976569089882405151310214227330444016167151655369730622341823652304343030023755219244941476386118075326916365509930283319794449392588856606638865906763614731281583196953990807926969134738781480619221775567869530987812845655434024351465643982194864355002114787115262379171828535357931326162691425023962313107874126507427758789119142924840587719596180745614691074562791030440213568203123774540114941480901003386093656376599235656264138119624172375936459675569406989572161593548285723668287908981824908828980632008343789833365987750111903100649135341257117974699214528467986001049888697203486865659399545785029496978162528411856413994909248749922415259685994238832040495474572481651281821465765847831546145926455387700386127147849428674377768013129988331606298750089706421486486018396220881382311450232040601597906380407186032360718177324936624881619150611320691986051657603899397173756582789637532257896600825408627772071959241945087836197326583516823342516908004248528740932425955884762851923810659384555381249291657337668127168720226452325143756445742365167338560684421809710097449620059193371369883089166042584610760229632421353869518094707897111154599107705662484232854332538407274860098684323253379545452572017204136340787885339796718575322264218509632953053259130455331442550846066997247385109713801832407068575965765618746810404934386479442619910802456630524645783369611069821863923236897383180294481609872851310850978529810912961458855156808316989081611530882545961253982801306587413011181330754213682271285028274610388342008143712038207006545656415971391257157439208423985009865059506892241013189701299041679312470218157467432835609368147653906965883090097242967802583576849217640970738591140197473563689306083908874803376232928127835773066770932530528746912208340883925725201787198108923127048648361178816817240999679470162420593748707121164330660979171668952373975490463086244076836261914185477317855422262927101391877364414493545621400254577859979746928993928556097772933317845830836065091334525783975231095890319756497158355070991185461540818299620703589220059274464658204078620991327696531984212377576300660260887542030727914194821082048286922444461132886707771869982443687959678649997208862004521200136750035979960471482000788248430739545732545696295181116010613546961039553632197857777421865339566500493482880565288536549582231415380231884515165321407942152794470945513445918683851381244328387567895141971916627091467686941738690691777939641305151500158057702847860794212230007256464093477549799011297653656378026234925760174351020951090106348460237031039917884719013385405503485891733201523795020171279181092724984189366513195439548668550552384580061495787206414476699365599642529097528767162953700998467003538132329056987966421803504386861960625555442716598619649092248055684046210036194879273258101741113993727402553861146287693810699948460809564366089661132175278316581527230167303233502229550205202435375046659767107885576254777829595341528133588317161855883177434374409551834504642468070311239575260231609062001092701889096561848121431995247524702639842262735072768903717041415910349092083910876842754957824001767631258415884247350695662565238144034114847821594730122144003513635428998572847928778164390590385112319790123678669353102040452693473639980057576137429404771277800609859922152249918972539066453745185807191479117264259675177131229936783408805355362135268240701652141161106163740001265084605277586017826744397632563539191872683704583438969517888939320605856072472591534507780950804269711252522638223145803794554661755408263014627618712053278907932893832121883133633393678859954227529325301639171600705969941993367852029012679275877914137491082694829062969278302254786708673266190541981373752163837707259214149641176521557566739127752874030075499494415555214564752671393701302984409869145934352720209488146817594551176332876886341458218746867646284050827409461234357774111696383933828150907439799242110440370616982935735335706319553825336939173198801989553977789817450592638100670901025210453467775920158033722551616190813970857416063461310644483896514482109977665470072998518062796663604042877851763260211581676240003999694320498763911670709038467300550192284499588914115544461263725712097900035359461389840506604569732523029076205591968539863670564509662201977386246878044699251884384056888669741774569655757547349359132184996738602495264347526131365945798576410814968873042802156606078911248469065481945679135052103894434997279858698718580319651640191039856552610987991948259892847437074180456914528099445912232175676003232416044822021886464264042947412350929854888933397273869661579919385885084719108789697672729536405189975051114361901337765514140342411284972744558619491468570749502281064186770046269204851273564439858778366905089790103374258473523121511515204685326550513293297505690158207910183023042809702233840359322848331600958599490529227692017401129979800801155859862563803879592037926389785216274774550018029864128507312723270430792972241712719379779149765068732933464470033600557369556899426810577988382759633702711426991711651454722801723524597633152161736164249182615450478232687988180207876386021549565058448250826008153119560530889393215111057930635420598156468842371234581635177687736950286258256840777067403430391122239587774055298851950516957477510055324544009181980570207238239078401243494340425473830861046690900864357548558392638772581648806904265370586415374695787371693876517607702890418457923013268853126516397478385429321866637761533844544619628826262066762109799274587621403538901626254350634469922276079453299200703494558597936752773387923017779231179321196416305454209814526352858407611390064310027155304664777873413940976770176963422893087662963524342935703625568432603386091457495678985573533193977908270986192816274815245375442104776478518630945402542120711160814272353118709220718508563204795996677890379319028969017289307149596282827393634838959740929137699737230705300225242217723936813580157281483271022675685192986946256399086903539568808025669065272370600810858069609495395053997427419152738896717902665052248243485348003436515803422248027907576560200002227618319452565176010194920572384486858472982826719913382411944242812897143779828788873884506751265551426099265031884543063294171475568009869574061438361210528585384826433197221464999933341782540150773695684001399920436030187368214266175408171874271018123873927889426656150240302927919195958762351136126106368431882190901040585669676588632726278913549138865514549185662090775862539164948286791899110053338023020201015922375013413715975132922031196610646659788955638145498299995815567020221765406594046616174976913433301729598352463625141591486636378713418596628087850211395572622200929684788473065995123294382072823346983574370956063428626177051060838594441399741251927876114106677033240474472158838897296007194449110530427297870065614837604051121314420287512382712393876417892527898503335193763283379727803096940862383970302363808428305479205959132489077470999597743773099370954582192290715757559679062940473407457642158312682932607838767232253108292325036206834949837467101479777174989599181987685584678103374972302244501521453854336569711857777373294162005747709557168325132851755128392729625444692266532392789796389067603864257912385784676130675408574126153475676886418893339522201596163381214361435068201420129427954985367005205459999701569482415837299832606424907610733660446459406488211230982670618492832620279950820697250017038691889857179450933274561703396291346788991979835390684179621859483027647169604155003146654313570429667057069672837962985529249934074650346629902251595198349186179379477412562787193065509176882480716186267003773584203710912361619490738278874636103619634569041810384827585025454061796817134566195053931731075478745766143613654568972116465339512813698608847923718237805194544717803578888186587916936013437966678115835190888690023871589624154819551892123394359955167409632918690899481849851513721341458194006177722533387575418978697833425750009189521164833331384777821439167187140966160721309630376374013874033131055061037720625704523890807250888668115376366142926492915858501876208254733947747089686710345526819353430703744308419729146153367585371348585040277986939439193169803529797156340385982931897108559596961709775446853405216666017197309299864713617350678208579249209592381457844181910681384092588047590975228106359992101179841890452409356049916197470505140018475965047861919515847059910850852507734594832630749309768987369747727327010446357683584843221536681765906237156409213883626425436657912625569950091862998438170740412093599341246710094679686030960346505568857131177509694323421745152136164548070368398299228334229461761240190064086511068880295469716765204934235045120706495478223683069732188911047292094689745595784946236043710272085820268320507236624350206497993469561605414883448781750751989417354148891204333908620783185968745876459603814496328011018033709778380727412816017566783377182059467063681237250511184082827752344489619781127671566275975357087123045664051149283249330750481527959987146673678794970735896689466178971508704365371484275285492977760457294988096515794572042710105442612920328635148459579156486126921732459433431282684279911009536171922080226361941281047807957209687517698143246853070627634962110729571601180263577401070214554466508378839683182626762251344318175047662983934690100364730051341935791398241665983656808354657929711761997344403878616873945262166718265513922837323467534586976468160067892564382937631547858785405355793900097702594451702254746399464722459036934236613140352354662036820772713426666111486529641912633111044445704499658264540640265454500186663187831624151129740993177758648296846401582066367777987873432131225550576636906381717479103119850990939447424346424767840694501982493198934052716152489996277380761432391857009931435775864414273072919545452460815850125006593884557490074293599187136486392558605027977603180589256725785381455796769777032647639322484102906103029858232969283248880230303205949721467565550846180133491825408689751838499947076119222328157612503252740104420596495371898593611013986213382219818219257539232206695641237336796802742482705009826504367860228063515351771913117397239093841339999936463462153517469503685711066016814024343582847756530631132479155484394572012400816409249770666071307309056699670828642951436814778922061496578607488068014776671689258002555882847961680094694617352998364911687410884639321467366832213631830325980171415145804219696016649913998807481050200300634180645116341809641305419421397380188695663587226869142803727379991132415840900097098835861551151597127916750993777011930894586352708335551807524837774903162562578053032060296621856253335256641270312911919246109440727683650411714210639106527499737888145186554712201421752890492307268977757956574365137086590758187164913145065283781278826360555988776381664728641224805144259768845734173534243874172372096434295338156902883735773995298478240278660545616776617127740576284935268030586187049012938148818440705564001727573100036467765251675491089374529766819943820929745157956356652437014418366963276891162040902035809977768989171779652139654032184309410911541482510094372462427242731908073029360672057008103851492395089777386016329082045095840199593764271589109994106137378996682252628245257342090884265672735037082494419083393586960546518272389177791653450450809753551607275003349632947671603201534175351541040709398036336170857622931763513128539103337612714442425894638612444039696633819945368521706601359004583787086964616515157182958596756864655601133590184027825646595612676390721084286576066858239244711328937714281489063859067841531352843490810524227357842422523657372217342663996795652868695680420616286743075176838416689136527513404604070038890796144583087046908802758016009812435043560466060248068458750867216828876362403644899395648539950955526303123418529079353713354064123442058673582740920581262708295721146870754579688006795590173552452368505247419510837129336979715215615621983022667612300743737192582991798002746759532453695784625450634261297168877909556268111935282497571347351199110871268268579383921346008077064410618668758142697372039015647395531735520878433203609543808118353743875455439468157484600431118378852662295551434020199467165113784442645258819774158319401626020008335437753730848725271838621555006938054202630996982973527488920611806450755503738300182956357772583076712357076233935593768846845739477047101488449954205249868647721864408658615799569319856915951712139004113651194492014178004761356139002232766550969392669351784399077751299776007101466210593410750092412591813053378001617596989794680654742266594491876836652473391394387989261483269189440147122450783639083763740474332493238523084165663992680890493616358326559744981085974874603590122658239768932331046118344904019217883008822492385897344756670185900676780208605613996810946378613435247681867975732179020077478699077050652265347276120584099690598656844934955713647173527936673005094719742710025451923472539681377925594573382931946891592327016269928095643487289585692995406253355576679324478656918284368646993813408943361911671080756633443157067321092854839349237874104717248733032230977391162841424425972851950538415590415763766799478798502010950621308532846825779731032829488706290189359959908754753075589354777800325682267259617853522711797897453579293400218338141220560172168402236454105619411857576930429413391705442529858849215075115269483068055250238826344282338022600829599987093162873615848291767152708117723133402525569806483460300462684441595270585094027830212269080191678739049507409640621541883066280425185692382957289635867302506001358535181779866092570438818966421661335788466138707218737130733833972075279372340429442552587422080841038870392469940888647948043770429062881606289068243929208151466293553896856923575356416895526326215825919597841513750570104711648040728376029868784151678915174386204040703375575310291081003962334778482150164795925217268870442097892210214237394022416643426382997946310859447485105149551158137785919102044234052713067169267273307191308223963137145309784697337255218522427008050555348715221998861748916310079467222880055082067959515277711805303263294274525050147384023841456846710758610194958159522914941284043983020437361836948148119530880249188927950091364291654100638832722966196717082625842546459056693236916032622565471720585146994057842094696173275873567333420751567229195222832695899304980860097261895200888194739230347627178619822418479395733076227183710669423422593324141900194429066178334977241745446330526468300922550229117359974204198021419119726619820383034015196506658991442269893017355466148428135117259993164498164542338096074564835903861460338009929031626512075518495778562966466335244554597497915389788738415809107774749880557827772874491963275490375027414255642512730107559187768668390162460523656580589258843137872364636123232827632257305385813361299416102365976242876962673756258488659852994334312044456370838464542292390962953376771482995458713018471565501077857492016757943669786987232775421802233744535416905410552990696863467612251223630000946581689545241909439016569784705976591892193964197368288216634574236674356634141052198163623272220906684168663387163331810294685912288502191113716909872549441232438481889250423071235051286061998949590139628906707658715826150939264901700779901638040987449447388532281855641618937145849677442856479440041599973729014060125808834554487044735973203712641141991325060884845516184262599265980123477719705582527734679062515582421169687644841767528256340588986793414968179952276664760718606930559241054697812447591374743275216726976038377067092379860853346288994510364718055633809733617894168487991870782823481010130314182009807121665423734989803702953249592500659751412212850734244779020950270160455866092881285069000309620100644631231312342142315816765645622481282677943030215476907704928050758166165051641072802536575902709928345983027253586029134637101515131533963396208660687000340445050933991596737746699041155311406188376050777703881892955550585903951417775747406273859815913581309967546709172292094731013010493226572058715184142179877089749062779156889662846036216376928956413533605086118366807340803067859886940215257082786820610497688984600034289325020267948558614160226739845770805826976100137112557149462728875152009658267803274485304585066938789503296257907523083130237493095158023663690781453636458263402926389761683078555313181077381025089857865516554279169085802529564562657736786166384352842265047473635835002832119292377404920580248125033970816782925871201169208561072673966772117832235754775987282202113512974092794994786060622039457600230539419370007100760182708771191821741534330517161722246210975322058535985086456938334128304289610519587627048748465529875582678562688974890144230934379519636696975469994349593902149503438023759636412291214115958371780691534215968446277924802041669042506869543652336579958266565853561259061006696082793065346466588737002976805331439978333100000441825759767509264803014763745918786862268946624994166081446880414484599373840637530053815815437442661116314940291762919303459516378376525040523154743352273542532968534408607739570370753450544479281112527058586819581120811593374764746360169055587142590021096279114277816238188751248609166105571409597585873657470071013945620096683284421133216660380106879095871716942915249062085565078566136545005894679098469974076512167290062564102143616090590973691691659277148664982931307581138826998309290407482444283333735300871096203619180067901680493446697727894002750239532773267479146039361813231105930270479753848142987848169898661488614395550885627228893183074139703095381774159942130144641521955082692498431881645667918089936278456627524251461941852104571859263624980443059960344797221746157954298224117665079328006201426828743801345962495052284049906984447015447090462691268832923122021370727697237048086863950447508704805124890129754779383537787774540241346009928076818871927088691089637385199279679543095692211207077460767029185256624417236934542224650665885172067289993215246950046907925725130589772026295514097396438787390479315623910589453431846258479521959014752436747251772881462998989283457082104640429927267396963463274648175502919364585438882617600379494871176881509909608260719346052326469969432934941721228231435351651582362933645838823343354647885808566275276213657168499338187907255859912933140872813411945234327356211232461329498382928473317952794767960097875144826740200121642694986599846897311365977636492682724034957238702688211729361938928960041268257328421318825331990239135271393509271160133595498490161163391527447426800312176515182972536324246989439941425233318555605074589987010130211006585403169754795089547871300252880335582869393031420268581065198218010447974299505885846304222260346304471768216799235596855918785789761373680046341399331650292746815041533306929661251714461757920070289412622632497241750403588128864051303145536802618576171939555353058111714150895740709305611211283729058485517661184209948988365675969934931422336591971015002610576348315675122000363519445526918579334712548172336218602836418925603997538680633137566435121948353466504162608662623254061001457248157355752582242484801329909068520401306556940437075766681596139208008425468759391671828083791182005158853811599302314339768090481760174374999063094347104289786203085052597069200488914605358848137552040473198324164744773087552136121961954128518027205748903514847660200626911738868582840387233607976637419987029484365521686454868734572258713809701135719456502050788152682069671520053754398791790050958569525443938950772800651872596138317932844565121588966267916817292379168477620497557440622104880318657623580234477141959321240200437671879597838542042718624880402955150900533881407933929724427300655855627054370857225150160150073355613995202749540936512911914448666503459487113266000038116359812893136720963861165710994504245527720377731797123445077854786822350632755484395407950959870449049065802495018077609244688239825601459639489688044389061182709140892806484402016939453333830529933223414474345621786165242741539010186261562460790504004096090616901703388200865633795599978318457042812721737869136621178585577551690732073146463634475519705385333707425602453536734475872714408041490972793418205160742958316509188108755161146090645654795970829710136627201225624487558911746175139584126225652382859644301113782686885939943879989357958427145591239314581901825945673662601549236899688032681966995857916396241210097609430139834114791309282394983598370898093446980266812642231623514393754388156039736739169908553925390804289692861867279182318730491804980409221898435784651824007337458977355222430446261665426819810441790018410275299470522177395627252857290127512219561135728490451255403762133946018797869601858575019956824475778962249599748275988262856624720677153542918643866498107703294288817663841771927579028921279955230371791970959034813507126904686803367727678271782334377677294220932771165135979714110604201911482421008879279326486857171219281174435092567478219459223220301850037024735936895285737238408599511278982855906680707680924698878120499710524185046090390777901623790252189949313350907184602456691234279384924032536669612718477408783190253170109366073444488367576780875258905617390923991563583156949615308696319351776178976323099601242887238152433753184217451415043942978291106702315647523215048791134651420136563630620410760374203690514983657272631305469810926257760074270578627539293573908579232638118873013576091345368548870908369206476903391104528177701638576067720587699373213799350518559647635752102293236150982586720539344457835199292662905252202745880790127128292485027720281370379347787416313442851601368790579082478819727508304430822220838672327165676520528764155897263626091748591102038901192712846475729731027462095399082799820170242361622928316074187144350562313956638151644570669776309819832532554693827807411035504166445655422714817068019632384747782262040777476430641029087503346362959546236436903081961625211884926066441500059260162858046958004079881059468359622582663707963116852683651611742952689576837121392252140520957312560272258404286353441406842898527495069138542580244484611311054515018299241063009968858072610957454778732941026815466405883731720930392800669837189344761200793527693731968405855072803916069280172017744574549845234973050919167327594668301376979444181340586957249029098476360157183397865238604559978777190288298724960768615438071006306496803593853647850161619112213886482463207669926829662503915764984361425161883712476784558032510342120344593722016034728460499462159018941113566816865192322650127056266219773258180994136843085757201918145337824910163254920739348414909456708635533297316670179118944082695116125564298548376485701198190339639793108805726403321349978923563010424853755666923907155080339711931769969506669929165912705091540861900042160942758127767922831823951567000198585819360712901053408054626077498673687298665194260702587932012269885381723151976701090947104271795576518178726865324293462293751664788443386154345930515647543400756108069918807815951532611619785884604252850983608782314854257791598959093298256323693899991659425932614944133624087584955980444400881828680717239279302060413874986766810938143374006501112218860752517547962610971559318863068627897168408419241280157545922016192443035083044392767170320784555122934675857873638265234127370241465068581521519290834555751524622727099696226878930702098661735620307099595227651251833111298956141910550829639531797047846189610259619028636388987063033124045567804750890579670883684441060646407917090380839370224148580361429977595992377931948101598281363638316580299222707971077456086879903767387675214542581279291237004084545784520633513001175364464850804789002964166479305754491070937874916057145876945250463675984050600075849294134588134794674701354153538272900875593654906496605902081086685533668957779648953732490733727681054895354630612020284977650659734751054093268617985305569553899349687031541514269330690299441257234295152487554053407504561426092467708623033115515918483633936001267885162389791142961287432090238438234485091983338492309571566760350054299533115508238953207774150635535554346075264854142414231865125260994334019931969764050686966432046748793534111219608364638121116233462534006619369314650543981808563199519969593725223127728865791411110327162209966945848890703533694475028641731854615201148357457603987716962687306600730650579513532842197635323015027059874392805371810684025619583918682416517232870148521338035453200682788962246689404669444868557934431229466245780481978010014347552727582051980636187061481541160422927208981386523311184151766307413254442938333787512008646837629233518202750672698629593322868790257425391130223997680961965136326344319841653026580384320894277897119160109060508357288741138011099874608196432606881977497524099812884874528014108346271479741644718890952966783604294460720975595481797393825286800817974320944712360208270670234085514140845635439367964594745024399255457341022227188464708898288942113205863991213952297254012092638498448178859863004079865405685495907902383980692784545002126481734009766139490486234073958698119963594149942716378914716686441848931274901527765771599688647571740970102928216387086884901963125508367115700632032415530284423247272190314503478204290784772719835884286168312352639995488935850845382138680219534012114690313965728752971203767915624441545103076791561431231055410905933799131682640025693926995088692310416456057085115387078282800237592451566518731892482459424755468557241026600876053077107884353130880128016056332034021762612103028289011448047125476345442261860235279597851198732377539635284451296563740687804808150524865266153205181575928048801311977107938142936443341061648475911376215967218437113586144070915347514222031202527491664321967560477140805119791867814675539226288499382466852837482611592277003960708518419641891641531002717898865072132577354709702005280206352442889921493542305604691929499073961499166141872214006415776028956911098798468543671682260502752020964767770007932190261602964461236463447884261374733868839056472967232917394999551027575655316252442602206918040918936766310888030949477514524150771617806197067656703761501769911627170061026550976811089479819445116547800916848562612988470352519794305795999772082639275892832386688442359299104886735140290078096873417714705684045791366978849757025437797487617545063206687686097999786186028830067595440180062422870157100414074108737328617566371729868022354560310948205188871858898769227232062579991691615018054977873783012781132897141912375353720277922986891567096001219610059529554318849296101908879305453415303471448686255468134091002024512267025580110425789420768432862762958354859352934796624780053796795688158790687646342634482921466163998292342542236093090468821836128187536783797091714003649742620686113369197288422442624413858363240668267876786744218263491783190947774200674379942334316810015695472344627052121531959484469894943891252392176081245758504048551571907903729743678123143589273776889765969556701523760298229678188207344126328687947412825818202491016693594608430977436561042080692595534590075332730880259840074487273009392103552140998986005927492655023030484698714909956431966413368342021436355163838424061337902599371950517835193705208698604846746255787542858845523198346731287813430888963195541903382684014301783373732880232673302270505310128597337235498263196931422129910389964987356735677240116110250013807526602476581461202376078387251684589544900416454418726580905371042631847230190535612984663571071387296675180799556757134590707825507902946814550079749502692382195688094003712571968240268048744394228054358977964882504581697210183358613087516020793680353513385301656309390969554365638500713922602491413125239382105942994278501343149748701888477060217278780645611628082431286936013445615757475924227422061908764051546514454721835441197066127620375757980845004952950999040355998679629927597751621818831370898766093025087206413921481400107867532549026546347020650776323957658624087977659361920032821323465614919337160616750172966133923384135659667320041847077451693456187872926654650916864119202139694598129576841968348757595041495930032863928224462437401602942108271394124781853373282848127485720604820903284429242854864629525337140187285104342822937529903594057718845282124664421555832498728411296814996483541033363309875513334575483100831502339421396799257224040409701122153138035298476591306395481771484653247662581140783386618919793878242202560619193435735609886169545503207046800309998072441402701045468807180665285371181058949844045313588527919359616270618296333921217070976063627495977009904084194927441256706231931722439727710720509364399113088889435274959483387484986541275730361044255288748704984359656662800852932125844556381316045849908509070816190390157977297363561436530799893897299387358561893259738633624796983829292513534935654974420873936422804324171073334907917377227923846745290004267319277395939381260082848531366231651584298767729787416790966568273279630021589828132221884602639052561687072400997558300004091843709250439303853831470692115129217112269476371551348787732687113003814483295706701114824176337776880586419606699932079231981797519716045860971530250242986772601017044514248063375120655831149495913985143787778991817392126451579553197712299864855515238282283753947051716775192845192751856747065972425139524577769166198276657192119042764688769785666845733334568837245287626573662796899686051838532648178072898339147573776580827622131897906471396562739662779919741947254575878676836505957249061745084842388991808251848058719265107216414919439671883204024080271189972981243588804575574304177860853683604237713018408733848830115646632703578824605964224493556677034317288508990032074191696923460815150955318884073615046311270776472575159030553084877509252422075298014659665317864154278365590196186616213291753800110248734212594397557346203931390260220015342064030015696194865053447862712547309691110159159976661342904846121383366648076799598665121779226819861911697389439838274433190612365661387557694215143484985510910592233469727599465531445548508948518215273528116344111145013141175761191739962088692846056622346949971598783955127595633147238907366327244086534434041536414114920675070957558783880294772533282949897316424967792677212025538885668095613498800517002034140958262128382013241481815834948983199025514107100671356271584326753431769945142670617859989428164928287890594623417666598962318884308835657835792565202082280644072645904747448715636677846721332248154630335800548312201061935832216363558102309654774516611725161928740083079973673140449696357577248248782539705144870229363655606641515710646239058228673777194052608278237926109963536868775716141286188452954142875247412015946605720946452779308495299902320906494377261499739206428469084256454782415690154907503709301110824761870330224756079232313821788565266682497318278234892236861953862580341616590907336567064715528991129509785703850819988833359400423747843144202247716504828128112249132227223742005032213906336949785650026111160489180371190451297954939379540397195120191593096094186542853227228414271659026590165633961340302187778221077518289756696501511192869529917536162102494273112343838443897321887277449428419582921647985047566959815718591177815037038234398621951653016949947364942178992147579354507819360055226010480806340317666428725991049649134693233715353693366301313589313553250679470521324687077924930164752593938835045905373092046338010193858268055285143486445358221631802953089765668630224826566124592108953447811648689530148076828877006671981848467735484962661845869399841574861780997822908022844062667449771342134439330113121586500108733879874858796547696085839590799164578541378564745318655630639416747561583789573802583754479735580470065619045005440370309856555790046376632799449787890174074877648782341314150511564645471763668919308357726222163165351175037917848591850785170544604426154856995031696673803881793592165475267518076795879694374611731643296563372368398752666985522920728860828502305507169217316284992812129564720895024902701470512599802122945197242925932866169009921349118447361524547152266213278200725290288257301565028836916224140338590292433306609998912484782264078637214465119633999222943085866068906929861688034835300847164482291698899133156340515183785615778773057019796213944522539717617048593915599174866231625723091890938372676999457604369949521565472702988622216032956182447724847686372142113458446633669303122349145136660115971876332538499268027924516983582808815351241296739986878676538509237552886213252483051235367028128907989085983448374026582933941740093461272646594292089213586759110169896493646032987730039155997937910660002076893702891431242256179156919947715443591996188038777823056572535739588798206188112709927548260916776920709979148314135160848229879696975224506942169147771306256789546092525775239923130587478223544275600393384186742421994910309187816846978383840560221761417195691750806511571668892723156250525338371348373127584226440595724171461651847047517501643395720111756553429062407362826624125934609361931562975664826411029617599076423522000282954577859110422941965590851878857545150665614996547059608066094328164598364527711094473031565926871790073916426180603991255463815179692028477967067476759864949579569995957567069766953860200079931843954650645225461440853742601628390052417319337953639590546685460013264811141356351076201274532841042207837239969518099973398922043698955417850025757757269074345079660320401093200812634297858526030947660898621815348657620698931978795043932750011401418883992105524801337780039794957146017265377600386157143397220053110142766861945496241443275646345672608920375953347628325565067268095023268269061974926853835599214106908187125450377923788523498035962350110586527556435775715849986692775603537696445440147614835924839508267384965808491454293653933255713961713130791134561544056499127217231271054370092496759609969929293973759505610630102071717328165315387780777261622611084704300856449451217141975790952825830121483399279015023193062901798264784118627029201796407275922264588653925400107293746028026290983912984856724944960055662134535713533929575178044607643046636587273985423002984407032618977339503623167475945440496944595673540189605797553970304270793261761026175539759796594146337478479097328751608254245895427517369628691502043910410423011829248993017869381253731670571685668718299669398494049891326463750545084782896333858111593139629036791399243785834277531456433721333863425096498987802606676683022285024245153041489594116552860578728630324109351324477561612194193700208703364862608344275732731678513443979492563227494522208735667042777205191408051966404789761257193516085013099815851350143654122137024101359559396864154915650131230383923149460811315734318954078264221465440930623126370029933740532143570022242559826914585646603091557392502108114932837628994511911638250304984917614437976660413824904217078802801150977509577269159538880898514939645252624663900960413908314524936903318973860137953901687954366414330679398436969689088545116094199758750319256157864745973257041233710995704930291514976643964424880054306624335155356786786554154410564651087894908358333128949681459303674127659021567563819390453343648399048153386261963236554298901477829635460180196579209311589756360180750088886242055978146823975413994853537466622671499619062619025626995053918102593220638833470774852778284570251160339931835792275619911903765642200814298534853941333905001813115504842552225428153431137371136394453833312127270613745399844469845590798577633039966885537984281418310369639685508950226614541324669437226758951780080562121531038241859501965234552379892991889780513802692065928112159116601375076439659689952066636476321378792696695740269839245429072077365816284989793987712920249813868712616481476847354008544094238349802201694022887583483756595901870617731146181260609563411192705054101544430366128655678654033880479077068700061020779781577127887965826357155596801895788569467638566794253311548040283777592312100277212736316209738715416997264379451670316613491343109573162527111341391292981125738089231053141025769085402601457966063389441805926180104756523436751860596657973697457969613980150872168995439127007063995122228588650972846490503459004267061236787679325759884468598168180653125670387693251226652464277540517379373338181442875995388446861983067803609714958016655829466527176921007080851384270344021685789815851065753340303930499725796503768146597081159660748446824507977937368121161382131600683728606459311446130730213841739096721784491081042524521619245147919200710730051175941568021769688038943709157690852780454404164228371210970827018949404940491557761724690420011428649295834506806827903152431471598311574113820488538930315456145792212409908036095453738257724350749628235823432578688118544934449324235647791552911707309344126243738739940053499090021156387114054389951685839785909820522021001308073875848039254587454138816840371379267230974457737570182069832410875545605374315508745730741128215885343638422734248656030297020442712468333426176837283479965810091414514995288433158114557378886585666189008834147297860116336541811642731080253474649332286372555568853715529124133633021131372244606519515424181726894113951715283983387072617990252750770610034447999794712972672796049413422309688024187217516010238210784402636012731695906997190838589946535200257459298078566588571272516631653596305959885076318402985060122036605836028025592374782125770084312785648105304547724169631327000562566009030702911830982443817871889003245812126098767266691371640262484782061215821214636120397361652210808467371813314014922436548061744909439098342422001438647722781692341331730062063201113668199314921588265413084987579740093793052244585326776340314045457854178416315294149170802861970486431070221246212644671519420230088353486141317042446173540405960047832646323325307525461768585141239130689299625082645335072878945180676942992057368939499419420461138519512952608491168834329176805198780386937304026234215130640336452729788004243751000102945926249281168115433402667263249681514054391860102097290236475834707581053984466544719133226746273723289794592058430120198760642235999849189093323281978309905638893376459822569401287750036376695464325504633765846599861331929662169777778224706693018713818479356291411099389796556912634286171007180212874588746595125184271734925603619940744955927659018884668282975638925648159213046395258181824750440094694700701285006855153375991091024964934651102877135991853599737440799693485714003367143045597677490935796484885633867046755947630081420356940339903726428637910907151788418396147336274043282659287658621895676031374736387658471587307484806792560082612639409832904663708416816467414833161686299356019127997118130353011885186534136021239232217239487436640825860395900541963918583014217882682367063194073085229954871964878091577350454670077068994731566117201150770249955276430265328088343643704475206830622457493151689371667478651788648618248216723687118502159587324418054385616820438334214878706044125361572463389348102532267350572456358202260236415238272528321790239498562375945496551224408319939695458248048516051603684221079533904092691057295794796776749524578687775315411446711810180821497831907033144155701290010337377633236163555889838758471619260121392728638021801126932422959072157041964605129171471556645330681036961880991049696641736060574923781872047273894677881278553091248159938695362179570441088579494863877773230992133564044965329977933402612734381776597412408152476657574208846744562979830366350167712302344506404386790902216182756841999530266866311726334106636025657630168333536850781081281690057793897984084044217721060417490504287950531632897755190053598555810195741613223521514586954382862967292063216189015663274981067064747383785807885045611938822532161009379432933741656307923851868400212596411840350656294805723771949108794034524906243973440679850498450200107991168593650334065632390719526123531074572951854878707984989670723896868526789188686017772541331984009432499361726602755084553937945227637218805484294051104234757165461246290488747633737575151461991953075300788595974134057310545682885685207765302186505485678593081541500664684261576263690122781127940356095304435494525761916768410754234201905921789508379452420572665408401778548180774820196052638696447721951806378080230027201869942531433791138881276171892551393085465905711194402514921118028610848284210241079630069557826712977130098701968780327580427134888302779865845676984020276313585499609593227679687387027945044102580609779843551692960878947384234719183907396352777473211154101898893651403671861162298796307556775353606858446742738474134678229054082342711630976185986123162957675621415732188840114291947495795822822271671832434764318620417761436306857304706461368163765165719628370327826804360967161368224745409756340625383998375987350053880629489407247663205714287400014960623091845095957840229545459905355053836603161368122211874382526537118229581540324084614295675419215972925421632643995685914762181968693868862371583925752047224135674288730912961003932283113169613700643586131455287597723983697787325185689153586254886212255344336959563439407934406165554209977232577059324092125612186790618484928083902726422388335956364850090065726880061018186159115519654050145190662720946124207869456516571701339477235993017813159316551081548529700314403581615702970771955931595637860633773027766195090959908969108233364463342684161439948458748750320624323487614241453210181021544290177417431740773268413500710461067634219418027711161595963755894564775777548254844857715250692795667835401053361310880810930382927978232436223033049464925487012494384349503707498043817013869775177002113192359068498401389782120311866907156455219491049846078908845735452085770211842394495712500465334480540728123036698544048902132471260038380528349675002016159474919877633251223262123597526613716390894744861852485264412159688264758365624494259495824413734586426321279967878327911975887237526581266596327523634525019428722840627963141150774075144408644864229739484571558885084875708665071436262164457201542931425951875965561064190932254239465609267252491316603205054277577919795641080724232326385216463894754917480667972802586951630481914595599780837508509935538857810583099262755201093624236640210114516745519429018259252855338504320635949657621022979791342538707469295890886829641451989323844893715328206525841832341831856353954239933513254497799110085062687038330783743856310176333325819705241811567871406594914977820252208437623535920655079301337014711614413557938188561862153985626808393713185531812776143009989895371403886465410830841331434086808175974565348202926247723946039950569990065702612335215929161530419912725353109608035129838808597320447010683972783047782374603757313271423075864031314081484692384345884849634023609855138255672574058624792050549883775883086358918724638586329695305419242679336317255685733932639386118113201457773376574663842011513389360620108000725540778474583971942866968151404013574140409080184831576242887793326872062473042579734814226278215424515576600012681093839035256085867116063676128308788808176708555549329962809467601214455701515360392371432924879428541575707036376201719472081071954852955308074544588682607131317644803571879460969061421685939839482510948781562252106973100795001222474231827695550223059721831823223859416321562313401948937394715398393758158012915493251710722399171856692400371510777778684033665844965569884569243270513881306089478615138417000829387156834808755981017474899697333995534693940706678453457854789146314905618191143401234434923224497408731259178907915143067079402975108963212395966102463082185993728334992808362125896688887627095656898599120639351782586116387517607512147550507736188512792192716434342907634749262522782634747022314934942308995869163562917154311542629306712584435639772663367921199751725052917498071526105620861391589464298268476918804026333152946741856055724004598987593525639969889602999305247228219164004802245226586661049186459174234521619486947688505747288738702077855958767633920411558027454356146833191465320827608002421943490727383797937814897344489217508369347929095724094863671381426396859965106910635630506110042482844044723156280796250505132631582431830214257979098478666246927545167056449097329922253188419728418561551839359496060813427810580938332104227759765164835947775303493427290162837451546465836489922678264220548131979196153308485401920554596167467174595305742791088712423656067163758223472569636608580048275990261896107923371270219402824453234526643749492197499113915145128321937494357800974523350716128965187734164936171224028503858129544846970787785742624699154246144572687252285151394327579877792992790916206373875693532574342301083214931690194815705646616268308264924052956115506052006533826431768420979905746820286184176480062689490765815702229020766315634245229826641369219767000720059546299314098266374758155294187263778746999854791412176005668596463896505088374769086195155398740080827954508671829108060170624175541142878329916491950766717959306639186950376828255460158805499470610800962727632149734879919428531328877703542237258245788780855279474305097872085510240683540815739251212799114934753579165995496193488647175889968941347348863559675207673732512950159399983374698762593693072177643984867353260036101616235688814575765797461481823472580858965731584314598792062289975017689253960764097053086102944153613302308348217575161599471095756999798530207567779447517061241829837202268733423054037797383942771423394561814422041101569906323856942449495561296529602105985037169394176442156864821749746392936234089411397646405289999340888655328114453765743547993192905570253609577941244777305117971312268756470184584718051165252661155723133177603526092629925814490628572099819017944437919197874699817611359233104360670849817689785073388252756280231571099415575808042313328177323607383086761476582692803588893830347979760712993104039218300924067839598002199343975642009688075790190056616794493168380654629878672732251612206117233703361131264072042685117343560661159508291576757386260770212937792891783490100719924765712930960613738750662901477178070533746471048562593310158280855840907518038356748525983713220767538962258566270234765551684837763772774107141213799954788282712013907478701986273517106674155161625415006897811766962425112312946131442501341335363282259412829425504156719890891383723428959217968911910948523580276618594365489535506112555336797941971791870465260789127664735880960160941600988578128602872255285538527575195389436387035064075529360922622054105975328559652537403618111178928765085042312183222233812977857514006231066238616488273721739695208528892276702642697123297526763559024780115912005147249903735811006733868336149605881413730847122412240744495858910154511437168900357202246899952161280387326761580699708943593701171923168036438580896270218417380892490846984369359173434215987442405586500961502473736431710779903878914517693909985571308988250420433649932415538159649044407182985180224466945435762326577005871694845178676818347502554811045964317149194776862661934497046176954744093740255222975992295932593086111959238452969430897830176787132920131165082659622670717280765471694702519350199780851711684827940703591690357126021666516864850650344777612564150535992948496590574585839090333937624350617670963187450193566725945774316057512093993542481297154658490978959045723020939132347680224119810079204063494896550213315872562626114583858996545090356370054805297004197760420486190295427914821698976711657586366860594165703797954754445259273270870798494762413124363622090319957697912829318910670641010156897100233496124311179259235895737370592961959189200584240017070552999136003564044423792749971589255628081615012652973916051301316477777365557769731017029216345437463931246993491075668237105283260613265246000642071916928169866208174254082920693989944322311288796172164424603873264515727970331040119185611765689722808064675702695445474601750168297046166425796913958755216458996862770118867044136288531728528949790316061770893313492120805042309698772767629706285210204725071612587929615906622281821598506906544703948282992921526890471278324084905306829199788467504579113829603306351332459991500843256424820261756607470914604478069136321828199287389414861968164282440604338833417247163923240841048337724656925682218014688003826360540099645463676128895960235915585021452483350274284916537759664918042943776184842536301816352666106863906246337235030469501592641139151337810591858206502116683252056427813468801062007193798902986296765964359635314671283667550886927003830037064523720429058617999599487826915118458123117862472517058974192938512035108137887523741909292043409029833635235635240674228666401149640339349157497572075770913788683616639317719700352555193528765198283503309434920265072722258399640237113043995722593181440570761747803957417195484299007364489646111516573081749683288174519990578772346723368424511645288158916675146423885894480228313658011017463092439790231010257300650231529728122865368998258376961971362630711605511293664936262029995067002049149256962559236427432003343558631804198149545083793007138529374935213937005573389006440611974660907242153955922813004745333269735889829066717779200463908411091088669274595418027448112383539710338303720836790714578362654322939831391133994247690138340252517675019713098603083051773029398138227076814790627215761069973272899174014143157673345856150642369671185311320967089780929103906712825905053561710025531441617893158379153081983020606855564694773980471634275165043939704645306548203801502061277299447250283291922885223144389919661635946112188345834919353131439325393529452252107662674034395878876287030711422449186851705159198989186666448346192718331318499300700347915389376841132009926679548443110380114391116351142495625654959318857303642048870468792680534550430327954742055678471397620393103699979542767708246761723649528221582583672857017157622875193075604194621839284149791312449014821827274238852379723222088584863605888051824536688889349266018717551659116059657757614928454942500857591232279073061118514805348625634849622787272096905546709606815030651970288648027965954169998890079943487942447266570152976843754358205935830647611349172804534816787447398258493140548281021951257066930474034192914935205173173567068548923402333296515904799939889683789451959225838649785296806052815066696721065487951504895760935212774892162455123924849907057822403584320715751477772177159826786795599154743959810924489813529176009563627162035771510276925615717512006645505587870899630401835522269145332815452885224111546798013391204302101572726109037427443637233652011644621477831395868299725499691050158180850833173496454930999776704372176902257696901258998729277822815854433547448915937291092875827050914751017017633113079450753967288760972345451148120288287531773433400209507863941902404262509972081075312920402863354392936484883326182673724781319553279392747439103559271643729965211246182788121250006143054533581075477041052494344116715915796552839971725512262130145078483413834953310862172424775794093444888842670061589787985407202836425794376235410069170974765413979957313967018098111725212060463274942328468126475668504154918146793493537926462456813769992855949490331790394736789896185329370125430438454028058947163367483398112766427015859669481362999046463676017846810957171649546869607808195036038873125805846550508312900630157592423241560295975598697308147034066895683887803171400818473505528902279578424234044791585518434189170489182170832787593259819222953866515053564055147950628231340526429977124516942088842029914004844717284930217001983999537270475334405221095440793328447193043566196582159025719303553014817324453817175928047604404206729407536311346608843937609022867485496746323123928787979394207732094543986100614619800818715748371088084389706755121106362636569465062230785834071020466662885605828054025175517583779410963241639556950328838649130002304165877145471573845855340418598737129462744850862960155308744938428821530603071764561789338063466666128060518268323071283692130298553186196446402990742301932519654751181424782623765511993831273610284528113054512796214857734652045358676990859261553354195467324173933317842010869202747476531251355412695247580570910797182246884781444970814349267623318302605814629134692118861798145253581000360858794401879770312906682293265081668281024873344153584539031862201570033512383578518728624366322549723159452079132975525822506230840435259771673800319871442273885205740142355268269007364494630032262233652697976171320961414619957357901746578362458779356832740240030465568061153449476289443488928569429852143164401710676282872362358980152099261718315425096274530935908710279848629586197128847298223158826531654364732195023388880274851298232387852328834777804594716019701418017439948202960575903340907264630584550442783867306917676368571330207912306339207719915627013767727659073223337258956739430260004170319144216099672024539100941432946041895130916810770500165006325109394733973469036508842385033895970683272418346619162369179607212852463460914244101401689332914524060740403545169621213598951764317114323655372903463375368606848798649742339029848709437844540259387220723287458969151941084692005649356325908610090019880160024604339314473977969077429807435755945408751882900751457166875275130492554217433750576046579387528313862618378448632424792963640801609345069195253794612891346750952868816111817643506075785074619179188080672997112206057711773740020287611306176327862400610413477862821790672259055290917272562702923636407880626384769486786000556108444243519222923928017230258166896713187844332282087769629178965718210892711773576558954102896682869645455048295763537343991800791604262950950663211448586830712086363711044193848139412037795178946062573799403370975757628694218817268775687409321060295688633909482030599998398559128498306522193339460952781167389798457856092720993748795390728331909764599602966143404726822518859749039278245089663733385763929128409011030035463838999881049442072680725915875594664401111499478476700437752984083325196819620084292974835123812309460230081977058092379626322264159316138282565461907346112949051057224426610578369650966043587741787535084139323904979861138443890390636172747769503219707532018107594702026999827953027212843198952585586827667782850012021063413656025136396180600773861328603376994246207901608846846808393713171079748114721697121950104786724438511934417890521102198057555546540385713795051395200049015599447248552061638430685300123228983243676221592637022677899249123553073295466978790614969030696829805767192810807206286449630996389311751248793798244981689816756342127581371521949464953498311590925680697903695927697017753006667307847899587650145408055387025546603435012177508973728822535977547997659745944460226520740967724995215844215404901236170978834334457129439314089902213464763819419144833715735839346709858019921648109227756540916397094830903721236687016257425010556663365681005888035039990933334555718158175590390571477405558822454238605934434768091648530077690777469105401783444938426503973593323688046755459467608491696033684835597822107928667875164765280379427277242178908984141107042048112603906249810506522532500893281025919138558458188039955018396093212858620238820638843007871808148713178906419065293403829111697647243387823910938827216445944739990792152781897430389380727835363838501518470201322848284720876952361245550141920833557658349147230418603647407486117602736350631970377361255976624472137415774416719164682526503650911015739538785553537313957614902602662777633582337523373744016109384061813849048849012912201343869583148592871745646023463473542946652690725702066957622935917632315227654849040912102838947633434573264081153000563670384143688633861424681814767217895805476609226056458147551951778565143425329474000517772747601912432288984847182778464105093786990556713690644781568061019402442829580967454954400393162203786111612589544636858710419407018533448105472505038343854527553975706919947251167564047679093109328297756866909681694837390839566354151810407031118666670518043681350195406325695072969284163417134038248221382452328302269828785735443189443358221491294573364566562797359545559656441958821878360980467018799819327634937229872914081114162255523112382293412630947637572743979756921681109299226505423802348775200258218100539887902324135263127009365681002824530494827700294277371961852475210699587271741291412196313076823441493028645554671862549154281999701730057756768565424959295211415691493633519961490578152595401708202426894037255034736303880907272431387087652870835938978083249824700894148778930290053165374781529576695181223450336826982214794106859461139226132842309248830520762885498353854154197305927807646936985995821763581767257620002287226675693961239615031944071269258300038609205312781548715510373324007072117089082842693838404074815303297273505098341775154300079757556594991823949084933079529508803237049188501720598933200952112686461933964846308415961166470606882186566519054252431759322841760563648575629600775139417494372150373628405730952997893576242785385178207657406554418259002320034886753560852321339271949134647873184427953093391683125130305864934279073812488176906122684191671995555025250953612006206541162872778805563149723497469578610818475958035399314867644061023135788050727045030410720011769845011992182433526348861668747226724133116558181965063037831906727246529956316685760006902064201743000445641974565453901655003647777044337070537646780621994738796668268985089672858539757915863888917581525462246973382778935025628707342910097096929042275610515890725756237496156175092794872848865978322379303833800133119539716583406529265713388233291403347998950980596105406476470835142681814829011233649424916975076901262290513336569982095872620409988281020859970601955026343922602030546625261881134536987757344964266457714332409848009119928166023883032933536710167061266926715111178666746135118519351266969530975962392990993196332664509991214947612547531135292798107188633779746274667203501898873612429716940888461430398077126874122416558630962875672428063227599200476138974698447846806177094157673713962670240094620876172199645601421432317089291204585705855915706998175023609044169786885777106944066565783003853317434052014813158012697349105845485438377452807621732049101128985160242820859222761849448463567581887098455957407813333676307837196274783784904243936617788715440629155334343943644007801571228758186227527734439052148134172988691806924944989573648863154607179703754645006320490551715643296484653702652832881403330874626953585896446965652570946295065435610442616090351921123659545992282939240390316247021374615394776050518338055332955552594957151491499473628242570971004067887194141102194877406552875913555385117919737028831890806311684100268442659155426883171108879877882666175606775506167067899020718686384530330064736730793103206181781344129298375450123224874340707617810155063625923589017656019065393828067725093696075371720232051216854746141904589874344481530397927538476220584993820120812419146484980219462754937120508815285723736386572603982813250597906989846191367293843134885525346012695517682316142748465454024344208850632780784123219501631824213500942172042184164426257628415348954011542521483305351631433618707672514711728375765416893238810122768022610184638220876799854778747104542940056511194922482131557091548176091401020180319871978983560544304804226107678068240053330059359317817666688578042611379237158438682532682671424636806790526682098230283367517283710570306606148777853369258010512012672392712803116155584783645240913820096451309801277384403999165528821910085307464365984755213905288045193451086042973425885306750572581070858100907687583686294652320643908571515067630421002023790077805123534659277192652899166966056442451812081190722497668068507401511108775883928663255842025991594723086208533130610078762915939590471243275889756403113665195094302148948432925328817228036808249374781479898500266809487154607678340487383686377361657473154060306680496204169504224139862795355609099750779641369636955094322160314768633822746369174859379131645848421455889547919180145802408710890369851946722038200776951316087650458168536857890374683666239469464821533134293741655671849963389162146392811071477328794280319933981821675745179771346165972342999231651821608631462673407023564382830798882404366000127761217451417295769100953610600173996737972937301356702393043829083972732321180228067331743264142167301744750967855709848146730747431231446139969028051765710814327196916671652475458385700437289402393031859824821543928549399467389072270959843049032168481349009094189871350112675220142351068265968258043680200386719929385787533009796873789047307356275010492276311061078464733556891679304212252234297092597956387736601433856447088411847267557237435597414658922665860885372093751919185889521379073861343572761259143513112643161020076066423592481850810204340036512855650816125656370091245978482994164219784962436889910053372764582976055136415797067709426855435440176381008249131226259006631685698209327980141028716583137407107153117464152339013620217133968946630437026477094714930523717263827469963066458099408265278742593792150379406147711263284318289588693198289179793948824953696089546288103308661373692577980135376632566122113039899602649652757842948452754122034182482110921001423470813460095871033278159386947080797688267562521661506965856630980987159056067890571399129577352076946493379288222482712259087330031391345083027388141243548251550520247766600048433046833514603830766244262961640227143423485976002779703192503616050119342691075540089882652055269529263666663721685023996655066372351262821111470464635722723799986833376057657500723635165479144236175917396482013672588237844800310295429428810917371009157398657244718737038269349584576069242426965353138050940260242601055759834675695372874708401824925989993019332568864894838489057935748737054445230322328153604195552249815169498080997850566408246064875384276032259393189831421707684987596640202728181039282845924036526429603254109003432687761124225830019853562765134779127404993165247040228880250912617397195643434058445136406430063450395959993214653676190843810797660460147052410540162226064185917743762493332452183176546408220020571666896748466624693517137316395182714269427325789185066495432205044402825799826472903071312920444523582105248990964970456042430047749643606154532429611984932085743273448180615667467538511664481335634149836690362606493520800550465774660329040005079385745809382851672067701984035019596929619566707356908786178659728045098206948764489073229584839181413870786309654347870650525826648494952616917647134104684614936096645845289775935187140761499963408044344534986228753197065293439596802243548706720440389339299792043467703111894637307688716869839393212519348399747111715513935105885597268072954005312364436297550197575182949108672722231680033942296898970562575960104456012721870230480728248243244631047091200437127041815287004408673824484843206000993914882130399923880675148034462784038393807406382034166177610897580504602414436382587905683728913488187284886107671229146085161636209003200382036532820206086644951705717818614667929955365303339748561204546113060466830553776893486664055902646914123494165332665982917034340134999334755562245236708992482196249702092354301186887956044877007554840028890096237509091891136923277336201655768672438866737656870273723965855418830467648545849055453539681630319418280550134159356587967631590685129151014693735653231509074888106352542325987417451606986610435882062978763464697282365564092050342975313651954244291379356051082582168249496455008743900098176434819675077224911158304635410648899960332722208570317407909494474826417136243494487484225410324626074739911207354178366681034940367177893900541290459933682937328079586183259556693587771378829345126997322111402528138474971455668086629279576333990215517917386701246401722194961721926803300647058258219084593555644693266942447076717446325344390861130019518059537809400095001128773966531392464714304137300055631376248575443234261595872012623574470377500902293828650444358320851966974137966695009138568699754981670993951900202646624483272461569040633453156768174513102654844493969780669969118545475273788386905791994054166243867731128773667926990550692985328822104291660381707634923323233197842682770934416394097111890444409062790895039638829313081686877317545086898625615059847342378725388456384716351658255907713615856010707936539498725237878743584942413455396496926086475686319930261912837960895450113803559303864266951633062932911977657730146277400548143857807607880624567804218612218757238672327029679844577817738695303579662702082564153419596385738435828548239297937829385273659290328716012472178521169680473571125476517077349313114829613497879634283080631364207726284685872814047896722274892904701857594576232855121241804197610428059359621016024698218232576278952253961049400403271530614149067838207543743172347467872271820795813292807030153260177781983161532767708059610344443382942828068654082463170409582789735909105732014171387463576972012371421322133768211279211966825109922541541222748553408244606436668414913148232304399943914533084330437954938456085163603022286691312174415359665021870540641511516562335003233274233126351630185356883473866558256167194078205012236293693754486097208292863976301494392537068745537306880302605641717595854092492715580892326665938866285817263881012329419855579827730573168410036524588400384346818005907897822672158687218643942999648318576781492348691348938377806734470505555873567404756668807159483670785237121069685073290701427042734728069729201820696872178829617548646068978285909637296354703624579913439257901675676439979228916438486270933038353039531265583587233432976981642296504559275295172165146938871410693053993889185414258541571596605411005355618739075011004153405885895165284477756525288161765980019955065707190928550322751700725222474931828458539844607538342124773626474175281811464370929228355297786052736154059732776857042330142194819165301534164397457785108446370418906775134006670050779493648455797133791437387095537978979358216604833839159756276577879216942178896542017773039808262837566265121301141682280612763865098440832705662314757368655763527802374712896526537045489446855326441241898264466762131640758518572528194529183768792565323677825425051925161428454554519119854867610205576270400170937408637209008725275440235003461868313992145356594820545201385595609858588119359076931353824879347408508249237119055988916932033540361506503631477161574695986800422516023454152935176803606983582339548265095235118858041660535870169432260839703998514823055831856442088072574066847578105488943856333537154211369683289090519360000001242792884854066482306105293820662241233172738539926336365844293169574412244903807895084592159813729066724670503132386471450257113653073760960815152105473727336117586503536965404180646147145095316843615807521132904544902194516596889307906354339896839145555519338536789604496036744734650446838063571233321546375884423539179586791391598462036379550442946208977520188683184912090491379678059962502468908790861237360263359754215617832874097738770643928797122968964240879194567977110964142148743772846438955943103304105053579461336372008157119347018954834495756722359349632522274955114510649051204397474757086381355009475833159239990131745168048407747775136250466753314015425463637623771101883048857060252431681074922931710272260528388276082117836755995693427385624294527911144167856647734886685685773157175002424988835624193139258455836322324978701597533141368649999368617067901715240028124736853205979099163621779042910990134910807159433682908585388592714466231556744206762322026298413539848065520858799389548602720597017477630406028332254096198670772307843373063774063411139570184003926621381061108101549881242021185490446528419908604140601975055789050549542361050662245057606787057934035843332983241785316603839789326333206401706402158138623952724829210971237281912850976181861443817528113149607878209301530128678373537174962232931173429732448004112472723973293142812492310380228305420480914060417842323994864968695091396558493523419678303799474120327612050886835393533720882817799633865987287266392260468622797733613140275553486166294914234384307412376154653080433921108748835528281128442301809533855510370249914245912558371336017993172130742693753154423296628579975958533165001407971408194099253901257980428494524039961424392670563905554360289314990949910729993802023482211798696958097044125122000613793267652162657634272294815075817701614324021014630503768307968163485511397942030859632991588302971085504023695796518045057178244711967115140870963789142369329105380493848546577083813132735354995057076642700778381383157143775110240742909955310508264043985643201187506713273860057126732102385896422952271496414204604645292470115982425958998927375803553654616003540944616610703063449964085061226764862872500025839287635090342285706240393270516279798209480018757715242410991016837912927021912410345388999624864479346343744758233024641962877859635764806292120687382977225163658844093711117856163809398341285320443736406416693008191210219147104679061393991416482145420933813663808494410785800886132272234625040769815194383703800565539381494823461433822961237321015765396777243723114290921032439966078436489231173277310711323939738821909667180937804489033575560245385110467209366831862224324392487467241938614044520715647837929878536585282957639167976230309171797362241472406412084518514565053549135337925880430091882391375161057800599372757231738805747071876916868347663823077818717676935394469580466248867142559403462494317294360317166221874920352352203239884255193725637372223374099951549286857194184846344194251293608462455592203344141633624631696090633704358211182917623766712772346609361864126505350850319034792950169896391036468235848047422481405808650669697374593160722875110325229744421467086218931544100978393834699941370348971140406620224944683926616552574781198352315541451196836543599762939383877686671394237368650757987776157305305478541374778118735122810149447019066843372528330951774772318131846549881461668346277469429049983042114964106003056758732142971551896630467115449534413439964015996115391561454070263877165259241784210809960049831551446026336341935791329909949665796589112943705789079200061312074643614054162721260688153777314227761788526827739116843001953446782209270710604232326535642855102342507794151872522468778819376101556117883065949707408872690766240609369557721177387346070776355601963637625181175969099822952840883024573971922841434002078741838362280728346109746900737021371194975955741157311901654214434654501839350139954733707263142974921249077627130878859945858450630772066554854311872546509863706031832600044497207320257763718185053140409809664768724860598066926514601339764247218237040892944612417860040684764365714239818132592546960320282779779518168377990244577990704572005759213774706248244644093734730369910833601523827153787898746955321107609391865150342833450397438944113190260943432807687944171596083750914103603983245547539868126438151686051589755937202913936496725033408036617127244485040879728229204378531567252236562835023278798429550820387105782174754288956496629084309505468708570931019723987201122123967605832765375584244537275654943696808553143388649933049592095227088157438953226244513666126546115943360349855095773571547418108529791361141280457059095705107973197450870050850999600971637430305160606159363094408607120088466630350064219820866095578090007817224931036881627128288318958167657478763570110858956856894059847596458379561996036348172552504775225262173367262425280239264930918704697812633055502716741274031699532757530158393587475656498419986512035665574654882479099541146347783959399380959592217706698505411795026426526259143330592822038312796301322643392790906258392860352520212458135562727858973101806027564492317832682006817274865019641948733379812404566593360526196572622655328844827409840032125313941916094318303214700538906788936909257438681073145330220507559963070189902222882772763325083046033755931255100959271831780886226667224088852841486782286258801400565426280612494702209547411980586247313920004139629242131627813107628048277552537522677853811820469805028895635576603121199649084521135796200639851476157317357958427213695662003693292162194047218652083438803191378190615390173526366851799831280865173698471363071651845028136274172336159187386152479761677143914594331460533120829251923984392986658061017209624984617078259925927961505942409971886324976771520970251467711878787711244591657330099444057885564355063447001243886482008269105734032265507565792376894165848458361551028782021937822517005914884712325575645442815457288417849548448118897704013705517182319121335527132826277024108948669689091929398178572351850340298005436631293216491211862077269551404376751612561405294880077588180876409057793990791378213597215556868306860837619568540811425449893663708133499569262709636347678953180993381023183485179694339372216578130199614241506535284712036877169426338006471801340993056703843194977250812469298400021406532207235205893535463867059061778218962229930179796166802473486759708058265851716152641386310783922527585461174896455365887132100580555516690479398714628765282901758351774183713689761361732068497138864453135640455232840333760920211513935322940734005926183326654863329893122125241483464685961507659217860227795696260156158548451188393678880924297076401849515769785609300973631741024402312532952715000624933960089091303430570925355597778088102056679393039023685416015328984006646069523294110377957808609659871339983782091116243912616556571005684128537796212506315097337192980504627759724015284275584346061915861359273340877044421863404764890099984832209455882100165307838540004445845591157106467478467473028103172374284743088706214176274409976340649209116840655950018102617857737990419988354522198850684902892176303560042985002049796318768458030497307246074029727785490989933561142047001997611586919197495503814322227806860233144572651075627329366958689706065617125694084674442358424499158068703591831463849065807992928514178154523970686079305298490303047491693329879931681380303415493236032352285085234607461691834011395446677550998084109191484345242019048994153192777398416755119133215651247700782800489675922727099216227898109412127270556222489476149641789360958985093835403796435947446487847310715039346476684642667669629779577171687504209401926184346018018079334785051807717363309490160261344593714091093520196462914702381519427605688732880862508608718007705561657102333629837019145160614328571835760958845057515291024991989982568951025533204115743548984889641283344643785853917743465340422879396026019467649821605373580281775896841507600239440323064799639293921678453078691560371451602389399636161527463013552362443968415125252834167668028934129772655803682431923754699440661249265873362112906877365513571066488598204060253749114769458466385819981549461600001816470741228044064152776639974505969310227599341236844807962989300341630052942139390552917708471339974619852783295097943137376096903514497710178171224862786837005002088404773082093799278602760299336811157090262587333092294866775615216989804292064528906375619854146392179519169793192495214522087047385567609360191778430188778090420952752841876416923264399946198787809697776000301503463302300557598088515229759221430427370748783984373733951042191367149438910827542056383706895580492316707163513064502507095442239754452802779187344498480954593085471978047178917406139278340780166367426690295886694028526195067955341206757862039939737950139606812954265809808197629364858536648247277856229386575888637186279376606119473243437472682316055043414239992030729060953315907131522590892510890190054738675181537936754948996204145940898412372332044239477155151029984322694060946669613566117211496791197331197517302675388284764788255885859974640748356663076721238078062300488400567236940066401077530937577914212303490861574326367182702471610149571729137834522015379574937243088201597386125270136457367339812203218707297185892583607855516679771138021486537388173049786649220685695205368843758270163586184568493201784575276073884406961617621964675154496042205715422599178959699049199046032242774444414267555717492495991440112773741256528216771386072534857795994521291944927420627762835512557695711123232300894673748323770501837775286735106647235272542927924725591085512650846211935418315126081411324400271419231667636772182881376528153545119062165351075935332754900263493176906336961941311885672847678896253803900487083668600286082559517997610048676078000649575709316843494965400232741163213153487225600814185354025968471310526200769402687365542124819402701708044832225912537076549891585545794910218868811867955465958799613374922575798459870376880171457432755411690025486896639158188629244919724689359058146999291373786951064286316547300680915074516966483932098401931779703822816437964027139162724176036237991340304506965229444903768800099114118600438444949754344620693881459543467146580484492872650859910606195746162027972823331364289426344175487215352418316080005032408467342513473157566776518667120933238494267721276847200581652292374707215510605280668284284232397584091088872528443169086707924311991263405724007833759664670439480813019299791670539883444772067188150191997296804148400732477217131481935703229410675384192740579417853080017991161111640824776952150568287025555253591007498033367347788051171014460217465965288601213957486149932745485189366343371182958715166040520296013123539984313975883727841137263908566837841673927700431185037120442103726148087244994395698980427717308140650072077850043519496296658118721567752278360847709244620550431620251140540381171196952184180420836756279584717480974433294678180813078177672560123740673666512256595299012385166400982966444292179892419237727999924592478291948202511509614804679609016971429667512420135159566268195693268944547605924712205976052462427307328892409992521577950019452776658865018818215764973990066388824391320664137311027522896615233384762620760993661283390366431393389321973234871379147628920748132021635999886634810568481998964752679021835430319169421317566047242942593872169687277056340231738622297085634606732585894796407433280040545705915036077121841868713484331445108687997268697422211151680877875700789002795722100493059178952844369803470399664755444822792966820786266558716958617136077346132677512175470631810845363724791228311633213307698968353294434229607137649213327230701165646488724090704287035319559029262431386928634222392597840933152285321244998578780403818336205837427016859341732842830782955860694388927060171930228247197690672477343077491276837546570066409456570504790020716965496214286038396129035596367711165519820848673097548131627141895985631022934500138260188389870579824388494686087115869808507039131996980695045652072209397959545429878191377253366769901016973539515983245042449523448835219397953906670971049598141311376059028569553438682203466681051222268003142576656780691857465374302803998982643663422365000472689716040621156311987069887211960932387959873115136340232514737277767738186403824597385809814192095909221031554015310942530761060609122868487815728753459041232319601282172034693142402888138327085822718108244710697350253919005051535693454207761276528731387495566437693335083922773759052459705524893370980420751336420796005694954327538157817874075695699651486181366071086525065401575167764026349343099987484612792727782793466237280043845183968892218024292830513591124277002713483653548995852068417709488790223410535525056514779470646612769975978660398973329660811634560072315481611497591084415852529191581956042361564373969128833028336189657822754913130654310958426377376654624866875560178850706146185011668520201371106477600165657308670538298707649864492538360852854425157313285741796776803315364905783264242064179482268553470238419735550952128635175556044334412791576794699192393164494284494472904294640943718443428627297345988889634045881048115631379195837301182911820364120549114075909361695285739676651561950189518107096558485654289073543558746723346450856698085805873756299407896225169440158415387657253686864418459880564680683984699734752209149001524126876334164153816262590788529318777373913695243116330226894248853957677823996779092338369637018049835158833092740616043049921193069898868777623275306475983231909560235459922629097082927812183455467362787340003844271872982220375789154915724139739311425400618601391259026338367117187389371425101362325356091926702313583316875809992493190412045040810341275802501269696720252135834987641459640120010648637088940299727801184465786854582692547324356810521951510826989701474209454985245779061017264969026111735752525662888536245555184794188063868325933963071915449773687699235018598862462911161856488300212303716638896497999844789064825114881714109833058030134098892907691553414147345057033858561965329026516763568256323797848533106016161618550891538709767204027556251481650569794993627203530637212982831152105432748786473021747441589717744046792715797094647874735670346227511433311413192612271169453323003053448030936733978406496704891535939349896530797413680652527863653087257383231302102890955255749846108725882135321735459332181296390831020668363884248943375567267291854676966828935816931321910288050933770839917910162700825941880436009699399321070588145649173759748893494195074284713129288706738947129975321553885552215579435917295799467617946128048605947122799673131792808664695191915286311521518359703237448571949664096328472169580870690726586793512882717429556930348661696510792865263298679636066528090222594817131888011316456538267034924673230148091022313295202378966385928525148946129341251465781088227573824309985496665765731919022470259169899965896215828908591230584360480295250716187160304807388218013208146578649194398049401309450941966846041686667199233654050114040688357403712652332538760542219254257279904294214662764690353834221443221799024298021647892611376277069793399450141837873644020042141242525772532795644238122440727510241395259963422569349394386661204342958852840574473464262498850627348097598618595283677123590012683823896609847698057716115607718416196456339425547054290734660093667745389694909715713092236091970872162378446168175278650876016427642881937689907814952213203330234925743258488233306277668016468779485253113528676453878825451836835652986005294163224812784785739424317690257373805872126668529340263896565561611943093115695442730260612118474014766506096284844868086920460520135767708882570513020290619181395202406742965511799409998024657209204758181910285898819601801853433890162333527312443900477924769205742486916935212682089670373715099447287952105135331759387420337774048515926610299311222569341826941345564441832675899977701071329994339546101525159501529112836349277705776020373335418000091548516830290835658702922403545057339299524699299077930140861441482904052352639032594655382231495096569550741049571150039733471959525922714955363299684563440452996948201195303301291882111312191642862689331827145558556879934610114458575167128983266592778575705473550740146375021299536923321078090397635373586734053635371520624600547048415201188603390852168723349137486984575135552531374184634654197650549206205418831389268101446870067562765824816009603475308629201102324043193179973704710646184080633778802336896983084888350755163905628773633249162068333075579535503764438957921228832858248259677605513474352326317620424766258310185685042318210704548280965748556379750255630399779505019504575111198791002777960783034143735090952267292767375866539940568265730364872130991472927335000058167801162340358225615213058244570915291292874269567789173649329647877973940352164172968151767075257911300764915215381170749201469014243768939921481143477488494392292713481713305276305032293762063214456847115221918720472536917992811261408486818571138860309961175386331313732974886670925582489077594933730339260823882195487543895125785458204144232494571169559145427941956851723628445449068639452068254202753173644939808067089809285604037074601387892000866927236409434273871349889897172092643921625596008292611875573216866943785268039523115579096442065549431805634537878206010788558253035510223974726408319381531850955843734561812042468301424907223289709309521986377349825969829613264815641650102521449960830255911379027564034882868565815659130767229152285501405532255499125463874403672423581497697616005925928825400119632727001158429024630234174173914834486633909716286183456837567720029097094666572348650296374844693810146290460968772564495754625065868040858411331471582943498151096537958369128603140881591241527727925830760881840738580949661029017202874915095412755766829160472593045222321347982903800840000882664445963879406895722333479240481958642565647766458809289838856923668170560557111106212032377770666398793629363106518078222310967408463270040188145065220229095041225495148880532926672799145781074702624686489221093694260612921935075744648251251911321893057175847356380103645274267211203049191460093635195302989986894505275327420409178584322922562434122596218724426055228975771606845272711778553111495347275178664615014941540615209129995064765847506007935650574435849870094992659274475128831013830897433638108008372465458185752780366818966450373720113880242010178254917505302347827288786795645878789541433734785527532366854359576482608301712582078614033971962807201453320271717607969279166847415460412461215427424251413654955296997732447839332233281332010517725746424363021427018771104493858656039695597719772232351097648520309930307714744671043362068960760303228703980447684968167141543588191686861147295358353223051533670079431504734613204973157634424858621339660214872246087644751055206816498659781193773248162199784508033228710436863798806993459018711798655454292262949833434298256183749651277723491895513374461639838217735248532688170491691626111628289812457905537248558728270379223401066247700794473516541996141853290305797848870367748861076238166512774897958070904855751001941872956455416197664442859644159630472439729996964771258291918417132003034245020201813631935797857891602244026285390661438449346901515214939985405489437379148036754030416359804640862091035009824618316635298075504652664166099004474696854486203351002951998999943749332328809091590361928539754627763147651809083598438216681330745048768094880871262532661437421423281345290025375871910863792214171876866082687486859560989724419507454429032208441107890109923356382748862789600239440189797396769982332155337054779253481557022112807382645731163128729413529567463191405155524339461976826113717892545159337218591480278119559882582657785219954666755573434471662098057862008800406576232810089806804587573999265691130933292463155559473265697067208191154087819635444044000537426488829419601372569728690564151772116978758390749724922640506299235136362378817961709456972291157684835062721548039389424564379253595564596089301349330174392464072958394386897405644704289975842204648376417775899926588919937666839682224696462945706604528602503723925454216018567580895154387293108936699696533426510314349795402565978356767828352191180038276201172049839117411856926740521636922119185245500536274681740117041886485443951945833210502098285881661191863552787595251730694882282017195390420810065385139436449112422789059325219227311843647228219015731437616455807441705975735909992333060958909021589181421715489593336211710282412695132090690900298230519167918328021160924601601739899903657119139423096435680100409662887775434016492338023222217698728556594958425913144956712279354890377100900494177908211792332220523212144711316315960526097888798755600886363379593822832433247070759001640338255509037495775112603220068852891295685014344974007987459719727669174020562072298972154951975118974770882732914794527303981433724389480881585791998829376689469442018065458104479486004810362718814414170542359032234408461235788745524384779554177852690496615612807153448541768309808913297454489610296617770478348148795139303301305864013042540045122328545364855838217545031848200588741381925339039192160664907399061307339339647623313182898427246456283852461198435421994936423073486626463198399787280608713466591188355515300473390343146760816784742156589512456860590607200228410229916474353305956507361296701389193266762245277987240028245847870924931834187009320252173763950066982756893730951892451176257756293720483158777498671002196447465427830346090395720402807359352037354126923127308292269536265025138996323571369246431592382131864285717444435930059670598428478091432869674623560646054032422158438923312526561964535881280597809159625022909465286045562272809967242694106624432966512772428030300091673892264186374022770450924670302597676361852159561451018156713984220767099441926329064143421103965285913502679117349789833801424893563852374189633927807029132712548563111166236734783589510245577209800399061723762683829648466967441974596297185102663886563357934399887136544018371003866652405582404498444264796586125092908917115245284341665162688069700504896080746432750739816450556508688371169577283423705205192076783333317952441854107723228677595214090548207108030474920628571441171803995560623071921968019352907674702885575888478056183524868579472461105613719275558060219665693230175955958614538825384429574731411827492372842369612650398981474989234131743941937245235885863691681954106679480030199414632560237071118184486770382187368339721224350853286510909594145523660011182055224768922852706205487927160370762657841881322175867501460302327085143436926630108695213193465374590184522304238428168331495865978639549350298884881353338150310850295071715411374204649615099739298996338545934718007151746205828174964086558411647581110538843124513594871097341343827225019230161238737876698675574175966277070084052983025237315867649186747540498091736070494654592528194348259741717420867161557085627065280835783441307608327771785961007773197266544924499055933819141077912394726512465472993588043703570749058580106663150040673109740494313092668313643164274341805493169358654123956311655900535288302508736491698533803913732264600411160854486188120669240556007175482448227724583761671465237899542793712004555656210686236372491864226262101670504019337807815382883870582671088044233038051051306027669606403896183828539883875450321915945606262692331884029545643815412444776260205449569400327897901973434451975859837335807021962857898152965750677658521433409914546593385641576883389286647745121707107429541436555517637248281613465577092069283701903376482563612643638282724809424988725409601250386508912771991083938840663266832501053646294436383529914879979489490761100418527708613142541496995888266004581952197355229409957976581283316298140914567565277700568380553345544113914148688113410874179316521150790070090205188057554020123748694944396027125343872446315462632268404464731335644570816437505444624974905195048012988789975394303090588755952554690619608528541508376898290352558009206420691134301127508815022450310323819265431121287317354270401877182913053615353958065590172874203183418900411829472405304767167010332065984802170599431935918432558589086848338639460160078530345465160737839075526967470324199470582025049349950466597241869654934941774707134964150177207824131252177537709178724358987648389712860153057272835570762122869185444978931600493465797523549059345518771333846193170678293671988025759165325974260876807224797324150253349621861774843958118497772215640586967334893250386813577744910841127797429105517928595125332208229549863200274562201570472613084094005173844458519810934999541056284780236511761507467768819356321534756568046848963026488995199834854283240681978430267461948799541085503288013614015246855099390599947437158089505928236729712570209422736104019437940828863286469093125725961052299129772528997656512984817246979911473087789261267617025974348861808178072500042233790728602726073257397179331471410585146893439975225624419293523442004923377086227725517329491465138770387495225539898120913580893060944954637899988000182612973529144789670464758195281734846785403623751206365986182680956372194209842724940946489832874639142178255688624356368237200592546878289139760544865752999616411835074562972530299757478231365608744473568808496076451874595675104063269547488214961238827095743462386904571636473842820556360669333818063389433556441145105800986942541248860048880586241397910429690816299425971033665280555153484332544946333894104521966405492630922234642395318557304396251056790040131646514341184669456003102361899301069548757298333675656179945008309473437871010684275830957818352269004781706361072692550546296238195206194826848964074698447420608023822726739153178924633868055300733425299443671765572311582460784141152908052580800566884626835364249457980146144060654425976922494688044251982150345465466035243993459435466964318006601688053240426563527191989273807825030132285080622020083894652493021168361525432799395503762712439301498894712417500618627603037164996041714715488822246590890367880283144247694788582163931877674919806972934497828542888602016684437924322045326994636115348188444907208187300531946431952980112350466243197463488996019998027512934474026631571304118295082034810566955382754063117748776543082594687090831165869445146461420395185686029100446911600632482351467936051795238873424663763377090885134745284241934276104457235758673508568651745054169106472128484180768449778437630035175949219171738791533471067635799082194241467057755673802983289558402631160245218894482674313637871936094460077865934237755699572659454826089734980451241312033913875598979711281298785801054339025499919953229565082577822824210465001281544539562857386908183040640701033151869211920442037253669153616025966294814284834567752185353159193437531968223974098121068865526120786266769697964593419026308834060269398895245653058744966534860865382199072440068196575135390131475108875562805711302768325016537822287913626042724419216926906919233657713871054920642240233217058897787149165971756015404872173146170759712584061748381034463959230542007798909607258966868712291989257823813707408453704207872929943610774215886191582177686997635032958841252107128188152575936918517739751304596800925545317348397019255565170813446186724929309641619250994025156576371480901118131391371859232743121242899138709577342895491682732898409488385968398357899533769786705446499380308440764240034393494049602651813257859753724248842298202015562410054104528848759013866070487660004551996611451819574015812140871265584016451436920669004886147353549853231911160089896907331176907182310256457748243834348418808229022878274601571500516864599076709013559303974406670777924483791104598430679500279534815823475278401460334104807174958853003878390378166362574037365241384066606720447285642538827650980876625396634038753822110921549108044069690094345228914241998909957890013708940598698874153198100891480311129485061538279576729082506157516987638490842041584120990317435654016621446766264980822638791826539231718361070207965152166212123487250013337303498433299504152141203561424773115473754214578789775129862543859726530194969988208622711349322581748436310716709362593304738437704534386172811132953319934077354929995199310788053070638409020683025594626472746739996693243293535629574130732889076036715820473844281458732359264652737754816241198991367497487372336899348406600672685887269228928294128370077860885620874833567310096803951229801651032203390809099144736083159586919984463637248377479172688323334968877972786643761975982018419579389066480883473814280980397914192017575382462739041587113042681758728201983812077809697740174707287686821933213858632780738280262581529205778505750264002467532638483874892959378537447838666023015740022097981162349448752639303095254632982445926278224185413202390954206013444862228980626087136043686016340501139121782434131361543226345485772478981277376722147129329541388839074540070429494278955416282196104814528163577608224643994984765238017782403496578358411233397972444029528861488628918810709076112645665612982724801340883174347076004128588855570408794058232930565803039943122832303540766992213923709163976040063393675617277753054080799338332422460579202626501932138837386988387411464191699402463327523361056191459285321059038502300969765353943379947887066305648556040466102248016135072549517266776514238251254803917676593279473842456203199188350964430515197780633349332871841933899931815340867029422937381933595142905125452988117452483951769271624773354379624493310242882200522445173530617564422985501196606805455558574200772015465217892104800442308105596835188656278533682904401497958929004294430563243346889422056575751635601617597685289923892848121358558508533378978373945795563500961993605642252208759844822147723690604699924818374813135376480441484518221431476307764213098310348926142456236275644351614855259255728789417997014353331231338313698492957330956239369744910148700323695727745680314953205233730167274947852059097204797628837179839537970097757416805762136729767761497702533000111593345549416530952207521462738332469286261840997490564952447840850737732884471442348276109248035701173589039834946363421797824434161058564791900731102818873597422491327559016910646343112364391650755753704659343066095891811859594272914749961748043201549336676221296815864459578621190030895345451753918925808131420245094095556135790060904232655922058879287943025381092756286680795592749007496827935863537105026731580381501132505104207202921395052077054871999620732453138612809310698254099552059099732353777713982263612842074035052133328078739604191762352217914258660934601566943933657379582833360933046182121614015114944256751623772047979123595008918107293650595658437234788118283860010718936076233952813489519133071972961982405014670186231380142340781595703949655422210857195970842875319208862954390718977366693794555969326643282883180848802099394191333952374226191825727673318477962011505973279723509335267375985148997271801819075635021776109783658124062968799596464240400376465872706298633422612903562264830807023046651008874676298170393962444691459773026114214450927484272880315402760878259715479696776320029895780943568702561487314038011227390891231440899718281422888438268176855472913752634548238511055680481537633531369488770377884695541125393573795508559154270681684853708464739118302559625538476659103183903498797435303202435480721325467257531431725773593615004961527863641277542785976183800797007488342641819243360189540317303934457005168003317455567293405850583326001253984095506054632644334817283221559505999546004281945089026995281218044872312896038327694245304354240031668662515749019696724675782243026347645308391119572928356977473696846117246686670746582457083301042932577453904894579877528847650486375222473755550945632669165285366603401801834675541908110987198003208181603074356158561808380060362484356667449449409278848425432119445245195941618741478643592827818291234483224238792952213483345221697019968819716130074507088320726117607552999980484845715439396618167868537843531994865034311255352631737823910046417053827880516162377670030380522745078508297549578143402152943445779590227809352312711469210612122770466847708948148957912077760652780423932301636846282637917089067731026696030855122132119988505579995472995896152798952015953910373579237497259014807075315002957996782316313880230808605870236657435263716662707352816512357983086511374062290199786113487675839512105694827193735309138117526327438461205410823080912381893430148198280179643684789058500705835543805670898203978841541514787542179532438674537501831105649745390328185877921319526492398034365363720850926333465686850916835882836261171240946113734063367287039418099134758289980100531891526138060348342120448272765952935794797913463867275111987081121591461912225554929535119839422416367314307249930564983780071066516119703877751312491722064910299586046255918562292547661279357129693696980173674126577414899106708354639094303231314453332618956709219585194553803324550691649337744507044398098319478506309126793378734670880251194975846607444441286036202803414425145992929733748295136064960032483528886655956271793329925363389570324766354229006666508116336554343140479053904852319313121797564207788189621295641643409077172059487661293712843619731975423558841659829617014654236356185061413292963402883436548428563448450305810447878729233483908877509540784826038044999831727304156555512123883935699034739486678849456715242055608960361032547930926510273243048954991677950423524699904168062886365099586994838453629196543804475651414490944648732566351964262984210383385894615139619863065517583534083087314361984505635843666718860385557665620704930663491997850907783404227623959573720910880651001369454326040386632387294835225147597595395041187444270835189689648607884727579453560512260716410589736974728407036193760717956454556366459749809053543430360547166933543200628685073709684917223446737789253287908863429569020900196925909669019672289464580003181406680467123190402377964428501382918234941969227592775308905601948583556281384166820834659722424287451352732984259157424850033974351370196525785068861349132789592642013294937481385555512750538542271926079262368562647397454169487112164688998025266027677067087719313216963787767957927264395978146779641732329090084825116586876546811911915532603219626906710252244841314748033327666558758072667975762688188268792968550151897166767006628491300269246347719113105721922834820230659732113652561066228450874159403651481431641799547560570372796438278696146216820081768741253524076987353094769899812359836648954363365280801692607377487716223122820961216152326689236237719831338533398140563587898286401848900127055535988809072561498235828889122915012171941799570974984048728028535584534325021262499549657934917034217722053537670150152058608297448146005674401189272217710412949390654545290403329123332720288900775784112147894734013976979198750652246946926769620726743114720083589746285617014096419602813505632415108112153845908274877386326821969077162590287564629296862385029096724129400529644210024860810279657483359880909692106049795701824625419944324004128834832170379011171943802394058567529228965123519170009502017181067025595874109599463341489792683462649244902861623498297533459343104561780901264054299853252631562752056761190869003062137324374089958978504054120744061734418687530136370341501409923985971631759808346916661138856307219163447019915085569885459205922225643726600915591002075666898318974963500978398942124119062208811551830963145635091798268130843644616225418085451681929834231161435226701897501692041726667643196683248099897130449588270340199042641782490822112998466876634875390916385151307504637158828500977281856941224475539216908763572064429984359313431787790509599736024122688204859543744002981647151429448739251255350786750038786062788130210697406818667838091593556838702214666857825453941948070413050924363223146099828529482293894484231871559127980864081619141899550465685385178348475206288584961823341371984270262557935563308263663624751302204344411238770119128552737803092225487348138724521138699972097648988550086136743826206219395713957593380603976745153026569805715569457756578098397381073844205141930519078318414140341672709771560125060991836130872072107440837881493198537938180500304167749723861728068833000424235360798486222070683741986519079092182467098603880204082393564198089908037335758815881165450668062236960294510283263154106186005824059376318292024129381322081225199187328414636995014279414654731201353324709012031136383549894388699004378046144086391249222086016949652344643253947419903458712113753355007894123896664789781206379403964078586706219646682083618254670776926368894964160106748263802679153573107752264296637315131919798073653836329639501454794265719610942416361327856099755620505539335781127651598992390134025690109661715151944377630957148495368225519412063010496228896641274241942780604209699446250085520414226907311661597356354508378661249043924220911087251012150507715336286749737657596535795286789738565515285097080342151049237937974114345735238569728742398300982338762372742228754009275569097854489307579292434586402048546934382480140043444862308717201263351331644555480975973549626829092354295773253643586278580126221115172824957499308372830808478238073795906173020248055733427279256756527930198634387010168255679746471547983817637345866484517438105445122668663722073997885778437410974364649063514450666461195073001480037634280961453798287571901482050343420023079557092951486572464807382761028086590902174278837212480622659204094421866754891801201040119552445453392072906414902270130039751853950388494568216175327130065824184717155129540819294225781808180645874990207324135869409824088308447382521383427499155208943906721405901452659335561663730268280523347495928657495524781011015217042459430357921803432015390052441040781959438974719462026946526016053987506794590679077451776844830026745078240152438137013904507588908969269913348486353069479687556935403408029180436982711128486319441656895970757035556520235339903419639719251896205088346653646511728499580675045090303528675402892476126111711361504677348688661526421034104852845013182885759994077965118379804546708634813844652025474631792024238435829688366092693735504464829626493972720246108743822457362345550000139643646320875191722144082184672438494262206334136312471501482208405179850663965006751750357773532619284511350293354397369758006609207677722402402631369566657718199639166560134288038841802265383870072321143717660032868746107140599837869727570911250244141848033892810641682952414565908040345449558420328519220656894907044370636004451733504637847162127759362251805076897945985621029880677553823528321184070243563031705464136557711477937235284840841752647781712579473909365311018665361245984939616273055289332484533117728717881454891951193946960850827660779961921114388695310792660724787263039044772931794109041883668177203590315988705167932797307266858024203188929537870052328463454532663649426275783963985343469210108218759447806841631774090142313417784843815313170937832479984631800578241046101776362763538079341108741202296118276715472665513020392505159836155173368832962728996870691517649143941471119402492253656460346679543691369932563462370208517368070672563646647931417247325534826845541588209156414336664036859863348600231665070119714833150832754436138246783451046840801528259690132532164152024821339367327118317692256907236003157528695895920929657309205243848773905922388540074675714290544594259140381352591999872283614641972675149350043028572649759354998203221675616460888425661575906055777706711169218018387691920861662165844033085628924648720091462557275210887017508940840674640793210303833426274178660864471865398972594442944474865968006416410402170193628970859782575649209139086582615582418132743204016043818791469981626844268449952005606697666455306273780417199087189160717362188835914227257949426660088684752122044754256969277038875726350632269365531736707921730233200570341211303663298126669709597362018663755425805323625340241027653311698951396117622005977494975876448561135365495477575627368541208221932626505614681557079466354760439004391718409131316789318685247762165828583348074306395352487530347262795974605534130913624697924561416477684296701110887449122497480982166065896647964126227421975437145323045559280682912395232261620716160442437061346136776147319204765291717391912852080451816823799437743481187712832173169803253151967956469494935024208841424263685594131528360129483402209050036648058349033167923450450369841527400455994721490445523687693887571547592284132577604418779697874391337697549944248719216096027616674741240031968529402548067105414409614249979672755737989797461051882965380333500076551906947092846204198043306595386298594789889613969378138519754398560477609462730374664789185420192522724464195839385063381263856771483929446680385549106703141454920804828789612752912097446545558939949554808845583685798806959813703539194555641213421963883655756605383517967206972455263298884750560166051097228488999997278190829881828790816846826569352812864183644207007022349947907391733061502904177771411027977259852911832649179604974056467768430794315198292285381054897830894766173172402232545631166966872310335144855414974629148891982603184685390598123890720328779285605297124681893756910228829896418037165072385262633014132705586332519999201682196148120436922156152691198991944738343088941402153369678535893085995322066101838734211629192114666135521886592501091358547395491057580990698353261490606012092850530121557304271204602997139827656261020691195275195879358002432333801953744520379870321823538329999541429573333860533113123751734928713522729590122039391251402783762099872683277515513944666595781559384971606485315646804981209381638770585775530653743490380357893230810015095946483088070295895281770001347851521759866268540774760845718592976466336690069583397380680461271451697643569062146672535210989708247164759612695711411781893264286795733988628848825317959706544487694466624982454677735865901872206697705377849457995418983867973417073399825126507781623261644882260992143008277574908502688744041048317851653628269804920913787892076538592358448966366859766299999207803598650236446042291873332384629894093056402965273057084808044156022212552438779085033303414010277941780616135280837564989565579411063111937347484231099741070637265281457218600277462241276847503878534759367044828760318094033310323040297923862518415743517748922438020711171536116574381988720041162890657901171363206901828389197117024535806588178673121414457517963951825462013041991260685817745876002955003719882838646694827636774153512811544751121522482395936597127147594129876650795609214477187642305931970174879839056200564317952706258239248127116100274956281229014463694741117059016232949005690104664734737600272438358944375947276553158350537079515263740576022156698224917671383544416175221458270882621723642417217458423692317123471143818893654099413171848826889454263244156252755461222833539928223564712194866672255520341647288704121507670782444209023887982151344724705725690158541501199094283072379223836718247274515482971006382604593187675138196263151331454662159356426746554158159915237842620787269513761347600415879046959864376994001468129393609360382049656084814505319886023162732830225906753617240785018241941902293904769010275481582512790650598074258432737174113363020999621516237124847361878192407183049721941329075123783522279404265148538741772796440351576558193182333669652200637471585314937210549650277234672907735864828629285328955747193456803614425574459233814290767895759605980455921799702163668628438802124484574075752392272957483568620532113424773206387720151458358070338089346313430289741566950565851267033791768356466660548238658463901674180235501964634713668318857419796069832386736538846410229082286577118796760097720920512775588579583827681822425252202267790282755634229064991930650865505215471025742393384603105860497257757325939447405251002017540255166254681313385422192674005249055391193024282468829286221126582720965528095311301130777780699475891487521304246572366155070910797203310605769109736837516148059746546823544329058243448428542263316784198170383014509613742258088943047474583840048493781722350028519118948985905944294340403882772865347691936531394425567663857520913781962907696235384191581831069689539812029122975362040058865537665552986001289041715868035432757861366767472965596447186991788429677627509847859047305656069535611057323385513478117794259368662461156557023875998241898507444219976481263183273471439625307824063854185821340808318191029829680997702607745817228710520979681629773888059818249344367806396515705177078267316958869311660146180345034480490382695834878931069596350497413751733685568785398769154820669131645582543053230302113528103641319669854979837903024917437167223967100221268824032449089338468692833226160662813790791504898134340289945802453669992888262121741993263273546670177467138464873812107230055677102227532370916039790881804604299500474384862346558051828636005625918286287053721958960316873988725877060610961259862953728581719755638383177342604768089969301265209015545669326460628120156445211742281161778310546429572764376192735051608312860753906400190069677258966650179699881989148952386695940669712998981490271360050025951421410638374796780644497618373682958147751949744287358140223121020239836611229948820202219950547131360174516178013854400768453148299651299383324002521026411264330452295338101411369446044500253545074365661431948037454810902773557742753118709847481137653621536802729168935163467556747409302513118652805770848624306076955887149561345713094014312445757284930053539051439418585741978957461990046814111343462658558587674066409188540005602904683086342369283563578347324003579663853559839236648277436033762231480669223669893171469608350256146017115330352291422924891830014555922626788178125860801090031346807038060008989628817077251442452656289367283626289383808658048896919296667650472824803190272988574624377679131495246813021239406082367503995939949600971073842653779261317853456228672146122744320636259497197239731014660118498243544898276037467326124788573196239540075089740757450610826108788625489503351907680158697263609351636377835606812312871947997020055231710589019922955437016060746453597533494011918199295076972366104364865313503057039408069563382873897210813774764384068349346830829495949393738170563117847735220934074408318048017456195822034019870434656158748151343376310887105644981065185013002051955557964015877170097062361509059795819688649576883031142397549033566162248613427642426746094835429686381525191211245455512841709982877847272253731139288285838439137073964751279302863303581385349385443651473733289126735468240855173381888185227046988525082405128197922316031303915862435211840966841808081781421157250960670726833401868712432643852572628683425000028990462586913815314384900353326875197938800014054703643515259261987910937608836779878945887127982903744752837169929823088084447230305335136516349129849815236135392285810939797387082837674094646106202326451655331737967755860780921273142369861299911433311286452851272505711030587728325842764325986585504453869565952788588874396040672447645572551385495734059761300029419078918574373599625362492351265915172757359053923466713022149458421218986893012044261753170677793892597276608676661725337839089232216788173010813692652233793830029275238764791037125628992602215577073584603468330225065777842610951122035586690616587237079647166345713088783768852512930404422116115347292507257045801045712661443217143493981712423155749664225141041002322500492690939765886168319834928398462728501594628993688068692749437659872709717299338460094724508953749881617462951713849651652645007441827983446667897045974122516707267837340771926620383077864679216294647594134468273463218512128504008454288821224672779542600103077108598309268434990325161210262218150223199596025662638508527553605974223025056031892546719303649219309609412641399206167993390788749777291386659069664032334936408517885280359340529649932953595629830871138387642489403972880759948116832781130466979813700739820008620137695289828547643075626318210840476631129345155192449311822906637908856449987869640871478108285732741886569761762520214079567264271787925543283048941174409322670522150965367894545783458439773533160193020806538866795248496979335038740909433264107003541051430711714732593709032291000909582451634603136651260174789821079595832460358444346089647563620313077099896907266345660248488536467027433420622366218591233045384206750483558871028454309610567205270353869260785626390932215423589407602564007819552977157015936710735683913177854634597290382041690332773258697816229060450895202194892856091686961148574252304236495415035898291791754850561975192143447221164629728121607406687898998636399374278858643261087748978950437300462716170918375413227537303939989091575818137023310561160190038957830961414263039457554783786232007568662597131401996054269776361961956448661821326610422630075388982332856365729991386661392464488371944919802225916528686487696658929086053213238628157198367874229919061524667666926426975905455472279032091682398054004778867773564826096451871419852000459695016582724125189897257093170989298297647966171324691076953169655733014023558054618698873179110914339325028049593714384303508429112335265887470566534605872121684410392495359073939429909693441661571282762864413459007195773521911676342650699674559904757652903739038605140931440583005948284308825443106815034183757917474268891768615672107188976282996208406691972852719678181891747074705677230946703842677753923998853137083179620651574503406745000242805363840373941546363533724703686473695592229428084768748976402359658009463102224468129591823307954413699234812479518540497255129851461548378371808537568681455752465932286200767971371718704593684256875112988509649451119535889496119495491005971635129925387050446269334218964868327307062038202235580642296983122905483691596826131245269684569971523948080426686518134905743361397390238599043170728243031145855702586070212866166685561887230319887810654984028775237040730757740434296315734244996292456931613595920119448053042285821944841554391100226340076021182946363647515427661101655468945654460426216316183697829450347587707938017925342137226766040478808696091988236408180262157731582475540935190742209543408384902612912207951695636925213408797561359287324356874985751324329080669989839534869354776935351665769478849316707686618049869875699402920695454304238613256749317986176048252040440052397851478333122590644154567885707424899505117489016766265746340436391254056379452816917990809249693312371522166062289114575740442346206451140877572059107015646323731511698667174976227573848145423452379372113201403519229304724831988799239744316902034650069149828312012636749907746085861043493692806357473057284101402584535999116717424785061032516537945586669405081985080763141463922700147403721609936554073977235066561914500631582878794726853235715234571007946922685054226234756080667668938326992954012683997711861408778566480860701559232149773324075404092037157238427429352470609308538545147234339798549473137287060096971786263547144823020719418799983845167845726803867733131548288678757024714887732842757122130722870317176955154691806258336788988980281179474716102000923884078511902307985230736986021371873552051489002114781714833457129168860907119754800595191962387279551900680053000282875129257422161445074865779413986985031660263451747333222907421524125745044910422639947266565268246543110556091945101840586556290251544118959596904052026169549121790233306943702756841891554907012537120018824042730036247282366120602750689500560957255980496354722182466441226857010754472684907828185231071969609347972391598009164205723673431363012229463559162793835231364823950180360956593979788654742199919955355156860096852611435172898957101915248166673077288956972074823665088218447476677781135774069640632767018782092945783242918223191660770855074043731456085322663095093617863277920635514396883732352769129473000917954733013664367510401997089816332386682069810840210768061914749776609343765368281676668946916131095802647314009139261694618016918557906308831485354554446799934003872045343545073904589093394793928364253001115487752286952284320199110330488016010879408518405654017895981144077919902849786708548216243871566696480453143158001357763270788370945533797205397581738500193902893620323382703489952174309396829527222009054659602597180091302958858624429380466076818227810783170215270255731340789109152139780137920091483670388955532287968822435465758984817838535815493011015287678124148211395762504424262663582838985415279617378521100638110615760399179725584411255904966181188273054355105548827655550486138016116401450459114116087584235559567777348917208811302177836871189629144022417126703883948622261706127590635430986829088847463898333734926230946232929967367820617720271944615318679280844750741612826590253929300668801750456898241852131865323827938112299157897302328274230242922900452315212180091819180728861722926183708325035854709804016984126652238078061532811573923575295354285948841849649247579574359267761615470862973840509854435316414983862077945742716261539926030444278145208675365558081561989359792374765255940356366978692939668063751683382599615963126424466150557944040291600788590434790794456623607847764213963563806661297853407370902639001750677203972288696097939346155230602212970652823570072161568942838594763499143724498534302529522090768995082300526119088616551846680916337677962863379498604201509995364842881012534766348469513340343220361146145153194048070329586851060965590823955464703438363108147036081088239823809705655861973410361440104309556488191775741500410424589201657976176972216746414466117129864766794518037465282063513769410117534498167729056567481206469194112792234865077740792048649278761645264224457913872137022525321202186446885177781685396145638057107986595150140322589639860572031173800002606117269275155515684683655938905297247176710672968749496445752031588908626953441227010799739423060840615062058268012698506197230628053720669595141722722556853046804192529029374156255954911118627664910793244664660139819990868082647787052352609535465162250880162307207875326989528858714126425784819573160402533092620173265575892641136997148323407555285444208446309360209165887142106727638202099103411486518324091185215833697081200669026747798840827341911049089804540358617705388383402543696965586183902421917706424832238459980860329288239768338750047968699107985368439969181248912162918760905174785406458458351439044837420966832680007337414965368500837172750482345312653486188961161739146976607003387838099532899138416983060888221171765348323611315565532819547073523364388372412946355114717191436974059004469156186657806327290079677966779964049170983265481114647074202363553940814317181030306372698827491951579185050308522386677158195375733201522587700757755440335640690719639552345786951202222151812863764927878273168883967212831976227339516182426007010760003240160213939733526945966171451444961704282221293102014885041129836995759458259264945203464079521908623801942720071754602864711514028922073952521131174686087933504542230630349484858396933447052349460261996503563112801370972010593822916271750544419922441851197543328692376634157640835961626475004415770058394727604129059471451108236598685243311053464350851458636401011789670137044364566138628537272940875917669850134218800762620533586713136746316253719079718878272711000571075219437045619870996621721003994217289290696701952323659671453123485477204833473470726318263526257495310018090663715009973860222398090804754681319806557596593516065185727438143632488224634418075044514433825737575146977880749348588236403697466023702907057057386000850616072273899506837578352379862589245538037038290117754696990314611247610412503578778971822755658620243582970222238672373565052394829141970236520179110331227226303900242539551543877778368379234060316426094352954672795991677247967261829385072815683159169609744109074818494997155852801008542812861542153212420582832825781583953543087875662646172687912138202621593047434585923834310384326373771819435604164400127697635128151027511602966678002975512962238564491192478614924958139422179193238801824104440087340210775954462084210551956804980075109735655298415684375467891186238258177330448103640889517190788407910007576744654710458068461269877455491168939464330659852670203259826017084711563823579008738489021658834722969344060748491778032794063555858194625387449313725921018500083116009616618758136702855505080117635681762254405637498567272057745430724062195320614239042237961186463170549409697920934631903292748849476754777520479815906600459723399479945217983022458994930430164801606254758452318767902402047881563906818103984895868083167656884676388247906779974843712009391608260956375732829901152013873834638618069428070228163055814183630584281429889472563013157750491334094074945406779231477969865418056421605831689154091589231262915315380658749244988655216722733885341643596967300506086867426305513943049567143398107437196331128012234832249195703042843048510065474306536695660477239940218451878436054901051113221035647261199952020613116200595987165224246606945959213770264581465874969260926438703692277632189781158034088715145756172980363942713889831221496533462331494615368721214519549707639173065677947170789882224408432826973464374979775725415240135878978456166997304332722242488684496754070621310824798650419973889221134237784279107054156692743129573707417244578805488655604987610011065794623219592022069010411473012903388405547800523724300051927912831477583847790050298240367274549376169929174472490417834181325601330059681050698961036196592177471563491625994506207438160838134244675158081085591445486495749987976295611066414527155047267946082147063922316838304071715875989035384184017378079629533064193921334513947946889352658824877403855505101209290520824536666339724140644565463658676478219109457773226021453554846257310155516613075337227959561047965845601606659190098312857728320870622521353624706660200641274259632965190799283943755052821342257377897913984377836442796967686225458646448308503291645537584141574518064177499098570953436788143706328532683096357996360601414546878526816542605100125882907294589859916017568072933860786488795416692103572596827556760449075651976489149435739677568699869461723008063030792172186496861148625989714046697566930919981450197615631244519269729259696630471472819191089744419046742834001744795719596106449042009393055587242024259132038925080540845807489623414370820390970464264904359158180622741490472116252407969710301716325273714331675257734503538561941560302033485195769240811649886952161797010474100776180924199534559313927097830692845304314059868463886311895453354943729784482595634608590373166902318863026966670939356258968464415815070740361369028381709302723348338452856809145112849088341707941051103709342322269518617455083265612507213346587319967936029784597425689687999101388814450903498904221198580740297760005188341869528262092495768444293216092759671931768118388899331731986902788782939588057206505887340084395130630961545732072593225448925746764737053420392105374179838506703173487704966856230334905347288575809650871830121325868393911336732831245265627643050176596834529013534683485315254068170547361118001093204776888825085862618501201635840014821982024383495741455267965050827073150652789275764295606608630025247379214616231538831599182537735536245519212760552630166334343385489251906509117636912867222303585525517960137662370398213518538560952364908065413968087114280688869178250968755611969488968732263120442048670800346228334720536646281318433985338577842545750484806204380495152174163507411906699232500967007614620839972729240090599343371842360113926499331534937038872996119314243892667287791860170514639319357048083016320839602054330792967216565667806798682803408555469011962269162138318944374443234684719045224537779923532082663113363395565660915777276117462052625542790798823446579592543521213857399747048212442292983181128864313348559505586183747091859783194997369893394563029478785315042387298118028887232074683757695065857021595387513775279826220133364443804538799351783925451185781872917212767320830355092333134833428224309039749646594825659735041148215062477360260186575377704662481020953329388268891428428813131581353780207916967926705713052274457259627658106791148674219804629199283492331769509105391349853027069811038324431324799382562904684553611351337875069770581382470097518793768072673120422749670096936328099699478365555780960198634752685155610829375747851432645097622334214045363540332497866677150048963789688836076989541419087626438812088833699426905128695788084951177137286437801507135326614410053585798297864281316708283134783591464057293543080450233420407105627691554897816604924597984410379469282933838207125493274947032194339786674801761050124992294493363390644684758310135813958948078403723710573060874689561121124493729947673185368743840748978519081414210709969189666078182842757468197673749862322968965547951669094560250543355765264034870147934016051256979083381198108934775912471256885486500915262407364667396627191326965325153759874498038192908822981796880780141275595296758023895187728440771837143383601769880384156692499590695815934668373708924646623549786018804461431008366281602125035901454802504769094961635014260369055239620557637390164988433901046127519480586772921577873502820953373484437498303199596421074216738189376378044431893045638873150637308643993982077271228048410534616833916535883113891934303554626906587059494583518945898731353976745924675557102199826501054078847122881940531100888739483532081294330865488279002980727203135896216582735626666307018023787148580077352980350668083256011428983596052366502613011882230399838612265272348836779435815645909567391901045695765744138098190515570232794674470686582609654427730573943851437885673476173909215020666778322878899761492509154084363575102669541609839851397365231222244623576476406099423968446298919117858464572449373881107502127284345069207723260881117778322452836987051362643882000673615036666795733842304335325742523695235396727823748729883663946767800989073111069984917174671289790800462850285713827162959400359472000871434836120415647255508997258842209531818113670064585135688763713149146919674637578835319007246020748422530542496188041241415224363210891498713413993240781171178886007951749839741178218188003796041833516251250102409384752037017166847924530883063390634830080082660779436417742794447125225233737135900444490900686955056218465784224895356431851717486579284131604232032425190476776748563747079462323902796155396141618539363935808153912367220299721933955197781936960091577679875299412110510358713394471763999942465296302270612880757344121485748909201423235595121392109484978220914130162824587254562365943549989798698900129988314337844766690394926902587094524636803290708217483868028937020864507789886857677651322987040176590040724632724855625378156513265586049269924696963640221141865001496624809203043049075133974863014399527132912484148377698947883189083098107109165220824035868035773245701070829564570491456426545965433333146721479550263289001075200173922418066851339459795294051012812302699213041599885488126739446651322094297206414376524047567010774373522495334412733017276503932660467033509076078724470246195970374650939176179076229018457825491403933504389987063157911984009618264869425773245980764034273963135492325701514507382680199695857218953140336199785098480732858033831394562308743380602101389008143721994577710693988786977769968423215637403553789207037183404575390008783647932811564005136552608517604752200955633688882469717737731072067997182445363043960251876565063559695840599642912767127936983723901726394499689336189246731379055112377771806731289963506595663148844978526194664021198237657954458907405847865443352629777772258516508186067942194576060132482733300117471602799225128050762534227685563487014802198180389283967317451178388687293449560417568790703109125462449940864767067841693000931473439699006245751949823708558648071359744672246587922170386864632869423910715306707430411848864941914811247867474094451553480761985504266750378150586126151834516964930038367551448049630978062598746233582321883472845774420820973179202879606812207603917110109281766894754674886165953851057029214703541899385823369363321446185050471323030211352265192869735759673848425727168162438168919173337702631314415883265551347589537400701224087399859584683490528522894700623475204341235747902067496796670019220180239225509475229533334485021747384777299507512904315706593144450638700027634491532751473247728721410163141451519639100177223570606305919026646719967819443622358354994077338552361862325478503950284839553137879745878220096622798361893604141032557570058861429196273804291204580441839807386869973827037062368791980880664117663807192237751396471222601575023891112861591302793870780506750591793292511209259499882712072675752597606688156821987296515860139762290396352297782166195035774938528439919970354427724653935595149212724704042705580685770246980187931644151506640644917974364054061114890230231696471062574285849376893254207687445621786717118015817141816056997836169463890395995959538574510493438339758592620641968809079786002726853698730713154926374928574379351481275473145912043336810712023240343565735877767027167653347837917019037529367346953085156327603300200105975897481987382982755430048944132420740084427520765458620421070253221396688345938266056345096209333860607434166727012728015227717213964392357902217831501659081533590124181144571472365592459163675679506078356260784045990508983043524600833643228676913332224740101571113603018090422460148406316961391063768097186120057264297648701199739757311169039698080591920734241417897696115128310633482184100835535127252722309352712751006099230566996717078623812572026093684496202360487705031457865741913844632564678553331189833779243873825167477861682514987125207651959693174758071091867055850589385997932417492654223336993506475197367029919174767093716283162195957648838629387458401521624153186586717825452869583433498054566023465158973800136162714682268889104843293190875801417347057067750623639789536300592041185450304761421824584246973920228066635801250884350237385526681110936891008950803023952898349900064746097795061749546400951373948269372569196826055562954988538015992107665453752355278543560688811304404629650540046543969084812249144130759602931082831411496923129323054583976036903932890853819108174369372013095109742385203127326408266018830687680184907246338945614246032925759334278355947432056638272462997382128523714526748723257244452991174263011898026124881799509663030671612793435385187855553036251007933216988561835933193786390426043326113787009230914229676018666779489278857356923001811937970414590055671967667442452187322003755635240990414758016636907767580644490078126477913919675562213731503057965321910464069615144385474046504250935179696669349930477063190120965525637378534813520209255409173959921146033825121621839122891308741366784867434145732892178142735696302868129929432118270849308074530957636175877611202318206467692026454299815131318609004006655608436811427345126248549645115382615812523786687150715204797434785843523538536209955339814341147250229046034933325297360766096197098907060185802402444504641739121374625386467030779759795574582341389093776074313513257263366302763697798329896574394933668483825723211554276238060314835532739962235709691428069439935043187982538901428278778558113091932374133522426346405872262466633616784643324470112733199540672105593477615508053774451543250450193172891878855350710405063213877946191518783430017159913610369881608229146804409040192016852492407387938487696309540135225678041672381059910291846509758588760348265940110256102628437654722358811158111234280222299866865885540285218925850786053817145125936643489940384572931129605153088177829363500737132403675449289190443624485239380317636930331560469175485318969625327676129854199031756177343831957237740563910278127529084302703386039486829327123555594531419653602548698149484378244953010924994618249794611249851049377344433575038490922770034905033675802548533404555487511921127389421838949985679538547662909536418547695499581655326115209934579904992625263920837839499995300239652158785673615051423505049045629056662653378920939617002433041317181445577899797275837041447227382323798883422793041760549633392373087950872787224144326862897150259507794138652120089517358172038385055363686401309311140546403247757137551011635126858161303978974397801823484921229276639537259592297240786784022018657044901107310082513857434374457707217883762399763472865630887210972289634337590505324234124104091957791227352810781805727111410301740263345265500817665816700808374845088742687973540692484561631646345105559457534276880087170474855795657778986113630913651927213359219620948204608714838520727559787729819296812995572492156561918498272015102586122991145485099138163984345702758234495991773819255690963250265783033774526409335762750806505223214747843853943975674711638074801980545193822957969528078819291835870705335959434289240062471192646479797528187475497553121551570402005839373452135189700673969210316365216449240677715355503493575104823628660623897865592565545978230300661089952255036142018477491339267594257301865026447571253253948957684636832326125717983148708407547547830718852334781999434524980621711302492316232557203426749226403888607785257795267211976326052320768738994278084425683985369213082672208417228606196460694405317925411177946716001852080816082331432569653878908163895787952530129895066784969439623158700505400331665157500024358210183426612054769310119010533135816580234262561628122800840669835313663434392997633882305508932053036565025698575172970604389839663468445525182862255914916525614033513956280336589263709457167393254575684068104208111281021063078366483426442905712271420484667475366615988769040102758778244537480543510129753471523358961114504090859838050862869489297451568372125194448349631470876584529624017395334538647832339136286500690080179633626070091611236890317006006660470366596700528392803049645815048335271743550666767331374883560525925531817683173946906731136604794490845733888331794505782730268688448495381453632062541196445394681073956688435191622739094206763793413944761218413133199245275989494125964715031235685865334423931785081225178034347467412491134152588930120624137752576514872986748138060088049484977822618828484814437216195945777734466259519350813053023822261550379730426976069858509623470433458729658453894278160761877939184002266521633270720983057623543552412779356459305539091721872929661615146792589303187653967458467088596883897184761426058318376302118549714277036444449729493374171266012041706113736368403563434790430928565844898778429701825638164617148444854760615500912388504028562900833733249954565432245058016895712939769880641468271361334857815969290172076072614156881448093332984780498883625113874773723091265343951400616903964564742438292073081820271471741652448631948757916077760555316717613539086421948293231196300579833153192842465444027139251699004490625787998382363041993318839598518281826812345886189691340041680786979808518796067744625024783163589878976334115200818293149498390288487078571251737050685717612483687695357540593854616618809695513223725857808168899038308823557151837724636873618433382377586196303912656722161161331842447710688950022209343068733742093383418011133165949396338183416145496503386011505403127110544797301202301341330091454257317497336565158864914826365933029342741138074901609785123289939207186789504095161591604140630613044165311245005180815522499506619265413795676298805394757742228191209267586746424633413708166668300075982220113340832610464628001607676712552926497795920661346327996002530217652278147530615148251663231443771782722254255791181336882201690195888676256066604559982972903593049707071180936946445924056534244796260540576592176396388093697550219519203808952235318056344653720102241176551227573367197986651231086571868773477278021151825909242649513358575080256890965883815625927143285286737355212974087927237561184895590049928804676726393998431931229881467747902569341949726411898895261807765461224506915694073597812283635182594140092243606008808863376719102790493773491268589019462189805355149927791924749860038964514420027001803740561998279801994408330993477937040235847924592863711052301323886077162581785857582307187095721800453944212003195666816951242906483435182012801993422831730498426051676498387453724029427313864902659962402606154261526073020263760824055369422079140778062695492332943872785098969819760182087752391887251136043065234198378875418490335690241032556789709649237631436363994435648674120221937909932319878509046803052726411983544557383529469832467094625364746611425067421254185374616742808209187389507829798820333544790475011366974634434067273896511862785254234494869792966524241101388030358512373935691619259101413300561838041040674599965483858718616442110160326240324137691223832894527095231936808462836826260830552553032920397653998738149407557889119019975176054761801308018841310486388086728763014257881719385888443994557320031475693180189609115310116668476828578810243041262206459867477569638700295834866645508627483998152402247950273452207830258527543356759118693624753348264292340061010674133577544654154885777880522475284368689319182007098692235880074298478620759115828943086306488466752883088328715056870875583812350490609113614533015500898127620009490145379103142359489464340182787849274213054576947766581378561806121177182024824911390017912332546438348830841876336160886063369884163766394808889456188218179730550468068461837496684218778023175987310809559282753649714134649629325433533272039484593669320712236276182181101674604620355761514680883380834100177019755073487042239585877684185273846221302209031108868349187461570013312022926906204181160423312678163660250801561911706766819587475841641479570060078296804349411034772837290094363583156087931525238752384640311169735163258551927682149133922058639794718451063740890786694360875795747172669052729732179567020677477521372153184935006936693550884837706339947090293214081199855550770553441248913946827446650897604018880796448735683337642815804453312342307632275582437460641563547696280404696469777898333565103367803179930352775023136201192659162049362315975120038982813503975459599225281203754452287705814460018056626753928992040020476741551976140957723744814060539831173536596761620678632488955212971977723286451147140596584102998302070750789955072440980983033428880534624043250539412005884177479491026313260375287546343211504474209539277449098443025450496172639673439601723419680741052941746607307012771988251950228041806628834782187944121028638369812304987369053053286812274449892150443728142620354310346330592399897895443286263491381204401545563661044329215597981073047544849938134772810985289648752001929017834626029546847131146735628108543380094957342018238751047022920770118656500293204682786282188575689797167406264202526626591321726806683162651769603047914814644155337978582711276366870221719571154071268904408491077955732119496610520792566275218110403474767564398566661666064632106365583286237806475772445577621553544389348305200831487265039913163464658063287651401682538088091654735830774998734525471257138632482196578427891846459389178661627956438401159580334125751074319773348956219408245144285495463166054289573373920786836421820000587570140466544631159711830346128148272401826294763321348292421785615772572705653739942080997221726384084867130664885377092944250207239701170477995177684226701870646736208692281180887411835112643873338591662519427699560304204106681270185032873853261179652205057381381483854963789135397095871896818113935233907916116727471566588114094646527846781858187866444057118185382043023960796200545302285399649391486247208577045804860535515321662632462409655906163120873215003084430710961830473737623989475336223465865328860225228317200277969602754507255265660074857411382881306388480758088327437945423068169162387589775025666846306855267505513453208509202945588751003590173774490540832479139361886654052728186806584268346552496121356801022466040867664547671861711272759049934836918257560671289227694895921897441792314516300192730359803197691702694398921881015596467621637677439095929749010981764178252056838914614668946131167725895094889933644941259657345688336199735412054937173561599824462114868668569580393717808948714185274071161082553410541472149210396762597567958851740009608427408452404100970406586239865904370869450506013785652352247998066735190910529503867391082595769518603391238462873714442937227062308788437609787684303557557542027620847966316124349098733849176158398424843947951068568087566642970365918036006524762081811013308374905597804400531635879381063268198455002026449320528964392831318432952315124865495035162188667038436481917790902989174193012272727886130814818418429592670323256218889330200753890840046849105731833913327142497741477366265044192685293525156564790633151411030029606929432075015295319227156833515728026649184222110101285632537258738200039806992233981747971256804540646955524167677952167384972943614252017925662801729054724463867651729265021128739896033993784517328396890200867541780871110858796451469627185106742165725838464534696541384702512740119535168287094593579131094847938132299922020887615330917586346965600744647819299828722436147701019127590848092726316178662426095290705803376329447205941613276870839802003566238783340220542768480558526510989358344565749104168454599281830273521468894790280579393970778336444223685782910622827018890192147805501601599254040497825881560050097215268740758726029122997774485355903390201777326847650682796914718811135763589884568631748075549555155660328714398716733033085150974018591144987657930605903582839833435832130955242817213136862561354048373705136240571299306679213910104094745038869462694998429839531669436351331742226817780897571572035419383049029458914136704748170723379956567612072146910218703323320360976653846346673207081197080169851526476919711864448106627164621979341654536478683647718413172959435562538295881819793922865231525189468397381883408538985084560758422290999532738887196799692135369738269574884218972031820039295051170368391975838208169416293083477980054175520498120672022908842875092309471732067613713829275517031313937722131123510091629608111396505652279481856795398653957197843502937232022677010934919482389618676761925870657576638668557359453164427087435027548452973031520879762701113083572091316271769489701446121540191186380705199874971530815782991399291117156695888259794904041800121521355508279073697119635049166013323295760514550157696035559345531878415917767131708088839918997412679391189186301209498780962086090849511488302180263076115113070519310704378405863220490996818104458520281478153258050424630991290445182408964585944893597745154857125010239753979606575093884352918522463653850657736154600070352540490417062186431944493295998578199176129652109337771037932730444516927592153085359105445446479771347840131345609376189323368925865916848457560495283867964545431639054624199912378103056441698928275310319036248317864039922640875843323052725778012607510562887554025565066062771615971174356480249747181352375802211481071932932243095456768795121952473983474155776443099185222555775909768633616486105664617593311156890717072227651825876384607367673340576181477609112070702841621678569996318828258792629858452956692456724422997877472395665159931188849441001299769419576792729157999598310618451446961494650362079765444574780039066611354171796772050123556119677189836052603559024244077608969953030213015467280779483079392339082000422714799910491402760049717269063206959101975619553950293288990680994576256081001840265479218499063677253546021837984760166716838169814552390241379577039599518847104341674626243995417522737334780169131590942113906247303590087639866033497436487077806223433999461171813543449447787753182631771876893592358563141832201209541154513951479088852931914203725948448264541866446153672019834252276077772518774290651193335705076963920736881950058290518097819583661367166308498691933543034478579067822132935485088979922588678755539566196027444699548882959995736449394997220654963277285481634997260664959543606234971484872929496738080873770138946595283836597362591007155942657265987045286646239664598411843598388067018393818696257602018963208583818599244822916838527021118479457536132639870506421640425096240978359193835334005312304732257743595125726333135013713346807448850216245048589801390774081840583941067780188527726911413202299451787145676688952280106524848595417634437972390130632159221640701900471614744160296367499478088809590544026711797996795129216040041599681616924367050827362908393996724413841120241100149185148844900397543002489989553634390653822326884713140124472474238236731363034483864076379431134485260654717403132854630263228472300315831321935318727382703214473118224513825316847400723477413265261848461720397125711404422384122197209337302313840963447470179983157157575419608289830287823280383089320708518369975796807399446066649304220489491629853206590506294778215685147816650200042863291356661412517390582030048801678296239174413482565746776464087854845533873987705370542803898896987846337292505005170930194619949475185583203564773096988021317675609058841096684076833973033781612689841251759267451047113763913095179625129025858181809742367506457183230046907695996394335816314773120353512687577320894513389910774280566277330762950581694145840326279838896420752253364409278308223808155187947823085194141588974396343971581995641286348475320167063110089184558106509484285430335524265156970668386723543345444551940679963056742239598936879918522213621866478801451833444388381358090748677190658764659295088047838328117352038711957660383728445396637519441972091350052744947033326746778145283857193434898562369464992101871257576165112578443288740698176683224472706738259936608301209793889945569081322744405305476869364733916196941306020587283226082758043130366575451587804754216133129461547915141538179546505794478256042906134094971756483968275364283553857975065099107616132830733434671432701713871178062774602401268792175756453371320309822472683688859569930024176408457963989730434174087683825265018056590941772032038014802915746811601308768679032630054837213439162681880374920448646842861959635521904758637090887655507502091571352922625643149876976961200508050224174321939219212823963632241905247583524451753246007548587856170288271117982108303259977827183640261137587586837910020669715954115376123968948809769693615043081100907550025218690578438283133487724745355978773496359168536721134896536626303185213288041411458871356256137556226171925117031045696791193693573278183235906447798339769883425364197147140168567795660415903273173469009225169032172275339278810070571845336170689774696540260758325375635819830679792567254240755581853512785872731392004500624929288190719750633568795988696987637086726998690621861001190132999964561613995955801111186414026429707095364862977652891879672867588139615235548860288073136043961844185768215236211754778704574782654024968665094840677297858100067402558467991210064275337104727987908916793860803350388740039960413882022369590088439181908190155099303946471040680137806004823650510429305555965479275346269652892138446476455445001507206596080916341678054433889050728594969563833783417687594307755763115307349268278160807295951615473464483039522539669897745219308418413865085473242684818974151284904327715832714779368475733657234351853330702289943530145984144529450328593324842919721766101963368860134550482751126247831140518093332663433536925980094892873243107010745932011924399568924251789036450607317213362246821280301601654026954463635668134536944093256308983789646770335525747029067258517722862477496853026725437383944828701081749921365051120272945907140755158599239072708697235637049522895473449606764308186203742272330373066439094411273208174592798926789664199021847830171791833418901625410862241873675740969043897047577564522863534862707037545355296195855321080928608078679281946924230941144495819782687587065690191179889903059807969438400517678152415100131741666650971314156853852923498351504645997645782679993731356836267185630165133629085193266109168458784937189023548474473364523940806282843983946831925492727549164214660457406606276629654343091070777860850627744021526657353297371174778112747424770923655744920847248765542691972165475331604206945867773623426541196752339895695563185605282608981800417409711731808053897790332068244506837357705302405510976618387332552949582118450043604295233546448188535737950236385802877743173339277055271111789189460404536814883596985175315657145794121753696736074077251482135868088746080027114626008952010276480551302665133133584049464204940006634194725574621461664681551223190130249562408480057920350792169613451317533038434352449623131911125788442463184882908427102719535100971398173688102498739070127545606924016449746558112111433181314397087030647367051204069663948581939030575812170445376224357109543559820921838653297646803764955188555626567059075793733447242831557897394485391576232878001290263771219553262623740039995056804572522296320135986996731147260527242149769987953614873023253670805094732386288738712565942101549662541544432467389154098531802469934389429068413238488854244407496507638689572857253622628484013441979791831099550287693874264874790173685147937169332384423682257286585373423839205054660773121321370320108608441927884208625948892324873505014783796748733488931040922882221569731533614857233208551448354304931058761853751230750786788748240600989613195273658053941159642534363177086446983199903987321685545642284518060164542024028334748887412264217521928151106026783455474209059376209865176655411039079815632485165715182868419952356903115803015732999186164244629448779837515745433123849388502706719357905326328394013786072168090844965944003758222117661882244381043057424907758030165837243894129949515083870071568146573488728193479765305259761212458593829263689977363920682206096004131211066945654957292393932541728149738327065088528514200871054070639738887162405812720320519432726589820726568634145068935888139871314256693533858631920234405581160326580594568691052100695381529037295547670762352009394563477531530625105615626500850056719400847602282729492514386803525053964782800868522756841044284098700279961788200607362488530662110143061501405270380032391739586743790761168909554412597555470400861243712691698875268798924478173312452919181060668105013995738251021734719255992323128323534043573401355406255434576064212499135502162212753506878484729455200195662532844455115731896966032810967457786358153964211835661762231878094541426880566999076369041979095142602868363499637320973121350480641678142139695623812706720435626688577548092166288071141264424798974210918802905493139689100930617871628371004399801387294951435443464610903396556509115552883018922548171824271925517646980611169447449233573050515522724230108765665212891135724074465416956496100240621476603537371830517905674843520363557172596465547397310485203294867137628348700552001933328303892703163645101686500328504703387967780608210716910862032036438003777921600681261324429650980964969259513858074850046675183844382326201547250056884168493852919195897447977242005809452634206112141498118093843600161640831109690946719367811275523327525795926581560378029949572281038241974220727642416380822221268143411980590252917958077059984256445392161521875559489444182439017178308156141549245047054080310098354792962889826075782955149511579236919338638660925234028961829230657101328411043109999912734628364121215463599057669509142448276036348094609505253066745718058552786082538558040915253556875740266040944057261806176305560704786377402901684210315681357522602590719205625306163779397015679661502109918749120950763101810472624401769266625003241657121038469006200756159162500964579593342004114392023786633999275640413294791819660761096871004476578922803552557688234342678528634277750247727155088558740155215712935752334511031618120598771122398178165433802486740871474477778426700609092340762729936093086593283452879489897921836323704442741595423464610263664496956834649554423822423795398522394755904183380749237202072149969348461589396878963734797358573070205330638696317930276013483053176584321277384136151852848535432549842054068577952538228699405754821309309850372093055954922102784883901757947586716222367426796885098740191339507143894471946942363660313352908132612612279760033508339934280886861904789274703432434039152126671159944381779636273336994424110320183025693951665787220408407790759150423370594116067672125368312163122463480886750270805687909929194579930500589831148277543573829131891612712510502622229613954367703224570085369749927559749407019132890132384780280862328634724512566042415651897812147921749028132060725938421858713106932514360432194004511523119920407642874718939969148556360858977886942553496413249683624750611791454665973274682235686048475410135183507108180211670346955603106610638461928007594135588660825942187320601656680189473077803414138242851648813054418295146914823896719064472361673550759203699324094191097228708751727135279335944195215579049393614166391462168692709911747778029925069566996594724965892841749241082546854314633125975255873712900991509969215308853521497909012778931900551458260882103075594084552442890346776567978127269993220447367580604148566716747164578948214690902651703091676902995200098492279501461899361377730824377960532178674407870783217423918443938483104732616299347178760470981338489476881485807064923883103284664922068140658612370890746320003803596064012916777915655572632921021054449169673080240460974340720015807948264165711114961075360977047890020931877984197726809556986515472317680547160273012205366740026872963855811491668628720198473134744950940668843795554353354237306662406893544950831466183533863382784523720373106113559088648333069900681861874321548942824433819219087063389384367016982684622847051147851077331624806695688454881908357404646209630258210969331074319136587108248804760823254613986173685455700738517817109677937338360610130354978168245420128812562763610454944878292515626275103005317131775285022911348888782146523861472535434619794182959220105137102820957302604133140324473590597190187680159408967933173574916674171383667100062500423595252012218394246536495272644622238764990699245030456792134232664643739684321507726548182064135730069468550757120211264797719865658535106507280740073357553648899341080620431890810954066638935543090924410411958096307352453943180060100522566888558871714802380413650866932424676083999657874637396720111041566140461937324446596683683570617699636346982358422757423464318198120800533255019297421993766218426176384922900582262501980926931463286462104882616434173698360785139962261099025771016645470136463969221680820005476021512332165087780608135314189695980420701758938208575080846606789697071770488258421939664598298465397065629631579373171333057534447960912838137941390059274414579249541039960731297251943530650008747739368105843728110080274879209016681897730713382690568858174128615742124077447244880656635911689925016582909800959542159968565748732099697421875989141665825004564886939225326539501268239997374771127967165804628851035363252208543728476674696559660439798116482767550772736981632519199020292361428862302151728635474225278955140063482280787684448101401797966627260387136939949579973024474116736757585493095593452039104664020710161211659986552629555690627870819712200369179356717802467574670480084468584065659047130890111943881183654992225047537803362460514361643975399810212221936737726636426767466339649060826871630458728608211317206923712637600119431212160949360078667208473295327234815101826984622387012616165893063498186176507651057514794776901220587264415815776737192645332766768413021240228998042000860747722734789984890758434517580524485415659406330597761162993112562496085598977689276308874170347099860289858096797470558132286425440064148802875799350377249085543592359245418181479163985740660706790114741590273695855181027448275428558575983303937103855070648248808710695843149742924551317400839094406897603756346448093208300904005212787212093000513114410417207230376005457873809823251654388264554706962018433184785947789815063974163792449832108614825557686882303303000619446720728908066890862927763805411173654542091388283927214153516176731934680987951739713181981742581309297699631757669264045417469060744764950599746366408050599828232152898316800843051366043639742449862564374423965285247196167009709162582172406017330254289397398380789577500762762989316065873461598121210063253610693149676961318368065575164562324650409142318892231313494940669491438523031580972728420989990334906146520706240276589224435952746235350265709128240375038692996350299820414850364482584134869269651018535003938983862466675242518565948368164720284136833193044433749339010577375233939279396148328868706833929539279788529140559626354453639244174262256050355580329119349030998341058681153722721854998540584143611220143064282997183852661453295646401123639596007660681107038020965675501718902732476593615629409751574930570013878270515880007312712112069578924767963690329019753078859815678703334117629435601903892001157363738598615528930830980812022892445831999541707046799011748148272896504757879237787913863506020786367673495387957959884149187169077489546049009811651585956161375475814057683942972216556086746897277434270688687057397480536476935600176542704986866927303644263414909962760479564476773984134812875282503595072041334162212186397295674111362355426932161288545414143135841719467229313313531109815637031686152108269393471745723124767345322880586932649927631748397328003337947911939733518187223378288830823756187982638813574996290921057453713638174725317994104639844224696198085761893121784024389200055817289894144589386860711791475726644454157726255374985893676518835881105083552094870246426555341326456669309607061629020091327333449486851971601695809766020087510786461742407672563008197721995504798040178596629449889393043851006407101825486658771238567256471201073586643478503167747080096675093797675239936286857663185938714754786000934926610862468481244166307117010779646764287928441058858963365446243417623803391354286817273205394205589916002216182037495204904617560626630985725731305139267008234767120856766250364293984315096640872034774905631219827628653265822305062546168225735275809384554749640852700991364092969761581320708968114176593038385374625129940017987048344015859991524988087717831996932516495296719332740815884234836877846773475342436836303756023531913407667469448421294531208902575119500197776408835762467170472774105599352750312528619116515511138489832437781043353159267585802497941538438020868388762026749372783898528244940782693600165364851519334179775421198379684222769406366022806176072436655798390185215989141955406438866773818236825675811875382579961036842987380303971348966719008800765991836073344157201861020753615622727173038025125668694059603791874281412551836513299510920394790852597173230809354124957516031649436744186137229195593642615038420656793559122652737512228883383984429615733853064411287894232360249224653053292121019944178749452421494235492284753121237642240760226775247896671647893961678851568989460866354675725698245233475684223192154145976140648540173678441818435166001813090445852986284990930607210984842314914628459087961707476152145431801223230132108828930307754171788754970758596750627133517466185198290284363167882366810381912932680225802961218575492571560887292112570919034338098277774010892868332636253036388223648437780554649845534888523151622899603714860948988009156682528049371269173735888248934529608342591457993107106933754178015030218982289859072698676847918685700725551555853923704860837454075833143812368402803275042086629669460102491302166822323524172568405318062070380604433287427288277655913241862793668564704063926748444228141860862312917775749316218467997578941520588380801209078587731055540173797874097268778936140417339861045261165028323602790518481621717435629215996196401340182006447516523819526824563340602844790830229392891858085559400217748570433281967490562348294556831054731056620135745340484710735809686737375112055864494768556542405776620096041455497170681384200469370571101068665350246956050602857475701936421918720464582295357996380783861123624236863278648708840109984505168922456361285707939397939154562926986858596569155499808161494759493371754515279620241564177604057079252124345483018929427310592531238067335706835035732008350775171346962989900668482845692303328733216235254828113594538838316867089912898601703940038917645302858392403065427372249298777693649438135206221126577245312120643289323217068328876548791556945324585088827458096346162523920532541849334181019490633576344091901496111476113519405440283042284784473013300790412385442964202534122635731884586844311925025829070273182159628903595779576014591901758316740711249273738218643350907433880078291883075746549954811206958695647632680014777382796951645171542096300533087197046473846723348964352149127639842414509125603891143320137939705153455693903910817422457349599709357108413701946941433339691752142189479723846479222250313360312973657450760174733614943878772078725724691358496746996781670661489250908210421227255422970184408345197073247639852805573416011066644819673885320899798021969984575294626244825550867178036854307212923454732802615209991434362444747798617497544657203727113238974725903940717302742516560810108072188311013129117584251887955527243811172722396199244174157992871125115078211710364888712192279482030232571306769005996018308107533262161551109868746769654271210815242334968057855127234966233564330085472498330912734718541503237648371981723416245244170266378479004540501913485999257616005787026632598639845083200711465329780610622410682102828337152234431120907230175608597717885356204346930839768262547096044818221157656762335201260986660162234661970861782260959713345692200970930393569349919382010787153461750983998631241955744051203365785811699769245607774744161623900013448779678817632575955706042516178359946172149479246082213700907224809426184534936981453162439989043552241240787397944795845227891391048930629126510045271959244338764584325524316164152702009564119910806786755548305960058993874103182121899488039759827529284866561934151080113275633645492687898045546483250139823877754580494902629427502338870806981929699382281403150531395141169915672687095935915098747966538074682884861892355944478285609618849991996833641586388016186362173393673889282345235090713231988114608518590993222179805315888428222172019893713442319945990537226799050789016227219899473604018781102441857269703813932612340892706853773585308430566064283660720802295095052157366087768186100537772756050332922987980475750834520963270172009840266225593836322804540560645752119845301985785488852830969075771645436223647485543081463822938509199254939208593964672257309091833956962860571510265261963728281686121379561614252252851393909058522333792017940280711147510777261899323879045317286054285748443198628815565806657589373828023328943997873277089453747296683632460607098121539186775949115873271048953397551315139057805586030289614940302323146362180463280172486629648782884451023864677741432517167895685431777491201926850475768359249590784758117787056956263561082151929472634967294418169056114540395735328319598492824414561778302433397312742779120365112341596829679801801659894344150331386757071087138889053190826462060454575573046240337159153573719917249399937887511221632521349888640947246329016004275079660289437856872388725717814158903457710068285114020895015199219845686338200110309668809578048654985933448315929322159064869272444451432210626702024352871978700716663378320262837117483638599334307469743217056215762005625742939941063322668883168835525450530895122269692541301964181636897388458617370531571945275659244282094349248327528634927671206324591841250528662630448930160422857993648017714952594750215654007638929572376711326812893532932523304816355366143201123728404245354554757023388874143582185955604835140594639799279345777102405281140482992585234242583633407833030324610492922782827066646850368197271078408413171141289991629954889705685762307583982207859807787584024643412312150148837122284794163458124166686203549270029801752902162920652444896635344436362922985390803372126186314391832167944826834173085454543573468073984188971573175883654046494677091075198582172824617801542892626591001087124136187452534577665717484515846212052877516310506231206915534905249584870720649736843828084570287567646024952600755414332996147088300691422795328951825272614978192842350436490377358786825364024194771854155725010246726004179930726863072915438786835844316213795219422117083098413896668930198925452655691513225047175511640073083198947585579977457722314017876212063899134405676416526596412766763983841856402169602701859119885676442771777082774969428418241299065948208803793564736992373876633403975363870343252122464249759936570355181057805640180721279826274865859680974871929892717021651019273715582790215584615929074687939002267815600626329043726185873120621382517918270757227023441507131161397114479596339066705364905590761521131219779319946149622458484192938028763347689539388227433593554480447368721741237446228097107259334653067097750162889479127756869652726101399983594946218730466620730868111705489918787898350210544592874347424739276908736260804862605926182900713199629244366478393960747189314118266123712522314918065335211517243341780767991499286869338203873573768006924317666939558748700092668514816482120959061963256181841971128160892283865124908507088965893256404269849428966114943195869391151041559198741776757571283271332256694972396561652513598920078561707531504204628178634838344921567380322033263867199376250727505169326541636918228632624492397105447563903456498050818255251462552437359834637844516460817609543073557726161088089556233765159903328567074060792549636161520452549763169712670570202692319410063781149687658451497129018390514733562356974658808189722087750605365215379534530135438499907219061649834730261058854706335319706945011017649331769953005695278926102607439657047767254806919847084460982340138315168807355258506690440294394178815505863716469648056163434988531991024514816742286301079164642270247117268143946292408537315871924687891186864708287073948855857892691220539214469704842725384505401390203978375008295944454446462168095867207486140248200065540160946275042079215327372846297416888405263697238888328852741816269555590252717539947554608170773687930683991235537489549855424948687255061165354744051754787545589107478287389064141341411899802548578002376828544301598662152731913265159089196303716157179141303486080662868594124242752858394076127600301593003779958761943896590032177817733410350740966722360710096198972754468461180212598782291293819054494665054443008856012380128881014941195305863753182322956422455657294467144580266774959826815416638533328852312246525388969895386690918483942519856232911733696660631806865250774714167044536222109906413314579280243288999028755758265847405561790410694878568713092860306206434681920633207520523519844416928794478397385761135769461529760847282932672533298959047002082904348698078390133699948742864798374529756792238999398432845738766064222518364175964956329045905728409269558656863412905464807831854755419389210637839367131553840215841881519679836027848869614527086621421417361383563137325094366806453636656330821145900151027720728355050472490835454948836593252532454113733492382290840520248136866464277912242974362189912563299272962864029325254363352242083084695948301776726386074608087204210165237116727484454652010185029119381539055560705927398787240929091509344406642298513101774794135561964734351330078536198756308737264983737901596424305242261721541966946028987663460194413964271783865415305947441600920353487073971216579710769720863127956117179980455213258088893247337905092387238405877658601072634093308285696735857147024550192605573020393186836262822077556432004951617832386787784547558864509010093676371658241357283634772019774570145102249895947184836105608680029459888734679402917729332871917760442410899493874749910338699719566868259450053607205483053578737394474258028501463426885293851635485001088983068542727187265117984859084744739726316941948009562714464514878925987212672173391753147867619369220163469905402403586303005562132148896910941318378986867527936268797208123522165837333240132644158714975230453731699696791193184530083474270052766039203620829200386360426576383968437937292677579635271717128698315319053286468848015385679292303846183231334743579553720818342878109673391924603570715467130208637243791512220565866216598038348680360683482035135144815852478668680318558683105328306950603885439852139624024754226578378350448942954058531344349719868976081507057751588967414753356565126664780485763798080859938928112587474352511072356990199669909272143450349713028231173306495177539771205563056981377258311466940046424027255932388665473063299046490459838829875460035416243151379522022766340527167048871600453298352065426212743339409531839684033366866301039097245724879304470247442611834812632745211134161828145312501038538240853979678944904328611062556548703935559269095355779748436291496601763146269683278695942272635734839423338726485028783883489740432437093324271621763076372874472433241519144647927585818302247298396794414059265463684450636863321429593542175629312061214945536093624568410587449577955555061841768278686136141615092075736516943674998128491771631834499789007664904292859674567991365206013794312542783069042366474223815606855850584570271146414197217910252366507689130696050096665661878429874081216742326942981743656321292575980562115299191532111666602431535710289385715943653529225408881394892414900251537199794084998244406230065110777912966384241894330325690545784829964787394962146157464233353986278507580672327338869980927693877308980722583750180520134389498110220320466971349957786870439106296384590158098860503780589131082770115384549840822599760810108669139871284638920757717398510427978767718857160028388608265832696455512692363288879183631201178129496486535741457353795101842062464064140106154879099365228465564758074295756743123632501918380877275617842521751210722394206809725534573727918724246014410190155856518843865866904698512446717352077603617432914881254114976803924767123920182551744869194430804449003775861078531777057666733828734862447064477129061333487357748193798472389667552537297546112872466158855388906489343873510518500860900998152889098495892439485919239752181471929561490265280896831834401715825541657625232153162353208332207761546834000542057585668267000267015741199555691343230488604892882751984997218352060050156563363274408729460939911929139380620895335199915495749190987405471055840505238842719468331018733971766158475109252319544749188683642108319093810128122294491213252740397724943976049372599432453267020187931391634154388733041581893654577164538680110811198421462464181566797347284523927060058067575975525911434687476254362949463375637168859254979106704319548689353631499491123231256456820608183967478540935596320952879734518387007363109518795474766239290215410382469799872378143363284617532968438033569160994539511682099635266920101270730321813449479759943881361206640038217889693327815716022312195584440977631082293022553203062361946924352412365876938418001230328450727710282026884526672193445725456721997568690666583718841858086113859220109401899249908249922884699989616587327069256702056561167831034330867295478797194351638525258880623670133258736799278417476448120966523808501478988804085881420555775181466325595482206331833085644725638551573271586290460296198234992600201389664375659369459657964039185438858686231908201471468900479148239326487585490933110889435668264961460117150580925636958924729300390724610450589206087243913179222646772477026292707654945358329689144581834605883920610810993570467250965285772585796551928870952307891128324564987490298609697298937834613499709302393016431872338828266768944589326293739042989684075134780737262744973122618237442450302538096855596365791895439591130516135452157240969367178295630288971178396516754795099878343877180820218215035516494350245427940311143724299384203858298550024562645590848208535550814964725941963491729314668827741395487285927596647034285077699533980251058482166344807194065850402664783949770831851825852677283794239671173352167133644452402430040208713601078419607758243796790881357824677067041490596435141189498364575214949869208277709607274401544731078101263359913722250433813544366294371368569026031179508856123491156028567882332900581661777558429213445719420126350498834493735553246809489108750278874893742436165808876266190810075820718865545064506525071831621985195973985964777150581972553079056783869213971522798441934267685557720941951445567329913267231987084397614534336011469755799771221475967541684765450981145587477501207312949824893182381791617825597983056313012806237388261564712494166540595236251872224048490757720592646881812985579132602794938318994043046100929390991236095872619476575500341180661966684583413618149602575379334527510471857560829936518340920458592486094294371002084931325089823245935362056102684722245071452877624995449687464776040490527322537202563703153993123132359981906362114220777434270160159640662179778411866115987976066713505249117455037686253078586395012644295206537084899553341227275488606209893735786417727056964345281030849613855470200046314540067453938265585714379432706110665063290143959415486404298172427544659709513019906852604749449531658957330532567533600492326319840860211655169924226490893349062602103693314854273866113373220713935394840738950250642481014736582761351365210162319979947328262908421609137436494696995029101080080225719741708587744048303876392896320530340845509429628785088503424563465601173043180278436747719485022107870854284447049337229646113005410210435835575932678210747600571203708669195775083480352783403915964076008955643434156332211179876307726897463417458478484687762058885454252206799973760129886083028065857378650129072556718522649312640342014413927125164652599307094288631259985936029779253916683051100830175981466621809387075054836993205470402214577572924738122310467958227276936140036517404826929546655674278743926579793639681871053896439400709903766051831985267983448349434418539935014593677332026262400776930433015379569598654816571274284349110833114141883095205258363239930894909742354158008863896248427129709575875232681933998733263783472411354617649468273845224776233054901277505344725064797858677646999377414561848224906914321214307907656001545657014125848115125753695097017442612538095846760593972961437944089125670270203791866306860857879229244648708620045224844500300249362299805267463771549966868012124271946356845673940776308998495748598156198799880552463266559780615709131238680848526433421002942045739813476571424308198113764620840409157547449844970914732368840078186736884466674756350631389242754777758361395924683038182286442180762777701786908219127263390982768370038532940549173531421745884984124503819185776720571580575026984742686803622838135756577487333031044077997456737588082792869772280199175205448989312155285202395169762804443543338743305440622534853663169944524455844208659094043467591127247762333018197036985697713923721646999132301471466092705282446137963073847580070473573751055679081503598937888148694000082105137820938090146376223431879509597977777392425611792333857218171714615236377604556427430673904632748194066374247723202193667882744631067601190550506116704649759314201230967063104079218317769516826082161503946488999939828060659720422136735398837106662364315229544424104254901700394083729467257971721270494808580464674264593654729210359592388563490922486819645014609183742259433389512181395162594798587990824592798762324627392298243605254618672989151097891955689519835020862624167375817233110239302034689732519046705446475351217817067863765866800577769132880109094474212686418300553577622527337071394467918890316621518925404314362365822463948891328372333161036773880973289224119011110186531461058911720640940776260296124819809144345834205096156320707332271200624362123939987242822309827308418184139022436932000191027838672512550311635515747384626317556346574559516579306542440212174743184956993651675937333427176705178466113028818017837310335610160906009387338928735562977597731963035315973238256805461145950027692412212838035264166791219487352957818185650292539877049309707447437702360449330874574470362588073508834088810696784880295447547440571202926481464071857492237170380015312635157137707040428210416055568581845147810572206687978722769166558894506709813589019034655955631247159655123297003702280108927308555765342563565025250609235351999487193876673377979075654417792813075981662630809549699709982583691906247421887741119734463367528505154702611356791982758189725665355887170501152276723100727072714045928161247292309007312975098700013031174173687433126276435840412303658005464186598299822871078381322642128862202027573885684187389474125695538665524439170770857211375817335370487900770687090918127379710453801051316370069061766980606936000647952895178033930733462304762147246316908129866060940583938384932156019451879916534226673132349253806643213091369107336055554899683260875443437461001578005425701821431267064617903073867372033712287335104526335325650743337140392131778156898732430472196607341724768220676545590532977132234065019323628041179963302691338969451805725246707706297819972694792387868345178551937360565675348382384276014308753618497293276519503897110523537408627504420102287116859590506829045096933007636720801842392867321756052344756125900870242831281458382858138156523615930562750880019709087563973197063772222349927559730052950215631356660535201053123018848926395266471936270190072918932456737655365498603285498937392972555142446512455789507710962903908497774940483267111273305989536504702004908800898611148781885223254041561963476693438508458541488570031756422425451540319655486822129742935625729152153260999838038415779412701911836935895923028548400534567752137430678679278939818323888299495461650512660913971419362266039012220503507652253510026204179157011694505395739694305299186314986682735021008878451864515414719787923478227088709825388382536788579052954989802038851847981688229147931721046017880202965700042780990970391017654987410260927567239904791392665114242155855205484001331535433475935668176999931280505675784694180214201291319296244329479494183152666183302141524480346233001729231057033971516988527437021658448817949555539960034971480838579768979853863099064336965771504960115671298521844290662384385406835421952299887694346830666278350564675941386467687783770682078338363963063553335538628515688225808560512244576033187422201498879732453318848304444984051434938924097342071526612617724694427343938183964193103765835328996534072183777087434738044622528785301924348046313716059995595660571416484961659063275564432045204330909891028596593560096308392530572098900200176748220436454892894288863884476555289739571050490324070503972498572935872131874329538940607026819331317917681137589827676537695706870552422567161664968577340688687104912228031141799934813667884277323062784992268923733436641604927595631465887439853480240680672990576513970355506681609139950591399492048981333911645229657554398941057265122413143191237508314343808908640045973973855669270021396372825004344348783122606051151001730941774696072185477477750708063926045793511195122285625642896024361551372412894552059017623351263158221321788629636451320424436511841426728558095425958318055566728520728821751482936404933032390541531731613167923801222306387762517193039114029432789455421883980227164982761876602327754758540404914111922316949860962977531079697934371060067666811642682962863568997757997752883142600986909823686265006021838413465120441233184906610781313580334551710652712617189525565322250696067432118543952924166878204984631592683634255224855313018863696365714794062152934233789911345811953870473963642029361797416775997657217496803769574469508516806113304183889228503731882373858591478986563873195686646551244396324679364990362150957831663975760385640973187082875949494976884638741271883202062635767807472119332710089424117119161140095086849821630765335933532939465405623634579040403515270234049725744676056671395096273386974779319711905176233471132371103241854369658080749187834871062502293502067043780104995952319538543275729784010540737394892314720627973800165862837565282100183996824957935831424878253991507367988326648614244505537508237282250488179912782765248691409159188935919542873553124570457387182730045284413844845179997768801013869291905590233078766096219614473308165077935953071177717534053774280237439901063394811153298712214323217654753815925861300178909272423774111236626229582632295280876099990641613801104361755761015348790082226631730844196985257728582413113000285380930760239672403148833082621306439386418680330671495556359765207488434613470375642283062136812140481700139801024681782848773238344890074634254171740110404763567497311749255675619613185677076236300088833600619306216788040694259725380623445913023794974230437807090338759307675918083313102004743591789193895747911336961841040721008543572370895580380303041304811136441458497154965123327697439182321075011511016653105171689003291895054352625454208391183146652819379344793715269270665364075987672431475322133323576486491342609088721650145713281683053678439561915553158062966630058132753160312658249647506747213107311461660381765723095647139423013830752726117412466348762510309324851611162369923473309698932518703309993799119162559513301007483115763733652485071638528272826952212909968479904756246069867320824436017101274574347244326294294661515211966140546595393112062637530375496192282035304475730065238271480346193272273520116320604167255211077627385073022006791894720561765174592883937561396571844021270715278762618290230349459975902124418673804214201250896320396799589607780938811508788520092693892751301024445917953165802192069755809656103636827161016440402319623166674639189815837573797041923541923368826587751865499990489227763271846377175948450610808513545499336159030813829083696029878189787211814410586988943704426176061330111046498070892102009983914698123200950654086737897108431951093756249178484281168878152741207180965626348677441977752601685778310147691612177317527554509420779490966004971123579600445237998350280790498401218257116724074185921161738812237049950510312598483212401383337340719410648201740348486392381696864804006702328833278942825311029921927665496792194347257590590097097252624444548469218577034357174961579523800734171117495993675397170694919986929292873524901191375258641047018572641312644718222758995016979766167360864456350098827831459338013181935673533272207491258532491896467716232802647593351017413785719490876819065089892885936348365914012459223535691338082995180484918644814027118939312060284036801443030418915584368184480815008379420685784343062814891837008036488755753495045056638483913804178802134927230331945781628556116957096587603314706310319718926376366564397196244310017343833821164744127302483917882218469939386141882863616722881024319976298583058009797020062057883649119871330243118034073240424794024880603807450538086489922623142681143721622438111258297291116100578677209891863401444751633106173420975864263971080476197358831045369551062054616056639706553449916814431609543534096141226284133000660627307105339927979258189502400109476070133588556497063795938594058329702343304899132975139203382313621906800952296746363543147797251229379402521302926256817960163993146741800059688357645929623441853718871655712948863356531833856835338983056914205906930677551226463076910767889972285323656532573570423209372046165773300444715948366357860427047490588822607043642191668513660183794302618268816133947544077450506827347741579947383810407443024200769258724834504164640012584058275255418539411097993659266377264196680742395549919856837135608121055100529980083148825104323388181872156553186005540501341269184104711716826310246817942285302436088627629822577060529367498481356465266359106316266969681987527364244273936106466861333696366397079456120731151883705348116175183634580948461882830817344633933261271516645740695515716564030803048604549304011845321593925652106089333197548208256197020310140435383858108496131854547787674090130826085985862675486649476807982826563993289003110533558667464976587099442017402003225117906799182678521618668730556088498907914791789610121302919203963519668161130900941427947240665529194930610907749271881945172467816550065680643379313131334182482493814310808200808964785319329238748519137376077241576926745692835663399263048436978499525162059219589440958466097238870812733581180035640524068899137751556454904788559904843194460803132457285378580499109090088898745055194869647298440603380978027134152208271036050977543322161401109476962339290343483676757049769639037456473064697873246590596102080878364300061098143673263549533738002442608069864534436380502518737839326510544930538099888781422188450094326108383286632616534201799220082259214839535300674837174531698420988150592707220811757824621585855627023777074249922284209624943149745325948028222463776186034822587148739772741432214201600483696620251989926584610747644143935659334559647257476064163898594417983526634344676993330412625572672536679994752149542072063465442508338739599555448243149394923102904177574893477365936941573402460001965552095862614589976265840763155459071502323354318977996934326968729149995948704504092646233413275293225522353240098368027087027886194396684661125704423670567401920637382425592052172478908905480144538179748338011053914410359653765777395445147324223382183097368867915870823700137472976947315354650137089210636003701524457278985093005508488545692691116835500131791654392368724596107499691148237900347099344913772265848754962894462864386139936742021540378958185484886633403926211632917855710866082131817143432552809321039281840680024448454031002036004395686472482470956477160077081946346858931457936909349448090996133446397526598746877450368890100197367006325679102770955296178545767710228628688140953718068922867625876078138337001423837532604172253426059670971548362499487765147571698276329290880586050122365048360611242665610549255073301001959067659380268547474587152610192290093074886697593065272402912552640215958884638364711916550180194711110843005887688381578395814576941447742065766534958094992805572601107299760495989001630750952808482536077474704847080591796499097715060156929174961011108603925503214374579605782796058086974590541648173880730568929930479171638997770854782743634041979377233434440662561923519447618309479832884679897194951077543747605508188701896745400946922169246900198254971840673311709397392305542928974811131617842317081378348137974543742610444263026607599560923208109433452112297163738830158812524739629201278788788884941140556279303578621483428763506804877973107569159306856972156543728213651972499152960841594736189159080584290951687339149293437892373341106829014296332314813933335231289175854273675127530014664525424643447467465649024457737555065965159344398665001686762883298589987327735075769008354249666560625777911530714190295886383895837477906726549552023243999571385206293682430655731472653255592536977170286133803707763734923896232260645751953360194360537376413692158729824034038889344487966318700915263649755876235455660668180012473665107508906917172852780615074069651079470740598316306767356188150401420424589768361454785410423358400532560692426223544719890829906710679129132358540261526564426670045791487562784124525522863588073225600483278992821183906866471011760961606464777680500116540817919434042430476380878011423646785059841251909570892744486194993814156656758921883726980617254287375627270950142912122047697642127749749934183343728577679037500700611159505382736304898359921408659493810142385207284326879993418667851742820540246813619683515378319345909479628976686298694634092272131897055130114283358098718879157048451156187701279906682777548229077791062109515712817881385822359798420517886521104100350936573387072279736187438737969033097745329803708207212410651497735920665442547862047551682799982670335732632772209238880804851213859119769515517286525846574369201627123970886126622858966479403166132053150862909394672594349084324164359190960775883216611474850795952502856848038894293516608474302985097752564524406046138372226356880814213812162915589504168968617155148915651429471826804493679351131846750960068718875669861409098221124725499119393089796161735446995907238340104214226773066141858719481642856860142038691163348898428679094009528772770751799842011623317280197290329621436995179367398426719294855357739021209630210577837815754821675228551627273677581427323003474658964166568547668589216708263444219899738549794580503693220349446416461042929247099574095239723638073373181956059503822357258558517200933479780179494762667521131443448183213840634997094406064555210935425421671203266234998776552402591523387187733503780367876619878605853664886962172806161845004190550318134095435146186568789888062795265257644205037359715573727805792636736140546774385790569354239221142979185440630451027332159883174774076989542946872782943131379216882763740731972225657594969445195554146899554301660695798580257906964845825570445320239794764678658354123006176699686315196106952026896413979509574870633399162042463798354645700534517683360259037650691316038914453918803587253336026630474540062029075343326239848604434010305926095681772945300933560992566022011155369037364803577131751713421331472187819278670516000642311365725224470232066393065730967565373028924027207709382225249579255672925975246672682170392261143307593259242361105859160865780193989118139345671821735888040644897923387598816191268051862470073834310751717764286767903120717251810413567356424445247777264548223494320245769305613643447145932586597434155329964413628837673118367835871827451421393531432662307117114995424723515220822448112711101652116355989588338378478927372524097590241036865704102410631179945421877051740832204760610312978376247338781748355183916432356106416995814000304540472349539453594105289301977771729846627193523466345600052813441599206922443053950175463545822823794252607228921952510805331302074776256386781579020119302465141439839463005844925590228540991999735990123216039460679439178648436682052526427242704954123928124739792394697336766442579187723504785376358706230234388040358130814854968779314674036775606149720702688896430136528754355698189066875803523983525964751574019071203876623126578582708045723470383170026693458853484952253296582839761577509061523394098965620919010902661989440909287522350322480745889200172101109012854407227317031784004932351609808528948221609058243781174340339529762609176560578695872502755171292831434988386390504590536937106553601943319585055511813423069500380300545353854042128627913571274305874958602793268154755399027450918911867273839035336272534901124338257998700869406918794239415534677035907372335763383835497203921712845840971618453110584661376166239934156008740911506678721317286990539686182318031234286771664146579600152864878632609760115542128797533947594104936370641965758098668920857599359930143550482334575957475760604848764524963242423936963923770562801786303029994644487736325362590987635762009650602094487090912236973632431054608869562765211253974708038004177557836248015855649770551206923378744720804513368235993439635658425911990860665945509831211775667161224994908016809812217797088345613365962446116224451349200669708124207739486892077975515357601226803004029818166186235308272980291515585482494635709457018837115946362261504899882215715251729976291118276216758711261049645065296458293366725633650477542788890522736739131713055309520663482169794740981819828644857056753191770914612454884310553106309169294105562713991785434570772719305808475086935348761893293124070381079194230045603756572941877988915838560197791502333842116941805859106736776179672561191774273219117247969805434649444627249360949906309015196364266145025694436046001366894011613519813398666326696586600606395845780874647790573773826245069177010333351099679861417277689321594937511910221412902490322010890265149278495868993188122630154386298882580466114903791165877267939864603024752901733085495882688742404357775514224053271100618052193556405418030197981205595515878050802379186875569310390027501583814959979707964339786522281193294844986624012472596570214082991265581550364975933199533127546537339986773374990791035836618325727071209690387285721628109269691312066312279286118782659838483382516329429337507157775374539242096326923537957921265209618922715715725739902830906149692479869859466089154884787641804130997391714992850228721176858327203601475420023299513082536008200679108966605210251926358095813097239914297176933895108543153356297296050389050525518321065547760926356590581359369917926333688659013139569278855280035612093297086855283511473519752604502305907164002738781916602776212099651468878100783891592644243453813410002923279743596522799941738237284989768083501362903000820014593388260364798412327692816928673756131378606521265253383997111235564552492642132872053202862557280217225431345536976103141793386549282712305921260581209060503933032999814588098843050071257087609974906861812287459690453888788055870440478310267999426356245875389466186487879127480269166046586990320862144654716921963212101881253605950751761920307214032961827727433935417879560674248836472239411338437581112978163953062259784001399194352550526164613765189383773237039146968473859801825170876972182479477884551997835887622971530582743596799431850900843109824593456805434043359714163010740395021479935517333169833220897799273844792733941249902337394830186023440366810835290606652821467981932087758169953194946835158158215938366172047994429556430422603570453428357523004756919515407130184782710361535716812780663654329796562529867599464892845504774184974018388392968311403819856081166008468357032325629799936727026941427445488831703106863684890810067346653509963353051491262061163560745487286702121547220776410024069076580415915333337643553634308365127451915516863070411181416428583107015554513982392651781070754090650949543931674396099787850761180694912965091401426001279564145086033387855591501858644701927922355807511336821950042910197259846954662459677157632844471750989085838012826136856483421802653963825061005459826181223240519781927086309235101980176966742987281502714409873849000669874245056922966879099787955653687850256806463641539008260617094536573145369916286078157242130657330969880533516420238078653820064173990904917782580284818577090472397865284719155108845269402217083635522198876001341514679440955115731031511781713478944762759271822297217184348053228024645288246443700717351051122400995826603737776460869832006666264384920184945708742403389496590109256411906883086347185182934560917039521375164982903700565463107423209573404564173462646316342841592988045736581822778773141981417238788479036688576399845643206414081878190886565211981271638208010103249365750431173666638646177132956540533672738812002055255771965910795265354199827028189611405607721576209141100355659886290229772063347971979058359434143703718192134748868075574019309140070233022327004977151968204750802417975163651556108324054838110324413715912931871553054678279301246683496302013128951049072391415040271692822491406616768493242000951963462789386784763625987890737836625220181225284023911128090528133580498636963210475197683760282030104137241706056185365851452623858102559742871326042435750942058267524984215513826286448007344117791638730877667185889136299337953878507097852541320842678191371405227878057812458123675370971229308939335170405765475788153246004813367077293778616081361539490241386918711690483295390805983998922628879164075704213923969297415013321392816312150498780464513197900501524598348204996641312175143189534666579144280683612696523526493643402715152178571020762909231868140090803851406092267032423591702584923735510130952526882179484789940997688433531600553678137488390197850019147825499086029459190727497538459280655701279356068058679237408191942374951334820758974009141245194423615195133153289631551141916778222103047679071360378893239473978696534514430085341262111591232035073508968187201131936520666332814441074697285331610729145409642356431348835611631397232845933142964532907142588346093687001384111920289178925811836733612309252321886138577786177151750308073736871259675442506448343471547268226820935694332823903983555912774672759478043607128851572829000392518370150889423426559200036306495887418446989618978175787947147649818210195707574530288099258392545325819204724488575960969652823448881998798158283950143751674212061746108560280616499028452128090885893732158802021259908780646051204505083795734626436289590727407687131181852133897495076257588338834556030208012777471688899507053818483402226781443395282722676554292177787840015837168976694999006703793367636572002729044454262831024947631116766904522686344101335887332428306593381100142788145345712744970261486949657763038995125060744653989800649450765153186797406661267150393114156874777522488928796518272378623827773666269962862918770694003730359009352970073807576966807067111750448540894717996533215598243655392531755696162537561827419072174564454596085335567199852715738741607703226367208316340992220336877102096588603862089123659289361319267601461379608484990242074563507198178320422877320386160947433956180623972178628017497568309704615482157201567585537103389870020559460032461872529560112562796452712323958270989256725812586005163044330138091876764013962547427306519779347471991096077019964646884285652094830786772010404179617173248068187129062036321953826475183935714813658996406756426938843072902261002957262011178599245040255939895548633804366480318433741430987658540051136314193408436306078181088420504371781444839937854054112966139239278099431046415408021769367985143194414889589251968641561826602831723211829146913507521776484240224878952949409667665706517243768699216734907496597467505259756164533975315857534764034263532587163589769346362807749838997318726940944956115237808514807665931617275162666461649126350948609883021552400237048603765692825197276457807812059528636946277735312822220121426186433980618620822092732226290954290244861617779699816074937537030529299795421883621228988094854447441725918710642628925458427454933661224891524946919210324987873813970950467899289678596280693723825667143868152537422591906972248561428284213749429516194126984260204629626696753987827399059312092302526103925389756400836407029703466275901573327877054213617012801633334801471576831020945656927487148690722286251276188147725392277287111233628918609635504222294262358838304282554922855511985742639211084562069805713118989553057921019395185889749013550557338823405111676767974690032578517403209976885459576067214467180835768346269122903172085499319569275058301091256141287602901054547430904298817167323153456088410015254765978419473619987487820950848326468077226565070802926362031696048334317562945156731632912473392758562289678430730579662614676817489412000087562976538104286368748673669052301445350007980615291353005382099017389557295986412734595642190118042625489948446586258624760531729424462049861457091425924768156046290120395009540722342964163359564326424939514709963307868683942557550620916697701836259206890654168050723528872019339164143819446572216453088965848997034143402244770899946598466017221196910918012218224415265414016320256979529122232749227364902680236362983262903537019309418623214498409812542937872565675856085291060961910221462733508407736356629710825546519675822252191847948264340880804684979481835225956461423852422929307366454764682117172651297942544107059302865106711576050822597581076380451037751688280801494852757052700110567552404788736610194198815138683685970567507783336328712993576469478796167371953673538062892493921726393987779065398798102296964576276090149192770415426564171208376605509619730258295848042595039882695069010619844595505562000822097353377658361140647602960439811075568902221944216007516460778784090063689416217029161209276440065306332805017132541338267790249478908011588889275395311433780099141146350338569879685921389991147597487201599218279893810608595076944023052959998599492670811444152009880262157054877856684674412163065405125476846635344652017372124794154696769282685521187980531140194192476357001764663547443906011078700419890193224078458727399919400224109978433171845442579647063853810574831252010012238101410628756208005454837149095794726107034870235807841117780190117667342668110431794622949819134727233708418340741309498810562152431448070553126569972852406642694601555877903625426821530657065756107909101584475992177704029258359421865838917783802889554498947133295444630793068873017935568103074698799458914261510154785664955939300316943284496999740995660188769691945276156536535891666455986031633362362996947664123343804869749232153466182269277227150123027017021959848431932368248634386004188748004714990750403869538281123730590763226801938558068597840474171539215559058524140486332344861553319172482387490418542190982989809955781897937783453963372164613899803773936459254360020347253155268681547683545414317989085026540000320452756432508505498250694525239418450006550748126350655477462007589109337004663319300461557417580993377939672361941120666385458320733762640151715226765856254070213192926737972182762622345705031958821397248824165148513347749250008794359275777367134942860844760773082035294861847264531590644374165712422146884119321672434657357212185627011400213814892715958971819130914519402163248678230292418869963866767764465410508762459276196332797561552516755620576960115673144331409486634566262445127787921163995810851181782832146304469402941311858781465163434583201273375183713935722436591532064015148046204178611873494894793340814867570971707619664834206060133928826602768178509100792185652837457277359476621620827752896413207219942766609195707507666893472346263231836700348269394785276512051965633750644076781531013343359154658219138125166020004424953287149117053480911500593001507749673245359427741446132960944677023729190484046223292866677096048294729083087227953371490770658553064899248609039828920407854992227206432915131520247168794097166945797159660346425137046086089542906745923834349229300667842618793319996791292987399825291785900423362429989746021024769295912978402903604050148067202567233460154581681774958396685604143870135155709796975955268126105748006289444407364486188113701385701712916571981004338264735024681972142009498059267405199332881263830393982414001505128578821018294991676539186781785624306153744447609997691948085100077427509041354836410679712466663075249541514722693204416430566629953314049957229097066911120086459081151452324774603887601198371787930495299231053728626035856258286279855925610996484112391498995461527528563555076043570630745841416932881941648091109920818634836691173204709385091318576717254744930463389177251796841701337562125666280941112937021570781724689344819623014802204405978018043477920922430654764690774496569747718616340897609874010908970018865048228392983148384732196449333520051446834240780559243855096355950433950324121993448379995622621995040185503744707086911022980652225686331445338505089059587253664874874499331681638115517698751144229556748305116036046939187838650010520301482099142788833439103932366161886247043126051113941198879172379639548097867646469200998517668451532336945388369742786289229813772415275776044364596067183774156184365086011304104889887845167774878086745118941179422040707964516756741626727003565691842845111055302766691432791035496530424268023805447238248286698476061638713800938310702247709537031071546016311124711231574546995196893347175718376360845374933061942709464402135713602391378739065134430419627137873483130179821009733315373299242032279131474304492175482602525601256053864345505632196795248687534630512671819444924130006204345962457599404987282839715448646538271074871535220867405925332044761091353956913454777932939439542675320661785137476325629913662867065214415869551334995962418067745056505746332921672783685400797143522912284754472143606337847269521070022101906140631250290402411766746776023092131955288496467334749028204083371568630695661478968740979629665577951130985412893665170543597851994058029973345303172145270726617865089173671601496884877355180076295804223030802196983257010543658242659663751915886371628764670766166168735875004232836271196318824631154895886326540807991450932128124604907386703431011742103980702955212353398149343886824046792821819603450564687843155048897726606786233149049408620845351768317332747132603219312952861018976588855151290020035248478421219106313290606172599232582716140352217648463509570150749565675829356948800876328652459977807445485752572904226312406399607097094306129150838700606954501295153840079206076832369005981875805863130721384508918339201797444271219554156443354225767377065915178713881269793474181014336102039857099371585977747650089706575296221961012789178399602639712602538733496141958595557085396877192288797610163761949074222063630545729237572001347958730282247467063455954396275709820054178558299870542539647021154088437953513476242246972747438434148064444438082133604297091229356636305524200898057076652821876863740897501270812552837025100677961815440820682506849016973145041494326423329865345476824892565110129616652169527981734683155857988176230916059846623582856208354680571467892394432641718450575030718160916536405155259276484875840110650921245805609308854408237068714477077134150985799904127286145994897734639952429027280756761498200811579641145000356228669510006115191152772044064524072142622179310467102974998035009626232771109744091252709496887231557632284957884088113012096085600068379504740017705316683764189550097690469040717546909292290652954143353623683310609500862196880837747256182904545624798369920045966930091064211757152703591412075027621602433682639349412376929089168264521399566263120290094007090192270924085350285161836618209114357624722955791032930202397634993842317838761314581871468192619918708634237800309269328458042427764323105752066799224108278690123777957330775263666048254312812804802124066083729300737848529383377566671040245601118455553074235679757748376544999290520090492182112032682710377934403636954284381126668966772670065805913596858586831109985620895724137669898961408398955572211431806684533476032040557599481198382419427381703056367781277192322847999447041609951166194688002718197481394950033915427403504662109652405542877951398785821880497159196955722452885468165570869834414026480559699354021027985971571284961558120303593949319540557762954912630788796401715971982881234386708243642367316859380747071819300245961336533364008576990566359796962281845982335931686637300723141276387288342120887848204164392475883296150257913062327514086126992766105188581921009163777526202736892950906589824878798981375694531118650274530492319906238388188205008401784352885778120951122666399415547265691042952852334152177751034432249452731084598911329172753382098648528309185610923615697876179328428365583721963706485964534679762652005219838841533738515965064898388414507882455924064188633670313349892673226080837940066572071911028024957112156579563986102054569965876548431403406793001954080276862473721558597247463757924561798292172922041330717008208617889182215438724158061552037605788252523630516338640221451943534679858511816130125374625135347498393465805355196285357190605432589795856972096556804491535642505586341730352198931915600517088747128244282897424744111092609948726503626957397878257305040347933004507862426282662091819565817759458341979866055551727315284671387710380624497266856798810238810009103807491710212325796782472596209070201760209598138508797200711829033634424986866158626322486562899474005951381569864892806376713977534341713679407801945461682139437391724157103440285708485702689879850077758984944465875654098763664503227068360047882116596998838533829797601735227285562363982810237691408875908563698281255628767991827622613051796038781324219786906178417647424183310496928960423489567349463119809712721261849238948136809817580004670685787767865064778501762592450675459318902828063949131882563625826377103973173177248583195178990850411762969372257877801879490021962290493093608653570854598504192255384001152283940364402768389792113065957113733455788206023454302872201918531140367698328496527687651662393379678329317313390679975325862197810753876324706127679374393836453863304224791349921944083449844683459087402554665419206582383391648780955750008169996259315177524070908543359036361130071384787666896258796559384065418671244920521156978433094385039907562035143132682820066191799371323415159570516319311084371872163633402695365749738490501350802643428909751388556021755902175748383673162354933753291249617528940232550142125147345730556924850679313587800488905270268741788141388309079822954797261968952297343333277066107495889596649899251130457574012377667378410336358781526356809498324531065524228629008082283167446993093261825436255158918701346122973222563374265098174440532993534806641470186735217840491823213705846241610017490677967308520109310137406161634817887134864389975626478454030272641195054240257297705723271659531633186992459951515791249495614815095042569470019923318711525563843817568935600389306166783801338274649539636068876909912940264640981574928085033825066552559597067148746676828671602086069141530238324431320593106943521411176548634357722024251663372512028031176607785751625189130715356224797511482794554650896636141817555517499674938365916583808771090393436254448586217485415316982527553401916667289412646427843429289491112369524903046369312931336652731056875218045723151557098965744442084735903405545999113389282092793188741645252132532114876803908840667242840132089909037460568152123394211095249098180189303232879367889859269227922860839021294077783836142499245227920511534597720086326616966923542409271169594508910091911927195147161754717975495567438321619858597810644140065083166887738226702300399378268480791492635955183841396261443704721109222769817608671390693833012517350340837230128995232318645723502799879147228970997847544719354710998137583057389428414004522844022825656303217796866356623466845833519169860893413999109992742884976716982838138989113195047620739054812051297488952589414395297995950489732422982075117090699286135585705597883485528635791143123101562025237476649249656721134761762652890536088305372337800035825203417376881507695141571834630580906602031918498456513380598433076520701101962084128853317905489326401032287811108112010801015120632516060586445543804264532456730623862747613790445421048619965874357627178631548670916984195351531302504693035386960919093754882088963859088624018326253238390992239461005121599047781091922853104768098067531975126401829418828036670067981282959749949575686699624024609252420350743211794749083098163970796358063214405543143218204457183013238015938667741525354878113427415615266506096454387404431084852076111968773100939160578348337818344282673464821477407039908186018276177637556383097860539642579709825524049170714602100613832755832927416792747926465116001287500965840219294031909899844538438402763132769597121901558963141908086373352020379619447404031051485562264485629834392707221637908360053441324473231061999566816904957527872007902284570549709373813739909680255336977661611681942751875886633032980435129292005446363099094244469561346307678886347829083423717193128409652788652546380248228753977217689045472009415363237214567837206547358685763184446108346094272943605649291171573966824100568799575093982344899036234047753455161955937140789409817540815273389702884979183301459555399945724906456627120557146675867350977049913596473675455339202927333019992758897220705688315044456874517123670849973345021335723938278680233333467281301208536605078714818338038094857950332685917135258184563200076712893984135705052998945974976563939863566847927423281705492614830295048779753510399670777396998359616807691307998642722582884262826604022415051020527398284043150580974915023289712839808448873872082143400934916504867841094000045203123427542131242554497598291879455013995185143340844332931593164701056406784235633878523992455686344409823282236434439109217845372726385644251110555952787613156237639231701840994391362227048229987047482307621419752195941940919053726357805051110949759225754077656371097368354549327068123678675962992421299456706001719516698717842009712602515417307701806188386564461925559696049511051723116466739515173966971941456493882689542698708092421578157498467968274405092349441903328770427384074166480209685208503684833849066085434833915460331957822780110719080603061687568661153075583500197787950440157680894537890995190304802380266976366966687235724060930564812189419100267215813182449529203173758375015679537275640777854016715036018887551950203740801625975391166302467036191663086813245607869750229228333439963982437052228692571686436021778701931536719710148403566937570612266460987447033021061603922718731724449104151124243007613448135106105073041217070560613302634591893667137226063821668506568596827077723114010295298263506603850326472656479799623932745089751195330058851999848348529217255880122671297920549551441501039235895392662426329798258304244151956076695854573268578626757136602456677382713213046820283816492450630175832648537765399179731968056604928274786398935071761388145924610293281259349852431333028151873630630774144262663468754564023359670147375290160837529986625635409015223727490626790951352504693482512276809524708444775778407422606025986954033013238589257133381468582315328888051468922241799776130673074445242947969122655659470456463332757416479545854289646862903578676324126483036264120609219424566423633398669968820026976451373307120344695400179027504316934762095253997336907018517494158614679581714690465683905308995627289887125884323510182917215593242112483662538201473962421989395591592797381480873916941487945708115048691012046631903600983552287698233280479414867967478997729975614184559819583664297248946240030046282528833747323079424347045745900824817730896699337202432842640502044896690509705499871854361469741767623722637924156741736079589952057586060377212974382465357157587374708079717478921339709728564632471279896773538524094811624876293737844539794852783573199666394545521498467449312259699640477318299952625650101902954077687449803587350136832969098072782192726091821944746151862934997202341462276106397400945537118309862505018516716583139978879837702310739864963068928890302183443807033836356146730667975884153375820795016601900913047906112098615641333527764108774172433126915056403134393097771858031773235890476972277716622836907991689453426281227636711670500414268156069436141299184980871392814817124523257926582008937944296780079912299934001182885035123914088962769376468547769570629843248704225111106504974369277590784731013227434482205587788887729244266534056517783654949256041793978302549921257333873914209782672466416994601274145360738662274341660429750402050213811089784910788523346239143200200811440253341767644043788829055265007597262592699027241904155051179590313121445521333709978828293325274994809721414589969533931462687612612520725267334655087013129639294522745372049193067291638967878308084665130907150528441674419081950119056398797921364631432187420643550902853113026609041830597119498284463541093943409070692431118586849708188262177400450550292965265313655899986822220428070356133883342033299072053163074739234048416037393381807596404057423374008940300509616486697178121283873926349450473035066658578637174599419080903543221164830226424088886022398437351142291367119583117760115783079180756322677670148795004090195069593241902207307667975952975075517972979097597185181438956984852753333643481359758802761122377497310200729690337522212069711762475864477486930616160560349243897015205130087431993153798052103153807124630147171239687595022806350561343165432956805122015646799000403805634118895824379333417347319051431232886355841133697403529702115043487076254242997917560463426785289824593928502823480016236874925172414855522413467050623446502969891057447668318096686328924684157363928833932169250192328841995268698769539119290944967780869275525893106789262248233805760067729278828313517451707485339785695407046803060778430458226185337132074171254011860916563846617692114028338327590733044224476040239989521133852287969612630453742896594330169875570351679696419713201922506847369831551218737803904281196722864330866701835839773727226678761164180995494121886760199186764106418631564522527947360108126059219920124279680483888292462017662365064347490122633297740359795039451815075461694350119188440435941135792571272781527304373562703978824717562731626402258654224344981781164088214600894840063674647966741206321357029017001755511646560954538562112429928065731278237006903738947064407433743889191060775061401988351461652935778679242626288625523286524316045778643298347630430835163398881895500594137490652826024030358037976507544584772788513700973908965521171442858607410687338761524394726841869189630497395407321467482105587527390583708660035788322012538974646560584583507807899025655006691201849175045568740010215754664090629619611326287780588254888381979431753658284167887726421963800745836662278266848254393199340890036619685272150272862026387802739687447954163819810021651238288469977432023038458035114844470442919032628983473152614330124036130776689177453999198233965180321974887674846558161370653294257972865797516613731965535840494753435327479395054606887537046283647705001573814595011299475389437414540847617416856442598692235826032938676114147145900781116606867601815298936852760755671122767059957477310064624970506669408029341069527466657735218189640408648554193654508452017166849195045474556195245732401017879780155919206228954734255351123933496805594724018933801551896535808314198620735248327976099566164569129413932872187899615227831123965581376689129608404331553430294121400983137331535503920968640318368956959856675154708838000168261188137726602510579451448912908652259942552599354823001289813908135347744912400743615831634412074035098953617437778715771599636328720012768847591209060055049276301899513503092072755512557408760305226362794278186044369017634465375991039766362090454501754698055305238445797577996685677547964426257959402875688077081425811075721146648461182066381273121807833425121160819565750859714540713252155959001687946174778711870038480935558829633647889052884664499082701520544248344609388043925070549921990043669010806514038159185276911411108607609078550497656828688501944669394415236124331659557976575937414348527173194818958658790383150478917197626588737223071632463709292523927429504527805152001129016653911301660345059927492258275929068225531790999804311939535528978094976264459269923639685437882874865060297109916001978843407036692700125661137845593827335336005421407237865748307978980069661002953215399720599333851962141020419293703055753079559455867740217399504490275231143035674335630025310942374405912531760610655601332117613207249059146179438952856919875188220660500232180206398891720274962113049161036868316383580010779225433049342453636250972496693713921047703113480776449752710556767458473891970294936014543718852415921991788551442558369070422485235061844261413651330386884600158508211661327123465910153070490558938648152804313754045416655576778940690492711302111727077814218355954760785586498923362261438010205790579046740059349367528615142055629716025948297582026071199716067602444830732881715148339497517821887679632084175963761864683573190498655179105554242194972856750392526951555558788556687498630369650609967435215909585965839639288089121364904068949158323344082310481251458998005085531159168925177624087998034801566806415536993853666431078082756886974161530069198865728184535029892436528314859215632580564496771393780170607116929123489210954474163275907332300139174445890995757910856749614252775652874925875350238317142525589601194051984624607474846625205915844222014087377532968063034584371929769181109332291124612460521907332829207275818239199117803404771985650502464915518929227650674315067536294068376680707680505484225362131198414825674414057403680379680236599449644311022485259915156008478388505081355268425318365494318607036954208941550866809351108242990953627382682049930791193617660606945396666932692090177792008041240773553784063635092518268979060849879480042819865817128170739319912295846255570101495446319640352331747277178731691768678271212388724382268663423092054130463021999411874035923839080946852042339330953345868850442438901113608300557946721521476454971442618416624430719267113229559791058441121385781404167847091168903393621586453594502856600615598794556509371169177529796052707840723395562829678035144787781289006734903784036444634010842738196710940703615300730252284970477555087102691463658514980085253676589871385458128483077845324005972419096734539834290659359931197987530569557722763806398807207772963111975629550979981873526521435505254710302345224744485400849954741506134923090677301135705528246687936948889018823204522228066232559061056703624665593963245733409114970005364769417064726670652137926114798717073493301431519189881348383252002605392287885414936192970498547604407767856222525506850829342504627370077310587812803780902400955439236294402766827896640055958839255272035605860963626241513090562517499703779460557049683304146129864965590651940706564390936439103148932183550635098413815139323154933725696486518300204349280562248323325549256275466348363592050829430386813196949117638090372366566972083661661725160362365009010418817859671122760698946186906472433770179147877165193075260503214835338263382639926590378551146977076535883177752382119541629945204382445648394455469294448642276407722614535138897272620002681748508918132748458495170239787889380345091950083696047418567264846466309765223343065261568073835799556978694432250449809219108450240971944775171780830321731096633393377034873004276244110997692317353777240100637955294772918477879660915302867650918665614107173454383589794985100586415068745030554749122959545228616292644053358932094250378721523448006435522948487252775169876149397660849956694098876138501047862583964827770414425335999432084154979277129634411717997188836842485974187554768859228144651856925810529147097888683651422927569869881571064646529670983408675686349649317774032657016555646196527469733593438595893529531564288745504531741492342629001704454628512198998411079954890306571302506963757419922080084570732782925458049228126498645430161284454872110860047019857093030128614591702929265476666134356575824786024499386767257329634513228118628689351036580414859370214895396508972265346348398568324062137473144628977529529408974045967926659852010326143542069109567751712935819343507330403233817334949167757792934938493620105690076102416055817511768688718167175299361888381929526650985036165499928208587453335295727588416687851465540800106016433226585496172925798654711851596641082347931525076793163122963494702845912887533103806082553508668796809465677350428339205918168860429902746981197254021060553400703149538246187349712991685029352681274509261836932688318377923841037455718915687419337705819090365835523773255756562154139467860639287325903568132230229082634737825495349220964670761726758076336151380666380886182656996473633251094396027663975244117313456229904332585212209017282699780220743389532506668308883104830686782259412460386586319641697160565319439839761721447495761614453198831814278981941382774137455506240870918677544648121481221600420724953741174965663291160994919726793558741233470691636531525453411521777196888874443306826555303111103420554440557028811425547774790242403570974997416911524026567180006261847015782126457348745364555934942372853831948714832874774015490198657759205182741065600871117778988245360656624042060987351406463639856533224930359648323396148300005379217322304242784030748209735033257607269292954974893124872679757055718506005827636470325862963881736595799118349757824854560401721654912377181953673080587846244453350025810982628508321544687077215042132044816577584189572626997175074348707104100135570404687206684189911466214906388271900211884806628068602620474346306622194061946680694249383850800841815973511578744727878768163365572030744898679981573233321490825240119943065534768245240994486414510183098850595714922185227533260869462536541892758484930760836610672603969176017286187941599581456766742102415628517401918396798108278919585271906521101131993426981750890703198291151813252696224991236006081004862648691457059763944319804172212800306158619884539377620767712850172986678235497659894108668622075420949581109387371781552747382526035636336491721450913406180271288564274195387491063499223532322060100223446183552291226802513669117282537723277158691999530168931375967145398189028769405552385140385348815879126631619533569048500818453410685975688795363892209776253752820207446053522954629145575131143791011889869003766265829290525419627767768761501810611140371183447244146357346376606133628373798579265329243526232377581739057775215329590180762259763367243131556368259902594244155297600124725264632705979111123865977452713707534892188538341857345746159909341555484671222318061331659201271151605150333506090407721606695258739567146519553532820186677266236594076254953741639691154627370582343592151344438357913176391646462936626716232657754372237000056214066464481076012523437382099151182653369231458956478927397795018439943859346232317731014172967412330414779640117895408514342266418683506058565612423993981048241051379329884410025895280483938616663639476894954853107318309033097967984126152093242159761323738264860203434395192001822354164770554050393829902704873474167758276274525745236786622666489368276487475616280932156262926375069889027539356450483011928014232286204573804620304629261543427866382654057132294650844741602396331021963908151823877557706044774022307083494452801563325574757152823108644246537476321138012416279228270842752214612160614354135390163824643434244027987138758568469559489028093516799320328361329775039853282473203844530023054155203478208909139740090223120213968894052176672185530404745946860928180301116994621742171690976877362378862175225321023785642587171582967748543723456155944860592024419200728508259401282020798276387089963582497519081157088980154255056352873196768684811455161665509119895531374688105764504863516711526459385515564112373912104041978144391488175000413990781997949606940837946174131761619437475582910783350920340086979248870848857772074435724122429282201255349788970687544702237565724581890776994711412702195990286855221258494878682627908580971733576940075725201764445526559468344512071808221298546884037674990539195599188371275120980626313487354222010680753961373578221028899617948813831588343696022833572302188752844863790860223971056927666401743245388108757488745821997191704214141479034630140287377563395797940226718495187084263115549593262106356158020004304931008190096560805027972512898071574222215589338172117575601220100356106075255774691087972432877491938263507000415717200894729953736139633380490887447475756653873132009366164387999585541533816614518825193365896743331407857814454269300686614967035885559761858262869916418455963386177811824687350664976534790442453502402510911177219662326266771746554729749997159230164681127721701252333648802290692968793919906157755990880380499523979340578088951269612187160823163960844148417968387611879764883159431789550063928003983836081761792546791449896041517293581031231077198966146485291428523884791060207643767392075640411464124010840307797801705596468475615782621688076539315228803080939119324909684189029355321718416181837063768229814743062168494656851881892918954031066104133779787974850123859721635166949316614955595936456530960353967943464307853274793154750725707620252230987293202699682663167479461975613470740099351509674704817550129370007925115347378508835539862350137393016451147191876772426072982862066264305329839439032033587282951061184252390478362068688436061823685341807017709641805415493505161568655155582018501330271726291436238086580582922499375101650956925193078547817451568368750791067205603379574025176717181284810212321055203734581046028208078988759161849515116646260820994836974983806080968669275938725368246577167349341761175253400907185237027713628249618290814153090130871583551193419648289709752440919844935251506638432134258004151505604878698996171328641516381572842774619549696439285041041027014194066445167028762583530118197315567569834721915055187563508868242798093920370763841382997540673943319898283902922573615786425364667534018966533744759370525057468903167132228550370465859778440310248337605580226721300491260884350591054477298720595506080469350585205711170639624015007446765670679593823209639647278090256902186621802221557159277264411624507038503051916049119301793243988883122329203792880541388793512787220381221742624918805509335124784408825665488241263682595276237912856116435400939511637808427918627035190839155395764402193000486729000649514745488727660942064415720038807126239639025827259273861827893951568792412336927554845743843849659818971054412509885555159793884821255150754235884177371318670388787948295035868050737471285495593343273385924270639647635778078427650095137373452691666637580380799162314870652488083401911381660270892220803627526321092609343409639635729184920118171656988872343405951163447074892526430629958118526388238336560090646685255031009575499071487450689409137328439679428678028920898913572449608269851268699297900918108682004664142098458007293734464873575563551062063842859380490508147394538484540159855167208159544069360950810603099943692739922637505274319363955203675065308352172037216340267379471608719443578695797791449679398573149481012541399137373609828474633904616531505907450700023043591307514882448728755445710297171391008028214071425006101876866218623211415076728985229386875816749271494759542573027105024139354893162805106828710897502589978466099682805234723838270632793350428374035553357415024898567338958594506265402569395247678333983637216197703046920542668841877159028688099651053077447406432141946203823819210692852178563947397608166968018490464702673119195365355858048727539932816622821704160229109373921887540863729565419607781483766843704270402121981763399791044819802466012237141578709437495553670763904815718538579224339191686588583375587485116063144105808335675514096758948698794707346246331090196460468304557113193973271527522890943889833489403876822662616700080307546377771262887222853525923421185679436477462860181026971887983944690091074423492890846180997949597518906321412127473576716754178392707628431869623735806139107842670020729155176950122225763886750003381790895780960740116857707113295147017327567215352334086402419302869799133858510058148399437085367443455455820593613501603930423176997788269246965822761094933663523156124762555816043016623135821453525343978717217928167577962875071428474949752956886181373358196822515162510095518248999829396612979479411953857963421428971293751724591497237002514771202582876770801458024527813686285321582691867404382551534089848979049576101889427931108742763082574491746506920191768304754484543834502701259429101541644515389693417734838128042597443334076241703161551761784899087513223597754870986623895047925064078697834266177206567946451711269900973978450315169429346254825485499340654440231048176817009530625406071552863405422803816736272064849404556067784530774421162551071054454833993865936075311754681530373250483647577366471403450460520446580702368382991799617687143507803339254164467720048088243342028980099545009643062881881018063738913551939385252857615493726483661334227630965337414801201900348202454782930876418727303835887828549141389199624216914261111248111365111558079669010423655512765112653459303982311504294826534899235056776753034524324391367218927972815585919946599868575210672960367951372840791823864377324996364582276367294341693444266475320690704909296271949847817059741409183278630155527469619067565489113473259164019218718314084005576680703674284922477305175379686415126971413783143840533151053170129442456309106912400354055790688462422785873898111688572748686637423066147765359058799189888807204415110031919552896513642931451746324287199646061824636028045044467412589703786035852579832796510564837261138602423672261939627878374475647095388484296442151099319302597300768241542622403872950028637384577992077971508569708289647295486779802366088086857801329582523233998544120108687766140574557436702758924931258467147517783000583549813666316037790180636811295221742926574277980157762364670284253055155830016831919535781267754610904326182585546807252063060772953858000451527029657084110547344842262693049969470979626902718958951822968231401233119339953601875214641584229958935207861177855833049559881166806512516326836772466509394654976253346677320983899905067068347510400951331338632062841801917915905158347682244301327740271614178370827341459351752127058737664224598878243750743305728721736562600767874686734904918131258662463648689456788117760336481321935357223505823191803055202288795780727044595106657726124769185836132575554837322087196746167107666668684192904768896510412649892441516439548559919028332756948759873750984504067538372345214646627547687860007296911553877415884485652681150608436941493035969406573955090501962793964673647841034760402435669220818185449239314648263850818578604658443647183797965203061323347012087899166681036482222383033452816594298549448836600333621435427872763416653354652501739806731844619593875901492326639500006612681503058026417156357032395602131811920954403688038819439705754885529466957135031239589786498942724304846782853347547452002526082154399153974699504151610442470496066064779563530807220853528746555047561394962330113940909623508859002971593667456734108819110680895232621585818648273480522837933082451005033303463329728193330056316452049024283550184209599693675225623433723988653527166764655928680371516071765824462736768927120612656136705965555269746719707686168750439290193563542756355677559944023182077205481906794028913399884904944554911661526470759895158259386668877518561226486353513828195308998599503507678201575195030860138291029354970028508331239066794867311476718280883747086181145732008626693774581897785717764449616638084749482805165354036891140964042665303241677215902500847205283425523825177210345232225376346055461054234992058982971386420713633626907359486480989271937863045123434896023763843379128666069527237011318025985454208428957231301287267394701848055566903786674006243064211564577974709841959883013199832627282125779081610656899046411034772481212138749003767575985566744175217691035822381715133179296944610651672076297165106868191171286555476262496931032589778000613063470635354515356904498943079654135782861046667394620739459104377367822331314797437731780288063660706834719313275758132425710937042758698180558213178848699801712854099461677573032443901460265262169142106908243424821354856744456295039136781140796646958787803267563107759033549658577397421852431412094285215360240215741483541064878746398558838350302953162783632804860711785075362095672101490090287403584640126215027797656857282684200527370963658469858064797904814477032576116069250638777858819880637905272521973544673531756439736959750464752177410433523314530838559940975569618754269833811186862567577640970197073461311924477204474293672143370553898739019872104889892125798220499016134750481551047403243333098934547004666390200504416076771293296574234426916039541887567858353098725388892645306543969482751699845599367398240183196614335372573946629066267392584567161516513036311909531691498260804383891213139918482089451633143314510340733011845751346476776340761294765780674458775836357451242789080387434337034147283254289135579581895625628516523993903636622176296492775470124404918318140154529833793962916734500820095954493135696368790706336120920077526075687978575253429457852870909012692120150480205579617867421985488739868146040415238748773673535359053522986282611194528451531906708386282000002170376091891491779560299182089799648077024164099111033746933698470148262700222314697189377913912582531793535723913586019531403547749606897982568434696731143216639534649582892269224832613350177666336788288660871422957639517711072003041987127309188880298620101058207717752608356678349245192141008392806696488483240790961454045602536944269704516656388498380491522241083803856161181487871514960688994019606330765861057020994340393486519352765241074610971225862425684983057955132933752316150650960601207957260108451183042159379346621294456990978320474326944792518996363305407580085146729407822861140580606419747447212570170179858107295432124621975690657736100702147857810300533474969534460222898504759471913352952869862630111847900573461181753477889985982528606963235078756467512657034257418897706242871714157458660603604399058978028303666451481068573663950235393649590589746617730038628719939991085628914488507505471843161340197790464074041586966709439999800788589977283608561525360405496982899034091266026465841511871629506236574198259087749185418932332954701379589749893369245566348574719894707766469293148612632038092992480869601758264318829908124481247908180064680015891381626456783445475010180292594438359653297499622984973975999752077475224762851098222636697267203979780865716598345999617519359637538341165707964887078510785052715079277033556618135722597727762214194058388117296266924843304089831900971557215793550496340719143695075429061109697660108812944946457410916010822379716556140600372914942989342279081852930816195337989274096254814620181088089161915198676715295233188981999158914342351835030580857748355463191116294172086463434638307601950770419463817398433671705097038698977914638972761349006381071922157273220410966117736469221403361295724241986829293693701462573901274516177377230241600734330007594213831791123772972093390890553063463951350595039526986239433403528116699219025108835803882831075417540795748835314563208829338033969582063926695069264146748859760470774888282065623528683845127912934784930930154972039181190723833824150855196973614439586950652584654956282099539315274838178369010691644244730873926615907014571885042705426958880951467657407621893467871661835026701109444998105184156690231611873570695342538243360337439029245481196670011125800309289719133086117138948679960688688590501301009749330163401747500204131051017887344073104186386656610893726893745738956146691065372674551330775832526456847714083801887658367677963542493390562304628673654986872591799305473858102015424305231728800853932147676714089417090445008321535042422092301525007837105374124551434818102971642455179344336722838087412271063265332491286495299839828671241035743607463799603016025829814414682195487136858687810022944269662754622875896206625107729174901014841389067422891823577068142185138240978031264174817507766315979633842010638805006056685251988683689216573539375445978839167371939490927642686536410712960380164974104136499977618342569245964164733483155734586978932158489889586781351366673456895514167778662738626572544325916664829368196499105025505413819489278384748913921076389777413631849504781032759326143862817903924155533080730277376888356852571167852158635924003689265203478926961134386911404875767423645055351910508633257689100298381075856629563221603109431795590627051413029802125250660239346419812919734690288608227702105767960436369921343390019701987823850249245940184556301565363631434795582477635559875080877518380741239884363265167268287815858699693212585880867889638998900144840786449654481629467210265698086255896592091581475239368972638549555128695403760727589139162213984214688978165556664207159092856598827351626462022470951737656458722786438424375396937333544933338421700033415168162709203349035548315994168802167607824324583660625983246835692469966576025379758210764327023219406760842408233470392934515557489847604357496801927838809625954178128021626552285080829901895864348648799477542681251417831030982714278301853839710525423706648971301109967082248194648587611645472934192393177864667078701045567831398662612296375708108780342784583132279363052555179850943111059921658189728267888509271737251776068002840999936944521628052339321504288094908986284754701401835685739755880468320102504791833902867749691941856802526967567139733380862146107743097815854873099605596259185718363633042064956742778636322990699877711667559164388786909634175473207489644835082792367917628297465576360847481839084177789003576128722163894551795439449065864812348328389582549005435989951851317573826631143613684894114401861221165564070196211433249626386517876492326043652636539194580589785124142247262504142117264836911120419139087904755954294874688937021596025723745709842012972455673575141619925238875140543417832658467898100599077455238919007028548020190358233290237785548347041546269449946417314946613376066383111339903199028168718224250751461218090126664998209092191974260676881725280573505325864664549608794563247347377496085106053362764836103925027186459898773623294676393761995181157386255337923285831963016441272797888598594638763522760608907896361986040324182675494267692179049930016710810283815243425113765643770041929729941438490899707526938847884433030072578720263965783927610042617857422385031501177325099699907337415837215729376012465885894214656560943515111803476683950602537961327367222629560486574213912873479326597009382866811678726268766457502138848461537638345425399371794597800768948336727404277377465749608460011543853069847157525060039798576132486941733259378137174788756202283635983200743947219385783208786522387693804539477424851525736415856902518610091359738255604996509780645127957233170034952372337643240513647088657637043881792028993008741507427272082768575624061141201965529153244493779301599287015139445991970979097042406265043462381278712320923673042813064447618961248707679089652168472025517391223977138211163434101054057625763532982218534020988047216959411460180077818491320467962111762334960457127080287620424452972090466020794173741363633350137086126576254261013644178732922156029623638019308696647134547126762192386673044235697938534460225812300589994095112540000411071400454841644963547068222835633345295556518114860488721267330706262414486003299657566719374320160277706124790195481196744138086819708485967526031881435010536222769782349425503171014978466000006769145038948585436855187357235418423789344532824546286087929811972456661211725679769027816313273853713708739790441034546720076686444709819945902298268624484625488054485554171789499675352979316294316259565694753775450044098539012189020813269531068486248327765595790843150454467541491730108832961967010856774433803505054532506024400352578115284138589394230889360540094860509679947714956842389796650217199950263563305734790395150211092727899414514997595022386658723845561813081771623180398078856376460470408752765254731104935947564969486444241579150547162517432930505397067990874824491521667876143621784711900011041753413893513834588847629445935060529762943201050139721120902160892160159895127595113696837211221987734986516399557169583850561725270770951436606461351024973841908766746192415620289274870856774947837626936798235633984549756938249202683125696668800800011485839167637101973004600192007262109700594022697053336249558313374577974240023367765767131214915191736459749604335053012370036015989488908988655877269001395867882176653825977367578013908271414752493545663163611677382821738594701640014852662081389617814114274704753022258046008869985140463131238890737495821062472895041929958054799528784377285506310383605205134013261669059303600686492320400916535303011303175230016656858875541831697880451822206629624651195227173338826931828926161997967182728958161060817221586292866288340912254717435930189904842495700141663261255522562476096766812719679003219981355075252743760878100914321054648069922556922155802129527196291046310370001514244852088989246037806304239989931238526867847309916417393489310652051247343938557558520443179959740808613508300659029148720667132522763674839475225874331579093479410046872302099065140792895022610599414682839776540774686830007327118164600863362157558258395630600775872566271507099696301065489548142375359706348450805272800710332335649086124369588821614190657843973281408747174947322372194048899666458546494164905743146531866199046693986601238900720876027262841369495050077100656897255616055208972728640220467573523686549493088424812539113988469010215227291265316600937456941498261761173374685786296421437530306181615241317800132834375865881378937888534108167300635343035998992467862900383559714573400376173410497653502647395966094632568216615607219356672629622440206315079573345902338132151136134892128215516063404128995637383412619520385606976594865358962880825639699676875400960280572282170232691806897588075176962167546950470334187809859241614223909899626663350324901027337077465085529872496114474549670571719587050242179328814904253183646331129451108495753920706364207356481967048149918806157687871426129940573990081323656459047218660021097023301855121329509480053441463466723286421299305118495351481403924422911396328651575863503789060313087947238643358987347460296299546712376887352287267358010651394419823049060263888444124121322324894136431032832438849219452019851384193454824502626749711727461141631182884133844311488783224467935447255601139174328721123157576337361014368614857956766587743800887657626543601917675412708244492224538591813655526944295992285374581174267012160908372114104409177661363781065365016759629378791406340840860819295673423516001251003545859619291866016104954956436621501985665309490963945340553219535675748319443948633419737386486822887672509024986954599679035805097587705284298345885334944333140178023693450994108223076262464047847786853156281363780150240062658800210078413440578044965753947815096061427803700559357284339947647753208715043358204437966575543383009262024645897636006203454953241573729733630552206718099772856961229700803964953986567275172157125360249176571697097670986255199439600260210250283731619151199073313750977430961235044654706629921206058725252400267526553299300181382139690017834733951921434828236797910613204288964482422531338785096876649857255549985558327779860096493192136140575540454979612767218189206810709721073610257120622144577883232801061840887838864945447260283219090122953528419405910763826675616962565772851756275761813201487402478196544661277278379319119946798842473558113015688811879235483991473108333616356334163967066585059259286139360325092696683539612670095337446983979044329660968792546418397696372268975329898570328748287411111665824909002474144489395111843911255346277484576979623735786333510795080361119635601006625008260820336160448107134733670004374054684999680889987091244711660771648521828652146029110941615199277058106217562743884603540531109238422382061339210228168707555453091288080279115737605530148258812890559675901890610118652506523810483443402068227239191184913660263965178028633112596215037801876618325132443670225611866110841253169925732153504728557119196303133428062899847380684591564651525594892133288703310498078216964508920928666110562260114214321615916411896176143035392735062113738836387030458940774151962851494741002849324432100612658711294411551395242042250222468033520304752338296257023134699646433214667954550955344156859934312361793658965685489887269464101704549944759431928064117979799833759957773640682576254680138331478655804295571887009543805850643476377422711841127411211710844427005787353438856502435199032834216091524361913568190006233538714492152431607332890439360388530130521533949331990295160740953571064608553644537284681182973141192253449708637025811364684550365809702497108934171525667350580126015513625110543374054333387309479313454472423251510017266537973378307814160407484803005439704752133998592844864992553768680314006883021331580827566833914533651264780631894849468530785476112367347864540985282737471261121187088171785990640782822099330922992529451556777545987280919885420910446231978240385137699752081860851445595553312840254412234748844479716961828250550208183315749306608237936524870157374474824787219555448458880419027124520234206753455857563014293476796220499583761481092491046724842328106330079296787305433275048505134564770975408072252702226495211793269189259829752035160048976567011444147218365162510707409940823499821163947773020668824519373535278234166513688481820776160060848303135062779076750886311718540533431213165763158816054339432217588235813478501822014314379461752455531807334496615683075057629642638772317001112724392668497137812671966926713066012400366885804065741942415245841630952957785718658304196598657121138556999620983498637660122608019319905293197244569660734369763314382855082194164394045497893567021191628732696638521681365856203592296062973973869221789411093465232864224076588739818549487867738696617828642552893183752741873533112413734929496024870478892001641869424147776032827205678149394387648990678448683343293317583839174268408776924157325949424530029627273537998213481178407248989760624228586577772666227658520885029619908352615810706385854253412720311905431234061941514972147271999447898103487157196377300277266187430016197413148587139207129987634489096252126697576367639988600850373701892347870568559075245428444405435114332908106850519918604748056602240235753401571528125080124013438521911051378405407784596812502589426547322975440593080964985278381756799925564135909497731577087567174746446204012785132256949351320705143520336196352650441532131747238115206504736899832755437274170197218860319136531344701400341386298144574253330730408163242738946476929142782828002159251422251786874428384762138187635745554923159204015548015878793483036590887939809182278263593426204980058218165690732013530095503448956774802517073430631093496530525142380773907922834850682323293820379565184806787608511700861095346628172205946560936459111642658695071695957145408971527124436011360320535971348012340949727626320366531732210313096361385754010443741638970413082088337832292904953287250798381071148624538062460982667917934968069283331949602643480749303318244756902400022494978518826285567514699466223746917490479439406854664729894213666325957420908006472300466122099601341186624003995263928396390170818293035375534225690833956790876391226960345745289122148548093304261696800961410188303180881988952236325049438532833239490885310154127116021478948157971051112824355661216693494927245326342977923569757859300824106597462572646321410019463476303765958069380182583975001062781841112003490872136229905000558727145352612373722914606867717669367743285052351518301996725490266743615484683472564679834669428212239188637863351203965927148202000034368929890150619936671009782908009279734445824662864400621341854141446847837069011195251247593890486684352246510909561454938302837941571254362177891780105360067849099439142623042877315759357244649017135603993633378886272857092247524523333248237431734185616318770187364744140187675987353575678520984854607527679641541471941069944153522885826542466884215825977320535860477929806930547716916234690420816028223957058394391756327799475785576674996253307683984945283594104396162034501161171087615087603525328969131459766244480548539261120745090265953634991874173255150492016174067761143110364059084064343558360140968430172111777186014244141865994297893958801074584730981340452296589623090917220964486943257311606213155409122336126142367099630512458525963057285872944172443123017974344131555140257816825839899995125296521055248141309253795916850091101167291325573723897752750481925897142146435715952963393140456353180422632193653889326758588763640336648612793097821716489024450791742330546117900277467305753396269546705070542641088462463933843725531761421573985119619858054115300127995518057665751828481113084656251227716103813777234090363593558030384397268100776340656220794177793768865993794897232297698890532368782906587774480927709654576401726540944665459049805017455701974647901431293428793901747180201940474717085625484272672529769296289279408259518106950630252304686737198484904486914510279489384038838903772822836635525375019434814456628761822462347934760513359072247378442995522469774392346910587297354601124806458531474564474950979539492362021369691203965829593030442714652880669469631213742620138859756018581901449081504736356151033306469888784333090091759700156303977047784129339932357666046916177885030438801147322892193929464569882570452918566972679781215823511566988763941309431859435065950701916054821662129089602086077908253123875699138325164964393534203533740354887947116264333905956830453588093491282419280658753601549547286754010342266021974761191526797089131024310931640539191877801468454514286125063677244936074685153341393388075535028169741880290968187903572713957814638458762962203125811049060587611414149565706576903773674581473161672258441532049633681501476815452149344816852883381300450190843351468943289563863394797397512598783496267648030038560186655258375415909886846241885172728414274713078481387996812676634013766342654065786582059690134124525226123873144683608668753414793583868684824313942144397001626827969603557155103315250270528229940691065586977141069624990172520552172097113746646323374115804416186465358071871718574705512091325291499519316151603682055411956153290988357131496763741794861779731102808268089912044448682230428681237913750360292139823740505133541147581455673618968698124699811591608932858310981653000801207740188103287744849931155822668178263840740024780722406959662191817991522067287752634695098521517175883327680363010782498774062591233567214472397894535744655001588407430595238512879177230693926449978755602840193883494335802614834011399494023722240559590006741739874400477904896895511089106640590973043080643515619058285965066638282721995665929408567721337452451438037686540959014422708538230534243184449700758427564002276481889245548036939309444577827967629945170234604840823261583962416626154649925611257366242065126988173108476875723019054448967865802397091561091178913876745218667541515294831054193584241629542504103552844856108224945720049834404037887925277657213476520966028326777075203082355993212943429227211827097568580079403520729617910183762772941432508239676718231464064943317749485265986059697280712727545997995355021006297475412267788934014724444966138440038769220866319460682731698396077628333309566875538516457933463460177687625365736563661579721980508780607836022002991286416772602722823483241243987765717135837498432674435757983346919883655529883390332426529298736462829129505432501914100903448434895639820412524809104792682994221555531712907565721953144975229038498373712906613583581776605613380925681138513556493459033926348135711111172838706466924574804442038979175001958135764153914803915381942049544159315246215066261701674434415992049259720239506415855718043274212563083302589857989306104672055739386757559118305299419503676912490152084065151681108359194782402901050121979758617344353702444855943311889886555158525071876653851337620216700736583327001626786542782997503246268036569818954991960800847158946672180978892418480935286339423965525677244691977911763403911613090283760377371629045849843548327746259265276774832756272138456758128090846401742272494641243610055662196201590846074827070352384189367038480607860670484588737692760810095830323059682666602943242081981081332721655075472590499375569044464289907132656556892996252302458752423362513117320285606812736921708395689853325937678388880677764802881495830069555425361098259080565156484268652555573395066473396154392882891431541025585028060662895335880190574831439420573384894895248142846014021856675270486029255786043347175039894234073418668549652876179411507906485319455118030859129729280045818273652239139488624248255072590201665821643866498537744882447962804084476837380677027840478796606248315407243551786288378262174379682349831960127623985895976729297197173827991707032606091457404223924014610326167371990500651658786342974710412708943421431932673177806629142958616217467312931446683081327400106083777075970943615110116861280178067211062153964720998217147472782507386029444803943173585357934520195645819336737118706345882519433503935278926629770457675461192943879816693240045835532810725813212074616247761673017749873707217142916607080758342854976666136148995697723132780586079955097249660509377834610469463250089544661064668306488744429021221687080148738812965033089221370573954147798241338730841336227205083126706411180789456549390937029162990666468220869947735698343592810585455347745646850249697174821162827512205129699210122335809762806193585926769500092513781855802539456366128120738080250342410886701209843013361073055418447878126471697547632090799086431556655885312410720767297685360204313569619193363176331101556198663372732454360353600988498199971368982243151877145500828115790601497868264510007404738094217078241771746021846571144154665795923563523747850971387166387148751277963736700919158179596818987055074739593675594915884495319953767121860134259604661912119061982322767764774459780380967211883732177912828945314739936511089021617657848166647807097314262299705469776453994699078309973464290253011770883414838560719266239884531535569910229003749569968342308750376311432215626731854630428502814150177641914959587728011851373958276306887966494880615073606522589004387524625013822813931776465639731939239805862478645973983896961060689399148756009411576733894287220074293505158588931705217807321968210010694858102781481274474768798974515592141013761338866725308968711028870346440120962809287936660634050347204156708080444763761748750727540865176731850203173680613810024803606082211528512892151458360788335394061023037765480476266502347052025529750817082225337779497010751277062913271265901360851261009482693189906465281189662896564214932212932016237841893547710964263332586203870625364838602640997415381320741210608542160038808636933139959809297859999897341720129149587069707699192990977203428893481440498380256781051603738033333818767421311811660938178317229943152723539588420827149731162912211272914460158259513603076499180475044984042091810280848919085314765341363900469923737714010472657860443579424317108224761509347805468379386837967876836153571956139978852766717719897097985458433653325699202248017230227413120008309809323350216227976118328758189694589020690165926232257381164582808678488091096653409513014846358841313218946509056676308102905723786521320674815073072917165799861378836277689915009980130576620817603963411715841878948209879218497373433875529013953901139265244960142189929100472340570548672836755315466301908825855617278925153214460750523381584576611546405882279378205489460376770010419676765469895045121636357109108957959066605772326796862837358767527678723528187454830848305324219278786362095453630716871062555332557320612244596030810662892543223905458398208269404715082506627926455552011722962759589828640578417450299960485560201985267069898269429564151044017854345359886731158191177113381351954054606856857999232728726074489890252568453434095552118503128620356486931735644637196719404120772408136093424871356137734947707968662479293155651157396439526657472115532860911999697006877745164498913905761444147883192187163877112463159299225362210043887312006191260485651034625610079057949316257997102543861301818408023682911871444423228503647731959453445929371210025062233062894490684511477461349978933867603278027333257325686895433173683820838793694302004241128731189203995328706730867872064413444328044157814713888176521744405738768625759466247642618562707014330929539513498687106817574376770384715163967466151935480615059311687627617580700112390668234311371097401213584372189856447804173852494056603419051658303872170417499484401350988189152246947302074020169373235633643382572827826153078446145177469350172969787344161264297920720789359439418415149201165156959551005194170128363372349708677140990375158040837596353393284223567576038580426672118455416430300368699743147521922060458459313245275913488706994880164134528066593576378043813413504476739221818145572111330529394904155871210573124175882437452616205012940492221492953973430552773182252573121471296525686698027004555992725577453965193285035397976953239036246734900144053715398556605528981547506527207416562098936235195748868473133518314244605494612908963395733690988887217109565362482669366931171437554766657027611802655071406438500151429057139325741697704741358385365501629273006193562295839381658685709739212245905483990240514718605058634007183986159171376538008188457365129332634765131266597644893951066696890163099857813470136101589611417144844426208953170707127509890519918945274733420829571380038832422667205051357768999579964798583120513189530976754479110786132062431196412811537280931931018160945596269622952876006494829902642129805641040452457899289208191800281686211018297550471048693950501339960959063291293684024018320296393581784849682587685318765184506120282528797662224521876621252605846326657942339940498213533618654597538811192375778065337852450666544708842388855072006137704774760819525670183390295227339101733913712199195203841414720363660026930748403349133714418080501421064298480630743938839243864684169937151735947415501474079395588520980014728203368597873623225153782698675873446164398281105850560853988959676280075204011013021003142448527090951707166360750260956236848362361627067547157019036611779646210601376828089063036177976915899187336561203334430982914468905926245871673643134865677542861917193556127393000016045146538164612962900890872690347625664623329874897747226390838664611044903097831364727465965327391947432436759177425516707265383064928293174466525352777518921537949163114011026406149904776265963643689902844466692123403955236232876365622371679705871595895461308171023382261970751323590736937368318926899536025572604570109621186442744424563770125671660730929854693375356689479627602985721702642300925849665009091731490004208759852353340594235272251524250008894570068390560567208942711814061844268781648163750851496129198684912072137105107102734470076087183653702649608985272587733969242832342429853618543852921074349476375648004328058841316951193779391137033464654632806072198627815892016899259578018589925781730607039666802972579358479036221475495830420240717783169361890049215747129497672793113619211894357735054113074074640193777561915468658950373584456756042259112784719260833202615886827404433115317338699283567270509844857131445152643495295930532560162466225212761099571363578148349441330102832488675553074519988111639619976310437288960824447871764351267076310898331684947402492915159086721559899543526276206149878346540234308662527280107281448238173945139052800915324361235377741744768483461205180254724282187282913984042754364617549902771157664739130479172657910235980787484831325591710702104597953666532917414882395583884271902535957078785699119561810732567407768181802125534374878273386841537536289618866440755139439805027630324756199719929700182895896558234600474320600974490367838111453624683405847610003685942112319160541976150292634692317184169656661475166184623044595201609917118308853586668045279243602868631621661168772819889964677318250806765723771374221315532884746749519048860580997140048789467380999942283548925963173031965815848098084601758857374483074310785523108220867721348157153656471424468744954734456421388758891416160518755452486967931780024203528658673432392534910666365878032761135603397578344773910572424908554548882135902687013498614357297591975172775040769703778492685511844561963429280160785399297079428440006014076138044511897203395014564091147486217818230605956749303196322785933145391122112461405924949837723847506966941403093697320998308463890818501897262474892796513759007976430653199854598717258082839393893395494707796983090653665586865738627325945651205705037672671079260285166525304781411544994638313845540238740256328511616235811940413878346731283713655996002592135525987099539077908300734662968876800330289925797381469727759636364692604245016295965418454882152131133828298523357430196978860518331543596337463781338740483408373600524409399550979214675015973593658440719121199453788263426227544649864680289386917539899926242903480383328996878127718033355705194297256824869756700778682309083453860680959878866503466836787375028159235641660737555257197728738864104114136727289986517418539530231191792485996083572327337212140299324987583661333651051233773888103487109507936897497264037263745407903412171316533946978730595266936401613641385517902887596199835886192372589474198451079097878271435555093273746903145945979113528210367127542763570398364941248191630041421691975997803773074105193246886363630890271303663021436612250111918500799312823344328327141384509765347553918417952490988023962568925468493413398328123406538908247915756109142599211332842885881373759316916170603606832749901622490933809055576580095334180482396856169042719921501445144143736089084131670113049913152813523575066203699240090287780545019794166972696854389652259065035721431606783045612465003464852140392630329589632246699234189393072838231508165341313878617827831236037914864570856706169928514922823342639154650153197188058145556881419992185524452087435795809046632441972605557336413610112739346017116353696896257185092408372512025021950915861285005819817493631663437620380769413214110690193021937193133854606136297737731921755068927431077433793146590508233855901029846218425641937189863856589095622225440116408148906847010153157964795186195453748892742374922363266298590665686727931328335335120256833076958098780905921409614290535922521289402009075478072902197192439150837930901618774908923130283992878216904685601461794853292570744321302189839822834420321867541250545097265949154431395016475299637518752072628679395331275953775787728195469365552068050962079849510791692497640417278328991045036845022525528562265739294340821798263339679506410294186109521705314556101478612890112027275358849724090562851719017275718880076304166739109894963904278439005391236177343812949486054705774445764124444695963416988314484104810007248431090856325976156348418559726223069851921931051367494869346928249714965033252526844613576509165312108541440241622815420129253591722108880401253202383655663299758176881586015936373087882984619466659229738899592135054971383821387406234401866108224866946281448972287177191493904852863657179982422759382122818404210690095378174020215762454412268547613748817310624565495747536626299798954953455950243721496612043611540081403206589219321510119057165473558039420657190833569383200865491729266726638469602178744407423704637123475972097421626122502229185593011508541792813966236924904434046529680820810781216940750273064874438087646138483353680524868151376755857905746903031798418436806723280958636243977706429560920976264847038348706696281919164662673927860728238222025173117436197730113246950230468965002738328778079137907426569474539335438364435781208222235254274759952219098691473471523530507627573992361446682804383019237434981427676401324321073145833745482096199511683336252368397876706074230321676830885538723857657527521421533085505867335958978607888456384868091771589856677616867200690423808897934149295123700155908027323441691583987913960589184806090617622943091688428710678015214910477823081404918800542949077208748685081965239866662684671606780554374424396725915622527534634463248730829138781966901590300156684813687048124069458849001699733808280350537733580372457505252883720333274390112063362450905448821112882433833442632438363146007106484665056733167910126228733725290014225265349289025739253353683035531848875985702245137602525913146269261561914509168432342735004935827732443297483858086284008174203156268248330791957935097986679754598568822093523748489215258177079867136932627588223844870028418797786436888882227858373060847936509264056683393448883304368802150616402451942549180737785654020659536517690021536909787943337098130785085936090315328166780214930109260913822468364851018083626647818581722531998387792836043918778190804604705025630420495997961363212834704446628672023870548427432479571122560387552807215184959397140901566886021343613563885800673829810776638758445483213283993812869067832269075437334195714531025743492925553488614699472038923927529588423010660230550776436118134599841031348560922323700985296437964505300888782385690254446975733072881435670708082005912296993526354725673028029134357079730016745007655838492071561231307261535766300969266592228081980239794598996859284544433828546237734629012502197339555094054359643952794671955551114672086187129745904625071766288518967932926739819124052379042216207808948991472873961012472253814621314107374237276110174407257517837436482776412240565414623367691269081667120921940641583230958374498761493297711005071985992315583981761947681147115397364265518510528879049413330301490738023844420031125883135476097957852914730169330047291296617912399747141785847244775066302452567147420032139468933037739580017316362291019660658467606636795170900189364025361149178671933675554423983557947855663353499177952933812578009908456836427226187004333506218649992087542700880451636469339987437506870980151876664617667806107930542273930608585597571432840366788714076297280177595057318384364575199881362851688306236041076896778960607127983652046149756864120293806721058200909447964027796801183818194150437982814434722491443967816148315998231571154617786684235185291318146742556983405942166834460498932994359423077643455856413461260407619262123929913601787245350337359587677379214555148742303076679631410951483746663513063416177817281404433670246237055602610059004982844461797618303758073047945589003213909417630275722986773889313604662236510915235076144567808434541609721432438718128533121678113799131357791243292545777152243219125288961750518761610027550476032751035391714020478148559192338858102928727769123817700100195951970372714935607461257587957636813777961192383145313352674728863913209164794772367696189888648540027722035724613135953214148393809205717840136317765733710194181715119878726315672197108935117663108113751444656495887682859789882508191443684465211694866592517763162290976007855011988733091980165604076049128653069149804495984394867157010483221480233407967183867800893983190490421086363042664047529717721244919863960845248753538450267486984942205170328955515938588192141560599712790295355663008875998175216282497849843594158280188387940689517008123700794427313704343704500559959024652336500309067658173196726340829304370378683011031668850333637749778595939608289913117942339242349630491937128817257549655107512373070007064811316086468923231877372407607742965570935955143558129829813273453289689368303879371253810827675163985340712870182954138612180403205203676363081940195494389368898305855876333324376956879043049373275180984751685376404446223410423285985089461254529667792450892069072972423622724230939296784985628656610558818291590543736378533743672407418570700499552696805260699875306381040659906829388023381769363359119624005478502904633911968728281684290543548180808312121176013007163959079342714788719817489447198374583111234329569699737449325490679843720753611137812401230298783863572251641004127657439571553656833281525507066779236953801587445220265494536246561774738239391164765617333130776833011711913549103953968762930730932333788913438056919863833129828606341093945584241766608713879744321909399494215262912824055502751660479757732686041979620053269902619164148914315569867162738037482027672585778560068416580979409582572823019185582425714220514529661550333132142196769954385830270341803577830920620097562380376837750391759256883058435111243423554547164094923990915056095631658660564402835347457438242322412819086146566235060929004560158116343335132284620656916874102594559097355664057690004656110476330452818029595530124445942786110363047177117064296643137924012430763770301191623162767716647631582159368212227534111742527983174391087222174878265371564811185105547749002664065259688596777494156532262709555370693905902792241641814295688699290372793294968357928210851581563759586931187274052062702261175937441157373314984338244032865389258811564378131185579371889479872018225553005454576308671830360942997713946634574080168039230393688038291260663512104406101160950829814625407113206283678927185612548369413798032770371489675685788040512766156446986693544576315079810518579102480519306439971560374922779692007252173089666703288358858800032573225931122466400317865412740079475789922910420673635324362216596709481597221933209590247663534994164867430089181122804998351454006111849963729288010396988918049838372225673967608990701065000406537804967190788668605125285083900910026169854254015643695512821340781114232513530077928343030516100012309787502048492036237971888323652984060500368919642555238523891324179194152393187367653880413357911345190550155812243032348600834711984403339960251013637946101894232271714727322470318018619416758340738774089336789212021775533241878121081202613798758797199130116425864544799644732402460141531721544324038471661722378292333921552206902671657876395712225169527664444478206565656387087241049594143794212486627035198183472627075852774013486547352367504497691550029419541639761590895124566696615436887459571643383684299536871369868569249154143102220606495952954078051930371608908801409570131970081761085849994494681215491987972986531843514864123643103820317042049410462632095332225632803545044691024333209757114349319230637394375514904245733492443614999054718299881721607808899377378091508922877801486908683420098484560570862550973167454373516717484010826405202478382238116390834576678938939519860493590076942827583274337907630965950585928136593548975735348961704376052372281049678498556960942611801116147061461537504228668979522943739189213027534748469541095809915956809206790214745293183202578712992708293326648495990290837264199175599275286935957898648081083081476024523343061174827452704344167853801435240970007935766227735909435434191183590589718687793325669473940766136149769671047963097593111000175952756965378992920369088110256169522429871491167782402965399247288637746680626066958838439346184715127924701482907895536299567021369306310775084815986559421238300081189506618203799670119607084357216697362856265891609408839932674549067958843505560076830741212718482044985713866057917800794389646940591637282502615219123760748213262407282606713982402216241808358798986964246334551291944400344256361700383246450217278051749171324824862831817330088752479788461529710724540663376609422108735793362963306740201366559838082956048226272956441197273895090146588896186759418426823569765018381752066822320481168281880673402832614840594531181062893069758586102437680050892738821405870913837601186875335692437389463857636067015852326568917474269124908503219478613203379288242778996577069537379902501276921891600111646586931006432646980053442982800055312617809626167711529512839284326665978846494445376001430764836493060001719262500998685331470726490084480156737408911600014954644608131802602486753239086547502130609466071160273598170267531377003273309324207328267301661340298705241003908560848368501519468767165592622947187354591329540151279324327333212749654187026640490153243078539905055860630163343287842579074681437404066562803938441120379647505563429211234302621277833387866921225397968634523169267943605274011884222638349708282101868129103133488155749427218765273230323773618693339004419572969516824605464725383343674757904654804538639387899088969440407265808987257273210693211645659299211862346724219590615209551675813206612363962639783419956034806793156648940085862166306452411056634725914307062632157427512058482223809801955834604371886854920647651370355917261586526958200345562175492180534942677256297769474888568474884328222055805682585318773483775814087775841826884175875384900576326481079987706741362773240113138964667333001199170162305443605063656284619860308874886724623930387308405055842282077347104264675533711004251478929052808583263324448507186787978517816619410013254984865087358152923373428673161392018478554606512273314576367005300436311162931187015010137178910562321823550703319609301496624736880730472020739674302924023715584018203236748367294441638985768078813985869470741413802585914471596398277155713298909620546981162169077162592753344507610683311893684838347972302266430476950267310327990140227535445337692314012092856765470752865576795047606877318213001124270554523390935322818476701665115167176717705890799554172762669976289901192734159869689845344811563989301202224171602099803217855708386479301662056658086663328398259225355945801448519911552810949587097344547753942993057199455215588184640387182889618029352451855948197403832056230155216602847292594884946864309595266364363108393835041187024710844993505342042394621455604922154863330359328040238951723560045230669261632533536452324878134151288964263245252166180202689653240755864806351583066940681611789931675838299953969470548655878713225072550504312680444618738386531465459627533246003679402199102008060180294488030303393146133959761720322376542037339400709884827618664722850316026920373063203345755247122421182909983637053237560527183610327177996484157035513739158122700408396017186746965134198251505236834390034353642855519988647732726144551969467922200772217243304572434993487093717938432200125524310527756039934760176120032698191138569093685279823101060665384119011100589680861736466910767416398318839015843839760716070721878173264854825758602247226936147114249082744031043399233628274148482196269948930007410911692998579087532708031631975843579530560262733043476788864978386249521181631377974081143205985194661711903383401986947577073084609619084688267862458036423395666490481505289942028546183738474556157422424903223429869545715009285947749952135861681558288422065857652734121730767991602908858893747115737787426442698586670497875896696340424948452857387819843058021501176002523194554985213499681159710827524467283811966813788113537022032237442403581299048763311696848036406412121697317852555182721896181766006416766650033319117989622541838395888695499085475758547265630373491379997594722240405657272831750185554013569180019162807118090374645649965001850743962368855183411652023161404036878704234213578581312002061118346203759014564709553307962395436643856371441460382189804883451428455559876862374237765468276215750038541811490892201223256122874995634658437003013958385784909737639333030589954421793003407566312823594227515401420210543349109346421530304555962211135183442198528044121906103562616142877299790226816649083514879528676604827802865494873023076727778562877179374447891636289082583442118783068895766685341418003045844706350093657819378893861947392659841524427340441807265186955817834317845657130614232779349521447862348688430619557707220014827042226341766107223287369651688133181191535312813983698969782143093136338133228280124552966791403158045000957690135818886407263460712610150896343119569635750578956609401801425491170667745970715967829889331165841580291614579422655314830844164242124238802268139123528673945568684660914972401571588558324627606574541443560209517279413818559782258747087835903549273335198160475071233360719396257268596587389455645036898782569736150779326415946271846764324605727820238341297471205138032949770788688865912956102462798865964409466119183077516819337853243146358123978555733346641072152136407292705870520223414281730196471000264446655075909951712603191817540627089714988427728048762216384744204369908856793964849720438124421865886415009426916033132283981076666366751306478516784091745619381201387188560536039049326592417579314032321602557112188631017982225177886287199215879095314930836502016043953870724067801654835184718321822006709117482242180061501821200373690836240879915465459120095032601964652552739689331550136478303259087081831714090511146611391776439325089689836468160269689307192145769218218971842594784409242757558692906676267333136351179861135365772552467784229271082667398286978819902234748598243374395515876624232676523380603319563447069407781696573947364859224718550014305661570710772102271259679325283460613965144457401195696243591420799227629837540541528998506610319836729564896820945784056898836099592953932232459936786065474003986398378584652504284364922483045657891163529642090268872102933304773063745410481114649670185089733159510696495798243725386533067897264931366784368265660335521974177474836327675659024403128451673566133848252576436799880793761961513901680311860519962756690400532430777350277093856703646904538639811574307412850217865430113494090951696035608817640227251070689286982994550898111060090389533645062037588752622979065430764169518931371278518204866415218895219270472998797614442270055401699946233918259042245605883683849150009441847735450569001160123599986612760426648358930143617217803018739956513212378639519643852759118765911046395018831976153034652331966466030198397951263136641602080252768721276945566969673265080196270427629126503850503990214041545574055715970580372678539803631918333423517487116009021877907803497690208985545332267674143186669539604451900591198867516920365941900054862248483158579525353912198847680277555833773282692762038659474112235130822225028195834033152629544595601438762891997542070288609347916431542357886063862725898938422606322687109396283804201023915821599894474340884804746123473856861498284271128254143185766808549783571260200570203285109773418093574154739943077233222374353439590426479282920505796461373382855786379957232481479243056236232874195640546950434183285498094171199128864079998975246434456169616385698934293244320725242677522738563557284005588317718851264655739805770075081063073173382839641237989307162520222277004439348230308024714988887419623612615637574244856745689957219899815079993266195989979112099996609204722620162190380030043158621950691388874407701684808402790336876115216365217609790382548609760804101874846040603344883935058179681240195557692834291191390327890916576980688758966424057267382731795648936851945526829235426448267949666342256960210388213773205726630652027881358516320046933338137060451628334133905309354789650578631015335422882441680482487516019457951638093425311226808053306443716986914342358448898627865255240757783053398258233010010083616850986852394101276703204119880554051518377681858657501998631870783009906712601673746818056977508144293239569490484487848978572754387343402629029825401710161187125246446355544985578728779677670514827276600443991724578392832616216450345321081142406752524021725968436349654117498446289496660125578269929890715647320857321995746225228525959929096453102596275428580560395329403415833694388259898473224520411767924570393052783310436423417194091574994402844661477255686908568393203313072210183234859656947645360745518215029748050401622893760074017037252481121473247578776872162588589858026411701292870752717789539852345552072076569527421397335118073296835808480861542838864683078842429143217337716017274387584026944639377369684706628342793818034423001321170098662705791697044341392199946931904417055080386720792350651324333092670104004814154799328991691620668487540961179568449980050901357857259973312164694039245607712045306636063133479435809761497429841035315757213884946916153115699686619425172982550937113895254417250308759879686015098700739342875507602133667542544912976100972321251052636591039811741890874369374474660379553433915638273101483224883003562478404876354623431923948108932822008168576273512986915559550766240370579677670822429953225413792165238119341199816498956454709373422481803859103670084657873129588530740832357063854589977736066412196841742088011937869097575891377736454850015136123169443162478011109324564942323329722237263285961410631189569641681784754599290977428044183477522918677100337888085079095743449403603005473693548897350227704713760243808250169209639635078058697330661233442472182594085908077489629518707055177154496848643066364013502239496789091292679941233855435443060692799817000847548753770387792365976823437952114361530534422546309091068954601887355203653526106571612603463413186462589344633972861970125813790703643939756288722514220421766923338201334799035979362267514185609784538802144038460359858122612123491168528061457739812531257635541317241258799909550077512507625360460182802530563120367972983683512706402728132268358665337369493481373898982311843432234480657412679834176071649992670763462843452617180123749858356778941350881568606983483571309313589161425925679930331761100367850998823017635006351160511550394528167351435992447802894405973268229309355943042876808244750219013400439448882146201317235425756336180311838666397510656794463110257248727223010190100509060516287701815712014989777441952198362390554632461958841889527525559960963198292479563300435238227107082292686499700235970598499499044728682294346608649429647598600420240548494055115502467392344408460134920232922690929037163254648812194703139430564872782964333891831211631568704500832952817551384281964606228286110340244220888054305303805241836750901530580606997751213996598705035299105563047736142990565390347889638344281533011346741922034001942246373766420129740653702848425506982121268783936433250476445957757226999122237413082486246313166466229648215905206389285918309729314731840827930367731289461333817392242897762563255058972906757026199030990213441240278986993199257362571980043885098999013506925527876142638484696557531875785433460738313789123554859163722483379017856906027718624057001641945124315289979386445418223384458062133171585069329986149775821146465080940557094522130541751779085820197821054322494564010565151937043420178614042052184006719646644919381409116332738139618700989416856965920006785950527276923864763627088753759701644588761853774383587543783073262337375644093154939457463751312049203085332025096120426123142659099277612628932378862197224730574711522856514928306166117674963476282355601943989208019167034627804921893241917905809769416494629583432631369584576487939575665390132254529473759908546024000244811312842504570838199045923351670317473359920434657321165841350243964894195509661311384952618881943585243665889131735213070553962125979028332942736612511866970446390670694308613725131672083288188779873332722445636608246277333429784810432130840729621072098164023096955342918232195002958435774458252918169357731178446258972649472227976095627880440132152247140615353898847612556010577017158495704571246142257477529529596467093976125191553299793786500734473796764045658662697766756822403422342282072623058526628543089164452859685041101051099261347804839274561936635074390778420332212690927914999609092524833841755007463282678788633498689091637509627037767127697303217729421569609596291056438681875402383560305631779063311216588176455994719200915833632788500348227030349285822702712150784592793244185796644326995578658584708664348272319438144844613646637055533732138316153557667890745596944175322604413269543058918763650276738944518038631406131983385955013246122979337871236615654264526653605616188756114317504697660575427165168609525403409982627834065939263279232015820793973176316476667348645572031326165752231390067888935231952373245649893921331871507424498549920553766623194705235916010512490848222433738739007350826206349704695381894739576439879953407885102723627021945336236748676403641847756189549016135085663243338148356722128798204673955733754140272371610899231625829955592359461714297731833173827654268947809409501079007188125428624492102894125157713559031442379112641818856306479377254831987998505112277753333621245347603282169336818397926845833680529623833417268917721831678671120233132167877832768017811954183257666777446296595393187273149604772281866936352948640614609424715896468786924593447316438505139452274121730107395068619234340429303023496990306896612413231923381235277110061394155116322611297354368499388522475537128261286139771997485128657937950967455907300431283409631796372344181306565094396665388012612097526456204558437538430765243141488477099999623813763910124176992814309733419363606854033380361047107871511309568239793793290511278782527205978985106863280542541823514080108026687547935400228401171697775652251849402388386080643395733623313767516874868794055707988303151393639987700716697361835199300958760119994141667329551961453486410440334593169562741810807910857262933914919523148268695411402535516171515793050730520325331690759410420726004784027904002756854756323901800844967269988779623605190716074965029783374226393491513059136736331592807591988192439594801841766781988172551268683099207321804536322060008880994408667932826705473428495883385946746483621688540243154334479683900224962611596262614981366263508270776381355704973348075732319531319854841652688743784167157287963903569936000466820313585425209930707718698695932244888824344164072454887837189478892798782499185906214762367213962275618458943455419017343583044324461168645245575317229844786948545430708770193112327778363011483919704495355745238870316508725352495187145589937974903422548562196068838233431954810826983230877941254315389717963915448027817578601810866148370824263012113689938509608789169018352948331732729813616897298191871316137007500833709803794752454643211107646766379478500241560695590317308396043112546312710946643825476624565122551622492528405943013588765449430524470741495255017328003524754275624518994412931963320019130001499556312053874235173601109275439603823509513371626652006920044578558258173809234338555997569834203875180310986222673345941373099010122878356695792591921850482532546469613211229356851309590028706651393440855128706821682882773814224750140576781240657060727765999403245594655935502983463616078474751617889302526654616884985752289326680335907101209325058104100657718913598771253413083862381808884333726656204431448637678771840904187828962263584933223865203602531547748234827495780757991742109985586295181934762850981558211520192758549855164822337366598076712910910505563782015648019988992555045937282509956209750652643439833197496981750147669748737772311353878482650371512578307288395785042005759309407077133053320760287890635160528753855628456002154039561701135609154234014626770427367016381047128576751892451957990095556145953203659365473790384939980015135747433186945919069428861372395113896780620996647232021312828252435644105220475657599088814806658476933332380724350476588080609786403124627743600325087152794435854115576104817736740005053592488302978900598522633656291445514058654778261126602750731332311431804460862377494948622865014768169195355239582659794861312001105196791337145749935335426688292772396009057765454879641093043520659861555833613171341675131387356700641209972113620613977073341014613938144085990127034521364776521105052584054165734183202760028437660469761838440314159256660575577476445501388514996960809551744438650095539147373345413027871298271552305744309110673011205741097734391705517958973302224192745039695919462706801023045744004659596652785325320094270318130329958326337430053572745476447900409979042779084657073111678018024320909301243560102552795895399628498835874640846008005893139383447259348005473615077485805931753644506388103582539540197296901950774444408619722126744597232113208574343427233416949771159558099210051367972667291350356095340348342068919431014730583074442451820799889483323121350086575461114926192437155931088432794311456044024216691989691951678830607485306863269171864137986752353742265877022846973855604535683916964851351207675924797393737827412645302556109167036764820324198768926585512383866517000374050802545883794663113000964043861959370132525743270625503178101219144448732277568974194293015367112002631316270090283681114826060368880484296442347052207966788811744127759633089304013672555659561223588427917325417989549931580872898160247894715996315575348098670453775866013172737029568265143986084201252859582664748623665702150544381589129742262225427988697758878242778898147871134413300901906178015735920600960502578267605839396089646974744650643232100296316977661335033502709260560605071890632596469748210766712745987411503423088995930432533693332098263725297793867553115497139613166908955622924367025481573905937187884939266448577536162120846500320883473579810427603283718979308273275567517365088259293999626495218322080066697949107795599709105686889935428330487023338077447177192058792817729786649731587423292813739747808573675372021530721620387849169770668623192656193139901722663091960113951714773773219348989196835166591442297481236117768809953351517168328445342349441772714460789161036112887762196085812494951533127224100606302383192414869122710932158347239267754207554124015058836566717918389307889714155395671859122520645528532251163568629587240989879022369699758295325437801890570843759372830609531677621712213029294695305373361380697369935555982873997264608552267109416404681423333199370019363475084492776345438521885622814608357648641430359312397689766982117462067659078150158256877718228278395447461041208066539803656631807345332600578439500393617149106078179343402712146524325340608668479430133338194484942161930700237751957019229280798945845950182197728908522067517369437858354527914606757552244229381799843370827303571722130571031475494765360630243344676383857476216526673090135418697195833327494594678765012212148108390077941994615598663007168190124708792149850410420122870620461435638074746826829572808998628003223620931285354245256725731693420649395664355867265193280795782084114992946839806252791702769533447165893505616928416208776184521692195412083533423110111776267808833959854202145941212557718601565765557517127232363534421336310742912216527999332567770593510427755684668969721525720687796745930703130207417105943689311475710275812550309028976578813371852805916202021117799073436947025258065646412816157709324423402300378440147120340545160383059290764680110983930711929076254019338783445098194868059963681649262456511176109014190794958044489683113424973391590873050959741176200766380838777293427240157630031043389218810315213257200044410954903178380541102788955658235466095866029366730139177205459961572749583124028058007668339730881857883503915900754548322530141273675432011355519325900525853714350607831008304771409858019892439960795924326666960769391304675297159677474936464295952521068249559492876155192085296512170637604241470659033234193573061181272466764048225675591980224978443166259938923779825687266297775126377168778451675508321117247334882294071171813705908565266778984510907251828376422185584901851345297926510603219226873649855696699870859600352261127965480276956173985278402632647329375228889317982281377915480140807079985819991794959777075918793172356192996542304077581885788891996206788614031693027418878980220261684148895028043558450700410201967829698635505849733365286867097170526939738175934749627194664611570052457027104180320542755189544745131583012073797762439795826057778970681257421851393703539560938722516211944388358254142906710214746575314669136754275206751738921802885974002936027681648529840937976679979475540055761803571963252248423815987131226697524740626736563044330063748576009744208784905340607204348699658444342689915099037446760138658077252918009208935723070444781747203300542287397084557159163278899239651701970862952042632407855858302101209706470236813743647327804255670382835434024844219726473380482388180173557165101338093101920351633354443226965096098046529555592905928778651820121951321558962184681171114345751984028517849363144965692423167398964129522314726755918489524386982469667076474266290558823922707004678619580759017204810308702031362689665451952013184702169645025265972452520793413349897536837905829235151779961816074376100037047051879936350670703461461356659605815792029557964208795399260522290788456259403874286512644605882243390709445116890731830994929434904631666557308128782038784718088476238932437993503851921341034812150515844068399862528252518476811516018717891634571714709071420082304591622206904674534122809220365663640768822234856746495086786220819503626830860027641577135764314776367438180368242422026370693465208323948277154588093979843365740856190419843773330115506105578194255984866909210133960719661746960084737472815082112349938116416732716957443692797762559473147578515146288385715502871088011443937897177055545549418745008442973355090993924367420397706140514690170989764798237756765887689762440825247098362056028983916398624243197041453849165081564168167169469226150761666022135624011677935209117064015549637293027301371435771827279265898283509010660493360071190380413573868136195494880949599188897577782959515590620523631365934008104710659310137999327438222895179973287321958732656405876436068626370090670399612164154059411055848190501411757336376339829099115663577629732217507239465299252343263647876759370258868189473027977313813913624448256332426639953864906141670666183658257219182123369813295657098100731269539541514998792920097852809806456236634601905260907820454342559973259474588210295953884560873002155015116622814587792929225440955503125321714911766606037391622772847008015496864168854087331635337923955219230773274711877103255736015379327839298099607731812872311785821328559135983624501190354923617006232839672790877557073698934866011111843531335870951423973814874834481405584490515179637985390531168180469942425576591242317088835510544183625792813254576842680758467352847692175962957359807675282224016040296100656286990487924896988427998515334651097902632066576972936010159735098648781470183626736298261707442668941020404713604750340965479536051417160163895177459238901314696705339950561948169236320642303380315773599439437970666701675364127109372571846784097974713089599665987603293528200546447118975390907278595203415513383096969283012580704337088829689644577014617736676079241546681669913733802888807502173799758576505431527507941775264048121567063872766486859276514207756277518744525800733196181452613419605060898454856860738555416970490525720023663315695239167418956074967983216376143034914407445468067724130986370980452329465882281660796644880676794531494658270069042189183264442678757894106313358548138310291819575641179738115019527495960388702085033774955349859782826427234917272686068117209826963140171413050247851844921822350984830940376017301593322793148605167672357481328476339133841751177239888513478295550070338602802281124344336313868579837796806618579561937702867700530573265513919596085477299100490451087876881684592894731762344712748120262459639507584764695397437858029938510996317734137720462194469106811743190228577573009526350478228493900361246630243901889602153963308127510095058099038513558175848563018542447725105402219033430002941794452282854935728292030924818266040672870193918748026603951756124942687185035547307109075188037572760311192417242754445192744539161416746433146668098487276417546729703660278732974033377382040133610358705250898770534301509256566078834271266276043797870990724211386004039733956712539785253096103094878524785445342591830622495856517930008723591490810277404727396513716616845005813299335175790151558690873519809157467414579113720543960394308819949667598947853249488341577624539020862613588836442157240882727712376237189469404294189575963611273469708598899036351324987915337234793416385514344516985993033024538947682224063983941008564831793226649207154270962052329085781758237715673885537150478585203626672977865328626993599100089162251813675363610065752905087749583946549767321818166585191691278120587784534245027241315907380622016389663767546216385384331830694187856158662343720111683451650225490471074618106627480584762581078604370922543458314127453439046979552963372413280250913873575888627599701581574902279518938881511768781807394705586524473221524860079124213912432824202932639940441412751492892020196756653151352867487511902121420124340292945101013607715088355496695318590965396649151843267435057412554484827538250127797712350102869011862746464934868543202169754946258806363698688235230279321087950064167783254184379106887284807065794485745810530827059750122114752126451565723356892216482768405599988154326870642998596531510712374416816146357705313499175347796624152757691395500310979870727689887886952234618499811749671460805230370306297912396671371756873710867500438646026045073933952640476001891550963657242003755331585803317395691591115747857617219763010229554797862539541426069524657206684038516064065363861603399242000261112940207048968677011472677796553605463092781008938829060357890568562351797087146819162112277376150219585635065857616106526523235965567365388148721829726833564542816695551292677817255008821550871753466000489103758193110111823166331869637181995027385421584793191614966374870565447338260336951027044454514806603470574706950195951615697612709582927133934437863137014919774976020805767489540770493247270052924189251790252367232298569353248190969133384154476611974930115709786718966520262557882479823247424686130302585587787906674232132457097535809561997953654763974741530425429241090976082491233429947574610901262253396293282080790718242994062514804374101628490967700781518919552335760857810685530177059768330732967754875551070154242197295870516381197547811138321904194404711094716153394768182644684352144160408420501570284423769689186773539124559853633869512797182695864364687302388115371513019105272613421209147115219602888892961529526583000611204081824993393330647321397500232289894453079033328985280768500270668997315569214148270594014629333641748195367257956429131982912782973350530980568965344102780776928125099651948849195463420992955681075249322440641596203112442839664130618513017660465704843223576197388094570276394675404207574773755406084749150251591076184788022521196662026739425082046996926422936660662252125032238821008550352659085995276705906219152468310249547193978889478020416097607985700216150659506959245687884003374320463182820641828753026373146179756254013541468448869034132522984794568932880384257993049395657624330845800564255203873242664774049350594560783043429891644521586182902439368701926555472281537186642114692230786248292035420775763932580260606670547185898608710751150500439428494957949138396845248337878350502001189516303542069173081793614021814423140606285196813690864732327797152737969623687015375718826730570042899073644259625762442815435803128344741391541497608409924987799549596331602230719528413014695017800714464215463295297637104255938039991923153544533501950919580905009820099558484211791730360187983176065922639386142022636454853900461178716700485539828991038383419582862728384616728909189627096144384585730577970897662564830863647143696633745768739243917489557621025420451376805855137871336104343777156359078848925769531344748578817751936424041595984128705581395052676606797873751365151285529367398176218591068133927183016360571326504971118479296873507817620459831334255238925618267778684859692904379961008583060548594767576714516794719981711695084365313382347818409849482886887678734220938039204439438572824496735792922396316664667953576604042296241691101562059200146874214203739301788778870561159970389930114763822717162120448981021687567816237110049168018969950626797854960971189570291994578713751343708744663858593944571264549170441031693407353147705692796415392845888683907029902207900637548579873080098960661343458164989644779765695903314071468902350033901648515479613850981990954357048167471863283685515636786055133034191376528002604992813272178425556168299920072074296765251428295222241204320380250645178747283196521046334162663875382063912405470208329948809830177682206151834302451770624657956466644098630966710540418363141851197998040149712523080956445789353273292759499797808258295903251387687384959455292844433174273932077068088622395073414294210778505589592268437177374230886084588371758174855110937150094287822669070495441253511621261077626253969783253315596823770550278321749976375034810288186348977463111562626543161859923247745744313842822692755718468404865727836407110162244707077242587454166432084340741529613915028940306473901692300418338590232753529983350914326199324193238002174222903803513270642720223966276790038601912752983090874365490893274164258901597612493608427213339838546577937638282657782333158547410779055638450533735664830533985924569417650413088259407666588769926692433100702239089743296422267562835711278233370597068073188627477948152802479473067317804601778332671390070539231635985406708154903551951711328384436302240285166438391586898978221843001628090117073495789364491317524739892200078121765654642547041449251402843470671037453573572018140229171957271228682014266573805536486045630316390757213661742344214080401750641098524145583386765917466134236575848185910227941825602570369596349746356410713647959545045444572070312222587628312674143366325374819239289041305530065942632911074563242271054367189305633860989197310986504462395787455712359796669397384521961557081171923848279474956937612872687567807073725188885551250855701444727949280061977201970680597278002603235312603363799111630410333731490964221491658961946952031948991118528562056874896965220374832642631065832998127952768167037405430398828178557416322705334664825882596164787808310616377720706067032221805968753258802616248993482909740013868300750039362911249659753591513799624318164625859996953180989469777006757341117147816958041649814207689102539431420093286179169156756386245183902853892269080011323982948577572774070478680289270867456472745193786219410526790361738490668744555569168195777564815329470142946121556896023335724648515185075850187759654216678665263575730654583172636120715982433055735165486137287258213637974437670725534409920145770408783351299892995681402577973423934577022904747840502886517460639797027220033801762768820225232767885348450597627157013793223072868292843202142240591571015071080295045178744651267421347638710075529439588036830904885374947687818707237945651596281771409098140580441898278848429098419264586333473006870672673233299106391664154601455103537850419183584364180905279748525144856897477650029635177380642870782440656421110974735158058045108851627622891982310505469804008000056735994678602145195459175783552043695309750085319813857682988660610702288952073181966133056342437564487358698162751667124669573065647175476778758628891309451771313298602874645768800854645286302353023324912220589201312018342987832718675537329725577198880628498839916145297551719076205003907700298161616971675194500059136774130268509986032914583795140339069179051149618089527737889957359970083833417993074396840595155138655433618050709768777912249129655503037661967548186629513071259428648647813756239157705124520868742279159171405017505521708934532498575854661085945810141566344342407991855376196129391243066284531784462167819744326026500517285228318630129066689342760714062124783955457125847120402789677411573221040509662399005088799384036006046012083503423630068947208293245466237722389338831953239412011493234853217722308024168435326833800346471327407019587556728658164228932138137006944138675236563825530961283442167474121250243998756621980980368820057029650351489007039778443772571935391663397662155598771210307742998971368412982770753126518334750317962448742562076267849377039609223597714745600250425716838792801985647096071312226150456165721559100890439434151654512866870573254292373349009510093434482287941338801269678411726600219719450070341664605229079373231261948621301754401070221255562786799258246829655947850599936313188993424710226289004533498942840913649721473262985338134568180900781202828296829421039764390665855718267535082477113829224576022239297310635180813502996843706919615860585218920123713928136210373929331847029260856553417369602246774759484493478664776406869647638062333397319964695546596573620086580752531760293208911744497728658214119120071139617690417343694419911829692511673253499160410028988400841222683267410419657110009276263302729289592762621954127471732163335783540616120033821564815628543322426124124404015723397852972876316601314877826904827004958089091182947924084282279128776966799123291607986474656534497459661586909962012041334744351190995387957132898436819799918517681518119288500017281157875302138094852875305624850536147140595482055795653612676935533469203082298967607132751607864193045427083115201919380313613714931302145547560248463171708505994966796141348372256816690354760410373433860999592430149663306692077202851924195147173418663998581520449170791099323386646358840784335229295940439615478100487412622916985011733917085280338319865140098620589164488504669293319724436045428441016924723168510923162780214765908576708587980032457635905549370902055422336597806286791041590747399220757976924187607304980057758094155991678921763722932352412526677712440992265856193355154698995962406042352942229447578098528645538090355629807756889568591303346521181979682031167244217229244360615433217617168622695164874038457673844029048146450477883632190731945432472592541270626738952602097067689738775519283718082141926895401111448236074927773585439260578259052012964034470443513839008150655112166115466370436867332474156076711791027359558696273588715654201503525505804056825062993555039586509958617306021243839447582938092609449772368823060915373860194177668782019265276370467814362974584906448666798585166338831369733872594699357611175599900175761471941850553221649952560726944294487616606297911001342647806740921961914491905860032802749958801604183780048204510112729753733274970885845247453307185303747562565835227318489773422790457179873174010099003642700368158818732229651141317536917141171253477722213523775155373551105241801280176500186514182155728634358212855006301655436720650075655433120489996536162776584060490626107445755191288947570034119083721926241173930060672796295182295107169822359817603926086486902194407876330228183385137405396189055141271171857847400358033471321663105096013677340530837939500517266289993863070198965855447218436435605482523242059173961116702242824391809439433811019259744879696622423244557095775217360886803864011629794778552573610474265785920823187257151802429151043456777140826046893886499965295696681763358155207243771370599218054865795349396463651181053787152817540574035249387408148142898959358155255061180590980499690850979229790797535180746679612580948045643785056149376607101816217024475782748065497510957891896727882538214237945123511369729428752973978768653254910037954884392354766776057882866104597129254452347428612652924245219267711384900483433435908673027367859090218489061288719381107621417966727719140600330659516589297880803375825883128641657473919060025214887431455164722616055073377444934192572318255000523256770661909562371885375488798565495233474554425370309295465685407031060895222796704994739222186614544757366021219168254210215851208831811369624812769525543392208059167066074202730091549589015363778480694639891356508723910234257942325903298786047913569178190119442810313063920036033312143007907305629290102850928020675263230260527398946649147104614229245035908317768878659903046402089975271732517613874559381171260559277532441916076843965440432178256140031585489463275612766248845434213493241020353876087588165682495177005112175247339821510874015256188764354201747166063960250918292770570575065930406442925999501398527562770564039021942760269440339404718339776620286102709591665015107255637833463254212962065943498902346478426227539592108914816358702293982050993355889136238486999341723851361805494512895460723299671813208349226928779655446409508324752810070949842438259423980146798564164109295900399181347183806535216996328917671083511782040415164985707586704151407102585674063430254588824921815709074026604207321691514703465155882364194383897240481108496197918418441534112556691740800721028414586489570094154718063962678106369114348681717368617447300684729794469855214655474056575987062823891032274423432928682812964844560242492898501268134608292776715416428605329370081845581282662484080112512269375090306059115865264478553894536096323153765539103691830159227309541120997800918547575461036637956314896696722574091265962199268606681036745237908540074837187754428009616908705312733742302735575220103939207477007583329687557035677903794618779863174082140129944394452131683321174021890342086094723755721384351599399349097912125049709883228445656379061961240392247545203032422789943680139409313072676349519834974106210298174288885977036825569495473343397728412987904160819530909642670046600275410755731733070785235837798033730870520707966635691903247276021036506509124879708772016559759325060105129322873834071821735217303181586065640462282700138866261313297294002741752545272183508787050545258752891034413334410642406955209194041290285224058972256578602826224389366810522360370131149936504167334851117699963576489362666760583411700538166985214259483917627611734344138582663431743782985160709513435425038377410850206924294793309167360655663792568410179015959324078074486239163272666102107596269311515597725313253007722343231005977905962736477794980771946042711617646296367527914613734198511430779673551568153873977200491769650067505948425913561794693590245222781383504451076201862455281577811567602819153347049299090885089398419297516325165342103241369428892893261155044118291438706681783223430232670273078853861696760043164201846327964867048736217233102831372375827045832282014741591926282159843755281381154110044527544303898693695818748636423608146453977936259233717771018345642513849394296804939458578997146771320481962875483927337469801470284054703401962005431773769363977975086927642125158328660393761671676695089871846235718149428760824312034060391966163800582178660644281116563089431779754173364050433723084138836362660589590553831017878976583507865066977121910672099931712333856849893322359792539679248628286755562384446578895060208469711563146385757807581826580676095656194622555077363745934524558134100042534482745801837515172605539978317141100867740445298192462975060441614478185035337920202194423181435463090777055498812940345815444208623909830624744324415180362030184720211913242585437532224738121413188883977882163022895626692114932645986713985889833313470792910505808371496506988822081793892771662638205709143500831648079437474071250206710024698673186317653794176441739023495732569206297641357454055129559146708257061397208768558056957301724674060163192769072898264620529380879716059297939168507146993672149319443817780823632291885223724821439766044211597676622200418046164488663592292593685354618036138653644040212557878368559674429668107864790007262448087648777900545957395883635443704524710787878372275558878423358217925541080326538869498756912495849642680088564313942891670086530567600912994117746803844182089002243723961563102816201599455255918449566386938356236579457120945400558948361224880621533784688588158656140041052560405408417923008949542020714268856866766882900066056452851813655046417039836891957592335156868784473984572896451230429778804645244516271692958789855760824728417749110590086455763015373495645857115145850101056243765626473086946757234615348940391381166871667630968891820746251480279156158330874531096709009643633896900326381267039358700100258252717530404653320162233824476614581243666548923381424980596457938685110869287696227285779653158877028778679085967522487125670527808475333545942700083063557887371143642479883682083955297523369156715401287326477509572304742794222658991894154522292718621016486712217017367381096522222949111547525446562940546815778697895925472503720287424433613355812138230864430599755493109560891865062061239318581869718223205354158761574246661199839886935694654482704973511703083398317769137846136360325224883286070378005015986786553787629016437902233843172900918413330593467285911279302732351274716628769875564773109572377363049697177589361424825182613629445723020164761305897079443089952444720135982121660277071671149591942760764524881610881727213725364530786971103206230428631009484237335952980454939779101983639369664996151682867987708673883633491536172645720537821372903002829879115968604784143984753886472460012659296007654989447789556099097354768718482162111047487451798939883883945648726745642425678612717138087157667661861004738012251997327774979242685768984245303402612280067643097781430075072645679890737182316634026035620987435558097392150410627612288194311844487354494614403173671832646430604758756020186978310077348261341692130204354524772408387450961440943020676339689781954729754518860970306019217422615892432861919373721569566874119535445188731362534158242568522297202685352000695478084106224620607333109082131811484277827672754413952881759826651368192513544593862422684969864582536588920636952712028682251469528169832590179247525295062350693562012937926749226714698528190336514481558677590215345647474194920963263902121556458560495349448259919320810951947852775652344726600261504505211709506269160833785887486903473029308854007388165410826716951953031857983865489847353031716096262107204528098999128432709091504509638643920668431646349290748778503099938842128068663346685523390658574642020909943485116581562643385484450468605729598460342766606725976685679439807497505871794017768994912189021170650348187154129999083334566443519749916499324499721422118537657641841175783195352841646759324598998603214028565768548554002912033075291950246074465145520741259638100380810694548376562925633744308451081216785115313157741224699477947652237382587592373442428447043246995604176639756855713979204312781074755001952652176107577941756272116353913698162270202580177499365988184331445795561432383311304869575124210462984687378000970914871490588145518030323204785108417062375310390314488137031976204659258991589958938245455820083717048999467358246078930181486370267904632333782136276917473097030326047854729047468419251252463516871036352555156885165395121923450926069589141933751075221384363984084337544668000993044488494927230370299149514606601137686217698634263814028186542065743004880394857698701603145753872444522386071374490984106024559779913092628853334749088922840504855467074826116179474087999954063411915264058172426519495263837025183277758016527919789806117121117680447177013607747371170357033825446510035724164682154548039998789189777864012464580725319655798035561695050117302407131081745811541333324799901564915408826812324649052103905868651664527650888666954512787363447944902535712371492072134436824456817372872259274418504761778540174689561539057134778386538521819292686442050798422591234682631141398186515862536893684692570653735887845954474297763211255201794983024127746395625226355287224792274251637736923479489063179731740661173442884969207496842506816736938374541068249934586928122058792535102749699594157875354470142156609449100503269276357283874750531485559801738080325939884493651563822169927106193035669508105768721617372645151233936194040260177843563732674283450143746075225211717211453643523737297155906938490246005764530707008182981476117750578501560351039143251142468926912482837123603787778651935538706749642686859140537358513226322552109422691968622510180007958301915394924133219628523122147628260157203261083678257327262819720009113917720643248900550004378647741318603573660390471435529639678115848190503041706011263614879236151122343562419526851762015302175792517386952941302812541202165596233521675120716528253422290598350503395988459796757029253982418523539532785482600103570584687599954176674796303105151541501296809638152546814592122494357991817705471452244016160016925848480523549299371002560042192194832303064534629950192280507133139942757801096128682873708724041636522731961100012735963365029944392350452679165696348973083790683060382345256939539859465431312970404733442601379615860061155563574624892667446332340387515269565435507637093027013620747150022988685393412764896844661955267597062559355509774599650946861369831835577473223073405091171956976355385669397567136725012115752256554994054393474095075676777264978247304557115990846606692625845352311813249066053105760932975554160799828924406242236573072928267928424964031890288319692516593665071452983128269208594069166893999350614313120027274263620033699076233027305854050730188141710609861724107368902201087001926351053676661389467739744015943054902398406680170354433160846232134216195731034378529067791457250296115447765972912042742886722500003489217004032456786246320835053050799895622583076269210164565802846050877343142072144722433495799499189999669252650008561762811914404899718125196119140933338810021822688678045342765888010322752939168788504857601942534615071315179760239391643755159559438583922235053037174456111203825521307829102337735105076272947441818716251355645299341406174119332240572628090083103951429447663110918534531676409753520465457401434385185624553914199055703635803363094260750982498942795611076758928716122050736718004278533067363682235764167583869217527133896433147377823507498405213574592544761287950518454187662544554849233004308195904286621321256356326480470839140365243479923660030204429291272107945408978990513550710891028339831022467301084192969996183163766659717432609867758589559456899084005875976815977229929306758851450452311372604279149602410440639991554070610613060216356082768696018214701825035280047927082107865796166697388103622910271989461947408453656710147871609867231601261017552642018819153016701939416335835264223002196506386801280097952730932961540623197564542120509428440503626824813475204653895718327804306003361427886424201836155760295237630786183868740154672816353655854178472459087024246262145314473467268391826982208402205197560436935589392885474694848614783254150747058838888061148026138189988144482628031104467591148403207385621336572621068986465164361935199700630775788981718345560287471484995970234142115104548591696763174227443612809765045958763327239697782471857344086781927716959316552222349121997318715277200175916640782257310641343276350833277060928514482229718968755188861168466564844043521689830696309704297999408205296893679201777369776190437767250071154370537039145803676474105886725124202986410344692738769779631350175858677661863164493075011470330135435388162981752697219198224816575374568192398351572171856422854233850743319470887681542851122455972579357288484103262817679028562262211746716838301319924043452726379034273782161311673239457545679696424216239140093384011510116977296772547784880830221965601271693611095519093458760659985343551316357764385274353162950372715327939694535139743312162203991303009680179896118672613058660531167542684996690201873857566629958185587113323239664252869043192831664192992101497571378122278794930020858802982209225037545698626328067619249700548032878093514369139663594733344262863186634765593227616259957340132398351960459335791211274377211297899367586624385435229233299540620410514808812090130089243031985640201685264630362994676991729047868135352460646479228207316669868428428481821329427829110359929461510906722465450737809702884586778750975988590066579204137467023815628735849150411493234576896258751501225324781590185064222354610928111716625447858683050897289438879735297342799106550604334316429811499980217302767565614309330238934449129803962199618016844027021489979652067366374417470302784701878223851111654436955057990512193553011859492123918707738591572739175656975865973931997372210628667481795490169316061209524607789842169147093459390563932050658435578123877187579816922150836785158388021114894435454656449803514670544886613139881297275792005116209615765629906376007352084047381402412056103029705128049444861363544720191827672206584938552125658376417917198188419246696765326950049244056662496213928260403685449082269087196034940779720940637863445338228078988774208752475919226430027437592591577475739282348072865284008124542699069776120055219615249732968944172728176134681771406677211654924960563410913623643116468074957072619364335264596895927136956425819511815689259416081159476692107897798343665842770182674753589890725080773815792113757326115248485916259194199237592168832897848578331073982814564627719357631589942522154350054440585136090647131462212070750247350630253046630579238770474313104557572180246726938835982175755146450349957249137348458499873689241313527516848144079629951766831681842200409334499739702589134715290671460944184699276484497898915423759531069401599916403596685764483082399379063374110488605029151342895240690402301371861519418823199947196607709375891583826761118578469189394164961030908306106556628932034649458211364357542818525911495252507689168439402662007794126554990604485987954500371478133230343384211278096840965671115050861307422313162316369055918256897727644462275858260316861492578983624093483517536276520861226235229732270346450379256633344268334652673090130457993315464619905330169009559034584268124105055478582590085926032979072571268604991147768586277167761907584867689976966230178458555562763569242456062645785053057279028114679020760270111982961762370070114690579170209060897925229820281600840334954525342872999699682606386631764876864874818948774241121114877033488883203078185288264702182455018604845245928114060001010880667370100516887102375795241889774869961065802893132954247520589609388483737964344566527599914668652357930966582663714088802905507975743813164382390375893188736839751866189517529323505844643325855164555255860457505910999508784104821536205029099252276411799193837330823608061047264006419384629502582486171363742194126077885538595358860544846927569265276136348146930770511992431325110287783185812858195154533889513178637591131356271291232754529613968448189275692021379340822427694511281648413931692626355361995942571218031309879997081443277295399872511385740891246110377779994546995062335655237214167474302506274495405762482073479360934513722803420573649047615529320678603059480565305910591653127013925145851646524172971725692367323768438212518165191717082499741509787872153891339589517352581100326614005350748197719523316494848473453427827436369072066207065003077427980867764530471011130925989402982888686137918980526355043618343450487481204283178203183356369224828110768389873827003787403872137924031832687301174590906980712099762999392238839364964455885882312798987471523972470174251762355956666734570753086907573737218717324206597715638045198610382493716954877793385924601754492214007067369053872193093801847284299342524345103036651569872407496714364942724593480742606442787998527359490946919856634484511118151865277373324966626289039954275703073844914480174907033059321254637642415198283772503985461972966907292933194778816158162022538204633345171581289966755489200183597958525762383181738265882319316055549190400201439568635592128441847903603680796741590984373201624333297665170949201858633022368238652003376818936196020105741527415608176822553764456356136773415343995123852109301267252398936087340424262725920715212911635416364665075283774334324806645465693257289651287597253178232422562931829195791368485037715051791262076230861316184043671367090965543250302776369161366695261712994422419632380549152177712489299465613623405193776064313300595606171997791130111397690527602614533111514455389956974120909524783593117616959870022063329767624641482429248173231341400342759012594919345110079291418567017292405592778832484124575076026215882666376408769140805220519919667824779902951848767610553902293204494897319543422499462308532086661036238701151058851207280213159462227665991828497548381403599380674833526301708651936996402468382898104525488251249246586754987094356970513481189453269962853479570700563939876959529529268100268969168158391817574931144523755663004574072819783534956835535890262335085614319117273644122001604335287457536426525036056378512701803563328828381306209392970624155709090392850638093062571105860493478809900160906089486733471165250995166697669734742159750046600650931303132983781139975279114537400347380422529919452040977852213173074938765659984274521720347784334463060697510022657373763357386231243188363467426187031497222263274211949131859686665703806914991162256263503869518457001972268199294889000303609363656160265162790842719184047634329614845922346963686562379199785900588054974058604331736190459372812273270029221386483529972193795375293614774197623502770851519332792734616746692815075491323821583715953620144715153700310405957737530733490357395740212608369772127617975515639968830055811254148436165889021360630888307366262226655684380399348968109791054762317560662634800075440497630966801663734124840606541725506904061990985928258819522286678121895382410674254597293682002989378980138040718856763022620450881740489161146309836930159883702271005082367616172551178792021831754605651794752121396535893946512211286890755739904246726899711749072566741095060992841377544525081346155676554468827694845186595523410083764388093948955711662038536785707357511918872770733384147821248893850764958274970890360282073154992740606617243310126179840921158603861945758396921585310592273545172379368784579544046911303440167131356536023812382350847616652660136227071705586882092990915422085782647703127044469260985452094614787862374305809186273762779939842582677683335452406414424174176132629008841208827147557243539974599372090379358830086459802789971876830733548336908055365605304003573758426128776416534702620411065353224060827730450095943491104501699306232910324570680508424498945856538937019513151054803073247842635958773188288501119152809892948968943302506670375806195397368704596207794890749713007526209648403348867044529057089461983561892405110285827509875642195149357261348688694874758983480575636104659854833020918770538640989232254651272303384528898605065072539685303862866772227865874376421841523956747821145978272507516724062762983515794876153101984526653766738540998203408291991001334535213283401440874222979163691573377886083431440463233251569129559978357131137052612861147664401158961027377222730264528877505556110549124539025018717474876603908070431529062347641705811170385454892556502661582597169099598202243738770452092550158935534124593962013267553405291420096435714743513315508211474996350199096966131216852688394046636176391331560017188763552253964294928021932071387615117798830786497892646092064546852123711190399579399775342203496107422899661049556525874210275098481260052633781015776896848371744719240012048729500765245470207717751723272109582445823444454451861215615736807747433217381174915470740958921564498623573262169875840740356045481224614365545251539996230321044824522988984087681649780830299032464099373460476674497785560810978751261166949658961766032497476341980506218516059806702232512254555552486322646671221359514055010192277959103870414384355330555434324979124922647860014722977265291205211540841424252668519407777671284627483372455894159450502091961263513939032665059351401267125479863189659960169218307103918831979828527241280030082803698773021983105293751883237357938241184906454423382847693348710575901155649299765703374437734810329444079643095131633172250254468165487047298602903816849479958256391837930287176234138178788531848541398426846226054355005135424960924085509413605729885237757979800191392368107506115347668259258823842274663296487758627634961804058576548018082710166204385767402724904562864370993914624389395068111718195583553068949743262563938745943911725800527897603403516196451772386743813644509453817906355400552955670037310226486724462535905445174555525494365141801158103165817040838509735360081642315452015099576009472909894678749880988695607580694354258313961598297173390381184514974909605784500020470247641196993847293585512965874248342449606284537269320797487299913102781421779879202579463721481076129469071376328028304400065417618239899845351635589734717658945167922495047901476423616424386088756269046508038271163172946877290068585364667761004996649980908589950754628703524873677675510834699312498198850634032308023127987255973599788864893517299989218261970931529957352696874035709917068966386441104823193007451728732539879763400516621033046504522292415609280300822426151052809599301681213777879519263533229788905811100954063289629689336207129047643932564870609455254933397827675843615223485884279666378029053320800816199087615968727613442189974566131611870535270881571285079336481129739578590571539399072593162557889493997110755054415788477115868732926589048898402367709518413005169567433689531940340526726795554929298832623245040266036410723967457120974796169988807057281271270813065209085434658647814855356329070076194812796953660096930238500221368761731939781622351103835804537625802344230703668408476550889344458142938424975383620077687751218330210295784963698841885253283162248177952380826108527403546620534309605051216206277112114978801457727343320624909060787769355688813686570538134994602395520314787805344611217808338958212753764504338615410659904429155171832772296561176680570211421541523244260186934330148546078680392471964307624527403056848345073406964636849094629663942039316383690748242940018797301896414502451223141556312639701772025435311583466397373651794086671821108740746613391540157917717358495330486337580913225572906447569378656975532742665228660685956238198764725884740598397495327637650924497453168392367837613804529330577962982562819052543782473830947195552687945353530235977835618348589286198239446286521906854431816215315509597201519780088648023011452921889477863843169366480661782031326707184587513328382587100256772771680721678506125606695514035757384509557817722221487616793563031585051334305454531436649884538979156673597561881781936174185777245650824806849685455219404345458041319765829642845662161441741031473502605196325407685905246442425753569903146726101654214706357748297456886984752557208297907283298539999471516564931604375069458810449682268574124185256461379391301472370934059462439900271566437822568862475994154381611120058872970433620256882803082442310572802523104530148007114582880157543121665805685116918340982524729887173301760646234689419318934559331064709245413517395705970889148150756740267587234875284684333499058082540281878689238826529572457380362452089456374053718925441117949507553909753882561299916909925821085665016081742046801023847333773101028622532267611162549941529873482799378941710225504016052887316417732572612494641130194874810705204631057989459699625745100130411282907670721468248343907280721424007642259183722265838499679265787079412064948082335845479524191637156543231905922260611237951796377920118143515478439146287474237258347238057822350890182464256879991830063531872565143920313906893771849425340013460940801157089557423523432947383908911455701117469295418098524859117006642187619647212335112689582536163610988558188505029220432559376696464066105248040871104644541850471088759068308853599042012401766513315889795193156289083482393547543146444736173248894479395654057775494127476078698708946456207836841363968197934923373207582370070946289447805488223592041195877029346844196391326287053724339796744223036782752638495976261431098771777719395623275465023501899623432578584447906781461830199393853661366671284485591173635205211172757418094551137913611727682427381106776720092337358720121480197790392404737225420684854685727360847629497642246723374266905328774170681404576465821404011463924405895944002935620496776935758707962755468048455123911042774530007636258976287477501723211774687143088971954024106526582940363219920394705198317474673371766681630558816747187603002743350192381864160617401319210275723209874847353531338999885979689937334508626434334603344716208909482007887883100283565422668209904709788689299030977266678187929067011703617804624328000189668683394348045899373116564564192190176087795668603991099414993891145426343172265924480836763045551170081130382867603419661411820133401055073757993396014278815858597579185696713198227228623304412771133165212868051769409760269364975347350662576345980220451406555288823834828683946838263633692850193973643370420848220734939691062326022948937696522434336225265171537474539996706404330580876860049997432656582077127637811870347538231094607357220915532166321113241874631478587971720445192229676764490458775279515823385346374653252767099357670075599581466295458751819984526335938371532602367321713066026670611516426037651290863992359834780705946582313970561957779155912376003330947906218350262330715587309557716713358413224104842755403837235867805442458488226255118013627989129062724641180595356651246792434195945071057184113930182434614287545870758075207013817767341813767736996959990071899925952125428136602290591120537547132767747352371725329364790075623273014742785112958718634255170202959969063572718812156690908430052870162249265424436644808793662665951579457724041716530512263543074470978578082423891775295867409362570445455774536185356577615231196034486125069959637868551911988440395021771122641476357087715781930859454144491117829023288608683996482059747537534434011533739029964025418480248630704988562639355393362382958712132781534613403353465795127240555680549108981829976252527967640510302143821225535745769052779502112295298599708398848843619015120462683038063880677895820991890971984431452734971603032824035351133531297597882702287585365891760235119031198695129212429669357611566051654824887966743158586484128275203757857103464749399199083324938485227778593109855756677683384738296341337924665873666077154329142570785002908784426083019830935020248785017984152530490688996194445301700976938140309670016693189179037886750867608073108466663092087464333650047425134076435475363159526320166698321838393460618663965932331028896884858280798089649161578614655322060919066845958443074891191754405498698527688286376926137739288464798676293115532324292201407919265815580866927373444410644955633636523860057348546267928843497949908805144614975443570955292482808882515549580662840901053184329820444225874606342478617433376632711565987733534983203811409662297966881703021954912706078433899108849983177361959296326961847428508496943395076883516630494110677075810358604250221197941136325981651892151807784819656335013149237574996985199718526485376546613772541173169626761978670701724399721546583218301536234822005718791212595545907857761828068546502285173819645080486412127126220533346003048542143167036205979304442967600056534968107814100153344665981856642497006567978883311544130910673922592624878495317051526879750683130040571891230107834658405005633867580681664445416482356683528742165273704127529423855863555710337686630822317130222413962755790703778716154349916523873495496697420207536240749149736633347775428609401858693618134633029996035464056473708875142935768514767995229018045840498597644084760340754825386585092826497717348595353669395348143466024645694192935881130907978682916260630599149014262561899535539883540136869385095102481522500208128112835769094477040205249841926796908916004095591214431350991125807880009342499471294792697223591933356538707848833016571821819908616651494241587463911122166351688300704484383104003188349954848279572749284252700817836860496365225488386210811896555199479831902432104681744473945318099184532080633746476333021380686260065531353432976858672024960087007976231493647187925656762995325241735597140264278724419041352763471717647323386438892945967496329635502655054289809902237259666067903159363780494443675321845023698052616480274193126781234080593109262212521005359273431409113510102735476592085170293514904165143152772628571672702940775613501879152768966658272489132405372024462115850203354490323926350440836614834663251217234796211349916765632455917761677851748754293289019675767915710666707775890791097536188939964981142567534487098823852854725798886365122009128855694005616753981377973889448067765605557717884419727972239582085786535545980133953944278867979841601378296285670164230217237084260104253942260232342322711097557301582153927817471606234599329332003436369245565018422265286613176811343484787520958677892173724236391517257924498985413178912725441844204419714396776038743216933093113943123802495127095915594826459213452982798345919950002343475271524636789747570759102883329473613380482034298177988964079139519133566553164061110369297581858413947394908339093806443661444703164585162296600642018419145250786247826432504518845617735195986946506386256857551315123974368711131142458930210746536787192338580074737605382870314697735578912705536781269372549573226046660476340738984089046232528936473750756684347230826270628511344075072606547408062673890993116030086078151395398754409359900441122217381879611808260086418306252256517779734344001115963266170665409534799631386943356485526411830011155310677793038715025787031825894364571426015761594022905252191826285263497323219760816629924178869784477242799741441882777018966124307446620335681192215250124220011289375539742591364474331048709716629712095946550000951594633925317574818368294824759906460224971396545677568642382650287119629384583398171931744260796234562184948628839999333268354762987504749979643267289939926067895160443697037052431337612601163850101948044299644569398204195116111369515776103546413672201155889647626008157327246708393580160893029733665064180203388311403409009178266602116366580082616425593866782984275317254923176738866282828559476637206617078010661843546880209339723472034660458376286144455378750111370612066206970831758934596706446817972443006825252428419000171778432456853563579648104212222050790357758241618651998291502027342715718249270260207086125408581384224652028952143824444426200786163603995095274044380268421012177989786524806861622640377221071673327650177391646525287701098753429709491138610190467583926491815589823620624429106827438662076024343487667741763468456048152822595095444551607442755701615849593054596991607680008117805104202025504004066777100476763616618988125225848707891269332137036472554045521981745750546536880275968270247909957183453464376484021065005685683520089791608112977513831927915921140597663558299473430344066390705619996677016338193857273988167345649776585675136440558524513161625254873462322548721326717066434634482865048414856974131866439125457277205419661054207287456059555077062942371633117421509462386490452315490342163732065438337261010354071121292424056480375669432696134369839122061368133498120519335670396638180914147431891480766334804436346002578161602905027648037514341929836924651881966111615334163653635895834582657316989662555910372889613128313843639509670220129950686575211412765071059338643343495863692954279469325203980713387240313172671499399173970128176761985409629697095171340664182657280110213427775439296814545939943213136841253954860786336409007831958954840078752128126380492461467550973227783318577813006780209422575537365016001882469906218820908486908322656967827127640480558792199328151176277567480192883731944481357046766266665340943913268388379505342214773996190466789121125670457784283225367400866821361811842509066523599190723617587988873644527227501601460272121241246932748512559239831140949193147999886333575709523704111526245851000895915685972376255954096849794977533374100402580153399617573309376121465009765845577946768567856373167114993742166498001025179449021466415661675136513658581819602920300780601410875121198010784430313681055746621206160942780251460274078721039335455997749789140395620154718291846147118280446977206285966258044269334121824599518366083770069161196575326462930394578565664661678068762104459212093701042643996329130505305360330982540675970721606062948649630198480161581259499655549432486018323404438870306979552788999970189210030256865954585699477550855700177622137941586021191899792863089390187224784144592176564493726429154743486884586065614729909534859862661007423710451409331150052175432350467261302654070834917385731947917455383718121248015325652047318115900330507148278069117686611585838384342866017581018875381837931580655413612200152989593741944951790554231336524925482103636368555232523771582446767788984858159725092966364559883909819546707480055567356322715513129531622970459683604246689475346146923734227141484906012300113383463164773743205684468628413253024731434421299206405320612419357921883025774257475313321131092885099876767891881382514375741547770848715212447653757536660073149907600099298985377020816345659776384245480400418983588100674033882624197938662227197507038207122868106574367180152173597299944493101633295841874628117051726670815011566276872575260780590465514884155345875686942790555738599810458143597659318886808903145373281114066094904343148633277717630083498429161498912097724306396936125145138321569956006214512286213596734193845708496351682242061847085607087973077413786085727567757487384217146700854477327708634435046983739980965087693810335338165493287152199247144252917204668966191349194057912521355866379117474942696208420390661754013364169853272796423264132972288910056879373701443563257962557346807892367669530861405206907854142493801392770640631360357036546877496676019315437639600055354402195324268964542683068343025784901607081350650167349281079886659023741072983936480713754584542185900382836667530101401918394515395771284025712704081670655270805648006731162739584934700894422683134762054097224858620213762967938598213206595051712496953535151426793538553404680260148276790445225207472995405576644264956754294999510818826853742503004294172531523995507770553068060726376371340231182931289601676695586610852838220393463548457249187214498627554146898377942724208047915268010195525122161621993076105559415449744827528165980380143131887144406757164183610651002262344437173422773069523670389859545575420475123459865042817717886343627379603132319882363650579936306841251185772544908612787136611823573460235879820753229223174190368607540563001465725023855998289920722479939731500921957246659869399808292858132688648376539074761885843785870854999679777090391905175534645362311021795403411718893902654952653105509656896201365976257243437104056578874129152204322291244235877770920133404455439056965106866002654430373850795791149545175088317862495720065874720111230995091266016776080429407726797490196037780813984420643248308756112757829811968163979615275562956298112124384739213054991715294360979508218244474729000144478440279001091181670123015382945346832029383666158574319163048047618157002886793458120606032463557239987060266154206261380571862393148118631576297520023900015225375861179624109546798622589198118858890483417242349616892517906024414718475862025883494303663148454214002095340335598192809069054796118616920973774290518049223053643058080876073839553380185638500873555043494591036718258209153139055582317131631230795683232298993809436656160959228721786817017816488443224935086588311510664203469520479338807758783082625786633151991915311947101148604924923399472098363938238285673532715222041030042982549538355373494075997905496811974273132141738923172700426802135571324997197523331155703062526339198096550356512021056954661445880407602578586884844192560980466238110264772022866152646304147398704559363297115734603185689695012368135015398502402869177871524956017461681441337163409723682425954840171085390016833418069377604631455464057295017060826324123171528097300103851014153101426041220298496689920992740612009067379843317673538910927665779428166421722733911698089134576863924717706171658915432249719937999787594457333513709748424157013354026436059582979638216451840767907742147397752847379307168050817440301508408186758172299275051265150579739416483396769951125641256239882172292432716328385312927658035157913817307556676012200215406379864794512503560931167955589971121494326500518501220633277837815255961543551127650709656258820287035879277007399937684814240970647035547940743009629721644114739737032330978035847017336884212597390596437851944730045279258078106686325912255795787678400993537888409329068594777953104850323570124035192100406443030622045907805773032725973550302277891013383706268065606456562029500987951542406219843866080468016902838485063403499264187536046099272859044767762049068779078311766744378649510624494593103967707745029832305990928187623356414347137899821547419749831692711411371074940063356423531345979930996378113356404240896272079266513437866916693134353535618080520630301274465093855697982646054395134082057077385413201644819279097449816383546023220830739370652067245780323607461537055567490773389541945350014780277429817138311216225454050366284368351047814323664332375007370376334608870734195744270544310797992281085056815118105018624045603002836598221805237550874899926527964864241620560840600393833362378461726158031976978371956229581520642829516151536037616424185724586210075700545752635027406466670528499876707994490974670536200559478873917963449546656504673356022896337464699424337728976729919196750407095743150549417232609872533058526207414044195754845254529382268119562352200722273432678581991078443670888015051724488602408512538004354718766581999838170697340010971008529221692167356925311997318068107800524042365935046739542709823215037904280948159794225678721902107141694465428173145236135239530961617195535332573634675243030597537532545274846955110891165532671131194785793609202306112620567356868741543054119714582789534891028352760297629505629251478623464273402503829673746997333678869859024856128307279757656367165812733507588425110219424024387521918244041373114987708062123219654880085875058444056910889276874218261910884673016068805608687909582960249082895444555754907835031453390671349750236581134086248640962870765401199699077142962891350913552213668725589519116414880023397760143464618626994970614510258688304870831984813866059138178296688597174393561981696267273454086697791896013536348650385352701581059367005067216495774304363662352542394160294188752588021343761299127314964333362119292640758017859036777512099782219547905220687574841443915781583013857258979611540760144524946072356203149426449731800176707385229218828240729932217076088461389324504326438934188424168391557512263887442057211568125567868942941326959997350501016185838337652241369833949018880452066805764528436401306121250994723621460155929396442122816642555342656604286478717558583108096512451851994563740854306256411889064344779157973457753891535737148988758941666180418064742368892893765402090461519877165831233553022166844519629682941577244473202806254927784612000092917024134876125296204676832817039463808882230732902967470097731309222298508052722889192505943666922992415219003827730928215148757629071246438504496208966871142445146888113273224253424061187089672283765046454654722003013999059197766748163432738416764293139762981643828973336625652757557061384475234590242728562498491367523606706639253797359776001123915687158112749514693575151226218594104959118582015938422100076460917687982859823952101542062462784297063770494678661846997321797045344753167911242140938815562733781384396126759189679554822225776912806999242429118896300315671672983643201825193127802884813750808524804656002671724448106876492388427017981398066180064257657918176790042346872236144754047134433459623442664892026147432273320173605309986365380833665239320816752251956879501962834832493272996422039918269089413062408441080982177821623141878775589371857887918030159355016407586610192033537554306491997359198922012968356160842796418747069755747071555876742212440952959489481050669074396457700512536876804485271018433575793042719447684839638907754889269575884444051036389134683153467270534630377472445320339348440475240781663054740556540771042539196466315374058470358796669272814153047196685554209284200669905399574379028853040370486670600247637115199997044185777022518652183701523943868059588446062220988535655224454740992672562234418285230074475602286297126656169617712614415383459518251426234176024747871434566146663389736927727991308183510880456619949917662674826473258231622956892158594519210493372957402353359134294579601018668338056509207384963296241922743148440031793259014787406812112685095978837258216800562037913992572196468923384393161702173701226083891557533684545284614152874662276314368805995797787179787611413865329511070286674340749245229746803994215852151408218096244920681908051556952631855148687846414948827041162424938445410154318540328112140836681047414216225637234484713020399643692247652930556347688279563930624279704046257986017751795435612067509503608593157481580516482103855600894053057673769902857064941409513936286482954943026368285149332961178590629529240996355968169169051304092003643567160478514779195670798664159632552387114934656015012680299202508556607677977204940297552061500241410166469240605442159581060056507259703270574255458785439579144855855774251416580352305252480585694063324064460265764478612324640020183078135756733873904590285206338211892801172918476825197197388961926611868006476026619709735240132194682025343783852139672698083351909065624555895481722137262163668237117092289779057637529975494249708857983063559311720806784675081698933836512706557321644567170002983492592641089502096062094109868474604008514693378729090421371815548995897743989703777794901138110373339942791237847775877953098926137917808155181001654815414304308838817157975776662583784489945607484361579633260327604133190615166892317623284380513242966774922845441558902975670013710378406244274623324884880014964330536885934085427447873345976108371145863237285427592858478512291629156440859038901473017552186535211349172683614303102717403461424320124884440153641837869821930368847726087813677364169871178514311930000789294138050552806569818083356265004683149882787279661038076651060271721460478923345261022135864509094457177535844204499754793142286562915584661227273324747428248169131098992244574762225528839258244215230045589279825144069441848466289919432779107785677760547431031854650145534329526361698088824249715512531401678475475873428213144696671281271300529031874886317927498996872433770502136937858117993159904605330812155202440216478919944446101695909509294746485798923398663724015405842650442522770167834023991247903244225760539255827976931399944770570197296667659136867407102495238057538694019222709051625004181499944428995764702887005271706987006293536430345781314281946317762739241232184373166127217185693883416547698792252734433243551529599487730388282995114028451209847269594317099537562189778454612354064413475097159389734636924462841866636051504030022541285623579361465589628293975226734346888996020619683004462142530700249082549731511895466894191341063057753985119431043762436991802244239396318060176608197235208807883036386572385333912827079527290606067807124649580844699807000950432165444872625752920519058518160817308866458399475249325976967242198884694932339170701769110557021018988922230236666808450371836961610547817969157109965763207589916841776412140710887823225973479258043475997653934038099353652620788215785874206690144518632290805430263070442379631043507398433788385326275299819195523304592440022405345021726788480389862356300899605747601629485310975459130628272137440059556210271042606027264709644556926099801143622589707599841988676989177123026404168640713878037308595400514306206572608656203605425384769425932130929288488206719911412621591153672990261686446953664773082952078642545281174229767829522467194600411588655546362590187843821402657694100522191239720401084911618542277126671964428580892659952119151069112951194573139307736352824510161525275070128820172303367847652556030519144531209953581732303332277379261145246047089579901639297884262105317780662379470247921114440733460650842913889170483917732429230239464201626709318118664558298524374636628632399330577786236639957020367523805369821573256742000688035094175474998553481186116393668959234548135347472817025635835196984719049602158444506258792534207650797467841565126477910020702206177549220123206021770350469824268949273568557861069623958466831458133369125869788697935050079162904863533855495701123518496778755745013569886409397941935079364607437630953895643804722342447420000567203511652809624069577336826361584710409884323561048720236442539555021051419573003204880117938360388438562974630028217701209349286159900977722541251613165238187480047827171085617192904316241358328929750669829967343768031208205055211767587569684510242796573563930605172835347051155372166510302222628016308598906045081127482664920043445780964459379777647147173745590055493430188958434354237652918408233178401187861929192542604339608323889531747943142046291441074256751915040935952593535772202849246333284709223062033504531215155193599485337432968890834988883009683001824031646035357022912089043758790620681931914255706514996965928906296835953841200070563137133428441175503232292226181535640323964809483621809729718811107874172961813890322270225203461812746642856089378937135796360140028091339724597420784338676680943856038201369616417405447675681552214112187990953454469644962320772408746444599897316633095474928528102653019913325349691153618213319247186495882186928058026092055058485063722956238143896680230454689214586366553462931931766072681621394109488355188575643384254595067549409378594283871844427810132724176743889694205489432058576636596401149675718853409530974842079669719368346874820375794095797016973525638427015257301033528270036576142044416653234534315318271063015072101424523641340667398171781595751288394864981701544800322945015657742630409375729428433218225336039099088164713069182392338025997064362110880621927879377005350455781599807365290361264723361403398117065953144403915983251325273896966717406184257901052266004220479013604790579966756466039284294047336129448086038596674620574676316572480315029166325823024283808521731682697359238180815639334467463264420768379447362426150784772528644732322720708023797178374490036009201324454622190742678164457544337223460576150830198781977313029884389913193249040488384256419505210691467698239023236756549006059246854757632098141088570675081060892626938224035625394486939283142894113102617532025051781963453339181890439197416639046279264454097954972890490153515563955315779778124099671252850623995719907330095764965965332533890303693093125460830295755559497959477783849213543461404465639809468596592212643364137009804394286378842176880360830169550890604551913012505435072874768419096714019667643496148565750852064791314476316256264441722841384472606387802347496480845545954848238487936227421511779879037416702366296728534930395756319964052476335232689413689809690532317430774033676079353665120815310284995198565821168525209719533822280505799305139823966037634438709443626898948387286036161470348658814964465628589240907068972354148274334458888332092573197760398888590240615247803615456457060797832688434402576409763410641812080818173516231623947146620850458997249696606226078370610761004339123639834229550103617495616398606056818858524861170770496850359376018181805130552450360290590582776930815247323954592529092439483516395922910032513568807516427053408534219964214632808655652628803640649345054483839438098068467719070105268291519428074894779475303187686494031334051975263525544750822892766532969902298393749769268649961343515676784058858815559980022926788348384165141873086315364242513617784907226784009328038603790530905961523939068692841208504443352825076192174127753731419664826402160925075884931698449401231726846854276349530939591512971469672246326542386501586318184944532521434889517119366527867492658263858336849974884704673429024224693695205674537943235711541108267887269082135744707768425345894426676373725694791655134979450829338886934676812814851575942047844381694362872026279304144889666844965393863059162237494602297663882629908355505508639125743959729305216941435553633434858276225898811032646233535155544422076870385860442057309939101109382897239176581939583194932165817668822448613020760994043590651511875850041149437538921928841736280611700589609644580042784568030844637986755868459272276517925428823658755307831927537566309886375363067065854570396503851907481064519131500513652326784589239814212600345480198652672659663636259984111409451398241221977892579734730481069906520406126732446080982635975822020382617656019663078372242438809726040069951274018759698085388349524174651265647941300605946520981514802580636517520650293324080082322081537314508765238586779364368280509187421790207944245131339569775105426610139618151241243248047676215671002628108004213325142486651153408627857851557273567966634171710738831187258195760950850900658038643505420442961867921711320796102808568076590438700553023366365975334421892310241938558490011151845286289578983973369851082656515396627702660818350583513459527905253264821893415801031571787384948947990948330993852217511499967373914139043352543503436494398422724122232900979039444834686204154213492952339435856697721275740976740262776207721405822583294602464229250311289689166124530757186153898872254103926196542304304237930924666272649256906526547630392736459375982354811338864352317712893962203591932259262202355019277874830746180622591152026497030433174601855742224770630544054887374869178381332219898262865038877530587524415425821586670974463233371994321262654984851563741667489253219066180007325429169336639310310064327290033764011119550112011272981468380927468163329577937095538890827016146161437210122238305378737703394661190415072961510898111156763995192781179739515979155995163323776703978416998324704705363328146191661199835676052706692907165400326893022546311916255490890251576021666157568242975526590095535761587235186445838045955050508762853969632364731895468290379513431912103829945593202848814841759818542750748096055799746709068324857918258255138405390490391993493460642356836424569171245876464351876728715163571752691448094067530286688072836661281704737320021778774796120186623492488600677232981983964265576720434260624552456239226903651917105936201087484263222439795181453905733186359804817749612127046897343798900854953380984982580811057274338418792341840734888552110559054881520751964775175762911646769267165400345377456747899903973707190685421430488330640672917844228275972505527444928859067260433222208944397122213188562648170273173888063414154512436129539964976849030101319981530247252845083109169151090973579050205182200532973551481626852678067331036227624512163314261078175910418343341567948192548299079402610498547748939081582378984338836733233875040390373462466010253350341245950548641037557252356844185847668140086193367547833995465767293662697314428218952094887935151156119579374987991646858409865985740127997950954033632995824597683341482918906619505216135132987443146292817592897635374902013372984511883236948650354578257880549463500493020132929938512564673188478681638743208989475905823298641390400537453900408418373259349449280313951239756672364905176310448043126470693078793806941967673806221918769307700424810063433438024169917241618530143581781376166506362392796908328205510976819890690957759158647830839576219060269121553554616220290682694299521042026998212237647911674974975874154650143307442548544548849221975258911170807188271520038175374529712863140067597476930396474721611922299196533685960328689403000499615996544350804378422561115180237626284605251099042541347375914855776282620911509116630487459736991364156756507683568747116993248829772784237307606622273135995209503226684441212613907996587057968110803067447700110738408229741699157737261568603756684269718307434984475354143248415109334869642105150913708773677541482634462482756745005264021152417038672555584754882840854204744550458885165740183849099577232455374617134271763094743164441752784414344406784237394128353036434618230603821229083845724384891152649124838500807555651293729037700234649300357513143540282649237404253842454270196628544118597098146350163531936983287998028635686116889286460863537181853781517462253584723904091004217425694302011302372132605568467207763054407266699323815016234651524883422511147594157557057431947441529094716281409059126165057803349422760248556298369702351385998398110699740767323667357946834648297338543368763261569256980272268254356203103133811966317540671612206080210941691083489048020153399988902145309614718340002160158213744626064123000789725743656900865467585981858592257471564075426435171808464032247025255790628573120563635449791556534370726822543991309278853850319693315078096762405122613927487967557460775219412033832675186317301231512112555955414990596023357554836146658220636163354785523691540396035153226393515049760263259904779020083475741829464714834811771767907221405479506255904869070820257322430136520522917681685431346482390440097108082569927875937012214304054822076716190703562436385012436880507175853206066105538909872194475762158989891587888642129536080320896900018671002908911682293541898247426026681016699176553586763712897416568068229735957973055018480371322970501384422976300025362064037367797894314293199403280205950507405059508164973351267324046219978502141208459520779541959248953409285543855733973133855577542202043752549904377527951367639574908560988591184562644655660384703436425461625441260820819629439342368293332799038289907049785085483225180685340962068099197844516971816220307001130997807179381921628137964394466740691446920224518649641097370985367938480025219954976614549923026826677569162915761562059192482675395489471814302583543826402987545041812095642974225769733464574112226374972144242746047817961772343712347848779043543144349143759059979596945126094561313009433112454039772210468700274548787729834917014808935021271360743760974307436877269199096393798349270342031428068785920115709515718534575771911886972225752394101475198327024232041082376650679232572293641465472147882763312680847254199937762045051056320637564557239777031040340057363130299556481033199264067386195914978124681945611621424758460959826356453888917000453513462214711451035879611876841377875970950089608178290592267475919055172021145687047176180455856928404475563704057135895119317497763831580732997651140348196392486779005632653458102550569934062194419761202383300245379426919168290464941738355738775309451612329289489693471147386482353882152746336493695498186336115680111375269555161039886113137457461126268155022911933240986594936405121479382929254443803351074327419064531117771168429342705303883084108966016210631004858694547988564982934457025014117925126908403593569770228841232411222938973327743087167292589702950924002330461580607960840202955961369789782537066543760018421004794685973412502028457997053577036725339159375029705544651981544534409741402148586477060884477106987177998631668149307440387197852848452443845126061588565761347923343115691904634150560949413661944026218543712655513165695492353876460838478975743300574166189373736582047793841395565501079201321033065902256806730801045356365600311312548076645490211113891828285410456001397844673275201987244317380200043639522139615620135995978433465321863394879028106630558228729300940111075582754419287692449702957980033094404654630104877217905918102596045063288007486133138770113928416628361415287209071567125045486198738847557255509210704784918219716908680180080789007550873349501693068144851154459098404221671061689386259456369618254716806896844314090436065046343440125859259497860741214819509814959502779807471640431112238404038207652280849949691072812393689891099892277758747213827163029121071711393550767706336107069450936114188166925845152973431955288323403855606929716782671315017042720424465476180737306645745395729665346414179460240015333536541374087264726449424349040857744752490409936093887360571587136862321554248403138730419050732175524716023915038334313297751859325171308020342644901067875743418031385758918916769453091972147868963755163316173798302540501038758082339147032562005362487283623422080778568617961705884968987835126797480733057535189973564610488189594231995455039816333664048596469298490202345793679607866950989497994986008059010569725522344181648127201928195951597131141877408900921853120375892576496667825187666940091817392487582912101190620928013612886447294129637446711261899983656558313813345887637608797993704059555513787995108896007756275295937236528996007758142532143998284808536036107464718970444472107389384991504434126248403667139294969978431234922958863774218283121002584392127003544192587170904996427467189913688519639592045055473448222255450459101541876909654474944322521419603783877801952790805008101780620663029252047655493766318639912858192853137392821686638282161158039360126571753337767230238190032688781148505465594400641051534853536042480038074593797111339416489500827478325722746068279772174318944558622279930594050756863148365181978136315357969222088520125561939554953906974418002301854635832008132475877572790754309579467470123784060708016351982405693626681331440588006093833477419441717197279671107444038057901871695989063550898886671707002749606370853962247750171069219636749518385398346282960113687001117675171087519830520861432234308703771944103821811225350224244150194157223183028410921492296109565191176941617193008810936275085565233928760130017923740755380292318281286653078078647962838073220586788519312410142193716938860601358511284769233289158308581059986974999191553123395190573364396756266999613080734510909474920445799504504787735080600835543840872177847967426173596194541410709564825274697402653045818553740838806316713655659969046766640829125842588516724472709406911535143917255975613390562040611172382817732452737321559198508168005293282383960134326190247643656454518061399278183927569635591201491215691513709612257656540809799456831077839059399422545798440432597791702678285409746193219142052947422651842370534241710860600588300460084749383677214101573190027744493764770960266277949510127023304463933358647278639452138894745853591796891283295334918873823922813974055854865112988913332064017374839701510796527887721269145044911451958187686044722967759401940665989188865545872899922617884752209578163518959543082307066818546923257233407839886197239981938798005264416641936235565191369907061791153666425850639649619144441809394506124303473467266357224190094856268925922802974667612372068894566357492839118334004953902533129834864930301586579185129813519769149854799506890881995765016818483515596473422128128416345723841798574787395647532150290743328585494979022569440253135187399367392331594847252803163572419050062971720626219990687400288731416912329532314559210848077731673563839042602121476066265702757498602569585859396210074612499875677623389439472000866188403765541915595874853634208361387841428303749900572699476495473453866090515280131729489738657745972102189152417674689100957606143575993410748320537005064464294753567044658043095047210521694648600995559629551727553351229789556109960076796479793246416495174860662457909369704462047676734326982582639463216471521290082843674859618488093243188451080905947373085028580192497124977357547500734773776819441226590494184172620947457954853051009080700776332744025446306791220237440187106894096707291488263265503587419262951218408566447117720735602032426436916237434785776365661529851165554850803772819027711735604611482315524831428527313879040014710768091135670544254784957121760368138982004753937449606413100650494728253622639662676472955031948595969640099280581328755066882209667410667855458865630427919184207220737186726620801772420356300406114608944135407476782249418199262288794419474041041832176231709845921526265682941936835103015378503881516301077817151814664984204140863970043640118774970704291768356478922611763547692262254015528523476705398625422896498592384960679522202900325918050669558811082739827371642791722767896219095839865807713771630686740912388204824140383025429334032555415405657163138806983161883186292024303942384015727426899626079574757644403839638932795417581310652949727368143079174910285608582087664283105354866942412196329481392147114025854246023271898710079008296586093197058867657970227142675790204268845806660763369952617228309451108064218003291949574605946342239291902455342016897102851328519147694060463783703799001736899633807406364015740866220073824161826551110625648126939485593779459158293849962184058251324630562234844082656405850604601555601931563106171800343515962291203091948326032813102974125117947268183534496675986514070111847865349136611780176174389500921697036324061859400997287496965632142962277876860290948529847608058413176453423212146164827007653992776220464665745730773038655344053190971847516296752284910369205781696428092567570844295067690259676763049704384955570310002155888697771737301992716145656363355373073406912369569536962529063159563239541288970436194213338287084057799512862276968091528346519927022775531150732078160285217337412124208619201649551515917723746288642805030223156081354123263968300085997325535783613470669358426440971935908754726735962375385766229619498250542264752354459864914967729434234339130221559168366976753299552170533187172175178277000884576925598521347510722141010264502377358394996133323339388570707899215035256915571000252937819618326050389145881452051169148499034755322618929638049449355030809561260674018148605071085236543351291592984596773348557211590605466956626984806587184368162406246705214667270361116906046376892524996180796133586506437690956917431655018749974520101369735742742102083175582399933975805892655609152634639791367745917625431382147757511651107248690383743912977643903870465818722760127250092822826186601286212018874819648947790295246828047596309393126557252973398645024559888326455934415761388982884243093386439530676276528142359235871568545122669755748562524524246664145640045145814065157797386888992516023622676421446191418246703257372041620565471596723109522353739231513417777001585649331746064703277844784184634493194827867668022485713620104403933266048996645598263307157131733983702069202833506803864635869849176983006127136699976776779826863820470957954808361739471309041181656277008686636824078436860847565840186217540972688785697321202843990165030407917137702012489791103296320202083217837640775092552515490571313536602761235784614687158091873315417963320613771363316141726455776380050755540904563465209185666008043432523701725021236459072058561888876681769611909981847863992155273857234959221687912416608638821356871659113457002415128019931139431585686667116591510973881483032199961419581274169740320730778750534523347174599604663660029445957666498748294274013394675054608078151637407532355491245467318506385793232045796998084380851418324439854892568251886581714165560507908252994918859823636258115193993156640669066479806093007254800057039943554837326984366448994580612375741931423003639564745401374256846777872076623597496696455084146231541948081245317412829382741469453169457829520034270924634471717332902134932226140509762566694110164403588522801880562710818538497287119849661250509064383141063109169880050246623415287846311575781796291933172651990463074779534663876727694479871823006935907367487588182110700002280662725493701246817289424358064071064620946982323756072535889031608466938210395586948957668763813497972554132480197718176191341697105837066201146920420284963747797109883049948808909806252875959468039799143582502023720631947468444114159214484374172896871485498387229291679827462473255363986678988026112278250040727303917831258628610409774843024316596153986798801077304008463000950573241761128971227722997721789704951332204049550494765861583928204681106432545306918988232727560665963980112432079245427251070020680988947885995422404471521846414097192351810497057471624561831426471181977455337136891102873030514823895676281662428435831197817454121358593398531121962377040809103528883418579854881762299051439153445163158434937096527895027182550364529301769210283333282265598045035491905142775182780442927869891378904065163000507000870294657999900078202880682207528789497096980969246277147339874204822445416737922388041815274749863072431915723511932200821714120819173086827590379176668871299872292720150997368471279656605900164100558374049289717269242862519509931308897123078102417187780229602943165949348013575193834332189145085922514481216103910586321992469142084844667463803358950565038463948533224063419039648876442558863654968247983903591822404739051215077713195475700988124065331276247488902342352003869111715982142781217750928367592832548718994483026837812373377208242943743412319887333698901749834080908461297599516066204198648648563898468557149076597214574306005769040812503295649112880092141711645593407139228361874459851767366115650483989764929747106041199691042725316515760703690666337206143765861709686945996162381213176054529813350069415365883079471718886089191648172892724460207451297929113344254193715861641587552512545645286108974699728973474906899724561353011753292698412829363995680882791778179207623366284843282463937382398727412005973365365918240260321292606685776024823954352350803635486176371413505103304022438037917180480252791409902482105690064799196251835627635047353724768910121372938347160479270126938667018163783220797677452467036520563565666479365765340023576350104647946482348293114412141849152202552240836939395063918253293111499594739877886832166291434540321963541719074081291686983859252928338926208096448556426735630792498459820642651356613880279461557016937852179168526864539306291691123874263707282228940545624306508793309774115851605960965485050218338857427606669469372495626632323357869990965552668588726105971937370905132175293948784647469505552402661714720898574021588381424827838619519158691421900800475470765611573070886622434801900659099827468175811676644050373372327542541937544663709417532930104366548828153363399994470705735514774736323787133692580373079242111366548390346180055467848908461174491161943345286127179776691479885097766086781365417736205296853122177793824265956183497979553012616882501438737976249370758507175116756001012661592580480289328241738619399206970686597152249654009521701978713379297469785835565296225305887975908430982577897556115411531305550656664331084798630472494439983357312281798123677324158482021738759631662948920743429288853377344227898766707192665622378434892341843498219298526021627447844747692076221647074836698334264039626825774918470940461663272550263894129225147058991783273683658928528378653466993813214313583109667993940391765624442600948028355075174592550232693301312745894409871358845414846797620754695655231673482132016699725553308967453819552023518012415833689194681894388091997616914891034520107795158372026814615631225673412189920585085021395763008159353021987685684379405882424030583257928980417553834911704919048574197416429867014353947865242323851146561452739424183315419826092607978951154747100336166771384478744915979024811575614444060653382536561550361786026778306136244766801720573658578334771183141843648665704798739436557157294100442053019032253658766270938328236202221401205120947651918004137817160514788068859877757210159756873049257793315820570868223858049245816644139833212228773473805223731735682715636330334312626521386166251515884961837662090347896424092501420949564961953762102085630111242504205154430827953346528712610838769026751379660087164770760265176977954988832474827100490307617005615906770618850506166403016605330950978253458252172872762291601374579072528294000989217532776232547244072928171862403994379314432922289395329813882521980750863232060061101627144145460047782904277977424294592403087151763809928314208556365795526101477781010005692128948780277300866923328644729691414801394938302040071932669109759292016327299765772092762624522838163044640120424665938751009764061222535241563008624108555136046447706229748003610162815400485584688241108368227718618335644319894379984594117351371545665723218658397707341669485805147095777862563411067973706306739789427378932186717365610787643538306456654436327782158992175164474250746975235081315289283778921346385015194439168433216171971115003716602479482136086270722329143938405590730107856897733736060458151236996392164466747105290914660091561305209313672087185725477875646856554538329738430492814696520715030446816991043392238979811598489073509904173755651629615790719773732832302090930429283871379463423206914802325360028464119713788291024853006041532220929112702573434336055466411040987733138984041119077547396616732740425071242759543626332880940801464746244486230089634476284481970333784058045185061387913256477911408443567141122567325085218517994958620111501640902054264148264645938055707142732998299337406628477217748873892896668521169333789765136606190929517600441174709190835981359635710449505502972799726221086222244274056244311075714232019206238506643340474716944001901705580788542399521988423612601793760055372019078162223479679803845772489920215066570066782959755836531028365961301773160255785275484563484882894884529497270406287297184804111365065863509486816379675923726332822403383133750013384725699411193767850661993643607460541819512579004161223525985533744444494653667763376743365309290951878456371080346310938721084240815620356212202902574387173040983325955241194295292661047619821293251012844071772348291006878557412531228595093915590247519990987303550714257015783671579754616380918438945145467704693052876131451293057169928979039901662948708320776517036498226325891931214238802390666113608292543311946035653008342025333643458914638664397377600628769584322622980210964950466925760896169468659161486181328807816645603430582704834979952679082630294586114166183420222283241538967857346624732580547527725619672269051816922560735150904910413504475838222952906986590462694802063447389340759098160441939760301156758581741880597508554973865099689505913849686590414833570173794464518186644839628239837652972627839321476619742650788594736150973056426443058403446811682019642829433106914996281911731454012470246686816931405711740540204298151956319222543561356486606082477497452970589086333891904366294454770874747728015704452486225070773282566828591047551211059153886910056042617509238285883331100135306149070495025204673105097245422526196961158178240466901474761069481353723631292565666714428878150450764678079462682043389131589164982399780565890980888767875651979071735184270722413847599460094676486569289711629458465968890704373225629598621981954481732437910918745957521372546001628505056269048077035592657457100998967371959686485876225172817754666279664040565603428396846096163993475907146385731696951596380853592340524304443188275226359059579591604497002468856463141786444314881685453563643794059732023112275378832838698778213437822982806682961832760384192883557095294539173291336146530089085584594181790750259278139777722176845749958445744617460354759082049261304410701478486683847683684719558247052159883425765890249230062134628972471463091305503660556668396085770243561107130972605090267904383019732880362243290126364045466380255395777212100176409416986731450852148598563320521415508169161698924586795716842303770987733402812162173501717750931520491328392500822004932494586442122107633149984263517920863153506245207757283764032319160182730537048501006911203835052454031326739340249775089994815189698816558611119347932934186200227037886975152044266698411811445795183991447213224601662465801400638878256040233377578839795997666208496921388871899114630652591143070631013637344549518895691242824053310607132959370797079216880029967961344101630553456436880536586832320825305594154574106581091565380596464782633275600234080952179537765100652084806304763857890399867066351330971894667642322930979746043507239633768607977696633918910228625757325584179035997483895407993983265772751086537934522077405944759401014461956556255315375806718892404283739992143836362306797633477658619190582886070752803867416198867458463181386914859966556483149686462305506518668956055774378415101508541183409243789334894803351697652194713492201595827257309503022737704186194849523948930738448886847116265620826157253507132799618386530370642892697660606868282924901846747717548702040346807454616017973167420692121548146027621658637967624348307604425888989337905573323911470848988879606380716246204818300281534722540331459259249843383940786529592585211046803732210158231116465277197827462910003565667421521602547634287654772200856386712090694057222106653913907732335745445719193139533297934142033486389011041327786693619344056360266733275694504069434506542441388059366512413930449526257559374094587235424686443402623513052573648872972635956385246910278799868439836988010768093610268648416719192006045258400787911399198874061096095156217788615153777836793369173171618820555633263653316164913560805637089490698941183757679374883549146625888160354563859593726283123008986527359832877273027492995777087010866997534532607868777770526500012452008432630081387285000769267797815847575382955956561932791840560608153719693747900787272989813874701708667400895372759173296076259250490185491562600367863479399093845669721214575666370561991270775187362843450592670450744719508564496469050406396492905800512942903781697881171584746477290345570385019148631324444089852955458006522973678513988818638295565361758703768442857578802262045243279911723491857580890077772500292494986719362543820756328457544490036807739389664419337984388274919843527440925271868790903791841335915866305391617948501814504750754221028159020830071069123313055613598243605158405622269396180245443485517272549760969345375240369071274447495667948931387324163902095757319634915534894377457887179134151628483064657546819812814283689074004022376975140930605771424840695892465897058604205293505534693820641146238957169740730509563539325608227332531451893145622824625114926960399503958162314134048886716923736709235338004995715983389015575816279738795347080456060264652395488657784265185789237635674320426960782108766773765374942501501670733748533353420358944390671514934412358869495761728854023951226068254804816700356752211990427581245040331021557380654404776815192286874822956602403409569276447901198042078456858808548533724422164758090756599708944025372901769750008780743143691842064508448585482883046272230542804953994771587236892902587686286003185728164741806315712360457799933379042536024518382688297327487306152649790506979812474418081954764032963242931540150860406443668932362093955125704532539319948025537612690954071426850256550681605041358603913297149176712408481219985372504920962360436492803097052567078958471801686008886515754332131725265049717953946964623195751449421812988470372102757686505470244564418517336260098467613091389538247441811361729104440338248363490152502104536072182937690757479245438696902255867135190713815894223284277120489470546964349544548836138916042639616105492401072400306993699492899824166121868918765813534236329079356830515289291135946218452333108317134961261506863035159658404708402098200497752828225904045796087315706509551193858978503977261925346356451582094517333116041762601709604306069315659505615893378797883613474345233357429044267738522782953655807823939407225807827094026651385644830210413068775600709158664021640164492402346095730229888671897137063217667017563207563408451318356807199799872954050346943858666417970740531229607140722013607331671373201336513501614922010932642519038690350565324210881269218368304873644755575839175919394233708579588515766562899863613660611401856495712249506552107339604298305135804829085085555066265913197632215050445709164635125785204744376675147354753522644635738092396087731867402650050306623270275604330446636849162710623090610674436105917598548731195261226187512172461621202330311793615305528540934665180190518389349653405049900397449795962664133844357877828714712874732866898155731739558735426743441434986048523080234981285472568227457833734548448439293208189634024286858076222656573380213324807214496116645092281795145362503907704787183260955279024947746499029248613408753159929023152452514930799836535499936274666598425697660236675401998751860192123312151580813818992699683361505506672828776766162546866188347760099337543951153122105440412949137917983846807386221826025257438349331991795752692003072309546071451909722478093675639627143565763534779711080355027203800025110676890887764911419382370221017664381325752945618558554495350610406688539354164465663586228019834643243323220205473323021620894461321805264824272663732811990336173328490525941863420257408809464793595548667192528583532859014308034629209470126287580411884461556428355613035427123730306332018176255087815261452821965178979212956752591326402735091357096720306094160197910318319337430381753995050459796449585432743002370506363256441381292854316609053684844135381404390310793016657696752373922080182865905713854218282350530416728889596888240349565160868294982547208181405870364643103575842166073751820525251680724775730851806238680864581020034301554912260083818858601003453579913815161236339925489666866725547295219824720920455653591243796168371521580406632844628513260775953041696275358054959325443528389083360129460028441638900303584614642815417353326305518895683032615349246966787350603042752574123166706710924870042505525173998085056968553333527437384187613320050866750227292394791252762596742973666005397857080517389918009876503648010738329450611569066248165394741796135992171794570842066064286859241862296157878610398845981675218183214800475873363069142191924057792467572240179072848352242356464278799547337900933276629195279320334049010007487805361748599991651256962313135188050521657360797021419927334469582450502531065799711163851799635846251592957568937059895913085981654255678102999381084334312815691909613293076946402975348672064318253707289159042731619582087783051817426791507475834282485872723682306844829483251269578560910473258447164073613165018113887542573654171077219482335233199633056149263732533575533637857308104061216763211888617091441291205709526419830560552732041868503855742163887838214381239254379319731413461405157485199391817228103706597413901345817045510110386361361435211117944653738359304901845544701115192510912953732101047457670534599373450851792807656714249361568862049501593257453691537407650848494335009773723297371210980178357244809175339538822848983855223536837566513796586712883640500012854002284077111941594220858734126338441305644648063061763323979381482694776528937421146386043076919805857880414726756271205300610760832065180513561678940829470892012807805790648359728728233036325501918151474440175889676735637209337852071195180292764015109267659898588927893677466919929098740598394179651810879035078987093052808006545362559726978722757810756452632370238927196683333059815424057178091064320115807402574154892672444483782655616067812285051337847474440166611537298651424538600233018367363475470266327778327364921479057870294669538446483679037385809381268393055008225168480686745782881123293320481024300569107790111615974122756591442020944450529951434429119652896775846921232212323686138754390838546705046213391852276574875933989845358599574354089403468567634503813697606216896444942966939273926171168270102602800361019199845077788376482097893506173112307613188476456009383633813734260640401861976087074753899265367586057317408071294853758721742991604695410203995487806524168696899276850863739964566887311349168914196766709689242808315371341014105532254704315605094754220771472185965788194859283651860983015827721686781444407322305498130368607751759171823005647775276400741053220517766217613004789876844490010972923190850192819377258669241462592630918408501787456773727783325452170483786534430977339048644470330066729628666422246110735813615802512006844884414731116859066811716848611526949926966555302529128154476237927486208194910148996518723621666679251586063404654788351603142956862004545542221533300511075686189353598874971252413120141464137475443319720037837551291031645881664258224285267982598977002008977974062637870384107943872692879199513058015752127746178777419803167541672573820578781586669535307015325655220856294082361825810239415918139363978939211278536620272954738675306973340728207695419987505758383157270019204676800278747861778456046939601725165904417208034886927190299197246431433420097495257730361595973199125616828833088135196647915475209434169905383370447755713643131582343105562958251066725767392301065927287346034977887182840470081937353831969200344523581947695160979043822020616636842533142950361756475332230410414254208192522452594721668433877519633161350172933707027585264206081957436153127589888377917258725580703141055425292910183347252501600167889946075803005268502684198466676853660584522455799833160151223850201105358679990001200809370263118102071577283732049520687465315208967206530094752302771947700540419651784615157638644091801593328123921951904195346260903274642812534403825290700080207883835149576071871658984729219741013878845266038238906829760806667543673634328191776347741531758907371073926711705224254153432302618499168506343606830376548548531270572324586833937782706488457465852633752718504194250973564355144544694919728098219914780482007260006930661783305146259513198252637583464737755175001761333433125112536479171132175401168123414553459171928614124960145478321495914972135681802215970182756085868118693834468602477122282263257421018833629602174950036052009111141688015189509374126110624193845080782384398611037990651448040611811194122812965860119063715631579492584079016423761194721598910381186396299940177005716226387637383219712323050024439980437032772226541039218377719658090929029293802954616784554319096571589084183442619442506534662434424337088173995565166235236173972513195391002287096211184288097395696635606117529170268716640099028919842879622727857647524061863788868742352630174302860991338835604346356413966094986326806661052333866421441478477950637414168678494141034631807235589222452717467113783322934076331134340911980508416035128366885100288804819301425368054410924648501599813698655967171510262670945061221483825489377412314641711012253740861166245981088875070165205404371938616947770745184686431611236183726082913827228750307843154238715958828120588457142824574943927743123352947194606235534095048926618252033217204608617167358038892168093701079934253514166599814159111397040420317126913656561878762515454862220732534567145308769000766604481537954272982675695844040271052841823485618989029290105538271380652859381381302009206186884599618271927943841628277522849249892199187455848411812267887243832510736682413494128996426359041587760124578092069226450111811796585490210516663702984376401119748270073161303516551183991697873648926721211286845619134149142076850066457140751709743150130778847486845074613660581384181898517579588221669058324857062194459786239561674368223442214106454486312705692658046708275384483247908720360344889249254589687340480145667959967468178522823719523325900837682082696804468057740268476299602556933289733742614621495804849424449164800608583024551489075038098751843499392014147387697587691114958067386278834203452717604041497413201432141879175132020058804996694938969812022304212020719372488365427317640806920661849002172054344908876036831827599546404834979011490114552404205322701892771812599871606994695985229285167516863915239240071282947124407969156994025137031658215732329422238479131465888744863126932172572173301854227025725807810073338678688554526917281537986659184030342301518497367192410031163764090900883136911021032569108502177730077564343541875013176310020329352473457085232678136058743915691160089659169476914567115190763974577675218833221687800922658769454397289997576807813290194292413098413558702576800324929591363745319121179307711420989682489130983407315064915251827740457661866606712642246684300138357007110288855257777328709161260736104609251944745964751380848630440826982596160486326368930943049646209446398266275675166004815252193791582320402770180587757854575360309779194736833593868109919198597254711057986312447284466195582732769568151679633980030511285451781476918360386466125972527357641906578089075353317663864827856357537534022154639649408442010932561376341052330416222148262979650565859042742876548577372546476711045753761533351531424329199564565723480696705460494871335941639651755692875547215193477902396708779290665117738590965835372503591568082731719048549376077369261183578405044759995053216246676173869242964236056319897557771519743589087917088210206536595487426902437793654996033015065074808206012633675653110839448888403718799650699451685025226037296357740552107834817291806297794240562628166827611190134309099611638850931046288370280493771351352627787646113361475624900166158583103076164319701912949883933299282033272324221815855971236097563347639111616384339130577083033426040913575564271101412371707487414447309249295121259596032428839817178940244867131679984659346025072949992341744139497973452884785553786857466396578999151241623467215902418695086910951077453663914295824259464510552768758513592671564113662611748398661014769316234445098920782543317528724548435372814866836672268230342290584159497382159144418786318634112177922781588346928701993556241485887529592108758481617454122685443638043710305434482044586186631674122518957808043711782673591671790424524438549786457531394460125795376348726624692833486763375809850073586515562861025220952953578462744441612424436695483412120813360955069305544212493808369753013048688055681019395263344974485437383759293475988881241971885507099371726272166177273390711918635121866164880784766672109077410912566096613054069966856121190148970673986471828733408746640610414222043655340776130601660084364400140442155350672718665969296468042133136572782043104924803590307161468595929592609309418004362090251559999960671686523673298900550274697187129148855203322911964228591002057373094131414384114918790922276618744130429991127893897357693494352460449471514986505117421169915168319450006847038172252762107273540918942448169625442120259748933399532641184064746841538479122120784210822910471695386733669776401457233834623304947438704935264639947012123290497424726349798316920476121684982512058117059526264274014479094455045638762545807381033263304326467748940802840830698959024307301499399334509967791066690381816360897406587934807608249567325783185380561689584294307681788952615006607818427654960602728862948851622702686403999517047948507226456181043366696453572962892032521224283862627623858696522680471179465050319396819278643519391298288440826383608635534124857550481242443243642509296080115341075242918578990805113304641038372801649322691799623859650321240887772393266065985606806833401875477786585270345929493456834405734765114995715986631306820801782620772955043506363933780508347761910807482719810601277078807502021471227237556601388174554448317705760480152649375850552519449237711041991569536696852388388468904155129561068510767496927776190126382221520878959812959452273149048387488568173277901212836369431888583196741878219065207598103779906227735970259339330309890755015756431645675858958886793670151504208101644380332988830949127134471851443523909622743533843940202228441406978510181830415112859699856848376776130509736381688357564548270287250066143458929671221332667415797290697329496560725306149159558716828849446389783783398797310938123583385784150903649216814950582849603337666550359755966923877856448173223492532782453557505201116164364405960201927259358526247421808331394414286268106721468328919327647277343618290127411463481566191466008792928727245508860194063278612391726971187044855769000268877185241467635609558266116579413203378499879061011111224613426258904146819431957346047956020640398428492696467798808738396776410499251901864654587500954410820831820733904135458840045822066821144000398931494728746277509424703428280982685431313214547572337243160733663324626061580789527266986956766664057111960161600035065849790163554564465164679463082645462890334233014396247575611739416543320704681771998090945204127762945597891861778353899597155873642706493800595739409394000429058555373438138769306889985493964184126682363065175679339005526293505497434264982160142230753255992164408443762916105655309388134350346790515939360891333242073947425126436500775936597363612413891323834261211101664098613345325739715392437910500260589392380813459024103077595997265705543098500960265958212257216384987775118809452264526366671249554370881080988026646844952300806764732540483825371174665811667681846055173925593784436680878974364284600670034142547894861923503103360964717534050454725792001285184185252991053110704855417890761463149887276740074500706814599602947037347269321155685048019441712310605784340091332165560204210808533083900303208694571192292117563030134953918391111131942603489992443552563907298725766135790721860286341734202446811480419697823102370104325181118693347470196958035165333791463008530142917507028126832088893041631010608112060279081072358102402413558045227605847971947674990799983800405351194260840965386170930515555216435241470616784475996470952312332569542041742603500423660249080399790462313310332305777783086755834743773332990480236438606193299534675413576490194960471406863840898127473716854139333431697118626060363470661475925923277236291455201410020939790009993631268217919306454138372234460677775649072588700479094155416752108725729755356028095912597320716428323153257594355537615830980757290779907108740400585036672944551950993037617457900394853390875339259801844667608578552042271774540319715010876529435046319638105900230447161914976585681403151296351771930324551077389051775021534435727963613775789805779648440860075616634876160705675755759093965771690659501523888245917589158955594400983196402844625323018246053681870987676254087667801157173960502179710164188463256823200941290155805206817916881616807594881723829498288553429387198384550142504063614623150325076614188113591604536863566573426354384407896129037499197520359269045015109291160377938540614789331047819542424058692457785036812366968449246842699708373117944236222364648146990072889332701546657100315766904730762759463033820734796417597519630595593591322534796769524510921599686470058348127442438133895254353268315306802709133723263300626092405979447823432328368897903688153284426327935620733866389309688221669877455506449473678349871828100391105795578077269289220907027635715148242932341652532809274624678409878815502911311904298108140923447565339217569060480541637246660788780167095571227607586083073301055671556440529607941780202528189838070533296258293534499677717545901461464914004456140588805919322229428261638008473026845198634266386739749063826418473037308427484928864732532742655779130586898074255009670315109256801019525768830308022590569793819408792198072343041145616046543171482855130146670511382744557177560835187034576464364390253967314208307576096149837527922493860800413324832072511083890346281943405064132545922401511359526397298294605752251875971911743412486574110902333874549021221363381248608466311876837666270794806661102945125245883209380556969666524511757641481163683705220682000865414561932095721239515071120555513808163128084264785204115291162627328351225116545651517587708185015900520052953525287552985416121754186916203043684968713295562047364024712796955652671260224755683940555585513509034203236651293895186683152844795132028590092336156888116405595707847043448780122755979136673185268646946111661271184137884769568490616292294071655999792832106040159854292784675313267061544233719597242410490599317668479907457135062341319711479063036020466071200736555206830283525375686502346788595649935679983030663993087783864570403580967373294090362653486789627516997632746988621738396388251729623210051924486209499987825670439380965829171659860426927591771211161216052823918058970922558110826683000556052283732215976661750818843205128016323005844352361891487677095005023931950236634582493245040994386243924283867883604961993232601203624215122217444547894960955295037324155407223134615552139838119722250950377995291374905932698860821639681223698876745759032482384230345149755325934831846078503879566136836033940103157809930554371887932490234876242921392427264186218880506708920015997607382783769846155510290430553578617082993098149270940352866836693420272211085991352345801574486365289860604490572420194084400079831071480518823031639057604569577770326464912616177078073655764155262256310990974214898997517038742021897030595718149733827814011173519551530299217235607666595098279642021024605606021264987933017353907092354164917465877021122170857342371458524651437477830825563227620383365393855703293021625178822091636261913461921305436502254196144714017589588828475905438207361723572069037329048970402054997847331616510084631630784350649320226580135609718699375486297447332922313260908502669471213217043707210320861434578866808329110143760538550896410499711495114924516472925751631852518960281810224559106458915170687520535852916365556041181121108863845740099549965096683508148490119195421482390109634274447950732708121011703210991245570150901838599902845599141713562548258057526079481087297095495615598694155487691999388308052216145082404566626222032810821680752481379156728182751333241095210024984156197843124425477702354364733661303493033767024331091350394243793086096944057581827243686140381922344126905093435101766843405345390235937639679089382478299862278168069224627584317700229942226355222747686766714556143100347280418485255638379577205615354848879133496858402220264458805006845193240466568108757476098396692468204397468508058447368265113352286059683693334648876666112401833136848497956835887075148201801437482488439923617689402349053544849430930636014874614309933083708905794482912668027374637335391855911672748714012630669783495067832394945000752093074417829108608487982952504723530757363382508462088532639928792679077729997652102291804298009878296158797899499070316849056739043776346347956743406469173417827697068970524801357364906800311365218497202898896827310412561975842730018868021006422426070997161792315402993499423161947593261112267986199931332509553346622457892211414501806469923947712780954138214812508893865679060530484557885282766490585141476613531961557083528090932302565970268449666199074271454905587340511268542748911795613821052124726393397794461759386386243611593730415186764807642817096326454090723879187996572473122439149609316606867091682369888081908321378025960257127130609414103762706687747334660574826831123026394128253720405246541090796268539091170158456965087753433549143693682210034775748401015219935668935770667322885468639437750664539395851606674301560669257510405727051412069815508417041344918651953902846344113009976355480623623796388361017958068432110267056693293384431308742234533321057639173396763786106369437403515658287753245843155209613707179866404347162233113173108127741244672770222063642425956804799221894430508403440997977340940752137726372542940382948690896011132899254564651859591875493005635204645639654424296013958172451978831537415497230943091851983391993524912683219942787407746012950746329552400774032557066135863854253761059465007642803172564266108455923397694900323100407104698670794697965786074195287402557761388686351447291050724907765811671752079292975205240590011870919623298305475134541336184469237971461939089803014628824830379895644040312175243245814557952284054883451996887190760449176537650738588267883424803677165903964135418521559517630961883275925011661042607671481902966802062351692492498410218647134329755928380195693136851445856441775626838778166230527922698758922223146602341393636284072308431258108646307343660899353618985935513081269538068851690694679845810990383910636347389253096032948041358284667840295814726850944814402171755169227868216087367733486237977937378404080138552035348390607385017348170016427724366870228865983449526355318194978385414983875728034944369593792845564135632817104152886216862419102270786292119864803505775572835027260491548039551369611061332463921005232201706425289385665246670923329727993692357501339066105602247781713450284003176356373877215361666354202225623007278747217021129231571115767291275316352563557581339934621384553646605258206467689167599940084877708809294431204674326991778376318013794721806434012311976934627475124488617841441506375381037566849368017582014355516451134645204521225216683152799907353042929418455986548343347795000034613116427102819667646307521264136084363872188361395488620084830297516086407091778252125391589215876263187189706621056682202739508840155750711315076612759758688856097986837991743909056821388501995026449690877754293319540166955855783969625017166632530608202532873776187396388734699151372130117290662627915326429265785175285788650552457273989925905970504263641987392095801644861187250391026016458088576985853643195903863603368426834784321091878820564336029383171778272147688160517095722265113814881831145511816321196021589918338839563723934348278561744806004529273872618118594548786778429912760231141107067249264215055677718983488723312779969449057949935538829802966841510095322847052493147341323762103710492496588818962418486972703842051254032642152668963087115360669543737731068086977301406896457876450820035732747890427350811063769932639239383892074983478573738862088304073032876823688214035120565258112537427970759584517877735608378662612335884204304388352808915374438804830714890226845746324582954724950990675974345291199866775142561884947387426326586213932358539537350336548184398810160150357981238034466595829923279610812194397250405447299670215754328054742507366738145217103562242585734540867978585896217896850501516035347988415443731166075806154010652143636699728415800343136578546515291547984826784706257062628185947721370844663087904724546554498128094289515301486460877543101341302394742977690041253983975808829287599374393096380890558479639483786292375172557179086006990180479326425018406143673724550688702336702505865978489411952881986366854621217206703568191585215348746513728476399368823116509831039510101926975668850559709838719314130107632175206686870546165902089265259267343578169934954474857743260494573498203419367901832149584502345053356889860152885807754076729110470315114954666134286124855514417685062570636789748356994515979387110596948136087052049467046104051703570859923040807871501766283770308036542832166916823659566015041837417087417068395335965843281362479727021675296226381358737065996895552942639370103514136552305198605785156221644052828428110528471609145291310378196958076335013727258210074953985923376166419642839553426663667334889955688404527501189141856255256690446264496623821868696309984976355211461536392813857911104230499585881119313701643421399208032853083285212787673758366553141648652197835255003568063069416708377076077663690918429614268593236392966750347021479332812386634489500789458429123619018641625081396985334287918830876596458770273270938502057612205935077918384406499668546278544407364039070356140310818010940788663292229828624025754851296355492089678740078824016782148703800338201060003848361391732018161413240636751740103621664652833793924139458088336383696251633057802557147735392939643310725871575977425086979303635801037431706136026364341028830685113565243838133876980947448066559741537883986829154075590034732226000748605212292123385923564640674102007323297857311989948201670674422273998825764046396077505348775289939404985520165172050527542115639460613329955521836060781481339680904577964912856928626339514532383546638777437913695917140780258490148827783897466136738020792828410710591010513250503555857493390177084166775591768784179011933452904073106581722845230525684777801404896335963780130313074514695366232429809269528636375429737357088245377605226845560558970281416589331700102601807184836557845137337688228266902474632655573043983706300272647550732761239343238314681631319548623634223540838801691134427499194040684789924209746963094134648479698615263132999645553805556378637896212444516784192083117959803073290747586594685877506481319493229010813037824524276423272149165984874093798219833526783952556808088363603689647022494436474601665635099064054277527213233335858673651856181307717847505664051790125815674494350696419988223556723017948104575432044170961012035207979553965116732188862611932515634249646165992299595065487322820414976599698147870739900541323187117927545552292206014065875171857712987656429548315106499304381502881757251562460819563518166869425649859028403145622592200012095561313785374488710798092257763016237836385595500693129492707648135256456241938223112877005434016966135587992629365884922441821978620113683729107637502457802054403230099118937176610306776263606508003684108492805199899120495081171096038845266950446180380101202276755380354811120727643719419894621723413794927624325324472353818380934885378683790183777944799069913839370741553474401383812101558828412886970934897967225868480162285802697393044140361221141550839261213955312665915777844346625306662653774215477996030149472723205711907793149815455947230299489330167305886129598004425694737483864185226832338740645094864541663355014632192689078669404191368084037730863647310109181460790744132165437199092683963353932429211396058844901535389705060624574160517211495423227873515012206948413546033107112711516296124965645668831073942888300010994715771340922320679376113502904780407938847498828806295265723874161027733161247777985355603228213655499652616999159042508459535976726006665113472833978315721762583091276746505977379725364419451991264672480267073458918555649233802832757506191593644544528203271905636965704511524089158560345349821803572136948694264370773150689608200680894474943819870743043921319778104195225588450330398872129042403605496129395118585339490499714730989017269203144248294936876553629817598649370140926428099512827194728877045971080070118703333774018100216244872470899073881230641872015011581479183407852058205801140316898818425538189399527077409650051720600436162457342624543362522978256932680817651202587328439023283145801727215303795476922460434504412371803211015731875645040112682167677194075794787359457941532618220702096357733550362046054322136979931579299917985625515319955531631197607750198111541065952017785274749137310093077177204770976184061115860106267274315241084660533605415478145173688977950330462638373062926689733585272923211493766186903648315513511085411173251087249918072428438324714470904819130993685031638763696645757794394740588568551204220361607938670011974936241417558162321657049469728881089597216899260199368006582026754071591988276970984705950610050866163920776192447358117825676938396320225364549889078980285464110810616085598290210830827314243809415984216668362016289373921367729420876824665357668602637284528882397862101468480267301176648365260231531262305938129500674032700582673432197450773542087687068681381733861204826201773080736584707708814287163789635331542034594977007826697265135221040993288190201779609079047833004172451514675546216457228206819990952766432915327926585097407697616896058604041136148503372632215261862579208653111720603991786816581232574522731753461829701317503990758693045466973799773072581258417954145661317104151852641625109301920284403224575618197459845827448885613229113599034342093544661142497085566205058326258763612790089670639246746539637496248455099220271909175135758209964458185298750606004079878955464053578045103061040602925994616544183570992158595975780623274362147951967591004550078186708045600840832021751552846868298826276437645599812381061054893247323065923206127159542148247953156769774564939948840741588297115244341597814635141470337074186442168065593116373398822887314786883388811463161433064359543696184303949464589454982536771472647555413037454748291914331498112613212554288118624658494761788622121358455848157728211325174949370415064774146944258037277341566081405738095937005071493999380325785819354381439048588668746800309136146291831451291349081029403135147281908652960021111789418750475013666104799031195219219627213303938269270481382964541721661460226480732045574303697855120065387932154605915346060714948073634520428300062490724250326448936431810845726363925526580025508129881395468142621903857840493400284222775460717409892204227974119434228591181639905148325240024323065326401577828329143470744205595031636189292505315534716311258619846884831199214667236349102317545802771926830959889669876766899330683052937266101626384897995744538643222133512256148982174424898414052768838149238668846799522162772387771703261039225559675405526158015215955709824930854462094292155922776611758783614100726796304123850176189614525051860226319638299792362400569252719527219350715221264833435621295568456573344085841936975047696877031406391053532672549621863459276765496727132954198098510255551606720571154208691002720894388819971804655225060626361787447601501170008560552374791280040645934988830803223304171018018146519282036576910091127419516117065300613025347400810799583098301141907552150836379523991785567504094864731511951722403360708063792297954832735010027953170593315693650786044375474768484300001265363096388270385455238560352069485334624679365984658160853090490724083287021470015053209357560094999792226482031550667904817734399498551142382859097390240591173090509973420757480708595891899497601698255237049282840898089571530390700352751486358873368677294452670930868518631323087431469022983962070400141358437454370059486796931541282076367856381684776459202887042304165449037403098827364762054209631573092251576474019981249689554922002470323417604396915228651502394591214128383798595074623524762533641061405967939458029411889965748507397656972576434139083071241553590766421908019958829052065320907107784074121003160526284313349067661432069077764110135592933464798862165807962736708808836067400693355232685182808104193842901408646242358292067127243532318853621966990553534660430084052531979143790005264801717383271193858703765814410693251489961008590892895059444445798146356873643132347611126030103658076337669297550875087583801016185388044905777585225083209604425642386077851211948846619551071319676259118071059421289306315048352476042660359368183098847744251604872700706600062693239273913034596239809515000276857556609838733122588267150164800466826465712464147056891855693586804020185801471137407765274522232741047759517225150409325899713636210206526840792911123183402964949004450185996936084017956339680169941215107976336397050193729866361998800601104860929245846884692923605786914398674847240455969016675091009915856525663535773727043970614905729320110434593742343678205211173884522448806805733634139094188936736994794671969417238657519222714230755698299294811130437261528963298175994191185183321334322433291584936221951507904753874450907687334997812370741197044389259162199969992873406211737018501770018335806779008505302681089505508116192613585736063333200079067485973789615780998215114774817578395217950386208301961997978340642347185366992532897888810132086016991944587592095682752241534277968322218029290214838768781097682187528153805575967776150532041530233124115091645712630940177489804767415851123902143939609138108067502465966355367952585275113760008503109148733062409605079631555051540269923253093522205580468844114860248385024548397222426087058748636953283913899746924401755175459529345001259990983152761815104443941539924940737901543558935924498669557770333998261269105643285781376126113169575130161627312344357007396874391214386212045994954997291098142932645060152450226293212906788346976372239032703888105226591126036841666606753754384498233681517871604303370681357890783386039773200030045343209607569253741539679792528211026585176767691944160043570777212198539873228330490854239684623967803408964522300328565032110623107628965145839617997558173853428728017644672662984292978439968790017991539864606332606541170246456127653093590725730634099548346137576165760887522442072403950050549884299505363774627697411802468456934292625286712333191846622199569218553614086000511117610094628568537268959747334391713450613846540903348633353058375149862748266683848414688078615090523976735146332401273971122785026371493699467892267824876242028540924682638203848330593218389305685219939419095188428796205871998740603877385580372930594040774762407697542524336186092062641907699188038019016583146864633730878041834137681428399526218523128817235926043370252491206826348541562329110179685199141881910932843164030144060788939624913853976608631664886236466966351488877662845949349581424149771112696877779018733333574618861311876579267153145171486251745695005420799557721170567184883508336604593070608659724863554444814016399706669503830043123168942420324881578288537840196999130947813349845535295409014784257688202195392806565399181300500876831404214429554377327275405198474490561811213100787942139937082809463735325736178483408225935067869721606329520269140501287268200848878759089252302321329930629618103441365592833255757875383432661984425943969510767685328634094832221038660941922944194689248585082311984361717589974620583630400356545980640826558609482702432476080591409247028610559211609267598566385621341147822688152609829436002361045428842196618150350535713454359717828448619316374327738348499374366595426632813260544785560511276516561586855089875802463427332221594774189459740458111465575959116910073707301950835195816173039943058486185191822779120611660814456742094193068662389854920427173166684399922561463418734428540908395077703971466304635406678767616331920446511970238399898846298066134211881833380434458635756227413703139014161945203703526395423848628365492974909597927898863474667219096706466324175806375797309624389406911332026147803541527993575842231595390495714001397483139298910042494645945154199175947244351042561686961967096341750405807423842758082589611213372367798260510225443148487992946701257086809176044956631259123982127504350140237010203563892639324432012204952222267355651478595568954300809619170722363064238832307862368769782518367850727232282861926134593310165638609867224220498775528405353312819955239339073337383108627009439773517311546878818055541692882813557263045694780467271757458716985512810856008571665128975976475320196515179923007207728822337110725967134161310036003434807947222097670158144074622273890190151958113246491389681653765773396775830096699288736656430744779526776282175249296927289050530953719511500243550799069192625438678674964824774264807762479457276966642444740417302144679952669966944840783960664353011656557847889423478961641244205592924512354761154953355435901394966690405672546042990419237576808270608319482772189434337434326932103949214316177362338563120822958272135097943222343428506689031088718854155372192761690408739894958407765083763418266075133015684845302711182758724303002976476548299105750761203148270770137287957194320562743213640382759012655055312865299824973197044060904216331953222319172112114879779087633013376551772314519505359044585904004878935650903065614560047296953237061632646181067744059217092903580963506703744042898773603248331343197734680891043793791418060972365656570645533088745614428052907654800059357847570439150079976580145027460733098911756213390748575890643849787190687654892658934541004951915226074323482671324126336647980011898510718634177986211299337845204226896400667943299998801329406446163566504037518981913551942964084760842598782918309952254791709404612178679349789123204803318118785782156438623153893603683334869537894729265112856712395377288262626045860157805893669561243684720252926232090751433262606074015694429120798272687017518115305909659835669583389162683534304743137528176277150124340938019795896310947769880408311858002283828923376948569409949159370236635208936731098368528600598354506724458194711524815363359895748377012120417612490953152700205470919842291251575366875126812146729714128013004733281187606285250207830737727513343104745192195718323457486868766376628851099112797448939189301794952581780820330668208341175814524909585851342787374115683809042582549302776072994111304094139952205616504735223910977529968933156593072022365408294466480339322020140781832272606169836131504969085366450152930763327385201428508991691873847824264223849629477834459844422063258063777600028848552168844204636182553932398463070078076608535491734059426276066494230241693170726077477115897557397989585170273457875422550325645221981696452645955374844725716193127858917962576988176099147224079089954236755727764129724486136723471430641297000145652101333404612218874544761558687665575832018026891789776949626060766562877814005875093777742697474549071755455766713870878275398120291272217114803411072254999131698586724574701449071937091210979210758688298725672231263973678381363982491861562371131546422766359857176378235010655484700465580907999840266164252808889834461198712078370162628075296522466278732263287715255576894061476314784953043106477903710823056938070862585110984966041728375360057442416958267448229325319239917768697398366705346457810440452550489537992819394461442795031670192560532928648049587277196587125548485752675099942401255057853599404787040346267284632400942781186810197005316023157857175155700991257208752538557202538204892201930508930316725997957407436037870453087319939706213429475231166659220722227288765507914266349538556172599215582477066617298374479240035642989075530100509055992176747829038001014449506625461519534189904103026791426878917181322681550645272480710485802491119745594161908769021123567465389242003753858031942597645865986756948249759608450771118978337608636656375284133626985075005979310343871637932185068310349065889890474026093431659080060351049562409158238896260535603708154884651998964047886096707270052138379353746226030890719104854627165149980655724298752028954963285375037219685539334538960848846936282630952392913463366639090666807182807464796504949203064899943036220562785032512714946661353026072849087703494608002827086794323376383246686018082433857348918881587435492904823217253580150882642056144126403048995872815221705712400955786433094163140318954727676043017375378834846608549311207380040216887099485252510346212757515956141587874796953491632985227000372823355017928488555182560037214729782214370886931087283293395374656965948499609021618696310926383542202646704318559258841476056990960088338322503806082914932109677269804042836092337449120939412262242895891896178154441797091941558405774665250015009799694948309794423339309079068682973102872929820597248445674610593466662383508498498115437876291123047198861286208233422372329529965519338626204298461829406039977885481417843011352066983806967121800861161059738290707032480287544840941214154316671595260874694653820596773270873365620121927898174472670532777616882744183824523804181273605124060795063930972755449951551704139945328996641554777958162031378108017373865518575933671667124545624784719619571647034462681541049222998423468608601260542141117318554817562900618582066384621478670467586063996241764759116135153362013181802011545574299258615829464330528785494786410909858127458797662874028821622955495580966490346773648565651643943155466181079468898273392836673291376238383150542818849571680824555119381753560943198658512667899702346677336675808554408909885793301223480479840600054273164101217769345666242703772505086540221188569998390722766776951154513554435496832579514417542889697417071198714461651425294425214482997573359420451525465147799540172825940010475743555506276628022275274218336724607546963470928732885161283719776545457229034306894654429075568442789912672346717753575279728229577431938976751690662826022226616601990312630524963702284796890474843393610809429162661340596896917566441042422732950884273316708605122230781282295195371874710223205029798003149756981963368475712697090882682351082055949575503773801256078626268306811859613962926414230893225478909339876456470898622872222668311299563810347831857988755528505221963395058845697619452687163166867470970701714814603969640790235759264128115543437066956929413131242107545594344461356515057943076069502704866914389901761596928371686438594355283522762539551745382877417706651094230686111658903648976230986290153889022120581513832202237160551576310726960381289401405378151497167829757935139032262003667497288718709610391992803572967343076103173193294694110422737305378654080376622287451089907467317128743053461633201439760167699708658067872796990754319659379976933277898711832093611616699350916624965169690119891112860826142613553425838944101499125421110855072107435000819925465406149318818460889804085441057218416074312379381861661468446108032434044656918111946311138557060976806088469528331539107597065262408198647993213194449300249641724025549602413548856725163613195274641544600244422284022766943256046743448222244184682010584948295119444405447852157989643009130304004530701981152108048867323288378412058418434839756934649907472407000915940671813019424872801955126990854872493207203462680439332769512964057214229987610575864881243139134835852104376502271414322945431616011000373572017206411170947363320826840922947814632599097230279571056492517970528631591681880775194792984169723317481977461447625136180439698396847299745780460998139998486323715708485435156323213337161880376420639458265366466508853531849522983302234384686663551401289736749951751089067449048846017219266731597850288544034995200416666947164590239805034127202306577046045893023577852115097775728994564390857434997318678803882587322422437092920449707890046711741949512877742175299800248235499992386501221032801869296182819850353786660234514204827567396241209033119518546408328122905456575759026317154268983738251656332953280524425452877558660536500836158502000118976203648043050598994336850935861996616203293929450605315456896408625054809400997110814286416872014027606784881644486225145101586613586537453243208428016148746703620672680672521797747710265279630180794427746714507443125192470732979108328067797121572161904991870029168576117911626251646194160952744688063904854835743758029033379861141439077508852996202418438794985770914508881491327992221354009657313963383058147630136148759843432231154452340611856448539520397436737737530363803977475114099617757676658018209169152290788397813057875452817475629084308495769906851920769511242819054668675684243335309382429741080379481720495631093844007269164040502354250170781805591849307867127459329522684282100769372891880201670217913340082761344743421105174903294557571699779352901202918203916776839290874382070291868509188669966617936650093166873119467087581684451252587495181870887498954690625964912040507211000963649771229435061996457259347425662983617259802063540779384201874902616600725227417157267928605051073139423105699603663621307914390476529043375235784099565892536329641496833901680997984301746100478637099807157231648623008251272368892654877053664150180308888561592012579220473278951964176072932270419397432800394039572732681983819555014436310453675838993722552974050621648239295345483103642763057492742211450380999859620784236448492283253200467052584152769868304545018542055912249401299455734969837588339989480463236400991798511297057928534548789424130324762312831517528959591033866260425393764912621418897192504763531613420448071854838131996576917960075953824927043259128619091088267603486185518364338359052961237272490090549351277709494702971783673032045258571897583703018012586265167455126727922445878280559408310163551600437381585395134495650165694984624675093396028899440067506466851902069461593318102026615624749246828631325796115951571663440677897562098747789665707773010693149869828437378747146523452715807083461086942296859552981822000668361993546433672746360509525796630725398286679154620736902735627105357361554628150513619826553887755127717682971604552995339313197961490264321283793227931476747283993082997350766740849236605123276888839880848843146246221478326504506392116813061445336945933313634009468044451832154684131875167610881191481940378331250106757879780972525712062077635003670442480708535038308514599404662896404558072585537007314579085827858621744324431412529112032833240593471739516733358342580114708673429858079312719550438281631684506137370029505400722409390760490705302532667838332863641148682325018361229629914521015637970122382156262704657151709414559184961600215649459031194911279501093937469778790642558721794664178048001356508585555662150467105528025735925983521753962320247415673098795066662216282623561856900489861454371224965274161969634345463843254799942820507029709746943073616395426194323366965396320951092209998026070626969506368354914524759404146044498623887145859303145187040473943925190884689496839298031720797657178219389436935829585263747250011661230467603087923369833930460667715741129555045114971203132983877082403451908220356125812451948718115040366566728554460710141074319724250613000409879761530167033509276390952127727510352901886412522157105071393441101501138750851734929373903759159931377695084490401866817552614343586710141055522154993781962722967560317459480228917283416510258182464443459489955444482036811305789899847500373438742888586332783822638312472295876996614468447769944074643073843228911332845743081979602311056157374838766801001119976493859367599335512067734034340323071466546296070768800862125812089733079077409285705659736889619888040161170893815122627539408818809268137674860812099152820037548622432807438523293654220288244615841058639228771502930509325800419010745431813161704493147185436162593931943765874133214400908629087118512650430713632839324350358081171466750471563207672874666864804520677155199001734605987435470727676305835487024447152729726538118515034809154260280022188807950863697704242460365117431616411263198458634642419414243293752320492071242858575699997750186256497424222935298579426381618641776757876065733808207814395310974509295828231421278703801223779292164240593861916384535838444196085436425837538753749163934764146342180785489271270991542205027373967362006066536111417569158942098805683055752086176085761830257912085921215054292183799831741066972053234021960889356647018670600468133907856856244040940532064474672332435160932107888472521940435059116233492965207007568434846914703715735852824585930304751683577683267471414696099629472659135068517007420599597996882445933882473222178658072293895315790595629964478969189601775931535093215768154276093417646611628963242548374913845840472457626652695369458580619585084422117715330610586273013871022906259988014684839956929398727259926499706668139730451284916573985152254001803764484524540389723575002546125041064957470018659952162792501067023803879211418655110823802123553801130344931818579784809259340144435845301447801618518393419628176186297321730927162017055636197314793875127542919151051583703383807194258711554363876229248556456183813469316309187236366269587606617599093863301184020703609996583041903804878884390946773068590637737831343276472792263095842666595449971248905202241245558296537910761217519632351389667224883262992302318420066067672530948110587587988555335885628315343049747250942793797435695792553821632809589395390459803818669482791283394830516639492720140697956719166286607093764755427173168706787500701596392430395961165004535320304925889565562461297706732852601885841536324930311311244110593839624468011255102301879243583478630710054099153272016520559995575392444859755199225662799541993134723459701160575885644392589752221557145683583087427751939065544886816819864859640191813979840237245637851505896189506140315794165824342398988586429402267301987111526055102501555746759325327428143516558174231061536016681029132774403573524957957766480582846650314771241003304829078411381307347728926009934888957362868820737837054580273076280186306180786299421021778555201091522184732680157514972082139083905407459869259770920556907152382453812708314465913999522923003697826277694994589802429500637676038255861001895019890885987788089574861014541458821422860595513511705440909121012912217994382320960909423450047156854747157451968375165747400772804938653850320207151080597861815596392365756955488615290525366947116882281265460556944040151428001897463318850557395301755953571592981722623148284208313974988674907729134291571459679666913838342939706497478427094973016202981848448225301516756641851370418929559201210855321552929760267189071520746490616809593528671514412753912667228186032582262492052434363423762208849630219314001868027831623632539377148719382975562676184495815153309555391247066053452833847511156277146960401990514687653981740307208008228366585403331488226682820793142009549781508863281516297472822952379218881354041532621608216608808264125368900916319118367052370901315215138918518752005126621549915564378172338211183423958223134606435319910238699349193919257638304463972199098318706888467769601510135096123650184208569844249127640971434604714152192191960733258628361305592779719916953446411788686998937428412065784212560224227651083216588456034424239041799556146587682124101622383539522447056835582702595025405064635699573582786156471000724283606854982930435298305312158134761372300958829293275614032105858027629384933428067606620866222742628398710540142017252443709057946147107860546742992586380525918112818102151269944438954167207292540214568958562244291651545128195426626567716971176264755704362433465660561976608798206915330328439322691726072262257208924124813937580035470553840275398115060617960264758546057722955082890437796220164395358172769910589672138539485524412767734493135153002510014825490298543854322867863802108690442550352713656059547727795100244796255266179087722602640571554504294480321102357691676678902493174719567038597660750835078552970248359559320710406151204764514129529022406179154311674808815947159324174948581150202204338907865402938729531291533684687054891611951469880805281729220814304768894095664566275437764788941400195243968608485228196193694238086724578905551995560280677068193689804533741527872655014022277790678004161470761653870115655595388750442879827808935474994938805355254940654192581475871684147260718368681754525819849996763347826648249745715416852834424886178938513276283163268869994731770135160413273395610756424284392739912976271613718349770859025414525416690516755696140327462448563812870338600814010085536527985419189644214428173478572296209973409049240364055811666132709493838556333573983847632227073480679914726142949197949346310149501061810139029760162014262727941169532913260073987243677215697305852472469569967584689612718015268812153236419525768664143371406419051016022933914177462417889767413239165573867750735323784914182044254578927029201452278698482987808474306793197715595059341233380659477998249202451572058803559476453124899552022447834629037616718785088866173211590394319893331926205779020837014826676248257436466061429523175773043908351631956214330918060722303285519688814579922213592660434798956724401830103867230285900818967297087963581787849077482004110812503059861792967875715945424221577113259772949930453921023594368058334769558699293629546575414410083755189193518959270199712190559778296363139044015985266626720805078341151362181840690505290936051848301626518977663100893539013446676500699951054787440385948624338984383141915722130949012065819288012238657810959242213438420876533330760436610860502681502654450103912770685459444007941107246830902011197481135435621100336670574301348799971123429110629562165831323815691470870614004222640143373676154013418187387033759419380198309034388668134776679786362553270322155546273441514001791396132514727382254668710288290320563307507039148984785642065159580185540360711489355388454765983738150253371474198716316712763271274241051340855917834387224708962205529133301861569114546198022022637902332358305582681114616120267061957854081509940396437950548138830099680485246507523547125452827092777258111005176704159479022492898418543958068034406033575317752970631400017987692124392508960989971384416448586967438956061014322399904963647867944579999485271415441995896811889310136110100431532260987512751254027913846709366358091098131822907808802052436486655495318201010889828369475233095318782992531470468073568975287411367440366275396732076741449947013655073232997712942614915945694343696452472152181191130770760166564129681161758777854023176183250930106822527199302449027732334666509207384677190025322171575696143966040489776853569177071587708770994911443617436965135296485316729401321246375934599620687983248485539185752648716402536999806463285938674501449281421584478352025490867006720906777366950754661029620000277967452227990796363498351959848096965080378317100865529830665286473741090455271523014728855988338466047547708862162274828085283281379844037532657941016412961628079886261364236303397496379848046721379091727532928467326016529858549091041604484272132150685179718183340669995939208305713139426286821602277409758354199931744825997350804756163307615996341398103835805507802614199206489852102817230783258942082579655361544472472085480345184470666313643250193120720314200920692611777776998702527171726787294159112791616823671875891938585636580075586324098249871775103506839724927237676169287092423469668713906351006402569475226004424578597643076291603226003659894794176335501819415581203370077921152023431121416402542746305033012851951500627926187136688668537041328680951402475093587816798796469021721658170691523899098275366267426550265705707795050137240114879087692710845712112751324748555436445557966239578758970040549541986564581571549850291661060177123870088569084460993797038179360176481451947007195175814008546334633801169827896087209443819908028649750864884743402689716154629397853330740909067325316135625708291436306120291590777616846614041949055563458606588713385919142715299255841951642264486818645644457349633341870776097192701720122872135024013527030542161628515621288523789484700143217492284552149103786704083701699016782280817484031123075110740111092597162084865665518284930980313309392469091459592593789428184439615859770152370196666364563482223667516167002958411761652007631532386385390796971192728532981773913088915990328137845367955910815593578044789383011426021777563684027200737302166138072677247478351019358645095374704190869896098393808656367766857511487399614928445083084849289300953366222070333037199175528192733336421530677345283511450250322508892598518191682950479930079999754672516324973836054528333109611054032725471074810643144156966370976320237410640082517551471844436564176800087766852972208789233106200383558554099510376813994999211166210979340976491328379227285292638000778554758289588076083975506213452160797738954859814258721431943511889009398426854535945554719103539891729302032181387913028867023495752839078674227885523689802250383757508837235004754150856813228735500097182553274360978292433845512644037312962023753537326291953150712455766129294797487451693311403530021050912703987992219909442709070544006513811402381115343677531559146895925361056248529366880285825953965118564667676092013311576498586165191859551133804649595856645642426412779000178593522416028228530760050840684624042154902768693185348360253128514676857319939128077359286988806562483480397715356345177973162242981286168786601026956008546045697641769667196732761334004706703669040047997045517091058155385685883338225377107109634047360421188651440212439036555830888098513453751472682422179991690511517477201468779932330180804277246108171002918584199791212843415052926239237868510752228917286757161477966076774308196215437062529594427450364153944307346243177776943930445975136488284711003149870931770449993102253873318718172456577253336919242174888334171517537963776919801769809874482202014679646294135628720887998219479792040073413883451637984313234404091756928975198596319013628602313943212433658388978176954908504440052966845864226350093078013037222748806285632388264344965210183197452398517788071007352398931598346131016222415245817681506567171497657901628230809268272979146461202303065859113762805190068703780261507572552152917153591479789406605855385078249694270899060866334241690004033307120996000099822988006123854735406967022909271240554832221282904683830433839806151435867560430977435306038726346307390729393169452367765499568449197033924696309649184238166087472538827664047548609336149810666113607826227462638506877667230145501371890044900814128957791799341950444771067518513172748693844025940113577968349323607565941406529693601851811393832107519864428906844661343302949785239225607693247853532167744989178363057626776785980909542348686468387752879549933261436298251310027580171906524090549251057021487489689931062041555956393892506108935583303288571710657061293282101021737254152892925484059218430486263810180555111215459579790209322560900153778967326102181564149446605271887570486373684162953668665749758419689698826456736411347286197250806874849708536919381467063017109885974387862912988706912573610693955459639519079115533852066364917819035945387370012951798617727848934759526978356413200568389878463676914061088762587960769733785921840198673817106642087672705486989479548926156869120046443400693522862388976806345668717509003886988767142066535955995104345961946965348337529329575022641942584938447131328898412075045351410453314964228336602122697107557594761237915011951839093654552860552021557459976041280311186948583881785653714042697380468288721222286424225618846650364953597396601328786117998568375364696458992633356712168976793084621104018803062828548077946547815251750468589040197488416573673139068592697529237320061137274957566198637503171065390861547993808514421181311309826102532626933832421686755878060919953753629435778883052101920119587266469035537917536587275722459068665473429464495542498621125304058715827442206035809486796653700542262573822587192116851179077426504802888469289287545531455850810448423990743452421629916640417481866350572994265540645037953731992317161049860578540790184371160979202154185749332164118215935486509301469296776662190451438677501466193640152275411298196410084996143698749622947892791480029074752398490485077804835015877280524455621689158586995336286858510852695506863283241141994975565745206604511581591984414031723034600885723511823463138934978413105580260297068241076478584906504894401707741366244259858200354616140225120913395741253217458901324272596639616724347263710789843579468462131902200243621914350767386584609819461274275846925539299498827492557888785345788871884173197148874958427019487678224978057694165238200168427069316040577376636360659984990777932771029983697038151423050834328698885678837479889236251811211851240862127126973630675579184117652971962456257239257175493471739374137285639713257016413891475441258014971271057900591344645060090905660895108073964866946517857620625962355155008344907603357806929955537087016372252403226401439658374525487954693993829143757142062334045676241884103090733790957112105941639758943864098512128523454849292737414235125201215440246816572435815848825427971232024966096513103226561862918649010227742832726673754287773409814170942783141046511499167162638449284071400081504162960889580551455608223462092164117143632126042923299940051183210661238592681526952040563862245173742562769659599454703208171910091546221976404089107301761329961114320375616139711866701141707397997214880419762175397111795395202930699166184935825407678678990600602444074230507728452946469117053374641862254811837299993396877886394356538679687624674007721918938137052593537753530049495283357648051894581412786161366983683404227145086591174482064181881194624465683777670820509344760976058317711610340696569700012345268037834069636160347563109912702193157278330976392115402862022397841484881281337611868987040198691696955962829649997829029981585386046477261414227533206219983142209576655992308228181702309698517748891642183850104253058523861949912752571149948998748798990669705985293862073586726271594300610499411275036524805137406027289152834071262177449502059791986650134130688263307541243358902534491124649031583345021515355515865812002152983482164609889476084563530596170838958949790687912463946511897585994718487561925484408152220289259161508679518252219162335843065122060538210298402164996281979658883319522392751442789076252458605476034718151486254179253618352276208401098989786204988508446582469530564038894747637422466069562110746246516424915562549864820453447383280649621427498443114686785290147730778950837457915259530940993888717825195250946406938160494001983367628979393169090457791302665991415292205035028273363567529253271295808606614260989620406377792572405075577793673944150522766683849284121187314803977679443135613586352445186383491360774197749916926458094460489468104169000351440044361919234621947976018642541557994297815326281487862862002726050359762814592696043946066834075845638880972825524515587912958800135001863533415559882198965872211117960450282697341796038863390419204901253637379339814108759090114257249740415316941415712053383043325478567300368714475646656907722034882280584060841791532665988994638790962827038921981050837577548108302402207174049710782785987097112494386481447775913247173491585595961766128328675060882264080492687129942903515983733797346076874314179296716158540661907889148668272385429491400605201100792670647247117263503302769805228339689677517056693466201210390439189102455065246204783446932967855854220614805650270764262336198999528633301867299897339805731344567512239074446201582664068072633601163089238709927972276669857650212527709529709773104898635491107413849365236872394162265703510449569723682329059878821535405533338962078464508124204268359524495409004720913064156670987950334761315177061587562765870238097635017787035873723283428630468533627795845552848496211908393208075344809506170937003469797558576498840132441029659582992832664613889920118570482009561731594719371632136968399775278607113156064148148681860810139199088547688640482604862890407109095581863527748746651320695925788203897582763039572221444471181581966739271774007521019883351447263622718732133506072246680021434686718481914772407082765525530320766785160600031820911961567930328423498364675402166326238969121840205021934755921840482842160350595661053688163393578729652940651817693217245551216038792222700184504492478012680765866785582084082703292038323992240055902196995698661207799506830545117285197923429708294035678098339746378092863508481710580248065627909330261450015671717577176345088908615859363134709713856627112542148316529744836406268515355325632701259699508629320668041247722812811145056654236492449967826897897312124149300548086807767374626185664865369615843936045984727418544754676831962224169055992143536964138617636592341450979622222077976435992870443423705684365327648209450805697449519462747947312366187637517010390138468302769436514361427369476583020738137639269380039704814286545560360057849158668074688241776472135776739581031193560083821178973840201275368878010656193412178108192138000854787310804280636228798146375238364042618684163066264836253777327635265630854284880778255785895355351562637144703414746639193269537107403597577328075915015493743379426467402393954241828311655391663974823719485532586463891746924953808427558147937087298981123626299248870393336528081828000749866378916782563175025088805699136903441539329234920659373683906404321778478799413019167924831382844331333146071199116187890387762994540959898346865326777819313979532039802812565768110543838810709783134664122194447845992750875994100505172114662754543353265144302735450073694281070291777221242504304035769734669913495145696872933689377656513724988383265171077589183732251382235630055048646959439620736933205637734842245642968098871673062983464931374326441734186857575357501933098789460623397739176400460797580910805621640383562644180901983634106229310474311677305322990260548262051848401447731073838900509699322587477252629854508475666131960367608488630423416948741639187313578884163333430693014959403159524272276655526421030463974851537651856868415905706407897822245329170374781963048499049226665380781063916317442630286032029536255835840779487764237624817396672433695928519920536761886738101853677338957164258492476196537094833985725212510794102279570046872960540645327409143400646341171765867964521749624589077812364519552861443408924760253526647002195698366049260559940296535956038775832294024540803432561007355600549244403095778061192923951992007325308783678386185266073466375154637260756042315226210798881309186055537344201866019607034002464657319036185847144200097699597224162153784932492175148223213568227935798465167421945872819410033493654981536287308708303917174835831465250870939114963450875866403894322751246104561202063281463325710429498787386258631772511138439826315967820969477416432625509425462164877819811458461220338620954788808347745997118550079283182342299757545605061516050626361143729635625390630811953241130216664831495239881863902656576128434769910124954785974772788854805880628152098695954889496086752707921602163618870736459637558943152660132178918808393814003624787158678816034592523826537302586883672759035451414163128582306739430043139653513473261398842074680068212205378442777883426475329352116399154130237721100154566791086877443348774040311449692863632115000444948170327796240115334026084791435954208953183334787358462661353679089299444608656512352381027774682014141781406874311160374586003990463403198505586111425949468545353595981520543329788444729195237999803080137817192942029252096045945193879956695312087806772858610502199060771575643150785781457476483769461699551824976562741953136163845779599328785439745759428256128303474988310675355640888483187629532531363317693891242853167788093569053126545330353717865377025312712531120812149262442832213440862050310721060165429683267719383617572350722317915095028470208686049978821672069990368070200077597980971661956168315894386181995231009074695064279434987179237133672094524887305237853181381554311600607444613932339060478950379491767020330653141386997485944620186945904976117452917464571955044805671627974374157057429418798457188596451797851289367663655801720599351646815811910619760521013734910441455447407659032749359344681607674124142795175975769725349038162547551024570827364753450712668524647776174155117444590947687648336432394653850848772120821627132284943805092896282779991744097898249638244689443677190629777667168695655942827070561747540046953144062579598524023269220520162061935015552809338717909577534743184102299268228401476566639991805715479820903969485138098187172709580996730903322271462470535410371305393996376951282534290739535717954805289943196770787152741712813119943269504307283505189046513361883117942897177621295872877815188414404242988424658498918375381742905038113044530943903747056061457799729812038291407870123319316845127817645368734230534194776832470308933566221993533987392334200273771454657619951298575786382694665035037322476955644217911073780796939082181362706060253497210542545619070735343740220039235006318440870313040571885459252521631253575598182123268260201642699945207517876775466083106037697064102614213602818946163696043898278940083450946729035890776534280208563123749963769467434246777627718463646524881138357101111349034196725942038397403891725975341526331133773490214906948732294728291941689500259243595200979322369084729779450919541986644376448876783637599045251265863677681855838543996609198157283528066266986568350050981643030824144629694311398067770554309307015626827682365297051629930586626728438704594412571539673038992636341335164689831014994870294021174820960397560497259535855762912194870539746842242952720071924619871306035303890385073999011984985024220984598183275364267042104284396265454120429675420449536857702034847513519293575147784053956563761721568554351831363339140657642936469976552340127583180395150597171505926868394326567229209379837469352367833423051893735951693626966129834690828417316472504923705308047975141940508421460186059888451487903284891581668119009580231942272161649019874415022062802001941571294422169891642955270106535086425357075254336782599817704055318339173135481407474669131653823788918191440595827433118727978715154815344160898420574019446761172832112404295524295419195091704862956925168030165493092279488320466783087820003629422947788375784383951371823072386360152812321612642920382219234922828261473847456873870091274883844850829972859025759867624222596276026185617919698630628837302420221530306807998939660576256823455347534397277350152958656923433240737641140651961918842175910830158056273516508467458936977341374324308647926926178133661170577568465744523561581782514383699587578089916712285204804004570690239832780209832143412586344910514329238505213112515077114366776325487516616040248246079889981802145938270469432035782700515066181968576303431395496768958746049522286529049489812776390133466795065570064072458918477458088239229212277915879797580267139049851658742242601754571358869453392536772232403879454705571614740311760820003159911689818112176652090471944713836761457784113302040877696606224712603991828512968159831501070277477427038988195739650676384957261376754108001329160232967623351563986038088501030233587813660707147051331061671833401834496236919070786873353524520333487380287679956629878986196326280222112444384308315958491886341979132416171919935305548748877222464733390264370940124462325253971553167019093664077350700833234064372399749719707471857672827889188189003464746674197410327583902233345256157832934381797692013015313427919065022468645669467260553471305323596866409950596241371398880817133924123310302970660884988228101518301093857580283744519638141074356341270069895815085467456560162530618300801923067482758877215689521667437864989880401866467683661256855739306057185238410454167172665859959629364329867830883259617015439855663774459379500442242024849793274098691939367129558859472875659809712931797864769881552520163851472484634233251999172326638935341739464337692741849203325174153644026593669847453847054854360293275698342882458148099749961400230431552296533449894674203222909957222973429795457566606814556131704210345285577969507435615966348100325128854667439970989215729919533016207354755737618325776035339325797972981277870443072711591939441444886361879446290231434865017322315992837443772769366980110303860263175567892308302192640983022596802586261880306758324110523858709531348134995189286606655895466116758999460819925532509053909308589004916919525186179348014303297700225110437631281259924015126089215582900210015431319357947005755235879999439504572160960705908320501261409315065343001822535451098512178098661651572784847297092964824951058570476890457079243485579648842390080843430678787799324121888353807921458856829769773671028541560895623907748004722129467025528672202046065498360116677551575489093184980586383233816172781355570455404261340249018574896990689765427767265841862551344798397284987600657819339998004352902654625624981240563185318571316061175811905666219031716323480234123341062998664019473136823628682322165096150721488820905766812028052261215550252566864707195753048666294150417820819712913864283141022446892475311770384962876149116343048991281309990962603194051177623055109902144443361748399670421582589500836272289248243998720523974381986674959620855829437250164446789227544284876566217969519120910080001047307874933513394976935337669817055733037235792646583974023491509083231688381914980026782093375836163191325537816423161304303036030577635430835546599689592419114447278287325204862422057194834881462454518442450112080416033586522254389761993410108459475943445746562001320091003343777612570344746554531870187079255530438922404679302540590661001503467290723039859426961492409023839765612534622817260237453139407556635791919418348531282098993795968875581047780819006919590852069284800713565390271148957833360361615625832920788488363040207747721046719533028197614970846026086769796173785926401435900151257646055217884325383284033886339871985693908643792897445805625456471856478907288910399143198526371982425015853880437447953120344755936258211886997804000172184512228969785154471152681357648083571443628639004765526785603948830858750513551644226893596449334825431619079893185850880264959467679771019596990715482047526877227934234049164945500498514209497254028776168761529028258038769193868834929117281362598015054280135993541209267817909899692569372963108891783613727222609138748176898396354960228510196945901546086807303135338833455844185903590661539952503522414159682709196089948344665721156418195006800810797053701090039920961669879345278790350288535089585503775209524477988834218383455425310212650601338402579013461737662848603832818465365024877675331802791197140438204755272604298392501447772585455019539276318121159174711329904184216707264168221315114811043687772328182541750075156926934543788241686056647720142266127438078230126795574849053045414594627003903427495487553514191743290594016333875397294647443064380977235547912792385061163007599147014607873562926745270918694103831149360589329670258602985547420527634678357698569115277661672508995087300013832134577238748647883482174647838140106228111844621162957687401598476429801649711478265955426861802598357112921921173552996057451140823938915530488801194365165957017406855904360322340559022488863846256428514685117323694847169256215897104140483384671461033665006580873135022655753545838239362846787498867135516263324402258655294938527867464934666196959135229432344826435719942606336069300091494400735873815019596684569501998907224356595690342843337819045850132406241098161327358363628265343472612021988356281241481053349005778439468264457905644626537133679393366848743753134122617756412898757993159250608809165486933139671817532796005497834194797092653136127523818538448365011862245479489056185407423644666453488490555727654733082615805027474431779016692647706453396126821282656002530581572164286532495074799736197841387494577748144554850776574646188073187559219291338444282639910488648840470892120163978413022228558689828629637107851078413040230747126241456957052239909975292077416792224672163731976236263400680148813747533839221308897425459280325637307189222733543373105521783525577298537280634565567071186956904050336356294693530745380157699428816643164078579076015041891582219290817497345444259629289329671341189914068911731063728747642299524269439503737289715839912865808218164699997493556714219028663248568871307780892956149255242706132208975042903157401221902679021754923569849065453410734779310705237167256660562963760042306622309550825811679995983287932109942509437485945146758401699504016311688505993823283270127770222989633077271000419225566991047054024412033020253832751045518388722376584391055127815865368026129893663281829845636774228289716398736885323811434780391740354128946249513962109120742175962859079103273657536489772196030560528887328516559986044097730553269979190184475749457062910049162872402456695454584863145172233687293798808557854142419691080790387535727728498089289261200493414071502432630545457058237927964045221667280885560914508625747392805107070347989473598923269586719825114172571037575674731340820961237764664696641718944286686403327705893413160580562851656216871389053350419534483332219825601670898004287030779602436245074940755745301121147301553187527266537235933459568197816436513861121480891732790920019937504769836819780745452705218425767726613891518948190829006987069978633113674819003348513153055801983176457183448774362920348079235650256428168936109998934082012677243267540659037646945818254134387509494934925252713261027862327284002550759457089232014929591704439419201698504795066190402236429045306070942104334519134079368065711044648544768856549279968710700655838715258183886362693847854076764551923683167568775519330119065901912953353964170879334720853739961045504549861351125594763662835245519556046203095287257387021357258113584658373770687089143928164822535025596317169652175854767085387471952341765089730083226419623570557638109834214836823294818069529748768182130457246830262022285176636445119395303374436458608786262294004923474964032768440914838320994129637699316599386350127031939598628598390693007899311818659140176350786427030884354390106236535033333736907535691795680665624602022677263924879516994763649695889033111251451561772070555261345205350309808811053305898565919956038425449946537870383306918106152436662312972850423368958455544499305572322707860189639863815732156577419471799000808704672726856573974766030456970217507983619190845019496259564044353434400435558110242798831214540600013958282386882362163497971307904299583473037708426235712568614628683736997531699093624523671073983738826688985407507652984166409602371251674108457876578189288282608347446531932592515356317263422583028707422388984803014743274208033079387310028440289312886963271146690500341699133434842061593753349849430986567250317629109233375533428631825786851601484832435373357795974687747394298031736413151633690551104635169673924994472514959147089725221707370119980262555589674861955642719587279768294884131443166194677847824292218057772043371656862263257478944167404910446793241365240216864528847465290561784955926807303469132854725270496549148905539276483934147393117536911335007748166352333354966242420269905130673043529199571459062063145086675674044773944395814175488482407226146329517019745030927959315149666704627497767661803945292091880957179438420775120473588165176613916298821691772666452915773514367506998589073080932257825690626937532318188500370308677675665192137462589328139308417680473224852098510993523546096574251073607887565849653488216480377258039445232705618143418746488231914778165138427040449036705834785696181931688347330633517073222145916486005816766101309855193057398814582810365688100363193859803788318553902412825183424830212135773049610430835492427639046896562982888368344812719252506728428869997838732111541975728551702778864068655444828142754783846519997622867069140165031929314613188653551404595168809174724245506547654769603475340628993805550686680193793488095370020266792387100478871923393065127259032049778049625578928424131136274523487424888971062008645731126189578919554542615544339606588864468580768798600723855234508922798510833081066059394896239070267490541326684012868858460951892595775007881669004935009932653250308777493528664099075789110938295379892142995232259789770865535134174234674903835005165165881595009587953489380809706372510475830972365830054105376075498367256807124575895384886701835243423979097594291112556151899583680868201799850078748898483369870039328271975449689613870629387465104354060385367057460943915409511951864746834200453363260082893744080621800020622187535453535643798761151335061695942999855425373311977269027022028939240985937760918350260575875140285238219776547384823501391754288332076724389090645443200003368926778824578833994739853104061490700132311046793325499682391115202633892612243746933478980213211600608857467379098733121657588554869421869234619407156284761196785062374323924622586662621754943804815052605628344744630675817274856270133242277191955652081903371554745183680507888130049627510435098234227397391992550983867149123623904155487904642557632820062577875159197310324703876539340570215535434418355446474887066300141792145310581320669716826379321989668159091758262325419029877312638329026211257203500865544530289823899432328246527967664841695929988206637260153349423747850523302154613255202087762281727288973265304305155854784445430763338219719055804504394237738677239192440796996512816452741345791145436381091462657252243014912044645009813863082491775505729860334956173510901868940633978680437955601708561113919417937940513675838831857014424301388065042856764907756205527874920068100734088306686091823305059236210347445495596015477108263643507526256014135993436885269162781877333390907340670029844075546675672612171050562663200280491092534827226769624542488614403583919976350664864534391910219934590242318289917589489483636944552155632449515012573587822692155570555194051649359404089718447245411120100167051301879031115293080422079268716887232330550439569376611978741491578076219232671479425360685538434544212191751403466655938400755514794235634966905256698906427648022663665372196639551979970909060908457019676060084985864657590279044324891328034979402489378600112324570857941209594867629356374265976915736939229194175430453957152531787832336141888823644062041207984304759633452758176568954579241240517770944102608748634037132987720510136789561125897832320484215236011601358086863588134978027023776242793975335638477529153933874059582875884598950779343551626651413712945799264875721623758395314722789604677848609893985949343014683709108938579861110295026089060246037198031974709312559871871031937672510541503639233572678415970959434175687694272062568708185662259100189018582852981544146815256021438987223948107387168992180737463959316020799034798811345868095499256465597405566331930474033572011166223375845927187805587687921938182823120949650202201416858899354874270735662892176672896828951147607388618067731014639079815637330697866424495347861288996937986393476800007584920666897742010835156830614731228417823547625281444483361377990577190276878510323231109367675253522797147622432529635399890682724799703955780129979435322500003819460775650793187187234735522490919909124727463994640747925807549035400451761947343820444440077840244040043612825489028612599074232848984794284779388087425815525944331310928346237999499565166483474648801623535538992212811319142502235575883514215905881102502598820379124095748606714965159998801152737157793189213860051192389740259214574744049431663936106159850603939649611891088560345330864345429359553232232738567308861703556506096851380996122834057726122945131112410087781138434940275146075558392227112099734884715850046583404763410712180451993721941347089249443993331342714543968706330066419668392503135119806169816241450277839489520311228887563321739160779741480405469225659598995177102839642219924875432471305819825524579721170679372796552675383136911629446923513626344455209208093126347441885514315609073516113006108764300999434939005117708371678944965208930406653541583647527683644484237572065588795827430497914616239076841714361465451083652169321204521421876563214784365272277445398048183403404548741761101158225109057501809005489307807209048267577694689585166415006895100995089501939925166705740567329695972553730023233976565120773768343631274627712936406157560924213337572912789323350518442937865688058597907623031577504883601714140086795224794086420990123501667715262663294352273945824097489307698724719036376131243889717119146664490790584392085201334166358234329858799003668036737507231702637916415187117208053520365661745393552817456869029866205670954905850772040346516355300187317525711943063886517278770252984245775224688565266132651477048922025618898469777956300585073769532212584763533080057860834881700029076062418882181830559499966006977019578871109604050389936083439727470247686837026879008423581066064533496174996262338754127359142563590560513154006326880128727883989949953183686453920858562365122828149813085123928999760523554224626956933143497555464876141325538702230536564047318687711317767478826903580931483320537689853550693123397347077437777861693959997346491931466434871953770487319192836046653589954023228742834855006296131804066313188986693667866588250027517225860536936617638990686101165594980996946461887082267658361349110967184582293400217673598373659498165099472070636267858210363506457655677778269611370972306834328791103259818647037844680837952108500921805905605779961023435999077419394660805721461743251121393563307189809375187065382505847719212182984519149386934115548160603617548128661037947932545072171770558361034921877695449564875416872591863740531815096847655578759542452522906102172615919580445497503520011216264315222593527141240219940615498444951577571005092367808404037133495864286065117633218044902765918249949334584612868926307394241821793386223795405161006718221861661219989005992887335274548962228712197132783321653930893472749714712630758540873914005571327862602563579757700891235414451712298294482853908816677192231602893867227238104582922920594684774252418583914260843868519223962757961667832223435481607930685027156631122083778426093931572335462687138776923627611654608294284573547448807293831496192094055094106533989038115038587776392989924782254711227753151794698149232545162218564086268306781981524393301355581305561860150517184207143186476865696696759317017063344549529006003554099926766701538125159933995366857836295506675599795264309885571361177581064660148727048077316704743857466503270766076940233916984581646995613598404201019847241538235071472961608551353273708520643330698853000446578260878105670236888556974839331056591101251583801236203675676968080119029371034495981786398594394736526115452883774419361640254024245540975140285415941278760640510695858810481445649570288301993515073001423880975489834616789598355603785850914530925225567367394160763404983625793494286943110701017782145007414784674387328766661811926379888020616874107045823433267684666391990083387628314887248285005030285254786796732956600614389544253530300160768750167620094293766301073554569148308831126242896912457001812624800571619098669190333184368930720115825773708878829231481292129276439598673628537558561487969970236133446662932978212674082909166821779053762087070970492612701608536884062676332183818160777592355299579493234413347610888897230041847487320626167933267733752029920286066953329707279346509833979103461812708623915852793759512403786792248280621585341585625767332031286959145959863507828997129571007790041059598731842018067370404168830680288027080776105818174532745236374853393772452391976042280197610957949666501175051986377172905720752217065886537259557209063760644868841078905671987118287257602406977126154647755634015188460993647431812896025134297893704518988140464061276745492264729438714608918777556786515056781047350316921873225139435967791457017894762616362550905441817239801973380366672346822331496884241519280686292790784088046711230634605376920816220807003679710327770869310414899674223803478628396647517795615543404133086345551873283432837567778376575541206839905915756595575330203323035018367553736153470201326653107533766460181821200898163535953465236140511361804928418573774947748824500877516683045071468817814457745488708178860754208905033720693365442601942387747909005339099564004902458616866254406778000917420737478693321272915141040540110549899853506818044395845245786873310145616516006738830535632909116738313248678064647512944749626126121745751633386485359481543032966461240880082602215380163072275272506600896369901751849503071210331927153987351998712171918221638983032982213807013042877834195933918188080647855761287111112958870786497912481309290481877655319309203078372691402395146366913945021767492826789593630719450464031372458318019691994938857794633513216514195986556637090593999308226340741255858479521414101899675334050667037233305767928546822378602761421510105006790914431503040265994459391435954820876084074040564525389250630879166975107587356352951975167103936836208107771135101958076211100010408872344852862228902845414584668815372284272050354334922053733157802402540377519059820167124667095530686384599353623741597993951523409115107533309710359728388638687303188842464574818040983020057132729934580650350251664630619408390065346493885238010040988490294395762566788324191528775109736897263137491160602519941692766147876824914443729208167056228288037112307802211360991624722760904551388209547942141559915853088359531746092388496575965335066533717548141043764094388827353031113608463294560128818557201511079110447359309412737669940847529147727739380532149225408263471327638103046968917102453406400334633566871589181503280993172702113856348397695460860272885652546251910340508529852602976052328398493986226257798295771692863088702038104657332390447955524931371937671002313280355314976636250926601657251082398206785602519690586485570301201072405051247922518484849074448810772289289818426207390488575851308356907875515663317703560847682410010772729690366838481076437178612901398682436320470868378888314947102473390427951854338418334519826113783697392975453043313524768904653628092776298113151863629899736897346099552065406798562583528247855454944941337231668253327851122511312500796319425934573018157214208521472925628392947184887757435162066757925895246118514729788136724071883128329860796016273377459987111832340462010447499175584813067524774253642585243928306298231126606325129814427494880123610110753171552677699140192597763316724201131457775895634936760813395803317399055252946054499543510375903823646501137879842826129120403495980337771989781052236799474296890981869030737076157946269591539299434050092367956567694257123704595223344708076908062519230698114443607527857340927524706165032462130139436275542812199950083968285538660704228286380069847047256372532165009357164916807763977517926919525041555789248576969808828085761073630461667579244958005486818447315889623648508229637951759175316994237128466059606568140239620904959178827161436164921669825565561810096773909303335432287016449271784435777676877748974415495848392378034399062492944096855640439012541877565894056226134800037374495904197132349057483987076856243549436086908896463603986828795229069539053001405212132973943436652285841874644900077455690342241373450658574266411229780427387288966519113955305690133502084016594063915006018924723249628011990053114761519751993996708739097275138872350190865205488521680259017837564311465854843369970028237087533165255830923570780951988229596730112043542089355450978620571727108365689615261594222042566071959833238731570574725088707481610716635205888045151730740210349872528354977351769300055181853575752341073849619004469902478642108210918153471359021795337081957353907269132025102646411014646023132770156959480587218955786210811674968431125533960517605243271485412403248759039120336898973614851477258015813808231910442025356754072584939409043209817279182460338185338421556613387912738301167238848326010949482057705029332438381525617505908415953379651731094990787875766204485000413285790203291940002814430558749052262264120055843325412341467269844628034075194109115919180001636080448201945850321339818236770418992362236284847509099103222568846003664552424647363526229068838767962479556376782411579534065049073264438778667315849487103793559902215093438782104589849426387407015696438553787685749190757937506734040480791395747009097968174381417509474378987403063276994426316993234603821765134245541263516316136001157414088366442234409723727068979752062980157041867289363330397032471183872791972389183044677907025907523072941838257324043031787084138976254010827952438347324637538530191038730751815388315771833744659501125482969797959509390022931313178439373794750096691456910972713566376815317925032151205872638733174460769666374282915252015649197445695098401932321377107109790964558293878668949536031111096462532482060572073814559296066925123321418766415407042708661508556006399918505131322305524741035979850948863859556001334642562790880255231982308507417388893477286191472851940311549665763464125553525368980794437469119532095879678287555962047243963805841479382211523146077941810342390394800851567540126662116286028628324434201722789029171919026978882861875588152678906814480553594065931389304142574162906295037994952103540119736073427899828977090979653994093850302479854228684562043483767163409392453835329436850442743615812279280297933321638959871885822151298620036787038455568546463879872098449837732821969275260914542126435709592931186472522656933970965394909843993981992367881674126031575156335602304799969945952238087132323008643153128699763477355172891069565109876027659094705784014142064322790099270644283688114769699871031965478512530123119742209160570473732665844439216648543655387295700620870004792331532730039375071737738166211771472906599098509274325473442717138219812692449963204370416366533693539161823904835656532365150393405518686264408209487929330653597361499736622696813977325353138176562858870718937571487580410370205595365941236031789364402057036844338455993605329960227944209300087750312935131755609766004876934244148546929587810720877278170933132049688365417516125247831830104513213957900373760449649367765465710469297521975417727410501928344001141245766762071566345732546483151862536887583145882684892093728465188697222534146116264210090730143215728304058625570377045404235207951823677332973248065758907417784255860432242005136640644923722300261663476516595501027258646380372879907154657706989007305132078481089302619315961353933214716442128698238505694437753784619484216935437249575433335814495909536269391018031999463216779474516585324678568333820716416586292192328249920414570872926667722605639715623399318534773094154882363478535297689299113476393401741166852133953555546995613195171427047319095922171496895540761829588620838405041821369030440948546443575115557145286747225285710587656690478280973356883963075429577563080908465841641213295199986467807476312587261103683274073314959364634358759379179009008500791448010531097372875061111951663768387398018001330149397941921317647905130942077543676704287161388572248503683099092122179334818808486008390341499817055001193557194620504683237187024582872807463097957689044855524248600257751596545514877728794422006001806680525873908779626351412181704309297812488350994930733876958282086579197383169157023780979612691492176396121006255333023965188493446606214057182843827723547921747425230834687455397286961857550540393676402111221729718379383555068260836947329067357246118332429333487696143204548858099241299364426122482963546530150249259553562052416242052657579808680120033236086621801433705878133405819567493700138239105321718254165595164122313822951940047383771062399527689330122879349751123978248157059335151260617171650685794087326579085492279666514042131360309059868730294967932748364008160129598508399457260763413645334767423947068388304119454114166009605730214066573031268794559522582825745752252599331366137529221654447761204317616588558809301553475385594159173259933351722259760469907500981266949164530452484515685683474954065407454067644795729875033080629574850106693414438389942811137777789711351438116158077598288339702465272698676265594331398915906418867552958125999549091602977085323942612305455624205892106694531719896966349016654991847723253789441478464214785842563736631968505155521560810366778267653012395037829342881117245151575649588112228474400952263736992610490449902428089304955803862055794188247440942553136421970324958666051258063460908088692757439319080792106073601497328982907751426433707884277732353592429788901708112309855569670447534109908158678606643530408863446866288360130913912382099284513685349598802777337040609193781590121443150086884356382482640328769664553544046278682716046356493210261561014389709993663038984529816474189697034819841524688573441909205037505844226618113961404946444434198835481229370014923556084060990996918998485569093951295643012908752278653865653325245951768759513552780950800290305681468941483408147400496618878001193404034290677308763522960242132982810816318241225767252261530141044504987788816033905667398023883870615936509379209287094108606588373604677323987251406159279546811234473817823276990213765646953988118677658195568504441345941020311125101437092234591798445685938282086617720481130954571997496025622956485084094608599728362715916968558188332938426109865301621704482240323676518722832139923626271744441763254405823358385503258840337784318916080409041785886026491412046103411649330224746574594456763607100425111920276559282633976199742669533546135703059565001939314780429719486218251319761666987652538498458812953407858983184970470058713438001982477736092442293829941621128106383643725950298932378434027221747095300426872603651954281439097412842111129346001347139696596357319691898583749982833900658371840065463778306167061917775552863818430349704703014363801532539482767124364645540973194073377231746086802712726283655363197150886439403369783493596731234291735406343929825815351786425049317677475444339317357834332454071501816271215173262177499287923017759788798020801778499282200876572643809479649084080783257938970846397262436041150677824092638218028689272397443448019114945458650881320233590508573191924764829695085695289192848977191938576419513538500275646433562754097896521732278874544093007591817839786837512321251954007335446365475134502734503843425290084206250952506980994153749249493483924317240743140381386252385915662849291160914406862102473799056929581225710405724794413645363765332346443862062811426988701548466349150761650046901915487328135170251813572614880835867962990956875663452186467599689608639663607351463258583007238773474356269738483954443424561169455576644882129502202757125421252143719171802074760201169054199906099029855194483906262947271548367557718944513305458903865947873378671336120068589020398863253599931549195466007533963299056097850803311367040208874402518571605376961628430058879934877870127991666975440974744902371119122008467171566266912964060842636123839738456706749618730067187569978688375117548359889818942061391144889889635631809526281961326212876151812155555131980036638961697082967227608171044865762660612256011234748482326908090168205159336566264190932563797496907616027041357991092242181598471432334574280367563414353262758335464135464215199684578902229348260470138865562326134635719208520795551506081356222008957495404804869301363077715534742076440659253326097023171679923728639347194133316550623739862660204570372811482073470846683342652914505334983873490999358488822507264520810887065565540816880711063031193177798228200176704032703392637006109606844525358448968742976697512932238838909418110081338794195887605922493087332552619365249005328229836298957959459123047378776728767998125819061744825423753223992810906859167305661293029976737639306226950505762072869527541906018200958085685590235872495821746333522895302798096391381425486214217374618652817044722050377396001032294768190448793154387711186016270106803489900663540316172828075737883998511319504832028725214834930185730535512969029880906034985135839396634804037980142037584636097052595564422676611368830295782647373280210171369546490388495534890994956133987003831625828499676923475231611250140824553654080630954302993861259503941759219289295292614965565204159062573260024116703516594134733750317273807000422659507646222962314502689332921554994606121639174805420405847447986205107915976981797689845459191865484819493264073994487349473018816202653280000348947939044112948507007887583303948392884874327651385799515211634359125819846847774573510475381878947435403140464211264832769412855572691144114953970313667576196533917776173535105640467501785505109243937965586380136989331459848027159977187660221854986868822888347858272442101251401602045770552068697588194256664862892267804039834933962767685906856800679638836168222071915927882413139756430455493038639076192628498368383416069530524382243539411082939877825318752762538891907700532462930098587793499490082002334521289887086794470894351015939085398226111997404446128043634334068290088799817481427217976399829560599875185550071868946170252873837409121824770811928289452637235550265518771849235649811895721983826608773457487429370705329521428181235511669854395997354095624434489375490306238093270444352694902267060597801712051207997760482679181248110624551802251602125934000589024541987183800372356665031724819316748019179179902598489630605644297558385272766294097646333630345432300838686671196446027082420997401941872923508136689914123086664803696526615230471996627744999649213337242700706939609416879757496482793886022763099343025741556383257872220579207517005261184589769125850943863093430351630043748259545965894947332364750552937971514231213002721428564815631473931232465122711359232214154426731616783765351009109747166751648827827670596099773665889344512635700679272060428076486024558385654424883349801228563458352340190781698695742309268305134644614570215922661518742943242416788930853965106652563251596513910843043219498493660011431058688748106056416231342493730836529458067694572824941803054785202536372298576881056441880730091743553471045956336895947254520033527753740877704541528953825451066944813695668930676099751070328115531018845210873527118006624616573955893554643428133345535066772350445921072129387452648100461568469791112759513985997524597160226289018930284023540963561509949729766023895831104392697572872887228919008701013381817459730902702132678942272869284231133209895747223283336821568896101276632018001374895279508588562399008703796334999667861667985656477350842834896623491150469504149845361264561453734247860150007350296886175458952990177652938695135560698261158461433299784805267710068409010608170193470737099802831809604794771214370039197931210564279994171413278672005794116919873433329488002443788704466658389031214681535811182467548670536954990723223925682130172838890396214445765260726359509444815874789407045565849043274532721946319682622045978427802167702419535872179300198926823138159644449470403595576070665236899150271971957251876969327217926872983625678549479803345802915732525046676919971872798885100737567636233461476426834463110258857902409085230837684432799036514630610037190621898129536934938196120752030957465125745814177380335743015603284268800982581365142079773034792109131312302931922025483955521305714455886895011616234242430882862791960737755131574598477557228005828325977003143649028499540069505126137879323269985688454803613914876910609603253481210729123062764040542812646156667089140864710883531635204087468594261129629231732786276863737175224542218871606529031286243161617360500699355165801528486254408970216568019409318602722163449582722618728251494851491276527246004615182946805653048648142059718310385832572400023583124892947707200960277419861877255872885937210835301116517033027740049611668047241286900670517154142442403278078247944042637452113624260319130234363428436996785570593423211969604356360896521766214788229580583224314645196977316539973589164715779035755588800560846003333216879486299864986140570473636583383622952947578656220035955596400297832702637176580055362604831345973675904340493572742544064335544713324901066857147017887268980533366885417552690886941951816660152071099618040145105231110709121662178279501166641162392773684878098174844548974576265989679321629603783974580539275489640482680689534689354876327599826020301577483195654985106034634916213477703379566923402229880688913097978301944352097833656470234507362736900101932227703541644078231497056470937483443429029000561776194709660115459849910602094416118918876137286549163662398163131654249449502295721593853015869896471652387711388050761684053742528065039604959842931151457512810661977639963920412398693723746140780790755905127342168617086262137596088185134531623643458296284631943350323162061656001648531351071221917059234620933231881953666017190077327683246427080283553823597465680597387882129826197081064776329812898892883986063803432272199043256594187799846712314503783127730357710548308631494198986270291192087583860779940062582194728668098973778004503179171440102951921836708394793343241436612470158351342597048919029756000563396569249114084537730379268293700876113656406962310575890095301163587712959881067850057648360231697205584390776676640728431810745588854304583181061695947814102333930011295182690370608767460322904774286320565611457179564309170691782496466399061254412743014644452268250943359865143049649234632034065376748930148098034472122141548564060902841398109404291631201713886397476648301064968431694660829641890800966528925074392103853203939396280256678293682556232791808180049647385106413162970596071491635909229406284994253196877768535718239751066563114136103136564561024170900654680296875798917994239806378451034610813266630508512124657914466944286401003841190305787475027159603169420955668065101865777005918615475764333015398180626949153983245260335693290841790822768809670288143187333849699897156377539514499655251289144360188411718249255174598659661939611720680534160133575504164405725421638104867519532958411068049555952659647723677602034460096102860152749372742459076531130839009186458458835393362861930170875425006455051850783574408056386278046522756031080973466570110048974037719750715506118478617613521450597847157291720014127556874173522682068155872000835193162207264660304086550091691636419050155099536920093895134585482368619539351551129533500418992451639857451121508389839479482654636342615668034757764383701777172448596875130597691549465819392655309377256977670028742086839277419664932864153335728998721614667515152142468425247666662009165689748704988400965136526642779294293771390412511986751313872052133367208674275218285953194183047946367085279010283611689194839515506023783566070818101798312932487180672540374284683153288687804077491586639081841243012196820148428722779322456271032777958812643453226856015007275879287331797668415780864670535414686061161212980843103998684821878697050992322304947558506324706557973301345763403015693602818668225911587678746921520089810865189561792812991368506759082721578853648950563943707187844779181612867491000274911949757143703422232019733976156098207962189116239071661639557092180070912587430804386771546525490497958613223139919109312438363602322292231919552060511605145336169229143946714567193518668398193162518447445117561226695112812345540464296812506310594050537496400323207721585181645707897839132458081299124006770581633219780874855420146550292598742762303263148455930093807669489510814633218362278980054902434079444029495250549691346499494170761611053762440053788866097825733551509723161311054734377039446577842949335800673718845444974967752375090690374113278754999429290479853247536914771061174575630874769023937107149336903146583316817576929220778864690476864129397916414473828799219821557227100233179389301287468337792890093845771429474595868327520847649828210985788666689199628309505037255091891654038256685210003058540520286442210683818432066703143861523749717668255685998228491711108551585493827532482968128235054820319121924812836389692679203807106927221640700657754200909710768317130315707749992248848439634578564122314449930261552488706496715695255881157571926898066741254709257852382014159556617565032051166398983243400265911963724575580628986881290520497642602537038795225962948128313883000632135491110938502134044715370398262135258996958353935612482176847166584778851783337103126940356525485726079694947414524405565412428273884573622946294538491421045727445918559832772805922428703620341550763832622063416560992917079802506742380441074772040481393041579210463206168251358293127079309360413638283537432858814974795115208119991282928959259770956775175888039758546145548128903372890876179337437284879714421685040418369320511984562844725551140744631153664204579716983479646247775924765894014999009554465147371426018093866151571160969764334212424316192077381089173545523161569782968697552123377222997070430554091669832220502881648247464649894273861826782391742697940186436253712450017603107716437780143612734891467948929951474995297471679503103845217714987090759812971605409733792213444574233476377477923429129853862074798594465984626639484726724424423779656840755923964478064691338962512134281864910049906608602313183705516816128063420632603930712452850593734165646007829512213783220955094883863612033278020928081503802759986732062136292746170928427350371561037250801239450392356809510610109119490526267407870732139000759411208262371711443748554348772058329474427309296661774658624344614156994915553180466983949604672416350132057761240189963401936485256379917422592501068194458835869955885093654157986605941316130616878488809131832313785241264908970153193954622087085794677543086492260696904940083825514183755863204931893465455803968665689682507788033195874325736223633915200657071864883222073878574459163600544657611603718244510666453175383827482490982143927665529195470987034995759856750072215029721591930157439710302404788243388856705331940470886298533293344491101722552168858254674942820122090127034778188964195045610487732438811827563280164683132331188402815073738515705328285672032157575644020795704188539702531072370850749336393912073247922580920669997466091149681402668103124621448709235343858279428190859872093346430546864938029142977664313563808191527057687195068841368267624734280824988262137634441660143852287236049204247802223027731329862689032194663246639975981447779317912076559021051951718628306379334038958022416287437703231117670620583060859479776244513996320910322589134604562300013133068097860425168261286490798859865144501336094141595860788508325945739718416766924517037270031189937879885044498723405018932316198135127256869279440008301885927097163785596476666623072826216672680522821079945216943452768216774030649579348791899033472029476817103610741455192017060618526606632104392772472732996823047334481244915995050523983142428338247178188318237129176629224831973583532272436052083809028177681357005016897528875833828620255448512356320682956733770250969160357192646616100041874678039529331131381330294470984657019038572346825902950597049495327368287722990883585727585196403578316551645765994836586346668608570795689822361318324282849931682193176185369964264748882432891039224184500458100124101592801094365438315441290836790674773474270090298016345455409285833824556916946878439293276475220186357368885079840536124898231236230513793574130125010352625244952042532414997878223589330158768172728387004054479624619498835778231922920761683150371404791983091569234622114872874854077360449023398808525915959465032802872532251153140927010160889952038208088043894127859519637748017881635805178832824745108209282456552997749114444625017328305339319886081642987627229066584342679002923803995038919783070279498891990895346168267422572635784929371403227111531926832181829274352706580845721424482933980348460877494756676806428295216305777653871905022914938354351314602650512656204686643333425830776798709094979287946538443096450698329596651392073877436653537323805826137973769452141844537167323296564782469759822297916687778936741951025803492264741397208646766300402855227311162132427615958865600162149624211616148101515627394581366580647664207468453252602757100641570224127208517359953832036363442597042791030195040144408147116063298046685188754154973073001726885043118409815944974826790452488243199139376695074196429308590768500301363093163202623512066634373485669757452584556765537770889776815287744725886900191685344995637426258962074837523274708774182263951065533412988933398574352958650057358275048614360476389310471058658300043116544133377182886646964204007174983805634879678275729929533722192031882588644910087301001664782299634422908663432650701503997793630114646778387284303240032599142169096040980381212589521551094576452362075754739188204505259770504551277067401721672407385810444401674078552724055926928456990223348670383718161259067409741545942607878247269760749941287013519323842187322916602116491824096331528204645707427516658551858841162951479582055302536607646256942775867354060392080766384591794569830008047031060661633347963369026412906924560634836789835007461265063352883566980581805475756724219368874332164237869085670223550159215266849090606739753919201170671737011414738566586369551376223200635344179248619503757718021253975678232052745055933870378034399779856098441122545309884203159441940093576042589266904568998705246260276243590315211692666360628852206915676993843377294491256156602791279124012641533237147609606313659264152743045346874006339052927643834855206608176249149228427349504304856684476167527219298852427466982408479253106339969054441017051340613842047940281130980083143458042064232235388982507901859599708827887981535986491882810114440609839159623807723237931749240045938625730405316473386374276605800522611525751882459604580942745217255440444868833671377375419087650291551440853856048783632254715086967345058717424938615181356932976089872218209139805711514542654374261630717800253635071283101767247172539139949455919928110101428484173689578940016844116526924825499800539261131806959086140368158083350914402457117049078790992782833935246359323286352406675397534643239889122062689495543363678172705013328974169250683188914386416443530047045494239841918829135120668076050989901736438317891341728887034590741968067426083276184775638371471771860868571679418752922648284914311244120542132434616891458747545211060716973533075920448238323868365754896803811496024976987624728683055426394285882507037552763658489550985975173090364443964296069879357771865692099176692391546911999848911342841544696969062866558200666239174601368893619336418035733002582392983075536328590710789938780483561051072620848111850463548143107371848829460136381396896745985629505241381595662374814255876671186935730297307799686545659301601899890800180188846887785541763283650731977021579231213642219297903675438941414764332387457283465471318404103476398017892024144733494945965209451334603202773637489017134710974606362378925514712527897476699104418269840450824431609109746552745203477315744141926218383755754257015103208117123181431921451621972204633057243928811175054934313856642909943663346894381884802346605292666868774775176433187268310651982737467290401253937254197908288502406133577902338071715270533469798562862246343383820053835696784544767317393469870199195504049054991204636483690407483066488511863395585215103834534905244331335111021711476009333873370276408100886716630488997911992442338877511260867792468052301906363031656562640242786680760520517497277612362678126574596652460763193406532171748244939440403274584912573313996524360137258452879362266222889402160756922982121021896821223062350756027254112004312656780052683533970801948463429201164496044598371851111932366051843381734702273080880595401658819377994321681131913332099061762369698661056398124087526263843000371754913668512654644836881354468402237816070448592634887949057239115996417133289980744090931018373699919535717640101496788648591844822003646697713903791992184773641093189794984721669064332877699259633497060273223192529800923306663526066099318782144374719527931257537105491274987998259142087434465829672885401468652971407051842843119366713285492957193016486920232948966754961170626435025812545080968491340887162751641885855539499296183896110617492090535780516216825247702399308403999428577009680408019116030524382826520976808663976799544659781841724182969873680509694200278391695403322355241804299129259123715111896736603848660616381711825608952659097325051290226739695556624780834976864530773720963144108812452914723420546763660094710037011799346666845852156117253438911830090577868758730939301823417624660677111038520440091893825782875601683926868625876981931607675569665925543226324492621913382973209053635466287076677157502996688562817911650200683967331034361534108494648486903670258619101079063764801177697794425079239433690495902874756915818953776155562303365339610186618507934357368912907057462984527721166715330761475656791841588006019097883727998929728555722717608884345847367755271084860132777067097107778864521043673259007440557554709385663203967689521607733685737290156605777330703520833205900779256496105362138021696272093018796656237771259974166952229723411289871860753513183206869742941122275063711735379060920831647405489006855932354722953711069842081541891707164223903907885282308818271662109766390019958069689928815533072538254004749774352471056261565486147150761892536497937233641606672365631760406514062966774024909738879357169090524139304104590419746254578287121361338982233391236068263721171498188904729064072070126741338934731464952054748420881188381273995365632973786170262650588628944243022748897382189759262687983716083364261611363359078264922680294532146090103399181568547735920114130518495863078104605129767184629369969397514634313469484156034307754355281002095969326790952193889113033746865697052859507152408552041610616857265092465967998876372089497608383685652457593929023725195438676991215020468327195791278686720444776906384484618337869778498155755035653591752356169334430353935283633181847693230311721645820604039798405105072810527629159453226469412522926642793069984804163072817625905216899529946914383184341371024253994569618326198188053558245446861922058750372464325191988358386085179186472711811244762755618199573644713254344516316031403506602080095239640809850643963049310866591176556953292802386122115337011843179467018944505499799217907011788736902373445633594996785435723169390877470428257555310741807988445719606227743092243215733563709343328172183434103986969570579405279708279905943601769905886141638297533500564506083186560239066800262698175255014225410976210338312772308926854661728055597624402567742264371560240301568981713046314280034489423741888249394090898892175936555900226686331368811823737693659501112646490768035405513960750919972786908088397673907728076248752576446576446462620191233842463871017437826269041251543230366948564386159233107991378602387255599391277094270874811238655337003966575713549982520256308148947148145462820222072059537649016654173863140752683856773768340341725452954946540655783289872687231266398713443391051991108398977459347844884594429898866985992637194062840124932271000777443439435692374529789059746621852665296545481762896083952415448780769371065392913609175592512994766329141465905089127344830068716342082211747434272402192038263730390235690947847186806702539182098479849523340087839502901067018782390445874839501083845837601224031300645896826739475005484141802590709276176030283930584291329556728396571744320159891293052686559610007173382373589101635648483630441824213847063651356213050487395826512318637604190781448819650876378007857316682325827794501589231441928701331646330724073543829858790900828052591927404198736841351709289364355699748671065420919310204604967766260732923874532048094169055207575497077650205683936898452948369238830362167872742533574756055146164350288169283015677969557178644391400378294747058179417655546986156372403278845486746731759269402884987435786775252590829348057970122654348445037289034268527667417588571570607536246196157656416260164823511840820398929647705013476390378563048630831470781063455492323247893463670647859045378552298789748122309473727574588077507694587429962848341860844807004012935754507117361472398175066932808093163047565293600425134539338080839371470097881847251740607700407654852451199766879286143488006796787000905299193760227520238285419112615565922225365020766531016494012900114563418329876345124395858653702287854229389733151130634148926367230372725738756296382132945764117873606751933678039141186315695498450926831325398418994164088780249202859514512432821807316243032010644731071866630933714050169526161547436569685821173249545211860908109161459624525882252627762862411611055738093400137432284826847263832028079664188903161995389335249071585230101449434193188896791306611737833615780683845450370077320207012250681171838961795141024404615221200782612039418975292786085027602654371637827127280136132102528851228700497064118203129525277451873016180240590640498309061041996878962558953903579918014813117844526007170651287994149652274504773704480415883680865497606502257696548061090412874887508049405659320383690337127687540516228250609441991468699600891792670942550170607908658453701718843768676669588361562789673671813688677748237443563678129709259143482476327283975188988020209223077837497162374181782477529571166449990063309949582047213521318870781582624752095166078328241173074229041335546575680046574070609326661547892847352533426171705019904894398973650402628385433034116419807896045259508875759954512476564228254080662988469103831936594565579811495120393511059373743778626833913141331218230614933615995982172412043238715661639496382686899697991195792020117385107884900423067770277342013363634179887425340788567796456682218394065260987298278380949868877385858328698173874114581838177284634838080044193449114317818093242729078324616094944194868537067536681584408998832691961409073828434212315665269658854050534897425707624027173667201158373993521253079896326689719008404541771343522593595275914849132879394117230961882111347563557683592766984201751820305680064504875874178315370886463764024725171126631638432208222233090495277511039931792109690127933332454266068379589373016244338350221799632377762992781940837324208992939870013497219240484587433268711433919274578129496378881720037945135273697646007612418614328790138133238021811130726449614448120632263054923258828102967804361601577632298382977448706998938854422450457898983516702174906071915057871068239648971282370927310728628286035909413677183184054504091615896333488812896158071935076690563012588137409572351103946382543464200730494462585259824994113350677129643679494541235503292689886002505337675704839413290961839478391151508965719110929816725515953561717583608663308456414575117649762552675617135070730405790961388848056485925021731133160475217050263518494841364812306631470893462644574180751349604417816365111147596691286892454557443156656928587388149475765810324831213036546549332177364088084367076630479940823080798180278533406982474363091269903295709581523721923975208210293794209682492176898109369102534169265506987836676310253610660881147787798644188341117831514770093738090156181266833068617925518837202557745574938395169698637544826227905033724740655885363742640969971572792355333498507408689599953071322975023360502318480961147444118667556407744824274188044832418648750132747758406726221008745447127828031419504644893106019675881486834469755917917025704675286553090727142905810194167655198160832177808363188574311439424551330110519805749836705006959356404290721553381285726815354804471821262696937671930119363337255367181742003577477970324179030731163908661507412782443011093113205271905122982854889119560597568049361965908880468109971312125502292804593168535820372949617476371937676833770591848269758156394615327635474890896433056373885458948316794601047564202592739754080348960082797538430088698601599740047736029857701057795166627671703835747115557727816779183868308945491397525403008559328290178381011034047608573209441455913802701665960086933054454732637966732738673623723274071116290906585168184058906712668636518831398436726824792888008076873286333902694952804131021082300987876335937496558995032574041292168064439567376931686828818169408486618487630330513158260230471765984791173862966193475133637129948201831040913991201206598147332221284529511124967494980093638412576898154142333696889816678488255650496838056034482103135766177034784026643597636759290639937675223766155984131203263404677942346832814207770832715091242681042140102665302229159225414193282029884336414923638228815963925453426775715181731692353975668246366737551086103277014491067600707087149746541846264553999156007337510024410116863693620596292029239562178465360990741482054287588616076573839431007722512384977655681071921851836628451473797235145025940330227666358528114810286778771558373471180455101533382275646872861122511050335630005730577668085460647715887958085068771673539423506568181958634271198435193020208313170019850552675199624718026674662446894796035179856244412218655725973344854538262585377091396394948493271267931986665251535501853940028212395900689868989066646863520445972411090340795176908937771377357770370146667798967173234836865727626858071597884745222746430010700071812207041842974897631157471979591255647379934092431542479838748700475176045676563510762459458957711330372456538904908630111118210786247099373247508993392061578885626234067841096604954297075823297465120384239936354030903387910457545564547766749255723276267290443779043399441601670841909219543831348412497780145134099505821755249003972316846558662745027425773273387838839584766633460354392687889011083771897526854694003027664193544741300334369229174753799125700437356769303319658487784249640748880530996779266412977603409210353652344967357861608010620541134511714295821688481112903516258252363482520332201993383997435597744597080713631376553900490561766196926622306606893206432218309376527357369525143400238034510478761424576477033284311691179782097004927149633329354760958081914052913920528518653772257375187870051478553316968634887848972838668750677542749776472473459051639691709475206420524961898410278201146636591183896589401226170997308258101202483701688254311622601928019036893701767127221961149011833267950840141569633374769678724117736134536335170097218426870177399584459341849969223600684556475879023783807730155130698794140972401805725019474533641120523379289678087840395825368165475889822708781914656014581462062086387256962151415644731637300932349246814861940062460039517232918565686134888247734871702930425176426417198310974833659821028406706058800590110958444052911643026066719883897577337330002656457548160403801876630528861826110885112110198125339731911941516019481226317085235219220316601838487356630507739197001804986456023512055049293655611048326403884330598045853246853746807403927554744821931067801793688483303211307669843295918712262466619290012211764801287719814045917707864949448421993365110091930936597574690152360965015794346415011473593381188293920776467167501995028782706679490172421936302844676896153874214592535647318354591456286314128719525750024107047101948801018965735025150281163414072898421548948072337365276476505105285486357497310133549898001246878183935392703531411920398530420686854144127761455598682320427064716606183178213585101763566594059757309444376599709115229784534748248306683556463531405062022307955610594256977383561747646231593529242002375116554838163897199573721508013779372347670585091675295552215875822234291235847435302530216880704733244147597201689347786566893818510545155505522324635517556901301471638912246535102911085584354079778220827483108508708312650402546164713080753890523501458585638249451126182309240520187088080934060404826600132011401878505924530399379202707000465149284203103829538401653838507011040849921296255462124205516215997356055033180054913520011129109153281013749232641174817337364542439453399179875386147530134996876863057209064598095906624940211924061556542683897674569334757753543320810540052032317401692403087884569730475571200731056420450733028766082249643636338047516894465220330919929688609733630220502829783269569448611956559731653740145469208491484313736431444375201555221535725607465553973393267461533982940746876690029021087942372423416230289257079336865350115497668985325845050492427004709957300149503407135092824697837847964261797675981550655604123508163593095095371332474299589959568337458060527595645321271687947894259156741001576626444400938647083123647143763274077943101853926021871448128465251617275587380602001134076713720035434231139178086244709639589729470235152096039338074318522938806612840495156813732100931007752408898902556620176288122062153821443936503701013487668621877727440589055592560048112955837262032068228737051010498554564179183010582981676565925557967310567199638604436084860324467434494417076965967990320123340804118334608749395340695252649970946669546492737250803560218723615625394122418225122067719371106694217304230078823207320984079790786179046414813058875628323104205119130445992164150141211245940689431274810831691399153358993686190999698035971303660091280835727785316358688673859127284023854193780319730287925613831930371684106370687309915185574144771755547239982784771671836809985512762931616584905693526027620822860861106606225709384853884928131315229307805641241710031290701787933950348345795609491333971738272940441886542395938422076495883513960090819671536889433490447268140904230029983915911224417362309660397412664977943751025121477795692458091949637801134256559378244827156520874581864300771511295043563378003449065921441749244390825094704403513262508092292063310326689845120853212711301523213899485978343107168353104717964301606240429084030381537371633057767157983666580986984388713768215196901065818675655723456534209374455861493543208578457759398178476201807695317096094365777029720620010833576727597428008460123830890940124622145418143448880642193213300654936801556034851917601126976089767992359120290964503156672462753502341402980926553333925556254590058959153655912876592753580932628230257960572606666915033974176908010228751679696890182470795310060674721257455052993520077753363528157723933339746485459665315698379881603544145201274100254278712827450592743035711923820490676032353633714526855818287492066694304553051907641368072338051525775442960624853759068290990480742986921392021334316294400050251516503395171148935640313556212376803039560779251560167421591248207521030843115189400341136458669035972322896620200299767114173699210155367077440069607893195030445968160258749116508321518547287074878282099709550016627056659582046976199195935977393897043031518490981361496554646716945775912378316110247806489551912112100447397754559388487045736485570960991025337422550757067534099349603844562023674213262967746411114697274891049619749802559317933738867356918697484239893866445123521593168773189726950639734798504080657525197283228042963702844299060982503320402420748900364885467836109579596513801076427062052883202441371894059332440510793580841134828166764974109589662205148255275312594962326107041421011616451363832236879733602350482903594276811182541612272156490596078721016345828025067684090869397199961712661081771188716087587384779703438873080523213574343691429925076778128045114887472449315663489426696966737985632622927669744007739792124004729888400234215748987789750835839704644943685668415781464694559638229015383624161375918983441610671341011636885543144436756322463929828033167430427772081815078453637172510342447017227173599415350291483528667191073858702754775271031599350732918786370461935329209413238801742320713526031107688358837954576897050340155951399858529096415744230197322783225630210024127842562490024225404765892427145443603948871002817286571401466197671842705228704897829079760603916148766340986674106646726550880112620002384373350221085937106595016888074111216554919063103661865014590886776026005310683396699667526414523936297803445616044113071716416790248008266839550402662850391814357020763293576115914781060925382430890141492942924633191168222307061778758221598625255264447890062224743350027234194811578420116306949866732397813064053203060619656688581482339480662573905437382833642897126010722485245525868229751043963624844994810236852456781694334321577931369272547424287912757664332237590835317952569999896588509456596668207692208065064108741968119438270620792235222525121286234354092833022512231923397555766866920279299994165722076333720297650010622049789568524368461705451195031795859643188931853781200596221012333015483716028503712842164397367527497459965631893212931631313880054499428719877038887806486897565959274254660489077677255853205156781672262927362333127115373324025186210424343167155545836571172323582281949561746057657578854706074850894336628240991528079241191356978983446291383580983059707664861926854368754794079659617764108709900164831786560583971755710622018893137159394385410898016291501909055744959622830228071841679404108590700632102288466385717485343420384144888591040052861042194198721429951172616360149201929104120749567600217998143252208739278513672358448057853859750965498817743838376869478526238275037728491135683432137623336160933662989932464730149346257446141119007656492639149954070696986178136535472987647078314895432001816493663214690024652397954657886371424537448179315539717648098605997835059297456207613055391957168959468587842956773834336020974697042329021838619093520444527386684462501499883122693020456756534052666831416815006497313183664122964760596060844967553687561230806880016761716369139208595881215624503899262937064456271490169024146200195244653769957360797723113840149392597364950890508747457212443744362621928760092946093880272767694847266474122003353825708351476550517522810636313082065211699081677244543861649885142191203887279884736691677727365155469579891936716595950061467214637457695263589087470791715486683864655104193077489016566396110733439971832577679613169939880216120959378320718144420252857592097674919274716482532982842248130562106947108237186793132287724284792555272082484411429900574093040186298598216075269783663539441193659537966477601254224472353345349040389515856212305779257392511107705731750781208405003161509144080069033473917906582617346694099480871568529851454636744081882568296604732505808241900808247128856996544797386433924707516661206598881097129378290401139385188526080570866531093738985426890237805662354202883826963580356353939806520816622012014452771048480056609376927558875064508883480053363051703274077599827272515179148742796557665411704293197167448259762218430238466532328836985418118114645700274167708883949010995165667661524298221027721059623576769545077254710413388946515781876923645048614786434893926557161799897625038560537496135991210380394723961973471761225141504727335179425695381247067375634872461574377869416078082624324544655925993687307392738418252763993953998830181903096860951994395803599695318509841147610537653331810858442996235122316857329871531502536224460683921229234851897920832575927857487691358490785365765930031012459020631132874171607489065474085387298213872929035137983159013078735443526828807019549032086410905316644762310860225641885270981419982484821758288157180654527002220771569660929069251063250534987128843462939443331265802081610478108819671697000386800536976858832360113854699150696093713684335013937525001444474920219306598949217101539105126009421837493025540754788490241526236633471646651652993437202615373994332213020203342115003374312630157049017049552241860643961948468885818033522073187423550912321614218120742819326416468661944113972716358186088983765147842695689691212547520282595428780903145375265147708343000983837110961159955223675875076629231978071996339173654852157412438258370927792833516728458337646970578896867825135037129530322527322457411229384666426478414878641505622367816819530383396784793127787467880633405165957204565756333969050571626407282351419681799520382635268808099482836915425456432279363409631632709967341349640660903079996772774339913460600662817106984470254287621545835491969106778805520644971264536476736668068902068846530550033273518133220856996385872446729162587809572135535917455712487496661941199309355733200764136029130915371301902994936911234891007755499498604386612705466821810455575662030932431718440041980244691419253789048688481359577379928008155457937941269324431583126369707114238974809440879236851928507036968784982792925088458355571825001132213108610362999407380082963139957426763994023632980251420671127343857349083567456287824731669147625196696619236043454733813991474049811568123388633803223981568973160061366232876608760493456141659398191866253164930193916247271408601970981097912326259754998703645651635462783367124453450190531689980688706225305455977537844207473814206284613657458568504129235183455613950332515923903985548232123287961411071653498250925784535276420797326946589641424946045908115706604345283803115505846869515500613326305820945386970196585002250033121247103041676917915958272859332507997614955472084790088746381486328426298125719998541400441979087407308918954499117873153919022999039575666438525771296982094577329529154108063885769608884141722204876836779346747457112367540786207527327436945089071548911747162912476981084290203635557694333471893280541577058562302928796943901190180448789988032246368656695781335898617026991118640094428391180298570699858732744771200311252540763888658072456036394724787933129695133356298428064032212924602507102796931547600334622610494113984018384529557063298074359162365959349557409236440299931270750891200597762201781662798161793153033606870905162397014703256756479030849190371219017794424860432933449031825810941580927242141290083598239824173358501869178279396986799540878523893014403798400064875521502507049297334080012249997842898243796118184246224237981591433638921681149965396341842016127623726356687915119964443701833040122890993458197886516318793027684513754873654235474575343897331099706994856894709777115293210446658822419380205475098196415471009027103295631443411707351781146420346841142030660659135555169363901335258914265918646163619657356468554060088846306476722772653297514391318408448277609742033481499021849208918107321263216853579918186526632312495414630121976664377698824721775141363039927479651874187646408384234689058497858358799285375788986875760585154646210736250386605078286588524285932782838695027992720290984930351457599883626094011952246055151845117985745241618769644720515798016411811328949762179121240036978635573556642943898561729219813096331052793173245191270456599271152927682656786056101089601941470561880563129386454338416278013653710374304762266026426167165994159884886475689243960711743972332343282755297623616649030672422972867856335972372283658811439133982836354694557072209882145751670065023252046895624152838119276430670595287413797969901892438097588429070485141121242797775619879482775963435788475720401160457834475060292044479217487997618022945127503584781053074167148241780701268607388694588896493175269076945765336050618082074453655397543668264588271870730526584874712145625098499144239361709512499023665385942925792426543570652924714905791691453246966809876917921939254173574532631329400074651593423162167031021025758619671563475562092018135238296499727514139122240413899303787044442019267765342819513917204903862239686325549126270822733974472372906020916180678379010779099136206115578810867742609085981300309519481206913776436841624315570036947148137683831673319469822560439860060871170863302328374545202662763010454767162605325989291532053614705052535395892391074761234367739692359057868423199834062156263051741836023778594023431235756553894278365086613443569241612741355166793418023054647167810038103499048387184499918915061412010284677179648526259518494613163223387317573727421726058297733414756547857169400988750902612577574464140298844704224857351058495279911705499328398984674986005176428163264703677356478774350397329573669083868149391315311995706184676366164201053977216654882692440880698274801669100142362786374255217188827022682019679521712022564771401076082047517235428703346773744968991415126118726268518436261196975654661395150042399499275305030453937988001995850203200180489101833843018972836390971880846307934968105625634340582920093646713207517498507812385745835193065656206843260719063614994675884173408174018507859496874964818451143178548477576461692089896364147544198339430560599045869028514444676410371131665391515617140415934687045840654329821364800725163368225690939659107597497917349456886266296717898566244612156873552435560589335656054079612088269144595478349419624430901154185508641058853012650580994718786441951254268366457276359375773776003320205841464273846066409844853598523236807084334561212916384472334453968542517403710661443951881616599213212992375653764683717249070252868644995340941438156805103040616685680870417698526891099692127915392812094108686044948508950020492876306615169440703833710287848510355779750421205989164217214854835868442621839891211234870123968428927714630510396814513387657632706515130963688697872860345191273658859673942632963482762097191305879493273223408960587954931140346676782686093273403759179991412311375917055724267266264716102022043519053714649295244656430908584040666276601287462432798208464061998094959183311774861081045580086380209122218398398649852746892588054362352936110448501397296558433283167540999390508716725121168041048388944089087086656987138865274634794740898710155913036544867360444346457300908017396818183883213906854129656569681997273683331626477078839993513480598324592327924667199973504798448084386835785358876817459542226620135729990869990946741814312030537284904463718353618504918877063247800901900711820240154963521017483990944626178932445435863807809030778809690109018024956762904273121873812934073865797322210359641978282545677754540490773665293625174607576451990072811832215325943219248345916637267406592650226601582473932751838536199067734874928213766010044010898604586332764010663897871436000976060169650733937675834731883202453688191168775921774070603018150361782956108449949446022380871358527912820492199568347587363605975651434279525032834355490618994405810044425365759107125042421814174836535598777540886248466711370527577160552018518243038639331911494805874978503966917945231955428230379423723698252192381726917943260543240848621366998116292249206208856893436421868459173150449571246181686069203668981929886514241899778529164761909943728494294665666371532164452796048043940389369847390573101685077641830649228600394133905355576957206833493711631218809450553158157450772848974727390926565273195479154363104539027234964970107312069193307982968651094180794801956887096386615015991957423886320341287619252445511155117792377309478605890444704884179893130511700849994654838010322316098786218832906984920624454682831974080329186779805080120604839402392063657341182864116502001952177389025210591550909269584005272064946468423453691158179489502806619743438977277164398053682682954936998009876538867376389135934787834718884985919421347119619186980237979518038750222907115217956270565304279406604437559563789778214225627195832836994614129220856327612027205942873811012099269771831709376977743817782939732649644844522791498296425962338986481227933364483556920138253555385383832658426781283906380239226104444388213298129188263605540698922355329210889484861946099240163887271213506026666366437172086207248082037538205252503994654284360972895096936532467104750429192645116782127455039789085039310943454434053331044966732190102263583423119654293633000907689375318748407529205332099359527687719221496884866848400471525651440601677785623603061891535369023020036995641792131032705705427933554142977694988562419929596847751399117660928521674124343564963159739210786462242089766177280679859127767116130273015565916952455704005824444054328924158482969378141643700779648008214627286604077161784928961285837523686545214853665514133804414313362308225384693583125594149436375035826650707569210039464922886331079312798059369574800346151830900613419664302448421444777827299542708555293545139618671459221590121092955977574805653126669947375560517490471945777352292624401727422962787224597858961816241329332476315875095423948572855851204656192216593846627057003736283053857661468207810662663085580845838758649520152903944808335274652584580915914727159747887396989502958409833551326294288788922452155236407852797710460352835204428033597898932004543383969972290464474974120031051761382892965623188185471829256442970816116436578747723670642232139375257494959902282810308131313569234553139394129326833682589930385043791789815562330421170229916600819815419536132559302765319708622486708769667818568105859450345511228657776077655931501893563099252611879191777015158882040264550450155720602340968334000003435382579275074854566742851997697686480829885020642231993352093502974402382571920131503791528716538309629936545380767709030190296558483382363096551201492792399041303221948149133428493843681573486867010683017764604251437698938183161475494675046072899428630996426593370160737641492738418813803141175955284492548190572204652569902818577469127947763388100939955134528334305951148945914394583553009327553789064239510941842842571154435042956515589555186299257079793560661463300241043849826174647497905221054363519847249728130284366057530674419654992706496802585162000645540799720943276350343938235541142804277372263857355817748711090273981805159298105837667217980267062421517057391709220767307780381937254779908909248941438379260550662047710342598383754058625095472691768307266492734067923225493432956472562550227777587926722289120173778051719642581890236327385985299218760316046532335175722030919430614756876696518059177043382735824928236661955102770973567806121251018284336703627084854084983635907243405790406307761903213547478723035369828093110552588373965924002811535488430259406416736822492199637753617482629248034834037046538975716539162359611184995934396338855478820612077948842336846288709983690370105638728374809421508607188512238545002947372068758577431991914826628801835564180379466972339594856183795470557334723712199367186709672229345591985492861843362207343507469703334180396924300807613235211641666176958662073223568122202958562873400950095912717663557594259079712033837929096483067838992450964468348622857453336614461712942846765327374971766344974991584041329148769496639249265272683594657877672900495074994993952356585786516522561540498420932889691964256054390581373237788126163992278178679791999684783438208203316642686437053944307110762639291267453195032478996016767478104675829233810020780795135179293563369461228929188856151179450825740077943153500048234512780364616845233133580468606735659602139818768586978575428123290361838808802020551664606075448835981468392216607479300336025808782035953546989319717657246606098883629421571153993970404165542670090916091168740224378200249186606178360937226227120064983433093219134666537143028467195522406163463802598519580054269075073488018030207864876293696892615559252668664952323415958112644107533966258388975438466304577417164956774737826900774412040141754450314056034325406218457239392910312111410322765858503651221685470513471726054448948398494924457079764015918544798900737561805992305131354700760133950662481435027871171915705565350495933971657004916812803143773424035135487833039970008024233745116448751960598108217375621857568129294487616491874653009514506153000561345741892251519773957861630264888475882894114668065899036270362829969089234261864117689759716461320194166426713356287628670765378103704185858192540861713656017068852047347208227349051688607006529778259943592466460670161708935965740816398432444310405967552039287801901270254016272503972486506427536135204160169837132786447708570214551773919096845882116431182309548430621091348234964121953545218380769450410166266480293111509191640558228030253214598514217422219790232995253903266915856569394617558122725989035983562135692976541411181796094606466859159456718506365157650641389179622018877216440907782317885660076633435202469391258495801322524444276095437582908263403122059038898579287198889038451397598573222450655524921253684559768122048838916208463188121601995529943874791474062337409730748826822034896149071406356929535119039118588987141107368207405352544371731355891311707232234512759018547562092900805040321566895641213636286710729572465336056870372484038079637975096826335328943211004609590413357402773155562443377980982715220499462266830725310556532109694755298145946726841078715915611329225239039541612690265491413989305984630524079240792929061529580219816520083886798120046121432161514517490669613430461332151970675213681997616614945450712543820032264126498251802079448917758781588987592180998884394564917708982550824282509213990293582940021838026967162150921142922059425875834128924286087216638461893795598414552781286178710589461575009062896854082516064530625386570979491721510579728185777492597995822728811863024118146830466449696689989371557815567680680364743868405157570004841416255968065844479404707527037778407210059245639288105891704173597966064035802543889269537960914945274663303826603849486160353081188653790600066768506754651432378123455603895056871268352310409539508485074246953265868677333831384534572047123933442045796253704335397944786410824807987089582436523101257981955990712356494871838808152218398603820563899890325401105968710885057224100124617408151084811409381339630193572615360073763132316988099346904996872950805692512771590071772185758131879274807110983925334261011563379814017557124872841961243959964648424180059314276678326027488154938889001007491703334888567884396537160892967819870670341857626877739619451926426568708824125631908843380482358640085071381745826436347617481127112672649496202434777970514027500651722410641121200339167522602586845299790386980308792138015190235685944212815857886334148248607600205195476955549742667835515455983033909649304746433991920923919530036936390385302133545391637347736049186937852268317589289668411761975631447541485230493289122571014551275534605657674416916981824297285506681183601155473048313298589090855909783078091138968284651688928567405437880095653381132722362172889694820223674211555226440261774677374310085085492786117777233768209451679409393342077913334127143298154162274517699943441873693488128999022134057942717338368890512599604695767875903843629263645459121108010477612699493171077432990214879980850372099765727996293127754248372009080768694282226999664400329989581397594210338494505613145697621199116732940333830384722694357149584561417236191190180093842010143748370116559123603239504650478612959622879944135738345571152913589938430291282681363068727176732163798277578106402580953086020478621613007822756296771761539492880118957503873134639504430349926679512820718355602035509230772541802242964772936352799295428078214803697757237542433598094716125321011998041231283305716841915667957605476035509944407801505904974938133172921551202986148658434018116150497869292276301280502728530073606375109557827354008223435086415821554498138838087353057512182012155520879982423899327595577815009392561788425776402851530476505419136628102360916413806186886453177971595649736327274280104580834476615375257609090894337890493748789876937268300035406864543091410484070567272976459830681333145435995519599262527680758730393414846398363931329996870229515366254501252521358140625248443418670661460203710934019126835529457373331042550979242214226434925368650971338195561855299056766408808601487305247405205702930119961501236098025436762721926354890944433460541212074540141381817378831514612874901947127781828386074505669668311419695130082169382508367245646277636906481694519426156068010921617998381825654839239990022662799689390986911712074588949896321025104733101837709798084792888561991827688010823379819752507410395300301448049128980492220792766012833372527482182247319611952301626648064684261506707618849741892734111842185312582801372367380799335767168735133005071290571471289310772276897749953059538919429384460400988030475274099452327376707168752056163402435485544314189091078977820496083674999493310663061586204916997491838508347594223317667663867061639484040176034794329050811818499256738266186603374329962405764352104409610486432827866181467118277680480647433613840172351340016483894381147920784496804387010608948999394956212527929568511729363145939495887649179403428568156114002837801452336790451805911055523030284408652703715131418857184428190098729263716909685787811987897124824369008240565513288330138149828999218457793358771855820057377233775689178334788415639643547651692713453633063195532864024524417560492504639967621861330228678622198170183425894511241222980676656420906948039669954651322351262968014831656315128196762497262232918494462895679401021949845097508112785491157203038599152943436110962831604712138423924817179390568547280298495230853004353579344620897064458531425807943267067013476205992414802989410109408191450824254760303305515911303515978358946443616765169578620020472302000946735736730574710376930455418448436097135256750765866830661596662565114111176660812106367129841283424513835556068352449706168214880702383934102449710778858118527904822188727471390744035414656151040025398759503994301518797883610475738567059104475268301660502735904488010843541942905642975717576187666610069540957319957425898323719970666875884564214015167284793080841911072336784765117473355672208441115785330912670864678495524741405922904465972761450710777549808262660266597700196183682623012431048806106116261635157311505705538816935987272639545246825298015729245991224337415227994219716028825099476833058731824930021892751281392079516560399060859769797209048175833572584366487642140133530012967265612562442955222836072794644604380936231450901267479434755036494516396299632127364848131046753554227605545532417613657037316203892080584563198804534656094430048983907496510948320435207025285042446193788099969137142704451353391799427618179722019758336507456784263024388437075480651065356587731486502517604994985470799365186901730055392759576904052675135405759387440340785223311636531819383098815323142753352426137864320538861950831017524696709152722797715428558168249872053923138437907531402647067924367160751633315864255198272078237300906097275767359209135742607582045775827976792574616420620941443735323898862118995391251516185420532271122305514883589348334733676729820164101046430721615843760826116869245865109181271762405490909730752201902326379781818170239367060164680577334345461236116946731028733454297238325590409623417170531857477799762131626685927763910177474803229159714424571403384419761870222857962219168089563971093358684341644256562929629507386512269169946091510965933584892214813529878670925258977745534275499645019851628539632087160530654049327349870676807782594040760513505651206526777295155376056029090811095021359381031597647730775617320834107755779025285619677603088166774338687674356245260968887037583915468625896955997945247296564456050133777249313690316735119192443932668864404164143112553645358565658093849234289645426438080977054197981282242918390624490546455835453581124203939707509662288486426890003635254067095106749273361835803688828546945294303946260721969556154675394078026579848756502211663585833560089792172944212437236974969718154446263959270340084980252911605268551061760832510363799793787572115847800472378274590054047781660481256681184028273855314190875668166138725049069199843077123773518203129347846525902983861689684531203558687008936964697197868792524736994325101388744066506131257021954826727568246260587592369491971957056204091123603568567770496590996409598214297024180230030429298362045425316922319202469361929298660646516623334615801535450491906471317615368026663693514238918083948156907088122508052878304541659691022795417588764871008835479615941854861778429399295138054861321699418192220157871690770625344162113162215580807757524491700331083446321555097289393243196163788112079433995180010810169409253970648098614021579869020036672902270927875869082058849013860103752782376500643786969073865684656893187921250861938329166150147297484127502706252741063194958096336777408447794565803684733323702879706713759248467405307534873518950100264471073401695348362717252041010388411612269198285667847558713315553596322976115864964169510239667215230347432151249743597509246480535255408989316382360847653187229900185975509590385765501239468722583821405638990908177229763437377471204689784498479064761709109130171662788180945616773071624184412103056702750365941959258679577181578801479063760261289771625867332762942398838883172890132307515453800118255800004640826212327920896901282277052863139217552437972565463698558110669108063684107221387039267351544210830995198043385847567394119794125119700067028801536983400631182039252097111955594876803990729942610450987654245438220423254713003533418707330625109157751352380483399922882171939910308727998632397697880754192076032190070954614035353395720248770961063000219422912340344043089565080821962386733498428788572178874224065152816848945561513777563218964826020706062051855341801579307894926238930562864594230461760724409300607801624653412377135245086314306017548877865990748399550346805859289374849929170666431342329768548494707565660645218431942473654917412054827490972784741030884259403487724185256138638826211185603787718806234405642744357224201352268572059826926995775540912522424371993490897437774224598607624109975538303221016218951475645115381820716201942347346077937197389461720572902921455863903128679525277649249433684668791652527188817338739429796030856293317029681834517131847772491847943161267033896107580346098079602622254701078890991774371939357138337713719823996300821123134400407335545813122434287753853432227866636356761825589320504080859580653416304029401020925708123592669067281189512646143389506981415364277101957197192919103297061127866999478410073207006474878435739149157275962829254904135717907082575096943769942759087814160083876300769858083403659150822700112701604358460909480014546016878007555712511163812817487833690069813384824799379542710345996162017366943552211594739885168992766680137551585287855724270571189169406512995171302742389348738384343908413340681860689641695662095868360996292105468233984391217252549095575124359972086055970108600313097766901596758569545207511887710079872817219165511750571861105089071668443542325754147377619517859362667664278999308512552367098848362892179804115729891394118437011868330707861166748840513089648904824615341801708187613986250770694325688874345396748140606551727013601755789828031524798518281817586075021637671269210756994919534378550196680556136788659463024959961369296910612883261275618549287598508039045723230253936483474699041775070829699657103180234128824409280934129476327749002370964423874544942832089141653822659575654305251913137859974617770999605279531084092951596233823621548063107253992874608729800994214493931772933887738690047031572401726474658624396115737694510526761510908610631678563511301546877401019351917069535542503251704134078998760053010117079174954907332527219999334611457261777013781691769367013592278984262941390293857455264568311498379248817779319926093472769015232201615208811762418768985292340803657366125830364227204619905548810611334315658031486163417114626845873464181102988765082099664526070358273781860797397088360988724027341651736504525121782462650451346405558965282903607681431246335749409812899608323252488195860005364947484494183609453392097077950552116187610367756887465333461352652622301094931933988226228704716474539805122002141573369608575427163543378154499862095450280041140311008430514135485339909789091079541290980372464912847506024312502694839039125861644087445118620458090917664962773623595855712969172194021521761300563815940140083066335668224686205756156272246851296436680625294583809974936844634341487902542838630816852132917127831940033037425311928851444432791775489789074643570530407535712550531201647975286848521667969528090917228898597057926752423707936270181407506349870795960513503492561929799044450278210360669459409605929586301465693694195172536658968796389560586789262106925216523125286684731091010206628775421168457773129362199064930994028721893713826283092985331930922728472349030271642082405702282592376998609105983069458348296522783529069781184184215676323148976653400775255794402399528120233089459185779023275000190181562433292033022928084999013377787151808625473963216937426504620932992577334837011218296519305935672096959744377816623678052941005601719388924955560380959988602933546414459801460621429498880331076562165216266859568242251887961975800805640619658015522665677191493770820027514287631776220809232010135927003526548334235894784261190287495816925847469348985701255268037193501229810093572488852780880287799020279014521939282334756292196487701415160899597470790629327249957494792143579187067714599608945520919823223526374742174325236081686349256405058663057366503223648506122225495494485872726478426082652572424890560103167701817693644776670811663738894508986012978824973825036852619170530965058638838404944290883555086807023474317821101826324629777478056285739589157028433263965939816250073948370099863031349469508528804313555024535892630490502137232509800287066598918140059374150871777344022558170378820539082755469354455196430569062468929984826850973015583233527128989056245567323354449542584402081678519802697055929409201882759861118094739317406294075064321041605423610873037068422620895303480491596680035516453723182266471149027747551747668029742073028589725767832146326899502530939294543243239682570734819998748293090395867312088273288198442281268803825090856886802795791905544413846628038226071346557608630243202991082582472873018051574558191998525045094740320730588625945297247182728308488495051984565256712387666654002720409897832543827396355450998299134076099970595577358134933375184123435119752071872385274760353062363977325348009695870458360351968718069405352153490514279958454608058949056707257774808878408910605694456574699839355156463396258293155172974090655019748840966251066134520727116085058040373240544456940772983402484934714108250148450731982655435623173045728624401475798744527481992785950400197531384518567444846939335475320784565595119398875480081317383236900768964617506761965407868581687597188149398328024675299833839610086078248431439113064545356615888603526028990206784245015570406976163121424133350540475361115860870468568464882663776240957247717211911150009311976378194027828545002182974538615618125113673949761312270455019709083018278563524150526384881475072527518492794639298353499591788489367075582734055668758759830481592786972922279909133167818864269655235155016393726765309002511823365613154261747345152989646628958207496443090262907290008832770217981381386454088949055879400016772540852444014890841043286598398600986464109081041476727900127757609500002981252210194941075173895168467890615347150707884546657597419715122987659782111475242183749667507946689369385329899721775371558850491039638256926989491608948162071226866405919737616649088704700433826867513889071720716333005359804808347503042095345436199784926840936882567289889803277941474652837462538120155021347592934168492969215075372269830555898501240110137935066025757172218367006464701322727172304433683859277037123033860863094809391594554423506551196969866208196461787138471672857969546153498551243066318839534832226305815198238116763579154618330122552279566364909453005954019192891143628383702085938471025033781282233779716983128538272297520718431433783796841769085327830451856966608019503254188914133193487035120052951219424317312031171589793331002489074786008268918116920605955189697827269864901800843881956621244468863156177350154753618315080737565161583668317293932593734327290878077243721685189297594472687447617662621170146669114014354021031628676088449196249985166731485458481341037636970052506704402216323591566620973828619872346015339755522580916164623249596298452535406647825674076759780623303978094943391789848298330393752199470571949088731791228403479600005344770422964528165045343682554584548156453386461998113046274020151235413757184321221604008069691263217341252893570394735700086119026717926557161937453646995997589178991132458435903418992223632078580622942308462017265001108765420160587801602781425117535189566711169856091017365170587911130071508120837255384286275684195227122653767496000632080440398093326021632752929173197383347564522173100811691350438129215673000737231380359794824502869305451099079207576901818509861580727104598260745041658541918046164246147058001306671881177719048058722274123996219609907637645997269523631333159651089087309976793406117850415085523361622067289509465087324482708516918322365960650285814596436544632988758034741510046983035602200756003008248694844535580983614273352321614673059515191562105167769983035628720865809089921459047903275565686438225902418439565451777527348680811158924987345121231024658104174476975327711663834076007036127839497347509409999790864817714756212078496545285562238408957085460721501048977246525390786309183718481734047589156325358574833984645611730712005074641069939326789868555607786385420095479763797116203951470437763221276500546649986214148781869515764913356998399901022999356905220297410986149262762100859436256559159839448491215524806970815763538144974430347623326937636074846550832022941609010803736971084719384466860572324802770074066043947793719183471413148816209468103238755181129895384059846068060584329890492162285291974076219275545321985120545117522054089692927179675371519932295446060893548655134963790518305633077438847883843267593993185331624342798319129675409831992780225819995842782065976726313217967865614844011565982931432737376621945848179440845094511110746136731750520828007934069981562156967042911977121408274231712327733639088222904378303771496757083497988705669983610031386855166964650253076330596766812276839418055569896882183682128789911701601202502920429562366821877963183924387564594059913941523643677349151558254685310938116058226798732687677342805883077104236292766548929320028888165015128538719614653153985785431921244899953734800384237405345260843694164440773687520217915713607948859283431615336288605681734981042816934011477176869213542987490593668331395950311886091424907485261641732840744367752642977856981039639334611122816653336927287895043712818998400646276473485448520369152331634167366888726069695553291652826169152665150427632301818672526042324212520417889556088479308813207097303311470099492199756601492692704500017306698012852503979384419575333942483330795959274447010583967315329531378569494279442297200486125321842411583486770261451994281035510795990206591879291066456178629578217817965156914065335167927442359427314661391463203368659882239513889897209019662509323072896572815838403731459254075806287847349157391960579258438359938364230837188003656079901597820065189718892132858516626212007911671986767214662054203966328878637306771065232831960879725784680743655465620214938544536502211529739939686484806479104856090586542375768068781459315070032998828637988681688338201954968239704730857860104314682587631199305555215450080597079341763905081291231913838400198728995840397192768335143580563284212738994890603760641655769675256075976824293869745371298311649640243931290809933267386963580320274252266804289582971699615622992314962185013870479039726939057570779907293661567602883279971460977590929620391226232041084046371815440231145834792075676390729657804897014380077353611342863795175290629794148765629706917628672384069197933110653116890592745734797229974004838217987012696466223973824586498666066433865881332467407914201941564014200175402547605007357607128453473463916022255720683451783821630944614675470221477711241649488842772765098532819673647532871402352295099705848277090732928712723374529980123193865080054708671184979056857788471942021676474455632398193060449646936007404236541734654310753689664700140036624694270077311606052073757940204799252905033311534809194409638324208632205842087511183857236532503104295093871520772499958144096190213044173158789329300798614457172310885075836125118221996787242123106137324133430761575976186700113914300428858006216040789015553496471912266729394907869294584654798254380907918854858785466238688923283327630620882804586883250749720185612444515866378947064275822492894807719527375868953924036074138694188237132489016545064768345949314982116601040585840328221405814041714991947707265292715821121332355741366285019999105124664305429802868304989288376309435779433250413472943191565860650332788180361014925889211993625440165643039763785760450476368733541485094291728731070265604322148480892275747896978444339180672875544548162568653450989022773865518064332112091774627516657574081140046877799208187231161139016773126125323377982117225957067658975227057189808782428627904465712085691917195420343744582096634478893066462871935837496441560828324674812502130389617848424416913244868129068110884834254506217327628257036315506769307871931599739476285171159130781188241829147261703093006561973343555750457082190732036246343544507350474391265245466477348642144660027599790892582876349623597705849737622221420442129060384435839683776254692234637745330047364453692146343016743392497237247050797194126490568981736720252300829288475639070736611673708815314037663694151866363165832588290952833646037401715232617884414752547186362332687596679807831101673438655400336819478601325868696326912225342363628711057091442010862510248139656204650477184064482917848734776371150580556693068112079351854919534769428599884998017998479091490280973567346983289408735140709156820347305806138961527996468574360815542103720434936219975251196700020880723501752387345255015861373151898269753884134778082514504191217430297524161804475336447604361901937549726068154862616593397859773307779371825739176291323799995155583957799877509133586534010716372668966271395821956403836518828208492362136917780094068397726990117770741426223010921723938773534488739643787272948492346986543536166419136141546581472601274941575145132300453538126356889797724840875026015625132944197137104528623899729297945750861073524850295834953053155391884596657819914077330921237065770804011423437495228567654785101934729583936132129022612994295078331051148628007943141829732568359192239331317010100320636773494968089685893995461265193020968626074025866568632587882822619280324397399960771477602207626994366671757448931098581732061566503636787972523719322688067780588240056650247561131733436554688273008724052938826138336480399134814379959442092648543822204384554356761949883030174016738445369430142584273442606218401824431879952678369364754523325103713327154785845965741233664859980616495973816830931188704769102566031427554788810333333389825172054301165745102814595748256630108818972122426507625571365443840055268699406511697471721413310916564457441863706742901941736526688778052389314669132950240603369950743448902403046678623380232457875487613124997429590739228724362049270028128997292094799499567911169269589237512323432281433120424968284378010543726340955152216143499634101978170031839405777219341612909299643674595497736520966163227045901994070737505131240630424985360426178798916244703911534887360111236998474999300917652883947421774613712479807074319254476375340934488070649824113318823417476472818403353244110585999406631274191566781122679809165179002888634234996521286687905575827117927712519033307410558019038446844124948004237336516329923379345880824471060121597472515377815037457185192068070340305942028593796844983167031827568331590715692752019817714214322113341113587574930028828732445862199437319587602380936515860855767312638837107693068988650413511934247904669832009125644075223842351382135431421933516361807701445130542743953639876091853227211541668000941682519976191143273647727693305370749301414820410487832650838871824818016064584367798326689666066865707740221090568423102525171138201338053658843497075818819495828254055315755089559731799588703617243936478362548226571582239225009074040328793281152961849601889848496321796835328800326301711969738347330603798862188991421134997918086187429275017085970963203873771580065227392577376142206483757311097838842285224661593751500870577944858077684587995017686577564919050084604862298735313262436531722620703613109918925260931889911203420814680898586344584816422824548912405403074872060996896556196377583258455835959776636313539953178700933608022318504890117415472930300509877729182797307196262919468740171411295698666818550362179246656266547580241595173817624547563843058638603977661605983230035854253260390156785249175659304681688199135771605695852591940109588423607889203563166752419177583310000340857271347658208776057375744974602127484850485841532122281489856337856931902795163894608454205695787442544438867608627478861516325319173016906622346012942756862797078701480831999295837103320198541967056140709061181834336155577524067141902454258802083581988942284083964945112551117780126306803108602523841397578221283450901794541405781835497541473606571781790987387958174024323323962209789352807424202074479946866266396783874910643291484485386370922451823220514882432201689625649118153114380082899757209085617256277057104419827402912730085381481171589669869405193741613039657116337032440521991555182496987382265698091841658982338093341487878432826493831805479383580921419650268522669303992137907056881392188205434008088301531836603544896620199101555803217651129922083180075664430344889347823039129661052151409073996725812241269839947720121369601677587363015611186296641094640731569173061638200618324510772358214789983461756927580353225661400858376018321323130757969687157342502772849648774967003577307737302438216514873927974590044436254738480242633165117218519169439980203931162385296988701963827093627955010134849590822497858577070018311886536939890455027020465915454145986907149788691005457662390418633141212325509904374939176483162140586548710171355242948998956469431860146910927548306981797022713567000945020939382398220007010472917947301552390985356673001325052829033417103617019520278627043107191638651258331602475331448939995390904822118886865526172601146856224430218322100872709824128085166939804832051097917647500362712453580093189369770814734466914654466252111128218566190668049972796071783046637612660530304353571342427710699137630396719265554403854095871328185602095855619798997454202987847407479670995419620473261177731113252500635712992603944965820810393736513315384715525951988828249891768989214970583110973769441253359902648299035013270795440205802468428460705292049399161146360338469612165385994278891072017640633885269582071377430871403076848459823716880444045724151607083504437172598414414290388374441764668843940916090923273534857313247159840525891568252344300569577193914197659235947708196780912409987813281651975792429343586879468758563772407623961486540835458462884069869199667225905418014295715916763349024553593324479811703189568447243119497480327985305019687470172942895217175343861167505002235680985142542675076956092049657799268320111589766232202501174707567767799932146147123112546963402534731242466415443600219264102457124879211504188074937308653716890498736191884401041082887409672014086235775120362196527557321453501597763793542267009920911752402502468803596530595837788024643848063858776856127457000468614988887441549154490483375182553705418902819899087242892918199611445762083192949416940127278961909558251364336664706702147253616197192711919035564925786931140331529502977456905671449895155100240135719799935936976511047408551114122431210904899948907721833514254304437463641864625942627102406671558180700812700949502976725448242134878503688527310297589235065749932900938399243296192096678630989678747943558518539162812171079980732089517444993102399420110300827960747112268395510839686522407850778064147642364471287587586082248038357597068749516368172318822481767040792234971039492775273253535774181160793193469895025583604352314085256365614465759623233563498229339599318025963424927924197088645707927633185852611751037096178169230994106717158510098529676587178372709281023718284735282416440716075605587538613810459966578494410699945306633289433721645366644623957863433621017825132624166972456264052650498502013115573981377713765545560636468494273288000578931791772091812226729918955920262050635898579782908456408190742465438914522885065773913850402591215245170164582556786935212494180699307682624771899507384166070379746191179009884239026405758230842057614378641167088075791462471905550221503823199475132426633344023200801906439964124720131032824418724013514571190912269805905459711649047723820790474521342712157512912842869637194178635346066876911711737396655513465334706079363535551535574570246620430113739131896448093112767094585757429722603936790716058535113305917674120585885746091489773757250704320117950457773705830132500032287938768965195948204081930965421245699719453150156811658044385555091793010451123123886596169443161334971504661775520612091393353723460294637507757419288854253548154383718993201033225385340816121605883186908628434478423625860142219073767360267445726226305825564836511580834082845743854752760142468868664813575142678539867629225944272152035512213380791267254599263392084752557412435718602958837680523716088465687137693635886404117168806162847780516766402031790295493703131740443695776444137721290896147642296320808484759561453309835346243607592560228194003502044922131142417116854056842060930860339965542196599973487672246326460661975669136944590935963903393350979072190097113847348878967407506732938173784387369430779122463469599823934717270465890424333051003478529708394618079945208928611025976868730569220977742496374745444612295922492248002366891011036515763249917149769992954103194321799635580903761413172373789619339259809315359376038695365507584318013189507084037564880471294706574385366818994564411957717511248809182955638643924729096256956972019951622119665603093605791706334607631584699122825820941131410117854529961670257535275258252298085748125260966503589275509915996661198239630836254122522454803323220083146282164844855324365665497429222324231163682828835957895385485910185558132923060131776496814695677144475058122591142696254642074831999718781897416465303492695204903799533965132883538209547146937737877189456518821409838759036259509533725538741708029644590739540120017127411387069372083738512840526665676876220190746747923978911008992170433540866280715810748163599413387243255541873176633008413550668064618130188894483121446949825893310229846329987100101257320211220589157034458329254696584254443083213954765874638427935365621504451524290551481657967653785615890531455697757904274906948555589011739630573790161800329102991025927640783747733036976166103269186448225060199341033369578936867892673508650991656742581355864479867324337486721153001948503301338964395467988170678711042630916830464459310836948572895362435568782957874510520115025090722177825961063720646169415665628819842770445795039667094104382689060436875772512422562831819734547888476888628517434825342874515220706770795426163280270055390581057277655535579078087993593597135335741314311592871150869307253740623045371529411056044862375242951559392557849787130278626752429683586080211254663416631100309471291191471292541249273364746637165230295433291602173689116451308151086321314255720263299891273030996962973292325367467555069450581365152990175630646177919580399710116317278990699084903272023384300899760079673940679389476746499694962307590297868359094385115955432310537685763658508277957007061698685567480998494353763641475893969305112258675041884756973155420420098493088901516507273365364202623638759973289714297981190293617844532222275725802622394091967518630845823174361084498912109597806039936041295462761943072857148392170650287416262267320717230089486064530357336445009161790977266250274338704815092230712053312901664365953114679904971767869304390830555527797316233842241405957277621243919138038805835668090787261098694312513800513436055148561862000159975854776706465185423594205005614623159923638175051254823693309979167669205187480181357112829293550935982637422326715819999565978583112590882549804784854538869940012381080984516294382181900711821994157485870197804311665510747030849012351239530354111766535839386864308038900559287991297575844724579977533023714816984346718387436065643922241942460463108478091663404150670300880144523837809894746809565525323579485297551264090200517120979185893984840538828932817105543892795301150358376664384009310250101995884630259976611396199463081055469562991538377866771632353106463975633105202835006871100926481941981023579718223758721726149740252759493489295287440481947049195900252831703808148410419181072942900459918324097278394681981215956768133265055953709722011993197772750573059051703530456432690450701759747030860127280657474316207702013605570108304516219579858700773037759716348889007961802068195834159220618635584090086095278137809792056057702190108162416296270912097852232188255613994035891815995798692043893208684561408386388314205517458515173314877499437840502425532936063776701226729643827125555830804470562228217797081338624392906729956008288362834828598204979622003917664298396620961065335353117227729829227441340238339834982003915072656087351324107050972543468214961608104031343359355789646222371608604659829396043726972868301064280642804515143332154548780250463721091486796786355082224085984115313860529683174597156263422143807447288758635912313795224431669514974289113638426768669210058640174829217434913041579376725781561443751267704247371141181285938258357279450041687766810875976133260932953571321793294291003823012201559624408116017462187347864445304155798162399316232695965910654779440413168551497306698330157520453696649120836626076784792598181636909917565706533424821893410274843238010229965074448046370442239712960887235500422456662972177386082350357882912641888549391588674252569409401656022662398922484984393230101308848489234144724069807368628149822635252346710268095680154234093538964890473833561962859212203494611359207051754998862574889219627348609701334589816060412003008201812878410471187788920615323559857472784971933512694885817211961601323432819874952368950723899248575484614829086628194335342466365234737769555419443140532119406961171957725296994216511277181456443999249739158294081602409926513760172300918701338806405271366631143292416968365991108285765771968354167549721501105684049220087630442879468378903507766317315335249874258044010695182829587628153590369162941546529189122906441310182297421032595801479832003564834894577998429827627785928739404093558920187910437159031888432601983327772330559887962062734492451669214967297727391948834764393738772560937202656174663862509602289191096024020970381386873416884016957803926344516671917302845473156952739740999322821421954445537407495670876542414530481668463552316048632628022469742658226828535431458683626105536395937957982929060813170457779679546432179555457046441319537783266626133922139399179334102030978844737809960065292107655124298180868505744303931082856425780572325216162840071926021589825508427427036025664006201771887014265072870993856010036526472556412086183518536342111553652406764517662433905474636381327309382525544344910251641632187604610727891827044391354167350031380766767905503972589267990422771749369450353792069043269139741105631864486101454046343859182038610526052014217165158553795604467822309232616325733296982283374248725564724197248145391294013459870165783166872189471149668708448918419208065221881388308062974476070192516043122164215171831472465654810818206948630974174359039907406310086218608549997031863783014387996597254318158633467426741028294649492530230927347546549086815795063971596473713389393581902186055238238406539144014694566812388995872597371774264296555196663191493601313562716308178932508415303349027240068440799674814770890627638797289771370869529296472537991749166524309336619413231674758092969327251901320956881923907598382355701526349090410987800410968730451111683224068730638636573899129774733114447465099538589031207197926039329191329488234920104649904737984228288265520554637998024599971973335331793320473314640266524705754887200844587550540160775942735354674696255667592810002876967963611158255004744042706116669114313339674820928743754995309613283252187502650476369818384929111541971745695552776817918307381305815772693067995511641613438391799476310734598032476311843963526260896595341289767078594206061856513632651688994116947729032361820071115060379051055070669827592837307713048955425573900240001551570027126161509565708881827744790009843550248704247589357395639823602194043857381291279500871039109931872097179399222630220100810179233135626154022764969395030598383707626222291246038922191761988276665711131336708050889621554315087301404892849785829458278635669509328593945394006907462321236149785566686225200691988736625419322088418331466079060226614751992880176128078310598407817907480815847391381699809929709437731908540794889539846420491297959707650546758689077991887509129237260915331610670428880679877150367384012534334449313382401641265174995011639425010305725216844867469455541898448426576791849839749916614089459569423059574719231474979828041694564470089819797544593024187001215309241511347180695939800103585370472717520962760673558086569927506873118156935758186857683518612788137573883871682297369457478134957305765828763807935394307505716491525076114746459781348162464322325903351453188391253954191366285151874173212804381369541622893611819111027976081303261605322723825528577835263801303527844443585610167672970192454770452343772174980436004286872225729149450662567355383712033435047929134656073922042852258483369902434623734081823405559589733242979797732917954810188677688938855659717577563082177687501199056310946899375695715971219710187782842715937588496863067468933111777119260043555058078214652133308799262253983069692558106703596867090492390308237384237710746715272856783308405035259534249032843905588788085512222922946880114276355442056789258477745360514426002383755545632250798996013117219911955716038231658450981492461650083696970971536474116858069707150570924623674868538924155411147333285238896587584614003620182580102041637585513642877731182247098398684438872764396112701683569379190032352669813416689540000530420278335112029587090766366867734605527223198613465342455893017677194857650268627319796724521375883594607365853108269947371056389693974300725890140249192173157608263967283400822787616749806651401565746172138434116773539542472478093071373105316477741797987878591530407828535462019332315611591786677004442483038599444617401683212815709875221394207172356960230190308705930736345546879408633780275416827504117621915966391479641162109558003808236297194965488552926419629546763758260706008416028168065891360889225202871609890696631772581221063839896020856024573373606805168073854679768097335181806536268541632369221907966827711996743195256782996380041251587341499231497585829390347406338376719187296791535575941541813385476790571923242202802795949360252200894810455671654869934374027207055301437696783045506039740226122786143497663567133549227566455315011030556661197895898759459923813919510481823973136034496728151013187158211133893050054942248202251003640364395890171674039285635640684787840638734255103170907237959680683974809398552353595169463092756705567245312038054180022239746499386804095195789110049277927700227450833675298570075590048855991909026721118020673354366797790921378062269288204069620165509095360098807619603319515531527526678377346560282914185879064144789073710095455173422485453881869515914799256752396895094651771623206620638697935748785325147518085003895309213452745619387073290945894321236193872177618154951930871201078067440722464033858932742190706492886848888066552344388288806439167128000491912168599470357830266859164480100221965873332265225934926074066620347987068165846712046203116146224722024443805639612957400053922889743944887641470153206208633291990612367375604240062945519937673865559082394953461300020476401863916700973951995596837811011727357846481599657661185671003615658515242933232042697267267453308069432779032466149344312522305560589404426334950659906063279817956860937482561690822029700711918258880897950489755904676273908542761366295265929599455751834795949147055094786890603090970536173304754526507313060246472620530465507443382616280452242879792992633934385988072515333010054161472953906714578914893148393831483167057225520689576873946126859554555426859603600443116922293234757605766709747796622717540573106437878823326953313447476968379398453452771936522133535124747090436904919727271427330732128988283214560762830841617541520212526269900695825539720661286253424509069998961253802944065537895613624171195788798365595555714097756756005939554633837517243681713969810068888865115105471549657159019633093999821571000040172410329707300512052610563100849655095061499143551775662534972451981279946032139982685919567109895058301740790364014495585201410786525120384459645888044252310086884795548982091037304134357875688932392924076176309366213438664743718720738340912011543982101836022539345476085261120598252620196925813928878367177362603222057913556404810585220973165550138414628382548247848837201900424654092653695747552782919248460223689236941295149989392742712488907059227145496306142227969841977284326096362437010080662539490956825595773907471874333781943343141661539315886272876947306222233422002271946754543199352472318463446369540894282347201539038199354553875047551000136935906545387450095811739185567452947472038906682813271776501633485899044150641004107245253579133992466536931135639735147957854483629794614935866752275265242458898429842386040438354136147718320188842512270903587728558913911943761502626666485841959448422879234113057506037856281710488447109394920670121390812463428109117464946228697907043480086331688549093016054791379640611102795210923749618940982623166758898191418637299607634681781042079082682425768277210120624052765957530490636437099406719204812964622040548693679091954698698462419912295055792672328986147301087787171306281780852527390393001011743438725956270390037411088670266145001451859687686543929031371070428642559469382598423028567841268304866561115199188861016208580978985253452974686502212606704624020010023404759512234832273632368850169893647234513417037489985370293580930862158129967612613446452998280367082228748288453498144770054993921369691850438499727023429789066090150954590045273453448215842788383348634282590332322686942200547420552825522822407220128720496574270166300508779755299361323541107715645570739264108631403321714013580443744977494964742705552740984535025825234859558259487702671205293224436581573284367049756168806281715449525414683639346284467130141109228434296855562477019406971838698085500260827398223616248459247506373574160599922414697764799219899948390380754947203608216621153846738049005860734882790754772289447115314257132939378485140660807925974228633493671707484568390329938760548842766733893430306600347237805338969889195197242249002687235564063258125918967858993198642445632677737463216571071473216705546680435819099903842398462291937906704845936722478965198728947259535058736460435080638471445424265982081233100020604718645475904112330796981344022271884824155688697883429627266398188364379526155834686368365074435419114338520728374977202002854712874669083321520839694786551789194375593108581579384605288683153580112192672194585581964581564956418166121339669478342771766119771471206932500200496530220544499477892949283264557526697659788828834574623485271295126009982035813599564883070763131759600556646121790497089239827124200295408787968962802593463370540351799821963468760579861702477408491836976377073514774495753036533561016137907307937026802835264024312564487211132901442773425272306860143112547551357795083272967752853572970750255809797297631937199978061421238749881256797927438712111314987290751426233706879026114613697497640828629663670633817450148085587229821085259816658476567072049031380800487562182563088286562613654772406925847891200939231512442145742382709249667784671118815884825661841433327930539669571219923983149107678966092344249356149486484476564236844591908609472382891796483475716524649297346040577362409053147562194795659424223033329351348318151434249921691188848745037532329503558683894960106107628343693267485251609870866791790123197830663243749755155058540372246656558404553436448406569507381371585076319102208033861264388870791881921251861754969964677597660500388326687272581019070598065659858243240191715648178919352482422062041209034724643183312682725170740611090613405047376321603985326514484455600083910657059407609605075802422294612272777008457598998025176279194953570687129114955902864096418440539772329160980574815087087415368297775184690097806673025360457746460815026050265658527639452298868399675924972430856513797029150349961919115135882539010084521367182452140344940317127727592729669945266183728441544817088089847881060851584993464054519065687203878352569104456281476740211600120734296053987759816478868232989722574202475111722617028142975561435550799707575340006525978020796736690218810425776424020845241864617111245375157289639783100768946588931598194819307554674497216632349464288959062943614450506928558549845030541978839064846491425683943846652106594372030797861240115680810387655754237181923206919580497543890505393649124881557391532315393021674098875599092650239142331864499128103776482757919830920644019951045248491388564489291475081532240635519368544258272169166412535306581333224167031655658052430359919264658245187137647968922501730275756221273888523761929174994457878210419330351339970536795087239353401170854346191853968267810302148309637563530409540391382279224716296241950292068424979246498277158174869506393921849500836593762652076149642280235992400964658844027546352826692559325725510334448905621473877167442302382365092273443742719499215294111936608172347828852213465707941026508486850821472609387508849077775118611581637388108723828300299948774003856349518242157431480896152552870858791829967551994123074503942867736328154308616538317117117553275182584345854528222498834976420653773885839617234851477532017213728098404194399637787236375047717565103077040835704982696660633949391967821392072467368433729972741847891513515169781181346134550885612017678521673791446503454400213039538886308427387229806483582739851074453666905596471623130802619305222044342967154841443952672230529909295107216659295360839064429594104534376311717452259129246194842896750164898801979104203595373075906026752435899456656342267014144310895151294890014691780763688177058981858384102097515970139381996773053575190504003060205799267313561992254747492665385188925244862289399934107901412361065459783063575297051823308955750961438038084547710436069795156276281455003334176402804892950381816938975454936448175023181348254952537027377920851072733222634817414421021474268587250904829890531250851218598247477909473070024510608688327220928904400959609999971575383542860462028401617560585466287483115003409702338499139874150589434594512571321057219345637402194399245080703518029800172324983070824276443590874361729667604688465799802620216435079255925352244844754179019581970993957066490223199633350947877337168759491645821606925921018678150826016358687808941294414136447077712296159942480349189812027851061749354330929514229329028652619424152049958450482452521229159197686513912300824119042232099377705722918614140306737333742989925607860048008662920662209092078201308160659936105387317277392599098650093469241469821851040968885059078676134297978804890362108763575451919190266586672821990428433094804812911240477744885094133024741573500337256320320689403605450505683143020892821710668909686156037772859731847996674766136729221982368728715965865591944276896808597969055832453960933541236182030068418192644164707962163874202561495513120283580511870810397958725817402982424077349551563486745194614350327374154668431459051806821663573170010255266161647616403607911120655331903548073009594291812301300097341687399843235104220121701661405970042256677203459656715173884312161126148905210591939856311751126074828452063507292453265823445612577591645318927240126814180681117899767274313045415148762535630934890957128389510407046982295170840873434886982135700285393105254057640539136779705943162011496861302744262170243062946405305787247188900219806820110524582593053308553887056453335215207733322790788530520283674855072755881513584603736898672995343031801303959779410010509541276065660844656819910599487265092886188356245676027952457304385990162665261219371014070822731461979654897639342031078165785777731589296608349775253187446966159088078743821563038451141992299771320398885095639918163560112069711474022480573928347509319931600348564582278326336204514609731251385365293035207051738061840530948391013945357028811688994835300629063745706829746979551967321128561472421572123339611312451782305040169331444847685797456126607581721088017879691046222475296224107904905123640322986268500897325404549904611288360282105854590214308398812578032789762231864299992168249071033240803172162639786221976206036441600699742272335051145042688158766217438646841894178040716863297406265556175265502356942407995558909673580091491256865674070350990038187884797317778237808656633139468808859407529439235325855409737453269280593388992053950510070456132892941158436785925545871380559280291952685182213458671931630864221892688119671502409908336945975367097771030786015069267715891296309027259194696792842105531570754877135629537755336039139611799281207068713969220152542456831367203919386467058815569972105459409443527096376076783973998948920802359872376367539372711833832440132643695678120261188085430594828929370862541332503984971131082022393054103689539014691320612983874468267846586137760835598647308834654059437809919215952541291766438100096304084565384482693273672811269910717145306810218092074060241845456934212343573168329426665819205859542762131909678404231956004263238094983737348685509854899748958399655537396818202078922518887662807957355853909309855117219980598593527180492080805147811546427441568169795945300326082152464188037035188183026602750214749203003133050017881048845824558600855676267253812312471279895900674277634489690825747430927809660680466363606562144614073477425942667028674306628003213199919431646524505237626857291557552557932188935838541214515996203119950955023093104864099572605984330008335870905390444398672327435020965302247583617864500585991278376265787245499852441833077440485325696291212452387291156903961760867427593703669581641423134849525531749438011288587042400407561372189578908477465419505119004871354349784334015597181706573249981791897572272447426653702271155830893011345463078438418872355199401246823658322524091272672264849477405450430438718203391794736818359120342514179474871764642312831781149608444585441044691989315734985566720709204601491736633869065795882244016128109175467657460801663805726043187266371097431521389390075615107173182002120916727247609215831148643270827429322748713778887616737846719888636714758603060694636498865006852376124745268640567534592756443578180383576363907465702063335414172084775447867312002143756344951847404592433212765333699541957382024330187952324375092337094936559274019911718822433677944370721862649249445682253459514770862043553826138990623562616171970838218719140820448423520790153215527483227428329322238641152482124292936248721297220465980143090486911586624073378958201957165175538889098215827895269726569675857453272967452380213953688365552199532153018319957349419556222353098146560336134719129407760945113284832475250949860748518297166435287227113990344710997348736457107894266548475287774533419273402182058350649337826344130822892574496855188735344539309720614115564305570728272736455225824849586573429603824764987711064074589708663993854390976217119882430425324122386595653571382635996289774874711380886170640506856616413976204015795400893653350664911815308812994748213505421478708873038676543680775890939449274815695019226226888928757202224609209617038023078593156866486181104487329790134412212239428601366266252697716621779082781955514662832593270429075349976249591368613337420894858666383075663907112131210680530260826034394588262278446297496691301393122473922793703929468982091748320023578712825876209922414849078650702886831938616854263280387862857222204886667665831872750084951008072594255937597622263662372936052222954707030734809813654351505719876864236338791980893682461276498359941814030151626206774525126722932421574437533423391343753802413940881303982499331679077963167553581132281740581745781360994176123348470363047139082968106263141408126779253328549883093188334186059708833759116740102287568277169830273254592368353335638906330344737258526828792835163498042033560073471224321150071781236444584474595625183080159040185079379975447190308595611737516908495696873914893694167859987259249458739524847206668806312108922117093721554368088813788498215878194363616564108594814349883296005297839771584051445181788034464506023400814479839013670452860012246082849320969474653734381270686968352233936162081208757898919030675557780046722728351397189153277907789051806988680072513163417404100461802553605770044247101240278165188112148134655726737450451135819904692003172986653780435560727392711798001404206856593616366874133893139121179692315506094690774639071086682558519971270537549992711044266482365022403966607536381340737919955894466522194638440789832848476197424924746750058261967932017746782700273667050203528987599673112956726073532437854914694211901067952871089463374532899533133726799928123175123216032493602191328483818458842922467551269311367096854984683141325433820471275015141221000518079926334106176584293250595119449589313000737362805954022234201402887476211775988441880337520604195504067588076352612467265458871713131239342558275084508472799402360294474566607275070639732212797322784512680474845515373033512391663893403382518932270814661764695335446081797067386347459661801418269312837704733857070389749184662155779144662915385995320849947982362598525122231376554664791326403609844108699540212834845847910975622033878453832540841502121864258696456916269784910917590847430018561501991255953537644739770786619944823301532309184035964089191915896255889943827034555412840048614363752489332491878961982503879801852433488218525884785402994666316001594782462496638223933501032809497384544147275653631975564618402701824169380195337765798738733980892114322512894988166020571463999017821238312927317711896958930953188266730436525030625103791354477201038536532575703514116624092883781984721875534058427220770540864351869644694062276111245438284268009980262057971274929751074873151486488901926461952402511337380492270654873707417369817398235431297947136753300142523906771057903776390337956686130158620317980706609048044582301281200489750230772223725768010829784761494813115825843513932807711662538828848173233960867481879593666945449895509931486324457487335602697092197740945777334956529499766015015396474077290871084281144246022143463396293702766640013737384718237095077695026539781955029991824803342742029209419731247887024650011489387677404655587848983564983682429231803603994671690302369108971020921415955432434013836280252243574793061377982856958702883477426842715520727747615390486047920817916707107646574714083385500578802166205106656542823605469827687790506296092872961531114485118886775187773252933111461477974534550724524623032692722048964554888195495496210797451211312143990344074425167266688747032395496543944458921176016799800115791047783602348308891197446354427229926377478219645902106482105568039883013937601494273221398809430139688026522651855484252560708696301526701184447756162819394345575127609680020579928119425346863712899342859541302127303858440178291068670989790154408309217979027420448806727569538925406477710922251427735434024393697788993494025240297808039838183511439477686307146446491832019926545160755170000769376559750803220194293324006139063650756583344954852017419652966637073647399615337721329943894257089159185633265383878844939552342161871292709185431541272072231387395339212960989470945249325021096145979442036842509123377564051528965004514250971863178211691405728249463323197527582936561516023912247249174767353788736783055027924557545546276226265448738524425089589316772237793114131954622926353330547526163924492284548756453114909254314974980480149707278155933306451925093642196511557322156866597747125908623721089904404427294257059482678884386935807628601156642151306691134873105327062031003882503299085896284765056757207888434820035433527124912995766352212724722042230587109963105248772359851200864111702081858929347673349766468101769429761542555913935241446191755859039270815256282994488736301691321250441639048227525757200917628165762729828133858021391848388348400034185138826767451770496393643149777017434324530221214022251644516774932535978397202685171057437719415215629009688803641774797209041054962576649808421015928889498999691852249629708706153810836846714700127214408989692306657451874020866449719755163398441310615766847117323289255334223954908864465677718945410408086443547951231157830463503198899331043676909462998413450898836636887549822304429453076341352071842759443779991548626585195814263621873918976295563201187157385176927525895879379011723361545762207347022267646457240662637873081910926225394555525631451721207538367627271339760888507217986953536666573875749936911927531953196671204718517842344657863786959939239973961394597986066628740944119458529355215239240129566334088827962987748919921530717611572471688391784913781742711515094883275487922102105303334333107837391351162435711121697681354190456686216450841864647480634960576596039801464834766733073564726512278332226259090374023818654686182205573323249445438863675197839790408647230300265423582585240372150684942654057702028850067173272253372669362263600985330146485756691099579397072664712346035322401554673644902792910884220208175704943703140019695662097730313547312993529025534952121222018441784653872202772942357421379755246056818947055621935192871047139800026270745211342038921220316605919598793329037592701051679904225126054340138376967964029890086011570897628319740989705108713069385736375717735819118913204493631658861707909956305471449186488280672400416824110161365973245866821387323974692412023419190762206869882737064102564984623444623841207544225879952247377955764206699988145353304610413915062046192007320741333514594416149831913965633445373131387974152069192371801742993140671507319253693583377619042501543893105756877323365434170490281490931950280847433806458345387998047997778995874682932838835227676861963812659501313817092365500796633627053938190261810471265386205951471495509132817727210423630740603761656221358901136507608991911778699648717261646118048958694805136272207479507062196312184713915567351015727377795687322688910517720052269820644341765706710446493720455657925348358610479097220284617721380483156040166193739784911925118798326557613107408264237132715913891853713706624225681061943810909153247256005205186558558588221021940979213188705458349597751336970783807851132667268110836876688444734609712813952985700777774969733419386078329031838053359622459659785662766962804325742528815931085319079627288546416482666408385758968231059087426904269092221744835656962862836767699578888010900326051090238305835708885300353708384709471537367815642189956270530416941167497184586428134826696754906138064439747345170086447367800652946361392204141335045909685590137979128275124770668324099748571097872526931995899476055335127832516452465559022872912827221574189195599255829000197430258725564223241004295086761678949453971628145667647473845717329596837811836697386042493583635133301737330764918695798015937360319529641062120996270340773919210420811783143819740794313196839348718332996710632349878491488005762449173987411649904975357325181101344989273658751155444860069560422594761275333096623641455745076445985123343549057401868047139820934070787812378904522443866615528973463397873793674196077234674896139053557883275150500893597325756488005642153588571916444017971509829874292246645273041052286817311723420159905159319556722873258090844131584462918485826082010817891291254264256138873708384123361764785109188342057600185894921002958246354813205404462053229889286920607217112170560616161491708956246599487752250785390502867391391977300940528830733061058437255039258233262368838752315918277284325746777627647700446712904844110803539445993481645357880486431513802519634608031468974073969309498115607893461972646034223545769118964082211576532306702605130790125840357372976396638047592751107409427960614122055824851119258972632056370042577824449594298974778728829792015957562657316706702717591440677713852638996337486352492336962091337396619213845659111610987171926161683787010974584282060768224857769641272931315244527241985519469532329222894242385601321085374287672964567612145134659901383016403719808649753303836224605242517549434693384585167680704613422469445539734709111344841630132990833530448841901435516814903904126628305301904717748739621292470301503218033186547873614360358006631688447665490542496447456286386062275440652310305901299713302967589564715853110835937978653189972044727640177440200787139071369281115905472265090271445846824875331329013893751453180136796786003764384337815491974276987108442493020758570296632589766429488325124166271807186845749627133227949555272319387549479392816782063948252819644654343731256491043540792632257514671307848193488539729271556668017548601923043459400293846397613793911032517146644986340254504260589170209273067451460080693384922859387898832318717841642167440366771670721113775653622464681836046432397282919426962544874133316032825758373433330169343428647205622524665742038309891243445337086385909814148193097985736386033741128244735942062828114183073769104449747318259876713703683034011841337725396486179673160729554201535483938790195149214408757581822971799434220351272982315589435267919305539683373664697433365705776114466171992503887120726621390736919609514860092885522293394066182397876066298697192591413001337206648952291533871283953578728145548640688524744313984802066108698941609397760507153224773249266102173266740540882231980112470929471938987115497439274356003998035755103368354086475860368044173397458730191065431247377553205151297282305456173864741648103437473164252871013963966208984434144326455089363365308206212912958562893001920055268739201968024154132168109376808863870348168853685517321116665630254679914891626707275950763922945034218528886404696905378300610010462411382204736752799248390502742755042727393911496760861751971003449416395425919720110724372828125188497144345218713364319822073727363814689046045846638583722765455514593106225781963783679111157172342351855403700251557170247364413465447788010296071086705884181214403009900687597941512088917293740044898040151195717863883019015838194280729088464812369626229408831352053136010157255564383315960548770441121421951961939996472269190473057936449661759021736080582611423422873447860700879883090245071351837283114516497593630225177878569448632839657277150317327183455446848629287263853591545244200715594602911124344969727253290127375042630447722835110756569300576374279675918741130939047207073153148739347659912946842332834485014922643324427160015350025569192280024779757392863710282189554663206372994903217350843314807127182086811418942736904102713769688010891852273214040744631527261255897607733379252856412531894137204451709860907073837932088302353068617821940593932606558176149587235801001468788021067800879037044731518738916499927753867031254178824695003705393476434299632934030430666531619124837829552653269065103656583900495234290188097071546561235266265840124988293119858312877699624393163755269752157891685606698981203270420329111655257725486711596621950833192332534250487076151208606414316626082762025454861193022484136264878932518351293592276557977763554428144944269470739591851660159389655799700041225208198289410042951878486520745715852716395517193111716956337652695532363669837835690908162863818533441965890100569855694136896034661510929202376431053018692062825395931605784850394896096256207961585820556980240393689697696346468364222771641238924219484370836149083818021237394068106326011405905750569276836245617699625771438879622327190381638394388486307620502642773064680768556019383475689609362703994510972981587166524403096750178286365428615357762029116784539645858321376614646247033769760721834830644836454730260349017757036240270121408989291299765176122533048222827577597860167473484713137869910700449979010232748584057828264896923977357111378429995047895729470565860042502190999026451767543443284996866327671804327384772276726994378088897160490834000166475744600832875016948423961963678197310332030470103948908826663444442528969889791830799828450819114791293685518631735252482962803228113000193616960136885948339255443944307801678756789171026724280310584967438693518999332614672460567637759423265301390829055890890573338378314107300356793948734259787107244189965130268346221524361149556241165238204442277535177789064195920859323983052656773957337684471137965398116193967597459189807165803350419388398203397423765513946710822168281655899897663781705980972655538773421831733672171061721177990684590164848096783122777064542853213834443431328660005436082877353345875675306399890111573355862899154703301128561865528638302568612236037623307099983541651445225947688279974287668471567038955763536149106511115311928947817420542079752642500401866438018999043937187702989715039886019140654138131569267289000882677978928832546711641047437529426311076742437650325233293555797558828363510484444895500242041707931637902586589627499047659180364403430049214891734489539969660564323501807178239221205865221203306709464980082471933678783006607904712687125363802704958286728762240089296468916139351498546778483284590339462075368874656793421980909055094163135931262608757518694456710856707007379748092337269726893497809756108679405556714145989347915858692807250673055703473660324034289626542877188364809654111321852007568417891202576261798524910819200412505999149645593829336832387439012076806028358422429045839725366720665850369735886773041484434888732558525388031080689731272628384590168666951983510564870099233308919432880381522592753039794845292981096981701296481590740320573503187804712499783821318684366320929479270411513772535872642452892054255360509527446856390501603198002798219898526944355276378098648024493817337021999861473661115129258515319358528354672354731249971255664997138506847798777644875587891715744243848491294949887581837741511393028770959990268761343627714479754958876186369983161952999818898264776543508067237055073294788455932049886747219245654364339881619468823480912493220710820556745799609654074101540712204203883831910768124515346773383504943625815466601187368382323190905028468594073953302943293566238804207575199681748349526892682687201610581250813032899531013399904488612343152299646070312129246007819350746024104876554690470588488339631136299364449227928174703827424843412289957035181534950172809514389860086455815608761708304334557290570728600776891428641230750857047981116904875410523511393653987459521747126186146849891772741906844397692331511578037522262600604407289553648365063752856278137526232741326434698705497715273715937173237934296570920808681662893704953746077057237540554256977207868305334257872951941029502121044371347720127945344498590814078389110991232337790579024270980758569087073467667637862603652214206263238014295838510181235438584632532776966560023913358894930285655191258657913423345140706849607134520622451757338062477735590343100276386593336366256426511708309251673739265866983262875300952318131390970095189983198925050007043295390183884763839644762626378061553253303482962203216648312205308806057025699280038436679294370812927281822353395357435672592897630219252335787191261189270029320353299378147922559867257571614538284160983553737896311997516329149864119233317143774591166207557248349007224997824898257748938745055842525342419418872001031696332566439448602651946709972622685177523666517355149534773669301590201241921682107573998169327153384481096647422178224066109577661512267571675196169716100645756238250556883443202349397659665624601324653434968549775700247710810649926462898681148854184994382039934134692402680611327555675208636419049343936341478489176487076802959448745034374027641747490439859981571432239136173653865649801729197211334980687636422636346684612187754178156481068178569613887658770695628894214224866126375595019767048974358126751542215911964585845137234928227282435628107187270947864665714165053177618957020565415117674955435578238832056988426181709372126340497070086870365152725543540496164229733964245879139416459499267209175132284359675977677754208070508983189954035854860992886956085951322644612594263835151314057883857985328344495052047357361317937721476355952813068603831829117027205269541170732236177974691179283474522886325382717806694540565274208417239415347127143466799617402319892163593152035860868269747872360795706157323537086033947106438294913292390701908425141104796464039360983228001117579224266402620866870786529125759290365350266617396394175279907098702821588862549710147130455052783377186896969073447905406783643531474837045894019735444306570458148124756892205213720151637170781396684357036395172684818421266457566360450880231749838225354877746798664403423452875271856584566611161941451568139946243054348505177456593435644189477736366988279373039796247320192992415805482763491432375445622271617213681750956134587271488406695475662018105334399155581102415665306284814221395755179394124197116932855925632725486463727224126780666387631132324323334910101909477046430318265698837090462427575439316327673027092187798153572661175420766662398486672514767165423155084710203102158787145313919523060404667201979467899249957321853696271759066720095426458756069069705688329835449125558577127041109167152584424788918590352776805799711471729558123992077148959523539926170631735055535940502114560439339264610053952863937946732159424571920171338338604349894253566045884450532983489593017523220331733304840909984276167654151202619477680845301219217366157594563127712450976119221842866831097489912334709250545507351305001462333151421691862593787951086442398817275718710629425007917133084406664798960396386499889350334181811930765038932098132621356132304346942691555523073490660092919221848898894406527263310694738378704747956155472175680922295744057140830625604805977349059340439754400812606782568880956941998748570734571146648513677477493665548084782447735900108441523852338562552936739653009634101256199670815872809023077594712261011078359639113168565288093753060672834183942262920334379247444999217981371595573091291190105480047378374297782241698711745301360560095832614530009972733939959865725366591836025583527573090884658833804855753965122067310294288518506200109950206750071836646539054417751507140260159755257398806737318684138126166634420409824572734666402540030137010927793700485278901379912752984206046407226944927647677329508116012583025599222586745723816403695639757283575459083343366115878587283678710021030028236640584445079289456404735078993405224999126091400529280702531900936211211935240468995942701686640794694760554383384091070728869272260135526985897411234459753336354269899378993606372706825041475958100209912893988014092232753217650220706718700173087491740200971335266187992416054701460422444143440276561726130438314244335528266453251025174079628805908374836447865549079478201271931496194787207365647483941447131665584423485652217318829500097853721095134621531551494276282273095267177727851778877202597301073443816096300925868112135335190930816702089149846497568144829029460346004014939361612861412291796157976612478857530949120733490858781110926102362302908086029328865429588808937596584924919525659980306985655446570186473976417965630176771084992040708212610835671997587864504434854509749553674668670192414398942049142759926709740233916435220654672062167431797573266751727496611769106013064142403462814998793712782994737303580073094981628924728498029752889438286679273284130313920433945712790003346463852272865738652321551464046003923738510647531758135550614914782203102925566283650169827385881144727416968304636484787530686497831191533922292512448738677445442726974674984119345137077880224609606370582699115822716239967345414326947171383954574866082666237468133224191871546116820101638896080661593501411127475650554203861524137628459751212461965043571758551058526406168456677715656766997828151684745679823499764350846262772780425269879144209753444412031768616200167767220184908771528660830487212769103150287348489366293332878577897711952133425211799191601312325689819602311555611725265106127740463665812869037989208935836510032870427932665076729717126389043268474304029669002085349776945320102425749802506725780317515626831980862605675102562491760104265725272778636842624297249378977033748760875146908986120309538689020363097499541705022222117999131554010993357561161929035280361952448076933845634475363539978848145715609281064634273924083566026972201093480980527188855234917655131787588357021072666590793272631964219172655230634303315455426464638746125764230072907449806555417616988668336986089671635691635773189510326656779824802750919189144036820336325548196070736086290466858586477424382596989343291748224906851033995242957614166570323396001711523781810417550570598503689927983213768465138817918384068549610612139920839802285206070495482031982776814608197197363335256046433194238188304968874280803823029976590525305582343516785289949920614299829604503904589789155442180040754983729509934352811450613259524417305195222163421254872132294188116629715789357730055364188112720230275261952568089721732761638038627287064256573437706076103922878474954176131399113719303186427595568251772803052903363745033904871135930336170174679593013888523444752330786699379553729266770371855403548183018680441244524322362761147832705619028380242868038675395861484086410788030273087058779772444759598305572019872522349668257640659705259125942291394363966017432266645192010488177176945714306599413235075473333069851926723111617520422807992466148434235982918862995231518070124840915781665609318398481171473229212523635217417329801293189406504723504943385435349746450076560709915777795409355441563493715080259982261044216909692633774283094364540914084791055463151263879156472794983470747841797651999736729399330111506635190444086005698992844519742239860795823044044030512776680979284949053065018381416587719352108920342469244029101486038365979219483174182972717874285371865881439562685808546410958678947070926938340162862085600525305751029953576115491578396904316745000548524121558588541707642797636898816790028364835589196003702799513345275933727319838831524975412690352328330954899884184249447208809227332553245550764708845991931091597169766520340984302031313573180314252673230827722176185811029790071784769652487139667432414908816070667026045954797902963469226993819534232891425846889173229371775292431609652092903851107487591587488792028616393130423075092895585623444906047457608599070815396749761922164974804361956362818583810280301485483645346449155269837257599359394018310722727450110950936494707132836885747342743007945021957836970696168198967358843099945855151248310964792349140993689887099497874657727982382309353655927008468288096098882685989732632192999439529670900213802562653148788819612630183613788419983560005623565858001989248888329382276327838453529825972803913913509284667550415428120143070447049440826717739368445183285869767961046801182986323179147337104778554698680359374753111343181087815257765190422358472870268324985505726895171490928865570965904761196817715159927288581053843048306009402792435722965550774227125521274401956615282208898590111610431272699148543729506382155495047858038857303434566167152016974851353134736448047494319194634311253722799592127630223448776800318257247751721391844963610544214918485706002929835319319490862572776087087034130680445243203231046068556327885670803144656906451616803128265042539846581392514079789516065085613228124612392257301238184877397861213320158525188846153416946355500609068030724733689897340229084962411687073977408102686075161137105554459299012334932313879214569854923758034102130163278655588302952423170961152266776742187788813625681769818706795938036864054732455671177298419920473715540032874474185912476175954841662974511131911062792934289958442510243842803773758101575191941164323637148075515223325818574262465166858367195487459742703166263225788508164773712977167290757778299898772219334113052373317644488413255296801925611364790631005361551322102832532639770094080482601417842616292451619544416148899094120502613263977879303778433350463087063219183132911294337629575602188358066068048105692598945614284435334271004392963546444712588344170880492221340269643375169336743922778906105399633892023034131927510344808952438335630156864289660338578716020013973917834653878928769081295785674238470893895573847063043369642164297320624108549550515269082210763869390524252078762315772753733557226216766674304996638979893962622902676048644869110352584365958628708281615324310180421453202547151512553186273959839684355945925728021596635855135849460505180736998502243088370290786528916108516489102924548341515457928696682053598203734478657048323780418589931260268631819934849366335340028011272266642720644284746849597276598778973902684708817899579234268652843896679485294442906045213610424487030189567505657034852589272873211439162858129532225040097125321416484583352840836646386250203307177887515289295705111365283205022654538791795103992736402141004288307384155398747962017526492859796333894449473582891506037680222253597000005144877015768872460609820980012635978088204832781249746075411781836244270870063112202765136530706303046612466499414049476871559963447771796343195929087667794118779359100061754838478870079602096886259864110067295199380520917507886870717286742576368288724524921805485556163881006852776086781889058853888901996194095147322066511889272582572575039863599801232151456507951675298390493525663185553327423344592421681536664454270392351996525134082412169617777149776558873433117492468674341692728908158418711376079934978214939106479112613836830927360768603066910952056824255651532985643383200926829068469926540319247795530993032627939332865048552089973612179710476611954060134699675436642650476546627060771152063943909171655494549709176510508469567937013314400981754586766919661120359556773774796645690804507880477001519663390994844411913197030774954209185347848795883100694820978263517679440865132015448022622606705881981665256982400539404580346210964290757049992040288743667245101125985695665870809316010109803897574511546222220253894427065072663553422391828901214882340103265448689584665298161992034418018636221784971255930867628459753427951070142613320681964370089609322427121636050094196049133327075495100903141965639346022404200823284343235549658107844578439680074588901676918477179424600936551488444840677198227620608235714921684057346474545082796806927741617833350428107388683764240525279367046582912457519515208350543052294395376412180510278611377604290581554718953715635092927508264259710897208793908763944599093530549920218084077831663363751238375895512709690102318313814316761945703100707315367752377381928162740358485187404389782750351400715560298955820242952051366115952018285478320234021708020264751792362923962093431808700550644273882972851155264117770954708055332327573762842865911669839096808162763260707974302985485452419827646900069899131603934904993868585243308037964823460116456317013992603744631774377082765423777102201470708354916123474572447461319178283159992358259538370809698711242432656575009380530118161832126762491934455204767535899688695239565039122757462940332971453458406573207837309037169918681992216268217108255610065206182993944276916478701804765505518424294998062745078900117943481134335766967399160058988656326448892705644047511613663096339822812896722475750359617028606973867110878797442003691643351947830208094744362267973261879326671642044641916684978229539124874567651162314026685856340628384226897018996521636216727592022945881367551094284463137300845697489773453440213545277769864563847760534054575799581066530632235747021736905567868771291689338929007872736782321420786990824783436598662034061554995071258950817255256033894550879773474271251701523154153325057191079707989162077410657167875162883586889653009622308424813160371488638286467328407204928719804675526005253219817043904178412972649040706138561782647009544135010880777462476915917714777685190426397397914571162715257840315146786661368010699160991382159320397911815228438461527772662519662027555402364118487003561166722779440071469191039295343581854990013924337383347023000824468654926806623747266000593570298499506744766846686320671591632601860631598427605765548468244535492291653065044206184166277000321141250597160683504546592166290587834384040682218251069984977684656871386778678099880221301433825477926464116046982828300221624122600986439113582304670652101608994628098809022890980248670303353374662476851485635579521822525915694576689282705085520390951039059896330479715420670423148952148914838818291008418093176987917626660095595637514552844232907833094371964907256809796429196079742168759433818841491413501475058196494565852450462371883778045674289033881129370430865397320931644938572460478798226289284329622366634051709635640374278114344095712156980383836575900230108327969229884861441637160258119492833801486314334421412167606281490732658546166717743444917168624297816140166735202720256885778281296593705735153749379442731148799336028504278603796119408669147250299516382546606576388370071720145666627089587229781427977805906465671037875052035030629221790419876724848747126918455779504845176807230466841447704018053095290879261930760079194198363879374114964842933762673597961393792664710809401095161427169190858810404483354048205824832938316751189014049348776313360236816673184502990471163376392761533876281294605749649330874623333051643079489143170938228696092078372997334009372608344085404913421297238339581613807366055249793437416872365584780476237588953477489115029407902397076334344497807736978672744264883105014936970382258446596286733629561772880931236178904839027536026265534443632666473807715565913659195716854686621254517937272490506996114062698739082864380128732822970470932162282231724585207099848802940219427500123807854673581108209615270440287323628610951278062379488631595473629087248512085965840555003302864332244855815617236228425006701892971368615104350732497957464520123953909898875360091426063319578479042117658289622691652619323834068754214944657343985740851431611537659703961654897104800639642616165751109991503413188788365839249337427368312514255189296426202926129386479696037078141216630981920490430003393192995238023786810478837873376219653628669916164004451232930229581654277623137208737556220337142127255753409878728647443295836912701449873971168807184803286194001672047487853921528393312455014037049715946893790315607748985800113174603184669949778920652942566812268015036453379937276877254115931551531154799994574137895687208198779963911716468613211204188889432691809668293279927351552653038885221132713875375746773842503626994222924152415617197511440409908669487728105851101840441761612797672147367646879721629835718839386483341455074092236440934390642013645765806828704836754601887670857300016866708312171327398349407102046080323754953230723812670905752652318087905818172766364928974003218349159113829702001474352907636194649313623733585131547657487808984667282008206042185761415503118593559816719977437311843104003116072287875140859565456550933556676625733534024248240624839952477508733236088126194768618039076387684609020502315086284772064171375544432725661583200925092705184576621557229064814314977140986252155175540455891925814505948046811854395542933312781283750941743666601245438208996337035476602545009841131048627366433499331484929530600616609710902820339628818015924064282410970739348365241767963356846948973960955761191227902270256452741555424410143347345227248455388120342161595519332813740579974278362550579895504438494649954771559510836200615668435002364016959823650368993718257165817484448543071072092752838085588711886207760481891927399593536829082467868562232997699976837951316933072040937672055501345404619085480005741500589200830554397509506755805838481598003244528356574789470442568403139491247763962664055593852328493258168572386028447346247918780014380185582400227715182240187993412691191090823842079925776923658577092421799877851148518889415216121312926258209950871904326625009595926265310004006831959944205592056530310360892802517463286972922287798773270556149570236912688613111918992644374125578190445348843998707418584767355702981827716505340166249075687331388069996620602362459947675442420955171871728163808318598665171670734006470404759815540264985749390369723858952568334079549143848774539969042637764450338640110760576906321592685313223538178503400459867218852912095643546153928958342217600832964336601587236615783458173168407689222347472350375278810191055200931571837580389184762707569110728631874573222357107307960737551999326877437611247364073113501292405103198709017209888833513438724993131794304574486108272317048873209528780246107838375199373525466743929405693361759783366898109969434965062259709147921522066625353659414583661855364790164235682249396949848564724910166162185384434876092940135374989924822103960480953403043526452478154475004152560111056078382243943341147378393529089907962510303114136992239497768007698123657986698639997264748627798155731780678663960349216372048144890582048395612497769510037839715327371913597772009294547124034552674182071795316330837789474484144259851195153238016455073281764577391036453863249992446646182410261669865696815609000580433562209709260452713185672445478347637193662474316224349446623480354004844076516269185464416666787246298090033064284444998703852811738360963512062689353900859353911704664863084635390139609817937822291705327691557446630309959326377170228254363377292327138500704342647260244265313554035366544310074723628976248863586069348421916546663250188988093688479242231093891327333855751660053551091373247198786876515282076201759939081419393314851726036553929821896865064503000627986508982144117416735692169583303060435692898528593810852630739386192904203674306336829525907429129013689674701398381062366901177708405242872331014791159142051698908231840329159465096301285215930326961641340351605537255259501874003885514652288234204129953435437756464434644818186246915812738927197330383382865316453990179271064902501096116566503035808796289469881174154708050436044694890596776824645734207106321454212606788307151569421552840075429163841397506624199081891570644751757880124990339018395092582278095821873236255316774088926120724508624065876154896366679032915698639782386332966677594251827719352933211845594068294563632422654952047576026884823467868928765805737410607308533490109802019348724980771174854576723913624243939874636269612620934619263769423746972026072064682028924817837702014461324927093460136915261059124608419444379872389051675602356240908077015828642451716771632814672593257541810244400274834156711349525238621849040478785835722339821563472907452213293668007300186773169246710390255317765592280317117872069378969980660271181951559319333282626476428591306546372173610329766688101201837555513799921921589813830269698322631419419551905853896566326145914918504744458100872424359594830748263162165447843044253921663220791719943479574284499403725113727580674732237140581399307000031611634944642952389291967541458532034478649007961067472324163527341110532009149935353944094715282265012332465569624491932891322822432418699444817756540273295628314446007308695217572961880705525122956579211529696740019075473132823889320026437054423686192070873612437400586232910200901950951447526815612147893668297118997753854014038168112311450650073638775540277623503689053397458034012070423098027790694193513466599439443409477568612459948059821867840571965344789149448630326730114415315956590359214241205409560772450328485454891329828381308937210600524463360012715557131284134320303895044649303124019669173132668338143127693445119703913850902898305525998239022765286894382241716391081917226006652792232480668931806063979039633657030940528030133983374222150800807176266210268780278425210222023988447072955678325151509743937650466832956204478640667248152454053170658257976020215476710788500709592627253160482179067907268776859367014658037640676099282112907349395572077354895124391386919105517295127879739531733612489212646745976725033588336827510932963168357337678442175746603505875189115695211774242203508949925069729169556249090109272965451262154345529141697530355152938322508469296152920266634580826210329883625385502825754179891726679217983739887490515799271655301262653730035159179087577759688538372627721983774156232144815869301378191468775114884828512640300386016730779436674296456776249596804767672531140474213368547240480998373891210063590560411939274748651765037355500977710848618456297257172168524436046830339511917383259478182151038574741358533679319208105974173517670809091934338057431614800655259873765771691495352288281142252720704340640422052017181054441771438303109781885042172868273323646645671802711689689813220997273998876488598094612604127830524922389335049298154655720462228625592251508684645802930644364498384458193538258982909934998776818049786785637501214575928812417434771073082005399078975885437556728008728470404737238791413502377229470488016979784471137004364773073805104451720838267842808780633109669090879848598513843882594121244098635521810482472268546200245886820132612327652394883310321474956116807542425329900061845872041950044662848005263428537450548185289006537100012955095798401717010363386781618103114582292213349120273448010522179454476197068717301286228988172941687411344818089396072227439597395749952383899061826073540717691968541650456087160134878873178183820216506792320109815011405448639917308473393443209017710908362919579075633091790723155759063805947905081842821238525735963588341009193433212702120109100656244556696275162171696745559393643213848654733660828569378257165316459319250018343458084507939663352797327719998546826009099197631796529693909099509413790128529143175972324237694420923103085746075857302587290633683584479852051327140239873007134225602181551061816890591802505888593909325940173915981936971278941463666788926299442964193400044033904666076000270395503853023568034071378500263670542453031052128672859252412195815038793389095906220057274732835157338639311733167471706198277839529466259359131957841448502743949806763917993242496510748421691619874030075739973653957203219160499346391317397935670259678295730714099301496695697590274081281442252571215744665215971657691362388744468542407119080031731180695315268414859858178264643112313276841040306122972080921649039965744508534497306198307882235162522989222646419724009663425866882183736713400786769319093582500010469924850178893996815215925260103745196076750596161091770057380826907358085727605579050995493035236428678483599805482885783857528280396511095659349938943381432394693089174919847994389835859792580749768158883076005054609903676816799714762202246444186426834883682887952907109840053692407659506413625268734113959466587060177222556489435156858489038180674496297860099246452533147798754120786731496554207958117322551923724285865988362855769946641061656031803721157112789396162662954794187202001763108816136050190625762774738997613738561325416803781471581157692016744376329212953468523975222834968489618395563815951805945625569891696500056872830287413457018913168211482584916552799440562643895788951413239763946156225910682499778328268664362176425760101187845917440178618302479403065691424556695065060236593031596435162207066751158527564699287231693571422053100992062972001333819941919978474239384829046132745827951591492197908866984638339846382403537023962723352351382378977164502627524566343358770043683579178812718333398865874106899121895155265275677716638002272778311167654338876647471594429219866559068429703956799422898282328061908881885179317696815196886954768812968816354466420023999613367294604035922778826076211814390940476927685648687867627558843477277673581966662855352005952259464287166159971994680154249026905619459311206226221201776846298815019364755595180251086998033694616830857162876209585389166277648347058241250942336888627293905263163757595161734257653866645539179341290217858142784188555674436075774989665563963199941527105328735810422422256905082854007081733751681338598240934982824513220369301389021826525619316505104049082738132150210100701465783345129792785935644664952492706875419677656865026579128647384481457901470517679449768089021754554502877328087015076286531988623882422534966436098125820488456556682212974544595607102171648248490540082966461177408549320405522775994799634215113012781648663386831864503585509709170370504803845814553031246739486663679371575604912087173643483024041699515301915026218208060558755415309004548131430250022454361509170405744669093381371793881986046956762887219722905736975918801801055890655176575541365449545136551208912731446260055924352489075461017041887105034833373829055674717463418302556952605569616514859952872954428164322706642033132005012190491643753706351789165455612242283131473991775342985430246288686038900605971896963175721966094039596709988013317241731951441808640783357583245097646689185556029887179232792610078929076681101137483498608049970397536870905187028826000371604817868769696482491405299601487801701785053908397356613985058537014655156080363328905647225246437562570820275906937547113586828802167639261509937509589892804950231563069623936141196116830043255771366632973156954039873145503513661490149512956897073894103684868674542175647443899972603912263517144091112867416879946294279482975958513708633977720919628244690488551799915769775930881098338690338243823178554482122861082994096193970521165813100943963573764502883007161733796588383615616677518941265901144785631785648668634640052029799079663310688535086721533592764654375182631221200437417514188330509603997917225114321286285802982705645408414331789855365854693690263325569269933282735515097624564707939209441879082090102991632882945940313170422758284280365547432931696052814742666482490996534842649316419114403296098627934414004799625437779433478654079203407543577993585033309222411377799382478010591684138585791289803485430995828635339784761406903233611560664032750506449965997049937751888053114568211056429904380817207531484410698461644980182879735846592072254088206906686610381186457894229564518276790644742612678118560189488998517472575243111002868811441243217904754078230290050553341432692266239085302686748340810188088810656833806455874359842782406411803526659951116692499163327949403736314978181979149381748785105452873826034398661619465699350817981071100036873997761887773574522065990140719731051218400691957870325108182284374193561794589140016508566656049775329077220292213312329529225547646786954678869825580122557812921361358277678603530618532650112292591683239048560779298224711448693300198352712465757019155988763720265102073118399004848296503422653698641194364889611845584226124542573324504338169245957577536668061063959433310573292395427179248186979139210744520484493930985971706287220747337366603034514351001543643463938859996155159792554462488679770343187318174825458764245802218228361110261409775376040021926670938412641322184145326183499190391104728268445320258138861542960389663186812282127684837017545823259010002857906667497701727859476555856015789393212474612117262997870363640580453807570438875843452584347747938128821704081384578121656777426383364931444825413477498330837767888121051596385377370717567617137773386677833711895901232972034044781583741705172321214150766425667473154418750205957421753412089577019212422225499125357412081565786504639055837794858315145563795760668886711293539170412297351652543923976660319812354960602576795274630803284887254403073799371323444687767397299642942329533035577621255427252316087010996648486719171123063661166892647651531000808297235730383869759075951176565160483586410107976878101848943626553209900255678627456136138961171770570737018185618299874433454222916477516220518872265898324555381804505911578893420966857688482823556498197333217958883792028784367224608559843534250536003201913341260660642630288755874249867662342706907200390671636841320432551370469801113579762418116526361758171313911814422489982364170493347700753341513646456913929871014086330693096782994088008400799896489540938014787367929738345513168718133013957499204857046097194422155655945551402791056865355642280297073285309013622965427028952367357867991292702641586436368399905987692308520542731815817392047448385501618193152924344200858045727261916115995228249204699112089218378661569694235408612768907973029992364456362268488106164340769190870023925634312079177372965392271863231079610893823778280745431036274293523962365755853476661188513083975345527652799018471255804579688217596875985160768224592532114210303703831669352099499063373595362842043836123939862856134419534986141565595669784197562898086575845780564176905182970387908937561564692870726719398585386156227097889809418929374382153184480962258875115196676796033158974333766835980808980031333794912239687106701739871915841648818173815256482292748857089446044748329026004926946175246388112843259968397217587444313653930495094928723306115891910350657194979424432499143386446866340982083657104261202580286271291888503286762332138577620395433663172397738757736878697941326317604457476668613567248799611014118149727334511428358747769541967119976077980410625077094955432264203671398079931089179242697673184144098849937302604621683721593756138372886231427032404208019949286838465523764575957732150687509472877196181873076370751103189201194831412780603820956680422507338094700563971943560380280839752433777481395441576223988608637091264136168253603545254040859924362652145121265114620482962994859804378277119569978862992253021779511983844206792587724393262327841675924797786652012172463639298161973996746796028517444695150179031141943077737558105921602109368897065017406876355308445892008310435666902015517288484314033225314081705420644480832627702215731381480749490423783245904827931726354063417402003520173673114464825103619109691030834259191973098894467301902945398401391117969962102758909800283198509756783688266738916396398125385455731355089164783117147692949613391419203654693450225222036009972813984005419455295638250040754736976208976929126931623749139395302316952927603922443013368829152688039425892466655493956743274586299658335493983895778731517767722574125497529159642723970449196052061757184117626664501850443483331589910546694682249617223400405320682609804788779117939851461581792815694019003671618067924711867069844502358407655296232372981885782162696063797903554180420815509154625628725680569719614941190599942271080615185184058891191779549328163517533284763797683286275376659431645800000320662515763328211855212918172375547669525263819942258267224561701141239703614477021505392592670397196488547456182854022644241675869572169289248046754176288241717340176653640900807442006269191226429811967699916520479123650617978684680501472493811265577133060692632336856338491916957041079662934690472844419693759548921316656446965840087981007139000131730940938486402447067849043860690887905237192227420979622418906648580062404148133491524325202660216484017126379048311842687188761988032555871389917185987476664896545741304989457284985946665217756719799087206886341167650662180135941500301255221896653425751060464228880760185985957180282146215485662378301684355815460215308182961708188466491103460769749681962666017002480453828763652661765043154705479922768951048287162753967159641076882546041198252002446341385274629240284666766464458607710658537179067263182360836034962936856097913781677612431550828737835088232000712356498784515111190201572176402272351382098194508918540814332953848565662320149386168908214996681657975345219363105609059265675484058459937523257812173190210368814670225772952864297281531370326140805766161022404174710566618747194030335909101047945409877214879947076717258991512515017344578301353310125713246697958131917898302590691316141373472116864327374522052365969186453402092662781727198814999174863976701979950480492318079120416289840830500601902833773799154790207752495608251146237286582151228055096678393457897043203091162909074294192488102080535550568684162670323438823608301395202633844386637837069323825905279361686858219384432942237717075875637122061159964160556796570009140878607021134551936338539394877398207154190019860611573203674489252156691984356486785519313075753075705760432324187210018060496539858009004086383008911991345767474880413474301172198934587546647089695734649175803939794367687230550625025063834580642573376965813822506903361362705265144950983639866156459924845165840891829822170762267553772726588194922295911435234377832041865609046998305933462096690207465328307361931994585049373797292803004977249859142021603527912920713917715633755117695639735814236998258952994299622170323622752520256420335433290325919139403617219487441739488298259102954818650442168963614671904089305454524501597761906107684102611799356942826333873974195869211921955451322032609581823442823158384327096829188123273748671244679542436786671904468517428972474225829049101380648337520541744437123446723254729511822187083264892019024370916069155693189088617968429631423994433542126674099364017026201415102350045804487542159755312849151636004531921774811491309936862674497095844899772518544955444106773246367892535013453808033591962492411780951091019950900320259838351479482370745577584048623503277524462493045403900028518105498076937322778174758306150807118284391699575082340516329511241976986159971977148499921378950993787448474674250818372174724454003825465743612500759408482472733655593316610910957062596701376260611883916562320519373027429387279590683011963213033180788590643509326581407031046528274959407586084162232607322995614149325634794008624550644448657437638348555410620724193811008990679229631993017189891056421762436742958664946216693172086905920658812757523248377354975662237653809232341685591052616488151736389155223170069645231448553805751030711718771628220816610764569684745511631422199599185819116423934022149704293011236693717611838053588033201914538796250133594918869904697882899791871476892071218146468879985530359624796017592522074815070975708807657896024144810629765134881722453709136249573566930253580425590201387221498329382709745203992304619622817773539315051941374236604872159737512927416683356508863191161497498209294577635228678552368626346829381463701382270154180680533806900752323645936042531251878009998956727432009623462396967330526870635966257151800159159037066367985385906056566021471411723619611390243930492735193650864995415492047464283375132363989179278402835310690761188628379088675124909367114574507860198105578200413493233665347382302132561474383315004174127146972117605885944671594325208192153862794448781298680337438822082964578774261183421727212296583664408906202592989724007986704610212329793017466039471630051621840357569491619902870671274001041453465256856473700365584116895861038793860332489536507853141016701662634034261155859698809469950418042554321378765059835506055118440252511696560828249728923988104340205541620099518161415527465326007066606086348027593970889924731449131579539799226716513524606736311044712904288987830128340963788204304072895008619498724784943571988012318788825443958635061834056616253253447082847933270370722783326363769468468420090676000054063561929290882725145207784007521226389418219157445146469614723800261328800723232597585393522940943587019138191017927038624696157971633966854212259017124106584678674388668437798138195071927098989278659453025363010922255507763531154579995665452441916631619916313599373707303970668431364858952911813505106633842958252534574426512997209756025668829253399905149933723361276228376589202361438916978483757888232737204195014266176677502652787057010576452073463374779775447194143294738675453383547398273745303051460691164395837598376560371090026193195646715718123694518397982112805028690292147328270834337270437765234426790563833005011977594603428316683583933233660540984159461586448011467384357470294917352712511403902762065912334549689928948067877650998538055118925943789806816774204063349678615266543410260197738099725427443578005877222001963576660361423047437146800947256638137782434533810588256660061865337461488859715556437817891417114737267484561348794161563711629475851879055748941189525310974692544939183547169532468837826039334256827738646231143099334271599482132816813703479993807558581313858194169892339875502610624947307031504869748552084815647085989461093689199836245666869716437212543497595625301035112658760652330144615947613735583709314241740032663679693955564475695008996536472157848538077578381003715788647944289570913100923705210874211824843481238773041766391972688017464614045755361612381513840841198255664141458429118771188881097511816738490123653509997862947062705893113876253047384978158811027180553709693890441932503568967095957165543324287610743467451615217543585574132572859539249577561009773560106747657444148587331419910021503667799961069734233457482329626989305742711801720742237481056700987090434179692423528920555126273750056346301843028237891333632887913401388863684671272986338401263287886248945740323751174190390199690382171988058976068688262148813466971775633478900664947165684650268214634208850511776397148960234347474698589105583477334526390886760496917567681421758830067267249212846961467813519706233047710644824142869704532122019555088562573447800249446425517213275438173948878514106305516702216496099053132824386040720428532468722007216685664039138946728940716569924209342578393610765578795544313450070250032825971600508834246015993955721103513923071034991848789249900215244405962510378646065169493338572302401432629822727449105381280486562851988640645112809091969705414283827175250508438433780805409525990267914174796441884708190253450166324223048185379595129218405444856728625484885722355283499262861202511280961826087206515866079391404826435135033365926504793571817983609102999072690997566286112667082613669539781970725476981690553952280140244716804820732954976854683074646435945271508278596137497875946203980109020853420897323213222540602794585544809223755544925541953533692412892940652612629289204422941100566815278519989811668503523441227689606889906457215848755027881139286679117911596238463294439980135124496829993387675576780362840981578353761813744089651116122323073023996770289495312570705873276907067502861644159305156369156522235215642770693114829968653405963641802164110279391676707275467919326595401099395490235766866921103166700386333442262401302010106440220495887312254886845096546430809828632080070457654904862137204803306823354370910221787381478029294524185428890299511064189731406201843967591846873503820828819636275866304681178438856845744487387685029401931868820930978571074359907017041284515091335207672435652886335139965462720637527442626653632273747250157059733131385932410706167053334700000566374942977034237875513276028062629680200698580516805240700653344117640674228902262117136093333535573850628846246805935107193018552355369301416058525077041417452855891224637140511638071213350792068433088893173777181635249538629265321284491161229434745455967933692905435862412645997047149668192216797471539268846065497363006972063369608826892926607917366868692205377688873348629430031325323887125279909515114124741028550911545553044212526893500636656671111138570636516188038095791341314550658742667961974784226267775797222817694150676278721175847202822673065167843651208958973041995917380342001844817736687158208914957739017251003137329276060649337369464646800565558493200086220264259456442329495680053138876098204821601488374700759255177697040838344917291194095385758949208264354293733581458545155238579653592177190460918390748536178219495777462093492509801246404856318700360153560797650345522013953852838951671913625443021696983148738251950377558906490840005184818129710713672673196860921339324075472071462060076440870730313219530693884607946689652555777951219040087550560620664690712125124405050848359730882445483065928805448645685518356764937915546506906624336647466845230905273309685696757456697393060722762491471555640211117370029759511097984063727712115931086872125328781140601770350902868328761882453148440804107984850826213047095441125551954715831778735293911536810787444619123046285993901791519956239611203670209011930949380877194563801601325542915204025907793674522072136777248755203659971757112345902178668172444710052059101448835085105186873567315805437595139848460917646389296380768875896821672712910774751957095388295265101360325080307488627387732616263714186985594094097371728174498781222102014843300717949968805007486532717094204915558413071735839380113883916399641214397181656382584499386016127301107375367011093244045579029688149372448544468143470397500285957215812022327825755884827645926821980729593165851608336572803521684020318471989626010251848619828956245242479171439756187716799620178288968754092705742460353524447582107180289772942066763718402070661423379328609309857985992605940856015597883495188210528920455582920093153749224294650057172223403716609781340321370839067563170958866955846472494947184208285207223052968286764274515269216687837678538044185529933234228388162844353469669875447887192108010748106127365043456160997567092063371992887371788456260612804613497366249798947157263338552684497385829309301419567535108569321204295195220145243977046490304842673273367840605631679599748243275279231797994916492901484872732939802103879275482733186083636554610509236673518817176702055657427900996815402428600491271548660578793581368262453951208082191425940327545241887575768687783527838862789151616590863634352139599636278703117798065695648314838698641686745219511195974232980895012726640288083127140075159757864486422012878099733231612954666836079297405130586254559120833810468850265600127327019139622109532933082960287663585969662865418269110819518202242449485927761118095777450623030902208625629947944904306207085827693566628761666594998558174188229948183020348011723839696132491839061610102660844985825207468256784402285180461756414946675532922468009867706935782661113265687930708772037448323727086317530813353383908806918315133283355763126469750314300710568937277150890108340300577238025153615921642164375697290480975885118702615853619061909140035340301388103364010010006072248230457775446895591746378901616106132945382815851470201268733607142568749778931648186770734018659237006177699124989500241837586833581317742826808549444272048494974115760367826193704600242762527307290500866647443067353495798103815689576017210461200296195972633157723339589338499176609759676848908979863453711024987246038183792857495094221689302493238188657198896557100571734177005262617154642425788522594350654358793070800060019130745851673700209478653091772299633074462488446292207286086818279922104463057510010334473187952468803335127666730617766214836617534103693808450784951134770931311853383690023204994794149016033323494642957123355703838408872293105096988652118992496233569820678163792428979512239500274614631957273344219383033769115396588967482040504894022525912705831975789983606134865717132355209324709747603630563593610094668992730897662352259474527259014832995902509751899736442006561794660747266232274327454666771356022364988827973082119159260623437018038181195567470150222090477104574416633259413213336623515662713135241222239549964132274946335856254686201546193764424289188543538929123331975898668525669921706271617443797764108822204576654277000152061246981170721355483794258419862883062409413293060142461659322514033056434324169841868535453033282001321505121344181473458148650892346889625600423710103836853955144784764074124685652931695708355388733824530929315502040249279089364464039041375219839012117982679892975368836803522267818282463295544337225263720154625164501131721641612300231348858503378865992406383551168428874080089824164851661597661751500996951438698926220160095882514342043806576334662390183200191641374966471603301755576323580683875400668900132288350614609426274315035549138617843622245105657164724515327910417796524531950693565718041178671399425567887136780856568273319520335874075053250577189809194113092474685495261326467490182370389560510914801255173659244147394855802440980052570904477559301088481569980401574215389631451225629266842604151727014924628098243782560995045914342634968596544649774337763268657013171261790361675757159517086924251262198406751868044368325796235766836151762738631534172391332466469354974805711639959253044859582386289176829201892634081259304500174386793714915459957777688601292775852074891461398467199281922672614574475231845653594796027630275335987406958606957922378264638679129664822322657886094485299809747651081005634088178356984054382029690962526900635080370338787183199520280772060204154644378989617423510918927707831966548441139506001192400596649049410663506884531992462012681646428728142278905723671073519702802912741801252743113988841466674025318244545886820711814969922711908852274135240663424409515958969695673910841891490590124036914745553806191946883151106046118887829129805959565058644902361087808883435093173446031157715345217843232733836069648822614832049432685485341097517566399838343113138441496927932481827023223693419870128397086459224154338351188532790291295823842962088868675380836842142593205558434067353765221058873891605600074956788353868199053484374256471857353696473759195744630853518088723370831728247816910980181409578727726194274217397715975308709154194589205647747240717916168727050191651380783835568519548988956317838231328538467846851779501229610110672289794496288934600883299554279740617593684781824277471390335311648962585914060920849634904606135365721305589141485338388634135701567513286218576166291620708811397557473762118500065638512069381188831329292895599613374774887006633959550280461174108482497134917009409291893407043967354855961531199542538658089221521975208275952549842370303874798484417784152642014363894847613272819621142535159825498701754580609879655242688065667146041315106011508422717052808058852771526652011889844698285178087419171220776510781164380254563550103632028634405305663045153738443606857501685275533545837478372279093714935045360653234791275339008245952049053009726498383532185724374089868153029431394052927220043930106089296251638754776239261386908267662875906036180524222349360002420755651587589813897764223902402764779958299360485543608439665681926978370581706563711581962341686186875368445756915381460387899274108066455196083779319831895681949327241233392197141133795842942584385533040729160251380267658473086264365417257984080623021288923704266075724425749694080678876731379601964735968335141289430012653062921789772776477400476172261963439697997026715457714888454453251938779043591462152056000944768910853319160352012786316591177504521232160856066820013192816630695638638534235460763066099290425978616705749700819442497595940205112289837723514147315170778545633223777645048167561647991636117446481570035832715037893573202543794211398190412713849495951171307725061386837279575047337070968733629367268986288643039230493668337180569676965119112649786514607098398640672176427005363099348592303200514850411221791833006034291474642889793002611099144934610560211984831534151893176030561758428548996945351315359995085684410562309524338429155883416121988660120302880650538736071329562511101486636117874440196747058835961282166762776553675994194952799272517679896255578376600498786954394372638816359387197684868281833043950205265165192160449024732770192295987651943925095025586381002976830389529082920427940554262987801882751338616899344869784389857774580830847888725970119557308363069466183416160241670048284899646727959591386316837955240216053166360262560275354458848528278398787217514819484207599063732781659531777195658382972754335915567382664491233622022617824144872820885688031250379458831360789984325003287703021637028285290834283164331314527822814700970889057134529350538052225841588104498735899587703567696374254437095590361574358959651583799044098167649827526716673571326573529564869406695561672002631695656334425351551291501686042215604016446708833447793629422687020554395496847059477591122991078901654646093061103041025136682378071551819052416616257545455837059585696898335559629959599772559653898642924801098792540110214742040684848704900097208309994896946230246678053950501543679919346809427748492701422103117546140253135000951603569777955098521847887753577000260772839773641374066028974110968471722921082794984700110712910545655838348674997327900122329355875300546577705701223724195383609362783101110594467308481971459352005905413112239594535473652044211946966485372289187411077291395130478536105170634001911591684939481047412719557126629955555325719065868160613032968055525862410299745923542494800836672350770613627895869146176803519219484974912799122119337469086284478085588489920666737837682309247916641913840429960712828660911435083658698434780832177605167669562147297344254363562663114390650032694778567992105311642934907607869429262880853344879278072240427562471422073339213012946146239400500688599111428621435473940087623965887925923344135390613549809652706914693520146550932376674690774814142401479917722258924482499918745772535622960178359054956006675915990642092448368422977087140170382579505156950508361949737165274068939918545481122938727476928482402113889055074519250334638162523510299030177031913514852994378285511545787722321255686140559931210081410784282676860945224933838027542052118997136035726277044266010122161120262469638722386238365753294690653107990645240852040162638081198439146805569995944587209019681819961826318982766327274245629041700411862908578845762608006119365861151814757525154409913316107569818087623243240666318127941292557626281558677261920768356828975522180795764216455608212928502114125692261004791844483257769813531872890644632612294251486346717935022763683013261984823304531835618476417653982754583096095467853692043882561747250510438543187686320586585767797376661621787958911640625592744576980230168213476397463871472358873964030558346423518388162940859131771560251370206134109155956383117561605121273522680303303319673686774358047805013945200273426178234530228801956287600770713574671615957721367298329720216491104326409491772649788288039223879046407193490070776933538870706174211859919058502213726532951632511313387002544450699420453407130873905517052379978907834842897953217395440521813641937665034614682311137180014171627208155443902515453533019907828763409416677983787484357454797710963263673174679892775858981010133620544835704705100227559641187253284732732973581736492015960432980686810426360204350702121043200953644853255453857818314914290208904909906022667105918351278503657457244266061282671868269909633931787762836129382726998251651143512979944250170162436345978235661385234693072812089949251317410726953736618245742400126523807703978545281672274925424566810420593789458920532895892687667172676387784007570762790018168720456009416229920826305759672300071540163261464191113645871612358811414246033311032580211178342648602386436242015712594860926482205099718615611645064802588723510950172201851602869844709193822417551145929934901552718294957412846211315886390845140551538852434497754761576534145466345696979603306064430594975248204059910440522231089996219140091654942691289478863731211596469786872080065250202503848930237091358421803193056360741748719675515360865584149409249914275607046147642536911757996609526150080112768465193717420960268331560006155124440760776831294466071249289319437429428015173230854645699223199075347356097533436712401044646394504241593941862682907451206247562812266976420246417748521111852114000366843627880423039359198736959699053803293642982973062919913754930772870328998235565922462354953658700182995144764623734094008887411920236372406554196293792229150219828098769839886642686781690372175838689701264030340062670837956003307867048240910549327402900760396141220891395440586343188255696595448679538511086221947864707101067524206132720246656834929701589101070019153707330121324295358784576662039483203054108462503537801373619668720517870469941855358935247460124719672415764888383332015914755093220611517886144310706720176386817166701634042605445880725206369933742275613874280389122496157148073748013908348765504311889483820217372001993178866353489911056658270686904744786877805924055898351152817777563888357340518091285029293283524070996940753660485888078641843812493028526698475440459009929828725154334139917200183549420448670454799063325629624198165376003777145724708298854737154801100629197844517450472749847040099608553782380508445515670967989689746673849390427347529487354383748957176324640491613769923339803433872162886817969552282251311530816095886061611837067495048873831163039991951650642029263499188082950873668285447290015464945859529399711879237449220125038645989278738653570960125941209820164335963744505975861055927594000000990102074461438074635761121728931271538377596177119609453812664668106653802653131328882405084351589370575738343912102564568788800271772700089219326718811835510509033543883585210076406775431057834917882474711708643914213863811580068935007134490918047638489708649828106621577610076248184725194517425626451675433524209153256964825098594077008609786852664543946891809109895429590869499175111687793856952972564174006890066066081551889426605382025350590483353571057237655623315479754699127551294074294679053270457202329286310479132050974554597264482920816366391725416161006612922648365304452792124488296088156450489504372714302813135410364908505733727222867935673742589975386290917358139701371517662062648184887441080921514248019485025053285075441604153901536949882047908102330405197590994220209356787738326278082232058893468505123358489975581466834394123458111783776228675485086999644283350297401940834425682593908975420425735287770804975552389780483846944259901436061893291477849792341845024162315543987715114290462243814702125652241767681117670427159193198285297795972508810843567098866352878200036045309087590571411108821136661379152574200691558938742124882771803977281683923367650020072598245528885562096347255784375477554480731328299293667346380836711049280158641395095335925065338854607528360528818333800627400452937406275158850388721308387987093095273916537082697646840518824636454702171248512671821418346692468027352479614979082234064177441933381482003780997536776560256047186325364834017295933118465357364917637740894925851383454062048971325987759198456539474570411078465530538487798911707842299549284641827231326139594214132604329057812353822840273208634400968825912655817941100411908585663032844705834549393665382926608847312473135430150505672528127161966275728708840583030361394188901146612150630414182237858898414690850440237363801581868302267009361852367075205053971950077443122386453743165027841548505220109041570647766469951711614379684268569914999104180252799256600495829038184939561910101433861722803237461619589817173354635826483258135023480541504814409721990138187330634572340047119773577189848790492220372304848977064630567038690262403037407722987884230298547829378308104632237058453498451475800378828495003284800014119220532751103666580178732303941255672781099508291348200230988354135602062629725426436673640766401069427575539351973843353191033229909341294641785022933563735224521208388509162320430726073671571891241174604877466247000571772027966659612258157775614240600769869034946132882523556417339642387222970214264547120819634660396398668540566634866717292003073379218328388404742327081413992433108411188597418177668805541314166538654196932634595103112602283083519676055488198905562251536358736105264377924431316967283564534268876577694645599444062926482302110390471512315610858489408280326459283088079139834391959417720554384128620337574965244245647212413356400418231160951437041375834351950360791719465581758942866452509618882647180433654361833782656725589975882361852539635721158625856539893427419477041693037233339766022273120837950593538221100264028660961681515633643794681992782469677190588050670231387647498529511946564536198365201379020271032956908218582221685133766723503675062809139136579329077987946624551289845863935348167722129418687181633360681935561857032603785974587730225939417963498553502857230125972682774608965134342848173588678250748941506800067741779718756450747524565500583511389851309784326352460853576997026722172673829304252209877574372482531039749189007271110705982917280597058743850578101693799520436888132561666763450251367571157616700223261310212755695767253416179503079616573891576616888067077141143994555957981646202982373767158945680817598563939149761151293590112010237251277274725485421437333454147390096495146044305923802522690604308789805369900708655831442447413038844790607507555691822776328073895186369676514277716447424940474838696402820986495358854641630578919683852710719195699663760913112282168003618872537038640956526200883011758322031206727629165971489064056499069682026593309059283179116332749744934089076207921081331238322278398557423115661243826961525492372979220748992387481060090959901546394634334619882326371910262120595598265451790426427837637983946282025203009855188821114803248516816229877489951822025812477795309015770664141605073140238090151302826287764738252041045447333962708326292277742113505969076556013438733409528294432171297279377470449826525782857857697811636357093615144722799870593218223367414993860333797399888074388906267964695439678123548784643550878039254200966568028053803757129961587387372493084518564329514096161178130438227718015925362202527680957789590246341842293515629861648549009048593277246776293479608247672041309290390587828519315899709895420875368326133603412259510347945105001817914979069783959093703239540441590333413935481197146727168116091460187718038061520261317349599849360602553754472171616765356964524402215620448710010813575043368034863233518095983824242412867457755313390920861359245474825272758953067225642247799298227558348984847462518892955589010420650772177684237708679709549828144512919332880036024015827860836383873052962024005841964973715987833431911123718543460723394238028718090096031144306037699784513750241506711422911742717991798668525786826327914592154236075722806372627332838550309629081419665436530350044396728796299238666893403899189512136368486862397620817430017395587738543951352653893161466614479851247711562396142511390308787112871250194713849813981881877447074664240151931948464567525772845472313683438975994332583719453240641987447920736461946952385078807875954103326897013414697376058608702088584444088025499503659985110171343345285586304895495900034524674365537419363377054832860215881430887387359366315611635519802264684065190493152199453951024355766214822710226094646113030358389825172780238471519346185253869993627108904118176990957122802298165772627489190420163158013612023926431530960953376033409359338681218341407019043255730986091896614313572531973231393249851567983312169557355498138097015510888100693645680683270221404001550330555088391468106922173051097806932540225845736248840836883296544327738003391636498522684897237239563499048969901911863216782253181240182991945004823905845706891366534985449945064347114526990223543644152767810914052020976987205853584344152672976022117768527143118791574878208061005070902099877211819849515536685248317819956918685886755046599197186008451398483980656352384573277567963727932084666833186116012204142046040759110995638068572686004431102661279838999886533154646077866074483412000183049676415488335979957953114402844962705675366602887621923311745648559938966523503850484330272562370537956810832793929833336202453105846337240763472716979069756964740577833579751338422018984811434988323193125818813325687411050776478616150380267338499280005249918283240800872112601603064531733486439565867878147556981307336394192276904876262812639930006945001517230907557532954075280717331168794011154074131817118465270611038453124731901761759243934610428265932514161799811648736206044902789358567673539498916382588498067496942334656196327806305092795241348366849465964172006222625220166937081839486837647564451762583473961739888463433350132713953021837659653762582396687515848157336423721070151753028985883333384720660981823453051524563040352188797259988264831895068030392067028232844258041446729250541147757920160071852056563253219544282537147833562559731392396815117265000065358449359886388940635608665306103183227448725638570825781154849437390532808846156709034871787474522797514376613454718698141301794619555921300897652897108523526496085244553483107965497664188451811350446127442172080804429852993945406075683925202554110587283500496484799519252054204659732016607924252885437101084360280585365395796649384299852315564795340874999740979712243252358787749404781970440590895160034450850663403969155034955042875094196619397486894206836628914127987721419015935756074760276077767143563573896881814368352641557265323438016740216917887764152444520746335094609916746764692561406637809966270941521059472729695936279489449826981526864007026731153267977648701620740593791682559737526208661790981182506875068296792781239190279838843238807650742704900951622516993584939168560681893959999020814943492696213835613298908806292378070582846363435358507288759922072398007951816723715300727745510119563200808024545729491154746423447304307051949654689625274137839818085066698713782220901539328733794898215504086864875677931973611626088075921841441667737433940910272038343834515126084674004952800731569772287889039617779194755275320713215381976534267286228254041593756196145672810893361276612396377678856022133001265320338429362824629674322944152854937683840468296707909119943659117945561371974733181049639868338180693730131560547166631572324900815451955076949784490415131906778251801526392795870595717520268802104898444112247991562784989815660636681389068726605798427243015770399306267250255745635548727239604000272110398154868025586156299163368278968742894030946921649266268290668804551342957572122020854812871894562299563394521051650959278568699165042740414628583273359697786077333445605023497664906491017625326209997898599988506250039021663041687014862849071646525780898145622796152294204924255820795770576055570134414020679158624726990742386665769799420355171174799229071512001850011964835647664331390944113886662220092130975171444554130279167066501213713317216193962888475515519540884611398032997113503334397767397503014471669048860735213199568995979557831943361023093818328238996124823201213809325828127185879691225954753115610516786880005370650675029196599477417683225976177255532231030116788061588711346820114961122781582517810907144531054440603378858393355953440464460187588639972449125663565013830068430842102126334382696265312421259636046821612453554051965383685672380728524977348818988589439904810572776806219363285318996922801988710666126234116956346758108103796515593101125960143886669528062936815048761648744751875756491552474369063857270530716026954679832622601788829891886504093121739498020576969899848361745729064362909298993305799075911919209697202280140216550250217570458880065690292010099090256332010455282088890557487324143752812664493802087937367128671853868560341187499011314860634318696260346617668924177737331826370321011268239555743915408165350595022546762044295518191246264607602823173849541888841287828791818318587605806705862847181559288386236457551262051422379237114819796725751131414765801044636716609962779274849320742159400786506007890709160234500632203770478728636647357474717886161752520529683898623034831077840636686214800866268201753496203459238304394789251489656982103134682459831708938406741054015128474132157005622716979517935700278873672881803354895468143249553480858950483229701203476633413686577648606151338889010494369969687658434936922085257708037068845014314683623725253935464869430403706053162851039076784100943213733432290192321544289006271967797326747924409820499374162188022820942937675428167476264692656101036598627438010935860297522092702033159243289519753052257152287211056381200650167933980596137208429987424493663404011436342583362230367622433358874774614296908998542083720376793448393870346096307492209731959317139934995888249934581219287025593463402521524418791940981789309574227602935692390538345992476309109370888377393038527634633402397591869178631175827360933647496802981860567220117537650731516663712041880017213816359869835035265980422801739360290342182126544438783153858908056339132400406765768678936891163206402613773317866415503246141542543039312671035943818132663901632433971452359108472951225106824220987278931910780268431225930040652949532759117063294259159956492761761093099312700490044870995343166660736301746865188101871057255719160616164939295238565488946332767768240335172219217242379117252724538533381162731132260854663021072117205301359522016045191716640091713549200133877003252516754574527615847061851869316178718009824892452488163160732569045705186979921126571570483145509513089632627744456992389034052078107502968234318285178281604380476818939101870110755664263604504864831443724887544189322242444968072057827788329321169977205831065873997661907434125611992374645990789066337553701968700304957024321861287013465705860915983215471445266372078417463458872652803916509562776897027656482945595494573039590310614078299138599020947768826129958356590611629542100898032179753301094215233457301206214322127428868224246671370673824293278030986472621481027490593565712450064725034797662573504867953048111640127563943754371155190195874260288594909707024639695702601719054961779339265507591436548931720825521822468793650435297730575973900383556322285253431353171410538515153567901813853214691426135647005781012421589821970580944316983911949082313552472563411677971971619277398447608963746919812062448763703993668133929772560890570078253876305723808164113709396343420142793134564379574776860487042371134390892374512093487242368092363707509528777062913549167995341827011656410424458126091006938728124727035297958358892420175481025885685992874058991166218404881476993983490324326024202289074159817561846057370663197821412560626549380142094236205784890995240198867805575745064444477449137187652867609049601664652289915896462128108935311052891122159624952217269600000366580697583433655599347323255650565537217239279646872411176439286047279103758331538538854736578868023313046720439410186831635953853489131793322624484845272311921909353731509577767055084431771812839892230396915418081188915225151558152639649169829006289228536521020260173187190284187306188838557656651930249970484337592519882063541186603183374189767057034421802862802701307724124641213153488160094548490380978767463226149041846411009708714542749704536556314135461429997037440775376946212521254233578776358183998987440396662569955184642249963990287324511501260636475227872071442922203161702607653118376770730014746148905387132052703763207516481766378510842991685770575554402586675191633882964691858384904192290830131637977427294597026031145173152237185353077589509695132129647070508214124242102983926842129825665865296643835489595493290979575906540158803599825228111853092711247026961093961709376902643970223246567599117722894299483959019424237684798563052463652095215929580604236086417522688915470092761103695239524154784741447534332278973206475588174143178818783050186550804570875061011456524340080731067553536127442792294118826488459021175667748357690741571512460854231209393755081612227849296553308055293787812660104588509003361131321116359358849405173247036942721122798927125322993281677223185471812172522834629261870311226316726635924438388103088714191625346616920869741771401423447872511730386199462041750511374951450210084113357316772145325265562827712939229244180048177908394139375361252921540994587183352489315056467870650768214675178636354784848409515649159614302110684129190691029403214982961808549562344698550329718161135180932571669562927468422089275717411999526737703768746049544040071560623745287859065318204075400493513439014037678235672743876218692202392915287295631488317735585253332882202393053299393958312742952289698705590351465753747958056094648416786429422996297967804355198237249088596506402524519147187437608432908395220467495381051196564924592392780816384000439254753430656465313142506367934362465100537518686257886179455675400327481593874919558448170735650143465960963796622829726798127809205992103727557401142341904478277514207700464261093535975428122622029849535791607464699207028093312022498871326609154266624685199423855752106598429732788548181674905357488895355201985156451602937238958154387515360367631765855506426708045332982591109184976700549404776507654075396287200673928827102806654780038885120529558970986983860230034552842921559594046072264339111163751751649519995061057230144836701310409549233760958995323930258237464944710976059655618179791617709906632318935471862894782425349161024698380150401247489743574810377998406752101016015785828382182747828420055694709044301705249872400261333438322841793629734643833297923160502052377960670398235416426062196980011208258704353632860573709659309784701548192899397538023895608538028097096273951676124698097474081286049284365988773419639897375809336848000414774696690397951044778871372685754681326649518642007626213166266769677471206682495414931134341965482385295668434283756867472950029501456526774104947999261936248728558244612956440669369639139154576439764714624916597546480639044015398693638661986312746653742938280304441127072167751525856480028827005114183614971398471682159288354116681006262487744126969291768747352409468216921281391305514988480390250853904348607716452307342242590406224940969364512404520552182202611844487388481855393428850776826330263709819984251681162557860588615552715159252363088658286952479417478845899239243837732669652251956285750310643653300034154370432705796277811986947899969662135754014306093647751200119905384389265679691815058360078723091783942701697751998233633209301299954542661436468632420081660430234185829002642185647162257227221664612644243704790931893032256687932556333385006512401442493854984511765188826549131592733735998331293617287273206133806681802953078957202327188185333024151396007264179844143664998407392641397891980828304427508609642304462454152589426834476068733128783576528311076814178963995017973558970529989065975100126243682350473793753621633859470174928618441024100711872429934522111167916833303079917664182489096950796797724697828426804884356917271311903856809548464066777044941701524117926501095970983733552403709504299438587122790486158686712038334593096820591036479697644028967419341781706229056102705894015850037297455325583068873665326853808448201763531429617921057861378037154794839965089195736118188203380243635489674827201663313010622218839258631160061127560903454320465401082529821286664222529700691171029476837138480747403825827892781293934382587623427160667623314352077882056873529047431833451691507084593152369531864179720482291105673605493737288417550223983847523613413400649612518692895458751068769555783632128724473387405227739682801490579393578376806841995718106050050268011207435602747229397807630862270090615836317266380493778690569339081725932252992828134847080520989233600307663747556157612018329471257544145740369833086307450347470288295820559702078996800853569775646667212365252612725477820588119194042428876911317104381203823599799514437297400218945798518411493920228413780754819417571278889272470032124835862762603039244665187890957954948015327393941991167167856608059922079688849402779905831369854323731671402097541237785338077074809530949163883842093214137353230626875819750452681262539797274623118296183346213024973068903689366918289191676993805059278894564926958811153173240540865760009384547422291686075256467887961576782625778068546244542311647075549266873091767792509297766635111104552242598882356925832708936803972467203540697618672486527086790608536320688384402789030586057693120690770642874260620174196599355713027608741544670531737907455917226501730608788882517921766099864234560867725538561343157089510293603827000332355600242780432503132462587521368325121456022905501791019181589326383382196394985860771740406911757414575819632596251258281475552236145170625502360127793162493650441114896186745930849260525788709564596763204450510870783415868523049032724189657482437361497971230680366937759527822989517608313997076178133250850465974941077696894473082608480738586900938136210215288717287696904675557640676488488937242655159504842968043941226406666159123555626038215748555927896717047797437274895234384551685715587308739896789589279083607705016162135510995972205484344916406894686671547388532068727324945647087570224976826746511267404590667133521767064197143079558554470661867500036124328159796305808701491226909160461689410638607426803532680901791801988107179078004650761384230165822363096817803993450771092642060684098604481013347667484424314183069378575455230654361256291544036792387499719125686405496900399367308890281621873947045738489967058510174127996525360708117752467869666554247807771831134544431801422895952000877099492919945330351376671672599373993368693904004292852695427996816644093552154438059056402173166128544380434619060077654432894736470770344225055193046240600243163341308031500883747084981034919887187928039000790755713751581120705297149447827117227575030754635118495770002861020464657404854601830013421136674718186215356275831607010589042971499913812657050626589567549620484274553531403160548389335322825732195468343703649841202472245084356256956879427671543952745411867515777801102651194569476798897679538846567614361080904967253385080331743025893275280807450193930544319643377519067035343264836528698899032397477519428723187844534300700961093334610048008107790480264869735779923528907843023675076975015691208832068276635557270911712308842780726971870002863283264344324729889713055053650974891770405090091450852896128769818989688085299779569990465580667961261390939351269065297639350478664437314638136287910086641012476796466639753731109509459185549275407020231402154743943135249728388008268249466852407559496670057361298822949837754098114001723028397592179764212395932794360866454959780839307591272920303749425840752183589508963130868255062261122276696715453162566926936862088435730292664866488214424942820780765020065085593173241077113104480793651628711133125275340361936503624498554182571838341950678172173847136802365057661010132848930128601558824125058196763304292886152377975214567410602239728968776978214199869006636215326715511707913254271095927944539259112301620335977803933474812591549711697041703438625327954698803269401220129823034699032985352703320110839595639112482264063711736413898506252743915348143218636028490448075447786672586056469635176823814190083801768319772939922100439965398258357448257847544242724217036357198050011448786511155693174919210879079749320159225077461437468536220503734641660381977102377475591586148971867399559488787514744194376224201177969228778804167472759332208303050578057311412237310183845926478886292430494197678393239391941967147276642724799922573898403861755242517307406694162308224551900008451507531602642548517714262186644660580077827319117459132379757429085881434357985921877076879330294086168139046909616407341426114878069172276484058370148890144589893203084630571597645918752406330140364957453724573684641780139759406976612776716419919540452344951742600561850912235569046290218407936030373206899723869275071114441479519861935980386705075135543814937466136015567241191172540503034665629749562383653137438264738651951214198991594387569404201890126199603379287169851098958369674583911072686403221391935599278451242616575287137299657073294454405042316298021382134957175889964961762259631294968246030852557478227837216493246388940089671467723752513180548280314817013208141322784710504716553162569932799435934609546106265353050587975082592699252565893970635123679534772399077417103047872871641668238571364666635035509562373420983764425974168908477305061896706886812024623008224193224845683250168065305449342487280070025126554515161647442974168472795636007897111399817202661500505899043543198033682007886253790487836726603195586098210124394560026129068882674308787211442873079135268163123946626148738974561944743342657324328736310782589435397820432913635795175347936120948868760158459388572913345752738368912363999858856369468970843961134602847286425589284373237509955481196826268875647332195892585929406027815212840962110621857582831903396134142905526620097659558025623614553680729202316279166754489159242379711844135121169547522114306750970479756278102006461867075731149917172443594429803229218696187054784024779043114965153262889398230641822843545674390782601010750391514597059727797208430738232651873393702208469211633637629939267297840245105798787681272416364491059156171514136801957877108622613358136829152402202001207667199003288224861895027337606563709770486637363870459485283750015054149495694115709807866556098350968333410860191284543231013729363677374727424078303614999372322630692445086912885932735595825145487666300388221689958194554850553640863151836707139523702421283557650105189034455697617016054180088769505176410441343375142144998211119468290312763656420429144256503118219447616753858491177710824745189860318484717435820400953556847690060282785119096753955036074037031250197996177357892878209546038743180449424558669602729683814118485884931418474782730246789712180583402326828793399357389637936630763003597844505621414301939774707367724967727800733875501148658397163660185671266238999855640450919376254628009089192251149937333144851720341870368793397400347142298529808479753433822835840693157932725903818773071021185099412127912795796079687727755452279512705306696167483656494732649356013339086077344873585727187167865318533597466719874617155019288695105439733671196209797445557802205637128912523837845433107163579417235401983538652238044014343150813317425735871985320533802008426069006022415407792271438930067108002836948533073821063903497498015143235584930303163497746963057901391048493905490777640505033232461150997696716670504383101210719337111266314214535315131455042542676333311482600880112373901325044464153884852588358997346022516240972839177100332199548099203508000183353496118452408267663164834968534355950440695420020279029678426829758209307334627290871739125996904546158499848852483885148361281441293010868947601215908017007512864466275813874542445612456750696939459581029265620128080481379635349520175064292547215386802573362071677143015728701579553235340547766975870972337835272548536557051443397415819061166423464060977429837785997604290996239706148463792009424963361497365015941881038015554097672152310465096679934600376682857425139638248531311969689322040922034722217629351220927842898916391728194816001602569060452339797291365565513999292535937454735839880921244864796658372961620460837893797493452162752158577171647604207013884069489492469968401185432284437110891576001392115307501936420701386032963985862209470741180278176050632421340846443818790279844625949693294277160217857265076998777603456051610073047541311284270949791460809322603686024020903446094326826225087189732025046898548406956263231720980250347033844334526271231226647943717817966230519736757419016341571677714306121468814462614694762869638161970007788947326423387142731929369131531454043334022974710349300912908994646622010301952825956987704185605388547265958782292618098685673919952895994023032233150446549428256359427217300396556503531772405195867627354703011200176154442750009498906244706974782758186002403739386233186808345472360553096200060980557423288473784603470796187295759480652771970806257158562520972756762789850570648689270890814468755643420555176777262945702922845700820134378111923511747423807148861238497982538816603682929976573445276050771690817146890024300121191694475585896104901107630804871465704997603227975502665755808476221148299719960258115298186755010344290623341110639063373760384663692092873875738179793669566166327164096963647436274837922628969467518876288193015946193351668573951650756776283746492176824546928306184736215028955555868702944209050330480893485826156680482366561710137717395996734322736660102417030268068790176514565447746630509095974760923335182776539973551613574430078513716031222120656790869097629236018603381037758354928095333170765620809179042875562418055999215887288524765331000831442562062136877313041706756196330321909172667831599138416772136916379414799266661275201445059808753531057733612441061256546993230497966583055211543684483805282338317434254297897822917990880838311515640203400970985953137540137377188531890576565082939176058635528539273294349172920979190844453327638336826977389980593917870267239327171119713494638214024742643799542440533325791294139791725229954612093283768890972951456063881815631187345780286519129078500782951546284914839169962302129223778327033250476980409602026917238289111146406822024766047408293343496359168755477988790152853819640539557808181438961920129651577066379472488444945442251282203626894767582893234857226687558794384735723447298468686850871071867180951020289504677979532023407888474978505085300504582875312396250755761711566900354145560414379231027175726071514704231509863933727502403178140119498203284418308257181070735787329413653951386020344856079719760787396188478930372672204253757477301624167427660617511124924438746846852590538126147186411897454305125824553674705427428140410191932435855186518742820374573078013969082363725084713869833599765140222898078567816312999572046875117943236290111562637777093035618935263660406187358084564051452936776669359836798284532121383009346527768351129202446990297036972199822889928451697148256778447153933992766860119972233846134028061122794850759504046344681683827208177980755990875180494856624449727832592905394999804411754465134495385807001576865739200800757678251127995233082274513454039124694177662193646447582792180951668153949812776908906990716168378883173516502612318435314655055378758607603529874371987672955007793915571183929990157644844727300456095531913291399731528168542182318593935223224155864797279231176644341192223448661934735398291255585210057641248505389815531736743422716009055200957737458889737157800395092482734241967861685503675032230345246537157356339307765339346996948154724353013276207631706268307573093572309903287860731216639629444283465365435821726804124055108834927900203623361136036392691882240185201723059951123732366715914240759802734328183988086704204741109670900252567203100947187663735024723220889534387417723910895609012393677475263783468952352067039249721431670537804534512646417513783250571198176485864362069737274944315358553348848381384940703573844641519789507177929097484146776918937513833766514435284035330078482056374380429178319858171304647381529110578986175664623882499778913860086139437810901989812047985907683107596904398149187539890180444328873135058139782264224623155922827981934285304677147664665675559901210302975928505127484836309421194465565277895613402837632400019718194157092882802831431527268654474686060849346289329911735045225582807462612821185478323635148880930978550532742183499759743011002907032220691208389342848720962630330947457874275973868194059834989671791452344740586745377047030205019819383264665695204581809873401651238132662286551558559228191175552029551618405055975439150527517908862933038465847742674766365903339610125074113453967938191476583748325788117645819996568577228931453855209210988552127987230270921971322450607879458560785620819798108474691640774011714465066526808185543668373105598498035917875933874065726694146885666129857209117519094341379569832550573994490294243660439774645383817617420184769103564833873279023737393760006240308331508955221401449263383315157258043216709890117875512629186305032534620404958720952995635398762357464988685590845495804853308569434472203920050211808168841793803063545754066264259522525603388554826151730465931170616793660424867853445538222749430150885248174010541266498210597072195302580010380063007331160527522089955199118817936364355261143611453613757359511228739025161571111886163449287069374922603654676424664586100980930435761679398465151523090689846709559539698709421711161842867149405974515427891310057632587175539441402499420390332272650045904046463672992150810841511970930990434667418911685592871403662633844712382747082343433811966131388841107338369533812351013475974774777805013679090844373705701737627515535360799791803143678179735591806596998895029544565244070437423707394979426825013045000804176885864476911768396505983248534599121815899816429274348918734424544234514513608205863659440281523762235470790087752039728114287892397817558153259899114263466188571243652568775603861650589453921488659779074637460576608988768167435571626997928072768019891437134978257033566481613567859091085020985867393942690699583906592454664524886449737742157658780903340842678824597149167288075144676428571300824888574300595945067234345884392275449365637976565691794101050536665663886408430059129454784842010501215756120159652905864760013433649249293399607134594348328043212272100820014137222848454411343273615487491333235072973566870009681009546333016962781039854778694163483612150509502586225663806869465432829496019741581450304178133094572004308299089777310210579541269082375124470421922401630695741400943618541567718137435479096041773739312734609003822431716109462014844292598061967195744836383313653224479887382829608864048090946238078596232152529232345004573773874073902256198285446049879893080714044749567454079965169024921657580596511340296147378559687466117099998671009186400463097574669944327605658727463012780774250094980665920945904795333407966154083695146476187258023534604831275329662012502938573432413603455938220026437615628049576750372905305004999104256845632675285352634436382823983711963499931308670679523280889280394659594264531898827363784347032311128402857035174635952377814822966895883781961209582222521993080582239267645534151848673889958002649315437889241434342616108586200641858846248088437790003591473547682920649650143519984251912547590115919105980182913236556080272877783485499568160300761624843954659001823784977083876276717309563212894373106862719173634058689689132378596914271626101596200248107057722565018239860508775430041486298840603655682955088138531194917606538662790134401877804568416409126037082875280400002601090089177292149925013712330930474437614139261711719598866616634586454661196534040892492012778504685742623939440752615052260335379010500136110943632594627465841888249503981901536994327801518178167133136628143050409075455894229650231692118682911727384104858979690228102704723999026264684619730560636928276830982893394936779312435001217336350456197912980219604582939015083372920104732141696358641562089173640493448595483338726477018164987442059012297346322325087887316571767966435376468640269062000535142176426780987315561190448431723678982221518692786065594478052451881326007932276128710755889988025124040176247519041655025266432437622268358706033629101501228358799596271788697623035051579953146860852450410227656579141221768664193597976799590352847311029500135711392312375311781844378119409638553564307953344454314247338875990270517180070654931296478061150888896808060687934899540100797852374541394586736628492497250939059667123474161418664179011045891749206320072284058495794720181678039659347246401592941590952995645602376820756131417475307148902793373910394094489946310450951715926523676298822814047692162628932452709528219956949493436913231456770596452935889338041166521503377465305725115037081580334336226030685230583726767997612916528993960457556579335343770135841716740459645170319171250054558002958299536916351040459578044541374772246023484402461541506673738892435721109390545016307362188631512480404881951154538427555929376417485780384128751188113126651818400959172530912764175821127734938424263974197048008262979476276106637694008851665278561626633897813748763827814311611585201208848547919541688907237406290206070503774537172043104462262598274902095647090713476389423071490232609219761553262459837465379899782041944943938390480800600495114716115962447233917103102289318322982658211322861323790481820803358612645864873477149879169715844004576117780367960511029645721582584292908592382092661342556067163976902285977244815062443184580413432468887154527735302626907020753622244481180733818315661070993795067654005600640669151963103689904005419481939875912641537323543508903152615833748900494910423416885052340105962071528777913208718736460113941233234902863711494881721372420156277683672373988750283782451786189712535337592377933706248770668947901027926721091945145267016918477715211151632959378255996705847151445980439626694184310664853063921756633550197394202549243251227393773918876660498117198215594368558260822408637089889837311688543355024348614190899038810925203272152669604813077758690226798681771015034042560479491369442358252236762404840261164680129281365466315901443571025583621509855002807313493192245448880777687015004183443563467558493072536862822958493045693804183693386976520899276561484380368566673518080926088874061471456566150522784132005440033798427994997520320239522582320647870626322164961902070806063413625011325257057749194472812825712148659668299582729067274722499579669717874202532822791032648401023428941702282332855951991677082402726938071630240430458226977159143740932898690715614238575161165906925574914927557526527265215952921860619113017044451280556873205660913642886669015437871642191182336321341153986395526245127340692852699849210485922712308758456503627214889751056541768891397076952221375880384346717155981608534318161067427981079956467481784724210452417335355879642116795377355571187402665446658140317759352112947301476944345340388579662995414992602338018231763170266409213921063362662886661463381673140162411080964262804247822679032742899846878942202726276024816263818830621406717131241473937212717129320807590197230130370140546769363371808916372093601624671102686073023494850003049654021402603461239360964961659943665265369465053680169774694248655170643492289267637089560212542950052512112258440443924118729262091484441863499588399224124683403757557134653767223259030521858705182932658474852391669928690414486727147921634572746454714457727749836893768952516975514662776784912790059048086681271577131282651708243224029323370685598610139937156312790271734338495375753700701534881923051852149316560941814072326360154908335431304059795142098387729458627266809906770752502702959592615591938734356072224029316045819589044717603537036350780681808438136144740326944407861754542300754183293569925569572949062742400799087073753202891630928917438787243896576234720383664253852870832161977518097136005512225223469417225502282184345649916040408689975880901050005945176537128297716327718622925728082839227852066270022973432851589105618678933929753611863977239112817296321381777547933959350348229586741467036048063506788109635591819915294144291383519435938838402098848872254280240094584577230439433720321342285116195752804306769796637286133625279459399886809201994651757208799106219920209239955734307329638382593156276952341864905626074552619806426336182864176033818257676048128512683386283146624232052197412766679970062187327971321771476158484925416872723189692186539965865915297425425840708315084868374929132640376015999323282861112918638958041704478858650501549564823442008314922421110747181754117033087943125184952964528442842797792804706675527003776450586567234718013199232820750468340896591848010023097908315306244360365671265727727955288325942869591923159563409324839116037471574985004008621440752284334735089863502183366279145590926386993652726926366472820505363439083019535843143795884512699033745873759268734848534291722075627931161586772922294238141196518473032986663599000875944852608881386996640373716702546103911680566085280177625500472356864599021953860864752576844557765332888585919538441210584841350167500058895319007245978656199497660270797388710264996154204707745160783360498838549213693392088686112935819735720927459541544485729413898348322883494061186558356626742184938389032870016622135592703552357947005582850269645024294616143574056189696432021085895162050077208493750485237336715064951881510926035456041060627016017467504032782178654255328510685548584310207777260821702504414373589090847519325826408325358889146609898933966348722132036852452322531132119307219394568436010669162663135751430859983634030471301927866311452821194347869123568191556462140274835289190158235010058144272470609115632902655039721020010197223839343557967267964009353206019731802637286519213930536815239937115833978197333281505436148605129289712895955755117993511542820319666876855593427352398821252698467678841275804876674522580539903163858001845942716112932969005173364569741191689630211794337235071150044330177379865280583484520368147637742518886473008207735370023322026127103130419338751132900613638756934936769920361934184607748628367819825447533328150295969238414606549164862071474658619110989861911601061055201932799314670361503673550868787928875232876258862236282548650002386776764604421116735722798731733799569438471041011746065804818361444300689247637003725262542400865113819670893033713857933261729664161881853563747400101539767387380252367346215482585443194763831796558050462463637908202053531455035038140633524903228287961955596957365224903685122341345336880409783078744214718495175276722688056637672552255155210558150225293200890565610951810763519844362649259894914343076812265938779346259605001476297619559865907817438486331596549968435000646085790507127548536354824498572101177611413053871751820891269533393727346469441536712369766048779750970913283735504621063518068023080487348680261017282767448141276866386756040753419452182160944247950629030912412243623728634129841641419827706072884068495060569434862000206864427607770141049112745663878062573343707855607997041396497636655404692186740362257369747183059040347568825077601381717466362825073555569450145534131289869472653657261824037398249523821412284637279828704329937597954005798254222596046551888445977285965423994198728227039495880610329213920103479610746024360391833180146618922583395404357891363600912529059601051742188198766440550005814248170180633667164161930809493643767951471019910603525718974029496828564503725603831642851941409891483792180061856999070186774334296723590809322976319721299764761855345614882495271415518966750281370536010383761954062882522889885985973482726398334709084166563775710619337019469515875995815540580059979895950244545632527019611258823047001547781517325241549363435952484872495505190818327014288678190945660424185899667241174674079374204646018387668953513031253667552117457082690808160975717785468594325879771696947184745925248125140685267233430215146433726061540050932378021518122680116518899052875239355189254290789560098252555931831947798495128366482625832981481220440411012780370933883561857503256607887342027583499031372886667681986499481344894339259385616776651577695315518911279093241322397147195354855703118658732538330609993421330333812217990280031804825955756638126991529688476262403138532821802998463858636862582006799143117481980943593607918433657982932169842298700988680351248370011699124141149329909619186579720543134500316432304996767679123273933583086735594151604155571165945612792294584112031404848530520774870210813214688776715960601870279733968863031960982797727611973992312518511976721775472450217827537747006257180980010304053508003773828384059621119435142328506298896156353997879549263920843599061555162653048606334385847212513161492282620997768888534218312265571686382436193412158835987983768037238847170829226388627686946086609462568732270371732508193653681919468785253659051631768653680815382129403942280129820297993676609846971302129480001462706093348226734914140775224359844661243001296394440522913615949473211122515523298292263304869737861361926754262538601363035846569261900823862699989891876605202849422378839220348908697039991013625138215220887496254872555153835215804857449926724434880414098442512814325902610766530414100111052854146508048522225708469979804035703657823245115978234233992636089170103932342954265509558875183253647563889129190707675253052429155959382807959345292295265489078933902988733411822686556349894736089340930111003391493330949474392780658724095386964487071061442810240550828397408353115797590839091585584731292306362570530445548376682225051847312584428806701244338857992339643409355558857070984180380379016492241474699323959089144774152069188109572653851104674527403734011135754747759704982087062964771586246465558484973065975522153024120529193369835286571091608294831623383637720271100447128359145617691570760803380560691747785863803138508930363430909704056770556871481869062112112071478391506283977508551528429532927469657827596063442931670975299152592753915076535647608757395459251060627458667936453978503065115777108589868190554555419652879294471657346824213258208629772557483062329640512674422386103494145309198445544453853395486611095924537416622215643723601146659859352486144072877285181405938241791090098466620537061653469375349550378306843799294126525010674265736192298451695099699793314783594242964481217681372468474371025016825475699929268126459755305034557768289492602100957547104485841902856825300446368925971397256830834527639214366876360633299696035294660149920585888451233293987903900924734877348540748206529754039075013745160551911514720051183856097726968001882158623214596126309798291318621124356696682266256539267427007554040765061927015544603894361529710920821824696161921851696974706762665638829211291017880746653228462851400087491669721961870346340953047929935317328055444601387932723081772285473092681867822461679232400337493951912875455906157829597118668553600308007613791018345897417861770754872500190979466782572593485130287964218698379164694547753227617205353737287133884503832763376401944779957451694946741221320406130942632541662969126126251541267262642201421398036276983460678661161807833670997517653176970273257266091630455073992294232351017821827906782253154947332548977778151244444915243479014183334754166326508665523093495020803344261165211481735014992980883338276082168945483924619891292843088774480321178547966613910708853754776948308551402946039995091859297828722879485605607096287018043786383727413698502510347473914136623987565360930478845698264554220957373925892354167427213219008635316531960737142471044331421180860800054526842177050866713998060987607581803981034357054486299867408906030015329658609005118720390772755915116702649942814958222310371870025861695584475883524698460907216303130797742501698725263495256654165645272527555772652589786277844649884268191279925850582790566057313144310494534879268750228597100524520294203885282564571281793471128503958390992758215846306227218443731035105976179727427555857115769219738929262052517651568992335459949861278314811955207082142177119225901845761697095941303567029462380345254490495836555886704690109787941834160016940862886794889470499828902454553969591722035785914905128118728977890634862681834835975472131369333941356104315241843399572020118947671535282520026600876047518605354520484530880907499685215873672706742864164762963170791641431532470300865780635759803873798316039813678219808894372204248188320402253142868995642168025867433933528110236758136220011508772400674288136046439919690769958494819797036107386760675437930772705588165492620646578583965863112858597178548967463962382039271241152282383293757307059659085520824912659335675088396480784547019021949217924826815468579291777014928518164628075225377011593701158562179910662480436556774191643265762321242089545914714744240725585113881102143227673690889531462412870324895337632561731631731333764374508741193378414010822464118562141215974400539210265534172377421594892873930083243416874304517812224339825188121016200922857894623623702189716405658208403797373719709725724326201619322714030509946083094130888228060714863357047082533127110109445589799811173368604406035743590444693610445884605676834661030651448601666972612643663810174632119162889039688251467538275815592308318050564661863675733730462263364349535967832197324061372008338369925846467291652655815555289987183380151638989437410192081016104910159863872862341677992566811123451243810607907190775483157326286599610772593832091521853233014588212452275651576744237920353861155502726355269902385766355095858214561045741881102066248910437351601501204224290236317497351642450891805610725407509631728333904024454938155973481901588898429173674336974862799259663096022138317461921872470321243060288712726030486535552639968244432839285029194102382027063685394850946160226874227273066190828429860147468388759866732986200854144212921525366824440158503226815704108221760112693252267114172861160992946473105830775109299591163506590379285628787212657376458449305230662327668549883793835627188391000749825476262238827362462746600444787650331772332714419884870186804396527940959492054855878080849412387516306671498937227668726239600736664245579367055474367755970019898032929407829836745395595211605994786960258918674972458986099122547160827161433284202159895236413667647361141318575962599833713302141575142650514593616086625725565458270299731385390595469477964929294695227248204832366019898338406746650940956524315181107073624183392331173255458594008102570949946446762621250225559496613736254353626189407399257588556624725801435419145811452233805140464649727233582525917797122511974950748853947427203340103142525947919429824537747147884915180280361320131903610067190038333528291447587442028972689687923212493938953364999463804410059514283787777409467413617741808925137791084675416757066225987145340443108673904111453207505939632506331174378452683093602335720480770904852641844491978171006014812574226828488862951069060242080309830907646397203324523671210728909563490176407512693422774114843542678599495588950923189256543998554712404743951589020996873552944927732745191121232711943920418971449451094300781958685871555787824881829306365422289131886794725572461156016678513448399252401323131483063673121275435166889752872780608148288635860412090334365825783937082154947867193759785209723044692201981636718835886885988307711018625805700076013993201555811502284636420963904694118240314126506474842139093327426467759044038754183138564362134158403876495339869298908154600619421129059157982275393132624317612615998952778580233829163249463004044894332632392735273071781001300876325210031949086068995405133722418696230127004498114991927516586306215750604403283307420417319417838717760609679448407139754150018109768487941550838468475572601154604837772425823066858729369777004568488196044504004765834671890502451846348529266829083237607070733560854331915097990593284937640864562975975802422657432429798901288175472232596325103692650219903477429017606891425555753206482454543839563557675375025100655226875382250621149981763137514707201050175383149710057146804856905049624535768930035351632511025735835186336790501180080828942261650771141088792510236038541941771162467748919930250668627530848368936156928722991281009653793904638101837069154056330436249252512654713057084386476067131508140875429313503541852780293890650596771318482147630535057080520071415519611284433948534088377372551696332678786369457766161122501900506990769382097684788519425322620858700096968262140570416963895802463913496336817559600710807015051035807554565080746405356532052086842825740919140267558556118102393198425624796512478419613259685336489343174409323865783956691255760487401850775880013389218284961806071474318105750582125908238044038799207220238380546445332188685001557342263950071232917309370388290116925037571319970341024557727204323641843800629713688784218605077560037737329308609357865737193502885183571664777930508788386822867420212235641181178482774263413048410550885246374846902831803990744876087672419693109664230930286449519018553964209412080808499279801976715207769860795166250283665262921401720359394998439723784524342734236497648495275288203027925065707407859932886606124644378906466496845878859213320533678990675381276337412773680674031826201187960255029229180990788184335566259052556189596975065972193053493283983493059020603867353392109254172319620063526304037322568762063010876223976239741948264013136689190931529475481051976789356370657584502998804094937179423816549604282458659096518088863307442801440131825263242444654655582795669838969354481491413879638564181082707936326326417145064776102450177588200609915823180660157400371316568244459448989432530159522358429418903525501912192724548928057702599885666519558031156366063980391248205303580039335150619985637970011186976703056061821940938257556673763537080994041263125435947366097330663115731762526642794193079749282921246241077614276043813415573255680996723353315544467847573247142579501109982184895710297585083832330911221714082406657641799235482171956060706283800137408803633408138489869871751333491041713725066502858618182575279153488573646595312644003812926119009921535278363698597263898096861755017066869870213615276499843513039940713326897403614617940143426040312960691042999485229791249069475005046345638344952793452771203453349912790883993677197730519839279486794166928232836576941796579613364803061241804937025927510112919295402748736795388332102532945708657103140572098857028833816495805903205494165362456681761509198481125953578676584251078852242154275720053585302235123299789617654597277998955988672300225235783826761333456597476145047942843569889836966685452134836163633399264736683816333448028761148776957339427049340410708146506542192788375133113044793989481307466936176519047381119036881933302668404900834002875141382472609663804489613604239569939112185328264473821878403393666692487618342867177487756118996308739599087229905434706212867964352960040655080702801670382736931191563235781230130134270896718445585205080499948501749853388079576589917661346409389058993954775472920703546940617156432360747976300940043977277132970042342062524034545311871633030403481257141354664263722578672138237798892287554060058908981042960964456914225448197033774216305866452373197581801837281009501612070050395417541228022007597473873442409375582646151560686521573351084338576022746708958834187277954584799330085574916669672653749259524356162664424198312964106187235611643326234435219585835896090922567420673495016600774554935781793886305174455990276670671098584442032069674856857206775969511520843960479119612407269485651756789627303389491166091567708136228549177611381466908561968898058646333903253360110135133956234166387896409830739724511612809396333869773987731705824438690500532745111015327722513962000656121602530754877442868046486379318580036169560386739104446001806007954724251624304501094284240465320459854530987685181003315447941595856391935219600480059252134207618322265585278924453716391841833978667115559029012727745383487189705743194853988472554684390597086228559621956866034858777196437003329318660648156685825134856204412242123412054434570047663929372949822088609894681781896956523649132103429461906452296396800981128958454679345084816646373723789313586736976439629425285036839649304618494469593769087034789002494963855655495807791842260561615814935669447408985994588141774755342312072450068709988793433098845546328367068084780707274613115139535790421163703729119062954947787313365180360550449524526343712421215781574963841290478870585090399933076829628952342700687113121720105659210069486489444458643817603396325787063691393863425526043912944851252207816838311543756821378760156822260201789489701698162593506826458141611468487980444966006713879580296869561115002025306340873455217171173368114620265696786322623322307371937463512180000292786965429449728343929334264450832758319958103617110490467388616398271870789967419605025694037967314023849589055851400260725541099437384722001880892361169849276928214249454668158309488106749000728167735340308180300255862030104260877073080305583876982707790730119552131457256882591673824136205697452851510224144214364586864434360977239866719227255263618867364791903775325634671013559665927896749543049006408833053418532718008178923544472353689037371931823458712007375830728829078668109266582692510076818742646506795494608341894009570439910255269623453290368879477460887003445922765823133484561226945545423700647039438361115234643302814959307555455863782605980257488416819451368865500896984393958460895105389837677385320323975545155522788240536369302144016145144158471062897972317247719678522825536826589916815256020072750407661295549476676467696745681726508933941930558624837448685910876887747961290044286067808193520805727684552292387030655714677232532691362486235759823409479832058272055638652470403109701750054541464882448519961247600494444092967227505400791890627759182456367640595505909950708864712065612223892971082633594382548160130100274625120924874447471330767226998472159066818947279979304062203234426859853261737622021351578153990377240255818780557227588111406545175428719506785571847468769159399163132911508372447410197408419387986288251139902215852648404626423224899626146404504876605509351593398804652910991679810100114370273242672442439831076638494846783760644085296595647755136905978034638342278515236359185526523089757834029849618026070699309170176121207996702441028982248690115652418058172232719080490686966737127805571166150122971758833342926569428882728528237153852515987938382227888193993582530272040810115189596600665675092052812875405996349757408643159175377177204781122990871610633308878472368654652750895084522459009607660608589271251318559311926701942951698167623943036576460805539665216057800116088370473259209770998602755812160537154346567848422108142854339493938867062947493847680746928749363074672185823566315087381345803660762596711026235478435564732601814619110176510845200056000461610112483923952424987318767830379575102673242314387130770787768539987311582765705813085172838536518548939910368729332915087732679629834281981859166085803182253035120727279548327128369253896605803789728291647021343379114165586639253116069126559159626591087367631162237557071855742196331417157729078638635512553760980445737215795454006459325413174183530277268258118331461238632713415113428145077579648795244242008476685355760735289779118224927988865278563992704558687595806554632477321344056084645375948067097096742744469396295274644149105629549626306184838418409284146469454736487986482030070364530837388571982885754942581720528403704340218313214752044929173905362301472720838314829174476951949067361454245454636564596743455619845111908463412989174070296749277167906763840198100754457885887292513112849609238432212555780424771813333759966680085394015034123145683480260986275436258132226831906395576501253323360928979334913838750624720100667227713161996146221623961803937669898063250778075277113065261376865379022612718018155122088329475423542669431682567506309152863192637099391777400081409133720196933178430297756416178510007727130614873343831569616526151971823120307312380884943571578551780656160778554064975599639908099889563030875584713054698564072637954248528511263358026735106169175631867855417285082973744225611659906350517308630987656658640117294972513664189932377823558483889734448824039508589605581913663841163080371408528170342045719065219597139599518928030772986628670333310754349864609214987292419141091580631132025856388359508624624917072288080394363811549468562558742037640316456527157992992839216930573507852992721672228164755879568947198315937637101402541166283455481135948172598587025636038568272529972284267582833373807272598902372183328052554180287119437373287993069653483865447324464286189611973241907947806668840599399596389396403737778753407884956740306425013304534364679664934358446740161933322392877878533887315466592445294387859832948612208659132317849238199629501799327083751737589790301733671721264395168524358093016017096493777598943737415063198583420011996217378043887461971015753023970900135706188024031426931086707852917377791083418335334117710140070082070524726580739996733270280986427753685136522958801004345854739025021485583785264936194984726379992847493976394557642428271808263320071508123753569814318903383166184399598195538108702564775619211122894841077763107079873612510181126107506046070905457996192198422949703148224384519779086859212409042903481672840880050284392012925324162129925600753932541939384753982208403072718292911388411822854716667706026813649867699086009144151919915932102225315563335541758961507012879767821915781351743034729930712979789017010023679429421567621887049667162068361543511287602861734867814826995285521804150415236758114849244448002719375732790973273476991134729925005355368762274279644709021782083100394678487738480879488304202643429424471810370419194800960465581115639616174052364495666990672172121321807087059806591288419294890627914581157078776248469051277939460690509248200573958740946250097917505547691540436168515016805259276654721718273212222407470063292040348586133325399911607629460126591839341229938360172974178176068265375476049676270395747116886940522625175018090004799255922005115816896533542560913781871067159643925011452330456403546967890754244811814674785505226456545859708458847790884099110410585487683482496892118085789373573022126452580135891857822956384210600608224228513830686927843862648563754726484532880774080595648438980577625869474532361863106504581637914700309799480910181400452123271126848240782840928138557313187349042957676345923094534989430070062040370686866003414901382402960654851738366387210127764370773620496042876413474903306932115097814783355932211796202957975440487285564213785935461795614669858865003558293448891868250007112203150024175257776317707186085938289804713419499657821367391997016166576714140683588266871594807406812264327336978038467416066468495260487312018785268924254105798783808916063748897203681107333309091037229146911008466161096611699558747197648259086933646400155725058880389361757912188690375160622842431428469583021291764377101542603428696239493840689439654589528524848419154290112754824845303922931530154694662739846249464336467106752218970298151302582319276745475745226534758949841830352671992206753313730117733733756360776012386570273208606900751902150278557722839822633598868012235603410325738705840144141158925701964343307666126116917464302299468698738016921022530970251305245338151682751416202260867387749429451490948044816885236149072236125284649195675100337725468072222612056120498931187875435807290191779055768432719445997589388752671100580367515135317486975281301238300897818744770028599301058585734806848493812832209703462197309524120489267805978769571873168383555074689527052527361928413635252456247098149755364791932648032874550905718470420416022027869720001895490626672704685090420536643842785647938776102286344493137062586891917387084723858905914685745279490152573208263875246922537890408421018071764532391636170046816514189171302444644515083818853374663827411617302997741161708678566668551294506995253221677863938105625959938809795845788093760609015101955084065676855976792479592167386624805259172961281524863881756944801510583046387047567856950587996531960076596389935530905767599842806464623966836512356230213356570512919344331936874454412545683320469832839359880891644389310450416611744601848401164175628546539183821215077965356174234696297849494273879114504364004672284016748056504945158580356992704295086410058306742130637145335204162586116604830176745393598766298649110094560395623472241373703637501906220359628522995492049910959133118162803278567573074040950646934866384813114852429683439327430442884563143201210505689400664507513805214309731112565546136191030130911855253955440882335849861189200370275529860478540413523225614358192584420273854666745167086532132154790554270013542470638886089658306127162364461151008065110941442747140942848268820051926452681638064661478734391515294770300065990404011139369184385712649293778229468714168284946529548250832104603723371993642202721973828049176217311511836129375778580439782667490013176652012023432334532985509896923758198448799685694179750648310328760000774259554431571891703274353214744453848441335972099665740634068973260755440470944616141482356634268908826359313209441910245590125797559701559781920830119190099021130715825748210612490536631483941600127476382913065864488567514674340890021933189247817430176069275878294964033231400992808766382424884640861189563517980062742571952001371154796013916863304288939043025731936624673437039906326134852135903428575801519809096697034275295992729432747242300259426973035342469198717608049023007210038249847959407421677462626386276418796455445726211362848314289472278900737476820574800759651079539109252017034237098498803905116933943277826490013365919387520499169457246867922574895989894993958754373895709681315878593732320050262573507050348166153977660001492469175550658484762377127919395640898353551968393944582318310295935842505249586004672044124732752912981962434451905408113609059047933735548856567084729024319018427469445438818148653683936819183169730943565864844284287787409314572248938095436905658388387958878393834527325412640681241160202233557987983381542409393861157885534348006391110345087706020081414950082624279175786202669729700731638077962997975735547135736829883201099223875546032453730171165155536027824193934774083692138379641718321791170487983812166282533367454128602071329621490144998131553809395909134126416628469328783550158534116839758759679143834736501611436699215146950872188244827300185761992835472612702154743172063710318378009200743831966831993482563973907985451416647297220180597684846665106477186469813039193066020800289822622527526795829917447192029662507110213505933531844952284546560435607569954727370576638345930854175381295728809432694536995987639271344162209789519951120920347612214747109011704625526080382258753628605169934258343941256492878671178605030976591542770544748266636393420046271761466435443656394703986980849390087653645132548649217083842420498952464494287803313842168382583731636140826681135562724864621935748487360812199789329776943749639896773010375767418075125554204024372808425985055536999889417157586532776287701339107729647402404277523089760600790184311087107066138449366024179273326320828232243913303471213574228533930505021029777204388800411462637469729812426026587090678158564966493409095694704032473762245785898729934934454689545380620471760031681425771131337395203513923390449578342289115935533721488429191809484149877313376619536279666232635341432878715463670910631027416079929493844677373228483393818144894461627272582310107956875003031038113925155891852963713131844698213047817579740822211803508582775335086840777198228306751348014869792379818777155404070879589833938065089595179237296713089713278646700951846625700655277394672942286192661457543491239799925938701485988362313788784365292867708981854075090309802248940742455660967885420941888228939764030149162221468697992784801969650538524440900726479318277616999788329489749024653435867539974794306588965801954856527457098962492258829268597390036325155773335044971267521056940715493532205312155829473493196115492357115022514020064931427464032463426265750190306406383566917784383104632642466961452530316838770078550870119944613448715881636824528452152040972373339830789250449693482015658607818213753052083949236027260927811629904126087408687342666535834484762410591620346173638511687660891184229182751841316158225230990260706173641026115955446223941725358200095761445397271031827125161595524657560651529769475668678525600819381147121580381531988712857311930043785378793304294815756387712127132938588299515032020871373775140710618891461022299734923855071838223574935731708328270208401457079624824482974687765383258522296061606719833179629859388023146624774638174830291747313823678111761479993156491165760591916549064149797689364072054244457730634764652507065384774672394298711913532777636763741548302385232612121899194152585985879741264355934092775950888615338039096738527781735025473952343224340881245785380971948260873362535717924195395610690464863756868012516698290660202384095602056209567526742906771943679167448816038976493668924482409392575503208857805237812032144230265023467429927852801653589503717261260359868068015256995103475002676852430865090446567566110543359527180222193062367943958339803841246247840568322187255134106314951577768562854883886564232525678929554287798800687698463427614320024534847206908964397193991110448493220270955154842158891567937304494529416594575278645723450765379256206703577606962687969828743728912520829976963713851897763371847323712368372054266083268958969957994538289646740826448432480371853362042142418290369313129697830661532771078655468555084146081200018829696366850443701205946285225340867915054889456478317434696917802232812388909433271448215293916323289798656028505420554488560368940932676863581853143735469958109635122953033923104436085391101930787742550172520186729835134128831062303014509838306996566088676354538202591327671519966880626930417420411755243755319984035650017469841077604786533800380785344666655107551881083963711529088906765520594102403668237507370651846418914942192834186131196679705204236653620162588921402815439351510983703651311703576624341204680599943227704760540554181211477191941038702515092933339952776670785066176876330778224439779870491941507662145988855279206788687359730017394851992284230986442934802021217276606691108280317950079949558030493329917178466318925886276067968779705807310925106648830515748315754809408739552950681433706443494802699158276608098440754529757101792822316621560462308620355835900001695217146012444622117997525598853149674899459940216938071294228960777792441060858685487066282928076220711867160951278541493086880783282945624775509359386832049560648411810666235893523896423287369945887668739130429006809604329388493508255909761914361460100184813755564429001332926813687975688267943985176886394643050306123977171799326113460242248421842195774909970302105924109057495502934272025941032850356711072091377001498644928916230721142173986467638087781807200330491464178446289234257952015124449004429206864662000172917771168321885249947893087033781159150351797822333540181861988470618018684795745947468476580706476887097710913459140728323474584685044375153993933229531332133782063427191401238340763240104105689820643695881486544792883434823412774424624516760001960321187629625509063277007935904591328938066845089602993045154406464405163746149307476202086643841251302109426953988001848290571351453768569108581927721651896531958732310440694418232027704051827490257437607853506215849403818071527021281838306950868619659352427704493951353360862554322271086187691090597640583532660845564654818922525201423972710686268029274860526118393243245927847514245612638999480933046591926630237109746907109315389212407060305324867579013694356001145134191003832076122983134237250928792770167475938303073377142604043246905500875474422021272590127258915677503657215292084554806562112669896179509399841434106466001359973628972517044658236275852728861179677673328506946071498454640197016856117208282897471093255588704892682701330614938779042690970664424521938339911520198224799988773596566106225976006985899832877532576785754165646984901072913571133012644026837196013555409176376636598834240352746205836405061859456015236110011441697020832342475725439389764843092374127378431060782745228572533318640657051223758319160098862566115220794102058036588319260043235752549595486083017668126228823982186912916496873636735499838471368301384359287652364894934458493520191176470249284580635186646483735844960954583228436777113373534650525603948193264233735476965896027752713304944966758173457407621399152456822529718943528099691298630384346092501893364464353490483829655757608959205560280822426685402427409157423151417138118763408950478785398684771040555801530898258913218248702266207652863646830926881284738008143212685452916040850689124201028268985587136934880002773567521748509739603212660641341253159535358116962622772447531724986692649314326425004139810969702146382853086389254916555985499130532512580821413867343510840165591248303110996703330916143429411731018296712833612707220296451901502972116181749620825133425522494091203807149963694235541099953834617973883183061025821310228779750027408744122250005630839643985729716935092541160478396313050868934926791953581157684517566103416305148167015225027532967864867915551788125211285612615049648895259979496431604564285355072032309722731572831887047045003817447714818111054763303132046748796505649878856263324805980865069918616971551197990994838610711158461349847995826125949385573931153326819868174600569275037526635956176457880168575819937217170085550383364431282817405067097334337940466295495468298836571880489826435551705306273518950253170013423579339685420775484552124959910163225883314869427804851773938748050570223800236992796839921913161408064461706383915862087265613181598213182901438291996557896970908796575182593524284165442011736113433744832446101466858323049417363176183724077388359425915900847631164904892125659532488924310887783487684185862970175230436060906147901500017165535581608967372292754303973427778496582437962672755110381365504031187302508269826980445306083543964498321467080546382419927320059387730699740224574694631481838094993017264912750706888693758221567969709924614945107058729277603288795310855849736809649428985315873148845525594236607048327076303732300850365051252532989423473008021509686455863481127207731589621421767128911556340891518145569290349798040646828913875839022620825007599874259237103898340700476175941397952837491354714094227230262515966509917595305938751245045921388304842073204474772695430976299761374091820126214396136204999800265921073333319098841914552326361469638411702687363047684564553335480431632681134770487059637023662879194964818476636959665563641164408860676489371465285423316241329605508747410865508401072451670883954050385711147478733995868658861540098713604925239204572299792322028927256837017961091506321270849837503787662408121494158909946967899086716758333093657656307789663469787743709656861924121806513061419054948801239774108546444939824201065373594669337884851816559368480567318321019189121966190664245892063810866418255132248935783225037878044090533751585801780628913547993204748701904477097041182422133230840826564766149960785371810735360981898011598946114039695446351613598639801525975278391909413100876869856680596901569565829198037842627184738287211376294202456304830700696083925868456343688546503142191321072987313685153641716167199294854584423333748315977455594524196048385692275080543188401956324357539996648683152260638663527250983640324082163032931512250672337233884150830464663941147992104914468204441237802898042935814416155505213608999269333288746620795369552358166175165566859365014070717875315637543490364731338444680127075549715208327433987475426344086492614699002013373759674096341834630138906280414223648741822178175410125461122770047561789603092025098404230413166317254045860130086629883525236363516941979882109415117013253636376705282426389594898237288772969995081661765600012342923668053307647449188828318209506662168758772985680762684612171947233953382593185477275477055950657590677230639770109426537806510834088837103904951972943886283279197810482220765814853387133652311710917632672545622433233296614404259379754603501283578814851429586880916727422308625261315122383985031089484137060878234228964205481457556577267374664515648268433609175343096293681637463851581811584976582753831659277253424055217808540949790351728662212550814135378480104800147527806552820520604325553427915980090364435841536880586942709640040547710819993568617592702970514252976199269226345356165331484421030604551534943289413630647104965101662083184457565287074080209681324837250150951250704268891254826857150795451450670681016231584004032332041917750516742764658176860858346920647395075868064900118606599584386176697725037397494650965576947974179014518475046370803974693373119866826645555030148049890195530880170751926420005154433157439794260768626782068214460218782956797610821887434245319993981773063641242421792215999543348363055346476677225555372073152418305701916772750548657268833968753909752628668037016482542844734714030545810370000954191834940931686636154230844874120495823171357706878670173741912554279107890134566171576683825650837944153988587058967147798828755717286271857345923223751896570459673625929725682713193553302542459923575549425885557289138544739619358247247996321201671071506957813652100647099243301008749592914226203922975302209254822897070925218182748251395674517166731061523122396231449406028780665366847267960498581899800748006422668063909702832416276275812770063921078521974881794168721341118472647069595282149665814906647976954114329794672535173207502462194422170029950563891091059815080690109336487017394392623266136969074154993158995749140055790530006135451473838098662960810770886388110205207450959453875908794385377088849561361648062791590857350427259112940350634791864239467871841966258708593844933265056328738295197037985067005511805930543699979295325606204082717288598032180933226819933134564413046610756476435828959554451509386046603145063255312844698968154254264525826926194201322936807921968907910961623693404996682778300530109551350054931800102970760887111962022473700432073725120539383427587233894809005045912321494245263819445712277864474437290048083579098437930320413244663941367026328673033907272599341461163017933939519391358224261646571455432746446714085374519303113750278556917024554271353551286766763963992302576418657646974096789839158027379961137118189562586610280090378301903487523629729367365494339280005464235184924206907923708462871518765235800025235447703872657370574965251988641077793808824437589964480990623277980773250200293444499792730533138211907988091451276159775689545736032612123628532805945141069570785082501304721223346147475508650546967432758311690956863196940676914669402608784196873789204236103482564298676597212781146272985109250704781699758840872201907089466425944826671854448412042679715142533476753607794716338709042777979472066756807646983544945452071329737730295942819088371122056590329423128209713369610962918402591842593295537371951590147812340562813206117036498706497472664092514808270268783094169000167890148782875271247587800737085425138697802266376689827952246096413208435086026769045397039879856838062232742159183797419786600220504934946189745749142818080439590915689257875565744959194603531322230617480626742739866086101598747977067480131088932018157630046469367756154637792988458968294724409475653463357963496180932660319056296011689112230114970746793313214167438540719943581715591498689598221792652229864711481053427320638909579884821918624116006824116313605986998373080729483963233266323798217312892092296347545246775270390493908914858201353692367198009566206300323034345675399075226022061456368951195277278919835130695352989452570710310295614424316163049500089950415799883964135772431416463649263250273042517865686772570287603903800965326671763385667409278190013228113474969613454794161570126630037073157560603929981566186824874843006041766836536774259309404071886238394973636852004385546737851678018671882122198738685428695102624285426357093736608614895524689569579111031517574679548392751338263672182097238730692284308583971337283869536367411906057310036735907874888355616184606506212670980480394604930802800001186952158921181228813342065129916620651749397849740338448372282368663277878346005810511304970607377213824292975905501652509057294486713085413486137617436661695753842752834958763781706164473348914269453149544533498310746658785050658642033604629468640180651223729228080596132826685611053161819630535381803511607950577841334495660969096225048150555567772058899411683647532003226541891751789878166717174625967692072753938230672015246860055585657577108120858254900560670439333108228993047744806182570063562429773600195610568844471742589547137985921522090677296490830989750440091089482077453379550347125953048394320403798665609567276753399925670770514306309610645306953563580063558163352397360832383172802908640360950908715950720349523183967032560759404521188302977889670422429694637639497153385507359190788452195674464366984403021540230307021780931633101072140321543689852632933091726110358849147753466627166371394399855564747972886861066114166954829488788036750901569817589809689348683026099841191283165387426554266682125984572430349211263906461630575209614971952632132226296733182485456569303635226429320372221514382351511920037527803535174747823801582114930868111040571622299698606118419041942231768776997216594367308218883905694725017927967173684772928943931361381980387850495164909503733983306719162551314505121723505235199433091587277270608237031805119079754011361133379479532424488322427739170105983278353918207842604199985779673685600237952068974529284797220913484957632113803439882071260355760042286210871263415501314380027889270778792487121911540538841277379753255352457789487771904874462887963268502146698907978604157424491517431141201124706328415817638779198210385097328142814042325039091199117607956857315137925595326479864358416390558204014624081854569869910983130073729983552892877442791477553113284053463122112520089532864518522263142649210495507283107923698194277824060796409262376539113480733213476213914573669231947005538823495373341255907741804305854272287533262447462846021998863988998469144338430987368171610047638541595443468166297847457126015406510334490918843331919343212703814998901319696648123419648413877874775010280841500667020804115352173659123631983050162411886708740360510032793695750356145466937913360077151135172671520250329448293652035374831338197129661643196130698090713162518399704887823028365885659494801018775184453247935294087809407492394559123537549810744087623725056663094202852029928409870135428984701237770075975997423064275846387734916434502191942230715084665542122218902583952721813965501414097589829872905665839438964261486013555037725745740390674543888846841948527705744112418970612693011956522370041355701164770932921727944058887641327002901779278692741291446294518518036738707680433321429092505613537873157870633484049475604320816756283546108669119361013494338792243055561316310610509346751178881419378574039834470452457123699946632039299355489915782655754353693348979394362524661488798116443089385067051958129654556527608591302140656401392540044696900553759941900394899154920308528787725103618897155292709127140568054194416496902607737310959893200743168398411140073159986408579087994399247322254531668410769891278256456510105285101435339132679646681918606716867654310926581312153341982535921067362795756030262468778030667506881143601643278525765665707720805367085945828010611532983218567484655476721180530442583283810399439132324347941378348087803857794245794132209350627633868901902696603150073458955039541707049649089736103608777248538222811155773663999587373391435037365843509387545704870185457646945432416726444738392450809785660951018496517454128527835398705450804023589682878531829525717810989814896475117446625286071331342281559760364297892285865565486145698809460782493381389518001481588557677585125566263734056427704593252915454771877244306628752684953804378171355531750768862002626565534763501735326303404893702238023552701930464717828415728751032188855879624159792262888651708503372912723854617349275647849567009877477095242048890365545045943798631626189337997123001291609805313443754441781210118778879496084693897943692139743776592939085803957600362064570872463911455830960106994879821775222797012434392016976292142008688184769336884484786002552840277990881411753523935733960821849559904469605943509710612356443170843623643582718727062282721113140144879571639999600360334207426578061106617690661443750297213897921256687656083871271394707860248793597045548320603643167038244796861320271772510031566792713264220346253838076195520052031230139372429305101381636240036043481299982819846207023278433994433807983470553915765728257172273286797359439498835838602255292910320920440722563200736109928928101750049890299613072564223024350949442236673335230726896079944210909139242968997455782098974031594112038246740640643152914624556540933735051428656793202386479403356102704490327901777474659035252552130125519617735963686539610841514876406820091862468417706985989477303291315098136343793292218071848167570613556667298521869971112827359094834807218183680771639410196045207093994750646354948188008873533229208184602007313728837148506317163880925197022272333256425029917733986738482200863296912539348902033890090226071367301253982159216498660547199756832176273139926098977193880079387233713055932124756701850896831941660939149312553338213828521933896578731075680927742923661069085232261050113841766976111778865497056978808122062678925216539500877221208834740512648037561156042356397849977577223936976754058555584973901136473458742319160243266076706096033972324773200523599763273347578441702248881151722323630832615104358594985858218443465862012552697841918630413466317036756287397436978347054880975110827918805179290952114003053750904857765339890542406163307419328181103650516727999789317723971982234442002300813486731398282287154727904869625761435903100364661820520546002333083084240899437758986107029331983280174760378497707340025987160168262316313663356244422075805973953941370206562024816495321151031327455658802421890469049312705583489338857938033616393069850122716110437523748179640549302874431459014035423987919441396793434817378733682096289985352291593163858126421582341201955464525384964027920153401891368862940274472276976560491252172999847663163004522331633678790323079052858636403737833400367016228654140247603263715139502327320518252665676347482820098350737997861648582309923835822092787450997477274266970645289340789905651357743326297559622196785292879696448786744126747267705085691388961546165372627957402384507763394451542413408578042537429796289971478213865236103178416167865068854974875862480007566725550773337051453130060666821762780546285254831111473659901464272592418848972144597469181563019299557019348970278997342547730592332195764403043524054004857783083147536323697798105293001587758024076942172105756531134458671957785809510882662815562255982775510273204516124434744696672447339387807600417365092807561610885991158242611675627341062759162732969783028795039815859784750172349234515550852513276300021190181470959551713410541397109325129630288395353422991755606403568093940158792836552031864436939655163717668183209793496323335744582167861087400588947770472810481361357405365502343750524025737289241509770322333120806264995219242078169670133029058855515599021642683346268904374372407459540773256049197342756837095411101689999571728088599860522312101044566697387714865698392919310498606263118428541770069954958720690139601200569766955225185555989586258134261216145437671456662238216431211463886690422103796384091235628841507084513416075462570616564807239914726580190978741051933358916612485499104485907182399600863069358239013534858603446456813452008155865696686986117363095619795362991370453634626875764348318931340019298966300118897631053594364899747189115747677980319152782948569858691597356271468207301479285213999257411427234708366071702778901576409471425664029012962337917727576110494577651224492702941972475574647976459022357570166196474443488738956804364771438043405783287431648384410416957949479907295313265269571780829533083972825587001778071637042450076192931842755129094617171168982123327683568914148801637252656135478793270232179672661092491454942929456941594024529665535323519168190703280070366465143817736537735094244332266584782942003252979244724393080404083889834613994007063692807686733842582206232581433497077396776640131023715419376324586371488166052723311035626493393098771743156484604974369525336260694647351375432081916114830065767292738251246980855350974699788121016032631849619479685018210454365688782294028085690180350411246328075008962878801022410962958719328746463050706619930628596499593870584218771778989203727589296409015788349524710659644161152037470345643720502228236941629341907423576943519601990871446660407803864307422101201708899064296989816577079042738383342545886442441734503315361020471655330487501904530854647954397685901039012333672344997651466585511787562705773962902258760570436666090110816989201651889130058700494165726694903128235512133860510416963441559181859224104663719147653934602603783246920536177171007987948760200335798169402133015008094600271362432942007857858482759163186852141265772585365194010389043846727880610926112927945762837584783210242189321112626789059115933362593240130828571306830980792897067176444947710604321287406570828311544772929674705567296302512763504428816928940469424104315993420095334993572365374916505099639725503329635237744200329532158805582660767331987831229980066533277254503471135245607855221707403274911251122997678801146659694455908404921597161611125833244597421440717441876783670976171686593355762391782333504098904068954734040675084570513045470456867598243661253947976865165467490479116637496365796226143420885165496407196741699548547165031786234670874167259802250523865328660416487152837250653338311029625905841643998196391123117036768373421001910235021890800731054589815007167928306978737063028691153939660385775902855226313964526401406880241949263571510993463391551958862786347390938563750487236598620895805496741562338157850295120617786109562770945850226314163809825045455746971223469479937807432834320981909367284417743696896117307047813741327633717326915304598006968690618983026445087344103649395376249275367994946123392403709302904589334428375591808208443760106770975480318439402232480186659015182329247788009326626929998672165793400231051325797035595895659745844986291141660402661863952854106502762930739717830727878665614974194783543699269173521838307418175421613238086570618758378292776161961851039535141665831037800260663218264571546592651885244321419009858294418648795457516114787565896154594164248517282540122892110509827103740900279587811946272284807021040520873208979327955524104839739893887025369609026001309505579565607276592298872573679965871834608714285093053059305159863600115767917583653212469519257147477650836940335877581583075731658638595339370235857781763358340101268999009838322806276549786387003079422789004811819394382994859900088013772006523326917182024053236302705617306881294477089400186977726566461727868190954051512628677437093626214842606448840233589103897793299625702341602414554972207851238305646949305172125532338849461932233423208247339354039685752134910859003375899541390267717898547591270759724915761822232516829389254458147598612493768069945098625029296023865263831839253484329336263338091091596653132540769970305889462503988402147483026761781040497827789622971295385415840866558644840522442727401335216024739932038790185057961812025705198859217585691853122731220782675475635948932288386304542655883132274576768158064280110148884071611517131871346343504376793135051047347842428144321370637351949026158071349797243314983409750711401634564600087084366581094493217474380556171957052196728535162519633564463599090967794079382216016531632291677728181521587210082396528411777125630276507843933612654639198147907721897451585769172412108410148209772423619438811823733328180119868691443919986233298168690811640803087404635356487677383874209434210363922531895161085913492457954976632155775103074629890856147027596997262054250685278607625524481022946334819188029794603355570745382453135081367845549725745126709331624996418383303659383073467515861259360625799566631526315692916027210421815459676367967546604025866452743433834898281560114914245798722789793824206109832321711671092749004993384304835494276889361717286948282565093079517962383179124771077136143777011188092596982247794071085446500419729418377765571012595648312641003801259508807656586138580754607735810011663265791938658263824466250255633159059294382934497842472189218110747580783657998840987172030536403718158390582718109520075212426242514311899842412339582782491428953001912610719827512669705337692176670586738255174575885802873349189418217712063433329760250228984328129409541902594122313402340338294999112225428278796496394211827131829788476707739572822195099449802283471865105932961815992213203555197843034349003187611675891938808306198090533600996541790184595713824163994688460443781497584068694050108864486575208746717190735701404573512739758649365534244817329138126230841366978767932576171171666216610002026911767884626761310494119404983371883158969156337308840567428224947425020158865821990792221744382579578560658365325790132622449167108247577965086055780747364652838926928897036701755906295713525829349641642106588207956299309221554604754472098601218162590972236496970873728790808911260888858923216366750189310629797299745895078280114259176620211000731585035125107563707090441487366776809578624449881137503501945056988879258584340133619590213652348344493102366743455501958543214324550848221364372095252256250369766630330616160069012845269884853256578141014471113429646441190491582885988304139326448123674252511676446970733892761382827837836694631739126387139751259406819712381946725680754428202930800541178222871558091940754690645536984838575729842448015278736520382235696480914107836464385794654224512781258223761113322817352876083115402450249074332295162543442459053839634597696964489368597536341547449562299318936520935393104612720936572879421425619029923393490231041174726522214559817115907070826670534245150947047613772093480043011184988841580980834938726401284962446506356878212263164764860120218457932377558277726998856372246626885968681989456044969460337812852325827257035387319064167961133255066190275032620356952711586113534580449924143271123916071954997787601888987586367294578394683775294259094651976979714575241917752062256772580884982337614858665789002836502607688797351805563153530357407527808422080716333015153232546124922248433110135895686584007609350478976770236861889220042069768829000015764989887987660332452880173911289126603155360092279775328459097747112671760334376291689182041983652244052142741346112568294132173544077378043849783158018511185137938993650611185157325511271287952419518253346209241573702109399698818115620876950914517185784942782773288731854079023528602274567636856040095728678525990813861369708338294032891874591391099558379072136472556743040426554476474748158922473658898797397342728980527876736803994798182579018982677480060077406883176212081022368413989143035813127105807754004358188234666727869383277635702896370856591356723766654831399355989121729076689503668394847543928315816417323976492184537146021743133620349761608425272957778433312276831207629064093390710133711775612921559867049985993802522334895486439421772021860842083521956096164442247514503669445854773928899903239108879313981551792699959576462609800114431983162374185572945610821313158612218175607618841058630914405689771922417121417284177446945157420081748687578531988448195745735337567778296278200038506790816624307405221852178526295237065655978491621914345397312589127416342587123520721259779282531892308770714882895491863164334707417772242680376103212339615115829444345936685048434775372586923128743108146379068551415127773642032471056948927625501062560493677501766055465258807642127773791214021038747501487669916787228251786217549276911130957455731795178643426915816842322319659893455824700574042223370257721894285170917918878287408159458064122089892002716429771836186022932310564671504738716992385474911128869100181128308391424485846911583782363792878572151671323879276067404926713370252567728201414974614055317780799979170292194890492783068043990971201766376121624692139068510604258021895056480171418282031483639366327598141340862933586575436539721928221277289530961655998411270030870775173660033378723452476486777069843575558819662241874520339981840375956939118048795396253726105914564671729135474894012190512905258676743964003203923015947605747459910371990096501417081579330829372432754389825073761519237923869716115639713371306704222123362108840821206360826537407941657947336633999530572471042848295966295276453945493648528944707133996947625487016122610825485840709085079231322228654950432991594874346622579089679773386112072998992459208892323303831171900835647616916860622069209162661542989515261284042295826837277527071636239758051988979146477263198324118581361313051358163871290641971306894546230390749514962921659508367446911198559119598171431426234526291113630982393098248026020323438447467403799105972137364304866936381233546882837872469945913408916908498131008934003896526463628803824399080751528283796416058189962458708184264723385285540157453782473074780768351329941996729123763622812106523991348733311739969574097361006099397369236295511745843930474689617206505231542462246408156210433965856666717574948378913385518920135645345332470639380483597586587480642825726262930983791793108141208778057187752157986997833397163423874153903088061548261285761140527474984164335980136893174402372847390276154062939352671172224461735376953898007780530268772817798880478850676908298014750812377341755911734522832688705979607403423482987876758846092125052730253290557941519561286588139725912347300485370903249817191565514252554467545037700972088948512264821900839761585595897636387168897813341196008311826533858299629747465341216550380014158099180201363115054552560803751942841741151770215136317505747436935157096367067163215167868313111651409019203260250042969872367232585196752315053939230349704745208870105092386146686667000118865888683779850969563782016610693866549940244383619802578726019940163456181680548981332267226799459229760886809415924748421217824803722338471969389702751475571138012491118092873655268559630771098212382377563344984705550452250291574946211007578738958270524736572973750515504436466368991981168863427298291063800011945674320935876683065317500651047342823780479112908096670925377002066216190100178185093784745945745161971993159549427497557753956775688526274755654068419480674187099166200037583521363271996630218008054275298635748767494657215610296389360322436276404136794687896064788085582344751055051616969736602501827175937949742111685017590928022007536996831225642539356793367685185428469441995666788749737007809678698942786358472059518658545575937022624203416674159623717353496194930208632199549608650591458840090147718338575717726549036008905725039272780776943029348866746458616520359913960127285576034316487110813391124922335325423488370143444924371287631359322178036522197337193737944805261271924555413821619559823631640327786856595025176660995347106419110738285825686499470932807687212974287195455417661627466352606724867737808756993077599520261881316072815023456499178455537924998033739241093398684096956356646303882356789469102596053719076204312212959163014471680180673111364276470862065122649238297015480079445522449375023778488260394800571862428491321817509722137856060390122926737382214935174042035319048892413205718287914318829774381392065822992655442427005615268638734256901802176280638871339816380193396297756866288130555555647626690429360033854703993052194030837627492179968785295747562715495571681277921760624035066663156810160199754729409334899534168419554038623513000645910970897668125702878781847751830540484112233415693323631149833355860037609538813586565675879033736704421584959182783378369907203131081365244759074948359346912798538795447826906883924131509590102398324241175441602313049966861509604074481896746481248674803457129387034116120905663392261561944371603897033516093524575349264633997318710530957683556747239133761621661306731925261066625452473529677162062471939731136909442380728409769292725554565629143432176959163315822488085997260339276819487419420686833688687094477203365651981916572293307359670363137579249341582386281469209387788458084585587167072680107224823907214010336626623488389644409351004912400471670810446391532255607517633905936967288306180530712075994703181631746405459566643347186778079897072106366952369128386617999657991970059286949984660592370791731027052237914563766956236839267577744395735128858253458749044247490451920162183333301969250756239611153213404652805943455384409526212803872467601820626709179870098685356454751320890676607221899819518658706698592959002824570420187364051430128386384856533604298365227497594896617197776748825963361091333362125315604337019214851083018073398276789025472621839702352479669297504836758190452743180412312971649152077545209423823486267892886733264701514606860582079212889123701388772942324995548556172615008856520139143198887158612529842612399980550072915973286840881244679486683569331908984646389760611864276373700316538436709015994164810727413777116461785116218578732704245821598774667632606406158794859327654621841264474779216825336646766884922905735397590454946989875190994391378159695966977903961915514337749137067934578925022971923550801850390379497913425585571873790747090867225745548863275884349861350324765687193854194784993027704262981527004959622378469194956906334057464115990851317771390604974991049836488745895562964321025978516515606857307139615307166865558403619289437944309695250371334337398453800424216729130185203248683919551995805806128492291887721356656747398536872752660460817193264153732190756078701662914507264517525339605376879561912555887874221858869359460993373904309396415808517980708957619925665561728484529231698322599617895977684839077636400104296026981215929994028885882365512673998259262169413000620069276983644951105555803135888518509663976938557554097159083449894648020293939488426445290159472842806690136161789938458369403684413625281447454586818333488260453455055763700562870709626166493145196187371725655601495635045028767700959635183433585507371545511146939585021190315228753674861964944627933810878614980736828424926630664417992079179571535521356084853344815180356259384258680238439208680881067459732750316263160744665473021310385834772717754524843588252324044056880714450115520346890108413077032391138714486749763113533808916577432190966108249657233035888835972075197054712886637856392812268606866152261038835935521620651227940481539542153232204451730247441240133673728813375454975921522693205525783437944132708849334982057156730561046273357815864664679730779872081855451032254901863167181241383074273117833238122501478496284142776788646432389684177772542981442321167137885678523826168825625756008569145034024838147180460078604491066031497108385635056719335130201216479539775617975967503196800339168045464588454846643022461769690362253370460238478593592957056776479961368144520342401017402973500930761635770973307121762093253161490553525922116977115495048863933709739137465543631531240107815546630292999086098645495022015456014329195905064727222949021257639775215689472352698743807270898429593693112543369951790322600120400626274464898122239540229171155298087814106633358754217932638923850021356478612131161640587059211426953198799574010374815145898244156288306326446082186241337335068191745478151000595532156673063673490968389501129306405158361976349545323974709804323077143148613868319034633050032970567110856770788437931154415944268447279420133576329123125206302795666908548173924130324520931421849522695918402521560943881543383593933760199685880477915618290562810579225953397954526661101420171458390771679063174279401232516207524835061750351385836191046871846553049339089036787264210356296161684929913394667408022341957399318148660907608536513557692102527369271037723799813766904542597569683013531566949610149225935764558660230364309361748975107383649992856487032250072895637150666644643812669212839030499162061061492654674977535612532200901016674180124915327443172763401850228766676301070002605766324603710860358004405008748449436372362828461035436103547003272145045641994215674122950071643758096128288459788565120264358591764214757360871830719206035367978755323182779162916337145118516060781009302025010430529915549940796324604693095297341736498924029558104986576857628046085393347398376678170489642133278920044236647313289509352645544690770468176218297538621533795447930924064958072087762877832104646825804636197637515937194372283761298023604143905338038896739132401593555935071907131689481743009902854126756268553763527851560828657877974517915211873490683537723008794856005384244872743771034218149832094463061971647023871393461989631135915102856142355658650045054466706536616615349268707892210836075419534593366881996078352400838926946672489348596228743515103709414610210163629463155288351127449289361921546108594474183735040922525946015446735254845259812147357889594934092246984099702301550246065501835469646690548911597745251355807155098884880057612021128777843521272164356928177837647671694913192046106963455220947080081958066118939997447227745476595562164801539270722518606336797840798131150578305393826611280531048955732745890101208997460787011460564662116526789056704227982952223470512458677720049138002516070794816709153019232745697041196073616402188313658549113438885064595460906886063263616123900876334478233197630350284454225224001626852383085984722951629351780533245355100540213741388314928114655040730075997242893796666822645928557146811294305038663909214862302576002657502217364518730277404945522915673332905302092474729546147579286507364363586850037814671471137148461465571362270112495472877068033040608748232004032483683841742706506397218213798405725572309154611910813704128507535032115135238409363052383838278447855929860572494076493368231974780462558250140617636835499766825140485398181403825365330990757891032296865029409128042368257366447351370171563778702807511374566047458623452066004414257417033687011434772775324383866090236510326084300834187155867396226151181103518888780733157888336934060929891667233883397403164175900334275938126577111322166282621992287524373193599357479845683815768903209982402507227214167466280425921996871228376776902268852342261511422896151172497929523406675389578490804536408152230571220809172110731391152022200828617216988394562739492153223878192682639898954104259947171156121086293961541636688087214128892387641406415285715370979420042540211957968815238358191202889388560295175550086918138346292514381124636132578320866598889460331862980367891730031629788921516375165396570383950673970504882592034671164002176946957612719126870579250062078834349363232920184456453484329385019160164601636826937466859893373115213902928784165536879994549448265404532810059905131601152247577180780603292120425266140682423460463478866091301326375567295884495360339842007604314647944957820772746735064541261590172164033952989955127055363878617365343064002543556172180129824646111773956854897890599955212620743568128890619204729787159407732366963175334174496781773909826056432495455158094900711938095354008170306349647484269097652852391876035782209469457394422443269551187729934844855045347009084363930137476316569647603078151151920086347074505634248602497754158811687673089837698562544725086164212388297588168106155401727191132089205697335460241074035157908004184907127095856212572081872386969477093168053743283292545874856815255485228559633878520447287713863522356518926832504280124349811220933526774832221400719234494782564422610739128495359399086070249338882786465265829107114596812578432420584350980039177163062064106631303310895470234043766617521276392489866311467659248583278685823875217355572282076616021914017232184348342627896749574772992239579655262476105279105302938175550843898653271171085205083914200093168614369914217702145057915677335100374202787081836007771866888201641619185665209397488842627911388402007441385943215472555642626275835971022221263574562620591499529996279578864535912379649146110334909652953414128747977640503675726263690877897546410202712797922912346749919981986659925358512518606635166576743467984783348534638956486054626120937535091937288926863228011115788901170002124256550347189868231535525912093831865644904076985912120424484061454332533817201238747080703606329069768096590515146693731422870182704016459015217493092544886999663637500559304731810709175094287375528619414276876373693081657394840629837434616694597279385643338698809399125825237391885924431317494292907434278563977880398793369622404716939885818176588995996252493069761901428842371284401741095502191942994018992620275867123050457628747518968524788264183566458455120090630031007736724248976024819103602363466069321225828297255377676471182885306389717198818626561246559421003093903871939457062140069922011891063680478660580040477655363548060019434906783265879239105054375844140523833894170936736124842311596705534718285399701188054087863046916543897508068197683619527556360130555756487538277488645659779970189768868693454691856714478571277572670500581030543820152971704826811824958959855809591865243338066092953932096694265497246505310562555711379852798591364305683196092671130343232748413643008446259386300310068828874833094192158832786368327541540215869583203039715556434867547023809128471681292667080916486970981003823405175318812431895263719415708527983336121523024248249905916867571188112414784401702546074003885454670269948709983234109045848073630357934311342602794596797162438384594022336012118462505647125994092339788088840618844006746938342436350632308335095039434660012615895815853541363825469977480654806191737642364763093791129517700279783638965957430426855253138294693344892153816893324842355795571341148286263131984273589629245167542890844461402686141466523427082178926010617082172626709570404754725442234405456299560687004945927825172815151787238496940011330942277421961604024771067580306863058468284159954587315569076594001482754167030596441200605241406364051710730938774393995346842641813010171546562251559886715509775414011409490000949160129444846487035657417284417734468548191604108796373640178174072238055397012316358912758897878690017182254690747334735921251168470115617735274976058772733205967084389453212433421926333532433816446821280729945074604099359498480161103695157923125045083248261213478732095956646847285798568128246915983725301958584251825832985062625218726373546920919110638184943171451873373635792391210450101261970949654706077661660151241272108533238890420268931160953953401303596186686409076545938675329539295968677783508012457344266482041598402565653814872306751114608862892621450976722263878120547857022309781194068087314182206067885615297168285613406595007683093866913634873523743499098101573293323490513503731408551260351768766278312835206116108792692079256748145598390380799855091981621927233842857546415854800398095090945751808106613008392039941581266287177306244419903839172648319043442319204349766499984545169960758292186178815572361699682288746271998434700318257300568637331014158919654292276382778770517888945720224886517821936540527716792283299958763978534712807067037671178796235352136973781373558197500400148573956665365738589103209934668284371564138874236193906519258010740362212842537697053516633939182367141675235641838314234653867664979050429169631875343922359942341452669946400677031563682431618438452963308758129623503887140802506803175948583529411551431874909117196831333238728849834986751187074196970791650345372075255597898633533971616732736395662871267175684500250502539138075061338852765168292317811764716358267678278789859035562216771025448939478565853536210495097681568170297381376004519896889022847459150249690324203924378787608194983125089727662260219262852858832319970790689257102419248488495426849263061487150612093567776938737079150611786631515506502415824516875875033825451814145611344722236728835660463455577005641019761856716960421092151871553625188984166592592904503382327380147111531712480597000904542157563640417467429719912032948102103131694552233390321205707718005233832910610288478143724465340476486946217561531051676259942863020002350969146019124919359895199715887299089452838588045500126490094874192406182424350075616009336034125583867739604513132808511991006312093282681292656839811474459715369047914345352743078924396629766971473789308999190019053471909868564505531032947100784170315413330512117930581718025027697797896252662090661005108467323141789396073887777384622450660385191143506580565080794872621904159794516458110395773756585695479382116878693495097040179565372146031226469065315224079999081573273675619605192327397632883558345615348728599211633973310243658066657487686414492045052442363698319448979653187483958516452019589086682924496030853424511309876037273526227479837427942776879393924255183246698468651611769854666524710825249641717081344412978702005961772075206432484930716770839984386636955720887080598459632595756251842625618876512481251373311713237535915672464120459448815159454101888948909174535041092161340562256936452787172124453189901112090450375542932437735020481670318806251940586869812047349860400059308551719237998237138964677505745770543149806007811359770894363635387004343726236029848524673227426155927178428534353485533563297966650503234189063701550814059283551941494208965414808330075228957352681861809120310351341034068536648449834818000703962868737653623922004688609321092139568931179932294191752855360515610866629238802678626171663584378411862595659573874222474367016018586669629481100996640988893695370262626159783385412684093362937414406658858502931391608788017247584873534896965558729650397763623619968245320651696656665229635149688982013017158934442759197072194634632105290076382902459893480916434695688194315278873410740495324793520331962001524280667188004522408442919014534512776213781898569886559881823442107797360827561400727532454882738919287067242574368770707892460954891973160098595622032826646431488547127405232154771002273312653738171791350459150364677382503098934098043643377695394768417857692885893003691451816933866152955524755290592896305751872091952612910505003821273832225639700653348404431847076244717668727889749002021905831951787013015161624734017002922775492640415688062796478882347469174631905816346287382728197128986893757769834174949933394675240216810817437960986176871536084094032219404135582863593343042048375742744505323602416887436933555332949587375572805766340714556566472253492534888138328964571639727893261293481590569533207126187713243903832008805549252661726692572544279864324790370541605704295582398409651622472759064378433864685830045056858626991804091083431462784243369344485327055628997070704518009496908728147723739666208109810856039744058877827065341495348692226156133746904267522590994244037457760940966241839881353659551809509093277249076745793620503632831718822104367824671130883252459840119304336110779563459330108510883414359525599860132370016664830249938586444291045660781465123094213578103231560251454821903732595671652711232407846636805897496369037553840804096891954329859745929599048851240830693125365710938399996494893647142711524618412222332715585199055765398426774043920597394673726540536859702217087567264444646818938867211561566583627231920693442261628837919597827679443529288273347148470133596715737329189953752449259938861009769084852611136960513259345308977025227636658927518128751450407415839098174018049767911568223778876849992463771842575977861018280304900706653589270499160006791254955768123145875347642603387196770170681868889323782711705339427286395302296516314410150110194435245092396981994229697965466839122740421309096253570933146450639248572641261942057058578562260109109780708564820284834033285059859388466520967211127255125895663484737322637196344936716820667418867759341867104213123824082623379214269861383155869326486748900438474058654499140487296078242443840250002626658135476365654679640804961065602808092932269199908257187050672286669129186222413851763273937786948379737234208584229401543689438425038645319248939752819245352481727014712329746716530370667087101228075578761567577499038027788688195479964050941168881651059898608739368875360423895910100125578433161048801761841606303545311841265545233788211258444576084688572957149256965401061118254911992197712239352161656450944668066808329886564496125863964282106951093752356990367777939915205991088686034602749797988219018003476628721733154688206233099111261262209574841630623492033663539381316661430265796882848651745196203663043334297913347751773438946302145450347314859376111274811057011939561455654124769314107311632371374908205617722706827518007060853845060728072774284777563226726388643172051574193671362332023206418428431471034402674797137009910456611446651916225576059834747708040023148377625740657177326901294240742365184413891957199515791009662204619164290549847616570347559431767350457246727219270578785051475186481712897776257595467640323995448299471163657710060437132365373620264614247758972367004520100453728159207852065724988417918894276184458743743651047800851825724902673053657642987039357229219118107796580733086958381043158395140432549831470877295673908973787070233808306135296968854975982709665679556829593857480590191438911563853889602160729836364427711470359937264189660486069217443537397903526976942733925093775319612424962416789218259412923053129032199218346718380266157471162025234836916442519310263792681680547068602139053859007226892573547469663095708162544624570857023283849007200877846669955180267929441900567209644881430911339235498471396644344311103564576440310799368785064514667975364212897963763177997456604958328081659774703666794351603751672638824067259959381180012226005433844473111009109616993484950382403269719149242076848499723788369496181268706562202350424706640191336335297262257584460683174196639536129863317157790149178877946931752087197549149846425847090158131675152894878519208411223450616142032108171254669078447237524557735308992435787314339681145028735723928476226235056548896363311567066098742939983999641722898575330417906034306683268192222542985301303250437963395080785345591175462252173183264883092662477470354115741110965828154104492208317989505752802534538144035867958373851996905825324527457177060554176479227761602519377456683816478373412481466203747164773333502364316665243593967920828550005920754004028618381778525487429249087004293297490902083329409874518738713979331774735215506068698329325435912332851358690187553005423357480306260146704750846725164563113620837835718302759909284390385191883707126625971448131239832515329049675838363619949188063894492615530816079220316190631535537479604566114101116473779489075885524523865538441496507533148246367129716643256686797410466068829615436822307724528101850407565167124822409293241220248940123977396165991828991432575518939472189270650603809589021594940621638898036316146904148767071159340317882230690170716255397178688095936846697679939115520964705162585213332422410352484813320680452309030268871387047553730853690452669397970908522105565604790565748022486248983456097442319207256755329177656905651294327665814574082166777024008872750279251868250626197175847701774948436017432239363609350343197980227749410531762014135842783007275194912766904871521937776547583737191144661418984517483451580647415022596633088033627331149300650165128527196253592208969542804750633683607210120372190007255516315970494876830915917937504648477326196552535174915096716387711732732497259708423283341262627845438740293458322520561860438818530980878086902624321054766744415052939662533054148727470541745543607270049792953422025655655968320234865127748951940807676119202992603987334047146022452012591855950851558317571634045299772804826605765721446716378097016994476464410952187676870146011013819955754304401459935918304616221997677237473697493857896970628987213013307722878594578759629551081045718611942430325067892415227377741833825173317456498252406993730073133508802495603741876646409054550919217252387552421257015770549236239983168759045886757905767625485234214039244692876538287910618436297224998453070538390363024085729278534798434676296062705518462019348051485862847983077980164325644040403849105979236614840446531910405415204284575153273996594034083354227822172200553668702790405431424591633732951149698389182198827099305173172781481009841800720040923574853124296022829310372532618534455379833480549466724742304206778051570131380334561287472608749154877859552304345212513319864597261148276368628231762785691266985424312050587432122680963951067079656067717878183540310286519474694652358169460695992673773085628130264017608710071047783348919464027685973130181431817090812372276310416455708146616173438549633519252671406351385740964976887204672161088526954524472848571490778475753132726544441494673309276027637243264767239147546017325165222087593270445465350531235379200506381940369256026833437195199032408706020916765870053470376231820831488845115599870226262383724321693139303397794581345647336103219734904879028962277559623716283804553440985554646333676260363316043967083770181319377136047156043384281634783273215475263432940705565601663512599073500128555534595529023246275388752923134052027109130530332447189813759439752720292287376683810425637956336944293747420971177465201798178135442516885983652262418432802314326972680169084892058321099207229599215694888472214755125751343258661564096978172912249140166252291943915534345100651240701922257368819843439132606986150984109221313564440585348256862097742142647709413444679211287728478721791277621895425784633191337379300266953236504862301625025135975431001100722521496340396379393033513332306709677850854426372043326666872004317599982119763336368819031185520351502546938317267605245153701330678482573467123826511558030033974487342314313382786004332788826856380769163971640425517332176046020932538183195924145117756330993256787049696276352294677295179666420500835780989485440827171137641515530291593783829901415102925238839650339427347519687770031647387836486394778476310259047487217379777422360459128355361973589062112638485590417725914805877915163217005885303167131684330371369291466923791676473420684961930906624489580945331020047249591112995018926785828808866654885630120569218137251188415792077831066069647768971259872744696402553994790057120534558635569318920181632439802505451590269635836827170417555944707435200786471478771661721712826040542226691443630029277617014770640620942604202834152041040218225947509799834662402006630495544272372017306326718601302005364360806901945409740481402782121374689522224245161374859588895266114242760870999952486789898427705981165079448769304970712617974563944904402496251199123997461551556648461351768532565853443076753583209990247919151327061910037750680842122198069201898737007061899990995972538701661926108417472042808564653811108768029162647436498016468918253599053867708803284258025084038911629143072477073983291701566254983201279170905588614320356362456623575500202815891210888580344278843457762394320162801248826004441938518354527213860797161544922883214858396618617254771277673120525183283020993308033763733595716277947084464742016844801176240453827109040175530651474254242680310287649910639157061223521667560655847326407244957770519767397054467707892839709022634534524320191754703399637505101553121096694041083415517241167255779433109012407322615738868142622982716266592458669987792975697615426275662274106081163958427509945794148443047004050457822239402943010660699058206662460831128793428767367275035188937491981100226959264609581785326483837525313190073821655887739100268865028688413548817951039982369396366415303315843642603024444235573229874102613752841503690093178498722732621457729850005418508006064929623181058667057207362095627308323336370761052462733301667734131642188774604786711641579846954413137355339180939958874224587512725236773005359577844318904634214482210992543309558480115001725518838206369457215659524392663721171947811435725524011675331192071812963837909435858629572744401365077270035106266863731293789652593826827620355880375657763100816097766807640134489082931437475064379157697182669104218054506187803804592992771884054661982030931694201959892776668595834645406959127479042175232894765860406280797267401455517393416907293750142582468008652656320558207970647263665841685717426111282916849924495134273184721071667047492442734911766485361446098976418280093141388281469087927192095195823071122830691959573378088234437602589382771948601037551044099933120195147771979573573851251214790145356204578003216397863381449053225369641078451539776925818730714015513296356342282561307775812296818965959890542001277103273608514898607693596486650212052785499437442595510754891917049626323760967842231602846733029655592540541748082066479121424371478029031481112991272811516899677180976853855064757814017474741006445263023065113103968079196366466942823624226079957428763754622576356437994215536299408473282203189558694887192515593631770280828490275962891475683541812034191417686544969230013920916726076601170807705451710179724032831800098420931407922416760432197768206520812440157896170387342952324216762207233731775334639144544995293333480291670438423564670594492183494799695701145209777578952502543480133985114326565295629261447015208949080670528211121128963886416863298077938305604655348996450078350412854430173695553110282424660257237909364706177962945584402212826882882933436804419494584053195550426269831746763435259686038916812795805823896756114617675216870442584350402956940566976514990155205052293918846619712250164259972479507622613854918557174623424433278947052170760475545490639081099466507208906562234972791167895219990632083500812525747857345550395046521345208204333270594375925528513653306387211401715508622570996925079072668257328820426477529540521866076607147879269104795591800371280820346765525476461243743215684744497938699366438172782550979518952551826211499185744964390416615856799102571115014399987349313954971182447195724783668104516509284739620883233698855531284355244688260373174513037508089202813897921852863262269216820241800070585314977575943487354404075004701751215450194328384149220280629447826112148284932239586368453202291154464814114961696770566788167135272798119701424313172017821812695619456428491657724395321551889982748009867257690995081385929813488170498053991505365391374445406787101252890338807797034537909301451547642416609258871020345960251376153699227342517019008504507132012092448415956538218051925746119467861851920545893612641018288391885761706249416289962145840336914764061080710969659364340076603694093976476240286991221015969539762088504947922220824104151997164411554222766020613948874135989383911293237151560466354704728889593088527359002393073633431239483744485756846741458714910856748940729686457822323505064683754480361778641639795229412593711142031690490249473220483099650509244023315553010310350151274780116214064475837548926825790730981282802428776921364375737020539987374488041944027382052670094813028928596656967863617764256475588888305011071249277169045555390208560414239338004678831225258983860309056112338873298702163658501685036644615917573188945493355510777536756412539903928953896933341037059960703684505966606919373246167541492672203573388641354866246688473073542797775240362359061567393669171704027320719884892583175900893162533801419969843277090110947854052781285809185601142611723041564215105364579313160659191253574475917596930574522762871922546261960119498319457191042398967070550207268063021244883578034320662948413798073818984469157539761028254200717474469149010787171469188276382293971682006530641936996904188000764116394363416734367065593081268012799243615118850617911826419033527921864664863983704845780606147921963420747003865119523012498077366169908985161926896773458040405487129955464771333048315245309440523624187868120873232918536355212020646473451013676203583964540956184102454284043246936415850058184232507721370672381848833068379878960350406332217885867633583472861737667421834184416303789370637447599014150795053964946394114984544837163970738738744988382828339435918745241224141365873845284338128036537781296539724972724955168640024857781325890456716770113111447727129121261199343320804112698307174804769334218753410007784057840593533812464626297123940540657933946403045914748263254261601161368965675867603552877262414726188602012397642632102028458232809665945349824451814210015445220604448734642812843516214001518879457578710004252322349502768899931502171018910537535863792341303402767062090863498771901975932110348020753590132936539060290220597876233497524740401202068695395481345642041114551084673752109839171733122851562615872576824197505566352127843789211746678857465456994539086709812690575013184040148831997735981913714575275240567977850652199492633466193411362284829027620483181448240325869880386546470193791340910664955928280303529691323823952275872268030980162210071410361251099279933777321256534390500599385820401572775438913835136302704712677416487528842150615653269712894197537129958845473082991545438714773049714189123384131157602526179564516098197260087008753733554187124153454333606117003473227001705002916190128391141342339797179769443065612963205389701878612389808867160426423273355166377068578412680898147608069746769233659346966967577314627907986753831477620446396325916912495445488771296913381222288944338123391274734895018170837761752692170524514705787517124504323001189172069610478820584157981954978724705544611157459267725100154049451544387321502784038154393031879545833674526463913155742266478268757938704311631791667517579136351888886666505933369053416950250495222942659425536451624775844258750403401889877141208923054333289294732513085244337681595366398455409615255306742597284272636497426505468767196248341253163993400113728662175488141219252383266145714093123453575308197676760608696408146067813117995251112117912534548454047764496778417646300758504532343338993627581787646802498106090530132898257943806850250038620233004695952343153443647897301144537112804464436158874855709093509833123099764501788489289629048276246473103390855506363899092915438048409936881654040720837433786725562753961588764632981494326206262152986776465353130799878295401528845816542718118768304534949918265333875730969463800527675028987227552988040108819621645064150456774462393558923961745926914323495932465907166338460550404928582326986468004876528422856879777130472020649403390951973091637607333459160075050510305299664577119388071775648816482791809107364768296192142884231661990670302246735907765272974210566879366189682555516115586918122678023022779627948738398566558969434991448087298751854521808558078347606326004605828230416614104988926859295724247160910500117641504627211709221541620927238838795210740932823098010521734978482410983311157317011678153501598511326604639512662024978490617160269438462753765697334016914245116954601809752155677064093254654775661493821313755624109919892875605443873652118019662304748321544307930826169330215119308409109308270153262763772123625549386343320742145588711739650696000093438523672447020322104442927500337208274240682503624225786564511981883970936173816291196378940519299673108025549642187603016318305498141990242304309131077163066036053511068630458931094944689404151125402792328789858667677543247229130160015904346722091359097924565518444858507314554430756156021660159540443031386245407811754163809403502429606188138739106023748170233019260609829700925566254250873064679259474070482530313679831195166557040114224436753921551116483100964166293725113879465630472726757637117750792860878654310837954931053508526926620362945754626916136311686307572642026278227863101819310632698130848275178366704976067542614603258982613476162718375783594523393049361744948411050910245470845009314219891165241163723707662921979483501721190994760138543150295740277677032449352001288961367002352444505213061178239913557426544186591266430470057876663813193561511815712201807025397989196299635205723792676913149499864847384016642206255339356877840469697013074763291245965052938287140300318031223093444519216660229437688487197029962952272284292176186806273817452501342956370327679965617164732094578983547851020401948703388895556250114207570398149824657532112630457605008437290036291977125086895166013290565497151297349999564410446169519100027527753958020368446190791178116267790424561498421343480946631398583068930692743369654811678646756989317148804992281321851413656320881769952835222758531396631841035197088434761306778177330853066919826139270780003592787589615265121874228166298371311417790623754175493573079779125058054577850436066835742428207024982197642801199219131004013016058667654333463105697357689918540761515644397197359971477423585139948731534964338747445904010660836896222566363287471137836123023182649427667904431221108621416378530152876932339662259641721004791722078530737795903790505510368515472149016200949299948471008271828521505333097579865533983222993239431959075397212075775614112380944754384601989260412488649424286466876410949720939271469867945748544936415454580639464538630219510187471708093442429696666795616383232272677116690414389925034258726417390196264043657823961910784433152855129480480796619144048626581169676581190116938916361871778604470660635056953366491809341243410544604948818849518615022516182626293691500607348452479487649859824727016419966486987185240103186748320546782912711021746393236621808865503686483488320987848518695894833946298070880473635527758052214265070129193496086997398633842497365026446586234335584330868337646777883020452076946152170776231024317890121385419837044397477550185290978859067499834122010534289789923544395407134507799858826143388833484292467310351749598543932385753109638276752721852052118340455748731092202924625219338107943100206633501365079020803819392611343845123019272392029214098441220938448415840302018375959437641446068024863110691243109337442233917982777190158024347723242299687291948397645066360530172283128424902426988287016579165261781004207324812214930659347061481615336556256810357238938811374510500043837786412363661366062998486491246324959274319260135852132786472001969883515215679023026823885511010293320717108862333814277515308849106693533335783738526748770489777836130273460463050823594317871166548362280606770383236850858438776741466278601663707338600486903699079750673666710009063104903247015788810026097916103302249886591049837172180834830252404206211298875952028877524036084919563792252022599122930630175829518895539985381557108967150580121063891777168453408433958583204564303325322174999587524619085718531534974584937888172540503200254961450147137758703464580464694659245171157253905071298080536927828141736816219111862823315491025673065490810854934864738491524006792856959979947588475002779746499854664586862497455247081924278905510085433248100473431284378971143753798528593911915431566964736090891015968680518471951268997999698936017747233283970110086046651043969458515491640550075239925287450777846351990426379233124257435859213216157538129330368244257845389040963584560794326784454238851769673163617539917958415482872097131577585356801285777807402114626807369388154751593006600064720412040731328892903561016431231474116364801264072918516616288809571844255214710582719345244253124374858472393882630505369521869248519852316395935386821852625068368381607804086219844295183426499185416961593767615915256265541508004168325407394103603089193471036244400495347008618229866478165635077475415073322921414145224775189215844366316529883084552664832813021936252012465321730159939073985898344555154198977344509133701595917736415972926390839126300439562451601932102161732349836094543210837813286556885961223487888504152612208721962357786687693040976252477472832311952460370221229659163687569218015379330846057464643237948688799205574517194452618763272352148460249092805448444844482238548989936975369118890700444956724474635321857777294764358926721748323308745784290969856970800686050098436565099021844354920050216692294945660644080337608518220910002959070897983383439769552897630847698047618538572251851177186189765754006106559724758669577622849996462184903546894939250278620610800515926748330159511410414760579554949301747179948046595683652025131239421749599180254849954666658221611477841727848633055021860755568260386036602706570548763057414446357826329939731055301555252107577980836923492199926254410820556791242160451763831909866307895014639551459174838504545474035067037629969940075738580403218964552368364259827807445696380099393451408435097108796716957278372898820401011356569158227851291517608335863476191183287360357238402156880373628331157738302564787966187492687072453208020495800419801997978137775370186645240751202315053724806457633973409646937200169871415129719659626712564885698376633114603685163799930767345477108357985121082303967293810875197534457722859674841921204529305199749956229018169650942857988545435408168992307395350023469925042920428392535259111344819410667336001477026921264616857814627995884646296594179527378178110066958828590997988372675582368585996340736492146474972656600472351389673771995753521053952349830038930066634526078161860827879003696174578115452308142966400390035187001124280193935465167757949664549575832344878938030943622729263375180738259663773704099890660477964737187847640163379775502882082166669971793359603148770714180279913190092670148808058438115575732074321103342821106838017999766105282665290518763067994760426852125160298946170309618233744761378592746240906954445343184767176594389637048829762591156934396088218886201176575340066503883340252074906939777215111836013074455233635524877640710261566725218980263781062379808247604053923634128451544530323020082842677013307377930729093868818872433564854181754945291950982670206935157685053638247760587609741483807279773897821514472093964705752065387956915517554701212700356069021279263496381563430347820826650701746746357981343789025767793281988513001650149785754629182072379876231115142670950939283643691717824158957988135174790829142800157371317904985282629866877822711144191529285467797448332707927314951485848864516141057159783812504742491545683285033618410064181381073990435430507365303017265663214789057233244028242608040633506944149345071138389828155619656427798891557765056218219619279683627423219875325167183295061857456600463837472098851702171056860723764480662406326973007373536691521452219132870409870291405999912919976437676736723227419894289705757379245750481829580564837085863124427372233279286725065969731800680238775291687188837018308932411471840294958488926723624774773226236008747584895597110798939546652539455547269429758093764447811968389667015695804987297614002269991052727246856318353381052776657888801394351328795999723184383288863304398493067949325508917817068235284350518784972752919888105504521777227063776422453856462035861937165181447454393323504310940612263728544022241698995723387292882148397534223563029385833857130582393305700835931391185721077186096886863188814746532174594059332705989487199655136828505408794889386543123761087351624169608864465836568710981025549664506403461417295059808265552395712476098826522493374295133116973940995588812326097596552378358631176203137524475823361559520730316340168397883255235930082193766365044277931535471114376344595977188238770622712852137213486252086040648398680659242839852009363971207880782420803029553694806116011884774477042585855520685983411025985132874523455687555196606960665911404711132653462676255720916388804719121832951349233380390691812419568881092260600851033302171422633552891430035613946139826112437804241706116840245506011935840322149882683765261373093058575772077736425029083793628088721498221355710087491773278399972467836950185569264468698469903081257736815313581190953255566169716022984972803544037489226016624832367638522033613367443686624675766042962739428036285229267464575435460636957739367722820225056422365792334298536698971897099189534094999651207731127718318182073619280816912593261106359484220775346498270588928827977134767394118736967462928017866825986469349226181119132412699361617681947705562831694150270221011393344508737681667722501298267459014018948229133064460051121840156087322820631040989530426578319150080229036591028160859674079442715108658986740757987977755798315446194355646636898826925799110916283110201233014503911689271900203827058810743226976712395121646883706468482139369918072415992947042109429605346445234516998835921218725484663230705877458187542586264148348481139047586661544884542647707216565686023509340708928545479552776518407486451833160781513645945692455603937171938116111526187597116224804230889148077378981876877053395188685059793131856494045119183339924677699559553991708221100756602857665139878574844419302935451045709511612115124114494189634284527424586529520332870087089867907410052194636481652645541727248977302223296787311349732597147270768009111474224217178266910598064652580083827216023260214762391026559377961098284185890276696389928680913670708254310305420103144699986693298104348139859902465155431570534363924402327925222573135809429281613712106335368977549292250656945157560444316689732494088144701679725047552340624326327492676843232455942247680833621250898351231222221830948244486130165379727092262605877072540082630181297979391434448045759322235655653969083405397838592859966485934854406028923241475687122887329824020689349189252883739713713848577052811290444767059312818456527884777312952447351734157699672525534675278858730057217744577700703541829725644644524922115715189074648257039913961406118161211459129513677980671894485536924937833511024396347556489433761630378800835834600269074699109400143493747625858892978130447514422394440636027101447170483569868292143602517499869039395487273196113572784321236257649258377425407935837401137961723943906035843213536196634052560620739575873109629075733740022109991235459152334317744166712718881338926852824856428590724868112679980934102853427164475894880737789550049407115526774030767549094362750504367574885901332934208200752596939107383167951142638799602444334242704818862647866349222013387456395490687636380409319652225716114823696942343711512124252862923953619523303632902805212938715467282193474339242226317666039154269739908157152265078797568207879332448595164281700244228928466772711655516214267714303994353049221985866879096435900271787681529138417599864171148578518883983007518375444287866248349227487710411746114701369255187480777273131305494174845313503609348071525079075246412836995975156144415381629297846773969047683991625188576016719985544880657831385366315726053838747001742468396247614833435582896739810169234653761575313245513164312920777512537890370194652502256308912632338548426581544410441420291198418012252768293453316232905489916002409098694084969735991816399421702774991994168318182656091072455083214938673237932216443769872811611439186031216012139761849081498235641268827951107190086531843896064673286816296069992065448900114079398614429465941795804302886302324358021659014598035634345930887373030925736893080803970832022202421432103765716678232698637266825162463764136492945336959990580523252690485847602321774941734836722830661801760853052023826933988643671710853632082295857925409491333463022372985804012901890470160659988289059871973768885976715417159109814483753226390181818563499038912022956053372645767148341386140815319703399661141973664931813203332083072974177410495796659343506201230295351075075150456441532189595129501280795596004167042480693235757990561876431057349711212242730634733428677165624847112201593190747861043986876304720407273708248551813310780808758502276086102299554078689440481111742460791834880096460778537724873052473746543863418754279487279217802895651769067508601161373593743657717388741884569009734232850471928519401889295549999767669865316366129137555292308315831666185733334852156897530615739031120762032227724484350921030924885125878578145288105904875073601065685820976884877245834267391319804634424088933639570396356196379766462191517050354881533440056207148884221631975047181109402996600247213240036808650098097011186186951140726224379169071932651794972118594733806175763766332844193094637580266615903544531241413629282949904181707753087727918202410730728272160638956191802438928047847116863265656235259311012684072150475561655550392259222707759835908136825895215196461264483643220908709720426935253096164385667656947902344375577556106987211013540235810105325526769478516638190454552717290992390580370552027992600605494486468421211992091640628294604240976220746712883849351705101073720567200830979229580606414703033405490818896883033432728342582806046595205695090857375665664175843876547714754422079469402565119457096772253302036525936439788767011547596881308014935571292238069329563047771265651860138005023246297813313251229243269821919911953981431245302548120415227329031272103109858067785949109691346243873783929276219688987547973345647817968313534698645810395542403502172970196623674157244767200588451582626969215557440681927003013231836414874931797877020845410178804637596087278393451316646159820847975785646826100573586178859389189582981913018665861262603312097510095634460720389375980663701134146119772346305421401807956284876338113002399741589053198748558881723113003673601446217787475625252615206458456540096033232737358535632229864050515002042688887648330494766091926950423712133947130846146350829816972319994266439286572092219254450637042542574972158910108022893031149395077326910807822053334323683355804453182319504209324371940668710726061302154548398484060758248940753247214125037995282235037442730791851949680482809321531583257902072911984443419536893085533782134782524396509259397640657762000250701886768545357230623770709835773497750797350741243124751192325772292907711967235443349763412501164592381108406142860751173763212473192177180494223281141642111428787935008630048445609885307320271244947209269602277532975655839835525784263312180278191342534429737194077006506697946789367991685481012788160121104155205516737547087906953575699063793162708620579710595921912744341760443521598039607743974434060551332677533983405201449766315860842843459559138801206112860538098058214884747999890344158931164558873943874254942783878436752382073823932079587682856318716375578566292637429695700949568506187411174111894350240957477888366916375666591862385321099088004726322977621199795168874486807583021507817272912273913456180024867795736318122063578148847386720209584353004937050368764483932229213866580851314101740745801284407781187142952271917699034180099642632471290609513228900141311947780927429410062132537533569361930110239644055741312286041069633997390493909951217501866269301249347358889063536606765400127951449653987936848882384787438804691545382927506883546143449400793368865932928959252881947733485025550935307394444586760989057544462194628744072667323838572640155269005828399836045254027487878470796107876522950479020762221582914659346985257653657275928984699468999066815224399551011418851268474578898756028801188336756659766490536243939962604291841240848555350318272153500967554394823496034237873207745837894540202774124237824445058261390931307882400185361604894136591263010691613764774058200523397312770223268611217505449474900768989458229050388023412554684768359991472440580612061957265918670632914918648027114735374218157934559972806051205020520517865142604700642888237718070186443767004813772723689805264698704727306175780516562271117287453123187378964863627458727965338424783583734845598705549022193030659685232059494072401135250498499255681949768625203864390193963775751367797251295509651918863015135735026584148027695971015029228852305260123309779910324748213865547495569440844250136039828003669421056459552731406795693375280167427262003797511308736874233590652662910708854593141721552254390991230733748837719051086618529474941894655900654800902252553370258372237475936729440751418823652774934035459948427791465198116397036906163639058825069117415742106404436544251937754963993293914930648647281920782464029144089510360739611639504313171094734439649674318537335941873308605355836975455157092120754808093309898563843457482574522625530292876693315865060808954130082125193541096996433879349322124079711127032950918403172689605894616788144773361104763980915292824493206150511444011268639078263547102221789477380956812507434960660565287914353766080256892342416188558121576584597981656199540834408089775906854304452611302844226115766044470594480023168051120916979975788770021113410752316811757342832043851410987973605611611553581827311484445449995902780043772844675454647647036882328636160557926948894498292685958455651905740550566252773684484322449276566205960887603860970840220359715074636720793223388760534271635636016408687087186601861845481684609320068848040894437256713489282555745983472866145680760133093963883415558048747565745641837331017078237596062987337303139512321164226936008949434164459555758576016988357963605440815287881078547203836435349624137186220962913393676666714660170526739521898489624157755424224030102711191384362520232325730103261141525705410228215940909270446657337815962774515738748925009717737688949893999239305788817752621474827828679206694674540769825089017902743847294459679062029175391003135373750535730221886904571959896283848172109274170481734577060811806430088389706829403937625013922400681060525348391722333352360314424456232075593703780197605853998831659044487531406143480358466346798088123699882330022358289604952449280102343479322128435872136585728252531481809104171610499334085145711247247388321976710899103979346178063965637841591076585513774621237070160093276045355888492161204109702025566301673010431163238699145136205647942016451539682297755909770708413743162356355048124514747985619649487534656049104964956156609754328896479848593151703714528859641188534215205011553681810416948971883361860767060167951016182941400398057074341148137670945251024372365427933390656466150580785172784459964606399478310324291823240488187755688163798722484098289169812346880947180021799108397358261104632703252324572250141435278257212293055856068223545653379849548434352467536632233239984739532405812372131049833607106179257745402486227718734939085847530592020991711691586002613064742700458883539195487676968286714235986811403246128303552913423528931467265930825184045009291743263822644527283147118657328701787745046490182397273372441309389751203376133269959339695508943591956584391313147439474320510450828028048028386717206865336803179551280687413224841821258644056890472428045221146624256437197104110137686928896570488981558032974938384046974066407564996974913413134213692485122004328353915382806384855189795494152386005431609260735396760978005893549995194998983085905446592889752654399894266141884463045669997658687463940663281739298036969205811708379647285441180716698314244099403368191372945328905567046986322227107696436796109941712455671147649230075585813687963988210818504842389119725286793617494607294112060231527100445430137594393617684309940174917945519846970202790041210824916249942312941960429857678369320318561507082208625485380353155578056986413171149561514045115045937291506205695863338890511846536783099585345583090822299295514317612242495454839981002368680628879954668160713095739284642067619490465318539680039918731977197522838586112160949705761101263012831564876599743258575932012843783244505100898812757346863519738116248726150653632677230898111999400236574062842460358983797745081775687203653242893006462389506238236834436307636367616362374270209909705348054559781146478252683177149692569546030230024701925243290805597329692416404965334792055862114178267810984734424205040893951200542717438312876029756936104742689154764693347364373106159173308253373785394014758353096571530244504046749380010949069064237723197253531654749022689758801249664518212633540545542387580709726212146943468047920598970906291890539876620837687007712341645490108888408561848313019322392996168946953848632149076826945160701633949695743726127951193373111251317824694177124683693855292141269187633124982567022335577471931548917410695691207345877759525766089220587130053809729540486447231732901989175010316886306864871329197487704271765114681482876619704049011286185429901474576938620394558283656880239418534272359833164932350276750146373857764413270687832787760192798951507584007061548939377720301391220580273952217267826093734436376393693805251123924271070152372909478968485458080988563475080034047894292327939273467181780939715591529484887533863457343087187859838558526978582589868994887190136705722271993473757785808777881397185149105050621378483219612485534895503687002441189418319284521989240006201995000260861130224659769572726737572893411519205797621021124572210070780700038488039143651491726880880366218385226157867935985636745422505865199957565445256294917577409916061533196917395487579513813226882957766149550351803387942427365554529716326548649647018899343874703644922288712461190106089940077931147768149016606945121631894901768900592009702431516636529624537793014400061668657860134945654310875729314305410725544261213073481741482778529192286466015123222784995932153188557775032739165425336948148274728764047549749402376986585886574983492013836460194986424082877801802472738283327259099390000064339350592078817302262906768022849166108618261252558320324665332958571651299162146468453410819585897685430021883714130744411557447177102465885760283981014365702455003764807299154474594467843590523851946231169348048933740328207620340809324537144420299535130116566689899375816011285820165558203437162920003004846409784399494838911553043637395395237045106885718025857991003663312877928921124151094451349257676974589475340130740772622684777419908924012267329344303431408340922204121551572324864872799986208228297386316513228703915606477656860328482780071792940313148435697054128534418538340047413488379133705834155066363467662467902008803950528735488068135565123142372817542409109528052312394231434683554165434339339976223063154040937379204689123609863958362102035264586252022774776149294215047724583498124525845398150767130296290236487947628326305721779317149779040030884621657648319765610470569021279205867576508256293959302612393055207601600411780208679951371217747803005154304620431985589022340836017884139427215613947022008408939086763789207058186972927991375152998679267194115228865668316032751039183488099408540139663862338763744867787475807278809518555884835271037263813330472838660995002791735127517578244907847318993205053502015062534517089013189143267551424080793328731524364055736758401306679741741590774916023235595747832616633285484739629687867008140966200659855924674248782925153692816402285502429974743280101108969578231253257581447164515867223171863304251069911647492046086210179835957499468756670593699112331869178252178700445285255884717965539817343991630802572966799262877675091677057084995271151439830735355020202703998284471903624743285786598586063285024854757156206182946455549874995874664045254260940551331400273157459810736328763138472665995540928428090629041101732287009346755610098499125053044885474476703712039621345163032386246915039529446048131508584940143607750294468293722158562751037898150997178531470963545856556408740343089931338757010214117599770259082037405846084022436566381818382494720454169893059548612523124545828351259129867099070253547171503973497700006385437818573111399196985619955097237747892826414751029930482191512948984778351803796024616732974830288846310397535407190049969536306370477084183151070165458956209785300181976330838377679618849204232691517057507059352385152295284527023191611935937719027207339121062362357131986747985858090260297897582121897052382674281737688444257662234227172845737129746798764398949615447998689104267998359871239420196268773409471953810360928329119935695388648977088705902163963835350622407921325067655048813104948838146679608536659153979333471249186322371152996778818915955614560493317028532490525523209521061560817553980850945901759880325133580478523446758660344043833634100783466077532846471794083770605436351625903076846857406335453111003387920675166376394799581588344491343315356516707639868019564432665936543399697448143319380502557621782281170137890417406234144393827175515245058630411897458870183285496959817783863509923615136925157299093088238865096480680893663858614260982566305447367358554046700152973449285140595910019024816067294721077965460651721691913077432429401741329386351128860908573831851837606738812274003911619925779245881633044788594808384638588231740283027739146374186365621436281668796054828009549017289551472674553614893070600415282883106932291516838747259254302757974986985556141394656527769650751517399460042053409374049726432431412643091903509534037227506598013823748072086750064198357053384450545734319245051585344247746127919246713327402956386640458673418904103762833776907096217476636326419640610147905355273122901822701495281270617181675390461548746423786362141500005076890248924492416693671151870821559511653132817603132261372666734883271165640263982611567742922002301525748071791022081973594080623515975214427536137272578907056651323171215944465426264831170950928382313967939929707736280540193075916904055708822126358205690461047317243143812414491408223355693302782813424799562516442874650810962404680329853158128909655457417651854770482416388313750078410136343493726120393363539831052015923209799970542397042789752357048394652369597511715252404201364950613419269746016197097779575748726540105674338938605759527068003974276770949885948689437428668391056356971642057329460734905478977224961018858081200268887309138510376498427363773553054598242150310356088039376850739757861218772691390031696082040719588541506731794979422515062793361868439627259014684694601832268347561639861273952093440529030622552303538928685292906501397379033019616509351321597094137748641907608518668965524049640910813505236140522954410924735095812645584164503940599494497796173502881723516297643446999611836371453171694000451491313886204538813614527608446492196685371327586180984285982365059035186564611571988579828434021949846794174128485116753717204118306984550871985244793744776951023382677597523480994922127870157115409609108383881782973002272115035013185024622169914420850925260884543625547758233007402032227759721212207067946825434561033976936579361201437584710528689339285708722918967039336401052685446622263501417032322863181993021918314863705681895228583483696497120959275623913453122067573900357014175931644994512388791689279145134170234186502169041574810235687051597434064197405908136240932047672415358558311877548687997894245095527530395564555502444762701016188595068979505632121130454307216141350794247108603032143350800579665679762966370755966072832598382459882501987350198993034344621807010041704656150425261561685075337384338439286456556950114069827082064345633391991652255725330037925837553808714457894780501331644221028011265204375385569709731052806035834199101676920466488611216894644569251376177826067933070243075785102562050095885668499838064814238569331579195069920375170890686397849840370572082200058775769260626710085666720059302347014027338338011141617246789953195318401339163241475550492946507442921187625755988497118078384226335269155824731158103703162961627959839415940378893677705822093055356566270856338605495400356467875899551359156597070831239668694448117208864342645204419700565589476412699491480314587647692600960927392883157174878163570185162024622819084102939464606436119730502543439433750603335766930016086569647257451524357124484692028673042950074474225843557335136503153528932537715194566635260069051714058546930833883168862256607073737941573004547933342552910742677808076920539771684889345484896510369026978861627927162136226429365027757072008408716823936590996342949176228538722907219819829542933312850136402271798358567349365862044256863273251553721385511301791950632754220925011928508096401425260766240555955864816968465493292988562862655500792060182715111844876646908759248395470166351528974320872480644377899106059824248931821486401765175543512104756567793046982561991102802955449727779160165572553494543174892887004375321062297800571935958284345961697031023983383935520516327938442844168244719973098963932906340511856349689815753095009425353916664226191056872784450583313403648359251639358889513191753649671577649923805065187694265854328298884915658481354006906544063826699063177229380843274109820013034237522312742337896156915297091396757996528489158160224135652782866383770925063388641958474780704350000136427870010550565430535981756582666924901270419346053998265461770260649889944663064881002761432286824611891872934188866102843609718171442998955484953000831212532651238903540455654256681528804720387620861466770520795123509029447240728890434181824421478863528195857796158734557999096879757012385521643304390084130781336850905747837563131761699348298095038202665037340424484036469427130010959722271175141154785169298319081275908557997216740999604574416441630787499086475750888542566888574081265659265724826564593910281662267161786633964012313769222848572284558342657764537660928994252312378033459782477966088665204635499200369911765265570322914072219231854209301832493501903243572902932056077937666034121655093269723901690922892034611515188748891391033344262580301323259368524296403175518784552696221628470661447856199221391251080892501963483850180966578950514557267877289477846441055660481422885761944416393097162930782794096734867761720926390292970092200178106998711024725870255364654945945710944465501751749368362696187704034183544876753598277908961621995426249738126688457487795567289001964838739193652734672127819238070818368876595245222763527396448443485770339085193726876913904746008025973907749511486198616686576775160780355018980505488741107624340911433062389219447709240691034332406138443275511682381117173347732469353468519685381664636536020077103999819630352334011109371048254842292649133597612264519609660590958215798718189169104141471094010808617584070028316021261494785199717636563430823853191343163071416137256240665867919582154342509634418369692003956004281127404244168284267340445143636641710563516713232900001732307600394837270249624400577785059534622310168421851060910165365783782986257496937593481924839766925133187952732770353567544446427885097421483440976536969188291095093327099360269954991407641391662539887469896253655706993181723916376839243286074291553020880792600752419144339780484260030554466896817685475438140053029322208424088074690605388935497384648274232395537784196702515689657259819012320710256078828449840516348787040935744798995876800281090636063912264783416300113372686676838776019648889897071899258538625635987444667437757384970243893002287579120520245023799386668514535750773161327260362871174551488356159837608584358668747270593702401242194714441783759427201712133949482663002026549594104143172751418086054752607164733771109554025090116868941297042924755310430897166683077866711955725064519909898477349790014175739678426050425631108368389581862549713667882935505902229252962419161219848023417107388211986960420626866858342859367984031903681885596537944269160925313926347652205990602964086887380516372392027329060584289929576730307955197293366523819867773483334401244604355668934182105909214350658785899933663066273982487092564922278824550572458798302398614253798082649772323727298723838529978000261286691189621292336063151289799684032395398673419127205549181732430995138523230703726277394897082284188235236637392933154569771018050900523352471140879758644481808883518201852344283083402144764163024644208679021493622049398896521931804113335194373173831898708404716685134528338743536966477267939138934894734511544177561162938620130857357924621163507041738192699354214270571244577456569111670216571407567660100935169669358724754370803414401755007135847041060075608525022985793989634480671558871662056752387376206147683050678661069677479081692674770516778149852385627909713836763842284960372737195270812233675546527197732631333322202176205127590857824288502112190510482603115432714180035059845558562370851421430765800264557631239924496840307931064958000151198206227125774190526581882224508725034260266450939103044534233295806600546396654790902342085557156844067511913518420109303828601933274370887417944275289584932808515375076474356955347306639488858725680169556432349772618467264946571559781476131583221977505002632055427222514931896106680011202200004450637827720400110893924551035203740366565212739170347273146617637925647681327194775426002790650251797939330940899149735987389129196506824211979257709303797772895779279904486945295888936585507059747969916002301772771651608199194338745337873647735353023247474703250619478536145425954924468297359012696635515877613573559717457776109346423110820900416306238984648438842910344573346390312423896693639212286499499039739518522789411168731701672920263053029503019655553868370940840129394245941907243916272394895237436464078945234033742512401263437545024749208852565125501005150073192282496117610966542004848572352849055198678019267486608227064460117433376606008330285206511282327564368041004793338153556013580397816901133236952740540534814616616179764079121602162959892852695992724279534591636822487773950282961641058445609125046628911991650937860334565195166716247349235783035745419351082121137309229375175414604812926230427297672140512832642097875117317938566114337751546551591031091335584323948355615861734106309520743174280231308971910667675434599755060631026307515613932438631198525105026426412011561277527885314629993220726834986651935657531265664777460787654021290351001059564385868657729711501706138015541908748635643297677653219750005919489125619292012659592622801500944029334037044112837271578709191213243281580954318549744478532240569457037617634030793816405692970659385407796563913037127881320118296547170684557789134626550792736055911267235696736558221994203414305164222587693217792921105870722732618640533921283329889318895198668719109130825862628432833959917032259868047778557082797384205620592673130816581899090317405989746673920712650961177664701659460196715260620350734044411416127485322911198120137501292876037946255139651065970122375430599499839652138928033362508824069700129301924801536929019201105160325364109103969444381556955151048822363241346775586509034754757600397023622434167161358305101309700916362680927825871226988612497903272744865904596724308616406530165937956435145876515648425852172703288573790695037380010638322036396017393757105418662517649896991194464569808083848382517507098923916679053088340323339633102281184720650893352004830732589591016243058905886830753304570960995126602653669090011638909915093114318324461375795845212929428779212691419799651092077408653447230543502987857963237585369470587814478806844424804509000556360622396450939592846786922812372999727937967774212769550408099347991016662055562976514830891122929348978664956321921889180224226915388699509000932749868758772360288584457679044719407429789498156835998541913110967024071802094720517152714336919417160742722965954441566394865319302993704827608021270823878675175341896405386744894318906065208537468027528602314759329214746077659477449768085391165567152178180795428993124598572702734335156985223863424463129534816986927085615451764424674183055867896790730050954627609320991232755094712937209540270097084075004823985042398675877849846905345612077366046564203922403555989330330134713822060237748699007301020920808459298801251349350831229978947329522291772190315713743804428508868033283435394573143849695637003520919016470115682982652693633140963046717011068056057087228604713716520385599311577467477309586172245819712797299981320807613836213735847652529545215723301345908385770198190908523482482552421819066005837072073264744142348770999605729256579267401697442877680568814966131770643338481817221611015605888312307360789298860721497231776597568772947246325975458052618542712429878324814408667418468981013251239669223555276043763150691907699067252186172028443189545053712252537157542412884827259160892817482467073574874748674964103870214860029336286789860726978071760552087540575915357975246929513432391105257269601539857500431122597552540130705485124951232370611025247976519852668354659650267677832205961924555189009145265329902014480472733977052172926260344100085133846680131976943260659736275903552733922425004419759486898846655986311302451603850921284304509988321732477612607146036225304777761115101053816224874557135215757754434470375542961663445410810358567044356643255708193632544529073994120458451600071010766463774923687262545948202409673576352090156743187746564821407448962052257282698113792990698043602602303085645123961249651977282569006902945508761099313770847739167240102335900986220535775641709142338466993734450312215092226058667308911218777697803693846691113395672248800057795986404423621674854506429355332408624526857783761470209050066075024017969657961539247957709899720111756826573637312919387783613099657049167093288598502761934637940894363600706594425998044952518079419124390402229734344429524138661748097476084175332268266927603885139107077201583289033534035813679168266440197388164561489250683977270835747353137492115149299359342296466086371037822837435398778503378937560106535027159047811658881673293118832938087958115006168607465537529818416900646251409267736199465959057428319151351787174673745735863231524419738191933195870195682852820386597752260527957786517957333771263410452736783702852300458249807504519903344199055271470414876635224725229319010984545899231439254868038719170783862582521875095068773309981632656129235736212363509906936009677628446339505289975395111176942091082431719446752153480861614445479194426150289967549086806839145027806418364520132413986240676871556179617164975436580010340189071101136265865808246611390456056210375294615292398228241524221998481940872078482861984494440842428974824025542523862547603563352742837768116545179309625544215003666912663368853732091997169353662821573510547670867735118673544169930804741362342641788756185815320964099614491727261636026797750395975326682376338926027558925932616959100622429182002052977198080233880809812568332084709225601821529864171091845984821540884936877768692715550020858124663477680894970050696566993887662991733328111341242410774797495832777666801555396556919507341123679278386510102840395681769163280330114988377767421031395900513422149794045965261530593162974584767568894369225987549063860189900436042569102393383994833479758576106639282472787612283445166813898726452331828288436559330151441294900677368400490389129561602155494528098539421066204549691171470371912309770871464478841773067592619732735669246809315455528842731792269341063712166456974627617389395389259900443028581811324947361694426323991879931359858381228319544635149279054205695320122134062896162430905343907691593079179440327381390151887017838137015778560604095866914440106539260482670220991821229833438354418957558328238102825241516840186636568654234431748211644156763158911606277231010733430956549706556520259090206023465428914111918442452806766688224344175361463418336621025776189853060020521464076784857936131808943934617880221361470268837681243573686902789945215994273173757777439971709953464059226954087808315111028583713818930840620074082404490744526178652199508024191905978017489594318982260317712059203485627951731089534921083835724967015948821306120577033783219093495287662058216946530002788249540297091127774746405837905286900375038549657081677820814853087187966918664761529916845717264476923548146759626949005995110583283205452997049575158336443832219222978769996015193320077273590322933995967870287064286417422185258213676335463060964275777772093656018203606089875389689243063832993046918951422599900827041559308281999629176954503753095358509698159098280642301599237912829634023700663562335638504883552552207503435498589303285315004921235838130726290623145084298270733611247760313156541743026241926920017926921386944199168846835374126475285369889406902153885720579086911452264411394490240945366840227689080689274661043617317840113504639246060198045336267096588123835013666196379224329887994463244822938646436875177295914562145029835768542982872106732533215687264998486396743657976100735509539155371445668336307639630042450046502662163107311142445271096083746743611290136928026486945754570247856154296741747246241111155260547634143374894212031970401195665773906078011605305910609112637212059094180163458824000250650789524416753877972530194105287838434727110950325632601341390959515016951122397949250214460410027219187413432369745498751174001900249904596765732860754899451693352052929816039050405262913237232397230608902607196244819079956191718373738349429242973902498847221357052827659516960138557520306222587948201074933150760174438025466949691902358425897146660100676111595900274239748705599959917654993124678096627709088408987389395751906290828980043704393894967140547238837038022676841102017997374441075500925098813324957836456939631705357326446732383613877923460528619188991272776203569761723368447697938072608808512417397658925492566800620040851916732448216551291099586781467008324949596697861369659432050402921264948304231232070841178768907029781299590078718595325292680949558184584488300056153162566281936127537530248532299101327710171821183123795681054077979942229185869192866233912939497675181106899477786651722020908180464708720911377740921365328177291086864999949418648096310717936054508301919498352440288825045795262929103163046195127316619428898931444903131934409670267428587279222339485828300849095360113362691550414013867511794985251780748222423657673493476326005431897893162765776567048156617229713731186126780514356429496191628046405102293115861547782587492198500974142623610028246845904699733733899964986431133804418405660805961464178460673501812256267230166763502646012561827306743626225112127750639359557003231374529958213015414949572483501176819014469808570057418995914273707162391980667007161526592959142292802475325675327194001106695453162289404608537584592782393250157901465646208926929976091165483332489962767658143966757240082965350368724210446869990506554837620752274378846659574948101123289499669013675305482725364288722446391051679555675223571635031227111498694952930553960604383754472011382798701829070962006927279161903595263130837768095012236950588442389988573813715563515438144592682941646835535061144976201378874426708480912772726693458976371533268204847810247903413480503706040083413203869818150616620151523217038538206282882975688429890366546721098532083782651592762248759390396262677582632345823129043365321931967406821939773627467278446866713602135598749277526080209831673344667103895847641665626578970468833593566904795568789839210794150992970307749467258558428340013782583454439844809746164797833959196252401716680361529630434624294648570037262481465756715238009278941511741309275838954824088809412126002717097447128846850030297628157696396520093890962717969843648577038735623619399049611145233247748174405932320629376826089653206938556186851768551608078697259041257921817053358495679663206783135862301257799656362773493246509886405064980241458618965153960668600145569654741314261882563121631698335454366089076680111319651748158182224040345914643396558462807059809009112107892283999336532889584571132278802932666839325817769607119740274292398599086421267080566048748747887291161209674296472613282553368231313311284031032505675280039878161133868918889998007970303252467234623998905024143253887964365087667280679423988771222094928866354382204598436169443241399603209574413970079494509310759217612339973675231573623940625547516618701335798680892364184495652504657747622013870838003496282891599610757789557034366914177049467307178793638870024923714899787897171281079885852518656980839458720027326727346261572908839718161443518215248007523195942335682039128255442402574795233987314882547673670352881615038251409369859186928941723366455964442431692527092980567702590851983676266896958177898220461040466213910868117125058022954979140656147519421929372864729297164898986560384144426020936275216229122267303130151796139879928207949441925211852186481266779480112866243616274981206928529529685118305288301550842836848416896273319372568506993211028073634099520352309563785122301443504679594531853524901549812560633394156973469031670566726845540077278273216297175256349145068394965078288706492817928481506641281276224496365221691290248235529891653900855558572085831068677602042295784826517544798053963826361295237763033342649173938871683650985051037520342962923595209368621035221126209081831570277036433157253583233080193642117163336807497189282094660508932691062150127319538129622392039141234179161378588209237218143404339487186946390287829609482329814436683992086686221661335545498451364322227001791453495667555728494534138594557546146834702636298442312849085517273412124651357046126454140567006587117779870927881439504015939939952069291061474130688643495053015953288554589898709312889207110960458351156025779583302321729074145353708955190315312658658572982147313359106410218203224999025547116767244203089254623073816250475657188682388990184923996598586823920363681526445581617937085170071475863349546100590736225703738854745376286461640083176397515287186790153079701606829611213855520172388802052276011240904200812036263529122387051049665161928648736337992681812175920722196561993089713111061927631888082454333279839725594342794343124188758555524143387596693541492936290593842963163364622085939802883202881712526339551328071835364081797870329001491576465518601865842682247691545406524736144849478626934726802100607613584290780919612418866084320618322202900303775641088324314042669553858121312434832528122918608435521728266140566513413614526295313401307611851179809233482083734303233305757383345616447255276518162544059341383688762320573791893249711080164078096739077701053400703311937652497835555541681374845139366054969461867642734102285243469086937294422427660112658063947109350232073845256757358565738093550068753308620474964342650865229764787604408886199059133896642770978690015649594128316067182063086166902941608232085497730119812418747674013840335211107359391580040053580230822093192920742102447460899207003919608083766306828928110669268462027259395623070719769839391882666708472399946089680481380287797404989182497067326892348507036203374395593327299068494842086713799236452691067200860904010690422009503606852369608135269214858626159913314280217437927030196958022580151135290718762200725995572328861550220817909288593303357246193395568421321944061807664551573649228457483477131223706603347445171836070466402592516410490888823568684266427046164993648551600991542865505277402204863846872463626859607487377418699656388574926335613874152148988966432560318141640613283004863424543380138664333034052295507115227466089818830410438974929802579263684630715119945070789343283234488322615908487568572842395545583953868471254525438300889890416504466080745089724295525494016331160713742003588424217064139051965238806511026969833898853659490003291000790320308049440065288830441236353198718562865343040510138832757714414023666913294561638342593845199388992822232708507614872576144751694368124394340867800437916371467482390451248213464205955041111950685970598115392808743094247010385411242102446883213536870384802996773701452183950423927186183806418940082866791675615687324009072187413951751189537836771051546490692336843263448034379411492330175457503536194009741744989520969237302939894062088683050633617076005502338867092097352954245446000670241464285433760804678522980302110843818109410486565648920323810300398407286851335092211551484597276176634152361840392528868922245116460731583364894433877159681520705568304444433213537112704275566481724301512687098686802297142216417500832199688320537060487146338482997637085395287916519995136728593630398715363236749291709149794372613388340156190935042006374068710258727490422526459475500664943403949336456326630314037763755613309080490663455880035339209909444468173275006703630995176945391616536002755533148703664283629265732671160573127577969938306739698394327577456478831868750581009160166314944814552545033241635668614886901483839553774582265132381792152276631809508810848171129975380711784111112332636992726036612199772266654262459926199960273879727882689182794097959644264643920339082635838376821027814619737749171333804796094064304356001395761249025620780554465611143182749782985510301367905153647068132927576809215617754942197479826405860400913308346572565134368724032572327963055939783628183543304676060832499790600096171414174834682226005870243648049807997266906733608665243542059767599916039161656734013157962921900811034762526902801086049213218570158668426495888104957291750455138250541689235281950566657389634949104310000399154952143727379188142355179580577793500010539086422419227097054163557784235091229076817786887387662266189588296723583506657996897848204084277961289059141133200145800089483513296790842032371298070047804896646427883162042121138155048072438646015850038493772877560442237394540065740230864526176338006816003918847297401254793028656892405553389887424850101239346214036888864270872819331960431803468513029884057778658134241784210714372015762362999118007897453169089650836361538831990295122571406020740242486898550154866553745603185961008614291692159757493800927909597180410483671490408897026842426788462212871580936521350327141475390090386950484992168367890965552553405389076165072412433917387606140461556806413940845948225196938071228845200653199864847975093869032154567002159366172495006842521270113927732404400741520737525375724527050150624938913225498068387857820790138584898475455221278967531436885689015980272362426861347267712895538368779691171745541486248394375898464923208101828778493829486473482898169641796184385676865456969763946785490565302077505234800826218132138321652644771214126206550050311172145835149971954701192429765365290085744314633651311092109562965854695996143829295878264423296903750284648334815365014544228039240274847207104288350131858481483168932990968713709634241877057471964949314278333440219229567683275961246025358288092360345723189345706536661299693354479452855750744157921546975338182974488017786877311497605566899468700958521954074367231942920956006603588396262045167595651971615647311907975830067741148335534050240051374195557905160241453675204814716008869745568601168193818590140027128906085482953020901011004573262272347127814422177948179802036027245382745111102611160564153010041411399055155437834298596660563991656202900002426127141856991485094566806175225467674929228977174328410772317955445473637755790883529690801084213250887486992090444573902178569804001985978201263393335243709252948362310452700083177141503970586917029363531916014642756631075617540955004318881756270775906315496428504263998389545598536946677978808378114216898940040168003625247063431925909195369294230087161731725013532295768012532458674324969557220489405911828733239552379378301695934093335158154474244737128188787128393067160917674455698213099602879199230926804286311456004621509073378536402745772086385724439426752127402915596751196193315405546638534379248886932921324286050956938839490249033103966647990472603473703821843486282430231433089151253097850280011405638000546612344337633867119683216642957683890736850920746772739547911869783287856393354313196028999385158402354061409714670594498434849310296775098549445834922721387310400024818604355829337199518746607144474123064104529071903472416582040372762605239949054918882224847593172447947415546522608309187478197938215640593748436268512320916253313875787151612911960818075777310699494482265701263495821712758496608195504522006614651410380398917100673494970666933626966645026411196438863898657903882511950099711639217384180351749498964772108988149872416723017967013764447847275667420746096038728852526379791677476545019053842088167269565939901324244335523365430640542462806538994290635426033597589793902297632392163011451659614697079358221821188561442790162312696410473200164653797642459565722435483593875933962741006908297879400709943314159721026385423421646105816380119803798159362969537055373493736102901136160506439620064117083157008388688951400238423901357539759443083941719383547909143016763819060915183116315652851384307905353767056590017981636009079996984916352831999406842393280698737448876700238977094741452921453563757073791755501976951950080554503910159337701301358615583510524512117770743375744303433292300649307148949926601415939461934742788982832348105813057812403586827188956484718691859488545063782244797908034099915407847651470825512987605754862885821132475123866993417386044400588250548075419069640141252929913361150506142532194944688892293449947703341638634854260840676394989816755768902244591082854350534410875424842975552574915274694153050310711433399861161387097042101134401465949372594894910917306600517684036320356903776769552069938422594670672283971019649077178463260855987825733211340467771538680094919344026117660561740765558143747175464422998912110594004841423344343453916841721373034575035485264433598700342999295865500683301728700853505749126622855177357018845714311446353716922062067517488092784172657724972022980771069299546816205331547137367231893147284292246041557865414339755340140722554238195085259691772724156014529233659710025578286280551859233791916971419014356907907311181135836943628311130734725129407548145967371421602909439324692496089671319983710116522817267472250881739361807700512897613965040168645804963482704641638148244041038755724212891888739954560588824778634419725595679837097449453167364821875199500586017647958204704025406536204528893402875077859721265592930912987506435028451628465487295555933780280357564816178930674233253855081231412991862517114538311336952340075027231318794936826462325682281799969883279223357296427007105824513644064342057207845825091773118197520598078331289027493357792808699933093734401656627227523205892978898832144552654362447063549012874727384380144493288064582579421654300001547111125283545617563479381695707560099593178207508585883679531934948962180934166339459360085856544832248928790115599810528966248415541122919559220079900370256890326610126818680071177286959185624961493803595586684713838998613568500552168063762853315584864948857966272254058794298866694978231295967168023632843471803569523218833103731597732658751661280936513727498839453365158622407808720120992238015558776252307597031190802286382993869062653106487278027610483572891630797721401518562953896187545722423952334939755765116729235033877156427485912005763613110378723740000727410529702144255805569463806517483146742234347942170191548851162298659682739384419141259115431449942672431827887133535932446663396905450861622203694592456282411760281878940991908210883365203004715244010291301845143293940774890516106496150053569075882875086424940540461804272046750061162977674115743223327452299800861351566505033100663945251907471968136709919521266744009111260974899454078340683399160268785032006250540284662023375309516291704752630700615927082501817429009981058722357055085979706634373894419090156018607506914695400989804631165871705947280781643648386767198687622429634307100064223601760754429817431783555462938869104040574307518221098582842076249293277319897437530291154693587981457028692510878303579853110880638605030108821038954711017961590512406369234950756481850135953250550028788059006409396471806908301850803138796627302110197723940170126930757067401839490350420644152738126190764269684749221684837765499304825600057900138518624516748087244132935011723897435252093428875068384569042978853158114831235688130035629523532325669170577845317671900739493472474256296313871956701469910022306448027712122350689199956442125495817367284270602423631900526138743867194345840316496967297668764040174360369813961964729651469765839631793470853656879974324954319073258218627138611630388619325816917539613685598053893221932377996545672589564449872109759651186818962607906547031709203523523362745905519014366199189593537564632163919060160813845780154054080502227949350934119958482054367602500831449439769362900959024043787921554219544087738164465769132300168734907253273438968200835054414612301226594946453953180684736159597037175067432215536385410518046836351596012315005942908683205206371191496229198933597769373580668553649823437864742509046992519989501106998102988500257238401656241354915648514798435129136034655514470789901618731425629933813429490611566791154161570909777097431961783971211759979703601370666735160232401709941459580076277487737636515367181831526358771860362272176594740086185211636770918830806883176171280007202702062254676310814993613656186543419879984871131359052162173385602366562406443305667716314635952947918726917061433575016282107327760761557026601769591102628778447629770881232263602954850482923643401890338340895875288655901365819781150350238591003944069443916493047533776071265384268758847413435632290334414763145997363684312626214551579405557699499509180753460292304786383282955291714797986194834744885394380828436949050507261313214633935906388946415088099361016089479613487336773892360465405405063128671668930447878560699200115068063995523821963042549416352141972230313609117614736438278993146742874195197553916021381749357575023832980507309478565430373807846507474116650287400026964407390865272507635627166950975054956063967019355557566556432288580559028157076890511927941956965838997359121319855162539291985855270644893963562021200759044705876780813575406278826575565089601654797972657853864238344533538717133845358351568396985590940494948814966670835420827035604838509371325279739235831671935795980723380612302265838707005815992095290065456285560431144008024638181908711715908203297570118204259788194397955757552717208923170277452086306869904917613212077444750577958562560857693796849725085182914512800480241286824536950169875040681687533956419383353774026173482802059718864819519465615237699019038990251479511280858041976482113262373411511077228494273474659553360547358389078110818691955039357737367430265288353640846278283086208969734741098577268062864906047114377354033419577456945131900426206998065103991781173834133459710875044810026927860866651202333845249929011411667486709635399046506006670011943299431411077163285862131113103382002841587031069240777603207669245863318559583290046533951942469739766632762324129352188123298997271414865744738928994504700282599964744267937401669169519676925968734613101043583786662888020077085985249062455891810405592832971163301136436307917336497082534472218744174039305151674284878165722154831026355399157635558454154187428449789718998427823864380563684643391688953945515295433445985720176084737733861031114816699361270061841123155861469806862397069205691628485920036659203726833175025459470541756350251889192911501522806712615115555295393670807536543993641351070924575829983198062359485470248974139842461724048318677445616874139790357572148409445837208397017191642208284434373964507449196932767770381111219607671787410723507092575505128816289328359384756628452468296486822181311715202436065464815785808411600789463083600251423067025192619172735086252310779568709827474331168878298354371711143895367148929523461498655755386931607250389935112236431553814778237783195074320239614768666961168560461142543523846531319374275295183340761785747534827139244649071334398469924212250511043408318023255616238629486380745769891897830964688671347834524264734850932797416572723207459353294947467275366878221464906455480974357564733547005204730304219531016232668975950227264841428312157512724533599049056323561367422240018160763335924588331433815296332356104116318146768168591927535241547127871015427437806666984660226082409763965351714779573559142463087132474208651924265550539771759980752649801380312255996358132012226809076812819492206067975967718231430681817355781518176506035402671670261444917160835844522753664338263497925421562440481711077501899415706323514598199464289267640711181591085054439845360247586284069576760100107139267527872000992331739639166191051872643663445457640429685761835409500107114969644457370796899082638903414616236315974542597803057044657651981937095295680880707040525890013816914491926782458020283478336381227008274100519778535209033983984475905085472851900836652226559437074857374907124156669499673065045790619907124334576354842104637331153586813341927764015461627905815286846685112432779371255695641652949620349636766734027014060808286791728108876822613495400555901617384515276056033985319479226906332500323575976510934213707488536590070122030560360205957102080413757424820815388136547321854289920567277446899499381410408994490715952193605070714766428186139447113772287671677299794997054738430596648447765574830001763522853192309126393083611589066520632657492204574030686355381633803557103806538185549097961623513359756980892050937535682196211186215650815960128030630448770531642802871621660597848336346808910065397960994827769497719902504044548011070813129592856973237285813869401004654840238270438011498664999411877598968683392307161303652610579993654342872053331738039565590103617852089536257256953446259330343130298404358110252998151547634175881899983623947016947296340652992081048030161049101708649447091718124637722865459580853505972004870563888398041653637174523290309123875948403892590041585808481606384830249965058954654981590659088226992743261346457919374607494559027045677493897454081447199152035811834355528934203960998872626987068928682038365768470781521600437077339401061819049294867114469028353502297187812883445603048649250952532419420046084555382156202296021057771372049448717330839774682158737439750886154786802175382458948945346640805808608443727700535322500331000892097015416639990794336476793842990424052417731586816701754598776160940848540316706257852719003947003020052052430060817204753037207849564522259734517842715423504841346497339109945009813790863849245129242815850905220464995967010049726867540086784887146131564427507939401190536923720447992483532346695591430377480505539372635551060788811634225261870210730013356661499752198338951295664807486332992443092551329797758743472213612166054321916649491928408009067877256259877499286162462194868124453620368822081959175123089587008571432161241988898694613182884643570016913568214069748359364931219125331146249920745001622639469889210750175037456046880203326735863188079495241712641193194151759208818921034066423179053944738363649991392370624851254919316975631066313038448208709033173390466853575346012880845050924484783141865972686794760878529372167913101278748825861114260418831958054744860807714579482414079606347233710065248732774856417350957692130676712115570571283598092244715093324040869377160902169938645977051579995492714989539389101514062092348016276448785445735516542123547990450684634598775358512340932987836502578139220264574185800874501087757201465420069077190636153788342544108400414229977409043945829310586295300484065750058778830134864586537269911683722555341504713923083370933915406015429634813421470337546328818660882349552299622951692695882695279237283642271151802933038036882865522582696554522024021306676028570273721400616990952488139269050658850750937643264645216938462232694755147391569838845229399880722636248643810722366099258641812173288241325510436884546910163492359305628257605627672685227748476917903245506901179353025389638769664897542850055517248347267676906087913891789923177140445912125743966613813808733068569526719688200709897345474429226191953724003590891075193006809542927450335857135100098971746821302354913699811938599571603072183076362072121515582385204723310635243302999979782369538973116893547423907944756436343967617903651002750007391146720873367253705433899712280067907838820563073501395350494308725479790945121245356323519887921999378307024901001979182330828213797141227416233529966247649391221280359404661924570801482505066804851872600863293465548386696268034355478525548778259613611829636436641736567337187590709749046385374858852160643524034937786795634221176949390080713055103859446832258061044328787803643311159666291757495055407499675592181152871998869960092504517223190076798995733639517273269135269852041532327685779757903793028252721928088700923601048006415839369840808027234340422171908662972399496395978455342740677872558684746997152024967944206484739889246830676016227447506101120123352570883083976187097598705820368621521118152514806544007348788117173542997720955930584722639530394497876710304714210536444451024312369794143744133741698146291669697562945779755280989100094927520439787031985428386733156333780317578470079029828588173821381967777612365736456117776528587130986455960195298283040729467298208773970685784758415713354442808315685537518673641876042209512895771953939237178609289546371736408414874079413276985616522842325537753880372239740309468193732541767309321016037276993733483235323876547537534240340058153214310016308594024805388780139394334837591000576014069082341503661356727490257512052245729896048706967537303188273139638163642955551962236449745643150435132003991212477439729480435619061461438798822257033420799496756746815758467507393822863860445472709903897271125211863181222908112028360734542928352616195153337586435484761755949330444222028756365934852450701016081093611760053014959678687779200982226772338943090957308960723313638443939132046496716032668201399695445187870331657240219211004311700793595478365000154166747104620100034362755176632206978844333894716866156320574962539134960773491341982193147689921758244321559742394011814406688569873458237340255774140709897901558427319239126704494424978968978613055142524807501792357336887730092666680356806610202166678847914921691249227174525277704503842800801954379837589737222954460398669552586861930175896843407005795786810569202706190134823017989347354071277289967983152398067281742452500960176473942974171627039530595005111472546706289022846435146760677898761748769767159517893484471377511289614667727173660202203879434172609724814525281328684840735601758060342353619122463686849685790086640820633016955748899421457779157510236523787566780182120897812551486520724313407388265657696383909360713828568239255591203753397822455382432352713967600617344475303017442085419828013711736445052987625529511728210492223536086583461094956108760326369517441365802844119718265209294642103307586308589217422407598520951465869980832151378284208857909420483214885869329672479904942143540593856642779528263407174481685913775025990053329629511074951853321300636213411895223549705529466795602233342354348153357027684993809742847934526841279930410788752816141512439545081460945463617592211002629381482290322040234519884081785490715023704812433013826475148684056307057185113957595587398974213436053358289797358372038291670736739108032232535325960933972136582005875648412805178536372780830056948783631394893059753568526185880572593622863494387926192771596749193655146489278635347332644925935497706694565608428845573448358311537990695591339666014325726304757509451104139671940594287901371817085248680772465048291360698762761543350740488803463835935355603049219320585960518402562335634615673103283876579767561952649800923716104695526450600503607844607097594443682282568847647350233948116654325890827737955832253520643102598257093367820563379630818408381499590010231002111177277003133593795972127136975064008565886967707667854207049091120551745695681081450592387207384974471984028206527098266872961654149683701278452856269935392859328106226132932731722052192889413332127434898808996035240906543850571168711969068715216213606174350405257355520232841253482595605997138889702636436840124996049637850665493016401742505275837727210231033954730148452676805393015116038662349558807811802072355191949346465114806576559933619360674775358817908083431969794555192173817495913382695788727741820524609764918680821655942281658856935719094857856637900776050890058463799626423618715869484072485560104876347232953473171749996781021765686333822882125319493810964010752523542383743497935615936928832293323129353637521885050710233077796321089834024715116949475883619095744901285995629750708015761150277569555118220979508455411989640127699179195511677191237251192126022213797601418459896497359483045464909471655567168519000620327510797601851043617343988242762583855155701030997718664480340918976275350359509659940953245054382049151674125081562724831648130120268511033219273742536866538336633991577828889334365497693854839221378149355391293728083118591815111993453862166763102219617355810924206264629263246306666174726676146658920917467096024432402635915793658717777931715318730122305006971272335766852146981204095499715885198748201911796889908683796648836701995327642155665819287924032518406965005045370606685699706179418382391379968737186549050345501812305189254162697378652036596553442185883329619977356187807923656078275394622415207405713167498375467088201189535021518158229098322224541612494939575840760045176364181037836755658248731064017998482728391567232398250373620213153340095856375163693725196561602129949793528829269690856956124808582865523393331190134080137946934520279166116564770538420686591847163605901897491108523916932448661638140340477770864403965047687097911673759855210216586319272945778535364169920557695191672957440902680373906543132597740504287727974860020582433771039384597198930164060619881354194772076078194383351081955236569612744272259127569211196761805635170973724300222761987588488608784582811165430567687563088478906187909426361698021779189807741780353121002585761438822299276378071877586336575980008334214226668138232793171442866944659108130716835481226918330276494601042810413477765205654569261508198137722688799348711195741952383497598392021275819360727000937809058978909050984732444827622046625228356102812556553446163260541809272453169468388475498370829642054059271454708805900009983503879211867667493513352882550057698764324496088188818826802270935608309059655362227432030482237524063365131864833209565702999096940072426634499691784367479819201576951682051308595569169156093044608197475867646009519401996564201732835409751580368239313817387518545902275171196504356023397961225927806647264329114722465618262481593280452921832719832807774209994566023900975766885637658599807232696994260916922693613550690980369316993486102154293136589168635133813513015581116530623353822883037736874151015455750889852830512290642248394581528692150026732341748970013114763405700446644789045799736310583881274242304765339105744557240298485707368408837156814607735912451457801227512199994811183804560366340248405242787052572060327665599173621157687827899373143472165064370605817424848406795999286184486431527063960140992468231245892189756688513940742620094392083583130916120003684391305085403842856780110902635964702632201419707169295656125085808561064000540948901997355487978303253293795975294835742127622955224338646983195141570929751940712843247095937331646370909031835473957395360372419136039247483075905746944287609928227351451197759199075230006021132008819965046328711966969529760666513708140521514354311948193396175178372260628320847141869604783001573007164873597097354543285202759509523794645567498989120744875674049499902129315846242377693074684509696340633486027195307823804003583672344810088657723380419801012166419927579200854535472428750001999067776059224653091583402809065253095424408209820847060616496634156409686787768537039921118598438291808016245387740868984675781463558529259329668496010851460881849007928086579977718727049890109642381519218068903927035531089087600864090100215594549708327887569355070613813915767240467782905334562338021613850434871469214022128671773046638815402977446760016244164904624831792410018586179433995214646459105220047583094757454169987115526843043139166063103457588618707640189463614161509172663951949161463720330185626904325288822361338203773168455633895897269046476861460078861118207659080709043820715634785952080316860501948473424706583898361512115630992960644132997152421644030811898017796491625595876710151466916641233943056109486851848140763602561190269989379899852101420319541870689570323028631872765702123925379711674724831744149967112725126424711230452272988266645721481042290609270706902423007802655156889935801610019223307968252673043725140452323337343973169891062107894966836230457321030782367755915491697246788839459486800969241041490562181297481210358979438724300162534377580253565355713784044780625145759980141607534005366555847600053883980830106510749183124507677197466390413560306787837169918590832892302457784280265880418205590596109792906198078363009889379043152274426011405858245572513399246861550291331054972490926324167543537747292972974369468079566741241762612059642307451703306802655412924116211492587170187140561657009032107295838939881203792900269686073656109340496663693256101143119773357080481446001475769587487144057216884103993375397281585323687608544107732782864281456438159829829209436560284519918941816866666017869428521906067802223438623079569083944580076545511061048389606472924525829801278887309564911409465048041878735394309984471318684252800719616980667025315546700905066015545502544905519004528074126844405053407016086932686517493177239502213368261177269869291828453638302002603816961856984103919959962502688549169567496230110096131248509193110500924966642059280351822809042200275930276844222110968011890893837861207567565965198119122607525227016788484744511806075398440615049717630013590588443277671485702572497826003365103544067897201578820968342860366183687267817930897480964425042441294502970546641137849079244459632367817276985363134148410838111524629479300245611258837661324517198832368410996390474388545243341388514567777213965592235178873519857091508199946732782659684571884154143295763493904733081121322219051683427315290986285624866467124696681711862417246833389064453474295642378109142879283647025815907074435334243930262867782032918339599305543643118211712334311131899230878281590340770313415666461585156681261002317358097018675494577059017658715069994571028378719467020050722828824987798864110747137988836226099944354352341563195295905803667750533343733742898176944492216224403271986398775930610689135746419028477565672565620817103999180169868179341614181699145554598740605809854173051890125317504045978477230810664901067544622629180576896634655888234336337538944686665952652012851753587364995036384587790116237360851380902882096580726036161882939660756242333434737288620872505869657318838027124723682528619729775808466351902379880065771805671322146754928267249535595280410818538881400929453681520349656607366398981981230418233373988323785308954386704768187218586912013265436082953937245027027308075753505893034744834661221374450869646013491964812667034680998277768494924238867568318933219643981862141249350698893514245227075372816179436707116115107034816184881029883591019398134586385146918761764733179245891157052715659306616462303080064640408385329649069807757842376215126505660647738915506465817182576644673612409896507250886433008751878857875586756178233623078713663617851968545824113315488318037544979916828030737648993807593677923978248180765170082825323260800167278695553439958573859451390890409182692526515001393419618505559046123665968745444066793091592420393963044436078731593633934498603882764856539693906918925757469197618662684538213318020349268475447455053994322567149633672027320185379868356444709856534619676360858535631103874138490077910264431207265947111792622738919247227698487642675565758252919043336798288933999973182043557251048014853166124762970425547236523836937367724487610695312336314279965418318531731207691822800710756048705981915267266041734536399196008633090194963966547428765607218512133967179491756586427013961537475161701346481633113290766175229758813997067387961887723565774667843454798417851540359012409385989268869030353302186979612938610781737181825818595196188460394288102967555890155889460002922184448956236364271260425171529873812140125003238963119783739379688918870721674046508366009853905884953668263214606660803571174516922316812140339303670821060484422948187382479353514898304929717802846437427525982864352958334108250167003458978564306374867728118810643388226705270448850831866844471295173457107148901351160192905572816703709506788314570439673860376253934144274766720183631453711640389623057300473879441374648986003170177613287059116090220452849611906528795601558896699337980085778492615904765729457623919001349104062568762694648270870070857065717823461217026449590267956020604103926872118314881128416466586565660281242536133161128856237508890085226434825734506053169782411346748806387215703264703796305882211795143892941645710182296838093106870323545780269811300008357608685859954768728186936618613968846310137316759231341345804647873389559667136811179485451322119497887583147094120844675685429569485181667612222499057926560804700678787949998891983149481388887298816690159459140060507538061733373070264274980789904404805121735417939449717517985046363551749833235976831029763788766941601437510336932946978630344925782992892735510531832444360184410063337028132086077335119853909057961755485227234421777025950664808317433478436714518368270264571956362192054821324858702724846429067617760818681521417255464151394045879524051076881704436439253825443820110291648604517199977527483556346933837853724016531340613316301882141891176131728926291866533153337412982665538987424990030094111786297164164679977122906167307431072154899039060015061607711426915825596836349831173489616455031847322685342898598124823218720596673489092781591839957951648826402421510485299846268925686827522359964698552842671076124650396329997611062405240715227640596587775314948459700179293053884852655113903503530859940509149106498085955236074944323486070328988206074105824102717873972220545591327509454315746041246022651377535106551110105568081746160354174040162168403428368266574348303666901544472179287568498835832616240139232437144853496918246677301799799667162227460062578553914463378201982252209071987698336808505198218288060453166254906018657875551340642085410368182959293012543675690787320125961274357998745826198932391412430809656086370592359935686919073048229653044525935314569485550490120242813508156298569429271241238537066110902822915788066411716377948068942858095941883593194113077554596759082981945145094592746809635349514492404465819669700737691538961370328556565066092683108192527349119644780422716825234655119198135818108957051238570194213638585677610050903566863295981146773690643383320071426441569831443096047379326672573769547194960971089354199599456841677636207066628748732767821597283541257497537442934618976113301251723992880695389820373376662065874610688538095073098195643904284545282011491141980242145338119632095107458652527666459975329213156349399271314307903502466742183180527294089229011315921139345101982945691921191037126602710745646362395295425966758140356154826284968038440355683343707682944104222197243707233673370900314380529766632499657311261296152415437184622155864218156963565910349578799007231511789422641756061947882697658546391305806534807720660594238977147697253352868892129747411270959340787584275641881325542724425134567696882659671124588439331427940379307528514801951054778723060754051858306808860657064873599086842224923200222044923347577669775058853494823897608163147822584735523040071815213733581807665760970766305654164762990598559170232772290144587495168233614678964860668665367082022252987967342882948614429992863999339234152395504151841282725266998476506296137637402198388929466324539736170937744091861663203743726208702508043151446239982395126547883667878090514218625973711489938028169850879554509143653054292071153430031890891653346262657753441016568745983754248688092768567800715630029685066649939159356662818402453582228663579574059591333829607079944499429315506953797770778540419928179819343613454654685380189400817297225661058548548695370449083370401678598424298778543656851278043499013761152846188961470209596835232062279909106752906297914557146662588138680627646453625665107099309886635795593054833587058603293910923085637046792467551450704178514013016847858868448531300871726671296905198444219730733940628220428309571619881959542390042677718174847464128087767559132821009099619521405350437587549638762032791060133075610231909812361995617651448035547430114203381467870691505256972086162639937062685667407038537893134149427338356671683214080446703430552089095594709091536607691312978724290456181781672081916540526529042089126306781766066118138914094618979496879713695077790648078252655315868215675249914799524032482726412127505151688093670457221544665720639951816867101815066133271411361308268162607737178161234571247524945254769122760734280210142648873923631431130373038303412547079965619102294464514619025294613093817376862770136026515174791170864879344311697806642756057045419100859345922087821284570751617923897114950892395889289834674364972864563447260072792552612034467023806357059360627586228019338531599191772287388163756580121708465286854243683415996447424253260847016573937158026353120611359076002921118541055114755649249003784879007079416466902569932869293086491068534985795981458020135963313260616759278984951026615554344710119789399715612463436166001593164573492737456199397164593886508179520300108271487999339401336041496649349582370950677310207308503748933589154937571848690383881440759464801931608692442221686061619354415097127103612940908852779203510766958809260189436137324704056826854167492389308806704428801789754527100310488948691945323994169602084819616064344375857799836873454484235946388061363936635158534617913219243092005207160112128897920394108111040557959311288036409067151016403953548433142096878483623313017086237649896473084091784407971744224563084647856257197097528616865202398510128746507675299029576720431102794522591806620074801127169418476837411790241222950722937293411234459777571442457106666933659353472666585748353605379552650172687259929486755108156542033358055562597935835572837688412677342499944850699978914609075979811808446612099838244558285539930026665194373821522739767471937527278693000586918467155655076701241958720646093933323436767964658350792811165102186031277788785107667302847320608327650672893796329142824196097783846457704858569039427188615663862665020835492818459312983454379588802649717241926429575203720136872153340438487931698986847666137073510640993863023922362255496899136068948475281210916861004627890551067773281325167734403999908608935677604139850959619376328717397587378016281297183854556360661529984995598752314161482544156959454524774844444917118763718819923363435897973821024424908143729816933956230673285484440211017844792741682635311108071665222341782937484691868255373771471296279829596284785149009317303636430155640374242779445993548119855851865211701684991704764250908569557475294507480395756065704430145451241244319131917002657565519717474347465584740378358520586434835136608616487227006514875620080433833042327358327562564762231471583751505173349485951079781425204150649748720410528649044130904226079660936328449068840512986938374576324984176318259949702863239470233870399296201138073697684179656240768222670980322203054694573106593207542973210364944794924488588939716489015588285408469419384548857572054225688355054704843176778160192909193200756845629197321083664981156601999695194080748532103575222885638986481334732487147879794199957145027702292428096191726779588836244989612828062073706259838753528493963565935173581155823740922387038357561985428162562426383661444724602010195491710488078539562480422289296722224961922295025107148324945061809033812455449315442202065129843264476187359034008334897078737445964861122205011553481189275184452232065032494872818772949675385678338736324404725961783394048206152300190180635035448277006236346558471822015214416796274056353625129861969961138081469184787146132420444179010575850471837263789661693403502155807317322689585526290588798660486712989704755883360343892257109119850429377342930739733252338699932708431899157881492555891795800756111147887060537285900567837782004846834919946359874389134639660540828425513338917092218017449998383733003115373185922716173029936953522182850492029435987153523090895051041525542346210947045733673742368704129737490961509535115617638426194097680086653539360832786230115515936406709082540906399174114841584377794679537664573150327169458281925400342943756339386039005582849545732688565271775116280532633805207386378801516025601904987071720081478916401141861861531197303119629402624667546602088145151176221890472567003852729647109283037361418913120553194958365898021447305143164234383480764929431871669831810368901237603770504647811026244761524975139272830603411109907463226758244605466296650622658551282980406374243483162050962476474019590182427818432430099962345967103743975033144945852914630246067203117677298155114138960098455659587454532291113913642305212920908620144833408982742957102229928849530704525171364115615838645682704735707968533493179971244822192058705596844550453493555862837663633271057611926760503867828872092165841675525331357335062927831553744018345831091386890055363606413344873752778959287821883420117918986061951597518387934680684896802663865918503026713630904489769908347305703006753053319891111679557808962552568620544214267759077438125482617309994523362790745040321716105310026927621059840913260561861531901379302648631553268201001306554930253943007883373813338157563385332153640741179558129791710130795506494179792078841791416868379606883318655800729535135227878235957267348116298066481353910464191084652530038983478043496586521339214397179449949838822453541162667880739165343234559613123529526895075111272670365858923766688172565276179664481464956693768615465698067496989457570100874411967811480752695329071956441111644664905391569659420833934560596842839506025897693952141460638279712384777148294260010297736372616374526973805610072748072631906200667444646063882508086915419071626707803269539011595250495915092083832886932497325552972609684927057215549957660234164473560136120041560309866179220166687984659527591362570085916182700755277125005034342161306946677274282219055221361330145698947249390768699698635182714543333179157539572357154581970696284794363761665576883559506215643671153637809497444691868296917052189374763724934510948085228307853905494373053297490084538250685419155855869766922176318071819559572280986164746372733428028108845137372593143282318885522305844483421093011733197859601059655503942589985690545609063065363318247508730220469596024509240159311641338591874346907461985399487140032171561763009618395056766670943572138708912260351850889290408439748854920543677163520911677874315784384928470205221289176419408175386963859674045397051679291672720940458656457259136264537127522515098983462666180854989226230427936017406311637817797219256824572064897742032340762694188543200754734014006020624291185623682912182655632333218459769201192994360175696045087985632364373532991415735670408508387431430763591526549021462040067868978465244317954381262055042553540450873136342907917274649961332288385959909425676728894077052361662027148146986664634077194463867968630658345858627592551780711690757186383488466822872791365737563467189613965607119461971877465852142680772658082009102974240569745630238886212509311516786098694604216890307832049844042867042486790735380795572365245316693083038981192502075288588994279521226144179773574695804845435527945512740952068219976185931338104517962383599868101777246422676028977853694380912123878238097243044899740577634874390880611241809439716465507758174683920593024385642850078021720675036162385817719527601334199246156402381911238151180829798412108806134531017558260290020424899523588933962826565840402228979383869317404905589303511240322554692915671611802320435890364306307107666839043507877609580609890959028673632639635501480124583197657349656784316575567385342558198185572576159355808939933919646648519694435014322227338755397827980698621176718507644384386795369524183231998950237873472712242236284009723178741043425328678732880690286867652676288268495106040380800497623427676449355840789475995177330529828153185635854718350248329119743331326699158925408248761864941414668077430764376304562940330910393308225826316840438134351137717628355400926073074517433551207150483673188936686263179113837357948685182740140825551184927859194987199152361570439052494935868038523352068100175298915341546253682369035277491363517048657441226630269132991807026865134346137374106908005826186334018872918629838905170514803224034789213071425228713033852561184646535858617367975623951454292536151977804482821902925658242863412043166984582031244404620432555177487063573943480128709613212777788849569678858836895966719941163770624515376488170869000135387445386562325336268492665503179891718316403860965109129758854911338915541859581070883176873400911859807822017924736144493352363424657720888079214161730326804667138747915448596847496725775600086227221653413210644193272168171357497503391348126730480961361423269809710957784909736406110394708894182606609214002315891909745697415657845738108468000500611201086723448420571339639214718396033829530667857880399901431583992034790967854118677070939618663841996252587763418421952707706095928373628992605767649600468823273743070421471229668821101874110509081286012969832065661528785236847483017850979631795467588718358878028732715730880676734701306325281074654560807900381127118938980312861351685052538550201111196374630068462290411026558009915584980963828837707686146801256282362585218511154187613395653152606526707048989068949133990999103352467133242888049696258843487409497512145292682639066676589432202122458124519359546079622832785570235488907865170371412405331038482189815041044701047868371860433246143847152585787142709124660304458075803489013828157197888813873535813386641091527277611031093341557980541342143184193951128453337452612545876741645737838996935761564203596236118195728243607148840878480181531985310845583886563462741626510335474781187448782763317910873876597506348490726863660867927195265472155785259052239256048534500916158625399863601325761125589072094573509958530517263595489811130607032617255713124496599448012198494837475973194731071527614712460538473233316484383629286474071794245613567023113100874814218365540768493900411806330251426433143200452974177198901109427717924515882443096768265682887324994834427057697018426015595121382934012526560922685182250505636680050358138421038654326147595757240203347065598067869669375521040797765067122255565557600142900207980938583855135129847060057081853349864017114432521881039888693704501483389989043052570265207683377021740304853337731434406797350531901338639567684972202188754665699896127801455977785815531353418388055899104804111876440093722342487080213944224392272170985625139432561213985103118272428707565634679530988824667805373813834421287479450826787345125917275844986847095125344852516474200386297072154759282460692228997000139583236719941370523027601074830737469870279304096138789195193795807786416590409241991145832146822188381264081690040889883836776507090865584853323878931328058711664447944718457909188179176211195345809389461142865710092745858834111492965902872178449496382033323460895459498334194517453217658062265313136206875450026946741991148290918451499156402765369493091490683237806311544443630099417062678242344620767722960559372523872319780061991696288861052940822670388962392388447282341416401405407054132355421646674455022145347544475601801013222548630202614358908795770146909926640397254728118455605527083727706855796026137191384595546967318795291015247494464302264496216681030864712025771832862395212208243863787924376465971700422761821861809205599510502102616119571668177677228800118457522092713322309467782078951707169905725720676445777615768269212983824386250054720334979523705990668845144164991178211996923646542977520504865212961180726400398789529459173180633135581092926584237443871392892989523339472538230850259332467371981951008095695577942914381848729549706534381677224476741405685532385758852521046357230750046421861222296270855493654958076617941144552386777461736580589291116032418037033935366825572946848927842822381762611389200247218129383246370676965696536709546817973674004807951031445669355682677510666372088287277206755200944113678140120832632113405064960433355017760793600040316625987066931316566596610551933143841118671948989334652373430220525364002081301672911094433016036991265275156966150154962613737926543658775501403847200257521579708700618071009434030614851250454637602384227914644995612307844444145059067661621386082009157530289893552773420521475601378065551589258310825321867647514231674586373219544846904339527094209449335861162990521860679303369313564125164492115418636744168721521126481775932595705390775276848774695856770127595310225942356710742418570898490592696722923181271115617864747044029376653867210910163622265021290790045399078823209225051679212243861640127471585326986264426778555587922462535097393140829799679210186857664819898391504208606200765077268289976690407660545873780431757262199522242227209482074169505333163390698091978481266193968478905985132627358468549921439711545612381119891780806962506951948855440197545317608538222214799530374875655256001278953431682055332755830731249471150274221512921330450506441721907798941625522735278010129685194214409532080738496174761664396461344067275420542966405835436041973399980690409202091915644653059662950132427899366245221389912116812967639062950408245409906975499759850920311612019179628654674492806619494314570989039299249659707635474037503615347049267608174067496788690166705915321245011203486414377217419985159193710112091963316347250745966112179176240463571473266540895165080297313473606074917794941418135605750045365924252964103245585240408962200785741406828476016229336722054334301536839079659600620810058902198844202806360194090866603434125402099766535062856376085585365446201439002649826475515225131251533895465835264201380617204750926864687863645840982611770735564619584400017075692861522412013200083660947452057951182766992839141417528224197282626248092627346237574367926228041451126925253104745696883848958075605469020346518389179626108334697899597329799165797575977241172268077465593399144521070656436201269734352706388334501037131758776322504330626717529018372757080294177128860085767908461762031813780516868921305333744238493345746393148932785262145245618416111134217465971704838734343431602141518121965665016925672247976691293258689149061506754359016982954080406236299762537505544246338479105345096408755610068362472346088867449225760854775419031747105772951481097832615642853363243800590195341045224333289820027030009601217732016525101562283093066600193833633025913962974263794983121820902831227962683961496819792175439712788215268737424826927207124902702790699387417959770971721190175992321213957154325640891447654414316736410300761439880626671139574051993115746066740194804907014149622305464641545960154723053108983445696632207048081092054344712080562388452681159274782578883896799565912992576166986504331953584483798612864672036228232957179039647232454829278970081082794177746546692840068759214834944285936251276515925348254829311075267793772206648445895897173844384668463926561851632543072947096112323802478705573455795394006479580947372361861804922678792026659550581587828723865322427889981643775959668796018163632943981429399350735076825851678082749973374491089291446540669393183124371649319621923326798775508907428725754605229372342569256391639508813736473083024838296802245512182400273602925334001445130392491045411546404738465677965136665325261684848816608767607003107944436284492917739408124305356536310859394341314159348807587011642865882188651131337065620030180299164231554003501974469526108316854974210691507068343045985375037398883207256021166467764524717709312131078765598087648156419949793253140998300848829377428781884391123500586616833850796639700959044307412597136872401883410956851888315208001942789408968140596585707412645779252321934438149608179654004616606560108655520343642940931177637667426383753050858241134483854223450833460720574172482573914614722623873251864089955708499472023282540103890319086433672151839056940513019564369005894588834702047390354703424541488141889842364924225179675936049399111122687320095137206742025755783884768319060238896259093534274587327472129910230659180087072698190161762011337510188394920458583045313187359107466034302497418317100516229484414247095814697805418929119588431616619800129713826276385066572877959639706851481771574259150234471654013160543484233318098865588496733086299904398167689761646726337299999530125132388732117832925500702238018519258484593874688228502632355916352516098352997982434919308328000103593839278163165428258144013164531981884161844669535451786364008928182483649386737497127741161438399337021026571228294898575253663866041521525194695618717489349427939992787117062476237501185281782430072136952384020630350328020612046527736164279993912844399583828745716095359515602332477944880702868512608518916789719949996580066894477960495698420580092964473698028124706685373652172764512871790653344320420394978528575790463667626899409150108846329154157537162016279126701024041269279022074165835239982713051792900700510691617678483226586938284975748508808170305238787292527217391734312245324636360226868169147914678184874506814387447547930431821563318892219705826134291387416942110634003242452705755564421116870549747632630205352651385757152043278983497176307489112710755717652334061375008871510314718796157603466502121285254026666617245851868635300253402769399358427232438438902115610839285497801437465379063814615230233629866079721363096017682450817592798361900587717409828411206161530928189067914184706662928590472173305405170414985288995120189982148270764351181033032703989705654256726540475252070581404667178096507100819420498800375108300164821341560052131194588457972162437692885739635903561451573599276578598749830296066818156315509262418264667800132888907111841643383227226984803577575813121520864338586335725361925982581046951704979141468354842049087295728972152662025688329340091198096058985607343750552478344387164740338094622066100882500108468256138877734317432969642920126432229926948215613077555125302609843122136407819566660825933779934819469671229689623569535251446181770135661608861643986573947274973700982820530334173833148508591230787190677433369438563972844750056296101094621127094901818410073051398074730660626113683555222095869093279778311790033497276415659705799589181506242991532053452856885750677668078782414715078893761304698596154682944089709278738623226670875547734314445231648583839907089783339739031295100771980914228050346577047073647056985634769062086008152987134408999943720519711700568157284784261434219216069676207873359173560715815090428636936613860390497259454219190123300411091585860161904951566856544563791653574490837574815842779938878128875487659779194094687796835263072151487993594847222663518798948432205525719966360336467163244959487070025033630888561053792339868255440828404454341360632468286937149177591124233100910428013752145314372108207983555348816055249192240124365532542418491680772092371835729465399297159869573551522344914024122709804003619116137654794276777844946525428428518643175040660724564564955671884331416957820979288933167134426356691873524225147896843159116443285317946039830545265427789759763998217557243289983173824347923710586150434632851432784199629493233168194267393648241821716089626756633514798884292201145635010795430819277868452722044415512411085740289753473618217595698241652815835174075274349311074988300113206481477550249867710147822009103084403751139443874838636344037418812184653719856050083472206423421467952023305431470677266843407419144783337915260604335335493633217662303032651893978733597218050783654938964424238004577628078538146544164270696337808954706378728015707919216470726859905429421898780764008622790645179292874689448423080105883186162578036646901167208512491907896064006589853789186005398605512560348559381064723640267358408801600205979666099571888153698963570202540931731938929057713619021309319549424341249085896358853168590659415863204422645876863617408572514371093098051369932328843066171053602161501354978710716017903554740770848178243481809690158242863931951886086519769077210565299996414803801071436989609596080727082060248809509512209770942220396093873713852607740741078947022000029961996619710834929080499597136978032659923414934713507401770951685612277385914801145868200907255834764782745216638787459917899536081555555990529411421918516091640461439384323259921004434429827083410316373774752769758729490341670758581834701237689080182263074461950707380350125054319318645551262455807698662140541318042816684812347799409172090261704748403300683127922217669813406864327618569964451058539667302886597859260427198514602394700030461497281264519729599656729186818299439943360963233081753838585038520434860314890503217259856657716003074450107653985801407870021064111241537201390204591262342886018861889091585339828758802203261432278708227806215809812922420179961805787807664658173963142034390654929001334547524320779014084917949519374223195157130631639305587301672603534542675583169476547216817935448061665160884214200299322948715814724228544981999273986602341715071649555290566372620560689955822786087207085225345212325853736933995529697774569516588420302063544746915129855398007974664020157039531090013493345440405665537083253746720094102356685745828799432329912140603677910547628296296034707183608898071787944423387079441838994238138110562908474787844525387397888640093285016041879076782281717398348193755641666548659694031409530418914103544962691501027388982200630458730377869416677496718200026943762411214881017784888403818368367834851363564846435612416716449777601394252059062021332521105797258828226790599521915321346089258220430550612331804794482413454852755909842439130315672300181650253642500245415604527655420101645540095327755489374947778014735100319902728994798715872119551116847099045132441835527115640914177927194951288830105113663545321730976137602327401387951073779201751000670155278768606988630794395277560608283814493749993641640594341600217840443235298764844210320426779023536144892048337549500422339217804433702819832419511322058303152933354602559863352903259384283678868865740973085727830419461965442872038378146249577166186470739344666627146534891088634157881164257905404974236107362203575900429643389928020147710819840003499791168138820943401957674387763945027354369128348929830954193139447781434247249167847365325277886714156803665267818529124225595856769057568184198057030610937773735349045814768110970712690027744996880360641270441236812494714043158639085556841832156024663288501706154033046568120881552042355499489353158677575445717107731605801977852346918317744893889589719090839724388917886991802790235089978682292219785978540188186456541047708509922868858008946238401770127110020485519284359169918932618175515016766408377883237160662914819790826023309000021869614811842769960581053677119666233377492964068185728626061172902419403992556410783733659135825285716228822623174354156497706506355518048054517708607951723059603470375720259164992906712040025558586537030341602493323969434662252256685350584112934452655673819438800086493401589561197764934016890969775116005423814638140658491898893884603061454691120492001713189111252177278493400831471785999381246419957893262040395397614153422738722104777420844777890629182487458531309598820471924425064118873488173521140397041773846536603621843587396222654597779310304399747344943499735286346146366088593905243699289319291256043808325386895584563830763153453636996262063956097870891049348608746875558523951859157277564507004317248917431665115578567672393728578003437683791818310121418487574640828530238537232580268857278121402986971383895304125771596158042787254030558611445630914210459200522725557471463332956581450682191162258344647903026736207884355044829432511073105974058881668816145707221112981318895879627374902311588264522264274016895743937515979728827494840182947134568886868117166218805235808491907772973548895351635557025802684141512976714209477754921545588918004305818128089650004954368887592841079884606177097018896159199226184164021997018527780644387538678532046136238292466990182657236289012167381354289082990895395734508541286955053077798053070585527716574525339892039580161116135609892398422644706469528996728775411911239525690489664850665680844442417149231663910072253614759613742242198411663041143964439856965838235626454483470230461878321837213005001465919410071336841512368055637146974792010380316536587226755796825851057615747295700896011302441284397602401083601363810535931545766324553666585735274482245731770263309645364286988585780145122424209739983260294952630492701433454997233248744553461186232241534922123849974778964103264769714275764879157193379475709483480027843340205023206245757056759610034099300023431673450342657372867089719813505328329948294832125918983178737542742315182574901568574226228325883300330773928938573575740192239060753401000526571556501406282899088645881589551555850784235923470335735144736985028676670081637866443525398318821192864325038658018488190146439260530125897018992110012784403579278345501472244453822340140027852087233653957285341372544426038309005308520416004186931902680278556037975372180486481411576393758209794520095456598801571031683461306506380068691954231916850741850033231599500111077395974027069513275992272516756481010998501524951122356733449321736832611745282623002287636341091773255772978248559541327097767744944294464965837004384210070167863956074612192834921934122548789016777378727435791478247474176621234413802875003871370533993045979025742706704872235739224712631162591720429626710733366657775881722798025304152889332004535004939469236334249029544597962300645244983704336296882217701441797184062444044163600608871228664798616717000169223214076766720919516850507538805701467377242312755047576847067122571170826170810160647051231762671014488670834565679698343019812254883055576706421426696140275649051409191121070803156948008479256023525026345633410334979562726331974874706854307741665438953674534802023486595275067053012358943054447001664863253521507760844021865253725501187586558921475782937680241945198620028682097251870251216879650917003611459729091747840099745908342358720376525599027270151198167586935109682529172041864612892775607336515348983453692560167865553742666751678618597995393573475466010612348479746563632592877981898338270311202396097981762544770341012951293039553446652988430678772663773819523540037930432772632757400321935854774590792495151643617262885832777941973908245046114111345225868939892423396892566700386519107205460032202019002200257683379327542955947546823672256095137741034263971241226771804385515884054555927084179277396856915197032573054388676186656126875558667859568675501543974468952110819241082721400355892362653975917357142131722903223832871594602569787197568243867634604026491791189218453462017425698992731728108596829873054012350637610112281934806597692267746019736993416952233133013026753457964642345782019064004930372709134309625498931318850561840429200986386407870322419010220113890305357061587573598688600655876620089250424587696118937083320215855096041653166956232554988806423731258822393944640461822258946838635768329134455624679397127841455264317853392311280751074501175013736136701337064277427345292620137678475675138671392560813294454770613956050585685158271869376901207100844761888105941032214376765424570851815381358143615731189368409872610906850911607431318086804225737474366713071277430530254883511155815374774338646259145224993999261850552043885525026229267514406599467034096125451380708372578049066316035185906590558670729508204148503956216573015198440563186346124998077255545957400408567526818353807252130968402238534948675412251297510599438881492028694291305420625029432477513092899327414393794745503944805012645326486555701901328495904617079202949599516130621530785646821975449137175935493313352201608048482714446244662966393461608223997033464773687553026401922179603340383220802206856563604911728710885452589305880738648378400672268693028709461772766108985381385626895926227621315649352903824116254598156844436422427974219106091108682229060068225128423134101859723745103018184819624694890492553871714570234404330553795128416839351084981589785154519279515293639477359498577572849665936475650905447804268707224224728912844945548725380871448451677166717604733473620955165687191443512455662877082752364918577306665337337925771962700134099629019592801011190645695493491636434033848770145479250239841313060006801515195604560653491748214141946148442489372555353802287679893583863853382814647138319590261742152495234508880047770840164847162987806614965580383009004310866182682884832770469470414500085562362873747023786391494459331279541095506391890653810179557407280740614091166958141197806549955699752522834114572714895321930089229421052143615521259748359246257206321216198379264497260197234149154103721933802469196244400115740091368108562518319295094309030350296190619486953233807121044781339323978728910569108053384717491637140842277332867043446745573593109684897534928259184585978043548304583494848685238529205781081415130825800653862480091277362014540885546529383284937306756110778381384533148744841824554948984941883604506518409077269641633373168652049706342562599107517535506380329173797170543815150341586047647522440098161273981094309751724689142289273475676117581017301950885701524268175196877837905922905152982161661523643396071995090506536574363688620252338229697909093417266143346541255414452974331707761795524459098586876752742045108261669853783194044802302770695631049463339520554183868217011892389881933166976187317490558351906365691181425490996431340089509324730351268132262304036853925154879212534072032472368017374898829335058560433547203801536997028631040244707933373124440739301939984299712252242200661230916138032633838324953153474150669124604355337091215786730218274632936231407295195822946112061348234545532349341373700938980416765748380704207691352868078048734729510054739276082683191714155023501384090694974611144548168379453288633392481420256788411068810665491382466194038160008088640244943732115258779309530765108239569753300889144670320012755270643230841696453211320657448974009763286593365805885703457630277141583956110357560388963865377979486028756591021778412392092224202030803590007775378916541158581472977177212432873799702125360111878264584131740058993481099490614671388203013647024903555406173629066343902927153197871296946405167556582919641976380723729162565369112408933985405950783531264753389645214721043151823369488067930386109794902069432236927108214946718730867529350736254570331166109034849438486580246490181153361803513567697823464438559677513859143477568315910964036071609903838567615604254273381330720742296241420144777011251848071218557493499947572690384930228080408548618193033202677347392633954188230640496298595702606199358009042196223364697819778645122044910789674253918593848122771563667953394549107434059422263808911660937951516551128534145458865987179109216602009382197132346269017823077789733902949000471577510303297527722970626307750011013675006368358405340548050844485697496767920736020119503027238558824262013161862626971096302977054733548472936101155226582190094081835621599420115731516180225246493215016497372570385878947168299580895499700567360349868492384577284494950679027227196482855940084269196430207122076004979037129970531220727967654518536643945658973251336474221005174093318660914426409436087940870456203581335536398989466384100553807032292068929770226281621423283922859997987210988351342306715605709737992097775600051877053032205212035855022273978772580406229028874017562331945039766317721090268742310992436129811469238881955298383435348375434117895204093868710099800358068886248204118274232891502000798102273930105530096704101382711331351566833953120813576112147264127863092145025830066083601592908578741502045792739761855635897188532044553277212859780330765344256633409446818536765834895060466211160854801715876120979047672258221846478767287769049314733838122532039452367336394306699258579563190877868797005049382572472038140521265575974917460229718693182355656653114522608146953557846934060149398584778508121164412159412617520057619043505037262671172203717386245670860307567525492973858488889023262183345380066299619062993325747499908600605602864235397999154422665885508002454401516781403734152097658049395570171924290500986491621748554792445892833616534315937003767875317492635354863346212809073149141851426112651716134092301941660666928070790327201024541496986318825849142557973660794102454456716894818552554458677211678532566979753203012052416433669352292501452876920526589611872997719569429362825273086847050002099638928416094335641483965124308322948487252720410489536782962923588492530061398312240882633117154318347753386093765414318351816478290314015945595085239579467616626181876960186492442427559966804804713914549301226807569006284416063655428861600060101845429453306028782080730483961410950867331634038875296687839458094575808177435311142346280680575756054732298997249557637134834297215463938546681100026296904697308809191079490501167030892463061377929950579677875271645313735491044519604482833604581183458017147613208401822088626756699931016350783665851571781755280126057247861928186000714147577730509967006256894206618919705298050645975057329271391049124425839922837798302896345558909905502105253395206300213270743973778740118378179168109969546956133615544414505745652408516671213543147230169037011201461194406282310827986644693001934699304011289586204092444064434644555745308398866945703721075769637130317498881950989443407758785078751276614986446042598849800190560100200280757994868472920984079203510728067010639324568753507122449286191752013724577387305360882593513100049301306349108284835494790746457145781829413189817442013561594407206873591424350018515349794817908729147220374601237614316429146688847133128060553352623186865098434796991607318336697801616733709642617530515948301594593274716743542619007119904174135907740190905121847508673010290087697653259301258560805565292389059230507984153215256482764070691883872815667168224766434244040053053763298892012767581806233487470345140777478354936652505922869778312074568650559523460102000065195255486660548004742045440690059063291691636844333238568726685280660780096700169427340926317515035106718556243880779038302229587973188704363425691388527911441444069966400156564235164083287552356222902451750951403501102310367708625550737819208454496034567129859013081767050492168260786761803008237729826683305893897804045718986574014865404181958529768938075106414888798469798956772083155009270004301071467617130829033991387137576581545217869882855183256029482200946323766969442250042585857711985765500171384295557799755909132711983020231944323966609660813859589532136196166741379614498259249531446042771157449091946417179302746551985580077677400709019423400266249882587583170129723197738878089231070966603408095471822717518049707476186500653312138068828329780836122000396727021631472017921791310579340291674130807014117359783328862202165812789353174009281028506155615048120593321831152300774401494119108122730568903220744009810334415105266168621581238385006540860533052117998934219462619206934819414708220011175797826087589548969044690543175623118673347331715404011482115426050755941845117333423995062734501245720506253457487103241859906398279295654593319126766724908632823229217601188498509261617232475383676764225125327629082792223575100325421781920182725803207143932658598031412700621461454824447379153007429842278830572785231726632810073198572966567796055092052625802298308076185218443057335087886469626556313453083966459583165099929028087605963367455519376799050633659176089094949174859925356068253311859081852290777611232337632411265994171788018540505490223282065851297459519557660983593851665176515760402884671209193923283209281378603601808563834683983992825707828203232403470211801733290997149878822334249696990706855578579874719721779682949211969156371645026821372954682097662682175584329195819366923614181732679206409444372356130621683147116917855879521307708316034445431440296862330190121182135391259773646373545552684949479306512305816509117020789098488405811745701991551401813847918112021500549720669081293252707622431314056885583080232057542051009844923510558946360717751909884658190783556716014424890612593605180161507880265083570725123021870388654716287297891270525183189949150862878667736355313996957725026759383140936983764478265173580798783891208589757940545205592660941300162771570475808889004208625303246602647552572149232505956297745435250615066915938458101817380958756917451025774817247324218498710198921491158222000845921539991439645461171689912616855510430814352646813165824774625753598823409107975490650723730504272221857822631808097733678468078592202404525559742002504262397094743255248824356345016975843947346942007419952479305568608270472444514369524233326305211643885683570301662356456113554699500638613113949626939038680497814952473093559179265402167431846775965191926934206201670773685688771971185937141989906957732229877727316117098120619561120212887283252055405815659167697871235462657328980128481218112778767496507686343870337987313981294946056589328737430809894580149191073622857794558950286435199027511642887669893921057590009917027164116302750209783525542112461331096074245570865461034900163289525560933982094709627288685229926792276996943200115310053046873639573766218177505797760029091402811749536480314791396312486367686481555066924738646552173669930550219272701644520113697046265822113440567365914999835145890835026910968965284960502058341658666851277479753039321109940542925715218873125060640081637356257482957195075888845672468695728478779125571448733199176075863051436880516852882200563756664642318267202173089067943266234541144021064235020463622349947435264647563080161680980516791213020993726555239602166891766840559560200031085000208876438788078460046173949341105635137909646470349991264020627092558790890788940825762052547389360464869113158212535348567159794616162319775505744914835315306301986164101165334944531365778450949301800246781866499514434190503049397904810179179720816053770697921250396038221660403850118560429718107152653721162602686814252922553494754238514234185869776633083389683682238025773063154852946961008711410097243027039175566330574198510158623973464312866875391166221299612232908768840821179981697813512645802194041158168859039708929323909560615431914968110083736371250065460035427921579455659953661024627138388481183678894177472786972189280513232514887336183604221982980809089912375887129145118187863727192207001619052861050256994397505943590746200164024116239804025312078955482621814028493277515790826061459096566259475708823410719190875736691455772413672580132488043922499609854370316625268789835359054953233553548779792254867621127871266956946463403947970054083799778421117437698077072426480023819634436583830657137763427803718147057092052023273083697202846331607139501231515323382353534966096779989456908092912663471233046586311911307911615698986585006044898307381126435017436193704919347114368817779681804892677128979968412566930092009248779652904030302205568224357441422555106821652890640296266274370521977744301638412866726579696103261361433489032164844604640006608363804361452629019854641791293849040589855658110247980488199503441486450958577335262989051965087936569684089041555640272608775936259887525715655383861857612117539341210478924397078718221538122424261946473511836794152679052206117526064470646919538497736553591552424535423993603987287628284326310073840048064405935776338090946876172301716600767637495319330255326418221708573579379445945325528634504291805549148489932438460839314988141044168874340829719689473652147528105903021164506966878408081974645765564544156284776786613360251271370457914315676984998965390579218300584796473460478681880421559874842426183374150471276410446838849007545619967789425511751676476496357509707762471432253243745704691543136057954607061762184720470708653155740220955859578181280952343185204790810182658398330629226944403467427320260680077192952736448467763437178791885563872465969467664493761488938721916911219735629625632426390086692275199972446599726566076260237331584752738050330606975453076218041399944062398984843718753062952840634464682125120693754440388476185875443502000544633304376308003185334506957464477670311063644186451645147769056859020990047348626723053800763556470877629429939789805984416607439098771882504688481493493203120199251569375627640523565492365442835632992574380792746518037405319164515724756408392574152103160546907949660368697389622561392595765746078945836079043413683358488033807423511643190783929619989499755253518202608631744823660178179301392767716813357017884622216512373610376657591269386634394809204532529900515207229391362953227127030785022364222969267505383630240963780925522865865180091510564429612762813019163314846021241089017965283076241254968301205478861383712862505105712499048513867063338411267393622912182385680678141244036379845875018031389445059519217208541175504342628204584085332027529799003948338259500780384484904728711789269013637052966763367915591299757872748380212450711434944420831696740910960981654763307151989735104921419474433126251726727793886876167081126069230463690737578081605902514310976512293713725038871585570242387980522774005992232607336877076011846800095577089438298688611412109498319000141702801283124843018071733049257150528138682954974607661770772935939685015983351387524215616391375229237078637732575651661647309952239602677995559783558278984364704090662450051340976540923261251134379567792357955899743465258422361479590808524302299184675101110552834194178911316842143709853136336912248457904812255871140655832702906139963375284314482368970689507513647622160979907702922191868127582363288453627277073107376777829808372587496471713837450358042150143657053096271749872148547748943620305257844656635397542353636090577862363687063523226656770136182145866705642070864880587904738602977706206128253184054696983212699639273130693992767622983574573179088192118344414416931788506341715607668523594523700091865419810050084656408898031691425029335287879538036911677098028155864226392468063882550673808004025356777574016524990211578958882614285683568406821963586065659368690853841908011699989956641610727253593616836978678780283359873589587344868840685261339149425388330288013273887158725330851645663194968559391791130481095828926624636400888927166870908289076651984461620102863046968716155043256027238707950114040686369596676329799325851325358167973448605754663815528453013129685160013556315740488362223299211862893677693198576603219473812237699048605717599559601613775859241463602246940618550266515560100015648793162690859673342446265195535974893330287146431086075945284872188994916365733687550161898868407635224851270453971812077337134013594632839723423517719757729692041845015307265672125013924215272846164436144828186454744859457002747278261655936121089843627414368183020333563341801795391351238057728009519230468132516612895605345718969809465465251098916834831787339349370204435195909640136980073558709187691075005297372884423009247650955492522456251288097876279666514555970137066566831519031222247266384750053290378795463117263935793366780929992798061470158828967543798937685173393526154299292075669923088389387504074799411587279659189902202394091752764350679685558598961719131204204831446356509041976949686549661181049099039867047965357171672339445696262196094199830539717273570165473308299235922860408623588110971647106157994070121729638579437471265100492536085853326323522228042007807013042374239097983836849850628145680081918477896227006632221111873198690844200289066024624283279199808577701400269130886162281927769830939334564727902690767412795487212013377602796678773048648417452466542466624785406269153111126564655013942639216215036903304787000876885400362526406060543525722707329584110023351557307774424469216481986454634653805188558265003273884279659709320380459410032787057579610460292196937268390944042091643165729775376639273087281715685365366407612635810705960786274307751597304167467638949474405148214114149637424013264112082727771949201202943438768495724191077198878933444331564440165084098888875204655192013866809140919597458853696501303558783701195791238146178862164915630112542681792355174546836485442301447753018040626808171970793410313209300303350206393720995561001351791822804137004960765571554480019775233280011633563860846877086164236326388864741792132270062351002532422175866761706272420217189211738858517804810463423448470037717368843548552132302083829449045649892223724986661509303897665576607092552026635013599832382990179146285222356406103802006872787154484119601259606273915473056538670724684629494116216665376586978012672439195555501474415766910715341012139407757914153654544507522991017439836886632432919065313087311413128719999623082979627026674240630586344595331313284476284956987997693573521198560837490739138191520731064968245067182584990810019323931930670725624358058875913479511117896996426554627911911391185803770310283213446851308744890479320687065514480703901567757890152604640494808832979328081644081817712276008879239508719007038509326623030905143495657198014010484758562147377525651264929353101897467767831685710396629749350284986897923291078116699181108759171168874930630825705476802069892446879393024265656810489174543895162081329981402756196861466337078877202874940491540518206836125989776758045368776858035394518370552838213870914915470582199729722737876954092606944941525828470060213756488422022135445370848153828160923611662398785030472556028449241812763672017642953270898242466299918747175761804619020159530689585368116861869218307151346697040543319968759063407999441340197370958100321050803182243938144252227278339177992029105566772044972614495631877110029951533628497867323384185184332877216359716637222899956301718690759761139840717185820736516185148634740126590008948489524132365267068845888201590746995056282743923946624595393482870621007727575597390219494183105354946027678293745147512205247449342623779788345793416193565717770012535135605450685022609253165980241847282930657765070618771832613287490698297173098852735236931203740737671212843356650064141536598879454820663706149211322932702256791301988547109031206785671861504383715896571470613641461052883045660418230428061093635954038040971843213963321605638108419193957120936482309051552441251217830929759155253156981967964556821073121696260414523650093700340282752478690705838467045467478949360075007426460080428836588816485820144825191869177188949561568765109541342629437213901770395576382631523191479342334261358079608027216540870926196852266337255448508432014515853636488800658417871800208451953215294742628009056560166941208661074182165312462002493478713209261037178297363955712802540896315032298151198052027578215938841717102280066659437649686085313969337171139732214404878136806911305537658055463769071163850449095269647206849901451198266036608070463144998321909342311027704125978957246254956546470803283113877182913413671704002319716713093371634272077053653780584366711216869774547429551092858397046896852492831463063200842634021651114818195528642034454562765894373672590010329045631074931002828439596353724510733273652710410655060303174201161709420735931390721826775658670729391890769017857709227698757657019854152539401738609169934395404729253821196815193348194710457203827581335224216830291819826077221926238172313571584406545339417188938879696976525066884682239407772122707865960997889803172351566720156450626723749448673976462786206282223512048300455251765394448384470626700960756542351006201001853047681034098987438855096608274392534773223311496995577133530089180649529308429080964524953353622565216150089206155464390767588063285554682331586290085471701599353456773759735472366553910908147749510170887110620986511211152973319934822954762199419113483559864345800274060641498872252079127357222005161488957341342790750008008590516565890505012687708209584944020212230870507617778749827447450575141155135052691159990584388860629053680586984432867611548284814274137927950982510302002156984004949404528398585508846893991674712236467846103479414020283309137024661309535620279611486465139652917688445617230443921030312800787674228391219639478000870612285920478360126380945914068251977231461195500560997627730374833749316353056856674228145298881902440992909444168658040348649179721715535952209814996411833419707343216821348245326428376633955232566025085849361308046200403523414906835734002161760780078047479893696257998087306373251781719453131808171578992381677774260650730652488123300311950990472337694863230500392740111575692626915954199486795525888185283451998536578486761727787607270515416828754687111616590463648357335040382616757406206969922526119382858821813621618095247625455760968459129399324241278810844004343277962093541057725607930596053795657971916789332751211591626798805670069398323174609374713178868955130038570888162844325493858736428967030223146755263696154244924328424709018575792361260770631469187989200987840015232339583102955083271238151258087098359528765817912285179383761613184311023120930060963782343687634679524202024593872901177383615286070888844998243471504054896845935094215954750382347560249740460891460599339477620387928657652832438135519495258214112326350849127330483871419185273213598005864331311610603071868108517931855190679563601521150665570102831899285479269697370328926462202240944866057009360315489982120604203056897603589325565089696082309951495263501071461327400992979251151429601052763081414654013057678453601424440129354937958609413622687516428363449668366495004492965746805912277513100485071773843925802567659097672823736584714383045659750350922320961692852809188260917872090703197549467376102055950436038792628720453065934278004209823477999630046925334542938581790854043135463367346830030921276955875522745070485532349372122718706983288889081159864224724740592688843326962173574606213445890075830864843546153184680713144337637935157567858246375902581692082741758414511008464454432179025129069249986464139878622590148897782531631572802694296938551234284425572051271822759205188374536398138141823391087633621469184850600759457683479799891625446724185675452173241850396050285529948792937240789769647116319414391514527718181613231444791764697025283338150498141568481111430858655357064643520827675147301532284757708731512888751810346351103989283563592603278352355724799973995773514723845829862760340130587504708092303710404192597086984815609688509309461043775853219924320657508456821540748429868429584703259638798702413846223050989007685433126670668565635174040395960844307212114099836422848642700873957200931498340759524380990780684936061640340226420048631771741300561787488519981758108057959478168447881927854682431072799390486934710761297779148482073485897632128785048287756279610116873734890914238779666243344421385575199946643569774336864374012831558045125497899328127854539680203337263589433058723032059690473802286369576455227366768613074962075548830557469426190973474554360971831364295108432106186034411734686027150805470888530390242137506220343286190405166480328847633378463999446978708974434046940748426855609984041580443010497355533240800169047897210374066263291761162569829325505377556040967748536925363447123872623141216688083906236303232404447568913117362178370770519393842137656140456798533363499765199983969741285636146710127052586150665352830909843773004897935761573546942030549862231914928059313247943925135256478248227655008708894324123821843962468795089327131286742788019367695764329452137359016004473359021358747091693807687650257508684334344617759888462196554818150052587081252118036095058535135153432143916941393854554858527111978672246824199450774573470741727513956191305481614822645789667409588465341594283963694706569861233805820350113351706699787848982327644801175516816107643435786443519582746954051502727206601300403451199823311291970896690107313444973455044916347970507391683668732015205822989441804023077792401501704217691259802020382065447815258409383636639299385706049303823628292094646543948815152539027212284693389746232941173218387394030147573139674030271594380763614349798466656553295862815897716330222526928571039858397826865460285821046520199043782756759174685691699299559266451649100319269228352108362806933768746565047232590110446745794450857118998608130885382805893998496407809554121332027143534528521881132906007921047344403025723444580482085324593243909745947214203444372038269206433659592670088150232553820280046043415642730062806545480695310565034938888258615317939085944042705833766257368487939559189961303623586978812775353041130276730462765805164128922403537348431881041795713811438323653492620654575383056429015662590711216555663691320857445521639354949768048856429824956261099194916414841044728397830708162383718407997116569927064038343383931680498086912853466107718818678821669112895708392849440542923750954590594193463806894294607177362058830621033641945022949039744621037078461848034515798838189391498124024166441302834638816464604766171893836255169493124532500134545690152217346007089522096928700412608829345572695874052415593037135909214594654440529764584886490942630058866856369748588831164841040355204208733111679615868618692154789128831407305039432515026759378690482855196300026947041263699444258528526936989422477620265912222616704507036017103720055230136048599783779254453807864271272185160129304380278018745206623244375345253910790062048082865235457280756289096051798686987984386594329994727051914537343497212955560416192185960879537204494635676047406762604176018279456696946017293625101259342403710444819415188073856901288459112739940684288143589845016734967605201022486764144112697463987147501684162925851261310288724366685218660382255703752589979072933140453805753840260149527004153648028982722703889131896257163546398639692328658513910025718396932811767188113188519935642838948490660980333972242731841033484720186883238542707130089444259060963328593256565455592709648669615754419088472426979320598511105561502945248624995486480032646592183534587471213920052415473898285861563402510519039614233571064430545043063899867780496825189220399090737724891715475481897113885005555620132489130330831028133724572151763990143428381365184517898023889788287351077286991459028812448897928904435879669507731853952505938618078987400568200521537524824627774898064013840465527494598752116035800233021150438625983656621388015311183490297586492250194395572130852869047620605072585662795043094352473532911443292766606572482122656892643812133053042921933449986627275951675649400475776692203043572379466316304797139903743604351483943853326536871816008954674752830811169063980954190793567874771496287042033715882798610334344043693766329286941117865558909503058301371681136377088194706595345787586917405503883675754933977235681616492036308123705177622890988159940594980384397361042847986927838894345741774301527077715874493585335536012195187804072647337799833685492441929938000591923563321327586650372561283145844535198698672149129219286922698120365225754285148879442776258304359005308320316664751817596294797387628428049458506216525715737305331684688940182988642198479253751536211019391975419211795352225925564622475482856580830651102095458253232074157432074235213416136230331608008510684579803724811164667779538637094869100877117630272726187893614823885156713849107066504059161434675751318525052638262738604939348112224145570579572046008209307348227214287954071402502608626844757833332882399010089655018130539794859687174536765960389146109512482398422335644250437034369622107599795661847193917069821116829361830022784269638947594637203904446983226716160525193915245766955382371109807453043517588167822016102403513046943314144744415399190726493994152123481638756718641294995496606596940013393408362328098125241557342500407222021879273727091436676706219145326464813349145399713647712105913045757252325735723070205811067836024170128399218220305927855223550785510497369078466914413007439500643108885049089533117425635602316424413332877203293630616207987611677701425674775972122499549276877315485773830546565877780832099968541058638208937934738041410780606916106786628803819168343311207342401457879638398391618613515152359739018599730444749091299691923305565485550630169831521224765781051845503951235889635764032813200422985439519477489041322120163092830434724772457194874119422823617150142860656970058122636667634032522015151047431371850906239770100941911472119043418381201519028483452247578709984971473804906699070560151813791655587171738792882993029183912414614483958344553152838623504029440656772109927245655646716478774624176670719318821652128331781244681565099450807132214457983788153864129961012666970724663859896133870333285290211434273062783292872267926444094326044242838938503351213256323985695522893596915380071225022888439554223022552715686869440206908133443329347714203988400351746367042724299700778659319081243826318889119839613619257888193239759150139021123549089060963155671248110511117296553284548494576666374772493443513006524303513095723421636758299021042755854374932439422091905748845390727646178443443199263925900273415674581592685770159080132615850894411695357724156209267803540162126434536361514676523312395851471859043902620916353650682561222162647491132531633814176445195165078777207468266208645585840102944728509161160512381746893707001258750146204635877254730498535850666848019022850922118913316564031813665787368696771620445956186397429332841158904770893734496049163264217585902444719377133750947071358358592694986955873922066876627359012256930465323946415737628762094596880853844000491093128092689281216406215322633999365173042862713963239972413542961374013295100509286669176672439671799404713788599841159655940679199179082696551397648517825773708085080053384606366778143867605094796880969584023110269706853028441582647957153973816977715942923634647690103773810106441961813322174468478146276287291415428016830587354126632176257303360553488478847391310519503429396454979271816016371519811880772807742273560664635953075611259117713930652552832045558419336278419233078294921711040774997494008033810899355348685473334181609000100613738020656154737533213392802521263763978476791443870502235738306269987432607664600426822996138994702079209876715633504426019564581925568578859581239510804293417970319419832786253410687729376692572222218368268268998871118759447041868928714822433772119017825311125548439783537780841934799038267266613021385741485220438309960293926125469657807887220067286351566114984955218771118626225255782016168708666435918409843231766688699958985433314524683334508470790860412469259363040747343124390941741469057919579681163602975925255188209099730890228838469745242080389599803837434719748675270436694573138519617543785130295444599460089718871560856833582040746550013668949153317171697094324627948442160370114054057050931031521199218087443707142290622219642274082225748023163359105320190678786864048841681331852636472030751355355562794778333433180148553188410122641659301774609401701587600883161763257442454336612669489027379507077217914028471821529762788920606865849202871392714359122214462404648450641914427071864420825319169539833520092078173155000880061455730914626206251023123198925312686782525107977513629798586162666854521663379506057883953293017185548110931866436880414413635175460111899004945139714151110205493908850420471815171989327334255486231380887226930408865998983512244708331438708120531391073398713719320967194652790850738796499242848108547695651338722622556431224659856111938148874311363570640067760892360226129969790388909688132606388473884504885841252677137166658891816988751020461505627380171085248126681194053920660290457700234247963418275593416961373652135887545539172754489253903487731475931983681521719107651022155974784194435238901472930045697087784872922857852441057215827479745219924338288665317241438786004443066882477416232109285450200256069182107080168590874664365890603247793605376258421767265142952970226375597196746027132420194624428577315910702928185250480775760830375758676413275231791460446693686459337629781275763596870031075841849211550359264635278385806028781503450833421915561771797709825923048884521706207418399992528025975313372297488412488438092437274019508445664540577863089060420804760487413372827873070387594839358522235661246324794158269521574087313440029679337857786211620807074317070055496874526147512604559910370208578136546974885207704836729808914860341250939168714072090856422170883190860192167864851352355580932714735602618954318644945586681801119068263394982324443771659237439349591128243424403160465258179703873622303241020740094082929148370067144673138675194011163958841688180023724603125240490000796772848528570776444542545828521613783093364185450394895129554824318623307428095546485892459225815381442869834650730267918582057130929493540140992948966112677577308466072562980444068219598466427157888147733100686897935598680909213084534665551534492915569190843451856169646669526506785991583630588159195007399362573062437947244697645823968013577339261727973741995896136229064490138511516531736390520021889601830535209073430787853825706861857038104122607779523145745754429121732027939659986100270579615326818541765478082044657276176152991723644263359682929166611371755442317456568429517086995069045835858247447554413567662105020064983758009868638275327593016074383740738175595908291330861611429118128281674885914786775377750672208461708296023954225376711946657049820894814618518437042197077182629598860579789747055961805211475218662556130415026654074172614594374163895435271456336216125371595921602249856201766428848143480907107569869628167807118730090129275189678043652598549728561291236569527104476261840807268983511644147580698740646212745709727993012108995556644724668912291231199735841399516667778230958270594292195190325524994579971400853687086158216684538690997371589134445260464592137294416161913293627981118129993333855921680600981259229347810278118229696477926257554495922921414146442290015275024192784412427767011579431780202104639346034374321969805250705568537657272123643461545138468089530555814214553973925039711034846960596141130522596388519355300742203514913146509250354387689407732084585686666118911530569909369624341667388629185091574101743888514734786375256238281830388095582100565571117143309984659424073372533122915997676262243156841886258578323769646049428592587296223271116103409962246618796298836486794403065453438753615404496776111050510042172011309821519233286281428308001315435866404544508888420602466512557316173634715277705020623353112378387298412569991823964126497877710233771255689602041669945600757230455573702177208309293305053037036474670409159043065568480998877244082071556461616071609302365570644431005103602988431269103195049889532835290456683310256916208541393701082658156069681314716949583871258642052293469405681106691055667217817399983723098105698246274738742711357466698334675309664748738016282652579055465828205571266210723771659681952884439498664107503473901061283691088715146640221013522447959239458547161971628498454990889802085987479600478306755733941286653817057372190645284637069229970374644794171135156084797602225619473131447974116074329339454442031519121822390266382251442112097401641079202318735472117236912312586608538415401070577750816399763825311204441636841163930390538068542705157808516224287246863455349724456887085238787903702422805471579054696422526086163315595832638251554790126186658136017956693281931421516691081766510838159331271871591807143289921915335765635748431360419029830132158874232161101894069380240379841085543594863787289082355342327065391190350275086072823708060869028502492914488721330329710184736062768528147824960205257124008532985335695814584646830265433872607701089573362766372072369146812738790067070046111633261784637347756886014616651916211213683670681386944257783447150870311507313502045986234072611879296038370056701532677220798104264730667895211960481922941890795162063608554482274013315730657749656753979301427488161905847266234858396122415086257190221583213275569054143261325779898938851800929925784399819382120302701964763626431560653850444979427589253260054513541213178807743197281757245829233932354226802565511808870180353681005081305166774953672652200503738736512560704312762095521819647172471820160073164319673679299947350429316776760167730768409339722413124521630477281099073122635726399607405789730238064274924593407930198325597645163437921164473375335727095032967465602577256494241736740406048722281499334636557029036140806854536423148241799561053092950384844408614390339836673477535504546143446312286512193526433540999962860957380302602611825081060066536714694310531918829791829386936028567052837700018955931682166081533557742739935560842621482932045398102440246630131583062239419237106570298775835783458871680852568966535511046085144355214373195135388560762746470724266019707917362218265475035652594171192086435003217172564869734124723544935624780638068089307473312351816808816574959501212232669202967367199947402138427177849240179012572734100694218767096486289602030994338287789078561270255924523762233593581113462357674300251082765470291664683180195257426538148212230053672416783820641564946960390358452905570642275965096952110714772679475767901218258847923663603363044325589664262105513257134830031958481251666179650982323081610368678926507054857021365438835419469664425717758887300506585175145199591685492325043033929135614902676852215334622023790141292301916309727774567370598041544592041291634340504701179109546623596267200112047631138443124534594383226801176689440880770635030857713556586892547171171501884657098694327380586962645280067538866102274779936240261357863982904670843016428784349358996235064473688383936944211713983906184980605217112025169322062341274653931896050375231507679006457013610315256659672428444653131183375277413934998905289530354417001909518457662081674054916680865086820847041363342910530601084992693669713818440597744647894408700240962447221273319742170803698475956851685582145732586406484978278253364080562880114271324501418922701929426188247659899279254041181376995269278007616149835086998531339891749467722753561037667749015990912486160973042822357548893456234602163666183310830494782661345806419828449483064624368973755384996810869795087324240167021378962205408647004241017770738333173769488223026807125125721809581333826795332790807330460967667044008935519270812788036144470401360292866262257143636453392480212723541513563988155581822976348277865056669627283998004044605010144061679144925283454566639320682775357917858915658492097609345936784480250875067241741402847631264638441058646361132530733249897596526651866540348703649797606950731688374229534201540888714952885287400581487889113627991915184610300662669922010355653253263260337490001666270320010337255254698762379419124071585742320983306005328091165213854279578780554520641849676408121818071909956112653713140711867071493678761391165485391274349027597222570407692608678906850257477446071340906518789429294219973081119558563642142890875128270951896800485117959175860292792212646425921331322515664244938771414070944128790653587032192303696150399405831701490895029085289643198767111047497476251196805530679616673594425933236010922223272347642321030002416610854137733175006743222636779819089324169040702524323969639904815498513718461952092995829760472715788805902518913006431388104199677444478432360648668102213754530646985785327562645534415178722560702813479506086088598571567753912289010628175628552593650570007800372398607732538690155382016562718259531646149513482908447893081627679129886860544921402895461281274748500386764919169959092177726455721528060118382723177867338875151417094484799023461493545527045271850502986322432097865034527455665930534612282996066403434317055663614599781325199532701068931647623376318538038023178739721296616888013698315916727843966395425165067004746331962616517035652911228609311233549755955589383701851342622228861170646265256065354012041968094136723227999077622796925889670321225252726441685582609068596437995826399940499179757662553240393624623234694002982685397924066196761971966471396598557692851371306048974395910784431631543893552413697215877352862124058813153387671671711354194797434295295983862259740522149522820074362818402075814143551062561932046970266728635675272420527682780747096187964269748064561103853876037458677180828017921720427327624625055451814549528252017619650762453638365787421263808106186272128546344023655760807277439352520348971028536459241403692361866621120346527604016509021204598143669935600893178244901024036609509597438992823361411339836344798655235071847421892223679712849678856631302014995000837683083036101149949178879870020577817113646355131827005773030335257231242185212438741928023685487778464410369563382726450396446851639766033731219259951602989363385436911366346475098516586658894491352313390317431267650637599828569853922858327764100930606773298408296506860607706772173027937636149776610072061543015171310510768918669245259964667329848665307345382356158188651980650467194033270736262234072012715118096114921330132088106839558456291177562439900232445149895738531250332978809933532270872719627913268618220202614892672093975135612593968063724833339033742825240720845999747189335012682745209957932968932157334995123546117444873283523057346717010554817215640116106523642146988346358729674986735556190333832682555050049490366851034172248124924759211703313550182772631977538906194686422024068697550515159406551547921685093153016030957184463299576191402630964817522071747450466201327956727743358007061539529589906328423813674858121699527747841854003873754944460567269516215693307002662643274839131112023901920797593106862930689681488943671916828996287506951335775505485686927000937779896886348122370584563628773175160458936193790876847261214493685187326174039194878288431884841241558895576082662983887400022905789931792256533053722224375655094924929736118854730668368252961620341325529260654062551187965672172209401968922167058704046486589528862604378522889282897409987082929634226544922762123987559727069925092695832260088340052584161198964307045523710443491030387957540296617307654119799864784480818317956466586769909597789799217562259889763279013655935899601595816137783580822116860453259622690154278469887924624209183244845052535811272735459792144068208420968966902960791678337799745820868379218858680367399002182174646304012762623984654049471645416668394920832898472816913655309787769425702556978453779936521443691767838421128434549493564706597202064746244976258152537943637891355577085882224177965893574998888102392690196206560853292440001609740063420063884722942643776561585399731355702355379257170093392312708046593860937463810151536357459486872374443534736984091273353899148400039483745556989347539425981515886023995767827106231781828819515286726024841456892940986364503730821016464526241471278245345487733061761842103429522183722568689012099642592637577723551762639576294133320528996385110782905924121301025844269157966864033907675237226874786401424264065834543697775932753706721217843365061765063687426039430804343006421109765374265975966440066601010477046791885545284652147182617112098148354077177139356593849425859502486010123918320914446890740322783875697151654447440072996926110777635112383307176292099259663096954430242371419273826460850348934389821754317055381544988141236754217359018380858924670970678150449810999813985503583068259352870329748999937583157567178707510182465080353250296031974709840582511423366955455575507056052207758863877869659452194022316065575277258219297613045842560950981170875110717571728787965246221500389769712281061099861921533634593629166115189226367692268939670766583168498616358247970071823931458146241087406916690401208510022872463163668775638664610154974961511318025086044118722744548324196733469587425209303905552571470363679784767454583214820509118179928734068404501505092803895559792054478035753483433939721457924638289569172534706655976392172397492908712873011402973201973032193442466553836477062543586360148061800710192234144999817593398378461542279383861344478615626176685626776917074840176269121258125543592996452072072199197225669366002450955838237380989050904634188412558854830228964382614177828651387707044264116449954755885232053876465193989279218403134382812493098978780854531989098138019442057232082736752469457849869723814383626291785737720579141999058041842588244963100701641298339497623516683511145051440395226889643816703828232266412382225641705495038324473886193233867348453655103270192159989094285459424156479393505476674532377630938032741133256796018337035234101230006283019021468512271221460334072018807547341061789326659400478198264277576922823547251103772699761000683596541337935385843324474062520813303552722923058227949638026525198529078593073861134357685224906609230854935834630636058514513954128547579239862673322336314057766540926469619954848784389720766613758284642432912945402808835791074007336018036859556110725917949673945579181059615198340154946853989776613880747067842110077183878938094570025422856494430801395112337051175958104085805973643024362281397520956284211680262522354373706289932135702370876933028324419946572998057756101558770063630501759098972290248970885030579568333408954288794071174355244454246541838309669663849935178716077514306796658889729409383079628473150895790388569927395828252650754415150750171376740976642697181396702525317859718443391430670748481083386590200944771321268533451201243684285740525476992033345415849282594211740935028871578188633075263745010793989352375618373706023325362072478046737525199858397306750453283147181019338312446520689128187879761751180339714096259008740321704173392978927220757198708444840206895880338437253547706888942020202417414758073358562423551596360843998693625015422030084632121319987692751005864336521600274067042644267634755234506985129911489095921309423411209640030735743693127161331668682134907033413253458529207991970479961179160355390745773270179186033866969389037997359043258847370463730641406705989598407945065645254643614857548977078437035808775577470707432982750294867353966497504676694758101578297021627098382352071080957072895216873357076036808670351233227887989494161886976504179993795381142348703557570347295164710472852446998800251365763476503287707765404257818104831855851625199784946778121512750030668934261915368403899459068162692294861482257901045078094566288810166133607793796722317806205553155367568147124614183076786516790514815068471702627451313487782380759525312920043703040471967559724409917062248618516621413114610525446632449871810413435188528744790002663615909284599037787082563102953680988820616270951388613732516957150783143662053448890028048490035940623004790945380759998315493775228849006434421459696946345273656439054172270725075188422539197651022836148977379592578258358458051580964545457729985584144115438073131808696140654694535017374435096668833915712974548285474043185150606528765931855931700417577349290168265620468085799097787436784810445536294271197719334121440676592441566998254883247061411783515807518433492194561132259037358265667813219354004730633125307653153406307177479518741610145473759216064672077398805804770090574372014981478737471617244810478057644686299922448781719451065677537990187273092687547457484265135757174198682696232454131790546350422483913223809033077396417109151863600075086278296297469039933806838991988655269859287311067018395888517463022217816852397681500023917667781156395923897546485358622193329748524804498575821181731408109709303867108342457660658417257940071965615868857809128401679130730240924017455873171376909995235204378167364304814623007329887695362612635766064214996445987001243595490660018281993577874752316863168198699325596518820809039388617332904254460307360629427064191534451270579999766727518462403136507497487607905567065012338596843713985312067727631246045900550094460368556303836934162713756815221122888593817825446094414509823159077201210195234526609919622345000915348538537390456371256694444730547958520335652498685985327986528548748654951961055745750887277091309566638865151465485415434049817942931062870801673238428940706641555868808033575050164917982379588531271954807345897381917529528086515282190648769856018974751743228809176247817446935532349770836005669453949582279621762579186635605923758137220325347657921283452697531872114430232292500719409898714943665477767357679623173584546900078277308933447994257092410223059748871512041434732773908501375872876802401135888264664366869708763082056776110332072906387563908475450848319029933143755200179102809848300505889008697519607032663002317131888324108216358231715815877384869669886497994433414516848451336203816006070087440945902212029354699148842099193915028917191838074121767536437952597034759881849482490634152009912367422363912004934650795827251746115865639812449283257944274374533867288733374789983524772186904487147265738435622516469262925416781599537444073426616963118818496181617529088922964956181514222708225286816786299773642427304234666558049241083003229841100023831774213516556081643279850322132776702916588478582242731864598966440300701223821198839109173637301849028690219425196004820575292906301203679338819602782007750261471030018954292823048935394550262228923195428018192792672039732522186530807607389911006616806707361558076448860545186490325174919151437405844740775813717607063733369476100368479868833550896182160637844849088425729448039050136538103160331335327339837744159024142871684092020233327615908923348786353316573650928400665359771107146278519792725301006969413062902573686252398408588738809203132568146370632652026821627419426356211301710120488178467831061646823242430605982108814895339283192770070937466185682301907701324246501986618420552523028447306611798269132483243951059339184820543518616931811224119179745892057697872804115231982950148171743459321710662647871450431464251084882399750576058764424156250870149775094701861252554734789954282186174318800902470543282038455116409999794735196636947014508755893933062138448100206400189518153001243988296539534965833432178556146173431723698681820387223023361404401700933196436422428924735854210779918125863831994445352395714895635586756058859674886596996722688995147870558075129611851239665440004249960748439258266053283724832914076696697215935482289544843749288394631716850067532210612432967541241092702643300654970546028084370604297679319631362052550357606300282455793176494495274852484813892424128009368085314399696980322748708925459797382836962244369552907564033340231186631989799947217103055328017015844436956914048337091918833255604929951466776546089807169493919671059491653348610854272125647112901058870427741941083290820833423604043031189210939998614219837312409734793501452360992164952275387531131306805486890677987279190138636341467678387605055383782481983307371146375408265225465085963032928199851489969427108537381146801115330178733739593306163555194700346040973747117952757758682766845075542251729861062807845682417107229384366676937780980036087283524983095626920921067564167707845817705870078371505256100754636750100194270634226856520553200282844835073319592193731452952438020431739275174057093831966374831671255997643944266758807707073899859868368672268024257428268589010881045258993048983973122911342211400431195574274522282711873533099878072177231918234369981944126007501044474068067455571305604690599196909840087504068009794241874379088591635153716094489542103550255967515671253619438271662550291026926397206299771173754432739515735529745546379951588766912095493714617937238890212065587172697918692323916959058846079635571926533557981372465313880277560967663413144828813539212957471852311324676610279980802165242119284520485135126468074715857448074775077197362024386265088811696207781386873196228830689338412834738679614977175002374951917549453912219577474225374412807034309838197583532513715790446947545613139762298999664331579641327680226553104444921677107835722137097608320963677704706547197871532921778946266886635056758352508033021517912869863922296905471631166051233610185773638779531655024975868957191352450577797457682104340473459504365212068500621596994739376280399403330644344600556923012162184079860244032682958459126361257584861003748386256911968697556265717155248302365666060479710232539490659864115430944821651209472427813192986311011984629665403497260490672986000984608756019048083760467135680326748656075304865653185566431510680011823609995151401954040236405133893834921771891749823840295354393080890523495266268519246302374033961469277978937892046976785231187487912429179794268677556282926172393040492773133470360725178987907349937510536838703399229533029280144268410323913676589483240850524332711798692888369921615416523755545471313171066943096571013621012308466020021326688695117665732309215024285648175436441647166564951090818096349080234166095835596030013154207297780217988775916616828522003790437680220552465969391707907982197587976390366538026377510598129278561966905346041398794760708058012665976041789274256973628758250788823316365558304239308099611891718446425795662542309711038460592364542659776132499283777279912739912071388225305553498556554060565069291466122528604878614999962789460766248115953215194048437063461671845553603717041150021581926794889631156198031144799374199815539237100129668622446085477847110192838743613937754864874524944668422961961830126812349125526681873780033537942203247090976863759945966080939508921548854710119257779343759833432902558977692516159685946584409237677628993414622260329098871662729301047734008636027068824783749395585482033924633309194074761915163468338055849025342721031315220151580148311396093456910605061866009811541610675216245549415538221846792903974896568744832913094984692623996329668212375453687464850668057918935765724159808610702027962255784150372837353388410034257818714297724167242595677162392089493776467172846427656690999760497446607735520921830929898266309060021334429734776978500981619109364920606040857068573914333792719135720159688963902352567580909389571982249326920487847447582927274373750687378717560889331841954986986393843032140942831065400836002025235077219875623977527473110637467814302698869440334258439788001922596916951572030091713690840592624337062407327461980971590161710218588344376599408087877306030436079664853486340287130732083693014454758435898652214182192272456706953636037977076156848366721647096683506638661078093206233613488316119725859246931772707024625567169070134099866918762643128925353481869325731750726672988457324277005172947526066124448209788298634644256021532517371947912537727018451034090468002794232677101249160338799131488901333697906592793521623293674136291897198319724231084754296123049624409331370718358545185553485075198020847200745724785308598887962841064420244474099107385704714221447204947918341672760133536026649124279770928507669099656931072104641347304792851344903897733767348488058935421832006979990878670075625890045246383481943196973022039324854735623547889181376619285658613612469057707272679287454983316820938029704299633344746362421520639523129680594330574827836953064403325524245910829240294318761086464397031386597408955539251090164995997361514567265874116056934309317113070678329329805802047866604298097653689685640136612431023525307584097891928422375835066224725769294500818798231859864583620568827112796654737638972332201532817147696101783266780550835545004481320178810428859043774341685961034024630153015494221918809807076225052303892702865274678048194823281965957800622849310815506442889174681942883410747215602391650373205442725511833222461309332966742295824929153908343220559028215453079837853267332029396996401917844128379914693508520158755163515081981677245182261626935725343513610105729936361809819797039185298203386893422972871334470843391137625888541346617968764700324988686028673423963619792279957322819626435486217478868005175214625230369174769044012377694932689979900348045136705458139123894151647310905381193966041048075597335819256528904357490038967265684291459295093261883773403438184191447874643174527557772791703003384858463776151138159797651631017480563804657613297105178419359001975059916583143545336919130334847257640231661549930766138234026052184165587970696229563782022682373973280452887700614329635570335976296365031353462357519948304127259906210606678375322902800918382496781752805982685733072706326542699577449317598964426936693878433638214533455411848027414717823567823627813445372435944903886889609816628315356125442750712134268201866283178239938246692413717909631349753173441352584797626959409320827847788385956122822326827079454476781571361150878233447688807053313363645722488466259151009496478739117600510372808194893473265929661918070524286404817730276426430896667254672222737687622273917707152999579459270507623016655748229841702767915194127060060294031615463127118900846531011713836457131955960852460750806435184084037854325306874278740191716811634983428448046360170531500798562505027236099973650707306562846622870601540121482826332594590829498735394151672824544065782971530749208325232637140583395847913984130360644947259167694600361391487152177147303199681446651969345095138596304106657645151325027021958713481325548913902363116517550878877908132394021279327594009429941086235589959977149528432207527602181080174088830551072089999153119970177454932406550486584934854832733857124770773954085751419204206927761601612570681825271967516833154315899193597077861642778865665441064284314809723566776406564946858824424484394210262856554909921782834979939434235481508998307738942408423061024561784386515334076468564372870871456745996836412540037489027579740497302259428833396706168268817565017415925396440190187948128362371506793436979589763830981479658931322349521259924426681363533338693044213939914960454880310625184061705880410144851160962720526197714756011766984345125058995170327513592681907550663419901730884376715602288247224229665958689133076375502119072058217368346720411801004399157835421288319172314718700398974309140931518491390037727321094445836582743305204588324986996636002631117851149692291065551989981609740577714925205080735994747324641707786217686259560002483474411680878006824001611848696514648853504735469830705333465822484655341863611751199733901478020968075904147850880958604336380257076750976624774299773892521066366661899095606955505923342554811750663949339417304386038315898588398840882967351625292967366493463154312169068275769745439301333760955729646935085300997392992111085846650669763244260138976763979172168318738430515196906951763561650961741203891402542197554046081035225742004257351200285873152991238034073521320570305048934494842892180876482926835306064953359971707506646348743376001117947190324868424553363993596857983020695168853189027478021967557342313354000930376219697351795349148440543052145838836044341752203317029982379312266919604603713191007791454062551965310672465684239168917898219706303076691086433975092831680173270334086037134351557456095568403233148830183100561971462665823186908392254292144273310460922796055065766369071921106153964640364668972391257988541376307982829045356237046434598114969035873185095728232718373929732637819661810558385572858414581251235137423048098548124247176882846541201081290330791128524412163832846061502496823158714001425366181934532695795737361169146784313760481850866243771157309897800155219451269104453517329442501995538549335285756858285225729457350451057976916231233004394129872472498360746726820575498932567907394480986982124415794033282472748682290197802599712291877812919404203299578722644772325976036610104892970175762430389375241259925928576703746305279391841462355358605158787136785577088722036221489554689804456624305061272157053455746587940709582700352754929577818276987090408935067705345038568081170631914679072141113830050897041750880391099513273278616828447253331954145916916684347656179475611934036488569094467466523859242312923564362181491972981406712631044761816329222802161543103462142009401808957239296840433293245788224328835335991754693536638477467169599969780108203019337468758326026598324045720427069230970219013481980458756892197626546491471604232903346676279837211742966621243367681387084499658118763760987907927046033211325526168049301436585161528147844525081206731939360582381384905262253815434830779457891286720404900961436732642728676856861398026416518321113841509962915897866968704261390763201487012598193718195602873445293176372313799198685841085830610915069597282369563337640897235935371627609090571864223017612461143944374436420052321169515447677043716763752140998433108552406588635300428367182261153035781372263796004740382350806180368042794373938869416733423527023536307471652520897772439738882179982201887798288184702608756998216437287580684228453996142134704272816372892996544992360232010258376646254048823159449788035129086426579274707988088220177559405258671110842838677463884532090868352242711056349151700563214363176158559234005844995995411964906598809416872212359198834102718647448960984568165166215208875881728852066222918094066441943828728788306268362146029800084163400192851294604937103305829569958771820236452492283287123942777795758935921792425089798206889956828659405765894730264742382418241310237518968270678721016368443648752541974525288069681040011685410324774720425713302658272617914220051520566345200881537087656328542340374647249577056545683216920305552497181452158599965331492097409646570181325084243376034809978332363943272674759680571231644679819099716105554329590714895398208318435020919791821925693450250059281259374197810481035963477638350745274561364923197643976122016150243030256018061105775185789381170702417051738668708048913131882549229114005762997312884505097378133481460603476889384160470918605950984699631173427870930062558400091305798254032961965165844925839585967553721588395037209835528112331367022229852200249112486275556323992174872633586614400354735097553368418648408796370432539294911139615253060028099211586065946930098273348462044413121885759529357692560210893486201340112842654949467966965637395406746184537890954050305335844132125527486234180969167897772453459703260915157433145596060944401274498957631693087644474332325492107837275702519745153636646056451912594618819063839076428076702619901410718994752685280647951729725729790113490060056089827509148346222420603394637163638396535194082797323655026429867302417926754582800730446201131099552987802119707956293109354063011841030473867604203249425622771271906480701113165542507231419151486538046274957030187262247471957738138901407435849877637310458686558175726314420641436926538270345849195195723907053009688553852540350017926976178095807576401903014008050092322392145852668540926332034119222913758089517288217755141615447607954683875478983608701711531771308434519316104426333169162460398040002318316002677471265621565535768801323607522179110458649206649419632089838171333651628538998992751904665522033895326624710520566361687753806704413893213678245871690676689379995028029936235599772523115697089207718806748643822831116656205488711509333274809529694841738441047393526660968471234326994948287171195320957012757607899804665163081298423941047245737404353927365027040776725484540769010991757059675768062061525650536226470412927835983477577665613840914607771203885953710517918841717514989124212919275164902515799643389913979492311300635879549764615117566884873396684779943000428604423916671007215755197514647320223575543304642325347313295674421935799303810895143456865627853409937354827875184933064135652492320152532056669847592350227683032382674599128262113232698937018312607895641063929106984211217923896145452984746618339648976727635117085690806904708540446028557394589944004109656228259658779426270529000705379211855429157961750995010093008777883772235910907770085196186525944145122403787828144407068449573884013543842911048677446878982653884551721690443079658752092980475246724510565900599497288742075507843731002445529238796911232840954094550019602794327847575021596777114431242550219399833927575859680543140306918878747165827994359295627833746674622998139744367458097350237147546626506752788751494595550343833238637237707148422520355854310741893448749341069098449410577797563737603988542716289898302902568420197886360294289364844045435068158006896105378242724599580079434729122028985642785590424864931361631143562064718437833091746436264528329102585558928686001171314497269315383826704000565196860858634290987012572228743284561266438264416967847144590407712538275940672767211953949436476362885338957859274113164832055536823818823240237085077889997219858553850936047981682458858646230454843890781000069201361292752866373218456876176637396338747732018910389876618266971653930542133748147960059257392291623431587525045130450312595964579764753406909600443905567602658929196304074193222616348148077544835676468723571349135684813111918648519337656501598843781807131424004393217523445598574376600527018253637144034214884780669579268272088995470461194391105214657713093160002639384492775428897835815980122743375458094164993762386528420442660847355896246475971922542744389498122622234852605186942083405654528836290903535267373665812478115702640017866562822278255901142523005901540709396769391133269347448868037562402893807897663953150113645699083482373000340545450587261143398930465757353066878018342490838787561079513966284212863335803138085112444899737494003567763881634010706251712712769602495318664218323458966173030925054915408917042180465076906719276703083600387169498432356733096279465126838494879635776400697596909771469417282797589421135462882629991857175768690542922282711978890736074789044795176015215424878100564585854581598163926363090138139082829269098142636332651048999495164269982003764663188789146191462856722155748582663281084316398446157415254443733036303379455743336710069115620296827266172685161711446470417995758797986844031672550169506496724486502794658409051981972737456771862954259915454358144209801546875392477463869687052023790343576616996113964336998804637574573381870865153613139784768089661043617621575238765227523157244279607739835292089608461613222878441217564132517497417551031210089877448332453605989868099204957809010487228518079553137256255385275869886815963030931543229805425139256552468203412139724205078620465107337545254512037686739693818130492278234599223869937081373432040407047003090324208535748565229400361748753126839731948495529797317121332600969627969173820182907245257334738421958709031045125538622778048583392765159484416225823948047888272581387196332559995808417116870683263322109535487338588163106621618138623710127381961919303623618902726972685358994277391247430851547310613152461099188761376630674144541168318661979305540809042939492803054635407340500708715783895482550180061646320825147328474423908577614528586807833810306168651080081764683808066576201771450232015273677128896794442249827206636322608708984669458532029508794444033239767500899577116201172863801673796431115128760832686362573144959519076836394338300035021952099020332001821393425959690787134113517687440928434545850720645448713887594780602668710517019186438393049035639887955085359278618782124033566782063825366453823527820524687413469291650174770962061205127941473840932112841014241572938252234255438318120732740949259349480406340104191927113654131453283873361334132908170128216700467342756123798055341840031480879304538400818527873356101752526655493427692428586150850955709221628963036873733295843879181094439135923842329268862086721578754383397338525821367272385645328611939711681283015075811342970422220700679138955328899666474279597460572267298448750250644327129242234841301313869205979099257928875453776385758265314171216310412758690545720592165557627129887730822964924736133614598063467640621108973044868959937780941582134638345899141338922400807144784854907892325534057068311367779576071081617010953461691581034251987872375297940865926292886882245533078517510719499971184696534105407006365481758168669152927787225870246170528550649779848647983502914170132898713039989541580039060947726888432339753607405998518927907202963770481859493657235128269905408268356841085017899260686459091841260411931179085305999528231742383693324359602619189387282180830682802517271772227481521452723122891509238523033917671622421543352826608598315594040174747903017172412247264401491404744084461188615543510005586946340098713419411981747616575149016957601524125751855170761909151642653855716622161094430716480123078795137627728221098441442630104611754297882821751160264782280701074498922902162092096381995969243154918898744678534124209890872528524955617668274252815109751640395183035668068206459592873841530161450837517673736009410285678981018301157637982752453965586496798049443517516287325427894569347898102544863685564154410501987579134987062536347076040184340509257811622855188782763122814779744696729654210298556424400531193505963025952200937151053563550394621754617704357176643065451454466122035708147143336668206121942839129165140661446926134791875310097374650223049802553422152410914063260688811498065011884834082206410825677866345188787436253595189406626556356010440236352107412687045101608822680748311203311534946320372292009663681369342517753085894866892845632911670818478263610398852457934195770604103541552521087644658442081619963198283624788983705968716241612511561473351625631974034009073044337524037469553700543792790307084348566476077027605247807703097293519435229495308153581356350506398168658319981578329501532348036100374479821242917852284937907989920944359861137044092188397884993309994909751816503265379624978634801056597943077426515085618557826035865785893597250519961464927620570085236337636652528500679530380689283459522467383896379237434319855682098595846949904610326037282711116800104538872266742949556808852552558394497606965659805896148410190690299862886451413897892070936443764419488905400992299495875099903236667698011206452963559684704734292506866726834247801594513398627476099591694857696062180745116574447842023684277526803317864303692702892455077112157479891273936800240797091547781380585052938003979188942616998078976817278963781124690064082386612605749774908868873792485896646544814706637300270918702879237167565868307864184042283433491751408731644090806966961274128502489270421825923816524209455824971326419436012541263894883364721282407170800795729259730700102579560116093231353789022724646062973866259714382041366122201510075458224032805296474440694833948393443890906235087091783899314890246462902587236378238143493123494692105912934823292448993922356504552481102850783169430549248208873889741652660755396145777290965244128309392148475452849237626880751040551287515180288801401778141995923311647954425372169167747144821443367301891785563116903927052717395794122704356982877220427586628196033705094919429522367782306918845174129819883464675098458708121146957699887262113968830643783763581460807252047461271702032988994029931900776810345995569086553404845314596141507139726722323427035247866301246384225054418610441772866377357185067132013215310014456207811247590674595028295279535175955030205083398413294388699208958197824569304954589576166003886904689894345358838165883927904937905624545566548883645621510525173347237822335076292209737810844641720003041991213733983828670053192388673665280073401606812573155552102445208437163197042535491319023714651605802673109505712185008459083817531727897127717151236896544142972334225748342269325026444044697604065617115263579743020327869383410365917852277069030807808772188420662817069626517349198393312363358392154889632575624655093677834545544857022955015585913057868482030811502869243384803220139112098257448205078930058596915412328083675226722404035013645141932158699682426758060345862687718063508714759059591031207721293046005214396638978873412431688570707451984507557504859980146094672046756545192555217995285822499064863927589848302377963811996317330345946360827876329677371950964780660636933676661698341639155639983121612994238923383477270695467992611000757473110450626058520705061243840349936691389701259622418434900494631914507176066085151236914125459058412879076502967015977823757622716782446880313072836921386165438640170776719555849589438218655679030002207644884844319867036220530532541295308054410235319701093943189586088541943941104328755639418480804014005893149107726104361294218545436360641737708894626384871292939910049405949126010075873770731278327705261451835333739426836152602991679082595174595322297434739547142108307849962066417618471454574915460096061896893551998810911977385635738137601051714067595777393461209577080549985350840915525488751917785870847852283358332339114614129847832625397628355364577691610253682527774196917808614135774558575278930581010871426407184905956041074543842383194394129800128932459426560471966475767202305270810011753634118302001773755826360983158619610639743916460087244822417224642948102947993262077122114914867392883118478636835725730631769612167734353716495939319532836361218166354485288894432945951615367617791291310266013387114456025031994134957895944043235579558200792740481939450202587654595329127640967402092415707653954988358579528010884266015070281641896881213307988010440617631673319820386343261327171018044606046691835913186793148632648505973570980083683492523791762964284417243596218601757259862753072061013627095502953430956509186988204664890785056691738068130899599157770009828226073221656336100849792969660557274533033611146931672896150219188765598093017631806235366707631728357258775106473674593704603110001354034856027341212174535135885544533204319406454561336413104674807239517981464516848018033355830591548648450661907248397943314853786596159465625480890276808016413620056570862976393616496354545133460213707930643115993515908083974115439402976929491822614181068812594044170563667805171819199882694109397446382276969053703495983905439893655087842350871855780005413494976389579352228678932906966681093883984103977758032497921954116537763070202807066334603790061190447014769110889783210949590123342445941297747535303558893291877714129619174713408765021966298729890757428978590058796122963225484836197179582419169126847309729095254558042254887254138654400582964828015305203568677066821261276995840348697052730434118117262821118885735850118526278154844020351367180559606851171332233801052271556252189249044100229017298007911734173858193609801830920382060543592615334294495271219503727048091104734600518063349402251913911766647310754697717160187407826439450561046760871628668238254402194173565311608118856118051374392981860073027597667577366650702340401238761299768452133055183826494442136370249289873180241674286633624810046358730307405841310277584230852850842963098293586124269061523281303590862889488573771479381136704774529539614944958710870487793574624525638003924925004675871101237075657222702272843900394131998488371882406734899224487650990492764264828290012278620303664699669416221127053650575508200853498429085344735147577959192349171862257072937804424121452024042778572864807162602560222761382188314288641345065735129906717176751168620613127514639970053793081009324627886771839843636876109970534854327691047577321762058395016656880148846066747582559055958284366485218872555334071821336147847084866799601766783121744550563768942325486141941093317422086150105724556073426411219801426475790130103838005449512443218090769110074254554552269505917338301035547944203685192348574854812844158245971567624010100203080847818473898892206977047431662094792388951207973112162807193289511322225322083897655252071033711683278212687720295571175520634944396090715955353522740360165166970593802558950478657267064739277226455255951946174679525855450137300569458396500630354209212323961071689876598479189558947800165659248024329302253829112124034754649279220964923510450374966401601727429566469296306434627212975239335577546768459006067394097654349617615023236861258830355605015063692903256066809064476543928615336946929980960614545299820267098780456230279855610709351955680513094835915567509898055839369059178082633193800146186342626694466818393746577561159415248477287969505183744749095059062253382894382840400542003725583624848418181544838417968102909780990413787988340671258308753418642740352568967513642151544179727495017396113584835547529686825199924062338773888883791233517594051131502977094764014960598977582849384702019875743070807983652541232264529110089802383371620008366963967211612146403535677316406077701645781746734328972950781904742130249019405077541915360421550626454172978095632492220609832700780225872984899602206688388801248864604136107609199534283139016128952974270522773685132022233093468021934547878876712540813076608076098318514448853509031943437820572509741664312341220842182032060343811210514999287635474676889958413637095983285146283307805672004485074772628060015494336822248034289095146408128488232637681572054215838239359892527272571283003988362502217591719064729733526212335192329395036463389843088465180970662495369205088502172730054895059106697134294239337215528481491877870422513565976256015453497742509250568925296894460752344091981008386754814199044263801320494500524659332266902479640276189347313834072118539593020226673890531236141167947723826074039455124273818995157265787260590440035369586420162272771983137106890457527650035973668939451215218668805275644717779793054236260886882562341510748391768833573858649270325407105178553681958595696551241211759963043910696038016656035693570040246744668457557178054855114701864679423513537415721394895022937008632108300759780217715772882380220966469468800262406630954449691913102718195531755147234935574737713285134251150056899866269346887043263677059284760566474782191533476998411032960008862092751385062828862595969496203083664341630672317171537029162541712724836232840216609319984481476907302529307680797507185516858161822596560255715543342106341717221474772925691770834060972092957603091494417016641428971520437496637890253244279754157290573910312537678559450060446727015740794755038307677434865263101017422576457768728131381466807825293089846734796352370570577787467781113915290189992592842442770389528327245551938700497490030161117574579137874640615014286058307232608235183868455868959699724500365210813830879326118861417241994267962362021510341165468869552610668044337600046291705657016019678750959153916952283269105799887926039873504994377266316350627321275652201915692165269630087592132487204001146928122913166888410470002084705892495615751600890771443787324815850343723953627093780835927842183222888765079227451678457234486169462799140609145450950884151101179921311137263837671723231876760150335754512909906383522454031075444259055080388934101248969653405858198918803495390491370793752711649969607328355095607768597083194747899662329634130789460268078088740051187076076736191419652498638516029150979959353743951904076037544780185317163781443415258277984456663109023889863094512822824694976806706134317771604618728391916506863543476083314078487080497919860533371427202509367649879954847051206749137354891356162570618535187017931711060270083236397684835285826592673133590910626577282301857736291720304758957513601444403843652709390019618885916045009354706397995452824358431092893427431433843266031173631331983454125050741313484277565615689293052191591752860905370448912598680421476678499180218583221439328806157258435115232861293554441092121335492495559295927593721763870400812141499178245589028722743244906700925512195685130640758660165372200341921401635959190104751931909178082035669003791818763789050674036224423408032419303347085534176001892177171805263655429174605590374731652163886339858908936007764601900254645409502620471952952348974041088500936995337122784836242573678231047972848572621154550906983209118275264621534441027686239831273475001253842310052773219702968528398225307084223686273386475334087032675952246270079874664031005890545113741306130322887080748637177549883059785725311540037678616542844143511788847588253820930625095860577096260682222372512714364763432545352725619817752460722488985480916340806915575403735550584932025324773817701631574411821431678194898846746626537239347448191765431358375861560569113437707840960273358682331847470105960526921750796480986588974577266658791328946684751209711313738446631995433379158846913932058510736679095799255952769376409738910742034305746181838410860204177084940190565075401596975494990166568011012750030211371811793216022390972767804152601482934987561428846827064509447443970648989473768022904775842070895008758443285825645758009527156112953747283132521272498411286417853694822823208752231092854255769295867442803712910279716048184552178077588003338820023996610390514196805084553728089557361446560445893830646302012114837084169810820086464384568763177250188516887098378494049425296664231445570759581059050688979896468452283755630635944051346803623443354460870694928914055449987723543900670830214054582420385995779453189548171275667341770719220387854591494142483901697350264922578631726077646666376617753298946884842737396592732254922309646673068272905198178632072324784717055450734390267230688497609917197796713120775931892889496754871442556767263376859471784930493756577066518196954434971009457136538607593992009748892643975553248448311638933862718800834771153882525665423522182841853641114624577348266505219295349911890698696348965039570333854739201309529461228880489715826160148941891374311238829996529590340183494973908474710794921726890017206103336066599013622476320431060201354687014500079143922848784670835700560742332762297988343977953446513352482040120894694506622978958995814630569934200993113243446976646006349757192752131539688985977676227842994284065100283804682728857696096568443548844463464429968562961418394716957348557879298191624353398052651796806407619604799790315940293615367422405489113300401538621576812636747142902187503200604456608313120271009016450090025030354254886849171600702607834799953479212930034226237818522438818631265677934424631726079613141324297120683792723466317023046962903060878025701104355999547419761552847425831508240072594514583729315474823472371721573070600262169790236636490998633157823361016274239865218705207402615665770131290992358337432735321739455961072763884090772642018078704751509326922660026972139624233745669271346802289868514865157275127887297283331893373032931167161742093256886896968293851208124603773733211492344615000489587955584126537924988458236897351838320855524690024143338734522707866795595573479845294224128763139312262602041090496410834285126826312150920807545257675537658274974455192466135494744608867725096132177790961101155643504115402471663619761035422332046571997216443214002237016105177824665277119360063219306792865804329154067412045927627606246906120570200360747872791786261379292432993615473576500965912606835224273574535637345908910999520793293032655055299529580856746139339190592151072564937169660117161416597434874894604798206759440566354937456139614869658503919340866527741352837163792329138453818636240513630387811113088581112068658976459014945242059997621096026397464347397448275654661061870359696450004719485127545731041095709902920651058474433437614767195723406756804943429375335826555442170648206538469246595216995631593206627078782418952417173635687187161451577295068565437300238685728461882231844071505737570057300591632211872734485346720256025764111362381148664270598308389501969752270959995979836933091188300654494692023320269716817962951225198979721755039364844935701718260276293355629037025592011551210515979843616802046848562958281199337744861689736790451492811604311849081913502871513484422141003920755355734741572528184513898697631081505155460221855205514366627829798391336262949629500555118192004238521910541495829742504263418208440799154722643993545729988708611689874325305350155448334084567244149631529753434623482103615100480840702863949747931396067826004365053844617050045739261564598001131828343923150366080787401112243467278691925126099686621372091199455263932716056980035969580119633725464961832844824057601722641858369322419335403207193527018630392433286646780966223640599699988585540992293531338104320631138872954700248476677558749092435855511942659828565706585160141453213885500292069411175555597901817180210773269874015011703469569149788937988528682753897954236122948136673092499437821978033445587846249412662339368921119413810178311032765271942001126512082501915613368878958856329905164532160959091137974275354568221458231278543543923538576593552747501680195820643874270422551566876970118377020764988186309320147900005635950399096200673454676401686035885257688373276238285725535508979431662221189995080520172599037225640430942117476747708381515550867953411455283331783856247208263380358622106767593991221716878354431782861194300884418558297538510788564049279233761139615517204328771634546625258443164641528166115723313808999235637444803538579235215827139045875857392630478139667143610785162404737632079346849957447011162056964704655499301963857492434984480413507689386098195698596798019011435831443746104398462889308211285460464310415960585454896436175658717640362009003643573105295301657612181322105064494309668576514494469948324036256356931691184854409303612928969240735878994641056922476402803452925252938106657793340459939765662218741324457910728335587691285321574977471433897433226089224056254392660544839814512554015832978707032889292489982035742920381137712799822955569636052276159082450262154552689452914815581726040400124397858774099800205245935449935639101914172555017957308859186458203384164562377276898698192774096155011643990831002943114972895579801312706632670936341168928557708361648766232265958074433446303043488496032109568233882500546612910465659635958740410683772342883647381739664371553321781896076558781255010985347555173135441439987519930654090506116910915973179981949940491194203587228390928767888268648466862815044594310790218957069143022615109250609543132788020180842356446912594046376075235153808663904240428271572160871567867052699514052074946647786941845129862827312077252565868926320127177944780346671242592799497396048362282518403928948907349205420945338036681825540301735658675508779713576979882332110305209470655716258000562779749846758720424993585436899059657749084834920273625142008115022428247198726160108490867393197128135783913968572405191524499233176504540216636533712424952619503901029822629192243188247290803715106437957493406422578958241266016373174827387179208081878850968094191284009859281891677201457395660151683922482031767920017177035271292607051319785248243993511832095556544601581591224738439059438750108892507817230937582418445085913128056438524085300842096521830957921379424878823613863548594781592650987449017622530927145466722479243519923273033111764919753651648511908056946160672923671985009098505443245432395879074028517683015332763097569361608838875660674824621129641395103419494606749395267363310527676317152179854773504765174563351389054413596066307397949850414251139283966677830394953399799950984511126525892260646843098618105690958161405753547309959821576169678553933188983943614496353539595275843670315746320452945959591756642072811474852258942342595261196396854934547827366874941447926116449682076527001961864352031454553912474802399844938104622230554550645199951211738679676273246734447390017025352492529806296338062479765361686129968703045297060758836204744170405996283783767054984352420070404045939352195781720364885876192568536479235188048433570082415033457918667100453170223356398284223097552489713442295981140308389700652543144948589054010277727527745118326064982470918334593005835115619902333574536650611032329924533125236731113554079168464512189092905033758102617240639528832429434849740432334855196731067200923580006518653153514204386655571509436544863413588989552137119384209062577832022341708220405593940946926086590978047587281192355029745158068707235338186654850247845652932305406184568815318276599729539036491428359820092702782715030147656663317791514418067201640090826735554259375265861749037481839068701603034085611819369636485758318093208858480462602340200519599522594067600987318106740304565339968489559963011273269935695418169311108075903792191209770082313736393759099314917432064998363324924556702224489432875356127947956039151294730092733171271570635701698299067067617125458049897625311804226757404478404601741747167078428510073425290349807799962651632679357502114117643764985959505343941346592164429953217004692611757639421391641316456376787981557463270102234855697191192339996742416305159282947506480509100827771072288413372889109802836588464296475519553549315635894898453620610901357131386170674510144698233853510894317673877273038891723809388045746184529989360105525592513208042006468846203028131792988983581793121399448058399046436854818479196285378593076455985692690190437632756446785757640699579099437006672781116946065477601932967756477345522762967050068935437042517157456535671853127979028564993774206146604490794223183280674543461966255057292014302391423453861419569741036799788098813099549465032641300447632301706829759594085279668075701590765842815372148547383698205384756713949162356338255883117009974164111171743175070556668037111675887142261531625484473091952055457528231805089749799163450752739183385744416133678683406852258977095912107887242548896506291468876851463914530221794722498415184612339304584908645263683970944032773714044676848639844783858071385174512497604597886177038545849357818344564284063367277285188244935948349316417975299025909387820748696248448445258335192483367592655741620049287618122011310131655353314095348422535796492322016281954918052991579280915422796737272710816016744108307256837182035740083049471910261706758025874023505938320397289528719796802197615402550289289340646919481151747490230501989087101715987481697708946426130997122493103422118756721373637811553652965224023066200054687908662621834759941420099173200514814009238683858853148434589302188814601137705056165205258587211149560561597699198833996775182532183280346227276402528078087331032928623468164528825196259762055700218238658946095550369384237380439041429340269625788145730386646736434848871215718235984711922287409264399410604847547315547104083579430112456628815937200274243022576700174447488604981993041759916791954658582621588988284766132045870126031543636788642728475011803031141696293526413356225168258480672931462461488533433632058114899504037283491549828785076753427062149089931192203693468780043299398664062378948774808885675334934958700120291984038696482058524247306588656702794118909007820563432984694529632277580092840882879385008610552965272549451360131275084043448168443516666736087884092157023661212916708459990470183114593344107711301978982536918600549215142623599458811488811115599037519718077972893392477955173534898343068351760257008262704836471152862036609330890398728347553963422501900864459183953318303814986441986854572011692251063896553501152989867504517523123191441028295949901149063493792305168884678956194433278320360950049918392690766210390078303357381461665013883184298580841749549379915095588443780871951819588474264191621077191672008594461662417847244601922384985666596495073977293823116927975390510667189362678342457806949200167276394443896176157334745109370974668618320406355715435720463164995323413801013350763177394290820854565255546679130069896961349224408659773583183172107475416928847793344959272297417623620427642267784411733695385020228340930926673467518155925960105212493583565637364263025921882228993364167475078502792344937525681381720097022191043206286743384754677063628163755911997886761276301340145045447305994247803368342753512002077116079812356219490461585472554314896690325391675752571014695428626613769129918284308572338380164131819206500068952380636222323012299349366730398516557853108732737877852248089798647799709449931571831255045963538571157532680891568500403981821483205262128688552848148643657114301994163815692840224317463575999749849602781242915977710551129808946090415729915873518645522785566359923962183297993735263035260645369887722414031302287386876077093818416286684793635242895000266368709004313965272105817273645766634236939983697872823409091561286493054527324844083509239575480601710513503448134555676735030654121508081965315452132735519520657225703708925530116621847111786412692053397127564612664139100968855279699723907069701582810379856733163907561183145774975339637100206105817575384614506074568524803593990479699431299149874408464918220038694831504136598766596157903845707341815985995929668386120045601018860399004334996309675786765655093565486928307414526530462264996362341796117008443293339856242974002245733444133586094356233140088138822082670914234896876198263072947653423361792931160742294556826992170323132463934600994562294338800262681797827563541232537327821279132029561275890706329521311444297225849915550730828911474325588505447217954578983762731894960965263174149196620785246402602159483705542405797184167856254152587579424048249289216217905375308239032263072100499985832718967417527154054658956324230531228777169177284887327356548344833962282057583750485281388200868416032591957309555331468315919704823054031922859864130777542130012986179969712226527067078208487673745208678697278181011525724121097144964499171443472023740303515738594073757197202116838715307354520558900981685706907944343804413914809143379037796327444497093622503110910176244787121420699529109612881570140052748724703489313238351913673339735299073770067823933089293573449773278818373260828853202144474195714884115370835283250269744142737502738177284162585501855378930785869805908858224513734305618087592557768100474788183130086377120757190853066305119201198593224691860989964439013785457644871637904602387778886768640885597589241182722847166759143106824800034863149747116994278143509778985212254031952903701588756209275305681075595881542107941879350934999199887491644241926194175871746390804480008533207105352858092163072122421443758150814243727637268785409252751158725987665833265582186508687463236908768408534469532558985766907873291193341629887207722768326773276558926763664234345463881683077333108840615797240181679146305525997358031506316115231716228279297208435797084274153037099248601196383157537452069313056998083695603027825753219414432850888630326140743689413503600283852682424080021678750040968187258195565162744605884487904184448811244441559540827929221496638371911453239223613668757588473344779092638201051083507281265142275960537069495054645733643730144169620163428435816638387432003337301585862848675522924966873437357687249032163004413032631641451328759115124457411959609509890305959618499194842197726664643405082787363827270445700823490680840158443167615377681376264969922019120646835405176807332635144747763546624164769627199071377147519849237805390162218673420419124489022073427596803574809969459468326459557898489323669561429667370799060815511378241998874467578795150437630200737741139082252783138729571946878983091573307358404401990729465086316671713577540286933240427865446913190150741069857418299237015035556180181551855307635254829099792693602518992092510391643435310147062514571410218689712051527327134815799808848713405553769563349422562860650651616607973780001062626661963345915243858373162163433558744659781380598045137366669536137231027407584201006043785857137265033545528398269118266735689690965620414078096188003297065795972951486759628616550525601032701127713276733243605346189576970802826285288975712675242150811105371337904776416813239011976990721293144276091273447767247780758900021170231047951389733303648972482584748218274478864729208021915277033350496921841430143973834815779006260849448021922547644664095039884964336862369579259181016128210303533356462227110170357020615056521311513373210542123517660068612075057180489088902116196403920677892175440574720375292756766052198457187085427180599313071591066386296984467942624985321001754651683247190757237542909707004236632132599160747298041800937863996389603987057468701344599963701348454118679098381292529995543883875118353580307060874049000147250870058533864475779364838133353722826110036885789640930439816394251847394492071399038930071776265512857371734154137202640805318672161142187169442851270855611140564739525343750107572074293577363501701110427564397331572857117580772537173505580121385347832703640230259263560423968308283429687626021187368592010382708105183349990742128459521442597335571786583077814310540187461583974328903088457382141812775103147226190568580047787398238304198528473730782074790094839555319574705388523906877944689798651788003766132459540037241130451083642340434313199596264268074025288400394915802987292276715899785733842803133365950255483912131238491642811123070634732198347099200115080000712299840594655188854600657997549121110717988431908997607244749574838239554273646659174785841206334925421937495455948405526655198000977459920598048462570956245369458873000634337031897179447613563127980630242544232910624547779219182679412069340022209921986629905106067697921299352762992819936688500716470528692018157695789235899336343634715724476291321720519948029728173801942067467949360868100227541689856669152079912334932629866096294357281378637699977931351484168292733478579889536414634178879560322156409074978114097527958482792859755457040120777168658477347640771929121617262660752459582521953426481770157259955109041345009293665277303080506256522049006199517450751519322719984412620766501070274084113550400328727808196993576100309926459277166260293059813316315320855381264905188461530100834715861729623751450110539716429429756478628073239883525529115417189364154849364758171081363397063178519108716334545987290161289727603321286104977425085736136746297438610356658130199034592899872409244830104859040156434386364495459400768386038664552521892079485113624017016331459425261207588178391307368000813161579048604906519363962672119807951576960236750323759326756611808435078168741394261205829949801713213374491715558241333670898601047501693964477151857257807450420622024406910016375874144993617860468353639780274453490952146889746150692682712892770366208546871870027034641930475444343204109104463655383637674149724864548864921046978874715014289669755419486531398228634069324235719552998506538827920534621723541535884936118616130048334991577693194081780859025626925920705612701595459806203882018666746955002051156520106859554704462118344440955773717689383307008184650195267455743839969205135669343082735584785882243084178039882984870875917669464756085307071048369708466902900747026832468409120046911664671564579735891919060807866446011389114427883545823338461207807543160728118843843324805188912217185845408974649499645903261446251472686817624801994484321779433218135037825151921767727671693317858704454737199915483403966131412369937962168786591009079337261894738398278996626244068862504196592657788917461833853262161028623224163239223883853146448344180316830703839065845997767038195433833683709018686288799447490317615987215442238046955891571717146835862637508226798655893301737078020308588768685994723460201430466765524812176525000503587228386012660584524420404414052538644049593787768082957056318785066345685568709034855314792653957809116949522461353749376026113483664039269717719307084223814823687571101726896588111829558776524540738362317513098349007063171075571874900232340254703294344575793046374664576432975092495546044883554258751681351201623591166040385336738392351932799839411198241969650990025717176195319687283361451639166498586242189394582415025545387319814356645430238409276465990889953298505520511208277985141698853302197122042586881881156732351314836973233141186432392854067242305382994422845711319014970558609995383254750612019418233595203341899370457720847000351773655909076405143839581986665889575666014015515161800787582754416371018890670106804026130659971479810724774277775208854947395613045046516398908789609366727685955174991749828581722456758809506504246354734932081878640719822172691643488807902442304383804541125827818607567434254130971317076216790680980216806203961915808858520000587658850870398147928892447489213736535953256117488579748095991330512000857649674039962029611670099110883646456571535057748187442451399583697484821235309449080288468653750730599463476184614408999997416018646829424688668357006031147701249313249515186956752488153778396187036483760046100277140079132301319713895436716988578290139594175770230492257903920996743434512024385013200511770974870980424069097698645912009711259732241084440116970450075819462111280329958050941687808408881750380206169386333871686257632491342196465248191557049480684154881045782459988299732679514568124307620300339137093599592272864548679060224688911958743508689011584082193075319513483672653297079895743269652901412685660485844674563294366335726601235682075153830478524168387020821965180798841874319415604165031456553287708004550402340054538743199560996128577119996337717960678118874192662121147902064339039783659938102829507894721329181490993247071770616432518699440681773500924107154598901609744470132834847538489429359532255069628888681735861978552870365332278651826374151780496087352045761572781615464291514426986737110922550201787171241546103858355882563221747003977943378483995014112028434741285307220775009822549322762910196328029813923337159409130676140657983420672495941814218005208549846778374751560148661621378313019893283239871484830782647921531519970942420060810593631119873566711673870149635254721939448882613064554178770932932375688988801395248991927915076123645719238434537591203830673419054289656373055151976405795025246381012235840583036130944570613856293600059885068516751368696082831841291928226626728587411441680433129323126111206538243572341735444615224855883635319340657252371346653838116266470075501495948050353742627795892839412171945694801902383876024648146075183570076570794504555342756104464700575921106515171197951723058017879010310676709907495547877850326751163795761259170125078509251662098617236829095097505801523723984957915485177535368504916674349649723001083018734673377274781947700960378845069048851786900342303600813981629180869606889266136929652949269229325502731737244115645151621718807712256935589195645157208950800870962255771266144600507257303540244632105318558129205868133268966193488073256636813633423404894382921737269872657469680323526380886315028028994517299575180215351546270695011306008368671560972162007803013799819566351183969579559694316688091684750164499549484029690911886888905254071881493203035947519956774973816983675547012597281991779684391010944121119003770741782622138664144242160159295208840059215420722669089307296281113466132655542101362581607751509032558762598236210083627293804027396585047463237355785479502212952497738136146626719468325756322975925886373967732601247304255413159212271288424786049805854639233858406364463567520718656584127995249829274610125313792904929178499925813580804284706339964311900873899240695530876252594033544214258769320021775822565348990087180831069286476026322506494986531776244703272962360767549810232667730869707472442440488160001712109163305526735386253396627321548142290164626473757869339503782386501369868246305954420275706647349711392182815748725225588052933341187596359415736304603814011227499734665806311222615363922679422749531677563209092628587436266428158855035976422455705632752543370615081411601802152764806186175280054039481063069213328741206354528352269109320889582463829210600918789733483397855917770252790993570501607847561273406973791971945322159369304358576026653548174972417428055594129297161577030170507164192153165918708854001190042565159015400955483001273284522507422023553681120359150699111373778661390087599737771929424537909266580640007052513386793694721791586188223970960881401701858292674842578054422025661950920626420936775294132782398889260345577711198789586158208966368127338072584434751939398245403230972480648120592599625613931443611372607367015431439593525478815102745096103139483947693281266065086362920648983672436450094942321000564498497836719599995073963628808488160631819445102240505514513094793333529336371483408988224976358574535977494443495688524063116027021181458889109940126663012563416468987552352025236253939292494588720097118030953816646929665880984873698361432819305500554075320369388221447269308673999039367775036587589629413751903971968047713607832075849187397759462818184048388566737106085675399767545656425194533034522268470626152555959457120785280441107187199021683105230690613165916110278200777593577439145444520896898312475504381970203079687184266600092295269813265989780482401582314099278089127178627953284051822944838068685114796988298254992920375102052340607388044759940777672088626997408504227671627580768003271404703450533906253913767114949546216497042932828342647293553103619592985614819673833562075129601016615607105477724881112390749668029634544960448951195198739285352624810772495459096560602326457132116497412556478871611610641816973085754669302282603618886712695636157387949702433649875074824728059915512871890847707976562035284049639948169952479508210489169665381466285905834272203377670212427712592935890371105025683366218069324301425945457135955771960742511076357784086924597446021969247597293450890738113725578581797481280606366993101354329466657101564114643884885093649475788190740898553302300630257812200007340609455282688055598304398579549145395630705148528216697770449723733955789009342778526060111443631705409583048075335219206867758915862920468384162497891536765940534350932104650373287009624524196564598309164890334617687170499460340922896541851335167969242981829120127289010096581074323326054506926077192760579101709947408325475814485174593238597564345370072049848386857205404539678040628842668307687637854053784893054145103470696915169029612624095327110489222546707971786287604443587543635115472421748480558865625835127015579067290997867132479743305844611678673056350966564237916138341111894422147814486722053470083231573989872571464610465261745367745638688519252901236441075249205752129377474083650869860847025710002926752390312942983434848338546907134574548360053521442939918631260707198724353332249358103366941783979059004355439412641103849169235796984324048722344086751532801651413078688250144142357205815751750388688633245220661870502753497568810686374980852478361122296660713206187024266221494653854868770337410819622510793723424279479551687562604563982544102497602253013424877895850795115342343152796336439151835979446649342218643563438970163154303781943954877138655080321275960843232937369322410165244735636793868347900464340002796067200807928641524020542064830828082101379094525894594410079319695052333472249970722225198397916989437652248184086884140261249849183522698495303130259333581593734782646156191208079766043014573584766279373699476106951288535985432606242963167433189101975852068130857734779971678363717506665184746493991781771225477380574467349492787237926779746069861320891846733448196015430615150840420380792394561305558709120309146665121204430921239986969097546068580192140962978346996765455656070058846501354098774973393667896971664314597046218601568566535862841100704987105161268807691592379299834497645583323784198028988806478176498165499969272161555742294160161133373607998133169259359674542636363365026585984573771463294631701704578293679091250489532256474226386781066531977249918350624482353300297497542265966861371380475366782510746206049873337180430186465762059609059846179756464479167731824417106892287311716469358405809576773049111324453650359954738623231126697420623221833602439035455496528646863591524156887092203426184452144676078344632992373240025900458200463898101055426501753601890567167356301927724818723811573967138433207570177644712536050519594729370757728466830690435235202558786303488592036251509779632715933107935003419050451470755089499521439666781726522224276190620694872301827045856047895436929775669587019192034853237778733196709917017383050449622133391990032436329873839787706117004324248225755390304772984831935965138501344807109954108874785026755769836981901512944046412985235913109646139433132895972061461607038561439548082490236703284903974312483239190209869018802714498549685433921822172086557188651586159021192153027211458827600752348175364816458984809791983311884789103254743127518459345381172366766786998560206844424372505175561315017553207209639805577582058143373018453979151336653735401148979560330946440217606337708755164253537351582066962080141461598466664245880732394367023320747358009845216321814305408135751476055121548238987452845409583615564781467151270612068558334540805322242729310644928989208605797762361582198589557705355316209888497494484212557841745591814343192589054520856604857290743646839622122731809489808844573637464403707488163499197942927234320583272127984419599788869461405266740954716509725146537875318863827541375790580319154257320575297209662417389439590625816036536769372402779667547234271559040313567278104514323627906650326580491907965612029675559149510603896638924780907097900598447131181909561393957444667323549385059874885304802542662995886140713270156534679882842207496028165925833903729355382462576381061597138136098369807295776215254276501560445030975012751331738772378027895448929783600384462815127724027763642246628013235042901552416703720474933019863367517969903841872623502588300441484415549871113896699706022785029360046430318402787462642049846574653367100198280914967840587007525725597772647757936132027024452756437363542711837807083594544592256359926239585729488705580538981919812266834502626823825718400817398051744653352197457532748980569390626240252000783415217415896115230177748077915711064821625678636399094568507882830929709000673401053652454615427373581770541374274831590846717199014772202171671898257681767890166513599628140167356730586770843697780727232438917601776011958418486905056266815384789560547932001624235286819977507272931032532125934506769834076502583427810672911288340157524675435758722349158809697128965694901661234220309313704966947473363840147920994841247800197772624861570977424427503361188997330936935575663861913328905725545289534444179721304602765225491241444333321769882615647228044758111289486216476043779810147236672834632619148560390012860799827513046949830222585862283458152392880525981659326151813704694581510255629807180062469400560765288657899586866510453751568217898166382954250873483842394121020322884190354213988181749033617131280010441581606719012148106237487927143189344636900546792922252506541361664355145380361774055767562255731126532789004907317331338288474081839393569178391288865431731496949421182593051296414335679085899405848497838061975432926352801433771953359792693064503075444355381387138451310556738299367760241886670458998130154648475052817980697661693383468283088402770124886689035081728089072771524786498451799680083803814319350919031470466774802088565833734395204462811599465978486449859119176636753982410175296958987974207679809318470858128536368609562275196500405886003994720123124159719450040561335838695124449515197512147245180564158156790602181816887133253269944458748561575370520305255618685981016368459031092196347543086331293904326771238801032389700850038958544330194903894163308109510323156828588194352643618493506478160955065134314687376161760508899062455518039524531319346269554353200253728718073918721004830660528951352515503877588880808455892529530562029436130532232848405391422890093618305453765529397263736519092149342985309386363445918903768469325211500531172874057604723079111147409893250413971091505115965889426571918327708398645614033902522319004712604134338656365511393544415967739464664519327342937083733195490884101935337472091437480955298241592948252653132417357138673635973485298101799895241896228010663949956411924398789348807162925147839554802717150229440351448322811146699525162211739419317373837382285550202700562167416413682615889158170737372409474081419007607290450483415697162816026920198571165707043872817635396416544607606346088409410358762457979850558553150962249726221396919549864912079324055052199984596656551280855808238354874848766181959476255826140632495312964459925777552361633357358361545099828558348480669955960761369168977421762338090356676504441757191204299609873522053653270287525741565614819363387101386540631395325691330646319034602408627618215382508933489869688921213532993864488859023165064447506985416347906561080264667524291461770933088313038330157522896198483970951362174417487749642800371574170507618681704235034889713289809520496733009913510060943581277115040432066969983772064892844071397705603183441523334275725912493776392131722361656155896529594833565463254008371898904749316437800622190337635996075534693770833405843697180598638225489061351247537283678707311679635979783871019759934831576701649311172762121404699389455065427199801828154783174339295373926410477982553484102503361027985179792364840916232160717985203279814305648299477759273190468529795129776173863303451545903033003717728070493192912075219075070716032125000207011504428464344434343836584468687029413624781338924946348446461831226702459699573192440933610203972247294832052541311765362156737613938887632126002070575642803497418176342172042918604011288254533644564956041463875528464682764149525318295207795870864376560718561297877457635541535679563872737652959191486235569017574910600605989405211624016587160233531478611325436224253433551887155668245801342709699818961642060643046990354005305783373652604025653634748843551949033997772553004153677295666048436207273052631499994544832661153174364258021255676848733258118684589289555968628014028575769668752820144634960913491497474635739327945582694996821154433837305631153871973313382264728201397810373488869385690004419749948526234847357941936139964075535482298052272594155819156165315159829720587565995999364290835898203867932390124322819008778143983595300181574552707824342085675974161057563512674707548657651765699351983393195889677141398486952775845147027279844443305779518101656533262659846914837009503915821430865382187687628270565804758866290461363173721651488354255721150158514121055846791103830109331704453206699742191789266334809843791193866033756275459861893804708331193898046193852816152126670777695956679847039452294304540264077605554675304187490687489803026274949572804567741479642348360110273883731027351120765115686911664476041787675930222980927122937887625906780884756480742032227161159149887331247371379878122685415496636571504303562295510160130941215567828012422787706103710514173055326286579784032970116910478975686692150189089802043314121779812424663761030112420042475778837033214619764385157282054875217105382432630974037613267016657881727401453634560319529751003056937775442260521332628034850014367581785805625912045416221689421296544968232414239242109844654307048144153370180315358028132998248395492761968228446253174724838404490705902460876281774036284199258990009288649134831831807997213769391574836459925051009637430009715830577057759085322668360494503945683585740650287483673814697321331245444507358267910432231054896349638912180978152603114175468426821153589284153164080963640636518108726979258068866892337296413036733466670814665746231720201223478183798015184422406673765313235838472917936062505106091924974782574554029654407406363167345611920090151711961385899850218107361927656592895885023292515226853817680742562094032883803158653998698876765247558476414163361183648555963116305204800439617486387496915507258744315823666626419883887403663256080317694173775333837858007715804934035957824732463137068748095486221519874518232157696439277740200956460166953468554488000775372308013866434092307485893723739470225251922534839802411980783772282061036931023725483146361774739147385066549895254464197149587040001577855801255712379144762494704466326775457819105294613468457831635897340828499305504065715468355022452749285137859648190631189536048408107163251821872083618637846869512929518729927766790564932806611507600395993851306720106908280922670150214573907360934885111173378254601926393519948313416740446701841490007362842410733181766457425099528016649017403975395780634458240784478098735179559724668683611648445861342207489239387941441749104148881599931129565008059556559543320703261521990318459414557533327288613983593112412751353132017428489714905533221796791941543332095837595501593936374646672025835890800174162423836069346112378444202875009626301823294675859021376759200605766385021478500072387444819884849934632799300629272656361403984324918419839685370994834824985591293031080443470557280704197666975393537910781082944253080624279356704858465727557925013761022526389446215415651684099128362705517681837007174978350057699208654885521035380862409592658222534474109673357190178416040391081753080928901430978575195606814829114224056509010088255787355700971861636126750830709605314043918907255932095988025705329413325689839276605726051441393566950546595930530644983162744450425098523748590459229407949890759070566249773306268882860706397694520659774979960946645190135081532036386070984974943267695725916944312031176496282390309576839918353676364306189856108587111627449437727030492515882165292029700779656542625014660086756546032054411019762490225832373641051537121195738755756359874799162317104265967302774318044175610642038946198758877071968837457433002219929090390175354893938100040063977404830869894729869767507793638441907768471140405331915646219216891575941388281999480010750853199221988412597551247133344629716983842358747804336619452740401527522280877585659775841277696513369997594178848463526181978930215505594035076230107654785576001410225978603804032629428267933367868165543102763720942291111816020332292074864492405986882679902253112812095489439076200558433893505916748048866241663062692811044060507690700860112726790337498059401327935013500176771213339350547354523139655447858969911057127497593930314711733597450949952159153497051833030857383662985641046898045891292801415520330572737449124768550385909695556166362357377992343781870362642677191163277466616991478335714886851058113965992500509575489449039458400047442537499053825000811391860453908490133375895000457974637775639754704701730340648779992381842486807779641427717057399543543017516420538619954206001274297072862604079425209035596560268235520160824011430969643795579728711100088832555194771025634556508421747599343851812317947430960753809444777051977095684147105722662654589115087955760549323792925574323870333099207774173071006868962383099577898608060070027162054143965823945027451478274527548447421729159057505455107361148786785385039095223570253341447514603026884078510002286017313397061182764026842420840399935079892286431543581047579850481069850356002753764154377298275707898203889679195564511831992263223744018104599530023853249227939245237205050038474036980650642915802804763803265146532411470377357670200194209735126809804367079018408512542197934928505473246559856857217913320735407342556550853399664631292814736388063112185473911424782599351568425076513574327416369513147362063824365930402940947855297644749681849368515917016045582425775985165580805054338109759889622939933039951487522629434604022605259797128962042230677401477285307136267060597008459569906452316494633869314365603370961288211286553775227330072612005205910475139338256755698843317542866728076583390260386541092947885189677238530471830145667609094808145549091188782532561191071253744577169427620598134968397393073519549596738237245133456415602875900450834667356640604865600725887794856672463842103729695823124406914462558401174994014183440756232802400614730481192730427300045644708647667417688762559283538558818946434493121931484506811246106458514854780225189946948837828149391736904846137358338233810078513848598037074534073003120749179838601693832894025375559759801895781099488974207220923772405824669778338087325832195834425138036154162031830571360708912935796285115688547290347936061600065728209332895719682989828630104431708775971537622076428868052554792406737480232043667721639313133757720180623745756904322687693345954552932401332038828487252348670387254336886947382487597311663416322597453895189821396259931049119581750184023450323059010382859832930482417000806356972396506561249188084984347525955362642258444936731184080208928066041155117583026532833911760131470115717580122048961196556865752012790183592256888608733914488480386722911210418592990320625603340946502757006746413333898009732907127042437254031267676165588229789639016626255689082000862037903544603654324270101446038150197522081756041907487836974769008897654792267074471911939016576465328547867809271314154875333109655267894942709136275200268417836019940289950161108983488251250398453472864097082588705969491151929280370190311409048886537225569013386373836668268405078061719979840627225823438727984369627755712006462217895381000642858558042683281962229981214757546680279512824700036136150821715015570155901697943726752444153370137290472603956570154349631420261028678767830341054649887637901540966157018847761228215618145021280191981531955761992550520029237053105926285089219442410780545218165810288781731140967447297578646976304464588862321461308414763483976396220273394423389795209419972606958025309610645490861679676257747789662445472574602883847420576955448521226191724709810678080348650549262253128362689163109552127036883543135043931441061511442665404200792632631106020057724062222575402978292741441452193279316801211304240897186617702117732303278670471901862041795008621842106284258478495224544926962519298542905720387610854294544831562815413875297974522613707975913537870906376931456923180611429206056520619308330992483491382997088755188833427304383577542274596660246851350703898067858601809146658606509076387874740774942842654532640749854884666970324093695326856967971150362167190828942591151465912995475411395857142274419049570980324950904382617671187908287733393111531580968935573393618141027013063864602805569240639856619048184049728589435605179687530470730190190501229989730563394022382900435974771356557410046851851244948933493421860380748252557487966798092991174516065499387248367853476223444854286153717421675548311311798042661795345713860450188045670132307600600206387458177716796687242899255078292419837496684886948879327478165109736754037398008963944754529013856333153787164377008382695502634167640846803622366312799696557871195946072650215541310839406325367726809357792618515993478862088948129237469336514921470789384789201996596046812715145757147499480483659549097587660606612176270018330634388856557801082669394137145019298378944280116417467987991918504906547276586013733612857508908950999703776090390443530180400218954985896327414490295102525467350863519436574242710188875065277039923555380495656675451872277348338674726948203195351348249542409902327747887821022544312106117746525468870143557269135000834691392090372706161437804800269245486027101113116241986513239322102068598842191000838780669173632355006417960532367932486064715796719141000644250199721541334773267150860224822777348680193739673634517396783382643462827044861947014850891896898548290838225282947786481003135410172961830142931967506022857937940332037720957899580389489612126684981173819079162901155799952169833531108560578283894464974600697146692246131356613811878107117829902978302756473344122114923239791424866154366856668788301266260146712509761484560797051315471272420451497032504026642658233644311618407820918713724640066594461302098420002654834109386639077480293181659197895079793140551495655816206052732838496412391172655187820432779146387097557276034877823056433480479789248609595282005487200625940209382187464620101319774263012715913343299308746633798395972068616521825554933695530201043126004257750631272178146367489723407583048054596865882281945677421274898568338474292354708416200059180089385462756668813554541465520089043880324787545687391488836265628444961119095232510630028983409002479859808627687150575910528087538391299191480419893971590984482385067589714061595980523415559282758976262511659886368681985202032261434249928358370744012630960730524131333119609857428937568991783174981230161371420894671075562076852978346525654616326337128924093805190892111391665760367184759707276336575677709070177855820467384800991868556225191659893876117140146171342065893159612567383822775651299800574952845662922845358325520791933372303169028061249377113489748226112715284345063192671378712383564986169522533324216313813375223691046851730844969618742615745253048392840469300446845672611748086812782823933274623462807283685198372931474302228621840163343246893201409956838176449276951169604493100976561310868307945780017908912544503581905105163634339708697385813064681261524863619763727079300398123978444730592350335972716900958724221649751933393296635229501060329223726766564119299682989891047471441473998963431964420910921731570896953245412148619432035970166403238558602258528566339278936555655009948037676871067648264899761062296148006858761565305766716535788327798731969295985771356425558893252461548637320490909296059790032710053282061354428981651864129593245726034075030414220676812099219440992454297736260519133534260419915698865879097948629544407499423224858061344135689184010570717301842543530402017931415571180818851590485804333664759173777210056987764601636959710705082365000954065498251498611392982708259844775413552222315006645502601923232110553248361382754702006084431037760071692821100645035920787829911907947209472530223443958755407209353123553885678464495997438937100732595866211290307705302209027898684279840779439222458377732954644217568890046446135692461164696540069604948332935137560508760344095106300189813788937586983017240758189404905008904593330729092097136696904865484225008551106960885646114825329688516931573895778098876023611646866519253643027302160660496338291991300047729305399022291460391791095044841837305384977377845115907404512852450264602204142747910475672922519921368358196999904519655051502151206445877507247394874761470322524881177173263676071211600944632622277298929948499359830354735704601789981621735943254753801263087076861696537901275663692436886033056723013220723513954360729491254480478449772580696925195007758849757289803958998697477672100300428481187054589869046309520100954834234746526904207613071948462826618201178087763907769325643953562909707091369599716322826345643025234790592878611686193695095217285223520648918316981869136904187916734883975302077394234104940483210584561979504400671205336120592317537852879580106564367588155015170456709014796081145425116162688633933966118595538863466159821124350215144121127382737342788011116171712987434830791964661539972178835135405460501903241232246186026138394140144058420967708704320043616384111658355694363793499167216910012440257415668333094044119244761240594021355954453234451732073373171328008903239757340371922759310576661565882491068393481677416809143973188846887499766823619729725773044738894170407512106077577983822031675333137894405522216648499583043851765040695834994636206140433410235403083521534927124771512370137770334343226692763985896013678345214658007368834198781079945950650070902903556803099269519224197163989908579811691300151339012846509623330043812663164622478996536359926170981508759342735619657395352007752920125827968341263843139462977019828200968822830657561416906545951354036809390374779151146997739948749475551532999572035372259958412813906574132197365087521774286775101300076417597394051714271698930365915978841013244381722279095069151586049835168977964807974149740032298918268351768829284455037876706819312693220283785383143395486689128027827926466697703405713139456607668851350468599730595196751603571983692166303937993282401706807231077297478806285555484652475189345196107363126002282145771930621589491342351929931301349236914214130451351003600500200997586308684173317914237953057429128172016150533394764442833908408230824043581234732530314624996915164994946937421640230170914251920832833584376479697934577563163797311504197126778585275497781667022412394101011591982617999922316590138980661869428515160225593623134615834208187961510269701487672822012231608990288307552257305115819219836435289471506286088549543715598432619829399631086169198560472012705542523597220458866501068723686162658710603208174664881404958966617759822926264505872467674661296656290138744748668980353659980767334262841472383852945081031434099242678202924722160760690278633190463507290434755634361147775611372831056707796719754912463327031061789180582038872204108876066049387958538763310190131193375048871711123470112017737492589547737153184859883161405234783745911057451129575927290566562385822338058092234501785156579913019141198538658554181370135421447838534598596328640097611496575135104869764619594049985976992542752720457512975541033905598063648993122553856643460964066951229895860340753212550134531154720896538944656687572962765982299395212624020828175216244340368542378731435852692301910480870424664725793549359483901916170841714919830126452107146691831628169587197775467632248630944239626126590549628042143767878176996448413345363779917619760904646750537011776979487807119072958511616979542879774004793121049721282572301048088837873320839986103631761661533927255436991598996973705223170071148780070507134648000392029116284519431587669681282345826049883220741105133626570896598617921717957330814799929748483611570628190699100609964644770052895021298485554793525083955232506327352566134357460596721847669386687638366864723453859701474240508520498015709370994664555443721284927579720862849721800777462037732643809444408373724229983750393242747072942938939920107265154039145294002568965523482422114486190766552168652291161828910704671836407522091045003924108375180603957831750797754004725910217591427197562567822481061825555285898366921318443802708290091568723477708500977053994855566372567286027037165818260056267467951212799506435002700503281274294434432117462417487368712834534494576105978126807283065415236348391417803844839849397341263713940164928737444360526280315156391190023690032897026436469279071360749304104368896216175875853950198368295248864957150467973218886447339676126963650944929591569734736168171744681094282631942110450848044299879366220009210154777328648156998502336346976277184361060070274828552062341944533172482134380442367863679407981771134764302413112913570615124087702999594836379450039240931271676826332143727546533376120021326712634346865133275555435004618721635256000816300817420917193853150030478102718729478613306825624493962601804601519392258221462249599163017306195365882254414859728375392808109796384463350330319275743816262245615607764721584808361088101868814605393480871164817436721230486217400748235688896874793666600135283843459900051707083484155394489746284324331090043651298036007732197696660949675995589867187215912888780482630293718586789448414772773118539907256114637846809129464240269247035416230171543406770014625454225755447401695123659653151297513593245717407563182881033162089072784966212600937691489292900764809372606103057787784732712976702986335751826103057949115901231401739980914427166042620908182392901447034770946723610583057589644608278859732786033225482945487311277682122061218337721646874988298955776733480202206567197355584242257609421052924280766994229283652095420906031134258440189808733464814696775811588988517594711532171732486042442719248753607534511546275519381756183130430684626287466646166799880567807043987882406320548164513836416876170177813543278111354691863610593161297851000295257579235265471965261642534097086777365111162397824134564382509221875723048631602795401322734082411901659378919935996415183387130831057177850329073828232508744815264943327302428156306374094692743636842293741900245558028611677207044509015915453831093499188559140832863033538447383678036930789449021919154736981782262852464983039322019535266647338162071028648060843863407956670860616306990286485878174499841671737987544928075775223371350037481075095231077297122029895081296664458394541648235220704767353694996018365996935723929736363198196940848695573815382805762720874082512141744422909757668548727133322280923900394898957139726871410225206972303323199723577429295863420308406727053837564958144983382680422807972281037224681689523839090051439725192122883428963908416014395177020338196094109719920364006173040347382169792921660825009534709853498632944808794560204926065078442354503825765091528082845371197120553610649015178100591834430299732435061138611594712240440728989066020312949363484196808782602299153578395934230292092365372371996489923898436018567015953282982340972315531373942979190106349395388736551017191161020709477341811402027832492111502428813360059448863133010830942396463288425292050708193889805374603881364248127000623264290717041461830202085723185780537439063874073112348277960024157745549971994814861555168365805764727417236906969842819343706500973472914272328511158110272343464661257310190594052324254859445338311523862405608831355198126079769572245326834848817955619541626665667050516777557560639449241183169524897189408752217024923402088172827990469406327061211425461474551925469655848615918237989537465360024619038962695134711499002480239901830735802349992143548753569097518652796485598601921217334187283498424778899056134536983265169025944617711577189286649941069946753948208243088184066824144490060815305300628761457380896100393411958311659904379099912754026788539131745683499126652432092235912328775703448968725554028892048549847317965289700560236819436736055015757640646379618414179317783324067167619002298167096684994338941406557709838266682123703134205496146206379431950660139119588888206355615627909146153077708551802491804951507813715754651340466159563353734413366653538843937885442118097898760509697435006297575249554435923475674487013563752280732736129711861424867773884374961447747386520266277943109811507962783633747533081124453412607647977370511794528112141126151758680651580367347143292473669642507893952307580588860792715575965328355281608223410492373646429620018601946647012374035076572602125606148953228583075454421592704541893290296815427583748281107732602213329214943919238411633303363472331472717039313363730825984534485581074900868460309911002888566440475726366350896002932320246305481501391322807289412210734210304687918186712233602998803730720555230014834551356847702874953756017303376903139921759871038644973465196845172139486219474593380712292941518466497062096092898874530787244204068090339217152680292338227161686297154359353824421140629223182524162863918521904199481583925220497081688775304984227779990822426877757355924149960358172831773415929478142661851973705196992464535562995657162669020476659447342120114879015606995208083780386284194218189397944989569644165038317012816821287877774338217625115427780948279835033547950728146164941537018694512869333577247039073084662122216371629086459372145674638455024867754658582443666482392844178424504693193857735148440992738406646634707606969625253987149268288027319192859524089876349722573527673458379162857771319243281898554530238827416934045292212167151212998554522856851218324007989317214852355518897144998305595511505885233706104096738469482475194876576971988739803077939228869923606145628598921697151702896571500439209725237917500078762350900675772452248782599279620517749400630495176538008960571553808405797649356768792385019964775250545240354379574175673495802481545735741642509966795383620209438179522390011470755111828861684173425442655594186719147411250394829203540536617712739886748524217211994017641220465888718842023825046717219981671878159780692640992713903452331538942090703945206707297101853820902088699445561223643818282207835219853824988680150309417692174069652761415435927286058976758022257776902175946997220058716826366595624323192469461178624698101671810863828597708420984731056542306932763854201371044248323754224030959945942633350408420197831485508696320528444324584670459129443231883718954260131760868480277324060925895532995870595702972027890940479868252634806148017803500433046246024173766703173512736442467334268642720820913319792643504646298800944560726981013154522388476633124471884698452340121300619963793362699825381305209700541973785718451725323334111931209441099074231352630752929552234265479013781390184496648205670120069545759053283552125316753963504824325010845775672810758890542375629343829677371949566585184316443788231764254312179050697026132967878236610621789043043377708758500299469260870318825055982438872906955740508151249182425970582247747133232295613971898893906719305128556857101594420429134299821284643973358559142617320176578897784923276763262569605752751276255766042231722621780357132039760208784251791536832172610645265496894650954157771829473896031325830662295974827239325254659292908841855449002485175849411728621654816180099980786373776828249526891190753923985297249458350068294879117169637352163028979375532087094171261003436799770923101052220157614994902125278838003274730185178172488951046822823470694968590968477459213015443488967132659285509431918593821856042074774665300458904157061351456464490805155148091005005643142701241776305784057765691174344681505137105810334217015406404811944398953234814711546265095308205043693438722362282634604572369789398358922509744025894612811241784956081908919354144760437619885340923252622518469319184116584405357175016352464589519089137544562069469751310008456590708807229649539695310664400966652252894526134366794875805550600968054255965552550858307115835191121775167675124337949207047557344095562156441582864811026837891221127181700021905054835801238461303186290104094018534731521976726816308290486397867118392620855680101975840733463326922726393818819514061720512357066995620286034352404484327325794559003643754669640741290084555974268229517246931107087709046697797545179481196644746261642579193038954631298227777880467020089345170676097800795058637627281833798533247705147084343807101273076018458362485828372264268424068119692689067174130974653679660198066311675818086731761426998274903211480537691523732112288575187516901642846645579290869093300929660020972821083385936523328024349114069426356761643262178276329223748051920198629469711536280484635300257487039309058035975844299042768034925994403065696177953545900590700403259569273090416348801205432832688048689207218712267047530722645509950363363240180044720974621249435754641869507865273121261886490701576553643652711740820606097365567364183035107255118831624979864442071665820898136019444122550861329532962934052809508963393302065387119204972026494909738684984117765181330776770744005921087631640552612403869951274370596600307637613148374190985968387448418269958523099252627858693891741792406871126583255384920951590545602990712942408052842659779697518501349343079491132442822779003796175831478885230532243584241679088525203804643264740763081113265813939925637242065610665811842064420246812854531096315919560347862537781353369422771401126014790220435646030790942901759778764880895122847958702414765062080132898593070071127520153623588848197202130522748954888554775954578825513757361779180816148763773036564454072095087625431442383492553824021768203065437973308551947083024599983364410377873009439893696749848939239383668804433934520621840911802704700266582852303016228681125897233406910334999457942376377414177403194742945175727466421773671520612351867856061997052556428130348598200429578487514717344554623615662247431445741549161894861708841079487268164785172208399566021657390769440547211979000980309735120998257215206318625363072856743365465227730480869859808756570615620370870337458632891780285156756249543437799734424117034820787935073190653684319834263057478866303514394604519809440375714467166901583834588552012879128168573578006393546152261003094406753819706457046814747198249414998501389437019670556931901011747400437757192091230798673585128710709606471038084873641301879437489122472655056630617927969716130161327914655371840252820308808931382742367212469716411101135631498820216584286492593147365901297180743567078444148883866587565651899642609448561971516209387833718903154368352681442253863751583970894224093772621344567576125639024054018772570066069756053939329019583608374846557226366417673289546127359139328097327375207499266124325548355244025214379254770509081235656270430656850494924239387369043200950544686864545993192479031581210111865516563180844634747804300933502023661583312415254430865630589555795029641327978703531717335235891814576728731748113541906459829654825144687752950666242593040195307483300485620712103258347075020901366829502449053558135393862327696685689427038031649491957024007951835457850751672846800672852512349370737750019304999131318369708152218062039090145750375744719744883985225496782996902262778982620064592504625106941925157485295140950663857222963641175261477327533669677742526984211977758482872194849625035410216134149915559767644057788555899419506307716387196493130260097436955526143976167817839021834574794689150613441598192529558589850454157513193872563066337861906821618634138917492566051210431398080074454449862067001024822742565862329298493849419439423998181779674054241690836861636181686777235790910931407431840132854850455067767562732622311491384300375139898473234885459880820670206871071398232679528718427073386107267623670768488043594413888167316876853306990121327139464252321966716846514766633947710489899390718781679628777052442822180485212929126232122090217241381615137094241987649552469582342608633412607775435534010805802770631597203088807368987539126220801804061225349070632917514442413472893324907835592340784042375709193339687252075382283860331473071535767623596564709978089971416696708833577561231562465629575991743505073079071795766005089687781066259295928279498197250424624477288735809898620254009855315125632048592861728588490993618073626181631476974159676509916619607456848523113309169202230029632236413645995984815591638310601104358850679030425737693601977140619074336829987104127406505403146252088325214681930956383824013350744715506158640073794764603251344659775443768958932064600818660804470282907933054172240811415436202584490119376356930291766119499668077224424666549287558139832959239639630934510596769930494805115549574080549278113594709774237122048136355573018119870577292497635203727752427461222009650842841279309259450862890536867630508711480151104481761951665524027105647028546476561294639122117166907610210958686165750156592244209167185374705505518916264738176910022270558281230101217059572629187538379068689334332627216861431213821723862322497289917802965150078102922936340241817367646718370608040387308769583747069101012340218050567189757191951519246310678296054520014340814995958000051048664584968451390863853453584475344946024784741816353042149891491159553484286774710744096367925579568649746490156173342266985913706308275245597834873055284571775716859892005101314079763764840385535491253405033810181390567736829226820706492312628300128287202372794451329506765129827474403686946655906967678462813402827156142096297021554749638322651490866036494715728989977789092588328907959586663597568410702788255746996192252534351007451323512955705147820984011440842966277106941930181090703039181218451101012718229696785865335363179827855417594630013876301747814845805775787627938992984860245127862292552936487820680302164738615569692406526342718823716372041036978058884158853287351997475934099063673542227420083854407994609113534691977956730289639024963462626123090097563202812083658100784966002683012176547428509499938335440188090142499827894420399402241493729177503490186146326490283531405366591109732104422894889677662087163997439810778160051872747788099608872130680313459281334332821208994245025933724018429762750210918852517917679786168015324174422284678741898887144446199506085379481574823241349883064423245193414120703327091322165617236292174095308835183171121591465711167018994539322933129849168085166683484328229781954381609955725480734729054581525733532271676048063016585909047565304863141567528302706755429639779668448912126146271535709495943843374991333236158486210212996116755885968443565641920155399295311185393804701494265514290043055040715132559894303226672487307767677782816024437312320165562397819839555177876556725050674094887744909156685337741438443735139024016063268723151913578399281834285509927741453802228749358535157811461772021420310005167771707954838617308174274386236274766818384768740022901581184203740802402031562425582214153360191711955322424060974135308633314101418787390911306848683607802343406809064436779583579320935427438532070897454357915076272418594487661742631964547256078950588987749107620848857338933269041467170964016512763755467781529424418814054762094412298635469605051431038634120976536700961787444643934577135119391467238638767738073911956105915160685106584386810106083027891246091371131273781216968311737330881856180689827370968279073038133462825766064423366886886086991256733637271553873950107935114709789695523071543966614097697739276090985184929515894297002862586627539026533939403511384579262373500039904045073351816144238392543762219556972334714369907492042241341098113647355632876318838686222618711220496727956696026707366211674055962867846168679927284937921550534954336909342388612222501008748031418872227933927428483931239578790402673559885399263994670592978741399499474591000690355509768331445347552867030102886737920136759530309814163439393889372504038937121901189373288615121670380108632553313963077243985233274751273350538254533029725067296108342682339820912439379895237214487659037762602921934244217306049588037648373952994338996661967670704860996681997506722576479339500594324572766585651991451006705205502187621194455454451300182702633403937906676524890546066689103580727196307708804155101443024249155773664980488716662074672358321688926637009192956320716864772082024494203571494358710333294658165999157060950368646079698913178724577642079294727762105364571221202988498320899658961246091863088646000083416106837074736207748646627037228020738585571975788464304947297556738780153766537058403104250413942637563940276902056398413054080051517215856941166965763157309235047075283982410032719547576609575988296833225201698992414983714731219336368035744587024121093852024399563566593493989867916923931378842450786771606026111479054584847833425120412815422169876270236422171295712743671415536771916682076802600095100904906593401746407047787564315210480625214852387553260604371189333629856284417544942888422066616346305382365541037695117263134220153826303123776762911998509538072409448394899882041181707035838941107977707010589111996059239358580909573376293791700483865318967741009440895445155878833911053676209494128097233305062015874937391588939507769884440959998588283637230132900078699813664529998589631174620970152301134861820502921365977817512456137791222487973928460089370862965773325994737955386209916065393109608608161739150979121193311763132379915075395740926098225109266697760469694760104418867497523319062073038763906022442799515521143781582733495741345335114981437978374434741059974486920994911256917599030791730797202086360800701525087113041145484505385997846203774271193776589511252708058937974627183588355520283577803443524901643078159181324935074888656645186229185518022971715126943350598655439367899273349022202055807872829546074533727558240468041728130365122354218903341963048689881842882141742673971454455729128035636909830382294349079976411271337205083086618234608618532103690551030400645042246915047553975148007977823225496980960970696821836842330771097028914890080486707784666341044514179161207352156572126050362579308759594860099536339943805366133672444681449950194812686461126061354880229146624150492779170493171150464874752315315754112223575504497040196893796490894223724936573818687123456750525440833537987529832929294213777676903573592881786081786722641856249331207819090699914027924874126372496884017583322682000132474780283636505453185165674620927430818209880862124983767032579238658929788363869191683317249484895207233715275552173934648175397792311160941468719184273495177263710064293201121667722605374175305000032378728192419779085854056224072473905621125239299289148944658051367276432125713569769606867755773015662599887666237340913776144528230455961438227776948572271008496933274747675427560541021710480664314516579448997609349154171686221246108841755645420594579709997444038901955649433224392826650751871761659959642604391097435112824804963930065116018173948662211703495294153992124492072899548638676986280386646439932139017959584651102525323166519501031456945672760639394568672096286605393984703686099695629278001153863771549162780661914814909471222432726184091891925281162150550432009616126109704346794382448750423809405160190717273800289763172752673440292664711784255820787791727212868368593608200386492677831613072948469854861896060438937094933528236099606872013397818579847490065396148844529727009403548826849820588141744452592950425927794381004281428901139435295528251885292869179981145585166043980641484450063397503834265739319091255213892743353493999160338427494617936287720346542048066677136820648118341248355449352663603930284479891951029555632578183631485833391247571528007421206082570452497426966563775472073964369292860203212632566869594984998105049739220990678518724250582260312791005890792488421151332473378228425241249905794540475623726497778818584510439474970763862407323363760089576786686595104928114195285444641097073031435459292843560298362950865558066614534010996004239169261564346820421906377588991006997461203977244176339934304296537760846255701346002249868420788216327910960718062836850370120181169590982185378857239351368089573009701379512230072585862054600151143021840362750885330609686886254325111801486784317973337442235621224956090634043299290970567065620265821359515255738575987127908373993403192214204738907839762632943879672506354890843840358143653483923477880641573563790000336273211316553004622333474553352483976100746197638440110006915466430352697463129324682870265658191422189143374032614852935590283579403295239577950309126162783292444907747059889241582226963484798306963114908802084025568477803869910947502237746861146960845433589231103646287757872196939753403697873044296647813575743030146415663997391982465371678281393899818564890249047221511366950614127603150584633632654602754181808593397355087427759370317717313988408921963507063545822567188996351865664795273125023581697430837999950089730701211722822038940402101500961357653626025808113277147745836109977724241472705200525668568846651788215222362040619155795534721180725598873125510521175251511166239777962657310967710795951089083574446788899910766535035586653720475045162052183810042766885251689144965636358682572084555941542911654319100709913937120898695663567346058210533798681781461107224420684479679080550624433546311841570141633238596230764097143811128201864976804600800972571495155671065603662059621902879904183758707411330787265313839114341284720592158540074343655381920392271208711685281184888799103800300506990483814309700005868030912882752190846928026457734469247515687043693437113809365858538203601339933055695799847177062077806196172984418952595442437959197585947310445832249830601017215253255425263799830598460940028268832793454835354583206139295381411574099968340979933579874325943009635952482063382486040687687062725302542707552943637742990064113547145866576556379749222354360835809211729738103283077179680489156864826408634907924594793669989491459745504000263667392944169539752491237663853055977972772466105605748078469384014529894481744618548614089680661404229059890070109335267251313098693697387087395231924162370760596842491340308804249952946662003898182257300437658689137481939094410945444890613294080556635370050459852820053722555844529307578574249021921335094528584102689396286102030434140914909178653210153118204293011158679419725673886811061126396476427514086235128408702384091308499406134733598775933908104833959751681956831115350615161167462710439693365373559115199404624912792853813054797613948824575684234456917580677585086628310373220908395360588094205258219811941276702129818483804223880068304268532603710600564053370774062712006281225969202155842556728280594034468742829978029966430234048714247999913899344174747657502971508187899032371167896899396725126945806276529810617964375865291712768536909800957195586286553722816068766072423574710372881520778086058568845808947920702209618755946585553483788265537749069207508385412917517380025330446118225485808449809865662887235349483118221401298921921827057531142213562783888411159765331325507639144991613566990562053324493609788459559256506473222747174544299715698320117435775074961066093197464109654466128451679022276953388149855822419991381918862928001163458555076177885084117221001282224414673484308397732982816025162964237958834016119185694153139005191106770254478290116848105082324680442536717239304931057892095822903937279456176619116945283681169328406747521757295573311454651295723290414246665858572021709146039604500435586257321930189058266164952291616151540768529942618537034363845573064210572194153299042547318729970340084826801474431945581342122770376073918145415451269688385139109336168954965598700293449817378300210443288987727701454082483988902167111118361452847376494659217244282989009097227696711626698297903056080878730668458363181382103196741495612777248328642057740976824786607113476447084850910741577529300753896502954256671419655017490338455896363725096911611615584305046346166586001544261539694115342773776081212960232486220097102274189878462868942917911924508636089470436733515293614632181898332513172794286226109013985336563590485325260855596093100385360478605711819690122065262000793511763507929039796643759520040691408167377269891479539359665803594255753566040565857833159310602726474329148548570425959825473342385790071371309978552186290444684116563405869210806816655891958615280956915469559189077558201838849676991506172523823157044798468355061499766218854594279331425211826998829956728284770906841406100023230160586358023050607554459962835191392206119881336585658146035822458340601545414574337176442315609002828551118773609509771935942377374869874273006878957631800330409469551317203945627676148998275462426231757973674710473486683326031857263806761365479478781692141497275982171054829304205383829328479354404740624030413837632390725223368137030925643615585669265880393313897859737544689757965062498948815384658927710743086954474598427794597358589842540709768793969133526986365933539124289648369765819046241933782421004332595094581808222524966111166400995897826257226766045654514327841705692438892611546016222553035683782388026032500880275868334236067119302979322416783254264234314822128244059408640982121934196665946903699238568517777312549769860769795875686141831888520970722137428720635758423097405587472308570681541006627895031706830969525969335860217459168460477361572561294556734320177260312597136369759623786355082201600100152265102191745779334213830976619500862524081725801247112349274069363964976862612170110086840470277239875880698222795609188379976338431741734770837858913457991616602422716039024654690573538825591495338305800093273060442658285558014830220071787860086042458159573267973896099881251869872792141574984382507092496558683062369858420088459718477680988434305101547295867434022157963125447867962171372322995527513718247466187868390944254294407574341023388573192679570479223368731552090464273091048894478945573496172769521008556606249749975235953968031675574771169889726788699931907384768412149406474003536560918168731534548154219713225276610341702418088262313518027382233472628304403018830288191578307641053371921627136643372347594115500988627103601674227239402624102063499844345184881282881041104786778123377587141799054137618950366988816842696211160475350281409151977803559248125000971282654385354699557542259769243811828830874225040694677897238277349554850860845615110532770972068816913413791724572107728710106991390771910484510497088940738328056227168450705511964360327197505398926742410493452026938955299639661303123650384055252537115965253002742475184836359037620830546778894671647057641015286414351483029855423160977561927034192135785152498694135844843465265310345065991271270079369721216357638969574409683638616661217829152183570763859532131750669734869709341005917260134294105309463243816852766503115566028391446306247158055681538303380362152072438704191227580745014709792019906706257631360099901622507084315780314158726961969490306927527088047440892821976293924733650883612323521738307557726948847011320726184145476024776458494306365877768861124202048222669221394366296604831618305592555117270158190987027172518486213583474431445286203105217471811083104064162843337424475978565114272296471051727090855990755938100987200938554523037892520938124367218830190443374864276847302957254969457274027004519738086406865076051425018266909831353878107998695493574093161063258420224183845380917808629574947070404751874708360198213974912033464098018513983160266758687217167757322850195480328083419445268305303374237913018784470885441500318852753453676749596774397562519672550599626309585204853315750766718291650801300202676284713570064485965544721456169676670206056392793008887282693497348520700268407255436230291703410198308160128485591710269171395266472600935717722301471053180544563624849691383385044420707395040239315047563417680177369791769279506946580500607277499944290219856391944226358400035992118248138753109941356861331108513796619233443823647693241280888977421028286970930739136983747386739510033527070295024270559314388719548812696709563446027183542796059275248591958112395701972186409462695365619634188001851720818146418349467922685964448654311838139941348410844022888123659770350657987007573367686859038534090223486761760715398574272868692455776320341321450001174459726438779189764320825166418223336489971002905983490276699996049652065286466131931470784811998781199171975614370342762771814355173034534152648002497019505830883797071881108657674819705506748832820410842304210510220950911800704168274625245405744659162731465283582377600485665082947898183371502821987661159621979513221540534034373735726176315337489832989060533342174341516629690732053223944051539130715939725205346777529358951847600789283445350139532217481137272697054662762819153160960231915434340001973185094735107368814763631031998544887350551478612131775205664059212167087039567109812379411340372489880550829957341900820747731304148089810756973899286667808865105487635509491302153187697821597461128868004058937804165378517957761693363466369405767715483417329050757265712912292583993193777026066510857614062416566118781672281489584460392122660799686837901795306986928789438377667133748383581834903530799314507637723600481136079919700369551390535686988714122040511958490485577567591121662769291770708257746537929545668900799126453094272898698313529212859066513369464801967996891582745661653214216095653957685212547060984713455283096661410593709167064347281850168159913669049644096759431934773003984470594730352459255432129561936096823705854071343501015031605540276501749826890902306861337522097685829923963969377408413405187078206202666021077458770124505187888292236235216104086624126193243167740834172368470437014813964327922204075998743586178184319445422459530225990425149244450397365132417975093858628796661113459285274121355619809526744591759352122335815002040225987200742694215898165840731450980175294834011761373859218491587504600198327742257238801304562647841357662664062522137492787893870594329150312846494677498063318760208800585764758102689243500028968113369326024825053394861951593087619304279782372312436744003688117515306586978624971312028937293246139648299416079196772138622510223980496075580771473349756600126404391529103121121169464318495503645216426087341385084918820774489154046864058894153703842329192849934907349184024937747640163787740839628596726548939992546943257522043971566529041637748785576895645344757035836842435736402439005318767678974977787314804772448672098626434595789251376619337272850151022735809924545492736843335968008674784066796406341866742533177074370659181135996326374463950220621451608956562390620696904833508349169539985004198596825110490834730685389156642457566118229290312427013007031552098914551272343858096998988351427106697400061270048859493816327034509401146536817317159545484846114569494621191605013734740437301547350487633217873068409539706271627405779760693736480946757079141584918488653321324637220221444946696817314806176254809262563100898599642461720742189181873792358523753569199825611462236661266540859067979799383357413474774013192296053041556001800475882113332606996172978784324672926246758578821581639539254186508939817342667533408294636153863458904189819018277524099049610423572847710665564606286439188266142005246103668190736350939715667065963075129167723913163744198325679001016516983052726544646977036125890491755742156859221832424830882660989535011034483093979862722575189921787842652827700037793875833149273075637154290960197164626324469524770261919804750381757123802348692148630884940401698855930390685243829741852390489768462454306444767090990022150485853125888940599578119887763027306609012225499701790747765300572042559872780110747754983091801757088729600659308086862864842909435860717025512720416941655870996386386049130158464504629505164024302709212701231628664184144196786718075281363343970790693448940622479195904609799700691868980772348795778743360400855690897066054987324815326611409066710428476932055347353394758175550026406218867969516733673471255435404967129628755824981515738085829804524939760154617565827225156106920462528376029764603208687370917340794300147660151704261853858355666725408979422846365168936316536754879132990923999809085639047231057644086710976329409127298389980433476908442477805107245163794623143482860495750272237785537183348172486124044582984251521196292288273331149587977069254470254579461015256181936868138389326079841055479459418225246588095313192205842619406851100057501700623362987331530082615933477496697099731191293190823390397854983670502714554427730809292518887426549123656866709066784890826663853578101568683058088642863599118849370010586257029344069670462702645601699955633502576852001822446720988624195454858218359748080030026217035382205730666658797758133318113717952513272370682278530962459190906318236990903764657766078799053460020127258169391345476083289057935512666084398750160772114593411545781353722896325165528580353101391780815777576978458255226595056525648523476433781238014732211373443793439306373301210656938642924211256880448044685378268163780729920119433334211714551688475874503271534248155421456715946691064989928869675323802668603788732830859425003686882852558126140076338462499481352012194458523441012813132194489835146290159344342682687755900521351978749632302313818910301250761401392614794167570160572418935037770395112849480470639829052347221161837559416268310200578174378407258180343197738908838059140213791608453552020749588984239538181551259342916964798768006077678980227498063591180850925532756946018749453883621459332878935084120473975022241479145094376723979290396544290835397422296222307600405183630380000385204360487247762844889667624421794934053801901836201711175520847083506051718205939116648071735339751244690791771735465698609150306896913460374187518661262350630907008776447369568376548731208856078994004801035347885505009222632816411740816631241163283866443963020241951070294204242251873900961659847039727386882836733633153687202004078018388260644550360737682696492030560978685243001439216237928878432211037698203462403892055973977583408049566160541151150659652275362916956124861888094953996822544330112446072405343536229447606620826080076609265331794473419689499057422671883952037944438541720310084633748415814092424806582855649400422223218057152507884472081802544597187889580909075074211838155457170350325613324901946788923245798677592065257856357146498638798215738124102692217374585369310452734066657410554749097632823146264703863432012286331669615790852727289886861201310042152405978965255314170068669237619774957909612033466729102410418195582433543226845585579707926100330959594050890170308951084687665307837968959761087934689982932458616447288574675264319145606175061848306290553407151664901557707673427536142894810605977043326737460019019907617109004998276868392504022486154695879167256490376200900969467355123083051883045886010533254315528336817406642025778141392653142005905852017007013423551041558874140980707413087835480508159011045757460647208662906900810321836084054629522520161649273552674209569031795008086116259855377978009086352607443869982854033820788520722469156398247567215789867577402833345608050699819322488017496542129143996777602226112463654856305157477692501446785669337898917949051905234681119385031704131456809812906039521829690381194819090439421206511448090160021727005432889542415057356656932204141913581441269815916957215596669086026908707222353867387742552052448423208709517029139488334942303676392696191143899698528424721467662254421508965539109033588365949149660042522288529625736646943315344947403122863626808243180318979398426766538831741242642821101099941592387847413581454928701382967801078705979840809290663748650168780751693744311046111855577970364346371578439255272159265589847974228274497363879726874562436538799780825987272195938097500072509485222424941872574402581119931924474013836594418556982508229007331248541141785590945894857225441463555356131956986499422498511938112996150981382887680623528002392715681119011847739358070814213984994753687620331566812619898747851604330338564103625641736691335870908013370315602265005474598035687393649491524173088264578596465575403068130213202074650656089185499817541613509589395550546885215029475464086548691538383427053738069561751351890258784175758509319358433896735612444664579996402364005752330901724515411596045434515353420915266245673766033510825105823179253860565943055515776572399695397180776562751688058724018241430377692327246980079883631726671775864543254324642363743413402130360624710610686852062632562336529910358287402737794230697982286734775550109352010852997635831555167233248173617084097836119369388021731696722090942982924776176043188582506979388456826428347095935362086098756169287533664091770787471366564880432118323308241765837676879577264824991193104137707174224737547805310997233941320149264055462931063031196908956267930991722179648829893539592395172817098189308167226201623505717444527391087981640153796886720788199135000589857602079009569919855373955118177162816152347408216753704567659208411282447528269385458837311702610545740702755441819876811322519198030648119770528922630226936569166778003240477925451469899876660155805428830992533634340216730820765189082280764817717593086267013359344453937386823941749346988221603913148503837912634957384370473531106920658606757375492113869182063647818169430108067356508374225900767204380330732296307884031695401268820073478365047845583029285586572370302864472153227698513991909476770350157143911896917223978165177627976657524627713141416922755683165273733017213239778729806523462345055012098914045965504530585548318412853057756174499803520730157529216665814239714995551037716090348595821595742253183741198967485490195778947321690927743566463850241857106129898516106606281707498079419208065503771447587243702795095746989836006006637485121791017599649175162965114521086652642745022745327449645643422125592900734488695913818400746829345312655750501951155326790061869055097241536192745063336776729839256614438989780770549017439437980157246731739615540464363151950540610151698836649470145412889733194425777274074013003928478969220498626901004893050437256067672687743732530570427842673602427172566391278183622528664319001176152637574558075284880997217774249210030918183222826033396970885950958252543103662982379323275034776643477775941973897364370444812233453120914671602813946832910471888845239600104767524297333397873116476681623170305151356333556742376750424233338847763224155183338813147252480347495930165951912791120010506361382859904731758717919953757795479688533341532563507909590655850280045507318200227180189205139380047010297087785607996803275171353927821769687538663559261446430862785345954149171863371157655072825650373233165429638898749553757803678435480282528829498806986106198928933061415049254463785311140986053045441362916941846767966537575103542720314545153362339240352445437655482349595014175519001976838831466487401307762353388911546691128901200001153265569724555784158059199655062134367145532842551068676877525765675814169288669012182637748508312293453663082975971110748732809479826229519788298687612345783762277243857353102037045843405014027062375544100785713675554955177141679233594446016613983549080085578010377105054899288390409887188454509287163033009076749716370565581414776305436537627235311630437581184537081419097359148305388489681176261153422111710123734910994420725424521611433430681115085384039365597294309142171483529057408138734045911222163344390235994791931346227764916852645791832152858994158271065463923875042380627691064104822230679607370664248203274066457469462492384705339146138668348751825961032359674165900828412232992912771606543297039930825917163683098443520612805530249371662780251834544827357931488713383250015628332543968022674479419803965373278797738959958678496763964311423758642920239220085831978833987909644663636449151757570860063866035609552416821389945728394780010290544101237409791053925756506356613389949574552369833583054426444121879286079641168756296901592180648996016018116486544103830689753207586273533750362907960819557506739488473267887264988519123432352025606608697761585713616454455850550822748687969861431521048962961725591197211543777092168938422171628615551203429929017164217823706099022022850148744580081316476667587040875429234989627329041363794118528306071709639317898376257377269044125785844471822857360940328506937496962064952294396478738105263939780203003062757031677215139220932896728163442100399485813314604388074342096126826656822137038780702324307545526065632979222250274176347467011544214339294479957675352041645975414052319006434061887819926749898050931511637780871993299545894900127654681235802595334782410725420622463467522338495510913006406651193589171264124129942059724810117843364818483460982596823219235632653604969156963403017536657363843724208177071144888176773892777938026508964919128145973833701230663214197410955630166080171577889417201201870215724129574885734671267124386345473470985386169213326740472397085889687161198830389061677283752226273070255502259673151936785179745786142557412022647908177747552843165063690769166202786671105942160560057276801794356164510403176255651919897392017395461815017110666518817846351772629419371282406370938577290467167474404139555511846715351053072157286829272445167849208878223005843994575992086374464902629055489450167283215253693960440768482838944725988683230733009382758915532610537922092035853045595899815967810780832505747648091606925229221890567877483941763298900171569141055493167830692352442506153248008461157796035216565368137852656281651467444993508215946579714862278491428480025059091791542667410748303409613620836312923402382260409277732348207103922579206440278372616211042942435487429235657622809119298739332753080720340071524602394107667754074701073884050257529998591610385600501322976932540965271534290522157388701843765167422585493715786825825418484639105900963660400957831680079519026484745512720395171789884207398065284153557843107023748017510549053312587415413110561703995837909636889942690721688151508584309961928256588041723121596583518046368973921688753085307974462719628965105318935326469093360409735044205464706453693306971388167270326239723667532499798411438048001386415337070158828016638268191149145804047295113401741746272207998432079279853155093463964007806854862568998600384351656735410125471265399450726648544820814656083310041365390805264583307559683910657880952743633211217891457638306411004876147113109629556686901778168257545864435894626650431655766949036572246223200772267690326061967137491710408001100636717582947732288899911210411635883087156837020832723645803511559782422324974989247335398456217785270022988810013914070570917276676264843634016238956866915283362855673549487381032484391886648680015672531079934671980215094670637526661262333161521641133873323113116220071819133626055839740143051570047716002050720802958310133015787032192354225111355492239708418024122457482058389821225923843764150040746486148560699739350329115327258475026841022578734767538067659312570875331354096029550487311825472426664902291461015086137735695055823222705172625123158251297724060651052004912110827671779638124872180139489780129014949477763704982585850074841870618045279332968102746435427554704156989870543941006766065316985046648066572654250158465537594891082245299370317565102054658479979343117107578266537815615173619536438206408345366934650044752538032685045005407573341215147465779134734438304623352342205948049013763318497118836891144012257072053276965468215350496102940667966297845378498280053604989957850118097124976234402489310306148015927796690432220698971029166192819513446656117752340549619364067558593375909751754715996260716930321210021724601238342744681746972480849008930671479256205773766802644116878589110789047262910135036497993601100069834663422587499420781811026135929541140575357429794542037192184362210887790491444525479791742885863338941675648565424823773695450313477408133777571752456610964099951213467083159003650690734633488292412608742626966966924059075260434094004858310261800910906273402153497623635458437677535306056122650110198726511157939634281151563116907794509512362859785190274465681049879291833809045327059880735187682949477404932024884359704730696328991015867168713499851660776258291788038595136285136139919818135817039777089499341391315355549672422189742699964523607853893105208582358986752874045337669957575375372988400068112420933010433004597563151099455109449576874040305292371976234311028014188621919082953766977693366807138847256527391999331188378159175880512276692612507836134968126598547822860366703227029974899778699262529658854418498388088184590164934951003107290109031952333181519539969644377961754384608262368153633197813520804141084629332138015338391652355396670379385001742863837072694294135622458133177217957636075053290871361765618413290411563362690709019727663745550724745220444253623774848394433337755344600393284195126248216618391675815685476675989278714282518033152248313808254484385264804420909535463266604877792096694322600526993330494678339828994261133626666681543143891686747000272914057738499076392090128729227267509093925996186136195213858449299813706321203121064025136113427398122349310145545077521451156889619816715561876943285947427093127767538824913714659333404666933642992193179281455514518971191289795782561336242241288865194430270763216063806315768737104641688096971711242808505933452124603571768430728504778972532328637683553607220792515950460787258087144944076608460764057653420134188522649350830233919175965807896673385929792584087379719887222557704074263664094979678964632913870764821162373259584039120151161244736054262804655032662663001821505309767298528850820564452297163909671535340603221650914185275130790330308933112601005530271429646463142275159678654104344547947967751652193548016846090465039763906577070121214344546827812303383432777374592831882569538688000470896387584113315694551908402227674473507578474434793493888153896581110288310078003390941133464852008670694144578512977380338074602991024024124902698271131216149647511995580756422053427760126931614987656377841643095881132573452963585394500092861112924201184327971612541276884346296872418412749107097487818049039433384192253929090191157585936539634066650341853789918517433548356995590311324204783262132460048578165581156826449948620240637078346794021525699803033210375420211069114039852551859769354296495579240846080179826866394386127337837359452271078767985422701788250387451011685787257018347126459295293556648481668331344792328570035123956154006613276830504695155319601203866378759237854269276407812969709394206623785490870083958406377508256395663320651252003739081812168041270577593211145448212612848104202809072278569909708804416213229886396536603113658833334092224952358164833510855799929471400039058515608234004033378993447252205749672200998120739878047603919887515097434249958672587572193044463245546307810158834128032347546982788968227531805471518949873767279600220914995149233343104667229773977597072034424813501446254534355324221077340640961720292990980304176138250134729759423527439812581908646314074792500897767954092805526165869706543515521272724931876555064871940781859967459345686763211796287114118011591644866981066962791258207936106308362252828319351123943600339428129225428820957515849475205151175977853997729170323035407892982463139134975502511979929668430539119941036887939029345008796545185429126651045955536694404056557128402945655912954036031390989681533661494336710809013161063471968132093292821729358670647948314701301680996791616204119257607464037338287626655367685475534389401672912133080472499811706079872913259394861275293490853435866456863856901886382364979840131821080610423114443444448839345160245119037231436804287872595217659096660817875257926294348580161405777216635914094234737820923083406171474424118040550822914137523571652959689772247237782111006511609068881316308823296923281615914143967890299340026006338666326054784864229142709450154198496315815053716779187774844166245818997810043271355279139226516021574978495821995200125232848383586811670503500716028815163639015895344402198535971814050827665191826781418734838616897644955528212289326724163578892705345882821945872045706838793239979008293521552575798265105613637771306983403187347423413904055946990309972705669310922164863119295851722708969037926370370325449495184782902539940785030026529430610791566245255343144267061409346894260235515184120396861000167028276189941244210734358622181406164975629720336867167523765040381777386722845285637423509480300625083059478577875582741338927802044762267477184730818583134620759495727826555371132968573681705402366000186736674854034038998332091037075463975557807173706995790543068010551070139220725796207608928567869750016473074830883862848285503743294051544261790604607479870365980503432448111967073610337593308842747785457952651317450782696435552446513450035861440296522344550565156863271950715844275391457201968870555033490705513052555827218110043808896750141756430974136380982641224797842064488061811502265645119075619894762533172771257513608682384284419690535548711108851209024472881159203024545592027969128557978214913973662731259183096349656369046492121728756113975786927548234711530882787662206147264410410292104856625343110989669799895804253197720406558473618035016175525015780145530440608652180304533989251727127163965442604320288024281556800810659525803043491015098107218376268544450149960328569880734519481084047906942660403384169442528301703550087514881075424065664718790956397498492536700985398614047852343077120537613005366031954103606196944666730486187326156739116308882271141923971555349626973386638595961520259879727288933385739182704815525985841302521189606193966919201723073598770089514966078531320415658653563964124892861896601235029121893582623523714136584097891404549404778046718440722647174322725488872347976578556281108799139096963213324807922617862644727968217720500019376363801138832654376949796321403267169449309544497220916254101907614288697041103961269095834405376352471434481890997578623976754777907654836729872420302694588674900482302759730102523445588256094164313411737993561063549182201678730039076967385108800173672188067115713584718058298565284806394684663874447651787723529850370084879050097537654381013819120813412122497152444857285399586472187904233790164917971014053463132907057432431371259352525075116988873429113838823099361805808112070086983101695080738409289143917821620380802417276894951719085638494831130187746149844911159906363660070130289841018840529932302795402954229931602645711929287347576638902563615314888008975473907658568710708924449501732740833422462876954927369807375742601719857411191484091340099489285133300630539587816453565087412642155655589139949707643989352926246119603494177763458070018616198967311231003995092104741265581068732184427742064937721719737356302079794347692161268269836377116332716231567202590701529974780046768464668190032182494389900577053870810617976540756154714285532783966237329540733433193363396714118190134712952476755549878798476298431559826075242843501283844892781728661131653347090877334242136181620448236286530151792516361019771053832412530014311706710932466608282934544897005036808434113268130216973369063982228345203816964664891856165979459226090411985345304629973487533842095455173560730010779372801361485440005280408699178893502807545579669180252486082090475273438471053597957988145881294505994965982313722592399399035470774248415058010006196225189818054235394661377981882545800886912412314655985338923241876178120074255890396017445573671675650262058332926915547050410103230722983148435244234042875567668773398861297516088971139071988301348129219482614175425407757016577419910408786605616023337012184215696382958403735769110687701770022400484464540486643316793162772308452987402936272311967385905293444033639949714450518909836832881857664627572023172407754102853894507919381041197686137243925345327672636432930055392518448752339432984871791283429758492643326285641273479189529212538131925693484398522663990188974727176353999070589028762470196447798098984205822389056417204160037607336069149544336364312786711478338217413667847041714724590392649932726814669587101061250947784385909623801563165413967250020954143363056040405353734497274532940773634292259454696080990701797880660358273379851287730722772370909211428076628468578229104913046700994020533213654729011849164255833812990768125457104120514678072250675129323989591584834664302757006218964425527021742328998701371005662113391978500111859886029621501040567886537587392106243218965071643447200769039564543155859863676314296598125189846905047931696356909546984660145239336222809393552853925856707037409858524323217997540450603718682549412912719758825688132872107113483683567803160831853556049490965393640020462364424369593108787294368849126415750815965465498313589886968776231568933062247166035204887595048927765414806494064863423158641182859102302295231714139655783132980806032810309084892618510043668038491063172335966666095592301586504877423068012901897451266049989241394091017304236252753842868246189403501829529846114921841324982530245671714104033783885258038007990595189241311510713085967399867952792606766899435742304614587627581967040470014847570852233789205646634687130225938132917001519917720507413523546249504128409917919190392103112616764368255206499389278710504973144277755318114108161836476920810842582933420427284275749605438829560724231488555647203012190216884247305180629243476862164322006568070768957576574059828881599910150883738677873842649786703981455447495686691762878817224348655890796898020449426928492945054165935544530639538441458396949697888223000822436150739896502448948165449672550194531192150705560484832869276350767273804343337006757408643908763082688565266295588638185900141396260260450275109916906843133246314020384278243232355439167327115506649144177496000356634456845516834590741654058804832507358219941983259283007789520724971049848054247734794562824271397106205401229909608114259191479483636199538750469937394471985172323431508450823912242704241850661292724285947794563950279888772648974725728023408911730121021966268006099062671883613315505421623004084277604865023900492535229403803965308372431819757827410361704017720203218336693060002495496127407403166634328971846624635539039947320329019569174065262079965926028430047223407679770180558967206682926153040514829069440022956173926344874989124646005019109462937008894145981486557207029505349046024391422845930869732988722966572120626101673831697358787460897638444682534679080105753871025560033847470958564757833750310505807306453358910432328091429122371643562488568793921408660198101474686343562531491489628545630657451907116289310035553359444402331058713931950913557905918360451029211147488791901481464326373287234815126790986713793932932134845640781050506188159133496957257765153276638770197740313613755881593406319084578368229876343627996141955224936914649282516844550937702632420477427820418122643246169192813686358433649073994372443344745284082087926820760610248429879645935430189473310804563026658565470854467953447438240431399104006782505285655055317270931287783281443354816587063922122730769472534533272112839918139353855911604647581726438284885493318402776741504016203515644076470820403727722186116898519042040026582514949415061901546713520682557080863944967694704901748461335547422009948112740502365700170307000696752498009313748326580321623927915653123325656681193756112577467475749891647390633430476042049700166152337914690794544414369646944665488582308243354578669690636914960486113713708317074023522641336812501086655468255677123626398471016214913080234624117866738716984602171914405142194523412813488950951784203766496009605483516828229185128088936952460291349832175175425699723086312895032524124111147014176814493328969011945824217278071606330737631029511220863003785011580422516331454941185320294027183066172189661135156653933370827207170861387211938146408749084702321150155200918314578244606716762794751892599530368516369844958687055048575349044034977697961185151559402306389533414980039921546162535990225249254865278083170151669086844116610712394448021709419561492060572310739196541116533873325674947240047374845949563503436246820740009175600356618921081159313684075055387619480790063519709088365514312742021697470102763703745314522598054577870141441878272693172488120719515071903219245576172091675851776376600669426638667395441946126839036757839740671809286671324148033666814240597348984829769226319403458964490935983421205965522404071977740089095719929204465689213304933678160448101156076300400202986466227596902043428312465285722829405592725429798642232527477279444058312895328551499050302771134780328348607343160208779121552701935808174429079128133341301224505416363630225127122585158709751492050055449086716461635658700667878320531948712350781259483960361426651475665168509627394018375975458800950286344815199229797862208752870883512219484884592242156234277404723945220144096260299812537165105152666109319146309554791405532472982941389390221467581771593119853389079497650831822580327904479640393354696100000438602281393707137400024574928441848984363537620286385083561501725273753633658726012470563380899165695700628551408266259912261710580952641040552644821956402677850967486569831227237522628254892983468833719942699309967320192559074337436121137023611377343782002481852469177434547546435156586878107274024143998259971099061822204127559709096608729652189888146639672985113683489564044936235297970673706299019146562042984320637767364861163555618719028469759774775543487487651884728332882807595833242639345967683508867972079655271697836238274515227285937877850249175809804045122755434431803110864648518314907742209775084535593060475253517051416761717989471121735188258808644022361393237222103700463434063003277090511790748502659320662771089778633836126162117491823839571366321810384278290992838591965603453941213939417271677195553402580048522088201396762799020526013183777345002012676590992689121692447600719988477499892325054260414238555692007966855587279163691437183544895437164480157346217109112581603460692446920251713862956840782858403528924366933237391446504862145784955424905024978414569225512552075758887639961866168621387695965168552995268171673763357832169154458376069299451644547064377416020976563193707459635476020196199857860667982966246431025692896993013056088665446873816723540630343102287986770820393695595975698356596554068484619378088356359233504120732307380786667547774791095245795041902015972871961791475689652583875247196337276472735604057808393696901561931047213798521379927088182385123803054470983779893290218374899526759020358000600184653152398928422303253395120696473874165843893207565360471975141365280245359695519958165204723434246524518445022405353989936203487283281005563054083591008030312538532935291569319833473838479770912697317006636009661919024799612000344096884286655257750076119452137126155378993864429674222707053526270254693118111192129982237083221188207400751123763810226353360494430242788665462330320652025465057819274467392930331241535739885604683480184615014595104981463906266055710317435722889215551801123832282267323967146311219902471161317779477135308634556965027603260672334076426810462397260817204730413793122636953755407441468457073105752504461497028493801921964181495182390557389380844092225843541433504567402400780965514584647795031390931824547707653207882249543239453027309466441402129495052079307994453332932277079247717563569397223551466492093217572058693926214079758911538335759987390262197572829185467998430298132919170347633254591179552689574592242605376326937333852827510733090388898067170985180822868916010851030635557209311873141710101197456128200366015835656785386827675549122221411357935959149138828405245741911271305236176102369133677545850130361839528074444581815913471917206958592315964673051475605871923065689028061538081464347421664666476690388646828737572640950156774932721146199778862185096861996616837847382149708089055254820704624551416914120281424338102195892277669290944155468106086774967203243011426119227452020757489504886856899686325477178398694790693233271485171597827032080726008087200500978246801318870820373196676934418989181870821172221786968725388860714385576097082676181930524229657469820618694388113389876998837005714721113191225803245210888589321995211635075324135814240853915176866582095490542369250979561835705839692106678243374408325869862308298365093334118685988336204444399189970316043052080156618477941617210384920107230838207653739616023329771317959001395029561879280159800776284557119273129896766698109275521127929783554925495985137676864566779198692166196862488199476713092054251919436165873146211300809473524703446576591125846979996530621015287792629771303229571684591715878915078454443614578531805753453727336082643465399350431931745912200011544226925751663355260190477045291197198176349330942166711934541217270748637731178969789124626290811385629219571762570409536541793748917604608920625513696552361651249568294633051483661956602707118393681720361211962768756539649324238313712608545447921357228254514304394233937231761554173203514045750898798183561590725740453233432856364633757393422192159633937286287708348042047556474657735834494969312280690970063424153932620886696047450459193808312002223180996165842907876702109364280868982672098255057551789974915715752614395612509911989266856942597952049147443606824516094569509911943182686103743335856028432780634902313772396175276506509313422470781925972899330654399360779744847397908607639935184516745879415173677034095143927762162050110733127652290566158732568178506363035806248115343743415166804451517478016533017091122174999264492560874436633899722286029846430483806686197630393809334627087584010267023235868040759532644392217955929831725641821250184337925981293326666650524960100904532362412513995298619398655972940104005944169858092060492365743188630218717153935224845850454787825331816516742628020692564124584797101314764313522476150765403544827925567230310064698141060417966669170370035814629799070469562347543499714977281543984799688870616931197737867331081759877670796293504493774782156706603910923464341765587012721911847750329365051876176112216644702613208645944730900559254302244035366166106233342939093145823018224095760113763851060423491835563776015874569441558473666813925511131270012652209701416638384057023811863856986010967102708407638525952862289628532219732070801421469413203252297072700893881929138400387729378144624963675876206324606502092005683193042491759213006580092525620023588347878577554797878269727802302523489067308345613803058574938362068079734312157556125741855152793876042623835754330244034484937748308916338155125555944724526614594181558532809951743965765931760224497867241235288286526825690934336984319063423401298716902283268520011568518638644531045157504873154342904223383489618207944111609373910276739395451688945688299837111085791835862294763003332153863306449435520283753596704263776066618291078027148374019024967012355753812713952761889347205382137374079030160769385688330784899033690841557492470662872468186450289482040906033143424877456308292787403318973667785806606579607879821693487595436815701654410341044989799325282824141939552396512225964863381098192013002945334615949178367019578151422141809456118366447495743466149454128421074226765531853195911795307780290837284665370351792725583631127959639470965078359977001427587568731310343703072937139650101428960467343946595776456655489379523339860833326281637582906578382574311815001580640748468580025280518788829328939116601356481233268178906299002407110308026290928406693856812895398238786181231342546017293511089864766529490349049699226602476362280436952332384195882498539054958654315551532382709250565585571732536621492590933351138305720762276780942274591788969882610476636922730392236471426635039001125214236459795690168062113951002390186383217067162062455164401745987407528882159011998378734214275491880912647317643136140218701392789441647781893255876672256816426548907003280309715275862868516981491673596933208749984056915944381114919342286835441491764075708008056173793997036972151491149095676985410883863308732310510549811842417811589729423621713691453043129316761041797595503273346162915210395753006961644974298690069541665829510839867190720206009036758679870961553448962714645380616941253740302670041629375930512610551690471344923649240302146691304972361214588717302237125107378025480336674213673708812296606806667715416638190665326350258125177019047450745208869567170564875351585769881940877186486655401550565402221165898052180545541697322360725521784688568214497054927135406285671716774241604024985777444872667273982808144721716133910165441000022843215735589936705041998204784598159007482302524009255785729493384377670839993891477722657559450938528986719978562767269736448248986497764106137672417123322282334103559899402915075417793967780306546642847637879749478535402493375423213566059076288550599074815182736259728495618779244427486753490270433491145400602073654908167302834268936164190144128370596457551821385270229796712024809306135980783638776111821605685318722850918349737211091947723372853684664026121685001753071245043614679889312824587049426479345939152501561218946698698371940221639875971395686112176120029487901152140454503879082241446065935976948172753507163061229735553925890479730022804124556033227447796571347015746543145796757223294294468776615796864646307609678663003821965642588582135250996254013757977491648237561852851835259480407939942744650659492262122308224819421834485111955717944846589462397583531492130902144261898451596320912331613387478552309917796443567250290309765786093359587980340949429784601336790612182797716993570113550301432883022928317926958000644895165750733649406774552116744604932097178360956993793527351349613201486130206621545525680654181476534583383639969719767802677189037887784432282883688823368265256275542408281041706610733898080542862461611820995326871318993382471508631233512348993321102912413528049653983603995914078776324924107523338451988882057514318251169196890629466582232419798441189512743988818286576653321930319700213775842311308954348085509581142223012083795483984842545057757578248158346076937631978984645084751360599450224825795542901657217322117224308191224904201982948262272806364496146953204271446442030148803472946990689078296900235189835222196163244033196993940756397488142717216384368836823903484285259485540107400025516419399471184816934541187813596515995869925437986346113962962669232234812872051983955299086036950963797803899611631719553751182060871297827919346094594581713927804320852067989550661442746740900791443672584595106869866787807251747412939863984848343614175223451415438225829883141407181440115082968095596996462504770138153147203174250888089487227569151243920638076018371286736674398244360138668593662503315212595583753136532760886777717487244391125153852321196474438600055978760564419107589524863302894264023704245120742934939299890584007953935669808900125342398273078259035787177169358367774734288731860420451614445418654929948538058919774706179404827352154963708796080579923245413352854255259370143999601302389441660694634876014233298463818046309821069474389930178625681715642423036786177362395851052918067714416703331006752545589015930981854829308464807644739393972186143857841184857898193180847004727615290965456333134270846736936042730204548381640548771288224954007985754615293052319947547139540277751646891694326871212929356060042746756639557638617578226220109142662576695474808643832681443362572895948843069689250369421344442461702339345056106498735344235331952153119073121041707909588768567127495213274237247229152201489285159233289293327215918368717673312843595675166515056643324594261222655326165169311943784168893507791660970101675607160328579650104175512855085995942004567302110217867629989283206589156369403039443919393817852104624452717151802014890458689420694318111509240545522047478653867301907229915633534550080615449498065329626719221809682067689028419687982725657381715426689738419298657868113989227502813845307921719530061983207249231164487320752273327671973546063237800076260245551198088143373478537034712646250915246251199949784792773766418322521455074021348567432725816864989545656922200298108386651158539272801208683065949865340465271030379144399028248844419140225572987951878141105639872022764790520085710921038389209747502385469537838544665726797983903732797057388402769204246689491977824468689828013514716486590416279261487636271298055340117014519467694548995817198111263392455137871624490564084479567897789344952179788852788121318396086144972596344834856287512944565981872740091934507331985442686428793720349016517735295456032422117232801710081805209051665883993811426945360118934179267713400361253004403037931924554618178961471099213431920315937958597454576304832745453154874301525406099350255786109940185844741872761246424736375066941655614753791812839610269608193582599296399975126203549871688656484568651247531370408437214948347721266382919769643916340712422449988150401962565687202961958810011947414423790265922273140726130415357936562857464029543429674183040681439495060231304373975278857823941189484878143595925013928436532343290632124327579521457975025625754430144789510376154772629766112221041061022735336373134356041822513379659154504385196537254518602626649438303482764229411515291418492301411313490319634950950390103586013692761065804573387833102794512091587498552154994896228572313950484598624543733047945428806167343019182662945279361826868030330294424320169116955886454606133822959039216210278921323711134482704058965804359407661161060706139244294273090407812257116994615015065219981638937872693062632327926620132807667792077087078614910180814655398929660154623939554118385447172074636780926193837017784827689736138134258819781924123127017040310837841605161339838327610609280113316109848324985729114889116452747581061660745841571498615939174301851200825953247005149424403452319499485046622604932827701023584991810902177062889380674832785653370917422671163480169203517553682611434227127097629139661423254655867803475589929769257274223443237556379158956505574149980103461391503535539594654013320812282424325013742689599778910038793305461166483950829728215312509043481507292840716536768101145545036010673126047387356114321330296666247505356364681837805421980078153776986281271586352385035070123861960434112029299036632123954615424595696004849877521361578322052786094903238636894330608335153317749438149826133579899796902464593971824672314276443058512674254547804219377956713578346227572285031854403138261232419133878510534557815877917769717883928086622665839195385384017648853597623718744315746749160841429831903877334618738740690299133083063595456112674320141064088731427734258634135284541231547358726485334269326450291730880580179772132336368142589914985878697720265824456676504753880137768875754782333155779888137043393515973934022064570018570981834056447095611639681565373803555533127504030369113110433830591181290120095781200812508715431096511616449597463977904530282047990212959892996466560728349281650294219200672957933792283317773112483315960975153172605212986923527263906314408750256536355877948779547676070418019699574442355077027285277206123907837171156119536001857457203836214924168631032435376757160720713114506666145566357760053340517593761550964481655748583951073901518210838635053437375487999287420905087504206756546451282721066691215743741169930046829763490292422401648410583723695719201222143541072237522756274887896826730782368210452780777962481558416676773876973800595560316681265500596897610443205216911193194980446657079045462811931499146275074121494560710624538222156369188683427257452168158671119158770871718192708508550880967077431175434794611478548343551451748306971414011229687536778712705182268031226129978190276340137547091865145703195548843382446529483818718151569627794087183317054665187762171088157396522055157191377876182664078838258577186503099591543717134059652777504491627877213920637006323620935383199228621008863655885946620520074019687428682985128071132756814800246021629795102348047015582439470140292878199935088465463975083512007366443699650468282832979999694107742811739644078061925435892608574642674973173524173113625460005456154317549346651308428409561834995488654414160465427707891688931974006657309225715319684161800349067194942359679362536940668194084482407635443927257175417095815318050250103873910470856465064021293260873719484218525873076078833831459229691428446906753883228260221763069230945041132857031036607793413464241297631729643626571369708399674008914930668808788754686792111075977747885950671368558516462876198943650194691422067145010489903017799777481242192409166847408369904455307038669623415632135071477670048206050518981834086822862478357769812566727444885046581896651059162028346917894167765844255345049239415140509089968708723026041089801759108706867672298010549064877903931396025183439235774603906997152806697634496431961199700598926177498637364523474376634922328792905213691383170668877563899412278820174916083918974268452399556961129488479827252506122277471590356470506824838068835132073391373839089955282223125238672408129002588533763386709020585953338652765334071339104449882662653556237742015526401955458711514419874353151015155760503475141610147727802505229374668988344764948288387207178069933319689221548067416108002116456455609274495546624880477554738469588223763960286297654389473601938646664369425193609577341937510795516612912225275077177276725786480158144669099416773464097857090704602096629063078946772870111627307586260823123125563768925927515528491641533551065431358035518610968230463867846129335658418649492408147601074122486760172399621540861745699537060646425045756503644109256143509193103247404496173160078067932943013519732340244254649728905187584930059673046877589699729322124524120101230492623004133684368705361133086348170312355556979988110777108190566075347574563745979265525530892178441228012014764318426175369089702329442543501774792986604244489449923999115197219139912024694125802562961828770075743383316780161123847143373432913291937392650856799625956202171490069928314551112281276964194090600297108995178202285837677038417380618480148973473648738626835205425032889212143960278969171867072582748088692196834588314194525994418118552896442225660832708009323643944225037225929339491975997847385406074281009361127727896870454980602065540277761473199328672209354161628965216399366588773659231951812027439217719935910861245385254569895504872646095063468453643332949909477833852908969213665229069557962774953743011499435125070945250331037941606228050850956618300344315779149961865999350194461532265242204878114603672934624051363294457535633632263150919998140186682448193283657858342019848523688760113312428265376930413418115205948482437798864493190212444118942559546398020008685148845433993714704187291965362320243638084836718127923404241297255275533504635076301842949294355556552709203634795303192005520084826795939099462598701919641646563013122099368636423440130729846299477086061254537324543322787730391349895992426791439091859995168952084653659883716899646328049126060540043252094984259230584905034517320781402565398486086051133650369597101850235031173627971698009743047264346584469599208205531251494790241171053243307998222213423171252318971221512675606330341333748091676239337015439075943783828261364741032872073992249087902290500348602115506197338225818661946467187962763600268229178499622172987298482733054085264619751040780891252233359221569580169483396935255176733920529439601103814755939864016585765165640248610327477992458719287447934668713487414614109524113458869058632708153357838648535143902064068259262680832131860134776053331759611322090188371818358290022398510061864354591101955499577740872719993321169180019500548319942482848736546045011284010956036535196761803547718507333044882618786811922944803153579295367347653895801559282943765575061096027734705982845178975719230463991007645541691090517689541411994985061057478734308020664420284221129300611739723284645814172831214168469114293840235445977019090701689168712008365410861899422061105895156573611456776577386808322518289853569697606498281236967836218272189355473285937689859203622328039305949590479886520855783820255443759632293211690471471435058552292047837914522931200167332183782938736731049148948873407745148946686079132264812088487001843649201706758408977009102492883438760269322425074937859917028548874606663255458786771723806561897813409290998709862749229710967472140579181655566753637226134994867568036905530890422338252505802176901880342090161739283253187654329057782379380021070092598468451147439073195694994890989847236552030728686426083960182273113276119630204593752893055817777120810425597832256129341107931800024831648017178405862352434331345491216777780676572636913298996128026936100248384000508695655626355073488139989632378202824803980277170925157855176420442309951326780844902199577453376617962804163090237736764623694992829735849194881384523284240553546704791234365436874586915798007506005307303058584861594419046381717005801720303409623048872710622051171840329977610457314792368769362834200615566136601470886207416547199604774547067660275729870547591646394218795277354629850037997138712632804750428014652936357435048959667329916437066514439650416672269002549875634518981704084590179174363080516859579140691659599864456358592927413253374635146009231183448969005197729938077517272742473981857941157535522165579719401168702023217491471687211414945849943980111941072721786389454876837396667852430069390607051423806682332663360846036524860775181996051355709250952374889587276987693923882589507961675270912397006287210705722996081773978314575422917559650347603070743601181606356278568740771048669201701303677647792663708846719941301581598581460561051523252668758752727621307505338332675144098122936453685651531684053397152704993765174890636940920544191607598765893902093512692386154336966252340996875523519307408571477733271096370925000576634902957590327376634531589099005516269682006314156194487140560471152275125136865333695936369890555263996410467280401142358354033607413574485995767665549243147351767410779572212442213660171608478265480750149632560083252528971582067479068144622024957517228290139065206725206525337923689637592197651264161622052286791252296835525251500885274395180100330097235996543811557349996906680806344673219725737890114170172317535111735788753237717974820287313130408452265799366538653492597057529953856564008657659982538718209181540484858623072039558620115762194668471809654085707967370811846194149720852466380669306840885720611073511980413681105588546462586752123122444030473348902776003293120712575188026467401026829202908745710412077957950693850067448650152426747376740315739219231622177691455614116481632204300453688958703816368350902605688111444432246367348370708892274389236251420693748517097402134106049696182396973658811613462898278177485188877567139702669841007872156647215471826104073009158072695112065615260565147026679934017293906249306727139264120135748618381029511435397330137403293617018002092079517937929614697453097546848123047990137190420459987001324705697990972668414343425562483238364647943636000096473490282876643592898517483804626085838059994728436277601339734764574178863208368622942633007414875748825027020476659859933162356187948586613479340851585856024663265031866310996226768229761464764830317452447180274943299992255659026419987263350192016314675008474421942879149486832297782412873241559468046356196565824044361695957797422026292139454628271079914849743575640058537478180977882083910010621719433314303013453900196327160138592153476045045788303722624768081130425218812184731951575553919775105034936593752670478678386206609070896103947404142305954651298677957065772822725006322295852702176683590535923624951947620093092021319807498663260577724901576448736261168804289250973608197015929141444489393668801831168852482429467548368035348726234163788439858285783418785934044897504970957107426228112497697859326411502745873156812175883247584188755771697114498580551489612217362084746192595911996010169004187649230482205704992170749495043679320893871491873640261315782123650858608975876259671446899645587410187672716224054986820220251667212846676546530921490768792641600985514875956902047260068215994178558555734785346067188982269147565599123440064475788433269594041946055548616413072531909628663227535773648835921394382585223721738568710425905126385712729964761309956845803761847145268492609396331123409960125597051712779278555716515045870346666650986660692554313489125066174150828950078875730662638807300691540527714302301579139280379891558114484196618147871937688953191254060500725356680518923913240051391309085987950387310980767846940085965014331430620772545490100845793740682393291923503911675764855044920758141184766263933075331924359961882395888286605597970058961422277394087381520180476616951052849053000838045886948386763156877024227691585684729162232031173480695283654849012170461175167800328722629831940336932191741357076664036020178159021736796827327727078919334084110152062497218205712031994791256935037082707424932913891778486388892097141855138780181415773236060362292762865035847427607141798648219716500653949037634161849474765404776356990084697235302050327496904107757605677907527946055718788030462019346295963670319967305872055403982932029587555765216738150389135959590073984568870178997844283418993288595188340484107493587341738238547494660741218939551109648711210574921640478564504355796605201806505498850386593775529699411272221218916729200385448093914724608025711491347960481199418658560276854130588685238126332576153004419030658867921189620754573286295264524641112945004280948960334114964099505376884967711866915756949949386912327873396720586805911843061425554074450621660664635070754284214739029071306406912546243361905378119692807476719413633138259268847481632800917700385420030986635082101831007493776639044136538939363382343223561633312225841403628767964743183841749345614845256794319183475602743269816568879500748364473076350564604278425899438233084178461201766215940675545749486739577041404365808790509628732212253494758290168273281604092657941315063384307030029650888753362231977732259305434839695389862855809790427980864133802084655837348034312915787335805591052903987833666487408343847130487956089913272721962063890610170957636241410071620675186662737684594005300803578262537871122047591816600058907680867040961127747996360811667524082964129324920665807454467711262380857828237433462022765534631438156719305506305829430378514472823059762134927409058219043497893831476467814730484114992210683226239815655845190983368327577324631318580170458994060747362763985168455921190049483162715867441862435570094081527931961737002249104135038451328319580223713591612943552819160438057876754864097143884339058468237403535346581993742480022590534454229965375812987588215669749927227616469253728453810659462178608654712979605944391139308054649318033966266477146167989443852581894426775802399763275721556524119861593515316899539687228007144574419294168379132052433960482779458380592359795540526933107492983220194432802289082730479264808241967095843955878287983766507696601043816191505149592944006614772564225529676539860229356318737211057311064009880349299098425334888997210380865207051381387493733341761125296834814386086946938307155794662558899993543140124674086820422571298989540511867620510006511383341987343010389163591027321656579439032636678080717200199793078476314835705997640933762651057089982259037388969699750450831810447470837349962250790476918582973107811922271234388629079340257302957538779078950165059862584239839848609045310438280924326119557459910099814130691152005893654630673872077076398277893285772720359218359778247640114365791668083644991021010887954248403445618840143479257062607628093809550406391818419683505260999767921372086923789948843870407433373705706026543606437028411431440919120809270975205629397965616689850930735190470857695829787821084035987237433139522663841937870295562862049113613221267874257280471202035575421723067470417956785126666666184725806587507101389378865300423645267677381083325211482621948465183646195535190851128801168471310543347472198875089667040415629939540274056553025789780040978337234233151386633441548704142152723695293362302979352821596991117541303429577823624396193705671163267302532726093335292390941151074333863754747472379483488112240939306747392178932246057846390137016302950200809157218301811489189377361409613000281299217561932764025390070292951540649088786503798207055880962031723957042781029490133010427722846900903886219560126076979856095547804041979613873610265388401527141135347916826418754682722150891938422850968821357313558740920475258434499998136348172370650158610156638498334082994614527160443814305987838838300859093932270025203593978357102384618072176415344687868863465894732614999764997729659996851228840966001855815783675127484184380446681858956041422951493318165469532003252219867894831698756259307152432231946937199836199459010164172153983708482714283027551818192874950534739132492105014577907434518116735897012299978075487089937589272299010248967671736113609699271582662651775997074276716610721959442008691160086351025333808412457827657432900487753360873360046965452219533607088758846270854234306912912139578792016500872955096532899012864620615973734459153622339523737221559780967954857486990675900828551210814866694933350826200620710514407638050215553949368249045636311086385483655724772439910573472666642599684690652710852294590732978998300219776321146233135705382030764246160612557273813274990454087491741701997369944233907315462034924808356269399348443555496387876369676626133579205647164964654709974292494607854979294555773738112977063164316532857152209989334926705896758874533718083853357775413485351512071305225284310211716995620226023151797522231634810097830988587368244640900222051271281489692421451320320563266256028455978083722110739037319688994577888858854773848348717878528474219169202229512778489947224993696514026093915237467270580873738726174535901770550268646665477304551810512489510031712395208472270483269897005837628019073600114665583529212447069256496140381194086733031117079758442732407147003173451502122824135901612155357078712902131234230243823938220122320820386235017420332271055864668469043025757214837567401104924351837794028139751358268077573565158263386385079396394793605817529609476015207162715436391022175458915046334628332366055281436655460884122191022524147052309772871342597215485689828067719707383434982367484990947265626092147160839509769586782389760296861300057486708335113931033387891758250860083082452253321439092002765204201674723961497046602484944479985493088826332831789952381636404003086409436400984620068318170513596589320071156193010062172865513554562186517087332309490436598549093114803965325187074183794826358572845602619768199050358386307652488963978064185327664164532461108787519159914869518586192784586048045994886536855906778873871818595155146758519154191368235766553270751667667748121909468113318340781580719214542549578747979435320125193877788214075925360751323457725244775150702298212617971294326369131411088194698034595335860712540204013110936767932750186498531016162227985868689744596787975797884323424434940235305522147333998780436321568859802434842102889326562608538897832911387727592952403350483033986071280697734516907019621929794989597700722220580903969510900522573370900598034631662604355724371707208602702343204652912060822296404602985653056229841353314095648669853217634248254571515241263560747790099045415167501523065973166855871548804392299939776319683703371001467155123277153740105363801420184048300496798703059949550098559646906316837988756120794906251549434160818074836971568182989121947497079328601956685244560734960854621415348111612416082877842385097318011774857502877278785370033078751269295524749270120321719084551655933448581228068452069352011533099351879026157392990551750615805559529204365403523214066159510914384139259122224011896670483595540699638924925361836541494422984768338523569669139924801467786161781889748146883314849158916058051187866963055150232194326000906975846511347468542541832994296883975449904327969717511536565757508543466322014339761643969871870277514643339529646222963972111523322131127324383139494067138762752529449861002108275398373518967234687348697296833901943855600613570815378457270765387612699163287070235843631011551316134741104517089619999875323872689657880556495033571423996688509039610090698526749632223785304809144133884405645672857760639358256552528140533839115709779332638369238473558480794288025134084488172686280922860260035944799898146154445863471703544698443374278698757953298744103108975646597157980089728765959286400795850298896151029144278712712680698815773786743962829941195488915510335905217900799562250082219206588873600937442278346248765276776001144483008796012442233202305919988798720495944269614311938253473863125371257158179729829033419481039210813933484463660081536411678072762111230080114403514920050710738157838925053528949695266046598318234861001813571349591107007947215852444719784279385240729819247898717695629173706284526846464155950804445809509657022676413863027167685363713182850732049344257208129916322830073762075766867035768741723097296408939358939217262471089677296292768685006833173195937338772749340382830661098417137530955144676624796403149745243346537008073562280933236630354961283769713285420911972493235354326805358674639643652343302716483361441457951090093116347030338139308559145826663046380714157694536765543622171382653613065738258676847409319487702614125551269154066881963950081674205710018346983491229660136110676699126769049358387830046179158718021527927272581224128455570330899611964453060039873443948285737628995173316781437582739236708039269959410235558153489281367070823378427171940074802431445608218596306270965233192109695330259632873767088142186541139761970026095054098494040859758725255941414817149239152028304289936178024697540732131323570537162410721193062457841238192862750870051345264088169887306592599261254735381013639390648310918867358074748893037472796035665984868453808027033496816750146711114459888379334361075793015654035765270882619743920005005549144493147423942026551963042444526601685934000045127400608488236521302596239699706531366930686721858397968792782041552238848571755649624326152004430727676340309646843238024712133619620764989844287095316085663289709285324533617731122289205632098381773216535042295977321810439117047567825154096438218801681048191400674286855966816803782132509108218904959613052143120973316075117241033769640670863114063182529718463033720538458837836750869652893781746178716252592356140122149786760844343749125935754480983375112838264860518403318557616486647191447306134624848995364366475285117147636696233272583893084938645051343585352801793874619502375605316962013474922576670979324907340540648216831491724608608478984497499430292104302345534964474509479229758241022585775348389855935956489097393382276196196540325488615424740936417943058898003410536191326769661401351405217682533185984299556190491624602229684404089030504369721793992082929190089674558785956453977968080369336739786166599477265949052021115502377748085802528765289774229667336697310581752882090983700410806050696624544942492969332607591977848232766172001552384467319404678602819216543745625410939315996912948700778584143919582882410616025957914479239295982807422513596579058965390365767891987062502682851808049022564690827667544329631645552201444007294675942940652786504219708840402767635657141510530119062454928052620345972841331216573867294597569850354393400329892181042099688211279420446684611474406056410025071385747013422564231935097252571448943772160056266885728418753699658058681173908624609730529559898875261853789298676486448040349603385412530176310996926109072120740527689086476244715073907547698180225342690984675106303022209658821681877083693496311997083481553160140693578330990847582259934845580654944638379990978375225296987404949721263237111908082823275027822195193810212344699215122586940973150009718185499248306000606084164772977795577054850546541954085038339547299076744888341132389472279289702616499597812588623549380847390359029162919755084480524687801443862062731896363534258235280970520277620376825526322807338956964772440472108978209935860409624260804942786254606621378504561123686696763240549304913059232895843493547154786173735451369566699941885483380674750406694258261410063594142832458524648494171538713614362580151245865561662098972088189063127706254252244215331443712043622922655838870856819299195168313559678376709083725475716042431529166534502102999537452757405917824464551742290392340940538732506114693173567014947533432785575488462859405432784390151445655053228691931622131279833985099580010217616483887873226755483592673021716837476502546178957403266708563370453823588251357673318266792209965355639662485175002335873101313800415930424362130340952976459955495435265601537684568498488714183397410330060471291350763705992284478452267154829527641673075133524364575108060211234409297034834762849831058054964603791642668305021477472416294748797728836299524719359660291482433912981144692418298869621351994857851355179631178284097877324971726062975857965823332844888900277514910378260599539293774882551873909226498570811523579685055942296079539452097598236622877039235993335798560400406055278631382662332044978972033857986733629323965775781828917635897687726547136283431172959690285481438666643758794714518695280172981442001580856364106324715395906761114620198448212475477260095849421826721044814486571358456080176520567168901694868438871543173221319001168402250096094810983229974531718092636810141955726425475489835018919226477724664357650648322896834610361908478789433946606159240997166989159319676020307316424912319098474977497737641974288829782925862342653773253133602797306071411951121898775007037481548831718111181352592780852905546564173865460050356390957564437877208204208193877623177486111859374150429966900296080625718155813412636556704799436109810935831627882190358467219371116288395507483314368653618754971886463262601602515366923036160165573935636887647155058607879998107160495854700566008892585703202218326651409668107291030421708216458855972074161805915501927042011107672321860544724507729081129872774523770321793946966470690519774442668818401942139546267450015142533193270343552824574412677003861391183982409625177809760369564469554245812531338274571312994456386891797798131870925848039028963308456575538324081301543553596154259459344032630629907910960168790378184938010412450320849525999979014543711138912378640474095400457426847646676838429396808153916631924181241154027420077357879608994988888444604319018947423458540818556001371718639996971371516620655439692050164400545569746886388034455944261192629181230027291474931484426767233075312220862493203019698038224222839733019687532887515771070778465540141700395914336769111764440110775041655539724862612374023399677618465809771459045727553552270349986531979384336918634589191698917053450968738495756894396451448275136512956753290602282701206526236428861378037678135265091392238162291264985893317588961013814685850592818101192111057003877338124825747134592602701711640681412453839933449318145949242013208465445357040202291615238488150605865934791875402716283161791912969803625199124587134134496602439527488728312188558895520695850611207167619379808811645668491291003725350820633110131481150781216357856066736772276799718059484895408877176773843502523600920832261787669641984227632721833439882508889573192712380380777479691615785549577988933969987895504680004188773659123386712178398812365504042370790644905782672888086814761977690349089840433912366653063775459438648110442022062103890768708372940080117186097525539414882214224603270595740047606677277048646092196686719657817251720522024892622391821134847364977857111230945087251851274802546640670555679841237969862860009055965000465949150687789337483019765444297190853935660866843681745307039423014397876217594400434471826772358942762399692138220775183457391537908543938968427881293789637748826764062685823695043900947986687678924243671343691304365623576452544387088216374630401439997094246756723078906841750794994230967476253868473041526512194121186010287348043841655935979973577947754053005129674989699494957313016463522756995314700504309538238399461544217328969409625583111844142040053401749692718584461951149706157065713159706344264795203266568437918055579856489483554403887621645301641385743261982604966879190761710616058602027978595385870400879578271597041725095535502136627923904963755901023214132779484135980982162573773137738350201269801148005881017005963710774663779301587482487710368200609304168182012564475707483023418575664889354558109495238045182508236855400163930728612556344480330800852315818392924988917671714491053296875079412401875945402827529287868558729225143322499425396605175637072323492164255125842527532606074274953711323547192160601562892059293021087801588740083167980646861324390810132526365717431547606627481717746726280423181391721136358884935553161893170047946515220224534949915200499801286758321176214918820774213282326807569788600645799872583782735051292487232221900243458600821682082973074031083029455555463495698301244284668644556921539589773831242936101758678005099259411361437720998872394283933266658213212302265554945014316624313264199350460355639932897015637544941774014673180479942728088061534349987640043746459620228510248316322963108901596575810345965142012810970452934779158776937870414601905935307064817424008636878893037803741160834319955052074735847718596854554188112787114706951551096732592455921217097172183081659817567131606297717133188112818130229340745646131766306896941458959581384858908931287194353001600071288796670059565665485476628202204729844969644406414766511081460429845318226622968352325336759372973798507987352314150202790063235453638683366711168902598755870150767324572873697975847560803734979036625583559270835999938737589111867951243835129418734815415714345369083928367826822028295955309355084504956459669560627055220842462663467924100209435424684537850961245256272372546884245069788856393472023680973397269567503296669307753300131389380324148908328758141512594349781279941988745075726606068569453062907095098528756181823273899417979015017069773332218018148984882532462819342441919628567767341073649522545748864531350521173424860220742199733887040750529216119820703798083602439235242218467797521448399936883754649240402600521019763113852042790071924115049793053840494290583337256995708804363419351059345836171796383222425467272514613078903467777442365956516080628872586349947438361328013337597703993329697699119779851407455466770757189706143576558111097628566798510318935545114324468427172493173094630155270435354376709819024644630819728382943218959419124297120049851502023070774332334221238638516491563165317632330866468201047520633480071722282770310532272615594475827591772833618449608853052834016976706560183823811605577760902735413070538256583331009988815934795648399501369729976714397912123179549810426517098614815597825151285807054443935135574000704638276562634150797350212365625988493534079070320234727095523824534985193572057746905346951683767690920825840608738216707363113384766559253219766196244254983555125552443347244124001523884189850146202845844029257426239876215742037776902152384953984908688724315712996479607704208433130653267720279157242777181648300986009785219053884303139588250860519172445339808282667722080105952925114670187835171512173540454494309410270731812259525206216546081798373797855217953205162729008814443978804691641126810033433702851171888452683623005251774619002289723877375350620830231879006439126469996043995192112936445111565741755821112488767549623879575555720098426977543099116136095124121055262834009336557887696635944720554490401291334173116378890437726131613195786456893638959782906555379391204377213622637743026769030688558507890344782123193971768003741221250730769012034058599142531672057548456836712761760737134771683908103415966718327529837454608871797623722827382276380135253425195761405096785790900536833066683110746493309566826927614534820950686932580927165936559331108797981852765120684972378698435549060102380728045144727443765847655051794401974320785320397204871510684866936399090440259490507629279264315406311688934892577496637565315847474010261886682751425993542102705630132910901485524684304181187474135503158601223198172542329560308470444743294829235141111449412835369284923092219359630339429518416728495101672219574410236342753656156520348441381621965333312317844524086546315358441794561135540807210674785252259768848403622184445792927514565513263223655639104708344351208627668157208797160640082143449982473965516585057088920815670103280348271533703269715530030231883736221755797828044130283494749456103897358351569956451359182651066046056197125592452965316423519137562194395314886277444443572522486608115095555599293440851334714769474261518841418944689093528623389446805375689780177165430336235008113674966698327241439925827668726902269225312089906542890966462151570450449620301064870703626548411959694285006399379711581998936272002738107305206928893816746354549678993489920918063504457410915797603185757704580263477993749615621211153195412493041534031812794761535180388880623695331421441691661039689726614703865961570053754194705772584401809742381567991859028200768579456014511211353235902180274061080315012882680037523370785000850634383865565910220139546486133897579203365942249168452339893168000648823913744551478481192091524271011364587013259036043468584882462469737403209124634901393551088120696484157773348042859455419755916244701828622518097237571843041255850901640187615318408157059020399108198342650481892064399518521815691602976165455986695502395633449162439177034557926911950602313216879326056458108037645688148581178481049190380372541023563372328392850189703848633336609504402045743029728977672054097555365578688618815506443005977162479830577133592613488488386966760018026730490710723077476014627771909253409454947389609856940726960808038543269440863922891882231778975428085709164149610406650667294742515042352080073261441396501474754179553591516325245627435922878791302184526809561012144997788561566058513453379150409080777211205228314462441879588849395110473896404246011317009141167766760237019755742442186075227305595518673807125376973442822633441469470201616095979704578210869395052443679674319718811499857416146485382322566950128482924283369005430430557514302500107385952585428861493703365787172058290744558286005598178704138681915396104535415104894141834246742081124190507284118861745010528278930890732903279174144165244240513603625005018026915095709165351249854457360572528301761256504614291003561804311884151891641352818685281490924987195045068999763300302994785488106139166296228147946730167517716007874685907998367121179965183279760790239942627708281343469813763807872125583663135543641803402192372524302594840014748474555348553581378032844734709424014878463632897346598272166871465880457475004802900484514753278502514003277699158374622029407758725634614974611002518070568373401914709812017981113070126692350238089654928493248207815334728600585128519731999674903587019537658910514975932299919833641053991754589100225335755643812388979997133853889034177037648073328911256135703612128250258247398777128548914343853754790222250438451761102871473487376347652826241627876814665169322793964814204700129456501472140775655729715225009037201811390111620142206442936473864701377946193865820078165780861851475652806038412360933026107578569927937444157164151154035681595431129389298062398479404059479252252346760618026376584090645543925691603558517691426794037337024480830233336785780673492966227676677491317299403731633422796218935752629813367573503233191709378162466140957337180839081355126556199176474928909575185603445411265972890326444241635603499998560950303459911077223708140371282802470642623907196901884704785426951407185310188122812676164154725510659319738457688779390391023995361313197379508223976890104155588561440954604769785519514098015303457996641596391464043850568411624416898871122520767752837239557123051661698901007692837627355664649332448552804879406220006138297340051849912375760208321439810398009141677583553356183779573056985050196994777426886340102238132514675101552610028958845419128567551577947706275870223043556459786538481131504436831609558992368885478903695902602787758283417905991978702717156916630075582215880978330242393528083930050854777781024992537461247210933066695711390248772304165671288867769861771472794646689862156569849094515596501040742901295095062425734197677137922178240970090865437384253243730687064528040953453496969463659341632336230187019021654686507424487616818846906488079370508752394133496516417535937837368791481222140767956113612803373013645671434552451098643309658102273159011589664382656692114754846743585582525357418975606881900001864800397673366977900476989127704262877727550797344563805652768421299394013600294555031199043422888873527840695799609643320941415625756851013214673487781622595402096101006002278518257526965893133924802694588355785094882049705277273285019749758177936063898397708844766685668877202394605134720554303470697596698376141708769193862713196447312249402933153849107152854701398058636432412735816075994264835313631051377211503731209724435229184169469485270094258513549406657312767677931514856948511568622915091641183540479643060339085913771900322146261642752201496724994378205245544216519136031966134511742948706572662364307188391528794224122087349505136298090751641340497410672289681845071306266442380153438874411221195519108582774229060252274526241625828487919206654254811626624689333170518432307601830259851745580879580051644216102588486402576408213609653372738329420869196766204224500421148083992839046576749682573497866960604982689075345063696658537909051423786486461283336347893857652622903417299438140831558492569722067842903784569157527034669672153621293916782192137652695089135226676838163751005383427916950586838032979451091328751437409397283256303622226698992758164514222103142338959391889423580624341464754759439848217899939627397005026495693472031048201607649766222768024070710397449148876460190066804535773125576966391423750575850125828723499114174635059849887161858759478482264101030502571738793368660235202263710457299269955618044443377583946532230412501999788440801924837863543251834036052298010803449516764476329944520046169455033656418546903638865036121280494582819572170079322812618962287212169945233215760065806533826095621767674828523632201833119082809375406871976015767361973343374509897880449731971042078418759609354640313196286738482993253665390069378017287909399648692998860114691483311763674938639926638338221827644743129751779619356566809054226204075205681220363826671850774231383039635219202272218205087705771971090391821227767975791412525507197165742348220733065786094744642359592262358669373181323643843542720027043394371090068285231613159274727698543874657066361308568727955389708084926662307867073321832540657162068955185868303200330644344655508352568203484728660766296965479486632110902746745076333121431240275060928031238612573763790568376972704590893453393050328553572146223050317726103191590264564783604541885883334056444988900280920955123384513978153040246664026693963862293087124822729767177569673954670811270485415399481793680456189550407941896971357679996910997874680511580994451763564546494574159010739038980635871188505303975540301369918432392501731313729267526986316502068870747501822579835764117205238322713104187004338981776132229369216341206709427836372268201595193497977919124928032444295132248351456638773646040577200123790686891123191549657027744539857285838037565821523336174334403643780847712525176404722224486959789622662857671411125064470915647710439178121453521266155723799958833694558634169550477116342559558758502940059001335827218158504687948896214470937049041461473405950486317353433649198992800734558442265050248172056389792738945407022180619746191536089028965738764242408439816565149905530728737456874051329703250348053634034294659374252222520726692203686658570039872024399228123965035292680816678121048014580615841012913278030825483782773711820360188471669542667902219764159882361213709594036156276619802239124531534209336602841167186327533980249899531290482272118305786027747762020104376018252895407555501939517565488081642500220500326547473301257032139337168433057610425259228719687365307813412027978170926513998266437924595487263424018766467320922507095940242380369064662944907621996926349834430356473749821456428025808237487725469341322252553312513522198540316865353362464338917712280214186170025484172300328826308677463781561564999155468370410289511442016274377025784130220744863752878673667978406545668795371471527018192035269319942915546583558958967251689651749164932249073288143707939414887118876690360387364222085816291654380813709161472032631307403195280690299640913831323877722706697878173641939827583903380647612628722005397930016971491669422302982481558526125474697919952494537377286541353341590197470030876906058481112089547086468909317422679481109613950791355747916356208590259747170526741593231917228074480541285325441682046163841002283610014837759398566315802854602503852655546715855632716917520181213900264087611062023361496568983202185850860316337361415602386716927075911652885626558878042149469056479102063551067364391003211382268472670190292277004239386804566335245879566849695992719244218863355935685014087262961271289573060199779276467737828012351237537521000808812681051377088679966914341000672571643469413543638377326559467595784236705418910428213700934824000812970101604893030699010499041184741470513951459173577072239914353348542304921855105029560802801588469468762460399379291885271475226732861711084380906599615763837509500451274434273828366569092513904938494608533808320630193410678320647713859456392158290894956344736997527761787829790573449652557318692558424188870104708032356254976702408796856637140255715271054741753133969107977257703667856751820310387087506652269818140150186008604863170284821956975033051580068315054407054539237631191512172397380595235189579013245114446211073791373012771441046857009291882646793811849793514287273594982294706359537128369160958878295921250274313363970000495234016373291385564426798093389859147578321709685092304490013299470290428925690891837441155223787483993121857850587941668214559360578907660605832327257986893222810956073501214651791949546800394168984508862794932858573066157275724465025724244240875329750884269906140145772767778228513411478241938655977674199739953143124474851835608252058849791049122690072479804000407707776919933217790360445517822362762900089705064068857546930955581413324579692591814437188887069716220282494884801790529995876616891071159476004075941616636091032014741910907477369893866717822078454605442562406771775990284265739526818133008973497019325872062952846476287097746548673797938560086129452256990844998557383418806774309186441986316990355215758402574242285095349757356823283040356597723270423275422677387951406569758115395840922239338066390783011134690436581283375003820642173700390023832788652344292423319333666403107540987972261820235455161154802602500386542426047657615090468342653978969234955353140633593140118439130275004939565288611745508258913271690043795501667672503829047189915895708606720724242006512526449036879837051148167669780209545612710904350145157794616900532254908189682117123583753441193648529389626950634734333771868704360098610860113433163655740592951649251833258291928990226382367634746065579052471299589449011700212579625501768720592243152672017120368841048714668486544495566311505903807910618606344662280420496037977652796415291302091220482247467750308648225941034228922587110535783320953894031997642583541763894572732120186893637196494387625233193585324977712882488955288617774291971229109706109085038099833122027458307026855406511719938455824897052824558164065331254266104283421752911533874675725167777903057023899639201675400468526563191186492132513400544978552737417105097705215611051173249794903662891641873635803850745982582450281812410841540370045673965554143498906202947580944497197166257366015491055362437704479794333768226244778257596322147722375085886135743300556506545674248210242106311293035906781712847304559352108222545254228214056263119158156818327086422157361044906898885599715812873188894770320903617397663303833742363731166279483452516760347016593878398222510620291609219961038355081183855426632860038109268493416888985981021530168049433909798853857078661432488176852793275384838979890388648213554933793625864334917163687189636854816123115092506105950640630325778853445210366110164538063875661087136871722193908183471246810404039888618486266946871874085331119203868429984602578141162243723706483166808795261633207303686712908832115878797661195932557446984397017839595118331621131115377464521139004432230126483344006337746626094429173110031606838014990216067748331918616240421787906389785880305302684065911440498844414804854030133368368479984117639052585469970364753106438703763533498679740962710217705645788178527365469618188109966723951910975732297643170911496763570707699120040054009587466738380562883281945228969839644979838172049200049724678445482585355194145584026604890618642681750573579132384280156298399840600223466221102476052618235462036339666377173747252597368143073695736581483991377447355122388273650190417132547758083302101705731782587451043446543474906340533515601120758137754068948024696390401942232866137444473026263907065859229085979928895864622190342587759646488855099243336740446233113727255758029462498547011587852993020175340498755456775419832620100487619295930806309110527369138576958506090194632924195220038644595767749029839395197556669598864299924006818234587741172613480476165343364544187355062232930220965592747598447916325317784251372237349225857000112186919100181427761586667121812753957783205830833210303044419075948270045113672535669024570472685625745635034989805236174555164756455218649101781260940145912974853091730732874554099693278569158455901149590072786952998163697609213713630915766680724602051666326020389007934619025409944802980615944816269474313712201740088633234961383155761038008390343491165597139194260394622805201801070957660618805022005092718702640872711943494002710578172534601386077087661985368736967600076529902849711927987808271911492051822739914690598330785717407531449186434605295217217125009396524994602771135454934299981724207909500744949525509135971459240820210289813795905009505348319745713007634907729022217331664870901717715214098028084344859382875360743643803694086067379577780936072966236999547818110729070076228722002453069580369052487395828136256158143970621972215477898087048963185465694318773718071357885405866978544534822186469956938787168901847202018693849153276415237356807119776765125384371350693877066160905492053530777043241900193284224971981616943958036018674157227710312707966049646320824572174223466062879238890471390126024889523221166597014450879196128949427332341781592432683536428878484192753309898662950172574314980703787643128877571209200489477875336223113775811700807568772920791529950548319975813599440538417957381190994295267164707177903161777385782234279162711511997639220621438433820581693311213198869789806596610933714267224964912705027204061443246963336049530352632332115521821868154421594903420935258091505492896041855060094598731788088507894584564403031608866072446222725067409324146081460933813635380695428120044106916481171438576879399462050087997672986952014121058843282255879296655356677712311418419252793686966002754820666596874983647553014544492020055850296370729247927922938427965418251332171098458608154195089094117183797365147469561566661547382786151475946791391379569525279973585063560587931723966034243239197599963977699238598924869206588365114703622793786086746711249112437946289186539046657998084236187008764074084194606988610628525065707636501017547483573147237249075883114855595641642261296710292764780151179332068419529175415999186817165438739263085419532096448832605356812540806444841604123992318823704686655265972327062063707312033547972670322505737135746525653024027270014442389512076010554888768670834977801824203630126972446551103853131545947921631796135239662997037976626888438647534038797023893216444718263169157666138577774791141929156409052968378399171532547642095822974999698458458071217839838782537780360188843075432517250458832093790721185198962088133747703111237904083736351810061315613591267842261782943795615349619731128544413778718359746804951298708768652087337860244882505142715978607019878922812977917812613154476701193128370007583473952772843224731906162757330932215274747458428917069671929478928627525343763761656886144357717513050903036627875678629574946696650881269730718431351138637535222702934442866157220041887553015119822736884397422347777477662696390521752775507373683529110908555839630060519461487632939907322837181426894283024132291898060296696370582858157051035963142831275919269474062181148183674671878426114242264128159040710421125181270007119836271695006657815141006040811845906993176243732742681213685477947558148577027387069164623105899540320646147537594674497233698468041710118248873345536105978174480260477317639058360866635235274617322435456459610412225843295692013776552397169563788978820063567936712756394172977022318668532746813065998700247359864164034133578842321885010108402533990159265414212410695117540668750656330298127153115531693709744704113958621335203785763156976701306416478392123924940926308808298985807330332664381794924757718224232844812782848529698020108806300100446943925306048847231453495486428475413262987873499142456515893944327516759231812069120325492024282964580301227850585357342812006159666230391397494064589119118693809917806504552806302323427546879607876451086022992143177908800689574501634285214521725328213773407986407192493318377053096844287419077851637230441242495542103614906900201851815510207550916590742417364780307578574916200685410311820573881734712542915247695388779165879447090501023629365148348050571338805406934775425428003794063079840837842740478155659937073873788855098150563157125829044778249782504301584211571718496254293516500944229295841004795220033591057507487461373667840101026202063128552733141667392279292742720209253540197411395121055880359944130893501051478103981757443244997928363716482353176178047594025711333776344911176907296628679027216538520369744969423812502519741449009215751772831104196854306977688924597744844571508166141570728354622916172511853072993555663440371692262587684179463621306352375009041044152808780233813803610677144035873879075478110152345465546108724766763271169747780773296920305603640053419710651849190379471483212027505521027220842849291865519690035217487357054370655315299507705719530984453782657305577700974991090340634061258386307911368611172231380094417548369465125752414931803217023606199643877611998818816264573463170353833522160388337950108970742229065600581200802351396908922353053947589485256571649707959530795693380472741654314838261470083506611775272382739771375173896544014739751571559582386453034173185496645687267539630484841609829704671169565724253669571815824019347074601884202688898457733230496679102385116191424951259371507267335782415918910149686430691327452263644984722020516520058041377077848933088183150890591797784402309200135637739772162989490605101884964275429251286965933291551161502016072648773288791246721779806986252984077363377733983510778566423375412842664088692701619493248517420146673542318408704498679263056807826470838978586149625259908941935398210607517902607608680545657521241874675564440122283857749070471179618707304787699511276653190861317545748938317052988763616958580123499858856198740652598664577408752458694155524265382127470219583096348643540910407008635959053872302386904513816682140352898829070077334762763720403217936987906481684750978313194290594353904150343008097933682937834615299366498365972107361937341778997057510885986034948984445148338167682745133030028994779490469591216436924696569255612450741234785656285459044167039015683072860571498634254491593098648344375678389237402712942817427806033936332212036585463950161341033679716332900072128100260773524515660410949935512984768344656349311140050629191436355281628401740536699251814897700842234678043682320179212785340485148772193470838916316510130240284084369586288880083949990040220363206801042854819352467029380284338977027909607657620739041771425144279454217885148414888975901926399028516929787394401846790258253230347432090855171477017944205638026291647551109726324527390456170830497987519642966257245654912570129030503010863595216548512705600625241364111445092108946210231174383566596793763940349867503387368185730366007816684242602123549306255630965012226017068392282627262573878345913357839727474019527313242932425929283808535905639582285490332572748474281504347427545943874518100170330866801475131830028110688430901410954208579707606007048704928265904461361352872841225279491863315792214310252490589268652831923100988002563510321402839956423860322621133445161102569520180775906427731539690819336565818702475246530411690120634062391829449726444296595886186689346495874694439120246143450555715058450802909561515447534139111600348974604255941956725193594121303555122934363531087921152846617407590097352318725711006496494220704273982220971676598021617051404728630023018012908927756044754471047241087272533794586032117429975846317051420838202839734138965570176478335796703743945221972962466636740142751285303927400982423017076368365678168980331815793045632252653901346270940367041084006864201166993796859158058959411774750257817896540589796870831857841013340356362651030233099260318671697489569890945727258568351203527300088660433639098711938497019565541153702452697864983855286183855321892444207565692752811430464974501018605494148997775668303109987578928411678735310095003561897317587542127286870022412452866817604722656419000374262019104843206628376207120970994856229116297693299724184210403935782294370007907463590580631663952566452599225364393760203587929650592520095820935810540628988962919566813377867590424705722914663247094534939925139686480184410783001264192212195391078797777703433700073531024950905469411600191084113793464850176087792694447944705669883288623594662155518456431572134678548572630860531689674687137316166007612590946957781723420356758360797307707182733783314817291976677572966904438311033528571626566125834183423911061897491381849164370690934742116901169331635760291557766359344088383821784144468924510561768507704467010737300518592271397204050815765461060444907205199255814240445783193329768123445235578753652978695164140019527142984004068147586548847739021599058349238563827799398082676643085353537069793269382581893739198745139110258431976424716398270987310645075570120421211803528142790701477314586150808954351505952285337959869068460931348322497552150531843302170503784202146739305095468066712353092607574504587752917615465372768427298990427180609416234630075105391507682979319792838171907297809933426805659179032423222745579969227519178964097413107072505615760744830168793988746262332080296598157107130324200376266558877738235890230670716576425528402244999805271801516239924751661935218295945339194072354130922756323281875513954673275218071807248072140975013753969188443154323249431280000036683618104113356228785331244880838806888184961436840233284261902498930434438497980305393411777578781728866730038153841325134473575189973260467043623484409971175827404775777229776469107842720962716352101914704149690516203962805780178770054305905327187279101092675428733693304370305838553841908678708694069972198528870278502198182134466251055297479032507399071247036237184489997118091056738091346997626788181390828895100828982025192691721427944431223822898029490643505406047239526745145530227052468508395870738585409594696668027635015523765551937328913877588288067810120024917908124271280718641064954320626750232504571617536196208605371996125317939875169145530599300157929847508954302798340322581120739647404727321195927754658969484044445850631541820362637469713542128915621051981635009418723901637263021182307133018799697966110539202018169812675629277359085505874132417216073528076282452106281633850562918014449807043815940043901777065649088032488626169247474532362612133829638713982082247623420588142022442146340962728314932023563874955842027709635869025405021173364854400600952771082859857701500777634311454836324110959264563027810607418997204477782203010171376788038462099640292475443017347884635646612024862521062737299896083857634356587139905883761013626789491498519784081339110633744445857246675805694198290049099232079830887027976712428602615833316912762389151634049885607063753649216010940022805641925360095599372746059256117171767462795874207814835172064557670789433062069433982894955840406541853441894574852049586174157116314594363766166790805586894899766573540373687592115060832337731197165218717889577933634264633561815026781979545743354187540486516470634132562924754703229550244496306736187816787164986393386585471520566693581690470088033712338670213805009294611351855985445117005736143323802137321903669810868818566241511312923372355155138641336185259992009988692048967745822968114441633522310725660840006909781342986544347903412530121653509461545082561605528611175322208227967277068058234379345441365134939496215166756632980327983255344007269617145853640350608093668863585148312694030693732655239526486783126585191151012879917072525706644527783069496602243883793842843857353000557230012151640696600905894124977356619108267981095571596475697607480199095690611650806143424591989696400371623775975824749358494374938961534040306443405475480104055603565907828738770471931593444938461747283670478015086557597854853223342844761042433106278676690667665218581094475350406419153689602844237457855548568064228665616918669421215767116522160343890343146273924689581567929447380950848329565589497388446225707727788278938044828657522584154919201269446149280696589836521578707238236218985164087252534283484097048033878022924781706058663827960069493177430602254061138443121097692881710216753539710682066610078017344587680491293346829079984944353519100100294278249693151297170227651859096866463844947190041643597830766270195328015886526277382939080718164886351143717399515208653673651013705899321529930402968061118828581266709865465245696548163495270551184670386170590030473190124265417823081970062129055277936220451900167409143213434810325224210328440283213674916802050030844023535469653236645517217371548821205104595437888078199119420133302091130726954473717182381222208633516986562515394872866442036045318015636711270019839309071060138110688302008337673357877943508651802452724841751489190323111897464658683763212710166206281814561013800044088857921703759225687138217379582418785673190773188013098978854336674238221256158799508832994217878835161869756606049978711550560107778308521908714707820573519622965685619747872399177877792163969264737043301460311916251065968929748242094750667904224682149735180984312506976175665949790067226316226816298124549743580519296296701222528846848520568650487578986464227453661757571972425775709298074618837623702264573421558349306433528133675773806497258394490403815869734284111770901080524985654501681125018912312908471815934290844259432573181362576214518818120035139614624315014691207890304799955561122680480925712580506452138532981360649733689708887264527982364363699048131960820272653345381117480973200192752877981030136020442963244665109137143911772094353830263233229599120417362819551620472033222010376204893653465007301237938479947334830070371747199205449258264998834277933862603497351463243944719004020475790177019588741349434547708941178718590898221775859178603960197871330827419873339620421848012803328292445651538035778475797545362242103446265789900066866353167503568739211439052032357145897330598711212822914869712234213122004958818865730469624704094333509757072426618957897236849516604697467656636675446030314337425268327397091650862281156435742587301877563057805141788581127162704908956794304575016134080325299573453809238314279417716058579129367541525108877962503924420231450699613059848972067627034627948923291450010745859915638684017179810005089459623372897572023068008087236360567269229937753298085451692675923482561621083409135679107235890156218586354470986019842145942140500349022263155092075844888532166495714727116156382560200775922831678428326397075772403280157438630716677652800193740642580234816930555738543850407132405347778767951562336413344911220269614018990539903391830599310874176013928863870969863827197371620945321804974970379162012769690812535956424798510443251475925747954240781377464956923080872566109590018037913451369204953949621266163967447682197896381769559916602630561453159319562706461436373422724580347641699289970378332424499385475897921713577745854012606360628389905143484163738763094517584125198438825400531085324226645546815101047077070617013482373000856733645781443173844200326906292353567838269243115942222209293850604834163900162363764702340041672622210506259193270815689667596676676916053959031054406000493770491414506379715377220140617658731771858818237644270304465876896593253045925742656445558910221156570742442341672883054643740545504247842930051232581188782497546281963317769455636032372478829039551763167040815977993730454043075660666003957251202834980450338354585120792356623684349240800426474497586489994481351332659159042305085048213564929228863719006769782384393971848930346437705638953284776306947151698120551995693470867619385695707978329610419499473954670556879686647143009207919508890112346242292560279108155657485931221711168073933425916943852974831337861327801521646784465288560546947022373104138547889813736456731923717020174474482841243316199043536328745948546666168946974780642473103303598869834469019797939180604318291901403065303982415565122613952266814039089923205485882862986236377786290831883539401780769114000119636773446046377205987207025503054542302404878548170982403442697887057071968796723364441920671621263973848804901511807559252323771457333997899879962317712608002382422657859203169372382290330685418545328069307148815800009811190826352572335751235882833546658334956109893096236970332337815737014696259931079030550922807092342604381263444391144817424435622366264701707075054433041477707661468480104849552413176402775026623948822961850329721374219307678031746506484231185264425861632496799049994193357785171518404998727385474178076895207753837882054961397013620933525583822540921200218006560742835754647253363219947872974889838590486327216318381868119546974185798146380129468457459797826520154742415547992607264541999636746487064722730682286476657447318618823750492936416962877186289010772731505318196160770279805598083861663222479697770438873862834658855679640356162411065015120916942091217421257427768891117198361307730939354059305345471524782007449873676829790102170281608094687365460949317871532303330924545092749618126476705702402426405938321568379870764989994923765613065808768988087130988357851345218818357027485576081282476289155531398466302490451740587977050325888208412863323270117337048787895693644407266485388011473952585009088530267712038448682806842297691424386497238713769621883474428748989698612673049475518909211904397595148615767262020374633917807997849497162050381603416645961685519410068890705519508062709001764358004774106745158597322707498204021468595527052370225298591542984922357794231341912352296380483084038792050814070186273640419279449001309613709509203138325123861724470575067087792426934493890493916163993051436487913438008848218912182808735298157037883331199436687072732709442231288415921335068022661109176018997405692368956399249230272828888134369261799640191697115890246730866641144374213710140522492398890862545923203485488797425176577238950882274852001205189389276588321877966712206674279342796657648695130699130291448827519496705506181268366134290478116768446572016883175964266711192814317319136423768239807319546501492279197826244147190620737948206914952337424753322242731512163762551631543475442941688796106062342384679650445343502337665013926110375561998166613831865979840268842245187000735713324555219499233814242159277668767438117856731033479355522308216844040461124535350497416789995440454187791203301915929771470979665182681494892819563896981723947978079469648923905132867407014897683522226266314050598691348865275767416901929472989164296965874270538664696858997015518791765723183332698978197526641443480138546951833422986020955422550587220519588339541262509922438235949312743526291402596314732623508927825671793974256405018320696710522071615938988578135879844748098271032228593480757507247830230954441836236554379090720307602747444334707583427100383487680464454889472785583617784983031896704770618520460528009564982573181968020002845971020150434400726187198336227164329646397035948997806765703643367880678934660892705705947286508259693788881056772600422901042001020807854150159203763104181532854087993158145054200030783624295979236311416199219711875172503408171759106330883441261878798615466933389450168268455574335682345461947593667593430066490336963549141050259079998818408402563458713089577011699933512527307038950691711076218346766026135885949304310861811756659947221357791954671010520929145170630377779788831925347827766884723360114615800804036156133553627215704038696532616686478693996644527094068827958137288528721045716909562485381479899199165194325120378725170295715932272269064939942533589092147391801780310035780098888004457152671914189032431337643599030467876492691484303077557199823635175484714000956568407708088442352439258802271820762945736790362402193597263123775839364631657475520089972962699633860293240083206389709860873031902383049752547573460856993871933201658727354562525428983959304929126056482684342592604703282980450749296569021467758952673787359390138377509586808203047509359570771305982963265372228303376150438854191827693011751316791583155631877724494946340542674728489595024576279139449110612511810161307229087103288790914401013832649894240285352238702839036776498080426555087393134498324907578497316421827609725644212953073030733003906692706494685160172981734429310367332298939959999762213384529110062519595441385017168653215393564523410786593022147466509014744452517735457176589675451928351824376775368779671888915138106648823773078212766718067401748333165025007575861679676283260621955040766133971717441410408270103501158073213799649544698933316733296539727912804541217089369476273816602167908511459673109743122352732137214201589345982833020777099816611179028529584073207169279643732238359370766371992689783598306728280824126355140412153674664128023064871302569465789241712130649822050628853117036348056272847649888046409687010014268872617259160957466095597905602090376538484597082042879945058835360171085141300089936422025935008082585942285947587843523587756775523767421838274475540383787056139900113708410915886403969686984402608316287036717621801435536310825260540544872322155575697106789960993626234749078605579570761700678592997433441879980930638515554368027330613929856663868640527832927250317362575860082991612448678973027420425261354039010110027673516514869580579876751037527735524987017403665093672771874104035492787381121026590647485536280062125013684999643146434889886546588960610608276081602518513111370566586160327040935793418889665530477199245025134917043276708846801154900041706396346222134148096725296399997710079772414275128571057831320656710855049043674785567664088156982478587837268446832773370726997398392824994556049060245156356778680506091333143808020860801079793196948528828530094948499560463203935408784737339528358505911837768736543418410759701522460624589130110960595239754804289422292608812059861232003179046316657482058478489283620183469205336193053727152986131783761350328730557781342417619714713316013220220023381420264444470364998091148294819370435527088318855669407255183039090835612819974824883672457043347388153990074983646162046097235573169996865067418032147856254154825313057771676006250120416379168632588768158943673625431183192449848215911568975457547150478365164723003251466882326601478036482827788972843232986092194331731927423503827095411569582473465803448701394298489066426373097806778262414389156934890353256332978511550144348201047188630792272132621109413337590196833980017366191989771124739867420080176271619066199809760586930437217145140780573672822965504071977401174296414237713066327773149912814839448147728638279966491800041273128859850988259208256844057199651917521367111053776485619339225110925679946034234965841064456719733161000030420699740796808500480722130606697224961924883972630206809210847192016994044908109286942707200282804443789538181707724204562438776219160272804954838012339796857734370675073622314574520172357405446246829994141763521737390421332769938728013983663569296248386136314393973826878993634443141312534480370586299746797966147002728624514113880578174785367178672342942172552035409928678794016766795816211167693606009327731521343507892931375530163916710225562969296661722721853006756778230293217873945438001399435960715551088213325051004591966058640121696006349764027697990090260054690310512531228342639148602250935764523815563795131133527608369408991727716397094902120156991892171314904863115786318913034110798211931116601396861230429168833852716954506039996050064566324236481983220724195560636255949187172586486240654529377896378759940051193760016543120945479651919694853773375162389679273717563170157581767291758504091484700150163008810594692313700982017247894600498535698830227676993640145184562520178151154757811109081964558276508109291485907219985088362052984610291332096128510977699307033960478495615625442205230512596559112773402886731185761320750005502932697222640285496577110979935869031425616239343188901139814315140007906231290714178529361123340562466575949910402181812983793698239742548115805676062460468788956346796041454210581530270082142530707169656746402834422698866209164614368203245716226357295675326610072631213999773361578273284403548031421811997804725234415828771158499227547095385254842496376118847225675179067835989441053823543266048487980230976120471512846439297533446704913506615438749072555832209844688067990905127161882996528853312351727239839073659885615855112993803408759486701174690804016861158073848749738897834162340117235586742835386040451503056164959510247127653192742102484056067876184460733792816476697600719297497420948017222829764888897632854852396730802587397495504698974505575004623184674328512522546257436498623128461203525430248540934610549393379498959093211566588377014992611394427750200078236069627685610495962560807858157935510790160664317195792612549894085603274548707472091507581569037881134693886205953510714808341549675090618974440943713251585743491507150491630996444150155382893210204266811519847461760895555539764952683576732810881319628724982841092878573176067256411617818840563219736618335440239136311805446420063675989166980561084865243437105008055934550492242555792016061395824026675622917243703477589951684079962141605339694788224952795062584136943435269425635019374876730973412831359599008713973189600185981101270969288743160099535497211776670824197333861793234755677585577910333703659094530699787822691395286607236402988815799982900218463023698135697107487098264911529961009118783698340584835029795766197370260750200057828979284408010466688311866201198385361713237923426216616085942407474412152428134378766183980729096186951933698936662682960632290712993467517847528132351323812744633869727593911010317415159722739753350677586802573249994394183146339089003881519072816092255626011436908893265126317928905930612390492877862423544428261171638850787700701086856980845727181906930877305840584392301752896527856216404185216928162066854339308081528140671957898765559839955254892256431736028032122263011972022177591026623391799880431966668933522803344449889587238154287880077386908186994436955208260987278303123118705214637112212476659988516519822119582333119960047664774501578803100874802709336318461930666103060572683725308369085451158822242278086094843916125499308977656929602843500552760595486551032699084635379335628597637902920134166899890401523500558815334631704401059363417172640685098365895420905888246189431561573234557074972581372105879871825959784105117432403451405930787063835686686129009484702480560541756354120018175327351950152329448947496777469331270880188739510331300147539517744741206874820385128275107111258405658218076940410870796134739488020697612136967969481465586983727413390823987079448520255101137708203179220141465162568229889546731473603364570295385577689778968332575333329305722919776885283645769502263415025456291655602099279792899543810214107037722677503027958943990208023502538599577166067696191918967575654967776052044773162090866009605135673082626137533680965738587313886486674928189697094178710689483646380527656211930032313853758946668450155864444910384506409841883007429873546077658596507795054686284385493786669180647266739579306040842336042919379994167450517389446801828735070595201481543559249529942588949556873557679777554213111575730401540689058304008408553979075708089575758120616360171994400275214482118942034688930696301746575763680725838658417585773366478786044393242834919149550366460574462400924293492304561745708102609253385800909304726026946064845045906330509907108294182625529245076362722836845694204211168816224390602448295539568280153627290345773871379481825003403290719256391823422491489343715975851214238521053088022343817043079242542960247903975106982975123313540710035345516774958409816125913100626247835708143205321069493860279013028752798495114465662412303691519327679782702936414350243367486916797365759051770511459988565543610627667690846796115784060604879199554839741974870908177535126888475535180213776042089994613408660767112914446498739702099525056211723864428562025944072842017189650523947607589721629580957844111201072582116577879919448789047862946933473961448414788501702525158626658082701081831450116159445819134167466042479977574725513732992721582840588092802285192503881629773142582917959544318480236597556993695531018359761515483732318485852467424937026644860103887302559369169205988754356009440835536380589000732076151682868486128753799104243750375199699762224794736605709925305194382644564534374607745056905434293304053108307572090852207336623437072642547877359092824524749842026941826900091599329738799653727202203466981533362687240673679364649969165674997563828364474002128970251048199973511975986399244488541249759457164861093290364362327213590894121562551128280324336302317990257922317625033513999859238457809142434822079434151260915774039505268957725495989947967668210459338088136338989717152600921906425172361125481725488789623380476992132021812004621312003196116598994121567975007929165290643083893331964985873559141853274854077030233472280939812590346861320858533338744974612922517521419914884428033500492455752037779970718782102715926919297599482144511206271097009104904714591036318388740242167913795149323700145804376280231596747586161622307471411042392882663408048839239453703052757596194398673651915728340710219549759586913594365718612738218905060667934221258073569037744590031909359401660468899585509167815803045898729425063299409781129561297099812685140146497565454828542760232868394282937592161251557009047159114482777718900490826829544044180685100453281245764525467695775907060191076166142835469739689518834947034341153625026941428734619334090263054003907044591105041418774877434597152275061796006369945689196930606041172253895548192234880192795915443258404527909404056852773064704491808672324316275684056444699743957710907367555628307876515774459260805191519739713259117785276597735065413394973921363527365756037089076971904566261655888322462277167437741228118123831791800139884903571418137349936791593380435618822461328359792095507780371182852837790960193394481871475776357180950859072082636221576688943914400645355235946904821235468406058029715892618308124562917279507947882512731769519917139509297356065179870435362085290887701237752412238482240009474877945362168555785161401338721198344999817368876609637372310580444842484744914282609923985985785636478012588068483934979181549884913215179504053570980797963727291473645409923401359287809045817159867990427079832492669145109455539627660526126448242218708664652497088784539106199792196427939329419960572168746264700625122557201410231844228007416860577317963052629705077665699065597291852233716536152509181947826336762830524395082504169420771363076847118856485849473095007744486298162767052892406281068862950988406729047894403360378243120808518211801989264198432973456498850646282973715890414494025969594375843963919810133738309139436569690422779594950232821013015440449923282830961215456148656184078479906474132524927393994548632557441735797460189171181288272762777848547538455737235892815280549224090903368268416111476657776251962485824608604150257959636233237109344392903413119453906436532527778273856275365300268496474595628992852220845510647686726863576106454597571253530746827165680396207023367454740117895693145754877815646568167346014892943119894253511355503716631711124134203271573262794583962350268827503721106236437596348235657930453265987632049137022317224387439399689775129698280761662013986744798891527687321237184150486600360751037666484076382352288633590729463442609562198207255596045097222598658035654482135438586428741278815635045307896624916459349684138367621351140780009104958508541887728065718008286862693412402645820254723749890990950872325134163970597841824919551753655304594086616343513803776422811535515663416322576219656444159976858833114771097447930885937770613440239874860945642645599090369270712609504449451445881334028799683733541701754714233464127312759821053938024102487759011857133645983127090456417607578346338037611735863940624356062721842415917482333617489633010875104298104560135116374295994089093836112863050087709102207020707872062102470582619737285183750079873916975575247422579232765208971581164883753746796363897243967185962584074156171022194489100892729370443951443886404931232569183594938332214713711714701964223903523028572062097171961756776601309300808548344063285230444219908001056190275016802903737625403310860613394123030283926602238132701819496549735815504322740256113068907442283519473104671123922045276279145247098213912680788080635415468406940028297882660440308875075854256894464168746052040214213335839440833445491179350193438175913801847834935424972648962731625373811042091209656946199886729368785767971485017766615539209209905290855331300557395872293877727413816275079908167376543949556897187404282964677557413344853824807839371879969770928248879730667166228639999082528789724483136860190232568209920402100357946367893772893531295379396606971851350864232195626774201653441887498515895513881462630003083795422150522156491429731950126796600191203112500403569377158011887176201778081914646038048347858008936736893127473075088608351333538441604520968377080611175640082496492440736376557694905775542125459312274888793960361652216874761458209477918558601876173363249557764852553641828121838009302844443407542526290770973341375576717333521934937496603930854777919654269116536604874998762366796874927614753817642426653647694244525205701773463439679170724537757687489248184764387281692350716328791539565478014079069030985803594565558540150426692538429909329741286751410524571133446813477074806418627225847311824026867444876119629606093054578815239512390590800288723568780151735564011626986712482052104588921798539457062172202583471223700737747364608638700276353321015509558769631435223591828797819871273015305999558385452840692201965227571927587812441774684246269268281426761631611174555269521214402362407710244517771964269610402925681096260646712491460058713015945886256461579064391809644508396246663897235326851263960654350563034126219397089310249694763394567194767978036751625163489847802612114672013979344401831011346168824753035896746594416034508083038813989040087014939256890567326345241592764624704285142405037442324008694617261693867541047268199451500944224961873458860663877831423280339228526080373965846299339464542601336370712251249060973277645402305583578179088873583443738646108481165058965051652991115629252380439613233505012957702477716141537338003177835919395171976563434953153144857499792277773483616612075901493915722181779535805092812992943623842095578746144261789597435045708793725543191781675421916635613816267685041166451539948288320069804726831168155039349827791853626661189077346230417709125900621718762484519490591341921224422731257625806773067276038032005822192390380337322267827739758733033899848624978372611687475459490362424223298856524400508754874216420579642790764819768313427837627662616751438552734409034869051115846885315212032602243911895239105117900174860495691475484809702051587208540091042172926975228192426006826323862835313318862239779257729591803980686232063309452575377484511764560807026397213656898453664412039934778914548474145288660807811682066579601138556245866621976757156672353110508187908044692816068722994372170098494164093731107776295796039839518876308719719697283165412563769713964319000732216766575425174444390490552962728075350202636455657100830648816507821591962093261217220576429395361370638325454898242439011413661540084750710480222224076417110854312530232370437384188003913392887096264695949575229257720609501294889976991337834057384096583434644035568001745185464538834102659291777653798626286914676020121401582785333214621587094436230628886234024026559596782949839214776882745266328464158444390679278581913773535411922116455209664836607092625183695768980102693197511056003029201716189550219270471917581469111389429258030701453231218183304619290516735958959177132247020849124677628394122492751370119757101674120137275563056433891192324395840620575475057034623527774891650442610268753539383666661013752394442395968531216817198275446678647212820166060310237572329288908927249590922622717238458111701394916059856327237376831503416259132529686596869752286416507559668289946998957590865718599800438105823050619636506370470636034050363125930359652498726270273929219124589393582818638400023070959580638120890190989272001186171806247334197880969932036912484952830241345758027169645976446665612065053894959695782510331509037384804263837416089073341407941513130590682624889141483879057120412416971190492047531702037113633068330015785670153001844821078229283177186097697671891715991406030072574050299407109320755053690381492542830789989992472965845231646399052416124726017684862635325955575790586307788250196767713102922790469359869204508004372404080318781179626536094946976671263914573516421458533994564448723658000624332673657514128288148165237375234049486438488919690781148655228238523250544047152607419937478184500617057070139232993758487741632800296779777773386380102497521926274644284173466649936099529580403197366375973047485993963539355150997490987251911757567382012780205780959415987862405686498395311968512803577639966885881013775211778910643326350512127006758123524401405858031930676391810787452310302625495478859800844916629626771094087842450514185468081003447719669417991390145490493310412182367307446797339523745897406861822619914529664264969468224386080617775847956322214671313872693404052181515981436419238586345059053015870311408533472385329224234217782881630953302525749410355406949546380049918009862395860430141044551330363596073056939427544986314683002460302585975213267524431508272763542438992410614016547819423696027355495389383414950175832810182117622269503003884789396846066642216627943164078107240913483916748275774792506181831117139404904218554275561091827945279005842855450572014806122627147316634472615106850383138302709590726853003255918568956866416672634554100122882427509801177894634466579222090572425943044812680813104197222662099229580755504391319588639077652016182170633756069505155878068355607613206399964270101349902369244836655401522918667632594012871968166072113307022128282573976717584507438238805981275989980094569087830584294411707340118528396769356366733975707429209111107589744834761742456915813827849521740911110041582221171078422582121388205697942443710359537268385078046732216118922606851789214028146579983092777196694993873157116115011372078748395972731592904845781915191971162867484888933526920763052229266770766310855494888999544390325091460888657476926311156317357101199380443806789670455316985964245110868669887814895358397257772114254050942552667751563127269108749135971500470167650781103856822928321390924414086133901905848662766916515038539500908584724792646530881131729960354607856506207744499666536285890883040089437099321975078723981653673142443200046605625699123971713463415367000577947598296138576712907164114997313912096178606815463938687716300575759559911003685161678178561512135966832038166542052475430164532257666180164418972516222798289487411684273594851363034855708826844546006247069702456104096942872215138328850580774824694608897898914517057886862492591700434479674838216769918622848271394700434200941638514779867015586481252298108975015438889243448293899998675126991713797941131878066467582799115569193486168676128942409501419881998671683745775740921357180186215661080858051524033404026792285223369920136218449165019443445519229410001073065200407456225270051743235709054283493613817681513077359978103938638306048584822356192880047514763248649979811271992521114228236111755308459592283873648451586602046908283951185018682034320612567503031679042058267168865780404454900161971619520779316440926406892145712789473822559229417442808378805162920589568686272958400588600627637618869351933131686519402984798196512627537724780409603058989060211843014565642314244393402096073185870025092928980393152790244546024353576002068036163670369111281980025532395155472123561503858224669394649575677903708605045765796826548115589879976826767291530405441408607491687504879161779188090646146727731776218406115253913776646142493099026973484805868679787272064334557989302787985304834678157687601181114588307394957741861555992296610826146731779205290113857462203522440402256448035681316571726167228874645976059450066535749646365330390380636149798302488183086141955508185297337507467208930386654064905431716643495584582095210836681094697690923342042347221858261493253174578982462232092236519515293426934623421837579786338889834973617489529656292822659592929204364952783254620207219427122228556734942180741495006578559298979415057276778556228131146653227485601824972459479975943616527288097464934748386598899667978554247104208836923376105513429107147801836195318667157671446405809116504162623564935959678829314007168033783132179650672164525947862787979547630124148906698823533712155519231936705604036951781505693214340074096180104981369063993406887270744065587202393725481769319967775158947263476073732659688701246425506159599875408258958840565191653437785877026193722201787837764360293130078414253843783094388995502274421696313133054139219322095686269471248858749135134928775740943373334091434140908610308872611844724100336550401358761821033568838462262849128687523564939396200064499597038982622408799719549612700486693333351055674182331685889929646246245590190878082564327087518841905427492356289500008666392694919427892587010594244318182228218161333228546162317208099734021277336177778413679898912531889601411294218794130828163852894169875357750354548335489379691293554404550418611774883857507404486159776739796721894575210510870855718399072667149725766484870850259286385464187885351596443813276605671185004389328670980573538685510562865965904973215843795785227225656050588169737445898997988221992688422436847703771179121832298691566326636569213411682969116211614800566338491086296231076676144983040178111932411054535652459126569753978017506848131777057270583202379271116714333962465455005708975866197420790979621785446486972048360080049156466768024143539645396703072736381049871052338208608498991226239124825114307672561974890835477200407147305761161871703057612306758757832473697181258789585210669148021602159686250290154114098732386940795055625761364097948687096426357575531674139094446658987436088473194651148553924207097581647265928171433603305451385124680633268115946735223210692262195267605715827292879649677364514922382946900115294360070214328931487225616866546396553636728481881271291875518513756827843981606194998814407944405918031228792653711963108643612081420039227345427215274964774080735750767429712218788631962388103936131588345921242733560801504261613662374902070190858061858979772233974741335323795813601759248154633851975055322721120742203778074930455198845825127424036323350839054424089317751269489499172497296901359936959658828029474754249147284594834564064379626435756074573229565380613642282263349954709935524605254089327146392292898959567009719155396804945337119340667912067860939518565517896582926709369938215111249781145517557154084871199715540161473578910335301667893685505887318673183151173636733898214256220459835373534556988499528907316902758649946269956914783954893376363713413509518663377640269718014971758580661690155186106072217140098363505848787502743879720466183284793790259597120800628641574153762617388931812406550250812434370540435299680297502543178582363856419751471960691768806054672992938051697710122764644652862501455882487695946579965578781323753524083543963781299727847254527869150468459704219147050191387932216146863043694450757834224666126563622220495400995931478198840739693471172623739741802350937781629781060931557542951276036538368835366171134937297457943256787306218445771510431155927598056061564782139795526551077625619717382386495960127416737544189101959038710633158206260515035102077656083035672256209948583544347074646822259198385477368108521237547794539256838647470169681069567983161209578703597918804468315456825666848629205515110337196826357296344409560943921759982937895108347063881729243370239004263093440330628796894883366084792395017978935467082160051025080368713148758286730915690700240492483500133659207613468525728331300370582248962142129526264995449428541397589533465231523214695465157118049465938514426685925001547842791991859184866255929057019874699926903398147172874215384770884077814791492720775538327362106775915027995805989005855144675568271174518189481242049490085159285027930782665705532083269866491623919285166302728663762848821564837589024407418956162837428442867254710107917772474455917006997406983778242131768559933806067829356267167612367279157889813553336399091023016829042428531711199982768756620267861690242107776903702802356666901301721064112398474859409802000951636446542605883355384665761752818845261386071189993242892812404638099504642922493737895844306641823629339584738953621935531997978013140742819254120548471205246803588246617787880128115124629765555726021568431250381212541037522008392362866298490595849352958612573323921850727750301831753054701045177736730837479370010988125465561527335362174370834150205664755290040841725075543832954093246404716331893154951488417727244463814089794046987478678173358394270182996768604144119515536148874952397668132523766016502202064258853435072917338615646146626312763832944396611923286908141033653402682724691504266822458441509483374184113570559804657758484170123020176100109223612582190557943783544878805230977368821806830555370879160567620252890150290045838099452509140827410931688313044992307932297483894309830492109210820202357337995234407242461738541635373648593379841218069415140599306609255862322598942750995102289551962132360979362911348966808022806612592709511309043349309791496532904891113891021154047402232087958254843276721858390717436798868417077978620930453360820895998638278386143553568633878383954585758039208764207637747505994387467482102866342140628526803081975611609065746614991840387178308773383902303005221340431290675226808856380068211211514413328512066899128642279539240541852752431585816845697239146872819114764990470780692964518837975529366470928249490711164179171127088640639653700549815896515116195201740801424605665279431101103892111256299055078155237871600812313353938235913294552028922291468357986613654916113590713654920742603932802476904638437067723563511581982895297196056879913698270636181263673068334090387264233868481662443614125628249090762543667090773140368993962954646708211447568401691170091475634237499726764255645598039961231643392653765918846270396617213883779971394735044020452062373385120272297149022603998233700086578913356136319286003764568702811136532158157482872496803040184198960080795231343723518856870271221018958342286309055378140227459958648627726494016593882416732770240879451536651452289779284671099164161754218397082424467719339029003640941520282294544778497750199978861610049109851155131094157920777544387281598552698327605805830096176933084835712672611495922936262577697173556498635826812726248153719864786644080330267502794685585397905046044364797760439839882817376375628876030060409864800236131860859176218950318778030107743338957799679280723861327900543123654352174771635042963379914020491187498427386222148735080390572780417177270894982601976194418589617546251339293435535063941602018164118920503760116445518179501558807382540537731747713518870855343112470074201388256068607098095970896163067431937815918714953150177273730656648769131216572006876646619661705414442376189866981455459375232955077507698280764936177062739138962831460470064599693926516688417905057880676586504604867069594912260411802260572899470190438728658604489820236630405254387951451956640178980170329743326960816642798005808890364866642037992337010710466916132743015631274931689191466452971115756518418024513340389558509006442195799206029700348697544607554831785276473119039236118782490069592043804422092200361108203776360425177338262804885210051880473820077317152272499333924434490882757043168297913315298484440201043786712558028165790731936469079322458987995672146731543586826727298410405280381867434943585759323169326401846913367643976127025954215550499759401960834744451425419576417780034643506450245590529397059607454551468340705610351905308647226097052242343076341845611804351759899645127046734798464839028356086963634625982410713062141975951390774066475475002328770973217772654732471469657947270375953008711137500003394273321945512599348067732293671573858204309629196833570944361502332379052874349636130553844029205048818377819890334200273109577043207242497976318099060813217819442479158639668275079599595179371840622948639777920421887813460135581491180414847116053471782318089770922502630881865556838182205462614272625863318075013094746224994438045364452991831063452230274902977890582175469119519468435529555049001887101805621284391248456035889197173904267820200223848205865361776094118456194734251835588439892658945312472572639820059545598524666982995196356318429112919826737871065791808072021291717381657854497170766645726965451430968397572627860314582066127757754038739658552238827424354659993460377080763630281916334184757985273193410906015633444227542124196417656495619592808061691776544830563937494184790706094238434938448280377988794428130566526739487802808728252323577687659025099501054428061396845238246394011091896826799737615936381285725599124560343081727584743153191112804395623511943243095499500221072477705906187631656646456885252079803953456383967222365547697589611106030769223075554763279096833125852021710389441537795592225814653813328570105730838031704554588757388842639144229574722310091711863575523013026204989198562845580023488198415551763717901229866494161165502734943080354277020170820344173725829450875168738621058156246555740786376691762901180180007743094251662327909947608007042055884591872784163081621726912083588900484739091185637936774603514609737507834981791434756272675047112329111942869150261857374364827025496333849958883438828966300914462701692129619009637448485162956641082920970085752562232373678721504493273917892107071870803290115502493351291351885896833829829476686955096008892228331760605997747082540627521333104559332132230994325436160983283221290092129645170708756337514592103540494662162041430853950482053409956005992539568078224537513688777971010893695610607088054942196046102879159385076698160355748061208904515408770087091354707037161574158533413610001312697886263156101871953178328776249547676265014131912837935402993089299835019288139320023253738435492736846660981421228857470412559458219728915904471053056517320667311344598362229799690462657768499613615451200038857887375988735445590697021177419587979382561272639647676453903808307923885112152847487153547786952613366762362957724846704866108739299486757080477942544532002841322728469037831316869544950272984232597109299676171152682786617375381062351567668836755675019676044831077847178187662261125299480847638978376636241999196643062916357571200793811515407171007664527132970357365914842779270122353443721425423031805594728133353122289894664605792295758944682968926166513909060780890876999601594119295681638321603357870393692201341881192995486259486477956652095815296446627619229912086276677066834149525374007334639437502727437841868390614123483163572354953581876989551936457937618920374306364537950350671954379068127963861712492614341297427088492292328628830049532562910804371273895245161666923935902691165555769332769886351999593898566782005856140907211656100187657786521882465429376651812931320580621769757987160109337044654318920216867407419372364635713507328310198802579343479255925035848829054724663991905993009185730389665496881202159744377572853120602077604020727425218133647707758493852003077536371591229116803561813979303172233950727384896027963207736456399346393988129960271937837205509445543311295284498519468611094822447613637782892983539419162411495939318795849770901196068449804506110656807212017758243516760275742821864395851450263610132130840913295241962577094527896899412714269630443085342722253508499452176413576504758147581246994248293907312013052960198207086763335764920386793535664459523800912083525274213476994808886854566402115269512338375290398034783044931606829205720931222737704463242076716437623741025078336651829457233792472008460151674503599682620386743944218090671473575246667307703971945281329963612343149252515334761244052659335694597823370624735531135783275475099491712979872635351421178154069665789868275662883158488351571567427716954996957248690312396502307086947368718444624451449529483351498735924404580750205435966708803537148487808626833398682298274627770267868407384094675305577734805393833117803484879310535530975848505802904132216547152327863347666241664346046768819868311917015308928775743982262253671812233818363251816840138292255487787353780743132677614118206271227893306217383818774013029372772739669313670472979439135591282648203487694606614816279448860908682704922064834528478761649901041488788918045233735103303169397568235096511987777079585176047743577406772109288578714570169760016449194376337572048630835863377048940537230660897919395020414135160112161610373339153889079197155333011950778739776985113349360337605635843515554131782270601482587637950014901646672571402276330273785073965042415727263414457437547216115986098791660578844091172551542461863156086526958687735998322410928054511831310013957888023623158908379543232877579214701613043338242051463978626602970300199393748360590552534518131748732153293886930958397496967220686889472590750978303443131178014434742479554556059057238381816309268017781726214580055289719630922433429852369317560338089800214310293042292456191987719519134788978027034467303616398414558239434369269107819408843751133721897562614035371128137617645919872849861417515501786718839952153784895468287328535411830811291195807676952390613291313758760730998669287341320304714145882748957692885011890005530022649632737357224369754386997486116570183583867942472623796798753399841739010425991824711790747856645470576914846288676603859913294013935539033025908853652838318113561513314850943531082897508878083201831633552624334939168918536488318219203635264696878122925856392625428731408499524315754617427673352057759410972243382560278373758337386736767090073541228488999531362805512554960617310496313520028376089132432662823335599764957214731721441412369215430892734565457149178689586395253308406730778289311245187729611202526733362551427015039888522397142409338551975151876901935867701883851071786580559346113565986084566731706179198059395559017622766420735047204027656312427682858788326400495549680573701478310746075581217845637896291774253616488940686745397935876130105994468226133915207149517636567247476919824208763543015904106134584481433098908290366449848721647801725901655731983527332505913729034180706541442976657074670587548787126681410932251641182710399766525294201029018358494359787407927522695021127112232293617280789908258672901974785040056545753941322806372796834997193342303080530752568674708594800822145809761002847683216360824662693826084399204722540019225923672692972578992020205102908114100592007436164534037351094849797851092281035462706457559671024245705048753957020678297316009681452520428591888530048745472782179410811881014905370409116378011934225239644952557158922341047480660388628443972809196853359261120133793479614382751857110155950222671547394276177551306769432393542800068661215473504168897920628752330122307624810424259381941028818654260066934780945859179898720940683069980808045077108914200060138888894681025620672370290817705789542569488220054713082447653537471522981729284304033140237589158539657026310574102844121766226225055925437763955411118786933601729019690094182064445975472040051988891121684901583803067566137391959110338186887359079012355380897890675619841183547235731666280500554240603858413255438610335965558278092463689963803628584270763515765145695405713981612526600816850480131012250114172809042388349995887507764690701039979374860686543945809320483620008196452911995906380056497646702235813527460328619585946656474875362648107879978684163824587919194522575007444138923313846658974644890506412537239664216777569767123951549553648380007478400230937917432599282835630104591400502960332509345529710687996151995127526333938784378235704131611112150154158333145397581452963515529227317325852706354859412205724139614860533078074270793963541922877126813055904269469649006036210802745787162201486619360710234255406135679606194890586666918023541220569340785505134315287843542228209485573140024094545120668560506287467225832839323654154052186436177686900173398028321391262645464102791437844250517220096977408590591029669485683039194758331126102454323972122911161670818606470144011617358903419130716484118942719088854282806417788836331709200513289211505188893818376441775568208797803668934417712544444936224868328724885582165885032772420527526977710108730427548426875377146820719847241481164305406820488800900926264550291546828912240792757492447160851985768226476697756531983597058459018505079965922017368131832557659679318110013623242472647712260689935325906602781407873224315885281989532717331981324792052304563215327192775144613039092463673402124069059125215741623377838812247435963710269722803971960952508364883582595875039792542528235166964401738700860814307993674105687006388721266643933617839973295741696554776392092505901488787794742873731582489173955763479725078372258059137026184124677398393934763596749682625702057399523603236171814136495518954318635215930350832178369861344564885867904878831481493963437713459682761099274274567363165988799282312837720599951635553650124973795893135617508844512100828687314725245649230461807513789752787249871649200448603191923748364657614763238162108799675739417370942892174225315791343471020387688314532675634362254294749214013345741606943268477227115835781489177001163614972139452171233581590207157615922421674573566721572745724770408905871026193098588560801031126384612242989594719197292816617843617818802489438582269257590191741995578055474478675766320758730258911606652018260391265911863621255346434486362632982479912002918439801208900655081612140018773054876105963736320279245703574978698043957904295729400865409767816470772281897475326252179030406408323171996705564688825618557743902343663176238368480218135461284077824055985251319493759868262849880898643157582885551603841058863404395555315474824848750558914526729610457651636050363539149141821675719115985899875510724877298700869106222363421535695843773075444130403898543453094785926292019498672212136058468042284623742412448735858383613168584881774973364406856720838925189391626272838341549520276319863188409364465155217509368976795791063907362681966992985617702816096137034166747233409654334176877760733077509825687911668312087928239440212536299941459614082829827036142886141733940081431097395509193995755062324654800682525397134404589358522580000467582392777090337283862606972853136780071438710741828346659205020359677399790581915156891214200214612886047279626487156451891335886355108544425962784901068990205834204693719771955431444762326610984031975244508661040173456309899656302716539824870949366727342753173587963217631023877342607066987695277644516977460780407983616918770085972344369128162803112657185148875101990670510987769092378473176791174338232611337548087599572453627993824621557171130997396284656717639288755457040950402136030461233274662853955664141533892421498554227171131846166483825972417781530689165662724756758916856019895232790590185886537277516114939061101721241036829271937245337369696067485958254821831650046985889956319832454487446216659100021479601368760204999218333090600312211208531158020258588588828997632366806047293734153154426743240943522940791353807442913894258471976630764091400527988558420873877604140449030852360326140371726966650682247292298257986281537379319265209116565639288323737154184014976223758944305687710610568964828998894064223509715385966840983085714030214383934665888912938579927257184299038034340868011719943112826779924471267788968613178121653621383725224981543000674680667308066757026814128484282435325522528501661329913552635239318489951910914003612562320647220373513942918681249515395099498138877942915782735049015090176535249286680347794218077449629313589806520703632005196037919342217041494560288169389586932577126067461683783022392180485164703815494030392323257433354739072095301919257970960848662598485714246506772802071738282965916272904414791138041172155210138882241116849121135619108834706353975340517869466785601883313681068262472465119663055300060357116422034898519772870403614896198202447471837336000153085652940826212772238877794543454334486144000747190407617390601703868286662032874065292834368910281911400351629231231061512034961007709172783121918073584427812158136052336939867877323459997875377609339870603639828716365190475198135020559669949619942573907091018948199654615200234135674556854748732782181535601453603369621157019155984060922042062447794477323869228649436281047929839274984276220755154462843426338097042263368110243002857643261215191440735082701413508241792565415348135712626375318777964236386781262655282438253114178806978800379330430737648046795639032487068803752187613011343947291116895275058685518416772938587207994085882886833893198427060671378827986500664144915347003975811560399661957188056895766824531140266244327447741383660199028786195188370100305920814752143481751563725333063669903758165348417182711217417873007372573403708864154248597186225731084379625267132390034573357810538331933521120186095130909599404854261949072869182475129017347859369493419845022348158683271097490446359326077874613162185922683758832580409496612779021457262141529167720657302968221628875859284074214428527720938525395148203503973138692614411271764695389742386314662841168423279495819147541644341380872123852338362972993215026771705104017626063051122790188188475648031506885354048919889147983407509483302454231346937431632465766628270540029652535414049203887224486625372943798995196979474862592842309698283750404593823833499169251942560148574381135908490732954713349095995578409414955327484143425155689378337985559519127935932053585883719896209298763252478209455042803655756659394663415238243713459227259658366418399153196333111176597173535827217604325603101878347982204431888390028253466134562777122738913330596640570243982129188274531509169667487861052633492605410105153885830762080148867768176116462705044494485070375401158689524620489955062025465542121751720219608729133330740570873695912880394359593020541187156340212827595522629676279661082418328353651932523549759164191620547018754925493137909678577394697739169665118856362287484367981482026517752760634231033625096093047018840704451280847217965363540931454761008749050972082595674629640388433504001439473132538052410423300415352698183229296407909547365645517591053180409862588221274260359016309037459097570106303999903899751146154591735878834163961035119705853722254472263536740370559296873605545551164727245559242010433910337067804141600371389871355761292281541564757941591682541964041799863433432407304842999687440011873713572289211852750959889611160799425998778129448927005055165851851118151294053872261409104658613880756041903049942207322908017469056023380035777776330886153213304890312173113592231290023971005293183593898602344372623710018816807247387158858802710645657770071655443472905689377996765135315040343425806238840680776065161455616825503909407691210373853230071643124038987159054029313733385186655217857694336922538025226586913396045061114509073446144715960194306017757823347436655281877690840662592195192295286931163011841562628505458999714511234860429043549590933847725827757829939919695627705237518122365128656387663112675218123450312678103372096691497562705351051462414838199652879222283047687893611493210203026443147373647920657230059086165199563060628631946437137557921275066127175404258835796163438697989691661559648550591290247540406832984920186516812696641910556527579436121131283142158624557562333506026795674680838795369954230656290479049354137350474817704701486516718528765336005181355331514487754807544169915518358062944122552724469799713639726591013572899001372450340399646480415352332053818377424616856803523459968393099320686684020537970973699641055240958619027592580141068656063201452884495895671728055431657564727632490788442530165173256223394739113652073974937506954004880354181158843264117412028104127267731130330721558834654157474359516242711092787074953035227697598875942928559016782796140483102347780704277912909630226402739586114999869981381085206313728441415431823875190663913019232130054861444749071139040903156655155182689825416467713529087098395717799438115593321912979727416750856947930836641103894147262652159848817774372490647721534617615653647260070845118911737263956534151672439906664443312060478124748997825558872790627067356271516853425766310178907058440430862126269669700899683758207667334167503634997557294813897670858842305183438815814588614195132992631619163717251242348185294743509449119484206819762352877430505023619640500744429482529406587298772256423767558045896603987728107704127393158574530040189211284247023360829222188326275706160934530918057565598776013719240163831985455159917650990381806463212579625402341392356215590037206545501763612916544654116404542348045988815174565549448377607589372237646232951292758293083064164417126483366508796402301537627887594007983556232037692858688115860350677947170189144292910205959014659882883840312778880521841164889284964707520372305593107273054095646043820088957143991505257733101668021531203017589661051574826591902990426040618980478347645427199166723936949512031333792377724522325273668764859238541230361318275736068398805653568320694509044586795166129051470179340284192525787295324919198649064677525985152858905582723289879161188868977139717069351977326908790212837608245361710312715982679070101999577435336549088312033677949749860696203728009156042893877522499250695944776289023902737505690025709656794294773829295632798567177170728310631350286688770412919516306455668531220975824228038903029500824301659236995748838104468090763005235162022717306355096632036506455613134765915468072640478187423093722564178897648973108303725350338334263908561616305024628889604860990590423680689740394340476877393905124765781555037997429800532718550318709368077514468416179798540028963672318220771914362879847437161560717365071985521380765375833289218747457940971157141809626433460158886624159316146353482565700655975906221760425194334871895198437170244400208916885003407201277639334944255742321743346267437291473117978693437008399698061574340967656785840045757092422098890536984265582277689448858258286844677687655231602836132440508413465800466859447706764997624684178869207461121019253876837666849501670645125538655822315246161325325293627667126209514177531761874420563140208198467465750261649904100111283718888488288301543922997746082605641774628122659202771716344601899582863121749373425867909177752499624550186693718663426454971185755169959528791190444055326509403894927603715912984846126629371575963092756834926591115969565194943234041676835025899995435483083686161727281928692996951358776252930775095697519263281132495451923909624900983899291890171436190966705519849513263689707148266979469662130905238563458991020230211915933726652827858108705147745654126700085507282517044511847390625687860477632950670949192591712626715987048386677583359937318896624054854151059551515575486734007996364121745926876941364987805302466516931954974287299334307455734850675031026410800737115949191732274642387567928938326165374713891266301282359374031675300358125704812562504787593840824548757149433348904838789059528675171056094657657102331507376916400120230155859343424339167454383750034296572015219148066175832832774756049726247862063890043251169125162511979279919899243998821656369241851199728852631088287913318090923218155419710979807937920146247989190141832856082554712482970458092144585911234039966256494062216639838833333588507429065944262855974632833435316917167533449073997388734035931143359123054653747351718207973424436873124671952166934803071992869505047511885131896958025918930607577694984002415755785822372481370680999528794528913588761891134289042662605060786580222699824852395736406872337185847492597079163727267763194638529493464046066529125896155029988414011144256883957861027326714496587896291471291272710401941305448336033178304509079596346381193327457010118253289836601814978527802158754316542628882040167988517146058597373496238115516431643202130181588569961513926193225184842408123135622430888101426785435980954647372078052709339030786241384364127910946053723804202570404219353393073875923631025366608621600746549509253478908623271070087340484689652258178601828693802739855073618290829577192118386863781116618377593301428131129510974261975629451207557980023030162798044829560214216748550119681381305436701317228823175781885044051454220264131640375031881127453782374571607742045500404267267037361425119376326348600802477286599136878906300399059750735624386828281571949493554027626464194796361669581628059336846328538397686172137702317688946181669003047558273698651919184707112349383369349097225872465591414314794288887043788875585209025713167517587279146241591155878205891541751035597486747009794458224869104692279492585738113595559884401265229314651755035640311573876388939488751483078993239571536862792892133780268079333929107462882097800362533836231160355952827013407691791874401313210735847286398233818073350247800502210538564349597119293784937532531641285907710395701334649368155880615513583667266033947486614085664093381165217916380396083696559476898407307751628397745639100516564846571224054817004393880657096902709403400075058520013596677007369028548409824965230387716885663090727651761858060444458711692938004767132907097480935634804455805283096289193564356148118577594939736476050399294642928355799481501168652883847616062902175175300832762725666791260334093123896638752196667014894058866831189669636016556475544379882404984323601838270436306219854422272486680783318781126488788393621562266411205537089771875917230102814525583489273157079502100877753781237677094301239530470712311104677023754771509238950214279210238184639736943234870192077443729417564410180872610161922002282922603673257291211296918104736570269483371163014852512155717884495285467818004502873875884503518184618241027950404549931666622296403839229195263399809219774518594687750432276586574776866140231679203736716141761431035811404452374191910221679428966218666737749476393267754572625069101096387011708192513829484575280688401477702207710352066509460284241110688253340596242744145230644590670777255784846535524818059684691449892797447648124879776026441601680463851979432894208811856340022977465161463803770595219805125230661920233003399714864149261009753768290691829186414452124925523696603480488749066312624214601991411179632336984198801750016197258095247828937108449059469120704057495238925584255778618043236139328926724604461236198436418822545565548089747361240361888822092873778158969986734208085138146536102268736310173977174927111509345836098691945796320727083117575814476345767582053451846180998245022679353186593378284282381056196138536710704732411605717761503501512910803490119996161294536062305007073038065012560613916170154369516500005590506747904424698170814018020637198335764878745093650092633091198087793666251186710335008285877613295720239214048975156710360680232164376362283628957032072263541286785459686634621866601906786369089894259249007373458994684899264985636191434130271613842148693596626294240514781116986920223980634239417646281003791875661095632339407613907433808458493538654704544702765749801421536576997225427291870983788907370144187981805450281212345529482868193982414663916285852298388792417352273697847203716565337543633834840673823652140088238873249073588946977972771181561739835170031080341700346220931079367751742450012437066043025654797690785329712922325358889076572533906494066294964159017874173245331617431376126464566050890805488474529196136169419939195079604379753006950863978860791031407429604095726692015667812582241627447157163834012390464287028823241362631580467815975002029171048946030520842085783475789508726054930127212867174736468832694598707183820284947894732752069923223192886360403781619950514673823316719721255287510023625835791676082889104057461564711225773605980101108723117017844315483186864147287213644247949915788224424960723639106971128193234219556453874734910994817112123434115134324440651385429130109159310824068289118148494304164018880340373285008260951423839846851526923530622041097470378374956679768613841941051390758430680120136375954872744495021914238212274032210695731405081982250771436511982199035356989147480729795672603045369923097939806917418513050275202508341654267465322312146825059902251509968988116634556628255756019475516432562723887609478328845186889952141442259162315372619738332597525042815545871788052325927986698610678927003918996427906003375921432765335575826359915356332100570965861515516311880511819338444899820981966910369699945487383209530428737507567908324751577379448493727078616505948138377874889066175214108075928998066724796799306069745147458202915996556364911801076152782280257964407258250272219552296773886332835366709790223195246573976842866388193386133228799077414008185371759594708741072292967859029807921940901559829830445912746521117704490851088619432656835349576057748835636256177106538615263443509218273744516092771757466504852270137410741787023349466436798723478706634181886666519681448636042954157919443514160860495203229160291771612277781386085779022943405763233419970274797455126422406028341178603875676587790422329563631243590226968457620246896951298704914632036905467329595328072520550537764799721296453815136626627114739819865944999712834474413006024285708573209594272936231246353877835166402566047550351152065911920210677077442082414574445945966868051052458256224079442793666452555304210683376039660712977186156642798838770819736871621760867701083253593401076786925364280231774550539705790443608035670145556112644552072477964650040989341451720133713730496005104288398202355703140125730504504709140769211125123209017176089480411941868238376489405514337680985442272387107001038227778804193518054214335027843980518721240547824063028709917590728415445922240774126435720026611136854645416524740849880132399924467127975593691624756460727686928444272063278793679171463999737961505241991108301299709570858328854515739162307726024253495487443721279812095055278124542333577249098797221015204761365559536790129691441758984216785899459624973662136589376791848108013782390336275394765909449954152624403974418009255134692509888309442758100374250868638099256139225785517578694086377434914617101776000856842192334308495741079654967973693466598722202746203274515215455657681709856889920680038426445158068116154020226051910438625616438410950769502513906888154473792843701760218853421578650800453214854155529390432878697826319556690325063617253972805265239486033076539580866272845632489222272778573408504165841001256754451369628608001970434385027057144896855373735114911744238260058635444565724064181581268215146681639473384165293453669441591967637438343002073881564682740564231691224701524837186794989046076599661263299466816656711271127925382377926072826126798206951170904754168651666993978475113008889086349397183754260734997864630258600481419125140051400653195735918631336044702877850737415676865043976660979891970013328143597499927872079780330548249479970111428662694540007923174354312435131218460105658107593012030450221428377056085042563963287137997564391207069924622960091805645483344162023646932060609786632704619999120169719640457921557010353320278728924487677141861453158151777271940922423227546032290231087549496488220408728379368742739732126096618772601055191127980062162825516223676993961724012926912323178213544070735842988410066721642509304568198093350514253902660325567383333336638126122357537313620229291462132700207662375757855357742310801345459298110433714370873812712661269675135645323579917602581826517605222631903513747235076880095634623937507504341983220323561084495000154292052232179733716019106068999750565674207283152019226588062093410857432711142042052466735285868832447544748691225094888456854332677244817119083467688832927695689644466856997044755694556587065257809481029860759942269450433604268695880189077753433621760301224395078851775120985761293177970375276165242095185107092067895022604599255019793436950718027083679217343301876134348142998295529970913548418773323784322190056334129068688655682814951437400483964396687607887648107977037190198782789135159322066706550118626564894559487111228090247147683595712422088679870573335674517500951161323239540088983906698513890789998318904593207271936547293475403110210090326653531910624311719100351711937029822780691974479570829533762333865829301422994789380870857196585940158419166631318002411522405095224997296378671593961628471532463411280938555443805813152607967901005944930706887557920060230848409751513879145694626276115458010147339679973554656713460340503058497525833911767309770784511227671042900420286828936557017738083676216170264212650806311764336309825281397076055304338364987540821317427752489103211183948862841481697552400329154314573783967397765999445428746015226516942191265559769515192646475987141226243052796049123408450858112951453609320626250051548022893520372949375487673445184356562609548978178630165139972327386406333306960813738239912584527531779310658875516305180304417486955090825056398292265428527437348697328791495030185764680408065996844011081274680071461250503825994970545768102850772744684664197445324922414389928713887687364393661134289922407708934358879732732298499808874846399410186491057157302489865584911428926533415146149655176313013056887032143322655937008440066515429749204723608715914390542826124513524520845302386358963562382499533469188499086152781871619095403880489038431675356919520662841450439061898849120569653075173252373259996025402354506562029484303801691968573561914026680053982459541389486702145603837746783262139859194066077485019706656401266114070207033624889570778052282099708615918241612995762104486595125665823644521750332326276163846500325119792089122944080830981265299654225374694579063319543330211745617238544179648891159182311386726368312786454516528982862415171119568635322072079839551151628228993176005436205071899358317026965491415158112917196180812675385165791660124845277129759126881581417393900628413495580700091523067811258422139102412851554275939793884216834617373059949091162933230048288810908328636884380496034390651222142704937310951823526051960362258025138694535257359300477823538507377595553784311195146512613015675288372645001086715730103816622610525950447774320735505284094136241513574371394726870246647271066477243167001520766939019088056547257429038270586795216828134514134655294018034369242889018960532403367813797605160284294693034356773043447985384745279060949819931666573581765641206512492853527807208384001502466231431111727540153179493435272529379322145418860850291937012772418106365572713100668118020504623618576839359157280249894555840805754963216743520082553023963103556243361182977762391574325998581442843556459307049796253001129146464525118601585652339133470627336239426760805164084176638790610043687668364755661260431947372815449862777205535431164629669265246607421895500028677863657056636038569705025492479724819201825900397453640681581247075237188285772046281464161123491266526461923128269037596419192277680427044998843540532200487711950722857392176375356279844232688764272237938893022763709034461309540223623007740298263074702235368849295857119812695543536517242873467500628352400014806997398850675381727747969806876294649017829119789992617101511989683354497251591551179742819727860035490815499852979310834886858411869773584504248700087189417843897998115762721807681571181112693143744270741802011648514560947195487438120169443386472614463473039299962746751138027595247368490471685560794827953335068219215768866115783845196374403734935687716673656486717775003873972387663332275895551158816807896896088117234675910947992203000418130807544797694363256950130461401003078610172382796809198466037438107545785001912656138057915027185021390967277723853043344282518357847838137593447118262863034046293601692546043234035657006418175274719987334246152426066159518921443893953838533149794737520154248236021473575825476614738372147934792874168822647851275876755282089040390959151338260998467699447606897801703499157660799164544448652447242574537171973672358770968723287086871422096957429562669123918842405041550747158704564215216716348655021388977619098665311826104883550004284275782722684989743906743659030697785269568359880241361742279214448211080194605907360480221240503638884037011534741259042955952826848605751291524587863028429780692692228353975850439900870732099189960010471457187124550596576266070477744595635135938035432924774547175987145407643903415533953535467753917478647034703611705062675795813065769862556136326489967902307072926827508998125331329246443817667807609360149607978326850276098529873840994692533160537529537885123245264664968575833913066937107082019967659792078076365512676912211204361065192431965862463199169282043506715256627175743687061570877033538091936779735890062955340141011288994677803208381878086433704854003010173208674647966350503432930929519406408856778565737047804520809682186886349026277253866553128262699406747822029851357084516427255367339349156772953885129749013184143008788783040187619661626281427613406917824104169157853558096803470758259230270723387400819608235795617592739619049707821294500029898751684136023107949169028160763688957014820325794670836153935898136446780373320785034681036338146992573514599820178901205173537477853513673007875202188044152232410927525226879896495006642835686998067399958866574047920209325112666462623615294024031685534139564465607326491880646267862410790159694261819998332543014948668117104310537057388982528492035716612544697894770853938430431533462828846697163459061258149451653838905728069532846246777154829540776378467674933912172629905814614279944090051112797137819243010637998014119609637286982179634738443107484919260009373942022864064712423504613813631742399845331476585120429980081883936703673756614670447358996481062674217062466257690470537344639584224630749632848711888504040820326606298017724601505326966721108470950522950129602255832797712377079182365684104098110027280907631950831138955438812887117014105533137721302874803350770952621751289134423390505575242378149829110182309607054847810824426296572267164635425535698357852811438755833640792444238821134255970197013079827650137257106384774328201106949551679545460879873388582251937011592185222199243770285996102792470774698488810223434377862152003795905363719503445670048978371839140730818310453375925173033315651605931897329947760247105573375312622321298839958929834539560484515677669744348299056021389468257811032988167882361798407320118329066416055610098700785684542908164805790105829687644646291156659617036046170218086738913908367397181587914866283592323700811292336998685320162332632708631406039079406247083877066729868709364526304035900367006063066043647267598306275688949658660154536472981984107520131650603986108858090941271092454836452843923891804542067312821399894253462316544377974638493161318691166795548429295960570900481003687927157820506745714159098623727338788450846903325244937105849957219453292187342415157514098900537236893521033762164932796481637702747332775177495204719073582820968641237006672554530670246080093331988959114187641174843409934557733999399540184088628500234892520523333791612138996663763077648022147932960018077144758744642814161202785950345778482123647248099024250263689471258942947961087321736523959478606163109582857473180638835597503922319089345868302077154974993438901596092695004357594703958647941387397721366609539180384700975582379549834702102704940868390290353126823261130497303708712182650664211002161207296368935240778045759654662855104261842637627499595090291066290027307410128170719292234015327515649785586207598339328266053192677255298093389593564853860882153230270174411991474525103199668952730585882629692000975674916526152772420089515716125115357628032836521587055293458619239615233796602420449189575997573467561072218237738645085890000822156804492709695200434929169302931206630173232212189444487261457910281240304481571823534973693645317016214978815617511101574020281361221594261720057093075205324026669524190961967616306086140534161519699553003782474150766026519619005592999857507415885729199878175337564043084072763201657909216358878991074788255698270176667745864518586992788186795524476599159163504579507581290318883600395284640117720902514038187668144536840244778190841694017561873302744431834781205930195614455682068388000743622603463105583358526593829344132573742538436703837559583001495281970347384060030122303507099191776500299351086517195054361559781557758211423792422155375019744425176371923583145392035639420577646524041212192358546193005871917824991048321280980358886904435789013835481631373379367114973237230083892903233508704206803640141837738283443640119644562907146291466265151366369616997151408574911009022247855486560970462174751227301626470942258934894509735218860237856966459960592061138799966990099372271034294045789566024572194574465567824672133246536687780876133626593907762809024171912926822565981105889565750121002666597905074063688555435783517088212296393819669607266334313403534596605222729053688248357399391557756280718949980426997254593038481518905547896152811135704995376859988404136876025462472718381198252801381585725655568752148728171166664878498762856077697186192760861314724472996385694785422806582918276522833076287451018041577230408751138328177754724810259770493233836555324970991244283500176149680193157166845612062049789925062520290940380943497566559117090942389713645495862511905767316129235232107824648520849426461637066484567218985777000919171709065529750004955967908401304095822144244468188162574839529273377495500271209287665799620479366230497331667569691877026075051371577698207414929960661031800078307421766026492053050261001694916211544794859664327366302724346913186038217726798815080714700594279691804007925706760237300224623270175750549030915991391017766454091068330796497103114819019784158839212728932807365026214141477187459250775102411601870391353638637219665964448423262949726818030927592597163181318075031091363467798179382997075416379844092899678940344012955252272390986680885282876485030002971965769734028512598714697275697116905578734264661510428058436229455842531306040603759484043852505259632880626033478469799085104832769209506513864151668778754828165221434451892824572190151633693409297911185012047773145223850673324498339470052439258970441472337815773428022396938089480233020825409973557580639435796655507403415638085313221607889330502127632401841882122461646991381150869001102253948363701684810186428377956833740364295368373621113270195094660818979280919831418533525463635832952334559574496417258744108193771485494003051441676094669193286837134956482136968685880690625989996513418320479772914537172176362238866110934750961347302295444172453616494197832600811591639223754349674980973935560149872241088932705449343100784140609720824963506386238857531480404065641301505101872577223754800398235369903352672355076070021446070066112449172135087716360441524579368450619376208324476776075873154519046382156990598719862613266709153486564594047251891968343576252902216464258307535158296062436914911371237924966889243914635205625430554099390759719741130434857934994753885257446289684453230764663240351187782950710836451051214936878086728741906810863261837282005704237147744697226289090356394315254359062763111534373109180542561448389525541873275813653108437558102491122725543842395112047087692498446637850251623198700803558008636629491885258259389095990370824872846948203367822092726085065424555094168686088146778009581089145581591588202345747742803259109468659435423851999864836709117702659060607784800947673952782478346948808064427016466738104287688922374614358754716788603404123244343371952407610022352878558904455205816000205085083626647145099574556753671147818036180385860004553701878504443544864630487101279076610116182838159075436097584217270108553297128929939742777427189638444832730180817436017549088656649983893676961945650894931440883281516242062859376028102783687336446960443339332270210164772523862380934017229747937383033331446276923889681547763788091165571254833720548934897546412734767166981163210183865571757952981887615939587319496470929079676715916225172151392599346756289713922948482620382673280138838338341013461349496478313035902336357435650327778847351359686674542952708165308659205734632122943901483666919313382726798466572456290189892414376364951312960130152639503958291613396780350277650928986889105652105677910866776236083699905772119907505971671388199571288560184651606281175785893775752720727605065836156218147470988345780587387715059586671363489226853110207497400816377084216024342208263786679343441446329236089658162735538603221231917535206303261304573969002969300981569505999936959400072111440483847566573940996637786192090999435908831911941248477875739626264035155398615347013310270268743244823248163590800161599582370101722436162564024190416761912380871025188023918048454878843961429196025605212286265192972121023697358163059265372912316665391504688942029860005481713136869068443305115661583227160436286718671085506116224991335687962931940761776147207617843368588826015605402297339879306259964752963815318388492401896794480144592231109037656955660082203920465387055834481033252413522100204519330360751334355442993744480860607198460497409919044493929177785478590248030660933262030680454549866993854914664874402282202680586309933196822739461601231575210548059761416682390504773512986118035414642695948360042449714274742732868151384221341767025184098306956205266749814412138323999356138609720320049924393680344782408064609836487824502181450391107156590954140061369686012177380305477095301846562684966692321677613648650860164843366162432089988155541861865198168540071614516866602616040940532651521022698704347836679418656387457938071625276642523810151790013571611515582217116939928637051681479189713321965513086086840846493223374745812884296261972130109782564081851815408822070121357985257302488614074323945684492773944001493892572172093279524929217834501945197877359802660147385957137040625238038005318757032286417257812067875442512896637741376189162445707264140999376802663030615436258343351111060863610042580016471709995743266997026639915337497290570481995432347877742173068629679055752325357576212811998296964950661839305586836584915642432989268175025730233430632967647950187822837301092506825229543102291798061063453668498137838784983294865895585654951308921560110914571425136121007683050447012934812220524093523526582649648976301590920166373803566983524357932300406658698421946955741698674649556674833302740421932406588406893298737213907064639512730560591815271610968581651945155382867086812801082659215293609575487787601473210147186486870288463472490148222976198690592289984696891523661346920953127363777742860659120331458021309229899678700838961409276941118617189763308942663377371021688110566268726378260355840434119842907232059782878398872827323624221090378112640306984931496810550897131409478140818008305868483905454134691891207239265801883797663855201461819142271005750994305912020583981367936522795404675988082512138031024309257117736367913892935025266939777162690050322024487151067146034910810881733586980581547894492086104627970019880726336952608660974991731170348900688041461151384904635596961933526494885096857568235207509195976352845289122475214100207645399525123053937279810364982542597957439774956204037786877988016747636242424805908905059050327947114143348240953321108908155947558540031860096901738823711444384958222678804762672070379188497508840418774218684209085632931312396709563769962948229683276304585552106251597932766812788153820141590179687473140083237545336924527594604596555537668272371687274941955992376759794617495797545573836339123380811311419632648627659764261000318935135544787036956071566561363958960159246433583225800221494812653565853889948957973077611369178390393916637994439381887389521857631329007584992503063501912227970877631418769097541828352755692441295132869226927887625414129169583977051575527574083005509519835656924663756455172080953220422416209569711459591534894210569152753746238674675791611722546143563801893543536016270711005660782620640613679908608962488627170542868350721639966787994287812058077003462255771209405004149421089099328212741712182930963623848434378374387022421833021118873064391853514534325323847497714436931811221728525632473738029714183539611204799255339859196828153929300816386052370302234388207575845794265350196591278360017912444668732012447461760990800823346535440890218674813553938701348888226989230670819566763474847771799103569872888647941625460611893142481700558201709288165017151989704923952035063727294559382173985601102987383914877188213012573712140130746674761234152081229063640371174462211095774053259158096779969335148471496979461878806355913005931561811428942214456708523212121544174267829938125520676391198203383589530077245059506782271137081331531340003062000679562727547817843364997241250878146118889313754253069382002620153978140504294466513587640856487398586948310888252995123998541931669425773823958062213471896002457443113908260511662306628698454505889635833038462596096027673813001215815571244720087274962677481004680521577393840161874291694118376735434342713626059866692948175501426023333694803436789393961504232862531067853777640588182338762482900324085806679210743957871776301619848605269051403478442865040397142726853316501978187105674850477544833386140322808927577670859275971107259808977633456830037560451571817856722985381391668911288002260873235437953525441423143591625889580103577230969468004537823279418613415484201135971191517690078830797865426433639715750090245769120221170693942563040769004458139040819021812250988936499383396741913172232825013110532143408824292804781670450198792530097482923654284886389033719118071926972386813556458452256776054310695730905062416163807835178822654427306591563424466397377769973910948403591847102155424411998983588150769497837050590893274172534932289622403078312851411045276273255772438903620782300616190770267112444487666042954806296207606712668594009573128315145106134123157812358704369462537933962633712810562909240569076419789835319517191652033111801798703219023008033563735858636459304362813942832219488544124365151980769066022791909185162479071659079792135529100852713345475316464038241581364894963215713765371851640115111160726184545361447843010040368152628420960127701827033329083683557332773955214602220342052698159177499432149035370648983140889504121133338986780973265918612742902573271340528714452885885776254972324566940103508427166461989984366334796661641397265508544699172642627066112173161700559412758199674039786613431473442566436269134182048321004518122341234925488603233838469858968018929028277391646063644246502306888601616140695212878808840182257281793817087507632396074909574583388158978200544364948508779735731027318640949824101498327948975468325625974590845849785796282462398235318646181491483607641536674416055006558648533113602949184499466003875958035948490263331642387740808019339437700947101448609324231907716090197935470805570982627397379896954998133294300753829360922841288293625723541109960978807045493875876443470641205176594738496308325679349545280481137467427544688178414935807374700551343413871654668357404093538996261742992267476662929182170200361164565106942922998890505187299547740385943563563124613986839831709133763388344501299242824387686683389385086855126705771715792968362392230256884798820968801744074595022617296025382209827740485112457763558612122330959191346848233631839826258216264177954514173311869849743396853766314935396470301986901751771594853044086346928401699678786861560296371348976217443907991655334971712201780547397343451322195464661637917264728352386677278664356620805647635055060865299236020269701183029140026403847719208072007214850318944076494903390056918845729364952553218959485464671518257336002411454166231658870369024770640397994994125880411410147546245669285933026480010972173971126868312560396686114033542846561535165021504630156037668335248138470730236211424548542644872018398943452807134020452360194809766173026873515034359875748941475874341941284476408716267754334086399625691377321004070228836150931023309285000695049576955440091417601924556884637357759131987910307056357684541755339001834984994858278357736245228146387011356862346751379134872286813062251999088495812437936655813824947919425080761620406884432930288721470292671480872914510577907214243285867784716758821178290645979158481888813322137121175120223085448900708102472470991467718428316002305285845506527712302833997414732555063250977541883981950819199168424403064431277149953854735753221714877837150686076304660414462340226706160651929211574733482102789143144345404293692152514345886979505626686941177952466352898261503846816878924198675499214547299381747144405165830252256902983594125608989430545964239849930307925242865924652435714146411993342796258611181335904508034881531851535082090479826340400267006153361694121248780394473096316441319398404876946362484348791383719594786722212164167869416714611072183968583781700644864999049535579943954878754306373615723139267014912043462971494199366626328178787957160320529499720288764648659492868272011200302638192417567422251858338869258248220289640247071482223005892069431609746235371729465396201010703978630105165693413760469171647956004331673368491958843379714656931589143547643261920391377623253713757951654869831904909447050576767807512876394430389367760054747409551924183078222092657637648586098513698012605254050433850520830493654910756759837942158940237254817408042645869882733595197350222731626058884046009363821511569300580246846976413802191434162083209459445864672733925423885525914745989872383007801484257534765955242410991254754331182123549811643480368099060640576814032430326439736994872197887596618205832968743346422003686315237834245295716538488010461885966595987453770153727585552401112628633765736439691635957433896912229226611663610843189578961347153595557456698939485044475663772167029395563563833381395533871744133544294521934529772632033991486251423583288893886159682165589532716260519209143331336012809799078525164983201031565678644166598093907323296311511381540406510542760631541815092931891749869774031798787971622282307247334734662924210015072356008445423560826429955160646158610589444650770776921259193188272807578307707161451263522795714626317261732590173890698883229991224193029982607123212368286859591832048449976502082708116210919801183169340954608361660076567078998484711631896432750307397683822498896922781580583725914533020195625713438744114959171618676058419276828848400331853023329289016831172785073351526743176724445375205479566670771326179821277787519096948117932238798748256665328548407332326656174998498573737708426309118115140798685747081620572936667955360006729593155609620293649539934326205790556923180303400419655698270705306765921802199879306622800864831688680654910448794831575004879301354998553115249789413705092848058655431532202646585785254936429339300847087131165118589512535537945873086668277289702313536593263350192529385411958983115092253886656234913298305062835270553638301475535182452234619531307733493539178239625163302928595933511878337303668677241813632676394757689738777618705253091930529977148060964093013795990203883980690178048667460130820275789372399269521186406151563702280821476868129429002371221558051220960480956928307866879540582109265269907088419693166326272907273260082675453861122285799999890197078472019275914586829828639672681714895982577635284328952219973838887717437045262044624074958676252816481548675916199250341146760416306483506631508977904751783560262275632495774776518438562693932189451502329154901821636051634731267140589167071105300056539197318638652998309340023511152166786792232345161649308926275531716757636090844518742546477443014019750339715161998068451126539357267632095680755223020617230464340329896349333603414055274230964216423933096998107841187277708748416801743384808202624905970594437334767168787490042212748775199440191657524231485368613843930526565311626574765201347409492657344037531986972319723927452108839487479977842701865823917557219562718054052259477971972400160177982093762737395823686346125992176670033147249403115340059056310345085123944705824176145523937828266060029427636209609514701046500460479611763838589651795275954371135007681183348602994127647962341502783261888731421294751781902526848037351859877316155099456616750298691748382817365045176592918937372825745202219060081961846735344927707114615752687959364907646151571725631283335186581760391881466871239820044449452973136796273656696390073194648039352469168598848429666261072623132113726748931441319210687761513262696002299416713879222715154086826238402755526524665801263876475821837457047916670511563073182622639214090289529648329101787675179532421349352024905519295813190321904797530284494793426931119818708845252100710356927802120436548343795452085262993338629703451931332763564585701502396167113360031225849540977171692781358241563467204227349826877072544326749549053898007018158873768573699988320261162344832410081604105546066893739243496109053572948171160851417508900727033649774772498861759759516924764030950818103603538165771216947628710776920302375521891483402241662722118825764577378238614208001414663692704774721127834472102515189207509602101107158600472685240059643934513086315062831183463052018133749570603460150326458426584559753128474055331500627289479066235512190062316441992598961757780528568715551458967186247174085629943630139703625163945745058922127587512713268670972247122624644388109798730833847431497644162132070856531866143609839596213600626812046012960827502542740111822498133257450356462274262801543975565718591444665663210162303025340870974540829644387601200482257228766630094618444383270509246711315612720096345561618875577115714211801375761116360990344207386462399052491530456821402848049645489850997935158450905408758713082471768316455088895266254389945526323330736606595476277280010396622018001248447407629017266002323622450869688166718292886606294954490172377241057375560908355553792620163582060928333862899804831053498410968843704556038984556567683938990576384328980538412545684152037176539066164250927035104340258072499321792551732639840969925287004972258877473390654470658836027803666279316701131191496972929177262158395366723159348877398808121268492815262585972681261483983401090818717744432086052061369245650283474945137196971166182875412364770161585914523356094794966532564918162712018175851783827317637870291987963916209216431803720282446133234819360554166217359421790046078242108771696495583064400520872731567281323364405828752942837706027423619193150803616608688709644074591189854089232143861742385949825484394009487955709483146322422786047654116456649664609255918258338077350113710075292188449380788276248815168999340168752076650497910740772756959731843364955168665210784473859333377411859019358017945701128103977574642396484201533661498541944067172432434985658468218519390377672771719874701841895909276925671412472147957208257001090142834904727545400208840188847817812819490393561368148078915815585544948361509498277106731525763727527500048853035140882609216849145529442851091419114428680479398276737123503300270330624340290909873068562417448600194045553198736311944024287070541552777174470470635765232492088929898473858375063519929064073155649453546019027451292131901824201757190918229627450601746238425991702781732019429926030707206894293082672557695294852427672143004007209648839415550591120342626119616687607539982262727751206795013797934687212403167555018280409098052449834815447062598382080653335797882812148288736659502994469108015160106862908756887052500088354438048764332813962591979495029440361893094415580817860496233183745481811535311108967389481414213232502319237226864133551452396199917949229226040046078316728905670818914112369650189798381042498021029637138050650141245107367081924501222390409672025339870293943915102814518819824768224927269080297469981964729025621700175525345544073829987391532914713362698830287399016151068708497522905706565129022545817867525130546559164290720465535122322248847944183575609732076210281440754897261801101290008555663053389932464154286503358606555021476410464482475327366508778873161869490557670528947773569352104207688590860711432480330211926077498899737467281993105068134110816943778776893044095593027159398949786516083092225394543903582502796830441428212272732127340501467329728959035563421343206878455494020378528500619058758835351457986678958711045174111518029586185997707346465847507588496430873350372624119474611712301987913533307177117281609965392362846959388697176860545422875778138418365349179779381542847097663998062720028626368784337057997390833550739489558125789886070430878727799563299815108803287326513918151976836572093632667557539329197173225887008126039692431933403098606864626717422608426755309647323584261954937104105265637157802297445190088681990597289214264868441677560697302156123862879113052435877049068046822722325411996969664255300689071482667414678692894275768054205082301473933778679397375175464377732722527301390134405502736909568339022004738437539327302649861331423444424897965821849742253364502283159611172671843746946668452934270685973518329995765846509075536686841685017373659231907761782823507360258241771494001102863094643858959254901121817485524437809440447874640106001018224228412100879171191308876969000124341519767100894127268761068877393890730562038298226706111480564279914209842206108993911685779374193113318366509920290346144336985052302297140659513062750254101644664122125082308628576638353729005829963818292337542335927024193394152051075961950963205592671105375582138000645240487285280468092075224397900163276226582762154626773277690365773176959987594549962401117604763059282760842400933490568569201063256011652070741467488638446493393395773717185556051330167413443419235532872559183993288937638396761406653871031845480724469171344374679333716867146010961702940856063832113103333417431576683186265727392215825514119400611162818819442713630090968311214314824169296082319630714126932931241078318501508480723666351647718777526998147673057090792171998402964828832092661913472552588864858049446313383085303602937600521397566526480033239421935911061030789456113665824484704805777301887277324427111757070313458444563357952387949810447809207867660168464853957538094771374480298154859756867263415764911605428318476125021410270903577665442757942453647300298774553115446897196975911241215154834969988543398302551001003784263814317651921435700052498018011602333574324435324552257263903179277983031119713505323764529004367512545413228330043613890696463712593214405761788150873881099122340580615811901054128799955082154551736969033270321375265344969860792143855232311412368953264234330269511359777019052821862256578580349150128544759130737811782090015630150337781802584501617369589454887421285950678355623705176831086265227768032819329259288367694205398956088829621367122445858393968655678310373641617180504104380092153961948352183866767555253260853474941431542448278806813180011912894240020506825522220014050769636408360439008328299871628532349094807057215216868070745997477755432922775755547612497560194271496863652589503111831270713326923505835214278220531036060079610933766526651709255208416726497089361467193825010985020892113616802596299069105055406122632172102184906932839148225521649961341985523037055900796519974435301442672363919735121255283509682412983684777653104207926494077595853811923362819094701959629714455293961660061241558304432748021255573767308346668132330437428947074939905425508286313400917457063831628455636114131494291143078626094834301172748235671612477465111069088138577766431354023254586161841216865406533410980847381608676489952589987020341927227567189708558961132412238875132394337061823486711894795920017834833998355811012127974811281152229696512191775417476990394202587920989552744210526396789738174652683279778352447362874920242789002133864074698201151492633678198817570879938290518381137241648271152138726143375338401485534851700780332233248708926880425630035817581246517549217954411199662019201053195775207740615293793707703695595984068213311577133213823386138989535178593388300416053903270488653821717888837591128065820200256639128803371329761398924445056414807750237147831344447399405160072999157412566279171756518474832154322840579265172129183289479857692247133170758312479291592634540260173654832361581398650196041572675333963609889781425544851424406115683113698753905764770298758275167292919764800025492904508593329150638211749972163897795013463065757666048147735998955802361784145800762334173215740392410822351263074738894946026261728344052820834024356482369434965581706903260317838052671141842072594394290924555027468176189650751700391215482376774054972377788331779657774972814286676530277487701386783838160353748206499772791631502599549508637253611014773951938245097342822191605078180658390294960408830672059959648367829951269020281868503818585276045164742838274819646164197970680266694653739940490510145362520302415685326375582297791719109272933482958389250329937845245597920599958324326840516132449378935688667665533007729856311186271912349449908176985920102828132016068975478500712577778237194093351710570392348437847679273958844663169295478467471847967250707342318581704309626646006759761391680039531712584084987163512801196051903431230528400442315798788441514338507615412727779654117663107260087223600453390343653751204332366704259037442457876960033677657130134442047923701825371154805906562830570505199257895524832170695248776546035932166192965257303829696663303425093693872173670751672998370798068589826108609525327962077539060297037314465673414630628235980108208715309869996861245938629632561756690790184058073716044042327740277823783278770811458437288819836275246777759422863174956154250900514390315529968948976579049976282192276191686329808426159905182553964842747899446035586779964996857837759292370102677657585377280820051673222246478602762297495261292501147178422209870612501582023487101295040519628727438037772433188728306742472401706678721914497465313590655688058142175680338761661786856656534530945081111275308841675758154220232393075927735571567548159964248478426396503749685997085069743861906908909768042119826186808060060214578467154114398551590957353482639407524189605263452036999991343547088313096252675124025167651471317413918734758941008906457040480097167070988185839249857847536655351324429680727349303707133623494685429948966214031918473407104492628884721866537029733442149491638712339687509710551179142504020066613002115105099914350817865174594681569102850346137754359643638709656474187391097843743520370453827363974227701873667888141259298681612780668907335790421815809628544329223449321010302820156830245726373522933350027485288093569816213925673671614172811349769697372906118777304869967884942523520181894667408392847954555281987041375089481363449008650946481277153068389281674213127953046203142739387722120685492508806652827406249771588434565083993076672849446736555420366915576069273262798247857681492328434889083837274443309613958592122086506867498959853185292959688305544726529391057699807479888567021078811541186871020166060940264364468195785241393815339218091170791557813610872305501285225348012492056353317837424569112901770874913327839558676175780896863335077005625459648198803760856817650439042228934322804948761493525849271903793942805002758940585658782850088333632246078694689189723127427983359111041784025373397187517942692039664299832000874199942200589510086115976701586947947838727644864490713584373966423004067102315309882050761393220349427811030065891988224792803929294479228990994540055120506193822737431421840622334256686470271651762557676656464083369661661926977501190517856416264058361329765142465051854437243935567815072887450745140534445486284610495135526270302341533760163746026536047591043132670051696515735263125793280525445401814589705678560152450172741725846118947714576449591216029638061146729782106828419917535887289217871287443004350075479590874442289827364234870185074307568016299120484648266549161478355362742847200747915989135920008202356406188686446743718076233931113196558266114907511010397329168670454883604795979909857560023468671890835970938264979591145118822695701788133031393705994174505094608999249300466485039888106115474804162203259469951776565705447084917766451942727426319469428526099682703104155982839777492382072181696537362998120298836704712251301397383990075951396904679185352358133162139102700991665345512085959383148494767970364429833917991206720918806782022213173361320027745796610658874282432273224614063929313922902569824444985202381589128538833948307241806332516700415587420447400071387189813139519200980357523435373499374857532926398011695229007937944675624351792252475343571213256786008653850045526888218220897666471375869027346829097620252695532729982896630860405317029147256704865910431246366160663239651279361761614362180471504151831732680441335151358118154758461785262604761020686391132520992940617644242891905835602574596178174736455974024233399495956348039052956058459592492617071859768330920864208145284728694790178090694766814265472758362477359718952112134269618675867075576875180664996665219168688918285749586177397146052460622857201665295322980568347834615604151665522188088771386357039548862709406317043043004614195014093291162545333432035513808619457780212831117404712528468162824949066844951809851391040479815442979795347337231613663804916633452605024304096913109337957377962220282125025368699150585702550798123001716508293497752093339609356867531256293935147095524203504631468155100407997045432452088016193723707054882295512862919463079513350139681236653979038994215318362479983376605472970031759762572203396949780050121612300670106724051556555618137186835568190293663337337023019375983428310121460734769600701920011726886139069705225713051818124526081869416131303929285854246805447746778986048545167071776618621697188011518356327896875426715295996871753308647133947124468998339813563590321702879072906976645988384674311861601527369485770813260354262349061326531201011843505982913212607588866035323595104512481735831158924358496702004875690245013097426334808620014112884082723525743404337836094470448985605442164304236081379569506863234781223655304842489661929780253271705225991532564453452629409156232387820971401788871130615143371945994744684685869740107047219526395371603708129610923156225465857099660095492556428316768406129822014794386373202559090050771312602957355317891114457530112088114576128257961557976400852970482173314433778628391564915814014582471197286881168880369709986457444837652306388050258566162493068114491864060712707015323116711625311314537889797500500901230182890268529447241792357039923518095403081149312167640159506470250011058758863317653022303120603751032193211811770878149962275761008557672269291265785533838612965138844780667951590550481351970064739987070444400022364797076047313423109556107767193486833260957197864560785438244021129191515760053232440859582566530405601056156123749488054001391100587817048556747312796011944399789054833079033998322353400619746227236991898698519951136356682714699294202849761748725402842746697876645282540198920165439653247723942753510674551387436107541861478524594498099334503831488505351367972027279211561951060099559340210993910786942560391876788622638309522667714967171060983566331294407483701854333476660265696264137606834411836726539720282184256939184251968344118334681828707337729280567511488180491969600360630628935069097707412201855703225856876139154955386200152274143149003093395598426050772850399124661694338509942854305489703709059468257495093409111566351748774420750608633766390706532621801871075121327964100819091094538599259574209434316480074809930536234855172425446726927711908358981364025482230788967525521516520487571492920155582743672619059711436615619204027564194298173846990083141650344683868199306744527080962997232130115350824374520828194918921231116132662536766773583727358820422072594726746150333009737675789774601167454799496604755738021965316312100925352377865876292048970013813201354781157304889647636104725384419211118440206598598911997328980420254829312998463720502245593658834854659004314016546689450528165294443730337273648140358726536779978582192016782769061507272854398818171836360075898488845168375725086693717396348382447111994213308050516679714541274602347947002730138897726522001207158856025063903600119612721560274096237981113204914253971844988262284711713753506909569646711803862011656229207224682878125992291945262230253719379597656634731294191696023927319011852412103993155876400384615627225042234108868875541330150693675663961611500095106142054320668327039621981526196818016958671226745283070077339651209988901816995702010336715828356722672180990823767944500745182830049221747277151755187140926750035638238241537654594322786520502491390157456286478157586077989423287495310947356179824790004594069378780162075605840729982303336460983427420032382389793186457473091911805732330288404085094623441165161524994258955532661274925701926180556615182190363946612906292414626831437090944446277022533998721702793787060424168741006432343302836697581966034895007012304649512779778884443141312652102648816699772261646976846449027813149013743511034147858631493038417528856488134736603319340413352631536597646226810150386691785353824131697050505527406021336306192923876243972581060058844362892150797807172739674475643986272313659848986203195726432756388478103808169012028870765092936790829306359202296771871247878661068095143779429381075355022920481521190171038508331157181362591782879158872918511341359934757761915414554262980664340951925384458799291626896007532589395180665544125690357599819459273032637372316713470861798479706982718746648073159307025784240350058657363883875935306064628378562874460152535755866285037993408175535063981243450934242235465855869689545110168783699004121546892899856908406278914640588441481655516213265732554864422138465119185802922307999195270197284793729554389311846698256189247883589883336146927480768300513292365676485115089525814930238459987455041657563734124173841552790587722360309398747631159440527427482906272024997308345137089834459497481101091753944916145757358311456718733080800216258056554002557596739420113767339762976056873647532101758327064927408975535577198645662671831054613838326903828782462883291432919740866094448848244315812898698847245144022847406440782001612682525442136146310543589014210408332020913496061784824902498892817074825487337455637156317977761622666232844654535467677720791239795860527785055569118847485464037432370487723818623520323518748284890229703585857403093712510656592968035592375533460347603431987396285713201068404235307142426820598237969848010095413205856805740736460637621892659634242975340776826640842426957313989817724396956476453646193605550254855638041487223484937934971398925308623705335254943415609220387229658490991120393646139089651476340609302311301227672581682307287514402378171038500757016667938776063285113902635574487394594347420171819680456737997877724885311104876100336975027081966616796560677180817282362378160533114077417311425649757642801595465933298603969402526520029343535940444365432740760007327786036012133419123902859368058265861439295495420218996914572528947701648899812073485068600327926246766719174993107028466653457186799777296216402547256251941694958325466669029739882248449829651900295455934369218434067149684553699017482145451469561537042003639527462740568992707996303105979466363550873976656999336284238741974520442063068670553131533208121653502773029991874251740076810059827224396424243987303505625177451743279428013752774927768510199667678705701477055255136167843315718108611033617834394683679286114908770008136221846126269980991788233540162983128486364945422585547677221004902674495256569779270111794530183620803411924174422371214566909883823962991049973979001841774882215652813334892412803902867278718690704963695121902593836395584050865298239317300533471413526270138381132255981185689369074344708796408398875671003952645586683125199305266326084470396123274571710293595886394353767589803718033494784460364537898314438066935145592727464964806337938760248113848189540242502623138945758718644496193274619275405746348995812023755290750283695634816951938124576850729903624918003563017214437771715426357937882127680374251048617238404785194179298340688196543899815385054659602950526095700993324180709833637651372946046904421340063646863538125264392229313553351520937896738437940623142429807082791223341919379858046632082647366986536708163247735015676281239733934050427849738110209994421364176305392138797127145961063814317624926117949248532653218115116630837830204651865540642176661365933911721995238458510744912367873133955849974254708872599386762329227822993862032081654149416435208804252866005286203014580282910101758167626863616238360817637274672173032374291968837806235067448283429132288773180197525583307368238967561770222210641853609077484330289768414513308024198200639303742394692446243474471896815592567315473094982704319578322930641447967384191066773294788010074931711917868745739614137923520818373620226309793443533103588136646558560315804993772872350276217007200341700351957582126622629747409925653159503446569847467514258663680458689645828575385575911065878043195657684927814037559046914752395081709197210486068417762042407347583708502384435212317638954417265424510347903730075509191146708765138094434164659988769361463447388290371611438335289188966018310033014602398268244230264259170115506449361985273677582731940744926744759426741216859098537352321379139810527775684920440860073380592744037825030879944682353492416018705025189558172544015961782145179040706234242315591161009610919899565697979845661356000292809313647227203313643382043525672518844396151073126969100170267686858642750462925714231628833605390207890890000622453942561554010378604581706371113389806426737425115077909218814108156642216902528150753434108348827930378461457629196626796587064646366753344776961222174983336667813213396834921128523341499728408557629598224997803550793992146287308974536964861058614746980496091895598379151855119536400818061051990846771162144375639261786551396638411802174005307415230842200600319678551149371272973633132248124008368112340514911119956590626481935900402466302280729274099318069560849482604229012658412993815763955681901715085793500698690591696565727042764350573786482422048483334173382272096920348543392970825542724962566446609400316489377809792451449166002475320656969337626105671795267459364100596558763311816811654218215244759768368296783439390639359566899122911198937691396653500492303477371931134674474023503696719364464348842901883618729421763258037638489442942975652959711514683421754367199521584748495372648621930294197201897818154770521201191165012939685982391305638416064821571427747744924778201507114953464661581743815691458233071069711043638782449336098305600076234817853139107462736333054237225122975096174242335154559144429362153363457233164474001431016845141282933715759482011814080351589195820301298795171654333283674798288372935940299854317931854461933437932596322399283865323350428464838215494077520830833337232777283892204365028773827842194366129674214473150880223272581357459927094635183562089727627951639049995122276934071766715165749816924492678157193695790992564460448812349408127262969638858387733756644880400770079578915709327044784222857831091754623331728661409999529295257601009816451572068318110849268122919460371527342609508694069143391564109104586724572854318459405180647822449551537345068921441698005739483271559811273842201813939141975986783891550101552977854611311875939928301061986906310140649052143978021509566714511616361156134280729026375233953947148305548226715837430429640975734028940085481474773061890965254727786882411399517274670614557807620189553646498765731767354553812029295380643140089312958680326925053638261525234896750674794757654121943503106114324372254369410077176044472091998795448215245898749539384150223140743197573167087904342504918644020745803263347923218520590491938132764780062579168426077522654983630500627029625669008869041180174609001399635376562510489504187350170522187500033284850557203130930978661898536747465611561382170701503781317677466282089441293421958836308644322506793831001557565084233292798678722181227006054897128224358275683579068525632036128711855396347950953933353864475916426264392693548897970608478061586728386037525924646001255747005134495396575220771486955629739961484076750013536479124923763666193952078597620308310786502764199003060208280755677188371748524977568824591136783071229760372923352020239245314588965709171010603004247959285854638296909191314337819430818126781689654367897194936506425376239951499307728188388097368917285692720446995076598552371716739533143115624878783158854508279264252640176905662617109475697517008857843112103477517490467719784484626451047496994998508129476331148778317011135994111272756028322083214408823949837801207530955205188936786367615787508705482352922423695639682097488842723950333436473610376833960952718315672857943120803190927574137223588813273615250553754048803850486062729390760079694486657318599255759909999209004816122468511554414560046472853485677748132518958407469652869931677514385914797265727910989919248009690008339066954366257063699904583325728169227629048370624542088243833740141869525891676854756128238502250161825755233463607734716542963636499710647420283187956494825708004356646678569973865316584201290567169096214106265124384586523457187171770551396944421551571317564963164134067722976902404950549437028408085283417279163655154233814295465603041589490572552785080400731900649920805467487974774632514367229220024285822430295702868318580334943727921508728836748448641042516219628860728249350994598377485042930309712533911153611058714234575304198150467670915819092622958031843386139016418547622530792397877238431113402019764312814749660311823364817979726587392856285960935342628107864958975811373851357774767609052351533169088031801218068446363110636738957961807346891490758824878042339783358213256869978008655978007023718572438820615179360208038450398724900387534871741154015348147627063252980190813101161281345021954565835948771371985779546494053374749763699757303357831058868979828024124709043554613820510214058453857960870073122372992093415637828740767801518587340657907799794561309735912975384867814959673270424242653869058595954760703914951952447991465945394763089522132267306544432332107965014416752890180928093949619557317404037208640684605761425204103837256066394347273057995618133292661131893479036097660250312028495347652859611805375724716243623432854585771305140198782632094904840580545900403057893622772565265118644114163820588562251546356020411378602887988279515585284107187263411900952412316889297769599753346065756379077291809394583392227864674125150087212614244414972197100160717136821496165081088136979162534974883989599460541043993216594009561770065616827204451469050286596104379052549802588848541796819731479361725477763455776413731460643021935270151208563708738684854884486909679935718166121149926847804676875588370032863792786565665505552697831333340962452319844040292859385085938269857799440701121915073090020233683258966471367642696638911117181288377481370994924242276460700033666886737352075716443268429787590929190513370662883803952085020342361118402772988461830429336591666978918794704805409610878109891644650528649924610529861227870753577488585773398105201015467460021524453417751828262706654329178912818417044753871669778742907157989285922353939237240191358631921442632091688902894949561937867653386454812429680801646195063917889061798115423213800082402543037894410297296959388176332658732067828789408630690732279263672976134205564282994213889039441802221189023481003874523457815301039734891013119449415608349757505193474070834866693760255555836904103132543304917360804400769323909396206686272402713078413443847368020865228261551859465601675437186939035789629310866002648855012767934712470669242631966202177235384662644158940191776219124476607150742086973443894226228360603689080188819749712515986552069210465391529141233154352068141154592497323127585719026547634695813016331127901713507464531463748428595187738615298536626797694036677285501357671082925653694282717439601590533241881293758347949268387703284593886194831115491136743494482165480948997105094096522828537771409217198196019684447592622823590382601552024685928784609003187680691633957410847354793701043158945028936432871371510826588128595415817769361626357992956212770347285374689623934014674424014293601415859842530106016688567172454006382964696311507746255066060250494279382185693150361454530433897425415442843643523323675492979879697271046764120657880883330897360440342006899047329558424972049666556538787001947817055671103557623799639042848491191464319284527650395120458505680093003533323145978074338974702542870618107012311577147848470899107318504327113587317657458431256757056455272029631715582925842183527976129304595436845566208778953768600757807614765100342190126522232341637196079672592618208314021438964449782513189668162996670203464108654892531247394298031959702627519609122356633118966681423344224059633503216576410638518970642655118700025220589869641922220293337439019231328424724108428814917824342831440248259283813107238047309051399807610740903569163806337481977124494098605510309765158914165844634268179102760440756717500419038697697539636515766679910851241817521309254939612815413391460982686418555819507478408569078993360811116710031831364969835090397772944131962715201421532025309968942350610743185373677692179150469052403439998248609265485322216462028600008031324073200122768656870045032480434958451825389364571977330314496795154400036746775824105490856132718413075702447710134549861910067318446255025691940638582342871176962268350323539756444151987989537598208649945397618772267778223066412448756719124872629617792524932989679478131220007697793457770571111574088109714741243929357747044133509825824126819785854664472298373270637749875838766863071543131073499833468489601375981084322503686790712536036675445080260744440858037932940028527138353386860146167228517292989988728494919200398684790578917532958932336045404230423402959002364512327257675108565592808556130530532888875812884670913895200151742839881371644082690031168173064139671095308639807264935108016404263395279440284402972622691041852305691548461871735610158383748606207663583029116890654518076193891355647797481621080764685156527042033133713596298800051252227655258241303963091147773874895900516043814299759012835451337413021630566443327424765512684089785810329253998507195304706547034360237617283230894599827279020652040837032060802680719288528869914255782983049055520112766370843985505097072165411086124167773446770242138842977732735112597883634183973371415864570244632810034547188342000403488346970637636953975408767844358330040082073402318806212660666431796576868055045563245396913765369806100434339579906050327339610020873796842433594712429117779210480131621137804593687073804265638773474383642189912829868315692150882893874076783861533182241162553327482555425327092808666726952352663601133935333806375649026145111593579208295199133927830828043277982735743585989007350316823657686166903290451388569381102931000072479892242872768917300506798126894871533065097489770214687475523430128261657416367329349256599301712278591029099149211000927594428552809004333276026399539358858076966499922638086411067364410080745376996071018504602249979738128211028152506507248177678335346616503706011423134192274237495261210823440577366882185596775882609476233753662130449136183859333163766474532644006791372392114663321202013187329257790528671456775470744911035857232122406473797029231790639551122454953777174258186572263196121893785530895294380197970429779711761272274469955209601811537606976676153640595391562766503447460047975196565675133071001123813884174380899055009547672836061216146648112503831852803301942161718884792149671382475996171709372817405526540378784904224781059401513527375926939312420825918535662220544336277476947999840857974976375746043484185196862798946314583329587402180588760736658885751433983322952387743135775866188052497379797056604770990352748239404207907131258481025727657706886992273811601358837438417255149046736843093786012321059918514356941113921883490981764456691544883152628115085507586911199504316793019531242445643503308750529563682753469635142703237051682241266041985342712851751834996325866449613775090935502219897374889878471878202052071898149751843554807633867333864699486145622562950940654886302560443284675579663726145125951327390925289699654292772172161774344110742537048875594198762889251456449890863861428113713975480194315568711471136138269309788834367414194123945243085290852324306866309300178337202323419316735368317008473676166111986773591774598530589733844872857872067348908505764866221338508514893162664946878380844611164394099198997632057637002026049274299997034929433484261433547201167156052585424168967564841647917969248014687262558732078202791806461870226092355965143111357100271069394996784008736897974213415540584417296836740621337128504818716080671410032814399445828046995708512263369147363112135714315754110565630033444499217217796593402791311104556769742304928014254380994682847976856899443892490551953801796464822793198483329018745027046266613940633972392757820509012186472912236274161346209338482056381313158803676418392697975114334655655181579412760728117280983104936073464644872919897125643343672375491920924704162674751831296682779635478878358559840726498637397059849185284249550950509092273950957163511103406374964401598370008557231798937874803837064342146567477718581662258503295424241570842846310522208843086757546311453583484357954281398930596779458943362791977077858478725021896644830997487804698156114671571196197891340139499490443423684661550181097716439887142460575586421014761461071894057853253479881097114911110332159371313267844915803053610751735166196135332565075074158877950667503094466431938788269719440763932001013542173977102695874467850014285182743535835483932069585456097751847642898865954681283411402769731704092195855323786069230798354758585136667658445056536904325217971427407518258518514219121787310564926576590707133710480567968514497215243947166274827682248375017173879539955118184277106906384375846809149949901791707018880001062648946750620409243015728142199135780003912866605392197129374933695106682191433302721815447215033295440329357000225328776635528712068906626216673944733043177883414846367129888438054047788766137497113574997027461098793366216004133233872908184357465885152982402976242276356479971897952898117685340565912218389979218276245696758390889830638505071064953228674696496309761663794936550371835242912469363175745052720602481516060973384877163615252811088924781149320793187786466497652910839925381244297681686070399285762884594233710252031470636648846845192546816782685527734457918659096614068825170939839612112173460937029631454939892560988370930627950526599730126681791964810583744229637876645680180620115186399936872645807931816593363282200404140275655153075931414239418573168725989822733698938100225766792137089394966444886877337500871748597150738009843179270574302322031484977317583880915495584348917253685485289276641733641214690727469052373334509947727460032823832509066879999430843739172578984977337343409711033984802454663829997259335171721499788219445974350467361477556330795582820838646389251172801676994755209917113873061783125141714187624641252422465216120218959149409986217517120363389175108157956847215749634841250071075742074203072002856653034864945325650998586190658961819324746737087594730976559947457596568669896489943509556679801653904004406433232102780158190009212932461042491460256958033939016616688973374527143363254666562050508732737172842902139589843059476648536671145846182976355267342624190982033817281083105771400353754518596376644667675453889684606919027016271975686026635295039388543318316865870122256306024505215734691768134592414878219448822766863232331718870177326379097143395564377514376411739747197720553457792824956906012249443720393316018952203035862358825888795221628859449779571239842430488227531591085124520722232565419755886309977679084035427905358797818898407376950404730207896851454430060167435250298916540185698275711878448769019544025701321839087657631946933598047060550060336053364154078895956411511547119097011368320243256622102620589794660900660337619914607039523333176056774075266013790959232685429646242803572760501332575588274713450856178913524084777722394238123477065804759212238562887705864943045303209835564612671606336540416405663774358878625474879484908270697117878697508338772820113287571387317229632155390313400994643248219308709887077749682035059730551282713078636428068056806404054397324683531203806000587183948371716839196794348897577134209349126335579464824830911850392727503463364441776270337415514967353403416262289834422962540508652502428724194226689776106190905373412130344247738607849764958635891740912432991655067180779120832034449780532992262396673491920083676504710418391977134613168443616589519270680985052243522008051644757141964250228706879233869319431130651407061278021369959322525890880838682406057967921805673906219323535673706790991511362199601939009452365805947241382850474941612461626985983927407343492604491913060928735544214382095486200468660324701997873890129662806655996306426706091363621658730398397117948233925228215902805514548831695655907223140107241794988513084439006393408355008249512599587490273517933553690220953679202960306960544264640422448141916147809371892574053964067076006045116663439237268380337154779212670864109421676466944587954232489999232216868204720581912223207204655800886535760432112377178007226810443825766594540882299640823227621251635165074979463416719404609622553007271773249119030646168180319971967577973189089310791476719314931759375860512075413211223200078929045890982283402029796589611131332091804906193574652921332048733007833383083660028831505815333800080743386504381285321412670187486521576245713076173938746918430680431549774645939404959893771305830445951051165211871270449865977231115723534919390582151376037848538471665559560654276783003976569410759774936548150748013559699549802489725433511503127643413509683664898709593377420629353304924826604125773626574017552878179177241274365982810858035295523823995777460507503315625555616964925916527509553570269246056275110038849921913295439768132147364036801097106596223232477245078425412721887150150212974316198241043764074282574702546821518069401010739803125330978787457623401110277997457555652196572491320446677845373289489426249591597699290052466816340838526664992592672012402251518147481346697937673135207895500119316074887594288113224931836135126804764884989913116318615379689941553607308603881450091991899233296682360479249468782402671529007615334043286471620245389148401872772248275097968711423651914007087986209953864602520354163990869288516789466728576495271925402207851385300274735712090281309127434283753107985847834679034306357370292570239113874433428264664654044067731501477977269725598851922914350447179317799124469619160175832802162835759935150093549024345423096892047930877960234335748899799507929945787521031813528300487640604783755510676819136865774130087381693604789010259584631959036418230025526688372271966370348368264109927830666361104313244612652517027311944405900618469475207219060101468814698398071014189409847371434865537527819742542153558738520286435430521506834017016832457809007733096291286672582404801384708810169531117485220464632486754725345654340618542308691846319243559962842881426414024747137510428216533762286376538182971602182538676947859243007767230278867402269404881052997863737582470047089488117355353273513167498594687677832743228792054568829515151658197455417521119535203935316024862782315000784789736985397643085255171379259821181410663618259657337028447774852593687993446341745116905902223261797195296767261461481079130777297809464880527402885669017761393009071542339775212363611602174918855093845589189831047986587753428747731872786132425647593574590908652996995476985058612444653947223893693262460577969296600536544450983933936428168465752594910749054806835372989864174013975388808407695485360551090491004577984094659140248803018274236630921582249552699356305544527868121389665169956313072718745708182920622100857397801245961285730671498666274323346557161517737604820568775301270461492189219387424460679500933708042983539043004673296043917058613161422396546814526538393097904885531030233801628121353817041441264150255477577451818335560106425735133996851103023972980050513877927293122630588990670735440931459100616196884642582128110486184240335883105309998621582044546220315582225782319554293833265617768089820450813196781855289714420492740869884416221944222554075735017781917332009669657715918151165585007063908261877890850473675569650060798142149510863717989206098531419031070545087337035563563193283206078681292030063577750127411748752349075255897062461353724110726712893267917777489792240737615638391857838975036920961301254082009464768772328877955210560535715694303788993360091651649999501059974723883465417883476112297950634485899191839494665047964793680785344259349999929258740073669595722384623073564705386263917118540657127546063182971294963828066809711079361114221988732839389751364044825124081256796164936709470503799073311100633458757687070192774718750998098680808610842689582315559074463094261403843293553758765154901156222381287493367075403599773870306209283647225877647083008890751298579310231483680813976145603483169691854302931941680343957008594160619739802671130566744779031147198260367356972565995272236610778945492534595037082592621739268987935948136084911331960210106508353779782707619572544906088146889347631080038761406042765601787914561898269877532459279650152228660063375363575855200856374128044815460411646691879457078482727692098538478155799757579311361443071802549419089990778191237895317594422060391368257511168480604300793253668258964700517996966775390689158418769938813547379896152640853334952417622791460623488986986088306131889456681987880740933330362344985395713111779642868781360107034124832329232427268954664225174582680165187439052163933004614754596468557519804592710714528238369097006465959174477605421298155754148608361824301959696825862916884155653818294237031502665978885032450954743220592684542544540597524475961579335199233153113644510065700374050834219583283163838160228173726151987500343627642292335769775990760404953542410173357311544767770858646716731695576554618115262562152738367610053691985942335454713086601572598650912213643949844925914060265592524372488273649427421169886883590673559861508156407643158384935169396259307445585064635939305900708478086606671475436736687171792534203626940982470408066528966735548951128815998044251619568111537956340411306578124291533118927388962541431609410292701757077763066666103331043263956321034849450010670300152733005496000745390535825676563005200157583618557001661195519694349095904950536878747820368059651353676968518454493013774040279006676797134913851863540661813869752686843343926920598677286079099040277829423212886363506261710030041465069720996862077038595987928820043569314061500018470163332599120318411012291783927767489019249054910465735590538291783193344405982572348576621944029504794048061141441628815041333268568934025977182502404266193511719949779813134796852572278340750946811070870418958210081049098853754017083264406701321835506722691875034255314290243036678322160707925790888333971598359400617117103153256869614188418158242850056774135064546898020042231890525492379832082972106601787282268642523927480697687409851675651539645886071554950744408334631719170127722793331471718244261718520652600444794837141524177701132398985979449249246635673249547723139250260519829446207603863023845487071542332165370681469804058055270994438012184254985520948906754500895237287550232044641108936316113768982779937945311396690158694809331077483473602545617447407053731699883898777564400194228080198252733851474611098497385844375237248527307277150324193582314766573399429657222179963531202349366931737154738806963081741286439019775958208113424060411762450599709838244497386215582554091367457498609008451150673668526786462095131819952243377367474548710360423384985577943248373879863960330413835202367297992212858458593262568990162870966829623168557608709213194686165608594936908106788732143131243080030025250740134419192612110807585091886699020424090576583637525595035865880534286366225186453739367839128701785955772048921524660099106773063623704949591133583330712307900646084379052010476466465754868015002889040944454030285387625671211672203495263314267192541601238602545555393714031706276697792366560875030643648069374988189674825462898624093104291333363664397368977095653355425500011352023128060304824723913029476881474748042948000691234028889344406298415959755998559320034487574957088180646523878435131669332093217876669171747923415456429380710752555918900185775904984970760229187118098806771906556374589598171331909658553784880010063511208699799888155461367178705359941545644543110339382675726529129070995942237406010494928970638276779464001945301919520200674478314626240320554314283679355954660247560509007809038524659959384593600321730464877151798958348978528416558510273908940300903101607757764299172319761436593621773212142211990791870177560489159693630265104215630454999097084461431895952441107330030549894626528939422365806433325460414308200870343627847951310126550601957778484403370234690438006693297126414373962089189353032733481062869746721713340495372603067169069502560777593066986346537010710918472408003891860117337099914000913440981286546968184828323345905327015760906535335454836727096654927752189025707418430961929069305291420011053598875337492472462619084722792331327382433021510968631207660144276065287450143836432648237831605648429403719000366487072907146368261767793011884805661656618444090402253739685185143440510553960166770282432061020874690074124121765912130332611047168941256059620249271614413225227759191172498195670438488643677003281647869020501020943942436182822699724657336407821123714633162206958772713665771198587919283218387775512020954591513576354741375612003751524392684090386309934442409228469936941909855590372075869443005916736076546421807782344151244216937630875761893029363187584059263011914451945391837425980883378464653094391185644855858340600964105755030352536663077244540341280176063442644352368522095808674337020967271569419889026347255641095180513766955644197576489550159606500928299731768888062472526481976263224619354794586471402511102439696682650753813205610410874016222160355858321771788692319428034330614045317895658767593962732582548570686924206378764277465863843266352518745107327623373882816661373221974722004489634251318935475457406825651250013512425374745264062786058807423051681062952276942360042252823875854776313350960846365929883288752040368740459147774092923243697503766601716711584460746188727436507823243289328557801947218873452712585905544497948129256600448397529965941844435306107245038168467001350006744686981392864670404348754208282528147922899210364102940239825812810795427153117077908735363278699647818827525202781154425783854653828198686783841833311592668157934909446484244928481009483308787424411352555839945323039718029599778819247391208217225413531191479849759557309775283161598659105894859481363777840832038963405430070858978484233839712390747708532961298223406798427583610628109617156668724760140712556561372240187578308011324515964576889715869112657004725657016613649509014207779220066790138777561019623518706899975291503400253976989294541390451042330536685025911208688823213683799672734386405735029894362848700947054566813967779048224700961140805448264114083360526106722199834888759825359821338269619282094632113251531616615301455553467783237100208003168882039793253271116541088852788203684450574753657006503796230168171387791768064009572899480685312733275218981074179623089011558432195404768987450556323918947585245117797889344061408224757258715870895454444807854013389191838477328197458457490386007462612641573907303807370727181563159780288522169506121863237471174992155024616518732627146418371063261642009385077456691812860728533403312232175847998396160506744019525580128111141827298406878662187920657211906232923462538622291160718677650623794115649749491575779009310675647900161445675464895094314256623685314408640395604053941893378128978797232127827303101596359366628999245682472921184070583230044435549530517316962592770300677821565415404723499584054348866254030305189017820953475428067292453640470297543356916803080925245320296161127909602321193349049469171706645342761950158239592059667189278581280709712024316385767359595936861186816147605703499664463346649136018381358473637558775598947102271208921394329294062235751435998712125102386808448161963983710408507073117863900498664969616463121705036058205698971584611935346822104906823334763185168028562456065781623137819727553280303423824683100879727161085904303640891763104161034424769529901553520019288953031080543674825705324937919834835856406026192122979980933897250369543410662776432604342963598765299625450508719304241579044256148243678152515862178524576962616539707520042814305928389826788101923282578538475459158510081232036006172287311941879007761073260874316069066862853719700009330826255758706836848865352102750959160716746927670716126636650091139565228697362569560953092087176921598901622752945817680080486079659299166447838549412731305897858787810642027084881336797695850753440902193361292159266505540319828509264162298212941932730449439674432424022594314422551566143031378773418858703569086964721940676785545748570025335061641535348053054235339099479038789645917932512636410478582026748622789305753229455507632016477199188541978251715463835629307111548348285011293925369881499952406590529565428048712226479429858977494704917418231317019849265697433091366575086254156022040252200288396805144930123680729727036159125297261992423777760968387583759201332421989304738666094601593798730120326318613580252106608946942725382275377186259963062197957579690628668610894314589566682609933667210985291964642392155052281851196424559488710023642201806899439553013982322301396401260920641130661661172104626365665413772226520762815652174318318827090031066489969500800797062726360168385173983630291617208112010626190076144695940353712276284890918629765194792841395531784717130949475976963840325196758482432910548166669109715779100775359187980001343238919795437901784198083973074745371320557705812867833392500456322200607375065809592640334939265517934339063473623755678601302405098149155462996226303988242213776632618249432037685198488547903805325081169883163748803138562819062067646657878677800456013616844941224626030929402709477700784150418432773108825703141356282237729870690175928368974409331324610648367492988116967955726856000432461667493889481691974931371276932278450857661473546084832255627314634744950411111307037205869045233998068313164092278179690229844138061867091021805862402626140104929876257296982576050002867091278907427451300578035030781279205285452393278352478354307830147816729650247928489506919225756471790093535152477858598924097428821998701251673113807867791635709948228778812484535147958662531284273749446133469531789604413142180936371285540741880505495201229400408908928408747592310835284170284359854176301347032609748759629542693077985101390686475638466458643883156392029882175184984450390822454458724243773556306741423412538433388525315262672236057622721169557311542065945115679284839932175188280285722255877210240470785763512717289707753405960959707071680162063455010082004796654437830036771197665468504734877218281986708462565590926432706856240140842184526890150528714556547308229118299320364608563816021870665968950563152831313830554255644037955765379588823295901122361196718556965899773797912969447894908276576462591295498187833154392429168382353013938429501652030127870391649320389465754187125681727591936923307299904014336120159032626898916238065466232537942716915432506306470569859867903493955454813394529878356841335576932743506205360298953437535418331525267809100952435950692576640842236950793711601968501556034255930824043298499171465025427639021173089618418787308021586597661893357230849000544577972638750301254801963093759522400165818580255202545422693991832854905033789276675582591810608996700407555152180200187956013806190661692885548173942636883573090452949135420073114376988396871482159111044424381250540932310205707949738806315872506838251969957827233332080803059828744942483371248000759315075526934790567532249088548533760995486410640045066333960093331675854016579014897296905766780444953856472598462822408956348186140279053149936772604750758321695434218214079199664642017925800250411540516402047522337498498250353496796953618496156871582838060350590982048742772620690764954678565547320443818864849111157632945303328450496796710175112604673711772083617888199925544948863918175004593074488337587528502101953127424497492586332412882714427130508081474515451111034778421885634361944140016120012280005993559105486998300745915259453655598067440775880467178239462425960059395118218408673853986437966844121024264612299523098998992454070534592275610730136217494782244174560734070603018897459793414017453090784152959029743272678456562309703740530049903029139736502476263529970024217314448123479839140960597800081886408176625239804280263811198892690254343813564637842290234931383810597301871596055272969117037326054346141819573452118564432477218307176212782136128314499409128982724785904715108224211565869866468296564541166959289565068770400445330092960325090630480424064116119800262202450361730955811446011666626596106915872006514459278111216057739281022016234707395576047454393038603718958323286313396456774548776613689529342397492223738935187262762082589265561489821058729483359528650376217188824179054577753115940300963468044562409653453356781956073160159026595557557918903987601118963427400724282728052907789689172533929144603998535529767484653762151387835444791834352737529565405505276363039950626025204296959261741545191336778809842838465846739313263113021536957877483146166810972664350933801387543114781745178793948375356241495754645378134448504464528028468789013599811959709921018897541204371271206987415211282205867397908679375049584057824688244428269373042843295081328293826001291120281293694991253456475753887124939736228895191029540375805749961607168544156474399594501576478787600931493563417634097358299871819790403336555414136571054536709378287277949489756596922697542378481514764083392487943384175984113166166323307462959323081800359114900363717203642392036964098922549810711782147416489040669983564673768200685682578569582701079771941066376866008684119229551882302061241267183339584186273498029217409108885017675878921152397810122827432512326454563937439838738102096680109432929366976896184105680725502348478857090756331485868933179280557744390423530524074381337706266219048450488963989226837391611670763648983031586062573230635448715021663160495249901115172047750424423621289166664765599199512166066125495001686048916254399839521759572340657642316865128744487912024556290487900493019738497443666602877681273442920202379836275723708733280224911971005788629652802829720861123972385539054735528229492115748389200317603104483297283432795252736210333032797966968648608897431239330073841943509379904318840737517747078409171902973055059909319459590178872488311851954908304623858634045890046902294801330590733762216731293643649878377128801979721561450595089124169139460466146573270051500533245043759128207484443589885757227588449121707463628766469729616873534133416328445602448484597451767113540622435838481632306650279975566838703518721960132876091175821963511787134545296982116139928998396207458091358028658726062751369189989057004094713614734197820425075569486512723418215806891917091033179625825804204884809915659353211774841244942090877269757869629731731419290201076112315814736380486881465279691722346879512325775351551591344558860375835791107184296876463220562545652982808083124355375241042380741842569796178729275503316108801964271036698350508505536553390216533456473809913417318869955807943186723418678898712422499790042279279114862593051193987747242128192891073021889836315907426922976374358181245110738865942571358694994346835075120335182678029786239219053170568057439193634797716344366882625839883930771888285830538555839564415683541487757304726922216355492146170025993433232911118786453806089243119484300263880041867249789818164238973107542447874704806370866821606838286657929951844474991944413445672720193704025150080392576677239346036019480048733540578267859852018669594482355801465009477297746453393435983398131828769061466914562347219661422844465333059306634058783256380334131132561118373308165450857293948505848121390158752800692126326273066582043932836091189342506781053743370321404885955165331129291316002781816696706421019198626341499220910320967383966837518660946797539873894808275650842004179852436522046605809082305380836059673191823200670268590606671125580085967106615374164901327945656807938570153361635025412394898176125045054237505583498240109790258637336219904358035187136588006599503099476256029479911091638395970506103414019552574936875976953192169398120570541381672328818086479223925578132654165059747957570673524428215657021553458857093085969327665807497187196739196540733201390051112484931389205596061945305444138790349338780784659472790482560531918116253008681996947897720135763929442090441095768039056614957500445634420509750819631517965809414743655489434387511429521106381935755032385152552662947882838982030022683756637216303931593195097410264521582628518495255913426332388578488281843016727601940123658366764247724894893373159021191739335059600972874532115678574535688162391197183524683836734987163244128723724401763892543994259551338716198053411211887462946629231980571840323814039805710447104734662409947125933959514574506586996763545860222578128894781990964459308877958652486230630574452914852084606986623844300040805644668100062756021686946784020846266405384581095250011888757795553575846102255599054816904313426123139742969552234458927342185061344157179547973317978279070870526101002856045088679775664994723613625183092560130608435922631610240343764899500104017975361348202866376266979220465467879430212396442912132730558928494023608457094386212864601407817256643734430537305275210330284240341305688124913662468063752979165801922291303273639246432483723446263504818434090971823453357312142428619884569681536172662541112439267499120794146019828219128728385312517428764027444722505529632061391521652658955520011570738544902782157291497864215836083194537055405247276958889568727503649803974452582340696833481709086647018531272051516190315131092458328181397469043145689769424125933036916289180592035761213515694748061535318449036670569719154312486257413766655508514849182287737816756309327069630418880853564764705331282891028910626368277129872283757554853708418614921380325191791153826335626339140022031400007879222438147050140796304147158155413198210240274183133268591783722811801240626421056653045172155551401335863954306015183591165968102236583941158076375395490071943422408850649386959433526851292450924313648015015649448380672463370199866482729845992706708972058388839245135269722138660713807364379486339621940750088425219225788018147844199579194968353403640540150819756606308405710025637697402864890869619563344160589110183223218387919201084488026608485322027323897541342187043995716632950635637886944363146185316815725309434022003941549476079648427430144659209316901638978271496305055898135039246828195411831585450189057812913982946124778720426277027574327370956386910397259779994069654848692759150428285927440577168785608855600933123081365504354291216171132326119472170256445281617803797124158044852812963545645037594586134481688919162701475471397779135075917258165979172232632482463074539286013976762606796098585688027615841317219480332300208523949693165746580578218518851607464370914283612752106654353752563334177746049016456549897125528199842826558487411877512237862331790722068377767665005669373214481648241423743183463855715884527978099690489259839607097777876390620196651865890477146887311869060714569417649558331956412155316698351765550312730135789674664308128512218284970327563956930715474732142668486192840985304088526150493168709819254952090078257898544920637487244220736605225026207835893515330360332891905715677487700228495654462647067086806180512833890914659719902763662915882812883536428962599771724783090334555664582335540029950782538034301153451248779943658375788540791397609411509695014957706874922698401390696244119196773802622217215798000841006283252042620362303828784582292019921311307295404175659858801639963403087177268438219637888173126635222795452351376047664753299928297947822748576577561963746089234616897177399578639172406405217384409034602785688695602062631279974721515383263596671454098753644262644487611562191482688663558339167508005968266886982712040827352312534936234057370193172544383945380396091578006165652118796696402390811594789757699181315809617344658286945088319046646728678253761201322542836943942085704688289735453313610084757656905364185937779713303199375922219560366067106750090896350540465840984701989943201697977936196336323299093025746745406962555407672813081343267947223143610585180451532626245140884647506096080635116344704377208364513769125942797947983497159537637750325468704787159720967006004519378506431912097525435785904389942427433950768892455508734023021849882696992138233069551814879578622129602842927871811785899066880014165465627447999210579083929476912193457305773678663466778657310075934813071435262930420052311403097687042451805278303066488971349040914898003560559748247948878086403127915404567888109813729292184591120577519800121643823550672181302728917495507650175688187886239721338283685445063337588919903442145854009563560965057878982747050189317350474579035771722036651291890277719027476212082207693087605238946054669276833960494455214780925695385488807548306149009249302162100046095937921851655406021415466203747755271306243515109037545774893173434845369405958147332268281723805522967076281950208397324991314175361378520605191648663638391749641280392705623333750845947776381494837302305147779698576938237059890806887752579487407034238230807257995543803093792494724790493172113704526397819340428305842018868137269802919894386243746829088111977660939091525560901601628006722485063668315180981138668909885922667685320660921736210896493046560710495505934725562979868651898089913816246518929800284139029596703505289809000729112907301245807284760742931016692742595512421986789249125371754753262140694162643577983002698992793915663107974863771976861217416746473949872482290969697602389501606822420055209231168752279337192480297227572586919112952299769173625158396552801351025408485352746861109388351640967990370810481436266585093501878097753251078788680898237836101876164354060588378209868836110029046718516495193145927138807412095710044245616983294204036279789653092177960535173538007167156393295843034306638714155284465296815441203286776197840149367462330192059629682206142664260499996805675889088635035377158372230705340598329135931066883795539438838294389486340976964849311034462852942142978648345708163135422309802391921549072801676733985319161775077019797073916829520164711622190819188989666085437280611262146816037628776197071668227502783207433345101904054817112109675266075517187145910189027468723362241107368850302766435006767444833796725640147474101179241997302557985527057229766883578406682064803371807183467902538474451438322583970759458064735458298709616873831830606859173190316469425899195471441732483203434227846309266598221776124934179864465167934350652309472945546090200622877785680957891455166739563707263004825444326466826813078592966118357233200988884767020124846204323063357840752925456783879736192850476555293973792612323678848886884627721315731839003880720171137568350232165061235208106684064419675196974174162715937474410622869430000683596180770519523226046336449164955654212925716708268245587869770293822172316345284588365888363543522821713610780100352420964038764154002365601106317935597528793107844337116407605464911717510752870007305723821938620164401008302078658666160421723140720294829604330564642811892957763436172256878240727199164368441937154801453399528588479946489237764392799810036925284953396889524189862445264687559352141177038309812730961044228653382827866844487947026869826045620055756552975974000138033835083773960012288132341102474543895579707853221328020022265541666632241343719041183921086394897266996798984609522898977537965777161364787200221531393448480540260928437410265141492857384842357502494773578029338762803467685073773441626713650915242195515193164713404026130831115680767189348924949657177064053963677329449158393034371229554080252128479279761824606270012289562654003436831476444202466147948060711346681507565126821032038094130328053108659282148210456298968376419744378774866756699579813954123073550841636055460549349902289044450680616780447874147257391842161278023245065968146230348188247948225564255264071763798347369284402152035695398387112142272758060312560296417374205426102240506369377825928656300958039837164232034291323639660188587200816331582301952323678289280706116956386830443199515131804930867017838191972475453759079132827277533263957085878863285979678434201946548406709694158179139067200452877034346565343316488356918849298385868686523312502828968404191999983949464047387131293843668563830635981857885889039170137470767245758399088632897495600680887974342109459695641439502750941785925909002714718154386801869501964446332989446226488664655996391997564898837472826432740897690530174011285846228124941707683571251934175583337028822702308148911720929828087422116425521526082515918968748202194483136434895269674810069557904619829242914424237055134366798331180738510990020708914785645469549697135500786975216289529170620830109030537535648217115734193870072990633220948872954810766899575746566091243792023797586590169440748422745061679994410504301665310220210663094282675603127762053242558992760899336739658155957817549209056568640275135918590629041678155206385746502579148127581889155286106802719611810453882532863766319157923621700520122305401129230583849199675348455679843796021201704043869661351440872420135985509541446322507759297877039928369808671377502159173228022556647672203257878010292956029971400466178336444403336929680015193734446340540607195163425382408861252132632449981480148870077211672201996934726912857156399404169036996800603832080636315474712653491100561944970333212176871913147827847167068132376344698006997431608714999147349119855541283167463021084146696790794948385049552575617229715041299091345512580186460208854852348580145615122543664078768339144353160946761071772580565670517487026642320105316824155951265787795162418001292217919123279549609114313799815950466305886324258103019834910809120629514861106329804759282680562461779020045428972576283505566667623168899532783239671702970747441131779301465812645191379802920148888035907167928036804725107367033642468959162915925696368120656135723692692786975719387314849636805202300010651709177410980470023773068472101804329643550301101801382208052982879383482238123246084608414039737097242849699927361999875627105591270302658268121540997259438317098933813019781967172261879525954452341503375595461522585529459012427188286745722112858882208173026686476529903012565741509554803674735882432952314260140734145648852203916743778780617180681002484883542784814979593022549847507599408832252669397562988118752800717781789176489351285676182234584674518244219474389498466183455216967306943284901959666879712346948383775022188047535513503747377920277354036085456017144770040408431964953868081756711119055155899313540055408941456875927112609601409024187560258946741367482629476026331140046162672778331730647978528071718599023618127827836668292919093752415772972727362036839084900233937818371201385249347001574251842325534965299518325099062434008893054970145205834675378927715938650094366185843528176642785795825998374497698353188508045735667638803476584326300331625131485072183508892293425924471795273306662591489379658919901116557788504222129863866789779912650633205212981923708591803311325083109862128052758562265363932445760514449406312634951285656674583734721208599431351218670541025407523625479617827018310040668694205506797305746894878078359289870690927180178733802833539605705855052556742117614987303873237827818326747688718430477773843157753244405220565207952555925474340674593623245099860448639608998194564409101142159979747532141644232672995931054338812906211744002205858234357842630066486306270173635254535416449259934873701771229121392068891084553427540153863541863701203697803038184381095979688724347699661806759051954228616083917249820170232797176468027321701216814590200774229516082346171784461752681223151104670006039517543265478488604500597975092018922845792328745041923036941998796535621349158806556977459584707055409556728927218153614056908689961017052872806117722071648982478246154215115459112681405367981292872460159648414297341864121376690156106056119192948690597006658756007590848792345649455048656128053787830942653530925187359375735120146394573456413374013689064646001271068159326640862301109996037412771316861141681340271607086685367531668661602924403444340206513590822108276572383060418817522999150903597685525630897117983057826898528673846399959234986296829252820617660462103150145622373813449043891946334588062682115683385882823501535734541971511509316927378358563923808168671284198507952138734388353472427806647610116278731406999499267237983346508873519515274233355300325965211149585017075896170093109682341265474444829624653806806394139458903096800008594962811539518061731532152908748783663090396713668985532834793842904270352834077354456858370698647368997299501378457380306665608384369747039003837549546839698238050977981668945808270408838931426978841672596686901166741599872116138482445809493824250570144327842116273910899406733738458006288483888597328512720956146521205374664077568272826844001977179640981859778891296182170249486378902527627541857447281214280616235554537141656800704560049506765580601018222745431531356761759212428594566245585586273420848814624020859943482399226807538696871689097637335709248263542522918297435369811695337751043680150428413007798479510009954366820021415798455577092062530020743099413967013336652763233273870234101769946510178652988775163752430622814341193420016549709196205949461596482614993276751655381239738710119299537080152881047994943327562298398758206932406769996973304514645389987575235392008454251037873099596162037408518390727775502434174724631562746970737081184674851347603639269473362511214022379114055108727108955360851104664255325604753711073639656986790146501968245730706736869996697868217469415957721396321901892116113803549835809388504755336215850138249463630266425522788569091516179870587628483934318499165068287583651302627205608038790791275446917806970953484022738185774007340357865455939649548124095005390819959906767980369757541744132856371193406609733712759028513363372979118595264792880160800442286596196999299284884421137381570834550697571542874871437053639289325550806033879348780395138486272126122971718019307760483471719861143588151432823102958102210119801052090526023600987979473115704615292677243906078979347117818421271185203096919419785738714034594601038033662432142253798444539810400867657616036437447984499355520736208919023417659685445144567999859511596186311933971922991938178573166174783612261310226842341974956004032253891858844135023328535276221608692069146604393320781200808611968169947513043672066351073511677291312371007069896112795834093808751597020556187633631181342970168851529276482864941424136184757560345813418933860896573812529395721520939940792273946101766226379212426253307188049296680625847841520271575318820955194507700323188058955697825990428424442676301043407639316673754365617077824725795317909903263267762092043982731976457569875930328348006899408808985578542815991781301479445786856993046878846483205256734145699128783945129371843216449665116311187177407906908414739552008837737251626923952463727060191587798769818398520032325499085112612113855618300487978337426504180181816729577424172054637961816824079335371175379177886902271688637087524588797325280290557905036739073434175477410669223997616794359690111171384287890173584784390569773733054369540060861200088912626097355377647089403483195995272121534242770547452133547452043088426404282599601523303377584999678867824499543246100676556069883913271055717715285879570737955443093666946008322497731678219941198261227011800689667598564022849109676484243955585387971858246128612637000271957026846371148839275200121775263523532183749048356389148097342232734761051927241817275517055007344574856368474949560770343808178236511058774194027736454356595304041104051383786768587095317371463924292821648904319586001658305363064922115133012681546989454472343366533632023964566347385411396205889115209211018164226015081478409050749729320771798995223813362518298757823725663087319978485182482248966506237560118987751168683546389089212460107824157001784390540223608065049316478665248292393394226772730392901198497703930331612509126076149458151612495229701125619037234406901274733485459987543471273340903359226064735555851623421274059010444909361036827537395723108214596467620351729723422850362085033094342349718739268561692561972306067348264660570959316225359147408254231062498260454477006236689332040114828205395243688762200563683566851665494749221224317208964439336491751850791255787776383495724981620330916571311899787171955411424047167722142634613637682199491037046071524596309252672374317955898361282638328887569790908863905972474684226630429970230448238283443398841368840752733591052073007763400927280028519930910908828451300731525046042211897786450185688267892047410574012176698518959222030735401158483416567431002795243220976128960717506415869417906603780246582715325348841026642842863686217546993010900860857465532818704557870899512900070755086749378372638979783856040286608206400602477330725998078787134438342860423178652786119527100310494120839143460670435267682372378820083225153884137580959629653271436087246119074732548286508532326929701372784100177210868747531299074344889163257442938566480218192299429403233926126474653503386600073648868495222473391385434167591881837397814691036345021993849536288756959419340040459690829110253935384025845293083270728467907226338366548432744142641252054312014739460486775984154572758038247523144829699534581022384028183270853472215882952559446020343537291713632037667574630567952512550674168362790974427101301476795229939523620910148366100075916137611465953514766524682383483420780501165228290612767415985743983589218795187740596011805153348718892725708230011423621519364190975856620227235297405334407605748694784274035498588518193059660698923033983315443047405102223786708973215892878396021912953237098409491668162829564146709626062699332421483687315460350679636077300510018512046894781735670422706960693015584383445002676698013960438361069890915664928365683627570503546352779214412896402349209791149736237355207282053522004496858565706008017488624786010464447197351215246202783260546214014091498813869009038594861634486903462839994442832886319958675716968439713190051279207947881911214415375598123498730070859394208616118925105622299980498861672083946652859243953385391090032327985860273048298500205224718105887613332637879581323187112550601872448794959664284810794214707537185629493991688318240555737573012382371497327565322488096393583912067106388500398898149438615162776500626219395669716192664827029391834549400659097586423669129122754365876597178254227194157934083323058427816510654940282451002472706990926745332406242616377704030168611976816712918615161714455997831692082673593363752430732334495976585807181498712507880998683506762866902026850951780066750940523356071151873835006762524421004695352488801037785084507276507116642014038880918402230858210528037478236519266241830480811557531872861457292326761842876640051263962302281205668773927958624894043845902587582621180167348452512705059167444412145584134286204972992573711610951091669315098683783291254138320769553064230667217109028334290288044284104003100058831817846526043128751616400371050898140753667472399659200283239947937901522316056391457508888795404025525717635688087826569005258260145530566203341709205164140780213693034509123924028962635639914854001364867637779745462520624433272064326516135422130428439168092949316412490976636453923019224175395547768604789582140727370542100644007128553161192316473017835445773898863700297985471843483402048739481637123170840438679623597105071490355433019185334584742728023195585960001340733224830392714366315672382160808253576947104950879240416894191942791865806726355995755648199054383217730938915611229762565529012696296833091343875796433957727402041555384574153014429772085829379979071005769355495429824403978316132877355032654825450192304385950190680665897153487218434669966119830243372101958520424625628237237698159787315120817260339095886227094117061183384224603897002713991793219210594409096558836658286526468759548400265814501703517050728796604975111774077662003969290989258376710005769074998532669265235953198199840761491968060552579269833304240134417389290796542158946109191501914238707511970508664953010259696188955229722201682365170397475356103946965580531093044503519688903720326144655825509112546763386204870612457169997534961751425950670282768830208156496075582716370758666679234739065036708164165812745956614489746375981584551718064025749523421336791979058496942382452486551726509678135063794215966053150149310551894716380049499060189802477015593458044835782013249519623848511030522481816136814101263726584985551898540848569524419621272848161522237890498257109129400893848407641966488470474002694457547214755534824072398433888395540577646035301323088448781924761106553543471178931536216653894702008953814918463882624813898903843323265312195213632843099474971447460041460110261893964584673464739958372859215854281647369406523639348522272099665113997290158527828381775916859238533499198107768175130700012762799580995676894858684314541925327041580680918004541019290823964607587612141248448713344189931776224149688300373631585345832646359121270337190378255656200660683690697154881655791692825868185044352273110027547849793156121747789441200016773452421515410978441495133009088638043046950843028038009913160455135320644242597378533655715749362883406043298739000567435215684795361821601496715138201829071378948127328965227036822715743187087822500894285413276241282535298506896650013322986347827856685213199866717919993310524057949191705077039467300585199530429006148930341796241970593902706057151608907669008631927702393832614852884132091637636532869461590776641451031413820620421565261701590303552781841099934274864517278791901260854388120040076243102317938382121281598626236021404698226201077279997468356029156942453467587273792672915686148971817928134478521858534171660041632233117087619989252325216488840792407635090197009564949634854285934049722345852377289858347106926785356547811144550912355434386936118349988697944840459040921773926849441836255775228514348437080493549935754829950957996984081996155174271927076831222016169811923542550104941895191268231595295963103503704976151240084342016542629211727025705023516625678840315752069994962271697387550926942160066154078521681819642259498954192047869238848190210492058603255530730460893776518017701182163423819648776167615993638902840120275389934793042204094593381884279624845466138057748278801787226440396037451577154009935130671463486315940823411381441192753395094184657307942562127292992507060672664719098755156828233939723587835429939017127081561107118417719695294543193087597717245471933784268025403427439175120227730605062176244013945728054443082841707949154347562745256694172402795274678654241049815955935053167369685872486121739949906464678170160955248960590164401259731408211455347106223446699180760174267956013580537474432931421610673960547851113537062342223672561874703151982893124612588246137837992831426977591072385938612548248662391591482747385929637565887119599848014634362433295775124514859048826155879160099795491960004626400802925353759303040929189384051256146884193692128315575525355789053118618991670490192424306085093641209346818657449776361349436092755306918792690844552241558285074184384240420707086026596648643545510749358844042407062689409026647415292433914579662818079276350387496579522591552945254569730524168994273681645919475191898581990492484350851138670060622412882004844871724890849665097722426067832423391261862590431595839406990216279114094854255211372883218860404528567789901534210843370650713184740319221905832971671593621746474724777482205664552307062836619429037508662357197067602000513462908965772509771746050654281133210725548608221284572343777161230673751201351456659762982335280673056100378768028716933914679618993622585358599991289613657634224139688190450895730149232833164083285502902451150818586937225156593659457672415470360843207440422484471144115144383177974327754844445578437988785778483176947389597847057631492359099218619903293899026475364552703852283266351178546415604817714194223779438196683898673195393956531486537754687452752333343961098665497658699913297197170471212811738390249733407399743009604493371479108937908879867490495242938490840046725604791807925667260151932917001571012199448274341613068385659184637028364286311273087100711037424732834305759563637175208371601457101505350113453783724798439310454461489051283688878817590198676610739538864584341850289045074215955457445086510773163622376442790051222943304921613482250475631050177228265554548490363097652784555940296283208340961860782654120911091809736752273707349567183185238259158967262073541670386378182248345530723175502709055613606732917384348456126714338208215397414327975562322590740029566399425650270849206883486891669580310992981347656651091680775143948283416432135699252421811603829733223701150919509890585944295525463505589328996500448497887313959600171665263495541481604205114568858248819893952934679130386747315860761191816594830257912616852388199819054106354738251328805852385471756628141497211991027133020826744084027562555646530327887552243076239193921248622000228240621753198106735039841123207259398971392339264277027376582656721228317302287970534395592535497871627828719639943762992928311277574428746576498154909521463331836987351890626435349189525067626946572875264765313763750060758080488682700193076300510762691687416244714239221843814180057361958502249753118889818662554664026058242112856064860276669692291664685290312801373975469753131270986571883208438758351359422436881128989458782121538893779859450353784073867947617686852027251328982199221472042652580499015504895277964893461539522414866839476004845286685092135499725062296917527063345024143207132683375621061173143174382514899627817518558470567572942087324642255283392629179998996017131956054073070284844624638379021939701492477245670204984975913071783130431366116433125927785143344386096187847295211518987500368015088277277530647024978056353881262054869520815504458523289297298975028321732345233023557987210042261203796847768092463837847795902095431669638533299644160615464423083185618534902689987476811535288998346393977670032234308885147193542050373772618217277066614741885798953751798186934072387780503466737562540396821830877223613105834730145837321966577857856484694624852498391129498467765380876746235699361769364042679667687267572024340248724899995230823200115468354135313220872861516478295494291206702849123155084731450299893202977078149199998155735867550412375800206370518837437546571659437775572716861720055714760277591606023588347120351411968111718289845588139856098467578206340301214142114785299374823918502271126676840558591066900905105147528438764684088615543912233891398994587695763523717151091540603520333626276210183647899915336275105659413705150448235126237894300017877978199673897062089849301212569474915280415238490248503338029774847988171970789974758174837967721230476807122097608586395291713273343478450151178254966516018001704505611470769225386749131567259591472834811872678001151036250054275541425877296709162489952975052280774206743128668634091104237613448295440366406253746223793325928992719712270961079086350699230449110012874667034515397958733854974710918208929855187897852189586509993899902044569118778620131039883442005107200989811683016224042273643127429425740415423256454645104966182442513060983662919577479478202962589203997283004237928295678728554231910612083500107878721407585765285367247532868104855475705816358010460974712506677922052912484354584922147255890433839457553570848105246020411544062267626486065439783790753052779984903588968924600700426993151664080284036658735266815772734045317231553055209107037567859813327524997762172622887647317902106496853728724146106238466574473039445801275545065619770889688955726253848901512436846888911794831641377579410861246336402347200106711957220399774550230119614697984382465294821252028309464822509105767334045049784023163790235173941182733836943387577037824810426521068073026971377213756699249953452408717150536077055218989229419187382433607452585749740843920209897454877430024763239971252005683176696683990361643822884974431143941942653946589707620340533077610933339050880749819758982127883907959380843626341139622609123948856747748146768777660125587161494080117010645119429502975858415026244140391163724514050156687207234479836413209084098191373825002345835867757406523454901291488558484370832997210966606191014600932737568790209656851774167119768919691600078143651783409340016553321829011727895498518745835571318555931097058217526809740418025548854457958069585177659093215249101980316579888005498736915241562409860174841528586817230059756563203695631393413395537104218995361452297506181217843549132921801857814952813615203885470549667260916120112566458204646136007353318736045985376925369797884762860989592155750016903609948212331401311122419304203901819391486804236795988417081871969908410723328340455756752761753674438513751845083454103405227710507378090939851105438380024179574854455365169303893003252484697616545265181210031501565197871872760422161018978775173094238799410344122383575680379077637537762323344373336298537325429899571996711732102174338227511299021348535616519194704793046569773753379098595882421024977437985054803684850403272588591414103721719206004502330863272000165006812356355485381199439709214621631285112243791006272294020531960395871573156351207650854419853126694632000963689696119399950633580733919067299544731020996153011215958439412338528176899059241975109325420970848692513190561832490297795883917392107081272441694230435679862366982194632186394137044671639538921811575622039083652918824296068322473672134499249966769337221672936708284728419786830158134740306102375904794904100117117720610727893334419947423671735919731114078852097917939351471025725794858691201654836825845245419378432584398161331116393787775594273003088320788399167100073610451873824890024754776474659621440298097816903426734486155163829197883026133738490736539511704732244849664902440930669642702084445796476479542309720161477143232626370056085558217703988605530313881687830643824739817698460563638282105891758253403928946645578784195160009887088918199371455705697629918668128666760185916748129428005629193953263441119760783466968443104594919378673513610268185079354158875964129674050354411045652940121949752855871852375037849367163095984728419250692059878285602695259372721888666343799601753081019162537442866215290592431608412887547772523245416684410411353252446269811601481700080244547014780424008689039490764664284200652927571899649591411762046224550151617748355124632950638360325648134394526235653850530143288856561848571050229959188355078561799189927494697035009409712399848496705200156617270458892045209279475493763151558696740535440380447363439216728989767950471009677073029755301582446110003332575225658747680673372997551745878317087944689712891718192487819461996808201977169989784415554600427972610713720599740562492635787561045975435281974995113236172269645322568841790942068881392492329716493047898376067055065803704659230388706078838603116882792862684076189887416566754067658664983977219576331334347344117155670666886054475960461383617121725111755371669006466930904761215182708325667848390653506715054119253046248294845179566841100303931122818382188841558385726124884856889839056219725323987491664111000323679748700312608640377441730845885234159376744659569446781944962805354042030221400547968748589716020219557645843175377163279837929929608275947310296059205515418686579225873660796816352552273059931072580747463831576956112289454478630908407155537164163239573019727327730446156318815903379975653574967015325357493596597781885050077300676344061701412798724786268032217134100814932964474705201272111861824506422356699116124418407299545533034773574100902515645005404421631646273272115399641748964319359360180721070930765273170839115270379103903112510473199824283186909101578425089627518700813469831901099617106002396111733474808876397624808260188034183253723401547663056346591152772110873167222693584821689076636637899273819378343307748632827997093714337616386378802580154007415638387473756880690276699764127703080143047945924577404057712957925944866924565582110919069234473964618478329610123161851928622313798982763007237993804648418489728367175263742984922446642146218775657381976815492659708744259581813766731710135963941599520524064242720686955139043427857273303726114317748808697691180100646938474233672792451746894835072790317521372496797416552054015719568825465485241730396179178503204775877018504117296614312257556184892600342565487149031189037446140623448164309883009224294715465580952132994852760215202176357769095650487069478078551415343252963038717583151399843385178195346878223031832825085905401144936171374959454065878724234578008386417291434489139707273620470473730061374041062766961912942859289984541895432762645140240759420402844606045804961322053055448377973258682655977136933289819407227145124787004778630883991102386799309443147535240604613430486909673184924115777286507680175750245825869379947648819449572198696954607160307743731931259966137527800992191241849659981049770017755804497445330241047739272042452685248649278723489769153478085587697299030416172260874068321675045861991723275343476874112631993608233009433693913899699450112686673858938392950282252837691203253953982924352037381536353690052062804572734247915071643563930279670004236324440021206427222217003306176873780947812741275503856822449133777361646179226864548928081027266886231041630292987461343453452996538094881490048666396178375792019367353095920984807838532351488198537228478690194971805495492224372252977914579225678214553878058024887773138779844108434848755596892388404860108800966067797834522335231213460531716557677477310658817246058561182386811802914252555561601089722394906779702667384804489413931635616684972234728998293122710301048146688216817985769112152103827140191706420035525541454299723938689281772812445190326960535961485847796984486376456818129121778725810232144094358617053791787412035014850818684884539135165478968564919225389463455995254802637589487500401189409675264070831298491767751944368322651789159845455774430303417442984563874108300589574048180034809792753804633708146510942989644809626626359213968327382345629706917505651991412125016630894195181337382016721653550677571803205173081529274348228363256152013003869751042140964270572223212091319683589709012616224232905037957340745521632010667492027484307152449743086108143642978389249782434500464363768172059006995704238544199026531988257765624600643388374818962887444686651385512519935252039708050946811180572469699375101986180637383251362528607396643353504638529691214872846471580272935923513938356669109978596100956077931587648214271926386725936035842695505299859519326847614246248970035966946669893047304086838569050482099014211066855319511746826902124843479984702927529522329378764472504913797239104511370609153135779903712032520430376520578425739336931825615305551399084738045501401977623914963295973238040539449850629898845432055565096064522835235975993098424624158724177193965758904334687386147930664853343654090845897152399760906432203775259838424881694221488687994904050438830004615703565029879200577448341528288113829011093314040419659354489565098926920110208239805816435509447671428471415451415467765120635410354513367027252048395183882155720719828696458111596849577847708660027016568245895943045784958259749091945240758223796308472048782153441933022719443718010323397567135703835667697152863335542356889847467192931660773699668150676378780055032909505958480249912247114580847352828764759647007217164258097631159886168906335011118039556601103054895318407886377198224018093628011614823668860014728420015035146120327215613379515984251580343117363155793709858171241518230426834662860309758378108988595739394363173539653636082034371111839523973563918320091350686322884055008860557295108038210319310378179635779009528809036004264283048581304300197135129953949363418443224529834087950383238978824516095025440823296779680685854835795412532452851030485460755712449660534677663735176838791657937439849772425047835825466382245479417102731366474893620463827004815060850394184608642292979119959045328622253539183792803913342017254843030263114341018924551886277073716177406686818828698074091042923381602297915184761292480253754955341272582000246175342110815747328148514030445703655011793924677726969439583123004922840454523732423773842996698880966058218920808937314361594855842558596106888355413109713414829343375620569185980906447304492321257607681116213029611998831529327015974639894578003645635203525969499385387490723720037780547240601668200828932024104266666828047432785615181597392874841715031323080628706940283882148804385180442589073050331719326601016598940394671758147201427605852610829146756375996975265676051182574527971045647470336746644741486907928465574608703828052125788205554394718465966081294633487678759796289327801041511458506497962271730223522683044514759141242564685922542308444380242404479505525508239904426153733664932228872561820446309540705603943196849238122895173769534647258792492104599849138937934239472233769617591474178195488602097859312140823917711452275141250479743688434949305486601191566411004446480904545339221855471322291888004532716218984591180633604831433513473631314674086015633059518744294122952692836600473569343699779663113677988872991039499988224696886100405046676542784444198549829587255979406264434233627415935602826574566238995232928995487314066696305477532003151412509121167748261346704718015333805210395438615428512938619119229509222597973882490060275118152052146635580796844847304635832360451514198035391602082485503538304639506049433341135665956392677548137667316705711883902605933118532573595776593557756383184543122990578422282877791856302943301193733419162140723115494362713022252155048358345579500875001685633688730933742430158342765047904835244700107598970527415857924262021690738546414902917217079906853829274195647692371150859586088796296084005431948136662031057450760866959599276409297676030697953669873949249411481587859737768462507267971623776192071237749405577959512406502938492523407241828640922268238805255024875714198761265269870450683008908546979485204590628895025788408144186061258330842225281579913747889502256366024286148383168267703645239171118229583476584533839015430030171510460209270382112853441077676038357320856562648794674887583736963099414333520709466483826727263881076319460181636783533509211802588247747123427969497218093737426006762822909040477818291992223647540368946167976199348143956330339063234660067792849679141421552746397555551304862662314500848185336061464350344086217352530068144204053351471486460742792339342251166066822903441448702616889729844188844247806627906694039859069019961054966644059694078457067327249003697437724783661376841424154067426849903225574843285433803674310677931930988733592730571218613473862619829809543660130916353888639763215328999695538905762101380431391575219365106752339543734687486020632170031024540186810688234482271870626761306617031681322704661471581990622649708213530244645342154495024002928084924388694051441796247595451680920865863398553633888438583544788541200585748069271463226647059371418388824466172159019341532655901091227121077239658112647191695099474997408545050778026259636116518580908077534911460774335964707572703447824238861014141325931798073000805449972800131005785698111067609346415190746765572737023741266187971928472526325311609892805664434524824636549228445110943179324316652144777297438381871790925259816382245450351321357864024501988251698451347822208746969736666177716833549682886819119131207009126705965071935540692326627201673706441892192917590067117983326884945847581373482141639481787105030571597318372108045738181081162261213856150876813418565213165899233789964325115977492553503663105208617670598337839725260963307326072438890021243480668200986734813811997615450459409052733435073788452194999034245350056390357384798737200529151048181149390134192002877891543334330919159695757017342626804640659643156460763597177980996887407711117008118342347859451236809703039221825390661533548099028367255921322398825296433433133971344018220178239908586335197148110441614767100605539141346273256474640410738175181329236051128564270094619151523931603117931520471493180959716298561696802069476911648902058813803910342333660534256472856688219236551422349503030385257295107827057813478870557174786737689560579778368295062162716794295928965805081238405549964989888225638284363409871003348301776198534993977361945812022166520027646238121850579095819898163185544860083825257610367799325246057977646145285391036144210265302598955837739654364227142173013281436632825574708905615170586186605493331069895031883130635539475726188581214858786550027005111719161001249709014721941648827173018211335190581854225111966198582033747698428878708287079406533831525354442082900232484647739885124753599539913050055306576936595313245167723271667603885107576607548710996159509553581946407824447815910792598331101718832961267274844855950643419150225811195164254701045719311997414612961010378995164404146461644683937354054888617913419408549284443961362979785633344601447728998681999090759599408723923355370447336085544565217994984590665958478524545730446275848548856599643133806152477206057989744146364291253403215818422706515246345242165554516560436691456425210449094823977649260758867270677023279848539081791407660864370540781506646260147395985174101862241486875176765716157247816103475372780307120243237931291533571264410584008856688024125559874482230923483443852836801890699738846138851663280369189338280872157041633635699261706200421135775413649830500932796088760558359437275625003945619322677123053044130699979571281552961963613422727152306956530999646257541484794279604365510434456285819985325998845522886234160922083390051025262614294107552574898417497965456000616967719716808983385417595345621076741843505527958322815344301494465045388323289343538005449888750826844345771058986187369026083562766456733891328397386327444879474806606410812472042651982039737887757192052824934203401523919700659913700407085441542539715470364828971944758892983826097146215909709234535585237552287754801837834989885621828477011436942985359234029935053897245406233586831054400846715676169503769395807298620453164930091769140723761283322391221276685456707961593825774427177075742637227377852888660866092411026661678352225079649214599978003948097617060889063940004291316085809732641774620658458658737531846566593359523318249535939531254898670757520464054421766154326649569137170082751250429123060902565217304846181571097866935529820697682213644623877678724491321345765132916465562061269552112137795807414368540945776230465503083644002508395601050112808733406764048778503589274755993498517792865198173196768965096490815121244983413112541432038476492113871829990969280625461230675163357727867877120242187040987084490599395050024756295787056659914263015970613863418045508552197588551600614157836986324486070513861982413098758572427737647290692208294275714865605221783011291292705309038199616629298026716791757924088857535589144820197603363944489309216063418333570950615636759751124950690380566456830729656939319441611661849289778748751669686883424068040160577580680036046349801951334791439261115878689922117978815735889991052624232909479380854584793179646690622793140987793112148012464737345418925719094161040112505532103313211729503259969285921945715010105341216800746190075270356085220639819568577581952174779226050217054981630550785259736758626053796221496310227396640964477836836974849780966938951993763846838743310933622185200921486125818314609871460079085322777378546141261371147789857390893367379566130977104835840082262902946000491494919458640607800230158094597778822091122215625066162766520322707479944014229854103849924497806357854875089859211030673449523859613118881721653240631868806749786272402775349083837855503064796524253411207959056028472675305630462185273086091598810860909186274340419289821934076817207326024949584670589491378463568611195470819549330660617073026266275129252423293649115283450812362271147962508368890076500388940786976868774937040088639075560183425558778881383634210056427409211841107861023543588726276176894736001794695994580867211901482586990597530349553317022551921617318756091847905586441833021203614366324520924971516390205477113377954020466207749969271443919386093005396837201056983801314988528610439481483820777612562249431144211290760806837534461313999188997950340461012581846610371383694595842584056126253832678803375292204110854291076046185826284439605072808636186484263340206570219720308912948623560564830374966808248011176549308903088874407817448069112680206717193031461623391807667084994194874341205410872738920153756808875257078297302445053662734663150279280193302826373349884784153237913774099331916343306872685243374377206686957642466175882174148363873098901673872685941303932388478298511025347830834383823476457332361179072141114195023960070094348809519972397345580031298597996297027890586445925868954788460084444026720604487459155531481685889442959114704527378803639993219724085985304196287934041840833013174593250293102478422738541312653415176402579579480924845500563251111203545371715128338563876679227471124000262871640769717545127641098519622759338399155575758861259805682256178281850710241357457803748352753779672291507508655559414137718977558774313276528576873492740466986024188350492656479514082466927529319494452183758445879716827483894332842970352533153969747610688194602642709017060129138505742229125492811784450520160787345305479108500386289884558864209007683262456215895845169264031158403084569680586890453633605887252171877963778946618255693387218603269693871061191368980302962359292862178529307586826618378407554524824015086245411923060851476013951557406987385700297865937134331384421282925733444236421881376779115712238518277524229614880032528894568552976926912781967326152227866212402792598118501258054147689500454129473361906390674158779983124985234096235752846209880070823274572191211839358332127958959844126621941396990440081962840093832979018518224109980666057440638354890468965349815349058995200600422021577808005176994116272954103164271586927226872563275143414355489786021112841824461808372411232050133310892611891668235608650872555355797995881039485111357570142341698492688253330074868384850982200971081401305813695273285245353217690699137160574805698088932274686637030349584933849631808650266924391445551769966676488662665221486070707014313843367625824416083457255593633794902971574403602989699556613124300605762537380089568443030199339830791096434986715226346046351906425052990112756856284899898493867659843277285699786887079972607085234947063793745995119137000549729417803818163239573876566814639813124386514258532847364819109729249593477996018643039735347883871368066264825821447950413056014579904497397680216318581732885722227369171919102528407488794758694125189528547925571438305568852227276521940555453662090806451524756202164282957857174855552245506983785366964040886677573278191976900370526589806963526159155215469803331994009533269288360836943673568537719571495373845208785292739925374131659514539550194906614221859329279092097528679546241600642727772493807109413825556486417952312285043378492809545856059479443968587125079647595009362002811146762006844588327604995276779937149815454861071817265665371609855808897896536843330716769134762943274340357710275825943917808913377413608169897414673341056860962670971969904065463944085914287022595409964263360386701425161113468786824700408705097722908110487503685634323074036216561506709409136403737116706177753241444633467301201531060215571639806925947129526753148202301834332772314546713268388406098531862620757049380970170489795742431253693278776839505516754219067351051501561840675461961588404221355260885645317579432858118963776560964299691526991005890847220095097059552012694008785224798152021032001818602047937379266996831458072885834782715533789014752032753293386823715667215543515816634879134306470392521309561214125805132248991662424122253081903665630214729542513093938605860326600005386281934313265216975014468006980103341323388120223876387855384478510441184759860630193603171943754636628373865443287024064071535422044024868050707390202612526316804265702712936725742122317986764244478255633008629199200976453839952702793731984998921874395590758649618435969579096195330842290327454015822158692494090762246221071585933078247625498484026067094633987131767537466985885197034589991409133961198963502249624756424412213281447487390653212910647524185516071774833530738367683524112119068989348992789683772400617374897157877330654452844970769728499646451836591005188317108608524555993275209536476025298599886279439514471783695201635285774629278239086804855906090017096468434402949291792345866078387805240114678965009080003886573442286094175813273241879052859164651733690691839585671864943119362064206372418177626754273578814471043645471566853509057123623339504903322862288875015100309368882850632605627637160248232584724004985019493665582771135205451003075978433843214186357090956771502498322728398010548098978076146741063536659095794729758519710487231528263161320576721922542319344674550409259423187967655158311805592397284688965680624244094998398847133490016802052336135106176477074069835590571419869351652135512219472020172477686358369786009688142388686412035570570793849012286651847718543151356868274573350240130269717028432074882024439081236686234120249783536957940340132272649058325011450663951960292372574434733954085918401189297314489772404567011992423241268917307649293414268810731812639921264547019219457330762181367975917552839613522726737174734297482917806900621814553015714149571430128721191762932062686268578246964848597053692190969063796368280390824188961245225064166785790718580209130748494430208680142054319277877370666791200860698848899397830062959454501964792983842599425115887496817448946855196397947995890564513205615316257870255240959415835295330114138905839627106464214243884652341753236083964645527500302588775676407789782892320501895400174625252894711038711001988001829101103604316234549143000458017962900259733908452600028142919252657690762365487592987541454138068310811259175617585310212130650919107038611596754438623921162087574960782637429717331300059657072085087580705099421035580697337301849943526842090583265663189238298341196318347282579237335210765657660398049935053560610272630506189558801787212139158307347065781607471384074270674458734943680077763618262754919835247225251962535012120431925287949243505519066586969126046216264323866970301501647100990163075032368899963619641520645225571400077535830607360309625429382296101957246565646711043977458802296714896274538162299739994077871855870135029674170001799498636119238852927417559217095462479587980314446780610837272143479887059689881162301602403942866897998639385351900278705093590462556630928113657260537380737133460648381494466009863110627726420546492341164640232273323428253545642614069088439751484683471999600015304920239041452911031999085971065413148202518682392880222898876945129028259555146183468583592028304386752712455131193275724018897852295917459400513113588714198020314548075305959150611127163980090638646930510518797300832647714879129502609712058581744186812781924703729898717839326388548357590748193056450529222046052300500526651434843121555521123196040386519277629752951864341288721787780593937055908588706484665494797733284805853139584698124508466184544034271579092504258828238631870303251338944970983943609896294205906265694898674013110951552666161841242477728735635491911776299730598703415630042706190321775543228694144747578229966681042174615383002456038402026049973587050545562756843869105452053104782148501128434799696502804406663962114652576444245078712718797163244082930025483964772043131979109938585453814268477510835428210703232234080908936445758147473791035774700980074639117767680967932487423922119297180346943948914533775253836868869764992106088273165954291675516811117351407789997239469935700415589150037785400415496129128056711990441423410115400724653395381135329244552257493353634248136767404102094805426345693739179853317954438203358123236658192440823644335663808696796064060251021052863861288384629198895343627375500507019144560367203385159265724544215931894514129023225369449365771489387344708444483412556496381812631508412071069563706646965823582726947730696576654721326256936758633480788814621485071407983414163314720584232195656380627390863205856581610839838209219391070020493997558253118235432409308257736836075625321543477400905647343779369600326304916354007532082670216217725009120563171065405037352093699940958592380262386433457943476811659623704698014231291516697180628664612496213620696714008779503512560217589120480718229628537065740932316739210056898634728568471254602602911134946564726947268912265476799743873120080553990659568902889826512911012027036681933757194954585749924977602277078476754866355810882578179939544915480294180986092847262011029445942161158793881698341360981413252635540361916394432404480947893381432261277028316165389771442108983652355771867943143087187836802387432690949525180166362204388845481186296506263811776777205471970231301787857845871304241371038010687543787064451015637063977860271915265253828266468422930789448470623973621524331673918462996460105677998838171672404631706632637227469151573929368055170633531491128727304757738141161529764003376180109925118790596158403830590925174203129436157531200693989570478918204748815952801952139421653362076426080372807308203080493937932297794310155842380238779662718259265859969289716560188217892043121579177092824582413541901903741527438113849317535243857405373600981155298596323245386316849370976864351206467490381109033453073665023085091615365341596611411994143907891605185722731327904617346670529659246988438652880384520796626426487044219450803525347033512874744982325712710159585391512928427979966432509861315803553185802217009932436525972902263754482297322124333513085612367980974388174058011065031830701142131964437747024207172413338654209909110943772601242185384506299641607997415569642115890134831147866705595970314678399302079192137845067360585793973335940563526755817173678353893152434447524001868848558377718481444259641933776252794674806798752631821338213790532419415453414657855271838190678424044303017282966631760537750565700930718465230129588538115842620397123575422069955215241141998967004795497874288900445582340892344255047479103322883073575121146474293345010971059000801923436822662009630034382440330757836883389665391046517797775854985329427164964811128052123597080723308081352133616378227764022419596952247842679802161931155681425131451328857805435929436177892304397881400159628259047232742653317983734778452260665153358561228091526857648145645608508468192483449705726161842840109613709088527715814903008950982595354496600477183930935518593112429247942203537692432232475160300544079865483532027163466799030663996970031942728711464715691226760177373449815874609941350390057243665465374974435069971898978042259607000368973317089393688821617110705865587904050606117652494522607535357056793459965906519086505943905977542431460403429834794822744158849274702931737813726196426583372944916660980125920024455538973712589226635548155210207327412975660795598170181601422370751059332679837287656073075126867296060044939011459153315261825234581632445963210650659366587066476331592025830841629624682363362910638866984626120017093373345432992218306188777974179237870561399577083021520325504461997068112176583899321934592578618629146601779418941690140868746264525680498146401265483217406074592693230693122704303566181277769645611586613543341711120680461299984573390351653556329793501491937579203141964817325051003731147043543581197462656759377207103057293822046794484109910472064431387759118103117381707202364153621967279547634864777215322207539462651430619610613113580385893814049441608711603341965475910379224237396413536674508213607424211964393384505417573917212920923278949492730725598392363698403645866301986485143086920435299672997444446832557375266714693006843013935331959975938570050944473516444268891811476206466289850972285079669123427823799166080692426139730790974472026091743608743230706644880185477166668542447947764252385751020894516700053121104201434550677715200218601260141311468702765983596375491488459331948754909048254243279448710857662535841465842121271824914176186422154343112477429257121485197343693302780135352772993744321494754469043222582244691767952811992765097927092983464424993355957374167214352043683575359416711827823332575413726066566070017059527261804830390858465989755251983110812975203057149358437297200568528165190271500992514408537879182541724601181218180712864812549989702539326767593000422845229233829732353662596821603219368619524356201014679551005816441292081330260260648274707854338422485068532366998010749886022866909266953360575209271738404568141897371644144983000713061303200194477058233787355090466855112053963179855655207271723258382967586020593470330747663832899355890914085552502629318903785432648495746060654866879442865009723909482173908119829923938932287189756519757334013736311106377991566588797854117959948189768448856638742750722321885619885870295578621913031543030535288106897697996926846839957633973199032150446779263409105954911182092763491561781093855913169197760066272101041826807570614049266396856239056121203027775623329106735127571855752897163260439076208326876786327101389851883871833810799833551844454148015048806576628719887134969265267623357719692771920371588084972059881212013089360363006787847043377251897551858155107590423951080699361695007097354563022413795002568432044069773920016986796913797924158769128054137983135729257124073045132719353444644897607196769151518639016222443480493829460240713090906727405701911617600534636244079040453952354480454594366546301310217681724884704724447151153594206852185854119678328806284791728310383666811033400741207789793333010243022836434568996661512241717759902889277151690148397494503799279410604752677051070693886584534151092344564872909632404457577172323333280717164562124649701420490333940489644180686566222167677422756433630110164078712061509589180207498773213815297078289962705255824454352917894029413719197279778984518862802109781918737231711697070796895623640990507131334209041293284691620642100693233876495899412166329312392351446288944661400830913619837495379834927044853815721279426112058586690458544343413642064064128122444953007762546193972557337883590872664561147666339727372668613717561019229486322065158984528466371792180242951765281839088687446368569569101480788752175608790915619084362747956419335379376962490008899535989197349993526357203295867292716058989127659862543509407056245991975793070020142177246111629515983991606240299406477075673138263921547846046691471381906067569307005927051975012641273809299273979236932827507552657724893860279008499144438709752852239382832420850713792115480943631305198222626790626247723253116391482235075669861104714051473576506528608002062861011335097087009793763789227418584075344159441519338153042588699951813056065250926012319028024573656003289474272718264933981398816922411942987155876840915613017312714410142475675127640476614593472631241170989137849055799397255296846647388585290476783439543410356973385426534697313868505292963777654817067894732480819514109357167725153797654411984819496345461539175581194450462065910209776209865004280356070538763012503127684532829822874719284299639117196183141829084713728914200692782007358316614001038641509005223640369849966327979793930463413055533278294468249168929437038485409714067494421563440131409165948103206825174924258671727027685673636213055892561680644388441638032665915547391608444640375467385299627593732165475527119481820160886981190701314568301898138904542888204233795071874514455505702762052015707981696084348702091165577055496120972423191234686065218638007879237805485801127648820186792701332144746552802180499753359379274826032059436703195589384812069406180369280380449174414141659625556467264805589034703605152519649278571370326796053086843702087154733960690304788707143693231598501556934544673895211595968706429657952713962651705716448012824250408517407759598639352879249809638788051942658902687498117934628314207021659173480866140623751114190812661132588765337011412339207859911603913262710498907372976772657061480528865308949283274700860062913439430662009740182275265261788073971062884860500606604347732782582975097447964426344705172107060988346707597045939826524156888872938393062945512364122064168764768636655297625503088220623977317433830432445540392990923940574790345781192626433883471025766083541233292636273980774705592512495302968305872375531434830863797903922549857372076556588368526383734273674416885058145872797575127495719285105711250967788457255936009153422386468126024352899597308269825508175897380450219663570205162083831066087068126777629675721312147848833882444091845307225237001454417338873849523736903923116409115293741126709864231455578417365995830022059970602623821134696242839459331042331082759444357109575197532619877767003165759530125596009593989135221951419847929497722644131493333642855261105809147876556326837479714949515393997874113223858794516377469346214332262214434108249613679125750841071630651524742484962422669527687914976162921301678111918252064798051644862704405030355091148146048692975283784043461427648068056165596481249464164059418429202034889042643231210179654108362850884267637180653203099928331005428690899130571261560580158445764424135475947012561228550234512146719347086860629467728081482976385808892651474670316923000866082458242498274507109642467539619984682413435831345170134323011677135937022751881223906294429553022862488652172471449865996033521246141412524441286802372116987103293320790353064435966225298411712411031069345721273235116229979435759776523922346685958827300107248343984279661272338374013054772989352489027625927073846304925715074203208074120042452602631611328537878084137175133175088955147715647816650208672768396479825723920043915410668769445082014074577164340140527563538471634336450980895725574906383816088423414584374336822942442569134937396964925976776355362525232612078876764775084702236547727951611691268277154649738644753692591014557260137018571740851313036034304775322152387915963305376887376713010292914948639324611845886637701102425855672024636657071717714066311847977084918450911246095670076749334406021141218339545560607320262069721887763775584015471365736670268181009268830488561981838288640667288190777453347711187752650590919051913537631352082272278196622343798797991929389776193244817274757148038053567344640446235570728415710937084434397051640311234313084959112056051987107194659362188629791061644933448153319319437561780634502406984376426285041581176907122052613441260349051644537880979161086200611373985468290283814636739752411021113793783212050593128391307733834668124651236721768278629320763635805904152011430249116583808509392351811314051079235799086770984430797787346848039503850822807629101497303501547666062079792282200754857138637728243247373130542820288051141224268397739667202794314807322111261581340664214608055078852781788739021957415204756447459120048260874253775364854579555119800017988457589429738898269269572284662638751418037459549666256835449582432812860195195560970502841822969753748635812524190091304949070585834488844534516083772558221201011771877896478110392751191535863133547646362867601456954620791117173208864184224853392880805204593193878392584586798049891183807816227914488706234858699955993592170214504693602571814764426408742000497112556486758729358975335769913636646011982948757560302775845123266001724274153607812706873238836669207699537574452286885766929376746557053496419487637709182645645155095497781847915417804779911185104304086427785645729315045557158550720122356146462781250419470033067357121632288574634242957854645022576742136871994923237066870375884911834877037304904951081996975489571586250309154459909659786886108929433769079899491305414593423634290942367333781021079488020849607020147744070736196449997565611669397587694003891748384591160526404971708507758365476092729159903157297587149992698267964009316269227810095499197610011070739368689378144572758362047166165478487406501315670200602823864420574194202472576439102971773757729694515683696909054988728130720286323662818910236885977194852157670268240711950292561676519254080792198466220918701260369232540747572742196020062902728341264846848504658179386098550736855331310715111646453468760876463213819803073604444156073767951300228770978922085939853641325985850841671218373612803124868061961586312635718302415782597680307413352497191559106522762227468660257270722228424721732204146562604737499531466662501116122563429007610590917724105960079468814606343979230234456211076882438267548592929479168004092075727486898821952226936392759104774279867673617461688607632623666750476885886180711113273533697974623305263083699224328115375422513744879032707027117602018537364607402958114482094893427418860639180051836173001417730213167009778733763778956081504358387702106628108089941007505092789766762141993215739531792816151264893338693129515386377195405080103119979342342821761619080930040639325806249122473479710709108534960620513900709461907226718548134556536247817938737134325825010253471361196293506971562541238508085139466175930742591460585453447317992783563829332727434393218069189563167900622496854033422330367758634761506474215255451437667258612477138844074831359266020022048614727857972794401472152799884854128076886882788865460519182945624756016982210774288879127830560069133236823247294838120948920978554477115250976056005188439605272442821408238715968362633145587319759169118507502382149370043212541651478923510805673646867919649474951749955106837764049449248417044034372075932519450084489922450164270785582519410272927489388721659333728142336434208080926936727839777262387685456545364629000541901474445137570247639550862882928352897569620762319988651108355962849495542728309111098746592599807658511554723231992402979687679681145517807629200110113923891091351476178591199127279032560722138115670944780899646268146953685389054261805270860210551526148869304632094556095154837108481729182963469370120684819986884144835296305270686155434364509597999209180466651466995285930419591464621506971052030480615851455217624958465632267068680485299905210929472811767324710991391958156114230679886990629388354781715553090679206621315461053873261274536513149486170976722973315582634606695424378729850733099307876028330112381752071406331516619998987531973852067501417792612809426207135829848331160461669400610111282228850515691357248028966907295902312437635331374508713010763621364894256823831732091625102798161456697891639569726507462390424804086856874983623338537386356283557307869272192085609500644501034466270274835656457193608944243001406434541034375956922946598249575815070165551856018054942163321924751021865353128663526321453471914433026187683952611823427530604278188466830572266590961842226883341042142168983836933365046856807293530161132845657834168125818209787751259661984486522521462925769618083776801366058683181922848693540172280895926699822145595435355711638599503290757125769036120372778499444086645804233152564100055340329544316946921200994230105647610382071363801223922819617061789664778535680863522917228703651117792775556819642010015084589090859995668776140276144518899081428296914227238588045664806764715341701983127698695563187070103794354338555385575427377194922027582326146890990049216137881774706925350177922258420105859449526962345188952590953189952215605109730435992056858250931224280420631415195835529203889179736271151707061937046436759830806822596299874810484872781972716525926788621518272415178798439580106791342570019698200474101428198072063840610547463496281910367296236950427501348759026182690851663700590350493836147635299830317103475180445286194625746538261684264497994154528212453993111400193331185682330027390371979195622547547871365857482434308224103641061803698268308880155961709291740313741711612362697330755174346086883508461499844893938876949789482714091696770052003725771173432322022882387783282604757026077191543358468207748396797773252357609230204895806938637305214825800700128791220268631914110804518634152796638282859601990246003926401188507602700327394752474731584608687191419968508878766627958429150306143175425204219900002020010494604771241060911321215906736978555859346446033063516209630059889367677458458774741081108758259900047154812569904125486225763150455377638423950728899408547794618731689071818851067215403063662498229643520838889176972104050182418386075809963425832377350393478112280805988045837570377311125123887090973779024488703936243038785226235074847180043937447957536860156950758899751080105965411752560422717176413851331732671067653083660824185032824383322646191052704661640967302651351523345880416102941602253146725330019018227888977357280626334902366026344723386772440718120648345855740210435518230542008305311120819484477296630172731336839275316201196029627953372296678857073547930195540623407645834626078169103538542429917675062122911450512240514733558730076196387796310627051015001574816985244428637904593182723605087587117170124339924085542457193254796195601944759288393825346714851919720689164195211246319790367452098296948996108175568774451105458688345377763301083226603113504299091461836757239252154247538830249218978813401204129035673460297842290309993648856423572638589711851017155067639096153593119125667197862634759312185045047117662935166553777775584500867359846961648495610648274061118183607330677842240590011935216465198743267972897497099795851086808160074818563151429436475213139961662155224618432706511265095010509282418439548275726955761422894775900139940143496286592466793130101204222442930380359015125813367536242495665437159549427541396281046100976425959577771845437371522966489938433087343407990001797539327365226404313740848140848951043488852969377614053267589726504226969163577359285360755814498091568244509519266187190507697099544640469596958051988889394543329427217099895985094967972154165967834970079360112909631647073500816452288748628521736550688643335831880311885693731200022585241454086702448587958156491983802083295749928161953403694441483411993724478021364373834231629836484942536480516240192473560227714894938078261733286985235107699314698352802419547448550618531284628663852230108178710848795849751195839637903832841266390544661969913826618703144237918002284808875000056913449225807361944774440493478062943226293477241091569441967215092775716516745486436637663220974882034955713693908613989974165394339855123259115941012862416885966030486553043610822295761727338983310478868046026761601570952127841494891630631424503603916930059402245431973598702414246818526652488244638774351795109036493088371978575224306868646483927391653832270924955173255704018291163792731757035772587069428842507289827169514330681874841705106484000987285685343619509490098571001642778566880463876136076647048088423156708227079476138992305392364480778944094475836426533568652096868704897520712238162396690176813411255614934493552990363985473135716725681881818011254620340832492878219015014698618677395011408167498986642315593183282174649545206993585496862008470010745009163811527353598741494963044674504817145199687415141001545464789375707283825034125824534129174908667795243862147218965636751172136339372420261345499591636920127199492070423331930402291379591978390577474482495291901119919238352610761701299509337683216386616661484164377732294745836759716765447337735853730547050191909930342835623937912864043455117669031059943499825400692720234112543360530241983430730015457129271527237835908026192862929340422261070448185583015433032777141521305164594331105406096698703878858071101920357306918124633308185592708223166655106224295556184377859783901071807976987221376670753044092528370767453141099983662605638664686690110843710072940691591625524338380278863534274086036732290456215615083756940807720426068872237221753869888095379333186446227339758639592645130147169121418102505976695499413102099765319001526426433364853746480901972245894138210230482943546844977210939577045617542645488187589301486698515324847788331802987738722231060338852740960003440539994055423251508020427037149030426981453995233555578199405191051468838532168347311151467250805831000704095166458520127551934780514644535333027189992436554859696801275573879607925634269526625626495009864249996664812723959112101096310568238381531434185500011277496676871423052107927891617804919595961571409009550850009310466039197153722454318423594400216454902011798772266555981829984591197130233089431990915355792904026818707526856126277321906746887503490176086598368243195853726666006129038435885953714053932034884068304826504292819974427610795246879217057204824113831053917507780650160655566939323129808865485899804089502193004073656000737674758830695151496683304301910697263102074183615607427378993589051617506999018157727525431928338436419003642724860277087626485539337814855489950993501448034566152998783781167706730416361091687577838806189631053235325104277038793389408014331129864061951331117516029854359970235790201464854828798540266896673188701145439693922209402100246985522387091710983817483132992662008508081243772510038920211903671564247426164847847639592892657331781275088061249875904631414059441003615600586582514209481465389803386014397564175850939598490611266358869114795172414027374840619404607524048871246806339363104200791692916880094527503185758684068010390674741160164866952710487334213791620164099884112506621693275087156232888822707720867104621302538345739937453135641960495239890153497655927277017241859927695939244516596241104758075398323348408601139875636244740061262516503046515423556571682231041008865148313600418316690424995062739975204527690682562007546826903631078157351906231942930867244508208383014304338120764931588563223075331753050252691706103390582514258320660290069382046713358233411269110538316551044990220198264874693208905070692042039852333582388727111664361677483199589789259834621349200823389876499452526999182699957860301270243171235860759930873255560040665138515161984024987483186110998458111577156736236474525843270125301711810328035907245400596023340820023410507908241032031484941476090756501011519299485017889008945571683500389589761695992938766992973370805225503687003182789614871638566350697257118563162046236373762904710512982356826637364502139693218973060758190033505118764114158422609222028343198629147490413123211073622966024591610162496575568780022124402700736406872615373588209936985515663256636303529706140302435387556768759679468039326276205969574423051115195655615072292540273823136895916664320960662210889950022141258729407041312059515356589127071338014696490144607203042197883581872132042712437110199979310299985895062446128558731127288363323098822320915528021499857304216197488861202694803304575694576347198302690381210288722889409571083224537895911868197438507414991768901691755752134622801870523153333093603644865924920328882453632680235833862099845408303402225627699329515310587511828712085278563253673327470627849551668010329897381282617999018144091774971637402203955184219747029455195137585825489166036386223829686859878535515529624655900008726249370950630748570050377311564134738524553633990438429266681047669256366195893432917589499211835777780294274323040167873726785291265833007493855911981264938639262730262870351971205377439117979280853180571267833644193244506662943098391386227268267321736030849037412356935237728781784787883578321735521435766508883767370386263225417771342412559400119620551756415580177183280330852283589788981192850973014804525275318588242867222313500890906053077236850653322290136729418023553928430022381946775210612396906440513216065203195867708628003946085569543777104136502257420900832402585013383826689022885810331659531947540028095275050742205131902217100513249144256920164371289814528898425620236645231847032482769420540470080855535378693518862388277754557905039000802870110358857224594601145070790173470384802143412634782778465250802040096150188189841340599740093520381871077356138462228098240126064377310362029001094581787228409946218309882233650598949963546428737054238461222727494908692465951622260065957666219145478149840996972309163969587999627161511823160338623029781696505840649251606723298306896348174446659246551786045708892437565966138421635207955212620241292268056804341888058859812381884816359465731398335503176829550124342650894433900723543161002158404130406045791415272571954089218330892028877688177721291799304622867244160720107975448664046751046328067953376979462700531580503197613526354907419553380830067448423359476605401463144739240592240837323663527873404714947496141868881060360058605449964233996713243411273544496396810364430969397116685375158673349031886481194268891663633048650142600337767168378333079150379632279570975721683100803184249880558974633505874552489816465824852403688975291733473707410457671253562664869889137036376698778601299627447944407208900231799366969544269491569174355616995870257330168440539683560214959386772685391195364110496457528462197531734472822485683242862412553112162149916158918545377409189965880254870244702424447437212391992045644929928524982304965975234615454214853456864249429037295264733042466055951261061286455303739327288090400978347181288664366593184541994499305950781390499689880207520879936487679453674548665170171455840921736031543297098245167586477666740892225029473117525221038690802086158060027047952267068604916632244696174286873106963514768394907320963076984233898641174219145264966508530133910892836687780289483224413455294724341045078084856871138692714773167752389242936841833964869695740028288364871915342946360475251430822165259599923865572024512988458344720226398734708045779055716071063814074889477082796892080584549381302872295987535942830753056649696370975589683608747542125472931292007964605426650056011302399170731587998123623369399577469636356976593509872584489816588313853226403302533616655904309567111550661709384734674961009015403668063563221669392947621231801197494097432807323505917575713870028294896054608886962184923504862775267364915709195829373089877037873588326127282912888168193568750474345971330633925502742881097628236917711638073690977906573302386270695009523192429594130821433936578821860258181439312694032335322088852283493402667319290856463135889106211196529534073812662844693120757741641054834389643139586507299444140916094211506597216677773038553638040412730119178107391806869781282212092497587199599286925196268511137499873073913608841988980960068979998456460947209521852503430935724964521659598556536579228756590681636079694126730820327001621903317459567248869951421501618170962792385550755699716013550925029696929326351075604564514648728425862032091610865626072144388258478285905376639332519304526347488615981062388136399773994270517084546994006350487685137116575957253011176695722587676159273152168309008110971663410214117911828594940538563539020329863300136910442369926087798870467517099842384525924076411022397557975023601767904973324395181582544786369155892973265193607503822872322969686221089417402663572404727780084468751091902583971863834158523508901476114354260986782694834156770137155835646144579511320690639783330253653408605660130221754527610173330997567695088942859016655053985402501107550154171137289644397277493461508427052078816904330790311747802159171550167170001229355178580271962942778003589971976778885093217523041361696873503087009921660868880870293863793678773249200657383436485605175770388392900725467177635882867999038530473904288605930765560403159549738195243205353980544492985439859005921909551795145064888039583918934856124673440993750482863879049262366897886488223180105241095152484482587129029972617703913698906211525599504804412523043967301964880360009568909258523482224748849708400657125824774595129173808331466090803860367621189083914620643723473280582098664063916981123656781807248361464334796752493313197210150440685068469738588261321142245594368451228048658784926478723089003035308427886750085102023547062948094645058813313760384458496509161523635332920851393767793583025719272178270018335536417280687117154823683769893793281164045951719221932110030797850944105981279600375948777968575751042833136599554760448187449055976306968325186351709400140372039706408542416160514965292132001654429647876458717614379373338163620442799858171578790670364013260010324927172386704227554364767657182826497390293379339355803697813997161497304828510826704810704092987457726408687026070414243100328162797851674277593306966239119658008730452612789430234060171276871003860915749757974473280627799783506051022786766031210077521157116008618044619739151687874407727278927626504590062732886172079064922058946367199168185833808846930892629309351901101098303919008537255928043893778803817653168621908765181599657396012352623914909803577277797088219216110188763857510501155111955837775644777970812324569145359591972443924059463748978222690025566139752629611602674860326958706990095671576473314012870883826407222268888990003365014861386055338404026556879530811873085650155229083727496066004921728507206896560936785966928997131130498612386655018541490703128186186852267836690723536364304567749350787788128946513205523680051435655279619427471540354457698587544076637160172942859413649228728162921793525115203166635087968356904455072053300881892922214128917389942482094932988943338055624285540854132392087815726181067435719793527481370561077553637962118290228154764360848071133038368430217098531752823581735443951468966869168699036360047625446653341668210627211366712165546721901507451566488624214704144789396596572930789847468332822843235887645731475190393038565029401505537592671898122653574744614198638992617027484287899438557884258005364503226490516151292778509720784830349879799295308042652765593114147721101799758489510419175329302096523879760627096248351118822034250834203774810953061273884181079011428934205271269861203323977070538764773441436531025978581491369657014677615714371755010500382156764967551980875533196326626927024910555817595193632559614049366810039091466677556306717813628784593192748999364290977206442747506750161733024032277634802231227274935259733035577859033876411770588654507862451079142809878195986159532237727835045627066645266743472741270985619013566236496101218943451074260453909170858260507617954807096296208169994752814645290603038701324332363407147891430191772783170131191900814140579194077353073638619632377326860190161055325906578725869357774485244366239422435548320668299382112445249894655626534437567679027234319554081967755474913047416277776001865960062318921793047682985134680419357403268024417388439288343134256904561189932979711268409506678374627925199571502765870445217462390129018615154472489909174499608727252183300647130106907244240326824993360465960092787193976524271581612932657702577570396182378294460573578651792809247523190323206975211754826383997898092329897046713116115304964170053769164467983600627811117346804101268428838952597251293648000800260302117983796742169736802545248793665551055846651879379545335057000285879849862845197102344677073758767569825185015999400061304786097125756567405256248522190215928192960751154686893405554271501685060663222099018349813943260347994396064763499427043303900363775867630513757989647636425908968651349869351887752913065103364131356322288730251612172764708919893291090614442894875148231875408227343271086144133878888810034168139676634104638483517733832448687656447615032652261796987968792723023096657904268970783489064482611444936271905751693931605589740688943158772808308422343394501411676694615101900138685939497172348187075254085754352692341024974958194507410060360050414302121634636432199275433692768192468136129972240153711613258828062995182384424185104945325082159893106805923913067833300906652235719611016459547842586362013067125777392440280313775469374282162198920504103956570696154327365571473103467116976164512798031939878347342351637447805592554402539637882440715477944511966015573806776676750829628530725135195620482307240969707591241321744039289389589038135528072127480171743789939090913275084857101843457490713735613356220609650055859547534258893078539374838689993413742841380233369844971369041699302336917328056405481341002535995699859178664142634681736518529989195927689942612066072879621614892512516250824078021188117884153793249912197315664146876014308799430880809332338157643715872247333445487504317159992458121364730801948776589035746815319882726410501429547005536114029685172192577277304533626725756678833256016908907095945157551920853268361831485460655051495933942130055871978434592440049411413119975318691220334104573921683516610230190849585616062969351659165004659649695434319087348529111380228112542803888940773861861502903385897278021720081574581238050503297663566877758292059019260452199504969743937509515307408741234932296508922420875698164782138547960470814578378974224484112736939737342665533294979653201491365019761084975050997070793011624473589811807758793497918225079622178953429136551183096775331523236581196606463017973820888975572363670435885949076305464893799376080027510215119372713905173136853080417573346872234578775944098143806523780918085652887210899862905941111972356405290313859409572611776091602069741390097065481828627942168365238116528887148413591309672584126884574186380613557688881110441117759948564715643447429576294779824239234264878427250704946813489170174442644658650196190162752361098627578852353733559806976520827853854308001914983279008825033274055867864283983171567837991579191654173597387335623560095322822361326490142633113014870234646637268469027242590751700936146223749481708976428981691323572732530287770213834694302238651137661428080879822098049503192166141920007066329379660397332188428646052709277506463874503887857403437393621990053804099230059828422015302891349292146236819460875738727671052466348076426769388309386986162045484979503219334780966221814884011216230558701846024652400716786322416540240372531027297036920535833690035104228552446506242266026406683420728368805634027934707578046109593517925350223061314177094151083589345695102161917798372103940979779782477125387800461491461071637408451718839646226783219151925878332825590302743536663957072369052572620088461382166568808077643654566268329386768581429780802432933863505920283421305616248903887934698583393066166173565049304839373050711944684264810625255704830354293282195146478141811258952173821424799428229934600807041982763345243269688704344793035442567478697937152349597220649348958062765327280225387660098956163737406654948314969133038004979018087871112369143037175514156613222724276817773240225473791709313234523225144060819616651086001543933551376562363226521084391869709064621374903077289972383926282651528051677668488007640877699559191934028201964731033276892241596329708239165745503956199462723218032683341866467948380907415560099398116269586228410676555560849505542141455462095652853069175110950833448169714578282204201921356049865868163333164038908374753036779433034347854367061795882387996417720526934403045847684275106540034458450280361705074572511612575936816447694740200934046016478712195866531723656214547320283303594826232831317223881956717967076884127376720154091301148680393292546581704673318527214310908159365813598288133959430583211297349221445462786908720200163497603201666699557758539425924148932982029381826699334767236539079832045246586268374160181481795293618544951306008992279430325822495632082979542328045521359708434021170734678527878778415850577298481006159378963115184356273133900917475142351002538579383842084253059449897125443521541548548948465529309889154059705719854663496276755342424366583094300814036294645992090976863557457030133908013628819539057625189061720867271926866768681583445106063383778419691364064140298585233367835170288207023051059910108436453524099700635421618078245723318140263186400300320690199034129550246514475809286930026681692613807353814579625138413470451684575263066080697090480553626336277665842411823675555293423932714268792858493707339404275394376840543750920682173837231429772605780491835816704111758544583456251459103569240308925048423448325272935025052033272468550645244613896501315730874374984501422973642450467255596804208080093495156214777576456910875461062545065319969300949585779828987493228368005034335442568110419666039851467293015731328336593814108236286369054485102696624388093726824583966376810029107549798568517056553532372331168262198418127408100865512909117662316853008376166155679001392939248054456425745255259663606814814416417746521394882638520647730513220254307894132832024868088460055696032850298513510344108860371472619539654475152240136720402639962934695263523172191530812530176435771307693575980107746722187855096461170433431593419729147483401258215149482528415726599004382869327169045503469247736868839987954846638752002052615506457193188374117531174580105960521209861416654262381394231020180340622607287622975761151571104018941566483973394910677245976590921236815721049315626166557335954044659389617111321633543228403089249871819815306453023994880323201199846279864178043936753670386833171137979264409755053879110365316692593416230978991730066861186025883750915138906761626553190502851863247605499770684664392840122835454454035220414490141308042999054072104622230271832157727494492223042003759111224918231476217213810506985799085895030563123804242678885685702765780682333294284281945264800293422242957313171837433618238424585371892666642166177001271134945749749667140749717459480318214956928548691322868011116771739660926414067079010976908637195806562454700519953596053777745347281205174282355449770622343348677660020152686419869761972503052131998752674955469532460143001845960244855100572264559443081843825552513278977682950014581755733271069783049091074117151514535027971833002567334178500228981796632150464862621324152741276179833878059272224242245993630928217833460847953830669838923767576389809347843735023484353119776727539357587782096268786637811505358522817689636449648497301083633765851242760220930597735594948513661385280813202298638218441162220372846758141779125435189887942216251005401168214677091851386681193470451189510472777055400489653087870236343046338465729519996441655159042424562669794088789173142149031900638006981540373581283923359101321270415502661400318441183080909877942176825397739475620084824368425474210736004979864086568181878171764033963043206190212302347658990987307908819476469348156532653538367290023808096548375814281132681351409405979531743159569903601205676567096625953135588879545971466954256866737197250514032903343147858948971562290680863356715420451519193497297202885415225705587425864728986512005441229687717276272165051317557654341788150135020088081840178224990480739323832575540452156935503568265424124429865875796084824415042151229920768137806769402037564215757503858235862420632237124666322848291151214586570960596820239307958254027113059207484795167032800403232599812408582903720015897062587123129478398916511401092719403658639143750125405895684096912205589200986006280179874635250461211673577384265830404721127152741815202607623928970266225766260922062156159762734712169121593180103869752396834886586387930645438678492154621290122531351899858946092090272620829519579276468475984345802688208616822213290363563194682894173331999679588398504424516720278965585791711223102729679966876283757436838859129921726921625000932629275875280710775268812587027145191914370365081415650399288154882561673144552866602485229517514930403716446593821553968792860249238501432790632014935528073365693264444110977021261730290181739308706177088466228003078618821732265867412843446063596141609529787871987271772834368455399124388963703863915187750372678101654392695417218877407817309986980330957376824295058974753380551362743424943687008702790386460591633449476544851082395949757920057700354138931895981436807668098309703244254338452592429091700792460713546428202857122712556780182199066490435424171276585253877537019776556831396258687221596489008286276546830184685327902756558633212502942874046002795744755840453956010817256749767868460872041952552357926899316822367143589812836483155998415338171703668955578882383845181468404939407839000521211425845332105072950420983820078847275425004603405504734070829657660983236545778648941182360335734665756885191872065745735089559068007943508138539680754104016529819950062929487242221546570680517909138942735347282749167543605345601737232608106515507561092105818803812410783183717162187272689110432213833083282211197516155238450292882410966763358926915749522488921207870332044601877135698269046652605309074256462668576755972603071451568837267636711078888377828657730345978468078674708464278216020124896624460772441735187994850771399267431198697014186752333626963854790888235993701015240808232283561171991961028967660752906120977259316082090366899191197539742103193411273210318893031215800672108517456439486992419812815221670441595890937728454248242933197619139495833336466412436745819167399254382213759088490305835173256923579914654580882978963519623708845594847122473313661577047538749851096146879339834408425877713491863391011429002666926999709573230688526331597836461315210128965659302271188581976028414868828106954239775226957599923511735334034919239980353881058821319237158832720722740049603359645463824375736548673753880153540030283115819852647115510773196245777426276597756964954381157492992757479114535098820704095639499760546067550010655336345694232635745309217002078070355842482648971484776899382241232540583722940893215054230494266699899140054856512997598225337067293562357917444763835383430030115065483271385021935486299579278154933201526224074287610205079598588285669147506290550108786789289866599742811798724874616452560476774703557716282152810655382558599250925277272966121079222214848611869239225120840319402917564545771794977550473976544784922250832275127142971176396326267150756726029909598700739142701205831957374379651338674943897144750728788588418097557295711246702993474366738636804356981807049499926279723902658835708335119431036588688576120792491749014252168130905282370417855392945556777783283016581769260750639342188017318340870258127347471929902768877814123276535795939076771759712655902684443397098878807075661289144552298065181955966027168842767163875112681474566105198075102876186789517101966875533043434068081999838553162235504145402074884812028379394240232487312219130117580862027075520654100491330099401718441033198148699927088838408761376685285690151463847148992137063954748724202954066266566075811612146358748905515634044794694219107965181720997604603472776283553519453667811159059409901770473012057004621506566280827360197447401966791810133998017149347325832198645375919601901450414248528893335916087043972815209414410773769943369577893018394783124744854957484506454164858711239259350440766331761966880932356913325504081044656323038410299876244058105696932118625267119315910057085159555503509875651633797856851419400759814343652384698171554747527938044331592381345088775943544840162671193397294602355131354351663214164176937317401633836879340667579555919585314587160105662015480146125736752489480541586390679850840231456597105054995738943117206533583830370832915924356763222502996305165176716298842442765704031564015834411908803533872527625741134931307144591997353750224478956840539734900193478870102391759756153975416549468474081162408774733058687090609073587026660068975611156021146462506243960194961274200793716795293551401470775773865298158004720321397942158967883585169118373199317016217718312716291935968827321253076003778468155675558063252481052364219215505088699631083002270210960283332266788300617156703037605040067065655805242136680068925958229005209548967100840096300968848944290381314790197336251804330239405516295683933276187937542164276542842281175248001964043186674601870016974166640507324818341357635157889229092648210499625740759045056169191835719596461871640170460786305989939271555507461939205744707342723723355075841980705756582250621181906986517972352579302161414543778118373201432905783099558287242303412302515335958212402494418880896589451625916105364573451191634140395943547213287742872732467524394819205625710324630065231541049904384550341934390274817863268814617916739160431510866719189959641450646656850007362017018931859575243796273563330829727727984844547066669881805182884392271340326198967430781397703434559405591800247019662166074908358975789253419231625818486737684579146414060345891167353821394773265708716808939207890670239643799636696145562872987389267827844058484757771602968459692036549823626879470267374015434524686487695800082853614483723820498217249942957126757387591657303625000804942432605781589769349307127833815707921659082570636347909322745670853225191456132252365242371774469627878025068606127845155137551734832991904849800520678872922418130189465149304103082156661204773374255783945836410251236754138571842806395349527436571729023194659202929644746165910680932000408544745320848006180200791960539537689632940142533518811217183265932952373178675337616076805920306004450789672322864805409027004142191867019290804585155957869959724506253673952684754879070413139858327804533071767497598747981208626684232341853820604416238342394805409112493294727269539117463648973493919917871395833676849124837317037969631519357340757145720390155228071712794750894732146566489364050243398997443616051293627902419526120776366456922431850823867942332641942805917179447450984898703694812604736422543791794100006800969331863057210125636229495961271354590086049777125929839811126387754208935532547001050350101783763249206264848443916658953889748318848095082114956080695348869528592537860560422003843319291501427580365216835965511470687571681519385248575937338845620746539839846932108251393439428921671525348844754231774409670663061364953953083542415760084404472957673946463780177252685744288724287673134872853452510923973543396756641017243123881485039035060811520059513297355499019435954254286319407006368504010182023000253254138549936572687598455519253648220312930102260265758750386208355481453663908854939743522606829788421857637889609454534079135883688036081292579176216965561868494931875685308287584719485643255317390445049128113311848612644226183358638573597997736109120184570593799919090443681613416867841467210047609269753742710254412322665638151058019443506946659458775427571792899523114894438666106587712397689811678116372707343588816586834355708234523108270958241617283290279892872602590336770396100260840079692073858361479226199987621178056805898945235847134615865472641886187435360771101676617613136755293398754973692995245554406932012449683359068172389451720811590672777358934988950922581405905656555942004149543166403906190553346354832060033452102509764090966737378785375556575443658016417348957628496205616168960421618011770424979354685577358333429645991895299512585654756046529152070893562239643886682774549047689728944728613501265722837423613177121551677850407045793981622698466988633953533334356592234880589155221483514576954854709620469093225032610169295378032680618339352734405996141102296513484400181255062990063361160231835142347879991633628756743379361652172705329248834358691949474318216853880820084947567667067544053360684073522002535763302075502519840094418828087696567821385862849489535992801004264520502706315191625021340917940077593420137091648871351805024558182040260010243754711896205463626765536610453490536815960810099796870054135179833092227063246490528636576787836497053250499791987876099628754708181724961059190613853902887708776974080201962750450965580648427632316499147686161906787798917154560746201435034605734058893271538477437555026669139704184703643712475914022141910348819302736294460135836614495962300033840099231366118961204752347025438092899818281858604112277512767339493533320277628355354457380302659299078376517372018051031683168465244267131912838166618768377618947110429026069291341324841453200122768070954371170682850490259746987677182869442473760114145123438168163503885104074578015579736453287082395380353900348193393423822949961208361422153383544532194633495035248345760282142874825095620636079414327025915819147402694862753645943914207828647016520868623559726412640593146383228404643929392312548392713147891029860486126980998191997567849962400464733609975177252572607184592980263379088729109016380927185074028870631333859748560177582992155558560413227339871379769396535745103557996405636542174116341279891162690816074646373988541101251377891352301284659280440901256133993476031702837885997772539618135143890819265757185039598223664130326314414959362398679561761903294869924270749789776744858551092455311296447833147605642182643547170166433348066692238695374836120133040031483666661786017256827261875942484327028625975364624255140393425083747080540795116837423572408035125812217494693006378032611315254114111041574698840370668894350725478265738298316022298349900734077269380230279976947906340554386685309922339305884377180275608740317135428039094311808791246781070238754680066115115995753806239599026707538028935756942647941596615266755864045655141366597189164065562499969182777598808477737760510666738949739130071391728405312685632172248553266313325650633030774680109777158849728144971486787966719676618130114267415717407899222906795194863194703543895255567064744853295642028474450746526712889622793278732359195929137925368007048296337532320961165881396605353506621516776424535128486026142215255382912062817385183330436133735239943284410418481023703063277659250802009679158847833716147408106869691043114594611724189476553625224569395763145069745995981901706934753488565162233371574783178306699664687004215792117123787846132123872906116346816386568398227328537062732278321725306857513237661929297032050202889950459082884960340092551694684292933880106282612148664414937338516410709234415220874897898154809384492210131576118110841399697296244791940391050216723294523212301284071977379524338848702486694827974424082831864492482325272701575841361560356132851904850379668122267853383430905594623119247516997600900166822901548819824810931802422206726545655830116767781702876944229966719272573769277160296686722720447629747152388132970305853950239370177119452924781291642989935961185669393260245973242694255804791569616795254835212698222315821891967656293169078698565168718179651586539504771828272469875626154491418642825484826740229983688294826041769707811034738221232289100204548385860064177897136301779287030058501198557209160925440683771042650534069845998126141614625718076310877991502226858961421147402603037029958836810345486180763765590431375472659443398815587776612501580617061713983537791895381753183817286093478025865498021967088229556824083124450922109553962245820390279076082901424264684120345491921354588267885760485456089387275569495263052606138945646512178043865711437778998488660629487577838070963593068039539994307295009021188612259964147541149389107655574524271971432230527189591468125771676743054991443506035766548404925798686642320901419172900471528451025409770491708871928701613419605143429080042594744953048601618823378717493445281719737983960021633562274513877370940428451912720218219828161888889350735458607451743295043883340316934721088359638072551120969233527088767906606107386215187906886753704588528637415104264706630709369880937154661592505863046451836190499033721821752171575068134433250760417778548881475684681480687133905131504338353518476934129258146137305095855864956349583362370803878558901682730784717350289225648655184080495847566678044469164854085623732895404483328574466536933359752129536279696228635434342450104195903790276488461582001520358878085950356741739187332930506139471985119527368411232872565883408032361202632445184035310160554792043519552511778016607951421142887468427143683827892509831122956159048224204496755997354484806880632538954683126191250949044001481594536564684024413439596268463591171489068797743947906998286707286218596293309969164677625929992985429043051837209036551607448368933013561872690126809228856016456784667939809711896031317628979823703226114032433800566370066039452200638148011431371764228556713740502508349154223559076820145751845735908376464627199058917957860438393893406597732077635350547330293079054976291089772708044337570107054152632133518592483124522800293264809850549421582551392461840133348386382253778075046215629553023173394833027129195476041191900279271983721621533947631302180287161153392947662114198040229606557592891527378951326006339706491309732469654075474634519020155624710711831844883519492735665788799551265368060408694935531780944400466609175466075657348766103346238384916382862400612973488390307682510136577966483514280134269956679718398107650978509165674797172109024665352956218438278849938028998268616231357239331478595736851123003645964623011396582616495658727505087409681165920529365336190480131081724617257822501854591389901365032955166344610717829365117594460428309957047605555821727984787501796571297267804434822260294842334726891156868740352665375668695840191236681033149082712982613128014752509231420968412332319990076381153098706286946766568037518377666272448108095612387395866118366918665033154477431935473836460784732024201716852242503853529737904326397126928603477009503116381328990645433371692817241750312431199543012569511282749068678242845494125463244166572680708913805574158429401661901282968509883051987617498420638750958561690938151035388398277657321690996383828897973667026287924271268566175040244822914897735174683835591332798413347859111023733478988132900439614368615573845514433086491059701402291666333772869191878099057751840845972656270576740317323543899567692911390368320962421245722780938844786205287323437996112761717911880574539866719830550634070341483781126803519272635482044630445969484584611317483119026694393111333607334240121542851043759549558246746041401750227234982806003870985352576953900191317421765756927815765971347248309730473906927632772588498218122741318403246279728525030895411459126388429133356695272438056078588618738566912649716903679584498525003272551176976222902062371196756865232542464265920324660226366101014999998685317611524888659868930813142363275190845545484453254603351925265698956642723835255388591564731761501550675318816500687098171884297644641604145122383098243642505213044834778847561464709589028919549983917730463503478144395994891269213224018964320016858588170468346219563619398532982646548579682233965789105063223277578895383484116431001187230404000329870027913638814775582454842208997262893070949240300995343256355201068586772183680241404247884026398566296114731240158304533543599499281078744041787412828327849133972472685225314034704913205295151723569801380943288178862672600711097298137060513730326467622376150944955659508195989808130108098047678705956998116582668117912954823377769074486845575186742596492824162655753437450608739580371134005489788877209495270923817144048917771267183127493207721859945331446176052964501370359907442376097934700941711563493386798203087470720103991580000498237806930919030488214828376959880276882357624148966638277716399931753143048916928636109772065422068200914453924436547240626920120798070549326664125884319984004360024833222554607700276095633551952624819311178754983795537737336649784713862734664030014477960818066262771905115872381596312575590569003915406318667939113054444266523719375147671325633204354741424068882758121689013860104188397413469184356670003095681754987650571436229985178730065109170712004562210376883119554510335190737010724102749581106408717478413213072388653493537061927372633037206397386763361918909090158054231062554635163945104762636603037266809841294644887784008450996698768169512603059597005136211038732816866134289787696785502698136654551694152407002915748822713473785548331752407540777957375059602986335918901189230690659857029716864149029271350468663562724205053161003050700734889262289306704697211543337115647701006336496385705139530750844744070108160223626150725395151544275457309650682637052444841295276457306836961729531275655266167516724628055490916850751086462781959539549841431475638830006284792512649721250053967885687150598025400246393347193436439762514376497151852405642234148939170405726025866452513620616475626529051168496805335622656872163530747130396712370788191732760703848785463116526564673844173452089870082575278728891990249404474365226840776477567102422239296138884782927522131390785852094989421154999020142335252855248117372343730380600175431618485479751449697404189494474541501641999870692408609789422419017244915045097671941654885336638427335039939182505177613613390695974451648572270897924345075943803922212468408300331084524187498877005068546794683126802746731645582957585021556832323019969097511714716355636460913969653171601714513330841131639211758879791846092389603196141047975958716881114099186742611160943686337138174046173496064884871183846117200895357714060329157614013387167961691615649487481919550252578834797766696291471845816180206010756815970226200696736501276979663613478459382328727086651545655905988084523171467006623252168414636129268481139840984685161810449526422998082722491036005281132437124078672539339409550001728093303417766515934549542893670517564153028745018368830538625271283364875607900591925931971669393164208974371105993178470162455017725043658852284432492896550473173071834672962621257094722395605149896966127433468355695009385736029979164263889562330648914706711517335532683037767624079233526847756161847266770441750061615606364841936610251172042489218881442010244513658140798815177009193124246228577447237687007073350634763709293293247094025978720151416851079722536635332991314394790226813654278696313072625499167171831578579801178607378884051544420390494771984773119151705032022434691035658492654406337542824228457144078729018213468078004078248274220564337039931949928748370729242116585984439419652987431389278985478952974929746855749375391900939331344955786922261633527063315477873498430702996321866699252343593781172730750979004386926872844462392364772670723472883221371634898216936234811325927165773265375741471584591241885363691391189872271078455092384459247405299102997225409783838057276075820006671633709493684819114986102870998822524914721262411187671454424530267506327910441689671457348476535762870906225946751025206974283681923758443026294153603825946233645129967951345239087761111266540627603084463644352811566263437185342801587948617106579645131176976922412942370401774500529184812356448600953576286809824455811926354588850592415198778586721130316295394861119677025867865405926365930593435599401140101600056195031154791154741019005612896087548547905022509038362123518408434236981566201167968944841874537024511892041861931980695299750551779950382671470337389669068539813674727961422210043886433868007774891305666288871559981966871557303633679750384654507672911368325360307935680173501453443564931890894482916820385413299711179049572160570180004308607185236913241131024697543067988425643179307310288863846539246069887682323465836797209531120273482411928842730714965468581450576986805886905709130501163512784914709264218429502578019306022124149285038529242407655770155556903383754919836385777373734164866358712480068498216568379661408176831610212316465737830135473552110557701470325453154068686816529917067484730085402391098347965271698742121571231943367918605259872419270397637898589929130831347967550067433531369382730268046041204449786643110099479450707117193271514591003789445588230068913060673497687578225608331973924838104554164194748819441114905831364601278221006952922014774463312085672506603508767629996010769269419420253677724659400284607728742125132365779773434222002208043107920555233184370220886845058757360220844252319657050483065131685028996331667635647955605326744639566017238753831469059176144893887276219534504251611451428757127900567405246552050998160026246039835196742872033228089578241967272241985169890215817401095286275063254382488269164803271576064346010081155996440717859147173280394247622425319098077972646818975299676986194976659906298632802089040035928674453594940632812502962602108496376116124958115789276823721293621817898046629711739453808007205556446184374699601380706722869503783965258263614221784883701675147883700151469900059561384672403235078297627595498275277375346033773805137884769972061162215066778641889344893381117460887711588352946379279337600344797238922730516105544276396720470515244726159258919176002307646235646559773497298718294347297055631305576789354933402718593519328890449648524547011415704731193063932442741709067341458308185271721557657568789760860117413193020313999642552660545167907277085276481391988656290646540588892395391941436187681240534120991681567460922861662969814959011144020830150624958594389647447862558948113044499808550218690708383004643293153861427303258382762210528467505919468983837159024463038653173081718496199124873386497729253719269541285848368171464761841164774061851108863923653343574515724529988351151899603938907703174865287403605670621406656092935166062913482224048362370313236968139882742845889118604016486804649747982593877805390795771675731875896284441355452772198636687952251105793150908397507923595911290756802863538558424583852249032726862372554008114500373953832852530759930154470161454982497848330841546302582434746161990607357982525680353852721213382164256187445266493331461982510527992119388187511829787622340024432676095381364529164068238511131120322747631509360170309075255986201192156982176809297595961917956174137627112129533852804278712431960051808042632199998459686796582771319414031935326690950006588799096809795141283752120464509260472711395421776296588791070940193306510939682790143358596086804550880875694523944191034423089211989997376055736466750782990180544788304259597817174297327498583856283910846212382083735411421228169284577018055533298550138119634817618333132760288894273679227555802299213701744815935709473122165214939028591641802462208018411278293135821981699586335022658455984173723001105977085493452485453933706867098739076947939596713922103368302016040772949419667172597548595182637136965729546486416085325978885058330790657199024569979702763449777620910007408697035147439998458478107784751552847142619427434217501883638292008211014407723646179590061618391923919449391452268612563679609035618384226212137523222880423756556665899318525989209314379966349044962206910154271809527959041823228002883146225228473733396520329945643420258498663212021351066169395479936753409732665234709559744572649353196716929671966355597567006873794854983923782483505922123984244939686658722756987700511694581606168781876506344373818387628892047851029965401606952739396245738351875937677726444644542063791796858388364029576950707809683428844309643821502359013280714748716440326255123183800586684745048121455381789658341570449429114414262974406780534478644394583228482821652792685977831259834047576223688033201406434926954798000932298636141257195429833977811942361081534387585353614805550048173242065581556646776296328009486782594755074122688037714973310149344763706625444790838059510253841332138520299100677301091147648235445726360174603495196301776174546391963181866542395610067313724623482018622557268044396599238939044001099107572090115862381941894219400358556441535988551578112658009859005398737273869995365523815215356319007132680136301442201950322652565200337244003903323075577837760622432672103299863723083669605936128586460213941043028433445337020882579916147478253786252909674429020702250735386232636238478884265311306612317934351182963998796243179403815018552767682043363787619896081872301373070093893833580822328956990453001853200800477905927416249228380655942579658877956780110961933584735246495518186450371292661281359685548358934758152739699439549464680053911634997234603244173742836603615632287786800113196558268440016333572825430108446190660374409054106158823271402017823231548808607402766724240311302897568868167715883720834345591678881787056487126944395475970293432281234290217616491263790925771874727225995863742165479143834384047846034259882077910156238710450047207953727465349666259278807530893510308506004020075728264897700746924708469168231817643101017496025260013668648214154193292765872662794857402210433090035468124315597565147440160542150434306747210077553601484868358680585969669766501291877058633774509702572527279621162597918797901321174144077699577121339511882225419004935414906330223163857747689263444856003023213562040889738757671186335775866315469057154183709270320717947226345591871104141085348376680663003369961480310714318400669752140762952307906950441810094862545695657883154918451283116802637879457097425754102521970585071069626681867759551258615151877688240157148627585312627882994462654012206269026821552566547885260532359665013351644957626193308681791199055155761659458472311176822867423696399744073175051441643483243367187717437979569985803037218110504922234537638415071263740326757227631143280275247142214686710455872669864672650971853857850052632134311441379786220057881974822805266381749711796491043451894815930785649831133829028536266460800224947577390863924149291708118638125441990404402439891865031526585563663311280993563819118394790455349280351159896712212246565491844680634919875024610457211027288754051362209330085446826288300866571848542213606654006320169991550643731066492782255577408222007205603347093304534576127041239545335274664292952656836175819694556625708683476211675991367881802237106024473110588694322523321729527468780143242384724894180920555563316632431529679772653466777809768246715219882443945144688362686136926204622427544852128983088269629682313795266923262844380497843899953565067200386451445243799121217758778236800552889397160978326446122985590001102096372995765123460580625972410479456742987063199023509490630016047193260168229490005193978023942707522281780507232252206316500026939202121672479998635213659570218611773208369990345014191802701722701782281399630688634516381922489228156110559060223283621056365787300097948050921857456018873163829260342666122112442566556480852841359602699301860062061908163272047562287134563528579427999085081302524635706371795460827893132479919777220248261852164981279041021807789318020373352631864130241918914974449834851756282745592104210842771292438263705293566620636191432865595534281736419527341261033305369690927687681953848126355122487658671116532013556581942825115038883124032166877041309097554296761799853235530994919070184515171045265385098886975733034340821947195072177210364157943326535713149603038506037713834654870819855007851397694530078298101363339664011367280439397011841035876328937700533452670751475676983047745851434131991058818663008184364374042399883839481992335960869002134203298392393930757678633986310758895105855682123728585945745768351202644478431812417114169445948974573746886665431716332053641041180905108770374523429325066335693673953454704568650780670202492361417406647040110583234064053099099834503729703259201963422478476713777225720360611705125597336090578149996011684684214053526686824459882198832239301980491305936189283750616712885524884564676634508709421128568606334986258998509706374650919687249609184907702349235263317832631550449641061477881959315619749792237964370887868298230885786978995341694928596095116363117771011621732561099434043565018939462769774667577518501796935921469552442791013329834041532426054082069692179881962937437540079067800079490722936410422577236145611977744343971879212765700963630491777312525173784499485735364722924766982472590363424358174314192492746927344210965358302936020411004955827117090518887646249797383341808565063611008974905887448248222893724917969418737175293466022708747529494252625780048732011704677577543549205930548084021217867493133868421962836280303469349351085126982894501838931427246957538043642234618335129022374131835142529996046840542977254554885821135158332018645756279353427739252614405077452815195898830729539571994045044507583603689787908007925895329893396656896603943879507930408910109990452481796429126595728572026125370143621918536023360230550836048032129386586084683640169043592073368069966024548421206013505559223882259252066719713983927297258625895675992231351534827687874409670399755064295886702682408712019391356960723057467600281485775188524451278126865398740356673493937683818121926951281037204350669634360029552867350702666200503827639265881236148485760127350290734939692773733219338529076833861735767179434401577848401937697846173062181804584173356582601279162694681140173100868354061155705909684063968365917513354881390099660479286138512319596930110874780319730312478425095246103705197569153649318061115717821878689495361474584775274794748915777241208447342581199837651422996557618950958657768449206323577497153853256278427738652294817798117383545852457131937518328213785996973314413859261801475806254549633550879585041140767545206322762024870072077266264658761012800570032451380713478233625473177399241983131583739062226478572811098690015190802873886056942869993773392221133832222101935472792488786430840113793971531829847605435983365901206281196736485688420556234115283979898223301046950434078680067713191857254550953015604467917256749968074780856192773275451082549491159627175808230864802751498091685987668828695573789201244538158516778585768620845949470783858016865845231837805590037655344245657253586635909661030353037719033988680313119442256255960222230509354425428332307418154956515313298853719855752079828070543216147318597732844204841024573509194641999611365192811200432522562793409318954176092169924737911154852357592320686885496559764997615203293249849238036077507438783417946090744836319970177345603235555219079847255107572373098468154123739393017459777165081347314898733589921754963642472275753524697057578895166865724106070530281085853548634288390714717942883608509858868527296094980574580069908448207419119817735323605230994733289505868382456488391474332931863476737462279662808809052369242218243474099236302603979608248653189871306138152527057296447707139713589365803016125743794006961413539388532536920395933790115684862011367997717973275160439902813416704177009319074522479281217687864184476601440860111064316135562326619293832508481759589449098414399872915581935854206165592543069774035957834441855795892277211246873237384438711516234462457091451985261492688615389568172480057805399584223148308261766738123350560037770984785315660338611592083297274578655467024899885913115763993138385872130803837126535477486545625086729542527107551226035388328684500974162741117403676095686017941366751535101018963741557077461319808591385238508192338760492801197232365837292318614466655149715075387225991288796616039961030699556946513158535371087503210289637218013833644589538658953337604814751308369775204634597311209776370865148949567652841640650254783015305528150318286293028413847847953109544983493918723756350962213395443424146997348671760229711270653622602787998108489236183716369840670243719828262760074820530307659098061534928395307866977672159009323920201047457006324053378128439832055948392225768302614499833662656743399348105930269999874025476080472876584420427158921488126894911502210517004936113319868789970432090827819411263540676179750100275154464104153095481165751305588601660820491926838603666631651881164078291615703288182134388565888919649342454576385957994222046907079060587356892463377632707531223517087539964800097179780038918578664212532004743707123237511507589153425450498315434656592325995073801773872110119292349103321477778981306669054648699717510119558567115909801136289897525257426656541088378874498997535662090025487028647147339398521701649844969209839617672993732309709501377277232755418663889132917689722332675908457962107728887835841686024455794802898746354164479803692911713654615074084164992289916568730084506561677135456820247460649468580721513365808916062407525706075954022689162308355597735635015927909981784035711679957890696989941997836074436885981846148114512553937592107570004581214666497189539731655777118038715280692694667213381056700645352233468733246077767717623128878533400342365954214091396451906421699277035575195435848886432516843630232723103343466852627076055050700111105380788933607828636203853440321751386118611351746286906509786667326494586567374483326531207509909350880203041148683232169095565144223277801249427095142617781365230197002235658159816549892361338101526583991380848979139823829645139621988315763649319250401549127746163072713527242735058294684104110175972811380107239070312802976010078709454474130022307970605806516634459457070156763416093938212332293502016066366876751644586795316177899748521550855927573401649975282208848087073528946967565476304159483593814340319593979030460098327162112902719772623313433682302562777435100702522691285331817107244324331035417148718038231156413061299122355252924289849832225537873716539197191725893831767622065971448006389203204235152649830754983658346003631087026085443345275839530387383195550708635532397818074782695612501591728223160225957627836107268783167989378753678731106537467714179218927255377367015206410037118058600421745242265169126171617029056977137436198265508973924431034672590661815317321508940635286587634343904956496464066123129088816779011712251090661816164215186406202295065274980908339707873727121855465065264781108746744830963939605876100121874511212426539954580849909966265512728322990796444882755031832343361610906918833298332433519122291639278688757399652860358022405370118243313754466538655766711878794557531781528962229294836081148285766139672849657232851090481711677693116972471882324383325753769696093912715091519985364669011479549068991704759491677877624954986641776453500040531818994637396948039002506924253600337648917736252673590258946737540676311168117535601473278654035151740086146428070841002556542500556103983611450975189734671720525137962211593879904914099372479126146506590079642623642904015029063117978890097775589792932052347850749002376396369541291558250232596634275782422622855220845650013343100749665201993137599765166101474017585983930681424605412712485990517126019670985097817552486326069152289142825720580727283095470590407949680437320950168859914916151425486578774336525999214570897042587081938433408251051763011579947556394941010687165319603075926282781385553981313203416243087812027281016316275514759558727825881820239444040970078868548132096045668493768987938694798336370590377313099268090252275315280684414638093287586083034537100933467926537789864761574623489636107161601034870854262543603917173500773270096189952335303035812220399897310935024467441599399644824823476208092034128281897261825861977872377311362966227143680103950629735104891223789210841420637145251552895766047505643506034825985737757943861284083926189555154678134493766189902595496049491281847903691994828324116503113487997288580994515463846049087988172611844542783302480216093131880985772126958866226187097575906637755438922230298244470552814516180727286291895578615253713562683298495784985947273240065227362037234654331804816227719380046607236892213557240808037344126822549945865492983712762439168223621511764202698969766156214855055897508781026508390215588248015917647750357154718913517753274554905101923203059955258491887090649352143264094917157260772489307172233063545559910593456947806197076575243450913687256779828167917341195088045273219828395341970902237714338056972395680014481084254896032492276605563054844205347788887357493372768637843004010500097180476955027805246959754122909146296185525913248848439321796971747225617664770254855551884539326725687140576529114238280410681828852415762637219941935306057842761259530813507651917952786317556488789815459202359594070347256640270388024459245360654848320338490654062944084149810740996629174727364762417513911772852624461424669736609618215136033072495486818952338451496880210312168015290057251899108904606931118073624567012068337053435709418931999253081019062012931343104818035787906646890071312688518591912649536461034545801574883360220582292360755623931136185780679948545586491420488032751982721153017998806484163567221549648900030223882703537747722501780091828957859920266043006026404768225579741345844538697768654123480843788107444802396717943799935417689782484908195990204929524012159056067284714238431533452129091335630621215899987643876619395158957099274777640471857504815565495538533343083209110819022570450263240606832556941798656086818148627886737177309180735554062927334450447898934424386734969572189559023114799656216543378988621942644358862765706504380617824603483745395649225892462130089303403122047272956111036775473283978514725010062636993294398768034279125805783059462577347173615809048592397998354002504408246927701824108412235673042142026688895098579072002285745139097624777722756121978372333574054592015687235948863731585123718931993408866334382518683852491994248437931383210077958929994929036529310515936533463689083844959934386341329868545706081431230729065000801040780977175219552499780541340262614134400281479344875068241459853347156250735122561486992514131870264366847672976380596920057178096156210299540016895157731143964182489036303491148567143806675083261543128372643528205107221285447061433483664857788917940298106684102779063802817348197545891603528521733335153843123682425578092538688005848994787266688677538815146576150083683167541540284967719123692091746249408569934223971011159757935913418406191358401444807774405587340632725570191099727879236384778569709247518047735662621013959749851511585272371371592742640118769356238156093782610448679954590734473005949004353607020004095829671501990206146738909442038708576133249902650624544561030296810799066573539995900036804719212398891252111008297385911351522691078156670595956888825908220682047238590418236456409027247457446368445396872140985374622359511066669918609545948709936015551634651553210859326374680270500557854728240687642547952755540618103021479298947387084417704442491329181001943932027367460495560873013246991443132799037385708167784146654479513646781672006933310152596069753623386889396231839259242801032759062017050249595780246699002763468101836732414243925383691878090558301948871548864579732234497112773740325498392167085963581602640488485515149297530016037905339572168830479364210685222101885535053115265691780356549523127287288555228667707227754410328563018677213787282850861553244155077789872869425793109362927548961813108225544354621460754267408386234494897800754670435193874277764259095565090481655052409637604417926896718611885506204752692165159279278867190621519636060677400339586552440531292048555208862077052210299549660986248660576587233931462804202919913899079650278604288583380981949969348215206127761716893590726652542116175284202557758869759879464129018619280933051070630274004131321364954317972590856178531298017858176392162606698743837848299997249287952184572049951817467948629170138112291356846131775844053878320573452610655771243750488559890023408571430617377725511737783510560161997195433890674631732333943216130865138676557565854924097025358108157406285961305668547555321191051366741022324664818369470310620761843940722140027148230086233986825625801275642224768873816863212207374279570878812299003497171540373472268596291345925245552059491960987430726332317069659333514561196515627015755808700703940810230702758022268946242167098072543969324898387345455388876707646882869160668187767429358729480468814013695331963431452652660137284712845203877709877374072986912866335048177050058221623649632403546232332171124938962551949594733828940379521668732400540904509494511427661018522924498074618419170434673623614221424246676236685864429749870809722310798139117249593007145778366062922326138807564892098536734546722191569198829096599593155415892563187752438566958046900261424124541198185539752318584018334612544784177434544676307918744116966625180175532994886688726054444675033909564021373071143553917077462350185306332675683820066660513338492527921996644870106333545567661242504029643838145994413484610139184416523454607792134360444586405045719720532030346760542093683535716202524153594731816603039045076554561809817462619180126443971991850958950383858154927878803871012232451895420985576599615527042105632551057671932014166181186209411753980763639304820282251493837350486702754235146998927288332040356497370711481705996420849779392778307716111201640563264419133349662341260028588876515665906049855450300307685650066869157562258797454963652197349495812290522249672311122826001898628595956725451599302035090455384172054685180170944531147181502968934189830718277902816554209618259474917460501710839502773211562618508872503905697829027075836368981896920851557505187672924436447486205950175361272260238239532252196590426091344200991946615045845954538459806542241866632191337677464331888599512002914628937012847847978548752281379887982624537568365559372684922799640196565721159155084700470726963996811213274715095469199371979754122113800025751362519939562252047127229446064449259868647076243690859990084718796286882517037909136128310572021359583997221569339693700453019359985023057518671206869331025558192851297136946095064805131841637500282040524472366002838870580450402136843997429618743792051092675335623123281938048846119376162470117072522803389948518490894548207446582713855361246545616284876429846911472999312043629739148788592297093195215326396150652257630368055150728426217049398571883299274295386445374479316854912066220087545138719349828709759093737302842192577460888729921695568984005360611653104050511327295577518742068293415805393788725112910874460398251284576086592390111938781382006018560516206296087474673967675550737232810257188764662806346156826132231568219820386342626402663692821335142557716356213853436155571761827611834638527242394163028434872589381018154429816811512759784950951150697063850284395948000899337259961345553759996499170709811638974281251417313798132946832518946330834891843795837226322109758957031602165142965837408252111759841041479326309239234756127635662287451694775744677707970681518756773642206510779828368994694683627852979961853830457907367126554883182187553434797434380415034419739670169573487220794115948668982044146505535224156046586199345565131430701849821202259350358297504726956088149178017854243775879762107424377718549686418548118865672260138317725159213715886663392676382526497878473463319803921244764691536802474035368439754988761197755041057894656937995532602032263368186104201703531179138610141770441956460779294907138237442881347163632177027999743080760076276841717780754637948666731632673267392198132548874941763506754689051686400713395421190438139149657524696014396671804110998939281914720773330387708277059809628238643589302830871147997079924612495701814342325362730373259074909635439800050534474323508618013228787085486192996523080482246797672990163084794978737813863112888958145103089218448789307539033658143390730390561626999335629942842112163533836911079190558322125286013306288974562102251806212551853542427841635193343539555954429374203907379117985725385329765348911029339171173691864840987760837290322864505386133395743009071716030875974414076174279509190620707862117089640897006938588441840752226314336299290965947856715423886566169195959272799922357805594565417556911322179586292251857490876210328490949478209506338356073490803049208607666005596991843718201371956150175448606488517456380103332448318504949984054319962085432714653337753363715517798156111700341368379675335446855720614311905942611893695872276881165712048841906616033336043618514625465138788464858723170629366116139344855977241956175577079493937255705689548372181729125524523704280809463164868162467879027605831296541168284081648977324055104877321366162396448194841471467479145269732286555871811723232267006826736541300803809223514551296242585354180054345674662626543008299962217670306362914847735966545068968914883244677706026526146401829899721061715691799872288962556125338066291456862901070109485031711621982510420345369274103025573576586626972589289052109011992150253190260774284451956198521143598039774159125282645108810773086629451709332563407912465445910019850493704620657297385045708765148270313855588447066705063542907218900394469531122050346453164721793685738389179382842355547324554333252539925417321888605579736823993985109645786030785808206193628818430536511409127579342926201361874304711257870398284436373469986865891534365976892869965970297021137765959323216213332369050427115883769566659820369896735692171467724524527327651598484365609094033062376682365082446253906916826260750611011141202819867879839412876770294479879292645030959438460815877406695553235067272969280163949703645598702520664410322012078069579787607627946731152297828197237490048398656215515510196661821655959868505287496174546825448095684429850084472604580441679554530670451375719259113533955809814279212689913500490302774958180822800287058072476266873713088182121709755752491851151958980341381843393989390747030856426043023958994641331925827354718068826205252361055626298736138215792727388156999023240960762111545114845633380781282341263996590900573320449026111328962764787160444801335841093005148383614487967706953615665277567060750587744050904338511430410098338428924699808787308704813317507811422537299628918348286838113497329591419832268525659774213854629008401082294102918802934332385210927796332156857622877786050378025151094707275150356844447368844487954667239484367623849079175060820146925527732763541669836912426783964385503155545898189197775605952008042929150067608767100676263269227747051131575168053499734875919205070680624581755626667156370306888887987472356725621821140103424565602089691148147217067583080307847560652557055244178002584713464626889019543448149064401372830628862884849189413772863686290538260517137007037221869942043862064324561223697529722166617032360377918964015210701636259750921601198109496997632533487602954033028164059457662608481315748698955881762356041230648732218379637604253741734164945679060106498452039126463242134526476267574126380928082154814596209338934016243029746979290538859240489163986656081821307550069976611185924359946365393649276446833504993963679222301088551237985490000173723153711211743147487977445025239727505184920109608453968146448678914302318997895783971690070395663047666347456649702253891573746267139234659210073760071232485150572434773241343463631118482890717992917178896893932432435386309039905440953156902182765174400830189361038439786919622823484052294635591040661123204941181963667975488199833784938733172793759961636361254614294502726567533560868007494184820336869054908894850065390243995404836189673686441799787216068429582216071818308670844015853206969770526550596348455129073411975034552287209985380322088016735028792731506174309587277278900231665669480882918518642511110861662257243954363620328155137544744365987552927520844041784324099854434472416110717418737249505344807418612069728543275600744041591193526948878324103332804279544435447373370290097236054279815514092430128740502579894521238823628051672814244209382950780058197091603698899978940953720800885555133848822490117049905549793073593364039792349987853253406431094410015037094943749165636473815238715215501831516566066623300610473614506762523002199647429159990241437397015493972999823379182927612488783996555156155587017291557111035382594148098648482898932120696090647278230723386302709582660647814753989308480528122379939543701500257608319299876971191986583016634314612833673401990372390355048211739062071791031012597926960911613423088303014803570507897672267069283006092500597457997289812157030950376251290359253081044145971100554881269964834792216443255328232600414535506366398139618794083443195106195963027559656485272861419150694376778770496154942431568933453180929182179654650814689818715216003516806052090987814759825193020615143759057613988768666284963167999380407398422958269945082866091260010761531931965218616758425511120644864241413251755615932625429039250150710925678630520287691346545193340505813367323414303262926696043222504472471211705470154151219203543082747352125447620942741944019079334617884016054285207787597481300573459163036932493448307727398570521803990788989699900321177117866659112362392148518687497436838280006811777328626539819105026402922098689230423137522337330002998852833464067633046868600724975419329363991961715679073728331960187468204635523501326748496906970441454188539356122828585450412678375405714261568066136043633209841033442441157348542529742225198359896665091623119116419443209906757805436530572276301592715129583489388225262186792341801146033781081181626896897714352126968205168036476415603763906310099875316136144606554078866774140936719351184069740327397195172499801077748974063740662626033934555562349370407823128642282779375352256628058295808157041345195545166378644167539221955174329251627408871793705487728851016038059190170645291192634701142856569636037173567116757145667497023453069275922674424855786089794276088468950528369499490300035411045107989753339121261587408008640219434021020397047403256899928894973829659540914160634234922346913721363856597611768951133353754961024732314767337761925356268054138147078926605529880572463718458401856850628313762061042370060504829743053249437451613823041052159704140000587648156159948894635763794463698133601478225247946920564735121381837683865750987733610513903159356913478901225308974881597993410997275753150169384348020607700720054737082263185847470767744715970848794373111852563295596029443026706218085394632428127518104686423854905297044851580785168143776179286300429010091289133135101451074687557360217779342471897347259180095876365573022623925553700278638573368600377517987952436143681555312900652606426426083064421276584033681039628837926000088130333568935996738074487167056503111767818034384924217488238593078652217508388596212816179415757724715883682859998974197854040382520539449336969112214290942364046896447061607289162915678642127224930325675051491770223062414458474059333815246628017367847038777459398699213398133786048611424966253309988856677216591093943285890513876949690907777855115795545203074339072414171858004786209672174641431244870525243461277270347171761302013351516031043072003286015562639322813519707841485991387689141546397904871843440376954100033791672446443347839259476434126630627240337603567842290111759323578615010060757035988949488965972554777333387081951086988201306877418486064900146588079265352214569504383824867747463149822612829832564986191609449427373807426783901435262146739530728964518962028927564208753639057614701480608465767993609999559497380085533409550394374077940722970840543619840166957656777948943125095783855387287373563523888288568150456207608703656809325865444016516031890495382504728250317937936170582444408957395133677676784844463269212253040946276326769407128036272213279296372629488232494284456766161168424698415143612513501801355552180338033963932577203009821082551870741165438814911886790290472948367386695623042753238792855141083254592262817431616727870341633330800653373136830134250241131693975825910557744243388004863601727683200172871038697634711127263831414490994513726663572113673218242624038089571324557829684279588711982562081102040436007295417240574354382995482863538407842606565378781400780215074287203338534608996380900047836099516540341401163786276936801788513727414542845759739725704272963035418628809597383239525467335174140941136662305456373654420103496009667432677861664086196735855952533358488897634071087283249115393518115166786793023510094107846990209758357691530018279461675850968398435827824603775783772602278590423156216226661973875740136786389709230409475407687122163391878715609571306637792473281019183629050371833841585265613164834088343149904542574677498491728339903776060445473535774291479495103384050613405951347250228234447015366259667582958269202270703034803894167303396512553601969385021177537201449503575466946557123821058721802012018282472880586332464178275000686945268143979311979335081240834203511688294701334827975075583023601573340592643253012146075553984090567281789020384315941424109389084626085200558620256347993419691967932317477017403591211696424740454484009864059760872942682902471879491720445059773407695741148587350066555895813757828983110544335860711282698152928625933863851120875554530586097914176105693586483836747525064607272177628222005597974715232120850008551965205326164737904345515929823192262885606134758531835980891743937294343718165836258816697033864871768100854888145025779322408694317451428527922766687899284149675773185136791015872218258751362044143559133724941263636312760291545948886173818143593243797447174695317494288575420311777573888359820365911390230192652219611678725998610986588185511626534043762467708499453131192353657637266030961182099471989170821749581692015455515030559454210819818874642889093307323767548113487914821386929548608019840382980117447082292262260871807934355052721402686145057359535774079155820916490908755425422091334493698730319821597049694656189198783322143815576170080842249802367164846496268780308421432526633672814065663889543418551199550782596366016118091844315070526768259585030107422088041749595177583715004942159313258917892495840346793323621038892329805378555679769448891588862750400476216128604593250615516953110421422147932877179063665638511837905805361857508411618820608512070084198951353397568824460201340410613958079694342660164616587874514880612516820573124047678465029314575468500390038050007528781900710699728341061605234663074050929786085687016016997696746285320697067647061343235363045213797322244303366312267832575165332691855029691527907804170984141423314572446004103024591136561537833992478649008366010535622706854899597192234609938554094629568036715078111772346547769547151396086272621829932376610094186565542735411538007859445944088101426948113678900728911409883840246699384285043331302826158192176813166755585588263076834203876035093930286149058128226336934598657854697681744354154636380761244587456737079556495972648195133784653088885559367132321351108889151158228020098342112502334580782002480682731534978385276526459192232291927918746863607393486690752911011978160251974724629696192430804080944148831147006822377018818684334981462091608675119837734014710645522046263747225054869063486128013568519764565321605758264761113776975785645728986699764126098461026030109548287896872491396975820343439845407953724094226385447602765013415760441082836943774328929255248643897110035942556694616449016647130822438112992189410009902438347555115395148462054619684958675396495885870849261575348666582596961196801799749699714876522670703383101902351209491145809067430418953770791418994056070359016294025716344396099522348678324089492587952809327878577959683972903426007444468968680901222083875177495475553575489021113915287252886450381215594709153054681607686104070066774304031994763782810325657114279266778981834570486410744463614163688487231227732861322488083344359961649962410567291151597739724443253243251215147953467121088739087952321936360664970387869801762422362207854606002994634811314504517647320971604236726737974625945635967487911312606889981133929725689178141845436434739302560143719895670390640774151668781650328816367387584719182095094026963318241234443706967910511244868011080670263055523039533142424620052061397829453320136218918034469083262645066938115515050753533411432850357127907097512808718718980601786142662158516265105517252117488069362132622766094142533974069841825753069611268823544097448480426227532327632143030941697255621479646000413653114335597603442153879753568232048154253233829833510087625670208222406216522147630649302098193357998778126606009750742674872250755341433376995369629753611476708534417499022442774852695477842839763697130206953040796835520267792042051190203876729119260044003798090908584966510604629366585382237312336141336232455803567523640373087901870142816723675118642285336927004754973391769237020927336047754394094432497480925833977741228710294842959618888837837412687961751422722853717326827650121553654957679551592267420474723329136257553242771661363000297290708739864239869710466091339164318712451216765904232157364928823536896343188173390313123583133052022346275491291728764988322532432048219088016170008632941033330741861025568615062878701542754952731925105772076252673646073992868978587182366876485632263714886655735278638421665550999019766818206302344943866652076090122084951077161856800211795030822048119524659883655015999305210252266886278164714868877438440131351048141741620829186256460596505722840172151249149330870020522646045786129871896997901610334682915227851384849266624016900782598066006613251201591666642944798345854549003881836821247261676558047016971445007712831139000999338107688788533016849653209646461256237117250303877782673179011565984113841241271223468433827920760415972886465900153861239610841377256676407863132636347206401577154602695111557028298115429967423520349531863574932484623384031183758728394084647597277236294202350200951571880850025820493382432419468598488316473537806716721251621913874450216943194843419600322871525903364788855924430432806529865859260578507289745253476154821384801442130062410190370824261062264516374134283478984772172780927067783491369518843219033054350885878311151400119689339982231638362877619951974063674917389456819099401700327659537577641920224622968401242286016375430550778242970990408215760064050826684961933443685862849712109774450117680848508327692727711544941590127508939380265931393158079871120534262294453844152470547437887960767144065666427493753366246251078297061119167085531183161721966350677180733045852055173533802381976565957224231357817172184654689745954831407439785536614941924979107794255833325847881633429049598671294896348931278861830877391658712624767691293087249592346199718392694895989059744094369367368629134362969323416524166516070129415790286890856147763546162921218158597157227926893006136521902409231227425678991948189295391849544463812526917210434386663419377453578964257464868561721901171926871453653138336930231543319288108341762269498611597295165155389694795160282025021220138991235982855680463873451475737610168902829247848371645039945313054170025270440084042113984718072231147943136743708082823045757539872868443732220371333576011690334206059103151631698615843426843804537274501294549652106137628169250086920135812178433604477560063440555317547595071162426216203406192976180387641337794796904431489842820564669110559827844948685337766982155791514182871194017562070494599726786031215396891988791396404018835205651785408070928174417478214050873687977323641475772387268552799003608683205781605901769778931074552001311191170934695279231109325403407668628459324224387611195102828198807125056088629108922024852449662501029362382107688182286000452570368797391678382159915906993771613939135278697290686923669293173491823210798446668728498264544891981299992692779839466604482603726424461605486177829659521954533031178013069115537381799931819873511499952003796366772042775063730781935961182850104557184210735548006992772741203469773745770719095433412781971277063282762747737859288123651858607215587098839433184704320252061404982799336860999754143426404670474117803611908583678317304653710995472344672588730678857009442992403339989636211421147170039377033127707645117690763043786391570476640492915894569213005001697903082464993683767077292589101596624166328997091176638353250382963515839590974012936311067920624571519103394819916432486997019683213131914747294462599288886534620234301902567478499171863330026866059823845699836513719177899561784343829931642016639075103729624054940776612558842332017590115843483134720428057258387656909767572222686163179377685792790641150763265992799672301030645832383357049644393215409519785665161642221532263839640109308121159060163761050777709673465053782885233028961417110627990132760202708965177926481175346972419654740739176882843975226047335463838158983192452238605896809153655231722228196972562285296420610799608601840973958409373390912595433456324010119658413575553767179533834233922186248784803395449656975598792751334637724569991770029373578677565264555206774176628363310134983905525083844597382761332385967021749082128919210553307494551171273732306389558227118568475677267967529574080460410930864100990626391476329296497172249249624900612074285960321005759851673650424246070633094846613164596177626142841203982865203688126619807559810934315351050378405046580098931963209676577908280083109665340805491130147639614902311511445452203721745246566783394658770357719941676813514886460150388974605859308610183894125376407720949896365250362638643112837628677962386914594490166324278276988324708020889418345246908612662099488669032769271479959410001333516743123604642805145637771160911267597047332463510722076201521059705641197399698847365435284702556152873939844264374672635574597673265481869860203720034598524657804379673523928992037535907564445280945729218230402559323161948223814418050926039896098776803137560250292277490396697798578526887807514640688337689425240343844969893787149322398159960012639544520112198635702921776485426878451495109422420944118039906757460483401796466361835535021643555517953658670572876644795229307288895708701318749022820537095438042181704527834219672801825310375465819119235561729737552655557780442213467983328007343524996557263754717523813739767146989846158358291192992054279173474222011627695087052346704558223431402514539100339233956391698942405682501984903998595590163820731168571915492079770658287669381734045341368407961332431209370888711184504354355293400788004825194218143829684088376753633924747036855883371654914977770750989086829599620125305702617566482215997128559596730435274224823837971800070286084818090801428024141655561516611687445997942270547926497337483906964488900867120755932205921708139107216644526304057956847632818191931936140693218041226203367824209112357702166754618554106954314325287288810915702891728651389758805840347399766821277007761853423196497158223409674208733039199110912342413389357090023153966083260574490609915361458242818253493609645454620615565527530068082883965563167998863434229049214670310612905131850792993974494261603512014941834556393453859157699340746784038152359570229364933330665426225651175480690019382801911336229848711130344742688709056871614609729533064615157698661506587456221517113554128861782963517801603119153104463584053603667459855343702913663941711362189337521860108661717849650520127022905436273993377288923524773654661221036211032885133103937078604753516493170418846278604632225491088100049586068014818734787179191981633150590877752140409552538379956072114238250225175147154866849006718964993190340213936400142703453681772457757670478885726695081066478168784232480245659509628879286143191979239237177210506182010471210503462613352615940275361230638206841078361490159411717797185212220529316303109800845477856004558285481381114929213589979087826593534876976995110730502434648342248353292703329241403972571411371825671571914646753904149666895531044654480577243882350155403113843555374390558837661613480878375133960812767391460786714279851108294020910192210897184396836061975476451200946451376201209213589722255468886680871027208271258026567509753770753686855037183064789799146132097876675768984616971659101360119189156805641648780321465384201378404400856781222046906343253393449251345283621827468724943754220826981940200380586271880335717986715862872936721880317406684979515131733942000144927523949141569437325290053052995466149564252296334974357771740171191485375571393883015705771159702039984326802854358569275370887549988638842178939865858919700798361227640880683137569269940148515443336860520423432082742369528036605464405379535249183744408716268401226462969102995087018626327263801477765057743552761386642000642090997287170990816653913263676959471132787938638787096617599159704968766538460796570694675444599491607216430162263291343546563477154013044233723616806720761384212247324283178000144530182379914496723656332753179470885793310501376536026561960733395893753221470960928394750597463264028364766146104380255659047599086190074009830868965622062000454639914349433427775925947162791428168271455268318290351904009627456712636233337124293221644719550822009592722334286097858474206294354024121919129318915223864936848356370539318244097855817394221351725453653288033371162010276650307238860413655640568105160053109383777129116525985712069221486715485666596743084199949512833082279194077418285428428180469550475193324663798920578433203435116798150398604745262706725652391295186016161675780435635476099791321495367485352205815235860080917145993466261397809369070541475973930360811054637510075649244412038576717790127147100993496431286355171992482916318229076446055939658171605934435365747404408076358906495779412247229368317919283297887063103497584070494229976771761715657542129905857608143982899945322376577338210150277987370548831488168273547931540629723016508450258782441314432108608230936120342534205528141563837246122688349625977788933230804465063436079896116247697836206261507434059648968915576247933025576190445047656738491480385875698444608325269376313810860638484847836043398863030582016894233076002590824156770346512085479776786090360447553945478164926232371413466221734729598872112524460605668759788473471318434732170911431583425854236768998570649676541761453587058266981877541051293045263419957081746740039222004414556883465026729215626290547644549872404184070580296799189812920889618394523900890943563797722124775967767719106552654153044822796535219040163724928997394209442739897698347522687874677149496082593447349330121916399905416742847390585101972139067749795079771664958949041462606130424946434255345102929876282937913616582043867686910204322333732257127381936777335917124869524335157424796336463551779555241607760836030974563727135861737867271312246884574744826887436540532305133791506754341896290171877243728290833639518366104609232971487369514606014487578032256556352616800918848158276060630614045755668874771985750876326212839971114700835212707684027483854943533410682692715865383558166911461250827423150413962077585746808581069765934941078956042032036376666274106883402704786167514491101529219833861260830991852690834906102464076101558061933307528688474760211080179641888360175882521044231537365483787506244161292634310732200527994301325304436244071174640189644521862473180418968412726452013694888375762794677720291005646573108992118808767692689299173064937526296419603146753556568000262144881115644370152940854452630862920275840992746484729497564970767974942308161740577264779711550164681427218190623418760632344762028594782092764392830629759031125049637062156338823614579223451676717289930086773862449339842342508101150270686043010266717142829148269899902001465286615579533640146688167948831662593911742220073561656808917542234976122943065738823783923528987620642700554931155097739789601009525750421473053870094293345584801261677104878015056042185010984579483462953514866858087418891075639514221595129923094564541369781568598655733836459520917490390068109009098884439423446495744292545705085302300914326629887725758700447663408795455921588087532031933877108538914940845766097293898373859568482378387629491473517125183660171008699918841873228656908208667159059291237822490153577299991728721812942960596911895604951251668668865040657502570887515372755596410560861763022044204777209176434721996858622794200991916902848825718604691323661733503869540087679179359030745950574075051842445460565308271868771532024546758159543986980824958059420925962314277089117875062443647894855312370639708194842528043958114877927488186591917574763657901688382679645728740614153793727611361572478409039530052782273760662617048383375773386132726301214060286426268094762193157015386599488825901230718667225246993340269838389961699495590230887912091848555989414468366799556062962136270057511076233123907433838892700783595330840845512397800546876869904639023909503929156062884351376121610891647140478652374590051315238379510543985669763221530396891471756964703970592423605190337949274798600287827073839845244075893413417976711429617114260546200388624103329352864697420527456640496424819692207352997506789334416332539592452635438343596078513809845506378011813314416587622051573845882203541511656133660718238062468141156972849929437515642442691344138409147528794494468017496031159650715939561272018894822468913738419542082013879718933510359179197503378858785075679376731883678211811082588259260640270110430910067055686864827668150399244511668623988559985807016354441788266532754459290824767705537648306642489938018359673177478006364885096917463598236894918997619853141307677506741869468172678802429521867134892894251217892059110757775897599654758943144746370399196954731472340068257995101621802727069974672400082500240340289776597242004280587507098541774968795250596678930898252551443236755535676645731986283016623340159680093112926284917394817118934086745465386270502605885810702884880322389993553273509292686934840455716115815067073910432771570899032057645818013925784129399499348922574013011195805972690958360382700150093659415974167842155076580524170301363725194450284367682088126038925415495601577106949124160480305076070947735285569830351195905131300466165785235373130374675670562016226065341275108435194716838712585652326245319121017739240668836933430275047862998024048164617978632238144450300114789745922127314725482886103757860027419572362459723330684053065529098952606386917808645344563180522843018718292369498801549376302058942780189350544893648811518301994433398257924230790894896707190071811142376826182811810962896829986048998924238042866608304229221178014517701246489175796035478513179220697615523913383946565129912640731998552958891289479044288495020348050508017269316284897646761619208666436408416667754200868896497574907939849646065429492707389141761983947299127747162987063543867972844898398207871614384093211485694112505171401046930250303226038066628761446161265476240751915606317527684007423812185731550252940331176066079583010780377517124562247993597623432055736225713895076635365294587085487158206972655354350551182261549038460367895173323142878423286116044060936230022499096860974985807096329628857734894770517441915033390800994792509017231240185041901292174201823833684691483307649949604733176355286883105477821013142399257137303157524009271861336378766558289461769028376551566064598598133433913068788123192530769555301681220254289237177160306597041858123809657961261913759977035778621047174124056418556952916903754958402665565631018523176967006546386211508904217471060448024445522820970795881876629923885870928326160474655152763203306644749442873292329896430532127571530031626965760559948965583874222416083030480125168877120859561976362578698714200854821223622155586430102200143645236128563839532877900398451882742284068010178564077187243463554286063873548267107101720659555919333987285556699707778084743191771590287103492623391983587244648794887140493539279285914431361469068335558706871742288217796834294083824770791817935725250123409013607689023845621196171298213113293497599872825507040675468652976823492783054953701501104578708605515624214468341640934492596418008134825408173640723480530462714906726811987232255138628749333640875348089992620314385664782900556509233627199205214773592628404828523836424767808206688164288335094436551760034361109151837821250355860837580811504953992934905731208292006821675784785878947964632918286928626064248469580086600630983917934945396253569636290646567965817967778721556462620063738119009193775120722050614507962789674621279967252048455845894803878741575254194283122221487927745663089230909045398842438200242007594692732884096412608640573632347519370714713009910773317817219311839589680581608394698325994456380310750409900689975458233598631560180142891344658491439635318036329527517470139196462695675968628099830106181726141418197227023060344760641154335830183437309665525743513706650099877920408384567452592764909100517426954682284948773398389241671974296799227723074127656071345142678679803755141790190955891808021187235659439732091101182658765930970639305495193198993202192075015133017952314190136851990563133883865955424191185642202360579420522828932183140884361241656492395468347648474380802355207393370299933055222986356527465721656121543371991160164287937852084363679806426142007083858667973856686625036160214356610407638324511714886379649307641743982145142720675580965551282907871636200354772830351915043081327329618995995913634680090052317703330614585429014201132287296496638370367833357030857534340879071628901614731118025277693175662530144767277477249111602821985340176336419126588060574682508455481015937320034777756028029844209351626631890455769031285434332413785953650127940948474841037740265106508734504169199039345173850489850876300974525876887720602393811331883538553385475203506135045397212419995693531807433047469358323582138955342646486522495376739548207073625128206407470418386412311840129530323010394717273999671617464461317158197246490120290036885560314434590331025542311434562668155284580605918792741963147769819476902661933488795371924598431106526165499240548441015302369045791740568881840686364951338693104894407676217237920280231141383754979579979923741036588735969611840646975932556851166402281398079057384082529891056052914342880626176055452210799318209681749957996745524675086090464876552826898007272614486761305880218436000007196062555812096141835510202548778957636944116270103518457149877876527724005786862357898377741577600971977598983349152876078811503165897044855234036770217931751297992448395975708851653852426468790600770212532235810388530297509428415334391089753035874940755612313644928528729273954127084499958324745069975087053115399537072034891665589604069935128989793119630055725181633440592418819359354264718360045301621545315368227901663245877976479383615760481205609812339422674217195181912499342898462965536469810037074188422454096325681871926731834469927379210952632153908883303118937950061235591249170109554686773237440417187463784208499053962884900916755710009810475537370360222702424337623106755217226329972898832170344625247951914977308533994420205344971242955877026507664722438217606299410660552358491029150893254297966106587586559728251313152939354546964394626210889829242405626867348931283125295226570469503833021132257395897101350364392028862432176841659889264679442417542424350080539716634989215827075545471043730938452135047367876845208474629026430302746288165394076859871161892043065015621323364626086893997814146205988027170599189749265544367780725015622876256025948621024834452826390209754487457493187426565771419379867623768983168088986160926831999421347029536633693095410137182616163262846644179316919406294944048066831285196299358886275270722213891036862078121068498854680237199750218919828895278037073244685385085031351125350050125767859036411812824479267203157163456493979316604745014242860477946007810012321197164266261547140481621212580535185285105739729061706833729087440920032647911478720716236357733238006204192785234673603429239205389089957411165289970302899911184922414665912157503114350551919539793305732389176038552351482806461445126401156892404748919153501670814884687151346015665490347037336672637514388353440772174818656830579762704603645302727082122399997587340701629531390611519722734119381908829661351252215278612069596385366440309475606496592472603820024829852337590976145358007260210659928451916904793681748120345486952583461146973355217103050006918279041778281784548940860331919304626512082283227808761987086050054032894660605300660108886359520174202782799531689549925703969535227017868351241573721484824325600950537960657812791065986826420758925108466451991186006113981599033640704751684917313085362828236774017348540195877370158146540427467451552960649876121756542904526610282129843876353738916169583986993959374564884253546017394878616011570208294709602917999110951831293335188990013592194956838954968028347427649527692259604663538866143464228424101199027239432167389085946604423892450834714684267676740072333469712469997076515435127032047212292063114628038449901810036633552496345257237766172578219780909345545515369414719127677007123293932387803862676405438710192499729419268067804853181680244919153729717544715379440859840437499775547623004371108894605218851357448450925003640596908849521522132968139965726766539124175923974401490439513157272855497762694246604066900879705249843448578794419855620594467336279035580771320583956441179221476397791424161951182535910842267898481167079214824620639116522378357526281462210353135150554040909899849370671325879009423277624900902164150054141627003256896557776950228018170473402963554106704860263108607317370438962873595219541591773785018314876480187088784879418335573300386557438059769184075793988184550614661623340598727358184376956567946992484958176679583496981314724397166091421869435274664307918470255715076799298229079791609755844779330802402711063143057342391773217055697204676305559168453378039161170223307969060199636017748392689548815652762352762018459257348740509449379060444460105780156135784929700962507898676012838759873699262513772047665992728335533738913986708593563965629490824473127681124138207927688291593519635228917189670154424927169588435124344147461717478706950835372542644006518644278225006141719869532164970417951433126746854647955979077005839315783198838747616311326361031601181515820437467976954631903417660322928452539114413190342339519148629141645727114103030157333222511993539604534318516339156062266891624082844584447007635589157097655731846169213465041264159258901799199408798901024700360969990595900670677327284517561836896029028035781750401561975694549731654519637644741988235829892602336866384664900189903299416771950961097277445864252158097760817224069938918030839514296117789095382724267345670616711492941508132986018800030178463767620119544819670162222163751877851576666990022033527058499853925611631368102993961185725256622466358715156423389505305350644153776375241541066665306057223769400261730355310106206933190029140114020310481017463025175131663271622054235632003564437490097797384595816709129020475515955948876403856864484798676945677124095351455819753773366188264333468696506329764964503904806121373474817144053654215985120741271088945492558119026221740735885688853567842348951193370379734409118690154601919939379773561530894678798250372477181366779409403898358423359029125884302162315399926511746139993455893545941801486426845606669606852337133141374308472708041665120654570224605564113648689952936465456443674924412428550739919583366211879185066815272876629682076906876776939468514128918953622786918740693269902366894889757201551410294299846742713255866290488986761835675190015315106230147263846014569569677357026047056415302142404314768585374070169459859080701761294787254140912814533913272874354496017503283819052679536535962748934066257944924043751432306784095162224279145059661355115428194921895252243102613487934642398938588979993151641223046916586981066702619507426067983516078798271985230392932392639772856275984485178118301752268141929676289656470231696305988902384473718582883433585854117726561717212365477807666952976673543729644519889482536754749257545539632528924257346175415918116564897314624354605604836158751045649024547519360022967156646033794814950093936481526923989973155690123609549096724110810941007470457274404069341771853434205152179018407047779138915573449583993832085009846521279877056099032621278438893525882465074751890221816225156260623834686683516366679425369962020181545758924038909285374859751897232751471966330544606005074974763302130187637530363135719211126401411970523058284141480917311712670838450268113792490252277487304261105399214825155591978931179788590576581750454323709203607884106565077029960820688955219918266622715831756637455530479909686321489992574023857316675811161032429118010147689116738126326005740126344827727206836710313774038175238115447501446846473801912740644793405496526684727358812933402553741291023518841677064577884044413074054999629924638357435971738397925066561111054684133298191182975318803152360219440045721045930609656405094721195593062723299945122083602787296178533334166736433008783956769627295561993661827133186547876269610317543052499869552638076660606438363967264094941440635507633514436733338197471006821268187119864543194504360715059272913987156901969301596846514549501787294454500188832498226602461419374605341413898832844550299892534899759207874269189430825410464210320592760664079127841724442104624686636310926622216022659145120743931235214573575876412067330940212243335537536940675879526513818413557759560415270570438427764096855367385275180916738840410670301691414922725781311188478118302340823661952849764283890255881262668817920569973936643168779024425878306354437967156592239256084388283697980034954971366894499757831958989916425094768209632988670085080538132316007938445846051687099446825274045299568212839289960153110015838429640437907706287035106743136334461812681050494656757919357761982981059728953120843657248415323634877356379725369206236053513469602643477975718663567888154250060634827990686721066444071927605294417077850878271127067257608092035522374575966080442611712199366311003849874523636003831439424276412348697828298985524517274599132710324756194083329449424242679327822580592939074883610699743097891001906028109447340890853869281503198001855247968021228590622163035881609033384032022707570362003832443229746520826321586953807890081874853185966991255171100690371839198309877006589913578013444982944975373678697255786973849885246074393747020362289148816141131176422998277604671880946939648648396697366131182869480147450341191877542261490016621959599394851786779449951792015738771372419883201714079094145003270505296524326886823554774255741036640616835799881590051573682254610984705609803796941657983197248058168628674262467517399083884332201563028710726804223295305433813978158450762705462768794631816134977011151154466701612435256282510858726438070844843264274911551286373694255019772377251309012084379912437310358515618250713806500592101411449251517738151388456051500625506083797070514205159185693563548928300505472423225763047168864651963308728191453595786710671812322871927987950827181189365502380760935386115153797176684251117132959763589771521362502499524059893132689043060550022390216803450563807306155278041624172481975457153951308761576675679834620633896925629443835477348246161169345774944913600143022965887989572466913943312660549838716101285560402009854480956080845401351703896533918380790851526847069487600100153764794183428125382243175956211928253761484475207923242941817359829516889416046115238370303968812611889054569900557363868339525595117867740568015796584742410157696236971998608768249448010028462465426548503632151680961660991504015764844564647256069481090915155007039309644208614041678177937550807149082594460836538783578076325467802790142237596277667793782847437878694280741225504473205323980409631924209349969253186158587796301722162461462006798453754816647240189361616209362412007617125503247893076960229472472585740754186169173803787064971811322244344523097235201126283804792887465902456800407790547224914258394045097297170006045653640041056175451413852939813379597340036761458546655001801793865210032813230245095522592622045040627244377744156773414674977945607265508596253274848807090154165538401869546146294277503335213753739618265742634624862535150022977322677312895555885498670763244504804697456420748391643897447968271408347937924740605536562819641231460133319970695763808338390700104950883558623849349394672882930309436117667613269060877014042578163340164992178186030220095919359536526619010140510576376926937409293249524622797153279163840592736635372796552070382366728194421000227076994269294266678815951923889824992025631656217291827653163587719142483861334837332011386948377582930151715898166476023434602649709986282293903049877062719621886416148347048207636063859969502840948853734328069372219287530547441948927599531561065923526220252210982235689825658527268311957975552389731657071603440521615786402398648785526217879607019143075961311275506636869185397684440528411032697810286228377031004626466826060881799472882986418958794169509478123921303218324914927294231935807674866924361902339965634821291104162849240311716065955042545579642487329210751783722896303621082115400142943614276350220506916822420424139345294131253560457290918264400785274783168077823145942213252022996567267218625907139688916908111475573333881943209475027895636376119126547909791508450668716417064129801292063418234099491725324995324669020456964890632183300688563352201190038820755319269721756190498254327108804919929683040226425087806415014133145629751476298584055174485405297728325756310814192143794312153872328520670368774729347679316344728682718765648465829515081078025452093947029917255230173865242928212971330319486678219300833311191442595978888831965945267887345517021648465470789390094706420829358067137672354194298762438270320723762418960838590305676506690939456322567901916680475547331130282264564533737472866730503030245452387877520614133094347918654005733450599291909395555034241778272934685914589337730408139301424556458933435320231569091378665280326275717007489058913217302897717115544227428237693335322378768889264474593133412176227762664105987148739189468033609051304263315045598702773396235996094831945904738030768171652861342056898235925593002533506727478155432844307481306187042719379329799414856494675092278914205782134540912068949499543233663540890685174404416813003718859971810406892972708429434223340040028977311249349164426234930946968051672282244047733798342841899806604034679170289495250478134308111144666858002746386969962511056460319241593715642556351122528743939601198886824673454959532740821027543973967608287735254695946976294029760462214381379518752115857148908698012868532794791991100095423265853019278635303850213295345218312421688477159908580270122153278055015972426050420900211085446213699939699621830183627619864324886990857097682401673991496582740035388574879764835299040294046627830079316369893576327559344835667407420883621907683695027302024290035670027511052883280416563106389122941514500287815457737446435983641961296253098208171473082875779227835339899220847147603331577743320860328265204899497506207118908567014828291300873618398474612217909845659114652353071435179120986691249827879044605180324684365640339539859048171158745195497447096342257406626980607144570344661634579480847136177704399803501874034428563306010971751809226458701422783045073440636126009745163407608053607191271816969466820923763070115158120887287140584480955365439707531409933385073645186293439799437565798500989299118458690009819207535858837858435590515174653100568290878230548128555397460414937955565941261546089315908474550734021502269667522643080120764277829854834210647893745847974423468526862893436613935136583712015874066643228129672276009672524871446169080082782464197959047334223767150500812637469674064520715825575997200670216608927891242136436013910400322940691367872584926043287861085907169511981859373181360788370233320327372801611138426009052492477687913392073983281493405463536872722117612621697550931007332349461574345074944266303313400870747730612017827427410247285093969882168003871654147623834544340583610686499264737826559204408897871005235251814551999855691944999362019373187675985702174396521186174726476718828786783011006367435781128953461396503249212646190036158274397627964838002188586982131283771155999323010397598375681189777181972247634315500389851964416214245241559318894079200390929022950663160859921100405509522329657495520313295356129056565226456971731596523374257684471405404136327890382466433029913517590275334537848866723914378063095351663464526511413476375317450760324977455535673460683155622606793244764857939847456060689716319864624598891337202990398334631666223470978567980264378303609210935019003209933484043544554445479030367930557120471770273726360854395659061516483169276681897309883279382944703786897601260763076721601477950307679632753657457055505474307242862616472222167510154833761934845217761732622682021587422270699292662096144055288371548736055904594095442539952126620879224745689292203338692324584203723726873461470241472214392961356240604936435727098227586796436147039781449552635839852958860130343032001923103022312409824778897270922443426087834268230124192120067049413911112435841277771495926265661932937839243168016127287113616185404851624905330801877309576733604385564806762905208075176909745827748013804337069461509020698124549514838582498316417169555790104539563493030576458297891304110063048820624976077094801825092789057687322550732081313994495327498209038135996016992250268459489834098072355264802146535698620465444616342591542787240484073545674451417751771965818182998231748291193096668633987775734995576725111590626139703699471677809486464244737276686616917560069817208472533364651703667946490690876181977209861876203720672390346602155608276978677115219195380296464702488833990398150833556062507110384926388157418535554822009331579648630647362888998898710694679120054004102827200830659993022626422297565405150070714799020111711592126689747330661975273032840489508642791229616394631505230120442212562978530687055410792108290080959920775708667223035331076855508111882189000046286482524377116366961180148611303747540595697852354925231201748363085509338600274288456629139495186960027073893412283445376257286573030896660402157459071204339657779286958910550573994117148768101826207450080106971310762970913268904653855603740674320111860183149581971803942438431247163022916658445806812893262621806212716738331119625711069614101674095734644969369340459886570527097388473562751322208875234147720796469683162638337025317534230760056337626283421169116075939270348627385822714716040563865250986544517040007267622270870962872114322829339698440935865653218904170972524861668430545878651446065006137663259555207516231330267801038750747239159175479278535544278254355099309826547797760293206545369576637589155139825507177167291147049100179826203922272621814540498815832900968230558722257409250226695323504956221090278316335103738939471302100487591258761329777741693787252889363930112273059409189433071884484619693902801601078055806413696458788977405837212724670972870220913441636892157169573658628713361571787667169633480653168373664388908398325671294671700793795760643226598159033136207141454359245822091503749156070965209503242356313534746673692454991754406185795396757369579796801651676252167651679668413113734345147732836719851110896234286988430347265211031629488568873991548927458128861028295809238999114692882349852689392929515180411045960734357156334293057104880070408064910689895579437061868631981440954678245841294751409310461351247191015950344411735498383785489521859182508264087177605253734751848479485248577907592779436684811544361517074880056065799964736474254474370137604500840567031308655767871199330884551438607479766958821423207339829865589328243014819707472945289428390655627453725594573662382706446520339301989393203241819551206793186967316281900485265360130486031934032083555507218534704676063333343015259514800684718526292647383412609514656996964710481868944473884875632856305469874081827052641347356340946537497950443389566020622520211428434483353585410131524741206839908010229271361468593266604362307676408654450715725350035128089148810656727678808139092669112538368592195714460275159063581451772742204346012969733883216853028720730976639934361589154619435112439030272706655703676655181784153725871564002562777697947225341128137869436590486730652733279115424546225999394780514570729885394835210536755765256429171675799084825784415377369360907630837914419992824930942750604583520216614342949509652299677242028646545228809048696098687660957503523667941979489101976798140692607939422057777579499337842789935873393031534335244146774245817405988630628774510045891780493632033428368398329227504500476549169076072685339738825834651347491070865050039712432440661601506098885303469369913340527335373389352481961609498896017443534688423814256967178366874077067931113534169534003350122874184249251858191766746437806424797212212441271948110599755001040401250395157128372841502005530718453874039553595462712192411683726473590164000171545155739789582139306661782316066343012096721887593628496407319764702566428823447842374520635088643757837361905609265162195393392175957384669736000519721661052703804233951063193647781541595240111839727774744436334720567683339877565843462217210879491724414004878880304105621913942566222209912614172796765253216724874849234145232870550310694607977241442420510692786399917884859682124599791394203212990143691103906828175669507437693210080662682031069392384132307938039904819044828145657469685755734760349253486144186522302959433850903510798010315380200050001319918572426686583486212825060124064866051797624257874281286231763078337205308911739909677909611891937613626424940385049452888995326405990822526797739766216122422859305545895564937339672207033193217751399144867615616712068205596391268786696247134137560301762925047034244544112873383836448328651661183032725166492513753075396422028035591396898204401525311977879081414148436553595068154276972073625007270721848660999147831583075551513571132546981543703938925961210125947218739014518435321037774648118604582795263854744238758968391795065416859486680672605572972449199815341828085029774769555798521039252588426777179205715074824079246909856078891938372455075547229174034716289651699673932198632096235136925799130176874217383487301129853765312985246745444158928711618242755052437500881339403799851957822381850899572525626432599153392291801458249003927935069657819499050778011894194487642186163410906899493798395915069050982134010852854665769532928329125044732029002230153362071011619689099943533882605216092778052566725028671589792818373297404817662828947794643845500607904862131162946554228310344765496151825813547820695876154532805167293681898478534453794297272022475849533566842726129189830510989259429278910092408566880090644541015429850155578902927786744610792660220405103953880040512050981373745974611967519650651959020746038904887706173390249972186438910187719283617262237416978443663058362285757965622726778312907388566514189961822484163944626164246127997517695915231819233793534395466550632756934368405628547357905203827789246214959579170217465744688329298029440317154636109290360335656106005817243459385444716624632876314713003203180608533419280546329391775707467489596190192148333413950331877040837312906363483009791439073325846886883622219164818867280541027621238542749387171672038927813252623749371647727410399244916826201915807662982686438510851641124266147735363900358940358911968148079126648147287019294004843491120226736214562109278295400784199452497105555316241288455580540109563052191520121648982906637262510388681560298750963264626661976857086741846268079310024145374378997204636998583867291262275725358800253248768417998021092096600859660426159562912525346740117289125426432986934187827185311851865898622733144695918880325831013233255519737577300839458889023687972644475174087617541708743110661035551285255876564496897825989591014209764168982965391244952564437374176941486906020276962805462562785635979061871581264983716745901990945730645292014432109655019022742191363509877469586558378763318962899198914222005980048754764512895226555087873053595071302825938244895407893208282431038426045753630654831908621610325455641146832411786188251469464016650109088331840997063954210959075542194349942349778038751667982919624182140045030396243098338013847177133344477367671420464647077571914630701096698279287315666944936401942343025280851829939391763115353500549709928428678010866929703346486780901665481934274918570210031827132756799143095917024102019287195474547693477859821585945625068067356808008218777798889902240954256433128796370030473803998381233053277709288736660804467642402682437711118170440032014276500453848159753239128814355211135965565489696986031237207733711992881515052124208280334551246277769229618188847435282555879129661913644987840871426949589724469949098691959923690836898510895042162137360832181810858581786096644215102900748050819159498826070907063105537794823228212152534198910770796040772600154292887700684618050478607833854821873432893606027579981591097727933274378861097205303792426381439280220896807471800265766248970860620657971833922253139406505071174660798132194779925598346245666486003604506178017894820947051405401081981770436225677445939779230271733068308874179707980289019821186082490375850208137820035877905028008831721972148714169799584579926956379211908255443625454254037481964087329193187542377437476055796812947900829941303824144618557805302701335603839928790646049766494272759756187734978878073331813932716279288339616732345416457148761909134118909224399194498100515371755555048056584347611487382109456687175263954119609729646394399991271774407488938030942384536831068200250158438083890668170665043846226867919146794208778073065333599445814629570606986035472237956503321213300963869922791795541358563133576079284220546261468339286922597079855166094391198517772682108101721782171826847045876359311537910885306930199740921294607722212652230939579173570513703964010093698839507250595865037860359484262822358098561414003551732684836588496527508468869425516490866793076413166102067363254702967792636705990782768641020112809790178222621294064442922358455659327954545472799623012100877814964093484150651484828633682919976854988342168281232738054770025422565997753741494300580260780305359662190739183478369674523355703719187359491565506770425490545924596047322034255368099663423803223014800916038837241455727385852557900378946093307868016213301370697862072933470124846586116540286194787922511921588610849062439058008871603340202138791797746101759400600866046607062976769553425775616052656360892782222403941979984964723677685918067893814852922864556699636861096651617317849758903321114236321992005728360182791025999807720987170608207161435938961735209718586976055062830537925069297098146575899976647630666895688206460061826455896754298104060704768612112544340038481941256136190372925271824398408822125361821833250182922216686634982051290664897792519555439802103873822263567746014502825807272510618510343647578726467995990730743599599691948040963531488247264649939042159283140533968951951110508959912410963873439047788311457737257180940585332258412685532571898321277985250623536321230836044223741641649794455288535885270478460200025913649792824249574829253756038153887720225642106856482892961527111826804765972775068802710397932515747235570505148686398408718214102064624599967636333694899373393276700393545147216476161060667610657760807942712242079426604285533413903522895535299031005394389946751126749894850616807533307023218409582446103548047863145689478031885287923397941520854307279365909542621876877108539116705398617042389918775802614199191131941116098454716850352492960662389569589587208654917927195973911385601850121271030866304076223299219279247662009784971476471520902430919689108529116716206107612514097861213136334340107710255757233321764000673380514325196528736592772773262123930548424021643325347437934279074953490065183791993385957885164339412571408068331504674103411136437174906780404833201518161096814189826806796673442691482496620515890182688458479698638438747602123423931149321959056563968002705937850834312981862474800049930135763846055639998074672604843104074306987788059358316313694037576207005250767451630213224320403615282697623488602750352528620003824993690625449526222212949311839591782963895048942546542527098079673731587936271421826721630727476836875549615735575650175456926633233141745566315545672774002911874983673735796156582049772400531216674536867576333152677172438636330376226834430896936787150634001240886625295953659691952293495223590310595924024328284316167200993387361724985565239490582019594006852673343633452956464645788172711058292689728462822244058516335338439962129591627432433516719476311830634733202440810642704064987129810062787527900968540595576034264070917586160759945854286955960495498404634390559492840310150324206421866919866418666324157885739012297506621706989352259848653490800234474637093028689864994790237839122354392858915815511816785852375169362340875773390104656572538333398175029007485714029816246527117913515711632594174198683615852636442323648835011943434754034302249514582679470008335226901212723647985850237186542499756959002193901276585455121020940837967141911147533759414167221044115114903164966775162339102144791447058495978593357788329622789441996517167746829216077032671231506254600808245296552574892445543142098487707648620371737481826828768621904766677972798250510666886961615946773344727985265554884624568352784129117264792491255732638833049389344689934260818433840142822094573486763018704952269091024273992246927031829415718581103585156070026111312641202746802799460171479749503820480986885411039998607778287172312036440868267584481791112298183178486810168292398420012982547254977502943866764262397924509101199022975115387430782221612874667912092332388063365064805361984554014349091184394180409053678231152883472937893600573088992630494468417170710896297171784664395223952516946119569322308729214071531969984502120726961907429463705339624320642087101463517761971546089552785596620218592805121052540080126617934325079713352280743533112628091390944644688309930159218850516415446019861675164076058551759060870723733678867358733121232802206084840247982553244137494870762723633288726903768784864659943413719574606223686549219047002775074597746114067603148415496090028546398809939999569646075044657745584175593208494974828811546793572912154445810259533410962864586306018541809354188736887909180328734858933834824487797066907835266773015482611110641705016495499238343248209815134201234147713725387914698374260608021903651637961370656124909769794729825885860535573005963278111259728746244473721560392203260786521834438267028623086001707451036197870536592069456921800178984195132971018650302614028150406425469627520115038723337288023392280723324733972014647411662124973214869314492196298671849627225681097490843751269983242267821913590281137094902279812058178259587839517304544258370075834036200448304690930146085705708166508540035771632195611780983906795704769386508569578809623572333584918730413787297245562177619404894907545936936920991492565792116993511096214478924232592384866636300123676220451254065593383861737546266715111042133597975213324569935267794284008460813802566390537212059618934194200543309007836513945899653328117860661624558257692156474371095021291877124519887697544812022049061325006213262626166851524291994930987472752742100401902561509710212285181552364244449351364037019301182527934004391771869798882222113239335852254117317161139186281552662609151942147540745159421775000218968421027119265933654868729057100576154028361619200380953128594104580318910681348376796468324356050898933140988704185114030536354828363423790730766610120976844739548257211169970736799323333171782991848839062547875075477763702628442986134104305536693292889822066685049252600405833389283985252911891093502527587613570178198014517783919604958446006593366890586845080333302271478433754675159292472423172170300033964381223133757177058566152466083718079900890545044334702155344979887191063505011817725737351993538424323012394258291066004277469349109886281715569023184857302856682419785593504068432485919572117754963314197856356863457511502726407755465812039721513481245748824459877338090589199204798550694648524563695927368652743624883304401868566236933384637229023493602910837355615300422024242053007832916274752435359187689918401906813138321059600676081253929301429383342195664432061027181622737813483747133535922096967426236005532115451518595684752325204093720008061194674631451982477027810496090960116257089772672319081553296593686096981412171482669601768244887176320061973006402293874350854259234933782516949208589142784959121493456201165720776712224983569550049374790606391090649768520836644987999824658694033078402427224059287629116910528440919499597225658065178309751945194563662326619670582538321552332390464020665726034899748013507980460583716843973862700743919019442677605650515393046037445045431782905151470019756939948649347192052388434381665651444876081105857217272570672083625758884355236221945978741877807022645701127538146182417490048608732408293488195264575366017738547502277797041537623131165075821720650909958481478909114555567564163069471539382251558093669439664011064797692181080129984819887089860891339247057218929912919444855099400273514397198152396042586908024103382114368969136745924702420437870979641871092147518637448511255113361648897330484781435889041504697801879652598275687303861210324181493135278241886557317687758460783463433165183021988632798042615934307923504683009912485265016114489506040280050331009010282656893307905113243889001405891112075919581877671292925994274410378760760757823777557976147271904090740813005184123091922613495428580966656266213771663962975416362244035676503603857503300063986482221682149195523210838997928717115918875990061911646300733374089129708036962762214345762385688072756497099093275719333067701227060684241121759060553644791080373350883535988612689205274984908022737720610078055696442031130759041284185229744778198389186366737593670241434556590386640101421585829093176943271480950381936683018882691844323703815909967738991132247265587822891153112804912699260510596023954782995672604708482047192004046968458566098056594199651836169685745555675619922339537600227138021655786065031071245569563599630042272308326745359402942853876286115880962608002882374349493120819538243832673706374598746497527011740718069240824910946692236963970315036190969996395006396848300375431972780478348261407948560345158392811421274801522974716891211156995667863771090774090564538904764784614085424896370887804920111301975049600391570100170633818027226552018824350034876771627567916075238850827304710709921877111239449877621688142787658392231662885699041938872532824703423543632429092878185528481025910499503851845408182273645014758960623934721799554795660043514045369630929621131239628893849238062766286792623993398938359603134213562224438106846042067939813499045108349729158285049923664055708242915028010833214642923346280498334770353107000561543970724640445604258673310841888645648767564657652944392432219392052139742352040940851336924064930545696480753192358994925074991645646096986635396192911530244005417722558796518532862484750537762149912546694295843838304504240580956800481241827894045858622473444423723148302527992822999817304639725866799474136696889738766965162269178550552940658470589111180339472053566143195536727805682106973020951574506429444433484190119384451296236218914261042875099482274318680289799559751502699946731730415705164713059965681692204591179961167430089965857998309693566787593819308245137747516068566365913813414766315481785666370582991436930186928795521661703408639300940798315686697198024147511416322386111217017468148622205208695558444367503391871699215723774406078037728279547592300521195221776600917085150138361537415958494684409170713434266797012388379357540298400698188964918429480199279981061065011396002340116399283526787725209058564081689257831209196223092014236730192972453679934394171591382465858796847980964911703557763246608860912486404362688765094866505664261499439183141794735574980966658356252631877609265211261129420889439620001024392269180862407448998636647145901802956061807352198885738016896120410725366726432276076537167318369239925407668529911724503062670597980351976482612633993164724477344936472139451148947614111606040459519807712044693281220254306893296471325748086939422666902042325280537134452454439374086720818666142739399653969108704964128152434605971580708720522602814067879729787868425509471572198053279880571949837672312642956340853842222954981791221025142354442272513847645882312744519588758695511973458634086357261190791890694152149823666425107691206385265070260392434693842587449803906499856136699990067929112195324030868343402748804860439301725740810784091710424295403567265612500097371813610264373464422044181416269969138236130141638341471058942786883966143782107020593589998828328202521488557710335440273553110730371846974290998238115127208707588951511469850097191188403701482225084979624251755267844633190335854291797288089960972269155804288938506050326200072392783680615110541674361706207578540228823509741530264833609543508784330871764595337012911153729781713788250576166483303537148905507749069511037639005109787458682816434521005367510111335341420319510931617657810054674272611473976597301753952061347472565051313407384745095666614250355256486006296781471645523173532928188138756981630914110292660602038892381781485941766128839608013548348825014471962860851846050803962714479925672402514210043650252129390337606730271113824135064101747363723853552730691637371673741156561539913716618910044339582406605172131896062623359280519169159090921242922843733209921605606264731678636320732287101314665262618173126488998676301926844073619617803888152275851855439841239648176214056135573825242633975931722726228785668454909119616497515302932792052797436481642838948936397546987480563444511301477113573082025176719320449338940029201327765802560083370282111349162929798974614864916155715482379056515665444909668853266601787112694260902574285921441565450582825353964025400581327659361097471145359171118422016457639211685938741799512149787859790766481836661459126414863895875479813067200596208151643694134172374333623163898252081036737506284347911072314933432337888526264655569581885720071679312643309735087029877424615250736656082519615318891308137371470498499514979764077168362612495829346189249631608944953118123580667636361259251361315715400806183358775674086220424807515012799174537765982428490130809152750376911218787332241045527135134815393525359515210247019191070860476076055624398974908254378818549898588314679467284049949952361970983798893950401347760255634408301453682459559093380371450042103367041309832470339888440111658569809143742468728167763940382965356295311394121917718154888396832629038091297711818727256464733146327370116198613258817936661965166292800046500085710491245640646976408766495202076375807889658804272269567930525367787653938822505832537911096109675505369100999240574430698995439047525170265592124902848768399754284361552521630870767323676605565339878136474097571552453072938305695652243399801881536564422484984254521722445052388439001886415075467073350589193750786880468477316114373368036433206828561435240561968087121042342488238204514079402178196556628128362361191597191777392368269277904602339704133175337549566620114572627963859432462052258094972256436886025912421026369350793657894225398428425962427943660512866056191112052852294247236273921549903368587768734135257279738846018125031032324514888305295512627838417885296613674798402315361880243216461768658105895113598117489058506120369900593364227064238416914152794646592304342530581127897072808369204703494965618611421961898846322645245086948941537578953187995248350165254325053407233545355356531137696365996803114755623042049230836156300903318225513602832796970314962087369803170531859186456473212494946717376614115298748316887687354254032926037015632669654045100596640790473803741471651614356658308005987803726932265852782382539938594128926168247617622439655346596607849918292287249838946563462895460874869590512871477881651794744919803500315180689136239368574757449900825281220511858025954528346278715268060555866919293787795964176885794020192480081766873909389849071085442507278238429807068651041990157109963559624035310595152837805277338841193030729886847551684584432651377632228418380170642201805716630957358190109064481426238185097991057519380263325942282279542652223126452316373549769057043942817723441117686771815206454757202492293107453448103348527055007927968275355344466434332534863739633174782911813273295979071918725661049162991450378307322074610608724681634631626674468265118252948087310830368018735586262418274233204133080230033804844515901918095845911940205180692687850223423923294145245902864962753540980594800900619839023224649924698175879933971287331813451944632497774541982119417817191802340587648885035854029494380397726002354450347508716871018022667814688676663852799321700177389689024307370184997928526497264772592461662034450250958511316761472896077250718711827105977792308926354045539506652580620068286994750472514237133316836931820415716620261021294264126142537503106540337120138180529997915116003251840434388548497749076511631313310621964810403753163075483267106480891042532519918152054189190972409116139847981476945101253111669577363277232173530742995779345712597722585247118982353674601066502056284694000397786801126613066646027088258366176195161806361206826147793695684957017892727693332452767073593840205782561373993600485434055812575060651119153964660833181684296473664880964182878914744059941443589971351485997960543657334118893769729591043650131917056653256902280662143572165772333610952301978558119838288877375690625029830316905290479519279478075671334473443784181431236137112822503797440433241545438523096029704657958368723918733917208476906358071382467577703744749169184271530234676259847592455507370114772231300621695391502463068334227425791972096327529776448426704397269247386230438440302630363919568929766063626808863985607124476865243807035701649863185335918484835802305251327035910051763940628073035591186930873021076240797954605066377506018572953984750341898141814161364422808538792460405526600497328311522765526858370708321844628000839782993318814646212832738748086078507847863663142171445727619018945154950701577788953099936410282191180226910342236603347432140671454079877944356143511009452702876545010055270159562811072718018270200739662058443372265753783895693587802845133124992687877433783368879722986094839692468700709004503837716950760976903793515656195657522116626830483932368208879032539469984757107967714128992849782666474665697729602799681216956386987239792768385597331743344378441020498508854943208507788342118891489119810420832047501312208478842473018335563196363328526401271032589210578018982703480881499870670695905214716964255793021606480105194093577916884436637658608666150749222317050373058246835328146355869516419879194173021606134848399762404835926677749684912225115005641132889640424513971555641431274105802792062623898133770879608053217645598064750239846636063771172781838026422274707024499827510594256247974836541257848219215001000074601981727851380572079084088389990584408816689630160281382943836821305093672503610429443494639341104880579999450877722776397360400393521148929280929712594268968645184513430104397600447468175475267761910255289351576125147829020825001276078659091597738050561810117412808353940761997790653271850109323114107929909906479034757034616385907452065050179287486177715379869571277509303888198303414584040834885750625766045292192411178767906617196418526139695909157287594831576514790087930428077577127368994543052254719647416704227543450733771287029240801093928516035451267510056843688420894146963706179876389486547203124335576851531640399258847581962528460523850931270124846036075740549463321852109936218472144161130370485670960900016971651363063699630582855630862499503071752324959222904422721048217429922423813944055153829465857902653935879233160137317072283285848231684702546873649878290452222331637674357432888171790303430234969896707960731019292553393880854318129562286698425389288915830718145185995460578660253807471307834692063671781883463404730688167877605129341020350360672458198131053418423638847900311801915853819833494777095432415338895343026865392223350221533271669501306110556005712106923669279894955397474424350399255552288784836421528894193447913512557625013941082465708435246674077864575183985734091343862268867852001081358200376221656300480372912224173748686754438650971750907147638701457603344997640728125428608122728564190245037202327290131481376174849390409709497906600646722087165929996381649788246908153192432316044918321536197187082170400727713666082240039911140665429536245099030020125338158472452779968436221350262435858825614958738262668506518899178078062151381233092295892649550891933270599697148471183812189632304672890783654865372185946656703690844315219432573082246722827124910169039717557358173979165927783553036245133461954150545101504895959724684916175275766591405409254005762702737720984624406202639544809033750044711051256009807135322895759483255362768575091540001005493876042047772903193490805096412027353665589321325707185632747034884814996984388665441344513567384143287279968261487000168959209172454119358559910067279905710113784355995957293445591379784757908753264655017416689558187393425874586526816545859522215950595445094277374103280983598384783906829654356374986304159365510372084689405317176604484566417641422868179689617839422028839057021790165874245879507163796535140716783608097096121313091602304312160544519800343764449500420713493660475881601723818320798259651396741107216565836159833604393774459713891713574242662843158867237337679355395078776407519679294660274094370704419813929868804386557445516112089738575384922135291798990028907562706267133658721020539058169153026614735058868935583701368560465666265880054195701663694155849653305673492662609773645615358832447152344301468704009900560508872466556777339756971152809279872590340970146319828046946798044767746498014487556790653143597556716934706021618154831040989844319299188999973593589346618090974671668501908460924211270675392175482712942255713031155942056560314075285389069808777508424410105551692422907096756220757209762157849932062408360064826639902821726218871473030838750432849135124972140586857071130033969576043523692608707718708685118365549393456992220724269224018326854867786223365929857027646168604499697885724081198850378709260912311520224808114106291802776268043312026595082570394785304642595258393903851755346211709267940999846205686036793082527155415735153930942295439816538806223997159396692935400083926336220432487231846614961262705277625473358099666297560450527896819931260222477786462543131432219107555021692064125153017557557647965477967019943445858924260405365659942489827880204522707475813937210847434366076471602577471213156670206401650377254621515966002407346256599415241321776713583215344234571592216655457647244056606493954137505620599260453607909834122777349465519043733582048024092967392603058246178162844792808351345015343547546386228030712009752765259474042918877496845381531138394362992280532345579691976002418237402072102773337906348332937637417025566794740026206391746906314106335524286210257646175669563550878576156331702678054650060643725624505247191484511147077799952906162961649382916359935867497283050083944860136405628931199148347790739534160503091837133492553203426977581139735524507117715543848223728910917462613228060119211946329811676554069621480937536991224060845570169850268430334868921948988932950374002034968267189450575408413526629234778812372790084266800087869605934931622688775184927755637347903451559103419333620568906854335882677753362325184206505187825262230020156570523018557539138088165593647359473274301727993119639219387042075352072214356339654308497880226296544719855054322895386211662769875273674096241136483581661554206591571091956960597934198731614434962387996862798139523965048901947147655015672955913799865043599566636141070094737971637953789279208153238870466351443682317699691850057138730565028709914558472908883636158979943533993236947448131684955851257694857433996804471711372614204703707007462496091060592214498853625916977849205076120195423553578530609981305558891132234505441605700411727865403881384088167602629804855048817420563530754937546235290620749629167936155009240049461290564702240333940584441069200557371084429557809559323400803837273825229220788915267958349812305510326236656065861869513406139629852660174054663443895334870366662186440683100942585966313317656477365513002591981587690163625171816477336923341120587870676248821758619751514207913594921789740107741669676075089141618984952951839437719166275549153770567397955805653544624918944197133786155584005246818112930087016336212298692023617702262486622753099504132816581241781254817094653621938488124797696182720124163325169514011193642595996982951015169351679244103358854056614150026368726345126593249639844744039000589454434620450284188568085399956900002944484269446087496438392546822199122056456674742755733173225259103260281791700187961650390509316343882239019619594638861341571090226085455631477255135927688679787074105140836457082273595690868825937308715205198425518476825124549348547355318024302795919038390954810032122722422794073790673411000960236668617218377784062448493978473334696413443535484228448419956494236730575772293595560475096308376789455495482845681958834647117280627221328114899901218541618480737513600137908150073882045588618636544956003181479219363212780748960966042381792451643263922757083530305530082956825869950170112445245447864438659856520255233742242763887788030890271837933967482235034727074253797462555219539584750617967279299078577320880247014153537156529372536869617398277270922076450711511674727273362834149135714729670580397374857265133371219438786396462186807625586499822576048279423756205169253489777830328497864352631852392380907920236315649791323980528338777191932296565251395727768299036193221737797769710705504487461370987631301083591430122700665487376675745560849630176832407030003335332083567758429674222297013632489639874069950005222305864693298171071922208227102363683486441019842847195103332908803605100148861375121306070550986579658229080706570098581214331797412765013988210898233609387665497357672704500908320136144334061354613417478347591487787420717057948105527597053297271118352634112928011647185862467967613987303086754451239877165524946488798083522263063355637045156971465841128941594752069697230928365383274056491772366556031600895657682551880976079890502800478415468254120572506538271519636023527651260431327510212587410120659656716063527772225174012096504105126223384767896416907224596994262182122630885848553719179563052645440356511419595978824100563126403775457119173909699954466091541931286234154145527058851486780539437786349594203218799962369265805562920115762968004405568997106240130012988628566550249606114582528732075385753209452855155284060611287784317260715724348177465683304240337791831240050006607880706064784634610692996185877945360277092857551372357863659708331414207339497573784757095372108312633084235661680923830689581811577377166539124999677627412735575836825330961378471581986830475537593505272830897238349022623682629961383180410939718202026118879348975795299121004562413498280730836447768136348885697883210516595144558634595752525666858379172086756293933866611911034874016510803003304592165571089859316366458520043499766193890439887042635243051932233623083720121001046193246998117500027303150934182616020832448014247463554682473817300933201944012061799945393547287873516447387306583892012639914309763367419329452167704734166661388011153293329399157806263031134731754574195075755547212516469972355738281610445849273945348357330115433390426309332358629507298602035840047839249381992410405940688391792669838437707029862905792693549105214154753925332035574955816627531097277459711661257158894748169448046695957893153848563141627676962694183873325075374234661111405898147934980282349441705014237602106724964284758076743356441446373607152076886396944059540742631237252129431145656820920441196179707796627914948302865399783283093660791945466036842461197602774259455315965395161557749188182845973643966484823115110721352085544389506619809555279975476336889673853851960575850376331499418798960302138240408691267106888683273361122632643361886778687793814611848929637885639013409255264399025147690094852277724968700694703443369419549947761615576871357384806835617394015267722637724923765627587146143331037991947908299775948375044810945175668816048493476287778647207162871824452906124584611405407732361339983731407854592119073199060376551978737369215262149394010594831232306031301580956005402929581520091209928327175404422931875332458247424759643811020768552238318710027339546464963319143291906215407019113810795847185800488359276706286485050425022424068944758970503109679438498774919532824056948927434886418285875711147173717927106840821380060208060297434357721505647949767665862081021008834603880933398696521675939197123747520031413323437098803839990959425174066882066486568428986008644801738671766492836278092883282818054289446458780170266570769687128489244470937984164799488084200473249160013024446222180306042887136353060300818183446207633479879705595637156896227585439228129621940991556387338458767489887986339687689715997907120409610823556723123030732134100024607990409464063706482699201323609036309988360449834949810957025520134231589743174447874858177998549472091149413985145017106523028649016926045654571109338827997092613398457549479933075847025048538458855857083127885072824532599248415066744347680668228518263108326229625622357819275439137047708740732641448022453778725223718530636766824715214646347946599804208894600226047250911608322553252495215458163291975550398271764554525357123926257573813424576159939765417422385797447841603963886480068439888130294391738816909369097979027866272372134521566091975864725599445055511686140284572073006289115462565776159704661612533414188258002819534488471844710737522298829373217480563854216254277300973957772492439063914400238393355279002073895943007255177798257459656124038530873262538285625540932689883177941904769747500484444250478809850700168994064110227648656402396408539159765618340863612141079088257516526585918213395805688097493028103328514976008991423954501880500082107879520195708446097434340757591951353027606714074841433741063762518806009681962600147360671276719971948685822619018041635381735457861547992388440132852442319721091640229782811145980257200872272722639793326475133895876369101834334093074686545793026828052039014925090977836355050020150842967335719898327758370995690538514534982139378651238513707054519763414527510981938997119351455117575501915882524545974534546457120971662165458591015142729679747560516684069217608776103595462281819655935238071666763408638219290436245563615789415749954501699664044240708863702268821051503615908828739584174698181294094319902026895828117879547999072276263848219282401962376926677190654466975679887561361086140694057907921415254829716945682873523288106601121952897043344379325820724010398134530137730750414921968910087138655965681437542613077359445580361902690786423375608751818013403813647583827447770578782692258650899973093045845655334024475385839934398625984188073637444783389752865327484489783221283335103866555351287483088275624044489465982230315509006844624412607253983155351549964140978686843161117974045031265176478776779567371614699484175327755532264625687854040604397498523457355028279458037590607019832695951780290999863296393667201916705551064239994921819532783525733766376048087732483690797348152156047001234037011357817627077633759881368707672999446142940276979577324591849910742285626757188476049597261118482781371042479738904502983568861047765585070870153646672712132476188413793993125703550415120631967301873572920112606069700365294167795914933618150285491478053368060915349049828631064291390601464416937499849530805849923400703731663408981781364706346657783009717275927591169346381303403616348996445536413478134228651998817293601022682410826919184716707201587309192736584271770459997514521739822052909070316841942541433685438037521373906854253786390977881643592710701892292964552710042391630034034998632404706772547775819924213390982072515344892266425053684930337867991291268871302768481585037060852635258527103589994481547647004988754435042624350135817378769452462102320629881735012031125321043390094112357379574777356871695271355323796272379507866587613658105506749987135621122490662774641949768644525889908402912792926667937672379843662194065932283635940987230309187865824932866222219981367068427557454839213063207518780020769684028284744025879088168557514362512094135980067018136377055205187171928886677314747357635189251755172161469186709610015263293987196330897117336276163906833059400622423699892816545897925150587006991797206638620118051124737192443960468276521392214744652521508573909903948840287573865006092283687353497680998331793122148301538518502759127736224923397009977691363596102658204463220226773854547809726294544434251732052289674240707723245773849795900688908000252519977505522147069525656224658000071410940927179649711653912248473577822483282047498896686722370633804013277383972083830738868632801389912638961539750832361329742265448121912480256372035378191608724049110451228771105367126780120318444675734958284776022484891918243092451128275967851761758439914479017780826336613619063086632679413007561969578542967046956998328990409621659925289551286957224103804421075053527696433405942613483228079678971517331803517897320396035043050696667002546780325078843158036667353214353131482131129404564031042663773845374015978813980112143954760100062242928581882697606285006769806981371003821735213860928084188367636240325403696311982285756647180195231352077788363931616618290060541826585093086524327265490926246830090707481981013166472596818140735848019330105919571511311302245574588695054681129892687296993601102038253170671919104931517565641823924266374417012868289341095447062932396790811348600466940419251933488119191161522020027085167353444921838225652735004012928343607473902479427291370639828104494338579387548271177802146511319843968037375793289948022797764258219917220980627027964865474760522495817272520655083604381857584608239944757118142223874080084261196796145676668537361372682352580547976781738445654300880405998254518604523372606524290444888370516879572982661862857629378527528762035766407649830628983543593630677563216456987483327916690996221840796143977685538797800978735358259074960521963102682653113248612222656920282121616453545886008740859309890077888387293550136323245896713357254752251205182423874293105341219619389853030283482509107435509838119598976385879549450468686245677631713333979351230770945057511351247516419699246551697430637544429045130697208360896879407210986880279155918775966196375121366031552564400259992154953128010532634567621480864105949579815594613090767627100622317757088398423302326410602134064325013443139991594010412971774131384375638773374497336519690042743946904354441379809817589755309181080149285641171058258537831572855399482238844000119136012033889538242217503169551428380443948071574570535320231181289461040488338664390960121122455343048717723030441039819467049141776380963474526367731129039409951921358408993292316498836048216790747763784120103828399622387247652954955446815763598391313895397190429579523341603167700963691139180063215066756147593409729542454556946753380923400249201139619038931095889439529571944190524582792769440675845084224027455908466848335303534194175991649118096365571217223697024331460658890093134534349858423298305301608323502855687007499099585992988642754964336122393798058551795835672008938775665712228350472548427951568024916191379617063864118407114810893187409927226407450435598767686807276361202932272955300209682910664858197708263949227577363893561639571031598228974086936078076088270541379002575065599573166670644628939654491327547147324004031471287452522610595108769721046916562092937634532919751728706141682517831083232604338387511873923567618698604513397868429745352930039748937989090642980793345904204829265987447482429073069328494174400547502914647717912272458438229109452299268556912496559706549163182007251402271062324168841953958598184628512823761530436316592506791859854362672093276942467333214075218775154286385569651812231229200667879255234625924058663697573251020946214080512764976094087204017454059022115315986752830562749907156224350625377253083289980660179293890565302195900340040330521280151205127576702258083968278081192429727430723432645413497432800539690932814389926947253506931331534450323924778805628793313439024815389219849018893775923056420571589402351893330671314740882169437734790724996608178304635862819638816605820047920299611383870864411261598748433371022004260521737227668811980130634379124488350909478926157177704542236613235607067873001872728534010795499474255682662522960590834897413915462731683077260268548089753000515104007049296245077223308619765225826694576861138996968163301230364841030766481186410023317662658432348156180216833365895330882044057599335797363579629185786993185565183116098039806319852634046236609801016016538201036652529058657535781813137532224252618833537473111128904104347420933014317388999132978649169031232241907150917300961492613771502541109218291459052848709695821669977188535556338025308101707561676351963641609902376329810533273550028668343299182091973490059944542633323989022927190807575972586488991815752579967029308790569286226186285930096928633283315679098607608524933260484351954507844441325830382180260688604803995112845074587184528323589894388904513283046321168006841450815364139766521854421439835280561151478520960548452265007646814679729900058399023038827340002028672686898148747386017648830506752110649192313389171362232497462203750665785275981340099021195787990122986850490724488929448470087262266641735679017501997544154831318456598536102781637795366217556201778950848368180155967459212424763928074389216163591297149426380975414926038250834089372007753807532335698165491061296569688921326521397937575158609769184610765151151071946349677286094577416016766578615873776377994273277737003316289447944832267253732539197205920858747718841876387193715192400079909001435869081141855435544086785153070999669617486489085745106785838608184643294678935148775379576964540820148875394748176309160511046410438637553761398263102340100127592319575749893815434202316693793362708225442220577452956551602089844715425098942744012134862709096799582391466622035350305124871817077263275076796316578221404233384887356132694624832308620991953052780955995515104605367479008787140349754938572744230709309296456605025084297188907616356388246703809195107294957068845558900040594233366937430919609443845654434277720517242412639356821505248491119979635236490304797537646515199273212203112271456333336632081050701981168417725577939312310410124418451254716161357573895834665419265699298375035045028280555033061368969189444691239353139075453339825247287911861175131584710884147026020844843704482756496441237416485818758170088730484605037559215345350258392925805926558656688419132083111251066407294987929159973266096237793991251985487310117727115320825379582973994994480446570855707748331122116994000439603925805837239777364675116051527004328779586742124508040158628072327968099194068276869491602537225826029061763884776913684183147738460825992797765945021118393190361316475151776011943100273727538233677112326796886666806850042684769362358200533460073789901468762231063798089698721724485328466098446200233310998709017768590454590275571904105400363957225494927395601521085960453503461053103022895928070663638737224725354414967551604881865190608431133651370737696746101382703206898395775273379637886029289138021856186568822843804236440872880145316901405760634624958641420680456953858398910354961560362523421857042487546111913489942233148438386781621987123821899043957000619698298667227185791589512412206704031124759639117080988117370948346726378894827123163622591754269539661795557107667057914310619681314718875484857115958175348473583014805281766231171782500193709307654773922024575494172591427193872000682974960042258097436169381577638028568852885297705987322707461107519412647955601799189764197722532784633899258433885780673877217510810322163308736338150495885631775728893210574483503461636496822483273242842747854059851814162111779862096415695730007107404002081964241369572312227976905414245703555135607479746089754625383645371395291481515545660568160680663451625082264829437524506334306110375305802836075636598313679689083630537170343538156150552639093492382013978806179677786324757339721954712399260427243952174489195094545368982748765988003583019008809253046622985761244628677779734483715030981287156555769551720972552214623914111585858086273004242885771090671953307336338200138240585052663327144701250931612608677371862064583815956599846854701785835360266028371636937186268494187354529233966954074554015556846889839164295167943939019284543951219423138722267479757131981835776883344585717531092360604879978259689102216261251237575767771759769451890348973146707236320537310203086934641341222969505841213246341217985396411861945232803578515744319616032745810633489792593218892646878755307867077005672342944408602625122929268584918466533811213145190796427250918661824310261946968739480389671527119220847916384480345588867031393768990727244609479829300238507248399467890645544918190406024414855473984661135843148284673311133474282076985445939622108101223066169918588116496551560468458014621720500095762807230676422910469932815134112141195876323617552627150134313683216740901937914092525655837551835516772939525816309155750378983246246510316403619707035071676247327639930172191122802920899503442898268765001161280232076533465236810588994637947224721618155848450961448474953109566964947287846731704705822172718105716848996590116433995443989855797368173483355664736118174491035602179755670846843714593454788158696259455707232607229547626841275578420289427024663794844395711783040698013127769299402174113285873490306544557930285243797092892614298596385501475216608365753104195362414760255397132062146303049197523309689096822726635983110563555251342258906140467653560517427286079776907721914733168144166392179284292870364648819185241499511908258080702477201959227400350751029243621436178804356094593973512198165412722742210443734206304061301373760912319651657199447481571692961748509080244879990692725451366443628611970997349583167757008790575141126119365633473082677883308385841463796050031791968539790236833492645242371214046316287993474991929218078436094743763714917373296127779843582744970048362722318085207845007543029732347566109884493184605105397662584476937453233735617144182418290122692420987074732870365800677099448798404432764940849724921802978264865457498650916142139324127137466497094418110455747201798955173324938386687366733636390667103668077416723210792497647882203028561814753177305317817446450274056264510312768693146042984450062364567288946904147865705140398236240392225908624977340953676982920696374330066900849291523949995607771201613075503082999602702292570773921165738570492588615312959760371502236226621084935068422076120014282292608205662796439528460179846213059807812211767345023578391526805111184984696189699636313819194353234196939232011585113604125029592305588364666805224229167466388042402154672375983063085059904404040313264927801676245813915827095663238004361405344307551302986809909937924011130236994300005779802056730774004080026020079543247468904384082033035578093838128678872852252903580703094407694430079137307409732145008156310091501452416705037558554779114576183511065467961467301936581791038806243745512261972749172091500895876453658753269920999943312020028609854604169346616540975074001053535187912066028356050343189944674759407511629631639645015911043535254526929767047873228544953914047517900283088602838508341414379412056297065542880524702798253709643141808635424191308087145096730770636245644679469725455420553303082296877030962922487106776617701595410298706527120362823089095243513401482481220968821498622350773875577083161134214672605017674672227187131438955487407033084380984716335111925459498225116151647868913891887450646474810765547682138479067762422666893285634576627251632789858207880258587645166049434862082414234006943066158661820360689228791415354888097185940088526655593449240912921848788196382793165349502761655122941369242482542387522209112644196079395002827273746656258210725976293807641911247209520481365310501443129262464684724845135743163779999478705379073945757432203843645485854634532700741735208899426567709504724808235219195723059458110479183090663904115362665327182316719011364831038516920805247564318165227611841665894577993540806851780346249572472384032683171965222229602834955962433572902294022114762032506579110833107369574084213142545614868585725692152562045463387933321270169969793342421703858480229512557194540497433102328257898769352774547673965860956683971955393504174505850329331823487535721372000147298411894187624678726987235261923504711882565761887306398708064782548699992525555672072991208940284962872355781107327326377544475301104447883824259320878759982960791011427766485724790356667100820601346190005449746460004739841749987871212832496848242582457389507934462606656298662289291819811397368761783373254945450356036840833616554485209965429886188887949217084461556826656368301176942374933922062956289605781975234546662572608682994815771540476036914812613483303788942093681119964144419722057653225947231741006360174419960403990609351509364902674733439311344465228028847054843248902577037172693326090976008780248925082027245783649395784586111401206979391453818637630413092499685002557966568184489148268936761982707289441332046965569219904972763086824477549905102304467147019954080735917249331126927037237199200647733850237085395008453861285069244163984365171304108228933124271575248763156345203410825135102067112482121655867664835131193199532435447319264975801503751696490397270603690800914129211012346635269481064050469491590919238023313233214785708388415195536503696944508836827291789637868086197943370544254837358723307744563636496771009062849176580074351431891175600144323028901919011348684548750502383885299657445345922026364580189955114682420332863310751371440631032102724786861266315575860739497927185623297991851037279505231117986907066714171900148715816951624602586751374685777225487189199240853390526424182284623112972015668767410435072927556232586632291675085478327202079706800829016908416810149195502149382438352014509512761530650726903317280489479722186034847915352616257164727112607731816779935568413407606662078129026588293612212800351840222710256920941849183799637282371481798225453690566293016084785698334150909842491112506463458103829067566926914212789904985663778461479361762606518620520929403276340695221370024807246763630898873994987384900304134361173622603589066561934729610461123666145096225800855139348619434698355900994389456677284169505704811108239757032467471031480042995906825930591037591162814048407064688171505491786234149469649286966951299034941136051261341982618781857687764311847296979839949854708929940193859141722871659629072462605697407495530476239986451854590972735704177451340421683408288745525801965384834453658607350838457113976073739392279713427716722953900595275550283656671959349693127413034756321890911239747756340096539446470991499814014785731699467447350687007023240169103670833899971356446384124230300775373842524287230567089176577919837344442025348048868682026487894174019468722900463170933131310944521829352849698748572577901800722820596434260925277830249271052683865467113281371125343669551492614930205313452585110814276857546077496737064913892988659098029706015475895202149480401409290017629011487526628659174471771996195686681537545926731177925427774064759435500044623878104750263922875326976051325491617903476269619095529756552882295357934024444886077763648862688641332090204003171965793994226008381426063917646191649568848731088363378827838407908640126986450529892950818319474104052827067297309679897508728469775595444931088395751337334177639257201885119621106155551332432634596594147625964450982174254870247669158202823661213072274701828501705441981658990523993492340524635825049041164838120580265780427623934965541371581641787040778143174476169802955950335109078075763740982137347248330565644147019942314492190573620943396871752225803833195313262045980144750379813634017779779576891265595089659661440798089343577249016723101898103261199250280215053309239155907376055326582644404655899192553011724524061474901876065677331545205919061953820248348359742893504401808679614848500639754713182329625708667277552901215737044226920552321090086593964406607325047764644027514936746104369191177246540126691552315751059694711428112063521322136155252582846428822918486834708904347466257105046923525712148051930265081927650095261387618816011528874274353303546892451517547272807538995708507949227783379405944417997140029110007679321640643243112215062441576616878525263790152785284056381766852202118152847743456984904378643083409677601422589708634225646204515740316699246971720717870650238865359116780901003480753712026769942510225081949542209412168340316096513644099666008683232677959810833787368188923683566497196358116515467112258005135522633044763958454907336070807275215363573035144715536193239638661713994825721909969331993686763570522559510714687229793711269425129318986293135076720562558458525066170112688864755230205973242078652738902877839937698566786337604134762916160186689645744580702055760585836411049800940149795335565743337802108077257099520722560110304566116315028929291778693254097633887614933398828311842899131286832631481409729554906962837873687535182528860638093582317764240681081148415419507774611120932495964173026815804768379892410550337745650904504517747942570459217371610430886811323872650313062403194393586217293524044447490310723152112141991928788659128165182047147235745114664214248844158385084686673920639268641033249824579930293095911517890151843634130240994115933973651184686333564708223313162774519905669245017449222308862794896705329980360572059707709323087381569473026783435346804817899084482243530874892960310513992927579830197146900763065946853216379535713753009601589577951932549862874891911405748251684497662300999500737836784112097068108365870513126759411318387162656428532603280137195405912144515172281806516466006121343423122353199694546865645863509739969671594605373588324525729319591372147198331180048672838675831628835491833887708683673760250672823656455225763727612927511494299477217130833481546179766280740731352359135011048037944016050127509064336633421156875850055540756044899004550051978912999038962422580430204201681574589420091149333944779241985705153713620813096966768499224234265863014768404037064842819631682759151137203197606133734589461055044344058411469141945103931742210312534517739712209130110661385674518679316718941490840831112439862653860492944774329473255390582826218596986267580832562717726154208144800799053234957492068994065371623242654226082974990113392366694990235696569675931768519167486301774712783212356989462503697390886499000870488890582946892250378201215653793696762719407086622354887224622573218924084003598663754801676104144493283409349775798707724221506447009476593454231140714684044895462533574714410016366803013811353374746203272128767492245803589485233681899357179487682501876064063524510445893225569334957320569295252749800842014645589327319531944988109550394785295030992403525514396655653072499230525697718826732017383558176104303991873186881193296863903399605932216584470905848544848227039760508845240079870739233718851955517407543674344747173470724895149380475422091030577994334353765217423851199897070665582766405680174570923765143591338693418493208672062668914229279481861011615761530667549034388508549944586027012041859838321160935239025902063269127006869269848903968360304529749357907065347105369203675053855089256437116457572808057693161982456485943099240654825881731124774614824806204178514499878315769286066039053206753897856057092534996012294336910180699701595139780944913778769057476742119823696410470718954324240155441030042021708982878980921872466734784062779897190415990946385246008539037951635427371293430102358873291582014138675510110360129581260152501138401732677890756632503223615535489978223611219367649744250378120119550127390710330891166863518462024478720833874167229464232086331149048329685893963291972661055158438474077716890260118550745302829172560091931430169603767922969217703959407608452955077366518476661077332069950767077426603498430367732709670878731026883742747084776538685859783786251661601533322513918248054585631774744146571315586520175531803969048740115735255552161721755360391884266092343461684014941665592438049644758912747293400814084007313372558547345114733003753542972255190651938910142822057986799493543874926077700074199337286404735993283226192850658079609041740690384193353399151462269064256965332728969590931387498241682751721230609466801098206795149421991235360935144943780382347123331748983325467602055773217707911418848038996359087701443101521734851228599026893087493409535523392186762739338910326220306475320008773437087460170019042740230241628569847703392281772096952186733393655361851435832764925107690875622249401624141785807498913840268265250574805030819801286501071726953346414129557586697679233513485270911625275705635376862382082043975641655746732319168710121969757361417913581485483511818192062792903571549921622285955641667973800324665628241868658988695886710052357871732207105969171224637769212500181100757316965130545230773254110578851550385939494786061738509183534796354784804446007580131962855386727305023201158651352993819586352445962057945755723040020767109652315265270550656954003926316949899279809287410725161695908484754675930566305582759906586222849975179630028587944820852933945129579219525247670332792744844637400736273109138775337156658812003458681028863777291507440037489079723512321736896915521130724782800088790195504203756612868725932331109600595277564695525877666429536455105666548188870279958814384121349249895089479186877880162096016107250658851903816656794469010461724186046493358963715709629426694841875555334638370303120423533048012018427800798756731465490739485177192898805054275321346562181621553491622630246876963381589310322329294483370769143353297431086953634477590536914194426345915066675842607181341416939934779191960947701695505451087112050058647892222671931165044825094385197321959887328526420640472945871022648607536906030252268314040617558019343749662438199741022309235269860565081977649707728373646485034404797384665329851426413092622732192469714823851038938176138492508270109886066055852195809322968608836484087121397310568501831490032720663515210425066407368781648634993555587518251110134814972394279770143651217805820256272587930912101657841293613400669886726863782922371987724087159428065737054079785546732424508633972159202639905021106371470583394492734236849499650487629536826772720181625979986278185414480272197818176778753303851060206258644626390278519103442721303067022333544637063956926636494226010644947404266000920132472516720745006220835523714809044962363050872059458696990975943168915863996266608666974702228885122042997455962852072034761730422041291591455145978245557571007934033687478594441280280205851556825900872213675144584741271605208185073082835124414457945075245796234306832865798407399067762980039220881504882025787056224099117859208120335764178210080422334589138985038591107227402065666127851470039683509793574003540916021205936505065190691989389316093912263099332837857007585054536145933059834197255686913529020132674330422401266188806870223519770762285952862119908026689353001984428890753344499874968503593039284706872094913889583985240026852287237046877633094013599102209222728897984553975886646456832955546504093008938921674694365082712068186094748398615333939081847520385727579526819330240181520137181118332917735027373263736524177137759524349565547105938688434875328500360893207789021071180753856466387373848487160556416074358730703935814543258613921227413937201084600463175244132238936054154716634937754056543131492532878322760338789018481583467299886795046120005256492071081036700356661449493666204911004362845526833213641613551969064679087235804920466742404880212675791236126856078474970651389843505136546046522837323085594961428743367793474591821588746936661008455727009280221459258345388764313872883382811508838438861704981170631065476360417238712122710453646307337886747143770118487378205742118849115474471289069168270597471786140830385671633725426582760332617553393202507650988325573284085243218854868710315044707457367794779045907499279964252126830403788934987110520974046726391517156241221029758643264038010012879708883139392443775091401827451470196415937414556296058959035794709686047893078903189348336008646564916975746762277571445761997613714281648320222898548745182382002505487852877349813159672842948385988409758649152646996415528805812734613091444381702510133828901961227330641516294087890255639701604075762838925506726909498967682624829803009694405125606268429409540014387337242130116686766578033917106379544921662547541789744813250082219534747287772929280040061561489727632238640242286212586483439399711156634913215082151804893496678422867254888792211460915182027589922709871310036363214429482469389841385086030222065749413617169019796469145154516184158828275759959471084214533323619247215665181689510045476043256834262019134166410900427644922345448902362921387799986943641553963922122820186007562523340018650488327077228367674670488578266037519776060992028470076202923107278333691332060048482008847962035308425910954738632103622294098895289431505923844378680016703174648745799837092783839636211520534135448944681756959204148384449239584796652845676632539404675278982127997477378641359945598522673963764574744374287348345426990240245635214051195007893239503226321968496198350514959761208861961994769988052439245295937287356389879478710934547436227245158157387846801903026215431289554299675122266274325555908845390868907989041685067047521144022943148614041868736640543323661896449683363678546407373629623384954442767166718333447878070839812978389215869176509249366616589618286493496730996245679006226322670010372029692422446498251141235515539210653418265788319629636692050835234048794656737067440411857226399539803414987814254373573960005723621622530036464353766618699272400593135707174803403317908304216308069029913923291779710519234637539655144523649874527107204589732888845733231607227553393604683556984542304672062056353495442040895854513877709430155187026879424490619917591058027867546346033849601679665593910668314649839103360649678079728586461680144750276238201709095210517374468888033877651815171511965750573102863521209570672177504713429781640621906672856080819492285760549944528272750763090222410772734344175408101480983971202378942526934879885601658315960603130352062044489321814904482728197023990153737785671790748613193266611061282823071584338491510266713032590806895658393869846354720252673023772306234699030557731821137355999688500668029942678605656655887656783527454262059296459685889004081907515271530654009597252438344854010639927113117172946699179044951340929745287497820089668379518357728991296153649176088532079424743724064068325542602894461861422303778435815035312093185855339321736088396086813109914354158716985551565940469010106653462578602524214865220731518584062343421262183878176080543232810999383739838057260453860757232189666768694909564933798480493836502054338792064553143627679093202317802249920366574832641410992872515406207207460599920474799812253987316805948168510960773279255357780977874968652171455123716859200757745434561232699847468049167150816201318973395172475508123829688223505217970560485029178093370939006387057765079221252890553594695089671112226582711564766053915762202144820351979992530687989629906816515890193372278570495476010464629451768659322980252599200911468572322106568769254287023950605826681833164667190670070981260669480904940230860284916092796043264411454238952548353445552997759329612992083215426529682188800735533342999978269990481030038762972735123515074744674681938749393433321684444622177472958206861568535641057268728581526193879266988227373093355035925301537622932406079707314700010068580853690631582663089962317169705311130770061523744697915002709502487334359432014272269204038344493546348966674389407372417019964722964345716789301030222518982938791117970601071431553708119444519369506589955269360616933536716817428554202378347288800953756287281388246068816020432283137737740800117468714160427919278095506993445064677113008679903489646631316327293570898051286781676563352140657852772022412708394262200618742440845679369275198111722722409247650937921685138073343591730245379378307856117221446353540832208807653581575127046980316544542028952267277403996236127692737266323659786824165354296394673074747411430063988905303836143679163198117949590058732316970041455878198189199524094486457307514323824856031054540498731322800224526745496384771949688467690086106307860874804565337049510164408018493663284201281266981300158411728985148688352086358183338934297364121173998500903488418387863168727328443656391828641957949876502677950344504140975185454913973270504202576298302565906062030965272767046211004373546468010625917164021121677339345271147483862634841366171300476090868898601705206747555269753044716936519614312346128244189812481369405724524975172219118673900193617454148632744054474192220707424257839259789486491453103806054314976913243243467068853207877402310394698880026734115273909900964449608469809765656917894049030793962647094633800277434441068743035056021475228379183511571475951675712840323329577375340552741832715675329706372540593992906089290627249445203712302167053983518062927518344623520343426025645043634350037229011243917638431724931096674593239268770192102667067330198347997201280830557638162553313031404079448503768876118009054082488340272583251531904643210803907542417263469666617000792261895649263696797286474116385052817672903895579948685760268976977101051430499472889005167729096290166758883944153606553288694829336153394085669796215545212450425394945899340102805716994126822526541644970463758281408719243507730346612410334417896168863692972656458966499095654775185860488230305472931276209213157866364144182672371086753050877099210892397016210763997719021002334744538036864207456602445414129687419290212328985350142208201163286181386607109120843589832905663904497380954314067658655597620440587296399718223062707613410009921297676979719406911366142671342921876943539462856475129566959695677944658087066250082539700712307137745923072605655075989227453172059124992270022562797070576436850249372063247237064851402558891252928771889991120690367640738451204680179620025891030139738520477506153748361605572524001072392597616105346688184687083191786926248544935763833386471316496467732309551379328872718239194806126955775000538315276828897757343343955362707664955610685706987182757043955681139589013106309171814183074023606406477675596865309871240067091232639030397783263569849789660450836481154391855647978647708937164873350745440905227220249864093499864378735020894548872535014044323637604822814721386367754124372918833187982810456247047945419556310596745574708311027589828914719664374331620426099628865901184429446308729538233239340423292755017188920619022952426581366685340963451923869311372404157750412198817803365290700199060703397737481160767108817213080938913238074175954836199172898429947538896965892455077805772432072188741519460667741250857370824985175737689850055469149599734751908896970849808007899519601759388005165124884634129519394023654170217142133255536180741092927175987803601235808651256228279538632597552261673698080613312359338855765816629632125196498808468802344567740966312002607523263475136573939170797004923656416224306839286512261663252944235506783935470473866058124923130839854735570556476467323013854243589671397585004928279241419778705815387546469762846278361148524802245216990061120164221980738597480541298045734981364041072168267281736630090363662241187065136365915846252105738461491004768886803922906971541448741042285316661991998853145675777231802927365577518356132397554433959893996082006513393292048755457627496403649594682879424938612957891137049416876324594419072244615642799835963309696517689285408518359815914973960737311697424383057343305723317379931982819635318967099854924310179655589377429926488217085237918889084116391833581521554190579289521491021083602608488039635546459705471729327608550637763504783235413335135084317992327224602663769995343223386433327187251867083766324256216262476932724989751133442785739050371420415436806192861580691850549325590746733351206373721833099125171893968884566909779591271422615653808316491093077484090259317421967558535242465509956740459063338098730406617862804512133713752617320866800137192954395768048538958361816035080423346479260369907446431841745832076158270471208991344366182123638747143465892375654289331188565026442451997475641226026961515387422078265777964452616125813434225727427426954004846779367266055796003456825244735891379941056118731259193442747844000526974925442520792331401758039251053534227322720177864462499301362559232982333563702261260904145057980609584410072990512424711831503924861672231681292290278235174632567874812301247334671874120144484124212270572050115220915341994549136007661917857929463371826685950964926082580929111537581296461453614781774802522526319712059576198979976284166127396817140245718312701914866841067013947515309155623497985698102559846236790131824832506801096092687144986752830831838812165932284263457609723964244833922466572227440725141987113702827730065062373224156477244893440504510639282008455852699146998957851969997794211843216768626485584026213169531523950290437887399272937347511849557069246250236172830905021797837589067085962116777258834642901829664238410803517496423875859830163264574404194757283201124887771125119531898125933864211030312849585894138397247175012822266016822449912975816116394797926755610825605332404812385016192676556474368888816175165870681994578092381351802803479375484912494842581710571730779552995316331251655898508248461949593646571309535037634736068013814924974919907496425873607916657593264054059240556068089908320930724796238710139285008222352789020503239514225428278215233631439537089814792896219031754186869430675174781018357868021370446032078683594612874264891492541365563288102009222383715180902179908925706509321902562906660312031766378667506671139816678394506697334690682796677348805132592697264355025859227945109442487800036437163327298511559085787711089014947975837046697926377135199924554388349987206001321850161684185926590482026759965219681038229060723823768418929550272786801474460116116330888847828233009311523134944639810897323430676699844985919283886954304891763055646621578913327193293233141558597236921684318923179060657541033514008972239733814942215217434041051513062268718585661850846177184681224155634445767903412635532618448799702782332257142490406557731238386217993955641172884719084933899000962676040633883402036424754540479341143957783539276248514366431660963327837224146097943251681909073656809836268281301071372599991668945450035887236540984641058097245903091116997181093958165502196335329987150941646439695347442107929762818641599123291674479177272773080363499019639511517375555620929519255250931401505456949568591611549661047472939247027465442666596618729423507780890594577109075255472454900402612382082269630826127848561656646454865335714746240914573929071800791797001104656611916277173224693845415817822911573899320458171326836476063378137299686701552451071933132137714041417241706772604237677857954500189632919105188678152381346474508501506782447844769607655832457628618709361910546281800446562653761749016810859057595826042053292334408577445766398303956321564961821167929605454133224268921937779665672824668137865771630549789504245117670468559357625492618525867982949642954501729546791996557397726712805807779715110677033900977809590725366266989715687122629881194663530146703738593509669723528475385732225046665190552348924538229367692702665900608394991765496328824796750844503168901187098365718318014886932832998703788194710472879501153315902360049340092271080151949491292871454695722943744314738414690471973575964473624457374200350641399536947537207193430425830932670961336959224295259513612681303288208136952458051858256483014148524698267543699274601942881256122172582181149053433027822152724598968702258135224903068355263339469969214660562799410933781951481504873719571727991370444039107753731028611600983631232990903841801891909367390824417199574097834260426072943689674264468500428615144062804009792119568856820122135005963527473286067700785205722216050752319308142872602101220558723567019033629524163834530111043078742311298523630630848289020698802328912791793764692192881350227743949892430508931612571627345829554429365447577521885033273307334301111929438340263555002992821004603496461649593201562298728382694929108813033449760682938038111596940872950209531511322845006127337406293796704372877684895707894528896701087722282477416091591689496484232195514540340072095656021317331452230654459613408827111244387806349075071130450291883502242690990718086682914248218306877267741652926021173559007070264446881367462773640702594933629497140508789267300805410567496785414635693654860332123289151390021582207898268476824424787173886431888916488723097234818574621840567180628663338334345619983222783744922357774137175649283785142971834086979514446327747705838112400949029232508308906482497398611891063791509141762507403150459103859824994078245797691806352639996328626938198223286969643164211247416877332668671109159906117394747413392387761837736031950434278617507238145301230789373054180073774504573861597408395277385069813173403207017670177718772318304482887682899477268955421360826472321338053316499300847598986008937980374222944794118259066922303588491092077740222210335843383595646021711630085526145937556747666277667992008812557623996780609500757532003226953456898709179234786453042869534889418307173660513933314175335071804238831921434983065885113840030091153852221437489563825487354555272874054106256579798387416043862195648744641201623621681605842530310903831093076300769025763449273426935648592866553046623508638835688802152045832837862186865399609389280595095471764154669755370026585365093737084865429831519425738947977401041803019511296463090573471297735034937131618670163589434241947201285732670542356087123161407737704854678230769057313881204013490773523833958002704464624480813980987880844569952568800599574688602377071829570568003385561238954716144300484783085257563626453279236363413254319295380812333004965081299806658650101597811554098844937601588275620024839153661528605076885185894602351542642564223257517184564077864217941163455631436139362046474096375494512567223916594883699066343277122610799602551335726405756166956173116503769010071209713104405586724991829523005032675407127250255671203744977191408094405602300905422945410438347886029085319698903704381890001277799178172260034775003330357479395563927577145919813780255172748374255948627987894731045106775103798649257994680798165814523165907592456281216383778155578948370493276047381777164934418582006940381590209701245988320000499690824271989763145923659289034412114248930573327372425488713100913386145077861685489032795925628666247676150787907579875960930042367723639455375962887064377537619564267265796246399406289088745597532294349068249745090257865897015487291482488620643160567272721838900709163195203173600138389867532175510315088281561785134289142974078773128112683698289717003553050912915502123325931015224743592243659147068023964409582782104598853686598340404284482195114697474853382365881849138517239050851008088185989779227490089221526029455822333746567560927431317996186468330718334802043537456140930109768774854467761067746325197877699347772397360241027256375855530753150327873639033101330878606220416312433690534056544101390906032778251590187185615895480072286512833257935225293761491203997702494948797268021913512651183944391103154118276182880131138718075255430163324347855770566843687799498828667974222076193485582626941548646627944681203992386317908600125651450537799015882940820118146672432863746264451421877400987963824970210903155379711807086495240356883336869918205897103743325478369716158775661371302460454022966973053026739264957292103024183728756538480811986550314809888883824011084448175391735029525737300803379190107010843175795508886080912667838223659848372415820157218273600105409635862949411207458120663490309572188502685001288811442196137697470825474046045667033665934785599427945040607575853574542318517671177243872216009712800521107346275042799279435284326733885725277994383743586220087482766137186079622491629073023904702167575724008726644945699666215008516177214121481599695438621307494807225003339780107792998896157954838913579021825871613953704863578965027445298627355057375777686259255768977905873720777056150841594178748728316965371190588918167371097973267562709394987037138016715330764121775548061965166995217326202879474255950897113740397958636529647468136388358060535722689396377138268618164649407431197288139127590130271912221277135900200655396301736726125406131250912617405298868876622089226236119747504554010601586123194166463601776863417111167211184190290074962755123035194328156844595169777483432572843949814701309262285703772797757436681027090381187628278418087466524447044737961129624565869453275128342652263965911599667240434356388856406442257598819593408325686508828058626235000737006473839568991170721662673029069907999094345941000848675232867509510983665051122363775926169670428631093001342000784338447875453875151663257603986374682264990593689017113521780548108628121942800827892823037032650801481712826987548782665297050029507690696473820277630007766907845579414793234322499878494861633328813115904637723029370264360220361709225036293523577136773393022784359159718845565047691081438866915117718855331904432287890461911862465385749812476218156503346698376807003237447610267687348040262414310256076171821581362287437652230046285653309445903767246450182340395271414466354700223529157444504176810490922665777223052899379995567389281813589975683532578371517195833657987497864354651767350609937650737409816055829590579437168642458719897608629683554791791252487620470863714747643649177257404030261513204939077479215204132289933733863768288509432499197741793802109366631336755796850275526877258143800181170034427009723218006698701764202124604742245883388578746404563705149904473899480074366307000697420323645978218516399505559221182548787141493244718417436073475073684943937647175508846224208750904646258600188807237815561507016754538106687839766809006580915177337047861069275571414233068811997135919220628626332826192768647491101016690177827955857488616318440942216075833789479768523776241717062397652585098647784047876339353389599392679315143556043380373758390430133546265757119785316192044764547363769902392881807184604837648278582096881631190065594870888564254792616338633500888521084659246638234228726417744265018068786075531533132228788503819755430221486424929082486680535596470977872647669925131369166191559349543476482167609554447220446183284177389426473180278465484281164641271725773746489520370279549427559782879507611565827298856255760849676722878383100865538873550427734464679937490932410421060286040770889827413856089204826348480750546009510684755501909659427794160068275746423489591801310417913461612586739403663167770358797556160750181138231452890242506809050648540953035681012291491997125090031972970049716683132839454036549313798765990609315694574694117634798595465011816829213352585939924280249670771036920062091576506169747409266179589489544777969247744887494414840435380190175871793753188431520499292168840172173820420943476337222084210980796570238331647613154348907478355263557685077884591226555049058923020498551635748663654389786499374478605469003831863722334595863836583386125890776637551319256771769140101339892159240883169944283595073040575755372370374388868950912665230672087728543636173724315442164164339138810485184257189618215286815482109372941142218713602579284193414335189057377386284934073474201619515726433377115961291982745356269077805841946201349797265066630328765910213683926585743263874631362488520783033973806176084856608964390104359614008900635391516990713643353471999136006693984623578263179589166927966247407733116806613227852569493129603268829566236551013501053248444993557447905946136785655869077822836960073913248714485982423404985877775092276816478613798237843726815164248757395814579658306716940155683056370348069187325916551426441279281294490014910765915345559430498319436984357274363135238049635156167673336609359456622085672753617310904384583778468345867509459158155352676346625453482365729496302482301869515397625545354857098573944930228341260689230886523209259309251754902525388764752018153918142937424782399334899534211662831385348581036928468011495059887102461015562872694650892345149948029711828747893477546810934605425768276782439644964853082448155932363786017151808891521468464370595639938295024716442099619175043716639914848784672164242007964170959242918702271280873194220577758389360490771359614581714149165452932671569810781383934292917374575349344929432273693880898986468794788990859977458876823395897295831223116801003803663407492475010067294606055012745882992460802317316959574724710756194509966944346824165179402767567850897984857350592198948822441954131545757433920691339203978925563216042641958838698072778695536603700561464881943908126523488833538223830176223018243322520017681354712547963955882667365838840057992709164150560922078235142156870924073142805583827592554448290346953077623666797033642552014170617229078560869241487292192102665299947223926962769620353389981762818961111878587986621601829205085975777509412169290789693627490732953552112865994622707462782695878793691507103500176754833487252636249019645213183280957936837913391358785654668269650020036851635255533470015564372679259649044650526042085567583866758932648692764859598617647810993614086866519345853280447167161456051265052973205611487495155590273645503462928406414443660193689316774818081468174297682730250121342789438837678977329608270587480879475909320805019894049572966388310645451905513201111709703192533044104804729618529475810712804675483379530862978915408641409397898093521313098338646128879311677710727167592557860792610560582645095579242948102517328053711744557760258377123376810047602025502606598594502292138823305118112345364494387327367176289533218705399403119903717090138394803301568328872759764195887687470929706514367559166441423898275666231899908357058928557678902393958737246508958944984527158835208741459987615905495500286004990084548683546469628627769650905798362104903165477819574196692231105485848007295741092998953421931232767834013989170237117765104399393982130143270964230796574020891718807035213027409540153595207967633686217105547086518198527036491443924423464681627638127044233561585679724466668506393584534856514048315882341286395672760694315869672764846802085237618394453389310372552028563153923468165209965134983133546082365199804826803175109558229279299939940878279779227250257542534683865838854806176631226246726102128420733787815725336248530290910393627308828179093227393133964858429614066117536442628816478762429815870834783313622828333764799977032087523361368219246322826233548915814284942567255646263546403474033174583470190152263174817602373544943930242119372503601607412500518084162669898362626616163263010607987710092519277364251436895845187367440302410371206862300364861946296383846677589919103018968041218814455397766233571045573900632830047946725115726444966952880931848100565171134723845346320006692309084400755089473742267301259960218404065941147675538328122621602401577540354812353219553798385426660698491730932620426094811970537221405082797705210566799569425974722976867910668085745504067323033162020219593547012273312492171840033647469232375154657182526440482478553406104639253227234553340377543955033184887346842702115339180820419091682092194244496545372693697947102957764530445680884840014661877387281661825762133237324563245320130266190842771127579661607746181364778742291841712006377213924814408020696999368248443797799560707260396926645066070297343177286437154955767811718769087884629102111537440335547457288657095895840494845685745247103310550191844328807985533745838728696412374465014289354814460643441548248852331996313396716275866258348579847004641875367191735957388994684517841398235956528678044400813011804926550803265579915685668071835096380004169992140201115025118992055934255915410190778445515751494316770298580237807821158787778792234860945864327496912368746871921874969431136689885367347552998260202445571588101828365727923689219207675069694788250246650123701669725232976798394118399693180456563588860370764941005768940068070955069563202877857573503103583165711127067816640899401521597287243582374843814322190513164254665567044563822717641613966235961525188519323312612198132224899326118261022639199735827412193878212125575393043969678993402705539123658585894363236677320959125507233996774588616049183148699533384841838150270533593957405420693601807268103918948005077633627272132521056848373951618463131322536660526783885974108137212426082649046506144674929422019155141335444309642654175228281229995557841306788934687221304841918106479672899596419045278804918944440771637133133432313672474505041851256430145791130696924179617091799340918456634414027887180233700134912733969204856639429141943968910088824816115905984342378496055090722704362521479081586519984723131054467229235829765350816466744242426246621568565039758453201862673918119185030498458910651638609274194749651676762160404818673101078546223267353326702408881009132066183043334986926129745875693439253601509429149867789614344610640056583732157220520940827301233232309344755439473316732950540420631455254546369439450822068071447872644770108344649021476431881838100453707873104404624828795250146949968197759637172743436335818708439404468241667251527372051387119339015552755523747543250229771877777265196490043621830047609570812250056941255265389549185403079364151638840807691550915925069748625884250305718580757727630850125410706706625453268372731150509430198503525229851007258370352229208246297240871329324801887477490729622360690060857759095514659107168443633533042415065661410292186331041419113205783682105471153311547998096866097170594617977317360465396421197487253470277944504680317280747161039399056500835414674762676325401473690342539092089244138230078372652705035107618852670290120373994040950123848840073713915278327300331463427433801244725500685760377654011641789793201968635755109496167106798775382762747224538857763729225064484210980204718822737802138057427745152319815719099300034510845014797143846069785370762093001220756552980885492222957978416279701750049708344279107758183687255135661090309304414975803508584198481695651094877201235704740233176146049010356570319676566066149936217653325413864987224986926004468638713715024703629631805504318318689831761795957755638299480331763594873245205112077083370720519364217721495497776928291776988596955142240373145713207114800957923366578972194477334753511980684431172197449366564913954705039982435941341014718701003991800430191731544917650986744405287304136049711460425654688421658774873338201234950669538598656677343379111906339160673180808121276851854374279529765297195207057442943738790692005046643212573973578041827000152490787882835924066643833034459581419234237823593702315325147963806079649940443208027617067793835761250741388663099939682451354860084187105835311644333518969239807016933879036793394528678659251850344081404576566378673886635402050377203699178720739508442988317699977203827602899279866686222903702143136389390242037402733377601896154068049401871414171677376363804732570160597438936021411955625038654503476550693827128605395718854851687903636247206857909171863885893371097621557782230399991344147129843629666140197576344621683370105753209065941811082503553971118791089798744178854027048381292409286594526425622330286771327837543889770984784983879466593951391669347755480054284253670052660607847106636508019628439807679543158551951285746137645882332481979233627429566921114625047133022833492473698186359095531490952711633795551777183354927970633432385981848348550276148952644004427608159172775975756841976471983154043390091111467304635795582117963993045155805654218219130867401999212385856645478522501696400517741506599292051626435523477750632118139642221621035100204241920485225209281159664278624446877518708940396131715746464342555038097915179004404969480970997627970675511675332212030807187987656959575345306472630110247787983937254706850246831741637607905039066959655267103785943489664170971025363775353148813559507830617955262779103504217321158540580684146314083368098117112004438354543282679155345199587228298786460271558797893180600756787049176812615293010965330195377235316472310017143348235161167762863546223426137392286418244121473061871197416397109833503546926660469730738728186246122106955775248187492811349380696708419161673534446720259979035432594421091807756860490085990633149627256844808405606750776018681957304119923738558613477288112595707816912662561559445624114925547015828670999887555477519139607084011472956115277686225746388289104394663210653071428134990809018741283357104284700070833178262969359603581627514449230879946467630520952788090747509903329454273172567544671062058931890292758719680166085697462942004014248747115038715352916070236138097172834358406756759807749945600862826400464048358513576242789389465687833523322599943880568699630095808718495002055433327419220488832042243860698758789767914781134666197308205330802266006524208561995778781835154012000414168341072109575433286603668740280957578773518447022288217359657315265241245341753235709358838207270427108460934735676844755716487490022475056835782587939945363583539701743377755115644278779684935950702272463144302047987023850747459809193920355640830441917872000049989187679923160353452846558089089289643859902651812967860570302140501117949947260955630461338675679763608709088940922274628588699966962740262483210826415467244841508025965652050573114082312894775123770633570989801361342072085540615720346934506016378392748639268148373088862361200904412762430091720368033286536435806300149520060918278460672401008330533971257795723873976986172394840604547311255568624008046363647747411376059610396846080958075803882889881762737912510324134716337787155632377569850087694441210068814868035778969667971551075440942148719152790370065430878950415206635825263211118186227056138798388047650912395555328244581028742955285383432034668859553223114781088421990713820188130953963511541526037901811962093999132523566613755975370569463057163985497044416868552291529610731563726991114337830116710150335512515599569781462893436475205616651588603778087594855667082487604960503096230307542439603339213556352280751914768746176964314512461930555476257544418581737816969434799075290735902306156352900214228022379689158240563767116287275787930146734917022519972898764473864139431716422631120129541360346745765549059917802474436657066972016298086248580181993383620093373621456437337016412511043483790267300733661826861701930251179779595223168945564489270886287102022408767383303218406226971158862519691078501271033089965856256502858047676625333058702763027794491769333400606627861744751243689424891060805693040113375254256784390863825584465173153335339005119378836103755868351081628313392700171914464074394514996980761524075413105028808287945405862821336260332958552858221985888632335873244447192505658476090915562737470385329059391247808336138110755085461995104940351423135518855661460467883476593221927241233472870010998197958095693394668367934041333641839883882765569332494014878467692184387412948967224435044743087107638331182179713032600971640595203910250043208669752063505392512801195612519221714737875200811771557144914197288367036524556265637861934128224795388082782321579570461935339725750232150188888868461140924339690093328805883506557732387972837503589789914499047152403449725127745139220515008740225754138996338390290105022077190668369955835573086032266485219225549897662744210464111169171881153432712177637576509327533692498890422959824515419354883345561254099727994210723305076547950484929361445622333051187368736037027146207275234951153392568129276639697815382773864269857786331509819065907233032855078883468322532538886867850981313080510123486952612805823585905329222217661967620053055580895843047400635529638285299105491981351931149122217020943259565691216824683039987510531298012128656390383745373533094366747332739260959851297011732651387716773922698930071372343315959054367874255181565442978343600237669266852979600800529199455258660918770215962602394856400776048567615934104695706465634224254437327143575896858113276693059473575033702727990252677830611986372143158751609460962399996644566754649384730591871954666352624527206047284041162968785699979191514003461944063137124897631683944406232052800247563417305578192620317229384015239476157796416735151245102193612735711499103561893050650697818456200424864073190622518869233497608179374024487074279416582776273337880869581072843564020161101600213576849318967244743845633308195069057513204610535222950352609956896216959331686691764919416246578704146389255914075142376134203797644170074288009875042511246595935460751072054137493443519846872297431679829753668183842819112700065702793138651017284077658946315047504585079880725418250176495229690089225035146543740389994648986429961261932890738156703529901915848109473376106047938446167427578130628717384927074663356463916298883034979308128455677212844310813119306825170465265340559068940674903709347090275157258312849273451367365987463130866788526741744340828724745784954994846841329301650311309003648693265575088350675383972207598234427871300557053540991478661113537589435146498585263711302547282116104481352783689689330723121763981410973316512384911975864966214827419294843221699748004305038602309232890133629931757543176833943272293962644531226316595323133874712761392125317908664343515201467688176718328534589864539373827345772066126194047368267604161997576670586550084184701143203224249689098352252845339620323588398799949647577933952618625328954868686371619655580917539869544826399268134644857685648826752143068640903505254330645507802438484955273992738618854638361552661689076141736630090892530822503775653097035858816500207919004451871913442972969377479640044980443045768146575949200558763541606203283983876260827652972194057527913232590472787568763797264683880016454211467420660403450955957520341504706171236160862375453296010682202649776811864153016895688438848552786800517094305404768970172248501781033051004064946976678884170512148329310500725851075385365185061503370740014517007277254083392073813373120611457893335978600797477809158893492852921783676694313926644557323714932194024974234455344267690980797885424606993643338204047124874105650637099965284376304501966701569148039410053861329370696928867142875182873188181743426919961961781527281123321127534359621237886565531570093427528283808118431226826964988131442393273493766845087049593516688393033633398711873231299394882671473610171291918371440998778592115667016736638366297041985626007602614006708287520905230835966875764165606469879127948269396708126012646691259434059280762647310805501466405956645227482413531838177051866983009268449954707720619333176904715463465908665538687039871987064998480423486683149703279062215270460113947268656960664013809484559083371329791572901340953343282251378402040888955725400050002545030203865290135485734376277260436151502337934853938611610017941113007474349540663038008251220988284515393104602457079377528378544629576467460038426614531237317196158983861264444084364926766122425103059206479423962941091294276444975754233036010438622880237538242936141255357626235748558589836930932616912060413524116839208279149944228958889447597523690686864862181607822305209458062739544392196072926377709666667383160979505660385571428241864200166203980057902612451773044762465713027904059030208458542559058948986770997553760650775949723930978604461929702436447111646775367632766664195424918940438012959620339079906881270668512161855500571277683024957085231082864716538783910772539510188475099301766490928272611041989376446586751361112273399045964390066246671522815145614147216247691160171314036830141651597611874484009207729540644384822330577870883847289589521018664372182309723065422495570094350423033762354215769396066740967910470892903653939886974579942542459852597178316821171828046661056612778555817152744329284886680714731738615191881240538007813504641447491331029288106568768970755874761785445872178749617783807572373427550503293258594227249446124768379943332623051762251467796699707640267060249634225393349568312451012915282503538632415054797375950443143003209632055090624481961279835493811952245175019980388264375888245876347628169762722899122203321535907495406421029142914646047072375091567597994210714079641873979970710410626603809754952769326505068594813183101180652927730252242039039855319451460962750412906474700516153536304210065355206872315253005539233586554148416722532841294945562369864849938570882365255481892851732990093538063028810616189926616578595769288725648356217028023598779359483664774060892132835280711179192737046177519433022539955050842630389460873560718479164962995723960967184873955429127747657274332203881604554608181162296515959650886262793697565867747101493392952100066170479743514897976111488870877047667806827919363019198467165132843751484096168508091610751856010123485719996015358902314074850060257853715418278756269892051666308743138089962421041281969322234370420148304177020819667539819074407132399887957213799506632492540262702728806055948847279253368694483365702621417476725523913979446747569820536100771118407343079900950053135712600919663249639147346369558138974180818102430480705862201102745927789852782516011842395316131497549194876105354582165553378034653059678740715540827831542142644261657316779133278356500140611816514420700475962445726093461898976565672342592494293906974656473130880891844054535025805184866830940000534523473205808165253437568360323082192996872996356208869847031819199345071572740732444383642236049099033718611676013060013153391105397645796250141310256975217192420071020227026785588371104585279232488709986790750491883128650244997949160063374986906750540027770327885978357130159481198495403931562959072568612257986881954109698324633243032710652379381747394860588314895815694681521188809825375511985179589141443539537311228725367353036499984312983359416763676213122201684291045899953960487731256079683937095605315583593017988299036145584385194602324112145127101674108748221687715255707969240387042112898601138043166724259767145069795339035038406490123821752712661022934006315443132437839354457748252622409559835433129321087817756597455739758069891719651106408271615645941625391427199292169602782113426319635548464412010793586484775829870583080093356032368963408630064463099827662218468829730418968472044901217453111466474451119646066394213416456820750414207651635957120224636733705175352809274056154676333260954336330048826509482624329504930259927369338274417877078464189734053907863862491009958645330030688784998552813748394294061339454691235796964686008755098094902372540068547226075724635436213258924131675835889497407142940707872181036307842233026740238652394034423600438899348115800864369828934319004131172633163714397280982867227611039666768807992046912261827705621157300606237980257976042345111964613602899139452608507668548662713485938172139053231268391553877158956914788599504382573781094799988225638056574778429683796400667809396367873640389669489953491824339665753469807768868081971711179374956643420625995519337149659207369312820017537171734831361806343066891328290326566561218574494541816130479215721310413435383297009659777271501308975625482168831027656784464241123150597369783215497210269939358086635158563580969764985623933804852599092740549323364901969364103350302029229786208545261209512673611861819668813049737569464401478814152130100781355330838880915185744112090881418983639191281668745480382807143660859982621231952353073902964044511455406262164633244201769961154102827878297845006067739700146665469220200897325830862472534968688692907803523062556483225169630815380330023673083592154909739003212400638044342752610394230806874485248153231752065367715943247521512274800174632996061323083188834273503937143149974898559106622434665487867017876985046736697989522404297755308612581437555384169183124657892178731308338735127995991461635699037224711520033933347765017304870689395384939648372421431175887354762752627917857360920856176002646166788219538886251761322062520668558382515417187087472790546880725089046718199913937991416329267350859578926878986645194410404980055928301901377647355595512528504146276603404396920092728138668567556941624831795933588897651219211468255716935872100993062141961725370467685042005896645629817133320231666565354198897090213639007780255740018039261404918547633622989988398734878106095769828354217582872194162752374467771490681453414259777661281046444053965993290453847037257939080969511209165041866786819371584958198568814587782564704074814265924816867146549063036796648849193328974242469786587230081937712899701783391008494418745042391896910251275995389912385393953466739762888352578509654097314107919729989756059141482273898009107704065961582814862602002050468753246327909264189301901714819519140346979638316173583140616535243101753795489616978050657972804952139164311162153696295386373530790723804304805111105559942749146620774989936491555691467336557863727097527446604706872479100029135037812562967235492552144322006594213047572736492842562310427734388241270110653423535130794820832992815433844418012557368678731021738903296486789816725120614621378247030383724075285838136986243803634638209952018789313803018378632592995943455092284915381909538174976397989341588611712975458975799484017799858831211478320621017067562596738036617492525378685459477048732652783433076138221146604267418848429263591976029350105235380262911898673341341396883726088141707141023963230871098131885667759897653296792903624107298493264798549845065788041517711356578089352945622466078282757390317214875952647623102292834628255918724851814107224447148243796739934771891079983789507475008174107318582712417817596673603915825180689626426909460862872436905091378122604462423801788266675726935256564913414417783684187041674713261501121080941748964194383413311381210273610693116339999720119638041677999174557495107821210634339831760628297885681627388741247650579916466510072014549887796882793175618262676903512066723610322834815274415841781534861789498962756671333957058575540472772088986074252695528401442354703560436186209808328190533142259076877641007473280269067253318139442613193943743739071996868874030191018348167881821379169159726340530828411747789920963470059417766921569331957103978427849996181229883724080780550391954593932151930535269852031308892180006439741825420489285539610438081273883706339685807428365998489177104692349559229568442804878182449513558494097579213161332448473427604128279653466388378669174310325449354130905763537695102747114621706299398026334886928762770382281095900135758938396839777614337635834026004193722539512952208581113569570640481205589617728674348794737847851289425856590456820972382627578254344519652914560166785372072368247774211084424052942980669751778956005291488808668333318786618963678734099918823033934302397489985377229867070339463296304883808156251205887168322377160798625321053471963615736210466648263135405430770332309148508573671167510280675255530022899852989084220005646878164140453463156046024902398608230857952885066522425061335242360512022978981500266960878341489536661513369353498943738788141342413340349682662794979206383727108913483407828056495048718067626220958958828614897703681874030551102482086552252516459731035464707821111154390450874301104496762892428148160199401719042789324913536864666512399824586428448805219575452989075962124101969043039048443114140471337450825080341934958085739504035440358737494627857723205529864077155246962717524156241899133489048098200629607004215228032027715886653472080749235236680534499122335738353334844087342028911810575421551331386994349055253596677124618493056636286266180013250115374099783503236038347272313036499529228693166676970452201062037138101943543131182894569794573056029371373779844678547400027654951631660043597453583556795502608411927740628597841604819229478623724330719105113130383350496388040161032859434355991237254838353508549405821253325781916309255065167257076558438956266731968561432938386005471046426971394983151187821099747229849573970000991626728928601271239807859238500422702571134034673388827658125666105361924184235779800373291480231373468481114728837125372462997510156798308386789164321365895502524405575896795185617919663209322428061073101535628287272967631066331644050146188664979484120776028783875731445873487409240485506555336764294491464584384624599366943993210621774167145114833421301155036941964158953720251306281815660426213133666570297091915885206650381898425017708123980480352895258695648107730574316025254698393839852318141427250034472262546522501504535087322851326658107680228605287017982390781558006168613662528286933281891672438574176438822161228610875905253814225509144150691521654463706922252885205149117236654979199593673807083819847070341031478790851741004827063303456296613549640867578073291050696387970044973730809275058411516052788192125084689694814019364105298487230919247550727094748734291767283433614722769575886880479997939136200218121439421991284763977443770410242966881574531874100239544168126688502423282250856524131234953400408419091752541116054757012681838378757781304621613844619945636073239904013823091481540174520081766251232325269298841647471099797314796316538595039679947670602517114492498002068530628247969080064322089241280683369196751298000544558601867968416236770205141595711815502511653541749280880188189262621669975898951750204275579380475919684924877400533420815084240425323072931147456140162750712756268660477297447894136262907129468537160331306087733372604223461953137791163691147655667795521276784444304202282692758168915079267181075306181135845024398846343892693303666315468467417327517736457581440613805821049852527434971725285635208353074149889892290930320891685833514300846719576779211947173277537951085711746269058858373256380674410131458313525346229443780837849925512199227742689547390762393468855255211981155893049289323890208704281378208096632697164688037072575954709456283862519596465408371212373320444534101388543533074477901144423204489632953321742771684465158419058452362916023982517696114952570771204455047533305026979291563615901581707063022443677721075095439844897022372710264405160125490658680180608044747409600318299920004093479378029001239483342268080444321086570783645806396420519004438253148229945384856731326145244853035778547969850076442006034437103335794517239612944861019459233117386393905715307274764569218782192914384095661263638435515067904239353312681943083144200813377143723593601997857167602236911913783745389744584207588738104808245108718743022423468027772978717013340093348801482824983718783497454952369614884337598115811969796586082185450433362087450414288661636421471329825425190709232420368530644296775892047853193022566962670983658108628529854283154535449150652289568493269446032014438012177652136194611208381793011705189567657188591561327838909265719011432446420228740455994529225183997330562445555896202903545562714268150356312634653364637646122474651194500233287468851823889191124568778336488170065702407040325383038860294552136862280924884432382002653173194426091828895983500516149466019262701214304520236567369873964698501300606327767965627229866039899487432073884229313848324197145706236017572513246058862688750455571515774470243896111349799652954080535740335279442677629307082157117919552937716302470408214986920592490494753053329350882047958304015236174323647468600468389788123296944735938182620522488420522790720959129862007098660624818117351086281894559812266620812067872322699961977037992952387841406103580864525731168891014088176856804116951661259157386621412229368329924369049883965961201657746243756959775633918306390165163035407155884272416190733832849466991919450359612539806383797972311233821895265339211397819906535936805434126484025185699237896930163530894179849859660217008522416260109169732579434119215231224936570192921476086405231144365617073177362241209877535243044789774896629977113220975526251501146797692869825866635434954423719814455671255862794414879162810736315412101193626552929743512964820475808623289060392259261618493245918688871104232150985660343076414191724405044754460504567752408652292904159343160292625540638013492311703910028937876313071176353626134143881020557943116145082195647070144711882859300676224706496722247171774890282580786020416793974392391936949392484948835394556889865517445260603656868860803975764883581123893354506929955669920125297166402462218841400342949600598981374217605839660699217835803749224960129985960158000287230316732443416019909970457279467634051219398174474223260383467504947009703340210248781759894846313481616940765072925302156213714833996465301565628191460715100664858741990999498279000867225834473067280512680940720600117577829075990243275693205813056143065216499031677454696715817413912401839608513462857668596938939375329125102303191603280811227944135209115590252019183853803133454905312686935743751371781300428583763630444928229511296234439357776249378478623244816560274031620309181585105091656822870287169016144910180563125437014164527079526874521123298961116019506565945147429816987285187833003671621728481021045662347652587504928435234088931662843058951657238093318450987065778945897623516901444093411610931854807809994585843773193732348417019622202937849375021630102874627044312139083413862677469123885819018936864532374062788368351989406501008334238595143447164290629332608735706812652958795668226513524197811181520291525582568909438068707305924809376020303916022235105205316907738617067413229440781565466027286520264080509879298051060457011659770986273986937128939093304691776787986145965609070567658304376497306907026013548070079424419070743161613456492538645788982600249328810962556798646879903313539421366244282692890193628955716027402453946997211031047473736441688201375652012264259890302030229184086842302100231282237388057948335272921630912003836901351831893027567093247941660124320245262144952546877128829169187302753191656382028615142956044169819160089824342757046942798814796040981692783489192156858626738707485341334781713564256105592067795733117490815066466233460124997913828140133929905766208384776372110605669457195764828003016441837195292352664362778339741935886936640108711747231261794374471570608640485825178487665677161058991156094047521995900117305615404532447935059150242677285669082355650379612541544213565179785813520219375692359139655347023658570497350630901565348844079045250793492779274256361977037369912719482295413320026536638359216455728029442292953530044088778946545372636250053329748049741066918544197043582922371575168933015726060635351500820847933665436293229449267905580607185541825497402074925957965079199234646266668350738282161155075390675174880679653378666361949128597655707044105141080151872846233599188521364322900308878340258088484104705478749750648482357454300027791308162187258759822212847929974718776069542815188283641172406722500205093665455831954509485617122375050616450351627033530292390702542555664188278169163742175347448357602021732522240576116947619966045603800495849518052466870659342939634571849044807829461004500584470541755720095176798772197259630255383896948853452348289200103006487383869176144678099145756349073495577149348306322262668728849941828185900628398926365610945747260630501101714088680156907539207836494667585760969506038794794396102827029428612830554678745559955316893242341075099376896623517795760370702695696722585626318616490462280092267011278843048607386017115153622690837786300001513243630768864876164152960577662214412979288748614078971204530746057279107679897633916603049624400435083915151433238027632203763911122322114424403310204732222904433246673176668158157710793467567646808782800332583310186442386298594061005446510760211468262237084560914808155927508258332327484337414278748750264722533522890563943645796750720164686775142547631180121568737082926333590314755433147155368171749578463649470172513594892978087922249808167186070582873342749986392714095304666704300975236536396392260866616713257616261470669589925560247451718127044268244928164500012365886951943615101498488887085204838984756470088662032744984329018752599470150322732572546577310787749181597433159937315709042628292172887307873382142859343733458722319193637806339210868945067482798998058178575989196153599290279543103521589336956868862026814208187477649828948300663685871687871945574646659483772577198735634670442394995918736620000034536598174530793650020765953602081683635724927011868938446358438446239024614635479688313582669590275048231533521000183813213756208392515292748189106813501580089757548293388440775228458285658373726386161698892917528777771490791323583108491673634230215084512108712909949621723643046531963482521591281657621989052111268742769904730986082854875809562547456536724923284578809867892226673546962415744395956996793216817550531388625046568535331881189349356698428507640430073544706522305479544622522163657619607086832705541422219723767840615299804220468584864410131522369459430245384758932743239268725397751264226734028227279177904569915101752860877151351923519131956697815316423102969954095478152257766906979350491750950769187457019223955253469974151647358707812919690653866825664458342783320680823631862203883240419440872463535522774287433054845239739865049849894238999330189406001517832755145674906782967725676441124941086085968718756688700527371299891057581797334747846216372758576859685534997679283684144933942696616545338148724235129635775806385052465274760256549798371548584089007988191261233693961461750270698936596862439378549059863351479048331824470740834709963557001275557338525966713009376708932913558868713436791416128085250967907681991377476034298257196686859196564571206754682356569389298103384834306367488591255065682311616350194351602155161682988359370001856209604224892457790039307557871038604393323700742115811467115473933846851123870603329153876335262710295179840272154798099045975820350075743809575009223622633544703182367065313256535186249158870361957995445978237204558049756080406647126594942071314084522383724802614288582372674143778355115947940535831439358288450257431657246607498743360525443643690703661721799523489493040858521611625784337646698153951726663555548315773079931246378798936924598557614722226395342524651468574789098775546840082917817104839660450090475550986536452864301920445155674803592918834745026266106816279385267102046900292309708921590286979733064074370188943734375983783194558030297487272724819534799336669813611415197258186730848787618704777336095879990132368921061171806345548183184661667413916292084878288858700350302853945406913396462051844933683820573180951820440633897004165223933348783978436023473981375625115619663881788532547353189085039801311280470395685729104239485441442051839332244875967423564672562007298091999233425624331254841378242989834962642733112147363249280252863652317294708994130154638196439327520685123043363909979620844379875368260563912702757634261181721016302668463745853926897749417252341149071552672228669215761869460558550459154394044057391703397496058665185453372763391380348186735982415934575966127795509420025687854014607764351323585503621940385625340261393507812568402026897029916912357093328273231783689497013097596076460508726410051989309101822716060138383762465841776765063157658945089070697464779093578386915633398097113012877048318140568797340061923461360122096096423103052372573497268131680319424843433922727650064903841225535826398615075678072643589779402554440104672645687504412052660003735133832690941817867920332771567864414978359787645803741065126073436340082795431905838886525294261391268326824280174188076603672351039690946287553881177343968132058231567237400406813492283737979041311548097544968769531627771655586339377008206180472283681869279968619447096036816806671371321843475401282344459986945615571104326671416693454265018157364561268110643898706745357267720449922261321780731700519135377234505881757049186024888366394309621430732473372629166939580196059575066983842759837565268510016982453365994399492361061126359088750440426925302615998307066768218433870856335623983825907213838959300059593082778963869252506515098606019447043815245447880800218460237706652090529450289786357698294820617015959627368173320415944280583337034635129536651494091367992400132413973011077619450938841712454832053049322533780121643584756951599693631656788718007768589048369921448385702156775045819892488168785307203968502496884384197398782916594369144019679076519180036594056883218737012829025199636325826347458084639240105867463363309887182049830060264027043586472237188240616144895527587270378174631104547289565316627807584375502492476030815263053814261734061898954253945241085355404875376622791655665007104777179592583168520226851337064629603444751512719926576182592199380092673936218478374693396903763092837014991510029900217978271268025615304034087306969797623630962362165067080934306310456656318345974797284984129608766257767417224716284478999414102776927359933850238928128436718101294563992178927981891169995800447939332864432285389362166677327638783265699306752369302725005012510471882884104713666869993222920556678942969440907470945252882351335541016189254525678095295545486626439452297821989444004599066618019994262898257237647098821715774818088031466507095900916144549560263999776702964062515591377123538391706564911472325647647241355485040523912115395868249301087102713301395439044856865401315695063786236461882317627753977448898154940973064721365665644629596088592382450693347034094820908174049813445360141171314193809834156926197808838845653237356255322680342826926465488761998818866109739753290614132746370710646930736752585079613599486873583240815599933300382258976144086754452770064003738003390557264667335080296943468628604950338262982770332806780422989122359691125937488458166717558702977861317695517775055970582182890546298551135746490323939915614509138428587764494615561345657758274131963272457204463511124803856955844293775461785712321908170729907811787962968267828776198787526019530572738055843419069988900611086739339483157211776537194692286367547086433612627403503880171022340815640226599783523739501524318485306959922472082966230387315430820265758393852939238483790318981335032352995265334396975543696505649032051221589339038582247136713469807278463945020275587078703898479196095463408511154398260845023921024005142603661303617701911712623157132065395675330800986753074376956679070957099303015174025765069467206505064563330286364461078082686736831116955249830160518080099408381969491852794759440173755317903422594194787870152693697842040358964322878765788443301334276131356396852809051931566808221575762756444036121001809065077188703850061906680434527778369658293039348326176660495889020369920707304663689819081579316191253368006971074869205442139537181722806361112746035993859040649205818598111344598858199058879055023146164666657146009294697539470131245931573120817961960693724793469228835826770632955539231357906058951125177358025564849630743779793326374281549628024994380444600254146581975476241854058902362458757040985584241124012646904915935023710933326648906744218713189641656700087827576194096814166575112639913602626002500551979702913583646634204728234950547427272227361886315401858158581595322623712559757436285912591227520049742584386946900839938564666557404355554159734429964485685935106874429187553821885181851534238736188539834752214496464161523942657939191859165164055123395722394610524892881783765703732038891060220251796926443175642465506478534646167892035648399196967060716910085017286555589576479686140986671477677691953235121411339923285881742442002995066526985455601545171708405553699920534177021420820373279633788216660779560425229338885645207365488200713485262583665332007918584458763237803361542255142161126324873805687845430038387432570576308717163469793355834261266247929712860658573219563788932502069110046652512464910675722452953564722531987782610224408711525235361636228158558545870697164579542911206392833825064115426325550786183149306038478279241791821591671756236253457977667254527280843218350240045985529914489576202759873053044787770486188473268000383820423978368677126433081160359523377721017186250817766483440081664356075256226213917408041490793001565941365648973095586685611103251027637014977436719914787845704232725636258390789441541272844109560561475369178915915125957301601676720760190033761820382023401667453710643143014583515818895465124620027066122031654242399052132975798858539803935987176321851932654602998401427944075313053263506742473441731577748831056142127678889378502313283790387026736148806752262827616577500159383067472133224776445050340012330117099639416898194508362142811902764322637810507191377413933518618480298971094638763862647923250899412671625018814638671820546990690026391802502610720771650586986253480010295516667904665530228207977859403338515125335621011662010161659792911873312856392330882638654996826722084230423922990310570282845763657719735154098553998563146344946718481633741740823786976416534249173430896597197353688592117281009841447201051631705963009460358264256558667338626210245503058453739228271949182691259961813112423582577607212510292986672623321195820164339216481130425329288325835883455058747949952447229913184047697351962173987511252730483739996527499696368529386235741698900453953309750599656081102959448367482939381347723335646632690358203637937316361415034968794541426043151086161282140432760693917251676034619121437983519905639709065906776374692401478004771432048861028922754156615751869877285411886477010948207974857680090388763575666635727910659812043371505398478002398880648537287004884442525260128334586687781237036750117995282188855639400426896957390450634116135294767759794061280516436139694990498992180249905286158774160585641528695763993549593485252054006049253727773581056625819970077420548867888004763670886847688045589373728154600156204482133569643012614527244253033311686256128227332172714894700758950796694124727405424051237403704735468899411691429270642612268045672287941500906526961177523324147098497255909888020699761604352071507994797000286989348279108563337531117520199943216079162654206207541572009342414732942660577255989728718249657301731985632902346561435258909189620279549077758454559018987058484654846321650255011654301551590745064825542843773464655656706583531897053160339595688135744649388363638504112927786027112204621445154859759137642779671890610838094971308144153331857670132487723623902712336502434701606501136900322803932401120827930231307996150998254998680232942051231652505776155551086640876793850970818839153148676678964078086603861963963892617340188698699348927685724408742516022830572182969561076547724833482092819016889855520432014236344891990540389980473424322971126150160903594709763900334619357814772744885440561299308297613966986950638391935890597647680366803529391313059926634564586322131112713084260075245940615924779324778736736346549734988896003583679456542977302953705866178582439700613607784089115847056517171374366370432439150431761012223757001903589935261281228724680108220129094025868936217566653812704249542349345871071312471420807081002904969306649021611421960125727673292886120370046816918543007243900521622304119504038942371382607693873415381333208320503995472823316712849353038300905781333952301911650376004070345018653887162361981441326370194667540928928672994810804751235494757815802421926759996511790361957587953166470780333410958737043544172205873778342155793584076822915465247616093987654957779204036401328096435962900947755450091347587760793816803518677742401173554103277389866412659708638616165405127587460032531683725289224461574594052311228374146672538123854655834468378372272818981979105139768956921389754621182913476813073217186162322678360099809666499154743161499222944561839000554328975370153992665515059703818725201786235464815257825936277726597160663409572593089885193745284074710113425487357772887453808853643117944283270845346547407106732251694073837788026261580130891389198966121186482902580230784444468999633367044984469426310639922671459005243636599150818269111240325351295946240054318339771029268358623134360138715628907063121350504150805670337337335098979064477772231599642783694939515931290076296951886270194676887554890564227587863121285112224524963731764583506624538267138029272951339877948989043839772877500875475960170140783335982732535499921502672234536673238834211588258390123627966604709012158901093021155022006947960567101185808019401328173257189068843221948851665800780119016864043586222627825697271044781294990410944825983660139218323371364280072162669294850581942773377153516187051562835390224591556705782355536137018515180143026317420774719266904272478561446130714535648850352693165589190022044772641606301758466011793934056294698234959046343507375616701081420124600512168598539351422060311326539345805958140558661940309963573547299174537808258327796128055214821666039690539919811041307070504737160316234998867069610612224480612196436930420301575352071319994038397379504828773553037339924748381920918933273842949603752181866190948430269963128498748082249351505213121207175295056028864302184621040815218227463565911763999039806458363276547641798683545605943183321541318472228738674462162139643339005707419958950339725663679435712067335327376455355478264444627329170343347878682285991219505908176121480167886129711613198157521586352649003328059710029889374922868128770773050694010480003347709658137057921981588973903719514704724821403380124505653606658085196994367060888234762680563782481047842524454722127147847032416020418282546510167505358260835089095130200565970051052836937969960715515819618116370762389859597479168119106006513127517595384034046991525411056635457288293454783881992696343044766309733292962435368342489815034026657409411336252428131760446117168078369902302112343962708134089284579078767346213313579478972617436967426990515455143625477109213360305429681598797137505967967643688772275316725859370439104623436299713674596695064043299915960961158505123255319420102335721449391912337835548223784795539453640477159023697575431271785016202741500377383830213961188345554060580034858885145105121631964016217451472709524771873090037956675361704971018621764655545558457322641441335243947721302060276156724680245110480740727432690287900188926083491288726756870897921128310313197248762813985259008737787997800600266013814891320021505226291084873330375348406330070484823179271076567688096993785961299430149099285866692228207294412791261471871705581385165358270935196779662014503553714666016999632586643085967603937860107066684589164608536907430331181154461991912366627967220591039332787927779639931810388328622740838595286506627504855647255607565017250736316659647215048236399186591936693634639180044591431634897164769182699552517536350649712272023218234936912481350652167974876025623711455982207995246496322043255397906487356524023974107075994484757376916719004773979620639183480043413047430898143543332613650769417437723840721051350857649788432102214019245902645822360629869095593521213908824986076665438671409850328864529231423765282515603981573438835916725501500911341084848788538097943235367709333699933771813923663434506833217052230543280555120747203715741287324622676499997186780211483259478730884033908530073342858200263509795775247513270692995439469723144530154200528250435457534195829825045021056244535830861280403314664395664816360343032742709252634807968886113782229094350794881198126301617961906691827978940654696585660381426297356940252588400682447087291451223248433766873448679136191842108597646482460241742161484220537381026828527497838830541185268187077807702130812286540466672209554838949941421278341381833223606081715675936594652389944644130795951044711118308521872349158074905870475134723594131534576860444662592311436514223845932183545114631961225017168574816934470773238961930232440852330074477670049460680982462250665654201300555411701124544046846229734789778056535421369548010717684982960847326031099570356375991613516828495931899409925748976074541731097602195755740197076653337685048888060394412734349565209795575131505413823486648986499204427933064965676691901884102266921283900215318138265505869522767115519629718034847236504405494627364974573116385915611858504639938014364699695828248110366786915884302822994171667674658482372420021501724921913911294928238547526714574550098031970421091796841326267544986764469629645044935175333230483897680759187404589475321634790165691363521438617141241579093451726192479787520789318331701294386414363540409161977287111808331218228393322831669541631998693663066806074940354627665208314073062398617398246206521688555965174593783588908536619774530711045400484469301514174107176813439111718487865887434734131015484625744230187899752708708073130554568660697966488976098575153967586945770965659417689139389110069771321217251072262869745564630495383881905532150672281107799640197856733143451095753691228261552889498369088852640071122146177379373917851014322046585634813318951953012113574155035038562933777581055273831433017989401091909693038722475617526958448189774637987409160471178907071013794353118753570190945092785020942591088545534169197526682163011872119470950412585586962623209977136614072660992264958496218938957517420907796230034878026191522490143468413439196043309128976774236221810201795386569720385145589256498885006013272130458915684762933442084536088638517252877989610994108231208967947668704115989681335216566842286496324327358621445553134099075864358863983263557957753948130715420002578304155034589323200841881698629060278641559017556093404283232344832565442729825710844264503777248084436202786459905875388072264785090372789805810362970783130543510980953325037300879717516487573706023649379314594129914704272093746845696918444210408013189090722572963382517852709620576401441132477340342718562877998144301811654720490419979119412837722477878894374556654496862903852103706135270247612487192904998762446655438748718624975651448224701983518629026928169486932307256866647061132405499740479268360973495297037173949398619625431983709692225374181183165012202317481818567970046067012181094119678131415365416429915186644556408383996870348603571916230132212607234950006013736305296178990007011755916826382436502220748155294883703478008608586242655360986012411202158481400212898344530410169666535977792037056785415953299461515501867805164498595866178025899837576948529762634033056830891625791928060804428621193746231360795669816210874480668099819302523621046125205616582394299701994638451531902560905107785613886613152529645223454556662974061576711066924920439858415174827345285641868272987642769529641160877502922727597310329263429086782813944674301016894494679384906373335831964331325321877226084113258471128313716036801199906823983174219819943552443290222244778160173134585327821010631574798472232910564448148291106500016101268624791761267921396737306394181034810186820833171263295979253766919982628483487857462472193173283058605163587399716746479001057610549105443182944866554364546256579599082744993144563597911330133607250030663362533656922802071557499527981143375140666077577327571145099872178316313142340298853426169362255865539852084550725957192927061591063835401156523397996853951922857549200755956210671396151558574282058951343478090101087072991830101543958673361354854140696873887092487545439348529443419939710588063435870906715008791394410996854986996444580102523284907603922953849421716773882010780266266533224725421467145266854712645186607873058074254021181221701972948864079271518792335187425142559720907469378735527080761505909135302347114831458883571748892720848498928509369886904550083896884537562713746078593992940647102375302948719895033944815189662755989760264228844066383636083219869977523227113503528765436480622823460692456591069558494227306671171312150903035106787443010653297783173041996818923233941521320064709674456839334644842492473005588419725278594407058701694415095740203736197528968335192894705278276042531869416853558263300210890234712881707543919605723914031710175315109488863685479094214601932949674805762008107746639102906600175776217188460343291519796910253849122015746253917426474089059699273804289109681429180177260538167166470390393773496709245349757511860274058561497111634925670584597672614032093791943393050148852185756708742439762016636200147690600926158286619158544423372490757990702107304900224940876321381084947332561138387911695509160924092283497192326901051397053590718346486072792592818050776167399689837507395247943274166992808228895350194859925621045129609374806929433967399612028353251165797934590317440396460728330684684367174936198264255812937330993514270064312492198376076586072094791230473673990612977601009770206201255990454597643832476921216586377250831619847394435854252065373724596126059033553501631196225483919130528464164390207330391438410852679236059363623165598748144926149313062345638806689292844154029524935970763499779382151046502602603339206564838910248299128273083930324070999636458711252981263968937442729569242176239916404889673407252437574842591062333137848564263596203336412288894323566743305674073638420296504210042323737036794223942637001355049479417569707993585133697481500053251449512449195709939997060728936389770433287507611599977196282696212308854785240830341448528919056880961841446657234909930579218941320254521747577342195500665896602571087403049971417762703098474591704168318757445488698275118785604449557176058329175928374456630449718459535791556783935571156497912279434704756818963918410507855957930656213102266649354483124577699926805057781694001469547896526554335164076566563968758759382048948414958371813487443653037552071678786581880207789129806975231994071544363088124513627948503421189717803893044667896795991173232203713581809870792943692417251236932214583100738099743965471491906445871171740260264506116300969049465368604479315966000684262283351406467562724353306097929962940652839674517959274806333083428474592098611657042188201812689018781747053688533881296307910477641095875715808095577539895000401306930082785923718275904145696763866113897572952610794865583787773680555019380081936228109237995013898911570106296046102714769755669245540375728205868487476983837268446365818559816041060090194049401020320544865785350466690749018922040652539583140475146162750080128880339408894283661225943101750190366321288595461703021252828072976788369680032112362777144730664062831760047716830906627536804671300324006640733876191596543825220444485386124996778756127548665932906329677342134453327563788264991025196277966669754881384604968131941734401320409203589173068437155123236309772986302155219217070637605820250484788143047186129937890776704657092337708543308278272239353971532310589009904017511732379500430402572991237888594882893173934525454736270559669920031208875486333100755086284060324953779784239551950150494793429752114653860928370402371339535988977003361992624879297603152364462953342640024155170829054576496332948273383283143367011465065153839899579562078830893043824066841412401144544114506136010497289005708154406612429660038860597915012351741010372637358912273873246199706912935770107789032742442960456514542366261254919251591587580283918918778396180835986843878479245312119903404381893977405169342421079930009447995877238244627285881580609281325431863857229782863348096972353478168328850666880954534775195322161631304171881254443655550438912195308378467581205304825738595424872072374038901576792264372295697063590943373179026297725166388536196390470492178371236318870082793290297897523636839556404991296643582329236238882905738127987588643334605683676151330942034745179447142410548831392244892668752214166724657694841288948274958890948466120270689986748961653520270189258780494868746209186169404612457947302680920108158014516067268345577583646253273729812769372119213154320103839542425899295370600167895589275779205872902458635152368685743386953173162762849570741434251111890302214202005069958887258484977301198445639013130288445674071538033467294328132017783830029399176948900429134148152505351647660494749830096214243132411220876833237000690994310281834051110683971630772666932480275862141321995695012601683049579283063627400550076489823062560834347364972484099109126697537147783404539035981480812367459203025345549809322069594342763250344046703688745897725411535061089599333685512179901890440249628275816410063620291877200913159996582297098073443143001407036054277095289816059284965601129695263345780442792377415425855193792277573048197847419140130921414234108669069039467735559365071693008610320610220219299015396371562853178686718383094987514535449735868299218177260286725469230151222508003560835933599408337945687485102849369447097688080319045255854736850299090337410413564705691796288327967824550969816180230328387490491944902770585997041535968325629581433137905067481919620087173691805373826736415772039184768940876797561895145912435786305216634063516840534164483961784919366755886746272987008636802234948229173975595817885235278481732834896610397982741843154395987222960664655093690845885365941397173197821352797410560805337627627891785530683966122581788501976694458039156546035937216037530819653387510671553683079243297911879727269905129821010247739776587417804494200888662904914406975496008750496424154485210542336185364050838844798651013534590944057323409070394988527427109430058691255648609424304137218881999801101250548083901927240562555493663520663182632227960894912878080155391475654260348929394605880609684800119137832848135283027291388308903659878559444293312904135214247144640405085572107781476593187412869260254295946518206310679613827728514660812244072867297995668124558008928618924134917895762833865765907339555582306632664813255015164980394500683263707486249132904660109929937535714331958794119781765004272711693547128145854082744761717145295827813065327930650679640677397824213970987263650246927561524974009771544866704874940506168996010353665014765435102103306515936585818890560476933522497572638865228945806422471112390912001113783569247278954685907796957427846918956370179629989463356945312782736487005930925617279051493252129236924300842762298061301216820586979202010020643897799523162308433613363108417097508286469059614424681502900209872314601732670742731808857686564269418299761497438887143557736091841462687228011820747205525093185080107835465698051465721582255749888300880153646326100668507584865598785053656426180406986751626805513835667284842941838748788180849808437543491994032011706447795478769390538466125184161634165136382521516338272935670323622982467562853113810925293856412011197896229950779043429538162490605719072883634389797147074496481796411363603896754733563269710974363561091402763216134575740769064410871133780224301255025545784712799272402018397966867958040365420850813162595017198461176742421036980438221678751347512699523303732649909061368704715765278805608147163294534711215041221049279704921883367415858793625536687305256067449956091827163808532865997769475243905831859988604720094026737703275135123788481739873134415232456403713668899354854414896263092619649386320912974204710360427148839429094754608086786608959784921039238595932234259764066206922280841297809455244145936455606404912245879426003417964797971255116249750980489129583563569727038205701175260912736798489282321478501041264366625900057087379087798028108673222732677834885697474585208579300581910541227039734088234898595655718643663551056630406215165859699722827044854054244856852929352378071845884125347499191353019222985119291199827234490132761442495807376109988920037107579716016609673716111702190398762670834193289658856792716468438517381505421097141900046512388534705540099049658969790122879970156852477805449752818234727602239818593210122518852230046014831624273138628708018698404578085396626982039764965171534736724624168465468769723457178301124441357380500776158056526909270523234383330405137475381347583230790008791746249324044930871095397924576995478703995302260581353111111148870834282993973774074687241997156210302001712369946919075685263380956720842554121844649024991698348729868003987385657144784488040062423070893397427362976926558401730403277479649721645068072619102766769533307444088922854430832102390765155670257103031717408579446863353384238218521109879832354924078139398211226020334932693428615765393427278361365306176474790690953708459438039326044124783938654960339036111192204758930806775064007663706847170802415743681677370700830563769629906160656446777503151832980314174301823063226950931612115601540175753433479345858841772612075792155147058077482692443292906008241099616212166358452501985128017659695970349342576495539377209955663686630901344145707654433513797951311045179945993374286269766847995336817526312296067049080773815842848870883415612878466758704111616084955662336405225877756247421292461505198954941300508174372054220880516353843967523086861326842499222573434633947822570476126627718408441273758351405632414413214879734712900278032757925163065758209074867447223148395068104546616114963566596106527329505505938304769916698309471105331024519804323675849991753251090931161900055524281759019797559204763117758935267104041312257059061958938403581280983973199830813314901694153322418323931198389612765533226935064332125119173046001366326921269464296669027562707879405164598602913322715069742560490533176498428335177917556885680040739552722264262083554310352891228042156531028854845342768164248123708551379545528356118081107045966667020981629973713109666974789508026583104279890574827648916222845571066793835879152744486987368681031090798114889183153608893313419565851479968742779254731700898869569381794067007103481642387182850861528098364963085298501008044026517008243290028879826551235138363557575317068295223346053588317961518899844015125368357915299218971016156939252610682766241189509338138432678549270775564742362013324920466823070304981266019725575467727442406871714341117226096295230017719625502029061207903891687620871297344898178574228625733538515779153750437895203923723263599253205873298140239428824907090645054169259915696498561355077167678847444771448273463358314710760127434882748961408460771305412405240509099860996178841353629450541016971550972816630027640439836060374174035697997253215761845383663256028304025535994110810495992975445585344840313361906310853128011646709859907294611983700863351366286482396618546881341966643560322758174950710892082945581423848603215703595355359799789547426004922451230739106103576361693841818447060308615186159470113464235920960713788820409019214683071123700519186631634796742628646982277255044286790829073462819289658157291526815495170493188413115517694716789268107222381701357964390165478707984745187873730240049026899825168097278645520810451883311279480726155286902749465791276515963916720405598016956237370683356352678364070672223364884825920683562124388209594137767951679154591227650958688503852364381214427005458378678965388113424636439971440738719208908672199804622833766429123717303359238627023262372838724058695677643320999091507640084486852767556435804187205987965071676060610760650699436720683256418680921675682284956041040047745667063077209222702967934479520477516492928456636563914033280068010643831758588812915860197703906099502050692559639229881791435669222971524261261998966857593260685307269599274398602954916291429325050240116987521724108151945260375614348155632866898133526130704611474580016249683124517173524884362632481414657249182314201253001514914111812406983809156271840128230193936771136513680351740488748411084349330650846861136824435364877122860933829759332214631171131976254436817754121142009805115146598999985370797766137063488575304492003650804863898913175054134344557441378845715360944347903229056699557952028532739604657266760870357854870732997649384073336178784352400210016756768217824583102859274910365930097929155591435586345349057585135323693229377044280135943780221248972969520876888193281248637890320505520993228608801867064297112445985291967314901483520937297301931018928269525429980424164512303700480488449898338861029653010210583865988263984032112991194013609687814767083514051766444884511755587137855535181267528207835892012773059328523087316903487129145470499717810320990486337274464717508494096974035059139465204667949631743364325780885456921960482283717446198026136979993659096960984142519594204334774127424257863256480330127715634507561917466118424449889911122687603207985580692051434962460058683652504375260951699075768709160570337382547615758125832891251051310188814911986854149416468133348851933261254355706199270539562961708679416426691294279465928174265746644045830839577368570519022973387513575053202667731369629236399826162089527885687664203960800244053395523520723565930159857305919140221180295499010534000413635628449328254598399700570557598790424670685112987174169806612799330877740985646828882181857494873513685596211057617564056578719066714692028479631736499782109426991059901293845566364965882739546031445895144678280828710111857122750581941268547069591312796438553513434221847834644847641241307753893020039958898179945050358061133544566225733604816866711515822739759859615198619351068385232790251338073866900040203016730392710403688664244722298823652629428091321893165457727737707960089744547709980465010854267638339351251151709757581271851350380039034118905680384212030679706648279474778380160220259553568766903071989966460254257312756245009685906880594021054987921361154858878894522551703230455376265350972755518993347494504576761294491774285479556767313527668748736558125370995568386702218039299054965068567422979208440820245388531961115504876039498335670145741026734209284076621922191810049874318889119476175097457777824901722681396819453420496571939106283463553283355984034837352462659819081031891974848829818807049830682690968150996434726822152774290285569509689155904552265362677251583964312259149430227712717528329383166059653131393979824140874149691264031372419927045486037183632926038258019760613500927523719374226646039429643147328555258305471724619206097673224033684652325345359807790062527518842501556909256276646093581872171495257400040241231413247872125037450163501861523735116463564525465193306580120216507241437295608385048162904332544655627799312262512840549847411990985163792691372034686550818849679668125022106725834098626763316147290448438891946512292279549993530523337071268671843209995274598175810782600004359117799150517952800303527291635754415963552395902036267367345796954007971947628553216930644819807220080306313883550573756373385992748879260011297489326370962917959928014348033142617069570103912026592414275012353338847921849140573904123022762182574044059277851736918624898377679869998625081105755618584287651464671951087311865765010912665831263560845985412700734547147199111961233356649476418398293940940187178826742433743670604787529068344009852351736770565260365698444346275612618416856081398846035038988892144696464613141174642992259517416517720624603497060166930744360043005012533748710873067243502219429055074626786331100567289049613400363979901703215771367636908976941625469578995912273198814438505223304741566708181806371699149156845110190040395783860874084086266227622703478440455127825047547467665775925167492694003664267955724997559189992766483989801749595038601771785960499192541180062055437015114777209891870532550937114476454859154388678937609183396004316324975268091204361678641284444222904181818147992775285557004566191153710526616586266204199347166126567910161746962489410198998200433661051097720655070040648595448384407614705179203798614545463945926264088025290755240469346404718585469086957324473372876465301863658093281943296803110102072679881965403628645329868976963321999049614580570991141751563767635264752123127437670959519705592702922629884591361345462844122409170610298876163875076038217859441207788302233577791874967703914905355439706214193027218083678846006134368586917943326760243512281910067023553016093142168646704628017462153051911958791647562120287310502677036138928300759377095918374540173678956607697199202116499689983212585728613805266727525470840920281454103377598494702111818985373190665675981181356623540376394690154266465173667196333944340309156423970060861433581764698837115794906491808085170780333645743084758199672156511977135158732677732199826323451715958670970529041294884140062427260435020954590634487484813745963184691255852070392108875411954574009562356276046439272605350868177755585300438643631271955673291015331463066797153358519404294567798284243739456002540986143741883372988675628646691850553380890365160333974611327955385507431991288856168952181606673247182241360388598547452281468729981801791227015444585468181297752593070097508541829608310211826779418643195554883691797427280408524658257124288203173176076663254837087360302222222023044065350811459280489578364739968843325781989694378251998783941954790225679932136124261650102422354038420717118107233874922750460219158175994444129243888742443314517688058060033083595864185081434512673346014178160249028013173560168896296141315829603507301920767072089557021260318324504101965545374767058773973128642726342267204658194423619963516639482832419409221703880180154841245254307047581453567279021691012609882707696245736641913906116692610208089935802641982165938302377779543565598115866781321949977251475833548837181180247810298725570436373356601677566930306713893007059384926177681298076251798806524837264470818281145533467502123753947679632403662399903949821728932219511948886786135491528835289067413977215716407316839139248939863778054274915651623528247567819436082506392280060053482271831518193583446298246669591910411451422272628387531768000563769376563963753157477913041920147935330151924885033774855574595044260891699614072347396833219911784669956526076157000232566973649326169857040716737553971974812542258768359437656832563115443864993365268127503798069942575142768984112673296733352216802150535073796223328233422800902740865060799037270968664225551288676411389263512290814398300594068636180921673896815368427658643573269292364333037748314011187408679288507171252364485601145411853550420143596230749340523371319475312852130894048216280703274438643331479321921556933478862901179015713831840556477709373101884533022656702991187075654273057687732182118464731160128311536972131093037998687254536274255153890592916914187607448063172401756715565679191125511409997829121161971473944985158494776145468789241593814622908905361940964247647839433220870034070138084540424918246591009661793632843354284320133004789609089952703444525881871552611053901976580346619512782025589470948885694178553032485040322182531044967530280794298568600401820345308549875461920721549097717336470778229066491086436899107320886094228881908830273963916656385256269288638710222683817106933973424576409655012858222591183964608811351321273026020994812570387711798155677375222073444069925333549789348044416318881426028989351109763113075326896093632612906534110998628064944570942148761103335624486158812627326915537142631969133216901835079398268919153617791089428606461514070561155902968350702301747526921837077253533911618774595681477937435191153515330346816655307656959911852625659675076362009926260642774658417782809480925186643368110252896858182109504580733279930688865139883588573455905429234356178171272551746869645889326929156292610640307505004016266981458925184298608236081996045587753052176142229720784217311114918791380684680622146866184710574739940118177588054742222287086458467381284075065783918324244282674539836658880839688151484241279788813801706049959122233478379630291356950811224374667497679064911898716232913727678710167903731324559001550458281116875985755222256039182040373909582330199617672119291700406423922898638067570645985261221028688211658671865401108638968208978954448662856314622925248087714681191015277514495292173059704326719340003274310437921401357806313638949065476185496056549182634656240839987027409425381671542922968274231236582325233610344518714994735624890625576041289335738294999309043567846391728140803285355425799654693874045480150559807967847922652343727071383015368263023661508782537244548740861816019146472821078033603463855793122466523929714914270316085804951572551656281061717781573127986004832582400137697990408398866643481614161899079088516663012627678653353367681198744345636982791534804261304788769630642608900204350499763324791527999112734248704367228131594332461155178688606992334215105803027790210567289445467965188401104390662823469256903330394026650819895930686420743979418202409019780722641975505623388091244287249652616855220662770334176389709447818699144614209653290854120709926838775754216445293902723587340021455777983849875128056036315659491171799479648047086818622849950801757754388005014105966782776340992338847501706412037215920578530361523314625941912778109485618376716725368769071288163781908654820384957130362275863288693085888750398614910593580637095343484138596867780061520430390939413037411801620873030709031557088082724453510254833789559510947411384725654473324383016413108885238668066930260660134298755990239503640957546459746327472169612553094822679999904765123748294260323930086398277324195518609044193563725000367445811253394690059650155312057134286159974836383447865075835965441913745206576894924673334332699008022360241660714031734937606377336768199466526017891594727979998400959365607533467178329897361874466095607639105610866337750869090254518127660001772430939254537717309515367083421797368061617553689830301402401911022469187794093629094572667656423314769464934470724780200292095495327266031297957756753836339151215998741538412625767216700457106256339503372370457315466176308231993107271740809578635574052186332724789358811735587915455670295659648712248035268755444576953507080379436452545698053448269551571596138778546193802512521537389165806925543120233009246531482158728574501548154172185042654397613435556075035392546112193390865837222780178660974017315937701071094150897512371994189702774526278157328238442771499443628897962912855466485752709700539648507074930765586781521729370074013504790809975157710072062053067755742993639823818502808476209898627685351972546819788145987809102383865832054193993473261039496339969146036298445318554943800878905711500720873334712621795767418989856751167163616512230185525223642338677037873238208033215498783826011744446339389200164698440113330905231400653232994862377245846999662478449122659576609631481686987886223052598527346129495056467234647646251862944075541055796775101010829889637063033269925712383497609778278643508739304254237862529529193529078343595692279806349013117172466218016443370928289711729095595170217825295570728607223448111256560996143100581269640466175959401555428032840856115560443898794251091253334429689869369596886190476052622894639678670903452006803199659568619211677570127883804648612551652332646112781597424961548726166869685588366637110734821374920864706666087905652177872275295268397901692087118597854794801628924773037985441617589892480770110810484769173955281904969926040328695900627171687909079368260935822668590285148877256013598940184212074063106473963520232802382304702404881139714306310976899913273247828855081756598043073465466078108292202190663836411145711689261481449203763202373634644154962590618800829467811937891180130170007002236431332357029235892896674120057128782842180593033012971972996148247941848628412097551220732074768441142055148678908928207460462075387483154542077711552435639981890115401281633791180111862393649653607384595276339447179094158137268179152362269943562581760381319167056297538063110275341559244224139493116152590237391204125934354163826992796897096990476022097721816647414469983614827349285487223337617757986456313754141750536608310508239898202540320668784001210222993804725401377666050012396116298343062761786530380479352333422629044484051615063108096016076221013957515191984612763707685339553962242567567561851955872676127694900341325771498485296275649686566349080643383725514730416993677586061659823073985625541994130007627254002264161872535243934267514233349397400251639837244199744100677188194723616915443493407019010045302850957945996351492679991831899447911557162446940884792103439089655223450014371155910360239866373991523078907227002962683372172825766321822387768034170601246310837821920447960604100163165885393401869551303565616986534514947088291645919584348547928747234404604425905383537458069517940854831505836475551056005854970480720967189374369039479956360818165892533604475976769709030338599200454184703853402208605113565943934805642180920133412775252622391884788906877636620217179110335835625823398221765281913233802546620436368937933442056665605769832312358422481714814757417583960802460928789089091468489434637146716591284312031746155405833615226703767840791660590538742180120531733454155569548618576057191082256017505016264093905071192002226724846450216392276212326331680984965077292328767355128630224745689728307689181989585472833316850448556285502711015225180819723583558990666350917878967727622369840043064874340910837926797546021493429579350051317128133797908573264658782238242689289889966833369165659060016225612859874444555793713303951534830798228303815239962319535427401798821646936423201839607246167668186105084061630711176666831903570384131246155396844785818521530463475586902062762438500125190169217290831293027929480229800832122836622956767440446076668274287868707824049181236515747012568259185020638485522857801381201067114713219456820011786882907177715433968121692470050413118601573064879689917562603396642129887609493643790177760101765646208245922773801146531812935231053303871446666166491070590684716841916226193910516413070340924545032119118514246163721456193998767093628106088544726638935208790799328465231540398446297983621311848151749996688383578355402951634699072008579100215144858549941520553579028310726699486920444468081405937637111371038411215793770753388745166326304338383595280373837151481907631520762077097076742297468899094320836177853127504194868822216018217205650837571835414695464392939737778167118837832453217597536711041437829824543276773478851683977228162627184877152200053411232745160599197351171136685650460417153607055274066161055719297466771327229670726486139688010535980258494360975953396082987531097869319467260725630134140003563417361747028205569694464957745114600503727247923390248149656532353458242588750188542174298327067970683206420470775879480114247326709777474054621550290007026155180808205090249186200111842041288436374377473955658826721857681906515792893941702294960617796784061638737993316469158011241728978216573222438388452089835155686130422833012220252217785516982444679544728128589822417238488810101354213833582596916836906320009241252069543609253739515364110656157420899699250386454954043555131046595089934242924871510716497199941652963545453105976450997841667846928298448240405665260944977808799790839797219636393093174572631252909310540765333096729839733573422075165875882532750936533752336040997795801215532897138402071588026601798588852841988790984284633856044496004977461219756310939289204638374225989759396747583240615627886798323771120953744271688718545294583233470457638238399276415421679056029397529086725563464190150291381565528949951311938704833532483305029625312242750371211044138704418038271192149477801646927653433034276804004193326227587966481904213841273236969799566977179352546637534526321932338939052190550897521005147461533782149238759811790306553246619298272481299195753169219022768984608477137870935417382952087792215426009586561229416677011675700743206730277820861822076015459148211209648575086330888470231129717613808533235691879594270076347033355091718988641188062067591646997900905983765475718397135985511133902823324216811725863629488064204708449858267358146256871615547527088878932458230535881853465965127934282236391557428263146904097191811054754283205994845960866859244596590918828594155502203062168191290649241332178097877391876931023800793776386780437954764797183714088051685241168722080847256546084849383527356908160828516949023444988866489297869206724513012049171113048824283163453865271978726916694993839144499252256565677551986054009482178519016907784388298947048928432194141208788728996864580686697868569478729531784879393950989688639642184775879181668210076865283187057401433068673659761070637311957013912455439411648378110154197244355794296953745545521645241813086297178949043273835383672928916206899950728336921532998381126558476618202187235855366647451425685846139644376946285956287997698125701840924319329410717581892808373664167356263171408632938900614047649445619214317665366073612997442597031536384914523495960347352574734097988590188155060319328182711133662130228015736214164059107882869073934535074282430440120816948248897867445300792428054717288709168076138783716468876231200389728681435284524581057387348595845759378903178074360793349669597165793863818480572037325560518982818000240117428407196976803849597335922496996813308211436631009027574881967103811082039349296122605368006408512411657243939156209611262647838301559930390536714895559375024622674305134411062819544769763723808117466341491451309322973749932330407651418233180006500013257036032579081002988261654280307257802653339457965641788961217488519709299095515686901393673887230632978570353746130755185604386683703389418464653700701171588123094834603459109237683930624581181993451952008461954259037839673807144326297151145109923724724507280908850600720670509699890493254040724839634921269284768855209971559388869314691527047248658129492240130142391392057238155263318018183121481361888603196327316258652804144308899194027075424466928329619449590446186213450040875527677973634637271553012501741757627854005925342515042199855104853753326630159223159412018033018883347269827650552815681723225721766380167916489448216371117509063140284203807158414699984267320575503007468679262951615157812986238597379593965649612418414249447404136170665181437359958011647802120326852735490342795986491472591079823978668551410829527633204624592153954399675034298834873529911488580371063722505732868987427828562437879818579017039235289862794321939454301854423065424805831731706854614585456250519858226261476248103571205260365750449391381461265782941120425278034961550158317001089998183914945365977751316939254735097305796059659794431613024322344287575250338933404453286878385737630725899178828478567130459914251363427242344311970807233802934430621115848491035407166612668139843289615621041849857412391647948951944436776218033279873064114974697079821130668069614837841400948669995523016034006272906715938173122208112051986115426678223638582557784020520942666017848599790492928279440466319907349555640619343410153927690769561093435443267950409602671111195627653762635023787978302799818144166869024773827603732866853066255692478030096352696615092865393334812579910103595167615975053468364592519546454517760022557115863049423028964841637070466352259782977793512541463214392513214240143077965004912996463121250177694204381738308599728023181216878315894089468340269125106567717722017242864888357180568389201915826796401547028281534891412859493604647197568934770442066381006488696039556305869035792799030134245837648416744973159620829802262078006790950676517945501669726368422590836340837881540062778402104939882452721277060079588700958294836531403877934029077076768552336995935603725700019292439566402798421907280166083386299584092934460888302463452499366109608933822247894767773139019885703513327678002130383692782955527558003144451671100393610292867514437821677526904993417625233820215296081278044388357865765889638428323173530875039179460953168977296677444176090950580431915587206197629475116120016599213044684126854749270448122955129908024775671649176676903832671519446454567215393297041035262794006969816762804651748421397084378483029003253253805479567440078336666849850690164932049299846645409520549413051939552195024382554695229719468885260885496571280680849139587042660243539840469957621686995861086387830875998351321369287871006705496619449609494918793914246658013930092512657408861637379483400451952566697054632423683573813590129329736270409356317838426504909223668096557661491960193056024837369079255450232159319438561420555948123921443247904683159812601674227766326205066155463733904691015266735650868746961298424074747579308516491166965791286588864222828251262394930904477067867998501410641354934704968970104486765661672717707750659896801246957269336958630593816900752359095703157166399940170533788652725297750066814784181056453305924933231230756716806008078249480007409402682555426677050409720319790687180461133858678829458924019999601592095851247823939156174816015429038784402423626327307442260102709467881646030619309105177093440478630367064998489334977115826851057996030313117961113773203215283514916096749942008337118594362235871079441164189450026547864383108113456335514885837918151964521572880881863318719968907078808141008240648571900109636962319312302157813542442155812526562184200143069137755214658409889459697365366047873208546964770078786435883171249780366644490427133071546307485089658606143848908611661064170809546342649433163627886634792196073518034830497573915994295440795303215464447219419203995073290904473010828239491971278059072447881104561101258200634461833767162426646873941871758985312671056830295668224422509103408277263833685690288476184592753082370877064738416734475617973100931561361907386137653372581106643140921241524307081305605455100020280436740318412707837737322972669541886926175802012710268145405997186149679695146027610738832359856677392491434763954266006143476801024419078715850304610268414280245451225453933222641547213500087249029527616278704541961964991690069418037434093031212313055516167021747806218372017021639584097218277085342634779796579272464106819841629790853840899545563110610064629984448386122842828018285329439034895438131033728278665572890080814970377017846972799287327917990009689191352626749934140691501527630902722675841192907402212928947085706641910227012470098644634471317994373043760072929981013684369142990639672390328557314305642003261966302223935442578551159433332575990442390627327447638023444206163584939147640277637244346146543437900009378376950967049827006284479799523273271984836783798592781563119971888737944500184905882577186273590083082407846897595258360034410838380523567555161018099546454160784343174571028743618861020769381162793162745811415031571921362074329464251672234316144953170958768053101015228333670380693614896823424895378449181724238050801209259945682017982431723326960611533151149272391970821808011615279894624504203057463900520095761701455125036410083063676215518153241490420779984794301759945165387298684908343527523036169843827903275247801020763949230801638964662570079604259923088885982496702393306601588575208175035580796362226750601642864537274036171280731061508307424235314151680897224804271578622204212150495179762178684234892624149730204457978898377976183068211716769651097960432130738910192772878262375205483586781120460893991026720780968453145030752670071879201313574835980233220935965680684377371814796007505524275088518164399691081556888633124176691460883308738520462784994136633096498885820762762894374975466101541208001203911153581587853481370254212345491750968251881694011476560038974135196110542164517463955829705238484371525479861575780549175252046267550224127363044177788298493226058404070537264441572971724714300787792779708932191456605688967438178409037804444838670099273934199773996456860618682049080821144207454361495704061835761769056976751290930776570073653344417201760870274817888246911431172279063319204428136559703066270239899836226857031936781114312774806970930724529868352396918452012821359265953396334585239632258026440369962186317440580151895678550899340593697904418643882242964746606223379494512601394182265951640028839300106975649085756526851110853881240758704630961940710177548083594788355820135131797299256929741565144588052411763661052336733586680636450521820526710596232215337817746077893864078783633609077715329099071221126498668896094070959598609633540931436430173622150677571572896013625488071669887806609067379514063750712927179300207078956909208561540142724784364123901514191350711282094188227657481724846642520501230001907186626597077832626304553336746590762503236772074672958344603297736646464844217932871826647525881431376627536804912387241591070503664020787719125857692376305767165528251025966044977169886846812259907747201753403460214432862310997209807670708105836028871390267578914144781346059596289108824033458378409683852004233554870689706948086511380715202997224195381457935416908728797038844498570506575451847385434721733786633107672489164820599960731507628337925753161670793068093827423404737016001360332303111448704822814468678906215017208815722339785315502871660260276884239713572149033285496121896969949041131986886576554821561990599585737704490924976044155752503860141650760791472278263282181338620976465293714313602692294129304299444583936907298383546955913506822281821242580406600184410615379479066422684447497344517720931811138758404583806483224636092835650233017660991688094682455639343278110948445319507331479837913933822664881742304116588350281267957659290222400013410269103566512723723302523179434413310972755694556537090178717643514606920461463959871351540624175484562739913950501848051939967425807043920705195167870471017635781839451929021775120740346113011293226521202440370369505039823815332064802891278661784853275417129494444774168197518436790845564505544588696191011422964519642392109170417025964425328016830450961340201664734236063755511300074143936184765829110741762651874631966912177122099199658701239212005602646515699305651362662699335739905464536694366224151773704557974048638813196201987114239744023326694978446501976308889797299841744697880874476503463522200767813262771549448911761742930453522639576749838238556799400901461571720007523579879647280371439149166398876159545454667215697582343298112581177862130518717595983009643789847390791490303146530835875032979331203443225360308790228770362495915192472756996408796512716592040616280762370404649975508552821314948179934742802728584845317331076381708887647440835900227247013911397233601511800303934121644089737536964918165008735726036295700637064162214305748529519053338971619614294859757187931130554719157910800146685794234306103780665864391972773817554578151483117280919231760109226132228960034686394271453387214147359950549896854625172707928497958471040020510332969871732161821311659553898774042899986396944479782214478103919622934970042630925809576123549041210435349990160912840783950571347003252008003003545599159460098993400064620334240174903682286845482513792037052927202686927963112180688264764403022800041515314459551945066554345610217021449524212562727630214337626250252506280505217623417062351031919353618803951915044220486595438570491601478694931101723793042778985793242287100240666950470978175065084152806115103529664581858661787978864849564821396021355697976102781121545727312702910766368352337618620580129640226692563482655517250217294537985870581985977269641293357627151834635112406463499769557651289718823575490367378451124935975169891045216675785904732580644223211540569765584380940543282652456777896097469593313184917500461139979941073011237545958541309747915124785948467002130518104589727294063494963780071691274286955294202408770810532622241468041147578145653093117630029824693711752516055547627904673748929017011318422497345892551655800826827079658953448459555254237835240536138410504729607362962424547441997566367491217802238142166496554091197637159917568630333421026130501834445838776412000579709746775210076458412015156056308592047262220576195664487073352701823518654099895090582316896741106036161368690992343127022954809755162000888356239767497840417323523256453246939698099062759191761370154460401592408320549177540626124796259783680915515929539329610433814944648521291508851489817429652036372844801014515726000495938991496236217232761822261689713206186009078744812121637652724770023201523018238340638109131332721099012429409491135487233394745648236676039749559958729198655020240897709767552618764504041556192972144031583530462887347603754875629569514536250858395934856712167999135335817142425918856999278880074633672895166038235193970255723388359697966171301743188712436931476564929290388378505004186509761705156263137929015307032018601273676284923935541384347798269638270932641094021770228802377905685784200944957366977306060786587125029583430441530878713552004338733577933361624745884444325554800099800727437878535024339943645145062929916917276525779398133893681207494483367840619720964287876718299135317196749282388688745831529299357417711612862724727134044876796841982753597243940481949057539621406500325273427717280020172867285473549792978876918407230344822887614605273042256259176565849383923898366913759601535707202902363986547151262496268443175416068669018569414759360620507969648018385838980911365949827001996134661767368774951691003575664106583823357794476005046917122820916509924893503915210133719491549184657835921526632325283179069098307726564904747031780364414986251010235992103744170688953383163778008070854955556168832566666092280834071125804327820663623701871973277778537870464432893334233044289158583348866028187978188259572842889331489908102803963001658743565644933737936677998750167301546193576988166338189310081861954127277477547650408857043173239468305873571144088678730322942014295128424171462088953306915332254695180360860963229706425487920354031540072951830892881866329570696928258565072388443305920992165340879538583374157469675153865875934175885596591889151441099618938442703640155603109719817407099947214347048918064803078197913873972095395652930754639080951626730898041804458864072999509416171674256531582716277018771631831802236163427405598406677218615735375403584029913938836636289396674997167063606885378646292791234576184873567672460429205415318127706794047806476849126572189751348932588115006233389788761182747447124607415367101321700780391786765725775672558009012322145024396401491729079125882086608382186093039387814594645985233153102041234206051763216867709362785852667147657868465874597453686383945806400546682177533889431814231652565236724791863993720909446969666912514748437782291337854740541674251854153052835328959879177039249704075610222383916156557680164701081619290982683420408957913832718511823961872599756684052287552032034904842203462436972467556013315170832176923694868019614576354693516785479941789466669385089577536814073641124614460317864907228930138759296305502804825783575411351850799404680537429974458123522836347182082262707418834064642496268881589781620386749007813704245310020621954654689197434909928755182946031649547911459741663487417938431463946728302110656582455789174150564598295705799960798748505932235076333668664150361937828401075248652966701532617161573377450804159586536419687236892486303362672765686683696647323647835563393972118156049385823760713393943678342785032857727933854454606510587950476901313260801778812046915066569471590593279145105984794159205853641295305923671685325746092114333260238025281856929832752773041373133308324008858378154169891099763065420335874308043613308454995448354761615033817045449081668676189767464461172825353918617315871971505473925016842483977808182019238945890695879069715252762795720344469681822282476427354630545534513852004299109252917615137757185915496531982726588856740111683539645132449857056104467564437681064140226522270807545896378565658863850276797541407328399556463090489313163290163698089003867922944863074011315693548607798090175098188927720653615762400148789535043379808043535523070727125193897021682030940818717558408624163969118861688773066150267016693422656779578758717555662655691805255499407846668962237356110343208048404965323170021197277693444385072895925078246674179812791654858560446649424588464088489203762236473651199471810183109862016383059643625144245815253301274411828150484083105261446565680811847777394602589964748253258061908958119597312076504014320611765855738406752684196709773537851345413004590269619453007341595171852580756630324925723316981895893358519791353389764933624819827965487201170082025662939120598795063897881238338766185701257142600961974395448226110458734947573755471967292716379692293967702224552301603503463522733524547210876873811326164475443210209131932422121551241869797601972812462977955164957109602169745833879224404976216663786057298815958717237432085070765127405717197681696645427046616245011913144414704256943809754830743418445307178244322685931708158195846653312527738845838426105096566665582506457349648678344831212215046678271177180963806614004196634594403771312525430693036855935215767508231687175516119761496481468963246596495586198890840140253904513269685921882497942828834654591178490763286957860561050238588033189334630253221132427454451573424806017492937097072604910537749391454223104504369556865132175250250235264383316650309984742038716840404993784149937687828317371452121626439179758213637578258375547767302115297215557774966269793692212582000768316819633095706977989103294580837155449129739855412897838462553670406064536740035496620347380160103374637851876069985106222261234463550535070555774377445824188757055138318828372806348479130163376443318668513773162964716301939240966951195268980665907869849461697944756950245581712333721015562104953073978819445563242448729696816456858998702524420922839299109169168348471274546984914140968896905607727151778737052115335413939819653549465983977095524035968909322585052921622957729068603364003808316155372737847103206178613066303332123526806745759075127880557219763128327600988164843835663582356438573108510639790311728376370059660269795407723705164232611660739931761861798158192374108196127038599301396722414061997642193067481355823833425661679388274890897699113061670824722814889338382854105219158254789975403795997294790093490096054509821291476795387125290153452672024443984918971574339530522542248195872518243723738666456729194361776474438976625489804082547148263825163104654809512019053904427054719256036723933139087888999357474307415309808124648667461782576625056952527105048499762256009169757566923809465368263586838019391626827850834326884400232709402474046563419662950906285145142079967480631833905309429923508519756632270417474288959794120403117729859060096918635331621775985546231012404412195561731942916333757156469197809472553296719304189914152779121947283539989624243342136976747645076401126622492261014439711422097118776347738848834224989779604097030370275618215321190137032810869860043749818112611288147522337053997071555420258212266632657705394691866495365024519025244216092482951346538854198610814302477549200329669233779349696035840460405766953897385044064884883193373117714245144712033852166290113501003221561317238206499945142974992198989180873385110755852424873693024501136575695743539656651936463240047065396763211396927717252954652365085450501000150915968254968189608164583272281151427469577030971220323920207996950415709183249448755203703072171287804186301493389898888121880485507383348752419669482406913607338325611207863260203863135932604919041831910127942579429327983233493533544768472047537501809584609845012369434577061709796227346894641397332594494999351722312229864921856388146891698369161273118341432901782114537007993284501334802923870325269438629310465100399193219126174983654373745265707832787460772938059000459334499484297567784674155676573206353747162883489609358706534976066244003270513174314317324376758738725638241083786237012570837887714947199974976762365880368804749403648002070251732633763261360905378757698241239000509892972053290872286796134597904643714106758881079115506292012687200729520257557085839506333025688863570789770619503437592070302113239502535841245226923791656495310791238628957676926441543093792076201718843392723294229351924700651170476761338291740380652900712220981032437752985627254007018434756430886944996728581770039444529763559111246437993640729396508123969996292641181078215971503055950445134858478008740231824482045045045448310571507625269912726447706540659010488663092416220647057180403880344919853468073477531961568769705541622287695029876908607122899359253172044406636326929941902391705743421534563364296177637273189915066697921685247538146025817549752647765577138477790968299529441696525716680896074632480342769170811459149916976696916313622143835930578930941866795554589282395573639623425527051532202432775241451442973233362898962082974838527629338745150214123577630155032667827679275749336188937031857347679865950506405007053996427574066025000870707965249305873038795788916085610344658315632204301098500457783574168760050798109457361152515266918730604056847152490408540432774788249898557177428175078868058510909584691886214370005517844461561226586998093379200573661158116016284786934815508333666030416039081331857540781072441515963841487184150910655230167640489744532073538663109722969645574768017396684055415832209207192513211609059193179764096637455246289326556106675052686008085970092702606152249917881675801056574261689801611896727809694439269260435025550886656066209957621128673144725869949585875893542583297496375750926761642655706293141527233268187247378796311754252143082722487450320837547383253990326834537578404089138855469178315408027076653369453762206974081061502302116052083628134415790243528369928150570888099944426272438050665035024068792994469565361782296127009463775126089323446761002453613756171331908012048484445477901265225924947963462955828597475644612086007148926853301689645750201338877641121165478000346912936134840491924850814949426069484801825837558917211966294149945655104980275536926140646416418897820901468462199993153114615964404069613922998125152377997663289512007846140495945035000661579081938749739346659652711951128138239255147061084084109548678913814692630930600480590049771392190339882783610255835034613725047591194211736808127630238707611812598490887215432206079525413329879806713227880899258330511771583126662761086036378568914940528390233526458089996695406594145629087273965984237534667244291954633278246680303275159366391313586977064692282829765106327563404774026987067099585999097189268413619406632997772688078903467658304342195108755144174451609298385349958566421095959289324327147440933284252520605616703794451099886074790599372198245000503271930297195094825909072205492201743933941986468061426885531236998327770343856989412735073865624951476554817724680729351157111142978166840098586144071191396288609072215492345933756827879001715517282131846795695320802380210374046540526252781345005127558533595832547224900145923396239811968635898653048429193903304995129802202233587573231766242057182656665068247613430458423580739443168452372778604245572477901655647050269205220086617781408399263353721609437540809959324925239548287984908625444300842369671982048763233502693385393368210599157366989497228417149442628610183477087109557544345719750232020996577405742725616387992201656052345819885435104939231844695776047912620413565559872808921709496155291081608160363075130236755949972760665836222483386161156185598350874237741364083746183944817598538330789002081775072633238833239803630142027342000684246965761819784296875275585657914875087610020263793471923329539228126964636981532041351988228813874671484125895719730307980521919560979147453823835729736915485588971041393819120468838540264950153266535653231636077530325636947230363660573912357910061057142176625897027760933624059200580533998599071584779815413016715851144892358705399866607853345168794175593882761596038666840415105813680251419755133533536740644154457967731901941026420643958882189795619245863517160896371974864664429180716912288555746293823614630803259317258611341975692586958425461906245620301541563453032142103780214795802623089024357466794280324097439829800210511684067460969578789768980876244856342748294053363792364348838686491321826502046266086908533946600363139285930137696028400327474225208100374156997839629681382776260065011208290509298879362233261217800906817097202733196978565918429757642349325027868843575675470852536375204333354319944001454608772807195616002021369801106289176465068313775511872356407676674330417023946315449961943586505963929974885733055695693396054347704082785010787255580401264468352038455197154769782409366136369503957269724187938402728061981226255708733465070593622115329313567133348657490792894019232420974391733063860131305366194085938080445053912340439960253122165325546401436144632856071284729322472026228923441742458491402280916773569074057128667755645303710143927482872631598407338841194418594504003619672028429465739331230619440016035665779643736419252907370785060132931100944629201596764769892629377927219697644998394390314959121111405979166577909500400477625502315778295320817940659560208359881635666954225334344377603822438762274189525775041336071789145050616176683279632680706939280165555539860260410920430108962424567242812181381389991522068184461244959852602913516167295153581474733188434492749703501185890903641100486605785324489280270437989850629262153220338784246591042297303519153602588134626859630049347996429952601699106150344648984901713571542625002704452952562179136942955194365552933980016918846926803990750165860602917135976163574650815279817476450824275768784627935825547701949599708625918329322195938247593703794925532959464834308615799595834919465592239826057824597177534438272175752096541090012258365850067225410436231424964716208492898421926267053275373728283348548649738806354886017479649742407071502374897715657456443900634199930944850105133197703693725432451988110429183646005784949445939306143603001328417276565879082672176296395569409818581244555931736857289087609410248213080836543638679635611268733202010286282037335594811955285198167860024443061876494294314037474436153774603234412047184691741250915373355468404382326330552258979657814038160334503543320230271131172471971445005901635712578385941014261331443011616037604902986566043503167704460940373808336228339022836144168746359600454659827730523810752377278586082091302274259420512320732484791670475699317892673504420165821754222011236919266582423343143974980207104792825297147232501299158325243247219885144415642287930460993586294871236693077896523921706756984891555693334042976002561509901879044717687360566281902106816060110686982987864053457527508438236702607557684457399943121382622743957586553934190043741752015997645121647064094820887283075715927952400716949313947115242195751283888117595354998063400667506391529025194769978740938335838269716518708636571355172538380526779099189340125061517244477488996928938429562391707570199695346499571069282881293839917774645328376179488473984562433703310646662353722202931370509856553847335396784345508793173236821297254313204111777652396934879602357134115720343996883873372123972162647294160213004911243798970729422532222179969136659710918647064689573148999073613166798211918387600275752897248037617715721154776780046162829217234572642262374824871018944840932003930611319842773917044425555432164118030649691767028275608514243844193162689146911062560098712330091658966123723212125957162209889776719635417278846748835591745905628558926772216789195593944178848890627431505758847459875974625993361377383001379725366753460264262296870962515953810524125173735251776863166753233092092537736486080900329902668466231072728060246094655064400497000741666512295652485366146311626177004323312816464194049460828560969939806265245463435465458246634655411141051846174642912473370173119436607561170396488433550013984213695836393179998455073677436445998925120647675358855343719204959761967788631936908186150525332157997909110682680718426560938238049179819177378550169976860443914873617765887259838145360103276778817923957928541370510965998256030466922891670598341306181713188271266957487926298193742446151205476983960397954169507117645938463799562882229676114725975410914420054269935856533295206947836489045915050345165627484971102035038134925559899463035690678653853381192298601682078638365010911785461419464589644833158641298182452849708179112719433625445474734549406392450914541886142779076664097306439842229892594773557444325962035574799698083753408282864569229493157827474436964847003414380439008447297022691196249624065189602280891023920849447682933880633733037421846879470296308531832073964445022479704955013278111568353410204669876688647594545497018121345674137725482092924167497528988078472200705190711028822879986016194087257756758771430251745282579763465892196447218965286106159551871686099881299761015445376291031925019390566519566010621163748708066361236390599403714022217463744416985709609523750520035587371064950339679515744239932169522368176973103688089799787536203591904736016748657430221419069116430129543735072969207901915160686810511786132079483221508022523223125601562123028292246885503740145703755232384873158692732905266232637517644997685620416541675506037096443626442930506979257249967493459994982967498360924408872093228685456896542438401218284009313164182761024649478510639164945179877991243187342917220325136646248085835654592989504780640238571418215597326461430279899120572321128526620259386164209248489384629576844760761356173039683556276842265497045245424083503180685852180918757485236269389985866445964775152807226639884129744297592498441888157078964335999403384709406377119344755393478070611591716824142699019793165254311403843726212538021692209402268824602241194723358562016649660529473523535023154741256963102412751268339043581881792469628045459737154992908787230446371383387101159508105384516905527929313960530938856925173862182170247882409410841954226883190669734024072810553535707550160768483177014182398805552145200567260911681560004115973006676448373071303436720510837291586433325710346295733082894823498010729390956188775091796453736681861541989596534124356140752484684571553626800638353819827082112265900524649640945155850301624165694897837714183163249483781671541006332484219321971541689587142225201377456339698436448515428335708193246998938530645075544965135912059253023137089306049100882495575303137716203128510418516871687532378041311724229158720690636308607823958256938332143671490710732176568220629835547735480462290791154680198053469510993046440032061036944973530708822192764159932264793768987245624600339694713817644469568732856233328845096961784684511726340167550160381875904796085048443132832870492285914946951788495844974711503130700793248149126263592546081551048338259241034935806345252740406283050218342059253216829296145923292693898113516682500411275204149312715514303411092199585218390382416864354988874278431439456686448871693779356388010969688038018003870684892633345271698601952315947533999745838010873043754537651071927349357429383655469546124796889238371933945566280347839442556647669583909010541107725955002642294441285358245467418505494554860636493183136288174115322119983686706388209887538226139166803641033312835262757196329853877718505622583950554746777531056230521611126279312853016625759923839975944476409660505533083521265822629073645846582977306040412787496648009491901346476624895171281694912755146134381315627151354416554455544470403371290976744102299388471245808495814146362394035361655415053139700909613232511022296768076904672366069079605697699363896176889166501042411641067370024010586374496076861414708048312636834691479235920012318454777500940102859574772823523777989646503292283547017332457592541050214049070469740583725884004635376576391784547258692030220452972104825737388390329683710035909921823036532030774842058781012619313433542232808780031233748933767713316898639265087368549249426309273715367313843416939241878731207452419707397531500467104768916305341779612025453939886445032006387539436968781052378184125154896925028246276204670553792991150297289431499003958050660408772932454787083512479816437653462277947793735207373238088087059970517932948505733670688644883120743600464219280366618562477376978514738299030768852750395067551350140756229888911695438501611756885822107736645655986926104773796860885554255742709362530120442843631661594940862724751373277136570247116022953012510611383833271796439916416387238295480380546408865610058481476401502081352160503400017718767829829918772432674377270563794437408838650300877176832850058274659494855008416788165421783632779916512717972797439763518219184582878367494054718696882605675604766290312320120315874569109138946315785707406853443909789226692561216224587078550428477478327540006080271388337477804514258294298068995474772301585229021296555376746016774042759402551919932069555601982552596288869330604748013148888960041759324305061312629077148531335108667791716046689074768771829797542337272609002041332784977947754382416049696846793636585934854978344337608235036154145961663219782076298469154699213432599227478076509584454103936903204822506748984541077723858792745176187591445239870700383328179547526170670049755362944679999817797541427280693665295894114543764015790303803180782245577975107628558469381468004741521629092500910905046708482537889664560163619265281394456748049323219834827388626729045185774429771893866437487978802415777140718613998925735411154999810141864147939393907386039134270885318958967246794436156503742946913932203917107787447187251940256023790350847623636981360360482251545313727478187714364927784078716152440074438297326997313929576943956136855538004200163260642340960691972069671268735425872115011271131932478851007900622911702817320405993641314876391493642663191199635458521836313564795304993104569091114018330414680824603161416279123875685797727044584247226919856962048387565666731781470042294043886609688305812887015620737703142681296140054518068297150309464128744631287517289869304822661633766388326316586350976590448786553194268408860654698729509952634533134905380057526130495451259568738552272536349921222239456020159004828556940391205021622873036212221789916026186444882336152484844831043304607032047064480025076585503244629674126425709904249920782093741380161121996618128133608673739400024651065140167456765208203387823003771561808924432525976700319076138845732896137009875287417948300613562799772016344406242781413553071508416292916113103323453333246037406528453015529632118410847304446690746094247744770606487122757099446055666310588260725439353767006337135384532816279264157663783751081527303325507518359437446365514194017207195111336624876901102955373526092995769553866523613138233643972765885367173529901633321065174780269067206332384623975980760646409802554151185102251821248315967864248206342529927890537175690290453786937105791473577252910177908727355010085757193057468953251982466618681204769084503337765751761001835215747468971713831024279427130814759953437475093358562797051726998458748704198113466327870797059992647473731041478778818343495521583377948437083325841210068283939536281580596985806727102703898628809780901781638672574697841655118602525325274247493567772893376062063825726950447241834824929950190449966840503164543225691903720843783437903504246449317745884630908011366983890925093466128127221519308508880515926474244805760547118908529372781272065248022886541983564595438498210059066112574477629844215150025367864373417750173227110006573432595782474740254697892857357981736716527219692791875643019687373658944958728204759856948787218554864549228235386143112741991141675280633825606167693742460286324552976917267209655701406213472738813125374060677580896181939173489867506696562541260040637996162204278049267994741115266249097752215221337724607064212512589625365064965690348120943161213355058159223438773983584873119413249157186083316828932711388182199582490196297698199462635217605780014911517210195683496059997403278785235548909441822969323272148225353376078900105672413636747909606510842142732529158797727566559239217446362347003209210258430116198557220066361685795299749322357677730581199554404358369889258087179508405532634562711349812811192900233933474598621518590196981604181853522350722666535248593672693284840955958121132625508654137640021130996198991363613336574876090867996887857752198086785708253301510190767419594770897439666701667047500613691999817061439851021960594595180648588488952241618404322955072539258375506562926413354167581786420944884808212070680604082816365277248055640661594298899198345456882718747172904412213358155495213029328132317203898683946679009993134249786492359060654807935479193256406188123827414075489479455449884706069979997149258556651589002382525299008788471842040715151622247246092018279166490470183565791829225713082183179879488334970130715236471361619061724730691832116926809344776948365060539943276449117181741097484105829256785396131710839690749749013577947914566938291560190364351186768335515990059821405479224538359892153430419867827946459452828142943144804733181837758320576896105708397606104386842111824316939558314046873643632192687971265727982737202622041503207667059853480153019850855271650779248276934799242167839388714690816905311634975122118441214774800559693162017128249634974191890905845776752808219641152252146075122663063085293461701440673838596951822032657083846114059805893009608479534507405512066741187144356421278775718986288219333193106843184295276493571654134208868991774305777652492721715427726341755163706035686962992624656024140791938860705413541212095384440972944500352107967293199649630738112794119716845639712697989356091433374842370286932768422861797422212700742126180783719161689423911178683065167803287107040099285698110758477449243495966943192330306199129473486755301428910561969373886782975339512408063444777408504586222257767583645397434879523436994378198720949806934133965169087421294690823405513103972121735905192864018548249856963232544517886261246494753787202855210908232787154576234778791737467838620465390827929128027228014775938534633661207345215366730183819628194062458509722330057139087929921621240614293768265976105648039648141629570764713297463176638395302518652281675981675694854101336393401874264432240651921380510705818157302016061536972179284304501079863951344000712218404913946981420247930437462482065061361927419296750597990114770745890853919221790195851988279033964764903671540768602325756466571394241015262217118884798176532388608373442437706755594599098666195741717398080919186147403726666286422123104929124340416467420893990805621788982528622533211324580436882178284437290694269378839349147285777261413113554822998796082718015164031208912291891216081349359622363822485296069482340698565183282073041939647228899606432033182568678467010709801996765067104607159705529230013156058613031370759010115422836184801632743643789040588159053222345899336768944662119345600025231778729222353855899117787261004146582710519844431155083434424526557743720634351607270217298557564383327079100906106252242628037633684498815795415391070428484859474128613938593335016096464399152499290661203263383577412072387570314082295547514626260843336735751548540269610741463068308114421238844987866055678328864267050326275983282343927045186504282231764935166347998389478296278709518567287566112069210790128595343201669897153761032281714270129790804479560048728903640666103242760603414164218112918953558270437817655439586850643200980232196728144654769609607910123583529130260005534292024097574010145116873120363021956656261904476859745890885133656476324055677905922503896573910378124004304873059203859079985938630626267728011511579835878451176728647375363722334216194320930605707824754984740100350783148407656203125293274728247511394703922248270769929301383879146494596048913400537279759267502588167454006705102072609240570433568948899488052022464036428721377001296699572541063321302967188939177021764324606041370146521597635017290567751637144912978953193141444106224806484395583023628648311730613618548128027189424254166924454074959478362425824185643264189681077790999901591173699725122928965365193622440955265550630975152868344355105501202576637234901560015340929384390648694687651574483395250675836539640920386627986845777836425220268889480737376693443689092120511837498895008267676203424261682233975596135238967214540766075128904499227535439672661492925686414626329949406401446242224237778247488821623985864256486398913655422587895989138814905847987849039024008718514634694078155876922636061149401824122777427168541558642198788423746180995860615611672958946592985606266253238030080147018881765528360996931329288537635727604155735435264906924156034903244440133989975765089505185553571654656604875092516723116153669985713661285227929721908459540307608533783243322135620935628483357679550237348569558015703740861041335532006480936812361123419320192000004214171920249808612388657848669208601090703822074533276296581089726486059178426895438732694327119166645590638619856976178038889454186687802377150746620626050498078654903787959650752243454050984649934400447002660065983793010050636290733437534177449124941697950424846297580973357780613474438130770358058085073703662715527119741800755313520363175436507423012938564554926247952069122732193692585321004505550419096109444778288834559459594116799342582574625329237379092593393859687227137330735050656237842452322786038124316553429013169764449578536063675138561302666779958890115700353197313317919344815832712944583727696530038214776065073695273843531305847532276658405681649662090814255533403348584138162524924545050959318999420753396893275586011248956345095552061887394285114819201610773589728254071384802402623008586034926564503138148393609785541830853676729328943225127826275381825768587825202403711638301405353760984703925677875625635616251790058379308554844752891125561122358545895863319657242023175705338149916866149326216451212665289483818555572843430487392349095679670990401398289450277015744652795053526766246645487104606023869498390502946728939309511309764537340742737953607003046424077067207993095421200012538091873841647916003765029102212866030810784954524067164346805594171836215068956694974338279849702729630672817389468379875777307222176310053384974210476211780972199752385947904774888277031859009210090731878943270970957061250090294666995329192181992229414901191763303623730144559296731543404677459638076919486078984191997535872523341835982230993442476954183493148964898868009718503261589850134901183932973843510682141836916515650564031949291818181352092127834753151308476773964577347178281397422046350810034525474055319030824542623664704520619165994891723768653657908022970749787322439399072534070668835985567268838615352791990895158701264513983395526405520483223252092872896152491308370199421415487569669744201283987671447645301847355975341822538069792767220268264075457704463915764965135886803835256831136573349323503380603270772974892366689063359626215391905391979546554621327309128834696588339694106973039659315060916477761648390321169069001379532951009800665741449075530847561135651209319195035330699413173731659457345072347796185598214218986097942853087397332941117979876302225145331283088970567790190891049819607269826143834382982744441594259383631861799582897490514055340513108565869312939990957891375442945582809384437421483176858703094985089153151603393136382847706531348444500474584107168351997668939868727722301107597989620543806695840379394756798152341465141405002927898406102252161701753325210911729966235526579775660331393890689837674333991690300757424955948617151983942273486143930758031458129473059348152344971420323495881834266610218243762744509694045484799155647770614581405012545024588108341618004317550843775048712801432499024796961142388183080658756113984780389648147287773429586066024991360497168739585656894514133000128345585572717884603265199240141456805016760564459208239161521228268584932226121442920433330331325292180226049814990250680765647933702197596487722362856676304395077359949750521702089271034109347764527485466109252782973460505404487092962674890099052178630910981141480126867555845447227397896966351148333939330168419119514796457409385145013249906101021599138522806681745426136904910820177686505069816366379302250791192179971897279835160886677528841757051550462617435790316195182570708538393033775636908372000565122721602936652648429685658869374157900417199522316369626152445963168172392364978146339634891633418008352597288431074985224885987214034716089051724359670425995351032088854913757234413050162769306413222022717121098085868545883694523308496857903102737036908842134143169694414482403924107460437062078440033892964637577172658609797894782037872793992150747991807519305158197443570882439651901736149320602181008116608397151719059972531608363885277125036923149825523051652442745488193055447850977863481634317532441516768302463100074102907707214486007067063865873698537485775339392791226146860859579545763662956543609580054982174042708670121392293192928113537747640019201150262189848330918286852444676774157621196703956981543975313309997623484866570860976541028539996328198404127744523308410095677765184532880024902850244681953886174543812500308789691534278907895207455052543171674895178728347026833122245412298425337149946442927282866554557016504419322462412662130168928943539087768749096455644946955351863257937510194923082389744549450143924623578651325782456361988825495132750179977463307155795712043707064712308385117522041828644140111856237379075407451366877532951950387679604112608310177239006198655016075845934167998521930437761795904726842441144760380929436530155600217778955938178553011398359726295987174905691186956580457458063194071758388473292479039745503350531909147775938489929157135621562973680955695930034443668371523174115020718800377910517205177490473723097659681904176000222952712812715299780488172717247629972906419976058173605565831380826645843047034582863487374650093753323048752645692751734479255165736257449480666298080643532391963006085739943776739442468492706218517319179430025316491499038702368188793555843218137962034501173440186636150075453050056237020350935614893351375597514096582015329823767739156955586081620525601174675625287019144781257792437837218842825868106985927393867188222646313845700242677436858926447940276988663959307106205630337217382172596321557865565160834225298182809486280678544394209039450934070829837328675367939404965918083226703424224861012279431211293431079555707766125999571542363266502131568737748092833330549879041756894219267514764687061957970588983983511202765509260020231113677413903592604777348281128330302867182453189215466935785886867714164100466366687695747890743042919192213883767013018108855727080916118462948584822780933915003023481824965743907791126688183318507438580261006221623001742012907659161150004061710282246881155109130581985018982122737929663738174118841954135631412472507793203129436663335578826391340995957509990664366066835207078318234643919650647037475183303487184078288062537322943110863066189966733264952592745228371843711300502172722488896298437736924594430222994286006144651765174276958633037061725498509744949957025709494674027459262306135655397421584399949202653289149060080376965992634248828896595173966811823912788163147855717370589862606216847173743201035195672870075477811683216026633475553102415740531612377689604922263378888090184079373999608193714762544596786683423765912833054023995727867642118946385139280240634452274392345760062079834283001563795511495057760193573039344756060244373085038540685919622374689512040727579882729604051293176646657748103952537603970037779436284620913852826981793772752515680959233226313053601034314109466492007881234021189629569704789594278501575017370057618731763204259749863498544110716943383267981927794862820760695514042190495541998085315873198103924070922349553215632218827037173647688224391081155763589526908775638349081411481650057244641535032069749435771009645678951496701954126836580416884917658126825604081882130943904492088117144920006763561802478592573113099015436841477817524254423919579633287166450648140306577383751530950112973160367664634749141776067574331382747527910722541058799632007479333608606790153502513890160224105904145303731075423204675839730094765659018695532702617605694645342186001887299535718883042243988907989262940488656040063214823392801727512989181734986114760335457753095580037874116499621071950265761668778596016237369724399611364335271128377202926177258545991150092744160233409203474298256993567072775815379901152346501312971200147852321754611800795142904409313442320209594602675177929159040941936549679743147279356524606615784203317420500219817829645745636408252045175452481676467749696297099469491402443522737596451553374149185807807423293114729893907410158452126880821189514458963718082016799814235807478837884880757881665040167193673090381337288621187974742075015627607103404966794484766152701592121581797920729561420500013634733709754491442702854385931991769823833611419777304639319759996728867611043268113424910456088643874899221060393923109604930055453812316419983739242086953029013546078161490761339164451001486302404568393431849593806131671502300995904504884167336185339285493683098829341212232203073712668626117893478953990903773170601742471435828440266795586570851379153320358300110374562404075941986576888927064695742301350773402764844277194041485475171021174299794737556968119933617197145685659131648539993180067358459588405108503367687201424296397675380676765915015492988815329538568359309762086736828988390954429782648027859093923970651167085876762964934436590854893433724770642824522664392867174010374183227993711730537018518246180231591847504164045040345103017466345133208975437119769958490106674034897441065484361304882314553539411682192624838520760353326746117958682127568445924592051721668589220577879961788487108238621025924581180077801807407999687755847513557293220081730740167529825415292041688450356336308598408220924547892595266539919579971730354137169921569518033187981450637494798366958658974056750771358313052642669248302992360798141960384458519450580262331342116444492933746286613182752672042339976509809696347517263771645791155710296333996346359555709276769058121492056758731603283352105044047314793455965039823005059628006377861551056176702346865736163505798624618830106897958280355138940352944180075355600821522288109914590175414304335136070911761949349417253954892914694145923789949864207111752869543670548230201261993665308281628971836549215453680847319813529766677378901951554608918131351052710456826777134621036873492530839824192299778625570985824099336228167346222771440090429206333127192591730510802439450840895558660303165755106360157997896424779649574731641484448251085795888219310851064686231734419190648499441770623360672217650997046034604446066705144659140800542710575487273049814983176284825551113548368270839122512891703067502078823688972974204269461318402354816610142421915918015925899146714786836094602319819588336700204353697296703275577262858797232310275025474104030133971799172793310618609132946987656894802533813198673417463792788563077378448734511973864266045791637019030582605306642578008665459447102936359951209310109574527252042146205058654025292761680661419823694024936648844532522487858080310465245772843803821157869072416317135636237161037602228202834692100054752904530954477390470286925972820309834382119889420762136625306452399152453421273540650334651935221236135041824589942492725499103633087816080909045441197243583059537886844538088331525452411842091643250738925992762291465313208184664324945615120734133505442314017117019403337038655655980255320010020609166076635478706449458464568933824054444053164432709602419244177483885602981959483773797062146919947053016948522182200043155057129367683058766373706392042934527654015834975125004507391552717156808813516481547818498199386849970875743310293613981894390370432362757978092609776822660028408501797282344676051268444087566838691599323572785928538668839126838206202667096687969502169848082225258315278778453164022182714166767725074536004215251968451878216838068055151583819495007148150583912544971076509897323710620341027107573073505598362702922916327611327035389044450402836859319409601796913857085304514743370627446941895850243916917615714009344568384057287810314617296140284261618661360979562024377028786445873312399535526473548529088955057846054841107749146780408596482018899744827561798907833610015430597178261077321799137916556963900522909201694145334259137886918612933215245235399254687488840500195874740436370130709097153490100534693092869055857375684214434486692632820235113016416239621973344839413285707280784203161299079014030619816780227690768297079320030257185852093062680040987496391227959328418112541952799796659146875556925141072293576970601815006713297535985742079581439543712247613873689296393144150234338122427486428875697272435423513946845573539231790725929672844943321531672227742885276525108123353162896356742448840669426181792676373512654102482154108191502317979054548560336735797171340796655160463194016879119556092748243850700291564083658271291898339261274063946422656011534327971035395783199781147439581332699647327199110487609640962323021715928728964997954975106629804931457714634854564219729825308954417563632891481805021136093591588625924260180311472608791241990888311632777386017955773627805206442251851184418601558703858035354601345414863991401059024434722400110414942096832827175962048215729843588775225209780764002221170429335672803342878585450219005823192240407999684501216276975171063449082479599544491253163751867155926918212517924388534309522702854613107668119984208104958013789835903197019150309436073574235562644180009286495047350788011408806807144777695297078652830131350700572052739888388841679338669502066603637989710145196275830028620368628816935313762779367838623409039574323487481626554641637250466189596881628471787881122136274201339365592082302733094358991417957261801117860059708284911096368613046133284065628671872292121101784993532240337076512569016391320728194780682027606727453019685080012858373666397187062861757699749143874513905539604791010873394649828942982168715872549984815997821934085268235887436583806697258333390888368121168654574031942609556582779432460782999250985430943396108756057192603947577791316996835676917026451839212429422717368360846025753864303044941360246173652296265237906641215011435099354329327932538511570994240054546955477845091948866528666402764978331806579310189578633081286339380862853772886457410693877982684330678641233115955677502103520786403856941902307778368596873068660229897997950427586626346557595740305392021329440010801099024638585839159035625704594315646097498354352749198381920932712357367464433638974867568173284262871349214117654029909368670023087030991087636021579829090580048078366130735965431827831858494258316443569680728551300716118528213775028797164985690161344150340407157400705499877957495926043770560188063591001222253903392728249213241158754757874844852734467506283440341772802030888897736354091486076219110793227805654054234426754877888191645398984517773780805455229652946875595922953397758929906343169653111720214552623535683262162940423188311686893396738239290170060645870393285818309277612486322476364653414151193899430304893577670481298668788799660997331720899471475474175010575818080701658094749546823904943797732206337986544835005788621182528777078508443397015991954929088639610208623861846753696697751505565243713679920768445700759577956926849964336475469439583531254522380557656803903465688767112055490898166864483001358996327669860482342468670389950112186342127461955916867198491569066004865223814940117103367837066244134394749360390294281330105940146506523621833026488162167235711603397768541884895189179877779799544383965578036143327468827159460646749061315707573118082902900346468447652645783809575149392370477279483540857383229005040642200753412732204766539883892995598147939479914890078073957598227734017146793529017943937884133708056686124817803553762871736970528767244843801680983614887624976198853497119734405288397750610170565679923171539793118108340176321367146480739408858950606523168647378929981159201650479716153237966209929463900093638621395235126321316487034672593332598818548846898174589338123587757862192060223893055712011578749456172553118989534504745346457639143480346289004328718659739587603325504881583979653607918022805398357118255946634321521232826295172307084189561282977683402053641578442678083785733147941674779232592433489698336323221383901510268206626963535398218013750391486835331984145701331397454500881156452251295631689910226721065307439317285303299895815947957785704208487572979511095252823666075993142714990586596373628941173756833919439738212393805814609408218090495146605907920878779814286059952237808795572659403086895955447423835622553888527575402207032168258405048426172054946471686428878364418163883048518714953525897266366087865280100443571798239152477289901364775431098075275015178115252730055104031167497903626573780719084557837581083338412294318572696882873114650539809631106873191793938675108110420481498636257198632622809186631035926896588501477028725846489931885197528058658256547493579292859852765381746973046573847474583989662938371547899992250615206020139729624179177130988221073840879019138754300087031969076286739749987188035509356169253250437399506932714531884023855589067161177340602409310893295029535888632305121455672546705333396222709689617919147678828450836473922497366999171120258746372227940397840115545922464850838168325635586334723858591442780036456204082369576476028605303664181191404436260574571450913551203892765002794860783928891074855614483539698247912424258280076038048322163871847955458260977140966557598644349494807460675536773233026254009511219604132632855727077056962457032928836416250021581679835471197876943184472722941181245184526058044422052234737956734442272636766240410481018291329117667607968310600839212046062307015090474418342690347742310710146621996290577342444140031109504154061717831194653789108176322647864828004758703738827868635942188616358953041450185243602345044740989465260800487442338037893595000178745242267778628931780485405688844476050494562745253817200370048832035657339801284999054432031205174308430816759679165660842870109465595949745615933681442965627744876215261473955114808445865926212046088745121491365404176176669726850902333050346523665135278051193139313501392208221221853672240838418551808298492624489556742377377701541441995745638897855793685534235062892136139050919628015504182081578378593556074528341679781914982042425424480692497686189714400002237061142659548333865741131613349608441490162079831955008308559981206445594083942013742704614835494813364352494555526309832455874295534954563051199430842843401476191796854192683599427104365588703260030261355913670715998469834026453529668069344451750368131590521400399672025539207130396905842610458723620522501991643954362312430422695722553257468755197869137765195841004190314294322282742778632868892411542327305849371201945033820090772201293736271746954907542258321791376467210286559038052666846862166765445006815712311049107255696352495582415086707126398971057129903272163701548415315114110593824983121280824035063852089981755118057318204922043296092014863787492215031094115327727301392154633767712983616488977823038853539512816008332747613883046171058607484666765708324578763010336453666384643317946882933093720208079160040937662702696717246790638318663905354643397833461411441536003235435022771713729540320107086617341653803031871216815616452987758116519271181535767698284021089245943563705608008429181935762209780384239478416588579256743054332301226160313321114971874348132828017415223348478645460262516757096696218496753803253183337620219829658287673052166992451792550938586812430770471146485135508478080253177371096088779833956331404138632192870367830308033911243195160622143692497472629323128894452610989671490679510729604792345734226438281236112130346784877296616710213776384492045616676296725591277806574779063083048237643452221870355689112046361143699327525473288903532113831882947423111361238631582686886534092378641370918531303147992073819083140410378704779174018933044174352641165780237328596870713817831833559907646951991341004089270116989174981253622657946342712765232031016227792493734598269647244510407902208497010869841269681900173096026338427691328658341318020845737559447760832642629489957916903624402456688603882940704197763120362369384312350478871417483687055202051571069744976440906051862755981444348525920766646675649080434201415802595256488724291587764295889039695108847911777776508581487145289781779915075409616849633183112008926858877482831792671012703140613899597335434808346516247131280431745975282715820482844996717639626255469158503099355765120802511100474363696505796222267150104693029848883329324724856507508374869382847044884670161596634493375824408758146648647246455479815704812489153875396597662636637257108848898975834259474380290312972981561246159092541866574492397227005297788646100698067913993318552276872902562419261808402183910837306782310573758875577479134208182408772322849589058843015309081014952615514424492880555270287256273193326704478605995479678518423764227487931284271018434403833109732781768798362390894168630073082347052849367408026324505065341826693645385505639830972414684226192587664282349469216421130383094506702901755130077149279665141687534861384409585742064316678955410253771120840498393803226661366941994590919380561878352685402478996868629358583793432838263865410803668438739081673652756912503846418337091807701620362509276835884469927269716588481082767789642430839015561572787865123657640605042163716065639913767962130040926974261477996974171421306194462087008481796864578044536390935351351542519957403416113712107363190826095383887441681037234579068721934920005701398993137497572896594810655001665231228125263324275778488537501219420667141479203586862210754998229924440576653564835634166850028758196691129049408003711752741143178906552900708722082424184733028819924675078608421313898326916905028085295861149425131685883837225044300550907425485237054277651405711603507181177705143841852806130506285197933286944046064322354716202008919619448274810465975790408094532885811573545762638482090839387792371563474783426512755791404724319204152348785285600033848928107269797526236835134106341685515149352367950040007151244761225617716969968498111848085262501113511228800389463055617020200764964264692274445312484747487910932059824784894956305011654474633786217279559425929819800970029803694286438992291447654058460868386412784764544853074032946726461539718103925427841127341420491677055782892688138397803294448051957953962958053095180355752856919161917453478415201517660092067612175041336441147682310595221907490678505128313848746781412159206968095270927829272001652807344717025087815317279500347746368129400739141357680101964527825982118166990245943068761817832389466874467835895756877652371723722659169974435496784186967208491551462089676921516245693834527590314826167373132117499861340527233093866054292392341870372403678859192357978396180438225080565485386087638058707692191935517038254814262742685987060511559891095689448572201664926889478520793011781585639470883601923442869908045933237338460637011494221502373562784212464844976490277241528529001267196866082825095975725389937260590890090738288720506852380397831274136762909559297051138051361750803297806395558160646623351856929282151820322040912150016152989891465943646723646487319869977931438092084538887998080198652373792055674269887407750909218069155401255801711678743812296752243432663131439189090115390150556185520211836279815312485836595694045373397306707598683161752347745132927234828223707983478376656884423901517093347976789389139556382459189370925214905613571070441641913907688115047019039198458983644693358525435408744228165975301475383681958410987980678607860487755842889202173405776145681132671701589429218183140631659362607928304309596322489547690586253828204889122503678411300543809723457008132803445176450713692277128043348346356647752065049995976329066086045365766600729705748435370685340788188801714601317159627408081361494226849375241910081706608606193840113522903642268265128569260055994878845466709626667643342645213929453465815611398487825292339531003262839152530379741363554191582893429025505052910776587097630192472392021870631236171370814383315192835087110050245742455034899759908393430078823344585101356701150966291191316578960641293028856806754711160972004797965458145318127353681542930010223405759936305130813558602021585075161537385592456650619475002886651013693971321611285999480298135710322564140021063137237463675170051198215599556144638589795364565799318683214735684054853432678674125308932525264242987267326276936963192727976413194109473058021145784130838492745539201202231975697875376152998951889112065218096113252927102770521346686769431601038660588543591480097691548470115095674447743647277671645194245973072018490562390859793454154609043868580733503979327465732216765555879396724945423679672257827776980982904297675155855024564437388973891119191264499507638777215804969577682526146041305966332190195315542620449425358905175709630893358894189826543703262517660224962715441663354258787518304508957118574767100126735031468859441492917338447450255338360810035818946582867386820932602864216564941091906213397280774173810868449823554836756751629302172342444632046526101258950829934908658528286190187002074284802629211158727001244759862911689566976815842396043565291674161018025252475064214157088298148346888051233329635908490884154576184314397784456482178140476271259450052844070756004356046432249328371142943412674244316532402892322560554977434247534437911126973688853220444583286041429954774109810772139258377061163100900573630318851429538374353992265021873268639657220485859135720771796207729320923985570250895286360102719107467752841782721890388615787382488157706838228467070085177714581568634515703634302717533224822907100932887474011915242261947783395070684088728904448526447676673025514026038614165391912891380578527117901976038342383342111464973687035653347995701224670982039520604535137359359906968166424774124369393942039439451736565691614534873435274535707910775238476369200941265447264360659033957205377006651826055168316651210309965193100897891658539770889871358620130192252912275085215312132830965239208211319866064816393281698198210235033851990011512194332324325270381009748082189481112419367815359977311515052524075665593844409734446673301316281807664655391429896391124326509763749686925702969082861062628257813885239621317500646138889971729660394316684995383768332886711630078304107968061841934812603237059175640475536756919266533232175099882623084501767459931314741061507714677011250918038612023007388919768276374266294001747751142077759004807170091603087126588742513619050923482673661767685715208247754588085970194060941092930569437709028765418743849844279816790187358825245352629050779884716424175412963984048560579552891976248849352529527307714130108409302228651555623532836952157207499927892336689035775226766393025005903304955082054801311396174220505511666015002875346007317561492272178588581434684757219455853674545839869296832979868248615703169445883519931336717100608218186640179083195614345166059716791227224403157987067661234596870216587570038390424591429756154279721038872654204004985699484146340318363099933913854413144702765719916863204509029822761911539838236295832607757988715726551642883101139129025010515405830346699512953175731104574295703711211376941763544861234284959016028318674299413179736871454621865511085621672343268192897596833828122945139994015600436927446911341953346892178385753150100679920900975697548445593218034331486469986298874757993511767179715996032627614025660614141904757571454867550247785354775442076852967999832496063529262066870891118974168279050411194198743885966079621244743852281916586494051972741452532211139959782721583533958657321417588050879019284733188738320018866519892128287873496533066586901071669151445603438994212295201131603124930503899295304886621360742923850144476985665381509966977833641412057031119217465303357702429094200335026409714821125258276491141002574523694891097603693380982001053983233070013432491740018774262455847596902678290590732750725241371300702322766737693892241286685341825268978042937207681578196043709344470374262347153660067717464871120045759622692710774047596731595881937173299294870547386150960889341949923277132128939051234782025464872467718352450189898827444184773646876967469822234140425012725577534591328751202477714055297619818227057680676868574225805652065146747049830586876693995379310971263282437617852525939321614257448578970263939130254921845592060207212235793803459830351787780619477132413589678455556337791451029277009205559014855042416171611023643553723772710347514748430512554716541592460334197556600440175048648818199385504841756108718614600029619327004620893998866282370332834792434135894364928545544053293010006787440729611713859067586579042707944213893035090078534265577663405569564853008558687457224079323515715444550560208765608233047973583434612039307546264265509280719091999702670781801346329718414311075075279787173979232959205439360499455970459852105963638655740502160863283840245568307223631430489739052153130081000148209710661936191906360029057897197291324538882334242117481086744337591688822373208060226055066206199408749794325371871692159539184294857335943102138322395476974108123618205487000579337534976580898032304629400915062939692339952650843809269855639171043922630127227082117661900549388901997951217469749664355441685296592859786278293943861610451391112668678023939587869997655856525101939639006478200070125080026855054680342436544012905647787929615674834632710605824852418991349387029283283192303363300781720741982540219537968683136212438778842847789893351180436442572782088216034059158268096438139443210813262094686467706255070537396261102215274605628805214436870255960715246473342692172090724753770748379060036992803029293636902983882317473061095038058865830689029313343043911897150847357111041269399581938592063098562602893642143056298459751859532792218789600481475954391242461111659834246913098813017513750101380928606465731644936006626538691691579685732322889550757279366108095460395788037085498211145387577523366513631793252955258595817008307333205438896598550596886074557087746499883260175651931617563774832417288825857156693706609436719700470710671532897424883896666585454939949320689046055350577212913369184491718929688028943388853043298574766048377709222694112778140962830604478087133861889956520143046970394839340641022579740179925722490836994117405250453382286225844798381020931193511146896792777104695146956995688573630277314290078405892596737007380193103167961507475361721002359818544165880927213467501652250339348397854334197227569128263040836642459681443771040464505212686461780852279267593873304293270894945900552256151425441201769471362781514279129311760219229516097713396257629043040678275397878143066673134839455805697955199406890564393034444000152689725893948283778655008095123002896403873906827043370262678494895710491829424004608595990417796447744940468628015550287326200076172818920643835166738376843655432524207715098608427328986083192587625732123261557283824155725148287168200317539500177110119010868592270655118434855685250979698812722218159094168440245758170398111946905190357903194862949775708921862492674302932402123869585127219578569656673460017283960893836332823415643485288590834519351081815144151930966128046651572742933837099901301922796810919981934808982675732211299922256265579786318858339322818832767662555361211853933246318719687257605473131071622018907286219045386200097698805136207746499615709343599616701525002607676316209650326516428812456387224757901310517012485278946721496559879311310712729884928392677907590815995370006321468209811805224793774141308088271105987720269945943926221445952485105509448538232440955785128773074800353758468994603132709101525540816803276411304326058820958403581413370977066375597783317420275424583175407160794403711661654339306138712835649633139832739954852914891875125619503793577528826264049419162775700693409234548326807694717134833634703717296027664677631586217146515967406624659832853931709783066488017327809517114318208148998925728414722011373022841861412239712967954649410164427853411669213555510280396380730056815204482767258973885645490578227185705842725628574500601961910941871544793619893069343160106239789288709642487327617296826404274568354114180763052481718617180650095169739451138864646187349643483307992816878159354974825727181643972490091096252421663807307131332941823442546950718817667659368583358534765832979262797590506787955101130671553795525960106688415979763170858453330794592173670248160756964729085208910868581694530167813672079559781821084858510598578038302771679436387705444267262094194476633127569482854037617136095948773334322172805700682859981719821231411406355518288514144735147992253439098963598289651783064063088574313628045363105394143937799188605250319131955779961329091776581039711776220403031833226257849759723408906392412953340850131431015223146703637782435204374972996202137356180829506875084077746044354701459742996386895820098592921707687772030106773355307882754697846824941362519130617788302352200570600321943792653025295818612545143126552458959986272193335627969564912283702204270981573880468098977847397423128712953108278243500948790144549582175833345742630589564982530165216291745418213343873602500141662565573078793062781616330771479361595560224869941204895459429734564818535563831627438054025440053261770117341673869206139122038677747700629056227422498727660044129349328120761436536261404719486698434826095507246224415151224263021666288329801206776278498110720741935226201762424622843243190592327193665126238107421740102009849293445361613334907844299443355689144940708348909356875742456449301922773399552218190789142032528811552874070117466303581606795371411870002277142609303645068676535550191829127587054890333472177875824118617157299468097159592609873326414845371147890849005587084017836822098277723376448518443965149273871481501934295686177568435701149948502950737441221652508579586857716672565066377029811288834808745642086860544853754334441788137825609110034013864346779687922233929700153336256190485504480688384999744922599613915396879323248533578686580053938336506548391827494564119275720439347285376373509221085954685210075842726552702731861586802119263526486756123972670706651096182981883266725968169667907357436180856885747174621155434346234922988842850899246275629706562758466696658652892205365124321782331952558814964755479959599241838393695589079266886578997548624153002372183817395915676210581906036231138202547507123002360634387019925683816940611686659152080979571829528036950541312813864418919690388430361626431223746196353376034745506220309270612484682942811086144270823897814514373556900966438279325758917899398803564798313729326933600746658011690520813266306816022318011578874844089999741214970507798443249242057178324100630261642001240703003685438749927498718020970726848617968883333840535985155376752579328257986598810499485444948553233225214766544574641843642046976332177706301002398258623536508005672970495264735608350230744297839155720135877878548686339594082471966779859417072869652976353897692865175561737897909831414185921501943077081272797913916974733484960926837477627573134380700011634661698044691145897995734379657337755929601886228070471332599399039242993689475615701538630947197483828125000897862666174993898354014372954408093191928111645045031242436885533531650097344582502343166144822992208672018931088934959534756479656883438752004243333371858526640718669973339976993565931300813190431066495177161067499999745988340968286093828328868240146835888853661446907177462105887773878429715359646919786976450533584889493300309278235588122272821347362121729687563383979935784743695034684076794245474168599781793181658569255397751271803446021643203570294810903108461864959266774659328636650285382727560059204011421014423083150720810339460625749299349377411845310821222133461552835824458431686282047551911977672851662826490425352192260716760834163302415552809408696630606740344949872987282942804270140489325699819726293293149716662912996200105075581183067749730013622260135325041009696440928249672806841811297539804305789358507432253713450035519012401319219321051264564768028037775550952557283398546992761955560022380393462213119119602936323218712663552057633485832649804242045033004415168331664822002170225289556379071123724996155398516928926440593891687380334107520864148236513150553731606436416185687552280300895919552085559042353130560841858198433364281567108326446496367129370662359960481552480141236390213935141187488264241370243744374897115160447905990100263136855078639890553563157735966144519954924349648343916463301644891271593051742398305948608533024957978133750129489104992760332888840179121746177708825574133683204766341733687833592225695207031465536026295589590716869059363307547281068916106320937359736623528156366321160586435547771536624293037364069699190260575771861011318595921848498596795004980632685126313504477306906347203096055984815695027103622145081094942228396649749870039879165313707990817467613175535443079920632463040429798550764649331435777671410590384627091765262004265889628184947497288520214393527045888390773877131724672404606213312548723408043757611270975335716279566441487225299663296649473796361912247766092761933905528285120725485269294461163454979074043714747180495825755040156585617979911617851763702239211110183841062270743694515743667680349862869785191562769401303460686432740866488449651919561383807194240371406652892039194468411182704917769149059925100265031405436768395157140947351166661978288835598254070044860008099713904378884675829578450319555173270910467336245308667112971813179118945003568396337641057365174406374096264415676389924662722795301681643664440637620631392120606067762886576557477191857343834038828898741313913546979111602908463606403366082946497589961625813965226520013693981994115959161933320343375054718942641713197747250047987738604447866798738252784558310899681346299288092105385970914684844640149083876362518467796130564555651128297270783257486051318685843155704812202770309355873630513235750569395885412627128222729378619539255971252128475558807899115385127292739765933954903585040336229283476366243641414817107317942030697737512231998464853495864609606720927205721907116030798349620384537660314950196038155951632039890506293058516515535600775323195530345777532577664945292551354896480481953894798808053161633284134883338988909024192432216783560208003339049621976188247498264029558608924273050921932820671811647319494310589086491017413523329309094086598746986658759383328524295302129710735832232526709610257768654689332218243527439748727375433562825353236538178990169889553794796732717587516988991533837971280446907246373133862871241863374536159295996999508102747388638886738349820455613180500063279690819183039280696431057438954510509953046446838596477608792504447833195660744090658599366030141371015646182476908996121743879845038516325632535316586136965098647495240606384985485863765589206703708076489897473806534318626085990298523179275143408466829486773714370271457762126711113675707494384192035276686470738169958745231762011163471529141736800625784278262973587533352596586672257200649221296464068582275071546173138401956841615797183714856245571964518673911711586641722557435587091007045580608924796959762793192239362450265140102298661819953793671171348110595525430543758923026631017925618476061290940630030502167444419289834948837495725215846215905053353902465132717512228365318815212981534086828410716264959638029815391157387777492038337385933260067467459124350098632957124950306085896579903918124858968211308624365912743018285295702322989182152181412646840085244835796513795043185288316828785786104832259031123336984512026411416791546786952296066085102822662161815549246748788455315318845065986131411547367469677876010564066437087027477522822240746922802080519809490761799015566874396171568248827666215899834922659306841096335369193554441466492683438065225003876488103562580323700755253882982752777156448823044924540697873222879803545946947907494738850301328701320363743074232041756694257844412378625966759770364069051793667088071722796886493625013183033727675567160559800838951606184693089276448973884438949409024887236936255996647004600170940819101122624282121222337297046598431390624890415764567694961594629350565109531358726898866682630868337986004238038787287792279107903880043772182774500449272725149821107915319766510207825403585367860901833724108899105785850968854013586188902914377603604717489699233360453261570223592056166065513342703088610085471574756272791401540127559773202702629185278847450432755475342485038998226066750810568913746832675094630338694109376427682778728950870056511387533914562376264333566078060959625712093202356925898402082862209942775086947802307950393462948252343154551276510018817923571387199529343653943670769869801753153859561251898776332576672910823305371000952070214211479472352903092838922393837992422443300799348541137029239304791990430279801836902152317707394350196255331855943983607294584403497166445661776529060361965338238969266997281027338718614506033500430312202159531761941088753297284736491114136018143945357058630638320956231495996830007451650883511693234056792250539028901411457317101050524322140474201995509267960886511143674162526322845733602396021236191253129532731984924767375415963882612614735504333756960063788900309530441915061451168923467285419344193202475585771469349746565383546502591605139602764569203675337192370191992070526382525675648463909204719365644172631087572634282468676848303900429703805935417570188363889682403535723517862674725663104911943775359481366105361207774515998447471777834317054377317417597879408236190499568142484614985819824882827860226354347958516920912674967691545927307489718669013711755374315483661524051582224842422164311987490903933412108722840666337306944068728027342634901019910818635289495351930933989253154762107970455822549517243085978806609022365279915814322888154885018910724045747736718719793692836403682400669242099028183327217094421903049546358634886419952823608026191201557154087794841933827590980241070323988570926384172062859783251663471461642602198449719843772220153251352695725681156991483011890315852619425001134990592483322147001849213610872837557982125072066383742498801665771475728380081878105859263734300343846677760459168988045308066308570137379279582470879668209042046069044485238688319541249996392175496847662680346637354306947429935823706945474492718313355788771507185823234258057406776011519468725029927244109853856321335866942842394289253793249188625690767277054622223661346596983890718686834952963685398712146501548865665398953943017364728877284897519432204640598538712000661151798360160309820956768028901192125501031555662930281270368391645944326802201596224049305338543032043110122704857288947702229646082666734011777296951716033798478595550749938921422222520761521109228319444010357837506682619265105002479271116549976543139205837389462357733799160624424749035400560737857892744726069006920843550122338205299307752191195312753686006975002194518754897520953656694434508229298628047134987104812609811699128333012345056479615813676943017615632429231438046469238980731670044659629876327563910148745502545261917238641243315209003719322317272674055038437265899501757403053695025336778644968952168902831695157164027086291655262367506663942644662511975985107027066847885285974350582640287176651151336570804528648746343735587666124573557977300279035495830077237796798605525274784480175871494946815026497580679584102304677666484658743480075192077749770036856252758634698989593347212776575151803986154705456511924069282689799555294333886355648761800117364908519827252822958540926695971791814879527796487548590485490457574595835513215319312315329236411118951455574236624442044191767030887872990631562514155150509430528573162295795512334344055852111332613369602265819551410731736050176119651877115654460732532686607059517525805360981827807322330722077030593345795971102398035148051012534197962196039229057863926230281182711603462287453503981359716972849424333265216002883720673520239086474260022826610857086904413544838477833602269325074237029330182231202106268244980324092825226589395631503587350280530955518355661230426884828553298096990375756303327954123780306568221548657953059133823956947032319001199720484625748114012890276681060598244180236006868590285908660296975637549675249912230665211724386843099229596106760258966840552663625465417419407269441174068345112496611713460803607217040370374336318752918571900087112213721342851167714842921285735726867971552915689569787829139615150052756046036582554424176530486440029184664436742632177252932298616374814002011429162191314433031156882333227346244016432252382225903727983123016682769167343933632132746348613736213407432176221352149905445966485854577801298174111524178222982323424293410919635592037849604953303915101987535206409300655437395836301263869257595770283055851493366026260932361313645614369733035170569309968576711331594908271059966881355963579144616306986012080056926540580527877843841826199448996476284255053574256865433726538573291880617548497515521905634421862147074718449516815305658554765776889432409500526798263496322766906400024390856812910621142506713043607919496982684578645410018455524368992287775851375069555694042743016403961754828500378597992820639408242058827437950709362153828937311677816517095223784843733530428817880031153887394144707987504460003578385401997105328705341735356570978607615092709145400472719931105719636828761777819483874415022708890364204666120204620133642056511608853020140017803355320839617837023185606341098583592817794179139704316946392695867771333726908793153751317343823589468057056098752895850718921258939038163307883804832298875744549453821916858644823347977080519426538015154941392628464437849675466922349173183192676847286959505490062482198043058539158578857027555225750868135932260605370532112571506996777098912679726058606466474361466520535722240986741171274675126020435801615425558470076461016117229749114985820582846974032524044841107986770413785876699936039203720960563729023026532258493882470507477781948808227237022295828665921881802934404108591842821730277227109729957982833836730709004411341514810427982704326905564196873509508923125105770939997928312280618122928060349895657895042878867469167405143857617587088406946180501286011734047624269673137734886768282853181043315482883320557799146869661122734324489148532526780717274106526986632809201888970954117400091691115273635034713006002316962586463523973055538709959760617312910965107867797758657112372429041343585157620835379294592985167383417507989772076468553715178148993655463357182184764879632813681119889436350967867121571365106110128013338119784117586692994077658015695242835692550760929742103657095305758565797058727184594894656980278885245721102947468796212508817107488873644316498753458014095012199696965561349090264503355501107337871156049738260767801297034988725033628028035839721287404361238237204071199416441092317260059254082044281629512367022961916482253906347689650619683212937420913717550870702641823163678996562119225630217320208061171586171675601550545769813596170970692932902270287738985198678212371759199042362188178012000301449593951429534473908354875509745346624037045123446087227570844093263561849648113430778979232700502539608165286744617631693267379280350119706544303412224059055566520214640498970415997815372153559893229122971424017422046301316535508349109233236884891529313332419895596737585501084937618406958493548578099958607814980059356457750073169036163556764052074078634474859486679672639373713628484657814302516733401745244327226688656098873979272445512660492612186758874337547462755345300022605043897512616813736253806179959926718046318129379567662384056710526147513379588849328264478881299009410726713805244915208753791810860241729474616457845738315141857386227997591440372930748321091540959775812990616713512444882615527153792684739083126300212655888400534077484387064837988524053619211635864287426704848484521623977379525213966071279802546830910865483030838109893197694167673424312492810612435554600817467608797474455265133814994866583270368598500695626213249374029714969282819149417420207611609678394004281577433214564885432495015221843323730588224176886441010888117029201455036546582414754172266106859299155151501245117529447841172683933675207062771024677174410532223209564488842966086865594362594523634275875967300463695577057726612915548258615965246011639828805793367820363257065719280957743940759489356497144079022138534492907728150643304889497647300187187772703029883276188457853101301189353564877784765294252992535027892845345648100235638406280919373780744094681759762842862499379287125583979648999503801991907407394634191211723248751527415531581319662905793958974926341108667529573584002822917385036486422621897596184184602038180119112996540127492779307800613154951409059518937436072038673403562494155230826062701699870093028408367284386154825495731067726424198282785797434210085882482792479608828321481581603081058608677894876324985330714244071960776171769966719142805827869742012907659358250744538207947862987557496328664650101916470043940796497806915085172304728358402305617645870781496128608089891156186814925522384797465103362829871790475962590045865874848335250683950577389292689527857641253714187638500615909091285480410106034201665499832242026527250217267362018363164431755386853591503793692793759516140741937744072186476360054606522308429387443640349637984508838198760084626995691746102107368955556498652748616786022944871908984736496444638975238581402885495031544110773539304899103323305966309876747847646230247661641598169145288183745140644811634431130354929340796597659846722793389044163191637997610207416178452104776569850520120260941155876709092095385651021032455153004360637161968735145325440895702113660709254775277518322207198945259586845599050139246822942796083034263251948310527622348501537205184081346664445749799416167572522842830943801039553919846660921491203890032981175649331721963145562708770484171268926676695827039034512336606601048326042654572194471536351637672712425637004996561273235225985838983893725131375184918812086939028127773035053335877416494761880104032543575898564587149817918863663641782350217021383192685534413888564970675062778597855704210285046464610290128968612079336726567480132767604499006228073517589378319239290597245420549635940197300351109062913900831278439190666849296436643333528318566677088734278203462605537000709810692012825225537845790685197884402544846857854484095258653096872073196605403245068440861685549927894359314256425016553653413489003038175909842068660809787854537852782381991199529564078422217013132961592971296305891670196043896371820574102867076080292730441258534413337859661465702453296376333112993082813548182598225609227016078522232896416323919287983280246611625639569995856671738367206677195500028658088616342303046739679212118043637147196832598573791348192201185168896046303499482939547564420098274392978663047832813480252718292836667486904536180560811046791028509793314169828149002651787672582735695387280091715797887580417669294481650937988106330260149380365537521871738102564177271342537448735311081908661854155121511256951477511209707046302829883195434638804904898206299684961149785011642726301977507545362968714074538992789832423621181322178952854624156824349094017718679483198040005422492077596152964627475976904737803370042529177739933537794578136225044492983314602170526923274743985127801588806040836854931384059374580756418613745242191643163790654870309541497565988553855006842128895568532484984749381407162773773800264307243314111499091429027710958482445542075145228863883037335273403793330392826533399425908822690128435875022979491756441861143001134706192226227068428260683370902729591344484421488971590834331522717376321169115180151535052975684008753568944505909158800823698040152449975857109437804066977642904286203638360561088426047631745173208348228918172760070288033603368142781647684067206119120093143599133714595765328762860864407780410978744249419040206125139535843846203142504673342088959944461171474873982308726074970253814958275981431810754781639355373144185274692201719812620444173575503636227997846841301514828335968195280392404938953074648306198996972674589859990555478806890433708218207024857757990911645058841606551047227535849469457365519134243540215606329053297972222136807394588156617412535130672670787076665646628765090512244581769687024434333271266568878588533918232031590689300017756600679150325318036063904492422685260267776510934262379459924241564321603908594206176351277496943019819721889208617142753724052035110666360713328320925615824143345581608156772086611663632556495968406966615673095113308451957287754580302394196581541556579144161659527613064159707752126442956465890835000927288600216399684603520105872001923227555570162956523296623374250831746820515862732866213042883162061209563904363733270984870848653764397368675532493474995266135162188108355501290838777555440270511208445489120753561770476094830866768493613140074477430728201659986276741209231175200088368443558911489755605941989221865908025521526281679004132168222236772151376170848528242590407659577646971602614745697907882835276746742408019522638941702298141813581543274402105609433949726567034273908829026637037213325099155802295720806208215031618970408986023868590879482637472511775194268179347614093924240344146272981049340935186601527754938420305216060166318233002445512213553707385813766054192273123901586314522124853342873674849319848224644593404781709098084790400768771700773740167465931719205243044743219607140363881706082189195910662776546375510529089374188725788583347580039876944510812795802272477967643630160213067841878283699422466143728890875145080385744276312461473429588133454519115979525431572118512255192375819208364680773145725147698484820019501892200249450084884855127969199384594382826041313662918213107939634691387394190724739901879595461308464183443080080310266982961002122805105426799048747957456815015745955101834517136847777359953430582028389271838363841303177576000703220960210833738731744048346743558235407969411687727977330791992878164549476005651010945852674303621985731649783580498882279533241943686025654617731800594434150842957285926232375221124737402722081323940675335252490650080557798459162938715389035192536655961895360135524658377622797618840831089298769842240472354266286830726132098830095010885449508057424273487541252830991086381349122175331105857828641604824350396825863843237932260355634608552340143609378522937203410751045285053853957735423491660336413186937724679847836887163955710170293889781001471709638117709574240824063384484612780709690215478796473637290976743538885784157064388456475829451061882861000282868120053578240401851253099707848635025839555519463118917486515872882938972066334881828044382635920333186807063068359738933879142173420935399090929998911635432464094958643772275729505566654694390392318884603583471411942698671488228245831082186453519195953314958784236964591232385978200991420770603822721107214569346004092887903127165625957018209401998344279807612134355424264325833095035113874693640898166323419814509984296340029343885190396778378009067628839360510677778284828486576143961634223561916435398866971420817344567564409799164472734801622591953501159804437213126505155846877717333557263242281197839591982505594475397756794646376294141233201448571904009199197428849378238705885625353451700145256262975501532399995713083171587611348054446199351274483295278759005505683008214348866154752466796030944922005447718299811097579229242728550145898088739852232281804090282149341784157361845792558321017647807284235442821361912450651172817125053300651204726280529684076229040599071078526349583062798659997159948523359025808281393758131868081756137126127775602348707249870287020624799100967052657438137278869122090067810733441694602072373315468858352870285199241477792838495794542612927788207000355229751804904462455247237127316150773165818055970628926995936493558752413166942389272552888309216265430292318774801793859159648270367943922060222219458678549768062665832786307859869269797472209245147131625191691861159808840604877641784603579501344913295739105837472965154639259183901401404319755182665070376383659929238192209781781400829017999597728766325774479761104319367203573085905896795840427687165474033517022124933100924967790968604176337950212438736085955313742080910847049761385461869424177860471187168003889521416914643342254874581665115739598113658154515802374034272074645868832671828699500444770947579132787559157537681317808080945744196871551499412446381971343734799102069290610210841455440768842578438477110684488591694486083252991510322191103876782229960640931395471241733654657534166353097651319430899415574691696513656845976982331203773957652961472022096802909555324360288189777927700688579236942091195066573507089260894172904406261843608805500086386584975608840696405918833273152251324858179212761987183077394791979033952428309230254210170655557558136056213205539747085547987380394274656181976740944711591028156118057366150188416174266004144616397968633355906859888830496000723217033333811686603958904116640514174048444782447113787174553319540210812892173699146871205742442184396796777834316848256429898481474705238898754852851639318424927667801391067332365385989675287034125787133329967310455682529534824839349751949062724296846029589599002311721774652384120111259026443988054115186542488405337241477982096648695246091592261303014072593721603378318699275436133187255103343961129081421199144803786582122639218729697141352139154757018462165634636758192498252058869972666418754254426411308001420836571407164491293542404599917631693612114235751633725773863580208720346859452442426203569333317928451455031828564920420523584251657989415867942849852280776479034061176351306555360070062768301072494835506426063572627643687415786843840878186942614752088067616651159823039460939430050819321296033486685264872493772821871371844836457799281836860487576801806514110784015347385698214348293992897118861527687509932319335373677527407351632737379380400328506511770794885297156543226063255727282938367524673711637124858717560625543021023999042727144068762145233925078713788701759935775902886257989190395571814578473194648507681462090692496342963220145514303210987414779805809185430485593024731126950427795397093931917566824795078776374375358934650672757390508926221554205816084175028717872065882914033768736326517375786421355265428985395593244090682876810368612797536807088423765573616578924234902944318148852153354762181308692680834543110418403332617774489378674656878343650276315916060567274286155398945337303928801372265612071213370413792899249443828690893525850263242328365484507651214830039145812606028316564955853826591239910003674300398871036483801587092353672810440223246161088340175998578679149793177413891563438207672308842936418571648782797873139154874332976392573922130261894151055892369748599224557101822032223344965949990523469723263409744605889185902023216722850013434004896608805114755860049181469533536512011521161087182036074855821875546097998035982242682039155798467054885132851266846058106906561021882442703548494092472440885783070225885276002024914854256205000161499478692942557268626028156717610096373347030445659163643652009658171622484768355167447385893875126498740144485067046095104250458247875446795279321853378132127835887913201393410024432887133313136685713930181333494091500057932254734165273706696473214594910188724834576549325756134767350228748092563973606486153803251137749725304821786831570136731330471566955287108412311290717189044996127342534255018498971124813420125775473898711354859273990810523500225388543168062198538493951860160439668182588568260453003868319421298260221502328412324288363847954524317076625306628596306837936276488843808403720783472091943817028493221500971920183065855503083929284928828850919537211043977440372921104885957197445011922715116679065213824435275039146739163572848194561944211764157099522136723754651672266376737763499611786248592479000664846322690907648940737026121444183175994124400910768711220061338405429285672556757768660500026349912370472953835688253269857416095619440487049048217261572021277370292694067206649891701837207037683597155757475704296418661036814327265368098857775233306820195376440287714403839860760880791049561949996333906082982749711154614703316573308113654231645793827956143794221797871716730393395923379967517242926726497742440598503573598554342237731991956456333603550363661578445901381182443439154436485990200144053161034908307303817184567521442349934797873503408035093883408419380919652057680848348003825930540790486449016887223204528642965736759923996780823026050376673427635669087630465320347282900502514129916310920408059154168062836733402441295493240362329599626539242856573329953516284065347952422986893262790915439810525296972837086160859732543072204557347655609805597925566356456904059332338305402776550560593984075950408724903244877103643498685278710759256455651198400782904140140520138212062335588962459242089538656423123367809316617355916199669120925515959032712949908055672830511388141043606483230123966931207778839205652324962752042578546064393478649519992309919783927208411652010057116104463462106653584664298291027286541427079656659654066552046750768086260412231554437019187205424907515773120433075826425648777390062878249590395277115992567202664464339019503702394278024752001029457805333989609369790753436167172104472283503798814717537035926479024368110064118139246048908684946637483510697108738398895541011124498699769941871769836880557506302417944354162285166398008783905013181870693150295200207739545538966105342596633146813093068172228830639692795298209117354277588836061011351327679746196086798678110042419103503770160506745608116983907816725942292375856302432048900922953125825556246297911215928354873643368588058137289407545199688820766714423841838080204494816749377758546340134083451895397271519081971446967240836656349297307675270938409118968235629309593578471684643655471144889938653421807287111550808127037056532788069934647181492949940653537092572919660037722040648880278663881898955779523120446928198318080338410663982507858735194349897412161969216988533219606128092988519618540417369275124787354366537570182285903468582359419237789554913299088142107703514904773088655659577233845249132387792041088388195889009165334933400805280566483631017474320847028854150606889363287621770395284833479540656581086533962462717677540367439460178474067069423710750175511542966800150049376959737129492329182839468437501683506789472499468572634704675874306896986677477463745452660454066445884024225480137063705917908797492205819682027441200323604739039904281722394010254809122588033947608335598224893280622629983661412113302323388293139105533142035916900043984831104413122079969534706215818169239321046319309459908784559150558783459061407865440873158743719380292057087673951810403775967439186441382103015147931301093364710857248813563486935080949276543129536454954439565724057962660915626648321785713504281088242058595397374269483380237019798300868201167078546972019225041263001444610531678947222126086572815812071089250095557755461558584552449519515700567964216244871959841178078610479758745188079909283202696349051522475715536979958261644786334655338133606300121845849672388818814031038391299318314337460453275415042213904708867808044269458210500067442659078027414293239853282199510644084014686641080246586632965189493640312895962743043307625407898450315855172799732902409133907690057768350738083295427940937068016522421779111456772731273166865409958690918665019727475630454777730570994160248281556326107653451187553579802776612287092917757807260466927392452386257263053604289734087868990552767152563595887849583061570504909537178307209199374901447500450959987425880289970140775442548596657604825448894320502912582172275652149254822788625163753180411800431598022818726359159114468208772225337715909501734953306107919408907427085647485067901231033091885755077032546601134828121844331253970567907057995959835715003132615929441840823708607421784451261107304715263850055266587578105609264952338839341111791233021569254771849326942689991315387456936688882477869947381765315947096690670952582525208071405477712619812807801557007502372693666223787125402009816566431561615808163039140674045186196229370048958584437791945580852879836103965312898565165176145612090001447120410545285102758348040909444733791200847467148538718668707960709424339867332154665670857085178033356384336078254377238678142777817595165348551430911960436957861048438794200104285846922871662604951408080791978925080318193859493105330486161006107646764540898318153052494921063086447453326016235074175408161659723196104902330068787761518340527100161431223865537251469755973566669922198692323594305701964287185226633090064822390994827527142802824703508854758560256616005463308791047805252268627941152269545541658544188917757040718293484317253836716314395952575956248252512430267553578854535225802660638978082250278586734609933144043627602537136318888534396356389317667507909239266588389159343141192299422862864338950742049038098828674634786252749734741634012129021713019638057660289638993864535116931384720854063823597871684535649463897905220355496929323485518541439325654007018940413628345693335536484999903714946260819993146171420450671881982282569508832003919956757780649446512285954341498751842882688841082388790013501314669761208565488905974490765924476551746792146655767163894174042892529269079983353509527355502122947562114947434176969877462808975267323171776454942338945920379542946176388435912619502907705388359620052307195736502196148087674520739710459255545034549705592124543689563816386261556772358311866684494286782520289720619627475087733994818453053401431743496745938265204429397996019124860203638400708212200936658287903092264918099963588993757963388715200663131250042989031795712334987978221256468520993902722787830577266870848833971111490559345010174229188593762296516347351653196660357278361659651400735459699504058066408586490950867374713720442043719230035351351287181184018847817276582945499722442769638324794911711959700218370752833281180302923114928293211354284189555543064049593259776564475238347095320649997128166610960306969809807027502845195657204823583625418631263204855977671613612113387819403085701653006868406041171805408280099686407277451124635375740613772455661081502864816504271563447692226145342655710513075367026093932771320306750504022448945138677951802089402233818554590771930978211507319762276960361578094691602219379476929558524758626817447276270563276487340498121868291332164742018533429926843421602646217455050672026190947368062742163874158832096214630332655850302456737011959438768868035917710919411523280739844065045679853257656993105685766740678614877986669015731051999427185832881003070764942774695804988042279506568530369488166859574544619839746139896704415471203295277347547608769863020129669072031806727789486023515723112138431011073605222887023324616933121359850312312423419752656027790407906748532978382488604908550591944345845300186149648740362050605864128819497595135987333082038242041044316431275509624341456842675247001123426745895249255050541246511442561893614650609864508762647954491176790267271692472435218913717737194521579733329223139236357052792661504307811195445070717749014324350566473578223451891372914938076521656374090853356373080770045607381784008871839833240997562462398944904453548129522552100795128616894910162718655668200020875136786479033474485991940064272735251372412579772727255198622093677047604060803563371588872639330956445503335942713662385649180349661969034279633720712314178058997073342283954538775041948509550268654418770273483773710109059586739810465458551446236283189814654922185588342093215733828219771356426995517847796724582046002911424999636518363978685118502499638316271474374081227632059384486952823737816795759117133637146520741974481752699851488445452465120383475362169392731594532160624328804811181512096926673197184122974512097196550681961311253060249177809516244435401996843976159528279863150670973934641993639778331845101640221814618426962159767660497006279736865577704572326916296978364345821675905036206735033285171077153958668914861611761576259930517199904340049152934916719017833157726153960255428456575846596191935403224549764084759817951943623828434056836310094362363156006466537437430316059233339515731258323535267066785113218631834855727372586250610456287437586661527556164698789147181331555052487362529958024390558301141297715143989347812224220584740710634377666751897459183742745279929273744420795843799761690223367174652136059270161039346421153056204175717943011260410389703008236006081503595442661022292268234549764917517219922016683046101774471406610920582938267403184515524527848250540183163172393688798731116878688743320981920181499421126321362096557943175600454292644500799367380455080179173052873130834685978679714294311596993024636834492657623553171667984492189776771551430479777335759721656863531537230809421023734683788586788541649473473358279836856197041064839230105478609772531602369651502098989541628391385736545586490844786900400572128995711527062379410369615891958935649202553081661136229818222878141934585606161539574991324036465362452366821434476282776182177287899858316326439492981518126754655408703199443441626651468434111860233243832777481764683769446060008173004519235798954687763629992988838680637646509027571758159791540973957115156253689619217310456516570519201916063123591214429873900745867524153436403990302590712054082013481424792942216742404685306982642203727569752893178111651378426679530006631958101356965148065579634232312107514874236779201612640363011270625731592082781533498929371163761752342743428903433789489257694763420786020567954085428589741459339588292544147654917749713196613781115006104976432858801276082585664654551896142966557164147462553502072478065604838989639771217306166087139107214770525678007194186092458303110199687470883689456145406525109063988866128074677850317422480596021194170244337845322917456524137118526417501777506849346922366446596194834099752927977904145629642110858851487260904743873229798114563606078039888513902720243841924043385273988280151404519518999121422378679379685326136699438748752511784632850396494513847325348729146261900410328865139518959978330202708627777014631364059707527229103695615838317804725748917835433822747707895950716468022791728581458640545330885519628389387386514868484534184098650810109037784208102400998286396890377488427220635138984941299876723178431432863870273847772984342863102684166221121683787949469132686107863039112694155636911446833240262609919987701142278590131293800881456429241300151267020602187492941450997435612337884077177116908102175339390957183232281755053096309750556707731675821160607806411889463024257757825891280146420176914856046563603917362385459248127107767458356497997122509637434656966492277900200431967459637399383989399513524876490482801745006219771469714066292309284664852723163222210453798685863035453430624096631394097198088693703482200533196007269136434438368779081872528093893072674453460377456544339145852274943364262746193411053935001513502107122080488794933325754858844596602551159993223502128917102617080869327929412314926894260789715847265355791507572062154580667463112069551157655697961028550413766419469223359624458465283750049819688152943890174273839818075372063746567030324624368625766446052804231240104422007329112888587703082812499378486339050949381126566231648431174011414101172381838603036977919892826027174402985019399132748463456260959547186738840781006444725673071756855595926343817758744956129407635336483744689619468010788441568460925367592558124103921650545553718442773128596210864239095697285963380824490025499465877961598858688243453071124887457645243133218890329974522198829535544855090322644994862603490311164388576378052899578775230293308588440658354896922909139312086565211698313819221390453018236497849407934939203631307723809882387445460413522802360997207971501643549962753351207631420599989436543665458616800610767164212969413494868927440652131589457860848879073376867271774932276063938861275451804626245630603232679834737387526294389327936799725791202658067529888286243600729788076708704141709157576734716883730419296249747581394604887811890037257017860762331604406641074302667306085655213665453171669780507440626085800696027435902420897379435548910766125062132797210715322253468616606530616669043147370046938198699452960945661490894700597835222178254679771801203433782166850613061820445836746551368060911150338804913946201161960670982787978111339732527189993044279373144682240930055331184394176212120751417838625635054280538741907001871096422511941024446049475855265824038717544953110154858678663035743608556155620082790490566179866083018995998529383747609093799671104720337775645494770008501002974494564512448676824741144529573680900532777622842627666178993148043302172950827065124886879318895745866082055102350909112914334378867902734716985046529762337045754215104935392115113986374724917904664327805923248279302158604779443200638276825444835512069733754502858759833430571919719783972827721256164520635892117738365472624733158207756911003779414496644687518155687171723822676107838516954396365038846193670001942912146975272206827185217900367864074779733060208965265283519058582673991724902019720103019334911681953465298643916213382824314290214908210372695030201549048496256665162173918294029027135264504995677948013778244681240329213896047474446954083495097698234241263591323751005369653614759425742945183464508262499265613728489721633535357405031237236302339175387401370743084240263759076895008719210979671807169177499863582215922489268296319238837427299574638280069185526437923103750411027031230446091101658762727979205208752647964669700654977517702269143294350302760222838229486619771652207173629708344044377544272575587925085485960985261368207167021214364465173303593987113986189820745214546299034775509539710899950806223329183906657580183755361899503114826194394241690696361809289731115974227826050085659251342194239186210897115248451104468297130971011108501440803665089420344587153560566682520390280051402975365227275288284386477911525876566526350558196323191867762255149840639100167051617846852185008097785052785732763285939514904058497772012019619143287280909692915934835042650582043732248343124220622004406232260767191271717990323750204265037281994185257449757023087705039005659562187151204872634095032132240641710133171268596292462550503311943874400819840888248044159361785507131119793428947962215521522872024923031766438137534483888826355057678434820022637352252596017564602143840426177111795926701479410467962772050590950817749677720678260666181324154011861576730718460421704852471394738947221409609688893381789350639382133281733192039882377622724534934493662015437524046315320015678751340550872065118486157647561773692669658406982851344811550621705427164937209780436087717664784344364357131436393249862704759750105681634359875946088088073981683581341591600596693401278733083474521381190081294829583312581856191647818446188273345860766576424200582250350365894824013797961456105294703898717925409581003500872770767615207038828800867244308438172372913262892676350483274140480479990152301356768377403687419690547563485654212436916908780525402300947829104770423643727338568899765198207771598930272412634638527102902030803712532114933149625536194951857151100112841418964749413699395640877548097243848616520957629067352815165015833010023334897189122769528357809806812074634321668381323355917492993635168611336493712325510495889745477267049317651802921377161898739010099278819495416524204852695589436682129996289924572693882283737211232929241675624119444678729187506890818454660080557395912065907445308216869459907588929296997311119738927643610169156568442107442192154911783614229676908147399142243668749388914025803731473727589503031072569854626746049320339106360301047724067852373720563783527262394668587421096597912736985101120490183917547348650500105544101683314323286605592645425236034650715389499654095406864211319957017271928820519632126285561676717694320742426617079704193980740359537328954024721261941854882768698335602786090689738676293427354083102522017264985381560924931471892830997248602329444283687053761408071656822747851228015151414179323827649754093157110709341671506387821847209201274076486325092853366982078786207641269789528405299754649593078747983542672510022839822332356351801474928551214294895952295158728648224597431235651638362212777859921193216968439868339564908562229776877596543446977185033845118631854088841185095446310294795598843205580354415261380383622541342100841622991786440648193352093574652394619337619400624632243783658632238927934072736823805012600388029095160676581650860202967830217453704224784199839967605577190707591798829993483099778245144520120014440789254140171015238801245483504999510329629279837397300429056822832544776418817963428966269078895243890506972487295399604266821001115045825168416452117865476697361639664518169825299290969567626619246306452949658951920413705493860730234620668948188895612566817137663141543624475258856132940218748561535107905803071669943456904023626668757953369515231911410018820135627970116489324808598182781122445840030388149465406637023945267513062580377475191903907156107218942325438300760747265375536245018509368802963800888036461453744541315588236581442138498063337066861090416730393195477034190014765829020868790960746218520669505344215500018761983401487041114558016751378580701543841835107929169555386348082020008646513135939139084208243742335672234322949661143201010079944222921326386632073487020969670396688282029910563624904113391886795199258352860183040437630835023553384439145175815434546620817206448876616304737549774272765024930713899689064091424410947517208649708743912039342633048628926929241933269712859776887591547808825516197547370210220302654563460066827307618575061912771384453219151709211885201329730388693944306662280577981882753539868103277168341408533988867736871337961519684870866265713694761992571776822104172715522789673722875526213431080319902862508636589721221471719160153723775323132181943036812001423102813907704466350287076977372249139389773737766687585528120701889647166503016319414423397928615125162111387438651884306927324031708223202423638259936788595217431691953941197661212830984425094316767348439363291682668728156753588537567754321304116829522919913427484561955583264929390720427828028178623148797317384986439126581030825709785401528056985152911504199995961100316868655998813541708146796846024830406770005332092674004689104930924524496050450131882007789669236728835231673713149825279642354118521801039687914177494211708726300024369819963160798698579484453427759580150365160965671875076783350616313225501686204913761917748470995380516667951067854997923850720436124317731691611061358082662628738563388662120177987582204288803976035250161636004216316791457603481542105086230771397544739503377096407926474035348135236166001481223729133705561569037799821402179936921385143498922009434571160717995535874692193296048052137632455432302579255620791929683181251148926278010302222742736180958982340257755241805553845514219238740636595523204044251835237269373063727978963560276085744745070901834829448168506019731013337451025105735481508401184015231835197662802859615275516250271918077551845674443110428876350610572082804664009974226672794430906218673775164984996449324055781414189098062803122507740755461995166700642716586767857482282551562349594178875232502669901426419244046920358514305938221190813847915030071894537822184288304611892580195414368732393746672026914722708652235197893891842703088622633346478605919051639254412033462094531289918468193205497919494003412397934079031759977166028722494632787763162711817805058550585540270259697083508354976271547567087466210686513873969455940659991013471091653204261120231028889928007209600488717438677064637284437435901454379907888761871595393386434992737525535597031171002286067895493302120668769994293501040550047900426133525372761277431319208010561504672903031069048875277792693629120711923117817459726251868436234877890531517647090345822430496381534184948470878609428146308298717372431832303756145637738459079098039028991657787088576479255374555345250245088422641259090635019319477319638339379082230255863620617149057759799473411869380885165265366342170840498834310906366417008338251465206058739357932746577698745024946690371225540793538960893338910957825874604267135386333683298343543450012473112964604333101378300219347381018980424342193651121358293264685156048421452291473645516537617865943889525071503135488467453243289694682275344639596195458279011698127929661579264832498603354482547044429787781151129912223689707786783885812972711384219608437984800271422598018019069974015746527527438029578809219881025727584055505872833616723095883345724375153837269405811868812106799345680415892175936188184373344947301777816818289965408057343939816065675255990470004713387184069022073328565775226961045475624760388648454102188159396164861676194736861719213527927595363984193425336733522487344757447569710628262359414460319852586562784283648215350257554163446220836736518795817926646652578870357817121227612404998201955422202702409441366607760217490644445648611613270926723725301809930716460755298479099452591179217853638541386610356132782081870341177533305004858622628486438388167281874581004950297204692110317015838238140477228917452844354780796927762714941928095156256580228228509645314382997222193389469239226749759925513446273129951075816343075780097254572858190762113066573261850749768718783811366664279133352776223233085945056369784019624699280653733010716838508417320078393309612751547108349985978631688797731257403288576241890295356733484659452915649699510737674403980487773622678544696464576822520569373938462077554723532730117668658353614127624300812421515781234720657883334493474612381663371539702197867513096558371659088571421435453916074293778125031499315374022091655235156953225614141824893076015281476826470586421425204250187473513225199270181630189216324755880890201321461831387915912115714657174492752324841856769856481341997414650638393428278634914582997172429585733994718974152442055806796214478696247980045049361576530295230469747633934479009121023615050319365599133708726121324400227259244710690379752901049250218697592483674956022769185858290877625228527635564016972848902177864506294866514530192487500700435460919019837614276074758751120875402124794481365106297292437673651360424631762465375469149109408019227023324031601555819201916942285411197576728422137203317407532245259727331634893874286824056872956633389025098900693241444670595484244216073388875740286440546689084250021077379682388127083757984625001928638904301526404314642855083630675701197101438610635686740458292388307452050829217639052494921060014372333613846220437006334998490619369661235965314616413159834644580083636250167653030073684221543048195721976940149615355456462780463741988982892665206746385979733020286956959556016893174934612525996974016468842291021078421586284902661399439107161270961881995594323231422499257587754312072086192793620099783671670514118855265143369762461814096123485723595248255691860053590063839211544562828518743972630389391325883753701501022754400967310512355442365468500973366691034579714879053735726619318141053246207876400514464563182554212915181497392116086550788411088102454082407685425110563364458577699914198559641440345699324056635052969265276968757475605364487212082243101297302041849652017090126491242549558076688430886406669558621389042370372439567796872577273004671316271051516794079493175645154092586566271427606581846542172552304873329418440041413908667146708799720292323954169337056144350797174766716184816630140880871516403656685378272791731434312449994583572762538979746383333863797851625929271509721043863667389989633895610660857625847712871613768645927550888795118557003931451723612091095458878054700917062991696438729284111847147947079872166996541402844802386457626452029406244039786978969159865249861657145118126709743374524280201150885956631217659455894757012712643655376921112805029418378933865076161378984856772328567853881851956565006221841855545721836957392920007187466850851495883427581251581801268936208487884240415036973887044941156156871705504194773226666600817014068001270093392694334088849434116272346688600372808875841752481215842287875174826295863922206724957686699869788225332923242243349886878431595349432433837732468928429198650220033523681722404277619076959483060746309167993740499106243041749095566242291249670458878325525398851752997805277117889386452444619051309537095394765597084141173015544977570303367923860895008651676699899705991996139640453630354783428461274835339191421718192420220556190834205282956460830908701918104889825384596128255678807581444790734679973255933883783394751591270942483317577271699972481980539182033668424036265960836570327967596376946919401865334817963491780237925697659322739805697618436404913368103507659098666110257194929565900188426265710873163373425153709913196661475088953190837308020066364461609562030756228105214558759334701440707616396101626645978273546010650731783102909358352561246186505079055327538202152759349087555076258703618470977296714544998436114221513336327778478044241059171282748112177659326218734378059063335135459572706538379759239027247687968608650656186036273505560999334780597182762370105537154202470446675148070052130351319763060239144061177305723489212028151517705260384636774589591358759257941720603831718636522297376828766730881864474293791839339485321024951064180217683172630664340028005688714109284870496740872228804806400405179850026982799253200145774921784494420828423362475961652471886253494284233401005308125454088944558121504534812561683409474607583975385238665843025483334400666208640975201035786743337401769669351018700063675537750024025721032081650958701556619033348817465142834455007603849727778591661880912756413257661022357015474805482987642065393522020112726300824607781575056228957206020196665242671401387074905865446880281161550440087479325259535773532652575620962838066003540304378191488814918327308133672321441169500717484892153629904722615551926670242887856745936578496100324637662815892447104960696028367653806636582475446490134421786763918913721039306257642517516593365423349949361977680998023778090139376333354457992123416005443496032184753951465905857031166063775263896761915418006909118511944188696257544635737943284893020605807633065378145806430850949337231735990194776991537626491769311911133854476338049813433114782661471237742484133068479533812486707315348518083198420234197995059995582030109824609133156537273802045382161237990464262488375858621970658539536644127756950102796606209092804221430354481117661360457015486145316027438846814120594383534244371788670327776223837818116357938537053236038738263926549949055057910763210627625479003179571668842812288597170579161034660344974343801211361064719102880702439777509955005678101981717496571394490656942341594628140015833789838533101824994373228206948049158811392530021327421077047561559783859437896360565861327562578094570942121801018490861604436501449405461044966518314064115161955046711224365939233885177132816059598944299945608557004585384576316042529628493777604664356168952092442361272141877905531665105286661872340441680522564247493198823595463996295298447007564091222887262149016396071464700067937329820970095910176114590026478381528823062804920370803384311773346731892277694618484898555561331958990272784371357061798766445777260410184298029251649871822431086566837683502694493293951352237738248056831848963625517399295785880734397944010731121093814540532858651691274054361765655173199220569536661004532786737984277590459688431675651660636525777227897601356565666278638988153587336959041763522189003336444086562345404703680195583812757411296479742120111152207564033422003635564651112849247493434601354911721924445817618629760095962081089577759519671881454144784892434414511118289320570408870636642716611352284403394896783828088237128593929542037270228941278073047515707046428184573239887791912542470980717546345929134813519352225566742182276291167039584391315355565306959051640680990242740431792769782035947315820708901437784796285809658611043238147630043408280116773340216340338652346708690048796984261493260721341255940757326515588430914410678203404287099031038660555706244749061358838920437528087541564165988759245964603471898824976557882580128469322475384020350446487581273582997079464344505155629890047491448135905698252412452825652493050835853319433842844081121222137303997380980964887766026828725028279197383474705709685991061555415597117110933171974730098007573699018365764184422671119803138737620596235704452697079853033832088197466415649666413235778604591942424086820539678502892934795541389695567410478564304999592610819029760441171506184315168965969128567757009937438095286300017026240575258131009766606516407840294421612249827531113506101727239414863302806787998813439587391791127328703823058900341832795215226483690167514926482400450325035661216687034250146749323897588947854122561964339735780540804425251161519099814952668628992311769327875906810495841056205756806488501134730574491991326692690127334123114366931834486833326621790835608992790952550685137701219492452931052696607120146181419226140766681131130879255504925199874483344935624841972616019188086197755473157020946170029647878201060031002312130575993176517361625616083723187756940847115891920668872915705744522885393752740081030043397339507391857360991465348595813806523049451688953644812466157696194300260189902689060594368064623935998192409446016903097317699859499237755083463979858946974599676047078406644963126348523457368879402680385508004432857137899329513334344030296857913657867780013752422760380423467612263577176817717131814083139911132502363608112436684480463605820684015726857503341359169307745471954372179598987185043385166448764258507580500649844605171431526039218929022790287543197310309558701271555867583932189563028948968142843373975859961585122444617612269249823055595136834205659943548731940852114483913507262622942440538722951500355636354396164072965885600169604374183933903163219369885971420310629492983665921149063751479227621039954720548501444937651066538035833849120751268910333937016124033827524885484472157550393908246273868045756577712158491483222469046966265088341268913333585737383251864718894319143244953508719424259890913435538408883904886370960917460419716446254475217205471506439025076633788304689618833887831889340515842937979860218038938591426834662611924926721251547654890825672858010345591528125319847414622649270113980113524470644843214744410190150245740876388187978527856054696998048278635674159954241682702185211317143580837297498095388032138128102197671098440816241753600513000445005234563504001368384471253736832283855724268278931213182068262902430751158291143035405013336237628398183208814865050774725002578975998462661601271946768729957891858979621658218594689866935654636751341837445379357697325643869848513764470466916247725857874311602060012678531899614363340690894999823125473373932171848568042496675134616500949548332614177958230824222822332666434774839476210939046324040397798937951764705112453468786061686883308962685569883298200379296979898752096800358630924144036602170628473021897962675348986904268862078105739812892294896481331420154242708008028754000593260777912108022569280355080550889062138449283115978608384397137313875077110245819649772743329016978359507440688004409238381366077377218433228845519756659365858315166445766954063302601073943226905110051132727164583799036837156186440564998718707238913626645557020726090936763932288168638121614634548674112649847984260296222678796347486986724676935785468069849806724090127533371910886817206044035872988599893132050674114197854630531507548100012072770450998562846021944087831905002112550826983769376541373275897912493147389551578131044849779418343285265729497940831015563685499208218661661939176075490991880278504044787477374733166261709238713193915969607899934366634081304228187732737103938838124886318394869535692242525620328267471623382451922416300201210151140391481987386637523101374154752122183024387977169419162834800714850004662028869950628083476871469999270355371072027497077443559042119762158466821681346622456685929245783599328429466302482236856987049217325938091619940401472134141792455142683298718525354640914626595294365824473305737097794724315991111494639957849669578458100983137953256376806139385239745936497421189118210462470135123778895603727381298873020970518968769476696312210816327878435762424004546413836786213293397134810319231495075150349675705205897889910485470302444200842173958487767704895209881596518089105497208600325802153840143360684189798188109281541657071767235220216118869038113005108118067693383336984062543878409192492341528092105427392197017269116761886302483370257055431004467175275796564438230905829583118172181257462090718821598851720036127349011879756608773637428941553829088170159049451906120460185337633115147427543206518143055720699901349456425908431276780223580615053470597690755081209147753957034300860375934086545990472419286029912513943343892079097357186879379450566868013202391671604836333859031359926118738745547722355119017883603462319912024312779242092467820564300503557800704917888064597399612415589296514098801205145057632044991444888761731083310440834795351555943394510712371158887746532358069795684123355975862595117674855858167076451752921621684982095095295265453281298070032175068681212527577131216525749731031765329911156108638553511970165752670116768426693136705009242666335556044477409730720679280979769324499654562240519379848389230250926563722399496796141655402023022666431578123718547611563245831025884403016859636458766643460212039017400619713759980976897799699033866407058872326297753462206570716506857269772893279292754830679320742062336845433288967027819850208655738867791670961129984986849644834261967716442737834188961856944337790536911775875769143257138977447028960019579482565557627241634391347517518282820287308376372963994826387376143695381551944096596256946437921614317821398119575398690256220401221936086631476593824173790030216712579457452990407730834958437860596150938901239805950344853356623716420701561187474921472061666455881544212471587688321369144857166067744873536882619169414432767262239295328515952195308800343469263292340779445574170305316036596380877375974578656994059163122357366697689362209825321056950103547742412510201832853147961752109915236587916978545460363687082273963218842950757238697541665936574996720982608275221533654030115442614387751959992048579031627990707666049283839980020356417673207295677389335781169213123517678540382250682504969346484134037575180594091173350685272465649966472355443521317611920383332685305848859292314111949878640178240908224165774687709699970010395234504564380079309260881309718043380421498244861149474669856208867113491514771658124432985376570454488354195202702607501497744225594002569626982928890011277992938116375216222709911741057864398075693125715741456789267367787202380958154582267215955980912035176458153359086362436036162957544642985642212531595769393237781937827673121223105830387728161657462563328680373792160254567881689058051360470743522073484104012960232341791421453413954753509441804220506776853420442315076276012522302766794160482987561698487157157303792375622780991362471280041655418407915501789071188893959137961574271551602150519024304950210184970528555724091210246232843522669805086771929324752857131180332101951000548422626661553218192940923227548404814053787584504318793403943010522610235705247379690394715627641084383513534654351943364122400932720799493125662138870100102666534272109249069103134696426376574364848565503224723964834069339762594319026778390959126637714574842012874341205174640526308957141468128117264070313404755373127608584795578849931325701840165300980567757370054851467858515165338855896451408277909494489799383938210849176661495383070277119735054275806694766367519918210438510181665572654884135054981893939662048210449177500523615649407817600940351325978108106532619433528353435698939851581449946616929688706991586314396742883243994708179037665596910106778883327009491265713922935608397123432717285063656898205852216540882022630999549392220040725555545843731995557189154798967825476858895793545786121542718632208166196961806293127201431470686670188353355241574726866635022663575271540158991271270549191718282575703092355121373261658380198347991025925376427203960695787029462074222140342783672664530848746200122669687074689084141586170749708431647280168617115868009825317780342068475654258838202168378024608587825296549206942627615932743272203652110330292145487689377386042330011263927074959711951062240184831372138668503605664625770442839956358681529791425823351703283718475342142347469611755054278981551618869423576983087465582194196189016972288703701249599175112458654879821657708367452940495984850740253886052180480961660972703174704001884068861321076951063714660487121718204905912214819749443140868982025937925986539470821133412634534694599555495994577731890664635061129847730487285131160867821524667585879939513935300319665486035561870173043615108238160623112587269324767498336920508058000501034195276280059312700649893092923900372099665561522663836618050053621120249173935649981365344641409372046207317020059932225103956875297748152540245148236622381976151257520072362884215980915953175342473728624027723718997374664663370133133465032473827564282037519834423382061650769898096900044383698183042639628654062298674436234467471522411540864446965002973388301374856694907186371534160449172982941779577691098015488623230843114141761492216647815804768097336984924530908199728112530141863623470229295978402912140428760263659771595447916341117855468800727524368410797605638302902878964904022551603216646903313799065333177598125236641446008795852279605526572047813395490041567136237640678235440461718374571194815453478746598527695701672914192052292329538191276819309606439663106873159038197890724315335314547962841465088244844536717748857876192503734218131493808534884824279632601309341849955438932039433449127238352328728650574969490847094403290739448309754396508369717357205501253135440051628272620904481995393752371591657823315422479380955639199971850578061770761722829587309613958441818250994091014873609501980092044522902326099524120988394904243813518773621384017483901891466758590228541601394280528659386853165407643983553448480281302238582353939263459852988961228296127992494737362063392274627704906642670287734621424739202600018222918025739351771263895077621266717300064681480622893549690324497318364129719119623942376963507056459053392905208720154375239158576523442017041612161128853507558109717418530342335191349380756377675173776980570609034725774799564979040752363458468189809084494718594838093987221398731706790980035095297708792596566750706110446372253203440859398409482364295274566530017247523248333452419686336563969047261322110756586915918103917764982154690409868139792558485851836717331475829757794275007916302269362551026899531079420804991160539686978604167683058595652816749906008731637670185714016348904354971304955400256193400749473810852054058184394062978814369367535266387532596884362473677405404516544414334199655155112894971067889380715104596955120551335254784927203502112063275713890050101663368315847661998179784111940193847112285167855129822687316967755247974384935236999992554010491475161244665422680461379079542738290638980185250058902008404455751069452517036174552258815067381769091040316845650187125045387843980360422157251118870097637067261228869680680898773188096372435345414855480160507514256550561495281849987322653448516120788445164115993091899422316326450187740728589642926406765470215327178906549855391378998758274046187077288883974972965402391048291815945863657189853767114546935601157977509334924560494600429620616856008215251298733937970744068242165675760753294215878351609552013453369043129827191426901165036374656906547397468440289828310070630587967511137262398445028346826969819973749777773070327792968095658495170782021802207809597403349737584777863695587210931062909313246781106917272889956026146587879202275999240149625515185125161384295867714840420028003554539849048426472777668799012010399943485683335297708978568683711106546270045370007888352991229267881964430938426140669306550666468879631696715384739066489054970405907295217474772340084126631357404317091289159479204019028084166942155100139072442122091563106452252426803548273568573885769740265815251179824129088239688899752883739863289793344001347434913151952082614287143379137212286692420559157551955987819243978128499040020967806781815961573214261904854308704388458261399055012223099087814252475661532230245122474661923873822559867489406351183789570505285369042599869938754297189108833070434681995171742611230573932215075357343186053077054600626232952227145770904359249705523907087143861927090352549646456979025376791023080255933796861835217131436597761067224725237009765014937370098034644070771033109944522337872170784458939634943321490252348284451754563264225121366695028884455689725385614292519583905170216316575618663966829488458252715714208326425947028697947099049779046293249186527119713252018711350169147960836342687717689223911537552253094301982892172787742961667792147024823591188871040630432011266440604914638646066079654392488241755121341094296644413147458761160471475646709698057446502147525242661543670574808824276807187359127452434001410218610860754099562939975865876741854835252810777883564162235928515492130235368544143165246497839030417094852695510570109086225874889111537125650777633354873882889690433120279239813796183770495342462134018473991063824469708491890984164686068636614863483400432163505387236596186448972336395998626413106302074166308091943645765271667070921493197865695462384438422399607632691002553948835358325525318495269873202266041249427690663850576578910186297093533256055907057289580173351670270011402166357343487898690539218376878194272251315345397944786321960893996757909080693173401072329079360648203376133661888795329274554013036054468098783681124243328124874359286546644213820317659940422449118828791838871593058694657778537981466652873684364014463256673439508499843034116982686544789202053361780683216855276148649519885683510700039927421522953367744557711612873799040300351868166212799205666513704279782664524557515830685340095561687868629949204855362353718628613497171652792067688594603738349813157902976648200751528542976550172102449985915354503565469081144823732654384710810012644777761232355033501309501296001231208043762001503557258985256730375940842718642000726859545284736311093061184001734171975973354990816081960810740233103683615576482535917484586588322965255803284351549837047183994370332623289664709848364892437719652434211597892689774954676329732840288796795690583243029258224003165741262391323402399534413434130336807227616957221330056403862557805231792521539378224858800381562523604074271123290342199623178189095893220026410079537147515298796904917558225934091128413167834892531544189417106668000548821348596768290385866035619610043871004232691384951513201068250630937790988940309584288617927819037856398214194423634952486959897269039616296030529082971244304685823430431291703348222658570304252612130519614647329996193665420800460593108423080238678310969324669104928158304825127444268876311780297763035050202349247668728960281417842398766368890299125623972030247799974051501385031708203898461712359402931541532772589031761097837845468196309464468501396633928762929463991694375025325285894946253369628389448469715592545085561879814569014032437583954284853376430800838263251577916266890051834849463069773210301175275965629776672834586446293938059465693302022368408499310181293402878793552067449325824034622711059877855963663743274797606331260466199079566275070447043937878685546276950867889795162424905814883881223759127558543100698040321977082503701118516801848827342245530968281893753952076179957815056642630814738983163178210489580047845164705235321025370785758682594253999777875754722496665117699463795404367303262980841160546684967670810524784643869246807328919002894112517484474077666064844993984475657099777650865521529100672925845036563292190585286894987602915620701646038785429021750291452617514637355387769904182107428653098334758275828312629523728829377803864258613537982701782745726404880930124509527078915964890481607525989136967673788528783357607274578232171208310649728662945098868100575004481524328615508855586252826754595752574260047508765906110321075831547680749384073467755422798807056577683705777548014990056634852258748598143948532441408821624838621765988385535780725617141748914129495841556963393580806531250733110996666027736943051499124883397651728539245962885553080567768539598001275180604312001542936987355023312219460901181035860367155609982040692008437172631950415049650899299408551636604358276600452188584026266641976366916653151053377518586449872241888858630384381273188377307189428600402820146298233534657654648028786114465805361349457840272915030768947001725549025413058520094202586186368649373579784596293358244644641038244569084237485683660770840689497918003413266105567350272253696226231295188178396954398685967024770767850121035055974529376246697545031409934047979925867112138160237991897736032857744867904187450035535474755803601034614707254465128740674360960640805630268116372888719111349680376391842372596429468314846824085654690694894258090714988720000916581845627640858176620272511791018568161470695570618146027594667532295979225831447101520835444233839281634629025443385458717740351650954719525371333727891001753805188607784787761179392489913609669793007159942855006712681954010396573254817809877182121992790969715402923688607254266203612494317132601023322190574769579053486935951712903817595536181151405080781459591140695086682789653195269022358080606627515506227987401678847482721055686194680777081589409292133116005827580059400501462815289884532365266556520871015403563906929627038994733930197121409913550172159086438401910358318849640600788404787724437523564110673260459804613142825782184004803162012807413147630072337593869387548082290252035753948718881318068845347282046343132513180057907882750151237221804701751456606642083117114064511159027644076323953765776047765366507880675152686025685699690227347815923304079066347524254422817624428035773380334995398496793001833674834737703365617497792079917923241207133940902105878904754361435530777300762402697784691072763653486175835361396051184794171003997784054824190948274749257592888262591757240406669495847426823106523701864485675039322992681948356307226044252468642911205974072737685882736852954105141842225198178115516589314672445870635603297005361719919092427235067177124575948235262729555361486877051957576374554549073596440431219309760694196983892075688573028410470198766825799756098169459690259753508643987548402399260795948462317159571650613545456665700466512162662090150011358975807758837266064988792253234621977189139126865923690011760868562801305455707059058697761945160873218404831070109762394405219169465134387243210344308944639444973064477293541628901321772593496084071738676067965080451850765004753500083152489081721143659527791216540596700115114895559516212791635049054381298646934566728890238190282783038192134941666414369408903887803145575790109090570719479645631402061374467001151546059782033610095196383524822432927957924429553234873166662342075595867715900965461911961597758589125297690728824312245594278388029972805851356368249300469524422086422213602044440054974642933320286630144445997028639873813982832834388942390284828328742318687791127463966324700461546912778499374993024810841687666995591658156836446614482380817183189148722360673634816951028919802060949798864934918412753673416719151147846905826320677174323704270922710071518121402702495902909839893508037294239674444930131624696070849180187521440947128269753896610899297767563675818818013057561216475091883790724213416202746034071587437082239909999179795252952943392496998390946220433389570512778643962345847113504260331040881771655876803587407795171535696774991338494252489467505328252798608738209600092506584489012241795685255927314774954905088020697680984114542578624148853110736527261175501412105422421352682639279670630060639276885347686644934762947224840136096458404734059075205439206811020225635856267987782872607764047598612042688798549493337621010954914286652885502760365341127605209643092078034799663976529142490148201414871443865981178794535573133475730455796946018281410453746824909462408790354198755053928449406970206012568657731406231496879222588682013443294901996266241743219379278383842357852775876083913791704909203555560572226882070646141916796251654671159789239354946970492314755896190421870163483940876915638711576468756059931582113474228525411657621982189712853473616851986830495851883976420444861977633866567851600569688190736006811248347619040190687011927804460199089063079933652564304958084535153399910463661956284878987702322775240163764224474010728175966000941819761197568027513156119434547185840284011056609497467569506522997134024310206393032030821359523476159265467855362617829620995590174963603914950627350728631771217909450743462438246595053390823889219552136778636325854979813962986220250283011477261871246575429112494000794148396410713944481420011296156864528385585313077931430485659266518020509410348880190595344387321732324923558778882815648589046695101430807296874988140919246586729449885487934831779215413234805914583539245628822720228956742068803445948843452381425569571233818016390102207082895972179059469669397186128184407001689468528937794143094055097977995504514460201281523998227513851555671757405015649192649688857629106789173508981880614736181676405664497513887778257231551592451921489409718220941133423332861879940577550577559136509213690006058355142804252891982050381912200974591816023675771709549644469282074232099285159269293045823622325602694169225343743894137420185834544978332116380900523520798939944419931863067291137438908810250721415232816002683211212275793687553544210403151436868022841127972645086258737584757340574728558013777611595869138501112347004056791572158715275597675916645692345025638768678435785054257669868983413692456843791229623591312334600528717979327565605720682970417264842744575897732355590537796807818971721314837294565796152250361354002127673422897981379194702262845699995050422811223620616217001387491444270750091317974101732716745569505402426896211194773676561538296290388548090152810379725415006671182027065744278920784266719415986260767498560909688705333685512744279857822039009269330086479767326588706305380828751715676012952871455228856855301131586758092170736219035885615676533840465019427210113918393491551715874460032949363268371550736180681909594058530821217524712177203439513686893174220862482401125315908212592375837980391494361815770566496892596997842075211324138848050796488376231652615857481200362937344728137811132542833640375006652866984332476122726113832223321889092244390352457973277891968927547488492846459184544794525655598515773933585331718055573530013480991738023549807609072523214550494044178997256401646185051815783944457057177984105119941581454333507363808758117404691419973323597894677399545500417529387996364852627808427903658393697210429039522226421481271837022991961969005657719761691398100440080712653706473463739360319074288368297169326912644196970587393383940739007233322186958454794464765178483876040384353175300603783156310298853243080901171978009185879399902715862203521472447019477327806742981305117661731821941399879760533826436751538406774544534937789258661504491221365422132300354913570073640261682277048122735229284376804960690873635438845260906499668813002641263643906940974184901521657201352204029828940675038564391922057814279480063437500757905195725934878483488536636766456249608893619607120215541069849524394721945843538006418711870845108817370743656458017455545314513886256652541830266329641374603215353555047887150218297130266407251895959943266050163685508349457620978249303325037436034062696922652338072777931238876964857183257649589864578584338791378077365904866673437486325443983949905349546022248261112697757514987123803439376850758019893980375028321675341692652630481087121469255320094855556417679678500562928610560932213980765077756480019600923148698137738654319939872714981455982373624642975949175958395636867989443047734884852403695670293131392479430515041131296397145846558880042154296526535185820167928702099552855989568804422698766868038138806425711561402480387244880315696215505114789959359601429135090467160641847688120007865879649894344282133325122115283656686904383963639057037009795588885953149927329044354151099896020518429333183021062044779283871268207060238139614502063920186442857977242788291625730760879598702359666875410355759805706470324639955195830683158586995200104119983083369477249359510114294873089180137728975633659847182983272494807315499368624188959469852208812067122989672427020412221579023069737251176722474664525032561994620422228008526037535561233644665975757738135843812776796180516141293921628196457891584627639100563604829668696831877253679229654992180527834457258859292443135580019547233213537632105884253854175273875394010185508568898716092434008690004246988114603736523388939009022009700619879102635179097819747093166041635362645350927898538576583808198477391197719739580915083862860352746337277664811353931360537757634096954056257391280470820405145460708930276633852029546163090628068236850280943414512879780947584513791272158832690917152245221494874899109359436218137391602595784289818620482648431944574799218269853484081438680842169837018204423222669469294072127576381941458289754555786623368283859245476948130191120305714198727277414683768846984071098050763629923908413844001044587940911714988095032561456308914130986997255793136671589032914273895714822105652904007837956862100836073323371641047654258587416635302194802619489448624825420498196624664450880697318629405682938441302398560683276812087758291003858162769839723717300652887235396835253950029326255042282511488139536226546437909069000418663010671236551587984030407063359588306262016892164354251363294517261300564503057402596645457913308578925693620745646696199048713724509733545632686328681141705547712975354298786866281338312145796207846703456362923969907714221812896332511642416520637124548830917808342986662260088520382670488005101003221704988421895000460015605563377932583700143591351821318980544885640671911836481324197968425670668548665689378564095466856878521899573906474479646528447636611514014389901991346400966731381193612163405241334575874849648348272216294274265480892933613599371153894415546529649578070849330348304351247171783665691273877589998951847685115906187410300273738929962826539577035005934519535975392259617101047224169966706724759743682870491429180909522996110911700589571533604289824799921994002870002524028545791058065986134790647222795122927842815275395312848236983820732323959142686165666976385903685020420214120219526484801393160712223326091037990392326859514759752993678224920774956474744623424175984703309465920063381348343213725169772513860201495002671820889020533648263221312417465209896591975412443734692526362915682716388297752880640777502257056183806745278323831891041834972174370095897502583187873306679279472608597248187109991879794994412074456510223465807875380935312470810370548521111643799199075786713837726935150080333541013247531910242630909780490328790766488807257551947033539925170870904228601167052689745825561443167742015408215595888958463740124255686921523524812812676353335027648585972375936952007266709715850089459775421116940975184528497619817296397743482569774444532567965895269469294380655370486243173464496480371039997697320499296350309222989654729362221804573615392127416624985310698885680152081037986191953509989339294485733202253723989674412501448273244851415346713775701993768714504118685830715956651677142652555709728148809523140721804056530471360802744902977861888076517010233585095254064564549763707055825850848247859484873355321622173009336764263783728092098914100114491457628729574027714252163398749774034461125874505381179765635093161497892778173161987621925090944691850714307300165131914230264921681502169088690311842811153993958349245126932815075393633555498718561087098596035294512396539454673083488959129481676571663604490217371041969438037588685670426982205611099065500728873933981979826260931265044287077322279748525289932299421905835915166954321227540817730422281088550791377538572048890604390753290663439674324568028853788674347453272283664682040222103765977145215352944165851653245118152694139544382623327264674238073939379944316557883283705470250951797166401144526600887418675084427777352608921478807404116947181632099146984745849822276360215512920221420139126516457889412928338484383633064769237354924533489869998456025797615514275184577693825556769368344266310277717743440257453779333052581893286369701347162610622282312145644684389645304140226482376191387987700328717519905418355654157285617340762268650376794299574305127052152722910485329017920804299510298152503833216932119809269265508285700495067595026442231469430623430410259870166875119920401881445728716125237039789388113907152618027467724047986419373435918629047209235870861814586834362422406123854606218122963914613227110171882908346267624824962978481233580874301141377185916050838751625003915030192779992754366128530718648922343478418533383333804769474652552562389021364442971798886248250336924521317596101859170221096151868671109098150419190899295580180041123898352153245194723861010293848313614621701111759124375483207130369407200671233801738748684595414339147972298086721659904846601030831625988113289060412460430976088399430844103340986472543946417899904379973306946505373727283048857694743795833698733897351285011398427587915343355313520249854168639862468947351144273350483988133622646320258328771251329194597970176104477927678858526048844887228095900214462977419594332613460615813425944602857048880665652235280207276041336156992535311174702401447884078036187948321562868751465814320429026879681833616662031006990908790305420787083838255857125148743550938999561194345326983801938326770096134105932797164569775561943686500962045580602114207964047136390791725783874671004349785457886992380692701768795721915383689460526070339409643007165195933343470803832894536390638432161576360466250460723718231167049301223491374095644310460841687204864204224467444302684095771309934570592638220649986464205919881729304497840330230989370645284512276697169200545190117556035884434626389734011170307739880501218177779151018213185654701044657807585255776896321830042846800769343371021368772883607023208241375455508521310544222904074497796162691158586132168553375943190800418322215159713702862421177871937612562590683771821833672553673913389072021439093749758391086879003379490667561092781191951297509433746867525902207734493039785622308546733586494463899398392542953740362079056078988713580041460819412411270836863891022191108810482597403273745333190550772995890127487340985408217875564623197425413079440429351165630757201941251410689006457339821666993604189952482988907688692575942428328818055290692372762924211339805046924239532265223841341516993874319291527973084281637573992196189449844171640853914846519217208329799843293426029806763594010112535780132810063580889353920779264074371106157682823402860494597244254900009922882299275736765908323551117586458348148666823804079516470625650841595157941068947883706351614938046889786287072908577645746888425295349918771129656921514411949049418311577586577404288180814330151077489381531751644780632504392337080666030594828609760694897675591213540178932812523477602801285743874783665782353670477970655039327292568057239749115397453855284734359896474948851104556122067639352451241246900124181119957116517387639252622048130922226269948768160348633960215491757489504902983806768955091304990845199951113376762526838465765974121652765253044641887757711959613404898693709265848548784726305242541149269875691773136602591558953302760534820617249417508674140055521732442966017191039785342008914870146655492962591416105230928139894926798454829233768702868326308860117612081424877608384724238938739820619100279489544942082112031752140993829405318582523756042013049837566369555998888101390893931787275822282534173911216091874738816544784895377425633219707222389943096800499814066950258058406056242807536730735139419948187326605160808410108046137939719994619965502906740048695303183367018593982086356759405740222767102956746854715699426959023671035162879746934457866889352891401242490513389794274253073836460490039961829716853216860659252173426661162261132762127262059033358121644120716418244974878233023971471247942967633839179131511465515020252349809737817494922625408390752490052993249192045479586323545419251200817920032447944926237765740710259638947488588687446300911634185533254163773343458128929080561913506969785810826700005476135523021072317139988981006311955028623824301380161368629368724937518102070573282832208037333012552764187558382335483040287015489071488869282938851375230067171141397682263712827938257740223983287262931464774458492419894189772615344774934256429425396673237340548487651746686292658266751635924583695531531861159771741879165974585258705210691138864492323145937535934621402982387349480522150238481187633861389440049087083585733418728571264673649264936568730386400431434047129967089706114586875867732225929038486401344412105885182589348730388153507101155008143122645589573796911605278603430051551036733660500569411448221506118359220312831830545977843544503535291887487821299312649659752663554319314309057507824488043429957055206838208378294436602121978792268732048555892556284814571198219488961715279810930885774700172178532544257963015042956715343359704095174754187589038521648774986622521772583436169428306759746755835253405316533054500803989532313646901363096528086911492446827239535585656679121417210516199514568287580089083467745309156841721317003731224702206809626921201035817086650967466032694468092429292086069518721862500789142837828323281539621065157106244007498417336075945963774490983911854589149311090198682988891028075220045289329743637314954325278788818533765336468170755708978168735783759752192137910921405130324236085932735539918486134423924676704876130534363008369025779892423074934115939586284529451429601212442679573201187606781453401962344912904006807503452832042402911339997194445407498173310143511647635720417559200073796444880263619867861243228616693332154122666749325993681975042994035526746833689371042888884864068231321919264684876505695063657068510276770587516855529269130871117749943298523598422455657993398052936317624495345483581021884203258564371627665317068433874879473004779018922483086804194095376103056464154624420902054837460452418035095480622062359223738071557316031599778353155229084658195737917981307558668872634204316061466771267095676220875661596949364482174681256409926023140611040234129585771998212484123162215762798440087868503121142663838671080647809782306330288043339716410810531862346380258935351189081338824475862149552097675956177833179085411823781212166530632621865068882785487084596330129719929081248720531834522367879166126614905495122053254482130274030141558237082295795607091041304617592839683101355747190377547274725128975082774362383610203185411049879457807833349863766916024138578908001230787739370566704781811206780495852649098989531944034316997131847850961721627833410100562672074113195062606550151474533803980125023278341023452188477540951734569987819115765861900817201612316530592500395462529567805888696625929188336464064858541084899329227843844407156104389066037681042917331542546085624748286175858051976915340945626842555804021256859988618494383074362447910949739132984470958289469213327232412318552181893270295628356306764819408020294533947343802924838701075888648012949610939842359990578770527424080836357387089451173429700804389868582997394293229328099912927447687629215054724438033422811313199484368400726144379312897330241999582996974270697518111811374149192858648253097572052588433067749264862921760034543532324189550046561106549149852674964370748726562146028776190542365596792085172297604370072553008123847585845169157690527338800565662595574015533313356577713915124218352851639491899693972715363300948046628724775351837989335198174781795943689076973681967174602781479961677058161759976263355945339162018324600080176370782472326596074361021685807267586694296720951677469679597861156207901087595699849159835052088400023701540897163344001725541209634114777316955637747089336284389337641423651359646679770289717734843569492135413472837418120443102287823659155581406463207406891610374545654718730187539067392071367735626335967447858325968793730926714783338352556523164150210864699572437143364133188709976061109642539169133722305608389009529343664648537969002799575277637215177631501223240340480994178837024324215378458464358430549636287749125290675033223333420221063194521395049812578617311694066589006060286925775676561799374310551650140475548554920338431146429306328982024407281795067851080228083349826360751074128161173166494772241528609738044128166935978687659645612428380905214353279636894433603491129749691470405483564191540258529235126231218490141349175569784437848123850123045675892157594065327053240612099569021117930106666135889677552363006752091761369649091661136833037290221807001509784189861854352775560351067388120149982558248722443795420457049156961863576670325938377127042088054630453746947958927797079676563066545701806577828623943206011312414462186946283372493931661153037871877156045002898651270708548069329019982503383604536598442029612063297608552508054545854545738747909622113426087578689154125752179959541921129656958302716189639877799413687854250683506680312871969680456082092392472020573244626027158383350075490005695372329701119830295193610470457128653497913798108102919176887680172474091470249649050565897938448213783580994962264627926644822405585125048697915602604121087016278776479411410728632658780117812432620976570005679251355035585039023078870572626876314292284771330927069425196113499847436278041078947643438559931626906950896789621964554945918262427077049971049418229268129048916359105810311035525012404559977723124175140462014995856828050898221282682704135794085439983751613457923464847098392061442650499620056185993660491607764589514990279424428870174041542809164367009039314411427538594597714525471943911457993616100381380090134129455352247803693919962111493510237868365966031326651820503810555261562209689264071721201098206040499328910330286682788669338195494796841939218265397725594201238442968436563332924041977056897984053023045987064341647042199531599864588990851434670501652878038323608718075169594155592823303500250096227935161650403291545391112844310332207909857129025540211400035309536590499525789138034729815660349664303906759886746379292130869051354021662385240065942157934429768804699113361068232279091903778601154189448652094493391097739205877772275397006958330288425746060800229025650835285669240283611457647123043640505194535088717774200755755093294479314505030523174815346464782978737290270838421922512108838521984831577068175585416087357723465152743450263002677554205086178405044772319136422893868064574071258658959810403904098435326256055453679452824406802137655907531885236270452870029138144264993291931764012073805172922303986950946561717900102863453586256179475218648133047462648128578015320540705902573622165434565871315446544854053279224853522661238698050769825114261209964454433799866396873289714396589165098556219159641888424584255890485740588553340750154705373204649297169574981253489080745171088813821948389437531036562839813307207815173442027871831032266899469839920653240751871807387276484912793176485352831069815133806020674779966612981331443651247794996797988543604576242148923886938269930697931826776692606976762102098619974022572149993912250755323226547803112792114662372314816088678686225711995392618710229242580981588489273614682213438862632474941880154529251215366862380543307219338714088269822042719174128213449331446583100031673978522696114448285212337461198552064191096848701495801753986137008964955900795965764649332801850146183146260087384631854563273144967509686931478887053095045455987529043748185145579535541254258845131156077226443946978330599248730323490308216969324595095903672719526089727592558512687476324856138319939085966764541184426794944728038229053157117468375782766638291277510720700535611104647507727700354551957964099976436754829036160492207929434134803233919915107889177734773422309798028402718943667050043329174538536844413466413925625731152998329386897714679639471323297085707712762856600195655590176309581594253332379863132911543137472283300154001648909768116221106673926714472139379991919522189270290436891798134713679711966115018390384293241078735530931781132533078079553288977695648003829213632353757913273618917359474104647423390337932598506575191089813040691573777393774972637524378707665181103665511923201252793035814749970636385936903091853717801338395573593484673157119111418957268626699160779625706775282043851802152082299065443705243499434874759263484441951298064815289729562133859701580556248778259318659023888684665732643572011955800997150259897070972003963477008468803859579839408031519138189010708098582697337815427505542312482020074014253418788478291384517804911781507232103157834177203020045359172581888349104215033074072934731595196822341541402378878389401084484377955353268905196669717420805803635755357850009962942875892265964412658739526383063874337490472491705145339038961419307221933134539844544073546303819211443651643848631036109003191226494698669460742574381356901071556898532865125210438812616727230000488364191103266397738160797294684880477785784032217086294778301999186450589748062858111058421632020971773048558931542572263768651715264190317533918881879807898342357637018619121586375346161167458733329625537900802408041341369346924600056907554495341374855717141883885888209690332576118882295679983211580773714916264755981728181008234687039917376157788243893110299214373059552464505300287896767435133652675543766786091103029060206882058731258254000936988658621470801792917420824643155970116770203862445372386860246077639378121159144477013209469996048481806868105283875279283223858060446720759874333719292326888923854745613084282355043095684114422930633871562818906695201353026618805049445126579467453118067609963699214734145283736060032356333604125084027341304619626607826963366010439700303242840782971437613637290814648015723427417037241633848034321387954471961245991832693095344972567305006252092013236505351740541326588847571458787095893254584390667864981370572356981110403370937411768675364351344382957543704175298798534881173327661026132043411741191935753013751631187991243521645908737583448048336669936944452412516313037912418098837584511990512008306346504786951729793724368329486297230604467476481853854143417466452714396132550009400744576024162218515792395653089298131920634685995558784193460100944708965232780943893191493717987699652073502506465637111457209055768158848297474294149970450669272544585327791180062533388983492885904203893000136181840962050311541186360928730984422447415666029006381160347255327737793081452078840371331109703906298758044581903066096613244628796010904746811446046671460951412159749497419745739683790777867227768851753637747712006605247688017862836787329123518292329508714179133276015226267442022078767400051977107963622969645505576838683650442296399884269927925389844807323478224551689463848310927092874069084659915741422482448021929284372534808179683498408668871468073733130500554265902468577585093385640143307952028994602411469159074868883858247610614325506129013100113688505963847405315946098347365732926450219184641052555908152708042093241091298401438436811931013253104268109715728613545460780004571396824014883555100294624179748046438135889983460797518264607801753752676408019973628691501270722228101236269166690413178403420795588179246785147257813718981938974936118803861211226233565731807541282222051455693328895413457574283516426130554747178527404543207898020733950463560004627024495856332638334083412826938058935952570670741412001073415277067362217084052925405152997327562576938427580806055328512310359909814823964499126368860214916011678803219267902375526827235184328349898230790034544886994243605063157961974261371278473363480309237498412160494858933122531487049651758686275133927439428168709394376728640936190474426479842592748241232757183792162103076820428145461361180908587640966368644210562577020599836709881914744776303224774785308586815871861416507783938927949856954072094619193608192965895263616375443706552972127834634413272898777757366739990655654893944595717661497667557247318635672986996379828388151580841128248353104510814061578246928790992960771102617443411953114870075922112776473645526509912345833013032099228170523925723601367880025223779740827313234948503831624064415066443138079096871666554372584735367871670922574784017683049141466702592511157734939325447222882212911024996199557431049438956039969235299874132355032625830289619527888231233602468797037928685138920495810852057516242380162801075839124980831251578288424065730209180991805616825573943511080584374381008671165900507890123409980565271772958783809025282519861302802279587370274602484536964905460305480101791985783224099052848077740656938223818253021365111733565946108668234010821251527973705568642565379787243267108281541810625200655424030930834346368272384883165744974227438653453907678427787111343543702626688719910760161783690816274111641748299310874883128150573750308682950223045739100739819085985890584150087016651771739462510411278794111108231570845266445571969203918918266891570447868915555458630977351146939531762043476780196906124070180284180508931934501564449145935946062186088933350124795055449117356922769451113729390973554917112247866800577383608736614839366401970800612425593735205046230251600113572948578086651220585911436363790541774676739125646947829170097505229780580487428121030904786167007751982952928950099924830953141936051164883986194310669382000104750081495743601334784729882380860143904970365944653109592983280178402116990008459900161177063511995839628290831821505079306710765104895185952585927906819497809244175915708350919174667972556432502562654327308068685099103860298169210113797878941900406862188177820836897586383237034898968683939983917529549736963338409803518441585904130797712508576344942781694434654659250703271315203055546160921485101307869176194637560715963646949201687596788218832618107696442721150459966141547598378233733875428990777478837092908678510193119533773933200762216259194937559527092544576675478326487030587629074747241210956910796000644977697235983513542486296809292372422667118587023308641893558560473611593451620592382239249283199150304634841058760598977604100830227487635838107431939517209360682223600220922115384091367763844416575855194378277560403304483616683346168637043867380812959517696288382515029686649849229417570141806340081762633999484643395012478146225591932077090010074366444113548652570012121669673919279198282405563382970629236353040282860759105753492375431873716220927718645997681803472696902812521647526956335097156510111239806809915151059741269999325905659261238195300524255383547721211872012703772773416904633745243917239790436016991520724466241065971376775180011079775655682741437781553775206497433711835946736052695089509509164109871371680975388230691811831664374274529086448378757041742609983061626213299972110365715125127985114800475765139312161448197576361070529956747582260906891497816683423971864963287614964027883391683058790468116730448154612963840637682088433044518504679680206880887961569066961433627998609132130005987767580685790697352561886222514345216993051014748149764418692435494044744641284346566514468719477179190773078986974085642203245912589073408236407044346334991723210896915799975128767590310297990352582222372756674865772846857640967411350308559645086661264618193387513889938757637040661593548306306814745739885229495142383890832502388521539785391051658733237769605622436919706649319653691604373716542481122687174124127123757257811452045244323296865535800080618809165195824374312923706481922126909114906922407252288413343164505482692952475603765456403397939831475992928538121950266753725144577691201138698980914749025856258648944331969702339894013835838542417418840078882507683019977204878829859157204926461992444328253347107465527230108424951223716813211108024906906720882056513545022613666068390871059603953755380454406792206484469386870950402000691624618108761390130851322179019695843035053600085680893333494520348353373549408188680395103974663644631095790975963594573411588979323646118982533029299463455234127338605353782159990802572059394175170853441580663439959200071551584234730012373007932933034816758556300351914816256754834244623658146130278949149935790389204085863683018052965161717464933512991719676227872436441623406464514692923869351964997164960844309431852223806135816492097346124157090008673091937828523166313053663917496396346873882798552867227612772523900233102742151411977034543224276175842326892080565414127195993798083835855402601516937964627128807672102211350246897787800578648514689882266759485644864336069757862539460527761669336172318737561557244696789493609830213867110033057689762993066555367196832793397137072654807041529150546361518639796282926079012567058560797097499866030770476427167874300862179108363712275190402579672456254970375076158970495131604741317315510886812619769830759716809659989227762543318137711036546982551265530605938400866303294808551202043316930341697384287699335464298071067355043439567283546624578782120816036739154512628126018281510429671567695496177839366176382578001864342852351484640070678354412762534531740111954481587297556428934589892157945354636405209991821052253112870696793184648311555129534496063353612948073644705028708174056040330769773470592851976451045729804804521746248042754899345400596799882098311369302175950754736519474169031060259939495384007000872490260485758650434421962217495544411749924973628420541092769170352464592183318586097604499699858029298795894626816763195908682604401843578324707609762362734135648597381623888754754995774876527901455797227418725437943098749730795909510534101213105105145636739853945473315127718826495742588404405578423442631587654982234272330801105252252834106533241971533588656012991460890000734976096088913602393535943878751050043369880288367333067320324229327639200753275037404089235753147022430691247543673969189971659259338240486692685137486677005147680948567273717001932901008754112658371561202326739224098262749320621259153236020568955642557719279765042539576249417154882646442823724525789144737933269322204006363226846498916410085194835498207934005079426115835448638321873764832565975481685624664275228600562468767542333987508423258742980400064102942658608651039220981981607139209145811360103860063500915993152457552373671571748759746068759657203130988181954718400863498499142450889123467734082744358312834862842779871629655910800686643929204198545270620173365000528351523848348592695270860574320898459587246198367258884972702828521812123493760439259790489088850268654596691864113993418404195204772540505359285665389438727228162377386365055457246143666490250083090081591326255167170129288350835202068297287259833205372529480759477501069710864603694274271278794609347194979253356346496045461875633651657558558341177175146618462020138259895970416303131927738683294986044120520774395896366515603896307662492066423593541113262752745127481391097009912259552488336845151316617755521400574506177907405124935607325555252074277799946828980599626615888767390423136200925427658316302605579073000059172450423289604860852901542449515529512240774009608627996622320613211037409094178684529067551218679187321806603136160449148852838030551075358878105253228683696900304277442589633336361110973417529123946874999624189720027345865087209618708821031021843581675772664759017174698033106972321627271556479022670326119238893742107803137559327083780888725111185483677224461821611454818647150945713751835480617508365646833684711599351373411040285543641224273125377684406425907051491547222581603759223835982483638532328490132161294283422360552440255927728746504135531501855766175816794322811042534647764734906766435468323716953269816632335500471098962212143043968242673329123997491195169570573847980702634464516470344154881253547373457239251506114728500469278154456389219664603497260169516378927700244334315769464064173989398653525835494748720535825843284903700813851435142740636402734626577842640228806483133157543677877046186577583035326128331789261704578945380094191142455188192363510154574288064415381923597516843229445998645372596317279010478841799800288445844315213452049955880404547286570344094581862427696928889468939647161490432353915687507919994189335572637623654539263028251364576412837657709019648366340399824662509927852585415504923049878499710140967919315411030364864574905529268344027651211079735493789034881387871910109623858727024206058261286273670670110848075588597144205022132021144510726896625387631777336424724076562198875734832678366782967161190490284911339954398018840898083962069043051305266135596141501091645402057131719268565101039013638965144610371484436007640497880261866310355304766478127163362411585713993372273970863771052744455773034531864409674275410274739742179627925720328687996511281963882327553593388757218317678851983607067025693987274159860321953521617798948573837381598354408968815991774445535385168157847020535392846576545514561048974730415827397390120140140984781835313409047245221688161135884739968525167594405904405688149188433040117222992596783181176566997492520205006100003538238622171636936257253460936283097497732192718192541355451383833704934489436764231913240569123030617806499479055770411979973933590351879990025146181491429920429502887644724330099443886307975928951464254113621046271394542746984446435250199694075695692445389868499137176708318449838678009791909075096324403322736526537072614315633724458283040011973936519275722377064861210806886486657621127298952108742231407550825113631203569253886770401683693805736529258680319067477110529683108191554951921730039029429730404460821070207590545231168355398620334196254356195309592513563133813036422383619845208620950523175631538663792385842695639205737805239525813770289244242960128854232520547680592248230617623573662527068767186902656772627701196556209012822608793681764725624961962634871467232388534394315253057266882487042291154270355678267281358623831829554920954286613669516236116359557632462990393431238454903519762586539891310058166123639072270728514630952860817006293440369953294570962482202721326881447285177154594195752962434748407199906715688758167096202289844655297648012195222304491139875016734097768009141975720793568022493362412595059615739183711228248272826038905858347487140672673214871790165496875187284650794175824232613983231719325544161281598752838791010350005286970025796812792638437215537497502363167923031897400192369971483100185836052682429110946197603633799339175354954441137913036891247254393405821057891583723203616131961632085393671963396544771649055455532325010297497256143687230891004550476730840088862900902318440115545157761739168397944448636481693829475478946699579904480733755014742893272937602902196079479990472419957973612308210078256627306233112226821931310689659432001307577450362392121830725098016251730471340063615288602072407282578794446579464407485829122690191084030051446386100825539111527444992763380680208819373861565153732568534401459524002578625398053309047689425023190144947045535286733516765688936517311558458478307775305811719313489835325288790076903010164691191892237154295152950076778143681376461301073623954746908500771559325325805454536592908126463777854817727263240425484581306000249575789897099783116364554154258273465596207833879791260547111823671064390697429051928883211192154394686327490746034495265334591503574161221754906507010550494096473257462084272704769364493967490524097028199753912339646677496273369713256888209394826630497317570144476838507461045435513121885863033879455947878130973888971158456739409435035182531844879810083993434252365782896397614360303880453479349158772865017204015326207359962533486618903816574484797807468526825744424770289946520025321610291751607247239713796179173271543109093619156818774610175134762376356546505285401638122301298038174562166553970449451322998100226374890277947748918007790948859088852249063147934784184364967912866626379235111214656485084388888469529257532051392932423285101659644224074521529429196415521893977665954605282251353315262563470077018306351653202025351150531279723922221962916812437937489937138169477598801699718806610497058571534881700196020118364779325202182321852133645852827057777936148359893106410046863374080789220317402500515537997009612457723421704374266959869591825664739355081844547468955831100696824375930334460296434721428723540409274511083041438323733749984060210380149354831328614890964925535703657754489304327188992305538980758472516530651582804150451645645196514803710753441304581200738919274121982879297118354666657592150274804309166676535931085845320550347426637781482567586109956278945059795906551423918494246658160008893850018812503914914827199793072020894035855067619148216490659632978187023404531645219814120745451345346629314166014239627260952380154199312136586422286101739078427412864688776616350242383504162198538460083358082309137881522000179817461635748132479517401433006397582744029406893699728359872378720442164258850705248082534913045686058512478480034479575165766998021113650239561050562725123185413545388315081611222632072046650542186226041494259685017765578453959671901177896349627058076891489056618893965369380672131422936126088570269381314600485313872229821556101274296769151202080648053187308745474722672971197758392674246230899442305809305932560926041414619995101168959679732155576524202274366717578234575665326633323343369931424018629088001347706465241637276654887926651106966742560967110451916556506807646039257377371986419223809232771107711356550928441763052013836885484791622516261534241809579853725893722474052330534615138606966345815778283064963040829959590508026897745628670515759467230185154106681447451681384342673511654902867866296119052424124059577006018709940311860831223181559671256569545459140291288769235693824813647552975308947319889343446055254989378372339298621864451247424117493301238216924320243531014680677906112955116197636327770831204854867830375066082695349636579760081170138810622591361008194675491474219944616485804822984390806264097468832725890220840248215883081350375780019297395790659830841246262363864751902674750700684140995957484368314083786270302692010181268302146739682391248887225900491294701475470103078965143704519471402924510288784938636287932939091502970110601232909065142068060501889581028995351365377833941886783038691701313967829302295267799230933067903134606755245470709763120828620723502098901282663257248792095338279700407543633632905831368996959996372337054747685270418242118115676643376629188867707824108140421518598365526433934370712289656531288223544961554611462026065302477383199794757626039466228642421095677713552472005096766442263095463496543977151424378411932209551728226590020719220629944139425366754497391904370459538252915156460270559113230724974141512475128861405853533956201645565690184744089084882730733078080106857149225775825334488394180687550491519016445103390663493283142007774539098514669441693111420504477354687268202494091851369942719179863047813255907829417080534834157237013908369691905140924247335663733727806449865919597240563150970971734483209504302676778429553167721742168819791277303589379051853354158540619575181270009944088002039746052799154395895969320816729137312860512123273904343771090366582521848284868779052797343590093782172219810421115276053064140605531897405597919652922374895941480417920960610763373365810505460648889631850161492911579584231976674601767857152187084406007943986392162449365915945828411959466998547164269101131484019192112909281416371155058458451559154739117594700665973385951650497365435685541191986759982973100496949148137425112114098241777395031296894618237890070317837800818720434290485645560137014301419900095261352567114503937060424211332042704420835163326118517790557465329499020331000213590182923971367601670413262690297053871779630341552006049412069376702578897579491617555861937601434712025649634394478017363986530864421363066724076637576440463559623613856875976426559186097560976402369815644744919673833575090282403805006630845115469618710946531184715769669133266023669788608572984964916355919195563186304229543142872284242151581005114405743879479662988898567690984223184659184285237383317129416422359241304838795676922406530453472428534270032234160813930687399727174112409319734445522078556285195954610585116955792136183802040582167842550879044732385431564234182551061113281105741384855813749050353124491767520235441392620913111218654613943465797607834866295938015388056527693843319914627566818791464464420869939962797872256184758787658252483148775970458516254996842795962025941204458237304367651127930505116715965170914381610221367583139123302057602230672276938568937929260422780728914393605806120574417200951720445895242652563235457546774737660683057230004121286820862132371925739189921308948969773941047002488179297714143290161219358660694357920146691540487521393069821293570252131529387773725636968984333052797837494750635562763991657081124190238694092965235735716460036553530742668375124761233478565619227188425878934596988824923570526125908157253295572349967522310694327646636940588710682868453748882557263483165594990485780098782716434983144332101908486147533930879035161166646074519895030126909924580213621226585705411379161579385637152491918766292062893195064550230949206947752966597821329100306013037498017523913825457362759459588103788270733721724449432134803917387019036562796143234134171096342727823023730376161045194587690511402473899456639516910046905702114086664164336820233096183812217323212924549973174444481192885857876465474865884262162923931531537828801242675478401328476804305796345078580705408967904126937754785539796904094979407021463856062777382064856259650169617398769848171603821097397421273929073501453994319197989855466339018288951157066542347759204934138008148113519176294359802505630756230060504593839219193730164161625576435130070646195359643779460987381388120833497460727731181289004539969491211130981184247141901766316464073326333348564656609329535299071456796904449451718996469659240233872268749404177717392800111558495680531984137187172457565832985913889073112813111788516857818820504500042596527833639446880510529651638908638543366297442613013298678771377866006175355681129664336624416437731257320257016191744034328531611943628818714183220154141233989244518847886280889866059000609546857490601122792207754856891492001381296396247215445215658386305521604753582692713048635595637184042241571741747650790573955476205423580316700844197027146660332084398496772517756654476058352786946030556394179438569826771132200548414458539322431336408798010403141616326239317159789588316395930753585185105017058013472318277006938837346618384963633325772828486638761429879967505878812756555666157046038154035125508139077779179734959549472304819883525240956139094733421462768662714253372493868871300443592975227818581698305789767529654730620609942833790867514900182977917432261178495483824959311816851106503157862107846581680749816506748997876076186805759905008831122701372447206404192209125259322824582009398679589024235878517652921796370430774169604621217480342139904235534863795492368266109590094559397597149978241193387456721531275364907309189821176088324395132991016450087441621635078769006525046466740040479996704833612228026018605546416286715463415400121499136594525106005367527255455030037371943527444761275143021696837626309155816388264821722393772013212058080967140509119363171391774418771116645174691623100283686179340851952679614787362972634247651933521608550617896285857452547252726870581354961279839512371251594988341250789489985770596818704833105906557379685180031300726060891961145482468524354645094738188796885499277222501071133353211599675019197706837722620001865027001956459016693211171941681059058021683883368835980378258377213261464349844386826881404729607135473422307960998634965281969807502535441966993796421033491841232577100867809847873501036810017000793332350757254163834759711284966867393059191436260915790216706012800806203376270585304117926422278085104466457249022990739442129723519630101708209542130243757153532377962877364319589679154951133999560224848903920479398913776918328898471213169368776709209338068554215938629076777838059900593269398303004798486990424466823473760234859165758935034568131816093652974732851521512715886914794743288309554274118795968292454357391439833152182023908975810880395114127714020816507474028835037932723564843448081447977915636509605413483426977842513763001664198660936208766387461635199641054766884952226100382367467818210623037715801413367378591285650857810096769070141527066037408024226017540516993085073676263781881285128165822063737839753259230234883550932096820265505992261886134463817743855610889133409362800419040209727118892991368344120911613275129193808053079821394304548344663221606054091727462274443104295214025385772530235173174298107245210803591147804420466106006552947704694782483398980784849649120638769672387203349188690315760091513124236774827211430278195444282807105983038597893260281843622551182328823709814910914804730570249808823202854181453517366620900382197146602915869827234682426002903907931311667073949043392446794178365231459942388704175881081905473098820170110185407542548629343039869181000592809123874365286687578517636142063932775845286621530002238846869483244097500317438046666775038466777785691198355561858696244881097104478299200035731369766466009604179604551495117291285699124085706657743273676641230161910875430630785088124653506017390234963997006531170444018871212260781897903970820020244821816894682300119678932080359016708192542968093355919036800865460029994884531300895152846965420579738195521378834056826569786222068035254754636507179418810859657751234952328877374736397817147876503520818954884771866028186381293680353804368294516526674969247638241835753415380700217491815577861009368718516824698140767527358768248583389394588014334703975848307051385041475988312144657446524089895608661811126924750002774401999634082314815105760677896288865655983107350936315295539506066291649459582619963146821129167585807641363958876011596218938015629601239187755721287748285341277455333497735405319543209737392877368612688214625349181980202153841672278021439874577222846854357271217918585842129387358515839116123540959283664522179638712061939573839943339318806974610453437601074104999533227669736567216073930043415234252615790360261629379866167348310855142012783782455416588895476733245090057225532239672350791601604256161779249178951973157956662400185184675066819761235239959567400155426556518463409081426303565157423272684350139315110683749309237400502971911912756748789721074311699329781102188365126097659044475332778117947778472909380993452461831153217080072955386594876442136112489324296856530746465360184235857460044007619936724454470280079194855190411962644564657658750699315434152093017441822202313725346889571813560480657088795945094336758718521908905956400600635662441309609076464441049357832835880505734464563124274569598900448154873360808674840899075504009209710051928654332644747590485458801788077162979728060311359309600285112128313240991101478030605846091600753183033131361930449569504751529618948164329583338663959201484751906094119014368521927381486370110211494065960602172869560889104082845327826842376413828312724939395711793762429621644769678956555748489659881699745267647385627129042389779502235332744220845265550745638977624993304325311807502743493737830392010656613810510001035169310854300466717618158739091947091837748827903145827634896472614490724792660863496434937791317210585992238995572852008612259630688256274592756837786801789949717250546123087742053310511354566201767477864034350435279447290996138679879157817437421673144442655660637420223007222576491866158562070976677600023721798512225199993428827707525041570063916675308569946247607149455691669629219741632029924152488050288954093687429440475489502205760896759514424862085551964583658085977126421905530059382393968437491558326169392849201737459601357905732193090012945950108740476606470486133170217569080442920078820820114442457467876101270478900446383818397926759274319032025212809312752415028517683485945101295293078153420098965293778966657596572096284981991827921290292557451966447257356678350033242150805259707358918060677675634887191430115596323675606649856042685390250039837813269610856614772699553451313702270658181406209401636910357564806197371206515402656492996944851144907102964249802455203998382178658802041344911671417642348010445359447391246142934975856660996894037405862936302063653576940449926915643187646099903327888864042890037864674174951805493967160634993951284395651714810014587838375797641676276809094721389307830088295793303672033216524639028524184864586884890730366080353193900640419600008086983725823810149388931289502004873307480768187511088770729758165192944339744325230446592716566379293589788215859465050873168519863897033135578537304195836459282716527071760746424576922412740590683370229637918245831939719425758818380057276761914471443530060031480103048851880286046706602555980703526175939657887540940933669770420547838353493366710536142859973473371756960834390303173281022680662753639302620456120667249385431819035715722134513918433762463907946376885104175809864672779949598384957938352798828428364357786862032924267153732509789859210409326507597694669888000957958285516117269658456217801605342597579489107018928248818059256278791141492639114438090369945353785916933812393547600777908538992509811489596296401667250682813044964674162565599156322400767478253820017171069550800215391150636704197082206794148486553798361386250658525237666205164640982272196173703486728663266804489551270026231320820573457118681490659957055740639825915137222919121217620656507787732176386580301552913389932421336074715231388129502223783187327676804156895448475698427564704378908891909521089905267035870393271214446986200460592434832676465398723240620246061742071784731806624765294185640207511514145459501979761298972818072909450746217410997986558144821148346301197439880159519688845825709982533106898355402756220085860422970042640058774880447537173377559233532670477313769681318295819650925311414929915518811069134780680618090724903416183090250640990392433408211081777109064776541182274980091837904496895447217683559410071572413183385459231153137111726674256033240831684414962476927486488894283039608124953891822373340311839883519888646309770876049081439644013793533344021090817301757862685521528098333998410442597964374148657802337639877804854883320122199138578901668484007194365438486356735583267198172309623798450347341932849582227835113798613014986770907600200114859989354941527681667173396329896032856368927662174078921748598363557445949930394937169980369576398800629036414036217294651843374700949054933872866200546776235550852848491320332111714153741100976532045128419801475975299394302748566739283112665148796161752144648256742637832746418203030659618387843386497580521431834876080344331388707536086290103428877500263466984997942375118173064756476151906804063555693023651144952636040838672669764052927024758571260021706730342117312330595065440089607989107163472178759698425009122519434032985471183632713892315838740838880232266946332249404463853004141745130607846761735232534461070259204052401901271423482237185818603106762390257768838457421774314682374593543136285595317315695341315650018469515359621611459886957878002568757109215601788827220104191290931298440455863486059798602727551761091173737367836596590005492852507829962487865802958800186461301627891003154125273356965431360179264292908215206693333772583700621613733341422071611599438555297295457755779436907167126190080077690637502018492829701802561267804239181960778477888323013314413232046491095578056766282305364004073205615863783022060527503680801991465510432474520918079662344506510524474700456190080855274698566268947812572246747910324327241840024629101224840354591979313773122161647435861947831976984074890589361849936291183393154827195539342138117420412055094813606287563361804060986801535662566537430015687182811009251637891403680434659466196944560162936961734465813926435428699744877257811589104780114376042234243562714679827543576939188439639956211708658201572074450699672700248430271922010452005245928049455212465195571199448744284706503358295259206717383818161872823433400252209829014945149134145269153560767722271801265090375025617531728673793919665792072430636150204880818259557079485680484161666236762890242678412190601479346282044588859090257635650178984829275908086893664783597518824444431335698232563770191950982201001189165775707763790623600395518321743861132743399963594073083042901223644620872113637647782171254267446471833601024916343473492920906492330294259090224027253717362214606946357680193023161989568800413674267662747841668337011681563342308258180047253104840058368282474883126644950061114135105268000416908997396916442787388037048362709172643796499970635178833888784960511628684474355331825869351496008199456477335551656927849124773662675540158643083016897215929129221402268132373301400103885410980240137831511637632775929686362059149844193828210560408553605164324768102401461972083732949914433467964423099731321152637883657008192865064959729668500097028111584261040331073911818475292773787662706724855279733094518318362241436385430844476660075411933108553364174518260818258255472796323105901486930572554415543175473498552591477477853715186497744964712569904903054585509583197984252667814522827813805649546384909808915038780357977886607924115625539500500570554828747781095952829162340231402098122820174844690648734523201422615600703790883531556312741648274771361947339514899837189344942227532836858399395921431669296696503555496802935656084127928004233749950911200046219307707164050259776633759656550840266200297167003129920549611945636748712116036673620532022346374723439580524291107129573975522391359793420763768828616875208060049095562534255628838471970051201207571822940387659840311187691402138082848182422719025508026517800555057201414944269923984541607905202632240238284366006726809709589622851048331720097138175156762220122252827972958351298291229518367567557817369549247161773324104269661310212864316790161860919847076723461843464505870778777536227756328181710957771307457932135723772203537949143338979973649614056012543467215753516683663185571169366703982604045685121362548160280775846685479033462774308422185232364552384240714818095824591897747953083710346367690421813839012606659066163684054724899487030203660304039705787025973538578248588265556061752973598209368936162424053759761785059641112558691488245865806056124726156295155444902689437257438919247765689249365164803786821264447572115929826688721001771468297634517646572426753747520678050695225863801071038797188749941500040578655531647222279035393117311118225703365833885544632571383171575029192762146043699264251499901193223201422135676675922400988714948827210878396043255354842766461880142724863477410191969364238449477859165867581241955008047420281001710828535291041007535713606430834375798667696121014099469565206216999019622622022396186396922161178952157435481030127792678276865602034249323168423232466032844207648490060475594447691807564660368813602819034323826578794351451446904304965594481501501337206735495667753193005476750435354870362835623795706526505169098214638450928148839018956736802587654935144476150000365841922214825049421736736666343280275581728521604374042979081927571362877779495616526058929250697912833975769609427544183000131583096202342510534740927926565761195924275142763890520495162544065522859440257809912936774488356844285189966639811017785364497474667886088311244982687673814814707244004908055318729114421616823139179897392212202228583999106067579798141568690588340804055073201325708346158888786190958885254447336870641990784650127144368723743716267734451373851929380624748812444928985232911557002316115587481061631798350846658110740080016419002818734621707371468211713540609744640185827218089196609452258284913474208642126292609670090412746163743378447146078091866573039903752388316430735789870344450512100826295000421595423339006865766964666303762202631378101387216674422349274815000464541362196487019096592071033890298169959134451524092453363394324228605289728849622957839111765263261857749861357508672225627761618021734099148880074537768466829835478232786803597761727076685418437345382471495966223277880540060393521646981732217812195491252435125619615586257772546672941688148442815237105214709790932467547817173639733859513103964937487539959952940106735353035828277579058828230513330592445762537241088427424093143322018339860034351828576697004135381327456510291652455006382645532430285318639126846316827313868083706419037019735290866669975881392790223693662453432187345506659378641965300808999639191583270210753223395783543898147991592036632433032719316306908363885907341680053981366825589187712069109932177434534595609519640083770176046782017964858829335523786032464890382811343134099138760106475353965880639977239582061350757566841298142210229894524179326530179944632593470684296418027238891585787796261434212882401775419651689941431118007045321142542312440607123667834508431740206470149353199728050251901521899938175175421725942660582547095201317695781693363612167187967235692569817345567697610246546466349622849235155398928072891581192096297943026296141185678652718532276441691521786765353156063251517303796287364143905314071402446151455235547895376381577133370965053578098602122489861041964166435722372619852002095791183009866229857141951469914872121457070370718185193547387876848945616103048458941172301664508818408099449304831412746053363522648550197201800875440785411967733940290815188739436410114204734841370109168825855869131159183632433658748654480858430057188685929877771368003094692988843846570362100749228779747112232234588977131823703352781314065392236422852781564235488288968778123062688366768444569182124935597595148704236591835544812711564291434383201376558688975754544401887074782078023671271689255351583113684521298734095146403015033257100538604008029803210977820049713852133880254986363405561788542951962300398531602109752454362553549203272217172874911922626299221547784300288226689164159583267893527487138794937447514599680764671695422440900197903689534321164815915159025560657510506839856184465950546589404122090409879512965313053084369401242416029605246743972895364430023763399413397643926767318310272280448809384281142313727449880085936023950874356315327490090688889520418684785660656911661067544246250009704710246165375197684163696524205640574496876201292945634982625394738718805289025236715567899982569332478330269615229147104221490799360968190392830555329640644323901913114233014975880450600169110776029016882203333873574962976892362720824344970537711855169628629808296217551697479222098925511017162817432415642780642661459961060525594841319960266778365678687798475516620984271901068794762656798206631892438197300409629815782092651038183398380298293399812097453672213508707617760104049604299100775331305171827289460662586862581517640586292335308040033219799048896366899908013890161950207937902097961915093523433702619552947085218512780277557465973654112973393263222259569884491909879320029595492308114423556224724020339273089861688125721925656770861181692607165370162471582150060811410234284933824623675397750828593083361209854644764608481834526948075707358208471402696785167886049926433913594960291771597782959471371633040671198965530681147458279766749956030795357860256502551688525576285147551722578015225262924585432607943866920925062795220718374524523234865107445214602088430323543129276509413607490285952613817665474190409044919138785270368331603666483772368217588619672994651471317204550904458545514359086627307956140057294932371901728095714525608295396959736914977492261709621369609540723695903099534605431560292457550111040545306207787594092011673092082887105009077383237215822663553726189914362884907712085405843598118108482533765689134743533120819205393039123238621788666379165648297162728413530734228961612731760552918358562932099508454416386854955305892073107400662910470433777761550946399817971310668731737030485457822430399809184366864294838557476877854462401175788047581031506530166267703656704417709711874676742733982146965165059206747934255973422658748351237015406914208541508874061395117204952159587945302774140597660488941340291704690417365493873751782014096025389331569446041036839516753816257368054062195466829942858313879931144849825154565941059184527394601428637907659055790453945625431597333123118596045361732742734416343574629870765013249190190385924958003800595602963869855104699687614092220578098284416492297804518307503522389281483004021175843551445176902874912647283181615671051314027620126173755763150085799771392703210941294047867460533595216902025027340267231361352289501391998916053537937542657377023600059951958443629748715295216607779174653098190115336416520322361206618305993225905147211452814653182834096394306205715693949016153015772332654503724455593896053897878260571686162569818669999288563882581574742722803044138546085464224120958350325032254898976795604694309022353874657718205550160427516990533337373886211663241090694287020402348782901929886140895215606104639924340844359456481994357563780713287068158597662001238290367355635907218925446107079462026821993873219826226551396000724551303204208461372339057979894283607645732259791530392166171358631643950388302670631964230323810137163023014050738105836087075695733919627877791536364655270868493358618641903449426348823096754555582821296036338784635379884550641864145112027165175822620146155515125941412093539291354382318451908564322484842340487715950444083352163783770866978122477689123042881871238651072329001648185813536955472988296914206968823799094698960000473880224584881315319577792385560254578916960526839953454784827423586149646194973949242396942795143084118832007886929677305900187411781110740164159951976697823111872718736124841409993020055436788602567630697888268294093919906553149799936845330359700342748405097664106442840450344405020027232342626917920270197235815904645315815818032173896497526431123450864128982289194902125155675150920427388460580754196098319274534227355469188403040708922509285145089664204559002077227936150659365686315916816134357843329524319606800734847230190785382738512252156715068565724912757424779675483042009158663097508648360651090624389683673315704235264622779539460114985721470533589115899639145738590515424196305855415342689700562102236496209913732608020585421335928450500951870797145540594379810730603613229755672566903691367040147397459711100642332002457828838003957492758561486080467092691320373611185157990306046284924813192741315484785572502526262860771597830220559779519257804506023541677961806196990302586014495946962914147506602555301837787534734160882984814672396359292126717961158103332276613235400217321329490607622675705412114467175334557106699774603258210684356027544433093686588545598659196006218655811656837610795009431604860197551316343698005739750292409807824391338060194935528250895785508569696246153056636538967729034102958106207718578255689510663234847604005999106705510349831371624895020149568035376489337150959755710791006456620175968437965384721391315684739668410195767904432081964869223612901197021527457064385226117610488058578541893371059104718761737334799974551575232070794558115305609550412338587050728572282746862406074153468370835079766857690581725603528061718490991679759319059936542146285953829239663789016471407314911458450516537689219324543066240618813443664563070526555802488432613850499700354634842456599021059239759104179636345526319554704504165571495063007375792218956641481408809915092486532977757122701867272904380473941183044718220123145930011537970065352287537566863783948411339613245429068138236213891449701555416344134523744739921423926635425636387617818153805050043623475048994315574139599806902700542631520370058783256966824057834103732641837828602963969808009301422262024939060512776842337710896418779336800513189255810491726039581245829709891520111236828363380002936613214719585366053618513772397907028984159550351675259383600502114132337003798229439292300761906493325357674535341911954189355904419391834448449846637448606266732172172251485785146004677702402780441666218131857622826075853543402888484293864143976744441049822480113618690082929387127506388574234310874622777224649137197087028443905077972247214810992796895956845089853307042731302019659951173318050982674595157402606160463093331443286528580899207401805737824149346815583020899450742211575682863034024979057221524412310722199064229576546702287305634771179031104013145955525990624044608368449091776675837241632622705530429461602803002425915958229099312094742145578421906302667193881454808465061889419209814645399435926474415343321210787050808332959895712072321449973186208147500514569866509410331053169410630681812728755047292674732343209752690071359271298483537087007559453629730851746537831771635914778950391629302625165448436651310092135628588456783445870129018522108078604134990972817629506160331469491215154191697325246598046380508027239911657117034958393983824380434336026267281730807924127949592555002040898333810323240003460327687853382900783238425646633502429687529991262619040250051490539289022410319600220044968970961956528018816042712928961097321938501627983131144033441257259224728712018950001916452000582612592897040085399879071834427160995867513720535400038497046630733862059340665740013437087117723236576330333068578036852348029561439766071989349848370805947251910506282231884852954452382899925105069357189205943581213755510819286260362153247139185458933060341004555709247491323248238644498226586005365679655331717858356017636372058863835289390100345186645463515196628308963979332666963337011758397737010819039029540400844586352816101884626221475557390892960947869018297056354469810879313876993830894944970346197015956261798113277954651960226766412488174074886058957344731865217628540142589780169091245323152932935216253982687529511976602224801973633833644989968320755868016711759185754849279282587459116772322841626122710940228171156720800634810554063504238312745214478227637685278299582332020660939945955143689227400724453998941419763647576328438196890473358131895639006344781864233456751355208758107095464286476662255724061665963169113497663011774291801899583952374366020652733393450828785022244762158151549266488738653343908706620035373392321733223325843018139845235078477468527011061113493558261114260103584873574386173476520270076182351940111895867206233661858919156717539811233536912110991409290363001166539342204679392198773310902274512128346810118056590349513683572401431878838881748987917532098960194432695613086797725987794650399066342289709585674474297236522614426395807553726458254886453188068241202532057711414995437197653103159591751738006287294850698487808515238313336654624978070929969932975196425618795065329260446431750483530381736211347698613167359594725301917279588294277811282980666380866533820348722070716919789340222168606726343715720661721983119995488554917950750359440137743288492307848640801265530371067103336204883237645783871643314439746690972052421413707447274213630598527402493040618885168082231218532734768256104258181102403724019268543120411899804006070778726028318401365604162885355554671666297117644411293639385978863131060463907480241513798164473697828303951492449196422463244828788280356887118264006138227832411145578729619228766376612556546616489988272037427748702439291107889221032219257321105528657027613199005061054097984980930609185451617557945513713061408624135600186754619072225160452264268990535725658628628698947701341325473433696199367511428124436455539622125616508820359109690416623053043433126367036087963966049537563104308644460077438419025856090154606882003629320808196908352070493011380194029505381451182459974720922446530743227102284797435234460724821092654689576654602429870660686099474126704428990135081633115449912561160299040610380082247734926081912518812811959205858233864588311307242617507641609356352888146104758782237675672844612315103968970745574725371727809483069931417716945866036409402894623627967836859868514601113585544823930390970141113380160269251027691753895791286595988120157743965989113026770336468669379558514140678433738714131380737866198065246396666643782397929159629266991862728995765666372985714656488206754510524471371747761529957831612113161728149453484369354583231003787844454736145249441944704772376722623739025628379467252118415540991977682591579744720293078625297822281622035730615915362415650778035601454856809368595774660344767054457652498973693756621228104755360405588338756251625978755392077784000506359306892395112294407859508559479174380642469406380859483579036621042792387961563113986756054730543936714239695762085712146113873151951234332270565832327639253544153693257890805425347700611790317203725572450561538627840002996606789895263768881844983061292646063402125263387754040534254429959055619311769197082624565573263256111342529079913072202821412702836636523502999200673793521102031158948340964827866050193301222945262891008982367455425966016119886933705900827175064802982386837727895353999259494328946697710755930338591916659049259455899048049285138690968414734864166793111409251698970474132761932437580130021763878703939135433279475226996663450128997041687373619596621269074454128492091543545175968008427327406817465248814652855647947668326456151208555355592651715184975310871757567556299312916393583076497186365756281018952761259368661989992085055737627476425707627296958786143431396538768694724419640854709842758792079975911201286944929374382844134274868647492946073561856421015400899364768244710498428674851188268731665071991467373794689571771234592040937831024004453511547805914242421494031526664846517445909901918803769399736122194177757539218669488662068190519574089221740343844104530009175119238640475560153995772033050445253595827586535972488583579084419208343348003075415376119892657948973886112932920280024447045807897268368569134630753688072617458381644919632898394745075584417965362169202286042268294395292822422876041604814666225874530843095436716744838890309970353006682324648757104714462298723907879311536592138967090868967410726010593801972479933176621406236303871989225850073630101869462703849058775429538642954117949519627351856333465938793317118438248883213414310642073206106296955725254252944318218058352597181655854012397259853679583303129828072073369869216723467996722768820823145638638211537848264868326438900334703131774043739656141309706576165467341380201188477004382104155437120497083282722766471594686165754320888797635948585635506915956445771434659184284192928761734622801461927056974366519100767406174130298910293256771676430284256141805557050134965185072930297978380402246082675114456149184711095227716077246468674284125010409961394886518443103245284205968867530387358819485525280870092725464704469539210175198163170151522076510142702702243395862163025192850881116352579961651808740810681997494118597492977457139558023750661287308737363972622288574603067149564782508400875807323547221845477727954590368172193093354210012314698494316022545990250077421234745379166925254336056426385683568126226478118235499955470484726108820907505281339848656724798362204927104133236570072042245854004667824995004036631159499076659320725600247541195726636810371255660572267714001591166573279606008884325112386288137039088468145128812815506773932104624177643861678593273288647650734884389540959603470896940390616424824795761956095296367596788286984469297107004440289676728571545211485080063122278974526414368634827138944594920469115435905555764694041431816255581387547530585888413584035119687373536853383143027964406636149673656746169524471055504975243854790251104063879012718699965611782147683739143136911401445934307373389278829095340693108347398489892315499056659299936952175206393670908157723404341773260521827257663300683134615445429703240896074603059259941483483420507948507131964906490948480459971019102862151460584776398580358090333044275596114629540509389594101253591114104525233812262838067078625287437827076952609745324496779684482185515435427049213315788178773963004063412648131122601719932929815654160285544160839126374312303551580583030240391964000395299775906642344225572909034679130746280842803659098621689179363771147401974707841840104349202310022957329000035891583077983180806444299179382824250662654783244528646921584108744162715422021886117793540045499829298440455535578649766478023562487189691818600986751971452850503407976336047875963573506375599762812220840197785621060016513406585879622048561135167501301755808831670278027809561608806607776026775369861572881095850063522500042313773429546120801345155462328819721928462172021405875249957699918206527353323625027617886370407838517300658388890237247149807554461585434391617961695873393971075123262789813381725761287478819528088440801893120252949407265650927187372948276871583484322486032602552723341905792880330444056082730254804663398753691715231502105064016875667393311395793754687554944695371357484996683936304765761151264712296914829307633996476766424034931874136292307300072127959153323506533634472664707670257865021285686626512841792314182497807361613944896268159472990107596645834491953033278957281091423822975785688811596967915133439957834205395560974342738287273015025110058377462640566131782722413974551025842917557704871704633605937809037108222554586467430597078972029352310757138862494606712152182249513599300442744712154175653747745477086223948359940965362120343945138819502652786961137143076679007042709924905530712132283782156600032885494774352564432849405595794517243147185903460679742838938008613904058685667564675758781731150238624500121911538804558762269264091272530915989737807089478865816744337175421477721842486101833678570835113919818726892324563747268243229113135736170044480924359107012168458160000057848574629774552952352994989335731988904186919017293675150073516080839934466089266841141467184414678525044988698588507740858505834986405417945087426347594671071816150859701667787415383508412745769542712769678964013606941691762129831494889640991608328314105853357582980458119255404484988263536221069963564271882590782417330891892265567998578953084764712494025974465318585302711615869549163471154388965752830414560165527914489387262694585527645350462823444088221046524105725589338599688101066506667164823461749546100749483176088370802525989945020919618091297551547123679407792882553059751083279894859119009413208824631700938798028956131381699441627041574589097243956423954245519273102386716322222395129538575621390688753426126476897985996141469779253440456879393441402618094722202144261097871048974597210886107236799294816881547670596285403367064300983930423234728633486319431142051149333133098946886665870860831653528511151102099128924279230714215168767492382279128919206169885226229852539952776225084293535711181941289787999189581840758239308846075179564467767594906868588469155822366212191958011848421650172083428670072418636673370070987671981591173858044674048452892557006588486569263500344434073265805893550495092238908099339013749676303245666811444283855533821098735340338758450056932397461825583535066882454954618132700055011605191119826001137129283795606747939567626914127477459722515399150928970876022223357720507412058510526898926538808791998787107328446770859170542853892143774581941068652676230981899786400816236702505031684396234767954832313194574573296215172144736855505063928696271952908839337051614403162809391398912340575547908282202798399103981290763405465511942891767139396126881862413369402195281413273017622721864698024754475310995536783181221471585273326430436528888774656559235602773773988238175760414298480978427357876118462306616970575008017280209489030454926608937776049427489673546103561406433314248935304549779425341769377715782483155653455840788433845841239392779936606281539104078050217529319947502410003504373867061562140563861004708007850581809712946041013350064990411523621006623125708446782176292366542316713946221766019804202083750013443481182070445733290389713744335029480243531800742620163833983084322882389539690736727609442142479148881213222100852760295327650312528506702613230087239048981732324583599635664569393216993183918299383657901431656960081719852581494771846386743590412680346483544785549558071506767520212139843042939570618606916757631515115709763081984099355564263003787249349149552776750354830811458358633503596324683411173552948426202466841710243084794458144681893271359393532673599211719856684185321632731507010471366321063056354728205673546490943038214213317974510748883276545504485311403373200158322436280685685503386321605313202905890776577063020976369821114700726029580511160223635630047862738402903396579645755228558819580079038680318819536785547281723374746996083964756663074160203819524671827373235419933455412636445379076766673400116509833529918160519612171705929550153041815356976363177753276999956192840812134756363860899281013057463182136514957004603427801011034189148328545683746277303707325251880783034407101070838606085834133023116291224471519238733202527738119003835756211907456689197633003650882429625410706010555296709850002382881412068230431120497093685835362327697199243683042772738779875833007009951052411932944289156150666493589930342264451722396276218660936277605305685215825501156800286517129129879362671332936223485289460221857616069311104709613832455787429837193676250838575553189723169978814087139083514122742350068490902366424739611184600836671790954755966397147697874039142484896379580698925005138341773564394344135850646678699003755596314540138599913869142639416683108918940546547523791054614293014269798093717215391451615495392803404272951850628097439060330170875060494074113597288417868484521909658940724333007908818844878647378758072183623531408075331878600838153244107805904999902406441728251787000574804116882898545842602641882451347128894338719170435676925047950997200778323175749564949051166930425656276921664178640224539809394364593701000215788827411189958975238770856305650679372484696484913516914286418012734189542975506873420381360704072819432730278916986974386468221083638093371655769092229045720978637711633189353532083333386089066366831281431526855894144404634020051146710608475600459830569264730703886514129908621643735264354508025152744842527583918139005960752554048877298546530917008416682743062757787817220789570317024005098461180680154613544489771436692154895513522582071393263757124149059666679999844233199394194226430995624900820957859461228876168939370164913048674938255769536065448926066607014983172980180735940209618148100716980627417688672845516874087940384716100824782667025634461492064735228919171885846347231414612822876119041398200792469869384950457408874864916945321069367914082969507185750454782912836458827369119656390011505958057585436045787739643820581484169419549744117102576870400403452800598834898444855475244664347724478368635306818595464404986135035337554292018284858415525317704647173711190613589347978457146114729158511951871183597495731605246976239506629405392079631324018827979002526362199800006815624977454779889784053725696397491124329846880447951299919354524809806109958318750555200872021100648292153471766437861486405773614892842666393871057318400068986621354341613946806401395983655030815347975255088274019127199735465671080142954560898109902228808103736934073393437309190659803371676106416287649890973913199178484634538415896603611857910145767848506801855780005548045373173480079116866762205639867153550731531217834215941698674523855506516174769819113712995863939932065491473262553509843619678070314759866847781565637426082296344779319797747374311453591335805209202241632688829834568222970687074800936283849379757243217702969944925233704535232267428936874372807725170629371924384876457735188535504191027394188010994204328076859394179874668158502261858294229169597000674100216327605958338844842729898259074343775924641776148693435020681493870249453664250789535016979741481159883955166535996554015539525412428558149446693765633782962614745651279013566681382182239008635724207010178559771281476728609432394897769559836328349020736245929278475274924333673440678692899532514902087189217129993334481087138967748693978723564479156315040780102309609857741857458184280405287615476377276142873558994513523414993658565635118270265169661541167608557912490773304098764140658391419592795243346461688902639809007227193671179110857922456333128903868146559052752418964864106940207549948008638781840912570842135327836640572321443656484133431113605101189789539305546327626336022543592653862092213125041809351532102767137867369335368982539550351808570433181572008044852645881594216325274435498244515054446255019387631275563204616423130569407598402281081161488685172128351689922005970541812823897002329278616003411543299197620856585132340774660356011177743707172647051395779586672723393297987326130906866203457941440924481584821802050006337276838766377710470341199866999792422265343166975719152487719667968171048177136499357364716416128407454155555868749120104638160574806272210148943699521908483976863249402077031016354702875938055026640617980043804345898767557984033719327328593757998766675524321292765325642999767725424122045219233180378971354018831859778760936802470788799726510553558535316540052905840170477246472949486871311900966114348464671762652715325454049428785904236811170943340564792834269689949425463264677973965854326400602214165710470469626594388007653713026808553309202540188482444831918571124796977355012240119239575093776334392344877885839657749520342331759891550085556264613230807006074033661231239387277803238096323655499311312092169619373393060742142927229772873949377768160934850317526661712043700678268047633652877842135487907346409716282323999636625010815684998650627435961055288002275408796336000480855193619115727382952260241559510771172076492656682676431306803053299828441392904631404392791550598830744067959915421605679999437103656831653679972755088071179460643288590245704641313385362998473973018180429354158779007820364392851623040148968173847103645582249974440410398973570133393947557654105874374519750106523625104060494885441747335768450277185012514633958598442527708349898632264234646051240011428028361028521859698487852206467026726776699176733286155787175621675999366230036986128414876964797841513779885389663000769359397556589132271474236668115131923224817011917193446989491735562499571106359940005150069130012307133941159111692131388682982692284010637623438510033568348828831030913422973836102045803516975204472884810160737339785125122278707551171703553884135345628369794723786327491524897802548735008479758036774288062116584581604058502172767127245656129788727524861411169750224101051625228737300865052851595183472502035909782078430529769655815383043423201212611866604671546571576698761004382502095315336650802216788555322482560512188744698360866858367382027294824920144448266364459679894617336455491151107049936099735120915746524491144043787684590488162425799520999823680931215212369965369810622080105094742695545964173837447933556614087228494602716781701766790085000301199986476174241162774191654801672062852581606878816216587910851713933410661041329301018871985497122273635565040145294849864728543467292653144470469864496594271627394313638283357971189499035949654789052916245094269998254604162590369355261088866076973404607011721933153142918888787998188766058749990039994620742923479320979129409642648944102334366540059128024572870278844735270287442067378272701701642596778682561454970021898420506763046462867060758538894466165067594180630563555926597864078850755169138486959107972011800337505254664468883906442971303218981593095794079939887875936943881386555205393172647528606964636892354398875254694227048399883220896339994133491834623455949525080371286937524840152856861739448311858512928474613423970621388834410270378859719681217752121199518100422831861854550538091919949929840846044422398865340861872705058668379517352945004242330503559919738236478754931789607866476805594662126386727452789383792555159451924590105515270938862782592777247223659230847710789091999695855417572391422330957117013690222145036783144738012591492308547881249262636974207964380469164503824952324887769791217192022616342024976385656017898779749387728941037861125591251953052904532006341062956188920042957374635708503426237398315794978381309552273384947543795406194478159218194441277579151151378260438432234960595348741899124649232867896629538292232992813613143690801636260624583591096698299600182234548509758130474344992859742629718127713751252525295635821013958221433981053874082426644322657407517296573161446541625659236243885986811819238935592588730148198406192601416792871094512414713012534812177873974749156978974596727013458626440786547270422164144825322388203370749355315733320849211227632394735599487759935629659189322280672937946116954564273807219604539196911065632583782971447519324957890661915288420901587814057260934114742801191703004889031762526222671730926338126482293548234269042563273372330071435819603994525436514508411695170449061310568465645352205807231117990452681845359563089651587301659147072945832572884090259032934761715478318698169486238864754137088748669645223504083136729275025305585327600016462097290049671952597056332599308321295262103434866818130147661765802800015900949394642260755473690762868992386486738702642903667037515781320792854864570342716123669331060276117671054732820703316304323714975069930081547198102293521042810098564587248522297837249550058774373284327473608149490894046414481355946836610905817269956176741647858139282987602966642615461398645229981291531791190716656508131018650497198166341017110606861555953898026239549219754841576255279326254507157814094379001589703845453734363110229688143238821129331493342109647852522927832555661171262884442762628405691294167064319019821685364330485628968838586731644218398503037424482322891382456516496182171102092597345737174621986101405095397312801092466102522520150729620020884461648184366550233646655296093927944156866373816732668183098534534952112826911714415037328213770089628071172890266823706179125879249294463089810616475623762247261864750664667598112456865767394969148663338801956791796036934488745434380914357147942755610713332975769103519564104673001212992626285248089322307631657202583688334222153142121391013951252002372522895411773807792526298150603043077897457823745811105730945954438872612766570790651468538992928525285316788879173172434613635613635070662637035483264868994068498466203402323873950179161522224365246165270209601725227143960401988687954452071964310526352702691276127787712432788618704047748228988688907214972928726823736472739536016457129317755286028371111904864339067457363024460137951746417147381763268269781668890308552929874632122117902474386476403193175227069826450804047038901516494355187491324043856961755366356891672952777007404404417650437715863878479073447558974063799501146225893117564632585768855331567048187833590467650617679946854760065662125121431747727969396337912781285145302168485494750028878347802329930749312164411514625397725971903694082422324181293104159309774867900407891440171439734325893664919317028423629822089969133827694093950673004398710839749837487868571585102588476287664912755747823144854989348867079365270817377347791659034220378214523405686646416116983440806170713364943329072731590916067868861678041572658782221816645300431357071602118753931669422346809843040210568925492125989673903671809730855732426389895769984635507255056162328619801549902092444855573307015560897034953197898633708813625438278928634424271227596187624479677436070682397389271401200461074720031741607271200142033818486614537800541935856171811006119710943851586517754975122620480005722463798339925113979159017742548024361372214243996184272121505750771761827840709897377840138426903664370479134718444515933284787699180577937247487815426122050756173343190845867312170859999609182833735715341679278700469136589240402963136609656718506044394591230746767556098840518492139710844523826001109249592879070029791933234219429501477187044446094618864176409531618530051092822846189298661140650950752458036277799968466178373576494906577753126616407256373398392640908712327772713302590698289258812332581806588535511401097802324131044300050846396044847690721540531401462976619213186334957124212982996692701762650981477664507734990550808343447301455143916049732580650914729010674483831567200449291156566125752455606620955859313878891716907813157052181448405053561071141434001609925212393720150159544293695887650405498539039821489502035140976832620779051422611029299078614154222622292886303214402978522535090924915398255169118683394008464809477134460767434195783545690065584962302550928007719543151184965682916531232092521948969378354972507443768165399238862896424922232590377721894960009519990875709570031109583075097381227369958911679554618222705407471908030905892084948766834152518109916390743324201068226956542601978292455910716766268307711942397178505639377803795265170811026730593945505299870069609079945710578311449725074779377123592692404717878252292688192469713659265154703847995576894727388955578081403590699203279512777033953511474759170135773238195851699468660462421351159064285112333415263895377774417197106240351053051612839668839071798685286421344922321645219246447200371428307267655490980523050823890670509757232110956597011868937792283277405625117543931979631247157131702608639552776510221967537462497110656965070214765515779433708493263270935644070021383314073841310232817212309016206378251903182370914425110645988071500880466714054868915664822281005072056611244125714767585320414804645827510959600475222526607113466619689361803348258261524113256891016574963066273278333252258400920056652676102789899864301268909201999034195094450903674170415476846289010034834749795648086193536134572775970950506507747730769198883508432457468225367182592142201642423900960215410542027658602700416350587589592729646734422036253376534625186447488046577795899928224694510055390555404900421636566374337392160012325186921118130461583674832281737944405023461304665551855180069308573958321058674874021746249778585879425943277327455194433122561618411570846262531845399229173981249901991536016290667152635907792136431498463758130717693697843132519253623348336453667378712475851640200240615231823362084613324145703980017850113199749573783931409806384957662200195403603396929586714598933618268027181022076251440968480796335018995477494085429656287352090924802757616099024105914247565246436340911802512543109783929884815488911440918191784126615421878971083425190529681460766776899143979085610433162073342299043594302083449106317077716809538254885076884463279638057090899141981878187376513282589463900841880018977348404366333583731853217081181122493450579025644851756096871507717801104068531074024415490047580515920805094737977953202840859426422640086389739070622359971781601168789437080395877103361429804279294325101455725488965170415368660254687460024557022605481320889495648911241808452105438521510435966114091832261603220785721113329118456851591357105188942256224255473459892735723413952233981178924892995515176591958475164249397924837062070560448811634072169674543404261105762053584243772945314196154883393569320987901175028547556183927597652084908604966993058981101855413639283717885041363252447991941977919570312542881504142207422377179779088985785485631328519326825684467724288726983797118348061405112096769629984426422566933229707325790181036172025768952198014870990674286847759419006395245311180955297745384583320026331280789924286886826212225216654870163126855752544413664141635811180134442637646746810367514132733816763392548274137969633435186257173821537500143320311811915304496981023440709841259928296079375725870297365927494598415688155639064078325498839027666452661564942394169252132130197153815914295535452385862639553098644322525042252621619005164586668256393408754583594344473975432882412234178677647756682906276837394073166281049477651465813049137427317170606395717957803374596842876624388496051315289750734933239335877923291052908811888115429353950679417090908269347246255186114112729033810723727784239105894966455526828215335972464986822135975449085270330984135198488346122132549656583545538349370529420504125144451110560481853929125558703238409013484824136887430805604301624551178319536200679685193423943012267392438991472078379428434764568196788201530355976818481664336549894806387133832140767061546298678807903722089353650998227814886466912295656235098201317198924098738936979579237723867706784146434434181211275873362538316405895826537722306963530870557864690542594922231848703191445949367831687593194454884526372693704462519240556951750960780972478642124794859233271149517547453782749818708978752793556972681017724882202478382699404603921370541579871531665982343258387026913437854614515148133778279640903403123589627333737889419685726307634980008151294892823753233729459168300260997040759203413440385155366760439330730348783108521496187214291728811940194009524130805872624512990959808621284220787267969182826160707259308688504903229511723714774788570265618871453605659294134300912239419761881784121449848958379786848021155001294870245789554807310475238441319796519620715313237156142469115895334570926442822676967114983633573521674349205338756990480218648561346064210710015494676424152327653629100251277371639492829935085923907129315512813577190219117956065652186171687867298439182242087428059005039266747019068450863477320615089861535458591070511436499672454796970272814668597972784163953212397518395699443234982367709955789874697161304763160975976515733091422950290028690550986186101512021180354882052960143331337993868169566499541460606071146094608545745246785426675164776097124155484200326821048372401159970857707848543000322511324231034076634614795465758829817137455450375258938907819534288223764720835892130200181389478481318013991188021146834711065082923002077116207684993719006343442415200015879810340250306253586129343680110098035538551183668884014120560823897503647632883483739902132850898458496299996765754170556743424412889866705300878169338355590117001955542799817208702764038029472763683775045659940034394766063407744479020107628033388053388691047260361779208172510576794496863385472155627910562773459282903255512973456425842207995713520744264129663390587614146401440788482021447791660673514141895064230688176183127487701657940148282613229749428848664606413804579349476132441941979706472246533363107049191731488016664832572648247385832057038505669289340770661290669292850439843679449681081086178236276198030197071840481954973050789212964294030817380863419588060077638412942405436192744144584237569590638158497782256742368989237958272500588697500153851284011688133570656955443362372422576888322170823261364359339227418551072615712717787360109893732959372970428868152545941813954251892659590384027543081052885096450592773684442723529956898920994007784661894400499316341563486356063292761690133936450794428033788585747087357398510744264071160736068895991175809782238343738919026769271370585568932151743319743676676404447957805678806248623448452188557286225262990384378458318882653415989490334707215059124788912417673821189227248456599084045201941935906948703579352277130973250147647792899494757363483575339592548099443921165378950473358121079514250080095205402563925583335996770960174452596796840063428836716265532284142690527713557083518302379692904920465773580702561173476017169993689214673852319959201124720039320813422831462720075107389927195074718706135705224497463693638492377105791355343224083104120348817981223505756229186715835141421389892739731060482694835736152567211791863056857101981679621756665086792636342681571782141501017844718841681972335381931837488144904842596328158797884678018718188608211402454347287035615458118629908900874283147257945034281978922069274792276786188199452542049013100275285664277863378851685181377833221373356078282816907533950282330728476808788465419461056088814229363928507155485200911430929381052131013957184997002126573898969943755173311713502013205145636751368149999163549288719620530044717319030359671864689990210710145317858477510113154272020366508658512002511146508195717158607223084553780818810727255107054337011079421440259069368258634216546130033169703536330551207484396995573647803808578281895304820421655771177423269811200420890434226838188269113710374131382079292939297214406886201902457230934158113876576657370481145842412817006781494982816454465076586686915566765721772838025014651052042026871771454622226799977745048255464383640195697654789303919250468298116380296195733439976090040446947702341870282489609320148803858266810371794289470647707370298923758719998127290335464247353054794724823162840127278779672566738647238014036482853446948449289771572127034600712184126753714000092330365203798235356018166966043515434798259601687304366116396346583846744563948214423557324242667236591247207363297919973124811512887415539690460897475675879020571828075944613413491253002204567081589121633655614937320368522575641158630379331752864016498365036002949509676065295136455721138856745150360357303891164105728891771721976385776942650521520392436412404843226189949043441312703580820661896832276019750628388556245724865825314277490295910307907352520450000828894422403037959630723235824355285014323056072455912592939783250690203456283389535233100402136836426897210373901189150249237411971635798763370370318216343303334956697610765941736389938325939451508720387667999062066100921188118582045329093072871380490838516025304759654518574851572996121886344627783887502874752561379417671487527675351811543544017544236273441981614776171830287147692350597050877428892644643627672497078230891006282239324063363120280586857226465128670053876938124055462145495718979852560472354251848117742048373111466920978381298132832749993865523138284479740461628663808076174340265878515466270958158052060677711703018764718217016638007292908227988347842138901788201874512261722083438875693080992839634445954095653066849082068483497401611569151159408313321788106634432007422187621558574883927039926279578356854049932824840840339093903273658957453749513125309818221634859417874398940912373840255291268115154391403629198029899881961384402137073765745646229112369450625227886016580260254478460113683190059644645557586812750521603833680246573887878532805241822814661282410943894894050216567354292497379988088487324043904759694067492573859800670593037932558355645187519542715895892177100593112546207420696018392086097591454698951085511831198991130516671216027441555361105296485932124348753811781246324204273537901873441235025175749701908159217314067457838076645747045740723978658572504589572653248170764175526734890001907802298847668412407368607849321795752121028102671668755543222325611423059612076864275956327741266203129355425813744657671867112642150816704320413901299335696023998587737849447840520089219321103888238659393798369517740991099373520415820230963644102225756269978747190513271025976939251822582998133420019990258544769823807724748033587377659042391248039666091691328988019394547863503792665045521670181837349189185230031865228976915875133987400721910038012952502869301468486984276384969164977179229365611677735626857197598678237833944479895824643828754310533218606348780298619452677264402248298574624499194811437140014948575633598229341900382459868877964018257562093016315200248921242932382938158400159377743657124067975130758214650291311158892249184452875582739805861963648954627541328970101753363335815071974155973941260335249857796786401981338974090659578929787484450630072957313452505853251483718200669707500681901894388531983551425046250125332028849773186543284200704954743878211430313742237280652621970629257864469927037371624880907217600517333794077251049180303045397300853130903759616834493534546939668876267860426782841417783953392847828551943203579540748548348800653587341817653845536042464477585576175578323486832350443851243194269555575612312726638708487350796149838974138733102876563504501622421863219382781427456176397667825055412424919139925982095989344497597435912993042195263096338422189197446779177884888779202601242124667041167661882670464934359629329113625090062605880778264233760256131739644119863738708195133740172200606326118183123338283703158994699576783901269242489037820225813022684139943056344102973748835887879225218416710948692182084335949619892383919256601383194126160571724005311890785642555712495598451994568680862039255255353864836849061312887217211344294753351413348431926525022944433070354708140424146898298782678716755825168582159450301926779295568862494403084247942968899654767584300422511364325785415689385096287714704785113791263354279299771583522618819674205641421778831576047099204303667494306451117303292478326210265995996790480456841231492420384329128648484209309541904558191758806712717568370171056698546183351541980914115300670461617335347079076431696401765633761260511783073303865611582003743273457529046800212734304483649282968179835138134640725763283489709394827858609221619508682198573847533273711372493758089327319640688137720294973067146728060787978426235197969365130817697936383848721746258764700175243075261960233404144991181741890750762454731065906399855188448273971469373634884373838034830288073260286445813766952238056746850969609285890467149486543597228674467792588776434411932324148959266449588347010538995513841390200366206948338281504657570322397498709972966641993649064309459945926467991241174471658116912701078001772526316832328559156689964639194125708130688374038536058401195812928892227909288816366543575878785625831363906938134195781448603013537255238085983489519541760157657572538803223359811321862311620147839241013121445259615345695195016365972175388728961003157176060119197707282920886691769361334997743694359468708939836295827630547901645706264439210713677628226836772229501288001277273378409996981781931565751437821530665329868587643152279168768105210214035647686400057579419417659308716299175236016762728907322092036998863340865219732423261391560079678616193067848569318105431549138749400652930985276608753656933991076310244797920058221692757543414963512833030375609318762874464936937943026314169384527664526026089369659665253540896258581899208076241651620863369153304931709554882491018166816580767015612455156728146805672851995674993889005525453363341112122122088742967766383214790934078377910135169409414665772994983591654018127395055155702009725008781115045215709483943177539023801321514871203291194319992160841193567591662557249412736770896042184306046896929193600815303655888046252796762165126631608416341473156668347103650265006763135477583841487296966824487946030966840222697294456654623261905768855245463779668269341645030247959387342675920430442853950820631046489131698204723119504961985475777965375060620702567952400376679580807648519414198985592706949714993919547688635780908915793137525408439654529284691020011817735279437765822618227488783939676873481508815978219956147726823462267837523487718353968705448561378208711460488275825344249836241173581457219075988024101157133027722100647787627622783233658485097777144955075577279102520269253519704641368000118189932316812613238835149171657639034174214931020436522634028836694424676197341412433901088414182323710685770574259998902895857391560816561127985059314938531599721463652623744876845650433949653562630490147641195716692274541412736352998977685349554320664793370536479939852565321914930891241363368200546813749104668215438916480030470488002604936607630803392021345924939684593084556295725468648736202584211786907636092734665331588241858970071421782514990289245672308861498513965669012675760505594854346583623030653584633092434546026528280792120251681953295032118397652570577481166868642763226616192587489961746619189820323243088422607808158641971327882742466905903298219839812071694735355314942834875666692002307694899577254135933660071386308049702467940932070829817203887837998796088651530216627614498169319859489112958725836312091431059125066089229445345052466268434046011739399197645244812064393523599002653443850566465206124848577301773807838773574681192821470762205400321834873023731532377338109064117765317799494677358629487935158958235170560677547956531021085942049856712280751089723243692439582730338591324975326646676796979050637953788292336864058849197582276240602926693313099514921851384285306622064861563735036369954854794290933431458584843393834220721899245560298437106269966521792283201298656292649323282133651629812427180541512440531469916303026882691308184895025079237561009953370663713597530635793083371231126020573185344036778350089201464951176396772956654734182332251989705765696516133620364302328144861125904776952030794941649683708930412717368129294171295731643655779278360060790633741094117893456123573207161667731290851660579021141728045128144646707272336691498449047596732182566398055112235732516462962071075907504183081889546083552376278037596268638236823259045536781275594397792333383378128759392581085865698811639537183870528599643323836134377969722066380748152050995015959161943368531446406808148852652712722308477208685243926791926132390535858056612187116781934793899946328404247167959437542000013447249613081558239334170768559796465299762756285210969006925982819249611979708830353119106966016012110573236236749591313582018598071700256213182238188438542565166285571386206492045537909999843419937712534312438166441737731212709563294339038885399342557916671173057918355546443775795722828477976131910739154772265842189108153441266423724393464222193222442590857464593260009907176754077240648734587949725922719638895598126850248195836051885895131817007540379256880301250770187078553202742065076462912815169187044912404616939421357329611928821318127648403167104501977189881948751040417176983822701956172142206485641045532871955504691455654243823530705371589358308480401305699475687696133756978622749893633931796401896286002278090429058425279154064970136608121964145774951990821275118224820045244942080585690063353933992410531541903443376686164595703506761856199153185400521280606940898289314230497622467050542900427880646926100572278241294026010508690517096650385506247787243123713878581920569852280080895581972998719444916018118244597790595765298826899766103123726158069896223001769934680981798026230514706715462939904977486911929847144994895943892903213002057669530545469492267369005234916045893054651474375623286879772329654874956014266685773592114032023206420918439795899539826737390433091204778303856043013820378356525936178374637633473183339103130705702413306888181842789497341096659974488284621497040726358929613508603352699847790010729676026970557518506402287854253962225681136995765909010807681046057188115331223756480468685116575075971775030515340971596489495317789213634658354711726131136502567409979568732706950009770888135196652951932567683148689168054241418519959912383679971101894056853800485959396301112733788349645347454728526009684188038664281555856839634682679882376058534532083258764120855666357961936199850709402230079458410879141699376279794088638353776148558348831256348207369097380910804133556560515893238239428536193064767779564912880859065824276366572094733721179334606320508825159396747337146284567736932000044034510418181357825982909366725923149895273066125211979079316008118652156243541089564056067602342066251166285517755649333297547353326804327096601432778794159010388588438599899210104962035723175765720068722490418134484700610406414243893340534194894505679615487430954079019735353181006592337453137647991068100340512398775498592747207642274039017481302475462169733871335809794855897785174165151430921741004738774943959902376623731390051119055722245692438565863838493851252978022915235653296450241734886440811168059464779761213243009813607374049976974713000179041206500593233027933012110383212801055300395848859473836546565831471058668949190100186018614352030562040260848907699715359656296730370090942211510648932312918610452637593976694882224680119067194217534329148748554240379514286504308039806050141129101356544850750121313984375269407197184212424119726621458430285531881047799430994494792938298922736779843405098837970685107973409282659403989112041379611634627798895307727909266282424663382622488931836320343205814237697108604211340373928268286550548488661403730574737881329930037581776540290331317591369088454950798815227023424863332010482609405274967860866669552226732286606284341290286992476270914026985341648779257308569596050586864786386542505488108434393594351996592851988593086081293379354857338636224658134871530294523234528536441122731050798738595113095893084882795336609711168338626079310900188359350937699726453314044989827586265086346402204775238821303957306906595941832721687107641406211141032365369199882075010048044729397105849552450660758600236827576905464702335379089939860932345518251118582776174183718726656764366200592501509363777016304205385909967417633197359018525031034936059024904772638463988489986860331295554359808194347529323350150852427043525996154056635933974779975280453538776539049790350951321298276129714716889032727810900048106687972304559085712005841109502833315953190436076008984370858478613864450279425692157450490974824478901997675370064773914377953754319478599698042149752714908811967763722634525133982860695176300446047152634922399954508486363052198897896040657303249320445920080671902743787007718029945512157307593422181730120659532806856724512735504832462962339772997025854846505365498094103338148449513279635163400928807553511151989337462620673166328152203265609931790402130069704189901386156463157618718254974316126287010903247439134840960278286685211410040732285410438334076527233720729345230443704394349082169734942250059956969209440853831715754017351821856618812176700129050996777650090849843079786424435652204847571398573732643756983466620228761135631401963377178086925630333754588377965871158816859859184122679525679088380437180526646901187912428591819305471708396292152035096641281620549603447540520443066527550851172592232158182021076421831074623319541866376066410796702192828015471938055175219081726957455227632184164304143750809860379313366706558594565223231820620436914884296290650524740094305264434861838352070132376746250377367368547913856922556654916978253969608805057009394592390642525974256552562573382834131539155107844910504267195443499350869832378652188493709131104117332926344724880184044773433385731964293736271506722137795851935653174783071463302616202123768464539846676995050800310982173283168774097918512291623520937246937714511458381696500751180768345667540035334663290459552430804180112444199454066193663986951448027903888554426317886227841286924531154812485710580795585659530022840270372304158882107628260908209011445090463630713263377369981926365520845939643272540198844536335892091149638404597781459228820028250119676775269382079063267169595205249579141623041431514376906318739306073470418380198776458614180058299471375456041164713796959026764143582485331431523010385347921277965891211248890718572549392844500678132645573811897628325216600674781250947885683065396699823267017939192285001962225626380850073143886988134291189806986388564542671462267853287552656360023174227320786534792969444394449493874069794890306666079994084524798705148683868440346332408889189237345871886709395690695048110478107392823266850936363550890651176580033701996351093038798589619622299612478767338477004997253339343836911700891085336583685518849062209040668213474731777597283041104474219790108023622709352134366269222084714313986373896466734074141271492413717680036062016935531695065172529716701000507785031781519689079823934302567630361263079407994053401537703478795107679525621746367440552236549947085909750193556724946102463060749502654154299349387024687421538582994351463614346680006747396757610986990337930544309934310079832785031684470733439782143698618987381724268357422625652605972301009524944217958952398894199332320961379345346638479012835908669353688664183777615171963360579215588175502608064187791180598632852947588232658350241433356427835805458177552294584188939021794340015503068064980809819095877083137398217685367070084548393210928092621087547931975271539577480036491060642901606914371146902403652920411584253289767280393665339739461999993014307968682783631792581754234708697640392778020419613389393052125340669217679570095092950530936439180551607475252062753100500733276496665479434669202982960797428680060024733232501869278261976194317021776761271560931149141841557048942468635868168748468604848390960057020987212215454194573487014745662959398918873434842262280390929238208372340562377261794115786637667628353672503483743292706238124083712630781744915237899653444785316857899912829403036010060161586986991952316970623043325781209568908438640868423816298987397194402848053748017154788501051033844124289938726904137717859987022186453345861849362644925409840841196199251193910721875627828286458988577491473138169863356382165994038904042803086751145532611774128467286973542506215013897394289383175842463392034238210526627221935016202251725217312112990445085097557223620683284641954489569574219720672686141914307010225577792857936459758675348253129669477144582758566654569324342859151734897509348684008862988452179120643841424800568221322944564349081536554783459159211756718036238836551110228682165947156286783809030561445283653297645934788429910349208766424106579898563442644660096287280507403677511542724194446134759357259674742653354786128556769720271607407337951482456054475403624052307459458399144276065757017218382175812424101739894216039526418553129691600484468817492100126808880585031712927155636753987429623732852375571287552472445515201259872331410342480705024351937853782080245611117343141308429874154753218443322725550245682417463229226527668510166954703689731950158841620280905730488889019328775113382209441788252249306997185772629333536237644125969240087698968940159064835506015527335733618494634973798440864444895393964680683201705299738678438500564441420509391742823038036850532008173322802047473296731628928166255858443371784839457293075255040451626596774363062435209281069070034480762033732334832842306959378214690475793726706892830711065697503590146737362017962262551359264036819999636390244135981326138068670508966855677289180889512529551628007480211626515054064659207836999455960698912667215176613923996712313632991119387306912079801900558696421505045976106960368008474729031707891154597815817671436913664957867307646721843339938606784272487069919333476619229793864485049060632903201425291026887841110290563730336755718834865241960207337579038005254678703756921776429949843588778736533158693350998731857330564734825364993519419171014414697522660050845560925642853313409147641591493077023610594968224073116234030436510549999911878380545003524537946992006167950667147000710162436539488537058471146730827739483047438386132288974443065980252731431743973158488626488402870019229625131496885394323637957886558994050625573046675604043793810917403655749867129326807065169228978918586451694093829586036202258469235750880564958940932674030922647772660350420974341800625509890760875161810237192268763019757948227995196522427961038511711969837079101295873918257202307318336554037065453585410847109758438335818424430960183547393118406691912247417279718486217340616196274311254429633050214844833324570301358883754377482759155484168887724628558670983194108826617061695441294294061327081621548261836128126093961901532352417720249520831308610431314992732255089866108995117829313802287450037599644517726594522408964421674724993132304160095398442987321036628407297737224317920825509083658278005199347827335715618417441262425887410152204790944307205600180130602693876626302842472147752377668308577502289693484759794375790785141116536859090673912885074069636280530420465390484530043930586038510539949711358208576498158731766994770047579479746741638454732448897936565385959133042414379167369814932710540441822829643311777096991994797843418299280821622478122377412252020275732098588263759979579827842859056273796549059423586840282432864141712260062300685184117325930978951975332842065455325443447245628047323866997505623836809165032038512155477536081855117194013507117091260594233873717268528484208653618541058750677704689295357229567082132354832017721934167304014360569344326853827598310633619241372908833712637205722691024258854039813592663884071467809026960508112907433203258352447431229088189985518480672452821996147360265408539657249528095538926217395303141212924553057551574317028855269443289621419908943890885108020728549927482306700258987418436501947602712320250676807312720608264007456580798211638435875902609942835241055259668447230084853113871289922004192746661798623136443832058211658763239978582537851365430434866097797679735313115997802372491941913093496640401566361440266436330504656939178159235449567655047642940209098391044273766519999014486440174473775097727583963518039152990149186208277812834591383434295926730898856862891748358938986361996583816514271713992278204733124572995565017913134514775519490800931148150762876622582975292216563701734638797126829452560554346655420024005785950261266726840539634765747662408334348215359609346308793332293335262912376269506047710606331504532775964175459395590017845399480823475263701705039922442669088805848011221154043199424165235469443289650323986780459374473127604610409029772103623727827705468218464080722456669539128480582086894545354535684477283395734524956970992532220200988054862809404090463281623249411636475437472162924052284006415455964573211444714382424537205872702890571804888492871380575185519843059635695090909286503812599770263662190214787290184808081320743169569592670172222821014031198121114978356442951799159611190958381697642036877573791071851791627588691281939797692731704245854574414356742005542953867169367674847371093713246754433560953848423194465826166753656392015709034761583303376893246218264739486589443146137057933445133512744825352758996084079205967511709517261394076984024595512595766659683406078227485952307638347119950094395185212838624323375641529351024852633526700592739253685440224826844297183244182262586131540274931174278594216581836948356494558294065468188784249699414536369929759599033298602521963308791464901378953036291880931890222486847551823140318822854254544464631046555853347676794746688292171848096440256189315064081574432562970285170599663590960740005794921742772033994146009346739605634703578536701495987446841289917179553771426758175509163625687034644373679331202428942777800075524021017745239845927112604466645671569402131237146802750627639111787764317399819152585903509279754018933357275790175370851416172310107312152489004044043804780927302589076090673755597102574277345320229381554325394793708839222060444528462141798008687217830649865224984816853524424739721447351744179901198268290754931709742703692138238995331451644482912526753496533759205556303473976914703314648598145223729785995739494408427115546929516137511844567618566633069145267211254411775568236147713857321477254581969654956696660017427302283089267729433073620151841046925531769976657143685343892524861587602602841545516771223693967662796740382368326325083166454594485809292723097949556011147898013128802092400395257546397047392826841470881473797958276638989699491439851478349029732724844260633453557863586270182327126023187589043406083818808557783642331608493927075183910587894509372048639138786038087168241187067587478423224486511982770974928155881439030900315956649176708091725644221705336175374330121332557370514395957842976550788416929549881046063558003956068158091261993664693682310399958139808099253979929401167758434584947496154272559490740009131580146815327925739591291180819943411164016872238228661617267123142038340272045316703358080020808263670112315698688619287679099696934630796700813311734088730485250016021770089890290548438687319482055021806273237001650648972317988472321110454389434177981697669267528758474787167617482622939616781670395840721702769121653400029946741753138775158776241444364609051127468521495086974512669860518199765897492907945701270582633794858958422427629310525888113543096874085514789233132183706811493701561685054703915340192805213670774262159340914751678447542610994301834992444106272408419000067292715046858921136094682623438506717072901452017468348327239991008667597753177661149628450036486437717753458968254367906320904228123241677282697925887985275002031293265917311694471280747358476542700421598809424000234843995248031926279132414357020137200892686454457461907254048499314025488892316344222142362886790562535471645616790389978957283430344129016646740733741622884104217700983597713720889866764624296074824968582534283440137553277031083735221778823016316311921147129277983220127466521555846199764984774121273424267993767973109346553615047556866054285249357827294224737813914698636802344217948967068480166851666927398673523868878374633172312092032589807544673532276866361344747677750769195606465636908123432765043648870775883645767599174490765779830358144063992615761401366548738217273158387640754318583911126302230964135861882205437244195611136796250325215890241620414871600372382888399867913979517490799497945866341920671742315070599400165621028727797077085274803046503873945013702613512608572040121379428274374098351721909561927949720781245668727508529420522298641732857527448887825516707553042180764357636318681943334265119354055561785522016084440288594662359181297778592666037905043919057858058382766667147595510771604869843081155356006296449592332916687781469279542442175367866893936284216171978632664847297295996985116875671988032076670822738392127834599376788577210187635298119507165856675957012503824065014880424760902062344421522985688448183357169002816912203117316226222636667719514543669374029941798766144572433309828090050449211421757500161633927460230597361041598725997444221489217293357392534828759406129027882212853979204091786337383042959528538490901364224642021548312382963440977074376598664736883142548208891197937896158179593940076274200485488027966893108100637393276098372296553593333276928861640142979019638940440227649728028655317717830838027131082664111947763732493513732982458570537477028651501778189430160414315882803432140118074039260405170384914849660432749786793268337264370117525545918056077311454532706487254985921968574346672396863230799362719455158382962674927359199819829469854764244316278759444621100748694454335143645018443822536478205779689049494599331541841720772908760546248862626540483281080404094646741013502404897604584933839901450152011071739859635022781122593421604694492294154101485095932239291870146973863829761724191397068982000817754226502286910039429006815241237477472579814505112253460502616817890526658703887432265433336888629423881530876034947445987314219749353697160725539707058813498034198464027876486296585781536412062401048408823307231383560610569075637415834028452221961928974665076143430233497055547049747402762601614019202998758823371803370773489689991269254303261633557477308811327177558361202984113832968621326056600179481350388855404201618750779321236960681337527879112284039587531715094966643438106504742488177523240240814871939315012223312456969544475657498697716431465059672965867197672137592408009388079351951243898198554062379281014728736010897232760858962418490969690054024138559218161623670431882968352193707801789066503346852662395892362492629624126807314314618213960508981295567150469594840914955094861032538719954054202490180904321963437269016431453041050604717711983085902467660942765098477766477606277180332162574903668022961089931924856519623069419809239269649975492203294883644694023798922312789715700839358108755413877933184519652868967975922410206363636104876972655956273302532788118695019063185221706170641348677781132142304799642682765240310112037388456011282574708936059183925229500372909674029362781643508516397711164026151597857582355025789836490027586306228317905181750504234229618234275844923280550901066246569379352157042783277094672665612981650777869425909482743630438329264410914285705468560963430055789528241390710094991247814360964001099283512423120723014498572727989546186666116894778085822091714362898834010683445105813300219685122286972285265331229079915216266431593265973320297167352402838619533771949294800143250887465820170639867477820674945710351212938656095491065507045547196943676339275426935820302936451193686266048544422665817496061439213168594575657034272975608687469330544719528053161326283554809913069125917787916152716466854417086942640506371847300475064075598407191849145387995670730908131947771499939206928925883679814651484969057951305746871381539617464969948055012211495284624137841037790449608277387484630265142204553870604111655244221242551891861423513794998177732029040565768861012515734138639028090772286200907778535028876583733654888686673904885226851214994060880638789175605583522250054623742661653572795614052269318066167620125665212374449944945225733673230669293663468769976417673095531518728771246270348355300751680708679629054228978120026240663866540792043874452504450665230822975605613572827952869423767842906404350025161710526043223758352270827140938662440016357981032211276214820365169478971133872575992211963383776131656049341362023900937459258644812592907088044280721860827799629477085471440040056025087179347387530802557661292574084135638445446908498760396317532186183637922622568368355797885381650427319262969266146136273441208294664599362303982699459803867260076873515114085660246890882371755008897421851479350784947337118340110956444816878372507073936712697657961225361512996195937970091476493030802771244333757502829046311357524807358469692038052757992696170253902229917254056650010990602477284398755061018299398384904340857259451752170970735701445891390545053109146798912218273157399914805693679288919843398379999146910070896691613925323326948610711372253157730711166471124723428279326611930527838426738346502527937054117558895946841229639772676316372542075155269781786124752258792649839484229808567244588195151235955805276002333348575968150880643908917260247366951149500865951751823187263123683753755953822724762779331370888114251170917834493257602511456024323320506529462752146602355201087517079162506200093117509944662290842771842288967520240354239774892204443334174416719906320429122210168941118909632428544466801459614028571272031261073718141436535849755025126543866637721386814152871495772711774261470251514282477616605010479200569211583736812106182529388298610531055272535468902222840833515613395185684005517110479979072616116092206781835323495784647080703349921787532889666071752447572992454055490789585804960223643164153722529469802991631357696996841539423321572734528865989164019835678336549788321671264832164084895597139796683910316244148262737240974040757885213206179332275513540204938881416744871153841111264872853651223150648866213114978997396917538743309764193286024877610717544079284081808255576950888866003268335030722578317257649866289384408609702292761860120052995496965601551348400091830705984332840475674419780509769379155763343071643039841237598030732335961858218416337896772483999749737855481281765886897521978504999492414928739476509576326403788996775083541079664752886917576343697032373641361451587497061852548571884399396870317811620485509700971443084281579960130538748355703897403589532356787476436312234196911162049996230474918800586227739074566120885063365800164409766702441788761324391261541481432905588247568245502869936975812629250178206096750690923154571023494957714568661593226178179823196890715470951155476394271705116788345831878866650289861170712434148744986501084969558840730495612483893256129552287825841045812074179421204017799716153661780814518075829483149006895562451565550364172285647675377960429671977567985422177972043429704023778666831103894277530028187911204839266280975208873756739559294048693131291008842075546929013395466874026693186630998835544866931319742998292213207416050977893111656064118480957617851343800238415281910428429662918491815888738927144345827710528690636993110386083578901922842633442658706763369496338844588233804310311994736287612703730265928262477559590608551541217089425821661777818307009377438537604411235977187197379972438946828427230087176740568107694766352042204372291133917503570513493453925217216713783991514054932636445073812158303546030470027172974054228091673530199212693349509963829046955426101332566338011553555187979741280001599549784614139745051039767710172711779465184892968796205290080451905707430582272297773109249700179144956702201101320601868018796741101422389991361042809449806956637739462952032091653343439959393468175690632325961977221778915584069170788467058289240504728842377985454975611576587464429031262433050121610298687825055402557649729338605260825216609283787616314525929229344552611887911187168987106499209677631902407320085364046000300368866273051885978534461368543224663272649177219391524336936698812541291542776654182586137171984704625228918231676676979069011764172564055167434921750349828003208435005884908327019195277553894323786100986134934219940566199123109421855009808555839115691350975440812026951907409045926223569341634319473285753126637535132552492228108337547601401244522700336244166226181664510898773276009807867477526641008257937267249717592601113850634247947870143960597360095302970908212093145508900466343909947053046302259786137059815663640017364776663209450228113150905244465705939164633998315469160725700759782185000957757813826269704142069457749735911155957455382598893134746999566198930437618551223491273121821070220454722556932118850522694802854653141515757615884844505594076742461522246478108958717168566263859860300441391714368341070037685335350910667175099897905558807144623016738833997137313157519713420945263679510253745174699527999818790697791924946575700341857025343845217346189020044578861728006877770131779060117359785768399495086683367202378593151945439046192748435158722474347934710991299645901052642977383478750767696319759230579102021513054596590419796336213264257939150856316783031883893427419198941274003699957381325310570205430866280884341262073246104528091352090184141175832916605582074663464078727584014054302742302984995019517351709388832025545235995227356860903095806926769509418057980687395686276735112906260759804533052557086580676780991205532452181472761909282173557340943697981273820463769434841052550663470248101972233345183505820835614306175021320935735979512758002775763906254461550052588777950444182210375449841653057284968920110465892474573634761502744970178350787574985335273227385708456599383494834324122485022100311520023905458944633767074235174822400808211104057419979741449994618764714132653569993725317138522298047695497798786994801795385453651597644589601017686967540784273945022451263214517184771162480859940987125482301858191176849023330752360014641061207016377885360529569637897392645231948297771659553747853880352446421301130068478879564248278223626818479701169748334720870845618406350618067366940216759758345659961752369069536718461496533096650235981865959376344367899488278154957878426058458377844470803984398281008822298405873611849978958078476477724135129480541187543341434069112394625027265025282247893013721767187322631612171915375835552700628623532435333106491012371001510961814732866396455389352787947587731690333347136405581058954865127102393231665851543733967344470475837567820396984493594014553072154016635484229349511645548446133371425960051694997972887664260355889871393115104790471687675297189189231118584582845823987245032746549164818086797317972865150429946144261997909600239735475859511141240302362962152808277577615227014429150167509078351496913915256695414867049844540595045867815693416353885371767344966611078735622041831406349182776318628388146070077401262432014236717464516565482029113637132198764358676773189321486586502296875553088420201673896981955453500212157205381427184634335354919034660373833170275095752486927130167856565586392285877204684769201221643383805190602952151388410735768405303914446812474574422221318108673716877759194483472002094764213671668777328992264549524593056175820211848710492461889693860738207670943750828061093614671933466327693823413833408816038077386479185557658913353487773228795315182031609742025308291050397851038415568756170736890505847415947438837908524111787782398868236366713927225206119804308847502817867664093408670818170083420005150567457442051212112967664075030295742711995317451212193991562649017535765254706286991106519275554519066421709072045504792535277148467659849147475297288817476785737772360380476922247628199625877876315633263648755825128807576580000755518696751510861190092308483689050131888979872026431257947057150233493276394450615341384489363480667625367460222448422414878283451564719435120213975780883783423716184395925923930269086255637703206382394947480214982075067521687660873820965905365282871627061996314576452902996041585789051693221524096968454797196092791231857350900841165437690770899025922740596230228394845820720469605851850664881474413496678547328019288324400357799862908972081895894142733632953136644757517625543731209551695915475809336728431085320057142499172595139581868347414451581690899128295343654410239403547078421561447964561220332264521656782611005395349644547206219087566397022818559822851084974082165893132976963962232923062349014179458989092837429470774932508290052908865059103297393029361627790725739752183248531741295186859682746743649339399097258255729029803948862344043750320787638950325038960256096811749844410851750095777024476199272057419464923288963028864022415623144005480168181615860964232629321880842510731736903692972116519759000184966085521345160001260829522939842065952993602705358579822933488650874676907341631854348330837759784845695639605255312092337909132839611667191420490890000797105449345249850750323153924975541875441860774051053689440119381158665118690827800740430860938569590162500990639505929821773398261233482559429841140220821425380677123535132828784311220020435600089053594912496673084034828830897896762081649955577873141564802901773873649201673326559102766828343559983129876525046776463174456078848806999619326336505766938478117141051506713763819195817777927482380286128641343977705850145724203921518020017797082586503781107766257767414775124226276974862225170354753615471472690767445585688448005177055270810336348941405817359354443009145938462509038951373881015013559555009573577934093096743489412117370237285964501741589496050305364921983360162581119824113770603084421898505466193950264339083129662356307610397799499398996141305043656506089603491865818761109389226948557692299119873195720652745197399581541877385908977727158015997798291411805300961396405162130883262457268766812199229977278384808059168740063791244919995626858083720227132703403585988502964673199162990694474363935877109244336167798389721669602251674789013944928439574450089946819981669502867906565150530692193735823247485696500993571419718891780942612274648878069170381683540228508564260049947364822063456159126856944330071198194394644730223723935933017884228502720960314652981275397533733487472206778440394963165152379064624497632493688001655246369854503145398096364183748913186432625361372722504443258621624823801942953013158496766484365031432160770396063754678521805099679016573027813980673061191092650470431262252644070522376956017064787061604401613628327023030004451058860273720128771916289977662238099580582702014337267784496282539747941205003375142840315576252491196708428858511910909255763130815256292290488015790048945236122212018966428126197775725579429370919951376053033446414924179609667919714040010655299875005089839976508840427264857993324186320085375248021306454495621866849578997901180242929660794457814368597558201025411657492296023923619634508125441727268806168691279760672947074331809841878481168353809780504719603444608824274597252931612444274018335003262597183936951669973586447781491298266976281529292719341194740470977603567536686807160762222501416498113540940713439775029866156921007601147873877335011306489398078998673873772843508234330959267918553742436052970801911243908170823034707618954924031706587436208460164706707433589494680258133324136637331109123610318380862741555439166591063136466499479337756526914092015814079458873811922014186659936386747513154782866407362009089897043098530266180913045504784619134187283096012307162259593370519989912157600745173473143665725178974671508205568464682710420567339495366037616839338336074140136428794124605106892828493721602603724665006655680710343348355860374174486558213793515632326827010489473410610361232686826516999758007712313466482357719429588432089847744965585149888289728138377718533956607059025441673586105878270082711204902677094960006210428345763009713092640437658680084829055590061945302676623052297492573169480740239013106815844564113726094843723808493256188699643748286649800154602941795720990681637905420540341244062080405590399631525078425719315798363031440723222268040546580873663967126745254325356337575910123037582410448897717262744048356070561170822845384340572185297260012454552891477161008987281863313869530157045440224307292112741900122339772555166445535590662950900477166005240951543853589738196755789465581686798331105060639788795604317803583184417111501668043355860666036444670732490854958447991560263748112632312740019830164390950589690357139203207748431111702680371691660981872768908079566082128935988900007388294926034078351977108160680031800905806302380048010556746847191733467708208712872205736919425226107517095167251678461435244636844495772883001058793006511867311297735144220501018230457244931874611550586482532905407585510058719823083233996835429787866325471638769685476913732306931447014605770092634606481183524734431624533636019587741832035058022692089337561792862273573603526410400781435570044836833402453102171908980782792134749090522552936147868810153611854641097928068637710854345843024762152436646822431903522968905431930591606422887718153105452237088509462260221726433561690417319293091506343423039937995446701624396654868327673256413773692577627190066173944443185624631982145855974594907435700033587005390688763421182870222214132075300266078364148632766690463150024132419844469611411005541202555743426601018917790028356652582660450837020706564568282712339805687850415729196847797852951391489304490441940513662998508385325695846849139233258221501723945117338391684508137481382773456398705298170314172360211069503972738513662161096726158954074370319025949227440078204538873071885767662022190203016304356544871564750601976984742507894832969981808092589762083498706740915386678471100686330459332380866324865493269918093730006342479670145739673528687235861490822747751560031049874374412835648600426479758356088634337012203441605283926288858616402368786294715820716270079603773220739248581863281011658426463795115022189752459562209286018344388241561175801827699800867735373806309948219331478414449468769557956312154877934148526785956791658984983863315206629468375622330758988661546394316353442808002666438530140158659341885071760353682750816869021276536991090567641493163536389740751695293924595244735180945275527559177285424107092209035548871790009277131610050365506308839521873105992891714593845651308685704551826693680571904415719383687276333622764825280333790976101327704384517495939895697068172023458175865540939747709651493093345583310132660838998907209623684842241757491122091480588230981603311623980448983517462339878071015918129705218971870889839158398020181187736563169836557407600975097080149819683649126923413420060272544923320313240195660595692425802039047249780331255581464533436673366709123517186875644863109828916862360204217595953113283870113461947585737755166730966117220567777117452714628801563537106002043298739521438410931231950488236271730347567314830887319008648753476736356610889873468381123512139472097109450826746489166986642698198227168997660899136679722628211587044072329896556675527979735044272152595886033562021673739920255995681053927880128712681539437730741891591802925987411950392523416945144844977095809715083058954327628074970670781604543403180315185858993991785550911229794100732546358577436962227666898613914305422597050308685378594207794803009349155320873940595262292004312784955402451835642912059376877331710918012971692047532664738219333641604955966837789642139337775866159624619673320002048120260271558394530661349451551140104359242928319794269532837306970999657708168461786505882265080676878199998846533452976191999995838035062995333041829604673458979859182534884149929925139028707033176541298079568447864104985997981559764014441450210236431515919746397584481098834583384399373278133412815410060690568236506299204689619118160055395097987813416448871330467265423308955907120997122309528135769539715337141515653255639907600725791086458117833393950702410570833399530539629410520624390909423556393466160786202494165877543039500647179492093665609606050225822291229794411284274542497158915564444584188860752780805436097315836622671361138650276251916965932434665729338297134287407819739863427985118238913788622120740827127525552676370353272800213579656170094633106252439289969677409608686937187045790413874947051841317659400512490101713960926863908071834851384248002414012035126675854809794348101880017854291429159980227270939661578303018465809661258123786117342339958901715639907848635104933179040048120246397343544499494301240712273574067951038082434965848149358625075839489755879451675407098233724948563024424492847641769310528565449785795802704300476460442659336088086483927202015615467878432147576912091551446431747756945637800986708440983834235251145321421153203058772565451875184073792276856117437831459934865665099422524051615470962601334281295850956868128212981538932470644958731853954918544822950256701843931788753467715091857079739824279162793084512809922631559058578428971746761923120690555938043257449682902797483185030490922133855683392215103330819059931723161496161214284765788661900926194011396428437754692729750372504483761008336761314902980217038885720044334686764432581359458417139963235702996727067867847311582699736885413299399813921941552405145035042689731696173259479424598238833800697701364676101440186907747460529937113419166066358274163823209395138047176505920248055826290270915206755987605714395807560815464697516339490596449757780084451262179288005896435521547757988491159961571331207291225987543487900244846347216336587080442340795329786940949329200742569832998172311024338355327800062503653797849814877861265612550903949419286748013371278098242988446316011922052724365733696880948756672378367232883150211127776720451760100943099779630198569637022268676055965383131931567600825262190477929458856901204201604323275924200652516892087699583791850348555255792971542417058721899794552651426125202010650312980745076503462803439922368001431738540039048540796742056292675081542940344326022168742766449053504803512834733314441944856412090552469539273303823856125416790417795051774150395019547234906859036313979428483056866081520940724064341137015394041452280023506470916253098637531635524359015856096431491499441346988095391128164359337939845343366106680612259156595201955758229020654572216172052464935564439670012959490148382144324458857961789548314733665318953430200941718660482814797802509781357005898175263790088247099288789041042735220569094066774319289335717206972625865147366037157655667737037340699244472177574361947195053450236953200363327792220259633005721089027627894914539786992728047311763760115885290054819392286792522394260780167575486922062198221372150067330407112123571074080732815963406103954177185339781465649770904283267251709593261399619223306266220271576538199505216587835743966985653726493872178709690096921352524273953833624203044131300763474733849836425992096661623893035001124682626599934392258371181009279003735719853358557444560443869116220027975384957445559556996766404272727136252355218670207055485483438508231044131048977444883663766809986456697695951361950789718184668400736497920867174247348779538355431673726635685346358806358188676985701185843589766286359486179446494466787587310884371176799213792550211055987298039104890544893406009957779455674550873899341321819615312524337546200790886058554577878177493729779446500806833364116673281946348406935150903856027495711477440613753210771033702128096696470398741046065616180600290131758069108848024599317398843540440182783186151301961834083600055392835575799419814770342014162818387892189939113212770982728069213380794450015654673007933222057408999251844045774276580227753983456423351326913977187055269441665886924266243564414561874673460490890289553431268940721129234077159065767681795759549812967323080043050171170488939205718458974185644317824595833902700502171496366280131494729353224323710635021886627197305215222922747737003853532282984616178998737734824093528108566718358796502466279862007208567930494842170232586636957357554915983643685049850542353292088585541626778548753509949410106324713581894533944615744040545806221974419749017878324897405435269696085592136699586073666121024761885615542040768915527632697828126581599001783216583070327480326330453349783869908928734776937468515218413499713553837200706476442359563020183077369600308913149887073847987946429141022560462793917508337274575793098473789870914532984146306451107593191146793656053958131225191488407333662937132193003707960114982999467066164027158337519881851079465250128366459424291412249187778383560072017915752434792461908849630150454081824816879747871213876930300690164841523195351341682487654977239101256330522000811769976295006457988251712880982292750343403631129025843955162665479497895355016769863194942862598603884239423543851986082711825781616156651691427328411941492240278715364640788582223514387916046631708688532624532785802885346413104986253610647907437979927674864128775125062136911455091440865903496883254443369249089986374265438110026887427101248525307576048990153435913721662086901635790764859792521313295115330058947235876102366538760295007086708493464278274346798464072640937059895230661890341709480064108085852861351988198821827135305916741363180356534987448433385272558971439306799411553977450041458735595915636114806835279342187842581408862383691207621680166594134697626494930089917276298691196592998758160308128773885980234919677736176663255767520719172357618834693851312132508962858375673554245749210532143942477927481357942810223369306402522118466676334136690779384224738720496726899442187664145858920022680549844847110541275806566099125786606382599473105291740875312923702011112795659489867726133080281954577795129922504135491307618954676992702209228917254056431139197545308104971253312139796151409935055506854910928314169697361749096502949509097810863285512694499551005309204141946965455437995772802375778962354611985398422272296216992652003364726043735376267702932267727318108211186458078107932704618768011200114012081077005342956691544581125857641699875325357326922565015307761528592581507846257150999687969901345282375956869344154318081799515285732335898577445696615507356466924723477127377173043361263374405841640416350018280351981725882753639264366848667147492005302035000968764079028158429144504975798454585896125637411047397176741021197534932912358253976369496622843059052879063495400001380772052898137331118547742796302231519059665385809112635211147374425258724007162729313648406119204062819222520122091006048582335685235832361087929548779523481780613189994937319104711370772557153134590392819592461700550707588591889157048511520149883291603169487246076752682181629065901120976633662673077358731955845884450977760388376869215556540235281679389616687163556905888726937062004716265469063378522982104807612027380992960936385293804607307235607989185432905608263107196823077692673921765125325199622088027712860851111875168581492479391550179494120346901769330607698014312027794106452930023926882344427389402890537677548887040429419203032417882520697748131041941397714918282601798026010255024430091222119456095033709482086502442109683934468955232344924340981595812961578896201780844526961610116876663373661605110823676397144651227994087160164774965745085003009176894497339510678246482454475322133683784760458572140320860878383467148861534085196499986599096361480900187406492810818270165437857807755516554354172932643721023024505059811855619975405245955725508408244816639504083163097444716587923428984552589896075021346378315291999439316026194568853260143173451865658344757816617316892449777937641192927372771313973930348902884957329611423949028289742522548881519775151779189188584813540491223174955271555112787128315247425787629314815286275118144512398379606898935489255701595671006524422653283011789542604984867997832414458756798567895501818571527363937826080578151106733311515187231500475365452356153231880586983190387537980398463604483768355162852602126752525293399521986551152228283923869472633671223767652713889348379773384945899263200962768599917381745355336304405533296532994462157167240784596696507379462623172057564072123169271799051311407067208694819523361410756101693090211690468401446185438071926362420736820634979737918455562989625647786148415656963789900624134058057250551633475336458505930846234685978592611065338401182251650694761639302309072888287598507595059467004534766515498968632104019541782800671268867670465593010842377988550973445674649519118355701482106025079215742128850195280074875572751594457413540521218223270311287299133284647918186690655730017861234767849105447268252279626380686336169406914467511166392015615830061452091897568781023994950159244208822012205671463759097702284632045050771101830156386844824498601928332809657306782055396575429170347006622423666640160570016243546907595034630871594398120856467215199543970122121027473690123519585929496485135418135413686480868643076363917053768480150075737469102924368495740459761355248702636089572781096878811315380966714763693687184833849661427011868198854687269055875612381396304058053450039787134884942502198534950605978716778293520293058323831273500057556724242685121881258152963614335312162881471935360180032336921791375580886469084366563829537589084667459712570426664033545395024651094370124852880265164297926709117563076449561442339262095164595626784990441996470758100385568695628906557394505971836367492925357746977670096831629738654194550079120672043869785706650452886855410650246210120989791432007947287198855367021948453646080351488664275546274343914884593915963830391249288165563993816041783443144601944412505487677790531628537211042458992037713186638105244204496180355512565932374447094737005806281827689483512982455739867469705028637325910984591120840670354166759909970254327279418505507658615616670055694143110518613796289307313030404533955923607555920749757517972134548123669797550897832085403179028977567454772736803555231632148275730552131461571605112117125378718513858222017596546835642483147520424209752721897789374028470757972086385733156572615892865331054868049297667896237430082688440858287706486207657320074875515351321776259898915740361176743077577673377343194621615821189258443638423136225750140958964343799764881707349561331860948882812998369481605445628488293994663550048483349346494398217628878050899881249408576224267922890697533128188593956411251730636101465699782156730465918353521123604474171826979034957700272406472811541365906689196655756115728957646368874787589890475608933406476499429805001078658041120079670980964012922151982195858417255608246624474654343425464343026896324259804322239059330124710376869269728954835568766909431373848921544507374057753072365016820521027592965988588891785294976509192708418291330235850970546256283320595056552692845781113989164643479093628374923290605784440827804826507349194670013437918544374067187861385996401374831579321143157126036106269784060624704365342394940683591467151857660753788693494294645373895479841649989441268362845440657910513025592217536795650342007338250149799229253408216585973405834318046703827417112263160510456776242406325401891488915277740792123495180540996246567913463675468707636557081179129848145174398435940344860734466602538225673913362092026649488850432646573162671438905426534613413698363861705079894544813318633482210501594256064962414720722861508567335769205561740834237507012055571345796570392255767436460767215713744966785956708314263215195503192564017266440753187621663788493155687758798369923866186426368318468406826294357638845174474735028490749778698687497053569943493944124179317907077020928308547399940244121676314521193645873396441900319786417173862795439917048967616204490760228824420929066895300227528311352227695257617284006270128780456622897993528221714053546773650094910775219356794625621786811659090858929117351018692510503853054847796364086744002911741457065449240235396410007315345923616963158543957538839507196151513517187984742376474564545081523702983437215949979113894544068898496308405861972208568990494677086235142902886173840395836846133593859883821182603149183149738236146976896578627722587382542849284150666897457845433146390510068621057460318289762792734028384019153115665257530288915436497546928216140066250704266357153491086681287237926234007400091643326112573044825270909099912877673898473054410265844557385905715000820733936540823565805713832957332824008410060584035149247851910311039069318332722420530923389514251142034640286230730422031527282676593577391532148160576701710695901342363136501780354211746389291545314517964992039536280608386141897779010657627120206449318853780095182326648537259379167902722976961593972185397482352216557587767524624376100797239736105890438854176642039371510126028669711869284347942639216123224564871306738785036900327030385490610182920000923526178380045027868462641792559460132604583336637974411540939471150675919886567475358319520454517000083565825475459197287685650391360088286265479547205153901944283180939034181296618099587700149251941889081862258160489958915637835793594295052067088829822323157231483979243163803434137035783184841317855476888807540414746994282000133740281636605102070050129121815029200298332340852089303210134739000196297046947632046009833087514597350683364897968551041772545523831974880607169018301967805434313302137740275114488086252565948435558393054485827391542820621295775569667060449651663999863752016530410659401402044219246450471534720557784623662406994220331088398428912378708248327950838808852509471301836350845976179718619601210448506643639117628108095156085024610190088866339924488912979909587051137140339406269586330480427446701185623584955891073185851171811677140519857427715528040262938934095348834321837678672743366958340490598114990332429723928430483687435716938698698739526284802584565951361800802172555411570043046900798376664775656578522703714997652543151081858662339900698684950807206851867060027953924639971227923985412511314763231989010200081382979437812561349293805581944161053047914279443677110993576067359876152167163237080092790477940874136176660771482542698289067453111323973205177957809644482642704751598254468329533920773128239347412170195250495928613692516030557411105032838932241707574687062566973925833656357347654618499213670768886258968633352754289865087540520452076649958073430903593694461584017405147894643331343562252469653999062015190493493600043874414023292344226320017622213504385987661572994471081518390500257130483088188994959545373361191788362159354819389373310146591913052300064106260446656244304782242497817980280138373782402518237880095045841358728419586752215775566770449628308755689298138769069491692336368019510787184278398240608147262791527251546227062284941267584434509657275144595232008054582853109587850595314788597175636969250935512867948033701246165879383500617734934437983778266920993536839351811969082220740901750917916926819354956399909153064059622389191077244337866122372804539166469644037011694183193454396250184884768273389874219387335933462939219469516537300032968700286726721046451146589856533812911646584917885298676419454770228562171548931101338811050411113748142731254931717192610229356694624603769612030050555310235041342033332024820072188404287197205787934308925246916915883348352387226973620502737722280943294307760881743551166300255607726068280396256443580152100835807091360337578267102934203870109299850325338886931723842877079905063594431608708935130554460323244172517488296300071178448634756079203914988415132811054383922911070635409161383640626267043725069805458158828719895183785600069249010959244388772314225098559786879756840511844153159946002724530742722922927618553708463956857412698355103433475493583650673347205449574870643706069247205452242367039081280160142932401969925703311314759208656359618994390822985077740857511114961347648624245046143358397420957963098048706052743248128246085594596019014477311514283456796094119773473709572836753205700439010359406027661545321186359638168810552895432482422492975771841443740344639933372236394816584901810422467801445660133380110456126327509421159107599908611246973274300772255155351763112078275283803756417137910613113297301708187424859620193817267660024035839081197554757545980541850002701178200051320421088318072621473023241201032409334482129252461863899085008894962236907830551929344727863803549574114801367108292502068439022203563752493813088714936390801213300528624234794760185512458205205965274275652001193252738449594597701757300488363543149804459282400347718846839816474296841457474972788488677843183840157391032567464929474347518768495838127460127616111447370501520558938865013480935058400340006707215820226677917362971146570589115920530793118847991128635853898006525048259068817101522267520153371472557836783449471503658091706941150745188521048551701130042998990035970494317742393631828127051353271387045881169108498246277955990645351586294355564958671578923722888339279960436471624697609645883041779095286116954419378635914457461250540858014288371036295984758152102035304540795864918605427179506949012819549652526080016478649345599570887490710522391118139103520052988895108180222870286404782405878699771578153548451862871216241619227873797092906176127629445964938893970083895098961707287220374779224608907091499661617960049397796755553894423053773121861611845092595221165018106581515228431722259498777458090942113848139548894382923951840809370406473399545510457439696688679366852599175721828259172433702814964232296023916473248697526726934340586600830157662725812642608943554143094842569396926798042368827254570593523806485524153475208438032202166533577445094290593783348504243397944109786510026922342384037788594890200380554702580530998104079479744788844009493731326075056357320004846028715351225934796104301569712763952265148129029423990865025476884604593808123901973290053192995619913361426348089079228759994124127017194776420798441032266971660366410471336876116824113689917229926163712591424491959146115794544404039011727654982396623268066649724983135934018936050070022278745875103927113273378907263233235416694973975785303288553364297074331367492204461810719262855930824864319186235478889423962729735854926003779338025955592083061107595003063278468825113097338345637224969883045313172574356255001871688526741951283226278202543579963761489207705073907880220625902234690657183053243183484724244556099485583411274715945408977112317206688932700044207765849162877481026156064366512628915771046965941465331566561976181356438451257502396744691291665327672305575562540390811224507917831713691566132485763192730397689744040003171799800780103300748975482016773102773771435407424433665954069483059500431797075521698780865272088227923184786637904143892823927442210709894509851574291607286936853585017440133761417924140167697609095983836564477427527078040840406568043694426056852296350413995469914070694208484826778989590678195785315132220266728949119901144281359174786922063470947763083399370412086965265624383434714738290766558116572862020028274166787903211742755987116037889376520777940066493079251546548220084607983269675981908972910763056466545014415178370616367019095583691523038664889542173537375472783388385481883740530604560557631184162542475604990645235699646732189712749718023715772229097955818826544248875564481500481585668135309846634281155093131790104760665675580185344475768497218725700142688642446591703037529016626355927128584921951362265092840073975294585670918897954898832901808711111603684999166660697738739506582045875995515162447299406165669418034999426103300780578124944028925435419120000198410573639076143071940587673400608983172812938663313187693389519260748518743368964422971026779635965287623920081973530076681386739700716114651034054263635732977068602314528406154187381146554121713314500850631022188430246138143834306610910544803006807096733636449937621284060435990282771449049318144463952812159649879296411569057327426730543674256807604042923314698612570039355545091696743867068283221859572128213082714253506380084437002331328117146950703867047214697876436883664195482235536537351858088619624131496756228384285512121412139008159992645179796176917140322033325246539007538330719195723837166454774749743547607633302552936438516093582476265586727166081233543470275749922724930230098637037907331148083014992342617365722700404221910994285674291701698000565429986823037537198325329842356168018700226232100713311076974923845224845824802471825287396765174584271714860389280354684251268058458371098066749369331675354316742841755380852044145175753375971586687309460349412264980291694934503033854472885282849662808992514771996936685746347338532476920844612049831464890622206988689508249092454655608783091133009861762520123742856934558915272029526304804933445469407446988565403832451293291134754965691012450954124843524389628938616903183985188388531784041981307766683274553196526632220166907883108199483955368558043828049255960840534051430374125860511923528227609705248228510070568900083312106875106655687183775723010443481446414092312301338670853266276592821287059890151737781586452578853369146002972542189418148131184722092499087953383576471288066694076939992814758964032933212114518871016907706872814289509144512849788455218624869530630392960567469641432038732716626607956023840466901565853346353807640389753193539303906070754976118401532725006659401392088610864126330907311638061385940841069108522575876934269640814591315365732128887178936805119919356110069306878397745374334742474027185524633534462283701874167943723064950657415493806797377742353602555136016488904458894616173215890939409366601340963281159618219965320796870353473976318017048803779244719916663592306947661488773603168910014471199442993712258031423130215940142852990358074509507610249558372432127456578446645860662606878498392195196799410634765637385576239973483183281647979536674341718118939658018810321920705147652516457902115713348410476359986243785396102245835469385590416877209217328583133276893920112754087908254436025358243390454487811360573148377194134681413853822633851632773993168181853880878291346928642521483476351054276870772205926321493634935290666203284004566575349160566235099685706954327758616113110497930806747983169009726308760457432275394804757714035581818917870050332929856296204791369000440105529746451995368891692765936993147604235449663532009701088396415833259983106768413204417351635080978296036368287512154997150746349969487179531834042772488727702311006884743012300074724548381445222842976854300619958111956837718634168862133669674247690414806529972933808506107276145883317541610251533299709120838030949899103348302737239541119354886278827889790429353784530743941167801860637045450958114091279914403970355919710132885914872238816341493947162781374397014464143962215670797530534080454818733600590100580909079991953279126219111032961948024844277773760079560878767252104080631382528176196072578499422416338321794691532532371601003481593961572779526823339517736834908294349244822548236601184478826281058992108166120667441332219794225461760168270382197473553594959725492623837460674785003021714597433037049657489430602382861495693966027167508744110672472232530418290268710774479689520479069526974225282968876255343763937546850938565826482122842685800739439973611007546850608156741589995517960248829154784309218074964502789356738793866869566623182956723189119550403759613182824784732489950233533100073774200343715583507379392006808214478850294879965258057961205716297528310063729836276849684378810893225013783412644789017384218749551777912282327624859042417495025310541692848152629923185211763178279412775481978076180862309902195243288179350091688590847451492709446139913806818687088994968665678257356913987924960114521726655070945409581014171602463804219573983252047752279752938863350982908159169789896195660862241736767335443712930111213594252486255582729703577810306193518205217070094806382103232556088084582616701139600087453154613014156871334952127375349310300150721048138149832483935367009789814443790009672402712851068946019862438418537953301836928177524237263068748529424600947182359645577998159019880433061703265367109252506128686546152939116577282690137686304392118210477474294517943584977636295586080975660105898813642944267052739100627393903458939821078544830674370697440695338294470799707824258519944394837553148445723050521215900284607750104964938772432674518709682511631047634888826335513541781187174336475630278189947572734671307453145662303806750676562638385240808480992242210632000028840803918205484090612024135843106148119293396580823625622304563045505686582964148666730889471888734833097469803784574935576990543789740097451316548543526304570344526630027786831917100568358639776054172754765519139384687566710424412554323752118686992682353353579645689752285785634221544093896734503439723045041555162456506402717674962462632346411846361259457523197928715153745556389123050726314458493355070104805354977719307469763005467019363972435563752419019327366367337527645350215006008474009872503449096087070578429383082939164384411187749287375692544398699775153126018803113096360923870589791389293342150745607707252945014102194440289030858671923507519228350180174067539207326710435534903534182273411654444280293204979045617995789413665373730743692073451643533099075541792361852358217818319415400892784596475686638309836417365811459089794887340354703688385049073339805658871201939091904482673518260016597637366529354045028842339900646068088046970670161566720563139282791208726045036446759588612816053405460946744120976989325252124513137799340952859829188566971599184088762813763402727065041733270780172826303369628181663316250888723357030380475811136203815987675614744481178288156787691573455380060845324028663727860474015665418031471810963565707534254846039205076982281068316073190701092291638786571427811327917587096768233074153225654756629377521556639287744514492370465963703492090432870954693052428318124955602301981797652172588333475316408656285293052367641254867295013080274657049727310366676845444950626250836258361747637495807426456657914326012205139368495066066172452471409214712546855716187799706361777504114540596439483683200190348768936730190563447173679673610027724891788445343990634343398569135884336715586654681173334187243822757897334436429380538830799320942730077241708862451581758345432160424634917230007035138763907804427390328948631208241168500056222753794189175411937758536744158560920484416159293669864981951227707075686050004854155786820302417340800188420664181526489278425597082335569488925730092565720214334433616727528885459055819630644242795260073153307311684163059540876450506583340382128424330304076647849903843523442229842093029562507988653779584900190653372846689670246614839100852287862345092147037154139909037319352111505654506997515599697535021056705633607840978458689472269238029120423872600960083030074810368601398984951990028809774379535377908900038972435223139265005767937437286449131734961775739212686847787809481656777839783765917617465835479929915928498457419212801704306799181384752469864671863560988790745806204684990966945750902975350142241679050939191422612967489447222811951268595327363667420041325216811463723522733191650074486920477134166618895672117665364867834049515160171814691940534402970449888233110119374269405091366845186965085118248082577519672525146876944691183756489760257080516634251650879884914898536878969683907693538725904733691001531064942528132120497852693657004436018499421922348781981135145188733261631603632690836869642906706133016051783631383913415332018331368949028597807480517474611963084952941963263578013261129178189936826270393858507259355046424808547182639807519025815487301418363689214761546168470117180247863174079454420978450076751080071245559344172615948907820109731919377679666651094026503281981427590494869821911665265717124161896469543152159361596300630270836755231289312479280705010596827593510347313209795808661567147606045606362155166265922322712003710492187217300497308237581099303384955063779383633892794927409728347251059909991858150368746163077071733208725008235269642579173380679402932384084458603728226438491825982878980947545423480620622376031527754643427037849263033372461454801182378662764357756799210657822306598709680739329770805361882032816860441205501347578532333702614714292332597979447587865129440030485918736960890644600469056030992543533773796966268776205996871563766791738519100580114425774488251394006277612976261461668576069728793121206227912794042128045027486871587854972771029717258217394581875417024574924635213287995498044651322544375952549080817421813923257265415064149183712987758908791019262825469154113438429246807026631196327960860909620634004269230320527807944534393907493388609354772657201977173737370032705880643078511600911293384793235573482747248725494939913794982922186134243581536810314017338438366019542572976667202021144842174160675732948519723612333542990478541230555168161903454958562688642886832809984659373383156750787043532422512390478517319975335716323409463040046293880259990070470036485444086603415923332225235264797770525566727525154501608479195078552540135315237444719136027636964016057987034543378268154101995993529124318317608688771327592047510890604053951644343929712633309601571353787696678177476156672387704739537090468096264121576914635560908743439501343081839556764913695096063126719622386782789955119152607171955308738502885931014278195968017103038868816312912966750956082667454357999032897777687017387253170678196527629704854269872642068528066064966827079311807425434907395298292254941077272357836166444207956584442268512530416648399500722849734149223393042086571340411334746600990536670025784346953378032052338263243484197042234766323486035387778152214709891740229356583111457731650783204310512775716657739836783180471855435239345097713985576547049484599903690420866861589489283638120121619061018010882257542761169829346146050831715792380005585337335622577628462437201531155547075365060468871613617246842779701803096194385508419234870369582747794310876129164988571840442238511744587334746752121696024402178797079787163438582069461925104462883770881367856202533409539513857629022811299337059240490007613588606719568603730305660492898219422047531152779173837973964636240282520072457422858675395080503469014689896579610360602234586119250419914007539404940242416532586138466477033060383974451202459562020505975834362781938447605093261469423857617400065875017961499902059924646047706678654218540170516037475616518958589139290379146202125854115090810823035015143602444272464169549298897246832763702468085269198957988242538524250446871448709764614620247559836907065218777620247225263538455626491165877881738680530098947822834825627673947299577449726354301574044394211108563187225602013698245118512264425119043105686216950783718382208411065526052868297792905332260215002470760022627953769838835227324878465141888327780431581506126685108063358684902339927108520642817886730743540549544246836920893101517671793403280834871624883684284313056667703938555270277312869192771502773587192196488266790940569377761179067299692053334158331251715045789617497008689411029107329263867336832201278690842297032620252488349944110113357524067396798780268183072391780710368907496703446987247376985524002896586819129793995277392290569122964160708536280755612502414041925971856092231434936431756361769088764123335861356868543245591327655785053833589278400592415243803959723455964275124850990341046685714302957400582378317180241882508091563576313759908667452786531973447536964019327934977443613982283332897722931646421560177175699918025162246608673094433439717245792870896387753956631312654506714624027925925122530321260368251086824086242371950674827637927198482520224719625599606512964370339064031651867754050501688084611601362323990631203960964039136336141716204788330816406065899701750649178590135388957957901152631265907075527607447571541001593236529983273983696509754226771219503616161830116211885081230978934516952956944656715641512145681310382909367189685206864756204645642649835693078152972478705634085240829769858794122479187475389242802831444451314364285373801999114579945068973458966758005460713979178745394801536760195577017268668345383472232544402186819177776255936367950910586676500216000722052139999634017892281726483308013992105373165625368747374213689614993423345453019652258647084540183443675420322652113389642967874715528443949463593435055406190271373960059183123888939293487077443043659889888880333786374852612584648610450885743194676140369443850024203823698021740913679186992520658941058787770971532251680726793072086057603554054340615570970688901696495049335261698091326258541133117846278623703446139102851057216799878290093841946388721802872439028626512948847788518559433551076950223851845293854792316935826752036427799596003773384140854696264745940417002450541437345556453322592828652083957624131748776825646250340366689747145695981916793341728023994940394423498823699454953639515507395847904326587281926474840224151527762770075145910076136569834324234765446279396503703842335713391088472515550474777808043724037888943896148823776585109627269985062341259818299525057832329776558998940557541053236883943724697864266337789498758817140250634441750668530006422610087404459712705578397233610628493923378893877852789249522067892444121403416468900035931621783619979332477664270999437172418522790883026394285408057096011564191342062359872740277058368254747583455913948789890510988836824160434794856541645320559435523947676162963368038608422782323713154261010089055792194867945220187119099485510852136961174708966929664098043662293980137516072040553265915475686239279647665187287175263019921205894272830778161951521308265014803351090398775227063698900547217845016994891146891170745285578678780690226893471281894062400228126993987462212926683854893577297684423913330015087508880814191809312974499298463844725416170664702802233843007176957950818491281574752754296478088598726911919565288735665628540410982142756559487009477498477385213664735513795008081579064788011830741642907244939534483768156854081603209400614030899476863553196463969789335177316751329773246107512887853046977856237805464056140425949687229092065718404630566693691565673035524453983255409462987396927803173614228210335575704363138824228000433418500935891172504194107087331093749834153542207511288708208525113251560656117498825441868950266141330933808444506816767150653860119527332022188912605092103956010097607989717231559205631057479332593349464303080167605716007922405154632110993589054330601330681005475205007233637110126901985396421723135844481238364342562768091617182106734617733380909880463568395142612122140140338068067104698895165592542870361420127380241951963564663839324204028780394168212619712230522668668608127640259306270969321777469552408816197844638087656322371834101190170268646204235205231109453449267535268121335992766822770507107216285756570282900848292522906114041787445648062351649738529672819450136339103741378040376182958790148440320822360250621673636990301599454147143119384759940818870487703914982169305030670921071525350113074292610907319509871373571693818746156822856138600062658044806740861104943435928122292712785719614155853676097888225095479546973092639230083131561459688107506371371965823869208065079071310493341393536882695935254624915548245990425688450212731205702591664753628883803275066687958238214428181601925199450337033229493893199493926174674683481039978900210946089056295030439184435756572787157319463940963710005424105694179421608435736042270266041578482969418158210736731769871407901421374286519527067490940552191229812088619405585002860814044369698917758127237542460794260818885977185973752980938389948260539688748925606808418257412412758103112185953048588854701104272924488599822870954980551358762115000838735383383566036172884553452974120189237251153058056328476296048358326982994537196647340145918933955517146789080184549119660622128769733789953934163373145497195181252062932654271189597478825216237760258129799571557466554330034137093275419599897978989013630169753217992113096298972597508820370861212233794333259201146364988911281802072293702951659307654588320665364734984064926189349499022416041569578114282742082065550268857793030420612302630371108686999339531248712094023275756841687485584387995017802925344183209659318314116217187176656472807402857698397471697678983026250090527743494975876545672905888443716125435174477772449483241213792184908608167922154119872005382268561230670641061267691970394717903787311555558055057289595721673834580646333739067727833871065890399987146053197464220799971898780563731244211090081233191123063136568012175190170409234904692008075207736974392126188003325500121755047131005326496455090672664962622733557791521078351813315635677264914800903454435101712135107366917774381601306429927140501602323420277677065450770166101188441279133771239362930900661497380193295492471867025061889167255628101466211940459633812021191049087573132590432742572885765708848020032063213739299743679397141741273330847433138083373312159980082546913278983616090591985499252571722516464575535369791469693027933222833135235865335146379416714336704740286170539013591562098815875404495549168475310488703588232031397821617890307697471930684656782710187448786801406729366339029543139005774828199846859922496940115210328954077490513202841007317055862122057019426558362761397623593702158773045554204106259874327963205363485778393277366029881714600081005741532428831829826542865388334019833238893685569212212600344563012349738648934548544903668696027290008618656770627531606405077650245379899378947399873300602797530662998663808969945970019488460860338417713860463429737783764529777806914163626057218356563712387425677472833159014340374071121008545834010782050711870020180122584714250606344728912303087974421362132430819009516395924320339990012056284993648008300385847075052959026655995058798626451433103733265736770955084614157665072077549182717738331790765985110210982585972708718443304738231679230709132497382591803178636258379228747214717198550708785257559550913521969544707012101159709940063272831600261259149850710506791032101881961826495088592263933954308297509485859151526271029629223683552707270795162020563825227521253453367925169426770531182264367384789760041349892952273695110926606241070501886030224571340139130346179227559801718279073184368034911218523509923898712811648272558358216306001966700730201864215945710285565692125732721790513579501614238338505503718152752290812348138062970135536623762142426670247968581576858819317496292834424649932729900770260557969916733406245708986967831732660296454561651094960934014427819099176135559375690807613394029033537015607476823827114886115672446672999270395182722728160185804002917559997939514409918180569630747069399847709812416082874957948018647312102216115966409945387234845518598305142920909710167174600482032736582120627650120554390238194509675372560655226375336965211249040885952559728663373177529743381907623421030415999116312206703526850261830622671852292795008309359964404153659744637224789440323355747631703216429226441192521944969118587086860644043869043601074003975688162167590341713316262058565275401342909545922307552263728058482778645955747755489665208153225234648218156510975720460303832549437061834815920134531821497874353592212744544623568377411560104387382631186117825127056902050009125961715131236322578122877029220788055643029939175265651609991846503859761566066281031135477987809272428834434142532139246470306765398315088768064149784223431671823764964053202983101456686722449873819343711937428796386194016229527418427269292442105042975154602282787813471777915952760011173446589957629146560140102493619182927431549723269968550282275366271581769923656456672333940094659625646397732829077803039950625835098680843960618844570272842451349258594105268400270645842492523105455913996255316041868970526625927546043508967517757563646084865579297247848814995329368273396920991247186757422634991075545864850442703314702503404662262028126275439957974392369102927303028892664609724718272060083385119803071636669597310456715611925076070306660288028047192903842661995684844183058755772821622822362055424301066389215587857808760917981757712713814509669755411303505965738208725691617045340643531437424649983195929878659537130451831410719617321100542265174139785866187098305907599002693533117644132787315208370737050239700966298925756153527891408194644179269498291025834489162110307068617105618556371101798817443015085192315946918597905284656825865097178490395362297830005915347153299356743577833353361007547979755833976679493231187420494121306002678013055915748386268767088170634782933078739861965247479783610266808649182174714791243506208428620486557289142735201943611099914320348894418460487220046296132097145062310929562242642484234066219520198901184111250054112981012086171726270818359210507965225949647001934525695906310366255312980432859021656844604662328046000110865458423748733417443169884466594986235328467806936857154108642553495521484425982080894288377369097429894979488844214281411489076315305742989921469032335279333772045416896057683545717722337563646409569769377530132463919783036845344678105194019818316769707268608078331147492986641647877729534170875078754889432469426830916233061116949824078217472534324287303679401950425980263436666618153445034553442424595068027072528092730251432275885587778015337019543142185113681610851462335981459009008110226858648011148722009855520410376953011960606705385644486558719471895146132785818420786493332290987153575544200645979635068172279489712343305487758494189810401545198086162766077358534837376738972562596484836744273481096834040885861094138628831247125797059796536320010591166878530639676569476877756753360081603800607121805266712295111543392085668166767108422390870983375843306916661575259471281019125276027900905249523460868525785502484544512712438137056429481443700415667379966637807421614669151102046220759835160391459818830728518593228772810659855158256130616545237231350245989811206970903251480827392060708487515509150356851425205570415926973033364683642455773946449706778087945774480032981068000793008965532253938786463531583569962731650540183648645295821794141381458891832955865117209124955176156154279303670667829082527989043069417441534496445740619023422715586989627077358312323030232535183660976454426529098262989446939506432134417267320166579319292193047734725033815858608719665030956676273791650448686242753566532263764672316177325814308634828217465259591079107971485058722779699145450913138348187147241078717791573584560801557722219473902623848228018095427146173332334162923454258938463515700871777840878928433741365883290710109739276733344419364822374819047553754453433896228668692394413943152473981954006341708587808290430988189197196376324686436057750392711806623060202755333334751937491196199394122220264704986588388582472740044015689609387025721679644160095443842328679708047635295834454235185543703091660749591099661990764506097011017412079302898918628057595085813674051971883218160196940176010883222124194981997465221382075165474144890976868705248658985210626284626420733323312459670170798661705933005627611567200518694194106787536547164669284157485968847398495943405530476551356141081319396706495264751676575084596840657686614006291162440532773233893250656150687421225885667077313734232979778108280150238808569783069706720569008073130335158913005687550270242968405611520270108738257812816317777373297394785320625374241757831126495335451408120847083659346347765870024708700128264316509276963947300628002922206174953633038926400757821527155381072005166920508307848697216240578430755358692857569306872136965414961803266331479909245249119919161542667473423352072038067899202027219356654858598420833738293000638613850667222905982442528449803014045629029502693205076295547912067074096114130939999787020637311057079398900668494750447445706798446263929508177224476231666112083172150763210804602919954796289663438211852649739290014606702144639803985713650206171869385710477422464154114932777333474748773340525571578340042968954008437072499561296193361107196706984431443791784664925390962862864618989383656324749448839120580241934377401181989102290485058106234323841195151309456207730996546053437406196055590520485380565307242088454777475721966094797337033236617561332446202078079464816656949842636748482590312651702101958597224408830896662588054062417154412436160598628443166050373820016627359608048592119261730856132831308036311747132354753211075221731854513502073511934792109050365059191925567654615031605498387536807824134671876842022842656436605994728062287880620775074387687773262258920429440401452559491513778058545220066241565393824164463161700072321465051695030277240741727223387274472094907999354963059244756872758484287758820449337742658809048578533994550461490329042530483055047469749881547636596336165215897484012038785128222340957022735118249479504279625915155878257362555666759034834843351877898530137299873395906537585009270360655834563119644359010000409930358040892641479771631572849683091130587336873284789237136815308660890179991568472084982114196961765521552579912997605141783349842264970886959475517958298250722153836012565130817008370874550697619059037538096682549117432885274722862288030569091257610089371127822331539632344572253729898206392803726740764129907554379063223253096538384642899123275401773552497809986081827320116427687242815804376425523155175825323845631701920530598956893557475456744666939731490860693671291087572764333208541664303935605299536232969658036291066175213858120415571012031819174105075182138393811812919153775681681534610803515288001379964539860540639061099027718746591763054345060808694834761690850984429241431671291680153531316907281143274263082007578237448198712704199097864431256139009761433906284981663384596189008002534257712658436005465790917053139522482214532907601644164028751929836983777748470469853939523782572915657592711613105048441050381578705868804362836240525470401091216080035904517424702909240103133097712188572533396621295294705447531748435762749594321393709726228582588255356758510401898312728268715130854961021521051927874248836748138482023848856031715573315424491680465112268838717802306983462036191036098283669106375363742605698598087322966441717684197880248906986721493704697009909476849203520015126034556045647221010010627938663226357940414807927401676433439007068763904739889689212664512446120348421980123383198512614352797178817299072781910093197045935823473980694717279160961897622678285833489371884904090869407548786914531810236964346004723877368473376815959715219198697988340363186611256328534079655718210019579303627848135064335114736813426484623230386050874859356567670573597955926039003554566300392647261378415717106066000654726529991811174606973273318951961804881792423747508635458599306040733637049322560049062292286190157554204688391907024502537143506647775475595160568522690281663744613334460282304734947297605452235021214235618318446248464215980184645182922684183881812975836730484071677235882004112515548695015136546603895692236829619569855211583245642694554183242157352758105410770764944959922319030803288277436274152702749698405506140483968769761966701082500523839986684248148241939649353929058080488802667381615036088929278711361172169670871532818133639903247664310537771077962904068321175907151304345814347728007572910327437934622288796155751496788907410009642057882995929205101222821580458982484153547924219468607197014740910964604131242485468933658554645738818497872264186913057947499627531609877303441954141896046183141634480888298412166408377910600034787077024731855843562589904937057456425318806708191548167004302864871019359763201714238879788232895095960219251758419593742652025692931013170062347055360200448443479227864594340657451774527451995667587382861689957183042106017763520891052431072665738022752326686978348092667462588219344292047370692270053146166458697347424840838590895626031853864826928456460742365198011494112675519196128425608636091118917443630360466442923645478669440875226629853982939269680433285959733003099231132346016758336178099498011217745533224840252010613672245431998924311052913548205334028564818707019993998017286066261769238115481854377413443046428083868659860472301033832180327332309627116265359743549324979610078678281746107191568033714525512243759080960112304989001378146818652255333124750194786224339804887068027353271250505360592493800398495243579608754291695880019297076717664873894623936788142759298753503860830807808432213139227610625399219172867915012200663202168078512579977488604772382137139439337936006330073018752850197192142040854869060429588760745952584644348870143550408139297576909966299168134782552319351752555897607105171458937438245183110654343106035667666136720664650711583368273928982757404915749621113266731679832135038431210621166285704092209177636225851083212504117334297128537531068950451033356658976434140115067851494887258482851633807853645546419142684189138000744249260528628068109962566196030675091156930160617252023071126965802668725977309299316386277356187991760365109414080829150628419287985255813780411248351895791733761383434256786427060525652535452528642739256357387384296766094476752368602948318470645947575102900547456704463223813173175160367594077518028981396148731360745375338506035138592811818222378779826262961341530569727167718619240561763202329229950770897930485886391295104963658718389999905640835511569393561974301951326105392840780474703405662468996907047381346037210376999477152901664223792423036079320103256084576485897901933609609322405043087230522507022761271877459299246752174006288112362170806584715959061904897420895622364702411151078467671051900957580892198694828345426291835879467897275397091202420549065294569448527146762810345647840914239296379600098386866047935151533341054832878926596729227449681678158792867660784255132811250063171772545248355069114545733096086201135959170042088258239804498962957016470303109374815337477625491513579086375878877186507589102134491580326770236921317592401048127491123554487226384440483803922349041040564868335724363526505417912412057270895428785879835150512590595807491754878335319863923940133755176120844313832799292352330372985937911657244064445450294718548544907527428939438374957959078781289832140612507111676893088072837096960333228187503274105792901350935531559148714001128190882549070867260052469789374368815105665463428325186333653998250563090261723668108985077299102982802528045390232489793760672209963683003627367939727209619184519293476703147330796725827969911714736594208611889477978762643692399253129174536420599744397573418457494621559875979386457790466006486183753109231541837308559327417155216213106724207015280893594913926124912384379280333483175518356043344431401438999404267811663009034237167581924479458591282424066349266076275648820269521863984648740218770934227936035254482842271164817909845589345011667367479219278437685668696753616871285302500016546105763320086142024404679554301478099142630855734197293496794977423129940057591456685570307693946980771107042606810377088429526861896076519219117161655697048534186969090922463930191210761857149562429208312062982162682454642070731649717603262362607957651742924374847584092124341967778039074653042680139148360384183103187407278858574417317126896468551938044547426295507205356344179200281222984661588895196588939517707362089727476652340835334761279839863650865279591192883911107007745108306489411252199060802151120328165365436258236730519593121459430524609753554116944663832399197230884429936418894962657626562761081601378603505486414468016219504030698863891687689465931908170708873027897971182904336933118050223556646338020334803328954356260228411619033543035270010312981818375728365808844993820036810686481826971306758009996596311587718366406029699542026326597250799553961173153488735394427923288717579069405723421141526241952595475605804048015173263528549263469876630374192538370535565043979803489272075326999941861742975513125098979683788877410938310274724377750088494086165280470049772966322139905476334106636712392295379778190845705249402685840252332084591265940558080004749018013922458505069974192153496270407330449534752403320921070969869648049831362406821779777954612325552471075664030928991725534498301622735507184531782031980270409764485449507577159630581515886173506853899016059396714721103310506169390480901521236491830920076553931659053819308171234249287667629066964693051857432994323688128162595687405989679635024151992947922429497989218858526012805881924460012416031281728285826650712672194805835698556254389553994346209815621305101320907150520971772762824591179557488089869522256961424064267335017796888623757198605495036514046372189342549180026504904297770408243863453688054599222577428093026732026167249866559675787049920954030872906319364729334228432834178131113037923092292368211672242215497561508411540119452050333819921233126513295508445469188833373038371169260901173825211448966209673087096937477855216228232336763410249545549908712755113236744106051471878524677062295429382422561370733678408432839779651798704753737971237347565254409743823544160313335502925936779681279559973768389127579209803571618338625317797811350794649992999422206346833479760442682418790683887101320888376459099081972477131481305030632880708964583713424382054732838712675120749707372796254603730639394427600443002117466600164487369474478588523848490188000821781792190435086473360794415995958933058197084086540136503712838535078803234513152741888400625428386594300528679321478146732528347798674032817198233665657047959429734184664106660888749978795041492394604099570814050366424564876357695666857662902525959723947888689697636440447627664589303203125110287029405575740333378923788323671431286447766818937792345827130794614855381255435652446319844860467337926107093709421947808999221566211969456153263166496995587407986290292449341736098339606294681249052111943349115505532129833731592910375055534541737937534020472703438844810755046131592695139711265265723597924603777266626135104838572081449142654346963423767236739984024374736984954916689620569535187339225583279611100076591481736131476392704486378834016804347934418229121769214901620290779115154173543866152218519464205823953697736080094773375965127450230074830930795155395049715842470413636903469863069361826304923401333056899059023021728130692033396465904086585930057565102426502451890280710176655537629576551271054313730723338587545772752122597682184003035232879856745050389142597269853471025710322413574134853027645984695502399178846195270213125767956171736848589349483564273931141341547119705638842227583094803893230280074086115131674730816085566132328433473351732503339089247340774619048373595878653437911087642052820567148794154642106489544421338821971940540002386172432483940407577624740251410135340005081817094768269337130786620205428339635846635328222319287390467276805055008359414311442067227692674943566675371289850930181456894280512426191367758661487516084327858099896783822877548581220315422314219911993372978836450735872942716979862756314340283320613176211446854863793156102846408104915428508985284279232577376265319356374600250625419181025994336828185392327848904104608919245152045282168422170312426193851570285328196964318008955562551244977318772408700259669565170287644581692555979485242386444206071946278553300890747783064652212241754507249643990332945614999231536902741310746264439943892558537762723332585001035396543972816746711939876188403097062672916958974877501233782497246036971713421049502359409014701242965657840480387248111250386931721937140507902327875377433891897342968055465836048489875001919216903960832211707517614565680930806699683405154738258758172611923864691142891929561100965621920640288610692542706743071956172961364454451462182963324787858616888133451052103249601766930908151659099177185387238100098010914564586357181351891659568909841920299778702922076798028903620473894897557156175507663534627327641002849621822613139159100255024346101692159743962952483043631875986709614531565081129497196825588239740619229866456881043533061546356716044681168276873743049946681279741904759382237720308474671926823578156653601220875362157110991343290964863881583395576678752353808000347108385190398119321527074880070609586953118157537189619257788649472424834423098987517799362562843089612070190206181555894030444459949681152369002033179767431742943456478082666799804789770767475276761088213854259574945339246348589545292220743638143924680857124584145653665095533161386796286896820252373455191919868719572322646691179188530713067131355207401712683241897775787410425218495862261957854916395056980807267509694507238382030265333375624040376332775299117689903368977235929271296115544132685051473454253663877883165818037503274813007198576455191191275757717613383720594360098266488152584227056903904809413705466744663130207696572324531234910545823251239790481646562109661842267794665923923489219024489422633885091839304783307253160157353052375366650902498537667801451995471718247497061436045120451505707415153041691903532391696512753187416137769703192820415821910012607036099865153799579499887638291015901444764620057277481657363265816024102351294923104121521689252917269694110802096857352549602621646193038249604380421839747889733870502794256683142235529957615411756676678472123348164485571883434741313938651067318472427428422633752419851674394102269772711368578907806773000729992426406917761948775028620836222001069553476525704062571977607241808384917177921396709025469372547520994133647618763724466409972495862299072085247188405304096423656593864686371419856126332713182953998779954373980788956924487788861351234443013356031717680779660411395008631752435899965563658895839835906072503919876700139664516615212042054822385894824656237911248444134500369961730712179244371293588630708335395214120399077074571079618763784304382098479620024279832474997311697757931834515951953439398773372189574509772188229997940628394231010830561268945294733412068987569903969682219183246585921311171246547359991020016560090804160828067492485060776245337673500506718367359978716000606022690686843672046469058994910237975056382323387127426258279099294777747989394453530053205685230921346018339449643942479213625918789110516993839931358866903655880227371908755893366841619769599151741781833591721963981565883426360780219318940232745690294857749357048821893418945723558040649240597971998018742283263814027180035124807011881616523905479438564133431128854264759225533261476356642856076095085132805091438398576978286601544087640426150948809103874249255602921796910983824230026473745964480281644599850818208421892198521438796513648991010149662108083162842920632110711394745897067420510536134564286469680883763120476865783592246507913313543374001027430819738149548216462261891186497156741325007175052567861446681845870197482521779299390267056010667904613788434334347685234392156725331816680027465576190934989789627433581911573005590980786374885468108007122677121418155777028050995172272112820880538400382176145677898276392566314100620638456796787525697600155330564850833224292808081924731546020364319042448604628004916566635164350268995447265526731639515893279699157907180661166556661519042502695431531412646107851244785447040860282047118977906348508290530749971259639386978844316539497316864507988146195626559541327009863558158726892487737241606791790211802596086477471174004393111941415985154199840827119986036672070261109186292542410940869349048818009145767109084027673185086717676640726883176392124375767483853752633761043239197180495430495018204164615020487203970939582575125991197476908821763628204152880125250382586568155828085564677719530312329067253782314198449490277161968432002459531143741946835446548330390611752965126061746412887886820961760902961374036144621798397696325594201730805218194097522087123655722437368089604759528889203501277401580059824458634286801898204286029709352611588684378808366921177631635351322104474734308964552812404768196686063442283227136385565919819780372995769114413188173032798405786815659038003809290019247933598430276678335610162691843913733708548075667140590585345272881841590358998590094739866971046617857980050800167184851696176326773490576525878866897928767452830269431730602898437166871982639045858868366795491381486797508641658121564213789753767459410072170166286274377217749207370933678918961188297047040316833422942060147328036670656251392887670776919381644343793027757307097213556256447844611745754987251386783262933565133638376261777240580877220524020532823682712340994586387845085006847491959767097019668967556910872252898039318217130984836047875514390918165622785082548728839300546576292008783494454910198749095846242853282096714337030138191544656469503924823429816373021225947063443616282067333535699300419273664036864502859844113118162363678785754983444913488895155330933811385349872658100935516227356114421277799539055362803751832611813582001702503752490218084919840068271484044133103693839529719208215685524757632659852697246483898240252269143941357357208354522186411318968852064807333486761324127552172371273527932602807914291518265682512178776198889623584263534020164476884882219748085939558872734283605557158576536179576593674131428864165786859639131993122790580352824828557301263195838307057927517217420039232989955685981086102900896361390918487660582129971602255207554306088512702936320192704532096865664104573407082481836952679702981179112246362235786000971557213520154589277330861397007098290356238865989184357983766568424446369522150339113409701473980429644557814747858923122840250173347588271038519674881619961891763609258277051615634133893580998570656874495395374015550060980395342959135997688611672345560108895281011425073316521477620845588907280045140513267749071032944467683123161165710251139483033655039861162410475775166978534359326632964047121478090524451735422893904074025820222561204353885316391087371486400087570293410420444086697415940176002719305471550410567967331143776153081725034174125028790208214867245517694772211336007676096907965846847484677221267087905543407090231435696773874367987742066125983551559001739730185763084355561338912851316848965206014034888706801063144573863894735138040192851728219401695366739742075333857962372430107756189912126547929955531227097344887872286744488328620499707471091403555326982163634549219929641464333213190869636044250963444468573971218956226159652401206718700116520539812894235595678581947087850160392412347425362180906026533995377009661154093499809046963922164393211063528003583060156939983698297967436700349383909876400488026233123885237832119070354071612494696600508885220986671678010275907169470063559919092022779314838380022687762357520748534051045247242817304601871798168235040879313459808524349476397755696428935528568177322977049024452058040215411527351281081694526555477097711903271492460524352968528536027134767666229893726371653478554593460494003636853085507897304392490683558181667651119118787630984531144977924686879413413229374588316181048131765332842880784182733435800259624045620106328154255047494180800557600365580180558428723920390724153525827350681772579940851339511746990263808205204113681492688551713812392099793601928388983243562648983240701102619241561904696401840308750665062052210478963509781794112168944497724173266128369630072601576692717550669817769614665020889280988933054375403020145994803518529201540347846541615690855609604337775665046443213994591722538071251644005037466492214154502588324022494703094427222087686791329896227948283514909054208298393577413981515858468757695811523406802142212141280717663558491365532570227393646311111155309162186844210466578696569342441571893258940776092514972486770913941845932462214024449303462230220079941267083280080552361363393899791920464153395619161102619607026829691248845182141288299562250043189821556735233352856668968959930509817522447414508535233388621517634064515586466310428813315825301077031557467087808920186646697096580980079229610598923574244809501009293279901634799714879710397965731590840107682731028431848211792673112266642008456826909417946190248906266626245690135656996998977346052430062823801317038897421676449346603365414934292219864874882663561750367149150638574176229269132635772451716126454197721389426717029421458371990805093216399332279095391386728163748175763758255219201846491884509898280537390192150633854213837335768421443291948101224434880133368690493423266764552718281345764476946484582072169092963858120431226324991178810492539691206053661585880157357556885183512055569577863837181747390696481408658323771913472674533828601341849978664849167839849117484227466736897457618188670119037795364325534367758724955654757416589777677879127264175469306524964877483922780091251076109683042967239141054362636349712038849271328801469624645734002421107035542751535707882893549533537575789536023796107986745780637752994816939416593178097301794695271474605050858135007745738078094996036639492868129942422123453703022280413048870060632659831747715974171507631048819779109837313859149178794715979401711294438062949177380853821076212357205866025913869463379991506648230661992694503069807789657801735644894882926048551871468151784946250576935543247358447939870633532499948334970145727565709122707411683098921193385761544762442150055657576381931687314935740847837021174078922748634265386602430526849769453693796724713160889198349680213233039086242166038812204436642398142569575390103731795815874623342496311176609140841337335384717903183074943502268298766738638837521165074842492948109176725331965150784988769958496077835599374249942097783715343758662958610274303729814183103644683861318388779120017596411305347342208022669626158175716872374856609665603160924049979489685576665460654686083909209898798089408529881584720670136838566164016948187528216311064949104317464128332361575905011258501079459295824570727307314849450292289534949824416871288035301721609700088238701795641102977628406072707045764964143424122562711840409475054201485865569826732346037406998166615017639324146416423690051108381749268792096192032644034485811054826824273873564134501111463088519347042832913263128107870690720231588743081071355504499204736719751285986259130696149174284169368560423511862698522607110252253556788000454444572097369716936077894862505611473667147075847868822649501204271943848377767416204374229017934257623298257201630105500888461447526308125966879366039456965453413996116631737737481805877476037588781995967391831803993050527318914137641544539665417980834325697104097243665142346759732478558553568603345686569804104813464918071627665633054406175735185878795443026156440751733232317580211802502688270899707823504685465543023967583179683358841021753550784731989084033929523825510484880332239942672196163256325951269776960494011948588418512150967284443457696670065083551617223034697850622026858097924475836844548963891754050520197988632400978551749932695880933284174207814678805137500861917430063911501592440329777102296344173425365985246791816460617533369693127229286575731277128860613353069023539932163537608941000505093017202920625303577148086583431184962298865945411626439776094882753070574079994220689468563134311757128090633624229352792461312055088162152634564604461920826038598339608421044998298200091909993336026839894474358073564088022233605959871221678543928570472827663580311915367494645458909259750890776194691846461825289368549677936448340050925003774377626095275965933277393667016549534862519539812174566454009230950359247897467166773792451854404726025227747953675751822410099714290551855076246275255588336464483658598194024537343948761810732701338005962502003223429788289221682295462817979044864523287438337088513085833865117030926291244190939129528872098884050853221068195795618920999598107834425161506185976856881048584088739483066416009343705878763581294036964136306351582001059214819189353543589364329126361609308143403038389733487307764849798603030376749298674006563785629634035916570670719788070182817874189493057188716803794249130178319619466778845802065775609622432568820857509096965401824139694247847282273298828737264890203132812281326189276508753792827341277326145084645166180317999775224477563516282508046580238336293368551850286287351668670537116562109953106633217968529109249741718998806873730844254753400429602713467558959582570124908012167197237282880306383452108117290513352988594849796978027187401568852925508871132533419424062568113061216089324831656975231924509173989601340827660171309708858549592497033037619272236546679383267560741370245583150966297219573070961261219151522762623868411513094920659693417044700373245233062036130690514561913020358995701263742761556545339302642970653046057387348601807898230583600198524067984388763049072158048818064553564077099389142312798800538348684190642342185983626022992159665378042992782484494575531052890340551016428373049565364056742675686445942080181902043689438253523686402300510008614702896257417564616119546623663885377765992446476773891853188370522742302465812772336483279040356116980083008063543094886836893525257949426777481556675475870633662014905529941641872841477595327380941862475697128123947991340602422614207207203141036340069975370341327139550483166023777874825050104785610464090785360727781307111307677573061260216343432679666333811657029001086639528729753054197173276305898371261521293997169400729659460302115716840193814530865301254594451837323671994679370086826168079762570016757415350018973603506480148805521109409518434740164493267055983702125615608333597283218072248440523911741778280853645130564650939871234381122621640261086133746910899470534175492681162558777388042112794827870206087993847542662058860247098682894975270600925153983936405527839354716733139980306052058216842971202390842034882925183604732923611771598799239199026122735833740521621616736500182933409014369014103558187048798269710097736641197354762806809807759578390670692547144632031295702364869148712182011131396864984200431396819708954468879064259575362795702841564914512164339709567233141462346745034498968967827385075927971052507929934822856603905443556807909325206424107680208281100524427478071780379651820730256864323111410347223127617948227628697099681190121250272934698579591880845582000032252865777925134971842825056702558894996202779585992341454832402806477917069369759590664717576787669476900170166985567192929018340863165652210390380879503400938226280332970665640319504493226913717876001179550765889036819884916749799350152151942507024608489096577162752454301035934714651529546435142942242236819639150698878733356900026260786114007481152838288601119433083825363381560670429420202870224147061702447718971862392922912319756387039403693152253597586364060556319984132154485210437445675604456337878865863526733019887113264978673108993193578861767407564553128887849482360210675095948555783836366778132241384219163925779447040470780051737259266675305066954584681478202270207986169833133342114852399046603739221548953099299920177710953271804426355992694131643509297301845377080422246970659461443119892763254981604398217715416195770301157741704271535540983098445218396547203531409257935105658964761718210798947570447287044749834914104202204717274496849360593183706744923171177877386196512042706578559585034032044854919086683347956319621255770678879030921351549250599510375858890489746985511309176712917816779389753658361022623118007441755918923069499115248420111456636144166569048007191505392718337709312719000862459951683397287934682889949601105557889726960127449182994617861034519936789166261366285343325747038212968214570922479963750594290824893468534958051638680140492974564745623647457251531065910282700181368344200776483122755518871033146017902078800541496270224517104009956132556449752075609855187772406197479525082730197346450117560306207115762926767515443957901751702116181468120256818363310512435669442412626678058097715473280544801617285215549051502371077268226321110077852495912138261428768474672040162902273761938024596453471676371873589497418987094979543588952417099191416896128254340220382133760082871749916548480902433082762577389577123734941310765010104010135025031043399678760776281694497353146204286668620380134698106134108736739423746241245190801760117908559861190231479222984177716665227878678109878869494448043676510132019365624704131684494266548221289695771029201743097133044329634528807491852046265069748091110848440547213598122654070194363130082877196123351974611802852572123608478050285826359709286760210365913425887571168273961316116480647829413811992686996982327188332099074925787043104214392497951665305981424466531614343986484224219714838570631532607850788698287935935234924256602251067012400113974148096205859376425076810017919794536092886157484169598908644722941484589539725029574275568895643218701392670702049020105620654314313455638386441302286755030000828975934680146432099960530610069280285219452113125514187536186005147095138527725454671105037145180692742730543449068083543591171214148754518131758993539481726735572189633454912766705592253980498336757123296914430484807552184312858067231188146829497064927608959369029613080786907785017519560482622974000520532989142482110374343489124963888663986932081408475275426372597167315309352051115026024845833125617338188936722735554767877417433088322682410133734555844389691061940900292536326055441558417023279435217665718393404494120408611150175786353132908054955093246171496000523771638840270823972500987202380246624403949505492989768368046576701388440766367801777107232381203482683750170475840850176733834565386445626066986002613941849471150711067722199590591786813276367475340069643925222412262848778856205352990733916298788235451715596513562218715962957101386054349689373670407558257948288468015284466711912558960523339229561764795230384543241876859610582480818830953280405116959244445258264281339289369668455469722302502379026586208120322047949517192175383639770998195412228087503366854570797898416944591262791963644274767644093050908055516495039664664468812478228006475254957622540833301830428583706418665388518450179894263052769074675018756951012090920058055828515403562564927222034931117162010568480918693018706694737259351756626066353635137751937171755614971973875607297972818545500630036297344179299723580717925161649501602446206291559829979910710276769207893354777968635280264967559511045699851563916215548176349227047916780721983317382042959985310793875042263114541301216662297382406472761013214522155566582961358690555574475277212467232123722514285034073182299207264201047029677533041318125239783911253641902665146250362089613616295892484877528253544019728182677588436649454224237121547699135006027312118047535028562494872917006842484627264481972844413181787109949307780616435446762149241892163859491107107818009552189454846400248614454639396868083230442848906669500835052281953013305262347252146458916386702046441706132453411819463019383575394683685077343126676031233119401781257432842097223516800440002821658553811912985712039131234336994831535256910845225107858722654609983677858786087324941847403583037857490943652208219438365191489965312731430875026857191589876105208188434080769250718178342678956816878816598588673840361924682190885307935702138315114219953654411547732633346634120202288407796209524157487780387363863751287649634991019203616050173083264561982789872936428287665279214279058322802745263238328776061101541763839471469533062668742564060786029463903698954638308418764655581775072781737566127931920997434422779112648112436822985226252410286854877601122234483892871387255999765986843292393755421986327878669294843716672231669457077269352015739600891329126069299156431507578032597217756447246981753601146967930453162470794282802447421100485663268991472337509657551863061296120097942240797819737270596225379014557595558345409975705297572508408415831388033444105027706077070716617707266499989346634583783071912567498927805898177225269817212441491443785637162474733302375236518628387648485055306519379975842954255801656496010195148990733588559282281514058686493064161947100313005519247472578450742486794020359241152226568096669739419897377142606752754008264996720287234554548440356248007628420352167642946620577124340195564615131355816556602728220402857642606448999622378700854930446259985494861086503187170223821244446946469292080807805150040643373756499057552325876705404100835059881022359197486875432844810401386455423803754782279332266263453646863237739193155089560963874946135889560358268200187054027100089718419435097873575295873608091343733126785415635222218258180908144893554471659363040655261050307143718763371356443346494994683713653630893284169499522860645412841050693617772139109603363752725346997959982008379814729393844513509511212200597620161921124696977932090675088726427456547661812729290379816283080780219878655798838192005047715833205832361827467895244179506768843370666102266956511216311395571313116536558079270515534380235939773202263807510851468153550271683044126359343237851682245815166627689271175732568947148415844163926490701058791122539464364071482309809970402860193746084933268454912121809692915196179793457096326342147400304327700068032831197306412381154244734710113076709073657874029487923908362518252956038245251555121106282361882070097853941185912540209129508019606590646697087967270944848063098193223924921166602790006455904934394658215963493167991276126795841157079323316481200849580157603272130838393713804301668634608247420531587779213391720981168321411663606296333252494368883002515859657515271282307863058100248886606553581854030561755010931103677925616442994098147603370394522214893333854461267053967289463187603783052572005155516041376956399512442819418156570056090681946426939798365558455303463320798081832001226911676654377813959568917140502253775046116145880389794233052493448459738028128454756415695814746355581664142984124369112681748846081725425338049776906776541700764592366740704667380800552685413529536115514398074631348690627881320305993458582564921892132733767739081201617395805674324286108544780825733951032800552406654436161033694816612505750454234978115157297341021980952270075200058578617273066409210404753574013896448483979973574297284785436936613850373112358608801335365881606845808741970755279911367655670612173456057379794093794075000167096698448167599203549361622279115385229210081542033305896844386452790607995238432625420591198259201025840906942256932345728461077645718739891633711866250235947780370170790313626902491139780973629993063408380805443799597511072944183373815155460231440856720156505707546403718889217621158241312453202510590078372010962878156506098910571131803715703763820114011515299812974817757911191105026505506101942749160976027299315064918054853823258568419886462044701684905187088987667672677897935721196199628078939101049756798463232686013667601567452513936222201659088392501962408928525737830842505426324604383366260645652164193429294187544706579663110314337565637062777454238839874561563260588165796990619874907595259693041411815263114889987410715077410779808970806538713408362121240498444554759939728999661578180722378903041592689359343344581915052619862003843584773012863627836088989659993533435206844444581213840579868165038162421301216517128792580520489881531335361564356840978097564071560869108220410511590624586145527490889855046269244628420588918703680131121591594980587019295247527441467756537851593549739481824160829784311885603111366653910970020724877131913672323083209036729318600051090902135712569113932767610583115840834117617930507258225962139362746570163198849442747419472347317215167394807867893342050335972541529200540988748948113266601043207958956407142973344649628252889585159554551966807015685738655788728658255110757768811318880283003515274185032585058277703743669290630251896822092176967257592746796554090763138555629279874756717659790059761031149931311102628612235431398836748067706363247485101452764093258649338075700285325613146404562063073357527878463719496060149403169560586819697055549868228513251375865373022957673482204477065252679046771868880118465546707499005677459427520328620865704041252722619772102146230550789982560668159853829948148838665421562772574600117576982895374330936230063194691160862530173587975986675402637868946277593235045586432325743854517092946977937800993800508049583061080410713190112812600569819383601383660081952032768998261286671872548203103744606479468014566409794393042481067108010830357568617374901383477853359510432146887898832848534585069037010638697284967759961229711646462884705440298223079082223720918716766934738309414105465626283866835844212775805388048132186619839828817062336374178825593707873579081453032184362002726474040935769486309484816494986279748729416692689067196225200927278689838321405470797097240333873396820844322764191502636132948596547436318576960219944224133631431371514086385099321617868954881570939947185354465103842612974113825049169968891907115551261209557919473206921162794714529469710150565175709649204158262072801387998419363494206417637457732993132894733669874482006766746297249819431533298712386604136428575768342821986991939609571446809787129426664365772916241842304032128155056728108272607152205850712001189034503834550638355722372208590464732393128588782334618151633290842949037292226368672669482106391444149216307020236340641409960809723501604142895721361200687030145871581156885871684531654780618349093458433302644946860765975987891612681959034229589166702717189829223758122226317516282782173268683072624531366240164267376003123573668235886009069698612068005378889467141315139862048068852790912573416652251367623588352383250167654685339801999203101395140324984786641148316955624067809122173594444634929215205539026079712529484269013602322158774228625830192619879859610610702940065092943422939887589427587177343781560026906608322180375762042942582663421637734380290185881943157642456316241301705342033609044250903549112140471097974627164347018345887552856219204404865210776096136881714502080035794937993831939793795544056221874738541396714818199310651194693410500139465300442587621318241979560429918671971330460323647966870494907893006090000993104658152871579357994334765847512790249323993123704667366987639181001582561067297074689138184214835505530376082513575180289341807829306656043425577249366201473053943936633838277057265330941734354716076405549224845853850504027840562341208051217521396357106788534172974653642000680361817925020791910394166056589892223150133185088775510068361289925536846275986162613043798025864898802449778070869798744764484154840313762468104269731529845293831622223282270920438176733856001970128865637334461890228531659517002246321786459062656053190814578809757281296111926301563754626237080669339576531835047276898015516027982999972408605189306813536779483158080142250018103221961535781471516939922714589696287399918333300625056812433942687753672767684294912976210156196219085360486181965822596042896509746400613300670523725130392176209649090295492686182241083113867580693480698111486771289056214358349507242659088185243381446381387457464095450603396100602974179385567862913203203730027996190830818437011113602817710069388282327315555771937835059229783071883612694669268908323602683438688659512422057449080989703275188338098022935938661564420609631284179140344128375756000707155687113575165340211461360906953147490838969303472505632523705183623531049880358270945798938594832104586952760283074627644252515095939519894343691584616144806338923633970091672651283074317885364090634780364679207036867037537256585474610434567533040847023118876032672954006063319860138074088923962196232113436270859115037662635019287485586946548371307809955521453463563875349789345480797885973907703616946292093779841950465070064051434176458513315292549802025137233174414383762160253054096531758738335878749594784123940906354795589233058934347594948715752553996905404731542543194141556771539990826832419900556185372418313231413070825856238790869031635850907140646726092695928407459069462758387252775311063739745545756250261557372551530635143932010783731210664896889038042439525306762836084518589634652454038177160655790784081377417674115537293202018212808189975618772317558645183307574602951641992524959159143755020588493976091864257067274094004981300270358791190831878201649459588771691752710976876176897511139607025193462161361235720034495377697524878444165948540418103995488127753959691565259468892740773291759006000500482861447066219996160193110095250269351694923419233867189940618852587392890001388974096358328642694510533770375339169800243754355331674878504509147715611422696251733893245903268717878424029215833552811566722925888337096164025948327596641056066787113797986708320397709802022530438578442236294127010852835545269626386103993703387298314278498165792344921920566512047242415874624915016975559853258985822237526552125516274041842319987148626146216993609213805071278155213250734733467363168435215725437295886680637739783049357802479617978347676211805233567426768779524790635918261384653363356027386568184256929465003076891525390424672036196864091854512176333524487843273810133725219141295189424311632190961769825051927856122301480011816878081867648945139443413802897298297703143544136806508141683112482718708091426348423900233734848318868734837720374276860265571572499924780307921440458642968851532698492272309557917430838065769270573433543151160967613674013739366957272664944800921815879954537101206437099795605614651940619191224180801681655513082288619888858536096359516628733814185144144253096743012336080512974821334325966169881514573348818976768966832259782125268603046981726458698481350084022335204903719257534191679843485958424916120171986522352544863930555650717107498256655433785328276803666312483135568185130004196119407456479832241503399663509202034394986380300798779051746548958404379143814723665375172957346939195601424238714982431976906727699236472507387854745593484517720426482001236708414990268948087339935940910484720007540187051378242232253606816794277784467021319814187863279370743130453305002171868843577473770728739078789567567842419202529980802682996441470790555158240657362202581050327406338604658662583199596420262697435501868242804153977379049902210129835372762599967434482063234533279693284879163289403841242310739767038234095213605332509125286431086458296089319780054712162894605510099686894827482213245774100681736874063658055229328859439703779114079225730609434986471510298617427699019443129076110810362724236012417582912677556813716797709697068501542156545239183360179610324049542238261569689638391081982322914110107800905749747793947303237603094299718374171216537727950709558551803722257921331325527824390856402293534201080011078190024327289745838914655343946625245719990034479770612161334506073456415418579349864812680388970612968986100900632985794127417471834921035342539800050815266299436010128787497150226731167992918722265393569630939129582335264873023687057683791666644162507905659250413466876356438004892235984528227416833206959598217366549690319639692335642680077891040395571357422090870134057993148247530297660558331559794605775340186808858984269863587000009491415339561102385210646584926898345987864074520514604500779989866776452705392627602302354254222288964579734718068865273486190373943869495490950385122941720394755788037614095074527949812153685514436134381279614448961216203344490107535337755895487001942900935227954163743015638302931765959626253235327419198787454872250376919926771483085096624813799934829117283036887170354776689126566627124126614119460344340399118108470993620831280852215973971212488404714912430042138343796348816850736249953520405191793070991925810325117308013400472684905526441082883201772438435182100325751978078259917612595314655973554932934138421376537952397531052020527373965911050166037486315035960247891830996230495358386872139201800217451777910029423936219443174981418103141199503017188678732554969287445374629462614037262852702336705742762067718060538628086410676674367109814134878455503274722866655463314742573988131355468444311842889284367181151799698053314400478069935267666127542488715657063724031580348506739964590925667033973034905415746871602145118306107620100103297072858251095456199711129607586153410096580343903585021661286767903237565893961233839638565312062810467740337441502653577183823409602878330104841796169493554728416054641868381696544147557587248671651787967711190653530771494844514492397839540689951747891113397561630674969155877110129586831049547266686825793861993098453737672096503224925218318205620615503980758168170099716148713098846669971233306867969016411560954694729640808184751955357090018993071842645118160906504492585441360291363831991993712542220463537834266761553890557050640086541814691718805413800026770063798853346601304969169996658824188619274238304183485672596926194788842352590384016409948576619603934144475096407740299904521261546748045144773187490472823635940704880648535853871731347212986857557982371670225014553439758832763453255650675178373406367376171924439173560529527626054570465857670915448892589703631250268773705317211748633817301558919894417678342229520593466737977423715617795704634508298541451374585177865111235099366007142840835353900203908520764081800974162610862296853871570885181208793249147952435109596864519626675609363537111340709308526976789877174566106784075000752770005332184273900892230217392951998635834526195710877749113347187662314426399075720714814296201667413761677168936312418723209442801110651186777242191902668674671806135822243106499622282358570019701851715505344808808493359964470998628427713583605518779211377632473349429082884523579746601085120374900294965506328801825581567316870804714338187224430795508361157930661715473197334664527079956433122060684126007876624422966648025777323279762883235682623888176996588384402671189087274502099341160083480810947289253230443283912618894228600008765968360426207739188955164156528796540829678752300759906539013752379370043252409257004573971729089580974396310725956198066363229063187811809113740332684625322251479782570564468184561333089412466669995378767663574086230386941628414804043745286847436411106550629958508092206205685245116618498793933390793620646570050713638983557083337129412522672274066857829524251035483648647103857655066343266191130958000826544389416846334717842957009217476471644551436203140295500641981010104461837642802438703799026457199712069738640664272824516135986101941256484037371703989224790777593728173876859384187320980967493265660955064773983861385557756432539084962649605759502145649942154839849860929195358906538979160556204373459085289267775149755566116534078061242501157984719326819328842532403571635216359584871293795346177872497366010538005934222681190876414634668787792567289103642038961788048231968252911552102294658250434540673032809561993813745219465130029038386435234557065346112577462261094588198127445226623691173609232831273111567710121497387839242009064186184359954492271169452258775095318002107263047458501830712956743550062576588685293677024454710091745273329206326182848723037322250149013225618667729145774095820738168236554564364389103692095742602819767528370574989209430470353561520740333273812386037108332150906406567797355777638366215669723775149911833370253155524361676260335623847441440312705963150716645166575105106456973920082618317293789692922999546490770899625175834711179184825791538991869579097921472286134052091723945820668996107527526217929338424508682408140843759418371938547661667582073388802086094445695985305141449593994812386228697042233210080188191051097124327811267438278285466954314191118477659011418171763138892296866147819419851887358541309116547974926081036744448571789539640231900456993406658954209737598515597580082347418686107525965215524856490073206508934649557996637333990524668950672164409663293770076198937645289137978557373547143738726815307504733772084341808747052676852000294415896517639209072620862930455028624728453317689048177058985336355711406756678962969126194298699670528219805167786643434574085970489926044751042179960214048319610912476729303675794177220888399229674786301350952930042630290999834559606112631744629200361747201381369062033010941462682225886449302165617734488076749897083882555118594411860886954766744385157452904288168693590940883101025291308695581902530430543332870051262086083342251968477920343542496689214364383041894015991857104297859953496023092373893614561215208387208091534570533438065722024463271423590692541312683030956515113765084825703396352913853111794854467804912893594398870338221975175119192754611127791740398907166360834910614899929065822927623690519969915331450015374345578978627595689102217111227777991153094674916600790205591843720514222626143242748828717118085755850594091367813362309741159010460624854168684429247217829271216082627242377870339650672061234102322757765887943547001058552679264819892532632973351109475305965348300011431108395863866141343368533857811105092522549037472299157569567414061165825556364532325115410461667538251030704782641033339058257338414191944939873572517096338331797644169447668229137777560693421135092993733130701272812469965433391000272861478452186597395140072069814072836453205102862655253442966016232855415287642356426223291533398959321179161290509123348460795059016868566390946696261687816907931073451973930885612963572046487737056811982005638568525693330748300921713020443203771847151896542216374767367172511507013550776845928428847526334527388773143973853362708164612850326899572878570211891193244807591994527811344756239214843819670881141899517205754683033174261580323390303052599191239897681379211550640927986249733696476553112426305707043002272748230014049374030179850168899722400029300831740648591564881739067803613607454569727435909983976745747685027310257987128378470825515779678675338820247672873186439628412025390630335859507018702781536365037455164311491243734667632980155108618393199770722854372564901343492994159319255752978135679190144967632857961966770012332675450146266226063282037735233811659038609101366164536477698383105839766498103452308893221490917347664858624576708580720089825928777557064018504741521032733941996216588208586788495093434449713496383453720890697588003760853938502580041769574076273621958037707372154008326290545115186175068713629686079639443372722357744171654190483656426582791810990150973526245386374246799275987213180619377471913191530962755629996342154074114339614331172590913575391960621542965260729378311296971353884614046480628970511094759644385172763949017657919702759675017250213416702265542243396392337174657344289688803756269133172755016140012522112384339667750859292912766837859807126296057834552365752102315824195343259575310726912287536577295707617452405050774114384055807427441691133490738914746128588383114936217392982251567760686277084911259931358982212168750185795991139732646907755313950101205106317143579078197481721626491104401674352689260902657839217362272646936493157112279846507543294395484786851619019867692813910549681714309712860684339105189132800131806777659856202106769871139158064131862697654819484648197389277696743433145446086226636095746878884476446597446287690101075252362999714998935442682525383606308100188891644723667069325423713261733445814252582062536004927750872654781738457493776841888155805856828037373392566497327653424971583163670096862823679646132074759385994073400959059655450623417546993846469440359689734967521553558453328142219308561041173975695931378602710248683854826018565771130336341088845394482223955346219453798065753820896800740292855673825593294616714611159723563722772205844009418726361508948636332497190441517614391119990294034613567702905206216882829384691137856622752131859716017455699604811112060801312336054873511637676754270422426605884279824422872967184428581176977589125036551324056634613487402612228511093037232317559962856382211704034459236958729970929267603285799933072971201180914603717661344362983862857072113405803707913389474929328572217303157813146393178380321645549569479787697266348818980300565815332553327117879069148607639636947698874480010217682976758190142434060690818300684623137278326500283222501571273149389998579609314228395443897411158644959767264739820053725047898926594521519969461685895220708785876731914476125771828786584088691597800012086620627244947566752693997079879054874202346314325609920996133684532042502516456293085332283665424550856675475626387647330658156583335859064385605339186059467113270500112668535366401804745278434418979603040314791281388323180423033281672421736740525311331907501485682714858112477410891921046561629825668509726549670660806433580049926906131384900887291045553542020357217786832339852664160275319306669520356710515814549693936025358892275757477196107721654729384898658047766781749464926526568301346305654900396066097770691255173532323400627560339077344680772482936691897517735048028824857871489771468623515978692879401424303267204447464008904552183687765963980990628482594073715242113941283231973625561483201356545133745952630521929654816393081388900555825249971734874963294147065645933301602733001538157233155494154253947726884583778883408555208576478259442499945723029426721194620700073603502063581729330288387142766439277383306587263151377340179729578333247846826597062524689268902437566108680436708488762530469737757331351241041901148827590359806005800783021339653103750444872254337574073927979782580016818742332000421256367428643911684052806849779567620227936460967928261204838048820721056038980584228035669505640527478087317494191426944788192406405578015083783149547446623959379397375958813684480664331829812448293371296633137582103324475729679906806945858451532985189924982235091374438540864695242833438318555878321261596027466536354618886006251174815535675059022343730459505118701110627003695834585975598857407215431020469927292362844509783911149967964707153721409867827686926869928694121623103693317632621252981643097827216554648658086394328613256467408940575513892985872709369136092774512355153851683053840081764110937005119341709265067795751915599970335293263440234096628607899595552781781353365662567730258274566543753213140105363771342003789676443524929840568884606144165314956103850604433622729936162887275831395104117081813088148849829063751171927390633754878908588056576597842755543754814594586351289078273314393273054272161156233064156895881623137387088658767896428853930712358764459678222644676336299827872622419749922303835208498287025400525284038860164003514642481962467290907314932757874558319705769823501480645869696137706085104513854757829054755790188821017521824755324275339445080038172014698141897569814621429539070097063043203138178958883155756757127640555433571359092380234341921049909923299239435686279014669820294988842220950632907746487059325121768040843268807027824488162633534701518710470344602525607369490849144457529634096798537750469649851692659326666712359083478866081607443425446749674916221428734694251885075341769843524102117149691591798962984214933343696782503982667536034747373674808357582735830883985427311127855286757532169176621595837889545183972982090461979170652279930042653504661644001375729456800886082284616225214364119919453867091104422760306190753482765029082317010041000862463836208128436534332722859781642008838549535527495586064201476953704523798482776785140829752186134360687423932926149421231286127473092648000219650801640515069224412174611296800700810808615398548252651731024755823528139915189046985980496817754762282005207792160377170761595620131172979613162394075076613273151643145505999953142073600161442367146234530154068114579646254520838309537243857059738872944884284097154039194789948053844472011598989915016503773692301685535265830264250882586795506624232280209638184940723389932292537007003160626084915886885465050139580782682113522090154902616957684253538832269845664655216262506765683943499454615737990500500584947832528767853156756567455760644580957427840242890349857863532383345171437503546544899375419949619626949697406765972739535738597410673483114024983730888906929290387003315232660322218982635635050325330636814627555621155466315808316749772755436583539344879480929747436387370719507218922551200961755142712539498083541288497403612448532690128680670311255491222414210496692969423871674785178978976306463577311221553500469380803113621318465066346868637354140204257816009716262729437701305981545977863674075924893767779712866679239838620532920631021396918916797232613571819029823490952660378720511435971311097164572622960996494373098221674010036464713211128730454735381428119620959816964543508315972465980463900678145046446300663267109253961672028073925534566458235211246787054510892282863529866731979447971800786851166096636525437944860195471137205999903347786605759308689718927829920420669835892707628569070193170653715593922653913247386849948901537409042783547663819743304347061502427783393528237269640360583658310045487520545001257947626430303310339407705663131676384589446895828157129991125892189354882266638523697907456594357796916058161166558034313608963088891848195739132989891763511909011353421746530534622192506012902164271328289749473349949344725087364726366701905881508069771485693605964140170318943169960417452270535710276611192809452061649385907221818235401391820820223034320839543532140956844072075046993454030099354391329133070914466563960520065487450304037434286026071386825514106495580592966933082402009136835605477683032400256337627697242596369488766987457367874524651388401985174722896888684394484381861080820199831627580997694835769948947811035735096054892004180821653058867910817072947616349516243173236576998360677815208589025830828385294619633500526736050574941905720034312758499820420037401125045241804394621386287569497509812290351662688445252584529746478403650006667388576531505700581227208806181183079789875788581360470306579933229427730876814560321019487652817074276833588194189536383838420867062055225741242261220302950370917691979807299723897097651579140211465007700575837277392437217707176586430585906471876176769833138114364325458043673168583755354548460559139430264354425955682303925594078168800517011846955478254451024882630969577947539974000612677102215717028948999939464784838116191861860894017489172057648423257907823665061898312417724191685931142845337687395969877050455621659912750814788804775380662447813518044356107498360522398848601032493915840172299280785208904593098170908800456263799281139738036701220779801646859538405252456582714987004405731016965021307086897603894803804088823346516765874645505057258883665559498794261711853713351782502456809533706188110981920118621471005033265526504134766744360126402905684348480978065968642007659359202961297282631189868351806264883639077020348912880550980204651391063804328629399258763046064699970640743403710269510399173943537992863927053865512871817297462036921140336126036608693252349347297126934489282184576879867297996981127270506133674967639628485085146956149874318564064617144903475983129597065090552308013673679137062263552433976466385392391202450155025132633587415183887299623941848510485003938836609915051444759238316099027063102634065626718020045832835703843820562127771700457542975916383468339732676406693823554054638174519301491672880236634424016351893601570475106881812199336347057851356895480227172095513741370484253879188364487577730173685690655933173811638011766912421301767473425802790259392245627439033551376885340053515348188328742687452329392815772594963301034974291737391357452928830296178427933570234528621875723759411633318979031421856598265589302934848346902071150610093150535547065885909262476257626938119508333991961224949264810731197756664828864825846359770730719332183901111018189518184451598670850432234628565992029136574742966557078581439304895062453013714961036122469995551060542636038970338984944482632224775016522458064813767449452465100638172691086487001105228294975311293882219452442862507264868475774589551680479408871270054538584769696078446938201856320893759014338716616714567052901672962551835824848627230295444812928104342852893237875983722985476744798872145255965090847690280064216948490020741108405803692971491473129291373351604047499078920364100809003520228555403858595699957461935832105848483510581722815145832771284791587586244857078514618880234286705953593357269462531995970223904933795522301592122269817662198009917730554996233754525149673201221328907933710201555849996586957104394424640257905487768137281516740464099277253837643855669815061516056251334939878453933071359243586374124160194853202835843396382685291239871605334978839893851973102564257918473421646744887525456445578053212202574701470814405288851641425853820529233816213146302558494655478042191807066704327548348704400414828761773422479132764000178978527279845562192578382211385779524906396551728758405018787750048434936486156263579023506529815602308741056962913785056482758469804642672027363601839806492050005962543881253014069114053084683093216688520849361100075235646692041436403736160536249754369619678952764154408441192703796341699527039843299797448166675575689695925804583280649047270584213927565615230983802616565059785140177626994023658842886111131842195367143888115898764927737377657150602774494426664535758958247976509028325873486781976880079045781307172940062017828764080344262663734051161445217133706064983805661448700098753697959942487633644690432424936137192216155220349966744762141055535848765027701173462811184279675702224073029435561723054076177646395350500986697444516885761810864869044712763807841816086401577778584659082600025773066467050111028778310668290450204799117454066527921832437233970471182555624295530713135504101443604509705426820325137453965185811893840658725455290852073324063349370041350088230385166075025278949528247601889606500060370162306775537441834377269164819722248123439141530933687755418699992901338760344118515376271764506312794928497052417624008344125047233410306528776002518191772868179782390855632987270703301031729481584997559785861423851877908882469803166715498150505064749359948898565228164038168416641634196107684715720617475920997668241891749848509969734239980608010536816597943027363216833426972310450235753797074337680126150161102798048285087385279950151609023272905460029316698740574076232239854507783660831308121119922411931841045122812691411528457624235257500787988541665378934870952822597902171683333094036794129728241281283654283203148853006064030429250014840387676687873025506887337948419786556620059400861021438036738221850304181139526176175970667248191220929826205505910700297192284015452857998661167076620101361010737761344902881841168495699442253471037720677102225934546042242624496182850972397500254066793314861008794077257978966100826243429133252551987222034556628183826320491221770661859371830489514147406554273404870399944199494341935201272110368143188643525968318993768750996896123976666783096882201853334211592870405768968318497389957667042248725889712768877069970240401674406202844351954874083789794608729129199496081424731801242802672150327749293101370277055088975381506311927549261271292244882189491248785969154076835440524346409792673657849304623897496946381672145677970634501278004076670529127043721756235235680243530475916705960320133749770102256776704235201444669638534616746547990448904437133135840391340059200242809730891467426873542941727215994928806106335078714357069644655134122170787368069958859330334671372290289915306849527279126046998847597999190544415774262079784610504001797951461500866368523518847667512062377573948674262927009292258465508525379852276223109295199508819011564836117402891922472833652798397436723514843882216433969179323526216782690893360477828963108406060006629544259773673693062874123023987135747338153593316615729155861434261720647099051453594306745762068648795052990954934135223058838279528591826284018291351141042510975008501352844483975018763922659666474178292945220741516406034999036701325879537577229353888389924301693271348492991247895406195524886416923281682457723178572415406865552358321476190581187747377049699398292358103687867587655290918305650136707327844369954974015930267260975803551945035552654643436733213198653929467462513345294274390365716347202154262721553483203418072983551778427122843114089402995270331052679478359385015544869375389710312159389835912552307224789031507218783980060605250207894623489142345772319095000871201936260173503953047749461451711009144722045002722187836681965313597660309903761544151731143644866870173168651054835266461908165916407211744824259455376809547437070871809284046958381222908862479959431929015437956016251355002817282276260671353223904021422723683348603980016369609105699420582929051483753278646258290500787486164502621918837911463738339073427835377540386668708860007737860919508025971888867891736013831726455150704689304607924775458264671216589496183588368851597918156124991272582740014920371458825671238602871765748695768948487501715491894666125451024938429723232528715378141399268890094390682569764148272074645349096708996981936749428466398397471272297461165246062082868416268566225494442682590307952423207553032729442567126693575590666021976942255662078321671846654138300613594511756195715467984674372724988285845986417102686526831591673475771981647262268764431319016199669889763118857934585523721915572971112382270899710465890536127585647229407138712235765110906351507812648325582725511917985810131314196091820140232729122041730581630585685422350265588664245331372897822985393871490138138192637727409702783029852267353082488099071478231334381424324175694686621286522347038049218311380286230557702797045980274147780710775880104612791042552815531059842423623123817353099573483211355029337520342740657672970506711088818243543237286600734690855443632860737049419746839648072790992447877619500112639092863302444869010440234534898480708479691235465926524977845508629145420282721680573309302330347919572152658570688895976587403798147601587026623459692012881296768036311102378364318372295470857369088841425105329174445328806021187345987291197234087798684704022571187586003676365131304134966850223899540216734648719784930110285394313699976053656475595897229809625424321958472002196541179230525898696422837043987387082225352148550678637644416043675425800856749079724634217212125008350800286244209689100193041338660341255508096829166735538767942518093269530323009925736737720330290740288134302103014058724757564736985576130325940595279976521156715943104714550528886453219773350673154866622323169228092956843386706425494978533131461120681877184312518562360274642466436373712417730604905560996903972585769026585975955094753219793799208606417956127277830443161014810749127859459658649335530481567774833700040324992857359657500410479904831057681457522070983601115046818229693423755799651480717007877235397767454739698974723663390012428690663452830077718941253220491788692529010344614325563779697478338014632671586743474422756095870969738933039659961747713444500062774281322397325968265161158173621370929270038462677991988669178485509045681067916564456385465392120187105922063410483674101772794139746345808584479593149000881304600002901721201559909986073684741100260658651931632141932973159776703280095508982364745205385128932810303578311351030648508801865361064018396947303765242465485917914828808238405270089135730502911406019152949676133746330762324925532023552462511770280740547714505634425693416132387629601958861991849086651648951855111021502214034521698107358973293415613200009901831120832093915132759898570404278724994601757612972255312012019473851072608794598604684098150957112458046671535709969368285754925268164494400305280964668000966798945991175651703802268759918944672857546416506339800936541217129366675707042535375649979356574069439019223722468903132381993402739154498407338460727368793218073557242684667114125026370121911608626406706962477218329081851919133432840562303390275274067926668635691790482364128871077348701914821145267675429209769841842328962297006918206489839484423297658961226671879846121999436905028584516899000600696103440430583610375037764055238057276046552900272405637550244621380383086182575588773164084947369697429527539314434255563792415954096212760230514541354512751714197138657996736246332565877263088948880338003928789491737684221844792860818789493162967680119119008571845953317838782741817637565444509791652980065244592404866405232459600483521879086585119130154965793933038379297949743164946651784637844385091095758759094456404757021821472930886727460481327059809124186445797896541565256489831264614514589047045384747292575721089614074631698385304411422287892588815748098418278232961116981053032685013801460143447596100572989724679806867594884658755966993815047948570497944852577653941645818135310846522943226040766753821449679818573536038517332724783658760108041106082727376897210415571189653164049175139786630185870798935657843628807532420684548684854339593200645330133889145225091175354106175020181673159018079546526662744099647409330858615241197199292926160466277272215876749263559122860954153062836932652823411508546968953212900496805413291427493623796757259524487814099258112630009370316515176296987530919215004808774881046964205234048031509703087924906734334497875401146059263627311528816134030581039496150941783592879581661675427626031469207390152392773230489907193611599107782526456427812480731628352856131936933799668761339322053287228994133208111476897256980273538931555297025006067521903801573602082097252895368127438225374235990156013270916474814344318507804220252261222821870814228335450206482918329303238526147699310668584958455830775239289199597772862443015832117214740084770975253673946807343217805851848128701102431179263916173490810152256849697765772203953680848687097071408244296525264564916464458210926574322881569014676882985134557001779576783175143210895332535128257454572745671555963851780976270192004789941230586516134639799893114301498838058460421247640174842368762138281908956362870655875816745128134926646402015699099589969837401409644084182135603253572292647489455981923328718383284140077826675443825759941704136862914895302062083137735170795163838267967903161974761878828937884018116434954255044878601274612489758375692233779787852877975152262157044248826329184794353897606303988004189540189917648966053092123092652265182840730473819361135917004382715533039134611772825598764057156876362117105876701566025732142144676437870261761032575107551168582516039332413552742181428334815063793773208693267067303220262226046454571017115415917302033858102270520299987184401762274194136222527919960023342854952196368601124466361421015189039603862567380289437389739887368869967164430160112079720954986432870977951490329049611487188997504483629414566144244579404567395032424093837080677365285834509225089361791537461445241188915153609866980931856211054058112775899724228784816251395793019795231122904081305256116805236737662101020548337088543165322988158867048551970786507175085503367912487638525873134879120930576830487932924438780417984050809583936523259947874063797050197989343606259116578821810717529478311168187141277444942045471977509181699050271879747641633973058061799076435455586309976832089079596466095605601279164199987928003079445951577760440690130148446067043904076530160062358170965786756630930775072343345333395370474675470500090576342240891383036224955317722260207138149766077926726362779464196865140248432720388167376135387711259088549413396343925712609607158248963676002317238483736721141031710702517059520278586259979381171409039781959842803470559258475688115287028613962939428439873003251830559369996129415586008583888475223790633413144924065701797979610069439652707664285050628875887445228201502883534036735941482189633458567613784944887010605055740088162381693368837129949493991094887469848511679882951736895233376191937341962082181721460523357490401051887975866222757080482896010134236560135074097904965992779208836648283083474528540128956648852756591732384018028804069237707394142097483307103793676632185550232779167918486751894477969757095450094578723121463050692537139061651352469287603668153895212661664037862316079820831143185411034550536688002765549825966298693844638126522385561453514229849010606290491026813734527089230721602239733837818831748191192283876395631541678163014064379211413890355570473355381999016465303420985993743940473324483570207626501146602744687034764028232565222206364365202382675030791135603299931349288411931465430124989719668415078550121719440389246980092507786033552239760437859108382574518581473209002276212405994188141652431519002172920008681916678040571742377391030960905593783755677276372454135228479689674985781713270355223808720592156485476950594195927356015279449351336027593268392634104360959855106545865710109945638428895804135853949741935383331957461449307727224749948230160867258238639233615837998497747047116362158037986619294161128587906575170381246302552489234305096408515493950523027664204546561373116759583379750023380318246791682673061142613192708431728312953854918630183556537327916320580463974124053034089050580564224691704471601192542845705544401008249935695305183441336262165001585541869859658230221361902644394765209036671442160943234743069409068809329051852037049350839198730789358157987392758271732034937232830316917350201941587249215089440553865465798415101902036661638747921501408340825442455004392660988250054975922242502819519431448496713169672320870065161133437039773061412652643249398337940436628812458262780641715599630100826119951992085710438400418811952192524362449766031149925942990324027409009605005126385447325034703256241512394557637175978778121200093899798188943972189928766403888869052615843672938125594941934913141854777207227173333237281959533275701497072941423172187720428340488827698972513896649705330314663241049870879671780792451135225099086332769901280628846976367325206714120928129179202457446701422790765659835579042462322063554582930923188362116987343903949757767411659390211137666055635648013745685974135297323819271402652835077027635746421387631454904116798460308445528247960201706244330028253445124178735336200826373053952603836291502863004066083290888032749625587158602392281112701154289866769176150069146314900748481090907136216849939081510755425472153184954404013423565607968436341506024735986647734993089800105341014317257136630275070516605786019805390290867852674314652141992237076553396806180534273777834161124103283852502769814559956220527079462548886266197568683142381025684445983603645369787263746124708954594731389310174481020393579968108407196807230985290388091146575776747165861255981039865939237948394734768001826779481170364143310160091076678476899974087658890322082961196325535903441464993262028305820376434892795310433255647341275377542476251496010231502723184525935600985127865590313260442205825408780515358289267782116937588968094583579400912123828527408216745535427904209114903474641306785343552158577696977821329188261017709531061353688060070993767036264384801675324075766387716310320575443838174090100787539297362187606145089000297684691304615888499669039660602924596239560310004153887395698170782405442779431471103642053897067951855304401081000451344382771148942771451942081910374233924580470209164832984467823741692170132479586960817674556810297792049289287917898022237221920224094795658577421280879424520463764999174861650219687100870665193417689678832092268935703387762422932680654355403709347402280153487017300808995502481826863895367735747320861856797414788540755389783199174233552830469417356766025784876845988212511710909920206561040186545646821169026578038312587118075436903223726999860677384207116997699664741096699067098832732252129617887511179406879281174176668464328807376000373740775529584892652930872972789565831611422731526594594303409940642456065482779740031575712997832894756232482860532860834806895084857365868097354825691364413031146433447522068766426461256737586266798252945882353101504048202506765585681150064111761971687075923469871167715894035080544202576947141550235750655670850462515041801775460938369999697735037635204513814909849667253729252012569605210210669218321478874937451939738445984478104759065235753288408031923877333273830641814915545929379530702967411019597582998351207697862703504574703019062312305548470101208763624398830104303094967077630589178489775952732396174136950403166144456479133232893864749920219033830050475869977427142859425292439251723729084264328989077203567862376364034048005375345402524731983135542619521661357652592787210363113498319095465353573272636234930670367126182193567502057105600743803333026598261338454557227626574413116347835476208752325666830695882002185164869957276737640457502104555120902329187566105939830649618291751535796272771255594036248146905583697921513775470927433909726941718358996691624621250927610568186448236081178382580095597090985068427463208495307769537336185793760946288007688253657038934952886569344849597880072074116760697722123815130167637313614370580168158138078287833654905049523434244697053928930858014810394185189289144432264736354989651799744017664940556891439583016104512949692863120345797516683744451439457505259487750038686676238583148305662872899734934240289476177834927834578681314483966533812076855958140675652628135940262933494575148318206734592448241054795649456183864193447929186892904626941719490988174518987218102048125291642237330816259755984529224602556466623075715804614762165500198999731682572973354396237681238848990231841189000602405359136954407465319054219877639378148784063034023540413575697356627623985988370351033087983711690311403202556149526813968190967328567377706330597891936513889758264762323809922910015784930449125682248714639842113327514854086694405809717518174303599718002092557405829536590874746666318283865160494917032074999105613073922940148807362640205182491668418245743359764122860891794568421390957581295019170844490626503425712002965838500962736201874550696985283815237852756568243988490519690240522754676742338870134797574481227514989617148652573345113969892644492784768799934477011594160353925821239868669626216215286848880302573950366623170627693147188110032502849282994302321011494189971404136583621331615475598457462436396355889550801890159843314074174626080990947785490784159800930740357270395515068689371740094501528375616325409752006398217255216572548373634088758027562889193644736236350195344691330600233107984739418058517912613876333427655514999856952557296516924325617411074025998684662918081516600631657329001277350255212729126442428054796223795309963093259036198318862787258776752214999337961861959139553812112115187348742838682329571363684247210618719979773170091953138128713857838847264508487665542310846206741170157364020774178027420490364919889189798657782767128100110092481728050401446368166869833901102934970713165677600878696391835071030438170659955545878148148713180252420920103079107448247993036142524424605207626785707072982859694202918449403801075238647357398935115312254716300870057717423559620031596801625170256484158765393999719512456243811669898712706615062200089768771722583724582505696236069643391120378789805517971543473161518051833826529510365721906765568558143717988851803511458072136950813561803135195993448912253808017707772406852041581205496239884818802239871287618468601559186015687293164816146406752842044035716951443595881901104741394395906246574204826412162655130396226809222135034736795478234586554967657150555974449567627684968233850316499908712139931971785384331279335991772501588948778962912387314366791969714494681605744626079613932943932320180539402544873035062494497035860093936378279193471973685036320858452588779184597982734041983627430646714905682939831926037797829970888765115299247841106430918440182508600486936464470117165785696510229936671581932036746765190631686749087226557444787915974159026877451433772394650996805514782184807121668294502211115645131874427401720685588824873366443835074246811979204357786009556237429163399907486008727871730040435385244892912596981816522977766549371005639959423290101607195323165582400619661401934415437047554858203554169883804180403897038061842229658580855208341844850417061366708390846973041255320426337306639245961245391604710853067798093915489276617939558939448578098291795892073600835590279517597540242654956476985730726026206767119741221945137878666519033391482423956895477151964512772978557643656213311595878539929049682143681531626579249123236821979780601601296437983234701640837183646985772044961434977465637743282479821220020000663180040038857758779805583426409416710356608063125407900270082498834191987918591312868628300609268544863930151812466674020968683522259101187652757133379088551977406844711631394188419970172486622658894105300741149190808756679781765197869032285882201844682951353392514767196962269338395321737506184521553005784123180695383878311056389399605500826745909746132482964610363963129812231421003077467267676111536311311871011267629874173562315949871356400258915975330468013354809226578170553380742175638803432681843354992720439977210130800492367566284428393295020054748772805941231953014909670551800045019694668855903836336582117558751923796531181219624007289987207573382844416321674796402072362596949902636460197568055792584506485991399607924063993927524214091309595168068885167658685787944640559550234129551739095443422001333802100820879729615412365466575445936944263923212090599500645523684882975203316379124826245614377089386780487042677462732482386912591145011103416422419114137872369163912332888827908243278477655907045761370725513014878425559962198008862160283589774396583705725112488912375599031457072252908062583575858736780030577338948606223073267825917080141514796471022384314150451743113976394727768097677026370479428740914449286810174754695513321759187859200967741833737651606038809010326523960863200287246140915523270445020800954955787003122084933140508656608663789955382937646046035882715378658672770719307512296642770577329241526545480317126397959798136072886019160324866607633505593780011353816765282553593784145615434375505748115187955288687783504859392885772611121058682588454976500745926166561812072099540830925483473412441119756303314592161842556917598384166965859040416109738196770019516639093556633412206739736459468253579804696836870464833644258794655956827670337406823202124750078785508233983969591700729454328974645068898233107895419466804699072130399324846108215637735551140987110210820113258904112205178149363233177101914221572300053987902049185270445083174697624468683266221453940559408238463117679524204746757917752546456790030311614954060043190059522489161353498573782134728890221033863288988389532073085748857114580357263994511153304889793295073565569408144020384918025906124576785155625687316847673127811125669563385958943344244327325620170262286108919289905304090830535603100397723534808411941986996211684379303840447586120839499666445332998833295113895604533168237196632895804639327254809296079331507534073144297462205711766561537709972227399451545812978407204601365447095048604538484638518675983443126721380042403408991374118439024535871927109487725103820521288137161534674295456262569133804534877569702857068276570702866305934865774192216317290077344726075471875611797872848030606438601385793476322832560236469338525616749425671466125887953097748991988436083256681670985116221060763087692279055194780913115981464013122657243307850026035318837942843242210297879643700929322176452433551431611200859494229555073075895438859445093721343396033360684749894432948067678244580154707023965439166326688648823233574297036436320545533295934688193345092728928114577573708855995032747454064893721217922791450525155634135062130380006224136087352332269273008178558210723873181278855972673723483411051787600548503640220557687344515828392742064815618490865836614789512985577086002508511340381952443571515507450639940338026683800923347665338997031570916440063872703077556633103366171075859188541207168810466294708766185126526728498775296733579505443765108326970454401830339249056830672052574152617639946086832762646910328347594219395846968622330346604077904054054099673987200758419134436740108842207137619022574946093775288441095716254548050464885565762849625141925920954887806927315860220453376660966507595095284998448080884647868469546958346280673319885649083850547051095390569143846773800677788459989149016529856377702605093607096271302692906594114009852749178293175997676654713795682922842901703643974173354102786895059601127398054441548826719255301567146559550871757795691781466254452578884241329191721163854723156964442618605011707254560220147960023521323861305044963902404680212064831219049357331484331277013557479510840097806132591576219192553990185463822208223547450119154153015022424765822765017215915352407153205038587798460488933491726416926738135580174547317485641139534081671464089110848256875549866666778117894071820777743271871244228930158351643670419529612956780322786293102108770017867730051176685793408121459814938706056093434159827291111381205503418504948323629350450523102797353744803240013069156051458808329739084122303972464151142454327539006954425162601683041151919510811514244664309173932543034536769721023218194541666566933763280470585247982324946506063019607171434555893023797003890018556622334464746401814139151372790478607480934560815502511509700008063904432993511819676423045543515485553537873227868990556044335495153109658763098839420555531163178838534319333007126362658366107688608024426667891086651309229919708899890363640097640615998394020779714121360695241714215771631710802139798134207415441059536289558373065661899339031058525543180128770850213924458616212890548182536450561041292207135184152102572991535044839368797169786730568625314521422448522418929173114766170035078376611741411732626608286936922435166591964933854339784381573244354779322059112950713857411522336208203308757628971403932017279289614042238304579902108023148179675841294729311165813260953750673804033854013142049112843517162324576313445951180849772040611169104245979885989576990503206908484120171513988259878368094716556505687636158212206729674100452951099679233063612243798464930061340107448604175541112949746679779006728521086120997668561315682848942659459851104511830318662462737181953587327917949541571848975964607259538032165837254603012677598826941684271257284302875081737202368522496627766813410079379548129460320860924348462021138528430295121735149520855435323315609212630523106925982372783280583937651896999831670197553588573929029982300101765564593952701829912068628883845179658172152122203497140846392036270047438557626179646808526992813084977080560064941092008070532245028302470734304295775947696703027352430855591976586518811507230401157355857319790621092506887047777892648931160787781683204908967178203406416209008803026031055690447748856274325701007226322065284956599439310372660108809276156921010066040352962676192443026286360645958045291161488954644862767270299058565885340612517195741041304897847137515540847034657298927997547864469480082812995745609310285784503401914485812483979798102059085022748544568566388035365497780995098087697077933453676228896716008339106131818365746549359208846724250886338625099645979629415303510526952458883557370225589170101312578304408171744942712267967103681970174340318932311126271690321838635923779850795361925197704861719071662669300509243664191387993263497515773386824637689809063749622645760717853730979378826136882018004246399710152800424449784457861906819748635887525442874989993741412025915411656797311700231639359115617209203445064332385766241313542430659626284596329913086767591580723644487207077122272087925694314395517934107458116018002490648848076923605739188773307433342976461450982914242894677167286627164599040016533572546117651564921260455352984430732080935808194194053131451331207378737157254840474327681089383090587983663560007875144936191462060031217752547909272907425315753187656118460852847141765242562286176399936403589324951323173975683176551582290898220274248269383901111869152839085702490834161755931875032228992249017463703452519203665878750136461736630634935779186205969779806141416153444515244329280603225317686797593184002870038612635913797946016593796825620411933263504604394395807901676230921355901825234139037364808586678002962974390446580104278887202207510103575596767284009494017160151637709542547046179578195882034348982309714280698215692138965552024669506184465282254114146531887437574333203316035525976332199066479098676991097090764821303986688442428983562753355699638422517170102570401357774370381231242294204244241850232895682814645277942214848858027515398798385461313707759128168718124241345107816216072097730836202914013019762717805855097328684502571792271524266432906150181334554883590836034288489695421540242560816770021277384688476596918923283142334000452292276920008225399642970241261452147628532092219892459234924717475636418718562673750361519376256915186589223765349530608790235010446669661476001165452638191045346989152743184201244398638437874590708084567119755962777214243192571939348725394500347409110258383281052254907937110773392292917289322108461049426881791266956368077615992405209922526034236546900011656164166590524196754262377989232581649537912293702307049179816150294918581639642008809486673233912166320392600688673409961151830651977360316372377006199528321322816151931498006488843158896490355237638919249544509282920746072794376227494444295405913115356627821360927051363769235325548088411497638285608754794360900918688349421380516053943157201060281102987837452481730899692120708104093490147274908877082203180555777153230478003130795248895789704825019344185897401182399514893400061873315266018454539124707817309422331502553258453443898025413695186396008092086438600618520057698373417282313516791409991270686279056982170739248715028289510325049834591051212600522396742594899657396075896666230637745751555628198251276086715901519936227118351502405772116034901882763542669718227329232501233824241089649397244444617332735407971552795804733150362967074795423776597306440478351734810063985681815822140493183290110223588086037716988955679077956063131503167104466980220870955187333765032836006860093482977751223253879628664926687751325946162213315451513979738347178338307579360945346083744088321071153159076778785432335929281637102618112921172185415028360584280503599368056623909748547503532483165912967681073064241846336896353603062336673494665070565056032115816588676873347279660188214555383590193059924087171065304308060949201929873724601256070399381692248273255887300310307223820542564221573231791936441607057803456110921586442785930885157584451822661230221093154422315655286780800988208752393191057764697543763278617996139162915581870813985993603559777246880679322594178583760482768509286841601160456544327060745160957599954123970514657116181681451156396788556273451268222839437893553115777490957695008033873898492420821858204938712520548257667536697504101596571669069608822523869915768554196835197436224169299814611535087770200869474682650687599656666204783324116119318260170663348495836500157098228901136382073598302623115909922690031512384017383282746487460239692013237745059959762660566473887864351916100488519626341989080652341163794816579506739931954674270318884857547220472606443164137218136305942313070644244331649132310054650239028484029080574352049615571318377614169589018326495437934578519344036467450524774032072159714210740061774459033283609830841293985676565847081600534181922821429689124797199983320071786780433865902619054643320360692301997169043133274262249265093386960685531387669603311963358256660320785166602653345764148693508428367978597913371663547468426201992083320465458113163352893933648574146962494141326510381307844138337355433188198428201879508710985782431399865008848274134631515718349917434727144994853945371895345001530924132759160878196102920650093649137036601427308445456099299012023463382404836127640920475981870055307057848012020929636899448522138271302118226299416641896075347233987899495192114193524386218313718385838098402795771278815554685877734631896719986240604630427003787163070190458007686071621936100901039764865593886812477462096714881862670288321566471112473317359282031233332416062225645186882606350078922137935400353256658433736868993372763111364553816155091489183653456281567760238321961809735205186439092953329361393144439506313626012423727186640132295215378330945075922329538140563946815258851148722782176448075640258594579021833104516314373745982398260620437988822959236973842639232779384912375130560699094820863571750985526357212761276328554233941767036639237134289898156600051958989328043456526894006152985027390978786516417847911750327055211381910919073728948586120531060880305794938058495994598191133156001265664240043530457233920551237678260023324099726446889954409078692006895145333793260141969307006112287457084741067702596479266713526966839126225899598817948393554711252652358997450744206632529000209774814127669206260406218040012404796098368264533896791613923528723736059490842907358622363047793233022109414397844929237636717690404116499660377766073180014256528889395639703167834066397134231580747701663230344073395753042442845305705900391379181093071127708509583504926563187154751569886774319361387628053835517134238928388114119608753440926851139002371022839289861690590258394118773001256018061516031064792939723336639349418163537629810378716302454614714990466116134151436507579691739665899840313291711425642176215497415525245355706280616987140333995767633780753377068102598197993890993304527816014450923704282374856358006572163996389754072570817397361604831477643555063725365835903409523501708931340787871795622284168344269383107629658337354540599849072173815881590561530284271841778573538978392191416396799572343770290718923001964626479497094229035107968238207101508568212379290827782198012870065577650024960881437737440895106618970887049032175114481651427819278562316674862770399854260566799489967224780829397256638916934333381461436883738657273851133096229812286940023071411018990961135498233925267839130423877470793331877919931951086803049344063654660951864857065498500823592402962795638829956624769979772329403948887042536518740008533102387471225236118268374966545160837024629314091971373981236726543699618173840610622214750241026088828975661251884666472012974395957361690335831253985737477190329413504693685245148164571627776830053359453904103922489782963493672848850857239047309518735445028420497652783225811875802901656472744680246367774442023758066136642386792359121014506503286043925344527298790143901949629484757991765605100656917318708875194305381136133036595504903863272930464557876499558443875639508026377275913744736680600571518181642904231863785826919038683848357933530280855714136472270031125647434957163713205183965030825005422836512712721696998883109714421380289337694130399673669756431275179967779379400602693435374371270624235930050186160179980653791824759177781912649341747490078811864371254537408579673555267998320742514567959587535608535887462250850408596400687812307265477733133428816207308684748091823780231333020769692785457490596333381675520884396725110929271124130834144966309259651819583780948249911470254785058007045404902790290285256782947783757023605380502762197667986310185005364636305636779542591712230524232936627631706798449906586470036319477829354114176777088593136513159894633907201277600820726231616293580239815982307821751964860834065435258328328758820662347990689765413907128988368064992849338786324025664731522660275429300550812144968697574145242605926139459157597936557090175657143309904032610843841828378228922187717885213334888361124534352233177637365263539994393774010326553189215263102211893352008843846287367264245851205080472563799661048713574383805810602363704009796993915058166390117178981266723920111991043821632013852586850538527997451923743547763321694164412792214657681411758362035319793157733720104397961119126791795840874845303271162066799564403561643134480668246640475206967039308955477074417010006382188271317500535626055740639736453061151672099768209516984049828639831473755936049760566100673857110771234870376093458394929344959712622000906982189708304018792772996379728965683581744905503879926404320535177051743283682498237527842144294225623672374219850154268741412865576834930536515908326052165423466696062954225818617291486471493974380246389463640336394663346011432279000186422624335473880566361529071193166880101180070355204144362197007126732033899054228634258729138742998066302484497355599418026357635676573491367480786130971741855615031435947690697895065905978365246732904596559809543675554615864410550704058101507630084130542272742726990675551356291936673073538095245282288824459581161921263874540474634066538988484625248271124627393139772891329603669077169429070185587302791284086988259977259353480123595380732867171105616690634510001788892133443875583946603717417627187718499758924759700306041064271021651656700478372344356607645148449374317237257980246223381582870893628294065750095056496666352962802963349669252121152782219250543236630018877756541773623849611913120209412350192520251043673167392596691206210391651492163585149961510839503875819623202197658162921312806494198608247687879069855506834222516446463464812361408075404737707029520203499503724978086582342199176510793232293648893052504140566406951192579904355383320911201896463988557917714048779045045354895653779816785659743882793263408696552700024579741107030181914903282525339271769477002086783922214997503511449008077938302136625479965662408063069270940738268578246260758433346438509369183793982467231054658258059503851339497603797865182429632383703087720090566694465474635284667312246729016733244723916905549740609029346743109379051830097650644553324890236805203418971369253168733143789335585422873373081953590003333356018379778140267156721438018692954630079339083484808618753634750908968115486229297169624300977625138253213305667749619025985621457818817476397246572775841405149428519765734097838719168211808646740682489197967779670715130200183735674729117062744933741975112784722004268308231259112106185538707765642734124423121418222674013620556722699130364057709037077175749380005928815011366298254410115996644244778478574181197772149580812440612587095654556100973786063591115459833185163000899714389708840931263787739737401324186642265826514733400497602685430859656600117179174013074932374945878995041901228097405402894219249305470510324788496869008258293266300900650451122630218013401818897647541335386094081175068098001008771455099792707478746357717227625339740513510419058572281439844852132784972866195009070107738558819196667112351610187546223706272803109502105362403533485662557177844025625698479433416923698024686418976302888698297262909804981733587521679064275020140192059827756997557412566554882011221746595667005803435299686051935861112398742986796523804566968735506464355681130152248060753579192402774825384252357213707193148606782402675184463768730199244466806118816536641704196457228420491699569799632686945972721527120387693667658501104288015579282574038994004751060036839987755677802149286337436444976250419535616104265073426064393146082547689935598830626907854428892199959379753705008150464458284320851800259711475901214078186123445769280168119929259287514331141330566957875960467956877137109532297882368472048765941490953138798746651600643595316796007576126055088227024667527346594673317458176079596620593172040287237009934431809055827456793857446201573958817795035719238325858381651517815066909997035523020845376651813417890758262490200279852626920235280437361086675945100705109573731397976836794719773541051725432793482050628817884405779592658472209273401521330214426631896308347005310567969504623855592262956900810694481669555303548456622354435388177116006798291279234857201016990451410630905136584606144896818374729767154018913874929509698058005758810841268384165906812302839385498015166958396333813939324061333742281132741274836798221751183662741621775521176060025199848159615295905450775635036786347389982528975217369676435961555234522186226196518435736415813610811485255815507081505748039311032076519976442274701311618893564341833623799494247724133523207946175619484911884717614924635397472008381148068826227836945711040061316027613437043280821813107169339537702512269610514409502432849479876053664122969546427797828757863489299532848750515152329169371569931282308092182619684422518432606603077443882156344187035765382672304750699960593477844797347485040234949972990958166732854049439570786463108645436742623530894076435213360084331826957585657959348102784512937206836036697486271758342991607138728021594168247030809717411488380449851611208102065921336978778604220357079922759270208277525953614323739782387428665157533612889082755484738789863978574672049891103532457332048166321790876071772499405185176624229221261646109190636381443295115154292304197580851961956952726503944675151477644442126501339964779384781194447978350501655494682734571377740775165899141150957460128199663227857857896482593953343140920586107413425873697083785722752270708100487388213865503807665783234071833372915832009959508001874341148844688228445840125960561994730427416032675837573660197878554721880842374259360725501033145773058241981914765494886876034492586534907309562871252086846161664450733865502601707657886661874812006127617183538068736862239549984289696192452056810849049908111491886865603458828252294305608137144954494624190437532005504719141205560801744318697580738671387848513114227653571733937475912730757506292107524728116079587147049042249501463826139920219897439320902259578147473932309348393373885596738143612462980647972534273371504745778910693282466208265101119256847942135251203691357339133635188471960914585860451614727971291796317224753390714538438693723206243448334573692605978583341200304006704468953719415150856429029929050397435861651704456356358519475466891585074104160030406349682188435444600041211511183003215677487893669511570194337350729854171069462269589521209146586028131089104831169995494123636223699739798877832086885969372725290883971406727661552472276426959978486508207638504238211977979805794724454069708071346785582799107834250809559095575193811483351829214691878519243379940152932418860678467462189527966550393859587734641873837460750445660023066728951758658540797504886863646563633750390402570950170587456061843302607337726407596669016673288067606588818028331168056757245056537577576706060947134046744832573660098452153678993804765814336460745240423887127857933739313863472046635254834574877652065626451001477280761382200454339878382567149799292564209746512902595164980516199696709270834817341233862392327744945909880037295948754303464230606750957608987575703422500923943636620954849365408111315691847279043163782085613755459033729945481384300816201482216594424544842948579413194897020968748500838067703849001437244063156737259128577275345895411661427058294446913688089386008091915231450056001076946118684679299157835562510157640916929210270094215875039805564559330310281424878603312248519774030681630661072178901395508794767853158847037951713204847571246779117024912848112187924073820136027076158081473175983281575264568899949411369160882226963802033243103029804598210223851179480579099545342284909710412713346385429538439679361475766277548029802253343512680009423744772072953738232169854623500300472457643042749037224710498603708614107642268725245788946188891961343278641095490110075558480683096924444930715826526420570946814515977795670561582995957562376645734454313747021380626770912913189073109582581659518733569626168336447011249104961729826775213907430545486269086686373000978242097514787640143995182063444409151470361187963357319174329491694460762618022161249549079376828350423258118089085229931011317349143353059677908993140112841073718865231013003381562227717232647525171353737245301712782649407747231341237071611445930034668602084178275311700385499537156701948178252875983702491959168000990584808110177659985349758035799798206197361336765363251552998015449488274280162446910007402443801329438282370792725409945531184447793338730876795245363214731208150477213173116684047102747154644202579693611102601704402493513341116451886324234124118216119936417881345808596017781752323410564425598920232951932657625206762012511593335604526068280141807902420008444282440581456027069273948862136310730612475050958324034128569257437215897320973741828254829755620926116822923015703028047695771225630916838368210105788153041835215298652061741157600113726951039794550593143700601138357238497336073132290357262794637106728280055278780814426783340934237293831091649458209688995391321714392066277748938962598399448129651650678422265670531617883838610449822320502811529456154011827761129306966011753760876595360292463364839583379478859301351216875302525099297240604003831968375377991182948489860150991843593138967122783092990457986270054510606880617661422437385798712971082769560769636940933780864725548014567090977994811897005711733535628964097302733449155509817331770566843741194801509629867053420412899036775443698859330469855653414378734653042201901611048413905383106703717891640535874539659083961971956494958633013884864029736952839015993913755753317340023899314017677018484119898868133416111805882237217207001202987546330393371488641421765833186670070030805451168431920547564432928377645148755759809021186558369582900691505244705812367655066321538215994908823453222636538933221476164141031790385523278856037919140649519545426284796039888756656289388379654843557431993840794094762291545768118075127177415522204063072163996351154369657655854248769953437013385124588894621531459955027138946723573537326720911996684028170203867321324287697602080503335521756702066153903865226610890946616946689101155156946184335652399552157046606105363233966805930227361404048267464536148513074843918509926841901704902233046729950656880292215868407235054621738396825035695004585538067633581441570654824267305619625848180341222046804285980887567471773376067971294266940112829084142960810751588752322260125318714777758750563351452186277504615533692849136824203765465857576087589546628494023921370203970377886965543628368230511172687288085975864739549467631858161783387648482566046721608136664126415424960755962836815331187518269716683503742445763810760976059677264329796025994652966529888017271024766401583614451525367332362829249242317697884001914702500193591633691668277468571589909230881630620157255842035922478377551349932794903341699892621722670606772515153929832580764089549450315110279783001926979186760762112244883769752149351104335073813402649055971281666912480631656712473043013336207080959115090567493146806076980022934688831684044831167811009044620998742737095543297435211735426844757841369690316354983031639845048384997776675957920516930603064936892704138784571186656666157539115742194411988482843481061337269204346557216787005679029953729410456506989241377752301540092102381995062244542067936207118635944197346843868711709761766880161369431197760588518035581018019026332465754160457534268032042468221502320460244031268509846381735206431463896949688889704386012184903023339898065461038836384680865296701993111872733095846855980815540349253244667181259832052151018866045360114010863597017960575024016844296887473426647036436304583693758278288649126237944667412568534178917470513451799440414872485594524187893168725509578900897783831918441842966360649341607890546535583521284971416676861258819999429550783014487953898384620055380586391537656885770975335801516240614379913846986316262626235226336559180376636187909164886709270216176480837231359429247953689780169132532872003999257022710282558262456754608520318637448010364505955197870018377145934015041023500420723009917963890829962390514212219097222654982147941497731121364193266036972707693372375540796658104498167014367175467271248426120183936469616958084967673369518050026290018233311005630170841327316727448177735596526622652721715482998392466563499117330871997250242834397400369894369227393248361216364326107094275986510972158916085825661714420108657751619259237903057323636084979554741413797895982266846287047428563348725331938611576161656509970170936829462177693825805051057484906724816547250380186113783234318674590227927016591195412663117836024533391116419892041906900651618154015250158088860276040086815381098720964534765422147777407771931526980815206452744527491839462221416517209907513726539045544323653664257614946358139374781334431196992310657622055533207765432310424508201747343328654596584733799886841975123671241453931004615387740944222024097405395315727889842521402051445847744607585638621020164523552179095059665504399089549063034541049859555150883496220775692925659092656873093771433372830844951682844879900871032699768102223255783998694172892420148300366310454880658198937729057161313634638417538638195711347007041888153759472849633100147164385648235931922950333883317264484973461402305589008699451222088258538951710365010900283692395243149391681812283476751843106136545525078705560084132505413899034630828471352468264896847420044183481305349934457663679504626271826888562550603230229187090769280961133091587877301978105736105808990015735259003126251132480342099597681573490787504463671361741151492671593897053689575675909719722189809718766098858442265799989130127800920396131378376713790918346515323602365191508433365518968087043050216538004726622171646778807184733769544106215035932195271872315541749018771094829756900436372796009364808587219239379784747881473633355289025025545704809980323522673457746195345013005440700428086920304607290304423744096558557224043359059542085327204346462556466785338241055637465194862175825590361415934704010773431934707469016933386790656506024867887183351938870160989834711912042511905460028287114731985132274988802449974741501771968147167697498609099288480412730530639731209138460232884056618891734614443349323641842728751706070973231092936233271756640087598038097279385226971976966862522729814828975476491858542847575924611493721599898692880733806405408366359497645964395681158537008823941586609479052242095788375695648078447011782425521070107056699405930228296059624224591163546353145363377179111702587479129221780149819063608508490408738774885961908520655616362114584308669666365191939419122301500223968943225991470632222927675755087632023589662266241220094755511028891880645898419686231512644882630796355929168600540414879160192233472816999561532821391521918345802191823210330797320761117203185097204467043076958654412131642229910438209368860142210484586974836309949269417271984145934770166781062970738188186530481077330464111885326375754366768163933627852369252890740250751404811359992637013055435561978817216298453550531220003149241695005708715876575097951733496387083609332587721894945303447954062343359076540299010678618597615665790905029898096509968810543724584289806068515429390923489181692060837904327164767818412237253272642748633822088991445539566401957504312148331290774184384159708644592232994552517496406993267626668821614281982736356170423642250423971507406994434570069175635086022642505768687173800669589578050295729582950694635863764238847160296669569375988720890987285438843014175036641992360784784207787633667836985533587866862967224036851789710577172475142379960007560814859469837014328067383083874822009219986846576257680476130526836720390218725787171703138169682775822612977107898414799055284921351464752248230924924953920107183631687857658948579354168701647243468365936715513846770592565457790413247939260646213107610655777774788587327020296301191793209455908279669603937114325713994044608775753655461609576126991957530165484010855473401963947131310081856467392385661021314103879217505185561739923831182903433210272711763925174718487209158072129010552765659480083618974588153919940249104079179920821780081624931189834498212902864276171694761225012079538446923976468815543622543418459602324635946815318858758860906134774847428000582740550749292329420077267338489394107004847682544004157055736545278500894832086320694957235633587340357877842103134253676239020854137637076106565943498334118926287591692676206675993633778926661592739417568773300880025445124621808889038284542376465999003887826674027404584835851842092784004407594287044485585465844492649882995306194088813072591458376603913597465218334167713171087549156557403153197866770583304462483118170314608581754361489272767387909815223702287068416274876950493287694563339069716112615563480397090755648102397267317609244463235157962076026525943431125690966140924073483665077472681815355226250551636446859957614636857225154755104953704473494687463807726041712530371087090511864440533022707229322539286183613822310548566914903147986886268872396741259584494027602793444858358528167345394067054503518827008160424574799199011539745938038268247145435079950718306419936715140084117979247426670234378287411684087443424329325114172444057373021790055697905768506707013307161599151573808024815210724020970535204702284083959201698573900545983820385728173980635508645880923904462331551932425925087845486203594814597454729150258815469638841424072357528236841731805912256075590587080088328702702792598566142961577653773299884611510828296578489648138410710496398003430619903057009819324957088437128011341148524853296569799068803928204081806191354060505454944453764560122415001033339929003638115760198484578799461858637090698724152625776617353036859845242953042431346163675944325027635644417816098243164332042717684774149058904478586176000541678455843755274522271465270626215695432627340291183013785320518998569350260269564849051813214324190795997733956992852195932908268122361645779474232219366584740720626588668177898805289941245717878327596342482836028059971940202272855644496908678917218943543789772748741623309194692982805584388654748004247847559453983086851989479670145061281799750899147108725277046884043744902290034862017180542050104076403973996213623504376347424303469155820711898006327129726015429270866331315683010355443170222508133221153309491165775266169040734495546163438233495935588257150444467756444135855718622457788944349718058516049804322216344672388658015503031542364714207250125373519017297820415615907104300470310719454961370264749485244749744574357517375911435257119815440046002632008563270227589666954003224332954821875685930547356442531402515296635627273695881974135067344052787841947590666880796355528956081259887925184690369969955391363360961422415948883432345815033283351938000654042088160468251856947733196248483602218628304037027470481870049424061234092495232037036454361104634113498329615757024654366465908835016164866317329225852477654541705643490581942489448311265102600699574306874276533366255040248019026937270181613236468124662395211198344932764814639639968890108712908200051861592871247732140892210376214017350683655469037635360831680113979966190966019975092397581376648255350500482004589381148376999828792773733862506138447043981397427252196068083719752418352297202121089567647487536782626150993044025117824362158588277436426492735672486545817773436153530662311667764645426866547362596899835086910235201963967648633211788482482627039083814848085933305655367503748492437693191790367160410402675479037445338119727394487333807913774544357955406848323790079719982576642665869003495049206008269493238582252467140278626095894501453545384731102906992882672890245397251460942309330961357493703304527396599600072472923383767886501843509172592228317351761394414371342653557319033863368661393786880085757714888361144806186565274110788379410149089007098954438693783109868286873012003025959096244676038946911544286922686129251368206603970564515802714857878660277423573104587104399397250119940313941279797972772085698777315817798483257803668692511127537300404389028025952811331976387653046931058188862541050397950259941146950866032682686822712871183727986229038559189254554604743136287000299779901809143290201518217551199395214497916674484459838257083533735296795118667405460718875088865691770404732787079424377415704272773721375623181091976136141247848774629718159372816562362993940094722422526957908769557150488576089680130760634554019229464710901268723532652168964019500712044705827874912021823068356129658331366460011785658804268372818890258023276043679828259520641842291323278187177227823515969994340090813564670798922534998152602699047087092363146746929961127211365338492821952286377653272885366338319720374091798517469035132588195083649660827146876594687415418891082844391629330271939506578235794099081868340689469605312741434735355711552222967711707966924768994165041463185264873783254869533905951887756021080363597420825849273998882395787103609069544056671797150175206638962569187525021021809033884717496126511970138122461842849784429939486121211657068587069307520719673185294214832387399906486887645991746831399235920828845626443443406252565884602624049802052854358621228475637317425186247679773297929201373867959084922859591312607600054306195037344056753317073099573466945546295052404894289800175437752631783814822685611491739518841497590810235741381458422700442656261963821466969241018011890307947029552597477128979842254612975564996617296909304404059505594488997869444547734242627192640652359279291632289076453654073112094566788729673086802146953319605302450915671263351562123150569103252216560800784079353931055560762385316540607725665700503222242540329390437529268570586567897016801985092874693064960832632414305802045604483072226420734954085207849061545623081869180879264734660808845973782849651025791125869055975902270806428775728322328465910140707937409401280865521333491527634280725813004265564359536367294151458597069884531579097063294323289818801397262940665437328310777872104625274772108405092436933403537630994778908179083880534421175413863762012908084096921883260075123627483660129022105856501243906217809669613794319470379162672105729187057334122137478471699571161072355688870397187449535890256478796087840803515573528597148648879475629722761004687841794393786036485899145247810282066454785573218106391074529163820355117138121570855465398226272593431331905595457040845112707856319400187398977057815398315399522207292267264220825067098217948978646218236828241752200047291770662911810337774790457236355819932224353246302140047727900993442640413613435161763593355651990857552397592292543849691015146807771738610408545585770548798411784509274887375081163233960257536500891746327642519188828194905693794951277197669258173429748687004061281203236009693136744409379064612751923854212990640014386513081307714575581463413877001847602908567390596708569448285108902507248959561511326624300468303567189847166723238719388755450520343346044396028271526632691852328358336636474043225899271103286695885501313859761919117687366445809722434960694403656861197455910412409396557103762671983166170198682867480686800228335060789082120212962125947788102156656227793129383158151367359274869418358339612916080268909278210578385585024482215378029242569116450542744496678129598619679495341401078370413185579415546635378363130228358974450208967281278079489491797282995761496052154622080131266443671582364522102710812978969630826022655155646131500208109673695276740814873664666220260603395529879022634036607522970135798205966328930969448301729623899199552673908191951914790946504263203862885157732339801069730908542309296666053593230750744213715926286863128767529862272602750827755334683444634285818276414955966705815559178684740727802399436706793941426381901288359528487564625641251676001249961018061488352763756551010253320642633140074529942340397376079160281391972339831262910813447635225022425686296875806631610141152836691807261357538676336786136013852871831193081289141329266233217789015733217163276959096259644898666157408323356639193081318783557246535508138093107729842105893770027359497445296139519046525312394097571179972453798976398820108959480373378086674019351149151899678265684063561447760530859286175683118969517490939710673235584056525253217178787477160052902831955238031360765749166779672034843673955998226098343356661098364470064979251265187922595827784155110423786082196335903207484491369191788303152106541661343747840896669854578103663154627991822579230030594656734582441171569101200732405241517517131468082249722378319655148765667892416637827741727329015560924633851047633689415853949028875478199637195490916777998349354768409850468031296635867118207801663407684429683085434610238660153965755582064772971014888717610812658964900056221897979099810452075131287096604797816118069970072893125026094329237229460717679450713653678469954454174518056716648595525859500222784075453481026012145414481600486086989115138942243448113402512266843821524489836275718566008630842675920164660525686957696851182445611074293241980228877639477536681559995287045056417669032391772028801603539460359900947667432100993995555334794139532403540163213668869892695306960633123984419762497735827180236631614682649250774010496578648942013688722989315726616067701993016378911511432904749960343172676137187643555709251987334438987237200165821466723011031732018802605099656110738908127888912827772240611560095862366321910592187167975082057791957672108148740856491576024906371770289638599436383384817008518949407930801872577431551001584715088010833579494075126901385488462477061093974062564137688649722096462282652273843084091011113843960424058446545625825777602833089203711831457725127258518400079392590374033156651049940673749276478097034818880785618392238663531583010249139265101937632428037133381669731599033802776432904199359699360093508682083193768542841123161469670810682659508789962362068400752892532771261428929494634311693199674189194413441253241611842966573645414302803484462562971667450720003556891240811661953819758442576439048528227345656324049193587012837047609097331007622468603516702219873982814702649836579415533651910681364029995422955499273994252577630561250731342287172614140124458578206788351211146554339831280994670773567792123944301776304366052634236571398203337043042802469587216011380628030142046627333957852586149578746617856958854605375370131470377378136998134149319800515441786370452614705385697897882147057519628213857467325909788652244218906321982287382522422652459043136479471215814261810553835122861637352426328220670100557626296628192424238579225038214570159126756802603421104601985506411172600029666742629980704586403853254091979432810886498811736737509829957324902361898584229859701712713247391771371488256261110982217260038288354201403438488110548567557401552044217789745749065701370953598295388506168364079438199993525823121410564363338950148082759675156560440343049713733264077904348019908849254315118626142568496637713578896216444213297505824605205080603836183795952259504673294605418659612745322428941654541380191505822794474009022934916610511731093958752257179652391775476177298383885191119305204366395990738496259348569704717572958162777504348159163236342950189235564891135728292041530624474635263767760336232583703393625151700271390910308057887519416438562053092960162680642382510820511823114248820065045127268436014004515820577140046815046979207660425051613275415916043364697589981625166126317233701574050870780068506279011183899600259788681486887934046146872513700830486187830585296979622819658399657681191100785304651482342784640153252736890201184986369912205973455666115376126088742871825567772046699354989872551311440642629058486475895905312517599852772363640464671919667126567332001081308870608789332621469391561682524623392844045673764888043417202763193771424187591235955853568848968518878733470871755508325313595498538507214274607343583754192450519150748995031762456955093632475700326124711091676131162080893711221166435355411015669297940990374405553114862118008998043739280366453487790836003172260426121550671929779589695088740169673451523821896170300542256415166850146505463662702102472180987698207787633310209971094243431835516705099868879626211964332757034827397198797544263958060663444919628869532094724572333837419664052284228500140586073527621434975524402538789044936057437665889705237496675176537788039760589679026864576817170153800996189850588538577823859708404355002387548594240018362569273141199089066016485891648822050987283423556004430064592126821765990089590147757216394637071622901614343091059916201095244566862365772616811653308714765963196879112326869436265410659600993753942668975718684227670467864470371118636649368317591172245981818660971984417735642957334714021537893814478485735203819208248155435385984146132179252891213793623365603537350659751101285557005543530648982322196105094103495087134641931533703594394998329970879167235985526391524924879853189133392061979949074154530674999097806343348181686454803755148865158833819619107391654592147274199579339639738877490978036153752148330851498695953313524530947276217220876393484436274914075692674237133704716223316189132328908950032607937858747566520495200407805878430045190150971909732268391299418173472577822996648611796151008907184388179277539923411103517404995890232731636553041751424758993739345605026033428261490893603578318514927473426738062564244972394711680864447938746520588556284907765655721145556116605009401664071668649993387693969997494620234535180833366406477601959342804347191441625185346193014912843612696478247300173489091748521547859799189804614396349148628749131977594509645430459309536421075682582282170597672463901806373891384740038134797580397636035436267239137984057370652742733453483970545083623475149302121172423297317825904481660248340603204640459636823259986241962511432357675443215187543885076366687264553350819368079608557284188192432046234643145978370660749007531289858270931312260905134335875658258389609466440558459169540271118232291716852723245369026355824987035352104312957162009010491459075582603928962949177785704808176507051191376408965428160539585175600520210702309818119157329831953526132988186178711939848717249500687545521555176524515160079664629821854992555796730948963732063856335476576548437998773625356783279198362497979731930518647825997554194213907440184171801191619201040773826162241923629871510263394452830296480885804143844960739585535396070110734015680962728907773151462488474454737355216159177525663023360820479306701000859879511259571256570969744147553157370124212264934186844008702202204588169314645404663225572504580850685328908930475393243979217025774461067104245471976437338016601166466339177401405411141563593903549379138028540264520428818738352770024162784946885956933419387380553964046848310838346133978060137114423717355052887184735511169014225924729835086797171393003565636145885243024440444494912003163446105799308043139401970986774492159106167808033549261666985203575540856520142288139607463808128860211346532292030502764745113868651003990071022268035497335201903865818723644590475847488370824177334485035570128038077977013797927774638681251200856294041867993827493858836129964639172571781658203382220671648490498792104975835708536851563599388616726196747672469244446532773168929559557320915830830066775510980004978915296330258380203336576207143128894680489505416912702045028840914281196637734151803672279260260281000729018405707844492848146943543267922754524697577394212577674884640119975345551424143461596811013059836352439816429945290987577053671162161978603622394846299502410946992145376699471598664564604126403539011256236053310514989930002135845214991331376465830104204363917040878779606309656843976671345225039160584699202310052970241746766102866888684516936972079807024897087952815673005846274756358490721292860996612886989935940229273111295648692786658204882794891127882411992053857939434007300388311480349635526508806299463192905990431137397463445841544954828259385838793051733174993419851218012594906615304193351866621679193321460792672726160188224152582086860167468920732015919208501789280551144523028747898487256792203957886407754285313899229270151665833580864577455395393993798861573611753365917049047621309455246314558323942842862916153086180587484275501997259315377357223908936624572638480771117465313424166410441999803099537293945654165680797874207487024452569528514338868649016390973850546378346424687288392875339109747151442452150968024530127076863783381100990752754733453498851273501635607279603821250319689285865728527794104354923724348034775017406724368583399588673960974006859310078173604984268121938157526128740783588441186417027225627576345824682335692823833663434600230970484984204130022343829211543859443218581738959091279970364245129739214335745175114473252342098881484790790155178687925340682445611840354045096392484926189414820578232951391331261528083759097752214018883236198796202467076604503485532031757014189158003160600176963931591675985284159037557104866342993593771087084827583302333086577705002031522786538426767927361835376830367567337674034434696884122900825277282928375828733631772711473524754209451005718413694332807656948367574590738035013819787480230804703413420302618988573836839553225882033374213879068396572891365188625161137493532568633013636189362826109002248280401613225794474552757325381318754749993979939865913598951866323040320988060851414161669100611579014206690970396603287947905449509380337598976645645053639690709362536198541006622323422499377928730694577979580793189800457381980593928502907956767062954711866559188398245538297692682398661025695687952553362972732483585039582025586525603540199422189907597953028574286142613476291851420969523223988851326009018666858578326324733499774449459293381249976806862469437082820940496714710785474544208073880118213432412643930767792691186992458876029792647237935195030981945041019335253070294629991576797393129817103339696081485869945440055904091515874968652403135514385074860983923439773151220331965824432776127980759607463904067296241429220263888422159080816093038251081779242630264987397832837761360644957961809643327124075144756534692421667262649366909649887493709359146431601083571906940559245850357056061687623166956998813153375426722338937639743067955683211697658831761737414490647964742310249403527155749264349368932184248638405612685994130845412662681364668187603763650288792963030143315369028839248835467815897347387734913164468781348438403197817832756370523705970350284159746505058888622693350138444450532934570257152285757182571227732619203512199568764571688292574245603270122101650054980459039478408190743281328231840403864078754533466082447208586139768782880770995888160474826592925643068661057381824717308011324912176659696700370858131591977534834780823160468346816488611607822361259359820389511084982878679451801870707174146329467555346374842664340313207480977444714753520123006752263695712061795185489217510457014053437955820156854213384906835324050997294840018798024105237724866662851203016630944853611855192558723013746671947078202755813927282374743359547031945120349464060172898559332724829654289984803306551535113616630103307670022076444762733187197794886790651050154811635082211324364071066376549477157540144207257130548728425948297623880864195354555016902039682182610477313258423647013772891090807903801711111742215443951138020299077570503941881632629828252001920407248471389525079681171648593138959301823865631788824616135412928402853002321851463105706277401262795625518915027585660708033456549556773217381675526065707811239089361831511444528810618723374480011673366919971508787030271520084215033871526866178483463271808282061824123886674312260619935591465120460545482915428824863954501407005651590294293646333002144083161180739318089394980614440238455662849965894616783234174383916048109025791893814915420324208105026441944300161102337492718610457981603838008812350361488416248200909177408448788157393205310084645662125953227350645174220874299156635637720512842083751817478722165873547735089382697481884399842361058406886731509973049568343366678258186031067415803724170105700293252023112087388457066929732330540454515852592571313134085676470368712556069799460694635530879758548889254135706493985149424774499771536044873007779862674486774336125862459241310843501577507720549517323052938605013631430461918931011587890293917257797072394611959475548124236545901984299816639547344868543818019794035173798389144657535173226190533374662858469369058769599805604471909599549334394244590333913191694504773466502568182865214629281192576434910955183937562724743574005324817588455734329658653753910523779506009143938099839592804858167270840552729732419191303329917240139633148401571090243619926092506387656833775718573403325001661921485434723852391159350482222522113871116017761435509246715762712091656882822512659784867095479112495040796205393065696153219740725222759813291509597695418400398567777061409652634286984171711785559502741457031311425053475757210492098656018769497781699876938266005072203718879091112411726641584452495747941550214224302733935329621342767354189258167417201032949769835771779056662134052532395748918351857757985341372736335908342942046962213255002992698203268985282810248941062746123607995698008052150414755516730726611131578212000878296533268524431641833648565474724080480637459086318763622705409393461804457740276399164896350214043478946540691708366171353967824377935554048920682638926152074394251242678397381335734437345428862685450920010793452771601159064814855804773100729950270854478934119030915202491799274856454656643826920089443742888935799586115120315493939133588641026512317774682238943923246056201368872999517684581505209918358845416791757433685910710119993393805355513721089876932543773488034176257912802940173753708468958441880796395911694555263067104630344180133756894667657378546686312991739229330698522846199754492703130275130897733812429610844743220978750311527146654423771305226477808280102199162929926652102333187576433827463883848620112412953504916131057596359958605832624074042303611584157708215378050864079568183375460972448726791600112072998283555382614946229364017856890249795154174763748706077636918521259655576078651746778732292761429828077668369711264231876770289583028733607480291374567238797986849534327905147065111878927067558193737996719429658614441999078985093368975844402767312160128816885200033870520271867957290404636979527451451367030579312561305520544493298293591896785558271009073411461600630935387055945022679841603612570555984368723214725068975036639518727819414821607124450144932598231237055403133879174225871277666603413250818159876755652471862820366874598840027594561251241264147898399592449325772415370218429058818563747930906590140183180469788860128022406888573778406251112812742893603209268861979827813479096373493581473785777358105606892282711900980045502275750031021516264165470900267900546157374651550827874089149061265398852044589634658662499426153601354018689288532558701069324850276157354496241921165166851326745239958321475867709514782347884387002579549646061266583596137503374801668795423019768612584565150724906859494482466073600693527790423780717818145472907284958895454256412749939698484019960540849551975396482197212222211517962176075789459648092253808105014253891245200225194898991316732468234051049598091972013038972998494909162488657035422312324220008408676486221053893500196980597147417029344149680798981243234245800317255811203006583922012762339580207015882370147181798828943884162460525459311257514263556506315713964250064214690414826645524851455648108791345248167558237148864804028806867588248281314073051683422420540927927722678397878986230350132070687042264036406029240929981165980051033463003873904307826163039783894970431330326742715054811383460364332471587002286676380170508199369720996741438038458609793331339925190504232207264719883582724556710295382402514296948562970615262297298435619941811097394944295346270535396959244657266390071836489346186729373565080320811902867090206918356691745455856057341092300261983354630101805977391002610914590510425333390124361050749485970961509642328420079880577434420304492721450313131586381081905067161642475295106252105095512574732404372638279551768018106954914750118727487971879247939277118017384527404078426510557567011253575477290902540203313782210352614424415375849375960384639527383520295523413370828172089251850900363561924584618670019364093790193040495745082402673059095096133268797117816459256005587414102768649386920878693971402347414174095754650541693890367113033515380813765760518957713727193147916633076409203489670940586281457545535910078598082442024424623149397018181763589420901704301235677976536314742700186170952392872282956989678098591021673112156661331685323346304610265987945036880752981328040952390753641658927577512264672490367999580650876325238059531593269185459521485411412552175749763131683164199041907791648980600527480694828857523066731908435981153360327320834821046343922633337121622230109732834703106976701098508510110210206057084837926523889715220997062787599353987969892965294214409784623945683066845299072061700215387281532332494265345202342317750154984382652542682345491084578987022679160323232306329147968550715773701382590687204525968052980418207922184307237113736613319800995210594988990157532075876584136487350142494910752119970376711664139420443924826074596796759550986688615361599942260425673813199250784946315872359683126580172903871261867084651466794190927226228834044619585673800921743457803471312776233199005594533073087046900320930712166220527796778697122017071143836802906668235558059540815880895193912513121241695193795545583560595325001683991980614432535825810067623665217635669194351221809644638124980830692327984122528584335246626628700280809064135427019965774065357410138579291458784998007126339866551166925966000570275724674507882725906880470007063238128163930790332969891984669826404236477015408327624115803698135086528042345806372770683980347232814443379013584284219547303709017248413518445924644035017235431959039389534786355982161372504153711018374720807349667275351400187773138991188321195952306215573419493555123384642412207263249392966865682428650943333631130343008176921279983873854031124121824093878658257298094178168207518954860603661929563331139228067358651210611740778432140862145703794984915313660671788072727658968922600416434601147581923505641539005150001278987591303623240249547693398947044941407196721737522476811313215179197047497652191652550094746938831470359822405902187087370115190401711090884163389571970487714943153525432124799795825631367815812549112226465028616866916904907814928368242884113787961596223389735439708234958660772371267465248865582876644861986926887300264428758723707768908990332406833289859451231755442306760533430691804096197320327531228055425495037190907148495789983917775479581813622490173081181482779431378706582264742790029937675900566958071174645488791171794251911384704593886369108282260732605250560510102919716197343551994202044536554097934132632935249380467843397447508859396557915745697145852822727122201731118870100078629509088631301601478692373808224776514325445646914140487805534483193296728654783846658576645246461998949399557310949615863998293577606743695118485690291362795164860247414309747416235334197324458868986568558769986129674953726864928589338740020432207519729571962299534900648384052909456775346203575657111882226215647340857386347891488893907551265415733074592517758208393226771652464458618536641913297100551036497126870772169058509859876602781033742582640546067077664195951495154157715077142218862558770988647532815319563628268280087165233488086792887186879893975765695342070348899154780560289340217746761006646351439508886596832562070975483184437327863570795514675990773603952128679476342054392049065426578819144925915411952653718647386256069108633269485243074844953270395071379291404180799671561461581035178092407604956429403993967016490371169342571255911948231236314108718692183141249806274614290199168212614892031005272420211571039542306926762578297507409867889258263224404445886445445687843629063193290564544973693383033077269612424265817246921429009895529746166409303071121991908153279505340678585666417066309016209999370598244471619220633793424358624160390477727330729444969027066618998131760302196669912784524673060515365709914411498593966531112024387183385249663887942053960677747271794504730568306867893598646477924924906544884785057202537122477507979225354900003177159887924719940544373182879297531960308823427237011696380238566972737447603742066061030200346712073366103923483664613463636346077322912673840962840288874917414712435644139260890260113915558411536826092052817344481253655659868217271989610538200514342690332881751779249467400819167317275758371316061567572337163060128449322930159874119610321451539762793124867324366349741982910568015102161391558769679371917363677532449272598902128123040233016633787302818767725714308688875262855819994729098637049749875073884043019023336064146598473691126373961041390573902059839640475322120856189521740886258415510874311033006573189424910402837759408598759705525018849156352800994942952770125199084861329925257156912126029532094778850339686794309015925635506605904095454266270491369980139749166875986671870245807135502312658460971380303614552269529416999651920498134334062687313735563771812864231315111230641617962594856285194628664417987180259106074820919272660993317105658415615428366445555800028968971021908520248665054226207143217495288507306869889671768881685933353741789318645725870178641565604309926763263460261333211399016242861893387745500439461458691768986976984116547337019042846509479816011581039999220406880471534402613476851774243641361694926148182664408664925220360624159582416523778028154643968223685475042117823835998523790324088687896948219650464876641414266389479342582926282276017083279287182032150379986339210761255539614356749747170059668950634825347901637024956292462403713758748402763348879695385586841817962926113745554935042680219476558402071668723543981112838995033312323350085727276413902668873349644920972704338491317533146215083419011510250835012377374479326790105470769399542100297753852656987402789836355217891373072886754487107868923996264753722028062628078808074443492907581284924482935713308901351084019589059676339160475651289060868694717096585423236530294609295682315817410324710169593934320995332123088429048259741970424143028446689897903719751341601036016089916726947607518191882666040136842821714941593983380333785331314911467896047081700860407350312005468562678087553026164210670401838715989812179646649851537686118399386145913380656401984944719688332893082811550943192991191564105723701246341101923661654673607978836785587327656229547603478330243210298459585564287881802114606848327034386258528537684222891423382811411854409901598454328582788218747348123151402553932849732634517882956428488539522793030819099306845585371572299326144775823959298560389085094198440478970911490971335173275277934052613862466622232675566792162095322996705602396475800248210906812063445930322797948234350343850557383810452271140103816975200085931183541124773638826778436347540993887028320281198548924716431838656799328119888632581460354082490393443494472524045689284208753017648278064888068992870757301548910325631274660088799282863767401602705145387367666034485483462195654774586702196418293570295135952350824348352885535963016158006437237092887596242450979411860965769365669962337951847167737416348717709340522361029620563558735034877121232485461857553097006585524211198087601412595825117975548543780821667375884631431795554803755634538617662308899418079373474685583490224425733851456708254950232051653940743260700329798006610344764333442331252003265917340386106840522530712828962097374225999590152753699451784708176593150576757497552933198012213159583714962924624471113638902163022560067043104525596337073659706556818440183090389050028137968810570771787926807416314943481818599988978195919796284992416612523347916582241128658276614010241986148399915410991554854463912061592520037819457690072607281997292129001339249135701211289273407044673268920908334060444534729849595518347573010926361174043254520949832842263932774407576061113125071415434859418444351568137464640145482739535177246764562591748283686659497543518228741313556755306399824599013698483655364517193152715584230549949710512622992053312705535562652125498964477942408726377062558404924875195123696208515716815083052709643726621346441677215763344616225778271744170310589591811723294730356568612196392663073732080958554981519387921856798175852915270310490173351985374835387487389108313909497254955133846668833701732042373723610364808406018911492062949332483251696840144352729998934343385924490932596796167634840038372230912297517150556629995047625660291104538570027804259594416260977793254364424070226562677825254183945755797742072863985603128078990099717358504358330265691918821319695312047644875640419815039454621503492448140746880067702166550296685546601479826271712577895634584976411878384907326258223348252843609380193062101601852538814327500380935668615753748976610215748465361112116542993128389154577716408854115729425850718075718578930742974086126236586247403463885270398497382978525757863942896356248128649367737060643874566616030158004006577239072476233464388711679373507707022577616484523828396511819765335767837177367035657063246734640109386363532101487194562751887753313977785564892955232125963932102786088061336513879654812773440036953195392243485994092676890369536412326105492298106859239161678417322683570321803798150526638880545767862492224582631272788204257054454712345034211724305777940898722316674822505731105778232152036004079152374282071832408384240222893097544225548874732610148396127167335424420833193408258142879025897866479640429926792978361824210332720452739151275737501811487249158977032589981548528965427160448857049751824673635140217083134126597722294950405900001618614802976393530510063767691892790948574817527290203432887951256613671300420098876271327883425266329163173246381298758734065356235119105978886689571996542287042635972154954731855555627971390888591599192728325026254849625510110759680178844901716555704220095591138055322154746800405725339879642102000579194785647612560087472061540952762485897468984821893410268846994848085075675430265089398480431130723788496857714982961915453938790908021206404371277491483323503450740415158529681363245390277477563954478642639336988966154291553700300909371318636962193830810429023774829083918831624164505901253764371826521089603180439456642189516605416281949589460608984932079731519376570337918651853055444417179159994323796647869593372124466863780742770753301305543404918429647868189665609476493092660871102554655734913964338288467930808501588498177685992025894624899766208149754504185643382667387347337104368257019086719883084655089481026140778402842541687082041125791497514101083230268249877565360793885477409863072563946818124531091612400532518193116402954033236708103971736790831657372879966418590221221608597880143285469094122839226734468140430263918849915889335301403462317449153316150813031697106289688030536466999246374875635631784381682989231687550731633085489312396431492993943735521456235731937944016519683145221699207030954026188440383584381988437922858539010760182020006877263405317841297064820823336079178083550664646942975081424364061135549308914736020168260831574396668635676622570507707308117413907315090114140157125594363101493007588779993432535855240185302162837614621148922675324024664988528510201196039529771219780368271295046658615705806822237267221799839953827657968111339092173747399089738448049092663110999278446082119413550042013666164244502695816254473651260275867414383020442861496997716510431978526511031383231784630051134175334910970576918389588620554206917419243511413225993688013265106221952411800766205459235873883464358815892510846657306484551854491914406983259101211026660476274081372852586303546235477043985721977219510180607022311895508167707410827102383252533285498833647855685145946497324303592523242119593025894141039354037942981842221918704006453887244159798194911333273110971474750861655355249913105044063831704598514141708303036837133442829826890595463855498126048582793265558872799466703643707170879098046504848862555382760664042483232861796077635216068666729509607333685802276521849976266489241802404582471668590489119518282134101276930849172662689894144670879286784274586634954445901898281934710422251251197560009246198328934334154611533189395805098438319371073458716422491247810011134533353717989893431959388136098873726538463115178204592275095050762297826828386001106893286611781711579329229361676928036456555299937173440483670786102303594358093196938067531127547875234742590009541706758179331055697144331498682754499529690307053439788386565466659531147089268472065212091385363949925821556223325774903284429986016010584376448263942404900606145997101704422990169529819214618019185643188543038491291883495199478497807264400075003565687140204238737245872071902836781742271436676402493093011593347248390801519264724205433759440207350834514214845740153446771178418255994096803443950212794356005750807680025859971724418834899940183987545140312042454282298905697342887551017024524670933987893318644061799562831599922457969690600280325437103782458527336138912606846577572549732705437820406500881101543380172737421860974596245754944216032124626949260933573253770487028804976080171860850370863325001352134854616308369072948697667619906615970417700854859845585912862530400313384820194025533436758429106733655441300823610774748683028603301954974757068969115752024707425827381988341520167336690003666855066480840556966514355629522201259526738118456711419259203292448470228356471655227850299489317996752225391847777845454805132118605226446099476599956110603110772397025083894194102146681080807094853472143251778016141393202654273930710825395003341017271411007777148630043078521200398468837403016579526082832903751558384222001072433302365817519088692546387874923281636189719945098654745826893051081127144032395714010854490082374348631654195408564841828586587622440419149092056203241064723386241773378350470064349279941572392919377421188744423078776052293746910200922165496683784267153238485127288272737546015168032790080606576162216657828180189964765414429610474132434301912102667479613325622304134818821635770077475905073728059882720916038516038365369186966484546962652854171084332825339271641320908854936258392915388013184599235862763437608571362371890064838226108193416869645863482004034820812537181821714640345197004364742314315896735176288891561382297110626111040340783513673414653015643285003008675498529136164286447421267602718479198213535625823098468795610589670423207092705571668727757385235419484002837624448181681425438993414239700484264164504981829737385232914573501353286482898253787749462608560735834922488598769487479945037263793564816928628108123145997402926757960557441177163345577338977228717908953279494330830634285277213328083048835601684913553093623110338477156164289610466213008423679570933948665651312792982968254606922230713792964783145060660725687304794696607577292606653226873990390030809159020533552636369187095494351008580199457482080354332618196000218436088906511664841751343749915263427045412405178064197720953660774538973145592735070480984457523732195045016446892134701426079686237104702037944975278616103821532794561144738814143290748282094938283126103537728486844422408736048495491880094095074494776733761855574241056430124009285435479046226009710699681287799291379184720396765497602444552400382649229815435811942831925797533652321870164270091377414435095120299161060538521021732006745531355901627696211661208283273910565314862004046942815485734147492486908887635282503665011214446061780752739722590158759553298061564217835478005384528703402760156051305968028736290355909674228104909853290722303925585047285359378575363427332633393620527993381808181143175412548698294481591461951177067770701583840893363361208211610801829703865302692071021612171238044809679259546903817282938226417442104430738024272936536908680025423883707739636037152231318665450806038457994680420643813661336704754643030334206479701445564984213270498893616158278763764451380275468752203677588580494941472148149567267619909463585133852025609871654490500127817027875744437618053377984076303524102523460915278108318829839963053757769167146381249306248127916944432533949489737636978079778394047543209488692974967637724671230866084708220936421917875516319053608066829550052041948550982126911035278089207965046585812910901988944159585582125140417181188949380576020349802566997862879564815337790933609550290761144703889377462985756334581388555484521400251873558111925490780458089490486655668708253793404914100777470855389237277047144211589899287144750208045789051680530644021998831555119557145348238806011868576984452914273417037770960121040698144439640535756131253762488545973407638419280187070695730367204229686813568739420825040093592783174678344588645167516962643430236958980345657315372839013416604917383082672533540984966703724825133069994318480928543719057137181875862078991519491744576925717730830974954090311649433710062798711466826695554598068273908730096836162020070597338043643747888925070105005582330985584356990418605099798429703581712207022091006739637983733063190869696737870150600516188507972136535917507436468227220523273899693119192131960985088895745017630684341398160737418062780048427632093242448052258597273750220721132044378074104013628373846897182357603703791334917535533915974762179761544562173722655592492346335488335163540734216870817301295856023490356396459976474743242351111458490419667701049500329078899855506573217129993401643187757909071983073466761308299984893497940015022586705393773747268023295519976614568141154717617441829107232141826515427327166272062872114337857736965653336187370935656317044998116759360798198949633185533404375426580959685964085299315150226172765690848293935652844420836712218776942872494641859698044765118922255937415268771781149611027883386443591898251878417072766665400356014066159839728617347418969444521800523706997473813908168443756420770034612613920259205865104632901790068973610367406885305169163379375951216938663189751221305969350588582653075330119737820883418483074334921133201574182654106270053287270107132996218780286211287928968132273679690828224458502925218279233170320313130571225153461195211094922123277429255689825072912644845091302629587961112605948250613140384019943974429520649457802916214922443701289942043874150911507387300473026482436613581001548718771694662358607031102702393987230427632451836397982741944262534018227815038240371464271167827272492528914177403466255745200873114288536467358787143619459126937267513840048077092055668913084149628895369919128413571938495072784448951154510370619268487828534678800686743579616445157278100813423926319875744973955621662227038174723365275792070391598077794163806083466414816143869083656084657583259552131933356793258109289978899648406039531481566299628699494231110645283126744168163947539230220150102690837090882048714439188636585760483602364953613293550745737362578844472145325874853996695770120816591682884663368053089213572686375371828955675683975284590148034942543039817016604315964978484321699249893133289443037111449924884919870335233848651640354797123924391593894713501318665266918044692209548991212588407137220412334191818378268769583931777722941537365986508516942325086390191490069053002584839770642824909666755216076619986334335523148192345018283060939485722820094532849655578903955482128796511364530035480463087621727130953339184652831423914911986307590286613743555048121352541363250520332313255137796032871941713267193128982090815571558086123379387138083410832699557340991501106086315048731007148409972456943151224430234620862849587072347839672937267696761128090529449390729004015987955853932574335621340634196777763474318035659237144913215660671389163615286320417854025302373533953639121503643248907468650056353581718068416663996809797936675864221797917424826525710781243618352566067616428370458146162048698163746971080101782443115112831781222239128280044595103650676955597341544169016099982147779744010164240982464802964143712249410847879876225447677390983227903239019552952568832501072204487060514456116263791389976358364314914714040971693192510147579442452990134109538213168176486387053530768146003128703793493928504015917163505159948726282448150502416379183339174984260952473505024936658386184489604164378617876337306137705540810206845253406350606608939158145481594138834806341303634891357837908394108084965130139888000739660197162606143059070159214175482142926536436711149648332026851919476234925610944319375336466324296300477347801855378800607780622799940568609237943952378170974787217876680129447190957228449846959624933287561385901547904747658047791297755186361501557066132534327807321678813024769853683763896226174735094431001451807444547075970429644844765115779540658980822095899067109304599770344246091344313477768674419947243718522511234495035544505686959974127925263651096245533878069658733898112512429223411104428979253664499217633076366643177227114557490067963757623390559299653662708973228784423239777390105294064632380885238164909024754725108439427734473080207878221726229587144563680534136860773520657975265162718052764887949568454150561239430400963986931388987398704192057604957504820092888312613453348001741409694616806394430543647050299322166896796776924138985468215999354491548583208833915957494808351433880931088166747293796836854469938689874537097291736047377310649928942724287268087295976731092174292191618991570697015503652598697280270489718129191511929056420916654749732225294067979966595142319997800835870323710359143834869442611257877186781610669925345393295295733571823280950265711675471886762495137425027153946052547301725519250670891849421413200396058178724609254790151113069067973537721938465667204007395042527409245059958578416956056414912407910490887405425701297908546307407940340527008967981762938573792661538486163474920176986346667186914803311983763369173908210066467788956719835080396666200121057556599518063850123241331414085669520208163349998635374345324847183460507193854446489697067461056795861858471456720289602310828463138779465235850557228011555771580325629903341639360651773000716926976529549702743007976744744360630779440491405267909108146291408160925614772965239652347749840060953844017206744945131423112766148973592493249491398900310876897252774732372936213893000664947944393958703057235517500751313682865069267778140023366650321709733525706715127987264486465424814177981865375868220289114172987247166925704841838615572050872300456999002253171726306144658600629401123987982838077893671294205034316428644111894388504587064955636767676560827439255328691236778456334385881949695735836508279887667730874213506841388410604215972546536192736397120070473645043013509187707250677589619255295991337385966203777271486610738659522018508584562962092280808648846469861348580630449779900029027610410247754010702853867264575348978661337872983959651716179033554521912208062986838022286970683034631079289830787589964773612556927983534938550750050134416881606167159026951745085394866497136431699499180076243920681733486212876438728578570045547257310309491105604123596683078418721407175407993066946177315810935367712674625271298516891916283862557501647888171166116623203365626636057946377503157366495480168464454882455789679545439647755233023996470537433182037547911187110909052896269165848009790655251240083058198306943920446759321884505127605044056365464221837921286842923604657037026022296786814245594639037865774774627270622262616804161303610807663546536634293896310852533695530971943463388464650388719855974941788097590954633002949708497964946194533979534942732912298723102140120532276287006834212361532103373743573743118978305182370200807117907681810468540661573689337408245662658312408625632448741454560068536122619760987439390059954621571584020512769743815986212642437651740688704078657404677463091842840443106864348946455257955948221368615739498830117173422534355108310097972320789434127112512756133942379701387155866214045786304176891444163780739113918467974992071010857134538095834296231396164990210601126287093346696146435904523465492538429775651153541050979324743924827194717650114043182232370581672776121383170540669079812691331361033121987349662950425452104351498390842525818745360479697355499227076995065699295577358494236874914450281211748742512588011073917716072687534749852835456527726033059233820421441305259351833061138070403449407605893839220619640539847773604520353393344570394933313784728264103021575314510029300047655804504123824493556038765612557196609735323201906756886487528850948299699172501670511105261690649923583574715683715902851364402694556820144588022095472409271539201630513640241339264834764120158568186558226645669727975139179085581514007993429326290937645523356414943862671435535538144122583962295656011087572311427014263402894523585368072787705371796681764489061607016341607841674795593346612605108731415625782040060403842689845295476400551520812891317034948071918457462684183156324129497117106437536467171720233797175882770868476380333060827583566089034047835689679049854615473327592977525697998764847603477448458191446813858028908484257020430565721930204409144150806122355657511676247171549638524035755577190446141627733083081149880911853479804274117554642152818232175188973441902185062839413494576783037905486707250542647925478993242328427326738332083379936663452254792339242721235823503577712830705426683717452872699738174236626677757457847750420796788165491229988130252477487425833622675618950206786012623142045536366797259212766674047723156731625164565714879937712796237381488425792012306457664448458435536419444755794619740881274361231105326627590169359206230431638216121961015920261658879967068339559807414904777795812446498887672709650610168187332080258993826110542476309855782560343197600562768634996424241015464733367119352900681577202481796863207441807366934310138706140768116990108315556290621594742744069836172955044586669887044601417628173233359763192779564047332007035129991064841890555336097160809580343883881986432697795744030174868587325854253418094128951420499302580756780849033964206647328268312412682983085045481526376251041544353485566669502221814670796211606184667177291510922978464257927219332904661236841032075586356593643477168776326169818039994023201179937787597274692261544270452465153399990904350336441870613110268109598707875699106294433498911814374240548021652601932808890659075811525342887000168140833431427115389457124663373356823308143190438038963152049648968797044248900710447674285552001317214402556974977664786038192349042885552293014289076757733257161766650369652310501931015542538187424676321724060852198463588965251949478569451217240241497175879997133673565207255788952724517124486652749951888575490218852541714437729315317272720994837035224688615501083990093739010332695612438824173203181921727792130933287151514334319877771139683939517081818923105294661007430790703002113748961895355963408486189588484514939477001695836390358850068024414997176271618698785972529204152961476269708207030224060312801680578354965190082339716626634296207481707743109351651910125095652644196475531119084173903397295826478601061742829280595200417728666840862967575507453857596814855042316978379434579839457202643761096303033742039996779983627107829213069490029934154023108962640959517581709957132952921261849311199185649049362117864730088184072743710575040146162280951475644149033823101794847103520961467463625536853106429898461048749269119256525572353877322155082993681234538143714385260759469653846582396627022687048445395820205005633876942648487556132982067046325406929910414809693134383287865382758320700518545510875429254662681198131204120280752811201776164501311656849863040860642284662742354790730862953085636912483676088977130992389876407806216571984493686887702333040113117934498276569156853720631640048806867571753896690562609579319285297960512195363456827895226195886815108624138756035783668382913895431852571737671881987822470957484542287596837742730562757738237099598648278020743530659989320780570507814964905141342130431510295504025816165394076605934177889936039085391856252960773050848225379349348466322619075827603559028177403985574761646071372233396521290649340104738037705525295049962191524172703728462490409800637023332408008489320946256143007660449254773997109515795656096519710894663045575025808997200196974433452177514747158040593734178615753336592884751999873360175136109203440399138129678891507102134556501509001543848316054707995620973479535020702434966713642578209530051479818980386092550391968332347848661547889906121287568003228106106269945689300040539881014338433843244205698744813469440969821495845996613371331470029577640991884350090927516602632634345992608075159497819187080805533077485533399731668932948869042539162377426911343726000577513295098660212362835154525271236911903582160185373724940741488309381018477202103356566275992177886991538324222941830797295042383836654458135407689073775994969698473067351736128873204829798703941419189279739797823197479116366513637885654492543340953569594903890170093994333939366188006282521862217382744126416124536902284641233997982830204207461263327911453336517584401463352056122520765265710744688273067954017763275734647226379856384559529236508387255381181552638965628765218663780674820081850724928564771329421032890649812779986565898047970814167676219829594313596155753024970856481037515861995111995862720744728006588779883100356438794549788025256524249617189879648439986851635136859731066849879100818336888416073492993303752190613501164689131829609219446217132147574264436658962238844401946087902522360232714706888517170007550018624632385002587868877088007338991190359552301946394591485402157867408302045376445276628574636982595100356311877301482492817889404637278731536013442160634996507153710160823889638896328043925656806272030892681309746022767582222236500342043820973393812730219401412673929123900442413360858682537830202337138935027024468216157883667034875852828109749992800543169888011784309539990039671556259848079647424751728677386234830671543314993689000107631880789420796447891565347989714823189089872172718168641809562778804810777643716400017515474336840238241819451485269707115454135561547773680477621758565494858688210037596186913783424274429018910613084416014096598788803099913526317693068960476633435495673702241247017155218903413491988849348726208276734297761824523473078724200934940261290655252817305723516151068674254945824737242180631905575512728258735908080689977684964844853978695003109631261898633318673056220830281560271123742619948273753583791161131359254851196175694483178368911623030087571258699826820229588842911535634413180729627626724407775497989896580817787714412112215396681095470043266095656881555729145881899107398313223586879567871990367321200542982108535639914263348679923266078979797033984463996243016024738894133301432544793014333294789693435575602144931419768681511485704008306042291595901799640408204412773447460955275355680779360760073908684598265829202968797171396011199882641433524070989171859034598295722195231258554280724844767838474405491171660730016147445155978604647204703684898407748703612445772808440467574480166035218083793241829541980049343512112995681218140012661722448754578129400652640282667205866842395396787728082509404679047565019033797928689421107892938530892353038870214990207908765968029112328018912486409850735312439485073473521022831127656840606636420206386248492382577870185552530790763704351925578327939744306175102939499069481685833962962335395375601186471316521469432657129978592505864285449233258670546041439117528141869827893145185488742905475378229912027043211502324433791314897517354300310420958584463992777139314170688955010467002511979478625548802158350571574327240090046288375459899977942475790200216890142162982351706575088690356517544419564759803198864191963850606058056204575378120756096451708424200394226597564719829260248828755110115419755842199074932378328749175124730903918911253498508418008329043654877946047470211843600330823373664645897403382130682639445684520103210128009534759523246705477772554826123541862594702141050276085484783986496334363437224476850728740009281764820035301512070935406464048302631238090923524280426725205033150392843108531324745020906153202448502709404684301881806374591070191201476919239897905378175581079393845548631242212081698707071133176839662069233388112866490437859129538664704544564467995120843467919692008795089316816261616070943039705853626549856155008751297675028776825886541392637241495948577852005428354354910769271397159737757001302035621631018497151539899140230663985827648244359758111323635371982642979138791440556495553884587036682370680103971563211342334833919387627953837149155346944224697531672828691819940938239589898359916961418639100294224288049781218788866149240637202337430700264571910496634240105388496168436910434130841913787509847263477502486797721712487561594457718717988420886963526626567387285643037565573905483349499345554590471305997607033165819755476973855171509497484052276416590611888648325283750141191895404671640689034715954258053114971373512180413663882469515453199271336347207276270943071700540895221771826786650009634436059892124252251890027337653694375912854219065616200496608390982403486245553003256085016979341303540150796548455397727037945825743948078473657578135009472084233207889029988807062558431241256773248612094443586131051935764314675570638052840090169179477774224365465152605154518196452901723147147468551524945078297311350517941798797901762948285869643284425159260615874997095528905504942009777764408391238316640190305180148330076323916559788042783763775909736918504488679867029961348612873246964279505185847372590470450662922096755226456567098121896051799920349626002706235910983817460635956920259884130953641396616715400475957743720883139385742303249839979368245957766754698006557632724778242335766682188654085411409156117366355881402493394021132689501244742335680452927609581589421960634359814530661311842915367359907191604446117967518202593791994077478970166117897353010366782070084270739626084500533552979986328441306591532442659848349968915173637478600222209567319946857177509415429249056960559881830639896087891836046971040946676713012777284105785847991786508815858441466963784437849430691939186551064292835293367054390307849039702919365773962784953529473220133234943813188151601294060824684010789522779032079276915084186153498710383556456236257054141788392685392733222868920434625461725034631601320847954354197137609690705882918722098080726655900164797506031311903678063129632236549250489105848480737698822348674412397490075702194816855154734689254528095021185830406754507805737114409912005086572476944634084384989529269784124986626865307910647993996960198934161848350932685807247389300980884591717320868847591865704428178798454865123204923448859964328788246205113301149842040223172468723913584155500547520277194782140522167544050088063491376474289057502005399985036467394014061155762317134919738548375237305159833362460234444040743670807951111759492038254644656723958671574952187409935540608225300477079774330936648405062915728482521450115967839019482079283257919354079213280843986680357711431951143104210041413307637976749337817769690541729529324829390627125119194646090903635158572788040089335807949603229881212687498751056848727681038345192499635490964848806702931588028012138076916337869537995958003335899580474871714535306100725862127956428535648776061331004516370183216233441211371418930186612450681126433466006282480126390805347860086484271346668269073546732848799186012368721317695761989513571430145642493602196671565866904411939879087258948007096977633788478363377847360956631755577005269491836793924951205089773599690384340187834137871577631899224332389218467445088710491787267786070022892721211738382211426535999042119372954183487153052359791747170752705557073454867981351181593732865342684899486366831522844245036247352246030119828811733239351351438654450273166219987713808469926926644617859503726615328793647384197614124944861276635218997983336198405746859577795659413909344988268598974777159268829485801344979323008767567084752374429730088293057461564581865482852240142968761513878688070931708224930780519541635464754647784342698313191535859593861470676973078192912761153377727536723037055196960946266411463190492934344285499831707460059606444551401986634368297301216259525009598617538460992608130248435660148144194993451207448120255858921962799619364587943599740064528905618101336830123035555958584360363720116788625327154836424058803751234160875340007642863274545280267255129117488154461626281876890158334168278422636757574181338865403604086442456574697059156527308897670723681128524056191005606919965085082049604024094607858315638306101665708431304191087248657931135158122052054397401785448866583895983180921396449324703988783788923547101538225262388307673728515218155367772454019942760545806454296537769066021657113122994931172294702682112103683209839341884155185397030044176967928258361376675137652757832002825149872531058464171243040142382936111527066768524991598165139183610904472341356375370001139360394017435117948174816528198449928571097080403216238455830750011753257628716351811492165529129969176286459945382407124125534900794627716749787713825359750569915874470201886288318922143957609863566631451166887353995178311779170823654329066002658221070606646306825530669700486230439257094554703465794465133889022028281804886610923482790478501043570941901643402809859275152933762992971235698036829469979319116142382807858074000657349699046512564553574202935947558921762288819046567339886733610434093890229836459990940411867050963779780954910048568098072751089802403092464060880136872308539888965053974735108463679077838330126981840568360293620959827611344343563156466352276167093644983773998904541423846292132197401040876328092159733440869380513031790607034736868928017154424200246215795117588677631526787490519432971869851341310055531613028694355895822643074514664909464082058306448937838299602401261567185202022924442149634520927615836235679794099941873708959452071329200484904187953190076003577236958480560625208836569640859395844741822801761869605467684408435321834224040341546740082240348203986806570642855117364999117980820084741628211309657323930293774764145327721730767726697726166766041115018602440271003758508184788439285308601924634343431120242064147813716699880887127660026858286828601623229896167463615223248753727658176197721765007805584523773017694500258669899748795612799471995294696648160939124403841109369837275777379762249687732317767383037375443501620345737912673063417087088274873878642376802718516254716376439498258881292056323092490371178260664745036591378356893877772260196632776059557996970952823255006213503468742767294871883872297063330505898796324888175549652624811817471196632764669154921602776098138136351898886447139210210442732296557568430849179107435669628161430123779808214840989573645974306440717500936624572966434091419018053869971529287293941333758187987373468745537623963026545350191154793762829499004445211121586289144411582675123839388146440964518863824867088423855928896458972314561728347256014424566280938415071702321200880663513249194316581177746492743186019603532539502792122025240847070056445267408837234672481043417265419084302972221767310935619721666689460494083102447995835621292699905618075100920823192428956958535281107917910217140313068926499302018336980822714627827001031327264965655583409087908181733015026025211856767067519729543301671714189149997486076473304806006529752467915294651764490647105126130284612608982651415709866915608666143173735228064565285394958875840178221483764629454349256196834270680553952531462083274426501589920462304794390219847555459426879697344495396012814886665180553971664822535728691085098990356133038983816875541347233943900643238274216164089542808184328914461919842884390730885188199475553989974343860904480834446685882852048871751249669769562679090947837074652531414739962566079022837001719278128816922791850168372324860686603897766300711428468992260581964858788501931483534656368428993287126337851599835199895611787872077661230481083375764449880758629789153304909465183779540983502391007287849894298196872368980117475623459116951957380794173517906047934668295475312816153209267782882164199824332640933421132639827251566645774213006581109238649642819734616267666031292283239032873473264053727422303737012131004016538176987898896722094088257905416378625833970244759249254928294017485839432446483836156900539800218533776083891069379877419908811307850257265387929570117034510342136183049120064432126971422098757259611503480447587395421663918770770572457813464903659392007280067241897093778075033285244860332000958162701592698613891433499587395236793896122972849379214523716856381599405700657302250916793501520196666896290012922908397128068971947091869452040061816946598975272204496721323742591689007830840273765882938571882354534584335011123221504787887017118306253784699368796643333041560420718346500411897809382521867593513933630942037317539538817350499818746124551148404181415342380437348122745361920701989006492523895427825683608157961659118267875833748070117708205442418326679261688796949350806135902160576573002710751673650461902069990138714777755218304423894166663328744533703482058435769332555707052596862336144447856090873458777794044685520529566447831594342133885952986798966076598209329206098921757725868375515608985959390330513603017282931866226494747801074818057928843846069799961046652437834931870437811110671375791473829703239379589120166362019263905466043004443706557974503164260112622991893612366887605612143957896529607189127098697143267350247395438209660583147905008908094276516190323313987989457714063734862392471223741027856291482065684258642227785876070866097040011513571239175592735409067161819947253955470272473978391762674970504550452893828112426351066543732233815550378010397868187799399126306619077791454185300231701005212664801997413997108984213433647402116107261966687907216608288552982986772809763862234340144687961240815134876571951316054119904348194360332774889473361492895225230329230450705466656081281653152633367170299109991145798870682888550100366516801694092607766148843837400746125363426260415545127671357784194246972771818764123695763388330390172387354483493995558237526441986071308635648474501361569053034378126021109492066362106954056216669418684433345061653575805842083600404112028184164335177151977331426686607428903851058969302116331057558589475758570974341147442800104935848253695791436753760826682620157600410394312117441131701038797271287250656796221845797625183865870769198870483181464639990381352458339088670988296307387396926846855456701414033129134855064171864346870123037314696911138834939808433177611335098940076604030752438679283519868550358964931044323969241737355795206360507283348081187143067136527600302033216028914994567159673575692394852429803477965957886662615480690250471098841766309876747466864548705729953628101517909601230391150080786430686196062753248017009187408117286142310650376528467472296363506521810836072558785272947777098114574841413972630980532768184775141877136670361002095896592076287209702027861184030437308267982820014433217041664966954521046766568282173048676331425869392044123794799480765553149591855681185382942183123244182081209589996357248747774879406320834267316064196469380062086226548579092531220039156753951745949516577661592372132015299990429674877113241234563684572974435053862658043505673805700048574038514563990095356394484467362937070252411989201081555773082755999115088913136896257442466653068910179505586964695963733605699547315371534520750298884752042277017270710524205201216673988555472427831498646934641798290966345117881056953542252166302960835429502895818025927908364440929152468632203879439426682615230743724590106107282867345269526385415574373619116046316327477309930437462485979776618448664509698472303601962292640734181055553910161315887097494732598986596498832282826341773971889223128750079947921565525995243646523817173682403975161909053285471149854658127998767457961696400556131693195122197690939423088400249448413681489837877457069393195391133749947765933185874184936845862573627153658088260423190810028919008846965043577640616861193660173822071869457396307123982584714922285117883118905747631534276959228581637953321606265191467892834973774405832516608295509599959269131552731100813812530943828818343971976990146484902853638993927789935213827172761014426391273771572985897634943225001095165436586670159081786012182500211452213372888499712110332725153732631544960018125656421254579813054835740867597386172302765141025681949872492070856196544066085772403917368625759920490722534749829189471674725863448848475925677747633320728462469628763145888827502953264775314753926905041792220796415322603153986966107925435245395206125377211294595380555745945494313330945008525145000256207907603171369209064269616477975649330917707284391608289406338969028515343625245054999495187316229810891973441502232315789118092722820283956871993427408300279793997562275273336952105264375053586818076002049763403173898702029455599919576907284024286595229256387932541947919855976051382281917701288983463815902550834084666032724588868110078231320912639655569425786933275236707741387651708783186288899963234220664675547741640241175866519407371726515528627160252111386655681773655383115255884369945548983313151139923273514183707293464307781651562111745451609351154667155569179244704758376558281917102444646726138505989845226244562873718857851547293491331786231591712026786454170789600562554092153792872616124209674619757131943247781298849881926115211300623946973875192640511414585549294974387968351600756542056584013548050116509299202515813605969307267674447565452539405686635330651709960648821621687322200416181132615943950958726463862841654382514714548870383203337460856352855276886979702081503486845260536626193945085248821643704453893131572113714511577573423077597911586664983344268656387974623775757916724980954257530644913089234873628889680161773517694312674889436361617070051768801269256818186772443035527432362014707513109341834166226055535167400288594743846177323843977999481797387642220401968891482336772182231878180678626010915880869752224747670652782157842791833098965989156951264717242107792530563740968329792717243158630096383217111936156323211804352297405534488437823098220956191823812341721479905880805516060540574253503323735792453066399431708453523059122678886477548241960554914527933395869945580714443235130418348082497200220158367139756146530802562033028619726592170883159534429681148570362746133254589590609902501685566263014843665739838998983802053303816940654275636230216381572903317151640093918959470193683535774431857339561197064998331970373856215106719760622158085977267413767229218111314004823810202348940157465258246879293436366353749699465175706057051037294024071586503053128010995784544420101975553177161578519427770506839612532679657813164171155045351550756179745403571643072741094591386304950078317521163661589203970339489929550394750574261593787989973749187309838492096401515964553424100666014350597059822029446300496922731174539203856911785532569649060172240493122596973363964065826383136134362478718020398601898590733097689938390351432574839819405200946266647799528286693047394529229553606016136624438348705991955015421786585462173757685799729643925369633911489403580463200719005265880132518387067161460552978862792944027699995173018255564647521208835154570055018721617451549708491226998730650002906172058056122800195831335850456123862464049254688842969582124133153564617583396857046994749060610224096274119999685265323065782631455503755299929267655247391114289891783095001504849358575382012414649991017391873990833591227185571914391358406655343332546975704137169927970017491300468378993704955419760233675077341106905081696673024711626272688803899235145004803915635569647374173182255712860569999314796594200675593529392135065639593747333894126751573610410943746948208956844488694235452109249334498610042064894154948493491123397791344158189991996782020520057663460575235267312719899635984742235671026385081675493788102597549681550707027643032306548579747181385996331748571193063906312621666777166151024162388745742595256513380513613903737251096203838811323329283234026301216304133776861622601932620884103497067994598625630032453030687255551295044568444745843634377825923605137940014552225636911001564521388242801665108794461085730971789871779781411431781344834155920213129489485098053997675912034999392085286181873033710994614028679357000046123580406587136423049350107997978147687499491735165447710139032978487223758514960396878441795512205139085144011266587882589948839677048650291202052960214480891945026550309057547768780873264301597063066868206499267482505659375418824114563365641888793414169616362604350396421674185167026046111445968835209217215274648183248986087419214833104409879806025327910809833199267914095135523100738330420238057202512471004107732964963664544209530542056104731805240587116692952765856946636944010872406828332634551716409138451391782558264973285264235759282948686614275795482901436534864297232818659540755697431337578497924060169552825665799433541772330239342531834439164815652458296880350934131029280720471027796994889534942291374304170381006971188840410707205054984177539207224009830541716187000205568686797895434146372619531868911801737470259826344165474870444662730721701841284125361779703179583424442606698666324303953188051310721826324199666460790562708368810631893115796765857007106569047572793762098230667126334483386945819548962016981878073982286023288971789264703865241736863183963508484157832405536212529855507376148180751886434060307283011193578135060551776555972895305499045853937844442539871430648454540644190291260050462476610343419460160563230232476522513555532620855831078781768434801695800643866089506944777046723121867439778598678183643835554474675019227516488024380310685236645576429554328094133732826456155316327981155846503562900222303143787902873540480599411743061732555333775746731228915587583895517559616574806593215702284922700074593283813061320856041606378172323004453576310430507472902072748318901287961759060814318533832876697780899279016003201396867152005289579718193712043913646479870093805814856713910000729467453697445220326080110924421139493302433821966128718745832834314447594894478746452258074212493916011085850169456304023307618240448502916598268772545085411742983668073925253695851015840241798740212803104970095292316149749218955853924596228708843633663004947672729260937464291040004876724436132584434969560940504432353719832816355353133607024768252489484959460786809821661878151453636413574265366513812632606210727725019202433988014045068753252111203146638604417942546445057605321755732873430271416354582927663042662389360045589138355302843144737900860321756680613421788829855337514366169793646457830530112144594664879752553759336080704029647604169392112116675268982777302186625067002710146569244198904034620733412768254959255151354839753186829773017712434408626136736664383570019179882755725194681901823769128443550674625236020501643788117931738839102799106996020779352284618184833261727305860620105189717407504787189310229668440389605257307281440474096634760338981901229824188969675208123286767504659046868077999802754569634767532060584989022088056468426722139525594614032528412650393504958226690116896010912419614261789549396886100804963233762777189918904600500218386367472820833971028623691938471197600870283114216502283674695381950322957997383733620834344987203844794735826263877419892560062018767175171391774416692683400322404830607917794187437123410068082040880096474743382851502489804999444277308428003050507585796111473477694078552426283783045917237580885815209219025843191346909848642217068366736285408848528084141235982089534083312780069601584908812600136247782715454117906323273171550461461772278732395735366307990748307708097409835303149166489509468800893781943973171949085152216431714094614066205450770330212108676260353551316012458215500828039662545933062639578623960418363552921556189873930939354681618434022705323258530358886853972184272166717087075635368139647972163941107455871375119973111487564407112159694319419577538895049926013865008842808166201087067278928557249935234453522477040784302647673257118767085274552122472731251492750564064929427511244034904801672527414528529771361170505209961940174527623070386351832081157054744105712673856716964228275626321258711971766401632416006739201020368212517416091510895140638439772772368370545184784150442178623015803943834922247961989788372530553179288270569032735677702830571182866013052229634314215157747208280876286164946581693923232234470361759310197781110483221823771922439468275712465607367960310640185105263319706815539178151287084725391918593232719215938260124864012417002347646594974808925935800339901024345838762255501686050020027742038211891463305349899014397424710291081696933534703309486684147056061165944389349887783212995870798682091792404348019262406404583311140689931621599538893525426759529492572913420728338932800607249340169805429807829157447804665969001137659962028643431960621268007757062137875846240452145308722427422303208281907876882966899740647635688706902587576650983423530911090028870463603949547031079937595905343860937707860062860157877217817550067496170007175860976558971034207838304823088813219842199288715428967104477152572848111002125827002854888258205437883728836148594489404868354823192228533022045145509809215717500130751726443340577803547449093082331544473475382864354016679636955680509988770664745270225760885102051694151476309092141122810714502465671649874157430085785602217572173719305052992744343963894472199576956754898700152648034984261527149438246100342041938191220538397658242648943510918513476204364152333063962090710578232578424857452495799070460204990994437927882630091152396251252543218754729334811019313694247928352627669848896986929154476211717239168914739584819513350413648702556462556332037558028595378096220701346566861806120633731129003622997558955482392417495594592911143992143440035576480836813032103185157706976223324543491801069575130941580698168141992393220690794858219371465207465518238563946990312188853462577605003905593191936869448379760469654855835182401184705319780621833341825109855717925574366544429790071522306480165988201429684982354650861622999448519528564797006075415777336001223439231702894293360345538534370315508429296523840318211776019468230706176517864001777768328663329280937734829401303811129674106746138990791931433955247268928522636086235829175451362164963800659046391640535103985556632533676549965946406425598125819431109511722150685051173411530045021150185760360749059609581793482041761789389283374219860256441158377948542917565488964490458307349726115519383729171968772548575726834287077894468383433880755893309817097187083297164698528767142969717497863572183845119065743787463836199250497426312010917577065802754526720297761416511434736081565249247116330456601242254424234789110185268455571063653005549778057618537671539236289316569827620993535641805073734064906839756320857167464512486803956379199967952073508926450899160889904427106498833590752731564790886772942461765006174842843345476628500638312370923394133447211830997973488167373982248533180141672121635693628156377344616527577825031170495165573292958708786557909056045396421919438287706296351110963903050309381535941006936081762700597612962763088915578955706797295500466457499455693640863389323531718412615816185531592822165712648210270400742144389132265236897990751742605995846011588454765828439661386785627963452471265506461719579219793218499590363242164746055215650713113143512946037968625877975131653594612339473996445029800172790888338384685680515450091747822022548803664124751421073706704329496461602883573203381015894924696285374792513121329298916119484846404621851205989185612305222671808098602673281578151658303523734853010854781811290919043323813475441758989296147431118936889969545716640738158687463300805827790694542526078518410195317588525900707709663913260867146079840298749457982323199346251146867502390145999175168422244165996581641983514709643012234870379035198412831246088047839646420340312575839725511672708078863996866086574486845147393435209933560315955844720133893687665214785230600506165632718147344772336677206953098985706846380432554374253008811169517025812209250603820606545021195426774719628289931148855077394918325189204570639274294953357769394767409613085310422220530574090535810159282114677424473281905876190078081276114866163683900412141514509311123551375801930703580334253455981414008912516459994375874424794907599931090000725974887417739416992223118611475180215658336920268139966647295080023154174868940656542974956514013000086824279837711189759317341569279443906050206060735981538485713810550310125226009085770433643522879024510646491288763175841057727901398579033728770764997518920960735897235365049040435752011919514011385354639397232472690990103061143117973665238881340945720230354630908954117362283241478320915419455110626419075031254024211255957442771987746566123911010893145129950580645052052380028161911537995160792887832156729584993271828515301431322505760270141821857326822483475061491721473494797499318165810835843789570311937994429104091949534310587584001429932187691699385991362012998677303726630836133955238315127921226922874450952165241790881223650992723201499457791465472270032987495301894576737093680117285729933809768705240093916162699721780446281608477904431864631117414010200891443408544929709956205435170789423536996682686530620440542151639211650135795661853761873828526709398849615696913195964233047351334774551970336391763334626649391728697269706392002105621472094110305011857514535508311226932123682893557887074658984590134752362541494969332798722298819725697330018210878284090980207694626151820171002477287721505792691945821141561782322223962745777744674029267528725416738648257021937527336182425190116449162168928871890930686734672949599278922644872033387430241364738758423774666110523769507632859740608537998928141753672067149970881590606380350717033902986956121614092126570128507897993286962563351357319214449281640513996110968245273316184242744265089505903818907962190952170909751822661421647410969561313829334427597391440520018435748475838406641371785768643522791226545789874170533693003945993082273477008457933838760512928332029154172125889911128799117163839403558601299926204673937211191575195607939454972598318857522375735287480501515531333603703430934391076969378441698992141226566376271349364869669840913657152621015969931203155847433846862371369984680829657034849846718191900707352174962497153115362424550103251195279416715292894421624370033268472822291691775523417024016889569897136684111789289160191032776257479279708605299575354012252934111377221049892726613961490034502730967157087343367189546370520298127158341922870197196082573678476035448446676872152433013955828021272515854986273580280458164911235270528902863381893212767951683239357085665861089603679955119462703753053327199040550320485467365153495567471263096589635369860291730315762545265816574245931254839128839579617672615396403170257388976947942829219205121332594426506616341863362836486728325230340071645639503602468995659767488678725413296975485875993582315959368639619669240754299861691413457016760834195354772155229805716852556979712783858841739871331067419549238006239499388012165279844073556926214915723703407400274804073054454042082811010879877778524359277210924382695574628239175785491107740366565253611313918143981919371587097111373533209621736841220519055446533011757269491776591076596202420608530377462191666933039824986376479994571222454900844401768852470567444593104975421227464992468940744607576431699883516428515044867564972185093024246263857136608406940740907579338423154300740269258687290171774075222696874128726348192314918161540573600300586804800200499235882856797661138491599435335650440667341978532198430989689320308309521666918458128646032072551299138824211063364355525347896058000476971193704485734574516021861734082780614972161025872569851569557084637099570630714926271238454718934199341525530078616305362184351982876381518985764801466267980631743026529252213600398358590003505427108804556424332765472694076100769219796441050662073313976244372011192347751818767178965332869294066321430893890438391938929169136914641458749438145271200837649851785134610098768235894961473034656255489264150579072836900805942307227657569190757996877857954542234184278371620621686588000981302713255119827513239943264900054919957919765659088956858350238888684626873024556264499625014750891335331390532332707281908515960846082110470523943498089766465582073784867241912392687814569132497636164272831195578722243405107668826957679795583190165063127635204949728924526992432950072468651561728399614693541119513505444754631640312314648234529007529178793969902476066335148586570663877705694123809853538777395404399798659726998911176563712698971206959447611114541671914292540668437395663205369454447553145457196763573398748529842464727644287681171413042198903682441371290474183596667650339148849361265760136844418244868746010164774121198867462581098339710851236057727689545617509881460405265301730521780721103171099880871157949923963904731857209762066645472053064632744758396278717874309687543296882640277873312479359304708392509215304788215275568709520567776432519733262195364886145218966881137722110164274161807256707453012328862053206091257914501197434939534686738942591080549396434055745783109010832054033594616220906899444288448893954844966461892711751569892733893984305765567877091457168322556159493892129744197673076098225042204285470184732071538167527480832442944419679242872796864129092399562530118615870023149930263789144782328359193473784197210067241735668383902879616062764920376386095664824202209658972569839073678589164266512481722460680233061928163448131191477152388069136190139749930758933636309946974148251969383103639207601346953574163167388255330973452794935892120775824073883779894006707871969602362694295130912283596149916712510353540795686526817911980893408012922891167968067507136653055721141288009643753915155049226770871880668257075203966426804814068533103197583823879569433603818248870071455561834892345564473975115412396439597363311176977747344248772143438815271254946419612137912011443538826699581124765475241179448113176954371654928268995948385367727073705649884803511927617223202886341199665183945025057276623516883270374039525297678126865619096084749040921400479537953762305084716911033000754739307643882358415086427531898240334893313797314946854797501363562972827667889415479359486955011761275094451820827095442894486569975633490990890809142615540047064083199805341433389869332224259251289852434397954077088415700624611173728543600603338534934440581570217512796230294632466319803914263463030969129233991947284645096688630072736855522666026712331975774934964931763670910213967681262651505771893200956251698153819337081376002791538109109317850316733307623579849248529360734767292500061061438011827567037252909804341538452241621578155621570372340179374146340210465582901287953542639093273160625356387742355618370700283391294654419263184843215497919293029813890514387173039589263866655970271683230676039408090054825869920280655052261748283076114479890208263974269701209933545905636161465324608647149304612914733272405536819969226843172489905940075136907995848449819477518307981143040861669264295083151357610643206891579774323395143845052599253108387620233350564728583043105470923201847366029379363308827342517407729254046554029216574859238235073034349529237167979913961721927884342595637790003245393716550878940284595443007065029860177146329774539164274548960181033851271034911680736625738462237640944226695738628165393969397869265031641371043079420576721580214847420184885115477923043473284486488991870075546843738757852061451812318536363867505811043104463885160664909191678472201695751406752846728103494171910960012291532472090823850056816403264194536632316193890641765968566503394473230426960758963611516382846229046660414418713778876214232713647819111095740379220657514777210400251269160870068350711291833723146114057977985913228167024080914298165478104478894313185166606777885774209968460837120652112562308454101734851612506644328022230606378655609761804363872912932917976187845525045809225442830264084653117776817450512879553563954967109793362888664805911554100158282134851860382934223089963803162011384874614350099153253685455969108011804760615221660249757383909775039013260609499578455563571498113325339487002340300395436575517966098030125256355475299629184955835391872566416991500535789646819182436933411856289377333810284314757177581706189138497278330482044108363894434696321270680391294313877712956029207752814715495625326573327846887996137141339945501859829869058149412181455386568728686130144444296382631744852106769672816258137276571745616563719559716181756307350261977274134270459385905058193078817670308085491920592172757083380501304954436170754099856997261207281788008549201286695937893966073089425457377324187654891496305299278217720827731339536272487541734941017906012721918129175317659256309677346481186436474192555056208678276855678552836369403161411595000560391993887916840138038325773743217083979709675033370883427113133196066927290767618357951326837632436494451259967814006764902846441592593762046273580136007468051456185512048381717067020036094736681421040036381011570534678055342731618913839915944637256060623116808898906433849462411048334255744905694976998747387455369399188889026575410978759201154017518417620014294693473316028980500085552840022780172649983512230063748095826071053489552382148335675338503357790947570346354965056522107926007438844693100446452532112491868780433522547976347638895174783873170923215075516908569855726393537794695312811870117362802588037699162065353668375220187337701824066871481127105138058611392259570666348852424604465358542318744994295962173370378466388269035329812472362817298156886087894348554317950252775270941425459538806319424576570648061393526442150339658628068930224262082579655241505482975257007534675484133052567448737905147966239175944237871022914784762366861486105843485987563260947086828720952316189807553649576996332911714176583702711653846046175260647244956299282399779354562145653483972168809652605544400774964466417054989100130429662221073475775478493603775360127680359135087377700859483174384250006372809585384064861290388670248755356767857202785134934021983685050669358422919528405127622563242026911898354762431526958908204368281107484487257094926888600834115667699354073376945552378049593130838069086614077887989312748083773346016071858110487627500026994062887891276124940078818057901902988480808029400165783220903873239350260464021386346993794254842031989026150576271485376955683074344633089239252146177892737219081558867538185103989532893465769820789351197888304228252172373695930138362644620493965357336445657188313316736150263956972163500457659519398242939150665678996313446039073825596031548340215401899031525262456912850515658710638289220045724325626014246314226012695885265506085878747786851527548517900571895641553082892115622661351367871783836774897468410822144983884438799547762715851835857656537024146315928591398237514091265835529756835872528945632049004358162888304246973531362660479720013538677350152154922258360906349157825534965724676718400650227673322160457666481596593889175334420757217277355757347453989067636752934382430821494499256962150732121954811214606649443847314568103162402229421623949852923455946509212538485475710741618041315839693810509339107575376382483937562625192599670745849423594469308573625775829118205462593622430773882738337096587890795549435362085084128852845991958516741130625157694212895323149932424009039957617577205390861067278213436225079717831841229745491606802442509061744093830403653879487999453093750236696644854783514551038935998002707812728346119718039556063970234665758465598321084097685957412354293736143826279947748328002541799121557500507180710993562194615962507978756954011175052780985689582501208795398197243899355150379542069218519029038331064410916311495587707829321156319156153170286404204062241710725302591368979413804622581118504709575983721413677749049230462295209950437076847779094462132756954514906648188697804648319553156095129908543402125060300993790409362618670059891897394210156293044481869429091087316077659089655094231204816749391535568299125675878018252695130299590790716755968119464020181162853701261358502512324029206677801268442514430815671124325554016005713363034343296755703331214668698138329275287111250060363287853818610762804354924189459038156858528411216240576295907382481333758556733208832012913944692384325232194666784336205469214111070546391510604195990481935544745256683626637032134762392793024736077911677545988784319910633324053054539491654851910240699161477604481009617739858230520223225239287270554603441844384272758566721192956919125351673074454748784788926742382704617604459896875889618853110263562903360250773483561509551428663896329710817829683469398205160510681751121161955969046089055991998806448943009526388006895390111702820137134936551162184948426222820008282691172594301652682152075935054833623003032441689812457149471101616571088972924454256833338863389793774395736290340509180911075524577607353731344731594296915903654379503331901408044671580642313644529655294331731535136735517925666107756283861650489572447021389616834107606911724929034644326200439240416226311314149482948619543754876683394489524319984518098192350592728351763217705814677323920788917490753898444981270651913384240575267713514106713069904947464350464298305439907953014249397079332554222038224253718228409618526855712674422965620123569612964820606063213952053889220463007422715639060551723255877303995728139940950729661976313790748685294528999267380887611379402411087452820606960839444580383286031614867261064715897474922725075479499264354387062142391135842955774952038980984275944265032208235434224763908721741213098384628424798448721021871147959344283512911528334827826483661585612221741587031189568429081235332346166832195635400766535718626553043282462558171960705343310366521776910204602475886879977638750058793370515342527554095673964262894660959143537737051138939100792257484467248955569248176009599326031631946354107423011923265280181864892847506348206798180559107410893826921966467806293106796368369559543350489934038463190896112325888795423818704565534942437888561783472406583711774047732461828033270719382427664476682811200549908728622102731335291537774578562413785430452532131377335731882235878248795791785936883999163485570311170245368477913748785306734659487582122012102695002760522902589121865387085249498337460736164675419981061198856229319828790740157398127459447964630727056779740769577278578331322549752031900344688432371614388628692685221530915700426590516260060143501353586653269729215716153605923577152205146441361337560481884852293710534933062359173713020270735494776643177514820483078289976950408313069182133717703166405591504670050953170303281542882609376014889521909433529961287528087239252862085737181458168345385630404838920561416383639502617166619262814053364410772186928442103173603860869553876874001648872220683530241916245966163309258781914467054903285944462446072078743872483669026303909474204121416611465237381417734358135380618939557743081112257132684449192166439813122367085932120264749034265960652823779177902309167361003590941798842360485397372117731839420549386322686281452428818050913864192915903444985921427206681765683942074048199233991219204681879886489294381401875645757626811731613451395938034488349551242267051386936275583976526465832447450491367457289746847119441684432397072764863479904985143557936322367102845040147758912477971436435440590991715290120663436286412215138047179066444031295154476900365998264055271791399171451783658659309683356543443034165656861482834356607123433935193110567946730918628877005766965311681209440913484849473300732948145008282242870412827872421322071748928127497721801583835510336710217083946078695246269556504346767176603803471433867180685897916692169853024078796220163020503992402140292732228969010458747716329490542676246137102150532756877080527764587303757481919927697770922541250077615300090341935238123334498517444232694257426884060593871190873059974619181360127916541144019036684038841192356455211730219926148676140861298661677226296225569010427456003693324122315258145901607206951004115546507995253307978634914263389080875909436047366257716965197418828777920278633294619838105150535241167313656817042167132368309539031269128484557181949403466771363958921287651887792469648885545585349647209783253037310277571153184419636664927437227405324549016784874384409388619162055437874510138396347776456282456904873168942408818271151314495159437070749896235602223594226310431105737714137436296901980824935416909397987445132950246967235985442335309473705866068676674336747692486678945361526115877829086718236589824892740137272734188364302119378457634810386798055573198508759929219597492412200449020294154294571166802203892208099542282572275610148737055658246239879917133061890363464010427279691052920043347864494493935616433600468457309800141740648203091662701467017060646622973330766609303216777701891238220366318545718019646780907845167487192866186920988356807519258006841320126201330505320432865438071476878566298962801758037428639753652215861995476520022127588069814898743273647635916046341315614793036508957863976355471822964616485118140197817650717787980618118216711192216778294463279347320435674674014997828033431399897953960997689693510226689297775794032534258478171072130763032510381690158917065406928570135801883470673025984275474634803295389799133608391951775819791773464156809915982412330228249371636729051834583832875899944709680314052630262977707471197207934251756049120555265562327226962005291305640578604591635135077993657344381713004485082679067013900983312547639116905007360801967469049850303459126231679902707990422300526832441959407151025449746482000385940754395043030057524594889678137767685239577390831922718462542238480997869054057540884503797062183991811268093111126185095928828110967156540582993501840412404415632779354667031477521438425909541681721434533860160258804906020148142361669932502211884371760068549770425049777771750704604070551267689978909216414797631387591594726245379389051826025715392055714883098710751073927918995258716163370870965517126380032832436548626214483157313715228392088201187292265185374770608059493947782697900590111961315511397866898032310693898073112371828981220417099805278452492954538922944473514540181923169086650684146631257668932118492119484999277812844005937174517633659998560099039241211897948500718573830900744317605315085994276078625680929625351406609572373688575990786116498278816898622916203074500525480362996980578236169418601206166986632004152446153594552924023530413489186650805319900097143451534652358324541646931699367488180666068140373478652510280635669766262231665856161730037284046972765287952750473913707428829305136072107102610558776587217076106783223533189067102474312718795614299735632646711078859494262993780410918190305093309242299510385083895665068355125321183812367663356490459247165109616500900628463582218992788069380408610271781416761273171117972567189948734374523841586914805850841409927941471328146480588610964906979381596514688581425190677826680963111077897828840981318394693614548100284624190401151291358563267907393844600803974580024105757484064435584222497262775060114490423436317802104473832086631474780596860483086744110933480893583403911301904235811703665204382115826791906494584615367851066361702796939237081236486053848230174465066544567593421845438830596553443185853013119770414582113251615444517607958891711730867549241081264935217117870680329922876544147450280350232304454156849443332743681061502184838637780421201069937459372349528276470743099822139120068898868738756818666840507270291350231432783285255142598548932916567503396725689446612527412077104242691595522083990373745671290822577655262811047245926843634191229707592163030401840740454129563197408988373540209960018928756018814436760729877194923813289377663688331797178244319729000277168667349108927438036308976983229542527881758083609041514322636735093785025550977096895490772303051945342605632797981519127754379998262586480354182882131333135218166767503993208701682628754633827735836323615779596717005694829703774094098115670474733620942958033887303487460921473231889540368149412250614298004124406811831418343204022247561555695833827059510458337610772417769743662295116902481042235640184581311186950403099456287168719961110009013452170215555965850561496474912299404566740453110826335400663754933138046267960514996252800087188243071676497992533640711725459763679193176791134244168765111528888938022538061814522908842265004905837191111574946237860852364251201783389552192200898014135810759049599314384895047879534221101499502923145675750100952483227436958600458454353707685451839438001661751663089032733180449712851414074374126059275926582835374841303272751747226283696973797272254670270625503203424676030167715109494965399615168455296882307663828346510893329230277508137150518969906059470375163355530846444197594440521373297479054994984675599468987468127661089638492736055138577966921893971040018017249014985872432526998756769193154983559467057317711802647314995744320857152372941776427852510735800727309556460627869536979943408512337128116452475850555282147060939780066384959834774208284244243988533636247303899365266663562908437251141366289800181441126952940575461551338343241686584462399402897151269630640145889729029805175290208186975095683146560687631291481890332964576235077117719913772824417558764384928048019119149663357576060494821805089686169533362385220877928489200894126605173250731526032223233606107544583510159958619207550250394954637381839486765707812504590189876425109234365616584518363407799226305373459364264208460005227031626006775005945932395115856767925376561818053828938794687281313670093204699713142572370022972731772862706497312294143964636382727069621363816222928406986531765472597643705738727619264377427021124993471868864625042404338570130322758683288670730870335522702185772998714413812092322406232455518779720257879636435288763837306196315691503862498370814284224398787912739371013860602136074049240412099053231678062950184983596004294776430582895069582846482380378546593169032566151876555299813035834457677433800223378564300861005614106159334720666482293167039483596330778071615057001462307445103362141412762368256602692245670433152715779944429048843435096544403883234623498761323532894557148317670861547496531715426255429306306083265884384734362596501585795504793026839180619860534022081629304729945727770898537685784131739182168850983025326536526418080798009623473484891998917023230157288198391420724935421112551407189808125537838026295317636713533990229456650784880329396414652976279158309926866843599829121997754372985578648215591488000888064157207547547548611352098540579640045085873018237050782907115397012438297834792028648694515752691958624470139079004457475659873025630021666908332808967472723707521754218701227547215170355548849232317858853469905359739141247159434421043725863010055139910245507548827279778180920329596940065595574883647326075260412937010203052934116546191050130908983001399404241355656763098038562738260789412983643546053352723378765790996216587945350845634986600324449297983566427554607543166914296155314530263284529153672521107996521911119780214726474571752832621010242674024402713619369500900788517177970017712768159416044377559615019544654088650385771104462824741314435702412739326717245850060903257780301340553646442093063956078867033902310675308123473348046162745649260916651146779328594397117125014996733842725575720980582970740425792351577882438837844977643522559005875827292184265580878172773216038807586770402588464989051945643605264768990515987725583730146328944766616623192365100147555842687749792238249419205110948695281831011636955114758389871447692870817196275175627363014039117389660064735534299566914116047057022735312724621530524720592015439591714211103230008407093082703165575702590050337809669002895224507898213048826481278402515939591101963192299260233244579183228062481985923527161357334410786464115446494668015348784442851252510917927413328617067786759444635820426270814004416500052267757068408506470675236436198342745130468848532829485430301754280291437063486143439774590269036923342402054374454454397339327432033901709328681875184928094811015704454646867664629058617284243302795674600048999707117681249724133035383999384698932526313686771928163848625413635189431622102357298033889787129730910491189602546808187938483907477944542678392918184507607763909528087696081661645690308865604930934064927437814466072281036468700571677695109336281709423923310010221995168944569760750113325160991065452297681732369646682211789997590672052429033502554347891355723719433194254637893161458177045653243798235574425597123193044723504820772792629114392503686375042427404703479710810094308354389042180632960949807070943447942277196168554451911449583354476395508759806246384905872989180394236320136770164851901806415627959426505599715973454988601152375375016267280816283273441111792110096633174801541410720502754744754184936572009402713987961762466623186438739564152981480070049500048430283661616999551301273010371001322736460527011212970445591297642864250315092862698257798583201774330764208395164329357777882403084959085983851713248741125692210986922190589068581767179873911290144903838601306117221031826428221687556654888790724098621900384541057703702215891711529578839841631229642781415529124828070931153042051908085077872831623579687796884210443812569632807382613013743808723089015123595925794417392982350938390617559763633933729215294266965426138964348410133465577474859556658063138346732988102440107446863415555377435543830740737086869435108695604136335332663524353823953541751651570229991083961994907942845359904071433803212013924263699380357404491728728761300931365971731396518377574481783625707824097794114821361087073382396111782621316522668240702433894613604022577530334127465313726052863259541453909301652763792992961891962532783669449706992423322249140444975765224373954746076837022110446967590232789044637210114988485203508509718663805797682049133012141844640940407413522929829596479809838776622529380017219795419423370056209902734533482811996002190009408669189044738321391099283375140347149744171610594807951869296495834131191492240496358563983294161954401639743144296362110371624293733156186380543999889585873911955668748733291868622884305961071654370167918000288611274958526900620068873902857040903821633988832134684455588647945329779146791367055374379685450567765027268605368076105912316922479015714300965062964771847694391156771362792961175258625711547529144571169870833408178210049566881759522094231851234051848598459538190631984915278586435072435542534614808504423451354481099969069344106438640933802720279803619887316904022815722128200985356232783291994392330430534154118854698702140137928491929353918346423940013104879591671445909257224584870162512060323326837805568268942062136537948831052266041024966707700685144734197705126622945958718725741114946073921714964189080219159584489923656406950853604065405816326899758867232103905276940807666366672935580774824277824059958854899492766746313653054427415525169570725174169676155262887466586007743748856327543089628848433264290095881845276620091048191078612318193224663135522532183445393011333229622251103443103311602500758174838688027947821084186280300781745065903414205779201019939793775521099940363905974830150145317091018027095228309080605212591896317637619706355076477468838954146484895933776549207850836188339458625695499961850938041636836463267706927371792561185058488246858164535933786609300371240906190559311175099471017875689154012429430731725039916598005967005122460427281427932293442798164025754441247787701413668272526905015196103656854009898934135571670758860427040035713876344134410285483616310016081467185944294209126759966498171072400804295193114141325947427670437258140593848826800543379077657678812432633669520681959541723927953855956404386874163877319085027446569455358776484317781865186055099063299905568519759396248667855236238159477898820145188867331218856411052570513810545778776437371952352425509611458378734223297627432322491348985151869648735707033494747172835584299174286310303698670658072855154500638733819026054484312844525914141868373247960887001489739917993863519708095788607350524582150393580089282397841975945944457007400366513893534017940889051589552613754416016959743874967064075939326752222463274555806306947350868905283588282094834229804875520596309177243855071087624885866095872519283619508934653617623401207187724693444886831020670977905463953465728460573328745682319902508334288012616314095512152789176368839675016225240521603671745267698859322533944811058450400683872820382583298718106329114424015245830875356419123063569765558424044729773308859912969015382904203262685475102742432392621187356949555941285298183505995200505524445224698981162852691863297547159851150382908018706693255816694113962123734228068600020910882518977119155934267389924844837858917534327182190719257070613677094517065422487307760839496535500095451598717937395238344011904785252181651650123336905122876435735955631174008581680315344996452968148434405168009680991827728289554627502590939301216959659528983064478952915457716336556362778584880738347897809325676331646009596143016774862211962617740774202229965072580539585055671730144627340114449024392792512932078486709868412912855217210967661116772901458272747609478560309537288460963384012592816992576164321709352755579146138367227545943614047037210434650517129065297453577065936058601089466148162085536262165865087905918538847878410482412534712138451268121690180047774649064802305602395716363421595816320237474836635179593056297665223839625304077686084086172121129878150932534232295912373180121596125411524953602856373308077663931647142845022555644096237249587382285141024216005878123264746333100051313171562968603738115228857547170502378770180262444583561248672854579316689663025554854265622285910495469989189564792801278053019819259795726951342850956560008846917931446888567233595854145248767038696094831058687213737063691948299207986381759828683687136998876804206254728716544264744977256554202221194516391470392026925158981506820808629731601631673579061745663210432213680150449666159761216521395105064515726642930966126076299439486625287356610493141679508921419443546719671205448502776160221378882399576079581520186912521995624753266252289143089643054410493495396887539011124069308282127988793875718406884216412496957771106490589592173824154362613586457005114303188071170202324497792426547219193387034413372519856479346441407461606175316698281643651088841290742725925205057759068906649060477492221910147883769424475644785470719440125890009158580193438008794441809724891505787909377320017174443530875003325801980328118796584380540803997706454718260141790432304584141561654430340055428212260087373899678717262011119035086867798343095252389333962369458396324755606916696101802369234797493642779454168671877859828251248282437841325547483083571328041642136793570007829028686692037604213719458531062480681408618879792359421779128523459320194390549929439970781088016495933378663187542721485923897977383688900615510485304816073292675605379616753994168154468479745487502917200196161058255970108174750267766910271071314366442248095075093078935842294396950346634612254513773842309646295138742945617579924353904547312426316690654490940167630813813428552203319120318395030941455217889615685214581712740320690666043692103292536303741019694952053871926431055368335348023912660991833267209532476129970635561012344006431118157481659397726378469402624493836504606372601342202607036061881439889583476329376737402150457536591697502644357043289330952639620869624968045669724821872920001045050757237837848022846257170249616176884671288235404414897017154024949455338826511492415409870048288080579397142223308736509509092601903418288381673633658093897563774165858652134766648649014771068933157048744037477067063352680806967221258730003265223728381643362588146517632108704536908719609799380202723957309659257969374088670862708634275384454688137385263829390416085580184230063083352208840370233154553392614900219112517093717091766390545012756721317157989554096235533610182685038267757232797154404737740993398238660125876400787540468228816251019506303602292782894981449594697296816367756841946871693254841318634488124469227119490850155172231897612015035043291180396223276243006905260321985762042145350273792744484501672285683175536552850850180554364678962577990153894102076239289655181652114788757655371587323069733297330385818301205031686459822290029870081156061678445559320895344469067947942377457761977711258721505430340528170634145381099273611686427257046835799879942352382338143176774947689333158706794390386693313204083662528725607274835981176577912291655034101204543021194769518193641472604123604219238712454403389993394942383241060433677490147147794424027365328215603822378293263248773515804685531254278115651613306577424141562063237968580951431658444341404739089181621428418465685514622694269278948997361428594900545344761230576901575726141974971779135177190204735233107429695019516845211062028681960366252780115649236257092278174798647964088355136466005328072423727205354170793912191235875694954611997166475909978951265740746354192532602523891790695375604085485119232819537877313951987363719702587217181363451217719643664756291407631858250394768451858704915512376795172484222394717603009060663452949979235245284237919043259261743077601378885187178759013235682458771385888379884178083776060716355187061166392971806198599650219256882273308119152819268096597227810394284032610445443878950015588521443125816841409969595074553591124308759119333939193391829391675731134873775113340876528647303009125816005188179353142992746572337942587841652680526258129433082174128596781159346175584619625918374089294304492721108415428314963332754690925329085207173357794871730424659084137124573086262756137553360908707559546336117940795743303541680051585929982788734584190606308092285621229282656504626319050480947312247728921090940813625752384340486785261608118032976330272922492974147224684417916589041667445033386396130498179555355493702193778174485550319817420187715319296123296270037346157950093408397143537204272804529077449567150868853329625952447164066783622115734391668913018705946682072036268982682029769735188967513549894407325516152563626513642997149924422987010279623438250395967129266017149813499552457706998737664764722270282154272642371398247402394633154409559914030365570738602094388188827110799102191657753393531826273595520034493366137532884020379698268627067282953764802582959323152823258162175036592331898241103963082535208239800755448833256688536279692028783565003320562428558402532136277626055871465675192182379995279299817401474855917652332012183510191733132380510955985892838423956301898807656796790750103124433257875855344685690840383167580048749623071478696575026618941213808040597279521059000986122438473991159576125556873580405938567120963135139456196950825697335841690118223339753565944622183409478742351111246619292105311157269128752175949879703799691338747269532739451015548409775152916251824985516458835685959589547037026781184056412485851748244588876085252121121262825907057175040585951352042030641661780690424294527421373577126000559024032667892202901105046322081929150147210262467910470613694371515841075377802686451229696211579925244818165887448999397725659762697443102248887867023597304377864655145491649708715024619486445050421202781786904125415080436403083695348462980281254636772855804053856336930064172309366895173573910297762376067111744440806101645343340047848340889344191988455255550250124367454778283113628545464885509400793249889071487560799172461688989694843729653278762176639883789265159445282356778970858211702090066597276536464000338010396244982097872652398048595012384430279562958347715849233783046805953353223523069743679037399485365959796228869518125393316777298537680385880683545215908789456259765186480460828771545222748628184215076918673158820333104209326023624094881219821208132106533359257052814037121265824454736970056855844796281418578008494532957618732164182034522843812537815442271685734275881471914300983718751790040023742243022988678928372098624609420955955389376423754780852705964379032828398528054468111469667292795983507342919609975353558284541697215940051777151700902358432013616040374604709313472572441173596179196483342839120969662744812580074737636262372595327871804044103640778787602841584137359313489981193901209736726556740495285839402592843386013342545872394815780766763781237168516626405082992362281562357587358934970821412690431106010429259376196466234126874580869463402585864140279769575377163810234354899956294189263416654974421474726212856408053011065432610169689541719929479998391597874038714500198270683338794810032223570131223801957989220246894410668467758284295523178738017090295456293572654247592278251940536091670829419839075574951823215829739623559469402285288619092427183029217961094879389330575365017391773599874534666505154024224402474070061134129257630753729839879959848902043986542834389489148896490790399865588955235725409199674336707521784396801020648488399622997744734801283724741113520605585046452651136398652061484759688974718528141836731817080965078455942564190328005300857613379131648435015138078467532307272496115961638733433523505781561419770556152478042758725949173470181797071141715951935321076106563044163125247624009219251773307604803880865955342560342865486274805482382222734772926755077830935683112733044367018326258895958573686878247977664679310455986508957652376101824295760737127674624880602793729116638898688851549450516546797435160574160108964059712532799394307030662492154585517719684659817068371635483003247729301519213159143180362404580906448798600134564308243966516520678057335783622204907018087015543985311081701115834637463729562161976842247450806646242601219253291587379344868831065096633630858585677785577821777424816696790932565458309784344438339693046547367800367479090577016502786612314219821713129423664057535636731362047300795541586756441073231140684770671335221861744525315965562760736049077500229811556581122862127234662982715176717564312657131967794302231052469457205303112400088380644049476813554863966700960479138983802670737268318729762131392023697439456031724546274641705102398364115190414264944904333146328325283807740859309394362944299887566159712927375980546444807468788078392332617353617307605324844242041518512384089728491961231067594728366343558476413516049626617766397828285653594397728429115321622151686574803698012840526287697647925528621478719219257534478088092854323444780100465956534416524626557691005602687254968511158738486243608367260198572957251355316509678175134646616988107837576555006771420722224175648289876341541851686380426060030749152082149659456436636873588866380817402978502340319632696888723876815845105739619994531599996971544675166088109055159940020182542512179577827167700479895703510439526284539657978944693907985580210837163524904369892331349999701765041341998754439017090780595124224208763832346352520714877462142144288675855660413108490413046027614643967563835429715159784778433084336796298267929931258561598106345993442195747220667783379580796521343585203760747934184974040174520969924296441769170057997787736167786303481784510656204386788340640706678329549212846217675109687225546612982232528337321066358023737909646437013603477704256734880782081112934089078408336402448762850210078249372873630758437846715910882556556216760157339619105211684679346039837701192532684736330835715350251289739297258608393867371878349498485853572962891039272404920694451421373620954707529329279442238986376207489574269280029687836206219266055607166047603559274831329279226204933784828191268181352296858328276023269140084904381742324426990510667376025299517847881022361702388899646682705129745491511663716209693277670226071136232033395429326557217260941563295229353830492650224969397799314055580803568544293064212237261034544082182037545193267536294967465185981463774839448172670959000604013281841734262895114502158037300098012181503368681696762742094996112131653757126354595511513883439086740378926513142285973174030902412939640479695848697416120943883537002393252944234359347032975949960555415750363976806320641568434851772778202052267750527782682727656087457392659745600678700863263575993663598425680124793063675179373155137991759935248492983672783656208267958316278680737673963458053237488277809239021522922155511124465275940064204567371029646828343539055312967867897935801126413333211194858528436095895529433380192018853890645806392944699826564572702275075406817518700891669039218487683614441853246353699901678235439287540662765296051001025053709749701803704759818653255120877911901110105423411996016256306547787301283420834282932296386134016056098403205929847773957937569372387650038712178785301519515226110879070642696097765046432557823803646732031820109945740578461784699255690872040222954313851145614605862714288217442885046684555847025951653536880003502825742930594948720555686745558099536719805484254488932781785796808713743640715619865017894556664754337892725100831675054127263979224630154851274517993652202585233486640373987875327983892910778883933696602803507430532665046787312695179448880007693440470094856414911394278215792999827388185301827462276631177704059474254014583638474926147491561661827509633665981831122694059591749107459289121665404028185798723390804676875953229989111133558816051887766525962391893718611799429666685914233313860196577562537195727371221551865422934459278712038800059533407326036186053201631573801795496187841182559401615770877838623124038101727682008489838629924869298600727866852089772189264923194664062098810612439250052052700596290462038806348612854365137964968515444352379062492412599520391497468048035632443759993544082369562973767258689892384574324927721599756606855822514299716118300319781312181418547788206890278720730665553371672499424514711069856184331126332088979759010787040378406899737331719705388919223864159907406121573766868356003953949856646787446598543091155208871306589448732731519991505802171931204699061898751739068942559462138546666426830051258402973639801393600050616567558601009638383879395282573181346336873142550547243560918702170748707514959946434180243727934642023547624787328503033449800062026400860689375662624495609830745630913625350131131028885082888863274985011060383143211136807517803105038559215167381699216477473779042982180619652871852488281251336876409034806617478271138019060302208885412069371501965372825605837922357900922603565933557295021798730783763550687259456689165546329848986933022307177125177838868967814299749638539656353917885566773865611881499094482554391550746682729243165095097515760105838600446163939560651615584337101856796511336801409058602784489060441593217136430060244585120721589812401394894538707761827517160129136995098498950649734190960466245739224481940100153353533680552962644031114816983637352435685058015422671689052434058714612370337361096873028057818905689159187527386570774838693264638553218655261640635846362449412799920928010990768513908654146386407179870399527541099340559668549230977251592333122768945713648691491790371052620577967068908606473525817019722614673411310309647159714526360432601325055327825251897031891923576851858453849693785225604020192230155698715152534492883863482461248858403705599967789529426387220054678472503169178937189792023256686850846144255088674291586886690498559499472237310462939238908198080557515914570943931601553208744435388138316377336610291743610165588140033559246031738123530025799426322223539194409643757033075601515026176949881472151466679384016439913654768119101698132810137644923228179024138150955011754334466081986318400134336765010642593725393515554502954075638708812136486944418761180522518962894568668447920050911741612814426455885699362074081162821687390544654605298263796314058629870254895142462908683891409103852258526642013321371302426273385779802430418602632130061098425162418890355329895583705382947748331547382385397033240998823576915840362046983991870858797503338060775366876097688413329737536930917990163414158037201495502197140414769926946794597606089261028275470967970530542447347902974558531863685182829593323764449187788076372853658224821895541349482078110964075413653290341450836485444034375865884781268551811384109084369405015626961340906318028882499826127485269362787297847021070590728186973766760314062982240744693937195135189185916521109379964898539879766363160080362671333715607140199404000370419294399579221284330305507993945754626319217978019878828220468680125357602695458215201376003654695854317007998395800876396782656451970778743463836282410393787393878483688811708656205877990654061951776872972276005745144702966083301721603872867313241001896463672483086299626880214949608716160634509098959460640535894150417686788478628349358327670102617314532290026478064906810143157958287158107437500712155232878637027238100214750149564667877301208775995663639437673097539983334428332050132285701082410836154715284446169572927677644879694986766958424723142462348272768429854180645511414849906210984117244965490873801906463478401178242216217592184351022203116419045737600445933529575403472345833486282934484497580691767754437380486818039358879586539368187690545179289805525071103853898248871306607262390936612255268449652282406972626778739604844385094360376816084169463778431347056299465699266347282709254753929372113085136706176466733958344431980210254092393147184901597320846201117675389963461531693921326632892309086168630086579154264956046880307298797989895410648454271548697811229002337341324732317599674420767501750357584933399221419569389431782084854517091615560560481918993756042914904520488580108274252406087141096062117809878006384906889198214353561770447347975351937114902588613812110330993325227934452586625003469158251590624749450313588233692001119575965307288787712850523242755175676744259961167779094526300398684418578345656022300340544712712322366445188261342554655079352443232791635225071413641304321900738401071673893533997371671882110629788157409890868750063269283521305933540232215613205732106499360288766772515641407055001074365498006077363785594314410971941770238418965641563697956946259583692720111577207193684117148562355120097483240411688400096266293654608666380913254836890154838658494768254245886027248921664319360850650712066077206502853806212164335154792204675279406648965847357901794327788088135734116938723620306228668106441811948762672947243306587897738770874546544312391347909114813077008149258101936697067785581916637647605916779133094987600420874688673024062129828487258940307109118334069865655527239816728080278610307968880896526066654823814078511051211002027584443259255048279884352188998763970668943916939532195864996052828755930410633605092829016283632318381746250292675982208741924295917172605141437987014416423209420895447766020755861352070973357480361183905926642001940612189920253966828427757588564572682644826737157006593694364074929095860338570216585538382695849806518455671558915031781968235725089715592206914550915129000114395316997618552701842206336638495137836238427589090414168021831739761124665486210276008930524674363230270063005696151021953891208747264870423179143433481652766751695467813775837043166600798823686807427484160927438851810172704741697930075241303079405423431813205641055607070844125559797525273974686356562109906258291302145274634794480541141145333041037012342841279631461527387618628664153711404106239211703428253863281947216854089130920026373218132820541623380297589337581450125240094387210981900945593526020784147997737944762646406016664830358490673095387640569537393813239281487847464459554264926019462618289863755340077228626760031142430571147166654711276609576961269151233865771511920741952317533810420368910713355611560743419820909948693862986384206461047250681365377496066607309009896622344529793180455407718174239347455882051915965713383769675267709450443308036504676923947708062973926382927052596804420938133442564707548528316189163261509947140868287117394125528000304375613175061603440243794805809286761886717574210647283952472108616517591333447041956856024976432809033318296418945669246817222053239670282475975989830995704088810831759086772155460108322493088120253028005807882446408406062171422693552228139723210026656535135695691864539668408792388210089618388425622851989073518718810775169844577133732068428419433016815822346107720294035713725423107317116812339363974084184514351175530849769470248339482070368991045057325297784232816691190857284027742745928245964442847678106134397699595484205437781887503977650526428748531982583390486111064271690586520477247427113413356037550576692168358117006527158092496892249605855981195116247727775565098541161487744464245747873408752537120752581341852243512647029776248077255353025099062371225320170312044461314878934782482691577515377073601290273444209616538964307063635235864550680729204850427892332097282339733892508078477263370280644375075475130289371749224817067159996999516697871952998709502845116781674551670384451374522621603185911744394296600898948772270590828596970283784581156219610329954990488113278991079058293293201912230519280364801214842381785503512311307184229539852476425224697312964439398960441118826512185838567826089456190535992810288778595089214599768047957132406558504077476434753763034578492480663974047229667352738590516460386453124139525395201231298686131055526684126189134395106915617371627883839083971238543524546399638638335070373039718691470954230276943916686179802130550368539258867466676159657889455444214646104009353614086442280883104389989367493993045883649975286027172844241862503601906318061548356923863362002305303316648483838795268005229121740834698040950964068053535382581569142488630979995847306125486864199965747858017653271399079992507364275059662390668730997543669952528278829955247077732964473831873111743752253294766592532892926677318440444896570656754240888487391513830381404045968450032895294127183112630365307840950617486651148887491801988535468170213488883646402840534209526913827277510713928367490174955098959458756014872194054021537973323853159685214210243393367041084039628367677358639555410671416512672433705014688260846780741923938950739038151621505090893744348668241195414623078032799544194330595847171775778142213993940753272193060376529483450439606259340223843819961405040436247583116695078717035051428219595025176219932664993175363181690791479933867570603364837635796520109449059157378634035454488393127290921656620543151363264036651652700406474206509903083024537693719131122524608370344930634403727127900021072580635033182885457389725404324332136744119129143821171054324576764660340052411638409726924909030534519137632036728069346683772247948448284788146583561066064512403450799667786295988198599127206575472494413035532701235782152226451717856124796284622624695562688464703760231074794684785021813237575088799640102526073845236332466439884858101010887004942276959282739355348657971811106172608914382970124950662524334605703724634500496594046120628187305139718936398002840054525967538438378947054630705754077314910498110906887596129076598752702997643855706273069458316430870720638149358853900875620139025193735547217873363280361670797956052709948357445890616751817392887282753715991578919767394034438634607048086021719249785158159302617733988211513672173862638981122969744404505274072197745979384903157839653801695669897541064633601198106847810262842683706169144361291202159528593614352993853073562023521872300024168290587338704518514106621915476712012378930593406342264860879560002141219174826828225237020671222155903861894225861958252022970894717692901040373745545303401095965753728195020304384510235829582423934694549377477253730998045765178333092109421428477721493912565566292531670931675206426629197935529380668411339049783328311983879399808930963856590700819780648510661644448456735801798200036929459437313436101530795577822993718665737606591593307365560713214791040329298483001660294970917074200389863844807816280223726195430957537964232923177898520575796412281457577482152379867602822480915191033244744271795655533811820626219673605565402508889956856685890008374151029300441757432435338295476358529276587311777116288264844295373310309866718236607706001046262472164203467905896970116129082747780489045262966414101969221353578376078505209731084640204535958659585167581973541934387652686296523552436596464649970067586007771205483839123630224998161750218637865678168589024043518702803487384429898163848908491251908025251621192819755588629055426980925804427023038937791987594357483480238219278726314879851787872878536171866583574263001183171197050256473235785519079223514847911468552314095242393225039336195710204417929876312502239564230237997744967041727915706188140723429409687216136056111145788768794697009056504414398812496192311057881880246854449100221015983449164816279195983533823431508302797870627841574757283562166985355800676719350738935705920295891023049911154382032897192333733723878094058691991735277806649811402402365781693978113396991869764477917709912370217558914985454797815188315709077626409981779932395987702927058518174060289266228412628770913568193249465938274439967761360865620830163586283102400618913807483893279045299531790092223204226557180499498969738591114119065853803572673908406415291727366708784206283406940009190957796187417069001907244031536098554087312302841865841549283033096864901330421465157685787886414408807187282648447728113238998084619264441828409853017233717715881022384064054526960920630469196680118930121001327646456955276068744665766954992511389129161795266553614097153976889122535652845340912386068277787633201212290621260700138574224664353280176485017867453682236634676276456239693081678050440716464075059370504734361370324924498593765029475061833455185099884606698031381841409703838883285434918219022192232072111973805806171377238799333122593694034875761735010424498029722812609436634510871619628470139396802777406965968401591654393615998057887121033624788459306549591701276527699228002917924084992417790153380816322665906123791273345633450689566741013148398927163493809691661147277608830307853627729244284890314248395536727826277362071868534470899610751459896797722211567006170679859264046903182504621633457070631733282007561285928279328175235748011167705119325735533533929991176656489213611391540843486050299603112137209482544680225660032545670213241453755954838819416546626790016512413406183831014817111751731501593412440120356423732922254114589838393792215313905638603884554908615201542763618082481565513223985192714713049962868766352248770537232233052164473033075976373375270998371583613145266113687764636407887712645671845873539369557259735873972159216532259767063204996046840350627564139379058526318894342012120413369881379627806812712248692299347948967581164791170415496206224109649077250353734316568828040709504135733938125086731242028513673995151937955716093267784764763320009797529176035134416755029095428468362536708598239468449349231866235027211150437506493723291745411836064899656917156164841545120442806559530859167732103559628710601502273334975503628417759968771471573363502300334308622602407026757126546222886593495119036564223110124709926931067529407986360541021799852089677449100670126253610926128443349104322306933282833862531336479136890747838191513207623838856828685132833522519956870710481521929879356254610343986447657002981809106717759542307142162264728200275033237027134374856607474929650400900371368996775700053992299026598049970073836535930885474135549268912941703117418732668872962769493757468184793122497182878723954155578919369657563758529705886885947433111945525288435671945530442351820565849433389686293196264857677739290016238092541896536522153612993760000831621738037459827799822266028804972377076581921495926183027152943830194013603491927624950701576359712424079580662118862479547942103742964074513637979556608066668697659158085080872942238690583926110778856758231285449040713069268930057229693902192495146491761697363605169832249590942950454093955556549374277717123521330952996383636108431352471082296127654420238109093982747942860886968956745987148087024199879017036929557217909767099269214578416897241359307442693121502169839634741550610648739210727029406453577748765635918752278423111810574853890348812491718003859463965110601208075314313409511570004860222933025239540908421090744762805059173985856778580789346942360520460269452239476735735710147629069778534783262066797418605356784284228588016893437008355835257594858104433802660765874584446078736651492241036007178005670829487085692152259386364964694990024672834752964416671071458629827412801913698413726194781189621976857221134470477226186551706786608888221802333617707154129583021770257510014728237004169317941022398352909359906661071977072155052787850118044291060498860879347849723558134373659258754067423956013338118277818600647005835477468873504807128013201412685178400738791851415635192023096509064304561685208413918803485723034023857500507293793829349763692110776760505158676907286618231898682138864763145230464766637925958018824669125134004888947961885086164985393477840985271897441989517010568804233001873845726634788392899952931055113078294064926323997536945187419402204036289015034723817757130849670838026603455832872522872503751903381870796892374629066848873504298363501324047189626480193425035467108632602788041583403982672986922776393349533037136088247959294033568560644424983102701561043252229070620281633019477601411304226998180212563667060833940027002021700855974618619725348116232975486186192244919588840313713779908379196593730560163585170109212681098920981877190772082197001933709759554572878228125909458863014537952930041452221987830196348675114733296476692175535818728491641126158000584577690136744806734006364769123484433449403121016280832790843360681921858582518040457816279342311179011139396438884869272520455940163352457107273733919657011235028433548908664242550649059012060929291553646500343033500761667738281760967176090254423692661561992705097744042999272642260263696720495611734643056919536884380486839002699645591811342968720369384095910287317310871661698433516481618655799567903319042003103006323830631380598305863056974551800236540489812677934906860510720729918778776875598771101423273923917855226995595808854237978508358965360703424298780429159499791985464512952142517542674261513273981626518393220301751059969605037100000492828391047997146204833779530834819769040181923594946097097578848322367865126684643108265607276408996348004775066041254290816354593733343822259524165750449271423884318560379476323925822252428564555428254669874023083875135486353049604321019558166819516759741074279938572738966680468888352152245528383300170848625268696295352304767066260082214503999634344163488791562124220726528529874202487112994294071382192604060490551921132976681503714209789066044195604049130829069597412779312612880467867850690515998041402623094479508731987158639055475578899744283025899518388405930827992291412448669159909168114463035965895382923861599306831925037790828611765768093386727131875676537445938825986253549900077518849220888200455209631845039573454666135874768705887350574908664029966280659169086223716824609133965132734686206403632401262769245718696896631417558935064792324322307304537695043998199658746030780059591980754406732801727519705231447803553336197906264127121764306193741886067932503859346079799641254518495461618702758117710996796403741048510359709316179697577688385685443686505066578312839528815643037959683365982813063281587975879761740087393667747747030163972455577603366566108197250361924208004594492238513565535661317567890615449981164579377138370041073104100628378095222677932996913795716730723944791029846421104222265187323383559855263072119998876404878203745051506424934361828435724591135047128625991136426346506558159524317652363698804544050874488476349920417529087830705209083078303687804716221054627003224187126735024219392581943593640880957975236394619014022622498274262477412608236110581492538625667014437413838686608932159583711883630786028013937844687454561468003354406096382068358506170852193027582485863786586556220858992921993989426547566384925508753604284335499691923861291801312366484141876552616253396352704400125698168051000190041874449733330302179341806769301847610519963139182812021475735682057915922002307881706840680658649978765524831479637196058130940568736844655850609794074495245547590353359214869717793357387056732727506748975470074382389150209587359358301274808291450095688787348445793522315921234273749871508719572068305598460173408827303915275945027368850334518509251049413426615793310499900209669518663434826490597377014704077391875583447002423708711379578302527359136965764275631303183421233804552502248751938858438916085016680240921450327219679544493683645063807083378487938915280087088521471084670384339093907373479202724355375532112328962429806563062996321067014078730418379439575625597854344102456876214585719027686368522681619783538511001179851739724609067043197076807244354835854517251415965855293878089810429592729775314393591446405314106511242430778711187473342434568207745793267802373232816549753449333104102370814246083154305300825433210468293980361236836848639492608409495198525958539871913808049064145179950033528239937568228734056649978551608559035521258800957749751499797177958694638938199103720109332829216883253078358605842539153645941557039023178739453982987004948740480483793780372080117690821839626427027820070715299738133848796916199875876409767964109356701138606848237372761091654423700955331874692075888082830729790475244709980798705849531264022097584311691878801829801792505026123851024949756116679545816514753076685349774375898930967944010285337951513410690008801788756489422078997077577783542423662313068304953321905047262052019898681179304544943712441990880863021289822141140725017828193685848200497651099816144509459501016595717426594185289169340885772704429086195839490981328138551738239914730272119622549673310438865769917448240613995611414901610357365971389417294473091863003185356410101094068868734363988399546599444925111812993958550775062802786217071321519659135169120683443873247515123780696818414491612517662927241385744191328237670982186480490307764750183282756098327369517376469412081384273906893821006562042164438317568948185186776801433501578699127495662532616872575752179267214247789970698611511773762790739487514386087682569106221818748473455714295021236079401452625002389281365597822502090675682911971593520320798538001233618290751825504682349161307431763423487011643685667843937000292562634538568928679542746953907169190359699069495952939801109555304085171371576968340367409456069497555056708444430362588268015509332605671074646755595463197044113062735628100316132436564544320108950467592697490259460327369841667046873097675309523006704651834838150274159671189849996841798708799482936541999580846280499666602063685320040721857067248253952460261129284567719133081111644665620250602782324760970278294108080845052474281017318198043572298336939454013486285241843502884062545292783623518064781224366489577072157466571505347995153879878401056228006349220385177411435889154362337794750469922732990977919869701181361198897124574093685909970632115286948923055159427385483216330552496460528658070481156864443596006763903813948047212751662250428597306617986011100120490535185968238644854498510693089426912693918929398317701794446770510005218429749036679020424780660448063018974553926458514382035834560525481696321499197422070048709268812489602987424592658487003957577921423898759161932160721731553895073259226956569741460274924555205605314269437805087277996159879909047627576893197510263374919419710994260357690657686437309082205900363318799751155858693691962708751952002232035067587908805921465761023504302181230801643979296067482966531290079203702405865914234231865251409977927195131790596577448245406440579287057040841338259707123603227916501398419890264995855305690197564335053342689859923864999297088207222832990391299900944795562258678081334300046811236079618260243506349804975805891333712844271946373610436413366998844153443436466001136884735185460304430697498296352910050765428953466378970415478320179029567931369462075091289736932756056535400068675355522145450564889813055942876313800256167394925329558398643605990489281399629262907973464302830162756550678076778053646194523750950466792373390815828141352909092424640084805712009210465137325941378295716146509356707965260488591283535335750664383091387633705131591443278345113094979833380678959640221100243346157847290517503513075846884882077642574858623997173537980506369056145149271707322997616205192793180478791087609719677402502361123102502573591959501105330723570269200839222401436270447528192237041378114959843173406107752138225121323949515553208633272722087659073054255046791538505547249471604598733587849755463700036687974440599229284583347302550095602947292764245120599834657837489948430974287166370413635415761427151287613583432065112636309345083036676919108341237107411900672861504531804115164603065095651228202352867665468283527875973750790233311075211266393646239925704815567406509962462022689701023379844867799981896671001712697281855714473928553301072556855915229959712114317438579400633476829524484156752588789281564206963476644662074765221386873986532421410823156571503595106817311108428376705104423833778199215338029274140542047817431217542370223677496976818905558951497621911947717894128009531369299424987794966844594927866987432009046119276328549977534266599807516280048858625819464895158911351295592945299595629005426417112606863459717866984773267499063856786192857498450287565246848166046976279467087745878538711068733510924544885831460515421205804078773641739317427570532222474846661722816897897746357397383555614869074366013944395369012061206555357815043008475944378396171666204163588033618586093374488650041881102920297752630693107687603984998557485113976334776745744372842252626214271379032728550374503736217571344332295436296753974649454918578207602040523968703097354977231462652100051323852523531184902935771313696536657757568749400161744614823559691556632547782041977976590294747746812371979558890667965264440517299974425815670423257565297783682180324094722103201795711786146303876530187024739869113533548092682007844544304510674589119904878997751871328810338374464448707864266689636566890643999702491049764650543092538910586775504123363884799279879380000681857813486522007333079406008384228003936108734237248372012133799069509824670238829169704827627993148126261091787675343341671640274854654704463923123240496734851371909200296181699635974579304709911357757111091783876371994341602771991088235515541353006940403267581462228420694729725639856353036488482789202147647840866183366545243585044338762612927925634798916419349190516562184050164993587773659314466989265072845946105602047266399252774058992600941083256655073768255039541753616055001319863485638107281956142250202642596198931092722278370084938918746610442969146686122459243195332655844994699628624459710123900804672996647794506494127903593688067959231334205738289132486768029403363161946988157261110096250954322021216658774638477828913858500733848116852186972143897339084972175545494582699739240773968536851364543610245928780611789080279270011645073301643421275933597103836234827434558850892205564222928356347769060341616930273794431736983423388432690898613989248708392177285423880237257350414111470422601636464635863333700744263471395012753728336982296099585626105206025341653082619788007886350384880346590594488513933201571718376731449198896236787142898261656008984029048698202936785759613020497605562537795429570107695230028067901161852672659488646473778454407784254820528932459608172593064251385653348212712314136095493414161759611854428272550109611375928822336978861403319927584570802231932262610613807506215228080849717240847414011391540114784387879952744173266297679700495421727933545519927104264882702196801112159968726628771252159272339648321394930003686357094791153261689688568392045241052596943438851737336536214482886544019922043006859313745554427208311841736750492488586398157479671769649023499442670965209510652196729846888801974407843616997303543277040153236170092091208567680501021585439989957783895453887955232607209797866122813107654069084460600266771614322032168839428317462140096594722998710362311107222701336557111090932384428986877353420588330310512394318154745198371699643569912682890863331792510208293315107154985510122013862098569404638619312044275889394746149254938055824398159322702036856496127960966681062430732394833675645428328350640839785559753449617633824101085111321246022950584003842869364956403620157913037843365216284581880487002698626410715108033015722240507709423710471611010258325722811732760031823396899749384935139097293055018707342508869892948701568185365312663702484662391535642527380806573723908085501861923000127113449082224929713632648012751484219721559396658462497312643929017222145960045177672634701108642541322519180844639709451446958956268172688950334558907929887113069569337083449283735282448142437340037037087441552597663643899367482127090338126154053413441741571499066255101053839554336677465847438597218180704064247979567213733981286862296237451810775246933358651755255683579045516796248649782314339114901458509164063382770297368153000439579719180264954872564618890117299831492806956597710847199096788040493501580482815044598962916487656411952519713278660578699017458887638301552672838160344040232599490202063399353985059516110597173340348343330600431258633181679471156608727506848550290200805993672061259368381116867451900672928305050714836362955695281215140790663326683461042998554438971103763846057658298079964326057400044710513968145765089125669521094799458080617651342524433808535968914372683726707053618635961980604695267198564159677626121237564523552988454902774331688395045327106034367004461408328387368326010632707317483098792730666591436992564732111458805959458136898895773828609071662467621444166010937883117100203905516074266467029942157740932894306145089368014261168086868346705300267004585810745590846193846760354717381728668683621172107539278602328357240422673288412933028336641535020950157150162960907752243176203854710938415346888045632107641159815941531056603801579970076231110333137812772537852801234139885991907732105492938099519608887907657182188056434471553988802564290856774307000113703692213267151350489254201085752445985735294127236178890084517457884910121960167390970892780560324206919635848104618305765598869546166610892186230350048996205990148725378714602595332207440562892846844528984998428211533223928530681374140436532777389135474822322267272384372010231692566960901341369425543435550352061729194209454224670490466724350150844273132248489398776953521880165341167510947798416180300104537143653013282701321825085958206816524318106633658614550377359717523942735181915057062056926722820917305514564824139086338741861158708928076552546940762475267835763583924197445922295084706938968084580014689478816950391025628757612714064663478165011217736825658411176480542182256260297096382300610000359548259649355451171700206792387282723528165557871654923015747455101430700881835395323298389410880632788203016203573592372276576290714708390372951065774116855337275689959610973891810494262499135715204092998807622456172395447551901785318188984158326621538609089692347814026932363801447247622574784042349459383805480846193412719516831074735313653381169900836693676328027444683706795099834442924227425964587997618316532228297065974759639610471231865385167901044295885111796592920419171956812588386786599482140462178101207359089118854357423717097656740989966904823683954851179282546282884856356632103544638751612919854329725497623892026088601728493837122772044284670195369972379856989365087255278306358311427239283513246059415615270204164949736674093458377672705648937129167130094534405215465822601317328807534645877681135599387775623685509674761844539882359501727934319622258883829687521483968344732399183009205413408016390302057824056573765143205451468855694468166740234044979056558909654044899652987200805910581738115789385537292133716836076008205460036872889264497457374741771947368742573806304879181787984717269936145534879279454199711081153337923762373777738141082439430710129063213226456012945623803866438493595764213276212329601340489370144966184836513167403825120558638377689017720772351426220265601913583941794039563279181138231848178887583793550674873578095204310705998015284306787711293472719416345832918076890149282907244476054398972490350964512800461687973296385179029917837155722902074101513143119079313133968755717790519353102696431140913786674077828656144405292519518868814675224175635111367879239756839934430398709320485957514305594984892878736512289090137457676944250140499819018577901699737193900585154874884805864977015919236761879594813047872595840470643083948191841718115211471146574774449271511543225004301918110708299662201891027972295241322849091738933688765162208491383510175675909424660978770957762307590571275066040916846520312192475135495328096405381727589085443572561216761029621959224445001143868520328349944246131910668076438350412166402342919722052828232100643825230406921661029212606700400561642022217359739275484566381062888277977881812575202844096285432512401136564569970766066311697845690876603313244363067570482138584879079571736590696576133156488896027361520555916363309528220766470558832397742354718719087227650291972032675560230724716617849632069612517241372259708708596746424984031933987335564842942449943384988814410171664544850598458755260480192680305246513061807005728843347162511615030951939706577970600085346895839128682006300468805992105142393191537534153486212260122639388327079897924415249740654141783294286081326186810337701069647131242815287252652854712487030115733557656293165691359947520497841516254354846061790162766169699270343601208082840389523497578374845041876749757693554145554368017632081253577640127846686150572407755057154356741496576088842754793164421579184066176256388488903866637416667031101262125302343838616018824777944007387080952234788648467672490577554586573572546546197670466104695331314684095068668712225243133176666520603055756327584080121467759223872964494041823882245221493082841939944126214411316229911574282306079593152818242176482762913932272166927721103789216195985942781601584670453909117668459625451222185037088134179554056038092815591862170948663249169084766576834767064531575933138766457395486101639549834193925593028537887170254001910661636906717054012190696856270343212769894292933239503638151417074392354945167673667908330480780033094311490799209519603262115097268386482362499990390993060085655729890178938483938613521438748350795411941868456128576965845232029692994345608282396608166148569187339115309905924287091961846652154154809888489314150906152873934368564970542351946092342751959993051915727230324881799486788344367976705445854739955631769344246802656780951593602389159973989560623667210462193411932224015322084722315995557635503209169732877912834357553218318568909462240868182106231146555897601764672417030985810042526249370117589114281731962721697519610749201791835891670366264243171429775133612747363797932807260368456973283208939843397067996274880089632351866233900944819623519496202071859189342141946272632985141424269999324234722180143177168969198455867477368925598213135674138166642510964241666332692318138589136164528156895431969319981531400236626999736834031537370144604004738564101259752364002216682138624105512078769644319149968725511763797763872951288001752820763336898664141662751870384434870192944245658063180610386621421858909149218205390914242970217346710469299836774798690819169592773022395265232109622184562333703949155645876656473666030116193581550662531514651082422312936517749055803335554906138572790327176671049299866347016443231606330238411964197282736415619989972055838446686421242419289384285979739272854980887878719287163452648876692541476131552564767362788472599852816545858537193684969990759822216313911729013108669796016019076593855430176298539638305940788028175585462090848236825413052293050059111989392358700327006143679075109658523255671853276489255200878030759607076798236481672463697836434108590839043851229290728153743741864047067994758611994693824085762092854994262229182978408651453024903936492378063031585757252365543642183346908040293846250650367729601330929807122693218425427985466537338151123530265054260546970824091492107015304328042543714692620431987704433447364740577077176462329224927879831625413688022295277098740199984459261287757275510946005966250928747028671017255619957231918874691731685316505250625867326195360712062384646701532164031785695048511155919248493081363693454462536092656723096086516711354934419370162318196795511973167366736860975213461736132477799939665908683783985017419505323405500591411889156564110483253891818382187519106094686882295032289515791682961466843406450678407613223033799975939878977741975275239374720294498281758492460142371038444961083321931671334347992781092261163390057913898192861143367874712133204290982452534777630833660890123237130446921978619800011289662603809335148980954130553016271558455768518849530695390758536480160635009517729224079710696486140685785863968843929361896011719476731821645265598218950894999302344384723088057744488522615730608861830139391235803725795164885967246209170277195780990109333339832957173294327651810941120280954661196340201781912666118675676423658436473864289564812038436002045584490502542569319889698144512949007340345292216520519996772455122307612835450920132063798732287486183196457210974933436117112600364268663078488694480179235136173752642600364202062951775926222178030698886142028693654720190592698261227443576538931156515640828960984562811353789613739331546894609858407730586539514291414106723435700165336799842732569216323123417925508349643217049594158001621874022926066286212865740729897051908219619445052737309590898267115449807630624873785330503604738130881252655373028968371982146658763777316725997777619443256955891559925396343089958346619532262873190323335928309313357720645487807250018066640753523619122655438303402805994990775870287555282592488233223746634036068691646105578856394127078030425880535335978066277925119787456411965935350190275984594802402981576463191220524472268404634726707305891683171049055049436008921980394610034354708138607586731664405372344354496643461183946543949677844256033220667163382389641137965585251170212038521515241558511290501726693051110077955502930885361120930221359418217802338933441695522694420038051182356051497349987322417633233814817219051456389406107714854634199064588294017745878739905032212855582334581275119950092638280501693145300338754019471704055668407504184939373479497337214684975398201803257780781386400710087358380295535862174366681872699934907750156841970385331054819889815772880897545586203902061232647585162468736362723243912958313916215690614361849024362818595126431597545798169698268008414245139660047552468704476370223698427157622540618565581058049112522303433932021461516991046537807375146389367125720802229069715371624623029436090009656938919942971261061388183110514407351644850476604577545472269197355572788434355124870254683969249559470906777324132072983476895203939072338228082705047899151861417463929061190960893163135254605776299994174640032027208739407487982083055827724690836800209101662811110208132596340616618419725496309245254150644703650947806291431482462084950165347604806277972848434901917511758654593122799658972484520135418979789692985696414709924507560516869432277145196400689408315145582148679803534204448961641360207025879864347779338234665505287721765064512544365753430158276390143703928932768487971306890388916375610480222592903403920485433160338028860484782975006386544448161471093373093590352433416816814657310137118283965957104216152550524275490829084251027811897326553354212594706188073290771829277378310903811555934886129730358821894054546597435301673038924229237196884588191031814464963577038973361090315534975579110921921073187915484654375205509655528061579682492949975948303648610822968454322796247953148986930161983889129981709490450894231349297986995996543035961344834181233369583693434896762972728546770752003255006245316019051428282894905108606838556215850642547870501696812723886322302775213794804476677932617477945950142448649005456411332676015710284623782240391570709261081456319055583005389824837609541874733760219669211503836225069244567414948232315196442994192428284297466968941725852599911353760821670778897662224713536686391500316772892253762599622056009068895083544469471203210006704708175817916209266177116362328203219030917898105374625250360515796205421604859607365373780829962460684179924550329837937417048131367124086167495881993516017617161901378731829627254800951750795766092676132291082742121631535989548792498070778552374053738884212034528197582809138383047994142011653584193266263762326694170043239568362717562997730747167542032512928938458400778957648924575854184943941864206861236992507542203735065560047904344000717740371005058066223572060475585607457803173758789959547933454629312931785401609977515625560648833254167413445308744096713712991310735562128443878253098360598736111230383033052718014102800566817662967531170270124928656702288532062167669743546025240487240851209323718781438786159030076069899616910251760788933406780581098790267888937064268035945009824747646644287154122140073920263793785713639759467138303254694057797896363939643366033875851265781027971088474241619991866487645452548035981917987061532121238434805668866360399183461498270652244138515231803413381477054252503391400891035429247703886190245577807241205111163020762790089898277791744618643806808322004515174157771202777194698092210902785766760351628882517717948667956763323264403837084712774184760115052769275289040993851295141895404892743439082901565183303119081194081182662152846382116626250356046384094714683669770937061952136310400140300874128456149992856988691557684662493563653021250705179226716651984029154220382918435984847444508263291173722219999500792957436001505814208318394691216627613159791258283961213516563979270071740011001053564876901377998004832950300507173928240025867532697340552108188255349247488592599634721652817956162711589107225516239667582319320793154898337148820945301192911527552465684276092531071258300435606386074389837411601361784421262425748845730592460447235070336054694772924244929385779212390360671204915235017680789732069456178531238423639515294191738954022697820750259906078380185848697859639417988153832999085190302629187933660825361869137464294480719635684547334559773890256255888767517466708864591011568440821052344998805913142861159275898493131976995962320595953747730198989581090713778712883554069663714837144203992284446143269407947172467519693885958928634895039747052625842408561403835972389844787405936777711061594553219117450609085797953065447358871972711218248341364368347861527822125531530486112248871316073946223672487302475517646691567229139587081011809544512463144639355300743272483603285916651459816113713868250499336448571503337366626726697575883838846537518473562192788508423342712357839861476299825830081086014264280395152361128563696421895395717739401145759500918263064955405179276549896797638455036159518300835488192793285384343530440666084776195498142845735267155770236835703031889574426690422134959253377585144386661430700666371523998262153950044900738340009062841717961305507142694629733893035998439366781292532860049911778206925082853108778523444706099772944470634768979539728434605947490791832224862777192176814276196967716442184017273130707788712445894732967903717501295206825812022625612997943451545362230714898171445000790684785096257610242996115617352759736341372042112979863746717891321103449461215224017872896845435232646720733017181443783178632974490617597929394272495678293356104124226507030527843888440561981569944733506236824172682808659850693888268416869462356373296280991815490280042146635131734803188751576162047344835981632759833647718961109242505571547458145974187467053274331742281909238483360905629129346622138379517244265803766488140591424128363851449967667073445928921749844883840741634387945339167597159582349928507128120749778916021247664927244474182283577763008580691508486333425068391138995780033597206543139535003741819527717288065056285242318590476333387612790657963504622744273154061938553939253816545921241770619545705725572902178638339227286996656333071814539928927587497062491214514363205274936529905935718301388239204159948985047730481439148396825603129165348683332389065630723215334333491526097256098263515076493562581089589338201532434932956508682487852536933042933637302192337387846010941971817841886484228036955114236845815761183648044123751607957007664622172086760539982412319963393758841053857511403516901494827933447027074403718886714390446724643810564170980785729110360973939356305542577955605571277085545668248272867738655932293077743563739674882443145987833741567370538600759218414191105548690795668367540789471410611803893666708861201366496684616066077766283615328434731896799774433460504903598974530190062608812343795538296014785600796127142344413826429501864910711077955572986075892142459380575024762185134327165957035458015659820474397605771712440106966877999179198320758767452036395156788521438360227152264562647197978150601242234728318517079413950334241631335410718226324314465117092202515089705473379809425348571351099383385249378017744338106828701797034574704647260035703178223802279526543677861795061564135751239121641925142759289933605884486382754520686526062255474477641449582250620315782181309180770065292563616364294907019172225048416448163220393892013056813251553428951967117651949620773435367879263499734142797159068962735375051821012787437963131422446040761553131309113026274172858836832571254465522053658350236569021314994343917260564135586861619694438436303153073624785042908173786017431319837392101961971197205265935715951390711758638748629765404615547479412113554463577505357304331042726639814319429067138773255034881213047689338423668910403462107302951755373484840166947648315233587464265160498737270541123447915645536785700989902698837823922072099715896091944643366161877832101652665626919300525463083246291224387044474397879882475994135158682341973073757579861898781728373743884432853826000097920022913835758712521674500690463168665817485685356817029268627767208296204673418082620769770388873277127393575544940051203563442862394873668443949004824871512185000415611564498315584445029406177035213181892891479542949656464198667108401019945914891405731173099377829988681069312481795456227694665241782724419847874556464898586475525982368801858012966631656701530336111049255808727225785250145976895835833093932421989699721525957582976870487481675439746149259590968874108792530466462481265542699683976432150293716994262382631380477973555053791657721685368306565590846241708458451206476051432157721736504579612509685600970879678449526333091839495249546932665668360612129712655573515927438329918978388576097860050652552316263579037777187932274166140020151958802297704747654080155450459680146242285070275818719466801295211867284181359057372798984623618977895487145977538543486163769473480788182662880451594055140211376955924545697170198605160892277671046960303944818505861306412457645363551828583314479398208515457443389892091160151499881057041827951763117025770595952637136955790336278748176136467860039504871264950958813002778713507181235970822295720197757517155813676800092179395789511639597526742758551487118254020184976950363258321171704664031107999934552337902358150506421043333859548606974808747638916754587802111311797228395547692480379501658708855391082660711559869406005605093759074696774619691660234244765476065584281941628275681952403263294441580923832292263584057242539380476408009940395677265139434175452780410740891174227683741264835206535293927873844931747138433313038438102826107862811259373793862099950611942262443365860139519334055587560577362908720054404843696834419214329918104345740204254575811990867712910350568325597375528630960909796185923384786029261123431681877521471208593609321648221290482793188149393621540019212685373566760065731179828543879905572501234873358048529372501306291976398042023176147249948372188053162246449741717277829163781134135519210642067883554916637538352784756030413692975109690325767401385564472435429762254685104729119260689366826024566288803522065771502487390067682363231930903480216557141117267339530435981408650750025001988045984548205893073506594931154047342120948445897092377032084484168636473127874493811862759601757212753175834721746737473560246676870912681691986453888805138372255172503793601506086099696496424526556767084295230684299301861860841908830434500182831737168324535799712663114064702509342237147583970205965971828840027866881653894106143543740964472459427586608475663593344388689414223673679588199544091197558783664628038889985503222682853142917577226046594958885757063600885162801281473123561461175143069401354376112934320876811814737268435781147184603530898177008924452301876365780398112411524687246662335598085044690862554385220971919605849877781353889058090299227479206752166926091851369540045596131949909593551047075248179706935351292642615368762351285246663598803057939169404538448223853302558561626335057536859766172147165819795372674871626260556774535618839811721426565708452496965397547358432270627857739487528591789631999375747084304953817656039107496324388007356275822233687343726342003794384703187823525368336694879914499825782520939796978361820439645750356342234816380722866640913999325574009175228633040927041887904370814893621729112535672286588460708891041763862312391870468824411353498781237919575351930758243588788040874266897013555709423188425236988807281914431742434606033605278887398784924262693934992116222718609571867808276222811785219356485929343712673148134325150165328066302902806419373425772417818431193610544105753253116647403388021660832034669035838893129866139799943425532842297177307564404904649230809809356961401564398101252694601648645545736898982393928330765852948360105156451489389712448516654270444757037437916709495477452610494791272444294369062711931939660967622977023125180594094119131077122201080842813922093388069485683876639423109103306158843023568090604723152962419553534364168549839436700729584699972821612577654249857239923224176639307861709064968784364672085987477673052606561767734842648216685939318428194475882858815826300907024486866521305653164899082772261791915157206735680817791990285702832226743212906997385377368777266452513682529282307279795118448123963590779025208960431660044920256182304415635120088313631887944999720662765463369797137475513462909727496755004141408962456462093048831930394587193775168407154516241045436738533342487640450750542790558478394314821500130761787219714731237525642495379450148970070528295935005663204653922053071759243045649925831546907568793646868938780472644916084548030212438780062275797245983988728784350099987843954834115421093527867236855932978905026377383530917206534069806968916855978086428238191454596780332956527176660275737001648549538746687125586983450359089628120856842825546040749672613836495804969899814820177958712503108634312479152895630106968411549931294052762405331981846920552226439141472441264116744106826460833139979475298357564926347346685050870036744501291451705945558378360248186005745305221976930273461302915543297640515768519246398876715709682774905990197936382353369821787431624601702388195999529133564665084686299500286035823533864997615337869917968260841101280634430478917822451272164528768515905003218954767501400338964545997322836582549084790125911859266082556977157075116398841902682725688069771436606910402734219906854526826356128149781152339698197713905638174256106482154720833093641284407872197356375963526466570622012367046063029834421643890474347746394298252391755035792364984490630186701518495616998200324854717580181206905499205002877228838100484349053968477340264744542691805730421895101343989972003137436604730310597396186537229749886803887783840138820942567719409993230163148053492776400146339994474575908903897656598108079923490926312568339711580624508964284844985426399853122653673546057491491672547090167945252000677340607635247963432411096451453057815738956831408600769272683868011035221913515716227432000547542064689662923026832202905245967597925812506930849589503375200058298301398220009865091887414468140707422497231737283565920057611798391067898291328416509393929614295335280710250548330985966920853555505037088564434467591760721175910069562891230007859961690893865776377011463473196184945462450539369088777686459865315857992845471379811230535263927946797804149720552054368729144802870781454808993958707345317959293103270395648928261845104742353177429359347369224718150740061056664937087083618975649854945924196110767097844448225129655233216978141851509861781755323062996591050429415344838286278154127789440311562566998490166313143172596282845673880607216574501415591578640527666898784368910262688755163232823765970164938111629737614246114895537322044820068284576566426110351608303204024467293954804735572278935735702537013223110208781084720188457733577955676109059680401149693510951154401963989770983628065925940652993514804450003665782992610171510353593886203924419206984194733123064306398131005440200154017901727597371661645546526759168841186689915747521718719499685279762156805775736747523294613891405053208800217366288557049855282682933324985539352514917992101280778200523282405677574739358575805445973712916811729069798394987201237293196301582219648811724474359296008602488018765111048055650952358883741827718707140400419203149093658293902890175840393137440731187613061038595915369788260223301319550808126968832637962717372865090574933595277815748065332862475848829050485853662842754653231344478401628469181943142967478620215526537960447598851292389398516918521788471875579505446378211768859352273517678664263446850316135788752063440264064512799260723982341595601627835840248329645728329667938913249828262369619708845629493554601669852507300847565010632207712875303341187545374886872648372375486812490619263249762422206238484528145567420345613910920951694079271825443435946441920574577350712438627217924226175921096561796606124218433904297280927229496776999442241000596234797299319071459652492445126447630297539917212573240121382893470117512982307682145883053632182274459452172191868973524962192843396855351911990560988152171940014374931399430761631629652600777680289492195110435078269739926419295491484994930367244271056216227692750718754144549222568295772420984032206446789184255688639252748281598331539042480525580473847007151508783460031753060292817268158612819809712252948183844794915357037804306044470246046000846238872974919703375069166955660584666242841344456628721830212208437206725973773989151870313928933405622366797008354107819267887814415241741637988716450263141098388851484115484284087099864316335217429414715349838272942701553637633609289643573707102493237419771593798878990486949120213031436330146858777075170451843892984478318046115168115276786383509927205263689413359943080229174276411140992973495708075200381001141023764729604151548617531041419086150680644114436050779247225733184925211572536406800654796424007155870730903209449308104674357873129651357391494970049155291426158498000766883687943471557128689970372630118001321027601328189545554722170248681630577255869803536996231220726791910468371126169363453417814753078817028709970871128364568871562161807042110764288611690366528872670143472368875406358560056111359942327553752461550130794017397072108191354216344188051960572844744852019028934183174257954117836608265150226598069666814758562096937087406616187599470471994539472248048811564932193355167857750625326685625189561286275110816687338511237132732454292370010760023448034350185402642806507691257721413382179473309057279957198118069190578355255653568069374794180500173249279143702109114007110598024869861424605158109292530557039474635247181576799986115055797558729231953280477035988959801152695844451488045063858532271796909281794012912445147667717749328462279115049020551493232987252605884130324482349601195017683100817212311542121608505726292785404244157686318339051290740548627785026515953723587972431615706733772018883893041332125544962861491230306512634472012031552101100202587063333654305515116920090271934792024611080236121508380398371274318811926242745493837325159341103698578230866611896669843078961700721585235307307015565724672940837741866435976293777998641749628143032417701131164546693008870260154286575139414495279994001843130150786724100933922378779694181573902849534994243562903682285049191558373710408592496664309465226074396215879421533378364705847040876925523963855083359956064084833304115256453732872433464217909899597164496909003789584674275306040832117218872363474386320616879900279547500204547545030480509913232501966612248491925479199129114442291395590986711226921739925116427280689810299737996696741475436120227869680671015073311202605072304715399137653926310691137970728302779458162508156585575614214365566697943141819379939007777185195490539482326268221177246865562097380930919779072293544210767162022781650327331837963982194043959559505000324238598067954195426913851464921191103588043597207851822003887719524284723272560844994079828409493271630968720289775343539440858781272152785513111202803993666487988589116274030391747767871784730043185342077172784351958107220698090878696949050049089884586584318279728678177645775145229053271352620824220184654882267005749435519881581541352517051505676467401835260248983842295209196137166795261026857918039403238297586384281823053910522538285296469709796415393071411178728124660327296487173319274537125238359039003127325467627856058082556284647438609012255657890857411165878906169339675234373595609241641286983495322897969944792739836867709438401372685819645518577790428161218606752485078522796312215522503411972884843634195472401279437187377079569812878513461361207679696976946469832645264702709016670317230929711286101926484772937245274805656674492247126810487613654602712018653517503035417286382091277279946456042781217040579212989508329056001923259454052841745523426635779379287861988810008188379281521164533047775188887661075852349355961344395267816635602515869505405997887677417841659976550586938500404558664386942280737355490022425783478928120819840337897219149885378225745369208037771025391837026471477431160543134940610021409083819995386952256963273919324507257412355189968134274255882086296117243874702905777223587488675654261677341501630572325537443203008360985766690901521841348424242383607541848523836230115578947378595899062366154359624339448560649351014972367952362809412425402954833252524850417891157293400847448408202550097264298711674346548085249975525236225484246852708375901205539217685298105908136825861306801919299730608977882785114810243850072056214615021880648884492474354475958257307658130533014148070211792589589071659224171909948943747277645595485152400246493225417302459853232400029156322730969823430555309424422971763340363523323117212815126862139557204013921713711418067716867320267388059024992154261291411435133845183724074109002602464300680699050999094020229365125677386082076984702666603209926535826081840472260151740615811535665101156602338631296342673652856170266931522705480914788123153917427845990227515806280708808397460847271793140576221443224011915421799667513087554302923862024599284876216266201777363560167335581910246224401577454319769042042636441043896085714936516480410896721382621515870839977375583159855500569700992716935778333822281998473420575248109721178301400223917113584880788798827524919393421576784138461542515312415669871390974769867715110866122816128134711110342383942751499315635061116393496795827698893755007211331408841568875374525981465219717683021749095990694262242731695854140239653638535450589291967286061022921943632733442670758785462588059432020839416674615537093120792869440258973461328821072446000872935517516721797130414823202549796290747861517751491741846430553032780224501574824900063604708845984990797482755685750950748403867320576608979012593896846628178867403735548629717531064359594218390323284090515476071539172815101342799520433816882651384759916920834283894654261611910386837473815716820486853206417247707074052935169869311670424296759002657325156949153144967538189660237693585979472678832341000710017817803708674862215725671706214171664193169156796340277611110060106402813652998711480863840117796933917181423498080641112786787480211942489822273715495832434286571147124331006893679574540537744524470774913552325028137541982558275075478616684396136716272979486320701794950248670441569521103609106765322764606272207514395199842232533343315767575216935730237157999659203172812281329582497172156526432064967230337555225201260113507143470441187309153668798651225033412694888387997563479167150064738809845223975821047227900966029276728993660838404088946261261643292473418792403532158566490163374323095594725404892088094723702257093358679117390974073664406491990768988579268821239243774187499409994782824543107683465844823521699353739534510994836619511073188666417268820767972430497368567387852203596248804431550602728875157225234798505980707568015133911039278929518817485389195789641733965848439712086795584209400438151336398218335905640449983159463858664671335421144949227732595268034872437194448233284355751744635565960466137098596948275453543550705511887130621469983826010283733539840326960631231037899481526257153152025937391979064838465914393852840843173755466950511305993172347855676077961479274874219564821138953710011053072200709023423170203047290087957554208046366521291295543908020563221786083310102138658848024857276422451788932941950942995584466034715463573927668050743895854769593825475703328326689906343896877951326897807071719596800168404389974110166995518487712989135647806682797766418236383516746599375182405038892000151272947683594474630472871085083061218125198283400642706866783088044033099347998275880042321108684397225484069263535891944093154461703278712217486437068506488872319438079179782051597375491962695381190054205120176355971633574952019672106652730605843090706173673585996292980424063658492986238006276521469890307750984950783822625921499745885334823998793588418480396194607473527502497064725986860409633331517874224116548731641007397675327266077132082749711033991745989966700908451440030272242527784064514494230680374056196438860278962316908034474966054807034821453336903209606420034268454998773455248216410046916316621586275420314071261964783701340394213422604066984990919691736720338103720837709711336169395772677486223739957785215074690658578128317990018737530047887938580240817580778513210046513639880156062139325663033540693713577520534509281674989321355002246601921618260287123303496420582166317576688794624155570578275937834137706924259330168440567847368429464146692633187996790667041665720288449111249216889602313676764404555369359011827685157792443709172938685796935391369161105193234552660819395323034985253486281713810585807379629038202550303359952008092807663810668865897101383425433375043631436592529953909931957959902967203364407607494502814194135063317965520247767827273331438897605502445596444260035305265564960658200579111562511426566148540559881339501895536956020201729668007719067086611928184883505929411644536258353605194545270116446018665894552067694591839568638396651122727518140395196928952150987057071360307469434781930820771983516585007794818662841471439919526442463482985569327635449147251376856907209546615109811898072718275606656225681710721735623253292159198565844158690967723181168423338196245002064504098261821515634854763248000084954290881910974575976247781933321083320155203596027379846549487990283478076884570723802389245361618310151562736667561982636528962111155911637882837246959664861355211238107883345755951781410139380797859047776455932798740519049977919791372889528341880318463526283703089443890751473456024308357752717103313998600147855997450571190112031745346795177926853505762386709387469076803069061100638556908589433404969399374311564412999575058637597738521024460881704684806043806182648308810011446690029242656858181997971601960090103393205325931816500345573270408551294223686323193240420655202889414958673160536207721712280714580343238391148702235477432569781624947323785434989359065266274650543015706766914712357719403748474548495140498659227792320388753325923823159444693858968041822331323851130603749207638632732189347488676928233136886371883165462127905587787443620768300382012911269427261608409352989370901718184279941096914536434496692149390029526667624530972113102089795832378801473515581296775878246453335388741032772099675649704726825591139174380405857703314024105530450100790917318110444202016902627447162522566623296279352789075794514931551117552456005618900405465134566992198922876397549218672616233553702000921111591127389909044319130305364668888696989695359352929304622878642243749632038704429014083741370703969380214686438596983191202975527594025570173115084548950647348350094194976816505197169206033452155222320358976975616015856156640192293039507560997704398311625755237646557689373673054307275481569125463569838739556708974315237571846294307837484397242268533920219837247491315571443735940942363262511692566791470955234040007498075104202883831788092449645002725343963946477848095725648497816381065882996740850549506799358260220866215666095831672773986993276400455086533967604728743788597735307654313437901015814071898434304752320311227860832439276292051788398111823520831685910122901824519327538986168462403586903292337366732522808988086083603758567577488924866638996791773780925323904156161836103482684475410760060230277112320419020394759629668833937478114604376465964016294322775291908309099641934781814532062278291658835238180112572967532129329603842361100727034217310474571373215481437480224453709616508694412822393566192107652028151049900825961374959155590769370536633391420058182084935155949668789276365923401046441222399113394054835677618855777825180518098260026062403823786405077515918346445790574346024695231929581035183224975623786440535712200341038311592765939006274984801173422898116360768085271564117941912524418431435271657790408440930192977193305757002304522822393786590075720058822662261718059566685331571537051928091123292708972374509720683771833069613350146290401712346021769984516645422990431632601997118838910935820496888175342170385351234322294178916249260601931723218253207614054550411104826995972304906751074589005014660393837129790798259588069963730067832252897103515063824460453506508544900415117408866419470539390943002040866644134055501096535352214039653709431850568047695827848799207793885643599326193886440979584302570490088322606155943019578682542322877495220935679965013062114575835370019581776214269378179475132625814471196077628427383467553395526853683285387697630369890006388288986774088775330006037705645399249405071242912824120379231369272998315038795813261330236346626584377323416546740432060204185562977376182067537404337454848050763145916445831184019152585840225037727888951384577717055768098587036065637897240142321159837787050824183561876733293380054217824416460533713378067083832031226037215921289010243883876580929528354756161262361411818587685548385419165080207073127967851797973753137455850311864796143656012947110166080894315621083496949770541366259193616140134479257281187357730317367811809728921150808723433817677902932687480881773406264514885143516689983212599737414558216553843618682261219349918281737302031983531895979859527993096678362348279677338069554394435215113101777551469211782698741558947865362491902163992082649079541047463801498338391375503533474964848911000424222367097743029627391233967132171796381794094188715860815786059402651595925837142559493969255507542850057031566882668331421503203119003755294780982803325832685713387870228947688171712358575691149445279501934042171771693591412328993219364956210625260438865113390878864536209573970195390651112848120439623959352794486565857979852135521088167278627747086648451332970287401386046366270927643312778798032182528541096806219958872276204891417000336086650197083073806794543697284668471512053213483512721022688625374244825212274551696814362181976544052721970321745769851589517648294464732334932264892962378618900459008732759323395405964583074093732881243714680452549132885772076846065098626130979883285589363683514074574924357030043907138507970672594188015057642843381576836032333971849040949746623943663572847793002705162353680938751217629202446969435477559067260880091961572934834686495846645614369615563631209285596320748664538665270546110973011380205498858844336163438876127005438602411532895323186974977850984115158071913436978641103069807712656431800250218594370115410906076519592010878947145587925200517933189770000416189845809070214570118439484176573042750084774139192418504177087162615268656384999213955881984376287538157568153889689492030174043243719379592379786750338740123425538400133043770058340244800356063536519783217319547190009806940678546719955396740435028399002984878657535131399257355631944884785479407882028957320552527580785531142749075150148289105206527488702706896156166221881098596832418450373938770472814986628084199756504669675326872220399281191837040015212553229244351481911190759053269769812417894513960460184443599808386542683391584973798355877963798110282374592905200442983563175675724430782016925513945850291429745065802527597432093346167436940854744014303135123258594610562790239007349131552909310831804807992621264891262794472638254416762758148425285061797712392201151331595586281613275473500993523037287699191399587491430402277079441937764988308651430829562098254714844013211869977935412150053989145380297883895052246117571844777819253799672835906739757907327875904282808610447830701527284945808807641941887829644750699451633670091063976214488042294612263426397165745283825928963371036998678444152176555490597570614248808490168080404784063010836348272211987849123550889041719954019285334665473416015686164246180187010645408556863442615774073405125216337338918753332182653608127826782765305978931667335117657848238276964251669662977257576545003775829647288072688307629277620891966787444031784935169656509800268450457847392153065087618372946261735511992188288504680263678619768102419646988637954830501971383172912493483700669138645748376911602616430499797184362639250703776823835976763615322213932160486925648134944977237098463260137285617723453000484882678520106821096692951039993142333861703910198237487948831543786495809374337750130952857200410248540304354997548614596336333473253382898027186284817730753243356067764354647401532920540213764332715390151669728314871029806781302239545024071743687746899740719777194013934778619003960766106924960183836491890913059504026351248663789718519588562068426589860985624855503240729765370207653766206557890200204602512531108908426752248850547519283214940668651743612396882259012196757349806150887552120402583685026917563322217692384725356100047447590529320888483373382040110395409438820721074532380484589135530706629757205498276795801610316787523600171844452591743837209132288257662974530487089670949279969361532012214210685649603493950855363943728099474574709371266119244971029487761768098324295044945482018170148514796082694104927818731703006421545258459175835145036682756403894633819936581443124951279956298253249961925362924771213299879778343414215022540148412362977608656626925212396611865126167719871704383744555142733888953462159935498674802834160491768118521323165974903173879289476817566234765669116640295148645027652009638873679286490282265548544498779595672713590840337085431892080035600576468456310852618266789485513237134806192474722684971351042155433257495496858853563001688659884268418547605765132471377518826346885920309124507461015032357093932058062994539603994273508082347277158174568479572755509001627465419743563429626321986328745863616233890781528563432152717093850995030459706627532914799594121238207311698859082740451026937325885553744389060691821242205293051605684017781888031494730237507464605109335915379542526224171465774819074534849671842268929091357208633512932821146574761264857457247008020957253637716877137987908699648102351026425234482197645847487967541781871872622186488703873756756597132372868648329066751216937081444987285803166364231829873625636940075631782166176508675542503349431459006401291655991255191064000147916920187084586233528665266027930840898460223567861431020081534824404245086042300191053735036981528713352968140028457014840583390250466344414317401283021611991968492713170111078602894041865118545564829666438372523792837738406606793154987153803739557755229791264242433181980151714601107763379480823437855613420267629780748093429177622494019829163816283731104671770287202622655360566315623726138553255545768252699449199859917982050772666194053050375142008059769067887401982773878927749970303117495054119871633788057692887931956207688945047991590441575024958250581986757558586956502594012665283186738338684320870951126602479531934334202205666755399718206875204729014227571629871745687190397890092876326524894274958071307722441613903981136143126279362050891765867389489267789253156149274319264569209393690435994031341601662423064164923909541103696493239148558799583894649357535481112032974348548223276506531994684300233904803869604535595998416369151776924306438886647645156194680217088904643741994205527781317030317958378070379664641441241846285936015994396151037049601409253635908931918584028605342329715693985541038924588380495241328271976465279109473082385201150338101560834600098208963194715980180564488175397861734306987342975072765004194073603369004051344477655341942811451368713183545531960631256218727233133226931130369619592438965885775499655600246774775058645794402848504370529974733885541642611201250626331790330501202047211081416460722576628442481115338922843996330251297654935163293937085839737922179589949173615784990771040952681987087561555546651508155039043561430961460835774057795261582023902797384161572643346562509497463466417679612956065758591686731705145931598548056709552533254718980726484940328441678415984952498460077245466108864679293191619554721501401035924005624548280535477688211698779521747085954690572802715164040199529678055315162823170808033202764718762429866315385421333673200013660547903543365616049753214902175577585970262016958962218264803812755765998556189533948982214100219634842578884667007411336581136083741218420007792117629351538731478614484951335478142282824263630435656709666396571118451187327462199788160207841705601855948746296075441280966484675089695675822025034806346214151772290731879229424116887004668062062383866352286369318199937941888992425158411208493002030979688262078443158833711286234463466758615739959836943655736636867884709748479051574682645420550724595954576159983496797502083645604893577298958520242156999360274260895943626569453284427382023682838925044760521235731077433741215529710883825086496197880027320512676054317528195098088658841087116698586910100053709398109159905690455624006905339700164398425607937499566989874394878039387598971924919587628302196166307006317840696754055601872788955164705414603767066111938984319050768465936387776167492770250135186983662364099552013950199759580693942081644304939302565711302280881337474598432788113551589397325509780356753653396267274919541722232315751726698044341536238422329775830461481630273023421571217660497782927029480892494752492765597914178032817389238223454637383153153214042543899972257517563709626334460475219661912956954909771048411736753472961272261055422303029690190920110387473053154578839357682240202438979674683779084414212425256567024782200212584332022298044819948522279722224352912175429780437604713983175643849256779634698668454426290972345198826536381604295019859820554880282427957842870120154426591027515519763480180958984605543122613157604904331475474755020185673958732241454195882077710873345093113160127225978547491185685299817330949872968555259821021347085388571058589448707046081035118985980006002906891687163040788454612010236080416062469478174245449429925830019062886588809211554443507304097631963950698334236713788866541200673418725175313829647149091108304469860349226640652874609481048038063590670448117592134777462447491408610897568941557131296338103445897215292521724581642642015182352194497048624215988770488991496671310367391648205482097452361189704671555121818811108757433534349563409492061725910189088872400672121003185437465473870027055989679892331302021016911087650504676621261650672100594861813544541245794832306398362814712979135135324210893532978187575724038890283168990287981887058480974973928426718545722401233792271863712665199075351467705066557480982550093804978549553767136493362326640787214246055121152446942264084602712275490678549757352203496271074314702520719336126492681043053158094306430934481665857114529057526452466029309353003365541192670398178588812964674678391742574935589672225067768417107858230371757162990291328267343870281458285855587854310788531383823341605940346695331933430691955324828119431820517694896002275807178065121254701108465019039119249652795206927451867741758341116067088834411714308212013841480021826159880684958720554781016621340787045947857714517888589610261326611998086294710201052243126515888105992660014485302146901141187800296667092370219187851331443807774458252148328299779316108311847590390817330088785100988842355934701981014052747005832674855285917447036971649870238464180590074485322445705152380074206981493448343052600836373081423944760864903717419958872613952059060455639860723832422521240153765974840900767870645274059817985860200071023891925001767698798574496787126231725781683433256099445814695811715965947098443438389740387196820082021059298704528419635822005739168875144626023160492004327308038538209900193952736661945716003178187691700491284291743278474338716873689723014235464087845842957549152463186775680577902711200395501770506899884281508628398573273667095757380744657930094655136726374688178327730223536966769501590142892626937174913048928161143562988540937707984134432889892416619429374822041246966218857807333786079681965117504079812654042701093630187439388554320992077766992428303468373446002855057095857323009571211550893798488729091796923918008939125801839701477900577287184142661108670182433822256002563037698873242219360992368717323152101111967290390674102611601015543758701230846850358425949789422619056213360268505353531490712071555511357009420518568394998788299235473513868263380822776480569211618751409546719486217088891355954029624030075164832007635334431524706677247442766877127129084078463133087249144346275709757580290471764464218423853311119325688131299219111694928177545790594634258470377225340582518832133089768579114151763514613164629296574863802799185247580761602968416633436816207570354260175571994798804391583758259689743067042201918853639818800865661036852632642862092443662684011618578257329634795169167900388824536483750544162969358146972436806768765495902705413519495813114966412195779280015116967058386587218281080159953142100647618398646207450758897758044216283783421863136629973498930326151518686389587030847505524331333654577508662544198963965679022011895674689436308106169448661048431849417435421559163334582137759761078810030022590094146752013070002738266893077712631542768586553312134927853550345669999454590706728128668420978091721723642597990457924084386971340971686269609367065415460028245767420478933473424703749367259448055180182155833264490145913131920926511197827621020953788272662276592323515327831681104744105910733363716060348764072291047266617250596518741941686858656005223146827413610259146024801585723836279305748084610952426083459325979238808315341306168890574422765430051202348980472306171476296630343536483119494989451840417991921004728332761361845791587673793822529835083568258429378898650850852106873621499775402988545899287829032061667173936855195965263195494531302110008015857867006431031650043241996963029595680868295552007048370998538505162681843221671401066858066857353749217435416574862464170790890925647284136724223780454182766964626299014808960214170819450980107102634631714264061852905695047408339527180751508139894998942045805715665274842930369053645351201572385344969317864708268161728950266366941671755692275768255486889059008873448935283639362661861220681138183890894971164240512225511167860115738066184860757294208508423328100660098422566335211426657803854151622410802251593983402971580948353899722547387187470570118578850093890674533392357413684936141644021487574477149900791061095556273568631891773131769088425188129236358894324778427029840147569937964930981077991626353511160897548101094970326921271986552254125266522337389496737511324561492820210909130598876908408300776629853945610280493118282542588230464654202807498216927870580942256407278907920702671268398263305615704869106177811850596892128460262305588728298925042581713602721093001053963061126260362590096985725971556639533133121407225189353070899983458968005995414341964393353132889786984422033484884523369812746992493686456373046787932220839402181035134655749378349813223243053816929397236688897456492739788836316645880299564247992326299592983298110577193781693698773817367128367228044154682816914330102605560502505262474855318916139307754767459256627214204789009064017084829625091363129524524120747625566155908222151063706247536946760418859281577936526789701998412591705422592511943130948678252636477164283779793496409664262410047305660176685322628082755303889873959859757116615483553387919024871339310855524163727125045078948900203464768056302999144719801154283809478923583762447093483897240088396749864255718938301305932343047728439962771594704861139882195351471147792877017243013353810219579186034012465451427007082214624942377257453552541646637335516516311683758681674508900532926454772457829572287987067408218372245947514522114872311803743075872192946895540079085680047740409702226723023391277192537188148039834214530865828736810314157284662955623762169283236075476506304741104312872291448617976866238712183124147858089367837805540094146928629996384471085405268028476238027630187090437057637496620622427868643796939384235168900226032284689654214922575121847555674707515146852083438589239977109664959067267023154208072914302326475477103506824153891234425379629422729265850695025427704185136381160474102295106689004970213687011076469310172848191934748737422045366707900749937269975609031557052218713142257381408093818005934666755438055654673040837276374618019865418599762410250162523776785696247218937029406234528233522146386481757639367843005341402627330643594980841571705250500089495624743108956502170414264332469606207580969131241499318961247901840450013485363859436274646032207118299229532892695370864421866266276878557272256033878245991539530676039243760702570255112627841667776559191108566470166080015512882424000026696048169444524951773532457183686705396124168293767905773493638520899866039967606787691666299158043045509255022515480852600699472100285714040828784433711263076853944207152517176193521842503542878728233908086434822932627048674379744090883268818880952938917410471709249555675588050122955965292292660319574257401313628848221463848641578256787634533392876064432350826598401010147928642296248666272059971603880126126128447855026492800145193705282891973390602937885655784010764586797554395363197308753865173712985783879362298849654464997845315916336440211866902085296800922562311202895899533356263141033282799613267040446722873179249015068408861912477619489962327817155385462266061804411905620533412836860352040936254401703582771387997911068633347552240657250586977225696678643922851411540208440345049273647757249322841425361060058169191038364283786615697766196788501846700969036173959041470082246147657263862996416245445410831523390136575888562503350480681390995775607057578106507270876212361753581280912563476678885404754751021911716031773783411313341510636949192654962224930353701597066028599076664925498344040494799398119488959988617805053864783505746034683588149381266656506945506437653108355734786583047246017631598908020326775659663114179744798968526584819868465647623611019914877937157766103772735012094757419570750501254576571984580922501853149161004742257872461226729189486495299007618754324171922772098939875624736709612636911397638272124352523624673045454754444425919712386103352136942250530888099282341873037463661324751322051684358114704049478936286155661651000863634022703678845978419258951255647192082549267061113076410537032052321694103666414164251783533147280779693695166850473870959135766040747982791987621175306108326200997926255082168908950002066060555721304457138343584865734960356560855454645404367270619531239554995270103739887531219429945541358357967473261074720424648609414218171725580477022439010426704917415113338091775064387293353461869717527690169811622059966463422545219611661204924352129338527562514310449553586009039344746883864535180400728980935526738025775454204903831060154619873771135203898658464193496946462302180397933821159177425877780910186618537164268034028928853358249261372995370712481560169442395538194538272431312539144745684441478309761825445145804790291745021846010815643719885598768349440615327283289004925747920950747006405659376959842352002683744396269017668562864914816478415259789425077044474725678554769885947293247341652486904552007700223405641541642200415073698616087308953867872559522083958922056740712308667732140530268303569101756702275769406060518220279743456226810003109791680602355732124713090209332829741671064459574159682360678746286750958100683648839269085957223324839115186774982947242297946236228727739601798947257031124391640762605651150490899249013669099245420253685815541372640016318441350516970290691809468057968230190203314494393505128059293122123898984622277484107258074218075960549817912169232212902062488617081520785777560770999165641557619177483456294270987000240808320808255539422698142499839530257835203269653586071133435049602184263344541395867721960896996453690096999762219466314163787812930625381353233625053293568318666759478095779305999390207377610514332574441048820180997295260515447610031875991620190374804152131314755309784557811303603127184670882019940524033347369143691324064486117194879334101717124801569642902165299629139710824542178954453915363937083521376075808542280310428531992167232991943274985975274440135277312364613585810012691913436818711739807011136350276972703290310719408218081224659220574684853716560918913919701286227930413883897698096498262551293652432136301105268623702550281705448146078230760272847904289718698589923646104234394010445529514897296695759509198983384553691554085632795291128035704373012906731535925248538735677082090459036980568528187119559363132118864124316820808089754423321157110989720114440884978043487205447973224854831221856116409903472370257219585464421496231986436443534722006524132330434639621692028627168902747069626522717638080505262807994505674294408846451088451327794890208521267116214850589106251509735066954105484565973420088181244902654293929411298797088221222274142132780175069804122190915759065315754656155212136998751289161685289118179996708082185196600376959835038742593622308844033111812794620502325355875387320731196118679799755068883226544816144864612719307611800322789631790422194120576794076977934837607811255706579230450250841278831483901618721660713588122035495175019522449520966962324224188913283655479448373079488306979904101479559920666639953768051411064658936191469887151393661089376359286506162309852571463732616301828604658314160138391773149750388550509763586264957385409159870642927182372336723137571001607138957092092587202830979538616574288108076554422352842911898522864008112391143194477085693882773955819503109211353755614775252919183061089019503510984310861332568289470361368723827623994467442167514715016563804252893321356751532213649773448664802778430408809272134124119774579869061000757939511708223139172047921951729420729539265691167208864523431966657634652906445930958421638568317149199701974071743282241985664214190316991353569561703343017689936374735780584373615533067259981822685866396888227017594810585970789946990707948902054776234397066092318595783240729399392791492508858668803478530283946181910648371851729784296519531272034532403300842268181036232377378815560265638412809886704633290388034338337463901135451563721649696821096572624063723710704059177124400783122196669968198700899603124278189680766475200405882745897123984332053694549369217555492619276494803099477415252417870624517682728042290703598325378216754634913694448831024103339088353225681061841840699711061422961985852889135529866185512879702845523065933845944239261138480083610687186880760796088323500334489156964507316166336082944484238827885180029175939038530194347975053410767230380819136020154385836179011175728813868753845365126940594923184355327181319822572994807903086477162457722690084017780522190412495480318432344232578673823365248219983328208083971857019685990636788053470722408514425625926732471504612898843956975550034323450023206749669949961291410330433912026033094007668144618563713230999980081505666619969302876553159771618393488903174715479621868942497928592792342752228656921608197891230702606539977969334821908652031959652552911560396382528023364814917567742758699772252084898371251723223390526081098369525910389951534681356544978679873090332815328391624447588482128264960182707040481418984004256937061984895598870034085390536804881790752548367855146808447671331348057348835926069061231909974747514713610337861173118178695889545888984354962259475406224191684108065663593674340934146858868392089098053676984669469821254394819473255379779859043433044640826248738921356609496030685964085969281729254867041883763688778315228768861177228942463759999705103506396575908850842856870557673119566085019560943741200686770411849692463160303533903972271851102652016594368886116757722727862237791821588330729667785115377124852041822140716466933025094618888575914895791706762765708510425728831989351399670139065054090060222651375627330015284779692440692603185284610333809560535688267624139862513291080287581548010401393920564525963779385995359938575306779397157018403091134701584352731206065671766951642423255620795478418562159937095147058588916281074660730556301455618382458658364182381036904583183746159407947955613656717914580511466310078259578755894021245463454910461249075677934776310614840525277626434864254963998328636400579025971374840408605579740865190124355921607345157240702180028059255754816907423796374453939747300889600954191593129013283672863545419219746759007076131212657120447416202758370295322656702606344238902465941145475644640911482073842162668630804223886334378804515154745988593424690727587394367544113382679742406062597954115257715319379544115356953069872200451038217948486111417880306637674449857905825171880879279226853818044026206238232403434393432612418874064614191878018041275922443752989662538516364736715014528965966362870032981525185466403430729250895691253330238980810785731570271131369470027891134019610556388875435726816510835882948657435551922082252107755566295144343064522088140570262631565251174312535451030911216937354055997061030155855575212399752571616389051832249632426597958822625668493298502631995965799332189438232056578187587774677420927773502868909928343286234203210181456956468298831950260006867395534725071871699504657328554723936596101571176521606296748560577566497836931686953712836959040385272929568636474887641312552447750687649534762006963207178271700251374889827982440061943649631485522655918003362971064126865413831670031772484601421505574263211314365939752767340324573422773313953658036139567153834237145031332577864475653581122068365731494356946047233210202437396969410312278815351237187426289339280675784311294679674061450784835783295362409462426692358074915626141794054564195634594980570125794474064289047399936456902108451351816320636073542912731900992837169155451623832062697354119190952817938891517757197805462889295017855023788547798639472696031137315522466898851361104150871334937665514704439791656350123660572681496232416897130719758964651752788166064189746041985521882482472498368455153646646284070281536639102078709641237598598718233000112847460181535225146498703021760961238499651558101241350069726542927321472658704910120520560854624752817101257566182566804571622399904639252006670370918169680483444947316703732115462883169009987091967172783044042294899557624211342327143408341144191825021452960325008957423150129277696776441296984056552096994028264938438590128136380976870953340998858773176537635962263638212894824823630679551469882235178222217441641153700881198813158071112643175066580294446975398121065398009120813478605341959497057775294167010074206502795845986033137437590435378476675821303652501182698537188876984502528164530392631767688035907159222594123408899965839985601706790382031435367222757659539236976607666129679437054086718975986984354900491500527175857787107059946285631889457464993983030835098787593918654510228950378005877100236292120856454540457130478266822571693563844090095715068382645475553287007620132507230572328798978810951715031441530047491238068737953036249273030996904248776141745148399844513128773519806399379671485037106206866325027696330897834494407991488913796810260338217423832328134219047916739815858633642716981640462179312192259743572897772974443524014452522621089279952209648191585944713882629999830706475926082508682957033852637238494600257145007371958231079814728745115502251573855893890418970079883912760255736625267287163229208845173706729081572675440973512462548197129054819958810116033514930232233926417773785326204900491704687842789569575073204725040640357070210688127164234467964885468177347006403561550133765655178442755177183353103113147118539273126388027911249285436166432274332413096348176920539975091194382343321501566595727872142935513590019961370164433462038744032860529239411603129628930622816267466933261262652477080066422006537414175098320234616068836233164213058065091982492491717637634279719096879509090597295689694927254375646248866760351486807172711235092788458589559626214676343174451307585466311160729438976958184782074734642457473869903153756299016994930962649357227711839724672297827299089164430360051574295505891740029809511934380612262751993876047713265213868678827863329767911040927049418151558881170604045966445712682864025100762701088911047936645364996758362803771559293291854389556864200156320371241668055396980302344961258848365760372381873237903509719309402935377767606327814474968433319316001084089116793836637621965161168074769651710918626861027104973897510828591388007642541808039718001079942142893906718850483288024087766793588711785013316021426970249499054995392661821609841731144256705293451395623612543849303784371584977740195435277985660308898323587290779742955859890231228272165813514812133192236041625635322082349633028763948653828967736088789531623962355561908102020126182135810211041055597673260515733216344867420742505815186964045558431438411963071174670970653104056713440219613780017127909900092683762846103675647829107346557166210519678168511344254577751239492773290654088192167134134828782088463746707871417924123781618863086457682308625481213994382081351935547775100244608308081550409843638877632153413254526512877822274924134516188606401542101309956700785171665190386470755661763939753185615053762706593893361906430508995103179759874072117768154138851166365268367368320521563831918952141305574722744220307185903333796057957231142528707904271831698606833665807622336786112554497412174069139812708694873269227753339279532996250763562227281810301847025019006412470020275803056984443497413465252475299599021281560732348759238894857852765163653940423495850763360009563145439598958802211689002476768581459961634586066255238587911181232627586644425776352746469949123852343009162950355977929696923061502023541403012519649255189892217953990885822725668335861537841642982824352109865586164375984938682388644374551396243091791378670842560630280841397180241253122437383462314352245547224766056274662533251126969601277470752872394545593989237395402695929603235975650739607229811153526318023914423682031892834497192289621763173059706796617426835884463141720825414215841842039367596025871620207254931593360975122628031112778331575720484439440925583747815909050925320254321171572512137770936699975671240376393370805159748624557451200521318102962667808735167547132959319847246028127278636930479554575768318056444123322542312756507799325687704417004391941983421766252612805703871862714223384121593125955839681006628156647782088680452207021776055084433575543703548463592011285970005953727903324596465667969396640714235406763812923390790748357077693927904769149149579447496334633981095609573377177840719861787587456387804340433398446438463195754463395951525787420551529097940014982598210106726408229812249211533251641111796440150224514652547215565871372042067572032758615320835177920614763032463158857831844969223734831515169279603376428155742140082501155401570800015164360689635571283115578858446247711511264389505043114141458559285514051940449701383899648822595618352117592331948912640010302544722708176151126407032912378622144287603521573745513131685157200368460535420994845341371397277135669471716366831138329481069447873067430987874749198406339548984388314455073112524548870727377351260875889315953684271231915398620338495827615700472907522614784794270591392127856764132050848935429603216612292266273345406789080712193037407947087349403915501523385756416912723407626692077300736262574877336370303125073295305263230560173493048719221044574949407611050900667923880253937223114865284498721395772635357869659119828939608332386514540314485040059922794714152688663906515258641618783043664414648020821516082140937014869682057175844632123703374455265063276521443608512511564813277660898972630117405578806877575646051718744810451583240694916437259909391974105170469218781180581672186550279485007531038468941116560482403704355368091048859993391412321752105938294639234328410879034200302288014824964623313397095587734899361373041261020212717035927804462154248856985138832139783009448890280811859764974097956722668489981351987536919855909434903132096495646070460499923753516419391648943988810684795595271133612081558337020598785462460080506823111073705395147536175401037487508560075801484687546994897655893668772754048240134747611204577376125338263192026530699229602120969608008284502306099666150324252244878297980317839013039656852192361362445045753114512226465086292796327997880827100493885466706760813570383096965378827774946578680297533769624058724516926072987191138312633835543588429797746492690612153944501127627136793332745831304691876602163469019224330184947713048589080145755367749452239810720027539308154511967888328349755918841541217026616670773002687155201601641898137554359568554041710493465605070637975967423455075452510905319347081953789744549036352451886524987221363715411050923819317019102497260539006727918672910646343813508666835116194616370180980836153513066792612216656371994877174880002383375322621754174111748863073866873894264039726057993549155575158557119349750750094054526012589225515367810890623150882625799446744776855803908126895777938621623969368104765644992975912420487231931410033055791306470093181006577120540418740354483313029315659288918086260693515783712082383675919786112502664538394101591792951331426814118099778132829442117831401883323809088740381783565340347261709387170157054914660159466172616254573393749561791182643604149827161043520767411427769437437512107305638558890134670135441596142279240824759512745595487795891353754242537453661693139918571667831410362456312144157154340631142443220807425170741020757688066150239966688637697945156076873507826990244326258628515812923925026803017879668368388392739592076907842297306745437783413199299987843824270008472547083089493888467647730981541129425095039095020249156800972768117662470651348664054239709942395250012718379328512254282573430512656731755067106270280986587357575395336401653675673170372403769873743915577437371919039871161579240671830910343793914480505250380445214620668278461909511496430172012141749370978547379661384324363426408349998042930657126609606752829948954114501303129010690963127102002477370133941050122430582833164316126632243398269634056956617549589898831287129232798099181289071330293719812293336538988811453399722309922902917056308404197718072582534136578020879197609622326338110583759335129747998307444147681603154932172896643287376482117280742309315084386901109871925489943176964909879314383007208266900715044565230623385623422428359553217844814037573559530445493759881874788103270155000227113099827721865866287855162618610087944227385346524969568936725020981710901680502895557874380086956019557765095258194191604211085492996213234021851444358170571957169515574791753417883968958576639624593072891078078015895036023685543247795537189159442591173816197151583822820097442948098023293060947440152733151780010367176385565142054016769665467269104777029555025541522830239648218558984448717513363807783696924464227684643061990730479654277223931374154358510397593817439512991145672669409484509747516960237181044153448127815081281340970700610832181614935302130133235649422870858632432066507308264967362216609616651431816228683224556747654411642411344839793054582444221066133407337976564675209784612668440024531915887534670962286182664264343934745508676527631879247850485270710266441042217800262318519846626490500840245543053465312856040614111192412764488288427696996227648979816532334158551318380241296054272037252726276368763347535439029132693060071339206891965379672234369609143134087125273462149135596439963679231772001244309267936409868153683916448964291213741750395056566624326135525427089713325235291140035247080965469369296669778291121787005187720565498515924488415340175399743090465596994457813696434006691951033371042503914702705696452942458825546937199096946203332127152560646195155266551533462612069068344024373339242309626092698081982838750924669933298627089126362242217494676946670747835717961588335603878673900222821984748102715388492596371720807423601074022095076156740874852902644512021421520282315931931436631062775716528309367738323800525318374581002042555007169370498002189120477603547587016042368253568800474839343992668239632906014283813199308780362407127903731410084198624989312862457687932156786290342402852657395741079866325963530805152827403320226937881462178474165843272170209385030017966377934565606899632538501343745186080944215249565716646177431619405891352117420668592023357335491263190001833293213577263636578337250509933669149763124064028527261809201608076334679830689069532754093190095222428789981598181915632241482855181246463009378262416647946984672347628642904773826496611242291243952543103451406005274473249516367118462528777260376495810877998463757087667257482043303267937705650384760292401596899520971111472793234981501913851432701249061099889261468022771566583459947971034918595882340433230173829908035850653109803693755044231489809648601844814371540022930738049144581131748439782981172784583458549403464840358402680918888066376340318551664146456152003332096431882972207908605550793288759004183136837163714778495490880122782977600897353283339268465666392452208342548546374703060862797856497089656284683695015684630547459446340764300993062457388409989459450540424058728378145728331174569558202073695363825347902001893069520883942439453760450612195112091974309380069789914976239274476645396218154802161532630738721798793442990857195216386099379977385386038160769820088970350503535349010628764111328020262142447483751810472089584656298396694693716356135685336045793574248361779113291519594515414627268679676595393813402581385512582426630338982976178978362244945592520968974498122787598089315634839649767233022732847437480740042074658197898079247232781701386990643188556931519592235364566014575744396516601755844651336603838323116036809823974869168533345510205346514595417394423473887024760620747343163009086535249439480645944484363303198168552235568959005680499630267274535277103615748048227086355386028766640735371936346158990299698712856039077055112203863647401004027436285890239508855768983190751917586496475294530839997966853229046587378453352028250227962248757267811684211034624066723196771104924475301864030838321974934200906332338902075627548473768354660407540060890213398045122773532412607648877871782830396362557813372292335386822023731505998447175163079540089995813201454704312631835139958179562639451517536701401197856173529737813375271188550481748409663294407235173827319070435574770143909060947823121012467030943672344011458010500279422167705161454810699060495298099959048158081539004113482194879140077718459209070345853509055181253844488602144370590591560791962767205658761182263689820663295140188207488729375009662295548908910376670075965724414958417221788135665432232083070946370773702693514239062590468116268138063967637632949365114042367118876986383609672203112506673324948848799135846442996073250945371545550626885163484198675122121426956489549757028518093703259983318603072268365299412216830268226527389540205986947480811700236451819198297688637802274603396499581292939403909575689919524736279347906886168598105839475649715493120393872206604604429506550157098688673837118568935850974341362388099197313419287339347253611610871733989265621858331489958779312917070980931578188830196428309654939306768193896713225061338039932205653374237421905020640325442997575894323482860963948196305716076719660271710747872766954619561822061662819111674498383114663987161942704324965035446275872790911802052072844988417970582980300450484394267142044075818579424748928999529619127235632409554736691998145775889003490836186699281018729479511534293818488330423429072447345150115395030819623206503829342618231337846626575355876848294808634998659547390428198045253195118252783677104005388689319777600604696795998961299636489366307437380113423508681703135800269878610000923257246564972052917252722435023109531279826140210820609131418014079712184736757991898283475251182802985908613286647500894043301841937116294784756168055652276139486514204444028751242074438433484768510404843500861200231685427493381034577087981551144103877070249368169288903137894363158406620875565023529476721653949800360134727223980427797906482307015094237466729409072055887587001493375475573273101855730981367766967191126187564538401749703054492590799557254490774803646804685752996163505884150527929985848658529952421329974206299684000278736448415072138775781813417097985087893538621946805283742639021407720942184739650141822774301656307694507944645493606222657916756979353403287191393485540305180499934540669115641548843301808817244725170447803222424213073672628206584945618117194461987151913335843908993045367993874046671239755718830472203970555295353688577007645785476699703515475220082656046010447112206075805807196137415351390838317369799756091176761381496511106899000973551909163767832608498611221399075052925186449700616697291437975468026659125242424310729583316989334856444105475350497686911164680243773404503596985738317585373713763113512325935182232935231781231517911740317755652128995475105402642464396749699831898914487176877091744928679116809540070208674036677668478826096783634110012843856768790661252497366377641149662383047144223039002921321498452759084352181567439686372537341649338582467564811532416140899917400488437494214570584593341613733108086561045425134679425814078613394367465855680337792078573021119142555205591615845746500349516930787117154301879955602458271532451862588244072472238495614020490357494452917241064096021888896979241190296869063650860240601579970697396705240471127669963343315181606772894628883813831293336179702610312487474667581112304315169665734651689532695776189763003016446764584392777559759315066816500654886597061329562699762710918202734676868243691709395702018558802427424933443377180481761516294509113963054119927731450194565004839849144877541526721698999280984297226745615763311165889506596834386433990237335789868806095152527472439198225086303901527577253549948959278890394587958672071704740314066505547964112735538119690372277808502125687676344307755544462788274131060031702166876330855999297655062625691120589889879034805822041106330456971412908616506205465376231479225230952472891196676309861061713992909293051942800771100766945211298320444134731318698630239330112789362311115497356850634014901069048112543032967728350242844996690463497037425582249424414840522964220481034277707676558340992806931030058279908452198730120162010912319771595687851009972723282459589874541977588433858871048038922734711517173087909081844157383368059770122557185982313811080123269467053846845719947550718935327836129162948132321629892371886929878474328139836440985972325064582571366620111562768552449603298208507665988611733211281550687344548835769077990013998498863672558289442614671948048361818458736629844620412519431939562474231818535247171661378573422148651430213814552743792529237002048286753502218220020531781082102779797474284374809595748710505570218245730295181406200446744460667566194492262735405748529876058483480378669933875590371213070760023944423637945479036456309890247814718770975390325699547345201908654836402571155562652874444362135195690982887089149679005858961083970694759174358447885253138524691858996866200451676150215274594762504035382273541345254872319991448010779200867111723065448689515012414834824204839304527725092977887256073798675615281575431840237538541021724613700164526126869016877448391407937203323738079350885309938954417330208414638888141599189558220851448763754973563285045378651862272918863742965804447784778481651925189093197673306179642967308237841182412323587148649972388415076169624171329950010617506533632234473389000084653661230712044391943200630785602380328585576057087245749508461778346121535045101031508149712765771645807091798415428787066546391148526379327555403083218271360430510379045940137682342633828890092404475466444726014209588335844523416029331289734098934288211170911032125757608688803783839065069788621208523381548583136767262811629801547806824008534841474606726523791976537198098432423505990567203760192579883110375415349109488145658221644097025517286965817042113900891637585727454116425400034303710302243652518653887985529939850845855931816984350554923321126481022643763861877889837876533956945874189469761579169049394951635341234270690144677294584643469362261442085929602150312869762386527429396673562547958473255577658448048092566324256955511244102314356585414660690462000849509217766172735203380177438127749485345734997109943733052904322468689060508092984080936428824384728851947262692060613916844080095664488908833707191680763503247421330714924754436303470834932719215666194382961584041389186884290049306031160984659647871570666871714849849749885916560836935679013352396666293630224585402269500348501241714644888921500005492250214059861708338500635945433287159588881732357924726391371182061891358726192200445495776758736853512159642538482599263945538240267867229696525608273917492332529298983984299387110583470541270711122579950012933130022843674792269841046165780356725955586791165590695594617999782658569537654837119517434502521567372235386894775617252421856639281420812314365267945608121984446659809902758795898959901494995978669584530230278771824777864139849289812472212358984834085341807495343601275243443328947660066856062395460320493703782328633477436196749819937817726589896885026096286794006378200974968804202438351307264490725695704128688741275285689095585288708824428006633820253332754206509855919358819054091350910287010373969314030644124940499253304524077561238860103247504360721752571685356538457150317061363332469056760596450253548293249267233628858527360968069309909215433557553692880545551844687449798778128048578404218991625348526257458293656183220992439067537031012910889215482487061708730432453350435908227211310579430229198865247359136970628276935536026819933745644678488752398962014137878099821634204993632164167362211217670694189458996497251561643736736129057616986862396493563970930140332124031353279951905437457618409267701340792957533113271382849915506997446298859327488010569658611394645347673794832482676993348745835625578417271322944160780685938119091911160339678447078792486622840215092408089523143669607375338749944839704212996945260427424661679006766009456283618713676953713723345873434393894501966452453338055082765781081783844124166527473566693673687977531117609824795137660404465695589387667968398191436575110371710340012038248604048844213449094861338799371808950003025921088580000627244664454952097933315990758052148855808624540572037414417543414272711114013578276898992784256765058770533363538326801809722036139632420086515559276176619966367085517643946909905138421565197744300838418373396305002884223899661626856185139748848403930554612369216037746812741913710515901544290826543990105652760831614675970349977537411030502147426842783927999288861501633576952775766151196062403742956341451968891533809514992311621035993664902692984570493884377096995170203145030899279858738293579026076239414379522305892701866945169908771980278916642985407767558854575800211119188380117659890089588260401438986819048508894583490622799807197636300434098304561687936176302363532135684155330974699487381237282031211409388092916760667611097842891734808237986420740962491334844426390382373438455833391336690942270778342083476714721575549738410243551902762034189508184441903721162439751746376166981375760562785123314323949327661747971523422543405123247383985638321412810626950075680276421793853436829483448181743860370619562879422461442610981793293338971635406998416074601769032752395021155707183711088484235839023887429192437244853716203698623554259253082492279105428613812644946136760154407665457281111711515458483356869019399015796160942640234026836665193676088444268961807570040305119423562864447052068241577641538713502772363772147158978922528433793753861176529729659159873734621703524659790089167887663255286711527329207902484867520930802989947224039708121348641339833110262366263585691360184096678757459806251624673829561019026951462234973413035562421427469116456238828432359777838365806297686618089469362359983172537633697442971225154152048355669537608753713410986847289904892677894464426644870516038052290639901753072277031595808297422239154898666803765092097406316131711138342923266258236578285088446415843746633462518967166257182214897195250030618989318417049790323735723397315011627450617000403233653245178709603753252053625913460415656700243404448139488232214582729360432309044855076233501814851912214236838465069532555774852664492295003120755352187999817581389472591402489614798242708307096102369911202914990029161018828968728197824582375321720594195436120911623723876912601910825500834891419731380264395737893750742154304638394469258192054384409669031830283599969026641246143799004929800146835151847278543308187108317603921860405896022962826616825925112669939165356813982621494120271973816267223875140999223047414094291027010495814794026036846267614885544740888430326702988049754229619251712416305974072386623397983362720089661815376786670970944337887092462448301410054776092729786865331485501943136463600398501902194132208018349601866439249585125647542795026407961603269840060780451003644391022353644402965813324365615807540210238738057698555961843152228442558416806113227149028708850206870692282550799344224560156335584624084864823601472215615454798179114894128901745077512831773893274327646561640860464810608092864673542022293417557657215421698290617449781565393821184234900667731947170941642199432723741579049389637752234590898667249452599697936025005717867337191159489594820514024063252981357457380421458824722535400244733338333721633907175697592391665482472224457792811168263027097281427566363522233411287940380248617791268751388692793293009587446752874362612796606942444903799287455561646105204279453712507683833352991629892138442835668314074462971790667100528886685050587688077556713188831680868715222140484395015443028510624524194173576307232878260320062744473089067364338126249833662811988667526660226282850843012475621452435406505882801328320720403083596411730888568280128773510216801271705571761671801430708251728808635309314070353696872492443978684632653569964662861030454439851426505150376115425760817155828269560711141974174807668133550441294230394495220491600184112577685373727930262449179538564106193198097430055973848208207065689632109382328177115452851513130384695146330414479600067206702283741448477788987544411677271653030446069891243891538030333917571847632374186821490243094286461682778286630014877115011987440120518518578524411593085097790140147715590952118559743951729846235370287327216981386186158012350077724952191705261133787137863758291876808380585341910018705407613991163827262681382367652907398511202598945928994000645096332365559544780151519809496223907935553317797995555511675936331796419957933273915365416268507950285134236450717585195486763869017925095534669053337472258493673296658781894448840733733777857612135224139613793226222171489708094725435206346083881341567688852649909464015380575029842744920526180063623649826258070028370539899074721675312879117727031936697129668986099119596862778794955737250232493450931850103762185581876671334013959208021739638690558587065371711043604087698188486674096495123111164363209437835757072644709214735399940689235204420004400212613158799921056395315571217168562955003930414526678323228981145048682958643779612975310933919394586573645663682892381918722588868364652362984632095471187906065537073754972546489812505616459823378193035769552315083369187425911098744756220735166385994563962944869452216765485352248696285207436330066136815061697739179262593739369785024090417715366614506990097885434688396692243231347720877164905279499323488792346200779670844962386202013428116164697838233616731246628147921373871736915394847592396576732283413354738991673901943371941183855313271970748341670943558818027904739517685735968483361655520777176975236874308274005572426536462701494179534412700492321280220736668661300252192910792302320535669421193841630431736597861176899087861847544813809613641583998966444403846096755920724250682349909129264212978682207338285759473302958326829999028458513354148129703210044892206605713284564967051269267586418953048948351549919132740582776423003182416607978822549194666757514815958715602225004662149817489760879588688410079413904336148916369833870712671293616101448283023723690649898033510945004367706657934585655806737078421135434066919530845910987097948311660030104655935184747733319390727632786562054099180147153672332898497436207446360695176138343018194813344078500156279830850874728794681946672746156736273572943110943808337663452171447533983613567383697940806089673188335996153268621818908619195583914356100046739258583039060080800708208122377950620062977144004563536483000043633918182320334697559979732294405672939225736538871637145296132323960987927769796189878350469325549332648095781440401882484683874764163749424644132444642977991811542160107643307263369939029813462934364402515807023715571491139193132536178854074015369131241690856404072443240241267864946267357621417557329168662944307432451538552085524291564106167720761440855889299912767953476129227730905487735234931056475344604430795837878114897316428472992460390941664608994686844101062167854713764369398574945957268562777744251707384965202688327253725472244003025377699259350391436973105952946572622367988411469332233783097612601396343790794255433885929952194426392624188512861788483825310624046982584752824044689334901564772808280821420681032754815578841457363232873223928903260075239292199981356002533799388804346644251708512889491899295724338645992878104595313338283967959124783304143611229966013746074228651268826329022440309259794973084586345483502909061900753909091954569553727575847529852151743049728975647716580749944482199410760957535433354053393534164093076829725617100514412532944833297082267117692206220305761771202370709489284171390742352275770004250854828122822862408142099896625955659570639661723442789759265749811229471450884834692669606842477345837184863218223230304520253686729923344542753480836190632486792229609751599591739671258125705018694178446269394310489245244903899254230108459333944172113672297429553173164149167750462165378537186065626555220910237187488636366897125399609384139482680880897057181088818439286746408164277770246556455304645362029893623902413721983947124816066383118430732454737353884663570742624356071928319560289011432232700786584825065411031816627238276067748070585119630827746873240456944061841520056667630850179087772611978899234884544206926169337289671551789580244785311453168264038439430517994412456058265733175709163660060098610852870755756073239186413128505462445946921552233443943076113496897955368710406013172759035870547698568781790305441074639509987588950549204345747093753400066542706229638035217962656088524998346651662309851635962404727604372512433832507369193653704685959314866624000900039504645331002457362915561108075698303526987063215445635261316462255504811049120509091857921459533340393916424011715582706170206871774657412202745002412719290043767377416643984776436819391937772353254312943490694262708562617726988787209104054076285105464006870086678777717295897753836427221926421400481456117156765329026918655614803996377996181635945572710073317193676321391422626706984654321557619957726996114308174189269126297618211389495830838587143335959842821131809436830537040053155783349048488399372920577024834313041010461935594530902681411601163616250049192958888960476339104643068895619761721077107229425787848501903621887166903544123879051156728654992016986810569374008557757700355651541368235452137582948973876632748675885466708954037413307067227365658387943634370439522626906933665954779293488735905913416583954069603194119594070568990660114103226111870036810802661921214041065077857384918572740528988448841663490848196435023278720471556702337293001019911784150700848678374672115001102747352075831062930247814985827696591801759567073857176545832431036866000123448744801508047177426135350677414370684167892357425293725085401875089634444157612055963752047536961556626663291635362924298303695337201083577531473438484838035832829576078289956313449286240967380142551884549737276391156922943447596220084930892091678195327784790358126858786311359496967337486026397740203198503415351971717815332353911685624648625547101910025136003548252589663207037432311411283671210776329691663968230309334758029507027984301147008141069426505412196792690297996609067210417519670575101225267123183081247862021554203977351705622498464465098660114762077110217470324406063524859366179115333714508440804646226062175702647430442797776516322231499003614830173121242702880939398010391310991382914290616404197319149590862499491025303700075021752819178052912866548761524759858934355286687122740977043456684869350412617119728378842605498056051285457610171200770877555197769216052533711431102110129775108383558431692781656274685669626787373453622999001393925142211219697621618724696795850162583928467366041038467969991538402781188922170200885411421619126485382587053271218839627247495160072215804259140252441033599069922445079613643108784099959151209545398656742311723163958526226871856216125179697136785004362206178583561376087104645883920080932835058696976462240527271685285128723017875755523020137064366029974584473462819316303300834368468487148226620648403755866556985062190736784396046386826672835082050022040623836206287242566939185182011813121364970443059470363289082036448210945278608959764551426008554498195951413230594129816228304877968252079337658339668392649520784488746605084222078440079459578057266604661967783698875427264903738344345439373510990018421896781475028643950995844497446607677864755633638911042669494597352394821739253812624900147227117553427041632858496379189867066583943567403240606431941994347220097095000690280398187800404148825616620296913514541170021098765408448115708717285043178214109110044912140501457200184448476864916318849759032357364444386488270293606760181174912127766971785821006100933501533092393632835264780805857590176260856589183349992505857295813494601274692336122434079469605379687400080372299885834774675866004210122127897966423615117391469075076419625950783626197995594813447152539879071638476235158436867597253136497647247305543248218302112292785568665096850107886027409166276594832444325837651655750672052549137419197651855891643136773085511038749657686301010563610535508606710002030501973624513794756865170539964288004741556977139941381268318924305041654251697602278587180377641972278793604065763586801130638043647865164447034701204159311690196927174974584980877664282675003794032421524870722201377836688247329069532718364411698534472444498134516675191776222762374733843880192009195726026609566049812814660301289125531906800215456966237088048830706948489548374025340863541693496656389939198613872849432599570585863349646083600507363614651879646856536427721515256830210934458634545133732367455968651873265746915201457443427880660094754699192378738868954396404891654233813342037807148342726229106072973761146383269373340301519641502412594074421658452433098633465375386677423586945059632499230091498136056031772271732527871331376183166110877850791518544832608561662588454554686978513618098311039116255478730525152515362948827346297616089108258936872534379585899199848733951135429991565928657235733334613175153245642309129550665262651274922466813399253560623739465485106298348424225371971165850722863784373049010256029848120994813863020087804952480423320569294580924576993285512803170138060507608942891455386474333039973736134888172800078726197126522226283959173834075080780026933055049561134702325397313742227372043559507571045214091984363873473307000790399421317657050087623916238253466808297743024848894296638941121856659763543952224802174501922837461287306961739442455174968471310840165623705517272715742146442304275106770997922038062681391659939824515398818643813528142451934957297819661892667499360663755702267293148999146574024914036083415986237504939265543635426272100162546526694467390050059125445099591100563363933529571771758370225267369698809066804875260690730229972182158334839433035825720114155144378975594344994934258787617278405488290417663777766549955612851640379581713011511384537785291263268103553603576043799088228035334949450523308725819497025400085243484333178787315339850062287988317460698348075038774871163063885211884144561009104227556196413118177648090799452961820259423170139651780222678051389085702440118562200008198376932929320237999185815381385443470443571689570136826066917942596672500844376925855772745839222203471257079269975158191850827796639178835658845439904040238250634617939215828506694117961472269906357086962408896995584039504207662816300780416526936445935709154197608959265479484846200169540406591385419000437514009808316825171946607641260992879089803281089477160496244973158410435757740470131321568665050264043278037135583537889402069964688021112796323401095313479142184486332684847495935934866948778869441920414884648815551418601071447053833014954849466195958695350233383237343049445437161845564641676830041759451239142639782692311802924001520707492374809906317530986155097397585019228310102402335747429124366424515472632449557851436402634165293269695205765025802578440946746234762448493364978053336753533868481501667914875086049325914821066538587434955251547029973644900142105152058060130683944539049301392686802694548678135474266721855816782136122341687460123724758646240645574194589639900397535081789702283353814730008614339422563861476133400733665245641910174909116543275920562394166107962910770486325476180495517963994102463109243304134343010163760300142723756864015925158008526302679687522827727975827906494665421187267316124835704621186405261767106163318371759787116309536498950424346471130692694640045348913816138324789612211021438023186364145550342635257194751639268098817675680933786847833794142291107510543684999993335456911782300982356011605099660585835287267230157824135005735049037878391057337943475252956833581478580232775438612181849528513408216160088865091786982518980274523195396118518978113454718170130372353252276058736096340970175637395132446033618691433982952473979058471880962152410825171614459953930699835047064693505236604777291605008776593023013728244085116100747881414531097074838319207839073501155586296239104925465737772073014421681985612670738536503299182228550883562018048304631465607851326563358945610026513224803366793488279505147386288141180724441313902701269850133423522823628958677377614380640473680192416716740945642783129545952136010606293663611383819015439361053656197236720637103362508247748089373187077648632690882475877924135615000952749736088478377150510862370701176915503736928217139358978896429231468133335903398281699171171489764484759671705204133214204800714920783484970869328627514429049601829726900344310459203869904082291684658345591237180850590745412557465922968512224404974029515068310114142761964709271850660684872299830033651686737108547842905871042428605903497930909823114961400738974417294589100093833303734385871475097036795274800052965823527909175856555526901293838821920995710447550943799267014138656886287981720578314975345799788125211777275129231061973998762352121006011102249271800854322066926762902966375482361409305488019756097022307722282547925742755855192535123318359946612665574020219556380252417559029310306927200975858549075234446181450614753285370119687535166638169989100639632895423806666323356607913416205514083699555364824492902198743860418967415197319009967523190093970147294306077981490710350841246920469746445224544925116206783930590915116521007667731488505989723942594187744841313248569233628064851608563636244296081766045703821456737370941379170431234993321921274287879487527468573077206190675101794458536617502624724680731073123170813604324524742195468110198804491327323480970735803792635694139827381440811673424220405809312008036049507333757903732623856893759643844420233008638234791727123473993091194823864289677015836344433522910196706316894988052728005742876265464434092123927043418021638087394700725189304807745779202880316830397293217361801223189725247703828081097536298010756078142856126953843759202268404717678238241670588602603963327499941209121651051556615118447919661359738963050510135263725949581824998777090433714856980111551952850811389266181634698307071529937170909343184168498050975314325535627184499061700835830494503933536345001586516123030308505626005230982198567228183382750273302108347407769984563311469571443592325575347666619905806394482329033003297538095448895401836341000328267134902829135722601139781551728670500595929951360592156100655972919484089328067892352955337747800099385649040809783338599829432761896729870516730119333335619136115809696386472339716771562136077250058884792449142081752004826385651809643678257935991790941586582326232735169620709699613495158910490994352930572257667555192571237262245114078836964705441463812950067629833223331186228469973871933802819727024869390552365937103738039211813293124547594441452556868119425716064940393709657778562000232845030739312462118188133069837373810355182211404614495838037816258602697751761883414875974418163763413155814615148868683906274983875364509870556249604016477618231051914741444368967260659297117589149500750028967737000355310150123531296418007106726209019284124671835676219718466443879665051559064801549074082221723426057068158089175756654242383160919685671459681940186571555500034851753439769863330772353665172280623831348734991153553381979101151226963937368133029504255786385065940828132060133321151991582164696775992576707561397230195976525889579490476310802497994561947393052119624751624681814722871501192524970951950855646080048139227389398436015247868575434288065310740097276244714656292265720453759065422830334887234064606884111425789486684461524022124601622611912223625020030788704091935653281359007479588200724187770215121557175440641553931798069054848141163294481324383055197738046529433722078297415014911472331873301844788650526611126077170223881419290088051160805112441446206740980427291251050212667484956239580218872509374539669763883853586227396796818450867564388126773949316129249465032861892084738293878471001450531662675348769503963361990399742344643942032417062636006791715498610446108256253972472971907877587826969466734312995341303586546293793511914533843361951814557025826401273466621980711994699435576328307788146465840028258680862350348341516558034856082225049402055517845519785627250863061594702837191739040515717845428991807378155968734782223429504374833118052505834994716077002137341367242939714195905227452303670509939636298428489300344824795440567633386465967437158416657227555492484684962807168503577800003967851514247474077435541597506453244874207287235661836871180908369393364843106002999399803349341247330194902392594118286906685389468424200948203686767963969910626704400091851444779052229406596751099644502768018667396036748623945337052061367936420722241530564164101424939537251997535656524532372913644389314150725900535861953851756632656639072283267224924924210860447548939159916019294606189045044705593648250669719213179539063989675954436222109133001707086034176600768133197086000723975055353605224224775141382993312831694673066660414120055060289299305694705963210241537511247831615513604312832729413709270125789965431993452240652246995843574746744559150656026796922597363122464747289089793949957455979279541951935186567706115330583298832363762880175550114026643092980221485367824292872560906082386242214203168095960985650875087272899603244658118516895728673360837682042698304306201663673195851743614381726978092930884960033632754639079401117503696924670419991248426589690724278678520980321088707644263124947276521286710249415809707619668781929550358825349585966988239208334405925893906379231200307201648969015101882031895787044494784169790331110381401012627077604617029282725573114048859279768041123175832286584283115147255168843598740698146204920016526043180943662899572089959632026660653923112043207667631179323342453896713304594936288346247192030039660942526587241717458418294819427994886858135384158067399980841711234439658268536837175594647880065341583662918103987032187929744689679082548773806737029947086720605805090054208627175914398287282248163898325231561230731191006546518519644300924955288476296526762374893084739724813242040835340036236797622545393684192201253959109147265206899787007925134764346311261350238801673748050847408399870076759812660976836372902074576350658832296157987018419972212811297264809684122077871548616165234459465231244788682148780935210924858399167747515035858298083039438920159043937873965016227148831175730690931518268840423691011063671201013438203405455997455071136865809691457024370505424823280981019632507906271703096270968536577080627394862632000105318140709802759849572076984251688962758672854386717459178250398943783229638063437973540288719412431488657848466760079581816352547794344699227984753479326107444824193619529200493622335395363888864056437879492612266866215116327354613543887015760844551949911883575630136853960916078148797002295639340519872016966210009982330213810250059872119725827630778093819679298530766554618117109369986223378315956670153948546209439559954390281698160144714083159241871074328111995160157532755612876317836063155517726243314007548360719711195089950889002563342231482943771876711328639631732907677416433137799231610260490263579212973306701455294897481869998138778793010700532484467228661353539033743469757310492691478676651731835333725192790326619705734578641042781596975308930234499913323196487072899180567265127411983057573811706306102095484500032057510314166099278227060270117316154372723051091211976762275143974244225655619527588017232596100441545839692274803710729406229136943790786919855902873020196362307633399507528296902798550230147011316923247566341331085194390289634815058324297976259770018914678047922701460613684176178911082657151616416698839757165616384087139221393443094660068767571598569700384645863446129185470609020164258790461347623328762796766462823050387602684762617306951850729220917425892408220517012000110338822981655487578414452459418495327482819341273479245890990180965171333447186057323009803431419612084590665244208519781635435785891916726714062360846092999742166054115412500188576297007390651270842747652568241087995239268964532469808746270233763069619824324331522594885323337423384532596351151825941504342944049979368349053014794633600871635597978451040666793548771920268964395070722903250981312024750029305566450251207635451221896070714168656855327680501732243320482192259276044341887850395703290210762631778537383036655936944136303267004849536418598780390793687620989914761487384465991368626125435644729858174964978938048164388216716345989647848700804439623032544705919638506988648543363672159597214389667345783335408195075195189222653531179289902275011222493900737202105656756792909523697337450224121110459287617630496906909826856679550088787808077132357513484782772794091185392959621877933654746773615138148230964924154200255890133093164838320779168175239169844032983173526210127350910196450709164799987254942043871783715660031450651945240229139469218360309002441725810901491629681649666276564707617723249966370104898850953859904601778161683997262104884640885969671569552622905744076828534557603653597220444985556931557250690078874101728973830855179831374980397643573185478002711619695415882142614384695596420600447643122588978937156129523261780336062378292023371176304870107012769274086131566624718258536376096372702392185777488670721678811291846016217878142957942565745440559782324381916377491631244484808411895923870803047550944149719786740705989769544305361949516156261028860166417567463112908594144088310045974762470228963353313530965212194441813562840800954168195704940738070808874531102119891363253841037200464121625901437469241081600637881076906367178732970036098204158864056926110162518446762678231976482208671321888689529918397039755685912688343112356833493884503840891267865671547129306267797033470805987960544173622406806963986854816109652254910933399493598051337940650526181355341243193541522180254444773854622378901811992903740889624445028934894030882747435836636514834313583198227203756602252638832731863325090103457810122308146968605988831727716134722379483583739016850160055626568683178977953328585459714345553199142567348551843784066871857660553050282412421803539441984005035191483648352176812384777307169125307366754649574914797991130071690396693379526054873652247565168841944006491834239250271740187218016488983342973546657411514309842862812585966245698737219015818076378371329780001271591297012464558984920021336750582781165203847402532126748048728471112642272599187200682660402459093057854707540835650384673978582341120212447073679544577332346628336462337196447189242284653276295297399868408882197043675692173136963951409755612072710296818589856736600644948492635749690839941802600921135628258038116874833998245302804617817232425086240923127620032843203109774099758277111462101009926760343199335085907185489208256616109723273500946743478253487397902424109690296049145627987313222717172509784297251580787649985056774064321000397664471263372098165207541091790256783751579958841057810930840727728049104741228156950794680146359044452909470568891962716263533074063168980253297967868613287962155010870068516437646841812221948859644701206548443684552241644247982612675684374634646794526786191674478725677877144545212304677355774301471252743835290963954455278882109845171527384336078491529701975885480747715974918087396556982540119148991474325104688702299217562675951896796490823420898032239057955442579639401615118631599232648628316268814289209718747082307492995746585136281313843172477540294402977653620555604911452492991636497901181975123210308037573521842947199364772143759887330417494475503357319601280206237394108518192324850101024500898527455983088158253328696234998351442957681467745580860949935771459012346605557027850232641771829235006241324922618802267256425009410242495671727722925342306149477536715563130701481809849807991735505440545196208581352742657039963380056538010542822231636036084335578320040286744371213977815740907444566409471458090401340928532302791025899081718875879585014827436147237027818722407643799673223846989303045739931014702446390040963160504174532783378487825722110713159680897329192139156048810437759058669795111814201128147534825664004455484204295390018030286366449640497181349304524416468465984539820160647054199365375596541775525045754191777164808785415932266712147173916123202795670879817038393411027129728006380990572186934262321299004286881877389225973622506148166321743799727648635609977664291840700004858032684196145986231070405639005200412409642879528936993623130574221578077169343698554712234501859501087342097715204154214054969824399565763608166594269340412789129611157255544413394711021198624256573122488668649953884504122731629258022650176689762827171066094459938106753112570850938416067396670837877208985161990635891289557226661704148715741165971592570069434459781258702204125824570004774685784833285325007342807035844094982473316721297721552065149875712250424365429177372032126841780418414951929245992661444690959082141043541715525065629000275502046406190558056111889301110817399064371124177860015896369702937016304304574315285187805456589947541238113810893907835688059566003930597119281957741342160799890126807995921475333106472226627745866907252468249309983318212931769444123845754356149124911028803673002865430332690505330960411680023829662954781921987850121760906197543814644674943506513667773108633933014711993710375357944573136432612880127648506348405233650819983056216923365733511733018546809925534723295030797539267018430344354440559618246762137593081138013409601043415697123490193783710401793477894300704954364243746555584646746505967863537889168145129198903139811756870318876986913764815164993079594646361642892821346232934999989809522744051453868990830174856195847448328839860817856355385172030842923514054786538041208017917843763099434470896031083881310521903310137528515414167877435404531396008897095556532034373011260648677292904803816186813515804503117494430622093048664630759335147132672795417093235477784115010481811594549752144546339750937545287128314012316139218674244959722087832188976664031054438821894487297650946721843279777049843301636646054436673204593484105179026174054946210925622053559605956518385037081126448442622310295253283046962119799545865883217392617743415615570221580579545108960653336093607309593347350318869425463910147115757005643096581349699180717059334937981752841043394520096691361566623612597678370827049424272102429493069390578470869033504486808837148467123678328676750018738853286560388607420981526434516679783258667964348038128526998202108150106288017782328773517387475667269057634256294374665083324372295301467167395762361565783938051652521902992011706920526638284978507930751624272819486600585196140107493219367305177269366630560906475968875137919626892137433907332766793211200668483107022867916447661240302735455011426243642791475480522086760549331463431295316730080272148554730100059901441422541886561185036085595984109713392288796300371854891171428941667988241772448085710834877101523486128989336903424733091770536094192100053818190155819778204453718136330601003568171142854200634938234928026245667913592547923338354418550839752854038129572882239469394566634826706397917048534378999348072438395466832064302893130607519967994503420013862977102651938850630985165579803944045992468458784390306151380885705109516978395980730681357606884623152313883699692201460530586041945716097037387059255200129059437886924918485122980448285971181235610407139530258428263035121314734492590691624606939305927927693062822053520111347675320171273480967013214715528209777583541215440042780945079844546757574884507247970839584921035276144678078899435699681454175076104900947812855811857003815640769499821480335372918436372119255513888283641599229989334981925137862138359888578633594366814633537499600192309650412264669731168212889724230875469351138144775876223806592849355045966620869908657235438987479878299391280675837963702855532171034151639228444133335753970513407474670636450485915867586279667820177066765393119999954981928561728576616946101850688162902779097802294709791078036185253144496325582816477910382184694098464572230947233159716930757752662773141156048286843942633975557148950283656979643832011781575545100446716240082009171921019236329557074634947656791991224900010215952901656455627780070781655486653421614356738969039821334965490550497370030832447039926246268350759911189188905304813867804788145748223751799803998866420213589030765837086621062636604644161517790042047568288437030116536740097235252889850423763493375293882917805656121692864136146202452468056812965627296679417631327586674003766569730974060208250689523658399734815823981245074207177082056521261270874946373519100727177934040901797492991752929428340341863240623904849067419064511937231951023529819010990656870379210589179604789570938037259524404589457375482873883977717207709099397458448725511885774002207278267052374045530655902284940462818387649476526265212296515763715550619925566397478358858935631943495414915090290749026578855656075191916395661225242354185410680483749431642249826660201816720016985812621219620663745225007335513357765434072740438957642346240170467949643668505954180624624580863125319053982414134062926907864391681086662055091089311682762959257140734724876986065804045911369443979787457537453906475163263408572211034154013807751713966044998366680543419292331677508806628833179054195485221293840682796884825895641855172021967567959264680416382718157013861914690329343895006467508825625431468464608833449087676549956389466277162363196247947357898932631839076276722268178313160068522839048624870239089290421903245469132681683936821568106884160933119381429795495237880665133656379851837363131106093154669788974553175215585532530130299963204085615195498942902040638236169656083839035525662127920726877015158576908340424344371437186695331017199711094140448966705761078060080300588939602923918559734957471241881828565559315608811445665144649102006532959973191999842716772410462708194939819133447607687114844249558269079940830716524937832730782170463646933175313410652331544384090286131189895389206552534676313498270278049557906138093762721834747101808774404646090628133459219831416707096182380563408920573091960243593955507545186426723990842709092127921017643643663813180308998768222964308008740824513919765023847826476386156571138812672994292065626423570362348993648860801198729360452809315978317733248217122533985951655514509187454182188173104515975476585631901998692435240410084440242731264227810344409361792430577276729796333867210484943427406373526335697475936784407551709644484217325689517942589902297171766212715420439985408065734486896788990541513493517259353756271667465284000382285301920107938862852959672279392938909432734839774035931059687163585526537500944122239110611946750214871312148497209388605777376313026523629849711282493679875689130760847160862721663106705520214021236453573273299068382970049963322437302018295581704833612063474313902244655673669029235127390131385056213328598647894719724413726014828534123561082969966472778720293881962160734366394327810539013445178666536203209820587712131957396554106352148710659142785483154199568224457204368741437030974943765717403751464514836135925582663767884008687492303437780892419348435164380377323736366032951446106473361558191444308860020548840054060214102101043441042402847561736085643957999400547749308494549011163296588041658550555421290318991028558103298248763586102666697228759237761029565188494757800902926171878813414351903394874064143153116966637823326839182771915993175277996612134466170152228017537760834932074456138865653695640219066001755606612109901621974456506502800035485948945205431782497287957268270819149765305387240114178953036221087485085726938521822284347980177467023083723523728444864934480533128920338598891206935355163720213428596040020422170861296154530652896845659518024868344044393831261882654384381329242745158577698841531185575512473095013873621273363063537539957289757835562362041675083234292386328099990972887596635711054034387457467208780219897708411775140612152838170538499333893751319006387041116476746085651450016177506421342934706434042450808921535275535212468403840340361034524607024056272635132189568861268276241937013294988836044836581381748814776693911889143894995148638942213794232325871848006636642085316943742834854116541727355279045175694933982454218226418451088244315140223445989545963335568668886874984681805352886164960430283188636257720532417390622254116516042853891796136277583664816176938283180426292053566928358277200255340829479652729998607624946270530036054532331475819204408438677392062564221391065168495342594443793615261545523204913580492064215760940743885530371643481373188690328082404964950925519680230443462670193479024036374730911326110206455424238513318416783126939696292187594584907545152500661719580997018788071511530569649049613206444109588113768344945173448654117244733403248530127895560689849770247584858805123915678251050077176608932929115822879382128420153392271374441389954231806112656349959185082422964004093830396701982280311153620616862207646616330378074730012674846166966529765765352318137671648318937672161382742986947169393251017365552876502920278512113232868701319123537269684681494716597606934823814213606363430450579026751113993545211860700997244463429373094901986866533859731981027736822375253232067129745681891794766689198241831800842312619878311868455097705875250822357611733469385496516054506965202489909860357582618944385358110261933985681266463674458430993707589320338198038234866943363976281869602626243189436002405967304550492259139235589335715271301380783420941544592202506189939770759998020337683719133723773426818042339893534413561402228909875769445099443521000824506314559488627317105893968190947276727114495880778065967134055588395459007105698538844184663971015198335227363560371037223471328172852471368268687586333222390731020357944508015578827334419104232082586738838420842794290394998671847597675460996051996666961883724277613514285679700332788605855660240729386531298354931475279973077073685091546513718755504835962863266282729998751111859731357391907473454878866859497268681244828273627346391941037749023961487385883909110114124009843390046556935222304503058655332425896973382267845338221507784491286850758507564958886444452390796869151249851984545184353602727570831311922535199235512239734796084333815851881495342505931210581036884554211015730619896328431704626256599090606607476014473296481009659381724998039058720846754166882840099784026658673610765157987924661285582491314279015790394473760857445877388224819888722879375529295385548321769828060208013600603704440708330047897949076978329701954141790833025573289396839279887068816343685079153248457494130941433400932644166777128308650943712585850217653295033931274593691374256602976283457278928674769713095294350101898654207120779233922905140290622620964022000583908920187093822033190269453376790811622708633571515293555491775106561685215819623868612966832488307331406027044223163411738498684447167723252312759212802872824454193344195421361211023474158182188929600604933439456866261981929185737461553097183605110350306425640191837542290688178413644830496767056155769672777159692961523604019298974123721150795081064498305003379784816595069663717996370158442164106737547608470479291942564567361179508725592217528865086081076629509765807098139355373433123552178674820064749282368310262529924249244945914326176648541718720250158015330239292274554942547357126550227987332363813436535779456461942364318908894349418249847252304873852822224903778334858521634166582179323285117400463498121499488841063067900971359829294886372634318147289344824550585828389579002127649071663102140656127697486209377699532403794279836226138682314816074187692260294719993414554559596536807785599373686466426158576377448448441191610987992780679348347790673450885303893635954579928882699168560454394665482103933856729217519747307127777860264849415374479677813003298374811076940598572461938142634840424709294092861648216127365552786066978383613420246603185706452912738189512985517341370227375732830451254224597153454138163350107216700344494728021878916772105179351733237303075518736777666687569006366011379892100832605839616161876470880585255474198335091034923807492871413690759228126252140193141011105277206281007804734800667620931134096507813775027202602315514726105533272719348078876744220432577621875227012951730318474281393100317351941493459377701545935073793008850467236135412228609029785965169447616567911703469783848373732057338085379874964690178976883044750477151411322596291234834920109501431717525536353889915970668061437226197861192933593596740573847085052965065368100949190016820340646636019407002621753240815143534964705310772588926180797657134661964688236192304345498303832658038280455387835846086144899473799646574623146708935711396328667774046242763897786770501048141927787428812529167205355879137111469336988523666841908920010045921352650829453375489221524690025449936763649475827950689879302849414815308821336941875595208928878348590107501926142981799490755383761580000704447093243478966851022481926966475016768524974528505626108471319077675292751394832379281166954029464931532289826787444784609787687697916516897908103591505336494857788542075341331468993813023218194667901402372770558475181091861201815109976535854296601687277244121994880070685362239769021988484743669712233975351877903573513145701777569483189071030788471175909033819688884320812441985488390205376867800335507359166808329888003072324063594473227539943780687207483154731646464292853593272086606926140897883341977533670655811881420048129219678277302236264706077329985924327766035245686515625932025311205509122593711525674307894595328113591831315452806224984699613492673813975575955086190781649265353965429288490209620852246447320145226959819313266489736910981388273967233931440084241181547498489482966988551617699390651318291163688783750071819723176504176582723873481428014657166385686676372815858633298647380314805581034576604974047651075035099594856204313033765011583431926402476809739913664019807365937772325486385416714573433635741419844076770666816393220578637299907212044303464766471242986928870869879718379121255122683115013750774668481432809397172265144288344303644228447193871207734654055551126258801511124931961359399971191611373292157761088207228502031568076696400499529869089272877818151268847257292720482320834384017870458841586770993079771683586883913297252587874854759623135238600189119872877711204353263189706896385366011117298536772056027136526117390997011670727487208830004377445100912178009477590856132037774741502835077722840286856287307232613873035335248178856817032985808607946922197133781532365304372076261106386901193742109208982108581995205292129755635594664101777054623501304137899525535081198095751611000880745101186206346569233351983619811441298843752483109056155171704783294178376509909972459862151534577563622039660702060196558521743596868561351051832504574614561345972000101203663117220686013692232106876479891002960429283385519395830185232932447452376401402237353506099215625995752426503132010338675771752395900785901778488372356295218825331481450400754600267058775618768789969566283115219678953445028074382091929729533049086283471638676514055795587617219941253201733748521864904085791698348217866476728823444091610784535832614748919522650310585202963108131104351750935108808057384049536507332156180666224354931195551341573302174293040234944568213689455830947997876366654327333057972558659027141376576375530624044482223707347482750586658291669374782712219598311166518038014402282932906452679337827570102655033899983509939139964610539047100292930704621820815076955681141785728396987692817453143877250076706350743444415110308592726514184239770721488677065677691128817439955546317280237088730611573346226100938573476597588707928242331843346877537521685695417707002192737696632077235503240572789718238731981177047570782100177233971551104849841715393352844156428587468041368230741764541505321012753970205438801676534420165425536284322519349127663546482090956840552004631242949801699288895358190057051961014759525867790199256884456493995454998862317870602766825527461119194939588145210311928675202638916674009577963982797236368521179083471141612917489513015379366971432253499819176996140508325190368673902982480524458738053965248475298912579728990240566621639973357227196473109915254123268569248269642066402576335314174913464796611421718883257686230588417970034433875640917214039433563448136328060696932883514688408642174613612263588627720480904823680148410298129083961538174628244423817207774968045444058253410482155941428315184645207001303462534450366107738494699192558160289058134827676813279801735323322921615239087821977171913040481197325245777752781047996620020133550370539084481607400825070144810341360747478437793388539424795810428598867504081991444846321354196823956645213404852506008194572658140777723032712484422006472705594158115398101450011904712701099676959842996258945196971386144592712157837867918270992606980649611990425724797628340284251694354747017048138802377236104442045687888205662417015604077760707762841886426019511878102440441390369215209052768389576099760023759041797864518879743702185530659833318983025735841237768737967886824281313058227240646209605981509120976481203695937396433422795853573480948916946869245825527837888667845983969720668638137505525005160326193974443216692166824469004870031662449419756252975752232780176038519629040163317244599250163973328326356145222834357453756423180200876036075594767754138873385485203242132364584126603628507036992061562558784033203778067633842841061747600196598503683959501650295672678511346628710617475215263741859548296675812873666783979860782802778208075710449317268183376794224765571807577389139693415304840444568485559437024110401364131374944650954874248680586653577267495489200723141949765390451939625215365041995712803013245664640306511317775863673983973358697323902472773541293114675710749899401592515079521284112804074404706371856384678047127537396946637686776790203062545786352022432328798221100407917752027644649625247629323225360343427677482171766629072626700716024392623298697436763461492338539341123440618281269544522874602721858250559760452711118767025266430169807157962716880842653646361990098144919011622754323618525624724399728990804218009721139183309036642621120239623103638655461638373740977839350027630461934125120646051600594649411313512064553475972436576016592760762636598625204205987085619617217279583503849840201859537726274069533767047714782998131946666510494151043297844623341703653461048578133267416486503190656200417529581059278359906732070385364559473913879378478689087232881190801824360743607729266639214277297445111526090643896888982037279214401739911503844880749098008351401797977691305642338252189093064602259381203799058169232068131440907216855978099782951997492963889439698954886416909921582951667662588769196271517762549406974537470728362504872125269608496166841403245329231502989623758617845595523252328956407934615601620369675099525402703732039663536071772837655826239404127593029851212561883046514826310319350383660327285970459128258434830906921249709945960328709300032992172711088133230451931565262531386326936923600458012577696116800839019895882035655015186481192338263376651825450197846756741446186719698567360997890557068738662610790740063403017890217592373287757383437860602313644314128832602966220502800009190448546759353757729850958053996511184226854066059868733712293809344608762179922355279809038956810397399559060650467270753237330685871229495138296218009064038341457315217722064783871828286174711147070208582955123406728712974353438067765412393840125179276148854171711667503458495352469680835932268874145815086352807046975236725801319508030006806221559926222951333747023037970570683981147747627884873694125688056947274076802802026386918037184909273719789449663924373356527278924009554245529997982011493975044982989538691571714859099196686333183525618470570007809723579991060675893970115923170723622376859094845295620710469819382753713928639812287244417408153002693764307323921623308086526907699974751084865226093966602203271146761942012273504122398818530270002116055076216578072331875151887277866371187635206025684708546668617950270805299733240725943347239601798932408868537671951759760041411448974290474333631507552450585043373251267474504378513137011830016675190998929050268165519985240919525277492573226523609377040638642506022013780249233039337110490413849096021226291942299466685088521177373642993828860769254461832906887645006658866991730290905853178782176583925896681898284995731705002390671504986630200315790232049508550480240303908610402209396032017203241217810593978252839634983730911474765090504587380954667072314937889587267649857079839361569512018794294713369673001923360853137701117755216405753265800393624696414601182292953835633060364362930681789346215404017285382629314022282308589735634896891951850373669579715681082899139826807473001919024238568413146468954337818060298110348383200474381041330876494281877320446289451745524459904196132224266427994388601038591471408634554042207581748402061682239458545872042114064007681106823926604520806711734734121551519990580088958333451971713318497452658869421493747555532663109559440745235888385062715573920039717158931563068006391333923962212202949286679028124137225437645007726318463566909024571749170084160229464642586281916355660589238127135094099543792914418058576827236209280661047456210716381178928928216078236083235663449514234403976234363331725595098725369519286600600603692817352577814911770835659635113549755124535654196512831223198658304665130269295588623269600309131267934330044738751513845220434926861215673153779734944045520903167921561366055560456189485952389283559178830857363326631616076906641119481631909430749547302078102533245366926663056912873550277678553502843448633965192243604629431481173170734772603146096274985552480348761561085705351970778027890583243789735043688561254223510032180865776740949469519943105059124804421964448735855846388071990981049100395560540816341778758304134059373139978639879796225204294804465764579017992534585278074677895077876168111621108174357616149232413659271830779858846252605508991240512048434287819333400460852049714677024499155728495821950781551062704605034838975581733386090337005865928856907504068839230471977317355921120935448497242899911094110097460122801708078407664582887833722964366935123002521261724059305814478809360665356636440411490373426584408601280567859532326122447789022631181457927155897595650095828486904441298596431263455087990243861479805092456290030498630832885232907582722508131400870467230182243159794705087026674446351473461083093409036696774822365449833525971562475062123809054097761626882846953642690257106103666636260011912400858166657385426685168208377030289181825716567559854522956068327280535328029117618109653196854118830754953019162707661477319722717677706234200265216304805361635520231721985828413060807706222138969651693242525710317166045596813144124016529299157532339432555336316162153809624564339102484826457534583537958070582779287572193061814329984773719643235474228522561251130474340938967659253533436604280656466724870120906333685382192646982190856580953766250242302558904218043724995419013760958419304689947261440704613816560332578895872042051138109530935966921326294275563178283819261303755125935750871437446236163848883827662963878273519552416083646346585438349389217662886618532350467714279673166140892320093247178994603361830789177394248967612290318718660166553576826380528552034169361927406277795031880074936707171774711900101001159684167264293939698131934980842082245442825568666337498502356564062949034658023475118736361281492824103456868919426264951889515306162017210563790368013403872686112558192937414845052690946949142504103588247056741938918453259646744593388354263003669156124198630389147090758905180466392529300276397730704596375018016140344997399327397269778875503345517919766772067740190367158940459928508764489995671374183248462688361400837315228304174890811809297765929444054799571686618841657087688204504860433638845307917185494476527006192105981661512604018348320313733166033587471336653251074754967909766168948056968002242400619650110657820953282862406874762985357944448334284312930711720542614829072970928655017955534308236675607355397869875632137297114295697492553524394543099207816191056239545940885680651679583364159727610945549034806069114461767665487965510605852006530734281664146631856119873643451139701088471660343026939315937527911822288456319310832032425860276335417581819255804017249243930164764753376908266443239851963735547721660161546445504447627307259283169244588186870713072862449809459798439722014805011634656803804914225599932959830977242682932828129491293236101404106543786943265370680924404982497515812473020548435204374348543076535696569668050096653354082423465345814659244685317345328252643554721656138363745503886839424844692522936984501756722725362508048233151122455748333742383361940624617390453845051039357609387012197009430524024325560768925858210308401749580339382898273488256122608873970967318887806147659264525004331733040887614701458978503841410499287494508398553472192931627165800006442267655880425840096934653902641144144984957873084460775357493875197536906686377384955722121339823452421374267688489705723339990329115159159990912997118509177370130312916515115408065653890020309750493303491027764523105011915924949662670438243991963730808542529530837354725049404310095992369261855112046185739934215873011799945060520206347717573775519471557595781200290365987573795424948985318337524337076121167053723020775369713400108216550993322419658371984291420470211496985739326063527653430108147580722060108721517150500426411121173199626004391641768829074778030923215883290853357766631601432664714401721477030182260277222373463302667126455423200949608230471579131874814944504176756640738702364139275372229525809631301470395539926505407762092154828982187175187474190106714826235461715532269435093494714924648147963148698806582023358867252077952293104619491533660973246155776769674936972193210258607198627410698201843485767117354239544188604285066767701831409630985759018945005374816512376716732019783512501821885338518991805475570005741280638187309284046594957603831388845751746937242117468283604914964975232408484178164793190616953390822261475733112435704099829629689958637779461950735371706335820132796260426528608218755276957200852577747236452526173194046881774838640929384470296592441050558868952254283168303445733362293128677710691492843654522095672891002161422162909858281434538484945719131019867262848083233869702615437904583282891569319396458325716875594250778041949485174698200378668531630096494225921889163022911399444076059829294370804305313778346764868665370390981773945031831191154384174994581016910808419865445408876304186725503254048173880370204910351206185211833804612640575379002520586264129199144218294661238160961328280594561126067088114084953264676236593197037566755780806110047536543468973543673437760346372022350540770986676382829297044003483596983153101993980735069093114294428888083290986208392366274030728858122201769657266709743299750009264901514614164340636463878814875814592383922082710712128209555667402607016096978645383110724623532096059201150063011377019401685517124851300380286730763244027945253402507956546481732469950200519410363889746176322434062911770308665035288983260922565274186214075650241452898042631122814126507716614332124391336717103176840139755468938136457007759971938630861653236442894732642144132970029517198856257970970437771485457282576597960615557075261579969781349062820782063428352269920894041541277467856158029317132439189125184756472952703340097868506226473397086319875941597001250736832636512618923234161813608254849235430277866918429997600789297372322828783788423747804563953994339060345370082830218366643066415183498099355003401855761542928403121968723140302222069286642924242381159199485806869346768363075647499237088839086651845612890683156775565070586370995984148338408222079462869373889714159274466735162679737592548990126741591914516531058531751813590317795854780206307640330741809134932472877395911672051858641226485732423754733865542612812420392747806435028713123495990569692942381750324135687210594407779547281742435971369074935195317701382086741967620554462407795771754919059398932847671412100575806158743517816354358407224146838841410084848646625451694079964786722364646167268597650234797070747666774286212181387936978926152461970142841733975430667306379283864661191514262935004500703171070807824789979020443533672602947972997066352225020432657220563812839994333727237171785361606072318360759158003241046583284625129850480571196563050141174885253956832517443143211001377245332035918979436990075552919413319249903887738116779230225012702253849939364333368282147235409472891256150312167260350471053790388674170948321716332113663422641369387585736511975968324323939321145261324268656834290508416705546018828934010117780720144532127116351812440673774634936676669237719401776640667850930699798093716063318374544340671768832311279311387707646009824864214130658798677437152446487117270071026947442627245953689593021690007758069627978474940404257466432378013223553854126813992671050776554794617085735677454620827645988606662590339866368767219139256161160875176624464501522068259161717782527495597581475358579446554651541016425682254722518324300431973532171331262064542082639297718942249196166509963350710527275092532520510065586732098812564117919851878234980943723604083337667911944035644073843764698433789246038586830694616329012750048360752463417338262840955668857248557639720104805808445411117074087244456224567976201057138652022701275499354758882982646748276206952671281621442752273429607991339103377082403360698867503917091102386026204060926689040278868531212638814378303971177567313559079902451366025773579677774805236738879919500537752770427509906413970445334280415467411235563969743911792402375331093538399036520038993999621267868894532500357508518371769953272638819361821329116947090141932311047090056568490542512267047405567546749987884593281367804872944996893238138360982893212499233043833729428846246794847351187572385990063825363941392778012014485366087842536329583123820459213343028827772741759191442820038821816841090256162868236666094667316948733590341569428566244127649657381597479543214991685935308301794173074646987115246406858579362964402348474187533982308012029200476182318890009831222061806953684896385310673942602107587266471804080269222098979349347118163050239733791583402282767561910652423199996013396436584013875592853069007666037236378848005376633085244930256201694847952848786968453390048810850876661895726010568816698314470205069724340339711710034282521013368010292045626974818041596680798668725801738786672481696309178350639718329825994117501034711007236926463280059275902050219212000603880756756153582570481017655875237634204938551692248810314515473669072375262295962504322727474287423535035387000032034192470871677065853095465553934054350250125699586018736142755944438646570133777046705433303220975218691134065996959202200402293113856769168941462434348673466286413908526982041520882920787572892279833390832582971860552767840393773710476299871002133045868938575431746264186127726992294566670786964074705599038650869698532021062800492106455960431422892252602534362050732682064068207499507399697821461875304027098207723407318216777547793153959635870898192762859612888312080479050898993024111198429881929027968885622937753321409812229382621459355175272878075616038933096630627289695070954932342252828528968291709470753553040201722100114296185256707324082080027949569786198796560059272015085567373768986837205664223172432976807813983272019049283837605403025898721604555017724047961187047812951395845308125881244752297257497858539319689013086112082944438833303185608874908918910259248546366609881586029202448919186932380484694628754755839190484390563156058823035751833845670861047723713650371805897019499417976700981924607681630491570209886785279867292755714776454096818495448168486856287704059340045398144231445459616603619135704481355052401312365280747274788152148696260209865148821588454707394980149723372901502354049274653542802533337250413877030136545460944944554656487253250423892879117780964128283332742791972539012395651606697085654876438922281194122100400519439496630178148015755182738251727379392596715993218885261847949247632041471571511896751504149457843606667436631960540946474268419531706967418632039617702627383314591919287637221250110641596877121663459996179617841822469676111736278358653486453586495243108698999511865412396394363217684334615423423613389518835727580947785927669497657995880063835656819513852958718510062253999021449689750293065501733667217929958609913869244833336861347470556858350968714517581451846766885002082946380154088414345089499126454579808510580130478608307698989940255623500236575513510004141515333951731067244325842105731796953063309959528516463020606925713239427399621854081338394283227786342672966821959217865940013028108507880250254304930482177570037289540690220728858698557315983069418636967407947365046949729190696940736847829178368602130236466381476512659395271690340436229139611399983943323031936830055504112271177780908501665229669915140097088836419946521219676297293322608263195379643638037600838721189097993938018656187123732841029985425047082355379636844471977781531408562279107900238791192919284548932208539388340542071963362481958271350156104283165381642553362074186012994128209107832833623800908530747091437202094418037392500440073020641251600470463589636627228805419716691883197581597838663548416826509499733220869447671845081829489701213574722338340195553093498654154091438716669885323085798118551347215392044409549032553876271974435694722186868260459430965283614696812744823878567039684253657377589207131379477364837696522827763758818096502903103484523318800679642295923747176170881977919734892663893363754189152512024347417201335010670506990488566422047973010183287948522081905020403699794082084832133641792780331044451536219901255513494883407344325089838731415979257165328439922812754926145196948969801801124556119133147680104452635053833955521289430999377924904809867864619042958759317667862458781569346711139614746595614839292791999355696776320412736331187297544023714548294752113391571634257950888416101259394264376885372361864550997322282912199892008604085188507250047613053392212297983841243699497124419947360561336919818246415621377922740371578401823015187756314737431914543197475234018079137188810183338401278939512570655444847890517970954033393485946050442204114404197769632631793488662564113639160005944467985068563193542637933597272179548261264499062262398728443367766578040113197681595381474630721589173108232006899351918088614432672727150707144039114964709916286704101173019809973580330151753931696340272722888994346250936804369505499051067060276787884969610843943760666393967084532014782244071828512902599529327956838607453249477130401426671611466276939703122684652342169112258887984811893670249348254899809471513830808874152960157353670984110811406456096245348255514164099149711829926691464165842096012744801666177399068979856312241215669803111313419241823091383068747344683424453683698097641091174216235737193633650482033856751960780119176616198180156714923350521588072536760916183906984090859991318560587525530896882209985754498395815036509988382548336224316216811291338547242962938264817341408854596343064333986683019495940564186712250654011255755995283356743292676875569339744797604319749269899472251978108181413659843713080304282793673275485486516743130679524052658557538257994165131631334378513651514926003297006044998477057255286288330845400912548642861401008572483572560944025737052179087680640801171179187617628211646421328939580541258826987929516813992980624643484037801953078484395760326625891340618143643322475952704474146852456324337703362604234471107752118815699616858002819898335301522808306456726028495593751960298275553821773494317477593169678000100659110076803383479064406187782391316517265347663449207437593808240284570046810169582454440276938906946251819641472631803769509947367116266876296826236156287149084941120012013235005414644464052620057630470897734990683559315909107024890578092592262218432757234154931890582306065906765945467419663609595200921984557055651893523391961199526692587623925285701201527262107278388983668488012982245496559322725313375342376434715123274005583199751295309536317082750155326296754430079659046947236930518361843451499919564205157127411425726038722147369914082660502002807939294985883333546238155932836942111837218921179368733044302880242513158632254626839034102969144859246699037428460402268507409889769012472061134324963422901869952922314038021387936807327847307103673128737123702985034881415175071815426692617160822328199633616891707499796659289850207358708565267544256327318804018707237445486867416028620934599306987339900825659153977236975115629509139043547173523047669766492695050805057304493503780509663830818135827860724062605710359923143796696933643365941625510155847465190093376822472795070285090493185884695064113910623430409536542611908635167351986640668730710170973703021676001586996883068151902481371033241249377674442400974087898717538370408309721325290638182289293326587023544670450324106465020295741248928225458777426350088756081560822684770821564338538155793963240784163630144820410764598019372087719215617682916850353553210322268452749187349966397650083106470819306646503096903588496751896536810863966062547053759177063005404646576982335137541382786284046701831204128457796104881795380661535117449367470947382686345376313659076277526300380804161375716445500602348784177612302180113979208786416566239443782763237834191923913069924279096119348756656824425990373245285066864323945034891122491937872641336094891322836152403109517746480575753269157340223567022593830580014750277845036443841109152389966166702944346140309035545414933815214093620839087085807993267894387149394917332621784251983430265467067867968313205687061289658958787910309251361432503732947497000120586402688997657828722346099800513285886104026174455778108922566392538491551163580942600485546236124431980210449007819921213873864651239664066395987375283045163646324818690878423963218977932744356738869268769381861441798689603952661697419955376937730313705003555786136888888758260000111633513712935918582651810664769872365180906042521180392788995674945226953530018834238416965381964418174063352110468406575119572353077378286731690308916672467986898010326119521440404802664467048842456882120174531273839168967965701926502291714079390998808072845551246451027546067019617916287355589713236659308441053436530042645635787380932918637539436349094563728760398627537298669791517532818621385927612156932604134378781162533144718524304025073139556912288869229955287813737108038040098460457114825334751364670493794509586371791671013473246478564688180716415960059745695795220450585600289614630201388630063414646052395473130033526430281381787481547566284261505717468296175271234775019603310346863552688041828542753651822031296434327190717483645697229703519006534008191123896312431953933785475386900761273689147797644473601288046901057980217425145381871203395699461211982302114888548614159641407992450453066198791899844416327220393727814597408039293942524737152720100837811967972471222032285563266225622908333786549689710010965266762227336748424527644573215354304028449131041698427280598696630917306138857555585310931776655050267529275309551598490820093310834223290195010594061097632523309741165029528312779396269961853412494996020174068486500515996824383938345136312209554142326834679337081748183731623370067461045572664158730934829002740768295561846954000418058347705398560293355121356401476898667677066710175434169639434266822653964405018832695538194571472697647141332652325375708621131990355079221425596014483662330748164021996997235207197503137566734556289970122685098153898768375099438435234011510190326800237199995793229977788055796169462333883871696561410800588526475356439695589428155741347011448386614808265541043999597103608947259904612383402280947389857460048956963888377327787805404700429559014041493110577012587721729052012784785588318358932874467390427225967009797163163174834447527152927197254166970348547345348446456010121248159756640315540290989469566902468464164775287075955596495751071437930999942305156951230268832123374631895891172244619787471327888977710745225956070054775534213744270466740300238306108770664604944488573813677885557247568353965707565750009623258416041231968383048581885673357180769553233581812376701962657954159433118540707807458177045681394276296633354381225518634878575618429077051366371743534548874043745850838935078134070993924530170306981178654699619044681395125608173010798925230268461011160844863351237968319111055879735711707071230510083690620329165362469301842878146704463996172524556696366298911243474179423530211656725414009399026945046562891717930840034044121352718926934397556566514409772393744944054493983690732683349345498704085020600927070655548213481017717543171246044602947281066097048838804919999537792410119699214241812946023973873158815078297087572687975599706411954212998541746889699559581046457590302309238052847525350152357158359962717780579978478831158661709269415010231846280999150793931222705269223415149168351665241545553688568227534110519467873850976154032143932777703122243224268630189802097918690880232278452383134337125067388878667211876594424751913454937037762217888060819402791080373566926987260717358933149291686323840574281632769476807461397090892296695176028165466134797827800211752773473204574133407391245025882552115422891364415919573713167746029127968010389313981342683074283508185040470727730236013382471742784006339034167860473741077027163936598570814702872248619240634834193715174220870556956001554020425316828031038279018131992971020244609294343339179051650798378746778355121702613629847636911876445006882255960131491939264568627275848422134546617864652187675415024613812882748643671023913136253857828328804391149511580392121040766013160645013761086248273684314564200962024564885398949544019784012202504838561822154443774072760339314043145966861621426839502088474947921437751326971974451344580698654032468106005522592721391794000406649742467433159283397350606267849091962397804068869015260205855244993435571936734327949870108548607793499077695629042937485791458428166740003130081288452129368181743857335343847789646947639358744977656098347960012936252270668609320041250887530595639194213950986554464418464369078142351085218304873163451185842822478801064583181800418715821768207658032114133418788186587811196649147572230794446140594286330690275326687404192811570789231717533025093894292568244986646883106386474958838763124659072592086975660386746399918692794888197487160271542010868880089071925616945390333388540270970306968435815854207644224013773205760968302570134891004825827762048152950626083277591200555756192695492166363576629849224545931739084361218184182407761105662360289482794885964986730772235733212600048314744167125246979889987778911373055572790770436153214418846371012913734944353798712498727679169902341369923924937029495365738523160713389083610288082864294409457101823147046543561712056298423349751755099683918165324613809869252931676743434154879965986323399366300899410717881828965750711423647358993270049013180639954568447218378515495470862022429753832128532622118007837046025207958903302051808435141327032222649511627420949960658036833365204481189996434482766448435460344866311478314083463911297109140971668210173550882503596607523509962441880666652164437478114972033952547654063664302887905248563145494048448314191625220855388122529231782732919932233010466544174073148422358811273306212627048634366667101539937178137384684842372546411895971382884423810514857148043058241202531637923847377123618605423510086636647868834386370752362917170092007310981978432350507005388434626403678976875952866065482713700181310956556084163953289795510705371649369883988759989054504072654660636923691411894031997651875521011171218988061450729777817192532376668281945678236075862409005769755374122337604257852997221453462287961948780164627727717956469901617881560497107667231605982162052500859133107693391398920563153454291848077163043789208076999599618214276026759275247869431240245425535669501203656774717913441114861270525033667738040537841161576464142278703925861317409283511920947872060729340074758927010688341012724075630233915002638252687909479268854047066711817032233729639449273782951372322062511643190862193771748210726821664995991252905786418298436752864011011882976487270119319411626241569766311124900767932882813714823942559690346062614651955311074011053482763860986724232146859406044489202170512337577772125764653613891801445595303899442278059203335527179982136729999275296233406329461302140331375012776038850458703910338902321377705513231744412477065886249380161281509988714063534608672711019383893698142367367372573946345500173782191891764156239050577413607739259742842263214918791702570948394697330450530788705000559556755695241292255724792468269055934733188552193040368580827600927848687190387632453225636897997686561713517575348134795115981114391446322683225488319606704769365698165584755554373789273544032784560160928737944290628387420205358591485835018835263598419743807256326120036451136894541957198261589732693764152797711855508800868426892692834546266147095537713129502489434253785615018580990602103035541536629455822254675379412900116158631824393490844275039951248527451891775395198769817065392733600518210451203458253035092061734581396877356146917253347208909472932574164898588052916600611429808665292205733600807729109891007272368695037573420799118893678641013681784432918580760577367438754070024025645121747103045794852626465517103289095874888485164213263649520357847742783639899249912103903195090781285202853844030251940924665663404116442949289885978133746700387969394040033469373668508397913395462347270038555061571559054932686809901489110934116987077845462800650427316131365513866310219502960563813017974561463634658359365732172570067841764403555320463329598345470319258583502659682949080650670998140271754057704786093662429345484060135924508257223273880562638177976431057481329272727734843412264745815894708464016239980067892685367434167016575783913213449354006567230007022688006410288376732399394430935592776040798280041538249272644391596079838675446596088990051963487623003785915291755419136895632882140492177624041461312385448871194023193406363918479265095553906412814187225162415131124914282527666057738893315034247612074606444993802552054976004730662877562320566219507224270047225509847061549851864532950306797967745361229779020207254754332596588419509379227745486855329437709235696050176782111477650826667802883220558180177904454029564120537701304320266671347751241960421370552848985013837459562089888948313582597007725421089904011723484186330560989594439612468205938591270216466212954294360548220653748143469374318343177250887644582561159406305225818149343062594093799935162064785651691983461552445660328842747427168227347880482657866518727093662383907034971953640051433690528423866429423711176343420625457530694303196877644481203561288800525956545505765878540528885619683945520957886623830445791507985363580878172680384980608054301773698244127460664331215355921486027124732980427380157157129285387425056544067969138131632738079380790166030056027000564478667021483351059947899685344154241891421152338630971508148030286252845941275096417453933027506692345779925815406018435786295664857463462792629105740254680979675235491592917412082084851692416745017538638647972531573722554663305813138573795778838272191793413678977372537987782791655517157305679277126270765059757075816895786031025411603483179260037610202446417672925079813194933717148328727690438876821912372963848008888719189076463210953249953033183676615831732032531942518419053401190272664878627772574065883025298428124020588365475369792929928169755527434134545873775512602939011590475047021251868155163125231301069159592252727431941940830244792458166152150083270821756073992026062606575069545005419846604845102574007198723600951064890022703416149808969277891295053554370982221042267329592344349361269308535732123852395081859761002890722440908624128000379646347706022058490560361988139309090449839754206297976600864276185501482767875358926548166068699184674348485841339009702984500710496282724096839860121510313613170535818792454284035298814668558287861243014368883979089700658377440012989100134944102819579326087420834600837175723270547687956187599833218123933702506965675535336212829917473602674740807275460903534190245368220500309893994993606476819584677807767818733565941960026292629341360521199694338345124185185265035755782536027570806004154181645789146949458346299836981020281712323257613288301603314811768405156474377469105287305713651712730183454722507530878492036384881051162533957396063764491091310281059018889105216757482392314425069791212252807295295087978407880184198827998633906543554739338331327284606070349151605375747333429941513711755309174179922774428565329553792905392871417014336368467739650690350562637463376691843151100596881252467410911324064688417398594317690078509117884104422898975874442884888791019891143335778003364220583697922472466555691324456385553859225842551424181308326568798902000211671494169912401514184755913263306285083258623910302660716630646372337639026917330745145993896766968902653623425038109945476762062897001886495031057639796038354959262006298469070635030864061820301822939082986750016436669124826135707176812066499307695036085093291711351348082188625203522809161160450247218405610201539052355233385630440229463691993766551958752704883175342757078134080012108684848733037268988696075943245594789262738939459064520453813634857803775696523529383044442267000635997784683617119798021715595584040188056926347976997984725514051470280115411113857964397848747201710201573901003818874674200413063559080551052211746946301399336361798695167878263630799713225895817784389299771471722205957486482971622789810556169571541094248990208834713669174019793170159898046311643065430718103763951096393327745035693429908745831616106292126917044136180272576146644883009866229237737110236280312896933021814026688240187584318158590918822094999977942060737224207420556123325293710724973216449382001505225564843477264481362129834301439556986208124612880113325218126826237468645781084671864972249422704017935897184265983315835941615372121649862409901219795364358750992944476618187508195015937255338276294650648471981193122216386579464916264076671740167227076819281284159375619929240909091087339535033701150914013601898821082622347227257461713771413448314119167949824166263337562077407191514009486156432986102702607667701442060060758462408663235676606952561722509675356257329150610017803361626527457071387217378456827815902308274866920588278802330159870243235406139773218504353456211042447701171685332976191624874017916432629207355187152197826110257902692884802770082762437360215470129247663242288658221930061772812609365411758340042173898681306639615193314214384335127952398191870836374473175296771847486537209653092927315807670283630958037502048885470150060318336230914096814616401471892174080964081553137665624283283382089659692513308952834829111930408438834090535782450736839479204327920816402349619607944722799383802462688462004636374490518682680673737052499476316407525018414173183056250871249203284145642018381890593671641522491566102245403034685726356784299293944263076735091987978100747225675306325567174749956665019373759634609799149487861720619640325512446275972442958725587464313091706392268013540807319693515345047159316960911569848228383089094230751584551927848479673396817129431198700579385982575335645020588859495152275603362271920488641307793154610292052005377159500005515069149797907559265517965072857354046670795777096818228226469030060184543494735741588995160884055553618161152012165772403220906972013296123767476975498060988063561535428176630323447926175264898261675035669576626306701441414444810307174887918088731924894954252768524358658285231013653438945134320179060117092797643052234944367674529679665546502179051129929380571760493413255999045075901562984911378780333715504986082825998195955205282144302973315351548335348762669495551014145355791030192854379340948820321785567325966238618226837530567985565223924034573429563396291424209261096029914493967468350323577359435565993521601501176342133347372202561126804180573054904616339919029551280754187548930276442385959727940415130683058811664898878461253827223041421311803193765791112054728450029178863360456787211322013628127908940063393399334750251668095393023085832706913081164046704443389062592494487503040694623479267549347906150336602097317048927087236532728288114133534567424649767800890531080257904817041271215340710253820784986225646174763493074013884938510878111387602498770138282841649443677195830683802562845448531202276734633919317255951697437412011767679636898258940455648937519518155045575571290511332507082841581299016224005785049612028286012629318087703905949853369046929912763427351594625949824020901463545801948468747967350099942351072507832542512541723051694603652896627136138826360460501654466021468848095029106181540127844500768646232414445916095323770321539276774310619005002563734596699769684687546081301982827690264554462641647146268868156122693411497828600189151097900017597113017973224842122997344425690467677578704445853766389877373501650218618664781857838687659734775162280171253109520016165839331322859903736509787756906781757790342334488578035707223824930770324738246152747895481115694077144160926865489280775891760421830865880444579657110169390259222703375257910578683975756180498075821369828955129063224623957743029316763110610228210105666421690511103839722561926740452090678067848312329765788441340008879851405064992824803513351340452792985122448847173848055978709413525287401183226285985495629715070307393398714739499542405051194745211547691290160111879605439168381163704182335869006592597894675785340593213987856964180756170328233953212188910420908996452529389849659784175992906449307286996330800395277106895481424377260495208987132744331028394745066991024642462962606957541451551733234247679790389778294752429352432307959013707631961990437014719103905097867984853358966794556782235819882306764087283434577343007788733222889272663826398975022957145599008197494475727915112886474907276330826430694628148033264675092117882021715461164515979945125818851617078188668322112004457887838034711585845622721683342101332841257875462568093788486049295201124953811435203299137436493879799170276231709024875100562514951353828994473053649400090319864761895434715704849853598289239335588300014615255766387372094793446153177220676576556376114416898830505384366859611494978999275547851697864847950812886043226721534213322466658072213545880576727934668568014127630247546787963553513341743699402934680520882109981039532937098733591383054133964728660992827902890985672773598683338499127846426880643917242814842607664322651324790956034367409570099524890139668191853712841787447042741438347875318156206466913735083490856073369985757023030569554626673260601599075694815611494267826906319519833428935941731335275684804824075160396477229059117713662688311623644625490000970094002638580081603076301220613291040552378822419702867166092201929545548516894502466303355783488629831639679136601846036282045225373559699362001244497408443380565080011954192838207402298922091317897900618986071461193329016274132674224393501807854236121020110053243195991368878951283431331734216960405035564377853248413409635493628787688653976991649406357039339140496832635091618519968394677693402891380449985161057320693799752417134566491019444417454672282852045206921314737656428753592669848434257222522040060397070538858217060931154014542435649890194749564622137092149983812379709524764923754520750358346955687517408764964688646045375475817955789475492766388196722790443201889943649908688271778055222891755942650262181287044655636648580397376075772477192080029782363278871260578257167756407103576197099892206185429333309539037849474873217990513906302639991628046439962242614956523235931925654769315522715138224312763577147262393457211270116342147582876012995875725410025250757073600219806272423516809982802127748540697681913766861905930148683986561847504025585710508887846613489932228477490714531525905658481425444000174307624549021001639054933992189225680840983217421960742159964958185989742933604941522723657976943125774835512742975692355857594707228964355404412607164135168301267140704591842804422897392028435890593189547216640672765051295099555793102899518423427758700624050158257836166012399661984608787580935101575893513884381580762712928645014252165325769251105939875345599411018625125159408839800886403638077400884469598686146437936866380724926183838927129175538917699476339947540186645712915369702474220374970148977606160582152574737457065915073384297791462866998930415559348353810478870127540170343532694583635397071619778524074927475454121741481891927642516444828352493560043583033180489204194515206951420804847720142933393192316283842201589117690932451291597335108010683557069002238868770819525132018387712082389784292120069509975239852003693813221498101095713183984909151932423109288408070938073125189795498001922914809073297125010814607548616693586827991878240804259895426337599985031428372529170053727148819480245204494518406854402848869447332438037680228850105301199630463406578692106874018704522995326997409304197759384168453699540575089600091205914418553573945812056931939086891856516922172530937683967439427672624891348651088558837716153432079172037524968649063755697892225061303199546754749337345747536189535908003609639970893278153445765571650825081478788441495212344373939616156620656253429703462066038005726648647827347759963232224783854805696926617637722148413195905528951930413911589074178484333601897071944932979429416805900482805105404398766579357244590180062069389873409281032945506756418700572237311982545598547392863102059321016635805922596660691544519021858719521965666426606970680890360676872647177474928745082389740677402361659190252446950982358318594988917459525313972767849123150396230736191353869563755569392402552651026189592801672743382092491622581603955827186851638470382736946597830346465001563405103680248593052245224174467197443737283617203334136022370282936608720436376061852336503152960891460194898549746208510341241459295806707230703828098671929343774372691912724242422727999775188061090824579741607890104410156003208058612749968692694222102599829000938100328331991468776369830748050706242605009440994957233394563158802337156242188004490434655029402590977454860084477778853189862519168012232900874654435929394273356846199109244012037377353480020167207194443759455353690995286595636057494557455009219732951437680661502659255604092472842162438411739071474019828101063924118695285909136977254488371832471813640845628168919330128416023688013650614099556039842104928719005704437560934512899705655938994027283786543474532536073336784750473828148707959524811207571280656675313129201057879703691167471175993188600284826973936774173265828055294487492581870855670942317829472672465891724045026516154375526108783453151506610024076286010259433505362514268738636046302975338921556587513943110987077982537022197083078582895178096196851864927964786177344203297011926998921035548078157413328755452968984529363276156781049427644229257023842906669998037566706249673382368664755647343536527721693150839962373908970081488423703103602052518576489196160695250785041543131853882037865178778653820547594965608564329240248756583483729038580695089717815941372636193243586120890370544863238724382010553998723834381884232445344557131329426823746417617319570400831736950658213262309651392248038170280793799792826740927021238326717026245583069513261311868819588960989833716032497424647303706827094057945970736769051464810459466705024448687273263344786970804235169025004411773220424457994218957032535536414551492799830131587515306781358654089895772310049216335553775130309316844957839621033036806122203851402650429288029307274944897971826597844842832018348181588693104330521248222135930519890265313840308097172110918930757655410888797059819072807641003025280476107181468686190939258910609528764498921815579816476269547781889855465980753950563726684233951225948470726607342934444478559345841499729071022622049515174827613472360076676206463174314683215604854223388413111825970266491209071584283941020065833921077474533747407669426959958343452691584122466526348487512122350793696033860968637054709873920140168236389487238035777526349212885142231810376145982965346274211379319365527026400779792334277603677551383601910184332083429530142806716139061748350555211425171986085883340452470094350577950760811433258992779719174183289209292853482095610173383104052980528339411168979845786741946193280351851395563627736833875201252926562589056752103867650221220540071404511909447127257134064784418175568812084902930119027943089340767231589588501111115903847089268383279621973891806010055019791467607854270940113555569251244369907880047641382860314568909119632842109077450814616643854332667724219257835576128659861340515506674784347188020362341681991942004369436257102368466787745583658326209715024118700177445338801065402134449115135922054331806365890585989458434831494266732848148357500072348939954976922905375067311272140236024146521146105147754841699372709553599427327372932691668999476772728174407179673872526596599779601580170758486989940796323315784239832439863406007940691621095415312652397008059957201706513510330641815050879271300716550102764982372566067127266723309440043500032696828247597930985567234729539981363583101760500246409894429969626602331584219424771891808031961942177985846929412038543479316029275240539953978283999048614691415895615713702609623805498580219206937285007191983367856767728628506786969679467626882393436948687956762514722825222122415220103619868719015790542556644903136853664175646302818894494777511471262923909904889053234780471087807624032886404086631479358752225422737861263010105689998254148258483439871396668848553928903197340679917825626536013383415468341786440439777023770797724239089152428285045724997194124680835944805930188930300969203815326440718337318645251807395749887833396281063248443233106990423931770451603833286970016588068583459307780638128150378656435125213697536499771523285326052026021321173798739497988645253552855045753978446816434242048311197401924075143570125871728505743247233445852579519992203343641043101544174314444138040829189509604426801243891786951909169530789359451511085582575656036035091655231975836336812989400576614754941761005593255114072760699821806645243077550992854539044468762349279269587459743067681513400448907531796870306282198415833171751216382679113334237064127806247241399724839584351766240182819839023378269567532932664675960740133520824478353370670835543780589442896633965268720811443979162083711448836439393500142242308034349184432967333569298462116393074860237763062692176991180763712883472590542537950834742124780581607388726524356550435823718935425142235586900612040511032094646887514453639058439647253144357512617701656045620931991620691544222807060006274973851356967288194324696152396203506804924157134240273430753155036580217618708862337672898670796709128194728351090552521847726847384413862071140602048659929747461895966706756355208049481387813688418120381013691353864060002297644313651558861750494726439571668716717278490483039885617857179576078006046534450591977192252860030415098729056052128342898734160398214350581955421389744733673245212099473769397148862158825009996832464775945085012399932265564182944057862784552735326505058075509812376389456964986752578136944276306255486960814849385028703929462270656281389491354838672570572788068147880475536302963279257066949465363542258307315073335750831928978986167530733880396996544198037160358697205848827495292329628018563422381631202465229623646093916977097793679840960462329902641424345373691319036955294387867588566421892688317866124262285094246371269317554788483701774216173545351495534502679467876409550717790280706053047974989731601850299415817974522435805693420914189675237443251759908601804182342873140473425519344309694599422679914512484419392540063834815842874638634533009442771227564594944266819162373260140496351939992786359610056956035754798086550434310007419182098775305161076976275556051287177940226646607787653753217078231938750730939985662064095961076055414463157357892129892971597069935176443235166927610917331439239658301018755759824845524247925547086780111405967562920253673752662117856197738078126092898540623727724747537997557676612844159615616565157766210839623953852897071797179484346683887722243717435499391249871140319919119506512138946634370957422610635993192984054776725836189621458545065769222313090307681083192949595353012998636616487113881339834226849909004589155519537353320301394058831325757216207121794039443850064332538084010658020574371287479541567241182669303443709232737837728649159278286551899870190182163062599593910765331811342380652493807984778340067218055152721823631179977706514041856572589942413752955906533652172059321382197909919116565233952986246737892593411270976254297279348565801047997991686430810825428854037146742441778567841576125266326432358866274894986058833065187693734510581097817010620778071528996282852271319696288870354459271206582430575801216751154790036663579707259238503963143818081682617886795825229699159770252037009927905893227180076530257627345642384722218286075523756869890505674458625216969974104994275420610053966628228394554408218110478419168310778870356769808493937845113724071938733091288499407600704887923974209888421493615339485212411668726204043540465036555779627766304557612435835115951013055421423166919846117945026484084708974740458505235844922355307017978923241406833519912161680115515754966134273631896881068651281797951832325124456005288518282612552999807006821999836089998233636743919295427011711094259913794370046618040952344435841804076349052281580696531170145230071789603281985809935131604016125478375280454165072523047997429509503637718762388907829353472610931347069008097680782632056425547944649374207514010799514295488368607754862299144421298580251925989454992151013444118979674726574716768035030368842050449605703445034677581839547184777236701043467842512239824623934674049988316329067281274153242406084075018277268899484780586323588625178827970721912428672262394714809515730113868156900072085419220023617034542378059553700511816309855132074700311590817282996555156794492114855881097822196516503800397180589238150353321797458309131771220793739509059513589404045670820089776692425146248297456844235724956673760738606229378735151723319257415653252297093787451765732533755893579253063793274901895877702694949513121478668288179882579024728738453942972861862462154233650030909843954483144662966509943627252216603433531349608942107269201268961685755875858001098863806510899347801041176739030796650738314039510350631239418915688158347734777663828176646130606028382945684946103031461659852126434761963047146372180852665399322816956363473130109086783496190968444070922954777337456326874904309541321617316219764659932750136069268809278356035410418335200074263021679491437192016667889421891797906727231655532149725828255570111959137052577999333528982881365765414919949870369896674810440028503674232669802506934738548121280043208284122853444420527408854632391832534337485567674813129792174435511427284034181053155651535339619997716050979464663164367382188896976465884633454974967067326797498361674761979597334308543208184627005072705932482658566974154919458312535097633240283698656316744115888161507366907382559688631588458960968983635677505513504627242705320373621983016361512710527200528012920703531926388462909978097331097359988852962519297816041835704164669085762292739821474856775018325793515566267854201999500363242126875843407042471426677578115814557926785905613282701329178686950526514719238882821831922743966938366182774227651088526196731100235089078494491472406098817238981575896364783312896817197855292640670890215338771066642017802561397802176326360881744533449287857955423595626130805518843974805740005284562571666791510369024010384055295698442474094732975779704389059669362031740121875848241134183285601102823505547147374053800678725832348132570450272914792906964418761355728883845692016771790278514247261956816463806951568104098159446820889538054720959935876368156955298870192675805961465456286176896906941445603567757479847841402821760093012140245998983524599327658448994487314922000380360857150459426995557598823428061584094428755518429361282292424254289855591594151579287987171973561986737497342953048160769768946478608802432433592132281060577210645317470987799965420669039531082971851383836515801961703112202425781946816428016963807005718037279525026103590334779871409389796675563388240281570794421710740737270759200481105678337055895796677004407127364942721939104220663781509903507540472394417588771720445184504776671247344099282417732119839280013678882006894265028654996260311436800096355940767294181048666577976743610184986695430528878943493757463800519674016792595964437123574524668479268307763111097222041506828194960088517715596624112726122074620211210797659385937135060732378938920659494705757608538587786049589841086574338166986131824670532695474197379120671729195305754444403277362019560135091386629749168540827795666513499614419118191353553626316284709170055047877458862628682508296934821892196829258960085081904892021034544738342314358915053230494443756436031698263334509983978860167790231732973455141060452930631803696413504651362131996828922403662518696576112243551785718972425641720446724405050546672016375616731478888046485248391872544028840169834653868678306743274539386249603095665012232497287643719589834001888888902811786167235575900068047520982768051327092671412453800203638899388469798877357560231270875075909444725651848100098587658201607960248875025215255840470450685648545793890135433043148749884019619565287493123172677815975166476447084978350911056430637585521911821442861162228998721219843420345361177028430003172424315459926874400856705624221421243969574997242052145813050414985174450161902066813986663539284781774077769768537211271700111950273036205477700178367708660126530291110753740865595780738321377207505328209343704471172922028891595278954999629936914518730833374312286398162341196695643110045278760941523120796944124889916688721026366251457857887830777829934104761299445968937488234287062443881285979069942134975046514940192047172694919621122254417796116547407922918908500678731300512386470143657640220079451295375963311931252210706648984277720524481773889398262456482335881209739940355092255496988958913290533669199703271316119481958410775555134734806836229856816780867830996811625195338625713650751016409459076151888006716786513348697990618953323787880478373691992376688394766046901956246089956271551222563086315307375677991754543066796409571905642672832926799030693622799416704098112329936274224054496322022445185544190833158007447560551650224468397639674969494002627930774668631901252646291826356887802694806358101853944487130150390003443500502951862069369862098970331782210626771087423965025382181424596994442630311537223796720582238864081070969788533626610827147165883918855804721150945667910917599481123902926188322603184535023472593596501513516163719331021827359867670627033335205495320005208127041999436140854516935840013642955093561439272137887725984041672573803267717779800583614927857546689249208425360473970934971771706099217658559333812024725683117706186164867723704273573438961924252987618140647458133397520969591215430300709784230401490863208296796336398868323540658830357892971313232780659010306819143319569946135853314842112699406692700966553729068225501946769583608031255253169776606856551588988276663463012823732015002232170346560789846674206254686515114519765589726367376944658015838268210592717692853522052173349247019219517854647329260826112327780039226177373405683425444321722763153319088034947226138100109855972368316838143696504607903160921042190327222838952147669878190991097983975415929003172449013278091183049696186320631889133520829830192574486897551252911579282123921211871067115361081101539559504383413506655300508367426099375150444749468604497086336343540258816925410896539738181036310059827055997654599432470859149782269633200594682432582374670359586748405119647984163436166355036032829583987003485306107665814892405531474333858983843364322503279523074238512892724945462606021565420060176124416635651962774026917763440964567441376139697949014535106453994206114030322921923705078816244204394778300518533164813473443037244946190153740103437227135740119226119416677637232195872813138278048506442415863238578583813915580869819837260370523053427532223414139611201960315488215160006319005304123260055989777152579914981990212055961084605755002319373717524875086841570659771540209997251508250814826843291887299328616392223434013716035896660254293781051333369441916434831132749322685845131075241521353030870905282237069641710589387592350908819224118479322807847500595597365500848410270262787143394679314393390056843759279174754721364638824015617324405743855522228746393147197496000850185523199139688703235190046623230155428003711257978706772150133027103875977302983737804581257475843214707260808778407117784850497558492379578250033461646344959459618181688902829166164207047820796276522447342668737220378332999839182996867347150081246333951070888189792416390754882693638885606452868481413710971839921605839006129871796680865606423482124444717946348629680794878511459750225275707243904733582119888869570313020902421214758474427879097355933454091647317409962487403433502957524655774074541726074465957922652437994717611668674864023881749740301869715844152923153727953372626507146635891069371573486480410570808245984044308042309035153567411545433622549085958124973928310746722092429964547207350717798593589551851010952142666692198095799678997665607668358365568469741335302409877229788104588837289143100473980495555457008464903625867677676717881480495218542946017825771579076636927668146146136231825241711250784733513734460700288648987705093438645227703259477522845140828336375783143982128341373014499877127413254208771612021172534670944242784075175535914602387152668393980855862217326814529408730245330291388454552179195616318858058552028823293668100043357205518478258437659381176692113606213116226100987193933242548227959693534331238962686627860480176496614045961774611971383812469876156112486324218144886791872490952660984753873954721831677476442485614335290746035886404534801362359382204712325405938432535658429345138443569324437305809058475155062429682103800554374835320324431474038420467712268276556369876529097011497840120885072824796968732505002004308700360587157048025700961316381356630584956859944787160307310384042288105095034134544923665520230137383956857948846778579238799964593248921004603711644621828613792825394670229117422424061642871933078221863137532672744156758980150669391436534879317985498774023409286181387912832513863865278573385107126798124691230402197598987592825854664763133546127096175183328502084019334933058467822324590908371482240154955047315464527766092153375395032568502587602791926498559571255244082678733317233444515564932437127017813637468024321196680886500703977443761951474690216168306361713785717006181435685071896911633242335971946040323699065737174133266855507023210954082717221043686668661768616410116699377332457932164000371152801010407564810446732142932345870217219187297657914188371400042764187238712018439469324642800983842292010228863162731104217294100080681261775239108232693544495830546414394134657534978530666191814377691391096776834448561211086639309738746695851875104973592108404733740297695742255108453677660036747568917580083275630561734099153895566152252019983855183410899550630633672724824455723884282371488493932417083959578722302721425462019963062254937544479129010494018745995717326059711347291560044265761663044987195506561955061616089795323754871157025121579775442080224294506791835090531436143774360744081279854443785874444616619207745223543150589304956611589193889346292031270761964588991864701010414915772307573647006001357014710564686289826945855227828943171979897011341253371337346313137471867524323273379307887803968270285709718092017300578092346442546763799254278316321381425057108270234049155283839900654656881861805193865088795263311523540321618140267627181710934639268118100316748036522003962561129998459889366158595640677683411508406388739593064607868124167771866674926880363982133516343351834393038479843134938262053903549687320382441549490878168461354279942586241962489479127646114645797768033083797626157073843806127964119657311814475423474592250377217936045797405228043556786816451797625759061477713219268354484532286383048546337108075067051258771687754538723392844707309789695635711474094324675328376684542256619448033618496921377132222078074287366826231971620754160483731870455357617284091104754328537083413454866869953954587094833795496528969171721697371223786370932869487447787106513967348217496729950561583499906237696988289700412114917523991451867400236592273284592105763648060909636396247924405865124324930668072067133604791700278609893040512444857802083440746906645580406495554862589713597466206183694353984147885635435571862501823699317308829720764128170718923010998380350224287297382051872048888783964143572493132604698396495383570635297820643743345993397441171674309706812208399477184706306908472079758954289425889158801019045564485422597563296486090969917321876354403890812114924076786411355684862386285452829191468917064508115809850839896875497315853123320280363329183154963299936354208058417326638375240643964119537132059886433030039336122269806745355530705631661497827256308162547315543907676947409581824868726901859334128645920477712155099594109321507689708958993713072442149759015877777834076898949271391068856915859938030672637620674123604317647553255546476760438298529913459795714125986668343789192271720265099553056579965718085417615773657865511075651174113272664820619393733090791230247089788663541737996799562651924104193157123175377370323442537243308969776010495291008525497364056283528760467512829929573542779855252305293179727667042882221540132796531639625824650175678270308523091868408847224699490935739717865187545491654218574671806090288510179423110988722889424489390733212316120405914882056412286881723316547884170837668936658229836220214485011762640670658149108846653658254110343228102133209673921640425319622275336063385865311108109238186904010826919686466568653729551642811235972748486333980095477463994766968249839269241150969926993455276958095382555514315060558350421205949427377291597191618280656413617069336706755429104804065377428245371294043611009739641069261038152156151388969891947310038429640856296905459988308840698139909957303024261718338005297123589522090718486090299380446180415930612278161288235664920618425320333421199987508027898773613807732910390845043332619794580750336921389344386710613961450686734754059868733885567807665292797394020706047551449443111673432166085769108061750912407266245123819115898837096249570050391327004888331536260973828721606447476242274590679545025192972234348084638492142320216665531064961391330533214997081084041466644836662494769082575049476286598243684823029089322926615540374555902137869501495582174961537421024120555480582263026258913672005588082234017567231173493711991982079734797016172714108994546506298147310177794583175785904129727966373345217916332455436102937030970859598409250030283958056699065260603255078226540453209985234508319098802695588007747802420729237660664966417409703519139599945079329371786554876858791268299324077317155867720381429122839635395394171822941599309388310074904368790671375873653123502454060434239296016271040826949164980465701536784365673500901377105471928499749550668312454291273934597351065172232096613652210454267245079658862243361114749947290039333656094243641907951912271160139639686397960329034080951020819515272101680115497307018517686699427943552206966068056320135316073822573465478701104499892562474664633183433612679854610611321369441463711448127263724541643303026100490401855496671412539742481953014000681365292292988972054209593474268358546752534217733570372730732914373312480821160770410500344579663949074799754978961068504863337125494564701842691722247531596083452591315018952330727401912304041186204184064002123636130250581735327614981488852367349000134126174917991227163517104926725096070618676947709047448159858232855222596834639983233187546222638611788153384030713067937146136560057902637975722932518633384809801096369052389740116073827295273462597378735277125121060754876125893805874585151085768507339585717755722471572077326971615203109294820681527106518285176274549180394195153924313393190224839891708783353966324048251179988733717022166897878194878900338300762657252897240569733284791399731996803003034699648333273181778798416692199404078963737304820030138999982045400177323374283352266987085547836781480553779641334579264451278536043131553178326543660410665819769766266344730270739308556440066377547530017522487602529443040852172259171061631033239030022382394866577721766180246325134242595600111717461758303757725644516802152396721889876791241348982815509787981538783629636657166624953919880398666998225334791067179110519764765834429482889774183355776057485015841480219362779866475669608009403635509779303361393944475259532132069874107832511205448226890594055483104849862439499009030077291384918571778293629431358934153249620987861077312159256300925120172655688101427259997586022546709840469444391228150054880473725193317419176809759385989286176273769676440640953646025370132181385336780881413427428899209179084955001368690454286758967425573653530711223560094573281765912814207957095454965346788842265920039664507186587498248360101668864742224184734473350100609012754896475673475895850671230524038667146206559042654141392770713235119026745186159559141719626089631085076105527412924883216223864031445626413942884549452841130802608641518057339471264520379528304486312605465970370188283285233999373675979903257753125362177589996802047802285646028589419488498109023676151747192173848280264943361461299825364824486182223833391824152241888976951645912279617738330659047148199581226008330170598992183081249854825944128226462728556729913029910009998231693560949093587226594135762757109057440253033036855787596503266848640702937130561010323494518191692695612247680996344294359198874651444718164728612504484615816494545769140923121418346674025592287281918841942679564407742536702827336658011817827797173915568870011805719774850830963994048250553979514692270433527009089086976608382771248404973669968560190319938504600846606999582315115337792394469069811263180464149352235764651363223653944388149877416026222743636636614604215628799841759768269827743129042186161711583872257417066539369889517317896798856627497448048647545431140945519534999530472042063011686060978708026804208380835626606106734638617215776512794340920937400638738836623529648284243431299567097066520774019192767027146047748926218946012135739741700608582566885199786633099024145235171290925805330300308100989916493180814372216806242873754773234484647731691061849422747372761924394586193295961727547631884429406184045531813424227219960033067895597074892500801847958219810055812410236649385599657019594914330923078329993741167078892035282495468195611291730944355337731256813937312972020044518254434908781251713456347658180493753676877134821723076438457173266688455611827893576141880135498959930270343283541815960569121042919050771103209979584957384507977773551456401837430725392954958653931892398432501304623823110126963904624278017810913654678256857691921809433079805005975053021388839906592799114450364900976772369969824204981738163402117356393825799841161779965241175069798242862318084642335057738560793308550775767109471436017401426329732124653508845160742750072528676865785375047031808754202690088579880604172186550518288401543326476726083250501588257498277914101583841512221804113124662202873512292685779801758911625176399573827330771413594889147654795061283477922451675851119899086112891676385154312785979986750474738974860672432695897659132858356605773479813380729073907751685432130552198369514640911414807374175933835628870274333260114893258392114975435231658844835271796583383706219873024169405817158911155188304053110608054031988948356983842926541876296774590046275311904031613581279638535655710377035966950593482308769567387613097003759653104378806155806422178831224687765075499010691159735814526960955834331739677119740610868896297434101605267288899169806665549749323499255958167976456934932533865234708937689545625075516720967360739926087784414923048939069190729510810479170282646266140182378211314000165688370066143923098801589948245442161322676773822413443371106187972146712525384780415882079192194530239395622472267555556127522048885858158779764337534668858906717999310819925602685166942218575691716790597644661411085559046304501987820089670419503793538733373170043947253936658178429688887393590131831711671890090248811965387243240976027731896316082972626277492575681957028441517876819117756892093321224963987955810915817226095919153696649152637938652139848259381208462261948951181093766525476907069016221208993669059714934434711763669740370097512042710851291421300471018815997237095273046543305220992304771902329644627021119553435554332270009337252425372261940500140074999508291446979731843927752408298285641913524546523417253230169673049353902757629626372742854014164213497765729544367973949309612292906239994929977191872912826831449319657302273806175196055952545927681499751010360856561101051827499477355709681566931899061101296971457654877999391715881181824877073137729619862287642250851443729024384252866740469844562349092972516132383709586637937670708866296961030393378593881105553154458669248967472551300639954511353698589073786672385210913758861914424680020630389349883491978942870547229722224649788554686426147264293094107645805933538068033310285027728480365697562773029332369652545267435379525069750164754676573829841482346493749887384775717954813820441451648215613591038053038164250335746261791207707052896234500130646555546295403490532163577266845159444922417284239412295594246816976690498778024918655556043801430865250091902979431648049917767177765653133806286220148819372772134890257029541117573052017209608442169965518167048828191263069244676412985406905023310493617266143099399243506641143282751250176697037685173240514717804463864422338961504904147686251003835709133651083711922037708949901454580935042546026128179705768588481980576612323401149628525350909958712293494731303039523696685943245836411484997399941303126583807749522167573293571095195033724683683151459497662629005570189113090586781127695185678776359695105361109648817031366973297371768619723558501064620508001978856558238287432583965871586018835691297768621857789660104221575582123791394674540517106806982109896544815320972560648640102669869236830880771485383562750632639178541755315517428038590923737014482369304530143264554262939000088526651029226653080206946169437774145061260421222027440984148347344919196960097741795808047677517030440105568314995823300561619427257838891553469088168494217650858184885530531411086570050123645246934851501409983191788478108286211491889547255453001321184101089186947868508896498421951150665693974670193243352396821345220167426870593884824031493475069392931399785220606839522443489432393406333259292648978125436017777762605572152605034008850510512069385318928112787240035138927755606001006435303881029181508246347999789578637717668514880965211174089823282473951052103175565276578092967615287072684080988144925926060853257279443445444531799297749431961067213427390428243308923629056317654074709606303166872045956275856001073529720656591695846139771370246430203351385823034852030329872224868226676282208815366018313235014489673119722016081641130056401407998618599211664685029504933774385319236597203692608966878308986085766036852724510844045893711802070606365448570059494616705956526319346006816787603250717065225824673647192443619506616405954049631095522743811535650622150002206698926282533402569586747364667798651253092717136605807283196060658979932386178316221208713370623793448492148540281043652177095539470595155032085999791318355427730877445176486523186481391196616123223982429872914711617240198642115304757624005350615698170670510009889440134399111355042537850942099582106272455100841486999318488435160832821297568711251649754732919950264450480108999493708826457299826448105051877264879299428526534935654250134176837876989870901295768881865278826412570001383823895736466986553367618370209079268573693557014228994500564389556256500442781195690717517880206103665957773499268879908101022046705831279484557531726833067069127210061816897963231419686377470415244088459896553215392712011459779656424697274679336336753432840608267957696783919903995734639197586387740391407280253516185089208094686323853081928826857131242336943174157205307526715937840971979740624735361227915608213801385829377071264127064112964990384376209971061219818914620014054164763927195759041659880737467528252645927271402731617513933925323661964995211857718408194251758169465288377515535706857599711808656706768997235623394772185717507516528274352710576926696273061791980882493482874857822427305080265617909697492440717014444864161624868770453842679893242860681058964636256975789250777522563167073739874119807420206136052338222724909755934438037644898363058480969081004013180489396460330055521712394383156003189363913240006762107077174276615282474322821590968301667653891700927551167578740975872662834159187614732457264471254763922679410890135523839676946818742456113446463785946511861806591308574661615841723213516985720900704842721650074032010637342169611895699112874978949615899074185535890348888915309461806997327860512781495287921660872424868773039729489981810118849266044273793531650706719424447482849455739495205228090343414993707107084046558639050522782015817399039975020836728015642756022382129980649064698385395898784159848808619151505339615547608213408339568104852022950359197719356918766546904950423592332402928168174648561685290902749633673561315657206366127113563052390620330655760142254720520037714690989522383699219210409989266316309480198967703277292962887662721295737513194247202250139303589217114828189542850100809005491403981948093661618969634666599411242055207059977015145637630842933767634515796850266160458034337440252507386397489772712964449329802629533271183429499540219507267279144478690483306182522032029294389049725863048800868844432545342769501475948204333921709999579483164104658292153703538812617399797657626765213001213761931186809506911427267673734906470813009638734960351449990880883420596904281844867159448149295462950269119065469211626174304444505218420083854179529079496791661927246256917832864041368445253489180673536217808513960259193399655593528117093286523750933244235254525139996884609100475827205771510752533594842873772373777976489408947292850451880962046188547374097842528571876852307047106277482441730015229527212127797273205766868244374697803934673110761582560454893623687176604008279019522594411967913232065140438885583789248360240677340006870444159200319208970031431494523310073496578239023719521821558917100656348746147481972054299921618821783616670707386003370144000961509408759317446678559474299183856089617107297409462646907320425057018305512230719162104668464906958249083025767528612395527458112995960052402343297841596504262151050186829575384566145727620299584724814853940417962558320981807510377832923355974678247475409174377485040635030517855295631669708682820134011358398067416940173968405356983896104941766637473304457994762185264206636252108367908571905653756049909541987490080668298101251943548412375819884880447216584309367642398600472197714354671614015932494573132487097837602355961867201126545636330912046948846220140759307308412857517849566579337802980139524571830697572173027660674536454221537509065870376776685419668209382042346164066094617312562405714195029705045709858431169327019251392208572066602612388133428577649336134996260361020092173931264492339463218567347682116452108202273281306441178017179429276383166035192971807286056899500865589017246394482558218082617138359825649846409743176516004065186181629270650497908020471162513154450452033750165823785904594595800218210016775103008159483080124762144166131048807426671506569688064625400342556273149685032628335338925735713501711768237464191692282742327589810138702719342854483476782035955150532560643898925403913861660823146594441519049584056661499168617449173465201438695526677763412988373514941598605474884587543566462754103553148576061261041254669701494072120341898915237977685923569808903532028826665164498232271357440852860464228041810116362393313914865674206223761902415151267921475080942471708632287066910027512591712621664350573033430198234584760253569763746027305089441479499824624136978552072343420295334929117802440131224729913342618791055326156253746646314804654518190238782971505618575564836491919809162380450302843927338609565467757895419727992936109586804640949702412037338243044064263260876663566906738623831663327502800313094613046506472611790406495884282160044519419689397348201057706580853173210851445471454755530902626540315221862443367331568728796630936180110518940342130109340504939284942273029872776395395788951668310091816013385149003877766156966850126573658463774402946632550677907100359107084797695343843036906242354401609978437275638678758787437577091200886283485981687428282500880340764304762327034920073574926134934443432200075317938198867312445210740511999388080206138439511273459964134170099747766798604131028529237319688810856409957398898937443789255674559620756449779968058663529226221849907975526541355281848040932841075419893093521686033087452223836920764415535524132388529421747046540022303824847099718513903869298017024759961326603227479820801691383679181478011504153586615041882773872506669261049842165576494183259801159684427143581816054290012499245793256936864823752293682825700453221221643578280335439485195771672407209674203950835723320253146469498062316050366794488726265433578878216455831359957433892571921873127595871383123453988197953815490360973852272718774758735593245096454979611462567570438895551473821250830319449133282954991775056984449252870451064853664302454434342255350318160729624004526152350867906704032150654870686299840176401963957019676135120989832674553953295228245290103656248391733083551606539332613759094198500031890125374666723995996007529700863209043100710259751867575226512086673880748116362603463765307141507396419982844113346005496903779157229186149478273102010714933954604683147883134014267703130902336494906285220395614734546503284525908446237362938803659924940323530152883563306200616061802973111766476622637228620372723161643046289248736982629323103136085448950639881950100927015602046314097767027677146930438725824889288623346837660348386199507145974836991920899556536821603298851963357563255627043249577037333400536162817002696925713925364971921882355643392363899241737981443219406547677673828010877075104665314954662270441065441951052328800115820003431918832279176748626745531045361811208407588812483166490573465446043775253017920601844501727871682802941136929481073163755995570358374419834125530428222802127698470971229708136256557753584842960831074578403589376816175213472358118331740934747938378066175591954092712498476062623485676279895310368634490245384946851028273325682156146366314580465622730761505350591475313602905799172414318857741638448738093532185156281913318510375625701779818217406254457099283861768308010577814384595149763267864128610064161393165137260551039790299016769715212134668426773058127465329723820127387447554687920973815791378011819811542254478148884911503985785835872973417150101857970535715268863657800778275448644943915891514729484435779917630987692446245731886068245833917853825589275049060115163402323513845576491864847528679647917997816618957784768724721978867668590811660420887813965321385578834233194773314874172309272432843109103053313169947285371813405595812569576878534827479385732534910154658197036785453169677224897300837232010745905265375010693987327025440288988464721967179071645822636148392170937600535781901843674917665865021479045606700226895339547708038290357825687014544629773430415403404920787484830402536503749457444126407086822507405195087072901399368595318978117310591677599729203482652523790973550751194991019108236313115304429376298844486402586537395615125282046439232585282095107166451871528965231224707167972973427713526605399913898075197593358018435278442930715345167233661905359818422168028176718969354644856739154838605471949869770743059646411509322428710802105802933392935824252353947618375990457159667634338712356216092441532708616162318845822467249431820865493254957123342447595594625554412933098730130378449728263952799434176037647316860823325795239558060755244799372474457762791825359374501174097918716878956773021320853736987184599788566465581189689783675035652032838023768789044740004357220735237009766258741186714462941177068916556754814000638239296294478011928763957709584337537349554074164797563483410374164655339732135953289231970975937752317918776802662606686391141411966445040597045202156779673404815108166790061482435069558704680378934501231679451515914510992121161611047497714056510330318585249005822151434256883340631413674860840802850192884988895305313449672278430726720947073325976296523772519499976540497893600202905589118900898224319693918796810168512507129492632421993597681745220094312454812293583671187529257003195054176901100732444588669783508015734671831718339237116822283426926955803675650091104788588534084772140622492213865882893798311332330500537744895373320184122254442036366422674795459262563477145078665556324032048841686168873061985027137870930287649352588133336115565078150166309120431536722508942939099582965487687820756819661629458920811290747830018206438517499822632748442200201782526929075948674105189098508509361223314740876692690700026963553126581961714462417152059973306917664364160726597867293843130702107833397215857825713992136594895206533125344458960733234406005259055515259688599614189627393804040683574335316912122904793576618654902558991367004971705182478987349414768127404897308945215228492660027563501878171322589950751235174177502118302339063247604699090786801452228690204833383284987694583949565412180079032710920091144338752903292589121018760806751224580819989032136613741310048836871052596748765216211400784188435123109367096764848200151448358510117263497051456951493410250760349983403064349772173898173447325255484180056370131203878120922434219230231030405389406937857647011812170822530698990024723425201673799379582058815569716530388769142001854036404784664113226801270861001507743391934658693892992603771452383256320798662757582275276955021726851356354268610776401582581390546479969643541305695139287667784833662090767444241990832640817040392810741273052650779409201845092756920366259585022150290388077956165960443405830553453225502801513068051042038606864987338225358355668683453377704247213818268830232047434485260103182116362064387261013043979132264716897510154974785360146222749158633895266354408023970568779679115963010868402040363395751306563102104706660297554273121375135404783640440277948734444384741358270231051880313152106499291465550948534562551019882057117917267158731033041609077681452178419187139284899282812757123941639773976261982190164893479408717139580355958697308564975535578936538748563102971820331753556617352389125353365227226305062538417530719682104193284210126467596359365257140035075144471968271646523026849507255196808987993195106883403839923657673288029636171671832902479506331587486031577476645832151898209527442803539790850674302125575821166522208935815661983527346834661310733289786981369232385557450287298916740279783032521303422950669446760197654516560345405559815187024486681252451021104439922940635871752243204465382211453677829320788020745711676102273623625891468447860290156597117934732516770838475204003905011165368482023733456487470888789811673353068602861782587601766966053232569607657050753504522234382610897920534821331892819216091281634363957271996823991205485555065117349586582968818287061679598146307748514456995794570891452327110114602349268603977602219806475672581235643145492698049392320740904082535537719392619373157957832139960337790042450813917603823978257841690447948265884803073388877720078250581959365428179641746474965756099663851690303734851897701478843515531874134668220448568251278631215692154900597928935453151703052366937985999245213306823510820145806933392986464262137096435116683591955293688271941142088852584787728137917983137613776980119127722165474470780761667745081990906788334605312085396322982987491989791028486901304332194811409439882848134286898382692163748203469881304085448108956899085441313883800778447658280367788021640607316040653933969172525116201910634376679287819092387261894287545368538054465556499112339068317257958456790600092567858738183207101341289053306335073776290776615130655183220362712183055652790569673496041981531748297741807551341939631322849869607861618770042569285932424975749701349965091529929081907568901150753064792644253812702714827209962160785482505088681593307034361816149236096439022644902561369211217941089853831775128896634967559278334274097118447928055579929254119697296380877007606954103305459014226013641424384206146880575721486396461069946405261850301988279177635843270113490473678624800571434677300977574145390850693374784662194970565734004879573277269039973401821587256922688988142715741869423105971383007017898086308450727358836679734848870033926742880281191247209617573875508089765185630940593543741258892176691125169204902968768507457802650818797916993850368214457598707511482065175009693077715246370742810910670028134619426653383539300117977119925000617452361891676629417682176912092832207395988611306974501613988995078555389151244895546283787838446339839842345276841565815702542170107263086016885266868883141605688908052209318481506883467932065446086791632710333944360970225880220527768147377434797972808581562213015954888156900335749629137933806892088048786029274075933034194115509860033659737298014731934867543643169500318276256561070476753129257015629554295523554069321901398531384859544997373397600223436900449854197773066790158601633089610811415547758517328960792255560567817616810587430979913760800474047172140500805758567792997694011317903088107565162111453335452978076373259084868874191900238035651798771759745060444694203766241622659802679429103811137454061325816702167294456839257622994871124869670461912117331111477309622308221594893393034162594433936445994855917403222852373744869468304099935130006331590538411970150305154920090252809950612214151894743492654828750020852517252236632313128063293869499579264882842848027915562688246299470909636592398200858222382694384374292633996315706432144937991036980276331740422322011722541386444931905364561198982044745378625611415975663702156570038569295013519071544574145227072776458078309575758069462821601797059539171405652241523956911148366743253540400251491244978503566348366833495315420028850027601753821457907255644973013032443344664280451243719211199054031867057126043439753557301037659760260937870155972408514561393783601181797943779461611214397933528420126436494016324389194339742997263215726381854917583651349872166748576305778996734286353352009587939308251481098041906090941591448186233079637281227236205511507424367450672129294434129125639294530642998112022458479614115930204585757287798241504609630721807936884876888403373143469610788000936133428250962059792870697414755127202568323164448003240993244179605009619856384562688687522356722854477764970961315893669322149918539434395738680167534061903657936907566720706377674450701985233468992476909158713293212373321407841284347579936060805309261428163730082326745272027844960255608344273601698533152206130693683560814330034818461913588337140564321407815283856851714557011272477716125661167540187486067766413204359143585539202277799457663804068739868426302913705995901665892505084420852058279252882815103916824776167416077829888908294294384470440189365298365963303261069137987074082211758421187541752015713919874246599033515020407558091738384756502635978672579531573622808910051846028724653496590881804933207880124754616052252216247744561157296992497215562793668719536398258389243890449618017548680039997274988470459918234058866687794733533298881066911203857229974301893683885376564250439256247085601261914817023002620599286821259410039100239585124875041351026639924468032590501831811079843513324220033911447484729477964106872023854594466232133570548322186413254717942375800146551880658337082076149609590555329382246178000613685297715060274011507075656423563265209074282567747419911207363307254101519556410629984267754673131712854929000750987263835302980351855004956371736901217923963566386175704752673850526681826520752994251180729372616751261227999920153517206921334502307064142846661628553944900729284087335336230312958349782296387003099487846352701115026123020437739099270176341500868464058351866002599191039172677479117828570378840923943548455198971342692081932432475075540615906906860533257877366187609337493717738709215472706797560723969939446562307154494716660286002034351526250449738433033012125879415876177612047384706313756591226257039418832767163475031207254610980940650962311098315038320996459020520863541899511660973876998491086756447627299847325965454007904152698736255139028788679529875693491676981591930931349615363574552520964571443664826182346267060769867273298194950921687047935795948022063847970939756852489076589154948437557077655003280027931283801395683922284220607451762030605915347284810679300501821689036381294424551423344740663440163563426565714036190977227438813988990933770278213181125361446465116601655750770741877680450948003207200218579923368892153861300546668981380525295467208026534729988249350407983473211636152178402249930024817596176465432200379173702915790792149337247423460859988525836832009193409729981458117140063721587949873519464407698516705147460001486955556046426879874271947726535644989401099723732773046916186817921487522306680491289530208342869493075625808817182191340237723508657356674962855157108957692767903302127207260608188589262548660684695883741684419635112244820861582936568747572543122007889362108883059082408385424934640581628861344475260742038762051780297148678412111560844460181345830252663011063744650016363800253348611986894201601346898021708069152433721767726211049714468744311696133430780289949106154724528035793274208684932308620699351637257162689200469357186141073655447746871515217550621229181334184050270270916239998369968953312285177130647050911536603286815987513942265320227814766139227833720079175676989573099803355734972923112686857584644950128578167608767647244380255173522985526798080222225284511422958640836475096081571673340673793459998730577457159062570445333793390700226780698325216116670133826530416055757947932410178598664120393576223386780484348454093817709629121714534966013940958868816314542188693306877345252828001485161633923181509604775455273996046854667949054080098956575634682216037518924243423279406608272654033683462715701846104487210449297126078532863697115911791217805804234074715554034399000805969010988549142134020422944073305573988627257012234780510265408380683922047554848134539238905473750292275006106806802291446972562269530169513305703629575342068859240504325033675853860894928455372801957505471003874908479885849891136330624641652128871997626245303264619066486270756564702270119444640228482257843858091712534759204760829538355118170039949230526952464238287959890728760765765724109793400150381503590786056481393603259663441466709364466613449757968527076157870997480278879409803071755737251631990553815615091619292423429367430017621679120467762183084403269706576663922948989656685032514506567845397715881755977415203921874990450849020490348307256521919148910805760527965531014602304758147101174091443228395514440889645192581281270312076282986339487324974479980544755254139559515868960702163942383928279352939868126617824176316756211506038678745043989816084657797425402199446328747761890741856504684457265044200156552267263952743390982602582912856865587176393379472849997252112578146019352511396428800348131926562917334483898645054923463368912834902291999015129540164442050010946033395137846631174531429373943575727874467669255953465117284643153151494517919602762536600258378855232750628865036848793138431220733765267169342197383283834026922010154039953226493134554724411677652119840787270591359596456964536825764112935153507149082844991750630123690184781246121334280214389549675043121252313944978393179897238270947597942501208933028728553463800238917257815139953035897188977231340850816097831065810139760209590998136809198383332193905396196418872091047576076505227542040865544169115473213885687016648250953347078624699399302568628227774257807951670864994616618528283450398282103453403789398470186074618145046330650980034172679806291720379541063535500943598005123860245396450128345508782953497465167188443418876829725484174882974681891240643668431996324519154270107461260692275709225167375409323226749566991749688016892568611417736309820783840128013306509763770402715091922055613363155999116646136639208071548130823882033153380007391024996112586077375398309381462119961147321729962171564551615187879144182809971581123651812345377295538190062289830725655290527189564488999634453257831228125848235798426602340051754664947058874478273657340955054370547913518956775671858335855897750380206509862826200857012913346429719872743579550622818568580778531008834182857824564721182284275891030762872817173665863039136465424332204058868705454647349214067923634950027678107407540132027784332402231698305220065979884601900432434195811710878516086131868430634107622692966316106126461181032038552383632497003413066932642576626313816247724981706476646585455565466795492091629383806763130452820183154317511821320609261127501705018256938809170464950635729568685416796895545191879587060521226765214844567112371505923269081216954281510300910794861498786853974797259890582901064177330109915445813958753901778656767821895050929078535874357079964357876981786706058203680112759522716983678139548819746782517074014804027252472665412099239797735743140124144734433256361393037824177764283703233760027356595214437723618522679050483351701954696015576268197762937107980443549020923985702169930163717937648742088200680699932625173887241168758387127562957384618004640129987680956917160368112847144069382169144040375407441419776442385315347229457364675665526265231270467393900252094142263329665906022822726579876031505901486067294551510468301925074467152594816917443747916705711912825853957458646422028251446445764393707361582510057462594218091445942515330456820575747733562043680337072848231702677892983268752633990671636449427669932206704279820616745534652095527613237488081304147870044194200165078171131747334993040817225983328867930332793983569152240967872301103827013880076437411385566032177751660940366530476564044054963559363707778420236500358354625578647035292945310759447751214880596321810614630647777857127909194545847626448765474480320796740306885084987669057440565283149865774149635669164774728657242187804801321397953653441156886666004820275308246054974848466553417224705174116402122049192302898308226256358419746759219448837270228674597594712314034098447875117381190721615843957191463669459027292380485592146250232207599577459456949690848031433540359269943245330561254368046276562732015884104510284683095783621422331473375167303294646398422948030268281695159990289503826129419342092070743974674304935720790114065288111395026597315152437723216873901341556864847553491827867091206929051247764673529566973655684850269272680264729545367908175508875762986621727929167863207813522536536506151320918718934013144450095752763417406937455866322899152595562637994041916172460384307965378753787413892536945495928007254004052220371129789688401026821299139251008683100343800352409381753972158663436415324449092457401900702066984376665825606288364094471808215898494845894791600570696898921923912648088448189316542957122003046067588512292859687951543968137844680886368975718498684889171791079479567593964892893059435183703581005605964803650716587632633430584157400011395566140726451251328623743556337744284733502071875706569200711403686054186028783671912092589125178485315496204644612594413370363247577406655927229289850790997040644701199309585209088852032574910209163313677953928958384911015821997479778407733024687732410140657628724454557266779500132609388145729405355537757438318761071609650339359692601274542263400542272118942306459196914802221753384776549128715633546719109005398134772061755320152518643133260656375330075346727814179693200934177854578563169184312720496323937941125275789253903493713782558166775602013582249461164411565676667769456311455462891320194945827532208788722819009460119647573481463553271992859986752442982641540674757202342039879936873409724371648117864123487945412338101505386937289809309111017655459793353638338061415632570151457526392836855945604242491678310469893404970006515319208082973546369090300182637153824149106376635188204573882532029167542903817085018098732136292396390447080854676677035693894476767479752844257507397116918718863498892253147727393644962757783974917189207739149886216474934139246234000677929978704018703534176222798881606773470593799600362713417552820794041783425741248358994157639060714669531359603763972944004667104556066194446490136950009515127515142090085993286070660057315960243916085020740482883088077476697613225479846355707983941119974271231259306294448292958437885271892289784714555356724120725787671931383814173426774152868639829711008806111474528694554659301654647396096033674279216818501931441872007127130009947953568611354970731534375551939693422823459279594562121598972840755124444263906077657264988123938966985775802101092903258386118236985748932056414196135978491386245108730042163160798336303023457250140949271765203737765630901205110519259931745732807192687804549213172236376904259261245395431665719903627430855392580155350103506797237138492084618850445186856396277722570065003022354374731984800126640135307696672780967115823081371012992942915111309305089333166645288104544771849944629016048015712393271451114722215460898295873652012749380795014962486902187256706145299227370783976030394883855526587871774194880793286404988392810028643692231842473061505688216786651871798976503780784012667456332662473673495570209925372790452222074393330220597114011157457004275886268595487322344786664870166227743091310118744153599286367379088046850501322924399118697916348995042485330872853257174233335353720279507900497512151908816827456597934831743314019517701438303775997341749345838393621990154536713882436032571326106615403622570129910044798661965717319600185766344379178653497611751991240225194957895795668689955384502389869264823286619808404255377986820757949317850500302143598957567415041660141346237892777366388573812933974469952901557403625229764699443111091295854074691587880649959350569646716675222304270497642009261538176287947872281757291607927156237147516802375566967295638957758254883676550401375168068715168539148110199800877710519631683546298952085592144787610262277466528199530221731374725580326728887764468495150194573727286181507168462061703908967606275121128683605626796314861376874454162772902017489079962221676818277948860016609925851656893729947156095190281904325714173047331314625429462784270263217523844703604164053421217624444407573908502686820756433268447564598900637728896880634628093910129666175508274323559222418891573476461082240363812728123230515954162271584269058198571727660132354872236682903362103364103712347916306054654910224819293607691801945086861053754996921237769740940299915929304657792319855494846289456180914524739377571917801360280009163609196026911904974178699327981128603190151948591665995239681316243905189188576111608898254662027247797395637877726282450706207613969774054313367741267875446489490921682032226808021820536690988454147333257553125532046123253404399305799488661730886283907884127626479641870113391901281916918446221733475208932474067731162402447624267498263525231175776979690517297283359176566089757875363259953412989340850269573461895769854123061399327954372834684101456039028692605963652929444308293462655426106305231927914657142322448138927387340958757547713623079281452812286692821356706357675816910285468574414886144282031994460476626628084309268885239711239660927439938020623962818412121046834159447018395411448626757463602653134599217487068137131633227172211310851296810878330899566750470057007785563622811323651688784786220634470836292424986399468232504402142862869222932260708155812976761919778048797506383324709249060245916810196177170307068241931029040858010109571567597256183636724868062952989142919148587617850667018443610706361872858220600648403854633232428841097371865499955373786126443932357442266047681554682295573836340846923075266286923923430326993741451049834852296323244618675879650785797151943557815837229131107230078680155137912811446759192154817798953484756596091602463925292130726539453780429961379049631835821352593700170882709512005271593235291196505440811489056848128188779279497327402220116980554630233217391628618218015307653404756322036018437111251605591117890272753575692541140094038635417813052290667382632925912069339329061783144839693013519850049192157007263928151500347564205761614759733636778360291511073245889867734387184407449658299339047697973211507591823737158571621348713008642372672612488310813639170960558904495326334759346554463984580025328976323178796868810402251790747977695759493471659230200513947979720504225056510633762608112832115546606042848804772583639911414024660366222752830939065193359108078841049889603233041616953252952859010525448121293050871563204525040996449390319032767152172500236753293605536578832588241782679175072869619536633459057505946240938535441891493381009429083675587430577470738557780239796007775134620863640196067893440206535684952856145815082954319577282821304257835547162318548033153563716542403344166580737455242088202327451472829899517550782996969034218107148376175245923165882250764072084629877874392116660414438494429177585167306338993219276198649515838159839578136323843903783649022555070431906730407641748689428514692722551307962374749814212051963461338308944991719583038325537310601317422139826646628090647842719392637988534339596893382288648524372313283427254882065774153650921188296413904293961697841321756730869140953685306729930709948197923230805847508201760963738055544896513331356539328050334011993253569379601857517771841809140265697771196017955076092561917163986489710156554789727286812002778618464908861717732955771096850380851316978304941967881136536357954253776038854822078300438780145863882397177616266817768436057506147377169941682967000205067171536463166101794604262109367131042188608535985517575123113841107183739725884519482793042535289023620756463608018940604383095744566830214094375540283408701462517117310011348295257043153718822004946067922726565688001497275587989542284458031223457289077323431193355291864086512446624367150412067581905207701793946278216278386871336668902879491199542696687492068559800727467594852532368748547426217536562941891460035366321321970612396578128356004264526522338660330224967603680154866760671414446133407153365798171089326939817392923675849632683252931560775518009129433594305642632135658656302532817000247130662533135082173647150886399206376649396305012251116176902100857728101898797170924125978767479049849097314191689237591767275214325544286589741180340598838135955936790280885241098187957286942908995061816155850781774737109959727714810770783944825115758321547133519009797709294246432544151846244239283224288682561704612006368161612975685906860725954853091883430298193169267215646398309609617334641330757437305324695898490323158919484134721312993459455613034801629849620918455468302925527880613802463319101504185416142479249179728612627931690475527087233782936338075756696482948005483986364822104610093021870715860325315958500613147114380922372855550198718764547127201862233514345692578640120894585176452795928837889931048579748099102381372400486718674898202756818535420839800721316745782230449247453132194579144334816870208760002543505612864368966958059324422729748736678253419332444081980954226113614279380158117597658060995091145920627046447692135803718437927514910864310472971493904698488530165309049889249762201144381663972210660638090216398319219441228358980801966576580501411352431614101605615635065089596347957083793952608244146335894002408985718214249371281267932675955286552861852603436809847704830900207488084909071849036731502261316022875675889296385303997764579769754513369267479742719668498572420304317089946032951432586663228294111036656664116485131919193363054682717315879656310853202087987883286223412156610411548175262484642508660138189633153917517391696540063688295806496183414757621699451153334144780877808353393665412798268675383625197936881138063287969223745774727425392119824126573073916241178413883021516007350716738492960645323926516126507914287553631140287718347910715841553603807148355409454604733550100787890803717673081216280513253491152082930626652786545264695472210248076573230988074847210260830442042227343068255365842098219657329065602066532552225453680686827455700119506518649012120432513289768476526133028288203039627558276482014647762364176990524581501130938889670238717925556965061870478686022934191716372596983480119818025629427184401812463813906622996047374036917813118411545363685829525753476567761482735605486688460773356064755044844490310468416048590661326325274921781761806203927313729570136396861927263128961875734325947263630786586932793326155182384676801154021130120207417637947060901645855165253706085960629689262344324654295928046527375726855326146451330443517934722865291684401965134005955363870212624430533382042521246381668584242189988886799504234635754102682714411430777839795383908245199638698201707758644264603910617638141875775783725177622751835393259366866070483533724381853618109915397293100687886993735231218395885658184480233633608167942308121454317479883675596119587491000764981375854831800085069012107529798576208498054441069605197915094444700725187908234749991474533513968366357739622738024056536512729573881665143539822339694999162063034335832352645238406736823762265017701425881503331028759434905053428714863483806571573576588465982815273129217881500836138587602544263909186963266648049444625917528952456374772560767213690072269421489692858172518836872151066148088661686360905101363728162707819651298807464876110001527339155724413228814025232786479163682577257306133761845067922404216901355454190315777744245590466995716655867466709977067315187140058006626064383880641388161863754252383628556917231908980955727067494329911589426631900523577245169572208939006962359857609050944730354067242042463032683696396102080801157652145935775239212977976353454190599814357982284221378645564058753912278687902597939770698536174007646706964284176522727622761050069285117894209723645687601559683781798203593076759582374644294154557837199005374174625567351525457016587852680445173250478726721046380832626201620488857163241344484600183497969667756683068543464347690739421743277342644089607369514878373231804858171597585116188641288282780627664254638654626439976557864569095338256980144414289089453123267998707296036063062623447452808302524609064307613339469667281594581457061951576417617664731547356115206688924531444431571055986159770458082458301327583901229149247364903884953105746157027308818600317993748379254062731305842101979831137006170828676081576056265080157347992047939558816924350690520120664166843906038469081942338005783310360511723574004737010831554121645420967648917189874636654700454842885784714632839181199038281224297162634696601925750522669449392033955227315441500775696968632097344198819607905123719264363422397872150473506086850114804844354377297520232302478495762836802655358117183135536987617582188714939028624871118811370149757670173669799353326103696621986041032597022927179287055157401476318431536359991906762452618821153655470898578561191462456987245272286087647243214905755990227217537671250958575456525348378346796349324626064679884823311572255837706317639099440369508205757874943689493176287556552917095772659579734620660862991317044739313065838613164823074505282546103055333615349597808562972190859586895757922776299920417661173276840209297799836166078223971519062724437787409785639291272425642573796894415213882735418584578832896795202905884541316594782195820825816032213634508557075086148226326433656880465200062935617254610547124638088729226268026703029139067439724439452456805472023118771220315740906277752833377966425054943744275313496118475261336660408359599015343013275368265488951591573797064882287044019795125076289600604959935724477010423037182626799806174547666367460070861957959326001095597739681842752493366061046603860091947273984334449419778464474462889889132918571854154692206253023142795725697144036232740795969433101527617064931333717241305084135799397495861038761948272632658886388989643972038577335005779456437441685404916710596873231096090223960058426968794036194112911189489711035882477332404327790048718028376966663183294911334674148289178346156270611349011109075795538866358247465431639665964614167226287315759356786268515456775420547336005202096220137946673929522863400739176674907504497881190971245413657955152579214467657241968580321950397036633122492004010035206309089760913738148760449219188866794271320796886349577367169774170644677406178182615526830862927641436727712884527458051514452154611486720705634054745227545528650774551817830676364069469191824454034165289820790402339384331799465359258738345795185153239403132088546856777128479217984708030545891834617474473371672484390471895477827587617674517861756307339791755855716894923900427100117574403406327076959366783261316564431592917869788665596932640623387011228635571321954264678935321679127624982829356969411047901694852954532471187929154169362693934704530899497446701702303400301019032080386637572497888184801237594728434347651333341352405891328556925471957107461420347846771236694642110077556146636323992498209082668003807248317187728264945041179932089100748559260645029942031907982257919623408852840471208323502166864533057628844334569374619623310234280242698934397197584377091260539150675233395363180498193348501894788658148086173516503460780187352455248456363247838802235263409244732636008459362258384806089654824073713070725655803410025328446145297372829027046220302717314354548820223843593930123171841948947956466524970400048536924370792081762970248897075797403592544639363521052829249768438255591009644837879139284992281272912367752975161794062686582062109677269558653108066933684050656272813765526221003320730573794864282112992464226050610079059296064043653272804371642592931262918205273348177935304675561812508006409690997969282003986497076933234195018449268763755747703522694756520421055792229703019378128581280808101100957890358538602333610939473654056341474672850402115852771038944396138459982182664234316360960347279403802520118675140287557090771263589800567790447500905522337291215588714930140874790569131685893678893072854729800850299096489826230024454781653696102787231466995061821779170422431939250465965821247696918505817948932585305154040829490997133914626475395569549413466756814295379096376194990314158778439082371095457919048185910550226729463675548099384589811929268349047894239854752155063408953441087803330282870959268617032334464177206723150316750658127733938963492502012518486390472814985459994998210373183134100918427943822582329526697994739479451713556152181693700092016195758746796829884908335637972374188024314122339625446324105279974445887984110475300970608160157938381314905119644337392693032085912450082409358065544474021216272418292642702626229664313039424868415585398482541626431927501591125713020781844812902549260228187756871440012977440630617813367583481116500551981791689060344999084786948685761745651341170078980045441710824552464220673499364309179472766201422302869103097979278947640637504179317127923950829064984892382966252525873651794366758891760334008780452443080025692285348025098499786039347724175496803972374241768930654674859934242208277890412303061419961995911195038531870284699969181067210980148075396169622841676278642809469474865142252396551516066357823279730976639818857658979316505790209813612575367273152726100437286325229419777915333724265048401827881811986392618967972568295300505554938479176668537608771502069557176838050730519035935271491937583796045382622573141628326394258678983264919793474638623285200303387462863303375886847893208165009178947582467380040325791871725733380639913624257698173140948321849470047354474194859071809566540130656573539249991417293923917674111349397250163946625593750342359226421966588505756795237590122601533955452141901635943444182673748689600293195147958434836516404364909587287905927924476178076328673635764193269905288485849104597454975954738598597284612402112621413405247333484114098161457063448156797086336947131277224248514715341112512612901982710800432329739496843064023269544197555860696338282516001775941070393967755177564122323848550896256746408261061935741595554148784598237692193520093132476405928121822210229250992587443952025470460637084776146787318898008030758920375882899639188618808715102070541631234197111747500631528361958073038281377490051578231112723521034388635740816342080218959081899718922905425746382652342736972511330219160102830718475288702774706880630499999572206925800597743317003332978246439311373957769341093664164373297939033329280824599999319696309897368436019910741424920202584334784944606836084663701302901989889896641754378948908644210515447753841868092553225118049498082247016089667562667338124320428166052999075736072043255324971449764848598445350678059343683532124674988141901337185990979332696242026602448341847367286759920499631159924672463814406109147434546908509543870452335288932745616208214803217243342071740983429237824779590136781533939460892524789066633409165039056198743931752351707157081172428009307063635279004396986775152292621078915970004417595310170017618371907118648044223721041141041204389099513469391424651939087311917480347874403902997914454770736268593944424919900494626168074921380290228599936476321151896070498509314550743565551029257922065258714892021433922753790165985462478842558897328421273316164357300803645135202766113052890525510949743098658680787195175693556617980042767618313394699220990097677904312242442312390791279473287470516884512959237414319889592874099239634115629790380517016540878141490659176391600341191681331938160612529482322850696745185737565527825718065030049632473196172533100272492869909390648616663469992171853293440162530676919792195058030321138675512906151991464381094934660269229227865012216654382680202817893758679086833217793968303638711144682480909301404291178418950662285863636462025285334091441283319480748948806566970830771701045874479836576565254603352084489010099141515200546783298460291568035956900704216901547262710674983304669131929645915422427436158166982977749297296379857866576344439340230614634383246307453693547752491796197646334176050462668959358748851709986662651842320070041931988352634429583345553934454262940787084277814927439745813037837339539077120897508352111350186856060181830011830480225205513594070545615535150741705211092311524188229422223393988503375545432082934674060839448473168618033657767843228079753815089510288136000640413135190745254736717975897843775572699441097899246755735887420099010431238626068229748976675163122486160256295932367573581618689505180793525148506263942284822479059589523756443069190986546406793430060572852091577488066874542295418652990309092519265502071444131900096835045843241936462882502388526831970760828746767115466745072720782214460411571856671966562235458227875947400788978518279469081244351046566500656810363827482047652080072749845014433537353231506903144008833067928899977117741252467302368304387021023133526711508916504041523018034052082097089565957324071428126080758996900468964686203146828627605982226219688884437256914461130798290442946334272699368306408821777043206919129711895275796918604386497044139073663454797096655601576027709764806536689182046284610879636163961518651297058218063575768611200956773946919249389530745561227425731956563246185014694951655385659654526763019775638805955095312660630493085234582664946380270793847939886324466599159188623969167171146791098256992204306672715377432871830613748245604682030010835463925273023471791590182797996189074146704884635162420208397271205508355497568368930605787593792891395650763901671805315743335676460373128816031556862617693052810444935607594559670581212371349353491861097352653647516898953344339864591658344425084406299003709455711821272566984714937149501178968743935923144525577313449994480220809173633319587835200163257715205994854385429801222973785922292396537012440141648696150044542702520025081780407471962241693377070067701470798021444946231744204579360073961535934440370813034730958956953015879076871895316469038865389431864443889092862396837036955219690324528965359826968984172364586404592179183048151291317304104069058122212445349547684414869638241694047264704660155844491669994589513652338303967849131831351267054954778165776237145374158176929768153190695332343844728259886085405463837943455239159812587133991649881534217385028797439943231988076937119581360510938763435063902827152684857525567445028198886407092404947422879308434409473857233521995274553039266792620003742832563749953610150932607395342350962637779792738123032935106293453477158815637996023007351655842694918857150980910992033467772615130138058665977426971870146918469781936759229098182194381903558472973885469914979747036159670129844595763467738658367965916747282092027643949006616805696265029207789373708031954913609391020935057577815033339601019509178145462448074786947738789822123892640459542884261110175650367215393716885542466196067250337477768997107318546885360981054838811472037789456726958620246428642657473484545226659314863143832978522764963960845598672787117901434129976872903415545081641921791200612828361026060382402559565309292303969390526426060131500148031907333034701384046043262918874048005512381174104021212121454763205701544956185736831149498736280555705964306220307733816903436920488782360380194353285474250522768647410600006026383097040272787138719682306037221833116428857317064790902508700516196969511017259369218274617011310790390677511008361123368251302447107093401840969319913875665408996483245374745261560693819384434266519672578786711900134592035360445812614550051161032709708262671133847803569983098402685769346111870147132860343606129109497517687266516727548065498168897127854428134033640048742524282935071255187568216474901505277192059105287226600403166271057345741457379036452055638854284448632046734688023629859563381078535883096510305784071606848606824425466003026938786231758305153432185435775863464632430114871617901312200113728383974673629823368522330004130730254404714456727014669156931667299448699858704500451850835184867032660620368969008391358179958842401400472838389948771756530584215663841283179088223270168804479918061447327288971569865384917406834852120627976482935125237005839375967171810998658546915475401922182224121211318582308414521603403324334225712296067249578760564213147688939244963789461059055104678012675468065992817067803934711924056027349155353839937162561393078888040817228704320993088999413955292206734581707005188939494123001472188454087068110174589035475925263282499661954000443909843660267000480539452812926607054055657431006044415832369164494605182795046779373317461560685444345706005939243181214127842404947442667001749168722207773992310895305722350309165122064285828436317263703148790149526843201816595047467472896035520179119824940562887045596578587490089837012306181673511836618910946851786195915407766327476738363587598019947590728062600949568174001851518304341817661727011728382397816057215768006460671543968459671430585095845703336283551183786495059925661961665965249353991262570003448656034386277706371524924573439300501107680384595198527629597785460375768091998324359708816947287652167898854562894744462907372519932697177120165061395662361343046255946892179649282937796496712713519612134300708800521150024763095803938320198434568991332844947901619152087099354513408770440840956619490046089705769998267889690695683066597951591803996788266122150318813531038726089952481074177219554539517055723087563078160981228700399030176139011091821933852385901516969298263747211413163602596222118769485768001896078848278707661072386471510370753391715748187833978730090125237542079348894357915151203983197992078484431600409885813391347174546146271304182244072361717372296824183629006883012292054054848026043588971482485715729099014734865396802519821590010464747372496952894985523808225781512577393659066619524955748098689539295323766918400544732559916539506057325284253011603605022329854590174823186297334039366397469391226393405007924726700185823454042156570423799718429584749279097402765728591294275792491426488864252201411864464117349752507279030096746314382229020618459481346378918768273280347972098036370098280740381434182607252131555964839595212066310405349658958873270315534498720140864263551742739673812134658853409414558830032798275927777721893130218222559252206002417473371296566453746083696574338570589686618081070266427336913858853631448262519208459910016415036505619105750902816180109557570170851075603110041843328039843676003601606181670860706613822974854193216215609475471950276421105437147488220205225583493035610028703365501169697997174023884493054577745929730562684012720945846788619213093491283336623362548505700758868062535536143483842405408054564528593637174254109849812704010366398483152306476758627827559910118957419894229536673041435111192903879947173046301107216358804262390406686412292854994734171700628229462995226338925085394285174019033077247585941582350698701077764150679488250059322889373153716277485792026785944683920483014497417976372632207261767718556020858871861614891665952663117262115809591972493645797433418270903733881453804592254017712093483768140860251077631507161626840327926026207678812872238677279450574531040217738717194820288383248896607700146756694437318413321069269891565878808170233437273138293146848466365065369077344360891122381908663800002793032188400473379358473336043744079894533100496320450128628534801308027679547350200604920746203631404137055928256649995601619824381281947014752991550680233207781985645818631379827170710690024617325232466061260927693205207177932045126569188780563894745841573033260749531902221797698574738273843921320551997314110063962127463773478846692282349764473368484600939055206428544143318220154394651246772833138426140351610779775768710267890116534662462944040186460842588858035096607163952111420822252806834189511189061766609521814000069166704451699553069587007906076953433711777366544256946824002696714551097197484193167436938796023136131776633610848123098795623633640309180601604943169357533945074589493720277252628916249902093141080702140946475636147433829222500074488009222580111071646235805042456054683351567059615202067145709555013276026997453412738985013501820639467527807047469646847596688175975961961981227308497166557482214589948380634166771754227736414466748166697322514172764771226098451715543778218853009621350327894270459462640304498279455853759451630066033975073974542233886309469659993673592946336550781339151237559217939796439041232718861505300446631488785383761727224585488514511717569663762273583010922544561373807851050497521929713494514775159642626416199298194098682985827361605930503634540522609758486018359804839518472923053364409704225628314102320752274564775397385947991914378440838808392105136601782639463271168948470623788516709160654183910527886219804341776836014719849795906662300036682350741039661062028936738724809687742826689996636304740404174314493617343238394611853999327643993595997140538294892597831333133908948953328220179725462006040726536884200140437645797654028613379420423416682123431457777391900398260373540023437900761453950609478872980384304311078724406676693100199076738522730621861161318734649915661646461657000844283822961743602383258569477289648006747865119902495426323574121533287037084767039832210357975207177559088850272920969624610735629843234193922059332141082154882422160402793730371334342676237930274336628487431897964412173918945160921783439630242028926541467023885671178170928923931689743696587502449801474472291862566644525079787544597909105203201023388420063528085359058039498907405594213659515632019276177635634226365868532834044245360131751860936310043552970933546112205572713556914488115770692931069461026167832621740305123364602814417420825335459504424926666237798755646215504681063643198900237527241747764407932795849361032813408213535230924520490663346546379699851293194561648585650808620219504422394984934599858416329967951894479690433042979404672375478869627818895981363164889491977318026056217290184223286990130020245232518158612132446606253216819587143387486073581152915925373975587241797857855971907308546180960511039300457945006848837979333184421557343297601891993173888994580216313426250865747520891772580968519583140324412716638976338338813401620607040655026648358048480606940471040198378994174330044876433246626295885902755739146470743912764198931799848034566308662066111479714937306431207218752069220187837094147413993518364026803628477939391912260048356764856234667573152702030484813724627399947027487572658838231763097869168126959863843749698060918605535701443830435981357739049417692461319234153842172123469356601233838413666380371504055097380042516608131220348863790130267495364787640616802668436830307840764241892157686952865645389458995940351639528639261268008407576220066631541005952758796191350094186499647201704707333695428329513489660942121995957940852131711207615187903302444302169698525248832043984869490303352814648309257432217666571488036526837933383315939987640228073299176659759377526365481100262364203286942750267270059594129879621017500485528672954066413656877091997520528703687945575778687212840409648151956384696971120469191129384780194947527833571384143779319853558692353020816277941916090400487923756228881227341568817128013211915217112469002144269547774091205882161665018109890738979889566093078887292392566336555716954661608691713215001776235147441575119918442703281830269152427697302295067770465360578850926888657581810093690838610752664151300446440029466660255543135947821853449773850884713051904894373568131210726876007072752347386381633170725312088389421387101973581125014240815667657253557007907275988001623905619154549608467264732603911226712548049334352485921216090378473511941009319378642993899928093008674994015321122584248968068082069071362590158919763804105582296421057078166161478256247390438433297785091868739126608340902022395057959146975899298147737107438899427778269552657390461797096096477301017926374651827662283198407590391773006765998675340470789424986900980776681337279301517471587730853235851359313707226165338025698706194613763349992061054634451633841303001429466082259230329317461791357896020564058272293788191461106698776560028622656266466072207518931998076394668020497493644400076909471731792756875895645943388457342783515498226818651648597418798150374478963000856011197049478011928079500486303819073108212063644796273799782875693462385310481928569455234960301157741064975496235944431043898662974688825135014478738169162143640531160049388546340752072615363391880255031951140652326802255401886081377169856509352465884014029130623803281765711096940989450820616438575783363120261152302945916737216054251709024943385316909561282908260494466796054233514207577133483808806844294173564136528312678592924703544486948204724291214068986073281720664747497184848219118673491866711186388611158297533805940911634491398839681073404340572917359883578652698262233350884384973141705604314586058279060053184280914658626761636833007079175610464101309556679800849374793649175479025795808479564433168933275986792179684342809342828990138100398054515404519613306758781832322977890039299569035325695621835522595651107103621755088453302580597222360788452252339727101074829553964560179904047411821810232009431389808852909548330441821765353982307726291368265353363101940046121099577263479547748159218404890508169903201308973990248338244146068537905304155604239669038118490447233387491583953203021159958638792041865435990988962350628372629349903817577582242046857850270512704161010279741229501687630903508884354622294479370252325882344636058403089885099332683343150397121883609019071895277831274955855228869887327606629204558488360160833417417563753832622133017482258376098548244353685192605236859743536210397944932360373021840830821993681781574132502756188627641638922193720929240707343122381069294702481619952508696606489498403173006914768876363889662505398121543957510678914510931051433518319956539993803154761863800226233605651626962012122572374583430526540438349900249484879599955552540394817506131737313534581463311325785156116814936542910266563377422558389194355674882748020252859069985168605841461163853480019703114206021402269478033439809746510612919064440736480843502996008346557698186825060259516750027285992357272854639501154289520585450216436408960664524351306445801357676395086599405513340228050970286192714555655504608889607723167025725506626339288672888302102352732090781843663922437751495405050843781955533378260420632155812240662539602625831822299395261273010735157988007509262644564224560573323553823117114323303630565898090817542939249491254388056875461534540590051006039677070398279223679433689599858533113691591875248477614833037181302729131051363647417066590076325950995137257549156675212871701191861054333566902254511001388323498753717435662403505320522661884877254433500319499823879183394027411085207175891980913466934118565663219040307022562952134075324568976700547091004097190257114797137141305620766389270225283939488072237877678881566422777425536062007811369806936988930438758652531173107578137563216370825489090521161780921432260984567076356259395380407125518434082273116151745246072355374130960174460964031182296584026420119141119024608316748494116330145027721344258237849760822843690127228387559774689610043905405956598914848468296705155459743805517284077285510800560026945010006377663009425640320980004928416724916020086243369640194510292555072258796826508992456429355603637250382090183736752767879753590351158977210995877247911430374818376116778302200389820867955252908721807172005243349663648533676345956005162805802844064809115189331055579534285989131711126210343334227143977277706978153261634536018550661333494720987080110043537738006020563882482400184510299360592175027282740415187683049415287336579114252677420304751982712555000442552163182021554971227311696902098988346331787262866874472331289859535905301365390623800530226793183495485737155511495772664238236423119974444682618205154801525471897224649305677024744933348451123033650540377961125723682637220556185529678246902412762381642174310792792767961462405033911409354850674445885048367655346175864885294773997282964611259102301901013312366024572172764767563299539402335907578166897527700379950628940396525030730323312930179739620635206821168346810084662627542730342319524323999958452805662403065141220419909882196330416703160351909638806301004259922804873579579267432200531045042981612977911006790874479614149820887394112433754124814488431237341472337791674229859686900532972769445339282311320165477516629669393901430482638451065977030532039279826874720344379947462070499426920157422094829148352950543764927695278193266818546582995781145979453203530564186776523898691126169202438117836621760525708626284649833945077024614813835873538138567251104869327798864237534309772838288407878713397542519782856860221047875294699995842328381478195883517981587971788396369500861050006217962717737495782478681704102558753806829650005126436985436869211227484950445664281975548901135103148438998020801073035793579605246212135797736604933018522692743141176796502834877298423670495292790479009103188333141837984582995123105879840197472565295936391328717452478461775629916429451464382601943622001863202485384228843819182761573257129695146862931636338140939372061508239124828072282408421105727460561044959446719840661122095362249905052484534541534453490304441220600618269098165519824001525762371283343111612088623073860082551900773575833798622796293753873836978796044034575848820446933833629187295470440506068265502331162082928162091144224657004589392680874724524066541431371268918598553310043379811895183942003561860301750894068817591416323265619644055011311401968885421834385785236505642614461746799852124180398418430658653182123509843407603886931647826472739897226202141293376912296797026273501262771779750671254326522378418570372873313106503232087295187691539483194133193086202211063655128138156066049485095844984076793081441644191215485783235460936020587238246094537035609775181390819468448435921995834659011194004260561806092166812139302740330000513645569137859965761541507205229832024696568140895964718351770814445845788045283529977924662930881059583349183679333075677898202381718619845115531985795935094031607151489758500800212756033832509562251879284712571221285698582595512552262636469323025497335250253095116959606552699266169061460786612797277416358241409586477658624539329105151739942387127509795616658707683310053345816538053352708422606733674284015390387011833764408402499071226704274886539575698473140856689850342422045123642155287498235305337692131053192521397464320674934271112901167611636286678581576973119983646923789318461273190836643029249193282144039048141751220854010516227789285870260321431934141449211317730319598074084582154027053725540226987688405656079618321692810886003236966033175559442479041820558908178017036261315009577825955670255531083374823296220854475226378293830427059281320534273994765985787134696679805199197415253051601427163564218718025211406923888803862407419318017861445918856985843860841826510360218080240787434526548101563098867887997149080007704681098434363341726477239048961823041011171489638369318167340435722427915424711281360600494015996706511087980743433239001481147334302358853144053905105147017939110626997902650496044603579514291331497179964758620389414231897056916072523756924808583621282357974894140059698604088258011327464829734556956720154406589182170393418366594068558205364974860756605245422707406506525356272725571174773723742734817172834582986557837332426223621592056610996950953215658463566025649848092295635392374455899249809343478979314207722077402883765945962119387572296276927250317625155473906928508060205647841083721705143186333848470790954989641807332481368296169056960914820944212161919819366257770885603102876877065404400027705377545641329880884184155094281924862575421668842080208595875828101207403720065739075092612533496216934892531770428184133197439193439638576764276779803440586051547486801712739975402607088398228616459325187773253459904138018674526576403346785730397059205398780546397751424597054170294098813849925577352383401743677023913628241331244192226739877195222009244772000793940692931682047333952816356911994555124002194873347544034832367744720047228199839383848645681414073440559862743515606781487810925288664556652516569608036563099365705732325471148217077840849298681655352533609471260756660923287049509192418340559863684354156171833101029696730421128666436111271146803872209705704895290190825133267293869624627754712540376590384015202159259023459533826900838756604262363836124123134993086878376385102499161532430118234425116622950678348479153928176903771676772430606764779641576618398822811660656677557918512221752131114946091329622435133727968915570385356141444571944326736656642275555038966877139658494071900590497081746900710245271755945836167136810836270784185029942687762447306000717480727106333371716907849383170662544882385831268659659125977475214709942282843587424895809020175951664149531702916905513363187064915869061948670454936405608087089024776410137976194880090679262073532689226875727573573907800748519027067782569541029103611979208925923719828752989610371911112490851142286472561653970174626209184651242252416407533157581892440751119203376279942319655710978777910022973807081233582381043043705336562747730195383137942761530979983858497191676974889797512822727387969118077915629833898984621040940932946366121692851905792048611018211173115311451646739313495128533084733771840908853611179945990365613187636778781990844266197993486811298193490880392048520579314646139574676916583317886385621736769846789518677454088144355199562758175532739273037528342221799299608847653108973165273016785670430727818145423918713966623511327455853731401697079419012102372431312761596730500116297083848585412991541324435174072108059446190705102368338834790675895307979108645153203210221903348426111963165201201414196963707295392591075127251098704913856401065715215911481407334932034539326662858210432808180121290489179053975389749341715485140117344708866875073871976951195414601683178572680312353220866244611491456822811504939237282570579803714499651706927346747229431883850145701446407726375783761396649487483873694050075861651230052565395229973893942130489820057306056568065188407440783919032400886150037503412577092825993107791470686072736608353968808245013677923350997957243654939517444204772727677299781023863381702139991016523357731152124075405596873396519398551519060772282316081371204800001887645096279186156748677695751327793041310553253394138704521546602073376154672530100128903201340312069538923493237829894450909758116742415955417184815404362067747477822128193089931498314031481838263340564357340127358091595321567451890684277306216022819014130095539160531992103054875168494130744809506069560806038457522275107767052969470885337550446326842650172596075961208435460228428993688496857164202641671780701552487275551904388323296784411972158541431328760601863771683083473876029661335777034066656737943095317681140162000615826378949646602090028479891566471306898558822711431301180832780760637226196968514388710174237425613507832142007922512317612738544749653432435017401182855855366646362810358777904395307188045910163368692324255005526586586606157061951802960104592258922397785066804769423579155740494833011168812351491867747752295566608255465310684517279895291599890228102867915615109237719625456819423911146585753532721046330350990614983420490773433973073078719050865702618502030098172461207567539890604035537739539274166593148271054146965593861116227482780472625547984431335596628265286906875396648683870095153329614880778450312607322413209259890951004954559782737966953986584604406304118904614054741374656207763689945254472980208925939463210105770286974355958974463138441339048715252216386872651081811206738006252852516207875129684507756581854704049357535039650786073099441840086149364825511833045517757225724243090980652277447162056530363854440874298321865783114179550704132996725175915007750113204085564580485834973046991721427919739049094059293513259917344086748325523469321972818779619839106031397528059804285677560596084339756799004500415932622656100229244510395552295558702225364701040995377765133193898041584517640572020415935353585862059973391563020740565722013742388466975876421154293788530437959356775957483635837981212682503071640091599991760608699797406143688621347917355979691717039161858961340500495522600625448309239734948805135271988203620089393888133921621981445964673337889577863453048893847910051836908213303833036324458268990787434983888433315814679417755798276022726039820531575428870049035407870311085336712013197960053323500163224531610163929243940802342012373772332563756856709139238970465058875934451305025424506412972913106578152255024996789577947436263470690251006913962934430694808980356941345071139369973918368893940980400574478440383938303716439881533909454238972384523168656333862176251598985256647422703905094159537510198836419601699518721306241867646857690513986899946210624771240248707916587450868380812132695733267527965660346464564509179058086974680960958957713280702228915611814065731992360180512146904266723868650559215596986914632508264861787553379765132819749720989012806597719027158610534378994639875898562118869662095837899536238006221171876719833090961439365461940934271873223817821292931841707895245787242344854771672602922275879015264581497216908423947568131564565778583121515519109045523663474067784354391963818856215393205848428820389183590877403160148594263953108302349236103239179604154197884655931383057532496194226536459538922019850600941379097148032716303506939977588159081143642926655917802772501618514162891030860598144557988768364393672277200120272906519110349437329409820963189974214496961634931528855205292850933141050306023995214547324857841937106751673084077693109226438268590748986677536373861440008433231963631212890083019590838546039904594830978785810017337829688156090307993021415781322461266690186741902321829536554323119137667513084777538181085091250819823734435767475135098268507973642351202952571980242640634594780698662216240115354812167880160553183237319697108748095685353446298211934837471666017508940201099319777083521183726084629723167703959190297154040856736044299306193306275690528742325000985349416470012162365450111169938636531582837866408584081524376347050093640190535956399210629319546209698850174709535793855298192076139881591123646418026113069096603985836784848032395236707812460685495060711402013541177733821483177545055147258615239453963912256551788182889436991543292492759662115556626148960171626494515743325175915879869462955928118392012862581322648390657129759100180050249614897291153553215428183421506640374685226319163909107599547303673131489691875851090901596066687344614399738574519093019876233890982800950925579338612985251024945477170565724827337003700670084957032250026953652587756403943421798552013387254322349807667206727807581504497702545453126161183272189888243395150507246132733330472699132124889755278768267219566871696353004161718132880550913599162920110619580881308968701084632035899500705454686407743661677325897464838496492970048641313710148688653442340471313738174275080580630949024239369385680353339146208958307337081620785526869660504541884407453035968160841848597361589289036006789993871700814437803107223936641171536070464215771459229618342168052234180039246122985041738032962085846189547925588391086939052839793771791732543406485397455103515468178367762901308118498285794642335137897927170512976780989799641975900227955780670528458070466662675787344179156720089547774061125247476848386285638761209015703206042473911741381688128676081262309481899807902490655840098217137224170148738347326192958193954566860255751050612983770828887850455867015668688415770473146882311651530786397008233738278134839437252506211306768225571031066284543711864226352818704123137321839090124083568653889052068184734584007277924521102033506397398256629819985212027837242003559132962779764561188772394585753396801535057302652369714875225929242089883645686901797649855360910989031603624679011630037811705527259548017262702994371087858064610258488413099144726827870209470340019200101061887091599383961071550943498706328611800495870521397321509295705545707777592317361453196193781075630043641851101650026194433202916024460171271276323240822765161793431060130012104941564954638463882467038115654253244612688026158200826332698835404310867137578418375495477425021043772112270218722711396128817459059538446373622140949485729675629538132833576634277224185993640553492465582966236791801721863685855391471147503077168125998086021680296270837683603125158761314058099184109800531356093194510396680914013070451390108226501909793383627793779220905049374478730328968560315686293612495407404200635049460604671031834502685478966829553255936256329667519065037345152009193519436028442999738774110932367782233845725689579774146998237299919697059653900795314965971078857358644016853591552093617375410061776068873419482529371167986135048878838485061658330249664924384075209983861353538064663110606421419711867118107407389614805091461294635389300052905367358820105055808085954101468448214526878840417276762862252913764429807501952044852584300546104298260866378340026475406893345589384574943044137035003194502997822450588919089626468165700857504650282491486857591841934690696743146276060342289047460475502972153252080851692699522527208416338191938056150538120369926081602515138044734814542873085860922294093794785771669989977144260896467116949078441313072776985204649108279110861988162938647629975466398272228044006037153734758142112304544528109351749167931621203024372391649993956505467253583210548270969750568264785991215197017140698032437660493924139131827754299084411667035090368098055080970899027294387477071589999198040062635689874359758987735188824535648318704898239155706676827323023899010660914866065341073855472546171165561308424589713027887129645636276535673541180187023489079393759001963215969231466444879315191630345433702807977556858990401854551580070218098973229078871492992903975426179356786101924230821907548535078485550568756912500339962302960973923149528950039606100263117389372176505262713456332097734098598553223988202214079918219896115212894999919619258345797620238611353857728959605938992120583221606286388226892705223367718744455749790477130094497682348753195690573837067201672774754374556639073539967173281742714542304353907091402631184125574273843751834304876325966734182442857091279502857058503600998031454881326822647023035956939285745454922658797555272110398602931012488400312393713832317506623143344946835187572327441608113401926825636296675678645540967488928234831974587301248181120454120112587291370327733427655292682793551796499478503089091930072467919466204308405102321715265125517763134356081743163985843827168787135039947921649224037183071106770280164644330358882941631660820956829043981640378095260601094309323014012586278639851824178621424594574971494377587357765478321622968074120706587247094625916467330303411263637845769660226751192607186442151271142533046433193011047240560440426921626355655089169588215362980704236396675352170510399370317135149760595736474283841371758443475627644969142827210948060879024614729068229003629063156849061659967384359471215133940973751741841595118091055981974192753392251660866506176761096251454664134770553030930771771954731106266538830977571267643190397722208779736643702225169204079087718918144480692525785921492406218347121492241296419357457438312396671557517048967418136679738584498445962898222677206844867321936496172486150046594677891890158977611585841508960876172904211735740384743944487961837841915672437973850803801375121750508800480955230032206714846172797776933917610343247450927816540379971800979847758221017162331209852968945092993362800071547962445039286072924790917134523779666687049049318748044328821766954381237276708944814950935556113009541695330470854825990516763426385186447626302933713253501383914488386330894236137947620890530502914256073643848724058486739619903564024810787280898626365425804247807561984212454939861436942500641335191375384303039350411676422775709546542966383069516885704590393056767625983904203074170701776175239616446406682989819591319891931311575016488083247522280034492198105283149431752532482818363209968178153883503958841208069002170738346964686329385221949761933751386237856695456131375662958014351960230492386426253396816153958406808399723455262182418392675862601081359074126791520342128867570182515940236645025887520602931069910628411402246984305926143439347706703383529292138493426348269542601524563303269828295564289429758822024677092124835715978638275396532968525643149657556860678332566275698413183907240110555393141540846275787085349791008334033995856179237735283263712274707732689644855144548602569848551066729596571783002293462117471640812921386857651824035957330860683024353779890593014205392203137411810386902882859946013663338168592634584513177897031480095950659176150612335117649292597690908058074711067832179982380835571967518587881882912609957406141912765464249966388734781152896681707432633549043623038182788944832178405846923900220311699829320211658642964175498580774856646172426568216123297205925182303476070512306983181294022852702660679421431221867855407998286226821733577175704996092063864844665669522448836330455624733657504290556885619909924213474051336690489630688568886894903319275701647669908770919398226772368806006905287455902930132008505347857219219721465109802056432169953927835886393544189531935594118767271383190051408842759403107375482732457387289986418533425058898162556488767474432484892428411033881307262998009016431005390525603339179963408616960319128254818549033405513345782764509766907376079995970969711022011138943284197590130266361303635716726820671195352840671426149814345435354121847262004653248375617995224953315229307123461253905151352092586194186415807096383447051686267657019315843407692884784532258392861785495264009092136647378598296633450679081217318477465422972072634616712823119063998195630804521878749037789576101396051022552901765665955291134750308311410212178511092279462169144399871653986872138269222134898359477239422526534287636545996905976920286561245557711816676827356627763301965529083322013681179415661915641859351338861577403268503343682703923528779587876928005196106315637171593205319074920716666794580182971048943028590090705233119403351680495240527358666695390764842177453015956861245690825353345948906357711561044815091519720813151881253201497026696654512526583547706334041204063739880594471140135107803298727715051441808424044132245576241242241580624849856109926478304805118512469685056332924827513171484329055086384048553835192935364367421982466397862939320938347234514395506681318639009911976261629175945455265773908279397082568741109201667778005431805417911739769810262080831637712530136050509675919728441133853710438675588733540660217139554079593183341263934022915185486191973594737884895065239302621071897291348494480134400641427261570434274018924933207485943845224661433798953399680634307969794083021739708332596871989595299619509113635439350916138875671928543228630495646726706515726529676694347525948673849882075478811197859213510818278539677399365183518039444115320056158086296841637215306804938235481068753059745745548915264163131632275133661447088778770873897257089888941245652938540407010524049157917221058482290985970151097363791622809661033196760196651186761118387326303952514768198000762888689089416410475206586082800899531523899454947955490554709486578609289487039949469277763931190730758834732317395394683239886935366417638112615575107357008957471912790048523958703058486815691780506659507282958645377644608334109205287445648152547612661308836689665981501579777352575099947954674244370103636943189385567931299140637194786797199520503184705341237454159048845955847890157239358606425232210716445542664119346424221028048891994105714306562986622347845600033891203378187577016633800642585995066114198481276667591580418178826557747355455348788531542722776571130156801874067499646633198937032827918184095299683587389503952916504761166851125310473830747165210849765406248195675554576917132906073691503698602975351577114801004096250545255913798026882622340358756584716770015707330982299933716808388908926793458203194065595651815509119424507466822594833457212938392733228959856583706664135202985113396415647047048609207925070508978208481058469490032681788596535382427492975876202112954759143047861920705545216047836977235836215890850347409901665384899282012169839570615745386045686777619131943354721596948477261576493047900332003111761827396152096154009077542735500225519238276222566825257709240788578906819081963857008431168508495538195910455315959189194046844255255006974211748695563051332151674389604755329390988347870651018036694607182181325795838296869285230662984584449831347000361000589896617864631265051378892260347110653582748771848265952885702029015397563224500191195431959394566850724033358657832249829201756019212043005524671524727965989726370945733715532787923315632878535236660256379308654804798262227030266281085968738669232546832636466282970595966227391669481375883138498223684631034926028719085781511082026129696393322693335674888382336583980173480208078277360319543777817174757094541298954609530712781677581492888022553489501879384520684251538461650333058708907624832352112735878615995930661887916165387880164804426593149014208953212179255053530284483254536261631323781871001211680580452246337807015090635398328860390192571160155947072087801362283945604413601219139037128659955040231634779491262121700595554078929829750080883002672658849558737392455170927856757049460649489494189794776285622410393205181804026215530337608733296958060393123551699727729554680361884904878411609743464092227113678218548614355430954945495218382351765643548843926142883499810586417067230882099373673437419577616567767458786884956485494508110428219658811010330711524451667544356655290160256453603466916768596966231532374447802901435011200477079205366028520065672683627119000746811954398651192762431345789006819424533622530109093856745354607934420153776377521579578796271113377683080924481962924929963535278407637824570704209697571315695732373007259409559593297342764631055339020139266586542438108417866755407738006362371702995979811019914344017279408123141159682617969126712221776175802214665309074177645010896688930838165407594346642392621946394293793686006752687743126105557436408340593329398192125000246644085227686853901122824048504037141911697299753170620011452226726959997137176636653898256155944262107009967910126115489394320111255031540081052294465399680187208676268523235898637911724830978668068501703700312174122622685404300685986973194516787271410764155821415893724851173529675976879019309097540187209978957432767917276369141389308801544641941007261436191891717680114967514703379389005052444398212162267211981532715795178885802224003963989550324310836694594911644381111058352579798118340261424265871429880442421435581119178394336110942794511076128740982218331840273459265033186615768035130128461419160179222231418066945844108403393043748094395920566422970279362515687364836967469685012859879522989547636299751155986114228747767936714859413430998448585433910635138636730772315958485923201715411400342732668686935374789955550968469279644896628224807787287859273872881719225329006264013468223602483851392608878796747714807065014327939333234994943547252376043395574191359358968801976686473307959990652899817333565286029332468177042786923576993201889172454348833554939536824316185299671879642784862011490656225034256578417484823427993112596107372328524016498643212207043441731397024964434265335427757192940091415399247539673640172820129664170542067186244542138405365567353172104541930722408756475124674441682412726848702656189960255102909129430605411070984697480354367338817459040691213182853517225358027892962297691256098656385729420231568352688943263572650892276448307876571601491364962964533307247946468244190075483257924814466884971019850626862068154037635640194294879397160833918630263978101366067156615673143987561655921468790336032257522214213096738553757511107888204341378852832353917424983183412341477560390182585224587112818868501201106144343273708084408301374959470296519870233690065761795732231845519140255341266000350788819524247941533319484982319392219934708731522983259119698359979527905249987108415788989575402515262089566635965271621120542042808285709374557161582012145498819450188167929293363694588615582086548199539460731831031335993153366693267978256809834747396329247510171141951977384676831459702609620370343625651047637755785776679334837698934145423240482287301695675697702876243932921107181152410749999481877279852104003527619393193474455297185710008251508375024483307171739864117824142760006105238586876195593674066138975213344316130777087959443722243875987173729455979563702528968801163922247051864759415181033317091050566655738880414166773241183580111213323796222073180561744140998280076529213492588131514293054852783753263819685497571585494676921506351486393246472715733974494457273811835285624326846091510530234442668457229019542464674436072482004710551969090873485762491326693021259467559228728272204628270853700310426016078215579070755686387190956273895072892185730695723304625429768949419361626210431212601094499795388993432941555879379028968706428463826518252816443341890501730982451167253193130227092294784141163409627321760771320614682857183592094406520485651624629741364577658976768362292761639094409923537425572514537563964746336529114308504105382256543027938508578704910709281227020111229029559796039255398516141846632567408961469432723013305308538986555280427651952129184441552572321531214264761937154387118159914825274203165280433711663793146919542757947230510214393135802966127110019796225149721101328982407201444277764140135526582817195892671147497372113638816048778485377678743607303104231691422526273988349608528984692398187715932157081561724996058443122333586343418554926803688543794219136031587591371320008258296663328684552833963661208442076379478649668885043987120658270884786663567345221851038395162786562890195217841010811682746279735820357690159333132527693207659617444533856494888728576611237099629762236972480177548170783140437186468850677722480563929929162038852960540489131842555497515961048680300998461296443683493959948428202154331293321492859381800813001889939352082860454661099326272770157713640796853097362740278663916829277462884187014214347335690032999684386495546392675807136531443276752908356113627034664769362978994034976540924394305152442945033409325901906954094495108611011150957592870564948577739618569829688661400768298108699581945953127653974393073704474913896504816443327826085562628780811209010915817005840587858463985107793919082591543276968268642431196005864588579682265786924269811468414767346132529540917897242710279145000099488658538100807357492144683122427949781545566000865039530427989306097416609908192396734551619859466550252424506335590140822936834302146792138975306576357591424592601694889405607662348835782799939639449536420647269248603703916552961101825399658772835361673267144291246983262250233431848555597214697118128319417822366256904344238864934024699929151634731353929442837165247424859365580167124123763888492158359689431661983908830208262378540926638422653193796711630306200905871113192814420316202934059351946326347813033856075521866790549543198016090441880104271486037175646648675321967132441845017473975432849873891540267764675025321781858792570517053045212394798513441926783479048160730706141278331695342610246181150921173561554851332946341624783793195268831947520005983208140083816735159345057901470537024082685014935974870982545080498282969102426507912390398495592952495034883980645447857048460692651351856938581762761244736183235681651258041476788219066902611860550341096880464122969118103921553450669520337748677310623027514714412231403063158850379411761081910928087184167824312175696487630065402919299423170420175964755388379755806939252490735227434073463797003598530777150385743069029132521555448496696802890802452308750446149487031149989794113790960167533135226202232525899548180200073678515056112053367529839137847217273768535109302144623836315498913587180692422185328295393476871723692909903907771079413207825732279516852348855164017047910241033973215447194846022044737491428739597414658253878632873647659650889038897621004048125580564967900718964243686601936957685002017568288832086514147298489913456955908229543855316638908256041854255783252676758448036201123640836761474367817628106753013399220060087421410283252012928241555341416719363596499930849209262236085534100372793971193380019761797787710990817620682583455578682710188685564786551963269874914837219091033098563312380455572563762478750324116786596168134906994493154171215261391961210095686655626818839165962116226125947676574602942414063710816004715890296824327243518384726207331374115541589441695949076956817786224367113695297854605091158731130677867629939651405339702292151063072076814918444094514128508008075940449748232044022825990674147845636677812287002431862551874003114830266657098006339293161020880214344847639511987285692840710569264386770508152024728768342059621346441358401809004682837377589482964036259529602520411588705429248670209029057928606779930143843813973346540920756092249768200713444469801388001505120901449641079044741706484232197578163252036432916449017204182312139789732473220004099203053539900453267263437380247108463978663162615794307974921064822383877722116728947895454049391597645847100788633604000734012737555276217883291456593809764962160286350817930586338524049196333067316075035201731709449504969698808134545982363930425752003129221526868217176137230552358418022199556010703578434039824993989661382318153919725226662986025280151861422168038241833433366153496163849677785680702345948749268389219372804393226956616828291121950356565701876896436802143119922023781343428753599960929433309125248221382695514968673469688658659566463414403921015113068296001730994949746141342321208872769507363248525434941049495248968083872489140843303440459056481402765148212816723928528620304546174953052609729816279152455576070243918702397976883573954247444226059760381238425262495759221146691078562180068393572695977347910203131500901955652928313678933743028375925358941453863761448364273724463797095448974736719245243900148189948297796680702756538793726033044108204520118443536547255894691362176068449082280070681911369351661008751106231974834005193484291098921285812193521671559777856110009605137875053226977225879528796634700629175527386112682432867758120224888722348131052455032665531037604092686597253059913490384595511467101270507423750261208591270192488349372269730792922155812481534329329583668789443941633319893075425323744706668062489691492888205662957800330183957142254170745280166336520494240562882895964906269057720669688830281239436383071352088402036544864246267006181613989823489685657761402890539192851606556501123950193967054270349525933640490432760222410121962076416952696354171973269975013953881331608970050789765953864892102773567436907980293871687053715733482919088000361717095555642761241630558565029575599133530712146265217578625494880802986914025663783320292263904771575792120457820382418206681246997378526918854399005123490375090669401422152199495567970433885166976513857212116871372108838969355464942698402547842231272084284601571502570624742166152795977992278335469997641973754123508743327192452298571824207420345725267815166483694458626570156600387552745518758769560976218407000068832502785810405686434659758002872028385124355400288657912563270919945376023739142453066751550305951641406382373946606503119694233400760565009009248466677741252735526208846880405009747443905002204174337791885022570775079152107486679570142867764576611322918578352841396872338489890219160474656955896205528028667419778043902437576537001377981309093149879865054812860575466689450115196111316660867599748703547454573776733973273953447129183968072167680368160559594771899189362311516681425044848477382969541688862076625418466644762024950525655826955254079815655489162525085427065422520010065447801980412368471570148183203103552039974765422453092531330351419958386425703636137322287111588648009472161671953109581340435262120493241449865455051777337153098744536457049423304375926560365161455976318110254386765445265709301752785673760818860721101303134581827771478749324117730623556872860738441642633473634904845283844751703371599375690105968675488680027533195223323331389368764357873285252916604795191335504535748409577509582522482156286920011169944492574925456090735497940869237243867084279071377636405754675799481462431251859971830281777153962407699958697696845782878131449050522740833418901109722747940625513945818067794297924078687757661367303998913629909697366229970326886204799299527910821189761007086061406233501288189552471284701694154263489924379197011354944152292380932046894460662779649888278859331909691278091945295472084314688853107692479157598926544930483525915272014320925882472848607676732343381303057384642416671889307411282263424081549211718016823176687911538257432282088839992147131715206398679912745732634418031344859291358767863424606151764733262296480115178164412579129925975222952931891591659899665101618078206693930067643164543694410039880006149764592609490050044519677909334870847369222385918452331045405099892780620979390407603754322838095737191136514900766059767591477521987254455083676949503014035683684751861071304255014440022321688018439694028943126611971963145298601300650089201944198801511748632763090520504512977131407083731361030517819706810097152406873472664689852505669251360735629910234611573560382893909088739679450627401317589206357779509130255275707256271329293770388840163971475218429422937131386627888906611467324986777049251775844079408182710400468817297235614238100079426016402417459554911895699315135424784306876588945088553265636571608296893648020437317345829261345958177710672234550796102420188677970957105792751722308304881249206868071354464557946217065242616413796502468802458828254194572458207442367263747432400232953506044723418237746049896027867432643027287419785516589926986193956728648543071243737114173370114993904402093949795895193931936221719506639522471887031482911060697481012432142332841800895769500760661969681386231360230775912181485956492800672939221233587077253672124705044361875226673804193298459650638627631417768464348912021639881040637712764383450708837146625728623518975188454538690401867849110357962686255501862879487707819777082654401560271504140652972394662132626798339748528297727842017418808642902110281986738424608661448760819348364896378624009646572452254134423377563001071945909671427415055575102183434872654963446703427864694631856770829682876125266497498815168868426051100487527154301137801672975966015587938644827347228143939829277152678710726054026840175246842450786615255522474813781828153519809479463534859139575457824975983784102713700389195699040082065378514238110063576053653355441760610677477321807101607283487507334236213237415895837572693553205490384791946695988775909533810554304698848543455463158896764471448402982846215462289734040266162542724685710711014830141842546703108710516679274741789358376014713257923944544635951171357964765135164646276044451043005260658510102527450268490458902774109175967236349134867797458430371480180515179046072195222378374842446256452212432197028509232656029486734315432099783783326842762137132554234242189827281115790668742397398694220465758651802624795292827294095924361311251901915268476020991402269224099770708252949966115177226216688249990722088169049867201881210486089982169416884878397141516121601662867196248735379823752510727038929400900660230968802923209266838847735069686332609129945269312614988521609531739289302324754347849665529434399146965588435250012108380361669449594556314992478035493495441392030487552373625864435448418504081280267042743099744338473855185593524194591292934304369990026628197534142657702817622645807899569138205162156587987158886536081669679735388613460547372805159772404321303752011478386534834104489566566014440518811146991227674222157351662414084545468764350561968807871563069707928647925525368538386446104974517480070093619402559966695301810614395809178367797920228601068371224475466291911434059127294096009288517618367648054270575454866008111264708125685842890816703595444509508142752745898221826475769008550642966095622611734191260107876773640165489682193823985954670537031899601872176974967582647424695421291681032597245606240762584635178731012883146928317823893080404973754792635128731375156139205814484799811034252734382880497678096077456206581271108277553977930861104783095783636056984267116667831139931400284440104670415965490524946969030460332112374478086320375248854405788859830205961403337865082649080284354535684863680113332832957998334024802798003812893318155538777118306205770407998077656649468676946060975085977264487950003261849787238641867505454653472250761289534646388449627884324409564278827214123781592625263375390686981399670080254616652253557282630156793664920267947385617466379453163458917135083530188493254400866963976544037903166476459338017312991691300256462638625277745086384996841561165612531493620642704318080030507881497636451388871031039908787338463252705591495228643497822520261456189404840606779936059776973300177283205831035620129054070394950084535845012351385534720977594344795070964728468477180939729871527640229199713739871537244153422440273809812221682536253517045966150651069888967606352327183144571282380227615935787402233315487288068566850427166654127584369667081719624893736744333879965756832052870910974087380453805905965138023015575086332503884262777722559066352661028239883749309997697985780957522783856367563679041649388032906239679090871555047235315951773613385132227508525753573904224922485647420069616733521665985297443654245637018295101534245916850837346565569109820796937414598008843461392001465356112491915938664044859464055473648812047448211362656050273943084146270741415751534557560346948464368863164774628909222110973851178043755776365683644795550796127588945479149429143218186875965370376997157376326170406520971216527240648718734913045486485603133809500488741268537638912932844527286814138912879968377140638785212652519439253191245401344231009511390787334537632337404953094074234142885023370111760873002081624894065304302941432091186420671234711134976990241754755828306794513919029840991367651651655935997468264576911863799379497396210355407107882561575858460436168322993849209495177691926585071957578808020706694720403342036011778173824607115105172312089663042363778860143025292643386579704887412774573274198523047788933698649424587116534434718290589473226043282976467394587232921648193375358302821690806307825155021385332294559573080596294652440318596764749399814733826547316325487041465728040173037073911627446982408470605590751677983643684553584223618355496357879583317772683878128322966556511781588073013421437652149226879289579884882887118613658291493190136623915256976567986451112440066807444826569763586391959722805066102208525485260090040730457713786430322164753896289834729172041572734158101073344177199689256943688841159815725018637409671980044143831057577174705491672538919810687296124557034945063768409704306948064104138765430022090102765357472057053976644770733231062424072388040934255447737314190836795245292230737951850548174414624531949300906520774336683244900694445708281044061502056420826616344446337183212305418527303258802076637141565491273669999323905569823053071264217803381058857187618793857216843136990610064484938110503017075327158112458757441864333503783900771836123717007172938447114343047719743315320880937733757124952195942769286331604345246943423434183893840228566477402032568275126293303033022972506490702183505756068288033739147611183958960219122301891307162156766417907744529673469817972479702133293903799842909474905674754982318010941133233728370919897003306343315020196882514279430705255667246321063440742261617572501444400726576135104661007189781909989515634852532544084980247290645236514456567271404047297160226408099746968254519356543144232299377502970704271867503555108726938775456542167105156471930689136932965234484911483644615849261225387696576599134552400855142823459437308674152780091529920485056821264713918387117403872076829971512777385989197425337872335730200761796323265412710493159145852285033970680311348154924533583747808650661079648312481492557687622824242926930294168112358060054711582114572144749579690000643048952395608097307070856543199622631009739209830325438597634730803424665239343297054259360769533969577601677156365832374196252088572503661523087866630234008885689949139215997702992750806246865065869839766762167568238467307361089655487185852056181892251517116234494146542667848577874382537378680857070566592715887391515361588262810901744167813241990367489844977488102861431958053019160456231923006221601613837768811353061702217772598408179482184460494623374707616691886822747799264048226111124120388339264675425640310196930394462751181199755590941955829133356013952921599772710235855931760259890510950883314903660702911961303583479167164521423148516959515500105693820563958795528387461361690345928895337586918790614678023216971281659915004781186545077378641596765959797332171479055941734965459654298970173704143242381306493032331358098915433750461663918699092287133219117270049610068135417387342762210844245424785051840904000745007024557218736055430806015596263269407226325889604660262340827791953286536960384732501137490143106482750333382903801933065631482821980069371902008225315053933703778348851551198431206026561600097332922923387772176895964261238004278241586021453936594055142458446252591452821086200436290624475244768937588301932273984581157526899442054995532150358113726747706080142993028048495122013585594312776393188961895576833396394925689483931587591451701197319811729619879643922526408800420376449702862017493369187065750443825883205314248473888043311270406191907253132007271876668553618102820435245224459991482024342426701731650306859401965601765062017827184383448651754846320572812740473919877435563628160573093370602604371391769975351960042429857229446536466565987896248608092011792346081840589040453404389503377341759947361939207581071615394823335302338010479745805930766202918160918243260398984050472005722062763173680932855890817282004789159046156477479867459197432485661157498696317497715845625763990234084346785425237789026257844507475674210157825594810307214497069512126457751082103363650846956676803014169610220988761179428170097023919161906416678933686225846322542121440243567344734029162773963599824996827307023339439547024392930151204925042729856214252826410654904137169939947779961280063831990140569753861276030229813003383978996703815638692304779987833818844133028778506751466652261668562942276436923604445614108908836037153093405152029549399866227147074320286643052271000746083782874984455354088303230914220667114281725454451083739782304018764202890848792930357050024783594530323211028811998884226635233539862083888186142818983618286097049198387283589473449807598194258731069507189347596452637022187679374844363354273658241811800805290255006467330982079144722537867309323579607134568591689326218825899505694602972987403269067063708306999747236491037668264661319822026043338741313792986006628808456648971080166444856975185376471448068660879372755676080125304629098659804015710131143979051317284643008857234993219695603554886802057053740068776631363930094215575984844113159631082539067901932900189858529135580549697074570181719148617131228560691817023508580374644130898318339363352118843451621429917710712324744612632061643490555149691156643937551726445016974332049368831332665755977000057858015878530136795578828631293082628462607559112008026361440060887523616326997304504946373707837217457812926680619097598006485272207594454524479066038763208763583684195465597771571653890200503466064938331499396425007052390635227249667569238605111277049749068607777030129052142236788278526540693655192054093349143425360624917570102234469657173116278380146154306347912021627278394374427891363084283097151862266022434254591421819622078871949307937584058834825802216107631370592717515502714419213100298330261643052609413602339447970435432798019683963500520680944398230329304233413160725449020623433618040348879888575452045424982647377357377194306677396221435365127436126898962553025386700623883133142283724476375679363165223895967817222496697674693119719279419713413971298185031569286796954382627768264071055707648547422959745936904223582042021431644406121615747340015000557062534012660002386979902738364443028693529190221781147315986496670242965890090494054496328121374698220297301663318818429201236849478163810358766548136443014194833884691070746140140962305302682396242040899195414389503789597180813161521862564928230072870767345352108680959039426419628137626593422561404880602530432671096583663084171994755526541914449098982196927613353951848572292085526188412001170749404243999527684886392294664214745197120147262838515478825383725460354459437084095279346193444548650622555090624991262754829950255404293781300945657443852505646917248847630025017779580591166602282356007411396865177159572776541111166225381834339890426571430099651011209367878345670914188388079042297653190435711355190138880983295060988367048228039974169986186588236006543061647067488467861677409777072950517906457158663875212096878912558044220261356616295308944884458070700610582010018754343862974286495389969345021679744174736299622499463354990824801776026726273656271770289034213149200450840218025206903326065958338935271037966220652774989495791270645117045454824883386808977610720526987904015566360599809573230132640503981757649160372894456975891911886426430060894273943053045640400723951893715154208565206916631130930727616619915065011820949695221690180931371960546153773358475576576243844102846542923705667095771914620612599009202516328769091756468638887344374890786767858311879624269647638856287345704591658859003291545905135203416295585841090546616038743986373116397613374529381311689162228285317389569777202574898602981316477066184818626272611218930032014580409188990350875351820289716074844575149533840521334376695565555990183879801893126335050774919027505383636790891062842095841328680720139253977978153866003776703046665594959556387883017361075929630444694339421210955113212161206296665133035445626467463187077906926288424880132203134220169601504943070366862748404872940427914416652253513490875679655883646265199696072964687603930499426761536661877791919156733093949413785845378881574448361391833546173642188232114769032091362011287978011069115345397492050806896750959681411158553915507755771961216119920898068561309813213402616013935976651997737810184304504345456895018174570731678443991006977800576689234543724165307282074657362179863874265994190964608089255174888653644818108491379734865480696264840699801738797042484972507818739694771665542189290781642747952504568542973042737933967539828170567167503221437569318656265881522344443758687376686639243359770087162463412666010240558394315923307718142235415136992414772998078624956635664504350228392109445876507386495228331543194150293604598001825087695364504466463438633159256084805887346608939375898330375155334231106642154570027948049729332239784797855065148071400810764193753331387755653288554023209161409650787207158656806322095413847869134502113003082424725102484418239147100131082286368149632243747046324436098509246719555227745297368513628315420831565984728581638644855239430059469337549219206898383651903358218553123404430288996345011239448313982586034580309755942831786652771598015356116662980248007867469261550249056007830679154394829545168280621275766298286377746724349836397191585758014807568578980518682946555445897763727752456615044092709480187071078266932110277616036187495155124658748511077461990237688969194402947716955427044557736547687705497159271595871140945860559390365675052252223474491802662103325086009776045355322804838098055243212495899069860971913976141198217177556249713962410630628864736526470904022490975633401124197701711722902618739302912822939039670900210347984394321733959232062214935963525138613838975001489051944120767424012615164570812219548874775806770267938296676152999321701233081393986061030129127584685439111945108672924833388541103956268798470399845807944785599040592751294427807890289952587372526840903659120053564498224364329880999693807024891243404154586755665074692111198645838047811059425824162909331326435754476324448263583570699052827692719321032043891916000829116557012404534064901878567397561104769347006281467570845219687632555794509299950350227752029655139536311068333905262735130213213325353472655078001410435210749051964159228314363941118789935130081839639730193186395919469905655420987762165567127094747447413186383202582980768658701678532083057616230227734036592306996451033830421618859880045269415368242704911991971631032572304747931470853241575225687106275993000477651473803145388110248952718269260907445927838766466273022819190455676799045578781114245173412276702172439337000211208116914464876126858212850343223823261194584981706384219685537298422955222758338826597751836072906217541915066420996565435718232453004572521860753632658470700077532181808669849661353285230791816289380358012873787871712621873032862482168339945947080972263002489486710136828057788377108447696084177662177900795623580496716760589551329292628147363202608509655521195355495851933645302844901292045115162588071716467114175213280014521930695603454120080840134269440397582578471237000656589494538032930722650824606227462940470659887706881668022312132970520309059404227622463216135733443117709286921882876601055002639387030318835917115964305135034089064711405517506392233103020067175267210388226986611406295194089683438361740151197977587333364270372959150467193977414104447820004222320405293870326579300947569352186058903997049769171009526805917666806666696134436366761941931918956688431888133744586992357252281096280411195609762402951623113594972715690087786253515798741478378711641066895614210677839726786450468414577522392183404348263938403225439018356909739888898307114168896024917147880547097923581787965176195452510284494899325658319359801027400802226326731834400511779576813667392740243291691534709220575830905162241718386770124676583637758283003252119097919826125372167046158464406952338105385904588314451170186718557041775399959428121729509237809676051166268320271834445176206761764247130907911761244777897405890422051257657133008750860297312771875657632171583991525747844391354836368194543916142515282433281343176542402256648480843423032798588253717688350398525778819716584224970778551456697312961564312327921373391471362807462956719574193493964951682120406956549152242329509890370546222975646633260632303276080702172928628007481968454382920487379756873294180765427730593713806576548260766183955720064133063587819597388384174939262128420920334062125631653414325277419661970147078655696792898070601136106734272643555165241102071146911368334362222169078715366935300357115897242445551656150517679588407215430304674756248609892297327273634244215577178146123926266347276139631682579069536210326309774119097514400243030348064839215694814441375591007058566342074955675098785360851534545663770472585720724059721898253065807201814847520301655043417037340798588741920124237886660157465257239053607982368414883201131301636500595869149212347231232786196040826932802055778377742831581443641440178105441228020763763447869485622689702563671866941149474591359955425312039246469953376440733906424261033242178447979139685539637685605388528148783910798626381507702223351991032495989089341957090530114098437384183391396515659169259549261495909273801005855216847716986123419262804598792965069043683144116653168019186145829690093443958708521832399358221784069197445801595370945407359988972733068760279257512341296107132840754915964386489999957550395139508812889118073000635708192063917780884762394570231143277482588905727337396670771159973949210898112588290782977030053445199066663524339686205510679385431957178370797749493113206344954564082136151050908805004702276889359116608096021561940240784819102717442082417968175583991935337891079301557574151781363491261303073984441018602199264897809763476038365238960332945351344398575553737340099651637251121116548196881438437705492215887442449105584009295805436039804848854753163882295835067880107302263204387093623881638736540945623713982952538389756592569180662690510123054234378158343262159947954026040035285852671644568762598842552277538567466662859859225851213598747892527627628162090438084718377179048156526233738265737339482219215049615702095536851788242976668132117202651582535236099537318583631921842127461508885673407764613228040143708313012574208813676820864859806121253150185875402007767316876722206255582493066259182028280222013114116425251089793740753152291716861292883600250306985652683657213084712819836908912001484365549370370555952102995348174241361475103405101137691668911213635298986073485724780647019838814758617634156420938835663247364190562830575410021722533762422842833310857097640639273410677240332041564891551758978798704364054811861636532865633055510377664788808345681496092834886735077294686386038273422487928990893290450628842175304095729904737708567923878122329587059418994397681288008826877120074734542728360481178383200034442975868090441290140329606588648134047673346994794707338169463717082079062940020783496548635658931408927255402173676033028952700067821939645368113008545054614843134903363162724509775525111833938092658198819328876755309405999001353109309570946596867743137464103938722449577186681095630172594871834995575498505037696764416953546303042118312871075731247397494749941518363517081461731945517518281112599379788737353294849595515227153712987827462505050271637689274985923753821192145719404232425152472554933750615804394127021334996140078776927102150899679580469552726364524552510085326259647828020162208829829778700568974077613867088991074397332984498341584643255797830498328400162311634773989311879516879813037897778926929711186809014582303602195197370143518138608426040153551465413293945856371640133539084464986696420472420404048275559835521135057848538303274850721858504612866458242521154724106793786725897726168292692355128162816152469213387656685268423468847300583647920407715458514730571480872924161667480495043964475437553455533453605393709510519801641799093391145483241107137688182932437014362156577616991731516595443303533412598566343843570428916313468703766570406151256759797472827694255308511250600125627439724990260599197072959152402731085242117384691669477834922063592225106175591402877079457651946849792261362680100618519613820729627298585331902160621459333973035753820056935964068904546342202009621218909566158079927954838701119006810402628222246512935175502048016538006178630089955666711461833207074168469331177901939288288394078674815563091149496211205873146437223003391615988781857273983000095129662161497508688326188264963869658907691131120305515378337918219012524860189339782183716452940701438012953624345854398605039289566631508932306899957177825827788760483194889277241001937752394138562360212322161346173068648302226850300782773664237552643823901510197084341835055615778469758232682454489604748095136623648871344320882108679461229757921705054651473428493079028204974718327088017998956058944810597929130078820188949080071355120593308951586136382377401564591401635849983853159956069172045523891602189056744944856578991596097648144138046054129486228693404732802963103056700933472235118422535306208097418197522762245091437205161019791133653511085435152642842266845972160750907199246352127343952855620697895963091572069533463928399447913121809174265913606445944841828971880241870383943549097147953295844450055851368189813540069438512546615282809662496579908078321243446605962883849295584208770034363376192027544989381651016383773816725612220301301399630991179875350546188411820747586125440840377423670619067969659559929109287680753170329356421070838435709320379907232596032188173658141285275792033035951819233531258386044937351028795576521879478267679732396376550363492022884306937838593593189094240745384240855433717023932490621257963789978189369896106300288526854025512675883869808101523342367619124325263833236022769761662081819115869794336788716159625519866341411034308624934714211708783167266249259449749998181124570461733218339485440234307634822987102115732052647251426772414456256694618928830279189256050513606584921618513635499032546813254456725994698250920530239953443419427747497573577469379631423639034254442523134568598666060113580321907505429619232277483080537675102838990075885587987900141611627527708408128192290141251443471866005498182147670984076261833473766678890972282162814868898112886446356521007641864367442352157965301882553037788202175225665724618760443329833655083156003778000444224889927884822183448990369621062295229221595786823363668381293780705557628403530416337272742340842978676470852764528831520654477842197385008566318584539001416006562343356588676550773673290777906348610584909479377176096766919275775966237274941933924007454584326528498278908913781712614531069987116024995766197578273568320200610725181232719311431411280274011638491046698035102337609685006941292360200984878366416919272370688262386407538539154235984111204302550513300735184036492392789740625327404634735925359636556534081820389745631876203883318835951820259756399243832384964922194691570438123098923169408455336655012737123614674425892084489251952205446782559770544000855148764007235502827191746081631321868012114984078170251214298027680022835948822358088325820543792679688509711242189504260323049684063843811163025044601073191136659781364836757118521712417405530081921332664347710002978973117856961416808275227710068254785155374362232946308222195305468752636439153286388104074511618124764612942906652006045456125917112740070651563746264258190734227617969687387839704837478259176189300792456566423072458087532841415336759083715918315912532169930859354373944452831850384126291005926232712263206494347521550495575614502272508520172218019701691521699422033601121204204325415641162439658263915119398804557015854603641883827027336982831229868884188791174295821983727321890767922220271276870691754554063194088765919340186449691915340659407603044216066982189460647445963458055022193996584451828118692911923591201682740040335423170642727630943888990190356262765074952418037965157572250977179003646696546447992491044472667322071602715829975895991647426742065516260365516367984186859590658392968864640660195407977558822659425176594117584547590827220236761583057536501289462763323912010068899062728357774709622869635514958103867565484050803918822055617358454774102300796159589159458713794633693157660850846567407895024138414004252971354503281794286722428303194708492087988939806553917807946762624519361463586771148281581701975609036873520302765930148784678791335685188189796312571843566435270798084728473082376574634553238757483046506884390315144219702750706105856691764403699575059426584480719034159534508905791755436283019759345474405071233180686881655849775497625945782154254188930185795161571121681562002412690034399402608001628591207878621664645803124033281607538840788800823174854115119177679768624957936444857483306098494298882352468868961506955171818598897840510106192384222242456143156357026508596986415858940401772633187453047952906327560409597621513750801605804891096777845790412947787223950256009922795424530134079899750457442333633545444327735497942196547799099038673532017815731484779807735493864929524840878463466329199090300229602442803734913052130209711594812095955240163581684316829865598715759577026319798835912865298820113189582106134721516573684245746840731877486943826221765414122511280155387084200799136237651144900931146094809540004705136064498435137011749198405199622937616638272901459518858606699181923615738570256875104454618221473889332044245824312540811191352348248911996812826926564879314228232296748451974882117089233897876665666908517316155441153424945987353636866658000048714454591101830565722852002538904436222012209672043279141950364353551759005039015974226410902642076473092025137783194293531430916637442083424658883326158437186094602397580078989280181264697879297617512050444067119268760888636222745314258026853602923624795478271246466957036699138240982493093047159332456896315872240969504791282316341925364766320302526038035262190562967947488099330241495303454450762887305100902280268420576455361486830798497315186527605164076543352943443438039070834685526822297068154649215586005024606909103467215719839281367004581609690328624642619101994379214035663661718657362007216174100527471609252455947781029998200628381702718660451913264615667438620195911898916359118467643078317971441401588299334225069766044672762407590263089499277636371820182897916332754807982069509050058526924042868076137267683453357945927947710699659663456852278586609420323966644918823920673817440399990699348758161925648895509057855597327989340968871935662071778903820792364967057979591240678109791612105634208116460643886422948282030931328262034692739324069491756591585040170016956494945944561777738135299305855421917544794483120575019640503144056044606832629400372456011843980483032915229179786797178720587042246897048018488495416663172058967310322580336261439341907769164840694081238436371886344116252136841781566394203360418106977050677421146533685366446250572760831208618040899094244922509595591857552126325820300096227367527110524341033144155836057944712884611527126350601798601929324468361394787246909353495718579018555995286604334335580220511080117263926420784044404729420529695848688867161452210391299242148915896509755668693491008049856956662349740076009805941896940933540063326947383365166850226184821981561618264807480579328623160195383038896745222875947415910135053781732939366444371790127409251865408039581204845606294796032200426247578717841736712510608315826272788303765967387155146720519624294330688731692966866171047819332835561564918447209809138706972076560373969198122967726099793182382332153081135297130656357426401464023851121776490443179564338775906470752580396528862859983489106336340219560337886106137308810233507302701903803434719449017587896487382356302418217776957870124045018084564599468377696567211723946239576692791756712037049532328145686997640601280409077738119592878143168596755756834576387494299768356777364739572394558924792803296830460721664617242589474732913099086979133391808026746150865133668117592075780737943535689068143351708886393428106244096454364025262125383782545733473651379666921407225340959769539757941278679441108055310375118572003106794833690422207366175655579926669734222469700010357000926581333439367597779137322698409552720921904668678289298499600167798343044024103067952023162723904333617655654135816953486736080141547444248002008606898079903205161288808000557519585000532095602224497330362820976664944754486385239448464843265550842552676136278990494216334838270832390439423161887770167468695553361358963036015872632640478957720715933197524878738024081443034790281785623964801481631625267782523631192215868087485252364823431847025585038471825917417264273962419298665072639784497810702263321011563681022375501180992180861330220382350706583641530890707991671242170994682853932980908874508304861864329551647681281036011952942301704175473716105253221535848220610099364374951295168978781547248433497352147754975827021595384365820557427102114734254982002989309451030287822781506961395946291414675956081119143032741289619117793770490937482388272427962525345832325536517203918977726475122239997932315840787182607285892997881935662424881633707597465303076402217049306542192699585869220730477289097493670661863216814917087007317263995746734872169933161667218738249594961240140735977984930508822614368979617542421934369015061886608678191661485409615028377209355132167283808209590264666293463645381719935842158075238395119341163190719837894318427492284703235586736355864193621270570634090034170247917909548284521197789591883021417821488316793150936224621906386355445391170921331355299205465131607977359838291207243292623627558756682753006377990989811890577055532056909773773807085592409504077041757257775884054559650846366803730574306188179932800914145720458401153304941089448413218428580659125801782456162791516671182501446446628230085818035974077055307625590882780384918387699539083829052835983514148959561658793678053196372622611478913752598422381977685483494415114179962606817189459175826700731030959167121696595388203445320956606255000588194542013633395900307340201182411169196514785323781510690005407962754115859719036214723979344609681140128282210432398463704149885559497558894363383483227886667283055521266618736871461970803131829067841450258995252387174810331418445950881297364427644180938156789051630699495153436104462872710533631667191130427711418998927377197418521045579387080645533320706294372319553230499752380152718320902352392467708870928585484051829927376882623855237356887717083320322170743803529419964027175857174842653815868750023914335985540278736778739924293727998859519770854711867912362780687345041670930093399242581436627418461349916506426286204473776953456229609446673834174146767168938337582351382747875598488985656131087116677853630713458879518386249325509980235527774402340052584251962968105025990279954877641855635917994875965713200891680260096923603584195000436795336022294658963949092140839318506578280736077743938632084072707307499772125146270272834192039908090882841303713738573578059885000403582444691311048983706494486401285004344107803977132544686113531166981180938419617959210958145384132640313011844644705256244504976233650132630255883612931012230124907118095198760447569753432803153869554825974183681963791304519478810382547007432287320171329659302956636253260056401967607696956580079069658478572688668348593496835628714484486507063840798487850077589321405904376910800530898088349181821170766586499266031881347968680146487536156208543616746719754033882529943380177146517391427848070570722445625849268350868946963161510630086206332144073560217284317540753506622648284678761148751834245009943586308050295431527293491620294702924059352478236153202448611299151174471390740162829770064654269439715567431458487059893556784565396473295860576611877853225227810088760725095052706523360554221680648243868175383802537809686648195223404641477607083119832434856960596025864382497740978304098582590498602018391046067162705193186950624302689454312838644285506274858479154562989068368242591404316611605832112066855628590212179871020468891206411503772579891944618504986122769204293724368961033582383150754337378770591101084769834207845565789670827022498444271694964751785981520988895887979170902192713780157302760926156773928691469118339627734222522979387207993268232999370340776916010666585994233305104731129951633480155628850592719462777747279564765100793151414132948865137722969663222911901733272900836593618948792276990670062543132754545680435646865765635368431858460426781841135058629787721580328786870015128569586058103635130131539077064349104198475416078830388287387464274807706756021224869297505296553711322245240481573220503350032305764046807922411661940878566271110451398361819932851885814031026719061605478503222020816160908377322154986720459556923601177779118382536785101052001737389176823936886535760218090469968038440398877415337120527483840480041215574189842997869717753824529012595116536347999558499326714578015189058556753828693105159666586606921502488220973656874627592735849411493658187385646618292904722948708879055877984466325207673903197591703395955100485905744733898884958813110856313187756575982197825581435386807275425111223448829021084935596448225831133927161283491617238017334416203042271112166668200112548245331692231528437115075680043446766368854920202706270553596205173066144551203700635444231757523023773166110034457144946946653908050392259901573340602457110048912072904599953362784771236042418004801374558261903866181507189099686314472394670411118936765187287533485003966909389606631213802174901424619103495020776842703598470421111028546209765709115665050733143929607324505535374445294742861061188252494460381574181594039418258215974535860025567523934386047754802531530633468032940233088874820252892507902366599231402258089813175616202805666684553597961456029232383270341738168236533096959475794787033193010480877570677728563874967900969296412777580105326427021959668329851474343496421352756395236646605016447052153927213204611348045760284784102481059419864905100405027531347376774794460293188543227080859231892151525513060598544295431089146699823058764214593256533457986284425043071760287969427499104643436367691406276345065033809899748902655717636902985273769411069260725405438072745495873237554417925204939505730236952822200532973517738691277276881942719041648468080876819291874077968982559304926015587449979638342461002201467234303364778050653916836213553854715947834798224851857870530921153675463976810191929251876906826904120584947498732824403412172307341415944431104463332653629370970156423672803733830506253009323840251639067610443152072350614136256434336267893635827178264270306253533027412081496363375533630957684962030474720868311112062476320880592791069346685213077409365086684258217435703418132090393926368237036709182463703931520545371086914049502257602788688796345657096390413865837800810491407318825680973506960879116675427259706190773462941095082183684182916100186372927615766613491267566681565498280651725498366111435569473195544971952394821946063956820550410762858237203106909416338972621250759519342897096405422443801681805606219624967752323184388993653896981847429658007238963622431666318227385256126362399012811998162192684113027716611209474860434717923970475540488831933957626622297269021481866859818824802338840016336787765503699226492859766498697661039619423527244661693784974443293381423124591447954990046813799332288361583948722319592814174832231078173862175813218995593964229361214697948185085634309255419668267981498791128131701521095239220082637085203216798312776864955642943263268204680589318930505846662360828518148367567936542826804054967557445133570092720343012091947665368208545393745856286462449926933061639923279702875180106506903979690326458552645464921226248032197414384183936153315579577585486118545565482203658015206279826983306220871371324907321629343280000372265111656729114749379871404442480382774289849474313928243760352431545697338559774528421765200623162035965273539022200702255321878308510345712164424544442165699470993449249006718358080214991334187808451126053001323870867919541167942171335338910367626776856826713079499186696399228941205763235322147901804220585919345446804902757106942942922177826948506360930987540357946960214717381690270090558437608862675998933009769087633756156214517967708186086535197582271723184838107344391634940149353997084895451799009559151139577568098458401472899672942062881019915779659520479598423995225566940668876939836381887192318966390175918564888790760745882824317316419681369910505250045175726133568416192912182963983104774687035914175648339064712523633193442003316282230825142827784039451070273832235480031290707452214253938346666402070910983986483518810061417506895282507397481909953112715026036132670405481782921412959741806472814928286652985633405659411222186679535994419091752616189468154721691022257010406865258228455930310281618192289608069100785915714686612755342192362122639410965654367127994788529775413940763363883084435876169046487508304901177620619978994023041449929578187009713494199845596191895036435821139407705924166797397676193802211906930247336988506439290916116322712982702771528043545725181409370182113840506921874594584800607423071586113463674249982510039400671252392570377916081434133901122983334459954774551413629690237852775405425556538908512162300398788410530462358198319120703421697875374257610287949341539066755173071493007057986629503591120397721808689749035448919963379532214719463143632266097343218791719841038146501666338135873999706162297714605962677831616171315944685287149505137435037056550669515228954314717889132586179259339115033888873953761509420039321793344345829297834280687080105490984639545229039050626116868784362763068052395816928069751676827606733820935485366318916963391505992059151941391687907120492752404198539960665955548156264905171621770068171657997002456583752239790292934300476559057589009195246674031161332513970246642288171625635272050950516873286360177698745728643371729004242614049610995164342953257126756423808142522010643284792928283249459262190758345492649777581036252480827363969915990749516339445076881446175891200096505018009645496814925324701056611518721734701584794130998582938296113697391848698594023656576181854510000280112791351093979841931175601785583597105000998384392200480264455138830275709980311989768473413312309481690349097551162699883299341229510687258176464457045992702946024808462991144746622411630991190212310863141986854521201247904668705841716104632348411756872870402006844964430695416599278503425761161804478117876582211444290387826082125663605359616974558345624451483804784417010608887867533356072202938534833239638519076487287178428581482001566481682434119867630699335505483030649701564014305721545804755315266034954541500284842519859323811833457302318304604673592138933922333481144565661938295228542163199379426337635129916432915963201376797883554052937569998484599147646821205981253859471283752975745479200314113055582733318195734973351220680475302405898082212580111362792533131171048097512650308140277000315957381902391954121997707346238710524074517639414829154711176968940152578215339492610318444113046959780359147265449640084318705745886408198694487354208741448497036315313195720408200907259053889269967472611569922460362224595145446998556119345980812686857616563864534742702530761237821741781042200412195285778142586701472922906157724665603693167352310356587534905363846023466108777082692896151702988661022248870774375480148227544591965360503304972581717217760777319144160590631107827289639092536742027298694373475147456560381505632571366025702273729248572145130955663535143477874343390011600080726727906456962457369561850170038101143801665348108797160117684523597321739805907193713989327767848626899574179217387966914537689870766349132759224410016693316396447406617311447695703529539368734057700912065180981880086290403734834197942464957565220286113884783365178364005010694809484029780376333254214301651935772137238855673748711883278781835031464925732669082622875915694990243174014413331697583385524310904792075155497374486518764827979329381794551266593790211590987530633353217682740249716537525774721199503084935627942055702288728585309431307100715739866052999728460778551320960226054882957714793603032790117705847887444280920762788766846232005346348414232020342848711176259048030059698960023912330334479622862246893748594823126508255974227258784821215797260864292970274346922703794224995752779166819797545934521072114575037281089676565182546640881880076765747704440166204347615310889380008395989015540310771167235103316031762502645054911227807544743217248538599533441869808331082461917948862505934972229389771658462683577997752808935008699105714582009355429640917541805322974983140627413010206295119238625387100338467554418872338198224283015874127729681464671153488717015014104262949334028816436838277048894596019238052987824500755099393900128961374959311634597812778032488822306679309922497861857638283191372156314331061398568404122654691012145510335900756032347757173870334467647082455683082052093598634245409270909282892129311893826662106273966974668525478407330331252591591832767972540908752102988126775541420949835524063116184949371734281722318511475578398211191567113894223470679500461688339220367304357517419885995962422265735278936795646761211697323240382659011602911398106611215246578255362112044256471533568798261683471431141918837360373931621956652429375204323598445453750330253267764367067222883507728749778674184388198137946482183063668243885342094434829372144972172990530426144110606644516040338081978318004758389027663747309705633712592062568298520360232040584982583617744704860743070880188832539597251670640056974724078958826787868112783296923475573103702130247461930570687904524446440082064319641902654336964469722421441649077506226837263578407287533759473904181886610095517678317588201284833330119321319255723089056060860159809685263060894988064574292839309549540877184533608414232385585472975265716257812961824456503921432601621788634153750810146316188013851863961613825186312644616854129765706115095826001773173846828947155315592213563500598021912860248318601936502906821546282566223023349589246286314511144762169455422397311322595635332423433265551340619086541846905617783324227382072416259141779079507015667852626153701039812006020159850716421259833643908987298298217369438128262772047277193886753963183782396733087689465874326640317185174803221256659733724409197389437188370911048196336954231650112744002168234495959630500846150832367188482181232845854710398581358670781556248426524574128779640664161937147643078066243773749360762877142326536984749462361893920379952678819497382780091378669965314964395784230319611284638239142801268342110855662082284772176206292879935108247593072524894559207999596717145107519019885142654464233768713876584038860708350604032439506105082785304640950581281886938633585029163931621897522131250715369640860096736771957447352670106141021647735893399967309539547307553989995229160480964860732090658527410963734974630046490098140232922149693272631376990835032939157155343339871868076603799851073305623900671108160953791149460913314425677366848789621076473852841900024754263252959453951548152431864631136639977674892524199316517262158772366165890149078849084002054496049821105171979504069310374241300321924783731371584836105496672540990899652906287658314089041088279637439628748781730363950330161405501196567422116605702827958837004099097161022735522652150875879137849226605979786563675160187632123998011600332420756436460154094714469759572280979996520768256370904726348574121517629804906520345850866782555973091878190628374978516118504526076361228521025527451128530018717922852764814295434230685390986018270509935292831686555946453770220567388423178957941195352627585351581175453398265842878131218286088776139124807224298080756918797011811216479855439287397145214930423471731512623593272575045824967545648685540700653065398773342700071272285865968031775365973082284563146782792406123746087667628551851063384142362270663999265080803806852825984423386929281264011759923934570752670925782639740719926203090259250384173915688670010240197355010174572753543331107523856872281460053852457636415952858229804639680499312447328473847401702347628166662837635571791374156007415866740307004841158786415767805095936197393557601324640325597675313705310813428630360269887226570740423627092875885869678390072642896673403464930675448122753730267859438442829237524558256737046647005087873255085475800971645270615221152460791282072829283462160610342790353963842358327550211205086010007173328801199994345305234522560250731846532582587474998478552682247012871609183704758368431440482140006609336660110578086205854255764625711600514435968374299556621323836649509281323206328446827272519471958953928548792615211453928773189363001235109827426838599699749260206245030429683309234723139753554455941325177593169171721136978714482546554256857707130242591840843512587554220416868725932012946016980579152366115577562135211346080778362533436507154262799824855727727768109922492766649084215003511652847543871468623688815194083280988597538997988927998332529451370244823991944557706998127622356570021438552357262451070432962982216550848436496119380501106587094103079106270785337041737970580216502890871807309271181365567821217966828520771124483851761897687588553283543645848344323495469891757847190435331134557835000169034731929521612155190111922872891642831407819816973526746828884944675214363482807259480878711164777350655716151775985230825551970967152876516349628030275599136673750445379535411302245309944715473966273359908196437338067301101269971834318594551850951429631775950252371472363077389655148101486579151164371709382046158846759808852112341334556220877861616959963958772596757043710287928388983945619922349706179009251423083231100612148664479461661001923117348551507074817759404700437497529144128021642350298144536765061857537987571620434997289819917252468908114997685069585869226904222319797950327015958972977158804338181924221699724916548019268346836661425893717830589471280584500436062507009456959815202126577824313948526836797031805437482878707867336518467809644067994431161904485412800959849110009601642507790649834203156543235395834104206248853653230199224973313330028050306438047686006450468329499765971396901815514281827651571154519644745526816981041105508140431612127855799984812930613829412959699016121794172002761692361448847818328250055941908006813858083726852001634165519088941314744643900419024044663947142616747513196523870041785267251813629674299655819448974417231939019435766409585704110027968506745174227407615257754459082608098837344831409424695458427676035581475082492299020700007556891845119245346285508580048103117965655141934492125262371446049860329301562846008562692594795421060862145998477787971726297276224191102993007703293472112423787707348834822383591523343939483651518805720560425157145882491353885489184200030845241853362391615031124121143776148844809379547822352169461662214432778412456783437321884010888312055242509198410942284996402359786628428001276136037462052752471254980047002341353634894910047894830736582131784379848354944756470765822830253145493732522308917120543252820504443447641342394912124406496114495013223811046908233558830083277862104946886725987953221345762019771706715859415848032200183086895258212425464567178848341622306075863041805737519314066828352268265866174265973991530828297948261922524273963024669979669864988566762307712888661845583085741802388258529570210535413948357576496060640963763164753707114363981731248018588847697172540217833047900007339351243996689003574873417894041131762589131084939049162365941197516723810658018032863121073839230954182866508297115614910638255512158460307283780835408733509958567660027213265025315745395023673700371323965228294637772763417683488312825931554418964790450894504192651736660063177692989550642191926399850202187788116106531549447358595680050740916128927501069969691656166221731796333504973677489701598681853568213608411575275353255478266792252835147271542272556674637898948483874100972227260426029717005802137203969068883406319048059890521540461841018117219481366853481945283664184666746241882185635040396631447916419561754595644097055844409734296110779902058968250634768347367838068478138117531600854468745845841842864761535415214413351557183539297756570286271906725452963301819064717114874262415961782893305803901571277101598768961257735221113114436589711924109549750092681640676154784306545613176499369118305026393342832310150477716361605925189801104845601146436085087780101731672261132997741726053230505760241796938039241227628787693231466400483766155589648523029175019217372258407782181867422999628965870771654010176343311890184710319745778525206469397184433387263905483193900890789131447200807599007226970204892318857029818066791742552743447967821265041909895829664515388517546632217767932871483641078341682986448687034775927282172841556870574541925142396352535747276909148289209265935624368247709316742050351264728017156063764436374243959334515339066424710681586915552062305793096983314531961252725575134342835519693206488797529378911949777316548869190068431107258840764926467917605874421631731831208552478943357305734142449571172478129642926325509386467082211276325109296571566265600344233329360798288576524700713646442064105807407231775299299537812084880120739787755050107396753989018406309586964532236441389493543891530347214336406223712106980628912185816262004113489673069928203868293125625935515998119150486108355148758585015825161829081197396485879538233895500206420748123661772251981655494726983582557613899847770054866937084713728627736189736622646520742452075127909511514559122776258543142007988631182909764246433735026611113565793608318660830346330902687579381940459831660618015170246100517980372110050152674377771331851632238276575143902904975783161893244882024259317991270976159560796506758702723795749600672713854936475994118456517083499768137531363325847330936879134852755694942232873205441629855054876108717673328556740191275767972972810335854066675513056134761360855300725245922511292950350702781675506234854488235993153013663322547875783288707266537348360246531935092034070558187857543253556943060480138200601883654051699614919779787641538325438119884953956385414963477476672054417775625877954442469239328346174699599105216959484694641639840086343592824491808307525761348249331765628397674977083563718334108350754477065857757044771133449888132854135559485226193389283845492218844030113144179830440187609538577034902344213888686706231289341125663499151070682591795063103350002832729375550727930861151849099016363223518765672996423097366442039245242334150007611335704062635338322271684338204114183098181472191713919866795109785351004537351908695225980724800907010650456127789031656984493133986043914228345360039640567079131714379264349968948358486594262477385799896696170074739913379073727840805013878618818592194844989897728418703400594248098427636959877632981497669953598170877310756554398853810991336003320342050051043713073572009974849325723570360816764189544940850880789302284667430751013002334008506506335446212401284977439989261594532012874214223817112142792312433638245057812507125291233547623565453022845661244541901951153332983887672462738206545925273723983074102924727710835181271502244965891683119084431375497211243777822086964196877222753154339204695956815693931524449462705101331833057612746619659506463512379339656207624035853444592896571726292871613796759931819775102568875771968867820942609513116394978085843552967425976609363466054094269683060838262438013303726767281518971942502600083847535781772998305212345389212518498814512771481456671765212658711527730354387326743934999476594698882119399145566662792137596445352892827750663564878735053088716947889471240906016260557989144972605840776827997811911647945459496205626591813313057591339923938804355403477039346957012765069332667264663656535620708832831857939770537501415204763513725087672758949143122628680407581045033032833125818447053595920687256659345266586137394245605710778896356670951075882306037708821111927986722823212022280798698535319227183761534891225616673117571359251763974351795554355531643303220518767905855508807678148340978695229001761707340135917722996016684274417956251018196143237320512308618679385710440706594801744568252882077007671016088814823557872901438149731753642846240150621662433543579806689882902098516519983040753790244116738684436390036420510312763115015205692171141472540867463647187749489447381316999422568694812744037969808182937131828093477989254381456177822447943694976023955354718990253652013296085916775822377795820141865180329157982496374692260729820819009717243160750728375941088815610205326360705411835316439971414003507459175310926122395923747248328788892662417113764564906978411263674674685648327723136928131313185812800139696661135822545105836016028940794051187386499118351533812770407309125777320577332821596828955747038181039827892698783020322884671453714691179507418302063706901194446944831496330881061437867280682711024431365845246660327720877253320956732015761934871988197698576084845083776311055052374372855157315792476094853802549139883261172770019150320677293592564015257287627062671417507531635659591284286658357716961960646390710894277860053262255556307116317081473283886554542019324660546222793181570948402867635008747555617641561520082935658374217644546619505827135668938316362551957411718181970353930621995145669249335519809376538746850266230144990295456602077888731955053465507781598643048863655250511287954307275965776352695690919329752847754257307433751246789754447883686452106831822533568473833396514371446174318382383480751978667171079194184111762400459007765578915625593848864497931337944908775447600860374497395901302511412398184562476397812675942378517663105983247693444021609466093838364895373129421315483331020742339231833929393209848839177877063077486886749167025821667008274232405664081909859309962672035841153775753986495615998015760942582033805169276902472371279198923795195407313555113868030453036320578853970065266721082025491703171804872862927221336464150187075018096277638958635615923942454958196508884596307198849012741029292583891070564831993146948971896895082953370412526929248827704759112822361602678130360408084549283220522434693710958297507140994642448796834168385845535316979136779719628247924267016584576575106846628629368560959408803799589581446479834807327749467115222135658889212128300541199663209414179563669716068355744018025675882169202430561665010760444558577479451618067491920793096574201721548966024815080423220112716566910943060264486922389375270216206589287933594494461971900525710332196459523460349142482402389197671178031284840579728288385189954041339370752660435440221065968817644732565682902708656944346183706993902519650314252063757740081614964513472286024656424374751013885284621781649289995261296645372591934910492375400746538052529956953042716464398918004440094641193282478337958603524077463767444064279899202601788747724490711328266929108298031397762651215943014386501556805672036614236936519523873352778535981498043460801037193315294678125859532106919438804561836272688149029156526422883860296301595412544137323580091444092931074884170550812645053525957987099360427459610221154410377674188432070594143073326870456478086164965634856176422244309057954715849604084020281424503776834502853159701342889592021947585660733011391840481273335889685865568292836395298074306161059748088596186953388548910948094726967268888400366859359208839905529981821155130530518158577156488605603364331186748746631566921568967407319573897083606488327786313953967408764326595515556361596495548949706571314481430027977467223873982808422381316661994861671020492140437439524189343072293008517651531285330545372924666329778564185601851632744965892569645041077968430020478723920436230511293938129764675894387223287383216737692223545019003410481569745218321543577492238714806234335917278156919837244692255737933204677361342481896840737306184191309088813747674205004644545047615679963535761173460336764070126436310091001319858953176785929118319364615711384913558862088849307105105434379981969795484784485150281730518993188733377526667014502818596770255625950589514258203369012001657957502569287812337117878511854038760725701113125899595918122769943640132758624054543688297296003865806272586345825061136764306106859810263990215128957334674085809422088588723739509363681585036598340510152086160542809885154200694204698795917869003999562780920036211957740991192847091569308728197892417221283769090239288692595084054348377495408823353671717793747324079880735583752623832535490670294161425469257991390270099799888037237653193583738338461582119298843636983481220697255858757881543970917176845201503921846677166147549931510492740069429352060728798621225457506089478701317478839348177132828328679151059617629714378423192993340842827079236076743538891527762188579236529680962654017882739822857709794815534614904008702164565200963424627425974202027127105024695847238118078793760032300106600617066054261802755386651038336980024535612960335605126534510184586058565458021335919380346384297216103334406990754323259498936289313851257329383221535092271197210367328467514756295865364915852608889510446045359985068056341642189623280555223481405742592693074653534477337254609185868045240340505104355322759392139219688045036375091728026659165192561430845399266175302245630640683104076696557739736251379104519902689773856294854769372800677871533180764716871695472053794960290310083974377965594002282463721261976433279618765985302477213876572074986352047051523892883856361734682516530478702383539440686610278611655533363807653101156316578231829442329489126027824738272205481633167566623403194829732470091570762627130420422777366906483007353918609336164431194085713016073030187038472540641451933431524525038219681904491028286560378698974793346654490969156762732083412048586542063277107072111233200757765076984169758544125185518004482642278586907306095907114737819836234045078411789413304982377580535611440768373666114921472121725437037782433507679203543416138461622167711439026530876906744237889679990975549003955721674617865208197810324918878794362773964095442015766139352050641333135496835450748286744941534474275677691719340334529973291481513986001735745710525928732131459150896999007384001051052059213373661011388051976276884861369626086477714511375648509854352717746291787264310253036424572810426637390331353624005843495273173994095509811269819433229904449182414460786271882052752252543984073818902503298103598114478600275563372790744543881751278385666945071633042516044593052712189015928314803899299895538652574042806825730779256927097473890289230741942575021483814222120708797209679425729187854093913070566061704853520926313314407408091985827498171869888738485204960714728848011880145179607293207167602657018666053490221730192895071730163634886649743018823850579019401021579065530663118856800386291377505622645348581760528626772871736735319676986590298407646588342450740577234210603738219093469782607921010165729350255714735683702036148226671836872714282619121295110880305287470126672383513546378334800188157809174834663508326749265204518684677496383846233481499702240981015639160964220557568035484313832018196827869947626336493559482532070150820736906713579524917613025598410194343794499722032116292552553181362319168020156631845153064849154766969124103658419038810969188664614450215743723653368440359192493479162364455904098788509674848618266664883356355704049215401560196022359490099366737163674884400985208209213780790764283773919896403865425253452568349303682831929225552992091315347358788395573094857697868955047569081896633184508973733208757337637813043768762988173269348745745840887024406845702657352380601709782723972423284103509326120455104845438026394128247631260038580471401524627792571974797602028313810517119450546529657947427668489549936239532444643222171516549194293222395682159424291481822202214164992305149477354747646153569292083585566688798040724163689510669862439857888290722315277754073877160285503650353001036454394521769196603107403572381788579232064613210047435558626559634656786951884562374467080678663827182391259124548979565516599921126650169134910534999585435873112633354506831964079769100273607207933610240041311273216466094907982269933296667912208611003063814274202277294603870863078598513571519997620501916815665648261904672809547002381139326950705518991408456870923750728269876132593642379343955469549907321763457073206268596357271930186687185437205424393327692205408341605575818972234384121407521751404736137067111609348096116283099658488883203325926303404754414987414713320604098242782898947269465715823217023549434833944324475380284324174825641654705050668367823373703312899303044434930801478117537419199590525820288734318144356714243924676115175901787255299845897979228399665078156330830303755269036352573868733191099990154760171853211209869856667385412679347782949452147110560971817907865623805539088337089193056904541808841121754114534602839347289650037014338271259363123171592795715531253070753929469897249564956373138366523483579186506699257678000446400282852960433137649340442454398631430260425502764314861841174408067078039704142553587743896503847541933179134027369914825429616219275107028448929411332423244594120812197766779582432236763829236900540884368379714184862994760105380145659672126414633421107249813639029698204903613612244212129084489334289750385169202296181173460693156827334941169463948259957080408858881525943054531285833108615332191046516749542496365847365939455002002035995282388564027856162723176179175318807066505846079124054038949262260959935826647377997561978296326725595015627430132637908403539266450984041779041085475546142674034020809902003642108195171037488790631099776057298910057836876458438956088935542160722838576980035206639812093105819372993992225810309129065174346620065231446912536255108932750011612989102328543357454300165189577992875680107848771008955899124638707654782781208900208677540627276859293685979855701848836451901202935704943042441253399405953896645998970114120061377992252109857894031585283239558799871164427410667817009735491728164263444187977390120826521467004134220690984674384053045778148249515815484713649158219194524730470218535447883000770953255402565754551175874952668345734768258379226691883640540862579335920319802282293894152450662915857506043901484282042655825119018159221812680252358321662029619722420518984414818759028744308661350234342364349032639108190831725016771173242993324922171110307467872377354298357421555991273722180423058889194624336801237442818921303729586050477634849945077120738298749114981765409028805730387416573948884552905579729556521815527037511913203012808204674474260567852416956024957015206848506965924081222247163269954457654279822199223606358118200073852446999673199738722831731052631285449882045020241860238688290731312519968857511768590305138413088219061363053432158075428871099446337232724510406999299983770539432557545567377365622745827459260251672852230734480039103062473728314777913703709600410049062103819057433141422138994682787354791067685986963403088986032509543586749499455215265581922614196222153145020604430612086905312075923466481990408000529170324943415835956025209162410640150686716123559259452973878307728104681354115032762075659163731897337703061666939953811840394230209650846618578659318334027944929184246333336820304740987396931159781958422412648918254653855648385517495451995657636170660383326477883226830954511639785277093420290947001229482039949049451489669435628104703158873731340232278275362208875019157295114964910782933842579212458828685331149064643579647133618414786737975327643410684189994459285108081616943340610992305932586140484524896887801308669728634510622903023971759964704590770874635887408173290626644800563001952468885914769922994122475737487507733492508247700638117831383763225361096470777670383919078289987142655101031841880943939984267536816694846433524129096126770025079997668735746785624277335737172275830837909479675716282352988681083394940943590909461084611963932177291131619592934602238872480447357618473354516789812002195035714215805309930672305661063751417169965171921353162659491435871988641826954231577538539942487650193153156957390571022128576178645330991767106391007980796369816602635148451725633945721817648969525899051670498526919389954552249941351514828860107066449016124278036078414228505425512424613226057144153090072173631326350468746728881278587100435148424070946159369416510057837138871762246983707342024660616644766199832848435605384036654874158550717446671941422197585423841150340981987860420052268997423413935338325210953324091307575605738450630988173881427798763322424546576293887403968635355272877783966616188969403033327759067767710209516812845068626299597623735482312037435226418977220701612874178061263189810747601733124768326847038139900340959465403682055715187223831979197913382449415677219108978003226296849130597707328136857460959472936831278362589571990453381637523844043281049833591865592988494756957854657386439099272827386141784532371137406721601372284047980984603778963063997471884857099256218935088229742624334259259076753638621274315353138567696830700313239977545532858239097335940376622567333969654403336773197466490274267952399984655569547451013255184680361496037755266519927754071071167317559513455219010730576713776239692305326864258283026705937086960691760871196587962633085108204657244366107787006962158992227416256013660789584264068517212243876522598446617413084774460803137516193060796291778604726254250813076282374893800350847069153910598255291525287875415374612647004833984905879460288467130714504633352380474899472779619592088083690026270706560100496103845107976124389470638941130971802685201164063604010498342269081200394445501111882265403290759128427576877344598288748586113315744425310336905717905562404163872438365627319685702602856309621591521497814247039119775860484152262218572813839822054260639911765448611071576972627070777302580627521753010624079788400741893177731970289202058522829193587358936735140677638834645493098533728586134445163046246136640414929296418931144452901828072339363188368555470439441544142644101026436940701637680491836331687073187233025077259901636534789547392755987068712590464643822054862813951195160813793125727511036036697997898317846203913006393300189444480791215835796959871451234473541571844358947689840484884525566322273964810805082751943837322157284593113277638174844989952841387273522076895316606307715643003594519475619576152471884909308931961518599623188658896401011800576417538511964444886411897018279757153453737642501287355179319214879248340056993604903058156068209923145552723869081490774265843283921631167243163338071401474014265495254188565226718536078235175321660196285770964972486591310010957911511111187005858091200107219790210613597167658760763121724401931575107925313438147361210560862311305123382565840116057939736421320700043440512714159363451532195746167914396564281008342450062587007625806040790291475501880620051599902683051016875903355074643598105468130290400041071040988987134511952876444791142165909056329297200601967473357789369917949752043933675654426731728480887897394226916793214283569877658597656864905752729999245555495596536658287268733788734387225957048873892936305605583486370562650234308111218203926703535897138969715433488046083459548880718392279012914753662610573330791041617323081344156153574739292740197852430803632166627538077785886054123072444834013268218683837156262887581451095156427183456655450214478834136027417901385347559525009558677710842543507917521552304859478895650780853516161140337894288206463422675417996467092850351424130121677479409638339214260674813814881978533404069920057953398054081770463625935801019093574244643970512045694064957098631386745755154685662549557755232630056783893642068768852007108400538586731779190394683284548265702469242347414704164549951587434000911054536299678662709367448656684009879653218857472543887871032966357428116128166197140680965863080387769273241512680705535811841978141145198157771815002071210651221607191495781528310895061882554434591788582292448330700525945362857317961780843319274775268538633510123842769015450727786334745505827320784380800140520371063954514680642208819387429731418057671641455206597421045490535439994786564329410200751582026257183515326116448647555832441928156485186046474962275646235532513965600894264399173928395617021935067704901216298246949492684081763944739810936236387592854710969273384712776728544893505156652353200691779476273465301939177536264455872544467754847275748953987370091342663276958801823778692062042213169302512415310373128767124040953536097331399285850613139490836528555858484587916797899375647335062754088891867389880577775718959405519000437200383938243779421162410365261412402456990548596571185998808031892632523200922609643564207361488513170148609066960771930506970589848424096504088893624600422877168873844381503231610716696907544258453242643951149349932363749122213550135158267853896592732788105378060323505650821908833543230176717105161465327863168402817108354651736963675337097741272094081109452632444521028983330499865706908270690861104442747645887405654480234879730108094688543436298752410084099456118699243612372189348960630288481719351449027307326219869231855252011078350190615932489135191743371766741095802877487820301470908008296386455492781857466545168420187680546662341078401210846059610270644091877002163595103478266895370550009413113348925190198315958857745766607184359057259636857896887220704715578615904101207360384673497223876559323485740894461857497534659425488486007520114043428554198685843685140153228115798877504111589673506538759041475328453908667484744934431544065224137798318360853747131806830836794112655206865806519140028977163376220908962856171244443569780395867958171496246843341406078685888473811296693276173278287002840805341222730303429219374183522699654634190437067820053589089644955530043551437197378411984128817884406120183993602229181096109926606035790256925287059954274696124883867271611661933448129558874292923179828695070718240587014865489635616035227142318679744437158180514689320395341192074620060266485200545966733074930625111386816338707257263041452889924089399786521758650079302256394045900489617184820785381422200191823513674720166946860607052592692645461502437792961783001471285456192804646892470575385499831531919007155335259316398556705604837635620198526308408433308015654162832608097322097967882026816287066771835737440816098365052329306546759877313670523615763663970133770582876404062663578879232005355754387736628210380140747593377071282940609819852596145140247826933021735890707001469974896046664542465513621251458956420255633846967351682222988384935951858346845085689503765802435434611875444357867059285993618120270282792764862519226159190882143122800064811357885017767475212806232010017444268136253586339885074950463641344561148778523204367208218340462397425895014767189710965172439740378666199940119920546748279757812391341653628522799052677689630021296667493208055006722924926715824097020961113520762980464664498997948287960904407937011009269322155066054843797715005261753610869059179088824234886993638822081987019338054888563811885840604435819661285591968871219261904483434478908742888222015420592064864669055406474008955880698506130294269473026836537576211215144351727924661676056776091071819338753789446880191869866555960614210957470853265214644552906089999531869384316468434129784889909851522783512627473197157345009922604153494951958733400039731204412873039441271166328913845536426676574973296837169319349397103431960144405839217673855689219038558984874927185791097619519003176528895665307400594376985577685795123481912868989212891496600210919565629105634943770513726434437312705952828804412459049644396424155819745319764576416553154963538373815046373560775016950399618227313530255299663480509076234349361287746254384663206005791319909331825142870977122436947207729576831327020149119724269011609339814713444171167313810409889628028794229435005458113106880130430142609241259975342854895488479830493320453703914199027473859427156497008362575630668809505072489904026168692134898118950246717900854344747875741086065513360587219421210918062660375841977107854854121454211767258238200305504324967035059416259825803965599625197479082631607376294490180558103111584258768467359971696408317593543000598838739914614839507570120022965251978757199717876593933585373648859084378323025659153495585581052417883246255552519794369424365874436173644742108930154667559421822056962640246621716345140461496121487185718431528637038328976557897736769502270032696918299411175451536875714811161365138990394474941790793574080929311762665950652133653809116542060293419155479283626317084280363783368960662830341792013655417995228896774188808321504931072332848641312331226111941452925827643554279807508754140566837120460351676580618962143033879948971551560595190644724917838568708416480144301000061413255144833855349391229858323265616713129885016316420957768954790690517948472314207621423511703764195481073196693869352605340185413359630152289845718575624640301761507444935825474519670957705072962799289504238500902891756487513405314625248030296659420003288001599162485004470338574728232350624015645983786292060623043173586968787177724764797492231215652063501986711448955608806004630827747433750856812099238856478240708388163718473122571782084317442326936115346456183888551237945046599602860991903982709046683407739389764649702827968544341997882661561366777477147739434608989538955612327717928830393919548016470466599646928369564184027994711404702235409331228023538942923631263909041897957599150250023000603159152542352006187895451374514690319216853942785866988888302314121132568371894641206474365089331139774111536561370646477788933709478505439231796411749182535256210739274141183792176077962088625250631878593888619395355385636912902456507266495367433866377620775558723252392595497043959910319298043783536405674162049073762675908318097737845511446637588102613836405918307428927578941180360214786030035208360832997180808191279145959847099497308984495090215197850075078588395352659820875040791585273615887577646832410491414107120146141293609966749700941234464423371558782844976056613939243876510986554204717483655743943405039890247832814379437656842625847161223126509882863525803769383626504500255494708428961119794107301081606932416768854034737164624863957605164918176436282243043707972976391598144606683615826888913601088151708016012646974222946198508987113059831322592775740134762673065264329608682997031521407056224712855949959125983358737321093554762982403809451311726908795603287019555859596559045991053184815079540399525398255546169806123866308404181032678772201119580710895379144449195856642109793381984925799607123305631043987175585041265532549855017522784826040963218917869978092499000448194739639633245006945032425634701407191274118315735922373967184568237089123831625301769060101300911520653273028195552525124310417966426008432969512306954687196929861625116849598375255831788858341965957759991707179585262666678101074031323992431844012795641743751056130273075788575906182422234306530217065010646217645903072980121806461743518057956122161189108194452950657332000448484905473503572278886734943329267794586585290568604915276626104638743392011658511209280644284634022990567389922926726523131234928358524020890754873767885615447401395339479792060639640525898411342893822318908582818306108170150883248578398314348941939533489793119770638369624937068331476963157159355847039668621192137640361989661909199584352837008720032129732410775627624505461893421818208929239310462322776680109412571882594243839686760101080035665044822231654404808676980050473999969323412462819510889307070080491297652809078852603608307338331285799561478116361447479355561747053397632124567107138184107362546801446557613506353315894821111587862652127419017522086435193813484275707290261457935712010042260327680117422020408978417228769448325355334086625018561221886019145017369925656422626781426178345917139102466017298479107408620429629206636114525275752816057689186048590643304554711080089445594288169391339423434149058295508250958254512576759981367719244975307234206311109931403864835960485296460616325560710361825606428885930488134365735372793007353058893002788277735171750238249666675918851130869197119160535628562332335206987637952854536975715618309139812630036383007859951668607874657917344600270118907771255864674141653589495058036958130902386848704513464450869212322851526776675743212468464115873210145131345357284296187100480099140146034941368883125648475416379177949556759891429262110771633558271659745691229259349242318255442848145352570729674405181396191236227543073055015327416301547838092192832936917472074205929917174533496052188162574299284084243971879330307742149856388145701366061820081232816460354268839035915250500082362814741195873874567677437144371453005784807399773888179295789500364844245710981353907074175599547816382820022364566187306000206578861083903914252114052340088479246006762297186868384509167528458841169274336807078663740915770124408236689350778652227225637011889783876182076793051104249254575198685839001683193928576350340367126738744368810620001637690584667834019718877179650621991030876117040070174518359616090821340972664012383701998973819887230940648379013073890708436153272386507868710285618757249657564108104506952820196819475178356449745769245163064388531946872332508897432132859326332217536335407806263743000669353319568974272311357713134817977394398595760047207643496647322614412511276705977570671760073706701863069633835838938545256362814912258240714959481647282947202264486726854163669892185263272667057669457178198026683838793904873164378197847897710131110134819983788052609477081027110986591482240102950024436421969495515394498665063976946086943278838960205613982303974575588898292416647311973513708809165383990889942010606899269621422517610543062033569661620601883752923963931986712688995358901914239941642451338979338473890587728855837865727923905381226959562929430644154203755593845485515057507284754716733321244677108579188962857183821206995533003909224937564613741668334937208691847867122468098866497832765221800969744984845629189438594467276352948026475454529766423503130473532894990063161773429084470406274025631425204949600912610811477003642748622950364267441629488667514661285650967983863954427850583721874035752100170510919652936740709569717736113381410380385899890482652179066185379431659868405142084016854708449152416629234338457074558202657275714137364024475404865989627462345523804089054478065367876356558072225581805743715411872758317548952643793613457538141464060685632977144424963782442811738777063653077501107520448598711520729008847166098186560750470944617501010725281643315670350273779567860396597143442920437724354569722672912587323251932346359309829822221896214078032497907683468412321307727117938533354190230570618313270878498195214045358111047264371416769400261003494299963022088071059193300529861596292462372288139895596767813878964542608138651585439493208864319336111528020402743462357392648576921633107314779224869939680394859277585326296598447223799417321615508059947366932880550923488128440062781778444862646147549462039114066800481951414178648112381721895275523169915690410429461487944275086745570909397186809250843923810422828045528146329078050165449804889417697515974221378833180042417282338058171175386465960900420700298140019014815909620970307164332228910094320166613406865878712839039240161836181982577417139909431505446421588753439572182632941945735969157662181274067848535501922262413012946175558847141607324962866064152140366085142684102935286170560598625908965223742719310843332711744495272442319561963270668397053125079748266855778026643289370822567330491738535453646889807838390436687093120951205134072767475732476031063431132921666106866275333563712180923654633011522079961948469327458406741180603705561949398215811507816154634280079307876839141166924982969047594733432530607340531431687920306070196315687087766912622398959655299465864749988859017696463642525336056735997615845552296196983664777074045728344252342396425280304196202920771288483091401815680263092521774895703129607254202103505231191430757474025665040115308902248470776700831607508664090134890136865536443359310951451260410883847521465182930416712207653494596899854686537472925551157321208047210532473440147821061005689890977858939531837005383678586096271022622091519930234848497795295682201671826413065537481754109462372836251248333357413335659195251445384281639079912878165353916113269220513982030724151969671090026545192045248968220767029040892958621942433899408517554614113691818791026590170652148095302066524649973553786594077330138729074631348277024340939023333122536650447249891559112943241818388956882711705388327562275578682064062970221229123428387585263676086523137991270138454473463701651114341499294908423628970750442982943866137980949346990522064693871772388418122685181895882211261749035179445030467404214843728766696377455137842893060530959298136227383395915472406073449636404116767964729580356414323312277565143378653495958623184760371024993036238428365893780499361664178647097762447750478100569775444058588812914459617149276400403341430525402741903887400647589598954659029546454169785572261063553109888355990388413455268689557916181462016558061199628924000553918847038086068688848443553454595362551479581975022790018679024233301583473079704191113169191448251043270258010696556093962076538080464126547322199974284942909095159400669225160922884511242957189208838392992156120940432638391726828535355957062511185107395583998816206189467070423039048061521134583619423618145392951256631468623695931239712235889989881929631324273862620883910732623183613925930272924635925691900734252252714720207094053860398671180518944867288563652478532507481529389434782777293319491180270504823015509978345754865106658157887933689721140883417439880169904246351791157101154986812262740862520297191992200782263287532638857706253926294879131344565949074170902293617588985878046265677716613589268038199490102916376037096282735946186554619911569270693555295741729398749558036228634284501584762875954421067103482767216172728840572321150032597493510556206360416564869614479581198242522029335591078885081942278644816052613157739645239524119527644990344146657926755847697871111733146433670383596335199685426079218055624469208260497271475535161358173460266174387468823036273595498618909393532045070134565514381173624625807032124888295275478876205189031425889821072902026743705291571479118760081331375726830589664792137734309558106379594087026577425701860819173158793901384080485992936797046173345701576211395064774772816634499910268802529216313166907881970628821277704711051329469864978915535043870102642487455966709908997032702917996661850960605538734528295003325146628701477431026995932783004840036825655834499803534683235832724379552093906689531723591225879498258352998931610540719369838346599870102421308750596944771337335113273864287913095480403532295189990586381942711127797790700587590448941881498007772190539921348601135335709236082462937519896396581445716933889975298220855649010006838220259491997761437064291201078427713790917048407889670154034164641541054459181229860611112969984573199002956480128539760726621810945499077199571975257925782454837815669778039018027424667286764537010859041339562668362829848932313655031585817536962198665914668090207707886139258801318678901637887773918771487098613146554867306741935857204358381939449738716344076131739943621851239562135807698679899292899064412911077590466432144527922604983708921709491124978069169167256824373162523708034250443776881810147899016449952360132057352664557993445988356838452744595361957528771934579605155268928207606224124843084422114338100052274296597198379979050458913977165827540565214849098680691559404026198273083420191159893997281651096683919058161517859220276737715520613196482801700006260036267817038505884979141225463100369948702743370745562674992908409274686322633123695083301124988197374215857668888105312265954481331060779296941856149767499198685978440528174671327656712984615806070410218150004338524535580897954822318534281521965161388741083932659176293474081084193515639692443397467374611915686301753983455098520406593496932351021173557464150801538383191431098813214957965721568045233034360368289148526795541421616650307876069179349695269290304088463779147428541180593771809877611326229830603915159298435247837598590569272174717610717336013976661241620240044473097263529759290448617811452462691196264044475232498790235386465606599513693319224372761440375156548369291270961625707438084399190945093556297462963431111740047940655662396129174050493943441561705833128817814676197643740884786588433309742959807664590390780353070905104812285466366363647168670658117303501596010980437136283092073286566058423981954442190086622548643489519796755887591271013275300967113871014180210422124987987576749754684824586676095121538654453705232142924387662780686799342093778183700800010308312014527136445343248522976152206738537405156818808077400323510465599460825840624201718566252359106333207016657692842738261144683155697661780804288802393516502667338592416332296428893864256621182486360327732099961147396284329243492473246345727091409757585768323735398547205828508442773331802585614527649918390343823602873208189199056044161147842695026907556911699595451647101776405667073927043825419269076090303511208520521417226843770729685953262191763887536493573639628205826740086073757414613824226069789721054579488759924027585545001998485014370231861286136269495477398388245183384032347001171234028731770456417028640765702659293889485458258774545698381726823811548013925330645025728451318473658509764743968182278621596501625286595314097331558333921228828560489026306752214807261742444313837672430002721205013818698744678150582339562359802688245151822366488148195060799228902532238804085813738253438864776048627147919664479665830984819012084688705748536820562666880125697862903702758304516458371973416888972278913679921597155701782796242365042430036434005863598256610999260592977337407983492895799333419227747195295980025914761954655226510276669153744653164919210793831576864826762854254069910843438857294446552428739837077270614437645018381836849167114814396827044734379124233391476153876954683427337397538887337196944663946326305281381866039450200523695010711003627723109250165881083000682258819186684984309949765099254282616576943830812701650236909810293208764845836789042873262622487343002466542363284697006531147903596384073815924840461485268419972220192408737204795982782005918797470244869821327064520818089530637677903455025169596421049507496923875252748114173488331144576987337053088922801597407448520891825688605034753689343669659147219523398413381310011158314555565673996707256772653123016938067573615373296001034369592172241836746848378648356144479015838834915317011422770973936040801971079265487723264883471628755666815679821524229686053459094938201877332331670833962909767180998726857965570286713114287589744995480224238357801886231209680562980224571035715663766217538572408799662187964241018424862233114073540069430474303641387504678357596226422895542795904372071603262876939661118817795742970352413551197423788625450352180393792611455805002589774376907937764614770522434124757853135468749927819133159216422221136759182175623892220877227899957916155688320597108977280600280456975021290054507528182897831040257284567903493765265700989641820575171639842035506018140432942727296932450180699415467689364118442695107569611773249545427776404629896524642093146318532881727581148563662153566906712319333765816965100686645843060219873626514514777378807453977587003801807573023549781177626500185192726284254781551371275604104849067393566414210509793304733768987927797964436095494081022943498929899951225131505161642729812058853686903323693673028069074015409635042631602549622328017723913612704071297151596355409042251749306681559177990061541344685013760109688815388332147468761595450531541237900494395251546654363080937559752919953985278751664035578719173482578096718619218265702653220507966221258514045522503790996687541279473142247521420967656476542740648219516121769168885397743740176934256782505396343623697207796302440064666060159238058519322906785801883345265486360126654513314123053914346769790027457275388577251858961592974372315786377682115537215824945875633074271525092150262449437204258628608232425076629032859511431442074810972179026659048126048508750983086806956126444966972754276072560201366785808850357184603475055220782613432865982030740969057066058379119557880282155387706196625868777087554812450236269574987072652729324309057586352358909869331569464525891242341513408667494106966325782683581028246741055788128062921215593476211114350094367459175945659078256882526345791180511662002194814714084126328279295691938079279036791418425866557625496080135168236890636420971641356121661042066407477750406637234187739188862568987934715031785903628484919256701059891793173397913411984880812123487636468547464016372090369787810795016632429571161196454934618752626201764290993549025969818294689043905479788281075631197871333785767339602218292225504427553819505550758959910486525265746090829862618226355961944470425543981809888829462953131113867247452028842073872189945723113380547334899399056275254185253408929405127047419045169050168429930762987141316934492943275909143525844855256107060335490953442145132973474074168769388742201905623920092938396838015661454706130356073281267755661418200553994636409370475345329863533220910181979326161446562966096988830378465742888399059348340074202602812694971962164218463148008995065079774635256543156939853016460121669676748839672111371260607091996290264874945346569403635633003332612286789150872636380770400016421404446549445652900216794632190069099347313035044228970713753186595590726823883332742871141482547478993253146868030645562906773002477256227582257448007667614574874296030395546820868423980368186286004773741970418907043886481205822588108171521256847198860201611537882267857811772528450774302311378419100132914209849912482800220068991297688776576845826711085419138401896273591360541859055510586325775901947783803407997431158433951331141006599276042428489536809616427032059336056330364454512581628229936665205804729737948220513691645225931430685466335453821627085468876736815280694877927557033581952095549352287299814900865080483476566894276095236427303835080768473030627290056941885116890005447683672510716180235489833480773745967571318303987041626454283062852773903700168309965156860894509328850493852488978816029029782518536601567622625798613564105278455411006017660323263775536122947893278656821304187828612275797883718921895418174090935416806132739834333265363144098066719827358059889484316095529077252689289274052255799057137789123650803160055750702502605397778562917566674924007306308679310422525297841393681655259505016345696734854260475748154299583493365847341021099493303098001682907816955950116704085201867793787031499762219285352159904177099152398713803147421079245586692724874632001990510233188204457754976856078915953589390964323230998673584738373898604701958195859821689386128133339215065383729491304716370289790138059406774338419315852133068566009790389645760344875792644385559463266119575978592966230053514829515613425104468375381142067424244105240539164856856808394441226137377498533671225847374715576436094886810794735097286641624356306296281228406207975872030648639816699393775340132030629899587067252099031723001935944021133430390296374411885183453966688933839276246616483292210322200712587945652527916043712617071716974758758255209352951607864227665682533683194271758258277717413371484944578435626279535828675940173296215043956472706208564611868887886181179862700396570370526632393967613495561312416318562180250505327246675406351060657730859682835718795121084850220514464606070097043198988648267411342110729458184769934507211922464539148415239599322369022095744147977474081397150111646520183024613189496354408470534545978384117877659876628430423083052420718056123682655348627442739543432281555624314212110215750606255830410133438935566800424981929109585888252787747547821847065414112668928616548035509195798478646672099793703789325959725817607815565397535607422531801678921485788237770486472148228939367489386409925682302089147128869796424824302733805951494556932492456152001135063589856290623256501337036400858659232501675038918367709726588325236663362693622306161505318636882751991749463379411622663167102129834707478045452110804003682686993386857499056211189477537416936662384290469464902258406812698206638408471899173316320440292277167478659649372744400308814702010226027064298458620966429835754688838801462636412709427727173513852742798204568439228944787170578151361570015274730406102237029772146042674640068304175078273026889809053357878890150138957508884990493716027690036693079519875453081644095350506440077800513500411726031596869000906168926954732096955181632120888910754494895392175782360757049599623989985883689804643980894280063325188318118747155794366562680991527744323342436769840923729924212144546641038914713110649990495278669661803303181321043027537953141221499125802542382319192149859916278684259712695194110234122835438052738496790834263332409953796213628121265647997906186283682041619203938638146920988901773125092217363240589958458083303173078696282483229011563690882689549826106761616763541277200626697505614030286673660914611965523483041544441737480204674421993102705507019914211001572260065365903737240966604577067451615087798878134521417297277399602411169528201164647845904207543501951011811345296305390861179418983080389663883730362793748997869336597044594072872040693721922007910856556676871181892667262482886537004471842039317942615138089921794909642831931231592537617534315360040420830512997286656872097881310408973899473776827190094003672031439817993709580383775172698273569850347840483415384370908258545735038197793078554940064026535505825945561393212063014735870356504157835105258897285765760953491802997979713097404714018905848203865909618596790337576884205627075756174985834124262990875884914470545077446792536490569503591420829369823814287208586559476354536050261736538624317365502652934206143710512908476818636665552820386376741356408879312368101513664894992819783300424146041402664519022974064046181179313776484497973280757665209031308167818741531556650208574703288884195485316754891369178352848069247604511622558142993553370456006483972701012137433710119750513293874311290787410196430494223085224149928937306908435950684307757015845139677301245586866796758851104010100776036389957134412105175054340830269358759375614254664507767471795613036102645129322410276454924603275047520086099783077760726798225772920612964016211793850039396813748739866513761951014788654773320448000872379278639218234791221406299096915067358263908541270953556722718409323467035965071283193590898448263428732494098200128063443351022893940120808122293141575816995190095286765521758199968758212653856181658175827763567878034554814446774005844604029582884838522296003045351454390087857159124403933554960805830898543750349385213309268979076232602103261012722978238765284810395311998985701280724892321512658792419242719112126181878588274188357646097263788357840644752513307078636972827688497923747892850954251042637063168296288761294091597462812137372635283688807611911681292475365585374131686837998766136502267510130779363657583044346998830727371364417841890896359080501890305824298065454929916990997327275103060645243642330323466194197235224604364059348969331941182480772110069006327985989803738112367855721735388094250342104193487283210008778442370430752278540092492172133645949596705112515549256117308293404311649744553021113239753077841569067998696777375201976090246804490021959181252623275529911903952553046619054107487946496028363056829208611789082920355117381806046853868698223802051258632790135511991746401994743147859904871852166691204479069748334614695426793525998901575724462156570524578895081246247631065244611465404359387100633960876886289054410274990886787341725158065011506321771801293196774065906169875295420098334014636367232348917478379933244614379363640616198445596072803888130380285839373850053184303441046341483208384292965807106681515571041188722403961736466103567267927206805130048578961393330242458338993567694276291029578401786122531424780833881042815508575482455113314626084744936890474040136695243920332852023504758898461601079859735081800340979955036168188865150126415090019730375210673867313521059242201147993596068055767779624080307525253031259700205154071232512644269459159254066114364336671184466264429901721818235526350284574270848674166075967577653153786749911182685070471721204261671191715415844591455961155936214293856187026288388887591955207969619796358388221739127474078755344859418914123349523924184701350912638573329403722914686214245451368430196558304137842365331772417826882769032734109856972844730090336583017833657715671480848170401999171302968122925838747154525493830216729572635354945005962773172775112587258502357851272926129085588193142589006081434039330610700946458042604650296486094253352702109449888668743166521295619139903200177359433006771613803560170366907083871531654428446615437008010864422035989238356113506191852833849766391641036005986974379135667177187757022550329636879341076789190532004241103210338534065887997401044130450148672358293648605540270531667267342151341364344881609875261119484280662416917098888433132532205782332430745973650902376473216713182173965429217414596438920944757511482456606311953571583753586873311704989465723431456358851041486081223124604417571515284066308497959762474729663438234203262715881777389297952228373541614688615831786970891556239262610664267751089173563323511561051780220825401536641102127830976891342847763918584110502663154926860841087572205427482542958954117398632782767417409005686782023572991386853177120592678291703778126015819035277332839584555515457455151791178481227669152684372645036624572152522828921451795573683549466515844020957072923584823864948909442201836594217742237127702809214987287034733931541356234094626185787845950728988494149503433360980347072945235637189138876820599977939327090779263014244745917528600957883313208589621859186754904569517970151262111632870714807036955416579954502303990712808296072300558780212249683270611227943963069579129693858521677306868403167054505146865306953891152341389654049408598732582357529778817115733219363720977330149377211939955576018426138678225826833278913023179443922755308263391581501625181090760590659470186709934883549329088458903978823084582985308717291771654781183110124019361369147658277430299588530475543232190855624156660302698839737958089553670209189443829673945007636653150467063239638263558762129655302469659228657191060415898966711421426135470770924260335455050344412163641987213112911630388951874571292280454969474607829722262574222525266774365547766949903592765316717367091510236357783413981732977895204687010690036129819076974411956385145249329388257157848369265860648309423844457897323899932303187958244657269872047699586428868070365869273736372525063437902784062838187737507725216491653880625848527930281776064608803253921395360385914146206854837561149092848938564175159000610178830401404860212362088784359202942329352522514038051512213096930561041504224603656516744978499064240128132200298808205634760518249788205295187030764281695648347465065569620083363317292249748072691404512284202543069244020430677138038895616815827612889661285784478333976110917388629988392283848688241142146288568756399415055494992733105775234415687244960073054947318661348156832420872673293203294595861091914459904423649930543282276913834112879908860597654343507788616276619450264852862530911473765441179561865561045972846438503332513169990852380856942457068278501547972457695950291463776005733069591274659295111666126984291123737085742761901147280240134091918536774938955822997311637737301276959843373932143944870642045035541439207787926800212585713188210551836422482234893634931116004240675826497073600395208238500813638945290464558443798464008447075930267485754918095703724926350440019863072608172638556989220240081279290310123661972935113415827273830735112530403188419398698983229912722927187700123702114193208030736075261772828239803205385330030701895415554263075922762837672931276837012485026012863762516346513404681549573464759430113967452347490603056075589672032549181656033863644874071338963914323654355210470080900128458982847748522107526933718722712616441714469028179368752542269101521208916943210463957387190610202225877082741509201681876920876669539534071513741358990986209745764715143448415936975288877662851214607462934279341747872214354119489553247127707417492940454111217188873213969637384751828314102991903484766370526156383696308582347617372108855315378280448760425486740594542553786435104173532465074412066972285348822172936785147745049715893231898972218764966811311009754982198883779878563639249597266751101885418849742470947519919235399030585763821955565421254062474853105879269050271612467147077087583835206965002349137967241359152258567462187420325382364192849447827689534304016783805709392324765013389055571480439053312756899179934041173130979529770925140229569887745484804385131722888280764614663785040216808645796976990028175693664655312985813474438480919856482438438207521929835616679312566197261348564380205450361769845937662659782385149516055737411278149912944047759626644081103550170801904416088915100318399707870965535338702587467176769061035636136930682279048947923657376689048727477259131786128362433735510380204165874319375275911817478231738414810658085453632968187492670015276721985752001362461460154713037390653112804043058130384369318002196885538359875188280383355879436909444792951742225351366851362331633002829241044288096923276747775909099509047686898917367970173820933297077799314704577464407129727525838538392184177043835854437789296273681975354361882793397463379923318521106251868092854939829118550436452467697170715131842110343745526154026360174340164680436770229040684528828872127828470323128145074701128906072964097553012933411546074877119925648736308190532892470226982080375867930554721585035317598741879487569898062705299777143173111798947374955071705604814963233111496491484510681376823233309240280801783540296169107151621140789483177136550762397719297994844402114962315015894838058431184234207180752418841989631479307440436510890196371601415657674427957170282848199768651309612799016574314628778382274331460613686294256900424835215830039727352205405253701164831384734748595682416109817747477242386286366101253069634829744196864080065412034895173684379232295024401172549124323406885016293198173427840073543112415383989126020567383149384826506611893629551034797807819522961462219718409471575897418934177720722818085379479131558230305591825464148512383068084177450342996220974149709475059556997727941473196410925655143638778329105423305058281767755487203390604928447356149063769931842508800106164182020032334916516121222502551456681158403283503405254321086204851461856676577059703707402817281251993781907093004781452880858260283446103523725177139919300065678173822758436944433590838596021629240367678082006540575517195078572551592904926621748059820292547256754455475188196322080690888685482712373788885695555388488424987190941291845171362493011927683571479069719638384598377704059332270791938816535755026659756707342249124189794486885100829606928287861930689679148306543120192012485863404266143312300932195525836152166076044772040474240578596562606780384553740893296156678182095240929523145840146884808018928283499920962506982938141727788197398089536332797345880443337555171256031164353222412894473935329145831442665613072311597620558475573582536328848902795553124241723309100194603445673324517056724424182011031620375745159485840269762629292436477080407224653342712638086828345251693759417231679580351072730565711123314219645974306344537038596596923649689832491279950354841299857132567911767797741795845506835547701292554428453055112031301641972949635433377900974572143614113936767652439673963251666563132126799287616405992522643181490259084888017350534621637088428116127168576917894986046611967107038561554259767254859464031660499254970373759227030274874853606527561300235341426710162220075761802507003334224115545894708743142446374107423026518470435879638281332014073648125670358978247250627031873880624746906456057499318797136559987114539953086718917763334769023295647167787170448596459318395649633913515514633452433491979085259449478267274828947074090451060750718976147819642733742235921518666594446546928019258306869484362164311646811971552866668126816998797804700148703291035502034646827758641868554206516317994924732295298635227899420634557244152119500370424427488834521830718877703829632229281459250072518968312019365546174420016667342009960884718309521674195472683127780785561134903964896385801504117092365566921332407212479362195305834146835735324950338118371128199127688767114098467279012753269196322143446961271946950562034244265179716043851867080059826038108900477654822048707059996364955529394090074882796817328252077487324416616366957531071467566272727749276654819131543191836642269367805900853490052152734526577990261491038611674563904024529505762511032353829412058217789184358860680150500415545045073361424740879432591282999011596560965826697962628379564975469612752694706517721937916217592155842374016798346969696359124723130203309159207765301468739495940914620495106018500619746243280743020460688787702457242702959240335355394269691930381978260519823727021473129955546512239425746623871736486795098586930080214132060792416785548456193044079240426201031344568158215115263919648220565290494872561451797950895687094530514727004509993348965323707983514664817847259321605288850088147819983047061170501636394689844871005414503576699826784445498704977681653863448404602966770075730496421740047121647390270434972009369275420818827288449781800481737927111696826267756423483964521807681038563702318450616037399847560771841948649899052961474117531053086551993667484621927739821418631243717728828970008783638269790394122622753888183162754547034281008552678072055016086111942085657777366969506007740725697316506810221471122157014536625634695304150258511615558508225839447844360618933451645288437030551095244701548976899239840015408171510144875502389666612573561528488360409177340078503525018568021876857486625959967255706484592761586149142341278728478860688565132426077987776491986257005548425365729750775792983512008544746413730078276017657098685954166938747722279280350593154783710654987563858643786420411008017443808475932104576493142602963160946934248761345982127490936882777591138496351768867747634655697580433898125357800219038270524255602652507071887755692160288494619802682417824311181139073941465865375299321421467680885186392761708953101183049713906767682201447061455512899905336627927667093563755615360684677473754378272749846996828799129949530641103691293542016427873585987774871202780965901788063748512522490803542433955824917676846607912567468424322836410953076877714893317146379306057752812605768282587350620877686938575131620880612260498097834648888603131782955432616131014971827830519947006254893336502029819764616394272163553287534286316202356646959510802634798381613000303097884297646337925979913968611006748774059466365016705224457015610815833640102562464832117964171572184831033292777203512354076897095106309777098210755954822540796141289725786816739700139378878809003796395191316694743301768282759378027948460553869881995710583149625828079711442255194856802194916270519127406149944485362441624868262314914650702487889770542808005535430908726099102580955349393734749037499298984134086169611475395616514133486103765667159137107849339894650309785358878019618326861841355375573078028120326112076129088811980246111138571460974398693979048899748020291325539164575092791325243227694018937840657280235997221974444118494776518504451121459357738707981029268258921431728598365180626641595360276659620754080938132206834173010801028469101091294011813545356980320602961355849994977436528644956103522166643854869380780307861208667613822066152277956105860441623922771954609473099976194666102126747035750175932663110289709060447027926682607686215569972099035024815600096232170761129285189341078155256415273635465086265977273095879245547540657440008517770326317536958038144586008330262728430541790592274355931455627288092418368067946187536325042049142067909512381800968312185442989165605830297693470070279707665170573343110770915437446705027610082358382133491980990369467553490095929236474847257303902463551092165631759228989742393533397802972903010121495079798263184011599016764368306949066521142708892174935058382895890098282060930730636458684899375212026515971735448577769563331427509020593781512449728958594270199068337806902304663636722816565808778344111350499561278486013980761352130948132097696290776252153413107750259398667831763481406729015185662649286648020873403616232698599076409888725112066559091619605108297125070851554656201099349906695228191151116135839580234638359826645666850270501710291286936852157678156709717177916934653054393572909328166065367366032313704359456455543173820090769667141007743975217760737482565494340316712433834291036971545768086214717099987339125931869652693612425719598655354578014989195070932389206693815431628268529470512397180254905563849546503904542631634488160665957368237442680220545629498384751138637206221014905105688625286760424346549209174170304456557531850006387400795258834626798491163739153756945629917351827347465334388318847152124688214658141205893731673608727623819780515272474288640039158161354502093770700986823331884795301512726201357637789952066982538308970039050499928673006919981347885519112526369715012340625196485287157370733430359048886234341067685394180974593858087597617745214112270069762014687009484433912150730563894589205098329380152669805672058064315894145990995899849748278916076330065894670918652066363587110714088270324429796318175986209191311802320019689430295294926253505456411303267515039142347501037241205004109617784228304044575738582346082830996617453295149021978815339974980523057565452631606801592244059787168912689602790034144116172767422369561856320219724292282709823223409821099721096799446834338455519089684613172026393241006454496497479610467777232234196420128561446596013837004402333072183132402722926529877479225306731061116841461885388448568904910533083566974671708601592067884446316207679077097958094228783326213067655755541284036794943945518982491549375176863632268908142403078211730883207019313329507884731956685769077101437029931440016096489040167133251972610690258962592217976933711245945356514634202057355879348755478232568173192272413535989912498062937675237833027002161988867229512306802620722338614621735514873481544116448210331449844696488877380156725841064437677583945591692370614488444001085552352384377900437988756381773649474667641970575503815295854491040680359489451163353210961254739116006679562208888684076789267150405417011069234595999254708414602506989820295380844456677827912600902822854446692080265784883613380209681217070178684288786230151407278148166280639909613077088634591064668041181051268112387080080258838660297960313981754664577570133453789986327918108855807639184660194641674598304236900034124470842066786899632474583285824307122401775172412701200132985897104514099239707567012632015769835729560393514036173645588477878085824892912693385851669273102964557275016487840138656437870326086744224454425804289574141844162660566764053283240458035534048349130567389865720651096687441094839528899135344953706991707579350516656615555479115095237341353600600644901485802080463891427075642181661009633643821365094959966613898184517113998152634173528623013699469091441538132835377308550284624719057128608602289435549434462551064612395989759738886652804090340091953159674306114130782686008541307413949302104719877201352426523954485131311557010815324216369993763529387635214983349945417509871729599563122108421434335116540013998433948068206082304067921762980100429737471811553824085572574908229878817518702087584064477728649576621602241677660001606376973365654338071664038680214603487003356622907744024703533931684200268345328007954598798845632292586171498625504690429208138262528177768438108434717142712910618652878384492474430754998176141530611378777478244730697463714258114346370784177653273128642824937191210446608446643870001733707756663517332907776000420353774871285080373224509263811831847669808171158022446629842714604913600852045869702111140992328131603743659078890003964620435703947121928626256524807971438831599446295409189119443942751634130749581914663033204527700310526291999315301628204064986894915262905268303543855226849630702515906696850615449996129165719242507902583356908892165317016130785197309189301592220661052663442664788830983822538041912135539271966156272657370140597396507347279407314902987082453103836584770636121874688991793917043385204686704762681210929232992019696581412048713337913790060487235037770169643238892631274240741566930582977632557262533488328786570622268729872930765076956638013051019410421166369148680173322926505339266817607606074014493321884058407897887699801397652342166927880583078794993003031088022913171082844714054149026027249719000464829831099939992911265114340812094243505152722354325378678376292528623883557991876527038339888621213833673462480066279142328153651214534346781640428518375359782198689969299882462406508658716001585744492151356672668618677674859552057259498882848374322139475796034157860037056435801901816742571311705163641477784698652838316308222666308288685773184663891876723258354758713672798599114708164870864229409692749271388915230245226346689075102929382290468399869102256681859269586505264598371407691265864815625388432260403661830754411862300750824730688407117106847900216478215960377366676406340328741168183051987064416416069077237747666099771358942004299548268184155654536675943556612859358327570026765697051335765252731134958780711526081741140076668630456748475532017970469192127650456713199257067025666872166196437361352728288560336135931739843049822267969352153075588161314915763437657887253204068176042520111204883906987648766524979706520032303656222545379361866558451100240511171185811797045502448453023716415429224653072509940022196046845456074004973884336757400110251403470694513423705005117041148529635701454547221707304156461739334099643663477164715541841796024939328048060803991083302120022465268170568416929158069847599627847045238354914732480840563617772676320992648098719659784960682985857931411269320090842427876646612700989016599053526922012160174481110649664946434524222431074762608787713703700796864434763291699249093978121641644835414723383805993018050121565220111134458253617848717988125423017824097892923100045934013165860947546411767821291057450035474318784626012394460433237834732906608286590772853607645772668997132301441059168839462837972731347210445012173218056528415928431830179151563599609468424040713989665203174358793922316729212483541656004999994009619148856203067442589840903880016160042192102774992825561522527483345378891015601405216461418428912413829818808854206459873489612046724443809187654145850391291110882350829344140815064214782222665424141497763356432547635057230950772374958146706163986946960787051452317239723020406996625650365478720618114564740999523841453518033626934254270462323908347652131469170803593446925552046902822884995586352162735409176787306965653979276762173299513794044297342650104784883597316939637700551727129349406075098829082597865412160450774703060719749534968527226735205193956239508799832636001062157753137092851199036786351168912166880140054938221135408159634007989213997800212425677060773692312795260563790591194315541531710647304818716472834975772636550375372845741390358556456515851757338178600839177110165043928712403323198911720082257665477224756505144625008085558259203363059867223128442643968849402889122169151325733485296023565880240546690880465117790915274926873494806917777371382774412517248548295087566302009082817826789022119238567963482820267160544214911729374757140346907634988762561769652015082758036511035001635519490555639335249672323538679403623220499847035090764810062397399749547382122669980948216276981244649406071874000761237640712670395873391384014935446292480476740536497919351376857229275869899991546057944080721564253035030468234769318219648603230538537216084676140486582909277360008696328573693741606874961321666961169673025053432492927428314537279664931504408834232598565295057589918883142202119699091397160567093898866483043260054657055504636924662072988837257604700504105667719799916416351867390908144832697209189516045705675617703648430385835478954534188443266886086384658837361814305444590875646084349376702139547700155774893788215000025790685456879435202316890282309942942566953669080228884409584849695582195768665750760106657533170454855568565464368101686364803394140030734995005421019183389918623300927224326327692995365530808308238583245194635345356417942483838191915793925884118807858378183703233946182803071892184240073560311439230833167160484714348816322073235803858666520429641706264567752995256419193836411907225628157963211353823792104019185214880531961535855526123030482226549819241982223096659428176578937621282393383288984895318015170031583568326024898639482811465006672892393781347206424288507487806746496976821492555073245329409705635483499442511895845895764978366954132798335168283519269964289920034011909489885213689749321948325468985645190967975691758785608957143806363685197476444023591427679913802797334480150599249049795114812678317071847979432195047282954632111470833777799699648781611620971190091562207243096000714476040319909759623583316366907164733821534879528425938978090273188676623534505595753193606567018833517055819631033383618457168532688895612034845189667276509826830677621917322528479734809253595994194984658289091637255844421816074916783434854316269086552966630084023121386967095353422468824847370222242951486313398177857135911607199094349942986286442917765533722947617996511282308659756110198385216709916333597809782950926205821864209952999532188858168735287546167463544667570313795187477278924446796601020415274343045473716639137268023327473692140455402555750447445887130257092191233106504522231530795210470733568811531075511555652663140565601229509066542041212322056050541767290255229231198276214930343773050273593077695279545128709663614127048500386026082465271886217633014579561253072039246745133592886302064464920180383595135510915113495803478383790507134707481054183658916698730920979194755982044521305110609143331353902171862748255911953185455392822706609252864224110926758507133547487199616523660986653579219400012962801894491107269409503760166395604678176331438963257147157092829657638614993061578097206394495062043958349495592192902866105984172567728457303015240066175593205105727672140522631587437776385119067492830720414408705057407935503571503531222458696480647467713467819134918343109904171094618840573631137353117207625093074169084843533312895739507633502409306960352205388063237225213213590846630220190176200557107721182513575557029582405757263140493091782382979568338052591691804884259868486177749203470473001383331871226266511654111995808815485323903162831320070185941670767135791847156572105573229174992859001084214899452706843670265019926834999800768124080094451298327986915855048808764207201067652524817236726126170713148717877644115455169812680504278799227415669195347253928534660533304671865277442249442942628678191141628853935636325443208253921499599358140098151410705222833538654799583854318816591255346335937254608752684423770293696670604064940305022371298045767018497985636282141436756674220719985740845266574176555871270593245487385640773418982483818142911830587054958084399132747471753304255478811214028729292186213180352295297685203183297975727562420526864134700688097425507442031661227061804296491127083093408875090696377253391773668834283675727924478473419196031972152803717662449887351730676248973959970414064062647183802920414136455650212198273725111239582787980959023634185715934876383876619701750012040867597844360752796616461974161572693506195763644219460688327221968348339363855024190802697260814220421180324540901555038482296134254039673128194090807749782171633312166089105135555031156559589238704144139867689172979848798779442277428435764799561793781867845641248120300151839856694310016812980875290690974538154308534839681674514276096535353501564723881989059827634460228955034003106357652270015007985137661716766100455615481020531712551286429851217263471978774763952136994825750515498294841420516930434943150680255114464440349026026651675068041717787599903324137581275061641195184381507244750330853881455983025721356624765278072352019273968998524215637948298028622419740559496301485900191137158029432929238161189151666863751151983658572618128013411644790283464249056013483936250746035411639049956739403926133754676525038021989465216052068317691136687685864665608635976393010864982480696637299157795404287993678513207804617251478667813226314672810433221070879167201648557584182397732206225659542446140264686219956176599349401055602414934840233506149648008704401713120126696297696331198108678034742299102762843717232988209638716661947860701796933641725150239900049764391760187436458882031309034799326623609758969572130784073187403476235593456838623277526308961798405203711756903068177141081108950229672222094398938660852957250971614115291977151743615173804380665624571744613646027466581703270136252671780240533417603795721397795605612254748484690199197452046089927655499438905483538950949067505083975264776014121984464658402258700284257920943722517901489242922354811995721222819395964624270934505399722011152222679266124695096493597904009596524594745123728236548121155750086026575807122029580087147143484397362735676428724052290935225052131244407856788099656817944628769923257738177831995360539452117544294588383039503758192552412378371733655382541128208148246691535169314609031308968935916841858170701642572442298735978111453437702169789226826452183233547440550983834849290520925586746068075752628052151082316316784687907656816752943873527228058195315661294641671925211877597094462331288788223128726170601797596854564211296766131257522803139329861600641588661310314067150934209076130019432836196068988315954081822287363178592734486928151443045371415711138708103128286594555434742198343282454067672431509648582431133348297644854691193953173942605180159877296105868419706899729040293872349500474186731853406787057943574671433697891321073398990127801003868847249491258513589439335562545214690522280059585266613036324149114812532612952632106996908972322041204730632785629917631154896069911160683776123609155601024274940181127238073870204271331966592125302834179460252095327191791707471374976346614276837974504809848568996187972585685186786559274206336177714922927059665720422322705737258657953972181483449671787097233465534272445983146458678900250948678081207086700699832768977843615924316649775698887841367594006058442045448629390454664360254519716574310541866101095742502537548644172220726014741266215308802987236677373118111605510435420818796643454287262633887065706665705800593893037881062863202267749850153733617451875608753330045460351632514373199356953963152502921167372457901840721230534505222921112883150085250859972837963793729429976825004930059498285993923621661080269018850880282494611151954488010666957102665186804751431700600437969333323175593376569764898314076818924968692555311823769005701531784198532761340380099845690786127515893005139866798584074418217606848519496956987006926827934534309926928245152873341373986644100811098705162258945085953580085464602388914789366273270721177825500414771914027557961430355180367875567912606156799326824791874035740907298636411544043511767970058360328542164645488779199877315545156550576305371705558241287306069809259558383885390922358696735196509699191952133607844930367978517053469461633453420838541655428889511193918402850874830101286878781124352276406577656292224703103918696177946007294027512652175924906814713974936718532834412917273338031578045513331294463354374619088681091221724622262299208644510898057768401981784690221178444868835589174047994329354880398542481426688740702287490435898115871150842821166458615199663884664443684087295923722729301042313600153975165420151341479716197911448760350404699473577750317030274821208909607332482685742444870967750113200391284712163299221824804269231303032271012415217124952679529410814350046073304102847055908043688867864381072545190526573499823386600523629120277511651494007477057387333006703340796084495738632721690555633061010382163711594776489069131708415157520649051269178719646955960463553777277656262840438401423647871792183707347903377587669752671406048468287124730097073548395106828163958398983274173093580283585205853284598290373504716667631545599583316877971645048892738743746526607417657161740437238475481122923153922831439032415177143326439731395245296163649874288245126650356892752915185416218568961500255340131621467947360574337486411673137846689151968171869777518151966115281846315206383876953576981411468422289375251375709072496208075784688255384415220609398089146637090736313630077187021499618051454064178642546975540718114787016868900778683033549387619922848439708482269227055398131759704050269557240715570565466503816012143739593173857884040786065275577453939159073383920194260928172159368062302114459846656603094368169347304231920180399063526242202426425941818107623657011431608565776490977174013411256564351189151651718736537161072256242287251369446313753770029789221075255450351807576251330860101449122146987965287298588090182763948242501734934028630038744013075750913541498322902487105503530593680694315441005220363004211593015787212761207630831003293688715029236227154230227866700098752357117100077125149511140781104580552728758544339860232980472897188089083170663954396087639488827947832856132948542983265157306289756920824379544378194985641818086890865518522817325135906757106587976388039212269054550856238678490110139917073969435162762847651895398673117895566622486082699370459894757784661935749228790489952773738865659627673139194537596385661459117091823483640639006643210712548953899014862280814688570273882320717416301884808067628511241063326048575986214586750755170974066101631886403115919466003188903636321496117963355194599091186829437801420428400741571495043873552694698072509015710022499050841436475962888031117322661843063093940392406683561727532180958301012974665682888046043643696521702106135127508474083913212868725077334164279963334535353989088865328343016804816141522477793890072106799282232805502330878765584648479981080506342866433385114263985479084894672546981282036164536638624452646916506773862555702608771212404487408286123795460819977934697116117329683621030529000258975075585590258567070901766158398292349022348118328473488740349939624978504151436362102999810753467194023001272756366449231289945017285189362489923917942511576811953781168189924868649881049123733701415314632411111133524830207736134398416659022497591293012202486783384736085105893419746351366519309979432952700631516220240302470490338646666828495733205116389197785418015682052434088842443256208234971539855012245828989685207524505080434965837859739494167823710694290997440626997718315672728600014818489602638727929159383302264513299864078284809417841158440623446652279418288495541840595896446083423375222963461138415721206464063583166435995248990050313773936743587293143897425117133460810301979286114486731408142602218366485480540218735900256946516964049030617300417242918529198411033686546762396577328411880603039161543428435996768631076548869504885744724917041267683285320493363743947772050198111596169062968598099369186713719269434525755431038462480195203928740615480322647510616349640318135525479612321426290890329323698070860838332180739547911394227245341956151871191831158033918434542418833840963697203673457027144754624089071019392472634770736229465016477997029829941621521017825662877137487825487390702331782548197074411111693270398144467474852448541120799088816478955412285373293626536567527809335181710195679697131278388850311432332647915023903622770188947855061924124901526846880942247625267450769327237897303387666017050817234942290479887675680060611534338825516251618432836151382645282395909252923304783492623060031988341456331942055200919335179761595620035177462107583472294059644807953591932787220769986072117718151308836483660673048789274506837339076716980418495207494048944603341590591396789387833950027624904459225082480594618309290395791210633576993208027702753361015604563183696035089961285169288228936842426921607879952156773374637754045759131144836002264005720250914333324808865925522696317395613497577612060052938702777496268053488736675403371865325245697165289878536800884786054346370466555219624182990160955287032641651677985896533710296035815194739313942084863923720684673404543493822129958685591874152614604526899266203052886416541379039201362906653154520080408301594598279822728284347549339288239966487420696247602264338433694734940451607890203318652762309307000708040519941661456395161457409904217346544228122842934704920857527706401415380433432603641990689102961411034634943079731274178781424065200517419437233878601964694349189122138056124532938622566602772257601843621096139683300485498338533945451992789977781280145837938772833846505186440089229700902294825146322203494365172985159124775789281212104317499161153554555025285704018255745062007233871983349596530673167892253912235744689414817877725179919467518572612087639255175517380013299559295856982671729113942417220911202581459364946499855013355619556112998701668532236208667630431704078286599422167891425475833550726843771500893292035188685775879997985987583110363746139942382539213496807093501036110236398927116163228671298882512804301727952000325018186766139424146583439860741987318718511304137452520496088213058580411283336237579349372725573651072219746335814287564171725856478698694782133792367603970149967848657617495941558330503008473188703823417242394855550713036888496773316119044926735206700359845502490270389938931879717663260624090387417115222363271530368848211433031550725256368925098808912497789335049608840178663669919368000478364751615166867807421338248020463791685219189353753807118651172285542961311631173849681684971665973333720836519620072698600393567733510618857700088077243806079751350069400181148704061870522198357168895591130722098408561723355761651334219123555813129142134253922535298377079892316528282867012786261638765550916371576362695294780841265031399847238898130776852487656453208137188642543283876590101675445553360401692176014134434429278345155688378898530319741301298181710899069026161641776936743352382819133655032830392193773576056041643506321257790898154575191035113299188407476510855550007252644377461461892064764302993992289155337533941440080267873019477746957464642089906793787775369174009530940362296973080704030867939801618787094674178459710408375498720492738000902996991413391569961925896153095115794266462415086415456240029220968576440473894136881366781091289990426730836236519909651766820816390955471111923278761138361529742358798032207257743451052482743907512359223714178631608189706246889737263242799496290442823421715163361607259019257344694972625408349918575346473018283920577763925938833798864504608402589264781778255902742445353352406140577543351556194426583841730109186141526322161392097245295527494214896462359007585559854354217081440532891663200139657369731597051860684328867621483981140119347893049761265058734672273389172303025384280591754657856377249613692397889505614973068806406701447016933443205534607200083107245715903578492918782701634176372216572454933519560212373017669565089582825558438775928504604075277141000851256545578949654109129909637682931361939235013603578257626119556565560095591685896406970742511881842699310398614730699025583609615956643077624746585086916349775769433751231627543490720316677502555666413007388274069187450436464138891364370904397325000856324489505170943082453869407913469871443370242805307516015827529003748598081378597489391522678520704325508177029234929109932924163771786754115778602778709897321404017744996555458346602072383542883561097727324263777386418939858859304055926745678714862183865118029986873065258319467117170341270771864996997699196287641462899460372794478348428050999927399763940869116894498838263714537740068495540569625793543537933146749849122447668071379197071041500557204228759373605867500645956758195114903116410089710319591723232781227371175763531972744350686318270138892760301090038325858225757927738308891866201874822292772850190700723332949500157478637596510370362051970531507343260723726315885754870798170768338446811364194394745714121234141778231888759381418056994430330578560827565645702183439478939676205188255753658705065817129902404961421649913304775714477197146060609230791213153004170304728198695785992621971967259068705545157888706680666055462999261052610868003486034705541563258905585937965959807119265690535759101796031683680448082235891534588613133323477352928251154449154957875523559827471691431905662495654038580790592004835506982393153044413619632112546006659727896464291395129457267165986462848177836372456582768408277132794662690720116600158337790967947034946731188577591570320825609280226676728895100651115614789627193798058024489362330118807415449821215778618032470371498328121686359730012707889712669551813071349631822259772765657016188533867089910455100344467018030618527760317663570321549372559862935663422217798232984270553541776308959006972112478258914851331306107141171510147806779264438113181568729373020853628102515817480052094267080304136501008390583917591900110701450953071527578201970930260594906905191814325681259212797194686394553174015253991275304174087291635572289409530111433260624947557528555260715570682167448427035792725553995292544868357277516381405539709484188940769067221602708397100171080086589085757933646206044979807535734248246977721325043269921012756616926238478523621329411535049498618455061483514167796361663714973481392406643284056871266497234307766890982722664952932498193772419358401393845719838307264817790393288527299349177954205646155210864491273744155562012360038859144573185798648474849498931124409969621530206183069156528201783674627301229272898348688864410418954917856889380602346355637217377997753628957325522297249067985609658777024938896743911015947587810028459924023725423219971591476874283182114618059264035772347909234368562876882345824938145026227363170828815242711896302425794231613115207013271475040889566507887815017637378060548432049712856361782304205056773575381159145844312159850882265065688538764907525401441856536826374175796275662423947445574819042747190114113361807419217099414086523194536564814686666624121292711494100412010295589599781418715247697240630636063167473646997626144364090910616420832466459175541898989582442959475358634423449088579647210619596519304833345372286181388366010612858636874920190555931100228471504017918862667307252606891568549546162323792045968490295834488812522686475926481396213061441939500452760136565898299160631501001093407462223535703364734426741569875568412622015108592624563000069514322545353619306437414296943050714414547275622571932777997833171680774960686502490066044171136278484910322803746685330810066057946704904755391731569001927765521188115160064533499840237870304152972014907095817172456437236529667366460454211267141746831701739403558008883049904145551334471468729046949142308686931497262097089474695618849454418731076366447634313831449345195075152801727115867837933459974321985595935506593155165411595045643390493029229835488681558753234347534485967014832230049225165871261237524765838224544568511494662737410735168566502221412633482327550026458872382579113048423519257238366486200044547990444113751586566809384726490409836277051691710939180069547628359965957098215586420183347052790858545488752690201946751888478316839749940141020362306558895401221644708138817078280331161806309426186156352957968871280057440845013279861246391774598358703478134566127401613160862789667218086724026332920271030563336744004924843898111298977286943456171106632937832745018159635613237560466054078232061198755504716944130368733300829274470147339635558288311124060271200033693745330309141172316911536570668709307342521802035320391741045659983886240838774014218334907230604800999346395937237719453880308447899468108627513423295833684319079222396190381689927972923404227862259295571254920060224976628680904532833932750302686147875994693090520302171883459751050902396433342210416598813060931927746674743203271726576210595134625414795393509001384270630856161917709787573544038609683626136095893416059568523773866554285002792735811524298630458319152590951652558656949351971435033182404916223290500526990189383995196670021536076917001827292234695329405346618804420854824006281864339461609760176375084652294556084806960316677766218453094882383853475852136961562507818699937570977414102370906049433920277015465957628731670033341206757102029914633489398316574673368422279355816725083285986362237672969895722733623392819869720357142823599722094343866494995281566878286084892242627578406974773358231950920618728373940117096143058671661193433955828724806648223301608111445187482083904182544531392753945510404075952968905514229204088463092271126497724778215428404321782823172605661071108517108120522002885226467615624441841474104845714951079775743766450368133759868969619728225717183037642628501187152226575378170211760793025161081051414162631533229838468227951478824214731902213900603803624898119005874857386164092701939945189180440751454836194057342554231154215525796129250676648327413013629328443426385448479633859408171381241122699733850598305198069358038472641920867684830924929013257388100205554134390336762712353947475261610644613298647191598727684432678757654382850813336878847932074017847565237917678534730681572892874096253936842320765911099431423114111126236944885585830748771257647133835421409138786392655952420273566772162203752280846729595302828794996554893460693053215196715278274353364538987000375456273446888507885081183229380639607327203940119239045535407956724774243130828065856434738581013183354666214688411056165175340260754176115035427172656548828963861410033029648274939452982990461521217007556098304527136147091375146562316612087700066586115456285420262874374554136946006152650749758768552441849504456426505294477159667999294200108441410204069394197015095213000730782568742325075643930520581048450470610198235322375920351268670778792083358736911640350202580626536440908988449621551527398541461903171859231753693989661909956821133555641258250402846242946541666447963343413496011577515138644012906839431157731622620999601394693963514754348355331549556533375154971268217600017300495437413230328101232512851771955407547548928596053173919453348634275464396597933643881796562301473146618581804133935448362539754815295505817468699560967392660034097739848022617780336579909283605525222850215227444568441990586308705563143645188732258024075974331409429307388830542412142058814525633179312335350569102160797095472192011654852995241761735875209479080542418299099665257315757899331223679894077685751514756653911273769142905114175635285821343075015573639477868353938250097523955696846551536355761197295015157277888547961324877876495991536102778353917129573450875032942402023629496013384895391318404996533075500900820371651299610160803563635533724842992768231292968369911386821130579713369017296609167288755787492418934812439463026329716303415914025166212956788211183749471775543140189358467735760148885440115493582447964920206543758605974827161117104283573877878689704942906012482195201275503889166826269585304689763313269194172273968961297505153770133725570148629996083515915763134960716332905551067783902537891778358474421340900202879323147180924217376997084566455650458031763992959857883952282735763196834416172147854287248186668731012689561735387389497897476903726494986522071245112676927616296703989999726066968484613020203105800897941540293575633983240133461392063048018746465930011730083813340179826420055639377223884345751543893658942387443228317622293949746055481313774783138382985307402306575403405102969942563772617506104288689717069446503173805685987081507590488893157335972335763591882295142795672114020085970052524831280735926415421768683191811046098219124482701708124898342736734582891350792230145538516096980549289806111737687209253065258443028365320717351625706848075736797748376274705982579473872431253257379571215298716019947988464886789432445090243101996685593627277079898947308276911203277259786321944149302249902683167419963554010432892164555128096594314764879262009676641960635870732946181664155867944880660930624909358095046026270456245264560559729629946736190995649842301762332165741952599627360134288015566338889877160875874577738960182658709872085881340304057858684887837432194931472820089193613882772998882995719556549158892701791942587897355829216195428251357170363916085946185521092491460141407261710203545157855260800188198059260458849490625521425012356556379411133775483117647940581706492330674828142473406417879238076475307985488123854681457064651232827418149490957697674131376592057868640833367591653128622097523336531681498731504666674160446630388252816403771463537792579859351133524709989693668407269577696603335330487449766651395057972412014491291028327525094866531019631131472707985388040023051695300993371785597321069485210659540449931863734686079659724866589517767692956593301570110023741907354047737656954306014311502562228627595366034499151372024836500264076062928466246351927455167837528347336382987399031755481551153521207362164037955191804460655484182377036595570868287292333215656843857116953805377162878835483804671887114226360013107174474901387163144704363603307449665926969166265919886407425569777285211854057610007020762943660048960603255722898059596820119327959253092004500495123793251281489815298061812154900591895841245637707265322041641954755035657287087905981378462319579837030967947244057096616565256240973497497167838360753765069148788782810331367747830954954218314847959333806699031760828103735554856749852873795610873841668301812497028206001374807180254308237367813807942482306899044257275686846014592908951010380285071590158984878445627736765429920299597357811036615192386589477233325901123736688975197520734024105925575932619388345662133617789553586649734658609825338314398590148281366902820519334472550435631382291637146232198128771056744560745038873507420862277638519818441589730421129251076507560276162949404196393336935719527884727201408114260776847003317496084596460268981252597731594432962313113326386212991775407879942482342232980109829948745007629065492334354449039534601806362172938354771685259122467029997653977602563735086092620235414125529030857861998211240202711468744157102992917976793261560953451525948068342681436345493570091539644923248654110373183966957881766784642078410023914575824474278059042596262478441677572621700945027530457060961174819088595117643480190140551271028656662034039866099392671017249663612009676297330727844812383791833112297935763255002999175563435920151542919653755943056783433960569785444892407311501436815510900135716795872896409638760972759071600091021147221737839446455644642247850365006885022930452982492423495449009392495196331021327446639633138747831783508568648502170015091064973390161499585900320606539029903089170197846298820410508979300054380118148415348240444106261233242454722555574776453891123697775509260442371122803007895114289537062840622904046647392166966100058970780554633555590729855562005981687270272448683416487125894365799688313110694030836169044397404146672767172744856852429916336848142560709918830132105672741267353672660427751969483169366830805844647563620816513226513905669360537866886945114959450759389533180832107245914981844581299723308613924051130199549259076238105898922250755169874928795488769614026757622821727689893092304977382405279508644796504648025854718342284834775105205620695018616096477790726293836091553516662231251745259130760811840428788385367548984437405770291629806203168132088886478097704731114125222668073256624136960748124864860634482247426274295043442988366956606683967199979546463571946670412446081015333197106725243257220104891537458225201911451835876385619712743209173390965005679859377602776582061030199685605143588616001688855627492939368564494494720114399091421380404705344911429786367900896261162899071357327741345057314145927971265933305415778261099947826318017345571040573460247781612983259648553158584176232901216054786570190761157642930369009477957883794096273654606244224931234937780538259808166768270853096138206767163715800756915449662528994940882194186053705551355364938776486174072669389940840167478072154364196678489609638448085443600192316468016149065561752329865186713692382708270705626561500400008926959316620226432441442032756208949992931994581257757943680043947308977656951195124305578620131318218859083033747013653770562543549531690666252588741851986150146297933835839667510659546706339271762356429156698414484851020395156686977694148859843323905375620864731716978809072277864703642175452583991744002182707080328161273234806808260385584328935477894663653224807235013022405023416995083860655568498618104785790568163473783339582832117831622213642042029784820170320818914506573175926600503381111773041816571781579831429769485525671034282939628241696940981831926225087363925389212344201119855781924296226581623434544375524010753783985544520109465302993327605002270270828939308797234627733353053265706978757388191092971147244233708451634687011941865376242497841406178448914225582955824682526666183607907891519743067099460258508091151465924487217792774589431300298224760927561277960066377335058646246956795153821322013011947773663336002472812441999365888618803244718926946786102241590359822988706256882803471390283954602329889869772646343855404105622796526475098381034358035677143192103616208387525916649610148592841469968557764132442135939977334495698421180376284364505589982153213757707096293917319642724115643781957782951041958817444244482341510983357511899726973207172827317106924491022111495094978676140662282009667380511887801990829822490436950351107137340222497874967431246027877390696507475055646136134038710556443057620636546515421571136919624509442323513144203037376730510208581923845551052947119434345578560016603457333082930043831492315563880353364602281720196558408802952513770996923016861168994811000631574400619990398765051697703996314998131586063269985656236759829406634062302186213367506489319410662489866002543518350761443127077811587086285419493561869102747400975655648894757839381857914291216978395551924782235012226617793556152773032206640423383667956287871876120160982482734642812392837872118088314252168950533683486906613884791963521487644953786645439751683737837688582772820962963981324149905196511180361755737761404902825346777714542284110415458516618797764359792366923260370191973865333485455796733705208368752975478445303799331836087521273389922545498042543285850997086160867419093831390909646698991809199726322291597633728918889653865664198537578893210335751264513734889148660044636942327436489228251235007067611940809435402399552503965488042643784331219901206937460244063647149380826982056238849200558986893213589588224423706800283828011290007333901262151721351345724018328235353812607988048694441629534916971505017136274771389977144992969083432988061025596613383833882025655630926242751827080534784341989939332025661183492380866326540159991852111343136337195055996189769238435038383015737550635884849644933417545936334435193884154856122572729544585149227017375740527394299335006734601907758974044073087065984857101632895805768701235718419063330983747010786658735678017954888724143905793468944892848519626764671211688957280403500028493449036949090696716471041629159905907200562202274413199931422703655888220164165138224501081556463657778199062492037080285557313266950442160883704648201478046492384250204373678954426372166325401088952902749601973670063790019319773282357644716007149433693138086118392585431152889338292550983618876354515463348077852075134401278796286858194282450819058471187013420822933870692413258861596011066436129999311904059113768367693720818726351670739582369160632908885861986177696408521795389282997571518575290150828587444150176991745225637041335379673809889149599338399978102855113986140741037046762685142104205990541972986569555350684175175843443416314255633909902885556962015036177936315168017088145635041342656756457106249913166631515315060943723856502603429953766797604546536486889080667662394430034173100880820111405437642624704180237941579819802712435552259014509899689218620983788465001371539640857737957890148129329100070899057904921776088332435726881283110508844022992177068061941642020570446182899419930439566238529131173087159968994529540436337661500232600736615718219747788362135745190619418117271291375007710180678386939574481341899882611015126722249748563397353830296766915876680573790022791193536331976910463584232897413164486202593632764671148596111140698405135948595564156848712078160340916866570086823265991113862008882703126630918150412608941254091759294927032749467799485962430527150281414198777580593330363052852924202659706927538889809020174696256432782488385523590833027811194164220980069468385360006443290232545554069061464591245364349873834434773736917955775791281526985394923324724454616640705441494316936133094015975380067201141964981142784570463379900149762724638630407413964835677887589475000866306353779523112420550926079641862808292986596513223907152488463473671012460572951890819005120205827856039650445041611826851250512565952166018980879818090928926334140105221608728223327291643199147593755294197996821052779921526290603761770446218617288014106890305568991805572901763465891645423642045853597484531708175498222522189903479381113086207595702098098815289053406084768360101932344405103228046942225538419762777584281423490677003690448958730241870337836160038053396623905815807553149057260860405497138769035452551815392388758435872389223844813484081109694360879347802684848137460716378526407300020749454137250619855220531414042494522026126676727752533598537606094013643729162892117726124210948166193217412219180801161463083281268427757568318323397385676157565676080696132306614422513607810087298361562470153482431319514621427777359883583123350552135957025860791008008789842016173274806746038746295583134034369499435050979399712419486371788656964381629728008433997638544147663241012491166879624856319568808453587898628947396516207216420434811834332143414796324803610594065011141338493564067559172103336948089775856772302535135931660443632505704695069006176374114962653537546730748419759221068702408292275749897329047931390071595871854857921434802432351052963717881005265453899380341499529834810467617547228885353137898791618623684854379558922574324403766966408030095651337895070396396347114102554328841290703701343447534745947256158774354936118444242216051645272676957504823186329261161273814245321520016172520555597373357769927483075985404104038686934468280531397155021255477000975534277407217927247040221580960183326245706677535469984879663844942804674241681265821702202134049612787886959425675903916693719288599007650395990643521015967559564580239939591776112116897496111060968522108714151658919713845253773486481589428556757038292378605103071700546933438065903650148186708124468220896639520253150104393891816416494328756257474095420388901214546763803068053925945117786507654502298000343248901006391395758440362493158823893590059011139718470437952017281846515424696393647941049422855749939323963119484690129478975376508171875123903841252970341413163906866142866145025526526521246983115440212092715916372002087662125802542824370962616065422960227829741638422621415307101573049857876400640004154469839379148312275387810027319334185978191015552622647722429600714583297449651737110182132672159462496432565011690934574031758803636773499838342524579571499362116656037615060634180961373614236914632861892646097741179190358056160161030262597202901962726555518732127631023205782500282288956054273192895938162975302451010316466873582641197535656744570446457253997591076788247595227226367070531737511408590904095472202139299254127271773699432848318075588201339610433752730161904240676431664229076986847660072630489569415392610358480915550843594659335008553624043856390317870315492323061823741787207565094612564305108146731718797539790975050802517486599955299634874192720168986659816457227904790160184405865496645464692176124610608737361263901551746017767375296616989845757769284716129067873378033355979918404803798751553864373009109031195274890769308354460765446307696743774637298501796596744593696763294774602512522987232265953751282237405773404780064473062457357196662315088113351514794591289680271839109502008687235202558168599200431660013648190692265866911821824483772688406692602625428295204802487225820193268985203846821864751690554492163165301009812127340476485521852562798983738503522948589696450095333926197649269200523742471050309122436923781906521423457427029954016380343374415820315455943601854594485191277339952759806259686604669467878699612411682376740101282701178483657135977544648905768731013289320929188369764739556190614860832859798130258638020623844213895025954186151545697726418224282666644935254845212771324646102619095126653825148624046577074826182530468160225081048990455417318103069746829357098684554834854014629665055183261272186335187782241231526178527688872044203086556080737588600411342839131310981981229360609375034857400012620234513669287294005763384480078305099967875806080646183342808312354195291738052847456575424997398103595418547557072649998899066510979566567955190392310241264891166139609381143284481400670705250913779134101531455633945280633033021615173689213618718564418777816972299767534353812581754227196860358574173182887808406097979520803178511735080064541357138408711327219021628268657053890260756241938343137895134870653956913903481970372719481269979961613425185299298472508916786558956260941873153934245935775666171134536765522693467869128883535642656004644527973848069697987098235013212528893459057533871659033181085175742533102766889623379207019810903173331103647296994644330335470170587022787911836904128276139908465576031766233737928272792698825820096398910824057572501761421032536463888497242237984532254578329859438348941387337841518657271859164137448916861382625135175516572208566316253137329219491685461499248446112175614247074864142875505795433362204755819949691076768633873507241195306078084972931977498834898566926492094403001477524641351033640231952459244198078961963223986362301023191562622337687991930115678219913978843930529303205419852215034936827778137274409156995689388934718149755722780007309106442334379576997097924012322719524735207050750076039518422280919115963046131860172873089007740455874133983827852483750200538511435543263696563425649973792876599545927387778116810572972118817684826542836804781509834736298006391608157690571153925888725561738706396934425339794769075377391012353982945127715605011686878866179082261811578195143556000941205420297405112412894150015328795607484029759384535098429407944731052576457313808813131656918130690262034782188269195371128522100480889860288052602029735368798878523547958735956200184089998987368321506679799099306065506990601856713007144683105878444131364770353766387899196667496199664821835513015727276781535281321711891719475259652478573647872049376157023808010870866269279678372052107961694404815813268641570274949111481250255611623262125718144061196046893407233427388561383766150727539765233159821590022415931601897549085529857773212954472912794644896530277540989175970240965529888464825152784035357137730526273897492734775107525800938642082971879680796259145608399884369624475629508255460741340839679169941725757837549804932157946475248509688749967031576281659881427900505510726369986920857797042318003754926518403212755437313140704982842848774598480849049097575230810209002003286497726140032826221567803573706092780977648738505354151656028526061715624148883848106600558575419420731750792311890305949516942381412415371338094411494026711253681988510594876013940866549338932762384104762768111895140819275923146433658334327074424830624590707248746130253705409675752833552405820580745949291815473139732483095594406923510636334967017790188398655057517477197504454798715370462837587644477251290276569952047295074237099288655011749061883454527925326159070630615493709102086202006470114933723991936206352799447885902965944780518781628762818663367891034417943417055795737714313810314287825580621434440739577738728252278513445423623989146237669771026073387382129370424791343427985462775622644638749629701550654041907074893471954575460979147655787978231550781763674721168235109701347366115752550216548991189280333175744806397493198705613903415264141499530961769541009492706729287678705895066260971843725183725207942102077161295769869110385805514411406039984502069090025045230314939461765456953481943552082054351300626271192132193909455304392401591481330754124182350427456735687491502655775753451143235122098841750276317765951179635483961083463728398449330127714788525833611749586764454983596319498072276433101782792537907243496596984611489189852569827552196034664370788888962423209520410608413918649446955199066063310618525378555412175490083354670230764926316364995483004224166100010210659316868088922367493981919433789679969162778034714147454524159638048396547266387924928870617253319145964560894252207891416070977880718169273775513585627869214289691503972197630413716435915149148217623616700279776639406657982811949136851627319853434067033161998307719846383601516511201798189413883569036789381885338424957406154902717831476883763163693406338356155213353109868979959685261207585747653407832620951969884306945368919452218776888180605547010103479648849409338760588814840322469674707035776652087333605837311445964860428985315590228417317038201729070891174561876111757995643231054344484580390537856512961479924290471956420686562422491375927416910315364259469161832308378931502832959245602656803770503039490731541162468974832640946657161474199569871823384814087454857330299742105405850212048401242067696435576829450833020831709395323314227050089275438579982967505372139291728439086175851218880187708326600512020962878273374183181749399414683753505499693118485260975782609613111590018249888815348739493292276666010887061725259675218543917152323101669505106460681389809157843401742568934543935392615561654359443603059838827867435763119290324288066508952370605687100329111966559908607311518432271633294574396673198309601739759719295140845518007085611606062506707812434910726753073208779576207346437483006629818418822635091005320539430869343639425867341461809409186359621241462600212721125019345139221498471018134822457826598839021513256486924731299388347319061779857657763299603824390715878821804145644183338582537852330186648464423406250045820114698398845923331085069495304277177839041671123954313318002543075416172493378349067696214510471521244047853168661185605929697882587078970898662048979653794906048076161539559361870376225443520723738886050558508484174443872903869134150312512518570572675730215934772108483819692809338332544956609931572114783972261411485376066811458006274562069955235631203016371244809928677371425356388612436343118391246376090391257913692846015948109143217731220301834763821999514507881701994651462824891600710961212325717275947027530196119913961231064381255933860083819856421565916152446332507475563823839712999678488665055069071500218621625810894758305223724039748219370580152192991552966474166791565333351650407621579005782657347485959125019007114853261469315232532033068959254637060623656374572818171744725123409592686387390267427453105794870747089224044307185123425830513443249566728505500784327137890257789980854494474146761918795538287598796156756013427600295284315278074565622814656844546676089061350585418896245379239409970828269305591420693887305368726994525115465513068114825399123358957491250433962904175877344017673779812638364210861372366591299997011987444457718898137870085669505620697532036448019159343331962377380662890143718947487664011916818966024904751307868628820230449395511911091619800420749615911262926586974529183289090338941034508842870672357991462493968999131723505532942475385561125165406932789486597266627020704646509597631583319045441202631162163048633561788908251190887949269256811161615437597778645942309189981851559077026719169041385031224792964407561151056998846062765142371544642128576623294293728305422996847537052056028101810305771593017240092039976473767514500101714682401705081729099214424826698216479491638784382999293217676209949026333630763505520595338356089523450358876963606132710018900469902404648909475912357375341449968247926947308570428627303343963828624223771477193954103413910497948110140046988677438156390776092353838608777316116787354366383842181718742112481759642381594734751939255031348660436212694307377669600728649182499354402609045239248388969073666774070404203693264796290325196048724726565111975116402480681302720992952052714260569426395118333999208942128232879214116773757808452004493228763372711043317152545355079015775515196039704481065070827638058801981419214941640075486735024475728242151512537800855363059335657256636940613532393736531315291691912451657853121764597206210043470358642132088472514758260794341358017988062759337125567749311932338098694091723650170776152740146492233257347844814580427617357350209836187135118849333753759119674967433771682688553116059889082787548949917857945651736384929116750613984613914511888053266382825694252318235367201771435705175976720494891355075881694323479704214334548189141101331827294761687781747228469137185507904998411913103546347233730300881056906149413979711609491675987134484537508415929803096848590301690400944652608642004423900471445487244916356745875471543738179179087716625200862197023815390565992908865553753953401726658798148772848954447581225668400682725953156267064532169093159139801302292107690639006172006695600276520158125827714555633984682517740200087962021622621673214471937262275771144310206402169355640932878770787764863771624392971106970754383753560854065143411229711676790284593592584812517179434012030241368154867087574314147343050443433773555665350249990257862095991831543699618259174987754263406114745723584971996510319148386774063077869677688247041017411941681204502994467435933945466958073442020771212399348282011898335894649528562912737327104254042451281060544268527833489248904166895956215373888050745008706814238009896350447651079555702936958240326562993883812005363383126517468735184261480471699541178483339851753881415086490985662773968745375596254148582122524149215544619630230435649596818366919978529634899705355865570584505268785280670155304596179360824353873591657823832645982138189757874440769716881228544533860461156232016894307021119998052202727093900773902499652965815202993785793828471982197026985929058786099460703567592079222685003397988178989342256396132661385390743135263265359107990019634612597382058455625953941582597010288875317548876323348594876228088159353653348346255040192664556665977976965023275230305674213574989072477984217867070429805826501743292867464043018098596985554996135397602139571357551247762058240739876735455542080904541201132478623495361736249035292511303359723592133713854387706168616360693058219089097606450448112168387776429194420412411027563477559752761303199679636451994889498137246411923571945615915770849016053181306197739616540792434015914901789209396440361224746763449150095753485674715078195761098593528653005164287884002529909545776741269081423428247946869581816321312401533807853868786108257187711254173243925070575560678852524210597123148264408625024809410911405053907319511469881486155958247652492162490659958246204948374172585674871098384083293507536967414359661184742141849513069654442038343282429745257212401624343725516111817088517301120675150213210319453306526173972452764873358248786353445905669718762885914837278561141318426320015954447127181638785213797420337564452748355392831620501810634459796780989313322157211804507835338225165152340584167456394008095314197388159140324254616366636639053983593768265553758760314652240140931241714645920956962150436662557185438635854752780072754243727418360794924804438945555068121552566636802698903635097632516139408924928295921714389051532155493088167849325281480367815093532676328305106948616843991174992753621473455707639817805793597042516983905669400912142407804577229478017147601803329716491396994791701275748377354638660526005106883489395905446389180655578629174595163289574055573515138362954421758593151938389994223444428076613241957345310818139190638442569268602119216462962570467815257848859259550406348335335556969385095286998807460164710067797312260271664272343327352755289364992901031619085427719157736060233177215289269258371150397459469072164619596556645528515784160517445443926899760158628853546777190834784445675400806013021056218239779196627329251219553892092540366202849116941306658317735672196724450822546887215412907875444562443785826037414982906896334717010660717457120678967738809164862991216542826131315836086612039668359218285850970957873107064694496617206859512103850277874125121230846580115622134498744228747954793103351471132588753767759477274325056518125182269170104126266891834543854265260345234941497792420867890837668316248867925162127486775554758944898019331690475624289490459222868385348866980596815274367237463538662908618679296101321533231760460905798326355094389862254570963592572865992048264248028454848016119017849657564116642373199622164166044837340482771972594658605513180081129042772165984348764758204368506767751096528268904984340241158327760663706241130198005870588109277462534923912648346467766687727453186986616557410042757402431371328606925316414689414245722744421389654075975949679421143047662719085519694125347954940648168192074160337532612441281419591394314207248658741248672203529944201748008718006929949563474150557899072283132772461546013103773610012626931244711638698903360620765743649288628025369294942145527706306143688057978201733339112296741214080435090582018197560970418920142330519051206985652455154005639270822672786453949419503697778865822497651353224101407678719728700608300535460557208357482462394418715282898750866906764728549350988671615637197236932453973029789755260719990381459223954450970609073389566992528540558962046618228184120945591815217364831466136177000351117545069575377009435772022778956191520433588808506558558161755165741002072695767488816225849756684089622239094227870046729190942774171045698087098750733138444687051677749684911048339486391698002230650748783530076230705709763461565738420848360595322357698424217023496322249148733660015544257851500027094821501473917874910633781473943678809585303924993840714694573474052178612811686257260713470362550286809562790506452850576829437312669565386946456642138149784032983815159366004225833856733476760719163977140234247355128836683707809609163783125827034656314238369297511658917413659685208965198494616591872112439494029982601382962326203635968561554720664974693014256534617324641628749392045153133262629769019595634372085241400737863359378943325501257199020187253306827067028935095746416604339274197529513573942136493224151707227253923836301038674924521044145801077516107375060014525427103612437050446990715982279955397048028810234332397529834581126449026075355813959940327425111117482924428488408426299519558620276807905925002869998026562913918820289307434121222885914726524456112454930859105957655219132612922172822165135267610994787333518899027095492061919598013829734921322471463723128127092039804080462151331035063183977980460851629821078734595404271954635903176413607492718082073293711440225281226117577523340211773300760276355756628321919414682331093977200017301478226342222045890295445534011716315635387142677457745665086640481730450469613990808881746134861044938497207433871042054633743053414686781793563512105084158477779080031167543515424051381197467863841254740728765879603902601829374141342605415326523379554338860941962442407259521323398204997361035924993815852056704316732205418190710574552680772125851516389035266220454574329470738549420952127718240269891784221074945412129960498518950673935693891376590047325449906378575742651338675772975955064199879079126193045756808374183171942993652227117853851891548861795475647040951726591959243164109396500061923497484934531895118465416050022028908758332606070417881990425965715012398671336145976555792370791692340975486212414846524184285403120162526520019065519625988861030024531782721814348783477358961582735007407653100828933850999937924482292333981537869736382355136609868262161823040759283596618669796433160952941016803498951517956408299595667646826551242270627186161968094178787105691428876698775852085614606253378576341243666722171503387802921118517269267176507373249022346146877364904467011438342199806983023190981240084818759991636940067231318251659647153345667280732385438998010646936813384937919052373524247721000457793167454487904101005517063550021635958867152311877134079179241357377122327483502224967371874214254687244243903987975115666679256134009825119843711979323857393924477707454797598446547253961907287077961890591671264600232753533578960752785909849581674937045656394344055153164803321458630299563113400471494690342983499889898549603716213507504048908890007230730753757238023969660696036576793562684894833168203795191422139057012369980921866896175644973438927748170920688900611564253757436042245664327850109590609239132489966325145741467964636530660438088813222605340413362351864491699636091536704063101241112250686030702277386642297773633909317558332182317279522158639316291510797077782630486965201349826153178931657202493843792860077281190946100907149728050708082581138365883126602440318654999481066995451144360800290660300919910000912493737724532160443651956574566834285294835940207955702526152516307526020529038626267409695139648946897641440950396249063777151940531707224450438666314273198145618841136160552719538569445000998107367643310036447230297190481228509735729104804639838659513595770953236355966390956767484916025521703340456608150459266975432758640115832799979208893338886282469598203046226056425835538661531403209141866105300918391132360950350070894547853188492044455676889760393790527852069243693493400798951876514372124682000693105368001618923405826087110016978309618984396016294152755236756564451626226504713161533441775774546028904866402948897692100269093437110228987959496501517795010938931614470001427457642581861822395198082096402690903765603876404320132255651280482595235854498134385442692301350709483090848033123841955864817459387543015633636031295782281935560186399795401992529899274726903654792497589769505756207493282483243040288048131073542434885702752279755798271876198754480687303340138551119364331804988530557916573674818222901048207285492915460524140021119727228148958427476674942569311315334796495708421607184860937777398122465771536494321257212579701354462541452838912553547043307926123725367724978681070203144827559061293195476550176704563835120726572760634970871879438538962854403722277174787536988002044620506150151103514949842918099569791615186672286346526341004899228611678920393150813625894798220214895168810029196208141134931651304575013521976168062777554842451648692034014838188445467807049684327959637694091942222883328900909852255176736394911584808785232282838574181399501458280446438099392960259262537061776555969757169491575179429225579405510428729056759544699391208288026981269835036650741590518448793050070985443324584777706162029335972435457404821044263588279277699329307352529548828871034600664964160334891336042406635053441350878648826661325977601302401812010163966038515399514720376304671824155157843572221829947527192951090281699232425072883071622274338553978585032528183383440977893126842735588306764951248530510775132171231919847646883303832735227084965181709794022289292432711925656971151444521543684684024874449640854962998338307335737898863650037630033329635047183470771136947215913255309169213955995729813879815841414106476334049437811154465718941739408456674293179792642149551858475668113898658438770840269795813837925145250409619026157321744366896312801224183794682101957942828681020072474485367093919874820123706397506445136661195727995719563734342091787669462460624373597334078131844808031776939670062851228689971419190495140358692613942866426787094164094902035862570352940937263540804909333810015607922527422319338353891134276599967597131121750517146253585260969687654770209391454132534362570612170401597171491175871246281624480604929801614403076386068914030070805989544886413806135840075248768702608614088421084367630199531006762718096409667008624972900584782034702050527357697468122143539706457932415942410830717978601892701904233116797774792511703495399124013337508339671048265118927511883674392394200050798977306325742286103483267994947199723565788905130010182539145349355378773481466491647451755536565503163398592994233088837096225151954991451395637390461114950236865341703530479604005575963336811155720160542042967527021237669359987961598618346678360784444400089698515615259619840776902380941192666020879704915890090006392589338088467548707804542058332901902586645989492264767821011082261646167072298769450467831364947520885682935741480946524100365201299636323354478523821998131383755404200000506551230850643650924743988112692530067865997675925734854323798528620249834123224715301583466986895630441421059727858698832447015463866210302041206026768931700162736911897050451458531933358418987852188811920916437522207223867427610390830863829291632137364119233168461773668825894651972391968622730142748485933447646963592895779350744368091032939541544574789201144687944176645589855509508478788986555591069120601256347373642724697157300486079240853842407550381981084479714836258395383926582654281583649394793145060052345816925828335864623082607594290263606962763184967904813747030059153621497514955524818827883791592896511950901565711604567712390636686337435421140820717781875387847217744352029604995018677213056132401777776972113632829519565161383328309756750890370537348586252041416337065961564994106692683687543134039964556601706785008271111607940420922301833276345486784521960462113574965073840925419310106422517335511080431134666689366744800046844907689924428697415387003955102789223016610888200791739997274093452497862892242666352735223445716506521137036180349755140122363729518925040431788594868083875958781792958503663305971033316929288568655667205362177307952466742870412511271541737584600137643328049936713392240218419624058466451171682106274856404640787061145368639018728761903281090968452650184037919235048355072339243308829696262178681472369511127244523302324827057613242833275190737712824112369104617598173956403765118983299074362766896436879359259335174124174638888456765977008577342102837004822878282003404329292101861768155832109545070239707855409797592865941730489548956198174312417581289665256787054087992711336588020111250134021213385105512992303417053784597826221290067075348383550464437412478093487929748423228991317662590749520375332354221498877378573922978043232508459566868499911537521387600647160946973066549943263825296759566460373839827503422260842902399744462717632313717802873190876597206130341915160709107115650423953322720012419115864470930111004270896640751764824491366866554814224025532907491821240927803560984980056529631902750106297301229598427352171784658858962902029320292701873874883126617437699267438591872596149453818562653679342092584991239779091285036689372660641732176967601710546478327752032075957242249789576566342627061688229908477859244886747727189639145507659131071035157578038159753377418419818482398428970044986324291492412310589968593561427114221641900360886317086166370502471210131712480653237433741628446042987929328136126745905630715851376271614526157106174628624456221150345724450886442968242483990355938342370048838257992139160869791051279972297529718303794521853265081606073684684588268401304612386484643851333665093831874231203555200924509462812418883203424534441549847653249271407752639187303671391241539480092660935057819952254743622438860535283750184908932494960240646001711249829293662776935557240404515743886038651946596176054878234966626316728101618052854818582736876057468308471372729007489013526889974624289139804066498346018433439934956565976097762208013100227967914540856213781271425076008960945316838115793201783884429246366982349542579197544887574117683502438776294445090956732252490943744672482458101450981809845836930621244847979344674976684504164201259598933387719150357852967965406351276835954905088003344455447785588480803545815482049094116401975596432466819610236385731495086937591578238257543286146658481236049972122685355324116151064601603910522861768144271654276711953827045002755787648435415557380859452220899090927491070593600273373908553962179678437343196327729741299760014059766458887578155588052835476581834868206410779981943788561124423091323228190572116539439454761201634165766932452242079289598189237581352180410810708524106871582832408000140629005984550640722565795046442918747593901562115643124803244891289532378274837443460586127550449572453373751739919077108769466247353617024585107416603120826338649311128563299346330589034300677718765003904518179229793711142350442603835738524927803109895989171982979367483860565430079642658145669658794878604450633351976448282168530128415124746748131000649432118198902140912345169072240611357869857452208413681382665430135819234913892535140229100756410834859878527252594962381823673865787340701006071226495740395699515334852233254294256477544128496717300627932131954568294133464072552272988785163078210328537810678203106837494773443252131368216811707972933992047098475701236982077496601660607761016807157447724460967878252174547475625904965295383209750230805350268533997846469467824941526361069642655046642708993417380504980879636581600058598756261446052995691272601296225765285419517529834348053021305939240624646595906445248815587897939484202612645166447128202811939583312556179077658595623472357447939862339528414365151471847475817086409055654818277251275207706905707022525496480295351230160422935261213674881461714029693697797605926724146108988970341721914447001571896595564078791472234437951235261335097187270702491120194495639985806865846684003161061750594199031913276640220688237872561846084677787718524988262233173133697821138357022962727333460385427874955410463958077642667071352198315544486454856719478576343884709916482843311921484442745608534816849826759714312770526628802508152750031008015435992737975402981504949641149120670979706951893061597429852780430116546383584485858248703486831538551820438534889685106232067321280880913370995934255829225143012590368934486801097593806123349932200130302918875034319187403092176135562427975878962377696715421389122210598174702208128461641540835280769468469615750508383431536414896327463673464734936723470104515773126007429796280960728782119497721089170426467685395711997528876495687770699273629461904193870078226995481647949525011054265949024729871346024058718019238683299487416311098636242090129130273403640198823589884895019345908800481531119942033811465710418781279870868367779901972277270478568256082911595915379539977287924432456739979814749988456851824038903912450923303717917449617745407766745814623089499083943249425893380423439737247863401921959023920771951485109643593206625401358553549502748506274630164931854936470193549890604291077049880921264908006129207342693895792361515126923492243077817908166181512888679568860792277846764757662628796558369227378060864364245527533187548691696442642975720732514878568891247235153386149626436225920156378895039303079004255303278586649363631828474560736834803792882485369760025465961478546119402388605543453706593537018653819008864166900196155827634104400705354309816468768156063347761658667333190620700409490963779248237489103291743584065325210644757946493825154696709234948302390790384344591772884378023787505531351316911135977530132162595011243628652003136358343326868937477456030990226848354352457833280178918520428619805914038379585486112063771409174928505110053491426629433191917533329175260259344827523130976882584315594216796530638002711043782661045865703012481179618456668016793278673497998088718604462574884842212918422549023359915526869074755342758295619745179034758086522296975574272492615544389757465623102664402128599544004515961849890659682572051493909151459676046982745244999840420546316244789543607517138416325982946131680365873971745074102572333898654431808638184489491812131365658665114720232156409609487874983113128590224779775404303911724217440359559555415502388356524854094476743206447067150103250470430487780937685323996488470280249211349372437390812604093311450117055120716920196510404489673524182391052927965483223233722845398940046283028677674770891710437434714870976624056303000125746161766664657912040332561190813892811148367183831149374420610875586382171245412508662973281960384546311957202167504352554239629028099188519419594426397392188115529461494202609021087346109381768105319105831687697001377653670782151683962161432360337822266115367276903012035610188549700832072247691976585977321068064791016018526706442947801476595613022299639896620495233532429059534251157777442283657843064239404967578037026466143362464930573696545810326034338659753925320299224050050782400118412717655772696711511507275525014162023334618828871644982553309459639736553933952869438952189259193830466681926721050916833205975470933287857577603489062219287827478361667945020362077684853155846465734588627523784427641656538426823717326272174075055039358204708381686843072262996333412718748495308137956611794148237149873374567666453428185979542537156039267779798834065802184451587137243199553067307088087907759375587664149055933071719044466921720031061811265517518661984806584539644416730331432523765015077178130735881544718154436450722654454698583516924534508686355947656846057739730451143810416723287055530686810360569044948449823381683243697265049878214310811656615125867576673196253840141881849149773291854941618469973100466573403913081803352609955961515488517216525451669294826845039495017746483235525898589248224826814569272295392860669711653570962364684602988412402633260251413256022480252900275670848619208438085239596141992808217267497175920402269583025917223313536054952757868272901835527221833434680783497397387941844470149262086285040964267837488007740121840733403942287779385953194588720893694209429835305125463112168004249042097597810082218882064026011416288116512982234158346199756842381591392234072569314770767513058888272450308138518673134442997267927254768715707458861194790898730333706488286702488983371492364955217724146397490323355543317332524621830716008885382157601408560155860028457517907193742656261990423087189505682253631900377185812588988300942687105786829046313847490281333962548227030587273779989304187599566435049206383839143412910904287074482607237361010890901527668165027110200455017989844173176295393370236001264751852112295250117318779101507606958580613724151762159956020661298564472367471676208861182435065514398666088966162848521186222310353273247764778726752243956488992511882836480332951068443954733359417429543761612512221568763494310944563001823764902495814267306811478578176794411598058623770587855742023477349610043904277294868177886284998408576289916710225264706265018741661924994109848916805069679229732506167533329371429715424060677917429473426222851281918728824123719268696212188095433033542561541788949038185065742447918916921296104672482171988269253303908138071491586551478973578337605956557619207883487742095215474960764108091750374951491639130569697271631372653688783767570498222524975703432600454792142264180915433663616057012192643269812724390510448730097432338473933434404595334479975656994169655596081946540616652795221339969973500338278936677940273615630181511284938685209411712849095130820955139301071990945776868563899580476166239646560824224718312412789100719528830654264841553811854528851674399866791843273008752812759692786597076763811067111604975680502650596192013274880773019268249196592166734104016048160942613106616329288420469367662624789902696988854724081574739980711494406880499584467255657141774224941790175759452741478435248094343177208591673046390226033555797726393362265580610917577709651957295507505341291339775948089844247541596302857137698782324573362133964412618299232112599467517562559574998396194989939460377401709128451324652698221081283550590124824336059269922718801892821452499143335029966741187249642686888105828769834657032861616827181582206615000746452444294397459532291735909319484777554980314394446960601019539811680595257169189423442664477422819523797876284858861642649236914095066380665398559517149998962259358733130216672191653717456278426934938648316988760583918731136072480667537247004496445255817281114406268377313043558463364559791821688287562778083141592968269821129148748945723879615076430768267576794542830361957523410957470871437413433081055823396448684190475533796785783552153798994922611146880827362510014149589225916146808685842108409306142628497258263808595375122570837401201972037269183698722805442967976172392149134172301346727999428302558252636837008355184665204286771500640421039855951268290856493102649888813307289599670216191190471171121679273092452268797538530163185912482034615122468807648187183600547364620940192014449931767900698293619389793769449257253594816600840216299648964705948145316006918298713948401222889110202030058458777365459027944542683421625633956557379317244933463417696603721584366115702764690677481616980718241784062190393517693215216126956601855773057204755308977771730573204373474117294558987650745756949314504584702428220691916072111161432592210109082097757548534660347418920304088623196873846401624362329351222169201946031926311803501966217220942215069160053373381182575805903171183850121832473248652576811896795394227740589688466702772792032962162993178989725566357355494713187341773768744676997620871692330661342442441784160853661653627076694905460703128283404066165665448387500283365171422694292090774674549133690191297045837539028765765365951599478040621907895589836804354974900396242985462984236978239715616110834021485871214432942569520154692055360020156771551287224302149121114880522955480247503917088108331628009901600372362904447445296881064228244277100677087520921893965044593810268679209688577803598514667745282317528968530203637764065996563404526707378711720696591144886438472472496997433579957611311819712153144443508356219466659635169487107742344710337831078277513662621344317293418224765674568393670784546097289011403906129782901815427444709211641781598334325200471890412469516567092877964021085925285655155942287720478771463265711575353416060750271140702384038512836298236915623436424628278469569359102327771828898089268502792529981178447768322376555891842110988896276077430718186393604454692103136580369469904186030532285650911327161150259776274108113585509302328922711270501535393094283781292572105342756410707975273520144813203298071914279441644142684693288237138434315751013952401476300758453487549342671178240830434595390720804359341796143400214302407687622662584484273128845263251747604768955359397628131571041219749333123753907770328978953838412808532203461600857235654824907635017213591564923989078868792877376793716073614672323698691029518130627873498268078242681512735615707620849613281728842135379170549164826217231567910498941853949971154616238015224966400608324301196064438505458782599430549441147672606250720043712914013005106955189975381477343934468567441618393462460640271465046095791080107474899017010435652049990146812792895232656360658438842437023280626357290017466677453365843260354939354170503971080181544960981983553730753401817909678138229412151357551734880161642534236873948551431723836445777656040913126493783747166507826030278001339775437475082370526801721567630990133867648369003162022526099911632151844536240098660022307548873495667494671760400618525154252889750732820314169306003075568193138688265851772275915369317414329238709386124506493901236854447175399462762496877008989787315306068876312281164851661510228964146320770915372678227602363099927224883879003728969038987228451063243963465241505540805322151140956124922820723840982294816290537643534382481490344892001339932160287212867982358488144600492464233944711277338879672067647153204533797119390647076947251203436456990108569344304710254214599499161216214059970824880249531327097753514333016732091611659820549872378885379572000147164518821707525726863035283176320986481332299232585986140387193092621655702182265678288558782961717514946999137132034591583579304094255613296737296601992421665134949211288607051295494775293990097354863942659321761445151850229855188884454551513015071422986297180891773612441526952432493504304186927474803939614274037320793212796379042349977826593864421738583529275747684376035539031397813933849943540687089912440873252694952923303555260546445138500398350728563891235499216215882538199844286737672206752826340300592871307402839606863229524941656813245799798843232475963700353362878377084658119678691233829624669746288010468141967108333505347183422908083761789628432303619832527396471277604041379927806262263254091891570432153370206515965619775584848806134909336506186834895440950974332366239450060246252055982315751277770845668522058520694956662507076301843168366987697236828010807147241899526897312939370388830248871506923395519766831108850583389996861368943045373489678191842846121017140982441693003604127493825537756677119653913924273034808325901744077239034703356656779957545638426587913960055479016001953867008803143680166703455837550535467834007820378170584069861658828872449599944363575525353150827530800127911760689058317850845063015913230819360623251554512060927309857320145813075961553866402865102423107056992709720983708954805008627610559758453696632032025686082652229029245602820357494458869452373622812658651080700625521810147454404538706663353272652300364512982761131710713193431695610034667942796846447097116758159114867052623356022691318456557319836739485115394899787307615863344220825628176328605616682515660747627645461882254633014307016069739076374066786496448475253479313101782835075475061028675871418702212922726895575234598241369409039942952309185109582038264510978645418503298592126153882995391303266721618167830477727531722971080822224096947849879150654121305579851763596300204951035662304829157458121892852079155342982970058981697241573125339802847608383596509957529230431365931332786396789297851766755308088271225635363343961196419519232573297279857372154588802621454344714119924922295695881762298743779843961239495020214023390021694560520727224873623622865084560950674715595257224836033356035895543340865106214436425686815480742220188810668555760697782296665827990715514496667604482965221742177594942362021528750512249292207448181710342420666249196958411467311502367306138404351905433991321754568125805220398178372906558102871729509849882108108992940941314708878551464991908603285089645364611882809207435404200261845506586456182246497657442532684172545234364167338044560446644363527856896253743334313448450423049959422340010928542952160128085564808940011267638353250685043423845587595394607122145589435393844625365636554425369655375199861572758745916790902708167562439442189033916849342801083898560370380159411794568769282073145295912963173452140479928534921703736068310810885195104797084813354799097510431772689329736600367272404486136381133499226495530325973288704202909514548427318230457466515451497955618139786838777856675193247671250321777038809400645860006842146472240793105108052217826564325097625556992471643617409165567095427285588557320699663485168830375829896842700858452615337671468727778945686936391578366235446157300786262451881476167531984983313324643842596700676200599886965770768024006786848306718830880053161129428583666980034455442824464219276447566954840844929517065125147185735238961125616556197846884596318321119340520154933231287702055445329417637953326494458902113803009600301018763110601788684032963583304058546765728235730081722894519380264483622038517359883017547411674402025597102479021874249140044125729352321841149956528624891401292853893096801239089498412103607363754943470114108417243238286486862122100407208998154301570358772524169557698644245677746594950405384630729277380100696915240483707547715006450054010556840062472056972945281850720830301450313921598557270163255591693926735706389218481281114657910978936916677153020891047901054040799533855605842201524775053135333711069504306133065777168891460023926347932575565385441441241366179273968754744252830823741458958913271568441973809310439605840690549062329147228022663916047373524318837091247273277867721056356275430527342524865350610427137443143519373513836572141798092809995049083186349116278900016369570232063353190226115545891487549808843926003962911437367218067182203847441966334877461150713648678110374705077582679774712758502296222801912591409818598507828605079778813204986623261134658810104874497036102531181732135832139005740289588940659825281281833315565445174348487044226450186317553796822217296898176276586371491594324897880384472522934449305681269320290813288143466211180558135585744766637573095695765292218579076872174461196082480630484983943416336347998283367832022854283420151840456998120918536552066774015397581852802628128545923952981933985566128383604952751673561628928671638753322276100756586752108034119780611825615083569610878068344245662511784513317511338295177352821333772511071344258826287571333141073146525153208328963933525221154646600011483005972890011039017626137857301336806327648612394079170881974066799689717196873364359858073152573943048217625389306688040792798234675289421085063897084272012280248087648717108006135138310868952168850253014621805285561684642438183097016919826965434619511661341196882252482067105193726078772918316214024364294220796260053278888361106366090665406394463722768063729352284693668612924640422308591667874387380438255026689128003455303107576012392570860958870000941718228558222535822639933241286565653552864036310006649119219724856151830319625393259346818834608431895697925531263276638764905447792138288584675322236397980615099168507493464213888326415494547837409712761123722457771002285363008811901803104952307442654006497104121829205606911160909643047318652327015024968547507015035316616794811848113307105000775632682683332249930961346937673520756395903624328701530480193588231543265040493135838937997537896097101747506713830315035665333906796203897155014917589678159209574939772261910270485953869423538797912974498529839424694224049565935997480252379974319939701690762303185925264417109583613387079460225556777617512050592666601471436475748286439189771304902312196531826688539252867445263576012590935489739990084636605056167666206827632113563106770965113329540575950652541159345273068710953992660779906995800717171769085664571515517654688829484501719534263624597265720965756543176296957503884362270651284564809278592255305763652386129283347526952418688224759031180346451896013945268455413486919556024470184426980828142532576460011734970106631966624590471617186243736269333098697796654319702191392694267499199486786402519413072931282604336839781121800197466647618558066083742469256635341114744841159077620662876279428320918078002816145288217416090553954657550766748468639712048062597085333200789802944698710128671571789935928526233188804355976448716943630492567893750502785020536711383666281811732769719887130456123122986045311705965668777943295264678035759536315036048731272881740219034012401135080949386719432806196781343204617572827297162782109174150506113421820784450373719398967410345708200863803753132904649770564437210523959579769917487568400877517319666137942492737877189222609202818424521565088146619268799624193315430870052297076202934416278235495175995066184921415801204586097397909078432852509328347023807137566686474922340680945414162351014967077833451264458233913597172789832014697681104973574892190562290602095241582895973868633389947270605690409032818603018417398716720489626828323217776879479282022306998245428303528556264640361493535610721248661095737915429551439501396131115330349506614068494175982864571486954317685926110710300800631421425002469915000042678406811746434297250350817605433824967031093158125887331613199186929717196248916228847202773130638376029052781544471763844805186814992285588210861444376367315510037469326084906684085764247054940538668030329610779315663221762703811683647120343194532477742427973654697065241827896830854036480881354431599348910520844616910372656627939644222921372728368964251447662484091642442948937758791507920526709413803602201835501021496235967453818339757891912134337118862716889732715030982500978129172829222238790676325931254960116173901824067272447773718832301750590460846172426257311571808617271138591575068966103864497820968170389385379293538000805440515586115532646326944315822827718359526331404734829590720586616906398837283657096764301676016615105764577965288067541701186471140643687581304137113701732300728467687006690112510738514841105498667163454792653469249286314857939804720374141631855408351707762372836839414102195630684468854978332198651442285193064129105749091961328264361975199447724935957583660344873395515705486607761274552904544628605494060246640390127029678640283002490381845823343475011614481153321761200077369835962245620366034101445937778449202062853595904732000640558698228572989376806965048434362495027541782409260501710878459502586598527578350969948403617877050676975643777433444462387085349253970718692448049239497156535528727192169057700522889538581236600683573661864801515429442824760650588667430996406160353044235220538095375186227871106968383866644991861561667350057166796252996056733085477259995693100859494187126087085700841859142855314843941622973912068414402551949910587925120524171332925133589936257191059800082669357303774001367633101396499657314081023986336376258188718177018244091733571835545505996506156534851347807614142542661074316867412748982308107455625351588256234735203614467375618146146040470347539818337025523663428562488787778765607355866878799552754401660656830830862888856586367416773426826607473057054766885039485370354739010199405784983757926486226640654478413159905214051029688842861538532399344784413798382738916079118595114607212032293407279949818006900166119357692440922681307707199215966901186066236009006973653073783325849379444835809257473729522720686092639629231063945982446952510307245941237132909624593986611614499129988646481468827230087880653811708245150550836416522764224186537734200015927096868849760445506816079924833501715621692019462843060846809937473645600619350086942145618968450688698337948989373461232201759836779112279304261083528325028138861892186998173706622953245655458666918561283207039338744182003261791225584645473124060469408646738324366088977238011831794539227881408332510459479693727867372988134762347135151921984414909664476089604056863240345762799524973191680551901933413982577358227604004465226232764298007421297788241068393363401174049068610795063118619660125580531525617078188235259414521850238957879177733970490695201900123109121396197099668558348377607069312623153917182686156206472297976694384380389277087696515313690209327192331305990174169643215269187383742717141342799109221413612714290406325583044431223184491312663653249135969525857281421638075074198300496532095121562276193037560338579107187586479053426114865375025926265320157840790407954672569644606397246612550864854748683089480922182978996847525820996234355475676830606230306106985300846789847057209143702701086983005693440485863631608984986421287214484382608424909948429689858033890888848279501060390065435253806662418623936026038893380489808958596713361218342359660704239728210084638455864596599564169096679399851656934748244075100845013279359073995263109203307224208318187209874061627703013568023274629787629909819830647408614460058532020565232765331362976287684832617342527458603699250349736224491764652015331170879389257779381492525186849182381426297267566611632626127902129053708107538334986723668939494346224151714769508224495781542198747719001124532533247232263639690525293816567736178264413879025211058264756680134416298057961059669794244371910278589770593586577978051207670168321242568942564278335247716732619702817209457750423272609074141851586213410818550219461614214033033548361432310666977238776389362241469285217019352609816603208934120709460077116833800327993302154561493290606895713886285917451859232409330259749677756730954851142332801211277377028305068090815666377111163489769001975641356233461425099166737568021954784765450860515830823056245847790347626340075117752966980254352207207395978969710103772206887843495589480543764353495530802851579184756582647278293338238799990550552792335985373359515909554773246280626296027218394336971903791282840484292592367426728077547190853496529442280020925929807384295185247477757772683269435265620864075124824726412464573171722646699118728329811482667577176019222650965616350228016703839832552698341114274677563270679709529122471297222425176724440570572611682417367511205951066031016393825131677841692653131599702834535846882834778556574453890245767872383603218010924514825728463880567663881392340477767728447780946078466527995708539805792174653328490168171192842824148444629279093643146054414592357163245790770626683273493908952147492226206460640389686495772141990487992403693244515314331099767629250586497684248996742012159735558809523956163901975892991957885417778935327618988637610133438855198928430658465603767596091621800905549603498716067805459798258980439668401303270454191063351071119299775457118669011238618631667556079345437050980906611658108067341274191884506555616050215279730595862811759924341802414419370268257794208484226808202189480912677389270912595315116362905435938319513978840213434494610970503607661421512834923611714887184117865891823713912371926837793143336493152022236167546730828899085679001124245715870568520057633285592170444719338857950419947305475045920168641852989009579008515382968362165927059768759805320345025217776786530380769421723311970789050531365989049113779287667943723631957282815229684089739999245239049622864539491240902488738861004023160448819922575626644838123822664185405003168959801994401617277882182628134526507109480989364937399724126683479128936601233249941225808503991394369823859523971515191226535142245119533045006983212056147282225622296708843474646100472049834227181171468421362891267841477148830603994672303395881815916089262408241701292280639061333433580226918910155522915345317776831647679214628273408368122910400259311084085442462060438412483162013188084435873463123606044172758236859623594960065265465614131169757166424551997124144488829023414087603967300633959378622606542063185378690832833917518475087575234443553031590111911349437329107958970495133765994606102022095688292547318441450189236253220514490106437695636409865763772323871873701660783979431226687493180913674840723366233473874368215085410097389111588835263498822927408029295199327657326277057711558287117392495055580476641192937936843953379963080976048351925395928300868190237220902685556106961600656533729611313399696412864064560880766429581529603473615330243571597366582355336858476887656804819951008227464582331812933876320732631565072474687534007106052068026166161997684119857497987202968979388343669007660545988898055321554726745162856848891118037061936999277336432439350931098193630008432330041707633531066398170844172815694469633805344920515976704239667573324176713427560207040999051515282968690367213602416996961592635613734665349688912543291971424066491079246500972651485513967785722089276567630118494963409901611489402568832753755148154424828152759181391596523445322935671405259360438206122451105667874763233903533788400184548663992744862490272157394118890635075384018442418753167361004911930202361754946107249758720285527218496155023399009908431990828412589454819663825206991027451773990920810136084509460948235892741806694755640871737619813367382364430943008713093491293780509719387505753367046535030374609826756558014610312824261410524818072687240138751219449949208873478832727140276284961183630414900156608810080636984911937322904327004787716719962873908679682077959949687183746404467035504180218448515683123705620905519105534543787305202667461982659027153940928911435614657167825106118169045742791566508742268953877739995785451223758997945319452426886422785064462486349293799030985721900861811250600973855200095915995124629283715579362658640250241503674845557738492713677973139552238131483691008404367438489193291249720801039914314557105983165630947139289481464224873006739500446908737378069704750530007930019621481857383255388265657688771507372756551517777390672894427820016384058170746927523872188483693233486398308159514652903340274407611794515342325405165468104072862617477693997739275437525515179135000921730628201131229418537276118648894511902001340486027246213582702423878689093900222758131800616756731410260907118458302998873856963143041716887589496279173730434085308346544925615023718529541507114295099241625968861400145092970024804807015365780387601876799000538049200255575966636991309049314676854465641688852321498089450106125062027465109836971819046003496938382345542234753597885761892602501177382080672386548866833244254393898646715288947009637968086360043160352043853518953852238002706230235335383365254643872315619531254983088983803338770670929169684643557205087282280257582447298077507409828081801321820356050583537951479075708295002574721721759129748069317643172812768837230341171736221873295195898331854385433912283660959985999390749883990631894504532754523632416391629827553066408599155412316198993211352193001684609326797636985829748335573460868587656140206254489907840777519904028766007169451677141054920246475449859207504823623361228362955868187689650998241814075466270323217883749511967773677559897643832110057130637440128143260180690064778194731096733941236126642556309693546794653714909821541431977138934634169400240042455660814961500122504562551965365429970642466287685935808523983605004787666936571201933422708667269527750011133066603650552380243011562060762991906766147449516718706550633025700282504287246776056587863595392327882148387785628393940057822193597765364886555357183358761518961946194993752098620864297204475311839018500946936795305446378623803638917322819370145474863385990870273636044680880432544594066877083632016013090463093521413331713543707216850532401198810553871869214865074460610347558663267657024484471802227898379967217922313451020806025972912149859692968962198916097377252011741050184801644298344834527001271860040347239511257050269878214128248483494483076412801340153775322437959992177434000084012725502753946803051666455310961794435162657152834916380550622585159106868422976140166849453892554725402448602898920729302516448860610692418906445546301469348988797985677265574564090765840468772211225235419370528215114033621838721749595358122379346023015999999682142600449211332371124184103792976774257178876546012330950954378838179855001155942727017644105917352345802666133165535963604583008602207670115602897237816878125015106416881219830106442217793984258665398696379943687099082471559457147988645425464336056166561193823284277240770996203356486532640921285565616540061383884837581770737400572713588586232730406320648680322073701164842925336148172511241754086540870785713033022762313640609513280150659508630516442026872155847937339113002207299040747315672797150910314085582980216460856029613954353607312390124695835530017604848183724012092970477933362567401976040110191161225439129662245857095242915094448526242535787716035236596838487710993354615639849163005386417132562216170381058604909132714482193102735986342586755595872854829001636897650830355526004498840180064131624718596829251964109987662512877093085777780883113390039554131968470146579766160653846501512487138001728569321494278535569534216889085320161670938644105365442752383600457416277262699003646759283372878858962612749891832083634421860403450882325438103733663033709994903488169630878015133090589185330668089926073500837780777925727618435845150025474702984341072363860856495829596245413846605925699382873539731226520932787600592323331411220193391252739570339523705178400813360488387357086394895303938189925514056536203683601021079672850403177668715871787411083713663788458002009371595744530580122498300069127621911103928282992623823098596148632290790813394877712654937356402207595991564194639014387083803357226360732109487573675017437050190875492330123502291609390699188402055312802278127693727291371619692748077270606595931066871069757845820901579927101945213502966690797469380524293033419506493499800878449533399923327569118302458492444501328783662954674770803422682212751555240261390297824645737695608044284090540889485688383386247238333281241192850472878984973898428196644063866013735136609404205444283319785865393529664068841337615070344682752326147723814829962569426864712135359795764933435610282397453361147802251234267538983124158324273712554862227463461499905896199085334112225063203731442631751788614517619781304640683981870292509607936100593502892351264184786281265063874122970911188077430915289384125134697797716688545518204638067921958878443967011540788820162698069809081720730261386774621441519908640625090790752905779859526145481196008793404842002254390295619508528581614565692222676286904110121580962689557703546469090665627456324165467032621756009549481739554084327730062887030038612503415538848292760773216188786867516846022036498661833745469403634488365025971716019123306666505815321317098320533976142361402512497470525589042981268581807185770712708693642959014215497935501304935639173466279831310324316349315194144869667134671702779449670947941739302333762191068209406245186780111699121949386849462168100336626862952317409493667632167147838023928184747599364575888277158091529642920348154709130561873297358501722218429003033925900691023048519615516573337196915794351368387021095899145959201216551109911781643341373819043321601608058684532114516476279078685457994298965344570545154462460890055902381807429125824837225452780072484581652362833364475408186068293193412344468583808455926599307291755095062018691614682991619844885015652154086915597015374218489248660693023820280913702183413134725087162910788353884986539865404783047126564441103363681023867839893579155509124003983530938275821829604875064790521423257734638372649079161867526531854154929274766446687020144789847391978641194782583537989489411846505552769171776125705964797774877245697053028746451733775206282285216043196955800905548516023488551083182325839239059957027299891028773335591934892994842059105531045923869623142765283406245041563036963794078970630388862933075748504822155671857607678957923523746385179142956209061303393074243385083432227169514500807340655490823850562979060204533500430757084485983416954902332170895683700586928756776666056504614538358501134940673371188812016609411324019278569563368252858841367510176719499478844968897811100196249671463373301241865561232541855176169007466649306788664776217987330587986494868207942724328913204535056371503642210087379878565927050748878491055013889826801194762221639749081084811922054957011813989877850496823249182133105926501289579467565496011137682812594930764207561599721616499992173035431522758105036823378585270380344340936812590940922923398712342301150596376680902164646694774047317959460673881055194958320921592238470990969223413910109996434721367633367157413466215386067485776096658768498412810017569066860643420167710401982271919102599962925395407094797110908078919231970716653715983340234572545904569784818739027371803121253751760134469581116819040086629368386007229955685244045791115676212183683694363768604031644329532356065891430177244530723186117247495504752744565665948177864284476852977414482895725275778980420405859151030038858316053874254780411235787836489323456149938259190462822834479101594339728984372022363268712282501956056351991389307029635700411612604844797443690803399127955351700416195329451434884602974716482479643609066108547192053450750843610444802627425979091122794481250070477823398634106936298177308492484437617987690220479572003721206283411353790619061923724525588787325055570370182055121216811880082859812089099790686926269299807152738910576660968487784325825103668632318254740600092637736878703739078149345508372422282258862078022761985471711473540361885239092873755911825093478834567769410186848607879486685583099556853477856051518972347579593388247899294308319562014188956589550224125361312592088555492628765569131222669110875382304051435976557153987870109215352119529212839806965368008544537889283352753276816210754088320974591443345405911188005945477215366122268485246570409492758595843702935450832003762702559419205067783889622032433201428461643753503261985614326895567983890544363807330568838222731981997215978107151544011556869857509304846147061322703784651541249699026759011574191143525751682201394666276572762948312547639331959226593324634802792041021771493067871453543458744417460160928497280631968598280281630394377135751107658433779938917144110544739989412655320978421162478709308290324690244069580983160014707944393838178824097540455304475192684282683757671483916437404084687896293502989155634978819235039750610471714087222915146241785688031549735162085130402915560725867123166061415282133616032045492126793651401846665452781615226072545231765051648282263932425544526116020073965991062250672245760106615310029953348330078221033671570265436129280461912964825258564513978152950319154246071690070446650679131995132123005686677874030310797691466059204886204305516526087215395141430590573648242174004063374888437884256303542177154098661443768647536376928043962376856108718286060390637826426832430086302723638344983721009265569950652124362194117702549848594055827630690807028355416981473205484237496073840021291219999733936494845043015042119886194180144112546529323286270457678826076985288444424482160639935893443939757782709104960753555460580368474444709510088080095634164241983553362935650810516016841321145736214672224607166502433844859010219158190635772491011391412909911056471647056084064347900947011946963280001639528135073984367555262338026009063209808054151447428446685403185428573614548359105449385316732662774167301512225882120314323142789040293150658644939103664195310911548050215811912788732980525921697156846587242443215380949090432890252119655705812335734650477035830359503664614703926368293388099768634446959356552107913725372619117143573323769793173246045733546812116158367466782858355703063582004634931822584436130713158018467525672088589492273225997757121729624552733180199140979671802241171722602332426197526989717229704580365539576350523978224015176371394821910756507701773160649176243212028482793990843159911716874070991321737195609979560412096461062739075127355638840186477157293653034284074213144024034506666965306230766987313155861591755039280118772281001945084415327007437049928265060231344563983037601308729844365645149403517323332461414975651279151405208757142134954152946591807244580402814028861730258889313778806125468768963608264357950683172341183677493960907531253512712161902627022905262227182622784513061913508290914595133299290074633833964272329123896595468124551223717754122281988867004451339868472551857928337337930745564543326955333396508018619130949344396654414201819632293843756996076235730347990155755217047211896284032012474385895511969320879514508737486057137603525277974428575359404550081778341389501447555730800334391447356581677646479960980308202999046046326093372537406242962000123229208371878264567404304576658710252163657836750191307184023862971079959554779487503922847893913204647824129881871797593435504020786425822548027975670822588564830872612677500639028203821850409078884348267182324676849807335665788005060597359838060936387335846744144702561385471635310960233132639792869178859600597863850273763547226421216658186438850002871545188332217853350461591844953538653650511089252668567024638457069160430148966495640880656270403571278689382836517445850233207881841700432440878112523508965524235480391608370656686220123812382872772433216957221228617472386442114049359022900865648630665500317778009915109053554942013152505772635187920410077730967182734958449181302764652816969240946214497864335927511132391773086925798663773118264434628854097940356509810160292883625103025964216755009898628076856955038805212212351306118687036278358796127062867559581332878274270852228985454222775399353437881844784222645212623279886206430897352556287666179105766289508429277575439461584749146326188449493260392240492048777550558873592428080525632515226428041922057650267085415652832404648746516920840685263201525092932126522664657636313576537941423499652266325723411869195633221627975505097195547307082716788760684184884387301488605729045521518603345838746888771665619418444557425025827469296741008048021694479211264259961557839158054570077339309466949467524943316007869926506501405675342966700694579134840995664053308590588750868653211216178756324503254430871404253748824667670267601870489480779209367534175799865215653582913944678671453859921239577213595001051092572286932873465405403794751669362160334994021156431633872842514599278182860108428574946726720187407424686400956815686653551804954064536121211795416520888260315241498009640463725618829009305479081178968183014889875717104816642066976050492807382120882416252220960066833187776804400788724493674531236096380849980387133162529215020947944318451917575541009337386796526203168889475394743388360888872405095851910450743331390422481403748635114789109067835638024713663236140256162021351045834603389285279852954112849547399520057062458942493588524828923422979055742680436575586786997127160634294033010544263176505059435076022619459621263265002979480888235618030401512426689421166899339233307775713981337797483991127085289806380671730440341679546262476380949582474894398083896994680643714886528221295990453786650488454168122916315498400427414755073863872849454349847963288940815382825503726251285760668522976720482328445460895745406500941898482598062886778334988287700008118083509727431055695591486710051522359289328905394224812818123342496857829424524612739345857682591319288210705679356271217904282606993513808721672270587560932524022111860267917806716056840630247033610116192760564449524316966607625140086668139075858690205734247197478241378002696109580583179189143760279508519310644975666722918969010846982242845384944365782997074267942629905122993263480456667125810846506251083671381467639777039543819314350248115865144595150518917693313997904617953973949779326933458394772456988696754514593809830768259875656644022069432663917037694509058650675735631630826967762878276062023801314801235403469031101224457281829494628176162728441785910171464492945665196637074189108528113857664196301669439585937554454218196419339076941074172801193844785483692524327061070383674403637277867683484950339588805920082142092554036537859850375801461885460214392135979844970954809567497141357731155575567250386218120016006890401219204491554874624136818591429337933973393708227703173583632913402809702657515782238279820584457501729620110978588373951598819017772534743296877813138614685752429858244329942300568107463985467351756714916493748016174716714709042901013930921264727079734284978968108975018022910296267733125412361352408439685629628069839228238066860008739184789756215628199837386342233473009432564153204944517936176376099807527076591461793828847230303710355400263530656703207894899477456283296811587971033293871095479144403776265828529788385177112263335128479778436112673583756239405792305909273239771455936609867876135141079883957181993894126543297590814565870938060760419222502650456788124967036928650640093515444462264986312796272281096229174025024086921398046694524552364291849526085261342691086242412977889715228239259570060934733484956736513887006602947252295024434567184136038497871333192386417352780966415994123948513609444605271759013756767175334901912308087881151912727672747211116097768677051257361628353276321997634745274657333032039210995356944215268159929413124063480047935132555977810489072986104214922733455450836590238882903042409047318353295841544618379863732388128663866762943021242855569036414492232979222095848628638470165729526128684904630341557150737549585066896135056189506693422015112493608696284136557527979153166749383980647329851104431519859517872274613420119944964260172069742170183381981453200193812804598622117666551070207870126803280196916477410511367773275628597539056435832432851977895911428994229728644457246668466354204232033346691899814062029583827773959898492226154694311678655023520566207312718712692180902948966752553874308549101370950768797057482307728354417611695544809618397605900513771996385331384699148024396619795476842731298673272381727649259165329121879097183854596977357047950505656099656308264558510164947216681439442835916059863497437438056275867394206716472435147708409439574086321195000892896556806581855576079685867650165353637695059310723458130893550890780041890717539028326356582439904725351627057739299458285925491993405325861670418765922756863929028026288802201393009776241964187289054942989349191986350366076925988264006094163619010742455151448777981456777850771984802462646180596430032264455420176870154285446323661524805616727918413029515808918667809903437850132615436527377135113002772767339435301378551383586102929697055808508273932310659881534776103151397169056327291606330077510396783492254011630500930648799057150090244711242815058719496833341161723106713674411580745865788957366205372212584939125524821270575340144328463802003863125365029421420757183534117603854715174069670863371037546338973627722335630246148401590410347787059750795777541785499851948267424031585527591209490778238042377447825736540243679433770149709524090361031889858677451691645261958642206336286708460630736148842469354031031756455852838096427632185126361187407154530110151412105683920905511139709427158252756272029655988820040130037812180385861811308507777637095078834910404468464817083589128241430976964767198776991550129255011045538478603827770086130670506829827066147233964104200717883753194341280379794944875279898061933160597345674157435945871092569650706321415885997439201162169494208584255368640449781573873583571511922496267638864877181389957585847377360036625662279048625516554350893822608970811315527421512909109762351173917665003012234013419886251119227020616391723818788105016427958107401738907256892762601525045949025144954409503568418309375416254324982575562454714342287894095089797936994484559146801827647772894684434496600070596642135129944501240669503239032594523488698175820625964769412811916674559931293595499198673684937164267987908484755053792376365009214536143814585310609840970478327575876089423016767313923092697629489993403885237339834011038048535658443924619129274859310554167732927758800127398452291147100878388054229996975202357297314613007500657520990895846413655324852472078728702770904786091279380452241029573291651352372545838980548289784254301700384392276801141930786153573875056986973881537097618978710601131087303212045513422346568019090878328158011851282773522772284387635363889181539696907006195322894463942878254540994193208424415142611032405665217496147282972690890233079286997285823135403031886231367255800251569162496736613713181548997853132756937904747576938444403445827604975772376915925268963621271424503411062415616449343788722031247096770720242758873831166167071127183864964549839241328825033161388631966423948988012571658156127588228990497956129094221799359370293014223879952714028457687615520053709463119441601707210697915083097808648148688013491386155857690932624350643089847178092747333816682021269987346065432040055625908818216264420140716637711008245796138134665748122307594988177402187820256385964495039998568794905884292575396565321593761079128222596916254499132316523332594138714835362905730531110254998521271860130575599339862442149342937542469932294233450386909938858636349875730171972570186349788062418644407788514772236621274833744668172510394517763805516013315779899132385076946533810355793361836151550085243380189650938264950108971017737369685378210512639031365302307209732275752815717437910722380755901739182354263521619269197934643375223159335973261498727915034184796929267022931701074670260616634217427631382206304281518777921888892403427117677410409365786768973912054750342016774216711482120058997221107383205671898132153414076713392969306259046746870140200922311160723569685178483618741268736538126247620811526931377485120024393180405887350326151989061003440362837057341267599639738111300698523676125410045499293857781398948146066609205092957045129082074773497541653185040967006508190353324928041332311150958059801037877540646050354411522391269125846279041298831895654406224113891571334413620949472161846919213941717896644291319287380922021492265925306307313192334907461676075440190208848655060592542552844223067646292920228346439997655974973107244633729911709502471971966973167180973619864205839919667809619021147435196362948131474975540688685243069501898119522564439492787823467951903209315300372532772928220207563359560599675952468116314540154544727785253477479170064967675111827328085156210673063272308486537324412588616731433858791055792501386182410335316413730271821773335493883450431302267490223657339495768197386567498358840475084975132129043485824914475291117636796991653187996905067827187994658183108134063230370300863823041206219510458493581046277834744848539426685307373457947851407638349908783737110937698207475075430343337414125778621494950552327255092686364424076655278162142899523075325678984389896233605206590344886948659230254945837966133799186064560536822834386979735578209865873663103308391377970078621752822372346496226258722226773197860258977043905056286115489143469995713133057351735364294193366597033912913783823036245282115179620666178211386900583752404321114819534151801520852357295891949706420174001172691930524885751241802237292944784620025507075007800706816192791565604806782774921845073261085744785255434499944860921146551224244886707096380925096638684777538204608843820160853253265509252492146927473627262656111918900878235965829375559408124519788250821638635601315026376547448584815586728995765753501253415500906689941348032978865865497570499752062452360298837427847094549840661992573008035849065823793764604447556790767185227232016004120249705842038048755286128615763768439413393673217971369045119332483094252654169889478635830200936861134844391992581203701387193411382135348414155944399589868268937556465557464939026525922657409860027578967761440916019406949100742805643316236725973086521646150505656828348855938416176139386700252031155166805029937378332422628486790475385539013129271550576853990600629701063443931820318690351297442643521858709728193764994841562777998736696952804930668449694654642244178267886765090305773218444037189608341801728522487194173151403692202204625787794262011385590052703022644553384571439687457380231890113042485615582493405729130331872198050804495010669205025278403524057505860527772663008283628419050320313232505543938986089770192011096716820800244580418214457237585145100240652223321824620303866708309673300556302039188870912643099357068142805595319241562636948609640043697086954387795575223070593959715820126097095377188046633238803622250541449814379419917333237755321372445392573981713737514634929812005043028731106869961877794757186135453596959263355790791583085356521394993984232738844315534934461481221753070942886501330985082069881126048974798731837208774638511239204467276299538405732575196096975288824888791715547110307244320776710439889642097625227696088934893529081266957950115466539671083263525022781174383170283708499341562522000220906735797036284580212378664937543024134584269415863702891699950258229516949946658026883659194421874969464081386482133373492979871924825055320087399140834183861192106231056370989639447882124891344789474628386696226519544110666399473469744734490107391920608680994361296572687189373056666793996615630495171426867341313506566278226855784718024747536356734567722274864245891925740379913090493665880292965621672567137335489003187564326857133653461377766567688859114240914290913572132053489526000585740221122157692899715698771420300476228463077884377901378684342634828073528146296508658995867353119201423041336008478121658387476738043036069806145385666012975541152173069650381700266428305441689892283117412568802949240583396682606691679558112913453583717251393963083712872548058336659916727352406999077520881472989558303567350582503634803196853875324752718332602526631274597160936604564061530965198045262257476612484879626712674808105898964659549942203859985996931221220256595780180342313508418326431013220292850878751076215023338431266117353669866457418047386714067111941224851372115154537255779835239095087968874586828264976527014190419425453736532462784799498873768019625048477731697413900601356577483216858349124218510842280685459390421854217615433898881826150873557230922547170810387319338445503778168707129765929696088516991402768122134333847821556777443503811743980989101232546129743292928605994510699740659502968333628141751324932673375766735655524959350735765719416738514508973074065150261731511030794916309109742266745500118660323334843020445327954737583560685249783610337591577403614999785869699537001217776740956175928133188622191407110085221457494230459190006838880869627854952573067873270753051173391091279058001106223728882377951605028278826506589579068272318082543101931416236229850307613837234312048982743900997379821190123024230984074882120858037804696655178428803633456821127331857879179081693573137909195438918928220398935973517732002554299654291932984842358674559810568601074248263473993279896565607372057168089601555010867123605016635339963528318249724460254458638310026653269860022355985940603839269138653881873368871625988470590366241862337742531612310734761890573043726627196355355441114794694193139545708771467585435828066712046500147556952121418050029056980061654252483994614191085346081625589114872519849117935715226836269350735300514940577497050047608640453382688234774912208991349834553088099214243752420528128486248020612551124638950492686722042608188059743534481548717580264692825682528498055817958292115991875406847774030576000899919120165165627402327954393787879515461352539303463221600431574460182724536884417302510788035553581299174072501348189151340717348917580850162817151725595420503500318078095150250864202800475798047929697107255193349432227129935761018647095220312717595539016019575880463761518792131233845433065395087033765725449560526008820786186795683203909464060090964173125439107553115496633180296369186424376850154391260575537681963645933526996464791263530630673065043584385466918578766566992142644470687809751601998591059510936622895676645834213263868671624202527898806939295982449227293088318019599723097091489576821387857433354401232030515077655709456403475931406876059206958469142133866391359444159796154599231824714106261867645432981928320156171488155596565715988996603102641688581093705627302224443071594108739557359951837286348193556113259791202593629010900150588255677534709905593325083192181655427225125864608082173888989486813802243296532364933786810770222537004215655905964310324292009284750512681898506154248339773456804763567708726287079858394950012889181063983550432835528945562371431406250385435813230061015341230361324445643592863701403710928442075243311292262205670863736675227323583924400998011904194287602913818038111144195264600504387727755702094642507801637160768677394709451873196293522719378431939722339874812653977108043290856661951072776525627607737154285740439239998220805948881812532475910748177799834825197863879673406416618411779611817034405802234892709577206714077647096761952296509557878775750602586278186716272216761754297576116642463657628482013620577524499888359337444804725603520304727578030320791937922658493318523890841361158278077117480400069871971993401625409059181070741038365903677412933442852626370526604667685602608847025905356410744882776271368664919195346969791016477074215042175748241915187773399416626789808743892403641991429195840035978856523728710367403068818692419734989447614179508742331636768915553293982383585542796783477713762087144604869819670785610673375803117430810871764278049125267430614767136427533071045404151573673702517537296671563501133514673585917063964863565379558144044886651132434152199732425097967852651136732706967740313956755064787063577062957462403074813059231464482216239326571415859516194656869173478640292793103307413923124967228479815069602082784315127164073525685878858769934943917747559634933399082849222555270615753634808373228119616203512645572202347645560111254166645139434724976926614051486880443035321691914937753275929867394202116733792358964560449962104395854766670243889946127269058339969025181261308789488100258242619099221348741759314047309785055678665573211819486091175414279542799916600429107804145795817145333490549454191065107885457670844724827569769287732119188655288332739631721806846702200868108375966446016784005703635784315406209338399925538466338063041335434957877342587155719048605519668735608640537546736457770463590991370773923142777303714181196382750648749039012443856105524064457748321516983588813721539217074224370152748434964128274488205076741272869917386998481561876434638401926758065718297765514704933204223740720174993028917101201190281550571784706137473895723544548658110250398179544549470921498688455535398042968169520522077341222734914873152263137765611766820402392819228495993868262063551829538235983845617217512939583936687040236827295143790080362476522914987827809710481195136892657241197216793125322924121691793058540039955449722168998792247234689553660136373520685925588849835250678494918514573121010678274149990667952123562654608357546626587222423235210093200460595514142533377977055057423067439223057627773960062679796152325029781936231876703105066578902060259041520108736284885990510683596468032008290567686773041176069962555389980295604156051212489420056668690887085637146455460189397015926540756053276982387209882244755823581298464758489913654243313244579361314319956364288615222209005336518454534111945523442592275241631989128736265929219692049316217883294467660302892951252825376521369171345603981743920386594849732209473330843944273940242156906104743651835708041637765971229790598487497339636397920337336352958584116204622352726608469750017970305357065803878833864565483377757443009705345715898913039863236755737414852135819343798675657620907704849166883633143494299665547970169594888977408187357604486421921852492443123386687122541984631037652882559178399732868697079623366470016257363160850423462374151690301015901035296890443966042033438675677069422070450841607031289867495329947004932359776855039145749606857662098173067123375078232051759579094925541868277825360902856525247668240720328436227497263777060361908761358269982057560641189502537338514219480047225196319462809237750894740086406924779168297057170748580884210353483871585104785314190552932489949453646102049004632937090826573923890627940970507232667320884849332123508661097487870291993489963203841768302725289075704934354682844970803668263358299267208545763497970122650185382531168968937529378920038781151753722742923313869285756610648800313835816095023018947950023896925343354521732774167711918780372495336069471326805689436365787902907156085809461115740503453478309810981343309019369171942809320910777805579942931933974594872586987559254566216109545527276954856658106724304784583945182701218630066825349876486707493041577397543816572005732436158359293256629635696818011072420402199891222169520153462021276312415626570086260924603942356739659569682944900589809535037355606802461382936189170401679894513701836993612282225531488922694101733648232951170488480090083174958802836923984350658689602973642390302473269563677680347496967900676074303822036340949904302578135410553897945408352442436184050418231934542745588157004399207633100781187322007263320653681655121007556897407772341018681722851988476144163690504710050520427376912640468854155398470411349880803878122022754533181414783849959764337751753101488776680899972229656794352805839067736274855001303214364025412486416030443836620116729408176087055977198786340848627772670877974718186934828061024260876214455406378605176219156052581408127273522912801579295867227974303886049309154541442595899227688161888218744271353987610690444893089013503252354119465672955872918423089644351816290601569587789176577574659990272094062048085448839719623962297765286880693419319975475476027863843993531170620577902521315697193215952875637672198939709212633698587888619840238392368309538594507550270784665353188543574553568272925519061967760235017017029869619118721740816639790953168520313648139471403298018324211934454327940243285899571791091508908965317231863010740144193678090468177039287652214090215842953579639585152652620580408808756713341773320880670866220836840690724510281009518872559024738449772001165975282250680537130679368372951357410111494055920356685077583485480465188654365097037848510888826243271428233016264100707660880208649518099966650966140671491854224152858265034668927817174674299753809595280555422544163138090762124797274147464210403566209431669250709403090902226435125695319538729797869626974595921308704538361682711579441253236761609208031947783269023110329318760478513869552836486251288188343563488047945113113879338773357197024533771171006713207437941846757154398662578047840608905068779230200306687793121588686854261913317894582014827412985202857341993423841185880348862093076240514457042769663993814778773926812181710161788593307098021124202997702426538465852605635849747400227239071616474331771207867158187178523955002639324510460788720340686785727281863915162940946828364966562202764651012558922697010190766830494435793244700141613185243610647334505832703563899858270716774035678791808156902682053031380667108033396693978946375836710364783339962542309258139931240959111790704152568459045296038113798773081951372809044746355576000994330560671403579328552578153583525722747464982858825905816417363381252446041116104750189019259724480826453485963885329979092538710670826677307308370765445918059048904981384311573529323441203957587581613500810345577843781157755665353479167740154080623067123515301800342392711985523372060160757953145074000303192687423415265789799014254000404951668726835526626658660234101008248844007101890969245521011012482025527875681554857185135701812070087072583083733850248652185445194709383337731709753200391437457063180751786341020940995008430071739263293705804943246833761261319577411140876387807207738117416847077544659003548533002799361088684483795524179726098467191287356550162429471390007895847503583233181796606805501677376189045435642371251735933706073421045712288809283855020233886526158161623349694042038024300232900622307255468283243584875277543814143389979369058013245744490484658500530355231266672517350050951279846247481845836161742175428351991107276903305540355701983185509330923883678764634993509048932240731318502670228182835792013696827973094759151137276129478418607107139247044021256440367993882549416616992861226297799230329610629624479364305053056883965973926203332945807364240767103129776891745342613846759822361720175818687204831567173949970983582555027443878849980579342885064245593908591067134452479129033597770113801023893526136463872227419156796295397007532283404558029224871976343525815283556508297459941744042740022545096932632095266437239331919955139196655051636190343040457994064975940361731048711210440915265165979566049069861833951568999454384982997596589594623514188657625787345409715299570856486695922498312451824517552220148463832493711379413627375245581475142933522388915651526870204792550414405994751148488115704944557470546191581600380964652375749929194662810278817798119089202991736866066385788257895656496692436712175638889930881316928947806064274934427602448883058865661466708088102555009054272366264613887162175056619644379529909190415621612384022170219541652937034369021168271447407674961568588802278593552133129602538678237755205713792200436913525814790751133760676983319114961639917216311918892077868448098525678541914636989392694341290268160611689492302463283151327680469871510648139683105661038390578621204441024043444190322836326978048608992347594262442850238649680844397003628794009766352738044946701077932163717969943812828268652075050143378940219810558623661504405728319799192450412824649615925756317242209028854167395494635333199715274774158624316925828774598791672460468673177364552895683805228212437741407299778325640511725951971743403651921535148453897385043733766635488683490431304749362532605473008437910487131349572268847843365140137782416728581219132597452192390717139058523638178172222792756253683541197219731821892980989321029024406841251739047512546887185830072418038623673641965784107281818295445367182027356033635437827211013098637022360331716707740197172060538816438655830290274537461611271456368195687317283957048319752620892117084138361595074500486645311760525057560116591284375738361926622978526376307769639395329604567819979249784313640405717445893054271465557422077048242547243397689854634939619785137757530731737148908372361418303216989007676631111487150185803302983133912013268705047831393695252118882891573418645491085845940708893693705855469956141092895498692322349930112658627833149203079730464613878539614745098443855238165833697324280196924545445695979927825116003607654650256458374839761450703803011205311988028263691391015314693953091337676275634070716002821415412124378806597553463962462667449754726448254081216301397425690371270249269907765581936154112736270487146901140049679308405280499116113220982739802963595955421460247364637038233682233995296554797698594293947131947510428406871548474069721681545862228150744276741367732380227568594149776383486285156642075862411941073745790945345137721918899265116028293082260049662061748318070886039930192231202884133199419203257918603296024823805302894042741301468259522680947302429266571648725573144087624749580554223562750718152603766183509382009007224829511737362683959373289955262110975181653372788645732563781943928478691984550311218756365663453956060787489122210292117615746981710933348022618958121969606387940353414428100262872990319012052398310786974448880640253762365503565975200580137743631322064122584309254485386941263125408559544543944990826135174705182364930477838451989550336861028907710044146050316789646002581343957103753431081559920213650424173928508359299782970002653111708583858337457952088628808789182202869901419126644770526925242450591892498984916647993152640249281808003260604569285960476060089315632426276937262875864978390796284775127591246936842667665749588368417628290233001465343200473943319633056365761115252870285034735475424782358036135428756264386808027035741907666394586115420323110666351686957360340379990514663638704193975504747613337108619216001522499193731502384164880212825526345902087691149158559727242619655169070985973388189322683175278327474428799597033863323935290313116456217892415845515180027950567931897145842419114366456452058411815511350367231449581335799581075387185554409133843943838460617045885249073384174611597068245074781176813656406379927789094441481231141048179900842343275842676746053540258814563584975882947387724523446645627336327740409459474033060946664233934658769544953767533602593509810850500460172088217338845712937341257424874113070742822163222327649939831116394992149451575446946404879504442077164261550717924709599902219879563119502075004615446772550548938926241591958588324290900980553554599552868443949205527051673544593164550655136331986685451281066177696376487024484434424434361442116350762939952340211546998224058889484313486948508367534084897192618939079453461915568393671281501002509723224208079132376950474518428355752114851358612955125447961121543508470013551539953497070182198794702833955380083765061397142234935225183218812659776918896964816256397276058676213978773907083199876467675981672312432308039490913537654140201589427152048496204999777354813258707857283176254752677938164046863254536340739090988143667006886127344061250511086633990525955903048695654997261169993204854912495272851968412073670101886630512619866844061900176463098479322772052017667695686157589499971857905522130862144122064345097417240223037936223879612064489176304012771443704804490546435719132907834783310517761013891220813945228939746217787434216905340494959408164819814608629512413376963682002070648517366872552293653988995809963419927814079673557951952636393690932574940334812064764657450622963148449695263956021614461175399822659144635611089974646508931428287664901432711663670028049633075907836577248794437898557729279573334222635279858487596155493609603568023137693386873050942571232247135601941042143743554173019533498861077307775614790038734254473330355892299549660694601377373159061420572393939226829061230490864284393354387028620901874452069234685568465503854489619530602056394876273709060677530321573302706709193286131289895811597326580097430738911733455506180820931715044269413992585023583843298587566858390608940962634658647711454345300015668823509572552398652256774428820835605463672350287707183181521690983184322822209141353201784492612706211390769171625807584842240985480181292692956227161547534192303538250452975608973630548492269229362767128387134955073500337413809348037355830885293676048888027976658664208748321185774689857770007616321505596462552509709732689696530398924469201872284793820373187363303066022458807991818375825715603371655767471131944913004814287973607754417008296613332663286448694846110166767264425474594206071909864247698930911144844830071168416303856392535580920388383758734983429099257067217633937282234628609055724388969425204719342083206694727123241870785509895880626924414564654278609949518471882029389618792367976454207317128046841630982251880602189146146382080117095437733921397787135581161317413262114413803268073001888496048257154700942118092295220670849527933427602324238179847543973082248486512544583311693821201033593420335320467587378965165603500954759788825482193678085551802902569287281934820962263011527679522507230077776270002087386011469578755886321739022565668081763706046855838036119508947954777457923947581000629606699127571292863859456934008941905663230255183569221601159562073501175671622471179464491671080653445578422059498573181523438451659897598980792196398959551335776210737459301038615314738150454890150088341270031327837458144914979309347686357883763176700950022362278159344536925906852879398325173967493192481008059044046564693614247488650350822179497028848941847018306645500570239717565573968045354311162238259347930871622089770669302964380952535955690735798535420808867456253701822561297444920304642802462205542182376969654833014578118442219015834945070630943351549825908131165030444218926622819054752000746313186433874852030348814785111967616071543197353873901132461164292563922905353005416542154421462690604731378682621321724434503344522491097915139786623808176710236244375653995553832737842704104524902899314402267308114131347257514575937755298740413673862304148077463629484165754942618933753645335802635780150263763927865808851964956456106182464334706016770627198973831235313528297618012861584932756053680471211997624086717814986975174914774535426556082428510232200864785451254281651993534293286012488920146693617130781081066419326159223106028704560351414663802683588600258842543681349901751803866624808539040902339962612088270548504840593033278799578364428214395235639839171395322865341983882541559082104991410710342108953933835718977153918230892847368649407851265059794624812106824627858788019710656603714826749832146390248161000900810012306228457934027377863493699017215446883795488055881758929567767856602381808744623994780488970555779866095763498469465139626726095978295686928238331251885018442436824455924394162795715561175015598762242079458756223807862460677445611478755677018675093049719478481751295564266246797793209052101748441613490795751232250061852534289190760173376036890684388458078379078784327438507252666380564930067610026798766140348389822004172580654307304321893485201415679044925264296810919063424496349590987320740807005609459669870542955294641272048141838953174486613209130495066416071044189664342595200883735605432707077882902299480187412950253544038819742841499449642969205334704175859503906161711499844780182074465014895753663131878810342336870909283446998351621040443483195736207358221367890806354879015341427770892179063849529369831476760427482298571714429326429930375204028426301866240436801163053510379536147388537920270551601898210897445900640675557537675037675794489800218232264121549408499200837625344699394079254213778401752291972239535269998302085081943483424343297928816549016938448965412956527567385819795735173017728545645297643044187491552113500147078293603516287033275115528731195873565241647612923736635201705404034561358049028915286232352343030851651355448843253793713880328256558348792189128289273363612947540253000497924788725117232552289935269604978492437497812631812519932803022954703621282833053483277468315470608985080493866123508407311840016608879399024423001915014189399705964682140391289134878366111482751566588698112081245175447213976262008064657999763883526406010579412827247345176763369852799336770962765842326524848367977229322901763445699596305382283828212559249954163892301474215788186508292947544235981301551713646306343724376550020985359658552361411961784382368900796479152655245632652448562332173933212615357480927565482499186938595661560722917456460162719129887035894777312905094173518568556786052342901455385793082485824948821721987769880289557181061774494578606346432086615562349860961745260396006744273713796328813459633384389407627545932500373636276243874210028533077065610017560439106897124731020706387880930153253479516039147379947513658398539747361917798766385157346792775468404060597388620401990010318155116705456934263260855782976908693263410188838372307265198256113942769119683880317165982655583738767557471031834085039715791263561016999402448044632126112620631019275348025886759389258082604094195825494511215030769131925817479378413410485970877138942137361873158911074530249691218512273410683319445243603467812451239201961795553889395987225266157973579850066088950227467034460858919691127073696338038701302584069808344069584796766114389800546783185550956780478204464869729875887700654965099030691526936266635978357211489041549511417428733102577368091498122033608897329452557807369304947109911517498928145389716447389848456686321384059818044415271916716325738130625236816198400184767989024023530952141568838797010347830848638581165054138257402539707735190566414967860408077432110331443112484940008189452120048964259193401501426631543761824322579272993116467675877312233192658860800674786511658553456514831317452680805193457723505528426306607334269215246930283107563736675177600174757775541340765699265011146398165743238575761909555715480235519485219264002593259831802885932504391535740118553898616728827918769580682487690154718879551725054929178281100559194440002742391220221224170510878147947150178331502484190919106621782547634974987533302109335096911076809410327736411451969955101900294929700655986407862239502340223517894693244456064357758652179956524590582592496199959287408998642624694384065714920444703266329234572162557064286070840452962669713244285120514645326393370993931280634377409033272384031685609821339827835867120471518456142344713103596689050776303128058206413992550767614206322376363270697817239222931182356246662395523214055240202797434054497417728905187335295192559329260288916239418203707160795101837395293585531009986071611011345408911925897652761927434704439689398591462694503321368977562082854052969780517301460992446329662222045623698703777080166453808546026966861449938847909556364102666275025066904368258791477721574222852628760899425905341380429358594634320920535902608916425215104535337465228536189629139492886363803084255945215524775569372769875541599749202185644012071195266351931579070702674351671165519834230729087894915661531145813477998255552106257076389992875065109303185858784592294415518557966668544486421341972020624357010816794549978617160919512378791951652649885558166814138802468737602398978354723993450379967323989770186083743518915240984372339895841764819796890080168029567784607608765041830374335918000933143165927955124711428233296854554814144103324861083834401339476712296845976903991532022600306259103867047999914331403837177693801053469132500142305544931541280410753932593371088114085057528684410385863527440279154560221053893629215334708251456127230294047702604303218570238043179418921323808956794935069057386509484431347289920981838597488496072477220202848163793894375947322701659719345398331095659470273468777960272316155522262973912311347699665903241065118214053523726489843430622847026542689430076831845659846102922812414983045442535491431186430894060145829862946264001817073053045369911645370916213471026740061628277944454422781849072363472260853173923079950737392048643123012161098032505362732298747487181893903766581425810438522877063396537028037857072814379701209565330349213560332542109805501415471030005519195987689517577054360325338148509148280727448288733786335422022387619809382109057643986190848687905207210790613094567094512617808702924005448832672140588609951271952991484232878203203732186482726879910225022123190507610270347497485937471678268093429194790871422969699874518527728586838053234803408101563452689953806544133398819388853188857492836473991621428577819303337449712578474452625805007950542697062841524566981742624531241942434062556635745837541329225383258966441375553437604395491224144731998105199457736720018824663827527396965122650287564992802126638332636848105536868419327901914608976385496234621670101765843552001990102695577435955495640868822123232989422279351462938077608074415611452986672482045222496958878523413714180389782923564473760160121854027215807577300217289576154831654265349646982517617668659439048027928926063708823156973248241255839686835632450415288561832858731720544483543513486820036655501300223311270738667837034510262666490474551959644596591567608972538476463449856336465011587322793918135693856636141650426102983316370400273167198002951106054738262353045016097877581000786077192003192113192866410706859219042952501905622889218697620867289038593076201275472015454477334106205226146070063564907505455510585878759237911158920973362168163290026131922650292259774031520993736045073189248597188112743142841921503113760399933414467457710422761494103760927055419648181272832973015970583110179826270260670716966116242066226897909281713467823237260385224551943498578480748236994141792659096811798064854129903572501875345868989314152877121257799428858600714417827862084557017035955959031057562789221239178372919460479629838873201830914311319404059688211651168613272617632357118037749387795602873213088511070834562604304421298409180600826582308949355608965322142697076139344641308378163953951593068782656052547082919174230958337932782708859593944118715652023332944637252893543935394885044104915254704042933168616433535722145485471262588822404097214146163585636381338069453952179115831550699214755502782002851398107144236938051132626666734356998062559646159748185739618850083410752772308494530253939285213364662445355425821843745817878126385572742233780639019298542019305817387074189875453010975320861104040799241431180466251563532247214526460995756539352130445985421424792159180861176313517848707432683923620619229403758553959999706109571578840928051626839995437544467390585094366465900537850294364525417464009890282224387386028861236479819405631858123286216767297280884182376159896033173092383502112575148787959452501371980475935227687053257145283427444478019973529084475288720249750443226283705151361009312906702200459533957513483427080421312038263577457504332759448213562605088852955062209352029437536481152118885926238840590972417661954610766998671844992557509080180366791518869465617971780286833568430933915555101001983075065345137612318553071932789924146588530262883611319894743028337492336093130539125359070765728608483851759682442894531844582916751988970052894756808809247943160846687626394559367868284637485474670338503271687186199724586234282122657392764399365641452581185763859358061338890247737749018061139387316540051836390791179144189288786302600924235985444893442547785817382834930451769041575589681586210570271904812384652274293991843137429268121435739461853116655036206106240580909558471053228637213770627782366197035526508465211659188940788084096954570029846191723163311357786267003892135287518499942461219241578466322772163362288693791139004014509784066604791281636014907205031694023724976210915716008134393230172182779482600461981364950177857170547704283887871387980285720236617574629963487423519654489869836281057075522148930400829412001986086645868941386718906669073313453164341045493078834351603717264527945047838051769685566071473023628103866395328681392335333214886457695433744621201161006974303648949546677046449425164931921637933834271741538022157935459799752039462504286375001088615675820008573378961748937865800807567517340512167337585216412619425031195796500320887858102312119890070475428423903421908586144256524142625600038774633209801518736492335884440381553398269836418867857282410877964570646312928513051157930744490606800319494310379099202881601601510015335909591998425722705007897418122198171666905197488533159919292121736858531158634992435739032098353498238119537815961672521968444742979686683449643246158673541781561939879302355000884938663421574311216475381770736159544245847869044887327178115085293332934175160964681885025550075086987359488394364012955607922577432331502004311962124807510864480384659739413017407278185772385011154250577842939571670378614564389021224941347128857603479654753386614899693617712558438847535678907586399215150074628900280043074164588166899278291274253368758900428275311081456589151224951797139621178569154307626532746791975019593884063289108666145263636330653366548720944963888363074527970481940523021247206404481742444477378127806037490069996077042446718889114531002325752823025378498045648584195629072171909771653112770413338098890955852811031056543020074162600090340348190266923814261551231987547725834859901538919201063522195772840005353446292564784980306789398004850092411698617957708699208914618818175179550319896904659118027043710635314998508348402147859161468888776759268014180238120729164591746829785662081734987932532487156364932272683531309955698848432736166393169544939591222553629405287954801517134151248763456523482276087744796874383826482571283003913101954119600664718536611280218270701962282922628354353482438805215103754538095685776573881673848855979040970190028599088954176751639339585180428936214798236669327269736646980158756664744468381932416146977819579399569941713136939690729866103678206779467458672063250520315729028001256494266282937158300610468844776215600525467804336958984797738397192515819012921102009669748053660728098807650747221412499245334504171332085583381523679014137251320971283337588232705274108924298382121845163275948077426644866743131867111639450783402542280357379445628632271333073147551543697515033719996336390192664158996843448658079234173844229492024964268480868372819729597163301846128018589416123595692475985433975860479746769393003286017357684551671721988909876215138148619509004994868140850571152827496750837326818259793766617230808758966285508775513041428574102869222814618876525835119277989630819917189861075606849154127971865658297250098828692177123456191140000582136477343612440489120044684411695183548205376593376611295542041007510528137101180477006049187176087679297221887275653756934442805303379494911051906853605315084584522778071192161189035248392666776738340613289529759995665476405602817795219342676211009386103295813175018876046860928372533575738428509068760056656920228396490532758736791610623307258391663247368271859871814421990287074207603232198719406638587756303995561888839863332806054408675799162542184823652444849934454252629871798451465540244434472411109477561011128369370347806131457863740773558508120087588759243634417285916565405622637166872503070380923012730402263060535738427276573249774644724498749352234318797483907755824368082791740711090620389773795124759089613900868231980714636082818078180793730019265614835751942263553317079170267638805420261412393796829541340147605139576886690910337324934214118942377412455513805667315756565247847708683111577149399570545824471685652095792717671658225323582106067851671920010195379105720953649554637178092795783336741709613654239721145061194681913797445801658306093552015983121765553092519152572135027287641337165470600289040950011837837816794741758335407266996433558350640748746198583410863877238887359366588353671573029193742291172821264257377502217126929097645458339440027646928671849044452397291900695858990363987684225137728439695530691178262607312918381529910832829280944927058042951756423666434089611667647240727274522724822328242769790635977386529147294596796493706128035591661114342034330571852244318403051128072228419383436102858013182585811777375458283058752850370162460357349708483106009478469887859223352116423884965263101224416610387469993009625195452080666080651346795402755672041954967340115653204450992016930182791252537364972544767969216506221390028272361338423125482925633626173274243788872799898279454350108897947062765840763190717047859997031996252204659933103756034171405988447114957542188697250091587401558215119167159707413264433601930751835745406933400221409184556815836154130529602547805426195467466835675233408070686087320339352860166386680986386395970831720048200632349429103321276385896568319270327201163807473868036620063955811272493618083887041789739638572512573188966059629773290009705671689585032797949674835977188216425078980259476542007395821982177025601202192434094712418250552039184978794174622244554611877485424868583760270784369065338674529398270234985643160134093967492123070162744285163164516795669629924101826783136055143214295172783353980320825803881861583849680857239348082213677192321849221364097227794408433242629782644472800506149702026351503224671646802101641720675518432132615006566207227451904241075504918839948243999221250627012574605941603263493856578217555885840071943566673331581508540207202812616946996908567461585433201571576535700306761561257115150462190525065488550864397740616159217279354313763626049348284863151839780891195682558959165898471866461356518944280320634951057578832937151506821835037310740182603553747653384230597214760866170448529413892848236955890314681563883038542924650797523501923981223264683595463356846163220265529054764106181077017193412216076079865037391929916682589943796329026316971323551906490094549003336485637587341715642126914227976836614154715097875774287942142337079517306266427943113676233097574493179003959905647150470743790214241081831059288761727257680397112101687268305924180568555897401848942469783804008637001045489877580951997102736795797050622175714406028918979260464086691356781608809490456517961131781905531399037294870480398311234094066886100767106007675781797719757223321137217048408249172798364480284351998716809505075370293212099396638144208828961590647787922139000305193055683775190270596932125061368668441090408854425121279194655573939126812605308972362115866450780966218281222946655893393232338303807824372706881516715300638313152950883752656128747310939824538650381020992813488392910706109911237651777091131445953574640289137031616656620044809772045657621567712733668915564661912917069741047485083117871232855430002083466878963626453420496504947682040703216283140417914726365996004272783382289736505316398854323693276187432118287334836031603867006415675039194248458922256805718406948844794062899847062289608811266354457553373246464167812998749780683593659072123460605795024871290407046663974618565485527257258184464334450719055273992425187043990553267499164715342005969210076581364606459011189563512269331336080341785800504117055798460160077053840715102132325612498112857831754242151632276837330391443056898607064103127535682278355880982786704828831902379710142684955130652649197800868086104054519888072975385574311383453729048163267066175441514910632049372393767428393285046162703939644999966736667343036440772170790541210718262850111117304426172795376310567935670260678181846913595605219049115154269620601484181216377305795420372748635264882254501048361257007381444326146358753960152592942546163722708915708555497558646723691656859877833050879090334226983247454429019554193689952062757067554083955178496385062854258533508696428925606382639672402954658588047186533365968947013574247009089201129894455129876055963249440731475365725822425923648308415205278100950408266186461747351689684355099213058303964853853126200889170286278590563954071607373634752103724416134716069388229367892971479262753778782273464542140389212514949026423091988788221254336106972234621384782702987281809147602106388674066557475459577853462935426148112763123909581199699329802572387187271895498194895353639242291768641914474133009048791309797273356722328868699826947316099161876229566812816197431296761206991934151736242011066498238548862644581327329790090168060945715082225330196640721549129756076417074497405956592263510182612501786155735442674440571688372054565061580484599092354936731341067185810603384276112211769454748840233950050611568633787430109487432057683835174621583116765783150273703242421273061773720674760224235664943456354847633784300331650612912229324847172375954821623891883810746993601309797571139730725122007734238156532562418295370148356807806482588330934542520259317389307885198576971630063513228789873059245816420677553468466814669746683843356112501300932611915503367501215695400214199616132746950144998187826378014917022580292468828968484188743762492487993870553300206903926424321298553151282317340839165415593793112801174545308043539328758459899756066010081152146117492525072546599204619036506901170245086122983216130419087373093728670523398168921966727043090663826663957377806955673727759909779757562086878984537992663581913500426087591490407376177255552042063445917240690963212329693924961492160353505947910508655492266786554358568317674779912317126113210333759391289624346876709535655480315432510557657657283633204510548621970061269186289046005021776743928104774483221100771243837513405981027558527334284752899486878472296260528781200295873257245360155851834992770456855205193447039792698043901009263356653515240566794431501769232128233740680738091194674124636524762435276046022027173899398201342608809760948000396510002686291803607436783579306362951852519427389537231787022828552543053029366404739914964377573297132518835762788278019610281012567802880560951902664918584484453329553247527210574704654587519154582933071832267367875685364076476905410392285600587977593277673131096788334521951609178068005175170440558478838362908246118380855648484656197966302435001594757751091714024500667422135977425609978141394235216499681033662057413809526848466370217913889508894462527014490073128857788022650064132547136477896637984633556217145621316623590847039154519903394849547690720939746392285052020104584163866928453989581628994405864661572851634975278863339940630921136663549038551147598819658405777373811359932267989513466159340319305577084185998006461402807749486706051971931259904309927434606156573531424342278399688758702563674897482647249185955051657048469731308341483348976848941091838416058629112592516591706724544688714337038441624186935494854359592746643857968715038804965086758081238145750975263606893155703879594301604830477346568511510722423649547670469967539272177641326132436805027082035306194518198693984759879285828710335873086620999774764299668625917914985608587518451705023551690459978347035636630650229567942009272438236872233980174259823566911799333561700150693876347969175149972960641941073658914850235483897942282424548742957559524222384479178790669610845697399719530060294513465528996362254326623109067578129674619695696010014596619195593146080282943057158721397816967355501302534311501500445617303400691984723559422438552650295614772869508286781386710273899838925418909832906692023443498002874119355990755406566712645435053421963576819019839747038618084981382301639877343840898392535634270059694658601823291515374492738093992160952553434594026357373611121916641587211404337673989796526670747452196348850726669454304623360115136721464878221123768788082596163050230713160642432970393940473917652847127105700613730499644365075018928497988671183731416129906427741072001257774950586946928303937862523198622347963478829440277559878564007545986576640958267125486968294883665001258717481057903928372651917399066779607718230837910307377309526064373740684854386705937977205196073535005628169634478000478362702818695501732036336677989120647663318899003188739957554252672091057205124375786291913969478254380730862010874084736989255150502966335509936579073204736082954115102025007700922070131806938576263156150974150708388173139337007198372601559185371266571556788305001623627765727590769492357315774804817850516228944689253163874532385939014780051257072980961827049216765238413237865880278931261828711527872442040201155239420597075707656286800494767908451686608239422772920830788531362841230017755927431546238867914398273671907298288887066084167791534623024479566782985992054222037079565627210555585979924411676350139795700597748575427870140349533452257338696232651825551205693606445473681147538268879477350931873207678462642487231229897931145675136628356823997014314406432256623368647557916071900497172155398382232666859244759960071482502874447491404150156082512251331701689435435031094879070318548765960334557641678697110694769910775980761000432865815006366071385210172253634969354129368780328975105129310794146058656455046634261681907852826517569190294562185887646008158279203792999222693336547082765137246835238366276472543692328327444047885901084103025668818408676177317220825904786009520794894469262861836816589517292759146318600814146861946566616881469845939892358931170597568519016268453826339651475324129117669701253051816874335232737796989948837059696749752198502104451144770800380117373689455542898814142941226701643479715420596964792279628617585823336005005427653954162310730136877078410383845289260492690112508737757384747355803786953259470020745154550883252622777402252449267497957368121528853327058239199805292364394509758302424048036996374866932406125479144229271808506767544134712409022852455741105029101999489057174667628698633396293375210960002300933785612197113196835933225894157685606555853908105735182794010252205115673583713893818101542178515786445643857504387575677220441539404013203933819601582444538308237419927850281488647449249968455101375627102746477366747104500971799955131986016145907165629248871340858817203669944755961920205647071349744309014121507139047495356199560647886975330541392205580968702254587711301371412287071075772470996060594286077634302886400578410706822854520247667025187613022695644802178910991817419533353008098120128758949421606919824805846048107594412336631659547585222623328861416929180982346149083905063001000068016875430001017570751583497279197681584934644664603144181303992713051240821556918724665171859894892912202266218080231794942408168837342764304658129530569444635720564465348350138824644611874379905649956964612880367441441695138737845218463936448317116587048443534877460087542059757456824142920216468885721312851709972619549329036154888739573123429982378395821948580693849249142218214372057233020154312251842781822918580585836993340099781340687716169349273057369385051199289899732639627464386406991664557695806115410682351899402287251941700588669416384924190153731985290413875276325066747533146661825268435931299700284391184857275740275962064387785787563985780920262126111592343876534330845373698142446009756314041592931660126785187258501589192728080756463901603653906621400138339778327918324719587853952816945778362655273882963744412734260867580610819728795969846743207964659538080623545436037751465844182671619285220635812467710906789137426137621290742087488478525013764143302545442510525186010098676464330281141195305647515015479697790121041207248886883952693149018850733652490519220567528474488960688732317898163538302981102166003638344926449241244499160237088631039487296828365335683606067533778410205394685649611073112191368542787899568781206956891223877209303270493234963454841891822488689620157885406899905697315181144903535243498616099215133299288459878707221388202210061190330123076246162371120032540678973067148049722329323873457911954466743016952950410814465251286350873343649292819984754312608663680509317078663245448061878725335737658664608352899225373275317953164837918123719776504893898602482108388503145896197838933893540401340140174932020560682984404382785355464134948793966397481841296473070567751141802402393173931271949127910709033644184446946050191926960261013611007457649967838818170214530424317161072833898407542941322106851086659116959094501637093594751332298704025380574658997476443083170820428864025457113572606967283414623606364197681717808533892475461864312838571594309653132172454467668970206398909789971460027388174798876858277513036542724148739635774744687504117431954430919435906077844404207951289878727542662434136736992978440238050807684849964759840607894696851739073693264421151160475844934627415109523881460516963116739574710475867225420576580393061690992797397877374897698126491804034619003690336133601251996991115937569990984114651281981552027957674124441490016203262639731869690881413148869260976780695286868189102809841459445272656484163490699066692370432844155236158524431885510763721594061131358837100997361768382807457987167815419820419736157524392169974983547940774269490332702727278679725479209527604525203857530556591936909809079858213001917925088917312303826341442294180171771286726037075601211171719345210714635542217749824479685770338502235890452543217459598186261709004077114463372574384627149002104831340812675171999640107154276982923778648349635798230612968281596584187205462427132904240314784496529552439152021773468825741757648807548142102958354491742781897971903822213175952138074996047892368545453020751921774354320498900128660895912000442978335885813136785315975347716241809209523815161151680648367493298984706296237942386381895011615534334376224124241702019571591556520027873344531641559971343757173739355657815251283698211676685958846844247515858774111191947864060481876964797362523570424757373976872855374264309149986880916279292305311504092437459678009558635339512017827014277192762825846176486135726182193827779678248808037397828210615311291545490020519045927123210764154053678063909664869480495889015465501770492485881696158680658335069106960226205272904303221375970428503098675048117233077165113768419586924852215808828612841043576106442348215805347632448385782560593739813156122371441449580567653582644668238945652150578004925449415368485154646201766126781282915601825366522246725116861406550240278594356321861242973381207568304945944972837824936703435406223704167008963195155800708245030709903894078349805129901484229029073499706025332019281232542599008747608789954056630219963637263195058499464713656736565515025806099054417917875964257609490248126882648620952224235869092622926522477983981865426738659697382956586025721966164765508231326091822333608118741007083487127052217540872065459758001112252689313183561541641367027071445468544969476422827409849202502084910707046662450276586849223893746778080505546361306531600579442114699163918635761004849820516127227650152511410268816609227019909803664477750497442979492084674461056822518604440555201976320443047401159266049244838816132328088124432948600389312699187893111711095498372863662690463083819656932975505445580817214788422761536691336789228282625490430872172563147103391086335014993288375155689162857893839002473562900624860133373698463483568556949260885167700633063344650827211331037002788814638764036732454649059741984271504455677318704316390790291825556860576968779378059050308786812476638367240846679567838354054181522273335883088066611296359261915543550897533815667244014464023215130795775992390437826959798562686559803570609449653659471871197180848497075499788637899231070512236004559838738425367164131549240513338166994471356573988259149921073525657870891818889093338801438236612875446612962604525586336011097233657601531009493859520223174776773468463997618495681001063742146903162152108293657291797984278495204919238269451120031647579400152231710758917044526608158048773122315371632063627808518344104759618349969175947163817459564111516651153241724805580233450894765889072003148028633348194594156795816609724048735743073313278746047599467696350043363050494928623148935911059565266077648891161142617955442143960587429617509780116125652347354904979121400651128062577099024545834247630133759563893543989576910308150433085806697568480695095917764298396806282850647213123821810020638293017300093695373608561002515899948076314598821280015390926034944806175074868678206002910818215775145857772407763219327980062932238989641390728882704929468798586462803221824242469493793912416393082569208056465047300778376791637720478975027784089656452727855142021015707331074495477587132236544153848281315419973846920779852885947397676249034181851928747977961427647171788556512488362683325068857031173547772759231522071917928317617244722522043749134836696921979412296873712636282132315393770804833700457468412731815329531712097698112260385837010378005059727753280937232092497630532343313150555231280497865568074403245587525245069014279790380408930115070461777142201427255895486223231445897258740674556213941387235566168826524592305893108233982400870458435204502465095847817617924566724358343358976423452628762948338992221072741316461315453018024355324079973586638015335804894800225390425644876118546893010186917444079762600028981947655254694932391699481977340832729036109011250793871110147515892950857765480186750115715221380232225543084047073191387681971321490344021513451729792585764324272094682869503919276945962438092776935038192139850974981380965562559330731608155528891397940256960247180820556761857625611051074160885511541805131060842474881729403051441613545800597243335378132337548426516240783290651868470135064990389549774523573206932232581982861156206901221296689937542461299219769157916958980675009563664945087360903443934617262410813003509811832347158622091826188239535465782872153901238602473480518724867187309633925592063593365515601368054439379015844930635227388167160991039247235997729183454876733245160835975566459581961266690879943139857298185087744308494694619191347447047735533138924618218124809154878148982040528995537299923501730979065044177444452561435037188487817450399663027823994541101896074030656819559563304235037199568917463197319664098249900796312122905499103368469942802833117835016357921928962488768869957009433490563679243462922185292081957344002011260612621181718467635257133735105687841057075216260593721241019174351819735854098750713111935600779561473033209788094701566567244191912716200549833258910582291786780938799431835180185729751499447845673285162261369588478213888440697969489676164798460092447952972211352874787766751837074439186431977006790909204470156546508797526378927376366259000331333508567953501476735193654282841115746209985365718714347401159450010478555693917467013301670197350559588880216127300178506718611685207951046454956864695979423241324753862749072140074260910654257306118326562185438818606334128777886373352526622483673751336984782515009954287496420359908657472662445975127754693502090973411266333220706406667090959774238147094455361537518318594860400723877272147816325883019225920174921437701818482181188816598324174010671649086506809939451669456860759509821905738578043838340743491297764170201863869246675347747813645217431534844234840278530050922183371130267354105847872027684315364493239385223145147773484446503442805045643886320156338930898197118832454165596581467831322780909598839563562893418154356979806537687706884485684181167122684479880021290202563172614066224885360582161270524259020436836602689083774966144046200311528249194470841019921987665331658294953755539236696535722586827081963907590411142522980587996373435241514720404720814461738293248662031141634280561679902551024163008417887761064970740508837515773957400595459184364400377272639300902561724980270380444046965231063483786704060127211847785166545754905009393503579662786688494490425037712304127747876125704482758664093488911841310577898581016391550914697296493690735702142023959922379111855823136313982314742974081702450676023995408946375158653420815620545058107448718660885414849423326274238539039621484219972727597289429498552560165306918914010266414367149805895782434804369839455506039503877041120578737989752813048761234980080900777089587264882929636484593339602886476624436152854477194119984526172711261782082683775602653755366995023358352812999185599104159946165240370356729479438255278586725550304049672090709917433778567788061050548236626054394106232653300237031117545998939099079749401012547877251722674808227356544318236625553450828234462196674355944258828876436120068073259694055839912882029082338086581759507584710130123109867963648175529831102134308046862317974152224065824041084662702053610172948637936893653550376350587430599204325336460413567230101432597082553366838499883098233568938608215510024940613467578072109583933039507221691591239914746433159255553763112393106481365895359400692703009984801085317109607540850161507093709721661280226576594835114851754307272027821070401673506815222634603971953859598512769393383529037392551638241769792121049923974739829476503685451105160184904043289371297819303863488277208766264161985107404357362100729182468289695503174051499188747963766262270316440449260760622557517695341663453823879692460939126170471499131994779806877182316192160351803256445700491228907057711063705201337378852993330479693776754436044572351407056527357998546915799311533901380300943943574299118905482842620535571326006473135236933019863220043289001880677037900197464853652840452847716537402192229403899337587305123910831653430313945453076984769488522431143967638873822437283869276645077080514115753779021803955056557271194441882602796415746895677483563937244998037759547853758604366181809276605576806026507731034717394211484749828599900657765211048534597598587196355597286878155260202645259215046621919568378576061995727077251095780690686723942843517058714319530734308139353005945813340396325176699934174968695885533174749986998494632717374482629859736015140202705201043409815977548632881933862569904788155550607135863258330057352352423529763825603698149857209163596053542824273331735522470501700763743234258792405568684007275279844011897860077586197466449234162523199699294299502987846235350777779009124470936945243245978019440124675220419572376760333415855301810109166287596838876529089692746213754128642130296882297309866556446708299520556881504272385137790433583747703219025501323364765790340735247905695246863392207870132563217494797186478763602894531516352114282616529407881606870097405612282837428403768585997862149022519020014508483268405699797138821758374178262101212285346719405051157614189247297572142748050470212455118157136174844979406559566802042552215670990178813878637857736569935792758956020628868240822680430448592393472558392063138165025925663840282530294800037733646847308809151746484841038954554925259724618168996013285955214410409785432174729267699792557958605756460639253085739398831254266637933746149006019058455072242815343709090621560695843554136531059599018989852138379519872557336798804093246851699901340024059507406569154532013863301630195138912153070486685279273251436301319267178747285428835258656600639583336805355976369238378455854965787679932766692389672177190843780888220940563552793477417627804268710215099977347174024652858962157320199098535361278667920885712981809826566718967342586088263391595111414115270660405775578370138773587052896703967680865106349409170998334582836700090402818730433773477488453554596347270387206324412198261473299151638235039532693229638155080991141483467459337665020194946756745121835422704167082680693597130626746091551105557526313584530730863357657400951959600228334832053221894190778868308937568550264969056647119610504676893524836092062681299870210858696486100006545264361104858499995790275072142629124061425710759579599021067622920124962632654757826694573628677983334290654597902612764976618579050719617871038274417892234054029043991821228108218240489644605188997482954575785417374603376569169222615076914930102455356523397903428350609270411949309304224935079618722252729903330356718805922869117105544025994956521731706706487591026920511303996210910648349904178115354380871709104200581667749697072116073101719460912455004785273696154328496818642879310058798365819462112126013420453253393550264475605641884862887364887925658829627994934376720015149514939542878407983259375231048244344315725578441508165595460303099779022475845014754395136884348228228387995133021315576188267413138425965545392419832595894269629708254376473904636020592538981385855860255393365056933357361694249437266700800991574806469379812144648704122423532484049312003466694235644479487194136082075792211623198437929521109505624975691845241159086051111816911172270333501473205013378174014452417755999841503717628087223245792102265358375498390396306982670831286226551157399355683186050850105759215477271393847436561525971935466053736307677556100141432235283712785404371181594414555253558967080321552526583110348327741648435680705318633251368167965617793687998141711143605377344972985975624999602387953085141299407356108368114102019377193996150522764191714675072600332306109491655959296949112831430131682919417876498210199363373795690856197473905048895946275839419694577257892754514460374329982046320593192798699933813495624761656547589311851260945303674026276903810319893533814371304576805407428019418365548220958725383049992962946481726208173467297581420340916816188452423417020418283464702462892593763008996130945508915677008899680316556510663201366607405938710204789230368051913554530117079959516001856537482042390853070285408439371536336465360099910837417340694798346961794732702626934827624828657024170080701010521989262900404079616864634450141623976706143015591863471879148663974172713321988798199532326555723697508374804739652390116367380996756817961674297081658529230007234034517499096190399187048209199833497757071713235018768475781492639417919261280996171731744198408522548473971203785784468475115362809886247868044848394110673917728472694273828818428509476116726116363449595036496118682521707722124639539821412642679009862328227780504058745773817161169309358425348201406295777553491436839473511436135734973887984813159387959074249459993753859795068875145323282403941263967663013488286892154986688816652297585174547205368076590478234991751628883158252437822384932720292368098668633081413985572355862839507224122175703053499611701540528979402043304971643467476255605707916560550312751740916361561359754585696937667698521206793501049205702385253494187818656055951293598981786088032349693908783689699903423384264014721574976835758909521126815427397390482810748219077953832946286336369532939822672584245091525312400910957256322307158845482703470136577291784681090355284900239144571146308734849691975708585904992631954994353952147878133278731350532152131569572315739243078488115906907373567979640131901868988611106669799495310221515769267887265403394874425810078587114566495623220503104343035713615738350598333975368131780962399406249902890994398537272932141737778308063471291788902500875924763236075201829505530956549071422776255209100528114292467265157305425231658736098540563493820718002531315714848295323887126963535252729656453939865807047569893636735031747781292756890703934353932661064704723961253388716940335998161166400423930255510363182005281871627684374600310209466636240417447549344572761763048710515107809516301057383115668589764064694592905286155008232909046403085741364614945227711640568258941923009353622583690140628702400580010571987161350110642555940399288053278480954029298659581596153720194360343742422923542345309135352058803337796080209513421551874000552117158478496841342340471871047487284818436839639092144650580547407737345816559001591288478936516699071219856876257063057766649335301760148680197862654469955951665345465215919776543524756876754679469201295284277684234138475755230338586244099903210562120092973528318869521589965536223657474613114453862280427390577884182871724214402058709169214343852727840414792636565778219682771414567611303512511602544646388876462798246860192357572753378870425883046084307112719997662719554279854331836672856887179944551959274739419401848353768131362219343426282338940688067393236770501773206278429609629037547571202219009980630905176159428822007699877032215126483991609370045979713808739388658446386850774462118161059230975108423106688799339025365507122350387282029849593125415646670117070093140317381686880656429576261100352954338975095352760781206382168360753262239577585750288968153593744677332583380522986253681552045670482308787984688146158949922291009902956972562875355136689551011623052615160473940178035595137443810634187254623377228703729487438777960687474497722045774157201003003856130911266637800147901756669050725991705004545444854245826841212911092680843044311975427616133140743630377172051374824964165056476923498979254612403676219344596809871593881244148275349652499932780337165316627472432347626399705576326950348970158405815268684617613242215885109510677719566653821865088115041874842237007504746764973733927234595050203312579508516540978081459355823856551303947462463901755521460309423325404761752015443299930679600327914237724579562136707075173975970636772044588845731314373714224857680555820591119231952047045615947670391781863909577967171772423590685184063204780947900705838912081375957876761227693366861942310708427922586384667205226217166127719216813242498250194276456192380638657577489989757695530951272563418808482569745082199319372617202449666187828641227361955314205381166023526131132962835258174231388966268152628037995593258095401936727772992403960689266213401412027901846618681549312937921931736207519320201426856092454620284845610147029924175492880177083273184005511291569264130555121985589655202460196249972295344307716022831002994607752451170356454165205355300485133244572447016218081899866304080774445750642524472283847494785302786622818691505833177943269371408138134618763827014309146458544647207677908015352823052776011818588751456166771962644749565782291167471475234425782242809257459951519413553162402623442515618855557443851402073474186530006215048310254594346793288100439938375922605374659868217980929470918793692857809986762774927716963371686814580899014079885856297529938232954685343356599201809983388740260469379104317893737376306819534338231772500936468105562853374203752903470734227591303153539529518568117060936082951381824586364480477022261890905509185328638390630995587687917693137320880791157980211151614000482249720681507796259083084886474924587192469034419633410394608958541357269459854499129944555766019489697878671580893939291540507163988031251273634349579355024502746499695458260772614309481956686018033762155343484211089554465352346751565028538796644839075122724752529044384441973744141807149420665894811779877973481090918210122612625855605528293796368628479711314956433290890263955727996565790408547105474582377627055012419453975771096139135417050286295556281498701205792477551459233914183668821909283600407087872854412338131720455280800435819948992608294735803504887960698322015315269594826346066291293986939770593858410650790139610667265229076171634474609406519268615625666701564110818873670082416758915519144191165403720722434256102912891321462044655115060047655787971326966174321552821828066018860802872265120789457351645511441580714387948673525496880807597551877391845912964931261409005783488208747104849447682746503385496472707604189394182385093355573563477277829867933757573230000066338739026785394018177685581636201615691678467699504370824266849635245349780578870746223492224874830964539662468714806808327070055721095247929802735380989311869642435460589189288191668395999734436373240652057997143338927749107268446697704912275960008182440777968536194954735510845838262122264138531857477283418635736835829494440597250112928390413570981076374305994418186580092511389771258353433861434161784254544664403745189477236401033636543771077841740475024734527984289376400932343591883755857149464369136435417512894447089537920627643210354823719070090958705552432332053294009133389250820860629898812335738739407648739981697586882821593684210844899579192073875767462812533350226208586323937421609484784889851449879632722453166042197862901136068693673760023199522766280372258270812957215008357773016170075222362399246567588735253071928229864063836562749313674606402938636714831034943029815108318299897831363214529337701355165870267355363728260275289436798305426673248330613577868905565934121256225053899717037236997869559811048308492011121483835422774043715594723105776504647883669826236640394248088363061914435462466521430441927923138892326105175081365731275127387813903135554508524022331710330261006448323844952452403982177051932148807784266784822201063034952450528318375734155624596596944485323429634251852559557249943497385106998607041776466222801491998463668280069792118418657598320967011381126559633922266441978974779783081267211678933125311256380627695009881766371402895869223604558105643975323449079110094310093253214385326852262646597471236899013853164467782081896188410532158639426848190610527652446997370416402924644630709515951063663376365932738709850041154792053164200233872152936211656422274226855401970094471524725959393060306456127081486080990699763674178419503326330928555100162360572201784208215911104826703082839058567902848263530692509461622598146835420085332423243574521496387660211555937079692041057739716750958664109204501482838321803754175880298618626481651262580092971685795687168087656928865396902527930467373174092316244619886350511392156925048684148114310056202043339950118421482207957320093673603368724256917530057596306591720810297353281331427984558717052310669854939541043988695358266485653363201883482213068877358346944383181239127356028944828657533083402006735402032631333338521057009163472079305297908495354371972705997947558130648142903237837759142776566101190952502134806584468347864302046717086382397742247012250465011040161719370683618922095328720087706443578764309719161587102375954848132941678396952465107386498233486498453702189297517629907272535738778147382372076037584941755712412984329162296190900663701989963480548119419184894180342543916561984349945625485565749850415182057657759718778173913259439692180900911490650190950576151666697470698471398753115715205479389140725469062202614437266320412808124219917999468121331010665415448027765686617981289698010456912607149231545109412636428025272554204992139105490683240472234529408983975766947047726264394971854183229891589051258840942086434706919301127062106212897179332563529000403813612882384308186570691920549526641577154936973001821978561460543225784636311884015406630849475669450172344523957881357492336523381892121269187543762234943266484296415072087192958258601325400949223840381357209404150832785686862372041521809813261420950212982067831260444680318885069262790167625350729749908444643678841975839342106547249177243499092937609593094013780174655036322490843321897547443838077855485044452502507119224394249882996925087996493426282865247314148171736378432857236517952896186016732202092095287133965236545143386767490840744652609662161979927354960886148652153118760615890407530465335442889376315228984814613969165357792394606880107718138640498027146357708097335460751038785411225787089281180200629681652173154585928358516825718228408214500958831335126388265851767688411903093744700804996689417247792994969234528977585783451253608421559659478339789444623768340130971097711578419085453565564890703376174353330464567110552794592408791661037266064814409981134557603118191229581014318730829100652170132982716114171831372528425547168056879448911396300205068599199170838779073539433830565708906424653634095574343108884389389678288959060956219276961177747870939683610606094477041819976530092196581730471552092186727474925668981653020911688844861309966265377576807480072677416014443740451548743738824357930053227575146861746800672676244418843352704936170452137610899325672031575776846247344396909511377426101922889596584839098081817460536471043156983455062160327645976804441495710890353030509609076022697779463148037608377447365179909839126815410194137319216240921365831113199995296296699306791446078855017182140232105947734034962824070013403465354486160610532649998938358359128375456373109111274444401571336786410890629754296206314066635915482413046815568562579030941993715403338992154304716649203209730395530539105886088102959546093084090145719488612845841594789674004502266326459551812126281052310895173539827877299311108805973796331861771400154117818798109236195848816051359516126543048278739139202331736661900874088970025299142489528839084863994053284655235793520578732299589729467068804470860903705874588946348178714380227313410531715887611861785463764344492850422615109354346387454236876819258349180010576898013985447595503837445648862272564848719853494349386456523223006346708169881828000074850625180759678343143173294206803511425699581670219438774797075206673966093981712784965158866209676104552327635150129712872635600086420888238007548921513906730011583436210663179820594839051032552278898844835100804948453256103250156096319613798128512398383802618816801337859831952487192727980725093550519371870900064623572460361222809078428681006570460998509014147413914105359985799956157399800823112911327982649358929153608377379574105633320057463988646713949777700351972786095421737599390949110852555399966711188412228640940387457489753886490170568410673044823170960830510467601734992005064694010040782961877751210240428130122089887175395715081459107183732880631604285565920369642846526748795185020005309034555713202732400601007925906718618277269222028517313280278238005862063451124113354275049986269183357046350495720718570100271715801847011098224399509013467332009419232978812311966473695825419253874334299955413898848013891356721850532582781651030560312803530412056878129034001961345387469190729446921838345312593196402664485055117943181634405525179199969955917133076029949184368077123772759664618804735999642778714027860018860887066636329454173444559379459800826943867445498518194224887002162491953753631299806140634548301472945870511826146210891432317457298745534231983903912045787213317334150495386051916258141696364545394115957310329374800673719337457620901276674152006707733816358829968743104779788126793871499791640309422113995719261415259064520358032721542644088677088960670145926773352659247416060381240359931255220212951110968976619755301391273355777928085595746221962860152214929234284891084239536094337745434865031985261929254399483865439303701988477389738859542884456045918559375561125866083728939223254195601378848611379733627019962025106051976561693799995721373923980645036893072118390443373693421095857150575897461960560532138824110509994183214198335179085200498442167217642571619359349765505563745657566287213493590248446497686886791254424570886266123537512462857607373810364010557290022303384285286151515018375051753765725381326762988989995122832704408165238590002752624643511571876451594382220465785476385907393404532390432435682849806912928397165411686770726675924608668778828483030245050805348893991836580261210059853380604839646484164814674829023571137361474513130924977221274082894858646526852504150056591113317905387237934266298144980825749084506596890604420673666208576885017054872931213161510848959327607367883791522092237744423324770889991669011882678461477810055132673189327649304920524669741499734583176674012524483310705906673189746915789161212105811072928153904461951036568940943021005032460973093197778703504118547186950373253192874673811502454909458924659251004001400172606051439736263648207077154517911181374850184962636626679740159088834102670067328260059671231068375786496320750034984519939154196683827583528136475040849722707096107019306386491590269721212336017387900273729742260531045644524963945934425195254032201859389178203686298652455545869046454982427750492639437029182049548935590878482622261976562199016542546873968401038378984733355237303655159789939579100362629892461265203749850927807626310404363916755832851478628755427492139927601282734376423860199025574319218553697422104963734893822090146761775759327548134343427385740556780327913651015932490942020906245022387695882222327386132014514211201118454190832877642312346907697023483913674569075301226319613256813804101542193123294195273834176978008883715714990482389317832515981869581696190729383827724133862884527379259682164171780483995156297981058173469942402413979774308160764959911255224564884186222868257637819290372873244512679175832217994071109092190856098030320198939595819783099598728457438627602730357149419051894670353634158801711404738115292731623746645876946100927723350621471913929954339407101577606070708517520471690860822535575140836963510449842516401404354197251203499177681916279314103923708729097827019227453155051038599277392614640124922059488224662535433365263585346752516475921195090502123770664724195701189667364084291333851808488286425817695522607031956324757319855222049609450540234604883861679677963895117408669900077381977484112488362443247130686514315784604593986459173461084384030870823119004665151211552232899932873659088007007211859974203248480471842234037731150870719988357035091151642879424848274392286117745905098533511782299975921178356940553688607755468077055578848883974075379184201712372965254435208549800488514365840310661717424206440729917124177433698092593520547040773481865719693850956331272101432682786032996693879483335168373535291322465698653354992925718490353594330984423500517445015789105924303604785125586785417545682016085222020517452178145407203698409735074305224457816850433563842562091449996328197361406294670333892628642846342767962621654886201976964763014686512080042432572859475820927212311332901187912402333843072679525063358698740101648997928267619331081999771862611140592659256430439496148445241327749302817446000839766926747357467752595782027556440385882925420886228871936738443935563359539440052905812871820892083675515728631332670406198436077834385455890167676712628456079463668311741578738792893098057762848636557033538176553476410853780827327825818838688113845990583709443653529144040681305416751467830432007503110325776815586455052059612281423109544242120156633518428952907904973165429583884931914078184673032822904097168090218743358359519893253187342721620821692613354570629716005745656167399701321306732197619925547084194518271352057692387380269281656455366325163779851271689986886178998820130013675978376199940310467493557674913116399512285642666264551139062460651259445673851050752771317631703526806259413162863599588156267086037712895119168327725824443500607720483348037975861899010511047002677725071327393230504573925450184670930731304455953503695655864573590562964024465701169295318758561575355002689859153218172103411046558685579703871992092185190360304956275437577705508951524663076196746334676295117936091145096905956328980611407245144774293099791459935105009307565114189112963765977921842023655858496412987368624647223669341182530523958475328059596688502799698694654867632540072707705424511305309968762856619632900853479319826466176951616663692999391116206892782410132310584510490058385931043880560051250670306784518173542559336055749931865234806769088117924147506432431458501506117871591457340208556496761282209678549606670600845370600163569757866223856827806303819282670703165229447013758000934679881141935614335521754131358530418721572612081959551197092629759290803877337392676052010284709482621253298779430076871523056863973666417246107246628153640040548520123794426931110579157273049538080395549318081650726145260652767401986584895598230189065808069463746204374429465957013148049273614146139228993374390227663665411371240075893081639450575652761857341713669282007383438185569819593569827447328705573095374911945492604841899703221750124003741935743785338649427882961798641802886908746435511894628194053421946944168488032586337775070418069876241784992101334261131303944157036140562782103352342727006214199788618377886648098002321502597272674003207771955054757892418455318322462763764898141052980369988080618484879357487082651724627515365740214864849151633795768430719206989684242950310570883461862523423189936672556468128991619857468602895428996771877703453737809459183787086043817514900809871651415901643392290772633393973193901777418562295669885708181203240065347853804910289491974455883867581277046401767591984213493279845182066862131791665480764354800126996660272598853149042545208647310827518032211533235649610091942671978189838669753865747107088669672509229828823429180813124767208882498128528174639413178000403211050007075701381219057547478286977271847342267555057323113468480506499679050594463433331170966104959882067418924520652339451556060838223500259681538967357155566357219819173481167753319059155018705999718734274813871453169560302049003813722125690341380808833558387340262824374610293335642740909054565411650912400586657417826431673492879763864485049096513324011238432675090371431396713496043920126839925090151369071459418819869817298184814892599754584341745765942470646693467293823440233962572920554458358065020939215651933413473256485086961587786133259619847911683404056063042640769999711250714308542290286877043450755525940452865676218295973083663662967893112837539016741170005814167583606741380388673430937895165753403701096512771528466353233096225249560976029458630864086869588248464144890720699246256245038226574960606924327850630552893959857966942299034635917087416049081730532481564067586158203603822449347304826345637987751347549724898800067988573303034916017621203938621085932395988772123915801004643674377018520426630847870750089635251839804229535309401782947004339366036725645977303199832597699667247306380553414093350895972178602915534881468722813698281775899334012648839954126180683906498987831547218827160554534603270270364579909420770957246283239421126289533885131004449481248125745765032382917727985486962921491533861450741993426449733349141255109637040305867921051321888563025211514449824579090761831501420166555331800198847817419921910551895060561279248320753883311780361893872382239874402353080578926144329943222684369722809582161878089379154641822930002437226810188198069957664481662049437908459498743548030358463777421356857674936535678601000208377066961383261262669309595042952510019232990326311738831171273749622175997767902325616225246880094717179609990978994918893577436598134241888683796690895273744932233383700891096362672890186205454686820084352560009881878924313740802275581827936516937476801369520994432684434906180102252174076983677519371064765342346071068259969628600569010407679592219156311212943458184889868593412062226401859819469705011603901067396012076236120840154146985505747992465170447935670160980791093364351313997415739189399303129873975143540329231200699113413179844255295471877902282227205630236031283382785055988489987059002056730742532856431672239969181905656509586708986239028670791461756386363275878759424082775211197766531509733416671334949504759555807707308863938771096352585292082382720019569735244915959411251100484473958905041853108585447925981385271232475909401143891767678358182232966797530404252366371419911148214115623106684006327060367144595704095042445432082323608780985640829561095817015262689308613187453564202552873710785694765299395935798545756730779328833733000869831373503523365284511672468510477468094292721296189560890201855608946325580163956812014397428283215672004345553697822874721590506888531213585958943778312933503854479326438827050843924943031709742802769552736936077771791976242651901247447075591015904744717807949262970673258378209911296357543911288460658548257280889948363525452552295883817890237811516979182198727517869282865167862411772777511514582933024259885381824044550178034341082237070270599497432761833030951928162736151954714988799223182524758224066958964459772058969610880717178419504541879842344324257362857542941775466943978237292846127539157245913351328982578913177064943758527496556706403183078819397388906201627816445078015106743707215121851795495163068270755166326733530528875395663907264103667628026078794841138499355304785581163351602831313845131093319773628059774816978621627589142907371851395902380760084236812123774259797007078024591584153004165778979400268229800170094072309652566217328742582102383784175906713493098598451502548259603312173358440095674093249291132502913213403166742287127403300341106053911776966148586417578824135854877235001033262197928374078941595946023775452001695933841044161725035707688845534778958878347501885279548884096827447381817385916607240796580659874104680891347960556267992501024334766627177630620593059964639085922644121317441422431496239292355956910649781867693246394432175793614530177299732923561923922691163826338043199682049509769132384831859301632300591829862715203665527317211573545189916725777731855243257128303489212618640369367335748408380911773838923946363779153470518459702975811831901468217376272751121536698910810699281750671022437667668720861345913252288581537147746707099428888590391671806175567898502503723772580033841028436529225461858802209527906232549927127144616989474837790717498788404072086698277559300916036648050284798429999817071002291196928881107691043708572394775204630377016634351448671793781541885607610106607336144732134950496261184404490192128567933611173114534485018620668103581755634667357428918651434510649923289289775324020846806237209069306630589093127184225619055559898898602521709092650139106475923912448063537299494916916168635082299153537187842421985009655524589090982950437062653965827052803433545662750909799057841022288205454314568878620039638130040522990518559656689234396815700114126285644555039686296970130280535072463938882560912471454704556036850971763920012572304512394853521911813979782611112934386664868650298918161748927961630429288601572097697625326612641119583389094258855937157131365501139556933884952819846708109698980329862436791663152885729603638237145777142963239520387375288331956879513803890026899102969316125770808883265440278907342755622652819696274150438641772134337363221257364323525313016174605514197701214901627774112223653210821911528466384612481858766811220682908144925975995806251402411796146462226983153829505274949336967168672484129674544200384513428040148316326352523321331694374231352094241198341430643795004952983040297616856207909581988342048725392254075796967790536591184118413556021155577439737202156800649168240367075788307205317946641983132858613133694803837352215632410176742409025882008772424789005684764788263216722965102934020438024248208279102607777817436078119166791663170148920467670232221196869502687308996594096963941977373016349651083821221417016990272840787391936098613421130679364514822804971927508200356289889816107693011070662773363520918784372950758983910407931258928185047277582877202261268390195364651718572217693405534631749288214730140717098590086721861789526846876286126799486537049203955263835164978196046969363896103291517643770025367764854418776561047963147377575108229640440688739803769959841415176641521975251006562223604861158716957528433367080456063265715615384786080419483149663085415975404205824359252395782902777116570784404264599613126976871501700237836859831992182912798390588386727337029341624480738440576021336421123070979351467153826398732514733292589839525929720612026638777239838127603029273248705707707252379022092214566537342015319562887858990840091511686405541615243798567541938353866146016395341218845174895335928781783244811147756968002768295233103092994188895505862947080759511793660313253406239651671612581807153328276780060954582371241668419172571688855507605853287429216230021487968508182760977051413245760973858970850067733070007352242338781522184541006051824064956001517673103520234653952779533766534090885196280925868596398987991639634689310450172404658770153679858402575609538035238109229302639487817097836016261284536472733752694811789357220416081780051166731223781703227459091821329570691516281753456361357258184591400979056132528224645410583197031323717089831268931453793756619459624545228683045634844672450732267231435354356918886561721857729846384563927748380320494217343714954661541332649464822997217953394410580885447305990745880802900056439139300917597733569637109573536603686436485428090697182046505012373506632872435038407572682764996271380110550851196020567403868587767298886109301053077588704120010337479548784485909381884356289914038391411216439403047786888579237565507827017116670397029113600674539123048752966455821077377190597111299478024170097610901254555082419494643548208849955366586714221137510887438870795424913354972680354848193792786459588006847352438564962235960515278137564200679433857342454505230747865793006020874882268514049003874746385951701775408594656096699427092576161788839931340403790582982946822746275548732953716296395828397192116791959878732406059337909032055303500684770640664663496339566339994599140712731420360522099649751319784591780188217539048050073215803084205458305612992458200133994396640883744770076976320891240398702519499495000929706820540767090251119074192909057822938746741763077601056696072121989583046322414012623886941229186954233886391540020628710078599116103726890064335315616941236696365611903507296647725195874157035085514660653954045281084749433090622383413601207247661686038259463511736136131190654139643355312301966589374339991152817993340664004102843210635936531272492278037244085293452192696267515524931014984837960162473417622647319892646116031890209082826779440636686205631602517222562948414868980564278766536799795041061702073113682756701533394472503927892164624463835375903960652451455461465694926751919953737645366807741681027922630876681041589172430506350166878942679555799899522518104423820350765512793377990031482189389594270516076880018347659484353081963760346413272898333377001178808257566201695527888988104824595794919263448097585728136837377029139717719369438305019624443260432925193735814329464602851738383977358578262214494053207617611153762899392420480624626443669513418264703984307932515047178228564047157507449937922579636694022417861966394433242366782300188848522798870412362424581591157338241850249370732688912957971350500540572899339836082421681160835117543475873265996812181965151992787735100212652844164422658369469602248067555887045426576163891999735075127098861132592298374954214958254115911380839108544101891145872000403302024860725579303925690457750109189955283189371843498382687754290005668811194711494115358387228922880575187375701895081301270398088088063686618883835917687318490198076467731625266266067985226750130622428240403054885542521642237547567974582476868020962065554187826757617782935786781212106386660865911194202815361875969959288009594622422172036295798082654979168589667182160700332631251016834609651337294018546976330886688472665446829476108575966949252124229396723325273992788675421723837592832658019192303903752394156466327812584978076562801565981681589343382697213610284109610794561100664193495009366778182996977743465182480679776311528677929504438590334315261429978983433513516270225378333467227213125303028196598307632152833608379859295667173240142270329437981033430979301051380925319964571684867247836411478222234259851782271551870540056791401125226558655760297617952415500036914534373121487813660656646094129440630384091889114044144093813293240296717280791558313846079323857976498632776239862385081020277661113827859002372598099255208718040755955655576994844853016706983473627115464924129966015576305613975798157149096245661564519892347328433004135029885993558250050814008621118560336146706668216752933152906009697045171454541904019133884092215220061626038445627790326849946805428598000144975508716522048342756858992668985791496267060224418718490341509022879693491144625135228912488664416346197511299367421117310403471382308305103479659231808216856391663945044877267762472539612914658958228434599664502167559292489958862911148629419252052166586143094908960869865406466815477983100712425481841978648920848055143700429101539365401043142235987838921605615058401262939684619311006650311278982019744730051380293339752745802462238252693923364333459387643898041947496596868679187572625754078700793326043786433197315342369321955235431372476350934776822797701820302023948321815897955563243578302055947179356774912819957039949594117056542224674146534698875536529131526157383207118401710867917027436263862461848585017515043599742249898852357069667253550084706499219229041730691914655598637544053068789734204806046056286329976389790673140615592860659555989157739991123751429737546128545524199288333311613010181330010829289088881012720968196284776675140594336607824943271422529995113651578198226778964658300952414760634895838535329905047626124837743306917342605941762607241325525620235722018973720578223078924447256311505243680077489742299504520661168233624822418634831995779673543997478232379860931919037451658888055954789010658833660129780295361939751695001238810404774065904693291824409538990115661557356942658996616726222861676629485896552017993158779058599780250607388376583065559377907563630001175695512313714503746229669878096536133886505678542625793299547954416562188555486711889824419134449321247319630887378185650689874039750577955001727026675846101965605928055593232722935461569351580164288407554630632607180519554374439455573159654718664671044104047410470768142224938842674070900895271565380703280172647438456770230376272411636326872598550848275767781679339580369886358558744149612047665082977628747719394229664532891674548977650866128290778366317290088506236463132101608803283338875741277349295894186966576779446241146986918882970358469750283913901610453302163151169202796152135146560756015014276460358525844495475673723889216710194203056478652664555518192763544149194467373963420125692787557190934003039654623848136088336727263684914866162140985323078270887887824915433381340009118968725385158072862225148977836399578185077773886371638979769941426314980804268465660709670083840307623276849174173995067497993916684525511162487213144823296143159808365770899348459598907142399859090812195141316586423321115717851660183014436345158704018499614588074014535283542662870048068102553671653062584777576325386693810693553314615390952527761596464943673548070629335903560076540989477453093608375127501502423798383580547902050248702032467042610748357339527576757398949077947979072496585985560650875180532273188715166492459938354273676044932658668682114390740489530009901926505516448187201039724026601633172830275767055603735306856827464939380525414718266693504680281084314395681808379174364909270960035047385523683591110817891720666921897791874325907560272296136447337425885553074133387298093544567672278129227948709799568755993428214080797078099973404633870282845055050194376572068324204854156732359294375377743647357470371404870463327705880603747388963643749620048504019745719437051384210482705303379232217664826740322550662953889660784327027758602467457137161099229301754432566778788027635985949464047250353137914497051342630484944265872413997977686140852322055610658628303630924894134137225817235890406852525905770930256137083562344078744709246336627044713395640870602171372240691497908308629404009125992652284356901727683063476259501375288411988540136898947841595090666947727665436839288534514179915286641437571766224802539719501345945094462838606635924477143363251146167024202135681433373672366110174354165527979091201154953563885372511081540589321159464413360799996675179072929574266177506265365592902346265139355261749252092478001039377085787706061101039741421115410967756619155943635057448380406122228962237301337628771929596196913254082536924378719446755683867595540087766543188050626853029492150076309011584273197813624061912021732869586379514004769593227677325761687880544987141208895188260627532334828157224523180758792928498366862801322904670744160341539391799964008778385103485140912140079479887163505055526627410390938640681334180485952458339940111749654200970783499877973593502933170803283515059932396536675287856323347015103219745482841769882915361788526823573140306427928814350194153745393522428773346296146374216644639522918848798900915930191462695847821690285452689234585618768386084456104265065798229866225181466102022018440322456382566376263630744668788925674462426529799698650765951279756904469122899752461399398908816903187639670260935351919683457859276522308342005513492376738150036382961349502863507356192355937672845205113373926666156264787697650548864279785646028345333795306872471653147492361510528180404736384312900330135909029522030418000980672432958372472079796220254683498181836634448071159064845755538463150523094195822007102555034245316310019421998364885190880640539659588014089241894874995198517421208182852059948181675805447105859794009833868299515463892786384958887387835345714824157884516837848054189021259871564868050111475706168921430922025187135456934290172750506232687677040164657083916842386812953203023022390096523503243075943907573839958204930903609747006140294063851749967740807576510557613932356587470377661323991821057865948815731932618453860896527514635913149708417145779134631345481181643700715011584516347552984653026466303153309197650985236163219231085973865591645505921595094875691820481568500645753410457644088254515893607212328804712607704307092335752595769907098516685371799641741428874432108712449648198727644680180755652907494863589615754215791549164280415286164652465453871127333338401572348455699170252225735080367079361148963928030690774666122134642280686270994734645106007827836905875821458540136657315359893245434752364706723495688392325467938102630571197570114474055230042911225867924030071443287702271492214657111528230959761030024515437032875738242990595376243602269946765311177420201431506695715003320122572883703958507752351578883679990944016392423491274154732177423996114649970501811688229893670788012385398884652863929581788119237051446508109849206884393996347403268662726062639664464890845869551999248945203097761034798801325477790437947978819652265158838605062340712963265830652643282216666096770839326212230230372712685965888436331041713996935224469048073448028004479843798017253950151102158645448757123501772690557682446967161397338723423412456303815239194499343897100817748288992555973087163959630725133511804637554852316605540019161348927049161866811931728448287799678231422650417910890452780975674757908669700138376620234842067074341507553936536210831326920230978050015180607570730155403124752794418883224989453268087859931972386782101185478841256929608381259433806431713066341003632348991960000667207611323154044004633746602273738363631199974177784498224016233662672174912030950446085316875935471561344457911748303965728194175647357145888853635626785411228749707053991246095517185647491497873615141131403195270172039681697347486621771995482532729281638195134836635593918393292605197467680532293011513578204391168835264058556569298352589613480765417520352778361734968958966988021014189241832789333399370016635168605197468705452529940130517384160296935829617565243253506941924022314662192805292089481317845421849102465451236500850879812810897481034509776178697581833700857971801717286767250586749141246704684285797316626641979804897227997781655547148642272875531754562890904230050300274761092411920996716008508192248838709085227322972534024501999785496567010933538506880818653297629352577466740418679989382960744532103119020354821822674742011710663051868042589537266124694390449276410973416311188543577083492000928765298831543452370332295153989410068584583186892861370388011339519085400326226190378211962438887061056090367575218863709972013313253381588759718047419262028921948178561982957783252058529402582952525767913585683767875379901194740168492152265867392128164127184569926066489363740116574313294781958720071860731168693005984085616343655600879804643234020040598871517775929588915154150777429891670035027427937002740371366745882340081186008303517867777860902081016694423168401498761238342464232404956003516716018659276160586066889453565237461558472999767195462344608993877859802363328610145706013995899246225256470491082019922889323732265689311631424191592137254997620153041513513937261456749796065198804658461105081800658128012563945083832993341247087252680765691762974602958980096912553314479582115662345027095356442556995457471453835595110862982062173891940898018430501659114136242265078693479250182724804261706385765507008972069803036239630888528533452513212755437574111654279195597608701716455018393187043570934169868376879959568385022804652848676253821161414527710833100000315673837813828632336053646700624158321999647226360788607664217033411252205342654490680672160924265173965559110229562227603059238760604178001834792632715021524176685725156109899910716340833382944740741914692714109701051549602481498823454798226840747748595353707801472383037650140021304126354492898832413071641712710700224583651472987903355135584630488030880026276002465630232983858847627294767899795124029749085111743109085603075860297630954180747474825855722543771730473702325095605718235879643047168520156860976845297636128059373412814014676598990482467283507909021873169783223209170026276858561182819217399520805546566729531047301527271066225405425462240690295358324880520827759027192145674805587114779709891878719734894782012114997410592578451058523660934833279105379332045723846337525846628447470873812103751333683979841822118297576751030205922651920367513630120511865900908749870787777840114958368982861611511969372489710635196006045462021806506221725661135743287605090930104312105684949505724919646504722075202441541433962538780176936569616735444584118882198877869021029808225106097037975945766392791940453912899239309882963640926528938919990539653132800079541234649013040975828470259923454280951260782279645104574577201476017386212575745975776056361053100931854219306698613780166684061477329670154722868658275399142242459186377844102781955808564300266112806210453878431571799080576735759465738262021366711731951085903263591049573344234716711536134687413795122556957326386578560629107094093783948081797053672262352169496347991542772485369370198761624926105045617360053746445893860035050855686220402248940531027952355957070018007110591320551483102140390766399689771807981666681564134264338419815798434943230182928857531684047213661140647185322128389559021329866461756353763644718038377597071960551941137602677656454400027923214934838044962004801922074259609682762202790639431772723804976564409175394095468751395983591556110820175945762422064128881116578405672908422958967397947014945610944457595011929318994956564898498517074989432324238331205380808174897918703569246741933098015169414515862524369988040711195721073281621797382238634662215741335268275935239116574456831332687683355901922932476812757357969679199066513158973923400384135929405139793627487778297364140272438419948692375287138386894367640682399213798690028747653739366766655618238825726772847296720256775006040933104164002291161105490784529854537280944971894109301118656487759181830940439267664812636759787579890397609042546736532567103944853338742714732383050712707689560105022057414703923968314204219545080274572908539084155171472186490016008926151121672179094720741199030465720288323589672709708635559452912982383476133482297736753397268772534525590715330358240671129632187580785358755173418583331797750707656871604436233763404784749078870178205025512985945728949053760891095054889989659801855366880354531488227957437593584308333366101056619457522695582682315508619531686889343244043603396647780867148362426367411356980491993407241041381666608564337449629391269739396370285569061965377794193887960225563997208506303218685372734323758181220464427612237374386901882885339480641231048924756360366532991625374904073657537701436943629059079765858648104047434617501469301459434928927266767974546750463710921172392775687129079643105977158905893163310306083318453876325250903444982610950516483836649608973589628935221740551691156339847731795712301915855261152727198003917715841747620080350199928163541318035705307409745396070255243415479719863436835854102221158607011829598337949306160437473848054328113146199277504700491170744558307940755989201701365044432166658206359469627817279497103221976125431765294678613765659912835647024356537616740565171959812764878425938918547354162057767900260499493110114990739446907054985100264606351452981889871484164204183234304960434498964784794336926293260567458191079032783496661145274877833792172969119853293356610510688250866305989243978110403738763852033451597418691280347816206328986022533480938610738416456028324208461685826922950892881621808676919762114566668854489554228248687795289621150727418251739818023177886402294164479929758473559959714432451514033477931624048123937484889101920929455882536120500382340308106162295393485792720239139360448251002821019501549493134663073222072546077940454937076974583035230621650883808725611150929977787494070813436416065279746877266820660044438802518559763164521568869704543356506800514496229326057217444136258983147569792404525493456548120371507536505953320899930500814345857196487271722861826381665254260944435835849242503501269019768841424602251548134422134853361718600389246675427523517879108957844570828796186906407061425460319881629768842723657659889657828921116297140551408808115098781608736752675136823119050777411797996869582046808055801437221100201496984581398809763539114737876295090102543067438641746959314806814652952837819146306342656156046251139711580913655244912738515009478851804442910253147311214051324758246684481098762764182199518910196620264985382589328218848271317327037668083650306966742910223340372588859352185516542133823519655230000253907924989840589621339801028702852733373070666845461756574188672233478998273972847820874607546834766522813723975941819257579810010108887902476877109568957463713097001631420828272814173579385050028629871505018444038100171420750131659905289751346663501423675869537484305160898907528193120383870175555150964153454297776639013009094525593303321513078336691476702337382820364157128415943163837531067202563262592699309142288433075072799725202292679802623525223819402105999361021632090761442927112051836433005413383160175955220031921480366037936622673020395418506492243441748129951009370596036832633646850262706233276019717088877232437706373545875050433909203558483735480819898495941981677149907022867283173361150189345990861668282077137925901938548755386081261362462356049723854615606960677284136315492855509463633457250369838915211367048850146598159868544446621586134433407018042064796596617171143898029627527935082658299299820146530625534530388761784821219079766074288262340855669552708983035399198870736262901433703916902169717701362711499051313372613897554519986379733718469873658135692976874161443352758791049567526059489510965515424451008834355734858728224028379851126454822111257166422071267460383187798505129058529687521763947192496814859578544232419171367441663923400928290847078313949944691585673682990992915360892694198937772159216396632572860178818115482540365868709394111341021652414363239905733248561962314345428124619938859655960823655049444309502160344005551284223843599570953131134163590353624489081210772375024194739679777500474164979192432136225091913913035802692074020519868504035631530333202247803080919987308388718514048284664702171264637372628877085278071066938266903062205365548898005968786113858138608118037407992271160457558981082246428292822381005447921152660440076856827371835613700272032951679897973375514001995698278037806613698694841460063718682270567499007001624901764172078627640715419182889023369631724785090309206379108197550911697410341721139243585273660899829411814910930268567828563641419434492569059668804745808618349566235788886305680829287786852772371773931062099530716381509755907970900810849962020433695764338930019414974130267861505385444528445153895287988704262216660215031479676961865306693316149832584034052239225625074268419629980817737879441516492821186197019681792466514896085926400398815121942043276525996716187474597435621527525280060018922204903708028039783634292411188098460600844064262347887281702081831295612385894477107312940735390537974387347485216388465195228988893943339269573904545804278363340464675059705376599195807992843936442646025023122967045032050187690961519736134344763020590650545799453886827753923049602492095056187992376887538975714990311587472001798117924599951484694043115803305514336749561661498395479557686359987886114505989426119292825799618912778513630314576775620152137142949009508837571329689180962345480646389546839710527709667342752472384831957734400172124451222773568336783682997989444368350306981648417153875042320341744574950550981872097256820924077823435256707334218478287808563207838851825001401168123725839978532463523591442171153514165290251634692214094917665414898622326116192484718982932017353064908977325309973094734447116377317211870557461075034732975630078360927567020414824451143679239269866594470064649926059487518428525496429722264612953766989596367430723194809893356278159811366987283823645625952669475784282571248221897577491973638356808615157562392655641047661690363432057433872420935609205104598278527531722197830294865952267423333169095084094641760814759958626148015602291174061260613889624033487463859075737635571134793004917605100018548458118065942880250197911155218219704975413756699419998279840233276024000912437150219754302241104211178085985240904979326717677445803499032411689937880753375178614770533622972789230198230651112085221099471786716428517026199505433747537631526777187947026016084662311476789612166966180362500954116715982158121953271995633365235895763021647547159573949960953857926548554428284730954264914628399495294322268726882100277774592698658356078750248148869405811215873275402478411839619057349264362625934587035364908228462337850099897656913370609624436017194409848455754258582043725733914252194145642340073416317404152860584976487105936723138354171805202705032476598594619528179183795911053249303051053217800442255102108750027296379756484429647510339492911021295335083855760391527428753498226793860013335051866199326656950870764844505927264244049890740633462530727048428640624943454780160059955801948253506909513335411640195720024626930883917459834229515518758147958231961734528207023998646918084999573062516794008739076528220442580047753913198887881819259878664527431070933862989035073315436763098577602772928974804891413969519258972771094297694055372895772196236861886311700076322676136780067892547754041361558245401956096150597162177952907955403183355381049748405387965029554515798723151509228760643843976795285177106637490369033848950800366451228917181903851517353207176334241133362827672537428177028437737076618766367970478076591935605978307928018118107819777778024743577509448587089625216832718092693227156676388558701891847190238783379705847668071690333952291071760164261107104973454590800885601248939581058777471894979080105881295486075210367829327214362927442331457805878980994213616504889819473169758613399931342499283851996118430945513868243921249947705721162739281713402762546826076723856096191944180690221912306095543062588155396237250982809021801630738237305167815301902977718860329984180836562142323199576908181628978879833970700371656973061629287230570870902683462359505519076941426332346772175360142836608645294358999578832093008883398452348272632727482928273934972517380218829717752502509312941281113079567488469055969020283030590129020214513923386726125165633236896347873094225981473835653181620308294706737462484472112102490919983769321922134695123952706266607804591922386472683791292530194305579626091681268496065521963040552908399705976699229563099168022801277269028918093411276048061460443020402415101735587697010527000816765510612658784336380541015673475329596264372751619553344253482436419032765518073865919048422852712528547826277648435464033727981347332417465411252237606637838550730539944350313248838205582262728214752162149637100739314486956489087698145606300526707599934427194584859472113111111462706127693151278982791859847261777126624246871530792167066180989262146092859787181116504455140954361214674009242395718240852780227733002097470538083182504313094288264569398157150765596213582670410595550357390848043539744124699908091671348324862455488903057512023744656085292959173262613603790691377693135285906091248081498095172481710273776592040444671602682983538691808538369908749627915159395335123047810260791787590513344898848912346722499416953785386659797152876080975992606321153856240597839060624302686686717952128037330363335679987294838070719194398447544837852300980432853979560698578909117686107218802836052919980244147340456676004518495066360368528442089814710877683554792410655649495571279834180867095774129801913927238686244948396062115721165745443564138906105351029395660806301323814208600192212602294635809396364285226563237798885533108999453647051583577171476947401561167727668248263576088329187794069317763699538833762893653202999261049555320911320552539775819499722252120686353941423455004143212907247819568634105812633563044665076595871273833967174653927325735444149158532481737755767208579574923909275555741785547266097736266956238622680246101353598384198666827396604101746302282259680447870186802660782058237765047255174949546728563034664803254851449773539486907289677146168676684236188075907157543089983796002061642045134150344678890979278226956709329266204712947081946191240724581128033071603779955873516705067933283332699387005296239515538074595315465952839514040382783594327822805208862106565541547226569497749326827786704545605746085458890293734740979640865469343511799187527011174373795840038897644071359455301800036754809220044500656412043739603924991348534804299825358082055788064738547702905998578540584699537364404200615207032330736935171289875771600950772285039694787933927981888899214103789719253397424868058160507236426083988082400787983935664229519186944357763415904280277612817261259157314608559025281453370250715828854463722284196524667361093312431309456967509581839255534806051427118240693516177392010382682168442287126487208400590885622034960354843766735855823962729259517765301885102231073466487680131298746553606310725431780968476147952661862024048706134657065166416668285457696194917451402588565615954086360304044880085894587284961342995187972295805018270612609282152361361651708779637172519157198275207689309149327396034922078558399546868923928780199726643813785050367968317202704339616833194153906976830298012890026840713234933658049527055184844153385776820428938537538654074979496565884522476214146940875448145348086066947380607186929989373499147860668361145600334367057402363907228353516711634380441956122600303023059863095920477760061800993158440555614924783159191359077577304761973120367364707548797300907879109838494764810535992566272120702511746519469557715994362303527979846774061460486426556943969401353676529721084535916443122134655455573521760658928967912465941712181420705556627964422757129131375404564848862392052984143306062730966790112774327385312432035067909515086086405016210312954334579367982822358048005201812198427215026934683457541903479737770702048267999094099640287917093355280334367856846232197242679615810055985721311084586462053950074419727865418896707595629154972349116841363589540947224207444056933106809802109844274764806826025317885599331009322316564807284075610364746229263424753097044919800725366852624791711910099825709875499934408885443576293452245392516456875751829510588292356154055361736879235232754614901654393034397720910070761181579485320745111297150820383842014483420398035672886965450544995029877717807871316052518867158175482171682650205108851363685626648629290695600527025378393086945778448649248700569935447566118895393570201109799496610057023124899210334276881264997694080332394546212636960739411044928934319166501035131612641228857249629666388219558208511863954810588766695673881158523570426723178110218081014476692518387700969150924187255928903066298598683225563505704011338804274626743791331667345156211146102227534550668704135426317317263904504568080940125364682830280780965907174346629301616451514165907192405878457161256876034829472777780272002657856760813215482250145922410908551002859657179615078314124533441738529111346604217869846981950101418994930592351102385751855364572444374765672325529893052444492150947451710966645725849513206938877651123373488333113267433967948757909293393605104497045211810272946148630966460136126085034271761099477551987754213094070985758114258349938355354815877574080147973249400779224948526016629904659036358077586584930385380309093613249156069593273296291604727149673824580726776960348624733444631942792104100918577464374777473510854732587550264237226329573906468404165264431197675252412210473947472601741006067718930394525397493425778309377140790462317902887083553443677394854897743735739998375311988849794775792009231900122188687249793598038721153023331468393414259690563864034944091985714474851032519217664176763280952445494585433849292375185470543489325491228716068376764475519646768235579509604516860971473721954282759813993677507417855633856219986115663336564889310719542089457615236690454001980063620403115783989310383170623197670455116132453979071620628096726370054587375777785008163922441419201231049165998410179624473984915256354525948329327052449332453806656613418497354917525726210635970984067073988726761332624961941659781112763816685260634929886640717913159422207047701028731238954766562778370142020151200392352725786730310241199415506872436229156239364271728461442753252241333934905571260381082939663224989545342923531478914756073610609356954547051113515572104348446427546561341643731135723435776451003545799554117359311876389764860391307624669493008273798926272898642167892007467322918307438646559494057490645478834476080517164143682181147122255212196276928806746384825676769865815589749950784029729055808448359957371390721013066952913291751551455205277894868454738775884983250028349422855637771426170947227517660650508231155688928597583709081253878991333116910616037179772215685103113084997920583868131255046537987807437999979154094681940569414962377038348735652409529221520843087545313601385747058573480338796075698976228808702106313808275836282784357755033603940710835755377573326139115087844084008464805860554240309609885571225607538504336067628594392787697751805313537211440581673774528068642340394355683631944416082768195831536807387904003617235713953869120716436116984548442565665326363132078505270549231386725742323041011391915843444240006176589993814637718769472470824817390521009289998305518043860296619156785331686396914842570541404447867894321634358323396678183895630349188258031149130079130558621195377518718574494666125739873428860591076534517316564863493008707573324710330687774850679359732742827653690487338685718449870090215077568354003886770932923238564839602661927615566058108405557355444394997078468869619654062657843840165412469280479458027255656493450895050971998347936023590342249899643823851848736383026756063208883777644933245824210774581950114253677615832077726628080177176570268628794141023662520224146225330879494270068638290370543674502181118373944599429418425476640430240356596231278943603639601432887959555712335426108051446171826780826644141163510046800545942238861949348018484703603865954147155417303956491016316407933826466887013699938530504902529389533008071049986374295025650142179585169289300365796615017311624381668600621020417107976613356388730938199900039526514678197270252903375315584702083370226350031063346337260047226955325472966882527358339997486026652031557126449375333292765871465994526949419574190110971964911008992237266053192409973210432952848680330200792545497979560115829771805714364674845555612986465515173891915970647655654211514545137052197650463923111801356157761199455637768231498158610564986488884383072424162792959798713290218809738144557450962084774266908607568187851647729959455786526522572851982695408188956645379356991197047571421509225701148327909169812573094801157629757643108212770815698876044087420045421754473081956025565969867360116466780594988221035885873603717937521908556534404972794364960411307111993943010620337664525681300755574987249339726477201883733133357311963243023687725285295167276088949324193176802261535405832022626895940324077255771053321061089623460347494610001202458375440598846728196264364005913688234858389473563478491664631700804529678366550612922270422302325877660039806761621013432285846190371207156201600281135174021363093338801183689583592786821536146418818165120049160541372846296905006756973502572258089035616848046583666373059042023918156294042897006611241244952920639468774154942129142263323964893492784364782013478083018298240685929896118293200264761373827022057912045264962293610572071247057048909242066268307157061413023130856857703777547206640971851555738796112340868924447778753245491432176423787211895064249691245488330003990919671337768755071672348574432511131916377992174366482831301927047464616902291141052378474541756187672058553562783874480917068114968347216654794993035942466794204116796423666615109826330239843612015983280990674155201060994470089031729157815773902363329771895802316651886509232964776510956864345074332052272283515933045387224484706188688307930512038977693873023440250253065937441419238219011249850162688433102002769861238530821885911584239368285512425651278619302685504850444553182889515455651301146912346280677760010951912566451298186244266080373077242419862781622274731882788200422416063629774163823477193580092960500595498010845013480520400067480597828809465498959567312179700739731029181110884851564546684320871890955546900468496625922893663408499288174683979168782135364310736706895543699635562297402154305800226903156397456925773447536559541094629267675592943957790619096935484290894702587129052159400695101803843252308439625054309645647363833338980506589315641056193319005600353880636459457302785458305577142781775343630428767381437100920269670390268743761055747243176330440191290509559910789410547278585001691826868647810349745988637666920200975568720774844853747760274221259180909771821048364484183945788280441770116894781975610942919356603957420947718483926415176097714133197278820176696762187824014824257052516263467949959521099698375640198535290112941453178711956698008478738998062006875580176465069184252938319081357333824197070434641796880413660698102627343644080231468445265530963339976340825248602658665150013551858441818464233015901613904244082058406779350688563736795318945481304872880125342437041233572437089808210295440976861935371240798006949384772260510137518163113027693326603594793725236865552844383010657832797220234723945811486675271631760921866868370169873528747076390201432921119590503185313431573480219387143344529117420925103136559341775896835694987215520364102215777776261634808466608538779091063569661306888333355736426470999939485699058227666176824811455521931347290736342378483183077417784813167134390351564770491694170935890268688289523308640817743013173395524763715140561908983503262423404263711386154627432962119463816112320416902082434391770379241793723123256669180495132036554481721674688759049760423208144592685760963311307903238904058597964264329793066921464704310072979001542623846634267772698839852373303153986209321394531800213150286060116276862968534493777766405472021772630513336124290960511053581829782191035562201145257877025100124245878155806563052837979480364522814925246026592981714779939958841692797770037290749142717947065920729778376513771516836105631414794943775111527346034131308989796298922281116506168984188334418067766926268514086431658654589535941678146767423173997553902444608661611202523512308450468176159706901155391216109318208880972870645523568761580907411609622276262668962211166038976673823666441556006400520165168119082389415814469113666214822358058123106412659449234555222319773028374551807407200905924022172096324694899296240192377766575910295834423922929591235074090408443025335456963236778461677635309188707169085083987349053471030239846780948501835717337253888713272229493884559752824524766655415451784922379282544490767249355277868099453256095394991603936494321589600153212713902840362499106611929785945357783729430756207202316487049087566598783038808832928951384729216750207565690641276172885010808998534033362143221593726602836097734971228780322052974503749247176972514625041417619230305253872725388396693173997941560838238388955888885033555431973833128166944181993585287893393215454495991404472365882463760694974433848568045309670830175651311772131840460793213058687438791481013876556355976692061131344977556989326434669007305328034066713794132177758193530676622478118719135899933016873102085105490586000027061366275727260394354276055262038359657220889277950328533973309713699947086435378479502114069847447414670133506946534104509429810721181279291710616174015636702973097552481485961509404639784431569818295945738429704718653762072073094575741232736777592747619642538745751408542996668604492433819892706627375486176815830610598783448707762172412074542537552632324194782195221127918132239383942376661454128356510044468980528719227514620029082304045654938928936699779096521836756727587946372742083862755491849051491005527100483694290813729656228120551641478189594503253627133091526740305098328956221209845703851151699884086052544951376318402214857772962445845305376440677866977728354844355267019017132896385924617246786512324163822779052571687708006998611115313566279757947001307791616515760212602871212444277596472168031608722502950658664358654515292561313906540176574763804627106310904809392985641418351045369075253514578148469347778046875002702119915231156725729452464455465489111204376347485867177739898595812531688036974325059276686424908347548821177901430416386015344380945538570828610517706067160837525489783568718513995294913206117690749490294146955261713537687950595680110942070339239724624696023243738267822008610856863556188791053270522923051185298365408585969656253762368743822930359291170827131810568988034589133728166029670755417078341242291766781003314160737072556195018790072477616338596943878265137539326715349395228707739359760184153016834080033757423244091788352994334437493744079021554005794237713054078185695565386324844095951181690831358528373324915646613430272508619443208747063352755175944742590961006372793867422615180053144659401549438480029798024017581919572685574699583307373131011346462599471802935942843459596905328984600151576420029548661604894739807062403073014202688035696128864614359737009914656689090562357974191161997906757955189628960013033628079840321866375141129010595549481869637227039588036465445332266528400207909636351781908787800661597193274812689233521359878102355487844284872228506036237016950623151635371689866643510087984381734503991148945127139999806372723502083727057912823478507487862664584662309168098902462183525892025675420918475782406718823771400436143028861938599455016999124387833821518455250301672606127262076538225204677121555306275632712808083314440659970385916435211254396785089360208534218951906192522383843024397676055824226095651255061233080579088140863216965302929350359069318135515062091119967485813480042589825946724045282651341404102953845271495231477536598074927695803990010558653923698237144083313980329586469252828321117568246186359037336092736821378898334992338674052538750940406952572895323430830633068923664752058302735096566590412646386708630382230504971555998691313994496022939094004797700227534019769246696902149191035287240107648693421888019567698064257560180413545979846744627517394237845394628586988048328290977955949979431561956855834923253480326357947150548172849283407059981715718481932896314649593516152953106597790896277596498635243881901741139094408238354217337484866421862275586483341461786215325833204437921617190095306934484757189041199030754604985050243386955947363353567971541868369773735578084614632504574419581428291004064598564028516885972046941526973499070671815625217662443888792358621378482093890760272616488780897424703393751778397914726068262903701941573957940194895313940651247302164376291581511011336129826042459120706225840961815426653291118255209762175689060519816211824291555222873575189169189984557319315537748396783574834504096925865274846898888959014935935523183567651386072797039908532642135703231236377291247903793374828058951224774932189982626186905677892899850157029888896875278485802924101901634520182465338706929200466539502596017942523736361250409173302191128186611056211430050450962953558612525292824825411437275369241790333196771032423996457165006169532741072952173660886779991930998546621951889216719096475854589220950884080614346414534712710611096361366787943387297554365603832184182020345392805654713957752200664845804792158198031240433565497963508524322759568611280893722630639482403978749244754558892677149595777501901072493346782421203418398441876235410883319711760367879624442404851171628440988454010357552100347829084979836742105850311330870272523932860921316550397538983418215600366097288447415203422445337508343090100456102740931223444270870732471825615870516412137636782336142014889534805788636224753364742614139778728854329078660676489338696279314376599384875295756822289746793926480294166493376694069485232331194807218353215674787453416775918369815809977972817096941298827717008998982604077235224586740744917071731122758359538501114049917674186781522227151761025329499331474282491558498045129558939433586407557738188229311929895807402549826046080906765717406874016942826864068583266456167657974901681898039731984043102481496394018757958502475801314689346201530577774775854595315496202364337424485131226029080964197610648160877420959477331541659650361182709524431388106570650747190001904836668630814299041408095549192499948589573573462384504718013364261679533175179674764592197984749222791244315944865164372601183695709305050584772315273006813720754776460806909966470748357180239352455934527519295762871826226983143171004642458384523495353821180658018611009584249133270818165216299858084816199642909136630563657105048239535101718250786213190431394744291137642496548734978352437976058455403187133266739996360350251292921517417588403493503541375053323745169876644120544546938866378286850705469862243985152722882057256259693090591349803063166649711035617125791985181908802518393294710239199908356751120607197130091217408994064799051526447780878933367795053998417219076421389910812246856963731020932419947604228738487935064936569198138912438161984094830657046027679523363902317057405072245169087250014833416097229976439835652658481725990644894802571428057501658176145918554649815874015409434315927001926665298876396725269634530283154118339260315035263742610757942152173692820914724230465830110140626186507788262672372097889754689001172658837555740098055868723988011069347951349437387471108420273018749225695224530852894562254898918956212147227788918298037759710059409643205899318779658492130795610387535577098564475946884323684163466938742494368091012037249916537224556461373452711726931308637635164567494858027249594294434392617636897122894699667806677978111451212435832169514923708141923939493069963549871850964846569317551933536539409746522062406281428521002739750307470678938365168202055592336644940886491211618097390610175896134213475075679781745600171877041646208228987965484440392168911915468480805632667026567386694887108427089264238633669107488873179336542737410424052087476074654253190081134206755443175645693077219999841977577967625892538043099213780994144070821115298246104533863168798908367376370046647958251632456876770655968460030232014350082066690417903604333732914392266850221930734348356420414300152167936326598587305979688317369853711486843544685907219444586274272046897788809266989805112674797098624732512129988896646595775875405487079671184291975749685531555159178413653927194941015556780297762409772043628688085448595343448226890126328148019731730273939771165680241166359797197831301149949850519635902403739468293498952285462827323817914055429041085713150225358315859883139758509319038480690975207388573309384601204440153491701827166463428462428680282986742586708594592249720697063076565820729727334506113667722591185362570124560762839900120150621745316085488186370160748428906828553917350556817907117631753303687200164813307431583508605713255017774589309995653926719572511446830051689191743277385314248335952458029619857223712950352983239509051000801142209632299522841596958071098317936642477213353043593634169257148105986767856660538596402095610885321611522918513048040522103834872322178302250650121195925318902537721670837203823894094103285070058780309532013692111708996638594312263046419175906682738558987583977302645531260823321999848089751231317826094706437524189654902868409470612773106921153803616692883647227798192107054972406688953867227732600164164555859042524211433819264565541990718648414382735174402321566479362097975639653565828484901394613869849400471938205245522150516500338021980969808797695595984049358425594164403938561611793666415594455060355794044444456376129725438647570604614009674735611838749490747610688280598839942187078678371395506061480902280929106481996824484436238033689107210278638909704900387630971912323519934114548606586894286894972661142045619685797748096531220666009876320524482477081983275061102587003022272165359768164733438193799932555616071011728768647958069758693450560455036757884031536383087253402335613003133292378077313405555058652857608447562931490972291506878614997692704795191097009077997252035223163445853693355220321650405210246796155668157831585802428997658443696105354562228116437556321329787772693349192486011023886752038332842691631545649515271241734914042200363589892934800158162943562857098935275491598555588537474717640438213024045689997139527917794646708964129159161894880700271561578541854383112874909469460811175001212526171386042342479297654616785617811598222000959972365240981159405874135444307211099971998119770368764862587481438003762933752945905643713451890175003194268460616659871996576951740268125919380601263955730237232815919271469990148543030642299928537675033886941257897926004272075162847382015876718895288874495012233001026471423046988098849220440631791127531429310706517910400494975389043124408647953302979173306418076033614281937351457460015769756399779253851357265828032767210287398807924025054244862945174251111825890535092425789803594358198222560555442039071722964566423504230304041772603115864672489426352105433947370431528018799988511369505439899119538448234240629403829246017280402432190238163656065437020746392602301593318494185356886313998344668624752350032509345230043035451796333430195156536090748208322565437584504504230635902053316491669925007210256509487908235203443473057649243384689152162338018287182434110803659560844074429922722938276380909410131901947510944022285001536996602713136499737438177440176893584175133890077288425822583943203468311793532397174028775292699486690219480362619623253344993322204938565069164289582532612638855271110620348433293274397805923869381091634061900794897669174082176478261118547962823110851536663368441866337333406335805108640977040777541682112271015451357668986630548392534501324028458690892476816934658313565265969594533333911574202796828545565080188144084149285562286165375219311989570490276330619646107120225244480014711261825618174633480389434568781831168524249597613721897705851115663717974697873278128221823477915704006689017193427654644819975438413982940254072892099482476107288082912965450254164393297775834286574893165094476153866044510328225698546889404059410917913604745993273329202545480590354262183681433615614189851362284139392808059771700826080554625504221316104592174036518782538981507190272938176240322293607122918277171572095003493079339834985581749714614456451359583875274510329993858425181514246568385331209272804762825833601893350823704866508510016707880129596994766816517998561685145827604212008408623356604992776043602645170918872718577201525550660601994046862157951395452925315985410782785918794998668894348445586690042591891357701295770170008841163292464111344118181773110212473811569342068497673505219149444206290189256942676093015777279216790109993606569640664371318848695061559667096189235875655211938633106623154172476100255244462618332621658548834057371152121569454935156515832605414101221457439436899564914116847921507655244270402743112099476799394060723752119512827869733864313261208619271703193863238219651578330742063166991330439256895381920862337352720280827170682895930704563637359759259484406904447755366214811244318349983237654227327602590175824840351696295460531978398890786100237989866037134705121393773863170684160320822506633698627943687793191010213864032630806645674665946620830566434686880391625313792805345117892265682377279952476879520735906072831070810780941420589300430658756431913697048349311158706407954761200627954699629968367925483317595969995886632371059915415203396153281962450695689534844582543552306985834790970082689447022016393700337027143656959257192001272607071751769590287619077574253820292117216660967895982164464865305774946628567704644350023688581813236862542101715701396658365349380230680257393546967202622392844059950500071726365994480744380193940391374873297831808483409843369908120950492286186786471363828986099577897705093453484523775778558048882927633328632564318270912962972954207677999757422343744307441927657879124385813871773686322593610369797852766763465858925762523297859751672388319026339965891364164763737088337071334506302834219363275031600056853359172331581503458238274728476778778729597136032804313556964400666488332650670085060813817638479123112985355435589498193141841043412829251236570108006064785139025416231736451935074054682005469988393036653158933708221008575767079645425392881170173683012218155487875551206491728605551226582355864766379040234447230477865083313544325124990724630275135090160279553983451046328439776556658333208767894101815748968409951668372577258786377394231031499214641209587887085518208513730971729235165853836175754307442535369977043115020523104100193118375283099693580204500104543812040074620297367575688057381128036841192981297414123623348135681283962479980172626426020847621532121424841950366542156210390612043570809959460899607155160748956349012669772167128675296617373250358853057175136942682264899832734143794979191581378495697048184629597972057731939466108392395921135921844512902754834667064524464714072802926043091877926042763750152734003698912180071971897164577370678265461135416748675257544314456726334625908754884587367462489288076125319501592159145999563237874055113313953989726400009945763624409885192675633210022201165243390723332938262379824856627221099581088125631618995520218084006061975557065385219535343767492712542746989117179204674258984758138431692731000504505447670088586043576097340130659351053760507743996287029842162961850963152407171697511028938131839210118700274452394257625911187518935233380054329185323386415078372430432262720440594100908635019539141573724825356556655436147848127707252681256221239602346976268997943941239631961440970738371829930487716610861561619072586356946529064593453641271986854011517413566165298717684381879823696613815000240281485389033432190830637021407208934480053284546303782124392692660227362934238055962734490450040895228521851159124734550482651733695513135294119255475549957556830737999691409457162494951954811277192197864540069872819373272577098172002305142550141149259121566053704496479077346989208935879312446810415787347022711046671307622778711673148157261144449842977838390419855801199467263173202803699568184066449152885727385572482784862921251899692106945356440396262420144289468223854795479729187496339398601419351331754235993855985055123976673801646477672808622336449854298431619234668741188587156820612233255081003798251388071329606170805262203874960222070147777640566073596351760619886554455149016264672888216884122065566035947486492234396577187745575087076962450150200504589343441288075969181298752288730839882449718610505560334993612335952405281130141741521256144877860925436325481686636853783103024128767784096251101116585978855734694395100269110778855921222327938569580542024354348745876231628102443159987743652751641533944851755521539496848380269931509405509202940149384389972349950938806627871065424290607966522349580523439053603209223928583312500193561910345491239905269871385027200001420987619450046480400196531921074185952706560752810754989168515467372605662682948410310764536845678369689409418388559618480657425692697434115304082405348601662277544376243790740930345349448361678536097538374595174357147876754530346261431830918112538426372618061041248455125785144245371728535457091061976599182461992066426704904875133640553331443166212961294995966737968145750069073622172026740340821404227399746304177633452111363633590804990240790768531453576279650124115886160191315569621751388731641080280022815271393997376214225770098783592416222367179906213991812980685689847593396765940462579697719329543540633978033583576342473906591589872653335773204162421051422279722839933447450066539688418461848748747429083290164399640091539617202024403742540177100735353833393691944570898510127724069710359776596231414675006753521957985230413551860591630685745454171891404591746517486178588345393601271683373692755621232628021745454651880073511234408554060604722753559053411876951168103106713226357605505048569701518674236432633177548273887454761158233889914061747979316583849689456051057607296326973376585822228450619127108215558938203818313258088863700626025925633593971103254116747522599174633412373837691677847831759888378524678818922171469186036447946417911627639921479313508724989635819277146887958053819254560052984973250505522847545592459510738579592652926241548649115578871014550353605825124545979429202791264010433116857160232175513235327217863952542634434196805315100483480047024821417422366671038977328616133008627808446307374046428974465137672390873541880260745206909765957150180997469773741097142898583034656850725411298790926022595649598752251050892481656084634913927462127211050915648296101588030530395376512728211973306713655900514669621924504424206609382130586437112312541094324840813218504141223700472940785845702650520850780235268449282995750312832020192358647746820259125578724779530281955940247654081917295319542725180634776704822538358590595376861755932106539979978095843332044942540201180649263971494170810078294727834035699974574911616747551910252688839787586764605735547974817335665837514598121668723758568168003280097173729702945721861844510454134171410510423762863449025623059364147050023851534124892155469797696038449361132780762009696197294263458200636563945444387734621084004305662331949754806735560353552038273665238565099223990439257316673330278727497700839578278761210817837768031919373777798340690881542542140865011892105884956614708141904395933373522934830854562547658047104399932272280928792709612280112448270409368379834037228386126396944740584733834237153164100783831435334476775991295715306343611735355828705946396672763159857885978510279104795635210645572237483953689896224787125349780537821703521833010580335100626616846045007016067460768644864332833848836192558285640635577485013878799965627137152922217061005743523179917594458012173226802117452428725782030707016062394026680627504042858663877323614253323472996360484668237152480603876167020762302516149456619725137792428568648511321741658563610625048794048873486759469582990985488570545969036559173301795770958811393240656576041891105716521918350903615253659312206333339750934490112412868846766931512883073620007140743692209492630940227403576456504436419001802580360007998239891082668744072899446622806785587870037155196732521446779057174232602285012520590954465814899658810934475626421508683732109462972218658987128015863343804828496559727019799266154804637566414833189536983616518847395702243287492912438510925548738235784423473446589564695036247242761274261804573464822682577969101035635185261671416479972858851171422841279341115896446674692199511274413531948920187985291264379540849816185965038592399049504951484934738604622322104457071784483780502499030163871871342449952873795296594565757682485495963823397095176923371742901474541675393718773803443984864686252107161644145584203290243506349612985169213010790691012995741792162840858705716276239372336388225997890775593680233773585106827831546943333069389766353140368115548259177954854317304698076354755802956586289533016233276044570700189882135706050318139248029295191093856264653383800624862797387347086603963307826867776441044028214016981515016493886489691187928453278086078058215420138024242922625354856588450234459616468107070481908995295708053596728342439733929022011372656452613256621473050075020456317198880757501813761838486542155632829720761263391704637073684849432181561100777635355208451949180381605499681382211631363858261242917336562283180043766056262365332076853307059562167172326565496701402042138521981803442123913606679274501788370663140014434883913117775008614628197301466867954266240557870672560336871967258872281601324020507328720092032885819987614055078694054863766442981469941541957502027958012051508518355568612779790658296436130559223229837131228088734583497475373071618017169304405345390709953345691849617372301324950605996184860657003392061800195195124491873853837552367505394499232852343288830916902616866337593510020493972445211800730419913376478678715372662519397670644090377876566957063689489647054215133132941741402419652661277474046743864805249877990179211297209686274522581036689034315039157165037465955806579764832958415311248322721367548816561386803456031473673700630439428420617522878901735135969267892372321444441694776553660652795764117735637135090023066462744386122631510921001564705727347931492408247578863452662798683960120693898876107526666298155993185204979833644556520784672425516661344741904762138364606149816055554993866005328417637272170083109055212082064283474551709684102210677161349320237832531115510159787752689919168216124774760176005120500287830316288776047352084557948536192832926297918924291073274850457285827312241111594839705364105114219350386278038456766328084982050406095799262669778655662484488914844179753897338699571723769929415440860051692976509104251750359227070337472920414022693612115108589019479075712820605424782364484650422649795298356261270868984007856410228220986297590466395950462862518893071167523134303485580379976103803464243439408866446399495508718685154637366647732899612887807758269840159383628243085200597585488059174327734406721642989349120502553862300899560350358748660534814153302138965897324080648457753904918009770132404934667718068457479582647790231724288322260434932046915889922494095051620565951888913170190169838828275523806466411482963831310231060814994375422542413631480100956396003255048232067189435323388915878458473922019405593075459209064619321341224709969468315218825153214909020094851527722436954110178891242666899062662855136135881355592557846567072780775129226171699608874124656827717023838338041759576993068143126825749497777446874374581938836841789275170085865891561993294737488027461430752100718927374333222690105090145375188435580944768937280369786665241342671365037036147791333389202366867594361750241446198164307240330925704366673492441642425938647271713747280543403322285429461426249642207304965045364710709878245769879379960098864480477590486178964897317134113601509753615429376430809666047022002375176405556145770681817507478080908338982147016263320305997404999254741187664996106910953380156429365498435673112641029200516678499974018606972556078066062663686066147104224399370472614435787188552522637535874947918941578974155051036089933327225488517717157751886596897295689690726192975369601464341422278879358859735289252308683405407368375023894779776601193652870790191813727097795795898847599845316625786313801719396392618968373427712656744745717595096483156526835860252108059678332134329468702435536920390507480477238634475181082093420481331691381736702436655424383815035063005990701478103706402840194934587419866768616797260470375590535045565781657058750072064568623392164928970650598557192491442840624911696012980982853085134316804979622765093864279097700699293136188142763336276925916967116628773268367920952472323400219094960309862241668232260618330174003701857031213948242931898070484620616341185553774175674510551354927591691588931901812421076508219042270306003525290108925329013780030999194072580065098727512609767344730731676446816748517459885983348299560317564737540576890337996312569529590844225257783324140867144654057250025300847844897174754763619603750626352721947396085488708069867145901897411892192012461173792142690035337907975112667059449011183305483418544319200061071009312032498766281212534835023475398745432640483067305822299637979730915989874802961092920539501198560998430749883783826171773031894284051859039844065210190622127515364176098453935330777762713169804327457887471571014555056620343884920312563877430772711883472445454912139987493977306667677620568861540491048590935785144794934394787008735166433698154744874051459614487063676166851871293822457037540566253034007584253816787705138659740243089386837024282731701609792516165401388097103029040845427169044346456224195711125920775188105799035669287667906463119301459021671017393819199588145063721701278938554202642254523343408451331636470770213345185217560906667762187357920946832763356721765802279488468996853178196123326209487389438956213699396437029237753015137982281821098150766271498102942585941558383452950991331915267795408015487541636311954796373857096765307250161796647414472210503578657563435907421621268697288584407678719198907226341462560718598049934994359474408639643312334135896789956889140363060853559448884478025618538633599603482344617806135833629597655152692275704684309894171415339898106396443509152093361532117980028489828295815240979772995256162494699452094983194919677683413529740187148065056111812310550018261796801414525624792517393435741292813521730073630764992688360750751014072634669267897526093333559747873780177389462590133450179982789365336467929123424881293466248950073195140170725566029135484540980230648102290660666534182044773186603143865320196440386298936466050527643207676451149650766265663050274226460248974403169094860762314853821053915143919714880967141838438657590072876215429785906237803028016901872491486671447319471387872008597810827359302668421125313832033096052879150947967753894901485068369601786131054310654480256543373679967377435389356988968196881992679760990670710414462876512779224969040284216136695642146005253023249698587159103717927067812550814830151795732196563227085547760118832576017846194502154871015616714745524111173305899723309168794309359797237754978653908494280269084124892767413300054142594927224089385140585933121659924055079317532257961566143941234541233435951751122796097188966046719144646384772061802396402893407229191231709020433785339661659698631481586941057217175247038967165752911815766749855507264711147008829899415989437062036719401279372994913494099558605726320804121774425833993062119937767264955965691661282167557329416950284420257002625778663806852613058524382735207233730566937608871201160292447177315382082033620651490154136845793940532383423997394147996115471152926638071606205455767113889687609441866042456996208146300405796406987858106076846017539588868822397298177026986030718031279835320558938600602766922771245262573697852470526997778518404310215333183919475300034240054379551812175308464286357106025391972185298117722403527416125206221255877952950782562240657398138836172279555767494717359427217777335099154148858227085850566058615884763266921250411750683059661622403203874036531467823109800959684015031456785192673799760635333058968560926190120829009763977724931843813872214782880964232429781999432397815184347592660616636406924097407940083777078161164424792663200430541345022818877431374065779351022930725126054284754359183097710846020990556706268570530360335750940143160426313420759388572103856755224070126776966612054059908286854535807166994900964180977242483399886184300499409357268558199534249970503804439321135077621905107590140364925644362836251378613588256972537600005596566032284356486467081742919592078151754618219492630425565877393324347880647707273117512241842277090185038177508488124885773545068025824505530004561431154162031162103449107558472178227533738168430241452528845063846926559921594770367293339655118855992864705246085151412080720128281702638658497452942533951380248089967410348909286599350126346926835737018027946619224666521114584183293088373055217050912207403666878113780807236619534568524886666390138208363459242295249776289465992680468446022189198963247110997765343065127876060452537350796626699042231465996607181721275820694774891781326756219239682825655915983662572026513870224957520870166090769733045322626806890222586805084103600382162514638286607705747318140508512551816784680642093966272566563497509676392341609202799469605472537630365309167319281342917360285185599493061709259141321278614592730450633470862494905572746302868663816837962178258262075859534524078522325171352884326604511954746321567626758358352893179880249300702047602653362763080326150902930682591298253054872092889302453423307242465057205440221575499981767426251048530806662719744309889325303732448104463323092375927660740417414167295061055264481539224261099589998315014111573147798622509668266885330695786814146154694488168313807214259851978344459040488623363674765207027294999641701812821182481402334660486842788023769754897319980549824761788224560317298663149911684375656174388241720827254125788660906035124523585453435262626468729326534645780887903831287992207226697500383793775318094598031931320154016768588870032052047481157408852772111467774264103512520797819237550065722848020228024062576015571863343400140316547230626204457524904102237156532314489182658951152298302042176497110783413602765642017134596892839508022073415442291836936561800862959563415393991970391085987521156735631853237876610169730468305696415149655770334571298082899615785016628382640316031491901311217431665686262623467320441947300477063484488980965518410453401381121247354864088490696633571499593185803057000544259578481095107868719839624795770578769554158005381896389706995507245991955419073487397157870703366923141397068442652836625165398780154998828225783772647961686756962211493352924178160312097025111923302501187725608957331361686157594379420063383582817547091642332765078892538635966386817889339540011982390161906549134654217644299470749201678244886848749809555248103335460522542382652171585344159354418631128887229247844667363483151250389180377279363672426926154278170419467426593634906779528033274855700188282326658239164007518522001790869601267780337819511053221775214820748231389681386991170455726464324188791630221254214127642980596369576900588274340565033309762640520292950398781062328343176212800002997479468210752198542366648320587195151996834812584363603663084664287933105816991368070770664679524573504097652497526466984550805760447151415374655270104083154066340366385047982709283167243526845539665325290558348625787796233256140786088125323320095583153708793366263986561722552377286622014439712972723121476526437823243666358495252371534856863173130581437437642399070875364933065124386337867388124037055917533212911373045651900139918413204963154917674053932548384308100852947797258786897288045386158378029792572951563171048763964709085493073729099712541788640321422568364989494672658901519093002640437163479597004807635261878095548594817535530119364022186905420935635590218664745738464871779189549481803875342126168873048227819195912461242285927148483701148399901488349866080187488451298361471940406121130155039496488811412727308914837276311691870904975381178147651515248008485228857619380053368230591848037196037501764515937593622566679650284016988255456958294042769123882170339413040526775104676483358166493061640656510689144974319368967139425662453118314684099154569184904604688975552730096756886619626448003512622138604767608761435799671414532737047399312034001245114890128051287707530696222118691763273427051789869346306451604227933560965297613530067481266863017455776404311077959739073985128774361866286112672372452011549516112520380218135557448633556064659745087484091659125532383215118045675092300078600578732098545680124679576413891210526610088555657608513884575831072835119345966037414169435987401445957794408755970475440713345780160406764401735890534084276022246830321446837274225811663004309425657388014308280200504626965873182126798882744459875203805101280107309219031569231224505290911907907948654999616820971243898178810735444908714233942584836434802762849017031319082902909552681943593700395071908129558593273880359704908110883274940890158991442242883079647658523075578678802676112361707620165285378100065413924311873826538623592725818271529999513861588266163032190825124195224723739689244150638072712175171563121562456730750435652351693204317858336972776578546842213903233860809265293503003317250002559789314973958743722353382964138451310555439833034281193813289666951201541328006054038229171346945866111371557192207711434428611730060782496223700204577178250871234938637620697493876872890669994500577999661211321732899984722787385260161428698831271501965497333140253722742555144584657866740934943901036913499481676367587171354900210635417848382806490820636248500326441509834675489877300573506987125813771719165209651223435466791738497550191881983417939061451377674848118067451997778622269181431045963357410479056178599665926042928547333579097355719533190118605144776204883016750381916592053100040441507222803424910180902397543062499176963876586394658876472680325714993565025079014654361165639296956277022496815306188498691901471588261742356278013520926854089829985293317394750339982494537160342495786823505273707121650701669446347141094668137718148738917285790908736290900780908848121654579695802417465668794121768455721000420713063374621054986694245096439306401095223196811018249874608277867638402100934578634370926578164862557170414571935079496361322824324714334310492924850160841587242076519050481109449890144538816351096774566993375910676085212811989550056045397773733308393179969228001479455076165500941386106808315869640305843070539211701979280096415423479025471911393116063074817117177245932958867829121906153309593220223115242142774865506257076402011402802556321173850875378058797941666281678903284346926217488551170626176230439522348433542147951718914280863864561311502689260863687618098992243085981424013092522724474578728752470525010084349241509643865536697127558534835581110512696555443421438761989199300484097165927039076141461807431829293545230122573955157095827560814045255560024608533424737374058320545500722888051111589782207219001479008874343813836928472090284492983580530349746174141652339365815636929059187525386638565364372338870023013858521550980909753037756287173000768510258606239361888139000206718903490552528608884962291926896496856645174597062306811677148216369451952373384762967107785148171012133910392282468591692765357699200450875486961708671609716152262390010852213404072855065234565100092834899705906036743005948204580843725047103359747362259216738788051779884111200669772817996784244984054805222726260488383265561140936212778651012557359559698880251255128710793449336083420034009576533483139256436691820690137679987420785689286868224203323829224146008435821151748817230873435104856888387779710386007401235591616355215138704057047870644328853552693627607425065760202329984796902738216100217499796383167544388111135022908437359271475391600698003352722380597979594611710140483365029640289919161019869231820159833956391145846252298903463633430119088628207514943267451768237267682340480367843695317033543612562234534070094553547528886161216498247266789774656304774600327187974764206429775410684233123708776244474099559389779686881844291541036028838403399631708157768159615434763958183997293414210357090697849944496499821657539220487599815613847834291185269051195082961496031607143346758454147696188424120614297519774524074520198973130364555244450915599023230980503700638109080075100202771472550891031296505745820001651102989812901945910790855200338610255815608264829095371384466202710238287649118228028453740560841881517455384024048374456286839916836332985721596670166919427699741076322469986922350872983181074095325748804284844628638349880358513190155891942918395425824581125420304842553987602578495134596265566200737033802848191263244782644341246511973544313586444693041188690287131211114374325111416022770140217030638785037612065708221378948449840805645861022219735123523540523360518064708002361209593564506056747267864625663746479743842830864577699515696454753785737154856388504375519843687934176831633688192765185076386499770459095551324963274653819030109853829336675187187163730252395947558868449044779387938896300604007273882810236029320372026578575228271981776945725705356945385878317610885214256776448754154897316562002843190537193561565008250847318575663832859941112945026262406315848635013241086528610949738573302402834553890097597813586799177589183395444694718601041422971038666012366463318133238886454818630873630520923563732463183733160440803350977687765155787157770751162815130925907214865352625241327223043969794679439975826921272480566446673690247699383008436924354175023322946315785977870049429796523675997516671980047563772034111926916793640490257348142215716021978199599910185022015344375387013333566905321240910677450340581554089623240614670942455554891436313944923743140286021164244180582365190969212405491518618323855635149169464851438900841555451951388056541966495916472806644651792873600037772161676312781302770669594572671822542524092494590225246307550060706554422221733973474415781960008922992354268706490804743590106699950376009144081145921460764430363842794160160602317725459243945735744666277619243381909804248146716316755490449245265949746719299845431222645970793536962567854521531964018424704292622366309736572525125471374069788298412879669810212096415942359946003410253718517680170344350214863194686661748550740851906451787807138136447018631643461623773362245228737184661392242335464360911872962251207272601938397704404248356251552428616350817145861865840859100065376723398896498269552077126086121671789636268844585426110785658416820851441474622979498372026043902377330370020817308944895011863980802693899226575893502214973077404253268014882295506174149451644374805951760860734707353288696727366369894649742024548259787171116450087681015588843386352430067304344063144940660105778731629105402303683537961293506635774633149295923388369407826998141062870968132090570067893936230827298343992651642609449590813550825508014019951377602253816079212731509755856828250521363119611800781198244639946805021077719891662262287827189327512933926037019148508476129811904614326770280644153964136074397007926122728317823492603580411319599230909370653661946582315236998945719850377967846837190769010884308598724910223520304963407156242276233358997041171118234206176883537055998274582688919899896644404647838029468879625991451633474275019613501391169156180578636707478139526821944660667724790465101689556014879758715338798563143141373682316026448576589548531486833266147207751000428060750334585769226603370080036328085460195915730981754858826627146653042750543477031073157930253298411043103941387425201918457122091907566189790148257184161111308666635925090456079019377261389618150268131921871927237693136556791228794421620707097611997966778708466846202283065281414104588233776074606981733459527482918099779699206044189230634075574335653027626362575464236983602933543471532676012469701687193392449847984596748033532031073103879972898878038478757033208288487967183663041031644162172436743636254166939987636153269559767686530672429631593803013457435843178897742220809857513564617114595467709249173031106258950774961259620654205909880383503553464157852856199821793669348199832118308179947339955078081054193949139448208931038457563344317661195332954695757763749046566094142818511400269370234363563739099744540347818573962103167894289050807341167975115526553859747088183611266868378357142622073890938416095232886984257580713700204294757621177180004586391940303517989405702291119715552864599933537639393884284782592348983558550497888674662765544687796013103333294495020474706684259395002737554492782031498382313769450871824591062805186647688386475442096734096311555805326736821719419614335242850960209515928526656034381038797283370201838694429989703005313162143770936756379225246909429453548572826588223763862554926408520632649681163485523086132681664687597044527717914941822009730389781564608321015479812837446745946548688204428737877887309196244121953415674077419536768657827321493750977189738274405366911949898387636836856413216062669026394318895882960937794218868314264735475769026743360063000538425939781114584020443506745233136046578650277820684672697392442178818290582639632620841980396691591509052784801803158003662114261038055030996122606604798951888617408835303773312822398960258174590245574492173734243783628062295130025370163008960771308142273684525011176900004668103950205899418683149220873423010729475904520023474381056683198570543886139402060524878844053826972959345330202698431156422785049688544368693501254959351443787743812016908870749788710880732396671259422479521662663019445705485844539681327262643469098869344459242392357366467991180118822831089978676666605152482661076680436715722016666142789815514136677208239085544455309390971230412918599443591054950767564180365477760787644890509951071922476338831227393281076593126180999751267515282780213710884150013188157464967646309296852794211375377379413862144742282522950385551335065422286369826999021210864982924927950079349247226780912537829578457838384394337129851938788261877241020547207701771928951605578562196007782557635682885505603095836727410926004374912694585339176018909138133379264787736502920683324053331102997356571254325926438778444031727816383531283721979439742144673717104921710613866937710331017643061735191984176379109576929705135942056041968398316250345571325162727590096685422907904801130506440305321651467756988062275713444440637822858639065768217284830563508933019806616353083335649036629494326327621172551536859271196372821832250700178305279567667872825989127715013513644405187540690463014163499775510537267612583155192759005037885070546455606446184102059364011852111211377728722584792760306083213806307745524469601602602762566589971576946209946592500670452466939549632891073128235375547388461901088160387492184011647397907984131902996358877602538847705987845474195799184984938850677576474690890206625114019983454119115863115581287230312820511376614127376532441645257836483102512057910385861037510018055765979327505387202139840244311021205466717008408707717232827831105090817162992287130020630639607176935587875603526483518556930900559452443818534464402345528451899307063680713454608230987891662383204088517009233925777924910479278264119082894779716655907776779543703929727827205903068542946387085159549413435891201496004548049799226255123737202546296916105283954823433293118141382032933697287100640555213092013024951809134140466289583949407032584376464463414407507004332921848249182628808448680104344568828186539876293301564604420973643666292872147582322794417821169151970027219118079306352710989989540434916627901516468394523228119061523337721940242131719541486540783771330893530714568116937655139223580438930797703311604545336809481528163650197639670315420151699907458910880741894765296550253971990872248340727387832236015591027239452699768715744389532100439206686809880364250713327732564720729120206232442452088970153059933405113128226681425833876140285390043540587522345557861249649281573006992501290324593893203204559492873820284779238929577203415131713746552134271249994079227165061701536566775811321698613833515942727022939385457028186393784398459732434117418011477110437564763794175240192532027278635543088307942759792600583618355353327946279182389774060732924421344800306217647248602302148053330120709896269189025515409448332049501628489074991335370889506095127511660595842168985251225224400742314941381299356322326362047641797930938219551489464284511678918904297060536083037370539109593609443454827201793925317769230088090571226259348196843261156816413697344147675498711857235426851943338291333496705405189753064991554755052641987228344332681179957268227720161925515926480941223044053394862184773610242296726866353175367843316807683394094037389389336929845448495201523963864144115624169739250379303679308164299623205048282791068072932125212089067650735526426449533189281960781709934738386266433951603034905041490673593805577603342822318198477421313702253166721588011252918528754843284175374611959761803178957123066379670643081816757181967197364759903934802580270146657927567890105634044664683144100206951414912103121541168338666212366286046588779694326201151097186878462296129383437051376493461025061838837724845969810032951113460789006865710358999673450056703017330859878602396171793767615899557653937382483198196112247568163854498060736646843417859441842585648571548204969682062576990244033378705974730101473317109385392616329904001772968500716957914097526708601524944359138309747397237501488330975627148311838009948529369609994178145447174679414847541465531489768546532953711041906829987064298676752466075382138726792636612383987927206018451516506117894648351358505658817149400490366768851396235671619007379210007443133944907133743187491785721833063774770607245755138463133260890178013191675966866472134150958197832475757683478220449679456074890344090121440718173495432966882258566897454245000243075338501830002278159610773711074736538150035414044333715304836789066021824072127787660957878597517972658533892161268635349140006687449604743174873806504715286913546781857996903008200784056901657463333115664582827277474970325678146136292013506807200297518373623059159210709795248717764604542003710692630975071872342599916573834296443159043914849636835163921968587873902614753182519872902072734277254780007928929861974744807198587180858825576355747909336913634303672269582049351920948388067142794170993653844702980942014294351660185107133089432654952847053717234500245397414616237144023870573375029655497613609694062765743516865043777884312444686864735221798679241621959865530306529776459382619797146387817633536748400930075696946432798478499097909353123948902921968474891082280334604547433987932944633292568865129271847826174788058425379597901577424580697093503798331832816137046686049871179930036938859770848397741576885699729532986410375353859425452953758078374007414178453692412759986347719963037558367322237649456974452225522065903673037544038159312405808374696919836498385239552219202700643623658712372206609331712722397207109357494450043309179528304566045337897789635614300710160976656804651824645877354887817213566911538307252549128700478680506454318527995594345504894888062140440811949912403867400556669353500824513093877634852193455486766514139111928656298999089270296104062904094311450525560663158980653903695467221938016188152340203259627954785919029169417349861766120767288200128719932548947652641532622003536070187986012741294744481434077256425853975904353898746793178616591976177029761998470931516259010252782559174948200230612834420285629146223259754781752012289993313299242302365079132445401549164025809046548036549473377021060649848805472224781832011944953118979508254636568547369361412810487034435604435503654205452548928352672163263586573489024545318229865254512739994876479059844650427062983673555552858108810360416642252321149942764269292950875944514878964731742989892738374180240745307254642612539861502655335203394359594043179353544840286661706804588928699661467286424580492519215401353696365261353859583387637219064277177536674121919756829573242301381242974850915104977358975967154184068274154866116791521208196819526610925456907820781623900593935028377076416885992242381723479992969849675027755062326609961541789065296854319213839172122413491951954686871165503278008967767885452878398791838122494696368641396561751295254554735060652822674164899057024846107869715366726802324391321898403959950632094263495342993351893492922555607701991705277764812467134004244851372581484538649813961898905437729789690970559819979756046329808088849102030935157408549938979646384864628394669126730102688104334150241163354727131289107494390614553105012972808956110379308129518085191975302756498325536466637626172783836204462331802459309862236179967343715638805250869025284622441834456291752815711778018915186867229387166640080619546176111645085711743611821482461850495084793969149729628287142163837875893868075707095701694419930452005819004155760463877159046029113415535014924787672381707355845318469905126305422032377576935509400315491226115982165490467482098375182805147725434898858359965460684686187259380955538786074747803524842132658481306472395695320122609445021091636779036762099599551642510343013191120995607356905564853435812833164212116892853483062908863597028809909247707868628729650955367976793716914154507335122885371208594239037884763100854264114362875083694235836070590642181281922232444069194769441166632689385547996606706941855188121762209683677658143399375231924069834299034205920564210725783624878213984966362330675490811304197714222171340705822740322956707140540064750136546905730644986080481527310736348903968188326861758579958990245333128099203787209197228381646854648608544555405084808001338065652821632253201671456834196122947914724032720546092190439955942450124951141177797140167050088728775965519776331785261707551916954504213240651425626316939066552513706546237237541871212271909579685831705120851133155712934889463128185392186819650836395358288759056160928638873961278380787385133954989763434728573964081151925484992611825222933006636148885901279489129747892257560539499008409908157478133743985258340611755277413935639268780511127141280121201067723483348966228849532550589519485174208227552477946233327271384201749820747656322527342805665130086055821220188210289805287803394958930906082724909429929388138931917209044651410357490641057769519600162589153478986176263785528043974514335015122271194552441575950594209502080754668502166022743925799626518726748772834991128029761531564034111273349002374945067676976765985214510553431908963043074103723132666900404808421872260805122349251137028964915078737387097221253443357498331120110346402984223321611152134367024935876969662403963928380691745072166565333370482507650788354805703610804779510836716508768336892483928555202600887625278426188843951716391500148101708556954534505150435254050053424324234066709588461784303613041390617217784330584558834273046819941504717809564664858613729920682900925684203276919029172439524328231652586903435318249930175299117297611728201409511285005709138298350417395008626793678400760377326253930188338529560445167424639168976654953766866806389955664090562059014063965701713308677474413252632652430740419985012179814162616978377644169367251562778464466962877849585782712848559535690400057338707855594571061800862670407686131153570802668154786410918731590571602401757828492546080856077388841218514277456021923823711809602060736988223527595330353643205257866695981012373879948822042547106770336981723674308525842296408487509562532289825443838367746445684038883505980458002668721470384916962588449245285545438343540582865261082499598609242448816211641680543846938045120628097818363188700414306235798915988021125334129139629602398525455806209575864006408580775160533970129508558229869823182690547092640346974711922967375510247097204559533567819271466183407281057327899060579825894093839525425774284728248105803928370163344226305604896933665376823609417221321668741442774388945477285664373981212700320791213369756410718218863649897626514832162011826597846778940962171675929157954990852511278737508957853134168899169778156064629482435329174610155819789215577199712313421362164607584175136374217372057084369917860554343462314178705794848308654793860770788240650094425568100765452591157863421720680584425645609201549045917290142230525814902680862216417677171186521540370429541098078936778153869046815587692999558457169624416323724846800782644475955777788318178690467256449825577025689657791294380509859546587034436753766720680252280370913724154412072197644357023311915630565661871092239109869339911175851804472100163054219945193397395085917696085218649911785152099168048838665311586080246641221927909353729353251321225971240950108365625768020763074773027072629894432688074063461284465863304831380773814386566159012164891419048931742376492902418983694698667069574224609567173717599556306895433212044936940927779187348338092077302736283778689745906381742177850052513765782272379826862433203220409060761301891077151267295603380323096308527517931842797012682360595524043418322756359038898424533530161882443716678760316337619559661115873770563101142276963812852922967285410889618781792183067034109262995013378612937919587168585905325858179518356681514920033824709908569669878619303992464630388743068585126850603218658683793082261480094202299183431145700631765775710987901440202038635972459793330278614582031667670969611093441748758485378859223287403891984809515781879017343870532297469313420049816580230635149397937464974879237894825098318258772145602418603799212739825506468248049670593866093908425803622900204385667705713610197230945860221271419832446048615899029156599685605098108904202894255982960561713801873996420469649890436888383414219992812649688115060750556936278267934899133388170895505781159259688392414995733293518832143340376586200582067864519744894564548203461177462575933493867365443376726023183636924788753273296068048741954281649135813151882320256294066537792519970545336392790625256789664037659817991327606304104414286824206964676295884407142383377560414328760478647116765447511735319163460971305546024336530070903047552801172893287209553626815911606663912152761161823729490025444564365826800616049647257218390657839304481739527179741968715449452602946995684564289679036565858103302629103193236331378974544303567355451013335670360156235364292004364827937491852275493465470756654880453371910988234242644099389668009209850657139878267156875321666264423219531270134348781298424717678858029707938021318760514881528648831639100411590896410578312844686954524547052699581926982743166667205716028072478317825975501120204758740533399297137306704712575781057124990490001926084832323996637422622328648017683821602707642442887682520571171613984300330287851589564533066594153841908265401907510041953684863867673460078154002038546011052670812276007739975576578090994383498314921554914037276188068706396887689634599658981161980939508208361989619492587869663859418762882531456198657736272872933249756515296649100732549069331567993012166484557718818632589478449593353732286575902559742990967026873302084605327654554628568915486905762262013705653616367566641081486993441627551556646886314107997482079974728505501678191853856366804467571276322545830225426064163218630950890196888508291490039813130853272242274369778814898799115152653063449263656163489674640757299645549144893687854666839088990533275568991373117062668517703992033344526332714092954334434241943276851955084497296963102904952092131086787035285496491540824871527778979335403962814461030126456250124045170040758049034144276815395510401865858044629388487629142480398809147149735616087343594592108632558951866902446136844038170202241737943804088031749613039746006948512802010983244133414482419484138127381328873964381073855664235870561558803819628909891121356861304955410223961747396672988711885846558511328332980639014520809768396178572557911468669957182576240337750070279737515450323616900094501166418809974752793794385137392184021712624282892273505490332829993070372647064091475531208276543506593512378258581103528911432892743664257442642802644795327046087370581914372658485535136581606682682089013780657677830798285762881596262355769343858348331419579351928305701263896264404013557113741692794805505873987421220960344546403536062031042618496968046365523500591411179598855906835481616303594851684318452420554955559761677751180126804778622150842460812693804517082012815203488826171033631606907132729206039716910365004438269199184857018632668537995374746819230074085888754413450666392641349281320173907851905719945961836118925825169125611742906413276113359698174016981175817330588054253027261680017598794691208909715126021654555036931724410091186166368535262305889187394276039764093461740384666394310273593119330449371230650260221880235609925675929450328478912849994297750007218606462826485012466633021195075678488285449606394410057914888451877156221768105512513635649631043821539514599566538403556258235986225014133765070835882569173593277643116765611808744335368360340695672840864956564168940403116859222419434393008530353932975929057088063020694979165541397101091127287580851731201418133219382725890046478196675988224665419792330837520985596293924599197072385547464854085307939512329977030979681053900795697081792378103042865755361702033632739753153960306701072839541058992138942769098315855597111297613577555978948288149170566728911393603753490885320322327146579359759813038982880774981839545066184444309240633454425779615322098891105704727195027999786334644438974398032762774899654746379759294075439699103933657372565749063894420021329392173912951336642849314230071409986924862539188326134398676092116707988379681898388312867018621563991753525290213465892790962326414249231350209481536874378428435866641242691816643746370780332206935928085939273578474124561606177942142322932890778973929599631499551890319639654802803210721367425419073645317278675079025178305919042977737252322320737860951596134718621607397793074788842224341583870197178213640463503224261682712001426332050138734031068033663173264904906688307716778401028355637677300783409168238671197219674069234127952162621801584158292767868102718511405895055912841395811400386725165458445846591379573932754159169596102192155392214147167022650431120835376642237494910645937970082571242337357710154164680468184348546208117316036081923135602059082662147232863210766302952448431959246275810562187433132874009501963261780606499276937072635377825695471615230895557186145929905736695926226769680020081732941690047923760743965029441305850468456512790251722179154994961138651517040879038846058984128852354204049175349522529335138138008654537693038907267270691072982634677235720974353069970445073424116981703565131641260795756211258512386330540678513985701502479245506251699079910280879735894248654880819977291165042394205121813539444335669278619252352981961219007787035793238052874628750522353184299634361314882861136245628476516962338508911417899543365062820210191741415943675451025056047997493130121708293473276742309615845136797793319239172394298197169598842842754991582717744791999172300048984139580007518748146789281867693038201760660335740093478024330245223098235047504367235588497468052925147269832580978297866323544631831208926405047415392548627257307966403157857784882954864226915176659528584598381106163014776819161576537449299356189832944087021838412982175232706519094840076788510258095786491606495923404396923107686200478540055430379424833701261292494715651428869116921185363386827656514039841431660512892755772358768303356161897295079402856991278781771595594807912340048920508880499534337045555279105459668359042525983584276695485399783138888534364364056826154032641854983475328755007082293398210486423372558971962849071662172467925215144736779175113291172869966201466396687962089320647574203919738028936611934809783209108430567766234456757621455150830144623682425629905289295452806666788436967998349240668088662058432492154581483625674488452565559227495337874604346070764515489052320911061349905403778128504855854615475770377653661350409403658350508228959776138665048457441579470817737916573410703517552525250098188669833205665930337314262643424557256912723591855145360566110040159948021576041131621769293578698654752768157174583546867254896399796030368617951124914290259603682193795644122225458213691485927823805769137978988238625562917286568909013904902272531259299641159391316362935804862632547665860556743821052329767405736177340307665216811777741705270583401032640535881273157906593043906990463798541425300680794575420266327022428794851389758994959081760990839203130714909647559305972848613326927304132885265291294287363683851544426221041167099380443787231722486609208727328576506622647557084567215692800662254282639426443161297869671936390091988009393421129174339787206518415960163668170628156029154698925743034423804842934458735156586717332135018401346497161438146431132991795185331048637844536653250740481826971263041375997996726453996302870149218130265730479953931086042996867919272761299343447325064362098518495438498898455789318348466637024971710013626560798468241231421802377105495672117167897818615344060691697664078254358705982835602603380658826294015603343464908825009585237178662480161237068999799607832031656717527641029989649714137316311909322688545630895966295281593437021860488314634548429753419371679066640514012116887268271292954171029901673842084191706072052960477184052990915614155874221984110127273446999688713476490394726996562440474201075763904642761376313622851982697097769695186393626826168729465789179282519522285232842036306188181478509707524176954722134396525645780221243936845191114710887748413951380313692244878525054290064672904092554283023235274679411639371429697697509921787080950203396715334257446341050788550645998392637064846692460373359526315948135834603969256977639352240507780801410212790559832654844229839638559445870373936834357403888299374114729455920300408890821971322878834174273416333764392828060127127369780694155683116775203201389557955513285313181881322419133626739310695445844708947018830536023968519309506867063984853041317330556800004466221843449746383711003183201671907376835319495436829549157558521752988092847364136589974108166209875110140773312877333725650423667303245174792322748495715204568495810332038604290958464595401168667473086721447004141643637673565075974813957029843948602395501324808804324574221097843948679870680093566012314789840076312899597266968506221730833880849936673932239856097645561992874886763032141239057279345053628827948914126991381494805274623114113941222343919389046002984943100201909813799428454203711132774296922871823402871572245246633337787009452520083848519478626976552842525601123868398023802528220111425626563098874119932968664937925157811718177994660796721454647660939609273022523739244417950521182792263566051354825084801895594846380287754606036333202183481636559462960132517841559021417746416926504456852100304434105318265307466558887901746075705859509092857059818440300053544065867625778895369199121879299576505885831895390068751449837527701776409678611757351492646158621820105110032046890185639656682319687825278915705901544711202843049827880513015813902303776479551860712949626627392663222302752866036884926374703971965585641081670632159791266180939532146311334578857428619114819963289312138010205430830239978000387020355127580602824524528323670732661328116197975162683041674775798546796878638802798975423929365761442226129202699331491806354894541630635708036789819846477298555412492805618660114568157119623690041279559925085282387674273573555365759150797967623868858709100488331470914944714904805761146189710298912884809758925056320992476335957138602423731434365188250302225369015555020998543397828215032356215993520367920544691596227087850398940062841028631472930753993281352559950245247908971917917482154678924413227507863269849604947183272308004827029131635065286284788146921243846730444218707304713631306821686286312155770648847751657641147429647171916193270922674861042960143280521816931623502890724875616384661754521348735685147991621994859901235044580675442312213113245823793044371251027521798259054084598483304736389290536923914756499255607645758946743389014082369045331988191427871950113647014422242558660656167855532307303640635156586322655628908089826231720699218296524872404834682599409184183869442852059599123193388057970463526148737124651825788014506266707489693876724959227325851847752427094325816683478302523635647799717448328828288286559360001953340236977743211377779583607257378159926722497475837314065453995849155441255328825050294514601436831877860940926575511602326718201505278027214045191164559450874554459320406733676411673232529214067306487985082376647229337400463171564375143087827360488869213138068290271549406993378586331891886239975201901498563015343089327062802753460656463521943773704642309740396996183153925312413217137602456801592982408404780257601805402155972617228288348067251221776068309601041855551273838183184580851644671854277850538094160463102939469091631672944605004743658883028014509863186108933294243081506028435852451317473652134388328209889583099243310458434835669620718659661889878942621286247464473303941607548436178312196386983046865642912300049514800093855269263657496341922200679512149247624920382794590967933170937855499783149116985515055152177108943440004112445663609193939122071438820430121132243383324860932500262675309019269639676077579669543437591671582612520087126530844358547518577939556799083537764840567521907454535325030480928096327064514316840229799429541952041319698998135362291366157364870153771074920721017715967501066098462597116080576277590919126124513700806619052669694666505369071581562941741054873033030260907171127223105668073641626881926188173839986682793011549345937807160689550716020886379274411411014957749114071939358679967950496571842531387675726736686421266997276170534122096571137325347944587988544645596532913957175879489823850846896146571210724673622937725562422508830167229131244586847813085384615845680674862545836942793697548747743668744068130445479784528188763998653933444499102504345294057107642133805292356975602395861574810176659162568620926794847143818809537092377801200819077077446152320944678705244227721561164550235979687022508618038399873651288594594167537804414984887379852869422512984548280585081338704527195120642797764629291367530848704027997397586991162743807052053715049643664668659832283676644609006898119811010118198373529083375891954757233239428322348443346046771786235392491267904076627313319032701900948745745708951989662022197954003763758276385368595227292097366316132156498987376447826262783221706949931411142690203564539031269800749738157115469866490054820819465718022273173113150763940794134318171405034459582105692155144203946403960523055769677942737446204965660334731136745900051140924748326745423509415580797849201710349574077840904116202860136479630606616694198901097203061208325140858687501342733955525054361437260265675787906591896038978363980270936520417438665786420237595087674545818257219341892132847443231980810808342004275053148835815323642755040523597517635733360764571740074133340157684639809117801969754221920764380386750657351896893159255196679567623446628969073122181432720935506421327246728271889728534372005979342578995658390902566010076442178933235981273929135856541577073277598638774491145298352912072605205763316944363490119676068447495808379076819584561772279020245336336994321481735453226315199391120780244706214367366117449061330397909290596837960757847483089388083964878109623179477476828707252628152356809180771927650799605783731345207796413001841708922458698635849781681607573145366198499243757375226120609704936387393176063355440868830889174751997882907787791588505550764207466003186954728523190035815076040767789559920270017553469273848904248441549583011568111796206116466090377477021243911934962011176458836723789910266441130809080961345181478775856516802386204523812174940498390180119945501151557969456372729716111270089461436501082781095624490574959139324997145369006864854300207874604872966683959043539764094571720893835142201836888526153691178855936404528472474119006003543519708449869304182117920928617465110812580833773753810330215134819053077375064891609160207737576652601822295847888147705589340293348696627541366627829216441691029963593765534563387713527654245659221056296024321461912869427223528100165313849567452143772384474089038133967964708387065842963434162793415069057634762739576347395050777429733265113035829256305841077539476410984291948765489654199935522075735495616402660363524906473145912567357162396122965375759948880814945702794399441115896882897839628132133634185820799368689472773822414513036811774878450365514588538276258522567106052629143713403597973979322325586191038359665377867732109639504155024038858663558216755572395702922581122770722159180075211269104194188773062657275777448776931799689714445043738053188806419619334881246145213589389933905134719405562598802057103554489580350082104828530270159712103698251089740590336613697813687079559589712693542163009931568099560547797242122409308217833161206035319262789492409070143667509324884957369410128564967148619416286875286171660838010711332562144173379702980015787713880413606511340313812196645814132361027460327715386293357134365686514899766576177678345980666565316874524450123788544014220214544359286499928734255174878698093452700710845304179120462130609374824864921787965681189790754158565680013345071365188357660037837983449701466003936381789452872158354368651180385396886869249826021578596435077423476604425802264962863069061879973929928849770597520940177120533848460846761069980916658917914838250146409124604277204078302232757721688081847882139905257951260497372905923809195385889026951139859547242850063204962253867636722287433928244608309853989194054205866366435596035677539748847645171857839097733221913800278130670107736534955600916994545765489104825403677375821723374004447319142078490405364312683183845536232867940766644408094776706896715116579309501826590918761986210072221623956010543687637488568411746616125716100936965668760776523853498933917235862810018103037396594440889683431984522865822238862534512824036767315579444359311745766736435298471617201221518872034541905743105652302548424675271938254461840498472332139858520104799508288323431385572116046861142512322318147810096875954278511888818199705402251088566819240690952419292129688811431308551900114558097082547421950442684409545860869444308842266004866304334568576094646387608820473088585370600989291479906012961999240466688641254635116829039819951592802436393574269276349198086534987690082501387914490430498341300960888523962043570857542254537741088730291383903283135111921276562504088976677954626459681980723359379747720212650189945035813048234048547324321968813419096530527271981300699414388464590187850420662312383591896894818830409559707398693175186899475837364916931698296544832285113611596057559623747222802967201356968875000512620676837027148898759295570321665391662310024184065732811491771846504962777591759670614055685155308720317305190030453654058327173568748641339782983631820920703804519541321434891988417952510918025848166118430330519532287279829264527537640537112658382777204976349167076120397410291239738844351266409923274178118072294777664078630814188780858392987334562512793891111787526330569706235976702871701427074689830025409664388182946632109905254433052302191433078504602336052467427656347332351818143383246629239852144367993103205569338258207468119703145937494029292060123612347546471539113342455570720350392747433925760700368572379594073766920520474038660459772292531904533004087714575550089105337963577208824786718927196832443493283241888690245185555648426121030310877875977592675478108726272088504213290473042173148153788902259192978898698787425795509328938822071540214008476258052753945927577224034235301087816382460837704866455545097610344476472010686130691933810045214881224335384297323784548751608897876535775625121605965464392249034936665166147964758037808046556444550665383857861299858768478398716435553686232215133236622781496400538634988866080464767953226817804717675186228482828916968632532932462428998750203610623699665382333837994878042517561256097700606286227319609778909285170405366877378382302468156606329088499629066607888476599559480843702443377096871879506398539092896203532372813863601434368887218360587175743633561681833326984207912774613153828875779594912788501940808609097139414736738534049156350418699684461086373361291841894497304933119375062018357739521446371254822151414865165092960143426464649864831919120864269993148323892280931136873647418386824856681896855679204868145345487703288109273310205005359473393749448776335000712153415162112452991276841754285557965469354966204612782208002142118518718677510624419670326729243311827295934151684563304060907589741148496102006250942435299472203102934925985232840424336460474215620198883398203631369048117680541564227997357934834918810965406548557479381869784777322054944745509370051789508794977474688867085832389196602201320748698514198326264784613341527097465316466968263350281404048295749728983254956652813030027795544014553228755578319259383711791288987858264177247296586091489776136088800610514825758224966787803936844800836681064350800512637059843395708335626428912756357561008839249431004719102509103584064824267390428425825082773829951016632275159943887657163486391148992090963898891966676323027585378886585656286926048451089484729736827227367745023266471515399298544592039746620748866051010649564808405107153611695038193774281650390621576179083546891506834362540709739196684651126943408295127826267793465689778506397507092219712913073129584033442859467914614047674425357560665119498455090180386771630337289216020819131281764959928802603421868004280561372507639741582072790322155331491001323053371014452263391568410325865899849944076471349817421308415989315907134249473597362395422991460661460948456453137636749558922093280512067053611920158738167551774512031077881705980595223264136171107482557824325315003904430559262205031882640158120691312204372080427342441431509124928129006077788294106658746455048974652828348779367462661828501217204364087127318557103415087440023052993021756805193189473853796765635101183607604278793568180408913903178896406951838785173608194894772427457669740213822836884175524760267902270308404066184800134488834849015383501580158488920085654880483156347218718633538657570109745608535745756097591794753652682082492213060545929757839305644520718263644732853282804581738550578349996298215874360366634356958325808696729556438290825017757799398291174492956258518730734043165375278545805189288018403600875109005090037577766154692994027017366867502064074099579003708038365650790524352965063600803488831309180478168059230043925085136514696167821210394175608203506328784447814583245850473130511043746171463565080608893143430972038253531559795899250019986097207685548384462189858675700341668185573804270524571182231821896965722095801908829518550966334196147799542168346492897232376804661611954118463112286319913264358661503667123454477694152002820037895580837345897153887320639175078202655706639757787626990605484285198798842534344388276497323871597307760030802059352235684289133241793103761330741978415271605673903571782110379498008949601392563581384440361771186152771729942680753871886103133749898873400546528016744218088512948094287771457732742596102057767894286388243726713048846161533908608017829823814133663433634618130184696249658956588129340586311389665374878047286275808458337795922001073738562148675409425212077017041745707499092963438456692734548188369494821069816246670120331343360215235551975588250040760723497751619553792682318661680040673986381020700766094538591695518311467623994605149239888474409688946907417612280895210119527365035391535060370018875200897665951415251924265777528918465178324201473788777331856878685539584356718602636789244252373579042429631006867241455336402419676961678730923680589257946544736755541264978941491171647147224184006316555422897037127481239591130100707536782233894293882942218142147426588506474798159323753545852317207390060150421258936697795548948578229430667072038625344455436697279918337487228712786660093052365211601847441020404794577011417651320621642644271368373468938385944935435431686136289245163143159436023555813535161962643419607794399915395547891593784403327675590170511691364912205837097210871522418314012446469877652749869406572426100287110820977030642973919304951485723023225708430723939787679867555003918337649195398309964318054276446990858000070915093736238013452931008328737357376450627994998942381137492119191499577871365525233506604963948402478839075915653007051750063114638682034924890051669364926432457435179305646293920368216015518497238645896919053373258588063706110827337126014925327343480483387912835824368701332874474157358537499151459198080245276710026532538177398243302490079966102190049906348541800551561606578156391918200505926199567738700579389215815199953553488050600989442737658371682810619145494788078000100536462817643925565720654646595618316777288228702841490716555980703745751450266706597397460713317694123463638755510235741159666026226259523509538099096414906997805542113526226165872337397458382889176049328609015993128838903773479508857091061691973184817872654516277947859430375779839007643497716757890912275754841404983789830843464769036743900723597575979177438016941617409819569571162265716332809677457092436962727185886320851069432658441904054706141077253574236652443221576280891140901390746308314836303174357309705270129822532106817208882000049559390319398884435007472350809414666322803342526672719098859987733708327947904645974558606065492351553425930632194636881743783358276221082222795293487795198366896740605467539172295934178365336007298927597101090733979670097055180466035297801250048588403339847072677311632519729748673439461543407152007815187112649265553751797933314981654767058071413765706560640607661196478720221754057262652540456197448520881145223190074354298275488523867832848763107154670309345219392002228411311147485013908000748487837923419315991009141128004654361978281641888498504098721061678125003181808988470761625338594954301767706520122010491695662827384017838278644437783680186744086201748532477401098379242421619656786194728080241115756014974258226507475049941683432428576725069806367700180939968491832201365733317119605308983148291590381621170985869064852800049211015184368001589715805182334497672428432074748217248705405199957687901353376081338508089880462049008918066493486431561821918622961528049686139233165538914967004899129007775665530839951886188704697045698739928983313573398647884549126168541562883919610814660384613354538160262876276114279485362676173543764167275634281142247778037392381295284008896385384288757580692800702133486900084825486680108397797652703782607432975346978058653752160458953900710959599231239314138950854442115255601365687674434997898915079144783899987063133141180884895963616762465452310432941648742968540703494279630031745750703693103979206474657120918488705900511491041223352319400909432844255258475039057002275656451075021864872582736846608978319435495409209340592409772909865839486486138557799160506406926031680888024255555121367656538694212598396613825608316148210374213905308685484523166539732910489143487533489329150148121486268915215057559984612073410372244604851986446047685060223741543826095390600239063595327901606703240738765013120029362593425565166786502652602728098101332758035450771144879331257865780644068853184095007720746511381666026735612211393948772985039225845321314478336542092512486080426668127960903243639540101678182701862070144161021958327257651657413525529737779353249807071500131031259910457672878927734526323748121076324268733477519843433462970294498672556908868015740366751509955694639115793437163851203616707061474122400617452744975882744601105308772092800003271162768856650338446987011790549201602128393827631676418453152889150866936456789974577994125499811808566494457427384521687813682272193116870474268996077976816401298142347267368788468719379592783911588401333592752797508833765031883974249555748150619373146404679361393542851167152534542341793744071308012274934264103344531881783246431620886892441005873493654500261420789107267337192509965460574076447866003307492788546503785153363028349071254019543703855062262088952015119701374329979180215391909726648057736082377481896570145068207608147122986227198730323118952883896661071898436382581326929379449483700537233768006838693714424504319115259630286205745883239993768670577392081843222518804217532776263557106123714893072916716955502356534929357609020345254341453226434999810186468804520101182689286283129978157649743371681901113569559420157860464120693581352976658404804629254921884763307623229909232560034114116811837874393152410147817623387064725508901048948429094801128525740617870234290327845603046860616709190027973858097087720399341545043113286719224488776897691420419088730671197221105413219780834641853981447873431795728633302981032502229861356592809794175243387402006733946225033848913033844959550558093120822932484852137529382465266608549475401285821083014152096024093541983985506509181162686809179189085788574773828334103930201753005762025666957040131459283792278037056236098574936913620100090628378969666530795409800439588320844146329877033512113309467672682969300670173426280698575642230268028326625229680187648330268694572276502469051089216698040324591414947993254127021329113848501006362821824016998259692855065434224438487477570395866993873587135812182191732220914514012266651148790099408792037841521768397085829965413661672521929524866060165295778369505891198929282895946548784773134424697713070254262801142265207375046299661808912610525290384234221296028975808275768713636550753303877990183935988076153741524000337415497476313584729066970704073831232471683020510069979161235101696695608078650276032742902974692582800911961465885583914781059492923124173734046939837260743841681373176624840323722834398966711582731634993526142806675511009787371318391016895648685117549373160094912040812161602080081463050838096248261869393174099677816600621902952908367260608766490665195449138410047663729853608108119958579770888819541368175718113242564123663992899606238055118338194274411192245124093086362750774488688884389288138875936231352999200066275673578747962461364926922189211004087594683045352332726181040292603954392685402853751777251374420203235047851516871915659522131088237271876555951406137844678262487049035825055776336369321379874518808919229970774254684021129650922907754058677956876131048822848542854475481920139881430780478067060803587148932756908769647086488241647887944810183058674760155967915572897612759446459242133419876755063898774607618975272162620581795506164015879820623645129945040812784449442380846723429568886325692258817756749788658682203413888426671045607380436312641842733251937833001362592544061445955197714017614597375404447746864760780620560137196852540034688151644383875373432126871967326051690551747716704502469020165445720215436584900802285802496324034252122318727557501912670718263024464069148805503489888810417593115417808682431890490370932890503437035937601671459283747945082358132999288630929704495494125726678721355481177716085733161261268671779310054318331179203408714024038616214065750480688342099154110067207036438427020490250713059986428429483987599366691289432416936762339036613546887279102326334545888790392438905318898884635741812579565399637804483371952186672778184546648162329487298446933011656951748041918033400422927742578170794813876027360091355509021610724843120215815235314150908020371920291591454384918909047979939888677747088338725098940766125811351132656747480661932116263902984319467666962654325570776234132581131162537335969621359349872771723397373915356626702717753536062327393447024973370860642062368310377228866192177452073286698469006798738295181550728789831163024875442443707130697178619651283007445329280835121284566231211691317889888230758429958516247512446051759373320464712367326775572555906305870976092818687165325608577783592527569180404760247201186641116658253736914381639562125409342206636137572061439627751496403124906872404456195360813338629196938149753586915257494003105212618391735278437746699574099073674962149359838201437021916568462067822176947251414069545579961994202497463421655650942378055445056979238668129213205541021191090309017166525899640741024466484209893595842929264822323672596782447585028826636009293137185436129225051628592214888462346846013007601746898302179848189435249804981728527939214299261115668501083308492163829998423122801590386742133950212422648912129352717788775449748323587803241419218531549021015408956208529721722667256155363674886705970145001241939925976181393353570542523024418044632047000451476064652615047249072450946665365334601772195422098737304521838744535722458877278853597613278007627553811934891350450293059746612673593361174929861604704182660736666748780105834943386382084763536713095697747409498943741084963963076098827263777072721362024213209861118810426567659511038905206236581779536216872177619491634971570263049009947410162522924364908531752035645972537235314579269323490227418434792891625264842256951892338946254108604830665071602840211935871984868818991356201248114675785290012995261076753648840540470561841265403766590259386253230017438981970553168219487792888811142593148837965572262138490865122255310584035965776357617649177606668510064832879030499277632426235293868450227706411533612018135419267852846667146806054642236452681483163187541680515267913830102568429834058385736073088218711310494106326511378646043312781355425955953836249958348294008718351190975149368496665041296704704321820625436988476715463071771902255738942937469486365269470090947707979278060725374665438664739395330599606354298849571611244304996254856735338029766032223605771790687383882581144628363855800811062732497013330485274574623777093542590701717575618674864837178149510305604650240906499809885818584743542904959646565499317175470679971898446041653666664383481625568622613159103404897279854462437356450523632388625972894456372115539665041741598143592175218725107177875873550323706205383914622103181353138932119962342134438361988433701134476756017817938517313068893080215510304793450951060078392072593666596376150656806041931304234496269295143575712600771023626860623646747253205926725209301169112458206844886707186178450103144255149436362583089610908482413406079130758086983846222600066177409901120048484436865288483835720191053154697424581062217149640673741496785203777484461640642100584003577347036166592974019880092374560695450596157665220479648632514266805649364653110467783852663239977059929529096442181699245980672217212244438719264335006174262142487397049595562939783139885159628127347710867567317119789842099800717146545307769258882648710485122238744519638102890734195315184127098168542630778862437583590691605615729739116427011262368582781253216569988407958722248086992333903212027667453530842981674857255021236226814496266309518544394096565779108399050881727962880100195461269565876108104936720852271622985796229598418356943965906047648081390442559079794718549785818399420549563849739515352272438672554476547531368659818302178927852837995417434342469274983064218323608542942738621469548735705752196401710315934861271398188175224968654352279550871265822173031734031904510747247452166166616879668578134813642399897986499476124519468436337455715132482445094889853840480129972677929785427335849750073291640095119882274284975682833787864337572480198533369481195140179467260110655535107320926102156512972272696237953592162591335121612860428306696366866780619161917934782033687220633378274928423504071056926625464369081721810006193693938932322391363591271188826484632760605443074408867489563456608539303537158667804892158859826847090983813672684436315657504416740146039888120197393587414869711035102478893193254316078139622686165757383840439323930000096658454698455646271878177289124226564025969256050286638140548416943927601917173601782453975669972469315317911141750670898010295253788105884576854446519976528745086793874602898241268471631453088869163323472375874467717641394840071165947638499604975821503424291203039395506025470425789913873447819703544105882110792438605916241476786598745838069630272325385869317589724684477981350376914170856817625593017658337075308431065594137423500626102994416541240964608347948675144110439367017176077642137877884447277008646071837945484370207104825280268366725560792243283574493956006329998138439577969802424266406887390980096416680562892398764099023680994655321748514232854335196860133441038287716767465484815117018110611133931979608766847041285053745902955806982181586138590332431811310909734273525662140142887843002317040309649468308124857831130098615178153120988662986310809948513318800429563293449500530718302368732877360415183971588478181100437392725593964917206380045606851417229651120700389253085455462932132543389217165402723950328615092256193603651939069275740884312112106495074443815268060412163645930733298792484449819567521098870100141852206845916807473868057751322566646010326346543288216362497510288162836465385360112568859939476050946421563971990657327206119314269189797621546148411120559286147659076371649512780087772497174609907138811305888149000595380932309962320751923282995132004029660296078875444936769079875620999894434628507197787360547053272753561029782772914256077237251877882982251678917074096165762753575419515493685323612906926999029292719109776280196683655705512146751966068729566851131618888420695384346568369192685493123060605188678772575791935382771590819983048096152937894948163627755110090510728834294533557377085443130850481495647708159561399257691842285127968492539778524674722989859058527700086464844135496178015281798865438625238470653618857238169373532891894585213960531297048961510533667134208053118370848189021899111413942154959788460869616961339880771609595767347442038111135463511252547683098032476017490632185190450979061042195498493935528281935201384715967747900294599224386270325204780249214142595125717254179750759870675801073961662717352038599274613792957901796400655813251639490170825638864314101783154565871284975366215041642103134590072872180061134075514771515299996497394842405189090105918122804144089803490750356681476443940650327660440539407260790844441774361151503428458220835877868387995326127803475679524450872981408969925900856715043521965492203742852757687319095835267083715827635025377771455271472574790958963194881113504677500388727948782784704443952984014018591199939254829034140901941675619801371734941874302894688067869149354595616298344757009790834978223521038747544101283447965093712309707513797806605937405479857685845297559900871229492132600829241837789174415221688885745039521569169133063653120448395370011088430402463254692816002002940337388800704391042914672711208680042690803421753776753561567320956878542825180390703593466889191936322998894959244437078980389234780175243000088295915633871310476970226994352653635079916443877939727867816397990870192551784126221463295528421717867146909290971525326639497257432152697387970124118197382825745901816796497440573934416244993980374971772975243173479742845579365546631796586932859971315445007317230281429116710586003447324738468596932159659500958283079968648144605470576619131648263581358376357837582147795761872610000578728858309747555435891751296569641128287243705958694693660004458897943405291637590117943194944243435311185113537061095572430936677815179837683690574025144811427327323596662960285027370313725689071808368359564074231534025916360072749497725670428926201189548412700226826852044648396289984086937216351854999827684499986891655753747127297916236032057411924054922270604476197058246099974727658999037254607779123059662456824386595584092698611924010773231446286298590204113289493302446199964455617998031988067246798460998830503372255815829234257255651409809509124902068574328249465292982983630736557677007006212991368891008049237145867630714686667860078726593996593616364027386117672421904695513099156591105245836989626568657406335897203495985650396750217887733137706819402441439574877021431248992822233540465729913810172617002941890879409961440073875472387824830831580296688734992115208439246038506382740079532638211739410632778962126529845136917173497938569496804592012358513166387063773799228523944523299293685729661967617523059329838270209531780295427095159034848506659064063278916646920435292908354516194746870839986038143143663782776657713061064411087409804080005452126371610904215523875675534470025174952768126434334026107635357804636210432506044645696610367797692137719578603440605962497948126869953318756181847517632199596680228739544970878622988163840004132217197490193426663443469115832612956153765710427748085255964694101839047245391631118424499656906668342941998469679303615560577360302027771156172570248179093188293988892369504764357463202400050773152738233701881740105448693445313700798454250931195070052729701308419348334182871112262246276612909213504743493798621900092332299129026311981429119736785992626105077822014434026271161124549408521615878034072620907022908011323150646058185619881914414589929887337369050949937394249056481388955035019010438605707079928934485875728366413826324873729330850622156303983685878463743730663672300792493798578823856382540057934046692444312765333400201985595667719767508866670059194514201316282210859526786393797888302650156922871195953293289854916497851918692217363097947370328027213764102783351317902960856618220433150101526922719663681434655456810315648867107280295581706668645996451651447713799367361668951656928790691955723234846209826785242646349132819964535543045754655333580130110859721886987091461028322289654224030486546872279667956201513333869226287711757966968845100925843889897670904924756722837655426469044587845881698663716583882462007081230599181004980834122310208134392182446639452739986934151314796104797228597654921896264360090475474710187801608005466793705267882565253619728119701279548096447248344999422957528314091933032555631357086454737967479590193183407353391062431652174396227560268718744223089138300039941014269292915749457606611794800343729332282545021943134042612218911296487234872468078292762410358575911897401237968721674677782138926459876107559826387538406741260993771797512046308948106961564925356441369613640836086491353267173536797142995921692830849365678427045255750022506057547885328721088968391509036178013116941653982598479206589805207157835623362980642794895191394927914697354436020828343489522348162507528722136312986733682908017566532893053476736068225528058357410331033630642157120578899377896851042224764672159933058320335635873428916816827394101176726515436392912485657161573553312903096366407054481924531947741646575620505003604063058896478804805229219136601566440629010048741423601285442422205037817843469545909506788684447866423597921905788240324809690303954529799807682735696018756773412010337093653612242530462953974384153053955794836991733702380015610716702524572813679720094167215973051587163516026343137002915478938138742102900026340309436356068397972794313274032071454745503847504968388711548755013970614851020112901139738978956240952473960426253710165733442382343717419798337666234830067695403530343625187421862179007267872928078585544390176612561884519689764632141337292491149334816403331724558339008068087182437843592307104365707259172512817900053642271732460136499035767636158147578499172319126466626555075061743803605093815091455315709455787037095497477049231034836276866972848726607241523304797906826784895579459463585629766947593854905311066629152089797638621953840182749682891178046552039729812245990015245148543962072050888679626751734465675193919945425944303988663709481419634105720020034651636138950504511338262567513652824491621759316294698073839611673122708887130058239296633015203668465293973002031716215806056776814972752712550620106056662023221857651457807515869067151847151998011374939657071794242006435457636203536179604326480458812951564492427344504848163118652436732943330170966210836588739113089457487787783403505149825772302534016391474967813361215757172285826085951882529392049512217628524289635581092958014761522921544674448240999627493730882900967432054034805620320081458806453958930237210736450971799535980400723126260745050875092360062682129544294309572464470469672767037675552415213034689261370690680334849812390393592410911898708603661632186190585687320082437683782850336621444334483422086206952040284015026976123434507246163268049965949245802492742224361350266238755287800722159115714736371173404715250121669736788509974060173034648236522826295690904043845730735826318356755062056644193759126971663305300058913132180914733588166577682252304862451348984544586316852933249914125213790877685435585081945750175027936340072846101071017431520337182928157235613815013675403975073405390583236533782303186379167617956100896980704048180734469650827432393965124400692255825075713390578889816384434370949107479271392346976898189147937306099608689329087877793691414359647080796597888063905729512849772692312396634189972246236909637741224522778356081246003097207576865519798775767979897919417697966127660962173205979577129419874000404517941236026909608225196387356197820778317949215821335721867097451598746363895208926592792057349696043847062377887012592053052803022016563447521025088091645601262150446650162400812341274735540589603238601859750113842008275443506450999708006850008383415857871198145837830193497680810109093691466347336374057043347750664509643751569544379695279507741945917327895277459862576296868802684072712738477014792407291735357905493540690559102530105740255669254001315084813527908159656857692352308756477885609720587100308882559690694871321225741622445482339004563479451740078905689922316452065398857167714847665293234379820790149150822524650340411016339101603102061791696742476847144999274149778093528495955571551178613515841670300089007800420908084323493076192035760218768777426623781766726815925286190292707736686960491409358315245749812249916955660171998346019795384019850425344765325440414784415929090012085161928072785150443050260227746793866221047515606481188737028451823738949959740753218930499712955712495353433552508652125800116214629025063467922091601464560453630215270830351796100907150591162231542486557365758673347857575620152455028350077346671403691857684417499499614370934971229604118987805880063342345755038202991941291865694238345527486805330189174393558517790595129660924546272765306386591959730705123267599869175665157762060541328239091048113862030338641557852532444240547534573193960377358835068374696886739884452603871311040810283704590627543008251025395978121812540119121321398858768241190456064638734406769048199259480029682484118461177561304192929777571622964901438379240532835405099245313264561491697137383804961797868126520318500062492293203222281813998243507563386041258637166979899516167993178087550442554465751531656525970928417909075014264959021827646714433075815657778618472924189458467218784921691202736518752407197916226013399712578065994957958743335484114591399741523159669103986355702689587217828798986397822656457832033505492502130683665894021842160407889510371919853819446838077534774359147227825510157725860081184324808502545307940812223140207522729704684687945794944611700494914415045443864045019396432085765077033761454688296234946635707206320402266405805462065621124481035935794880764777464867921233002208827885452329532391669324674862292823697165073847870189868246750998700531382504408200290966090424237202784992405146320571142041750416632030995079359180736108142850523102382243625571757995165877738255467357760941387851616355958513951570389057425893379665085704832837935974231236130405960092179864354477093120337523802102885972095206714548158328108718074686078368278071590806529133171599117679626678608846412326105739701487278237699405286577648027566894353416889157541348566602688254152963681628126838855282421722627589280872818997786699781461131527176059565631920330296271121296355190667425744266459559475005154189337345585306545154426972989313652002980376333381455389069824907433818469326936524455628404337063247067716650814859495007642553355441194874173362820491958760548693261731276775573422382328834431492433111005936470818168392563709771307121388526753449992603321600778154770715477395165192965690007913293964908465113113568599772001929999781551790182432096826553754524907107788221983342754126514722183644993297537269230188929075974693533185694142301018348477318931910025448979054652818651922832955332635404378324620020018425449453166325183323060508970550310489394941109760551538861281318183684792585441863301954867051009342605919447691321286174791683391628269967768686832950196955164229157146860287697919803562456448468795343341540828455033665721909279312297232555431095654745889989131583580753608677251008995472410502542203899759236108371550367761396206888238251054226787457510838955883454982531660308654335634459453037172002755742412646298562307766355822819591391623202283312636925362586840729193213956244418526138559246858905037665522648188224188144563799916611896339675460434703404967133390015838675547189014197192057793473105338049300080416514612434348286356693637530286179121187930787598358305795255946339155379980051540838299866598218174101794465539438754900921200305087186616028799975020628075311774868493046354151048068556429270436718819904649152342322415914660535524686584670686181117207913761327651763465252261763138259987794571903350159078566886970355021500397172054056735267039377700452093862551944311483006137081818910835757187025428432962547684363504201735427963230555494310478691018286959981710190344707010809938955643435268420285583222946102397678613369064858144157774839142209450347428701761908778713745380571794015951550819007112325862601165438575674430772881614620801486415007384811261853628514994482602165889932475577800035378568276778511456166834595799514407284681088435082960542963221593705907307065192931178412276457877929406977107642676666336504234517289944668139635580536676826131351415541387492048956036281674401109452305984745889553789199643012408634479595971420341649601507095705778326798297700667707915774150251253081493322984889226953096612034195346131314962290055811127091364411644792105355562897760256019221503173780324804669657016152817535947306775414701092688148789940457874162473973671199737061262155878695263008837834715047545065046496916105740276044087691379855609886039169904960586880060517942927154333329259097278669868706449806621003618056684351720291463117517629884887476831684795385312498321430795034944971834337894292550860878972691639121801212865186676628691052188587126587749081678530815959414218917020072435440462415997172942046291834427702205206690087066057979704591809981575521959993741587315079919763894972972408405135308467326728233653837451330979959286187612638908831734011097563811584529834244934276669736715597386121486447216622184521332082837054377119755774171178375103872853990205602750621875087474031248778221890474771191748172047881229037276101464825370692182274785366226627424421994273632709961603125986206224802807531573833178378164714571816898484024342235033666400887798506722382265595819293296029517708931678688575609217110669383952562332173522925763755641714062478892917219462778495066936585928992253918787607356968193006137835948087315632213995513894069291380484413128371847118095663866769201390312593131122287610301149051412682350421355541693859523627403104448254184855435807124855558230276490602925043124057253898861553135396301972784718065852168575464333967549049777226694712676889178699701170407195178540321856940062984350796526050077724872173508363182773788863449173176816482425832808127356370550427402333562270469398327534347044256647746822456418163418560900744603193987202516465650781393903974994030462506370316909249888225660368919941394878449924501020111043034618454818413978121568200617957068984583504381192467903459217947165696509072923118861632086613286916181296045014527059102055066451863190662277677269740839741812828013425361888645464331035909219590764857822143409168245259221292094161435187393005743720957689134142326712049648210516091098154801861848095019457677595270126348700460609576585002419971415638719515437655286932364965538577512806963580106708186177795271129472826209788812326223404806093275580218906170252908682475350995152342603317991277246996793294466681529450790663731000511388759609696006928356759583013687827924083398984282632123974538812122477775555458763217947903294126110194821040689716792045718632947600983159642550145176492679746447753385959867353743620664932731924340970266618973153749573526546931529454485775714397200920691054500301869387610382271435034891473826021688793371327406358352726012963185091480431969461992464749194964202609351434471213143709484382148028354240097518321478661486614736839447638467579895264866114377487821799335816494710234491868158999507205705636435142589214453431914228687118079782387731221502435466218128803726125156658629367960171940708545940924893700800002962920770128632648638839501498379251946936507584146979959691557713225179062487148095664680530928530630930250243092821254305692699009088887126617087672313211724351549680978324184705725654840621793161973936334762076789599369544269326584966282468668343613554929177246000405747980019041791293658772616154876210458176674466368427643060934282742423427356239333520599409313617202348439348434241667331902947352613239303001930614006217330804998370170701947065330475296815601866230580047924160586305654516140696360308529660864338652662093018609913032509069591248438848230632844159217251235776028707076421908429492098022759458129085858390920862182226382164489582043151308343237971757576776787016155752622712992155183853766131948041022156838664158726366625967924133825719347982667981421259617942289492365060265165988711161482127843858551593626563204887457307611727113072894426408435955713490434918756350503350914810117182476400463319191503584630986800177162669413852895513398627098482977867100112259570372574230862971459894215047977152519193641528438262975033173860651003528322764125886143859628942552024381214136551530831252771956954527692808389325838008003191784155528634574690720701221654512666545061639198914813349313077543603351113307757430531416866014547463480718033138577640613145060204658637486165587459244213170656300208824539887437061694269297343676078837484522357451119573753172761254864893749043182389550207118091810747940592087069151609420271920387405569450348024877618299687135242289225355899580473388468682037817763174663320643941868556693098275267196717239057142696248691314926311070935437061868282272406774909561891931293977257130601830298895548586083655766441949758456027164114352847829565538305444281617119769662957919611865698986316405419686542066017870682199014712058450684225032180736438717151820440179287947834393083562607272506903675883050880318778400270703196436759127931055156066497030220056482275119836475224386723342075618905379950295595642452367269950127970722076346901620707473980946794913833870416800617523732993353392179831759126636422506251652291207245320319371988273075224168649820848726502230532005566444493307244168222778820135229984335908065114236212733211841361182470715724907703350646435928663334164325759654575843324707273277433461103573779457001430893820084410938144373451817083850732755835943359041859986340298802961099485979113445522895360906649327272560501968313371411581741485744360436890677840858430743391347843763215495261866789116142395832980665587484496472365085972325338181566262143590755152834442954097389435362252153677955272158679535253905829039724331199063852558398126328407885288271531061863221596723892728961882046197823846914163708596235590353255933274484799255704960355469322185975358051269649708528936470319737711763392555815269104756153463326619392661567128066404197474070929503648130630856277473773734664615773107858212996328210130384793943824424015775025262147691224611794406561105126774426625192075631193707223766719878129570528707797116460207060967381654872337653849744776687418553115028419713133492165415039182345010692223459586540198072398683457098406492651151204407798000786884416007357847741785616873224406846623858143789224316313051212894492467699593604529140397123095316947774307940164091769964898970025124935131404635408282861266562209183036407520665220062743816499232202767808641992743496163550298651691874197730889179236265417413475404232490891123202175042650930292145830768379435901055232502607983788193930578182788777799348215630983894534589956181481598684497123411602974002939695204475515967695663325605520611624165976982677066406953900283870173022820303490510856092698194005413325912493082627513333431678175543098822032427294184856556232503035862426146273261587369626932144056834388292851172317647558744059592507546772811848632670307824571761036680721410623328521192212222113144628206727762626969425803153202932531089512344595025993405536853023275047388085619941938176246031583145208943302387354661664472391169740423203345862455536365344549368602590388824635932039172019745717828814476788894350810647643212158248096471340324450803011100333744881772867578175437400663555150231510913754011203171188287484876924645383769752641229644482845174287916828806704449159035311888898770900965308845039989935688200321925742803212707406172970961954139281651244384834218152700785062149614939123987253008302133810327215909763080758119677058699418686023888790757121034515515068165894546543923054994538384511964942380033590105025010710139934488070525215761443945902161564522222810908827624779752747005681527499915980906870475793632175131132097687399580311447343338434508988897043934607331893928975338452354597791832065529327352944994492901833959224631003712124324533243183105636069909927583182876572531937221818491719479575356298266868246638594929768642665492773991825740641937832418630057557783011972230055628920025755391181539566263063123040833395300514626390878164856776905592177581054621725850879338479331407568580424064471048919501596958854476295218721004459621803146999490929648054484374662854275860008794279619081253662114592178057801131050860611667932328387810545303685735547889386942929675580957918090055163462982713458397787756775681480464978753892114790352974517468066836879651754490093274941499866249871018367302956922100755302562887797951434908000767008943426990587793296702250199092152296204586427402976973962082552264456791320054755622677418647858433007658688347799626631268291180285153633584569690242155399972300041901612028277538756721691578988321417502842131016354748839779796161363886632237264656318615458205996136587896846508651660837210527251362222922822872289755290241497706007518575906638959489750113556235950059201498409677077389967501046151005132558347880941282575344184061603621964069878940575568264741842070908535098438015584167927771768659923692530411526881293694798669934715998208005620730502077395521887378810634793659040356934279294712208028905368399422420406429082288754455169135197221348336370550431760166583497786245227264644531534865906985766638079508149182757086165971953752754724582261075181605897794192971989863395563528047470240683504068261318169793329678264933041111746062454574217775363659053137913010352567289657814484264073404058893304906869166212530980242761555566019315037570253964154321785784980091744771237617369709587053218801735390632767558498670827218538534360102257456477663862251277423234163249745934529723158623050479052335301894494467315533846166424560212026332037680574772072397420860462554831511380546958048348417032464851197563235138422114999912617585110663323617118961436694426339317508800398788631765640923520213166380022487974542832048335029962872706532965115430482973135574422441908662914760046929180215131459483653472916102894748042682248913673545031839589334322040850799580192183164822098185074025393661654324979778207963377108938843556034148692038454711373970397389505753485909291681626680140479334708955189619348531644364759664928521759484595073077904612427119375610736493303090238988454525429068016900742670010020625015895361782351779605451152461258165722762439243468419643156877850566243304867808294615378430855579948080149067724178924281401675027658576084123580260809491441984083152924076652234014096508593532829522230624035187221189123903590804979434613471448521800798712368576513665874664613227364472565218258063113419752501464043058344719718632949927804070042367491702496406220531949586246822610577059740587233561813612075398435616166920478006247573432460993445135720903938225694737835243142222587451034259954713171349791691507703973433181088311144339422617273374511929439664432230114345950798374501433599058209780037143647363945517832470188552361833915642737882131882021038877022401393916778202636587693953374172176798647023293626307629424749156510472311565211427142639285385377437729587114025466488954915458713463440604328888405665493859054162635484986485642783151005816171279135038805603249272906457374722690903006860835490042652244987644674405300426440053417328962450439548545311016645217195524178135968795523717069656815738185293199393887014981947324899655231438439156155280472911808192998453026153994195655653128882424151451164109756713005117409831502538022274298878475509207974580012590173068293506596348671975523861085899171194014423132991053225917362968684746410564027267024463326998349082907229285655190549974620456885177151988969420941328269021868945112184800052737557066329657635467232627330763061003760405779611730751245019133675605493719323647258504355445400237026908016403775124472995625900718411674310544722468416158194340063610877699859991421409527462199059385883624044017385936504229826591337705309320811809800448646430014424291834627092698445224650204382831656665936732746419355725407504091919653689708313158510433978760437602027713196742253824447775205990983714177180334887590685748204508680667218453338720041549179686213661408903553948193260877184136084387909581038636408804566669579069310989814995614457518842549224664220833882518444042220719374493295057289016499028014174753561998702753413279891958619009123489898718284913490714501838726908603464018391415274307177368454655516809767676196483351580775883985086755684305596846060420254643787395094557932211582837103870804552635117711720458971108931925652666635753908902136344402553452154689331068012519131185026694495494420269172424611938931584173445266531227463078752084368508548558120011264189567455765936906345577086794619301380038682933103704037977535010879019270650953642697230524183317789182656985603417607985846082099143348926622127868341715347403738614265138429540175879703632691653182117475892008661609700224752823181198466366375540791958774735864520125649781741271609400571603256958796370908743642554184496044268974678509076528888030229035263112564036248632694100637821232168401865290772670951857291771355603733191076252548172711235828358267051430140233658245253841455715132661203245857670817679322478116652547083988976634523823644234030675956546285699745946764345376696400190158665700618862362231169956362568565932296971213919489616403398643516807387118009491655936203514224229108774674451922262342596508885284642628988079791704002445851798827174768025102423632649260306828942710165316475699976103840884999185674374141032553148791873371787565928770104340720086371219358853734661533866167975784614669408297610340220653835075174083607247262757252728572541270370680838073019038212261307509065398027779830446752492291067977219001591856813984313889244568928427706770823520228832181628111897728707046696277658385719105441238595574993525345713333550502121291664347517739582892906757920880785889644947664592277442869968680470352599889821000497733737960503635700204610484376874182283941179113684223560995451531900036204655850888268653524926755397191822371895702511081233466879386667774357917305537521003899622867574342752387052020975846900738467974968415549544543648016860138974516401911479118115290972709360219483699434993531471994356242420452673805663915538819876856986788792274363365303493337385365326684015412295835999959029883583409396255508704718699065269572947167212277554438028224707749391254059230468246673211144572998403913936271670029176876296053619582589528416424071813829130492879324727277835200454346760363202054488686455636057339595866569958545757536323292691358338444370492157535193603814138815643802928566189081229591248044275530615148508756670783425833540521892997851479035895958720664972771840983369783598456263205886277466366702181825332236024045834104617098907050276739551937212719351070168678947944177430496964674615047962372201735294553928706015214567075136376376950034986117066919896200426996706892412972023530249866416339272473341209740437212475970458342076635550238286948122950584100278535517608313231647910163443295209009168567670502240452596780431309015814486429054336280479590290508014269132487772847446844559217380433057059546782954242369306368690528960364404600145787246719608528124607330264592628017962648690763557640376126226143576035796128855096941687267973814232744355599318720014799166714275626661178233875182573503510118159450363057485300325351634406166094469002189946972823043634410096487606523119832777711835419686723127515110366731243280279349475227616912088147310263398350116350882868052679069882894428174493560432882868981662172124252730952111341609684411284112840884569041524495623131066345724590257907105346161008262328634156248227413715848990690951877236918930649474258426345508875260331779094561150016014683205096009008475764307922240655250891919428787540257140015279039880701836833749365790805457116207413709058525473730881908691164613554454210031626720836396194500234226788142761456379195792352977114049753987893883615788910946697728918061079879203428409016686102315960628225329038074754610026872746393268851816622662785459906035241179769059000109027266649860365506058037760780137302765076745439682111476141910139956700059777368612226132848993539988776621211116785013391455571884050633481213506561404027769042205328916301212721194048855874652262593014009709650785013532844432662671410762073435470999095656608511784952329178012695420603837923112084756250586014596089026409744189717218038692204221758437682660144400336240016493493815895309459626863032429394633901284749460560913620936789474408491725679901219448233368322277703129044135852075308697775176570591240658610639642830704256250080148370812170598960959305935750141528709632665859812320354607306502244751202777313641710114778349118676202517696129380056756137013534355781521708709233788775806476180013080016527216627199472953174550740528850243061822710555783262409048964042398888271646352441054239808840250194512127606625970205888925685378884930680022075594716570400658807201348359009947968433590865924275293523683656770640617350778314843036466628828492644735520625192110687137358898315110455221281493421764311397264442670451188263589830181946768059023021645905198957943701499207722424752273336323451789301834972458428882161393407519651388487880835115158929074774319814554750325609288093566670588433625266262255344731979374056626627283217558753151914926436226298280350619744454502226077209804147379264681105503031078082664630923548717314554659851297821699837155372794028612682048466314925584478684748572889892585743497607621823378707451176501462367285975883129573389701670065172128541614705124152177237929951378071690847587701762940193074757373588447175241415017453390118674419565361540554366399522980720492179840923493895828263947285010597943019485541423864515574215286020065219895391565682429959128214451115394029186822379435735223846132695177435711617942757246933767949790215439815018275423701802452006422439800162296147987973592709973633689781964379986886430814185842192757966531221064126066111645732987652734458849366603663034429504059850054907511406545896575961354182322438802311246945006020028386812899429501003634705456651329422041735223251399717205920146843724809042820729133442130141770196402931867944661569456458158688359155145092867739860377566934388453647055677276131267500306878386363408209729788122105697797340470226244806437293694588143429325379048131312923873546974376632568963349433976439453428554597282582271063255174551533705088657494433806314452538277490326008753535516682347175218418853693213265731931655608885832012353356794019411040691557497977074376980638314433880321579440912679474634737218642849223293854917230402759766795838094840541106037374691713561814443773445380110677098955560814937295046955509075772596216492207085367365170904781527714883130647004320508689328469695829526931309557527305638670524675703063162327948508629450099635849470820367726564058026542076682295657462327065303541455723483470415138448330406919160409583029648092269996750423367645492813171589513845634714691028908315395822587351714586387339338730198535140404137563239082716500403430383794581550938765305498694372806475798892064450567147197586189851565825571895446159347956816764824107205622506947086061741990291038370612575758873883092325057754181380469899882477890878329054109960539211971862463901804164569878163049101528897283222085243565815265493680476012195655725605317666829492384376386201959251150260217644907457771466441936558042008476090166344527820927904385486570860197939542674443345584366030910478975267306074450685411928908020456297559185575946987260165846280810925645238832799198511853538710035591922343858973773423350972029793776508884615344264495514605810402599176338541691761416651660963985333786876396375376351367023002995291516863556715808634019184103094005650402349402823789745649040082113218339854643904887037292979512036410813354976464804008646892210848711441346826896989355656699588846875898728492319394459624494826868579323936717603566029083877401101815628970320976634867452195327595896828444991457218046535435502434192368031858023053298971073882723016026035934763704002229663385848387840452102584508114492047989378848269747312882355934343781214130629205677322111787258356805047212504011790779603477087202637085054830549687479851167397530779367881358884445881440497449854055775510233269993676326640324531997649699499998943636184965734818405824146073922276430659510908916037457511670051673953236445825174853011450607818158673256417045624367228047468720778587460003191073147162525701300173285666538432819509458838864653734359360896373841611554700625230648716694622542144699519323462491175081707708921254499084209752165255839915749888863882748684727101345230260652407475465661481275018653618707736589059951419684063568480645325704345601056052505198767109238393120677371931434699584230359577707500460296712825661412491578290535851719524527687698888924761889641547873516791648792817310509720549635481417911051751780628321844402154784721967236637662197470436218891695033133338897960015640068608935342914088472110939211899193303126473665065379785588621062520742096217321161139785266442691062834311694663410526096789422406419464991737224959276204450620884079765742505497339911963720296023415777506826721421388336300155334699533952312324771398637921497708294467500658360633794633522076607272211365959087167819602107325160704020044154937852114955864675693931765217965974516525223882613857452175130564165662088198812552670305297573608777108973584471774458403897256138351194756531573317637972858301547520444957290811542507785802149950240761924933330205727523018835616062122421955779546748867731046896409385329335934087979281302733748115120638344745096414350738809549672959086418546291031495343224913204045908875070885928676617325117638516451094131372467604567903509516079727744733629840947412203849282922990071032418694222010617510525588513593601548096776704899594957640172237522347990589175359179385505254376168689080577626854133612744154945447032848312282443899711522556574838255036489319189804118030846146456696406566996399662171986053156949586577282865784862308801008357974384957243125466850568115526391549441501763356279374875637287582781745852524187849739204870207397014082280263060152538645649527093575310582127345198556937054757762707268017813689447611107950636927268647234272785877308125040016723812936651049492100611317973480790858360307909615515584900114398822774545966331579618960614728371725355783864677367314267950460557742080991797861933971061996493468017181190809709918493150703421224453284454050257513451876859412180480623942730682309955198341986195148148947187645866085137871517878807909512023864724876011438046340338224578564065887062478499411738806862795542155924322166191350717206711376037301648715298190020220243126468204206262124411566028352976977430232408110359520811018284629676222920843750362332179092912597932199936305994331986000688292426936278834346775021776118135260560193485596775583730690606825627229152566241917674284114320515759257512378781324041991132036980811626135737902318458897526664544773788073882944076373140132651150476302755488116996639352366598385075970343255014285667888916844654707772487834317585145611206762871460692276742160913282220720866768984256917977984135293555656046803280898209991886243183029900530567352375586657052155745326711923667262846384517963227114454214927374299596811470371993818372937494028851883993891594782118358971252344401398405038532988330324807479757327982040467761975693209454366960460399304234327717808595457702404897253845904907037035878550632706585811996123259857602397860938611003755605489363250318221084487710870032722567862341392768302458010422794747509217375714529090357894701824976247788784174466330960469651353525791499212940758049762236692089123485718481573551939272504962415324571363911148860647617361707510694425168964541000173033878945139088334738395425083338247034624226270179890175161806684333483773236988608082692269728089021622416413700067715161849056479193024563456743207656442192350445448757247568636264728587222663755271884430609653300292398143956367431753532118727927966435108822632289241812805886691035710562562862194770417419263280308258635292452634381210938472512134470328598699741690270064003303055193911937075007403241350454449251885031523009674488889181108051748681657015854361608553287758349599239867806905483156637255099273872161568776387736568335421828115514704274181913054974245947614781610144488990638410437622388109594562295262402710266207035581287516882285916403425671289032250713836373605032368209197310262698692779844973783530520928892170997193534828300599863227040141324704870746490252802918167384126200556805578548541217942580468626844727913087168755492508006623543102395078041223216405914236837738528932881427478751937758260742426209548884803546081907970195632074438853016723245245074713699394530720990588218265563026358854924211342815692205281788001916863037074324454469754743920132107434238485153062745791192836977374860926659085332371564535498994738254220236927097195713576383699603299438060087550277771924559017624283447080519347313192745508223160860012078142399249664143831211507530893259131436722766151867779574039406939458402152847022940471600066142710782935887601885463442126366077006829009396096207693232610170666033528826511052934984628067638452903895567417174231513569831152469103994831588519754910857111270509801269564791160140587281745356427389558590810255720640238421582121738847857009223544282364582008489461973622115542204556056602460385103077131073857450177381741577375920462323513220234263475920779641194593829344907786089687471724171217771031377409697107428841955224370795980265850653816185042656664622855098556567155157247048969736349856647408759521286250860931113479378041438123246735169369390881270693398137024370997141282226902979617065999831196697188799975880883024542439893388555310596687110385797587115389415738200436934454110113334949097732902288000361476207213224375260828634666456917485020529180202754093878298268011419112086222929587024501419032940457598940443461623788426063967947253949601782072459026669152767229604328674123618135609136468573761637733449584028629745873054418382166414262283204892554140507920993588434088396825991987045622937929060978961412773737271833375808467546692051448682539093388977741049845043153721048303922359841607860023519349288251935133984279507605893425320590078175151842888433428711705297665941942454261524600712764780063228085681735185555034337359702313746548623549056780640019495359953231150686641228472268760100999812767402544952805514570247985419938733709115613481021441315563556078630075786091488016164477826234478469638350814781619668435206841003546182145112336779238071692349974450113604050987904653763217302475866459266344475439117270571123871365047346839054308746712631423007093197677739604329199882912933350127176120167827725287031206771397798574589222226547307020389819602500580987845660091100926108805708947601109770714983147750941808254509182222201765576301868573024539440078961996400085920665316665755507157656133729459284530036005787683931226865610325836696251951204428453263366340202195430231109981389589352982405433878967353636703330781005997163496978139158446979323511271928101011768019089195937063227350550896103011038992788720891503235309049020488637928113575278805439860067786157191427565381316744024020006752354942706501154323104565189842823366735048127917280390200130215766324665408156043237870095782233373449177684182263164458408020007317158815641619367951071677929492159422101553624082198515073182591098781704328793581601965345770832601430241100427683392496923049541263949178566890179504109017399584128736829605569219513197803382472566473732734524776319251519615618807055599982782551177441852066052859833978929484628984410221580053949115994192119462968068856057844984046871316457993595640534139572490528588841539698202040258528069576600128697731560291967404286825160209073248667999364330986309058294694917291305996856996230835707294057640210331837348660288370908106541817605129357177390345929192048762393032370181203314174809667910018345400666292134278217509472424471234811960243909176350465460393021133787099860078922108621495146047452931536874230394328657830682513446024883564584860345288817496308512991634037845904597722613101448386554035839960697484245614973459516845293354352057280398127060508649801177552881640869627227562487024398821167756404901264840525811540760555733247899162541996125126643002226536649033307311520573243401342400136068112380800161687578147202531425548014434041237315326648523682197334171882550407622036377250619740511471471442318867154196227278062288707377304312889558000144182431794726000390687911455277598219083525283837428296825934980871478995901367642516898602064675404058686638580035341800621005174612483589686046752262077088618320001575402784280231997748688191936510639535117453600177984594637366461892057036222601128219852234502939504441894183003571344861368463576446280327981773788430723324913873536201540198017976431788117640080591138278414766947232690040186610563199995016314290456778596391361699803489129941808394776211164417402130385854683497868459807389544671091944521206725364873589335133083268834311266806684581216665312702785957407132361068764747208837380990932431986383052768448745935061042291712264651267145861641961582232021110723148296058305059233545023587977851184384431582105035200378733125410579228096415056442564416186712827114140340527757092866662885458490777140425888740281957155893278990493274273855887899930837314138731069468604139466192901173258469355446045060212739210840510510560662888584106164903754090275318005405746956227435095875723901869704646744672734300356685687243219946525560948202253705485851606266619137051413520510973472686502526400159308926024870379625475629346237441285682449367145539723580683668081859128571735242536546260532583662931939809143129498364658628279078734247151897629841448576650021870767305235220286782760989117850634870278252608209125424550866433078217945803864112367325512655740695834225834624184183611763057511541177956276222398351254181421790373509586370223620002805176620193082054043601743329611505469953941191984100668894965086720555767735452654349415271463923806678581823371535651994302107363345476402512859484169941240429474187810259081898601017603715627327584650670797263030702851830368066348840171552864778868637805884614418570980682511401136354144993557553875644511278655313116031906037366037306343308513260192689397411362363709856707726961265107996426479195766446760078104288734486377400230756752800979449950860788717896387797449334248670370864535603138257970086934071205472170295620498456582027668269649276510912570145731212490245511645888310182888337035668495953275851593491395985661018063410741174056906216745856827400496557421992522231307470106944577912675824571497511850763553712793580178571556899951609947225150816191120732080737510126104510359739331888416059705647175158424413806094614033711635424635259460520200994126555425065198116751041272760575439378271749997319896770412407103500679119809929395840238493008014140894386515359772057440601563956385320297815591714063493146580884928256793821383704230178819692424559874988761875837150989576655085579165141808944974673040732882141225089078513267259991066242292516979996975041533668474372890246611328394915827701831829392624097324840784173014862479601627071143964980911945602105586864492825988296907141674543652013430567389237594981730816476536856151489465337799065087589357788023986761648879535364432134295480008353984780399554463366968452120610204784158116666153520804211553387969360681102065864791735765300137887279423664077129530981625794325091877677321415903893456512939374558536837056649321257270993612919619273687451667158357264357583880957539239157066647309508485829610850064979939654039760277690892956227739406219471760416716821061793769151416595308463288993112612510516248721427072315098990217450117944976727387060492791480163250471299120250405699952178863429367712862067636372453755051108507053593767319356334534179645565858735725717889261886645553499090616543785714752336631477025195209076915236943818215443039732012046946653259703673601352595979671760925399360596689217059309445209663265146200008781389205763597494243201542644498368070841121165860894908658513332789979229895090284362782192710358933855757541407664322190801317119083779369835886823358938918194734438568925800529540298072245527693231629446858435185789721557697066908615444965736872686602624212743742527786703037533922590182466130449375587907108781736411321555304011623335854587720024966428853675397791916731870599072867645243265583863125633486788782750083615681135787335890781033503152095810662153546382639124460605856366871783577186561932613031652523495873263852518991338334172482615444097278010344842718848806639554567758650493293126568432830804277793383358946609017189628108609514299863290154602340658953711605497279626790836083361526237978864163466676019048763199123023321720175686617215862002231838421250650633400273877137008771644516845544368205854982584104236151958421199723151217423010659795785947927192802293293140131974527405797799502329095341003501045370618458706424232849207370688232797790082642818117754758999418557520975317364517848534438859768219184960895180763077397204293884694790483522625375469640318196880858477549742988009549318048210867110508698241710293978367416547498041448865315067378250737211707176840437572485395213781090977264466353527948474429579516503467763083876295518837251700762502836106160274523822843336383602675081679110182774390089265861564960234430327746715652357297380552669236092194554717407820158085544442008680340233013865083540117934305802813557051314578851195253984765377510095441625184334524685459003286275194370983819265300951046369481210442009928230065225149885315076123146518678498365061225019887422190994841452592676601694647170357177264150971559938798552757485002104926893645443512575047090488638305299515075182085437607421236192605256905812721299814843855168262677264413229218004370259530580942715315612167644863928374016090653138891614728094756757503377152851663625095373399415389919724721337684179815986087510129281249228444488299283232801135507755947999821545743746636247371517265487853394342986731036604662958256976042065198900274691283307481927899110867554505540002425711009223961366970780079219715631864430938318140513206677241776415315239844612475073324417344336617568769503689064880669457301950574405918681151348261117367747871783282532126251651098524741601870176309862143106136108927279505357405387448288885375923772847979632396350678433467269943608884507128925884341146550007728051260861094958619522524326800242993528786727441097869543719142317319619711655258022665945939969203226805671995496821260159097892280212830792630777287085127596567719785136067315251612454433817209387634037243785975758133714301835863744198974935110877745486129042654050411460374372271821248963126058018066867322503706218685537735692608059674293029069540126063530336322145413514044510412038831575749836539556622684951656925760282478145721912993954662777357681125818813859157705929069016431003674975774602302236978799301753406372682639990599212637665536418501983200609406236719335836483008635783820695993457980041031972443859550302758925998792635692604637104532485210258935115087125167959499765817557722531370767966506580023894834690768057856362209917107911147093041420907514960682137685500868658904679042056485921081351183554940344129393716337432483149972692898639495725110885575276750368980796414734392486646320718470987870434474055005712269542366119203126236278951446331991105213231895032021574202198826763475672010752666778457654971709137835544512171495197054340352003853987352495164521602239504864618737490556930363756447694693059205518490586016944262139047160806408327770820705541433440646012129262008898386590789709759113178047494203386355314720494255200469860249923784895507458396493872558953963563482145692446618894828513596746173266216624057119165363111166670685986424949349742960898304985283177017486782955299361121790144634320866080213923848327355826745322670072221327294497722345599410074739877263957045996421549011516856670031833682338333463300404794707856184791374484060945620790930997818259005279491416474543180581410519752491157857068406148808891338114819825267574964619485357357191015525865017418334265929620710004536905309319800637615001468852651769530668399467984559402772170574150128936225392908453084725153402628925022021048027534512910819638729095884575502280486748674571436505628335890465990811506978105067259009213587998451130410919048592674523729962605341336858237712927791346434468517460814209354227619878688093923492030811687100073289448056866927906545825891741573158000126716213692550361070323069480514114001756484996568579753655380022954124021567700284189404771253662240009168947723938959773843868530002329229515760976945714890286354688948221202810399125359384970121870289268311375339501111557611591128353436519129019143831406506382894025210658301208610339660485856499251667326437257973746212973003355739716261955990104750829234603701744816674296003375641053590190155266257179350794209101707221174120970112008688628474121673335806957131903137585715465362423039389504968644811892443140518686483687272818188076439163012130698208454748887322491814846820177769648636527641934713761785163650786198925995222739553546950764771425628715354685971335731638758268064641756344410899347681124711079515721094614098509685853233022456485383401995242009680644171347956509933846603995343928784291561506592767940264900372330082353844064288376310060749176652231806606614206700215299827105076618684309114446948696146378194626369424774574122632959867295164052911217723536703203290478186939746181386510735107398699177743129541944033250915980172529761828332185201331805892739742265599348488925769112516510716958865925531882936597895800138047846037564670855828370444068732970819866761386467637776376228730474056916111947734908267234775029056934940303729419850007468171966083601227006641745197562472055754294991989731114368623855971904540781812066951558834525523072260831539102479282695806651795994411329161146974041405441691620476667534574905323140157301909617670182245642667271453834407112235801719965617723183830494694022214025664938570145959168987463028856206017675087545208603901774922219611272697650353998270133285704035859696267176174125751418188066464600644517936858225735668163607757370272200348429343437507146964873431084304277180320748607923432436911506102109018840919896830120258468103320258640181912787132461120740836388272001082168175779090318493560629680414931922563982258205136874875487832087076773742492402622167754628949712314139116369478084587614040790972514474625544761555068293639384435860306453896427103484078544295527999670478896935731642507623217714730673841772814738941486633582735195582627893868553769562657067023167777446113080233139794051804513211845990810543733444227714628964368431953658721940532176424703225136578170003910099983254339560202822714528103596482388691880640789191006521251812243503055727702491873762233055656286304342660677799342387628973361704384283953509480721076831897568707530902678005502961185213002553686492440640198794124881226666597887254358433775889545303012576448290771511460273303409630067994557720937740425677754687857111732126842309216419511644519101877794167811783412170574626395884570375867385195412560259150442970326374151732944104648674681755088644647646228544990354808567998471208285928008383362333271531761000279056216063352799043682844044724937187957169310742243633895818003476722093688044582396329017041160588003487897345642301617126116742224102657275303657978107300550501286246995086046512297810394645767527367389280340101554644386086329137290247648090657565921939924775517935829036265115476550271481858760676913984403901607087691059205498949434599774317485367918368884824740248340614424507383574870083885938026136926428578813682709804092697751149564095290566006853434827223104146085174778326791091381564361782623813407903518388758684422837229798763393832043947097363265826881534477670619727560018922866626396399619896358137831343625115428649489392726001748109417697344982696850812314268528495149367040368566357326058912355021148262614866058301800617575627838024759989624643474054287464898591795859873063211630980220869650167259960882022833147592553661519643974681675494880112004967629131670201017384087028097762849090523484913402438321386552270365177189185131741095872663092211405988676874986692739697318150066598460051306081532921927595533013780858092269332493257834319891515121185117458898317652450097231116325068557205905145158531040355221354003803269726519379704442023136425554166309179401075418116942035372781705537662194137626767804694889437424159735966651650413643139135525000298196999345840581567359712860919003476615886212950245896223053801239473345660190829840754642319719869465249934171009914419883121027481585582578375924182433489005487160262413329882541385759273317378187284336680555882003543264177813070911961514082102715996253193053120339790820384146487739197136127733177615195007747600552305866155838764859274624555978361938399972588312291686636842596866656259667855326030185871834535486522378918787123823903100041750470357637841702435890179439889018963313211970158825542028804807101403429166487118089512554522094041079542989471403323674260781632869666160193254464899050645646401742911152968388468932423604684170817338477254681665976886352123103721685466636669154947298136648486624503355719872415088470369898204894314790990651525339048830083771860385503848721733145751579308904098522763090337994319932998229406380054417399953295797406611449870196666447839910532297102579025174823497258292727099651999492873380478206710611451957759552413927153633625475743906324882968234721842047460002836011057341739349684278658913255346292817157346149511484874602246662549340307420500937202644880882408391971261772658628310334126356725630061629758831705660670534268549288527130273074497870681721218849745910444684034263272777709245411414655852041067799034337246522238949343168881765581675302016193358590098241479457030390867777622358879024055045440664665379181591424047363655474842139575961115100911975070415544509098828947563846609107780518508708962654526337533201927354891838334934742551065019884999726321419255154528065285668804326467347150257870102193357240988466088683351314939248783078160431999083741903035847081211439530096999478587645546589140306496681337108430485244769232000143876391237501661807090805588771508795029661673507365641622008707225130433768770573403362372082368902870560535488197640934516343783484121507336129530894639712083227276818199320565895882044461629095109457995045285515204402867059204260891482749880754424744163134956366892737400636711633680253689605799700239900947703309885055981698769445920902730754874951673529563767968700215073588593882376288931081308310604056332039710003801191843169278004481623568373547683293629642558704732433498039328277070828939720685912672038775420020741162461855392685263462397158086378281351233060969825361236797325117840128721793357101275431555004489113409685169847800761930602167967368148117328064029027085219980628482907377074870374860848613613882064637304711202260217259611406586698053556807340675525758262372601636357431825178837629628986119702090573001114811768109754299615830005301537517189841069937404845656936168509370349520639129692629394193799744619204144091612941463161270645489780243088222717336195704668793570280936188562714082989679562279409258988227354285818286579896667141832686944206877885773010458882755255964378350696278372519273196826796339330480544422211821971039203291867620414602968613578163568041920144906319526224436443436191075351968577480519051877734122167215275437653908119115573027399663497829422855826530250721178191317308353214484543657985559531358870808003772327914579591527664249427025425150709659898796021777137755940745465257108373794779384478899095940077089615031348274970812540381942892906271365168589097823637277621558396139909273186766372202364207044629386596293422043252786941692120577614654295608275868389938697315148581410833311785898325100249222073877905452039124278463440103908559208428427640440036237783700512952187500029617777061540234851479483371742735656509089040124620048844842707623741510182853634240541680831512770655035640125479079208665030497359129288559131981352606524955675569471167663851602901597651140230047064365511195114085842042708759285104708174318548805822069296994742580754907397494591487345493112762548977697244539677032568112225106877438775458607100531514241630737487278076127412820528346963274662082411807742239791812376294189320912179882325881029523603918388378196308364187034287091888348694819518006268500545835908915416153076775281360409742140804194811366169088319199133235685636242273562974952922692814598061430776369919441150176274225841324615077015657832105362700612752522318469240365748665669362904599186900604036064868528259550465271129095025204880101118254602859215056052358189429396775003980917275222704914239856981544181930339443378031345465489842921634308959849627073520361971932991418761811019292615422249906198937946863104579098621711213267859441133213823146512471867958943436719106875709901179392770319719397746172550669012402813652279919528251059864381618869316497019314595395528256862074988380102282339788644566400971167996120335701630201184079800729559854936814546769456145649047384574246251895330076944764165793298144226540098440411154847126835344753684309236919831256406024304717832224360349995942769551299174022548154320201670392998793206030294165282730815738201395520847175012935501105013700370220613999353820262175809250720633410320900359429111107321566205159542324009593776933165862471952657511920458079908730392128892029963140662511032698824959977279417878159931989274684458824436576977187394688380000842148414632490354204673692393923526319049372709302259957406625325616677850757953809285889703241208909141529538008771931804351969068410199086553133664562129664896459216831705727643714126371876156761856185966412908035719750664219767794739296554089336686164356055230397011273838512423442578438386643966951479110475124710785824241583742324351151184705093869889016291391057853467954957793956786682770332209839442080305486228710966044207630124509302719950185715636031292840846457251985859755159200775835004165454282820329812701626805744157161610463575388822669376719962070745814407165095107490752922322424638630824590159757586096662461648076583290055604621058902328243074980562815697537867312267943244428468852888862113860782359877552214881508556613532517433968438803690903004100132323866899283290366164795697816759043465475583615339896890899853896238968330678866930568779757627151877372198096436420343789133544592098889755893627893150147325455351348751566975072196191888547988841139129617392959055449031968693163299860053475218004855183085252812718641271133307573556492310897608473922829141691057796497678584165493362903683595124066698397030556426791723046401769339512104646671243166173582706812471579919640969597976313100239124103029338040967457695574091502514940720088167557341666142560431692378447267762532866404762835700726059538888769937533599837151235070930632696874146637045704730095848843995976655257940459230352336831824453745731183603235649695319783490431999783201895434604079102775396383506144250867210553304688485789426131296659530795478473622756777843290565053715773351324965176310420823780969684844776038623323506510774418440140854926783956409568821787311676724909100314609462775675147101191221980631283943713827494200356637216895114973669551981735428518904821932434663823932131555557985107034110685353782990687780766666503004591757994914436504010333673297873344350279069726840750545620537427881521160608467971034700126275576837901647889956835749560351373020124406138047673892586090335892031394807191589953558821013327862492377354196937241774393624426954926089821880536275213343362028718755598848993439347499958752597711661560023469469442000864102609905788023003193344603807455772332903994395140177245337447924471081266861313768349243911127728014471284752105372159037371810597612485096253269629265864053487613370220722177230067261387745781231905606378708676045534796382328875394510621158598984320312288160906056421867327639725172368186325192249542045097382736843352407130752609851797624334036749766607620846249440603965644905818636870048911360547227119279389320473293560887423798679504043196846567061967105126935321427261270160361381305251374041060263677200886578574184459019490242259411497035320654309204042560170390433263771296756390938484266725300727252937804398422877335190125962032238418247613522631686034265815833814701056893087073157860095360817421536810071029815937960982114754958478662419224885411926086715813502731284528385228623363986810019840591737936926052336269957955215019326236370741177828618751165610973879004435650026780131923852516053295579348939872047020053671756275299352412334989609730192013386492413371696475605759309346192348806926122968694173687806793267539879385198517375314484419636375831692950043494681086216801132992894992073043549345734444238830811964032368159761364257919460511161153180020112355613147850990144016582113980802593363704338372125642562468368397428391579930708137063051498937545824793905119821087761709894384065907188650613450638393969841289267170171639236630771959759602967198498584747214118744793695281339580686978042092722359067653639245812934796866796050643382365457226499639565753771140693605753972748519968257962263926628723821228077282694533566209411494773209137042470988800126634902133443545132997575243935556809283074703912808833704604242038811884278932615078751111611890554404310016467561463042172047054418235984109544865939951763562097389045543365620446113073179079567783991646059123421851684116484976655440735035342461100951921364086166458528582490561481983118608971510165909629167783576978218971309463741863315366655075048599962980618305520708064375410377462993806370243086143707729483191613930318982129488864454087531220151508801063690704233752691956097544827983510513031478534369069610342503330640702626078815689993073285283860210952011667504778265405602840447261253476526199497516413935405758914164807790819391509783265267357223345809596676641238332431803356750902770328997764322274140648332252909246400475879450277740304911475837364685132242330083613174974310278155119166068147713643860660588239296046824360852579298309708792696189884716154519771006673253868536688203879387434282452105216904834713465626644677249804155020268911396676699418625230078867587634351655714082399036921717941112081468142817245651097608680799956969871704892030688397378864424058029877854981474850496474839410122404397379212489090182889704288969959786545963912277471130174422215054994142220608594409558274574156732185618085495772478974532178744521635643865493878176534386173073117191303336519432196382547576259017821571335535538263865678325591054357061691571111509592512935937915842020618939831712030231672154620042021571000690064742326758331506172055559152300476905804797564793342903318391380967107766528728536115810428838927348541001860796110557102365979135807307393334878825425659411467938996683214240725853238417578137021708470101450594584964184552276676997839910336968480504213161440253628229937373357474119876949925778456837005729840466618444632837666138844859985799578043474205735943483989158467800944630217714179069980531700554217013394438983138958184322462925324541885925597107717693181058990855056541300217715183688778809143401076993173194955529843014054249460155790940685080662147379489941990555834145355820632010409610898763850753406403942912916406739830946120528613317000547923036507678828494846761201379492863571282578108259298047442640645554622954201327582875484722844011026401880710051194208799299393038146597484639402679642314297786073408377534648609105107590216143387325881164088879081195935808391084857554287047736715700397781278271972929118208854721781935604990860904714189348057865958100039832050007277944401545508232275972668680384993976052715188793564084087667335824665860910947722161939776147066786607819960766376633431918953174435458783111090612656404241157344163453817502170648805876993975324013452113944543007483832121682240923123881147190658736905758781486024808505807160480447325281585366376492417144303181734676938906925551789298586266284699434311273939522050339020088064783309098702077318139847356559327568253385152676136224373035256048895324538071329110036480361482447977521252587773660863720262787840435888394296208350774228593858583797008770530722673586370964961341859299457925909621981214493058735717955881148158246209127821669147582213707815448620621988502099860220287194154087118796597036930055019620660109793013141384036174959429074383635627266569336099611456173465488098450623506298767580003287168593793413359232009212117679197925484136353041883073003864216819237668149917135060168880321236463709370565454999739013768909186009794879099054215678797534728975154021339578252827496429971652954186765310298849303123394580069910644097627231563026867251658937619733399069783112019038178661418129018224181312882213538198455514944675955136481795851123668292107148402342148255143722943801720155871800183543827438701476422452129842860647659887362076719058118172833727453843026553715292393563864334305363696455962334040902097801506191511023699843423830982354073768883029235615272053129529602202188544488810153158065755497120131283590665159860056696711466243287895031853973943517461625246298236996114957394171136233245495484242815553312941749095328574226049414357383113529400916552044612998592150804496995519349063998604831595123067277011773779118314538281891479412483031630593196203256677383296198594364867578850070252635609611371059199986506856181242112207114650288128457142784947682353795848447429662567926430923946164361830132051491031928343146263780939105506117010825203961776637746629641004621070558536827380740453015802640095659199645055816704706479279712035124670783732850566022015540432421544067021919084253742551939810893509999252365507546160290956209001058979927505148276163307941314060888220026830880638156073380741679026521635832415450592969507005080571063713718421935186681293033588382263937414830087972568602835417672611195938712084288970624431472778686280403202729109384422456964036635419597938580151556331229939211397568271386437083761037718935438811705598743562210994808251729537671404746171958255645109655601029809852529187285834494605453513239487486231673499543940063714019703998804569116516028670290407568222427139621186145919122517639884437541934665646906612347426278192324041510154613755872083557056171012630343824642115180332695442970286310435777600141190859684798888633716970801086771609526829512907799213054707315419085187450475740130095753475505241078754954823691233733308841939618529330302370663107199716931425688275476981811766318545692001479050686325773555372181566266474113143655638682887316131992832475376311233080654172743168895264032418917485561033744143950584455414519173193611881842579349345676143787963323414107415873990070124952054944455913691344247031534155582010092190823427110369004775278355531662441997390391235310233212194692444063213790802829212044487075966283546009637210860646825705133978481663515582655604678969245069148830074758643828326415233520868512106481092507613648193596023738469097253654348120408104107423035252666724409368396109770842614534481299236626052078550722469446397944275688655626191500614255133615088664419676006487207877088580335807298733296090478628572674167397940228759461337673449022603268247788560970408933998380884922923032515185642074072896986311621277014838044099507974092514141740127479594841775626445020498839242695544055718578881673082774385665720948049685188873859437072869201480351716678710995528921629245093305097268547371177627766809766392860854017229786780036689156264552847539106255251361818203800421490279693582245200102200392665991852754103410725368685559868691089854745717667868506971820824580861883110685411800811256742982416999221180340871388135533795481729816316145774961899216661541089550070861381641867753347100102196870646550612534944164939573145839190916228930287681283099508748228770992675641903619110700786086302096197116863073290355159196015374648361260217411395655733140888667082810509460868931671316903715824133786960454133914941711480069681654719558999226732891254544854344629059771015283028149108944605840113683378031201085301472248376586402321226659142950076168468924279041405193970987384878215203137688414402678263421436864971244051392803927168859254453987039007215046573223086093353787373920330595015172037303262162082475735055820915987185631586244782351720261216715714888400163531283208765378462813099704470712562426690006951858062730120542852445130208848969657617983886221327054107638897671216877392383063627049088263274526832264858757761767504031861487008424638881520270379950815431928394716512508654825887405114907830429599420864438778512580240383548714974169506450382667103029066129007465950926010013285890962382511237600014961176249054045977169854270429913889478940112477495203846235791644963042215339162548552233262311173461304871274787511290086732286993563121451665356403255598184210535340494864741108820350440338023375744276850030460033282579680102379219517936581495959433930861729658980302506355657348520710409557113282969577453387941795851148870938930973185658296000164895563405639037688198785648822609899082348055411111067435012441289190997202542881596409417849059193116060048995455401357613781520642763394405586011370138304119914364955793749805506806185926246432200212265454251526338036846504646769631438955591913888683591165001613273187195909490083243874067566001735895675104692123096216956378192681534352707659155674268157236742517004596870505255249832042779196284063735978586342456609850303600633412379572477293197875811313995070680394462662919974674905161790687554787379281023515703455866936006188185877676766275129677935277694097172828865506037156511402444547642803798116416570101754100478005183046308833027152695672871100616906452859448794370462063024286652028286451680214428642714064281257771196878877692378484106843047693339423495726890632584672948573765045590837489656771361312926556176530442852680901958327982358171184775368515000748986633046533316851579093882155877649673870736200202042868162463989346920791978145181942233789675727869820928617069905388524535879559719135088650915710789987532253750466303554545449728455131560872302311174019719479628846942250685426020323645149020379918967997691750419429885602508615551041815537167659316133340813859429547706311970496877538809085079352996819349604455000468037933332268283899611749113904244947438964958735890905247425727477506884020115134352038203394191002045641289131093903029443142741952240379308412971274772295489585338199245538809187831719538884523701075707406870561154435914093085475229954686724571883403566118137316441711380699893483026253806445202114931933798510342866960709076462873141360159846980120933422086994816834558343047477125923963075721256497515028761381632398852510840709258527371248449770729650336058676940271473987351966611050585053148223990750994286352027398235814792962197051948074568749866631357979505981420251795517392947693130262388982266743188924088318898342833145887626523180101245403329856690577369313874527676987111722654562992756320204367133600572500211312268387104219001770749910914631604823075721455719716058432989541869535245725823673190045348285116490566764349966519796383698486627897804671254882123072864110923168747721652237186365688323050260907459316154075460768773725389261710197314062568669645887044127227931314997565402138568811364359905177418757169520796410646776886214122543471895906787749243708273585599171656117650995384970043789753938533051160909012809080252495901313226137049763669476851913747804262996433439748550014411863974640650209003406078814327504694911902556402594345485432214324068241181734593720129506083014108812325781599320155625231658910043743762941566174528768867605432303018274064607172883086569301993208517218887943518790778546864853755418514933931387243936212332516119795336952619254198956553908936172838721048351313936006666041104431726357181354178717015513041205948889249219410935421985241535750778367800752420816055611362012153172747076166234406814222871271423389381314474664128184251154913836901355268827794788979969946619717489249275515440694685614560907444499242231196147642166596435411382412323413497863143626258569686487360015903382302923714585926804884989716911738981782519531471041440289549653690364150001962542994919668754467193944112589555612657446039007122854516297179737391572204884104791647436124111884903470290771699255232928428978003716826944707973303761589900965609768059199520879518360528418086426045896301246099018283417458864200710483564484810340078078501293322449720722945647396407110605335858388076337257807795344380989306974310146781099801973969096319227146971485874899147272753410917514684852003986900141180505133463304838294071082229638565115122348843716089484761840079881725437180367469521587942676195516715758210826632438788316422098496277709684271906996281486752548256730868170930837110892637039096466594150457532000934003089324132524592123395849758580488541695864981508997401745247757818275067774207565908724530119311069994327161208235876297743506305939850676820332631031190743791020196245745126269651427389468929951379757762428483443736547234905023781969060607283374393950696002611596892977316064117692053279304280637606174867365979439969998635467770636188993189201047312775124849642496316681461153359127147913486270999989421786834377123353194917666864294525690340784169348143358666392325114260678870086640418019067083254694951001247849562082525159147563344130038298050220015972662112265675143000904293818133729376083398883522509767597329206747638485005690612214145725667491250541802782259739215248184644123169194668817387896647571468967656406119910460362294516870079634563911622682868429640439047470985733978085919546551112735161643657891095461782625059321970269080545977458074036257097484450460680532308375523480764176759088809153116503962680160165909910874576530696694684017090649696739027587462721991690397894606043991072398992639505560191536358693456923978969005009773979727147839099139485220463675826929204260413708796708783714011001736613236347774191429823175723926758705348030962788447055578690507205329558669011881909536875646489400171851036585562202001256331631816934192103687112760734632141347515009500443155920517970084720677564786243747909275780393182211988214605713402601625649876526555390169701219037067242637076173882967574551026643473803216311804428141115272913114732180144056940556768752931754380660911488396365600678804216701647264235526725572492963954491267371149263897714970386103215552481313999836136190828643818579920807626272544699129007335570331036167624465781913014427848792540704572515003783728474053046405213658216256332953450369121736800260246310827350418148774712340051241210872184444778951289279019199411965546745271414272819140253399596975059688171536580578195521514832373970374968565232534442453138624107503058847066955511179616601485330004953169459445765912194046406830417563625611209905181723464884288038422885395990340736520558245466388356108139841759151826225481036395538485216114555402197369534591811189040175173871021307086828204350257334454596201145348405235121565540715197264416093655066493750410891347603098035280968265417710477416808483556486420367931109524533544071067891300854172773197574485674356302225679281624644653172138082744864339013351453413699304685196205178351081776009375864435298563338102796483427236240332709758523340332214028686282939313225213031201840958830144063947522787354984416017012594809148367220932650585082009687445197777082405723911846531901564120995381934343596359579977744661914793582201073005038667300787319236816952099887270748879592923677360005620206326211553441290922045222707539231896305665342189897318355835222954520853846886680231977466136131947216334720167500538650480340299109797504538185301886228808369674321137913863066038394656569789796863281494189984314444452408054955122227882402618336907261317411117028121954626222814505862317639428372666349105691807310075585126317108697104326739917528330548326389400980836745056438634786951460394216719792592205490218904907615248403976715887138649655063527391495647317780139805241778802065573008448996363294626929841757291783246850200219767565808574148958190593731202029274487481826536272692253616954117834260904037035128890172875488666359314325163824680620398658715058007584787000139240618722709952310686154302275198727962121307926820614047450336552057564759770260214201748452439854522006563691856847670687457897799050812491688160898061284294921032672368727792849250427090680193375985270823728350001897474818721215102290723061281338732085775496556697751938554919870228549136126435953673077000312438088425604271213704401489283158769643929465791741069758836640311445940548079609541723922284536541331768340234568027726233075043877057884092239754541396860579461364249244946156191884928885333988240333201616501492059167396861135336157400088636948232872696490742093020038735017450189246841832301204913269687446499243996972004576929338418775335935900346014397670226297544750838699849040079554643805794931241542261374100046644460591732562148286088086890368700559197462337108935023474626079638084389843386901857037854867835595321522140728290594088969036347478476156756487418266621674373265696993668396444349064506601454674613559359470228393633600218356900430031737958175391796511889779260955298456798975826447687607978551494870752259408780271189462010574214862520508213156751759570906150577014771614497421361355515863700141882803889114450803176723245361399095074189049937828264097246841899531789507843028928033929841359888092791688465448590520646581972121402074149020476709154247887380122737981489805099912922834154236177229349607632535450001660434543692224873946261214526006295551152700195226094955808966903759354424722018202829475262770834226839237315028304511483855995276087359104863536881067948706790217249534845788156845684853517287235551403749662322148254828805380675627508498672470976147750322611685150267790396183984808218548711996538532045000295583176360264116796434358900267428078946407755085968866471265497473112596899697855051644829901499763378384940493452012046265988266328076774837009951876937930451672171941584577311023657881269809841291464818641001246809655215567300941481310454454897771867281920488172085335898182043740972139620930629010060657293181419032110340842593529930971678580786886603420460048128324080785849850338649358246919981628817275185535949456668515800791287518920373207430757625497829372718430719492881458239684125985154867850793920113111438847141727175055275421900985046475555427088492188974708792512852873975901461817589456294288162083594658626930627712763476932700931574837115726405238628871776966045323986598617062676191103810242156243573499075759086957945215962355685277297411253076801980346271167707433620865936264860888889422588616570707888263449305163928242591660194352552915452308414347234532910334317716071017249460349963830889585127272454153444630531828592709232418245617476599402891067258288265560236614514175895091706337248596435133699603521986341186607285164281596151801925189078391065279529597828025926508306698172886517224977964905097998434203506662490708312857591951267157511489734240413502481414179129217569870426230616139357006991918580612476481226487607196099288772383267198980713416169804182926741438436985351783203367963388699575162024480299503880115590844722125468640041389228572848918517086605279647791702995266966257578863237128988675681059413612803554049595931693891998385636925851640053055813694881062991695625438501487783472414173616109497108818867117812558570456213607480210084729519595213141650100515880135285718144012051672204172624731800178691633692106563874772579212012132390053318839825016635533198208476134972402414422965570724933684789479624643086061983543532352950528168529397075943439589362671523738553579954825546590557582444888929202822470884253578163469145169331771740709100853720824153795270128023909671550774342296997735168500645377271439509172871934254079444750277818099498049914649278194542678940916578029309686002552701979631550697198507297984808929704253551525584728963762776738050848003945568481841900875260546438715573502490482000247657577871152984449754619214634146142022148141503210093969599406958524528642210672859339183800791107723298699402000648075416021258205564899356027275574017859225796746709930563100645946825816452137631794090793889927144092021428964536384932174813653350250189716479200068900655408890856802506618814607914196398723289286578938147206182683097568743926833022952445599118793998316447281759738394308860308140528500899229181423725955049751797257446933592208233708979841138425154677292512238339778226678529885914432755419095322162884185397360821948928870521082390512614599314448035728999415565017166262729946650536834045196321481233637132629565339326535198160741981191789456814432001634588140190773620382483045341623547259116896830696220972993516318160656657831355600771923506998607670783258657659002272964323912520373480461384804325584354111584412071617869305219023590878900436403430757696587457777771315432973379266676370427414236319479638241255428465792843426638186347949174026155968361593335171123029876386432151512504320246431516740178402442008355374527684959529641724245829175146119769583884874646602287789068066896633498881111917201781648528712646466596379351635227521158541010381008820651708034089223916907900764422417842765621807863117474042349458533646246623290960557300642655532519479945101759130132981099155496455678030212698931327442680200681021454570206601156755655863364101248468063859312422561523695313010245357893112531974663675240995705513437582618174518875964732409368027675488396415894301746745216038201143219997182304562644388855647504546576742399416239046230714193483793553320702797635989216260593043580545812316343198015842345646389295990718209512776283439640554324301369016180192385057123411474810547025742555508913821084760732891807310663011284698796945287590621072322994336730710383713563835182111729570805381889536481517568632662697923200933260343227740234154360129967610731871154136525895168661984559533829473871197383618224739092071294068391719909312726564076408909645027267526901051677724593199938017429998861761348191239614391443797284567308349638616461167406124628304610735408248057389186698329610790418260112180831015693210190213876575527442712920334447466269932871712869653431885076456992890533654275422635640712824961948516846337041963616661881837013640665749379857916330804555368139473902454529282321501247037579158836830263604422342085683765627930262094542128681462181547769840886878253506692089792575986452597239031279331402427457537754065316041834296859817054921805077819762012634795505588025052313010152750537064467748756402909870966103044347316012731718682071675400269431151054790907795779232649632381035149050702099119799066846332803265913908931280069305367712044574184967515588588506425666727824077886048656614837586454418063629817645604324786631687669828267787184907554703914680273158368792588832054729362230892397064046466284095511561890702764998535761428367446003704256344526952848689992993438586670600347233511583932298419486333179323489196122333911092689764245711023860093658055477088867545891220349831350670585803136634223371867712460818256259248043273738011697990389317728750025708536797573363723386421608047672824123954398941460272104709980043384327837683090181182849291466107423433078174359672638368083986493488887939509890135044322332005710594658706773641330761616192363751885000272949953119768916517038653019802612668413658388893032375290035690000379234961361850988018160782722633757112810924830232798233991618304105411567072069248385690961352457563888659220552691024159584315469506542340780845778373594739663417536368685742142018518992923129297925223798422233285891154429538752639360825877004691625104598291659142148634135946631988236092413744882319989694598187657253406342194788444983500233586160851394083682742648414415162068207980229725745277055391267860333454469755668033661792934620988905290687835970511742330923613222484345723447346690479474370924986809236615495325879062522700583664804763626751159670513967850248652539811061293050599446179522265227280862834292764249135451930740278763543462978434987636188387781191427422528444373965357772179422567407878107017634680761567293759887791200085700556202204141705917141262889571086046062364859372216618140874316672352624572846313972799787019760829463193340454701716120388878356423335987869210707940997781687905342048737037215823569781587700276516229048755305058754121780498639298041829068444320434530247100429810626770249082791489139308980984265922070990473807716937789479412531923503547505099804212879034531287133909483732044965658007072236547703614481319950280764184860642527672608127448415059119006362563536163198033139196866842147763650263488271090177092468363602162520455594223007655621393046896804608753088049316593717241678316709966727735837317742337451700546420476687639270488248208441515757338480488495242198186381144817083505621315640798614094062471483241011281817808017962749046280261415730867235236309613680438194464342411993588644475250212249577943975908997025888751896673918950135154821444521488304343301313551861613118597032418201284945982771783608598176689444519163550474530432364639528044781063405793916669787140731734162705751936895852982574601983338031559827457982749696822637960428517537112297114948435418702211889681225900098807564827712095671428548616775379182756382931036104763156097610079990572639343842401419756884438732023551582569353462318336648016512159949911806818628873109377910828477509229357000860130763627647440606402654785760247057393751363886034206787239015355527144733536149428997099779472854366131791018048044491777053875295120511360354860506054286497368446976343547906251219722249763224620018604195416637704377460578917336081829583038731872969410829768032276156101585777770667059302447287640391029402827762827276132351596133869730143595856082857299580591199543969284395727277833342721094409800122717918607692254503890132837862741849953330981061681480388032548476554085218060579730517508784687001355519183402445146322744635426358920646208290943333511019190493168650798867285349567356699762446363424533042137246768484989213898133304255746144207375594364063974149819580395402415612683035137668977468241076585714203777879960811530307472638654234045742052604764791401014797767778572378238300623748994208517215471569220495298638156687061591075611904938303691987419752612566055948124069683594787727725392094174645493482034398102135495935110371580280756032084105205869451919063724675693929353338869980773151759487972259138365804612582394085460500565334636207143884220188319742197343212969210674979744097585987683638020876177713133509518240481839892668272439234554393273907610603576969956738500915147505679469067354264753395022887681435393623700574359075452930764038415589297454871169411938951186438678726486621936840489598985518751267153132496638613233774677110663936406288506941433811325249101756881698908363943781323641032869407587641378406551173303762578394137008159257731777205254358878850785781017040780096153020147750756725635627178686412094549956527310279778275154015356193072362892021772830973374610098666934787324276343473739538723893725126166431857087343948652518262693222977801190644718282458816651669918208621349949648973180207662861598735590039978166602246190311418823049324119400980349456602834450313346322792669121038684572507140357107649568838414094890043161238956976270605855163635877951924151761014111437054833192742830506797135316681813426769993248508543918057156006278569886648890323651280002867075894331745626527932438141196320825167982144676278822867066903367205769005029381604602246143276061138573499048367879317397338190280031300835270436408556221685629315646404586837412071640619802852355523092858790084902357951249327443105871757998573295178903693945463065891993251254050519019642995963642459975653210257260863638507459675734578866550285211522709834778070570420076516303442177709935320244416347900710012360497645102991967383137098781957416595381263545939488934008130516924212033536221125164699900593161329954009495124954947217646439638950474096446171576116333926048042202192722796945106002669905911264469046782639185498241907034655275323108515502173734923803382244810262515708504061061659689095983606696073922133239799155313452849100242054931948154430559845345012592763937594407740955394363990065485565410968606640540562645799959194329731426502094347194784992881460964150751864972235645995304628735496804082458321600533154210603375136093065751444543351469266938601792899193333549885278565805938605827205042337849286345589591231871387102925962369809309041156289312219558065541421534337174291996588606449174076583438898626179475789743390800571512279150226159581986121932186091098109366316270383616045250998813820156541648471181303147876420314079400512132653959391024947029608628537792730412351179291362990555397265792066720844503084349574825369135623098908178636302909419694968332804487927531820150065490070598399252180698791810978530841382222943157745612238932886683113016695501833954547684177085533428748651136987995972682310079961834213092129058786278785647585132607210291167545707606502142527602961334761416231263312729336033169131717463655454422639238951656047274585101046665002277692957795458836664372681672834231576329626127039979904989717306878174822816649855055677993873623041718347946906458324889161504128595190249529490954624951249406343966814953963168954487032361223312555650662137628001346065307467410169001609517220300671993375098347866534652264788264211200842859291250210942948191023396494030802826691416456040462087225217517081017928435479282291093394397788153215583599148927117576206290251672442517298148128373371013542484506738664127195548712174564000132243604459075315297751972184235728675159541735936779171934235246951592507356411789629181282118192353340431011368886375631176998973571397906517512342809084074424595448042192735082849265675282972780134591359059712305078649768489740301281156982000340594482728350722222478578186185455727151193301840348368063367940088131183573440650711812319032453636875662677988485432598584796678851113693219954416637465832019165440030657458928556355012288502274666613267976033486590360584134912909483166885001342069419558078506512494230054947570032855413343881097556028112076485905981848478101650982246963558942509372306479680433099445630200086280399559574383429190472661264965145654992072888187233097853848728560769904510262199833073621332101641553093832112750807349259253380524378181789316186344534881831992111671493163800504588391400723010509255812515287451906155797543870854052215761016397233332195831713930644901025678490745794558006957531816993033771403827958610120302861055410193927463735193770357747692481319015995161597218566533490893972344392910980009935140216583234905190237157443832591352596726714995972422876988904639861915989599166899150562627373750186059507578721010066365623618916644236066102595321171763297056249532280661725814875838422386319107599403027768213742299627548381544596693504269404848819010957142790662706920817908722745827244095537654838058662366111350967603567064473682823844933312045128608614778273279354766029495810453433458456047819272192546264591517489914426572956914488734097434565268736644473420870100917505490628845204899190384296841559402945125355900582775924268814524524090999864298056831971406765201087229513440149650798845982432225692954700503528503771079066029168758866560922477481502565056281912830910989722637112387954770766241616815520803504064041341794435855178972792637584542385341219181761334450910699548091016695809727859792228005307015983915280367349287540804125250725430351862406961260415457686411927175618328912535983492293047089968884948175062928214937530034563927297027446847846014431959775064801230483465344435949963485457186398267037562868228637250810259485317196916447287106852553680633130332454721464218987843116599260465138687635885882167240755720513024788985914179528898385807160053641939493870817895933058213479890137455435444437519181004572413885315376460365680673969185078597776134213373631827617248002603988532153859923266739161982509898343536506653274678866356337328493346359779395469304272529978245107225055909803600871768155175850313055273480825354570586346534392432739123744599340518244729360586283693819757132784591573173379074230836735852940073821820347746543449819317929931230889636241379519865443312889351633775877002698586779948650457462695739995840592890978557151301572228082714859919215872351864454393230546581105171069972541407513335526957495436314498672589281960390155442229602745627878861591164881154477171868783729815390903672092285737982353834555151190592974670889741184625895229900395397604074656104582868685542206109096471547811912649793673129854608227021305981906324476482580865756053910567357834273175228271061960621466253245472918466773923554890795412843087745681130353662753608904632573097196695430412665136234045684519376730399346698149311624393680277444605429512746311108045361149093915780407309388283663835495603247084133234901791552947236626290735443939401683646691175486419097687416244536877614882808148544132918865322391334711696153583827528556442082313250369587736353765475605506589734351696577534571632848593046246251793551493586454046256159200835413183120902464283352097150415726759593657034300959893246196320623612236508283772270790220988177763616106235820949895187440557335300309536206363624943224459167236946706637687395361543319901642560914636069427513033986936424069507052497671912359945119819426321300884300791054006869454998561531545245510663981680431803699693692891930293527271060084805365644256978641014884975357356935226034440172650566310191179325010495366974642889651547053272795780081787638391874307990036474746309960151858452264913087067675336980837407771025388021312337149064924666746405538215866417059242516417836261478038571661098769438870120201029592575291643818302668937545779937471298399354496168082499263217532875437578901364277513488916697940153130678928336754364027527520323554995449116393639830975978121175276635236241959963140321205703986970284429617361765704795617768603217992724760522245268257301007686134118625260288460305286498001066160506992803080199879090706181363906307796996756419944994506753829773414632614116593385164605111407177784816857072998291048198465591911288394785911715331150861642813664714590847231760162259677291182404354590299560340715616773547140505481823806978374330718203007491831442340809654679594760632424085406717754575560773628234609194494684970807229111527080604633287245512405897703166242009810018460361029480728284838042977662604429971171569359685273642412137929681475445393662781090519415075098966005559274577314027406185263634541157894300082075144085167962920866737311538828796733449879762872433405970165117147688095318381652444697242891616290637905445996379623736545021615027311462730169273893015106674375893591305322121955912807190684504152961014758285595319344028821132446695822547213031176569421225169026163033564471709763470342658253881598223288425040787639683489045522474597354553018377747213966604439434367751021407553821372984145838103227030171761902723372093604860392948587444659691777967956437985121998340167041115017747158325106829598730181067725325393475664923655979386069850879290625429286921946971173366753121286902978414346743042850852408514381162457796062034896002207880685563566301288429190162120874912327117857561923237123865644458150041750428790231475660981592004268386355030490702576793125981659708750654889200412015054880835557616743432917580725215247219134146959976092589668274259051686320066655322909884670800100359172998247102484876107063677473332457069174419741738243353553323942982351374441398580043638075257358655728608181221786606237643514935408531615798227052380875266042532339238690292983220196719974120978292100711392512050008223603316209975498122562320971397406281540537027669974810217436315372681433373930837375980852326472788246709008708452636003257645819957453176361298734531747712952385681238437544517404243156650711541599093402928556482030061495175616669078249978845525396405986379017028538117236764642660434245013106972696210328578296589398502194952991773619466528123349331657117101356861506465651937999243410348880611217498075947481752721347712852986272663722934691520710780658224900280921486949353270584261977329756763773417809172151365680049498340017269031863714360306605878346583066136716399484674236850897353693157200786353848114809799511637957941874356854821502440392516620009486200660257324522293110709156759689301486438366802922699834942719742214884299803947021370238493764446951510798591834304589393727981838993487638092802055962114145991370621574352791371662160465347421292479124695061339902425950048847546908034455630326926425026028420437675829295828276096191784577010432859111326838636302279724952629833866968039041713493099601738309899696719772444893504599271482376532890041007875322226039346074618375983246937730459035399304902592683139155913526308948674888197123370476568057605401773720426356283150308974850443968854732621649334053524079523704763469727945246034853955668311254504440827690559619651838652716394456609848176522050617914968785521202792777749394372098621777143408273753985584301788998331862283661127661155925528439903008630980788615741371348456269052265726421588641664314703939685932832885285422242271592656026745268499002852021316110837457086029394315064842098490844713753618306621572456711498900091829110438223658607641020363922652108175656850585739894047634362559654141620381287005396154693095578098682642263810263444683045448655195502929194689985141244253924747572408873100179692898715880501556781807096527067495246751803250959649504943226099166509074542688844264764953129662745073910531473168900236837708175860549963456224556073530234200788534499070411842669369136481284851521235623707171417276003630195029144558807650322583733983444333134200879311636343945001900499587405212225807726286466153325328770208132102062127711161349328614216306941025397211002631028586731010431721896449593982258633826967938895282465233053119738115145628627751692982164812325486614300440405257147092840042115352345822648249488534030105841111693308080292965334379313703466203678499680736366557925310461632890766047117178441292508105073657613854997642905488717215055452856438849351626728873565653521964849883822766865157775194172244226503727606947252102993494957519781387812899023428542232806839389791417375487974850954651128807345382125240524796823013646797850439644983532709911094862952822039970919470360752504628868115259119338926181993628958332156886423066897832034866081575562064721889439486021927795715643457351884666009116408502808330322081227390031835957554562110947017789766377234752134330804340400055356255944353160315325901957275229971558067534669393957726452000996734753295885543500484116801719447015893928102384351948527017283890682941819400204113381265122864018408184991208980839322520134875724261692975449030387450197485425506779968867484591527263413335398463985899179175550385472825320992383449516159896233228837875836173481872759995841872458086400961035395172958002248932975221425457340206329160573207622260900897918145252378066431582749513036007756020065223096173060786680277422086491577575363459423717758230298003636359753176939901142875725316517387354761507065187661589166840862495933299490277329252955167151726484286725797598920992523914569443404249657263436206896459587155476974700532190491192987309754017255693801880872582860293256100873810422864024091799290254093483867746402274792246493978069152095867567627002786226851765239686112034789624752831179409749364018138809314255127948378582171072345715412878417691768385958744557564751346605306291020600460667241415478719520943539181114993764847365770255057045834892590361251375898093804925348024859366510972055440645552567122326735085602088184910593675862842149531449011120518956205736384301809317428002818034042939905684673808824529356752761973077372053129126186898976830708888893170170034111212216908104817349667742810554004078092479284315300818553275089507977718430582720017083956216456620374691790284713314680782658717739421023652523702233501848625257013991062799085815507144132156031527901625278547131138581227190175424268069066394392797075587630991369568444879812940788844776711405326970231289595617172146663957984875166756601486995651076782986732768668241324357162017025916932206441860672436588873647648431060383209461647662555283211173621630540356336875086355025670335433475498629242472943745141740419376415584991986736367983543286843673761525264568426912712891332490188094481639839785856369580969468018873671554742647628812402203532650830055190172747540010653224959143483028645492027281143102729732591204502618008415628920631605739637465435344958871110738731129095400739961790754245914127888106307374082538795341332585524364312741845591137567727163304875506929194073889728440211070391587614914852729359539549667002233213717232119133442585950064765503841058611792635973538047382187017005174807846836664522337360239983290907082178514754659610437185803587236499801052446738243639647446274066012826598419497212305075939455405099002671257631865411974200346400170709106861102107445268327486508920626005515744401654596077949019290213622220182833370806401700950826554860856196989405688443576367585192535337631683227781117452071186313535589436702422515738559010778053052091990338919088587066121549406597499531331132631262116745321575766753952063074736665471398213715970714580095159453583227660390231250419552572976542076389529129519047160228608870042638579868823220316029920609193168871639134437633291181135467748530669453147855657264579509251977685251040721060118251491093351525331628445879997782020672107091490442517273348102290568974099598284100181990648719751512177136883535661388235520762700358977020680318690696147516094883060075530688383546828978898296839688657052766322348655428374205827268161810469608579543754200111293050193262908612528508644145534355730448122851766388495761454519361625809884320614168597964445858406181483260825510942076712493195462580178563841241701733775415567506571539686396658728794263684471653155551083289239008193188864800364074885665981335345240228485820151056877121178105588387419805523129888925057055891571432203050041153670598685420150786570983691203812049562203001530190044891424625341290228580896728828164596536851665739799977385472493775204077476229900700684776747107875914642415053134986934330651383304936908404426899647761198572189295601012025821575838038647348112664504543059172550471927012952445273150977127988548557120867798239018550161470600123403471177939006006499560961497552483382585208644008956416692758082344056676203341652806303202099954265809433929008489380519825135815481168241674745946874801537199696111218990064349039400525642913200629561509672115198572960444880218413649486746515932215325004188077105066600782218248003509956849437326206783007026346576006766243077399779617474487913690911261682104525777574371843978424711707840929457517509590590053903930603789172638817447623312018539407089333497910359113473774131613078853622332820985302907574996955834791666822750521982414870735570763980096088139164376434790437805415882907537797856240877703518808262028808974230051459194193440012431481903270116099720674546043108444642296874350317173531630242779815519806893775530977829055524986945146021093090724729926094350343653480474300466518613286286204327457047585205812690330482451639136207600302780739529707082331564647368151191696344021456824954524623585596143932371098023156415341821501286683367072990176216685435109623298392881990847106308270747875823380188262610038807422305150863356584454111437630650862331560211735440577727526490599725649789741611263073131915470864182081706613549595431797340858939745459506147362975290237369671298219109174454959607357233628121318080633076485857507326525875677221438916164186633117611919198811046007136559712834757684105445690974282144734381170003659705726488991065924751339864932778208540607331790977244189987412598492168042586660508083229292126385090485180409626485486368984775448529812358220299419508083083777911861101170573335270796565330869965639884978175765640304985655305233441669218915215985776137588586624195441335241313531286410861030622967636729451645313605872526240156503841102350885302267484966188453794960641819893525148804928360673596948268438787480503973545997368541847484428685649690507267092958772268344772022682590437596874586756977390703804105235773871800377693388614661886460759280345638662515056603352596592363465792310605696351318897933750167231406078618280164405248870949361539962841372654530599874820923385878205287904849449751963028661940527848612474514892907665116598468046650139379170413284128487476683084513594664931234994429584156113590240312568240913806489710893123382774520166333939996568156320878380283408655983664766509172740766365324376226843593001021224261860685926638229432702247466188119928963275900165269247553614767694196524136872133092638916704215302931521339412935932793546768783508523057287147676584771623721565087186044004486249624041790530384460347501150409041315058009715375765250905595479562149839656467330347091289973378315551973679675109286858396829598331832501453328328378152036956184055072817868294060932452861874934827844170145415434755695748028539558419985826070991478295197438001118082115422963055388574424462648584705743959902057295812572486988564524070130496007922734226404534009495147286675013180428523561652108370543080370835481261838537796156993659957078809627693535759523232953097324451414401168340325397173340350355501078799146542714435425282286850308933895659575263845198906959661906259525308089038726645016659685963079376936190639356055960509675020357637737217591160132556326416792555767381245430942292642330054446046016216766173325469367566556626752863223218094334477096981936219035425683288172500677785200330569801791306282331070127505763516583060532147590058048257653073642326618365233221980254569341217698387444896104728986149309521079763659570828048449191599172528569169409307049850057716837621571648704647277358851019035250228836203706193601288078856559275546164550149300684285936819632690317926095435641821979437660507679346346318255516128615199553748484756644786347691394187194500177090408031689059439240079075422429443629602084740015272723881307654935877987553979782729031429128097970726835158599875825507199832494923174151026788971180577737535833372688855298660728204482550534856022975380638097333181673855103114800132168124231594266840131031918865286392837184062374153286341027144817322545861463304429448282130700679537715337456182890294368254630024466512743051172243593639911492631535168258262692727911184819758828527982192315383427950277799323143545162594051865156600490783503245186068345375715059296736980806224493254874204591578708527275486349034526554676658723550335845002335724660239407116063248400679872307706464182663238128712818925663491108097331398243522252814466808016494651555925195561194165495542575798147218109628607779055624324127305897109033336436667318835113902288209332887388739772699077833312797703862235291151136908782892859969109006418376776468461105492217993906268655868968346746292276027617474207477232422242700864396543020451395711887215884529154393151822750065728894016477967715379304789831619154513116824743563080116683975676445257132806633267952610553337700071586352639984061437826478089378356577916231900020098927895977817980042907148032653722278801297830227041641938575527260675871279247439412667430177721225390983531203290891396714409459064107084509608635709798591454087809540104034819323650237444068235127630093811885116417735243191209273459758595110933565176885335192480980710665960411587904580069225695267993934095532390573725712882411593551994755213527859206221704452364453551990455480670572142696748122524437379740824964650359298232956714383005168001616132614210812287834175657880961048226657977380431789220497254662248153145837077962460698138854023029586210299646877756915743746219808409178202549493482832128850514117935050378650319033822540123959048634902941765295968935645602086803049940014193811087690667982276052591516203046104760827173529454811417334366818545989209717194272022900652149398850331126614349912894811423786738352066236270811556609246125460713290543667867691053918692441309586837365999146309582157823135682108383309359451454505025676719360987142651082516461293924896187966601398197032609258929894575828251399727728541882941906384807220480324817523715463808451409822247633992330121754122690071075136039818950125311200673080253056763272993957715734004030693940499491831322719856635847792319863553008577301190962205522862700572883386903464475386334436437567256237273322837530152152256868108579164892710905382992795349072223528148246850676858873057822489804377140324560400624780334755470450465189662589779914547764038955438495329118620845445527864315583972846881137636843034152856070354173237170464970154067779404669928969855443676502976704506658253404675335633462764787014035583707571369627590338310864050414496501400970383793667485203348340847824992760170901878313614880939996964743264870852406100410166041815696939440276502237596257379171087589523110234084668966668598841121018272390855500910967199469623894465955242836090424093752460561472879321446736890030147388346569039975062109684198469091520742354883384714234807545199780201239200984744554014839084744529126794694888369984109108846436336381169133729871968410284747095141631759146191072360996403823245040869792496338452697235740738041732502510702483706025402877831318275784288504212505270112212103811144585476251893774252545183214533491426752313207520336693832228868694772161248742180333939305139789643728230758418674155524718153129712015764475292741416735009307500040741052367915016217748979356387078808326348241358651851874523256159518387843796442103031424249627548859053946524645353559645556625183199256610493687522674876369042146766666054317577592742728586665911349451251819594829833702843448795371945742271710285855350882752964226020260542444954360749852878572478234280097837645385844409859589598406907367054927056067839848197622937393747970412108524170798535280632752717699839544872328083135980851109047941531387412090127730182510247345637747369891393051206028870663144269933544126774159033515328270571801173953391705458197900964842738812087868514957366362141791926992989847154971755744548481506163361995469615018661222101046688411834176996939893246201959164607193157704520806728683312273905829097615219371396347114402246641946155320673695197135090050589368124091795992769985445461990558101898234275597087622399959783029795387025259337467055828522162303959335912747857099012029762842978147958448780020927478710208831992220947693432020056748826182297856668390765968483230056670890298194558176249627296133676363806825583104909654947555058346485490203535040284860195083596491688271384710501732746827928822827778014763624066539153310840912135367571112489132224960702035518529665749104990134015545306872678748818827024627359217845952656666753227359360273547465527185248775194307561284745985896501286523286906526819768871783480236606232554759310029340363631790131037941072545772966256746225689225922036073751397349957943971837570005562701241558099139481792729682659880114462036435038294293047298440110680437743747508787405558901943608698673612472851465494862936480886184150841281978215106045446440620647611081631257953114425199019976354363324500773993345524585656853837488038460692637127982335954399051978861701708204880341923053217887565324943591523048930473744309809289462056703821065584172191195085310448480903896218028760401512198673010871381548833655098506389893527031823703713814613948978405362317401966713999442265930246864968648353801144658243957000724110900633985255630805928023342968899463664154954108686619708147806239253742168638536418225947284886314773089148393709339435033128368956965884281241128957604328341016677495211508797335181043534979392019347594213415910768907909854832545842780630372719042951983076100691685201342156344542921200434780781535499568218616358938458521803878135949557462442717311476582666957214117395674547458428041172555767197278763675963323949979953174773462123087657172377719383859349084504879801561799981055504716817857849671871564481522299081412945835215296959377795962950400457437088451864838936932843174789455341766285900606429348949373755366155517907050209125059433588603434581619347783294373225016453049594288909027161719287515436694197990826690215705410576691599960291959161306427451413465682520974995507479398194012364025467113410210159971099698228405768932105021700094627239335481736146147760939046308211719629352549724206276532330741422412702900399216187174649391052436057229701049580732334133945497154319290496236469075035756717647595990078427139505997877342697345577944931578827472568487563733396898472538013485127800347288772270146667937480553299042465318359755322064140121620957510870547794713348414961117469499965591770507342773170114962179565838266035376557099429205100029112142317759018507206567598768829301517854642002586686142196749097469505444440766080565616643675866593264721851112900036021312508583915470967937662277204138800511683904971839343197856176955866227535431236411000917292583170981087621689088032135105411985032458065320880444781703630637577331244666311089972347511008322199064961129770556620041220782142328547786860672550247878410724679787323026250580020188945070528577316544153735019533426156987145020260744968495727506578699662930918087296583011801010128070958512078608829228003838801366212564434051718650697347823956829375815054406960295624512562896002186114821657891249418312197209823921037778466756508093888711808294375302112025501479430321424150876706318392438571428880909053740400477183465336094112092939546007613193327915409536331924849530225234542301796972008789470611262530795011966099617528538341759807365241772576531332511984323909314930980117359409784921280411515583706055830509980900550533314733684708391935369579729433067149402059567051809439799857072690240939378656244453367855334095817311792705507140301907069518114218669895024476000128225221102255381326140723890293872382965879050475730178569530203868293517899411782127166319543649471799264699294277426019111417006945984068975182092207902321281567249675558179729610732863358799696629303595510724761037637083653169574306871585967569910808747818170725167126874593124716567621419740145290180914328527296075818989399029035909020350149157947825048398348648083209117020450975994007506980304274015899672603035284643088305484793830993571879850381043425062058617574771657220565461138212734434171925738548920359986207704335493234530832255793584143925511020228223685471197091504618667395511577550932000481970259132045011066345367436409051688700310591710232702343943977672578994496727578208302755069007552787736744674692107008063437075257369842851056925224031155053992963300549716307779173382507274129696310962798895773538064092041977097991411502170105985427532373144043244677137311001125894726486786412166014979705278855846032269107441158827890280443911160404843049509926930565551700932629947876930792962203145012887038961754899351426158902280398560668665790052166876058971661151212055447535079272514349243195049829788889262151866858548372086068354744152225293881985310909834478757366542319487999327717142763770327862939329600051159659236749945098812516367401450121594726864957669249815440232876279884138040459803272487144382009720786195247696780854897783847616828198257544978136567876589317100373660711031112850351823010875639312743568556767891571912615185427107050269363724555818966717153742213626081007436227651324515460204161990771633505952554671750474092722291885096284200052826208742768200226009137328555717002620511324148462547345837234315619960883796268074642637587258357683462609820938299366154737817389531897802389374298175953970964148632963230973552294458880484921958015283508582493301590898902703179266261168312097572517275053261357940373389270716561694181977612742000158420592072956180886764686956464825027505625021859685060239222382901333916738050104093755859851074596792915785880938648460094337486122069957629397179112833684775714851916999978890489872998979921900903502432833433075419724993939907216417897329137220134467721983933069848572595122309206304482824633259826351738775605755671312939353855508281918928541143119780714122261320706346111864861016350690083573329015896188352467131050764050859939269093267521444035686713150153054833017085511575574356327491408139490992277872279132859118110567042497568632924621846612029094010788809121939298277636372059114026211199501795276640995175913803944122004562499011215030465753784431245245803431645126369971656161640192558100357512337246300568577925484810934250776824919798712887404591228220365027703207956107776267102019076708451797337940600544021493803807895422441161927924554979052274435401246640192802676398929723619343905925594639937270347269596178120592970204887623080086576771306789192043319762998806334230125548317203882786077295087512880088062792696769354186411637869523075947767518751672749073008526066915739904287333841390731857456465336619708781170390453965345196848209804537020195571026580592655307949182186684672728944623870659804143818544528778764318744388356657446412741597322156404689495290775197260424480079973156909660762745257953676483187346508980430476701458980906805188667124219681612835940206124377660535057707700066637149939268051511300996359324688728825763088393081978844802633611733821933263665065397542096086114484836128525633347587369967634798084260501887020355808175651709817921174005248204767175562402199329601897010343807872014134818579286210067180901166623324991193681047678607897146859923379364170082372979160186973331823800204150789319846705729066091434817631278771983262463437586134214088226718778229589967601486238406551965722907624673448047875968669882241166975610335826496901937888829494855468590580944252279031912174700002095955052923982967776486809647668128629252387172489134410166615217988950338631147605914552256266153289731789601977858883941478104318732122510086255694564371717084162441473690539530536252412306224524521681177603631811650755704528933090689837611363691674106309316464911981610750860326242515164542419192439609863308436174746838674180824896413592701143390695717747210625647062671269015445901621922956308787209026560032193331409988614108253585922765664421470829145780308411282520149202018874256126063833442702297809578081182568792745139458449202671229447302384796457760488754848689094659757214004868214088759070168122573246604939741408773000088697732462717402728591128909639458101176902341854637453829749139423286849150952290793184399495916143871490357609376508217688729997103462523383969693357867822285426178493353479754634530309486780790251056060418523272691487899167655485860909516379996260725753304211248415185884771856949515354453155224340981888772762955887467040085761764140075798590481121966247439543993027192867880820169937017886634417192767438631003740691004791446634776897585073776726540836491086427618727041440408025087413519703019668809338220396525240207423988869782013076139740269221654028698447255418199188317035056519369034723474277170586080607276133433316998857254461779121991306815537246619098360211044091447396753111947212815820432358650925513331324264799494806460226519828106357010864351398659414436168535825985370266195638822815008673984545880810445768971848208396603767691856694562853552764933886811034124779555559079650087411565479042574736467624882451722874980912992529234256116141204095110953213265170041133674637669233051771100123190682066605787474447271750238246115842507728609870914968510664278463130854196155191325070847170312282790961795228402824576792176054358628487200092903622057129496244645975621488676312952550944440898343970117474919520427243263986227792915754209265375989787701283480044416541302483672994222333037817463543858977464567446528515452591412491978053108292947598930312106971344467269897976768897157348747192083502542731127189310829468730573034265495627312958799797642334969995473807613762555927910333426501068114880146752767324439563896210144259232748954346741425563882955710689330457112565893481556757116873130155216272415494189827221108475825878294736734064812561141590211856704003204443659096076059902363922216131568195851813693161964100834405961860001905801100410356318467251611748302581319791824476497368816632400897126950842360224359722435229061162794449449596948788141971191910782128372290779860339898670900862298750363221223217974157759363199137169338397161387409335829302603776572657418709610760318980888076085225963561670166058349892486795393637902106955581569689167434949261027793558111866921581570832904796123365851636863715366450354604758241479452082927556933261607017754436506253148847632758226157799958442076237600472645132894471605897747666809932351949928470266458796850737190622422490795354297810860855905494453908708902294986649260442085586189954651573274682112193725826124022834048771644086976803851932908048995816000211817617925025892537954899906850875470037416772645420498619177358109704602638786846974947043978661949515541452078673745937330251561700370395628522995579557495540743169049189815941304370432400284588946873837522834743929683947396104605378958382791612380145772172906921956367436924191303954141592407698357773710424062538543584634511315079840153325760330502714958741015194722931216646965162625864541835205378726243317242118170103865244339095503781408908020027412357218990957929915452606361830716938543513523287736154315123666906529671182259090247268858960354111316358426055094295936256530867172446559110993839332291064687505317707604994401517105851378046452756600103770639002430195570773473353461647756805837809819156318213495602712213577961587901815704581932400177591125873097245359455651953583412258733818948862616042982230589350715295234132529414916102813347284926405608606531129123923963055315402455335027799860890636225329551640457900564619816241029805416412802793259624719856199631751937368195761674810046418842930235179042307255360986073900904690532621148228927985805541828451068527448032013826654858088540682656464154936659463493416019070998026167206877497007793577008310784296612576581382581213974873721435644686639806773655343087734099985161054402189138654563406619452699299380736932811207494147844981675791742044225224075406640616403075204287316917583759409361573694701146220483940380872423948404601668974879596318866292506848264899333487621858617207949769772903772593685038249826327865746413829750528336588656404490778332672287885149809049033523070640063731203318428727075023085811298275044025511821824832795817887980844781865668411485839178574270332451015556144792652787226350789637410150430908057253368510043702957490666302279727208973953453367328491700519240804719556714265853335395700345428449895750694499399820481915580480301225373891380857289444980087156878619725987368281958206266300054282758315573501225562379194399793788519403435173265806789088290116523714829949389924047123542319888608206696796512587419977990265162987861187425390575258380556927499183650799902686952999345073527972027433521275149251401311665244095632816345499037703297439704728275673502640779862216319706948418321237671927599759616577007793718347318524670353846029285999659909478558365185695467608699632338805972416245656418770220952021043108466616933023749482975748593285943891047946648509215651073729831427220457010614532205233520397890973893161853985231490752457927898277180584003260206246617780434718600104819181144579990026643677488631541136489144189816663717178540652516729556431455983297314671141974349153601464806230951721212110702036946340667810890342688030270823603903996746870548685954472991779912998298214043993977758339215455387999184657539222207830936647241763381140063758782995393140794721870384253672806126306761790962564980409418879011023230291828219605237485003418942236178070859021661328008242772042185429165262406081488949436523317425207674410843041314582194165495570204603363471559177016699820875102986861944906027793719348884837521060443409130551034252618121575869550818183832817308346289837410198706391854516220716768915782339830070165011692495907403028369867960690744878403455733882703251984889848257788896247860111214730257300467478055217776868463205560971661758808379623368106944349536871651725228915157073188312324711454267691338816113907539276671725893007412151250163873758965432318980204112955977400226900225970020671890397630781380254384320936445621358776251746945258570796950776401788782733739709619989738488290653339408668920230123574702465600402153205205237054881566720153282111087880320101232034619390348657369191028986912046383236960593714569218479478336853829650839541263783743384985727170907528808946963132843685207494458564867410712791880471551962156485032162162091454673871192504406010984127635578943232995258331247993190204581352950471094812757887385625351169910306194585966841620489621706138098314275481310016540207885182065311953922459194937087147007487028842225488901667447536680454652032178111820712623172170967923321195951993804338963404191826324599603730720557602325992063782122559363763329872008544116052483870167561626949638451283851865413022823452347525053405526630645707519626053871451294282552436606596295310106734933805995572530310301879710522777024019119798831710977098986532607499745965275163383244812285737099494562075424916686793482738828285236765462368670994841954879162098751809358821206895474236325855946528497438475906437596104610217908789465781954150584304438529995469176899851809199372415654495046986545581388243843491973804970614018883833680109688413465449934111471841759450706014492576475426181918331005719705377742871069854862011281166295500820426889521972854963219113206655987563213953661575198988970478312368490722048619359606130364310614077632114202040071331214233698658812903641985918536182600276973992083327270054474437929503766214915982540170376111967403182179540725277522490655341480800864626607402250419113808770130381205199115475510857901777222286837234625072511664889109937590929369543729681990819512730802737741880139583852830854364501817803011689551195487514120311635205010023514703067735024424353135422165357567158648096202006880560843342470500716119735050047204156509398751477369516176887488267687869642911346098372756020641963135449632403630795165826996566433468462001652441061735785761577713134687635481912295746100668800112088140732525916855414824546822083540940302447449321883782734703595723331561241730227198716232000917038375574761437954739776080090880413221510612577959382266808157928890517279967189374781494601292562731433335279732053891092198928164777073739626801383306927203727544359404225355367711389731809422325676965212303299531623155786371749185196042808555733117916818081013241894434472392805149543030440003762302444385567971459858715448605947780880725263291762021588865034610398202686787048483409625705331974243273695058901719837730054166783758895504995410788149638677310990870727615260475981034143607328951061208350408671363891721089906140856060250559260821666435128668888328262401462161025386449515929827799796014723985085960144471817895760165913952002404580531956113525389212597989980688345330648265136720060588105441957043458045953114401626559791012349440020294634367703817499778578608748390207921391568087357222340615442217933478597512903409988199612983238031582165069844765611197580433347052470265211029520607536995842697334544416865259973613758455695071753212982698648286453075529894458876684165917973202213711153187114934070657142207454729519674589692319780469872390752171467309709835070501441924706670470483590276461139701665127172509251858557389990315892518716020625442970280700272295870302846613800907678767036757874481377144579264434113223627424036331107134675128120010620417113090847611771616151193453433958555551313223372468742977701908628290736405475573603727878087774122434589555672057082480718072549304176591556091846904968421946956769539353477160180842451952900640953412418405194021493233631478727409633896419350949336690629330520287981881991982022581890940323805893779722810730115293856400441443667494296467252955916548353902152587947079368291168055089637267353557724907337222785940536993807239777667377115805800480659416357075887360285660576559883593836087073816410289296560118804285322324267334181536760907187501977852111536504247031050409660196647594254106401801693587644106976787106760634927278565104775404824056828761594862653532883655517689596340852408108322520427084186891583698283489036567122881956632055440862883909170303954700534350213734905994073184538957528814617039853891687027659470328261222761581353087342343341114686967119942531592221663810964413256977619884848010736491401701210720788870792104197918918512266562897282060679290015036910801549421395129404375226730876192362033054020076937149122226725040042266895242282055109492997669308681160090725934537596299958919466460213114302430790358263542698252102102638807864678435727543942952142006640955225632457413852655631083821372826335286110005209310975018783550845841299670292738008653765174680303309478691557579887488496528730780009361907510701436571289900563408464175194795798321314724377133810062056000780761435999264233027582285409269728514760124807881234501806698462532142879862801950203047648892728485780901107937192482572350868968346251730034128296271470309388444949020919828079945925214976453317638360944231545276725213806420316861894875297444793136691219162410842238705603255802028341070629180536708159208142229927004129907305941689016714480969893734531313087326794242641006086444447858578932336823394299641175058027055680406360509912479704512149919287993475255629017131099709612495084929645479770276766800003064395902152850830580325132168656905519724988082825797383677241403192110905547522409570144485860191769898465214758735699955099414370384127880999697614100086300422875012486523974800560298220446667640262110405513958360220149548621777553844228008525138678481791748825731491353408241143291243777482637399514027901809016349675791607064815453936992024316297556884963394940896340141615279328795524133067561704197765146651093761277758020501125885568637608228554983762364833084577432025191580402555729701212319252100966567806526163293045527036148240006792966339266236595445088298653327015459226233360006171153554341023143933180152605226989683504281987085777377497623762032460897267396235749662223428946928114869113268200154790312029472726494917717110675308352014812090910661920645658020630630398165849206816447953081806416534533912756868520261492501325246661616675459126725712846007015020842720996302344381221750585034324601894522090601455815603665295919641037991114047026616402744422169890802718035695181132992750605709618274290790970689775032880597141962467008319176326885860108922685091596085014154432521898850618335259551320274451352874873388438620042223282582178932843156688295584948406184111252780606663607773431573175325500725248713414022854705872011752314493842028319628433767025396701896435004573007573919624974590564013836892465953628396494317723185589659631195873761830927485731569365969594322112013139315741695719502246481548555479785176546199510006909318836971128206497135780859134301017036633768839516797325418070259635924579460250683495066601987733560717252273883442629038288803678196574130134597763015714059726496310067330881442522789292103851394281165317793074611913555239401278862445582619109682423515824360926455106565302857254914918301216516810886958750287920502007977365350796261130478728268084619220841774888682367708764287256849566172133370023236909572126066396357061514153730153460333507176504982243325401026294941180852575493280615910416710496232125873501487629166927934548901054749607034298554117689023124574500899617911713179917784915061301205214723151545371398733385086585140827586321903457451859049849769245620067063691146300263205752040672396161301578991450963558150073841898099219058685194796451361377099982521915714643597225383237251402183663023461626183787145113275751077330631380181624325105786705628311844003836003702615874678849424731415303308435622117369893391733724521640108603288080768256700878442132549480994886836287742984015216106143752837997113574862078767688554751879396245459359282333350581465644682416768160744572455621176193410530472804302309891785652214520069614836434142867768863029746210365611260255148250854974654868703283227542595656193430451285991180891454501787452150615698011379201439936269238314865378440098827247176834714557543901205038202577813697839811527585478502835462005832853100258375316652534160194976103257774030297260748048143516364400883741440000974044115421251832778767007708245454579735551984928775019994221351786720763346526781952426249640193536707037336504786508957417209028966776099564073178810192322443152168933321564425386923736151731723514331527596510270442374112740063350974353209957803970062745484125749428181420193156921454462282763615364103430979373235637164083480836316303046649577961207589215017730385687929755123862511771133498924194320732419799275065800789395123242238406756204413921383954614763678764821039898901665347409273619964876863745068627959979021855457779761455047598919644989553803216826973058486542231047779517815392673271647261174004533163700302530925825961825986938168632316995528718829969425499279457649944488405392497823223870157202852995213893062457228471524206153783266564099978032506664141152026717667745801181630986699547349072948748322921342685166861964617083079610385116059173725241242610033994821897500007487363448219200933738333818521419916230443914221816619431950982035749961255795731844954326174368953151214871625538909412481098706590436424579823881970805853192042518927970952169009252516806394715655562041275730386343070200923012642851819375005245237171745428092975684146414187868262047657522312843152632824471927439594283058187328181510992844798586374979181479195337205204695424023869273466003251919508767836038927895673176573591057741948574149831115853813111785623728561961872091668726058200548866449546335222249602576665154501916388688355048309332745402025929585104404617186907522995028298173595429245260070970556522253625192125944401012280038594161457731356137343495884605842068782795129444798051313705931814836689341538868936015177460292278761583645018182001251641907967938271779070292038662177998187514148536232356294273032032125332474284583413970152166612138590128103337206083613770058755512414947503923617375675461329434764702824558584354839772530828331580434860024181767921794320741358201842172266499704684787802687835443970382036685323829151717267540239122916492900637639601269689932717801738140660015609935266354127145181889915283545527898066256078216571799276066203292068635879353375006797820518464640499038801063558920671788482188393601821012635634478054158342737116644160178431345177987612024678032808704110269344549839606779008668931848514439546519862034711967239789368039146125602172385239081940195491791310862113414505685048063101822863073189731798994095536295985419678441672521462627368026697516663501617830309874857301706003738793464494283206414827999079782037749267341244338287566419865193340654422698495798690263486213772623667014830748280241576428680481323302521279074580140185795753092322042745270616052270686104104680422461647572625359596954420059100558934929038687853073553959575705170053798738149448106106513070528501324679361566387085861230748898126266178489195728541370147061330858157985797486939526903166845280177936348386676238549379387483920636019023314062340490175583396595893897789683675065857593729790939043559293231610058307337726997408345960107609933316387275963035877381248105098461684738202098479934653902998938686870245004624548879145945244405272113171140682051628272157089427658457580464101000057256011382462172201073545782999972882096810465701270618306321498841724125438073098082185463258310082141787897753561985630601414508672378761558076895818932109360775636657387166531011899923434984624762248006804498459865854947981841240237274003226052215859729186900091684751062975976706019301108411921290176373558938515418029034698207585741664574168937825268111661087185501089591264383487072004281617055546794591185270855872224982921321216191629591318407370321675477849641774154405926827664254061800208780767025520500420947787378613792546159230812758639259884879564687060739006694858341997210409076407467462870789692999046904222998531163666252626713729705982872420904841803475737763847972889450053532439870183564447513447618347524962274745092816838453566410407984883371479767887060203035277403583565977965631636449458693011958532832079151146243129566887719924937981853845590080363543670530835230274597640216887689791563198468262399923481210695182056182368230647845215346096509380886184585323840950238713847842723950524988756378089270783605196340046674457752241470755402111153920529673854729445334574748141086413358040715123066654886739811287082439800865986179373277912998146243062101445232965480903555209069581437708966054454335560667745493346894853482395895574580192287277365058042008468537094656399754346332652230808137158755807715814064826526133097496908616884416541575800157917238874638098109289141127994231126537470968549607286395954196797441855705630156375666946305272550820248491649232269648127712128664838920891395619764490432756452582504047682891553296488216932207714315524782474566692585430255473508964819872550898981043951400069814809123219182989396000730437370218615851145632959733837013041043472720933279701324847663708056080921990722177694000844294064487016920911071834808317299505660152913712959544373276095148586709493975105946991351595327752577477934638279217810830771706638593420752110762225148012312352384952273262629157568147511373272371029469644091473640186739767671568100825282416572759882139463382993318424737206195412866885792473760815019387205492204945519679074443249401822832891935115823795124102180888213544029873977520945808931684510025634519877090729243533147013121361103075563967567092495053355010902141583364405686226163888513317770984113282736261179701054657620014793447475574144824209952545586081203715482138642979900610820418818207243281510573022115213571772761854699107930748720090945306791087427839018162222750604419315853438583600163293355217693145351486581860304019171867969270282645884570151309661886267104127375728746779256006218812299231651047362691259275023015393689856523536055253519498347493729043709893381973065645077578967681684007595805753315441897755940382189334425033737512041607392293239356431016197285241664666641518741095188613659891919597887029417036700150937928695545198528811987081882990991795525347614124889156970227542889869188087058895973319513147693133192435619875524580629206112848311012800099259037333996703946102943093926612738933785736571680392980979389545168740854298954813825388353283786173862270592968801757333944750772350013697801468321320554746431843720822550120888564339603270150068233308325569380492504527874187495197519241936342013586368493006116215826251646138312564871614102698517490349625136961083699014630889062303569446567030841721216505926047962646162978662179517826376931513731459083270097848025158062580804666826498901827407958141410776087090878663768713759218192671975155762905996557550098583986905095947425312594608419474174418827417409748493509301716235299245043310864806487194505315593875973770868162528871648872290744829149178589929247197936922990169640470959808588852446498563602320080408767292152157437648825611512977083486269910210270336633662765988252054753422178175690848701185302505252402312717770732600322570773898693424987101947092860188393475395785336000402682012844208908950170932219463401835543626451999981229449899422832097086810468074568308731918329891049878547451935541073568535514802941812024478511498620147302685304942833521365612643242465085191224287590787754345113947006627049314599646008614286357986000432072187390208445838875790877867684294607833208362129331949872266908247059746409561988222008979182106765698217060352878802924162390310028540481471024514789049207357599645245282163357733923512210708592109093444334066651379516988613176446197430768986148598245156130358070124319113949012520398208712688979770692452881120217656522113780547310892266787715642736161735717216507823568856025355679029842675999567884277060707142072064163443320988936673229324304609868985175704788235067302737605830559455322535135918035686692917963359836564586813049623015287632567744042955649846608829844591701543757315975503234781851125226474683086766188566388757149751579624575211518334489453396496908695948899153843270358571076144944650587941907080924131701297855792949733959066307443141206724848752417310729199143041467274256610224226187658874836244724788259119971167022258969840156661525290124921346019683183658084988433471412990227893806470976705643220121871020235969917232905912803623037217199638005815386563105082096754295070264615265049902715481695281813570942749710380374073194351962888858810938717948325158870463040732345301265717879677583609433408884678568571403303244734195246010029054934441388907560250221376632164286563480588565197402917851165131135187631624796241528117624441590666488985488579500135761810494121193268980523585776731628586585319677120123421126361928368504652131620753565652124192527501516267454714527451627902866340058944277808344658465617566411699220654972391721670135195254439303782122514167476859089014941907805440557403395509563198285609742072891937693361727940773404617004525591795629333113991290408479138288957901012555833684904360153754572107992463132071149147578968933611513559015390807716582119434011286281660377229355197856713103265448591874402648599906683734780469637755561446768832602669705847050746155612982926921807742640552370629281891423627637311895195081583076492293240629661936463575019215032231159303954064001249329871549736714204598631508453313874387417354584821873270940025629261083636057388961882700957103591895886057977856753061799112496361263032581268070638103286883212630685721822922407893090850447692057597652186972913557320237633907225829630134707067305780916069263329270906739656614397999003341703700562112729195995115153890128493005288814925556328032455260570629577516154446439945606234781431092122291382586098222589591432915044602882888066564087461777825716226978412278360659049093576227291702347515270277782980970266452612525713519132068502374075158101521338687508205688396788079644074123210706205248561514450368839241675906242626724926241682609181752131950766570735351147753236940337988511632305992616603154309630151635657871708647226689420409410599798504567534119067822092884750828630375606712520343440113946936724297427270363291842495291650145707577166113288077735791363022359140572806063180852466596847181535117002509968904929222935832256588199378683081565341608738740686183298939891336931569160664694382441511862286091590922100715094870616667005987862144762699727818923797914631519230442409508660981703886727024168531318744759735295403765099143557667424478072176602505363391477015685291888285656503100573102882776237669775697745262554257102099251580765037755177451603876044376542799560473780530056263136480275256208194425966506167524392554642213345456062646449564801302085184279545942803803652879731519871165118139292539226629145196195067944015591762911528908188304388759338266601246395341159900259816087955288271764141223230825449827017385077517496311301799703140517607516694140417411685668622400185184235293053785689035854901619325374689495065641905864817290074960360439278239382152068407515617087004831409867080240677872348634037202326883083863093599894535184153505734296714659855308916547931723426758585459194997988631043897880983941663879420530371776260065058840366869376707763266116100090857787711415765968951950981418909690152741827009170420286703850641411218032533267371092169124028308473621286779907582936244162107228137611361685277351174937370084820726411083934845218563642543936034293460132382723839272107236136887381952700641173212784235659303485972304008287656401863226903545667890447001148984226814880120852429875662727820327661117915159310198388086007947405677655799243160226830231189511391971821432972135657231677369922454712388824766511936386392658186934210661821895389055024648445255619854613247259467393756111611428168215537294702717249757740261067480556438215464990802884979492807958231848559937681790493237930134877344061927493244815587491884214736861437464137812744892785727575384294337664256490729431980222001516647744555804162967610917623389322262878703863471278619870090972638158584921971252433343253668235711990021569865037991476031442296700042607035643090882107165324791620480011838302233767476361449419055300427831813976838810213433604736416277375282267399978285619134632916210226659237401921480374299080452847170306992048731064519200311028730835581871224435738469239541590675111078781122443665538963649296448882137185404637425556366708601885517107014256092797355848344484924964112958301963971425845547554909260010343761935356263205726075676011375799127770956190096004315040377756001387707822849219625263431530101576355096424482291922064693303117841881011798021463850889015142784119978130203514341559132970698602388759211028707401950481094947139638172322160479870385266836633964993366360367391265763320691628755424559479970184531290607157789405109882539354881439004227324269787158601554425325533864762367045277795283225109221667550762606467723269731298942852878400247598328759026450706719960546635876576600405563227747638402417707058318220704471065846674330328529238142442174672778691578447758562382856266481378793537640306691545187725438100001190282916991575484641874506854544637331952937222740584327250069001525317335970999084287601268383578806034670544281793862521115372571546424855581826153439714975235476075514367977507969046319813405120846804751821486966081252964553685351535121074218926139454718908416674767554805795568901853564399529770086159732160905893230184867773997814490810089195475317326015703990435076252825344051178085567184018572867663762118282636893502946147246870371509761059395965297232788842117367704849141692554184957461927639276348600306704087114639979383438832628152510521763144505658012694552243521110976793219906002943296068062441028814719618563192389598236781925369470899113301789973977728221087037327126076765344985105836015360910663156205527617696617509028417675835378990215311244932265231490827787914530173735033049170933435369506103987474140515036829308289740984326240194639634038475000556770677075758202067440111946954608149401564913837697833139329880310546466082978704457590634218695473186173108678111290311576668638169873558189160292723424796931513408328842395415843808814164065848054380141149346389123233322689946279711369447737745753796847817910728116473604806383774784890765667503198304349583984959943295505041174923905548139336029822753286768384859844947421161091498419154318551039819226917983159513527336905371646412983843134849793541215350562357088259275781100565800845048428667111200126029785273142366481399308526182205794575034675791838250523504712733340818250085781825434034878135285007224984164520629998930073347617240846861475204838050455706612315240621361348109744078826015411728122268422851799067545596276610589212863169485248907749898542511934854378639762756513113571189547674117796095207575185447793464161494975798187664669982993192861995952251361174005680691356685099460630715968287342139091197355646816123563935635868910721744202858689104254225322721040912195609156162706288510871008962548436210877818674140259608671263998168140245892425247210788179229573978448415588766810729469565012960100440995051515601868550449122825148471496985846831247558972973666458200861081935892359933545809310172242876365161119848689092155128399024413100921123315159932104868133441329585638229158831997188765039615068063200925269465690066698569436071525809557070670176827030604212882877797295979492127716717987225518573167627709335780729893334588488280104009521218354121954677057311613955155898435788114514542827316058555108913690898624981353755065535569414003241273343073713386765376310575908154575110969927349467308511455689802115206269469609804739045391190752311733695674615037250082444607399828257946638664929924865365967651561808906715793942201429282956812081750316930948056723675134050029889121187443974616130387891107064491724915558985339601685576411977758001868878511988057080847203923371638531615493989349999650981032167555743144501132891181941003831518207526915906384648550986030470366946219033195223875752773258722778398033735955797787510711471770742162740160462175299292119247747919368035881238763361965558164469491628658862697422891209357329010162033261886637533977092396148294774169960909386974151583535218634781016352479757445545748308909372007042494497637594190142029754923039672838767639835962445575546232716325603159855706230154085919084015719464885079455837772813790927531980067283746038503854617071732160495626570444835728945179632075283689054234837280344022390362669791324410916618303939674419479678469786278531195769992396209837028868033175178440868002686086780732789971807409436085389634957896600453509630296422625622001747089431749925130717861782616194955167609402099473846494627846301453634044671112429190320625899950656163653745428952277723928692898902861116170302484090792269210718656485981245483330963807896557859525726439608710567660403795017819172440839002698617362507470886245862786234397245480376818744695864215705175742932227028669098840993835537506460137495684273968590750228080823004818285392207630783093046182928102320713372473439971885616836371030769813270423830032583849599573300188467782798348290218456110212211937549093200516651568765484852045874853471220723108280445626868019375175360588755532502691248221332240906750703564888352181945835391318379333766902793001729838443289673563333936811237821898312093060209575606485111580008756667942560514106616818855183238832301007167334446556528060033711670112729432597124062988305710365132668251957414468129428713910560685855389370344078272272221909948069529590147575027107894737649697353273517863366392845411883722358507151861395444781603425812914769780298030551462228741186250567723711967632508146997345800475719248686785348632767939042708155465888997090362992879038183570494436753020220012520187584167152897343889668850525493551894948640953921251134931029403176974761913675369580730928283012437028513799403648119599064257903360511730291903327527104455055625961521623595762571896126595540345595552276856477862246534051418377958037225875414596074684662664647267349621313015141705417925720964142134107863629074780932263253752035614322857583086983668464009855922954261796534362402716185325259641849354067414524155567295942955711189723125561033213451598343429100623537473122409251113521637337017064649305216669069804190637003898423593018436850911632646533391219358715709540946801518821864606277270689892490417970175328152186569606405461233773289906118682876619390093684941589686849529904389329377530622447742413922403895704443513966104722080686695122335174329463513715630294777882344203997034187684964113443494917542629551355794879526125750869042968979742890966626698233987144225532067730606726643051962641511179417602854067925906567690646288070403381609541596820333394599014300997824064219046411980418055941748757965083387166109847240590111630547530791203155270366425096135329721595665736071874198143725573726173805531529046564640961738840834284573613208616452658741684051444015742995112863999659313331856061639441988791256783801100652984569710319009925145261547321018206278661175150148196812143503990249592674237549269295710174693630221169123306826415737705369866930787542461805048772085601114551047333844726540417169145243530268960148088237578383307509225693335516753063705092809583580523699867757035468907448741160909644468478657725291127948055038381386755001125126437887232589505316573772879462178472064117671376654278058520830994309339403620964259059426605348806706633948408121466640442498479082035485290274924164454154092537121437251376430033410084016363714358851097079218245330583514727579498003150220663274920364109146716241552754887160843834115358463958350554576149204559774283644626223918909612232584312379054201542273188463333636961026631238316002108879264481249346833664728392061110441518918959652167912898403721540327257498608853284016817371774458594738670378019554046818676140964446672372355794582072188591336929247281639858894639767552371764868023474616472087893382531107756019566913124461729621895872231491539075629067143920328222508565906416874969353488282166065934202994234210256976531821189560085849825056441018820722001930105804820942071737180317166530010197413411526587482661660550860764034303163209405940476778451241825974337022388104808847534300162841763970265085643010391144921639057383014471943564807260953982772379373118892438558901356615962195512078285696617340139805682074273031438058811042858015149360760394897006879567192393342972060430755883627913157844298341451340414358675371299634181750964245027602926697760329000391842044990893329848518189164941116194547637408325947836480165951142461896670915636689242570347057376824121564975785128844212418709971738576047380184391041177543817679564063667604571834490311045844130760752166922146792882238364078204867549890967421503693753415456002799870174057499535088466631905576827982619276834285807784918836916896423951999381705230215619724572191177397576862647239034909828328769820472456516862635320468773451373091251089299443274258549280110950226527136357773017007321481838035724381848113564183427550040247928314123181039644700067632092878007771522639020697791862495077185489915057578057231308213476413479730292325415464678997770237504250161331175175606008251674099948762760431567428433215788705730844373962056525879568425649944348353500195478181771820194698710153610784548991811092660480296841472188344177235043588305335146830335047069157718812711555831016534405917154221722703819300738693468272354013318584858119376139620871220384250064522062042076225877337764185092483632919988760419069786323327563894139953933613149321912954220173718121102088839409424268952002036792255407891425616066199095686106195409150092609143032166837681291769211974987672936639045111558311012777022667748290265736849172198941771743436696745736673852203425216787047782651927740743901782865628400376178016297994197049247573464095898032768399932443577825125247395737276457232736451669428047966636315362843596258867413726494965434799481071894450117603009697196352083471176236729026324343350399742232404948204726061820625767123480835362673189148279749425255153571145734321377397810305740967770863471025368540866849707023877815702678483290310154858559294280528493072603248674913928709218057209330101269134158398044729088407892166403181628484223139535580426218159228656269553667180579827107011748193464094145472301417114617487903774279864548668038256738042827529148382497230368167610634081874257312694577328613234677337240299740613498624463459612903185518740752798031777885592211587812912975111142809459393892759086632573065768674388868862926674288968199419205997596982805016672435426689949587346852073864757524620517323551516961044362049007581672051008312550303838465151836414187811628231243771409676901193359726984949182751375722772298129406338015854309448440082140279329932632616224355485298755817669939623971901505168242711611280510144392593897146042632171358041443554223531487380015952017281162621290907809526782829802591952983309289381002752012823499635481380828708931926108337845524999169122708126082157913925351106814802343476856585537383155490063624035981112710320516664557276618376143030321184835905087500387117417008646675302940236624178627699593569699596803685191110567025689812818854913802736042946013441960050768457837704134614420745773304209786999384641781609397014579087784240173599535830210933618638258560346072404618376270685093982721081926895248457667913777294996407185509033878689267209215957881670917135593521109947681937666809253635581624409627430868601127767151116351513543349901283260934201397409871255200975829365891941061376638611406828284176756245414750210422255265563009975077510122738459582326794186573678360180744896015682924288216432981875773612997482252096851693566826312133744564974695751750216698165171238118313394899573778606142296190366697569248231067243943529590221587730007099840323677118407789194108478576675062251907216610618112136708452611490817066593559205846993329899296400304081264879149547979142887173117682450516408180069550715737701364984196312563594775553761398851011835870172342185882419038693006647109071910960860345521347732833334474674777971014963676140574868287037949438755848890320111491177386283932813312050840873961656125696204256865371578565876228354731929553054781510468554277290587048562121770066103826346026694032005603062350374910284583662784792464489844152026210870453657019196497961300881979914879212224670352762194430747883229604058677316452630116702305269970636025217890975698683611809118434520557108911378412634406527555606121763607479485360661529656744021566553215927132578437452041203529923012721862831170653804137838213458685216064996818242719182681281687913211087950523910933059813158395763803893241525773011705316543036562949649749534755280587736579408058658518914280684463616999936737509465353999777795673488541868180435101081489812488723416373125970318344493880447692642681018626989508885697808810830925889809724712545601275147148664252187835785318612699257587978059439183758977782581189462860468822100429473145924001938265567455119545081113880017189785416692564448144578442144740429878149478692845305273168998895285413211191493620209482080809718620188162277388045524366322878350507297323710229556731181379473020248530808514566518114591521398173314284027417004261113308105540945593471427774841628098370040275612958320282894497044998026946664511759132695109652922991628952459193795805903601099594583653730885419484240644561483647402643347580105977448169104137052449028250242949368675742988731314712995100446666289640800834447337871012587998244895262797647168585573100213544537938766156162394384373036043728718019225515777108369193388041773022698880647788021712809534995663707401915494871770609493784832557003230838865150286135931652711231783631488804718386476878809312748356197201011473237352697643718565705782783516069309804422152541009545964695607166797926671008631000407316297244893169039371277389921105994406782408651037476172492744871318580970989664331586453203194864609173292542897726530430392678561816151995052370044846903282942603002837598245891593094713999642023155773953660052453715730499671232344570880150127852218691351897333280390972691773838493686620841564167611455578928374987800642838718849121098263129490131579828567639428352287464746047300848076492928891367166230302403637339264795813459379898699525845651787677920443045309241759037041343978602603352738750194878757766234784404877234183071527138097423166328676584268297198340470182991178346091943274629797410806067454590432210923841308718259145225813225132996581988437560033788278456729204778498076563572739902854052947908278786742843059024708229554521265909358926971436091445897098056179383255170762315182593444529302233143556400709288979651447111689862598157115282093281273275083220635868869523522397744928952916642967698011628901025433608531644021674036956642122818765454673963441886193241818077710247201907842418346116809243456355772946318188399920451313227018636183779398666329565812519784865892040140275592538933057747433293781092264205221841309547941680989624100017028640038202401355576325630598535544815551927293818363859055453036233804560866991704343453658176905270519336698853709468265361979878974073532851814988189845981288553377160177079623472286188943425096892345352701237090032948240447633055053518771526673994128226877290769931094425442451724894993030800624740130242892128495809937367384649743490114923852305237805464795166001086911930717885202058722295673498693161772665005915140696049947606994212990462465221927628872144451814156385822964728307990558847087681364399534502946645942133897639794858770232375653137413469817079088309523328429383232345607075128984765966002035904613916956979721097865575435569871219954980190173693367053304869012733155862095660526403093808902920575896750258897053097429582664222151831049122600708324442878447946659185888897950564050480438045841551807275522131606250169503979443560050911182104809894302659573861564986655710198070767514715426713314750408308963802601539505590807075706316102630523081266920955608084106004199793084843183591335417528308949517981950730087501351522155181994106216785556272868941905007319725603089433535153787779910400775330790886631854949407271408917419412336587012932291811239065912860177693097079505941443148565314451002684596680886548386995390475277086766621566939752938026976043505510980157888514030474525636284446767707836758459647743942336865836480674577314724795337778950719006858270703770241418650437316649095735316775119835534669368042514312502244114285169560294993884681296713660184034190553731925397687150782724493168627545785642791911978405798499642145112969453762964306105324397649584832015954739101232213462154588198670066520783376022793241871825257709927930567715416327828768861960545816497824817053738995348565971778839830423375407916569563081918720524617826295578924235911656361525832644237246590558960558578376584439451577419590758611390864518805295161014327815053295997670820694940729503246463099130695595086925454274949980629973259450758671969916990686816566299612027304095613837950170676949166911618999329492524691500049508684884898758332376323656504120392974605074958634682516403220314245281232451624866510250289057194084626480720772314207131592080125407369985056992191295222195714822851840485540242277208713065387590714868367460560696050465502586782565145811988051543082393693983493735384948532074979421662419496788689112201338742699587992942579696918007333603852662331655925156793477578728687471535372029190018571868735467366773389848932781611275618545015033998820027574758334959597243685740062674568902509273252375092479429034867934069338951835037079902112750709061255238339464508008300705839945601950277595008381195665768597983837736211302902781519424143745453566589062789617295984898684933528219342597093546083113372040559483239489636734674750394424723955136957642282076679469133754963044396680997322912386015459125834741297026689648740360393455687624895447213400918882786382640891399954060211906086504672254003018792282555140508550997828096834825547730307730228758211783435280098067839513142876106234168418268275567296237304676933100628337194209700708821730260122203359269231019924607258638292181688550272587361887035665790982383680977785867669234651536372190175312274143551505314574556182043280771540691297216902133875784456500867349702168560525755146705339056436191004096188174422052848650536034643271959131882930462698620812139572997927255133227312475639006021005497882735439950810693925427147448344192605141227017171959312336486190574497367967508162789390626469584192709917919978581259121623416764148232591295778071392398242128684892481574706738763813704936330870088800715520229689675722879647797530608231337882650548615803149035343664898792335108561192444005443349289135307861326294106390939612806161606709461765548922701747643777834748928370222982647221906044432641287637596005675781635309102299268253692284916154893303910721878419182653415089624488085126062710475914512674960070306957086386768261636011107223259201374980044431142927462836317292205379795694851276390102765749942175738390611957875860879633778837082595286373462262635705324002147976435719432743637648226594478514251551596357245118400656869512772890992997295620973619812837350069018598734086352682787297469686182937393643390691827493136917290437049492380067495134083840258822350073693679345999434982092674598068290330538154682007450066466222640896518393562626510160791628805089199411397312486500204300998034602718758901331731283430543530144778076826535665510041041642051032865976023830636807338216936940761518624959513033680809187835620588658503541608591246727640137652907107704298818824047079959746103882793994659140403985827373611859043342320473690833738810297942810716747953593178583301481994835700679334400921737264663465739141122032989493419089088156414169498297117053296937802511387266190801833077422421633974608877100933106637038644227440012587424818509816623585685194169210037872368921433073839286924244364158457918937964122522087699071593975195374764871896002752989274927912606922785580577750809011250389240436461692068863994179801921603124893106681942713478877848881662610271284937040079026426399484599763482149958631757100547129989950541013438608061076625007521814287115834415909416080791917207912599509326418927438823352664186253174790385548150523515867749072608848356341690416158387693156597106936398160709751850555602816438341057485045454577422094448392529821436268342306562849060162184190542671397214720578623678035076198054570982728132039226606192327898173951056581376432009190434350534559299557411320196640116498404569886656174016851186408736095029906247659650695290128899919037134874808125915897520891426348042501830645995954527381230267144527892326625945955667611393133615674256489637395274290131593187036139822713253034714695216527287152694517317102783726446867776921801619959316646821547375897015349147089096698707910182612914622769492558080746810790802951902128894498908673681084469863456879461446944120826435201206981267571524850055899496203428879077256592777677961194319684316738426220230529052520637536414067430199717194038332433561487251485613880049161971226000439761316237277083010870430208686118224851119745358298592176488744670530311582625103364257607995940640638681069746247361917668373790731944625567219695013728836688814495385007270299412530126781379681233264428703901256234986333256704041092721863034642091219606916205556552080453010174150612048471626354858959180743145664344496092239900467944412548976901784570719727548803529630232888745482547653902058063559836218649750893423766879190292172069063292656976051717384242322199145374548457569436476562066500315902507836199862105629322239941194413432576452368556015643149395394660198639091447853895260955085856879101933480273017002930734591443067623356577608455686079903638854825709615521252347873981089760385322183895984934051421655580815382473668423346372095161478323188653643403367938274610261406970066705998345765051842487280155917153927508412697626613073449824273150862287829060648846697511705960642014691385761131766274420620088314903306887931348011271216710943888347676856507485911334535462090450871801204511438538498849122353724707969691173030228871636119008982762117372148712088942809194882824301160946903652341702677482151564926857987015549014877111062789568685315154446213913197001971783972490278354706368378578054659526649613446874008332437476871595101041264624411987811526903923471476136534271847027682633194835719353250871332242961412787944259964806434308248525506439251378773001943644448316566391905484287620898104205869759127569245121733413981507071766565902083733311751646834892171992125991339188253253783948635446454382160649309999494627031394591736889550483675974909079189982993124510906712500243741821328494559292293384056244321855771493772710500424163729629890166123123902351648252469210310514174967194906095559052931822779882302322049033906890124990460314472432946573043022501384160349527804316896450820218024337225517602437057510455424737271345138633218778932339410705134093920608604744180389154072150671630488638218777518392101274012538046514967161897055411696172056945821015028387358088101701133782505298834112853282252402017764489028343058382956902036996529228970435455886892967169341654919306873982090526868618535971309666097159932224575412078576621788597025843564071682377208889808518717654902707309862897181914425064926184511956815265860509908266500891183835709121308370781566686182714724363279559407092309838378508652852836571304562294830575781435505506941008969602536367002459295832758166019228208686120226668283899125062102410913560889121391346476743409062902721912455255406328910674883805009748921696858345512534740086706105500799037057661014066843364087230059804899666579794935802024675102531110648982672992370890119271366060312093025600032077926766635505785129649795115895444395649046123886877469846879606302514079500668093350568836022635517025163115228149599314887974011698422851606734455407623077653858726219148763324092613703643673781315657112427241707672000624241758576993484768630138685577174092363075980853919910797551835018454533118598011392394729298337126014432864850425932027201787334043266139188726037930389073009878159165005697160963097668277277198601597830084982425981133897947120026141709276669470433093365421940291651954054578064355424895678331368539329850962856697485654247174647760252319503750794311416523368594664393801650515530734044200989497225338303101792966816458669120191484760198046691779364615798301529242625188308525672013056352807993304703191050958448157127881304137980237236882456185079844328759030106114565815304473014584427596347546736924403584241580970217740064290985825546012281855615198850756861020742657756945387865265543495268090835378921812452961546048773709713329978849730599927086201417680770184111736222157653517476186190162383026971899464761221567976106915325352144729207879262292666378380533390138576779079330755232568036709372740586067167816880200465999347440049665439181075854244313987574835335337756636434035002472606969223183526942076987431826245351973443317411764990766789010151724593715108094731374834053530891380136339829383136057317557060197766976962712461627106516577860808184548935577036521138340150828284538678638238236256986443136609405023487982511615912465291220029494446979244888058306577108532825236753371556812388483514352396100120717118369732408023063148456908502538686378386951041574664025324965153953295465109612551041061769056690510910892981199660156421274831498943877565590430718737480321214190963615678778672609071418527394003347712755837301950862493281144675680099889354221840897186139479188724228038214355235679024690124611305667830414326922893067448765762977187646969861594596344901075450003894375305842389197552400504873576300012305844091488587738997360896410444144430353926364486425691071082292224936071695344361516250609055582678952834254739761408625892720745895627270718447457442290573081316192124331369826412835544002957033342941187771369160385071417211363103726165987566679523616751383247985205629773833348562108937941092250166425101566553010612777680203603214342482355466616378769722343730584278239794989896484235773237360006841851379644207166713202327223034996326794138347112287802325954455873787663544132663596098314372539467150299182103518429891655645377558219449128730955043379041155403288153049898334789499173295594451395181581199065026409440261325267792663094608556451575374820156933810460056365506168001281005911613450047386936050210959173933824507767350561932476145615668425237671744400714396118612700944051849040905337889109746751196516740151118157327838065338207861781485555203071869089613735969650299433278259252725420797691469719322573922590749600936641523200387962657235879722294015785755662737037819410240382694858552018232252172683281657473735912459497354724182208332075660555820607184288392593901901003852960320567399291352546821947933773663170214266909374126774141580665284490446956300691516620198710772665161198192931393724639714664476857726179041584209865720708078203345638423402738362137044010412489227353244193732951841940698410543176901054359905448201272653022730114364549364683018140189092239520250882699358989945595794088865610605460123054544481132494203485711133514211190938154799467813129670210364173318724328443260406080970371472514219867438318913839580817703541368221835684868887084333008970683485969602173591559041211817654077811746165440856075889438596586790506662175001420522862780448446348816454443407877125148814983942585370809268023390940470546715697478551593034501567086899414068031233882884992886030253432703085217680834688549872676745800845474666163107201819162802897744558076585782643579619985732969843613281266123218528051740358637233943865647164929349430597188340003664071033431435815741825488545079583316094607150735017354712433240391324994843669025173832213018704196828984382508636217286497328793053300008000719681899454546827092298862964207357955285924010800920936054130146491155487395009429979975417647099474944297128499676801642994129981067941262097357420718477039141219924604515259076158429203137488349498864709625509528469999927541224237913337103679191060426093996183938640793939131534414251908263017771879760130572673365275556454766986740500243977418757855209814092132703128594247848865653705830967245223591666118250036101291550477682405276302838225486592692053414514311834060894489473512276906257674717017180168301927954792000755287250692275685499459832765804853921699631368675652652718069538433109373782824565730294658760943721759872235078849114663046222110792190446331335829804876536210374840109082147572027283600414212557559074756296491298739211241415643578207245013838447817111903241878671688713392227424210490287383677442568259360340214004241395305010025227777107616801149860816877965960002516569598822351806722976483713921809210664017464884291174697704977386584130667996103155110028589040236195497015638876824271814063147946264094116930356574530669705591995853263852830333046236150954329014124004903969841189211450143163551301135514790297290376561442733995991075346762114917307604539368793398036538655677820813287808711014906947526289993225558378703366479810158258831536444617190946567656951597697197208123617710085053904845031049926033173202151333599457811947496585912123751472576737018819885129766126511352833328301223866459791924326736988278851610006652528213880047575176225983431110173686129972103362087394758808667690919342588153804174825180911824980414563936897366512621310306621682935203569361487039808750466814620735603256663787571410247735912440420057589019935292788231586287560781003490194458505161273614187962927693673621788463859226107777052071132800648978488477435726490797836865349936628553058080780860022959370621027237692022457909318182273793208139487441921174892559006930880150945588954247587301264186173450420575310038909427479099621517412419222924954449704283024013084504203313278897783387605175611315589641167300014787284736836812534857055033239881506898429815784990067201779911411479783984316464087186430385298974577684333210860991990114172244892441591003270984895764186727268504549049849145561185306266415656976423588697970614112238057667546327146459227518825741764803735280286560679722120647981318547111581333553101681073012840155234827571883737321691426660886645286728087960298938452980621343900604260029177933514673625246890634590626528646546227229813649507614958557383562924778620304202967847896259628459830618761015074319680576729125369660554320130184109855361917656591085051207972829300377331060350903892006010019265251867061266977251030076298080294264590187759098253187594192539227373672806628907120463037529796329002806972568857011643420039435161216110536466239680358875282025646418879222349793538921571737455502843414816118568477003495790968021002373836199100164953314972906896125455044773206145709498644998588803729310654789359736926574340121688724031050097558177165462063734027679999483738791895892226125331086863278325584737058203939514434230315274340982483789697591246344535376242242011392917918514438757101803947768764240185026074184775780410726835101786045971107885289146116845614417667390860720000371327728066307971042549452123791973743196355558152713273423042939560572760251382178434141136454427496458087190308737828275078373215750366888773151534951332606027623268184480649324208274286382890309533903930108418025532744002750711827096058841631915087998797827417270488629316256145135579291433328949170732412172644364505651826481293591918410134529375169051099090291038784024374327165616995087052821794682407566510418438602830178608942922307532750487833601737651074134253027758787948886870131753699119353375099589052654621267766717259707494293650822844772877290279441791253994855133944627961732624300003921890293891590818027831985886958657492692922038350442502494495458200564375191734989507251904217734686028741034774347794478759292091586255614944963314493050230581664103448199383132283040329473097929480684026219269785554714204609103729116588974790102091538261506411102732026213923041363291190949451405045605417610530331736066291222001297487093737345172426184157895731787534733584062935788479651244429616462684567897529181484876678751038535235029380111782779787155573055264552035671100959925972780573641246922016146271156510890593082692165545925788486581569096251056404053153710850384328746395513367088811492688472168990425327249883829045380827357247836257188775281846501591384031476609444906226058499403222541750095587315316419316062818592266304777554188942199528672704016045035418081257360520772300430183434907765114411932478876805933331041676585136976587065652550988875433441679072077051817785939066272630933056865154296060292948360333836080581944018795605567127204878482929910832518043289161456850277794787919730868171848831648270235190691548664793322935638140284700621182503250224313953863384236317816574276282910956848980369153299453644943872674206957926881592195452173129705697214486961283993908735212989941530389829768210012147072719912961168087954943997192331106081256479860830073193464692745440661928162481722959117646728264979126243917304713465406193061743645283879518423775782183639388032466727797891728964294783777802218410321744951273093498588953824755437966964411828387371142249432164480075322806400240656949321231984328094957546796411639231687012621994640102008338331692782414101550580709183834307104159112775835677766862870586209764356169519499474414499525627171803333025796626206332686040259483029209095894255000310848054480245922153184667283293760075028133517907703458921525377956826447274818751948196150979727531730456019533693223500668866231499137375922655661687697107436051089921166895064426891171367949291188122068355909655094371602119825956421876459826957665435631773683676619670658434339771135559317045890004283928578360482707250234857220281756504795244007167607041831202706549595754609983805481160030268069881242895218360739100031309813397152022952295073888265036690548880318619352389582418073798646393573801575343249525588990598903678240407665135274046985566576572049983464697673159170881324175500556147808258666598250566544470137444189498413440588657097839542686335952210458642478378495951202371758526941970813053445877394443187335009922746807919971619898588978962246126067286450911516190505112817926895932203278127598790050043709472168671242573870538527555975098097998382663027879022351362045377960040901928449534748305477211358869897566855193620032176796911668957368131394314002764728224937304477691643966117858341382550986998266375059834163245056298048157212787489583151335845037628254023237602522465598801022681120353610381228512561502678776233789894602626963495689299104218006404884619585397804288016540952850369473165143788992449910698058794578272764001735928994859061627634629824448460531169785960038817004996647511904000091430149824487828861461293883156898410798781441241675646999415780827169345024751803327536224062380797241311675174074061667267595171932572941933240629445276611168785365923351810665941973814355064100088929268697127813607726946459781872197093938305275920332294125224197878630324635637201432862051491504537553731804287387256171385345536543814414817339477641480264374281129947564989747684593207279421883645756672087920271971424539510326138908856440952828312210175711248947793977204026998279498087817993702721613026946303742299545570172088650738483103434775308599581127377408927964797723479574802932572996012798943549819784628071816102220900237738807622338049969887958126803434248651080736728268628177785253665887069943249963620374258630622036579861358636122221211150693177551920696301285867000030549523391488124902074701615477995703812892062903361295880884432825164821890697063616268695632230345633578540948294734068760352910643799196631132764743401325598751587503992738545587473277418501807672890962980842576998088175342301129908919895278261283743328735560759719625051530699182417659452567683022207619927206450392620945040986504297362090411600515275363508141181981187615464434536121964875907315599420752671184516424250271490552683588932591740557880145520459305046914738454802374765438614901111403617552315586038267452948778107926674710460936687432468905816520631369938700308727816518339308250962475911230079763497983358339962779560020654103697708266846021022333874952180234096942716903563719753397188870171981996056978562282984245822466077752757568894773650233067155073699533505084061816686793145535165435816385512017700475447057590045729415728876104584772972316042640309581840775754991877836246252662264074781494493520345537359134873272087780450274623421817121546880950328245710446898855767184800735046554964316666459168867395677169285965901513716270014062798218985262867675699247094131857571767013683868125397810256432687618619923702030930525333956792715129951783702367846570223018068731686460718309455448994421266541815650743382501355842011657480713437381859130938059975790805534408698214318367078128663401389014852521831881298327359090207283739911929088091147013024014917282030012967297725301326728708014294428914158670192744775752882752775357026639904282648430935201484164429556092209763729476023412534201342099879628788214739938334821483322763315979886508495027716512139868966143929212052409476536577696269161943241859194173731870095484770586349761889944393886262920529374778084716819286732822891188351668761947276133612890791817130663441851141860704515720526000989863006828910988646603544583683188905992787289809206935928853219579657230852132890631140721947516591478787695056142386678724451984725437579635079714400646453816186657372097072667704640154508548063247117376733775525985109835430789358450588903043718636153075244388895747074405155997787953105404047801946894605103753616743132685787257134448432886468284656497574919584346827330833495625700099859467442332654170197234313969765460404030482791030723331846835724581306969365422622489259435332537675850567535788545874205497026647633192353771949346754258863971933264019524239396138825648550437314836983713446029081255341603952294302159534323390491170369333687001561901197180141609096438050120116212218967263279522447014036593245346740054348731292860246441749224611903025741242742581455024432080733266182551505299375476875207745229815996249351620021796740357122133530282315018054954533938525837640872722932563339597512112533318164723367878070799727516100585973705886159871635707778450568516615421088045140386617423993353976735073777985128271840595373725197734183551168160482196811731994925907476143022350551156433162632807160561559322737800503505277668036317670078576665525621112509048374903429783561671185243519834418612329916535674492556138676999896002814293659208001087251888569941432652002009973599886020274502774675480378467921387986468532400318049061808120371356524601803052700518386143647717099133739893989526162160764433356745043228870957314536207230934550287600518177063629978187370214636158144554976783695098204956711593047484055004253603078324618975079664136785784052311632900829543351514483987199961427628425410276103345934625433551001291715022665222824817532258059233369780911003426363879070792937580464939388914735423436695876389908974384967065272441999587717202875912711970503939527730960529370446408954717391204896674141545108583331158557017976128094503419737929431062880227553661426440687540868228793892613635607984219804630901035064610378242896383412439340783066068945744958079878200650251011771500439771360864486253730953647738126831950885620046660608902695958330371505674371546030880067234811022496701738085460915164904132169525447028295126697326424360612625582406167263264259885248363406591318367996124881724395473552247560503001411467529006929455743691898090799006189867339744370972759616257608705508778064405199224494501538662555330075492528354437124643703026642475949850369720815810795353203124756364412342971833864829434661008205098286270029719725536816642243309251401828988794400079651749983033874576046074238746257206632917506794236141521379591090989783154629263362865512264185621696105643680700388056293311335471896773772943764542434885320022722759997969120438539477124980796161522345418138712635456586879022871994744623458562734386005555330193332367725097367366592550016293754912095129267310994925758128976711793596864140748173148165558012562039231151244804943828153400360538857153814624551662654516538920510032325186113310521114095152669448032380849269968807885976156262676142382350721952520630230461115367017625414585506987067733922971185997899871659175635769960770676511830703779418450452466565811436113054342250804614319785526158348479563870526676041248399659624183388796424094022019980374724219489911682607151609882855959230829481195666624632158826484783948398782059722653416026346327892754835598777401072255311799070405836579805352075090963586004704378064996649454093856753677290472863083513979377797831432107453525285424654974118088888084155753132238438676131024940119266344782511696075506471846356070207795685357982956476790537319801675426364192943820884066431970196232885862050741590812753784318528842022442132472048325456238140058504523282025993577165086055379492221086751708130422913449360377701639432155315595133521536838815637935769999899929181575516019915803431445718295143782226025448208053842832608534449826259364795455396938863710460855513909676423953757802283208138837986605673252880346724993711466389145723934634158599816077781986746426605796196411042108546038670137767631251629207971920204959962191096310861725469582668887483175797264397374156800499272071242974500047892848456497938452275212032334472346273138547127666671341837620719655224446711714987347032990503947849690308204235998573397488392836024476513349627298170050256131824429712738342903988972716148544983110228844621843932823354121007849570466789475391337318776491580340290692686710996720104599364192200296292438527266649360655807888411366720467913578530631109625039294257388798829685168233696228977379215613053279220470965373339170102534943911950883242081050979052916691529322376181578484343148139702808006052165979389335624211449721963837124650815281348452238246938460485921261270533105098317865176462127680999481369235593732867041555555170720849676818880571470755441190595943698882997208504203890820762686295903394922972372772847794694170288908848393525105624447625879669598360776465396173982161239860351079432863102636638531041586462039100523493906136722829730632820830735703679027766183462674122235528359909076477897031479349769986632425698600250271312240147018707896095629470333711745412279006983966587457912629911681703564936681248429730333028529935405414370615384084975445191011275753074081614816589477825940853712415855721402588394212104639033028179850537917440694729093691381033422463716208144503662186150456793477877937395654462009206988071089958645798390436205780210030738951212532897359374401720341641629277577037356288848202820104684661732595232449314915728514293323512144142734854035731552262542270089838602297661473746643821784588424393119956730074719465800862932308193279607773533287177448021670646178550673995258470134524485914491786069237135860119100179140998310110437570788171041378546234832704815247946285911740738352720740938917599294388556022884870594089266490026090857431212364637414540622193667787133168626302257677614617392430176408033657310985450230981459389099643999793476025814926687915989263070556190823875220550241106963599784676011967098216885892026356685002318062406113656238438711293048759094297551369976623047910371394830284657882721949177632636361740019021651341180383611958207641999858018275384352819232028105946815131608899939857920569023346044261842697010133469801318089085674311089933423063971644412098905672274998939618778853370926226449145068056999509193950387628193500406336752179342902136452482561760810049351812292327354916123844391303208128015965261314844288885901964536160371549980664366654131467443074575452224315292516687911875393644985388386419607637868049452644903789049011209846831442241898590325497204915890394531343399049228169671818441343230978306772526715947598436293199368308726306559450528523613312935329767810730779819510270096774025087581107178803539088557233727807326466427648190459936879237983512891373092099109453524079737686070186983479743016814723729963280619689698803670129603912872730637801890249810796510592521891610485529912809496804256484757682323656152442425615297137021912094031328691694248563987074723171618995496710139998211504603035226699953027263731383227560291611933261153931926595268557456615050085255072892490323878404387712920039788118596426481850849710805938721977974829676922169136669374246918132916642139759352792371568131748975194139277237979166650761323474283557317554382502920158113829220535368258649073961354427184018577062943030235549796975068901414487831106084911400343449043867122147967416634203854577655595133698521307749276681092073547982432657341205275402332744709163414715435591851125657717241157644206089726359387674429131208597190637305229913891385843981115773355373326563247754958181948704398895950558714088893546952146324078917353907823268677442611142643924820908546614525993698045026678160479338019849795136100096887920904549437512416598385422335704308037419232403198409716660166350923952893204929924567835331246860575868852890349135405159815516082266036860408503923087856787312898370880278470648443388715119948016847522189346795751200902423495239767860121191447011073901725468309680392229874474463367375962922967928499185472728745398318389170084687506654302200943037373376448914034033055320185801679000152311890271667027629196356862931103345460907786096404857559077213531889065984404710239616009387570312124491917007096336612021724054811658889641205523109711252593129418857601347662380924117505960095498654961353534243364912484235050236852833282864484816985610067648012148164605039754375473662849534080255588677975920393383749878206892700764453323115192491782077682350257338229765913599143728798020382070685149104886366076487410112798429037645390141909790760610648673419974276818570122203811619735913820612284775343426632984530903165449047592537934395232469287156492980567372663623047421626316408457320332645107058687102059465207902631079487743410031251283537203430763836088029682533785209177308648291043761286286505065600793190095026844597462982579132173831100774010916379939196503998425164957381071842812310589994907054084273492988307917410046323974371906227154354064114665237376137287912443582053762493777534713576588061177911950031451423649169063679653039027078068231799599557801206572931421381238782298665140525979814496667365797207712248515703416589537337670730966433548015598312907498406347061515693580130424251886419135209630358427120430251396176355017194612234544897353316586039927231903069390803390191070138005077742748686341890661745787003339051428923793286812518550292991826219741183514459899426628949053146351054059565364712116662865541900946049431523606436751963292871582612142729951508347332875462993096079142393289095024561617485411411584326642088352230776798968143543545066557176776438979218386161602303491792657510533147518688753271824281892072014135814414070140809367429191979048711763734856197526227837381401715324328738927772411002472886658700814644387578160797814391668617626612619813734568648289397701349590864398157359498864738049496075512228464460792774234807130337618349891527657443597462953521642646246943105180660497886155229750895333528129231490506351720901812098633854460422918821179564082446210435980482954234569366873137709627780400056571927696211656391186381538725222099590628562993569630096992363199320433472080576816120463360724409992199096794649077419497741519788068917471558637158338564742064316647265508795473744973838071112463752712284566925796114441637021054094255738403800983776965754845988356355193445327709665920081649761643480965510247605057993564924521921412282465040788512082097558122050494285829110085776506814458333676930053581402345921263616737245555486784890025896728132056124070438045863986587466901460874738107269021896161362836714109589528396218280774970309378097281011819605387537500217506055237770346980143475468759498756068497719496211971852390633975025636814697822654395578157752666658625070309810251356770644472589527946824058934451261832557091060130356162191565809552714466378004530303369111787475220439727186047943859318920240400326402530833658379347910415189465463318580146959468519837761791567830242103530212046259540214927971050488565165398948229353955458743835462329434154601357813511260661112664934094879656716719845565488496445265800453646054784419056443238649702050335456082150991108790525993005782380051369023064684957960785119979950025493440670885975047017534500033162934643024370152152892598843791306723125523081739193479659395886024820555193962162525781892456519011404447132203542183627575858841244246225790916431611228433102252423657041964310521194212690632219138470845066466909253656444522207174355369626182369428997826945031893782961474286409317904160790983579100404102523646447163206053392342465350073369774430419302225402047389934684353285111076294935641749964289890208469945532760898790503460826251792794621823994713448309433093841420311778744697032315544337668017106018835826508566893734188750989593395519704704175259051861564474772583995997991822673796492344142066043728000759710638621043645926465991963345893400780460042223345916260371177372266475304239496444872248932086920726515011050521700944650595111576725636407532836981340630197667982403493074966620204730562173663049517973159959260162021741949452065421381948132191968454823925076674840258811382193385187453622372800265421277823147131266372400131473298896614921293515491169917552351537766350872880242895556234186900480550120887130275956678010543218903256988883158596130824349152528467996411443507418228832541759634588240737281145194035104401391423399258640035813409080519522707527577904828333310441350469143560806002489274062077175005758417137468966728066298812211238728507856438440725748593182199106863555844939314031578881546638957434599169924289537041228650678893944989084707402292035732287099380859520356295658144742733585981179752225438880201671293619126675908379666499747920516211316189216488700213704588190307837902146163768481274855321931072995936272193383935715148454599423658263297758574135295957233024901467740288651212283358465123128350625929206660611901733799969833820598787149954303648894822780574161883597637373352616370276808268676891943883023130104309961485292097034376769726216687830772083124685470563430581497990232643813463910992643768792009081549915297710889036571316760168743319362399123652614211847672896433797865038481905413006982571074395400116944343370428506259433035512290007986678544154571649407406375486418501536927051098896338958666322838272061008874435933448230755612104188617742114913099023589108103041038308213829684047196020665108758796087490634748072584917482680918440627511565341424977275242397189469626205908603522949021676165177516733442125499893315996747904838430044164429941381912008864638995699743430739271787634564258090974491485322929088732317308905203186387359008123278505955463241189181537896078031113862453923355831895223267136277741579931201666581023145738898962622880314106285290676996668599852239756056824993289878320044423178752441026151173121936921619738731228668831215833881177375458777207991074911975836402945226931116021923823231835799071522936801164613775998062869049357285643423884010065907301895364965109499366591351864910505639391721132202005727400506930136469274754603295845845050531522775442592024001506589205384969595055234161236231102284235537608454818025303526231765521175180077029820996412004741760868703094279054804109603927193144298563556934174224682795441224431621016401939825433546681203245954361684026695301567631704314483650376918777225844023469998607007547410809415341839898846484331907714454832960411963366656644572834051047772919114649896755172427449209912003121358359644995551975867087093392787211710481142382430086100317037368334229887242083171591351581432809313729414453338400515629087109382524260395542743708484779228478849567688118027059964270960566998977475808019816493486200345206731590752989936003371603131742129310688686252099738555311976067739772647945835646266254574626251668562302565540689307935324098451827202245822554158341882559504475332595140218189429386606669563080578476764737468859300449009177418013334749098556136272158657178323750094493088733932000026722824258914396445881857418783733055471308411015354020722745307914379892587787279544609899724997451235021658649128959929192419554825396739857627368901744724944929269138455074117404440479628567264596859621807061707442641933479251385193143406112404931732794776315827978920862069275146899697115232607697424669544688116517484560946355164303803940017570036991314535079597143333557319498844129202906163914187496636027369127231480627576842891936540382347630199249337391339621095239787400072775017284417368981663999632450954601989303103444923596335303102366442089238859402670695869861967571609115676426349140626136556760339838275847294909523098763766204733987404138446972339306078534123950231987832346792821011228322809119990434428658716196186662669348198028287235169748114422568709205845267047564179133923856650899358494349130526359176948528908578856289074957432304684366365383098723596083287677638789860481025706975735400619212476122382727879577569717902240131773478969634328974445113192798441420513992874380199850521284890699022653210277632313740961320407616577583524637760431672150458576201180520936527154342680474737991578679353675197130073562876036983323664751547489334313348848398153603104948692674302982245193368695675531275617482011151646634763793713380744651721183840106568628817519154645165282440124434256952853719846946951586922169941810463788791769657614632093703575223737808111628499985323229406795946233593919526587395558455697898691956232272456674341886002164464796841245463761429809925085467468661748290419562108972820423652657590048075551093785075910081808466518538117612403870163801001068676210451787355106150713705778217349279121244811736202128488779106603534796308702711403626045601567163143175637440155558464242163224092161196020755993814026406329594686092890254246884530802775509076986830582903398237162863320973488587496736040053489509022982715451584501595792963607047975693064506275332826681046309670307638319727031561794098864620658357170063890457080260318235335355702875875872451231611787741255730200862885044450721892623315843598154935836740300996039836871724980421176166300497683786411659191222952707666839562307225539410164522448762059671563868000009376147797687672125938062408554770247015616220862558174144340502943563805402599217310843158208599313575009565285813068217878245924645917206616134827845320584480412704091637228325022909011752578179355094091091397991316401109194186778421361102807876023275597882552433223367374187184526744790713991329993461797268441554682026214667659553263886337921123623607954244261033311455047730771715477605944960631069054096908316852880947094263213978319933630468960212010312481748756857785376985131826584472444741865060749383820903560039869625520149090914482340277228201916550081770729600678882428764611019971824108439933034594510436341601722351281268599428461599578976723513949825082769921595389660338600513816164450701183348296221249929798713248564834470384086209528093668721200879727376885175009950801044989051656594116653413223665238409539063401290992621249428983215553374718993841674599662928891490228423660427154849853053507371956216794210873842811449269314348173474655534921939823784797289811473065187496298185549828212593382068832028494806228452362662119222281150602127384297231277072885584409406958968444054009146047816337046563980947075780870914047821296380212440897385402045701828621330019775934509620391633113729112382327385823276885924206546014260280337057285047085465922623964488649988424853685337223516827264979174413838518021410326996712547977966166318779874800340851185666447750728669322624554198559619796937166090589478598552485875098510649174837067958592658085505387009006996104690579643287169729857566718826567787908574574256100280362392911402951817713949444176172521833538721942652073531767666389477270426153081801220311244835894852790528634934027065570861164190559502367177715012112819226452476656187567603953686659399581319318274540453880124581921699355983452185506180926016931787987296702672023800531158961243933122115379217644608921672500166152272652828366096350969273013290499973626974120476339672024858501307363597345035686244165749650246548197156973664688302805684148743584116378942961117796190118742219162436685421539756779055354865198173596529419579912235612805211939435349267482790192004126467819595977139573776697342679193680152110329401791361978901271168319958630150289292436841207507038711671119112485180580753502533150053428320014294961526500056928265511007576602418141108558907033029124971065799964459527120342412002673181954840015735054176511489758755193802323732345466825239090895422377572713292516067182157509796985018133210431295241008095508775179786167249379436835008544366179511357689521574621657412708134898600777083885539995573292866319042557427539521213409518705305198265791808814979467404545233141760669013428475108937691586960480601673460569490899605225099362302042300321110825721689238917267979571917696699555257152363173129846094836038794624394963729692792514538592128576461981252485827286001468285996127222248046939376751494818700018462077253431160771830909987792491245294209298653087094435117786885109504813104902283190803553272325247027514338943793552315224223289017184756702536395190106518390522955042989362233614420758714358803962685558911477955408016689834237696933754490124525387487765759182669324957377412098750125727074082568778768351246492408764241567461129459583188895214131016913406201831943055714692607491586820614296468117517285454375338928512436721443116098483919785352588869817439123966764959810982402329806200903592531699075735209442251400059195608967428758970119851654484234964624212516339706965236127637208144318466966984011376474156164670866294156962507564251494136898700175504020718306002060624802570049445805834374724049407419878927310186473308424601838351038254996004913250366169249968407125747634533564176461599359318158473563755168068676070184446633323137488368774851985167284343707579854828490617826749683765168946966846339478267818525265941359423529615208626889082238679343237505089748886121244117976860099571296197429986274423313191981567106078997018119003083496751027292873542695585273103007878543646681794322684657394320539767992090911928246616462934976185754705881320939194764745900807760263242594168501844306503357201769513440805079006440933739012001240264600121114647321457583997750729972595227902790888110470269817556926347972654058701309485176793210240736173886111009174139451392863062304715734413625173433287921974320749410269299886844993416057386611016080557330595441599510573590085530376265943994139837570931925006198827093025600129103820822355962550130939346885645363774944866789691898585575106109440415357778636003625421650164049228046011330838498523694206478337577658871307334318024905355878561843476070810706402091398081479768070161557345692528432778354538500094692536862508684519154530712124734163106478689358140429217189531006339900672434161598980788320530656624090506342437740373362749914333949252709844602322785780422942532253302811958087661474014450119337008112237868781811490172735518530177177891310434726364964068596836798230309802949695312184195087002258676442536367015214343394342691384092307240308112987678070356993561398807454151936655167801972860338775373906434338372534696077653740998007735284038471528922012183201446670235703001865885868457187977443228520316524955875006766011282285098366643525437942209930982723620355064412033870169587203153705458085760321449832511138559092505633882768953393680985864839554679336164174535212419260557554729706678057502252395406884648448059029821678803200226376899496300942104232783810855661093540147789187058139038311731614218707758330488430270824423632382411321689014854708682465776378771987892421621666499438209862839499625500658291926009062834940057149406169609380164886458828364961216013353800569840880101866121226509329211197827548783089114300228591903023359070120485760233103724227515018000307999701305342984645209523722811060647768920809232860856859074547436546887312134934532455470809664853222725077947902001318886993205086644021256981955722841717451144766580056286508469978983587079809060672885388013039916223083704087250552292135700934464866437561460329530275521416161996238252488164242104036498977236740134231647455930450044968814183517007150682381410353501177795479611956749554785311308351739805839947584560805457930356136042806225302700539996202058787923951068764836590940134400271250775580666352616224788454485369231012117907255785806926148567213182787323412784824885132831358284680044965479499314191380665704424349112808732147728353025290706571336025511819412953107030223476505458123156035762618568974521304096836086505769802037820339351443717688259870566707894251100682858216849470870352686088214015461507005044147975822774254674292715704423494386522861400750107414182976879778015135426649661207632574217780998720390545635368769316061408149309756320511392688864457770557481600260847910353975506972121463679327767689780481624344379572922476339662054186372418475508101888995903344956154737165675671027506735010001190697738819293550554158299163571457106478129213784521877042440237436435176401430053449567414999123341379908760844788522289503220024651474610341465877528205444039388622525371545986123629656895040496868154304294876134726456869892623807974288069752430024477155030261178104038740623485313491427913852352882709270434149582925813949755034344761786106146482844244708958368519006148541975611116689605586189442302395534390945359670173072633038582895911834591290092979529406049115958070086579732427370802538104976150980009360023347693434087548613831546210875559907463705183880338616553014645655186698887776059485901535652539446943121829563064763984839559161887817131384955712823612390386427983740145720074885329413517638906049544024919786114785668491229497652012925738596926142026862470004866862049056516081373633780897171174612105221472731390866421794580872498004497494396703235851559889603091333335559682293206641648680292409490730826316546919908422393355222737783956332274913606731663336816914845574722572364598794996692030576833542113735946948177691154031962885983191176914973013207445528153480096378208991810719234522006360491710655715817629026385170225427341121352065614759067614603835657875192001474269287405943005669587051096731074075018808549763622470895017114007368386290124685146259454126146126118185515316286666268990727004578959482377800055041268454929943659749127629563408345619771036851662788874090846104601564331765795416452945060347951009360048208816726592398622949499811178617497525428763562354232080600907109317499415355326834065804017414120177275547142162682970147257758307377770048249798004657024125791013433106031564820498818218760874644131715373936308403503961295564496232353487100356734181381253340760121698749076195155020527413277210220417609806185929957057099227734580571354592807755446896922451244945682189760415586574128404382223361824230288367516173961336102789354507669748659738120529264416553079763767979026702123808727975299290471600914515119937756753513373543129383837920663173773292944325473378740631664679477236315397926188638084121022125257857247870299797073729988773204175975320296709297322491540657593414587032422384813718959592198445933243434755874415819946559442230218771613379479857395121362209460166264023963813132305049059211824277473488752547222508564464014422823149885967356418646541696904819628463101827059050023714448817325723556266401785373329404093057622831793296147928673663325333725789203897424792096219064708509815168366196124995464932234718517119192981284393466738687892442190420752821291167433057907668279965995086176146100335656568142151396209499593582870080060580209727524489310382874040449310125644077870872788518330868050667868333389776097093840491092640002838554631509783931324554571801981587926867499153608878944266337527809190480335345539217694802228629556513000808983911635345558843915454383807617793356300025326211994609676505577674637025336867861676264870436800466353719436823209929865087950381793677306584885972111390318647567768835260611413090345687928265424170540920764039698639076095951162641231794478921529209536531749248408248581477155769740741266110999667805301572464887350687121617027711903012098639724079847345994300095442786200491855442457659991006882199377423698900256719301132693290378729105328900499963581828602456936357373318133211854696210085382065191049773404349500149130809839342641187492301783923221713682604850292787365317158995049190445692990933088986674366838594179438056801600174551657864511339687952651073145491445764194518489143458703720700549071175368727129921523702583645807063845672803879854710124749783677383905433811762005210290587006171632191312178560008233857029285825173837391290470873972041806895709814129456581423854317986189359582657580538906789017959122024006404399076156858777926710197212686675339333079987508839467110343240338889886513337746114248428536070237316945916756737951897499194241172977734755675895967201739676477175599324613682422207561904651541408557053045793587578605112027909407036197395211108592465812871116293809483561451051249213153787109556345976908006252018396567839549467803616018723159866941537025570092434401800737080587491069511113470659282675738792355989588145716783550872523803347581620580870411478722536477627644493217314737537795775638150764662553041182343803294968491148240825129002447003601596569116889716747035908042120200759553439203102110643466494449810059556803967278099088769649897282052833551236833615962877324045409929918836362875890698012744334402301587016745120856968367819369553035067310536148632488017003307336084631680931677950490996531760631971032678091527103343943975754540815866186952538826593534123303028267758054161437965881414672703667038547400244567696489881761224978214710256066389166336446767989500730256951784554701117015626056654795406186009496562064337917914178036610471626192648065403728279403923628011226516469012400320993372121909286252780694759466095315681192674099291432615223552767107794684011391488169839691848127902252320017397835326905750189227650148280054553636936388534209655725669083162945198228519520662537939647094155705045645391708209867250205400089273373645474825700411268314432762076655483064344973924055304329042762267623486521041219667259800625962598971015315235038726264428770463049438026720476607182042916435555500104830761888774106456080623547791445742292091372273418266799687481144065387615033870081949056047249047288257209269774262070301583277606616762392559808285193354610208150125627572996576598772810441337643705699463152685203624209603981371809277537277851305574541869787017017737190896091415832203774028982654155367717885284715792784006300916236736143312075335545031850748961255722632477166044313147321662127085924918253561836681631857707121968472578685323993384806425996191460899715182611719954489996477728253949743089732750609117339292985403218667852242288648589135131257929857299050757238127645715978839606958581517614088053663013814085433995390794091157395822756626228205828453227593382410148369401443081113660183260177409256968083903273417354525972081763088386087875357875522614959115855686943710273636352331798966723611148785659727567794621026342331982267336451490886858540310264710410852503599133691015628177254503093655544824190002499219623754194101421554309525536319163893005220373353970645213064172001514347424383900535314704905973063784866096160026332806403091004304415887893279615770120099008150199629597180498607002365008369491077222752758008792282301644714548948013680886569101847694646726849234371150890270151616880451620339128608956038117535751247502132648236590382475337025788371552490705007342260419496295980868997436511893132843211682825884440926039255992186986382168137011718647801288592113134579609935526002765772207326103052851826645443195581725619875539361185315822898757624227596342211521030158250690750034001365126480212703796459784568777208704126777012967976780262316966651756828817858423738295968665203863070748041168306954959776738768208616791683826513012854346519288773696298142392702510852504210793128172032479481051319540995605055776516302600591701889788060299478104634835649540670772284444930555323664410578230251583729941797898156287820311651625655259879187596306805736933104324500209526948698617927816461568269678938942467586302884090257740900445750316880842177932484578829318171780811597923975026892567941268213580742962476487792387015703715968314962497379323377919710953648867202728998251636830860098286023778519027407445310919080548076749126889435000378279555556647537413894989856030916110736482747627445395845314981869719104355919267108187052688539522315764684390341289740191548820277885470030951720009559478356833633838071725391472903669985223619758180426696734526971636461149585098861722985366641625273923237434075113974560490207868082356223339569155015439446696960243615684980749353241932929745681731925422801901632725293793924064312686343405697440830540297031222418446655749424123852480612929313300495877477139680853271472629055655435776824405074567008326930657393920281195242201858750326232711899664758459735911759691360358920584519487488922458835376683455474128129551019541415550867340405436596255580253341393171282959619114842612875094586496197727389350413675413217904931618194537158103170177968076806323498034937199583633240104276505406849324808796104128532495743573214417989055187585232990503934431112265372274050695565700101560964751433092792166080428234152751982481596384714286093829074870084212587103906584735952245967838250094722935249033733523712235859221816693327122778385217315803491438400313148186857788976667793893416509552817683855045946644718849066002943094739756715714012264639366771914636802844229905871605523255450831162439050068281606974735490444502496674604032769331732669404745231105971451084285224927732149119419291138538964643925488404865977112979532560619211224524034497001854469826831841322771292875610435349342320633333076304659373664100200354784325320737950954128198876428502434970467825410430137255717861149025081811709277978309925657684579606985631365488999428684767397000966823919431903876687866357828746025087563788634820068759439893027323477442601322553526839479152264155978478035879428193145706876981041941116946915022332963782407207962162420727681543230851813128493081573182463715712577748074977647433002224439079119114179326363622854695864173830817983633984084587481374407867373421391989888617109053406270972246190368917044272669569825567364499497583699470912229244099639460127208895031311376327457177975130892638584936563707462870561969165651622795707960853947296074422605645792459408779612025080442761222375232396200368634028161006000409007088490084844192418118344693481526366975492160507906341870205636063506216733123436941412395572649180420438749940521629962742407903783127896875797878684149448492231430577120178821606116383506752346890876919450704327283968659345262081170499311969343317959179266834181407551212210815222794312662694602649234089347129210221716251870511546981509460814125114207869836486807986213122929320664074253294273486966283012076638729445233472640178766688956900170830453381591140660937665544507803085051016215866797204714682834907434377093571318605075155542087572518718464516408049608384129285318162835505040551495067789449006719288063911244077762147454737772005280638430932486090882600186582772658366377408605725698078123966252095272655783314631158801854001739358544937419318130548020502719830293341623513972731303921514787433832519032697068415557346713790257414402440644967537887864723509322871166158644703038932367086351061195588026687817261072744333972124657881671154310694805347422543992350592758518645748716635522499973284057318749557452313310661712267346633796702644801055057232079635551326374803423235015616401293187254270522939983501318468753001666821101864309907036971693389622785615911844561565157625824888519393193804125930702744018573823550479309738490364371154198811983152571662717421022171623244718830383856479531956262645257320878454447761670805666757177169992589584537162860428745794562176318800510581890995505238534993282601364959086579278812976844651982847432113863021388117932477023654134181154428891888672860158406788108774942304828593303755841123137096264343651138549055148566790525945455476752192330650497979099235623237279966306798476931910968405655270640384320086455757689870225810526853283078154693428306711659445006683318925740067712723875728849853668239581653507770516526010182228854586585343751088514727848011275287100819652255023188753748125316540521043425176732205447795320610032535973261793572473897052751740964498760357930954127456459678578665326167761691803329627484046550788662534617960715510870509516985037420900627319566934207202841530427254607368826930688472334048640252952983669567012127290015245677350298761262617928289772905040264260048408481095461691221849234713475740680581383836406352208088147885724010217444962217103082439786722452652850101658182210002995922486332090433162089399098724224344770642284431273565132580495529222566007063963741047440139883461060238612408565035997209145368315698394306701729056156078047395163831399462127078355677300955618960365142856494635694815885770974590958738830960059791014506017891388813388404425321339868069759015252456744327661893091298733170363029098957050773531544422107565467586272275617116592482807873901207189611716416540411965345109516142955559238321203414733260585988767347030998219792284472118983589813575662027560387328525494222623100558938120458994695287743504271429684100216724893327739551947298416776246445619735388312581178777038135409892267617562091987566429604388786031552748151816786427220707338040834939928377126851657580411757996029071435712242855281720943280250581461835068358079528560937301626114663727685169664693222929057526469655660852659286241749908482652575582304384575402707828957039512568632352991598284111183041302858609936422129105705855543792232782992637883937096264199545831763890493359011168357043398016544011512616708095589053189450884762003769360907055092880902413944288032957800082416983815456423580225848410381498651303087178958724783335508569950712261860403184702976664953813296122398937627982346523495035145891775695816803232023371572044377410027608879779550556704431686268924340543627234974779704978194504779736095667374073122002213920739720521374878666415616161207949682888001465472750834348338944348103045296684235395497001193579924986067849062126453001415029975095623108286982304603636401501132715397145842224721245121944898506318325331932053545845218004441699949655267600701725681437658361626378843708224119925179814675775591831741319898970994443870756976945140845129489922351243033274282699049395893148946422628463269625577949459565304302745339004721499619113475114715313508227130999748885061301976419066290471576530428907020583823575297707254430794681503496540363829042733835926915216700134210131124935511123487232504553947778518431058842889648741212729627280473413413541598717066118487398689775280360147232353011468042119946964380889915140228450663992885722613451997145897331082735856580503374100145916716138177622068108798763987147727966927830250376601626762256638483068858175729289054936707143008865703116068482584391679641700307033928733979039331065558810945380428309910951416582289266212594939563918160112308949017117974018318989945203964923863159791783963446665056095493956906914372841322462398126348403028048027127993642912820268080528624947976953031839287379648566061068911489560502293457355038958005886250893027752208295698795212967532822689052570068703406869551582452918988529338730506005673091928982125201133183472815349018665763374329222993939439214361544553148160704571158633535114920891075556865503486213816537211432433540808429926617043923353426941542042012601977278423723562735792473976481535330903053795787917659249122315095467404050007026640279069541245332799180115288778772832381635313453969240989765758824489603255849242216410231347208884999082175048848183465502832100806870048925290424683820529958138432517434685018484794034747979906609692966029093547430277869053347190984652168665309465368317234140981387417116568290993095714446307772145265220075000045998642233598482867730808728817122712427577112972218125362856774265010822371116063907557710106947758175510140547583795284747497247415838167384398846877240928642389668747536619237718251151058568250290056503817443952669585232090647683506513820365301451956470321689207128727126945234848739382149717531050593115651036942685417941496286552297775943749355761431485572500196606393344760310113936225687649405173998837301811271935406366825275976746698830401333378690584003196320242263990130362117406244193029045796566905334525803103987463282650041291780606124199552512319005784567132165937291768021635426156525051190713066390723359541469485767812575682061154462575275601485690371135026530064584841287077439680765274933788568075678799214825661890306972721125234319767696351525227488709132256550051936364428347261692662522330997447979938268382939409387510300891717743848912377031654761367383144905655497586168961973472979181738753919412686551539243565995103458226228511167258900640310260748738624891325577894778476937422467031752814682874365815528973351436798856237045489670650008460820750352539053502483636851836145488932943095241645306223258862728925918700526951777626891198635970180609514770143910531048665148072140472885845618638750623677543929094370051255202836802175270770131814809292859461298634587678962049622955551074029884967284929632966552075150136583873011025108826062554546117025000940055193450898699245722438199161357582420297541264976152536905216540704800239967337813354226453151685704124087693082730014601691111121713453775980282509986468501664705911221884937573682840200498450447628975075549231481444031833809279460780710843046011799101551774620351351889579246157086117893825217227400994996292582524208060573883416484716315663222161969459087116620709025097397669744124932395227639864129095861699205716253607552700031599989288493300660856640580726977843519578937130756841934145857753900490118536972967223178081204836969918981740143120063344574157117083999440899269485731563402951125317719156163448991325678625233110316740223936701860998020558537728845934105820475116537302529280774921709163630989302458921554073673635842531004080785459516537298456139411161803849752416332428793648843238717294899680175988161749534865287227010604492364648749905450743759236476854877611290155807156535909372152033030022672718275795516356229601929555054511334673529948847398713196382050413556852716989336062431327877350195256080060865178639694246348629179937310863478631627985819032009961775394291515197397133189620663257066552872377906004010481941870381903303725861992134064884960422999662696718383006797371859342494493652385818859360827652654887268378780257455108896680113421722985229378864154600029979341718575074400278888512275504059272151543207273656178718981719752055737900880431124798410338321411619289316392421373386949082619119268938531772941987697783898871276047101453024475164650486430399900313988172139644284252083435816121701421550642601359446166734933992144015697836873682557914751291196962168437375822903757277263117701020121150194188379773244285818225157861122127415881520342465657715737459178269035016378969753456530294596314720310142006446628855263491963782839564136384118990328135861164952516685142048748767514761624770444030953229556313508526881358737625234436658820660207525724362716268875886192952251458004128812807098091938615335515113357163786669308348237978584101922240959060606775040691785755811963566610916592715588319561546444318817776421683031033775835437259055753289728951741960556021308274565654906744719618409451736836832396300619912362221541051377253366061587745969314799962111327483578040948855865609587158137504874984293839446061776203866969132805942306799742923003731267761863876187396949392012280008829393899731407278021597107544340585897319610171146998099362149537513006184403647665323450234985184941640025528558407250963268681373840894481460653614626874642666904682898008953508627500384646447445742220077675083983887445332701256755551712075430882879515832892403204423732617261140960582767126679520732298687105938652980839593715125334418113694392453483695225737818284244041786563719008871469905737049625395457446824301581423372215074760431477007581369358632036163860082995789721581927912932731483862976715665357117318695607930139994429010844953693959813582225799704486311373433299348497142272180928105356285484188667683104531680409165967505462453762994083007161350946678149614801980091884387124518979518620674736561668239951613466298016301427328508280950500639086246863384284356524423829016142382457329386342590746245564294995985487680842036911242193877204285330076780358153362688926362734218629427492278913431574629375926781924285962382500461570161842248555200855370402672052945418979854431004338188870506473139884343346267240163535567362821665807908721608290076375170607405867873140953913012293963736874389467255109895632560243037605993697901883993848717757162001458858990436210350577519211388240704436887684350747684877172096060964357412003658159521350692095200199839903554782523925419450068699985153405348813305693928614221758396804036287465803273432856017931865086447703390116462561531805792772672203000030411361648057403346256878582092010347686618543079524875616498197286099763094794659371396022492056880590843388276091305834363059147249111705633605769283260337527052877697981518702719213073780883102570623415006623502132047331444128874523238645787645110901024364175039513565938970963531238689375765459772666268449881424193477162005202499569067971757977236171303364169538007423521328817860516973828029598388668932106486048179276324808778963278837454803734161596645833311281370757821368992305270643968028402427696600813731860413994196842870275953929144934386019260415286772674308585326813479946594690409002748998290259446268942967003733525273637837375220541031958908283030977434099087327433295072515600782978306710985564297795417927618201425522168649575049446772618317402980617282872716871250292353467108351636789869504613747877763424487936846497029789624456492119544877552800554437564638866947823787135843637335918411335726724635624715872541785911911118209924075166216246464263577497862862762307572206283701315186547373968528962659059200584832677011236159516627421619139999919650362113383396132555139388651907913477064044087221710813371446990354811418550126591428205475061470230689444815648700066001189441473174236755959054743640893876871997326399140352843995439324393649028127311643672547746116696629674622645512314234032350834429282173762436795845149186741291915640769205831607702109889943958925729632715797161905775020504899976025991906498707376761758429690907263540779416574953953486439963620688987970180528156302492832690426823763012366055350109053629825090921557602038563992295355333834710943650916348914338719549566088022892050792379539681407361575776889440841951652458555381004952488238075553221153810596553914244867983781417698748757645680583579863559664248148440583390278546639733955820408902596386527825573158316038439333603262587624798518683943173940757425389291120890464630232553291559367616813663346473097216309664970490933037205421594276972032142009121909870192952577903179152911707357298650582574960385281975143671335927095952106627601673643086326827171965149655907592303245136404556655298701187583934486692253395996471956620194539538679198343097201960702669759606717063056479759847239853241714041093700228823053691544278349004307087417510990202506849033231017326809953133637999012003462513550336013885539483564430509832030066332678919548067356727769243559448279784565035323634924929355095163129150486781068181621772763742706406581909649160965737437827836788298286415273511155445228618354201297277384186440729427922344551635905748598086626638302400422717458746202009927980401860893020691987141622700275158276860896686359294219241262533144777278571759800549665127317971866534251969493464181884708220246835374888386507261934562656733521727617615203571338429374929903499897907345653069158870973975812178050948218581410035081054634156088624108685815540642050717176507388790087269335956320381700701921030450107057197148101187271942430920314566436491358441386909206727664189487281462847672630763662826223243965083417933029185815957789974533938411769571686745176917317219530327983709173186660600895227522563911277165357956422794867420688370245908698852740419486116434505925871304737433435529976914611239658969525865727257444366215440977074272183844225906725663104552975886921010949256664840206094124666123198953362399001833007224318758979642608357052558172017324520350407004409815791479706840138201146250764813379436425693023362064912447448659346799922136411535055505738080873978679831828972067246268137921778985282258453224946513819379136297075501916053337073455694299794811635618859309487331500188926705016693196215407963000482192661718600144709397820852222617887309007162473744515354036737962521375485255944381122452567223328846285381408089133165229190295314007906262266324291685983420257913261435168982801431445114902153115464466587269014304760604276168662585037490872147382359625883378282244037643032080642553418464357612177753769970009568077484866690049109366322468363357447757017189586834834575337286216717555953800502096970443769996377868861804722155268235893707056941701222808046388155208672633707157648071391928177377430102432335096342653434469835741122607460658187779040874009303684231009085986650761300040922313238161936946351230000955963199553727035635669373944422347329016938371593443528564914370845199511757272239911581318439963824954238129758556249605895967085166004730670652626103577018856839701751130925515758863011425762831200603354465422311184958289971520232380186275280293677962252229599625629151260723753646695010343030752847142433652861302406191078091380656742261117686207295267176082504870578979840762824006062091822318965040871432196640605573020240060381457209857150086753507524213119148767918033921357253027989602493487965130271563465037833052537915123758487290120162445269184963640567098075501057618464073628830077630593657667288389993114140188688577193852162004493587247634889083471190839121834081898371474711160455933805599480310142101414159597645617173030057385031840517987770368846329740830086498213835396004798235197779118696555775542423172094564139575621080825361716300980233137233994076019287199282877917804553648922039797586708210943128880440577675020390884653350759891894699564716724498493073500421047667492524856835346672277437481242285744107756260767041392669214622698175621003446628200381042923041557978521070039596779934837475259373064276142901789992914545426648388355454670089772660667960713735717799207625605927363024275387960261371893763953557846075982785464110590816037011332068907245857341572688377017926226543385653126685487221475125766040953934333489152095185424915601215682073020452911866041240048864497796749357444298255337558284630632497574109234826285866224337069730446760815490189139694445058405243670622362836290916695024913770234326485058519863630721424610038284351511746519217869203728392345853683064937410705901097965574168949662854677035250835267895986812433016207466931638971534288819711120207158999285192095676874884921774518836033450771661322570591109607046500845419310846918473581532243850873694004700197837154767259567271239026263346957179440143470825112321652607666043962083064482674053626692458386898417116480860717213017520047295502524918867287649197057165419687938279320993404086358989045539429968084657310886102362019758687757424800403281603560847730395616726430378876325118240955217198136725426795875000708181036589693937772632510703116418194868118147372708816402924062698003988961856400725856092613110525003784954645584257227974216028300844136778959194746713295293093575907212768164788224892467929319046239074766015154801596484922540211202311680906500711516015391590071986760573725615974758788912870835198384914264514562428364756880929532975780691056941742433345470475340437929879533782419981694933997932899140649244453541727178500906870791433098125463404587623394154437479716665115412657956412190246638780634351546514805018226653339712009764554689626459308327641494975236458301786469178916399465772324254228022308650180184487147353376583938943729371613419123872961682101480821976973295813120401955325256924851815063405645166397848822666323512822885017075112142761154707384560817604249443271867312902553696335441895935998910111011419307092580710608623325730257680215286010171999166219766704250015224162360949742258717621727773577742766333576734842065839108926846235931482073309130600029415189946995298455522075537152142053749109416876272378610009652032078444341097227576250069150793822300647709229878730630779603617098359272686041504586146168702926242350217006137523329814418650193113431391136573835302204868543410025629478843229721035836951206167169633170115236617769189424372892365706862136818380269231449579978006769246958785749889622943474204430078262043808784403049071656420425394724374644722158658363935716196965565942361969240145798571384548779487338391645482930481278113029726729902807224835217573160596949762104257421527520335392412332700201324230731184284347023046400028899746950495268317576403370923976645659206751383892423696723026298560120748464845168051555330079185306442968588173473267517011136654755443363051179818492576621291544726406297012138245511595001449288152242553407814192257528867274238948990210141830337367375819191393390148212946592877835983168585821542889477365954149448046084884179688489650535587137635931117888270761168813508354298266278078353683083565988120909464049178285357369070839479724014471075126697883635801067717560903077559261804279833828388467185984403683123322188970763124038071665681402902736140552581979199507141805059466184895087878458475449966052506172335457149824709606701655599069259404227706807820875162080995442997441213707388341691458439991158996442619077692826949531640573196143145606482063197428016453529698781713286831448262529408757811518770673416073046246734230044607824388543152326109624567925186328717089600550252665567942240387763394254829853697383235710324121776839118341412884339473830620787068694034741880201081646169960151317834268052986080258207103577191614255676998908565078811319875717034718965773178384882049888920400982754555166413207307407038932866232587922206946415689756278258935351200226427231738479874483210735241267175847512396844365661266159262235714023246986624922171074017345148120945901908871197238681150529352942573330433064487293068182189360825278880172023926456543466445055258778385706763837237723339606235854322331247013567691093887300740948076691447579651792031035631964521284845360547770357190736285533053837652034717129934778016858245114490507632807299073845264643643347686807243962892385473386868349819725651145517456271796693459362627828886889260570766676202073111126614413719298774300416506283151684760895936240092464094667806066488640457070444573186041745317308920746515824650542443782300379918177175532447099792489920458581573094943635025330627095882186923378428136664533287812417524169284776934852818986983665871286069896065646567362092548285261075102881810282933012968837937161225153731467113195968537347062686747833113779595561969926210697721013218855733219508581574514315919571091885747185537852957400928185358227650832317267395823262906208008938680890049755007711749381384965708976178779348652334651776011172203475379432479123740235656351851715863890548809042221748980627510458090945886351508021245648254872946976017017456689946702159678481770770830990186739158751238199373471923670899007895669028198049232175330482724932318019037586782805165390053340908508211836847775205709494917461610731212876555990816625466176359328342601119436651361220005328638368256073276073992745723371989322950206835941916316131827331668522684362857872904153237046996129486666577027234263288610570388721198894333358698309976561365221751778145846346332879716287239854725763015673027949679426560942031197678069182357236083898272129597220294375921940498917104718776572135899450519168522990250645345947671142664681625772276845319770714568001887029905506622514990899996928732044914051541675049004022214979358026582276544768141663294022436320268918631332563027117448597620703903970005536891733042419647605860692108069900100588284364801485451060225118665910879204860580208013860804331131427240291033276114552384667918663467187354847252989892711192430358435368643546746000773836007419560311351554157000958810628719688774557590351346780328687188052699270357588975916514091166212263033822796744559197458771007787400005429077043584193609992418582460811902990502624454616466692803141666016060177220349859987400190449643593462389918934703241383947118899584463500209306746908433127570584797280840755625805577965658888796465730216453284380805860683905324170202131944432464318001629837492750404127373610040437628885973078646912209226457580660660014270785347806619032940720269012521654025710693443687644489168589269489411665403345342913863337814422678353284536171533605795605296214067144171255913591112936434963485726232555780181664730991056859641440415298062317164029689374261230350378470097904273296231700886369753665617187525838033217997172891118218446576471073950649370282709307233943653286184626809425193706077551633497878819130245476559042579795933538164053709715375373108804116723053845020704595151225754510882985906991991344256171172574625117351957720991448361794083463779815148945830725936574163346503171402096202702449041352100686234714816898222261198310590404053386779175610898940941502470256141785698267000412476633568445481622947071226481178452608844287087929987051411349400459312083624728139023142500302366294502652951106248536795054785656389999030773128131184722737925488482007554415390990565231841246860876511467766441157065487507932976949937939314991612500845053244187318128507575408202057601109386682738458882906781981036871848049171640846745287078067556238772256245202449368778761001719276997446281771484385200830505938552614915041568168286239147196065702562922464993749860116895932082665933975286073594814098556511608689709669067379705615181270022471434858403091858199720174907251732370649556327157103767673047820503275010011872766997738112816332342074555222221228701125214490676782841271886285439254007102052164920730077180371933345633161564838889627521271670578390998008533406408097234073139249210461996008354041183749172841530725577131085870193680029773243611779984464249651892904384836331926755206262840118039022667560552083303581129546744803103276194926811761387435096618094122808324998596087372128583463713432839344044719623661038027900993788469831651148068488898897317611438340507127160746299871580748435194203204128577014764163504105508667061943531496731288345819762240615264111375376264839303342691209895732171660591246466749770039078985660436162321867255740357235992576418848749252726273911999832423975863539113672714140556215180538019055898403044380894123717921475778085509398853520975840959797145141524571367927159164118006599504742799330558776976902643271987020043233166755556955874702080483481933643678971927977645738312840684809758543572845144995092398069552568039024454155326607541028342444740529984339485827809111733410173922901451104479251734526527353805572871134896123386969753969605085380710332400399611077130889796639369716802628435912702414277461327001448943969538471231738072998893724932198604683072454706273219048874911287738935346183720039257813939009004359805737422121938259137184175932222300981343078713302581293779967495119081896610582126926910041838496633170959433272267344582093936061297773318964046580454551664074353979700136205399107881330210080004300603336420314420399662758115368911553824246672551720599462949980903094259038809489199629027073658986692130784935561128907654619144346480759028207203653984145909801484926081684900585372276726448870667641056504085840880339608143968626908411411467130916816402885302841881786874310254759975363931795517070362882056985325402083195141793281584539347934564524911768089954021639170308318414556888988971728904487491134965348582785936806896748307988452634821184106877206938255738906282574862435709166673273377238684665180435036931905017446557910646052139951810429206571061166126744831495921787732083205184425038778024511330542435735590566618001307796638184175287705418594816765951106724522326397479778055691501955670813573961056299760384339095963122376647549879367811742455885812276100921541248030004393393107807946794316723983413456663830580351459171956147627468878888488739945129776729945048099352711513106293087755011088457191441755579232140559928033905119436159704208859104844846533993626136030611906994254031908606768659299288228653006688110803609328774548414306287825356860948269235878243987510106034516599834860129444009900852459866829638312023657170161279397496711662123444939862310687487787854354565022342346204394155913297714059662808538811786935978365442897322521888888446625238061589609010007222707523548460079830593121033092785484024908156790430183627816422863775424809520545386335795080324604279135381174718205779222494508297007959781664772195445480729667660377303062050626879494184987013267111830820214967900904740297474617288120933072458415387876563839327266930460114254463528517575888516229784849213304605587063156815210857609553737523039665762674881465181656962866247292791687837891075181081357181095454656351997498772603267258545613020482723588367579007026403169151705643519021762198694506106863487138557383575402064427062959609038310526868232449729899815423594248729995813740069226484531077590376490356136827683267313853332844990762370784959622789564722679477756356924531659513238325132564370291144151170310710858361926253345569706355747405466871634714205050582429700386245302534159347148016491813576791168599013806941155103805271772064666764722445694167366513602181050158857286274309032840993076031844071324648344238310563473167863455090837192797139573292030984788546860188258906207162990099426220041462763333678503734325373126115187375877403496451608456893835376656073707955903330463497795815483505870002095193232574703032104073929469348376570742044370287199068096645452441108280753487166629960326616789806514798325362614439048097989744481401788476845375873023508185641522904599489237783383455376211056372386774852809590522502186027295299384408727572834585192082732616388053743964668555129608032566824526553809456676660074180587817583759782155360772653941241746698207909123711263017591852086823063484107899931216791078156760934249611070940548291331024319550816231802978993363687386180382753555361381021607096709717992352179820376367266357500558518328646880020684886403384446298075401135531252879942120744532420455619365299178764557325633448649267184498147559054571151283305454699991793192369596435586679976679179619381116613000263933049531647780940949464916681061339483619808509623253032745893266383647962260854735624340136217896407933475039114596228544033479829969187490252872953282670246775497000117134751854240589577160728193845062583872041067817518700093977335835077556413234772452872769032019122724580515575166058896967099219049095183844029932170392302945806389124531607718054640552446493580600952133230076662381280214298768589444459475608214149681154463330568024272648350494714068733495845762749589039539044515233370322248746842196106918635035017368154560877260118027830877569903986948285955266536077619613535846433584477935479875335984527004988002252229210087713557982649337672141447994282178822298752239898794827346020128281617295542091071766839971196192931567953929006006717241020704131216107453547882841204334337570809861904350548294884018504667175819582977157893399089731426614101657253441847603371441315055150700210652008370911338912848901316525518840836227464614307415906628655406968134335324745950915770970271484418057064187068109224143100127485065839753329675349449085197739779454460725143323376795202135055025233778893356856645136502215641407328984073815233408879224761298757855163857312775501719430951318389796006428085877009539089780605943029608457512313941750871320979581517963259369510527630366683465290997097053403049211110385132976874051401591288927223955121072827342383868781492177460292432176634256992973723946736042558097666945605695023952237506252184289780989427792212981863914395768140301195869361114723118225474863949694261781849962734735819684098787575267165382190730850359534122504248859997768954506409539791192415987797635431284963983903841740048741890315965206306330516631337078669926217729474531103928193459130109385437420049073300411391425208967667006826476703966307365912025167647749427161593422443693421755751819968283459986909857475249062672174080109206862737852818670783523694764836874398052562133688068032259507432103002637953699147943489632580212354170541175355601738516971892981712122877470426000551263056193388743036475587531610498528769360818970111862001229179877477744225912980360868598359433726722760480349338074101513080006410376765696854072897939756273640959899383549235484346061499816359486572808546766248930262395159009381729966664052862704274780296126338920098078748872416366831108533222357327419108962800031987196537491076303808757453471296130739320750011589859600906452818429249692396866620803579977582964315793019199366373796358412330999925387383471414627137100333110497634770602620777099543681051301473820328396070359842080383373366423997435713957647567757078301912747892196462149302241353129275928198045381195902135453805224481311107144976325451183815028152617740035059988455812128609704485386468316231504019057657834077528028775472266704507287523093292049926038749495807097571589135261160894499036040619189145107809010358497657998175816832257669768550001984183594733593144136354667741738298834776103752988723903540657006750497399304159659633289196163743638453778644170111503481257750837478349602887805914390842852435873008669004280239169650977070729198005031278153766219769656433667221335169444005146434476291216216263298624603815023538311715857377280115140326116811755124934661923860544360090710771226903035470859760841521055461078206600879299918849362559652048533472136288136751021895778370133227882664324689892206554316090666008682355396484693698140388045772489102599075052541802924263518273927188189517052831465094338678600825363400200689291308380003772043891804185309989036602460929408697148424418242627246618200502036859101859232704259202848301972153484817165911142146698544702795206518436021111658579259378694889790547920203614577178773653835661468252613670955411597144185782161682118595721671265936662724821491372511248769658222811933508554902090142302115037573914799525631583038385058791899031645623214692724976282919958837808678837493890163100290161527640999647361216468607081914163749604729078689965142911316174001349077827897220129258109902311759985861425169542439080924922744190492985963464121715966671719701369171554787834625327927517852132292104374185227813588929980997285797062344653623333858411690140981238885724053016026425135667425823895340670322861373822994138099822888660174876403331303772189273928851728864907722713358713178718760163627162575827672768722314084898105385705649670279344820584748575505703588830208241785441943811879736483772186592966940182269312982415361965362402214665038610494507869834668514465389719315160721141674195310419974359839536908716240406373025919766320737011577672597103664329031460437051923413914049151983510410867634791807574285460854112714019954426471612232738007787828376620740911040934819983851207009126395117344738650903832850741035401213578391815956387052737131547649080267452093203885209404478789279709051907304409186363602602883927785595808077406811929753582564442393055491215082401308774965362704764723245375792915599783147687165581696378724925955792371712296699300309894571172166946459796221625799460725798720819216879498770341418221187829318491894500590656900990982772783890092630847155197396023389725574120474112848352009989080999301512069448737041387957300311440627024219822453646266598659248567233769854171863594726131919825676651796065653233498700042740582486045655874358138057472528843087673564674327856987864005213545131215888762572670460651104657099653713750456787327482036187697955843592712067742369060217031560457572296757905922569418693063485761198167338405737439238745936693580400312161711647557704688022664067279442928334377860224939645540051533812735995030407801381421604438225112496574428959862783560454881106601318458184269147325934328097061383894560919416341337536301541833170334394557244561285690303058208620568632896206134588196258910271482796769124171023004503079741472830934243223274464890946304629377110632084331038955834097349224442085841688880846198908614239073774051247257453689015044110659665361435515442368460128544708852681015367635565421559925682283234548812675409601478879970859510621889198009456830632193657433471173445667790832557348709199700540469513531187954250244825853232958635631768444614504141271738495748017268514032762487706922616911825834892669318775788282142082839628697184359367935297736329041124445247495662962516480226877782553520781422292046873622987392572243400573935951708749737142185942031359365599971181942479939105762868571343986527932771191440853148586453910282100921990601876961533869771938559964505545635638222578929460154200763704273088145567312102761463897202860275828552873664201845467986069132935173421331885756177008120705749671585451316210899658140445295832563357411371835792446323382201014311655128201092367205001529735082848827493126844057089874108476166134390701202864851266066742054325133445841871359241439062215090554210155822438577492270816647822282464379759177288943450174381606236811368279694144145729915391653902082330785346636582284468735444055055806407818752714886171914517098059575201970614230540082018190589709210670086437625889987607060637677500308414935753203187990692577696381366458750870713506410907921226202064376235171774535551450631572206307412362977011250367859573174816380469506328160577927912569594836945969171649311169866200356038151675133888453640906906340287999236503543482617087138766162739408233226972686356853075894729100624593492497727240463935835953041478371288495028633112366927201555687344648295178981649814852538622965883017503561289434870882845655418400981492640525353438481519629680590710186554206553887939811875512798928547143291568133974134925718540397321023709356505896946129600761408564394891815933667173805265378257648563736141132255856135289161148026943451616720074693960175282769128323870655876344524514399104725120343092454035504751144756579989388770597472922005658236940176835692219329153925519304984104457577861533431188089143875407907157451244130276655247966838307615174367267690803580298884674424797409709208599969157731362698736261739709479149007724643206499062811093693144442820659849793367611711923205269215063210800594926228082432352031256476726730252482837020350378672839597588603461684313597606423010145986687379960703695342553053607667616180655729170815986675276247743236958375104645137288903760498493187243978206700731633109864195019471261426112294847338167332668908702438545906714906391457064977722104522920887386000275223823088953072426150234080337434734222076308792499957842334503386855400033510219110477478916842438433125740709019051477060454364213041470436399451211558872805507183968926572918248241623565196897455893148804429245062630380577924847687766666601746804359522931605647402856363938776609945895646629880823750228665566217553019814042508869852530956827634032024077334168838196956473012551243835648190749038703886094063305000870771076951017510677638107641818978231619313307774923647241794536577808772003553990640480883231999915380516744093375612441159648650879631016992231444331714721716559367121619865880512984806006647091431520349037171990922799608858261949021973609665033520198650888193843254173396487724260954128295281066712917721016909188262042025056935301972193115954353324329872120035410991937412935195383914939202348283106752013845830039877442571461316577573323913194089610004966279119095619956972729054239682122915659577104973182883818295747613698508537731863454925281735788723963941246761569045444741763832499140049885950809433087357054745406182647172478258010133421858269576499512708654203622113183217034805365238490825746678628647859136198009251816670665520341702314313572171905926336601665197143479801803219361828643353724457220395625578610972538766054420747601394398034902073083769566575649567250422076009518169247232048811396574858404829698127533215512899953895497565659576577963882793412581955925748489399259741943394535074136783485893477291852390387348694491864304669784838067315468789585376002667831401934790621514026395333721360001561919818725441471941285443690361638273591275871649496279432853867952984300178528731067836709935410638243728102516337591005113429856304324224798791926459078056452667252046156203758946866152571218065803875968445419939423283492758702098752456828406067172481061463345688415771517625056434469943567245801087270061475838581247254015630038768462504383715863854008858330853668327362222972816574192440302960788939746237232935927109467513388682561153641242673491093773898366779944642730687892086973238245261167031481807972355673940436466277870087788434291399022287733189847118636673231544833863961581027920053588309350077002839010602071972954004100125461151522130134065157345162519935132399076297803894349798289408029259433988486406088620944240464145445292790748313026753415302789177821857611793892043000958410993981519462846934609504871414121160884865902527715279101164856496690197948235557303271751502024400659111630436318276432992300614993693806851696505883343801248703146905494938357284238302512608153218577408372442213536830640846290572409499632100918565073494232150146614455129474400835833581488820803780883031776533935543774338458666510173917887048403024782508622651981506433314232523158725239045227623703090394242915742657842555315932590431106660600144762636405557406556363944760213324720488904729454633156129151487931963921132164248739714289043739571258184273515481890600503549619863919973354574447353214397706594574580451365726086251959438897504586431679432789155461674849647058988690326304003384222546423312973372381464448060044642356904093382771998940455783042082803979096650253211048623067019662682346367076802187269388612062213756781986062395664333803688886444151045835323129441593611534519557630717628901340873993677602048905716896584189688329021637813646060106254196416571941181564944551762283293364260643313680132129886140092705014263022330708101200812167561089323128662007993571139581924601443144441497612571877769727313315262396659396676914289400858852545107050717256501452017214814079099030522871706858590049527067581200117229453533576363670211493006983011403698560575970583906503722999935943047890852702636734804594691649666660196525107696265069617771095747203361590527413282303054479783846000297801599366058270959851663410987900178154916828513584823682998303605271632192943318201863102025432816717731727811566185970863030469821759235322255743514199872745985657342557533497588837908459127680256981814713669206827159512537541404549978199596840024346446203365584117846556518010715420294292293032660181696816419367720839338455735494548782008201996757366035551608401609725288347621745600070112227881207110338211884038636711594200066951881203480287334385197109752194078965773989423431526714590633290222368083770640461551526778544519122555068261812565604029149025404365057744973360674027674087369916698669972437835770710134384287520829680616476265916353731149086505453288969764500558901123672459432530110276466450133536821211272748846810681610235137268706446318746661123988067346378700241130904132897318646074742610631201264097899624960449599133897757309374968739906449659415494944805112463574169877194922681252513568304396881801767524886494512625328332403135607206736146326970002860712187171617655800900110970699103217316517628227746663747441975868169563429496384967408616154582209167464023536293812733384849498583573344751128299582725225646343292097857354110738743669201295626433919334569381485330453390010978828986162517723413496405390031966527320502529334390184407559287589668390619747619688900289732689736576137493224973258274527527090031108476190309798187377812762679939705947176496412433555832307005093517030785958239407304231772576001631539536377790859820384154906190209605324555796856621645208491025495693723261227930859045322345516411691593238836941593361497054232558057193487531578676306058594025357347696283289120535568101641224532770709155079907398755662254167341753177185942181613535297943337236346179193060873195593395625426528674349228865186084297536889948841618012434530537969426721336811685343130170612552216418986680520445368010662086573004529508540934922507040543651442270504328262990554047363602203977282505828184629224158353025183079056578804479168687113056264712132432380310248785101860256504234492546689065300330172088972154315647725650531228006646224852291320996301020230283464098017547803366761506158846401987999613992951720971650904342575236244128672297065435159102042931847355378238214161846375925826899301103022831317544825655807921214094635688161956541076819372869054929900491060123272884609815526237972331104303662071523282820401484702205640251733455036980458781812510662589518026350862674597061925671867519132071129626997551672351787148388016598810502737032543317480281742942312855133852026021108098980536963359348097714217112451547252797085587601865362055021192469772462928410760704242070400181491680822852242556346264465304300201048430834512420169235529698930222725133699078893333566579502777125606093936446002463948106643479693030290471637251122920402432981242063243082947907148619157062443043291214521736605227074197431731750091320789213421191097651276861926847479162675601063243410075916879182290649067969583121055289547661268140373955043141012475748240508300416007637331475440666361216662394408321539982483155920048476324489715598135668351140529574266632247107103210904223208203337635992152268489129311446890121894315774688582935073800364971868432248103966777572747024842011827954487575620429464662300920400398611580598480745828780499001318312265016267349489928812267087396871392379842953111120214854000216386590536170837619650781953764719426747541151952774812038557074588664712673796366732083236226916128811883661552862469104290196639629373919705655555031570469041702976571860694347971540278921117152530619065941813656663310527681399067169143098760127867689619269222117816651409377307530348216109988745704174840636080555929846879256562745081179390167261218052335221437399646112509711964408946479850810756258039106865733063140554548838725643457853222534728491760253809610247394230354235358244832966342271071554645729171702230127366978419445976899622639938025039398452337503354268770312123332498526574621617617458585665324980182564458730183222019579367745079177127895210897568386558992023346368793577547319327134581252225919385871591194461094705774004423890215416467653864490781054868420308725611579406081519632743000521315278849382112630824789130641145473872550903968284477298280879801991815683827863382632243659413480296291922085607175962862839622722103562773631530389554041540087989075993494232405689581139512218814567430122970252235467107306654624377177777723766958756955541588609108768276594805114779062890571959252388146196024326902145929663834046353585120230619600377308766088273122448122102577968205714174919937271496090955559213794945787584691657594034294077310007072049441209392393842066952866658364655202998848186666426183543640841558454473580186668237214008210162097046110500391874772753903761869614805550580418587296622611023365271019212536478052405759368438244334548708912475023419467547429374697347775533620293133231482804380546230946700179016930653811063354981594396458778400157317658872160108626025482210642178834497796387188743207442551032014629418415091988981011686346330747682839298638652984692705390903422902239342671280150293785417436984866686314349788852599916972551998140140511931603951470166600639202135492501746217387726408847134095658400370735835763976654147867409829406591920270766380127799964385440375926275166854082154032955317102665803718586238011363100759349062150052879485358459012209631397910451166886479870837869548732004950198632893237812687610256549873784076094516447565063011473135061436680017503874385714744283747728746498350787162483794948276848077210915353935700930083255971462822489715970742851827725716227998117423057275426774527380757798028586139775747886183716479580454594374547386747184936251985801343269176737105638668389562634866651207333760389362507199825951399491263268037288863982690579088793169548660292511857002029896598506331222349690496505379299527516779172040209860621241203280817285738147104263171945105838509061513782269989256063175406560094615118023611769091098074580826595683159898199680566758865911878228318086888006261623076839941111291085378002774290272806754812111650256224909748555268561976771560774811556064336473297649302523010852893034701956745652040513983233819804332125317023845381938854201185566285992050198809300998229084863309074593023988692715256252496330312624210585803730494069855159164852443848253582841972318642031191121977918012824632346475618548424020439151035072838404851320034116379840035337616711049234583451204952436507854405859338065098688611339047276523965882041611207273977609262302829036460451244851387669619477028724401683866756932977091426593179331257046786077693936702434232351962463689827014709019721714553259947342275283108685935950950558497948942267043118156858931280462467003651206226355206453782074542615082553024769451623953649354385018208882058936210156689729780264663889232334219395697257864380789595381205737848521974203694722104124848425034131116908421181024769033303637710436906456332401036423893207429427839086796437755892218788074674456563273143864884775743991351363865153969853837228949907969686027538909520017223215850377956784288313334325559460310956721449950287734305680819914640293107351919138578700183276380212386332410835206330388574529071235860641234791062168914889610758223698822715420497517097838899106329881693415389076140222685420423233298158525090623041557019244105416495541074949010352158065720397560238599847487958933323978970566013700938942563356253490970683345607755736965321585620628122278756781558997829859524695803415212121773898595937452056011445734630772774950676518741331035136694955010198720798458509938415199650746970208172424219062932725719249193749059925375699998633696332674235072155485685402469402247712301695505902335177749114115206833938938836429121984082795705962053433056972357025544576868351220453715007564582080821955458437582209849281166182630815554362619320322914351119023110595250492309090365649183799797915591059665659270046941775205872229043177655013058485285005612837202585809341202133046758015673322577270901632906002517506174269322179717187605350128418826627004378581906385715915511890050955522129783910359454746489587886145987038334768655441222854777886285835735913105228724895933072180523095075448653825237142095104284614297367715591402347406064079672089981723018178601710976459264342657009060473855186918121336160904682145818515168675600556137030461686758675782340217957625869452348259514830794677587152531653268886641327727847369876479029274226577527814912164221813150983285586839942165251606980030800254868856438356467655332794706145744315727897851045920780667685738248403395164893710003153212578946823379106665359448019734293046966803436447012076760938596940241144270731810073375383288716583187961159010048152569655332855667024692641093702663904350949763322231569542633762475711166478869464387524577335104414282334391395400827949237655558535563468306541578939522881795895610792831878476964402108361005727474781686253398796749729135991518819445809790366684856160832704549845238610948883768972779470368544528498131562300656273694110083995732223161190985193364963763473868600807584038911918561181223766470075053289274121517128811380136987206893315685462122522396007733722668835518131967274491782179053316546739771435252020970348962696875498853350281541294591513938851343605470029092558546235186186044218986855356827110831018706991739722400050132573151087865344649802064021436355145914542210779984412527725497606030453312944813918718537231621164461944032709373858467335705141463967603184625201201379932486534815255267693227059220757405425534169698256640364228417425547753092288202402390331915104308161776967758905036512264959692848354100086059128149109807087781710235263849934583810090575488190596256371712920244089389402386576522835119344180183550408733230832569668699766804567797667397710447264180297522192109831787832336714525090376686429271499166837477510918686468285446614854690978472553832996970012208880094084682640392027417397908147216689995596940827161491647776275506978917753347612236942404639291364350893994758650928227832300475099226930980340138288217987481363833768846902319832602772510293484339510284092320317211276300751902789115009811172832186652840069390587211116250235065925658721211962183510286450087913665375051038611522348972553475771349194399960486735674864741128059669857452853834773665061143676449439110674749566855712046084332880602573527323706607234619317572963067206682266254591776343599788397028498544852457971300443261985988349244103154047723556710432239443925755175979210365798692797929610880956606176360509193305256833353810689417225107473621108026107160160347523761665275002400508532384764212625909690830906799927439515200115465787842929723033003962766575466937363039131416247408021130480667484743861539702477062852401517630264862571963700227096975304132055245260675502859635153904958206287092093520249762365023199517936404490865568012708657593894269167223297722580214949530859315648098099378925333678062993170877039006182357116358700986088258673576619589035724341105913473843656415619431404852625551171735208894503685400453310315621986413508263541910443853827926758108754398608314094107554083630395031404945133745943282777241651066305240408549865271858341954986274679465669374575238397036702839892226220021541434536078832269546768379661679364220723450080989040844813334125967685709182849942018507646359551403373390102280061691299731817215360428125551496291627882476936133241947075162807787956396222989479477256056056920028134979515428692949140478699875157702469074782454336149076703371616404538444238457641291643985532949415541801290265665150238951804624382505754137109918085747923234470276913067085449748644062564360985467541271503998535175604639831891745948207120529719407697487701393482991166682481498082896791962733489138939195303874069660407061655663091844591763649822576973622094474163995148336458863442693656963850501872611451633169962854325854505714273320712787479709022428423502760345053574355031940052582669828286903874044745224059438080583806789042379439740290411524823416657732620535464280713558983188208768145601675472872034974642989692468708375171641089222098925518165415073225422826740822430105401866373644899574941152079736072174078870825336738420044831762065492609650563694773194225355331954376472370935768480568871108000132473412088760932880347788488454784125230090745403606672800971841617291926727887023343857768974267771826978912343802056854967138210628572468257698143392811741336760595310641253325468109205685218331122899217676308397370787028278126477512695613729263751605150462945741471793991377947102444704906512888877875297844473492633860898249486513612845257437113598293807464235145224692729095784930540714300581290471943602139109563242691741392519976801739100724107830471921802512693846658242652032855165344251636222615220060308122638064879411180203657968878128549115323216521612848315142066235611275671144649390268856246642556495790107341332458774482337914299553878696651957302627257179266452818661295500849137784199752833955142986399148396287644735317682552611299070112377637814269096126497056478108799791848157954784520147864924653573635235841231240599305106501179916087990670247046676667324174603128851192159629278115680747605519000756953410246832658766152645336676763629884523112016591378156196747550512119585215052278935583970705065760966059529765837329323711111679307549268091503737154711016869850113081677812699856731161297605106382364108235197189956991563396877034598810304517520861451493601959815654023874832385657803855253890351485235555396450741912807361815883805108038670495138922265788154569738701719292273524767274376076995990590897045653560049356140843367440677232119568834507318198610627766963800436199786080824895092494769195031189670519417782400021647430899529201667764550476014807223870761823866868660687230713837524521004978505749652745547902822533013438157346002142572242174046912740513588143130665574116696271347166947796757923688702579461045630495227630359752075714920150833211749881811299659407142878207237828030485179418917539550012108519662587946055858833881415740389692428569679268326719627661964578041988750424179465377865179010495491978367527555719769873249085524382239705609330524241062772716417594731964837524196608523711899497426938422381719581723193711842412366248865273423587904152713373864231414284228192109643900500285917347068539549978187216053641700730802292308804863974789992291278733956851184218300579014555219703739103738401998707051283012922592195962802837225600294630798237106094285889936742537067399789585017390800474355969690590759246352708289144519180621602043497087434652563716610807925646620755709600712807070350220103769106748991010158085412786349304710236160152673647584758840942090678981373643467820087615433788541057978723667023151103974374256853064595469232095755816710102770725397824491172778619854725836867562642491311255857227142019493163485413734621940964723861991372650411546923912214145955675746993622275253253609763900802110086895243121299954461343370554336706776298041375235241814406793506596016151163628144289153619581776308532216747437073198667526655469688581137449037353032207182988610332176980732699888110267006174821540371260944915812440104402644686039496647861961172570530023107441420935121295373292625089273661753732311899774751504844681486115879910584685461854245164820790083323668252744692423097479706644201535280966406150545153183499867227995858226455906991407235408173791795812194653996092873758690514026571027182348368277887256497147941696849681351005869400847577746033812828692762483695430848539009670809515438654903516752747318534938930473712800784110171941606284648325622139344664240316203246389415129810650967425559714634407288984082544932846785463368537349735654278376130242354292242935150603702212945119140544879056013918638756667637686411804343341003500327642853274294932831016364966474666196879638846389363443080355466136768980527231792718779704189009857313899702073070563992298769654415885047508362231978415952257998199969597163500122877635787347670969156519186734374318476757473214307231689148013794415266414109695249159535980498071445353429239063659905777372628942915281213906890076050007788340649723106319259093253800197260295904910515934549975113131082292360805375355615032268210263203076049049678983989929424220944920557953672225245448571847597259669467643305993256381747817281838818831832290486214185422501412784955609912781107909114203910515287583637126692565698335865431766040670085299853920741713897110713780082967742895662204704860427785196241818227271581209625865991823708436242621869723544958643476035075408558010333817580926607829373548880419579700779555509423535815732383313653820897997856036674712107009565601910842156508875144190149145415828984441492524863342340830306011441017296320425978873154720543108641258079155554223039720596850175878326602902032007595408618666902166162209289469865790889318045857256281189807583647392423314554658731978353641129843441950354339000804529758216058608164259145058081467779813424363268641176093010461136552432153496898553896963665278753152169858487190203235509564391870272981704450903151700241082293099786053926602669179886780849698803282552423298937126719983182074625285260993739346758966086251123270670391045490648824515331927180648987810639369925178734839938692581726541309373924274334846096350451289588182074411144752747578237368847590997334209815166765144077456747536751995571078677098297176345465858338524222531898160270310322979772623106472096788693615455593411495860349445523534963822389361080765668312577686881033622348571379839335423626826962990939325789779278334464372005542081496713686815012085114522155089568692556620511046342075137586741156256742749210606535927805301098196306602427327477285086563287516094127019634057467853927628197478827733005886130963406107439332932464730551284661496526853462433866713399890801146400602689672316262280940093995576779197256087558051494151646977393838245631833822997628369346709193493244702921984586134784521963138132907555477270129371038253636251236488326672139775022684682940580550903760557882348512703421193491183717337224576013141029784241056234620639786061378775160311865369154651064032819317154128804544735472837953790516099456029858584281417216554231504006156668073314378124662979643062711833785169926360377970498082816310260918988131977638135282291964285682566953845475870254338827715591676891852093137746697683100319075758550163297385304969397044174904819808887298121358533487235781527270550025305345165751034143092201048868403922694597808722395941910193365926029774044545386767170916784910129490156874860541493269374950356103775494624592848307485920588670554486563541046665334501481606931383469801075689557265033015497774884719006588858482479069126511918070192886159945351890593204746102068691701055082187745157955020133662595565756544366449260310022910997768982210839582862141167072040931616820649054468078233166406321086905799890578069596949064181121739569739154937517279076304255318997868992386965084989369019473877135656986906467341044260613843249706395303593743092462815075262366572079289403818840636937446527099684443182108773650888638384820379668971446353928605149208845297601160750220545900934509210996858389183399734900725055321678030704367918689650401240628811725094871162438090897901010340107332653925259496645101999319458509041498956636162187403506933968982470969517765089883262033017881361056591959065267172713203788115483940331753276664931024977018214148275525344436334419123465391456069112325309918993034327385828369758177882574469411803123062688484338720728592051162830347906035798370986295697461946483144338289371260752407412561358295634107512512458497224742962745113143507424059242681018027198812116515021351370725319201880574732840303035292064536340993156221632473045925740437769492951910352152778186057543182197923274105457330524078285460936626183758654624836036296810993360364888291024774848984379571437016856835147034761109658112281021920586628794388495398106387314273703270765674707090584284505104842823318382118313766581029497602753820140226733608687753702101453088789322245206333172867324487425597332556027244477800422999542407080790921520371428283240107156287595902581058277042127681402046227539342877364823080545940754627383577956352634669016502665647483574593634435921259867284086249630775279409137434870429326535861604583952559170667047085716173379026675245133202466099670315860801751585336959832115906872324790910358209314885431576212484995322514001443733025826758879144752482295996817114979022237716411092378738093474551154733213424750229033412094499446748966720117747416397841107402161514386033867593932159905980950821762036743617888496873695416614406811880809330472312452944972831873657044920403593245046859604061902535480511922622302663672217237359986118062474359400174479255585603402623632053914550145891695638817082755730164024611004809677285558154584392019734021461734334895092885600052599734278748894672824832898353372946574025244712493333988378883872905972486430461107837445134305424482693122175066276019178578881417967312344356872464213452262003356038678867249957132752716580346610213832757502059783549229216325399622696539270845888846694678379878342848506958790435827309923242779544049790185828912492423235435697457272141474549769176174689174111856271512263178300113372967634482100063079368860324602515485671025663595593556372081970818092456619114980526893866827553017009460863651447175801271796872756302692274835269955818173576930353694142222249862106701135131982809214552842343663518335493144921920857290126865061992692283906571260999483765781309196742197765852814796139800550408302371237295888860804966720614131986986121819657480870754480079863783466555836660839593906827584878804914392051073478890703116902763491554764274294789532940059906601292409956630615818457129521054213455753607157063847299853786129429234647864619154574463746150476576959413543398799448183292393410874775150387934143576616343147329733095621655494353415678270590857699036511870133802203321038680919681771135243694527419109369624040117979187316843813182771541323612650375405574566537472279935200201462354180170981160656502392987108721370623392575988156194511851301149379751440801272909489801767319142608823666287809816475389160390127673001958984266995047313492191369007298203387519967563827166056634008228331099168899703686408125840426499987251228084611047829216502045255281863891100099052222255668757994413919390031200322653229604572058916533891931918501155807175723111347298165561781818252715726893936960789846974722756953794236008796267908430629386661007078266156004183378933704239795068624855795552710618164969126975428133700514617096226236881807258591130642304583567293563114125635427320712170459555594088278342316503503447191872294062745171720910393320205418835685126528179448257598668553295083958928810619975602462024753157078937214476612413032562539008667001647067693371560619556486104149225523266043351660172132151712519750127901561632796265437399266679258077626900097929597128314689832187957702681842447133357063571377759561975956237951863597610504950169179000119134831531492996114510081293786857932113817932179014648259149580573146311784129831139345490268100937909278416805616568087751266348002865130796803391420853044325857931841450241648628283759425616594062961754975335903612078686718717372274534415283170226516184980426524757681646579886666668203787160419252608528616384265870980259304295664501077453284337638177561743321810841362030548373210857848040353401765960079297776111360056638877219375149474173993965352648641602116239767431697056951616161526687976337500232379571027566943626405379929445422847542399219293356221863641394387175687577612759763261313679551242425105313475234684940629592514545706718902028733803747656070786949176693532511532901176206020745645244624038826890777773029233099765843779965774950275480714899270703847378676012207771168199700212223765948581498332456997536705344665872058036870854877724776281423184330529419615664613671818775718044591420322631362733228640507217238342873489258073373128143437515470351362632114509601784373194653027073642302139391362670740812854023317046772658490883501379011075490066763460218882803308593754421981970227343808025474183108431681459615676293467488230956657227480181790621616165515047891608791632103297482322310463888517639481673229724857788380640901117470610723011433768632488207590593251254291353981363668304925058482770290721555496768923060632612988850781913909901954721273238581141002877408617989896580564679062501189527117711278145148859135673071708916732415821900385121659583939020776428411629939162387804503144393252083204551940494584354165527197432221787439122387055490358509431196164388561508882059492201784863143306258067041005406056628287696524076791573506706756476960789573524455230558423398963374203593051619816595855664693504252474658121644417358956039831382643659725671073901245035939679362773681710235144380736392010335494504465353478962538326210397457253825453076125991323012074004499943673000927429247302990253287197254769679428343452490518154772118641161355707791116542862487755062681407286854660683078577980986096503843539163609540741227580447737965383288977821617774182496894121373022438888638079827635188025902742008642520787788804830769636364259140542206340970079641886719343197400800054429996435632872220300549029064585483952481302856942983710483970496040881936445077219491411122260410149032642749961687730236181361176248618211041295250774822073251896083343224534729673591094582485455970364704623970170594789930683591721162098123728705544256474420100716677207242633472322120866354493915392679529493564025111676123925043694606571863391967139130269912531124555512301682171840696904754305266331901638219178762636231471400417015482696966698408662413313394281329540118178542245279637966053598461497543551153114394539218709496526139963093171941633818221811440979797323146825435996334943409299092373997862761466307994045623149777879905439389852069850487906462267462055578007318484963175065748179162820387276046433091891004411106235907033407833396734866729650092639095621452798735200662380092262626198907724731513876220244224127343073873705832754787785647691059024593785117478395764880953528136968637975872000010320715770023956586140920412575282862403744190477427058196488777158351610217781214487616021153807136606148351775079242541240814231641754856542783706373327444462007169307282108696244541359516952862069244743256899800594894236402557847279972835530987254062689544698200150926886082780893259655025034892776979160682406135444638920658620223335502098247564003360235400505710493530367433030467065395778740802700671151467575408142969651882870874682953841339822993880668191600016664391938216587959319142716312538142540056941838098375490373459794112158388551472350350631850305778718430580884575953796805288455481011475259467155413906938459174444399598145344454164141791334702746772216956356251857123377220124363270017643014071199057519296939661286717246398085660726604045573381360264940495174889482407354374144610899070371103761025424233709460674734060581699685239199228263615514760010401488372330708700584178118157216137173113350072714214055500993219223770724008918588728094868492934472040780367924662552066065855550998953987477445536146403224061707957879907305547241221680121760552869927078356358423390700943860716823516218420536810248441265160126619987124545386490469812969653962144054034113201257721242911945630214761564990201686259694179736330490281893491531811762609763261620853886866239634337608690747726921323810450591602199748744046325307161330007041881279128996465377011383603934775559833037956145373169581524202421504847779379179716007552026257243651354379183028487027817494411423505725764350580729990625491884742913079536800063591856125199608883894989746959147813652543464329487797557379509890255932265978153138812982748272711521385420287091867226254923183566261424553275186822404446058702373040099016027923570806646990930065270987781691336134568003399368955731227153794454986677731416466941585491006999924088286315540462493513623031792441151913853250339292975492870775252650571836512896148756221864607926442506663958138081099924781878913305915199926662274022212000223160344514607665718441827417956754562444427951038383764846114788469821833412481804827980972788730027077491174950574278793573042304233522727082639563906085328243203163969939032448111470000112141125808131429805701102988412088697880662315157678758990461573483723090341432464132341074561653648171509520112020529595450834256505906111027300549422986087840673997075523741338101802088586130446838385251081422389932854634800636448734249546529682298542049217134850166096586496373744603303291332589726398271018735427929700833897189314536855242531666323306720479409626372702602418015865640567990544474656844064280562835369537445228133989051794324184718369557751115850338604780782055163650502397831936938143170656624962462916650727610619880995148059437232964754798482667828489835492280057576317709396287668409196205295749740998895480132627792652067689284416463891731426800432350112884583364774720970052252689901447717964666540822850744947634807884008967223960497558543127384238536198456465959261678859335134181161535634179109777172971841917622844163320671961959124734529444535303099068598435563483055197106204492153517748527286534675651887475462852600396602358583391111302623336757184236787245474258824946542137090478197653708176942370482440142102939266232384656813579028887439615521496688791882821955484008564080308541118832073987252254996844758323178675092200254246707612362779077713510451226169985955204883703044818725910693192899260311220374560709930760575025115525752378139072142686931383050199263477639829510455736170339929465115534308451231805284886300290312804818705486856355145512633434121243500466898633780949535173657225376701054653177695391078744768689482484258172171582145174854642574384259367126884240415476630782526965567100590048308469417716280759154011993138793406252875051472438363590318827667836946031648482937209840824584621768206616201056549357662035971169687950040203939946470648288324779864447043050697391220836173417903569040342672375197254991865208872468321717975616904508493803336402058340879315998685157083294465223675116417445714267027704001955070982724317016140792437130232796561301468609410061440055065224509547021052184229199231983843437173964102984894385855532207570726713725836402542283672739764841955978108593484247406405606287392721304839030392519639046984381873028577405073790786113104269420615275565358783882210112537676845656661469781078116585782617519462658835087414640847330898277572172004518005922110212081829550740932421773324995556915758426660329287727333600033460590573795162297216365522322047136758955992501568156570188590839714969464707306971502911645424877970681526276044554672252097019699515877910817105931229748653077657990149963153919944784573286123017688338282847205201532965542407997499991144399072328894119921591458621554188321986219464995006270586092844338571290438623878850805784029681047038195649970017202763317116266127386790309693354424756377700148170312858889240261874957102761700457064494604071847423133458290138597323004945266413946040237261672784257657247979602006191768740762315134299414489618796009607645018594728571295902521062660457201457454609942480825413176706041966257106948529138191881637077724884709393962303315903470848062678598662071138717625409004844295841773906830556563626042694057615929608967165942041776136948420907854970169972439278341214912271395334611267552124280303448581572643142383306872672504842859477830963002058115721302732832533418235222252394788917691203442149471820096512987289406260953682185631594299204725216417833660251650281043055140359541727362133314570710199764489579911566967167627332278345811522766094731928087113614182981561456299413449284760253339098894509057542038530138028035172777189185865170957136503596004215687299570697008033404980358384409870117144967943492855527495347205162421858667174879418315632533072571678659286784804200651363198527809215065752751873310983321226740000865271179836456368295460311186440812103425164477472237037872587121663436717344432588735443364618241616682657854857047812393331246112064391009866772831198621110768183843143157459388230019200121738234910109729091033917349290120815741668904095549554691064039962786638238642672462505466184232340182290977926791856712745843046476048970121841048742466261368021186711343550146876318091596796255447710655549889670893685273833677048689909303929758952300401929361043068522051639595291444310531244052933698039024863038895779874277752216091715341689776101904468285928406138584187335184390576811394880651981376069532716569465373313647885572792233027388694692900856603729365708458871798028023098908414976787565698347860504733425844082610777739309867084956739114598868168742833793250646026968020624064157957877285353666199124338046173883479653215479152465789584630428863491837816140720952583011067524320393829147978747735673787834743750355164923008844688262353143478904284624639745878115591692164140295414036734019427211081217764634470041199416524232886251684199410232227679205998526723054113582313984300057872456724066443715651331509405728667474609643846203513055031486544253716217915309648250954282223827608468144583897027363436751578403041815856513137142987004974118277867301049826178559059742269706667993753138592935634006574825380756427154703311121562859602906906048736583343726956024032080090490538505556586466224941110798174993826142612808988760950979923402649195832634642302093942722000935448312890649516257390475315121992118332655728737947552163359307185920101629596733568326109491643260309425320169363509688370965527067391392148149546468328105123066017179099755324279152119989782322481178855768726529627202203941778263949699178696286232018593696272786666006449518021933449361905812997283771031857186031343898242258353036349524636635585034637371177995834701771218193191307184596784949885667861037619542874276485225721985461513739104817916090150139111922289725175377707472893834456440479900988214101210877836574523231544146746443675387062128016648079366484202521762645793582387918690487882208763128560161773190742851540763551163012823516811086931782853709193573464670882582241805152993604320445530957468515348075090304150772178691977785975617633591171733721533889229418371721146132395607207455711303498966806835878803003799043822740322192813849023420191540559713908942895905141395427098338829318838553034260114958303580707395489595898618409853134378394064957278375146010661726392888260101475324336028486197173070643285269560858335783716341519879300859677954764690991394117180485195904118078218917842108584584952571192138765888796272626198527997163025838780195831355114182619811051537731808161766304319544909040851201008105694355233801306280753750103565099890750468058383354327812413289636804805664603765050275304149066435583666105611737009630111184117281284742385070952551661338744074025623674506268408160381318198301092883073375339054693533228670193526167567564839908095944210128726446390721258068794261792481211811621263777508812745004184103863447918693030235925198982047102648869691382604352965748603182339622380161760702310300976899767774019476340097949679429102689433000217337657087692009937040270218902535047746101800662663669184204628524147839920591813489173270784211163065543214689690721394422728312229798927772721923437673802306113218083492382268945730143867017035666214689673695777070693676538568871495028401458836073249334878231981363782210781624830710497669738254556644819360908758045738846989242859546801599032421529681299673894771762434620812317480418331868344671928414056778868917629276924669622590893518287133182855041072185153027054035362909471901674108297551408076950512645764743205683970618053820928982037889231289217244948137074204409575560761021361643202462421702934167334265422918635978158779475549437217952495427589539126637605846542629344297720942512963610657423892913789728730799714724893318623584043135881161097064966765175476455106067534739761215366347706236883602309568578918209570416419558086409734633986624601069248633454620128494612064547469031237007256318159823387787603137742685458276629929617289808825268726135188007612167500076806556237643541239110152744191948233614547127367913086605212534403369472264283388003874196792467008528186190341515925016938883226708027350909615112870947354826885253911127039808386371612853225409349918689663837973804471001700594223530998441104842310710679560937941166593116238862932132327080958104649329744434640979789812884304318982665513334642005541388119148473098112797159582579202687968415819497819055125895832466619448223187233837028724861485890109147390603753318269885102775882322291750494034447341252369904795648178722810364118882723787889753948913727010566657619530508183955311623142756224689438682175415872909674861444353336665961221680241960769004483370852266835297000883346179842721342731046191387572292646106334870637617810597259539924344573499557153528162669451800734734051515589156014776532269754606657762823637775552617068135717239876970589314887520699622822283766514125971987801601568064632967798084123746276152083555128250219626865976366282596841985969581734386446387009874832687679193132950169399489005073552693484783220863510832334920095091364519858679970827461866839776328186558253685385295721470113202394129260972086020405287816396844833286829577234190081107187844837396866730973158932143842268656468128301263679835044329365903225072593804478228564433282818815721931093897310652901384252942229239409153163548556377352875543438296736363258358119365780350679800596958022680753985968488911878248208655560898327733860331215797931405107791529791581096040397711106891389588876658342574013066612162716232385124383858565485546979280642053167722654359424744827405524603705492026319097010655705480863397966891482882316088884708059950058785493006649689209530221745372304484132500739552597919773493609560310154438890573910220732010279435240373782560105494106540712452622569840476960237957827078414545545248630181833924814289453038876891866144753659396373864406306815681213162893741214630325055014915281906736624966302852529823267755719865479272908289030651190335975388016417795683414467320970267885710503564800262980095939907089376772579842523944665292729217676785257342660624883423308842696603020654953929934806252823569861274038286360109290495086205585735553076883989734885001071354604091087779410619554978283567612823289368485620960081575333357859510371148042959587585548790914772987002898194330989864439638768137514151984250978777408346544739452759539289573316482842688908151950656397435340845198088732480242320895320805480227618251093390539340303170679805016422378683630259947328474783780874036009686185300195085083145046655698937416781647616249016674877732575875370957808752405469627384707709249128019747918542113346294114441905216386394645559815634221480643122725557572833546134329929414152976636550966578714670736597496621253778707621694455499605382067821527862219372565725939941699589433009655550193133468442960207876713719722032530798894340880405594940473987448030432649460014933142052763786360087964128770687017848755185263559544344107452281598245750819363382451944043484548333088906481424880079799235408030994236848127716324785065727336185888871289292966529250483486752849542145145420559702854832946637482305243213712772727891309078292381050123888300243217678575257687626123036708145508713775428474161667717787292185162713716741962229405918905462524101982428958428936578304858388641011075570676785899991508942970883243357538436964295072518171341585783608942062902588035893751974943553092241424310518842243244038526918003264143310700083546838882522753519483847086739937461424371734706835681704710908096365311054046612085873381411325058207688842761736200083109363840792844306279199244331756856984367378261553858465014883167886234401391783227178178761173514008518438738695338719507486866165360907871734009020915216210931753086410116022311007326940470529952798391731284813316461935112575181182403214211001552897494424154103403583980272443836965432743105528893221485770053755593246086203498660053771093229617670482451694328456409398248575470400768005707431599486297327066215425199527045079251272294832023862836362144176074383729201645332764651872554224042645615518706248510505296299117625736868295428732727827281573091271786558172340347759832093158900018809330659183277439840587955582076125914198143247085731051977752328341084394932852471596284798859778437522280923623091806349439542450283308266703254637933616412265484209671689214780157456589620528606674040417884867814699178187413036337318055383716839696570727242776854207375732606460447508632726303571782720751384523191467434276481314355237623638595134057490160320208902510699931261940171510019546003684237228936045016431109325705639474516614159074871723570269386216772488560254125624321543708602003709211644464788446396906398340444651478106350602881786837068204187003115251822150207793103831423692367028396787411520047304267686314224214543507757337578130293859085295207288149165313670299410771121176797105088830169203017113310914058149851509595999983183283657308609415063120449778246087636995752667235200850520430852640594158016368031554232000426279777108245511883708216226830156111602485027342140157126744760507162976678501589669276721074910883668144881319242355723447254784830079760163096238336585282700474103562099845098974716360255708842395366420968481916295928835937640749019184584624520703617635731897513772400542073740639447080644689737448584132914357320150222518447385645572935556751789784965463936832012775098787391381340884100696340482822541053742525184550838402081303232857643287714079074750696276306818627774598321348936337963440271580946927784477100202217584228519864495119012196668345785838896209287450095098497646866779919646524614409267839378626170452120274651181245369023068944265680089730687723885679368739713012081039139737506554446971479604890630222253482122473660271790057194962335625455105849022370802042993707682801374603506803494761262919149119929333917041109811067884562633629247760881905297873048446924393088838459142982940637528898011294352086336481289795662893925000536622008940411809520442854804295543044024279870419363632633149736439493600298535989819205377647439276414643593476048109529530381890311720960268277620445867735231367342205876204547276469849268268800656336076208844424535339484112730153261461126963735412145100434674794306884309724049308281116664482807860209493882325279331213282525748593041058157305823291933640296984348444238159709065960328456745854809038670959947326073591770331784590544581229959639721852936629828552666351369030514915345139197203961360344251947099137825303790950022168782840679977781091189220653643570457630964166689833738360221754778713663565925398936650437213380775533375254410937438936090408457405340616410892563969962085666296096987417135898766319717455711735558534950539635720763942467594231837478103273113832403947822782787253594581701968533860099819078918165116155283909867021149538656855381156066395285862210107813850163905937111668934909072059600233057924652288099440101365156938132310080238864106607589121743324536421754540969735376255908729051920932852126681657017709095298919324059797699884526592838895278397128967279567297212040419964740023840454111524701662105638450880024261567965627967103037451781963750736177297267223979986667280728631911138268146849068900139713919024692073748331838514804270279103530823939317628048768756605492955304921225921646572145499766784955641529118894342353757372155287886654667923047177494659819163329858477358628263675767161436855517196963078861304089808275705867760611548630630583823693745243730448473425781362273649022897359131646897360257876441389770431925766207514619030774972684025327620242172903587958289031211507928540945101249853961400917799414532302667052403437352597210633322347026438812591683051102723062770079593054077762243639328646240624560928435766631841325328273652313566146708863314277235098187209982910244623457425010937570649582488935748613532261907220885385343079193171096349381674700779185061723561589673266585300809557350615855414522391823749075230752695646704983339031739624839410565859686044757827047243585187767651405675230337515844049854521310856245973551125435554721173160902782610471173151874514538851720633524724099163697687349065787825233020530070036802615313628165631988922580259979928878594268911978114225292224326419071020142189740437642095391111418144459872500068411156147873669974636936422816354506498550644452641496144592428101504488994496274575729075470912801931785702334721072568125991130137440800476457211437756132572254609289833518282219615055536559878332965667346727188423264578805829739709095260610329854111989696786745819201346906576516347676486878006914681726952109310512913797199349499744669323356065476642071131134763697659629700862851764846159388748686347598775258188353896815553497353168761058748624937739374858080455873064156132336583331392589472550324433984634162324253585113363328778289740265866961262197346591341333876788255286291503398501892924981260059794844966488274687761042147180849540292053949459025537379817750000477043978068950252710475917967489491666099959450312379373656777869772588601462673895901796350965866800401411084208920908927076362732759871984493215752622785116331067659102337948503801955929584929255892584668762970354614894310724192503147193698443306375067381289771651732529681314303328921621104081496396914333760375441348623692038340930203585430712786935742962514449949213801127126349776096035334205045812547646124234833029940427743210998267183310384372251868443680168756028249836077185005631202417129087397737950187928243901765200396701043202431407550387278256213078516417238411981300781432862151325850172785358145857018968054675544267253733082010230995656210378756426483348245605804509326669340201648077224766965308045015568051092582533658353590653226874576187637888620760220314897433816387229655881997342294210826820141415383238954519688938372753934358445940039436150163587818202498822120759460540534879198545992325179491885379966682446884382002026061880828553166840415373018314233142143326295303155981322583361179664286639492357052049581991685691752232383057964873558849975271382671146734550957389946513686081442065367881378369622085731917998405568161052847918895799578302120842199730276051274574710778954924548531390723425980879379844280196713883816826202856766470016695860011825054163084491205589229000953476343438620599039441362026965119920181126812169458349270942280504275734849720539155739060320613372082620499657690304791685864694675877695606423464484100386675696954663265608077516173457317799957844972819194058814018854388453047903395011001269170274489315025037700047720651907708429176343800515642497503079734860370220781905523274005033667386580282577820326797251585141657201157949309649166208832715056508703876438082744736514861774152041174356261919283147062716436886992869105893686341612795691019520698038818787761159075927435170834395748187199150092813264481158903236317901925892570317113049332849732807704912665688468897923600651853819992021479216415204684220740433839953909772015095210192714607266052172425671889719165455993520045827221926987877703585657408375264704087360486866119591400762052889642177539789295552006650035595202456890499532815894146193751814807494431098407148325161401044971811907212462047696422236282570412582046437451265978811473971225833271879801509013503091960046136482625971564739368779921423173735928856347148968266244581303489224570605742620085184918747524876208812460759460739759324412758243874917839555433848519082210521632847726548029981430850028882664515426907274381025577867784324975042412872315770281032444336213799002211516304276669410998973335908636327169749407185135519314072248659517798795463343247051721516217494200254158781697892016835976139019973095753759923207039591052253478831029204320359102748921167356714894647318567117416329396079524333458630919794888485615033796125398310852730870937976888415786974575682347879271268065696586219197389935052939876040712568461668153720307040495255607293421955665734286500723901950287655977766254510273002430112372900897043757033383550463886845986130351250996347221247247126315505034823788951530584822356476076392632819588053357602847280447128938331260008157522466888870116799721161943213782851874655731778746493631131858807479041335939673670264677807630344478957187490218457981098904328948202633037071362621043052252732154463950261566771787529495893886027105942166312641783496508539547059803129797113272206336610526814283134993051207173274341499247489795060190409413851646784834545965064904312801343934151552272864921201970195676526025163445404313192014461576492282137556974394857511184019653412880687767325546931563032140032974049732490426300951958728108815941421086100562100563796639487713929788197337472331089931531500238882122423828249921465665198003624155464952145988201050857822470002136954167637511264021539336357903458390037564444914078272273706174108462551968684858248706366054401210186418537063221717907950623701394281145809554104200918466036747457419072957762930831084796114374489194667576182715883128024832768930272791820641630070186587848367780295803779692424390111472369124796416557940981309389569236866659324877350484694327544631714510621429927576893291126650376426061829443997858152835543630286579149994855229826624874671051188415574007351942000300974653412583546762908052139372788338076753910900620588282185756409695759682855844078120613354607747275838603168288666924797005094332384806148910847177646109693896891425858957463078740876532406955789837573570731339296578230845423088024711956879665996854985539607751904251634809763474262674597002635407266255724660145469710022450922171567133836305778334212978377046048274327381803400147086650914294584565500763216073795108518492861081236457164833103751541932492496510411991432912488281802205957546801874734335125211972333220692497992780563489359502290164917599408551907639744665012165277642327783526382545062381913267619107850335316083336642556245018584152832613582996723334453251771658856690281594382879449418590211792568204615752964746098454418241721171965610848053422757124819236576591654683168435615970148414755397570572770197260443553025952312511382691083288776412882821184559824701722301496393408085261684187661200543703993204352906813319395672920753440293809982551647660922547439499068919913262347212377887311438035904593773917688482763358357759737381854929213150732983695153036717814085366201134737096437666354666922542564128303540846150352079698472512937726720163423883186921368820693947327770354419915591936726472468483269253808665916334801275978823521925733193009655446347783775946748663723269385403395456418712719560894999642648380463890473965804503965389121712488816184023398291042824290013901112776840098162359810780835745768239755657449268768429018454542117614795971318866592745252853130163924352684003672417104519831866566185262343838953475784708342652168856432227718304396215112665962683229268946646380461414976287149632184104319916713003153739762570448970570700906622375372908839881218445039935648685640479057800191277046440545236893575606635320888801094350314034144123819102573010225932907929450518422742027965708329853604439008446365318692226019395971520839286961893422365679564196636670514112934287570367457074164856988640308454061156312031902208955137393584066013540031141212921255527075156798382608387764637142931032624419246198307053976753932691748858980209474007386529272190381399112047653838325242333543365250269264702241373184777296532301902829668021108151144072243757826675630757588398195270851583849704337064946485198570420942462278934843074000288234476318388128182987561623143334154217966542928049366288707571818631138564273201203366878957821093794364800284727465598945782336847142788548650309797274791857760752261179251479156154938573547769459582914537330617788021690211065134170439670880168800977509084693575788380024228211958708226042339323311044257727753992481854584591009954662805666834839189822570166249285397622508025519878496920001535320078025485932887647638380113883839246477796894566963985057193018703716164686853975802801846063807248166951138691977482804933755478615686117327936866824164432892543202652295989842213877260266609433758484830669537622388394501135591644599912217584213539610156299823633328144971606370730250772057165757660349769910921647731713358650277697207279793763873375200247377406667060623778858619595784463244070257618326344204951598069788965749458543871612963458643860595351107390973966379108367374710920580017418849942178536060868338230351028634439521016234389277084464232790226974371780837412241111317835496254133642690903295423705804820799889750012875402253364395342672233169338881128483821518232229408374515077833612581748127075477211828607033347537963924132260667566495869618472054885680877583049548677049367617572893228747299332955729522766481283256964102004275652140763794914690138579025213477066151334973301366501755607102883848550938331509768857719808346418638689181250056068428771025472126841083635726847606300348870898074588732927032542358177357440464020135922660199188539416407451133333483800986273276186671595654964871447013376225622454192027080571893374073414359109960523763257325833971594009036512439310330362893738039931582822654622042511725909074030867861169323089421941812946895633316090049130045165520158230408655435339765894068886987161360905575332257344869799747819374376163371124887938786033766373779845953932522533080793142508713131660675105639817686137982131638521874158483430942711716385789133114029681872057550975448237225980166294230368371275603144461113632135547466572833214681710704923203114137775830760400519850938430923782441673297249027392392734432925714061154689770673331677252560134937517979100201167154868836050473260594221878248050475226420969026318704135883396430631635241691617682344548148084601252936401221105428026848316373272796306088610408364190060110713040911200318793462850348944390442011701630715574926166890894670484214542416668938639436138782960414323387841731227379247885959187903859369426844291047278454129745911737608168245283634286472375362416841711668378477414248658231951148561957646703419738855314880002121429047017088922519878282804418327056751918817255487145463761151592124118826213835138971329702515219031781920377585806047734220359110610516512267710616935502577460131454698707968235446771716317332236615277416418618718789357755565146700458231549668792363007896873553350904103304860865000859646960531137521659715604999253234553506921141121443209175913216366784701372006038610282043071761035346960390410461088472717553251628116473289140501139614276777657088558756974654907164189303948534545425824152364853149402131001871965982332899369281528657413081098718559076415065826960988026704392095632534354933386096958306346301958614039837754624028398371119416934899660938757501421249930420932458934479609666673737887494034930388887269823631000074374986635260252214650126227976914635447703444094982252426817327593294463943708771095297674487752885285407162605997106234832943312574986594996357784901297701271986470137597438249922487319965439270259363776058412629048042832075136625560065902597775956321232852210959420589684902447946445332509700169303413055853108907735057389525461866533463613575508620415884484293701392771536925662244508433000638878098939156263684363169947547884541740307771775269427956295761316585424241398322054820553494191011965766384976645617421495993508569053276596850588950900416699795294454248501590098651601498290061302767679651397396325592158333809455060391216967171014716147535343246806985126912574775244487449463327119930115864815281064789598742665147430796461643415925605251426388353852232248522777116753427119423906178311017938126580540569002179870310936745554652756801799681706415040111420509503382799475391310786169319507623381895702595259815852379779291255464175886285178260953794729852992316437713080634673941255328868000321976525169280651885300978225529184883058234860090051259673166375873794845863988011116890622023585721025631235531806660392916489670880976991150391758677189239375934167695606973439299805509097537112596288606568449828639044304461845497138484652289910806366995455377951036965863077590374151611034099837353033073065378478459853766173287570300473272922296247951408716259666962922556507291627470645653759499719185635756386109450478420115410672522023502718283738060984590182086133210851954431259750228535804863599471458934906687563179800582202995282416151324695870605069733833839269805472332608568659905188430120255629845294166475074274777643870728534669601640046372269979340627543860492659807877219611047570022747281775367865838605159250265024078686929880197850360504347511110297987838919662076443793691373737877768039922631246899487777626947888988750241503992496566188526182614949780252018098458055664560100278655657708126430749289420450578444261957577805288947452261874697268775853077324390963663626864622258084372257647963285677488338850404722468771363655122537867721739451740358415252534594770553746943029174229901173553313065076431333787258887374174700024572823242374664374773759422789791766752826092694485511667011963264050194477504824728351727066419463121214448066630386927096458506658647364779141368356067495106726372387439951195170464459078731977220008435886523812302799238139240686400413204828979030648127150626335084837537237598934007039562021038437376155428676271617296014394753922393928548380235365126102200931834640097990529664510729650867241344582335478807336476800850676075194613812085940593976662318149091442982558619757102680282268173015604228711354989707842031330756657339098799497832294802065530286923563907157730162387541668479537968512145156606275258030674710270035388776968873684394358573326809699609103661629284553136330250326211055999594887361890820493993322089818294596139434466901392419707898946636491446918213004357231723087059638750507675550992499361808179377257614907949008140968636195661465709224646200727572382018708643341989101543728670686779717312591386056486014476391956475336113332494760893956655445710814043698183589026161055695912998640850925501397732974610829236557554165890249681461928167010143243540488060705845239954100171778686542225066344532741820523086357367282759101618631751975202775112033729251033914595071875268321016985026397865404631476760720516823726763247495019215814865464185952504684486300654319770752664789918530976604200087488849464221536346455879904631521109535747476601473734032694107757213519388857188851336332519662106876763318465463688754729475149997975510061002178379241042157678435821442976622249491337831209619159540620295774115506371098245837703909317731594986403327617345011252008438117333730488168420211182279769740859581239364534065392590754255394462726167461801820041137210561962527953226662983962363080700097895805473388956947530340424488207770231998646862418663820363343482443362464757465417608037404280476203094829729774841214307084644194655261995993834144616347628969839857683065798498709939685698786847306091615856999598866452071680183583022949033599337446798574961815897131194246453548825149227742355970260787805214643930965462676992184156818206454110221166615387224569768928162997989832743381170040610343570320711407705586999572726656699177049406282341159568574132456112401954033141881667507602557983172461534419504109410949180606779257532115020179650854614616711786718254037782835160206070193121655984714714927468909698510276243159236429812843612726868724838634213962243091044747880239265311820042241641683588831237706429362556293902671206890579966450911262311656755380049263611928117203817307772797230283294394690336458096166340897677622861578212169122809318243731653293452003688276181092057140031248481038623027586155178050609787829972269942194144155410580553847658545227842319740729937189661548921666545896121057179950226272563841573288207430635227107491190118181269912145275283039966662888313870846509090577097316144390557133958013256785639670866878071961574111023874971106738979104412387874035385418430521679025229174327332778366701700553336730627552295039967159026116009344163814153204596001571955181270963444651883324750663608833337221323761903588091154806743377179960553181099616631287986526513920403296288929507448129966757133317122893131039877431609898204569288821542225721781900752867039221473515803331466777867508641721694292448091241769662358984175725354843758365873568439101872979221349153139598496751248948815220803311614887593786327379070291426801713217387725426023485430362007196651696734570333377792913815944543350872746865208364468282512533347923404153057922173010891787894589110121122175913860032360176767111612149564328042490801719722734218899424834828437975034630678525657517660289276828185227965101485815489704804376122344471445995893559813285224767042270353938307972344747656555090830827554840193919973458342688735517423020245192424570491629573068051911723771391230387987913092055620703723879890577781785416826290757721060505830705129682261815167451931413177678451042743329551921186992955268800853420078634417591124532800581788772933732303892276008333273757839085276567158297361073830661837419681625779343099649123898220609048880313876288551306865911930652670704342154558208422765217522311382744394643086142615948906334732161885522144225221267271836159273105133899677414190853500551932981290540938841300229890616724361685954577877904890297760879474202873578630709436689536707262260542889744070660972617977560875570867919853714357760569514109327280558121878927818023391788650059163798325674266273699757170698261621990658273353571868932360140042551828022731285870209747096013725407861906310033520955906829393913701193282130370896014041228470613387417549714831724854451422797395440927240569916144514401944593271923895564278197691687631082933702093583596238427405871597098757959939454094617646289247841944429406008191396908955461043743807626021794497053670016505594723800008950434852378920379524605906025303433206802201835331068916480866669265438947277630870273557139512558002732825193978356906148331417524361880722238577439758994310753478848486585491556976377779216470262706744738567118849661088387557945287419887023866942377504863126293301548353526272230503646435382191584943562618214160928056387023426380432736514550522741258537169677942338735912293433160146478464290219268451476812289950653756613121294177195933880143130267989640197415149704766844843324011986151050663058100865814942506387472059530891823531392754000080098214096581092801976229032599489256255337183583564434591077802038762892987100196506754388716863203041788511014790440486432928221789436743771763031960250279494923186041961406882491739184625509974132355132383888026289550945620463789553998664671915405858438381655246019696036198850939057261273746597518407760407678915734768434626294097938343022679266389879058178601887872911628955366456624903728012928143559344080232786379069766662023002784503131777090062775432282058062515845925473288658624136909535391705028341854432246592862942978919658649574221378144448116048207425279577041013336696675582609872179790405474165096429801725350798713901776600797858635769043479069212647454686735097473965235907172966069022485774722677513210828085014669880991544516026955255497410852542507348326724441029117459842068199279054885212168621020485358411780937505068726155486718440828651367844437424841312747625858705732372527136483094839584516064949617281498418009988832061728640440847662303395404417656901046128694192395355961335835331091999268187983103814726641264618296578226409440395569483758082599218028128046569041165066542460088775376478747353050262559038075739679806404304614648286549517735241556232338800749477988411097720371155289259761346679349550813639784279237804529588341994432207907383416973113507964292013389314481639500733652271518241030522126342767659498797614373915459319706084942218403534193301778438201271479053208529798426337651872764530724497491781862228155792618965039981062636526284924478351359015312179634120369666179947471857789261577900507247228909512866870119915566945819410214072925417920433877493058286321222904381614796354049992528271076460443943727486129732433150007282639758386018981151101085839207240937292409310766754297686818074383274662216777120243664438093885289630516129924972219111848510541567404826745566740224347463915238405438652458602163792346323746398472654551056142378397294106746738476265666931306585175935226244050369005100085220356068137276511263400745068728474525264653302664606321537486570921140579785449669718217338805595756773754305514851052455464054566976805046541417046795427032655790436217202496014316597450474902982090120729929771071076400904132801890706074578527882059617455709056812887298965997876465507473819231209837999059624063533263980901741201274419935764438195322870575077889642543614581700148764617556317162394545400323325764854894550857929918304469790240782847391922903756248123462627336684280441760995293176177334149831329624431158043772793889182718754808920059625293470231489653189137106466919549681530544209460784815766080462879572606893134119187778864140061982123972155732221724629771986167451230428951208302834723699546093589526310668913131661085449411584146459771990334291493539963759565880120940631549021912095595602652918469655347185010223232238149415413881940303626388847696075359139310281928705021965372511887554845444886862101030862998265288047336362733123709960411673059763402380051018304845165561810727453034311663621690586722583773780512003730651817828394543485361672945422911243961837194497671408671541511181639506266978052879824270270941297294275537743066525698020346089710476461293681717008454155843407639844203301272453785051621054998110514923324992000801923873749313082886474923342822169218142226810438429989173276939072962701805520467346817459701417151129257439178517583800522489011665366886577875044166485712257225919250687120708500349713136562360026314988052118994305015607918039717228690266317224430839282613864855428786508599886738070828917984820183527757683205530260897191920943129748097258517537816060876246330058510309033800967141651513560270832905187325273963772779427998412024529727126100479364229815177107438237564226259660566415390072161986113592723242371268832137514637902968726719713533300004181358938717475904866859244389230672676256309008975890882013524005083446534861436102512358770724820751762377185669047025447315520503946372832577081831578742509142683007231111902255887888891671863249692224593552665770228068712130401504706331854014545757437673335137877524611870306459733735353954849785767196202184422580998694942440551039828074768466193883988235957418826553468134665462134764217808515997309011669330485287336700104943714817762423046102848500261413089372684418800382607011464513858139160506861896370923132380892691866749322749027686273473234583626497127367242088713000500490835016907459037159363391012953998418923746641402903196245671365236608124269975430474444565058542360082984368674704951388398394697701675284972097106042509672920060636322477344056409584730794360512771512471450089534547195970766733031989887662514958855631546913765753284973176231458663245347069987733349640186268153406412823373744017792653008764926649350763315822270515995758784709965292902239949883955573044990559459074694859206354604210304239616903089804812048244348373649317271410450108694091766109098187439194156477194814197372819890137766281308322817465102481425029355915606907959354746275614155907696855551313182197214491530876668333194110060059020528912145136942741038846514063690860238978053059602445340755201160260969580013338997979121009282370016195504616767450761912434702489737020876052881235541078471759950873242288214926013208535098997328201945303724428371460476536250784077104401255163285124401819670882733883729247633116788513629263710938617247035001461079728126910481233394898052339182632914532531798239316228058639722263185429119692258394722722972086379111190105259722676986332093840727008032949630649930737747621920572056387691173671300423815040940719994110116531093905816842581388015105102283509609578823153243319931758129439651400778986845832229878213372123885771648568770041461842222392613541488521106530974963621390928690797302724802080624296185374592378514806629705298419914990313362459013951430147613431292637766400726135483536413475138094117808000413138200133239576581153710636086791263638072672210352741530990140607250220462538146147540230120025184765009053856716346249563999807919745505511486196028218030013169571026486008733017429039850216790878853439684638320279678953169267277021926212679002770660163663233408102498414674526543449486787669911634355346504287240446482131731916466773426957810040671257628423059286727933649026163005877402160115234725030724011411054186349072787266031704904261477102885299059501329438594265431795864084994911640483869894510511777804335993424036027850580132225041533569873772106660910182524257601164836898580739447874115957063372097235769993443583696507831085744803034360264237622484023215258784795288525892357305115592452381925335807462564431818573627077722369899656429198802692724132804415499612807967603082035079585036090283165606441131172856132786598017897780430697375511740905083680939277555696384842685218042128247345100611623167134522496186559182394889226057132097039313550324659066533205803096719927675104420529446072916179098585357687218627897195317210554182058006597214956234101327638849512449980979349010336204963758053113434312863545798418457245499530935859163752922515063467446159519278978260731532051759733541936452488463520756999658619013894278209282331513141629150939052458281633672627902099364394215738043663708147688841496644708341730056320667005804551226214425435332232079916849825828174507430725255862974162056561364383100879715989215509330722292159336867312783233047504420827989423333441879447026230611783311448329173622530169964899556432814402340787200247364402073354179944991975802395447468112791418211896764298626414939365258704792268079296061036484593717290194279983844715824263413550124044614004823141180895272584968426154817813595590016230374021986408524744559819717229183527768743015483192603471036535988060391527162808028243865814551663693580154576990826570076312420362721214072149738774763379108726406868096975918906915319702381072320841023499219997254002116034885615270693743368677369552228593829940050190048674805112536219315605099778783327292837860867433861750147559079506745409947767528210893211248594574080782214853694773876383558670936257620648363473206238028266898519306512044652449718794966244924392822628674280806913381276169723815264599367950256561531936819103772306690204577369923259909988850926367480049709208211212276814630707459052578646713352757035359885938889270230303094541108406063688884053163069435528919311633299661831168857990932248671634907308269746896749888242509073093924229487821824594444960623496996155196756530058931908149884418914680044510149214191337125900891090004919993723019513079697872510090973039019200114439371891534558524547207302960439141613693427172734805526374746648342338383343258332735098352878066426357662429517035767731768849436507191986205595267926452986872140264804729767668636040153235247598111452081826216195881517293614538855126112054875318146681449868433204517450277739378905475029010577583132120460913356778105176424928337400384247875369979230810568942621306302705468354082495284679081889887868724859648366162878685270058912682847156793247003063884517612420635020044222061490874849822835534702710173846777673084049404860413579068278830567039913535428628516309117714451549218904236733780213038528537232405372544395939775165774815967977764257379582734059199099134784121314308703744428575280923974530065201833586898971820591205739787016232768659069871584854409152922703718250159457916684965688758943332258746189900656756243275127970438442809253439659409793995536181195712598629430628855295215096851136586823069651254610817338116995278611753468176530011396754925313639729965362171050802354102821725640267113145339809953829717129315376429062272522033681197438967582443741449998617775079204545610322265220567896929931986665771730633787545039731273759083507474035844375090442041599877209278918831613567109569015636798810870282783383225426603491445999512175940547370479764741961395255292917597536451928314728052961306278535167137859512368126454369657042918553061748909310691138334451844572793428042803974487643943722746822810248311955248712076695896903029364974748448115106250023510589844904465228535342213284792379897027394102073740006691462949187488290431248119437446209873885457277741893977894701560889012920747606624132725714479598742756573897709514158857226833198953596762561006297940356465311102688753246734322719745597265298540089448487063158259262175524620807506503559180173752645609484809565464767387839281842117991204298839363751303184658677423271835637012242937601255838465816891434059274473272907907631887771315396221979427353433861543013818000333967279590645003752843812617395933795432046438301744542221467031979094484766019173993459402167149699625619026892529472976240376978386892965142582769218587346114695721549156821793058269400504197810720117382650591360134048147867211609170181142582045417200578889142996874228948631225162008274636659860433447818933778380061375384637899264143080524403187327144034194774226790221106881345345367009777496773277037638074901544162187019399583954130258924714813928005070875122640807766973134966426321457134661933583465325500397545809250299346895901977033681673349269011033531337639673686380338585643893306395078436901878992488055132730196388602817772650347478105705676027283514771985617847505759201106058504365734602348770945900063635926308695444051794838100107716941253206831686201013319912243301786480816678090023960372090659851826689013364235366520625952852631956338125352168128062910132745146350541181060358113181267133997882189249997332749480694576404822189115341015804146578611065184320938657491019586830360691048392381003886714257506837560721174826587802509094955901800664112160703529424136851078923218169029118748059740418238354762169271176797701937049382703422077026237111805898319279595607818496570486322466096603064683972042021072852735511918823332993866417799466002606918617188293302533441022675060912264148226010354126519216563540403080845412896248825983661399726635280133660815949703291477270556210880389872817944374522208530160385951484507126870110500226657724290577039187121769978074728438379831688157777916427436058479328058933922506545193157034242187720559698313576011955676865016750912046885673963214343563365541345062224803235227478436842210360534438358199946997311021120597970609488276358257538154209469792895123802040471318673469578463078851950104149605466670371860604370242248508980607806634784645667446354981533511463681549646243879093543511388173404670178810943336486105417761961838317051433153917161271319878619191238945994911232907991656244408096430941689000605805883596332978113704275500521756064002967627801667825769542936913470722993286468057575598854589960436576860210105961807736198411925893688280883636681078658928036813025742963351891276249939616208672616292594314510951031925939107197389718598022975832957259216416990646796442516648620756303928355917260632877478597671845304103599345349309426824004095167124423934471703087804201370567018219051262804077639358855281674032997462950186398443774219847404153873002175221209991706771510961642629397850356541115406434304707173716774550687022080658953729235405765863882128994573213898690283154927775217485650465247059891983850044280210740108581323452124852187334586513446107658639414685069694124284558715325928401944754726229514555748092816849744461747105127223815332155185756711601094389768486333602567313539982614432087400704666051785969223705781537505268713709608349494019921552460653712860841904569010945640899167283260708089431800901387339470043239544047503673345934606872622099914463895656654475834754025325945306276047570461306357291211710822625182017772440648135094613088830024108468216495795221032856656373591882010555478095559807688167226428184348457460622682625801807345349365528519909443157487577299698167274124591710105221033462901629587807101572913095303415355357642418738125701586929817106869713586209735319014488014345030877853583739912771619966755010505866379403997860845941587330962700068387203749885136564541139065175191284413420994810017962902785308626558373771445133258105754160125045199305623674614701335275690460030665773188219280238604208383306115020734517490147031705140528933570413019902086149772442102210397043864488795141409652480024576931345993516951371545689285834890383210809684521243814340865242499133120579280324695629007825079936183763178152824431522135696235567795467165554875004956207905056420303013748592564126009008551539871300203472971085234851607843274916335871551856239711037058430713310363261622631194931624530878121259733286199209710039353968271485716207626604054823030236120049307562745272087415790422176578005817816350050815176013117762218973595953350797369708106843977478644750166597903075760670040701467342916857270978037495701346013903093815333133842097075420073668796428422162799644406867535360506978676038157412495521478260415412108708594696109295776190272286109361185340898797862898864597657157966070095553793666345057993051411339207511084796909646267478012045330102629526281044092306697257651435017756031004686029429384655895436433032070308690930007835062979132799087762206572807972761347113953151517750531340751651283155179746331948837830086241974391016385946308266214306043190543240628286517159213344057565637454862582450003171873711067597439545950056731503360658317808509112150048350733786186636734599406104342315796291979845679430842566428935087508339896585110996050436985555725679967411802651693354892474175461758773147375908344036260068597762939801446922342023970076166139168412735297485594588910071283350857598208569291190656446168519197593734159234015780890129637182780214920711884124288920824074497970784901529258654646472091026604230272738388086922352335424299674783706456500692964323923890921217901715921550865002216378028360168945823752186734433799890187134426558341340179614393353896672755244644548151739272518049685742185863920852265727179818939344666695109851206814436205385979217284848171524584022361485037350677313227557120677822308765245004224996604855119376142889090103028948895827307580802580854790616091542270820121936515753445693625320908097876571634173033834881524484881352998219126276628984979244343536339244158657307808468268477707391285933979700259960286729482791844778115024969232582512660067071513879857248942239016022640381629295785031840826280485530725976544434647821344081378644617825407329628529300458942160765437229265170956569944842332064099636483218082929229847791012202495312270388083855429918213213210084008604861662320312811446383010174415982801958999266639824364567626977151740268991561138779118080427171162004803493115522514592450201528121851257118335669790973714382904434919545740797954304025982436736167293837369376637619533323460130691837478717048753579658538960166937288997147687010678237019173518419377749361234977823679577961296883384042589199551016656635647183968596938752960003614257488762186350105939850941305587168475146183910070688587736109656065877976683462289585403122262985975036517413652295672783976642610549441880411809038903695041802449905828226342513516397373094315513949836926193060154529405743906810870042806000423489262863828366106579878382731028976437008801941826145940955732198569294176028670788543270490810454293952472685388869234234226566583257678377454017378926451357233729802767838303628988387713015137475619354971801779825479099559822861999329632967805534233527875324228078583314279573618672113316535644472655523228662634602829567066166475211122712669884633639999445049601398819336224547428192219623819435725989585552118947429014083823655838777723774977754497252727627953800364706396073555854083983089893418672018994497844142148551310916527503084739941880915629946946098097983753636503372350876466931791782240865328952145349889818169027545238824448114332286377611587877629192430999741905809312520394433995872233107142044504167356021290693992171004154416809258711981600600263341327334436953181856165467311931040300258381743714073601809594411242560052040676794096838978632434249778467215285923305724134036502228058444337569934041368351374547286865227962314113065889495940320505674226133665891492064685697119024347477596784642444986383527917156938339783095921968390285880778714022032360917473228000469360674148740619883372375413867155033000103840468764825181484574734206435631180380810041260742483717870612032577101093317141414635917514096588689998272383192010322142159663828368255638532008334122301375181002382383822692304695338927030408189085139476734381236270155270552593581526331445664195990879734433866997494017746693463486444885405262439922690685409637147687211144094046117026375239598708904710552224325364048938275504007476519941028725896580798194396422250915444091704412164751609608720864353099861445337980225879644054417603650569681471738676353839947404279098286215167500240832604362108730651364979481879298989007430580417676955731118509345586658541704260229327679830756156157442775806144426961311488388383328400305512562524448363913434410227004093016231066114986507538627956356372805704461708824557317100313059404631268969656080876227850192377229806574605824492784311164171888881766939271012482175666089811336583562485514920137814768385273386265579237953337312073945281452164380233552787687676862437979238673069260179196063521869517319597226929470753473156269361382260369634693573066484354013654410839078645633048617796048630828922562944707302675048077344937005407881670708189268880450983633023451759504830930380778252576111671069373402976325909748308897717543353914016603225519314746008002407772957648030921326579998954148614946967271057725548052494273270285752120651625298964885141284127792445406030939040129680141466818690792430674028423985380451959728012653311861744200026814531755174848753551991234353148932967311369868287576018975594359444887012714678313705172953849550259879571215616516849369349876319603082002748513474773052239319558796142631469938786350755968003410742289075321693314547288670961448719885625702782550468374599357633016142315903109398213971504711262090786033913188544380320994208392782812755712905823859703571508336474427773650631050135405235465086447580331082902623248500458943116427172296687978075764602109511676014381128928571780028385325119917467386365239466795734037359445697602586392106402237283175572316613036896972657150114377524060105632696953963710006539005217743725502420536151765613633574794319416202100034740026688828903220627925651091161372706271663837257106029028107887631328059833362950229422020763688768092743876012445012524428805422980690522013900794153644105563403336816799615764351720302196498981831499368490187771851573900193946082934176732192969170943170652142557453318711314401308095034211206235226590704890626296275976354628419922384583315466963439983883653951770074715053925243360535281362250368252298972558296984076583163402244115227897642229668541488549415321055645385253485785670618864768495711018809638585980594750522171907200157882207900834337900307987366772842449324035404886621618017239968222180512795688930762655482169304932797964679256210904183758378521019714630360174970272998993862153537666025982541390094845393145554253766884286231485634104264142700617476334583516950530219274640854030858685414331878236711050798004710908057384441153921896278963200303366456907875523068642206153126424152812278126762902172622597398531285156316945321674634109000899877214348063268304910225343881007137434139173252299578617893681007772907267938184491625449054142888935683010391742182537914615411804928775357359728569104513289504511542305468439670190977584675837928311692841479660672603463035200167756951618080204475478824214415551512643610973982566191402656969922375339258257292558685554397183702088327605377923625754930805948270401054862220807637510248664220653665264159087972982422446991037956959975876777138455995295766836284975015917501173444301721009019106500977969572175744886326930132750417098404181810046600392809324060144733609931886933068206600873038788911897874655196553062437815441375618011454316857653823039622174098588772283477583359692992866152289847006860361455727868485038797257578660354307928569558138143485348193975084884872543633606486767657501223037249108648033479685152201599669405375489000835482873162844829844272750034513392985840608756823603099620220863414777962321939198937431142206330656821276982374900073800986058978632252689534631774610720980967107848671071415591922229706740531380410221473488507353968074398716116021413906238710590383213555206022381008353023655836236926885811388142184039478804511318401094267831941315150427000122563101151951032920449246115538109645863647118259767014025471041935983329894443447183866617265558586406331099356198144251559190992258662562691740820418069263415174329690030493297804518067434886509044235928483828987520396256869926463087260945840819441982544538602470786063431899329893502039754241380268838402501556648388341122157727824121091740284845928554466589675368108208668760652282936716582843707133438968696771403412334988457416718264677328767055410391931840095343914759690117820679054021125991284407162224353790128516276638701695952184997698451995779197999383662877656386598188549023958493900822705419019615729384980997409278580322434087123708080791739425414260138895652233733098328523737092527620652872513934090569331960910287924730597096461261827263892908146330316279945405511830725329564912109732269175642564357707290130423813808940408077853936036701806989075579989400709706562181697520888091314208104996005297646907664201569949826532312201522606755153981786522918502630409370017464503572669732827192826690323405520423547565703713175823322466199980687883763577378159674088188057609911130144420537165255946479404425228089064051218132881495371196318974613510782752146419207031056835818488616676044051226789088737874623791603317506715986531019914329820534969252262692479622896178597415876764999256792039865236162539793677468798587134241241416701511095714299158590797391262011327141771369658523102756485612044517255931860705103117257037900384152491386713507698519288110366583421435591988902056164000021547507883980170026731547647467142140403311017922456904640660888991712916022002221908894272216073939706622502995552004769705575435458732640208673047999862671582888854673012040313445730592426573372431870591442689992640661826431381933665874973953871755749848909961784738899552728664556197739042969218805401339711675399930875575310519892734835676282172410470825833772559698694332598806829140255647302040170560317789373363118720548421964860075392121661278634683485416663256134286760611018074052184676124112400527205475744196766947904319227608673379450207032884024193214986624900375746779609117642154877274974155509392601942509584671436253696824077388765927677034349394685178821767850801412256674951187829653216988532867686836963713079401909564500720242208765583951690668709306684525007295282158603305642774468949222187307849670677357851348675007495392018022786490883216420626369069393613799062034555140634697285486038824369091768305779223196692769115578453183065498360147506420581298945190347822567207823986734212301677763084104611752601535738021120808410165516823531414986840336800499383368783437360502347622900577405949621533338091715223254846894554842908279318429658587654231861125091938074091419483510315474110098033967721951354962304948504609826388592768785749716839050959757503318620487642046118678532198641717662156594129016343847220329597955069000594806253504496117944760523482695531858883446983622809944258611872618388261353256792988586365687766938936436346911882737363221800437862162313686945889191913528212322575947223747290305319695835479806954074500797736418855029112513935095438761142911533291456098414350682822309455456209027748497660287822284564283170743011787162056437406368681445070435494266791325929999796584859561648186142774070831477183063221242898023535648076537063667284782705691097773549188225198361237888682995562695735257546162262343790832250277350162740090751051557429407841345547895535728080497234651917474644728290554879733202393084047706832422773861202999031532017224075024612740089048369571446177158000467973420694379503693365505708813101068027356948256679297802767813106120349838163192392867560489464674065547313116175044496162409353327003286040214442288577182444972822266268180868258413610778425566791464009428415003019540704001570091420308753044010864472065690609847817077592417923618214167872216846152634896025356273867172582677176776951346582302858608155387863744784815343083071067981274484868230712132699382069658806669447140631833277937296048119615338897657418292840247054658142155296059996556840415464759553351601345123521732536180153217729413196224394685216076270211946279090350756775107724675288207763017994159988748343876510620177746923022306304896075396773385516508375010407749383168635082055058425791742171833422673257940298476161604318587633106291934866746211127886301266041203932993903674416032344207276227253494049015163422989919961760586767021501412273481640607986768224330483308113470510104376899116037842652119822197503921196754527241615211087005429174207687855808662930489694096486680347867735424217628704371867600995544134866548966321291007250570821774136268211233743501410771558819443926302887150434613689620109689688902145015225730069992382997963168941606868173721305104117265437031560670562370360350068441869990723681240495722176869691981305593813118752529216469019821707657621718415388446298537939755923805078641330786880230771200928366399061551534127714089668856111435122405273885476717958972179516849476172890916641907525191302216470106666896005421438401343027985626201433734582920028581942924996234739385354141843020633541323122937797007258006302418985632806671530066394921414508586767121095798661107990627003523098835523635227980213893884767525850590066438217875179299861742188275532019364617553826715006865262042308803666727869227235767978084992961710086410288450136163925730554805924576213095491898079905688606418057267743223066371173937432061146077516719363291981153168934340609644120910988777659662462814290689890345841622100918621070990862226857535111596759550665770003553009334170096021669134262378165171132747927840466075489610085682678685158363709288746272049519486217506352555710172047606515352935576366502639934511270238278198343303584273954708747054292378174365651114219056814946794698288623101080768226626832969233690629210284813224121864247914494491707168841675724278515936913476768507983409122345722727292983024660223594734458340168915164363157234096023312528068471338815916212419326221284555768089482217895382656616126668531033388053301488300050216499451929875221802917311744449510566813059112134778032180271382313273826531023869063141486156515453048806021199245721958492336491834388073301629933168415727648066294609747294141743105154405563049351582395219555858267118143982889299758239249092926453338371669132407274984405612640439995411717419417036506931376529911910070386994342717102182384047442113434604896844709459199888417819869170244153013079208259546305961712998535135456905659538131335924628935804400130122421974213267494957615647868023704914410627527863392813058763891975418452408712498690826471872446109054727109811007801628633082143442773037216479857972465799344063296837857068869816983863637308819482336673431544979995771194857039732788662589183002950511729729827963312948651573686505885294372008922709707288017825655024178185859279078629674016810115040514395086356998153491027472918728914075524364933450209736221975531914149310891223374241029586056136746032497668246476934672939160399250384536382147539534327813770405484581159799132685724228912717579419472040008628210326587240121940164458129784387816766790844970914253113433962063421148491355401391974358217296889381184514719357457161270883801756368427491246108739927569443684576077928780937154506674291994585792726111703086573382882516661677831685472493368119536972132498132013525280488549128141673376183201644100636477271540755422273829933860962097786398662456938314413365261912414691248710621796026349152886433363952608378160531146727331452548951997779129098229673559370200673362073019486662619156151665182667910910102587702018974261864446956481249017191030103525019744845945499123734043872054269778258074367704146249091556151722027921483335848363248044827632839452326835322280456719467725518248150178270719026077028214845651180851784587061953367022759921336193285730886945229860480512357589740897088508942433357597478540663442744082692848044514101703414121109560720563972478555210254178711455964642398325835595296107241984759225648569626874193481625491942737511604287773728553538372438627022517416570114339280814635027916314624169812039743796451516125851165453484422360499302595082571731722449316890452650236849528444228340758981104911209538815610333229005005144019529353492170396817038670770353339808603415343126962040325436924060761575507430195390044982385475420949000951716220061460700949003320084390126706079108158126222363506927855621024248070994169237941473818477280213286930057864964991627120273944511436176485471921279345563390627688687986885002849135513387181035419233902181430452571336553932891528605727702093934033956316001932852043258642661440863356379843379118862809641175904622236851971040264794186303824663397891973762925869604985967481124149524028580758710363986877792353234655066252001703703917992279147175487516762876905581741305000884515456819871488944709139378728329493975056816816712728793764611893345724642449744093907699219583540799318803687504296642224655866126685513056815286070544119000932976363136766776540352534215021066733635879553698762295383076227384671911388728526350953711367476699721975267466504580544075209822273264982094317543824945639854297557300314344794391706176210295500229427007021663996005900398484537313845315417094356799073802558247205114489301622867485968354547033514584298130520802557100509445597005395637635643902945418709707771023704831159391437708829672441829774966469925922656252275918059014527547880476602349766263528342733861183281364743409890802123117203094906222403941291545027061019324186523384464389462056047983363264581763602490424688623967576603539573022658116255092905723511188158549599465231225870960366979755518992666236367163124793229993552350214683939622079209890512394543617110259764802069032735133873303713003623063293918688607573598119950424504689103333113136941016533536392281767482197062944648689287172639292256258014873136978627421800907519726104909022955620332041077312030183281922952727654060196489843301589391595011263360768609912092393754748622750521474897892399106535710937951416285025130465801818404273198574416023570376535484898611385697983620443960319392494168183509626181512885439932869597751698626679717414847267356928241471623702035547772039388175702823100421122758931385796869077600727233452488604174112851906103799605652053854218501345333689206079398145770107205048804422932435545808714962115917810198764891651692577606104797664376753686156876851419750470970811340189011465372803683609162898845321475831876622424224631755484907973928943298781235416664456581431079930715455187508299661979607341193331069180190637023665970540383969646222265494900749060139344348647304497393934682192214397874277613001067505946685643228766157372363209687472723291101300330723910378517534778307871428946228847739982674946456680185566317116314430288840327316143838165378672355500885889192735772488390564617312660435879287593525825471230834293167628653774349461770552197545688703939683265123695075407527335751449354827132390141542106390658459421061040742754749650674479741348245109844557346530913427577959123375824027054035470039235785013009004176808592309815911945046080213683271569883635930265142584303324499973989527415182128299437068796147719059691496617468443613876318730243025964363935542434797838279731884536285426457916907936862855476672655393697338523040735231138265653332497153547415276430377919611067341708290347141150239993029860152810713991840612222403893615716120658178224771377203411811239587397711245733570200957121534691645711737644990680923711997418942282971938644183870277226960693646884305678184569499932081979198307393259397500406122250590708742387722371433558257921555809350013980108309763165026558743606437589731640123073946568000991531745107051102089982865055272249473424721815137873886864771970892259652966152152832654923877806550898414787498433918274590509352846591245383715068379293321040920394241920365047063082279346271767191473257071424807569637637467700214869953908387237919480153253117519070957347067628462795811601724536420275275240793885419294489817567684657166311792597788394332853457098689425161735851144876108328921160859842929199975761207967490817526566827268170642564671452193834946581219845592563154619121882937419636216874896414328596359048039494587100528024909344657681759615840286135713472907134535411257265662474581811278837810662687511846261870017939697476914614832656749572193344182089291351827678119259154849636297484262686323662447037306313109243965356703021415335627806099355246602993566208825638396461446657755060146973559307414153800997868182850429151958805445722688545881858234784795498884224144047428528185021663656224595813729331554310000262196558232160124658713274718290657939072688233338877545863073935197124123291695322236893363525343135425010483642463632073660896411354925823747218784748686660836402798833228150105896725594799255497032602158765547193470803900877731431979345724832531307314757533191637626371812492455285302424384708254549435269109650852908173632978307378169740485285142163306786992000916206195649240163362890193748503053533719478294222497561667138162896027145635572546850143515746672653506150034366659724212058442104365874767472379338945670795366484010706493635962216813061195061384465625200135523903254070450252800777127523749224221546698302108260775349198260067385338118743397869509922353124886381768594246485881436093903598030946211167751842893245844590972620698279694316876472351388590701157287530368306611045469851555342161925533255073276376592657868666388809368634514639431593135725510343684134619122675481318786544315908296659871620849621800388059608002657437735058823053678233888546051798213519540908871782092497329854509081612923946213283494899591306452135096008941754667911916940859928814458965903502871447009566024125739178004818421781373842396242641414898767217642606052498337734028508615611566832346823658458869069946912202597466403719570024279250075858143915251555235087028790654077029900128127639384807096806118100391473870902314299281758727613110336733497450351047977679097096907017592979708669221418843576043461446025235795173180916870751529830809444015169151424834078488993165265238855817571939830970972457345450743796861636956256706508912475646574726294676847717718656951308594570052206764470011406700157304653772593840391427755317136434958762288463649134627314713691776505069800825348764791627810318431930621271897623943785877465485972861894292220825881549432803036465939862715751702857205272481280955418731596683381246170654284489555012978662368732092423334142900490907733197025763753237142421979406525483173482167024117358955725633205331362402680661270042501394199278981382237389526706192085114087884213153585837636973771477974361422235078699087611892032845538388606284215421838908446053067860718876028891461142333640048680214888848897013860979840119589947771152559237517612228545108635978956486093187147370825905971932806822874058104892400541684705168219015658729019013361998595356476625070682391938236747945963283365106742927463238486217451800798916154366031562902416015598612386354021743176239887417206203087310610180917336233368483661980864638139374172056998399327013236375031296891541701493636453784529724027152640530986066173575550119017311121259288787231982889232992930098924696239233784339173028296646494026604577497498039427834411173783002232606486562037838190030793304030154585957951315494087694868472494060428018180036359510215857991987245689393558232508698921268436208379880660124501265123856248065901330844128471871134884443334418922876146853004627650109581563926901082052624797781770617373237846871467533991633647409688502044551080645588426497546700888568945380195301950781736202607850109093316048831948017955485659954251057388993465245238929384527960365426809528789412019216584063055233845762423844210288430128873009566201235421945966775029204681470592381281006899786058255232479829527600032961008847477438183780552397861614376791511283294051506931019957621663238273552743658694084453067512747880288181908975228841656088416029992159859805438154769063704878838457205064103784510776422316704429300297667485518506164835044927914917265131341914076459122988384927099819559691181220250882077384827897211361838614450441875036526838223708708303130102031248362329877214206855226805011145780073084381499116948719857002734344339487132293982241196952348948208646749052041440995747781663777535028572408017890839941553764939163796721893296537324721407979596192437794474674007977097564395399775276125632686597469791607216721691634748970662874215878338227590001816197644108612247120231131037887893899162723691404962887052207505722149968681530309286273312860334834371446965736223041213303067268907828672066844869675346297095072218385349673830256275081702569096141870915576579418329587450342956664595529562518185891006149075602788455491225024438895217887311157280365112033228994291430031034999987555327005701848008866014436087083431973181236263813796441530923600038757884118523478057587306875402027310266647110038852526390940478465162071769534426790977110092004071533352638848286625325906089272015830070128526410894392682847426897791848865002381959673398569498600892938577322741261699834661744118652277078691058089719652350358247619093514616480209192964869319180757273925981995021679383174974623257369179143759146250344784451318348454603328894547547881678746625683151079368519317857620542625476199961967258263548625711548267986591380063678566452066123891690792850540972460602001485552731358063147615903610145028606968316533892654517163190379862088647259990644471192989303732701430599171661165029610165767059026776309410287801713136885086983245160843883298942315738516085060011877962874533384185502422804584281947488721454393107728375367337827239799133854994062321288780155388395687247495993786861262221388096023260085120597511868200026936464625438309836883829673351321444589341225273367432490602969451779419667066463970344391230743802529366290866772777101377809321173963187151515752612682405617294736797043038717038048939487920813315256347382701698560279840316221580482226554881665395193252341959769997309706563159925335681304545133386507575270859482947607735256218937751365894901975520132787601808102536788300621420766537260881548193054332155193076361518816430305664888433346510121602929016900020098539109622566627248437752972271722765710820418016945024177910487077479010205572450109131119184697241868212129190324329025383349915721426686874229296445503630346155492148034352994388306583782662846381149665502903425376648420418134532909232556627869337470949257698264581289493962611603969893282833091620788261367109156076738142716934125036771985058244542426775261411753526358003412549902317788871741420176874067662216441669940289338283129288490694728214825001062137064214115518745855426965700078879040745772253490709475536149688900550057931357941458761741769345653435553872437183036220015598374749245992306507345933810723411009360709137135877870975059272756490022777072702212754218909056358755424082882101099584584668694828719917532626700210022130679053617434456596546267566224809774943532871340670884581710147668217307799028434454067033915765779242862431945431304729036898315656622813438845353964987779256082874331322712154608278621994219350433936288851753814607190365632517767581978852776469556450220136833955731421649793103723801688316602634314726879277401343741610179045164030513047530237736828690717275856797242281760292053835300837265161259781207400251485097667221818066127517868937569100225120922293647393269483750927593192844910053715248300470793151158585091536183122364718627563809162630579078614555925288459728204257698320210922939706668734501928651277589746210196524497453878838427860374949958968377944026390001538206909893128013231516760861948064786233867461771352734933019235836566464315090951190795685352382498246584530123226569055978583626396969705726072774642263259456646385615273339144046664797028053688104779105905304023467710422545921613722056666616192358387584962718379495372870550302842081527642305458477366746563656405221561468958529082261388074654141552726287363018500177153353601536713635624609467051279251001588123944196441693336072674242995536755792826241172881694218420695403854203624413518368627782598760843080226140940784804399125573250523930046563229814211781285209391394113893317893295000924052089799513801787189676658371945248039126156214019515785424959962772892531659045638816858271625272178965576386488760965440856496673915680628347213553604253593594072890720492555481999621662410457807943530937651302480992916655122253227467977379231146585490038350112336301025817920876049720389624994553874113030684494045038566705541770036366830813048286524951422121175217548932468653363475393479954817662580141509414152710008792332274175677162146890610194708960110847839736435099234203885308421185249052546465695773507024318865618461544406330597531798998831139063943172969805338096495758144466186140937783861705120269339308259936917057283822478831532735566924134821048562424542141427610530806330172174781937198663822990300523371940990672954877170108377162710774336617174209035262241033847089674418402403304360500533181094539005643790448205183801508891433081011639980822643545141988819632315087353680875394843477651668395942528343859112718786842727563802042018821765479494630360963311732304586223213171500198859048091909537569603259829758267895365324812552971013332367978639257303473605079712901123437852111646319328040031363371546318496741516809868208108489894404921980791068054357556382061495617672248155115498065200418088376848195147391589152431059878553073371353959662012691565013851137434291876392465199083045643889761679374658304884934922974993227238093317343420724746737408791523088337665541197880570881542895641703224335971336755993758153729299067138939203409579497632984760275545926500529325455216809725753468822316140871269414897171600722432995326171431449558237586018068134910318367409434628098118688225924319955169478796498318210658155527236325269752647004437052476113978771230997800636190412194323249336887694222207747677541645617745956038876197748971849990875436537592895878257007836272025801468111442537340924767648021020887251864201907916568356129320689181669787494641443611934812352033861533866855515020729510798022778768611846533753988065688818911701681946816862540272222437152678536110760377188299762219607089884700874185960333039439590253832641601916298054301707757281515042295764739130190697578219501981766425640706699149891284908467504327917854441256099371280372554006993753424139613297210584834084218393031181679950040432772426657118071886356288339208464813307051996805184914055840323532230501825007249545366787931776704343264545567822483100537113661259032683359946551134281009065940212969808820467351798798317625955323776997757372247360186030824071572592198757061107410609876487118013392329343656397266887418835316036289575744975758734878455757469829602737978601875107642073675199979704039297690841561263102056863598632388522830226242899684359577552328305442420742670280059028462220908738898536404213320390026947299510431018501712418699179343694638985915760004657197348773418723152089320828564985056643990776932682313148260115690509217975066098889405575864351932429401974454175206738833436965957284293147124655294152825304583652857816035620726556418770865436997841145183814729912005815970987658292410715085660192640301876522065776372330412787384720642281390805635490340575085240831892319631080812818069365790208351362581198384091963708021260989128564014901582435832235132536305490568908081115451461779916196085142927215418171088790146682648987688419121766142301873061248738083245132454843668704709406335670960555876508190716301817932672807952860028136784664921010687305829446469931651845234401226156624626610995473200620978103562288189340382972349891392472612318077279229516976539605760190061437747947485323833994543239215762621602781586469500322268930525578358477636012626099135720066137368439571149643691633972606595716286306588030146821379405362421838130517995600125233239747930212246405357814561348120211119657059081676911612497784109104376734092815333101931803952237396903090133046991679288259095808662660840941388363141762824471341507653051420620375543598120601998021936035143127882747734231779029633712682318779059278957963081971599571248793621684537155911246742507222229383041208506749678070591759079925380315328103842437326095060786562103543930619286364227844193954640740570762156668136460166500376447672107809400510783734447846624228527355247646499213270180060146774419308141682285614329215467940536889112349232445365506016663997872118966067797004897228146278430165011692033531442641824609288403863552412131486043237575477798466031628178717985598071703439936266224772284427188434773940925339185670337991344339532430668922499648788906671677096789405012805697648794234872446409362797304351037831600252476299349433343300712125757267796421912361979558668692187357933548253264749775416455864273135942986935772260494297495557827584775912463606241986071511094011097758206113077035108571154575095813115216163602734091570634317426656436160148050947753900142600414350134943964309477875942560065298532589054822263257534789083084415458969987399492851764726639567658623431487757395471486747261084414801054652702165890551618739931882107230104861653024947288200138237711133084317817060710048782397751604262644665929571353388305589016558818173339628203721718127463162815068500479851222332253251513793048060756243435182147577627959803808331943313432154860615920922974973131247546794584360614649611597120338958095598328040948779871696631388784869777186252493996955348506363733603926027005996499684428762013585579225012799785624152269686174439902658756487171608864433353228268093753231559736134542017753048515778478835455674038062839030397061986546657290812605041134009136294999806078792336501045455119052927110210659142989901338832644455480916293158040699924215140709414940505251247490988128340493502118356452628090417729091546107365764734843089233440347657253173927279388168653568623330810280618041645793339209860654030736600444195546027713277163103407703520585180011616242937542738801807305017640493504146637440442214754438143091175907876070821034336242577770552215004699081012005689748877555175950254591705112939854769121815866650417281885992631516989309728119320875248349409904258419533491900115310837872312202264952886614913705930719048267410553250797357169779716036107498910553483854622807498364675055197995146463499537757236188147799280080546336697046834617640843096678201735881334933542956963672756226389826525398727969362188718475623534777541740888281952522712916814661735588287821304447189092893390685257141552293386071315234754650326230392106497665009035708095021907151573578383544761115947136585535913920166539612396114234580124890724118268056250176655325014402198995730989222714633389309993163194922092274412954881883135328564177412380666669865571214290741002677170552037406162200072013080215775950186363834200125517723718183639157418321670719505119964647791384109215361231614664579158419984885732344721865850587904209889721382551677006714044388487177455470386856596666592737775057485646726346600615760967122819593001420839650578676797782635797691902243059194226953223067643693630793008084966806667534000756044903253003116502428902207262005994440691428108977103305897401862844711828825313016354904994129687785092224611779415811130443403234129675345553931295062156205788847492473093204871362570742134225349744416242674852183425620991191625602033410319815404345114550725000959041880059089734258820939414716208577925945753006501460617403727934918427189187804675467215070664977791529229019145571938537352516277236184488120870023498857049397372378406183694742423131398061882267160689149936983794596266130070926169050923171988723685874751393500572396470436472911653539936454337511858161250836295490999596972948763472682814015303769429285963724745822077155574621650386677479349750669266681003764296060230307095496795324831279885331698062813836668622506102406514481807877516099877688548635597039725152602496504047887311987950245942037759439622266337972380475304115609634399680928600834597482929931036726886239033601748150474803142412776991293110707209536262870363436697529565825278267089425594316494241925520111188270311517658025788543728870559772872094537368978847551512460979277995991947896739948212124440150989534421520225308918537932413097102885726593438706983215772819539923288708091896746509814860100689020656824925771576534660805969796846713948969414529290121535085391582619671299784501600255426831185002741300152531962255952423484895887246551858415536674664502371651997581787181742451205914248443843287363832055635967882488881989420512374997210193254112295463342358209996842555647810868525085626314220888157616845087647572462500566347142319983371524406462992530205523322067410961363964992406834990907542121740564766864140362009624557111956578975254767839988435405419279967937300712837544421769977260068261652985784664882077112798960214545014365411726419963082886432703791318373504766622667357199599573352229002612038075306348896268202475128437246619640845529050189176923599668274879182480741292986067856096661210981499162245907518976010696966934390410659017222355538546338469304365511552571081164161569690180693853977462771494420889054060067420255709033542547907190738412872986488098991184487885044107279240596083589303403499678741430053161257647153644297179399938965150613392571744294690902821948420557945435225844137857992242205063887267895225370249740350604052732199229324882652628772939371080899208187448672468763819841971073411226018328639641012255743810832004024706514618921227839242013611911143594342824525902829146333050334958563559087511513415483822888964258330478868142771650026768277343166308352097764693535153672003643320398528340238127704598476751228769833701113579152875021630918715533124744164265128585477730720183734162225664909168577215194326435970012879569002621943083052967395837751023225797428390897641965795333325851881631822983087781404543316052871741748148786635853320959428489160356424039431072468410982288717381896135344893377742950208078080044653069423899388579610853283021283714177800801747996764108241050244296162015192455689398353756317893055528854105989361562668886564568827224011376929216335782777464439029058530237179695919906919938928878336772161879623596160658890521687570729976355005390717847719015606861283796942520743856214845298171876764282683254859317934057880777098018002497856469445218623377420162051274249204347903240957711789031446921974866824702389771137787231417406355878063174399470181944073756760747762862529553148197754028092985186758227022084877743538984089464456818237444487571391802519314271247249287499526524193937026302770299296957799695672616991317170077392681617352436047450629756234811958228335329650776426333752305037617382407853616346945961090167620273075172280921024913594140255285374471770347435822291715247593105394271649947891989788071797996020538856341813358293693332589286037496507956870539763282871546457933593713023470369835778577018327216275883086860423475611355597410106179213891625248728718148728332035139981229695951185908835721303290273786878446064057821391013436134596357320941171387585116466708593343712885222407947991332790409399699311342328021639914234230899124744402541235578700513603180224096561582441781710096433174039002879032705549882956660952673541346625636002858609512526000888896776806728387256907626660544307994834270042414615891014558502550755254996062792182061067512456028794161733371677976930428477439129715621506682192029653534930708039080003239999380804653069883559059450470967761566427376366143494350078685107172370419006137360339078154248704389311691461170095569027280433587973149396708212696988183013816548964197432451768410810137824253209237881164274004864541785814856976151169331625150762182499031676561262362485662205134115227887183391621218812241599363179406175955327229042104849019562743017604613763688289910323571377833887607476874232357315300391501064832573133840679702583272317874045250119062429860952328515892198121498769980775034903201022648230262902500204744395705124807070897389321528379385205750146550406425004578994691087809717102371279165839728487890379162829195389962090488463477869274344122968311610499022134480756660808073913285335684530555132456833783274469510373078009090612571917917931433095956859097223448521448425867652941764231714357859360105376243998310605586188218954246643421044153279172270230925199021777759367776832786935915808424533840169813700143480082070635840020574808247842061049281844064154406602910756839470102632468063172546604636996807229385965204760543757337678767926652165099688707073166489865393507713345307022175152603739354653797258739712231052825399490605775765530564688571356948025594756979637129589280655239508331521676347853315382628497920403009128158482944934968770047133912408366535160030437423636329227598352514543717041254200185637376352772848662728798298528697008292941740499920026284263706257655119120200987081488968417633062132660051911332638055409124036587921795265609064051680276997984507166999773615670278023431512451194671045203021400356396409456190323943827344894143232088413137961400113190557225916580995712173578319823753062658242024451413760289837584093186051233962026313241212523838274547984843607713428506677872144883822890413935433843388607526968358025792576728293683182739390351338170916881624547570380272935070649196396919039944710591648451953724405240789241335316245728136419097049036463504258605115379564898991333073759397672613754190489090709251181247024183316187458557472626294247307377404844220729984493312116598172158191970872722346769155015005653083949468708463286813011978298261526590725619275465880817632153200938948551952723778653611905331676425385206103596985120035138551842493002030630757079667787534644172970619487984156786031262028611480887736850237720961678027972659978203731498556464377843417653932097791948200537470233210763362181695555886799207265383836661686298070665020877834689640977081090561005459836087654310450553005012895866635474552792615423758435736913369745000631331230197222520053640640453270318924970247570516395082067481194081117005460396803629261606230741353400213791140350369073416590611730446665551799299169562820507007501239841635947486305421968919390585530951518251672429338688680425121864511594014831480849040251821645503190823472817767846492678720852802834651056883244914588866690311039600594050037757662800834494305942169660982301166844421888702272178047510174032921924155182836798670884986925718010519125989916436389879492509858451065137157446175132059218218329290643770476933081530185089405062312069760706604162715904228307339072080141477356556924874838619523161909216835638222105289975891332062810418297453256432709408188967611562340989381040288673438108348049045741684310423821687698482575997989587132499451572469764977700428514340267778014586980666346348614727379889461080518676432312763368491812526737471821642389663974113083376867800553644751625908124110191106378792961710030112037085502410340429937135350187667353072049474720475737895798795352763706465598753899585838047180190569251009344763979178962155518873264808482318862386732648657216634618612144040741680412806482683164184669372910919103804334774172187280864989740350614433150552209306291213062921583542170798259699061364986282471262071429884168188726505811003404376617645300521211797892050466018399268868658531549164051114068066038844160432372570356134077383751266005262669493909606871839640218516251216853234635602845770306682283131654380805657391598872722394984244584560136509188649440343422184274267432021604816107882834946573603296057889235672444205705286518209788415443190919688284128864368515926345344700095613398775707639048217421035259451298727191834702651763808507743869315746383992500606763305635154496752669412044929240487288598191507584260044278752669636939968112159011632864718576755141212233571995239105035732940524052271849418727489175329110427646923650000368066476436837586514886309248916748249157526569477549902746141815964966485277401941146466862573974062573466510372374733464724441696912843818731841966729333002199832296948280876039400470532973043588172423991576304279658764534474808300216788735102664167272662359108658179439078109997414924353950994965921998767711056720363374023636262375605541707612548067635110528537016959832912391336196751755453471888159286434696710444881868958218300859916388233635931129337646029945065247535566608780175293917306122655813528608022505648176529284482298022279663244351616999379163760353203115438617687443276473565198788844892804023903508724063901846102453349676028409940035129545652374056321224974288818476247059928337085830897866116973314793128519267746022749587663872863469827802543963448348398888175103077080125117034300340441077346119102652414160433604632048947858995378705292791812896702843809280370150299644850858391509909738817786625770759263846888345915153387460076512533482681624298650258954451891289697277936215118973556244394613610300728842089603158950181121164221634036478316926879750696297577936607126562382438564794012075376296825273637956019869225149875847773240448983009055893315366210038149853906046716330029237271527388022030606042292498714672392296642593856259812333348080961020410416750621454956810867901071086024420951437395076076575791357503202837882884503523519634854256132049989960525102025661314207880913495771099702103319186687878409173912342862067974466383255327409678339273412513698377581602413842454018775086093088362241870693529993186744376129331218325303094407461797356544380055011419004845574575336314615202761404350412183532729576971945106316981574507796644078490572984219282804154939139085709978476431142352060563661084651397830541660437494054721336804391354810963523409592164767109769697709675968197082570683330587317398530806504018207152087201676417430438984642214562940447518448948870290827923847854007802323580511512501364138185373506348848849476872883191538219385948397522551390260744060405338412853412458677918481478269375536015899202235760697703943500847032625153367115630588645463333160272305832776193390981336231985546114308491031928401481176508277546496794813451893772770907537814313212388830551470419536806625022758813547476602310872210115299033254673886322986706593565213451613807639439909728844073765471151580600999699088369988109187635358770584306320033219848776909361598570786876958727660089610352715885032590205918698686446954278464907366010580005410157069876725306918748238710469434525494015384280799823525307400616836114318706206335046095205002494566706888733083305197781502426356959205295287532250036961432522008255061218451383551314332776522367752486930934363311729085148302686916744186251407170215363513617795998804417259241231629638217582938504381898441268345588174163799011627230556678328046191170106484736610959478074010126644562952197070413221554161480462504759746492484316843235041325600991979522527128323167404372290823523642390466581802286375902588936838218249478458731346979065267834963138695189477664488137345267901287379930387416017771139598817500523071894229946628701622011906681941758520727258852927046300976340851790351713046048053023880677265437166262762401940167959602859701485816468349188216482385519066811403734142318826212019564492995379755880983072089593007696203192178379454700602590975658298953578644058534341229872268471090258832819247630124976962631519411015715194505783208013353136473900524914092579967886332072238459940095848622427050023798648811442944481054905808740612114611603369649601182512128371508557457170241731941065655850588003601037442075933458143514555242923771880134997711038320704444980722858291791012897044935789341379831078405234252299276560457280724631895227165335630267147603386313815691188301855667526341997695178255252780477554646069721561197002367065684114988149647796357993743614462509776013470966807542997995707186854593594918850956217112542478776747367748257799908872626574309758704184071474493378391152580437332880685519616066633013758286750191826287269173446695386235793552497698756835061909109876626611479923166984732862063199427299649720048125863717449392047708800525542839694194423216403654090129359368254582107724907546473518549607428292749950245902117831436538971599041142609939492993849225052327198587950461164018876419637334638095189329314894555533940958817683090636717035306242112675440684464928250269244337447010360542578560178972816286257334913474538758147332198264413262489208097679414737799655051005825024488634512224581081653820596703062541508728862564626303533783559538265732733832094679148299014407442061160666355836308880368565917257760273855880296743699057179500457361576497368088693958757415146024511898223643870359269795337654863797758802017396960014953483150209978246164008182075199815575473755596168581584076091904999547979213400839828267355941694372027932770161667377605220583602523101480484327328650544230262474886938213629875226873482876237915258621545720356373364490328814599474808252209710247657713798303132520776653309601785075298628387661469535314272307248460951049098447608924625319783231615566443251528151662735756930890498397621845878932595411918499264376119762864342042394708450401138425860121721119944607011089899007975480979483031773030514135283394717639132680803724337467277648005215351828018780567630810461449302908042405752669265505030343294042376493860569750302587703925575249232260922586848426038214528061062743587054089795576808820338091036940626834304107094361229076505275091653804811943103424616003509225586242202933341092215444286881687735269116797402546236140358191144358083081415572877008558326617586075149753215209611230631709666157807331986007564825931021275573568364582851708022645927461139603713930082693907592381982097864644879081409147571634450384959744071018611545451552014816471426525516661329790158854798104328252023427274021564724398663393463906785202996969155334467518526821949739950377005693980285943556196880597763902599404920106012258334740206953894748512567144819536966252683996776258388237971928133238704958338850328653362036412820156340461734843003161064054478244296143014040079187672257363039010710019787199195441004161864980531728011738647110542201860912130103234537754680993057702936122783049972957128259902413837527919206712207415441684728366754025561263717836539419499344394697482699887400108971060234108243883177540426841714064494340135557674492672733929104751907715745064234457854852536194124658360040362321666976347683924568895474580057347279290287069056902578114061472847580660116018599272386000809092924589261740842055971814004597166561275040897363535777244099423498016234632291378769877387080955399604227590449936048056905927347414866598965916268036204827654216620386826801724917055831033952192320786998189795400605827084871092214382765335438488108193018836768853615594377677156232523749671991969444514787291902078272811625117367897108811218740282032822196883295488204206699453689942538449705720912183068700104276794463083373251189495788959302723939564083418171863212466126350247668051770135267045941424191635054340049508413201456024173723588297905774744108148606852640748499244359199438858225644280025042781521728432598663122964959268004935090693295557957463811715942172855184020783537319746305228689373961307484312455769214383641015703882652987698303203500125901537237779556588657006584075827830936371459656941384467817703487939985240015982559240747997674535107212615739379895859817415346618999302079898900280171972524738959339409371538787824166595071255193189877173575741325453314898145887798621916869606757208593057296549314868481177418723649059571016325375447907348866395384134467416974888678306137058506814299201934918031799300996659915899798786244079018384522690366680038000021875960010309028347944362559006756888520102139088691986046931728555466423538989355253521203018169556556090114633721292450703073930106871095779283268596022152971669452073453390202662810997655000580216991222213182160583711871877619941823437074129149587709338985706650060331013610972761848444362864804656672104454517592572919795273257207538526339468921909751586941010077470760525264734917126880352411071180303895852583081040044895831490460388354416318900382738476214678681019596043110772921458956311342515989011380243890646592006809876882115550152509899795847890619691742155680867919451627760865829112033141480174995036056595938935916794647978361214784198976896191509101736587654908288373792137308592401391297521305061415260488172445613452724859834768727553960038768477975120753429183037656027103430215717166255795959645864369180160044322807348675498404694586271870306043555281031660143763892816286900382324482913577949725109891494130122535893240704616320196719355103306838464154869213897677384129735964769774167525491192434409432992313820149007030028944130080312849937903323797727014590613119495828919918618041377823722959935135936926482396833353150461154354766688023320819737024896884733890707160117881654971789743069729147324888973119401868400168130241414231185501278851151564298490863055709535293124143789406342042942222500615270657649635266197611443077425454829902050173803954958428550732907642633272190521995440748719025196696727524796658851573914931460013119369297353615066848627513099804969823614497899271437148361195851835475178643185065727684006809471285937777679353157227742950584608095738307888100301112537579609028492320978616012528408481913578685815829435775486089819454937273586172430985932176498391831557258659958767645065870035480245080006920074638973654176131061739498804313545979515311683769118041696968568588411927178869881921818754413913315268729109704915303025573611368711800644113718930904331921673121339926255968164902822780229915876118479914293635466312124289717480783281941747023743014324020651169198357086330652228351574100722787516247709002617806581181122817643196168394885849056783277832267336395033925133648782410289190686942991650996094748532914003294574423227228656598937265721106599604369845489821851432555412768611926151888998883107819065845966883081175416873071615892111665867622707639575892012404312785084714662396009459963926577290993063681147273489567179294117057683005652328044427621852937519422034165017406204352494450107422832488942673103034808966206545643504716201148637526224957306933293218531681914666070181843265310670227220650304719953346829583294666357076897333777468156070405667535571604810887240524645770711953846247600732139060386522872449223292112065889429386968020194964189268031460665133032796537428656866748139456394358356861766528852529730228091009439245399308216950698560976510213479010621012240286625051256182822917668830256091067339161114187521135538669618582774691404598457439898339832608831696496129608301889863753050705240195639849326980163274750073207159312148106649489682083807806804026189698001203349961785040100725777953458182690182431457155804067262019418558232905320661460920056077932394949299932781808336357744122401755318694723394241346773758460786637725679972748504666072751420248023985028631074007929498644134832792930920668563353253200291284072124026348538805108414786090891993540480739668631474589895915354109958607244581719010609343575988106127601194601723480822679258047860345938204684110261371207445941399768756531290164884845890900069427840711874799880412170963987851217561190157369112667985285908995004228364027930420119355680880134176664342034103521429109764878488043302846382785533043743628661936104217182299106136220192166091840328658747071063065764834563083919266777799136576191871768232615659793759097247783091202937971235643865695663190531248696753328255663909091513540322314518973570437600101315887477416487570618014698562979321717093125387244929938466324757526093373054748265058747348314775800134295778668543707464567691116468976312192778890365324542037095145670236207223631151819337339080188685662997957871709180418397518929775684439478035777393181957386863849897339155283139162119051668844444035882730479668481365583807016824889012615000552183110564987346199424580097700236726461885897451329085127053268664208630015443754156679970968650598108282562590126123300377317012747729571064943848670850953374608698093497556213733838334542821708384499773491942032598291540680536775930459141280173049467826954164444662406209062186890217219410224868193518481092884452875165945075435502248107707054479622504110903225206893557532651615447916721668289400668112980869605156298818492138715067551293002449838836012217658530324781645704258806831019760226276515175402722085218561540493024584183322488399613386020884154723333734451545091557529192252280282942387872352813494641587990842461330064449178661099081114829138051373842884349063946480612432607554719506560313589506591199181568041628825169351569282801489616748341014028453197348430723492914244052155886754294500559375049594230019920478234080779882815301292955661796447625818496171639790602422792053442163293606457907129352751842794643647880003118989976005932787873199713100420942180780131915823808780854171426683270014558557691181785905291639371566981981884733185430866888606485816057188088920465512203326854387986447330735115865345958843136872958926748090324761173562715873708589865463332615725458811540367207945124107026818248673176164058695826734025501887172463183466918344344266161234287348762365082662673390843660959454391287428743687107113964203950232417528028484776045300490156247850771522516780217552585790644973373564007021051625361926211970881558404156764422031322752239932508161754752926732204854023030497339696238600273645341232571848235023227173762998036709314347164763372917199943741519768304417106520172322211352867186568790599133569988338165965305904776730339681554722024453064210664047875082101900407020732602470116144726533794172972815905807876451689264741998028461710298823049615398246928774720721687555065826316630793543092073678316158906677192445853542385708476658156125081420246597123270637499194649609175841623269962884056287016762147768317948978405442783221690609542361855871855498230286223929796044065457451594199938094813686694119792535155918993509579419009253458198670165525673119731641911307628023190188774544233209780978477460692096053507933059602875068057509549154437384291438862932216371758312498285650363441722586407891884647005763470296554167959601902885754868302977994262367971534714364273980534580515008662122984801572739478612720514227111520724002078870205528456333910615857805370076100740586847919933006781385361391543989601391395482950371547121560663874809024376999079968955890352301152122660166746829236126103386682605399603473660978908246103973851736952361518275586186318323449245199728537353699789832297426240356618104909496274788453580004751345001435123791353184529959170372367329720744195034571080353675900481252105771195967941338889021353484044780527241024213685268641253064443308209437413689046167034167424002591772936056176308128336970865506716223623288588890562177863907853488257498696011148698557532296122613848778811188124709976701313744350834924615322059527446278298778259773101923353141522394078573779083373046219089480347631606927110585202842231865363953754568315412223757710921463891418716390755364506638456206046058530004727459725661856168458208626808069209199239197853240434384318794837865800310185863474054754562532830541970926644370971982404402920073286302901859078347179816089936470475362823301295854368823219635471028485064429241322565440546979010082578463429547895008112494088585786635880262350343138652276787244801174243573154049206566958103736151235183442785477312014388212955341750790701494878734477851984501192319729174564669007365593652621869519312520822941917723177950458207299935130752631148192749164566112224643247974460335075237335354458125432906713812600163983729177457400566751300605500051370695089141859170966441307634387978933037318881359207828463076453895866279551337459696507019249230862177750707298157108063126932402561385203464701499824108545738512565100901516520206606555231758386677286111090008436269148377374234417096778098064305818471872529234739004707416963853998616330689865263258790333419860868799229444887712686640929500808580226822268862977529566715772650304947060179823252028995430177070818756547317819294965024790920848924177886247177468776035810491739483805131208717931333292123801167810561281734754122387095070854461145060249183180457083260259554407447905721710776966663117022059690772488479929162207132911205650243869435851365787779366933987673857043729964534713843904185905011866318519233984889175306594893437088358334038365080739646313897317254704910880752375138603595823185077597712676630115644234295444036332286534319103826469229963058517345555947367259649698812566710911645461615812014178130838638302276700940491212385659504884259266942335504410397310707698825716635813080304674761683576377826212959622722034653582243579885175029354153375869465188724129249108927868956527144308008273521124589144675596000363408821425570075591747904502929416597529111715581205179141088877374909947902457859210002712822802256833456069165462374610354730261117808001768501188615908231653779974646173681338628925089204430271770721005488762860798669790740207162687834226663227607734699348101037703601559865964131042294465479072916065029704649030369345467483067951541058584201455781740093692795163486224605884061399631880798618662733200713303657347588618885978185480166830160652736021218423875689456223697798964531472230181891667632275929740803955616426915036994185921192121916677106405703872511824093094938157700046213034977964704064746843250579284408308476298123622594729016187534672842433289587627995839184759015848086733560702118188516819062884968027611821185299054771496462041938815599299142707426656930748766797677588742592776368978333596334246028043474391507718265523184833348353208051771029127018256748878537472214954568850032080965443458906008623085275697695014222421798452891473276900200689343219887367058623398507316782859006263202250606341650535778427219314708449629331917567424817682848036708826126162312446398468635439875656055217001238775906586378044856908005217754844178241378760921330512536851700014822082507737172692166488566292535145886307643737098937613098654108108869101494348580389710372230215291573811996715447610329207621262382193598262866452705182855963563460177515487266786204316487328399021689025233572429512221423160136569666723607082518270234908981215441296764436581358005174429138147623592243850060435659140430120414053566572983946905771168861252340992064004994280542971544807494660213495206969694308476743564981234399049205870457893526364042090823241407411921744734621569676924374182151508854352624231077583763373964791357733810864523357384610929022534942138904005516707924453268390037739727005576036576958263012318904189487904907160105449577553930688898028138310253802998108411607560906884029145371355531477985182866951226107086048863232054539948646526278299127265337884575663082186991366324159138094423859498767306739229481027435190575945013196980635718401015445719345825014395579280459052772125292377565569340521172918188360992613799948574877825695782462707623726370813732946810120002497972464320551346832896467745422861375913461485081105574086899072729450110465870389078030690412257319772716390464713393756278629903644723576119014855145052114086965069678900176742734446614393749832483657145934478433770440201864620299029609340227031737746978517110165229808836608762899581900407798155377916832691090877648968287408595889132086500908990117309824476287238879421692567719635887169235884948979548329689209323040809235446688100402960367945367039841129730408018539661250332940439203871877077661099755958069666768921893881462475611422023277496322540596513984070622667282567707327786011303190585587734423863824176660835981557146153309314462127169590403125671969358034756766041333499025899183192028665518591824885565554938688064876745333675641822538429762532647910440843232671659230777380485162877959606971091910691971980195890685935268369621616500499196010999093129518137874679017332392115284328765250033024792031144992823956561131149060655980051296902471293937373337247071823160162494944157740619652720161869460025573217382130272152296774052090742993382845879677588313428897256422385713262735212081249333644422852768790107880936242854943061466823597296747841018920958102897865711768938985954082660933411872887906860597022180823121648403382042028107519897446274545480290712471339472773480952503141332315121673094783387730932447895594163803557109087541035827412484071561680333556286891716648375752897587677035204785859813781575689459197922632344443743675594491812258826179256301657616588232439638881750000412557852755233052288193557863180809060308680745670062335999920978050369262029082282358055061619182223493414691967477760276242398623559844720316742615256237261245058564352131021576766677794128068855261529632319799014931592960418019718635441161687679120031253797654041208749167151073417443739154636477280721188772991894573164171413490736657302098747222185782895850983268012842466121107993906761628480586444878477014647230618270181725589509975711854653266885088694509845922178156416907494230210769932304357496461027793841628664591899976886435349836006339077632455071630807596961797943350364792143274024739617845221454685635162029779710301825109057093606022700144413183716493968654559132731992872174432618583910939428915984367516240331311363811413759532703647992255186118841379276520773648988063691551338566343881284873488713631503163337952964166347308893819196118681232334983722672059744508691693937010250944664146457878419413185661123888082533296922154011530272715818777481174446526882375901754342650191891528515678189721628972632555909086500889713895736633784158012572457123900782953098300979374376697507386593623045691908029193794184626995948294317694032013921841557750534385119196004195691023948874281325816664057949037098006640696500859029411293292134194105593144596622404811157429158735566774633414464264604905663761584518346320882686450548986211443916699108487519044779686957735340305279223650846440819211179154735346842352524828373229813376483646713382400117371392855883828460195891259987422025731099517998249916372594092957076556602674341761702960031652555452292981344376592574113554398939875298162981939725845120754663429979242478608914086445440474303145404085013217720216108344233949082452397932206497917173926328624390761414771744463419590932385953993989366753273634488722602296078582046445301779062732040580401021614210229537372000199650289210755532560044991229239319529656992936648383651879478047015232219497764343750489369692278456413241580042697632301771747209686503405720542647935916114162809873862448938045835091165096996039011761254165816196351675476302983420420034178565324591508993145240230419381076915423460985853068393936329286447270812071800250412152544263273321150369418147160158101572715586165268731139652847599429959595589405170519376972447060941652455975146709351403333261599706141886144029719955753604144122048298155276352331388393482695195544091004566452511194536383592074883562930447143450408810299189529197563549263604252078753287305442755566658326449032443626704434412392245099865389380136366402614058497637712352509224825517786417402185454093045883188729314916344471377878624441486486672519208558011644714879454595695854452495351742376684292656246177498736678807554367651759540619805550723184822349322203255544854908437491715798046681984714318374922528187430285954872427201011795391963289225856628193487474275185923021815642676730420648449051675270457921525098559564819729240882433021377658472129539553904039144898917466699015178374215185180414364120942934633951083770227991730477745490817385839160370191720470600344500582191003302892149367917987669215963205266020190576110122847221394209856846820832837934361908562135360591226368734943769051295831519624614807820366332848695491639669878123525649245137357512067457585817087104929223852952106708916395252477953309821095528184993637970916372538826738123189998451208470480691823015218170540343977699347784420679487422268794377538546150838283536031311205426137721870143250110205744925847037479993615639094550081027656816917500974602018078668386304360059881328041792571272240463189741445807275169525411624401458916343548805763936736824633268052234603498476971406653283959295166099929715425779785570768817440084873252517862596185585098862224510706411199963616500131092464861820023603966521345657233662678252057704192666022424333009348130702334282229522922018817359818050910040945887708668461936001134896641149048961076833359573028704813567655161732485433945482469567192128078593121707229244383896719386112427298803685733741235952068430063581355953258969641423873690620988670710779022665726920554210423519349509249530091572853066082746054320887608477166559542576038512764649383191747955714198876420357143467534142025424797474248164680999936951776646359759605475027613551342165026616369857348901735152539960964371126944382595289693856259694744688932565431753950039343800448318040304812237163648373696972283329351262002058107746793874216265810874200988702135614144157130750360821610936416628308004531785745801835010836552335251233938097663730371731087349168983061699937987290165385523853958782618602627901875847467086650550162301603229958467488526846847004319570111541804179028628796594210965967901935278834968305984868579484573892831603919648106082498239878566792259106279564309978782970777334013013756900119037969006560687791004786813245236816912847251280221508301310269403734380788479403866580689787031702384341478778340473819065813443807860090850228999369858937403390093210984869740410538976593433045694742935896354535150751041202336261978146563297281783802083602837477391418742048654135735924147977459117205786441717597357683990989884789606818088212772909983035186011907974133301547897122584383877735623662394795728393813736314267837269268048799881528732062997080217327006201801180479983958464149138380085535415353042464635570213719982006620342886226817666986109820728027468537342403341313798922778975843570310689651314721376690884931724966182447825638482223459808250502777680320502410457624450847182313513778770113715239118149663865018392133853678131096306876987083480777122499309998374303356507186682803702186384796565149954035591949749738106168215905453772040373059956827236524767682722510698198276279463984528688285699417395828698160943636884929499482625999314612105109018385184083491156001890656059078808110854056498988928604184902715246912472437999215129855626210954124523583364323640572471878679333171816722269537168478379940453425441028833423978514512927769845685132146493546436320453241663919496099232789713085972681684101139934145081989588951605084456492593735856525625868950098041613038831061891913732134991521652604744200328410688041649764787146447115428763765563793140248415952681216835794572424680912152867653592645535804061359974566447707919305882894820107259195996156955599306391642716609712650920941983251580161660182809924220608845904962110244388978375065167831766678351589026778869896674614098741561100355790379111281046807619294537326871124469672290241895707230102470479207157673759165244383050213278837103211022742653098554929693293658889599229406628668773355300669191775544563423946521288055913167430856125084503988800143739041938516679248778104526048991652439331662126676201519678014277711434078976022254592919188845384880501626345629901776715427140476982264288662514863137877537056788059506141528238982617328820771509268696348968021916195005867432707360918486809680172081474666500016040460221730267136568627341603685066886555218106516183565737722171532217344880282507092807086339822144843350419175249018575606979690549814241158835717798653613289420248603113323125456087886409387719173368321508769815683373010804006260591777039954195572274843847006083868001508108421868516467415934510714114033607347243137765677755751869859773149068137314162804540135886377669659496042484012298071538197634281632356486291386464981375272900009991123723179353079855225311767037819112639323489203837999615243725870423699702150276850917668155703985345615208508411839825035093240625861014376923259165703830880033594160406553278757793927294675233930161844265539068389596001648236156414831608521108220485011389299782580370516897387892544199178153629926899176807574359316445513796812285325382259137159861294360220611580246770407239557347013556730297975351713288688692864009100394458403827614457421306255375621669336056687044746857071028513299001805105972093678307712623085539783595905760338747862195782846300331700551941917441763958381229137741969404072829910493496169000738667447771538890157062187380746911772998172086929202076342422659995525468792693632082412327807349704401332691678344164508068432470487741959709177521747563312353457822378431538283697989172482086415452947576799005584878948542458449050940096510651900296272033406996498369891320876376223952816468695325421889646197048430134254761390741720440110895220978326055563328624029172726348933795010689197026083854736437848005622132966315397865885923132738285400595331999210355604171506036213658811836401642740919584886646075942168833879461885234563568819681764531447125224539072277233085338323039385322912753473187671372610849488855922015328165131134023482695065570756546824098199282780674477329697909484989653874211680789751377853114277308521594396427788833037493461695259639030494820901579291301733156956744951429002222496380647999634151145787272489149101742062566047173084452332297030321496222225337638575828903534371545648106064488534685817369613381308449633016209586031316994716732237648354602713821562131504483714286771212478425985092873583740006928535005474592448010378238312630227720867310571718893888148393513533059592696784054976659484545949353665885634660360399414717754526822168763697373180213731672906591171531253478693687227575341140991159475330881826068219743376701532252137836765076771028535341456587806865153342974141454034131036150318410711033081802583538846493441529325155477631525467575197317167500405543497749512195911509096494960307389165645780487725803801645237903858127997448636033991954374296227644041606149009989220955288976924292964230689458397947620976805720646975892528531538628553494705530125919070236431960540787990492688516181259711639463421781371783474945663114120814814147730680466411420602447813706083179579975639213565601940683381724335670023989442221856310872833636812913189273374641517962778556126327091882514957023556475175099403255328757619112580223647583917786101541492542124252158996982336377121869386559778649234976407449636765067160214470853424888163706685394308699340015448170623470998810986987804842265412716483239715398544708406854758537838143986026094807094882884804856174066211439644034490347504394358883339806560394018345597274656056968877097241200836758637634776392007911273087916788532222043229721099597647400633024979393150727041148383497171660535240746849171052470380960536864838101511975171165896247224526569474321008732132073535637345511194063598797263466143015586254571363291703104882129878754211195450167026706834670891473931945332011728662659427482843721826626853732770103037680644613094841319575963818926027623214096755138320165169014662311972752727920123776461143863451002535712030519997283597009108165803152524093037466817288571450857308896670160259652095561252889141866762276303086691198110149255880741420986949106202974148965218270591782237364022096459129656806587602199470930249797314547036049358097572040591940553406569869715470314421124334495772169385852597948469085435322822672428755220163114044565824143151366670084607599375133083160457344037191695471301930899253250146732906934857954237014819650620985487312491118390735450402267149336728145793029234289741773067023818737550209759624898635793669182869332869615602988362922267621943073857515433133078567776422343083773451264402903500860736500160639123209724883011094116185792356576075725302119433438349547779571407924344811384188467438094398335187258012640570247330757946396419283330238824559443980837542046346734673228462784783466024249146034761088514049700396478710617948729319340803249162546476011336192197655526908829133271506779968417198606099788594328660393860782212038253374946333349379428263077353216800270738086751445546957737066707948036262731410398649477918778787590516985347725852115679748173587081575567504002752842906897671442418717745355431641343662414609586814896393303606552409878034118015499594385985919093533716926599977918303052000086293348853335067676993529862730500392653703378356608199276826951033791813658864009779645501013204583850695244504254983540230364576961183479529341456363600688948558713274877493905865013151174225100190458670095137636180903293906760552106672936642484252442113467577675153072332489080572266215386226901790875538548213197922726501203179049767278759936940614979111119569316171873829343151355285238209434475540170987576772066931319862955758591852003607829076719525862176583156983436279753129856803630628610824646144279959772980853148679417806937100957132838285518946870905819816212930286939839688533872937266240519432400505524754520750325449140139721858267304736999191799025849675274400253259300723612046525483324575188090785333763975583633648618971174902365257134564619587301856414231195694837942618044663305022440796914519197365429511213916162555913860232614268037651523062739973017753236603357886624055680897059570212693285193415647105300702461887067177664214999121476317641080872471232895593119812984447805243943423843216298485163336148687840043388772540291451322087139967339040697799509480528693827337374481559462023709351944641365687183452210044745585567980289295280676248610974270696480830652042726054761154755261516612737096311373665703751017207144949403001666995314663753688074782352077457629293362578475605841822756545425284042647125130112771957896230129287311940111533947481491047144895332096009050946596481607988365612387374737986589156395355837619873501297191775752141103772745929651067931818426934739650971277864727430013906027809598923561699682022393688160134869099876810552434806113640434287287214661754765118422564145780682018045800513902018303599986895863147699618385074032104963978466082949106284820475444812978161694058955331348878533409207856187721950029096006127829514632549256768090888952998068427236710694918702881780845985791237897264164136138781853655843028929013356135328138277478746776224918971828900678373333051949947574904819405119394047405286953658220772916867073728362135174073613333288059261004938183120261865733629672928466007732887849731169183010670181148277200585985941439022667483149250408838391273258117482037850739261992197808058421737552006163365240198103623144334767493703311798861799605182865788291783629651405275984083973574851832644571345122412421510357764494584602533944021762526244099312520541282079658881567688118087141741634736232435360036914901577573533382194092575971435033332151772593515894670911082774890228114812895370096007055193693056139929041182423350214286181730609047246736821337816042309368913749569981792352471669427836977544940970792961271109268002096848075981204191184241146846586658875594126562373079685855799297740984588257762428911905878664649186847063053823985572633897793367182495074207794772187462364537658234034354402110237504491299534306565072632325547369156312519294860386671033278465148830145550937824444072792415359588006310010590101602826839860710256501324698753009072615065110200180366475980197547967744432484967998691598832033893895522524502277832589065142822587572564240030688842127620574879567906441666389810371141225839477407235103394823488705651242609392616410732950861418410932632566719589592425215201795162710231674677077211039556963584745322420845414187891893915326296094322062266106287584746299007625660814036911916832782512494142119233397051048481372557624977950673537028546580600488509108343570235751767907939121982605824746390376954407370551109409002206058710515959222012682004953268804715941619451263563448887206747657251152314034278445891075170923023572030056321075710545298606494293630912577085617104984087749529127624623696276135411120530867592762628912221372149670822966024225158946071692914376390582131200589519679046490342667409972162960317418627878951626281713329774238818926659150539423931321390955010399358808302584025581627506046705311924630907533544486657555397368791946490978151677783556591090211282946901741192433838301655319999188355444774391496495421475348911591949425779651662769265973426880898622499231914782648350249587566386019287381742919390306525796528551149340385903730218298023364834854083526612728217781061217284537372451793001931564532878405891641875583543732778976939191075720396018140578560112984148128452964543577358310289448167958117788462696578970496933799032422429949114157380997860253089668812020056668591234485134065589281389576678576067118336472290321460399260449740613019098244231648908228528308308731204057164230920773753228896058006876813465546205762675185459298069193781711047622514264430686717735434107523018499285147708745432991225397420973713184612791000206482858438680361382856030647994954226726413265981637854988794368437434462984759068754247127978104190627917782024960329233844233771666416652819375058420941588223554030011206044812403096275395983104298107744107229090391176559672583236411334575504143418559028284511545041775191758017688355240528121742673226727246998849028572646912959085624565378303382069077209392965194965614035939088993158643385636364159784024990822165811805848636364425696247914734221024117596911463567110708963152401283252399224901833809299702855095671015189010026469462388983194076819560339770568782991607952534604032722980966848913940458564526191722775869360146755074768359319588102548277934674215298403954735203502869531524653652884905821091578154606782017816939497306681815217251365984435853474418395367508620732245830815033225916235009871860674679245477669409198062162395097980443572298890668075194540057142651908855073275760608880734344551821041283748153362916464100629563839014455768995656018464735935182429988913905657675014694010532892738263222519199057097299143685654885032537948408826817006699907338000936289120431749299955203349472734070261909193211268004972732264828873826443237124582968397585221830011079628087088853640682065731642175447948971541538689771384610210149016341733397021242873660886699134862854087652815203809074540895365061849198254718734571634121615225476799058813551900209320561758608046208548050524378469863613034797695220655326464313147771941650993617477788945043992227970231127057035040148241244853705777122826793212271932853578954427304244912567593582146760986911654811830835197471863996589286510427602968286260353999454915464818438984824673779776513355389733160207564893289140129558322548485234908111892120905667930452458942883740759077841873855367371699031234725838656476103566280140238220474623111743922247303233848683791011485485513307305354960387988449788390079765143855138571269662427723935164392946986961609151091555478986619814005171526752061653431871590425745666266770291497365876148685005102864761454895480408293963413729836275028046004160833256850267588041963452202017161731947563307694914873378875135678112469153674379891301983001435127269041913310445999740226525589079003742145926251011718915463432817151007278894450638093968479179295475873308643806564511577297219462990233461032074731860438938968215347947701657737375553587804201038292833634348469002459969045067157113039603319880515820757455940746814977982573464347930278503838262167610455660867357722526414274413887671567947563293135910802338359038304843034738316192944964118290313765236394980588833129543047353395746766849588456212257055512963923626007683370542225155979383406679948678755925603461648619506009614345538721597664286879692868811353890309837122222428375444769365587628526133054135263790490877589234623859128708964490886182779501142324759911290452168851699350684554376571433446727734041700767457188442482609907106685059156803361784115547460363620314772080800661760984848395686797702169561711906815293809775309594722112478503079572835315297853394640385906830487711710246683990717348060175164734140479028837246424308421322153749525194821423884923874713503745062513486830573120657229222567081813378206196290205088620819242947409840045229525077996971113316267197026648008706244656036037536825889119474933345944339830050658281953341632211267830295674377984980253705741937002872389291602170505545691392233636141175030611740107926503564837034676391835770383928664506012499145669634357702449158171542891881291562615911747637479936079767400140582185865297594150128317315450548039597423386405701363348249251638116118891957309809268364904295301101296977143899237583739018296687137782046828404956042232276667612768600758466892475367757782930940304502952449313274193621818980415360988385122431005724126391362849591315860917623011748234301596211689179879249470237677589762280156398628103209437202875015974698052018815869177968479297912917124443752913153244912097561188948060549369807465391222942115203109378398241395105603607807520976617095197392299717015375894742537768435696534489585242230514144738212690996872850880703744933377008911037728797814560543435657337753323656180207075352707309444882954772907585669406410947957487524567723630225259763135860406576961120071195659642794240477269026520493785403940596754322568885991059781754487338681612676619309796012572504158210717676317683553399406311033046983609867833703722306494251235457507792996453157645110710109555762545633284786743000722200234288577336957374480715608963799391841790716295377572250256283916908254152823965292115662910390980051896504452003342579167385287316067992248414428102642811561016637026123167112184678174720492712680577724448795441635066419422207871021129405641719236073388733284712644538955031580698012572460917542919334904695790339567144496710068423175262614866833663281730613948524963233539704683509746142808397119984775219546394294852321970487305180878584262589286166393968306853321682962607596399067238211744292091465987267717158962866153488777838401265105240931109033987804319394955060424531114432636029461563562296282949555194507598412079710817351835140417441144057260350056945122538592113379859749810702062458109156505375468749532633316033241189158905182958210840783772198169593381092014891994288336549608689500559311800878115591024210417105547530773914959595244157081031499165273661106987565288544845429120582800065410340477445580437874838753746536787596715713283611988193110112427548016377493361014325251543274950869282254913553636578242688464762393385602383361520916995060748807392191578905712727522566806602434909732878438974366921466388651614206899089171264814606457839624839387063060313723986424898235107547301045607598727843356597577521044198481805034340165400525188670751547264110876366174834133840986462345964005112649185810230500739646588029083941219797194358713752910480494957995010381460992398273942481593980358554329342469776614557986861472941709518711569826498411260001517847460350457675034781284668193034999941695561146866488244452083141696811122867741969369311481663461270450453965718646778133545930116363543451491060396258674310323491092400055550432218645683373285896282731106043665562620700443255046318299058972075280608999347114805672326560666267979861789947547942117431122097077506166949956256799706821419825705932686435404084268412818627002898004244055074496484373223638839507530208906448903438115094298040062587950508539082679500993435118965725289013154874829380666754534030363349734861637072841070035077856570651622299647626326214470848355266288422665500260275314026051611267692990205296258040788783396925493753234704900507836041418750502210997330366323275082055301083419067067138276847526241457368867840401592555463397594676389379223166266694285878777935033518446396716302584134630237149722500302356923881785715825176591584347110075062832649935606834173354674512819932669075490216179010024601850868097813565199394384402130486771845426610556574564857455621038428917272753748338897077142063374614598156394957491920325145819105468156101202127100128308025478467132656250438320029077104256418986744517270873361890693683213446935366738052686040279544760143056051496419611545349782335648345714620751570834856686359907888089489221362022870983770792567387301770139920345746807299692906410234510655109612895897506938718502168454608407448239544382617417437180993516017616022513896073582215207014082453012104198831785914171407759626330205228690887381564793604186843969764282257945631971023942690590142530882961650335673716033069373734966215223677168014126795697686451204044370918251556727637610734272920958021617799426459738617774744506413475656853161524549759715563949043864372951777331859968056395140197728529277932536038038436371009684712962473330140878565934899178671427160884859647289095839812464700532567186299041455380696807691196294196653220638211739937321064159663748186747772074007331999034788848050968417559435860082623133432440782234149072800474649586453808634197878047129201726029599275881822342752509641224651765976122506714855870831022377413985266294008634659116985829417264027031751131898768025083308223400025207353193085689913229849859497284157590705175810005174311967450008615758212524442510371887200036443529131688799432284660928714886952796925086233184988930711354380551506168412930508934648182366073699602075580228680464131631909355730965730185127239471529855764791003287881116555308484210359524081277026045671558555737861867272902045769317332624875329530722808987220726393592744111217672078872183163730351573931658516331516984428298679067882335654547021361775637711294048752983483365396622502616562233278039836911421629704280919034725765219412165099546216086953245884297414846378820764225760980056705221830034911475781732055624339495921777833080636035220365190971174800963246687426753566880305292751359525045617606348137521438543340834007403980378882587871842485733922354067716636686243874179362046796482027260883136722286423771661411676564605406925280872431116863958768077678811237567893044667705780599093325707639351309947662783029262765237005672125774818373419325892313302434234265951119822544795009662738508307426305933339893058301609031069085972110730513144901794207935887889145946089914834052659686641696078931373226258996946458542521058699712797704680360016900877421141426038562558790212395598945331739173524719771524092857331546689680206621643372525440921698946214510239629994867787740589438931512253909365456025087226586537443172604953270523496780809907467580457428308783931886104210635368411527545479934073993482103164655267713940797870959346780563649405687646930167271266088421551048682229790001763518285629267771957859868434297203382285586521368013858696212924201151959501416289519137140509419484196040130545712581233849253762452354478523435005418616295049530752651176394451540256447945666146051997519407397876846757654198557048637300515119324836895238911879300866011810653285631175157084074804329490868618556750603931094037345174649514665429098550389365696712911940588666084134538003403504382608306286888851644980896537875443979788725977552787416054322831148097958030804450201285029374690938310311362929395349467885895613235343799377962750614452453364154773483745991204712160579717197532472795177991340206130405220677118926187445605566352241065126643621449700267819375535237540692371541428785092152824992621318886831103980879311970666024688676641797058836787461323448938724190997382925938032132490916677645174019350871313219413511905865394193817336391771767324030044517520474995656407741334080596103111719089762024746686380845697840679265007058202029581999182454916505757744251012487466505109551428952016732832648318813944345137440404770180098825255462209021108264880165235893848062480291533479873418712469869938820977925732348478994032058185607920443387578943271186485619000751934465343506032519348416073081968386385165843868269713752542048985633556687225367166601188388106903304810437009014506934120352680182956461598306428135552221470652039251072141044272570159309376555373650833336989893103432743354449736703963595544688726272957973628563260362436460867122920174464359339006278518895070471789083590365524265298991652630485569739923342700620137714878211789909751119861159146481132709774469549840065754233401891203623587359843168390495654532806786475074981480543674885887269379808579277847063326064313097487673302582016402181736264407799280665721964461734831811668387715128469682840134925861421528283616117453135276126863505163729262491594119107935877688042633684493398936206972052658348618656066571656319086299563994575765183129691049346740033333964620897951061224638178310005101224513362650776865672013493067841268368150814196701575690407292157510152478463487626346395362880064397058369331903379957087414808261272215365149375041512893528154981422749176767135230106061858346690240419818783620490978935062293265895771918670251678283580741359094912037204688550402587252758550087751030235418829214702144517841039437299120378963181340518734686247912882423030147717540006642155676606380878757660532060024902321933057416263830077752411483577909986344779520483850892060470992037626408389053024034602028194313713716010614517237887056662018408649364665691042341686779457153830828730930824793397967451205059564240458852656562980864869840770922014427077040090587495069161464051995054273285635720117365190008280556385000761864138982269879385241310542233812751737476471954402906777185132615632201691183967619446986246127190283814369077355166990556280700936943887159001585481161666357530947067572123030736405546891961512149925119011827260126273295136708107886757505891241539292726992989517223849136370705580106155970167426082275055306969239876741588855695281953803749147955684174623851294665367466398991956691480075785405741155034443410931234599451050439194985309676391345265786635433682175479256956741226795073083356554062116780336757519414253696398281935118948269009175044649172497572970912963953837570145672969444585254438985928677038302361046148626456502395860371727579713827098300419632216775975430963816043442490347239118859843321504435828994561365073360442443742007570965689068950488248678417256935082628210753225548696282293084875979940057893405148563403211978506748231848056226639226524454878352711163301288230310902748036863849768207414619300802563126922459768190348063076739762735455013527166741290217495809733122544626023441241609651091097201155047072685107503510314345487730651808234417868211267034288603722658018310658326563338830168745045486744989040781348194108304851728034530994367303722002956472216012308724245780474754239121571460573198876963525019708677049781941086159307777387250889359364215197015240165467928921290373620497137214184449370785522441576676339339961388248522107103720450421680519135166912864171029762233036686495499063148970986413784380593892090051724440601631080153847012869242278147239688074516929299731960916853070558678450810765103091300663935080570386309810557812192482740234126695820038378732543286694416866458305033940734835955451587040019479762652153961136901904889883123153581319469064840843596596456465430815138989745747794243269845977171395796859221945413431390691624573537026136932691870059224443850539027253605962120952087479394059229884891260947940762486998122756346987466496593201161504421890947893534690604433029718278797037673198975268615914019217354720689776679985678588210236896653450518288416356019198892251499190588521377703615326811826344204453467268503863552428258224748980925693320138645840459220127238650039455711580731453213714515449171558604395057022422384328744771345881805586080037125428366958559193609530595742265364429121089219389099718654648622632358266611026123619801459186849982548743066717198260414608126890408526017932538865858733506670658824394315611410207559059971129572136976762171848111769128003939395652134282300045471539285249117450317106741740905532411892604772061082585263280275948173971243168813763863945665314989236829530403538742719601079547925400546378473614273951072967156014318584280674219682336432605970265069743468426280425214723802999032672205972232498226307801187071324971924287717178961320376362346161531039239148909760143984935599635758812858063889898879711194866012338793676519206954972070345475215988780957760687335490799749664511954986609658041343962318636203097797234993236254006822187424873120216745130756664186162039549763351960880461048400434500438124310197389846786469808938527514637982530667612416119715361090117079079924424481683653738102721111585579501667895561272282735098171819760947695740009380272197545602105526385322155356675261098612524654824445091381358071179995045227896425806719270906593650788992471568158802627257668876092250597180154673701315142005219810521636622722379128068481485324894550836228028679272740740874707273049928369136848506778494528926836420879565599303979677043179945382171460626412092292075733968704755814589339370567844119672122457770070217548540394876044090067723073485846487734083884985755992576010404755794518437799155805086180462215560747914290826632217106205257682135498492036786287648723530505127201875315275779751646676668306847904754660279867546268865157521976186559210991204158098138984943782555951500913168585215595045802946218527891482247154050283818211737400701350172916067702157366860957347043316841369741311758227839383127266858510629655885966607566259357481243750499180435893520755895156099336338185865891456553915847968092532079080519628964023815917170464485615817841549380716446007589762651397420171335297414601626701349453575322470768988800578231479191777085625592007699890746166409419788244848247746179255701331894647760661392361992600720567834202549424753796874498984921350283503427848947977651631729844939225258991189286274597835537127579372837891393340233038912133763362724300490053829747885903900774980671665943946189885019562242883795716696453125322464124813485932731148336361125449224009696637916870516606370891787900363676086306268686445966857285416949400469407741661798962411241812876998786570531566803531029658833583473304528288815075522473855245128129217763709659122215901046134690198965294202417389687822582559911154200977327231604637687472717781246490548353113212957007156208030584228506007946248402741061220417743865785377554007700584939893063117540347984770910979049287977300260640959581849346097583701480518277266584182626366022589110895095972295066167841158691845828135970133436334101701153733206348410792184872158592229509750510919372311177054020699958993720449895954722716873282660582688207137668417784502451463918553360114559800875068227857354155859831984005608632085728840244452270412020601586445072023801347574160743489606249951031214342581612786216479892562344646609383680102902743528252816994649797727318271329839623799910493799082955814313497829515501652274177397015762457313804906211373294863963413696137655708748092632856631299214911305613506447658681445715351966759458491823645241384400304970185660667047746136034519010531912701440950442451746782565158196814552247441858065987023151678761540790921394906096467431533167603611512273063751963970867781748911644855911034168257889648529050630771623658919405610507012688819972703276397950318237738337276573944524842564327223212669697316873817584976111170505019608747441198956633393788045665046007552436617894021945491295484058181846744711153669904796693560826181424563254778218388871285737121318663662363184151232701848620342205561587356411347136314968914536101204212440635038464691951698621280665219329863192321753800852223161926924021720106680461750107304681691534447007040817460557298179529075966455518206541751896211768317413184816957343180699762122092717210760041557633900963398605709564209237161219284388119046730212729522176953480276904904622774217682255539340968574595781585074171797210766571617381442995893207436076012932637245113228851277586679329958589007915835808716299182217008054793115361887424557618839982467087187016530071035562551252889481885428010615170899514569385362155327447122751778414372222010235561819248779942994734589795143914564483007791433629287292463170492107470198528048317444974391897524953082060041218085581526421410327430341847139604705844945291732024702320354094923005775350236248396695070487719049955757048358931295491075760427687935885623690210307626360289182135794836083299984936710430266587885566574778183728783258009846308711191261326346119393153016911366000598214915002468939335441143044691832090459327373956196311033511109765522041609321237798840075262375510359694703252869669435006951302434341608378382731336209545095559905856085713473839208902027193460840094535458633841518609975139227304591345881369919527005822590848981130966515341519323663628267133884969641291127759649987008269602099993086559835378713582672899593245803715815282683108823823812148136051285062301576496287533508325551372646138048292545039560573723904947786656760510613314988815802665479916288540886053985101388397739667054707719570813876790048637691243814296315562407550986311937979691322697768802881697978923730673938517696847368461640479865576675523222512744698397311233408353495650692393717707565147572855687252914590348628547203306434300353116418500880318590016016208036351796116268853356417636804812409564447167479651586253878052925339079198529384693701172296034844148758881602129183987202789772688970336582265957200122056751478524955129250390177548051706223959741426467746456111203983945204341168145682149432971705423566594428111526827761839528973333627308119299883892463995771546066244717765102531942966143989331346482636308504653653602625615515888155480307500234981956043628028123587299824097917246032885079821090297442613426711055891665851406495504854362370148281311732875356144925723770571418794234481229709412665640062549473838150808626345167306013532662488031238346071776186383247287185844993447053063131630184879086808661254892773445551940114886121237872845560169075346626688005008067779553972115702062617788385804115667455986744191592202256417931427373604230495270426957175208032770955958268101931615943413067904532739638662874119871716915741374695067448481093178673416435758700640371778850047953672060023863888021599916600241651845113607072909221029727214166246836559174916991603200022504002599227189145995490294023682693461887625277019371175559520244112994822351529287595149913606883439058567154778523635466974931061658851604192919430069389283320127058519958882852418781693380503830940019900739896329485827279677950384925995057360946633814924320262371647202093081111719728818957078271589637715590195022117383184403187796583393699133013171135852723078278274562634231315070673787250019584409622992238781346109026627826756889326033226418550790842202805179448008923939261015493810997631603047049855272554755987067042341017718602510253664494341653658374417781454901771637400206006778280328395061683646344617463563560342153457429379895093802521317928529554050890435351498515169032382401953013489626252132395004526577228369180115962939515306872896223345305906607071051916806551263992003436461333158879120992887975266947683171278161939107780849297325144469679031258337770403243274801855416628749889197034074692692828945135518064670420183690710559273312191357007835370032125631795130167201238634194108494909428416269087980084454114870008191318619881877424851614843508691165479080663526477884939127522363530582091878111606077513299542571746924257659048990141940424441845951772004850353842527365493151393820579368674898059299924468845313277952766329291519122407963875591674917888226738947997123792246084497042876435313738202431366714381261799178632045801297509160539663929013589587113736401428875642229447916461221487515494567889647849470841265211403570763943498643604231247939559190803621536183377625526327746126681118125311714694806021458939660715574036033284189558332119351273103928638280566118454239509514590924439949192277155232214196764905044383543697399963702802209630551198071623462069738371787213017004068292090261922343335764665441363381764981659929935904495953814483443161658743804316032439827666066013896087241264982576490160259248488752716336640100390363977850730763891591615479299597271833459795656492768719472798489280847087741572733147578368228192464609025327913891972128113201809035354781034431520045849596337871349104355785735994265999335640174186726222323910025493677960674856324286604540417293185869371616785356135953956466280443246415117678912277811900279857929889705648926458855935807756925136739728846219477784084800194244838965762173272624603467979317001371980789314293240513945992225615321610053189834770352824796151129179211155059198228212837412302677736306461160489560285698988884790750779802163072940836564411580995382607491360993977864074841630793375430004390607410504741777694658137076894126658079855925843783915145228022276803268561828436886438607412297995757002591815684311752646463234832450676930801161594003486845614747497609362408557094649898830021658741911795036241693054040151727175184625204615161116915564033900267389941425600713769137980512630540294207410977401781128871812768752164408438031083192054602004238187227606754026899295360618751124285735233838829996001171151618027383533177812068202815611196485485582838104850329379006480526369336169642107322534860947284904477166128056892912553206252845338476933686590055585336630293702544164385351927962559976918737759956010536883702087116477980528481333340602907532153124764116826308917476786877567646571184802690798710709612476248842039788911246994907033723463802786238525435477024079419129899056755101925661746311996518195590037537688364828565715730360290517331356151628298731211977380467844125922685905871161242986915378127281770036653714639984377093986119526765186315995207132866331054584683662364180803425959440163262529784500072146921436649069781619972167931893895012930383735751370626214483651781906567371027173601280968905873835264894425780941475531082999168910396680211175823399771333123623154809026464805511033845903728321787092405087911732742268843113108693236325675730679868190486627559552741614811590983917105321835330088729875012762272064746060605565864439472426694346654658419605911546502407360256023086327010392315018339260459073641876932322084006082930049808329338898687556430794821225901791984865157268475524266701552798303980882701868875964762705027019702917479460403008364372131450268977488397838783861579024361545022953365117180951219684745336752115219548349075977145539857505700957735568712182147419498193345214327135914116656158154848242606838753723218012315481981753328818850212362582206859308166984620770596305341712125440638605934196486639307978859841820261469297826543636691134075602360883271545434416645696105025581550168901937254159995757497303053480909659337790037258809630090832082345717226475200898915712908897384486288406785693250509211012207597065822464777940688407632870526920610325970669637869667642913428531621476759844199202966551571366743020057647708365588527627142812614895664987271952503500417354074812402235204070597746102782373096490958422661277217297180016264242759924278569330739863029864153391816421146905960591195590122858270337232890009662925054195421604629458258658511950631292916756347775768609268395308153770063684323574842711473185764225802088063757054655228485895980432384793410492486605665383499213041200064250469626520964905157790476028775897522231118915073731003455181489136256782615418636013805922808616923329312209917994930688731666240136342935338780349379404704382246829102106973229418535231593318443441095254061240553384116023954904686182447005616529665885592652406624065252921870745767439830358084229430670597888516196021734954762267029930231116951681149892838222657548750968128643074017688705553008992447918418828762853701670026452151740426501994430437179705903492281197096241212752315367577228067140106097023286675376302565160950833018403043718639771498632493183283753720964122457935279835536878904187094763368893915730624494365265370199881805590022008821625490162569376664773253917567406901322549285330351754180641976775175582568194189509347057460535534083888959668660743192200081517917554940551620057414761461952654223731549869629719138171853159717885496382055445487508010901064908592187472651508466886367930073263321358317048084162122506087830414942970326459257050825441522153038913863718663592951331903298194587976309094180171934392284345920523041996551288203146674470877429757876701934753802709375839993737146989944094005238929338493433909716998489446240639929370058963977494556485045143589068311521149415954761288217752321649954516618198556315027849460108990808421997321520440559363736719222558991165333600667647645173651670120061732081650054612367366483315187232739392616982491250254535502612358241664849637960063791091550091868643455324253584885709492032407092482835353867508573469067252928999753749907770750867280106538549669909250135038064521460316978971782542832500400252516617928481864963645570857040977889811614118013210824894020085846220847831889582709674668746537101909279798928100261557335171982600831687250740390124208075543374993368834667046332901697384828761413054015461224558636458312287997693966879001894435742342485955377255838623100338781767145312922986222810779461206005036744289022805239916852886601255722677294545086692842600973580769449962738918406521145096834693241056492322365997204603717195846053691346313472781140513532730792741416762561806184279663108503752160203959709165976190737116036026470655594817524974594816761742011545961535265994971242829556309151117692377166793817163718242617883194027853456947997222882295330540418628365431177584618201631078807287807817218361961882936362404230016954074361403844487206825383870321139806361649208128926809772973289077697563848115653220842208655152186650772509404250756004627696110044153515363461798701886248875320120873858371474250773204589526047770925262508685462840493480759183966435140945797463498589997000708727672482782224374808839527388860654068811572697418834104240398435629752990720174613632125468856335479427808731527438719669465631268230462668916093786075262132722362007490568716852667145165269752675797514258717420284453394785980864516674670098613311506649645631852641695949780525950749365172536518155009309036552819485959345422050101718945345294659719093671960368904916877687375548870616832691162711503734209890853190470624143450435092259382898386683019307656953554618834775862364369831749872873767985817102102383559783532226426132296503491807149752995667332955452552485630056772692321779290383583336988769227993164285894631128690059759677584193166592305109894957635114169238954268250832316687041466108362030526879882850117612673531459638587157746488622201366166733647666736616142237634189620702064188660811254925015069870240775189891767012536215378224054254318301319235933304189765856661157430297398565690565090796464697789054980667187028258213225777974254355387871925476960168044216353738923252141673069042618632899316897841386808654193236664837414043167862742061264529156033498316022692328870024851948892024864367798511140514034862719421924312068297158923308806013196492671656130021063506196175658273353453593037831307238338522360295988035405128052428114668361573971998165544824367024925135551350503775723294306651885535581338317677018089139121950031932904181278826438074195373145451991642785797329567545692258613024381855080957217909517350067842707173634403088081039989167483487486352129968877955564414725423416628958459459194062961284464856193313593632595675224127690885719667447937675959751231988857412769925055470397410608671634084367125248050969321186119064845258108131348311078764858168053157888906104199417054545569866508633202276403964282607163499394107244314515745845754615574483376568778711680601603160781906541271665223641353628073309491041501663197654369774719432540716016020401846736196120756432302495146109424869770740538430366813257302792474281230344379591132370630104571767751285405683242999125399919521474615258766621814452192247598754125414391385950786669524932131884113594295299765372419961222726430065883789428166892559194769623160955545363149843359195013007116401430139015424851827857687803894549233246744906923129427640955792353386046477989907115279288433094867639408504948376605358056626115905150250603807749949341760019650954692621777223084609946035294789994302793129062674065159515789424840432139831430424347250347260307840253543683871421371671721608706739011652214414261665466823439619705897984202668054048875033411114164354527379031821272393304189019421518951247296663274425202647347104709824207246892021510698089746602853819361344978583324452759295215931202955490637771224704247731096255385272642226583269859870097128800969491539854994383079187541445494213186797703937321245325528002469240612117178504549010667697699008391754146446758844628132133773681740772940072170917117376815309225167673906514602371711323056311007208332470386675076270857609602128960537476544604213641499693532698639254986835173479266281139444389188113512419016230462138565462410246983238339782706289311878383465468120710215862002317287224830683495129502082599421285115732607749154034879055697910746540044952502499189826358674013933474826791740949177455941079720400456148673941416249218080475349678330511431612507427239098828722611601174031898505981752635462547750711785140842392611412180843337386292243563391364529417379689156871613009360669145666806066639391107135755036559397977789188721998500149931893000364003835720648966424359517930569481388110380742460881210485712943342384177160946676115711772721864679646433493349983268330147815733359061574783097390720214092605930219321688374524907723674423191147307158556062936984551235474073784681929237463537084601673645493664810045554181635877895684547868436425261774836174795408207414754844968294445592311822384815493423800551753201403636306407461421878585931689967170958470725479953726640135449472030416749279020384371881316837799075596230669023754214555326828987971838726172093630065217068004779991927788865006967568836958744159499973459320160685324962081021221339194255518979556249238152886759902589721956098643865200959462420221742791655831946650933851525740257891884694123662338502444483104690531051054758919906624929627527558467049472597717076358824783079939171564803550157221720574935282235600230735627085628915015730776578254264554910577524697900306294963816890790459563900827854060487738147437231151715491677113333539928962930341236462445744564191291525012993509882276840621838505893248240190725318943964439803010093236294325186470436340563531348076239777772910131156824525268239762539919624500669564117116332147743774347412353627321728449510922268990716786814253791274835215678006369713799313788760385358091773484058674151735740230473830308539093031933473250249612809732341319037985457893632471370384797159594722157054946435198421759035067003033855974377211852951767052252932281624802795180366677552678290579274915261900050171385896548965704611217035557043870879054250919027687432140784505222392987623409205410799960559079828495225880830027113253664311238331240292912518132697403061030171000979269840910590540709954917988499364327720344632166745033220770999712736563632638519508518685370306250289738497366663800421660906972674909085063583924257404681725528998543585451790659996022137247616433473970064686345785752164353916781843725093987718157133687686486798408702522538233007921317707394392751179976520204437183780484171182876267082272387739351176237254144941253944991603412772970899182855194466521706038975801173912507301935547426755521169173383378034829943318409816675165179741147167464879237815985800838147338766413194981745563948893565373512080227253603091368057556019774334918702047878964417491307662493122127813481728387565486733735210708014681366496690936766248487153243773532383172865026762373299983082536226940720782347890491042746188909448413536182435297653066804782377487674924606519714518406798083719636740581479394883185264361229425461893599777464495680757670953706426975107480533082858005979746531834825559286018482042137024523314685989737642277200895507659332773888689311279167541381594485659709943667042180840659191641490967241228012519351212596835654277799379240871827573263768811733732368406734378820876099023620048129295393781177041676852508538573913437157165464461451165685770314893300985083866745602688333942181905568594735684259943088674788487303860702730231815274005458073042245456810365654228979722329814816131349619036477968521138501031293166119697050515047939639799072891184293321929250279111439091814358166216374627407153442966918686923744936421434424367618247958181285830114065453624689891589978590889373924485787721668868603480025876726541284490845092024408420894244436240939173791677287201108698994094258484706098091910772361774531367941568920237920652058472900726792813911696997948245368485922737313007382467115682165130902148486101177809928584150632282344234970453574318409614211678486878187669912662480161073050335156064789080686434662800496489480191498071041436615155418128208476356267852697973085813789427693581595840984666115089951613900555728494897636256281551386523753472588120073445429317638253597786840823681620105041019711624954639789348852754290621394275587753811236372066142067919031917571439756705227355059975599857781613006109420672521598501072372296035687000839675569215947516764029621882334395936077169573533287734206418157599269288097862773874168332439208554607235736996048450591005207621471162290407713688207764461757686611777120756351397448501270381743345158213472702670085110455183208576754625882480013985762699368292345359894186168265414628820284296087393001430475534390553504260757961412672454502835599310182334969935610848522000110932667119422120015761918109903335262903367866008769436732334052143082067509749316634719503324572779986499585692222487073711462000254176184583919208578666956606801129670612469111411821110945372567145216734298129313458069498382668863052510117684882481023622253642927453857182922512967400128363212922875037887700729790276022058818780864950516065978808488014730571595708459674141236908161663244152716754992016353904315507935637324065823324729558790237221294067732680764603529193587517541879642246767556503984114567302014466622420835304886903179957524011240592960680364728821588485783895651081230807662401168547728356374927801318782209035748598134977435429452237365697928535693013485472420857868404204957811774410229783243943536886959055321710861327767985805192531379048725989430825105626025940828817576777214114220115429984885533059201083544844987867387460513205825641239067924423486612287524744500309388629154460972985487267529752478503556044167374449516070012581192861508695351044400350225162572545771013796365382553868651882875698334796622285900008197200532770768400342068661155530506405054615608887822198671383125035749979796035544118861664036712866056309781364751797563525356928078078836336042212698761634976950819538485811319869147380136110084415882453431783148742703360379007692308756505501840075825260070472349794392185561224393403067387932503652462179060741071201159752844787222447249930458580405799419968926995712847549899822930838912971723326645590774964456853169534998906756736540590106399845172491089700669522812854389882720629108944978548766742042501503555138542485091473411521542015685586787998068142569653930037934677243247869464821894645886202249467583076871619277790978327773329139364936176895670892541049529710900765559292738476020975699917951622160681093041196755190512192046922540306037551950401651668210718247857210299672510798645798479141286785815756613641973030111683741566448494836081696041554893032848475935941598365288640895287104233650276457795266641339811955448923740323843239921950910206074279915933105355928667861051796412152511911770476847633649773250118736573210838719036757887072950003345957052947793164244639575978434346363577238015940476621592416527021694158499840590163444107672050002466195569296686332137731091922828329724106781583507353213396061506665581369322415177780946759828712223552655712708740421108662141798821811769940290221917183913442301027975230426775520364561643247263692842364321177611068643053943671830513237627504314851961048694834205460722938563910950729014817241619706689941777317893739548618848894484556886776609297014153086628126103627659149296858928322332640542587516256419014244115886503159547986447121660125386921621411238601270255538571669900168319284784155323131168472394918806145153499224398758444959181275975749896674587901300585268749664875325226085889464218718180824629706215059739123221952014028960459956198087046706642407253100873433803256078146948876592142000184621734730770219479179637350274077357814743338798859845218210686791469157062688021854084201196514468381509796028295940489714281259670786098400199404683826750825231266702029170251614058812675542527833541169898947366882072565106573057428393419285521306192285470009908435102615020395772481796305453709902757219591069849550720549768429751298676300739607233984215232820271230219916274327701646923502683368992315711181076407218152467162356413582435938936658817123138378582770153701991719048024003947888469811427540708111697816603504000088100758479811609829791677019734673547984094138109462352036670157613118487117449408964339237622211915667240839442040143650840052458930645400923067397782915540601314748164014085205957919211390390513545390706979183427171159043396470371413455612135397745485839757850513093032001193525009638567450839317849065366011212982908676754075914795525763663889778357403757136520477072188743271040405898893923685155552752359132831743551380222574170423978003341620685424658996858218218864994803040904421262282931216739366595934704710981521015379045247344998440731904182342499676625128765860419207974962535963898557195369011817073702895418058395099399282359587761441089986481459629664418728425601512955515387062979819468408203946931650277360452795134230228734666602668510434332420006009683360155471179693431099962260530423645837019000175697120153378890836737212638895482522798947500198160459060602339815599254055952005392480676649113679301284970787552624835699536865458978858972934586740000008674693932219742698456146274076729394888395324112660535009772828606326635992809561593714991810886131998850003128517064878641398775072194462916267640395745065294821387698684428123870995591328084502704028382318328883517516283778588923300664615732361616149360311907553744967024988178484808243056413696779450071760604171609339223025145310157285915378062521589894534744973999515733399497842100763478708565362638175598831283544527155622632290895098598075138631805532637668254384894129341181187247698110099587740446075948103594676300251790713483739132331331120496511607694541495797623232738888304348934798826990305155240569666999046486000598453814092779103950823285796208588160165001389823610746128693727198733494370499688421759752344311832203999694986376349496264901727877533043377442440070030565033798158696762257406647845971232185170909911439904616629003692631554913365053594950951920862426819173563538173265968649725017280132731066976941805632921421585942716485556383226602610637611994265007607350561993522032968268640550358188596867777085476188708816415866836337084203797848408164081960114139207645810668414546765627941543562929477996458753699467088041152147039319980943383222263394737550220130613442752123399801418998712655302856811159185022807700122713466631179055778532040734057831193646295814552190822900839298122974067843841089618788443888611407889241131326139282319243270968844846689107625036831042978979456234159506395331620022220732210087046975258875226633263304315656774851950379536459490734283126451806682814815252395909077898758728127352187137260141938106209489793894981145096789389344772855306195627013020164231222722499954029680820752424047325379236037001573293911126960813380670694312949372568279780796219616279240933100358701527054096728648616673740500353407736453829020547392809796513103698900299884335852227093188851678221224913585717561626469298627980117278105676071509340353998187628254169389289911699629547802931269277363479030446294155026575601286448124887759510756178236809809063419358744736874908312391660423706887549842851397428081520849058847733041746746642263050110362602956548024933914997200529146327167442102393749800993567291169544282842299505529307541159096231431136356610808166389834504175492980413293763232856008320053711878945653752876914519709450294854497290790466605657582532212559264772465064293504174729321093991559912732062358460575441092293772018717893211491161655044737385299033079549745847085335461512890278623292660552978114156896524396139166376604794934673057101388906906498581593025987797306296195615996552030532952608255729191165337899520233273303376576573271582536900720464662258988803721887149460620323785518260848266539245853172418982396872197414003895447237336891960684062261486192881843462309511602458461996100242589789538462502353622686258492984698307974625684836988930338321603665243030476116312530453612508013538691728293785505182133009014422081261604392279502150103182465827569412650891084164480017748484535837009427166245897251888140951084811418408685588952993120162376503312585865080751439663956597810129863021639127870750267025352661522702244056838049540656234039403355913142838922703935813539933605254541573534586161998987395541822197801755958332387766141688115143779308378979054787030388396330333601287215928063883954590725058178552623169403947124853886310335289278771247848919206494909148978709116824750318209020810393617914998543900482588203745336811431920816532087074563584912940580645857627154357838189488494182832737788157057719588823481337186480094977117618954502515664903229253302128740684684142255013522524167989179910295254618952821173110454931838060679170828058409180723944262300162240424453186051192342207000698339992927300833518877841903173443265735191299751048765985112843603030679581658281799178058917350762117476934881382144030906509722860382440224965253238657301946666613014076589840544860623328005345654781045950422195159920794934907333976628651544499608323550871117891028050132493496088639742932898344207926959521110916262894637949509650000394967930437335381322369251104827179751738953822690954496629360991150876164822689084050992368295131791525569122923790413911603239403321975518593139173139971558329134604777442855078672713621470964531417145668565517495652273243138094819138429936381832977931176487902615613108302203173291984399828785756466750568370037413028693135738393778344348340224743055858032095507068593966478757835799876710155567064900003365130088451758621684283429137662425950406665055290209461777640155437740552878918058057237427631138432892361146997882996753264753061223611737100818355709272937453341326656447057929341383993478140367640073216682722297306946356832319317826880759884590737162014183249176360984719282828209195122273592295608766054056918757439515272263955847034746280647820184814987104720150824157944526267635782714460348611501542643430376912743458102587522504388683268772922201964302638917804694828710143560094275458405474259361494154995704046497110606398726656298850113467460459931663529214789977227967231040148946780673518263687252641001890452108783763905970724846076706406972653655955261473787784180435792568686111203649634602841573918852342969926062877854201010699679042631231393486901085747451259871003395940252978134734316750673484366427545402031987038306901192593027221184385557679202614599541874380704078613486000589003386608666244144335168575369970655706047277145276744552616200894824990531303835372914670988481959914922260082125678322498232559162648383216625612277365153969158245581454111177765266183649254772825184176659317740688445599144044843933898181913717829329946751068460402986870601755783858820273755512705612101792055811879551694880498083395565455557131755242733207566797144998280215319794798941611680673666935898997618750900618679794033492659618793421622472005796367108110301537091860766197648928030412657257991508654505435118224246617220655108253729156122634413099927460118997279366100072547563242203187746951520555977225319006420761330671347742059108956873036786212763386981057907092811560868846887181979824008443662637268290036166399090596431622872584472629734802394570054736838841225871553696369259614243201597287217930423973546205814682903155031815896707585934532646752225656850389065482454223362818774887350654061246186961838685915719787481406884447572142568652365786345606368555514096237969405095295799947961084348374141375649349634157494809099147164462875826092268742345142540979622763336079010494672855683724622098961139405405464024991644620761462175749318093447687475771854732386081227545989765383854834910392420246696855082445899353466814020173565572460258713929171311713565086898461186845278627251890066808893518009048327604463651639136505835449723513568035839125933732269196898794621270512595915267734308040183081690452098990310272067349546387952520594454365931827442328975879764405848043121384101637913174203096343805460541692178008322128553870211320870033901357328459070550379043683943593121003453332011071081599825105222268483410134098376029388774169030637380230558015998406589073374650947135277322689868658450268807305586461906245238708249113049031297532637945726089570679139868900324354951282572740565186527146039468748742713640736774859854282033370770053445947217207015343548048654337250360367646286379332426011324326431221082291721811098495658739954114442072406592178931537451237818201252311837240185149862537798406700657051703020697446682316906642550032248421613733392331009806944126169142626810363586580050126001709563626391806628443523474994744024237245259785164574713579523915246608351481953170160732135098991819340502420082784077833691779340658907819667091358275332752580652729747738875581798356893627909891560960199514418422850076645300018029691563176994811732778990324748515994964907050401862351043247613771498511882247264339711361205059781246770006222093312079225326591110194019838323397044763590807488700102754775085105721359891801618400024339295516569820645483185274254821510928971771024990829051973683044956869417949704510057638045855178930199852925814215278256406384713313816671263757840185014044987314238216619710778305782139331063376410196005767112015477401541021774406200677063800851102479349018548212833426434117336119089094065470548427953933712638312042940268406888678924827967977738002140763536109857649779170865233541998532918543906227585115101515574340101606474720005861867693633789844179083247147906266346586769685289236834034107620621160059513849354202046337773527551638665239361136418325065791029668372169513123713322832456096600699841165501413539139884080811220425749710799046583483243524471376732028150532538020275438271123978822544259206453385327233853078117443736349136247480376022820127331245457776525210356429274887690482930016998215676269611123096294670513864885962105506193202570352921159423132342579560497047519733959481861684290037899541361124145875534973761060121283028936562639127054978156429775539288708929212572442066400606443627370235521178473202804439806659822625707497170956191114880830574793038350190291786426013901918509335692756776950828142359722783745263025270683336388170554073198487742989730650741106161999533917379825406937709966470277689033047561103518553881167841645562451839494106941315037676774273357479908268749365468861660396538825414193837808400080984000752531763559144693173301546023995203670212908396304847996009399035060079109751081624619666473741753696286871986494527524883635864392882852317431502580192010863303925797415221468349085874718120410449231354420330279179624625824101139753394758650704645439001124962214222527205732311277423245725212711999799711137581733683587123529593043531256269161330067798188932123671159529189679286124956101271723868658105479943195171520768435086362051815990665686866040426235558271061772429004660374157777234371845695952322012209727668871870562809101338891879703355276846612374685716670518916384169962021479257505096248561024955451808174583692956357570075704876124338771150766264543513881422621653583890359056202633650462134772294351474744602331694935143513105922091585858099203312835807038792529508178637261259253272936442186830826854810326908291853545941098487188144692113062844767637832624064139171984807771745017025571615665424662534266199630574270678803572905461583142900164309436765785928999647224479252306634529481298254118794362885473616594855041102544391148045171566441496117303703899637540560440606113635961933011823689319883819634690002813566441757334490017501273588246442228331536884390012640108696300252584253646440887016832036871833003397373342335709770520587425309175838271294249207401215153569577624709511076516869522185600481477178861818991442570895645232149724325888916328689903664214274425207690113826907785780281554262785164618614310277550806669791993386784392207946245474092428582522230796974182639128524669151957576142929462919266800134436941629446074105741909618151018033527132220489429610311350875393692117878031033980661133782106243346518972820785696440076256205257866910745950647035919833047795232713170156473985110338297851988118957202770967827387032101639571101031960462010077956946904836555444540603891374276220735042030611192726188014055895435832277272244026109614637858438086836372975506726853706498678465694760668403692722687059320481323546414540065938540925890809815435319370276260424117880860126110193887279900683540271111736562845966811394705077525233889494849383473785706279883369479795864655496338421654032783081655841043741542606157822050959216750939320351650057514826635467452521239970334148226402050271281713449875477056605180146853915129643930487494267300712040289810186260385339997394526180765900825983062278454615958339443383459439178717904169672808126132012204135052061307522903910532647343581879603322804580208604877521496001361007585292741030062074537657623949634422761592365330921031992647396927618726427364480629959083989073861913389692144863864860519476420562359165433278057597847158814681024250759504615441714084325934921037395019993729502691410199683260412559229583314313007569792373514924653032914383367510549408396511248117088852016383747197825443087695254457999089535592265784645039202880301675453780825097545711108595303665363168347199552364030770976226570743467967200340919594075927885223299006500075107655317454458652907298996967903116125609672959963032799093101863434819208876767633579049461399169455063710380556826301525241096463993394943968320203571359430309107301892461821619355414844640872672930661345762337913591257742960511195004785258047782047497700199068122653457507932837042498837826053466344540626909884510662642751003171890525577210209027653294454745394117053391276943333669624502815193124611597360953758258758834959954801445643401573867114533695948974071842832957037581542670293918928441166308761020085176631911872677430774136495033805285194589316586700777216538972339125449576708844944650971659898834967315245763089062369683776006755193205071253733460242423493590256824972335819135266735918964800046449760343154435686216030298738285258555361927375156540821752735272981278705097934801471190978448364501539446538081490988450850891153527582720186709893742254757866839185523999887861744834272030315420642154561703876228116264568158822033117393768861932824007022635442806916345429316637713442822671493554350881791191842784670167986251625241835860801693474925378967229794087582807964584309097268137520107079857544199479834709600204813984424871194703490591896158464787757248928367758780919528146217178380434573887135557742369048056981920625220341522808415512147850807522214200828126880963675772408856134096570701696911439626692352545014884521590727181697522668936144501153077466768271660996831145165493742423917790914999191861951485201206612564412837427861681760729940809812265905667030588525801361745219670086314795938485970596160158169654268097128842379643357035266010416297977398465487547285100551179588549163921691195490176507609512776045194481130505485703039215877648391004146799872474370212964114212154139309348403028432415757220730317623167399198548336474685933791150678550879353309258945282729910476435016315139556991784840495445185329344992945509746356469502523751788315452059734664385623975003212709718632922419045716593246951294362436212269510748405779125873994573397639708038382142732714453556744471553269456072333428914759168312245787912451167726466612132136564856179229390088769610200992193524169334585003497090273911174954695478473417507286332733340741718362808826609314226946176115864636462866236334879766981080237612693930747569991408889085253813461736467109874882488452709321732550018514851980235756114129513951132854699465781083770959531969121405485010850275415906237744194435867801733945607440624379037805060111373186125772113290045720817551834500532802739063989087925113216417711106158272473787191276653239710504221840063372048463671532423264830808069079242527195765818179945945637364694299576308813734938904322248368889573321923127755819382659789470984167055913471952065829790536209379845044297459039797527850810216183734196199244342054537556521618931142141164883038773970384756540973677476542681853686335772703394658791338875492616235833229246077921924372514766291281825334993254827333962911794783246726423943567124422244187420244273369431404001456266251157012727556104983454380196282662013559463097040788352028373114124169350500445435012728006227200288232531132604036681609133078716292750472419721679297825354791840684223145176028254863517752346898413802710470124085670593800179546981043157754162640425378575174052880551484354108922950330692639826515489450163898060584161017926215763891168332377144165022665252216694595547637902850841284233166926672863844004537189056079161044632422560712107020810425183322432062566913698194670525257327090484153436414931661238189125426251461551620920435175787547451442556779041205771110977683874242922931001718756900268361105281981498849477339726275872280405390154400068600718371244720084937008451124572683274825296134366848819332379764141004265388806241419190055692166956623219648012576591265435469948150484716023269199972455467136756048454291676035953735755065413678102467508238533558180184496303898683578993681644708627046954413629240796691326524112189837755676803352220335821183303796548337813400357021704683068043718354047273592617847160182643806878610466874132927142201251290179842263062580754659455395364298023286386790719984260996088527879269544924487175974569638534172119371415041064480564641744789595766380468072790427351874919468012959381008762819555470495476201953705661109114665418290749628208233202763176299625072108113852969541160348140630829712230668783657065764348327177131079483728959488361802858941301507569510714753107909447493953729494927696199941472287437837956263060913704089915261222396690784975968515204237565745520973524155602512856552394337076531556049669942820684883114408558265301540178884542703512433475248962374718220424098866640357993821042824492593544397039397594985666939482056291459036188574870650450731886467995092886553738704047451129439984232864747875636779497583899877682429289272373551107157226773359581208120964110230288254199477822531493171063956752175093167044339721491265351384526046305754144478094925567230251194010368141336085102812875010300349331121824399654866624675649053081877542783874969333171047830086965971074580403237777043611688389988224874095683836287069980080581484082699786489219628913226104849214787525803046633085331581033186968039865541404157993671020151811218738124225980784421724497041272566860712129799410385250069469152936244763747836471666171207863385597061166838630252359942311069855803427483920931423327079815962250591563074428675305088052873775266878324651359991461467744724990781428808221155940481098113576042198777793521150861644478742396328047106384206895986625853266576827184401644286250292981641635267802419258714438509060507549680752126249181120413976689822464654562104554777831973605750442304788746604132468882061410355532139284618224412831821065429300578439612825503835782350884623984779139536759234450537025785523284020156622738161390900143024260237999455056518312359927721582528360390286809447114136280524342783644426735355462398232124014073539571397336869471045898990261231590856583220635017370781894135004185990190144154932273937975500102272997947978153438339592951618993032965675375233009581516536675280645477165763021086395499174706862539765737594415609604616915268197865825788776192609985645721197587249779514543668090736993981434667249906670671093845958575373561480959111236102294260227406238606673702401085419390956146932555982368113178885754561826229296133201228575835362109623261782396194865443370811696127168422732049031307901926081474791452666675734477774558316597910022868466103256785275869200764407763277799834240124356966954802101799377403965481388215989586580993433901018854579799523386737390577506414731420517809157378189193941673822352641864335455635175442472522746513870914672821806443541371426429175247310519096844979049955318874749650817287313473569995271486595760092289308659557537080409645695140710595208132234787150528363071620763546128201708740485246002448723476550938401457496574384070096028061747469203711268866592734545509136790158512711140568376424805153184639344732368805469216435536805184379841239750206214016974784307191716780617308737795007728863337797996045004776030030936465512283120574720560499621591468573815048277978983089763456510877289672134832243373658317274639899529372951909265164267926652905313443051090037778334213958146126861250933213806996264316665064191192422311220716562285592445190802263209182556069768797781279423662026335487280376621973881975670824612277929254411702584029230130964883040758957992087889409833315796679082791917245942129259889284033638016674281465477288014121198679498162521234971629001895745146376946261133578362125286629134071716383380447923158252628727582011949737631690826735341364957631739750203808698275242731090567810654529273189793534331111054657558940200977541545907988049239308343192912079930979124539030187643096031400813981990551595045289167261061294237449256787661354743106545632836232277686333604509923830335273270194765035027876571773472962788103255422591630005672586418225054116129699678872837840378294577106253725289277383733544318026871196843260134960841126115092670136573472343596215606867198961975290370103991743311525112467838787681519986428349229045264140247025472531876147868320132397201924217990088191623463834365088185554702219336021850389135550311161148742072171105589273737691419880669856968813541672422977642401431876211580697686521714456454257458122116057313555409624673700900199756310721154420568413287243399385830560099415562988619656092990668381177462712691606060670259582929055452795517747838838860865142375651878603925232592019765842655549154727949891902550281123660051288831681898997772305302307619927676454088581906027145420575006893962727794406470462837780179757618657816098921044844193154032872143168314618654254810834704286338106439460196825793493011794090876509280278019222947793020665102997659533134663339802605320668906483124878271950633662094717254636543393186979697982341338565490350148486261536931284453945102030779585793341861898959678767045905078289038976374104114055405613560956278405896309783953949333115853768898485172366055632710555536742944150307629689648202339084032719190273307666795615211909947586982162094127864301367315064668302872338839438555202339235169763589775535894569896755041259256430064072320307691453701710294966483351428132887765090976475697141320409037383792198026259292049488291660226828854005646171757810059120152917675819131045778270841359608926483463534023888466907266149594028287558759548379382585955035182171626596410326136104339812080669977715172942123411382746652416752399725876806845675263776322266970448157830992343197018056083463056448786129670577993723112548369063184944534805653785820506800563215479825278322233138300602165724605786877053096005968510577974429870606839229451039630366728430854416787190672930204297892530569461328534320246192523201545845727675717840534841362753698476489112153439361027939920119670798994699430386287425697244203806705145724182206094699784882629540201385598698418793889286894787267934117703938615991439576664255654803931930909195806093113404144053661675248817372878165263718656122337065194385450641284134843535676426736800665427069908380794410388079007817112388471671562055703633776636659426653601522335755636899553792699644009730864683936963801270539619620129532336997207530275212860617939702420158557572328165081590143251659852534201499551198647423313233008190084456114633533813525371406824151951106313786326214023263545483460540965641015433236087017939512510811070260246971359428662635853962269865299142041130373719025843997038872447091606765630830457449001435102922898605749489105300232038171236832302097552307333538949671479382687521891678322809938268060497480550169538742129627399916170100413371663420210442691199013856542094441669861902296411179677768049045728464628823004194263205004610139115174409512844775993568015791143504333132592456942233485940413708159921683873935434716036600797937716754766741927250447260964039160629964948768455702600209152235951848103658759489189165358231841836429828942702971992294290372432156793674309433159611413157646360613682405567238673607564710095976015023156950800091807569876115624602354562010080816801694821551644689290631277305206913606174366655383891572972854860422493605211193601655252049231633472256523561858848487021598977926040969545764497963922788511443550321463109426672789896500235453662284629784255650574478978463172522153155941825798666628033521586948624819787182544283026291164958067897287968882339277987251820485082301468375934802108937144272339288215367522067173344497461832538035274600056084734148875747011362931175375637893673028277276132341849338176838950274219367434847933064639247530830599473886007803930434597798792764682214303679831052666725517206347929763957939749300240985836822552966642827136838774172863209309748862777065937320605817477779375389814693828213474820503994966408884938696750032701651612492446270662157951395728753834544799017842905122956789402080508329076648281264134668834322823107248848040452620772717982240953584282082912902887507808290464581712010095188034775364217128356371692430711940489611544843511111740246165459404833552118974661946140153881529954930279550451516720176193050320017831521088373274461653663253975211643762595642381508674766520432533950699868754017401412154131078071247310612995058373753227447567690926877021463768255026864356696606061369205329762331725324933087455031955229219751270089280048618848544438898802687926070661324907542905329186783633240916226187566553975635343328034962380900778124687262230637245063136917886726209716935075530745062953116699535113501700243371286626237925588614044710803780451652446361296697910463874065143653837341726815973896927255683671508370128267798549110326934129658495471637336546820531414629398845763960566103278888845408421249408984689794983995915369558004323090766071568049878945289552368059226576403808410983348931778511132900116761876075009556316602701257598192052561807868203459981572480571157680456583444300949593186577145298669744370215036077479685568704889394034714254843277530582520590489811247018592221883134385236406126961231027673627722861174987548870551217768321702974371422219754359984856581545016575462369807261721591425880627601572228694356212954275164859559527269211196787907280524538291134948248464954136973962722018851398096947683564059461995210377835813702747557095793992349159848571317378257468194163376534309572424899766859555760434038561321061312973148907865847423108314135403238245732068007188094463698597098901843038965680423056936793462928358941961444096670222875601582915865151743518745154377007924884009290372347904483625731901701480183214716368968008395838732785567886160064802872526526179581884339147862488456548107871439453208129789386562026424071036885224787911825460509857695334833764902652214658087841937995614509313839369266622441121915729133315338539132756083205796969963983383905368142757948201760433115356827750152068287169380444129202979793808668922569102532491612484021864051756613095214765779250977191523940552724158828327701096467273831373142734947864339282476410462352377493868172713687552318881636868403756657554188528684087178754864431891889676861030385991084584260449667463102998665901669582831990785334143110459078073741146869628396205283484462360136857821556004905976343618500552780588525289775967435893490202048333008627532687987655143997425704507240938559492408358336338756874646420636144970958734625549229328833465616845361629887559785614738145406340841530037148505643422383572976880093753212582258247144808081132568159961448431277618838554787612423346854064130561875239289622884090139318556075008401280905161664553958311300351926148310710812675121839119404552057755196171015483082479828086906347577020275015881800327808612147799040665496840042064756710159323348892921863339976653150536209803132998861091374573948691379488696529788619571387751189385053310180920739639618575068172825222480414127976348662341546636344031542846666341670214509963263410951001143536732057404174097127087825083978702031118745901306948971621997282269629387619861118807015164526022396745293851259045432118636404743146572252625800768290012685871157402220365565828177199655838850707259347518886053904756657681692843314205986382037574121472209863908321201932385614084138724370928169222074956608258893015446892817659264390023388999671529974638898222720091433823972331478990011733908052254914987835128837276091215682211866737595461951264256060442363228493120107426969311712632033414007683015352618500277039454320632965287976377748772536886129376046704424592181210895086068274169966730888547328077471674088532792693952976092802700779745482313410093215989895095076937304316093366236761188900602723274445006109127948825631610118216005356803742593522287073290409191974569131775511229604330462871273990832297797274153220133726081822612338572755309486919545640561253845938259612655783538562185058640559017315070614165303082856930809320165382434734722125914440703441750151345283473968422444664544208531050553380389708571483491013622371797401992597691810604251020765832496469728519103342276877796052017127486886641617219667176518923447973309417763941052262320651137390433544494725956666418946006800623899639329093045687576370457199844359320811163785952331498768410024021384461360288850973206023260082678499880075304063621348063591859347358678405976737018350764999135061632195407260191185049041153421803722419564722809941471204318484978726515767337211732924030480608222505171187968412803053123955288466779098395236815250977178028965979555223412829065340110592607952546486255018643376347934947928609447759425015243040632355246696448188365884905575347079129642271050178681427670971984800716250922959982621970731330533210123927873526992330533732886690522603831524376733961782698525352345810468222033068962189846578405815076285558069315043490001714186939242964972049909962019624187934153888904953762355441028267302342761270877036368275872639188111602899632073353388142701699578108814900302214604092045018704292956084137085435699459163447350266780357425892797024174736165331820670232971649081683255009439959597401863183503252586820747743263016385324715433347281584327722038111728511276778138713501256468663181118994247129140368592803431989015255645488910373985428517550982651776376562124016318959164623327448865908297215238379654172808129644300573030336351348974034525592984454631149024285023321946087252289930970791717260182374374221076629470930676043977741169116398463180316704895195920230386502556983552831815891629745496791004743913696875269209007266334029326579999269466608741132914166179796914883659410269752727573878104504862785958380643059328037466348729934058934778950871467373280464607934254235091704850219066019541073488401689779167779078500870955205280858661759011304325188175597080929880675284084560380728999042439645361016490171378494382089013011622342090562835378602611792160494568641048707499557568653673330528926015305007908376113570735863351308719809851116259509560905997490300198712103347428168168017361416201305018228296324645266360740408959138550720919690345196115942325570610004143419849312553148815742346715086326060481359131911712669809576139356614157837832204842782031311007444050301485156763982601150271106645369423200049464941936460408566732748536838470154589621819423188930922259465138910294921119950711484194575441233460657846352611704008697154218428079862005304889617380829343946655943302755369185672903491250962113190888719924168804602623436570715483148736194523065695215000139512916693464640321786865320026400400928224150966688153354205754548667937256155851174024093535281171174168086386154537626957015160185027956781133213541095929619799725830954053064828661299235018815401556381280566116841992439854127746068994140135329829136886407998192835333886591926611763294261375969011054016720757088877465972709569517494288907819126139974879510438868658342154500442534670944004296797933618066676601085455905960437299068089877505120663588532260761857999750643858954245031072702004610957115827404225303089073509324085994970625440459224735751535622061589679327766392041281672914722659898607498825398320228885824713819525923763712596196127677580991487437186436755446385982245115849274429090856788348526507681862694301600869825058213888951530126877653730129368605402180911678548625751417191633009796276191493899347898758075844067570344119894033375743848505777253167653900580899838770738547638087355281764667668770784581207789039264271210281253472332075827475224691879309249945223710941435911754339832080400929981659245763605101004747733748038249810126821798528247123182092117716050415690137387911207480399587254648173716487484868609799091432052241873239908943564971538088749349266827078404704735789211180717428169509803861800167474838816384357732701647691572216917867087646685137195991979893184905946490609077082004495409816451303366874731014675751900578122599558758101269788706464863797355325309437375245215791903821309014041797185908312710833142923417029791885514962251442161704407784383683230098665616483156278550856673792890938271639109239798039436606778446344970960764965992769098061047359812897856016664387035935997087583859686570139536256599062905353201873665357555422908475412602303001483697575880964191072566684441619339947880885566678903412053121052256975704615477840530167485829361599951693662914793147564919676803564730079451031438638143761223794604056147887499603642432632730646381349490400305054353129783439099504832723206561637616815618624164017189182638026967599825565376205030027058110823929755296499402049849300058184033571332024953562783137752907040797038626919138494251843932581808382233323533060921047096190561858750812356860348134211787608349081016921747872629162037727313594639691674849945013623763606403223979266709543550702339928515523111433711862450055394913664719394951352764660863698194090810497610367989906787583018751248377010197700042943876067757628444697393517835331807332376732384337273805897415402242468776875508319628294651044191560011518951358482373004422362216879907822407391664252650506941719629526357653189172613839026431312568840920458681294532378705694748902656399206489433312971603052103888232616928924164688098942945714866089197336323483462810356993443688156290966417748102195782473390823540631937701879079158596497707372438541213323607652764845715246072967059793621989293331241352376281122871185341079708050545196710675277336378025289982102867267697397576862517374976297876181212345827994426731285709920091147814585062402210702735811792657367163417224166430665922549972412506871164933295470031576379677323930885528190363320934660272623031082014177194137828975549950921906202705924367338511744967884883371038841907346498286338898248854982364252614792320113561422317880140289014175933409821411451966374564197952079373301887929562758358952023582001877974704410570268408490104456199623373776304003077881396624425429341618720163789088019378506978505459212288230871895334895609243490013710894153038776971905742498054752835709103751559700464896813086600937234541869255033910012854196112772168220042777457891217803614434184281002125034338805275121952462209115792273732493194499847394245434480948129888463951479870838214040418864106551557050478054641350962012034516937379719629995152702098947183843673130421932681693183466248723465574672210140001812028073706857587081252716414998585160747063594788910911598608879936574627021904436016994406090677916585232508910838926223166934669481434364027726766717821648305329333477729607827787008510695696291992617662140638266084933943893952076064113466442439670108434935547541984671380516873119108721954037448359092966578912485435349276564625955120377591330532724718509596351751177813878036271779070847901608402244129413250357716614527518191887676038028145247686192552859743007404226071194735379132384382377891190567968247396352110937418152268026013901188623910125560391294818717955000805831420402619020955648708832262020347363982069248424392526628478279733179595129906924822557381280756096215211569279939968232512426191786432879663814451740219065731543323169771108783438206357148430223360004262162997656398294398314684008366005768489256947687247908685805855128015462807821922031454463881764091037233410184525836290801045305683343512291851858018431236406518226061857246491619641899642369169079224655443663946189515995963414976039897247167118403773845287099993850725429941603072290646559895566516685241595689041229153362934735364827417782029533458713687181856080415599701730332919997409689182218913331540669712894868275643583559459151967481960858349746867861897953315678885287643876647849629773739583396721478924173253907303798748694026682998536169450550936611805867663646956868971343069641740170552866241223554440497580792779899503502890795068579424885922375342697008082266288202607915451608421215734343652767983558297912809170648150892991041768863505573292637238665532370080975329332767087194850469253164559645136190342836423971510031573640380566591766490336442564209960389313701525373809166150799443065132081477485227431274982647049232657244222783655499426101248225870327299014026088249005970724208053496864008785822948697228209099391555984326909190705829924010345175217996652007284676737413950764354865776536120990315276081698767896617857430886521986993452683207031016912513869093435130139243604902629083491818939616227010607037971663085158966975851746983196407505045921106477571881088862042956586568925478197882970283949687103857082519591364171465484756513975385509663842686646486736884518789208863491337043865223782507487230849190077012782444455115637601767775191108479254319846421960727745027161828092270608547225338044116700354505567607696825177735649480698612959715515261001946060734630650844353709423357008726903475087910359427525461737923414496932220454490024727031429783695491533971748713140856615282360451286061084709431241603907118068874305791756022795622858017432328921118767771373848245133249597205013753208261235103982585846422191257568317728429438464990621466787559476590307853324733829525699412050981772779917743911753029303316632064217303548633447668545932197210664668311244238557064568994826093472493573916186657491196479130133933635815226552468423409909853405225460346215999716981872142915584310509613547873975352638781679812605938447906846790940552924454289931201513871069771766389387167603727538394996025930260631513533347630481296952404826122302904045387428125907664670539442456972954939121420499989865236508307443045182201677548432464232104491593769195711586053547139482883816176170877917935608845509245413451904353373917415092634508425150641860037519029228834064168064852271419877115477223520475177510175187258214684496690525437505100453973644417250582968455258325917486548509733989810863158177228614981861831908005890469911181594981936399033967609718955079371941512187425292340924678336969615425794471482703714871159778760790735960615096447958492019521966699058174023587060456950154060555991617449235713470578277417894472675814770529255200429972029397621225874111939182714162698505240698203671688562036822936426014821106968158895430855726310148746645730314245721986974984817275833953329785493965209181379133506654520279207318380468761614368277298242530485973918665053156069226545185398082458490465576405839951339906103211068935944799627423393008797442307027675392585209022361192412816261105819800136887618235068363759920112595028347277786470709781589759800414990950450052959809496180727093552282900032376549934244312775399687845195752402350441443866389352999521802276781242114952673499974364285896574165803045354848031976195473733118359803719118899987382647036809890685909993004804040057309640949999488654219497839566613398279160905172300529445088841343371367381458304627567672261964381137290582783245664634046930477279935906087776810754798302669538251232677147513751605169435062848271633669690394641724085778744961343545114155324018149865219175470788251214718737339495606024678676379451308621986433855636322523396637489631783573448112375412038508429489433658416539441591401087335192293393042857183558067353154599373470465929192032237527563354059715590969220955126896723397505448667792986742160696359421950764078542763147382588678566768461598651675653468570659454731633004417424545636718668644754354482830066958807503811656303710743917006007438236074796504464911958465601903905892013897260314973450686912660598749052604293415436329100709413770602046789338409043489848493782950450295465770052940953291090791251703003855490475182803940754831010516126564784591946579601521081159242956872582080507958180107712445597114325263223049030779726000630574547263907627348966664787512463879161465317809694074706170554777190237313007541100740486685120548022238218758452273197884508376169578009807768966558486432627422575056786141271042554602913179564040761920658699919780313767316977417263473089205326326330088720675752799050540121300946663249818798674366176675422786006065740371861513931317511955391391532276101241770377663437269075886179273461725289888565218889531617538396808460412572254456884751660282776422444894736336607420781014337353014449263020738046851517629053309539640512181340764653706488393727237422551076065477709372881076084303613469143258888539370463781321908736800627451559084571889589260105907530198197638455388399724699374262039900938272108466131397057222598729224404183272060459266783880385916293035020111405926709332672469409025668819196368946629169681120948097365365776989716541329681766225942297417594656561626660933645430182802675923328525433781381254539539167790391200638874462100732844376188791402160113996831084679789083711504206369312698993554463657059401485002229752298717785250378653776313235081089169686124646621626343226335905498693003581583713587004508228424531608249113342733951651258452152202842553243120862177491460472922047404750974393905444420867943915109816241591683420018370874775429166397880151830250996999910073347963196135350023056904914006482471583266784950455603927214431938372388489773134250551706073455518849586159241406620211649848904720837525901523712873263543208295906786961687351299131067670708837698058267709510235955356259819417385683064977145525157732890210253650821249293773685133840222738200945091668437827579841952035076618606473634060818479142020131923854858222266034381345659074936198471473023822676259771283708043853451925708561606742553332490941449953598448613337026844730917365730584513173673191128279322085223331225022785974166491217583790075974658820659837812416396887912586558414651463506288414498313756474940724569329865809770389723056603984326530698547463627731371503270078977554738168319480733328360881380009981772631765660046409969952502445937690258077373607461412460690174366021870076168453766182006631738111073077727954864938645912312274068680961791274554578598530625980626410198515046259360682482416894871643472376570904437203747779731350653844926265916509684677516356737461021317961357842673008028031296594330276042930520281031749259046625413451086290824304418602870850151614008005142592544432892657011507551119634451165423875223368768161436969927335014604038633069459534519698774652605820584098912660419958073013458547298555145210096569133207102948691657829715655015054965759104890536028767992985088013689219645082486116168449675551798158867891189642070457697170453063069977321466201992877078109831921361263444904349725081877141401551413473140111753952495640457518752429801019958557478878323242870564105301900055044724044953206116775142345543758331770120202909396198042503157883116423508443066518717574526048538448587475108478009656975154800007706587724426589906857164414521130902370929930331425097100888966119265631783163064158117313532458890093927485842371204731616871450717801337073642017019119005396351927597673067285235612487953671273470204967973144420211754738103478581905099721668233064451464983334061972268517360431003003474693804436334075359270272405185924002743828004600870375067420629133426234966653558769631352741189403435916565049530025857004802707659131302430116939125567234861363771738487161359687061295551687779924390981110959564986815594952665916663356023720805614317428709069615296014732423829059741589471300872719279848294049787111969814255192738807423898262089228548888517760323330844932421902656092081505914773157977824198508629832153630106867875819395804855704165658656729477660388988870305928508724903383568907233167410167508353730075550943406248852354486185294890029877040664936304050148683579801669734372390164839523255898982849898080059008750232829261734255500328114312322838541336945420475734856565514149035811435930748865529244800219631073494761117361846005193427102924863362817721252970456787542950704065923248308126999765422294287195902865575031328673858617271685053443601872739215168568611364121706247299051587102194928319842642907443843465701528919586475031539098629951255219402161249449821586536257095964057344613456167651669588232547407768312460585982615090674174139410877819873414915753672098615775611220983647884832213933764482007777992858584707146305401256343824669286581638284344670684246680967139919531543172178275097278312622695015806799623399175495306627929869845642203367546020750419117134394078153670743183031992775190091859100156300358046698765459630841795026398761872817094263844918994436142277810986588998134021824717688508397851098759859048331804406851148381778176012831456392209751577028053711198718730854510813529282949030373508404343591182724963935796013416628784289326164780422276711527297857975936659020917036772072225085438044395376809888762348574398998204347739727318188204258817836314140471970693667657891613915185800504670620653636514683044388521735110266919119440295080531030527066033679081793243069488641985413909900421092595715706073011243489097789623560772259085801029706470957144629203364688689253466073324630483740475873464394153368785552257980169375774643131063767730299026821417634538104349272858696094613023534211467464341194651268946047879228919620453954047214706422243228674847136463523357521374968175440714900284659023613857269435714902120058947421004483142578220931741268570621293180852036248188677144382217391389789809892795360070790694541368190288459583388746954207683648772864288015009553102704090296683862507358249171264769296092881678428612492604052367230690590385712174826734290523442120737995270198205341414975245406709805050294096888468729068211378106984212131391832577651065155520990959647126423813783741484635152123866218537801191005005041640183749923441816006586172305008267502252234358543237660892197445454780039700140349586522991947457444335584178179044732748373293684536278430242088271122680684836192911523988659669527892372093886055364510261436490071069189017916753391355646961846393757585605628703705350807283318401021492371936236634944970930079193545090721020127828558494611080051796487851194623312797814421768279102845625566988065208392241195074708277783246870884107623190800332817770944115858628931704620768979103163297065096675531333112957798007328025103527201166838559888067944651309725643713374361302883917215423628675997358888304440405725743885483063315499875697701648757010063187301900500138286432691313256968018472825102365579249456163992792678006759286661907239666144721192606481800401149405961682862213412090712892136087751780855065316737730202942611069226175687739548312476531072350947272466060662490190089170096273243644415176870249439778584810208509252553095522290641384621522955770404449586666096091245053991521031398911039135686375226491609497711262010682741969082276789453394135593059385789509262092424465368906420440914009073021651968167458428311351252315344878779274206561803507351748305115554096124963752313105841581773046786216172820859001764903358856440089946825492781411623353096482080183029650894620122423009270567697603804510514870307091588950414794586278441802712452988882779024823775443099777719009262642391795840822012399334139043788313485139794252859962364895115864854902932772279366679849083075921039680987640543289292901857339236155616655865124228890974602582697045468335385207316100618105938513592910560926688653810453349049618855921422112505782972573154999901103002192376740291330186119605185095118474526134595988236245543100814324576563046900384174995266510058843045597715258755495403207722422896711823320836972868837730910275665082291237915118564877343945323318664306532165976130772713790199364247668678897809787319208585503829135706040979664172062494685945027022955463077412210501334546077371356042256442838976620738481720361682757478791138385933672716628000835370389763494941863152243539242195471773295059599745577146197897396402801163289485175724153928092750314878871082634539279948461461915660316566031544133866901109046417217566577488756884734613537096063450292992642952120638335472684694826608643741915324282396080712947665688323224718323721044543966574601686927375555586720968970455368554044002235166578358205879875273631523885334020440289609271452782106914213826152908603068633449707804190062114744435379110898578760277491418662344484549665659227820852713554357127747085085820598184638123038382250429858056745260009628702425959993268967831790528366028741054219203184885287635243361301484407449270668192273469826246186610888682901418937520446749098672860184751524361570591966672331358392653468564387392192694078846699308531706027423091372345731510958461084747614654890705214912610931643764707665932434485485032505533246942488181558389542173745094748592624639088494012088472915855398694800878623666128529974217024474148278275496296242760529987017623030843443120976576472031419175417521017336228907217144274066686632987438710369208684396352718553193626721711679931630498392207644280980162127785224584049962939940010613425181671277357622583432193204095100994573834859038336863778956670895382120381501291139359830046249761229116040494964694557454395883540143069177286398479444548729368529089224866887564164579310693580560237300689520485189058665854010389458801492767004604196282571293031120995765358728504518480251547617768519543881401448462711564318657627331272244437092926759590155236390662624945846558799651081381806330493375498585452098568525391740646059055101505344700035674866584444101294125873026139073564015406369531265495509317002360032513722213999025470401550527326213706051042518586429686641812292685225849540989254783740605734710009243624880121825135963972176473403333105998044256381684583770547177359655439776404871374086084592897399243245073402414499753302797042655379833237226197694181491566358242749040231296905447377082404295901128518045004901816533393437396455743108943163737829013000543342080317756282178756125054857102581182253133555841787909543258307068056433781109865538392021490228486327837762711732922817003145770400562894389636261476838299485162829567064211553096804484938990296995998529015008166282189317069949847128283463103757988273772350617195904282414394097586485747905105915029066263663088826334810773308491225792320832717548385486226267044738397498303528583094154367090669950293628656563301564752431545844160212960767339614597683579844670075266649645756542942360660981336765300401127754977924623739831604856904452179081948355373557814582608530334919267876987424737204321526949941739265971427952671535507402571712377166220155857393051234635233881634824523171021058929750874146749729132871269062457112538193553079495587774250334283369254905543082646134007899813879804739180790301126170737363758547222536891887737019005560438837960515914603284316519936209995226714457255076154202795658024088161863897754204860461378227770220573821544727169758025610280813589606713880670008111957044189565861451163763556979801384748954296888963988075719357437279205116456048419302751072174099156547060745544988432956295057250331018371821802490519191568904504707503370823102767435164984089157336631869572460120249061384057878716005726200555434985675262265769798500286203297767884189358402096474198311111944377753818062562552026513096267196471581445397240993625283510890470895506072432220996982149196580439177842796901736294065174417145847699603570975533914331970679670136975664213135740683833474498481173507443946916459823969674788843896981067795627698719149441316018087613284315726530673871426921181833283199114063841477838894907455131533874188072504465894561225248203432088022169115289657426343269857527043292283507351305338623123004619594273475883205476420347303392035111830552364469159411330503307001898050274065928964047830712096861601804404228008218146964515047344442278749586393181926480546869766408388882452971330824277945913101627867317597705499084302850157585205674632047116414942050417972610386019579054789958210108738419516772946785934456443445411924420698241007087068046825355065269184427898828484322525297599333615601904068626043821758710235059550951665109986931502907530969538017072310652710867577208074892183992490254220573242449128996564423201022530033693259989028939577142284275294080316704295214293990577281831814920838856479145511170579749835433300079839276594589708268415233398314397909485001783586978746517728278407708712858902172347612426385470223332808304386688709046129630351075811961015179675458149123603469403887093899827699159892183477928615673192962307900079894684330301998472215951586615539391511929912418718129933391631116472438343863819440358642806100968406568147573290473967214553889695094912480421842933305599933892606744807171689184111742564287780197008424146232035154015301110237733682313536813927991641150446192280902199867617765499704995386879617500247860652948450942653272590310225581597417824500081749899892349777471525231027901531615725558600014947106061966685910614061949606697395823496622805332909312798649102354934144781529822773120706362821526724352428680973079551832746512351813677300937941330893804965487085707216226182014761743406798736121503973124243214255497077727966360572794150188969234317959293409282673219286657355262298368915744125892627831085520097626668464230402026152813830864655454115327606490879454314587890252139137325090638045216289662633824176743851295243651928712848244426118124012840352280570139887085636139241745570122269790211729432969272217100054408025770208720956622906533549355295926066901568474759944604388696427191160951476373805555158219290815661692839281141394649142918993158070652670739929117818552664398495546807762450765011853418996127970331035360715178726614186009995240269978873949457278050505835544127964306713155976066439521504607098002405567422192542150646235028366258066960219186020920691629718981190894822969859028675965489211639054939076055893288374159234949453738922413245618862273151143397947067086952238363075726203705069980171676941274180288872757257338188654165264497850865387145186605698529276680280591852459433147933165290108187721824470382841031638185377915693608154084687292960704909975793804068262288536877321491672909276330179338809145678788187413450579323756415890746321256876889967307864401230699044855273807649970407203620849846925338940381113637927346093834017660214169778905977581844251855931682311122849298535074467258047041708373177033051736050981104181861100741292210838281859005644917541102680940167797139036453681281616349274442568507829876451652091135844950736093698137809622647989470756426510106897588564337469955306489891276648641792916197462944503939204165636483951836239556689897121528324146338321387497756691073325421930360896014559561247781736017041791080561772383243433937643036622158572443207023130651489034654974505992071342947066854137412394476582924983503704136541667945806772749421059637212486564958300608504770454855970183397599004732966396487701811879773495316749616522364929038547463536041055011257294070493909103538105765540179719254427542439822739081632485750865417161135808081532590029835625855888568258675999092555474255176940135640875336318452399753011003898165169450384687228835240050781585638573465600954385547690293565486980550467879818195243573119450683985470657573451335363827301023234671753260832688353556210353661817638748292324676082036591868406864355289631173719596861099645957647459783808389893941995402985431125748997087643582460365235681504303283636931293394376814498934229986588321925256891859701835055285117294363700702506468137658004185572815014002075211585265695220918585062533163221183452560279324295012536148475197908236515330219435384243694947645759184707974444466607178467104951127476329935653832997347361962369607073501367579447779672520065538212863643812905505869641607996968054131074505454326908044762368184862588067740735782082764671075118811248140855267585757724469994658733602839282640021805838631537289219164411033874969939494873585630143075556311746587252967743604076279746424924878022791720077906178560004289856425081251271925218999018067191733680949261333502514986506195116104042220020709513820081372430218601305197969631269656155199194589020242333873256143874494964324317402530394692743487888235217198417728370276908399528634270384538465541437405956353160654064651076625661074173613178034438878028887062674206694742062083021574546656142128345394208382919059510000760205636890496190223135807326031311369693599345094021448282607003351374324602389927454608063083767957571239662597099529984705519063491938523710824569756912469795872392383373400100695963439876061262120507067872073881771256275345128588119402187572517196315555656251460638811703612669211081809904523234600358278522824838173885015486688298799325370591553066214811633375753594670858450875854124900545970069945560371873423418063365974065701072293154316865307069187671192391456075085481260376967909318531637301484438911643513594327098112873752791300988183282813501741755082158920081413336643405069861890751762474554618695291655340002450216176382074256155650755130973113054849720626627448534910640791836449110322376911070288193276352460650567109790950241427012101168270561111808559847128487557206371412714673007301909278858541997765139105518467256544084761498420672936596280810656612691769942059534257294856991356674149937918575021946661435257125011971205494027348603917983088917044949353277855021135816038093764103400301296895766115191478084827685839914139269307150389124991834772347087568267668883510991384576518443099925574530986534552626822291704924180830300841432569516281247539039890552215612176760968207804547443517554881741844586941824492088035413570027639930056515176940867993510339091600395772750656423573436063648017121580164282633211893794278289631055984779591269129634144742212037431272587122140611509686487314874625218781794815881472042586043004840268561536555202385358309039302241722216227017967962160827593606320659563217581443865372251586371527476307951104130385744528648463741739151353340625234587903884698449945779852917870925296740318378952941803580612264501641823771745349890309194716368702411777056060547125584705070793229743939767896474161649128031604978683836131848495930622020966523919993114306088447138356247923558428590895317139795345341686991306757676245597561251481294934848956470457746788036354633036162107048528048834603999349206092991151137939182895161666733849919342283741029540443251719351073261349349036413154172214882337357336355021809737606133012767311287214716027903157151435547621332466052792734873154889866172087382357630656732125730562552320174929761139693714758859954053060393601364623337489518375815485267144828713986369811094459760202669405615585719517204631022743145800769794323092816069756852378151383006781994749942297233984831430148623611384412997801241862577203307233579300226723681478369156504024304227992583307927293764202197679551698451806885444306603831683266569385229077030839202152487119026196686581028102993611488011397706860984376380568685147819488890875781891467947540129180889953678777672159396944490222628829162178744813161755293182799001985045532129824276847324238745002865142142708315771301314425821426927969639524258685173037630654360793429272291909910758158271774975771302202590759187006681285629379164482701042954255239280075953273252165127831949658398930459327241077481213881505494834512552660951829741250637547801114804037934025094798179031520108329351398935254502488131191863565103240890829968285599061778193714222343910987773929618722784771350252001756345161981634646590431997503948859113771638890680324004274543734623774803184757126538663795882006269995330132611107214802703483255958054415736853663122784837360356589111849854216158852488655478351486516554931773428307735667747780759257497623810439203914084369215414518219893044918313241742992474623649200610583440725639865358477263702733193128067322554542265146283030066866828309580747638532531912079104398161509021851131307202230502139094674482822551836817059138524573222411955660542008664650620194097893330095575228262193665085675769160309104673011895576763867892027630682973963899589871504938768733577137793579930588989716022745056587302955487443123482507610893955011072714059509406833758403079264578387637955955947977108480501759336673011516573700201005123220605618069035452112039890838970928392998990585240749253595976830678228222372316861771166931193841288394772802419932978391560062730851537404042999963527949307609708120786124088761635124911831328614430716903128344201288392824055625674032289792569899356879627157523637168637155699644368138606504949628165875909551104037203395252676811575206583265263136681607628121167398515041594849565797407570779391172579046677307193298046592043804496388911693832486673477072806584443218023890944023727554100024306177517753500453942452757773088129387166285493064956086541989947912556399945187916668994224278443961961971463150343435913097323732595966724180206216158483961680182969790118321379820299556396267282939350788256729540878443875927937762647239279949402673702480048028558779270243436479193854480342049491317891682192818267004779545286933152094366823499340778998426270818274692665171511811021414375513228058233854873576817910572224451513487821431064209627026639524445289873227918567319114921914775673131567962978245493778957500391821666957200532676261846259192109528671243080952694493581225977049061903233872411678608778912310728159742180976639595667240882618547691963384573673489227013179066095788187339025047657225664015197453176204435615798096800814499800904207308157144537516098094799402051573004571687457653502883851475004632507829185567350392970393599544066802676011343185268327090867012292703570754611561048119059845232646040142677309666596674436200485313793215400014958258034713968998048674846583940356690530275085621659077388729846214759941692589855581977029667208260659569645883632809104685602912315558755582762683054781353574323554315922464591285496247631910695568622189137795528408205540353756426182248741426074047484456013527221358802268293338729216051971375742208278934199200186474664153825731544308280967201971711700950360049519992760493234691759307371969417122152375836178647318785490113197719772944592739069382963747251619638450604623007368753873746209295529075158437062286549490397650923218073164886520851181704858730880303864867900108121919977438720558535935094672849318766725239414737944189965958458562064437578627482550637380128060365714591155613224566147118433420060721502576743870646754147056821361611745889189110113972877966560539243438526427898761555340340140731607650993498244196155844227854565386463405575149529018721785560363882362250169714760625917322519658367617877714554951240946678894753787921594466839433036575895412112323979253333818292100596870494384956403448336066451935328018866167820339359204902136808725512792267240296424171340954267539965063918508138504666831393594709319408706747706449279808869642949793385123087432980189674640550068673020510920375046395599296790021024838415726313540487509090297138305830737462615139699086959711690646227993365170440608933966366533739064739503041543935686996715635072824160487655554397876868368992653501728960427480733721293040552691169574913682755675979940364334858063353499864282081782111902004104130578617366793808518277341305307044081550074079032177999628969905252504479121395280738492648712573018290046260778989738751999196210446744971114523093998589354482404714708619139678737106098302588612015613578981124025868090854046953922066009197794895109317107937162425812438731403583540673750660308882703434416051084997164469477210035407530285793287843762220838629645105438237741039727860557354272116779282785976668119946663040294291241544752480316364238846820791776580706909116690145377059799913480585112132167515869492638259803881879653825402829583914645050802359332423995672428793403228654976482908963400556976971077794804152433369502458357691549931522419530690864240421171333828471228266733590302823309653150603333743479435433112414534010425147051056565096494330210905240737804599400370528986648434522290360876257988373683710351137205711396714580820462656666672545293663822374011346274401121347252669976825447590817873778883148513619556914525490284567896315814742565941688309101740416424001951125274329443980714223904911184927327173597901902422891310377483040894335513601123748476551196549948469223143646256742979648283493412949583348495246390067264472527486532245399448547038772365984592344544086314605902776506047272621001469420787343524745270324315957427663346578362386039970811935018157572527553065432470212063706710778783251829373681588829419314542200028527888923779825127643915510657379992715408741375198074334207355816729772782975262961229018438748698530907072838143724445706009578318312962741159412425149324371859346412848984826051873076357608160084811711697540077046217668944803205254563959234078268454677120520578769402020416317826814032458507433533510603426734430582594752083571506695888836273045609409642322389782220023032300596440818175244736871778084398237869992570849580370934419116470920807016504552769819831780666784235340782105536502611068510602382353487263272471442421062714077659085898705439709155609553671967703600198946033527817017079834180764779173464440475841162417673198522542174418435046351777169552084095384627655151009234794011653357657395595927327731067725353631767823903008692927642571243127500850715359920328398566610413009569609759832006665095248353543545120355047930109944542340827555402503718156446028299595541353934899000664207533819666489209681500135890017959480920707410777120803536567599856840841005158437926725858048242948909796731211565201913960204228493696177176186721836357602790676388386360585801017224120040453616195040024225254621644727625621158946633349472741230361011028492696748224889552757630108240055564090047340971302284908613075184210408596533232776568327562045882726681917753634879168323286179142666660752103849999876552914127750505290515954156397661009719270143991166340464020479714479300624055791813381393278484155396051241100605721408298274611501227132249911898890164964965207903867553719452085126577484079744630656595716691287996185041727716152833168309954521642013048046172400775628941876550658083264990210702702795687202128347067619333318880709241634957916531354896595163384550478079344762600694755170908139135693284742994939405506533130930619144106246929998875563404542278327090663329356599893031415129268011276846608237197354644087798767484873668958977667430242414077569750927007076062209335187154450185099735453967441426188924768370210527596221056278382032471043600372068214471896139098023518952805073409280986407766662365791509421570560333950702488177690490294610633465639633255750286117179791296762831581355297394971147225082800996300751421173927765897420480862476858623461545608322487653928624288225790489031143025475300626634244558264452206591305312569206683966666387651180215357252364999286052515033608760791200505020466862515378305358916005162976254847223629946167361035141231889210317539524073361107050907751993688983128643229940835260366252915337070023553632926631069283903908163005700627427249101253759202289627915118991780229418089312701585031999603127731763143038241921130749487724455855703036835695199347525316534754045929749327614718346968632644637946956132701970585803657829818996856083713967122187468841944217390022739018547807423117565999654450817469415469363789305877718141021803681960047717910415528796014245979640677852457825968654034568528709650875550080495636742007836193853695794353925747662838481116514925974699245169490238826985455408663477820042867936919326408115694196319660218331490156741432208240797450831870047300978783447162746525932920381656984675044497514332382694278869513746814466380814653365136594177698692495944771955652829598577726254226569443305907471212062284755855337210012862677341349677464807319895954488969547701216401287552686830574641258104709248427692453836429072703319699351397685648322891709712831261183404698792130002185925471803184144395553712662560164287342060955611916519093614055172665968250053842015947395640697314530484442495281096611976047451148359654244951215849722323642200598882813467449116292527754093416073981063443045206241751662446966381956512930310456375521874649204051515506968190053063467046909272892847700537496412706790988920194082840916276382562881993835307493308667461623155991598588776717897290942841413452523552239251436535739382710175018158074894924344484200469491571062052370218751603320757750823585113964697978378846170975736246367417188171310072540781372929104986069349586184559029739512662440187930873131218797649697798289759435410239189430872348684945074639401158457148542867828140690152257940451962279362125686782409006717662564659398620338610102336585166184486041938128637056400197318275927186918999196730713954950935110924667717817331990922024777487761563380048066144941316991160289314997749639810636080355809564431568046272465195352376320516667650300406916607772252182008724577522928905896481792815472506097285049936429041416370629477854426345009632547267119946466357969258741607409375414464160071348724155494665882933232635711356484666402142609372055131914772274519789222102409171677147089396365217312428081175490223520190495753334233793572347425002775038050664745277317452539030208588065457382089480639208551030543286335383184670295809922257571294970469432360388554560447139473293728695316424909844488526250651792510911963705615182196604134216516967459421318353108167783377118375164120048744755510948178415484340212285412622386295066057996876885488808525134937843068161479806084601408748098760844032900898173181532502054221673388660312849880587779978418570323500898575234615657914460738472288271261842914312863876627263234240754020728483689425113088240012036485806467097708522011140919476658038035946883618245903396209983936368960085811823412364487632460314246682572846742386672034710949447309345809488007749196726554681847164171404748356855371300897351183078366252758831181820032106171763361183250802615480178487774133168053857196432902070407010218221551786873178887833820709549114077039637539381837075955668691293718115051762529913116720693920366817229553800090203390984626230413160742737272213438527906455531790933336120341390938964585352894414538816424542216635820941433532126156244528312844093602232659458618741921515875322396064766005252665516041154432570956775746979313640894903916922793539471224833792090031780371952231496503956543103948607708368901754101717649436050854178324336256314667789684060533279507439663726400588594023326332847708382251160279565871419998600107324982344978560205745534738937668285956697697917580436571920471012576874204360339854838122332989619530930303005079948294994754002589053521016029256793219657675567903462200705733944753388044076742759043645821686694646881355498736784963611971156747351690517106619373252210932726394708669055776684005215779636740091928820483855147352582497421238847933196740549931434797185070521741099381590641627833532965634703806284354054563701563554689802175482229573710714971384962260406296336244714268202850579636954133854753787184887593908518928405058822502557564272312449379556662715923323028757730848768256145844676197625503452683045094385618945958983699442973267738505676640414465671362169875509182215044082385462451098547766918486486120319336504604855786944255006543043821310133932912463864583959820264192997947114461111519045650180666255428619438007949597127440315182041654465202234743582474467754683289169572181565001079110291543767775690882260920992963749427638790395515207625049788738059099324186266901212319196166881940400350100440440838531379017203009440360407467531217321950288385256396884508958521209464662901490683272393594365694607123924990364403558541350689139156845089204146573174512574955012460910468388167114281666318710491836720647727309212944354003587941163683760187918582787315681897278091886736794134400280363425533772879145375303345765750470766081068829546705044950137341293842944095056326988544833847240806067745458083815316075672758358404459194922421475907785840404463074472731089304320170162787879895558636954183709092980283155919595290805415689245204670424503216906804593621217046213051655957673453636962218671785876561628868584562988475640801930251518580961838851806698076471178333437069519020296017403141100035794567926268522799080711909795628160119417044626251941357123768594840784603102787897707646231406485802363520150056799275870056478188380978151729982225586148616509915518264298814434216312355006204478440585902318767638203017457572606473946428942557817234367379060810095689140423790287888059200534105581772927632533719964225894126696982982925976738461461450997319907750959376106755895465081025698762397707802091140346666615882302967440262338123104640644139707235864476136385713747441353379746396910594709902286220254304288416414047080011091361514060309732305526070211413163573842650425338842903590827934488292296036983694550617410839048633388929932380689337657843718101950014211037130296090043406333929169725458029457955433299144070176769405661843593637032021380111460335899356947640852179436509944999062019183947127124793958154244855715238261885964689068744665722620760232843460257238785657124916647874595851156515320633335517961604290571708788099929155560391654602780567279382336833974760127603124818853319561428994834452761558978075735025269153778070554403736679084228032589729134942779065138695792102177034272700476506521245325042237292537354193583189949449969773868523732628698738809265934391417092266758574241355184504872157321398422050847105220351607462226816788084352201677822887918853803836749597502104901475212436686223716273045691769745323223823654199419386493663188554499645304671997315814066302148031268177986254316968511629201494860421871423172124700832080546379487339251928149187802712354817512966862683974060916708608193902517417626744201907784266800544170841179961231798714774664967413988071782151513234919036512953973029903798306755725445353421117582123259586986972720737908637093655288806514546152737603802635777304765488245374634706560398584108639192205349338968500215519788293548514986443800697675572878005533401023826038346350567554189780618957663647444338794559747043312335611375093837119994105803030279155255778785882253103299596928528572674087531713560360644952087152720625267626716363626273287671859841719490510477054306569703615205179801169347751998700831161475543820253660402223768737336427265536715296168465265922352869872247596057720835271519641796024755770815364729643022367914369472489467190893958391887367497382455240780582724768560663878684676700339174264829002911423248558834406642821042084689522064309360634118773574437115708057866378358552321571236447994747799612226854815714325828572863122377644763502633327776580875636738562848107551040631766584807068510152623707106388520854581454300583049333200771609659937809677276984241747210779570204538909609094963242616061212532423640617542430708024333955965152238599912407197287788738355326339485298076185918187946247493227237057431760495210648654046651370600172179347744616054381603984101037858423739327947281570969941076405670647028182675417167724630738462992460966692858158297508766105208726492707508696133714643929549379850369409373428786018544401440510636803212729076326357749669066696767459197964793896192193029624233581452656462340318206157710657804887992038768399144352410908726636186609990551948163877867387760718687026321983983117855121700341018826013281041745895855635920538383006026360701200446469626505566810532927923583934492654519915946783910971692245338844496896168764622777926707306360862184178841815525562673215598178407481595881743145032354420986663435404228714310208623066794575623399388915192255588799033558288823483444912230813962498910123990651526619327386774746970468809609767443762646512917687993639277989161536775604176823851392429491238813326954769141049123640727394183304087634762354708250560438266463248937074661848505895752569344715760751891763126889692385477128137949969327502100874297557940482717950980557925213353943976459662662240392731477737230823052668410893039373905627753380667564255903562055577008870099880721985407082020070793654383486412877371641982047243025622525157432110140661210357438069997973030120597204155923489596101042339135647658981434551455891586475190075681766014487698283237277044254382285145621211504271901115836944142849280046077118727275228870252803680052450919002213772063494593483337829698907368095371152178367840026824964402330930088457803720669738019019301286966741671157395700176877339215267016215792746624331203175571310875461690660408230066002121757631044491863406908220484849151731580915495631936179751229907311015376527706229655887706714806366122390509742730020763236779056110680198324124562995208877107854133117220089338475287344465600538755306149227224935794279838954934081381186800107940670487044100845637861382178760050925742362413134597720055639457101757511489378419748233359712147433953230420231631576582843103491762517405153452782644813259577048018937776415468761988177083847501223107538698090160395518601344569614973440820316988849656718851164476881900849590892228675396749764407060416135913134321596657889928363226015496272221509458327489638731786852449320291548493312618467893260929393812467961909310184535628346206801978062219387781095527170325278914863202610864173662351749435402193640795910303149725906940238698566884427472019080876916902286147740393093345071464459549179938608512749105895518100542037217258549201144925762187052829109810146622958459594727219952568073557159950967069195983020368107661942280331221346920208316915761796706745015615452206763350280492389134496434945124528709114074663973103974363509461052653043833981352364083734578809089018654498276393950585091394536174847027890441779027022393720164047028552623644585590464941898418120917072866989699152181959407366497297989683542446618310590633686816027681408254061532768447979330124238805663614207045504643749247652836188239390448500172709122999804408904083799770802990369198860521278579782386366704964925482761783362020295692489030265753550076042211115990352083698847472652802204725039513572420974260257177538922694161174850731955326442820081678032384913221689804990280988313584065346758319999523295106829637523983786750232398096344902246623239712393045103972544234579369808411538657838198014308153001500630768934833937615242612584248116188426082814286223611545318586620294965574715524874125501392806421098949006159291322371520369523825045036270950071589003900840220831252465679331598901724612581737208790738140926495455571403183741553379016378329336582515168894937534110803056623305761978483158473046331706602764378535436381811774915371864779375196517412845191584489736034986471666158335133566348476716171039589831557599839070072972569420066642305293186733703840062837638289157993110555565869100543301105288099806552094394790682591636562772709672907728786301386367951133614181321346189438395700827460375557110226690473139200953256266009453911881882141605212932913712208318405255675623731489825635718991693066593856561124847836710242834836749927533869773736766236370447816978270677225645781771931170600434237071523397392682194499522503695128257573410106423622331605694198269491990827140637505131688971549528272097465595608720014780234350925278213925254851654146344834780953031089017208047458228013308014192815220251314908374624802955760454702512102123149833284095149930099328247144947476033730193101706598067489780501146217043291899030465097263217576496268110078670487548790604373352428440123593784736603884434491205017450444852080169330448703721182977471226934363984421573377108366442737655914564971197776914822065433367322572403581456035930980384431763777888951872888504393617996533989956063836783351516874674200159903006121282592367807777056059834890328422669070268749653870810106277583564001091569854956456315867004367920143467871276149568409649296911419680681920387818531133339896488537283585659592095897216014484351188936403171391716754743909862122386293724937916655148477736699272637358785476010560767947614550095857349856815863096149507075659106572187305323986485225187053635582505862489203419632736038268378866215182815903150153739335422656579210947175155217474448056243924924339916386209183693307018236892377499905246423225089587050005240496929778864271023104715758596842836459437448175898010124067084773984487489562413859695084670693829795599991395122855622899627933955487627945507984780608580805768733588516380600621979725483613233351790177724753541186252872004483717416200895519002595299371239113586681529554984730916793000825662962282244696147779059260054376256674270682401842519073286592129669442506761169078261692472179180632770070280716807311456917899419922842814879674198368441060559733924142679489415844311351451814419171588392355489370997117890002790871612846797674191595979339709361322629265563118704248842599430556454611845954755883073068916763474219029232056054706263253134200670783081086150723130182642454183701950159083490323857235162122268395426725192173882091382793648898688006716332400293206683093095375048416085250010680358766186752382494653532360963562693520139795093693302427310752683286233386726406250267759415312232589596137408163477940922708512252382722699244833676111146693410284503982888087656637105751956572004998510457028920021674262644866603071155090380170109698590885647478115246796768551422159895326306531898675331217807567525963769413659165094615096543050239538786015863651598115979697279307592272577739690627127905691838961247238013919002798418756953905303239650445145500976943496503257240856271583707068769284036393950031833601398557692060281051583635921797973368417556411398274175312933787445594434088665728533559014919215584591921696960939049769290535619530802098422120462920446619655062265461524412090829073410477755857179834453914078644492090536676484632771160714275231602638131060776553257137973878695233043172344415149504558044143562404318917759996126161828522321183276330725567818391426927041098387500042074234612829148753580080492187791729793511310530924270248812909221842504827417677546409398505998093598455050679296889185602467577046706547335157123939746880070634932821421207616760393698260051497781247357939475834416813396948594835604838725486459218964939948450735667784584576211894165153684798715258037855515762288537798483424647494229308871601496659837207193513704402890196107063912622471806566580688103629768882470803450026419517613748755507035089081314377994193653100631004974027083845178165468882752800087795942682015122749807736003978380444302543077422797870326013893639885187768548826285851990074861927412392662266982979490665774025328598132352769828632208056979610788352459960839659181637169268399319330881103450693614416822879696056407778795526356481874836595950018158253510208961672037319213958261862983558358771122275592468483142912156839652085002871459176995853523094582704188559695736287859019223514358465984266004349896977859280634202961274957022651339014836734530882186639479079576229857456616299925464689142285201306881133336961234140415267632171662693118318786986285625866515132242863214887867668199480569343992422661823503392082540820935633098410233977907457948390266458920498506809582378718233083353630840222088797423219594403838916540515898065686732093254754525860636279384201685910377899127670237004070688367549856795060127598020914579819864525880435446679284843435398663139980569077304518448683957574532777795510461959478013577694187087405062789676068727931767611247469467298759275288787328709810174180813491298515282798681954722284450748625056335713390935895058477606504747304613420298868743312237775214794516654495283185478995018171525984713261413992683262509442720592671803178095415173413581474533987435356805898655501180425983160235041718679514706548799321491998754431441865552965622052771500096339375667947472350529901931503013639941911351182179456391907794015300990880400133561879815698884712326932598248801213809968740629554731118366067386189448934474131681975111007531731816710226748998881246110608693882451528572280082762408144437545905230878484872348197753302684642872764014674560139653316541123513507688704334716694814437515850068079543825497344907472526705761127031946886983607711711315734283999829378942106687586941498081833297698785370801963912337208894287816207956850864513261834931406971014079142551286697036174772578902746501829992438510665971439243859609316579684706029368612609169286340689269599201530949209658574014009218215873041251284178138883098247966017246971142207765897475805202026692218747397794652390750642010379178839786344933869584244511525597667349210019221026499143867544672189364900874287814399518640933392901817533539996593924735207761977041291760435670231365126369960340809836217436090829244522252649064827144886635763334283356977489613159526187495048373517536179906400082153115990461510004941177824218393158738299735928131050149785527705389546588915816986652172484457838704934877685850718012314188172959592351054134978593828314322955380686363430033063023862096162348159938095708590092658866207997760566883042789931498021063002170847750679329497826210073841716817057735034930642632275388992245965665132082073231296846459518296143469297930280528170009873330046551081093394507365660699729739776472057294313530273101921105207687088017057468638300499039687582555860785597710698880008103476281218501545035878174573154098185252684772688487884663026385813388323911516757147081190222288888817372154933714126171713113562584246653976456094260789424642998142749643380897787995617064656648255350187576802046706646961401427101969254122129563953223684902007457947498063865778025750515135156887511385394455500020259321909184288675090365909881613265264383938486617947880831232319750557383950721325880673147963484101089636582299206267242522634608688727893885459995066587390392663955448454084264044761928104291192802088009166646720085247058420793820677099645346626775015570697955754935374183315968487978336709396402245832630903075758202807917271729895349811150332964697432422848342518694039616444819639738612643848316636615836281338922714870026743813778537873847056622002300708588525617527094949064041280597450249909923487061180313430005596063239100364378734745732359346497408047903065608765889236240978465548669686023266969994687568474587471746612499374675066750375882928773081398360825032044099765437568717405860685556270262436733111480442242367150783747617323865984189485439784791085231152408498845866739020463712821349290491023071916770434082997531728163552426554984356038031838657847264429097614601623441496565211000552331751508282823599729639545747907077379119447833720044045821836795261163002553475314627687247544611259153697517515109251882614581254043299535955932978184733024192656881439493348869893767797579759549042692455312200370434268577729286641347217715313412328491348489682884396797683606034727118278037924145059012919279675159418209074102031226879861421864797683504274528347400192583308046656893329987920004768283464462541432648750732544327186163487149133960329772954525136677451597026796367795293280595653150857376236674443933283702729602350585799003137581638726334201976666347625636777146227362462002877460613180818691713236600342315031385932866827614140528458581712220710295959392287924084162730747434494855887568167853703231944650395225637438110172824465535217251274499292539532160447098231400490023650198219958137820481384511940215122195888507449304184903346249640181958555734090597073377514543883703495875226512660234464268464300351476440644287383583564595788377678590904531536405052008044232213755134542640071516640875474230898567195539977365298131406785665407200116638283272150703969405870273824393731205144414003729648004621266239891699923372560191960065920122891704537467459020130716064175320418805170862793059639001972727294631814800588993081528129421956416571978315382118491335801925942313192713946036183556236388421512283447649642225083911950801113919036594210342989834453785784665317268433172223484988535505511446743327591257165652538550390220750630701175136176029466865461174062238668764048222329162469120364713380588788143751685333965375713439637144135247123636969048951016244699215178610912366245192479077552683057853262109967026278369754393015684612632810648233108851797824759180999924471926102440473925031312905879396921749200692320551783664307550514288891524626178535019154412062655367709903015496204309739468061838096973898989195092734622425706316558753445110090977312275529127728219351099412654771388480825601073799795829312712986192608613565619924858114862276869905006242572782036009720725321999814154357360376000872925677202076309408112897677452744651725626410450333720161825934338584650744887400373488386916838532616519803156031147950390827315326495129353403742353502744373796367072794170247440882016749602807303476495237388505928448289484691143036401583867741773477422854612602010143199068927436040158140757025191512795494027805509331351797430999224461904151630242210850915731368878726125446877594849443162980574634766510370113865282431483173699727638565733113646421309605697047173832696864908790850907788032202503714652029177054191582009469617918353985352363502594347020794427067198675998258427915555068589400674061037206356917739950984885362021113363484661637646509326959240616040208729637605807131659544143312233707153328495816708293248999408287278898430448355966805999512503923576751543439725791814709268710839793687028888233485015404866816611799980310854756843694894299909650154862854860199546682500027336278009378332413989402073101462905418161084498757235659483469461018905472787539895302698639410568587898929813372324215320676849645521911367951132443896711716767106066676027265155421982245859184945253047747131466072938187602167542279674154580412221876454408303590078851184825899845818918438678227968120025447062369185346515321588152296206094561324044582514639961232356253007862301542375083130288946372786220142756637658458064973912094638722984513380464917680950618728893669899350987258715048088666659443600007134123749926802442123305565894059877363270323921355814570278903952260698482767128341756036965464175029281286736625889227653720134006468327207774187183775498541643161636201283152777597955658001929577438732394799595293105524448074690943520555395943592264370196395170856831090783173459150175792865088889314224690931973870242997420884546287469076353677193041084245410203250645564664701296989678674961276793668749761245591253900455131446203043190446700347443654210822528253135551433404668459501358046366061130289285516415868820743763279456235465759640554455091304972692847632918694842279845774280030710848657122766739120111833652333567624457849992457741845104012209786980486062050637960286138323833038828212396951728010753323326400937958059477122121719575432838124072518436349671231447212215823725916434364761514846016210269683808596617585544143045262739334786413238638754417215386960507894433239101061918341029677368565833803783751386154439794621435971506829028923987879138101322416188950335479671983704380992725799295747457724670868026103885698280041087865465572463412406436750066102270997812253250581155892741978828579009332625133058222549467705252855640075589900867083583850313015714860313929092549065848615347470285878357295999852220834671041106608764549067170866223466681131325356774171831939985304435648916547076001040722343936934087309062726255608237766730821495885003705685200765560639321316259959474085644801190595330582395089419313936798922026277660689264552027999429347773680789881353516128774965998070409810153232336571672384186452854630503548949036967676380191704626391605773615343541758084102957465894787952224579299379631517099040789589743745022372028964152069061613182539122979584131129692515574326348323165101318982208342361661342043482595947432408327581219812058327734501069852510757023805152305843117304653861822440753236268764940933702624383663095351146993630448076095599242082427693777250668879253124788217912536455823900496066960413243295030936436508378477100117075942721711606570507351683166076617269022860739311002737974773657246252017869613107844856685396791194204086689454362377893409586772741286272079775550232352286446643726327179569233106119846694100943111334548596655463846845316307169833440837201789335019955707502465211507678353530671635413595810612412152135182097515282608805489262510867717470722763344768241178326784602518719712717905462141613378775042836710011775022796389022656327034449632447335765760974793946905780613652899242420557015591661804021634718151664804007341742850905585330737842788191594980525645980540158024736635375200258588956888951062686045930258816495766650371774799659992181152624943740840587294962174241636919200036376418195748993753363282890580424005252497139491214727440506310873204315191549210329340407573238177052746576638868745723562393396799229340901685378627738925188418552731542205623469857556415196051702965477317895654708670670536649186516661015041586702444550991455145739011413876407332620563181103918974014752279116079348102902592096881441387249187640932003492953602513245694522439852526254219178261225222387870277526877508956044548827063704460547224321334954282338800230042423676050793271378695507288344127261349297754549981397949814554892014006084600563367185553970488112293535937564455364756989554408584168078061965208927652146918525980392252759541292352956674434183689672334777958796411536177422001110101316416701167157499913895249037015402139806884659015582964928840253010768284228199050768140405236097912270026008616204939883445594154049794468212284494561830719063822085413785653241970646281304206572022073509998732357165692086507422970231283952700571777386972894166289482369666304116243567864181636351838820681164608912947855671118031297371625824240586603012839099717646061234085683283030261715775312976725399099854326697591096958546847506253740466793241511223050974282178580939797229976354028879523181653761141041458927355981388011494730244423970863889389777576920585074800136673867454024527237011346945291407547564925474120383756500370286581333843758729866006342656725141789910470097946891022899896747023241849042842990881298479928206747833092087689459356063168237017539586181101074872877071131816763946432833487926443854914916871926438751225034164430332659636078476643975215164833449009170097051312466295547005216265032793465019862635922161465533478195806906709342735433154534972454873420373373224385841870537215928759416206868553868887636746210541789815815954480572245331545692133517524866062049380966305063876837258189251995789798461515134309339509356355903406146559350084931134915707455780705028168732000263642434612356391312549541475274289169961125309730350543269326678775341879084221195905445483588685116070809207155808390205475550271941362900385436174935713904615183211193710457042266503090772041465361346136880908603240281505361207705054216439097415466454043547899259669024358754215934831825716678600752016528825977968584279610842880807729942783882458114709807956153404067592076999878429857520546709216579705833507676799112853450651669496158701411733869794063703805924195228095580593460376802169555047325838618221842813991062284984134835842838210336830221728906060089056074430356258657154127418399687199244275608102601323264001967584109464934081516827070030522469917657003742226371956204738345886961089341165651666601438052317657271375082142273409899576181047420995979877835915470343993365074583053437687413339561717571551265026288031942994834990142039693702322108615722105709929521457267892627738114301795356322742537483233190918241343930104981045270455183540707800125762150356381402042286879932677679900398463266080681690628051099169297358612847281096677150164425802502018173424244737711367500925662932186091930588186304893101100596486095961472686837767567430202964900381479561332829247745198233819328101516779825579136871597045526375948978464245624682712716487972267110554413829367867542849086603941942252397467587069048153179921770812781436345164691785975906708811961903818075330179935454423682810958672609506843058350265835557583202808409299609890249938696021571837546980439238782968627517927378584370986278144242996080599189282091441411934089311861129041905806856236775546125673347789553474219389569702850622773280963411267344142680778979049906966582684371449460643806502942210653798573674186666890573394579265521179437304090420162649493799900368763711148031966981689995071939447222951316522539591824509462250626747530757554597472204567939662351414141445716841627976478381020563239253114093369828794215877487421790291473504647984120605347048715975820787613617937085512058334328103651469630707906736929891318887432293172826214211232735622047711407117646848299482511047133484202807943826068768996548903999985386614347893886592881654916196251536213308336803002114303596706177621233841486981798105131641847190824557005600957921651819101270838207156691342043130581378979709029278137411203240126906285898544925381574486059829017012221147245913667769047655880197222182271618917219945916317318757626562481547194248424865774167326339473031001808999603950325338024975545146821960046265151780816796093729952878551434019894962788776598700327193901625941556934167622376617102232887616051510475755266155660339686322801392705477396650986280289054385707519604158416369401163806821450687009909402997222739731036025009561602948281764631604992634441605814218804581815363540457267815272389140229108385243738513439552302960157237563956813954228754471157202878963538499788106714482731885989911631074786622924690681440785098233602839102702933037172862470036421611795116972324209897025740661822068525055416192392864889735551082267464657854269348785446947444153021814243358042158092604828296575290229391270406907146518051123569220218037847686440133119752007112774324408094476380545816782293060109835155768960601915364912575815724858446866250267844352647731703589378413792934779072762568141379573476971595222183416271996637452011523877202238631204867894044110580537253644439153337273747232601112364708767172344661698013210137564100276464946871586387119660980729815919973839405476140322121163802592710914217809628531008169466497692938534901208098420651399770199564997960359737238338395696919630371291350485758053261163030086554896775700667177316999361961206661456628023879997988222083186275043132959126941985305348211340578463201775971956961442310323670268397405144000940827427952849344699572361078502626797813457047441734697476363975724498655643340980928173818995845992464666048553447533306984975335965855218264043245100566720479592826906876936541953794694347633033844193934135716454266231965047546574583369604643157439940429679394322606752630261066972538893704680098775760987969423739501815223131932898374375831947189443732392789284900343582324085668871526359380016454101835807587012186737729653902173124728973537214367878316528015753647631105570741747517872952249908182649715745405975368524265684691477831827718209999985680325814941895882991128071987693531653605459380174765802129708772726192880223947913959236774508127354653191653147049118642271826325792419563843519479329871948880016766953262496656608814760186562363726651929857028016339805052317543288782650668282120774986218567439582489952296436266364117231309963739191883150562676866156246238943905506699620314450280752147433798421745639303031849436140019374755320561022714648935083110325062514588777393021060442571894388346372119150060398916758701253156492740238684668349931816658515560993776917804048225975208180521889768214392355718586004082741839417515307645912549134677136855487477624579239750114710783125290903314670446097552757130247447946402272211257150245864151711094123918926048185118220974004374180801880366936176971708471353628892162872678152157641042614715918255292976480476165474206135846881293031469889926689639834354585678338038441472609716248294230187519012094490622265499023525133250561813108164894827278260810441170565476288951767002909138041478381450785059564714747026831669120446329576908105340053164175739284215465592105733989556033170502837787775072578278111484215176460280352486926860021762942099895604923217456115637981108602895889802934087429877335413503513076539373130055466834739934956169471487968811501150677535120927741307033244293455231335363512179611682844041297873573312629561576079997896614816959790933622133122839130595077685251110568585427241485045679883927772358351864391329608769784657989281762408098192838244742477064825880629855826971384518664237588873608719311250657134426342505618343372929500120035991918740193439694393296050488923868781824307270222643530165650376317065453801032425681348980204044820634221694779320812443733126581672644816893596366211043015084135061049518788997443150027791527057228532912907947429238382086438484788468583074155060234181180454157572277535527634595888986671611351413416016599547040251974637768862915810927156585153522288662966332579451734124949905540625894169196844648906115276680816967847060519836944240346622765932041589202668948107500611126588722229198684432507798501818615904119417493483519301057413285300453694663471209772752208923682647223017878824625920398904368384950508244332015198282977040687721508445686840557123029057063743487411525175499629570755571654733965854036221754431450302885179651224845086444974579025613057817827881512572771065544392629123675752879732594550162492656057347789344153432587218372497413930369036321441000543893863760466220118274136648293720679099113649141421506790696350014805287158263448478102094372217637504836562126006162139161988110616996703997281915433190718358097938286947663629080600799682579729713400054830970714545434157887426717216320999843492248487260953919563228010149129432846534565374152485598401261412600069018949318565791664344449825765506120216358910650715979911543595826524323524108224887481965845319428419401823850529760250215672692588818038181593705695597562918371011742132174183872784360293151004079740047253503372628359672126356602227445587187445347582927464518373510933563305480028580454185234818160031483760106956746673668630974655364893779392022974739628765201789595340986105187173857410882550348937721417770802172972606879969963703981420056491878107294467513118071500885844629200854695011195367131147683065279056134887378438388579108634175778168025215427969194072545611118207355022027789764607297618825869666413215132907848645039876135896787800381440155375715223836670233661326713456029237225751618513969657601160553193313182471361153515240475960254301589059217826118220269357487795517766810504220880122160071105137237441045962118183814789969039788231127385820700771876842663038927974662255007353140868851933048197872408267781380792329852897377332153383055213829317775037522463853742698815413389536850294128226210770569820408196191643945153343981029606046146617131288613458145920800036935108605140965808728660122623245620957264596704173872071130391077883790141153772599895411930434425810616713511774775255126787353046797272759877963622585988211558180962608034415286531299710797571515195127426920623271938911445842952436656222013386657185037374707430063644572729678125610307387550913241444288027106844557315719625996159507018900615036774277090652134499093294690495916187417091510975606086886423286770489884299313350286446714382237305102404161568437167404567551533996519584146536756110245739408039392566199958970580776921384218291336795869273136501192457454363480164318495885313276606949087326966307033051624339103015159759642624671255997061782381245194006308617836266811643343125073748853094713377733601053021859259184744310711941007767695021732364684279826988827607564667957269458139287265567042898829966750946930142313310067280017616082761721995715879756457963309933065045393770218707361153871988159925903975448829473191631283965774393281326225418850366298192288574027149577865400461678419861682777043595452155234848231069177906989070466682555497258443881931840043596163780265969567087001364049628777069700773200332890001368985279500119989311037958064182532871264119191074547190023510032212894004015110415377909203188728923411973192266918974876740703766960384401729245547222600742863562435381450626702409115403679070578754481563570327674377350176103411910629971671273645050323165894034486961341583131047904249170096647288637169717670853339369877507919126624312917282192420138618487492643456802908390531029578897927695795050091670424574616102209403048941431811820592120807154196233757721413648043857576890456108719082163620071682574812805112402979228951270683247255634551725416418516606621360347265236586031366332925751438738585461691693531200220410673420817705253739231162652021454565517294247422284206612517947224984729759073743642317424847537931139077420660366948449596899496670460054809734076846026994990579667354863226384941295499580973965021692589243527667264662500423115788833238493967722318247423540014108804882072937088544793381231660462655600412152618492646642728285038388750898546969372856782757445220482093602822045310112723272368070295485338954919029457307918177933040536677246773317857272950697241010959315810583483173982109605295368490339042678963095012002774648652377108636550439220859730627191694557312232567411878124517254450466219324522845798390593838025662460936591289894302686930502662923926936799312365340609151858420853522236914016825513496989058061850723040584711582490434220738168957910661021440508621299096224562267146229715999757625193856514183692855201471027978317023648607706759278563479094019964861943693013078980313189856404517197171593444378752670387971191514553012003022147600097470797388043431016183772242238692008406188841851254361330276528374423731802479737719786980298258235980665582169873320509364362725004288992453757908441657792323920928542975620805392413111610036354851394669037194733060413442737131418939171576991057731662777025736023638345001140106968508479160611728094401108839915042944412268968407007270080179164110771627657321261790642317587820003609100340047502279734134930133977684495545468750390826377990998916055732527645797267272244752446769179719037864186121857038337970626668543860221779015890316725267077351653322530977817161739463993025056468532688456062995664418422336967488753395051335450535611551645374511463908876357432066813467559545993466285922382796695445566590512886264534226353723520610746958695103250140850275678041568273894233008775728775580973866978660366343933629557412822669669615103492442275885384548674380925916733611529120096369285402046922468369571911211733203540934530542309732939254097333389360692634054493772071823309533747916934283419560749381646274569287453861134833026213776646639835676343571636486125524384742197603685202161202488559271282167915434337423743885261699841863479506078247484026640497007191048812822376519441885007336360278020581781829981418150640524332401806454851044065181990797219929517859012940210894450711956992373048104850325611032509975856186577034504958590425646432735940294587897957120603911298312161228301355403490051496923791206061670545645818357295974349764175586467284234458135064506556126916740554185248014689126536354378428374051542977191428856166502340924424150363302150815594741011898965982796943055852218412077030901750626670925070273246667844694973572562234870519137003473654907890646348268812884436265790199972310921952528011061603872267088204711006695576644042976828777354458408537048845710679694113050608419245769697763271910564519739956123469900628736684602630897843792145794830904232057639028123246346693613769942461289885538974552025938953972595453251918059159750292078907986320845317023815389442411273916494107172308448490930424040745269193159466649701452631313334014791958446625203883427973194721164161274541268283424467413074096488772636548871809107027161451140851083534725254238480198618576021786655770127074105219634403222145604728947313512962774138331976740635863080904283222521406660571415696115618818542182038807067276834732343664517926742446806680654835839465353021128227169749575124139519048568648374633251871604019429178311961282220068235159132945550277346723346677452147059452495245135605705791396548267512220080770225505076785248931706873531455541314017308498133311117802067932340642116509669493439474112026299824716010646857665726206192305280017954111720529997121910608693636533596498276656567226962386364055284534413636412906319340515140213006990165245028559373312561408562325772590434360555222565181056678949156775968285620030519605906700789603818929613421050992731057344939378421005859076647307502462622929192227937186836668654733580038588725630891120813112344630033460998570672008634595434128525956095243596475091399803736004750992981306278208844543362427141600027448210511370003516286562870633818304063297576628799643509935058208176613608169367730722553881879852605860994595000206113221948612983915486617532388347976897735172277640203962935591226576469343439747150428679674810621515985612633105820247051760098358663201370974561231989986159561626716132244798498049879597182931855655574669674229044704616520629451163747200367867522277218691125898591735515947015943808654246187601221505313536422619728006455333915271734196466965185823776393757097861502372788029111961365598888199555143115932772221601949660340556887409728060913965297523194137800639401204220179775424309819737290438034988186409042054883796721272908760045800125036804803219279023263059694697692302527260190182741159365919840942943702713823603575569133087962166503286719593635646764179171664095227299346290779505101897415387356624418852743489822413037489027515978846398502809609387288074577508967068119553768370478088000567107624763586114308971441054576716687384580551387268887838760641439758630573290581299415768976664798033082263642720552080746024887601176294560350528762374583067720830830058754476199499542481240577920839582876629816319895404246844628114358251992488069968971442674035820204272125642202660747136295778873944907833373271750649499344430418311269494657218234024746445904369743724185355336068618701292847899857435430073751313559095024151667427778546158286188739170305087642073824734611835462789604560337030302643125108912112661562309419947939712474557416898384785016933438840919781886583813152457869700168140806639124943709414374587123169602306824964803798175743186663981071624155226443950108095398617454101372617959207128915922224220435807120616656523875503096114293508719751338198042216620257666325778150680680784053590646986846905460549140570016355563500721034815084999688518029604683623276892943793990107725736336786801290979755602020089926824126251851241758846386236667418253396748492060863937055691550939806518903358906438472117384185070666190616063774164090092109218192756300202492559691932365696169626028719191738851876371127182776898963042939477298936899423665197040116050086093881453814119426316274185290846771373335422318950197606225651282500929942055136766125051396598354447710400432282431480040232694279445345748555584232852371156387623873701625795592362114208295288334316557795749151039168836198308201033997993422139491903239924620600025256843716304490854668048137632700503078543289498273969529252559991231108155085745169101731515068976357194052632441017115334967604142799877587730047739014494077519569323711450486143000694784897128523706955649741985466900631188466289396528221337074379495771027233782079445736062833794258945771369537932969483799615636672025345104786346282925843198851779404562657789859509527752542808166707275919262809782345347468050336436087856126080641084237074952391667114137041426396695181220425203789239277689114838415757522009834761335395204573400138185152848496684847436732706581504969885768627539442383169058643371286200501457866940940709774500982260348080679003914196322245078199629464767903572243344476491705617324761642575225267844348213854381027246284558236286904881083656775360230149621497700928968614002187093838991613602186442287849210201626220601460302629098491095251430214020775536655151419145804050309870369574627353026719863007725996448885858809526374960123351252556410515884983269387985423610256620893807152991764961293616162630137336485289644802281328385534411890170287349758730810792203243542811831899832060748489599195474066263086908693535960925029367637937237236337146457281763797246623547087719622027155837134286893481250049740500948692965013519903703894245096960766953043694495413142132463227795634886987776512300257944507521554910218361385566172342492206734900175480076417297099455564245711718358165515968335290716481671744668399747904092444895982460095667135972774145731421306848386637223596042730007128694036141578923128304005632827722883290681890429129657177997028363949534109310230758302320920961457719814868523436361734379392242144857196500650208501889617401511205155119889212348102579494917491895359005566352935001103296758486325381357904431076862980725079004352973484950911420366855747149325612042458992803978157749733706859833538836618896915490292025244614797339599860406014677987156723064510429424461123660920648533338794117075994942633064916616255569793990076947578631591333874695562825937818347535160408321846885895199905398614660208842163170221808359972875046213223422890470196726888478507028957717957871417692877152352759652936856324593735743397774622912199317922211025491388748001815006716439489781818489096702457157358948963517741420756897481755747790953081538156852229807325882897340005290789039620059603734581368677846559596614347671096646410656494262197472696966596895686522101092176963518838029921876579191312022920116138865374608113092757601873473603342749797017558433824483252858628577288555163212648670437536923545961767887561480038752503601790984814863726344647376139328531265448276830367527416095173278774759298966241708147553338243266513294237818388193539582764314009631121250112673062002143378188029270217998725684933594481275968680734895103897216231295883990810890635614793636148392725135959701651953586490984455153270089174148662472077876325131419458713624158058226396039086800059743533104514130515060629278892748630843996486073345711271965857779991398495951206716025385409807240967805335132870789161354180466541878574736494505192568758502885173156666334658907119059882901299845718089809036145678695589838358360448976436056663537818446401760321104489088556697040159656145009416280869953895336271879430953288918334734154071877205187566065365980020584866419358155582922838929415993067073474591157685592342977678461543826830083697317894284920834105472911000217116569899947763888994760098753306098197309271186593209536251199205460551529624778011861700967573611392336805503191993303891908572543542058554028102939031513531798659137042483478998403484643658464800834259152287313355839746008267272070761690391539035138753617839674863298666031477188703016659356406789173403426171828315532567718298309200047727461824247655514984178376659873384840156085014202749779629795188082781968094789633802465753344568471595072853830040062759551215051475045577732202764985983368729117396496785344646764360463561984000360981886235731253712111049198229125456019623226611586788859498471294488523599859188493945374479343444841237127164824329431338164326952596651946717569067769799709721126861034949830882838448621255424235859304738260600693891287855962277104872197953593142057403973906483183356513240495646184206401192782737935742102300652287811605144085854883348898301965105466043194911941345387555091651361365350565891768571266065068626597628578505143641690042541801898237142233348645090472787804147660899143618598792115638435590022265961689642190044080031972919863800009688813059626031085935353656254270675087937851542303601878076084240823543716321003720208298552322269491114969068608413639736826249252014515357120967437539103463073868323302334640836734900503987312764426918074210872308892409500843144656324277144883076838874101431225500282594690632706293871760877227555055284994302704148659513676276411237649126546008031048305485941453610945056686873259712810813005898896697590576598487473352636718666834582841014135060494679574666205536556917360001934410195508856519011169230980177330113331742130705753786045845786705229736876755837759414838389374956029967412354127269409210257857171402538266550756186295380603831061760492087094788116412094899251612226354126164813278680823520491930314810128064179179809911491257168259323155083623238725212266813189043496721876991896022567994810432658968995595864027521261946087628681626263253412622430579939093976676781048261950664835789656746844245166853869457596384147748815100591863346479815056026553354403030754598677136289552667255915665744390801072023489560786649025934982988499725911740645103345661868585004912481711961945060470457852311778437182699223909620372951103583842287900118824029119520134093797862313310827517731411701244439086369881068901488434405873538136315773543019486500259400742790841288491054423995332055694206932260514292803743714773682737295293676929233147225452676602348110952898514405540109573360994752927685798862207611123309192716889026396887989234785087945061042836543910533377196948141044009439878612429781754955130467956246653540971053870303980538210501421461020659695898580020238350901405211935587453228645430136744870621466282660409997659841760993123504413434269219135923473871789272640542658031058726405808162350480463314813325299941541527439655882377510276505096512700379641057399760781331844848919119103556783254658226135483226411193515139107686817650106024571268480100776583359294722286203684129990898077845299429779051736368949885985342899361197508041388192420039255521778247201780353045826652687131348396029305869396190671120225268348784391293330259010280235464471215181587306129057383800326768338075910647884085998290334025332464820287938356933378830238055289362601489989881207214424072762733929253500871106342577254721169334240237963266324699911692137886897233129563765128106198615298043471218646609001760407219627605055803170585280114951446378828624300158642573508727597816767924851791656856593010829120822668912573409227495879330067805778403904030024835751448520504754894213892466273152778573836491306301998705172760520168603305126961610967889689884169550255998929325657457593297799667369261714762552108928825006544894666185943601627523802578097973206775461376094966449320436464774822638347207777529832763982200774718820802156202157467637771850181942666369953928556677187832168947673906104295738778135143079670350014557289596013180134553591244825647560934694998637097434677759165919163251062209849624521740411666540779010601264029839386700456679922653465446765840489304063959240962095312126357734697354898985843287218143383683213464661792124802069945946689498825171456064573504982524875791981041985129454818753531850115625364476781756766951707862837512206982194855391462933852865627483870705115562153860899012250789035130588892245986022859777369023705265708883756312227578187471914673254378932204883143286909481642675266935784587736710492291387566705663723580275405866968717882929652731104357426918975024992922334307750745027219687308484813983239661422103263619237448767119878567226286741344513616587344074018045690708787398953473972548142398427343097001662827050466468890754441875305771389561430665804694579292625879409706688403316481009637310773636306662321323978179161695171606278137512345624710390336471041038422909173679987723039889843324463958474263136425759095425472388025657673767552433048156005435186095562349744680217656376295862434919778741310524846035433825739883084220965059287981093530800087651254319589093742299914816185256182911549978867562793973074847382289986021444885070280876710936802045463592940999981933545360829272822852926148909813514011459120110667873009873297093156036603779079746879539033813832729497239414654837346319387919069279450412440631792834654293152657553023341204668250328756836218540884163671960329260368297533690493661361975031276152900599777214333572585615486338289165224663302037477080295758466231677592104592274426396336356036118713030695204848169854603730475392436627560798423848168256995185341511486801356330652095337856966040595103070992370644408900050143725590715566589571546946129666357720190109298193142926367897180571590553319299357611862801929012342633422748273936784027377239590248047917664539085141048067164770977645833695607193851739087829613652101743320019987676309016657260919008157007779058672139323614161534854880104764565669640854488165290058060650744119084156481456719646974642174755271997591111583108605364987746106780255606244572823317614503745208417102121932921506534874684590730363407440008152202964747177345840801290633676760356587252459757950835122297432863832498698762403110977441464037289548362018532261281105223291285393813773607731372755809831615894734104406882741206976466440375972904124048775431807276154355979674737842453863023165837310580953437510062415267368592463110545225136393285323347008228607482521616279308589192759458634359740287514493117550943697859769517861408544914569154610899121261007708362530335127478273726158952009698868999100741928511757218155079760532248089190041413772654408764340515934814529549560179523773721150833267591302474584949460821754354459838356303772182035304693398973699276553613271038254079073912929645480165215641173835689854125435024875776629694233870028578391009794428435039924789996935905535857934397471590830268933119541292649727096882588791714165726859430737165199875656949815371267006934219516356959279135537958113068249762327093976319589302463963684813962118093524780164126213273933577433075376794084312032587964464943507780551754128217956450812650499277194620841360461151237480642845098094940872210755696821899679678118445246282890248415622075230655154583745328367787244183253447746409320479116751254776090578914740214223061965476512605638567444157592159209001469460873519025301447296303944464919896753680299306539521256352856334472794846458541048596748033804644277356112272632847361134232636774043689158810939562043847246973643126132397194319180043328724896967079876750978959860569292604938966956234634500272109160070170807343837957179569899017768547500859879933862229561689911332757444143815826791615954833778589252119422167403130100825341218627774813906846703161747953069691871766559747220615359440369516728261897694177727162920759662770716356951950770634112943964630544007205210173389810984105472170948154994948665118536705301147178524750114791048813102101936890219657629168882066938659337777836453335280387918891023197671070264180968109821493420143344959538094386963791768179771660095951199911232712716097479527486137787481639768903266792133528034552308891935143379003159930507768253356023790181424280089544812345139147609845075198725252070201145698047682727824670738567087404928153322293193205448711131355561339957620212279983037811517054817037988845507191731626276605675389152589919218449051431294738816905136241556598712370265904475785849831595002574710219359201951235007600014045478982644837483114823552508300842491733087765784292432209297269039753339118289511982493672389428610041376567888928091456057064621605956196735539875680781393507976395375544074737992601307699455221081406564332638441689770761134242333602397773973113713454605568467831809616175510753587943813600682739846861731691338398773694830589620057012260311894577475435063691668871259784174142738826574877902459744741695094480968146523958939862956945638472066602283578732608529799354642344182706744127076394590061875084621191867920106109970789886367552373374741268021544327922429343764505701357254477385980790337939284987661724274933072603433874613733280372542967451711598961040563924744853909646262469856959170244139558789931101735557601403902798068873016068686650937257023514473059989479453980679232911554981389766607465383546143520490899158490836430221142005708851026069126788954702628332660260977010948325161329330100865881855672914942766292847128884832479916007549936620026646210643811171909704108903677588705631184815243863522028509296780710442133460139808781005191625797085145314840724374492403290505863533978931415595774622184524523395826131107716407939489376053141631414968934024476326081700086338205333551945586297499139342117048108080973169160498427840999857408770948598966177857629305461974095323113920182630917090554279141608649638020925677857381019599934142067764255111913376790549310426849756389060666245160780736644356004713927747686347940840587117098248321752883440384635018788166924199782523320270215287810986027623915051420184293935071189292156360848638248464971541846059948891853901503166154350306815517085974496060595547566749798225964770998507577449794951353648819517078069841978587181156074923276480411055542870907408498364559840573699132016075822775998339321387611520948648905470381723599586868255003749769811571066509694240997324025718438832865541921869342672129018453904376564516726489714275670375646590431727975355416806939424323391160478210788416094355826595019197867628373993366953737450281496940270473121502318848530159044175379459384738361206497274936121837745091563323433233514460704044528654847458275116994043037935805087806720777594470957830754473243181677636086349361567326608709726386746638997777740190731172109195044592972708184401452098704990097579956829786114541807344020354431150904007676937669666308877812210901010125167868966116407458567802824013056673621132355283481839461603043478681415817205580440712402883764458091344096944473746795289982474579328140827297269234157201916449829755310401114942312130026019731034122253101533617513041752707026734374543002482352544905861258157039426459060599954178361020101767251271870555949479697971438761217157245644412177100154591859309430353299795609359916880838784061640146143510047239449361096801283342987764413518377214706112469047301500128009167737243086504068355691921785216518226527589183138430746857989590761084894613518391033326703285999447035420017078073690163449460539913919057674925023469880650657710376180107067194539983875803156135679318249164970481999129677166088443376980350822919153533827262741227779864109481847255278186924891314328028918566044460261495740671638771594923636291483987947783651955225704901003120525946673533826807044523820874270565343387201395290717291478380736709056613835788035598833824214270553461872338477727958288665751271745401711794758751298751921296585707296606554024364436447852627909785564599896686041821446466843509510503745503646052773169163926644607869239273151664985507351252760358413767383426494790438269187159058959781098667231770365017093873368651453611725261722408927258460780960893261236908713530904445466850096282547906548584436467347737073065834516735714660929294388714098410951016549402310274036552896005562797981760505646695562765572144616070393797223462808170951926811654705632330077721624959778722100610707077035666653809299157553208022366356436879724890856638467781124301940844632298954077491757700497033232983214376231654826815588436877439792217078247807351708543980112369774083480063772021393042734989624651447147316614783482257832324105440578119190167169954312148268983051994467708088524755457072602443270701067917929947017620629155218404197019833215273238320519847790061372582607595334265580130813503966135796169568495899230712480845120155429368481745312650017182548575682183744699358866015656505324521651788722874846545252191209192293919789155642981477807385333719474381349311485155410355378958098250081043576047113992020700447843919214686752346608829630586631367647198374286827947828681008405353970751064594255097063158649380154443848820272839918946547955078316796976446959157824336839961421427561237260855740953551121574236678107583061592850343748328527683675954006389419092982434633821552900130652232975549912400278239103962155415339209116075701768006083666430216896254436144635324830922553374448884343357186113263686360151563186321197236241406905840811654511139188064010628392930619530791238063493105988547627571523000215966058804191686284330407818550839122104773060507193284682127369463418017893574656987937962483617145525285230647891222976816345012713474189888204843518265744914229695012111309125177178796073863632142905305786422286768999364064427009757281715546299761702869070917022055846303904719623871514934598475444871716343869861310599919833779829838588355478563458903179532818291758203200245757920302342593888326663504360938903305721445129876320533215052970513271795453738583700275739681140835420663942767526952732276447002383559754118393192681207089101374082419836569942711812561298063114655372860824082505303454474679333182278374213938713709460742893318085647094296619987918252056991158931108569276935147145105989622638109648979331996289128348802288873596369882427998640677370055100941647978734229077005743912415901431421358711827456298183679718991016389326437112123818525295251978509950711704027727454354359631865892488274145513853407720751776350587849895796320248402385975509174596921214125395344173350836033345677742617444179087066824627294967268434761636256902011179360202989239775836638042675291458544711257196757006665296011034894187123835773075149125057694274181559583854906069069318001106046638599973495073149718410403698041509161321748782009031456359361048573787079762841128027263975283269587141915679473795844954051165252193441261695306079073163132312823551137864795929252967361759416260836771597559433523115207445344956470283602946668549735469870563515322923020816975480270283752202190525716835551012134835707748523303285208527388032064312642256707797333039165888749127731450634689475791514322160817575220332132745143203709746903063095016761546964531150691547927277796138284931343547706746608244312884743770145258794972817691252869580611527154969636860750637349623287007929717083883688452129325991783391170526922570313416378856434414509482233886056459115448626105331705405629701492940415252175491863739801343354067995539821461119891353152138720182988107028912912689544693643064943450847912844971828982992136828258310183393737411667356763811754654597432371309234062348589531202893672395191966245922889638987505084290113265325358078213053003052261344203354239837990455862008215007902135883333731022472874853945350487480041166588084665627209489453036417616257927439138630195551890329599062815359833374809215510460616053932692085604610965683149617503296474680753576656471142995635721312399792111508750670026966170242227871923158031538059083926023938543156162018721173668411008382480021020619279610464063003341879105886063851007144832728192705426621966878362610267884702173063864082935701644925731360978549576834588680600531732730589870641271127567836265296663755399524500774951689975385922560041497323841550731562229193809804141663683511111573416593644983797315548373434675828570488169484255328376155795546020034863208546370411059712540476855768867018905285782379011786207110995984479990620742548572881391315745885799569269408998857635745639402230824021126933234768743906787679875916607914310831025054147754215039721239634801831843740053292843541107792668577353308545048765032223673489485345349362119218458315006433145421680292339380696906685823195831715117203373174363544047551866252684351006410278724985850619674646629993257814266064070043126156590905000941549956691492338838125319990600049608946814280360639178264026817283926744482246761710794733174732689932268864752701739388750064802960027410690634270148963742894234051354206597345229664790007681097179262531894912020533956255442083084974409080558261066085070261825339293653620855644485242612941159804116175824300029978741618627661418339293980552508256161964421222500059303255426271294136552893048727527835984597828308180532892044284373903240600078768690948919796512380554467183853774196558222067664333626411573615911522062091018162938236033988487906907644609044571612160450895601185178947494917143212061012588442714978933746771090920168667449728189656639453498903772534807727993355541621086020968674806571285946298755897930452710550998543489957780034278057237461298732330326339443487280478744959244932941203303837156040489694301238742035878085241656692567521845004909742209561148103794993240071209432226866595568117738312012639085114172970987444518488165963071913907727916683650005999820128274582092516844394895299969575278343038748525145258185782918523362084231311763728550309471243932851396164860923232173219783250227942017872364888125788397781636269393347388091463012132493072611188300926904966380610777233325345607306891024557493047308604209420316428746088967721288454677098846395378270835959031092366707502609433717266918983144053625215840672579011413044089411903280784060469412601885134243514884655952659838480843638595536601307082140082807239679351209093812006851343109417436923061061461745959623239665556234181656111220945918745865305515528526356053669753089378295668587991723719293543255896438871679059112326451943848096670205553874787523330294787011900350857809190059095404674738526405147445908572461631715098781630980661553938429506669859405010335609871170599456140625320878081148228042249955410550494576669005903202642967131985573927381317302704421543035854463761991599334259480558631630383345408574682454362565014021416927011977223895617484373314623169881841908481005373186909686304251522875145959363290738957380196265457988755459169090220904238281591838596656608927532889161206421128576014191549931400175727156647899540748775102069750864714834349922965072853001398100589429670785792016783163439429210512127834105865440811291876114578335387300645927596337793573391877481438182459558586971991375395067821066968161619339602263145597705265152881244597351102010154887939932266777101754949096989061401217012036907646518902152316661500833765683006731014278893521487984134250621495478515032024069057402101302918622734595088993882861876027998930782897564230930746200159527366250148281773324079808876516731338839762298360777902538659144066496647836062225969800818128166348831869851757302228272343973676614759255622794368319972911186704505174316234293613158569520032982093266860005601034220930635037103807608316140984439065823757673215733277899961036951150996297957081866307507644645225912050782357731788858908252133026151791556986727838876540120469485589566820967324408044129022413106272435823915810704987478091660984122700284253051335698882373193147612911984696064423641476263362475870139843943671624653032928002669842082828444126824102260536269424512025337851718833489079246201590237037571082427622711650729063307438692603032003313151355232771889238755047367682649211794669931087106408689596592912018571121871700296353818694969959889211818352078625777686787660271249195552530410847123639353023898849220203525745949060153620712963899955128637645641120465874402160465550756451802621305845124419348932233916823757487403226342802256487705393779786740879844312668473983973848430358398031531635572837730997153651229626586988326805650158292872513061500277966184606435886100467705535822694812957249416113982210801203222319317831340066848923002213374788448739772041665717483081826819391074428221609638822929039124352393051096473865097694094923933218970264673959511195646437746426960196092158562919048695070433943025730248771176226237540773442541889139783431535563109855473323953366169412847672288853107426519250605014337539062476075946251559454024554040378291994732367496005188141947687351283049999306628180330388006718685729097389256004817769472237436125927864645614222796293399280581246045545051681463112026659378382917593550590842184993398580425714666757789266385155131930636212023108161389764576778954345945567368571438833231206859420304074583491634758044389139535074548267692361186567854850750936155259766872457106679383049452416816260542432615378463428737300555820598530095407370276911818225425063854298384711071965812257367919311006729192181341658279337658063509412281963317323361539821327555263504058767511695435053429112509757601343806083858974446906177568936110229234906619451693869526679251616148982243017162890050148663269096620658152948134622082471496577910759949670386387292120553130938720726878322997810988231758994890702143279505642476241105732282152269956458111122088631699270800813499582003246963573031114439039984977084148247820766466240945181088728634508747881461797079623117733465240889348518606964636099083419129783689969247230656523859157162261715961743349905090734235401068037951322834281554403402566316701995380003108924400208290955916590992935211004421604124173437906923050208488380035934150286186067151388672240826737003449548123903052312418313689163471389446703833380729028986652439313560173259402749787730338352852759713463040551237329854052719659712961452801836558466663696571466770154784593859624746219981004769174857188691708400085638591329132620478175878228786823503469612235690548017762524016361332696036417329280206730728477128974813182047693338830645751798597384409592167926591040591583848489293077006971871276659144485596750781440039849283861129788036729853892523753602682422846995114108176070894553412426618324332194564138700550059348167649514790185833446074468978715879049980375327187091112380520188484419885956283334441654024985623953488840758546676578030632134325785322824071906588816272876024836959359749815924148503004638423815117149021834947495643610593042967396733318564679960435995812492971152857693686709151291079119937392136097482930103042002422851247700081315568776351266390217210610913790352515549667417353145792074138120417227332273936636538293391012563131843456859253096919027429057536063976649190761012081177762408395253869871155585313067439603801191309437937320519296574260920113044973355370321006283929694827121294190078432681194868857474701731446432871846674726893757594697962850178506452653216907695198425764317745716877952252040779048231718680015165695486548120641994534180131361084294917488864901169192215715343386027325120788060157829587650202908176907472110492289514281487411879090109597336586846445063637438440141910771703929137899710273987064110269093408195997684150222209220622060857939908107024734698393763672297214360082134319700969983797035902593043107606869739410983411172457607813169725255291220647819388491612549473298996644075179947819141105844880020960815052627826330054628055030522969556161982409828040372779444785764506940359039027906125117202435679400881705871741088627761518270490713816998142002553389507899374628919712669290504756113753297452067624919813482256930412516830751625482552874778077202523346284898387883635593933318082490545734851699460193550621285353042682187632973610813524274330198588684642302909332003859832188771025790949315212820976998676964556037961650430276909016367522913854338800389449933224681881173575106141860013940377922680565334217995323804124086777041603800474366847254197643198742648537403267223564440426361504778365644602085804704256905506227071995274654408703415569087991693063994043055821254276580278524590610119231802973943725908457007114340268400882250004129195129716641566620831896710036251035190917693130771185026010279635387873107815716223324348748295337359401787830148041853072935727265113258127213463970957062485486825338953458447942979849194588281978933696390224580697947128561528972225752413927499504359701365012570927934727813762749186297493718658023249158923125961654709630943319298603816603766376611909057178214130961982812326844247848655401308782994051230062110830540790778576137721419604479888908145667059410094320595434841526472870178337153958035144161108701146825609253826304302791324013601048419394429644848049338746738501477281119312642682638541865916727059398346627009994576947059274912195408613885140489334285850301099241890840207062035182489329345452160907285296924393921946862705973638785557635721922792517060383189756041740480239910791462311253409644937570730651587904465037909883189241501450302878096059180311768167087472954395934562131841835491065491538812339133248516976890253573105212411082044975278117774964200112594121040799269946335559067358847373401366793781739731387500584675138145124308754299260523246234050305301925450494572424838903917825023612766818604636034617012279940525591829842505059777404842006424574018987679272656376601756860751473592214099411820890965801533054216668766522142358769012450415477978545417731305423489733094089894368623122295876677756359014753619160967227489691544071432982406517306715131889704407684888147628640845749766716709309980110742467498338563853756864742333334593160585316300011792031537746050043688663553745209151962140036946099501851430032254639599750640155510714237976995970917381595242651178955509033075067466066919332067715833467648993627043259605039872813483499523908015919547683010493703566804490818822712090666091033695440109910284312872684856038467186003453312437520292307646226893548209203420768956022096100168569813798757691756442268570249820507915629317808246271934944668042425904581677378345398565231982924231400781254770051420472829785699228953639341270549160764340874356646792695087018745869727013772019031371943223169127553666819804927593514577825850811759200808226259913449591939728672242633058726106759595181283767463128045129931064540623371625611555284311102346700708918920414227283350353957135682108215028881846556422020257463043469153965560285767765416106016185504557013284971012471186020053225580102844788618155230679259170923142589715692220247298143545247076481892469449271217975466910901920667527522585880450587205825536915897448575861540429179682315475686191308328450415380739791256961575332227811619873624072799697072080988864219993766905392446860900696659848049419276444814988397173180471955281581886496681848161346008063134492586611706280028848076269403457685179309656740657254985689564899473579595273917043584527758225611404212275849388756414148747498066168912682939020114751260338102814664181234219244734400250007928697158970719231413574397575102187908221959656626172467532684562620728085320148363040055594968346486699309307949873977762988598123339598334937756424434064062784642999618871869432838823252027820190541595482729578025581345207267115001242653109403564207388360489680767941756553148352283650492115390700662419192820010987681033197208358044751495050439765466397988558288277157652734233170617339564849850381166714035078606820985981336650070531270413251141196911130623843202749001000804753592548298556869107494081314140171897264319563407236513490383401097092159941131796297803587783216717067616254800082735037630466067355406975904946806503036571402960513731587918374764903583175206720393252287063757082611934829604741483329584500980755281155570091239689850299385505030540264726984587076225835049573924010654168399683199216865566592878704316332056360219790259723949321515561963522121254909758794410512006957671984945201794338041687846851121301740702149105659479668274573640361219590909337799071054412064455735543519318113210699898415493974106649441848445609253800784847372456688458158613350543181771595252896573015039043955616658829571938862265596968095997382487873578376225177882004429523485167877104155113566591133739165774291964585090007896985991007805860662665031693783932711213555113090740745118542238901895502503891849680710523010790988399260230263767059920914307602255741173188367991809269346223939415295327632031055486707591023270575360685286627427787118524323573078521538636888564297760070597301288986325377775180493703295987643015649366932610917485104101989798991563725144203515680262463122237265795514329967166138731443076728760917902022330918415387788796528502811640286951660456555683976176092769395631420655822099697331446671983218595427162459893033075149009941258403657054628120273016840735184919058187747290855719039563121767845443245598295842807971322685333990026263379090683677645960435578421268858707193606183606962321670389789850816726629225871705593108016625954439704955366057483616122507163835742008725126506024569894104537837033876591307099440991897177460414861258123191836737263281841257289797688713286182897899764608924476072269026988278126367342833152969925391552506250396136083844852071291546726876097988718206650447726091531599812007572316171131387368872625220440494597237204990737593506609387799787024110365760816446194151808550057540111647167447014129088691668373913898415943222828638659053936431388925367986710557848021437379937557505291942584892809794745810466548191231526121993322313037858163970786951376139678085418734098814376179618568840000564401975693138796238476905409230589734740542448312722674600889392678833780060502271046254627033042469449998352612538930228235095585915076520199710619910311373858024216686593471234028022737449798118803161481686516849262125573233742118601169694782210411496873824062319084331126126199165672174000427401052691799064773390481456126100587295047763755031766265556400728007668551705635672025844868789127924656659822581574890814640249551573766335328772555394299690055864291691025955482754744767234909509261425842378954070987942329305054465316549283634763455488366205127208387361034974010342555517780539528712296885990225071432032903029515883183943058107499627071813336239437426682048257068990687753393008468115407508154690204848977671203240356091773937720560326392068761221979767321066928804211939031867353735216297699772169964361474619075784149844473271365919958382350448760517809868838717675336034368077231926444418913943694234187713290522251914615753858085157562421103208016935648188478379348700500679167612061828639656923865339348902484705336822025882109372320710726394430841943214441168174606688022067072563865334115764155173024705981508678362576011468833011211460642305347004778810552491622378681823784500548287334312515329699566377823529318528654478076285511330472259269608133903107916115798777321134700854999712121996977282324191967652638872240864347802596275519010369393770186229138932776029892975002957067728974546163948346858409919483923764907517395229556242728868314973755096432722269337921213256110272941072003273433525049824639385272663218270775919015460254281902242857512733119729964601859991085198263626950742607458125949110067234784945694023460396515938468963140288940884074873978587938542987203463515988933448015372921518380593372355786579128278420206705940151913216429973323634184859767779560631829680476456335079366556728640976779461417147552007421999216277958937198722502066329512086231577931280260206457156391552224360263735385615116440673864274233165269000808531310456399280661300534304037014573271249903951715137588135235045607063361873736409517674986569583428280908739133519913044700326856023319039468160526708676771612297669775786855105358447435094885108787600907181076948120797459477785730339174936557252115079088700002668623216372700861089894728005069432260140384639882492421172500851892963077517769738092067841224083687614262047315928331185554149782384792702960045680790651094788126243361978798705771079780831628597039455775977554229470590078077475968561444855580013225337881426446275955434603697536569774089825330017629195865550548593743594295503446114077193750450006962561996743859032191384206571832988415904260543164692351188103272778416936628721076944070126756569268941439128806807508315333386958842691781824611324313620495510685657651188165574393115588579247392100804255384235025245265320158441370163100416238271788706283329318972541627937583772665238358421402291595700012452283434750642076599820784646743574214079967147777165232507198185287977802163078516934656127775138149816665096612334807504943084164730239461955523903009806894682440221657255883351021279644059795206563141190630716260634538796220415198214917243158889401206317995077666083306518403131595139560859809559162449381140568945416840213530874925193125147730017931986349444047804314491606655823124935303716336889365250238938653984387638658415126985831362353511945513590638545138158517782382532482039604803857068778485203103625479520232274199405068775378299844136685650831143402033846470777555776166090189201679060672344592288341834572309862550124622316102167208634511375917563011674766043622967029882177417000751070267756762260523910397170632690103242183029257727547035031330810834794196495818316704551066009006996473939205273596439859200822261980484057723403799734539309441915013329221014041436993211850395248579397135433130902564502699158433755893852765559834166332023035677323788733902919613068512883149407094519145182004976548564976523532584245636384975943605117195344148948853679185917439206949149205610750522999345503637964918746768852267806227396373380643535278850344485158596276252209037238216266155002234055233970857365613747589121826473846989621699748993318981430659883363182105016280588009809557649724105305790693058107728455991924793369408913362855875998621140578648867016291044203503364641828837551372537424748274901187334551304881372477016669838169545518596203249792283701329472379005236948051699141639573278757902348219110762668118046538789170803068525445241902189182948560298006019649554313179199244815267228220811829869620137093847033492910789173665425386641437553174120134880857035244884574566360754430502917616472282849683170896195785444597388741879082853125149804291867285055124742499522476382673587947514948518373198999854119575646122736513494902103702575965790656671453952680772230686379464036135064455660351522126329663274283747541680247194344334395923596666475358293336308604712044576309523989375244908996403978455765226403281436216249012022251724541582832482715901616452233172521122231254671518816732262515952917315059872303387983407239077275896307666817152239567090989229016660662280998846856920517463038402844206801426299074314426636336601572111494811641820068406524896065338791708311815809887892994085843421630982563849291852316898781606130993211012460042271833080071245021996917058872786219297906709749717130675699398178000217159887073046770950765571916146392508239299189627615099809622965200554891001488265689520947387958944840061880820466168075791445891785114254859811556686062063158823789188411814553120958121578102717488934447357916258180498399128830760582562026534313289883337060022186648489693426700871233910977325148200796934326395780380765268353268011698986119934552622552980259604584696092661128350374499369342588952949281903173555311141088572182206795275599546705624997454189061856914448335748062876161375252088393268948644629528311953952558953576298750450775921361132652948645887170348970755549478473015357450337128697422302618860021716006277688370174462791093087641254196349669644463659413336844152754327631362321446638979021942998444762759334312714122869833111532672547056387197773561560856267362849365049199464801689024971068886944032713938724715589936234919211945189711368962667103229685541770967610705894805381875498239627106950770778235850515235160844203916244550793453053638798925395618278310780611065396881561920792187352657776317005405014326766517222281004682196622625669275350197930778629547159654629482747949878403918876494063547984137782125967518965527682034890742404036354024948503018659177831220154537574818823771431126070875471562280022185622267591190152560727801365394295000807930385880553482190262872389591241476429535873157336019838265508344033918340012167937071571888802956183123925864614631033232505304760050785877643735745740307774628134565674657572663110070599644098572693838201261252730332992342021652167169589885063545261264301865818697231191449439326275988645034155852080104656366207700163265930121134146922171338170270743288623699762097422135903217087779801622480688679591640899144911614123691089498536981084851266084627046688281187349375844979854783753348737152400982056528585488195397484957258592002591858051963637543394749036958696789496829089292830027232865554804502642873174487577749488650106625280079285604206683514379333549768227893915368866723231808738734101352141351804239685862684331745798899631293669529270295069886759280141689696147704331053485841603439610500182214250288922775585659080426432921175443430123359484715575486304682054148512750834811122256026812259058581520745783416184456940394854682414339963672285120421361907699339633738614833406344581568144828093479022823061539138516472715350573697580163533147307793620660559106793179476188193619421864574091562708367168123894827777927180868312101801523548753295212029606170767598693828082179381088000874519501804422304951829800656385503956712120168905597670600574135418517708087306761822073908709969833018634321552414297545670305662107829075220980160054351453540420475942780772431398187896749131197939758025275373829534245792452091183026241032329026254833149859022611102518611577176143578341286658920989232670020978389293116599585542030522008899911791815286263210351406803592571071153918709757577541661288817439410062670406606547053099625731017713963888698219082566729869635868865352680852774388792677211389089853497346016781919798477812137733594852030702331360010194524809725025100231603542080095933930916031563833914820636334058180038680795009037058421330244565687091019692541449539919104201532639585535502705251597083771080511594773831386078009321066642976746176045669928513652754795998302323747987561465251601157918070098236940846554646022357523579075041486808654171469221189995060928291092153311818968204900817946484341579208359758218523644331782727860425642622935678285111335812102217225992346836701434091348158723647475596361643479139455989377318998517079118688449817043287926118619883587377631727338839602138103031797343107776040795815670865489327252671366738357888383762923668672947660834708644212455088435757026778295751724806931586851782273482110895949692166112851806582849699136849423584464632243074982723910548478837071616631576359462321448886391199726967035302295238909744475013757117017215748942736537011153916168599832763150269557708845763465921593297451140052681576682025822767737012020912090975463814467842687027897638543226908590991735572694641999118422369200161276367754859885628185088000513303771593814533225821884162332424550352431129206506465207060235157269038040278786675793154942492978497902664668522895658994775329749780434468548360338696581303043299910382818679473467065241715097183893113526603340514868848120994422498873678684283267964520068266888221771137879108599933646348053224289019319056710167114929803851825307996262719854531251233676219241392662282287366972275985106379317388974880522711974673289630925058052319463922532077488149280758381674477442496578431035218458130605392502533623144579225950935815405697098539395809055440229248049264630900122962529991790826694242835421218258137566277398250085067956648831176404025226903009826334847001494174362128920447465723960307703955108895345371791877729042924863164747369341456977157591854342130605272799944762040677185290955185381197265573619866352936546182566373966751987610236497211329715027147403154863526188459456900466222936287622662910117670066880769466988411241932462502752077375708411906121527587473417796899238131824574156393053946081684703472041739060506581292844735760638657392297333346119332709520309984744239074948067425046995716946643092872752720805417385828712754304176567002920711600757176389210168793676745146391620335828765626074217720313010115309652228888861186299295528244160032370765826053408715083488279103340167418620155886463499060221284151342907305963478943575268236444561988413820281514799202351984318716206833993500761964690385315990386947568776540067664892224966139446069249569695084979073396205098605287740080961135250608782589060784601051122092575093783446843099530359688038951063579702319726996955648261526025884044631197094890417033965502058730406198065462034956196306894480918666849327599627433227566821433287188983649221368910932707358404360144318013023725711426422268771997627148629268464987384045738418144050700063171543998144552387676035734082816883432860452538896925088679203207649980176783027420721619046023693696982902984868061315491965763181388441331419295700186434470537880634540117777781266419247496012213617218826953724922750326288360832581211148369916141652343863782288622709180873272976739814724003659240456976460241727603226280445112850358479637978895806885386765721215958959562967263201766583610765370002984522460666025692726029137728579954201199134363298625403133619723178837282342365221662712954985635746984092483946676962644534079609883437113022391312446465930924869708495549989261897759564800107474575642106916523985241964090015008961310871013441554227191127204245216317677675343452221319312399907369897901936600183912360786200999947969129106327900896295098375743521465260496552683750497572308727521835894290570446313351299791153280201529325383486473079884574035988397938362409947098572554733660190095622193151021626033892215207760910161946315657417999495364982436963636613828879492055700216045364846408401825326565126195493879228614072787673075501386406944756292353487064607107776657776482628608259892913895180269942756952851807626466258602281754711782555353939576057685826329494298605506886023806929924621418711083395603412562469471194954879102285269728299681399051047200841666356456810355083402826887230786111309193935363231227539803223290267980584546369766268494013683910990919117026315010966998897044215227066709380062316305601183469261821430818300406256565448222316021983181461033475370654828970008991479136219376104051189755280303284867265521843079391305672850800515519023423948070649540764354221621930556748091964848504568780482109503333867221619818407110670913623696595288571569074342182115400117381968991319199879003973169108226890427798307215567870703250342864650779012662375863193014458993972897641147686892431373397394288016072878934409459329372153063031088463846293825632744852480454088582444697101134816570780873225407399382722550717919602894385933628758122010786694133237215203777788517662767551710987461307016952603465468167273280602820583920084690474873246166110719442635811012160222544563221557740230514561314434809849072638955094121089005362482974123487166863578171195153058948902648738144799445593080956897717309347385209116460410456152389030375995739354842853574913159379948734990805517872643434110247637941983631369942509873636868614000092343268859773147736371682335543019365162398640571718385550146292690288744575929789024266448606224964543936619822634817505955515652004912556481179346933507839898480965833458638835959635270512879660175449545104629883914080910229110303244987402476719739415755127696691215192225137674520748126778165709178787911285630425301318101804464981107773036276972585951732232169698703911348010558915003129968823813978948866296229821974487627466625156455227938583434726328886776832121142381426768511492283611400054225779178853857543715826986927083331011809289869171272866305912981877131050778473446396266011865234795678899500235942413761767211351635755410665315753198470800057207958771972415225870102464473324784379530333292798827694577399008337139635394096652729700662843187464041269092050523587653153759580365474535818660980835940597002585196120128216188694329056547171262031912366253551498786764930811714001119738954797018772109217048569755991203596546428162482293391445927272517961804630469829231092328783379014592464189429762682101665215198469767606814332129618456135384017269638124896390362800363652882201272998267992428503847710673316788674805140995508197694610953773266669194746836136573511124913642260000965435846080902202175279677074643032514854563138576103702977020928428466589613256722793279829508184019590292733746288544763132869427044006353443914944925186040113813372344749357764941945498776104979923512015739283453163230667739457238729336518663976366834325312129542532684091121367877168321271370877087016689025770438274157826440795413254904874662451342489688359390021545487265138646478872779310402326465387453023480579192847457604764457294057811458499050433616832601807189124313544921992331581055980583018166627707598068755691748476554994874456784252113718717805071480808502996938494894375062920376310470208455059935450033869962166981835471617032283280824983937528693666374597443228671929046408023228938421821404690833719692314858470852464078304626942385715093790879363562268041265154332437065267622875568827327799351229054508357526828998751542947200673518276132822048208290635521420549749056147984905129964551686487088920945171310074052859844054161690571429305193625446534642833036155468568165434542296100454887596383930971677113041898804462716905881834061567034557404069825626983561330312338047203598347323200689084892036870187945443646451590861267439459565740690423541856478466142239736836950488875064225894139734887691436886774505617419523204151044099134093401241221371542440918194973331541636538974287524414439986342080629246529214152016164879268216284750309065796244740967407357977249321016422265053376568300506452134584521596121446693153526766281997631483316237565743670542353913815911512752483569341640917940436810984232303227114402862410834050477672683294765375681596822865636606382651162453831352280467795474825246419582782885063458044103507700778274796894909691558182577073568744908609861005171044438521130625528101818020858574672827776254552564540965190596678713160953023393426350760446902216444570828105529488157406328836311206778641250389717362210270736069850133788137626602703811639589870778141205320489424392717612130286606558869623091015090300274872860083823564924653400084562841400368759139724428836564101380878824913369560108806542225945272115653704131972045744323603377488935508148899911744002502213213392902711211045899852223717135770470492283186498992991059512800321577561212643125284071424209784326722905104589194629228170587488340636137812548484916550528024594332139785407103574707513596258535010592116966387030819738397672892706969380713852543866088004236364927810597171757695501112703979022537032529706995072204404972044879782661686189556019229195552704196785875618620510819148845338490541910474410655195594750560379937129907678049361452213412993903991712640707135761357575434394113131565388649570699858436021980738352659329158356013188884931361635854349270764731055783257208526638614329715593881748664167086141788507434686044259913326231961532009435041045923651365520941298289639941455537513659236531512767430726179622996977487158789790623958538443968847786315181457976319230731215675804463562535660263579931029005783885643616494646433694340289165740593111350170465008097930878610436071678216170665161411351316826955727340039784707250562093447732457873583692813420342711187719434525010093670073184824919730661751089834722848026207231629314730050351095741780585720045350137950274186041166747634610142661095375091020913013092196460673445742863781041223779798490372035894127673688088437699156701497236527257550172415080287471737003944706280355146206676641062735714731079612634192599273998590114923096232762231269645578324016844234261232755921671076720351951666385936442047574838213705196336669400989835299021371730639794155319956914636335570896937499950565053608529203756181754528655432008460165961250280918706062249657267323519185055988909099758590632264080380163124998357203322353679303862216940199688501832236115356847435479971111632082753624881025644656185042764609945560435472346270922622448854855560916978106177558738863590106803739934844871292345337909757372048871843825884992700758084172021169808786652392599959391836786461536407927308921483848035376534618516930900201266660445944975662952900414941442879753841032089215434341314825451751436943963934047756843588233778530418728985774481009725323713378120871511733965515284531145708382545492796385438704610866070365606466424096984557190228286930452443061800335055195254545354491321655067641461700339494988557530850724782197727206791481250181920553814799437112335588635146954794485155960115627157569354779648668894573909579515781696518887224233524673095982137378645066706838004057737713715759398777171562027123174863423008924238116298802121502706235090085061621650404959595836413019410297007120222529565351827290665578906959234372975129682107294888357738294821008682436783007656420342850234209720195282312686555868207645317099171090523197251267621751474118515791329941669647954452689297920565712407067027932053021871301598274191481244205943277039376531654440870583063658369104013421644322645115842629612245573861532979365595072537007944863280382469076238945066648028295263379680980232140514493648190204077164701452046107030230536017023836285455649712945262484617460633435010128392179443852952882462740424091320310055996615998517046572674805831477823701485305570744229298675612518141856608073863995349783732075580267751556696156620959269890812869358922829074019135571978091348281650815633910356454517939373633912713890195157716851786669534860735346530360267115224000137555884891170738953387938242256896328284746749666668632249202847526711778582833701727436461669264219521595817490424305836246649420947547322277751940441927171431384474158008696168109810199105710426828234380596236362656207195916187294532972587872886789690794283949309470503602182287996262335899548254693691659166767864668106349924058973698525726587887106245284204494092830541692421862887881451729612147664089405740018634569043188397580748623433548210154167206328978026211841824575416012971705248862317750659762810608373422282064915884016710612364277765625215167374879683281102969994622358268599865056208856707454178042808955938528219486032243333176227536504642300852424052483828879927314441045456557888994365167027749378769355728687303872648776651227163394417047798478427348909793646211083312447916202078508843486765010958729184148155882886291487448937403852213923830624432039577248468734190783105061106627985663370847338261458328755114498880219213587403930555149975658727765491294594269686609090216770590078583163051341419110280367268087068388957859239023405171230921786918044588882548056622935897290469054718381513932547835615983459840864277147527905569320767219381916737538031283108634646935772217346960527634331546346935161947834182490613611460851966207221516111503814378367300442911888838720332561225366944885522595746014781381494157275209570912702790604647968294038326328718033517739642879916856326065539125404360600268704496350103385009589773995616259695464252962682260052003569763365009374270926435804414431540676588839986786173255637680545413125796115284592960453192116157676930269397383440969439605035957365696896710851959396216364130545972431552008570803964923349442882334232359969948618440548805014213054591796650045191614408256421501965207462755963004330263583952919470036991450582054911617691646999634039431239622037647189776039552181975951461702833725367067144650961540859791792457761323320123402216097845862762184616426307259946218344224611871175838762706467228731683485176547980099681045748853521917785433451777127944130238293850975332713257973812421136107641931827011824709244626324664382619469764932274117969061200019370767695394602289701164244005856907875603688108691209797235494937255239292406257946348344848381249769977559383659897477215380742859958622006871209514352244992121665198007597090846181781551920410124603337672455563214187414077630167968711858462160445057335119515344070890019698553475566913982227106335468017697617256839427281658952585916275921579529059949172988747632423084683046364757174576344783000397331264560949948404378719016318676455443970431937698872066299057385017235746666572911820780450170114784502931185125738982835104967549414935677554831710581735834449945368794088902811729833883636719484593107843624096470006693245246813369152981361583002316468669113068836456338867316388781282378625538083486866421949396737443251931020573456128157139985332566873998208133770554178945059580166313750455917924081711607936654430423268560216832771139550869597493704813617109048725511124680110080271440088839455971519296269014500750311863610896082802745581738742119642685119966046489185917328712993432662750096705388291269414817688297690753784439412909559986779457410182552304708850429733612130816974627095088711942216589632094191768356594312693443163753388128086571393026692332980632647336505188496869439754680268748869274573170222379293372684246530751373596408389045467946301205161840138401136533685708381127326965248548835910873344138887159414460524572159142000924354752486341017955572999859836293247927485111233770854491073761015547620869712722775492774717778751630755487343904164025897827938260904777510198883491136327549860717139985684524187854202718215672525732272125087968807052650654733228752219423407336303077320086075686170845286326953737134988000641451102956839217280699961377573127914041572409785245316033918724869625579621836091590152794921601731784207238812898150196764089821684242468614532481660907299363033160905524110303609446653359937406606366757433328547428433528602725874638229032720756440518727682515834109114559233871933655349442388734781128331055560639585593258246334000650879064639598849393292105152234810857598960989362609917997838639463429498942453576967430911484628205232600972474006649934906911231022176088818481905828424483756000546870890230058980563196110711572411222905910763086116165186351412357097673524045496569888434180273533687130701383763559456437272525948612475788674019337150568867403959022629112278218206915457910816261819497807058603563917410408405606463025947210671817869252361875913446039692225341317744599924255523655287468962014115199687097000125104213906862109557971445078526419074084906354018475285782829397551110118488608001646889291632270871295517904201382772291648474315356541883380621341116386412871354103362055329337135029586926859422519354458037566260513769118628490093099026257456512262412080477176955109286085004697349478374878558385311334031821241230532668544795522499032992889795657354807242016137413539573909407710258335937676916991304589571843905118389322578852744078203242351607508273279004321177448946165888028437141320531620368469122973382094340181445748622866434482807138730243605928769837390089545145848635049476835821753633455766690623023946951071074214386610436931272163619070480548274551488048875837527429714977669710264155329735532375495057156367563319201501516804708669401199156120495291054825952427584768830638196889304428392539132132334001801864615906144990682700382372511370424701943624144235516738698649570105612248601298212243023962821164314536183995265368900311206698690279844687378106566658658020135891101714541253438415982313735993694725328568584501612313996301148994790528867273347580052303206553629352276418150122958968125689660782694038993627243015841994279068999068395681779209182746816007558588325882858957554102710024335104241312701793394908941922208250851909781536651081167337654023201936576558818949484545633261152434904888759436639827271267123525066400506532012494940775601775047090344041953903302372636125661403621925177832178092550629800283283378334150017132832761967024576786068913334852295302191501272700354428847142776561331313672320044913951712652668999503851215095731987586614448397780077265004118346369703623874243080642352267068003722634470979700705838965309989355969189816806225776672000502787414403416826734691210408948680313661131257063906072942519738673028755644720669857793146273579123237990807719795960380315158338646320017774371358909105912023628908543311208783830650433846006561482014737075631932280532095875465505331362914550208746665660756955519984298763275550168100596318292479583262821205403058252829089755625861153254438224120480916602974337343388581581630311704041622581519845737893002378059535148182015314131663521836493880734667216821329443061858041038546431905740671639560962220262560167395452138938434663551653768573223932264724815342929716364166486578612382818048050737430514545613429493001269152657094084801046731832447800955611750910006456901428422421296119175704453182758255733695800719676668444109490539750006192376571717288603381842936399631514843464586609210497564088866728667732168340404815434805525274575308810429560841054488586448480197138781147261632114480434560376319779481768109630369029155342553871124774120637354955354084966439578558038803481643755685633231916106625901899161859632616116509398781909120975263096724620819503884421309768806309472283459503834050097401654361705765845011238915660273499196773282063916415468403278198522337998717703156980181369357462999653371015881716425751184073997765811122689679166872569255321043457296153131067074827344921413795837326975794483894346876082754348180428469691416167979422993472034965793089366964954268884811777853811190649842134296635954308515052976806984000972681009127286301822191015228707146553985789595299752335662495278245146626378729976049548856176092760713625622577773993388924475963608577836814936789294179547414540387511204794898011463709528833530097743093632318364899563717721947694527782253172135356557970507873656709590244973208883326898687315295407726940935746952856434284816288172547745906267530804303065280149043710119648075605773661492046273138894109928863058319373752759832482779668644170697959576454989811515856517909558078490062248984849504980686036746067752448574704388099277638249088221352758966734903008773606624444279933240705591075480143453005429886858965838499435184008974641879003099345569309340362175308634717165699739867100483887953572619050137414054897995242217925604022102567254355119643810853087930056797091675829963575688078906902192716347673943186533054303323458881733742086728890541748663827018069546653674450798986522703428035063620175484696214827659911101429508481114064485771661722711426597694547314574108877815005043970667671501097887679898188440336259760342193808093799101533874945123609532556758843264644844741170991140538986399983379192933884091861492767080878336661491708783971844882976412829676294478015769761807142977793786942039821756087101931799203052249726778095653523591056316663363604215036521984555356066497315877094048630430773578812569372877190265548682177282328963370221463910769501214344518901053918862117205050587557438756355891044393830921723034467070950496635521550811854153940551171148237326296685059608351081474117386596214026483991366121133448387809511969892299200853579438639867013931261401703029897461160983902172336063978736186038274612957050055899702438049014456299594212629972331383273034414239211704476429065390433110312284710529130197408120623385800484418352962291909292637046150867991876697573359675555466097975371169175855969165924814992965805310755822060115076489606264820623978892652844432429570111543772821995065835936778502823618319184193380538428502648219377056138482119085550814962920146138994904869142720259503227550383594317750094986794888314239408078816785689570921892070765012744892677294264849561731079224610291513435033444580759246770917265973245082636817159678709162104395391810182834229886935564643932081654196586521836278385477334991249414374854159012471983216036603484338484403575136621575121368836662591787739888314476533871139230312032259137711159258553666832497365582262771636393857037361806255235644339113546234826231020628751640347241301914165585209170257471468039118407644670915695709907555046537648063888783199998445231351465981392899666825000389727604246655326968437904270024358007932861870888377783006201867115875918556923497922963413416257158905142043780597646708110481037885276143343045265296467242757448160768478164576890780174230398647275422886619799530862236645893660558464831538190656895036668968578440009325361707473926850975849418837832830589576901299064653681807125518603729209351831678551643456193370652934983531047085274237321031703979233867195610495355339529638363282894260758214943621105980263049168375068666290230372339412974560684326812074481653050645530931942590230485229286940714862585573766564103564797348883494966528798026761258360210061101222486415680382164269970240404226927232334576546416988632401517614239533329613307369628541829390324160578305954652651271354382529628170156069956208876958089725603951214742007202143222812683720152213645641025491158172982645182190238460001861772026262533382700601611937535528624508722864265518856753438094921899865270567531500742471810430792571467715720493676246086041250403606909118694292870513931461779013263799663660429192249979017915246888944584870599486700104505110361854764429226366457506592230328252099601512831331036456082031850323354213150165169081612295115793002729856279809972471312389200442074229101146856059648752539692801276728964315982643969133420830687624750480377658764371589549221493953002844470117199468912660110912021716447186341776624750442656802706768353561333516647178946185355263977032121361569086056608623033031702753280194530319647357357681791755692917237442226775979339371443559766941414713074254109803846629813621753066843880876790035938915080838846283686013024858716822691473377944800287803807527733558906895113377344317112787405380899902976437607617454028453594637246165219947059595119914131618179360868636545132537450212457429776633026440563347793180973318810252856930221614907011098777785679952320675818630779411056562727665904787809059137407693402022646259435488711966688356984675212716199162189624128529038372522474994399649709891650213091123509896289458889583410723489797519172269824839364088012488635789804670385012647051660241937276701859381198420043656932109356691518986776547380281279800196676332247697441351335819172861050916939238589991970380987950219989713840303917144268362451486675560114185438398042039259667320851637262528957628944680864860235802657837163613622275930074043947771445009049591331748014514150648211064810441044919347325935991593418059677696830629021446245721481965094505710339350267314672353694377451392357319888833244765819099988608633738893169913615338817095800866561879226857191210708555741971977683465459285693542978004088798689095849606446815253505784022066285758981403602389653884145414377418048465061744523343221124297466975130215881839193643225188266980650435891293200296134088819539070402503519550771510539523378827093097831337679587975076367856119886426961735501765879022670688687566756348640604716255189862952089378447173108610043617122030931945283803590118074039246425055582901985695646988231599232411706198423323717823098969294502723531655917612034490145044218509359385191608359471595355716196117720440464349191503051553186955360791715536033741602218997083147810617706888278338713007066339875763997448877370402479387475028859573437516751146365336814667756800176458340491491190954562221354533605960528053492026791764519821498606446689893018085585511263934728070276112655170813136079767329960961212513767560063050343609910328494319200334399566660360252181070082547113127200081213557594229099793567186537055687487813152457146239349315907804585695819010375296244133191728399353597037399738633033163189978641661897308484025201275172766986641604819897162628823380981696201604297753416140701906627358960488829589329513460211258685276115802971100866857612213400560638304972609812085569120096089116277024427182141268961284625851831454033674033944097739041949513122259853842306587126273244436007458860536229467416563835575408762322072666576752641760194592349713824654903216596882796090952891909625196584886283797054053119467343736995402059971938072660518853823097807023052102926619817185661899534916486034831556090353085142984605643828278203693411824273545990847025254886435692740749232304992240699654938012424656942352338664120443014220423374034588578732649877583680680023979154359581847788383159872433769454713116044064727217408858620699489326171041401784503826941789908715350136379200863187504067507755745684534785974518509713817724137486118658969629283394294327176243900336991095438112527319251426763426925992878032381063602875146617390177520388819392854579443617433663103966015333670031929299868155152155531106872667829522982803109699841945825680728038297686635297037975248209438931585867968272189352880959371227599522572211315384445025626050356932636648691833287827666467273269155335469449577961759763675457575677371849768454220216994456847790358722130955665189337716213915903055363426138776298108219320735850426183891706800387946414172501691490065573192400797051684176981943778041249310766338785514207637511411780961385873968888924703227281969729925954112826230379093149207906148158942682876856273608509598575500190720744699527654063943840512236628746867805351649476250217846748477577072606841847906965123546517367286646659078760917021239769271039967789627618514674069300116873312689595877918325308110502510431055381864121969518213074544667794952625568377271059954877450466889201734619001322578334136323986161549016500002427168053318409392811072153681797641919312346208271208331328553769249028487455239120988546620142509768670997368387787759844603479045830801830362300017640660120577508304959596957361437691471794745649586498366917055370877486830984579329611644156270885822397699516075540054420114813206919857191075052159529665726830477260422698491506129831839231504081822061314245336265775354225358251253604990919082765950867046130649449402260780823601847996400828855728520039238664686385595969822827386133724788874118141164507191212676803590591279219253281361698130219725781052101387919879260191904330477875842152532759117812173148634386038195371941536530588834749168012069951711564286827919735794855298074670385577596907357413232623056196067753051958603331645742744881356349417018480956977785263810031071929025177986042339970236408703372986493207756493199031419342889625653420677711231274861732097088344886352576102264649263224743015990446297846295147680941050229342943291524814537194873570635762181831292439316763534968911324140235687662785786260492482197304413066934972699319913376904803438327304809841784372080554683620726073678781420155724024165950292094473145756875747897061588048307821889269475870344996480212396650269069663979804367525271355295841402740556712220073156664658473166941396025743819432709594756892446174996905493472718562706123511097929511346680621227734941166473314522264738966197434798766865957128317015386496024606074088255198218690066428223329508621691392205548218682709548401652225624566281842622734351060908317460675519395032552568616504702303150053847470651736107627085096195443985595525744599167722300731881483423971989407066776069463119149335298954670596624910691695380049968374627278080666184984660712148274177020303701019037538146181363957798620790162537717530905560926225069114172508579369982310035903058942318236229726348709620836481780347708606779883713246923912127054627139434006816642902856491751392332556509851747493229877023907070454588864898301484887354865604729797476571054650392591566056946396076802776638647152917690361159552028201058871966217378544501294478664082462951086095755630276724844925592385970888543995669549287851486743137862257911481024743833372420015392113099646947868536694295335548946558784842301069360179349681592988577283198984499110338782987526051190573120190643345173103792202444981918654752061594117926015828414196631932913693563641778535405685492718279723323191351851052137635025005081463848844553105211025779800572539258288110254783945331695817100700948432715750591303757223461177386054952617287589537818919743588269455115346508958161200182428969342447602267360765991490966760334147244929263630022708877319547798946134009224623381427671833814897331810642655052816994680491999807387959605158389219064253161492265294328467809602662087363370231061751590010710356780716433052382274518171498640882879981585176917256122186145965000543283629289614610049622679528762750223057387645342189841016517928116897829176587085465534008518223978178501288972632027450425462182969099678629970656139089945000427974449124838098658124555739168911837480714404903816514424872322339510920707261058972888184161237820674247524830684580756955517878386700597381435984044847583513313904494913967288667585302956431756834441932132754709557175527559610739938243252718222248500222698333511041663641633518107517316132450764649483580911754437676057317307282986184776706058630703112976021274187384661593129559389971142567649674267091645665569956154860830676793542007280096036026409572297314229245311089933985319695509376249043255514135737016278320861195664277591871118424813820616605994209080851023563710217531882884114646952359928261523408699618808451498645150505014243777539532802428765103709631999106415160083764515057766208046559237876150005482163403526348279085405663509090584621407004914889100790047111102454141607394121294283019594899324902683544724083758670549760706731284262222605355939092083963358351506363579763518846795436348930512528490302025369910662540268175005951361308206183002576860407952853165276514271926291993246941215746826717620085025197241005059526018545326233314510507722349311931965201622897039063357811108028403526621980189681898935346330343200804481995896140367404837900594429692665141543713947918550900208429760323463117649881094801412570807061044982630220987454209049499016697025732282914794940360707017147751853263024368883151932587354266487713633573894872485109689123968067463148252228947863633894553260331298890537372464097741109820077401976999465599563841953427866418918450823839251474363109622836327296488757575803915515870642346496088475380706639376543254015467059412412289994410010467197938043101872854095473407277512811715020541166748840040790841163183102976804943307898872738951273377983825805482374075010002703016124371387767597578753885978930768679515835713129100313018249112676409671463142541752756066269380089752395254336395486440516247727887311963065664942243974900904820950200345340298403247464275329596786293016661584212162844941751803321407814638804202384044169098760899208183386301687640667505773270395617715740832344312650671640914552289695226994420498067304924250636994767681707490383038224093271152542713531200213916672715718836988908689792354100456826557143414445487311409285322801271712550796540300678102300949179051185562600389388053666894914567111217988044308752674406213833473128444674278621642347336855482808924220739034567147262351416016287895251536729110108768999239137892927006630414221200957651612574307026594163117077937492680851804255400749362325224254609150986651353817640568155537215851025525645097494007846999561474166435659531213482425342972777599957849613081643181372767632188341739453071542780442419621258626285742868796036594981697710645035448398723163994262472310566354539179895759655668448149322369618341699086975498476006514904938535583559887746287855688304248645860538548415432733488985247674336298057081883798415025692943661364177733167219597461356518199557339943123375509249728816123074501540180047611436002999532334484237522189963786275762807036747870062424103473590762719992114704484253802979795663871876612839694807929657010256132491845944096754172714062916613663202838848313489172738550119981275128089738163870563851208769145816195642532871615206573411670007442703272605119817231590902747066447050343361854817158858326013284067729032213482960354311622893627530642319798205624186761231279106271676473631998879394225377654089584876282460914746150692272285753847869683956058620644616511304011186433166871184392921983934352766380070763213264665466567603937344606752069775337241174091119589925780291862781015081052514481953806535469719843734219557631892984376086696405718533821904121776195681551940664962992095938132268546436435879253391652209594033387510349967246562442278606604212288571154956986936821828638184558097855701489337174627041943091290679524634749195681795973127577191862736596216353464951923766211581438399301673475847057674177467785695485496296016850281570203972107656613001621923914802972724040185467367595687932275220048747185859569624329354178531586374082616073609471006757734839515620558338355988041460623694649074466601708805557456869447851889345082037765159661495669624548099000771799132926281730863142316344085666672954215980543523433560269825912368958953160303087369336834567976268227650177263388570819334948418100110921612892836444315094595294072155167904795307717109618416542986776749192962624564640015572832797416471516825337585088239923260263603640427314156543235404234990435853979957430269978286536280119030627297724215409062678753390997576063125678939417330860640957803214204033009146621583413837789281634905067238765255648427908876896507223250225079151389046296520479917946249252753464796528306311332651727794431787581284092410661363722902210866569397758223787470297310349968976530920423818985274898409539604502526226183177978376996529566315908037286810726310009177057257020553263011535699070959801229702361220747374469154578817705683552641265889783824104873455650899977783448237528567946386970330180188618982822653202467049148290468164541440446990239906246501975207872109928320973861816882595582298286883871065973096879750976804943807677363284885107672162858713253724846711660114229186310250937326918376101027135811749437321339508805205230176333547484207300836524485203363468680443580635889903727637032483131620985403466017287577931379932062938618890764792453530866252570240613995521542744214659537556045489066626307518945988627579834053127027807419582781650918356066291889542143718885045860282421897103511629468984196895354345723541477217497796612051969372499298365483038098051314287350970100317539923823251299664090360217203932888351097435787661587173967389630787704262664934407838361439158955286209424841483097548121902933258499166113822008938813406160924639792745535121031740532831466870007788623081862492521216918542301927211089664752128708587089516896930975177662955581624055301266070436627686972492391492718905440461632498764986308305143679632632155069615510106205599994481272214023278661904641200138879352719022883685830350595990419645706199473639787043245280714158084563781850932751662212264340031077848600210589911268178163547290731056547033714916991482726262525857687154422443297966822294809478609469228577061284809993902295593446677790841166696498822571010304898151165917763138324015594814400659857547550544081920772121433890380777311987506049027600787292361781773132128202495163672544212943903092776954677937420216320049035279458881037041976503763433288384694264832224354739679714218784517557875964974400902276553323239704048131052834131449395360405466526092704173330866739734215664535184827910671958071139352628636187850232379247674605139580527582176350424587875017329011863704170909694229560767489484419892801471776415510940887827590351277568312881008704963464082263352434398573183814124534010095713563498579754712808153000119486321207457221024906643014242490804353626109654541745738405026056196343731253968684783703181875445515391884989054064109524581183308087491116473952488742537718167012815272270639075978977188394174802122777145413450375864680494962119169570043272710510941195473487791168518632918148676924245734340871870127129937065552966951000015172014027049124070642827147042066671547456635912272390449448274293025756505179960045922226161999112619526899583081208497236863593263016469358501049604765376858071374694492729931086794781997729110225782651217611120653752870759698117639126056369885025444102465176040203017952100109402014622234149773941305234323038975976382223228298587464699108835522035500603333237207813856891656412142415706679494858019066706666369955794142799335954705311640161125403739223132942617642586374644882984915168511061241293154837589855261249933827084408625034877639280854892755710240893088369138504877414101112503969622053024574450261006039148193036430212411271733555220274183052838138570276426635733574213755533296088913327049441221741910335249753035321804226049421364091393302950946572473717567371699489480741618692404295060193590424660660736658209718178501283732009793809908498766064690871227141300628557904578191521217663785000759629713691412426490692628912438187292544939684683253379522303978799867935008605966173642274486032419009911520320802132569622284770972205608720600607679650116515408592917406277020941464093098784170562904334785378750320838857955436530248336414741342606984486651369728870066930635144558938907405229641102973193800271064875472217266879673708359454621393219155752083000746333626921335089083614639244635397424375073897747034664956538747895988669704782042653176903817734288323965623732389652910856525474739023775296066174710372388702496089491100983360081959591483240577817200250974942909469074492857143215876167659718888147204844715527519388448445704448229132462968013647731177403701079542425644823695797640640982084529210049164409392098217873753817666702897950439706137899994994577499942678585096549160654688944947319173670868494089182646122396958010281963583603091517531594117098833320285824434649496301756704274883414194316853086757319837551214066589418058860756991365517806504682118581535424703188802961065343334263818735389601335142012525995437887081229919126763688091997181003483455090605270440629194886791925090530961747726485537970831692125919491619805841690427718108795702167963359360659612129142508548017276237797233354644798798599599250246079112040182939628739303185223368691779042556629831721983883407193382093940173752292433496551786963948726847110562853649646308623028035536554866760749023286969978711232392677986955471964846535297785286838955842063467165225180715198340666910286721924275159157730089479771615079922378017879843457387310598296717274486621315646638059005228926608650490396452593598413743723653242508870432241588374101565041414007021332951742316228657633969491610337484426482034341279216310581009110868919109778311396222092920288106148295873285264577000301710098977794781454551420670673906452333383912281346424490662820398515381769962231126061195550129227687146309373900065838096463858065801757230926451716905278746251866876289271594238833808818528145482582601805293364204043124940715930142662084756584979875529619016811207277987867354905757079755533257506339893899181763763290716451980440512744239119761656615636770592272794121786492003474135000991176043957938482842162722013371342983854502765373332784518931441498252497560242094269901991022043786516687121117026988574353036939045039202159218020868701751717475081671808956781652903293153193127621552296931495941232088653275646844466978972045790084899724452150120716355931406403482939950271412875502228810204181017568570488995415526923092958652942028557257859643735773810643865876704441468198777935109457584362265173525996009513726825889624355181689594760952079778300771365371839391897132736331822116395842614855920799195329151235911367447590038613801161424793707073686657583516965949942992853549637992538220098041979702582751202640912789206033840840427713949700861764189712793944948682078470733824699082172654891730114568160615778869615867171343217026788271759559656702281528520641132332108477418696590771701702457483360148991190028453997681059071262176642781909967935533961125516671398841385860014518450440315124525290273994305151112585388179108342021793590250841042699912290578397027384561402687860777931352925946055812015380468630344373697623450976697255085793678837700499573001190383078047710177911845275501344530812366651464228088987391404408388854254710117705286044214509302023844950120173400829143567821313585070103927475459099040481584084341430515617608650984054131603174794347058464681373376006952187177847632772360828188209553517226514731776700055795045146813371144541799318795726072168683022886978901306258859704078148309256962966393777613059403099518349380177212815898271379306178414485407969620310650299309057832172842505349783238936509851398344942708501967385163049897538300204983830015318018061065298141565778266835040229092588334156471681950622700190056984493717708003478903487556221313567457990300705645993164641079551662511239737358800763473434638898503282698913030921834298893666849317201875151089534854476815923732101865705516781525144534288386523278712122666982467719012508455624615368929399872075663214728237677086833928031364917871658070390170502879078948649011676574444283411853538863713284231897475264354236321027379395298258840034313717581613718921262686551978940063393150141116466758827992140174968703442471457310074121821797546889452320758186681978573868229577849881263730722581017555076127427936127997513946285284171955748140137990495991420009188852894095461799042149593601029776543505052402169381981258603667049621911049539913083640006256548422362510798633444420367874794703379847657421090246342276627462887265061422169226412762597763727287930261913221733102945746420510471337955160594893533447193692801708226205263371522583732924449475872457880065542659703676738357040426667378481865498059030737751991168405602755951650863444263100566565684143466403575236748105157124112391178024547680873558693887556521833210276949298668576125650843450860773358213753105462286886650887938100252116034095262318800663847875226907017117929604887606346019627137983711429241088311512063951219745496821572688104336999525907609814272777052666623695168031117220080551045423149611573829199639201470587911240853005173254248664533968818327843614712023653582845363326806202392384241864455235698438105947635499174174841826987745398965702984203878560608781088385962002126009519030802618894703952520285511182572034927024589969780169214007359687536148029854206435348874377654935578342566827496638826112904462150698873324971761338515140072559578360158925827746692785331011413109083767079837338316201041545845152135068521273648081210646707053074340455180223184820500749906134448153071721463053180340271081272288004447818676361989803545369203254761636603256928422903677152029454826286940785588206326530129504023975393386767276511711207227774986881559658942779815743829360788604010823570244741007761929843730393533696061490009174237234755746423370888143619902392108289870130742057229617227224927714599367401800844221270457511482793431073104994248233685941215034272108057382889892058786268263921163936489467747016600178252196636072962697664961060588328956044296861863896163630842880442970170263884418149295586845060130162339168725592968220706585445874157336028924812849521990678580989783338826960523426832166693227679801434360488848937933682976858237837999523238226381763427818818090577852354520986255261911386364804526363216954208718410504475599163918611271628590623277879895625576282771315349618920153872673491301546384934018577388106655537195910750293383229584372619163925686003200884699170590969026315348500965390729646488381600143120229240154680529208833068625871952653194335798173777129290450688562458810830451706791714975305647197226123989127949502896288213029892249035150298023237441390066643658425675273644828215290970326269980959373844544932496340254899503336940914249182047323354674204828890304486281065575597762457474172697935117699648759372080349343848661754162889895094411219181603084873930149116298632212763211415001839994261402016041159636876947545781695266899683166273162039809645872583965687850222988826470075768497917708418866791017781774353115254229690529332160803655252150167529367298832973775731264703211475277511998357898355896808157281435172381073775287271095673935056663715398522225434130569546053579396934969729294069850191804033545928874663548558960369028074352326243909433454500465650222927910480871372656452244649192398119286956447625440301593810298502877365986278187421940705675614852170257627726748468509481627716664507222037035124996734991835972954209589187067445111432380567428663167077439470700484379791948510398022796206677663205831441787988856860328242035036076806864784965539576142527916142941120078653525561202017345560065747986080576871217425565621004878272963044308712399669484570465202692461260899877635238067007792286166250443325066885604169710506360708097674552810316902638043362441291333194132116793980491594326148281693595034411441583220372905858979665122320762499256673334070513820653489040035854964106053121955831362479368961790312547082657093384407038286857633274494298266908669952160104673609059453673078599227721241242329701926122281923725385740125429635704657141916201880357936783225329196230060500056857969131876111940867955822547721594787220438810845041338833691063535560086004546015425067106502838081022589299862681348380259830805481151748810020898544816060504500893241510078695456361373879265845662045236609635717638530456524696005123032321146169339089773079255229139417872474643783453814695267469400723302065810177938336070170528578218071260894207651365244122280594925138002550387733628196072489929587985086157830146625897532115088226041189644377529693774093334609220324027755721493685529644041050041915964696573303260136962053348576231324683525687305589243260935045978212964798512958594669739198304923379477508653540068257048117812403143443891854973721696977757988799990835242701139941390611596716804590875601641623806099423893650769228473993806873729758341088888965081065486121244069298466991933063533468455785094521235205351800162733329323146333131745710847057029404295029958972617521431328703845824922700536595301321929824385117212665736431655202844099438906746747321616321087301705304436996709802734697879687515446447734870317467000338562986757695961550352119739156007526624024596140231154387963708252420662743328889554385276504521244743826346562796055417285909553033021647037117111690704712798281244948901878710907515849338380696199976165488334249844821356823427959817458409289405927494195975327664814813383109559215343464735244193519128097880511068879435192057683154731617023321383578562929704929891049209553439437415440192990535659539707551463605244438643046260162853851206441859127616008050102026244996680618356808121702816137293016430996901470385601321891015070592673983829534296654722805383070515042663342433628134220543463392397492759935839613990025310767759175120472499742106318679251389737286932031509560456490648993091063691083042646739351583618851252566322371680193419189296607790939864373727722928459172290493838251193234692437532273171972469267669769899518771486814371134540859748946930938815328376508782016274827930776808635196292993072384172652215217219349923371007693093771582648821338995020915321599769855083651517733797538646485946079198435642126343997946406632199672235818516809880967390464877925652754319259440285692708534400399415766162734456630497901669356374792497118782779817459998860819262359494010779241245304665181311515977610842725560800179397064878710218585100989212438147277717559364471884984779505904427855347183061069748643110566465090328093609887406388496802361468551578904696933757601870124927655394756056483812366223555807082613378249083260509453804818231846086629603281390770372844718336835179114410876408490490419386237672010744076342428290693033665455618535309575098174964131408724917551243110483130874153522441747593139119427530021485704345865808450531598821038565191332336250294962257036038149251350491710949381743397950100805851901703673382351289838384950727253232255431412199076745886714254092254321336381444334026821285279654004031385177253924695267722747837195352592034686356328425627786306990385608814158711667154450535479872711302055008348035067691234847922034560923607040796396408256131862872861550023327878762432994615095032752009224164802063493078412129465475633067199793455044515197263867688189774599040299924913899994615175035417782819231110245718527231230632869687444645476336642433587953910986050645390539658969187827161014852404420689592932294824692976307060479709784058108193612973514271902120029187564606039397322772224126570871226962777785326097588231327066297807781209724643329835402689673037344833852646799615235184761754439891269467868711140121762169276457295119433304604787926000604406195489615616261363777067599906167193299284712836536398318609017814661023616341390314596350054491691818270022685415621722887376166446245494104128855586691638879931298865607617882309579428056484883230069833211063986802184934974476327235574877683718661614766990385554185575171101604970969900354153612694483178402566498421723152676755468387395915818185226257280543185656801494964295943620487147000454820710174996598802562964585487600945784747240176571429852337677597925325413744733135818352000452200115068321260303381179405648764019287719733790514466134120748053133394082920584157429621046518465495074752569515503570918352093862990738134450814561711248572846728608611848233032422946889936321226831215485047966021981903579442066980907872757399445477944108450627005737191622796676395990654694426137066783235441670935296019213155436857096017409488517129486189963372665151370077444566882331370361267694976241796053068162139690279231731700707650057932370217832359795276347919684818835389582639471731818487508523151407855986471880632117745332140760919162891777794783894474725475233373409755591786770228580087328032890686115919404109037580595738688680161553369138644429123773930540132031885150964912760564289562278190087926564685244293957015287666315202972067964182523311656286806862785041678817113593442629969483211885690804388585343083802162682084885634587112622469740806954472089220552186718324779615178823842931380681173337139611066807170579553414509537382397075475957428950719850517889847212915743953896992195285921097091552612644362139172717866879560542722396669614739391914252167216703304363339633294979193674609148522692526251457955794601161624299065684459361681280220483644371105699184780076913355706734649836337808826889995484381922491754404054474197465191197842723233311049353445514516156019299563993753921317149611501052911146121913932185226590104157894869994571200863761333241252868100919880110419274986525358176876494649323488499681338360582719034288105743541782426647774144481795162898992517248349347016963490932892922326374138142478626055402321784826669028550913551870354728266020895184271546048270187088838551660928878408866768882425644549358431436535503048897446864982715000381587354135817836065191968048167041496708585399992336797005569088645100829884797540691603416662542902100326841999823563142290351116928649464684395800525250718982458723331735036036399653710152961553669012071853468721679219839764756526457778120175812859898292745457553675787361705397418962152522338469774254717475472218677494507541345589074825290287208308695583365298949050190895024461700476582059644554236896274231582518555740717490785141043657785281226436973370182779368673904021186418526453364432610047434963198301229478572214472608558230513936255388121979444887085244802413043961479588117062890747715069618221672034523868182268594699948465439868298450215688688310945857215502627425413741758380100883132802064428199360960460182189281968375652850352221653724683044268293681324153475390299847116122486364871528510414418442746894531739256441576387282691634590201972622502455323872250059957801263705105409254579461087779889514584937695066940688784464732784171280724161543389079610993033533853698683452884772003974583822732653821679546679869976594160623079695947122619523872683896252278981280276104319510232047500486483762597563870732632955321082460967970057158472276633521137526703366593354000792467924851240981819546313499658737350849961805779763843894829949814264401191384568021664953315990214442599116956109912634457561164733258921171077844037272309345749001616483940914742957716445398870879461924472278536410392294453828261358843400724753377475992916138959356953222878676806400639140894997550624697155290076849207516862740726164315209950488532063180308378795537872651168727139389485258342550841370059416043318721072946350429908924691084399493764115743668690070295916069243990829566028145888713127726370563067584649240781443335333214902256160132320482456149699759271623558526007286624462402581610495735332423562367439815527782263605810003813913733686372097407629308222727064683053979683038152944049312634022417579712053068572517673553520634440539187488161680835319781379778666430670360112914068499874583081873326750855591149098703846210836690176181271248413109627119936736964228834833436212891498430687536937428539101494552726575699987046307889085730377494044955724229014211721326580432801199122967227385538172617443286789875888147607544733624701621224687890912694255267551139460700983165445849672507781120081956848526233167008973281651999427076674493449673352949269552428395534682269456071092734084658575719518482881677825634088020835947714441661932801675845689914488460426790709896947716939470445745380309890734316684547045265509768139769846440684987081786712204275764126634828306486559169210793488897959436824118955679703483081210095432413546972488148024241334943595396538984277751331493827002097353666049107956168299450217012178575401149677831207884580170005075248242865443005664089689737654882466931582162834902523542962411051458249808762849719932808296915201099684277816402386391033582050741017331404919849999604624139985472183468464221266307389228494864873942007553851431636078859647087821332827855085883930386921584611612670899507882094322989901304387715820116601462292162189317080876140411654108663838334603809848675150385312176005590548811659943296764513005947591673704014316649837171216202837680594981845183040139124893967689156773351253273787783665420386629328891655671955636504648076322878733032832203919179736591983899573096612857415640814374572787064860818829545170036751752516329052118325618819589764042133829542582767331359954688279728223706219435630995251724896617658957162677677254467566135549695325445127687457937538314285988923216916617213824890012953735126118122312523335873754851518186041642511729688815679268361313037756011175059211632190624266464844366017747916341512306201463008990225561968963298154417302284388147300055823012960146359541945570308691289272079462379782208163054744605505763410087399299026602246193854065530213789040988812472205089950041742471618007978103853254981336690477105985793046404826022959415664108790219421798606756299729558309408433326517510349272934357363997730469450559260634278643855919755017190056763833173478516296602025183123538759475227916123847609516039044642577817512318699474516906850505353032130758138582889998499754948216945983477308050042228063840633351968113342329928388676217877676616812876733874032831760271274630256536297311550958370967945594806617172645419138352255819405706063068811468816137719251317071645422895382788405343203425486339533681038326240520506576091352920385691755904266492062828751682533297198548547953267886492782908619094107354470453605043849855621869217657262214348351773777732751622627463326550545824010263366564285791638566346738622892593995299360338832429734692124140239651421779535712833512340169103738134751901908276109252047922388880897137538775501682813341286126291624257659422624417987342090039593989266127022195279280553364231883172018568383395382277508178374283262941640220749406710720231348601970081171570498318414348078843589414784799221974596349077918980022423230812790835771167028775241118618262151541108527575072721498404224959918855642427564854991988061569713517443716075543218897598476111671778501346818744161686284689949705188044968630023691993735621267844580110446211657122302389359354330620783132046833981460739404397415501919021476578695613322187635389457803438965494273678658342805172194633420123438546173877138981166280835116490482261371745973500521803029459902367799788309835539709473202002431862799869676805534725914972118911702588708368081626420541833633419617497428137838533328113069837139636524778214193598131604723018202951339147123424884013038244268534196290552850956095493108629148559010181708650342099441983205878093634889442049832671338566794287507079131438969665085660155752878423644877668363378772330332476207776405460039569850989599712739751892683574450581158540806342836447913875717772755990056157835218095784778718730704479278129926280454377000792981012367556517962042460638258956182114925418037684255655682367162401526219952442107415940559200872383860657585705464434402670710227603814454951377276191228021928827683423677533204949821302285307337406044989399904261733684645817668535509724321086929473457643780677517881513521898300244400880299531900255301433897617920875468218252904337242083243238522838835500672863914243435838014625583310666329204172978357396972739503431427997331523380021427202863281357518526062534952293255839366745378254637860728624905833727487757671428688333604301023709249540249515477893404855823970518555672743356466586820113722495920365118341022235144891884586566012921265489785649430435469746526978372693256682917958756472176859691976608809738534871478750774355925533193569766259218099630660900150737604910655748152807294638456977828539189792026225826718668342793361801250086107275809819086787535011012735965878045165741326336034058951843517276900376535315631679693347442683384986668425021679884911275592070326084754963501069463385064833970148635354387763351879144539094438098262329787760538730796896904106543225590962589488384096659756306762502951217009720403327169790587363434923025167798454057814301483682437999744901886319681282673307966487061962960234347499931356220784767407244624552756326147787769046402996816309443784576850075181921343000595048547716213632666524212718460371300556972279052990244358181197175725125641923423647186426011212353559299769751616621213423687100175681365245878746567765625021523207879152722643206545077518231146910626212295197532825970741958621832203936819637733625722555673029253217098996010573777573696571400124118649656127222261306316969126173493641828888711963664282258271151742391914894745668546438081307764280026293824850878933069217014900618662076259804766845581329216576862529796227194491929647882107157397690248403510472834826567736371915021878929716620026807121076674396737009067160540645987283458401050834450998938659812297216514086409149981208306218495748568795489227582599530873390185996061163859077468796457103670768597397051090947703973248401985105245724119026619253334144218113353675856568494651325796257808468780571757883672310177699937520618657061879384399986847612324725497025629132332179782980185653919097997921764843576242814720654614642948192233800716821838644548232753428071512925124422178133890831259699342635412882947634610441373157214511015656415091462427693013804326677899082532225657735555822234672161838132852316890239429624640689475108629966583245998052244955369108444857573767776536977986288265065589426935455028898687574764436621295045260882271120311187907109497652313626900927124927564378143377860024916071772967592748488703113145854720077306132341074248833946217125975776205252158808354539954240195125294722229131421051235604856059836362581835138169414770895822706608023414318232479133909365310595784178826690049409479867642614843842227520228222354568907522826518823064452820750525088541759767347355709924640383378402448486939586367387312749393932050210105272946776203848857545930119302755586525345202343661454248607992804605951967602499751628595740146606211126491743361240278932738325645189507430429895055840041989084804904642540156310753050444714840560021192275324434758483408365388247175100384030778636364929526424153635000777501581397838418797944721059580103888424015919984648472689511283211929839639375940270889742788879010784279621196984644445449597634417913881193566670920096796954244411854554754467864336916851189987546905652401830969967540980852430439247862609261435938127288610740574797346292858242454849770548271623869057741359282306454886274034616289391946266873429987411354641953670598011753222143746994586042900246889667024010809525626672488527788402295366147367026267625247669234088301602907994330694150913539049502109480189951532096767244210473539747289485438986481436814359959990038266310867166939401129763265768421990651733112482330944653409392245442227299945187703092287948779951586385738349725162088772086000808555045019592784216802721569852988675357843418815372474437586934951534019482953878405626568425447671251451606245678121768251672137375166053474160034832362829563561585277879398175339369885982490745951120004228972764274660804160521378369604273910315523908815935263476219564035536206979358429587346160930656320891474457078592370178748990725999144886324318786273147184291814700114362000627366699957724642430726503613256470676683631063218393159450770498054038034099624256220785653497578078576553699464456679723111663228497102772647406495331373189202804502552156038500301273041916691945437185288284150939413103874655324797173036325320017495621238509694258752672185979206486374298642009116903867585446693503741369117720719290381924141488357456826746345493892440807875678877541284505429113292627290253355733109960056757059950600169882423046665055035412983605084320779642367586776214464703528227344565582109494722196437681151953585610240675632889592944331701057100158662364063463837649089678056711091530798453822655438238170383511089915956096631625881438153965533493516142328175665878631693405407208390681780563845211152085931418890114923822734252185440357309338342082561047683086366784349549676696839149677569737382277474759949537764771459408714705809871017746545956886709460034101190812187369467592038696836670754258373197740259515731318588251322110343521638009059601992918430960213186829545867102676042287332016258737165568121638197990847401760742216694894002124164183267708163643143406238763853247401384447584989794673832961965051644056957596504295869497528033709954656950385716363284159404944751473227346581663409660785106989943150852579394103578505997678159182754961045575038919646982599787441586166744909908757795616021964117614908754222412070918550162166752190118390113612286669748354865548269641565384680000771529780606380109077979237285165587229007587822832309562533570452406162719954132556008760491531838660239769602864746801226789887418250302970402957693709634561829816893374946260740083525156025222332195715490083462924024988349078456978384429843698204984608435586886841584489443166596514813911169961136764547929071725780151607572368881470299834306437154365640823541002620084567781061695227845539232433447429311524953147635621630706359862342949017537029259014361752094319150497665056963556402152722941304410542505968076460118053685474810661640186660388472173852343444883931843693126424956932112702905154073839433970691133855838596475849951025590664854917896618854992192093101802879842743910380669677284798646166279876517349815906275501079824899179619127637719882081721951267378065186615889244934871230948663936214329041364142449084029574434423605210601340325967543922424220977675076063675519997721391212401464828686097654851600064065173103342864408878708505335116829957032391990556827523981130837047394548010743100941106663570048463802442947321337818194808744855519150740098157869175219277003903717969294455847384826093284568682375463663895910293304993175938811673341792234237096550824907106662484182217840287958499865079684139902395940442395111244392883817211524551553533156736727800617471414507469092938972549877799348756947282141712611715616323119237666580035682056486308727738803964359763666009523716314959447145243928559860779117679261350052444660198283834490677154092507996236979967446179468586691190427747769868612459411021829984930900347107584554292407633869599728928868510765059884898285593543594105767127009829909255596000519057297915307884770719653595912510171981514315404995272142304776491823663859075213483466107365054773840475898419993887466852077562420734923903278007742896787015845215107798448562882451920748453716094537428838510248817002938856472929679763335669709602140521120499108608589082509192785255438776488442662944565606215499494899319606001148931818916722182159340226902185495783853755075584389374484128683440202145940359675543407039802005328536875964931899738571043140646940193606694395092039696935175551042708397737455836217600654552586880353370574482341132622753997855086308966869013554562681138063289162178636373422620150621759873568578228646352675227247862665487707979765842447282729075683040802039012354519353057117757619461642033149074028202329271350565404278192504414383040223942525206920494900886217560957492679164178087910211043685171647043342835718142808107905778465787288907883281458311065395094916912685436380269886210608674727532878386229245858023321147145235713755318023869251520510038709858209546975056768531650549671325489845512796578375990331206581417434061580383278087664272031429976488668583678657383611789403688487635757590275589970820811877568883184069549826178928538881190783244839575592114067677215902590674202871124848428541150095651689090538804508644308020804183598360405307303002401127270980165787059123471599973093707824684282858945370229046074886795087321061022856907786555161335227075920791242148547067645628795537747295657534274195918765673118761965658634188370820419315449844489790348358681692838764488325270441259484567295759705471570895468811781366602137363416095681364481348740632395469146698817393860194360099320299886509628914102816488447596837289836270551332611722083394549077722987004325522497310316573368881201327905068568659745982689669012016634303376944397720014479122690860896994073691722777775261368909252220308773404740374649844490508091073452985185557988038787291576498476415582760211496064475921028963040008720707561550735093044995087209507234420054576243324739191487040543999208081438861519757205447759652246607789255219990276573541096389485285520453934963283046839836956458208866042896113232835263087461484143047380252669377821230076123442048853922867435658997964644322017539620438024963641431885384401001517297196634024138554541821215069678607309379121176739896133308241421595592766086815937194762058478969145369973727241535208105569973053667739460797003390340368629622191040694717997958521905696102398363541593492777134304878144598706518023079325821231136797790517617942351785651830008483555926438832587057516558331781817972831687363802436868789078288742178628686849595756740780608872426719085881952428972139089388043616073125427453644652862321201472146893104598602057994377566887235366545414473128309618798760975351943015041826396208440230247163286041522740466935147680410784848067005599844525662267988206513616079742500553269220274351268796539616980858173087165815199437996647048834418301137425556084483630445132267519795438997973905327963104900749190839321980047953470533873827957057391990737594646135811427274608383306559199889196574246506016863178413903793122389499369661635370326590130777345476555638664436004438706679656935010489022529795992638346582386265235249930173137896736270231626968756975819420404870485443315549990525012001833349086645594793143889943466293529991495932709655357587413493928450921916390754711851519941763717821752605923984731846260170561855015397755883884508287070725886149656386849843359676912455055720161391667304967196327821268600946136889540086307244809056014453078250507698698029737403356124506667725852051208686949089707395738629424076873528295174528351342519349379910114867445797666757052717042391135805941876774804266041124700979115968042648291223951142634079920069261444412073145086606643378684150144773952820343994773133145808617883166412141102665755011650597666349500754417658229616610175128469474503970322450865266283151747725498111616958243791390206256120213841681578767800483784608685389122930363543021888494379318808259124192273333936347502002697633111357188736638280296720457498632123655946895091978453459175351965267426501358706282403280244354464076451550683453995894002681465881126855537103570425106908240069522496736580590835120873228846852580625271487437321217255552845973752433045914138935944210695226387035635498853456619523710644799644309199225749259908246487973886097740502411826947019426254744009090470978183833281831443229876399736960850446193511876334504021353604893459632119880227150599818727201392766491932775908287124512508626218967541573093778900251904104337607879152617563209513685545953840135657761094433581938075128096101934208478832470758350361184386685351254640243088501808833168693596345213064994173018740667814686769177543137091951353552256347827192487358950907710487780730007495799476495368153997170041102824027549299098230680347853761624273668457447943829372546622152912822918541820485345823429828408005910855643245035176968816133271081014057962861510107142912529366337037541575535570251924893531933285412235480757903493394198397841407877682109576249774301263143653986238094566635696648576383302132818077570772892746581929845627820133339021157488789472001726257595600102955516534235698190035773715647662801206302826114223459593638530315760814561368916085388241242170957332969247581871970069028437978260920147997189247808643345643876499915035838770743249198573204344914675196271557886956519061021214172241827185356955411668401432582304852304841100018435146976807978422231058897310562375142126939641531135947811108483499437816168843179541306211327818810314348174513051446582749388306474760041243432880955700613267337278115232710262596871613756790284429738268492867104943954959125669474698744422871129037891107507906214458912431417475082409456327891511108166524506004421250257557066918981520605189568100406049284259464238646145776365647879191628282144903713876612160758471574364500443571735286776186841571755262759466142688265530805174667076599507613236047537746613994950390543400828862421932957794317839794754515432958226431368717397088894525185449462293670795895487638975165459562391775061540348899871906293587916741365386262750461859423381148166882063064801809750513706979000527056539901118591874005422517897977896213239008198535095113176973098900083925501007519786525679883468863028745060548263463236984156157961964704313232404651114043587103256706085876959161053575185551414063920324985223581530810482103070321277519946368758763850624628756048423974004471725260734757356179670172542634873434954416826379321703964153633306703021867797423691953200582000230334651973553297639056914276854274206447132336164494278553353011646236887321965254460655687404283751183260208108618454945366329297771317371973268036555179827590061133281275108168846528581695385449159526149285009584423138874667308242826021751800344626932282869352915723263556020844039506887911407972026090850307076721709915098951752147917518328176845936134391192096768040085466850090727564701225368130565066154071352883060154636683022850122310700147564427964147558372025350239490269866354966982069673764149212013742419050892270951012121563515357738520127835978754109706175362726048659703899786470240206894718671564903673551756458851476228807263020677760326741214007432318442114302761528694145448243239531803145664748983607224395121764214339992479950109476369486119411038010760891748221811957333418242439549865164113098285215194676440408306818951439961489740309752961958091307741348547799268585550711126793604663326166112868279746643920406393481982303580493082409966161516274670067467382125756924157855609048884513045814756687992667916497804580157427335119695221740298016631239490573145771803069446012185356867332872974313102043982139129733030047308841796982973517151837387605385794742683544409161482446707468029335047842594571799679639446308627120547418245124930847483115717341306765904219771949050120186881712997226718791506272044436105859562972135146073438045686855857851029706262409693922663821937883348825321457170130919920496144538935063695636703609732284723772861152860006038786361059229252337977212099997229268459558808159804611275330319177895960172661945668887282448280999469386742375545564330755774764113340788445555474757086951382426714302244107582591680830647160509056082140538566554002061967009542155066409876265955320534006641072066801031227183986584767839728991054631126544285411749585494128006873075785763722652444771500336126791198019689980119250814757241599649680624992678896873908787725897514236783904890516016045130169000572012848709205801635350462715218297755293066090568347905476774471800500229428977202557333376488185184394392039326370089826985052804665648496329685264086765760911172891013071083256744562705177666986224854346873347657187707005811908543687493607551709784543470026286180394212771978647431879869265637563184696860935367183937962522670374286123033516884056545987286588658260197797142459132194335971626319109284926028658173439109140446391169480364115694414105604683515594161294789560726556957584976671244340845276410227312102997324503366669759342217581869513915680669189250561771670247741908363059538323341894666257114243295268042201328094514656207443439781292627542992076947574590809528791822549196419968614323418020458390000448802610110219592442205681383035888484354748821876215637915120487812334591899381811200996358933689851865589275937098232245197274581194721926250231185235170953115150215975499203738966732837732456952249782348851928725197766126151712175694895203911363142952825698110169486408679859423126937774842614278224840203281655866540964125601611333814448684861208314373283715158625343352932652372712823044047797319411701402432510685519311423009578041794323470657105303601343445118103646601238350763771115218368348484908169937148574328972181535431725963132010553184736242647500202042005590855931803487722423472598764901085962352124287177785121150535573974923220417926678726288091263008719530705608753702522001383975094719097192876465553526631826617199395683432910345039424248096539628068720119910373617709012387246779892426478829736512457012127681046837348312119895769134527543785277528872127974110426333671812251773502636935993976085572098776739210668957343003210052362073794793652639493124463419145955934872482814656074514041219813355455291344759251524328369348388367024565340246862010001552302760656386844263165202186077178543692156502685666593129330681520294861281723141818962991279489364684822561942691581541578670481585499162043972952895053947201350962946578513477161535057565898347872898489155680179238804197302063639196557315808610899699673936488917665920778041508305017296239107131441100202868016670823933893514072963252380344377119941769465068242976859021215350783273899400468370135719855025104543398477396349197937901610475628052394462569121448506098678369092551498798392544490379614508966202028586897141698297410839185929303179692632885980616816465093722756236315489642988599757962166780425637482601034508568958949155142515778824611294416591042822216970231429143108443993171323741516904455862536240253238071133041759637995462842550208595421697541234740969756749453184169981261939379267092352015777011371056346700920825038558611222789688503696134264501428082092977600066222421638320264111894479683621115357401332045295551760513236084593930828971289646191179106805152797129828463443667053734032682083802328017600308587862120405696399610185025762469104025202731890507352876570232135477708036764616647350827405647908174903843611002262316761555089460465966826348943350020754191286465914053845941352522168120216942964042498195805805974962729882862590112586939750704325128658759958758272111628896202641198825790981300351911922827719767046163965352101238398219484587314353458400579611803437025649787724926873637880700254006480617858266167378194999421148578538202888464812753013813901712873383351381656180232114054740089842924050610274864893305311820953645252175975798791107740647062499204737387405735082223854313758845999126923462645620384283576075905413502078864944061628161177628094058835321951311070587317055448967915911550681614761618853708134112248667556342228314115172524552149758468291367864082355118562347700349466926614503562700600872360379264186598754214075460855836862041013916503218530653782398850688851616404660239456584686681672215607904418180164628572326777721456350461223683450243545129547376340506873921404414177032828704946591189067110142059569164125897156447364857054683206161218460468932664071243849947372378385296023723761652590965984510221242362729746509895366866173240923656653146962102274944021047678892964574299066402888258903015813203796793753452129630635263025790865924622404588313511884855764786106260375350837233578625519657799681517173290598462373792647824975327482474746203055749703501961415831290376176109586648373865594100947815934934000953898139847303579872190205296834209621093586333754587223680177030940619012407680272710980146746098410061841286964051975123634827326933620136265784959369631175483974683200160595254553813113055636172740993401835392114772125264994881341986414404518037349022114333598140977432155070524592554305247098536194554106425364369836868758095181712072591582978802157870697817393267185119986028820055519654168997403847113042533737202569413030222152846304653558848376248198208548264061897306961531760915583972166021317112447242928722489417764143937610959828479200057610752443630983294979025730951821910323928598119525458563798668993593657129109143531320700472920143881435250934566070445238199225003422759184215832124512900187251257672325179737656158672926231482103643429668406623221377603546168989983954532463314243911044287880967733892087552329259611939241530450141164816734870292290032721414498800757411083968423476578534377017108663443773281216806305371109093568891644675500777165343087563816062627065310307293333427210453132837423070495149590228140114523470093847335485117502308727173821845663797243723099016898623071848411011083750983765657499747416345187996502322630799495117215291374686285565086566766613044591760133877756613863737708512761629362462373497123227944744921095157231995277927195764347709011309610062419941264485146188946826843012904261596961366751639803420682122926422731289070371252300666185869680813347136457457295623443910108919125519292485137273448571888424310210716134560746400803014761045121384631578868794517371107977931112375073783710008411912058786034318419502472139943291261316607262872653322565914340071310591393214572881970776073641968974888015044811632631477233647461049954750234158434593519627571916057763215105713191204239591253240267027449135925322135647090520456015050484921707746540562645641633480035815262888570786704130130040654868924781976491305990808603417728083906693298848533824558645271224671858164021968270998930480851087321572170489820138149352416931396726756814483097425509568543437063933622837274362622351915071417746171354764626841217832333722595608549403222347725496033740002903024248834686955854319965613424572942425698977339685182897648960163344877850795612543533077192184975289898401392042316624127626641471571347938265863070443437936993303168729943636035610240059437392529360988450591893242709316799723802364295909321711456406122891637978081955874615400689691264698997029220920156363968194080775673484856105320987247012437896023050702424771356747252424700664636895481171726956518735741134763456231144073545046031327579705880990571803692382480067572870704034555545856776032862842436441128379857868482198893135992098485710161985068264308133549901254291548331093513406774971754624728942786325768279252738058116150978666257842809678351147197062631402761758551801473381787064380011641003396031258842144799894025246975031435793785745501323337680219730748534793124489981114297774364405285385934308766890760685754720027930085412066214060507667453537999251279882221479490732360742386635071165641464625585094007635886398540180770711335117231607033537560917994499563841929408394813772381826849256444576877052854230361096139873925942305115732011395433787420279895784936145722252254703659240169531662537642833387248553859801953273802886864099347330249382358041025115130173734223910763606086865615490979501941249232827652588699757971639693429404143360353246256188454932745599078974921252866076692133927319890852960963703456682152964111446566605417972200011366949185472488236549166662922360632847320721563283906483345495474820550866928673032737493358174716173452434239186014872119259185214932408936472599053384995192492191318790835010506740731510243900136983811225941142681381688441447899809335327886819049525253136012269328429393550886253262974479425263825720498297266738278775249743475361262661758009310906471112137392676464436109980950073044186708184976354003336184983179581535506132094684740678794698853535281957032743264649614120104093507546236223279201790343712726453353113028614033979608692561380567355692878094290329172872867264505275583470078602618725721390967429840542399148012739785837497736990836638600219844344961580775761495087293797619200842649681204968260583407336346076775516619177412676859613294041180198931738487749580937586458523846933048205595900321272091992977758544325271080951223814740189773692522769217990028124111664158454335376432124998996908088758939875642150410980634275082302629818510758894478114320628755762679725358423916354653002787893587945622096510834329053400305023257379024871713192130924558361468623637115207191648428796410176541581379489786633317861180578016581103527476777658975147335270963699157738516443915924911146839049138070033678811613140317855410975519575404371756749470614815982272992447410744827256434036108696955582095504567935100684014735827063408193083643325111731063664797004937864635580508229788612544973960103762055889799741859447469610406480218522255523731225338014030156956518857898607754198966398520870383611757249193140173997979418648274466414233300969692613093596695960856197739173292229042828742454377034489389101492116685384183696111169061651201796609769696088190955402159949384522693597905266339576683462825647345920474656299194565419936571339981278008760081425983465830162177507382544646325815992006377663521268553616424291712680972229806880845520331182298001897788685440959518516364578006790555550523832554606865081901220139604555182957739567471578586189497407941214928531722730578191201493237654537998698977366412122058907396888791571995278112318065564435976908073214750591968419110089500379489615247152553857412054571810938791821131475542819319118768059228186544137095974546322305249056374659088527674587688591058527777011648440803169604491172907709460996269291963564725360906018130781692386386493479854099578161209218144700331226609455684414519554541447895384525631605110884680692451562603924610827937724872059153051165669922840534764739539625483982868610816463334570074734042048500086339855784038269635043670569307098513841966824736822335634958955675774567344636482623553657514348794053080307821246059949258697204317259053873530980648122910869155238633265747629660802071941669491462022097363821711990038367275243024262088771659869864240134681547547856827796493089780037256217738476039342123649438804213261813524056525107716543107500464565720788681907234890701667873907462481853422718853250983230163453698967076519933863445636421378563699904170920467469723679325310569181812665955185655244084134074820213717783788639026052888447098342495883845787947637426657548877452668709832723964931250778221342276372545598844069118009879968936501731113726287667307025279540717594218147553450085963003526707384345848936294932265438828991761921169591140080257993813723885557596950328037031039927705040785895980344287887174492201646390432898224432553193429147883088784649789406806535379802245271483809443546161659183090540763578069359287475235479217206043065866411782380759675191278310968479193868673142028117649361228779580370258360337122247500076408865377366306986662103989060523697806264567125131240744737161842384455116222291718197065334445323154250081195791475429044430162882254282669720574496175073142961826355673272693629767974641569686210884019800717856770391694581865347793504419617685745484305365394891638537770408199552429008460035108146749255664728750218271176790051430030278906379402913975497343497190273025315917207365747569113677485571058049275738561810783205378096642402099649546032948637545769803063100203657256229186397816593681710324552669337425508288876897774977517789155633211138836809782186316956361642091251283295234600212105241901266377332179085783465536481164311427076707660585674914308284858884390203744657206797965779075766364507176254590111524384144692086638097785309593872529482883132172070434887434835774755486269147239070155137769685005136625546211522032661831303798929823752135236113632022943331211773828278607450431562320358972456700254778627400450360425908804972818703370875714948289994628160612593529378776024341528307424361559535082959872498507906661041714342335405371620133326087774065699808313298940921439974668629190492135604178380507204672240122714534597922945341840485907770162192020810618840792722629918643413765064118528288748334430182746946407655318412563763896584377025011897509222212217668263968695078657825628967834107373621910112592285032049239289023719695509979756707166061922274641105388167369080693864186657153594584613781772901757672358242979217869148101524771729144220749389495071708449133328036636619608997967013724460349971505635602485449583751507835593357914284447480521485778166059780502976227596423669774399097477801694208860056200737843504074234924970382645840814167995961666548778388055452204591790583809750052989346973023561952387768221175234046399252013450618913064291803456656537580483054440527329441044514474329165131067481963535674703046212758053240225229081875315149628780910887343070647106508701915965242844611833679983359163803274199310110483325092561234895160893602997704771915900294574221467229985794131973956311932971763999041052202257773328470673400691061859217426326573000260810854441219644811798995036885528331404997792533190884935123109060500600319474245998724460024733883555185173610934514046999290696383095346947295203525376089285163538311458634714427147135816730398736461247169468348000841428757790489118067154322147141243793331495985346485873022134019594214745807385947986751186490348221440490637564819628368535617186592573630492422581497914960376182939863148879650921883794919387618563608643382981885756127674997689677878451329690134179205630813899200193308347385631034526285308958993366212625579642225765693157426756288837429186388318103980098518386229797024371921434181102418959101399018979435516344240951570350357780524363736097375386450926099359114820155731229131665041404850383583672995809531285246924215471948324736601056461985083892176992288605864081097276397257120756400632443057048232352657526461252070274265244403870725058224614095092917492366368882986501891370260511687881518022958891637849545449538795626481173714992622380102314922824541476875420218519094432166074957791833303384536373995876835351971217229724266872616254050520875165488798965567938605313883342152351838032209716297450727225563902396880031263629330193329137073278715647216053019370082785582665170101933322068115663703153994037718016334835032513906851488093493097839397792528739258545332209179202067087670648750390899626576034544910305133669147559607165539319840498262087185777735058978955821617286524699836137520456569898791537181019278205996848591291304315989258127990850034258605236225058673170251406293483935033198573840650677429151286466625389400602326865800586092273064080954580386063584070253494129550477737312602081934025040726716236876236156889921331402950357574109824657545534659645412340475505965896737181329064007133266857848213215677745684171831287199591334118830224768621853977970331346714184440667684883980119891935685701232445458936762861805031230407786412347468650990812449539047906122828229635033878061797201337182494795455586412662046556393355295411723275557994139710930427248971483128492684584745523119171150936233965900878076362372728814047693323157859457004258104259747456990574238741131389850916098138371259235086489708342089713775648228150197912990834802925630088875686256261492156991013526745770165375753481502298481165186931469160046888747302065147274747258049380758629930123382747806348449825490385164760507601738559415677417565943508034910490544956994528844194464481806280995572012655644012608360598098442826297277250799290737177105451973166110525519501446599026506597590304597292743128220340256570567008741096766469294078020091678821912159065543106717996862118386757945816455895757621165799646217008656559198868117198849569805103271527242417783661473405399367927793486088771784686346457352650309182775286739100577497371455214426382890001442455683935555422001974244843318690619108473214662436222281646940610020420754497494267571843176192033025446598951293612532097904396215836424029045377699917939552036720330680882184131818035983189300756295953054817161875154941359058945711112609942064673487673635192284694544225285261326909578123985583875003582829162115179662299178349562863424753826492815493398044770874386221856040136340286519454091534957688246289758631091223187617301958373184497943536450109316348281369992611824913393916300998212561298042103103380456342111815657171574195493847914576830036888089772383266323036093417449235553439646384624978916269199342223205253305072656644177312650612035620209283873812534856453367395692007182303153232870419420768338144719738399326754549293640507738469605495933744796012714406058878533593372688997074052164667625694257369171536232515350365924998915320174792294974009324732563072676783489998424669082300628322278746893071673016660083083999343219572665133040935217259297172485996114940060998403906568602759051944086841890150610467301186896673624564829770527923427239821018713323606789901527196846101945356104564332931205514420601277917792629878479968363253448530252915933788117318337308533850168310446091096717634356150925514715784671661178293794562303566905345351269963123499965755490909951895012137266484259912051321054065325249984257230742055561517594965352483145481474113533566176625394465158867114387614784210784555713382451643666324585092866569054800235445025535357979171695370329531216883377730774965516485994689053275896947421772936471336313497311668775754939455454913473148526507486007165540505781150576098826428915510460603076617269664239768976186540152000030053020249775363983964126485639449250228292904278679349564839399910503404259154445690941083925618930356142959755748125953993076438776250669718608011541398523312344155977760939209647412585326951457343382423877595378723310729067872878227399119198927399986447822494742630767255632630688915826423037431005181732161813068835521493564525701955469482124365798059775325542286435443703685593709154828628443565165344965318973510073467793549834746432479421554052298578991354732580685710231944075768125488125842995479267729133314923573687673580167980594669301861503078174591531736206884265425106018159674502144301513918384668741679281200050842319477438812036760960037633143466060489434229540833184824352931127693228994461939976770017972252482569324760021348933045249348557854431561268111910898160109385991169210474202586269748022350991405843006216725214811874787290313383217028723355115141650295339192012926044675275167804040353319627407074530134481673724898394006528795704493366591494700348917701794322696721648607318610513586493192504198866973601534894864748196305864870514747480340617477044373330494752854547843074121976061033320954069266876138252714833200590869037948454651870222506200399441595717768613195164602758598965882265657384930988371296961875746921586972705031584400601206207231939440052393789505151963591060927380633869176988748119496769648032489899723773406119422156671768344572085210571194831367474816469671964985329338797529823784266884870731269378318587586340257997822333984218595185786296404014553559046402746516559744613105761363618092685443898666325941654311422936434440931431324160066697185978354270350668215356169993497954000586744905908559992757068106256593320475252499258027843121769157502114506152807708482965872225426189814474535302058917638833363966233454475820180239009747005216266877028083909251733513331382993402059542473229501679288767967998661551711014515815121374491960280131259237975953686514360242103387402286201216531773501523420052667387572954973487115588533997144962342305804615705573744340727723336327011024806338053000441981088057101979940290991786626062043366147900910326499345671416631995237007493425379513050575141432560755938203350359135903603991876838761924490679763361041656947165976104855315469774515802323504739689486298928095644444684059659209761711386963680449837711929228512611644582486726262824149262411339625779754513978094884669657057959276748380462972123808755463940495017480080876085032764423678065454339373254373208816110824738465526072509982411912944812941570649580125403549873647572877162256373766386278395997422291524384126237555579922193193116821996488639263035414358252713302202709815587457558538725692593067305614258594311177588505322446069577198408064462444721223636303711644455882544531548179693009030028472962274519937677174690090860476382432701526737205116317269564137978461632485890724500982824866996747865420987882629969325536922254990204213947905975322855347805134948209313475830193561421025551692597868822349919114205582562900007272547987865527551145576984074940801348738730391763923634132815548312759639878739985937305101131064057885855068566843559077101496566176675708636449397839344463455293799967010037371442026731437961670386494408067878319826332659937846200068150818694177084110993091286891758238214864990913096127595693498893596752640389677317410794953272916538641054219848437370372648879825507450370443338491438041661288905416626289241678796792823050398644087528975271885157923129930137292235291162161892281373571224989095493522389646915752263372215234283491461364359768477252234762924746257764205762037132856722665703474590286108922852438795186906554000423090159372625816377445014300109819130770566502488465164620511737639853093004629536515086355393818033816526576935983597336232804097248986225808588918969987970895106414362361111439106805631680919547376747838648896280994602672881264324078135056650722615028646080820724776365281951857771524207155327643013756444581255876968131443003998562964755379985192856149957554354261062412022405177976233862681124140136615718852220885484699463266499399305458159152289008934763988970398276816610937687359654499826730861990152146398815917212920099342227947864755511929952050941455100162918065213051070594585573369994695120561708259625897968161073984762167428586730215230616218622524853253185805324292713732831104884291535643432848857925061159622056796981247596132904268546111343117035185878110948956468883762893610478525584110050800033346101694207599642011017040842942759799409507471657002738204670313016245641228367616796465929684323316257781530677673461428291439691662711630937017377426736514814098207403165735804569572999958871149772544142607469618730248131125406554892829859082517293669720896426534250474805016455313284014191948806098713423550337953072186440222243429493047253334378270804422904088615417389846704249570434701596534364276259055647715633741683290260424768930093146693719240763348722116335220687735576345384019384432627449410522214398647414168437039850788947470544057185035316956744945995857146482233362607815942562989803416011441005180245787200110121344405358171909475652976058370509734836169254614795174817494196146978865826614770146176880054201274768221713471936851844637040272616537217867374301676661750224611811581001836736314308969904297005457662905587531900234007624711913442713270479245703540673412305002564856274685147150388605821333106399856534332900455870843108354292827988603626679692487336603781375468063193383811608302343255982302542545936994002624145135804669847902408089765856816147839256716964444792235365253743826046423118709635021285739105986189672342603670954337465961223203149788357292566014327492939834588420572835271666234873139372340815051466621903742890961157615886690125794479247626463172344273699200508729040987880980237848883649126969222843371105050264038001839279846933380530836503911294972519087754844483839119254723532951199349151533657597315373842888212144552182472092009433015211234537542935841021156701918331907133299750951390434461870182693674087129698930229740469591532144770979182644635480840548656410533115288982978318972282775187477038064900604644157004132443183633262659886929049830830305656340268156050447687666657760354364825703757041118364662738361321348345531715132334762883786268353647456185948287445343725849513511499439351532215012564062024832587715520500572732126583887929961839746833308965159574908256548675028780203600336204567768920129784021712949818602445111276509217408197615530419169030090319350864190578958662480706748451608142114974157910384869288743083217670035736480175516809857163801633013545939933370105373960143713860223114053853994129032945337119414490949086507683452206590381177516985741767610036190939265013518594261008110354020302508945255477041402119259317534738908074100299307596114335819517206688150226395744205332643735501341900587883534803149005303622229157944047580106866687755418140015047012274834023688265111069498086180461262223792671006038758243434378823557082057746806916556764170041048806351991638410839577779005634670205680074372111124440514493169975086013553771723746370615689777976848251165742955657140668870061818893669385580070281819460157539501572865754698268016137659410949347401864004252759608720545777373678959730497332584712243480315995030323934608353910730805421509470863880388768198883195606720362760457196488159362279888260680724716243617482976480384365211723510990931019157868195142604717325922056829443636992299809511526637615639369761517814193552099743444666265737938180935397418665011340316926335434786966978769927408588652571996266323071206003722256702645267711112437595907794654086077353826285693940401050523025229087322753200796900893304541327434286143668498448209449333197416536618723730436634485435881811110075620030854766825254095610835661963371766845572811103077491485248178696411202989454060386503662697355685956207476723663870411611356768458087972895558421609167154518326180569879802445986267217920317781391778100719158670452663284774916869435761732022030915691570172259046156811726603764895664726435389752208786166803417876533632309713835939434080290505810941460372472358103903111070471136861104222699655468153709613309744575748280007133973171253505207439309220546294104435218646423200504193858317723173977617643153212031152570406630626317444988086364013152176216778403632004515317396871771253131091850130120085654879342342057551205624133247740573926301363540925790814997723328957231973107975787971693740172074623976547930974671897881087255741679212548238984408545275231394058133392046544640654481149655880783475287856582612098456570368435115825987659916527833372006866213228184511347993869719218716937711846164347814630008408842846885306685967559981235694253735338569970006557680442732788408927918445346533705415592545146450333999548187281560021961207745579056546040202696204727172893461645443769176979476378677646671028845426537594640581212080367877507066119970682752254486219842891596568058736336879101109840875604106187034603243218555167925544460028079137610191077338009729824670461580435497372081005513751316318418026255294705748233330254484609352841642525430447820366903326646525396777513895797836284499539205680026800759058904578788668109014292195479867766911804574078762709316144520984322578654983203852883457913890608654477253431210094103967908706822680728943527351051435910375990029591670797065998175525295423507672112292052811422705719808833412214157081205676143088226550311063456898861716442954247458394250710371977886607437823898842122566384888582558037378457970210434617375514590492386898991715872859938232998621862863052381466485548888620947659081897738806700756749446794169866180128085247338132421247891916926312223401388145022139679183223450841299050690348306669149239895752740185059559012141169527345112369909143066479096581372330364287291510826552208724700440277549999143987998299368797427681216408030877304243826894266460032959922774093891816366934682075223205059368045711413429072571444253584556164704286024676201342129451425361763455166587077593143819331397174763949971068903212591866150122439951965843435685601061040680283934450154434778202497282174689255356674618539225396031297050990714187437737946904559509106380611251409439456360453277172841941177645887296478034930071275341345713576382315982285995574349847183806927357834327029716409973552154042131407756957568519578663336255859514800483527125014004362260659958344392649246980435948837813804525632695430633595444183744102138677893052683977212158204339130766106055729649057148198648247422029544745305282565215929519126566152815977838724760588628559563472221558430314491323905135974294330495170774407230397041079105348496159312647899187589975400177068369489593817853434189305525935854100146157170321250850194779393297683925101446229656927672430913556807196633745249060996450438383736006807024888813207865020281470532357951298224430599369505487140385797304760821255200467040380097350649961852312643045169826217811120033545484475988608347879188431212071477168528040218878490899692325256563751274001111597996246317710750938226950958787488934757492552443172593133780580717461085200542238284804738072637469463711262993352677305798285941182659923499175089588884573018913110509085958615497772856150022299899624508677474493840616947215677587720276627121918191647420152757732992361658763448932152907026463258905548353674162089411712795612652198717410664107454912191199399240987668841456987242893470877763674034791177349830893233777063017290244611773930510106368907296231401004222205463914913532303964796287579819895611929535377555535255799826110734113660151537744634484868145791642339890873944849338634793587096472276044930479342444782017487004180091884077325528287282663044196475478972052629871410704897154569118447801300038349655187323762320181312056104387093166582183654713130802434123241196727550211206422397724914171382808381766596899111455092418747779031967857049818257491984621732657852405636067671598001087792234205947570678582855719509372834371979402318237962608697586072667301889554260368335152084845312146395322217127059934063770411572417582041908654946923093338860197566684658119063446495804178450091667040849302509318099678132770486532595116133402385947492463347273689062247486462308987601324137009963983874804559885722168972635769121328137830686713137770149928734813196794591678325751585597696212194298300621645743164154811986787559838508543552126074080474620334617953362250584946021801764851753112731012953932059325187845687796313167672622904100687749627060759150640868448877487467428116931876259786886161260074620647865540254415499601699590646921039043645402015897421521638852784114529842391768036421198541630556893788535679232628695722081550430711579311042967639240200374328366781682501740834411678781362553113784249675689949067146990012067077677516501407595115792964028792645708559013914780722388928035550653768881198702378875501265675641388330532510214042318209445373281946933809739964701934534349302730943590563284785286548676370967765317774556384048110145173412162221591971972696840138262942775591156832157504103712067139712011042360313943173257049032390332583730595343841215586647356776567111488588071411639729659597110911507723892867648581185163403793018311974686667476712146416000615545138248433273327592029749299817659432881811874054145368745920560164099750834054355228099960351380663377725813249574602302104681821126415580164629299550346222945888795298670837074833267702647305962664101547117320073135773514240968017185346845546590510636018603615378330947656480743683696307188119479488121317980505331383109500081258959568742168451826129345757805287664951239541807950059168011572474669917103143477832842337893472295235363235554854500279533675504690649537174758430480910345318773850181911029275473276749649377594104051061747017953470079385349559929673499322088641369279959383813812136407169447783303560559054652463028276021982689053181128412926561524944680428593147810876251623192611916780268069724540358536974575738852722374712464974316875744562689460327961649937093085532586261484746496935324335740370796291038857040120351156268527510897566062244649482127224466196579548593639094436618784479400435393800690380288396159396950238134947377634134401822304711338372137511233834482605484416948350660526321378978246665503832236455095160931292600278710571282393482593594024449359369270647716015651842715884351674465348459690455619829590003566414269653650852813112283892040724993783027424788631853105850834696649681034371050562999255993784280436126734887644888095833759172257430128337418199413540817597630809257160372629913049066229111492080894509064958920162578173100665899888211759254388210793881539821393701719215411779431186260071937283031903879404788892801463440780632531770250414377083525411821210878609207385972892501294095082039379386641271179699434414612101355817618397979238016724432304570156438620497493536400068537004292105674904738716653242780812705882365063158268933542467192176499188716248711882008837002228774269507923516769918086648941530807997325464499240267660006735187699574411552486902657042745008342536838234589198619192231739671762042717491982061532675630597659524019798812691287417884367770411153189706990292153311307052704470251782829450091304234693122018831335369407788351705872419006876658997931297280626064372467302283285938702886729673861517013155637702333018534046930457774779997102471594048207701802875681220531267091448361142402933028163998082673190433936166244439243410533751591362421192930358406794930853933032241819800117182189292727928818074365164799297660377553971813158504101712323779016576409505867893833517477199332311235993050470367791541653790546631294902762090028561133590652481508531231326984963437097990548821273299656056142671009714184563236305522007726423686783967156157057668198019810651119777785593526155528239673628418471611290039090052344495744688289880898870551966265650483446950583545085722055992069304795932037889047010644140153318270050726282344100438905125611298417457589764550468520428498996827480915670574617445121670397371629258180866507358065780570892144917844874986339719076698141005282343236815336391861594030171864521607982183641400053148812998361135494634051047754617287012602728943198193883032370645586323736928166194582537109828405842987755804363779397821471378675485186245050954422540499901534661881164955548420359280898319992815256079812044911523950833954000627184275661831663313467255192662142115968046388862232385564807471217829708043144542048735761929211916044660780817838624280489509858183037425430630100395292621387031249399891519109487087718257898237677141892526238225954527596059624070897476200882422347738655350392446417067051718196389575384171172792703229852452613776982208627948801539270190935679621556597314311240228411770116566879188199611834774004573092716262415670116982527652949034021390855521819145964858778125534415477774690986231944980839406745613444106892976591573343814341954706780535527559216261497912494798329239495356354107443787305881465413872658206950437885637813329282488411266272352969308021114577908650209782485542140362508330468710397374683949228438953435222497678168537693732767768412119679594331679372741073026009992396806121594244133871629856228341673479138238148045573029166344459466252992755180714011204007975897532603268328370731268965214006384506241952015863337006222204499821217079801911285779451553196540704262675191611274498443458545680975837907423245560617017428927912157715431637307228863890760709915329173819181712513922928623686064380204442028741503210415197902739978543464246713261744200009200844135565883782825734311724463431482901317086387738511933005561852099729036879501980393364244838582047910519429494593168361506794487227242544551471253314134195089137469931015936342836720739541768214803183601461831087405617645766417801940749719728018309860845833176297195942903458475906351458263809394353741972665887140848651401151247501447096172832993769568487608875318144519499610722567258918711635343782139805493592719997312072233789102765966465329548784540811333731885361868493635250191296413684609315804012034242849550831771102974932437451292738733493663610617968625339803671869501173036181758103762537082837009653131524150542939076750476166384377930564301614848101140932276291607111739043223462046188421617056459162508601155869882512524660472536029718819703139002747574815198683342453984265545025287467271553779409976942909582471754362607712414602902997063160955012702952914794011527921314880911080566503856011810544809407273353035205871004896199001442623227486945432958348270480874534532431618105958126890515398272759146719816667135021823114155056167231136064831258308217926006050323607805591764515859556025767533257871059511977392583460708837276618825970871278099112211596340361336525512196882307474045478419790387339383622872957979974914567357804852719669035367578405149108018733932979710119479131954053252893857635023677418763193918620771042305450563719961768457357900690099499751769040770594406658637384925538761418943831928497043670555964512892432583406603008026229959068656130959471878615613806410064456957565951768677958675622693319965278893977157657242775668522027690525662940518012423610507037643619777111992848611428424613989994339322567667721944850199980106077967135769808579228147813901183729647170973194080913926417385054838400848263815229836191226665051156629327698859171361588836560048741978956023108703293101328103144093646182460254063183453612673785387922459436847368886337333039620788854999966208996792466759825598415571035398816234733026045082712061946063397130402976371897897611002773022671382259537512909764056065962088347465315286796151374902408288088157325631256841981330552478240519560313935268354538542262416996901095525896652494435595357278800237961852934958195957704492503483978171482394493687122042236693819427119087979850029196836693310795042877286359990538031060405934842045262089574860978773140153911621646993635281869651382069137245526869890236878391790087142481171716742127779338635953013571803391311867275077853662398425999193573497879633408821559058822253045476380199304094341445246278675900757672339294774862358935341097697229759319024535551016280954804142519623500590977880686465937835755250217753184311889416354006935836439081678898287043406118388474419728745093364032291723493549612622963483986557289977707622348016956094377685342056381796124535993744369189629780551977864077072566636576415394999015456430343199225757600190193642044109605428306140638758041589537178217508344069157599131205709863007418527819882980407543774732637133530123299831346987878754083699975891537243823929623454485221603011146313020493788863008016840702015812235797214493370949702704884333800151187142955704472432724123440607239521989098163495879675823205241506875051892289216868311526729966563199170911944846072609967487074912540939387287986712091078027759392701678077809578052243085201619941904092006212207136081086147624315249551007838123582352382563523752765452809988186515060300675198183612408113945760864524551945248184049247264357934930537182240481164353233510999973666730191521881545024603229709129051121665070924513634003146164052277654979129821874837200283910256308808061982406617950878666104785200599097142895807302259500279053240292806881794057309470292989646540481523605094964425307306340752944279332154270534072235757478076685243652246954115794308552999922094990492910382243976678680272077183229212033803770525393530431701916679111404508398966653206635965447981629167368456167872153696285830671890361062571772884881627240770090217254673380937355185360265000290919870048268310474655834330412277513410013889443507415228628948016028512066022660885701968650491963062229719582313097336488187174567211177331914001497801971008104358144853581392303124505307134702937134947398583367649456870228540174600632902576908828638487176477222598223477002234379528094584424342476576157526465126632989207514983746452257790846234679278896914136918048972805187153180492220554499489473652936606329656345946392143106140119779665175931930586292611785183926910852784495035302145894952411241513382901643087830139584941535766091829468474022786459711221253793325879279836186827667378961419397452846556449976944086737788548935954202300404356645968986695636585696629808308180658836332461475818099199180203225299856245068975728894634848510740832113336667953024163546220360572202308131781425522058532943645624920161691432947814173768577432721578348188347289600756593843476744417481429595760252107891085061246024710054934764043791815916525096369208791054008943409672473256880071044783653646028498090231169215898174373184357305777923151735051479504812198590986522835948723199827842471550093627529385902418496026489670337864012549937803569248185300591171781599712340964758313788899617631896363209333342054369101864115115538864764014129541064738007793919526387791502737737537109439017478268269450413100747472912412215257211717912131958477968749896167908113095169990901294950643047696656053151077923725097785773755013847847929745503309339216968176132826753502411451068520549289899979955267958565781238249307531623555130502917422869079833990908893466631989872226358347657894771127570313262524074092406928796167340582200137596237811017724047715991089839634453331840353434782421480542876959358261765360879706562796421449550716468499630226470422643313333371620832520848268373384602178967059723893505263089868735428366765112825921637617544395548645489554848501123752948607290856874250640015072609754257835135382774488680520245365225220669430593825029343376554350583203732621642006283537641888951593264293124277892996634106071031980134889152769866192904650499807259678840668576649143978633611919773436360587131900902640759900952034841032770612844438133465507864867578314631722738813176251596574908070069820180815313193875491724013121865784397636794467677367321964106853000310455708940579550828034443201811973429595782391989290915887429878610830240999487159210289797551209181273033884976730640672834729376319272966436417796531283962895814514435448837356628511133552448016214321669933910358968105352237934285353685183637261774418959839573782898705141858039428826134842196376851308146888679090790187116998010139237835729286018444613917783500702774531500983275988729937275736961460936938589200608577509398372249656706503018304668999656333716836716789996053962100537729795353510556514188619894451596398904919216485451609494456211591274503094293002348635388627027232603530062574457422831973236788655402670526531457117281388990904892831128191317925863455678015574844404333275881734393606975123472458952091492023572727406923085783339874399046704004660626032278846462852965498001605739236707792634345485547912008950135141686525982413263622246660654429266386620701757360518066832523813557943493403773267187122654285664413695365939217837730975344937378921482977247682871014434570970596759053198181184166681339437235331505491051914549270733384966056560290631814732546078326294690129586738435081300577662127438729788131294683385262899356434272268376708745560947711228817083893470074819145346390906035589629469473634474082456325275057323587650383492531441187561922842633193200015563862906249081893562137839649870120557546374334325316542244150539111501758834828202902843168716036045271668634020929392558194951004553822227137325422202390884978529319340152182490573175890727298935893093981468190862295532169912102846862119571473826139493506664443399038609245796027506367909644144942425837352444248256916475838400476066297831621932252609637283673210566884533561359200442557077792448354494847282665416085147528532546307279915520530980937099536688614201270036147371311367015840957962569721894728279755178803557907299088413440698659669844615682348592063510270781039019178741421155054916558951877147315798387892762332678001783101459367867811304882974349454841682826924333050679214652966524278411165801115957229880391411357693502555042680347318558164422397191275913489741622077460448754502938629695324355713778529695872755869876334766572910768540020818512721705589560790816279752053244028163058557028217056311233904483025912596245294020596757984359574450842941677273630645836995923744688145531725323164535835575358604737202091651024735615779055099916584930730055241102198268239611962428211632424894186520891046330804356778465569095398933691148884360953702629562422307647291188145851311821595857735158002692033679134191331690634391369072881341103893376653217447638764247218667454228798295295830547058173226317349896068520886396320207453607595229887632089740134797309305342129307287691257189596267367961134329467117968797587354594730441746693679487538068143149109661525042461915077971823446110048031223002605822929947517603129737615370884677930047077449759091303120497191573571487991057158830274484784793619646814530479893965856404110766052965871755114766908601932197689005206486921853899992629826618248788110970761336775218967744449454408666871176129149022000531215233750719768773477529624253301600304229279496102641798363995321872336375974169246359013725259544595270632223105911464195562240642915040714447708987960257250470229926773878127976462746863991922746956127735603322844142916555485773862239240252368400676610731586925097377734171633846452623676701378010137368051555756817163501605778507478223021336045814054298877242407682013554844385740736192297941648889131763947107792091958861270725991493083639764569480530916524316942763956833908277909265627096393594368257215368209928772679448409057615625674131954150619720715991911786783921898419559457797855835823096914705705363774133968040367422245728482043349683709949330390916950753928996515360898617435404153650756271394469868819827548812292345954034284415857566900780083723423116892422921130915078480743479865962248957259087100810381727312745034250440348712270035362915818532251190300550990053295070529295824167026209302580940137837378991443517676399280458696314857864672939049274522424943447887478162157097141487059865163183789892636851362526189600162879687577982308369539767944620291172827615259412986619023881631034186621833325462843835640135220672041577680504262999110703964559245939942750755799198519230061043902404276729280307840954561235073567563310089799354706894829752924181009039155891479090557941829194682649500754041171046892223873496900275177222159609196736148906271332567893372938807062384658978753215885132918588762654544376514187246048356168217318508628894229333529292186577803965019873238398585646221770928569399883956012907807464819106026865600587523874689009429655722660295524402784199748990870543513300007123868428045070906546178037339338554391265130753489876160251332189282163952670810646308124852946025777037194654552452930691120427057533689437286486158354578806006928847778068602796926120433499393012854794651627378375660223216299857875705192628840120788344961589294515375752391346564355537068934118715617496728075693520489754747133918581700919870143314965376202530008576116731049516752543675834865109217244143891935585573056801270124776019350556315799004001196197537834488139676256451216916180536120734465809970593225277962521423220399364734223548813407577390213638032832410461309581880561603126591463651151437947045855021208656096474060540665558531872821736324393135649257598063564625172527302839578417341561095818914176867935267670064001741239650427699431477175517586949260087378723160823118184413635387260090233780295139085067380405767558498416114444692009769119277056245878680161613941370137879496238388836494897970867330951502924159553479665222151973575771359047844917694534868750580520420102636351365765376130443699932320759388643635938446711620220978042621469674807384122326733061972554350221746429749476410680816166233825509416979851727699222482977438943409551514214267066775283670463821806045726299301304844468440631943935654793243969512729212695845510373955928814034326235324068483446044220898139498982147350884823723064374183618363766776973214254888384578608390342441148672569767779166614590440835480624296475906539112174179490143643565428246619611109840624308279878741322055978104688444939325137405613338346539260573857349002778790940372952079028651179384657059810435774146784423232821884753749415196380263881317428609645276229056446337039595736827124903006000444626945072131677227932330884911976488090010628209724707644753840836197782744499049154107256044907402414129949641695317764966820583504779647566828747523415503422908039486340023718627222827439763802815824417533754914022967868726019581717110598078392493000545271000625086054210060626987389532910532748983274463808157897784943957808494490873078606654346580084284219786624327790127010761025976701063763361747006670704648217083193690583026567218355975283900575587499266740656795115207095916560145567516747501578206600529868464175157949157832521625968310921719584205968733198442373711919728436919345349522801486996868997003617924459333597075064255563898381697563859305397079528949245357926958849503853912277089113691986102894646605259101819051790920965621698204708663982207410592353028794534245354446832008520228365096558378803019473566971886575897423433570621871523723354947704211315084269778252832870566188317798119386592573722172173823979942370363388616309244463977609748656193966445028248127295638748444190225402659622598530695506582536157004987908094970963852622637418327636925135273925422599897414247704470367648915527876547553210974320303877499353766082377335216415851008335219409719502690872384166162034022764459423799850197838812345346289027763458420481823270229266370389253626310159023817852699911964657816589777571517970605495229322332499088401122866588785530704980402306255757148347954917882695869822687875848461946125067910807042270143599229477996167259562502402073689369358538427381728878923030286325235961056801863369557728695616631536916828043339939540042122967813990729272041630806041834543030394217105988831780987563949200270829236890619310927940701770805523304482189762937279377444802601515261750439171793372555890144750070140432775731119186744382134322073430354769519921927908302745856088747995086018957197971197789117186567131485866228161553450894582216424234195031034348887675675622903030537733023258655119934772163946696059039665046401982660676093248443926753623524410030958880927541140470980439175397271270353191761732769643409191859102901742846254963697232452757634570275325810121957837054497923600229050007158056956423520914782992584141484795437698413799632924415816777284885639982268786600929125272194258753576921272399134462031419250657933025625298588787572887635174528789473387140682287940411729737236331344488803477222242491078090334885985587670608090588883715476716004399517760085988061743548335551946289461865042478310216091310164993285680167879193335253740285812180403730158804151929493800870531230026878291094410800034992099482639098865044575199753743333146669399605808167677809087481755490555403335371881153907006693199261843322245255314255837914889735953126998014651445183503243092163979236676066075196881885866521702462100766116494090631981135075101070978495667093255285879100416754379230989588293070624933847191002868993034178730182872075610405860319742608764227280064340450634672216968807117637409012781549210249106865478147882908005852858179146079377186727209362021977590062981729687020724339568342096351476400119653706529487075612759958790439137577841424383913340206456356448341407776196699006016960179315402880794112521843224693983893744394418960236458078014637870608242976432438610374138494805732857083631338367523049857816570636425709692569244270281096817101550713656174003600909743356069301912609458578669683887656920437712839333528497456475603094584553586342455740022350118402436165539380924606156699663590902587605082869346683719766170132458297400526944019881157105218443908352838486395442950165846658134832909342683792007925177188319604320830878894574001599876362759906463450632456018134564654044385105150062682778316557831727853128205963229030537865041440309402633786261446556605581865485490565927315636056508801925063311452420630843913391896360678881664521023471866636133471792366899974211400565910610304598748364938484809059608421339874932177903643029355667702177732048453666809098921633684133940438527079723378041758958988591617992389810314394589567613729093083828696126253831929022410090428987451088265638515593868477584086491575756772888213016784425024563699772445009169083225107901095130695961943217094388684617332114950960914093295791101569332822398968513497124522783972565943478443481853271179109833125270770184377884550860907666593452361153422085914792181735975184394096415107494614076131206225869264747831162045367847564237784829863974534392378742756625601400116745717748202261013178820820997483711902821483786013602197340190768351625808826749937130774397943516031241520224310852990933772427723174825439113371541587653131270953294999430779305680781112055158689879318013447161825435090323084385224421595839370611978794341042687571233266397786922190387514878348161280023333732104470249363436223483424463805936600985299310740932664374304877316970638708237188037729675145603993717005942955519489242715513914025023620864449743265839369839914128096007936778604531326980234338064869385480390120903615555599297052269750232913714793738669019127511498298679789340346756723767827835054742267066528050660169784046858932816569749631929229239823761571736710282544871483408528057744650533241377727326334397637008672170396572384382718233287267330378429838605188468850129989243640758566145268070684566978035520367415284194652294559037257802841598137622069733053609487168693179290199511352840183294778684233863409886162428131640060002762802255332983909744431231522271279152418438975245431001179790941931530244667140869719194690567216441266436054938237302581454133534792392799075952470742744052895824117086758165088663506247033052840534506481909401878975009081294657589407695715688691403927037207114702794524378840443020370178245446215036293374595553401393925396336775576537207512650883355665585041456609162792050627030105301804438102843031868673934771197271887721138796934260072026051276838579836053114765564748468651811863609018858231386004547573236137273869771374087811753934082381765984680811781071129340529270622350243411596338572872083153844503717429502917698033146764257522646898914540363539860631990149858516177367023311814876760535272670144381876839131104998812470671093612987431773793886255179537013808201196390745324377059171329502761486568336402768011460537793349333094307082446448258653588175211298312598094332932991057002876191446607742011371611312553325777654839585594561445869596146577087517283894900455229387881590548818919580725368208314554499882800046556689035940255577096471155900805659750370184071232316489696368863922695576848892007171877866175743015052839841830911876889369690234280164822468302552870116414571996046287022946912800789817074892958427468805292260818450748126996342816891708481091122244338676395216987266093400701287640222911884843377977117353347278439095940356178944449902107692169621432329275920889628725857165940054875071619292742357922243137859633134169460757462879229374167195953942943141029710397897594604593355698371593054666568012571008985321062802198265985084978148480822371009147481698013950990138408156250225557297033236771014754135386772070018657081334992950071378994631465391761543050891031965292964926908432162651628753545780044439415797021759432426763185011874636994656546218331865896366314723425308373411562749260980705028322259667423331051823465513483461862268346846353793865092335402093484813286061198375236290835822238616393327382801611188623392575395875066246595897511718231000569160722466064760598653798821250768934413839213505019195001468411834285876911837995128977637392671689758959249729122771207677434245609119366774887857445899338467045767461741168056411663849607198452286308005929442080501040928767169963608007935074102368220206983925814885980698148030805482990633549656126393440892710144902959152066269361400888385953545475713563672460356557799970416016532045143990670301053537873037305589055273508868449201096561709919094498394261808717419793653973769814154868893498197361549139357796716063493226687424577924037197644544355077813971931860060619226534807619094413579315845560172308007946998352957753281109324456430465144815358407199836468050063889505597205190892003749448077039770182571063616898367713203916877553578218677036449275157909830508181031788549422363830082567413043191471353724491100285629122865410262886606024271420239227636075316886234084298582538082920742630303318110425121549026270444002575439882988148046075619105005939954837517300874001310707380994489729192449174285816246853903979607250670102940121212426553256190568392275566748018299962386130512931484215904220392181386485129120479433946937029777136244224243077575709194781850719783806709534124001633771666595903920521809170484726252665387119370216074096510685301482427698749172889852524184989620497015745689663392394793428301753666222077231858021773132419604197286461619103303236285069199116044072298938111804020916405609505115617438533533737945022627413631460829292698932822631437779868327174892214736122520842536806549750174419826074748368287022997858332108064008470798182832112682055417822718772631533023922868496665620110205243295030783378498638894978107584485697042903593307977477393853639261687973410102338327999007043333574689747600379394678343038803040269054028420134894063611878119446604008545857423287157233935746848862312643317702727156035250653077612647382382729494170240054222538851395698801761994461091804752279321756631089867324513346521628273753850977899356999077266848650252975752517240613895345330503816217032596060663505069045094972788731406122513468583922593943215301328145545005465103045908900834799258581863975317418695407775051048863383936352937029212677922842451261677569376603106088551123546172759261117437592727890325959661572717000705646998000984962917089223061476211104092370200183447363396688819271811446440516125157219443590902556681148853710843553363922791503027766558288804882517871615374810756605240143492704898660570135343935422926505345769795997167504346389427765275673790527950910524503566158860823288297480392236157140613611730305448992188078598062239799590326166418325174322515538261492818915946222751576483774364747817585404543872335564524338149232199730931031992018724356749236594344770405720034754451206647452763672920279002458034988345568841276444073222934682086536010718905235124008337107317087133569511897971474916665872619303529853442011181449456490046036689432200821575649540144421154734866309001540906439886569994714566259177750355249308406247815739498972187570734049997569842407357935022214246947168364797931240291136417495228292309912459401691022504169368101819196923187652592977800420277837301626610722721154563431205181261331780449709736840191716833450335435164790898952048579004527308013857145432102943171571446532975573281031822320487234565955683739379188732618748008975949036866039121132394890518606616726937468504091858243298372829561823046325713666659701116422219875153179145508907164063767543803321984366397908504136647303175351882029201901603968455144638167335871429604656978614625272567900803876868372380225810671723332977563821811561004599840349930937802683177716638868276838023995619631306705001170621351612435931311685430796581329694269943539012531986469077310622938945953266366224065715347309657997291715085148979531206295211198250544879610224114864792462380285336898704015808996655591567413844272769396334892869541786657648888097654865942856346968333722391644824428616209794988354642094769739525308135339800817859910230040241259596284939071668230406917290036093975048240725536700910240655669189124855276357745055791631688084226876164654830286493531140938945786569856323229909908190700918656486090853658717056592757153491826196524373958313270336804829879600081809799621496266388848806281094695854640716038885225077409565198989867341881403220213087172289775716159498907175118661758082805645911852463019619527063081666970274172097653482577038747811156592451666551750587717305328779664235987909677020983249299492133111074925640783013343223884738536758606424970133215960445066074231470974963687688460516503194140254569227288887485656050071707550004123772438283579655957238989825062396021469891167669332984161313086688437085503806942903707508491276903971787548724732717603756928859039964334674412852304053624382779578491507724957621727633479809336600772229170998866707586199323130144195948321698269127904713339943937812468883910306963352366595702700362565014056601585008740090863061154222126263160660741203373401874011052723364342218580353268161568353304621526396197262186221325418795196509073158822580281214556733207128471710612200643978361575779189080702766967495895941596923288178212386444653889025294701399557454381502498277571232090259606541518455978667507754550819710016398138467704041007215831000859792188961265747409170318551380467246216248868713520683868945596507631433724184226908099278464989572426507674611280615377983951815632809601012876744632273272589118064580800193978083136919825059262375611255849090741983558320395211327855176277072559538255121171362279907217684584042934640604310502951298353443150454276764011766700060846324205288603349077102866437977424789660497122355303563762738092545105269742782585845067685293817231757098715909196671417397761491214036932933726615539969473226844724953333054311650695219322473155633103629754134284992821529373559089570344728003545045579486290617592167409443927991239730936892437811955009214264949680195414914745971899548189370713433868180726038854333009291031554165895456001661470770078358630166160501036503844753655790798872831716893880040453607561894015031598200416986045733103824129096688211218096268901312693477846860096831055535223385891804470744478688055452694170910252973311675358648609010090402118003636889100831019633166499815625490823134544050832733634051800280043821887441882833787960370574725173394695591126942945556670124312589205333174698053056928600195023783956234841313690989160071282489168650669530045667190271663415174185607908615678081851595386191509594429594000226955801319825592005722026558576771177846373134806708513999126377966579659922431905684822814977720041927459386841136566411292677721887790747590730288495370350678188814089327317377542198002544182122008008862147815287983529866343108476795369130294999184541660136787023224971201423801916273144571791799828801140890528471019211419391020643815028886858717926499877525448523916411438357543550330265870229297335592485308357954017414779607873562307942685530188730854115595194296960088084396041042656250045756727544391991530176872632433955212400937100001054648902238205745949008331345400079353363168245048790244799637823335539118745204063864668119962517149415399533170995004446321619492446761094719320233379874284677688217166550615200042240533273131934683998171408488125975533752589079486020316503595672471003401353906943015118426696471552218561553508066238270495353152533263787222122030986875642026827678632815758179281749606026861922663240900108941095834609349081151483771381061516519513588938122900378074209546027514163106895251026923981231346464197132412224213933450316524341921545108193405315692596284076931839817224887627463139181617650653235922536619176159740744331390609475682621364417682611939165966347051311288925074552199559010218047444393362604117827931779477218887601244968521961018977856857460426101051008028620611240176238477489848680630613242381775244163349576823920405849160283131005449546664240815547809312505820200813977755787695131603150263824086984956227132185026492754385800773550378042646112272367500774764340538723036476452934578497486633089170654885706536664896511464488514410134133820505448321460411054128292687099252873263457494424927408252944510960965539122460295805477449480290432772004337854077272281985230253849533123391185652918420254951145468327856158512757356104400290007243255405432340674555546098595520644516980370913185882301250015728319130774036354359161528909925509200043418290558255688534955528123053873135956590918036902487021232170137115407920522793168547794623463999001746514825811988273057998576378931852753848475831085218262531642000972798903173553955729160218764335297592453361069086316038645407468154394818518095745841525649435708588137795884526468157146290438042442406385120991173010965470684477128554768914999683518882239613454487286532799736120757281578512788851485803895854293171824099696712019670791714361941782033066062271561870108607781351700725548202108518364845655425397294629426443212594095967136137130286847693484747394083840538423593349202666853747266346223693241109256975575362333364046559569258556673397431655518581824422441956621000360394833640557562951119487098156121617930373442847015109199479522653394605535746204884183853612302961279094764097947731115844659653264258143184295105133262360507271878582563926148076300142295171970832715575901696594930964708523930983829038387383354136410564025785574914788737145852411851736606247693702974585055096239479724917008459288825721430148340393272386196541753582514053676559807795547799060066135663721538161468366834936106371857204643129274039815561908441491545812852964569251123333321489042835788989778589737681190272660651248279586517414590566570319284462832523051089975210342540026047151965533941537573308097628671777319060720177972386522652773616155106307655205651497174368413242185303983988423637618178023740070268048870456890820052191010541068944188330364197960558704965935048268970348847874213486562997933739664234898523605393750330274341863543129397882553503668889261214926089837041214730402875480713317368678189306468125852460204904533286502661007703728342452563632926820411494713341712858203630555163338280274474764002386259420651583688697098776326438934940918189658591136279654716391370750829051044823914515821933456392073892538077833750487012346158539595962404822382964605272336946605195885687879115739992288148404451649911461620775768785818520080376576478443905178463282189668879981771840811835755538648208725219190829526436963386542819357898284665691329671426612701753339482519840306619461000696135611954411536935737720601572316454076962599106470072676528014173385784469279614445981532887896522220699122912634707929107479846543025417817690524431437626260678259379553969111393583325765246159274859793774268847863626347081601105197918733258379976596266014381297082231480420134844886804584612451821587058667047221641482769801820379589686704404840840000942653321834897064468665441308343668586338225519755450014367294461966127700217916705303352740417949714135710533245750574804441114284755614768564813853013372184756317588528537983583122557189964580720602710727965573872616106808858661870320950483546751661515829709117322252594806924281119005271544902519092645318523766861874849473523535761473197799921458573050289734086176297485683358982740545701883478053792528073776275089606286357038693510571815433115580538991085483535280812971652424430534345759336755612025541140083198741631930684337803543989283737138944212414938070442989790087703061892897238095688788387418438887684718268582975304185025340182433531320471718521932556489642164314806763437749343753174034436238101731578128317865213221891910992810554279012589323614081539857956078133936951349439336630159613887968452942128064899989754769081296788402108865473094380978028812994901180344334433505619577997287749308712519960845802670547780854519617797878996102848104761826043184074999553722755676263243160769115708827331890716087556769803171354091330705729335414319498777608937142367073714381973982814086581877980447740373148054742831685012332326969566364134006046978928820793819806784288216446770169215919157666924835454149808177893988586737576256507904479316447424346576286640528448403714050167677863790207630270783608240008650117963422976520816153300121114805596863540754283294358972993614933310641626121333535671278856432881601378443371095397092912813635625376706089457546650503558834160628964464864872665866129560860344323380039735603006016897659283341022553631830447859580086187004061862612402461312422834828190874447222776554545716743697986727147477757945755221090427918432122982433257735284491023018324087617380861342322979616653861044837666059383165707647256517438956982276436037184186029997699834008572461016908501706401806100042212580785596405533318572545119748736325714801159448312861680389043844193641086319529718351421300128237986156094224543946452280856668761705484447052948380343362186402648648637424820320327351620078492485120975509135419692609437084249665013570740247326338097635342758056983355930927744772067165986150297902002761656626904181179058708578691002668339038135634614587571441577183682888013467735943339181281997159829013288649461321853156775385502457631045962412330859971854239697004225775958386429580594035652658172149479391406026090571714784645571532869676431006100347681055494376141762561711655487816858157298025373629184057878542955327684037647252182344630662499821836495753162322335183467194833881947983112828748296894327319767333030257870817042396178372352168892161741987740999068970037629144942434931502370123368963653377226849799525075429369769519995860661339865884761470386316482242204302228394425276596517505998117008815046682299383803212101598208345016313813628615279534401773255067757468297476913611468132553499590666619049951284268523178408615838275981672371060549796331601210005175335110821719071886308191426778100005689415472949322501771612109845849639963176450467859268629302833674926505045119752785226483449105917911851305438171095320414393140811155309947398784816295327283320100255027036412771043495725846913963296602509260062983684809587335435673092979307075474368703472940486155010977805578424672264087700857196698999284672676670741807193039748597105412199040207782616750929857596555288116103303806911904305146277994645282871717034520467256595581056774765591091071809557887084055439771259525488381551681392226146440334986138303305465868859548735835739005292506180623158673745704943106388024053011459504806669461256711593194417342675397021062670074380574311531679216180394356864471765439715538280704575672939932035066302016586351891415321579941667661391822339781445154750161181038494548168685162783042299794688531432378771495929872071131231374652105637738872780839507269090308806458790244598587640605485082724563735939155805865710957794156222558231296485943789701169003103972979034844034390833218247872078918518134383207192308954208479447510794460210894179677292417735305917952917348222047790190018755178292785215599851940411038035213469749611845412230492835821483704592608921601968810093331161659813713948871198277862910814396849821575832536557758237731944736434871405705869193954919890511008422949266470131835442074358202280781134487160043349507130056380953525306146103561751799225328216228756093304075296673005453942612422705005954392105089660005374917406742908995668315507959535476093627667891408285174662843793850810266113172968847080925746509086538320921416525605279007528505096581446856746586490570999723965948674515150725361999419410433042392254253164530517627867604967820504251964264952755109473715916441736958935589982103748166480454784265493028235424825057392466380249541813510127304586114988785116123630553808016904503690885506261349629808985183700759846501033846890378873719254720068959083120748810231312288317190316576480615576445242619278549694923475439067850944249824711679674858144672378214535606564874823271901933254259279437196117772763359114612172201432356891096846377228840165784598672379408116037749697031312513212344282194145660151946775562824243884667311910471976538210834948911346807995324055516020768036027957204645590908956744901353086882314855183643742265850444224467079811155735371667344285769696277982789643753972782383226671560877876958401559451601864484847172900093989843598667455762504151144514350050521723734399504881570122962565825802860939446859757366041486158948182732026613988712742279742328066011551097821034801378543160200422409027766282205418630730633148010325682385547801619794141056331214457313314108978234128266286549348705971274506833592453091735193271230056434099066823522280084431856462805421446555914207417874542857616833453546638758427516301239261576447436663415030866374145363309456762078792972814647763938512511448363648661789991156174407969583972855907527944724274053799937204872478725110379765707948738712300734933757486818570524007082470426179599395771359844507672077982203491668436412101515521152423897302576657131433552141512318568368323662284545677471098560363943176308770316032930891112745361919141296101404441523125136973162561511198339653819168887465503533857040312334377138956244280822095965410786672347685295703070345166005545371009920983504587666944869006201901811278610670034336167016277703394065544909596063385517412429416843412791973581671904741738491240969832960692074082953174554022423078244277983261698990645619667210779591364412014867483941889150547638807145449532473214662248487109208044558808670032095618090454616277207101126653512916855679045798633041692791936092810698350090784434882211563209403061370036628619519963725452388539650215886568835371123824104595976761924104607851163669347187701617827173751841228409077808259173886833901778529847476457352759585744271849109494361595696122302627071052245526844283675126987959941832378080183306298665979832853483324575564112120667792808497209681338768993131227355562968385159915947034168316041076696844599516361622718834452352031483492839423474007239666992065571870911437427494056915761025047901278782826748575064294929100801975554267768968673998115529549013684685352505718295130324819219335918107371982660422905750123150758339792288679461163505827386841522520582192439249800018026693881983870507063985571278304370554827554645568549335989191861593081826050008343558204646004782617983551926980948385125417778615106988906280132139998868029038552724872280839656064615147854645507561552467647460975426416812910140046062267419390123487972164914666362325285604487001467888157973170527395601083711643903291655621065973258917068417596025728304606625803563722454987260460651939926592295667664179210894022864347529908220941886358679552616459130435216607321357520792388032352467165643004811420487012339115544235427470040959885771477661959716962348329513356674828178499801426772495452398961844029851579771281718543512121167854900602973784480365187549432389728391437410596317466429443253403209492384420744281644943588200804077148261817240710216487748173157123350812326679288938757555723017244951093964076010838861822318241898664884665924074739094285790424504862364641575088466579174828347971234197475417443920062396482531916290562630223529198437620620990787786673177058984777061052084459401058910829766425071911692369278909902011802251280847857069153025564335530076763446856968740381945939874237536449497199073813059566203212520779867706164493702906639031306077126690680889444724690640958898320967436797207777714931800981986718306399883276931496921355349830177152743696338621954380146049632176826449275319108454082509603728989431670281049752918088196457414980652933231012974431363758921923822219352963206340021789369593629084619975679084277669621148858872097114791703952072777781553723763251635445257184211139781915352578213095806508067925279791450258947740238716384987419242853087458126391193435362305655806224407981620231400263079556328754113785392885669232875337312531207370227372674851965025429620815942382462958218341339788480521299389874805928023391553176731951450871903807341553085337767069683808986548034290724783264492987121867575656519241524080122172268118791339409006728689922235712696132495346514311814806810540357444083471392151459616082580367506974866143675160314149124550808064298931587696745476869617456695477652915477806069880258512708325127972340162279550059083810957593883733886076981591294158853733549423192701802531951577272097594572301984021016084557867524319128138973851073468469514536100680922688586553910913582497249808846614658798635428966239647093446572316102916966290597642172039952634098528030130780391483231890429228614380024582277330630002244909083631489557187765609960172702832168700938236504780929150691550675063357453579199342011057877305009082042507970233892414198837563065881962766088315028938405692220413324105236718621317930355020858498822720232074980385009466434356978299360859355627854746609458158340035020375632267805726667233675241958383220055703122845301504966230050472982791372120066861063580482272703175440770759869930741499544309610711881901006721068202517370154934949928373504086531176745777350306167492079010596685988256564563206683877832313252240931524114889327111231872929923705251802137876467518712194219080360414614232440824580886468283786250469602591907821396806980011290692053274086278019337311277137704108236488497678144243685520837602119370935061531432959522538870924648146059504972404485164024001052361712350540794937164167539086030019884612843698363323868265197959807068515837248267922354079695179558358052756499691154430093420074145028719874023529574307010033531913998221825679823714975288924706419343065033573790336797907421870673217970414369547024088479596153274346555880875829140910805169918487959641418762446377802585524990972169468857753226471167319531590961404693918180937790873078052608819642907590060697981470681456386045671676680962246070395077314348954618634585466029271431781193890389172665875631942337308394030299926883779714726229158611793201614003011128363420584871726613539273702041551492733547293432522212563070899301916194493444340239622547926120498101789032861721141059427339040085081392306013691663197067883888641165975193622570455705283352222127329349945777391487724553116366625836032736655026844192174152748139083874874379698628656918478727915621795603096937977774685231455863567278715295378420318776359702662691025352124720021117663226689676224451920942788296117406877297314540213163692428786211423680974550010672371106673346303853871666755798899811658980538827495315510533869512951185050662395358301993330433470836114875525621004961308271526633129268710016437526575060121541012689418548907606756024040033389175601825385353935394261836310765675108499808560569881901078410707952530425373360501425828750182546282277970071089923509527885708269418276270228150613167597443181950852977655228372371860894220060870629340927027326629550496185120490871967395686000229875136568209229151804958821539125333684468116739908253977450927334113272899991806102677814312403508747390477349549393172558266822592760583996301924717424624354680099523335409511286708666596610368493893737958850197233495954322352430878125468324221559496389046397991642543715480031084996810952070423892044745858327996462847419667978548148555873413162727593935638446290903255904375852876056362296453180974088958777710829462134208358496625973528676295776275243690014286750157451339279357102703318560969724614589926381350854511890599397850592327625993807579200491560243082808691957510613140077659092420611922252762914046526653889972530603538013529830786574350625688435088068075536967473697342717356897931465036364080741356757657824363641589977396553732565816799323331837702855339885959618196956647424940550090040070643868162265033780996869449972765538540818703345270430293986996192012501938474605010016774299518966926869712853425841710491876990061377385737246778756657789356939272182978781747034800884536055736105164112428802656396525500886739412861737729959999304881336825877108956584824838604946460509549004246667598235045321673877897558208611153959475986095799161218424759062125721204417710464588552731274475154299406060894954075734616822890810562069340871852154327427225103287304034466825104740405345177123039623887193595003933789716031502457168803083094939963857120262928776387803038319237376854972327089534750433675372974696568820378654681287843496981269024317736368712036141985751524482334440489319039876434760183593224701420827814638741692144686650928465957817967148224712764478506016855239520162308355396711964906593314480232197058157429544546337550371516045990192195941152205507076565657843302779228342995446064548791305089410465994242141712342306263165319693624055316076484401701089788149638712991761754498597090377982963088856161095874789756247812561266274988589786232147593202002265904649709072338317617221866971938450489111566673961388393200320251485909455320975445441348421388853501917195496579302158080432825308841608613346680987379615661230430673712950279524921758550209254046922661565829236013726533464502835184214914629750936857771423590275624119965226781147808330752902003238101485395456407012480821512693544013090177843795052491595719496381417008808135311703397995297453337674136835357628430738127255335391146989039508554431782643640715590154565765792671993118624035840620029743718123166530316834311435398374117335988633251448791253858091075652660733470601096818010684096990404010383123603881947632627253140572960376932422844638700370702317731767765986457238323605499511268247439630173457818057743929442971101904480898711607423219884986832706631876512309482096377489906977250788675940553335129388742534330692697748264599029609450184020535490748116485549749791124216183975786067257640361593703120195631718701948883129928331424568718927443589211249650288844454186389219731503938544091150668646412200834911014528744105243086397691610676494378668896581684085419151655094669151149252127851918483581587367235924436947052738134123276874935888488133063860472566444767498307238392313308782820447566880488152965479155721853272837840078622870406894935571073848469196427444025733529768707985435091180266290748200061949012260518699563169057406658109190773390624263955110790587437627890703499512223669512695539360295924384946100642015959216101888755424358376449995289598464930693168179897659796246591135094302550544152950599017294377192118048281794819920818144353624494443332050943062471398833434898891119476382823585508256082156976055846283219967683794370157505936886458290550575763852778748294202298276569685613353659229561083920742811006750026356944565325265344332874800193061800978021406914262463141186049117348692916343528009360242533811584160493000484647079550463274086719340642960272142190601440850305478525853340524331281753869961376948936702211220715896177628293750247023559694128164367842405664095767523724128814126308485509531934857108071042738840770680428273686631611631206514383808150247457097055900708087869741876373134910521376179392489777709856814949368331697847432098122326092920312192746062956522818832515919832337863766794901446824910591383586437985145117676916835721147495438904130493621413506327484425180566208173824855347173555679548093057993802483082252525408253261082094383601406049772128174445404868628339490034578387270567304822822227756493394862380636619881389629776629899661588734710825642961333082932023335492614365210192780812922686415306136062158177072659920292546466466417689085691641693825000247905060944114355905391745224391308116378111359884886513603629886136466870759834837815298065018675757963806607031886469008511593777421285221539868534856209485633944704479897268620074917832277547401452026614978908844499688414704602033107701411418798434695621044299130169558162460695244536930377346061816327205323995845838663144718850556786532169218716843696650508955586664732706347673786260445147409926925534469677987472206273779609476967145675471134012526973968104266131103586511126704043649421619295232443461222105595981041928257640561910395992934203673486518343213736042846777368766446155256228764462452952371998301728160646263418582590882156496400689171244103750448941801121886830742431928364164676728772962930511649293892972277812913247931381641983832457540688013330054859143784043567297352301451750151345243318591908740916961592248477748311917225478881091890060996857183262416658503329306387385294351665925618998531627781552623154783447584464749711755539693729923088116168590146550759660097173166322530287711120760516750888165725401327072247720419604438738017201972967244676461553802775364756349596044230252939903958072771941307459969819697981321996350518107771105142312835360444855253454344313411928872893773955926573147879362211131551250583525933559275512944355698626891797220078961497730509695960739341301949146710992792688864249963345671238251912736292581647063649676820093597135201411839294909059595153406693260897437484780951709599409245064999567623488588044900806659117430825752625896240514907154636923778508891279837797327974715580749422431001314058391527115307670849462108073884995326589962287779490301479454501148403040976813654356054283302350383938584034622201269549150944672283855623751616480130221208837339818857368025235611308483875603609190003129688097399442655951912270662726630478665340026998309235321835427393188192230755673883328618117098891407368654787911830632382523794385920507173878927987973532055182460556927852547567721090449338710477944734277276414457220769667406445125120115336410972211622896522937782499504074029160008702851826863871702906216836209910018428769238906766066289114501586389358690444959819575680042709132892618792784545451487111449656521504450759968951688005273918006593924266300352916483095861164676750539459512105955021804217834010252717644143720720953476353192171002568469608619860476320444732607508461007198573615096118915547262608327301093399289458421235817328280810266188770243612794960608983614146594236627192704984268360139637757993952348592008555377554225903762208165103208591821658731492013941404391524716860198754108786010040181020120330568322434613332492244713349552442098693822427964460961365936957405667277001050240306247706962529867125122110327376713344309427445035195298657668811416877349229718555387249900055699589695400459384107639455010701944075912736514721530111166753708354686737782574843233104340172794990481743970145537838422656967271218869383288728641913641972340326651511267571274825634674854864292498341659904866825709247319980081089133125345144206672134350817434076179457998414124039618313368945532979908566676565192827645475962525511108922199433900717983536738086309437734547953312721405887876609167933129769275192007472234701272432199354327959373046247853105691774880025703278267681265036926754015132903770267453849902996462648966524879070873361732333573800095074622146759121725703423164060521194926641534931141287377886531271546042028996536182564632961114333582108347981127929446141083432820518171684216477342005719048250395828475443298565845144143463903147199612297386224462091409875339041131888763178124789531311433808091952125658176508968765578446122521359255957549405739078310204686051326435393276476671007443106999343176449567882237992460077846915918673325328558373518313780938472151745273067127225904427509436333952558367537335991233035398030954934194993690899630385779527162246048469884487556741383561405712161750933875012035162914084637573807933100080297305245972636065584546440965458678035412434468380949905375175289470396368936718390448221310346698627413064302815135568786109483090588949216289529496903832817142028591593169022490621334185610397671039713676392227372606528779200431086947456571993034790536880998927263174536233258379857737605995827500936284904965035857901626226080679249192085037007254110144120868114506422222242501892076014999794169106465303410398812935035159206328776052136221431320301010879861026643145725817665224582213653874672519194103839389301597178893252178701334069904603618109994952939940217495848848390129766373685837826083439151225323348222405695994004445514073854562111851284147862994730343213328181311114019656527355313064419524918471746317600666712025359278217588309449906290922876532997881069057140054270117902761009214150423150851572057150145613625262099381872125665861478300051614563233825086347514209184701592006912949566219192303926409464865796228195168220429362766215035327748429752199542700345438466966889784365918376924777662487496537987026031842463432044890399634169974913838959481427380417806376269227903405881938374159045825070079381750689356641215382266612583001211467993023460994462255665710183409008206039547568383765581189796673571056910272558251950382021209760333291300473637409792341005977960898869358343275924938458925964734595093588765169929339442960794811856508613848504915449417288876416157015086261775291388435823270643386454497557852321854180324666582440527859820475828939524958185914144413242421647643306518667031589258534820598853455080333041904632702009729709207256163155648128231211217121993786595550597679825081949111390978749663521419726579204217362488101842134204363428973044406371434484375599693254991143609781060159251317465746638651313731618987444436604818776858069537800246037945454625240490383195225285978821528179220295806654574593277587360975784984060206147690959664378745236438773226644624798617627029062194842084210472284245721849411095946483820032050594377587739359382824738232627533025204077984633712491360382111388322907780196877040597272667892003938512651412908128259148418772848922582309745962780771397156720073105780004776121394523468158361655443140957112030018493207786492605164615402119128686036467940201965413596908435566278572873802421758987320443801567452506827186424673112480228431971260604049070819425670969405650332847289812249555007742655782139609136413741000783697811821502175820196994713133467758430136730521534714696766843183618664062505027275195394199546247773627205131892279957812069776924533365928201809219015360936457489898732627251393148600688700208601370461770513186194725517164195549987561485048041418115310253384398402727141206832880435735204109826185634134917438037538565506059066260064739181311686348099789972518129610094191781054238453268333687246087745107232816998527413010101326042651938984306378188803452778614590197080502052278896162424576555259131291662286057266932151440014493810374808480317978371664713260027518998864438500229794138953744040836876191598514313111410647823719168655358246863849137946694543299302353074146636874107529889967087457639042454203665229081479324603670878203103849653926415604296961400720607031172147215201868790193812128326813621219056507152365607357480848203306286426750912091729025427329965062792969325743923699555954657730073642326592575346840895452525060518098222686141180846895641065832010490287563760557057791001802547774013138772991472932622586240283207983645408724436127698715139822566863840420908908303675828093925875985584172074580578174069364692585151082493297339917186732650717740344252272395618779902123564837536931979731749170899961280443248196049537657263641482799806267892574794463373038937416700112147201171994980422858500689368761675423634628009249082186424147838423062427532980010649694339301226995780200598427403014361803064368097204822058424153639067307293862646525079259793093168773425481367797742757468372399998606021586385637923226271171581328591350120981926233072015880811986905246395653842022279598378353892424187322705448943938201617043193753442299789859879434021748797736393341609894241801807662987873549239417019326418649027698276922913419267521994738974891837256172369897947562779462313031298831231117422131492262198612940791662516806880550975408064500936298024348259456857934466341231050589461330230059153965575095524486838184686662605912379729848801257067265545663173544802152083998588946120719437486698124189105625387817115876890880565230810452990524122231866756737553736208142326441662960485838243550367637181476649798948278861501721328186298216677175580326262984535218549784125049345305024384772744313633328586646390838013189282973749640382118948179839468707335146111284449784794308057401770419800254909767280386625429860750595768035864910568058123945205935901461982775076484135589477995593038118500950018855423709851067418775077490471053324344699436626847291515128950608442130523635001490143628003803537967437063828677520008440417723079679902259497564633457067258952566029264302535416073253927318410269573926596191170836201926509161613736312283107654300799396074375817912285499284305375487058738338329654365620662341070120461993743531471922871328223586522440551595204467532686283612641444474961737332636692139374665095456611521480591763905815862846907467943993365524772442703490123981406848451356646133752253185452879886453463548310637702876137059783376260278147209042426388276317734901621945429441047123921620312766066653115264580494003587052797057646301136762499379120998953214554571838757869941332483312288496226716546023653729871919888120246182315938746050496182492447184525939911735263682888191356052755711848286211226614466987183485828351739154179944492262918677582762438541288515422894848333973723614949978514600800415094241533382458352771829142588854565620555837933293333173904495380688615468636444495751339734081354187840184743512663773579604026504213038988750698989746236693466113781663552682071943963167498561901164225072163573189408630258667717279935198802495678195265157069983049552264354856242058859502508083259783240074546908380130078934049166979043965324123749284015357453457576728865734305185821112455778799465669898693119168377801221557084871357406255872334323543244723879664734039973149436767782773604778187881986319583049466807962264205870634862176894471195388073925195905287729517605994449382369924062376444392483345393781377245257152845414317497440786150096172265628101468106074305540315780194323171194272811872277112021852932333375102068468756386056786883639150823848824815224584940807338098879291072116949699917558070729745235756565653716416368637637971634301996850035263506698173247359402841764124623798981314520514786671048638157133916151435818246579515640375241211361875412694243707507697537463579731208456460881050188844222801287574691420549699246504241707126959631495857500452323558452173765976740019051705351351532951534580294256939413109509071660326692618010351797930321536036245571040445677103824709227626054189424458551561323735517241125782927146934416112474475956824751858903664788267132311548366870448025605018997960608657759515539931021334730999540756433756298179241643960881491122558864349128033175531435993857192138040039719720379562562376054835402432020570177750463785170532045335956075315707419337077427726072510173882277131728170423902164971707912907562162460277689859384779382971870839442517870231417221250145758311572365046891775608516628086081861889437028919413170633172005040101828635838694034159139750016958395841775648998279780639372382402702568490974931724339493789895011095766669474609781953346019123977915135123872194385441589199381752634551053827862421175755191679892768511495477346649310787161001107630924718284649945999622388183652352829104973922018332237983015492922834308275301637331209467665903820829762780463590532413578367821524780351396192896113995870894616185737840661492618325253531402254098538182293857737149437176878491470943426051377212198225190262605244403489515015728609602723194104667700552213272882194358421948515670948623445162206413051407699536345584498530528467512668726282741534056747008428335224509601202024995199654084074648004207593995561001681205293765252511401992537058424711280550319790464887059064749066853380326491533542500512001450585843195109881304617234843160737605973991981127600549745839438142782914522650815030671873446012355418065586072046207119674874227950085954495077289736742533310049991458658339280732731646934065003573786505078526903387785673937596876341318098115799856672440864573002985048283717800277529965986239764286867989908131760784289119932864685419271545116005449636568317844555858777762586909186272393504322811756899864262151476120244205465263245932628849132766169998079865140246025903507877330220095629395698303779091698284545558037019660208113841447935819210747852504572784954959260157447620171575346334185512492199099610866371558185122235361528554156050585616354488720342975246708631341061964238069422322744449030578535368421880979688608038870429584947006630120537639805655649127221497250412222382388505168221966108087920805300413986004535497289434198350598864793965009462923029744550986718213571849496340254689645610013492334585299649431310540753186465015937861954419938744052554851916143894268340899447411723755499598345190585604244697224466475334842758416529064335623958040253106738533418158142102882646048273228089102209087429009112777901553509763612368672860642890335436577275578609796195375649931688812784706968251146160628229150931593073081519200448180026012425800321304670312277925864205616079488523738483126211149098426172107487914820328311608313354099647369134940551734763055157698732963670578161247843859192887434789822056823510400491499797574184915473338680284200790159790905749030033938430237679800901413122766348907880236136396070646118388136223141868323175166852006887276800883121167395602547854708639589004454657694481146934839620420925594933237249111393947075783965150738878841695883607812616309896176100392974633446566274001859376219692901143932259898766551366484431964540893381930562696837267528346498772798649388177254787002295120633783527817390932525498253581148673507826697495107071241797421191802294387272181778777975641138831783267385727995788751785435038813466222844466579853304917498033079395132026067603878048421453348350618572670230086589968366544106191601143499188219254654873720014910101812068991790068963252050707026612306228176159394235026633270460278633995486784129588569185110556868224747121999115669718140365917606363860999888824521240419918294509788621914915844343809875752583748306433569787869773680787153309794331862611641688847886788622206891088051085205886344197147363305456327589379460363729989815499474193603060484927662915407816919794463346991438742516951605474662884494964979096080048465246043711783311862786847502915921552808415139523512981079878049859027553345033860394440308153437932778007788677427884464372731175892620284427064736887876369086534784464819617007028590390514136303105520169864791797686835580624179081372454530532563313062587816870254439283088589113252353040250145099172740408533685660030326934386725711096484971332827705950320582637986012148337132501128773270246445302292462775744732160045011064979719790018254155753352463961997663495551710698580386892595573256753212756532211254336069619907667834350054582580919107423138321728123209116245039574289520219742925827939408638338089520386553526100584581525694827638135314472442092316090780453751869889112027817652942215654167501471488452504958701377582521513896172883578322881264729375931728054888099115781978866635678913677589751882754561253459134173668939692213675696463985875829538221374790171628840707684147147257288399339268050898589271220088326373876441502971861114088074834706128879261696466537081975088358334215101057407314531104900390838419614329974927173372322210465138214467535250953284851484111432739859148212312349506294027079390566067581584706064471316187765538650414891774036986209412320955850103750265710206769690735866125738267027062547403361238696469520522424774187317183369816399199988605540310926553581867364213708767785189806472536877173453172576522510816899392935445070832795034699884503199988544125330412786017450049627211165613394123478289190126254380240403486083086820807241995946857614953686583211597293392981786094674194445385907173420009017399238179096109032450626566445457821888350458053446705893150501504369753184529000131034108021715374836978724907397895372383097447664973169209310849337291969698646144837271079836204315104881833419707333595053260489997325533154035169020814707345347997250860546566958846362777953652896337002426185980966927643777689389310111535760792046940096372254630257145757303402062148281647851972989018969901840855684836153438042349283401221695979255250358743512237719332218439257715480963204329209769000120203367446316791421166522015942361545557359180793979703415246485749869018233015820299034805073256212726562157948990371862195896770022325214099398663513376729335051789997876669456346525614389444780299703074523686781712409727395211262711371672068574484252632817950907687524131659050178074354072191174495220156196172111251872896904477087461854663670518120251117272141093624307587340568496993746460625495814505144725578941622120118627496065382010707176873161442740254840222822772644326021293855248362755380255074522105446790455618275294877642529112126571222955782652711922742656315853047880294748818309540989131190604308254975307957755482948561861175619740933278172409863215711674857725182879294186948882878654847023351039253146031483518894801069715120394935367497519270847687193704737738370766237958352504683509648788567284213624212206227890628581327543767253552638581959787772259679530931301594896997049178146781420796414083022454608257482237040847201605807121181382926281116278437307214266475995215926016465527849986224026311125543785124685168245608745720678768343000503553095604200972453604159255080898970174979918076347425383968359011830577737683452929137522905921283232843949180002867458595052349133311680439564364951135393844815667608314819776754378314562417543662337941175517682448923951780754582981391162879580184218512833762251082756301137070557631766950510791899826602764448381672556267092725161036425053377950877935731116226382199789983081590622798762588795259591830024850214217425597012179682934634772410501717643958416924660693527923105106855314263396814756225421236272298806174155561948157082766690185418926732676715745927969092885785499334783120982650274087066293886594154618485376749168762559886741963986676831160521050189358669627255483250632514433837674465973085937407185629095999586331074411109039681996366062840853898368043782072736070001575281186268351668045469981919970788534286735164053832204948348513982923245043439959043309116526490652554895824471536263123792588344264921729223767499164303692483414376497099721853119397463807324628762832165195168839623568349759346731006885246147364548131653066600493496286217815231853885321732244836750925133354378179280455883598060705923135543088657880169334688855993564638006993725544441354953996873601189272244126563285864850245214408956877506935662612141939172725278850429757328329009479782209358008469267105432704808544551074051243832030446355649870658424857217910021937307479136552132061147579334842736124619598042850914135985083736840338829424387733694954107993265604511373225037338092611210623004216298676371974217319652650329739572664934907987404448906925406042438028021291475802398525693084123356043399314994279109251510619982611063465651941865753858974805838008003181570412355231077931106644314283384226510068046982829090343262085020339553921005125707322998815455114387973681231338198810670740427849750379472944878117190242691066432764986334569935206372169241357350654017529783843835667980628901011691086484089131945541358846242944353135804216510658828746882174657741506350289204286906287108205979963511194666775320522496474162047856159147864131563014350815752525073156110887035442330317867057114620786027543938669374321514358362340952630141742425680043264537605007357946951057516853454036530967588745994349806226186545092736235134522835088829097434779899289013750601816421527091344475247101057630830345663647231785073279483433254155730488321034854575958479558237278792283357877721975919492862322747096305823086160430162633258069023610879073563670233452506822293936578310668331043131294435707008313694580532845854407137326585335458538234110721539815688435000651356235932193148703540361173499535421419964067362346798861859012113689476541812419741554864154790249094091914323888578635631149954247515432704133266730811160468825498069039976473365063617139190967928953165007979982453777166247559942976116762428825066678988453109495140397341558660281560719022381387594016512602368897593316915589159900457471286902296852369815848834767440923027275100049345552644127974635941750074856096334699097070760755344614908768212226692960526297254041836691845351921744245712291728730220016469739432139748148329549011087291059473348692038279683136981456100118405879288407598346434302999842120657271370652872387577602077348098703330195998883420256157793954475881322508287379739480833008403606601995878093557843780258442511566306962676669552295453011840981891554632439146970636466785608378040068024323563145526850477035883379991318692368283288736254493476934051102790563989760516730985286143695155242656739838596358064728000417520404208363928141772414497961326982136343901076138924505042972167583578482686693555510024012581043083709566181899766637950034258165816739069204181415562571205386673932065478264746562294714416272561129496211418409114645662998210768262531649015949064505431287411619207869483257122572413534193684046730174390427834332081320336238999890272416627825066158723418675478326187870107580539890590391921975829232944844214885819345069544707010900219142140358145383231790715630709971914214410108370355333990678781366802612407909658847785194754002255926763848200247682054017762985772439678717909661649282645881090879989020545023525359479842127024961952491005449197443295376587843055223276812760398608647806985550082426730975049039652872839005661620078599391540798604610158242047602393701926646721496393036529439489495866923588916229315348441084754551754607308218646499436553464929687942787309674031537336342857057785363878103483727475710099608901166617116197870028261787675845083528107115893437424512984259250572327705436629638977209789031731494698088092947415171882637037828621428597468479556444224880769281461930955290775850834202463500397733773929021124256656394613696365567968731511637860180807313185678870428801401436703472684455354410405116161878369183478905688127526023476449315401266449645104179282038370835845748083043411776045019817087660078626074566818300172784611035202199810707917107883503820473654607646817651187559598325220920878456291274092898140044049548710339462004651194817433022309770872547367028344494918600874099575803590976566089660816640787453281965082081695942490325004826760640295307470484621200682579134124201636110359720274620009910154127118172873156395747024952788183633246989412368440415951387204917342128114443167858922380908625122107953511608299286194250362203012765065827191517076627464378001849369676057263973598218790199060675266535340468862970242998112999397620570510353207011285740552064861344286743390217635613725217156025846604203494418673717943387761169757672913018129067369775724165625816610165088717029837266627959868358016750668233827258551854302116390390101994719276473925600645655809312241843144153019131229473011399165032733524203940667375123823770613774573258754818385326007374312476027161215491525466699317649059885135281701703220132804737789874370599447149991634156738254943571616655359124166994312442424027957508650158099372201474610561881473360692195611380649959960445938758771540484231974580641846810722572912495517679772033752880691164838706303888950418526526821729949121014198257651560709710907437610607205034617713144437052145081099776317061686115647397483259039486895021603595456051990098547124369087479135288019618776284636217134089280068792688209025589531155071423516844797131492408718966778886357250832977639693395991806848070358134287650668321995248102745992481125200160792415499503335431588850699930407306167039636093950055935491557868957955692457225054119526937194094226016863229298376132548678257297346014503324873544660211818768945724517504615554933578039455751547798737233003808179962588541857770913564431149326300402543893144176936558596289510084357402057857434103092087902830714370586174631552608953930617386615349496250907008572062987556039633244356536480021987404296129786518962641259749451365584023471956643104175057150454854019292808240187481645001588075922691555210207246831507729989302596668775098636691161801065647039625745378924461184202386895373167932728899592227250171552445532200289752178872150880885547822226656434196391880781012748756150871837480263146819816186704293462652426141601733519070670034298907615074011697666227856277127810415652620896204598608674738679409978399251203182411719265387159116027387805979170713736440320844574659353423165391611462641605971650959475511862232029839925166120912639259214400711128225986727707275766630161047069874101596217438959938302824811210833853572941595837898738560008049578650463710114207777874136720608153456684732445418223206422872503804507220386964021670238842504081099055804104659791969915901883081902242054359972116671638672106240582533009769138956420597865523869381338460619149675016145087630946478253056386279609986751459094386747030000250693004636840558674222796831725799895048104967585300808343011819095992965942249612776369847664935953882699569979961567691984393979680856970557729129500030638665460809305805182046193740498146907580958580344808826275692025265203898793042856111988754997418200850450038221180577985298723332202182125588690691237882085049719154365431077955585807861327374933502124705379722527837924195496535182024132101083999494222761868366737413076010913009924055986272027295239782062655458931665497372818899878816873140245465908535093784154293528597814196100386537043997784890074807036289703681968718217400067975955103739259984085405872084701253138855035175487740889973944944504525924259243337542048091269021360458401207870492670321652323262449039509328770622826947745140209437938438287715361845000285933111556597189269126732083735643983701128181628550522735775597010124268642268443019617265610669958826490392561248963333334882807900473146260272991168322713197339343875833318244196348123333972818649962186511704621192733637647476104608758081750943758486161665005125281778732188642340756527153777141925233280993362814802613216207157996145271203428254010629683676995594343696224136243709474809470421620416993405362144064787021734665037499197700109299001089425776517980746184085785381930612170488888366117549564365388038267931282967336399891983460769460854529602460880986494094713900192347050152912433348343317213817612837041599789279487186608967234227169909863275450077825262787145995678235371424134589639322911395443017173602862492924130476212580363293478226897884317299582475109228556848638430321017809880057768841893556196081601772054553772967201852540303968740439715275151386578944190307445793897080716888643965753680252352842695716017607230089478622870942680178448051752499343160173572881534867632980239051644941883521718904587036937800518890447589037346424705277457464584134530406642130985926580672896251671650052765738694386580150031461360364653260024212929412745068255763188248907718982997436496183242185498107008669001788654012425649430342059158540980752566841004769926331958763633887269491162648746589978784252274292354667905598962103964500326673543253015665385900729173945479483736143491897617622594369203175349680528435416980294858565431667114884876402162970518215907038161437012590126978548977134454186628224520034490884564780034064616516021144276791775024526202081365738111556880107557765174966104048878111645474591062241524659235415919303026836816354391450605522995002413531743650936096214278860637605762472957709493548127718626941330004961031083261986522606608514415881575891082483287241843350639865950168123104164832232377843358027323518693374323969989452114988030183707239435546284333354308682954584575555477641694876819161191003833881610737921556736168679931380559139509121252221872246325974810417168536362018065588756153763477404513562291263918108780025110709454427084825301792432413772111214834471947301449983030690831908538541914493298695646498365842981547430001196078290453098928830768039508603845970315831558693511229021976528571928858314524140292470035469892299148806730018334119083059716841560567255052535766762835153966808849260541037755391312712123159345208400840056121977038682678069327530334305902436244829571556277341566360964595487810297449581808187750348400818012867153553227417860186024366970697865601080594623062143436373441457902383134260557334499037900215837950515064480329753708872772608670307844263492362669886485991445504509273089265312155981156278834957089939406489807100546035778823936707712775779655215072695427590829346863019505709443018261357864961219114526963853557062363523590165950386862662379460637347660543018434426549340028132137870407601848853001410912331291419036214147161098626936112760760008068464695700310574847843370053239981435670568155658767076097439085988567438634078068880039329693089395423244717025090003832797902854043552688112141372809004029149690001199782813462793916586649270554727479732488467262964488633786688895982651648501825045062330854635273062294906317112732845077421625648607087948406299168079673303387475088638061555794594503398833460351418926721842960722930006695791663328457566100565711245550236120756434472169497741733583437393883381072251306599790751907693869007815989487085000077117261219260878543922082223670952625563898586169255195656384371557931640938130606553563281835962313522403333694463062815722795806950733963523766445690456287696442201991036194675686657168978376545039892432969933920049322870784004279024825449394113975558872394368777683746796359624759300739346046352173705919069165484021732480994716615465389133508342877466386895312929648784312738563314149826855118403813736041851465251019959205082400216673907118409252065128400109904939210527182263418673512430232873490724405749375796915286403886581452589459522531942514722310931886971038496333307046106503792690425054488424178541458200464983382160122168320898553775440047779194045624638477597277151312453887225933788029458118098287280735912811321044139099879034023187583572779001914714785512621512137530904280365877815921263979704174460221489391854879303434920390264311960349562804418130765727954925481290899116533232967594834600224541537192744931919134069008543621145630158871830439232230271515424433354610427498665814493623224368371809823976568917009710971481599515743079222296860543856261579015538689723403027798774100386691858045527430665451083825340443287468551899104195878610000280451685923169642881384455388082383804541423033100848954167862800486901742597215992321642716457845258023477169707825503432829196020175274379552933934508158000797015509407929558680705980790300665196387474880658229263241334511644142698723902921263317934074841857655876609187946881467988874994274090342898639937135750770218678237748506288504559559035798583538733306906814765070417376374581249597387140733903751252553159735627295697369263671361307955845301714317646876517151252912706885078487916299204189261969529132373809626812310851241161466143878662018498804698560853779762123313901226976782437475282527207273462974588757601547901263392313481038727668165906587421778403331790779898135664327473324153325610987247718143386210181217061601359194407629889765835111290027682040377941248400660660744535713442945091473855411072133078618937947318215825775943196649507064659545880585765891036415940135465760128493214250501314954650442949476397490261761074203912645787377271723528420162362064827972250374413813330685215202171429061645252607241483657278139867284828816791080401429263068341366898282621820014703988658935710807258197552530256418183516070082544642852439223381230820645140050020504534911688317969665575439159921590315253307216109717930848960060687482654530723564591918030574736781744042442724706598043452763042136373649342850912305752660770719035819442395165853925539112538550036955642948872005473466471918493193944793979095418213228423922234562572574136611595503073505211019349867026304423934332109321403996620412921591204031817594560035466537765903644962882808174058090845355640002860070396692565156700020129533563856052137315663742504006942730948726556801595877988620519638898330544367178262812409161698486095281880045280650084599946113324167918614546345893064243749936002551913522829852114739815159999398763241418283007750592493268553179862854338418030472137307022904352363636221385645986723919714294555185209242643911758369087626416244044942327154909283320071386282099893045965411554531757292642014793917991400070842260349246987585950528733231813679337959035152590054421500711732320161578457288478825887954274718943030834207121019369090563558214052611547457628489865660586181989201683922313519040018927673174564899832533676714211347020706281453896655952295451727221328424623511957230519194880395453621626453465113555041505987757799250418960503212458575897685741654221020291205418552965540701031260829896319174574248377243691277645689770918395417708957990127884753631696796431404665769234156514377326815470432380429856035460420769233409672115703496403118679429676838526745208071407743656536433913370951347854234369847783946344294589177912352899812315500755981522156055057900884886977111025257568816614994952930521913857997605553541442921524169709462993634742751202995289234096969642901546425193192271593015600121072729165011118753228617641542265857822748866970693942047244378431493810198588831240928765456006748454668378284969556473280901269941488620392108173977200123637281648828397897962643162390423161572452600243324545178018844122156880581239461065987306104994009480882190739139455175834617177691065241053307575138524705567612844199750574805817204199713804784721675491332145265329454635995256777352278762897535071770739351252632395235057198804652858003566150900879934190527363787827323933073877251544257679897545710496430554937157261168172786435111573292556766928449552122021651974342053008917495793486939182346527060535947535088675723018475967421073669938919028324697334103456947738349323019249031942360858488480575786451511800516183082642230449110295454232637634417821603210434789454252268471707470409002902092186607793667701158624119655944580210543344129581576096445233400145720476078166919304979043048986375685146677859822677042110435460289906439530530681802428094544912044522735103091460163466466497953931907275169408586047814251361283334959345720467346264379622152984507252508933471786486681958818477253244858983795918538799152432207765199653106193513079052215910259766473965538409356694222721249677135444318776433162407081418538387495288492294651610254826692525794945855605841691660636683508298971088302015787625532659660317895897218552665921966830690525592938971878655753109523816164622198434162334590447869739958157790579829192350368825776877535774035810967036998945483558043081338036674848089536161895337668581388208979717279046104923318592395998206279330814527308268718855233298383700272215286104285613705085839364662536118601032042759101432068929891731446999787997089627863776761463369558259330919377053346202887433497053100612731604681463367453967992231470009133042446761032750777584470683795124881597762631064966491915140575951529928944531342062245616383356053264378683226296599432200664582151933445191885780349004814788132776886022224250061910217270532128977793158184836945358107760375774642285279435833222454287555679712060020392476096588782145919919011796324670613305040074099255325141322931724511353177952453525296422137360829233828045049304869033477584389525591743908671336061431422282715012659907290279861094939697676906122883525348897693011776235588072146420002385076350956866728274314093689013960052844908918735957305563287703960851549668916251189284204705199871375365334294677346579592999314269086520274395978488947224229590089189205995883019797939786165455905792291541196892711229439372405150200928034901234925797633303266034404600362978599416900067021874143228323896384572982514428157932278289548973836716803984076298234796093772902142787383901459133285972244933575464229038160850392712491482776624797065289719800870504162059258588100322960010149355050559528526413241524965145279490430292370339687704691673180987176237586145764579329451838685435240742786414165780884564225548486742968011060980419224466921053767191801196660916940688049609470033848490528297561148951896564010775145198456171061651984353119200183595405938502052408351768516152834380244270848795406830364219422665870505153528114686728465662477991125308518285372112406025972049784468468803104940511916094983674342798105403550529598073311274155718472425259506238744602869774081114321009858131353021271726806346459322130444931397766545613344445714235043967393703345125747904680057783403746002497442789396932203337998844577290061582277748121350783184474922444208809445217710701107837202340476199084783966924564783986975818520964541442126954556658837269970564128990273736423800574689755535016959822211392385020598153552858813608944129428421958490454621803352611100732303578553543984346224839343673070990948111783034150696810768094772950953661679979081059957344258274222889430955857825324259611293940583532637460678032465146283312989989058179197011315862923768038143338632416565767129327788892361152382388483621959577183736433038665834674996371018769867408592759871250364209317533361474158309770824449174161524373466281590221251340644420810085080109439401337075764190361426583879809969891724297554952585241648291038862173001092002328471159767976592807732882119525666894594895817048665963394931455965344335128646766336425048003493207221773352552676749005141023770151185472718730659701375781789449875602070125385472821491843347461884356214744745554625274943011480310620049771517594702782815560766412655408500969391347045286938797214622206554569002893163949939716007979953238805990360517524519753002726301865627020753673808245605061454398114450818593545137692825593528301902074253208464209002416623805855980544510918392252905499159107212065107471043188040650987131242280742567590530785112556364383618217945216554984766533801381919097250416232612445780338522227215291156573991243076863828524604101099766731009178998976140342427424603275431027286289441952509129364021658954736806792154089121886237067039764200347898632928150257622871493868276485668735265314461309013147172591175193054786005873239422164369814967063395308669924298295528297564850579524162173836140676493556564825285095668975928930206492617681499759812578035519156525131698754243159410620494026255015771055653322849004044269371353244808976124005167693113294109634900181862221656627967579358375870113867553533167250647620023245167518260775316529327385413335900518529704700009874644692962392737422695564767881175123094802848243231018092822340556003760571696974939931495247541272780374110132840211183204431685685318029834722407612636832886078354129524186645701372615850198006465622262481993789884002426599569610356010394712860682860795899679424426976651644980191818736303324249050724097747884884952635136446095343926892266063359711812179164225780436462994372065803328624324928332025790765693989990291463474358309120426623745309098016326592615637426199827561008048126861345922198095720589355637967251314301149740521822803315428472760316826588850208691486641447917806336229060962561147961505893868257194145673232048939527054606161324517321967719284265132353043567721034069532425249128697992980104870363781435268744600191083454173224744884551075094472377543824558552980438483484285811425774994607258505388786956288909301238927182844146720438360479936354635691331008997735928492318673684419567339922855223774086544887325316773800541331566047892431742172861121720784977655808804202918666386694158254743928004242675384294023891649916524079339310156210449390580644633800931260256567403558428343671337708496354131002766343445322802929984184593756847038228079054105530762913834858944188893689875736510001959594809753855895449987713993658946990758403790834225333273281695033671186741885557245778259808338491233131775465802356996513050071562331790123189113392751426966432420227980909705800375127340174232161256137269311672093461341031480883760593134561865076936277059565542542838309565637900620648908348906520287269046688293009166009507969812287888269693085658846348462815191992604538983341581716559803483831952508750119758341281372563941540943023371562213134071667394665650999255623421883364744972951796182256057794360042556060417468113284411204848977158484965385979154522373361262527479820654680429717130276554320641799040191329721508698812105008932969950232989764398825438013972349822970363944827980328020585460578032337182034783674771209356643036329056049154405462177547121277256802823556762791222200212448568412694697437943802578251205438407262574540549524735407269312524372054807977818972520038577426574129720188095176503319691642331466221547793540549575396394349133095254414064422286478716676304349783013782191416788924947910885724185410988226767626130273997517755010590878897231085402726452989860168900489432978209593416632403613203403850451290974866404138107260029528602058202427184097625279798728068303767598849159773493947893835047757683936327394012035467337572706264146384520817076552972548827061069817883944343848594223678846522900534039755557313223109217334467310901447545952681278983142409733595244571392562726057673687261388624837152842338057918674402050401137787595693146393071198904598041479371765063239119204106376134773089698910118652108891902015531483916212832943587238556405015241664789586123380995785704449685067600757226112326529062250363513217060805469300950188363457454663276980345116810376917371038550629009729354396820983368492007101043106875860813888920963187377777691495799977717394552294227444116584895212123936958504319313221678324839362943129450890366011045689065176248984031150760740702513190787461969277636191402601370113375820097390765685871717609533702749708112116931732465096514939556351585012024848603370386870777770370918922349894595459570819173619706086859298359034366417008577845621880201862073754542393067822706217093054333793575987848512010212187661961009614741426795992679371327829254550918339405795874038050281450700862058998091236828471619049413037520147602041105223862246229134401462843601458161267218646338260748345020616626826124350961378760231788216164967898569269557598668452125081734513676952251669101726593640234446131241727763754715686978862586238259602846169711559714684080086818567752688064181790688759370531657140386846133580973533731685664743381996536029118332810308000270593107525298337973313738031261833120718614191939354081743378101205081488637143085628421525600404325393770184366247843208610357161799337061210972213805676463711614033416476365942551973568576926634841747543007223320136753978418039017832042233212519854510360378885057641558058415871992900558119783145502189021524093720357995930816619817081081028333254122098243567699817277558203576597854455960216148279050279823317655334289305144034572054594679644860673766681383198096719873898753604390613368823731745842000981879887179656241050576801649933537983966560747264547403242927572434821074659673557975964977779936884914837452397847887378145759690363534973147547655879223525183152458288050529263487577781411444481964530174877313645311278662272292121444102362462877356287647105744316913895416870937385130975279887692156608672069874165360560355538177094158283452187140865480070667252241480781137986896743186554180928994860656159177554637776600564514254500837525214942978451304493784586903026267166023091348725462921542414760550579266864617868465020404946399075172205084992477080538725406040252471194344816756734973707687485962404497606437588589867175619680644794416427584183325878898953897638727767502172492358922322527639433399075456891707480142056705726186667764061428112280934542577827427972895669315154459098479087742195348939916307036620170588268764133585706374675743886982834470358942459240217840227342753412081622012564495342264080699249750759958357002123384503212463799601903383818671928194661486640268747863064671991960995657440576368704873878041869735614299871029535899034876576119541483997554435981744892904528639978210595016337670650638902525716425403089643497468381308673556550710668437219818929261108729224049389550403267623686891633915942226051688952545909870033231776466055969325286822941689765823403235057227370436010751650877798603339033271952514342278788835126562600976469703978375407915275942360795048545146998697428936491495760488122055673962238517472825667760268003148974220276986292981848530055655762361390678204436599701621106393188679304475536860891823486028696394134843129756735192859357117057177278384865835843352169545546064189142003844628569114082112395536377139905666594791619842327948996245889367664967211472361126603272428944204919239203731644231833320759741277870472938956377585869572162434225155981399527568336876036576529816662108232048539993294004925848762165563183168829230616848918789678842307024059120823214630915250919814384261381935998250775678301381882338269228049350889007411717231830729419068537267958658365312161012074200290317990035426595751177697480236700370989955980054315003440612583955697675601005765934523696093836286122511423997715888058661791820561111390267924932722049634537134011480724847001782282704197160562966890329869837096697620864622885171927920147324593444588542907135809568710759809964383416410610183364258795055360580890787464495219613904390461870665225422286887960590980795222863402374110696552287914080261113485512472203413036961982868136983178715777266056540062455771697626869684685963047890754905609918262390810177836683916363988639819189726512276743554813476420445049957347876768225999759080522895502815373467160349430903483478764319832769335134540605442225368583769955908571064108955001990520825707000537444447593443528626930113016175563279932861321742657647920995832747575817672420115431569564338065168450374377484111130735461610539000554031682549244204457533317210068159627489973537209791744042036154918634008998097101467907909595651642614172382985570104479196908182742150436936575347295490729947534100305313312357050685708727402520977531502703443939680626064547479353009086998137655396240910662842903131313088818567325483523862944582338869865052517687499403092420521752938530876338201339985404695092075877996840472025995033263626596894685219156922944473643162417377200989320161625412398127003738792602230115059582290518388831649834545684545569889540720008526901048964170889796803891990693766974103834968298507155551139213512190586446515585481253286259884400724547651515106000336928580537666592943057508458208693098162926792996589679018834568068590587795538648408311647142301535246783579837517839177500016308161996434135468811019327037903217405888385257413123695508551156812087512267728935827859796295197640783370373622202577033962046183210383720114580593580541899284926835587379482766719963205471187707127703498217464988573296099600382426928755146660910896679062016268183427186649061554255003511814017957935715716571515178759481543761858738840828194088089217784131581679496065974430759686369127980992212797699056832189006099900645635327800670666620556218584145290874606603255735510238610001302063147671434677431419608378171754247872117412995946287461005088860279471912573532700227396105046447794758371714118053938889578792229366874319773959210626907363741874816580248229365275314960858041777056645141185502547758329993371020809158718759147413855655352387688626370238594114270216041900931016122744171047999743382707008852341770840260100568512076065245504494939423039108640433435119309038427728550188974072918191388584507556584492515299055864682609538891511438617078639128155539262817090473254727804911310536380531424567842674219435625480358976272750471021203851198242894387166912193992118218347141146251405248772219437155929130216885334250101387241814410038393293245549731702675955274924412086226391014848010142265802678528639852926703092876471061633613451764942885010389849661517898385530551954586566258631044383215037716774564586190007506451778487458664691045868637672862401666374280029212822415878300295092735017279785256050828854392081783339617794248558404688858645740767437843345757920703648504655108330451580837279074196039314128327890075240569631684459416670944607353557063977934427081355528213811475753365294938338223218464952614278149117395923647574777046393301549575760193283619359545728768738445365052814472466791088170749726244465595003336831377041063810215131371868497219535469654521952599121814838916433155438688967219816929609618627504096982840437214181561257730975136387821071477872948658235774427809370690776985405759154672078849997106295241695661409455693829366364205371014853624973168233694595082147339503795195635593560077028871990110514199865899716396865966197422017813998406471387339297827665069583877037530324018962322358326463883087754456679277932975212406558291847846691119516022725848008763621625004029200639950835855109753659491111299198801702151438417163449497810653064431790686063321148522586501462571323153866303571592329162965889483577051821532656261790026908704304936648268183723918263161950213556686240021540699267988700315507612780352898721334003874275611638268211497215420145919076809846126900897002239420276886024648617333023553065323463357557259878701707304685636327318195995435999926050788611270351272305575412984522700918525093382170427600334886456560722857949808360180660245758895621346760269733671740922726873343159772635509452880455841380913188383740288651059228572011347628403110598062290492091281265210056776390715270363855948497249575525258785507785473780802327112523582698541011655203840473227400968699854167060365810581850595847542487551375670334116104031442466158439274305660799961753925343193190377390753560318526613243812764695724479320221784307513697295393113910576527491602813797136661106960914075051947081181601067646077062914477618306996715993391077171934005977396895962512752754824343843320490938554394340650240877993561019224556808536363477496403100090087571951382331923153135229196730981119662374225477180411543528612858088223072810456866045858242769261694488034749368602366871687136343317501789658826212089777807451887095800304854697390633983430839222568333604331972362175135179672989100705223701401786884061847272791133091471059014227658927831474188558542640038055938962499166312922480958975658377150173652116088568745312804720944858706061244472809813136165172626908778974170305478696482424472354062363630046307760571379590021043115256785994491986205696845777478346509747322085954860251169192148371708540574463124377514870255013120657038151471737134142852958278741483238887099553042836716214661586359173337114242604976781394199147843274829408992927498304669660288249753664998666749007949760185229034966239805317693881316021808994866428536780769614970487177267612639054638358146022536531640060441918737881634277404830045749748205106273501256049913731798325633021838301114405112374021600242794026608393244800781282304152992283956379692240834354919282464895409645748012626357588024299603173896534956181969852844441176219515433126176062101991518297154470040825637012207393468293995975133721534267836110292952955304343038170911522978893967796050044728557584143961689281051210745712830208522842102299708681696260518844242028056919165990765270374363578972427217504482037981187365989934795988912966946440593471873451921962248965515186156107373835060366435040444165558950842698268059770219792379859171930988098932555242164606231023698880114533068649631941485098218879660466242105088801027645972825859684678637169436510165956513089696033555064081703585291191309872712022851475002430736132674238639650187803662330716841718656834247830348944867487550268973498869533663666031660816083947193316090655377934557888061551469132272072808407252747548540654848711242248826932089603425076812833284017377311610514756210843783893749836990932050559174536505358910839381072611086343695058254875294712338703484668487001423201519160608611368617343626234556728067566022618849513116320127586602772204223250718623614420181510437822364041218566549938370817114989029167594438525031191968343504073807114301640517578823799060459721244241862315380639492669316857910153123338240246917466029433177218774367412579891103509427994913240542739686908161239389688460456340980938908291497329611047698621805908513688447731224534686322812524214275309741295849324381004045837942152644343924378070088059144433264363888954249234960053339870525985348684431990313141500057483403599948112037049907619632372441187016004924108500037575328351327271483584594132104927921239255105782947384466060138934514452864091867802295625634296289991232268916544857692202559802042073635584925702392120938216120675400850482981412246232482015637419418384790724578811331031854415626322914872561647963374080235917928222263907652177024132395409226349304633113875204199431727058992515615380625696289450633604427385941819792614562935300992041999183641177784719842029108947771054759101283170683532469768386610274992634147604145119963951787253979213789055485049469175581368139320504223603046487582414298245451577720804940707887940227069556535199625683405406167110385741369949174021635554362089453418145700056772338485282225763999542293532325188379374459122316965775118303762138478030355643048490952953012335910014324190450013632177020695584196980486646110553994680740467254020098151273428577447634290358161747384637039224755369286698955177449085473923279417768460956384852863115949100665872642782908892829465390179804664341972771225371091347669127603360704263631078313401897411039982111314700500319171775267627964322600932577125530891885404574046387009125253539817300356080985245745950217411596765474436958159901366420210252419291356624917520092510343037672332098139105736908720247710312155034163109673474002095457230833428413193814917831885338052133336461678952325367304097394903417474055563419713066048148301388852378442397715444466128239368308734018615237288491842140388261800131114452049863996408186952181958338939805808899158150305005365656730611688739569364512616591489394624053153231538171281225491358842741490041010947648598967937057678470734110087322914407466909879966245721729443868142911726528608711013393573865837337332268231273547849775017300227818155755402512434648099536411755147181021768437296115497696434874769207611545500430697919988901625276736172434841325446437636516147184897587453592354623149345797606147176603994226493293342045331652557118932954080168832354735474095402442404574802682950221427097502394901544666618322038523989057036856010988073033453591691177728409618776335206800916905744723087124162860405620682251795178438562729794474797112530949240376556657439425910291248592084107214811756716016128296531602043061040990832651142120221705048449079317016450942182849318603635910416013346439712390089802113324160957627911292509539222919018784320892429673415005468560019828196641275791719654221628330609097858085182580712167993673665601471319797734163178229729617917961123996740864321857187782030259222115017260017885996135485786726239379498372750852249265873893152398975683317668857075176347433997368904898106530081783888694541528576639865853394456715965075401386964734799777975473572377669764230863063982075241006522311340377914757301757394168519195263206041356637862589459131257740908451912623266634336510100156948482054495563748393481890182670612134458969874565172843565694114040839320035346218809893661702758711720772944925959057961368990787989628844591383811905388848354058164529148543536853770422150255898675223289216764072764920048741883203093543340617514100940192605051609042271525115224743737485619949651348835950019005989104289321168237380847466275242749210445408923420749361116002184888330249121252656001893371532082312572651838248045173506826699771365971762840928502555313052734150863345839336008036640056198855319406158260538591362544656447075158340786494490470649608630688266778359571534257594291826602483851698418485897730464395494085760298033343452726853055877781008632574045177017120242481846101994792944464144126879419871229742514005434107913470105789233880203072894915142589569452191108645976183683126778638078381697717209316134068965955650641628913235648009335354327382481404566089908314140873198434466840859347901046098105529737341684607285079750361811584705807351565938674061267343538220030662648372105161005782606878243136295779602714140629269125892211509096480134068541264539274288205295981844594779040952360630153642999622860603732295691655220021843798780826366775763704083683106094488024783664596732966857526869612373813516933933423028072633251997242721311790592657525531757435488821935616322567001564614788114850191294537161372737123135190587381993328278315096604615085023776967721092865230844275477915340317289404808210567047859687110290829879100904635472070774374411693348023801342412092617074654936319317709114734141961417646981755319571378728478435800154414532189424217010887102696177521935270698944267150536427960090076262565785856052409412998031602247918766769441810762428492733836328047354033035785583088354237538012538122703550135043337229131646816570338690812841316643542333423328399714288556281506030265143671667540642766818591355243144381316574761613013760661923243728622175192797877182538553734600754940775429552033292913706212076045275095134184276144136531433016377757595067468669942585842467393410385442878627660572514942105107656569048072445340270857057289223473568576107812335252367649796236648638897524183856882909291289877233794786363751013900282519618969663603172569014627998401532717979995417520165430924007570338870116140466347828106353106274118448943237751697132418001751283695562895098330419347601431888120440624463047622551625968936531714686388055377978598025108571791929615507553609658014497935382111622063257922856126883142757125287216312239791247025019650373239321055472212028182487534442622704569149004785782667601443146318868776853326429808361546329719843864132499433886615972747404590373896429270063579895508849304094442503375160578177608977990100609502178129345128918735358018777912036873654138141989634339533841758188401792196429807043365289370488394856449210005299353161547198414178337959657243343562771862020973230192277465920172442155519098661348116098556033120757741535839901970675352062382970546357732908160394341606083822263991335427707263595117222302455466302968608057715767340077183790953846423534239788434889550842260137011567625498141789908691693368683685291499713918828617818190006584951307868979344164559437900098582775121324662880793052658350250414857465348647878895922022139013940189458997318144836319921738519187053891100793739853337813446416909321344537461105137409242708738529949501453247987723412000071933638865960560345148743197123729983310551122434152234218470651032112302396312243535186339335967119515385756993587983106835034629800550288620484596195817388095373431854543013531056222232202567616655416831282495185228013876449852477076622644520155281512596337776030312867274791071227505085226932816807441019995755760913050828246306387430385932913984716745366370066167384315788167272906189230405348971681149352553935787092839946333975243168957085064556639395278605093228653591713678319203630437884904122729199266925102300027582207920542795292176463452707139159193789713663829530412266414802600482714051555730535795861981208170978221128986436897847034946181458954027812187391484116581490248376736040495305165849779270420219640511775075967077492002656734048479940686678312136749424576858915448019009436585655446352181508769068326479212706019068920527996993796301272628657627184685640229388833353043821140058940621023712823774759448937839811818207954123053449867440042293405551474939790482313994910810784875754118479723930744646969734692623274362454886968603204686389271044609753393478492800688583434244095618723007489800857057430996172127766433169267388621033510914630841241289813692741432496457044579026564730551474891373412762849289925816389102631174915682193941035305646853413899733083880268368206824570423410024444199609326078171670492441801916958368454725507261696920577135136939687330495810546413951896637276892877597819003808262012682632032513933476473104584654829241488458712091741582829641936045441292252855222580349712009495729718320265182338756101916679092924118702781421929734915830123637436333460871219697768361118763438924976786065352124849219223110653199830640656518857299616806709139569068115766467967953490937868873909237917368165566185221106076966758778575894195315809427791735983064925838575032200477126132897176071182439811982960609750580044996527705780132296356796464038855122229791084147890099656076248522676747077965037124521473394635650909144619144240944513517386574773421850709020113084872691546840507110816342620726643993957532826117754723239598455051921463658533078086658097077142078697761151887801233826276886485157950204771613164537140256452671538272948737540831262118542796632877618919684205862736607622885758927343482518553803593135675397427910674231899428204977029483406308059905898237167719143679199477307930930851031210776336695120820798279844645686959792898404144719913259700222704166944968687790211738306683149259317599554445173392121364047997981973976100035115185882221474670118354275497526361567658198923749399007214712338522602809917345410471844243069234867888582603490859875592997954282937785858647484402652893253158453482776568602526976002037607867652903856552042437853683785221685473159561300173104728231829315052786748479094347727979375382323763426072936477974433862311122676500488740558804579525498266449775379172771643883322811406366855788896481074875801072475486795258878662823691117142574557650802160605344376021806004191578372498931469959722453165359127461583325671786931880962381050498592422967063145954728421911931855034867614841573105101146319812274575359508154412416871336787622610249123546104136548988909823338664492777803731213147734597301765164801705987221414032376538737633547705817013561411438126084773769361120358485964323680204027738082735286976472464620490706436087266618184771709518806934621475169054776729247163826706357195915055357684760443188172231665701786992777723634304521202558749167924039220512467164994754447657711522111640497253863828809958964431660341349473544639367391126094623673591588129837004194727189482586731725091461970864841615129270635038201885625741203004620158064723922097928261861667919280623910342169556564618899170576950645680254474842215369924933585602292155784034911864509665864515923574944374791729827600480854571236228925828974076168261105263310130593110823875823063075385475208266328117127929055113902841915289960648454509579620942615130539705338762525456568593287165648256268284632320617544745204830994716596621484026274429665436420390540028647395781875145856957144470672008839531890088346806542667507332308710224158319242687288124913062042974796484952310588307161304235097584245849026785285944431857162314777599916501591359142690604989381755085661791401875330211346601906220359319142459406649227438047428959798858615208110354690348355004646087232709148458798841531942177993747669392422540018413811853488605937110840878817039370246577184328173844575697664938091143322052605260688053777571550532918839148986700370994461544754114537216845679040775710520080982954499902442972462469212791390876470218641138579358629481903070950748328032211600644407942157407034955337568541642083288095716953436380138828797079309089114522693767363722082222178948927155107167164377858393958953080350069091873357312599823490690838123687597411095759376165205781987946315769884983332101748164859225625213524652549086423137874720604478862764003391784701567442157677331134163553470649278311445737192694078214099932033011375071504021336758390846650119958777178900042004046344029483827723489718349545540718061078691114904869315458540535671363584692432097306133364359962323658404308391848668771260027491970535656881363768915919596040545901637231111291866432098052930221411174978054786896935172564299287773890492145449430933658487965271938352178018975016489108123424385686810628387675551795661397385114180101340995708870963763551287997140061584518704347639394975496083137406937436665917294359697280646019944921713354484771824648332648301108894543007680120886418500112987762539078049071333732689620884747915887141705871087686898545494018357097056971568544570059500237091802579482331004795744173639134524622500732305602966552993534229048044538797903329150344507494628535769839719823416433057918249619760579516636567509559228699093891479007070836189967485816356355679288548441353382430570385381398778422690957591641012848453448936143194869182932516074174860800284357803147317028723983575696417691871154832312585191675178225290626447832308515868884806862984639279800459737324091316525552850405011977390579008439132242936241790394115854313879793112432194238820605018152858084591012390765452341996816237801128953423425037480526415567319924712728301143846173815990124254873335345003390974167644156901842117114827642783086492242638440436189804766003550936369702372801698064839166399836077915771567581900057217066555319083595018736574242108380921711032109046143280308952259404039608958763145370658490431083901908324690934698495303993919911239604079300433888741399915252333327495491440375202520538922002661938614150892296168650646538852556251526905403338154730635180269956905905428716427263109205356721560885435839571302002210248629825640301254631892165875758412532065594343976610137750962377426364987782692642076208571028944969171829356102793216069199480410446002445652396487288873905159652174353653636032290914684467589741887333083856439287414069527282355068512718766891008777969973084821588451647808430600963069631779723913626989267930394529816531630795076911000906271475452373173808239384757639385427216550325364114627043929801138771132531052209120695500826565867823741719458992684917988489531493326427877825678005778378385418199659894192066946546558260532385055680983881660464761706713415664934663390016108864568564919291246159120095625901106558681550433245526755807001546081698721578944032029120594791528530655920212606277545404669666901798416386426969803298707555096715821019182282107414037296671592509261721758646831035982579126397641065603706153357636787408007457906168414972433821131014549189769190672336508277703311900064556626880397120269222203982047167822787996515336399135459080546998205279286425185160777079570568174628196584140412860978714039278590464821081668308786192403861506187172573243395128901279485977027157730261398594716266037424932673924727500767861913442275349677978786946234653821071089742647948664574882134792052634584225261499137317147277141857389784874854173091285917170962614895312669052343578272532390011404819071033271574220223005853552290934241734714205898578639446596599198062600539581635014122820666830390311104467066988692870445458082468751520841266906089254099677861851660010356992615820211412093128463487586526025196941033054151458603033664764516011700505265362019249056451238898722352567942942434939354511298087080354899921119868658751212896243917903499775355683251932919492866891182229241497551467576442730191689488841693820358365603370472991442965959537514185596963633378968870654085534710099512571298311381178352658688721045870082098388437068102473609664344511486075261187703214557801157967303094400270528578992526625670889196918118803544343301999188110779945923176326194926548946856443625459999356713053074448493955266771104130489450368324754099936701345181265148470874068123668082618921141074885850641655406684527667424172988983133604807416649603429031186697094919774980703012207046836421463464983393321790763582455852011076966736751319303068922349886817752969245851888318393628694307931602613333108949371731381496674863751363398069377932715981498334864722258725723640512259793793830270846224464728547486869445939399013928389019906068444974856828733238627719691557682756446400080866843685316703439277036459513810996652505125226856245576192161292846452433033380539030370303384748215095926692860308333001515468864519978646830081799239507929644599736070056683861431773259648588011285499836365701777933438707449440382282149663286791039802658696264892009503900299627505641417515139498883964437588518121230014818634350616771244225279788000178099914430996574700574791631454892887324900088388215312927016381050664265262872581339753615173797459358244110557897950289734624760801437563418016268761744238927467431296323061953374828115704823452830325404382978304793611936255519227118118753216143020801141252329292533657562351476573421729588506905770466422649737491324232802792119974669183838134366778906763693138658388380689340787796674831584338425234352344332862600627677157146085799499517574795829354162748896657954358932428327155465312294925736001937519496326563177243053833687794342000979541167603493540474091432946163226782813546243309546627489048983116111933302712036033019176776290307613302549477855429332719768426935948540237390255515611952565472245306875636738475176684440787314228250665480554226076077601745684777307686576183794903202719244541884200552386987481728153905017247605416906587729369462719983435711845926951120556683720956699299989468041492006940683846914055847149823837458156029738869313185732689874079489399518102215768408381844894008668279857056989466007998824927220302508630268663421560386722677991148435685295593166979402781185928571916083050782884099398296204176385923440341095712406946557334353193385070651921816475088632680250407140490210049868518220607184414780187611901956185068926003863772344262885705264409743983234724319009259684640255153761900472481119361390106499143499976876635358466732399128123410482823830064323573616587866616296208084863832904621921572794206177126276141108572387652268407893762506909392032456837269792375018323304781565955767036304533717765861584707978670184259034026893372460180802572587085638672155476139504773920320881089701557765553789043538685345327070062633923661259255319644648765558280303143316734050745841740691917716423828946001118761721533140845906977717069854150667775951898050386605016364113355754447170625601994214409265273614195858892991917030495419916109448682890990276541299404366379043656640483821681726507232185336544718367895082809084896149813376452658013776889130377002160545341678812841769806834546997912854789495625331667072738875113069510701864271136005752010034190929997001414073442039716964261207608611177253405178885709162308857443779137786432899916662306756792184194569054736811941884518876069916424561107695946094960975022690811178087715081764890192203840577858889473398226761079305457219234161694481355345123514706667826258544997105230594526390127876784130157170070453074672546935194437346420536415177346192135698686631618766041377944045591158859977250580672944211443088312580593181053684511332055141169948237433892726324516379833902517289663773960684104071712590329228128644684032526416061294289918078551304021632484222254267468518361195029766917434024751739723276917235579567810202872982711242380041656106922348934493479345211297594163592003794311104494541146099707481758467667354268637958717636232605286520131508724651777699940295806332981061793852006700789042452971085316191628987583075714798785530688890513122367142389968196627661857536110373659636504511645814893035122154284510713652938698949666250102145907896928806834242574131787628308990902465176898523698645506945780193856273448226647370305030904905723412171301965288209024487859733418299128798957400758950739037997092618921206495681714683089453870057848224727629211135510640428535216791910467096429089984033069534081697216957993432720447629317385558161888989866690097155980358529627435097557336906472408926141192928046553289413541719294146363225552899343689965470914656965462216181718004018694656916973471633458349562222192395070750515147297053903172092298768727437716381812377927053013935043770833310903455270473727833611421114766882416673889029244554579078480790776328818190175329559756189502621604335016667772155427656461285192545282503793875693726071538892280674559417728625097593438550450551106496134395958333145668145536358341646350263154043374425452125815259558161781835088037158744404858316681811623412826902276577532011881230830560784982689643873859109374422346315417102402476121860408349373092187212038542579766132239725332758667467411734524677724414190179130932540452582171516637240314455715588960857917834376251840277251879410142628715651098942461554689019329077736734411270236600017172879748278392520172996136169526270385992261620652129333919245402673246371659065494478239989041314152437514991751147642441119865741212669979613589678074660426854700171114640955652307450877150158701479279081083185276426395397671796847367252443320458817032732916032163175654192675659174812048517975695590161247669094875470949488087680344427694733277583372921954211335824830141665749320743294463335024038837511017977845502844669977809816044655430591021652278268091750460054462596270923453028793756220839310967790546775182612194716815266181417360070122685027530707545442166103237291211884675109909709054632465751921880278484931504667505565740589016220965107285304653850458844858845748326111705295363996332111171343833798725155524243748960493666899089995583852329344483964544938107499020893951064847041761903961443620365679686098587112115402862454261857744141094642116935311225666661217149042380394768611717924727240996816672001609237236444630023316984298941399072065181005969864640383616203107549659712352033139626384762167737470835351914377530002862449002025844643878885269447369763024917233277841214332480590906651909869953154442162040772638865709387344833931735073574667525874568802238219321061907068891492688871843816957479446385325817086847761803920169105185832237980111707355981082115180540132832993035494142532937529506271644954649987074131325530744243744752070855406446361037919407740467659272595664236609687520201784460275653565368672297380733420410924938365081661041485418183015607011114196677674093011001511337867428457891510835830935964923802500287247908696141737583716139527817384920140777493446293898037972540276267160499949925459800632388241038873280900338266675177309028287176572370239564679986501470493471422589808169121785992327493841720074479638767728184641421857467416507280655743187121249323354995270756459312198269068590556203495758566075570281886249647370874496030246066025972788346620614906598395116300226633577717378558591787345168818018205497365914085633861059226003819953950577497762567013831424278425971203291879960154434056430155477138878338817918634732813767703407881639851145335607815807043001657291593757541114288089106334787470382920702321019032343549957503573907601615857785461122422866979603486669020860775316658972907184533207527019635164195343534862111968410556662993916285676940063521035019944123094443544473258859083379834928345489154414011563349129153945676618102070257802409093206604852225946184867219788111575886722747725637089552402521765579349377721474704252423256107494865856020747147659053700403055745638749339563761945570925717470962797142172149369782428216695007435411994281581198904439954443434414328173988460496870982658866333200761025597627114077142567572154586738356076048259720119666711443130303007971842359026559022096303409560066374925200477799540372907745918996071299155837304835504193013878616288911913336114198169301153686981906048656597031211592123298205668352453817179447760797202254635413025825722284949985026969039720716549321055440538351934532167412942441012231925010225129785010831422015218440990988127998011634466746395397740282178395196618446230802495161741956197658685230808484100537638296465106661167688159120145999758911260862638700412418800695419311880793195682268170998328589419822225001473964493492279280941866388040737431979099668888328870320971217491487700706464025201551295802520137058946368840059241415504845108693172214332242235042071854977187586378529012077971871046505282610718544641489092237068546503692558884044273209963060810520093227388629276370411034163988740524226345448525762246222233666031487401666323607109623921604079071338904128078906290082215041128125443766258746628306887239358360177311058926175353733172012183258233618123501605258578405167426126135690015729004521928221041568073659785637989023614090780732687168028318396110990572392798152783781903944567203178910456683749751606720795135897790257023298386939623944875885827643090823749333301075764179018868055831741098564704597897465938540663594023256891498409302598225678944418088992422758574069795241581289493132080005383707119963521191060787576969978139900196160604657085142092529596510790757056443733932539853315723029117557200479628147322569897051506786748774524445586381223951091931885849304916007200741723988916609874953225308096298780188029446453569702462317466342134474613253086060783346243029633802764753589161858406962958388423748540855924681202665409308669467390013115374969399846328598962316907347647232257069837544555269031537842200667935981622740768739076997564087843429038026610833435564014634779693223071864787425764194712727178543173361004351203255672895553077802407763507341644776386890899687878236195795581621611439928782274555356291430790729672088091039526944871973681467539321278798526476321186280656305882005491215179997764853061928621534916298538585848055310078563328297822177404376548196845964606582387096126551316677962083261824976180218027766137354997932315210013604718710632483682757503515648022880279363953901719788293344932329855158085842719619124376105703727316392152193328251810340406976727649738579824773473638060885482649692148944940745601486789842645177958785815593287166895822416448977156752234727224465095280062881693282305656345296156538097222121181441180272567570076278601892001787826837303455580678183543756544504796672520499217316865048047131536519207857211022995009222575172105218544614348066410165186774287282827454496660078653326661576683389977216780424585478038594125369539108380858498037751096377596008967606125999940988285742987738074809715347994150785614533408117259765262095731333085903125346743076877163679921718292031521981133811237743864059858568756080842815696988710454498411136996271140427883225667354681822971758486598046055194721097962697526448308790603938247757873900677440218645385253159658178324840934892600182333560822549182327028265852173121981974957485230098681733589183139349286047335194638230990622773330442766935776824050036378760999856872748198659732989898504652733402326619504910408116029405302186112425485148872115771863994641647484545112372144753895093648749945023980600003199996941791211164821332381374048930764236963846818128611736941206594128216382656366827411078182002231183200518905625240210570602771359130057799666756719504282611390363284905310516436157129496603474496659976949631419336683630181184012982334829794686977175210358071253980406807680470931719018821034867569874870771488185387119445362086003387862294469877774483834124191157501200017029962121508106818553017275917523860956072887947988090018228645945875780844307287590977269623944816980798016219025137094314678876799808382248225616381097377908056397567554335906378778122472467360078686046660346749137851503448472356269568476558045809765307791774728438802337335462899316744493101117256751654228333496600916066188523229956372863597363504666696898236568779229034846039601708556164023389003117185399208061269765273420942501813927587706898350436106880137366748675773885292281024704794938343465598562872988023507538444404114479730108285520939004890539152654780166718070998532782166611449057312457528864439506760313475572742703084641043594161634555947079365872203351401283323327453202760204777886605200003017767787814480294117896579444686567016016863415239522465369306394966837497825376609081445524679521544026899876813207847841167025163913977462993902052357689848453103919364779023399020712787130048298450541615591506998871907066611608825158876622249841075079028290681113055190512388598619903445155263962726118614736214717616842288474337787656926680053577950483080824140429117006143558315373616369568767103887100829571940016301799064643440729440427473218127676376808594523506624164832384960278448683131409413087100206848515802570539686115252974377783090133835295494794953316722144120727268889551231500285633474158707449237880403399825934103300606820964922673340270322154302287880826866753030600721321334782613111665642297768530609214535212684211339457023085619817202090285412329123879513585794549181861413941560147083012253063362853897520524454810546973494940680689446777226411454838711737933435115334755454198328382483121090310301608183527263292209271804074028167312886184600916095918723196530558145871348289092339572510861213757879158779244119734521933206946854190369949884240542577516885676350575486649024514694656408835724624154471130771514620488399863265100104496526469279370728813292268850435095067219441114022038437219089701619637115909335948271288764749890759067471397333845791428779779495830506797035744385848776557663050390801291737638083348420954999201922587747928840532489517403643152186899627919803201708751129600392656420893550615948717910965641730003818733648205380377770430246477260665245175422904864435064525958588085810409954916068207347579118674684815165286651684161562760166123439298635834457830150210332765777153227380888336354235798759027030714276166761591679784344363367960408359256387219281202810489566696000451221702632312083043701691157716296157081492956540580350319472941594622403736690869319619855326476003831180591188123016997903087284864975186167024810301054556395842549973209093174947521147223320911916163162820284797899546974820128574726286567546440167226992585905886372481462567083199351073008631337753090631765090463915581310370236703570169368161989056230424311244284220375385261832838127812786907860858360474834890270944468409815917781666019648894596509637197382324125070431697558286964299925697961622216544299971634988946359402097047072362579351582933612056522173073099068568846912547232460514639205872861508157591107252666370626081593658718414060374032478308543204640964513554712833896211067265042588237904195311035893861075955278840464158413252912806250738839097741871013338903192987065054574170326971426898592130909484998462081850179115503227471104707888710508624421709010780737847946951638466775236552858533468550163795140468674698654285462670094299889143800840781451856793199811673203007902225118828837498151232165900545570445043714618864892639156119732850599893148456582058046207324706844235211858523888016202257140567785104411832247709211144066730102794258817077263021157954438191680346982745619125225879616099146858800878276951566593363770705960441081507968493049159576736207851338856095884089813327279252124247575754735419047767911980863882263407796524469120174003230219529016027908122260964331474975902892381189958699944466761425068189612951372882003408887277530054278723632614342659342362465303609769045805506754266066416399252761316538764690709452353605235481507693685108157294724834859479499838550718172223224869258198452084556281746228874652620201709354633402571531055801532192043548262334120773143207434335757544705239420737711453780151112511574713229325046657578917940752597883724668348708090185089614576108547490822937646154441937222137120366938477098435741813990048906109621182258828117882562148856874718427007592356980874222524390826808267917430928698511404758043045691655409170047912867214470511149979151788540847686449491210789937187961961670304782467629036945140781491172675478900533857180922426841940238258649613105183772396028322465418818593132328332236543945831705125078186040709087315792774892632717607811913808704238158113781587022096470073667021913102670656454416665565784398265964082619561319433078925333501965643186406396714528625030145257663779053843350847466539762092723297460569663882351386536805125206106385176163929540011217527721288568210265365047339686143737290431040756691719479504496861523100863930111923567156089397071578435028269833334150519183594535817049051891575114029112668534931243048676886803962339177155259779486687276346031554960173979817505489772381060973172416628316270069729939138217714402347109750320618641392657944477769225320498605836479637607091419684839454107215561345144246825661429604732359156646676238239063360371335415645672131187158890907959925999040549713436187957467626327378799345483422800025239220021893779441734047741365568448108422014189881736892387335591780457619387079314764604337241284851367901231869229220795037852908209754924133000054386637951028309722858301309357523142191295012620026034570981483950841763898570498715991809445544449801637497782638665577010519564717293493408344385499099093072459128102319906932839360249464589950686450353705015523036931559092749275598564382077976199323780401326992221023869353092042021759343118266486971646401270019536146128237976821112141687647457397590802284186647242824778859388083979267815719022617685767106611096516960992755068066112330181025231478583445158121833434568419110787185546739170732938745140174719540580592222403050460878567743251729863223545106040367690350885770361993486210279262548517258924458212767505281782374408709862606962521582114056053966300771704096121857248858538874058854855381021933569553151110745796950219257175497079557172158740709928660600878817660233741291465595623071246144457526238062655798893239629720448975968827519166533045872376016905743318644406855282535680387900256252257435502974028474857278043732813235782569532259857588891139330072242366918836758200130543060942181911171931346098967551923381157536872713542666572293072393914724586602466449349388881141935200602193505291636365756896403655983716319385364171237829913545351437864204761517079316089450170587802540594578510292388880871860288813601047726436533919603611703674118179747036604421353478894293012079521143193160276067728555673923900477567323555162465215621781981859852879800178464473443119546756764102736091225624970372935867056875522323503920916315614082373140063548175375516916972688876570946475902810596831116807115353223923896029405660860523093583251005766043130666292827698945417886182385685678310548181889258262451167678955412204643966418519371912566421209606587533287060763491976274394720348002026612958486079298908701845276119769192081419579890740364236623361824016508512208903840570195244591646858193714832499195446690721639292870199585222709362041590995730612988260361416190883934485370789088042285812460151069910992069952824311062860854519841295617910522583013266740839916121881442094765653704366817718465642555091563061856607183914935708929517203268982952876111790398000991400856330138024179583869137145403027851562015644902265612932434514108120239353021752364774057401878831767180836780050020920572012749077290652872254661120338281729183603262515945303188286658974749241110148935461579973700731501779793397221915729277236161444013952655338561691451320280529940506050529586839160471173030129787334366010057407955020651858447726862806955662403323580250734277051819539423178786384005477020066147289283552645960038951072392947730942977740923118410534070021126070905336659641017930847625159516622708106767662851788195935170797489179156966528956870405615268279935117746449977890995185746505369820092674035546030392161361800234757721993817667894054035856844314209851465999504339946520512922137282380788481074714449281298728134196941707398165972027691587011117303025713895720745905239860818814013540425222690554346414102797232814421466625580334966890461509707210178003733518277022826345016469754268576140020984174590896351007722969133817100039359505057533505342325477678317445712485858221532916782753375003160758332640614477131769302580113674683939168569090625934388050407097245305174797997023518810853991081610027296953765581369017294945732212844780703287059979447705222739978269441656049785790333175484273467408065702055002001943259680447568338608954818438951205838726480360826415250563642495563575713814280721950846846223529595690872981210304394911812083455723149436588777738084618898438288818907987486039212755295276831212003263544706582972426810159950265580073786224940966196534541227248689463355842639532021060848968027187341405969646155188862085505615785507477451656418028583210656877441672118925216097913778793087749235409950535620901342458265824484616274457079628373315102390915856439082442184750144488705473644867318622470154139720454178040576333417177579591048236100738317143222149100016765121574531626309508974437331362850243843089998911838281735719445683451785667260481391712327970718538948371661357780068581549036381352973035666959911567574644069183773462752166217088444668597463282939802227092272921321155052243226502598639522756218967032770823525837690402224088002250715437355934724541424078521137350928141265199652671376398310602901535511906514778049638205452210004447511230979035710165828037602328601486090085649710754883605369878051340071251185478044971571714786643017910480344659313329214530556763718081542958933732605670413572866487540190398696859723349176126373158719648340679103004791844705398061373765094675967998184867255768045563132146192076097537429095192442364189755589691778879231672483261315447464147612637203506362466492456315583604187790676095705592840711925443559288450416289198432579851288731516429061812656693080960954833542323466912282402704909652745601923503556003824559919235108771841183293557674699853156725430180662565675809768536154811232410895115421406931792895056763769074381111140458018120362909381934928818166173017439927282860566381142796422759089756241935909243085523915377686650870379006993953599365531343298807108163876073752928259689015723692818453829811992406722903165033928415599007186052816471418892032724586925912295765590411721029365483544427498007072419549658727462768185479511098175499979675542739595112783644661265117071146258530619003805140281337951341915746924042120411001037515377028035144224339851101645699829881429790599849606289926664022881676278254345980935996364476398082509331716055478302686747800121733756973116714319993617088151976463007419169932891685403456574138732429653204766637551602134717774852268315541586978553682350516932788984654233815684350455183457112831739626078758756516296356023980288737230575160029631265553427180418285124640251576754786225033192042206708615850516495961327460889889972644841331416039674480728966832875389506217502775806549944010332929714977089565451862638866288374747303086384748722317381161106663283241422746073358013081632684220287004650120050283232612797631453167770111510274358844897593436476316584121832527386955778106964449642079998926511275298960657633560219693800666764800600236409224716877107594526377008032058570828396459931541493174473691081116341048177855164723896344922731892694146759051096874484229065163683776430732765778163377136789227956255021332952586406742105329344509671690951225129825887997400441485798315874140361705694981672372870245821793653270418832476808957648301355199682860428181888240963492106840311250156027157541171499682981121787679520138674180219990867548079829766767374904847528751480455666402381440067535654330281919514280450448946139262894066605798067611224151712740554739213705523197678546127504718038126627653445962990548123752654881754254583869731270569674123204171176812966525477293374440266454766507052344933146822978297411586044085252037362500492559969071690827606515468180669904513850748158272648314860873876411441198881918528856709195461646764102702439693729182638195990733114002745909678316608534844349062141954185465525006317820729223418818807870025029977743797912299472571067265854398915395598591212947707660792494366748733404837120736640672489185437819692652707049488491271847266495503162196909079158650784231587617556721541085886003433886791205795640943511515028074820080422559130535840767591617552252943179471955615849649524142958915469512566807404373435004306645741709162607915225953702732358590986315555469004610137376277434999876779750872290153792419968104912485284957326888963375534372711286139574044354611446720475889990294171351747236384148848012196428104917680941861567213771511002951755628053342461798943776353481110403938889776289638036667236651147645207135865970790943141830314973663913015194108181442624356499442532583339245512899365999569049246679194768282214709255625858623521118487062524479233192831093790867976018903720641036543802764380886026533354721857208295393379483642474048844532538737034796879257165426582577190185815666637194475919874505237404025799462364236840030749600474485267084426263888223662764221904050689815394471274252057886315920397439603949041855941011645353237221758628542879741343276184571262657856625747166318334270179076094743872217984046825560215535624529033899122238251363948550813357683128305020303891138597736161041243316923274131870427713963645028523798922804743600855892386980261813740714254038497301150379452460662223236526467354186988414011350479033553215944695129938649019404107606965949674700059527525398594122981030535453106474004566084036511542834002167840165623051830092879653865180879749180269615664208282516267590356657906033651563156818078405094313341602590718742479104936490811387651110503756712181239291174645685466794930442083904462216988833618267924521004453407258921597621663274211650426704099115802352075151150481863191158054386628452116423748675531307497959083921831848246027490065734368177038333174702250384324291817994735101076679311254068544045669580294777696289388314393364883659969708367662011430899074543581283383579713788637965151481318296954976123594363962564930370044051478972828649075681296916277537705967451424363830228776677910278584227054185035034890596462315573555247245735474435357023084307351217576696919414921738413443840660244016233731733572161899610797562668944377329211876761831207369863756289949119045222880868483844299607175442401860387163649307940854256909678722992526408500244814217693047738902191219721869321835624433719673256529604962455628611207404078642222431876190773067917863691575222456890372567267017240500450941468138452943862115206271919502056659306201289095834257654226369867268343097568120452827342728850172872681834489200658611241412626585790998884612437296522972639773062739622040681342897632178176850820714687763624694368083046292506471062087740774305827050718086884363064173760941565713364883591389791075192453350274455225084985989737684720986170478969868024557237397962216203614477553182965515789301671297279980411256598346609837963870950775500264954391239146817435741564283495734003802539259195724091490252842695808824345869055092844240915604483567254189093991141336075733504049579579083832254291855291741911575120087073636162477138425636492463733407218303218017772300818977867519300674091542216894726004341035783193616650931992087549944116454271384940674684235859071071069158619286154659688912798095810752503448953942613718187453209133576305135300820894452442936900978673241073708654610130702475304242022838363222078884179964168512961227171216843128320121494513514470572842260429057234634864122682172538256411592666741603188695057622877765153055529361109228556734374047640242951888468879873091410283176009118669213942281446403340659591040106667645953037846751811582550607658781062485271654888830220283520043888434575440579472706432979108055397715682451240730122734519525545777371377898923611518513556637593601635149047312993797638811048356442245935395009839771911194985716912846684149899934362029184996227211606159260582125726719737469504177706917444531318304416795049907804802465916415625024314141024916429263002164252785880436610255818097267522229265306092955476613796738752144705104129196691709216977831142306610556288163053338307150145088064448111878864086808741705840904083580646015014650938879030431852825735237539237902947074307913394372343788331157291048099885659293092043911455248751070692251504367360323786448597435774376815056499051149495677768926088291921987815033027806292043672340851058920347265517878302997626981046726238414307437664300173448875319364326959657410933847899419288992462821459690886779485452209702372245440428861966506834576626669176375188344236485890495730541325027963263815309430887797157714276162602738997331954308601505483368272685745797628160541714534018537409012327067204789174319360781809801934088527459370678977243207332771985303176204348960363574165957059492851295861842273155313062407718546035894940332100683775738348497229601354785109196577567809069465107754932625746321745790186856401225389994172157264396420924037546006878852422219396770915150202482963037579737336278415467675692515770746367081814021800880274233673074112099002650240099200932463618303743829187156030453161263850024721803753374157212016028536853393025620478661275417667073400354218081223124729866176307700253873738945349217646656269404444482676279989611829503519327528659798447902026233281446037234457722055031062034490983220323815749541790908232401124297620194750824647238637307557831999786304317831899135847534877274446798079057090565836818330043619529137857821848678623369017933538836132238142568516868118950951775670506453988667673064999420520941706150074046082458557072591043385427575312244968619110646295595692982116161877400413273068702162193572255005148026756708726094539123796417616142631085055062822127294471237890373226931420825580693720833219846691044958348800045587579611102678779100437394736817107721044646130184324847561438260855641530866507958821247776840524682898012574539355469993090500847163427484780615906987324921926096110282233926465161557413998950602193632491339228480096255167159729072047897057071313803746346374782879078105020252913225996696896983982494037247052058230780623757944694388849420530710152891045441505536628109121827382051593140417247956764744187236084617198264812355831564820023613550470351245539897846684479820804153882144096444888692034147806434912645962285653706430328194428538814787280182691533304478981083869358838246317309689617320532067406270185409366527214407863413352345104667151136789437520524562153851118577389699004162588086645765184449247246465125866113973453066012874072032323453792745699550704693674783550275444915264526486170068840589734111065167169974185946881459022018938037607089483019871544857092178223014178372941813037747439978275260505887543957259802640037123541199025851597028499626606806485207869768415080375645809870737259843086461703965781965424124917525881677035465261405414333134684261666525460628866533610399521746237021076298933949088552388570386339642570924909141134342576585939787154600357920630572237856487531741088476196812026761390387113125171542401735590837832214286809791495906732338061227354339538583704793311325827147670174717394829023230385401001124966060477787204534623387172060311745774613009937108279442402659858975814332624644183154835859769167798421480310194352095116990957521596937245893185022030052843109141121182917406672958839650290647858127672141738221608690690191161567223635657660157135289098947421311425229696238806392118390373205947834869597130994722429724930341874193545825054095156233839629711034412595078586549122540355272943430006146015312336850097953907039953808512945094486936832502505669918021079226849225346021307675534517982175061767958484550763907275493362267184847443248886364082964978674338798323080386991699316884409534949561999203476767341485610421547790345265114567332138588438578645660347157843517023345062269209632082198519132030612952399013548685707257948955909249000178508562306303448893962332254419079838717613498922493242716211499751676074350145473727531267539023003128898785925551846043327425654102286665718472775295746529110117449032759272925000700980119424401304128055678087198547913174289047417180403702191324645668248192207556677331219698134528793734795988186275543620809599709649945496347620060104120684077670529488822259505390735405049745977747807591649623154467053202665422155506045773556717790389519781938897749459529402216674695529405267389591305292676969708360176637208206484143890357979148373205279611782529565792587681358542364845102915305711947261745731521038937013802580547977716010047993770611358137636012927660665688290236120455990901193386984329952079600080934537485959830751077198924604845854136297170319013553261118566081549484868028269739818007876815408131382945799064978056487805917920088152178100768550464360218481737950725724459235595467546623009275200218062735203726462415440172496347548309187304492690829122884305428473711338188131817619186980965722381875614726583382204783738287204014200614533348988358394747165991510422508274320151234510711001725355744979731757221774250783861354893157240011923265236498577758876482489212766120029589893416467794095306556649734058151663780842486583194872150335606473030517003543745818625471617270903986000999410610144469589594819885552471740285348145820455286820195629622158317466824149772023176751487846704037590825328917742141378513628738477387415553666244181803170144591601821477182000583083152845263127324021579921920020833845965131749002175162722989842116707122050590235468868802139432274668635513230349849952160600278228207048992921095272880414245916892809187785778728292549485252927047806801283289846817726201029378961182304692800158442484150681329931128979491869225808876462259051816138906015952566376723538227599117961181484293518051327382507375577538222987858594389976838763670450007247273936124057799753481575430532862972899024669506815985469301278920832477237143019604590718647163184257103130922893382942406305639655977761339152295893988987868113607563738159160338572993812026801750421122202259428313365322833645794787584186073814407553058788417001752591461003932529730977502533267438921473028625446318900348557343727519713221518069483825940669983744474062336646183818262821442186790181005403780116568152136515739310654269365158625524770254328580580125765661361800877509406111724431564238059626910286451252418800588049358208203235122734679415185948208513973149006755271227440704237308427942916171546133879642833690356740733366918037844786896942694545163786111198161834360036366560953659967564697547848838895680221817876182524858975186896539305526073194035514329954964118672407105395158664247076483192654497464370763029333194405154542545496186192716127111189271076506823948778053197515579547519542926457397794422864543709688587529132912341795318342288472098296865934008644033706378824294627111236074579303365614484395276557111097611954995240177470090685370059013678488574677155275784474641593900143538710426410119990772814151353533877883675768019155065447297435959753842056504998155591330273229085635422412806874666552587422951455319513131604137701227303245076607940930542917754148999934619494328892560546339266345875003528986532521552803033866645909702643620184920877776397991119653650904665013140547738468371044755743143363100954592888199277487023174888461348975568036901625905462048532124610818559011967342064466982754367641642048172781091287647522979173228204607427566061611653731143522738147575724141651522938917507886177814998031777473539938059078028972890378396952269146237920353083182942065410460005957980214173787901339527132679675136330079684817224679676009642321500046009578561689038840688511034694962156881890435820525601134976206952097281571534875961658583087473619673065934849480096149946501074056963787330044607981330787442182270124608385484743747942938585729485553953688911878139647634479608058358434010537881705921086297164189108886247539222909058074979843797009315574361752504702673801612945527213728338484298076741711139995681504587263089717307263484474296708378325014419967595669452073109917003966564733420023111785677788160497458219643921811564795167492699457019098609866263286780120247285057083131947618142827370212111694599795520548685474266284217033025587003810091660426196546903695893961817158971483974474062293619714766548139776277536245141299414409146211146939043062183827631775959597269731939951205747127784936116630164203390954286769899566821376237262505955979710797013268402657388410469989387365636411210095418700844214612908191969608981403987790765055036970920973768942514255744200333814069547317297084383704199191099934827227732781293279396324875805172255302319738788778202417358855526606672941686167024968816249477500648897082853908453078641311725508258629882731302952599871089672876386692755679921940077240096446976729482444070988893673205526874026750066465577122540084357357790814314796721552164035731843596691706912360629942201519870903145376130530345630823405454483675306929037315674456224309447081059649360568827441658658823232915681357132839091789569639018254990195647111604564832002326991022245375867389398271086182734947631872304400009074979918611185878760090895941657005048827322883337498263150537074699183569729793102888857523828284870524382021839774784039620877441908927102925615986128504955659798637946020175855145409984792952180745956099252929327652241072362165866067391548776418968090807087087551262403393117001860670095268921490279978055939283888448404781866880190048183533155416229783610806261931345113842860016541427133349476328610178040548604910021858652071068816400432325391153352172241734923249311407211784934214354374233395007939914308841470899428455300594802657565270751907937675222170784515968966438560737771090939590698497891326164384540927904062885564544978474233711452753861257289547907955438717047218822834888335160142695514915803407318473978882226472889312192200762164884766838986882917640021806495760435054309433792463617272356051479630494896046305258560349127403703587596684933775709950120639114746610088020472295772809631458926785820890446041960286043666318985142809310130536313214734277610438312274818640094907922898544782751590888025465485768018214191841715806525919941838571751875891402969544044576349120742002834900768874084851260711226723266365796759193832561924798018843266802265365492809062928796519245167458024572089409429253308973287494914887065149364119685431923554223949264177077278859711325132138021282165777375010412260795003136882091279335401934144642956574701433021672469816004277859720738792001180801374302406211602619238572473999152969028684421452476651422239308202548060304648612052375149776506966016913269401800071653263929617089097010949948813573130713656136583922274829300367737670421565422625832337499041352030512852107645489962384935635253227896769508963805113714655029874145281927243454187778621351385282932683670109521620535250582483051785082328243907624618324809736989439679337637695007200410481265397076783185438055395523277959460204390978168392897925803451738113336692135726315627867802968825785989202109569696289937980012158709295698445239142268939926075136747254641704433869804642149685793830369040884925827916172733425093651085237561455662262905195132449579972089064108935540886770458878467379080124003888509225373336655883522036055931583964112112572332917716438763993698959310377427539933157393141493753706677674976034751904939019495776713890238745792174566707680432829982138562186614191726651099386275978613909554604433176261680803058922888448163591265688892083522895149301212203416083164107350953961185838564973489610340773829546744516872790058314982397772509626804641862105731979939524157634043161217760116269526281427805178731212140607349903280203801879317012865314693440757552025000855894536094229937901565641802328172782821180157190705790135717651084987487357523109452277107534731190103770656379046549370653778929992760888386954475288536714706015939372636270550912802013860411357340067210633183570998026414065397931097502373230708493732332842402607815918679224968103333922532737641068191683939330886160606278560282742108645190614288883773415685216620601565925970950470618902870838537999183702925381243143187637762481101183878200533332225216317160746421843245860171916228705726923154394882369052909613793892372400671497382476461342716253551847914733549548956034714291454360834576698781817463156455407389449035205809298251132908715813353845045806358953580800568423100364334546002420295446742241394058010156608955439545186150809278225668234157028598813206872282484627292376797315523648299229972550734020203668777322651422730271423772816274905007216713856536691425317760295056190641662855871339046368689457360170977738738453963823673906284791099513858481731168606260764138373016428612837270695100585527844680692231587887891545434400005906924052209565499243314521690446353596590938364548030732550777834969512258162239925893204278895188582889959712098116854593606570908238134926362816730400209299393294576853444330352235779321980685134080037205926387739124348332878862808445201595098708075877904452848565166376834739805756913382282021031273702018069282547057924319126554856903102494716811948282208908606647011045329727369510789655445151750160512862730907190956691977365557744443633609669177029485258333518149082676712685192220037748133453989118911862167446941433571069275704222011605238469955732918930361191317164099779181159865554666682679660785511379783872902909819325870972545656022193008385268908942330450748803781845043465303619619190682283822315582084113431910842168434374311067236002837918724274468571252543397384289679530384705685061366778487842478923834253503700882949985846433252281977403207044394778049655219399564122218851210165287087411221878975877339702802135127678942416768147765332692599514343749461288478382553483413472414588568179918332295103246197668049042585850648658684003352019248003994840255229939256773998361788502773894065933829599772958134618138549360370064726264721121103011923289207985228187340147127781788947625768656174419567070645926790287102691053977495812746979170689794645399042465864451581202470313489137322914230347530446970744452145215556393197073840882254928568919148959110223490808874190523713544634732880744340508188929635196354652053047327325806752470057212265402008973292590089528249056890833299574594305807565371450021303206544515933813028844788035306040045101404959416887370339262555493276901080707572794413196348855277533725265293169773249240899770624106553897604576975665217329390914489961109691958758887333324832468443487565658221776325072389170113301875113326951050383853084783336598078493904722800341959813102320915574690270479672037063219022831768531674473742227201306122348340457401493542045217311742676041882425896666365058588954524079210508728570952661626636249890922737767255144828483893861001989187550976748777546750461170274239528397427114503223485922017678602611570892380513017449461756833960342044980685282853694101035458203092584580933727194312878170528065906111900274953826548425694674689673861132040929569617628087257942173445905966671859784492378360775838440361799821799080793503451176141659830733599897522571689253922229706228978641249459713561918423253173757997380399020883218311306458931711296036437991155105297063396114200439727253480771644621810448045866022213703833141431885776793547163141816208269853445779392465668317949962674755418590105875684762627546941725128559966778635842856437398686483949705770002880292613451486415756903885420947018273636170656698675186349744072145919595096665210959541457847322211043464759198117857943346443623033519889063328879293892241669283511507973736413957473497886542099809011410725400978914417366803327517282512893515202960813988779405948428313495921218920173420430446455007705184418828795350191878815953123424681671427978520137414250181502152452562232110829386662433387909519517122577856718531556988454808519956038460404895179156647900732363184526987594709981316613578969240532766412037995984232302330082224452628568880953962303907929958417009321911076863419540554624177153239183822716884247930319765232401239082558937439690434454082330050807109911455290220983794633618399974039665339314028299168783918324971041129575267168617220361730690000101515329171021331307857167182954412184875065186949635793992769164522066767035851228512202432934206977063928523572075934066967053298353135515072739888022446940422310096196651779590028652712047384388535102270851576175670065484542286781619066304043823913498613371611922899481679229139715755843118307011740167746676325374329219844507130973558704235622329908296035248572030901278801498606347727959665250977018474107995768356106023107645442110855424594799192489120361541103674540798824772752984331928415450257601488197873119901034784146798070205587880020515713663626162304468909329084331431251051907045154124046740370818338684059906848248528419772536488266710103375920761215905187486886997830790194582331788433773480181656503474540585804374943080379599963520657869484588290928384189672768793539892415603010874508653413018601464382270000440838703651921299949002923695335678149420400191417395140701383220042285402365156344949290680229459551981582785330109501954254308718821253275070326923079036064630825133071817369957509979788509267121487627638554324685835152803666211802669130679812149251503470273283970649022702039345009733995261254133326958072497295598484811452654927163946793795955359969867575274528769937235018980072912734746114909945046938821093746939425573955631440991527597291285730177459004537288383205760758542752272014351278780684652558549405382884278210998483908333557361412211611893844438985915299479923091126968353713529249346826074143251817169159716465525590331138805627608891637383688946551001054658734609420756652555569432865966216016041054511398192783591594517900317504601908706733749611704155022529266940385066645731339372884159813931786651360396760660457328612122747221784996750463677429109976672984800967483913060450745001596530992604229660527663504084482777134504821545336853064240350070139551543201808167604747589004078665241741225630311643206050523652777079172717743044203535264748582266753955925010882369638219203237115981900369904100706842227773942822151076917667990283492143784338689085720429580783187390428331601435863605470171091015555720662289137794014930192961520945445754722932760940084188843888519364272010074877949723291500338071598662394875854838762219477338770400865816567018534099128662554995053468420316552138001591324457636692911926974438890684463340300528461748928750939123573349599418972601311752295944530276040761009502896171221007120155388073161721419251934257808795769676795299602904124972643342553495676972238913496853342468682573121839239897613001992083523058539191041329661246336633834440237070301735385967552363929474535218240603682727313219380890103558131000079118745859573419999950425497488062691862554094086985847354438383250485520916265183180891395826702421832623560629238931169370172518263278513113476543675738984919407782914437154232652992301643091448035472876509049965977015589969769795422075351196851045920982470957135959578392808953629499541451746111261340589929387711381134267769614802090997131701130358325979617303833593327250907102382922206227457956669243142778022251945200602321261818090195833215186675274433543648481908297975898027384269018634083367168554464244372327607506564505991552060943024712604986371295000142498509386923601742412852155548831605545507630607930686219944458421096251975851639344024010238219722492762553477414102146003453044380627582923934073205009761846137380589885969872637001500977656381192236007144723913177634050958916570354078068467810354917604367982338758780574941366142900615760392115876771288613288851618355413369923277603658063444665552358696064896683102010192001219419738192527833582878531720964948065142021339590366222950762693560671567864527085150108347557650069550212593991138961726015257715613707787865679797834859155082911924804941889254789512623075491723774884053405063419432062795367539435840066555247558396507496428575248278841733948374860149655918734645568132129082309350811815381978084382815846988084569476508840155202572771896536819947159667543692618074769271072217220255536746685248799008877319818691604541205537654745903412641969567384796158425830745243171262877786238196384709881279850959022372982009632348381208995227378596088837947650957639691600519225965024836014551282179026407837612776815458626854070484803586327731402922967785868192252296863794164360391463422077118786628790746757546010903581107786816867637647219301342453788744033931926605489027511228534395943237651945887425116201427950475010980254095149604582803531362219926920990995879306923308805054785699900009187884332776408394209816589374515791074089852851886948892294776700588483323861233299929222180001621287291624873416241433322543104145887684378252806605206666960992157872897496392716873564765029010068411076585991858005210781049969536441818364086144496790750269571726098040460966546661349402533095878957396561293994549084642289703594854109580973393448052096138323287040250583985367535075681331418743283057886060065110668050872485308886383909083904390579105260208447919864401284058358344648329795536374237740814079139817478778661274403710804994695678662949388315739395898564008668511661062380801549125439626710268561172990811235914815211247006864710866467284045725677546131854306418669902159535761351813121230890340135787638147912140961183253711873924701028975980232353008242451964663887517304763589231796879613652381791630742546671502502776210324280627760112789211632145290606762301748805388052932761645706472851909917211942930788391370861811708461133514374026284312372908349780801418490043529400592850795335414282922052921469752899798021362494681893857777869114402322105502639555295460565147159350060801267520973070181752857568968178937831504067322899286999227112095511044947575374131609129338957054302000001756991908597079855657473092380918116740867644512886097794197277534838644212007381106772833716149687863167098428231286979674428336579605984406090146698207796926535532640733440275522068357252311551373292445242262521282514151456639958072418878396413758651305983047527546661860721503508589435861743022231237650462555197829332586777173553234824512061488515002095631136485847459464893655123703404914714103265111125042031471710647332885398284271886679244427746810647819420259378562837991980398813867502763082121826418644596370818618013233372181340816647517458497878238609946932070026012946424422036342638086110321643586792413336977807408230457236636048470380528104760378075476667631573322919901723895613534027465942103056242553584069157164483850139335198810833853857839147604961060666501032514932223224390895329180064618519740650128225053531837788326798513797883606040922060505852484626834482250195945911783440077527571986537033059240377102416473489495712949975967439346990533968009067844352708203500390936132002821339968504630841460701063138019474430610262293012322637892935521378973066576761127164263984041726104173878088098459685448402821176121192465884744534220936987097805215746234869418176874635592969599724310143214524980954144350845603771458916033163382095585771358286825714914758209723491751517270769927026620854838674281385410312929760674144544110491974137167740065061131194531924763751283913159669129825112000111978165014967244564648897268604077074267246118811399243021910920298182358801390762732526097185345487550997597081222056644403405147030561285530207080692388759014584671612039543086697930389437484739998334149675908359680991135908196488476518269849375672890289460347613960977041263597086075001377744446728484234239475066759845049286414769807613175830828903841778660305676429869424382766523417881803537073014364296416796917601558259205111304497448342211386393893312037923974193408525814515482389590813781047612965192748084135209770613582068121656523389513914546832490923380017033828001693318818614191927551403326865213056423385370559780184210151495943406841914893021794691409596414445715258015208701630131843537663442561039974266365817502934853159480354157847511470985540917794951310486117874570689565526722708601802878647631969820145855983213732253273438305267762078865140272190251129592168111166482221961457166262121020286948332149893019005422792207052397297830839553675701402182914817256135169162197003560249067448609094884852821294986168495356393597217196475490533872482040085851746363393816981828139195718156581111518419229740095274512507198422646905153601294088780456023731283439008352140388851319938900231124293371080303382424865557750596581487126831417864745602657695669174845406841661991359144969536467654074352000062169930168991126943951650528469657231741756273916888895685469163162412735939755079733898461616209210572117230429774905840150073744605616452146289318422456658626000746799557707768461761594832011481636645926595361597929774076375031609486258725261821096434906294499723429602558484015521447550400289903578096002081705452775129043289777750726930332274764856184236345022373864513995836347715372249388682065398693648761895300636262107457729776168336358483985745172758698225343895600492324189104798068209427479787338821062312216587418681204672326023643018281994570136249102751656196068282073185706594012350182658480024001016761121071645966672430060887379725122087489312706125026511551901359766479354203484686923499321352317294448555870837144297950379984134466673069792087795503623894803560037264193272102857395797297430482796622672834402461285121370744505480402871013915020911235317339149580282646979434051705045267114075488357182493317023865722842115017294405133786135365050516377791557281171327663346040218285250905110652769368714439528139106026981188396136040660673714478465289973502487741758993211580416909498552184690183811319048663201823029113864909422355889036402738928093041990965683909333976099798834941171627513514808642656669108380319750613108710017810634434102562713319928873249056185814580992579514216476795245929609240679881208724238086393180546955869926390146982796862705659455920416108471369290275097036034893183128261036959286034525692952036117741977905302515420608385740662554044068558877205407008512470760078695939395569983452625132934649918185903332080046636032741977204405802774517907934061340081295620449411673687474727896082702789498393426305731726052997596062438131848218670987682696874735830089860842502732229132586646376041873407342295036497113811617376552502876842603627593726371502518384907395514167916745044872549762988186848535030317047112070728025454376576591255585406785168503615902317496028182445249946263638271414096886277647284715386717940110196907131472813622473596906174538429825943620061069007851595709595695300112516295658412161655508488982262933014880763698958785191631140159793767082675304400559016803449815941704556222464564435746453908684806126916184625753704543934566854786930082730261095136581598068247901323172156578035617463169879450971693322330396711849597630245012862247275303190542460822758489193233802979922129131286303681935380746316861550660307317678591692392684807320040627334192200198558950702531901503339959782607609433467480286259989260025947456546275978938527529396491647563117681248312244213327873761731769020581671540523414166788671869165659439058487807069307172658971063591809848441558360932742601717397996068151715641628828064690944446749069856189087341889006425831811970583672932984738359385616131392815341964388291110565788505541484134391488610273461124260522188239052039778373924836771232075870689637566324692617491902380167088841529305984690886576038322911709660473311167536891121603288922660310450946368373148858559028783372154880092789859931780040915709137423940224887384019673609902638453368378591556238382783471626176909096161379293927199172744276203842493629964514124411874803454365171758694999935380048409522988252749346599266555104155410022241049532402526103804624751043439362959582435938675852483393392674343294098903250601971878048568909455470949347048119563176262679919396486676834410459549155479398004484435341423222749059062992641984436285994364695499870918978081467652785065656049029433019230483790033682272596392193694760482985577614658356683351219884423087406260417385490345225897463588339579118975665177322179067715363858533102580528565594459094610852540083808375589009209153169832986814390481683478691344168600609783460492854977955288118420862624593409345144956886731689105050652494903685450086914324551487334793724735916629222761867266158704327710168495389285726308197063994937874783943409766042938093031376101226282106640568000915995521843826705680543170570770627840790680447690394869587321925326839301469151810555752233591330191819108537071066199680275489780154961813116137820730578769082505129601717652370665887933657650463614521169609035147842178373899018060959947772206840667764638004046579935242744172375997487093358064257897841773090180532446856148532079672495760278436437132355483423037266571826435989416700817615213957491015576050968210278009027802267641375040892733158503078133649657851324938291752182478595721935974828357767703957291783469323344298471131448266541249288992711888263291462589787389350758667316051053545386266524010415790943627328574809623367949278860469386857822279293368021897174860785582460959574924091894366435976612339607166396184628182737925753461790437359448422575428033503069979642835078243878731341378924160474943729527025013275832003155468451585334679982809939023862203317449757836319969400292323620232458982247678154170977056011332713440332719296971195934679706220577636629761444003237187277143227458503006657190862167642773570891051754745555449259806325558365620314239299327109437495598806803547883502452064525059223962640359252389669710741167750197009301806668857280836014065655133281591746268136730181488749479069175864062459142166192064882506642095996922070202334546300635115236965468667763347312201124049063609923509088522932969612717910003114265850544217742862706527923393054376321948240047234510193973008724374812415643609657752932172993878399444029310730020321739707571692866195469818819750147441442366908208929740713981328929169640052894747272704777576275059898735317457258395254700762816728039737280307102491556671368003390360213537675325362745441822249383003599988439995144991937199088714471071008759751024552223108188913409250677170904545576115224690408890370932387243850989949804581812461810365666581327909189104015728207222069300003540799595905052253086768440190208508997502468180401599056305821650285099230309513793091309989436765203440743294320696633586910994103338138952767619754336975882702865096841726719920154503886707540601994797370556532683073090852920053911135586234740471394757234895769510416992965385225198130829024493823810834855126699461435828466403297738578022444768039416534896274741896520902768774471525208699861935151966071777782181467867927454049605085671772568457258540513999307676864970022523284047259012661213694194624132137055404209357953055296162492073211851276272977533083254330951328749423783126815755915426398756600867166369143957816866655968336507629539215211759839998734133875367854759015527682706259483394258904281771223338869979682547238387904231397664649156566753023030189183131105892002422522635248575913727275377492920593725264885693343753296491894614333757173004437203787824070478467325764738641402651066316406943826702301441597132171890038221320181012076651370045892149113354963215165709024894950693224874740072248482363833704092267970073469696041057237483789221727112405336240642689185605045057793888411191613694994498724486340949189059537003570090449916224674823681615954580303998108360858362175001990059299998482956803065084231831306333071118235257746968444755728603358954454202326924012058022415839020531253960258819854705621801453326755456085685228404446127962143619770796695934855063668101566688268205968390488879294651671629420644840610363740373521512422302175968130196939671788533635901694441633363484573324751740436315514100051901997344736322811283328377029016710127302707184276205682500394928263566874480246459130703137052938756212039458782175026960632258863584019674932343045635601439576816245511548616486520496763773524251623629704190927741137628975698633147663744847061699434085648802098203989721995241497967614126816031979464771408861806693580575954499627326968136504520268729321302689225650623490427446860878850805197321988388560513336885613664109952646995992286539072542849271745895410281867432806617314997000433370817470304679332715758851935108552934224526867972531678375781704005935645250531305078167696717094916984194034377289467143156491499730272919902944936716124926818172618644872542469931147661248203749592909376550186438309999895121746906935202342379178749936675934081410538933510828118907634795355162802165770498702725215729516672766125427531234488930668566168911714012785542746922260352579362961064001811269447204389034488638989139855154541290021629406852475484367803220258593687596781186030980650931353308439633813759933246918941881208439382488682724367406059955546405957222928894941145812557607377024388063408649352138146714590259490270750587373460501399504788236788553888099152851904804093431116454231559275561334068567706491033020176708414909424086241331617539500088990534283069433090748233873760229848151145429272659916012023265996120377898879497275735145961448552550103614522687446496935362775114637585137936518860560655702607170190953297691116588068285267426442764166504527000190653938755782147035707562716629774898721372564643814994310415625749603981272341663681098609906331268006122908211450635465846365377941813056407966656669471823233148844115752319381679181809297820539790146805244558961156714210253234290844747980746217873350062230319098114747990771762127524642164232832283859568014298649249978460131417594454018864066370843012301472286855931104874124109399857506530611769085120572577675931720388426940025500484868561973857422750527190705725224071780863733856976804425445439107671262161895464512707180938203257753942305268988103252131704271553358403488495959219046280320033171094634368364736305417147347865660664194325797164610309323698467345005014034500257310725629954646563347783810943233469186803853117152251776937719323502336616790081212856015839730268948227566390308599368236493310828432191730294864100402311735178601730015514621633449908025558047589241943817853257547410672239942465115585974024775201884267203822525372879876069615666391809795803132307101742355562118443042782726013179982088123617651552704821142754982109424660828852962811864914292367233588005353077318866251915710461553234857500190224809251329745637545737529707627345233024506473176985142763666227147457054344268918966333574393276942030000278215973228857532502585823193227762392118286038932410131312338917671768861982638018470858561185425202627093198677753963430344528131461163005752765160371630224856648192995173801331058641293780455845800116330850493749588475131660137776045293973240724559530697198730209817402524682545848713587704159103103223002117006661218646684060415274282692032620222486288931301318555072685083102720283138703226661925220242122173062196598988130814130808791910026623100208011133613963877629625854224192455936164161793626050369058645286711977690449569403555715328921374321982942077852190538693137467248978070095134841250666234314372198699596413562591742142007567682632144870646517962239165303462983365745152218324973642854548777283929392747935188257649668422508751917201513030453011460481996488294684218072160473288507355136400143410410299874634970261291255026659711615357695789473117960665703212821176880409930712123445921872755996993298462878967549660374254518469043290833467585127330312383312103409368590224657683068406647178774487188705115650371842570070109701100595246469292866689211783627663676081088105162477438051557112137116298601434031973170644122668041295537101015763669891174706008898393139400845423979203657209387195230191647731412286311702526121132387916441872796400705370387413676601945289710351654025379739906460663882711200782666094655391420724589652196032543441875915008732469141319216223340976387448835856711704201394052118735101576320202622317467056032443016189611144012527239446333623631622759312165132252230093864114390107294321682683339102070054415177832702846838787281794998812043329389452782551477864993982727935050085081212458476920357706539199544981728301994004231663526207628721198528917025489117500554919973541625794826427415883224191094688166674472935865643113280007741468020428468824735390337770716089573643820347950596666640302754799679014085982175302198035318062545671410370811903416739997555304438503585289774088896659441277456957970404644627290624273382193464893564714614056099545569308938903885109174347619886372377161600469437255025433435583175331055765710588020474387119790792078700379078077497496120323161447690435387971230763133097268735503637267983939734599422288483606082034333864840826404684657937101939287907232202504568222134157432339151274278491084516580949694855530502799163213489620195819819771888592720260987089289954021928900713838527971081741232839801975366123583279463485348067059098106403859528897287475734082593123966855978107793776877471531759003048822641476828809515628241944539908222928427206688929408549370581154401811731938768593834662632892510406237410214158831950016479909981832617545444583873025455295355253387406925164160610738700383150902930511231935467006145712122880880009568887570910117936609147808746606948345109434075740409210791680947211668272980055758960601614073209324503436045639363148752957728437637013034246026709203207205044876356012381314066524977603139613665986547481201758449136944166694766225526815855280274932958599680296047763050742813347190917047318198555998359043826411129361393842685626398637550670070333242295523750742691960437984837612212838438127384531040007592048746855329177173667518329046502151169281395271526430328637660191435862628167501182719100768259444004168874114373240671477920651799711544651869096351780361034419082531579181098239957462733526854445640135902397986360466270476821079362336486733098117300563543465388556947026904678173247006905775116702914475567843084091463280626775716392732327431175013211431204129258963643015193958916875063258042413963690145598866613136753760772268759555456990959357332709636109136092997978191542212373593996380171386712953608835666540962375240138639006131844948733420337381586430614138900608850741817347118292537858804684569115134708716152985436821739408167381188168586892128283715963314687665641604209293544987205589001058028250085769536651041754161904671061595965501769060424333139100560238085177094703865923868509966453003626810448243206833781979184358515751001730404047979896781192626474817366212639529489544979429479956879907235707589409202403314287065626504068873004332959410871760744164881379059207247740272996350150348054909827064563653490389803490946714666438758340948889167128946355000773395247644779337062087715159362360965109499286458343611420345979285285307499072628735812928329410821914776474066882821505175095213898159530256970021176893951098133018005588900210144348220549855031213611273434835681419019894623234164326195150737557066259293281875635490018951009352361366817794160517499818464641765025063493876802775799502449858421742524942796952554712199397835941291815295899051728028044328243959392384519955240005112508144150758726338295434905272315203216036159519709930027044153956523510654522717720814726162287246554413522957482089854471637410510316168752788532836170186846821935349248173651208394289296571186813824742648231418414053680755602164209948619783914346480016829847682177572701448265507915547125273140220646219499650518633810229893019496894981904458580909445291213367131583909077944239251789474992728088866024012701238551043060872372391955582647835379278826243700678741239464512084047424263374253854006120889096627187601217738894702688558840242830705731599285902647471524275680634374638837234928221074796390915046959908102490063026988153182951035780302789870142766375750506004733644188417195836038588539308727359184091163930923805957341422653743292725057052279756390292361812356372924671611544461469030662589999485742630527069282210900963855617942231125399234582209915519465234458429430092148949857779528313238529058419806325345661548859158257582124733618782399173595440216441659746757380784397396992125146503988897520382484001517301398453114182173551878604979910817136197450311346551306900392789713830312539828294211780337977051356691841543788592031425827825577063562374935988954064149488505353941101121684750822223508646524243796572243983063295053907593552364012917289405988409750524518944920335176472991611265602833380455437318006866592732799873419718834431467198214427344858216021111606372214342198468131386962351058004866335991420861973482511484328958915752983709331000243994616580238509452535318663308929119651508255185258394474418427514693018816335883962568151506291642418137707940511512675976097162773230594658688035460560103570511820017096347549541781581603988802561695872357561753988873559252044686665263997521422443844504982099653883663304952891676287107793637436778636218312946807804610720707582687403182036312666270891768487187397079121284948453428093438088736435704312705525136429267188463008719779461127357650266463494035797793769366517763791847849185702060557511897753044072549563511358696741736366914937721088439179200472764130267071074617088514436942701356515269552707681640766981734114688046191232494673601350532960068180233352008353734004968458648598490458028248275261769938014375037926997726205037748801650922389694841120948178700086929465124520881422795831092539527942243872813906397205586851834434569204160824736781552382385109692105806301182875126625347313243604820382087156150000133475115720340564069553075816749198900775169444419728860370086817950567314099027092610000844923928000879058224362615801644229853667032616502622241796855275021910204565289938723320604130206143657142521735734686133208722743381557880139483765185949601979630427929014183557347193998931397485774138892265399303872809176762843061741255520525674521873854460372810067159036920076109021709967853467029056990415714069149412620161935041545545844308918336215970027860757631494325052413239087577313311782026079710858716311393573450226722801405639656351525386544315659437091880432593959851966765874934486398919862714414212215921069230654260694820918435199822175139569765284670632809612057355319181559156001113856138530956370086024461907456597224661758435540423452754928911423570026357198552643553817451648225487508293708543614120709174538627769210420991053384785750083987080233586301853145405314373046041874348779935840562785227437037943216217033308680613786497225044995690215101247562973825504736325786308948605900069252844033379170472428963708810335584266864715557817751628350904603463182147249945370553529412791851386315512339267696264996124912788416004825682154885756014336202207953412236259545541391078274123432115535152184114668385928558640379231891796599644930638765318809288933338789197133373591635097213721534098100366556101321628508174962744868466049575605378006134444467068717525756359666267116741837083506638860792512363616574533498509355641861943285578995384591705499394812601594303470432688113436522629058760268195067736612214342271254452696034541639936442972619162851727751320799304745003225771352521121285442572523120371400411462416935853295485487304550340210134534721762188329666144616806289641426053021769033245242497801029933675464256172758891654410072084840460026874407238801232205960957283147713468597085527471675712778275691660177501734530021416047696774956458346669712912000936248902167293340713451433068190187727939928988981263756906514890226473433659413873807454541306805000154631501797579888637248945466932526137799212325405913027871035201726860508105922640843521396288724880707598254150825889942053143534921800911612926889274844196833775295580081369966033914400661658208533640216968040082066377920199435107949401550792560300492895240449897436345537070775649655557992393644080340381719257111406014392489950636724404848542428798487438789448724422500348121493193265773118687938965627969964901850088522420108760204140205678340441844966175337628994288788483660018618876823812320876438651808385026277638706602838998686618708922748885687367021303556182177994904847007587883275426882026233352311324314289375214610953832839030584042775867634431100932926081267571397302739365281730707789194976299048952596823193780981881613165449719446285424945513416496507407882003679638435835101381537505293344087801121257092153319986842928600842262947014981682955518593469892460247077048767553651260938639417537962955598047372996201423469352965365174353374166185835827442441881414183615576789746628395206730676933814663139793778653040535763743207998011694493122202516349901356419944739011731865636354425676330015920603791595702162203774491559486997577782363503882500609750085669006661967598394194569708934663741857842498256637127939847830225134157769690713945041273215005148825312366209102372360727554340111874397636230708309050997421607051150840656952340539187384414241260053343721568575940464754386967941197111643627526217859225948295327924883364719283542651905821285973382249489342343275373668912545625742789859572686367733779653890277282598736204041418130301740672522188968340228481161387132550718151612737541778001536201435377085243227396071679466430669622008290376859004451777897272054316680157399309307959591837691283844998296863823693799427004747004765334632011648398182084656595690092677359998656838296783183735933480724051461897846477106748131348059483365796919562426572337333624794212985604200758751197579556566462082404371914236722367972165179274050559478090555930677479041341084763854188563733693820949484107025675564643033915770874009976456535490904011930953151574085120974069462567642637562303637616350150160083350998261191467283885163975081829351843072351680986246207745295693174222987317414047610070602277343106345836878230434521646875386358870412640164489049357665261596104067475133815961702627425493007183228085193167013642837371436264743489164357257426304174338751613628497729807280287206971468731431678494040353414917829699792685398979832421820121719532991666056835053312897865416345704171205759237904562436268029224911189763548633155382295142302901004618673676297446309839264621319181884338082510653507727621218455564734088682612744106146096499371271996180005727799269334173889326444019993070226382486576674124377616813042298314169248621072103097410030474979674545111326457435716210206754814281463223524122971898404020490762987406130474123243091520680129488147207439934214940277139952453692785696230121254451887884796472312373994373604447344811987805119367156463548372680004993028848735795716634306843242217783773097704512734471848459011706869908435915846923726225561339837017276904971290512198732404205601151968913763685647012374175694226370264394160184229388355220057551728148840472997515078995888388533621396524775390508597984502160279553075792320052709275092036519643465818328200485761587365009241076054264580601338224283173985802018771468330018561711891308920272092319778427355719047840557605167473242771741812764904003762363237485462694406514891515507532287628918345926116246374985999023741685609002592118743825671459857805292471664842828078172280838826024225556522672303557378691915173860288603658971822447173747918336971637371551745546094131506208914833846797200291246789343538566688702285432403509129119788920684704051503584785187891653742672581597050006308437457399167131803593007089715609434991637925776553931747432601677834302723938759535825512018556188948880243317523560334915937147113974962677021126088307422791093285579789909281001669926434150360038913331663013386316164422996096713297245665718753940674287541280269130893518803972274580959456786694685197967210787780502340715258524058506082492939402199793626944058366724634987151293847300524791166172516897213567782282362322456982838500492549883496990744004306695947444661955407420169497554849051653846815147738330031257666587663608866212517741597349136551490235643413339631008696020664945298172214456042069510218307732655016436572890607679488694456337817790864541228375277962151458090112336154451207750150716955440098029323086732218295268388062717267632335980015991567664591949785018656913486348470470010201095174636265967433195989052693488475460996763107934504062409788056760100548080265372344186396790846120605969324036084278108925852456126789637243316255930880998405190195110118510417956527162663832607657387297047558715896711030459326177938601577591604410492952716536999701930639077204667583618972554891910628206811661931325897480043366395919200996804018151746132644614999521559867884207094257292510857784324490349650809438744388759693898753237753800518988235389767571379623148010165024879173411811395867725001918766676401556489595130644667928324074486195315666577849057046879159444567845792768722751467567426719246986299874892188175568936888198269594482798238627815613989593325528766986593211079169635138937546802268518710532679283537182770536947248686876143818982892996271997904847657616666815201928264435442295636216446498256502357832297693805298959775255835630084521494034356190551985240678943433885897302195398596542035432183694954642425937164766697631325026376801909439551065638668560383307193562399330337080323811382047439986899853210635372396819175696151343053497817073325539262678702858468272504817208265026653657412323879209232741004609939445103684870902192819246150802435525118089018438420604948925779005176525754218871133851914963311565938076564867741593089829018395593233673455420951205012249583232023758536285567290497564125158968275082569200949428588913522074754996168286051402566217654152895163644812318843940507549381061381232368356172441773205594386204602053482147502088579050641942800965946583312761065015328287845344242646621698708606649208147653031319703543123252501780400291085980192763500417090580761015428611974910118321818307733615105950323754648266720151983102779250173227291643413699857313294987645582927887409638240189620664774013324468142874557816045821557072545417423514825916074335333073277274276677263571604634677017139716439755777550028556341261520983924599106342537260309066879844500631317548307304806186463706284240381902516186190058284541942858680586646466050601965984260107885399725292869819356830341495095917122411959077119620455472278766508494322537780186577210532320117111551540916534399950930461529532860878332419075534771270890985301013964141191305226358333872528207442688765981570268112094358272317667712128094509542858397491255790447295793433049180669589333066492794843141989750382667441780492194710110641615840742978333280177450878210425778105425561412044318369265842268080559637639367176985727176404671123146369256595509073702078174479797389756092137734570500663405372730419882607784138600449041209657281083243224066101590613419223216839610110946031756905636728028887760285635009386545694321157463204611457358807449882418282700237442859335117945418856848766765988778953618854412034570245283978402752350934281769106464478564947774656660346737812418185738587782721333620885272585806503044137656341964754633223869158478198638875496724334296260617009677562538778722439568380907492214690248622781872551975039462751815527928392864244792108110172459417878110177532701426858645058904113557456444832772267092220910884063439048544359813362308305460436369190662076396674461643249142578700555607995769462485766561629792560181883475828047240347351750921575467517467848520078389665906011383873043189914114105975925261395324936290630791415187147831272790505465984352983683182855470725420442158140025066326727691597373236697061089377184389535924177730319924949965559762369615190678064075463218479778692788469207754785578481255056188416331121268209506968058006783164465046424467983942853151362690443988609684005805329470125104798397534337592689661363797443249236775932948309969626060554690337132242898510294127394775224193819323165118635780539210764456387305519915833238905342141056215688908523702573508470711287166723430544793840337578591577969597036584656809103039579916302701966706387208037642062607438241648909646329527045014392156888497701026398290622695116276372547594984416167882721274719009809363280937926770881172109422845364652164807280089234432422147029872504900285083596745143227726597089893345971618947620481245391544182715847023125853690443603371213145101671820295443637132816106598547259250522025534940850888324598782958118892458252294016472213140290381564064722626232847089558288810700340581029870892921876933177258524844234916983402381554989003218452946381913806507892556161689911767013780773106397056244374856969313205119074436861939285347170860508842730756345999619357651248987186901639143538187962833579874938516952311445363220273790091211903368424145119641299696739021155616799726383649950935709730810331952881053512834687436219135375124490801750807408245275242432748442357177885645408017099722630693004121173152596089704259215678472565761798874037589164092501147254390823541421874054919198146995017880351544676679849663853306728029238708953603380393314727862394934114199710484816481416853345086879609776571480209898402458338828251061041322632856858354655495376782068330922074755614543220810573786313779254848825451881507614876204185892567083976591247948552183890824345259916026711329021398215239094529724352689274413641664902969518406138022949158483224778263748656701400606245449808356759548045527407923144119034877407872246982736153936262927423296087359297686450599280434477219137513838332742932308215459397839369310936547464887773775248420760859306841857261877580743899230230806683520029651882994080523724362775416199067548759498776225609851974100938146563326295576155206836533485041753028592708016758716852093116340906089205677169603366651415104022557670764506787484045925229323647640441292716931840598824917641751533366187769432857179743724485976328736890892115005620560586843253778922265933824350964789724560637333056864793537414084690919564334786670833968309437372651989569751129107203144356702620829775324961330488585082488836254270733126749352277097489043161979693319423223621244660979182534960142198703028118589417493809124602844602227729804011141808323217189886321303260154867099958023303461082070940172678174912850202101120669646412525650503134901762671733367865346587763344287773612338750876577611256367980139067612135130772284206374480981930666111703425689163426752594976294397835734657974258935322458663942095529763340490417876866518522437151136487491119050853970109673506256216576494588608937957795212507007650531989740193132375409476598195224667731033895046598029156643708274637454455570346350312237638619447725716458094966132077440016146917041880681115225263101068067437269851546151453162650888818630140053048003616104900661305869272357841158639980769202332713534603902865430898458542013430307497328941204558648011786079638222736571489567792398180247622325441433834178102856768852393396168859032872749370532831427422673624033683981040060508831552013818837140470193939481281700236041186159798485179915522641961140568096171603016393245379656602914855863505018223358687362476916703970230564058569457395630861088094222864564900343760223451450095287346136486445622882882172965221112883522009538849607263363208041951447636477467270292825249898227962703191548675031743109154499183389574061880830856634013366066674781359844217255362092437663851615999386011658645621852403083687348732351839705586809765858595735340605645929807181584105423943532788109032531523826657355093957495018519413414013098610027596898683174086771485410023419931145019228337034518756511916334914319635602830311685936794530933689071040183964079946352758071729596331006735878143390512451623951077747538077183216082723272760419871205319707655764469203823657024119106927028186667546023800360153826799590912242387688724361613617836895286347018401103158861811428030799079995879332305216522423949502583340721531895822044289183948425098591138849861101772540503542029446479032303815421337186346049827263621990437110910363196657977799023986280899651082942807383702415703070844801497752208468748619213281160326428382804011528605728931974286088718485675459070638439547875524357827085620832789327258631879689012314559232739981509034776832010980048348703672958501304706281031961266295064769684061533071492258470170062219224338182427027546831870727131311873325031277850651465125001155420302874046190734392770342539473889041987217780252689789340045839739772118398802981899896655209106318595275957894340263565706611437263447233727309833804664984539958681164755118088685420046380616434219424963205211506292377206063959460340312442041312511107388005634200600916570215828329016463435884773196616487531704597908240187895653129431249491643412816943782293153409238029845791654265575037951572261765199949376963582317165344945173479990779579438773679253396602786956121879363822846825161212269229412325829519520563966404665251135667590375882557153726164107976245471677389636395034221970271535832317436862761169981816349753469205872515486655923898711554121868550282884101875451231696701887574789372050315405939166970577635279431887965424951971741713219039641778201747013859148120971556893847550744733909249341033769423608039956380954289180009179679331326217196270322587829384269645833023500291419389351780046784686918109292665931666095276175026358546142500139243998363360487182015131314209929751444463020734321401454751223741935297538045807682821333244597752870122405951622515770226563518738021117033494394265894312894981156926263967732644019028879295004278456186190905535356344049868447553370709083941146709731525038322038389004499006542656993069973364229207523542603179519543781579399915264383465792585016095417768967223594908168019114518074072464571669275213812247652479471445942532955011016881890163544481318020373441167671934552903702442609622582426705634628976725831450056698441175467477915745006493439924583951619195739192004046122079871252692140876153260207341450074063603534697553025388572475528470605883972851376357817918700014787682219628958976734855659288471394529189457055771529809371875272393078611958048266819543125471237611043475380834738321046795554999320934257672599861737579756705985795860537204657843783510948577460261596191807089028628401416971017654338719402576152329964857941448278239402963161385672050552481404805008110937264537126773157450195314598157470351970178474344844789649157588887419990067767303708976447360731784776446085790116385681259142728531336714078854193413260319349269478253573530599370458674615226729026904571615470442590849256719295269752359600669214488883805900621987099457277545422685610172150716712694058656312447983972304409632942791635691904857765008266425082159006636681059807513642398876782972335596919169567443425281028537191072996061642279344519535735987019621580004557620011671486631970008379085916917957111944505243818192960137505105360202963320970854176578987751082137805993512796779368578140407438189757707955318538440907836388441764743910613300270858920618858130014431893585428343915962379062592413088875723584882481476663468606112090381213705497344174944412061105037909039645939618528229211108706733933177303783483402635113143804658440713394888920170100656926071458574887230922438630340242798184797735317643964343817152502497273267080896926115367759139949323925481005790916928498370823542007510771302142581062575865468297940498563468842339968600603092751571049252815608432107935506958230318003141245949026423072419864566477198039432349422122864952913031926145970806281594757886338489503923838885547104883037382122133973473380791507388281881118452024931082448379550595154352900604624777731631343771536766136575775375455343851224170591763121782654125417700378365422253276341732369756612515300330860979608125474636874341852683606735239011983067678024032006634028304558484738291485323246428085245302506763833730494066458889413618732131247170958234152119779085154674540062038784243508309543603974899462957922564308755801630941435056539367129314038162194746058741927017951257148580890281303679037375756488891196300665630055460627628600699416068223148521458222315489806215811979412957630106988235457269724181244155674142218565559948514049809326801262778761549388674221387605804407282680581280658818949791331784201509181067659064446352354294376870338249281937885689415095551282510050414595276614086174807308899351621450117497990059850439495363458748346144861119564656506495373448914015651432965787736923537658391830948103664309668668713791818857058661106931384980599545760175652181385930942435415932338282939128651275464024633763730821625059528218263755607602648327141535605045701353581756224632138051073452696869389121777054026909978299355636976264964731961871137290802775053500716209958464722671175176973227243827432413984645454863043039577274634156614238789695644592324461106145889116598266152895353263776310969962522271743306817770563303098325635464573117326423328190194016142956787194591461190540650540196787043513301285525556082703019988142477852247622598031834431522192644324394561264013258823686782615566179069322603346679181530012657867033516382247778659642203971554800427628968198101114648808630860553841018374509581432434520090590016914757074408762653822784766848335848271135589130126543799661015038889891800390448292864196236886837276899739087579100264867652987661296515810991047321357474335874830723208423149595160210979070309021715715098310452830889850713586537295281005464731996408119712197026679179130688388323553958191058273020512640493875131272886202237457941939424285529279801223164108781420522395667542408443293563038477980479235244034884537605718867313941404925063918985353998502757918185923756245420691752906373407506872553502453231122464410323707154268658109402483407966204685838435158556342591903927810561351964628039488688812904797381687036511325682916655420065694526047201059885668170959179941708623379493935809792503524395296473612980383441512870790394511885868901397694937826083526833406232917183172012311122299152842080423237281556310590372990786136777469440031972423113474074443761364152576638543795873195368333975991709543872446363189570762075838577458627476775075754282060136300517393616656036869058683069010822332590756239229059846831940957762146874311456181296375964834530361270898768071472504373449388233783037333799872268876637453680506205405227744214370577623666103396130595239695249633865680003729062154187257705038109802773531482833986701470899571633427761851535592501459261059891164600856728927098759074039555208304698468799995288679075707641106963996951570750534392187839188678172606497831611299686872278279717738655718955771019824243572273631839625305608614775866588886613139107158763424918977036456532907831663262156645468239691245842309295709838786285274822272583367441079805351057193743742482471427996491416894057173865238037298560890377223604054922558182821025216015428520361248007303998207646964009140239916745913542596641797344832149044007516892364970177168823966684691492215644946753700793026062130902673122170292676942433556022451247928982108102997835221820015864119325392790350427704302480753223573371905582411215451332346868213941232621216355147075738208942970788886453040514750830061554223972269699401499901103938101767058040486284832755504665439460040472384600318417493206831795491005792462732482663531277482900970514720912505804595669130768508829319457140934639275663323386024079670939961606291444715715281888754125091224868064346204963247322001520629601427856714510979223100544968400546355799429389961737101858636994713971622091641935345136858389850581277319800092528331363808841015402228086382987187367787747146438872896822506933061082139485624899957814588623340229835342163764738814236339253676181103592124911142518976171556415085184540038498072099330100787225236065845647079360046701927363234951392763067365643798987156363652896366169995281246816565301729529375300506355341588958667270871258695098169864406193947713173291990940633461875138657825721274515723599172135298758286319363099918589933530974270754053021086374849921893380477702096476899604850112724478894710694204437858656112952140045106692320293895899747322007390986086686161384346032642048413786182771859210070894155198217170599891377587817871812835083115667117377408076291338877691858007573137127152073860763113911224476862804744013392695753354830027922039693084857363729443936019756502692800074707076023642110445593545471687937486720025792959989961941309024308167723727933775021512599671754505636725123338264641802337150208979832007316170211301058429752308982845363269716709553429266604633666031286220879840356869317944926822447490401365795422692076668370873826779274792979664271454075533632155655043121822655591906583593368526831073843395840075293182804794246571424594581334915930373229669599580563362235691392314750333088507927975569412035193003264895422349854789542221068103345426163611213726784187370723581661384604085384582918235564425939777212149511481389252648641722639237086185712842659168094995346023457125104800312719653219654860329702825957189429330310331366814787378402063488424672343722168285903596126789055051051044863548447017876080345337731528966430396173362998257126558020104214095134009978492776431128800572762297658740358429492615427834608013448519123465375559100631751333386744133899810002200407171077943621110582176888835951450743460963673119803764193757750997315003358900178028624877949650485496218336082817142010148961919535159788651430720275584300695992431129021278573185730148437955180633003081947352933066310426279922383584397074263989610301753236557574749938027402303126632968195713802015235546982298408494864943925137184031152191522288782851466083748682590288444989299302463845805511283514692839137500699922166807378355001821553076207878924784117518217643369309721993312441187320224724739420583551933318775576515814950207855847643535977372978998088108494370307420401291615173611191083931929467067179754990149461514354221812714004771528376636998270681194220326674919330028721583084996475273404495644612630270178403615454014053831296114741539896978968687243853805149910676008541427040215781180225782708759842557053215640809411168786828186510831627232383389283731572268244525942735835989698205423674852570553700684570007168145154453953455329819614486211351583511334361026084412525232619126681427937261574698529369605144267870195593629219025483134097880666698048392270282965184040161465709093327224307904138441986111290103682773832042249000774306062254108895394660714698429265973130506601825864978279091295651906362124883790812079841540632165838822585590182387634708911443123018508114925702626655724709112742015903191563395497254659852458696661930117468499126239338625476493550403267039223510511118935542364667545605105632617509105023170401492076271317400324046096178921527636173443747927902850251449456282455539017637692648709360203800693316944163177362020608672851083452086354005788335157090587285313622763086188573018995472969478379661416678064941728346272148079453916562030619816228389187045132047524858145530228380879978439942914596032888740381549891007465171161171748069861310725865633956846650985451483676398207273148380093268371622105936932671792186096125993235437386359092989427083295184115416787659527243206209736942997704558514073421314104450670044701703221525484248797046716923315238175397961600988779185209222495345188563763341012917999806144393252443402982503707962758628554708079639008147705567327060202082905952124841628692415486567283409370645804938484929122760070638336398779219051417097095727699361104150487888314985426917676199937558859477992516089497196007606647141255132860102568074892146978149440649701229929908934560496151335028908518235347155087603024411858946296814566803071258146776327230466653362282727463811107051889890901373876445611524822230683351315310395638196979581639664606552773957893597613464949526888167235235048588888599607769850936817582453052045162811085349577116395726248727889150287782847981071037466044318912203203594372024317020147683476208374326729741603918891707755461452134179334242108887165422221086344641202526539960239153508572895828086450506312081514451902014127353535126513071417411497168712607263388356998622942267174703907573326674154173281910177538606476673755643021526962162295238633865859722458953844179865093485649832641693573796509211475953547573592904871947161459374042578419242288224008834412238402669348678314062309169303444497442760586390580823844947321571983654604806111417363388919666426238236584816801862277870047377105964242099700375995001861539691846755715726006498271528182089741261505539572693272924606687467132322254569136368165879116382486011785540607387775652249860989029169009488672461421904678777880133951682402414254392645968821118573793769617641315669326650551915622764930263551223330317871861287589755748486788245900644284687363810671779783008919856668627722529076133753200132219053356488589300801156303587523950580247913003713323046204142211382828224160238347477487352680966671664647997528110847720879907392098485407711191400722576796445889149940154072915399177414115145820854363663151017580792408172661865633220387903004615689049555228068336964173742106863633597611675701068594991334983672956971402511786837760795519063218136602268133622242484335643339898974302078792870926257477478973563088279333212934069738004191373438228419950868632820183309677015618843894007829722285366785865338744757591298674636699176698446929631225761150663011841564849668614266797902382658374013576850552432659450520663537845518680206581332959364940618476919701470672532339619484728687352280209947125737500511669050682110154403100070717235443829288455716444302077705532869944053166407376453808272317925167771909667262615979752055889346194340320229125938120346271931988836480528743289778282423754742888904324103912591437950119361834028033687286110663848801813182108669003204191481810086135829772312882139130505445304288973086035411604013192229417630054062921688729607721758123541703982410595392045687130234929293868940701932537299103502378171550513858954158430792589660853607344011201861421204578725214633283439343553154001259589481069350165928875166576549975345853228715554851665010887652250713939748113098374829376200857977632519606512335234564851804273835267031066303298175633355128159587024928261078772880928648829623183522047295798392858152965948737947636659687374489102454970377460496577519498308945080716449457324503365119229534932200736673279195890152754080083761122772403592107170468787624149206385490765959584642665024071425539962065253226217523275606567391534345421685005467613978550967453356921122546167640419988627487904322909652714879010846234250225484950296768999469817130427830330066439175162376536983495785996050827472383362417574369948744954538062170905802362026504748880464906745323763341467959281496081895394600482777208533021817204075619433124025718096111631778997195051081082094677907335010536710008175410749434258629098826084556929502045430835207290121747649162039163595008930922472280862836645595046726913024407879592466310816213944873905401497386584955741695074718278946951966242579411467797134136210375713049894925422647417149371085519926570724876626587056237935801407053381274679856127718414047083202588567027986529529040779901941632296611694970078313252327021282888106765485322556672107261186116608753627127965451581866929150133971327409000828766711081720072271502929718824536963158076697776912805045691811283351452631878489650241115040504138014212736155253126612670256797698942112544615702534553065309889055249315146317150702632385170553677003762016561734259625420164880652847960573286296633616115001633457129126660923668918366194326143443665657044175394381324884412935112048859709026301967627436356198710832897753148157404554967369601679611155206852462500845199827995035799707758113205103369933229289347860196468827749659307044521486662580495397199272373466987589628746030636446759943376998445175838651072380887969623615133976599690235517074058058306278288974059070145536497775646947425544741466769347180183037547804057870939797213516216300064945743639090530102645323095979637047378237555521143535933492295785096482324019890805688552523015823845957973655696953081172574739473130863389685346760422068861492751088976876179302126649286946821794351791412269163275842010735591383681451999652893493405105501335302502522551617260713404629709534360092023273482287340527181269810402299148803125886637643952452776378261923179035928909209446761922637971893113088715071096476758955538326926507539718983957762525116715585348712019725011421082324525706075125162983177757672605846131312883106736855938111898885376209913605959483054726545776242294037735521410214054761035294257513944678480459843885723383602931085541318203580797266574349604348574830100437491453238587000133196475216985298302206492002704747134815745428255726802546115118145659095566598738944778640069521888287980066685703165533335649516104641596814614226898472305152936189594068693972443929975536850976241324916083840136537405280461545565401383946391699597546504630450968079311210025980549176908668340850304790726424130321083607478779444785862555994634167877614040385508382521008841491468329918957486181437061675469266415899785864124714441799249870532409585817953358737899958106691956164615041588153828897623158137036828400809340940815808177083856880776817980289297710485320000868804472471866616687120718054992571106553504503129357035144723768388686946132332306455274151966388179781468396002168286390577818314329800863594665319317560185701114559676847737904723051473798819847412734241624128035240846457666612948547246116939727393410467285361687314098301866797662630695239389098762023766151578738404603070360818381686156698615123162367525598567219032197342817528546092678857993889457720866188985528367857992846706868323986572455064384689612105299683279439238454260871473686168883037645260224843657171506174803943556750897713668370747064542372552492680149474391069980981806123878191617502027011434590532185781443660141298633120672103148675443318045137091492749642284531168116708334369454331275724533345704248020485720039297765816611561984310660263523836850223712155953285734080556863797197330174374972099854407900041715565160377443668514801073933035210839858958705146785224989799844778537622049367724676881219162529121699463723135919902806969941366216791311892288812089463274352182833309562638860283216897657784680620615468828040629891380748047465324311027399843364676792792070550611579569733818514468706256112862547989233558334322882361286132998041402524041822293498165405591204149495165620096079028923508452994578365913519958349399441070027533961541420228475943499044710835188359288475375371751158016680898351894806825745484890814568628841877695183625319334447837067791501301094387106522041406608575307592536841225625904764846515104341677769570569277641012478827856140325775581107571222453747415747487968849781555109022740809305490016400002191550590960720813589842583596095315327183174168569136326392705421558894180694828783179997450010636699943936941108865577757268865513695857129681969686429353552446744556616378590258349650847443135721825105053961924358055552530786901353921532639155077817118621032390425207999138387139943953364632335293128243500441692923511507881229689409593630332491009561044825160223166008144620986135967046651312934697028683012496865186384308533858419570665222588017506062006727400635545691476791889554672604423400647291678680226598237241267074444889340807314687013211455290812130122553555114671680513728236461381089840191593858527373355021300293989402689194369283919381489662714126561982237694270220499647005272716378860726316372909363750218766786900660649492469081176671500518221470486845591368061861813624064193283704628378868423922237102542915578814142410280492357910875277112479490325545698133185478535367798969891718351485297899261811032477040767328534726381189822078208108741136800782041824591576592559602483889257249299279727196368089484467677518743672287800118777058554347680173554019843345105410136540289653329652038009712272555740044923656631212762940610518814988889506921109071939707294804349801770161737632579938955368731382034583762512272907113595707991268333792039165884943397117084267421160366837290368205573064928362342122119429870209255847239849038451563840919252424620075806022768760023491657185026161913825167873100440255822816185798831894970715351676535280797242081636564667865383485776592926040892970368949064861549184459056666231486121464825599019307023566964966738836117356486519071580539173265959912760635330924832235433465341318354479774938139581967598726883858957591477579687421665160154419537375554729904516593570276968437589357098098824341998057248338176926580587896337348347591984151390505693625024387290475417549254853917132238576314114421955751593046732678351493917807266841375562646726285869339859498048934100459586666997567590772641210988144431729886084296308386053201423830750194467156652201590427471357873959357404989265297286649595298857173494874631467613271988921237477124298150395354798368383638325153236648474541211794636455046879922423035281851833093863038025534757159502193541040548045557944528142320896680365823970770130996933332488692490038596189167417561201457112238173090646493950221437700487651605893649517451605401368754602247411185687838382420182397245819059389767718057726387573334160300195205665862400729045353986323177381531043460427506461157726224108184763517778869396641314960611496975020448311520498992641620237128741307088934884788449603583253430297348560476701661050452404165417481330147901484127578933703713378773797618043565099276698021218454220850490000246880281378113107658000315384882960936409032580051840768609413302345040320339698935609064515260761944353541136989609034884599463981732899284584567084417337855735236875453228850147081721520343897051252496517296776979930169046173473052315669557975879559580729531007440718812259774323010862545886090858123620703987114362621294511176361218622955645580544309208327688285114793729334332099441193438453750537043454558217630056882649058002788385432133166396685270112687022642429958782092683707597587364154956789874823379038927389503502649685743893136673638203323579139123012116638064612752696802754705826199620353916999305759362304451400022427786618156254010395218484265602324665698988336320715372086311866291362068598632087263817716821830104191148589322433571643735902352177763385995309528685195299659281995151171973358342099776158517782334398782945698394537371477707353023418189564003544423136652485956947280416470532689128886299250738726924372399600543370167235788278979592925381078430803538706948985871813209430843437994086709209628027599700038131643860500898079491925647393001312225277845997956993391466015406238023430958945730486991114615381650508822906645817156449169091063913620765122715088716378652460729896188066017760139326844307916308721874069450104984071383582865594294798784133080349131830160876717895137998195573072138326065463161973819835508148126821465226167702893877086614132988652140918957165952708964211053457676563070146701537693652642675747061790569730872217689726036546746953906631528462080132282401941873515871024199395209753883285529981927856699287428239210804557479198757394556089848425220894666710622351810756388616519141817621990970675491387883556634495004100415363445736439775658002523171670472875866579432975480623615387482928187554309256577498374313427572240473604531246053724055733988319844015166258003533191900253681069475080782555299741594873047240941802442295520831999094167409072320453372955573406678148470825272866336692880012036978103155875754554023101543086721537234669254334113181430339106953326914725402825168897817481311470363942150526119771416924928637075566521007547498324892106634831850639846351413512685781250913655399413843482260551068596318806987035714004056658675217669341526534375804694562565707691007253186244603281957199767310262092365991350869883378458252695311296864378409959567260814628956461280244760197232585730488942985777378422877190135432216180221221804800751021168541247856668375456583337204629946987415845919130631065994580689176569510105071988916292816563089335895581308938326293225868070415662989896884957550060614680122061620484652992932796923958356225534549989864684543658545547694411646709167899104221352523295613851740598308618858913789626143939828861868658855007522529479366684300379387230036819183081277427771654510516884109684390515002373101394250107366341937599264694652636619548917661254710106999838921940397013449788669521275845974019395092891007293089209694380733158114828637086030401002055922150229816232481001129363061904442935307367235461833241008474976883489546251995750708826640870873272178799434170536290144893285570528622235516762413991557205601944063833454669957283316338454290546562358955721233939841249851012687327563822526883174436716413160070707572343167232603864721856662957450052611442689701890655652829828464668522626296013003924266151754242623624379014805331202681186682835695197015029836083980179309276135247326602065828198312000949841539840007959611746280297569556873838814555329487555103011702481858606630366474635837100775626864681290786687123224352992129681838419453278908376084250820049860267691579094046502785341028026384797572648016391660772376825475465980002875037539098924592891409439100764637152780273863925946907098884394443986846203960043990278302883657613551748902638505722891098036178618595178999306702631992359816881867211670581011870775930084003873852657951310329196459075933269905657758992931792214404397567064231552626368091655565229469194181011490866802735140789196829127817621919291391111700199729001606668213491697565988702995413167105517287568258973572463630342716521803952988291399170004467410299780711975123901735073606929972708974643140863273477147244341387935592628766989622853522575921881118900567136397332223669399699129390842003414640557749744591772391485254897777251604153871356291454455432820348455174248000679850816610703990024889082462596529819142081604215391864999102976740104108398515164985625987334474736299692829909419548727118041380511619252848194424875473484742018090160788947957025135299633069976070567334248038389719718688503520991972020149468186979775818986250608383365720836242680071677048374324910262505652878898185784063195230565245776727498335171143041426681337333496435130219762045512004916880078643500744843318747550596736271187958935239818005392565073571994756866060852082139639879208539546012876684952117451428687180214493673721294085124642756356491287818577452277047027030848848217246204623261885752972707057611617912738507971378364612935292888265896789876249432611130050764938344985693955928680430576133615855191331118842226315825185548699771457641415455134397636190347709117400433106083965994180108449379589885836398017051535311995680397752122910085919713255120634608930750090439447630993723375408420897008141693760587953057963747370750202920667414972633874091033268459837905462250182699947421982744000007117862140617851008619432682698342490338053110140344688622018205262364710903420014492913009612656225111652850724930760295799817912573813595146368012217779634776979585666173063228510966672746871171867166053598815880892245105698488554477126960167652191341780493016366848741103600894403775655814979977782914797621676641946746652122234002950639813027665494552404140777060046138206020609914436368649291612516732656813877531406095207724940760769043833969758597613344361884392567770049167151807020952279955286258212301082275801084567675336916249092132668807753110896712566150670080557504742033074874255761242542385281340310325336392973273892261281318930050396956310262136491950346886694554165537955416612938637305016751104512205773360312143166207343507626630738534918679489716521983474366591592175490914173892428998735415276837274035212204621746902329867410850060255549067769774433292841727129219242786585781682534215246314135629575731244616182733373796422534043011361607887295272170799904390939959932982472310399504533396630843846100867758235269133580905858532110355391594772954603697680070659219850276280805492942658430162496850299777612545334950420751415894015731252170867130691174221036936214079587642217265913973907014202949233228708605758746754864779103926500853084841829344261204585592051330806173177033435759594910389562605583092549961370750067928478105931195664200518606968561311039975220673414141594343611116162228106264582872571931693646720866348801112093596102853915311132942563145418948717198703435569134916755467992536309444203642959004449603818381446494805758583611091592126624976127296927578717906640828865966115885157861031716563721854334818030900678073767115567531699510264113125139766280746747519614258366761371139453248613018454875646921198009356870600473852218233357949684130880056043096983508218180713499791100757852684748691880525639446131663242029428466495406694475720370693187290400915993947120944572498365828033223685569874582444948801376203739431328832886378024694024481819869813912860822782010634018171456006471484057439951245849617154256571862199578048585568120191978311530217725278281366355318709292178007998056886259612711279468529667849587877294483129133395761283035780109690776240560641856820249267507634905127569314815157644059949177927951730159448923707456651580088166614609441378104031794956781391006556722865555831217200181201959729152124792771360207833078838124081062686238651842647699008768745490489005460826975623452376418318631127065055951275618682532453189341225354751976975531402850580669670029947901290222117775465337476841561680806062984218411083386616860837938379988712581765503845931639658343176257212904234146006960970704954135325333343246647372541751600998041596604458700238827935012296631880100871642351322633408678421704167116534960014754032260803832032396803652539900259938873170026845509534687732267868644150432381800705839359356215474802778299487875740110016824360132594545071747052921276275766967332751762945794061210693271524700898679781696089078136241875821256390115191531019415946240542145705765733417817772417786813858288940726050831602085259843196895313564564374711300124375016244713502068158669847362744204724001388925922467299622431897980637551094083919965026354685212778783520645646522788431807050840436458506011103512787360890978455185691839217150598397317085796498778974408371103100358747115351947441676654452944208367123014653545710528538753456736308612059894105713598869599627815917267494428685220774490964391303223781872038467026579671801119227663500605381802645279207447621309137773028170165505655404781109622098078234162857414798026498507798234735106178731185379893823589911279277421582172499368508368342956272283206696165279990559710415698200586941071864746507093958426321281582151193059614136429707088721167174563015284301844664053568126045431357913595314978040866765109776126992522827944685301124061963489610530189380812092747890899834854066027342334487262216179501378650583883102120026334934237174798114422966843779320567852370005747631224803443078001912861754891038000302133078512693411443643263258613610991756568954018720546404946444898720650564840862257778520695779235921907123594684514053690258715254322205469504341668770958922315601369011408045119903084080609683452105933260483125116527137925151582447292313069866679341781481015048913589554168762592313640094427751973110992970513796758481356896079012396921020358086696455888878699311565461107673186206756370152549163055272519747161859396357319320952677264365649694109077347158735044036753241718719775356628839900565225073196728163996976315893253998529906287638822032609935679589432156617286900703875577635964333254230608928728136356594549516983987130768755485242809497198616582486691426814445660163782615203646554712580345657217017571788473441082173925274222610801280846791826915155899010997098695203944490678789489801653423062956934846942242119597494548687140652714262488309375982387982042954533232231043908694800746661180160354066316649698347902403571037583885382393117130647207638196637700667566109560742597534087825852283741737066027600682760783427992472426944955365650436162038711173335988621073309878390004300865837424430578485391637099092467806346899063622137528195081068829948874611166139777899838952558791497740140122103252199498604029734358105462651431270376450716783775506711263536068510093248107197982245585209394099425177373449770637984447485328029263023841742273119393600427940770839130252625309948557809342738171168649137542005315303692475607008618539800237295733157838171437988995444295168221706542109752387114251229599227629439949865634963431668375257945466630870668534423562019554759619934547933760029530846643622536638602623696940300342932878776812262423167791207926718457002754499041310155198605883879718337047994758329421402573048251611070635531287908325231519991617459794929184509544129998657604668806085176531487669508568052120063896360602330077038074656262535859391303362009135954000576165510877229459827614443997835117244547653605609852677108888364827043979282635733926970853359932256561411727105908565390910332220710349139212815223313392058458207230517157534409361354195157252610696181213587465495385366952932543393849928681515620947197426023526450628282729512233592679200820549463435811722567478947900677004135993962031218357769699706867580513854180667370383788555708014848091554190758269975642080299783137879419862413179536667621412895126089703575615375856705165432831748982157783964782821282917408579581588194472219525653808320904215780650251419680212422173388440249897380916635246653276224834051974276406782389538538965262486619964164158239378395400684527984864978512214826161338425002200395782437322782314307473840135988832745111874726759731395664072433185343036831725091546028212492666563691419271509543213838082832007808973227340189533102204472147448180839726700300640702821164368360599002864302826734791662021754792934976390056481951013245671136377625258869209689063674909657298769436089139070564311725675007426107078156742792147437247174920429189187589546622531584565074796081008991360885313454628992717923476065283337474928320397933078034141628588853210880814957863551421124723363911071219545841520844434576014247197402349194384674360716903087758060871495280955973599561633035506271087230341257974797065754040055361437527339565253918552572246553239623535525136576305497570224013997898921758691034960165726718586549084285495201449540695302110753719747645159523286198772749412969464124680157635388992999768982903040309755384249940087752233802459163770387966020646106168344691087501319726646299448721307300363729921937511954220175323551598067249348444094379788119884274130969402122649985062668713773700918707761981761696920252733768363534987271132885791107673147932316663270480906143180909959051203719714863002680235479318647144602721795532360758250964349105403873626255422026666242258477869530497570545561482099993746426562611188625177534200798899876905534393860921891432740003447698520614768620745398965781672004403090282512713333414661991400975604937521321166296600963469439623887711183602711920496959273062110638336486561697846533274393246545146496382264131307924722607504403426079573191707031445565906516579065245400021947215119377897298614103633194230396224127692976250492373006114902547392869351189821416369520509142213797076992496302821177025577751432005405488285596750292211123652136831483455227724356607380134152476472767640826550225120670732749243957910753736259237740802721140475047974628415992316725528686107307090497920835769739953760117055042152258740876833830720572470288100031467373943849214385209892852885887499986700796115989309316173065402188904888421262398722326745222860294264300545721238698736785280412306298376716396279239753488831214454465326578013730583903022135340255848806822561684906529008972451851532475252910849844118796752544404432993802296752638332779368298585715422786416593927717231438807138620741039311622794344402346888575642603086286183607693344803546772599453643511906958120599771906670092602273676059534310255241502419582056905182453854951571377682276708603686128251231528519705399265779606774594746967320404454678455223294569351801524268974642559770024500572627664929008975608443171952587829780569401620099541235737074547121876721129955570995595591230719708532246406895408643399185214384709923816577220496719717099284683261679882937272260926844165911596252282727322487514261636803227586255703448748511582027123993562480817455844201481963578053343146269782085610604125949981811714364658658241057217174541165297939343403333858266773517430184449103153591933254509788973180545459153222745707623170853089369075100498815305380989897633742157765601140188280210236207754048512257992621932064728038909902413150993839339664143667150494287715527514254701270417655590059717480933973235834303181617320477200975572607907341177447181864998810032309489194239601954641957868728387646521518548647094154918916735742713715949156112704822841609630437323778666852818726819889766746830227483303522705140083892629545709245786793525235224348393689876607135953101160111545909067355754661866877341778025828842623277572498247147969122635740506605212630638375640306703369243210712037223330411439612259466817685277073679807400537051702474012290514639241177349678808307784736364777734883713047006804103260014281030077133848096087224101655993058734211781526003579890655835548990963230241532921834881408276671341216217889530025557670846403599396484367188367441236608647273354824585974587846079221496569296097480705786915426719064368570300727347311435489238284081268744304971832907983707593678401132694708646206970596250307669708333824705223418118012094256387849988772159480131344249537257300515138041714904830801073288657475078404808347843491308431717453031553966981643514160147723172630320925557568314589176518100163725100335742884475562731052777413614394282915639551681116179235423740959041367919220712511631056128290652095689655834716232892909337142483013024553009427533465223075487654912266985123062436012286425021258113477314280062721265139534774640348391560145516647573291744967932223486428107032208266558442376733969046668246335915503177001997970004964426522063503676145699152260154793491352888356883938432971148706427650708504727439102436121158794770513308186528292852453986077764675396396266526670031281237264496800017297286012446227850799193223122710299453020402630078759242773088004972351131190230259272862988396778572347733729909206861120805102543559424274753406238333771357476948148774243450521947628240005107042121315240101185110119446435303016668841989309524743278016036772311835471445452796799015791273393481690907052763945507765122776667249999979782953326412388943835950201262216545967256347468411146156770647334352240434637363644015237392640276571165563040476576520227701275126638671809377528929980436471819952917414885692370057461220259476263208248071257309525761440906691637691379886042373487570893439408475392552868978030021757415757115569568126936646549536148431614528589523125112367014019576600831366884946982387361452381363533924962914157073802031045878662123977798195776756018974148252333930681965582796243405106833998570433386729569319795116010532416449712857813271176820422852834499470317577906241225282184062009265507481573651082333317095153602978423520585814096678215943220540826367860317904933765489508404031093453454732586593321947597766234103460014737302977727049042804359981412416547998977842648646907912091977869579409032085547054653603153004276517017925398251660078799507084489189292328521652802791007508024058872187099915801310644091724475213658235275064774279615273825206929951426777537702554902682035590608464362884109904486961733768631901914015502627443397387633549883846517624876880697794130624951780439113613239975494070487104660257700593044630789770390815031212609585391908543761727964083241755027416303491164227762001973048206572922604332509021278344045230413081288701901447305784613677233595704021575942895411403910633330526376824791095014869401451056285812602931404147253559543692893345592821872960593687283037395470903816058321878142776024228389086731523520855534441629031549021407131624952981839900618341516081172593890594185248044397242431068067160398181855892005391418379367083208962719924984734453169637020901473458253464231674697114888073194774722063716567971491256645201222611967094085103961083171917946712221888246413669720795573610695592872236130677483012852859327150281394418865681841069787397842398533875831600456504215487830014466526413336543831183035203591818101856104501835819681020351596578776757350989372678416739520684055844636673809293872753572668446281918601248118555980714780911692319441994920674326610680866609427132251308977008077729574045945894808883453487828229818571585214283091219735842269513558658023546019212224997156170581377076253538378569316335614853980884319713915783288238870502184659075933884394233181001158917925573709798415869088437280864512861988270705454304864670961503415613988238030277924753106263625149686456021401284902973305437806248078199543003857723965987193472688669520866964030285340636115858891325413773392305517052836352236194203229328846316793802223403499541302418984040742300520291725589022808929380318041221403487665835841296252709686340592372132077667786281817736616185492724910945208789185700729742672077455673028002537074632385560308263241485777172659447867872446935380997179894754069290964442145250610191745891049243362998016176539505511495566268124561756024500585835752346332927711806903700815257662287362726521938248902004303512250471046766951024924519639112955035992836323208094128195734868509484419444589004755632492546565971628712973349798140144523678999616311950817402247505784932688941456587995376776794342804983844769456851703572959522992074973434502582177645823240127625922826377322198917129160716142351067015829820356273455200457053861395774245283009063976161996865097341639253395078166570589293421573198266524241104795129605815149104086836879167468162861337326970194663141921622879246152507042762960660698573686220255817351575176488109979060521189468355628413900145788080452359532855650944542229147289967952635469007641691981380759284809794224554832867483971408235563604076612453866409349117740310081364054881252530373903797875846922023798043232916331259593844616523502894904455841852630436503382704481380019829013745521616379333399427833527205898885242693885646878551080350797992791354213994144336976030125475736838333074106538545432194914590191976340721651674002251165049003564794249205559890570143727172517849113274556093490656919717896585500045981120997625330962116797710825960119425153069813562228651954189527987872738278112425517830327157460675113665302449270902892677606824866019598666229543372356614932154888514636749076045024018964919743147830653833593068886938868217745344311475422592288751035192305511114858632544655549657760207033733493592932422870768712208777156814623442395848192803891444216751155602822190111314198653478763090149599992815376099746395956965895070156265734551947800875932522591901772120780588780029977043582408455749762393197562780901669974231230967476559182806419972515309333502999066373217511480829549647765409946884500871198472125706503531652076208026860855576666614577795066790278865926338442916230695860824096802987967528940126771632651465730645944383786152310121240366214282476585584431330784836490058685847117488330583535191253339250361124655737199492235102261162580352279193908387829828279272810322942772993421564071792471502297610305909694486809827252260678069807928293100869582474249253579854221095024116414091866296240287718288636316391009753682259035243466054973800888700837539857605695706773155539646104826839973768561748073740344280732898249758330151251814251723804430945627685126466445521929611105499362704504227303533657378799972977679655421850269551466200420428959689306628747562755223287706020975464977969861270033022771325860117121052485298556158212953729966472504022264650364760739654896805136226431063823050957039965114750761982158913117478270079132447898721875567400833381026236718524891540956484336826202687200809360155501889064267789036995528483545322240854296320143544810650068293082602403796703142112805275812759732366287003139047615010180424624559534492845219876067946174831132886327761040858679627322624655752906734095122710390078296611790558440623898242715118639567455172232351870352594087944451550938674556096610132929459251163028292562627288643388726622616866995003138479905813291610691416104110712921207146313234098126829988995572776846179497066599281199251346068204475128820852624358261970589549953376461300585633331874033717345623826073067911409022760968806304885204417453049731011010123191391811363943475537567688587291579368522606069246357265724542976208855869305264839215950745007429515392827483640456982403568408032767486448617784256957766171513688730493847510225981847561514410986502498651834694738548732278760547726539110222843541999014838827998974810468714494055823548348159887283289626465848433737287145019048972305248720850911998585859610293830417382703610541269659451702463369551820872709576834469991080692078790877491448522800784730380058019747105937161133585345082767121061567479125483662325356878441466441994653445435304361776753834590241062080047150243052024799015282184904015993469582266340118129296084374469670433007653519162292947708117089663584905127228639775598566654405019541695108653525217708398141144699943188828171844727594346626309610190834938533607402349285692603574065541747135680565083329743708557226062496708601200556892390151729465136758990105360048987281406638585518327854062609810038628254192275390905153629282603545512630913356849762143537656879136957584161177514337101885061898767256215878594787626631353552998195199507248573118196401163374295456042267630080077176639043010118039705849386949813526514004985749744827089567398348360498492711272195404432572949761590676188303507897073860584404270281338958674819165880315654928157835097607467652862699366783734413948111574410015421106794966661211454249016069683733563659355999301270153646373581519625709489655021849502717249549717607133459485918565398735935306774628452171692289880494627516291879996479232784999714829148885941891967732618521940362015075711387789006103096774972458375436980059688456783739985270395395386151325021897976406370570431472279789056822214302276040645290334156676009174001013230390578302206928206055650943070806377932208621944172336598854130191861426723605729680828338282628071836766017116175345373649783641571390709127044502106672292084400361346249403576257456725803070809976090482726278006405646218259096390075485324464758929176182993666656415657737564731652865103834933871656731702128987197381992060973453419873298525215046803041164126207394853912576983012618093677266176372439929826616103259115368359861806258096020428963825874536325836826796733986689803483914897527876488726748612088891553399244334325159803223381730401315520057586758587170825847852694259093773766811583930784396193038041277042659922625402719304091047611135084685836751286596478291556588740916891952083189258780285595463663970083080305950990721995930848051936181887973440101185957623112787781764212422757982665739614683887561878439563971774054727578034779703531670431561224429211780611474772555321984837183302876234832047066207693105107451499580904473908385565326699977834292216194917717638422785539917271075330164313925752077650504869772625711132773217796421024981574843920482589181594861204806028486926563307481569607986952953460599694707397413263530624104983514969619392452420918845612813667667435627539585094005692525358568593758847060029734867872336001680391891225484131698343442590108823908263223659240622207233571445206544914143776134874705502273461479460117130659567333750179275995126285940594061463661702835267670221020039882453764735061049092419385876054694040620167115916854921261808844025981314204576245401567994321749954893797134211294512689248205513449928186882241941936518384573014109382125969947479993308022046888088990112448794177302880156167606571766613312799351373510139638951169536561202487410201055430908128700438548012142826025003073346428347958514777484150859332761419560677479909728450533278527324294889990642687642213682731699393611655261736953559342800940517139816648703161644261759519343601307051935013246510854493251194496645801625607083798292916850750202180671314606477692402613307082721873229498672886895106425046577335622343052233268881483218550809813049862980339562057862053954359308137435026398989400792435738379154275048560328263380076970090487380664528771922589941022623536744460256761989609312704363401292269217546699473005546105631990668154464847871919819417115867495314779965834613379265981610276931740237920912742254487188022762357776241843692254561350642991078532570472539740899310603059859160157789406921236607939038492420786060207054605184372537180191461532562376084881891032937636506552574515857516824329097308497780817104335522694184815230704221322621981527865962579593127584682048813127052717636964196857468737372539067232738871824467678344597136271752988228816253876470817017312424869088571544681245679218234800345030750223292325239404623566535119048850144991499004233724826578084498260111900496288152629263411444813056057216529658633195283056561131058722504741201955955162604392185317023657385586476229498152799857284144126841045364641482695730430215306388941485950798985795328664993419579658264022588568402491068498982512959295189945623398627075617614022627934362135055546219745171983830222864069425055357658086526587608062522809431163449926467742361030486786587467027989094236275906668029738339507174497945112981754528664898143709270844516904475739112583938594189014562830322378052724410944507999439259028516882618016670718133704230321503685178310859885067088335166364481177827806777839382446326065505499938193580834454658328643742894209905700806443515542822942358706206850596935153818040039160556144855210388814127903925290513315283993073376132348058657814858072764431345348760455581209179756079960576406603744836601568117724329279030394847310096569272915030148476150879986128971522667010012145240851687362888146649219711270095191019564722718663263262622886902348641029098968877559870254258281052898477612451348729253621648381378368072170700670866627155847076734913295127859087671753936583938179937348671080235067853021474083902452632886072990234800387917706232304143628281736758464920537461474333228539875294047093743361759766469231730620926029063849837385280132330810726021018731640673337416985920415101967681401894411127749896626389368958391730064379406803718406223516346195725108429269096949429194009199488463092430541339291821616286052206449948955495115578353135292759761129943629830871831518826954789484665011482040875892301002033301521055080028471561875662082315965243011393548784662697919761369636209767239601149627881675892038992810676236700032059620640416827042089465182464350332040136052277476494261121676671738329003622222235595199730716927897192384500200539932263763545040271344422877101015607347030196307877426130853217300464995190040071415006154748369902041682861328151727948843419031091459400262973854062469967943220685597707732758751549722714115395123535473471882822466435049620522426814026895213294016920433688754682374779604466383340682939689074910130106286071977455374348662142328747728658803682870802191854653210858538515260812547818801442715670011433584301215604996117302268578150938720606493818581183945845849536236580845546384243213812590999944369932124723473925123444016362290659542365429206330838584877922289552051368538833296233814185448097168757524723804185777725172323156013760473888823207353900949309105547124831155196052511070714080661656864375403845734895739048064962027817385660441939665259783106181834561867646403867884447773822098369863400242307058208930383016022744236515931386702771404723978422679386752895526406956013797446517441331073383728937674913785694954916129749301742534428026036722041521796953489994265713421832924469789618549325335659015286510505548035931385124037442795931384969560727196459395347990230116926708554275397731674056851599282417662555769289656330381051260289515478434942618813119010015497381145129347345543134012474263232067764899701093101029869673573701902685572103916585892194721540798470904583231824912207615421528292958296954899344191087398230648208621664778691223818325233560566480896287860876104079809788132674901168457548872889434831862909203776931377720424239305154783290891388644308677059607156411276058539170181190036385041383203633904822655261272404198537547890871115772195392574323603498659108904698545858290548981602281938354542741781963802186307136454202927204947842234916453432307716402386703766626253681555812767435247783336926683724116073063118215596530065882682150837994750094601597672747891209213013186504194108357367158214679490923531342301619692973876372661329658415499149664690027464954442646472518483696038202333915249408164847302149405834235735327415347561344771487317020282666228446810737806985139399859760009906309794782333322796398674489017970312079494378940162716379598317224459193543188276733112537056845388334793115306625400376154205080113428824040478591966132310592031749826502776940461884697873575961841273597939514287167547467851708366208522545159925391972745911917917421375441069368046614179474400162268363456328633663452956196050609933629008195234958289980599788119688118575073153768569445686259069174280054420177896042411472542820548309256376440683891845082113182571937093139484841094653262707813297847790004382625942219508961244365607309197053150183614433640500046294362096477441692446510988073964142684213172485111240535822517536701974236157371107734212434965631033115705414738221728339913150973730026600941019466108762764236357770305879450040410554963357190100730612851122645277141816166430151507291690455908055001755419032505709899068280280122933560983988878273533667242409284888393505251180829123020058676266202068494945984709018659348784568558332814858635334339847577650394277745872674585499056341738436763228689006481289334471876336495557043934459523304884499307021686695219340731014142373544612663925992140847739402149750857430721081611725313231502480817275454635092958868523633927445150266633082087074795136442674659780054850172061901274239704074190208421245878263871656851418325611472388317369907133094457120210189718208242289140520386165165726879033690653500029838254910683154462747442413059229591903938004730214609145512757283989282936871151869246183084266386738773130623448422654996382000779655727758904822771947860799990348946965713972306321367412874091840735238313837163801308359458190807193778543862937676399158496877022833943263165441458115394172683469539885944162820461786997920402541484084765828594927592250075557336786139739495997609861647105032875546503422255516882070869835400145678133887068108662132771161250313142979913598537864282455594701049400895924418066223898345931403501190986125571562043775991016678633898115703581751118315154982810709467297913224130169125184977893434124422161055871959133018352290166591964736257730403276325479865731042964923394273421047036963826436038289015784721161207821585631368682108262919244386857008669794514433559778725600236751387728258061425899824772875290892199457246657143796742875727987129840511394900930532974311579067774866098019155351066231132207970057822710801045783490402226576457235346410602407618475628773549177612699531182694758785807057077934272210155944964603900180741062358270113710700312501001390922226516878121513838051834878442798829227580103712655288392499874075276754263343353348377710141136275063861946477179586919994521329317025480017792071150891974591530793312892056772657952338723952742640077793700962681420623913351276855828507009888693071869848914277690387878468153688714215046210088345827642029626136714798008274331992945686740844012020373506555902825432647267852352067937704264007236718926127939291897564940341404739814673310026451429735518433609811288028206044748309357576896616013832389942709808462348209501044758038462487594620316638769347006732629245911545437711999222062007284880553379121976816374474042655431756044328074202867219701185902854140978259731394636883217313904861668356001888939713239836783719007250158287607605544160765662760465866591492077127939863358580641924932773255230779157126052013591390896836347882589379374997487026494021151837429222301144368923715245090771379347167745985557360233763416850417124925058947870906904095977513806189717765668588665718231699170106307367169608852734154353181985349133866965872051624689588205124708570233458137266416982594563186373731639140967289120930753045256097577122880586255184118512841881607686210585625768332146229701479783290697421256344174725107576451622606620197427062595379188881926291380253515362091164595548759334472749219166302472523945820914810859207401977228685000145406597191594852604317962933256598106394190958811014597215346521185997277023916604491891689114707686379936747964841669036932149583245797783293824443703467070526634450301442287719672230784248155387620879247081805788179287117800785756188325496230772628689855161192813142854766619991038193499652850040100688271886862315718908750477905239122098032019477470026928350345764727060041760637289737859256055577215589140738068231962237509574934733590190171251814389175097295928980587406629010137009760017113241891586439967477768045031114407491803233231986324884451613113562548493623319822920061589361427867823782871586734817809670643444454669743557602211378647115329895875610392399491882395258198106201289075965216544079869467292447846932121121465723907841976664929805216934047792404946292538305889651904382657592377702925335389766720230292443106519578232857394382704069860195700135847530010071920175864965222023661793696952382711826651538142570070369487279861001880290769383468821435754721309094133839800359653606270678691461269288884328479345569381189050334955405897465793263380126553635614752499770620327194541035013214012981187789174301614437738754248978197612396054845213113291990299204175664969086288345856874457628129596013367405759879542336711363556102020472911016198597150158522263557291321711768351991901940473997630861163192774061998173247713518060651600517622287311031032682766824929526546594755874152433170355946039815123292756119619385134940347815353052507091737467010939183600728013132239762223383193257999377134276839858299899120029779251214378141541969407118667702574206170652980146721228764622979335257324900130648716409473906177158501078018036175758996913622578567278398546956981939359559263815643445009986454900017726406140122943304988772034984406498745863225660197563042116113602616636592423094499037498682088449750939394588921471715685185885143674660773620387633311441951085770679737189269935354617290056393455141759973149745413696620630621304606287336382225406560737958073780111589087376659465452416168747748661592109451248182087982172668918873583411111347161849617385952516919530900665575726171957282773295322339019842756652334439846362588480830256708518239444822286274295491575034535000579752602024552791654117610062146528722746596382426068511646684152497417881431243031681401588125124508688263575077960171585534357871851044620089486879604283732569799086402545713133418272825166625940684691959205214918892272949419030072518701368845500163773385872021346132926399441587877026467152550356490868279315433747411769951559970960037399589345042006270815715054195318903557508447750410085451523850867230961109135518923643769142952451741917377452026664559825520879180261018829227064343852575416424565320676949732890401726697395729054869400445056276522874747573500137363761185872813159251035477039485891610267749038601823669813761182764133143648622862664099496395559368813234648599499305515519548605626570146166240471819241425436419079714322989660470496679276028168719378323292844220801181876928570025558952136079347444412373525189676277453622103551481911889807628634576287433244521543467487872597717852471666762409328251501981510193727803970303755440545940740685005492667957318508424359796038942548220477410658405650467721901788498108346906507030333118818876772657062479443981970152656028803951304240747672240796331573426922855032444114315459785824121884882083400177631263619385792301638155280579034147531984768030844464082750082624757470632567248260309118778208667334154588325649215081752671323912251801467527407199013389269638651721976254890595401238966972432935599876437595874940114973803672173272749766741061293061813014565674828221996646633344571274152849295106345668046140997865279094558488533020630150382029232813765178292628101524239099129570375195638921634014662346903173782154640687239633042374100106886226357864962269043248013686335534095136848651554153042140759347234957123621706570206544431517399302880634531714721799417603176170807789666469299989375214359176731702605466080991984664235224601288162495320746261185642846104453317063685225959058604956351563548924966097477185890724106282106576548636102757646402108142346000757772937245650463868988779228984780094241938500678592694399151057446251079718599846151718522556001441562033195295659580308954987130011662122141532283003695073051805581907502410991531447262325264702920714503059319112592079405294268562347279647502943199223316810793306321525193536878692971002694842328542705752829173188814433521234367205087473557030451631448734637605025260546781853438194703438347764564800357388188241600448661163488001396199463063927974479776631868432725275996497917006334347640185877977490173189342485413464805022729498064633118941980313978497580229415462378457589476627954859208776565005780361071751037476941492190977858503544869313804305290393333578828338000484018897409394180067480207801175365137351180853446644417104780429384678878261814328753359125642135522186509500854459414398274021157453214206382679478063999060622879888499134978232763876968753431629825409421739434615594081978570617720525294787759904466340101463761043211666893036836367925856586042240124365025431420320354825287643440414005375369993083851183283288823828288814105316013334049732495410183043746352906638161997199396425095716213594278291397391140377286849121038400468282718184360501608411512864927786900463007793484146344961447874440631741084168453800849181766273052212201905714446372333146123433683313973750297858231591396867990943844611199231316639009103529666424038070196346100093924758667654312285388930365828943415934544970355911644280481619362945977456919600562076608630793225591788405240452959548059438166721116172895490023433697373656118181684408186307809444344819173665068584066773564144838359184288996183229144728461159546566774097105192083377490129690289396322825609541032296336231089063548024079394301929844610500679232812101755064662967199348459816151540340490737462117329780099863557411786463386738743277275764371415772113670738238227502228975791957155461207923740978745236444978387142547054420980383935355431320432946489693726622492343953739550459508641487927975936408294008266510407731796086626687833679383892303233884109250490323838437822796939214642511436534431817898393472253311426587716195831777202895659247100666150752259321491335029647503981725665296416409087774966854701076562061796936509965860463609279506698533118519599808337377475943396923262629903281244128032583685766359611823027572206087490933177326458908658902125879136432420404193699380706988727898279467948674860771093889452033321969699276599091206091897549774647097135847309112983238142624799785450658984904447279306579222100957217395356102880464264056054010167299621240552032320721491004119036164623453370615780346608873726570309031002577645511323224965558107216059319506142131126567316632295285639938789726790102883528917136753836985839720691312824730291268999639281510843780904719597596606022227657652367087503994001425315108305431475546827667266997266496634271034125150999357123545365344320292911345833500701183120298036056723455163365605509013244527072581246635635259653611431246711766050745313390337843483139557593089494296265867601018824888209378555859399218523131078898251582135727855593007307381201986147497289913473544602097887890251843791682697701232875886533630892356180333400572665095631029392260842071711877146147955284835664652030395889840935235633831612698346810568868323958887650771380984224473609426077259202267421285585506212993427573232550767915512546656046577859277118440926115109794870745748392711085157431888008787157872855246386469001902835277677962506846638816376042227691585518824668044039870802273092019114872384924707041203739301713873897084828670472003568233350112310013830164420775449349517931553762185286413740616895432167347795403193436951116695927754077038124652414066934105559991173272197954417401785414340223197155405517731562292014550125229197712011140083335321873318214176866708179249493755503056761469014503770688384696823558430545670962931517071521143549589562585649164650735027395924631546249427355227389629577293336243459324113327233305720742174173283143038186574454916350917413891355644922013574557633173144891918777579307445123869227461405854290139715557067948728206044446019004797258596703072823019989481704823947600394220165779320388280693421144065432344174309325618548485988179622673576659232093520670166382183172199842955192983879948939795837127863700973137964995324325852504262464494009888069123417992544199600294868980079783596494647435532753753146663490920037099696523200725081180983143282195463129132148961634391398339790161853079315969382211680876737536583802072100429073355540359255772108946316294219845954247674310285328066794428768034390309375819521238231207304831224733342398234294283397311417149760439174151043311472642380791861210337624719007781579990758732776903452107121475216915928601127072635559329456581883086778189013163842351036600062907193661292762830854209723562857129271791080330373915442119426084752055574305237804613821454224096698363352116046757960415709475113119756295418925742399835337807250780379699942958278371443974765179008772418771260448104867672715300049872327306134909189324572248812411090343692051637646670975867527005802003876583100777349896350903548947144416293571777560456709292516205449251518381423721186443338176341867474150525472740779085061111826025231911796879658533969201508665297809752794564799842740285812846307882459147959599441921571946083344322223399894657329969629597365325924753712464351586871976128487902111485747527166335225896566217563925319015886200823223053263429518029332589591740510065507808011360431735597860433387920611054790123731813354497416247275705144927420041275741105472690443235146499745899635617551067520646048211631093595452983803345248641514084705744016926897753127831878719795912128176783265365517998851973899356874726986335377041340118939484092044136807790445857550152958309919622225644134297433144831854849737149295924806859250647369301734214729211712553082560680230152102379954526873122637726479212234810163271414904941555203396653160573043471750353143897010674134775948947913832253670352363217177814486962705305888984415459716991101038091755403135281322325469349303582497400329125667493177433179645648552071945324673195780373850660785690907748242907503161078468897846361984740383323083700819102868778091225886216233328449582825080648650298777857139102218947301139357325532976266467449263608201781964191420083485940175367549175242522724605681603879745685734008484814442112458291297498578711776404263658652980713406881353007905310844087856467754042518802956300120742640433994169006721957975434117080498865501094348380684481186476319153265102690200451046442364649019043331978921228579326040365313019850008839594192677763090810939443265923487056597355611283736258655583072766442072834195973815143043109334879573145885879973588537315722806253507447487510724368251542683888648768800691870108494569888836536018764109822396913391134973673421555597372655790101293161011693242734787702983304891616343599207047853615192535057317885802164159487144066468505594156613135103800680519735358466939218769865131876750031626032168734090734804444146225961605186629915436286407989932680433315875587049524602750939036618221643141862362623805056967549738194636807832026846940849945146980741359449866415293285350757535872638396774382544697838968982896934997365957914855239166373680385035465253079939874070297411967605611996210559884253661675160763503126937516786705875888649219721760209614166754095174476553517429707931439810867417623942014462557323678232230776041493912816601058921094459792433984406762892358605120112779617019236283374048881876924645606429295435832407072733696950767965183101888085217893719270330147834443841768208266579059820994446114361340665166900445230451988549046263773181763867769273754504571429337406489339582634548924408340262559467607282311886134771751017403815727412346295934349446133312449339914016101958758942815176802891106920094507730854253958147011113968639376803999089933356162662283013067513982709501381943575268065962479573316669144461137514021467589976191506982739114895025793333077866573246862037908947231182755594698386461407446870901009531453348138668914894668819702281808041107999915139914400938762559150230386253105072471054850096952121366102250568708387252733209985440035287125206090764283850879737124893484251497071582283145883147262753160078384160943335934834853069574634748537578013188905014294737385753892650561850102223811103680611163980674209079620696734422555986407572705993354392015172699291590613177343281711624966031290993789099698301599069855350890615189664051228156116493763747850362397124831372678966455961820601359495382741235227020684368036021007826755388763505198805138400088139341044752846052580067052857599698688491504609941795257031899516992615727062732631391266699229432895560622510532846614654455353993752889464553894703038570661442664216072230786883548697295601381617507190509029781202470932798435445652988753618037420726498842231077867010299704434237874159407098084018354139258474871504875503358971579004179344941004001006296700556967975595780563880607539831611514606634880014704368407335579013420268677466154385919973565543185757383654227052761777493684087982292662416761265401268585941168365137754001979962300894901941882510665410369866960760704361417267804748288386069614690892483693208823462377543270572377837802505400986898673187643716218971532304407242087372731083449982063669459231254923466032376865188565739596590894687019298830041073177198335811661146583251754342980056531130060669768982668655062924828715301839582800104394727777872560133473296214651925676270920783692151530791787573172878094514405296870918605011516975853847449402911231188498080838786633638533704998829155123791147950077001378134875843968423873025426805955695868188714188688181089584695918082659982648356814320147260228122829480149949170055564376017004534766528033940841058964706677341028756721742609573377560233158471432870801910649893106642630133623151485081532431275063456115490468262832479489087061879434400473658367370320313328313295721530306242949220557799925176879720832044775047058757453668085964809026186625148715789166244008321204174051471475153863186074316133457662778526342760127008287717710596253868983171761264087399523728268540098226340146964970427183229733726440866525601188504430833443250992262722653910299751334873066198956196094665572769215856315282869196053536861383381736865784934299221027929318163074032371252133245423633796173548461822845787893716677051722427092802537117924450118360663939903418423485033801433590254455255608096966225779794460827752902312570044617128231869334837132352672643007236113185460336953625605814293939594570200181870427769568998952931091032763172519705483902338095149185275524629472480239353762685064215017043128903082892244907944245607526575679264226083399251507718308031156384442423193762646441931075774782762552352721424080235976961341532058526113923429027244749332711558149666361181905190986696024336452301339165095408863566068985966947920802567536722348627379357733491026035916784346802461502019586932976623878539766969526479093297215025436725503751974367994437870140402057147376443698319902296730725822724367844349984707916369649724076415271141984724835368947050029644041816914050530847552403008931604609350365489492002437997685703923175964435250494651175335633336610032448593173559845929048713124407432912144129561879956112071585543533643469893964812256164951880574523436475427889332656588474284968617577070797736064953615013501257045301128464496926041810444585502107878938728088669086293317549945619953893792654388596792418506700237146368749241348596823596647055630114071753816047645093754530653048962377219614404393827581961374560247111887876173554801476651083468069586432527398179190793722632709768572026649924147364718958755934153283816451662532691536261279683497351417323849953752886566383802494109133063666497280696765215458720977694467284604388914776972374931161936407297298781431710579689385271812461498754446372528658826275035047591994041808271128154604198777862351608435328413327328871528233443778065009851083689606125683541451587790593200980762649328747574608726626868593268508564997423491918440157698522802787097121759345920258090262702467660092780030517480150169076194669341485364238744894542704821487252644680339300567212098974445794130781319571304805699803926932312533542458893228113901121453328268814247262039521364282735701694818807607019500172567070986272435964818688432046840544294979819179008751340870830076358106552001613271915944095766273261193649378735132691431228697031809272693768659743509758038046680830384410470954440967734115670207951275343124709907121407629455837648379667081229573357509330063071617275444742600344254948881296398095751791847144161813980714543527432461442534059228010247748179097991539033597663733141120921768206571213941327587706796662261877175738638421797259280901439908740700619092203177032626126795982833670215622344317178933483204982256068324278221602133169887668864964567594308460164964737735125492292400217861228738080310139791864715017009123103945774378512854412179532030289453972244960477392882670704967339997516283970801189944353962720217017605876275762260086769582866244668190346721585121804365979113445793100117932075191546377574190187893887668133820265416984553530991306714079559511423554987350152408919075057108613457627004143860463285441455277189223691367441328466838067739412881772269217006763420747261731552270565261216765278050649726228829581369361070201294391137824815697511758043689370360297406688513325069439155467448392004357430856231906127326785335680000993368996232016273215060550752776463152572884530194209627824051285882115829534564379524128099146835075934598056466566399694438716733393418695113597916952069533080321119273471801931752415253923083433458175973399168234505810827259300344194079858361413009880914659465752289546183525136096738051853787013033197175173423577623131715988272795146735208638945647211443752076154198889903417670692224444357150885085098100624701085555534813990545955017923821146534361186811339103774559907570147056846151183671782436625975020335368488116425007807986775809338201175459767149694559157256586762137845279936758270595065052079882762638037260384083479205321468509700102364317457770176040126424942559620634655011763135875193475288010522996670797474025887387201857013653366904519511638787178566715107446467601646908641923441568498472473995698263357099530952666032426709040467002005693826364259690637577101992724405567772991014750652826985220940358363016623091831253126746975831410239732757094575190111388776571339047219096120062086276992110145233634512866424796950479833527550940604451863863906057354348867103096998193430897543936795323895490194321124413541934432989383521901067629423233368468409097611113932925176698124582998432884920411866393024028102920090479698400738741425421317988553429309288742883885633571438975752794692086477226492659081370473275129738634120095912730440499799128909961085391941249394833663853447481711539584906497095060887932139176377495227347811160613729263365094558415087513075009196813430955570231150925711242688119436074566227535508238043292493812668012743359306575463897260718855344990796223039816800990009699027564625551754337821920253630214946271923499109532545258878928211539266444068968609501787799796728723385001221953698554322795707797541711300104673266997149502120581766895677147228501000058844687982972235183124315129225963382658691299681996482113971163414363849359944405952906203221208290241639647101758646717031936433615575042260031207150069126275055687276201863781994753914046933847187379606220718806764421195196010968139475581692631816323542075040456024148954708818687445855927149450952642415044174562940345301515060041659936172117733970024216572262253869308071597426460850273228096364555570376602473143083026424182194932533387581290807765470419653451549885119518457742896501328665891748148436906254930783142527313711399712291713289116506486198363821204422612485189879498566896698226471994637162490372981405874171364816821436913653963712445005922948167185731490122867642196805661734730307110983066457189910399628677431799198326550241946183002400651353557251604410142546837725507552295493772084294821437632920475965371971870255498792399321428302568104270276232874724098918529954615404904200553377450393024595606062922494599173656961790875491849961457898310683224239815327768761147141790705036897629160319887050015529858826319185259731079185829072467804863494060889898888947999731774700194828029436152494723662918977098136398781673203448421979886723450874460829656029607429495241049248292339765735652961002543932042345402175222802863615830691332514408593166178089770437686261486078882118929057355637656328241873318049637876249670684023612832570461447445938335205473264491734955733796485623189171473655838684781743556930772371310026443440362561895888250101487867988823708937901020569644589792256135858586656840172659552692269268973797305953640551279917927969549207551004612908836712668664273438924396486536543601878587548550008606557691474134771868153837939725272990758438684675402638548492587267827527996732428234227433127254624600587457700648600542471807381876674757814654390762510807095323279527920371296060230833487981894895333533442234842435637786312949693165637470783098234785676554886869969041494504249551653266200743095349859116587412795381223384379417772830231257127664765279434641820942747394457270057001237235906056070109478388793392021451705050618344074681435104369087770910112220883883207864636157389061038987833753808645666408544993223242415723100327895517268548095539798868734004217532072493736582083885569649949647252790380456006563281928023679211599330959652530659615499232156053005604621670837554569309121387778573031015103258492241817084100524419343361640178854969571008924384428583572879250774964790427653625570037256237790474124910682457214573759611929844988475933067130542957733840318591598250418408162586419579545711471703753826844868311558289756912026596215464342766688287723949820947817504253973461454773105309211476415074586813193236158856755827915285800675831189890173831262249716055083079028069066039846310728517491049805847578546203027402465051594153784820498736022152897959890925486206430704412155727905895893564251626708325839082256132936761204217212565316534912152311633886219060327704003583168534274980039572811289835351238486377314574267686877255982684869068086144728512985806227939790933884072394877432685846522148342223588871521366754967229924813054948878939425872916276329184417585922711694589839580902542146508123497517545887526953691141674236089717557832821172555810199061370449729605197615386362670908393168990815748198216126732751050109212894060142848733724511660339252945087667614195650470272541768504013470657640658162673708231518816986133308347802321958519694174465345946041093900261021629809568448351063474483010869178977122643617905205612492684210735629256427681460414005544949564920973052694813439607408897732055847477136858855811321975468586963824042315194117510805756507424774907153493205962554434644372349453843928261284157084774271407433719236236205469504837597613123310012944824138071680026922322852045258152987123346520668702005240527631601303895684020307387143603227336161533634207153106963453640770348970626968682464645541665033160752866734335773742090350037130343972761616768273387129390837879268485555540087290124094086367260314184465777867779199176802782000403811107927755081993331688894213352455916044757425610529882570628537634382026522517151029679621174341503105620919967430161098881348470080456314001212243773333056345648867888401120520310266265751730412709667281537530101307044018135454314393874871629854372352486390172158021684640006711351649271338651981758933151666845540647928794079531444563034547635702649898131170825826402782851606440717782260912855127451393206826410898988270621979326872160494323752404874983978118373175634235211653465571915226568910132738918549471122252065551399119340982588807429382525319486784955682428330937855826364574395136875276897396343793272637629772046258623976855947805882056063302084932093975274214348959700166116224520944358681719240721663461011636696713401543593996625803684433735154105553244625206136227967435624630831066394929883854051486091191668116579916806602413806835281883036109495719092511616644110279081554280185029607204398784100969403003225667186205330918368391307927808053120682241120410656491340970372959419897101805474713578639307500667309925181448536362320409994924840089860266744204973308381841586383001223368573123954277927328088559823616511163282620560139184874636373299115269233977755104037691717377066281289393984317873630833887656628420540525901395630373408803921063578539215710117191311512014746976442396536886815650389467968266831237590739651058823580018962769036887012171055854559431440043233331000596035931572174617852484134187242180420708322061781782943035968671044985367611704537735092260303442213862668240211038320017037022895524985281550608291004104476680148067495443855885261200610619093855653975706501624243619127894324344569067653751959321270907047277792073672649732448490166515550771302520647530062741127833949813188045009904676917649184698623226923102422329015979820076512297164528340237327967157949334327549267556341534934357920471463646693385016007212432118405665084001322641417950636935390023487098548575060510283381168343965172584527004172999505386703760723575893771492245636814260898382065055053127225467609306627375247759911547777856922791401751464144533363636687463639249426912731077791029488935715996101555920501406787639534090553635465901425361717170077011055531617961535672578226053603453408974987735690504391898102127017123446794280141472345085191777460251802734772829457918095800556693528665171685742130530023312521488000428750588244376659087230910619377369851688445468379098686142224260211293624875564522298043759157127836309141814477072062783370154604748194091023402009936526818903069049840625994134248752623059122144756315025991509348084151845560655098118401542883549269487584101683919740753196240662925692420186308871842727022177540900430669192529434312380339220389871995517374467540327790070645248473511435297234886017103935241977817613260522329881304660240631007113928145366884895267845706205914360444167282571395729596611279820429850676536854090214121701908100911439946572562382282737866402297036103893285374118244266756879548119487091679908113743032918744003507999127486786918231482162666952495488062804685690327825996095906017727106410405232303882581577712423536226203079709287733922726847668152320199009039965212787964242506519098654536989497540384731645548134479230118651286148941441512908821406987250829823485361961692150698353254970893022603116244796750047827491706399988651844922066081116710120003917512061399086544657998828066455475002769437526495214657964016863753704717652384161799657365671766286402156104523047765606417498953637097768207393184016931692795367434229552544269521319236754567597335606859658786422620244352470125866559075435906733917965135984887751013738961747406418165730272097488162556190679228814451318186407694414726647255445744061959553742485310639720293636134703546708116735338872293555578504129853203610174622822799708363202341779085043950878004608012600442496845904634936330565695449621701228941462334853416895919174831430998127705140758439242626766648673337766779341833288474566876051450174743218689387499736937598805753593080145555789045569052517237066984236729181469377619829045719519345414144599044848355977717226424133596158682291007123302628354344488269945389521617787972982410039633753583779599261674905009941139203652220068320588160486524746485621131725319526953006856916434073556312518367543669457466369223772367042713732248331461581764048184361120568717451917552310664275055304623895585019215861372299920783095941018830448079807001277569550387578662954663833700902223850910489199361237706157348121951991134766156552296907794150669661955086427455806797676062588703129715048716792118947454385159001571197670286335833461868756441940558595510776513641120942060325028688916626566732019893494883162803999828077858084871025657151749728502102214752565126176711412415255698204080711156212154311283978291211356824965131156909179661660130887358339121911481303703497705110381447479836537017753585904247359289954775631235869816362550500276358380794166492510973179150921951289960717442347927606290920002440661258718661412399423549725463050108985096810265056934004016111823671283626977132315915101543718208343366488965474479818403049481891479891846886639256588240015505322331586617150993350771398567361047841339098051976493247890834271116615683706881988069376626578772810843849336359379775923717516277277710810242908954740608989274665377962146386844548945869177175890490768419288994718752002822338308028896249722505758681627229805923386424952174220288676333916826063479927937966721283138686320081342161929817556420246765441513490120785168292495881782013093787452470338696736564471132835665859594410577547583600569221108509998259935547337088256969361539002296871784038460668571035075105208383343524178154369445772046014005299987682409338781732261209038089884683668514607690212522255409614314612527438942315509938535510845541393336496037258252193752954247269781435106609918295631626797977656336144447021322620126907578983440227731899214742527700523649711025415676691049922630373040259341604967340695007051457607539460002171870841196607107571063190256014911284385741214293217821311187696768069041055911372398202175341884873583757976025627135613663001248856368838775971264075986719870197267920547770181961124748196901922422143406066338027445378930995691279717417376200389962842869895777590784497303511151010561969217670593161084071807996319192488243732538400002807624542273877381184621081487323867015485590399492552809199414902233052654714356772513851112537126217854571600567694191760528565447616694078328167925119795453137248244208813164100816648545988682254009903439178224540479166819711146191649213515602358105085781267366528364064298799959307007279843331689039490414330241209823317081607864277972424541194100963688569701549463252602895662116862376479098402185835483847190371026573752907142087373089411054171227700138825931147240307356067419921875301220442832955261974577381776672159484873707623381760622733114185959830877075143345477736125398181488730048840679038879218971212184155021293272873629973465985610185332129556820679991516959342736455395154986562949687329701347996800768592997572509727439711625501083534407534371998120695447289756371852328285967566904367603380205587968656507994832615150374755049770775819330197793060481223358086781034767914089195145273801266162040913646099315853049879644734730731439509767107082194882439856383309977731201881379980562807438645872243438054433462371592409231865486299847729941334751769928689633184833227957714617586790332013671833763068749894622705563408764673147198408902130866579712755305075880131796383262921874046518176779753605784374356097811999525720585874676585108250040831471426326279617663255378701006446729570918661491289031780482452473936107021321773650986848061147452042884019393670859459451407324414268246290921247747994541117535065277909963022682661661291621429406558774760973523878220757162733605336432259580187200099850679451110248493826611084171768092582674457506882077930208737948559627191573909979885420137151793954113134876784546508625116755485067968724141148838419250264115472545178319530160879628805116496588979586650203005876270636854266248755979479298244518229143761180050410497868628345907166408473560716988370984722747221846087211123826658097228456757349198326569566147677996959981143515710711214771531237341500466988117903735701419897179602198444384966572493006703908946180002570699520471321806987508203426575319345242002133223553731537556795621999412667391122479840693637538196265243789297256799863578728296529863481815218105370030086734727234481214672907267572647107293413493474232189505365984398830888538433507934683194847572772750061998249008609623191618191024383344942559175164921377739126174779967044429776501822501377844941764839595359450053869173325907884322186683238543060607186616702841676118176799938754400466701501717532977411868396084289693273076111715031196882910567798660848582872452264264323069757190269746445955043621922434151651777407375559297596925911062090561108469845479922622757866750928688283689466129288945913575578592105208584885229704943236642155567504061830017097464792087684398003471437103763250802259064774546230483936762690339489252316629233561810953491901923125502008864409549732463060603965381329510904012211140941608126012667059125453241341703889565237466526053823851236221862205370368688205114428704512970064776459596191327975543266829758592653720264090059342682557858602483324609058620151651297072053203615966850542373546434623658503332565023499621219565439152798229449888727962478105021069174406049144590268943842726859270966476523099505838439747730777897788158524477502136507572177835554736720863596107322648455563679618192723939417673076467879227016323949567596808035420520597646839474496914457749113891542638691096162950422451910281628210083889081112265425658416957704788251335940986323346177868491638080148402320385112110905617929552311634631839699935541320808944905757067444548900936225225590344419132142033932413395726324857468957404033549131697610350535065176941013649197141019942028222374631458215910223362732022565191137001491660423565990545068064282792702194532630362485613512663234041668809694576094945157920781738304018231393327745683254722009510345639832547034563221282982066171972297976804159816685764907799520766334684999417258031467297762323015458344452736231944286928267430627202443242876660636518175873331865747047822172171202725398394408020218695471103822586208632423029790773350751717465804036038554853542601636406162484695832728971955795849324636210011847636325805709799519395711544928452432077327294546704131856542571503376039868184640366419328024103052538095220933300802388664808751489197073897578268252836233990033791031393453142583600150615761612061856127774513648325297271803257110418952717177281746111023620481727142550685749089189878658241392411485008033355244661265828428289571305217733171754959654998463448927615722504449974395985789052686928215919306490066100374746131129513541997338512373707791924293953285840182718388351280089872604310103469534140832920883634030680466064955215460354432342383764771646466377149365575962573218654291848699689428650164330634847895533358044609727506369519451977335361102395757841804313283187424937615741606640065829665561337054281999681705035507231342976915534891927779466701316499573668324950678811379353622859044782956713801212813209795483658854741018870214926506270022808285239947194409715542053570342216805544662308145739753015262939288733817750551869287139803199103224115070449195383138442856581705922699142509796659246215238066128159420961793453992921534865202149588989424757544834397607675703978711335720830677151645567871117919268737531714434349785119040588325542704524568491133639679189241809665008683393826653255027500919135115340940169392806085083299471299686475333026742044426897135512027529048659458158121421119053589238552213273891040203671198868617860784664946101238246947864837627145232483292066218393820572537298154272245609968363680461366994323394469578410808593474726844726501648124437154375260433604948282826077871695675080391893039893027685984039845147833528532595714881550166193064590736462027744225213182620214805127726465112403772846777646239321204548495436204100760514903410118646695346980533499339307465154824393123769994671909064442616028949951661244245811651340379498016219740867025784056570153112131392074749967919012990183049296586296493612358322957090781111499752280781436759547230216210987031276640854317404669098314961618534836746963714950111968652490835884968517343466513570657536970924974549239728095431718009148489649550421231011109800125568562307710615252968997738088294378552028250473914881403024737190038196388737577670503580983126762861831773369342463098987644741031004645260449974678337059776383480806834107111914190551167393700946895700280230155430848313539628875351316805545720339486343342318171072200449137598176583598314568459020984988606375932554250050444865618776928967933988207398326114680989893849428106980803060713977304652770904538037683825104714991004007350058340634107807683719937561810355786483085312106165421643735915644572466134461307848307437818290422369624840802575073446838776585762368053528535285999925059229607956716719817903018500214912316121616580169365145568811602631644532748004608160829123465057218274172986420867487976133692602088030054925380236011090626574105037228694191985460717710028186056568111953240966120124839589089487126013807815091300138405729225529231066497705528609383781788658109606707037745559008050846086358150643945249517570062810966117992447983020661744870426389080972213052549498725017629560319139047487008469177309278820857211078385063983312289798591358745453507057612358801882759562600778945978692346996124080700775836715103174181180323210375211014703036556315431305247859748939999055736159047295920114218793689518757190766173388238635161289686336692512215287036915360818885481832881510825320429777891592216684517583004206073073043678991442619421845949362410927854763113347350651315043229541946967192183695536070740530653880939877383105475935068661326028896505092806485082963998320447765464449762295074704884782131164902304708924999365675010665610059872009570520541889756395695714819719363885105999322418740824378518690059204371766936217966322458472182900708498081650443026322142381370091192857207571481042416391692969949847970905526545910654450709444354799134587973390584405842901156206047676430434133729693737733264385566522279189517776683744527888117204221871325847087524979838839077611736307910471039506956524137966516777751632643651979914558755738947208898577355634375622572006462672958240944973819618249896060342835513846172842075797827067969523931047375177253640724518878083564609265367506111535080393859751160315800677752751303741014502697604412943378595284306171942284667473247237612311899241044034884501753683760489637742867791145614673263207679542526237977567256508579141246772432318189161012963924996534557535400757135136795833687969614082594190970952038609154290677946760165091670683355825364451762909603843406866809078557369586752064263594335032537486181809845735353755166693041211299652962750574074607442959989843438238535130192745755247183671333153387790335190179943363919418820260495201345077019567685646480154540307800554900212191260518254132622300697349283590519581277445752170674137982704538535489948684249442808044015542557169715452170009034741385976818379429549712553499187555645491338822261086691588809887758260266762027165855019115621295219584224254233569974418291361028197877710540306069695062329145728402585862212874704747350464050798215775465617444482061811968950016452646759816611588339146009285872683196685035801753755837998014842512137176318727040053187258492447878059909442045442371046789645360952672660094753489619712876938634487684421840722669665261346329059236360626682194125059217397053382130820020121957437543240424105470035321311082393798795436860738368012407086860604506039940160503447377341822167054153220703111379657409376327176101059679908923266568939609116631071579559204616532611189648798302773737769869173416970189945578133878785660598932254375364618381191402926375162991264640129111881780719067725751279626686271838151466865949448889039477546931213902510118439716390362418794791684396461583081397946750711353423322492589609502808199530104905530675190888547059587448958474715510645573861680306498158818068900768725131343708213489161467426209986227274935074090824713576761214466946618251460460506033820508453119164116370250310330690632171770998979100521692593682611173942789788882674724578733201725348733055283930116021146313175269501646910387381290190739780960382010580091841424242587272879109127550298433012003303678224153072045629496275855237272917746706650890493718108363932794266450160059627827840867136288041003962751362478540804693010840703467946978754294275658905559808639949024350710479689551507824261001822837938156264789550525514389539640744913418773328886242918932882004536817205736165744835795280523617601647689430666173717281572005365596093703013219320020673955917600719686527853266069900830460945812326127792656123575215557656679735491757280313260386085712721369699546601421957745086057983224051533599360300010278885624242154902477816647747089598394351564975028431148602807008618922579264890842277841407302292081637327837357055800764669828796813361315170002443514611765030313806428418715000294423298610719219523442809663001884750514890856463748574437345391507037078360101254230652443527219101774148173577998582221275217180099516771209518153483998908416416576209433372326678178307894549955232789468381615333395561002964898297360067510728014522581677346631483918216560309066027337334991842521889857558751773494594490295546837265400459464077189316231032068149032776616398923037092307458945721999330018924797118726799940238735186483413594974953975678211285558275512595774335945121607750797282333234323893732490833259774412318102407230454511486041235557277923365227635399929304529103092623728896223837997265709995483471217858801556927051400086543763224803640043011325116640569768587224181233988368258471077930231790179520101411449892521450968096989492626228946048894961869803949374022856889189618932284949498369060995350095111868034754669418715101857748090866311538787319198475873403998922398752986916949950403846414992229604728141776708073556353532870701947871384410382267264755505502267926437002175166607742590457552655094723750963014289317952483353172551380973316876891014817196079361310464776733948133345872718260520076904006471450788771917731967267464756303759865593623167646647606545894961090296878302126520121930519439523934598062751690390868521474130520759744826617869555079196145691834911481265176569606676728299937524156782383462749414204946178125010195430252101256986893345838243936169311564125742907917055050849206848489323723647121098972946444376370026141414238793378439538960458015951712606819235874628544373762923665353249164066011230691472703142861318991460909398856714256677948011958631310037636874943143375538160330144680424668529558091880832757722408622801503285938502295694688327693539693677074601475626467770384117364180533284887632425214924533788134635176442931851744072962971316169311342202113970361513228801755012373159689430655332594675029009220074668972668361551567054452374423191425378179375954445363850799206245303296235592200178405761368952631540457402498798131499169393698967860922278182368059237643061728386685466149870680828525389399041626856634841772566791341575461702470510639656480125474404910365802489215616954970041728458126189648138769410365137314803551088829019494183249877725005594257006196823800333955086030079931411048501571837509746705671040717723781531742084561154681846725273474390958637810634052571956446535772818513176052694442804500611755466982822750257589941014464767944439522629955557720707353945849521546367738707778383668171150955500219557073731396695607473530132571235324274583264125526651254218728782229347776888939414408685056435129860562336658712015537357050312394145819025572506603098323578080687870302947503970802212519436620798104142555838398399395553285030851643967326695391374173641161517823127862031715147260953835483639523270424521274997707493997751740584440729437843998253432902476091230331595153650128564307219234827623516278098665212016164639639353978042185332165910395289378511705074262917143821456826819196302584937273233938743085247250587109265130307677944098209097305970726041224257331071786368895477228674643297763568166225436076928837098050852727503643605069710493455798408697034290071972122695157510185453167742037879473794801161522089742316161218094661109094257773674279347737014344031994917122281490531954971656575635382965245737536271547390497879271213026509492991507005677735990599611877383275718219169859810309225706443610626031788003241764405268289863515239148337993211133210848007833031448453384171259556970447525021964987438731603392679303597764959768444579442779548772042558894777135268897516923683661363425685875209210051017077381003500256322466952726682100044355092799044246442450791288306501074785193962517171435257882503017438334363112567762178570202238428191437447998435844965925526356431333919707359076685625570801698881983771792925850866698483787087426084387340957832548751036013409181687030637392953810156249045354238516668767190916807766415855054182814680863059013768941838278267170870255980416278459878171745555605971242617823549529947304141285677718943709504804824507841160304002497169135146839334789936951337536244961579445803221498623005179776812671099743164833643173165014937624418015475443572263282177643884073748886140054908961270443519052229541958383792806953710005585009475960462131383124430341757390820320357765429273141123369007966335796788194056971189329240750268592474767138475070280104892355203858872020789139551421321817278887224899299004976677747809987915145581353089435926677747835287179845729745594467293818363522277951925430683338193892882102278386001748408333318237573487167973830244751616965922117586499084352905006421666322759770877783617369273144402192406327273614969268646837314804771861640848623713607728026627205484287895893325705447533001206264357160259888975688523760579309773572290819166187557753994747922227326651526741137236388605635896596073892609878471057756067650715138637419591407294219187631258134678160029634368035453897508005249966351530759689072601702131154937449786100091667714412574283378489725188091632961444422218348196626160510228002577973839906535816507563428224710756609937774332783220098430961670855429400726127609274170303215058214806581787737228581791395622077031098423765408673818114432988936016440872872048954540034383573289804754462326737228726287928832997123230422401159113208171691489782509058660229044424860501607321106164488309185376889595943048721572981049676550325380499330877911289781994529656521168103329362857135636718865415167029921071838198129558835411774602157704321305878699279849761522649616609319301112068505113125507170485790462145521995720248642368126749967010881869817297071569597166315987476536966150433597983117811382744327740760962725680666370498982842946239867016714664895851710066194479758798617875769337452936721499216253347515262333994012100377401379774087219377268646573749654826986855162782858560120330522012702604098626026948565040468289013813431132585786228231806993156634547413224330715625870190242926012365287764665861969771208867106983960596001768803784380619988225708666464827067759893282031827504000454870599268364709553571922746876974385342497284967776804534134620030213301016402613247865489909317591283172985707150376152663102057530165925928854155351620023633199527900701666917930776732867328056907352344291828673952817532047612438114025464616345001425626271395905403880990011891225078716330970011846179464354974078561090081727433517862360666485074419545429466183831656996140691213565761146343802984668996346501222958588955960420486531447665980806290589742962280683980940949030619432064920048550857642770985914379272746776317232374440593872717930390949174380021676468999302980442126808024016645139839169074070363236631190070985449326232328800683415673014842796355932492818280427145141633777288100668747407056028950933885468482474795894150542773912459254649695863092869861553006975743803928930287090862042026103209905933236661988417667783639790853700919160347128938676879588696662275703540962214120296734477751678552781655592519350651272391886481273152199854317595975015944867588316677097770188429914597087593973904861153837398674139359029341212550792543810793074317165694124996168684808128421411217878065606587019950761512251666686251520845698705452991103375087672046054090679747181346053523986067121407651922868462741563164411965441977594193573155793123593394753501648691026920376735393895414038782623397040076677606238388085217212830043965522117966125589337995594193439228333024145314348658101008490754066928784922788808537333826841107424712165017032236159920122916829907314165000286833497160848150696654278481254651845332728494612958494583226645125793989410099566918571655906077364775344119323581522946713904460656022647700935285771358887909771752181593580120375672641730225606195751330098017616353954186657074819734917050904027063305921097030359546288475989985726815781263662086394031153526306442822562817038399543565670321865560866943873882400844836641887016994786581933197299735387045448794733819188716459325990852965147426219861718794065187590187137303832006019985594220589376469640929675251159311060916254274384792401769954948382826987226599231580213137479061261216204051647771980690907304890323432225441919235191606291200471787541444924480202524904024903653277367638425616989287147682257115576658360053774675756416559357948815350077142102712773009685898836256121704833055187603233626453678281677688418634096271443785287891774172813693906218239728762567543348786326931983899958288419507551618540113389454749866326878464338647228191174749124852727353738143220813130787878237994402735542628032827847590922171449079701527145161912702490100000378977374131149478598107333549861698353566980529576640800324506441793642652014747410404283579263914760656758316006545671214070009399788195830196038895032245844329474514151837040621605097494038473750285431484947774061383410476045154479930670447112296839056496950332010753466604690742246051219275606319696405296464531924082404430385515014482856874897612282698213115549268736288174926654104143916327795031301519473580708616193478183368010784282569898623515229473714540761701875322690768628399323700511943887089746571274612753456271546789593462111434185531339062756897261968450871768469454284921701328014432098243256189521131948738065722976561592644042334395114101900561634230406455965580097554041313784145726165584907554280548404081209159627277181929251473040379049088592382171922006523344234912924644906831589371028074849068966343076791330046124630386965643250984461742250022495866758764198898534333825671628566525919012908454129957212731310260112715450250096756026833703217034352412794303264562252620200983737963378155794363108109754072222837141736710578966339732204616339598263132481535615523449405458282730166264275366236948686019070958808464556204404850677094969984379533990725745750948242291116614959082394842531572427301115656091266530555286647552268743385447466625982849472716810419767173523408683318987753319653300090818748661859357224964572035564330635505468924518380397264544397440723879021272841412563038877216779453372331461978049035165524373248943892620750090897660519773633411318035406993695192106013678434091234051734900329016477352505833782522014550596078379045699084360239796013896650201494689325661026328009367748652854453386967179438271654974492892593226820827148768531264522565115755793497716923434210486706249040041933748430641350187774114008700840470824746940811580827352478067755107139898733587485900718777418862663482559954489531067867241793290635435952909172007680641435232600419505780390673122527035334550091016528575841580679368700778610442157939195525371423671449949809258593241626724948671723671730606533764145151303348202572367050870714005392836066938848188981512189886719135503600849207167561562021906483329638307977819295082505488645219383556673800155991364813079916427622841365553400541629275856628880907699718027253752471763095285858246713758017263387104519910674234650663634156433666399063197707095625760168394294351957459729576983306907312227287867169774292103263619194403059039629196381115208164905321437292035455872284380489220498415469650240465797384046506833244202908993790015230337848048769179234937270581013618062610668421561697415252731581838670971681224601311917470166568045522920629960517628490371347729486146252296006175870138071507840904142679459354130147510434951966869420151657088862232686147450831816896666804688837835698117717510724391435643283711527294292797746057910594504274692660264679390888821438370322225034897333632621715283502953336380724060404492745638159748999356702343924308826183852082177293135288904158755576129450681201034791193568162837387355085601642954876712798352451574150857934645238973349236783771312759332555956562836260754280901317026498628071890940746326981392506972200979033214443854043349360687251409444202765632436534699427054975807583464436559506124549615630533023094383061055616648771274438031313933960737587398546380342222370952726590445478419180855821101150488418475773036420825911690352828227502918842219660416745448455673720346030012267803540676882241219147203869792984695884680395115348086277887723894538563600102834491651431658546297447994896546278538421285442382905696959324062363084480662378071727736561588965829793927812112415524139572054749846291760826731387557777730960438620305688997912011001407532365509508519446365221767244226198141004561333411357052323572113261694486567933469027587887536227372228143009640599864425758373100470025067026933704705885690817678018372876256401590204656577636846932679670540152754187930211852733896568369598692838076628442632644270687299053180199907218426338416127421771432774789397253376491059128368121196141150018663428826662980708707405902820654142206650408324165390861385456367864074183313323133202252178671996087883328635551364630010930343669670992509699831763339942605748672528807760185614246194033582127789177020099867541171232940696969717250959531303012790363328730454190032828970535940491013529731310042958694690460184354613342516801383031028148478871324467455401857162050388498184694766726048450438727138236249659618262504261753791037949688439348154699438647243375858056273712420123114209071931225551450562818532443133413650835442825708346531335585020311820507584471169927487434764848573130278444750270414626063634106475126964246134022255614337100673274477398345387803722508462247334678748414013463165712094989823164649659335863930922333752312669462642968496746416513662954849423548154628986953781037430345497464797952874625666492886395244646599398465752761180013735685222999472167440501523907061834893832498400127212783665968026669231603275391674574964237722878090960375689608069417757770196016988828698246121041854538615668262850528515850619659276506901544496971986108917585671636639867716178431876923692060979465262504445759043889489317226406664693532230138935705054347346652904996000069219885590730700427747376571560663215608112673437507938348046051050406790602159947474386258649177859410532796551959721203225699227430557102793864918970149704493342710335212023680535248308348596796274983211614556740942258099940601250030877565510036734789502928057897658329859222571521812503367882322976235679055093148423373328590813258597146939572092449819068237821007508479413503047209456643756521996413016199816573957901458343686697740840985143042715330297880027247051960114358163350057074566458289219133728063288020026401482197541896375439421510448198560157825900288868703310518148135244105109155811009369629813453471267806000229314353315458892490186963170461972138609457788435579995133583272698522581142072515005192661592607630332865038918633277701090107091135819139758034424102866876551485336493834209478830182553612531930560918505984016937374633307770151505313955634470865149987114150035094969415105529730172735183473899661978866038061115235806176235414022128647304736754246196814888796229348964019117399344812450244865727837267457469193740969263222924229896770878938005490802207557871348450182367075857204441122605916039651463528244755983776903546547157981281350080770509823304028135444377395950539062540149366688467794443942620913446041219988148356195614582926209601779938074461314389116474604847911764988994358648162488938278507693164201073740169717876050042718554430988529572807938982633868924287969375500502371464681862890142112313692669141850196520531930589514223179179649578839504570714611860065184048474913550079859360737947019946906929751308617429900693810899490297360715968947855747360243582484633975583056266514339387163657277894088277593932537744421821014451925791533417225283006975089641680683956053991050778818894216180017853725610961880472286462088349310758429477378765628280499981626029561823541997604772333567010065698722094898980105966729786600928123764374081378717531052995230702100711967613857690321390260452093446017003570476716910763227675600202487470826437654007086588758514945691491113351617604316006110392837539100038649681855788809101030301293068528099367746294314827737097258767654826121622699594691480294620022147794637002922339276798243269132082671662861209363036587903864694612046129158243146751712294290704168451652445124978685124122364162881341026814228611473961246037881750316128119547878867847544680951367351256591570057122100914278151106908250783840074521342394922842139576268560883465807607343295194493317676507879060834017877320498228351678388865868478317553874460085255358862982832315786199719745584497338320641415465597033660379073810730885246810153230732358417927659032316068717772994496072893524900064520841579576046643523156074426476862070953091214064844631187106208091918548756724504530716388034840312430291800810886522680672386431037384242107894829560729075367723375538048117189173818156688730108634500054664366462869621335805751998193535210918792813516314018989282904421045422535915819737076507184981517980511808392307749153258007508945956643703375217424541971376810456718463539411309226653808422488111216569875119141662673386864790361461192784095252660619709544551136469780804208443193537693463094278194152711525367336256490722365291956204262039420323464421638725903426929654940435642987802486232128128156796678272535795409128648353387489664292822756371797803065464044763338078784958781581159704171444685130440265114712508101251042679323847001264233570914185914679466741536742059401263918899544798076564394413413625454217190906446145090406031152543895353441108424591236286053370722880090801824581469317519454296365386395668220745977434013494593223094382220526164367287181601872957543586784709058461586706178069251588527091817659500481266507648879317048530212350326136155548679728047517700353426128432652509261144154961425943934980494636574326862236503017103193449351490828862275986522578653385162904046388078241222513217998280074610411391366026720902907983942320768251945224559972404517274456970565905287476497451880632880634550706227311632723318238068608380133607119503978551562836786516963704491391456643260189553715806660612756602482280976555641534144803368223405895823076319559403323074899683611849215339775581272862999473123103354945560104603081373293810055751814277504158307084621686512610551187804774377835292976015109932935705926269000955419417596796336514781871726697887871613946059006340147342238772732034369108486101071253011034000480756388902125474498231697459880589282644062339668320805097783649748501235586716809686459113616051096081271041943060936583533903977071752023258008137636316009266384236946423489698933273130524890478761174469467529866712985975626025810214191510688866282650663316455301606901951622252800159308217138703349323748536724920683237009727259830079804109810915153206813909249085630475520508572166072094195275545848958933030158136423439053395361341053130615540121955026322609352758568869775146852732467464175652060937983365126656589005920420055078008136107982165932231273655297857042556582882261764162202441225691738262011013292176702538172398530482543094020167833753189552569920345641164277764522718194905063644192647836160131498007423082441646381245916285864491072516452224004100402129177915565941972464191460304599166524457983287068261587525505296348145039078374211040088334679312462939118866004438624318648660615323484165685270305513469411656647585358244879904132422327438207565663214172369656582818015795393603405310173417608380977845926965057975793169263720332334958453459038530990336298013921585529444724582658034670395896966527555676967306579470640327439816164679414733512323422076143573593161287294291935678956217766150280406796975533656946105578227186267010438409516748636481876642246648654530371220844112821678224673984992896822722165195109372630553165974592291260604771454969100915144621564533027915653741678388395422647148716608788358476696301966844214570054257276211715517491679624748153828453558059989503882636623865786244374810481283911120639873228470848576907892026889170465736558275620788808571290170185176584644605666379312651711045641617169391010626512998413013670120151228866340113431530967222476022542116902549646198643185688413643606618162376042452410821481962321603472317385418558858968964414166457039925646066598708387571609782464425339000777534252153208163840468142705824932730292254673084790977273082685799806169255983901723192447269508748659034271561611451143197157262838251539442093479060541379255450710273550889505786565294698664227457309549349354999774469025230112730140806057452426442541398640589535069146473744171532074275881623391531434792598290982472662620296633997495267243303975425229480396000755502057382644673343706837847993487317875197741814547737781965449026708701088515025654184386372483224954829262082657098238381018334239300544612991231765879299341867515671600713306883343972254108810837803207357488193760509890810046481064234638588832428110733017047609828968616029124301837361552634158009020244495054371408102094745911632338881343914009527786186479537349257629890556926711362018670360450519104479266499922985276954363936195522810077348841752851648620423009150955948640187721945538167475316826638105951586477134939339111638152275288161529611357392580565420668779584987342752595127715639484627563078949105940997436288368949496913121169028312562273173590125121748784769832878405577614404706043320021418668101381217488190861836663651775052990076965771104652629876070697568749607160736607020407616845449527247364322834781071633651881066573601991950354050361462155933325205203203919578730615111806754967954849964031903461696322709332741733732973497063830322806022477375958182061498349151941439901510954439090121565590289552195206315700836123264083054337816648877180330674315615137659915541140947759436397178417313816574240600723020921860854121391157791437874419585562497365169464813380051997622051436600850586123390178919381968869055713850461521910097170681245008732459814907633979162440409132729852788458095632312196919740520431724276236858024453152332581453270461233733659458753821599659140417994299857920444440138950264597228635563049599975224155976531224606354979872422027746392950280046014251598989765244359867481517332993668460963516114993242966907453892859076361394138454237158067628835337326563641427075230898788252220498076833684903573980973227946369836120781995964953860273041059357583283840720413226695489212191779679788647973841173286764832158096485494526254164516025448034913547658310887331372990622198286631299046214335841186646490760417792422715876397417577725870342921349704579813944798727692241969369173105772505115502057421340760106811518627208242424658315737657092335343793979476638658135066976217781135258423983147572416699495394852309458681349263320246136362912362940291377291065740288878647726536598978204559897303121974397645952600685473470778701490142176432937384793880877476773226140221038816488528826751451844126156218846060920490152128253730544088856252964473775161923315015057203487567489614437518969070307228911299406486134862065112561805260818164285956594183360152407485090542551708675190557410009268868752079748393167598233800818891765022510169457138613540440381556358666799716980476228803169443145574780394393122222475609677094640301009096961299814785073398491904682673376096631403706574836616566063916011658043948025441645743739256602322557661516264847971646127369371645003222581490226778944154927858102588611964524926547653666262444682973283753940186848545977480955125921902313858605503220520672902210989586815014893837756609623297256953977496287144981300360575514948928435105630321230991407726427044848958520147738824980076388797283369385322613474539860388715892849827417506104412522391850200913410089734129259941775385352159301536353732801333773385134667130712870274112245652032040646074697063377308178654048987905847912908459963926971331557337512440476298878317222668747170631074840635291825525258462722877282857254741048951701920722483993808318268011995207000329959916898847129549904193462167610856434250140181972237295892120430914805822421071102994067352780891179768479885592758808890445326688062002196474473862463088155406065809457371645643232131020316698339355582645010341426947925526861299083253133747249480625457443504989394432269175105199983622696015899857223527613361815187581820553534426889059939857733010870898221613610075270512958930550187791905487088024419665332986753425717001982833807360049340694026783190170717256172027751761269692925702803420693760305126939872497188862290351301842223828585935292037750279630614332346212121612574145160268280149925602684486792518252533346878930063380050123517082698641263144599355616494800730125942513890642113167558654978006204535541265697912074872252521420488954110298110830159760807830792807352077645358447723864998381793955335455225130702910324912978678071561943306710800802478339662467329836813292663516473201773744877573020804706012695812452063799202779764005235045406100885639838155651146031754064647351842596227783155740791654888774160896379038939851760176244035096670115335920472049305469833571085120991301031576963290167303485371078827995480597005908610649906009304562661571026532361585979482323297625620643882504176305346923985737172413631859516857588196714166095697149435716710790884484163491895804367834698799043962559709816609394898814285331984660580721269281568664850187273849548136115186221249468435058191764530910909543814627203202698416801996831672173443968272557810255141733574793014325413578405732467409080636338861047027885285832977309968200802248132184906985271193553340319880891981281186490324158201922974094986805676309635281499234405982318571233421625630443284486960153591717509044097526708334465529875810376266828786199013503558463768399909043380943230647862871537476002248161325705416855756935381412035188187707768018952354161276712081018106246444449693767817216824642290545489278828705891742904103042567484617985683555282224043325347986037762754690092489138010295999439506579578208475803068081612049120471461096342413387688127599312725357807127986371316758149077433757330420962985998517550297523155373590828064295291748185643456136923777341600803611450637438567738121339269139301017061215349691963538154941914044423174153720670582832725748556156766111892590975774423919537576199899677326642933637489051342465022738357281029255578885498585418740670523492772309314822464162803433436277406733870331387118149636524986404080930095607942008289998702098393929453266565869229900178939651119567383264923388916054125830028657688230537309919494359559223195721838491909922099928795584248136820754734893729717829822886748798760993882127979805151713477540554254844340264009596346106829205987027510467256391915082097003522575313813407419459086177391340046995730600755789784264462617225517747453019760886277410096320010672977238840261968995343873741839719628044851358259120555782156652769652260494132380193563382326367290590601278615731768712242677837903323983958323923405764348035327073756126942989109677219276298779900899322248045087831764158504554165930404177608934341808187684095255955861491187457405660517872622496578149622154510393335803392329948639146938999103766981026850452839213593165623756148170967516810675333914315293445518589324382522997705508870134528728436800641772620348044448569161693987225462355521971496293191882546691025706086185167621367602243401437816499969272152393499802644503359885680764885604508079544412649060171829482936252481713517714305136659735035641571347001529343319367729576353539391181197052689557489301919451930161507389275014555455457379023082315208647724508201813577587321201004457971966685090927330748932434726214996351012812334559627683034915445821522366019507120236294842356806258531268780387891996228131648131428523510954116508228816844913624741767615444950373403249436999684587421482746967653386581917397118670007838561999692159432791733954264727721914640951689091080131617090648747211256971981629818903563067269902104858289127293285815294812416380588290441262641870313639742820584327710797325769639278140367476346111584940552482357068721441421855391191337707901804822232692559185265376434921194004941447311464889339181266852534883242733762480558652125483226913800214989667615916003708232757184350879766375793826247020565061220489699511324294216204097818088821873498109500427745350205447152581921572451487688999401134124912601944378808828900060301226666004544081002611207941329992660073314026119766400427048799721433480653208026195524594359663262606284510276698125083263621926381497587078909080427748112883804417020450079256425337208242209116048440811128872327144580027805977346812833459170788935388660936761289280248796842663603428152582913750379130894285064165882787998075353949367031247380364091908655839784782799217940449127225208318248077314570271089922314730089244678024810815615759634998453909984129668407444153538036012556855524322958022247094123215247069595972706763547638338401834484920522903168155671689383441349351372781876004760719054503379057536463842608602689490345246521539804333975249297419810882784845296498493918499466999674535885913891818423964172670118046126252659607841383293990821996042134015911168523021625260057238614745843816984145347856282278848591161218190022747198941757233277705221167378045055835730910146008646207299156254610263599532700233157532016220560544595908606357672914638167171359722722616658612535941175104717493475390718963316697217197736178346494268071167078126228727723152335360307594440238693689484703007218003548370162748535897324576247739268153747772930201835805985730771287873688216919916138655785913774988824476086226065996800627178350041757623878151120812976654066501230021074833195637367233600864479539796412088129145601149132201448121320252241004146450340994360619361290632017227213091000853386067434003419729777350920684362151759402124100917559482750482948607162885314596626359015030713114245510050491631818330235298823081575923268800691160583467874631924250992949397065355918516262122791901849478185744175752150255417284951275865410972068738189114662153051000128490907407785383784960353719564166630289375647787394289725651249386750293865461651262642840646164716337860253324798301590401480725980179528156022171665828437152902780284137428924888524094258546932677898020617551851230653478631213495357168844392877242507811077505576574206391474894179225877424713885532766255809084495014723715279736680804450376336338552558306816889220109460215243543157516398015116466119343601362704289460119609880211697553529976240224466586232184384853757692185693770551054553888500904519956269843997166086565793344881999772286185550027268007987787604185216716493850863732313807287647905314010499644071149428539663285831921890987257387672815126444299784985786106564317071462381534606736950524717936332457669313650841739819435577143044068499379367879944502288134068543318946103150887346001063412898029625230729865806868394097343071390945483152565278652983775744315407446631857155599774253929171992093408997498949212538326565183528542283896618157114479056486888199300538144384947397758604716441633007278167464239307162860641860245993291018062160482490963668886342890140550500238900923362337433243619535107672162295472931158608648844567414245944426338182991464960737545709781997445835027628011093394304577666455127175009836302686611561519424389406812931491535526302214991182526002861808682362776164646876369251633060770898103128883916883247081494664211776064553612423111724295174665328327049153579812241838940962514256193052807632012709425910910690727863472698801598005552470931133135287592758821488119301446923221694050819603947507807829295061415357219635698602480166126454936771385646562673705857992787791456363353559424634864766567876609543500719491501042260711552313936586120253597504017800791296301294170027988538760810990847897971090527084372331784469283184560108279753653369792815743183334887764398871693244109913563547328477791122512454251188054233764460043776510198040314592084322189471315556826609473056133987234825535393144415614136458695882976380778622539275903576585879407847397765042131903141460072211781514271227501373102670812963981801653054847325399622118135148704781813819303132558673747988519344402773331327440856636145463148208159639999057330455637846078162470284480665342804954943573519773338745837964132718136365715954452279295382979964559936280052285532970341007904049869050067782335211582359061368761086340234687890052408805709110714304628202873446058915145025942170949129673107714224659948788713077707253441103380975938619831664633235908316729422238300804866146384246194991350382105833625909823137914600551661388576707357785982366361503199936663217864944936670434425677737118829545839462410648559048436740938167062362853862590235242809974008335429118171285696982578339470827198975485080576889720141713728956463131765158093376179611677932400916982298952988207276614410155640618300351963602720541913408529445307795064673834043989039978177409272604755114604545073804252284500122196222224408652590274299334273912151734759897095068583171993769932806773614296853286350602816296535833223968370007378746207981307442990275074770744591487519151544619052486162550873061872067125973601208172577966399849958102193378295714776362986336532511395164689060426575002046717205728826326675567346097421985151668356712039759173998673621064415774712687787738639150508663826386565168889489847656012095145317208442018386477152600145210407487427341112897166130485224956012675992287242448060546956745604908971186941400361011810798644379238243457651027482744954027803060839791013138032575693125381045393867845948373636432897831734542345397679246237652359521979541111179666420373314326664757744489525625190014638884620981046887066115664467860758001904886458863676399867542169921815978434004225130795990877833876354447143307456110105932280277610454376821932198772571468105358053152650621938469923573741263257701805188837810383766168196164454023039665968074028879229298432319024613834176018194131559475187070431061625928821327199114813063798928076510181605574108323154226997603816440097203851805993638163547635018401758170687616242894982318255837520774814130879740346262233307145565604258822177630984026548631715222307354515597972107929561777918724910361411171575463222757898723690331238456928970520762817066295823573826198986648672281021605560916738868997512421340344684464024044142769215134490586956703904036557461929744975617818398348211869714990625634021485918216490109314352853570725760286480819377757062711370747024968684748076441640061311600822767633054468897087252698883213614554237166143543736444037736249820783165050816207702367563343262282302356182690090908130000001032559735888199080597414478016826182376639190454148951139958503779907799879267471784279377016913397457178250376296483802499656666431040069325668687746107934418529958667264565491411311908030754431953423124156516077736663847304959054353904992606381207685753712797500023741578795080608507337800824254677300714622723527886721529166922995645796896775872945746425392493040867898518904916154051742775588617951351866883267412949289321722540570811034092426557277702014048302291742805182988723650261765020306108535582749117793567781485558857250379919405616375924395800632053827354378708980604428861744592150639749220226393553940600409603441500620992572162674189431788485667630668718857902272654354996123492880706724390882737694864374097510082533687986035323833320205775592448253945486660136008907639984041265124012188599040556498219984176346601665239200740216815476977999003444367997289716706693496352153054071930500883618734995569410895911342936086546634246392282419558612927889289889242400084601982466593366982612313445596891354184042976626146330785419127439367026454622267186046535820007372131599194731216729670379141780368064018637535360447544072956385433849441072156819618490255987143995086442663899193303083931296996210135893357864188548513777605312428229128675639238894102498936176518610630334201806399785930240265378198461128445650621805646308222813950062076850510460856023763442809481478001653012700263121366263714147778140460391427802370018954206231082224427165618780512124824555427012481806377552185235999957335949924783281090977273537198302923211676034490393665772470499465487720821631696651750652264893393601140606259223471654563559519755111925701832468902534376272319966784222401866255439576679929534765449051855027360537902372040003305477050715867743770096030612327914058355522065120815866955132017630979292190657607736032473057390576800720638132741133507733923595282143634393428109152645389795561523558628287776999405969001118410538916657027566555068241447486528343913056309039817134219973755060617705246611053470702713201584322621677046541818617132254804777965421546785480499167841798527360194282668407223681182906387583940944786371383862929131837617010684339009266748315242387285725460250842270798200124962425296774580267107498014594935525437814102210995027250940387236796754789113893167413687804709457717916804395287577663276214328100283458247710319621176947409769684204651840753331308772730925357651642081918945612772933693279557633635755200584237692997679350630657771183987315729145105721638461603367647300207772879012112252914396315207288742818434519484995045485765458918855149952838657817043612756888219687630119734898337337018984472569938970777353610765005049131818301847214747726144665984491312710186914286100080978710784601430233609073536001479405772098452492715890540254064003660820520091690263234077645414151226250102696560039093650785810782096349659408441133514820186241695446759261438216562383071327188703732567482889502542923015235373962263229105574662048679805805333834892157150614256690171513420797054834834264498923134890643054111747171489339883888070696868101297195624097237065085762462690913221443112791802660896064697808559647903275317466554060358307643862528613858960990761263940911021326070140660692447349880084352437261084296670795704125449936618218290365208317173914285580568910945276764570596662161490128506421840013084410670832600856070457598708690066036540036305450448747699237252229194119823663822224130367689696867049076955258732518289259038908583011062157693917642304075772730844163345189166821293085341511795844967660957620770487024391145470793312507695835830565432942389117572096972464621082737388022732202157623199913547118515096434607780731227568949578681120041317772075880779379335265434068838233799999748769617068195888847424759678886936900291787070502099708466122144797865387464721777771495708599311746111946798099589060341546781896335743245631952977142551502460947569013286367142630770331611037211888343649437524167343148285152201697503757992571782792450203937973006768093711403409096185702864090487845159710710973353907741505952811323768600770352314660273147142448691893283967683556805585610279463343083797887318772824016789431915956999791018892937012012083661809147744919102831112694387372042173819101236038049994602678371418138616728377485949512057567189831342287880678552580630619803450058616101028606585478672943762514214386281220250768414094973364559564321004373650802396732393611981180922904352111654873879455260674829348689190381110873273463212582952160825335292270230560715367748512348178953645895995096094817709185630067179274442203490098793332844090250441572983322927642635018295687382829676525225364181578225819270163340759186473351758507570410796100610273369165754315755705911636053840317820169397667564261805712712074546320310916143394939571421892003657017242378502589372252719671635785572334783334693350185991857899953856490180976601909749610908148055246503514680558577452114590456450489198453564204770986329443247893312680011988623820089665148126464541470247705642702429363667963742236765509585688793126096551449578379030671031554359209030438795807206809844699361102374680915586378055755707354057586726366927458233773628959793416371749214073015424321488380377429686807849462564735709392726197627008810055773227899208729561615746387176140556254745065147586117348419512227425867884754560640519284038961334067318473428190843229178678559518820204971122118496805908908083403024000983480163153850449163802710447656017419380567602615166227857012207834603743428439844503194634888043912258917313119920298874501239322542934218755589605269534876880958718328355977529163459547187390613461481795667294346454995260933105420102471558919123446032591420877343510047023450467393504064669009081869545425767808389683346077016534889942767479256351629868884003495322696024217187331957062964042824341854626090894286500711365434678459530907259371298561416020465403443853575576296372588808370033323397938430578429478517611111637793997727763642786975857001353500835401770825071759619054707686574373199965193120385176802452260610054220037620131191709443133527474036292397466588427151876235042504096848702377836832976791525234136656248218170816041873556093840108165325962830989815393728459751048640013667120947931184559609101651516820151470669680920693991193557173028993513307061965235069520222240251349760690595656462261655560382396450488353081805953139038545006471995770093960585696748996470958610558317617243567173847603203268468278078675431466071442429666109269247997783219868382914961553467451445107690211728844822438641129442062079070613553130555950314380148810999471398340689851117900484976960198962187201800816825000920166099459570032967304625991291392269950269262469064673300541464716472438480603679181179248471836728968985814360594612532219900364636338126229261013487948164414331551979114139571299428759367999382676910276084433976336711889205261062194292330113994973883915656546138913077753328771500101564853830497443576926678090502720323289810788766207654349722918075141093896839672477129628380123751812173178272517473684314800330591134066330824158673273168448768454911140307489762018057400859112023373955417150190454237748737250425388261774823544564207143136439308868673899763874546720708607636459083457256051738842810487098085242313155257174379626337853620684557140509496484822029012137804670456843772698696438613818007479694428133944977384955761828944952658287526835269520150011804553604851317230606619819004489152153476716813761105210753398669051772996831992139490404095665819004471272404245223189189993071558688787047320592272386338833177230804924610162260832501898776409867106985438122377263105390150647116749830586815032430231425489784281046931847947155846058864727363675398504758638809874831908856323057282988220864745047199706249310485458101944021802200494710053308035194893033729865581268404608890156572272604274774678284640760931619344441030988030680050641572802733717200046462441248608806534706557917959350641381072403613806228720858000114869393590717991617715431821743286425835410094436117967430810097404945657124082849768802917203358796589883130194573126781262242222087789241525273448028908177401905442201223433243407361272996798560995918650344515608564203405833476648980918326480886680196616889990532284869791857467159576986875232661324421627320000659560425204519024227435824802254920841994978005123647420361296805244539612954577793740921217204855782838888427123304621283921187182380043782640727653009119847514552866236203873296190442142540805211012123873578251804897846824115916862900288572070072620408118163545197810321474790333295533579501501503432174460734721029188345283239742478355227667925597503850073690471412085818840598217419390600454783622336579191809466378512939595883513069058158752941339136686001181464238349189721548819617928679491346705646594081950402538967381690051300726372998410450501898690531506931625158447968858581700741953800365586896678104735021532560647590409098013860095288633319116059999974137213706429938558353190064876715423807864688697631347481541845030381785693454125150725405529521017240218514700192448314700549246605035460691248413970991659925769783033408405577309125325223271280649158211940870192791312343545184339580701237146536930162768520209235012354759678958850446141568660405313107401054589891730167774242961454059838766777020393681291148484786988464141391593537126603329291595922989128504311273068361862377050658288749116497218583324949129610885619236741627277726163833956281796549959308646517056349901823929987559849174247417660101555722645862806363571924355440987632326104713704911162046983125999438520997209995201353864607357180126881671233560551800448477806441665452453207834543470441526217045899701012448085747355486519851241105283496692382670584652683820933883927925283660023443752043672543969409177682039813644829872278670772696123056462590103062726689594809229844034426154445035627538440295886446468689426770682459513179423574645418319027791841279775004838092817628485710463446725099264505392550197780889527392501826782706086771258862482801813143436760218548000689726734643433810329377477132624011902755650219163963619413775379886624136728896131833278249653578369379113357720210456001796936178950958361588045589050088877661178523501356103281144569676368895788857245245866558141716308223504866092292391508486402965807240338734808750957155759806444909340274893150874512405078555717146041038846932684189707898259812001174399483664655202396815102994053946923285789293610675659576089029493107549666375735381337795511926551245762217959612259080413066415274514408543104605346072814782326294504869687137770468522368925692275779775548839557448862186482664817328645873073948804577982471258701495140074071840433035731338957365422385502926336263298688422099701621992040669068215085522242779446815051092597022590191492495073770637701228321958501272161771708499674389805711402177557998378869929962353135254286506267354924531343998130225692253107871198116778705144423472662155175419334421214340523926379923011816361574628787933529667918123066086282711906587328586685772806345825355995962275531955470016105888155887333210312743533955241317760405521618810586949915825128914904910285578571255055488453015888422644092475144921425384888728935576400366854945686495140484823479684070605307403770835020279175510700176477480966237209423644992043853385701803438629959476592758456474385629045091248463469121165016259699481957622077605457120163858983854857911773068202783907018153855783954858888725085301898617754086546912911118957456270828477180168958095354022606465282375584896291409129417170537936978166477022071604962397399847302268219194609865195886597741864238265444240305613547119780365397363569360451297160834391243781901705579575785706901898598167864834234902418583933074804497187319377081769599659776800732132206264359389248961498871634666376935893494528770631858342717778278330196329023349201828813029419349300142582787848144561904561206851362922573487528102576261222945789015912389145045593693715503353968214235977869422859132186889762731810658442207112145254405202510070720920842588238320815289537655108843166253796781803671011989696879975033613051481312393033555907951419925686547996280367111235446994924170043072701739096014499282921715165873558342017374340728512341919585822497681106317766074318088123463952796155045892709231620230363108806386592568838566990127241930696473091006050467627443100677129390369582603161050797784946957920553272800749283969244906257720315057355483039983157357213856718509383539976719407489682559914975985912614938237893664569291946677311483140706494609999839592299936516221660697103152491276589299093415538850247896971094077213102513521156347458223236195040022730426412189351507239083875807968774214622965851504470488711250806893955643284514673972228579515623328934544865123359457731040854021106285322037733102700483152752478329363657064886423928435777353604764461175409742976821737695734035450939187916708999797757096243778612558018178570425559513496579966328143593618932248194498899755423812896412103395652664838684805260164181541070173758842173719037473038598579947635683462622653323045962656491380176276469542583817078847573489549830072594006656052726441448342992594638095310216528089001044222402077400115188045424639037265026756473795256990161841157020191826996130620618324816431222560190909786954732242575729811592312123454490277673228321151098720283605725028243207672068256249801817861716702820605755921209872088141681007802807540915303223164038356633294659039920354781050044104879793471145340826951764962093447014998347397123013236270967587294447607020086127518562307488340553190441218872453957617667269817742403072847811509621359053756726220119096986103551601748570149684703967344283888934841502902136149944640304678219880172824377967898977890603922776857807729759715990410647049034617307162578709805854138527666396102704606963149044890094030943909519440618177997820825878281816575918763882022502886692512215354970498193038265388409997719871793602981038612690032169332265931791869757671718992160893640155465232951405290009027271806280500839986493502912458174131769793557146495393101335573992701221164625415954484735915081545333494334672340710177522424931979579817387524673811887451855267553177730167983689537956706169826766918893321327866179531719016919213883472879763612924596707764939996797935030757341124834394971754043051925162745997784345585784853811301848341521319769290124794935797852299838792541664621415369602955240027782868745524334584827426031047827772234253003994954643785414353590535776379342205212448354149914271602118653680407090772151514026906313771504993061356368975241040355526579403836982832859889910879353014001140440596586503514570166903278666357578238587688699654062078851922582681164709665086519408251556957226172557678418470397466053581188992646765937850529753912698201489677417940205238586342084273162840771187148654680575308324076204610820436091846879706367210897155545308423628429452168618185865031031771134881011410577358035894348411415166781894455146460437621364680412301737941628605737719887541130498296807368084571540633783946367245914451765218994804406159383445910646593534062597360446182013990131533958532204186130030493677868876681844743143709121709071348215682148742991615690548320839418651570573481622896796763439851428060533453877462295137966855957300514551142995938720001474558865720944039888787488216003884489857863619845689957773614999860935937746977966847602790030433474662363245159516029072876720929626706746542488034298347025911368798520433973024945840933501356911441084600066840290119809501384800697249868146167590257601379559995915376999572382712731005284843664730481587290679553808736541672715465076484766671665428144153455121267233521442675680107261529040575170472926889661187762139012380914988107025664806257272272515302232754865787188141630181420867141908311945018820247532136955905843925911299422190461797452121623386110334982637013319123725049622925727607520799600637316065656151861708098257899945971490131537972185491922317288585022971629521002873381164588438486160551420850221827091447518118391334393857335968946433764528878213011757200040730450306893945756554066720422433700761778077558737956563056765251998349977437930965897879842907871330739009870407969940948641989212725117253748695477857749644902789106496447017198223616743199566705342042905901194257309310048743441576430452942718625068582866054571524814622289119485324417804981488217271257981020150683349799264429417818123736384747618063193881672922433506289453504218883371339107206584298743891034180314908773915077334865465210130155027047484331415366820238237198603689849414735967297226501933965650430849221085493810399094211917006849400682160519850759105535210055035511197971152733562201957930948121258238427753195684956529093950640179537971399934544655210281887990172636197682471535355710333321101499254620356836440379492329176459624700593456714424556360890759263723641945267148120184930469644074042301171440623568921113492631457954687741058051013311583869443983479860278916524215789906668165880837365684404409451382398778099844705108513677598455061927417380240856091534885046913468240093277317682743924142996178846915261969549952319083256795292072931267337102346382504383762137008774876750491574088314123680324381150061261271582154947061249950671083717307640340516171203793649858741593749570311018201530016516671506121751992882258298756363230704847923351300594309984189710129364842024145497093609391539798215965444425803745598323354381638583810862434600747655194671791720085624394046400071466649159764804017048193487464750141561834747123015567598501384653836704680340629007919170350354626832375109546785535450649284599387758369544607763308898101531020096975148217870401490414935427280066822901710588048214358720399324714641612228756695481142414164503032381307449810352099474880170253382126437813257778079514580087914543070633354859699605907956559748679542917457903122680586083860756185282430390950921415411591981389379546272949336842487243257681316003360854444314231814334158188615930239113219710216329512214452866861641666810877809633589927955302903608793783894906225250936210297171372252808620495616416222958048362086745432098595654805399736194166434495578882292868747597731487344970338229527181262706736099743578203205280413690985530368009348630385013890858834747058207879031148942292898708776584944630777223065675222554669912491155489201180576397761130353832599890272196430481368009419349996093431510602819447672593196422501250779338706219506601189820470049573597981531470827038906723277931944719549999321791969116440656039558272831504025219968655666429775491188067647600508042289315437409952518966180754818015954909124769594648471311133369696714501280297241440034466711273056471040696702793822655081139629024999486308540634331849826341012124028377208589804516986979058690079384142512203291913763798411131660848852521048602668677954556895599077059014265691909563833498580746886630189893910556753768510348220795043211630932732155344487275635782877558871236961458351919818226235470634163104871539437158210377852629033930255920021857055098694004433518513504501180946836739376762872904352501993933733321943069138550612510315650563911644040729435447428653761907939567501704695293655641587807127574956527945528479855543859839010226038786721146760503654493437118536201148074541485010619624717084146251293873560731443247352951245133395508371211394622682952021033678971780982596441464466371962941760863995203458752673836703226533446783162459911785714686348667240823067896199194311684487524912781219230278238400773784851043550866690681298032053179301852096248953695425563270601855303617849630882110862955388892415331181873572798217508773343625107534837027596117595302710739935082582754361025198614474141571227657179328184990728724554688963583751351277268253761346309966623037977115705151812329021862543474102717536872516894930450692957650082953593752902275520844236833475825874489153938101684484338120392102708270012026616731382885272206790511678459767492464749730875774564737359167410383620150384812671700188364228375680178054854478283466404888141266296341574059361226647728087474089409963550262855246549712013541686356581300783941883730386238139022302347124989227964160608955523807207924148397560095819667782885370498326076128367944380048450217792709400036637207185849331226303717368008587535770638995945212578967188460890691687602164147476085339206697544653434202334373951319711175685653956113096601866119097099435160291034416247061833714118839033114317034343740198768055343702419973917575634677795520893701934229505995933953381037367918408113835366477814934273870187597256735623774495347044941217922650257235062231855338164453232754642669821415538215808909641266451036322554690844478878761463141295184923309039107016727014779750299582967951940147340683108716052033610552469534408409186838789245117516983388796499097645309946624490326615312029462011630414527110018905897475631617572972695625890398961947168875757899144937616830888676847240247829012174841457801920935874313711739464547548674772841989499646023540872861991321775498658134955882252222426107933093875128249168982776061635886802793231937802144276736619214444756253633897874181853401133502830289770596599641573886334777499347950233004838226822863595505941098173941145064305417965351600358514309940217848116048267215528553062029454706675720762428224083686957561365655707004280553307623076083307551513151494593374328077964334837739452296809254854667876147333978043889831394213018675024454657079364799843423005802326514236996100633430879397420439574119882822830440790440707363376756535169017842156314602330505547488612357741353853272307467218915907184183750692606309841181248673218943688274364470096327669747973747239671462575305469405442802964637147117772269861494710019638379240968021916308900420372731672675802137020291314408312048278080405017912098708173789639770857915935598016476935751047317678745294637416511446575967996644928774166067974188140045015514084358847294308107467761911840141313471866443227789619004351184387610982804256040228267351564445367439859415535060607129295317727509431218395625940247518585507508886528573717557682777805571632919203630495849985925622665449110770798912096004948999871408854268923165835988476911283700701718796851152531191667765663787405438496320067136155372461884292841760584465146277241712790236601718560580055125037871572396478167227979089431804876298576080337823452480612928105495860327958095235957997834938723744082662222034609873586139052523104347691276120006595265212271634183419698484546443735030330591422116880629901409810940768765229097313133194837327814608350960491092627337928925308678548279649987315373973604793260399289527073507874251147147402048774097078127231415497486473799165579652380312149524704634928650312430298248069566583174496202196288512972665410093956421117784436094526050092843266235387579580980045446224956962971215518793436060122031912064779434373241944011192539701824718485725434426188575242227345955301784252499907801574892323054943144462010007447512538409445950359541599756042827088345864799334444395174204664878005191756066361826741122274903771597823712734450966995464932401282713412955671946286062801792268007130801163637498653440901403260720795233906408367309637551562155851088651782372187396622815299178877960219249297370162700892142549796367931915653704561927705158258604710256511971513196056327320444283853690275082297253148033266580207443164136580198294045179941005368908464080742451445034833280361784673732745304001435829675340862585909979770390167178716983607485977228389635088666391292416745541015279073806250577132971251871879430229547243359735636444584524257637423494671944689920210111622114746749796673373427049642919699271156597601193817089356196707798062733767965475971348282249702497059239599870038715905745958231589785894087807083436571880407779447822207846232969605192837019168373081338877186467845589520663871954119937382156655556290270747182830579919239782978765092414014065793178854507184781252875342283268229683233350427596659734204071071957058893067586545534905560114485042823117950559420136044387988886378317565510933426388397281913473317183532724211123307093310485906080118228879949374865894787924142434693152478645645771723546676457154596928649288401628789643724446421082758010047178905809845059936850835467372014299795255679750230708176378611280175622571848529376598579874059144339833747202445407422654469979037534997904978882563626273114882973151183650454353044237343754799883996328614147318986567842472391329846621496718086293215390381578777779054383117462229901200223821855588125107784715500760266703471476593049354831279503249611309809136970767429321677675554410885970998842238892060035730299247747639150458322719583929397639075477867000569861795140662104100304249239806798081705272983855782411227860712704249581692645082081111950106156227786805390200573288489944785747013082074383773194976467917246830672100881258747438345052150820143503819101040671971882921977261092688100780845571019367153072189834629908648974983902237998913477580289149954870654791084735434989752140539698067123152322328132498246671290282563367970723408823631770570872911545433284759337370723991156851789295827188804852865968853739929464834994779251206939237482269386936372404748615780771166765120513325829335978060734455023216449774883956668893296938087406994394886681106433661962142201614767869336233486511234314704112497745757239069723849540280322382311650036243380433769690679577110392381750151464849738145985592639283701785901570198922082902248377888189114119830785826646977763081823245355848681733863924551258848139861959420905595326686939233411327103971832088840699742029289597168043650084921199415868823962357510805390487012731715886730699442027902289665274024281692454969978985184265980540247864963478913980305048202226863510663255166677268374511284028052400573412084319938876175692726948095449865452698242497464191861840120275949115750692202445464703455211987452077276386548748907034730168708131387542581184624216325609786874527612890885259804970825607930177682580280391869043638109453547424569552847573942058977258219986141157318778116531500682996608619745626010493702138927918244126782434325457392368312566706690727128269856002359808193977905679164520549201413402971611930241413583170492271535567242620943391931800252205403763711281691197262505121469080316667759185825691870283371909824146245234405960011681159003756415058711510274643893709747327684796537291760753705884851360009699077227354632832484115371789174365800179628808685284456171601382847690520867168535346039287313556058217161055611118239980822948763233969994330354235941373849435779358603999275817326497970542979603371242619914093393980732394104743522685210276945121283038669953845631218095900081938394747022786665081842557674658987507338964181484039609288483228703062047637973379521092809604298673278252711818179871195923083287461869288912358458694982822093350782540668946494767498623606327116389198346539287084003267715150833623539562409647055543446950422473633647141546899963845980727781513232048652775141785969164565356192423135547826888758708479130653382460157461690387078925753503997945732481857814730556597531857738948105150687344993090816569203200126326977832636305688636630905796726106547495061604972920289771540378609818415323460777045116761888933874687143033289103093121774093232929534856540349175733211239945505927070400698941719974080464163452345220111306055279713511789498228770350378339027834708147559259018068836183392682742536247716478832573519482317963703884935948367644783683946447563893183053164058004501617132152685443202986211696903500723886551112419356874538813494906051723304301186644251486941548656456455687973170923777829359433431171261147194461959243305008677486312631637093289821088951578348188770363255389644876913889129631769060064541285065006000329145057788651022932783190147281320127277681008015120710043687194477218523657039980049322638098367910006917876905243776948140486146723064073292857681810865442555843922086256917122035694882128254511674680532403712984232126025514038733382807422075510788515120310486437893337799031414948687622556137676191948786252804128643107615298786315573308690685034315585429713136368067783087104192997804181667343423969827604663100142102827653374519200651692085683434391884762514423620521636466073039463529092188140837622543278318074434346856714503699165720339255234428347224445702974784882348590610087649484421596464495184608770508550947843112346031139064607907982194802890265245713750350432674017694948431309712208189690583380778280948868163621968200118315388450842708587803550348788351436517814733764914780855333736863693327405126657261514183042288200168742940634881025644963642518250602547254356174894232018829820165393473113700718123396361815717207087162087051916459251832517174585105305648520943971152174632202251451756908956533378203667711314014320144328325829813028804934539345584837043521902529818689522147344302015158545620351535306142746265310560666200825476008383548770927112163445709160254822502738222234597397526623350859548078998673604365074122798733043990465085416411961917465740033972617379067781090996234514898257636866358544037330480714017754847421503166300645154500388459683057755865261233865065349877529117698682859470443953552229010738245592937932011389952963425970747780071379236674742580519020976223260515238869608972026107716293752631693707965834419019157807408614525814345890497574168383636518494882147517812578766203274349343482931774646248122469730149829107607610948517217739091562803793537826323134082767862736103012357982189794120249363179607167735573394213630644151259094574037240110015747890441127232527970173725960125902386093711291701439594454855964253984611778406753492096153458700440656272596978990770450457369415759773193986220620983084890178727127322949206252510092951233662836213070492646761047157877645761748298668587650395116714933589367277932543778044718671282964915403606576765555395473081900875820151981101383702465311312745958771187713460933177207719878063240059476865427930529766907700603199296275786558503986484877649378581669786969981266540011152169575737433606472054210924195030871431516891436828425356490923370982448882895119252364597847025878711882807625143024738230766716264270388750370561824351783524451182598238588736215073723778076227492583539424190273981155854482696867548161874242363033213614244145108097291635866014107154721546382040442570612033190920122404748205962331179544424511004518199438521246623832798590128370253597132452013264761296509431449842248225792532557785551482632992978369393075551916064873242401854572639161428309040007848163191517836939542172864680819350052324088404274047914959036909823396054030046334336966377015484064374298353969822083815796765331626634628193892009062415548396600382701421953319568367802377651486520287277398863231362844404818584777446258566616780025790224712056388549618920673173418970647826441126991426112932942589545928891660709697991490053309611860088060968208553821724396983727893392157165632828753997947900044125931258800070963096607336548935577393496199800497341940570300017274184593822888449994213557624940985097172814423735959736633265847640104469783569763284428405425460011033381000953058954687592203172687429566502088945158369319789544480822956428647383726692724892752792853910663532949850041419450083321243077218657789640310809670271350531279914440461756661633666362232896609023997036397478131985489008014433246859498955651091674180903562725163514956183183086790762712639832751073421728968725530688574839796381836919319529745060733797320216530290763153133999859229433994868179278901461183103463778426726813145567624192810840927988804155305995945338507337160515774096455008515914418308279161270201538294972469467504822233525826118547469211222509907844526172638436068046262203606264885779516412507130034661899555152911834161678201727386804696892910100611204780135285427933228511518925486736038542373030791169137103704376732645248973451643970056548586239388243205656782287302247853800588056564625656431750945432683048635669736788401002642225602214281747847372768136824937043246993903000256637691220304601587070105739572064517594018481654465683142627095427569618877216867512586809546594931385867114117901824456929247216761715253542062956623954920654813052237000717913392124951246708612559560609545009954533158862041777302986734877184147726704176998995909476550984604670036151311633629393135923999134204779693933642337312765563892924730875342975306438649779156563930704588588856969014490597138133862474641733217763879541677574818634494007981685014219292327841394412985814553998245406471230878611251476322853324328674614261365887220578207691334763191168643650945320096519485214352483305999549317996830455688899888965775781511732873405725444737967193219754681921793553790297913024610303660683482376908472132825336620102176047697403000770395926523619639006104942711213230159980572716620307126981778671276384715965646343676924220889847014378227361746433483781943132741762931516880151917180039263235345453309155841356551046573213019555615989118010077324913546025456913529711086767526087612293728196596490279287394560909946142805981142686654505017223662448574210234605307568442962253444435273362002150729714228964765247829013003292098650542710971587944360183934132160756236795131544419502276007963705073259107362687121196567224477765108235671005042811155270534073886697089195260167412659316064044277067579004357634171441206056102497524896954985349806502835615839609307003034384610367290434258561091097204978173690802057660740287684801026540489101782247017249412249164168328428889853427497128556896050592285543567373544286079507526525315858706899938163639001075779332356190111714482784343292960555023572156088706550630703133074727436540040014614285059961309434158879453351381120313034732381283520553571176092913402588654615706991563922766986910112725892873936006305163157008567704785426468757394608465964367699146308181514889231278308616813005093343929435676113162905257060477159400059794360159725575121261067899873763142771472174643759053879918039807392519741168924306085025152791786413346517519560910922600224703410111767534026563220602705445666207376751381105263971850529318536210927644277075699710239325912541939567610648703878544484792670147038890600132106808729321311871931947098709830777075461662243289254605427505802462074607591362687042484085479711430704073712319175212317636221758958985743484980472589100583518963665893450789111722586023880383060883670670166643596696849711978753273027003122710960105844794203991439578066464857870425799204097334236435759383285167956659693030352456664813803969450593685614935433302724304253263516727284782134991991568714066178454020136694875336408612699624499161119233440565232390575790166672534099615435273801042672403774177515970652998392998177637160420890690108477155623407731535699342169660292182705587273285963186780038785811518631309603920587854856694757447588314744662779776548937097505060363968611145049363294774164402845560774106030158904455548901940217622482945413548368960682405291048846664123525351232515175411930597749389915301213007963345255281524660442966928162211223163280732317618289195595288108189031028940269982937080393357362625668429499977514957074358363382800321239215313923635886451585884391149312441866926602378426941741136035326502431239024288044000002756330263989296784566803429880300882501594832427528435969414050174901327909734641688173346970002664689601524403407725717703049862979851865485225115677641034374767036587739045052965019532194434555807892946258264141912058010576446373013026687878948534548917309002710033046713503728316815521343422107305444471968655890545916398733338032624063168763278810540307783653885124546860416799395946681529446671404320644065748227596195665920465429401918033858626289609481374407478807161877906874510630234835416071143872435869155558572173631128284135969905284828152757108670585415218870417166951116612101728869512967471652252228359849974740006771384046420814663793077346167730201270064172525663827381920863430284678535527121925726980373075058295261007369664478608486396116716354136511710907864857218869942975497371133469992504843719916050445997551680824632300209326116818757352582227618542268493128856013175585003347863165904022015266244704515608140987417707159237508111775992071059420800557721381459593957337373574614128938260398455078276868005825360848837698591215676453929844426391534234344204999385924844803502505579804286216183260739999295296220704572014582122561614239686443007435545817153773621454250386244492245572108264498637230539212994697812821103330142226947680313097101238593513123193870689493764231323361509453696298446747809028917540932635378044643648806034570145594433994241559510621089781829598931935702109556899691951396780731298414643403902432454506890126264073123973169027633756163821813724944057888543294804505111489991511492608242247085208206202817277211189397747607432700753553686888931863274138087227187331458216089087581565643404023885980194188226320925770940140331285738179212156948108229010934050677550309929529004001696813540461768494775158878762548148478487640214541506377899368628610088863617258644611973697901734766267810502871865704142565210861591502560872594685336153180431360935871541768645695881867794957537515836445442965978901533791407690623111985935706872898228386885382622280494653661432579651807314745017474567008228503086309691378699361328160116572030611863996022436082748311153056086140993499358291054848568402253139629716503897891867382275529928723782402485900549484509392509155541336542861167753829274545795528558747353337440241360735123120934993444957813187825917037684208303649146321031803416959617211210524844966169171672076251050376725935507509256256284632061990923123998347851760194117648371919025351895525704401426255874223294890930734989999886471032172800450155300487955465452106190419011813459712641996709050211902662249600955835675327066427554011501429290650572946801833978415558638092719212951899043481700766469114973330189015810042692885624269356203722934693037764854174940774822689909053935463688579068107948448825277935082178788345367898058016748734628843925322805331078617674937744982360037213813690845804549709409424845490121234156784689668502002206812317495214530165869391300492486069339690332556201460891583859294890624507437934280137111161843733868600948973543779513911466004547667310511621609121675368389512719276262039181999132444709483958843574454371193830500330683152420142946648957509656047882487676842393757163182983411884532702597461014017180536462036537344528651647969654338697830152162523417819414347646082470550289697518187249804727030803633485437987396709090228522877255277944395882714859711341152242910189337532482867906726972197328301085915168047836570694072017128810493881142362977793253248325430872928566167669695667324063596615470188644081653645453563934455233135484618784950673898440647092565440786213709820621800231641390701842251417129481742591255732083443993422546271438174265461909241083894017089721739296640663989753792388665482989566509314469065164698949457776128751118194740766125037600701323034385244050263764354188991489295624858468111999638522255967380616742332510959448753910605147406011319599716760541250603267120857998707773197716164130207810697440927728118901053211450817263105870668161835479304526816307566427560504989560662952805653644920649869009606432975086126669690045402623075353403293413013393818646615499848252275157336694775229294564590278988079962562101751913522219429006662591176803654825443112980771538313335204805376839764512244161906257396564955890659761311957416910249008688555068695690641380368524348742996799010412452031822543007196163112654677412224512568401856861827670281534871057211261341016477457111668741989766034119328333315556709226404101378117061670438139940256002728812119844970357793787114699832362718542408336387593947348482093076076682180379071560433822983685645140386546761247093434367956948297227914456075014989893508521045944632370208286270923707851279094677670973560875697639455222980558163551009318966469049909197845126994998163702826342766685386498767453363052712648745981292850915761677171304626160518423312606296177660939672635150903058848555551114716349597368716542298978841068954471853934787805061289830381039596195464975886804369706504421029842410286832259950578799256255283236875730662942725740945596145813668403693211169371705334648545718231389385608555329330931133069151600661543917878416932752107524402635319401324863080955574419032293192058941507232656330254947239263968374271440487737347938041296606446359318138210785049183947776097424404557677531683064976356444506569370969772576728390571954253165356120531378337938315427586550570334988478817474455303847329237663252118801683330531438841954428245060763071265249774243663350274517554946277561221760463536801805604098018185068639899737718747198676432570265298222096840781329138774965173618553121393596199855191608013381833118675235184529445283587979238660694069903219857445133024296966211717244023501051544163171678815374843910663914554366158647097651389398712340625464884950524746858179864118190985052128665005333546220046112006709103272488273038751419199800095078695118279680992522903341110664577235694990492970675753824490460741791582231647640966590028959852779775671446270491540141723871707187514074794251723419266968031418604291677440216206664636409407888319230592494596676193789172873081658910734485589135033731584212500066249594787921365962624119982798174830146094425102383337840844654262033146282678502017219066599194059849995255530841262286373424335295060861506824265891664474134055322099839515728738796269588824321695840212095397362015127242592160954373160027547347966293064274488466878924436934408077421070809375047080336339088979416506728217514966338353518572643403877255553092564312688476953816562998592999890398256687886623790346384767250297410306981771911899752933342628453467031510545108548244983423254781691177970092009892848526667551118112582421068643986222645846055362881073519777008459744816849476221634108548869543689648656906353919948202584252577926520787345616974058960561726414066624731245438016084141178989460337977664496786073665697962668802867578668042292368278839636742857549517903607862346951160602537218847128420134598299512859598039007907050065565805496418668501976642446463938114181061785065588512575052365944672338174305786549929402801043545487304428527962586412733625697250429675862628221861497359039779389131486348979687913796086497443335601970830869049315291799220825670475485355254453727818535747694803548333988882258856694343497550089637569416449427870883961994375072270246195193176957859517959095192072362870016634242683160022590080212952362930026322741666232703304773456542419420949969164358176037869193198116123161474146591815641873305266265347542322183578932588794155867378075162819434224445831815877233715828788867660572532464972484277812146299278246514538545007803949858971106815422485628976546389103724630752794267752972271689315725816575670328136959819719340622947591212702663945954641590061750624237307238007211204806709459321941099757209949310940768510307337548576992836299872150331731797541090649148318485574006051790348600293203966797038524627830799301834268764778546356907652991117226758173160806273199013570112778478826257189249067208461121536297315558539905110697723322353728525815861452324994177025669414439539241015802632527660853014148867244662051933069236097956436699460157118456855479430392805875445631384655748057950020986335703973458340333805778415979248024690202843055158161987516750590522580690611897278942210767975484573105523516425555412877631959233378947453536648833936796643349262222931231025320575983858477338259017787719277888813559740130477442649543647425454266156034676134774749480049466819151632737840583897300908765569496794840989464473017655604499424641449192030596459233596422676144014530830268005180276215571021838126722122597823404047373894336130756531041678674630251543738412216499393595067523749696605035747938307157091555746437383317558440316514977715632733891693402758864944165121689265876265315924888153258813455124096885908224800462904275907246451443349654193686443688987070959453619569631145277528623975947786438202987629134971592793684720763756701833936049920479004663880080388796261360037695770467104384142620688663143142638665855126886762775026092675424361598090520837369480021169903948624028566269949110670846720620731260800722447264095888939646200498647524389966440691804180867278949466147770815852179958111805005875717545725423946039320606626729119867098931112758645760123974747471822461531567393799550326042081038564958604930111996985148512349745062832914538878080965912188972507660500341239557280191090373032651654623774949792747498817911883026415890755244510867408355322998889323433114512115106345729571013172556287121751036693008499709006462754814056867525146718840340943986671861725800584329573912814847874302394978779313206154191328399536543511331484200029231379519740877918498282631634944195640683129415741791827362277250273299265179298787655079568257816624038166633064879662118261046678170020184167362000454607082189677056808662037273430119042558226265106505610865615381543221580898561194346827709595255225959051735217433757973463293187943732421413091684865572093764763505984034440141082822290439363581082786372241415944977987893803878924272665726970693492608953031512550839618222251595422801153602464643105630459596199986257921003374618845902175838278722512814039510146244379339776550201756402079886044687070869010831220268255813533186381642265517445017261139403678671580816572236919064932452393632366443197761468428334840186345296280382277799780197663950354238765320980799974277319586651633102316882447216081731472751667083529583676212576826887509753035542406666153762597868306842319138382234584861927516816333874856838390092803268705788085649885564227117167350327915227524029684603897523392557572583843996304480048040646272901421148254552655375891957808639109881970440381825953536640146758934776872557082792096921387409757153161890323656336028523379577040505108544412080413907692724029534873184179165384359058758135345193013836811441435683571635367459836219932684860328664728140244376395360715512627542411565543924630855582684244822628497301843060957342410278061909091402559067606605977493376743251163280062553445891292170438280232414124452457938421298322194375051337727227696004158364757450899282067592644899250425997095221244256899511982803569859740177392736971315334711958336136191805684357418533107588715505618341732455539528444729270711329899103594376371305052697258813048930243642725767713766878039421389811556411989043306776878644535711255136957309645801900401020610520965639501390638024657508319348783511936799063005804366643091382917880442002784709669922366270716386328522393022728051065788159208580632876126795291026785001380531962104613099500284270374581109150570613767351805609899811512645747711685113042659179121892329519169997345326177901161598001239740293176494077506551387856927960866610768019586285895285533979048294302092700339315443908691330923390319348849261611192525500544948052599257550809002607118860535680331241844078961562206985321172868986541051612103997325589509352731277480693021381681682324366804354823758116414716744004560263826087455207212541849231252281962279779433764116131525179390452526229769109218556411383260435881665814914114624304324344938449252228649028065245548101154283080778754674292928176835287883808900649191692468087502558757081885751407220838237913790428382127326091679124013631883029202301680203738016770272900383045046340096259815159374401497173188132860797641214532125689456982765399935752409427407998977782196919937544540721243729095702149016938513674084080408726059146814473510263147656213225960648817406907315698116206535836483928803346663442659238810295661575298279853430291633907056658241895827215272262755079991171286610643054428703295032473545544666304996435666899649720669436965175097052187796875268347161192884204885552414937767575444447291630568205344506945256605984533668193918932433139497468268633065538006083501717840337511558574041692881090096344240263988996256559887556118644830204731244881805606972590768173556107519035455299747219273329949264784759381308376824300606021534179326609629093111535800454693225350513742916337389662719337588967497813388410252179549418533409292934481046456909152261497348955433622872647013861478075279100161611745422955832186289776683603031551239609131757076323795479928533796738339264344009154982794602471335218826283253943053045153963311651644406798153668752042148711911700021885979499417572511305905433081565163854176161042771968133223793372351110059037614210200601441492420685864469969720285141828890456638026977667828886365539789443212750378208136807907530979426446499814072372256379047361501203042943116470423073906215484225659423586830075353441691810624465385483673835327345352497502846001289851228507799663366093039857651456270036140368309014350760416365947786346964356755255455748482282031232960366870505169377047253582207381740850206770021785223086258881487059657863726289591069038544230037703807345435719618923104675414340556146532793116998392101756491113971736126133055611963395882546980950873807653271585591686248267354316459335516708391990832943859923867976531457318934236896566807098270837468156312283894137611131415385787199189255559184357740752078261995330390493851000689107815719815617822069809928587118983693796984255237928918241626958140651676993905162984947111944423194457650649465816801882479558358086330943352469710200958952269135377129859939777088127025989219572033795125433448473829064073750876682762768794912733384682758886561815909479462075553446100694096672886777759937907802181225086358505190476061186547601830966119837811993607496120218470485793915173950459080203582091195441375926655999338991692342645179377614183504881525271364891504809361454156605562977554584763087635172666174903532202631955840738153229226670001982939633982820885609202257692235585113268080094685204161717315511031522873504020007812728180926587327262046893711399777862778893867935726220973056432107638166223145229464139837768907079142176928598570904363981033404592584703808444053308104052080334552492579363773745841902980118369347692631238213358843461672936263446067033882637423441016192376371288648935389309553153127666959683469636037605014218668689011514467267114540703621943132230778197847076298089380399104811622439288948016844436785366313886038374923799451060609388759642364664334988245927206447406071079725314273824198687874543524481633621854646153844661897732541730609465817305402108319483043757413434443346998378939234131324797566433112685003002202500890294372065694961189505724344468423346109225297167123302852791656903353515445611319862150039128392552908698340586304939960483685639484288029554973698063447330336596825807939522825114238954207321106068467630047380801549980636719266387782997525224055060127584680948520779954080749919392983711840383987763803191428550869775274003012134801553943165257427596204992847774069113909429618045683256474562535692752601483542799659072094106277811172374175393147547157240335350634397464823024903112955545754620215045828287303539170847759543822650609483573545473533564715444485952715815673744649020230393809908408215911438386144192539057174979795076219282861339812874115937021203903333602659332800408203269794814919252077372742726463265822698460235349249039436999588526542402845016392130188264897281371758772577599453982287104865269852098057001041100809987273371681068902662205540734340892663754762553304725418511681281512347909706868867893841657196307006310864209492484041115629406592515732265433730352015049860782269569749165148006461948197616489415543930600234567844513095845126307278768710955852009188008746419927214570404705224889358296918785654724053798181078506810946880301203952979067286545178248568819742809613948451335880719103444611391076100486399395763496423079141925024139434104932884816057948504959942055579995886345855732478782905721173457841226656924711892373481079966074620029943216183760583633271243104694930324708298569841589618559068904110907104473935967831273067874508746765004084928720607187242724974768099142779028429179457468290755099304537485450231342539061215659150347349778470068710775779542353012186644267905258352562965980210247208545857054466536968631264507622907680692639622617908552717113562452882593514115036887263124938393940197872697890359686550826190362966695282822384844925005732961605129346519905399680088640838075266465350680360982735888259271349700050855153266147570700267898066314917209463228686110360726937396946207045284185812450586432430524783306759346948531606303449878334449550806283582235298931734009651632017842833881381841262465724363856896376480728254516294260924539027451190640712552727319422804716889332099496362532909578807444185104780230790415734163725924365346772040725700228602906245240100853603904377004554348481594701891743380384853380672857314901489637047443203338212782856602772115205272305620842981567319371792960710861461597555735252407790160900637053755038763098008626347016849423901765226842310021282403645181615208379436657126490249944571009388481388404034555918725595033577424933292913572437164206115739628185760765470235257646218395841735209292749568855519355079541844566722619513071407528913007861309220509975488915436133578729564327968660059165953343962926912504213450213001167155456274699152999883178174400492180860843407135934894608985701911242250503934693534724196539046593103034394142551026850036237461836692846982224901498359175233409725568869943675112692342871204674158485953331206004228642675475570101928478969955628654835765847177867267748559414083572430922065399655410432855088135132196070650449315110254585750888578181129220201855119524754464573973581423178745741470303662624365062294902493480846021533642529096332450013075817963530375642118797906809271762779148826278637168267445352798485256654522095212156381992268379792004357637369385271175025051119551329366289354085263887171881412834127341791685515882379914496581158466128186537380834399814379988583292360588299643327587656666439913885160779867037637907255203155099269694719541440917446495706606439329386640875927657006845382261857751577126715938759329604774667946293450935410619885002254052368940742823496864140015888862062033638696313550465017884810213536471092540901140377486938312502146397848375167402345338531872823243831391400397657209527777074335048888440118569569157520135042056057855103603948176422921001410202557316580676038325878216885940484795635112035301118248118478546205263456675073085706257900433939530664343327719122565490411242170416281485193538411684078680103620164858999628464196406508603789043325708857317978781849612867477617618639228234919821307183710972419527188850532394747250174933089905078933911764786230992482606004758210727567456321911674439177784282084557002561024434587285872715738379508684114713004503434291412320580900937263995784810063569628185698059904924510048919186668609034473046900938008485313493820693801102244100701056134375040234433753711170101864922852129631219992830647348660485165977035900254100449378181724177269674533214735722986097074147331630598157523082243680726339323643033628068746167390266649582994533638395179766935543234627328210104082134275754747043392978207689102802687802794275404857148450039743157970928072126651937302498040662824263653013034623881212619660350387214676670960314528033575494152780016305185341229399908129342782969773866967765296516437631997206529332471828898949773791875929773907695564693120137028257449632080344077874121098845314288401449928991358020897679953811306903287057098103661625395759272508401067108833255341216014904171677983797176284239834391595658155356668883898067044968775370684431729182066816327633267077231518522752801058347036738888163393737403709835324435728637213277544415895978179070729135957626224630102102052266418448493096547826821618546300646946710014469468991242733333442945746192152069721514501897666116681116643126075843136187855543059992327310684666976678741904723534214946927165112858781569483869711604967277569895485671734592550026496151261821769061176370495164564609640264075937605244806699337986873267761090535692404820764429276298941533849917835172702322954690191051116191106060118725257794653388858552659878277591987105830861034954379998062560094440197028658711152518711229077625076344675802029470619256584602505140186051686183157004994595452611153871121932150115919589180308541896307156390571353706767338496788594701504596812947870975381207304474332100622190185078203164466762074348570190902310078713757537396024960675758828672511118431089709740314705286525603088159650468292980011193868858660046079363915206804423808030959713460266582543291141259523222125277296113228692569782841194896274299723290948967732980820758983598515977223151187611010951016473282069451310759846906841846078413897145916188382616940148371129550885883788446171928773667638262913779787370447506744739256576832051914396180545010339443750647981757195212781536229721641363955142700289470610637678428546920255330051262474673179984016827442864156927232640731822425304195631041398127594619012219779376155817002008197394229035553317636901618764095794746778334434127593693204608992989651908897492217365382698887850875249879965805306544713252086211613894180404058686789649640341998880016618422214947233978773540469343040526537201114370441962102000682231114388933177944593779227089449858790182158131084236801389278043373215310182743085328437913966404325918006317759785496505806511956075783202077830910537867314223397486114048664620482578382762219839765445109449028838348645820913840266051878751888550210384294148862579248615157205062744513810624546914759132060149417672794273308942212000925286065325530243355298422216210397257792097011155202260507337847511383758523719977290829612372684552220140678081919304642538958659822586288171544412761798989981706287293908280177309168924445434182812280830283361732825590431699520086688106045461192723492765949055647532987871366073423928311268007401305057972743838049961275978288657725589544203699383182953292921272607853470384784750328830847498835670450102235504445902293863032623908613978102590553233166740626123417258128892815700375925402897892347624089808737665948226280022777296660824785820260481884156801636348013950889676618403439436835186542555939212701484023848649326236828118975238994672956343826167248001132192917730266830936265299140969735630485499855567490460367507913307471094334432289689694723618256937015328149779357151013788252246595885058017440424863649029113686316255173335077052501569931672516237333176048635016860476819101306995672761803831020308054206803114839604255634818350740189404785755131408940414037234936553579065280938803940973198427153376591244330821467958765342599101935778823310375942713379396855096991587945209944883615649116919024807003179738740658212482661064464836748775096323008369805980040077787322817632842079571729888285811987468182062255350634142915238454172241951936101829866561264254181280295319247628886843283061427845824008632800147747274958426810026336674112201767418996748266500204734969929219249015272204595484304215205944594567762367075582593050798014753279131879537488699752551527082539123282191547103900943462197953354188742158244833217559461185843883337561924232796239544300679455491500002511484036957185541279935693003596078032751559309058594574995654815140322359027120866991645607103746295788272230571570930365536849601055540958104125006104304022085424121885389183373092847479007043651218569969401361079979338533597270159243005832592503332297916680897580867526678541103722637026916754839492592545546268544764672347407726225476820737494829879559558479550145800264596756231987246385763548323735584510992252564557873503666117859597529782275217918040651973530970522557229691822442903768122061566031085976137959800188251873033675394704239963094552382585191275345955527141846561997245738642458336436062324604030701118866397941547933552699850509758227933022357165984868769651469160043236150829116413596385057990915562543384702453689738721007020381896014897527944280720658614095815475417255744486901212605321031798716624559754601209524645684428024123334510136502495158637644065030682564743637691064918045906919677346212203094637914352930763435611212018882858497771378960393567645256324900715380923678328318768508960522890263140355519180196381846290186489334323196558733567897662346942267855641644390799602320297239548945209271199344300962064383472320986957269860183635958021278087491343552665806417900624484678352343788366921201754081823222298435310095381739648083060519721357212055402008001140236036556826215776197314920297726779310807201911500770537890266376335217279965475766330634109530305926768114644781963691351478021979391146818239814719978513438420675330330549342924815516790635069650167741410993394390819948468164388065092136646935177828756216647574170183133264596404540911309725302589394743986209868386839190033345218088681952332271679357839068778860741539013177703438548198393393674172806211541824724135384904779721969258094525923469526391943989908101487375642249628615086218583601411368531330572876610390225168344807504231948769398797181848368453536644266231852755601349969503562461214083746083077774704550552922349215461557329340836609878284327021898656380820735441896228811628939762243186301324642081733194428361313534880663624688353442039672486763958621656044993974461224264624418764484368348577068122672171882257347941610592337461322794721635228523857762533005057149169964636159139934175863402658553011139595879501526931264561396743584453790696691884332598583939086990577271014736040741138787940646507116888004578915121814714385771431684875804491597984607564939145895775890577368985122318417212322322101846164765279888823724504204465498406286778181018138634197102514647056412686347458073733512479371030741401569442836159242254768178001864095410043300314135852059918300944247089821015176082033308082459806016782892999814692796255241954768163166604503403395767004762990887843439061853366204048903729466146028805183402761586138034758359757977767316886883459646257275835356820029813512227460762340639708712563257851215934242064985754274932255969633387466346253949604147549079299563464066342589431599656754524811116577468085308326614830765168313058641519035235513439159990614204277949287501882089358672452849535099872917842568505247096124119915654482086938355091831202171505322860665719553517196427652270367671614072598742355616214461344865920533212890287980712866691504555536539731061898906222579386852353676832818091252104640554476647122675545936245356257437648420651141934939014560595582566684280660148025370818175936722214699699870263143660598556029559913029980930151786648762225650554097317744834451685801494533187110474602206015559756514479613117504379429549832336626432150201535530588047632690618940350053605753521865158112632210607189523586826832824153289517937003314161102230989885529160559944705204154454579979238117750133314558770637587164239580808357400803233077177003517374271621181466406077783818139914858549891928309534247780904288792130439174369540667101726245016549305250754350421364819303505194957523600908809967126984362870413832800308539151126688541686982344871363114318090727751423992729872238692123742991151764007309869493729961688582482241673546089889080060835587930984466544320599127543543720764476511744989478026957858721701036291653715443809897992520778452411720732078377237663127859038862067418263875492939020179358772926425701203824665706549862210766690407221892271464221717019839717914359142634477104649257065291281929244590456221804103692536895353225060599412501500032178242082186458959091667678555650818242160973011630529101276976304920591215485198091510502652954585168241572181184024646668699416892464940689271746005599051753584366314052290687795369846726164911626778460532783523075193169329705447371217442857404116475724574201597779415523748180195787019449563878862627253460196580206780874066858689145557414474820617936812343511701902213289800476938986802131121328978554260532564554319470596348594236507204351841021188728191728309751075622000127600333287546174286829273768472200540476191804952094240510181656906102024580706973126313760772423735204156456425481328977441595526708138359912522998028463234029363777138920405499802765054425830948738215294046018937781094302215058534790218218797161911109758812009883460752475046919855661284361988558398022477881730040739782313462032224961731714750749686349680304897155969969384659424596938922700770583248366264831175947671941078652079390323553225164582682209479245073253366575732916207398040441374789471246587105893172454218488690816308849165522576401934844684548095781487447438567118988891411893814936808697384730000759478862300669438650354658972086204659062154385719670100363828980221663074507235808266916503307821856477690845698749476427353212440420230452682987408550116134937075248174858900011896999815906283281769732057914665760441576304730968183454187196987296794497203701199121764996291705995750008801562185474711630658589624365291944306584553700216730262655802560266635183169382979873713465442311383657019679342067013707551311387929600156301491707503756518504728967060286341297927667495639600768032385866574197319009665482325229201298306582030037007429204265041988627934782167132293594856123356411360605899280329018918214310717201675057020014817226048493514642850720047236183136137018551670368032942612093699512610675131869275710746229122650595659294123244076218525950312143271110847155946428892084931739887635379562025422642649188665792524526559416602380513118240055360993850255258826672194511797717676869524392801273513063609377291030405376061086110799907103453642186311035811368220013675384988050328182619307080266143650298009128242938967662731458213878953000544788390465403877275852949980594034528042683716417617052164660944406687877244963517976871594566563606419612308339668768460478001833612654912876889363247334115052985692540930934545162735218373994912347030126210666898575660219251396403861313217680091250320807196403223928571034664857290317026956046220634296584851136426199290134468371142654032071425412182954281994116727528987138397086843899504162332271196611946234494195325000694655856874948309146707845608552099478891269629580275381673856638116598664581451850542861806415621221800297114125647443293934347179813278378018540860413198607238034550827044520983994401597323575274951196653974560356333714723932441286663901766022678010012682687643857896648054720989557010445207455900141059357968720423911159202241980977458503578659202302140178979801611637802842625313902501386672354404230134440560228243141723521502031239291878941051727422288967319355842619136972764216956909932486822914953126288368862436161774893175396888387790395434222858976268309893258365466310612814380080200664387983603121376737587843557744425541330327343910864346509293391134827610739153702593785121741409532073343108878494468231549038369255482659337063213840913909758118140079637139534520982087671983661262535363870851849402681237065605466573185425493341605598123256499706667967722860619618042086592752793601983335299073899907759311909229303511424458094881224506509106937259104772613902968348877261347718490231393930451766181201289597334759962855897146367485996252937240625294571444948104952125848267164467704054010394792554069029426691206366667604287172602032431258602044049974670910475555903509989702445929918367999303319595168414704390014209221580566640655662921169812807931681182869118064771554937868533615476524659700955009684618177695254021321918827282806089342649536480177438497842517488526526524349100996719320526555500212888440400587328640729007043128496548873427453979746268010921966449114724927523135233869281277777144132342395698148358575853821280990705857100907235604391069925925650035816891311263681909437759148746184845916419827503542348534885105773766918532121601276976363910746363114499835953029943101671922469447139460504259750734381170080090668440727560353010534532278019664301110615388093346817808207190475723038405088444216640170485099338561917982984908156327100118938348125661305857861709918980220828955340316173136403266886909365456368169109367651427385721025296612038070615726924277127910180886507987306577910538246099082372838916107483439249068757266470839248619599090590349268327698177332222877080599601066662915360429330501395072792810247685766796469448452615550569410639606105709323866058592545371088163189649135523574637340994619643529594677523813626314790249607555046000822454300658186141157573840370819936727339325293619325835919351745957530640451121330073250192935249565502387125159190674333738462670473803730322721746549726014850170978977752270400895557692714159717650525502345848669689164401708032023599290394743275006102922193225474156651058447565814535591379218750845664078634768824238118010659386567361292004298125652961450242150861210279869690023178408870758723724689784543006696427925251087420952077116394346734732288152919217990709580444801001792670269625793025086759844607237082424992630285908174765996794663619093797107814268266284918438874302792050125233778703424215720769564312958826329711650969426987345556986447485833650047902411711243273153331900847413661850044961255442270051250741511816212979216188718382210501361392736226900988629028056939504047541120691072051464343824625535280014649250610818177300197904085581247424480499430294308661933157250563125227868654369826332642933085397317799204439356266340775990761488613063238682179729930260754416535900160740274550043056913199803628626609807896429301685874659911951145209572230639177673246325609961889152687801868845631144076035792451918576206403529855258585449290857728157865602820929090708367565063697164299072744091329529160331358047559295150960801016480544239215629026993183789660495587186498941066333693087926041584539372488517090198229642477626207537569794889299633426827310340551601182007401311668919433231738218055074818925795320986582236164386646339942339678461489747576694539933992357537447501177067834379073420672773732266716349210513232695274115488753291886375985441717855790841422502337762550670865544919672599483481530330720902195132343982040157481008106874762303465402520181239979266584648561859697506780416984228311872602478213397236519347383886830611709953098208743684432338823812621153462886844769390885390328995789890737527976623982561748050396067177061584933884844406260928875743549780082528350830185526501659100321979401434599644140992045927153070245652552883409120073625692319213082258805979797885496833055701145711372105454836263827802281591360969535547735085898185388997638470336382534264076671787699392864192781384328446609286423421418861735965934644959446102476969487947127003814861993283731001930135935717489066766851368089749181551335100251913910681155717290612954116153263413279406557287325765738338870689314948042685027475301862688110864434925659970526509645230368812731512139509782082890042239893409018497199561622665787107514254641343554442073913775707151353540276275330048755706048748685462436964605233310346398197155486384959725420473605349455868053319510774514664685961310586805829198399427180860255089725861685996946677166616138846775905611738246512088660690926048434998670361524858873509454921552805316962454025363564210932387949984374002159255525932672083107174441392294004749489697751979880656996323060587741114736747238237682870872413590990475833956490298559748285597905873146966046800182584774842313705369988996427302710778589340547493526361132358405861572806686361015859917191501379672372796742796914012758860595662430176687097070540813519001679776286949502493701647981141807589621802246130460895322324019444244813108933813951042381588978168986787631950811864478735126623560958557210589595459090402291988485803577104702751316842823006717522992812029248077949741730659190127175191776127061145071865373754300032911995775165316742496657067674496609415280663705821753407382008283767922447346039913918542205140471436644532538981349523509387301030839511887152493521527049956587241367267277031212969953738536330187360019963371527605851232530753157166532096553893462108045016028325041141225653430313390866127748016236272139911129257198900924696733317668364978288848065586079434431096591113916677701771976823420459561443541526353918746125228829863046019980834814177662495399703919968489140775236870862006141331724394819881681878435509317521407860879229455607093002659359006455503900714624704298090250850087650209817431151769626983681687286420781652255332628477629028198039968005980521020297588085197600712970758323835140401757699043448631828705525700874849282142973623810593149612823576823141401935903765592304257940783627470986597300237613520907019408871757733848406856721912017978778901243876536487200159924142711561157975151545099943549220264535945987411290951854049586447039022142617378501055787928117489248512972672079372219973190952703613910557358045961130789484227736346547530135220218129267301907145031425294062718145352599618600722758830889584375094798514637600421159369067249280427352175904532286964507263396726919470149400388325690480498673823705722667360528348142554566540381590234184766962861815496146074655296211254619067278560031122113073404777566814958132834060342376797574709992538240159897084338915171030933909215301052442064864009558719224275275957345340220428887562883271574356933667425817259874045829989450765286146236572550615304160404642101236033505695737364145485693917146727731767901568845370679405509610445980540621318857920608505697872768171348865866608354686046192973639572318643773903194910392494537100042569118161919706183719106477622577118983243075860617095092901649782880007785444832556408264398361716101839839076107676194344201796349366717938436639307143602598488447526846529618639337339090300703320430350360153666713497226854010544983531075496616191476977018192793344392323531719957325692832890070715889552824425212661024729327875910160321263004245011783420042570315072905014559319613507298986743736139839496624016225829574218195296252888577034648831594548511404983587397700949376644162615544718941092477625038542273624048870219851800142099984212041638621762842474761210548217853449789865929010446458628355484814793466107931062168714713591183996654755415946241092954371960178542731089549993232449511481632424842285873085042777518527230662470459694434488875871769272369854056338419621039808334730231272449261473609818696609281956809798190062742418923946233484797119497760506423591524367449871370538194757922616251679821562745376498103285937079301988233546009928842140735357420973990855538322462149858050629756253146379535821368971304072846282427419644458334270758035610068623951243132095799644816920779660290560675951501607586934933265316805146721103358127532424132395950647196566627472948218393936312946116150685064606112606057999787280914973704897509937224168318970515581894540713090706111137939548856826517426000128354902985874090000640253923327946425497416552226041992577783154337499166927550795126931549378748465765479347632475498699313841776507627299745353949114728621176791770759220838228646068476343667656290512389994310203941757267690518634171658188441903540752402692326652578039380185288479934870242634146597888154964611849444888340717166862404894980840114644655129343982667860916152057098821744711530268975486732835349282007796948848840357923872194137994277641297112205802145389979902490843482445802086556728277975582262904185318013033388752293195647425420977666865239915695307214847749905212749000847955744655992393623172271078557085500383566653920823758785354309969716477796093590299737669883825184977973999973292369865683187236214511297742783794309583056921100377922043875786165306603253536175465195741623106874524509323021911537848664156398937093346881156597009541320918924115080465876848373801780059081616940330604163478510761402580880887659726106545993911008944712631368949122356785594610387749409534580440946358481996382435414204825429237874806733067124447012125219264896158337633267427661223157563676130405951025712040375775464578696202341160870936108876230098964610839985174057999801511575963286505443718438459916979993450634816848459012962556249188565275850795769769419961170464004910300368297077808468967425519537559699651709955475043934622507536096974400164610536863421816208150355237826201894800047966668617007721290383882470273066601959838804844210668598413217680679777914531896858855813773171465316270689323724800712832166984219249265070062499933623168978461477971551592339501948832738679302510113026062000572246621800349464117655568279728425847864597443515697362669733521111051516509570827395621141508348929445096234836423770161408371720986787117770005959893574952012145625685083306273174707206392741771886972334695380313837875935015845811434380021405176873544530256292904591014231411344481026837065497065792040799083174554325659629610518121428596908394600453631424802332956222655413728129691193074631030631714959091078142439282449973485745558625599451759428322325310749983370872441020622182313287619881734291393910125356521353093231419340557675349226482503467039215902058744209178029221500821509349723581213282335781944508274097529917192362836323126478654591429431491564986296124842963035648790087549028106850568713240025305206767116039787368092980951467531599492283299111035789247592558526855899073896951100704048485249702058220215319541264715251838845614281762089870531749427778660630233458062164131698286527645263978265073744055568206512877512502123841835487035351474187133870358889568249150166939315100498525018802815114736281058752496556497286818295859147503425103610068549719527066529416588616160281902884961459582409824807358147239926396984136173227083773108864218335648513929042157499165433655132805759505998114590422563558857302206590576418347539144466958707955206989016350895810169695875137399302585192269279382588546180602812867114453905569113825541021111079399284372180503658240272760523023666440315182894166653131594841111394644243067431790714681397924549182647083365031408139338420485653391280923272673585362379225485213237854208481648556715153110169532833491776122223478337710780268662169970218530949074224578902444456396708766117861691130132110773834802778231866943923974805966113987895315188242938356287758140063586583868928177601210163435159164272755613733805272921442484074781346520788197244139024865288427009690861499477959933377678710833303237094420369528306146641316467095128563845954783068354207579445051320651683559246491792664207293257374874658019011045170324317896843674537863566578553028920737318283314820919951974747449620562268673540867854225998839725953945828070581765772665203898346875063655816626662195622503752275542429737765557733663292046237678993745028211694679007153319783896912506247675680227477629655758347120209169435751092812041265977320677855293765140368756446499759194042996450121462688961693091353853170616086427009742981751819117696792505866614598461769195454517550846707495333115640541778982021711877521621808731263194870857784598945813541810980531530463140970035549602820714035046895912059200906339022904239868363429104392595200438486002635877057521815861442633194667422211900728019651844274377796459080614055224519726654987854035101253707066594320936019092551869872066852269378268443107043947030311178547524280413824376290790664429330670194277046590106666052043188300390382217233303455614654823357330099658415933493451666951523969314425702036391233409390992611245605619268208292830394836036382363498966183614008157851965827667110444286362991313973160454098363027620732298325358528878980650657219455966228311698508027082907778588523823043847886968750180148660223882491877485426706287831945715596985506378467789814304297257586305751050949904784688135333390929522959907424580855753850119450268881266259147226448856156795481584075006867243152117127490277608564388907609722459623215807129705010974666654625671505183908332530995176146334828100590238120127941162185928284709028748076804531569852268009618880369816256601825437936866090200886068088830786814802871944071876448950935122023374689934010028478040328272097307606565700146209562745030208853348779911624435010951919629328729773094375596423268145901005674990909478981996731190572312591634087940090873307353121520455359926859599830831417255139014491779804205064005858540524009933060741790684579673508901811917607774340466755554694766116526454837745266453407112389002104244614608808509229451996523774466939039910134905275109874339332159774735433047326199239109702109461935776311794354529389836498901661780670019233538853753014548004759694777518324773897612188422448696734026750447247477154395982687698583523027051838914964285134936503653520812805130886453399509978849925278413269483800152475619681919628611213153166094857139709769631516638357566054212414881752791363034902705519929842115234409310797704573915891101122880841201931154785019146101291458892853970835360893162303722910994785673735688123151606216057742401769663098253394176445711753636285042526435229719495717545155174913876099609120528120211129250764077634774921481743797694150920339290767811770997938872416158639614458303047320560875542748911151207319948777903041012074794593567362127914954263990352344526672681608019334464502723104793322432605861240183300000811710434294826802485859371408613224401136796474079446301515239883865348957358057062752337000888940288238795282298511095192729834818512853774568546433455235026169506158787176898004062085001754999743659746671912388471306134148594661103127626450931855158759087241116430569214666523516977053970778505262941038380243803383610760934820814146851579429907808185476188432369036830375049506013718777889977796625224261718437081289006281103642908739779062768924833634506235672848851951148449452056812527201806172385947718238908055345656963855374995780616650692566796868535643637381237953059804654628400830792121936465333960516614213962328924259970734663577983713756081032547027645953686716516899581638293580752092727172994345925865029160077875345883221783205079334391402762956032153789581813331162366745937592544605012682211918568634257753219482251188487394094428039723353014479276510823747891740203274088031292861210826704206706306817727415907658445293456984068206142060898595281523628180136699198501827318191638257757866346005671439137793942464883746727040541446919942444457184358800376686117830589563615953338861386127247041940868812889173320117902043753212424387550967408476707759788756540095335994483722895228758443236428059740722406788225505070581978082144710291694294064113279736311839132797190405666477640167327106682419833936756549437589853979126326964559204216523996543969552759764172914579050667395968160774455819363657847943472466862558721525788570163601495482912667724999360671666670343185140503272701225547582536211893775087123031013748586242799902109498145848835265788924644108397166217537020915773497443529677566832024515235222114259487556539861101326792889987426976551481850414818063491140426762506660935077449842066289592688551966913605969703211104367429227431824654122417571426166486698970166518746130670753489337932926701504747845715516958612684991027594852250169156390939238959104352128161076912499757077273454043543682031301444158491636361497516198206986424914661997913281721751249861836687529191900830980585068419670775923950517007779610596003613459125832673895639213916118858737742544562142566733805711019654252146974444290244221960565291140143878772080592184753791977949069715789176332108641606428487341363006766560037400666616914913521386909940741188750065295141008199459594372364874580504296156379346914623520181758082831447287328315082423031459532778987189748902596523702731813085271433702452433612323764369403815495102076931384676083447713789023176376231691254983921678262553230807179784920452489774909801890645926261184776060520472081023363412225520430528777291934375421192151816122977441011072123330989159917878241604065296058154800084333402193008535138988003416935403774609267732410737394093257916009931275943273854026692190114361432386352096226058610764134126418599905302248047246321718549124792415734501962375263541168022909984991348945566399036660100305527154484453402870724714601016938357446976229630495210680652847140642256686903319109367677268744448371017944133139455968801298940266150714856813050132014306349780993993749990470235736882906685061774731595458694953561767131500168339605769965697252995957187576946934623842683284678512021909804892953461512679928497716702954987235886688453704621832870226731496113052345858829596576744541536990122114702442256190355922969148475528476268760654740540250142791120168278229979527370787122686520910569478240593312395169635848854483467876291498844881299305666940576259182949601256727358803921953350936551955571642716810718020017738782927232763099683640359088935481744460649127302142378263829960439145259237784765257924652527443307167204613418105469299001119187508272371794230328604930091805141478542280633136500993933002259392398954191154989448402225325960978061590606414020768732399325208006763684576233806823153288719934808055153636551440187278617940690082472487889817924986079414436795278240449793558951476128380699275968245433175140399945576958140586562690952676809685348370139723328317169662691032370645807681267093855576557524790340378189819502025930317372705107302537555413203275420245941875005164972853458977052935500845427292140320891909393315167499017972804811358785704813658159256972405846580596369319737026651972057662897092304551348829734577146758015242819942957490631351117908458702402858657055453275102698380239404768337831173528575935988038345103045384098056191093749634670103912192924838620202639626608114738265300567883160540472006484259982225944934656849806316871785351182375769974458631161177804101962167422315300834012089141112340163835454726982175026114390938353401911827343049402967508202407744462897292581468748282282168119173303554138039152560452136989527387462275015682547964087361286590964807436937500005560345209802794516662332214196838043900663082845056917710996776659213038757554211710603989524257598260417947000648183508800392491952444720894481190994093208773494290378054237604262331575984627109774663030073737740585113676528752970886295333233055511104603162103994402882213345050853396809837167815416137579446734397799641656449214433909287758476264258897502140468953642153472976574149554661770111689882482549316527915775664919089701274267903704444094024767365609966076602859437775389720661863503218486791187830200045755011685708409346553970669767727512934173949901564660796921763837053400353358022493373274770671280765491083901446058774370436048391745764764992756117725531274456417850522530516769620007499945773364658384451067224540244627631656823410901154452209841379583301155016796311988528599689876152808704855724560260706579292667348225367092232449281852457314969471434872112428988058407959585101342418340652043356235079194021926715605967838711209178537158803517499821127009208591694281838803177796894804689008311622251099853485583400735584947281946684928793409394247970403133343381303599018264829363314986479250463957422726665325898787244747507064316448464564735351832096781468649465937277936091868413464371958627659224881197699533348762602237843715788035755068746195412980694841593357420690009271742844204665606610917422420648332509891957799053833966500774541460534846580295898534936182820272452945212153763495050937449297887353641254736884438174959331602153758956888613533280528286808730046253457824473584014248949378986552279749741718439387225552654361356380279296726736070537465445496701875948818112717782442545113111413880129313490993994553942652522337624800849799846413260506909697721752390917105986696617750662947702325090802281150193940851626664501357023623658190411557726662530805444183383807706394458861874566540215754987251009427754448182972149022682909740620844593421374673762637064205989937493193621480915285917914478709331719446636208116609994987341440167970859998141947866194466767222260516366488031007076657959672744627790108631921423797712010747551916970605813516126131409917936551503421355091740947317392155726683412609746540473191385529439307298556404608954278853161379303402960332569781587534894586802459932276000547795902228525984428869243158932867676739204552599924567891782303939610339162428010200011934706799204190219038899389348331240306099412027475626236014119964887270234917915192345191135501051804812605488977610722704467889119463823438503489818738102980020972637620470643045473898328028400838464816277615863052268905972566024246958976611162016288451780749611821301273106531869422442248957083847945464631059960452166648118364421626528473455342404900828437033172026535886964483300343553005715833610780293032505982151990255659107642387945757639801036319300868738302516114792229743107102730153426583199745246705979418336417170858829297955284498850614478266777091177559552620710020073125715108366511254439702071123773074210589052513765042935715222076148908969212991727291359309494139620109720744283372425928452594835219059050832441480054111283447754455969072974553073225439209465046543966567218045460718595250579588064891105885059504686039291819137406639573325407431957563638711158814219924472539837791340693851999413055318772779601293843306248211853325398544002542121114369970572301475491753449386474773335447342635685374475464714291809990924312004527053894995981499002236886610517709401831475832107198042985136511481762498734535711762834444437206254076243021826577098601777743124205642833950837457437644555635836656351472130303594295031275610321567386176334134830603913258941198658375980229402416057714793410417192160589410018495096027601080517046470626218244369219902337027214043673583267646861079811120563430077980431482105699873930176325058802290119525345558432519351626126757615629723194009989077044363366537745175587539982628900117611631850680473161066842106274997980465735930479604523071965704929026612917060991932771769743563273553237864172488128077821860542507490865362434504174286624840409198133467403660869277708265416815123926601394143459064785377615688167896342169410183784728729797804022420720634101841006828685903017388733438746415436812916539606686999151124964837871129556124440211289444908987211655395879806461973096203901607280326652017858847999971652571283864001021675007900556338095991501686738744365803877471861629991032816605534723308391425358314425517906172273045511119287806335775278725293451630075290107233218216936181582326244681211941012248438742599877742941001673788156137411045629979880055267119795455421283086923080233699471541139351703953357931050802904782970345958133529515635749288637731594025591350961972729972625866482598042255786183147791576821102765997367219623789860353582988296211592715485518805638340812410810504901586930998337367267277361747205426006061966819597938331634357271294972001992768489381721958766505927286718133159655387470210563031037415476745206883161502158918968359113920667092789921169846237683485916187977177582403740966834665756513360921687541310467579805166595841177847598469164367505171099669662275835634642671969789894693060254732608447041737018848519109595178588772121327865562254372008909927750722475956179801164686697685770346601014525222046746122670185651474037763988612537636170802355457718294613609861897827771343751239234567595021157419690408368688757844298657589381349612545897813744070072614878067396664056509305769175538880514351229726942769068164900390078558673902615992584622892871641083668352420443145524695703275859616365630876922208286594168976227592650007781870611578605821606281586833141200159548484624740249104934643899022533414080753961025846604332302547303599012603962094484983177503605741443680789399605338029820170013666441343832836334341259018131986925065149745778204886969661673433664448243734196346507787854766354447179685229194686677517819809851763071361608302389591477191185460791479589152642377545882802408200757251804551070368516328823998620249875738895571196774058874792598406911772184272362070886452252647536974077859875614172863693385681538531523514725745611082900027942049427731987632721333706294235047037208310860693804188331663863936423583471423344919193769233829674932182970970113987166133726301068563206924252604863343166171712715034355621063734105696262177265523547570327082717651612349319427583767891584712385301656117646712553034160552170110335174556798036431366179500794538847828405095520847221566468899152561833318612571797032376165718199514390575564850303352736281016184836600406577259596831890502742009220834761206188208431357057170508230831808506650421490141245837082407002154433570377651645491009066062700001180935531313230035230502109366484150453956425365822220098185039430273620032224576958897383452207521490638867046533693621735678013257015005523081542650694403267253210166300109433952115183168250970596370107763139196995802661595124140615983948556442684931723895685925541896404393061371482481530062337308492612406537791483636726623241791049732867270299155749557859603753281505221236550987649949100798065417907250727770013483522738454602825810127447453528748658431100520220279915929891859942105777486402047692778910305766638337505745296176257889895766257495743194597619880423571062937125987041357876641449632849231471043569275716508115907081743490133458291619115906993134640286746860346881130296454814817288539732329583287755668789829798081689392662859777009816352107500466286937621487861797785295646945130303409312991995529687323487895195998173395613026974449453224396518570530084580108063291948564408489471940973552913620098827663468381043098802359842012799217240296021608984349408384335339897478741874235587078346714977908014150655509964228177445349511025039786374408972709562599993744552109704783593697097182866358374434902061977202964013387117641986325171047175525905866052192846184619709441942194486789123530045741463118404608493472883092338039190476438108174281846568124891527242693196599463214439240444005634159622092499306233925503382956902640242946422213883919220315807749988233716139713767238616762495258424608028938183168612127535930629824890553584159904721876104455540803597379750097748195584253742028685458519462429269639469694469006709528049679274727330813573226057894079365533492669934262198289014368671309109755370327449333281902889731649492032255036648528494339749563836432941418018448682830305804385307389457850213066263655799689256099820181512784149427288582324787825343318895283401132604832534644834184676095249019889399864134261990594009822017519705470078966074000249385126006302128906747282918460463440821032069260956391786176139831465875494414865773100970887225516681427486255645585329428490679108224349972441255937166293242918202929071736437271467263643403295693184328374061403406165522678654909490015206965845386272322407707923106983672585604129689573697566020678930704715079501993176649610420015785692427697475553135458080101766086788976376157235594467985142923995735720679738333107096295146059227227151865962244802816416043596940890299584082037817351865305125102256384073251250400293937769979161612778302341550680399985170682665477199209955991120400892122121877200735420887652816476172124193571884694387474527680235971857599604351179384962893372026062622911866157783393137195802255214638693800411498244884255800676068256815094066034049580659779909224367814512673631958137895982680518662033717580981175110160651076577798148011645193381656078906852721048018611417049614458243475775539903279729516279459344094063388793026494900366604662605421690825890386074412018757129026070976691075971002149527863254741750324207391470675334241549443004645512261687335243742342734236180873097487214287128269804988072190876892672511457273016525846894313773232938221743570262081157345635163567731276709921716356444931121332071890296390873966505195840987683421048948922078450896275533578132032204798089511540273305331666059316167864702629410508875039098970190607251449432072522198829247778457282194856751045604143996371307583171322508881474290113581616052792982895139187331530395933655449841922770960190590485254393389050786584876651736209196549747385748369501459808131881200173120056147046162972557015736982347590602476944902267889789861169155066267095644946562688046288954425853034502190262529762982159628707816642733607549128116265702524909470197314392067400631853034610370438497792398779503088946912792055934099438150818918761023907949601595520747769778124290036669955154665321403710753765905701875461738490566856911856448497793819299270008367054028163940778704466894581364533836455031689562631470810972976816036159043795875839601220632581898519834398362162318175981419032401752004181878801625496036592196362810296303520453986456757026261009620546623074267420184048641133489773902518533529732643640851625015829819151347382003577382472097182443560009422382738123388949587024654401769107124307135708755612995127067780257925296176617911264039832231250986708190568799893917468490492415132654252791603148084023739436094880992787396914282314888453413135406144928424683420542126459429538043302123415816601914503450429019235061071907361129073710472599835600024156562878450397000076864901741231968608263164199886465629656840030877980139272725387535400792619431373554724833404257279680016282776302994688163544482855270351849320284867399806525348942493488858557656254995392623403529523895121280946763062543785329416942763595397151432091882273497870512992106828431162067875177278924808300631066379646067293491057628404914872934367464852251066113825982500814270128001909988625503705290411972461188139157953052648526056356287452676678542829569131368255521668170792880618321328684205168656505356222985592638443877503297072618104918280876081256494636599599658513307550876191125209256537715692354327711378913626549756373151394382879399115542233990293137290786719829599335942497014082646803204139400446211008024503953751335687521661110918954879759412935278288077507506034996654166219063680074855842574433673310939151932753647977085378775081617362479865468831706879693943194179714236487527555099032920499656260982085100420694513926278063321705807785198856673741696768663121398836572605681486975744085292626651443476614327958899686415238489696625658542849859039991731594507474971491887567967970756928784890367930025554483067898281257346840090534748122188665571645760310550213464179904665131477293720022525341748266274568087112541654920599515635729798273277516788217642464494682488287003755579135965257019188091054900141534191005102333621598898874650216882791900278137514956937223819337939874959002303641562350862076758134279951298365845674761289083975744291103920942279695933568412763961180200554532374919627433928932237124934900334706305176179902420748235336541375451633587718778670329263847475312607381343284261556380748092304422002774655383397066989173270143465561814669554115817229469730171264881177131429930855706924086083834846559694155415453919004540181235411165410368607462254844662647457163491399871981648963876547290517231859292134869044948040539752296147607668134405132712550420357257659369017908750202539144349168736081900842849851302162689789683825586266456059690437346923003538935260114886864501765301952090408752034202192032318906996797679770893896658186047128096264746816318756060240277931154443150237110657470937061320412027612293154839348310018713335592290386375712053380845006006830045801897111884636718067148395707612617582802265702435728747401202991300988105967080760535129763085683235147682149326378957968948666145959766208457779375718706707417931131603384358618275054788309720420138967293243442063555786056823941399163599612922509427027052143561888596599929955783580167507222874137316267234158007830845997076424814729210814231080619646247541870131133038862409598107253221916452855276996513855505337183182528583387552457114324855103716341732593091232833484344072135180734694961098558775906146058285091215822520125706044679226062896724237375063865252320295280427779971817277057956448243522193406770526056025231813385718767759533332627821927555351154789283080265089267041395206881594684378747783947929666387728659516287829969807086820976336097350205162705094903628502275158107701381550784956242423617226329732027084424402522964532656829074768976921776507212273264786240844241958812165747075138915267478087749027513598947048722767604372613490463748493458665626804705542460183706592401347407825740107687689158447502792253517136301056248665759075078363699829871934783171323559577231824864938020596781999884768118701000256033827987694375613115165527680993437576758806027996064199810000186787073092528367216536794057174311486019342518365932335939776136184837699384005024201180174042991307105682377608463583066905868437957193614511023331602955124330519825592483285073228254032532876842458398223311413517377431642357551868136873378970008597906807397837042334272930914276555999649043370724231108255781953526038173885496976456620072607914974870167368601581137965822689342998124300757669636786031741956535526505426485313734692320632736663242616789088092229039527610431312434355881417491777044562403455449847706059238063960759962262434021571991435604401040921233913969754701778378311166614196970282990566315060254572252154160255619388253917931846627052042563144257458032112899500364449394048536897246279710608170730514192894227011125221726403318900461337614409913258278529411061859350780835731142795750428675726037467721351664510632380408354750874904692679283850598836457770948675593429460976618418305544694585090655851304249058256190021457860869711915129808241816500546163269268642992946013075727039045270571462094618931845454747036666247480490988235585500940611265197918142901349474447584179082273041573525405759544313463038944839161477560711090647423393989657231300460971900887537544190007261177517593469394094077536102207593249206055894008141654319250597282657542712846785845149870405264783153856643894769961743666763528434338332614656618393538530069753208297968377654233489312305730563731355113048925700225628046166595589422753912336657799842739952909729765647534342163700901231229916772873016396405703189624496212519656169715272294309089847600465898870489908834113839554578302890222487797704467064518918012061022577521030390912569766318230206835272379873001740879467753126020588937335979533580336356036072730155308240883181009016259889207650771297701521608421642247711020055075845229705296450862038380656619514845002035527791241122088114995490979315320899279639009395591201678179074812385466666880651392676581799805818003902448238793485576312660246597813211471836660528210260405711394714968041959886806257057136747462408429424089623536558539188042099384545276819789915589626161960641943044636398788375841603684331342102086836565058190659170507082529365682852506515626278674299132297645995993673120315855276505965051430391623890570537059851201578369128205022340718348399996990016798938837145826954857889564428467397992512476534649126932386657999877954579981300224215076181615732653074565279470099870722831588688219847703896349294194290788921528537943132639662442780924733457573722422840296682340179413682334822538879896133119253061009726117994407191872233937044520542599269521638561150923648108191855189797377541232775949974466987173342286088185476044265090940787280803199501324506940266909569476089045448471589381054194087504660471417092385708781274690229136174362882668542901115482209747583722108839548240492214771900121019542661947367990988498742126544592151644371936256349576622253419187790413769382456332651568738585665458329043304866902550750969403540204978075596367134724057064576357205725434980354451455463825443906266332516549395387456847886894333306394605120380266196793533021389042118023180419292459035366215673320282618020045679459574349265985478977910384451381538743407890683831843590395414699870031373054737596119448897327722748855370373087804346100907535128459581439502431642764120035369248036289645375799019248209083777452924839521187319292667277173837997060211229280769313500368668921972340932662091046600961235411564470660861012713595564108565287280483283630578774472191263597566086167190726589950968614165737463185354790296328124729192422491815171551426865492953670898117176393753036383767857089255301326095557181734085107913021776037797914498022160205240020426781356555940492003917100767330695731097197560598726966669197831220498135883439717672840898593440764124014774522341664411971344089816726281046291345601518167381447410112043712976187352964443348231137636746230036787095120027490084852063912022362892509564942817171083102486111412391779689092247646220230772772765549305694659242001940005075676747381034377011538219449427723835164870353082621388354738751367634028654412653550130064394443822649212611367884905671239593484576486799664266938797213571060719652460679510153784674356256530394819459314844462368510005222848317476278787810454433594912606470873447495479318803282124748709601172849800933211145165249408308052574603309971075956620280077030692538405166418396635866713425963806384269386331093675373063838092760370331907156864443388462824732662026253488234615505654763771667812454764837539007468184578071154612190815631334060402194477109807567109903792987806824365034969050558649519793484083181332499758587043512195355940882627711729183291014406574507546827983211332100073250558486061284933795105265318132180681037597189815490493286661618774363083428104809587674469807544759719715676419182725919379730325506326313163764181326879048545962877901439195612417329153853783518362523913359209365296266623557978077842299865197635746437107282298728777444336933743793093907680868311493688468580587515719964309535026498755382115947000433682261692333177682099696104594490934402733256901942066609203975166749091293959605910658392478669772521877368911386766534932970203126002985923285907295923484454558270045649203499538789390085724576972958613417091142378846942744610866076815060035372466348030075099748018065085410478077660258933836422697182978550010490865568723174227544954039368770630235963037046428513898918230810933152597056547153573310768640982314701571480003143901270185836984668970493690989394905976848189319724351764299634742701773151492819183579987306794269797073812313900902538956072191495947109295382100277806320298816292801549433492039481666063014723477039832373796885489075180845326434512589362833800314715698115517280221211935124782992781584550648546037980004927189374399579058942858896450055452560878419279508388505018919566721064887950485592431257948010362629104829693098470124321367565777414734317253386785628299721697467820052873728607143092149373965671951918863479781026441744627808826093211896856245177993171311351470803852739843348714781273161369465032700948125677471067332182312238640194328434559292462329713354789834169561322177063124488885646262489771816132466117468410458094492876119762257152296481320464528821464001804516007799971104462092674051546609616044823926575647986105761025613700438844992346595247835362341664489198189684784466844541610701940757471525752546673135613968453594124464490014718896481260294317312658405250441672831320783123676876873981877227350335135392848484132715108203533972068978502350124935843194217725297817826237176995084001324374991477499146764824145619440805052363709988977753748778753403639615694161088917827481392851506609598133170910884765044271008128280171611129667751073549935918726866155447439331147391594348926211484234306625476554563723948618513941058515239545167808697802168215828409522233296680702942492605296323912455998509741215955509334245333663664418566262517203329740558444136255984618780136578705821224440778840666245398081229646771249312199509649445597080140102578534683070490391125958673771907301938392653327145039197782431096116730598993012976388159806455233872708095552941587090605791304875811695871657899093195803315944309677708203188500025774132563956728563263159675906618224228090807344903528950657173274313737191794823310575794199115573812372019242558555472323033698182213460973728121586009022058210086456971952823681576202118630394070254537018054717235585545438302862815937650491252550831589697390604708356179549338044822918235834484768033835084727657522058204139133719691208501147586221861386900433990072875469555682509457520227954916842690310813780057068893288582484056861191860263668379087849219548927029629854691504939085539559319192660414258702906948901854863750504899737738811490118489732993711356751461400366719894942454561760230102802444422239626045143402972059644374845433108934995738574282439909595490901124810810327838534490999602565232370999601395800594337857484417868497494150817614928787639880726134045040896050491061551250558710607793665480734348383896162468227167613752120752178455974645034597775081058831264785362174945248833645752765334472287866040980659313080990807234895472018532731283982116425568405352218767228266124733296236163406200914269633509082321863464607256775158236065665625554431070068644380871912219471333271017097727817179538947456099403337921671578988428103088327742431978261811077328769405697677421052341869175692818219124380924704069171732118287817852265963488815426374903635020948909734062648597336370233881139376206540236321800077594651426919127595703767244497515749226141409393096862370778666174477211721383391752226000641850650781337077993651371901404009671265977480062787634238293713705650299362018314988352234168210501903176662415354642326263333160378275173656923417708517054095688313647675956508456521294355477316589816828522952336020639603334904249092583236019469143338345763400815847733725168312746006631086387443271275269030292850653651879725803443976595141896921766200645958967981697784124995747928470658456662190720344792071012203999141267100569625762425370451902590330491249904543636692757719526954417491998443761440323554650289997840156585785163649733084144566291223385592085976133877730569553368910165872557753254556054766018547960642403669853137378656014215907305503359456248290644754210427800538458732818063395547610171023549907054676178275661406249828146486088482905532630157857135944532865590570454513326482013499276912735605580490959240031372878299492985410175877024516887645888130709842541441929605931438011899207162794176210112203645594349221311029162548122428671759202729036281875631262964322799164316256373445931683530312077453024901242440192470819307197169259217029073761233149150757113126047700135888038825965171483083331056534877021303354456446855724619878298459958228877101493375540715611925184794670083548249284227593440137975191806795460056546912172575084898954983239888838888799608816501849862256573090191946158478591331849524482793224320372277177874626942730453141526124637366600965810292187032300081350071328107400308048552038767565127109369486587821920657575924739926097422168669957046933801523159468268950151047031041246628718511651483041855154565372794915239420520496264910869429770914174073572212209525656433343106499351288567216189459618248675594834317666468645261062984058512714771921835957135651500983027606078358001811909736693694124449593708108012054927219978685534597216714653002524595077372300339855662583142729319318798115765731567983488255885329673837005663058884166755691633872671207023281921375604202496002849624345889387503992956418572182023096211160232433030948542886876328181930482502908474823080396088839553922563086024138951829394760719456220896209138634579326510177311772228105941874654016666892019287424090738281614393384514148852462244003590340905632913233467695733285854378011942429792573730036334592010461879785239027960935371126893966819357029917922267746343316611005595521677665623365912330263613941505492355537210852288191918557717425649059220146083803504131125404697320512863487463734786831012727290593748692110191229026253707502026217501708091504630011871521385304040504067284703216739812753127434679186623270399005351484468714247586156746228058925515277290120670090956061882532221727393194654829688078849963569630735048392519220327751022514061846154829628256334409236212009349316151262593093505916914923688348687474190672687067881982539701792086754047733969608938186916940125369444943899541363007595423175600783589067074908259496258664696835862805292735459868166702460702904791693178769935073312089637118891579374501381052791946520365720177605036591231359717710390051220946139366056270817902039732439399995926404213388030305309440067797820166475573016381191334173013248794121499512419271715923165178282649796851862791938908584539361170227715975373824198975820534858784255318641149917195604284031621936490234300287134927719104664789381604230032551897892393392740400928581711606565029365945015985312240514648556005337336287855060298919548299311810200396886721686659535430088269347628441518179915801736082795612691594114718899922013188215056377654428714796543491368193910817553082539893824244572329333944867623314867800972176838492090605437519242957224255142047483081237978341852540245615686207875651622609140356799348563034182208156556217669598601435736038172914420681843239683606527353543291004861654074566412166579824968850619467337798428126237741074116588678922576059548826462980154543567705797075623034403954377473115575418171446257550148181545008305807115654077807588441627072480044738637631773868081182056431353662277598847715352415319619045247974805916664010075470636117226991477097805307939911229426227603313613094996896097755605725660962874695700411409244590373066950758809234063887666235502359017457242996134829358814517398136677129895176244163217338183399597666862631156753245373956963623374537257253878113374980013776076999585269175587456142596148591602815135163620438605539163852608027514041021059363333609993422820556887378926066653481505481703403353982269871628284327626794723935169813682860044223404776172145946298576061699394493551593408663601709019817716762299276649894588179858874087104963323096331696888827132079888717304045909891698749833805283887334640402576520955008278204827391775443751919202124201471979891990127877182753880536133953168985094019259241276970862320231375227457322861352892752114628563377675257853955307732147053145049171952773054689901084343376627514836852769475349195570099650926365254977604199041722314190294111658048677951928147748375017333420175972807158528259062023258491336991273694577111284534447847289410160713416258060419463087926331471412485342999874235458329148034159414576857741512168931505081437134430943609120811269910406886408203559388416050860137441346603339003249102617486897175921330129360380420151090184058391680807301360193570371187640425998077569374144780345601448973082920094846147518537158040073898262422681108000000096840390779429783806034641348582569651124413961946134792701657970781280716253644124135500827551984245428342229512122072942088316456634991924270330898775635726175585075220761590176993359092552022902316389497248228554347540061238310522458175483952980144406229362103849684400097988804769419539108617359408798961920703935530017141780956670360771837092714087787385371240434638595666114509816389481024727480930282629732121360052925256578035634336000198862107775401363406060666737152770079218493290780820006571518534379658987525035272068356956627500853930372721435120853375473628970423871120205717291447581624364587361912984217129869413905301742532186972160760095997715401020796344765336851116475911246734564642389407978173421495863928657677953639218512647184633411183529469255032535546101546060458361726500562093193709427800357430769931599413824366281823478094992081760202973818778649237537928037773696181251160548912380021549750661001856593032436378990302013120741444993389061648328054265230099267999582972823410760482110521789347708701502842415115479656465112984310741708772861239580250987313662230117027685292807257104246939026229109208463472743736882959948305393056103161048982358697332249584893397352920939083835935641810522809939646012259274720379925548184406537459405015968899605765707802118989670616882159720998084173656978651603130736774426960574466432187195532527053693230956139158724089040418588536391796136398485300393356102930232963836712136133662160498570960326787921602541028126111903187785237843508694068507241244763866033668052721894210719142092959430160353901193182189458625699638048618586464114030052068127527607233132098865757710789179805536287449779557117170427230323632480711247003080746323907265530613798471525197399252137226475329463111582851116932433826135468215577228983856676858572936556145015607421323083400053290170333179056121702235336897217377473912114062144386233231968138004412815199444036989873377056518431663745642839340389842060993430267620301106729731428296162209719997591485543257869121693599448063591194971672001155906385576164714953079734041757213623975278075790249456480692050805650041719792910323796251380994286424777614023594298968763067247272988906514606150065355331160335744959029114546483555247715378910912749523397525182277217466456773197545761800184436125281781635522879240430884307150544429839699760787845143253101699908613966061824891757407289503439466336087121924452859543275542072910455372559688396879968320088774679914853666877602618337020781809872419008041355106419621258546306129358621420888951177246630745003078829564123293267307065860450675434176269331685804847423885539872035212370106470331954932171270734391851000359286619770008602701431261843792021956179182641099645199829733197528578065801109533327563624674046060767086464386406912228746757449022859343671099463359615719058851194797289599611452203945093631529138863828567632179731503344858599439692074147779970180361205656647209222419175569584227756748569958741672686498541337889711881725705101111503976388204468441573793771809577158249320010721609196584119843933391860779335303844511969063429467212064773242934664118401885908632932470118576883467424847094535421360913395183752572686059437350875073883096568024785323677270461627414154130783203442080053581107892278443033123609998454549490494212925850957620953209764997568022434367229084355353088998093410467291896148925539464115032005980310940925870073361637323114394606771393612592993237832742041495715418808820566887764878734475067021372458508023649803762027783655360374722306174988290877041801310323166448211303448766123717185675471677849635065244832645134512742047426146056829909030159921488272422131908147597149186682106642841771815997669646807800686375875358767302387374342719768963214813073395966906091457398835068789151540520305097522406464037291850927136617446976930728391982560486228398645802279830039026351030651838997776075987205004974093794117059017418832841055028492141378947116627473946005755626818647582880527980085509496870800519548943134027703139141500038535611902843631697066041210537307168452354821141113108205173392961178131115922478584239397597261900941832314803786165959928673752037984837382002710697372559841738670111725143949184215453597218343598363745598956269484675974356583601629761836322424422665077133660253789878648231683406550066453550540405555651300735285687714472583490842379985432079489579621882548713072595077362080211389992890564943641232799432362486441538120322389608400798316463580976739503028978511281941146475964208768679594946606229133991233493654430241938978530255696297902351460161942258210029871531615593388238074427539545994888674334024686252747367721767790687939165781637371385086591361302141159486626590927347378773261166292196990946140818669618368358267720003039494442548410696767259237322378502778750100116312134857038423041810979514840994383392560204792115526491842196143510591562817129319680142156648890480720905179360324629859054698940485865619705148888121346596523529315698803160324593915858257890632027893637194781323083257380436983395664249326962513104365838315982610413683805901904080863398811194301839122296600782984183406889783727739373010164641269395095564267558599391478058060305720072929174176821531187537677034257561881560573511655402240554864742198552977906639443805791428834229971825025709671669678730734949985146402141219185910186631337287866928159515658923974021408730893353531653164950047649442624917549107760220208742780824252472930715836248565742188663913263606642723996318121247506464751353698515744203918753709163244984948332839459483159307312489830937252925553006742432100467866337381465021362994811397440008855899205194091404975295671079558582678045407759338943689532685376607760550932489481481259646917145213406663969216833910313246745329895281730927324180033039681846753469732420670948125753555555406294033606085738361404104641628893562391003258713627290215389631934928925299934588647670490993115066417703841143787674940423949177028667165127517290522251012973237039283883159391178691874743875956621285619082146033633449809741792737200133218228651306331532739234894597721753791166236265199148739333921640966355052792615505506846393660979738449700047844743224307344879490549360892547864793081154991034857047786815720605408606966039090931562474497582791624907554491019368740349962367097725031115430059514580005510820679808425930953881464073205694554965675720596812173087940270312913019945958960820193255704349686937891501389315644933708083548909384745324947188496126321613218318411543891217302135797234985757103042618979089481994648721478063166085946682976849810788062921645211346460816463336116141524346637305027190750327238209398069542436723618598276130603428222664648709415240333259868085558827359380356503923738248656859779387885198131944774317429290953201460534526069254102951642183792314371913182770945049216020403841537089628904951253670856144289902980954074915976221044572005277820521640584135411816103717180158765653445357252756053588216269213638678467839354878872461041454541150961075166208113030873301094161617067195898459570445751874276436318047045142962827976454053315864892513550470240911145858361205360191826903348371103044343605623326341752660545884579501761647728409621203133046433131351308629188946393510117663490161890136552711295716866475719611956087693874504893106083808868038825293516548432055885682555304275536695363119518538062075998049393993886213525428023226624254839118214999309203235641858841183666419778374993513351038746867643018164782734571683351406167315520690255174887757286331202154309603437431350530470919054495351007785441224323482238635543665252087056971768434786251190341596244339249213352810635253148441096138363401118907433238460072528813832971165436099201467077355510317369985052333705924902463597902243769143512342136340256331331379870038610078699833578335618084897710451516521244123356967007606933866481645680808256042806272150119698709857971001248821645481117532708550217789284094465050163822903794879960622571417600061565867776512534692997330267832070449633088941604724017572966087954710391860881482283127574655370493056861408232909114665000845568047620353463245098142343786489209887727863696425493501380210562288510840074439231394427217714153831354569519896342398164395725141990658795046986141145631257240993879550115793214819124002262583703529379023049366524843589450895395542971632755461607908432320126611517928363800939871369182376398282744436765851681652508031145255298642803632146200802930715846425329263100922045536511733352105589054222322266623247141516739913607099412333325932720859857742758244728647600520123891971155182767689436346060572913201828157393472169522416803974308746620481289989115211889034841107854110893186517429989715207268930149831049739995358978326071313511377853751207190720445836635360538190541127600297863746796851318665876394607827250287478700708658061838601225645426536848654969814056126294047704363878695163862564207723572297227806850181318498769369459146603274517068238287288431748969781634310850902839957887076712644946806964749704117223187908446203991950779850504335700689001340548244176492239666658127667984258473548332073940349972676470476941660847689780564797174322414456264873848507760688607134831024906018671227585488554253441855294518342111109778761422553351898912599222663435717817218633830977881107545943347510383238622488298298204840165332535877236246305923867795636130859609806657739268065308902473514174276176238334573791342010221914282078768913426730963976420884816881825708225726709053935263790581827150151652790525823210778672470252959592966312534679800286803295990302718797821416641398172229586628149722100338270584610091100809604059237235923365174861068264229461250223926260076628277648950293764541039184612828598928305785268326251013141809888184846092070338912769869976534549704206802876399281583227908422567290424794827003732743016584798049570549442044367332107893351854159000256176696695238726684413203491391420386486859139278548737361510009214404295649926396226072643409435098246083133799651002685101229783728710244468229039867335436337395794456784386573388980998190200703281980585606259948071046637072415041056194512010788948127258187512520998903396467268736993323020429184696166502606243847741101382360148342539692140958603362977787771662445735784954928756973615867869036035097559127894297975836546945946583621721053366083169014999787798767093372065113531583680379435287371896646636335252017313334098513256919098256435150532945588756391459901292607895103844038468470500646178409420552239236938317238520505051895124871683884264579739017870124089382245955316041657578709031596344943965710339960632542806458103082432205607349598100868558618364375312906927754826203403066014540304220186516234337187533382953045743381121440753725447685484229562457173824395432717501355754910546549602175534753830074797226771692835044984872151235497200124256290647507323644540436920031437105047172472224346885035997217278724561427316613785818945604750196751771082224416413307719944955149325452482518737073586890363323357463725681346409970119408551218294104283405762491042590799651260436013488398272242694047713573093115258586360521674298742504988069296911157222395385988328749372251049416755325207751028707771417625660994375310891500429599701112346251467202196399236119166340937060060678326891282914311780166558903525613411576618618456300929803942176081179592542162268163740192068554788022652552535961091554117845933983040283168789597402595662635099982384643755182324481272594539350250907895243843519280346829451615201191494336728306003498747006721219736846158252711908458804818132937517270913242510328641048450227436992464681519266540203981064607902164274473571058864742141956092413543678687923160404003726716829432822374781428407967897338409335610374883682760443757433958576405320052031369956617766822907872046611686354147002478532169432451312139643274703197793069135070655848605983530052573774805507010455740902615965736295147079494399228250170456716089176099292938799672142577884852684485938636574281488336865451711174769783008674184187499960965441575345822750866325380825957804153892540509609342895523861256274550226376751927410682914296874638661946888723868768224854815143237393130649878552664982550822389464540799554612859497576885374036332466751189919171584969703995885097120817361908850494546400023329227315363838776720844514041477495679547473674526455865215266496316716817459123521241550650136459431075436668143175736739558859758001337004527386411441833112464197274378978870965740631484389251647078068601046173498530223214349248583941249648439502521609037962133562256142669933531118214285149323680274780895010377506578272423033271286964823129943817583689065246685400377942862537453260196738344347589585170260641168841952254856648653569816041132618913110556619317416588161918920449783093507340242897927793251788823841708729025919406266191414140534473323615258308707469320666967994607225679827384220981285984387996681902790268288901729874467043048699425556912423614689625323499024549471449534410785862025057988486058270612049213104042275075375647813245093810282317267249469972878977792839309903008339240269899347985677950922678768356829251231229035015543371076934046206710729278992192046519420578092765021420951376322643732455992994426913800760793300725599837910031826523567153691871243985535785879802445390397022023606140953687513996172432197413629312011795866816207896833276371591309927741457040388372973302929021998288968617284518609594359849023957207814571417389066682128132185663007156651545715179522285103654012916366374471688972680000124068555441918877808545472860466030363375901230362464675057096271772924559530912252912434364816506972160267337146593829636512153895480491539444007199501957861856441319039615208798572455597530304848907228478450271890049409900665095286167509350244073142064041917023091112599639565320362977618852268070208668240133053795248563246766569829339472725388353719700070038853574478656964444735319324725658894720368373010757070024481543217229408763711658843500809021264632975601741050362243234236557231344955276744356878653945766346432455259484424682864478146400838225059492510685592842560804539224587263475911698760581054852985194037995541818878720626263811299199742488107908523676134515986344101204825806145274156020979195144764669427717952069606097644484313987066335687380503690169311165292381271812082811588707437155740179361174955545061394605111619374531097205471339397752902165919383774797756398783037298383531235472169135279679364522336097102454283018563419362269773478761624931136191992909452107762904804360171181652033151438367060664952933924385692732767626232587300313547619364696113531701342924085166428029382036743839776638832119702964735864846123099912521886126420048888384823402330890390642483280274802954584248969059455098553508323414314923249272427823549236454440876240541687116704148753890542288107867281296128409446358260320480192608234948353331477652314912002256671032643636323510550860576898687012197209704305745816688526178378157836236826572667222983890584876034774318444040890886494215079999267376105528377326987232274169031975159938719872779234339564859287317281284576313920128684954195559769748682405435773410678349439022847189749984995817984289941724875464854440367922079755015380034242505459916953460649268354693036370762939503842580846814832464846413980125407547433397091080726346137554649207333709595320121937843324166291818674696695553072293254873984473967715966102977877500861053780700426406755006258038122271481595432122251430414891400022995990357313175840505553320783339191555982456028882559962924310192618575541572980053426727624243128679345806557843420289355254748015843953341450516769332646281517278594910869655206931584937527087627799222407590771659983286066673515617440353672179811997624982445351681876538459307298876238502668163038668363035264227970802424538144095019885738646385574220029256284932414450994931977566398795017481518373884555104508542678103292962614100236830045716659804112698309668285354839323164847272930991700427730645649415731732798232217294477887801077476326194399518310538087275861777297229914423194793369611249180819753361446630378074775392191981642254292711173910486282221564921869610951307148242268146057550320900000159279049408676670995883087195906535935057960056687941864593783467602757812179046949273016243171468905225132515207630104316197615934383286796105219949637938361240918467901526459504606817405424307534894593863837228593539519537560813713128772805031474264460063025857058736238654178186397476265502653437854530111361854984287422426752969390317256424104513243582036520796572536024897053660876808884836301731942759710146680285942044668825591506587101197742040945391813178191317332072171887089277087812803038512180377612147243635827238606358572003961342667075386961789621040144300272136119042898090569861109256824370355103423187179728908363671522858674845261710991763561019796899292088520131791836690511118597385314994233343169212983550923510144583239272130952932521834368193551621100652755568093140469463418401429763144537316063053377778974779856986522936706030831112628892685952627823111657456095396547446225114722099650022542084500577792505482873312925296394473219888687369757021761711269428546896122936233919102603082821091453370847922221824834640474930860979689948227757881635651112160632542312320187816832614183701212437602744237770445940494587322191550018814512008167946785029044616488492720331199839752240257392194493081114257608848895241577705511022835662124137503782773047879880073789770554730810315233541043590077276101120079886756210318768698084598345578948418942473721635997462584419670838477348811416628143858180636492087897762423116322632665715176501365655404403512527657286150814917900134658710383113400155283691874401488065449262203752543805522215698562043037128601810673790754369742511197743203352982472553651182902319370526782465243948642274175469121066375184512604370105779048420127322520812125883716093633785961193907060942323656757143580429863021872847968041352068587959032464611143128369783847238736913470044740719322917006256861497953324825492510754235650075295614948335625918348718833194774355348514966791306074891987339051003180160245438335984904722031526302170772751717722482401868929221725028780147900955762556463090997049882998787585017653353556300454127437062421970105806561488688425648499084048643979210458769962382565382574113912067846490497000262544435065288913826543688835286307887443771793377131978388461503305347129594694114005852447355552090512692043156724732437487607781732679736224621909002833888200144564468511418017437117038005717029120578951222964479300262756679375780741899951938333131512533391641257511273261102659540110435305783349027538843332773956945012364008089677785372188641037846169545818333685232315097413553348978282857587711277702814900945235036389645514311341642898181625546600705622996914552386921330740471683062315137702024677681782598083184042575816701495019215518992641486770561626861556772815478785317367557902047139229270954597259377241492863865196851785533335811379051526984196721455758127002181838284552302574852342307251573418728827070146376776217117044433929403741771073980807091621618215643884983024521207593949074669819360906956327737235528351330037162868581217297351756749246684683963636234295100361621066804774173220172996008277788049969992165871364977906602827944831156787945849158680410021488289687593421171445634828913189813526317902581784093927112371133397455900307845986000026039606414848124161932342411391408668611078767972878798353193850907806797511990596656179896717676972691440853688900129669355729489023742039531563379376821564162007154753936175903294914489540003494768674518658035583332765899922725889915925004361562242091054499853902838601176193496270941343311255219830133113835963014364537689819274307850843108813495528042066126574194904279679835204846742566039160229877227275152603174121463179010402051242105730308992719783678343974972830043498212298465554381311542278893133348655920379076917895718765164483604956495936873165365160054892741754026307497361570274247349561636286944421625501133962458822393621139538454864170928602307669008842207458799052259055284583733462319023943985427692947411434415774068300285285703547801449322504218315249953498994505704181241402718405480725415908823386362717603975833801411642268077587211635010973474737161333035979979146190840428853049330371672933328315491665476693370058029240436142422857487150844969477381447981594445853108921729518956278529438886912306235385575170359212967965318154375009182953828047322904621553453546237893765921985424226395998869442871697722452184585370949249334790805869462870152138355948855821754081783795898695408953644863486967641888735044209807308087709497613520501074381821056851904964512522023978224035358929112585715128067001166897257240103937559336155084018381619198044233977609687206093163298738762210848767889785822579444996257176479693289691810633608425857289731592155105614087958165258665043319809650487545098811664324626296592391415519117356457793834155100271652551894724308521442454332214506102607089149649667489913423770394705180811637956242338679732184150773183686955858378173229008327040161460973101240542854038395620431470064257945700146968888450947571226661888171803393196090307574278270148679796643100918081254878552827677395361179034722168485750531421432793394105285232174449595607408685000143119533538950421196864542105371322515386353399695191390312602510738153986536296570671929067118303037975656583996287151914610278326207302453520204957841102410317131214727710833535507120119096163509568581323337468990371502965935368788902481460931957941672476350425780782266633411119772689979319685737877541783849097680069739490024266391648614848802142220857955026135690138192244269774537287682852892904651099417636644561455760138480458826560905909940095538823789360347591007242486566684968336484143948470787144793262346423200191229952535881691971411337023819461705788905718056427705936823110123824489701111811811087630886560216536343335621249680034153781011451497836582766076343659665349615512643059339562800983472729426403397783389228525927722158746965195786026764177527541215776346823823092137706287431421873069741303635875499781806536673107168001907198557572251443517541625618961117378103304921214578622052482550573993001395948446317138377032000033101973266759692402709245792655601009242528007787854272129263488046164109299349767091746544545751987579342754621662577335052478412539252806274861837161245272589938368768126816456339388274830519019800662610152823825349541504964082681309669115120282108191665665282315085927364220142490987039517460136189089659927615783766346275598287704989963834303336683515825700129014771637724350784518472934149592085109036175544319145681000811610855351572529154905713054630680407975934330020268610539513886124093473651722551696858717014278379834043219839453353706585489069918956972487500617946778017301172122747538747911927381229176433833770611767818294670581141335240552888855493324817966835061140184305319755938856296910128601590645186173100168971614063260518016308288316352832228577979761174662641327810696834788450049051381664968004431463367605493084603582801166296703534865326392422449500811929372953579600013689783064923782130033318867378900965879514812598852135491003820002264964202918859644607105500612260237403349467593935840869681638452520494588318987931231258342296886415134467756638394935474831350926353350964026891935193114801874672631159936549465836710407813051036310250858813594185171134575157518576030806587506909936991883635136297293268683414765140098603463136346250226063600809257835530190815939862807983697545846982201109183565959909307085835181946541312975403481291037960041862360095440610068761013486089002439366009471150803148368861157014615602952286083147365851929097112391174258314983832830852440240576810916797172192090722539333875989106141911446263689388607287197262799588829987568774138188891810884123096404744129931570681866192566352472581302961471561619957650729449169361841746733527068430746177847282238951232946917666850408329235610488841969513697611873326413083821129707532531545920553959216453728491684317665958785777460304632696311712562419105912606972274154226414244750868560701516174994908603541968337090612960187160021517397729010468906452710103522562416811549103409761579553846386672840672189614656141372702646539164273548065257803709127877941721371161410794315804543966595895882749858690279901015915392703341886829387465948206997782314802557422731643681926237397245383788195241494506729239539666812930220048881872446035083345001709317714597702431382525010107218343701214301442551520311101334132091749619647384567808736604603618473421620146168958093681149921330631109295800331727055933002840266891183170087135621131235939270386757356091990433490309889317540638199988988275437638316496451979265618424632106798721188316831128026291773084669474137370035465814057901797359582947090617249005658768002041941376239383734773684747809113690916569840149389583313169253830042003258154409406239140791904546380966227515324036049568149624212688548391589674555511615462559427368015030177600231115256765792716077073271417610617457522129302241171516953186587120407670900406317944682914580559036971001640568367944822613013904033502365426558182410010145892576758857867248093318309585060464571964202677031061928678514566037412664757976130998408481891215801036217145692911126303703957574442043937252563140209246479547714121285373412283499277265118389009534288822527261477076480518572887349767462189061876135665211229202720651138409183085734542976809354156325021023330138605366452685494426598024958750118635762555198760073897754059158956685403239326347721206569547152381240911970075388480279639139853517689791497002200286039240956355904981357965088906654986491450637518471387719967366531196595848948422365516828410031089202583266181733235747006067643420790176068270925720531135579564429921188015643063621995466041707743550405240907415549680501646137624902248880022241654674504311346665433875483857456315844908681835469180024086693806872736349681459267595053273894956163020238662917275515184118985483509263579300820459156432314997355430572582529805342455874693700627901329355649419377484139119781617112685394227570342600892462508719684379597171001596233961712706400085210483232776056751101543381512669951387418547286737201537622806291340519580937626011950414938374297178417849121230441649374844302526824609770107449896816302964050459958167253088758542974624755566017559572941896151974785971849281617655324270925568647970753150873911535863912824453564309871719008490935888347416494874273417881531665744331451914516495338221336921285116869716940145338471776078392370866865280669799909017013366550835140008988525272730695128204604121242885260580279375107513415721148972142916907780295264737190828812783737246129120107483517806254760797226872850342579484325241172769729895379567706757876355101510703056030340337602899047616116152555440258806991613076381014295443863406065381521551321308354039660968293834052307088378339685418860779185463219138192513958788074759921006595056514195659381009671382842834277818682993356664927976626739232823708815398486552609991234799794441586766929754088285935153203712122392416769784575894594520778366256353014873068107583436698017173618755320775420021702047657330696082722340339154609121396357283226473570526142091833201920432646297920877772774252208143547645447732182231424936861817253611243536720378176381156859170588757979104449672332798491046689531798412227518610729382240131193826459288334304917490585598319630829219939740220740169613724554921825298036529858409026832092756154055198566775614120763732252338925139829281137260946774509133179582925832062461292419220084552152776621508184388507631602398308613831452914029224405250190864225752004408788366105181615727931768593726778114781683657224916990897939627893179332818138144443710554289865225789881671970280233400105469534889407263918163664153343795177729101577474798042744286717584227102029327665359615442516182578213026700540431812995038377130676047284246323688725824974413846707525631983217004860931582064427423050621066014998782199562599649643812773098059140508467886212094043383693340484363332252739842987150877721267595395119285213241902462752249522457094839583339471677241651985944502591812840319423230178633382932380633993309036101966735304148952957280653381243758692205668855313343133139588199873040149693397609759996222972227651692701500994305519557099290141302581959456737539650714924405998905208769082480831665036785376354748263717284100560572326860553858088886366976277135477608448850428709997589601839971390150475569050178879635011886188185612054149729998645947936718526355005456090647998228747437163169101406172862232457464037655148118307226035501678513450404399015853106606027941546679192012404188534692524909466253494696832199107023430327688053511862698509595925013077710260742752294252579905948802848488671036647044649880176516271870448331516159028419435529039198339895871680770955159527133913393453354313824727773148714342664661599894066450073167696697829224599543376202637110512648340090263220958236616455175677240683543954132155088268854372590643562430112658314689997134605054450360588618266309760169054508375808265239576877957788663268030375701931009582848039121246936321339629027711132681339681588450264807132965756876876146338404783260964345466932732742810214615769398584089381735741413859299808576580339196026451423493979655566523900735793825921750046081671623361784935021146950558121157018239175526730480394569452056226504535057408184798415065804091405529198478206271573544178239402395241006763905687717934284123163238446410669204185400394084278148133539663197689984148130855720184777556198727071219844167546112848514461904281603574946008540126204495101150453188456486636967247547232778786046683873527290978464033856114093389996043152372928912037057757859356718954816935226877637741430606957667129577841990036065889787373644663149656889945573387659740819080296143948701559807236821116991409613825474187868016486837467386358467176483024006065874417018516035642440128859152510012476133195454276533068399121822455633287481650798189658029989053500764626674235221204350093434651455603458968553841021079950290765381947388397959070966701066384936508944090761253385340298155387102600282443014804663569917025882806875348496098432263452821962149138690054255926368528729456685691292605687961641415873300442904215207491823015446837760997413336806377188339566058459584037362690710495917709130522674963153961699303985751208006986988391838809274069278336988532407341162318876045541368924567279078757193487685282583454927410846674865738021108494198603026602283004029570151491924080807025657730971449474529299820181461172672388718075791537166198907567012826068717915637370930047970734109347271980702188083445936317143836901106519156537451697691495160529338952564898165471253229103254379699718922147891875445722735707492326758354791907512444154027363449686050207496786769515420396697121826165283628549239449072614042228729330572984681846195345589000174443403346363820649126096843334525433829450578204877693937903086189988622097318084571773176691751502829124415376279585013350088105269933359832107757299633225560158651666522140614400511229489247573941203775541019426764466982494569421208461585926488239051308606724800640947677941356615881880437356038654835879542842484553641989445350955498258710392117054873289079967856848515436141868420953997712044934479536866437747135104803053320065144829589035051380236195099175275981176824665162409555374609832727178893327427248575352916068022653182953446424141754283095003316021935218637595675162094040893715208147980564942213397058256058019723611047686598587377527959530733166722641627592753455210764222808388651667165229263394740792318707418081633501313259645634983212464405228713714138409400992025822956879934121138502896299763987510510973441188457360105620128650543377793557500389445585367687472724806157267233260284086481635775483367258910344222893942680923635373487073925701542272292394065492865227210475856215118962362353242507016977439658027576559908669931273172915109158969250042808584865109398123166429864698974966343778063802869944189763292369749474473107453671848942890787867721966825971072476850401223535056081763793133149249584098927829179850146791765820559878713431784198431951816570932115003353191171230234631956409662994339789351960020325898403966776223104664992997088773974214680426267716134121705334999587280011894537434446237530203808255435946445353997072316377959016878982924363541449017908851736394731311870564650558131912356498156463042287392953742095113706722060921833180226586057882590783052554643828924916730863463484379542730606601197815557361449612315901906277495090664940626156851596952290381723564328356954537076140190794508217395795365682655885604813815632888074942682145040406781226732750249477456439737013830238833194497945002502321398309301070623199175078472847746116655456750389502964082239303991225982745117576721988735961068383856530025257362934114479681737736809358139324692294166097800480313542379959357133602571123593179297211685336343748051045658092862003587037412332691675703085849744237781260072853508366323668241844506750637711551687072214977400658076659677058857721721478403102296004867224331042357535518696958423646471529706614970573196631155905628117948348393656527741527133796016074883883469017711039744387551723350920244082495177690438481733569810835996270505416222851396120952026177436596835473506867236320621317505904324749616809295384954167368197640020168607919024511849500248199401159345327080227253172791579285520285441116224808398981362374427273786456212557635968626658717489840712838639140123206245349423656075976438103563042622952640982939701717318593483745633792030738750541206721917807048412144168069618365455870147329901862703418825700102409218852680450600153915568206902433806079329132898785467036801874853181882897970108503632708236443649127257458521241898881989469085461639411778803701348881288014468720204827032343979425062897730502298050881936225486077889192799107331104662017533670952582848804309795875870073449983114476013677921622522380207441077705342189047942899934678551099746602040516363509240181002765941909463951022474080287812116486095958773637298942394409009864007389958034856665928343360115915439659567740167819525326938819531022071448517333641482141491026026477570899131373838417458187444663207865550582106075062982231932411833912225602315319423414996677586234927828939901595045703299076596894761261918824020627930402979623922617670441766920874753310449238549507814145759788558477013330457885731846635865436308852443638877349069424854031873470463638339508113038541876423908260573139315603012312810873993588873424741899072773514887672730866675649576401530523139440610990515752088524598810952772059335067801554150715028271021240504659288740367906877133850014699295749207505633081633495769984950498389742287175277247006737088053263501073783261316851322128064295518205972528385025330170918042534545807940883579454503665767490552615240529689283301999842713163736600333933224032761950073113665901987271748987216889336013710140954680389468448240444683750272696646627047653825866434189034315964527322187104132845442272284247131472168038990314746056827147708820252081698761983273804351855505349696729591904668032645368825168458400254320886975568740763925598155842903975208130030324191903634286186834030801672582846088995051227741406262491659959135365782218345071579184812094237451614986196192024448559659553594446888168779985050778581612751228969131074693444978870460264236192046636384040945452683026056495759069435546727719913414521738066735835345437106531158192710698428663063261937642591142371138825051950486665067966511939777885536273814313118957806437491704244652568461800551256770137217788484922506264982614105679158983001401537388079064817507202134608044877779432794705330379426523373830445006191462225238110474574707433685044157800126200013302874859257826581796959938393250810395453457793048212857532937927770219990656231898481767169850975395427226221668948620702483897118006461423187890980547624882238851292393871273145797403599830625854090715010538067136156043470840461240180722364393132842035537604021332837818816850686428606667227106100946887174110044077994955024167026483478834846572699665439964112203201958924954468368791794191978107197366485865525220003685985491422879104731292365446452992865551587226035517000135585982947603222812034233890777628108990700095310729419443926316435136321028075636864524006515805589985788350247531726187550539071465420211495105995732680248551606434173233366271228343205695011420081556712387709996205561179856638842738418372107917964767314768176362284774413732562476323309427254332425366735672910048855808194423555355889529014823095393869308006557429431017766503868676011773991461301450679613600691282370155268655435622194050809041207619261645235380335222731429119026799952294842836611509413947629393930593050813362140743899635110624920618206758493425828750227798586596191964340655173569530189119655845911661616121396507769029137213000474536533342856610209586830535432623552431741985644788300771527704073058503387736519200057870181986190415993622778477015167251278363762746054144468771739554968449649543397415624874922255950833510666268036519033830100998509443025753000779773138699959327693700356409714268782711402108278034788279080455661538613193541285917177371476803053350338289192201905002091914924652962386587296504897722331546269906324386913023090940513934113645512680747998662399979516782645173564877380134214280813825787003817965042113706907778205831441799282816249796752332054662840766469551781068715781469908121177562438161013290777670795783625480429830476127583490564734545688447983608770999487680940308281911842938244916582015786156935263817847029167602560326772731418248195889970622817318487400579587153311268676229727626422207496226604472075667909775719295396043239408079355466438691939723220798695883741609062634150682515783923120552891723290652986319837767187332378405463822595430933855994106835393941138349864356128366242865370262201114705240737858427810021475259586903418763101589827366046018102804436807104412031180780807460459636633910681169526333600679200663733015210501511333369734544172283789398611827326961575018252738420619527737099655039297891268819704093772276425398141670238891145326025607067010976754970926299249028766829097093575670830081851163451287291741442425339420830111330841787769357662450857599203843362898378286600905063048917076395560009215100926599687969064018449929917836229689675738293453374469497226096225359423917157241395459171243117706193368220888201398939597220003659510771445113656032184860288111592005331565084325700006606701277794745122705410746808711915051774523187331766041206209787137287031975400299693946295467501393172509820884598159917441285341136747342913200185833894564264306717035934886956465338413279855277189942278946463165548417637385169376906282252862212711088693259666513228559723538912015945739882019489079942193628086057471534372016358807705222742953090025328966766855658852775440705724057319977442468972853608555103782824548318325814711728477645873934661236078232720177213852728042320005251072874232189728620256853859480222142212158014570956250857273178089228638281110349249397475894647671210064278142693704222966151647357561573531921896326630808027119162308079028241816504534432987265232149901375561061317357910466576382271414716349680775725939027581035465578925593456039987129938604125872462708081313975206724163067769585713767060020031638474233014908458526814925092477452802782546701615800471148619375152107086267515861454136797364315687623796128982104612990496425522490695337594140062241671420767921255631700160989909427944210755430296118925632602547642193631017390815352617682917409714058764588287541985892519277316310250395355775715874191875389177305901614213902138931857527125179202093807094208335156600456117007518408667294505115558573073977439060021208479586918284528480076633979475372876465485627379271690124649373289650254848979969610885519764771732260787121706949629927256749467691545838332593649491790475903977170110113971741515694853341236753413437732951320973763035348978875352203839093255327791691486337282818835689587321872805989829948552908393506955229406995753057761261504269284051144333420082308186691692799134395867175047071500292834415692118329867710738021903642670545446394989354366541136487690532604697454667792576838168209510107237033157545532744430639803095340532006041359251797532536916008016931677467773461645265321124420676937803499199610465108314901852540703418725041582524404775989641830723828133944249291906024404985790150154011357846651600266183652982765744313531636177725631367234913908788263696138389722829826422817654077061527460032189863192426933085585099513891751541972799520261286963193094585691129224851534495308885312575981881157766124018707541421715099921612727541223257338205718475088035244961270432996528677142039611870502393824050683129392159540668903719713283266830172835273908668757694273256533259442717283265312538690378921943112752730407532526476706462927864988442665178900200539646701194841800051130021087919176472568384418455860943801781312185077874835842995844262443330652496027059441331626136541423589300620921197500122220390038649579235300283617294746206194335817664840003259337179341835701612780443788315813512615135362114218909501858111759980788437952374776228486218915644763668327207512496912923848132599697352999546795688423189633795325514913799091033486462350420755140263098787259975357373733563788255005348553534420141740074822792973936842008107791270082644208887723104675734757942971483671862052601595200786385325690821963822857194009796498452744109711482707124411572368111968864144707936225570994754273787525866292832184603273874337250632877016100017033490082208416253613601406816306728528603682210840638917749835520250131620537037797485542151913786812287890300211685022100153593509063415106242336096759889763834127748291195053584316584503691897421223093945643463532913793238160078352311934382803028558648250624009056190766856040020018724293937943113391705710379557818138577099277607002640559003414978097124359791247508582596236627660077401174718703953772260827504262601385067970578408457148488714276362973508800264182245572126895315303918854444988627109755163848696248979032831894596831798983278281179179326428763950491478429109640728311466936218571487894447443101116601651425253149595201553019278739254130787766870839317422896104578221699174747519912128673955769526091673277983717198366854509434456594289654730288780441595506787782985012246700235757203380812103137796836907325879065089362794984131699640006181538439798954226355514789837021028273909084814823125630617431159256529884763917312482425623299831378531654357373430522656855935223547858011299308907147591485243395799479822538600213050998013443939617164191803377895517045812201251385421123342333625157938249256188007263170750618959732461719809192921675072593626119934193618822650172847517492194251597743341048335984102170405572163087091534840883111009941786367910969041178610682157420695629134303012860773571930980798551649620672581772851523534530910455584482098597108504028581276040586579924900803113235376755224093715230515485538717652340094262727724598795802265406776648639850567750638758224836210421963444342121145320529641302100880978446483096888326204999868768283755586843237144018525530601429951852368565632841928453195065422501061483223271736400325664237071021240770750864828177874177724062561643269528585280450605923439866240215527966764335054777626497888329305129160764850219728839944905708600944686269225268161397009073210191176734656141512240339727277902335688133154398671172367460258154095497562954509925853817226051265185609686389162646271983994962751842359522222567643201909475878652412247275808674941657993097263404427039703833113762152145182378577453409577035191458372310054004800251474481840031796058549139402676683527502467552521337077967793004473344823409913445737543519062947141854483533343204222263808159605082898003993369762057464782738288297757645826715970078725186299029064111513859859673686931598813136548945676373724763157112070899354440477390059792978695797651779165982816792729965818317542553331410172121847702885171988012610035159389442546796854674426369924296491281431868345859741547108835844405267506105075502615828377779173335528927536495660234190980638423539471754227603072529197404060112638824888455612612362150644895547919398137333711180108703215217710076801266403747401521244508110189148378479582257290159402771499722767927739716435305470249840255099806918637255127968608586883200977958780701894389593526931388863067292182080270000323378976918654549720703249701513081735167985797097115338178009336329197849650398187604998920765509489228711285980463945605185227556293479369325321366764111804629723487893537294685241620002685485279956981672945006477380240402318919596583575393899178061923403805621598815196547396463208098535080076660343713498216615483554982070820290705761139460600584954779557118055513222935081827124114207592118623890180606965368475047625052845053528424286950503554199429630135970757973928560085552492833205088141229462450305180806506469255053862939943075089018886252980661759104939514538571436161149262925701001373526629850528406838162608612006861615983290125725015231970566315032161711685446175522936300630567201192389696230040023444316236117710521983050380293038337471620815182825535312688544435761309197086238196336604296229706942617085535689780201363940553308371982766265341942657488883976632487681326635480494461267489138136429531969375349083623712970608232838825520559560735099283857674938589184404964194795673755283796739680806452451112968118188235900757456041984042843265965298228178660627175558642848441578751627873513487229862068296506368117284374402406560514523472299063627759012780941462364685961238848072860058292612274346438421137211617020238969494788758260363028027089250547403984281500524116831548185279358677575947660587459971373990716488326957677760063329548654636006511233509100943070526012506259451041285775634621210671043437311057648299248327649608503897506959991696060442421777973970620242794222234538228861366455219172228438244100154418819380092361839008017337883160538754024481408042710764981453571652516040517420149573150026232378160490816672500073247118890361188568499621393348226981246297806499400042665304363016687970784241979814131009282545141472346997955616607811465855761815790730024686068104410848870372350492419846691496810195911756645707070724809789170901412475235924931991081294016420851419307081035511648534213796693083650358655623572739019187096119322226973699751402851044883151342765916972567263787222562653140975963802417543506342140699286693672520877014739518539842745972239349712642902123912539452039119642518905982642827336067290279764269331432530262012267621179422825737363099522908988675536367862015303288254783372490414205328581419757943477573388348332187903619504551255320203170217014919214214018929129756730823606204995578637733342949432667110883629236271286709714073901957989919244067246091003297022628950899302690129325202308698946199151596694104337921049960693723200742331274463792908839095869874115612738247230183773636634513140514149891217376992022149221028968867201340849441910868334249932607124841584099894010824129573309494220616270475213547068481450056524680493227451990604982890837384698443465806724388055939075109754051984247790056906909670309376260037625504424976642363446707519777166199714116194460507976911458606616928633763448768205816519771927757611455060806148209943951017599597434798177198943488715847325531017143317619890347629192203042951435554727913951681905856335057920200243402011856401331965447823899728833841015028775597064489309241650488531288038364236093321903852957708958001865379608799428581157243724493876791951153423358981908623936916193423304871020521238501779124570879621398875691793852174361006481508243278406275833041840479201826397067556939086345437980911924391145227855304472723926000786125948275659886149547548702534371136552711502435332854524016400705775338295544812098888071154976024342986102611985518108077921228010112227567094440640637635414424046117542844792710462564193085069898494222252395225598436958080739813772115609247143102526430316676690029702153410119695962182340399994209577623247711583313922879092654739836413148143632061584513907504172163341176893322695561725058298172492674807623741788168628125625382113304317519228112590105481539097451158351870092281367249310537359753397404940984194241869619164310788042043009802103645212869404412895218227139227539807159659073436978584049912096348447045415534549697254802237925113789379695540833710178090077462740234388177104016399042136884757811857926456547745973073846594312322578945646524428413006682705547772590260874110282838568072805909111680516393156696980702309413092263419229387623034596588766092495380343771734074769128940201615300841873073258697329731029113354152911624989679357241730446483942785265367812504073222652326884336498448528315256623393277869654825571730663715454791467974980502614221658313795831447506937217379183634808838691968911606812388048261007183760484073454681906630367008738767182119659970562367668539526184337378767994473823292745596418771398726127852724674212560465229164840012826376419925672342443489176427339562128454718253236278353232209624499968608333544457397297055882388396454406982180739637681835592979648278970173419207815184971664982372767928654044900694165590675734420191707421460519722379968795299075997723203731787791151433834990994324797579445762759892837069196522608535901068321553916063510993982766669847239224771386164210981873478406523584425811076312456519014754443444503422450256375574415561886083681459938596266747013859532048117943235177530882433515070381272168928061057278013291731068903327429386497928699767104235473182011853531959379108228105924708529670162062530035752929290963829330071358126405035552262904652931843819047431247783028495590219644161678778392099510002377733584717716782932248065938656785205881747301985492176788058428618542759402241241697075982654359351952774980095852402997280631352251356933087615500791057280610654365843899608215906915706046439843966831975970425461357041447344833592084102033750428961759347053342736689788181088144668132768919148625334930979679440772663381265930817027211318886564216472067267307980369943729993132725252958709184541602974169399038473730067499499371749348456049617956614662136058654725197917784866296461010957768389960048331533689771210983748022325232156679072628919123354693576381879637758033754679052919067526273692308292832689971757178517279615292792501482118919088830693696355255962660349386045824770147972125594095415790501180040729852615483733751349248697861705487494669956481598432522260694304314537891225616729506909153286962210120666876369543538138637593224533921830101011561073097035540622171382909352117806348260634546992958737509925503127388068355115403793335871835380597368623425818208379853018056549938070241171738168243781849400780266439276016499208137357657242932391782870253352724286181418269821079583053508828105422984551488449957750934691615435913858094245239025114609505095190265416197094411044064959437934818203760269370831174514775489341798994264440997550734391428438934544050311520931845569638495750960424071681185463767989794630621511740513282775526613031413325469401349384096226744609422384246315953357694072122852826776327152306606372598781403822443206041098524963652304466403553433989946040578695097409215374803318770983173955660131187885561666117958669936659985889667964542544021901763727432451047334487573660816118524470581286110148008356426808982216588554025167213957044948672262593517270005178486148033399241830793771356908568031189240302792578146870001571904950746182467281183063789686760249580894036103181712687791556364400244086056830034622685710436852348354105562609454245709544296858453877643812879597947156364621368448161175636346506200516275187955540385512645897516093828575911795045448177523233079753575771401891857341765667809673484054970136079441429521942097731582966584393832404782339150812061027213168870275188769997328048993828162783840273509597145368601202898293343133745818861767317934035095388730402121014816711359979490350794982900633872738311103857970032148156952350330291370669749664522761151089883735087861484041261976856723911222014726673985369397594615901012384198889762333061824254797585256745308866202101718092422211219828916975512722858128169568072088930846330756713630733585309101450935087145722151919500861741347104887435323864442554218455128839247676682680000396860680933427337384807691138696671938667636363414773864383359423162803120178940477408381632925741785332198253064096044426145488745879756116514292790601102705351618551444267890572816580074969627661170265657819811927771991903001799249958618372845482614356195348107302099243730732514774445281436036920272507913202993773870284257531998147327325756798576199637969419618683716245728118451966170182944537930595076135667555749037135531052308479003643985707998972957863736627227283813543648687297398997142379177140271665266507637231756072485277150422859000778233344578830240133431044021755865230078747398375923500333316674864850384417568392619497898016038155056713961652889228718892845242142250055042435768119630643672704784677535692848678385522604326176277814091211333477853741288375333832001833768988281683926476426755660844507362626142171565141457449232598728692283245501420321194863072853006338622439037734757910119073788976522321167772214463935812977261048456134570287190478352034714386195624291630050484827615544963212984039183053944111630946400063993205814345643413685477772700068601363643034006096190512836708116185549252504450822133986152293164207986136197468483791774439774815859318660643852469793591800464786678243882831473009597881002480756678266257222390209431280474650127918431537211615522950904908855129809498289926374014184383932764967582415089917207662346416086441851088735022673961349060262080168346832013321578096242920085979039788521388539167937749154297378588213693788742035894617163399495894540819353476616909305584593335679287906461403729415898368242306036556987012388108045628694189608927937271727909503776899494927135569878706865564890771208456496958052971895831861606020053107014446211020030440206321115370719244578610324955880139745370642531387245936649759529669388730612181502775938699015493768078042104032982443044107753109182854875340998553742186283369095909916929643545206758935958557121774195134575237243917736727840459789213976110035251235375445162583449712919660835566709723490274400866929253827860387877501141100181066793357278863061576288557190705151032722638904350772650263358960392053126554108023814665172610650740198961513382968905804920169434013198243563328917869399265957928245607892908676231001021668909287158792526960905554840232054793045930735116993749718473763650571131098133230905546919099977491550585498150472521364343138367654627716959511100507680665029218019827612740315884021403334378116852098182530452348092197062858053451877591161202328955082940946924552871093498495277989160229985498722471305492097206372904656395440772773854897753164885692408298921080081999278788803711290465241596008782130090891384168112973595246777909783857186954582990623549177130325513405051372761744520559573117602774450414402991603338275266199506546458092870120711878191053289605300274793483605286593570078724583535261256336153465882103961841793793614150265627125435729479094115879405743340713728549978605592052702494298915023591100009090422397907259115700140948787318455328834158606714011031437406878210159009913336181120406359498349114768311780901856850722361645919873657206718519541221946133417284738728185486192497443750066707214799273194577389992301499408300541637898496183940868292560810805699895582335648283336975905730286808241057510976764811497755159507257969571490999422028863933236123726540882478154293078186309758114663597791223295664494010014447280306712558045510108024642004400486965552599191639506192182162562867408968552368389568100230124693560322495247152198854459961380585184446868662561179877115104130323919655390212578137356732483590043459191623272559626520913610837093625490956711383968567769134754586927603472355378864543885141977506507222921228713295698198321786505453240350145312396169238180147980372113442536379680803561218318742911651945010977025078405437687718814668491936518756558224073132611179977459313250630033443852736595573217655308497442899947656906872000052527841980921077009592662007404027052917820072537740569955899534367675179994480791035421572052941246843797733669594256914077426421831386145496460246709459033405889848299130530024694468018541580950762583344508540236888423453419718635635597238448794381037191697236000757105574569809152932229058143257543775159661192187862223744233820257299553232474603163829114280308881690476915102914503175597349254872628056915639956971361087009398537508650251192702407420334997738396770949251417489320430179689274810641587799776975232092466661989645513434867704061452611326048889175976455649534931339328049974059996684849435282787468368228229042803315949633741683652175129795457808003078922570808633302316509486003812404294069060122775581755264774868811427143158212021059536754074035719222466765941910678130121188470437966109895240557879043503983051207675959441012417535701748658670496532308939670492792209664731863619925652409708291199352973724345952849379348586275719383151232729499800209938373084263902460814436208572772600126480270232738086258806086723921062185328462920415408127115217241389420297044242601023459934217273845990864652147059237357835285300055635890449012248600118186698856609086552850654944171053398950473894497880936815122081822798000857575876180692643236129012534954159741157545822449211261644125047945453250703935177754231702594967648299179607044122712010068865870349046300726140954584083921793379763104655551170305123026365669093821396711441409325186370846004591219295173861148817207391701855115175985374624821453965305426868012311745530520602585612403805472393684277921973994737122951642239178095845196786190411583715781450911384591766864413527683778654923817407430459617856545057725507249299843839055123211842010622657863999305540040253435440615616939419747234765683351416426995484626924896051903028512019596697401366374430446545419456050588905074522666406113819185500629097358269470191286271268877393160725415350707382878785393276626323065697544981770741091869767788204721241275673354056991899331192811582572783905017865032989466890812214685070324198550528530536232939184600816945167298300414033440232989764536102784441894490146427562685101418347955398419005525132616800175156455459349446133674971646962011303532971923179045309448719077764342428459801577729674630058748381132595902520253318063714939612860381935044964952019284919457827475195185780756022406127384822309143873715208994673504753744201019054705291395689484807681694697919337231224339915910639637912904789917157857307782483559580044703086882844635734210618241863112993848642729718624450446868091518734815881085925261226516903363655489400578201350457612510602877140736891153535807639955952981868586929167309985797677491260464373525852915122682617828783617283572014847485883655515632514795428521339436563697730638755218165917737757173266973792118617518555644500105125247363836299941978526768365250911922029287355403718403213730147627135712405660105293736712806536473542767793727949763393721262269979394525943380865262854093120923873065816218473037440619944666351740670874813294149899882909016917117689706500878897788718945551021260258154938368922280507377778374473477626240406973049914618751501050309322742025997475025781237023180700274097092576262242268284147347985226755905919308478196925184718736546034664681345479671930685685984660853893738425206485401303115212053599620736232193655231192325654205569583415467319872477892657430166356099354126898709059275213334869603812405974681466222690693272464390810139157107363473569275429624433095104852537246623484945593748340075452933389565491644682569909914068886904071193992267052277160554753693411746051380036976538427579142178449399730659087763573531852401687900831004842847375648677720920816033965051443268005293206983751254373813527169660953547906978553929774457812277570116079625565579995598954966122944799596061848913955853976303717605660214806556941214764375819563785549051341441721697798572579068813759295468847627324857118046369579818435200693816484124610379681341802155816427019667457338209306156314530586445533209958774438279760682652084853858971203572609552324040597412023875679804524485336307156200982992003618775135357801636191613161621475028615100805630808596797383224683266166082595392889533590280722410037826986234052856241773379957765405035081416100682434349066181243500412369418356833181620846539327560237530780749981985983838353632694015466067698457929006394427363208449473193190570563096554503918965706285256301185872034101138365460030516656512143204229807918877087426832963326889463400566157289267923450134627591502220784724979191148160564600245836336321617034938376373444302620436849678430832258048480097794122806696714453542553199729690201627473589784767439365341994658080888709450684880506322202294061084381526932853142156358861495549510973702456070446981206706678581203244547271994654409966507692271044143121719906763033789120572250916514021819495250465817918546189024561747639830044940460835214741124764232199533358308119048192716791666348836869851718257075957801827828068385623015785531181424763111631369374661344832262176162869917409122378659540092187532360341260063268959947678216568386086442338850720866699733650901552112297585027275182633714034325314717573808511302062445658501413697970559600258417204217565034203032957753767935066538231621426831787501854185156971010296014198383450479598967978575302901450462982483574061317327289733547197076701583428113168328740172489991588553428965409278674327741805962720977418459915406620764268825062282916539496826758338707940951099881510454346963265596965332614685002045087590092044828093121957251101335536351458447226396198506611486984546396452174397672240578849844889034605383170330165946762202142417877637573781486234072086831783191720050256552267465256569974109752889958031397009066477976791355904067221715893953966954612349010597588560481269017069471516247899596393587407925485376617246985289989102548803479923667145542753862895652311143309483594895083223491127302318201740270496214120517728518444487527184867947150833786305552732470982220493128397848375832554532019637622325636538461107913623212913343146994707348918370850251210987913898145704628809389856017733445118755568889501817228656434600250965981561969355144308536291421654653993567355342224291461066582792219524441801644274934592349271656336742991895247953658930612617827947157517782568772567724127713489563193916070974948589439723607100258714816430058269456129619738777886603716885773192475525296869666666313941363232717478145421819823454023614860451145465569854628061815146889054687297407344617808782304290234816317755541199036364764642211739840788765106892965431522450163979806226937568019722302497249774652159304542467958876150083042701398377964342970030727331450489719592197623170704955392765688688687358165582421680635089312324666512122997152514625192849270568318974551718522710700173923921232091412302928596252043306528262385833966853914638779733673449424914397735000525190120119127110619598365294159742024085891330328960443159211887147929759335872588252128206898523955954757085737711904866534196077309677521055876413294130378236102822359325724261239104523669243737835271226440912071231632652979574908504196409023588167557072862952849849953480479593031742713059755929736401946403077876382317571953946224228083289017450408947268770823356680670113279238255635999361731694264305623875682065340662914553005638975975337567962236357306879441577777430449834769022787672513512475676355470502719862715300824718301728637270245231093431671945597808414519877063705120133302575859973679504056662494740029889452100898159936255697024943763025927700929326479259289377992125822219377416263031090806085616690518271092109352095633762434754581448321068989708478474441727488211758692594622644713039569684074556869328325095203074150145347411197503160530771178147557372609029771171783719994663646832469544314585690148698737533041561609602067613743115129835586552151119147571276745216340989108212600824203803578984331013738070128788276619879442971542083098457854135919660334981479825663051833187351548687542264894567497317325314615332869416207111504341283549961910447127825219641337640704892973179316918362270882304941442438378291160772890078677290563215326248880457157464478637453054403449788929548458406645868593596013973385015960157944444855447388198604985392148880334961028333898720339093252023013079226282588121940436334685080092406541522156111342480785912624383489983617760373875121929075527593017353039376899369543994767756019120732203513662571004910227779504515589446557537003789793800313056119653921296990006200030566337176954296751105608574637164571994439950944368735199905158668705164446921215601703876749123465068864996996221477250988356063989180846538437805274531662467412239144881674895182591453828697281450208082998640054595559393739899252483230632444842091744117751763690322365628981627405251741798875446360819375475706265497904599369714665757867044276626857178775172677185686091613151108573178676099563459214059750143208597213498978139305041681292817578517229352141332757927341953721003102158702754762377142371297216025510696589581276638596126792043757271733934487644401991294622378955111542337992147745214833220329008658641675812435224685183125801939161603033077405574430935223583993459152372151057981149620261505898160866176052881942524651477058940348885172036937653789423138988961765912138937028493201740774397460507017379967512853740346797248676730174706394903715540869792444826054437286515507225443098583564570961217849189795552040944496413236258503714359494200199470284026424656354898581004606819096164077031864861445659854173927020480790129453193173530587440311152129660694305971573305076037886272898701671836172301562400209607944829834551450820880227102282903489738518593345815842844365796363572140566880854807624431233714116434357463792515129209039902686348908376502749126017628519536099251065996182894407385755728412992393945303373893590052343703364321118177855752574436721218522725861247888640039185110002573181254434895438313689030039617652168643441995646937586845233308046226832661332261455202615850362553331291758040250788616262507460141065116480539986287349304399410352268042335031270593965466685274099623991359649996594835145446231095956644135257296204893684985824403484948767997768879838495385443803061650485300832696860924784781283038674381510375619539911210801993160312324973029293238296611071158774395573220881845381022096238198870684338327630790247107757965601921270330704290383448623216624811076797048404277830136660637120159203709570428522397475613968049304266382264125537407634311717793182398469860529495446447038433494218264472223221068589651996799947728341606198178425177620694510712767043776154062083845603401206416537335072778059130521064223069191247359405348549395515312348086360288249994274721194199171251953097415931386078897367770963579226582292086687294948780672934266692967274618707916738964443334256203076071796918993765749416700778833897258789586219775120554315588019997969646888017642213570632600037613520055339018085729428882143971453096763229653949559435410505810562261125721612925211633522028993848939839489254900851697628598961895635987607436346737688095217175598008264500483166615606446292051949337288757914561751202395686666872691171059184525201316575405158175749124674365590429426207662914575930904706391755274884618695383451300375641704527829128964076542338693639794575914499471197500617475813928817656271077558673699062714949852787773839264425800626589855606464999494238097475309534742765265629061202233059913415602476308819584159303620854109185053085429501727103670833862622180793443169150861020149523898068992935083421213634467735105371394788578758520062531030822811546958707596958340401849987341754042189311831769419914441367428620876189477804579191000908470939138006702014847572548218437552480288783033215477502654003916256628913575158466589524121786981405868829692903498729025099308932609830050540124688588769920248531528914389767439795388091165514972417661058206290947166708526061813729835465187455627856011241205269228930406118511777313794542689250974532017788909375744754839326726166916107008037581995974928046326662386888193981907114655933011947041313813671048232566269026740302873210845635155244356651847336315722634361233232924486174925064181372728577171917938923259871429485781461138738708066485260755006505563292100173509663648360544190788322092464714031282400651608402789550804421895579950038510744612724151448568609849262599714417385952399968424336948155375693172008864881546389393471534441226035626057350559860674997908333148607246016128315110291077896625125886276718328492503785978416387584864712432936972174031786579092662144411304680159822439521111860106684521924260799124217772028301782949017919948598317457421478685791237385634182518936979773433632561510876591273831514797249153050908563205026610388419554622829225742182852692936742062324589422686038693449020090400422798397008701384202931867275707362034562786705387851588231591477701043560962389614085476488252680502918542166441756443478152336443944116233087848960127619751355611124329177872187830078156049277316666529531075866856064554542645622971255288310261659823188736459354816719108349678528047991650162522603129527999909149277854046184720989890020976389931856818612810998058598105676200394488059259706077980561389772544083125593646712561787306389359746525484258424361280418851350042708167246849164607859098291959768251845074634560487066150026393428851903528810198207264921761337573759121566136052102260536651892950763895134022089294800078897274349775150250353260972230127748151048919123126033732113440520947917625135656750387115616971311833261869783953083969178077242100352911196793647391191781389835188638462395351276560816288672357610761426896701175939730402790420070471550706654542824883515224988087477312009696406814393047897374380604920221460664746975262007225443338594633627555194888534823287883157475166045473125548127645171610867049217399746713088876828393837012503586560465684490369563815592842486088379987366127006703602845391074421728728974985059042947861269844864914006407586539773657651627650871965076390397357996660311924652476238105373010739289109082699069122381087865084094515297289501221299937509984157198954441314617778331672217524667775024049998416242427981834475961242271753701117354827998976444391387933707234166003814369272080288330362921996620887723042708880857851134324195051952910320511787480207054015074389739623154040405603525795132870798860317990062232346889773687430672951706920042979573424705886607743219770407585094633642637827050866551692574480061329659766965557113082014978837958601994873176842238485595243430801356502787843936549348723799652229139403966204408335435992692473858568990652821268447795702398554294661916079730459120221494280532814833393186349555577720644260951243219983854715627404482682296273859745314567962260564787587614026781923369033107059967137368801921411221941101473879973874119586048702929985468681616516715341442412601090698506452148077759108164516291524380283208234392213572507627300378619758225966662251982588472508000800595956262971706077322625256360192873459232001421120831700656070269324587372597401237370245836615248024941851078995438800227136842546985814581952873374696557358826493163743697643641927450466219792964639401454330224613911894666497703566288202399233015703691197096829508530864846250488982696510325169567158408716663852090409572832322423956833040572041595692610651806278216114440498727047744995464198683728642432505332074733049242128565752974877980695539652779971954657045718398838848606295932457614348543786950392797452010805172198948146856052149680934123903598769125555510914749882684686518879187770731220169383736516164302134070569641084189734058324275056598265660243123359749576075446646530229166294935235467178985203974211507642803289267952841717581346949066876519168779417852142617787462463923358210542753027209298714867382259485448190725685038572895474708103799927331656645180824269780695661210818487450352167179296019614712631328552921104790706792186272196091434663819455675981802425219149202678118468655403705406713397514566603994572982699191050481070583620876684115633368224357910478549665628558280338417198504280876508741199707189564428607071911521886537382952209291198515541309050031556745220706524755871574033887736797714137500125727317605891907751491416878876516201558015513243950393313355151208058532517139231189713701128862566227941139114879590751880018826470015478659010239498323728176322974692729118470129968405133308408467080837904057509689049782204026147260809344096147051651049873351135759420384545618631124212369903296287055369159299461263048141816597953136515735990864627645816964238597716801391976832202651613372700246406334597558646272163172221100907793359408318334816347453502799770390238380512675666356753366210436330719515433538953195161803632822319970033527916572177193874585635295022325046447332425213387688427634128607379283051891081409447901993773692380136918670309592240814100253161072224541761028480447647354193684375576240240616907752750384749668079366877406060093843484504024509904154491967165546625198224445734356478063764886287452787163938754423110140294000239492493691160079933255968412006517344796936058527260650203476186627788480195238471447835424695810663586322938327973980982864032378682684997100759548208757578536279424350940511312266950671590190732445106272427432574461353315857384333934914180410751394444061145968710086411133980360424276220888525349925892414559079921721767309008229745039101957102432900747768731624973136779120104057121054490328363377849931294867686373294727457776707150985480186080153597052170784783472255822572250705519316852841614466622631157548638693341601756768778605615930460289776635855758816874760441510520154883042480526799325184337756534137025480556031361551635379119629048140796151685297918907100957613699974086806661280574841001300146942258450127053579814157314230100030570836435164039254352955729146264483373669266623069519701875170990574349239995797314604968455496622650506796677093088519873769662538940221341415192626026791065852170505965338867871594547373902216455553766421571067863933293272059240085166715514167818756082249135268485555881254079385038243611621094312036620293881533690916318610785064977336481699603232941169825657374321177104901256246801843645222673033826765243515081328825735910499646046068845204054363006457137868317095875704069839365004064082230989587905134846987113189182884477121992255205214571284569617084465776487000761074412342467220741757219150228331532846697241960753433664769065626052144036821472002916155354695287894852074717525648363790503336827882080551172339508600559091617578698121114235000418378019680816944066016732101820792427793441408235058966368835328652266086916251567899631655792414016749194718075085426558167046854519854348504428057997615359255371789648237307426738372851337914781153925942785637575408993663700377295122292902042777954268986205257365707116565009593928091840110449086861069670447795670262521618278867027085727279380023402319498516217853523024022931059392264899507872068402478007380132310937182759160545371657477625495483701402756549384158104094891003945157768672887701355946166283046985371011409877745611847670312695572290992331132279794191069546708655954734192452437311995999741400403772598091842038925214103809049672620214457538610231148253148952964227963808424457330006627344107629716063607548860305355011585484787460234222790941198614383156892419990780196911796305735204319995806644995857788716820301248991086146561694617047024868187453829172792867024745075461887905683263371468154658993141399356836316219784035688395055972469092636334443462617170148030356732287627928795165177603696587866086509363450867129697039651851773173727355066392979401868867985890992473335203066694633858029688458513084554883325287505204850328277647258488532617460583268191423686707372101469828705399337582152159790025553294503292590763270967806360558877406869618229546458541734727935805573687946822266044039690342139093302862783285675832041565254053572803769255074732113983720043755310607249000619201000830498397392191360570310506265099482432101395881727785475401742981381617200568863055784456431403835079460222402808524890515098803478226132586639085150911823393360989476981449657567857566821201457551319460651895310131706723991871117808426404174924839427927349746498334415561993927124152251908700531863631525176995711267026682814758936555670241715037359398998955981570215779978584077865217715271900314661183253589329429796750299064830401303369059592393676828811083141044642319665958444745598830989956100132002800626600932647690645291643058521790385704154239282623447960318119764479349881141082824622158469040518796352572381628459268138287756993381059046287838528410593652717169650943205272348970137358152246336943538018867493362334891965748522125427582048484599575159169955314323525754199740616515652898570675056286314815154993915966636676057056546804530865084290612917330867592590674052432821388286890298348959291456189100439556431012029916026702229458552072105640349452076556663125518146900554526791698766645248120959614695507226260684320807274242038549068841576574554942723716542536886726143498416599083589857339418888238951323402928248726592936028627996085130712256246634436437826637100296263974581879760867704053823431955181351891030695398595378361953111344246145793914765002726954933225739490960511672354261117126306673111324298512420398245819051082091296765940096751818366716122473897676080036145855090225750251343017814840667160273139536043228757885704455255540030671130974184112522139972828820309121817287804319132155610441449446726776357120431493405799568299132381950719556688288698039033045653445315054693674722463982543135069788850452295237631859846490102827136864140673653495722737591278261913346125238515380667539281592626652941803492067812638621713318878686053892960911329666047029412792886525638064744916894280477202013752738905371364560421550009474927201563591236932818606144009501201841517335516279365926134768138589961916553533463006240642218704326950677823516502675921994236782189775502806163519860128820154079829692326117082421964257987770403465292685885876370296815056027981261376241610824535208166035340477378086927533235018007101246299134981311016953607956397811154927236458161094379097095351921088485065592229838189421001264245254743429015965307333168436616956753341695618977288783197314381733421444975398420341380987656270930656012418008470285715107554091799962040808542852312682035723813264944253733246342221297118718495323633031540251423247688871389961810411273572122374043808024669649541696323760557242952434586964351812700330389086602035007684996184915732251106053607218835919978427502122575661783743158959122842414292417485042381847288509711587216096712876053956126423572128857509354645650473597051546937727774811444932393476680321399204406547793545372181842891555206081440162867260619199798115456499473897847503988340912479514404834973460744746824324090345131186312398678890832873189268666344051010488670858618282684902981073393963475491910140565322571692693104722371479121001018720013092857959084808787105755978565529084186702846952057663631174489930242305259276566509493927597791048212173262890793833319872304534829083496408201073897015032060573360280804419221636957370692698167548021990268347878005579144832266625301646320584883177060831950693369569494304802860946132872406255541653440469582234602142688961306936071068081125026877330462023613400300321450846766242831926716479154515684187300759801272136675780677664423987994571712048685584446347215205213643966139594699325295391949240342530985842023256914062469782351035002576602859843876237361898077625772233165683373357966287402294409561303179878676484720429624732573750296032748507817327871147632998196992065619458755573458630227242935702951749850601877182821317620225424729212657100951621880862725099646145048242020315145915774693086006244386421139404524909154641140327532546894064695557118225252134749834143285645060438461045352709329136559867230796585528940034397865424741883249208466049507697886484758488372966614422244369005329748082104801549511644068085151871637667723597748542045046701275596276031019389813040196721070209845698943621829661558721597084752149654825835797526108712031950869950429892900526758007199163361703466411982784138783378627500701778907038285435216287190716135560949774708193707501577250095155766285653813096748315664053509927596576851335175674999966777213214634790258383474587301123558856068732254869619262787718422962929059294022637824815690284316389356383589146672199753328000725258897346834976340857925458305367751992143810890328738986364735916443685764591770943175557083117666969827687851174053545362783135539329558009631045131787529126962119631235614797120444662138749324315131089324873652892754520010439395189306263959118552366640322680320831186633619979206869077203434347354760132548681998023613379381101742737101023760175237237538523420360645058146161113142771942893249831778687897227389653501069487892187113232447208397229271301671045500407663776564160131325376666182838336351708640618388513787668966238983094555660126714458030534018599247297826626483566616527045296270177280275900182566673919397596601030867324962933850954983528183910294519012001398184981172249189434798879763285940351698404155559777646994102965019617586213236969678017445761544925716626112822007199091061303452492014215816737387656431132149314788838275673474487699647627176493329727477696078067677496222925474005522041050216126152842247114429045797386859901377999132543683452611883151137172768185151951087432783339334861712761350212171972063969142263195165111571957728855449871875533043997691770685957765894878109840155904023492310667774971239841056823764262433315443221209764801120056644537392875873339102079829479696173283455324296910653694588169533320207219851634117377885388267770310374313016629822355064251971077909897868817391237974772587049009304163015138219584394198135494019194954516550991107677245522800478911734499356756506222562075705012572726106977618783257053745311617615619476262954494764118097506964093760204322146634817984809718861231490270488019129927775156794936212443578494497537626982799889889424780489269853991891139988377942456676235235166319241448847757714714079153232317924301970847419500600004806065635693271877730886090644832813771228350578467956065100508683874651544528324354688405256957018728274512976551108326824848204463741795299564493647360732449767009413080095216257865440016660105828128188492200056757545798003851893357073104093935391275693478050962739292416397687051680413988839266821321624420346275435931429596673971196889413894379324448513240472712181135060382794671533933637977077716905720902410930427554094889240440294929292424951689130956921622455149136271704140536976405210855590575430929457642130566624092970704924931029774807516495110757750518129948448362661134318021387195306746370195372688140696616114049126262006647592708558422470308642822032893998357814909319925464719436004014669522361302143782143875040144780835887400290937267347257535593492346616735524783667190223088870539278853654951421834846683234107033981619881850429705733349057080588141740840308728001467331757110135665626950221317224581286483604027946786253571806190539579776220718550559495898446017150311337179130438966702016818352633690475051622479649863622777954720351780507740526530273821575986350424708353114952928936683410383076661629548290439792962947309186308073997971769571593150490430985416639711117628050483601475265968931743121743795012291216564868577509006948389028669764147405479374898083437677981318029839258133327090770920723910499668982796444715310805264688113923874174779103554632824363455321840494783249374912928917459600343227289353897809610217268992537607478042159019521810836453464600739129666429352811229140907283618373992187057957360117815834851390871475576502470678932128892940229700911454264190106541290748015674344195347139155416148605438057737333564768991459510641702368523514934837778031933139137652973331999286646946289597940179120202537272429306325723633330966047604840389589449504898454110300473929615796731762296264437123198757011897272763995348474721689054199531425328389568494384131628618092809852651472460258665749288824135685206859980127523584678353698999894642373939665588263502098802277620001701769242926249036780366897072094694095222351663631874396391064936377588148602430072553039787196653527070006945035169005280518647079170123140538781206626207761404489206857949018367568785648984451225135411438159860991544673587495349814418579825094246183250355761676178213228441780635660234349034834038111795433716886028465025627676394591254358782866466901291439669044194496489013514671447852040649896949637340113692772352005191144990748240783107652707966039431426960714890713270876572848704431139068902222001591834227711673834985388236197181492210934573689336291871486465209157587967644607313026932160326734655407756734298378136089204749832960507545063154449011292378485846140591917456581307086596131334153293123163425945526063670505920824164738956080502785797283614483104397037875264044899337735249602762686773972362133529385001156137598740917879451387081910451361299800158065441155346177928241019189836920468270607885430524760327838863238119061358125301687044609561149685824571142085244254026370459774524092950070607633191392499744252894184138791462627156653448000966461029205532962410967236215809342884438372934924960273620151387392755413113403903886684384081250096663866554981620044951834477003505462392456347895797865479849812177022617270358699556579430348653439358094032272251492143251810879323964842114047695426239447749588020962329721871301346451279384190822251517943483466847571704565309316632230782738196287622742602407423866428432780270987437423830819090841663439093528108360034868630490484947643212445824829795480287343215140261522294379028790952727799333282770803722531949506244489737843578927519600641955206814728669498299045258332948655708294068258172564442663878700239256051695149485681160986416871781510571306090367605274101205000874620894868270759217538433602849053258059254425890199515336022418529093109692563910779296337447134356191256709600100784913128879501671456078990697669023685860135106730893933325387143495184650151361457561943015439467512623584666749340979972254433077547125133523672374538253829830398517246454351008712179432939880208173319079626112855722697247486721802935157926145091507040148304641743774660375817368043964243328840202534532606337991019551922909949818694911465075307882340200476058202169186922526244682859787777367877516984590634829638693272877793590396227726942204069381951674330504547217644949193817864709689163548979939764685648938076030713520972229206439647675993686916703281785510022538213007533150345271399362789181338115678840745032387437374656806077074479348393171028026145920653815314073092649382699016956182586510352702940681789898478114683134439938395142422281817805319974171601475306029347333972922990688738755469298174169432076078570119496436666299469072422673617904767155953111906507627413248725529006510875504103804968509925957267865800771183186895758466339136230479523683355193571844228700992404383348832478493784081360908317563454374491787132034436425062498854057669796283227381026514911504198050042603093445652271168236513859744333562946727180101678238163044774714455007862805828862497750444149192249370930179984856648226939770818995058048645068589314624852674228785802514568277828569985262107357291723542047695820207963298807337822044206164482191214956122848320781244508583420216953283256519447068532029459375768337391207335006622816745132290711652210103465364010709662730577960255040580242851150269161711880531526760892500303291778898719681411830743869481909184451071366172681530676142270864729225310487251062571912177254454638864653325953670097777661899495673778407021784442270030916768656752508605152410577238428979464295522143785677713395463473625148662267138561100255099252942238980679464724541477577043705013790491152583252311506799796724789512806932668106908857314051281811361456525435375062453807900395089766088950100622041891380358699562669474591339769577686355052335854947215904983343577885577754637087161389570635572212762235935411051956401636781068442291241607275892014654512347511929612276601746535487530585629770615913364433904556151050821763095905581973098927332622114440882439653794803807068517765980761958397303252482415430038579051224112914821635772643838911265416083990569746923022187641448122194175772992627766226112309148387610479432544115055605571903384014361568891253625301188757668607759890141931482912139363168333121223751603901115190368611342047076311518321370769472466388617349813365770584101752017361313157832097945003735030586652979759387200705612735135579036258506546061961255345419226460223004487735242702222712247112285694671758697379407671481737093500539060048659902837710555699974644088212689165560295561572989709722302639268721382198104505409987481873239941740624623820279544807093758211792058238515585067513975787041760502035617860181775300225797469563027197091788094235860661529611203077741714739081880467217592447651414198268527063130189624498813922362995300600502903915940208874796936879297450669971919058674821281535889212231557145055095805314250090347301576370443611377816070882313010016456323304089648054393740992439409734272908094467997758253457995265567986637250023199086974316134148385344203352044686391888621330743373715454125297949886883380836650719756776705331525175965306519785679123804707296263289590718437119097621120757799461715778884637543753390218149333137502720092174879446749032102250808360492834610353423244493756914590220701911185926859781489221188511352800447101471626891192463671217886464970817063139542519435052688190471401967028694918417085545325022972041541248300561871062570290435010363938846537373656502341524035648089489376271912905864756481375640189542372228215543570102812624473503470596933928091276610815509105646369127958244011992520943958326259166747551710529801272085277239711025171853046717882735335485681577963898418034125520747794131615461007006168943322937186348881717713767009433299173704469563642973275668618105914137273027419387909837370485455911046484301408820178627138782134522482302677866041325910055009528100769127024807431260415071412762751187335660134303967584405568377135907111578971134116984468283576818582487067616493181135687229386101423690595856920380820543659774026805579658726794701788979631392394491385325724587028347277845391595282453111258268794044355001375714667031061441214077555133191707745707183042429127804954331816830705588013747432462854136661162364029629275471085999053005272023355412037149796094575606373130393163170523052586310228391704974410635236767617917819837725651667674990906735943291248918526199034443035362632190190909915658678042720225375631455572542272231653493035627179207033979482996849250349891163991752171576290158551881742771647528667029600281283227750758609904473252078441091909865198012294145146943669712691441852411384940144612682883927115069211392118447396297994139802511579553153973048809818226944939290986638904140245931512435053380555313760857964702328609370469324341992572021718704529251111258779384315478468422132414696334632888790739008208703865551381407187432988977380025359530955164126326028246838986170742121749570285903042639990435055719882646486485996850281915227231378583538225730560187541313713299948111276953247827600455397767671644982875837276237249464421573427296309943751196087157772783828722890726037849260288491958807660714068304178669644963782932687336983664129172437501038623954081265339521938402917539314082059180907918502833546440287837042799733723140191563261279668730111625812687953845235069264495741204714003933886492219615326788045145119675136543627332596082582147189561303206294143901990132612204895417531023431935310019024523471079962600136489992650399301449206199182143488643039296652787049125399158215590834653285687076182433170116890334185764802356162094363679813870936643227976143400100073556331418441254998095001150055798298207974149512998387818544962737658232631432981508499000734700644466200996818799435478960242476835554544463196914926104771982091955904511209926164689251248192808067253830462199222975373469417610539807825004431051230537003009376567754191037653322392603025857293848978495567117222767302683687906018554046800946354594835423421486991288423985328882312135649265325459732381007481664694994630474755552389436571223422108144742154744486413237985154487368638530390045963656402629894259678142001521302237067855336769699868584450958171098296312426392944901679761676447078579258191451373925981003778877284387430546475269000074290091534466893328142462734316619013099421807865026631915476451502606757302158884154413965132197027313635938661792579335406371883880921478658157656854196535955650042732363750171743801431998874394950953353273065437766859264082866495262036403261982611714133646718599959634253916140473152788112850179580963130110513681765765486497675956561412820124845342433958456542119427158431326705505152189044270741627176571083229500131372590052704274371125423771186012734283958122509526421558292014212085032360764037032310213453448751788212873155156773001879696828617943136498994688858366404053880032465381227971424574555722719680859165723427159990852211324900428586027501169185064556135242754097249014032527792654501130662295561320054873657963239071428462193346624304991716522899045216667138796662968488451314085557493449837895013138423057965616596586595915915646977277411711697852454291979350856267137566419634244735865841753543558937832293409294371425214673392436300445331039507457784338381720580488546419244341473787058415179554700994787136287924206604578320653238721022089797273194634887280767305013406284983214548387362939800094243516371152923016757124688082275888179964434919003844191714404248780665337749847059117431832023179811523356358601806370980366668247904945381363734486632276200869554627418178864495132653820150897960734607148724521217080821896057656998575957408058514354115827462701381526872864972871322424853774396622710041383335340816218311100707903655185827802873958847540540584241033367627593014124771806259101048770044733724648737949021246648800126569371540602611341592453306972694787049352272051355887630171242149588395928461366603744043061116621885036010409986123281789377263681249388606927298631157411285182787434700534581526238833525528067232656324679351149854041780553384159976764775822498576328784766406990540369072688383622166460654175717331499753916079640094352053252804559932854627361125672895814333444443037190400387907899189679944635153945131843344816009644637122488314520001693039786546082116358431514588301410962164107446448669903585076958605978305308030986767513732928001215235516435547343389933135939899029998861008804860732833499132757826920276748939727676409037852116542133887446995253651982461264438786697367863172576034587267314713329698243957293384636312580095001377555837019393884523199223127944692060496535040905395247029514151382367126892983511033674193117063496263987928827138044586772456799593585321112172507341687140769258808722737230040873453376464830216634641529557442823246442755867039111200020355696240457808380725663489649295448676964483212209355012672077473680889515376459732578048923931822731932527358013401022357177077635948086687814338813209095253694672114062867699187168415577631734477177121678463503864865232034130814489519233007063516137418953836611220928368803658058024924440024691448539441572869146026364760435238750417979573326600014631260639918907372748914565735203064967770473050082029675490334460130108667513649681518063643150842064351547586037028543588618649839484374523866662693449752665012101511998275911018416661751405805448428195557753724127989496647972455859810567167431467661837543338585563627759474451329300132366773247713617067856211987859241759257088000827012179329081223967229728953298992825455846028842727587004489280126358882265257559313374897109840369386696009121873649421531808938638338672649574571112134520143321819168593294863778093677220336906746210372821989437701459889405434638700784082863229821561144609242942069655677426793165170081438692280230376306688082309887933152435949654444809662379762167468548790976146940801058343717179738947399374839730440426020429241961871112841420755053171522206725248005927694511548111461355680080561762319187744886391470523034325518980262386625057125753113013175298773976371789833967692489812340808301584480711598039718514656928493059961457488616676494512172084694105254243863936555459456697644311421024424247698921352118402292688192278043334556600521265874798807313879545922224454624483729161968512736175893212646771596718211387955739486879565832392879729718916391363231221533556138024553556607528770170177533217205982468820924152217801397356435861476755933520958993839610517297991929742768422649095271531797572903973626668868020469192207484333721299854934036481068224493028941912149536472935583134033654947195823023080187263142599053150656751775638027241897204548541961578685631216591878627931896537930286930949382322337600054056173261679479099254829852306094511354230465561099466423081973909587604506537269076106074474610823264392407588221510509901655978226539999472107580790847826062704877728676837400726831876110188304672235423653111990804900297277887489557297555132411522854236546439184925938384022371828877533528398616738675704780825354611890514250688307811144466171989749622126225866470326100222001448056032242451630509206716810234162886580579068989630013928794281794223788757066758195114447404875211381109403742397183129998307340913073449109263323772023968096218943786952669428425213010047040986060425082525344200280762776616294342210109464602198411875783833964064002145873890445970826631169720989055744468075995274071519099217785944024437991569305997877202274143134450851608698742834666075992969826158494717011807901698381177433019083961091304009140115810038450489327724452412172420419544902268969690080596299545530390580091551908215186249302826545840301944179811395115320751970018800457550062895827251118203580462345360527128742299950493658641511992221123604703416316934083329309888684203525130431556372883650495340765099323634415934632266008437590393531014041728913942564272004051725588112147972040175949346086299953610656888559809459271557191033946099455844558847953622995827185424781570071697984116818570630761954637335914641893391166451691308691597369422135686801678049456132349818365639360357893274581778060398768529912946438149336233428574396264165540957147207872987746538901177085398010870962492294378522206106238450952240890741946694172557768626519110285141598567181949816205567341554174254805265613427257157057594109433522080631133802040441072139123273454606262856252304686015029849459763300853001962975792677435710974676344079582595303479105897284161212545856558824002624861131512594518466155458182103468207718277648231480257428682177813218469990389168355929110143596593208521663850924559663343849343733477566755960266582803561871208271283959228785026333480601887542878244085943820340648757821099525676082040180717139962190945408210593819288293450484252296635559235324097776876744585064024422532466853752434595670693129065502781938504697327302499760074646063494985679116642833786447072814369266871156567766715204199329202713604895341791671075139159034172913492379961742814371283288776764606622782396644634251292223131706643155229035536034798762086163396906794700113338460943043274001347055242272017227013065491625682439748179816099260832301625058244674601492490048226424505206778117471171312842769978583260087158438906922862653892027167666199301247160273578292066784115871209078872587357063114621575950226500151746414401426432785542975473033297285000197750678316415987851137535092352117294740883060892787453274109976044032181415169033920943672326674094035867286487226636670649179774979347057068487291812385668839499099143354827188691722163041330327912796870436666970349026140695848166133856133031633630997842001007772744611761231066335233024124124341037499271187272610138047057148638201000377564542612449560477198764605742360142059882287956296232859790623983702104742275893724858084260927782960587194967214777825393056081902748525210820108236315837182872497560262871944484930683962136883697059239873637785545398873684309131789132600719637661989183269394252982953692860486311484211367357491746281171626606209562150091854435271027764390357487721527770236302577600978093209415447709553095215260615114181392438345060366382435481999445520546968815725084461271738070115714237781034384275683623710424121149554195083229196871780219523130972694286556875985510295699178318706402894779623453075984932290518444266379647473933149589478537916375068478256440245508169909877596528584862626994614540394034647380262181083564652125807222530596780307036008543958928503690890202262182698075406089648856381950996736509193738164968077855609199936827893585665757998946619721975111603516907733025774187488713286966460430000040944100076187776869543637035055718685771862326033160430397748242418452644037734333100308174559001758809823604361737680095878300114478467810544683809587536309886724727693521447624078138942376705212373187828369442577522024461260899018492235797044766790785528341390317458059804941574234931466814661684985191306269457054953576774445473180083952754017778902822744965498265465572798774307812492036943009975592757867535473137269567557728526791437328389118015663748378626092973986776998704129797653338654073574615141043573263552937853262772450679317102227997055346412987726474978606400317604525008427052578123179910533454228990350119730069909923586945802386371490287456494593471926261449669385166440827674816796286515966122140584467187986965035963516676612187525913078113966099520708160768039336325034551455019348913305385564854958936823254694702246535783922366972086389122101221642525284254087752235263156476294339241047416481146909817426414275856217585540806696322658361641418659628877928808792090860935832654659274009471172108114627134500687331969432330908982256773240191089474273764526286065785642104959612648782721290088797309501668024969265345284467377340366837330528147409389733400900314257239270274280209324680134085586538321399057672243714341017389792044843539877603452641541426819680602423475694310572867882124729129016675090078992134777270239056484062895834900073479107351325732106152809996728820211128771899535407851243048763206983211089736945861529701007248451416945349035729701722209041878913315721059416068261984946609677882473792415589719556637468055212471345880022049656828306128482271642056324346083864137030414282809063491302723700682700003343245313490077505612958846544113841166517058196656739551111145783089495983192735420533044309226308392601692976591797257855120335133611658573898040021638220767804465737687686929906807674664966882322170147296797172727339174717510995560205530785797185073657882491080409082978737921138939571094024052781492952198269788728983401343277415428313386660128130326628330251283654793025500059697293633682275912528587002400805038622541520509238972311061436641251895413549533651042693465166178107138802235818610891912951775038482580865425323107542447319818505370859283424646164162445115653644307093884380513884854955674198011851337152853741472251776696031470334151395055603072596471327754713437696225116550367316353960318425590714406514917603277717087488597194556109610602840596146780272041532505796559729470359443492324490540388514934388334983441928507020483310924791579695750331887166875559774132482510502435578402543244245471798515409509465629314613106622818444252866189237887154376414700238276872774385590458574818542231463334206601174040308841497459532194352084713992439543947785134283559700887830237418202926045305637535521055589528075052511561715854633078693586428690128828811239103562784006285466240921316148671373253632599715081676256624325242032405466971763894245219667479467051882985224348387824744820563412667478734102117105009699165328049243791349430958917096327061014193520320917400303251223751069880492413834401596963275497558375129432995853601188014243961156098697117480128901414791090661375136477459536974986909215856488507006789472166326575313148981169000255820012504857854854685340740617570550314379416836675705052810902561080759874479999055234727638586672470704919767385509600989365908183864672075853776444412065356347764370774964417712114717587082843126732065392452223587852200320002501147810928724001783140196621716589334864692741273461975329019789360741919705742786902409096780317042769459664078087118788295239535200934536128865717142552632870786812886470250007963184751735545754167020441460851665702296078794279517080895464283798119889167930399110615261951172778282902082130415021288643495135482437049875110884238550502587432892592481572395361220645018380442822958062953305792016802196095035757490802300412377687126634245344743400975492460153722006719892222406858427555945927632805657001910826678224237761428834798505395750842579488943691853288339675384746739456621866146622493125001393859210707728521858171967455991482163041736017469570038532722167071331802191393569715554625537234679228626433665746329639792946141876890649477990363463384329964454399268031602235157357550889073141804881783213449454260523388602284051605094937899031603100477986563588820359788001070237084630331514460795505112112086466053746169124808517744822625908034153992354164154381505794277290420348772059732655683079457648641820067196711267184004066539595362958230443661255066514215609693157813260366633861988439228609266431541210235716550035653202410517628356295021869542042478856266620284778151921929501091824625714162650739026783522367891316973043501476410465075789541248556992282907805469477118763818187339854261727062497947839415533606506428788586571304223449260634609465131023869999479522056379526024370432966425875982593259766417636536556712601199676623728275800157997180022174176376821800389257967641107947259487470309130740401870026472801863642335744431454560990253276222499031266661669979410351728141085551828533695783668899475503854159429135035338338108036986026668105944247218485639376828088137563720886012275208487842143500611244184115863647222800524171847973542553782082932877391948628924161377834619914302928104371748428047061833987559984335035168978649403093610517070055561511068719546149342811193847798255801949606966714335662587761975393707514402521746512650765669479236571081207852108021536651858162995574708496841060440735940136300161513531654627332971661309627890808365480138885677162226759367052823806940841004031248880719460186286934336361372556861726510657693890222284528063921646423074123960700217820956012009946288401073732886252824008209885953332531310461908821160870108314158279075648580872663362762026456580679772325114927908049757453587064141315331017622962240589938554355825221601332625745241856750720342510882715042647448977883080673964613270330552129854632141416825667953435658635772199416231439340811097896100609995672929908924393340706440994934196573507656068394149529026688225339266228755119690274482407055769788018684305076365332337422250322241809962436372027687410104058941644787455841335927995559463278067148209469219581111135486692040605827412488360259984274130922241409471717984262849593462852565777910903509437877028228536634216311859341592763652032332997683354898999532640668738570997097604992614708833921658709534876069868705249725621311764630212971304391747949643807716683371172499125909417092515786338991693764183485381640099971173891386770999709388780336616007977503667216992181253518037605746489804679756674916215192292222615765572676226241685945202395720197241743077258564133330701871211870297069558669255650147343182526577810998958073407958632065956931571566142643434431523295451167421042168716197934550539406350897527116582987717763692674584417109720328165905040161376343054000411767234940131618348719452800880471716055557613490524436106680834280451497604569782930844428562655378660342527595028668298671810733851523920528609322922008603394686283760541232208459480159168521551715156542055611312558921451731205303919240635657939308976633646155046197259550916395139039978003772650757117557550075845928105452001225560356675009690669204210496958498005029261193557755066931242922164854650400849484839431740235993170299549226679957944746368913691607416220727474664425185934520466641889132031055777394930753419021111298678448650368803792099054879426548338773895198773549511560268018508476793573685790803533834013865557730930658196672772865884906218913795132569157989773459790377854378893457926315383804276981229476603987725495283201084243626405672529966499668900316305980516503370880031406067420329305372901084952047818514498203494687027545328746482465134608461947133737265449278143840618554340219606833725976904599225012011280317551284078801310472310392743475690687309310621290964310038753614502872849990838602545892560375017887575452417791750894753889620384476677912760554544699458822208370756610806878820718547572190861420261384028592387383760491424577990782085452606190810001099680532096927264475471177512029851600089613788196197973799408005793933830018585877672532924031352898838751913083819981670567332600661358370466525833440723870499876888709655371603026605596162207392124292643287416011378482009782438402968656147483766309044849866366715066126347761248599213261604836840167748954411969281380933804244699024589332540595663646355357478760702914895920797801628477501561371482952153536594889432482487384949227933267018595709583110280601319964403747149999435056346992243754965100360214733656595723079111620008697254622734341810838240827270496795208061446153180335943450486570748294106642846675583855805526957918729634809440784744319073784091583163586824587889217445076219886904657969152654799355176855106423552085999272610864547977193066877029294241710102948926342959856985757242758606985628449143806998219452506862558926243241104822732508784708357871207111949089157596415187009040647107305828759215450346371299119864415342580369995983742224456500418160526376166105828068554270770557023660319505516215223393771359306086239403479947306445610134634625363525131168835832525602347506683122623441110062557720569933189469660865286715029426387186405369374746659980740010042787946719803792192427339629186491099310023394159440295773707229039433130006364855591837377218691485579855708684618407866028924638838567430598099365473570314550325146442042331508078929974890414732835393036984078110523489746979227269441871465934404952976889157381586234826269925232181746753672126357077062747547038232203638279523515166558657397196845383785907413776179249671430667947663276538803209116497054598443469836312975352042807586372793767063744822766566543922932737500820429965420619576642141474600119462166664458732621550923701337560858640394576891876306279812332991020997884768974274070463833948554857226511454851829670318488986637239046345886442340163884572772699146652837738177223818917311558158600060986348240206443106697672659338308956799424786723694283447990213956465511591069827866866956852172005748243447787367309132664836231803438061219055485876386590007434617257478098244019444004229507013548210358271793205119245409790559434577487153071688257200042731590902396701391686438966553745508826880581013559400108362012189204915460369897986010425312698778773554912440961723104710603171277765797280447278289502252497751132211599981912222469108489960850798563879825660203542732344983946190617079220408659522797340557982728760570745347193184889123851331525061012684398517818082285010975172215352268798325020751122757253231472211715086425658513647348875332893531778064620522566018346084287071210729810517225069473630813188125387973764379049250574298280189056316894361066022131194457230857953495894508123073445237613153638321856942018543230567460389515850944555640816817040085323926104386511990283281659269250470848474449740467690799303751800988058704719710304903381936029348716346187947113126395314901196046537943446751279728133857052266807900758228325558452024672477762124134441812988719954632449823461527501873424886510874455184891925133208689306068842277021669622229292624617288531171483937962030515121870706193039865079251475221270773809970935567442413974024166204907860940324780338324457394574336221149505673914587375436066133276345365835753786563976640169374274690090244729016802470708725236332462622539070361150959386132776379695943490849564697245954880214103036647639781197608282714835216928354645639717884908015757082337194844651562290745612989032347025660521032313159353658507698013146291621774331900705219099200725674854538914916769050374731145277350737632736678020640154822627539411060673544717548033759283971443978197919649643608087896381022112154156661033131333254012293940125412291613578593559640485545165645339054211144628121130177086945436566405311201968103053108805047575185703572990379920158488977546302600748531896157264857948613703553693662468865678484842950643138784685181679602434752768282587420578699352129836124385338194030831647756759047398090044656227175633461332578943754236038680851536547522073597551438993817336816995513470053067629758665542791191680192494621654784833914507044648742335706439466455061516773136302419771825063137165383979375394788680197504792473645873567879618510532708581924351947467815875591231232576888199718682616879982836322467018992269517665692951496119558443131184518358635914706072079718617265873719982210764565379990690052568396050938955429866420127917035220246896511550790645687447535448320312504696928317838593414897325197588954452814297512201127918115184267517731617145480704107567464787387847571684748103931322226135302876013070382739514117050192784652567067282111970452646050212083151987445736092222065882035706918149932286086723225158186053583556519907087152775528467576380980463302546796097414879649560604661318558523115404707853555956419522217593796743721009898509051301565139647840671451675672959330838556577076787024822896578983006742783362256895427613914364750480098084149924965602566188884946036329931070884927417224917379450763588760649854146199457739696242050002123324737633630269677628257303118795050528610069209754986854547944223719271372117124826111664836721935656058085134527930555343274128183309984543599562059461607519837120090235568552522680992263065496709795523178756931768485803297463024785841472762408157690471476712587916420817172913772425983635698623116380416720517976662725632649503823200777446831063517289823246703153902944493566181905910260383476248651981555409337870333027860842968416934897958487248331086300024961752839056167879648377047203143645675572358740529207604869193329604592600250522742906969308022619998593383585734824201838793719385095333153160530236478391765299677054451911855557347421325233308817580523050861002867791656055930193513730300055633403616703895894011501446614821303194909454216180182745466738824706467547733805274395409764186868087388947535144308391737956236928379053914798838009987370176017023828500740924345913718667521437561933696006147384658547238116036155248032498442646672315668904432099543772467441137825506555411460991300388172580998802933641000078768626149446220316807948860030791110542298092132385723168170306539856362767019403318146429488876739532147474686686580271487527055151819540671934270511250430817579928370802520254139921213787382949307844311242104594523225837540854807635079080976196071163341184250751577633122937534758035586980330403544491777587929846745583189001909230145340799279960446841759288628908122568178175242629687452537897915628503186332448531992054897541246068946812511418587462364283802491680691536142664663529273780179497602241277568143847337964069453920141209738934191836159496898154382049962492128153317691332683218531840730340986151594612286846128520482824330554148288592896613254613047319590765319221835045613025384605446270388678370831160301295316618273918971608593143974780731899566300123522419920372311896596162091523131432170921680022852077471822678258281787147275371234120481113822656723107438529086638630995940960373611406341409281948177056653251455477184389173909304671802170325713729082218284789942403540024061166554301658630518940028024602745652904176166799453513504810118584938524549215469178622085540622316444998925342458254538246935976684750736278649072960472182701797241453495626617891734978888797744616140198374927947991371559936616308202055180492231930190263170161600358862008743490941705324000984032224938620583435506587278092327468871716476287648794812516006672073299822540388650065956097313343668458330559130386841045145493834631449097214232132486054883327282471503853147398434878483453923899523436706110299813191734618743525567673884575941130230720969391510615786986292605548343404445678746229304395666665787260543525120173519686557920427993724575493107492404391481852595270442876293769108403047778873047808650706679267930779177633595398719606295717036354669012429639413883378788928746240692051697571132379261138030298249907081305415315890773426502379852323991589221199931807311485301351936324883466130387909845177437877654791232899964608722802213783740258915210181856921021091260332117273184300315931282207357813572380618075799645429877957962426450340888183499091034821692762363490743214184261088461740697279875502281912934248058056286990072191523489587569311333293351071301189846423443239900287818272423499272412095981634419586996352532340978070598313091302153757918124481077235250993946542927358122954784044924422681697343671923643810772300980020504257522796449496519984268150411089234877217666895995965056847269543444788455742797930496251739541053864065328227940169340044285767322332637693048709173118960392695314494112803232222082246868891851878209278484210607566572446278717837818498003265665285087645240646274847611969157819566074939515010193634956433967427299956015579930985065050898532061259003428121561535925928388677371553989292429760984008417564009159193945769834266266437765026349682859108989963974696084968410053758537154818405105520204004196438796583752391806679471866513575505292727541109113220235651360625269677818995381428201833263792347028780281591301123765710854524401105289526495118257198125141508740281662714247191969531119008861215696437341084725477939697998773115932971218198553397269047091208144949214739717834778794924586893501285480407755196167231529672968128899800003050698211837864553105156506774827736101609050199341643127054673333990695483143072938269974472828312812793858246542717145510955452757713040465779303064240121165594556616400903017210297232927729709012622079827013183587190121626280023504524330931321157929123144169521021101011765879415942564034865883496417864920051981076358910445376974019221311308852477686943450195193626985645159096205734141198080369874254477788049782862645763863697046870954683433510375928554801205508010086157415821052405809478603396971578632117026694302996876328462390095831962689599013029566281421123013194672977271559806075403544862458182078495651243597100953890172254145247458104354399575930195470342110100474367608033068854331700945530871878379378177185667080920180753934514422557898941538721536644262375299499920217969316617779945461692888207863764753570314987575248216073266774129725040958815679213189458213751687709556786102472830586037594130332727634926621614333034586920468202052015617353953211939868678941962524744214286863640618626307916526443132488465305387566853969071359646266773221464201106725301396291982300852235668527070592681975341041453661901903253917623739633626008290643756668985470619810280012210913572236757995633087031905600135729247294566463526421560307418321341264461422644206140184378588514639131525154298534320853248283340367921373333485974732727966275192673501010098909381890287757540317174133888751825869315965117862530663265942456453563438397606658427047578834051304426793207960448720799364244245320198994817008254172663544904880949804817001500163816178832550181156862916165925920020536893178093776092737196308379700547472072239661450606778808812496558798488244820699224952111797574218076750494011954497162193088436190690817604200987769057502760403312814119213034213912954450012406256775321920902508161563363375012590446216172607716966187678258266854663507109979421052575316093561356792027394653658587160567127123654002667757457835060578772357221892575859936627625681866679025162751809441945347916066465856393158517738249356405749259609845582047151679146916667181577806705432214703512570100591968322526281644502571015371176854673490302571764460100845784301166113061378369200114860216642988188788066534581076050284504933833355845153584722673267959185926729414887987902924702718739528390679337791013218706025786317652200442400227117525400445081937143897521877150476043528830229010420700514376684669541254022343383308917630834072617315845714437517460503649924316200811974430953610361245079696735379379143864022665765720207840077558502091745984540459830509329705805222298001526177769862720025501933407909234542273943677350363352562730497287494190206029118925602811599685701249748467344399285806421620489935182864157566899781770383176459228456378410799662452052734532840369778450804038300941935081885456150150741841323148260585664281790775703361774107311397970296462283621076417110443903497784994623570402140292547044158295264001734369865621840287122352239386378766718670975750348100886622554254083575890342396409722170595053980332943976641306516186656364012280051842149536149470560304739015632131404923062921242371534631123868706070051484496478395058112952103562573088402232794229637967539762726207733830572134579894433238653080345854059024487010012301552538358026227000668976224727149042485036749389427471322304831451196393998446693607648269808537421739868138496303297337290750305822976354630954341051227054512433644885075122068333170507374196441948864611431916605587505729611732769288559543028989493300957001245517770275755200778826786687661244768327878820108679780124530691056177373404459194071523593210590469792206731113324718473225658462300176830256286764362476239015544356308904151139965725204068349291571383196388837311995975175114632082352055585886659196556697345841758040659773341628033877269161638381332817940776710870902348954026904542956954770455228929519424534550679082502166090780251142448252071556225637838043518730820783524809433134955367288055161677821933786933445972076245901044896420832619174043118141735328147653051824915658276711893739297981093412874923803017877626282569060068914507457329577684054779644301198798511459259459674547043202593317209918894184707349406273950010281395107237160624169803020091118001720208801035725308977739628585013904990346545544675631954451719605805022470456789766695752523006082951363212587721717828104577089317391332623594673904673827657316716907290066606464600733055595564017668664989684812864411629862610634803154940342137204385267308685836775422465168639251904670940265503745679063847336319595692497743751966136196291217592740669120765236662819419466239619081139542772132035433027220662396798746609459077279472280933892598926233868768729854447206969845814160912223002583377107333923957163159517878471784016598719970281871939705557145071807767277841182837476068759386013415902900662534486907635502530800536847259927069510913582621420373259875540889347342539924340794447929339325007959355933775294073160926032316277847057236267317475597447151455175640997988426662688291872478724513855625246257894996597824718294833906196538449011703700762824665337011816256188681343364149171847013242561581119131917129817278909605848513012481006481048846549994533004879130037381591538010261149888358990877823736969396808894910152710461069325174421647694117568465642266501829706316238303403077067386553713834609694223663148288849678766232052913498158166934744750357032421714739538069233933678743367615737663413322653416405098950413095453401726794672407242150499204893753554518679519315260425846892252433722137367131567529735168568583095414212487258909713851692586644826951457094760201904606446938377424604727649234655147697469167788046916665622207070014763715704036562033736563843596450280282192619191651731174046332091518818022006629070879945922091743410845385148691157653700929967923538848564243032926923080924170877437246193647344995296159841930454904959602703594104497882218169856789383610667002953262080580055301287023207535574576659838067132889106174352071924519618876720714569106324869713812315159506826829887771838592314286659685341754192107252511433696002102637061593649494209545800514496809610457806763122158499758530706814049688092672873954655216514913071793217798255629227056408607925408070073184029177166161948522537499989209966626224604247913223490795018375811162123657560608046917896009651186648728616311248165592376856050104946459814209441954752769236103292524915251024145184996102944071784230639441977461000607758416371571297199880864902518882908675314474793947562590028299228905407479380144282346410929650161023120747979773967050012127727700859767188917755882421434509769483525507638444420001108539626881415440807603507028266935523515556536768613015133805944365022176685446889049495336648125113723116674052512790967875192434889812891756700666229450918530335987221622586317242792678445229954734421447756787634379682515390152759473884521220340007925280982751383646767293919731309959425643518351388343888597267072296631820796324839990510909985109080500811479083738423915208117120901676428929570210368458603238812897535246018411378402306296663690033200614656863898933456786510634802879869504785340340271066621970580347365107886485159039990344653209668791752074577518469479071374010257743487505021768424731171914873871117192988522923997199461826284653835999044543961755312822136554537926272285110210543970611188706455733487805135922291949607304196707307679613347177172705072295821178401791737488023474423077246668240408373193497750431996918982900338187103119107813190793183041726596447374511709711864647624502584872500183448944653695976859097769114614567444551731943156049989700342793790104380936218876507248158259481338480925746562327450785753530866399704746536450602510224229968597348789486024216532779930729596796345314579590449494708252497743751064043583795222041390878966288390301545461228944092010383463921494677736396358178131051939954871297148804081412404151028011227676749822601561669864849879107887818258894900373708432531295422643276194189729794151249106933706783574375991185012496179034997988282802421321063524221760202021126777417927154703832631879090737506664739513291799566211344838359413408008251603613234293112836178098204173400620332708110530740033178602717186008412487481266351627711282752554066316614342606885665300658185187774429788323693909675004849023614219449187261816312782438479544091047928287281509404871506834044568368094429680336893288596765245415163484033648812560914591997164303472064545077329557177610276538486595352453223206850802256812095235429709139193081006979948399002013670595432245584855243473174079295555394802353601978276464734501462530613458789268239388379692150793523762916005962850077782305330588900269055309471960497858327688403516826872337343526918773778932529615716846267501572334961396996571824308300002605647043796581528642807335184194777635488396329355543496589122739235397188086838481385330190812434291966168523049315217650349172529188830137438862662881029217408516423721060207578888717471748194846563808055217876401607312906911149238585529407288432453383192331081178826333774754849454739123197929124241808180673305909904996109565394460983874848112934576897187326877304898043636634482770788235275760654534286513814307719025447248641492507615753308461106558941519388044413381338089071500901198876523616392707246818263930209842413582737761580617323114116850889912837649615898385952898638752126085332655948418479196239580977026177729232923162816606740969498200682494283105564741580584874240927697742259196648640761598025854192018389112731075246424381187445832838833767176392248585408186551836979359667472197512690712561427931338639361417389192332401750481797781296261238352015547330627833886162008931825902623883761839121952940906319070776300795140465914737094925945643176786123012246788290947316744853690917211275528693208286616095831144924980061362411378977702926846457871556530389125518907526456560906641024824953951980405761498480907698449643424093930319538658951310521941216173221528718198120121804811658133904881814332914664565424267329214944675649226758462520094898903714766053813124203198488035462575781439741230921192485264114528179082572471706190260342169706935538992655358520774374887470554930765990314267011399422172806848446910821462814788783865573347526481770212933685843524776750222683511377549497374286534416937252785800215872240200153975550972619896744339249105871089372791102035284183207799275065563956642649022666521900186565371768277966368134898649747311369600579745075072580664116728587061977560470918143629154129699171505134020498884368735850915243340374355123482748030769390397976697370990035593288166394037269102393309753774669405320887094948520065051298643478379410492030371177322132872930655451657367306000721876365514535168575200871687292360119141403180786230751174280821985987966389149178179619449108950594060529553967395298955307768084375349202562400599442212465580742026268811058882757180906473791072548049722336049817774888220363103727543239926796221546396664517636233002539006442506061879320309438625358583338030656924030924709258232142615542300318426803413647406579907013734350425489674073187629857896541289975637147947399062371058795217154022138101405986291336474622907727730479143446387492605019181109565279052685714178152165559184419828409801959750286880717924793913044562939549296548121700468370902635063888637555130589408214336104992174767604701903709293105585246902633765343881890456328140619666031943783516141608671982922316788778345538236245305932960826724257852645136322946110053734791187389097192595639256664484563412853979602190983577568666435490783632774401453860069306740123972451120339158470228125187274428313601305895134994744144745209594732813526255882718082386428278657230583613287115584633294034238444965747939249460191883684103250202812659833534922475062301235749548534116809295204377918075451563423242139419218073462459661422906541078042529264320184486085860457252702978100350125548373817227994807595520320893129236082455635803503554344707617186984590701908072989136084252447729614245009539732172341057600078124253855211968690522329534637983869715358886081006941893580027280716888303279390971273704945342266782782109848774630005833092289203231959387721924340443777106861377250366918454044384497551304029683217162870498135046015699001853590240705785594627263556733327962916208585326886504679112090343825607494402812504066026885875848517535593558256534811822168596969177122620648820924164287213811832770942834048474717696240289697065045578695249715205293665784595983277646988030500237891156744009631285792930985479230672064374405976474345502162044958483671770637121574835068781969295056300589167877743306244547715300254113152296778711259871224390126479120428076601886761144820337550671015595403796909775628175105715765026085678756484087164011989091378944391917809005083492182390002526431840556067662526783991705718590482590452454896434970439006194306940884620179506428605463358638041229739847794957251881153781020589670234190657549515543941621677398606413743908212458613425433971348654736917224361679518418967250117228733847103424933809327063944399543943650015479982780905987415840687356486778046925655749170294033050762252972004144435951148613994519307864611379176455287865503804209642574212516479333847586987071420405860402381029819673869328698299318692682876500263712193795329383143077177646687668330309681284304143677671925766953610501020319161874639449081513030574399962911396834525889989568444805989094461836744849883887638716527635179207472493369081797491818841424566917649960425793272469773038216110464104106458352448452435021749991810207323736258541721732909723671326292712531450745019315680599064939882710630265452006094589905305781508612905600545426162257804484805822190915833261379669631372287694816261784443889765605974677971369386125613521844741422890045933321563843975540800652622979617315535933298570717719593707834863905096567843286052008481278466729997048452520960176005991042772191921203659071622010714086937087025364838194078875507351476638820873094065951054114330534572748395667235451102215324758100042121033435892456954151672410609007248056938055134157297224031198683660872749575270382837940627030533999800667240343557975857836963123375717344049890150215833049920285697995015381250709501889094392757497538076775477518662109677203292211704295811301061876683723624855514954120971425744411957871594970744425483097340679901500001229294374567575545957532866088282034700439458459614872967535192693718566444965784271873565430062136731283213107706149570863755487657619548025118152604535766273978770013545312840787391992800545437558878105353760512157079711299175542962434276442929445908065173976877982093872451436566156874473775435271692690372878782992278025391522283964994960691316712307125112541535394138795279669641437846044396649609031048281776773151113096762642059369219666956997155794550309325086376917961345571203838696331585176663954014344751089347174733613312866234560774363126134051693658712697911818606250949960463240754382199327725275942075870630652097502715579985067926082928558835906089021600302290689264301240570374721683095880409483501182456111255861829368771092108250151488799462647516205639196232273760886601821232938551325975679804676971402165150825738607294634286462801075257120578960352972722510735379495255266142604559401192605657159529529350203969999188312436941538025852153740664288419324667355441016027047981930743675038008461955452807115581502476335494715000517454835973387016051850959351832180226469500450810678556563173098290144291936736934680693353609907853248540168741395249195177151684042912196785553243204970096495086218149751318753883189927193397642890353500038567154716484231372707014648542496147343292764842053787625604273235818165389984886677312942453231757742724864901336517964003795583550075894648145637447772000534734318323143859038707956601106825204467468550009854272315346572286645707120361361028375230155702131001439522676315131497866957227962377513498562189109500541847750117740204034018466847539853996797320265452840066013591742135290995456653187646776957262007083113553717549984932409389570291955446473957493599988209922819883502985461867725819982265547548844982511333062863398759418940914788098184111927140019478201759584517737238763497249093618204242406494877226231141459645581077690853626604412857405551366041680276598587017918121142627671125542011871047419582952655546996904810430129987664363467435316450410769930320031516831078967898798035263933738837060934414596660679706352333995762191192727445158473953079011345190620641830915975076478074654039915248056666329929769985625190236658728065030261649540792692390462012483985393180180426250461411271334399694758105522945573310500107653173397944341866858895891498863157164679286456382187116484444202378973091080887278730286184150265856504685702282912776918249293346756186483577752225661085200316617209569061288642431717542601476448578396420441614343473626679164395564806087782451707087933813710992054001387963448862295892668246601741761105918136281315193714212241807376228736986692686777337553407918859342966404582704427562430031734565927596524437029318899628355113142488026168275851428533987827767116785592486520834407304878754685101392161165466265743912591615559673930924809350428677218408941861537702149780167663598755176977459504768657498403931420782579472070473030805750039264106355067808749390308749641589383683869200775113357208799588601281871672642177605046806864382978266403198468953371755555896106234772338824451872462881436460746502349527616621978429999100774503992722447872024511289473837683712927918984963200248492277868281672821191069064269782080002936237631863632836525140156485471432528215886204443373975492962437716168096823242852677291816067665935547520792040217479757175469617694600538227251776688706692827853269695475493325103136470816699970569605607491862888520730345410433502272826007457137457775020381174787608314232993995089333700670595450613704635552223334229813114674582765607963563808756050389740538826915270524962013293006365603526225755427453816016523220445575971355292245695247834478720027189217658268455633125679491361060784834410210958126434351097310100045299800205763573493616589302377245564329100018073891323596051591905843016646332286573466103505371454740953688985353733403649326922652828894090557137489769698743322214613772378535059550379455904356861173194882544998143948038177700836817634927772632599533944090927937290251337582761230615593941273367951262173117651704200091293294356571613924570569838514770679412661016728543240213016940835977662538482481511091817865772577517338984393835933663147152323573664101225469452602776828465971484224127372313696457526363546469071006092095968925916503721286884197133837461973498081921436381739562801684214838907726372077762562886314629843069270980997998298031127067825049510580384978625741227685312598419826832003072108393449336108359825580565380560214062042692116372586127894682747250267093916289674546014028953152736732338358236870327931806241105078962035166861085793386254436111367668384694389560522614263141715767848702590804016155775702910763917644434802903810194957343124991354564639047076641655324192548960148172742823598821005708201688402896419143627515791334570596220853701268701243334031540311705911278268661297926721140205309321330084880250259763205557916683059328252805401009554859826124487200275714332222188219339751140889274945381690335585523982447032698176529318800031575016777598530744469846632819212676171490534685011974868619329562419630508566314883082812903271470455587849650525613586743267986769216950516100045784494137395667544633173474810347793889544245559368873065122230323809450687578798225823119179813444397596360776561702955076505371426001608801665186529272341688946395070562988126515947180380932326216561178936644704963620763997052503267718334988560933048950108719324218879375485416029885652337423897704652494221361139485644713827836308123351057610086041786675859565644941928106392721499687431669836011770284649232805630731129969184289318790755856452181008494852388435412078901281279863001534806425230934140918857033396324956909109999876855504880895224999377802367853920787371223796331734985908838511432431824244816068235805687096012840124807641146625735679838177622646028608652541035894826583445643255862260108217750002120341318667807105909019974282367863521139870118433270887289098566038072828061459599249185435926068181855847378584815380965428321503295937341470472957514193751629635722858240241234211084527498056611595877678104618121905634897590769187234709656672277953235204644554596849256998939405310011391057009247203658984794665558328093658324073965886275813583160843853211487467930880140565412521868753420830730783804812487435724537557428287386171780953734049350611183074181004906838371495941431769944994642890161811193819432059912001531719310918458416719716583791311595150201458577199380470803656959354464181026498371612350971010507414437918959646132448743553661062454511706302589521330226201119579019314184720030187668965745145748884321034368526673362894653754984107300851388195934961349315489042102295883937249765098878086041275449647205288071334369923641353694486042260738754666877164271507800547086837462218429472154810995839519994852596755013687624783513591508229846679733145065466471769957167847754611340089827826012082921362273371379597208066950769011946665595575255930860726460586412142307976850359098593847153820954375182274987824498146215956764776434795865091192847645582100621867495562147630073761559867565292844378413311634732530399286169616533831278919586648343350074200470229128051003538527801151999604994965878871309012107232647654924044580863073139245723732711954093964640112129904682196288256388198484172188357170481319864898227825531166064285414276340529838463872966664911053394486484811080966354378940827130085084669542566829326826396941012760696143475975176273662896628187123766764608385549162412443357596001249955014826593750359058759878359550197321172322089601621505261575383759546965605066248869191993010889684419953589749409544082235777302277609645272780682791263695784905070233337659427038268911065207118573999036758753949376739486777447566836610792505405929167825359379480975397354632390009957763756517035181271528001138545711742674448730217551414152976258532002721250914710332365715630416283204257431775680972110515340634594306146410046658031498900530502029722349067645575406024639620022299170336796159320321775776822535576626370576613637826528810712226498473495308359126451777347456030733285108373072070876551350680396111680041640676872256696591097725292140179527965857829757906108113594522428275161536051669966186975480926926209801293514106801667840414681417253075536472912984593099794454866438599461734684837658379203850088143970903028218952597343796375564381420704639562401785009331647094113606782074556358492496271055100656109434348986156590053441678026339180213034683801551682422963052675715247468453413706297995435840353202300710426987861621262177602063854612829219633907041370990739367792883032170180079350458671324794350715082989573950364510814734176825244182909129197430096389477767801692305244914100312624299903315519126861522025783222817519231558201184585021393104910899165080107176575712494179099116240187803165036417942719683921214505524030130279414449142215350091161252467428521683587749216114861385668659504534120822624560360465519548552540892778025288225063625506416110298082949557678118352355187538113572014302051792407043109368694258733008271669308140088825191919214186234173741612680604057658283178098268554007187017321470077436795514678301404464622535772343161399093400668626748962944759430880202003833858239353355660253605163544972794332882226385694488832402967286533849307772564511380328366147361931118744263014629104196837652461797783154796894133852354539342651538678486373521798967244828223032239422008665458885534428469345588573139511384848058027570736764214532335032350739283198337312122097573568861262138481683416732317351595615628680504722657813666949815435899662581418527141834951030048128208031118282555200304688297367118645014358199348641327684524725521723414655853764198788883704758092959750501360292549738780831823635610525305176591597480235406886456206285249552374803325514510456123315268673075586122958421606906128114275076519411167761158325917111830806479472303295103511692261337727655378393072236615036539121340921446878141348123436448171193794243868301014723634748350664581170840993645099407441334501170138496277850297602844078248172811032209878224993837463583914944179061967629177075459348377220710544661526456555580872083038293769965657941359358967529544672122331340272339713220123034744964570260099705428787323701334799655317683379800128736168449210668372278589841086881641608261628035473463355580660508391101637993121375973416032571895196489141801614162595250150811567732966277896515559566854802065777298043137741732575003931200947635634237806568662950878982523574213183679459781792545635439523953095121262172822008131348840001560600081550723480822411838962694714106577215666597724361206265406616729143958809944267889975850459517695323314670269196351934097194436040823634512537327941617477169483991422842504098573593653870249637763806924676329169898177147027341796794901853253594202239511873711850185033188515244178717563036553140611870888931924890076317973347145525435798044435157283669546952798631621414919938367606436186317723177745639200654772461145706903970820900186942850131948134439208700929874589871484868585339110340496658113332660479738642291142285644260310084023827447178318767361217414206751887709050190580239073658599963417401812218002864282884406003671361015433212619027421994374608130076411071173073666644879984157465448943507626809253270121125989123857122588006118878160944818615608508075134872940144155920412688096309664338288375508530457449223337881620548103253761997366623120238536979098033979486115202593643166077361900937994571645803279789057320420851632584286490008421848969045587940246910605330080360907484913054882307416605889778530448739070264522610285228092570894216803328303305059306544899508976026176629854639916567992133018817515272043514526596165833049177888610226211698407077411744288741499122281381753190289781124003519887531589125099065512049655957620060086910315272462887820465137207330626949952918348748262315294716373278607271135145027600263797851737874133666470750378037453684877058578167364597006789287919257872749935154285191916091438572258163523729180862666397247849491903060932181404598073527150133101659090302400026095467647948407937972764954826565728571765202224578292397914827200234182793690247960585560869882955750333587448010033846079080135520628871988227559087131181342124361396335306375727541303526065832645058938725019777599263306865954789185953067140663750890444725632090795547317933080487957503840620665455694278067471582670091168932101036475099660211742215010991999383623995135564009963539244038139309405161041617024313750735982019216734833536789455579079261814816992554073590974595870243330184787219487419979965603012729684384909243484480072006570031317999877040719854809688118901957980600981215615145796932454317014709500915575206719529040390150862151732903467859021728576272410717252648882833116814737925861646625130842061471787977864120943804113156332474455476003636385626637563530225454553493231346964405506083250113656721243730112351775708310529644309194737189227425664718533792859757389569210366226772096087428515819661748701655914879089577346593983330375006890021723298039255311892638237640915981215119669301593311493694510316181328476465530577842110698824772005460342754192278919979642800780301502973891532582363620837898694910894570639688825324191873529815464353234337924929682764037249597771155696267032480877008296265648920345595790388384083707710175751547975117295869978584726736231156917329453064451386097488407092832966507334595924761224409304988150230154104565371418525892227549515828364038734108353772289624976773785303409235802193829114496264790609312803170807561086336759344531354024927848548887056876980622647513907238983655940381972770038542197693405372949231566024914089553131367632220293414828538802961344846225673973812923076295841125434062650668316155047024080844598677274399438068570076910641480477505710355878431340950983373268967437877747977945865388620291864748323113522773771810689580240679552979112979901646701527732899806186038893372476394682827219265546594522918694866707937275284323032710793512780083736052897538794831594936310191283750977062438967488579827958328426086655517139367939046082602580169012094968139917767785079467122183536422132715970532757532446334534283201305205379651461205005218479891852241256714429997564922714665261211466099417350145326543064059510906399462657414842284586447431262738456584494273626645220858625050887956547545585108537520037069525544661061415350440126173267579313334930874466872158838785538565437834682974324732433792277761251007822463123031233531098763229981972370015393663511878646691886657053872130873186040140920708313503194730542035221475821698104269803118515768096418106167656965842832665546966313464810056081342322119095456330824245192934752660202455347173925429784730740680927193677731806748424328967074882029706069292036671226248439080884197127947116432688468971176849460117881980958653547077238863854284072971512233127165908813123819610893639265564218815638643740390913515933376383245515004715484548827420999317159402597820761562512808341750244644271257234631121354502002850095158957508181043336394684332016856624364848433768543934468189039034490168052471349419432978198805338979347285291699058219478902524078393518762655563445085207953444087865345873787039755725377043009047834866216843152524022232144130924800637194266724048949963180894944269297216430855384075683210361135410347591706313724327974590237312431578638782611645521961643877034249795229368265761699376667683429054917624401223410391104064085782846834350312012091066623930141983336147074199119621397127459733902183706062383741982016242846592166467599768780744064614557384711916183478938199846030578025237775167939914750066116825391662029109697353209136880368128216151683894331566298629551583201752301304080127558559791744474320347019667109995096019963970759095996237559811251785364439296660719462212882550524246413125290987555733234646399780248145506369860973213594922940669193054087048697580586688441619639004354487074918120307414159063599404178249521909712263088431543830974633412902376846618590696052041632695282863946591088902130394287853173560775047175202320530862268885180010837828941217231226431473622108094063068922067023350338005068751152907374475094630251114975225828541548217710021130287623608841534290137164197285985705764846786676713568201697729462279191444913900905139989449043886545544408226052699457622177959388503642274208013886582826122312862988731581052638789536971269884173094526641771086462442593838173012207708953728115208738664578874507746649597468774040520769885422707741201946023517134796058126254528318299069470168543507497837681302399848736872053572001070237129485483032607343187652987395710823817228136989345191472735554752279485528467407282986255603830389910424813346520693050225603158850573815950321126085778986363780167788233050479708739389802323163108217973860063971987244751715721196942290184433020755389510605407019228104671589247166208963010338709788951242128756929749568088343926277786483181870436927622600209804266828626589324575247160756137781507992245533505454045230637401289959015534150297537213262655020051113692990374046291871952414953589556189555557844229532994158702405232795251455135216161503029599595257213525941131382780704247309426052053094019324384585874881817632471690430555643782955485804029405216935904629599786923060849377230699225547592771057716323191667020764571426571881292141759271935815266354826565951653819354357383492574752843426169181699827141199909056076895521492549815032881716090856368325312817983600823781645266034805145919085958900555312668383814065010590257931197203020649351378204661901277351343433462170176958648593548647025149833689135875960372738362781900144581874678903515045879049217207463242481469407704807446556099304600474563842867575190292372403265275487658997108105919664117380062735277330138235493378320985114303736986760261086261959213384243893634422292737998068033841734751553431933012845659215326870152957977433682794569875444144444131144987424737832632736299452299318023178474294813996337800357375073824115758459130823361798412454277864030931564657491297854890827744517900179930424239077819840262424918084965250676719208543097056906028347382704761935203050161890078882377705699623976017387890206681339750336831003703402690569446453356207364752618406667926311449277001451613163155198138398574159705883311919325253874580385105908983525839857301577315024954394269365945047304390430889197818273133814655041158104945195110286703871092630738902642578194757252097029956885646272027054026648340172688678822821871448018915831837982126548079134931892073492191336633492640354037141837358400787925541160394567114095142765367221584316454546377139563009580732873032493235154482413543385084478999208254668648980982164633095388338138523527777024731915802828535465299129804005032366400071400099557414489592655028670088623379233676142796186386108472671709527273726002892619667190357732859879746247455231400816796143912239920314417786201493761497437128751252389776797909036241541558711682477188249642502349969229562770563849301472211266269415844534275425439422267582957146100178475735269410803120004450051746793878133792364781011206338453655072083232403862965458634105349943914178987292310537065727669674270308482572182130929153995080992239555221190819470084157093104392840326367727786054101615865063973195490548638193851793654808489573098187610487167128647473082674715167557380406959476517460276999166932979889137981051127085087529099180603446843680349089078117869570743788698691125532151629703140030500979221507074524308036024866098373373141064952831609766863517836684189713735168168990533133398686859531809063174735566755424416717759215923917401431969521098805241496505209546654829179897744571655191167513494864759993400166401358989731978351628233514990729639225264648584234914984659969617298678802106480322749930826288553877317594460342173662762661159303544878022548839092966211608168153053417143415380371122601579759680646535508737312511084538856040145522211046970414750088992545273039618404201893078584106513860388390694603606294922788676649797514066593083238398493175143351998129540988036069316020083397745830454401930718074201047421349679034805023168867708834808794873090011282360284988721081542922966318459297964879193753731023796435214123957761970067247429671681031674978605324484698232498604828852118158665564759697846344504918170500496832189064616302038921909365062723054058100047046499656481899760995641435539548237893643532391385406487043588211677376459801621004556897828044718011341301983348418720763758079295717745693195308322636065400341420396508661670494144373320350536543552381114661970127581601918427329014557509018558559986468129407263865632883563210694193478455007022586220305646543013334960908794247854872093088187269337334268860416988886101848072978520494830692080750188294616196424012478453560540260728288100218856798405932781379628937350354654561789704098263206690162270000528956376465124383871330797629118919040297031355061074428597168539459260032985220170104025966081766718244929569682582664352546973355999609222940691683245168152028828833452173502679716924408027356461754293911111797827768913216279905022177239829365855552432544494871160592248344239742623052877068025363983105138364338203911938078502653555215450861796911577723818237503662028990031679422123373794723208141783837896876371308784002381606644975489933997712077331259369712578722077517453364002646676005956996211527853036025231399868000999759358108503257639462000267821066943521749999790742015790705136980904231016744247574426456913789575480439609303452398133808333475152733074412951622639127149051548801606672750205423773772671613577311514757757962619737819370951972405097200590263573851528187961641573272419274906729364924798122448263522939264690519328125196758627118067916861286674472881105537359446177290595354849230427572863231781955072998989892804076983600281221767644256917205834712908567888626081784493045470381937625182432824792112827069193125736798246846278147178530495391365512269985405643470395892231543016298601123230400161301620155757216997765502579505625316233563573451572849029510595148566304679757064463925066008482140044858099181545599098331082460300901092885825462012211407392696952125255211868712952244131106835230808683775660290599166863888501681976539637882692931400480927317721019263096807810049879359180121683119238341663933498543281169403885757086382368270943798346980895091071501994213085369014861416623908115777495769481427400837893845526348343960617219530157432567976623147322757577950231916075941215939093117713521778223229603995016352766947490034882754383593095753461749620540445583081240474373505670776053077011642138582487639635219211738123933686474404422341433708765522589826690633765921446467170935536984645672867433079470802785274983890619894874246112441275893988268255108474908379156997585271797067421428066536513923882656855446130783463869905563429861273178920524751926186929403268808607052286973301270223742399255486669299532032870946004338877458475541014278315443738967003227518868256256324080973084176239505190103181798986690910655277875826609419205234938543442271006087983510931192634610273606367275935126867587072781833419588616011847806050435077369594639340517136660697776043218267598251514992787465059963713727933866224660049472401065422242836403105125921404605110361919344325724146895812121862043623993140787294203603053782461591711027584172830115718820563707275182631615500469404028958643280573589575403581596912319698798286722909034864634356698040567399877999862803063932153400181404838696460349924898147415326247718398503799733603913235036181742276627185680829395984090302636614112490968124631664250974450542932810624144602088375262739236128425153730009112328495265848397592673385993058979393562177264014969668476326147107319202687017938688528458861259274544060884381841863319435888225691265731664916238341278241113439140693534495939956524809731655946532771879038340981099882899214266971487871538552584335962217321178497730716684434059099823078442560175107760122422977182019003419725974821647353391764791662807918083303245893680154630625207698808646746982407737363202332021932387067567087484812458390620407197888864766903718438427746306432527562538395787061398029568324852343543972325528056895282175398239666170656157979477850856256990910146863669339739882555768861180932527873649016998515903236740121915194687490185685749074791426228757939859098446847104673049902651340491168335941760234748955495096904438598215436534323826926388206274315127011182865123004883631232841080882252668244156755879609297045172622350369266589507470646143427049766466685596573186183737613539106471058756245952870285150940649576201975752509934239538528366088817371450322405575681866828159227702157866680363071861385333179392608920981228868771143821780358884048605691195059342007643643100133418589753901482412691969889642163214761625396777690545225032737451744025078565756967525879638490729976696569690634978844776961242092999381863171812006094057791522387941416161869114305926919996083742709662288927576817520795965571792222041785149824376509629059383287578147715647330973282467993278010898557967367024910758674279333907981265398150608860203142691884955305885176935164525860542179013400489672940360076679484986193820799027961461190979526589100686574263787266966953825310574250967599582555226782298982898071096260007871032578895653175148964978617133659508409241807514428452525400124843195640243537270758422337111224980749689250315034223199752084999589125021361091914873712365852011753154563101969915052889064070322594245365312593708868534377743602574563899796360592872635281505760433323034203588277897909345396192325741015247034737788678265065772285500514530760113285413475007322329212959934624508337080182378645962173974467883666711534899027725513155467979955733951033153513766747810573995974515222014587732161310633407025172026460682582625096875904976957982486378736895723167671224616462953608465356222245265132037556011890760742596690311001119021035624889661148809132997992773865028644314163169919229240790452251806163296905484026762395877717990169746979021888135712477941571215350280373827021007111535370408705337891354573728383405382125158685011522563630333453231057206037339015972493462614222010586302272413006029299274497917501250788268598374427139296918120334084808750772828514693731809460317342993228392733073288538610795156467596867269070803132408436918944127921942815472946960114824015886879075166567170843318235606091743734389424468662733629665424945753596415107502383540427823430889441816401891557107322549782033453902827885769635355172482986476331966599603538120108542717295054984747723478513939507293827079648871914045095487025618421757448942559645187885943960728000722258211322675997537450193346902394608225937624730624775022882951600402581344529933301041232277989970292311442467390038249271305246616590094200135801011942132449139899616516652886829007070230442092196459039386634237769041579479490271273941786671377861175275202382399212684901740473386136204981302453281491231148737452925459130553888080166608555565754940931353831898443722413351900607445338706769643053305691654099937137838827445805156132481732186633235853024767545829032673649237131726009442557530913347507124763547612790465084106269228069596862779910220323200958617878391775220318206781663314755743382138421374549645579091877832918919514308897788467254734408086631131056398441084058019379507062041067594752701058088732072843892172617301777772062416366667179081887672303367503168142023592728158223364072154255876311225195969581544277954508291783244076231239575153933891866638799220386805090445935962767234709662253122462696716977928244631867168794523479137093089842939686043174162424766402424714403771331929357506749412670540731650257258270462973600529869469952720144046620357836061325870434504249173627023997923443014229497896224616251685992612774729628657608902576323705709747996468159710173656436230199110785765858262475400321657177814268209348180785701765179016737947270523427354932075852948700603465893920042766046466166484075053200304588483140387167219964590138639792570050921844068877155733607023886750044391832963554313016860138023017288704169535793507153116619068709227784853021814785994776997221363619187856578089371285782280097538702280767480392645817847561197782651283943567994950706953203388213109920752509028199835805056322198175173206189440991582904334036155625652671522697946118358017140002797672109629935242773043975988242750354195142350424384169349251231994857524039490329660400682621547165441745690040566938071363676559563435952744409402792253403117980199302262426690029671200970642230580086550615757045445553699410229966525152646887149229702127420208547693324479008616864568448249240439654038404160641546280834600832464074477146231196045729183088700937604475522801336037153958281827277930224941340580751677409847699213293256899295435935661183202324421334861486940551609819888125661040602487648841920420288606101708480585760904579332878740443264319807833873128196940391118969076607806122566459373088126478629025832606350344399850624410792698387714779875021276635312996427065749453518998297870076318860648477877772028927659952061494637702749960905080299999582951105326759508614397709166324233205200073898845664323631447333542890418306004672671758135280145609495852224749426238432613565771462151293257231915690582811301954448817575530231498506372191323977955242682184206849614281482513043605524652893116329213805883976988940446373727579389119589775811576226796580757322302584960537040351114380652989793181329858552806645682541668384363022834745110398592430379674169778571504514829336155903171450380389590680288358502659078012789918947505767730826206573953492035489087961065378818531993290558826802003137485477869990125730674625222773128018230362886203870652076906302358278846554324010300422440226071710600294667674038965136574410005769922883139755639244869506497859704830333508501082081625447228591892262766468310140509276257234078188217023779393821772226746008037611369680924611019026816315820222565119944485323571403786186735807354285996323691536916707304460902585076433936687206534935743346001080529008435186492003368392875491158518120211981199096933198284210919576393871036113652646722992087666663499751215645879017776251981026825878340518805399817303697119047673817573785047556048410000756041785209391823505240394496916596127486742144480369432978772340224634766871291968792644880116733415528643210983848749268702502554967547098096156255242046768737839841433990010000375025668049405487500170621540579863193865704728008643921650406957054318274734617154843706482135107776814266779734040863791772452928276825420071588410817085538300953162882838007382484981218598130749986874842027167086163023250803666330729684738201025432470678593649387335945859570895946603768316767923524220564390331295432131128068219166673732887922202608368138385288415091075056095023541318907174352561203037001510641770099797757394468507274025675530916126023431435337794684583986103254309578078145723032472035192682381287637160662950915414813461650783127436404914015975866083255551497794411036224245459221910491011587581946994904465193625395694327860692980271843973425589697216145817337201736440105765724210344307344975627591148194431667982648092848057809694059879303298341260491386945072488348121945013524716679994926111207468510474078684487252621498568707624414655478834020546117086969004461693777277514964522245594512022599016606613669338352907187443463251626662837404818660491824746537797512114307730263142107945625560552808713545751352301706327304603942597699533801100436562714529081844906688665103257868982546555535250094636192591077537572811058498254377325146491243447771435154064021332545348183009734000559732928030828925631696548562466398340025575601574548552050970084269547236934806402995750403319100875669177469528920617839943068088523389345586119097012143622607943964788460146269839038731501171885497717125124970973496484608151951311019210912431233548602700509802285324215346158784398282790880631130049808343502829577447139867904590930803995890876050467171031675091565962166833062050048356671001973293849031033576497938637798840493895872391636909785914830486294144932518361537517904790179139073207680200353590688763244487421033875415403514924408643019670369096020956199623314069836027247623841625486796488284377634642015239530196844089289663109206252500393714317424651638629488441062889684232514130969966629068126200765746107771767495544508949826843521788342323672612200276554260831279033241732656154208529414305471347651890433604198580582600117870048353965078749627473244838073739219686835212240195144402060226401588393217794235537962691407898487939238288607176841223526788945863033320681627772083951811966959862951443200405272690454096724219397379608188475003475309121811372774666841510431248158560538973165038772121588639521012551924307416563210571420167996869087938280189059311034568979638110032016661261728228569669414962537284076921279486568605930661798305623081904105710965418970761910808430920118680972923497761987886094538964754439661702263889168655427146338605150683444106125156051880444283986050928236415583925305422511156066399714242637279025971992742769280353400112181727891747403823709544669841915947803259213854251978861493647880037777702796209748007155833785136589930897421426595649689747006033958704057987770725141539120152407223977521949731194073833374216872724936655638196856755360847400089487920051054395999982937506497029350006916263401954865526778576851116378825061688519379519415384486605476721353886758252239249198276659282202860241874336500240384495085358451233339192829045609617971851594738178819672158699270183547660594571650325885251843577103415572940001774712910210200954704965749511985115913566025442946680668000158189090157076254543602432917205283002907887307298571030978036502800940926422938479716415245668175119785395434636803622966881774713568768043036877726067475527134574719458278732933839680065054721082418319638907984894127463983367191504785087811590151897507475712941191322084911897137518112209036139134219042030950039003237287391291642339464586502553008879831088894227342030327407622423628338479128554310277121686391532246162129309147304004250717763033252285989112705574580016748537275912069185310778189932880503215985685926377654341885706124525823379059641038321839001136185271931677330347834566706057271396647633388968165914408142488613349574986240100631225643475252001374707711417759944623913764112442367985022432909058252361894092766511190560414055212771206787683602868764453176915018255614911162607086753275017819936957899210652837304991959237578447634752683908522564867319607379258237413792521837743752841346243989199360864199280509454530253699310672768946634740863459162206103058623269905342212923239260792910004800944512421125320672725797581520570828514597778059262835657868627055235454704749221926705378944381669247421638116492725255169874966776661924792389254444701099200051204591419310742398361161934987405582602776633890928678887503902603169854750455797966471364792101110751005333603175147775213071005171087203666893512575078715125001498992164090035685195019193418389099003906517509340819816628132527948049371506556181901510047876740838260213167547462860687794509325329949767133475664496276584283827975453449100990808853826755300455984380602579533321661253719946936099656121699374580814705548565223846010107101601811306625596477585906749685541753681993735237203785330488126505782534783544265512696480745950482903660726650806131575317610539231764814388752637970217076215691657792236913664984794828049110426434331234811784213833174471038588410024726671870385218143561266230594163784648955884494212357161966498740083900876892977848252187782519560590369690934849322484484836515904986947788773870200868472366985135741887510895928708630288294161387613605821688254390703498652269896121099311130031488053552267740590219176210322013897591367934066073920719680711400794901630662795993772624151686019046629050943831796128830119267034076560081990942645464887935706526700907594221616513848487975764548130426706607863742287315810156856842189041057281208155905162024897555285093232422924000030268273015872711622663556318005500420892360568333292654005095687988685751775589436948927924853655385286237374813008157700691232869871874056827303228501989907872918490737315279035144904507286711587935561268118379805427620166083793215338020292284570816490184498781696848786915394054161405742277228743929156927471151392140986447313458955043840213809050847688184586451987346949791420225390691422488395270820022705216378267518612097086656217722651404476368577732531017104857621418289829932281465846409644742221848429573349292591184937673514259939457365624926113070843205694153545551382616422490417959607644552061535373911543257930693185540737186529352492047103079762556698149387415258129731712832953532584678529502816494433989070820862794442324570113001499570424929929126654542256966648504677183650180501591693871812274415774473130714480116482603863285434690199337001291499840632896730507377924642248609009001751280113594199720954723128760729181228464388031787878799472818395320684350330864010482121638625616318908984467571618122404525133609784079822148170365038795552177692377918634794230026248683893896703208982524251026075951407881564630057793886605240260705328145073092429286013295409586187923101327906162832837044444530041575041336164069633850026204171936854109759014732988512466918701876843728861603261584259207719722793019583030601631447906328692683300259781075432290493614041417393520876221772294369435117912489669405365194488401053687547958005273617014203312218557892976701202904137031014320710671814515259478184129297967516678970843728385204063817448377713940556671207755487921613972163953096795830323475581912006477317924442866354612293980532689900641370473507085068050887135495361302515244418825798827635151474146094368672193939296171152288782515077716330535344963861487886084443461844352102525773505125183831017829343344482011483990932626807260650061290006229228049874596426304840513350319804393409221540589978069028178948268370099828838748956938365479263692739740066521827892340558646816103332485276135122534079143934455825300625150855051842425986568124709772068695485726151894223387432791364117685834905850215395638955126552819097162152681707012925277821203959983984343351313382970285874690521408868599345529108364101267299965020161158887880868240253904186209902611973326944399977196251808384680035548897626412996209480555194651723669267133402064892621599028633425587309245137789833518369982906814658708738824568527533378429797605537180051394281292870774085376114796195351267026431170796614253946195895969645116447596374964720914668543428411619373643383658252179382441729957554540879035133488330638074672025384078837572038441853829705813270631455457607549308344572897010119337422772915861041142753118836169621290918018108062502212863583619258900582601461840205853245504945509808095335427196904207614635884055757671826860517346476232819555713728394443207925767381894851011697224271120730788744759526206109398566661250497342501422428165977943673925323006466045426115094633166341720563406435121439229060474291086630185273481110399971364348144456319748859420528430721141792201741450260774229613548921217433499851229392243894061296798110805933218721258860068943271913956803385476369020623145222192717805828587507494629987742658591823188266495846117628087048989489283184449346921352194182347475435824843082436961578033191291296710609796226786742488303172831346493087314455947816691074839958667064020357160423463740163345739892837199640037736879161878681098901428837145260841261946845910247053116792271727274845981216527634324262850056419794651299797613760628741587991187620477533700798660172985045358595218458192405604086282761836962184351461895975879610103857540857521887619515334985275619395506364436591046857732776981090129230445885785914763853133488306173541993304375958334635692881859832128315798916122697973478406280461119571367962565891426429538818683666731172849175627180565233189717126343371742254339908343127065568910289102966286187745931870188849128307451225614362129791212976881373255533332978797903167781016621066441728785464063521942328998946670378700579231451632016524943547197647021654372995023985038017992211770457143482433108011684024706929488056764076953287282760415761969378994825871789083979214366875704632101803940976911527603739354403627806733119481058354577421597975499303264438559990242169975769968508990928202513744208633725489865217226669100279904572998597873792144446901890301507616563658742407137830095839006719676419759054498236496404860679811426441677440880517249242463068211336604166187368046742294575924938818906858600430188036403113097185258120273392158091587763152940239751250941848694876459623844226927638152036675405720339932369449500178310925196947382566342300811372288098345493621458300320574239008337078728411726988074021837098915467703897812981828707287346188023873006787915454924997803784982826044506937377764430752470560065741068127425054347076531042353506127281370472765834401914846549974858685991543246620578132207729538638302983492114862199483028868489523661235979553595512233248631243781739679573900034535171529625370831445293045948216022680596916070119654357479055706941983898409184514324133083702091393671971067847615241549124892667167242289561109198153473162716529089499304305025485412372842900680227424247878057222709510454278551187327627988350584369954700220583635227816557405966082061174698616311618621746364243628044747106715438344015585135489259010193706088404895322124687281168855035146366243510978046714582828574353376743438780881808863640613155883703905538817941208725515264361133067568936936086579710694983057967862532802423842913086737460407542622160836683682773767948858570585628734122540218332579698898642607056632354731239636493186166481465940047131089041477128228891705703024717108032001622414867174187639963712089107645618684938156353217166018867248211333871344561521656667200541556933856817541820725062188093321852716691706128867837614286807682953399112139708371057152594339413780877010881766236036661857045703695897964296846660662032392013402970808416908708021193531400927235357050349060810819785944863909198190565168533919626784192937220329393693146955051198898250316028501764032324310586914883549438140565459400115422474939049458768607157916409510664149313065296219591542796023419494871276565453175293140581530164405652395742836721856310095329680672218862018073725856331960048853470735353272318897624595355964293512090086764651423259679895060064733585742608204575865755332990719475781762650746145804746971346672465141394769700526880877009916392926072598540869040426714324966406422891676036481536949473739309481384758083403274258862366559798589787326954423700121723552578440590435868911076992364459069945900633111514118511411342051130150170206528756316977565404986904413370147569357348007195018608816847674323156031108496495687700649957388334259277806577210311155238144099215271330478521267279739023860523746666225424995073179156447734875848302771965051912352605842273718640849377145415397564555096536141028259079562737401522019632820748640377030652247342150163241252966460224433645512324777478982448420382259182681339541690615202170116879721743680964580405715081459963427992026708578195460467455825453252740686005569106043771162120365698013842267573312708159922013439518924580857535916136523459434314891507897710327254116346554255951969741896742443202259153497124896618912747338091988465324274973701097604001664314044149447508451012644697621596065747286393338596754658413375891812634340844222123054459438721726282488697721985782455640326054147887830276255521396525607653332499741260687356966172584211380175599537750656300590622884603291140325479004289867600315615495864831267401926146480383736586321986538435206086778044497539812688589696621717953030168575390003771897468807167283621877090629181354517460726590681714242054809105488540192783520176861005181633773219846116805084543121369680608752404858496491808967519574319526815160966070237467425234322143726104646346274611898085184934521116032296873648752014284098070427924165551916294230375558384924566712495348421944375399419403906160611264948481620814122598732856675659794235284057331449828520746267307338949357826897165047768779669596087258506966397725531037593050131440009003452860619809006202996527139885124078530539558497436890653175672415025488300828478797468248788975053174741279974750733551248986140924108965219811486468792079475660387912903639830124278314158632231193985888186210020175715673149183005068256494814467863089203372959166872741661269500730317975986047409025324500569446773241527314612833516856184935154715608579508806242985401212220026024290191252565843756170242937403520013133764595278463183159543822674884519053046546936258744425995406882286593866368285876610012130342203232435556392657776787366912711416412978950500316582746261436761604262368539128111007913522645046848584387756250592588315609553639256633198149489329951136671249649588909007269246975290762900226184398563559759396016646384110891164075474092196039753233850056689416980255326898686758712511538744359821852718043587862227375897320550235613951397899593954510905269156759081881594392668714579746605415797232090464766279321354645689406526565272000834116796998586631880273729630564040757862106645936901761972671889549441359966975392322949746620473110590108373800392534934266406878303356301617588579210115460359635074244783482874517050455728564032590809455814419040058964165977767482617777169100496708804158952381102461915939191544811680050974825429365906748437499455785523580925448720258409267496349366003399731058061844955874865172802523058262874406315108915369279466661051900187620853529751334707781584416467060710981273286519313023684893706900416461523954872091286393480381911084388257852255314673879460228574732926408935235601326267311737816454836219149347153096092663566234493775310599633331112020832671558641191366495902515608165662353723678935730914186308205277890599091683703488678823299581209574538541432028836566574998171800311392029001947706424178160750698528497141304669484862833624399915188741683391270831541708497062176185565072267236554235122325819478981521070223612491147350276958439764390272184628296635684306092860350167127784839566047938689258886157013120858228025692814134242329940309508499983084182082588592749469122014785699589222730926992920038862690964428782825072048608942297027263667471355169307692643257016676425582577115203330346362390543693360136189676215711549764690664516879666417849196988288292649612294909984156872485328942617481469449910577097341686771409635167308483404644518982286217791575867772062291417426131019211353950387331171672607664822700770754549354951424914522025592294351451542992767677349996793601172034265563707032879942780915563719081041483813042273290809598594906910054674367916386237642739830293972324360724108062308283572406528765025484986954768863364640431400668487367074818787280151328718321876985901426966132102625684616874330533193596153870716555054775272846631656212002802048705890386264968330321420449210727918801520994704010453643420089184733398361886624777709034122284596322184886371565187996661796742582891578688284428416727689095597645761990207890910672476022916197025072444307641670960355039223845799483904499738573477947088419511376463481862913301540952744554668249673256826148222330123661144662586305269885842271293501418938741155345150278313606469445448124989205064186716039527135136097233984200189004142539515280126067412921413917011195237026374988355248003069015090538593392276840080388813631915694712204209376173927040593444874794002631530407994766042805271714990930861793842792700490451866395041248108300932784520310740714693170323884945472131796134895595810826402805645007792884710087498273571078184097762137383860102096868774768013248902184825220419904734107131517523846163647009967726164659602205542927130916145197968722637631159795611929903896305466188790369816627262591316540286125854234709496410653474841120721171978398246437466650842782103213207168953040150236826882940264896066500112461698351111890414695657222362483966002654572022205852293237895182709587772246607354097010470421007139110443315714889777861154184696271438859698401394862533933346015578668503586580640646345543689366129083803815075911669740772260085618918366636496224987803068997496320471527119040033803479459574223211727660566344521834362929955250601998540084799601122544412218054278645339634049693767055453184706244200328660303673579035295660473683567182635659227782753036603912138329769497363428563542154735137473047229965882706777299867036702874487026159539380095498178168692380825218438389551895863607468280283454939492507338676365724630284816232147509285582468979651102626836318892341724590970595741726765797690166390465135886458206913291818487765434603060621951519169561520068759070052179230824362750792894536493454195238066569904427155321025545611115068194822867170903360499499932935871523425649509132699160098064606463529745177508004615670292633651241724272700963747952762785134723860747966750252716982763276244966465698397404540902943440875677271203180659773300696094622322619415913045247870521378250903096121375378859471265195264266206884658017663980753516387516798310507110038834174100578995594888580241104122856831695405336940292595678276786115896501215102972236746689864912498185656107036152298538361147829758575563026033270943559253914010959527956461558800222216794105038745543988209152145414397520038744170042303048992362849582787092400605821428879034079695249437796204128437628912393730697805223338246460608762534796732407988259271186187398447330499490193292023671012581087131851929172789243866967651527167152364688771229387973982103758027626073531494126033116455472532765561614066186796510640134540488037764851926507289740226839146993861058636083916223248635485157606502771047974763008210260392982991489690069409444271087547620965322944618332557552474277501948558544821045220515150788169785461884268627345946160305353344978646910774973407163962386985206257103435704283004005186560597111488647635458940339377626403641812277347984014487571915628785045853148913843408538827279601520483591682331698501087409208935307721444090931590936542200110480826577857724417287504861841257022311530420043654522306767288048867990391688763836397105674137951056302450530294780554396437763609653731762628408970695318998497299321790510263667659036346536124777472121737111067379694051747596362757674093089779012052939472067353044355770025885640137580580575717704902919484878193917729519778744221877092268252509206013574817811119995528922773197100946210166349348526520632988808507452655635469402930166201434695499268388858041335413697208691229096437037698091021411924941276052948565874551824680924931615584547806656861315614745060549271678164505920256774887423173688608200577326416969556633453511971248113465748558371040070569160618600502566949878515357131563969607767977905878837590598395679665612707723123132094479472560745805365567737834124358470478038132878677670515238702576050578725304570697218110053035663613717576484866464244735444609481825568592452301608175552058334083335501955315081359259232840592651159803774469730691002876471441384580126053342608044488398832507701792897405786698115382627016082340068492397839714214002794529967229817400130078837360411589792233277365979284577436480596167751465505199725681964063330232589901928249926725112557068885851619053040724678025232761534974398252315282751494436328103110479481709264690673766860215487042886753175354347697208043962014307053310841769060030154594217809485736847188839006773366188907770946744031827601209071153579864998254329844025612970629516670524513833710622358633291961952492928130562127874006488499079168733494590331582857202400713483944390943083748055775968043378821105485806226375301015790076195374309982730062485625165738779180006082660945360633960979246316616283400847195127853328951310157739405827561771503727424038680130870668253461332828451049416378647234604622708974013307140136054282445278443568972234473231014065358631038051949813233323183312377556145186723219331194904335751717400713979280514074951354418736104036353741647485801782798083353833983193068607437792477364231467966675687565987654903248032568368975714120859367602841043610596251932323984414886815481844449999727531540676032470543343694083866851656310202448071189560509472369587485364430206046810361870073962366666344514188466707336385458664416420675359083644537029205692607886080974070012238770473832682319448457114424634526287720270840532517189987367738215301602321968950813208302788882565878340482700353267495003777801036421814131662192504614357514077848823293452409328452715239114933470847638769457663252100382334793013308439885525903375193492593629306253931406878196111083779888007638132657953256962905697709337886254504195951645226938973017556806726045178864579225377147596131295175649236795277821492360750161013503461318676463571431146348438753919374896786306644914589255761191432984462820068991251152678865334698951274295056572197436514282148110148316581920962923084711968407488041458462285410568291907786968744390699537280036703492483785944264760363079286468441492863466839545105759330885946473773793881920109461559211476628879879521036811978380105041366538504375831586770095806499780308534809554764605799972322443668109225651773880710625527444505616730253033554213982560758949460371399228881393539673887025459447747200090920807452540569578132399348689537816925695601933455278591076616410368730555267879468682925624087728887947993245252735922887736544247572591514635607450764254596615380640535126863527320501679721242275581394912215831269926242079564677522053128231915973425291208222493873531749502370523155745883379392821057117813296877076779638612439885305547951433246306072489296953677702623699585530233715929293151743400863040582698975177957287153807375953145967576962007238264438586110283816834339313277016175982516231361333914826354133171933500875641573604072334883346361370606278998543012020199810363179422409074331498410726501021169579380626773411398510488752815299626259627010102405321901410245506533491644513881211929303648140129535387160189701928131389965417961553970234821664484294471528659119871340672555297685012678736406898439458795806446956425373176516337788945536901157666341208441484947452069275961352337342721447037672463535228893978741516549255634938688556672779842639220768042108824419100361432021269121306481190209319335399378034686699858424301045125029536074729886096171020924845933805827289203100479488532867452683343938980223512211051974344690800727315917138260937999300167794282059743316686506493068578244416740040554497565044278766253694142294618864572726077552421767509420782537310849319726037647580053868741034042095455196295342517944180970383081285379333980519893903896833146480154202485336622387067425742639015216970095285579211885173863962706811850666634389799584795124781523396853917243891077863564062099998803560335368881211802225826132107975895541035551789524950745909193910639262317712796245486471616272198986376477949383959281118682669147856819829107194073149227915475166037635782005376055897549400667803793150119802626920858749824022646927224214281698283184061787502815659237786484576820908439768153575187496900775222147203585887110781740733343248386566670833235831335988638820891595439830812457127058386275316751691632680435758473376901579056697690189272917787486161943018089860866939964408263448386635571867410096517842937196780315536439524604825226007607198040700753807370661885844809973664259218569576210642904385038357504054818851046495285475708507048428611087710666273513564159774272854445407759975700568259353950749129367877816723577364418331399204473710903833253899076991279372926099849092278798784037736607257178683357454452543813655896407376399226779469626757522391846395838337832448494183093477260021818770590324441881436046943229615247430781705416050422990641491273970632398452053204275790145178464604386034525305492648330825934207158391458518529957542406202551450528319618226119078236284579880171462617258551220984733333126295870182130056091421336888626225453018186626766994342535653638792615014773666479298475898225414761774631235612945433838723272543674420389707914612130618594948332369935564933411637593297763945909302296645758062043530407876213844860543871483161327921899258002206460504043889767278480157211662536640953465769447412920895134412627956921826258317927988445678908637209323507770882124018548822402293111153351816514545649250929960623972818447931729252491487225583682486820996969653926189797435958304705143440594110729745426132833070385209323418610897615520988800585255893466562893179237440998117650366446506281926722891082543275438430675202257633441153222153852860029335345922856058855640006577178173214528467088060505163065213612481788291591487950709223728522392930709645480574858643120811715120983069578552626757362927013877596729357603683769228579134321136492979521407313374966145435209506304291597792263264864180676167633848393739882353347993053625349904109109432936488399438131465686413244726570715753071961224316564743676236477929806908561722602798604383428795244332407627754305518668119241266590349896847074783225743667294427163407291212018226523125902812954831555815939071983963004029003912870414915916614442366855094064563647801923711993486044662626201144303337325679873208485956472009113555697360368737698810408254549412989456039139730619490660310146771413055250032160120107218789290021416779541189360328631509776967938582337025729018629915642023710294263356027981384790149109129085161170938397665639630168107840964052737971846623751686486634983005197492221576826457065154949399812054354332105823323457607254355795992484728052735981547330658561557258365178306939674459260138974628864204669120768600830093238201592116300340401138708996189252775182298495641990320167477986056388590139161155050372190824504947124086690584774558080513005823426662988765880169256432811415252576568045726180709543226489143667436538048115929306014691785838154921932645944136871088281658165319041403447659282195222212690044540781087138331017150420523368831469368722378090310051750270156575041844353506928439838601791950677669542598225871142346275395163431083980920329331041749584942781401204496991904759564223194261395792088802199206194560453428045585848346111134279771746859707818950560797912685353702215253866888362453919852127539692735067494998112362368187232351569430967530140627001300470143299710093900715629909737080564802025859788581545912660514226229546210620343664794104131917572617781934453050875740899804250733911263740798479041612873674145326225907641084396039042717038681670173725533272111077290683293770830751995013538958550829541206232640214598311759058268133908605945014428275525099238301532361819336514343545417390860834738468312097382605313120885485167056237622896608257408355558457966006038312069585373134446364104953214660590426819237454587605230651239551519794022344411644432425023089105212108642513710958292585193762459556146205047303359446552473405146484687151680198312489216800791945742332829419341397456838755466730616528385107320589369883381389685060824843226513046698147910615744018939468690220084583851019991806274186662045088683486809792001414662807724582123148591264805267730876276224528791712415677061613308699796104078194564315677370249730293007767078500218116076979903577903317292660624582892308320470848724915902648613260573820718730493277003797612916692938637345326661005193078369596064991013179035497702023611425567138976974931353172792197786392669138462005182140475590724337327499871935812444005469772244241561063031735167188608927278865692776090927679524994346614871464326737370546973439822321796014373534717459180916786924044351224134285847076816092058486744571554440841252516533971341812571293467472939330973050492103339447888713718762305790339758952285106254135830947992882997148869420075840705453100241972034327762604364940886751006763455097134623606659323961621839330475733059149963738992927217835560274740480922846800187935874673741004576842276290051988845373246579848715454290789233704001180674545767248464635072383552374696927344146464371958505242287464533297454423987359201306472649866217395102282592554767863907352604215555557671907003644404875980970051916156674949761153788085179847881884018824783562063044336676236203044724123512886419943388285962942908527623508455303013430330332242168521385855676403067347572313195130668057213350212002037399485652823202752955566411567810680999931878111875538354541890177651164048927157651883231498688902277501057502878821761431112203775687919793039318096154637646352996612349101872438855751350426452254957287097679797751656236981918934848940198455072233927142393209532352338170799787724710856033528676352109071044905587232078656024047626955481735040882246017914276736588390198097828142449725936499448890891320340829701117795901269626388983411925079833506872142380791971943152493860999134915254940108111442531069482116507896077934905850872308559063504013798992966937777578937946057829041886148742977260856958926664353209379655877752502629264167819747463080294034449355939341741075438054651317994076965694415575447363816138123420555583234088048192388738595921632416466550651191980634038902001872348247160296453948099930757760513865866518581129010252848120407130571420181202168237395512059804014748353736601006672862682046668409575621495361606373707202346104765638499721409852726662876774692725852089455140377420198534036433963848059154309461662204422908149879113049348829676478396963370454188302415624566360624255825064003223492704981022971812032625520623731907309858722959748335794771497511985956312311828972983562679149528024444357591202695277564096595538664962982755884035625172073332882239820419832528933787331938737973942350505854166735385352973341035794244748467390159057276662638923024937761804225236695123990597009051615745980923495557981252765324432970918651591243467089286651030720590259753775951301034621589632712327895452368687878788749750712195238501099901253373809743609828736333565401390184135297842841323946348335614406461685160863755441606342747769863763373869782405141978870462007356464683815923225706023033729780459980429364104789912080495978534596503987678480710436980210384780148530036986805184294823136654790093937102188702326563632287034511579548927284722186218484851831537841084538006401329747179550239272274775723382347556630311112405423897405761342492744443821247759839745850020038397984759762832809555014583851144611580110368650282708056200576330985819252977722804272635600541181983495849532717664962296016046405618906200714599451360885925385943124646788224251822186842100049669688203197266225538612263103654912478968921828034616963000891694705586354055266222275943265399316274561328644578399353422110746738377463127939228809682894371502018336971353674740377915693409522918049807456420184634326218729798048972659710942165017394207408233359670858202417188920312261313438952263017577152842977724803133637284721675908786103830591414096692538806447462293183800523958035799611447005830289059057080095828761251850760387472875711360707715148724358919664807192650435383251110018067694139246059866468041779373119275090490282979820021550667203707125555227437294037910335214089446183364380877676572617000405055560828070199513367611347089749465448871180765183660867964276771363676795874890603977074474986540715060891929158596645115219269184820582786302287340619935590831624962098323717412463382421472886177784993533329902989959210537666348439439057183779312051500095921183786658244740023031392314134072677673271244664519881874967989160898134906978954719012628965210387328619926741438017099748045404006521861921065170828739158027060751096750934517726317477503481793850092868416888687971012985042763857988588943276590466394637445043407302467267198826072352929972077052543840043005381645371007198257708566875812635538022563061034958619535528791293214033211348294574792105360107624425937023451254588163560284188214601055389133055099592751457565059575065428810662379968610454902928918612951133096363894763684631948832108220343530375030146581221341569757818220368109794318906017864660658786939648796956265732142629841381870063903178742778683165275985339256106984107031936717797929879772345377528071606658473795671761453517436990823999235966950953112845032360506631873084899116790976044272547409569047768340302380696315588190491301421984065121028994846186305964353532831127634404986618155962626393480782426957346391517245958611161928757552014934492553744052423776181204304633418563030486179565262503524378025201236820345268624784417024652825304785474005017922590967929353423842758260393122166580764005724753414048130226186732108842547709122740237118059419216178485474856667266770085053429790236989581068722503892960250124715280831965167816819629768168112505598708372223584478849539329850266986972153409743695501235739446910759366223409193395660711415934466055397575744926746068015978064603767075535453385625926467710585977965659318184525865020439949280093495717627937425190001894704020610302859666481193347308239111692930971267709719939146998212890271790173101481133281500921455322555523707279944432704944174838210555272014652670619400420832777022344173441480157452058866236274204578248968931145819216658431196996355497489302739497274444245083304458466650128618270749050822683569914183622358598972836892709597992284524511379237154857020484523155632239411238969528004230748419533872219511092350777655933089365233427564871071707680906984046929916974480556700618959614120863126820780472686674278259426418490353458146463771853850680460217024228039252919875807325127373243727798731980328398884098402683597247577667386130774841063421444277442000779513524829627964951279898608863978241572811809989098884098720316917995426396532411310286856357158554390006314252656390327638338699878543925989865511484239223965377227817666462378342086009812818911589227692166998326772373365166889166136010284436955384418038689897373449908599712251681050464543098270892395769677999757205927702202995631225510774205156116430286329924494780189553103935373494381778091858058344240983515995164687827667887129480877980920186721586639899551166441942199543152945244985028687282486403910031133330302474824032229341423921225505782148905952542455475600800101630829814134854667442109703339214792436935410950706410337364590161891988904148548788269362078102046473671532425811760668903996635090402404795814749767788879838229771522228149321161513205350492932097512820844969173855351423300263685043795773985481959794100658623171573443485799554031766802260578821572805617087142630089758096305935775184299913155746802801987184813045311850396046910390712458457919150272961865014451607634253169148796908898822291450817714632560174910208839182061655746373126652178675465657104976421159876742010115388911095542758939270396366996215410423483094258830558322831135519535987277941159010953468106097407943862117948810133744460672101607692166991086005186881618051404386996580573543688430429639162967783238464313344164235320312401489880708850865609959543423178257343585921464214202524237427488718226888232338271321512513024821124941797925490716962755628298828245213639504264907474528399215465870894200133276298613087417382314324042603862598691962183208194705427920791971509393649541713190797360267943497081730136256080538603786038510649383927430165376726720861471535398152548654948384998226306224690576474903519611797509818044135977639064059781838275426627179678506717122874761901879462092986441265239319683090150272212758393594301433628485372951937365000417454355632721247780836558244209345581654347514066597086341433845837746729781736841620365340377250073052264825626622969236334801429527248053483425419599030663867820897807292255445672674743075055220736430697255610076891596350962563605125023886925249775636212301580432415755149288980743347345007144721203359383282447133513463004497907688891254570049252734999124785627817047827441243649660034229282861001411990252269393314283839121013447052009566780529394636645171790520482671254898963075694278922647486199725345600781963060337598711946683418919386576500747900814268187743937475101616629844307736410282741815039486122330845234639500457461375431875408669201124522222450112454441394416937115977141675347156406474091619989793534569383551086611895776395746135758397827922831304961203930237996025687581759336594527396753935037051756835002005581836635401996374152984494351873347553419343982185343497661061205477243187690653416254451259400255759306671227567587896399574998061150776406777669786427406663363304938414112052217438803448401000009569701057926037101172370303631120182948681984378771799652919232536799005429803516706084479224787191606479689966662302491647343967103869914908233920305314141852597424391798221457970222173168468846810974009013187795645375889905733421651810343889514933095812018226380211982487891945436611861366710744824858650778156048970774783628162101602673544951771146721762616819851041164150649816825292609290007405359330717182105025399512323440203639825429643877093412655290938389116399251135360789475570041856077625695762501295851514391506463839284657092056148607165922773657537472600935063298702270518705311063770607885657152225261885923864575117935173214606112063453670710827716520773094369998990436488429440985573452107350343909512494339431451761645872444091460971515932039488704371894043181266594316010277762336493880662322921873602870038478162417708147417473369904709863239115034123179982874592514696676540419644007463153012169280841355432339384181169301722128972090104095732117790978291194499301036354634861172137272828016294802169074284506856202455016990824750568212773234313273472931297459931769000117146553443424630316159525203594906767464985035823442690903434588795459471188374160915896052777830996487099521316158041744632968202963706742353079352245471763910185977108624893264100838661154428446883604258500567959216605336994454197084695977790074748214214353847433053782173152469447985163498757720666601760802060783608912955811436657807065144772709779437304768062532683547701694142395308112630940536685288830102011854140942131067223797403464722439555773757538453618087908935613412998914100968751056366611187865553045690715176455069751154721441926971040743102955916509790965627113833155985001497332441126983075057128327645282320735388797470571282365991509964915750298127675952031434125519358215531833591091089099417496018427092588501673871615998637515037705097795595786160886611498293569175917620341893723325370260462842772703940345313004904890799774923999290598490707616332008339049345852805876494976108118856939085429054991812870428361687720478307518939334381856570013160567930616755691086398891094905993104526691473851835245014694238542489152328798035325593058331038887728355959490745838715642747872392465464728612832773860683290268990406498089397202709889208202350068188406663729020073521309114707350640084563991998512798427831947459177285949669395850459037861734332511072366571135045861548465346814311618412124734779312002612411561797780373549813206179607840268352929035844153301670315309643176812949997866599782025285926534645616900150469995044026827425791513027968835570086057069296859543361763891513002641211386982602986397659692456013506094528355732591114587598945943178197465715048514180239862285939214602578279568834010157682009652226337829734173172112999397624479839772641037286823098515093816938963916833290289446516274889048654727502818953211782362458150373417299021707215408669830258384731960693077138968874820040504240207528933802815363561872715488110079774460339603449888972725866210591263408522499502674400148583000680236646753941223502931747379525280533770014212348545786637559783662107283272314516179698757254006672126272304946905921186688469851621046604853251253439294160969276498096017267096414420223746355934832834922697696235093064803169649768325436736090775959782123108354396827754134583361753063279275025619631944614814189719474006494573880913521582557913499692900802936304457021650799133831822977532778253725579261098970072865762096618587731062822278743734584495505017620418787922092283543338705500176509113397046459477226637894991372402622249545728684293633180682949971929220412576557954626550316559085695037228317211123064626502367685688283429276392010143585719564021367400641288007906002229824868333342446878815439606285246694668659398208269665009514480993137538706788062989451787790893696047288841639101888928536045398786090792649055581608784903647787413759364274521869264962779559063062394484190034090812279255556842229926066434996210770167726505721759462594150663966558735288414631489855621970089616452697135450826429001986410281150659979193093973543125226092141423309004794751895669857575921849137858818509179937145651493639445474324149614305950794536061421992325042592470044009566083076154742933137147496655536033502356054089760054890548594847575180935958396315210660029804961833906734875446258178914745501247557406622226614565300628869971795696617026333679398576286077321110249037512750907901470466517755084587426331321631350513924763142457177086452009332870789912062845745387598419523586645166756498013671146923217087436180759399971209337749086262619634158142045688791826031372902990275692773744805697705102935091979110456893417855592777439047949041185786294231171741262236292568873094098210680528801906578916280354108210611247188694269512997799059519144383107876797859212230208026981851769076552392263012230262040331892992588086023674946709451973130162615992869626608903617596201473692941805161294805150472127293861402166920674383097228234680268218470929492498885245756453748513008165004901223005763602110624184297456388459483720573389714990504512640357309168395105553617303549115443373897691568730699027611954948282546502665448834741334322198511327039759734480398341143375482563119659511813133544047275334972662306775635481591953192013392217177092386424770403095640996111929374011299245158059477859370817427138605584584818092400148946910673521337936164388743090267811503004217588473187622363898359570769535205750445058221220054471354843813569898763483227460284621526849857831423337057677204016015671126279999422104422765771513601981867347239364639312680638652041642131526200822151074728762505906853006457061836583640078909735903414416350095175201001634839391448740481375039555625365591740367422146072278692326002799206257199516657130316024309224368996386347277546093143616937360180843180313594340273963007796755496013557124795004002627248236922044498994674529645641021701687349774251705760511311907555238886755620405919875691994334243251888007653336792731182454535146376912310870692268855026622727077633304248669396067112589761018237757935770987007263130967742049155761369690870300167503892369617782716675351996421207070840189634813228276218404901204679939096795055577393617203142439542371726313523204246397249304404944743893596054090859958905730130025679514636336944780073196346056286205706647710501000805024354398971025940790609451423390179651560230990521094276611466561772768717568232785278996051331951483313114909311143299936224467746275814229028726319268718058381540942623317880343981763523674358711723972798531753697534594016611873457490611921901335607871649919034300156029514972711117858999475408803371527242052094222422757077903964298502864490720833958199800778537469942970993129361017981508388584560504590758043629577956033390528423661934875378893375203632544832186059198702692209285109932020615339077628398253395995298180347004137391500338870502453557787611557290203020750500754338637660303585955755898544414322471551352289111873868512499939208930570795344152162400945256129493946242028024413244105550204628110601443130397175351298352512080594829394307951387937306559849445254785928233326251054170223514634232399899446897750349321498595209706952338432204030596607831695183040099993931165666539306345050289825074654063891179962069347500537924221089381653562668004434102877741217433680918197649435160327210870380533594596442956317258005341027417516222299442560262666854797095475108926389789177217288171674913223481104044851161450415883436720023389569219152238468391803750952794830017260219802109110551888507034674245794375225863942931339917804732839582392710048589663885669599237337022190508308242527934165076276248536905783877110335934460805009525672010480948178398923823809705286040148066207909781189546493721820012884762109618130446996167992825208113203469531236594951465904611723400608582770759275442958468880322740887988239641579944819448896807688795743526778776539418215902524368874764790754303042696120164831644618038850141136756848830842731999167515824306248344407499334330903798686067427362256475756016520723553157889252552735800715079280448037328528454549497296520838136458107292470872375063892992372695367786958247428125289428806120903497974960384189191739824256697414557862813160100787793164294161212771898840692624524961418322058550161960488511476370480706455403595498868736734382873042529358596893934180106529960229924000053074263310769344083513523862289723633299277452685156676613231560646892140045349128734919850040372783467419425406767689556574697403233664849119984745260784247840831191289507223178053111561453855948176751801870361312232947412020314397124480163175539452042591883567097425219325980433170274124424646712043904137334040466423390896775616673418436879697453796095056066212918403533325421083466376653568776817862140260843247956722081598146650898353681508541327530749933167829212778435851848962326773765508689305073417298079479614867486673937013672929842711065595002024698631876838698290731335784623197166032388547305671517287394330208362855988633213185471159165729497163818425696011714992758807720056791979038703053652132437653174820244370737226323122805180261933475037542044206915262917435411629393333425900039933162281823702949733900499863733002458150564940691735691915016059837319622007077929439873310485792181584116967019212831312522215295698323191238489580752506561143303277401247811560996611769058099187289201670913629647667047819017189241737878383541182862864602966097007167512045850035046723238357270356583064908400540336958776570937194003106466069687147241793259535937905431244657232384876760714015032726979657210444056752758163780728456473011095612189697203775134499797177919938743439031595940120931813657852494450457223521235181515897109988983361946962859485873243185239584960572264724708642884636163919918073946204769042678787276889948023789911423369956590809413941463074526911922994855817838881331634515455708637991643380493333262835653938113865075263813691073987952334743758515765203736278118578803710453124374690007594240810822800508106980527998291407698550552319424857791813756562912752754080915024822546555038413490828150199341544169474834228259795834540404355588030127572419432959421160960278193977850649025236807311508326637270475690729367198534587856385084465056137946810305063795528540962711881638470445594188194068735777050030362437021534539881870598852744580997458125589259930663386036289618253768658430840496619208970004453693327773774944268521424447322652636531352604543179270892336880874551765772611078865762761308623399106660260733502206080174410522987700728114971419670304267481607404965278544551925266358528760950475244790310434050939424430533409387264450395755116390465433216846949967378319572493145111978880505154105785446738450492718190737397560319207296284921448760095409223856232192613356232903002704388594377740442041752107581935293862670727860701332617896114717537706140303834313651078461917852235262893202342010963312982181235000814652491439209750918864484301350418492995229945627844641655791488125763062795301698156887787461932986913436083014446158605292565363391876527941292653581677914460636214479245790291127856593945654443657345028127959394167998862611761258296276733910110305107996370150100552221978762005674957989949113403486300546727533825576922397107606920208665848693593687224463762697356356379343195706103288038640999308367892589151234526011327054480266091374448751086239706756121718812158917078546488544798582182268499791316748164653095206727972141012908324777826196766668669387245202253504756274748120445389103676864485453325581594242508379617975111437522332721343367377754338227507598596247238061064269248209987692577006281876218249765744876099726492873329766035094049175434404520108450478689099733966219291485688759317088740147772613596347936544449637121920986043844510966650938530344895494897008867369260221157510314035441406842331298787464423600407033746286215567351355372695976471408046402416328004042789557412519448741335393898022006733218855263603529632084909841680746612031481114593389855365876256115509296471025981194830894575418390755399524703579354125658194975805219124351614269445551377361444318664840403979738171544468645846451960308594942375595503222360102910923946973681923826203838558274875782384978175361517591082859400951610871070618917998368012047760905039564865442969798084986152453233881419672750963628872052090354539329992350278508027722168455620198295428897608051792913275790604593633992653613443068382872572355690028990505217333966505535975937005068633236261567067747506547154763133876231548903963975361513949470608344171074849504379102112224195599995723166645549752235161094270846763261466882474074410358543377669788977884971051501641295621253831491689975662937948187848095354963665480611028121723774124526745740836107646609165877281433392435389800752957596425997215624276912174864611611510533484918748015272930407257912569240453840606839121895522340586790614615132281174666499894579504602217294693845218415100090346541212878745523183698465516098326562929576723771347106096551172966124382302454300899618103380317021530926168899887223582478901114560918098321814286156503295250985752197187524096768107996146270041865604488189946156435186308151444556305423447309787228249433155683313103867836515889597908697342256544541584408640476105193145093231697767975774562780584949143044833604341453987033675327814247018693256849245410365630281266477115693921434806389475515324571492437876296464803154745636164224004048471795784241326238079454133885281874501043120383965874300408628324524721628046680797913328324306526208065976767421940270923778562928666749608889799441633218995256761831283487433594494535776954633706070223840441159323858676653657372984206862864465689257299114890023650876298952472776101122290427244674406684489390949488347834620105984883942510459864643014902825305103888924005299488032262711377196796238564435279565087377858260353437932795988668359336365507965904176184487946133382868863334240208332418027175834266643056191022544608356650190198829789968466651547270153560697733230042582338044944608883270025698886989743170735292224178676957654223255028890469372246440564846249245884331128967908833638578378482056529013895921398500313431908114176592081000737384839225329155380717076919257037436163789235031321864388631747707720057942572635993357312402968639145909255086516817470685151437077583099440858514932293135989076089280181366872147292449423592545946256595160717921178116773233181456816903587848519301454048618920155434681680378064922228912186379505896613262689193957053183353153093039994947363466963666368996562261911420444762453611948735566717097990165704508705154257607578804920389259165406770827869265250620654395179231202128165134928203375809341896931547240668215205932196870097201618730695115593028319201010795051557143143481597732708905070384757607805108174251593673527492248914667110575099444829384115420148307605011980344072667331832092998586846658918880664868066609793315302696049863701133635304780605675303886565028951125328826392424272613991638723348105242538576070072690703152921093482053607992340536014851016454374164262263566736211864263377944001064453012183777874322672800750014683812014099388302624761813936790534945579399135218656348946353909169932341059158239056738754792699741135790628176019467833274127193068782814592080514874782573330945453284292267782688870461173649913504736072024496838029644235848562041544963829844146672519924730439234924805880700105529391819297210846472811895401394360462680668035593333852113621360555475376933479914353121251984685229697328186716745801936503766461163228388647945688695102529406967508802993049905616334415423773226589205387082461938099695054269229604533274852127047364604816648572409313665076410433631590518309960271572778842945029934424459092837086420111068824745486145338431847414176366203043602156793432677889806283842928945559960311801568149866247154869138847447938995401000762908040472882672292025828918037242449563901963390547385857476145851535374409820118591698850794249349983857324221833972972729861113964150552173025775406069866247804679428742462530649606448852593808935841803714661542342048113960689485115685541278111414831637643463791566880226826016517981687000716564620854768100878032421134611135017637674570253632553496381190447027320783586125097111896883112627794157757760207091020471829612261377997383541841448759170159323668093586722551097744315000919427184567092132580288041394174849516639090541723887753253913358154708482831595027531953026414052908324531329279344744576147967073968769246163181442399369724669455650386800702524588901020767784862781619609555143968747655046003550824794927589472439254392523541158616455095639284321587727808690080842130497155086424511391860092389095979173006045283177460013882539166320999093013811062650977511327682248648196474439406294448466696521120465515311810540733474192826187966194990322047017496128411098636513887373048958304360627322074225165582497703776153685134962442553323835060661005044502719597444195546447184174141847156318189685304433265362443163468499533206765272672594376868225720249626860894269561113923085310458798539740288455735074787157299802629214277554667987773874584967841151131885943054446813680549819534544450592140192053243607378409617215476334398034411428309089326057598504532436456121755343993070585573081833833641767974415230792141434174932963505982454204567882735915440692287666351785220044841857106802344641237360941015100207228732466303133091749727125214033790410283394964425742694856629433040865524090578718915999989100533941393192778601249352692408211678290009332200165515764413545006282763536852978798195178912797861094136862107957742054273228347474700568033801518922658628499174489927627165004761129061821641536185440677625131746942340035778340293704053109965834403410165447129389779461050336471974471285960708441839195046516210773853480038586571130737530788686262627398011559907891563782203844094269184194565725580811938903101952797633534685211184712261366881449336554547402043934395800156201386687043018085312796174885946923386346825244554577925780807056062918078146028413603664729162425542596294935613365996145809532459370377317165398005312518395410851198679415203081377291604568317244422606799428850585720125131619904283966865175849740724434355608293732062435223057575090894168388583699179919130268312006588476166903906560781644259047592248284566546824881721126253953813710116956340130793104413505634082113953513640675385277204738456465034213784222637521624712618635513723137085833046560913204475947144906844665101375307306741823211677980954689115457054344636506431092008717304259254712088181643795983546496792830892439473640700387655033307316913454653132830590436863073804966361327771908896118245663651377088351384221400696196520323234981410409842260684099269153165951425899194134263377183575121110111825656808599306280649308405379193065723761476962298218910047492555540392188782127174082817945633763611715693657864475335835039574822746727173477032629440653476298451480933287077132557622440843849661080852281804025686838535852344844779519432112803346817361571784367618072800833916329826251471510730013967503000464716528581237461982425925061977506556255724015190291550145254485401271710966234428035059222742100572985126441384638165540379851720228185279474287225828689793351758775202522728468314693595404682095323328597722202983714818935492539582844691287435882024650315286674979428731431936264940590532702475219735748164967558943997213868864657439732436288817673939769386280055812387874114391488331278098710092403490706120411433699728838916930105094268155615606822192741199286875089294577002197393006168370750359913834737835174066594970846698906790729970182759210786109980431578656286248417610786001253638180636187603534390524140149928952527364726178438239262231175532319566349037568953040137438912400641286770784833873385117548531821724570710605690562676868498826315764864461925417509112520024350311758224317641757488743865001817319159490553146983099705233080243670786796057087787332760111266140843804208293904441727235636186969022867216295605048407855270364816204607431188219213978646940671743237860407365968944000211749962777925239740162709424420627342661817590435465276011098284015881115421024413426866405265696507923283360532673342600245712188728941239829333127930157323551353735340433067771519701828941499735433514073007790275129238352185649610955868646412219656795758451026767611908986456764515414323837815142286972550481979342758308217768268264725114790444841423235965141354904615282420406182980067486595032680277215106818431785834825849811301604847125625537727383052342828982103637564454051972762034986091367868129679536352913573886263851110826402475846663315483135702273648264897373041190394550845311970114471665076880404988532997759218255877174422979400401948685146501164204158743607411332566982114979755742903473003402577733466245612370882951843195413111234828654239736700290896998480452346407292865473166434201871721077291939104025112381505277081325486047214595180751948904438237919263805258111906252337382704204676177461457650643107742374171030405906560022824339359038414716689528228190093678805584921552949126674928316525834442319752342541444857147874094342614258556008527492549447238714800389619611318413859881858047765748488410521719336179344662200888832215211786867402231396860771573611776647643637259762870958124258158227173558499900521513554361029656771582661714125910808577405613858350054551880485325744041652478690538429918582207311113187816065516417832065588231078735156227148730617990478515658930992606666268294057897466595030819312659956074420920380712795404225407235813088030659954041401626526700169842774159355883381853397047497332119631719754970218523147865446464673112633596818924510253000893104406185861298590068332010145760062337589869924237928293867791527428847740251372428523445559018414242992505273067526768067763330350583075938429806193911424320092329926869966637759712958370764537610977498543481658280920301296827057084512289866650823429413120048595461050329637239829929943759421302232323497065087788429741042229974907580810775085920592191970988228893404588919543135345045455355689985876566056338209995882805056437213989182924390135682524265558915004465913424360271368674838071224978999028521573536922709541633037114314202495149761717916652026656853667235697383118009678315874701589795357255437668205141783782726728560472670281201494883701551773909210087727278209769064283291210939767373461960865328853991043871933516134533791920917543219490784040931221031833722076189385149082549205784588827592001332719326019567272120931681814412732123023586655907177890793854309498579776472217939346648614589097195642052195504703332278035149409102944687998368097988893593215276952452177697798802236187333731553970657374543212659728682999638526774730513768256802553837416162648989804683112216167172502614095232571093862641470501510434144842003266005735123068734743959474213523289229016641661209258137617680225119957265419940770780997017509416200048973554207247096542219499775657659548819898207909544529690375384956809003700177360893075362677676563558301150942386002642953319128021675947100251632419721185769705392366808587820491519600045196787036070293426095815471257888778371311524404829564831828972256865177274601848632680063983009057135083055037212134614517946913614684973907443468851537680806035050136639397117014073274486080865775200387927741464800280096967773228697168224758183281322218719501006587188270011357249596974327928825582044362122073296428919689836700865634239481367768095022745464012942179902935514147270528516368526434335471875690426662799081825110787297304118860433254518128544174472051885830506394521732256419224140929343242159336720809648108475396711450195318240378074291112099599718967748156473321274844154823833567702175663167183840678330965768244482678326811081842399758738835055930216411361081545170058952565731100184871422873186161208719065925667807143545789709036641287355395204768763433218864779278835488083717375791138062634401105091555727399525235488940936713643668891882897651968655344999083614710329638702898342493924092376452642695795008278671880725591722662777635885493095606420937001487228228583286175882988772432708063270291404802423026171335962808710854890904517813179543101891966867843206477121720919993615154258998057352464662698486596655147480139635404236564322405546169420411730165387432920374628704954311154210747766517159505871710884009792358222250874006375441614824551134721878086066008594612297265569746366120379639357279049623917044480197273495925434396000113153263524301102037306993604692312936420704728941132937259140921361864851961544724795268408523548311188046021967705841663969443706478277379502962497339632522757830037048240085919559183730450012319514356759125550890364309359416716987583449243174733874120251873721479245897685287246364722977826658224466377451300175387901401594447686225175451390572855615597754220337538464653640100225699051863313717303375341947773190277262181977189374453931605111709957907314180825286716290227415330435127463528004143016148017858504109897123163985443399006429890893984681902143221589862240166670627276430340493306709444558782004400185138091323071859455317488073921454741823033945197507334802744057040923887090168267928572544283429177981448674670544802369644575128141598156403149015674225676044759792096373150334684906883290261254279971044955278555386050432953755526559252431435584467855563153048012537931647948786538030878311969754046655588056641347083500475610284875346150041423713417211077971248897929939084985705938265910722239950865843528540502558997426473118322043269359853404423001949835147168739634917934310010390518382297913268829333874993180682189700942736599809435231986080195850374462791617024762635481783037500525607105803501799381589494606348541090640477823558652618905052344881327990057649034507639038481151661193602130025817769479644709960141131384530624003598239812720748629873060194819249924773213316718854792624495068947278509593355031492087733150371506244465450598406186823539975368156954631024988803467796771426549041211361170112324262248097035622558881010312529404160068700527275336054428196407653613009615553993304514666853747442305172533471225195277555866646546394775149725894684512116956193475579734392270134357140580544673137037402786105205142310292746423300257375145738271564630909676100209026908187102245999593795797737096930885881485016734341912547951492720255117272315902625980358571833966852136153745082104394652767829732770682811509576482483072601336949553841525232873793709670518154921657039475824455681390973999184838191136226867173299107994639584539016875129034221114254963990454418768182774702483402933931437589986510531944708187820787706282310693146913664262815878508008836760651826539321776334133993800790279861411561529478378948394282744731582048434330827327591474007852469724731810987688725716788547093528488568425830414049892904117910993748377352388474128577976264072830576890064060570836709992694697995476169559555743821333712968279012205275987009121476534686212884018729476364264105796197078531046867489773825045923482907852851617292282228189412047765326734639685619952524877981121871694100199554161282194714135442765697779090783041122404778608335193484144906476909957247899046944733159827174972403522592648725794947137210092163276892214903915320388626474375145544103114252414330571634859363911382617062237366235718342790262244793344456250611965884908913554303783866367043149163191849517848255668123270448633848457104658757172369879213991156114431748609036587132862936479899125083770413018475589244177040067687723272985311305979569044754276914166330554855921137312808526905805007790935355609343073990968318273051988732257146209706440187429405023706324286184501616976101964060757305826667500180864122904883214356165764760859109574772921872871792110686168314819747843315239872027820470335488839004307548557195981122364610352236733105372334614645662187759455940567966502363081965473206677309889729920262009302095978384059991880583212984814480821135076454730760141892441326065746091623359805001338085774776053916356496912020011434748525173274625637209286728880663238291183194361767995947666667533217694147256245046660111092740804697837182556442326626370199335722290762838664888011287322082627764725434337448004738065057647107993720957703728910108891949926766607832428191909418814271670259619197776029720057231004525792159102308678222158554303735081166671686579425917343359256543528807492537477132001505103671529024045316680707771526813000605059397745405840607125169600410925116937905855999804302631116152473056249533195753924857242409132449327327136637610928696728835342677984994292710541792438543070222251735276990300273450899745911461196507923331318208267367751923731162046179992319626002477128818040058865670710008478163477117417787220504795535026735774798045694595372339177391021109233986503739103043750256609164468244352865109800585431568740445992793781685086040516158393958463716264212064975440805789053155932159770324749677548474278494172702633529926203395229839757642098828343070323312528154969674605288924833583431481108017735621861462030519698811301313489338140455532436537917357613746105172088466809299768908366782862315208926116814630781628259905685779671009235407658244711959045721833870294575129813863070265498772592678197208760822573976662228501574088998394871050231745668832306030858187805933518520739542739077506384405227465431748638051474544744760508876771277722696857063794709718546699906188651416777328945960748636377143631132425903789356813729074201890895706351494163714067433549866844565782168446279004434264291726094317537640834514839042860754420249599660777152682667668051741662839466035897251035518871672397222511006139834767262900472537939912715729800731410414758338929955650444782350312651121174066369513614803749730112856060208202664332906415616729941563546836876682672425618751746022269909575258307469736641275739927564128276606655516482822601389968715374356601027920168663545273766817682835029753931669209131580170205671791217775844598747228147267180708489769065857147016456688868807466340694858854430530773594268645795169718008012670504376029427979990796540982652039576845253593814376465118308405586753977416374317619809833871759386605416344051144720614217100269357755996326784434407228440771812361272701067884350783026607771391520962689295413943958839908642226318910412749101876971091124451150206735160374365411512886911271110884853801044706212786490662363438656357544680431344146267036475649139836277558996795195656109772389071627245095935911455607408631869276554628971481485471143588679683347434648460976748056446615492931655883077034304589007389586064351887614129164459930634760338710523850752114601339751829123786313670080607710223628606645268650478130202056802346981991064282215956534931436227366524568176978505495696413616159205233534319456850715518129799659415257115963871206003774049080147983324674778784417377397989797637026519692377867630582246833886253663438442658400373341885290489547674419779129191331339444193323680710098049782368834440278125959098040287707663315081569199029734171934239108983217684956040075810310678428371721314866131378718966517920410824165177812686183429164366840558784558506747887344802459014581404088448279050026997313799990721899446043199065041525214131459760355007878244378672479584650362027324405010936687765637689539279077599646649610988244851524448045452109694616494388799854572254982166949204556916917096253170848340596315365775118697353613937168618187800777025677944006994185347340030017357084590438814045567954895011850061427729581500631384188226158251363614695006838900717038061518618577663472757510463566432525980015599637465813163871232372373970219724587293851424964677289394557264799256139204641387772623806306349010275993017796678107442295222533110170755272078787948546938628825342227393602524148411266314273105263228436035829879202258789000119655808191020802235094447633809060645794744315952412707631485495499133705736366337526016300906916879250721610429175607259552751061140043209690098255663883244564476706486044030283760356532657780977964983340767844860486426508660840240881607828697239065572709539448963312164454565510547717900639788014792996995381751425117528156008447379151887945553553483047432208093165781901857298307640473200563521306266097659035706796466301524724518570660109596148323123276627617913302820354837254852411702914826385534437278924749633471303089657402066136255058736211335637939797092148018888597241759929694489042737294069790808656076447283363077634158331754093475085912581605628738679471778600552407430686695917817640378527987782238443719385281232662322194890244460996591213203543813872551985934612453057467742867111524747467474396672423109360216607290415270094363816983922341118437922936247415593112502821719509841803900685072469871697704615918071119135408385860989651009062893996218213597863548116039075226657958607351061717980163497818161158613866413233542207415334563467669088875578290751683147604948909312493990979757810766080982359627185116810215143181686724816251584051536000595886346920464290835773411498858846705821129428546718643975269166526554494372128777594723973541098137427020502776926054762417902050865290829805560122112255380970914065375079134043693723684905830136190909500059637130643250614486050854710717614849867373915492722059133803572938084466641273842435677186713005591918001766890023905672039291147221147113398134491662805545687447096677300474306106437980774488855724258295308393303005115585101543237487028653133542512795891677638934447565682817915149022522709209343748522272846414351835844242476679057479361429203024603253019085202367385142122710124565892026343863175079593652896808576642001444160743276258047423633458037149082062376334305765228140645849655425617715588828963789485598268238851918324866152531458650228787833646248293682550981399198146430848311844383918481117701584605277479364219862893078250261753082606350195110086869014771947975589425475758158118402566102643375291140121121073461199964527240969195790122657929927047665507723255661195901090100945778522814872741949153790641778534888802648842452906979690273684409070665366780123741017188902696206166278890966661429241320644366552247714447546958936146370438243824914006951935907315285133072338815495814880400315653169480785328468959936286809868405656785185504447334586627535951042423343295689324642045086215555394184244605119859230904644093293536735453390056210503166298790316006524782819290958517524534535096166510872059944335972430301091865009689503461358672113994089552704009613596376889439257350951822709971890443286941608172663743479458847530492970593625418551103922447726244460193591419311971418504087654540470049522868806866563808277645037872705823607750208429296100251901819572196357701072765898589004905237657434910820316725051004415521366122254800587503873423656958898615558097249766461931520517282006923838135833708878540349368128214072135284667321225956910991845107611051387316128091534993179340816798001756929628968333905194809083646787931800075065607272876018339892100292238268853337546955144112775669160321388447455950756584242573784149041495405285642582466952984782861242301538515236473837971806160773681161609739419481774227929824687837117778858805544653878910499308509659773703606657543792992927450753949307432299794129017461658800254823311840044689070836171337403026630395287210319297423488923043878232786415144691586887968708032938254513760339536646508498357321011683002178034541903636770191131708889984568101720817530241804920255896421327042757794052423464691135854797907969260082412402334124839031690675650168635810597420068445280329089019862460443229309173228318965185701541512929418826115464807071333874740865398490095624629008224419707318001143883127847194111269352664125485233764056385304985087374482735791480201417455805852007484948046791146605192122461920811514234189505690945366923661605199507465011380258469912646875898556337588159969028934215285523202399539661142236999973338469663892823780552250712662988160049099253915204562291775094346294973034673180291055617744760801345637582999839705642959371045056574967786792821423820022139828173186790320929465029376890658530619369882872121919286123058282295449086397753865488325056164302712636861885290378390771554839149413485594007672687298857956295377746614789139386531040859791546998614788996342943476443248596437751641678504897477352418176385144755990985231283718106721026458835262953682090855979930170853323660014537671743995612477620345874119887694360783241776743992154812907529330950627796720398699530857509247546876601804571928876370446178713018522840577170227037602167379351419219459661893461757040890992220545393561186433691267258953648241779995930463600270767443286535844917829375334356034065507827500903505166621065379535435740874496459187020830836160123248223498922852357040681823757568340964494864717640328104758530828987661820575865510484269668732460771688597133843043209225124891314711370782715834259000825948373226720435819168118900336911063450677853814597837766240224277193401528978433774340853512245076067974695044812725921970884268549949458814785544570590496818551235139432234581480281240631012304682275547658244625724919771749175840773013994451574117454807453038354451919643860562253382420399982070500169917583341574442408313856659479089510901789879049337694239714181471795177307476218596644877194333819300641213207839330166641912698063637840672146268306835184204090424994334326600373113718160392035159817199034408423640266189768401390900780474984844096643831472141659216431634045793729499469881103610423551475817290207302204027956221756187775041207347142076962245477532381575530077005072827283022293149590555834538493286116723078948455387555912299817533544316877141734647101189332366651211176827335377850462835710788105947932752671143523162728907795075660001364207209634692186767649406342724121127295435605140123176843232837638849372533294406260942332123455574521546237202328937373235736420650260053810494102904279081537723592368752649581403341823775262741074702868665305705226543185519355525279019457869463387626546387442720357170885801249492215085181967805830612450547512986653519605146819370883236355694548058302767646222749655613676943741836913030644061651542444462680775571709066094623572500929434377065213372762542660406127287184030547432260592700819959749667024536650839655334971427572455356931410073459725073278343418750587735828076165500754917223209544209194810621124386245365358858811456392784750107354072391360517621441176866461516613851581342086145078973274398722324901029471442907894240032128742556112964747506260575987898286206368102628631583946729445662873680438561066469307938085871027456839845995159568801106465597286807723281789701646699232909601864243571741215037672488689917067825040680965494068485454899005158948297834889278222292360026258210191275382723196253833752313703118018136216509973281182343014681644207131149793147119467751894668619814525600212015485676550521327571779579105433665978259351648483408300845476217791375093273918768440086338630049862423995998693517967205715090121175673303373054280346239958987392804274556724247534783592798363228725411762334531420746720765751501084027261525537073076647117145131608964369943043667586298712401519730148858378535803383256831622223319593457262232638082998962045861385095787139574492692145657534848934957533939711902346122891816591218112331984134843929855223518017255155294908169202706433366582547114040514817415274881394852613679479400158441072371163442997727663250414747104467368572778223022012425313369634308844227286867320969526918925122662473839460432554069772896064975636965449820192789779469150056915652203249278406062971653655873144631407104635032171993285851912036667133189911954260858235394604201577257393877469782859176204853940545340890240671629692669723490517708709095738023371134588760664194087672952789318515300469476864396497427586490756292156284588708813904399371515603689258674745233076054642488117546043034780941496993701494180247210144740563253563250701410320265811773360396036293424788364280432069623563360031373248584629392773574028658970806083257921327737797870887605649169727326733432728026385869972360055580930392462602981397573087303734835180896628140598486263580039563912804875427573827748877987619390632787524165113638652241918594852939115606133933733197163269507348854324030036849102828033395563563988976334809434379055486866041096847513191366697846271649498852575032863302863554371027122576867011622324082392640585882392088720707185562243202273747536452713771976967505078683822279855908012496124722508580089411640265226305939675649990864343162243306247726970166715154745592376207066842798763094347661242779311676740915768596170154120507432405262430497220689119191215414695331191109967967670354550142545640033023870513461305633479080049196017230308523105077428168673594084202142943477924549511700659616762159553773268065764505598164964281964488252809377689905975792351600101446765003051123404196746769046372088954104995718304645674592432056490109562748761682705012657482815594647884738405297085340059648228429587814404575991021274457625427455582151213890567360238388212749257376365654770264487751535047439054271965834656324435453338097935167916242523200002387070338118667060398366994464629166786566378976393809768333245019743661063651640028137976176562268385656698133602267255855922790762456091162594898938239130092642268669164755490606995345189684835448213761000163134083568420854871005830966277667347178575316865247496800585654356168063043270438376128557332583142084594183636550548478695070208176034901142852872509111764574880700822443117654050817814962742284399181380747750926060202071664163554409834023426878229346646072849989354375064247134225184896006344455049865892282608004721732070216806502137078883064384705653821682695051589200378859433319449372728046786950615196603274836227208128735163115031854931658991156452178549515587588650024121669646997025368913199620993392280352970971841378544251878699518217529333847537209343961288941815568700325760156157461460937342871688267166982466048143603634685948757617922327169750775273700308659634531539478111769568836979955693290870449933787876548594519578061284220764806816023320363227361998174015337936647007382147172845347444273882984731556975519898710739801641292910073392505523066551872135567165199903421027543990710983883711190034307815970561796056414043308544790920834272607898218946357914635119974576829774687069859373521364350889969320884933090322479889804092293117324570676932415150210837173171016735810706807552712894703628386649766522808197161138902439526750729127265878224486061018627864253395388057345182689152968684781993680855371403868505923171740520321167046347234991449060683560174847274086421393615428073199323513635664204361709708167686513133822385072082808679229161752256864378363132151324087961102044618510790869304532133082666280024796156664225764095404420247681728026630054234017261401023569794346236109173160712015872312002326299160082037152051908593110471231590587045334634249458074813510229445048411785842622116894066235429377999598284365912592929770091405700643304125682603111763222984468884565669670212251171505835620770189467411041286934633290177374702901386066831083532138564369395188015028735421918004324860597405897005174920760882132937004552739323235609346006348472590913005335254468099490898357633319305099996800184585282652864888916361331505212303755570120229493089302697539644312860387686558440612323620535859419677574553571663786162139930690522963714160813834627542692880470097486629295896573292766170247221392610583511310968167542481307207329777152977087519498403594706508550641107413361619321724054448357450757591611008540850923214953749296413273003026229214449921333926885149461011478605020965081119217911078053666644643895135772864893557832119388832199119547860337519600756435485344291369761960356769746109292646603611201610216360440771219807205689214655925855711673105462398471676063072245530171053230839992191728111096924743025865952766886675131900583009859993503002441592155605045701806972012462859713658362229690899173225893432994796494550992435304513714578740001699192404002122544924031994210975796901426881840981570254328469228558772848875236659850080509678537543138182313161561075157355307472767294958424924321296077112800647741884712761206853598467663641796695464337067500642403543985569581415743490277138379574494720710346639187267074139928298581536915302338680765088886907879666296566373361496409471310359400442553495898512904000711286032799096676207405214226810081593985444586131011443588547520183243114399290704124007363178899096406602575789022249759790553908243791545737390298248131744010216010857601264072873486934006620968503499739305877453727850814661452732128225272966026386695699662943529390327473245784791037654105589105957336025382232398175178713149887277436901197175756628656925555239798880973516381911376100018547706711884082255676711226979502653390331694680405472525056275470548889781052709439615334196263825214117110725247714669865805846312288967211281483191249924751784407064433587641278288699539977351754701461702936006650276239446647600884016694724638767309148937097820062483203720716590374449507029008548075115742804491318851735583071195793645618124739686949883582160266865752459055739278125057564999700331941563813234874940982013466913442998251459292286308547216617765706975194396263524398440354659145284742271463975080907783400842853043055186491824314683985089659055449202730203156947498517734817291173264079299670216510233551112841361347388264696454752692866896463305215948614029491944630788139882015215538134362645980208589871547055254767641594940079741681573201484619268371842725819212158661295924791513173565228153505711943821153792402443804409371766941836947215854488272613590931441380167897047358120259656870553907811811706172833512231457420984693466157761749340912674071245050433813150678615398733169234957745154413257218497082862132874161427142822972723882516630422612524925024408497681048262508277146725046301084735906730127133567325511000184595711946970866230757224471470249005584197628815181361639554923830969476336740913563065483882994100270754157709539879413212691690879369883854182288396648610445259758885409939030339341426120849471968864646468594851086377046567961984225471352179897255506379176850527417517024606272533315901025734199443221903682239677863787296167633225149794230218210874816548104688299535817781167934599661685995399369241499591969038656643825923688110502741168198386280737674459078109918321742732642760828832813752382678552619300991173550464787800709618638852621518994497103460013945614092069250831018299793060530269873700441986199401162909293083230839543334900774136019265188994839224084404248201479825310853190956595336562138537992715678624041398057718820058090175086097239566634242150067279587380433609621499858571806229112932721215765940754332594713544217399933401662731694065020710015750803526331073082446870101592779406330675480492719623976146170866902862995617296022907065213098349204613372528023324010740498360561233298948856446176909594729779465312721475152306435423104347771434707551824595167047727452700217084233849235718742092255859153037354157541865056797972129857211746670850174735192751443026016261988640283274452559563400918051375775686982652980091702268553821961398028098352737619070694116292679843426610300268958851647435717989643605803839853861783474279299267434205450156943667648138759859282223536892804399976100983781071323722961965935854385739698575408548454521433188958087351364644066273650719781468580162961194796382856765270421694859907855830988252773205591598305962753811275748926010408529762252595986793264697099721178560465740395516602154746921859069184801484367733541657518403200004600543732014160467518913170203114703324376231498284811582420039542129406145605466498150609350897713267643853007543964800562997731042051375122893608719289956449562003800080039974680665528480279285126482345511931441130194181424093673507511910060382151556276153185013566595959166804728757953917034297841010324544160736544046850731508154937056647738731026379184176765714471784774683736107584637626067437240898129584895837284878202297220623438351265131035057515892108727708807944111485549323793722666854026397006735886730494767879924101591184598198496776322094938568331259497822199095558869278824938090191417826941279383479754867085570060669783624616078757905595225225095590178619697150505081553537506324525450991160270654958312919396005971689829351653833059943218950600171432518282502432087373166629934218762293040636238119761828044636001042314244943227152234485042581826955968542924576546307409091236508762875478540543338815523838902019738310584135222669343067986142848594724425495011165388952061802962143986884190393616954896118885160661762959721389823496704279990877680454692662186204312287259110038863659464016123314512523086628806382444439943901032153207545894690434468910848813786646106438219691592429898300372035072237756006116862446045419231615411772546446668390518771469979801046384561823570857099650234303099330650775802080254524151503968329030822864264248137776311150852265528620230092395628375921034988163688443978105704475983248428238947693319076356803217521052516460107738827529404023468366357966820135861664469499556295869026076630989562464905147910127766280903932377972962396631771515763323749189539397253786788629972419945669040836305055223607532839326099073740357983738263497801266448783881887383675609473532187245366958495523772465577463655067497345307186124601426351281576079316796270659076636099977227664279257590802745580134244211387073410149413944370438308350473980529652741171864298318242727916835025674018724679406039950915802302020656425799045331299035662075113206344878933654876988238392889186059495431111061989537434481469524653781728835056214941790394569876759438563849504761775211719327115667570388458756210106145969186445266940241449979855623037859904064950244888256437843551067083098118155464763349699221541486957727446474338254595387270338725995114078262133846422314881758359423600041071330146253485855846115987521897911776513383939508487744263686033145751990041277427364881889706214708247907215396945465202445646576594698522112801152053379327387083647667336933655924516210746502450645249567588917067317017219455128212788232417315228907188061921766382657158693756861505124308849644980756129294978413463600237300171301100429566874533452012877089981234941697745419782889273496162347372260686705002764665919242202098039321892031587611386805431918016371055503427617314154402088150190916304058974689997562277548255558732380310107939471834973933175544533121765764173629634694179002586054928983852193280223037461330588790790485398423849233831741524532456236174812490861469167276832214689583794087465598768365265581413973783233443019986518368181110863831955575209873023394823134224581132150789401237144693264998353001283932832789545996906783809299253443275987107523134000388207127597270622423984665367358993206488062951936969509254241609954159125320243732939957391783839624226386191097477303843862673240472944796928010350515271791861577492341041870823453357413354786859113448495388767571511052589543654859253616752799361184613252819020939375471985577362680503932446622405331620513036831221298445083536883282037516785801893277285792121346399256103700790823115224821663563035006594211671716146630216345475476258750177999321000553103200117015568631375078435793117163317800841258373312523121168731689399984402638185856113004359748477689641531960026770873924207730033970191394864619084323703376196730378474080600326707781734094018629829014585684952879243332154876892933780698264590599451020782007327796965497578172269005540022981735413789804385532880848457611168368634501280651153124316141896114611950722667409646469767130067402741592680648472158594506782828518571791529639929603806158836422923527587451281610531812826419231591901284545836062593319230264317492419414927373514796447873832930304514719088449604895750288486524644509042082171689822481040695904036214308525397781690301067302719065626115872006133617951425175566477222574018893128074114247895289883768391263674414744375503877261075280189189444389695285893992547608082831024133348734057133565170860499237949626074241429418633107221355785599049646514682033820888090898794435671390654209214262046876225453003903418235178112483121971969967636222107731182708028968777408912842957462207457667771134422757996256402930551934337928869020678185453413913975471230830748208451284715868077723890727801509098096249420333419049977682466427437314307558463677149005809530498545902894296263760725414404331556899727522424822029280170032983338856204884775309351827380232749986476211881947393436792913731840531237143578191498954064973063195594692647289514971674938641452926942734569214745341178196136821291237058983140913335086349504543563249162198724845531760883976865023838484548640141048111470031431309454136325453947733881249274555040276498331406937880903247706489029450616589442893407057984765624506125604696271266185055797269664163926665178088259308321498836153683085142857840744109952055189308624720027337156665617195658484551430003383837558301545967973511331070357183078634380397513605759285941262416844338781806307658197080695325139803290689568865497632627137132845372160000397861757263320896139494289977893821432346537772264855798050146437470348348467034568490463670295003253011583481910842394586406428174599071018955849224512889480700558060488681743385847471157692949035020407374897269859792371055741031520671862547133153214364570063339078532745290659366049107225955898463647383593209266151604827748298093439807582683971515955267323545430623678635900197866482812365008143574121809802851456705513185458277742187029819218595038904293965314686936847036469029652234076135258795182074818359351243905181867139562540215421249682673842642570549835026529793606837331813117153345978728906261161235889188556607709953620738378826777633005217819693453908671136294024185327608734713918449914693472042007248094139793691157293533560761679014790511894588849620456000877362158650917658856432382746873885262533603660031537918798844098017860450338916635870228415814907542212097637725805515637890272322387010763147226282883858611199213787459633465364990065534890424388835568576452280902715261596114755895593742960929979229099430764559350975553336652778828527822130335962484163499571770301154837702365112144141905718959301313851409065308931246719194017704809567388653913883436826985888948092723753233717314196792531881223740063376123058798075597712208512553536042943296950850320651299425021836935833428143815407901061918175976935763777574745108443297230035929162172818898143397278104860416334991382523966844556010229825012485266368738419359491068639651858522905763532134715268304103283093249971499433365200552943173192180743243417652836248740371051477417636422190348063350231015361597590787736392286200186723975055485300825436639296424493424150904592367387636893100430804004659184576631808069593189945278612045367950876981342042617803527936337859424039451824594480990083598940498510552563513582687524816974317771488516712805518497477955623703428724845722468506540567031817452243605181664825508349726396794051664493428893637387181924106217968061438301494569957930400074951566509945790930779690062119100940721991943514594847398476058048198285884536242302349584572781229659407353726731882593981893121256833148392024438438674735361711378550528810508461470176206851897185004999392633153805126699013773017805602872989120889215628672492348736733540793161557526320902487950917123789323633960936082775736835083501397955250645694640670331123740925890597290821440882223127935603778560274195946514047662074609583448220314914559727364729853207844781291514033690366925248475642387777762622833495432829673206783193006535331096112823256148891494967060836854099270218567155695259291051106036303798759322147076158074048309814721868412623470837426728116971610038361091511589460034778320745326359830336363001786807006766098643427592258023734405935621750308973502984532999126517940765950318911362132423985645927876412808497590623911131769613644300577972937068767542007579416329637367409937484432004009139675081679871522663341427209780117195735533522707185265027216746550045883361414166860973103532572348627417060251171208744777831711909804301317997546019872361050802049901404135396705514698024118276075393276810865006355844365054347091821977185874104128607058188364180319493048651927280844008149174679011562376229305104166753505167258267420994458406020912629827947238389347955333713030546627649532079597805517426664217137832219266278175197478466652921006300579500322059703068241127256443818511412231163972426894764811967438292268736102755004393461086997801329607824794165945315386264042814694276737778244494330753719433873731143969554346940053740254522164676593815754082382209076780499861404523331890357652372459161100340774104694062351888965474262061449403289642203843897692908391114245771011234128270270395605031337072033319734593460296846775901015263469108203342699684396559124126199132558766149660880273554175993334714684107048264969513309212070280886291498505366914037860547497232370357062105070040687576458470400688825903334556719814061051244433180811197650333682342710366837646936999592155521273778398002927251398146843508169242152698963518708505311554445237495299594293379522981213342918648448773109563309237964792698209319608839773374390870025565394400126601321339735791242338595060206537943166536175484612801933735595765991357794367655570247815264808853973212926889155893758686403632075725656300264605377150229250330396631364083963946142906424048718154095747077911872024936011823320227345656521914717392309482704040560171784684636864593033312445002972289761795264930583308651436910483676742702154149478382643398012107034026440109829014010229209385399421049678870690013279548681268316881551358485592145154709522405757033401550545845941794871748144266317839569129926475663274064749977350150767489947802823825305215507695880797695846930359185381118290703107200608831874503886204795776192227273136959889176714737762807565105129924607860836164591380529290231063905748574252799799030722127300476677797675988106051551480182794930464219934568578738606420507325591993653593813259807147438509012284048555030350524705523414165271613023193828760654099625490488736938133869170208786499552901475199342816919805192626046604028037821760714846898233053740641147523038863185313722182152327633753273909865021919939636069186046863877219479047614062998817305716109449313765442106094242506851469732734235723969346501434480368741545885677158533781091544475212494867736815930316846061320428156405157717042462564992034968793000548983600384158372094473846850557630360397838469061756099751454242227795163170088841784555288991476859572702853027673696083445089710908437339149926301655912020604271364007753376912998493051690135055967652489378631947772354921060424681345438646735540428390835053717542403615147520454194779045351941855449232191686896218998533901961698592530238722148622136272884187094888170380373055082678869563336752028235510872564725410460534611274003683768717745375389769588676742953922546969658058298121210660032677882441542248458973728342902344575610890968928326366202888262294928332267184821254814348113216305750944325108945087982948666202666625923949819875486557596718596917872168358942842307428157242659966394150979352651068629543536715993189640146884750470998787497386786478286246026871025500502440925526505316729375752488883898004450462210585680983377267440224542774449058263779334863824688797252812935700186093210309234460642664860277249706608191951358516847923692238468709084711039067399665336160856548409132451476215481359943214843101020754858124420765169746472924718464068581241200103292445345227451979568057993840194235734761481141298149060754494210287831204154473263719287664848909281968149547955568426527058768317742984372186420830005482156080388893263566075231546865936669693723309061137872805953624918867628153833174470826468256364916545427694722901380389969143677428158712144754529171171061396173452063049368556557448910109983165162705703430507423252585861040931798930892199489326504234603180976939305420069790143633739226570090685618813852398878384029766976172018773665431438640609105236100807039049031740144914754783046041764491839631935229990519975848326794793102178533289768813096129409961495435401997839877354139559828188145932428402120882945109177758196604382772282456068531861168788752807895179140460979829918149016187879717451503351941905651532342318237906231637057634335373135665147602530554002734136768301117275379763943651296079765103624919386016922920381356281810543807936226019294659317533640523375241371872148213245263295495388022874487213941345299742955322581518667187579811464444071020201466986673713399204122713141406716005565442553180856178695346056507240245060163860013499995951830019350125538189737349440918022920192372168570597674327288417704456506032803063429631545100501633614930296811499217483857177815393543274207650851865656211378778027292751746775531328210820965429938538927405245903061080184273242651888023620875027219239985164173591359643872332793730752606653982472936374474218194619989367045473516371201533396975503488153078424829673047855188462048556670879475570283976117407238372321358974748311276374622032211027726586040640867067972647070723687269471408556577782352394817030276055080718517623163290871563209511154842732140341264471593781711628542413123504950755920075550443995671843975096174794161394909702108076541184309069908518101622833643892542190557966136212138521548188864970891028439149081117699335848883242823044426084916924714087490284360108485434308399208638545130572877613586341273696028626098924946984291505395116085054975048452800040657101733366339638771313511316684066525186517734342628331376384365180603840922433167116447431004385908612257721906754181874886088069205275068591933495536913023257969501941716587936082588675313880020895711846917848197563494995168218249428254268013433163463152641403215036411618676583894152152029536023469994402003339914752551662861404665424234406223803634309076645048064695596535847726825708777333380043518582697687004598802935186380007589490855449249402789791046492814944781879454832144125697823097612959935613063091329615296557918949369895947951921966670219930550648676095462193976002805159729018353718107830374089503609702167188418459295243974919442336255229424147482129857959341349271726293175967267138406538529927217364049513143431497507029247550416199166695752093892879311385413565181025366071319258159166010599766202558319189888295194351058486787167056890581071077016129573346389872657517929103015197660163360896184791405968468032275904587850939733143447514275763485469876637756554731804526257553538917004258025665117236865973510286694777850766838401913645405668240855884801733611750028688234324526076287235496406496826198094737799851246952889099830569834550244073404400570472842417933400964363103668715791534986135656681047302615833820290129660283102192136128747829560972630570973288314814955574605405157566325479110568568498606707142822634783187313889680908362902540540392733004574527464284172956979446509897865770948033842283213020515693332319025441183788705369999782021834056056502335558095381938571932875144374006786924223623409495478521124757443196765392227142449629275016914414212288989752765443116859160119858575174299682453759529437017591947318945764704863271528944702251299031964789685389450133195003135515586069214935465511610561512126371102618123355853690448092678449183809052123589760169064949553404594794576257933715399220258105501699170741447971380027701805143589539730184341628729045270964462343066168857360938896262335089419386053981697644550847066696877947415658051874658967128946991584657891923902964715504098576501950548596523934293791762575685284758117322016767737558957391614267222734167750856056261198632960165773299193638159261763531471714896509794096184559876218020148609708996670772489187575445833383852075239761800197073178225115130675517570286153916858114273575873058133219578254280491936020202703121688916517929252378094624398424736758909974335715459443233911226104915056831968391983207596050601319516173499396947090416667648066491239931710208656950245990081521911415336958349510993882510587974528073561386294661584412543536216261681509680055755136254775397747198598131693539308398356385339789280257583522117939154024330697998172649926789081125821466992843290126382706658216115863282728399929834797885431908303225083704601555126989306742259500471105650619540464846653184124380011328692573468738101641427792600577602869183257011475179949201186094519512472144962013406423486728897898270953417529662962850430314170583002594799434414532206307278880788457357020419983288589106045022408682285630681157343607945933748432755043640266729559892284378336240536548723159798195717364143899734746641714936279742160916438836674121900527429949478164028688163084946855770493689106422987691710861664145453938811786338164134969203090513872580677445507367469954527694522510897695356566304432140523553298518595676770476388376029636182916227518269236454456120805692296037914431684357028690125200760154390592603696764013618528567601406733584688170489594105544404650870535837960517984648703500649951552425876989006758333714072801816294457943441637634380093629235331146227176048735610355119683991879587767569769092836770317045793856187110683941770366764180527350998062961065712056719876564728364145219667726585516123434256559077672382981214376812880982707660324473289401733113467871715951348884507097220198700562207006904006173063367383593374358043712535754717612746140203264498772508839928391316070101566648762920858206259425480305329076210046571179509798437497367268859704946816748160328919523791011870506943020152119974186989089890853735938981614718167747375175325375714901664980563444392672036066195679693101997257699006093865652014636798138379855149835044848956537237941813116684867313384065665506746094827686262373151816325040850094022790408170324240019248415063562321080707496666140073480004143191891455565506784289024167921716554423161610729421852447563019983958487303597169575572461271352060073967386026367879726799786890122051966307239266354079483805349758187299589885591959277765667485277073589395755439357520757620341458675253823574793692367633983147088682560037039213687212431977619230120461714973229369364710994634901754333374642992084929715244277186013475950912465774738760147008756653037707295366143455911694991793761808583202485635070632191183817780362387994061650142197890461468090054207228522699035023981490301226186463830312435665878678234075036358366028635378902134068266299238425942974538393709803414594333771579773117286819905650011320130303506928077738504425400411480329386447096348457961380090352996537249176973900250415408803727410175345806596776649539446271787684924131567777783827419680284598209287733663236842148909277414446139234189005960423343637415301584321623633652510490384076752805108205108209549937150172729659170867990981031388234780089835766100510963753528406833715501720176626955158526096531450936307637955617547614154646776062139137723161121325245536537950818729715093794795729253775764842766921832639301378885722650313164680292245153279593891193886544024257658335484607335071496445838084137094783466182023310104796081741223026689641095351525552333763550207416422474015442779216522656743624976253438961397688773241281428887795301998309245488453106259862108021652544940145592034075708492785822458485477471111705097503049730790494766145117464216296357900712153839724288571505563648422710237427875836376897052414450327279001733767462736301828920339266835366147951056151199622639494747697116358321153207265302243575282100460611755851037647779673466652154879215282253624826925749017602216581226333266430074661896308557131863099913234356152496821451285832083601187470699202314914484862544267822691039351854138020674537132642270246425859028586817970414397876129610477408664673532851025148741684955348438880354437233548123462205562420587309982277834619604911855443648514055722308762103891039600131714318209856876800420947654013212532091932526759518276586320608805134583148585235194171282317056172119751014377547694884264261016448430555158586803608301249079434682404272697077452248875554797974509721588202776865188040015233970422004303890214163179627512379189467276441686502460980591984772518777636763951071496827683103758286529053016229291805812624655883941702315934723189544964407547628962878387899291128030528992567997243472618930348140115321468171245376415219083604884081411576905674167833654848145336486050968004881959413116306096639096290158276770824783315002948102220437915624946282495735866716088516145939180827313449038384189539707284881678527549580554254211819596517035667452778415278859520114352643202644726909949976526145336316854334076942919632976241817723682071026449010811735264014904789898737913709097787863332405067840167094934436342163447233782555911447922863788563609749863031992380670294455460914659908916747992400477054610738669530263434536598723180228500201841835540948627956664500282176786091351751964810226811044239419097654908535948372923061569502522489632424015658246753995612245415332654116358309155062590576863381686465271617891401325064035432530505972963385228749639616439230530786460000940853942178539519429594679357379504899279577225334407014147115607894914243517170232372712006712391971855509812992338088159613465493378943316432561729540516338161605583702613684232259628093814473766523345909372057999503056505447036468442284655480446332197478096119609173109424807553449172823021243189476195926839162929185094561371670183007098693688788086984049126043361880535258040017732876168452806183411888880590115913277753877087746036560250671080501077337529363145308740676744819696044187525474784777016198871826801749133730155941719165049579131259893998228594876828236099701982303424671158105207018039378311091697454995448481757168531296581149498181752476901864043358985757436265031664754245929106632543193541032547180536451893329789429319577706903036819138376363715026161551090954639963254189905613105600118327277400022742124051817111075249886339128501803713755807742783438457358886851477128677776436592104008040084411788425198997243106033587747904260525693606725672712044237406861921226332986785748063944995355146381050302979631771507439327638183643277831203647520998543012547499651625942035184720921506531654183028332608132671625911622537387766155061378718671975076319075321792037582624075296805042034549706802893316593798088991207990174203319019941338727484835512224499492582787783825875412728441252440492342973768910935696849550313766806440683102078588673300690938864053078555589486320028885599022935502065515448385689460184160801073115070704923990129514614372415082192879141337940007998814609749712412332816090795745192887870169918345790371136799781402982637566566941620507202321161076032373415440435699538557917313412183772047259906081057951146209833296806806714411682255591240606358833117413775383260952514604978815829276263183046350308686353616302205297946823698268595023647859088209440374875095285182785703006896558142027612382169050038869025468186985816635762162914161511987814027885461356365376942407266373884274681099809581196509010506107255073602716736203382865716564818287762850085975745918190242164727831981394012702192930736644865147051935387738063504120323320017085732240003490298451891618464829118466867892040659005934045629882087269414587793193767550505487494265172279697942288624567656977852255498200658463904599190292264688731525298578904942332721504966384976836433945653507653651280609213591218021795118659213511356065585889286200947665246466484742862931271486981122664068630842356545280496116694949873300113368898907309072060352878182377712620164901272478507112687681192208575553722589836706538641031853827076425061655242444606062417209163926494852119085621941744232938251652860073873224623138111970973484177194302697808123642573378303401742845420950070332226911807000640505864800582390294111573284507697414988092766190415144212433774790657654214969650702319077729797891549059449176514956701084769504100960425986018294877427672933048879970046199797972900274757582911661972065510380594358804220883939653140390102280879642276274072826259036791667928028196090681007003939027385300351443336300673295605082503078401856719748454575465333286906857290950853117021968239353378887173945649894234814355539754223581876840053858656962937414939026735609497624337125399694304947989710944416991209732646265395823643996650224535192566479267029116456743912201457111856561834312758535588434738745025342436881536534175893986012850641843413606974091335942239440898420950684360606194433138951408752903068718988189043768762005065576996025869117889326663083871043936573236054756273417488854822015059278534109210662672963538536571803214078056247068187477678421046948941944888739557347282082253554623410423084948333235473465624530758065546424221019538261877396805875867581638048172479635489927314942735932358878839512412029485486201390053302901327923024672030558939898774244861990095330589754282232978616419537996614407634303666958294513095175101181308269998652061752948192917936382911944879528686967853064649755543392801660459383692273362522638353628589921702725952489480232885771389231099483659975561946368550617870446601927781789236070433434240493660177262700665621775142857950945352446497870479121308444189831143309701619031261922552434068595734385155515631696836241186468822675595943032787121789479019715355956799327213800643854254975370588711325660959545391103303440414501746014105155938722291532236381708428152314332918549433431629218925951231287217168655338159780052355733004245313102996116567812906752876450135335299114884362765265242508720382651799277829943345214027273223630246787387061699450959605388075190268203331749873296250369205233738915594888978832213680018084939633584259529989629056545346040513275528012811322376074647243356811451105104014670923417950359350495028068871596664445060409521735299279622596644446594420973478944574067142773381913366113937489096853578937196095435580560711107082626472416289070370723451008262708911114485185685078444962821456787507802643430335891239743307325053147975448493788377589862946421681900171696387698806608136787672811524249811212877441665991607944736351002614145060736692232093704547144202836207141915310666384573566441170326154456268526660881985445668430539217598736853181014741778663583770184970334123543267740959922306553573665554885211894925228378105786796185815289989582107233865712120304859266561722295143643849925175809778921571221090957557722941873077166425505386470438671572326693043249241091523010279969952064425145541504960594747300326902529755274734781320986237652442006659412088609238509007669085354018561339757028843056140003874554179047762582398187292542524021033613745758967929231609747624964146958972657929421838221899090994761478626766200018846150408492866927321153808506342107363258798507753171764783841657029755572822633492632567127556303676324900361360332838152073903194413487163340216891971866175024514704792115760345152214879405882643061462092937243575761787675846746593502385940106416471652741562381519597607615726094842260953547065806593412127382906817629970516317797471825842511979442881317532745734562659372453252018571533391072909146726960556448819448915709023534765657884502337361855901460168684308096398260792076995504617722365715836179032008389549104692335745892014212629297610721797928067612731888101464784119398517813540768671239686765035627857011197908512056932129452629420118473214997808226188396640199340017857043439779674946033072206076706096815638742773095034470549478238088917997207581538017247315659361189680175401317118141063503540359169802042117712867026024838635184021900898093227172384580719682213163105382535005857826829742038169310030282162035635531754739941595011951671202524015105941110052244550713763291013251853751420389392733775164948412882576306506582900570549810267051812816265474504834949234598966499028428672729714836998967901008760690831634363227992733732142066865079044188440191309704140790742732415573284369996098205380671464308457981758451798313995344448312221234490407218469240716614038113154332676465506632383399740865786505789070662760101648708956903284973697577135887978672849986903949841880622023919031533166304096406292156109058542726064759218883802882853534460679684423578371065292702628341009000992177336635550124453822603100099062332088442233827102738140208526949062671310760598324171824212470084963653871451699929416061427963364128584436448089334845296839613936629053762516398544102795691730036554657100457917966000125631140936652820613005827345376405775995099418837235193475923203859596712218273596305634132185828999166305434137102682958661155062574245084730530185789777076970367529518486159631788927000903881364558022521810189156862842130253200722460507123760635143356901757124010850244257894497597391258634666229308245284386509688486593250810513585804284285350142383250900404402047176160172037016212147481353321399815796068441215129830249709041298768973259817350712806603642726416362066894617687328805781583915082593946935708824516905091665357046533435997047669885178149463717217564937075737567758789910358525221866112890631344508858347115516745278062187568550164444725536210986505753246270264437579117253357603753978655635222820578619979779876188585770802376862469754114361813670618279527247829356876101614674996050840003526557136485863369283107543935177479840996304030224384966030477335954970265637636362130174115563590045947017116078286673267917252378465809686863610016552789448278097050448373019423119654711943800477141566747106629048627375898630833906633654849076252124535204336312852933081368888571787722149281375526983293362063880203687828045301712230168933277951747128233304762134043061943760410572811080221955292525300797838210890684011385102354346936648463462456251464440611822248845509464390381277936022571038013349311490480585876263880660958562246130345983050981844181520166705451849677988716634901922451718752075603342691123964740075228427709623012466254293067373472020864995848206870996665823742113676076846031600777537927070716376520640853847154984779315133266690166562198717955966964024036222355989862657588963396778926821017840173408560385301698303415214951272189481653178543136862526037134417642356207146057189900110949041404544475160229506945280530069883166560968739186424059296134654405041234422309916623679423454330512580929416893033413663613277986019893652949599670684404012077433343693128081129866949968235976921749314914593710443895096044514452762337612577250705662638153085802671817312633116006493368215651083713979620459231454645441166409694766664182242184511065395041525447015278599660428187559473749368561915321159343824949294010171585300253316714618394371832731798786318861998773487807239867655116803322099622438339658725456541612526795418424587494321055743603776782524643189688878479985552946960078248535638895155685847305666299504557208583600270539758982997644951872920729358717906616877924263466072281215572210478918021364721025829819646166902678156881017396432506949205542810337581868464490500681032264560859576576929888408688626809152342334578295949784397851418225762844332462723395967293009038938130871127178254436425059627936016441156974358049605720912971017521049901330386706487570899341935365716614049786728394820350600928147327080369638543745190383297562181819716664474472644112665825548254414168332950904614297416196721565844985130865562534089515770041266678025036897369008110467874906349992317222542047286121797839139292146191073138924142385339717108919436471627050672402156320503223316791794470687845015093522219759099389572577997506401091215487496389243575018607399871071514288774402376861795109602995608527774815391849313973986381782458256267050624223818268784438323317890459994968010369433634976910555379543888105887400021857233355149011666491334029855921087690265785659354265769891822835726156897649691218840403507986746349880473793087217602355422654997668922181126883526731823580655681130126077408905148816834372655523870027252389631555979977160869262202754811251357583162427039735077005811274332548873551927452554597636136826674400487800236950388090196787075062824742817684708996090160171094512092636987017449862432266522504578913711329701613737913333359554671729494441410638326442826364127020641515826938862965538665690849851905052677471488115200954439571056287770337055811837054488326985190029868249130545766937710103015831839529423553300608473489300928316766416003301279913928317543983964706408645873747122295097907096444594307239970471435431066004450053446731211693705960072777033187418033097584258792876892975887585784877091987513136841350292420484707549148987547373244311783227879850870488884467290352780657559932262375294056693103591171513363859926900154899809348375805730279677698065245990595261594308409000484327048745582160361037699518617781851382753921800277319725270776159623932632968351729746111729242146415923068571472403790988320436344742819223596087745586375172455370339568914853300226611909591892444279621652840022871708316628760608282972893680318763157129754491316992272137033884674939231584330206276194212098274567393974983940586617706810357592749066914785438178685381240656432742397283049217142243375457548728400394340263276541592862949336885691047705996383134266032095484738627350118539425069574784504467425975394606273069314840645785503510205878015907411552502932013487817819484031789039942818402466373851511328924220233840735389854761332095795257903797774962339361009981333870570795696860228858437081316183198025597465464440480629450223668401346383774350687668854016126376495530767567362696769291484669329037959410211593832587586779291655988659579951168528337143394372392064317143210913306360806054135933046407272351257762800906761733845813549434460524892979148882897824187725448873011788482466586383174201524713338732534222842892050311878964345930460114374512813579423481238239923376110228665441114054633148423448165725964592850665891724042877164560614757131492623831721994623420830996136780505841829456240174956526242186247334078974426147851745937371320270228804054812936575032325715026950777720514682738980158194389603657277647648305025578834069724308669957578681991081272928071352996556098920549699636937096873012413524263481797224004549063068603073414135205467986071327635959730808432895554517039482509088501818125764342256071018339921823720947976832040705971260202034653292480417997291548330971887245537725320237146258821627820315127608302205114831608453035871041658786880252497520838913593959887264198097825428893068892359046940116507650399532142623279298736755161662710150196001703421236525780700004861578569040398384698130135939309635586261154843809644703789157404920495083357779667242255724425648904638716158585075082473949798300616428435141813220908697305645445536329022676423768092173505983619388775234598439523781421535074597263595031271888015603131638527088875386635346389130374411238868588019014109308458075583671105063066515290241234709554376763025636847738045742269378978545135503930359962221394825378529398565527081135155300159692081615574430352070101361933965911297318766825788647194573602254154297723480867125451097402187193760313606156686821082227667000545743883269722187039242659430095525970912819154498911546136580518337357966974089179046381452062446147438250894079028758880874202706458608379564610652993750383496583352497595759419494986869895610731849858540920735092430746543575253584138921851127623748034948342998785557487423731906404424020328567659150751449496019191785085423611954670549307771913460404447220209847726197057742727004250454761238099872946053303452517250135958130716388472132483773977323134915199876665956570520653411765887859223363166078969715473339000572497787832554126897141308533309819672460698008413426047572938630819704738996069088313921767622376515174836872280061156061489862955211919447363121335988569923967804777889061810659717788769102025814845503413188695262881125036799509253082947901522804038162091610920253287074184328070061116270952332776768301092883401111662820382391678661585356811250909131692823758444050341006563216332712984181935744637496323477917203715741011240297804923346395622022631625001381952705615428611576689538168628149969373838380782029448950785396042186715238199175049584572479620475529286022239628850149723202538637876014739966048679581137073403047487946109897351015499230737295021625252486733456447925014095931981578695389048058406330685182060834834802910927168638451693674249831328398537512832167362288178166863924360485881521446809428262646100384865003329667256632090913642902011914026584944532494858206726078159634692667795978134540498069170242672032249457697460692084653288346763352693785867202606323449947386836226667419874438732688150707058034227482941579933504362770294262781068052006496189709514543747802455828446516369426786974032234986423082311791420835937106904531485383505766157092057822471686494570794654884879986969349888967652407173262105476029997714569666631742774861034330315696003225646581228035637356999731863748317902176535029641322533306195644560961745086260171780695673014754891151493479645487238014654677118860572078566558755280217992612125984473286127260733664010466810308388885372060548821719373869389052719712261848614766346563807193406769891451316589540013135901516085170197315487932558692869098891460003053974312373163843365667196182669547164201349694877736762352143493892235162959156840837060504714426002415525465218961997584400920652296100927850007515506254059307334922295448660353830725261561736593699945662027207045128965321736165964712895704881812027599458826346723767508283058403908558161436845325916516337396116410071236736281974548118967366588597589981332712464298061759196991912060531593975261955939812907877423876473134428821345097483021373512961126098462183258726970659489790814228011692967995840284630729169012912227925274070380371993773963579233264560873707534727030859046940280679648111166541965351460551012530173106581824877583841297623657321341282486145409535611806803168776727051141738970212465579324761341663840842250691943583527101980311419414836630106987901821402672677416919560368768742852557585825848695910319260702512673548627236492811950863856749221035048276362020183669772563566377078827387129455892678343329999662502618665222557870390262835866228625001338093467352998215393286851704992103542894705340546582856954314624325038501830005283576851511829112269713532842913662659551424401924517525433192311679200334530348266605282232084905832641135224592755754076677433134058344034208975147828107046597234863429161747321825313157839558701808249509001240578135489324626272238746307335357469412676414949968489514704415850105018319498361558405707699050672818107594460966987873359349722601328432772829486971234871909814940781948616091310992138270374733534286513554232275494658546902749409022692456211676963459159486341048716944290038303667654439645490200431317148417952127625959037231571002533224948640905943162019531846329115672300306499695760765508650711609385619008999241809921013653543860482139289047500572424998733241917871542567003107636514818169432316860196519719596688800706840537495804674313785759886071575182505936403476120633036199982505209440194513325027146841807401944522013428100391615573072625899634651795024053924508641154095166629731263853261526390241321904982434250393233544704906809799425084248030103205830705239446928977679205533509035480482897963665808352567865188857379388581208345551148278439595218292094012963324987565727222001051173310391684878942652405398464091212808070850310263864419573185633275955190371350585346055337872645809585544563203524573905843917119949186513312905580269832722044713776581898566235424842437142599080815145645248927424954163362196427346166793238098984996506628460828409722622850113747950455379109778304873044779716848629095115783527966853710607785741204217263237837912609250783791354258668573832033952894713424700310348714699088268677529736333450298313009839728601923465020923041992588877858249224860402635622416960502680786485551096025048621245845474769446680045370506924225044287613009562776781726198112230577244647387348081327756533926130451630924280035157003829485285658289410444352370113469656610585021944088908666963324619897914505477534926074898915870766236953963487287087055833386524362404427888238934464614311529323103663141868368225816946969767280087212768369250769134434055523114115160305848688694112762679939391949289941023285113751222387488926692827255187109765201086562811897945670652503473280791901519765493733530843334095695660445756884915014078683090690095678947096240128367273678883874469997243407059618284910248885280702396009803696810039935349661136902998382676092743410187227645531237705414345535571357261617608238567550271271656632388266287927872541190387675453649716537492242433701236490351868138744526509307243746967195570809093969795002890386936281421811799565432551844502926649178400847338009163193760994810160387989972086534402378314685199111282419036076113381857511304805110200940008358390759734751017924214978437303191845369136182838268439480582775857341293123719822924825797589177331546699368467413524032157736065554041686071642687647176783137083664834211873258699414370577316309209306772018615955493718274392951208686543266815923742294916892132084716227552987655348481106304634391666996306386878492776401126233271735599319669150380739822805082983104376282259183454457148345446908257313055335562806501147425017607759733413970476991477544927796975097691992331752201689624389039233415630918647143991012080904492508822073443499187171944526845499879146460357639095767178261110268503309481511520695132984259946228721954302047265653592993924774629321528222026102208977559816007779378586806533535837424459449809229082930994551387229766510109731887398705983563344781002354702568220641192027014241209061759185333135355432880687507629413738497506127905269580299405149547134796962343405992588427019733878569305443178086049157502553167718151946831350379851737815564734418295563751894484731377804107816554253667366947177566668716980297171146662523476873565844956142064385681504411915306149285809034672234907821524419862091192537962687450479986357650424610165783986080394205824830339069161858520790291250200384116051151155954321721141780287940506825861120766565564247411454132931112356042129333200170162143948981740968738419075123724842898948877092556839439585124825865041320066953337446605583193595464881007026656580164179122609895724977870061432698167155147307915854446255460429181688620871558557964843308608580192104965977210859439781636119191784847757577647680051407537348897464133601444353835424086041468500499123898166043782548705102473874953403725794920485172552994342577067972107271531813726450346634851136445033208130081084963031444911494240315630620648308673676052698608610877561280675491736351260614083059204496958636262126863813277573544138685684208708185719461311918130457507746936985554155157638468787439655071189876138574198775628820486582508531886325454134410796681513242401659052240849911271311455047787699246036391487266365595272402871423299088611999097593184356242344164090946537441976962480059347285132548918048975035671520913474542518870915946861699209048625600939987143189629633332014553596834220866617466966788872459504067988466438998780507681843478363210552322867094698885459536444173717442991734820075554743481888825877589909015256166850123880024666622261748628116884854080915823438765364189613615203188566641624728328304850805787907036826751079248570187583180466738650949023401227061691608999815569097450749202917513845079222757210243250984904183365487630046544219079858595343177007502174188879528107414787884084250715213096229612398746166991520465501185961264746828704074742616094651256202196469177869835707847812769234582731360024251969343739934120749624338253351723942757919893803764674520103961553913392690575886441215616838571559436118627876231204664156944330731913345658286429839803812214655256273288527867311959873300744058237625391604167286891540347045470011516693861940002059026135538822637882426870983288789795598840309934890107899487120683798847146607727916151321981734065778015893644750605256762696435552058682603850287064571217882808105559047388264533700818504274801723645814792927763245394233431944093592266051567155409088019815056985441321164999128715459638681657064274333856583850971573184020856485059346738738915276069047877600280901876832620021177441776305928329531418797114380492199295591964791064046050180742787105010119158077386568469405278871767135786636120094207724816469321470967433044489869251742242819017533858729491983722878556409041624490682466975886582254676500010650848071197283508116405782315763927046828772796477709175551784915384371857209987886945205014710414896630702877960762907329495551203270774694977522388986000198995695905884409236874571190812320962658875180984777938218437157411659563966813013237664091345142752141159550389376264469724502392534716413608603523609839883969792484877404989076645341619205225579716166657341556257100888903413279180108024941079929034471208041032735701267178098817855666007293885226875395278402708208461566712844938963438539262575358724114028158038770866512114693521932930648181457355360618516088590250479714318730331679816813941029001094597363682509299862261641136515178968554344262785870177075265191917175433709421938931051532518001053802257553113704433864782915552655002768108770107298178867973741200284232688777739156145610140025090385244552786882868967647235355011093465087433139792258810721491314471025045608252963036925099757637584107349174272454057769177776623084202995569377146363911868419088553277250362124076282001454575453436842452778031802699853726790086819635136359468522569044978912146177139391578832964990845079490908633985720394764521551103057230542729485980613484488003606009658274032578741707202848649143642287237013842393398178660072776195016635295625808948961142919837768515593690636720401072509467190210352707660259138645109625731549597484008665389048335452578931836062836481780804069382235991185237860052356466376294874941042128921895093078612583604327131122938649560719303867456477772409343784253147759226425004280508777889746770603250365142015296771210871867673478987458080021739290021749391369881644213820986509479329504020023221195358925324478465709846461632654837202032349867775937303032357529764849098367605864529976033651049425197926920571007405754162601817573899547539732760666166345122081590249531138067930058357392314339790148965268560307021051932961245470804168952760084862338410603950768595923279257134175372327408506171515278393782969262273304494230683352251834372207770512459882539248801376005211697877418139356418253291622419974791156205671979446075836408846896999049171503281771038281401128953458109363965976723597408247133915958780201576733536346299691297445891660768692749695804668181264005874145245535965659218137201997376964958618711903852941404884087996398959522933222213948734431907931672277285865188305087386651986439778630708096632084141965273741707640567194444344175329542239261746768210382580453784157628480925966762807554347913988477729291315238969783389405230311659433899179340632953418802483268028350855682030771088820272557339039636189534310781360419218331868602352479144165728113799896246789221607327484410883707758059827866726719970554743195504807912567544986079154886091174386502057237360075774512103420122616888458677140193308594821407222519370922839202271360776272948192136731137676745427280250446184723235029196206472537530765276966886271505651635401729689264048846319485139116902464959889148180791769272525414616906548622070181244669616252383421445856321118336840323290728246738223401553904097278674312447044118946726171596407282277283681640902033626340370719613096862150698891099853595011977054386093387525065138584690861188006082383445724890109476263307573487460561169920506820370029910519866251995313116906828258239010580929163776468758189699267024107417127912680129666669856578089625186545480691176586925629087916930279052095554596274574393858208606845914407774648328184684809879924335139389500176743654174032856144115662795173294950346297683489746304185839780401796214718662107936994145312788229947140488134913907625196739595038963556932475963729124278948729749142589128780636033210385270992756915447247920253980182558102761939013712746880346969851735437478182185316654066666634062987669089928086585579347842362847064861576644133753576287765352853879695720459833718697116720708237031208339767519928866524922943163817631275822278266581453577928779442542903132610023514723590037549330055297780581127946516139099456386445660936889929913620155085335968387758800553411209040392651787913033475276485528116217042396643615125983739562227468325204122608179618977629536624240194955736035041646160302769866748011519088969055877770401230897804668188495763089646049699336480213855199947439140172810543056538250024436308181338306582001667411907938723365679637719189910694877591001883098787305529554245243024693778840770189721038327115424327514000764101450103962245869296643505684891504901368114336769315212566556231432301185684242791650741510479896270721312933961934117314582319728964535625293200844080146879059828381487841128790084810597192384967083167342682614539932499248402336594196403758163193403317398955715961437351542806673778313520377227984951051017575883822591893582521558355615698806103831054635478705355981042872283224144392879033336479491940651321589240319966846586233595196981578921617402973488988090734729881526921024409350930440018553563510935451129441237652398250764184086833170773144893543955114967379593828168979374865884019382977300436862453424486195861404430766550766456718730714916138144736159189054426723987621638200447736179137226488877484407245483785389761179400182814037550939545687588615988860508364664555453584908928149003303276605177603208484543820029962435674203052518850631398209206969673773876403883182693483804064019508745125281034434411169382247023619542139753042154428217368477539306819058803067826774648383897589666529211723796890442003681808248712357655383909016576105795647577431108448771488454814916093652384570103025077676598766550496747062408138319406084151558521206163157153534647046257926840283350576422710217110645837175355144481280048296508681224167985845434843619109301800339551323821429262851543997572093678002113778347455297492051590293077231672156779136546796541651674916924365122480574340560469634644321148081789589953527510886536366689824692696505020761370588664902294204768099627177585264973194852112457641377467215152086528930280653401429685305001475082936142481997174956124706230439590302153490175823138423493959317067728086660737965321064369349612409562047202743108064181811718355493997016833009739681043590000319360131716519598763833175826185294074338073115973026590731638096407339185174323359161235159591467166002298900417953618689156905300013709592271823869265392170045476949400470102700770888357471566229953988100732598354964905332622511258532697032028103187948705780269899259360075893362669831081362440962856574746278632721118578294221240688536038135134248375475258527719102043740358221027604586290590856652299938875304985371112824937592874188618223888267952410558119346890836328447972633443647430132238074792008659296965631729347342998129944563496243283251434332258294111534025261717467174871372282004213255418233822992271805479145250779004521599188015097110415503958286969037053493419724981790095771922858008133527653818288289644281443172736448612414008921927261247676319457165736056861248535536674864379857964981227383481541495130573809921668468166106994265932102229793523742202081075800042287794815732118799036338129309271429217335208669915846222469577138497899477261293437185307318554974381926891151617941178310574684773987633652228580828900099722925697472919503361011531931948424910517499843615805104013550773021900553263861322389934126129740751043421210800981353386625134505960026215122316445686510372183490526006627776752877028566841663570156926520572300243137515132771685505327046357135739997680899784288819294275605390263983846388123287049413288115068935461426956021783344262186844083697114316352931809756818861174073248071926311924315432949058860592442836988987182041613655101752485413976854110807508042677112072712519113069406516122466615904395054166380497143852306676835763491656396496063552067178432582995898307929171197827258528984347999431807382822915164231703840335315550100420284128421560863883778075135279182284582275574688207004329718438700634917296929234678160014273792791878316758754920945848537907407736481712203978121088891482555271513693564492582621363575529950144758591551715131518377358102637961565463904352863635088564903347687639943976546039913717759377699673664598237560783899557890108339830258324668947369732786596812281566377517741004313283026285685668839531815264710364522660258647141287938038451174785246738636934140064732315263073992735564829419487164421195764618110890361636135148293069342842369413954123296816272540298402898353713098010520859075926756438786042559759528706519382746143999017523919811576595795806354463394303979458469429254622422820826696450935979692661378203196456246282089007576419193215574697954491374236941257257458672551211547178904203140497963327344576610072758217605006812108693073258728713849060295272750582857935499064716793382285730348292574790115223654227842995378641824172445519622165636244095576893165698600720742729766558587090886213871073910212161751745058242887161583557394356324578315530813990703111810455760146817679789320088103546849951541055584145379516284315558110410284076627105426807661732607799002836686837185946877296496536318413653130609097640532457354398584761105932820811938742130060850584861723372799816976354216724686892664161185806113318289506825566180407856281396726168680695602321850864753733570580919380648337684233131362084433336651867809602769998886209128263544351577534894385994878097588474206613987905279804749723256878451703297033047422823369044178579655191369372762327216651367887213111597699534433044416340328431281686101297005153150226151932675516040417988266859549259678979595650718029288118492138709489373741976332662277136624848348384710022597275154225584268686915225347048170346458235745078994018153816780700780332576339990944469383167129183794542726233877178018099605782359377801414429012047584436097480846994589490108637790383683270957121197085481178964741346660787035261512415396986957675810418650513878378624337817062643808090311009326691400981282494253396243563011492272599608125568070406264190693183674225431479587861717822431067799025713249710813576467369020722446627179919853057014907948684076072678898155765518162559107005325823353392760255491463841720291716646513307569521088929212137822314971822966635469274411032599795738056863950368654597829346714354241574770188008767797772379873892467783146000005591469694979595664449757304896912985721536161204704637608798062622676270122347320071031620789919101051573718340800849546442755367608666859558244788526239971948301136462147893727653957013586328406512256563444511851905919236157307112663736416210446897502141417435966742142144711559182418978236855934372196974484958119429954038488662552696856108536492773136532285890454068157891186226342085971133816494884268422049134763915939148633089659098836595128460611983819699181794225037180670998147396347782084617148911420590691182165340263446854775853613641294435912087762785272527209303548516841055768626868685477018289653133862726741426149997377677954524740297678023643323678453988881503310029960352000372510420034413722685098789365578128366572615642186723418355255641987533267833118494725196006016091599499735564162556095342718852260849691280572662815691420850818603734282946377429133323397908261610592050368387780528145226846334443210620356962139767041466948580333281300234979611483456425363895297104277400361225639185520734162089673097427311509844027388691032209406459629611470882770606357569529795539455261594347075500747808129101863766631358678662392966230055955583889836591837005453017808645686220132194189291178055531599307031019756222521501276139996619719312085713009058544112072224232614843027102028110569851205278131703524729236624531075377052899688684132450060826906363407451183701723754787562714077818175772338213637638667204783318838306951070180993879627545130309522807507170673055456613858747200318866580795231269831682595710561859131853235475091469641124330671787492467361759320458083627655091357944831780959648214301904812281677348179101205119876864262959220642035705174344498294700682955992801383384391636734377945912961959008776011826789373256412931811400251257861898914264213279566308202741204309036150951461757582825067326002308614176572869681209103974317909730282154825817001329607201346854829468945040556077229835168030713180609682397353825697356380893697811277452631995576958390186949167557320489731969028119864234500141968313361716464288732217564313790413126326389934419714513560464107270228478490199328296269317616912121403422867868781697709775697911928585135971946931092294725145122141424403657520194707042024258914592561864301030439213066940464420915123718552760033723243070381139493068658114710816337609202057440857029970499969721060995039903832841905492492449220583679466731252582213953936912913641265583984073110733137302136726005331536508034961499643627653517389881969650404661155313138043024789839511312208952466258574857995220932011011853379002822990465511202193318210392673751227019217151988825516729621773504228120529135381995732370190208150270902222449027631104368240526736875024697488253818319682120788439593880582147042569072520571823880208773192006899112983571170122551893442185567761991135155804841452277509207872596070502399946942653969032006038396874612562015656501144813667528591567917433806458361163429475459116602626300268985910423241497663914902786320666792528519392050041143131524074155212579285474288041059372715391670047032845477472417663150285097235983207404464906065233442635568436734598149061924924104383276505137216749420129463612401887450076862406064694798280817452184704705066623692845035515270385650299641707706439753206326330104706865702276362599177853634253302070501767706150329093097263785778287631054809739672215666583511116922226113931962837752476660743023257404213384391816691553359322316422449984958455416320323092870375510254912898355602818354977144662060989558983396292401516595867255921523182914173632611952194607493340856009243278162576149107821685664024851136746766636321875824797242687794154721015067682268198847930835804373853711578176079598174192474861454193323711771565780049031616629093853129256543048460641027589197224478257021501219800783090935302848810200752063912531087258938556349187501964160658571848678489580239847467342806256516969618513893037326378746470252767771923723538054730030778217216235223959573164711661852253281408779267464517700584788840375250792299943135246755028503485136828712833225362729825152363846443633368756743691336438357689899693706531558135430111127104546233096062231589600242957207418980835681077043622858362260896998298915860663166471188461802214834377364945500391620374460797819259202218587134024416851335431641046882320489012200308316337186232391706875826250208048173856476636343185871046036791626295549226324898409785902213469991210453619132258361399573561751801772236409490689844160403287404715224058430037469233886092402655293692820666004928929714755861542348838367147261791926376840748896881650530041422917732736784386217917524794541091449366571424146195868627952116381595703180742723594701189170065364663754600531613404964806924653932744464829472621024953600629606808739927578167947399401400099855455767537421207636933788667378926760080608787886332911103714258212042774029565474527522266854125236567326716241975900331897762111557850350290528646942801950298143760294913819926857718298787544501971067816559367219722429512401591262977347958832215457608223432584854498567019333173480839714110738452498418763739356201296572081083270921655876341489345744133603523647363797931479986104112446112025500721311743848793104577279341862910374656314616865524524597063728695725246752881745592318263023731837389451302353681826186413489080568859839960175568256532164949722762582723694129332886607155547444391257773750475479202134298400868409571342554386192928318915942852329172775647600192015512953291430892999724949161268117941809593727407489923370632311849895764318631497779035377664971085862568270483184891626368107685617149746362473377056385126455222231513525580203144730406098923509719723308665481293139982179551975318500091135073377746671847224133023273987995433669888893303637196147442306744587351725579463602732876408923121862460196668240563535407704765983613366286941200867533237165791744115084789226551762334109244181195707014206298890903692491655835888946299062003652402458376545743901643475145371368745780159560480423444269363682375620731037865344319800124706461648269796254468017833849877317501547148497122360646371373690203900108118841905293349795902156330064946592209360846746436885212497859407610954116776186378841835774262968300447693743801387584013631430669604618399082142219207874701152147929118222394746459628339720048912780586337798900303606514027818422328539657786633996844680097384373799935135076015057981813827699068805376477655426085501167259382908113715442793852182772689832360591450037132174831565896624374540630138616710550473364770825161260296122324115637878798447575665078892228481681777883079663341204309155779950670938481561331793567445260883910530925527243933457539416504622739144377880741827225917438232077714025200894174622536504888244207473488787661894193623127585078653380734527241541329329104917030513274672098808231630823262065277940295580853299399599421867783810335198360827495799146020567769665355443149714981466060464365473762563259190850142671203561058291829987130695483881619498645935821377122952907422253647699731601057840323014918489742111634233436985019391699858851511648026569413210556041271342660887462434761128127100516777980259900299966710963839913828102000754080413584283797113374747712517183070353930928150018351249937364379287884056963318175726515234370107198514142462967107586591296989190171024607056045699059714613571599026643790523608635311817128513884093604181277976322882165555256962264470740675193106312853938941694122401399376204296965544854050623759009209152654206636569767266542671263284688499702501951222036273570283562668631530405454600054553931877637842697901616134555715997199515760013018957931993378092615607231823905722695211021524998197191590555800321144181386680930209258524861389235656534769756531720333388246330906301311753225620087930209187257235382437598603973553934848328065813917196788112494738056161832110974263008892470709549695825778114234501971645173932737889564783781583834517361592863292323705822345063841272862084248721662704767523717118511714268954761096143226468372711029652041812518788011495309666956529919044906286306564756967355150847328303846471854719219711658308062833341373200455404906103905990857085388642805466372694274987745983628613921933278206769228806283631155145684941265625265141492026175875054896367394606438528010922271135379998986622738194393342214609218467058896179536169612323249189049066237017797536180645419721555360760254356982608514920270424249291487399291218623291644907164782523989929704682772953792407908534940074249644338780293857178630169225025866742685524727451933338643291118037305777956062786209902686111829283563599068869685875134979226384216404728595398744363914962392013395880716565561544654545827838276336676598187494743366894574093074407200281659992537873313163481469164213971117670260199717796335501726192039071058433704654419710749584402818886759587335942320705639098508147202273301848592179674173611240423092205743947581899471054275304858441954031588372344349086356838679372093663168176672830504685187640718625115901737286188376118233867600390651142027656762772514943973452554436519098640456482499641324580739861153399017144300383906554267071406993074331822780230720887312616367542799159748838952563120339056304964718351750835241515677491059135469241478936695880204800372424589178808893049755507571868357932979465015801258715102557793445030806676344283308247579164739121908398243327833988479730327724947439901801633857522405914016509418552609744967035293133848507020322385765041135182195888177709376356754974672477452554249630667617492609264874566944857105336311061721645856319767016318875421174270546408063004639730624381636847772355084806808100708232389833381460967106616139989409129914497001541370515165666454700268040135883723942554511536065952245450589726326085950071645583019616376651367480502629945920200867409046013732560976655844966286955567783452977243020480315950525770701034302083720481760707007226887219668597100506399814637017992680300966693862757160742149046721657181539888655733228440691287858826967144382297056689700756026462945539117334953155266831083143668614505225679785702516886761546959383139905111659548644922099690729118852871363646346923063339232572477663166223013393901852139192732995764738852823564163535664006203346673460297130851001296946753229839652158794071165821833618454922137831728394684075592151927072854945976648300020733628804572752583320754337340177416058616792911017425340952004488387901571538288057467206413998738979532632694184969679718236493246538309305056378258223673135242520460083464723704870696254073086576049935795064668331862122625532714705328654741286215874903020127145233249302068688641756595569623270782530728057392983400881746522998709937603542050180425404777461949486431783385096095242318263786835923996992562461996205682306056617586931239687049800530756180599289328827451687687514024817607226744181930115413105387953320346390514003519623601075164590292262188413192723055116774110697621369611704037399800529984313235369851879470330034952270079964585587140500685449533565080230415792587443210033127291698991594152573400817966866078880485542817198781082014636087627680691939527295296899514032428829490617760035416668336367996067550314284637797961371017558341346839851086809136838945141089169914066694640548404740815954075540005223968597793265088023862925807331422133375961546260713914407220923659521173614298806546476706502573839165036250118438039913305993818439953195947966523058866167499861366622421734775693291083816672653882801990214041629550982686955329232062154797424050713858429309068439875639592661210695585019635303815642897603506979548386844969999134558023756071389048685241111216772098489316278880904202488934312701932328336869915019868018057454132528753513874780457169838345068940518659230849837659903886403195153270629775661856219263050229391203290262638530568884971306903025863521590194996708826525968933252286349956501773839550385209116400082722135490748397187771957771189675621786034869953382758149085567757987581576842757979225036573283067359293703515126404250561562521664218111738446415129397258649139942300930615001212239952730050225190708305727698986768628828154151761218467550174988427645330934974862564119705342579257936642437852623505862879421138326604046832870186356555005287551321084536394461175232358003910224501681111765931073994622686623860555500867562361795458369852492307120759249775638202040149171365554226419362928548689765004290883664545155402577819163092484873638515705830021251993745984388035394852246902640306931811702332479312246616864443957307312138168098558496052394685669465073682846681475131802192937289034825633062199588582436229591429091148863438006828144420424851556954753638850695292061970397282807045762938657038926457490440466326788703682912917211853561798644457592484562426317761920310979361472864127786959017123208027370271069068512939085219127621780321684301909403124886506885797698581575038242715868686044446185270316105106175924214127285839492308127960196494377405339858126601764659453120019641047428261415808221277115502243365234509669396590804840999541766975924409831024973836873645887309939601785839976413623523595775989637091913230725453215607477504403865503459772508494946133372386494526583335988401569066096242159788153731913129878308379074380749687229055061779182667969414634113603948994195315349004038616938278687837734060959163311514918419750316202333541542086986851543239256053756762605453605999362120448750043967301013953719178891787985959755306923950367838074451699053170880919348846188848078193481310262967039993444516220682221389391294947480895377649166505937472290894411057712744960883988146457466463400871472975985082700260114081055846870842599863798368989189710802480707422063689281838501880654084521809063818466838699672832885955422218465017489934734465090526024841182839833102508076727341941269358569243232263944696385774828400404010171190266920693013142332351829735402521528496555626921770882213494698519873864367908066020376158959989591030476001904540478821266216163401153896304420625808021743316483673001009951226130893672402317982341562999758104644994262264968701098188852926503043344083697673545531810465385230171067500620012226280771113796833352259366211783908583403471557829428820082145095845461890336017363104607786750941172404580915319618054448912236950834108171941970116865948023104030187404651972288128213087602840147715974440567094744102266615389928131185047693274579537568621808394333178680017918702592986835012832230033194347056568231032473797917527330019113642631158144497219044384081718997675697613972459588431791814251061334249773170056454241012856661679310186769712826529558766280884057483004736639703427862613081375196024131141702904510930367776040727523446847586883975868074319795950106929857380725511380979035735902559509923110744041174347696590512527677151250219564657685966251764000452851090503217074703464978312278224148404808408464752322003688358488665119817892663069686944236949044312615407589402211045643279820774412532134169138886865805883626427142021698623961066104788030901322365045584811311173533057278676084292601623393381197563229470061888306007283188286065003286163584284151978162098072306650510826461643072600790909484282475937219113790680061875580458217603676374146562517241856197682787024434823830805174108954138727045587499925990478317925652780927299437395979996565586771908033713314054384257568428922491256844866240582289555783960453331684905266528295689374626746985269359852397562690744218243139550114956966802164002892851666620701230009478607081551490564136653757054780189457417206065975263335726274734311104297985792921045874720041342372148395026131600429000396951556493410738493074828929495653361350377055345023550341102682063098649319676597180643016085954483872673624106841558788325165227670807191331375811083060465587993941104362379664080178247821498345834518517807185855818572643405669217756234546939572082777505724178707789515300898133684308867859973169474356947199067241552313056818427492380870963349086154189179915411353375516039673432906586201717131059559665880479807415262559189444345141880713089137011636863899987319229003251782803133444152619483149403034490489887270003347565733820948674028428983655767726138290333081884409568393747371493876470685532088518493681639122586480927416861233949726965695419388058873643301655546611112686815176893653825491048689499900269526884189451074831022583552152993461605462836634862497706604047502275362283665897568278688217820299546195794500969745544000576758792078056087625170777257468747586658199101065388023457483136290069421855476770755941853404946100084802119572187073626952581401723812840665662643475748823822394963490034779897936827944836930979941180310077647709964651948755951472866589726666165974153726653378569491879150984366937433534286386230989236482147522121737614140249303665940017937251670822266548347241911362014864853446132667122640413634451135956041082091370010735043220112811950309944399017822125133530855103890873946219488249475393287063097445921949078229910754566472001309091055162073847181525675174100384844745518675291359315401796484419183327420104243662820082347846172737006697669718357906522713021613461541958626479988755874759000268176067024398534574557286914971551515832763226659321152531436068809642417052252394299471424079349196241746229039259936833728410615609760979719540841350372465532745696534506551633448511216634896717628438831399197740307216704252231513452339801588038702175653425919895030225187822064764866238242575255579564046216818663414197449750792973900080812717284986044859243792248638724081762439823216573009655589308249238017599817132213450043783082337441576005802320048321815405092477672086276585459217109608306596831373149525615630324220867041768793487251663556810601008604759712020369292215061732681564784520008276841868917954673941222614063622116056114832973013423257974486402451901587100101338061653368542596069058474488175638063139588114177845670384411210820696063350047217290261254271041453511656639333255220013700865429922412666779954820127251555892330242211217430278172721372125780373729198946948414712721428450151160307728621677768425113965421437070459633699975117072475063365822004656931873197603540158287157682402112009834633875623641059066931624746936382148226525553012941175840116041636952725837486140995767836935353354567749012649060924306820024306756654615132930689141911835709958325279238758114669784016200697365303637352150315207743801197459800321302329017712478054712666734339753188133617423940716190037940450762105015142967334567799143392798058521147847003062054234098109802116825043504128038225606362329108817257089871432784950583321930059572761590673373417489024604641136450348301615913279602011957082860474422118245631366360715134068715364389547753744683808419232245514142021237558535822375239773857954838722426129739999400874471657435160857872710247261130386146682009794993290082724860456644748255584657811861195682324437343728361121810993221751304165143478531443285105007174052527403797165965749253476229686308506227674978480232310314035064304782777496136279179611013299169701655149793263108375535124600746300745357118669065061661428773511506097695360020500377579741288444117369777911688551896464031218550187997417449934962021621683390314333470406581527121731187289541383278776096515131816325256038959461568931139821061368496986909566669915300874975335849433202012943172606278885123067396365209302962787520201301165422711561253930454383601347703217671137273425332801787857710239574117187003937658276403843998907203703730894592626728442573525008338835292192242225410287077954832494031080074650480122923986184740872337500392283131813511987458721296163970972199570107747499922538876558445275443852506210199084945060481343332438942995916451015369563042024514948790870930185609750766765327309435206368889940949806913875273162841383193544101704749340797143831399160641132444383196950748756082980427354161818440156538507759122509647308971834194107458953124107437262878313867083751625209530558091397401362013656115466512646400874527762723844737371931764235443845355522794433399410557632088019075960731855849036986180826184605973235943843235173522213674388532759365306594483621300125143903047398158850563996988108683487320704748377885187797819274641228836300889300464805206175576021184402403791991904017988559066386137321876259029509482770778367531090635330726972546788586523257737618493619057575178920210139885649095162385845681621565012118139389125336995877876366110715610990372860298212010410171640550489757854430767633637278153808564150320535898026579735586341932252089942418695876520482005777564377506776346956168331376004947902222909958902373801998131150502321084153958497386963418271542856133592417435305526836308490358328706033483804060770961973422403174415208872801173844892170726193675045953372172778029864596319017056062655316748778619891599912114723987645789285789503217616890875255767510429890641277195678043334322910656782757816216589790628409833155501763754240307499502927571370934808376253087389847771771466941111142592338616448311801952655253135372377732436918543565209475952269526639525392043863550789755165303666298052320778607760382299159947114976571842092184169713465202379903226437522495584144806018756626144446539931471939812966760707782412928913498562984587847852636692242650973500196425007101037489317438724195914897797483578474404982247834261859043162942922674053903721516554765304799026253399602112555458304586953310914014464495959663896401400521592539671237998788547539331389584609112237390555953720571918323564953434553463700935900232805241892904150255211941951319119501684775341429682733054057981106783401289283162924006433238807762704186496106850647038029496983744852384790453999601420387605690095597246331125803949930593662133110177850726124337141360167754055515694666123000518435727851816146129679506171719447160465050806451183224017090284759121396369736099017661951264787057328757608212331542906727423352860317152858116586517098336189412909917122401972788954934650967364491803662833887069637775526562382465643064419133648739170497689800286595293716362946734677646889235502600656071640932619908232069023531700743603789066574277536751318191716664379181669325060317609897784836769129989003164088754242626654817410899392346971888608281060106420830164326881074632296960611361113117725860598079968639323694874824075131956107726296976311959481996633226101889475747336068306764636858390323976797165713193584556845141035185319465590283167791926848541753998132979188125576482920003227765914018841015287392907680076113255839599159820172506944055821064762408174598105053365587536292060900226520005432443990985998944336204888816850546429372720797234320886894427239718785370609467553463220239624950967371093191870809997036584145054135153967892081206867858199547845278588607825784976211421784181062233265242185354341094578603906899031641056926466356719199604961408225203451485425723668588509141781600900464376524908274795503452271412600971828929002045817129661069375662765931359662359481066109508188368365101821928744217374953421190298295906442448290190034509064977597232323408266055836693099439422456545569923675679395900773442253902744258525425778756931044509694993562178106709968877714487764242030330153104934489499738212456996419972876704449124916353299565085109543579929950860790838730057168583347488380543653286591494081207694101375242485807721478164623098194411378374294923913043810067102322099556241527927921025814986496740166286320938494058250843945604519914472726470255133873849784103328681105404898660758178398811529589764879295323251403661283621569791365659452123919643656861940513844888114936232302365461897131642983291583552260684059821228101396529614508633742606373521529327495955140293275953782767290352643273606301984053212127808326764450757872697044098561312231200253787883072338023144774647585337590383866847819330560496982511779530568699530643744967435844912285514271893725285162139848775017354318730291766350119223717321023601598973823115862144186373259639107552118176850438093573556968363936482158769071485953507471061261930392807984682674963304579202350629783541581832697525896444960304049342732028680040281267845122235296942775611467831708744509532116462147770390392397170841364969878291475271615177660185109703260931841024634645888695104432971440717721964937676811316854431751509229696879722472577284481885171430261868743711807314135696747395128560543185035117840183860311694358462608874449237255133502423105465645691668237503814358385881495434126067367946290094869674206557424048795790599195536172212087683572482531940604933369522669613937552754100387867316990826830963924315630004546042772243204832587110376653359915287627252301548263319462909691514740190409169777542549388094218336769934600031352912605640285525458008464084219735535734264708505750716699820555784646943974238380287155498196386704382198302701713365496691264040530229629775089891193729627212578481825200815427434248293889968188388635966441800007032187421313373101531470957108484898246093753338824648551372152289734531583363637444582146479490180857822750013903542433725971292672088284011936064732512636280019540597087072290231867278940439937786091110596359349608890343617790130236363252173247602437065218762175394495843933760902672189526062640873623406447720600335869883906531741622936622491028057240448440742323382548005206104850613048926885249381657175324295977712761474762158831023286172053295857953811798632248897350489411769712488057436817347759771487204882203392111090673107943777955108003486371861679254080643087513207376656037415784987142337055083303664979194702977425508902083369232301535875011217563860381628484854124863206404287657632303170891704963873838412432708177017244483308637028854111473488976448929127641900577396961909538808759680482243280182752802762748941545955888196429389345341669425598729099012986053527899584874306557407391731431385615871902958756190723213937893912890820959023641884995577911483584138244994771885990989222411301186662040717266730076447430273035736948476709469061324178361671865088669138908781394078129396879159730998665522693124858791057782917459638336963451612490872892006191065784649563802647048543184413304727278010088045177969893866522877873701088311435676386430671173512387417917581611052770609333826963857956825731578071536567335409768981391778557626769259230555092630754013976844319443452271028798698227907120535104288808874761509880288353418647433995438154105958562421020522525020872863093042116302163211865113685761909921922775957268630762903023125359417596979577412627448847988313569383012240719480321198239888200149770001242480809705276015426552852289742339814204614191164998967772330246221594061071767452861442864722092324655809325356111593376553131764456990271891388992687484280033001592033356848826989336177482755342323918026494501926074963948001112777620270804224981743516770208490013388927287976143921278107739152426388614407134739844580181886544442478652056392308229312637778037140168704119375885398988843429732186676136246658522030878914759911320091528189157811709350437290871014236116371834554543886876808340726649117130687777025204718180691056049343877433758745957322910764770401536602432942241498022809993657773768846972549409164526435613867195953608852228496071353576592658633001642310034956675431711651401114511787093650643383783367621396844988343711472473322961364317383110294288980140597188397718450739694457634431626500141277775672297579606885697177955826979627134844663227300899693594079119984773174125351948796910651822906836856143382054666432002470296740291199765413113518846765179593704873409338239883427567666592139367537632635847548459818526452519624601091524190865917707887987497144066801979396387221453005409081993780090269427007311173188938909856585480926398170613144530008506664060467016683660291442537892268413170894284801835152320671951996113294207232601426226940173927255878170797254711362438516405288736371203357472479323818757611105384325513651908591943495067853037051964513236940737783861960806352110091746293657712352048506362580619456279105337540171558168883743066138217923152658335652114723156783941133831593742915552074574864565628961158462411394340741991344075510678014541168723384396561240210974652279520356039992066599076434312133097489011424542067406271932051930558727956171812006197811439212857216866759753757170753866275928056042628512030021654399147550672621978751620531122372845608539961534507829588157614150046647906550769919773209076466920221002491509471384836063900684879942751977592089276130340681195512634930849686500848341018761814424755395667938774515810432418705944011967501765221051227338965875614640584436367483963380438468341212877707579843004360128089278692975482947793201124624837606837677239369458864313062059203571954761146293297916193103876692497736735818675317399186015250963116371015603346727530695539427823982230595308303792978293794669505896613582134350689682050920843175055543526936010182374504318097117042279080501306232150203119630301081871975469234336195357623385436499727935690624798393945305236253865900122339675670224923525414211991243098813489248555402510287474360156166880612422609726893972820431932483825892251375040777303440552727754067622073624075202547500823875575083656276095133691713578780998834194294199933055755292879944461233305670666935252680649406193408448354643004464498726463683728627891027534779563180255326279420448736946995638772623172926350497648797761206592293984317539651196534276518349573852293069264340024513934480165817747689904425461472867371782844001129906903044784493472219814652430745793008897142434740106237435028214973678171541614702105340539138664213251291367208084522648405538615558353337348733798309246661356104149961279771594030340987478391633480451287785086832209692500296885266977846091524583130078524741386150050939182920511068320142158662442696396638994324231019385816830327991161716002837370970498335313635115940196802563438500223757898983608351615806424345254530274734203342067914634772454094427221828678658188377157090804586399998427821041096284698421637828811987219906382862964281107308932497151258681113786878596553512031558458037716368408678095609182367278262826564170965175895691809523207226606968468837068411861736089032472068734234183976948704236338195791338694902796967395406592959646492345581209987296588755554730807881499128345592834881281585046688326164690182875056934451762425735695853438413732996199338332656551390015967091504187218655429186281990492330936031964487173188466778588447133755821989639649530569644976314566715499101347966482039537655381836546363345732860344605630013754698485297028995361557385165483692585214591427453719967130992289969390266241491693041086126347936039434025575216042938227798802703083101180909635975716912382654096842842912876852943657499859629631824575523562515350547266033925030215529303316295539317796611683887883904222242463587688217506902494477802789665954018594558298216601853757653134518178459691933562177834661218552625520967550354919166840182011032098823798066280615048557132347968295391129100124821862503706328821597288943060654434283152152545475374685198572984523503067006814776253156813134642642695540959815492737053307810566543425410972211378276430426215972681818644612253996279104981729113537130435888280953324153552099736908152828400544436249975385972122470636805924199867603739963400120184050702804880115513763418725825784315763924907341331692540814367009495937759922966760630284357103237419115404129716088571564158292925646546880887081866247257455122686222051272326935286403691404464470369476408882906183218555849454186875594146081895426744768551471339893797983187560551104274007468558703380794434805939703332153575712438398385883164038442353484067708187841196938901652998996149018779691901811977566615077540896813908366085807982394306032926587670065224722081594496554051254422721388657758759967189540272113369628911712619566448033888861983151080675834878574132408962017296561323270510397629615867099492101551602056635336797793095057168056249359841938518138687803702800131271492543295010447225515138504286377300990107567723714777810365379071203833665753132598151266098574266502296835610249797026494026908410512209075551708098149703250087658091545647647999514455608511458680053773416621874165759124280597418160929834959448012302570703884150311909246238364318574394434057421945211080396560795193943539835803344527518013153808729986768432845450048499317992765242489990564351868372424882010615063451800166888334072472758440083062458414256814147047463977783601960333734598604559924036062339579360922256231986315949719521437100937421420591989601955330378061945357818259474619162470269201090615491135721384789367936342208738707687113657692532852604830820732864855286000714974347456334868219091197827632253783931984193913608429423052918458110323054028748976055879260366381106905020994576867683003200465523867461059371488676347901673203099707434294018575492532150765170090780022126455616698275719710735337310573085009131367553877865965216921016967425242279586797040703725578778644794412441511434050389730356018313610205933879653575990473042809203362553295035936787037599719435788426726943240876144704279233158209971758178210800023891735318750801411057263665058630727709278627262129074988924714213652497561898892582592428625822285894989951874537499409162420754089122724853181475487899609653464549974334038047699190833309547049427127243235660010852629792865714802833793445540615919084541891651362772397153966657078326805953323688498061313703119692613064450704832514433722971396982415679065469776655574745563880688621426894989571313582384428800122304419550102790569127228752599065367738319201315818202881744129164429552033056577597974956548113842446120593304280116423446665082007147216249003951460233537420089838021052552972825301598726482067680832696077320407320167075035255249293619596389026637097492913187799429592908071564894128134852958978724067166965314134819618609366812005676274451767512726663392085894002140703205382445040259180159094769225918687977180089726245606294895429105172162803662906606937202857489009789530463485893101642676203841293234935261024802381060504498948964038940548424644241380207676354335638415578517923560751593512061938982600415592277588285832482653540737066155036160063614147669575269253550108611484354068152607721383999826615037916285074068562507011712951534379599707113394729707701451815034066544221206666335870156038138984934872862265006217049946059575330672416024054365557134452477562406503374490414952339047677237013283743651890829462188656495425760639134158095457608979215359786402609379139461109701704661242801741520811748452805527920650848391956045612126093662658126177679471532054233749952331924567456544220088307779349666986671713650396430882702261525073645430501043741868318734890667692014902469758227776032824852163568547681449852893352555094904050202057762829139114378093256267474440694085825156342623266608252237220186166965623603320895443120780750855417022380626039723113051319181015428725678108304332366570578853586062205634325818389381971745807481669886464766593396791654919213224975126125382617866318758217027921671988612599857448944078244755318097353583825802428214098208281251586764523588845189883024724430054803776562040090864014709547158516805779575043733283637731238197619034748484159259512327450319966944666153930534850304008332922012503032289021113111822278193832638951653723271867795398986230978869237610782117604744860297120032648321366904859765416410955583471586816491802678219865477521647063053525222375107731670672270257121109409669315406602079600836709016337779215609574564300286476943843268138110200179506390934348648807542225017226650224169582541740163115769152746686705627015482470257798925363920454561964214206587426760195073284437370746389959019123549625675749273777469901622323341491869831594866437644478462347967788621179313456231001131969700988211954112765272096266580005897690150213457121994190040763916126294055356946600680919572851032704646878884189692783059304174087312647093958503677305684007333274095397216531668758073291324646274288613333082468874868595459263286114663388634231682891136953175580565270992797702300277700119625106316833575162170739519075127152520713292678456882740200234559089199412990661036386344544229714837745134738254247078827182039219653270317206202867120009071110045859453643251257432160550764055270359328288139988278585452430792556610767658578135215198053844501337750827029066722145362981916670759431034110873107602354170774844253808244032994035937906724212948901591594203951034923498121280799728041238064331682291739928945314050979816858172653603039461565874053177514768537007403558847899103046476086761010117489806499020504337683758893190149750251815460829660809314917322813750988325638439547524799512793451150860579811036145795409880314441832238054441620209079293002471388153520719877880872506849011990822102691449269754117915951636604316265966537320254514612926914306611044448702846855621920069476827368443109111025084705663255652494476027785700672743262360035062690084732446495452732178876378919550610331670359057918236261831545413312183404666950334092720642175040364156290142186744973929050436946397377460821199821836092148551865961279290523232456673513414119510273189530018313455569569944186050574399693530511347906486661500031363660034987689087230274772801377203376154341414520306594544398141875160153407487524839813904630090611909149280139255236283357578356591425647866929119769394835994287911572335479823750596451472052973824923214350495640059880987496918944912913399948283179539384040016110123178926276427804546356451390052109373066904996202476089198529183052022478379068372179103508591540239384932164915711892722114027427616489325612896805018162816437687221389271542853547590510764692562753264430507141467452836529405525649777129860895775312033559755929557340154670949789520826345684499460765024358711235052195289009229679997763109996389456020074296708548664848224299270550740911678991782858149254024379389579000204124984548026875563000659298942484367873411359578304738504344380690758945086363746136446503859001308022879536517269164930382887677283134211917341574483259878953506483496262043952242988181391182384985360913762791631056815959356956023114876272419584955744817746593702852565144213935989348626981607929145159364776905307642623701216701618331906295707341977095316091090542627741457493813323911610082667614292892979918771725504235785439540631097769163173633490728845301956158459574570626717023077881102077847202603030661216551178750167093348514587557471963518048446056054105576471185440116204348048671582519246274860160549138161630194250883769122127760032853467324850170675806828977002083059844383681608077410291325787600236746093698000320472260564140835136085028123773445426987484743400797413032951104391340651989350959311264096338721719362341443132590338692847918758402270243391287341344603619073831235971325980073083629166173419554168106030500724028078059033840425430288875352849477954102253088598401756688446258494129516785310013644619750602149236614414762093301070111238208006330322227497012858125395984136721514812749331285715332249171840903707674300852985009480660475792288440986280851848362588090818545648601996332865698989821240214199101165804549873622914973537768954892838236499814489597260808295869344569868296715900870486832507719414930698211383445462087798211866543350422651611243193169368198320542446920879782596814032260221606297185834413368412904322419003540174850211089313828677421209950886314335724997886260781469023775970567036980361117075910423895767678930866765659356107184847810643473424994766513093007150982050652281853074640316716897636732135731483610881260661089827486445255247277516702461121624150628029751204369633600285818056646092088623312461445021809930121689123379938638261921155081997285145730331740542205483790366103083287289448984569162677107461813278193819872320827065628509463370813172358880550542839039345384245794059685132076172091688864363936833398779599088393973774895987888784458012402736928964223407562563529899070324174244313461123237012336329984869066202543258557823674198773979773234917943063936865962163314822735145595450091494188117359771934553703400052638029550465893903202506622949710595846134266993633644053610946116208722978218648543105598186381615023729279221626894683760370118229971368393431249682969032427710863844293709237715902773276664318499212364922297874983510495878381856878960142297005009400659922795178626757252237552978317245123933354437035347312101524301489432855474546862138604099374546642442135692485376833099341720140905757662707221492106952687530864223511088238817879368059545464153549065025119096249849497714401089347651835673504112414895779735133203117999788003264848187490496299329922243305128432977425101196967764661801194365161317348851004279257869991202830341345977778257733196527974245227694473481560479874718511861434577079132418240285839233321573415308600416855913711539461636403121984853940609528306978000679684594012072543960429419527599563193596077016072804486930035489310911350866656981663717145413146043937291910345410444189376198230998137769063807062337425980304543975294621196097516044916097962738958778238377085892435512170001171124210475486455245527848417338643506781050043036367144184305973192764181436236903089499485172784829808912218656888319923887100175029450723980382781011229285735422997681224994988381776780881207741700623943045114984422721927080320322279039712761960947890929679722383451224327666451108793972848562905082344923255263100735018129950614803156326965204903770881441854148301697129769890261587370692444592627692294656175178821692053102757271168815698546610101733552311774365754389246094613512478025126509425592990270793530608189239296334489292512695719934078759316876214920296697260452709740214130787676897536537610566318225273748516978908705984927884200730287633860594842271847258675346520220797315122174257903621545287210684909879675803656262967982241364906412906429851609154689513805131835334602713268324169498319732740272982138308819889772854752030560351120148518164380406253863626944452323634347686423152671866965747968516527316451698605837481839311175182105585430360228801254447581905702463188099415869123753345975209037557917137790236923197978529563959902387728882365987907789569105269874756405890909980569360812563163057161088831006093573972518301565029324390442108417118323257046288698943115696003737912086808497294979237527410450065007092340514886604953881255961689966687300695937155362032441759988285768308190023093054627651615294714204818420202153737710965460889443417181537119316064330248505303920655956847406789554213949528350962719941388370361666295742279752623789702326452596684494076795662847366585359906719536098709151446498054759400523937731984775588782700196357495111652424464594237451421894985806079051334278126470413946257809412350055246502436169379298824963924969466056152214130227046188336984562280056582554050345543319069932768577288341652588225986718824255603623443421609300792651847819129648645213839356808609607964469075548295523307383361387891804707418637018006870567000939080215587421771693682618383645215248344917440650463416831944858440360303967866614297028703932209042270296932230140131168884871050683045294315719654886628894741918751239296411570448462569669000404563462052413972918703584087461273216157599873758104613202726432521407614232825859114647220960137125520318802537413083112301026445196406566704253977775574182432656518862011118938211223947702629275076985624528532970047338664264587336984228583328460576232610377613109367177524350153614356787814013047565086503467807519165782049922709596057244269460621986750154287413674256202768117699414399883562916847295834814498119588449422874050105477774010591116206327703255010779700933922108623542688701528779075782935179952455505663365208440868833854047248653667152412855802617695064654805885372582541864890117636317510573037033824208879207026349059679584133201848422301904697575502345980225792622978256177916557006764988299499039591611986916641123782916889960583356526109004060350649030312069085161586647909622660004202759690439363837563339286615112975960511334465170359791854873915144850521298577012212921029818819105444426017645880040747661561217918759172498006953406493566391814278805552231132119756748644680290001771790250297309077284085373654401179302478406138286116690129644789800288033970330792414469426688476244574389011034330969039966519164711054775672333869286561455984820838027008300451293226580963543940827008174759519995313057644031001774637083990329342731498337628933106986448256118013296317898164969638375681931579680930910879291058961893756892032976676890046062116012527400042547433989234594375526359275663727784549371997868955720313630048703356404276007268600702660727914786607671475739435595584425364704238220558509886852174729297394015137012586784542165514070273208374921558585041825424536383060624247967341415856496495577994384669935669143347754864807116406992637995387595768554404177642842159302169918434536799094014568654064490671444755615472378542080477582147651464495370197122911251102515489571607262692921892272627219367139697649655158577964451361939740683605673291222238585294647067464893346510915004171539069556419581540813348556790926273967169339367364441699470450748846546611373965778098453813586362851875779239070887702503248221861356226856501208992828665903562681247101810217171540743100256551965576818549333478660413095744574528850981304001434964252245434330200648121217159448273652128996651563562516372388489560244993729043469104227306327506040475077606427532097522411737979500646078475986600396327058824292503712418299850984227170664080579142242614396423861183839574395465363243318496327786320253839783113698096333676669006848384708436926161207078286669180668534231578354145792517930716758949078755105659884426999164652498096147207491632010888162534434745766132333972598653139312268604294835105475548020684095088621732097850484312078891631979056817413275505358279932861189613098548601744802455764747558266436742426204609977272988928625652236925470866520515990397400684553877656307924271408479024181153014730990134183815845339731252957566553735259724065925043311330981572699971933114385360848296111561168207110046965610766074542377682435919707469366215003942725778864133522301938934907213937183998273974525745404644601837247683414212466730825224451605482948276769466135456881364939717933615622415781572013496646216856426408756455968013089202923808570987789598568284139951547246042607573965368702377082530740376697969991162456919654866447077268344124882432831930301950127078884265630285689851635762202236177250110797680056442207171734078229559218431173978794507810071998555559285790432107863858765877289340551325902564322802375349993901018951730417633263475575092915820510694187659830631689317999606936820001461337559669661482980910231490563586718009348340707623668819872250978270569271801275979780040413406649714091823403233848639591828132973089149069854426317839761058630040915294185054272263338720156883197962131719371021865280066317664257828447235642650622247400791275421195623688551686931956617326932593971457695742439181736385116378409921350222888090062331664497581055176948518006613784274574837499684788017026763879070509247927596283239966668099384972782401693312584392006902764288705123310274540803169945982857035464213871521024917991492030604839692207428358249826054060013897409031081559394013042775298023343598793070812469188304231825753580510548002080939044263712448146314306375822213324273530103579185860090899174049567307379817857074827985283930348432655620376501009391064171008210115470829818216788618553570563098341095600774389860552354625672179434292638900154790402462898619235098033556173548404325734489838947788393755459277394478335822335933709684177359001733315838822353895626527579623418765343700226863945219405149560098512331764160654559001286613387491246325666335940254787337102561498645230431194367702448988210110365987028606773069304200644869589919280124164072639325739552203192242080989374144448565296549712592467871681333951664768953581050045890774131351323922308616204864793767534375869838520152760410060552431699424153038324510051760085392180219158184925585439198145715537546277796496062836490527101191927711744259552754206460081690174946630840100210221838003945747897545809554915240409623048868241906852766404809110935096159451033472705087999843674845618432592632237315298062253595778113027701737404837451173934071774256402328371330827196793439620844229401077691429940681855427175116242666077810852069157286901495026589639618523139400787471834404317029218344933183284885890453506157807612092998155682088319388608363208944453882623322139632450833404034654108194649077311554400027724389580446251665567543004233492148963395526970024940053226189012580024278980846943381771533649707736213247605366932857276680866291900937438723741079186265533750114427821412222443055670021411780135397793258258990809036739498087693775073242899558047263708764784446168117224305937092250829701016539465050102904095537032994898441340207623814615746294200289275297709333125400101770303054349978812979856216302729916378062014479246379423305501069450174472718876344224487243560649030832133122525006886385534777591836491027260093885463658733658834038425144022742284752081677371532405687827278512799600545446055875972354872400062936216647561597684831574084117325526343231996193319613789993816083897028300586967347220962111532278750254119817835112598212108654165804177651647407904310730242156433197695103331453538587598110486786293595221115751650578570396983921725709411581095334678112483667313036433224297156891287098446256793686223202229057543455936735029936467447260376972846506632191878204587735332684599441466382903168811478607993225357864308217297238023415833713577229069285149865179933074925260207253134711643883917320437192471764355729883828135566080092606141064948501297146776316712354478849420959438856682333295089883780570068597291959986837862026603879698599147971329793221886357929294295130500712706399304373324554161465958331431738456529811093467385807377705790351858668426440231562320900272685304879505805179990048862029960118795792178631786390881864896605348334649056179128222493812570616669038285528887583312053474986663176721049190962956667216752662128486456256183303730546902849338200697903190695482258203098890111314456732632347628868660934865951465859495926161597740904496249055010548847120360943886992868975343214697308658903723210393968075796090167476616469674830134876966403957442540686968293449435467461577548253146261148412321545110574734595895313598817719345987641619778111694840037200494215659019244748929908092665196771208690829999179662506656259955416653393295149428297246587076690295439385089747032968234763620114938352830480946100351716028751829574985257407357160462445536121230649378889603916015953596760416069738191260398813052283443728277534511873115984411626444470671235652501177218365259986078140881056280486562054696216385972515508980097235792226564482498050718529496917209704534781098063257949948637091869093947325771622351652945579128561063979140768282418029544697506789638832856514616473384501679226334624408384955824479381954646113627499878927769070965093710989539677452687489481489976927690728783689925437989693149111432349323265624204703556660332829786704885491119396497817098067004902688021253454246525316308160528525031712906348356428953364726210008367983364365558957438762908960416392161017350858773305085815312400745490617114029842006142194553367358625566376283405391200966031074943010578578219689847400667323755229317083556369423601169643582678120889562780432505268962110423232710156752527002689600807500807707291593444428793967066893048953536854407087637187144287642027164452050887574423046544489206496975741809379573498205730123209859489531467382234406665942059262920460306650988960343301808397994074591529963231523897493944726662262327935493122728658493972169269421592721224060003836627801896493555183608309058016658620310770908391986758707392859809751786614732297576310652263600353338431893496331221340463695028030410607433305462693796964707481232284289556991609159413867606467375335131400917855401969501807602934030645109795047978167061949266504548733450218054344056062929351957526259298312115246188990503283170961772285703598520099948979409621538312139556837152355214974022915490547389061794442492889511837099426314893734300073094630204464371526535818528880142516426213461084889130019882333592226118160343393899983158527832158208564220233223831001495943632510145480331760511423240969763595453193225217856645584629165358590915404877713135666093761423431349264685935287207372170593785048252001233404975073672312712882646889259658070401741210018430593433092236551948448733398905250021885587526814784423792425710154036870200099740862941198983328390148266242129991523711146543198889575373614169228515355608909769086997104675508985625392101024681085752244658550880610597129311023932441387192030292499422652999350159359443035403659523252877309470230337144893373292194499493667278656551373442548247942320974703385119754262690169625962188865289841779575064676336176173158005616833466034160779038022478427069392195485062557686411416145506155597984294759456860064221271105601982063182848997814773117077047124094818795684097245420926431082870988582682432360547804451645203743987725769814535481792496248724338235109382303685951189691299595555808544253400813155347279265391616330895472911276285846078450725095644272848909182283811296624099350477963627695171653347044255280664774220818281358028783083306787772404833075993991324996990482647836422108206060081213347923847568498232202175101230797041942184178013808668318433251273751822825142573563478079167013300372433272236167117007532546002690586319146469887304860375347116167740524195095677934168922244858653206439869091655657906961667098010438835902569403798872332775197269824164011464619591806810387103865249362145916819088618280591166548398162719092580878550415578179151014870714735040174944594864133980452666677455787774331161477256265543107114005985637211747515702722051608779143421875665988860464277496204186907693022198059538675269235346603756831804332362246924400854015357753541398536501490296860042551383206564210783667342079164935516002314973340822834377963716110860362078969539536522498336927897013360218452338125123025413657417564364549542460059154022498327298443095821539633932311295283701763702824651986630980492641353132539608879983798946622793396447058782108585987486172969021022216924394144381805008998916287741086307317740857499748807715201382316241048898039392765539878363140263701362107264652350616693490323762272100683590252394097621632891954803610473619770264106407756097597432299673643437122485367622463546172915173691438678549821810710187317276900187003757575971087735297854495268713023681613175952930120383147208930279440286374747069063918207052799605898086656883692554898026704157508266609810552735357857728239662237877733999263970658755764951647989990023069601947328002533346710556900080619852408225353286928327903379265247474437796340633578711694411807764845699066286303404091140202900748203232898692139264818436951234769152485699710277542350991933875596291415191548101013082962723374724676122031372447854064751495657854780081978646120691729439795824949256179643214599880533211041519490722511706019291977373820116247359333804029547613926642961806480116244628391908167185360682549789111983932058003589586448194211582310382287488945867204627276253041669612715058776999048400644927762864562121759948242721018287999398732303828554378533777106381204140921910539675155729419251019826213187322380625102209453375604793801104947646083718618760072846268323416632452210055154105142305953064805185864385777509690993914383558617028214892841383165827954909225314295793437323222474279363146897307206747878133608869367102332712628314241494491904536281142139198082396549174635153765207094091288071973650135976617373485420969076287513936210146568786708565191184627801879008337966710118207760505233333839508132923831739408708396690529382283597493484082166195942791706158156307016050248141840837195583232387790927547319468584442255853124978620430433152727060257627733365064617040497768281836909853737327911828144122890028627336619382160736705190277347047175934349260787514039859474243127671075660669910799030279921815568572807503841394572567791408458976349916257297076216622576900091829619061300143169021750477775461190940581947204733632276502870216202549160513099691704096480201337248548829657133678446490618456555458361246485504365639327263421196115450159531126485168578957663544547252205029514325362938693288276617047083244365046699523149732703576427021866652637959483563837592117617809809024444159112003153742709787902350839703351434026855046435702735111931764193355139545233552644110388928525441386824767768917297801253342544588339716610975042795242051074090836524850943311968827477481936475804865032589406994438768170302678709260895612580609433420906418571474403947681481222700275152081010373537055326399796174546033753863933556595355663982156274829399060735062584700411508677312868788632902233684071403378676389899402971819743177144083509648774304616984898151106543079543732754254112981184251279229625795830512467466955621315736872762513445240046030137239815681214926087967474857337471286330938902214975350771232342487993373710690931860301111070185193395398983911178240622373508341620461114495727905338911574426018109301185304888348132964100709114630915872749611108772391193904678998160538002947160742755026287775195111223221626058574212728053526114521524301725222196519828763177034722416606543040933326166312570435287731272119117097287745673453935229094203812443912174322671458126873601471567109649139805563434425357271196324659207946396160397421252309315920057759468920455401287304981290341855830203028012382609573567287539724969211933422688526650549336469575413810497765443893915777435915617160992268298604998411107976886071041997560910551042980048473767891456423540141728486497509870287256323980280920959580996563798441202298808247377896288167247834308057270589869435121615269184268813277723447283150369845465176309891561274043603831421659088436201245125506713824756916754282547559443000420843358955103144876059669725084677900735696669351399839162995335699023468070062619844172788848539075437454592856164964387313103592754893979768835995372979138610389876919960257795945626417306171290833208029712067100261528172930504162959127836621951646675243833211805772828702724356638270419079899914212381623323016597515940302570062107578124160837062915150144893266916260077202482617329284800438668974681791732106768869886656821018876155455078724666643369780551373926145868250438089049741098938058024551682127777311662754211495245545724058792136107818314075750958832516864255823838770447048423591917040591222584270324972094451039569391884833649389355623028363126708543156060326491489201575168269677630833972954848446782466102534778895319352107618101508366820931423184060717327534735503836121889636489871625971222572916046992479288806639803419506903805787040448889606644600763452052512127796205316155821012750473232875894839063034825015515726681784309907805426675644389309918914134795854769344774557553573977285890949686099925978055646571667916412899222838130133736744827824780134435095202313010871383564067123640491776506868487831706014498553517045497831694836625529687087319589726849679225184310951166183647581981968516120278282473430736672674347411709709163482794674619926579248684638522691428612794941689064505574329907190079378780632128835695239824020562504768762849653594847777174075458510171768417647843609439830825122382502311729053284094595294003482239845596253827897358796863421800001745771767591321942195736770725237701786719084389716325522074736464743089694272182549562392812824868002798033675639040729106086227416620735990935840102452053303694536476755883811732600490273733312923411068606881578594460546251383904830074654047919873950896021073476029998656644089857628998406725741249963597098465760765605274462213858324251896517737862967808575744949261981539474308805711157911312227788799039976921630176718274884575779629904705244129389214536906825552402657473751479168375930574415741815251536952739029624221248293381395033310158937213644895667348784773045100202408403447458490951525877179146443943426484310071226539526609943061361506717609362692061025018262935248329556248810845327794670247828487983762393653357503387368137033227557563180577304944333985407691089799072428394417138167513145395206739718566361708927667923713718970209918065257601774278974872492107094937966809672548794424988129692994787834138201462966107669977651209746253308402687245830055373782106789555607165713174904056897866209056763861865416209785904324771669769214024120145733095093676435916202210164690225503513462800099710075787213273704416340131861035579590538740376813029292277768706991277058616871742576767871510264982985760918568465400227920837331326324686956110865827136898746984852505302793808765955154956240924332842568288648910800484763086052579611754846923472534812635712592788452333389134271602516429962461939833207091602668868971359930196196030949456091060218971638288971698625985044186354734603505116953962893033860524817074685940904059658547363582801058387846554183854872578711994995876840775020285164800878099217476854760453259310594438082075444731059367070769162593736060149487879790067539757696106175079406057978316368505472549969218699066891293127905436451803763456372490538672065887585821426210434759316919258059905867387479677951818950002069768439339715085793003572037692072529540258545945408799407522599185617683685416272825021673917263401542980976217744381561844875451642690363476870547840774160577996316489536010992667160205074088555569765480242165946118601338389566990236953722459189243373461464194005280325360053670892580885605991446179171874345846415235536494418361435994249538389879605763807121754990619392347932772458405625112891648543289561167437736985285424670665594546961363570074233299436652745950941612712827926885086664128264154085659361571650474627546801651767263983694111747334184085758019215006156243757881730581193771679558782739229032705148902520751279432817938045388058956816456815941418992162119381690600676133529137658057659472087615158654254941091246469171790291463264684772435042291373687033255061160354309271272089649724324053771210296156463655172918238302207164777232691597398041430415328122638546304886659978317014237890865660208117479541928195646904931493683519044787335846010445287434999905949783581620178334174556132672324649656029228619096559572092082294447566825891900855646626659793237426349008736681625498565681488342050279467014174020216500280612790079469164954204226843809113154770325477217141511609265913718106797390165212421789472416675830234871935265255439064831010336017173502102038304754810864245097478223649174270973434507622990107392300079748142749960907144485731823855143716583912459424773445734193174374478599956280007983932778361138343662312104019580161150901891199123842719962158340018283043946639956436119651975765132352434871395080404552176054330798027572671949333828612821347614982055442170583660179908565832528608518938936304348407171005117015722339310502963629853251137878706994336437549365934054337691179694770150816502500725052224386150378439747919977275854369387514997674440952652139949423110277284752227213281163598059467071552507471271103088841910940542977462638286313357003982852476351883714164012350100097508404328243988212641720219859572419233652202424698592505781309954830117942244952602385856810988577905026309036328019224067470353976774716021509564905437582964059161771213134783873362513804100800722781786718618936580498251512817214271539977619667402454670931326206027627583184656821042252615879639276209824451735432783750224320656267144807400043660852873685249458826899905956097834685847032450662770059346929693298061479859787581619221259814222433652463371387021247130002887357933197182562422878536449615327471625511399343045973169871288643429929480679742000554636218483636412200891212793528217272728167452170216843063015082869472622341919607274651402783195731333350779285658155862412826419232999391643611391684289904393397438029169561676191646052108485122357484442737647894711900666829549692778052925016661335122094580359620009159373553422713517096693381719396719865969292690560115189116957729184542693193436887012011727540017134242119174030055367325129837044060632618092508001207020430906893917777952136125302900677787281056934457905346067167993628171279580074502498533030644849417191032388567972833471768813362561409923656321672278088531004347400104526711334053600101775233163237565888394194169493787999973403011005713155375884289770093646229799557340376818976392430174240471945776868995960858822777338023045271962183231313335153460237689728292273297058947994878803167123393750612792319053459125383821356083456105821861994632599374866259965105868211856129433701330991889867879811248874686969229892194986442029446353899130079725750484960451050541360059332748661914530894854167318590727296704991257237472410564634000706223953512434787588082675586822474360592651768392475562239277962955685980060343018890286098851591043310020319695190156851208036546337408594253229586688276845286901562806837258347782602053705501345984117168348767196359174708915712607592533413495330638668193873014618343704647029703953160686917599770772070503816916488343618269501282255930624463036395562849093627049919818782085727067496511037693227141336635190514072437469808992622883859114001936792262986117203186694178094541024493504260139468126620905911056290716353291619163268842625613381641483756350300163521816077476866001901288376038092368586458191165792516855817862531445024007207496915381049205812910548569933033656637257234801128883144220370430149898326801650750666364314330163170027011054648678596779146376026142306697647184335306833806364437975978218974254384186406752877693674922661254668655460074158736135870096420930501578315846283687071999448606196890818188276545072004099964595266348407773548973904483064496687461952004388787033225906185929427632443654852600689103288625924554877996304234145654739534051160248461291749978243666082466694603922423403518558090061193001688690094041941602606369087548026745933863534306251519075193334161112640915053764216849211638832439276525014481056785257607584861166632564042906853144748260305773678378380838036763268713261076151225105765458815904653243857175804299756576406122714113998408870029176867433308958294332036032673526508848830431734633985099970034781993375190917913471466764041058769091025599540757781541211850414462517651694088945026742685664183322699336927462826342325652741177034289242239304438297418338385340291349909303901038758098443178882776470635469502219568319307113576545022058384899301078849575713513835962742060010693526498254407994929723270089779660321882789797796254455219156278540844065504218316153423586327982851766766795688907461912756667984818457920351695839660836757664924947090294782883740296666599439538547037212518111571455455076831402332001105196392939946327832040732625124400749745162996564575348376290657648780559622167497767903035435888464060801058133068744540519933551893357224466540739873603183953629902633205194489730714223399169072457323381676008010030951957584513878855621637257312397761767775577193893050978718100727193036033758495439782550047664596312078974085179448999944742259833436355825192991320180187308168713101480903915558043596999393130017534026944522056949402135210122136657484922486984822414769754895474240290216894163310587939637159620037184102288337574416858811618752116280892897049034910831637074097017450279764598346272102243149999067675827150515009446733428179941248273956679485024796566302412447828078438306809774631112716304570377762468863823210321810099905702804566320550636682087239720471622864407316908585079087148959788498810855427447246616809831211132733266376910549326110703594785697222136549899432816807425442141614006409988848746286965761750756574139554336383018022483510957057235220261397216626833666860017611895582449554803307109217328834379803007135079957265630041507232546878455869270037739835348121102516069005624303539787598122894802297724214471284183407094746943408436677370749656975456650193728701228447821837406501696545265097890794545973302865521100530009643383575402017238283880858121188876842426701068665173003042267698478854031180085864898460771661322207323803079234334129199969882668590942355272399365931749561204257735358200732905447324198669751482285679532777471415864005543151150655881075423892063187509473942858720603339717690774858980222131416897411917349315862504984661932990405581699267047302654411010213914251177304558100067604191874580743832954651960220583099935037419154072557083166796294029865614479473748223211335793403027262106941289377866328945408705119381276959842526492728989648685935024339793946752940407401754062588579716252424054237086131111395295796298341690695463557966046001103780029816144222495247357405713455167603186334744278809748262555082195577566186326258393290680355009193940121117313475300228117758098721322176659666763643203802006625396826067965568062361055050298814044796920974309809857943626090148967979787524661764290317835905012634501877183120535986340015509753550900559896911222224582210792195122702148279059276605771318994383007424216692517550456621200652490083763612045592214260848230571063245563076543460485617794155060511690674710680126152099254692998775189488124896185599601090513744877972633515736082069751476393959476843616555847525032287419078780963082588801703550364773645039490918619069163009061485344140936838945455023126104564849392722561286322060104299624196932426395585346479646339761920509543928381151005056714139289382142186929683952461581615210308445738250549651922444111630680273163698528850128172175673746885462323252761460921160046232180811647096237522147811714248079242616864044486808756332785828433906380404986034126771997023392753489505176588416477883319863934720635782385056243060982551322230766078590219273170608642975720531179011897225781470346151834941088669762906382532550093392314423961916263857516794403645918688174070249249814496346588002192020000357263593479863683613564253514070997247109511640198019708287924837949576025382012733690717542316183493628598832382519680476105142912991102992163022017625865469679767831142683331360087271489605777656079962799553571391535150150304199971864164753151857722253294660993950396966277809377272008437151355053143033414832172120135214888340887963800677127696758760581543655641912253542595536789384359770472023440755575135903462623746056897813460419584893750315463875322084869772277672966853003321755031524342885494614056094718995262954246719381134689418118271249108133972662725977233099037207446037430778113732930481172566804807043243877268994178712290876336842315225259146331555811075960658218613670770183622516787466534553825076293294452644825191646552828195741512683732171337578191138908095879398892451016931882110939911312907187735304287783445550184003612022019741870541968227724747687174507865930126479567079117232754963411491857959299657609700406372254195102998962642829780506919750275006501345049345122731310043502003790321403149485288758461687946248925475578052924538601643307815326781030387151871187488009638697910331103614080062706544917549088939563634087730881131949558798251874772784339856056041306630536360896884452692473216396542219349649838778460607195262186353280393882501212434710864714038002476136419698470911527697482895068761337518792314383101687049445008779200152722094294420032637229494297406543911632161374341528132954361535546528924628482755211884713681274002631610571064212698585294485866230732063180455440964271813744285254254731430807309739405342460748222819902849464780519624222084154070469334995012585527933126148020295869359753331171168003787533616335355768969678862438995351459627571217768819789790388739429742185996711121294973808054633376206228370314822928899648304349011942615930978391042211397517033370333959377359266168232272156423142717066132419839591200852304759085117247912577872861431454575656622142264341843723052837622404661752911388468774099951478773341644071189686349419495121233776349080727182926855499192727078218622899004358617352305462518204217002051911763783227001344839644963346404914447952243182716518398694380507257056961027447893083824133025846434979822379577365143932609158691930373492347160988406469408916955147608888030375813577771760270075611212299570102041808896769117821903354604361197113396821378173862937393796208380516587067041665879552686240336824096136451965366808374228750459643988003034296712276772003566360851835450484214917568116975021997908545085281332563496038522757452393972651122818515725576697297844549886149623105480415911841522897586877550688557439212117139629542721867738832853996374375843101385731896657967915489129948913754356678859568209255116406306660855034896376786654704586475962865958965732589379096449418717859301207320269019110229916649672503289376196664860412425769432751113380236207248720039724805236493999335312855559262515541883878519501184856345588226856547437802014640598704500868238381661617934774995613260947138390037897675521501765631814385896296620912735538429646818873034738830665926089652006109192865627431309347315624454475616316540562675109170087442417091266579423956501770780601210513641832027076379906174534394447795845640322314495563100229547157316151901790198232546286081688968170728937378596866604793218520444978749718746958463722258886659749228714300547341807579315702823473124689572359826213398894141422948929785750655087848112526933741606368274004182632573514256230640354183027345274685763021985096966390267328274150981666694823752004058542515209339206820477768391912420223486954416264327562942848294252718713232734982541186841472513686553053040574617404547449396576234521110163653163626474025940457869726169641838553165565649858733485168022676836219291297582075542036730521204951217355073977163626649419453318678614623536874093804918541568373244184843376445654921491532282982381948360210627725542236758985583625496015904804907198027505278433301644815993787018596770299668843227108148128925174447980611700629670998094303522666948034271081719921735546943499367078997720208142303617291439627065150439527146635781526484992949022429754797078417061766041444428894290162474707941019327531037007135045954931403374297832905160668619099169370101374697400228281412789493578507342808420451020703699052077921098122173466977579419891049078762347430742019618650603350610820729150308065128408895010005721679127581649093291893760969356150222633377182302691963016076293134302484617109008712930854394433978064371485465893274421003272143817474516422418121494241295884230572041037732340891959320806116985586449449944745418145647609865422244579023661853413400181845941290048501189945235660649678903585225462906247740944909045919935206572924702654778583331329158073463575502189214779485238848186445965562311345058434199995820107804523798366597060682952534416130031775530546092955604475111550868902908678264658269283252543495396528848340574281192716818254084921376502381228425205383057644488505315159196307887174072092728400081857513731659682132627124555928774331190273322074183498884024182819401055100520527823596439598916161461407013203378166011423032298589217468915957446174909942733169104642746792258169789212614873687232052956170285757506384472080597646157605923706218278640161887077424553694522200519291981705870764347470726836877680900335966152842074140465961900393924628083955556787636514466848174281341654432395318117885667808517112280466243567073337855361301607135148503177207258642635092055298323911184835579607532492840962186753906127994145533240544798081686093280325859565201822273729028947825161624842994892201286691656770963442782948832593751038708604280607139394157115750341491146941596648613011001591686883089511868019079309445665476197048469555185157354628630097696717272332010851597021482681447400249684161144959512831775159236847810048050133964223216470087377972552671164003379734195871171260535295169016919077164132390775025426426053396337908021590913661049713802049374761103561756387981820657967063677378342952540182184480000406628786868904675377545422552436969067214061921986121688162297610251007998812408731505772557016400427009742577219343481294669304843999281079005707786034628967968275939592716025644370660851067172723460710802254463892403737956243638130454130432779757140713964924722823354661828027429452665210945419752606126396368688065506054618011820687374947409712950948901052827892157693929495999285258352644537770962409354973275871469239949942051246459039166503018461859333618657228469813263326594266662600985759115615105081909713988043409386059536525572418624582881390801098708460081273533301351209820757873357814204316728964901671705022418481537384096684813605380022541026429712959929228810536366980336303579424671197845140538747635603415991243270741491099632493986355003407811680012314110828908310348474501384735939245718547673481155513181860939084228135051617307668585112363088920199427216198946857617813041360052462866857242974100242777124124172829961890579406911332334216589451520780907249153658981398931891926674784816734919863863146005788059978665859924398953773394172621218844819501814524327159678174101019923203137572350878583049404456945834733060746997163891181027533551051584199534542163085902686474354044560383684292889537470366481951720755936350228150549393601743270618868917799343168881190916422956196721667145495159419432109326851950435138124609066889205743828221128190160130272668446350819245075477607441251154147911765127713875611188234323257583090368357743126781264040498506607053764914117191548254250789359974074679295312843920192215616167655597654200994673738180277744890339523795632161963870513464953575520289962869013056137560202783276845245176734662716090263470693302570001554889307596392430134531618191622928150195677251448603731117373328972924614927890226875901602267783170892015267783515777244228896848043016687592588584653960859785277146898931689055161671239047870321086820132705534850453828199405166464428934994700883180895399682878857939318472625801267110867660168977595386133507240662074486767165391309371219778498074120963048023823017383451567121798143199226490746177815947229143452470727139562705758041328625888069250363252143267638628226003161993486053339776907588431582946396651634577467258456986955957882109881736460693473352823925547331537779655875298949474564208799043283610838538976583443563283585276617786441521729465042405117801076834139356005345461171189735119749594834095978340690357413981884859699933600691528121028614683253487540450186376438346646592273061545030524614759414822824761031456844970839684812403957912426659691215870154227827728567233399657702989491219640604055672649898651618882096699902986199031203270825540629459055819684035662495994859273469095722025901589172745397872454107319547212578294175444482172491780794542272897464087003586412940811946729679020527230333838308385696354547498522056049227368028822091295566870775995830878367248695770726809157136664370418776915258407721854369855395690405638008489998862608703140396546903845776514039494835305712753538823324412527562988718705757180121156561382058091362209894879685371700014822254538406414399048250366605216422819641414676206957642662251574818045640289298316537135339518953859216789586517583262141111324867728162441495946349910365247776143382395721408384085151841051424821283795617584972265587674123159078729032892099518018132552119987198914223410805183285319900995558709380506643781953084478409213276213291448094044372646494100889745232621411461209835193588530341080145798422933493552636444810874634399190746829214182482139459936836831598672179194586049940751620174793404130100782304699472883760836513038777180175780035879578158881467851517508053365094188710675162898626156846827697815360074818152720691336305978522589703124602707118934807993480363020490577454182874049943724926428439405599183119019614962558381968519023756412717977792193294821058004403486284519638797118336957103266148680100147146724794551925625131288080851362184402626139461792037253642070973487148879996586484340114546960251859341986923651611104825458448100001900368415023129782317012042204928079161459210271349715503261576508016980265943380726614528182837504404962380865405561148462156861584305459821348572676734529992725895629734806530110766363633945913086321844791210270721541808137556376017524215132696160123427751618478844917162371903186006365700711818242839261004017594601572553849696426502067016440388773002763301865181500675695520040226902731363784686828258550275215278107798682102092735346017177551882572910644422489530617285306476643527257847284886895240715534910871181525589529419980774438605632023391300724156925204099878396458381351523586360086001942002847784443058191529663490518979440622694166524241768051416318493620037470871340088688879908384763324019318726064208937757743647465887903823534614957292976657307455020560284850218234663518313845924565495845939351549740741217594043613625611110063601645283689327616295961179488322135469784923187531275522587352322419967029252936745891502214830010856286210423105670522610301092516491752551445742995808625566596998277995824355620628888365573799023985493772292820987466854788576066934326585342876418310629410494440913896426751567247903760220382413863548186912360908686982584590902376380525901566896648460389627198696395801262204032664098677394541092787310882299040416277403524725920355488253893923762466389876925104528463107761910969163425139827312678625723115966788644328430558547714017594265168402037166576936714927297453398814914001844313018395919549736628917286022542075217495062929009696440094067481038262642837223108581614123726759586675636303548784039642073179258364895151825750663195489955798912228515888570360915203964173915767596303642558182457102339573771155835173574043237541285404081224481959779808839715685458914929623150494150446898923401951244653620810744417486166884913796334008109813631139588095459652169146681533766119196199518474523814669093301829411029817787310633341807903619352621276214102060984931779655200101232768019462403486110077813379727856257996024299619748336991437318148168825973708421569002208349195718015780958244919265708111485444550791846361175885447534618671034604453334763199280134158595645032658122786724588497958134409032706662032083919904166413938006826783266871799382128242862367428712030217611295815774654091091414081756985078113581296264007638153406018202120668432772176068837275609579421343924248237877183738401128190274679829627835980567003673394470292029486012736044577134342762103283269466089531480073007069853605421767970026047091158357427862628712890905561951298208511861334981571185988511184590766435203674702699354088996159070220500769792022316383170522980040564130728299630383290831098191086570169740213534742034952042986051987357884451670612091698983294427832105153434698341010948236390309010281923330581162452333217567065050786948567364713209365018708642415387285970851168000174576787850744816775549314992843183054203586982400925535238534929815687437436555809458809385027391168976384423163997787479292140914571892642535023353713615524015398091660260206992015853809890086881675234958730336615796459921998618401640978643781697354158915645417546912664576060896279055095994056674525808494852107428477592541015976064857210725260168892831302977690783557591561345730800351525321604645099094017315409866356159949686516591682105379400895507398040359812185974945954349782837665530003332137260831224236574959230957147427680690027273319831506419287938526067905504258733118831550149364871040875341024681187611452625570945453673983877879110898235358684476469747173892516930912587995535194486121960341186808875004873522928533419899835269336320569281599563447571156626197538840191816962462044742240675451753179312300699150954800859832935567621752878895316758767450290210187987380503837284702321862272054644619745825740464477721047661911501985545315283293469838261555214325999176575088450111278866437320524751618528444708535131544253643489146092070753874445282089891185157463819699093644584147473719372424801499709986890880307575190935083615514676361901712174470875668416004227279308744406164556513855567068636095725148971539198748280706173012621093161951892229464399378821012045496387281127619076042398041882999349139356086410164218131970226159169074441581778156137898949127058079671209249638589550444340181932227706788876979473474356113286786655625752704258096063837003898508988182844338393250153389195849652363952993741642906614684396042046375175644945001303228777232045717375397890973235636771505979601348649001575668169951092373595708006795763399369449707027614091283066508246621826024123601316797609092109022227290169998783182529807375127414060988943464681312484477090116830961932496725101071753671374119725730483134829697897423607930644698227267966135005355387197585293114740580492272096880871769547805203651679418920380445069073173896760876974280775141511291437278773964450027747653692962316160085200748432145873307705778055825953233774928806787894953634180449472439366134228103615127137888064817084551567198971809399096908283730756382576288060349884661541360739919148478363850237702000037422793816589701818542694016229000168747774528642053705490611681310000144051891655139793078471594077804327733029957117125714961165217299930543960646593342153037460543121478265350622943196512752505264020657837844703119219280099648849304650431973308798668113174248812331976382635387564743039344384816075723561146774785683084071676907762823452204352876671681539416435163134345551924412316977385172344386577077002887092209111525913047537773225703393725146929469112987624261149292726752610853038477142342444116347721547196495227628438593733202943833606023346801706299243397716250785520212895349463746670528057230660877826619378213615720691701857006000350810744709967517696555299753638104872173923556222180889012820808271821347910387534637051737839142824179682677118270366321807589870840950322693409555620181295895885937008924507243175131883438615772919025371120476065396750319161925010213336122649771092765441616377186460201525740715169030203041834662328713229810326735043003764425786719062121323755375221944314593678658246096978181526388019580226348136445769968078352592783546846969394478525367244161587639068679451413765651088528336792237260380586941834798737446160853420911600058248504091255593364549721900217260815763327607513062120871505033342126965463288582300903219744171059888036737995500650916650471670089845237012484983305151560363080739831236704353999863880566361397610499986161861370582553379532018348187586867933029030188472309983193307462984509529629406083190626974597415987216136780663310067788813027029133481317740068137716400494406491681441619207791905122787027007730490274835404452101276855529311192685061700353957065670518751374951742524855825782861785817571415878657554526220130189412333797311093708069623715014342060766944925197029690651313468682965878765532195378774317269142658767444735911144482621622827056262628431926895657029582673460450150346711023632518941004502028874257942697672036359064052611224245313348638257696970671410993586673111411925935399669894999195992640930920660542374650562447662649661808754007000525917865115551472030240356854476450718301095498241947794676283821925633879009006631270592417063980927860379876855931401100462809715022527783022757294562800658248344318963166554406313030105351872105883090326824986046816273971596265844155240821933790699716161577380387137356712594532408317655274477583840985778915682388002898005795256037431582609693644515549078262187758335169293400264755725631873472195195696489062500227562997886241797800371478297929937560642556204038099168052221799428706974962146514451306717839137339636701987484279461545883741559124723034359076932622301619686423202434026771105563627076247578341939052037401424042137862475002487523364394109718043890864603695836227112400835041269679596041685378035314685130792949656357008415878702445316219925447938102611859304011825957899170757839660934345955368943852781834199138658992966441413812987500071695596989608951844933832130990404643474704445273711699564453274613724037883116932748583077407371987526183836112356178615520360453148453655391906811118951211680565228122438945662965868294434799820457692872389152615542329077879724155699995635966202051025748791463688811716612039163942697065084897674944751096681912247370717120667570685679783638912940520489954643954564476790949128460213466034445160991235413245418176165765640711196732343541718419246045153779284061118903574963178410058464980370745375570676179104401864656647533728295485218330583942202111832761124176819048086512990197947358953210398128334845379030224084988665828461807185729436415736550248127863637630567548882470485979833570288309268419808577285391897819136012516368707621635364990847801930615258743075370630072162365705334363533750602024356185514573650346788454617469416008062808851430151229801899502299272187808561525360319213474638399654100995295387437740705752499544480612710983672386971585461890304394146743820264500006958587676428727015905490930991534898856728371357448407824557238849315727685799722481761812583329133190055664593538295331810855296843860102131855746753431262601775137800881302834550264390942800994191152235813592974542084904943654640690633851680206442418192581816509747551317940806500514122968702286198650124055755964076996391288096498657205609364985381866891548301605495204270239395979728467232429834092011203985087737712011853565183438607018504696015689233081521515437084072678828495548968835751400913772167980593401902968404201843051871143242188541712759578269016187460197412970122824740478254183684986214024613102664296978555017708308241231816027618328024938528867002165195037537380827471991735228523534921015609653990639663528195118526387593102080368936044161247341245392004827327296900340107139653983878813432581873993338568649256663622235335423707822824086304687315770333448127898177728795660425405553233428767688931342649966175758821111495285674119791603697178788039624827092057722389886070540820809657368019975313591391377468481170644565930520732701954995535489860075412502997648392371216470659879617008761485298338938233294990987468681756887464065409376638376324951430315085901641275314111264776688323901280022706887662135839914125013222782328347562126481777428578461129027536554318326641980850895002945468504642991536458759202905302645915575720229856491075974096823989328609856692623177194586673080469002109064415539703447216599383710184156401262475682854330349130888617958964729651596309162381359423390353611376653733738844866972324146643415634330456310077982962006654799011020657439553872429416190105135401728755172528898718205679230457364610267123248411790286117481270801441842113356593374639026396938624534326080104140501841719406398775335931041977730833407055451500084676590185076887734273453168152586444632233453420067465574965642641546468624419432506855601873877451952403244973098996861761092488103309356333301882604047751339923368594511797975881310884548175061209233441311859777675538472522807126067853247820869974184324179993067740045294579970404921563127370970617858921483200109096209210631434975748164440421731380477918748045770465140608818242161515989678115975288087332097255694593391827924680852063031172035621621989352001431207104332746153505013651897511838336799719326003477067106200712051701198222218374299093269659638800821434867896132279797029542915058733739989294219920630851555026994725944735867169219248877264939372058426029982934362849199281124733375551257431499340903186175063767906500170906769757721406228038096242334887465287862671617977801729385838807812559080643451585906175834508764928367245871892546343136190102112898288310448233221787500001124881611518616095249372783434996145002141990861994060776421005974767516678748310805733680137659579057008684885831498677349474386029855095575095490470373438801698632265676895726464693839768837547483527438602763937683901043054704967661472284620311537288650870610742686867216352761431366628608784234846693101641982186447626292314850891412756032175826429363979896532714844935455334654806866520460798839832781504429037845943542278664204988181919118749960963683950956246951784811765843404476258582948901289497310527289136695057413181713016242024511489876756283941451644417297866871142683418733054178057341041047945749075342365370752338536566516729931912745155730126510504637663281305835609438173630750087669534919797998325380891929182061540503548953980404451174816676659237794011664312233764934728183414559124250549216423378898273169030338206710416593880796789179849585937628594987056273465647775226983810823360244571363659174424172291775901213379828037099386687698762321335498309096126265825613366537113182443230974310096446812709384950607533995327921827994856647275971855200541130898920220171161059662028779290241374054559540603773274785065353054483328985092185719503790277068569490456588134962673982230664556033387084817941047000548009148170829402149356100344500797666374012306913590479784680325783729942222047660780650975606195678321400426363321282947507623190473865701243103780591525388179095102184114488683701644225538695124916610400641407935271683726788441953111609804964138323639630858326367910806475512180714383585849079645491061090059536108522014663743982027795082149769174142480190953568212872596991533554463762645318116695783341294613775093114185643841438166071782452619271450630352124428950868840078370843169050810164558564301352399794504253299946403777123046073427084582468315368261876182338346408682445701499072320014217977977455782456286047673515090964316924703437785706638230831806920220153857563924058029083780819697594785046087163962690594069514382623055454261256437542300714925715975156700782902599203578647002607596102819675437266816835782437798401256171957876762548739742518459209249122526174060327369212983191145760404782600416226052097128710805309597926876851551623444192365025889265795325937214413681062088970237948616718402832746742644725648895115841316924035050424026654078533813495008410299105919854396601187460224475221339886816851034874850888121488088558557578814708548395464244386351050625132622602861228103905809429761173784253716938736933040536506837487895365266640862645060978950109976654475716766849818219138023103856471383015634101450336344675693178655304249593438506740940388899307382099624282262931342644425703653184932802931201111984064006261748879774939977980137230826516856508043219508770870974067110617944861929011033762983991751800788863065679697421874620450418512957764187304860607529516474593451829593560209587894649475397312699712364893016328062714354542812647197063846765532525088285891199065478109182828651119445353866515557858836285878918016823428918771854200267877426169177780436594361342475724060204560222926383322952426256299714642155990224203837384655139539264061175802411628665432695398149349145945153977998555949804296525124856986920285983843542887857192143734392843048533837744833924031242445605280858073041822638283368190495101569376388359511358927616547936877033498671196339659176780089456516027781462292834208951707577476366093579107368350177682049394847953281675287202518867712957165121105569635213275976682128357203994566294697756624885261702415188629868495428947308940392505899211017515767688231711845232022590387015941809547474081505148249537970047824253436447154542423168938491416543035804200598547672251712635700486033933369022660568850072963364036499022366981552453299005874325175789634000221641428195041069018639060424811738694338390301118633714754930532775632105797114329847971624757268445329366517665268772467556298323046849531385975649446822621405934100670320002510337109029582078251702414310841896192799262730522073502596700770965809124003018809610362157362963792964553268561736248738676412486177681945630288033345311811731185610388616621088240915242889659684819679554722712622280851428116490542806929647773037010879650310458226422677518829394308743208434515576778942687502638294909759296733499787009851318670013921283141284158684106976005821244973992909191559754612275575094293168102698400223179718958438914266549003343348939462240767350503406814991494480618900394695364381686257979811644106051154636500560959076875126313176655402298702326286543822937270435798563046235911886716788886716057343958878679847903129726649447293704205125422874977898101612956467791510208336214736632851626020590469025753922406387447915047574992311168641110966903922449862516294303686621857135621326493308547034753703776354072391631398635103504424552286766470367054539616869821753649599144796879446336073147754400033883937153083845049027418583913616485600861543103591092480804148719130886938533311199405314137147115529001587517277819296622961482312700365607411693520112404295815327721272046964823389918177852774973345839004466095267377041592522626901661943846710755522716484763078274526356178936713135254307427767001776015341241248203941997688443618256737875159307712911774910795125505084271979726428465597225377904449340783164156414317907948375014932524993552290283600205554303182399298600343428309836968369582223796370211195913045552585476622640153499928239640002043807712603053592670412813954875690275689591889703307551154980087297952996909705058771793216536516667880147594892125282869446800384483884543269414748321264441482618482908572435127323940560372763795180179411319599613921527771483034305949642866844755782004468682675519426102429208609150796968070652429162899717570353358528323312583469260478650783732154534242764081662357323131839574234528105776941755728099735816957260278746502966862405150567316572653891225847888927296471941004972480492288105279219086606747773097757985356090846313364205349460429292137299232696405647303348948036202668362212653555654760065339151394640777233090394099480114044298772532813318506075701183178460647858796803784270533020466523290033347993678479188087593103603209143246268118064856013496048446898465478610911093897926403995713491777791714654747489608236255423483913763183108133659380975429645241671127735030883641971013226683929880009928933590254633573836222013211823857725730591270510831105313640572439623603215047992043168988552353005854424814743903261868950765454154638409869185218542187805093319245477093878737527852036535462407044309700531579254978720269923307589089484450958860189843577771669197724365030891166553830082547493242420879034338492571375119133383139670098518618872198139578073845904669322736939945271753424733778572497755900966346783063740848063502885548329053926578241326605195081109174024644021787553138103965664828214963833951399133240206965687702465398910104927204669201988973608538641965980413168805302569653266202364753824586396758020927548123165719158254315782865039319150368336651976352151342839503165039991920066748722082687880455080833956229319547923676165213429830218113320375377527459500006414793195247813261076602862175215375253764908370007613261053242161306593362102848263804886990358118614879781545111728377111240529700774186951079391028610801044414792849277112984255245370997409910248789643633781144108855741380034704520202133876683979055841062241741321582565057423807154035819656670488812990642061398989839421167337679456825659602315539951995186901100976339847982332503918373300748137039490933097872366990283801254347665652909936199299477864997804042696471282482095520180206025074539359000469462399889897367972117868318279063810577337692073097550579773443600607316415685885536966552891507712376295748605365973540023605099963740548496722140800040160669005453312394102010260413838357700000297272355811624679259537677707017341719829634160895931773021731478241625331702316590557182183768994195573931360760532313159145029208881807499988157385849789189259109462276569934168320702668991973595494607266165800136915347181499694096199250792957905701810674354394892278044121324659184725698174434410629402260720174973357573552379326090481571236174945681610131157609701461463535428329681955222827327750925202150690642315935817314469169836158105214584877941468817526442388825910084469249855304500293992581890653680521666091864218172446156669381687226370652433440970463277657206954345765284257859475338584729748237963107630458184302217844659895622180700714373682197566765233133414008795967481141240653265973853135384912668124495652855598667870855345081095330704646873757789775511208489729589052940168313035522323090882417678235213426289885652424800349040909191965261603027769112685873742677483222686898689746246252628674968282129529508935774322982538297638926348094333348201013244615659643411604848778441330008624239267477987577498299921372845461875884199637387593345267248385595880531559153905125624331811600237774810438979024297291477033540453521955530752944727642954275788846123738917112582791052193010950849277528021111542087958696155909264255566122867711092844129740333172507264890726087048156118177756639261928353834837250044504765813218026717407814009486806105117540050671212789149802361527163511115998566341084641731254169830671081206261514782188561494524089532689681664549573456763970012884307957117857996941808528255137460630927138838649833889608792094653698071620115956653526212403851040461501902985858229139684602434956287751648832946528579947188254531209073585760677117696523798871445990126043728457682995337974361320195381244650970209938732418415952364804777060892997338975443269534341579420740977206563169961627785551054286726822173386937883303232888081347355476558724706123930482880190713350861616590457626534976191232039403445099725730783055321474813720065485855373177322157337513697987829267806691596939264221118028068352755892299636408832399632965386037512009704311500843072893977755923739124912604196633564475557965491178767648989123344307334721218774763037443898014609478740172104020412558777846420579568577270215741469188109172978989070630874730504326969910807803223326118152186506867698132547814302460354007002455759299694160396491718945546011334492401171037833165171957463417848020509624343865926794279486974972730194233900804841102713723407678517156397573758232096370102600489142213437902972399593263974418995989203512923822237003329056074081906670179384338819999795047597696039748329360990041079980624332889352630172895789379309327439617893769280451912412192548979144219725740663732008406373224654403728359749515089098974277438548846377098807266903416139656768647864315424233590174881274271403133256959563859707414205249241101420199167793867902266489462675208218051611776232758596897610948643741141580497699407767559017519220969207412916763217999034869380827260747688535170073980570254596384206645943826113426550327181633219082600038622360579620316913885877015134531462782318641046107730638802640010630969723767632876282331146536565335505052014586648351425518990781704640898975817274307686847901037525904791426361225415732006505823909216522855885564235299416858196105700857074439601321181941737407948672912416994921564732290769531836141377769439495354499917076312149589448725975587946943012908550214347061335468001740350214087809719842076306527633030778426691898565060539435119085904661711432785897458165827503050097698696690689651865597514363432784166009304804332192587064378560736065371300344610219581299345729602215638621349646220164420804342207074248281157077871729504845689214709132199019046738703410971739576107062209504382108298319281231225417256937488545627679930420247381397953989336836765085280995738261053857467789461791765220063015496011148174711193749360357010069496471126175422939144695157959359930187158091801055895158431161443358584762283643584645334991770773794310051025132593772519256211719506941952236618546560998617639315666357177706231737083024109607692881258048910997834381932404304429376104208498569739382900302671149177030379147403459284841661858407610018042068457575877148931162461951385406339968529362036343780182172115891122288309864297958409004088727465165862503411128330819423454354341905660667364747979497911066701883585621823113538501914895837973123030680236088866659335389837517270257069218581382088408816196392462643917375893031566776052611942028491102503368296573079084313226080587934651514117514446832991036988209544501413938017565860586525398487398494722670721570551457472629659298545780336426877529627420058279931254813860668260351778928931849697544626958681031461145523816869893546384251986519117145175876090795348384239184432284298709382663112070463021635005298288532509571339379184175793350104211294178068322962510297949267834543790116447786029197578553918062080421955432470610517775332228923897677774600127040249166448277737543778728220560877221359128617426261317400656862332715093054933951468298613060109944836844285606532655261753033136253872429401662191752888063378077603839229115938843095490162415441615223199182753158376139363506786567246483374231267388616959961539971437100756637724237767969858848330146375244407208429473199509400542599869945469988805980595498391065288249977006603616392113517567383647950726256511953811258858715816615563214015292183507547954390230756801845641258398221866080437035529496169752337499964217643844608423119178671061242979749671599030992193752389282239926835006048626244595839103873954714293951266693953224819678064230572823826999999859509338479760680749874286074093081750069186375534918184235938432790481185047132669759705688356255288897170274886078737643317460786984114212853415035812916179399273871781649444652954273477028700536352613788415305672853333053925734055579271737517504894739765499862195903009811775946145910312960674305071330753737265570909576741172261981187402469080251604371060999074389424069877486546119203623432978251814633689998918818530036932739604523867706045481973997619826974359290096443327791216432984472404994663767228248997751750864544143783359118004920395734228658794764319664897694004656736858086786148944629721406876553531815604095788798651539515936864558330829780755176548085675002061334986929861644586428726143732591330104570454209272785024751008368398333211892188693596245083965940471262205615075528256137762620259634083917578374881073210701059332394261272855694632712125619109922758274700039254072916412677130911912162894701737007288576783871213462820596089495499981384992234782202370406286909907204994504341794119480094211328124132089028584254748608041871879087579267127253598763385818688586976852603286739091683229508155297893546011677819653073583051066617521394463992404623403701870998628440539244141850051604784832110246799396128917436723893429720675078070506579473181173493103815767195943534260093298418995257981397400073202330815895800274954388294272209744660489017953333243277708203930186685929485496016216166960067341974769800008125508130691453535471300880825233497421941257773583725751506800050124895862602967386345261336590198534794982430355522021286501183711755694435398294826197604510449730522611076623726242644381039301184477301639491846336921993835950069781394178170578371376362274073693492675911327432629286019755976570176790550181402259855034678173512726135102724243388306059258539988371106223359487556349486045704635834711268774390582251354730278262669669002102819381290759548780963135949975530242660531344856036852639554831610502084883795623502531982630965743733793971402877712317472042651779892499934039389657633441351190062084504683215420472127102638124304543287592464040274322959618570107263409438898718893473922857531446956117700074311100331560815874375066342984198515652983169329281902484278910189413449567251822580488333972010639595429538058429810244550637125304934590701334159568953264484451223793194708914601808640546966971655618208399794795822177167610737644134968911372897294064870023065831414242079044320249217172244458213270702454414252097680753706869535767736935495737558476286182814311485845895363542266844155073543207089599693993277394252583934412428097060887817151547741150455914372973836575874103374763357808773565318343507574839827813064942892304401453651799092087315627260530616067189307661259290128195377419355665532653472281817697130704144577705739933108272752326466750932607404569686002611593453358573138634563871393809564061826923103405216074476600608187341610114400371399293376625336096082848542753928844469971325497838076736070966196803366044609163799657697591078703546249486611164858603147270599035984306280698643965718907412086642997151477501209524202487495663626838247353415294326225176474237794362836925104390685539846332156708413635083634093042773087970893191519766916911355303182805674861752447481858878522099576283835022927663570506917852258533579827708028071507123011528564541662004125568038515474464908024559732193651702834863681693803619024372682351985549906641544628910928519964499750293971902529573279930964134386070929942192220403612820626783762546120896721824347048639085350542745981354377214654308025733785451203213880778692553483708046508256073404700931297504919963068972839924755165331157645869463070949109625819591277688673672915436121202777404811353886184609738222169645041441414677794097727269846942200213864172847504355430513403288593085041965635819658795323734336553083621115280581609114738222136578669099518494614306918015308353143624744838106481916179833079122201338320195892980439906710478021946857475930132737416423845310434115097410050821769880821405754668357090242921226031035766453013576049006846579381360110238480934419346679453085289494380750515247975621642362503603802868064218607620990989546121557293767858336121409661496960862448901918014165715606789834281390026696904758726556934924851756383676237737185746167568783218443444739706096860477461985558798695124709438335046260880477373344272498639474542906993334188100808294082026301968146751761435110287623015344788587048241066750991956971044648229349015811415725005826687425412718180950454707832780585870391734589997268078912550071468827579096526546928536777444194085810054837289614488933624961877680148288165069403071682950141051704889848039084645503827037458405464952192440378443752093616151215290505421261777934290552850825264105529286011632937021827205646436997668698478462277616876833099682194398715068339742398452907722191234757962288857779350916507969389704504805077387586212225143450822716489380728592146881044993530827220645914605096033528231951523063873535205149606849438310985048602958453371039133018123367828793297073214775342540360172550773375488644555924862047315865379279224537868446391909201453616999837148150426397153544415418419791770206348527433767913630636255147384721256413314851348891312338470085031643981837476541711540856826848477855736098515107559903099512940968507994818040273935826338689584186632188754635256100231900851127779078183031519507712444762842502757040205774456036093634799626846436381967580836197347785438301113641774538933846016094073037914461515859071254720602222921720908632528320109031498074296391941396987407928374264342510980969948929902959971542612342963976092079054284449982683189987924799942905206285777818822467942315696281593726677774382885633968260942542225885737022640775320704208207220655857053670251962427534961524146276011786528635733810174425277951705063869996878794889984592231103149774595909668962198178503097192208923829810319482557741245818233264589773793900416511327469373091851742290083362219880978029309294022745319438691640503762135859606266411521242017903908436345852836867328624100318335422307426622798773040603808009509243281538393334423564083221695675683099387754247810373043981049259088223061565511149485068893682348746621094925658915776063583870401355477414548652906239834799627161649478051717917234865782769784619679280511727974316509124415071090938120317311993453021486035043508160144365792440414954723156127470462105343915122258957858835122597290489263939899386953894661848921534340193082417241458405130564008410096812429459111387260323401772116145616724005266138060023546038454175415240507053700989786582952895943139529924840338196192941326528115359862169838466068187570823033291014608248532037914521485024712613041827268673599917299135212531354681255245640289576764413908225712763367397583701468499828279415046568057071082620494144113814307964177717938760707327097310243525908821206006077472662364423726819475396830441978573941284221319558870358516663563328463702046025418056085148017182463797835900964683725548550691021208412480555655971787612317258727200324891415313801446352634872207470999125822506285761879828103667195768622870070109053107627403486373563452723432396276727914036458337856766134455697766127443650322332491524720209846181896774303148025332531576038387483095091703266828620526171945694295917967111599104300004745956755178586629058541855552562544238811400297952951433797066861203770335336881962334293684555638012319553417557681026621752381576471632597803662091725188935668141078945640563835346677373753173756787262788640846127256715681114352462170232944653315207618296570839262628363234296640820927619186288605268243961381643689154853906853179817484886847212301804851548275973286120029857684644077554978002128441552844142352140073348271513595478954912623489149577211027796069045684247739821315206235174003987213539885346981891841499298703157427662498829353746848682989176074513056018338210611588320442418617246890633053567824331759230071862149518309524986239268236130102280745384946320911535010407254366957059985367057590049374079691259664147296726139993884537962346428014407912138874861810846604528015130472434743055546482789489314587373305178123196907117396496463019008773223325746715421634035127241744950330547987896036563838545107182636559155555763181303826324034760868599083948232585924790572834663373457212890656176420481589481243832473382449058004852047757990784294922509390536947705048940262206462037685153493433980910724394697832529555336643193185302185283509026304971819086320722933975223641396656771245342326804768212637513733147800683291003535043127713356894183682129517037478943376250220900715173774028399929940085255996494273428614439521382260042514507024054632560809601185950323025880116833863394048044824151772664478140152951800229982487053920743037753260221399465895312999077829720964187970120240512451614921050331948919404900257523802948573406322976662763632069777585642346458167239346842851877815987874991190994349010849578716991938945928726967294092579972161887382862329803685249798735083495943509963767883370822724630474510528405382532053739847037289758732051649951799263839253486251043587385879803212475591250112425150766858116395857463597944226498484477105281088798387889749442024966716999096438710965695606760632597134370859885901085617289427247061437822655563782034506382030762201325524143460544450816949352238384141094769356435560701487539839836918267380259860302355517691789045941166306361246177879587709830586164174494296865624530273094671720177796853396803898891886462281493812141489507889802448446065805532297748822481879176857420082439744826700829579512618044953507138433416739288178754561729029287814846807425305765427523911944570069180223575406182892188770781497708568604998386163803569408648231269946688572825803296585690960261065350971675017358714793797096994816293236550450359808195793116615224158453038591721610202656484986584367362038265506492540167692240288165591412537279002018152713403875591313305647577023951374112539293258344552769253534889141620722626415145180161533642199666291623957460063444641343905598860861214714753163703452544297775353102652337938227820476728248382945177873416015239025833779115886997409770674023735776064134053169304247021193319390795044371117983366013455007467320598287644467386206697892307546999933147818578105110954456121682920949025619599716677539756489965583813061628517529594995501531365104110491913092977855594421327650381330008535138772118825717815820527284188336328893864195643002908963106923753468939626137726774805312933494530084636499610586950594998474583603390101043613820315186273032677859854480827294372948068985135872271177920239075224488122583698358349376034580583506593235801268831533349446244798252593594958859558133894551458544999436458400701279554858472911740067672762605429300589278357700590241523214401478674314615006723757112464142420086742985157324835373936936506534158154640930654521838395692606332914084495782880042961114432035829140510345037705745617570789483890282637464149738537874421702784060475059399137021024762691464623161698229368765782077353439628079833271323785576743545598572666766598224069833154662089463554698798553140965137426241649465639015575873336931033431752287151752453178836977756217412004114038573082849972100517883095666239426422207913271148110914243830960980155636991749141875524729435637080733156686244507481941454572059377072398508214782694302764166169480719324243691752302612927936181738826546840598606337150969354481430081331768821672027297355015922448201069293262185474536773091541682936965068487867500844252949298592234774308356901819799558692111698048800418266074337598952308890839579632034474409737155080479521823184932285577605618189717442278536747668188254093352233254605180774144239184415765111195226929296698208938380321361569681376288848660384683049231868564459512849834692536323102631853438751272567128540212087333621788628782960091706573075690056936900473544896039846834276455110080093759231708431236115924543274831651661791507334281030600323034803557074040052632538285953789475944349447892338926692586316090246569616776843101757324237124918953504219395925463303061214538920347488774037269703201419779120840593548488811987211733265412850779105834742659857319648839064379125734315942276085343588904800830649700300717832909696079931003418085069243566809744789514086592109915915001088183700776309496754637932343268134088339036502849528253151408281044641467883462767549902142394312610334340735583902178717085234079416239239315122737322944882876387024411754199975042350548765164659901719939400679163167779634147750342497809166312793945524505835579189952789219995454143896371081950490671626228477141506272595755011259293632806439776073400151740857623258461555631716234783032404657228883363548996465484880123895464421649103620237983850260040230082006518781244800315672450776302464852303599384146970493636094633561179381851045285521379005434265162092038388293638453685263044829454842990073274981547499587675658608908262689269676545360176996681265472387256379230552056186567880073361806749868513155198245522534515206276750077546104446950027090828771466379089696346462147353367168364117479496014258902228062937972769216426284307674781707977904338186696818405601207430520489601529612752024687477978897245324757212038651414538270711274395298807137793099230242502743353665000234616003448624543877650748697533158518289768068425101417254259632218448397732787259414179843706364599187603636077077330576285128248474322807479315528336014464231118799102092072191180342515071255713096641128090570664451100229498189078332780710284202088762356604016856085255784389434953118473116022289733746758919345709022162098643171891396077134459338804074097862258535056999157287475994452075813564019076583350103774618426335422924776750592795654226216006596467625955938630522764918088040044458199166500340428753098033800722723185101027986717265083940377384189764307525400499682157833921948369913085245675984707347197059274817210532799686210787669038512815366120944453942887013205708871614809995776648658893954743200473572601955727218451184016311088448824509282236398090469073223087595221672520664728023259441784271456073438826927502571366592746991780552698655226414650448299556868096839579002738627094681182552236434538120003692561269273368233126294129576528934803290808650825090534657759051446324686752707026996189041334551694689598911052410869170426328247520410664707541177330899747502377928906911217871710913450479795066749387062948929082679158163523313363544612543316824593161919751626552202289664901168475364579076082839337425593773138984342086979713230651951607293610681506081614304752597392623762246122053154807344212057860860718898329766364995366361489526974918040056390616698661334446791337120551679081670760219653317969222820753613150015743258312951377121889988805669339207251457413814942065760843994335493777633628958315882709160985666371085961084231705071720707465021459558132331025033535022051713125675405443267544826935922756696078382703233409581749032677044204942503395561153879595205752244644601423172094773124884585291114434290281998616902933617828278296986700671747780042223879524840306199570458666233726505857658668660097762634017609120680848895187215158471280791128617673214466573879226388226458699974061596106068518784956807755127077644835236958874600907864452020735965580659092545875399182511572267100725968177569551742247166642591236226781109327292946844082692080391387967532727780585184005224673251824161793176044923548558761857912969273400332571230761639631835814277634513019109539052560705697481728024621990366796676769380427418670538620820002641368617649644781371386616141986874532017663048471600183530880617794803923115229429855473963176176598513027159626235745417123936606500158804181824227655407001520715328375695899569162211494966879494845960380678560418814582411329886444636728325196049569142357465680970385474607000260410768561953674665022709629597940629508358534976824080481815975104069022596611394214203352236114130000064355994315425954358272260657649189875676313212607920337408904790361831830236457958319377713689760149492888641350357687048879175991780758423362302762433578635399137190255071872896658044730848556311720621044731857010288537275816043037038925160775317952962405636960840741419929448474097198632115201413866992387761348786559288802906903147156752922520101383247762221377884752754819934283305638417140689977918609735282142299662006009527179864683899550560515220433774905702504135772086356113314999397620260319624771401754893205814520747328016782986759343570669775415504778399783803099693815567443132889231668068042824921785685004919045283084975883950183780616035374836911272850580465012833884314102438563780475646838409770964252130080931480651154872257484840154123870930403978820844733619463681565998421894261114326542887222100118920485918067380873213120146937905649782560170333187714273392774562702156405375080919294370028496791152178764665174179519411748327823284673447791370867526476067789558856622533843329583477301242950057835403621843911823926197939824610094693025431328765664844850002952426713028216513575633470281978627479569685789847592997358319396127798189349073031734692955763156182684418491020773380581895628720197772150680152427979029515722371944175690007239367275910548818083726302227596691685405873518878988651304902267379688506427828432851696854265876624581075763574218123737586127888884997905905809280931532161775699130055556107359240193836892023817273382831993277142751697336481824579208726288061122788333719940983303629880648776521078387271230451134042495234798692453213462424015493684458105312186358702265394276511241226411277656147035115365304068476950322753945850226310719046903021223991263051032399169395589061373123279702585203992190838244785761618276347588776789225835848212167005076751054255000870728275961475362547327067324825632368873715002291817899380582632346352530991721720678116990139510400552696670624378330863203352948849330171606386260728341479476832463112447379680453182170978491791124412913564260583267932546433742267208974791175970247132125677053151625557148299423528042053144326364104888770323827705143587632600693732589185196820061148946105772044491891743768445281981044727576367449703297380939225535126301044033152951656195051402482234074122785351907258010632287708485878111722682223117878537869665211801913503566616706925311684440345743509944034233407037005910336431625642583602330524978025515223973617636551108327324319570533068320591312325470397934877397409671995194965939484932714721599912314530044022675285446104089737085414527713828253914412207441822828768673941551390491762718690836005321280591147652303484877347361524492409201041296149010200364996639448049067450652331438138954101418998976042306952602588865078710339914003358444517653110735465182451922666976028688645313212631662845835658791825581966589754751436463902182868613266379027138321579438042047273154521965176801170345358804257374605115360362770899113307882893251829352975698761564079734373597995195992964486745057368321418013315150023855466536449670131526850820541727753134858778323051084800863384259583070528277378529706870549289556411372242543565347163707279494949750153981228027279551697816446485834418679069909193048629136825787320509767911459571127228870346425064627851504756142748922134528576959119253336252100625086528294718808426770010859690071074328139415470913303850701846808914988563694453954719009406868402462418183603415463317057136709978770053289362246962483899262974364029996306036698281795237309040846685535480112349387489949268405091192445435271073957661616178340749606911589764037104708219163050959557143026730327552054734536696131493214147259948812781333952853887092987688564622125580321769751185273012014751597146832002038045990337300955684083366210463000981929879383949297804751590845291066707773752401518265873989414549457346502435335799165534220938389183448593654529085377688010302379809813616176784820166743834324183297792310956662130400479810146192571277649475280561532122867112699303403651454437540836120476623198030420735398634584376047635807217820538058244063719860651298126439586257426578422367927266166184153062504397181459416299303338862054700657782512126497934832121217326293254579857595987900160145840302590784465157668003897819344414140121993065303731534647889443430573536453956039901464476823801985441648332071095947662972538301417898032424848283145155277976115824543587681784981160239186952239048670222359376610330209535352951270670330094044183667910593678775167135721063505766103632486491992181916546800472904856477765804774526440921783981291536539518667669534263561850257636170910456889877330834213217562346027837932388287406769108194347884922606806217924779032093497458010242444328362766876613388640279605470682087969584890614801673909782511975330963976575715369595655921049113348094455629092555006409339843870287415516055352976435485200221093492909404512311168363694849203737894830130284886547111710168197890051345666576175082555839863443944661378183694458288923434593500149254476063994498385612490883593349448669959726938959261954809626342824836578515969933077206854578943044997943615588229533182553938175711485887187855218710768784144851618685621142568473990488276068252223183153303645263504199706021956337893065524937306651582078382622728695763004019412628283763406159957715961213620418801839695285864983909095016498958126544179934622912273327097415499718534061446620561630743679340929586774307991061195862911363496120923257598765834003963093106624123252154049332404368318255466065617145301312645244056502220660269968591094890638965546533413467178189734482924556637510717196169692328338830204636950045696138212129425912099449557152072464020170585109277001203103918887926524537199984651285945380397223848604148399651300061677187133987142703006724583396351796500466759630281101671236954994730070167796920496114272183188473139003336233236386926318957755238675161033865722006751899207472455809078727621603242540038213709742934452364798719644797441391611414643996863095015855130587578020945729916357274392318759410133197967493439933566286870994453592700431176359553263438469780740823873294177968462089301043322718940010399285349889359638439091258508870460245232954803843457738650439326808276869958528032214379574501750531032334070170976546636791205205517789825591996225752284090796863631257164440017585200288248264840230948695168200614375182358283714514749526313133707230917034155477286024101700970368151247977389778588571308532735862702598928754819980500824788984202702534258420989905633429192095928079994963893173966400724792639170307331470031909207053149793763125408298494857498846350953531686317488759167620408488856670788587137148340096998333934258034945369267927307412024480010109255942774592408820472096313461136742656676853149563908010459257048269435037343701248327809586074647370392186517363980638650954158806278682383197331474026990941134415081715454875295634285758916150070668314498943797540714427322229050879121655464152852889373490119261947311347344904051757091888035962216548270424654982593375820864424463022946424158347126937931456805852197536660393185797718045162889978294207974218813841299874389102487080475864343367040893321644187244257430030604594533998473615676670987887266421506881795999688001153258460248980672689505284683807031176979421197503609139888078668091973226346104807857870479649059338987223992518222961396728396046444330616794781777031535152887809612881729527878555956092976896735383760250631942513009777754252092953575829061248176356285468298928341225223071229839375337972273223324728619575214420081573889933521612410700840932639545334807020779896883610716071612137363260378508029014499382470101108275580443414811253988119819515578096429915462785172954337358421530774663592042184856136139555830321467016966490144076142435388371066808707430795923515823728302655890550997844997445348551468631178598394751426624906295738502199578822454710036593135927873900070682736388378327368736868040335347288732767357901426988212420484664331397834508388307680365686334998952786716730996526003330332100885350278101691387375975445052071294065777589341692162343975279174576649128840056662633166539058571947486882718390244240724414143677397875081687065448719431828489734389667160201444255518077641337723080528509710206560875307392362133112433449418906627467295448623099272940377414851634151231584821141777182820297189271355241703971439163293313086969883429007777690505655161971477448977945754147464817034354277855954757078951359257597355899595001402044871124487657959033623324128089738028844608496808676293796877782511126152062711772996104749737626066316613728295308900361781369124683064560468179745582700631641808821318921876410447628664758133351336698145135988726474300354550951380645353111780501126078826979376966462562409238571748059695653608671032664968864558129580674400855145317655552251746314605741519512665547462375736008920925404288577545553105004291736840076718035471525358179068393463949007778389439933902350934021616548317829147141312287904734338470295166063131611413598438915894024695757007610293669208596760950595045773034309279173479563139859513199300779387475932578039422837503775766494897009628652423790895846945548655497853666641798424736750049629572108608714694737961306919460721880780563120453436403056512747755265953210739901252254769065505847327109547216327324636305721924776488345240032947165797084336891240330226957150926224136015710298962570703122813825196823845762231440048927317097625403578854900981249270324091488925026367809690457735634475945794057639979483540396460670541277202451073383220246210590489297546661554949597815727054419260126835130353098134563119039208986590713770949103249614525514824245007877783661128255031983116373059677547958516024361174025498361920431896293366007252487701339876102803208208330919717129183318225589690202296162398291395365444953187629872649109409378058199221974832680017820362101047686950102147854677180686163934544614532746251931835209238097715079730604040151920303155957038865756311842126032823229555323041296623197747269718131578053577223799464666665396160332900067423796112406117926440527962368431359265757376153054288691994265958195835420333851625483175027240237565617599868476322219383769896501549862949569798746455949540830673142303208094150369029852992248323079922664008365705554382330162587147421280699076393010461145591404441164029465303060775832967663783794955039502966590706382321646181134091428826028463295805726802751000166392189602758156476471405987029583433357813158297504310878581788055999016621253026440039370897748534317607282745565909506069123139060145123985784023628585256970417726148915482269285922680000121733526866253243510977448306882854714041277164479515338304703677102290767040622808827263944202626489497246106040521983161718924498089743595856962520346872360290831020523648594410223332668005406966223174641770525483518014748782059854002663349256562012482272355198952300115867709289468295083461669354468402654611585820515834782170585964601992500218916093022142544596106356188022582608763108046113011542818139591910863020870485217567988647698791142035758332156073755471907394100480560866116978451734534874060044400560439949591558090823723772162634329551743260614243177481686026886376554900523551386295308119224637968367096928889933278066172033041824410432221645945771266807099896770386109758486818379176815018770975867965754983749942870265545702699738876530916467574483997480464145813713379359603187229878178500060350673738813992561208266610949629486145190616030213468950596666932441605751824193056589252912515317800370805208227260428148148432802277864793211706383807133346994177828212254932648509004118793785425955609422555037839620043784159613716207387495953263533496725219982959655041203828998382289615625240447917818288981706782934891123765357746907368032961084386022241751968149288964063009344254608228903933040813126491935813345465088976516098878542245113072863383837768011841531864135659723692502057864074067435176739807113143728693181963212571182395459462427538708699191647279452188841659553090050955479523872729672700171830034871002850832295030838437716081789446615084436409119511352672104700685600783810733472879690464140680387720615863186871853561981748593752812652822917152286107055702793881155369623377929443765921461360151667291641007356229722805776613646041027675116065040371109459583082665237890927656682092973855532251015283913338999424205787963227706017206951228768307928321608529458922947394942430675907478337696275817870792825730467444286212668311180643750684814084011285004813498145995051016773668878728042555396581835875628498540652616994684117473153935787793331221457328599086669540508165418714502571160611630507134154718426948347730474162332424463823314231452513825614964835295486494641833929620068176795788443446490469123969256352612309897316428052215144092868882452533844412460828422415045801158184790613404386141027737667362121906774545785365733180088550025415612889966564123966970491806326452789319051190042956608555713653678402871021700918632204782394601654160220295831695011860771342414493801728228579473724924051313952606838072416168474801183818364382984665444748369081827934762236459503585109942331060594788102046885970223045933479652759922214061674832285834195406518041297653347360917685009862730602496946169629868394477268104441943548040931937915141509463021447394100908418280927182870284345516201727027285280760024810849670649743273901666586835787547818598195432267280727257812957926379585207040500195305222214948174218732355833283855704578899047091701507537003218818122372243380149374923949481747013145519769414248738875932056164722346005247985437837557657463693157885110945527453980040418717161662578981114602771424000012684167267183944707193055864672350152041238385410678053427995854857313397433588875966980716786604760776895559916366732502262779190391049490612043986654920827675189766340672802417402298898351964250405677568580251872192561561687282725533548546194036293606029391626993913960418680450953355376807886245945772536957542353528294155877132243638044425181960349236696470273040006471413578208781751669494744439156383642427091984134465376636826834177704171531251030449767985339761152606367948626655872553286283270919941855291289166324023566680803463362180486446455857835556483185809194699974774980305109465939099954472611708634305111306149611792333204732745265957910774543555749628085178324370368800174305091731534755836798554924387349803221733429589999456182585458350737765202024359975462090528512532913557407839072715476398099709963584264825134859246420682622811680976069173290747683733951627393917687645670711525137967105061555157744622666562092821836880639329526050640622962860147852493171350266151906121333890978951666278569724672186321488936992289206723593996859434133911215009261398446158587697802287956296615153881208726574380271630749570980006875129242045845626355522924681605818779694993594334547131428801843047535445230800504575456947828271132357537433105609913049705179606476728204004320806477827612336386675458739573872331253126976146107183267357193070529338721431998061522707705996892159133587628668063535543806074234387537738380881310330340534037922329313017540944842247170461523309649189394709627480501837445387088679325317363014168543655078438190557899651755398222894995557185551746484223857088514050778120671301276355772449262358102940361566997509968634943077884084687606973630599846949963059701938529481345277339091287641527851549845745672674681705012541749773129736952276216790959491514452777775729742584927417092326588040597772976050475357489576089112517573241669203119892266963628863255230466754811777860310677057867747500880213678270599511508684491829120988077186425880721913567739666128496298687236123167463682697136181765981943749026434509270984424737270229570373849399131193316638379957954928604581298425904084379105177714604205542984819862007146351237786175888793351872009499208248485120283342640282334226460681714807139625540640788389032223816516666641563478484968950817346137841844891773572732959394710785772025330854222121570301508578030163504068850581661506159408745910805192151313194979094005826649309435632330312324373473344416265641183237912487811846023053786846583078656831557238860064511132011831827707129972633223825230541256655787213903963476264354041596794995280239525826653371502390686990706932907641191376697746897526083431698045438329358535970807202583880158564205211494194262461119228984798505866027556057010645521162764589530536384689183850407772869762653603815938443007093191361064450648855867753733245474111127275012748415826788363234624872724628929787572919502928872095612545546648663541826301120639005547146656051134016465951252413177757960726341230194613364118977223405074940794305597102736217650950635444137643627148315636536027486668896665350767228817521451111180923012876121768843511564666219937670478754493159880127420391943791829908105510529606982132777263177652441783505731915745656016812548655691239174867000017557155302591813566313090736624124254560198203970902005987586706066689611382267772112331443619608176776427495150910706918560369903485556468970696337759844586240537873507643197342625064417172619881104000024891825313863604500272479449201748635620879175700188904424146577522896904243424421078821743445506758126996940718483429695003831486944940169122422027111915481681535529980331817915963338892252632815190750320200184459101985993741421398107315245581921655743997712547293040834892763828299715194314562837417133369433139826266538550717477188182659212230071828329979241390826535950789703769387602809223029823031932288046180663336850184104351352162534141973823091637533837765087176653250611598398939844212460420775390094170221390548957449150700411009989811448164778121663661690695489838488951131289442936116954105669304042772175080685513053194285192849089225603469608511395249809144712524193833887446817173246242841087209196559079310786306449097880357783773673708872129927537539354832948512189559140317182993603811978357742783166700785236395324595734142798551972766114001030997448553896770206745564679264440684154251819124161646247223006158273782623366302836281461662395096732241307657112955435224367366619644215616064664878895522397237507978562466528690174616919477151769334129509199558146982703328497465832672692746482758697489042332186026636597201127105216983588838100601235416530771373840148742797550485408530000947690746339831807061295402527588433043464179433238566920340006140795129375917797453016491488776476756463430110746371887940278103243135141138665141622065369625717038410570561559102007503204637186599276482674642014686523104617481696423603203294823682910815281268039381973748740301361586275361156796691052992989678092352936730678676631707519383218431080949420515837516354130854052890344909990324536736220982338046435242135661113986672068537061852610748950093059360822238929230417486347480523510761011873621163517911495020783970380641635467338898497571680054223184680215199941446493710270452339476910180802589606166297936266722305490836102971061983424062406132892948547218045474548079029016328893604547533720221079430898463128707868143285283095360152745828689843180249422499426028809858235860390117589635328359205596888643884185160402347567779503844893884050361519293176682897977710293441044615668909881137594997268641706557257936892881472775853238514852286688977166475974934287511797968709841244414007845188371829082937878996540328520525065008015063337041639444092534203933142851187069433551230166352326333380818351464152149616798215929287087217045296691496934976432688643319141235485763742889610855753838861711107059990441125626132277347489318612895558460934310650988115853091656296609592428432843804718789830620596356876417676187942036541163392098547157831785709290729637193804094013038388290649156022099457519223667802344891914986048114222687805382084571973921755519088451055171995076754424546863645157720652127205173635079427459117208222225523034615553594006027255957277562810191201016937051398398868579244451870831731040455625839074918155172744883961851556524230509549668320664666782361119988314167098239592376652325203557093565725644900084872473094570933582579515548242014601668889477260209222251626124817102783139297946713284365901117920966097868656090657849822296718369645564467657415341703004475970853460321758183267858422923926893575407553481730359602489440523338761153540140618691509364471028115298387906369417498085835414771430523399651251869821885487975214820608996649946952363532825851347759063891715118447007036205598675883985184196557765662718012868823553949409047825566145718832982489503946585449821290729056004180490571833700938402656758410086055263403887766761411627557798624026828160519413238016503630466725527137225385919357750775768224462985914463813431791636198753570814682553615165542215622097308662859520864523750746613990745330170858710838254272584139779165296298823435315874148965758847873394961609779533465948110421132236501037166061404378311104498747077213107127274559980001374483448184399820774291120180620223761688919650140857694054014732551055261469473446147895908736934755943210380909615959976658161219634509921225030668936902370507764253093849681190598885973335142955318456291911086172213498265698025978601652386317590960123765113109128227550585798000948182531592042693659736786394535170594502590254184131017733425352660308793393882739039484091899157488694039060856379148262193543662734650783753819662574414961167055653241633723055969826835540929411253476625092717905637736115201515315697877464411735342939782994000309741462757211519168075490666802008369725191327856180482483580292666151539405903028413657815479571165780204017020358110590202726241921366359827354521531649801814320169263862794513517548167050144505821529774595419231681194840026332214708324399202750855544556242953526982313825797485772406816185178017216417173594677975553168109386113661905322432470760804145702990049106567702072650561310241494711797057821171069511939248059769204919807099597228634237346295609679970341295930735993304833869795863435959322260021016368597426744103794155034800458543939323637580283737462636887829720113263524718649421847565556812223083048375463934010217269355359526334506896177478460770355168176743553711058862127349305482610082399455241327344618380283423727204247640674603113472429630911459148057009966090077790215483098612898359410614496590235944722285419404644100812188443363718662823367183435363908758943120360032756646323076710267472552619668038629097084148543167075611386654950886856219116280479026823591985041904336871184762671512090973225052387201719380665508593117242692039459185842277673876578789294972394821802469636791583923913088317679557193327794754044488406808447560442172725002772811473293881894734516785262694872473425386111695608973499858700081031191814881486422076321395745269151192258770071778922000450225000887229754457996667677117763368643872472350529936138935691743638617247084756774240807421262336392285463395026122282089499251062690485217533961236985048988398864822966722681688969200610332475918403181537025543694554699295547277326054898020907810380451816263173466831154348470084026009563678196792081308550084442422917295856134127060903662036519386140529561422895363121303043166722362447148635139607945532067943007623997318243988783534361906925923181935973277449083182877006818986604342271792217420357119420174839001965677095414531737946990493814687688406446234566908533971197908624079224958333039746796209411835371767868511316684366081076632948361103236325165235748167257186056405844328118760139301727635548654336300244658059125071001922764472665870407609988391670124805153466233189147914555565084144468949937711279915422796814709104497231282074587295661455887836966161509625342052964635028486513565065885466008567425121506502790224767169227839256773460989862396809678160845298291591652198647974159614719471689888124707650752573069758306229360368774982791812411494099706131819571279718230140061787214715577981655854367945384126998855526730730282864245543330458109457107569665682064992623521266512516571808228438000328873460886879362227734297164418380271321130152372761943773783859725265100106693181198787443695752888471188072329882481350129466955138024575949206145969663763979798607228521717700305419810210563758539421878971440475200959861243804531342949202825810169405147103117498300675202392478114477900762175515704912228615635493081905993664689717534864076539953183971271755541532426789390818694996511823746520232370950336647917040873749331590378255748685537253985376589272910522092824774234017753552403934236569838038778013637572413594361135007996714597995756121956119008725337623888876133010208477008721502668345915055300658417657187892040676744853378024713340302402301318614224335786593260160930303900655158326218363039527538376385896552658898069747242708173960371696653826677006765269796474694504709027866744878695282811769736800934197664629367065308309604047785057576880091407923612153951290640307878151669329094190655611121993479917235160977076350001658224615137342559769237255217277287387191483091149586593317220066864475282909100698191035398348328782424609567287438228083121498083051375366231885383797011895987467700881667954351679464021101459027548178639556244105003407227048114342772851249516013725486501908906925511839127182127369913291196175664900453362151493448347675069038443546527935825850799541067214243842497392816647052706519799582876831521096121510706366137783649337810082739650981843287080603022637083582398118656997800468043158497110756162357183993975225560428943898053679387711154701309752625880925315890199303458030919402549536642626906173728849536201209846021206081866665205232577379740028012383173704723046265187020967637617839642853431706419976479598707906703293208894814718362304109440419682019262289367532237724041928187949909692859003119674552710790729883978516771800959596038274628098922722967145598604574706154130399569714278881400327773520731590625854539987340407481539363368642973370545860088576279650758817471100152662468052353727677746673628733531303759503653434094332834147264591381973645264053921865136271756228111402957743775092419868072072784692188872417498282741342009826403451667006245100279447394277880361243948219739868411502014729481456212276738188463236181833386337633698675119917698028557284863584964230166019024410421514145058592169283582005304423852015696888282871484793945228420047424820195605030607055155513783988364160326598823057889267787965293454613630922906046794447165755099513865482084079174089953956033093572615699765292790153959072748492244900622024893348307431107917771490826242151861087728806614842948203342581529658830064945721026099383999937190624275087402384361576735695813410135778185578202384710225577498620562733500100455447700750364502172049770690110201948781062459642371560061175332396160210590254966741226586094804456318091085597816942571145572638640227198223990996818885230984743124291709497523047025166646217968323352122604882428402675222659631036615742745087857532750191264455799909408164563950905561953828205992883051365221418560652076424923172204154864149563731583505345497389802260852361699556372519869770984389704971138851363106651490805854971288224301391441721383476404269233609772799295337881445920267793332852366692707007528812184048294717778464236923127039104158276136767857858722494884310692277399340011429256968051523556506725491856927324170291516957264352300520497008331254079815839633266402556744216010218361493748451685820058391131074019336974337589053005127955989901579140634023107684138618037570881901477674459692039947847546923513966367834190167738711895759950505389507134106395596128892216246223609430002153119029153423799890247278269349686772579458305161001527943318504556072821437366168840431824443362253701787083879043950842969797730269166879757230523234608589675965395721414006987070615202163616257294137501738762533662941397540615173321242450317636395205561577929089655253273997464168670792613990975621938297293406988364172408972892378916395427050475471931548508534516694275728933777972492058591017196113624290676411726538810475698695833899292946103486013952881087195819206013737726201056366906108798373652479738124270625810210875755923532065902380254960696203456939130414029897789113324398590221244927842653266685050535334143325467373076876688757707447346134400107192322086626086952762869012974986407709299499786859391787489967239110424469130618218585173681438254466558918320388372973073806077912812861979953874264045285449352129322004497616877378357355318694725754965646870467632281210932988228120530678725129274918195154711659309282078937998162108965939708397548074823266323792095354081727349328156230490812492006116530390537912111171766457388734497661303196773130206363124852513045982915118425089796758723718157360428956538325082833797599376552353080144130044815505939057395667900190673766896114914251969845853852571285517632387319024357874433963444256355038275009533609787935756234561440518948117746263359292554018337584673654149542059906425645330016533543586108495308525730135920139405715514513177882079246228060738450423103820367469728316086121180418243919895125921224076349476311652878997810108003910733939734249613745723001735051850057872918855139337153873724210235040923355607611297300184790268394991095967461241597730368707907574890913715834560969600830167900420665974534564301702895814251462181714826770139429490806715522009361147050389436693084901562683044698750382980178546431160184060382976732182392380393763585267698415154282142158572913701478148404203419118441153806395749784748680397158505916681914168880008012548423284097351044701630695615754939152875641137281914839246317604612984813300903114673553320640221541774083307161785491768482165326875178152763292331415127275419326522011822777762370188346439844786020200424076561807262820169886544712971990058852088835349908053475005617997189815664831133531217684088482062030280641198601334314662336113996309297593252548432888057719079419558895724529624603375729470563588322568879196294008557830826333043019196522880045513725255498844388836625191531352448617564434286236489573066138557831755243833222629869418900887131248509836280702378733291722569774069472977079064510179749624130406587297801164305599368710624772060999717290926498716892290374288422700182138638122382864256879370338548581678051895080893275016430387028599308106837754602902983881308476987176154884093706542739163489267735960954059291923151894319964440665983287394174384788528957053170549365094620082558634766109937450293036736040523287579888840681206492164749131797331755747805093287604603654063213139576313855354656701808234167499630081276219614028780450768324809891039028497354622288151367806451703598789399304487574653897637095494361253608723160403593191854236225867924975267418040401261415326307414505964326779855164456036664645201981964363358712192959438943558410310114564857133384820339617522301838356035987440878195475855953519538742300709981951349211341965403420508223911537978693694102850393725402884328563438664526847182155123653309612068903718631972684781878280418768988015375562833625388730602485437660255967471370858956937765302014732396092201007901326086756134227270787684940822793904522530336401660125740145534497747046667035316834116122031638812132698162875498886241587357118443442149145706427197520533743195974656303142273456820406591543435344661808494648457657207181152136066907112047087316801603184440670777808993690528118144422910919335298343752443518913942979461145781132691025789983657398531861726866865355933012886429012594595848541393109190804681711610463952435903564459436725786115974919636959380599712424116569687886618522699461811444776610092528733436052299471166650469411793536109008634330816219292298464451653597508328878846580218408264306207310877338293507744422182129922807488832331577298556036110983338193367307972236915915518258756868940563505304438809839825557893769099968315548381891668432591537438197309577482926583735380401276599607329824996802625250908930525256324986104945732486469383391395420656490708902164676156476626443010205471173268840262901835146649851978899523643192070056299913147780115896457628703902494526058903557958788842867359599202692578769309005785688657436131367796910457761757380579582431867457824718193819563791127165931952557449715359971900155318653916646003419281781670612478762154449939195688882507519630113205304593771926326080702939556280683243714301112295647609547194350286532301907558238504100041608932086873786421267142790932418179833972212354687088973723881771840436171654300533729267502004742620219214745521379049313010727158363759026953298263233087011907925040643321396270182161563758420369630783462314960784745474472858482694396630209590829897588388091739513138002147743111272463545608034179102298110506977936618440520278747943616731459550880035313081209777032077912791148451508057055129374755492703610410641391022655380116930497295563247421811785666844054808703726252850830681180913250728152939758193322162718743056616540380890709840985511577945264123156295497199372696085742297587205145803912103869259447418435476692913220826348908963536355767727414739278026963135473400992880531793506242557721070921929256517281412541878693621162465620739818219417625937601645952995682354198945234634001703556805772124362045333245164178025630862141224173129717602271206828222984393156278294428788574843890368703524295910391151999497075029747953759747400484149047125981768839382869358599201302166531919572532701451919577882254966958991155955320869752737552907754502021109847666560551650124513867435650886073523755508412600251863459680164714556724563048699857309977252238898421098526793453306152271172119084620192391924042325210047200903117868348438952938580444713867521194890660921953060675619639363929039224842222572774327801893363273782165142990311227692312692813645453222960084758725865398216709605393628945334011610894785235088608812794663261344760065202414744570226807363052873193408309319142468434503047898919070515853604330486689456195735878464027668061456828108191803796319635926416059683902941185138306065414902765904362190210132461504400098770859064122518006122855859130038100808414154392393770976438440552344214133559270306806205341937289819709351671628801646573401361064637161573435321468613992517925849232417654769599179978155791153941102280082085401510579706854900616734904048559512962148804666988351765400513135026298943216043472968039963866674160817523008300794837276390910650466041206975598339698503346049457351834375695742354605016806023900091443971440232483946063376557191071361910571564817819684594791522207079880967917267128946782223559887469264070871508933078222389594761869170717638684551861061606518738409262724889961076326917561562886410712334007950095575808586777445076607570651037242799239624377129010733234653894723277023069585528411209001322956452452506733555829177697730168936377839308769296905610171955193772272837590333967627479732664928736365063072648255993717989533713913844445778223645247824803554488674290516564331488943481254565887415741447432974769648617238180313920682768280215304172527872159330097028775653654775536794120663643610180712343401961136348976019043540960268914902604553156246036134699969050753930532240914766650083844870471920293670131525784327094343287390750561036582416360207481358292458575036592619127308381108656770866174885836850286883490939036541279651233849516527813304683445345204179853893775060288085142886323346948171680974809684563648609986847573695721390607040881442348586459467900175633787305537347648825398456732135088610415276814265018690819634640027746832606548963006596880615105251250605085235806683781403053891724919617083470297095657518573336167524079924826377930476951726837039995730443754003411377153563728197233404045927206637565523696543916584156722376259885697481610160595175716984613095017852518172629736391729272904484416908369969120652032179195797679813074284969876113377249255966930817237001973840973858699806975988035787268153277313825952859021822144051727942160904948648276219144273570395209143836104569015496095545705930366868360232473718471884978517360919336339507204460168807715557634025645818068698328729030157748080837628055488550480246323987328446662451615942559886405689673528321396458634952351294133770696646585593074338966933107645414978050199655130409386810654917130109033331922601128842752974677781378653017906318434390236967369359564992347555676193341212244588478615310144500994833804138474913253427509553904669615591467673044505901364917438855538159777499033964569705186314088793546524241585899890757492936621596982804889495345028804520008447907374647353846433693470412073995020775643466186372107023233254298936643647920357040581357490089122537415000306609627631991962438198847349900234824741713410190257775079106382758263221715539201031810860914036248102735950130614183273591701693833849527202508734125439382517643512150468810501955737612168428737551483117004390040620638608153835340379086747443143810729857514107360337484788950427119393166392729630229042472011390617009663879012817712668872554980184244019626785729518379233887777725341192322118086197352601909083672130680580493707360813189648876824886073603713493851191472569049488367936503807357144374601790101346046936358979218296333056918001496428766295253426826531861120296408513570167492771477645910942653228060471670319906148921937183713587896123228760980717854957545954994179809086315598755466669806436573153651582400016938963635972829198518836650749396713779675872632882665957022573947296059131278139611781276949301019166864136250453910525309110556166281591816470108355679156288629414773801211528708853315098182277226618080939134033289176226743940098181340138797264903026516899844208714271256942642096502156877527568256047023436523739144551977862953180318890614278619190309123222579751262224756203637439082452423227768081336731530713968818543869266656602757832863495694089859053919359082966617946338310142158397704215719468748817326208830457346070454246238044119558678590466746971037403746809162567532587110534489389702607644274425546251620491662244664982127765921083844872899059699169967252239643147002160071736775201235322351633519550148840247031510964203964629955655832721106661257640247840016649271254013966758053988657363890566780383273289093943483857804775860431524053297003198480472018256408410247265931890458963222419006122646564901587557429256322386381205577709272563854513837463915272913881038428907999143391749819805147262242555710021005614461976307689471813762206360193829056088585591004904673728305897744206795269263928512157407824859190896727667935792139960965482622389247895902860666207019361459455778578565555360666394438167553350407238207594379284440943252677747664001808141062360409111392200381343048629429242118804415684315161651671621635789513047258092450923059056732106242386688217280464512515577716001860527769713094095802285023547099911049122732402630057803623700307543589421040215132880538600882337537040388721450357132908787912736128590328017217013548026190188834010121161054728439546719085048122424528982165369959129924007190934544018507680828859441736962083982422825509012072688856701996028883720954131551214877477109819880814453148048527053644078538144461913342699062766361577361471141802810751267691652623697339419342872995704224828907617398342593329720222105877255733634752812376636356155168428754836545222278976107880821790690020101466892715587791646855344829273104568624646676439837403216895171125334626728949923547214784957151781610505598803129052126593390147073429879440858079677668020430491243526203827554289034986318962785321866796291454748669626744387655050538819818814506773788613059244961565451979842149848683195525587511152772643413297565833611068853268355046177139431037777022539609262661641381742306096433070900122696982152929546917316314564125585834624212277599747676834329826908749866102062678749890735187898473765086217276527445233740476700265168854206544245537130814923654237890654632213487879485142656249113847854634470780719187123573266296800314741406415643822866544256850475213513889472395074740114882837277583976777793040036956914568600075340434935580967181031845923986486288677132448385767467329684408798952655892109513433543637269921982006610730590038878812518617159232759447537660976387122741533815219110702744065712400819212378607695866817418114397315990382629548662320859407982769420244853564698790175804061508138140156034999147206496392868884124438273240462121986230379670228424837096219559955025826807966884040909481036202047125197645694546277846333162521112302129683617059382017189613448451027872026960106139796861512743660567793365455208602242848241191257513183345465337808332211991503042930187286713263536718197750790447899435755869068741721748438538100639461296290711666835649785508631170931615785853663076871656348376517984137555632890326097095712185611662342935668787689098738145805985839330405795457829017466489066752935304772540959279665572404817844526331320867699478966184395582836361750513505558463698294800912903854851619023856784206784631113683699991778909415170159358124076952607821169301309012364876808911245172229910040724453957244807466475872973123601242190083051797611578576309974334274665128840520515002651243313599055658285760506358081768781004296715542127792942924177421448466187351285157380401552425442068899156109073650689442657009062920797638894459904941928161801328068658045567617153743020671663714748402474671299428314755827043255143951472018304206204307311561156202708609656933840763117744826731975316119849386340263806334379112867096659475096585244087801668563876995278654992050362809044651091688706527673751938481060801160433623803858765092414882001067553422821507561098086793926053306141211932796115062705323858164165284041849048306479504555525001665287898867526654293623821160178640720421539103078155204183891042099135630569555657017176926645861406011678415960341372591063723539477342016911935439634100841407955104784715475480470023202520129841477481818324563970097495353737700004865814160121208664650339828230490505905512122473941808506023114946856820990240641190337887986795114126615690571186983806215406607056229488660343058273603389123236942541294424325315550918553601410240430918008417968926475660020236294061152967742447408226163657979997938706573639493105648390177216402469013456610519369797813854886738033428176857292469042925575910534882750783299760003432181454198008461353841118152865987019218799349992989136549361124655809033317363093045911863854430949238011424455238171870824237984359297331697330217190487893486296398702561406499211224781129222822230808810635635818192673817619359371150056400596176681410517801378875407576122975814861625508592893291414441779520930333725039770377536490620333749847084676342034273360296055225280361440219317871560754764896480065965087301618667864911650126713097782226638046330779734342342750112823818771612088811479186170616838708703238322339449787840515854470338614016261781538757882825995064893948633665954668388645034580039265285316647992648425592755670726768676424621518050693934696266516697771419213878119008493459243593790507279041757645693210286545555403233634376289165277866331757463400593224158266881261115304987093409349883295661739024029698184368987801073687331562420475173557108540374969492419013590686073951994768612726846954824675497296873076550976256808824212377355385761299692455469063227808828753765211675328451853403717427196015880223117321458713710242542529524174752848763339617563315964709791127344023935321727009461063517585404242274629222196656731982926144789700437158377543980985786631670820356636591594604174029614326657496273912527193885755171974157774056139957309907684162781646409748260491437382169705743357638425992738938144083310069495623116010969689724583998618718681854176082441121553840883673631870281182556543966615063617408654730402215240526392420050884730955032533526944558860210780810295535235159776213104151966709482331093354329847137816004707033688118076463133522897925889577346793377981989180165638263236851746611458886254269028830550460881457602367096215195872086882689971197481801355296923376544442446947178280101877074662133521714118739002395662842338912488725944823869396668177306876613403883891569250717104997298412437287761076706439788529498640571394158274053228234298636700419969371108625187393879317787216521663825956581158438351163385779108731408229222553969545143927236873558900682024471506043489083354060774825909833184493578293334725009382703053162896388255665248828075402865124129030062546660366475539142178927962385187961317218709428843309450157343078183806337415588037406553133915734936074941177611093149866663540147654060028756917344467388353099014046362988201053113965365911876529819213095500184546870941319236212432344652452915222477117554745375715211353111209272858086255839937113797310610833315343627140469594249776107097632977198268941015460459714233504086259173039548839811694987545416778435685693247765462433713097004953956827801419738936770671242500936872495957112421300733421006146819902027453222133956512362089202249823762063856701349794009027660814248352339494240085188847784247395604957053081724177211981461589521596325505461533599411816596697804992852832599718182943845876023395466681232058116191514430491194168511382003732804942538779456017845764552760817063615734612469108516855693199820813721088007688937118547478965208634309086925401585123312728068799328175244714855006416781650569025998466796469283469045366361678702524444153365319239664000448217098151761866161671387589735235710999182069055969955361729501072399680977731971526928568532101500013236452685004682003607117156067477957045253553120956112658041348736091745825374977577410623805362116733354841332151555979377737759901047880403890836511534503461503839010611464981187593092145050881285599600225397739063928843013888418424759070838768936233795505550771452766033392965111600686696685884237949099954431792184168868496010569744347993460442321365617444910896728531394362336379873272071946951859015163517158197500374324947611416343724339220640475113021502242054306402634238076420122999443068296497009925135924582202893880231791065408845713510398893721945595843013820950484742556154005610165826733350661889466067687609370964422910921028835755949865105739474056460578676718609426697079396456020967389416983692376461521448744843954995752054039364261875892851866860452908548119151611315278529802807404680393025939794105363784533588260232895556638887045434865624498324371663253987514728368719056532972684984678403446816993427268953066324048891338926083240159519594260489419407260470406503858620154561069912325893790641141891957367017047808785464825349422279543155794642207871913125499772889734784971982595014598908038767591016123350371423592631915911686902766895901833240902663222418607328125010188965118095793292880578182265097547454364459669376485674993677891919756530101021879109612419333376499882266306882523581527725292195561976128272309320138610353235223215022440201007759556184968374180894237379861328147234263707370929365014419108895529908771114895306863879367077531968815371126190026612293903050652443184680376776659182495398562809140951405917291806930441789941403737968975088721029771085969765769217734858263648804424405837904431843204523476843613548082248694092308380580998414092141182420024044717027627193017440546028962297480232290787095725001486254729823796234362258095493836100942430574938221305917327921983982961648136062976799248670678317066282894408915212100185132715832882709313543497325345267437750662331726075355893947094842247136146448948362248902992464037172788221370318495594983462326578218536096760884044386890085112061643595564645802567514068884354600832095126479247594258526386195966984484887887762317439295661301902980586948411223583685439889099328249790513524781164885744707232318619172476974558909413010989219160946792980100363212016431115170624592206223398265309454439758214719015824133095613168281293079101710304749579086510919560925469255566533297330138260256076557161616035202883478810386481968044189593269318060851022751579298819975532474709612283311033690323219483269758386803040338393683231947276533277635906648651567897256446118305632550910142668682057336564651348274757030189507949400429297764435750652653493093453209247092576477797971447744187451326201005421664311723252691019636483455014876541755755758841545927938596918414955954090570831852919677839391900694370631425001392799689599804654221662119938318521243550961050178707913271613271092692738849905436211972323467403176407654212759703116755614049369313949833582452706203474251757716644954719274281354002626867328025519461622016114155451884738100899665086782231226275812798820432777786903360908809326542237035007862155096382364419124099344948785019595902151795602231357403359171804121648758779603178118743282571306592186494291981663515137426483666822139775721351209732909089343019583083010994271702880253224186823875617962547373997740746127692792264626598930420245610642120976122656230038097475099877219849607618758058662808600302974823107742324464477164581310783078416322906240090527649638171889717107309759958973592671892924148850898151627825630535219331095815559606624570360497177840536591506101993841455542192730293722869587348756806225516815007059585281230367569708119953340075000413324960029688791583937799052712370361325762282779584670784300188808158861510153057459092828332649562157922142679487937781168316069150701908864605413870539565895875110998755996106143456371398978658337956837753351324844125497676173498286608252200397167034273253418638091526791277469466110670326174990212913480823038896567185355530846600012023018150174304699217189438809600099935141121662449250961254923323832480543630792130067766551023888904296684702946371520512565267167828545812204669981484145837718388203269698229669876736066263469278229750942555696692664496155085758255565763470703135687155062896421629728674358038018599883460180961730809968398512594400729675223235609792629157481137741359855054198073494338833996408368751240133155455417896237157300860436739468756062173663489374316935667434589189027454465124422651671673986607842023833134742254057817745648727545679098596876198543034071326051153550841511627623332228577889701959678414643370266278935512527554988227152355128373400841539495041809291045683690180611739465993698296456926222151266534393245309815998786629983664079259904670909251882533532886509671140866893236662432850126180148501182120948182338837018984831567008103216502833322330828838417065973173983705199394919217189032605625312468221300898935246326494309932751670235355426498348509251268735859752677745968835358030697526737448055877411374537650388865928777098698381982193995809796112739444899650899558661498471958768815985221649882846736061000418785881104199018180436194998525839828671798826320387791619056541967718899449935932850709883358940019666227666313917334725952877634140593865640360983936865556153215548307655607503732128757085688262585377719264777035790238896364511089722720482941269308781321056280422810633938413547837295407764135271401456021563913495812252293124582213791675229435253518137990455285943441037934674744923385590979650138077316102404169689148603630842304550728972308629812275450489909754282720304593609454781393718798339974416965334270705543867330370700957813101534096948111560024381739426217713233047275345909047125510075583295894331690643280423158150522904949379594874340238629955547824014672877571976951369072804695288699290570430167124778155248106367085861229382907763412326272726120571123208099582712512228477265493498287588767816406531174268458832330917983564843144265914415222012512888034149044527566743815660848527677627315037116615655079579998521296177003262681861219986145339114985678572816592863483399244420586561200137912105535187198936872581692103856742747534872600138936326493119334897653075597751905075581988319215746698212353881558713354175473124074229466005351247451040563126337893743402948345641360439771949377006854716757140211713160893551407011533976856552979966365419552475297511134591863536902447981540614153916840266332372371729242931603917248872851489555891306103837488842289169992075984764082927166102826163284042903307076215137204297323705024614816662123565158593679692706995285665104451727302349873244625790063164365330535898948430512015197197008954787440516078034342157351000426681786468923071458525380114913630205081758381449504761426240743114694694197837560978592008386177048536612563321802053770708478650103500511870169504309338135490109461386351511723023940211481786155852594572980223940756829095923932077677052156667997755646577534274406505827100593784915572950296748236552054942280393126234376952389680328782394940367633521850509830882365761870587008585441073211253727084868205404924052790722342563297571496944780480492518552009396335862736714372834693733673678079096955383738836079845669064435074765668535834630693698106618383707051045301146947059578993830419558556148238504100824566267125971158518254042501240691209371542449545427401014416365238750542807427421921480562298286891663345870677474174376849681711024226628909719379163804653593462111134441548496699120313007502047516158285213131977417254835116035943247785524095793541198373948057103934373867210070611497249180451455499915960680914169501065665082776733389709487124039976148566694034696371137540755466796648864486840386691601327733969464583998113567849137633027945819751009010535673979749475518574987098288916381997710358595504211601748058470761321581738976214188384053588033256596497232018432293780931475331330478464550212428293913989006177497732707017088622027235769105310641895782080646906391804043761687485460555384561981820852220829483888176048265867733372129634970863750312812633172247985473641171320380437988212439405804055886534326267740318848016608717467852828484966776597476526693592941540119642124955075703674481643064097983772840067889164150326077868661329363946870572834361021400345084203211369417448080505225357820747087666806899918292035319850165067555172850353728928465822161880987420064424022935699055383550501039787461835409098570880687803593946391877261506288284105883908144054788452223424957205316309974751611016330966273630791326153002382044846947774544615202164615393590418765964845293424270874129755103879166906216568198757663577312156687317528196008831408632547416567217807572622051511946800518218968205538203079670217198699608169710692085216872707654590389766296898452044879376129499836632098423009404995430840244244910505859188585674973181324694307918685559692193622417820803890292829934990342166778075441886085588338308684956875719844143809812633256925908574117655699910262428784991851593468771730644940870649306058304586689138623011265444334597198016205018420008915090951954199402849062089291952107889807280243085034056027933231503889510069539780285340001218323324394720339392770879175253127393263326783013064347271446035981982963405842907483005504095335627655898883853689669724001837466579147787274094698297097898144464831151122830095196537200614077556964626500882129803649771496921714598111091055548806701386364848903179578427539821420250957819692380039403661042632834973621400091270983656791639354051558055253337675598828698898576026621641540444644645504062178350929195882311584487402228680029235373108977162729061859042441242145893571980275800052557527834939861507067633483397794861078739676060400285165877360506175583863344675406988111328559282216019403439632442591537324619047041747493762455244960814104863693952752998637379358527444939982551372681231387746078233693824729554726530142280674176530322488921912827999245339032798796203965219704317043986105734620234012691905730157014270112303545378613788645400266509976570087407021809506924559343411259030934862392251258780461637004076314320163397589722510852768183006689660551283305083787343428828943432469321050763515631973858249717299900367633797969949827868678768111243558733576831232386614788714636087872685858076207114210274788212557026288478745092794500619536554572362149973355129271293845591597579483293588041348909745425150048087574157879527414645791283499196162096633886025418522055551529247354714769134129675795297323551098789439247062025505279242095434967437594034098989137086929707907695890576125311173734626584138710457570527450127316550602943434138124164840010727625203286136989276302997590126918809400967531053743475329145083118837798783374340218924406304707468271916971771306404511516439537237480621201073011508779300725541054553323712911320874317162753431967195190430546169277919534281269066754101995779388821935263152607231410915574635717176971923889512359026745042105568188638014404862038153234486169101560824856933858824628686757643431033971026859352893959700561144590468805752752998415775503835214842558387869183199416627351557878540644447103193433216415880361891534027149865231645816645206248973238216314265350630940480555615893237230843284797387815886731630974328721463897867400798633899580947420119770138448491498293832313533646912036914780748752379171827118411271822193328078817705634354664321988829857487599136213954884958680737528256695707460665647215524488796366623356008299617893614471853382036466023287598523972288804584335150363795813260671457000203391890017709029860199535398090792745748862171829505848524658166124490372669395672011957575537820303528007817433153357698762286530350570669744269389286234696556615039896272867364620032617236269832711407329967301921557531195029725491407672605588020019845491372249817595563910693876457106125471881433138671799083618865799251965844662504283361614423009738344189790416579102208353993019241510639312038548037994386915627094179700910557738013535313365804015947033183528540082633188989756977037015372471895117127757515672897631609270752412114328058410466714032289589311604917606913611594688571333730733222404368939462746651012614090627141391071402600783435260444598435090734025934998333835676706809035830581654755334862517191969313346610738570401249380837612459806864855086261076960753008637011612739572547187727055515397049104920186144382061899046130545450574530919504144722650075867248206740568364315466427110352092107463192397497389586143942219133701993664965147415818499961253396839011405134938478812558636285012309094858816247987237792710977746072031851734596463437276878319366798853976211435690322701585485172367320569417962731916059466405000488416176515925463987211462794875613170091580116846065419324892000129152554397959540342296010684151441941936186735361336789939630743873636260030064780877117092533961061956550428649609987126263468633742017535156776193643456667951273528358568264946456371536270803699576382389145936344930070693157269597583617959880449371119285450925758498042670007278037987692101297166259950846159838496669818900169510107313434960440434977338351304329851615139623206008473703338968162309263457200917408343720350655589443259053063246575010467990422609700762055742032775067793302001773515258032798866030797648193381884143070732523057132985768094552566646150680988101658711687754738100165556123164378822957011045827507579829811917943518245546451996916592123227434105668979865618666991024285577843892321362361233053753267840041261365032892916188346699914976975011690393166902731925085122709298897963773363107306241738167668903848174153229352535575121987561504417067984208465161467289496386613116732369585811087958730189921164403635867278078688831600891215271733978488694693497414519310283076889365911876827972089498267895898813823884020120980316090877359502720681303813476064471902091250872624069568506005796736132280139922487696703127361317531858787371282781983161985907848832481315228444695442340806767304577361081367417862689777516138743073256615544531333269573724638389461904001078395054657926841601429618259152613613345693581751915714123700147723642776802954201521354286180362509443925041614417352904038493089778095517589380586721754278554891918668539049443739566001537476253225734810746680861009900078233022985876344912236399562679465759413505277033978917829142139644373711014268830658646073078267081049342315353708319465274887381979080070601715318398005197737154123756279938247145220744877076158285967475989945060174077752863337151552780737571890967403849932723138807755858611245159174490064973166686356077833247316554421348754131532161724203263291884301230599572565173161010449202483722691100434772197032649787971284045404070616212725911401232747757767203585475869419940660533853415982903333855723481741069712830152421502511560935231195588538103126281316229270172920955326588702200999579446463659727502872450462943070807986424869443318723385244998902365675063854810396996234549312141529316242560011598369927710248606663572914449036995483096492916841493665276654807294651830356300016739800818905713850031424029859107301537032581761787043332789636249084303884338565877057236100461718441803947179199140501066573003953262561152138740086669977262951263146884866084323023715319266382001990335452256242563820697110282826927320858120744045548771424146926073277937413676560432580950400163409637116187758042104217471732808553565117429463560778726506852698244823632602840998388022933158611289831244602695563400184420549380002771598876240460357822238417341652828537451861020692450351834113536867474883261956274486622216925435046272407191874953563681982743927507060305987543898441266386458668724975058059559725092064399516241784272996493792200691663041293714033691645363800127201255603475279762863613403604799138287853870466090847736573965083635091161523339946990924847427887482066035685941351564069758274944218219141419833392752040260628901900243257703373372614741843847592995346979488785023584621794374257782879278863870758174599623364304737445142292482370108705087796104444112079799411440394443196088351597017924584972253097967627453050997060384876165419525777761902876272044656915912900342144008912721985660679599334443288258152607190090024247375584763425327595225031725916436375590687814254315435256025490232408675997882298387649270135472712208623539122157811460624643448529343099235955043731047617193362094146600912956605532257012683572018209263008632399553396013337006689568562243782156705603568708904346987628576060829616337488923459532008821154347601132480096789042338220696464762314141279833352499952161559578856774705113063149496266424389486188086133306897198038329542133421278571154798009513564780804686872551164159669591447127239257927820407443281030303372343566663177109959370395189949617868920266465904529643464735222549192684116821841180631238532451431642021349744699391724495966612244795444411559237522622644036281732458887791789802138076682003608566729240974274018761173000654790325595925470196480278467312707104499971371338738178423960042791944266083650622475433296480125850477559215856098541953865512757185212275299617205669536938633846047835013479182658957434489884999262323865176651244203483343068389954271204007121638946837394131080752705333212017129203666607824434071273290080724075450239395123746549862373579346895316750572893043386398410869661350376890009278225649062662228440925611338909496202020366502841051326567045244567398534435111567288008879882207644628746092146880459260063859952113944647457687499933028943055507077946514186795735036391636412600265792054564787729587119482349958970228197964662625370542307619985310705381746917650978708018008975879493200692938246784595548836110206622591170180596477132577293981505055197065306685745374292882681907430201758802455246240565821332838353334933386335278542466317852000102564662056885013042499933337747019600964800391534982367237574106079646116936890785865069401349117484999291410312840797826747963473988718645351977003447100011818083263734202713938760362964712215973641787678567598744235153729962935655287145206961181855534527877530313295563252206446069503084319035151702878565891431909770711999823783010733549008954174839717318991151185051259489172727055003062582667575799420663391894219129011272933132371124049763329873782075705145592069623706425346673691848892284600692847654325543323741882043389393584018452929326737320156270715536470118961525518850698773285895213265350379234847727246932440835734264231389107193042006205764310496048775954492603368918231294729818819421317070970117514074774763857986121923298630761378627457550215423726479810092639406054253318410448804947862573285692353007858341687328046255437144271559376617014830259622734820207873106083742226112210940592229627815177966555355811613438494675791296676303241746712778718099661479628367169514786668540478473348073685446551474628901568376188701688763319151577505594169175950769936782691694553956403750419266425555251808452373146575883456449494769876337704312651412696696333595536636365380271757802065535248995868894005105666354997861759226395655984484892182922072399888037589336489502189068773183568618921740449871433111875778782587434089413159280754767462760892505439503470532564561117217138052055701904150904926207086699468400219704397809649781341665936585288201514079970578112068781866084126402386824614095881669119011861090488787140095522335051857027299459887676120972373666358809826039089113503737166065431481925855460545163557029157372953695039387099475495921165448969861692987370956720999849276720186977201994098579898192272207873435784514424394301706717371309602675054747548020660187882380693471828395223519519163790293213546395683454830104318407073478286635702115896669108396780996700324492403406689633780686030884551279580398975775610841721022388681063639812880069063562774757118908565320524140102098838314400175223460799272916682649889584808346652155349869055045142060405217658390344942836890609179155659613422779852769250574536707640824953959242278269416777449314453918213595050230834732996201421443609001066530066680996122370018681203625870080943367770381951865857694500664543891215286426765017509538628805463550128756956240209831213695624552403716675266209082431723279490048158840604176886387876772411495530119359507799621790850611707984152195291411990991544870765172677078397167864927709827288138524671836256419031178676069841871996016950743144746641231563290321791134573164094007837860891558487156355166466802690530678813329037785110091427349944501388444620615818225351739182264464769638471607445660976574946818368429880282575037800492587973917775035817457971132889496791757268085862539223758455576139541941125735745326373382725997317119998831034891987253939832520711766203741707847362138578554250314218051292475549490234377553573784679683116112327787246553314844138453965344140388093945704718539669092525172071574684969353162705518230866189619945753601717866941809677162468652181870835503355962041856378220537920210889483932457695696596554940125056150296462980252403775650415575327165881330665382185630020445165171039849352856720984181433969948128992241224202982363968376254582699618381862779707199168199726991231030392186210802285835121033022902448983433594094474321071430585091241856177935154555201547455149917271014635732608096895256697937842782679322176733795260335156349441299971800075643169906990106176488496197145126345725584803469371239710574725085876738374008024985580332209542791158321888387326258585471282870647877443391791112747268120938345447336391474627719738202037650675870605912781052084922570511661018377249720815155513625202894240623812096600886541903742551238392945436112177848400723639644369458359835523904187475718447380796514573983769974872071383863910276332267829605346736755055399826258358139243084014179477465641434407758481315341229401128129797681285211208558118873058568331696531453186357918105868766936296713535951689072557139846295797899517768092775617596273206628523242710057722714938565454959780353378169508422676274958013472184753145221852173359376183202998685518909072464950149025485084500406283402160766831752404584336374435270677959971808095843253232361535427218145577666528171145073183920438324402098641166500257822649370756313640718921439980943268633304735558188619015619053969343460869795466223065635924207892692557441206707565696962832648490239525638270919748299314695676501287017825577958738126606183145002510944420283160275906811083437912181500101933342461557015923013478079795452504585698549361191748747125698613741768424085868867976290003894770952164309772800060383542720009265011514212559798857622954940876344369229570410612346844144858233219703395818492827475522036021572305448987108818050348773714255132111710253137274871964442483826334850513266065447788063659762286589491557502677486666476620210010644734011838465809804700790541624297255189435044777327595115881045946292622697036342166337652601323191407558309543351239399850017200476754003548007412430014321927984143058261418185406483425109787229544676985783939149157277196595766389400221285446765798897820326273777743029600394400456075322417960837621892680995385411884965515710212948375451206764552574348759933263638958857111781430763954856103936284036411838373875173582919364780006225166739564444867149213773074513815236960978515926793220917795849391940204514210523026740327999670553478093265167258491589807145361760330933896375919035170884726061790355594653894989260396049665831288654221308630158965473790978730629337888733818733002317957083260381391696585665420348986600905663399522181574040395621618422082679157565469561685798804896380682211589977062067813529428199006129298213134065146767369140984066746318494429542095683589278323288998436511980725916275073249730512257066479640404975335714295297434281916697872800777362615932747313155750083714326605724608598104806676882383643871464337308840875195009012561745196949904595724880936538678315847182722458516523375371285003407345749233526792066043394149852928529758463266851810292147520344968556610570129581244274267613004095406963877997161539431214968391316911150877702927353382596912216305677327091134883863180916441113642886884540966837203041882383292559776682947576584051977714571389186464666962995613213248039650319884765751164415691442751918542460873827962825781482436559703604433208672489739452304881754688470518451104750388034663540439114172337522657315877817072621901550846684544120187621536928143007329749175300949547991781778643962643237411263754199824524137875463087780923435497360455578829559153826149581023708425892339693284011670345758677966671237817768035862649490301847283713780721616936002589555966610315729034913153143404131547482968502704550615794182555657795174790032707049886990621441589664612638163825575177864866692672779020392837741712720781134243828139596713546476362916958274917870696197862052411913465345088480370220082008629842959939529607068706758159195465189678061768080645818129129849063477815659008474486274112064137794906530116715658745778344259659444209428467871879701481358752368711992421664772251596215744878778590144342600205993514887199463187177695673936852253372353609440655670836349237381256339854781130847819451978440856916690176843116687235261898562597187957685730272512930441937140534483544357897305926458438029889404094566587111177397179636181938320870611695163900447835745841348748079575477040326959415152307796921226903977327756914489250014694623773709871889227112084358328432888425654840395360957975915075370617260471533311898977680471968447321715488362819217542283626509116073263149571456648557429291873908799014846193922805683428527193569234292035179291911627940119736571500331811219912171212526463692367045919400012692234098402558924337731973933288410203587880618063370598146480276141567532698989472661641273663854947690927260790216840900763484191605228967396922012588227900753238871834592264157326745124150531539391879031068400661345727967755950455215075921927086785644380153216734337213675182504103158036155891960807442005488113356523639848608964968400090518213813587013872815817147816406379602153019643832031270977324523806916218745037881302032635983083015880031853355717438774278203462394622369278695127077655264602816561978407764396357679161673679831043351902894576822633682326057690750914379900081669906669350136066574248312077023695090220653702207367670877330508191963722961202881859142228599859632580143775835194160710661345390843705784946427742053703004273281702222790438100837946899284363158668485416273014698506490365457032633948919049696729305146755237026799776904752830654655487747107763962378498255087435640806399362309980208976475281543729983393273920156752443167223215459654793598381518985376111465266987567523420976719423035812571786634937377260535300590362061826643159450538300557632800652467308271108773182226723142627098800917433417861108472421348939022691971345867052482115077957024982928892917527412234579092126889991447458183478599820633517214873195411892624751093900053893077934606790705751132577130750688447710395042878453912990091033596381672518449681390559103938613542671697362932970254692242228619350359819339903558298463312923071269580085642673788259550954734896336730174300370260200886932326895050097517205984666229232733383594526012148669913842203077494918183944548627128701708043718640111313173053976393370072493470133485556717960016034500786647866387267025860989973844042736614248473385949675419394879867955345516912025272605132523119377140965768649338396317423252558644594937225125061268429650343231886383361181226662613519274981533382424913914512791775536979323649733349808477813562655387914126341832594166549738753864469616249301752921419240063615874142485976615936948113914704889210311536380572910725028502671223357243888217577517501060765331123253178236773135208375810286325059199214218985900065506016947890207306351336950293229600237473588977902463232961909764257847781093739387257075100637258690388632978481432737955239716733929288041018052803501617648371804916107043048379074560992808109451186374645657662458847716071890616835851202938582193364138206584344103237179874059703138050109697452122202027138916236229963218185491388082201725878285102855156891619676387112346939132547927944634970414904646592413684082031208842226059230003139310806957802990994743151227220489616190592106598348346313804551772836781344146326854544072021615891534069577935017007648809771608481691488324995085865433199079818319571110858927936299074195001584008317895385867168681373968081765816969511758484687385962090159432191280123041227172913491897615043415424589190561459229387300366975952895409937664781750805007765451461202854052456941432397740097580730582724679435921218806052038785861187505977976587961538531584504690404967546347671313183024468178109749141150517550891294274038143363984437889221125209541401560440495115640681815303112454442391944343715324659663546692025231398889477390536636702375628007970144915723909374569618186363947915940716362893622986401692923648263174698615782179871979638626111553573260980766790865882996335178855190684889283486605234115586161802230915926516629524383186003160933025628389959019687766678140272719930910322236556469179503446539166619850227215947929554616758927078518490633766782048711664680802768960870458325541855852451013722334828865113413121988790939931539364997486277190073728251904056706956593077055711172953016139165047955119231027743076722568826506224083472384761552024956994442962049437416907055021416761321203970283409403695006135657240178710224994064993793089798396170666366234998028006163199755587349943417416880607255553776676080957777473693802209357323405205902462538363998546857230992944564687644702087005200689291115560912364436059232904447437505507753767197085667924108213005175789121641735431780247596706788811515236309933780000563923241384886123940475261051370086896244066564669758015181366273333978455608739015553055538627400107238680342140297154854429797118141831730827084101707148110800688669637812645542779500298288552493563785597471332355573769333722226072149269015092614539363601080983880382602953222004044380339028344224082709938559455570844325849852577426435512271351511496585546633884919602797952732879387193955473104844268962907703809147756619855971005033261712826277249527800612758509026230191555523132708417033117173740141982200539247815709058728950975132432304308798944496306323616218100513580569536417916542576149548875047694351258662337578901533493837139030429991614793480021335694094654724375398321758148320073357820326948688669899374351377630691263656491305869518702810605206389105742048756177435988796374669873513854730800700052436616655659909484628407342134237851900176673161094920120639803561178036069464692595317389875280963332512019786590943816808613966181707086798900496404049258497377855707136687943562419636816043923972089781219004788621327376498971217431710458602175018801212972210126602924525935848004922405727201866494991840654471800031837489269383789562503327348844168521143150394338331419414702748051792544206531017133252547430952910561119203777940620088923493938867057315725111206834166526708585962113473061072104044244111420836211998780842607359807870481209912249901193958077042781533553460731267114263017256837444106857871172190264793029669710195389016415035023343383435086975824166885359438896246527969832012916835486771437606519625544535914697869994003039675065634489322370910934926674794969842159736169224998933186510447666756062430079386734099280205295037432052399764492338619045095869772430558372986026113155806156457950633213738642182734324527790312581922535930036726722145102456396174325152250293932073259804718195342638323510199989164448848901502506769230180755997662333317515743715913555148324933794961098910769832231619840047120880557502206141843315745189111100073106357600832001375310844214055363624463347596647033171493014489123174467798373581968251888527295531471709066208605555232007213974841269253618342521733846279650253106357315710775226540105874456494525053791110385841554665790802886815487572509034164026627411354332397076175658523356524775686555741672090030507816395102070146122288994284478918871006753529386504747472706416109960042477703930903364988400550597750337822717759114483381090356508805296708527731590519887679789425527205645993742462370429419043265906309383727200797350529627391411887209265053862808491269404077578455151100879912534696621110752548458518051791857810677761778461012269431289458779449502800578379622185845797514060069813301804309866855436659262681099855693232387378806483076064175826234746039330714244976354171127303579859981574622703344799295250272356838986874123040244392456321553535953634068034394122062660129523227662468859557265763810262620708268322134072740884669536142041779327440163224009674244305610039185217194266687805163101305363048042031152152475869988567323598305640974217761883252989103671821593862325025042946721166932161777177125431625436334207456915012588614805608769815354759207194606186941037341177447079541213954049214576625255885948103801159791210404798618401068886917045536786624284128761992373670844594111950656169613464652972574534338152379833660065601501237531397684177233357478183196312939473168541617312358547505457889496179846044848887158325154388990962764038760845680718160698254276838554735445394395048228967044797426680075836465900153152234906828653022748203859243997375452018337746713981415431111859868153138775736486443465906323136169646311170081401206659357856234855467498975118088743738718267322891214690915547371292086381383442533899723427027123979496592392754057576126882085935548845724655468815950497925594473645110290688204543971346471713921767427349343273647981749072467425743605632837149346541047625139980211138040071605305744713133240483532569903055250942833280992056438483579248195095776523783140512332516315685889583992037565113484848893354041761062995348512450295149077286022836798127360817407757756852781375854214463953900409296917895687711999457219267110647568527055999170198215888181198300176043642474351763730093101922430991824666315453224425821017344654943946620548320619927884022324593853099120401787135316613500755501222017905953414041648703853778651690378609494799231060226535133851796817172902279979804681672643466299377349531754444225613033274459161933658898938169556900325349596845076012211131373204135029465566630956271794270910335632728644812901603721985223813891357459495994554472656173636529236977931756073708580190808719876964741898091548046785112290408362854096008506299958141296668832512776253798256608014184252799000217481388965365271551857034037646189330142655481231614473263797535629895810174310690226504811669603636713332826310617162977456222569717384044817990374684937066616884335383360116717163278390894346118514619945733869627832547013662005024651069469127996308079776446255645393748290587477723973077040017716895487806463709333277234066608062339622467084366150487158471336561186809294467300037637176720392331758716815703462858936567190420755721114321313347729381662321889096820486834830389069235449525930458813334552955546757861368996213889639840387520571917604451743201189576883405044817195547486700380445401355118613435301880711152943546881310291781719207405560531837097355627613795497362579954440842095083676998631050010945420130521706633455843579844789245646960977205174065016318214180848040208252684512804367797358199277432631288803500343905478614461389181823139474935724277472243127974055951137691726237904136068773118877267769995756795464743523097762689903372081805768840898309107072077063469220418612678742366958004911196315400288069861571487900549314443637041264927322208081153708045923970814914791840006023225473377427099955522211010619681141208581743623094902635507388068572574340304827846854818328352534330820509271210948026724031672143476724638295015682114147385654420749747788383975527432981803835807752567561412558098948402020367322473039213359573462192168752486900395194126537454858213814712116862095675885729151075732447139321246426754995953129340792285170439978217716700129316789751266462647841364411016886619528533239983098972587536005421038942978544066781303259562543904119419416489940328571736568733424267561638449897276068797939147724719427303188722270072596432445126267304397260587040290796586292986089430392790599201591191768878175012088236417269638578259114953454926432609615204064309502017546593798592326223064692234414420182611191169834085355494045646055235709753240830933187631419536788178755593203611870025972072106295057578311793388810148237523199789169757457587638109092577791648673405917334638829141152332074923572828224149153759618635540043274716114647482686984678603162585168635270390910087348254379195483394666616613814091141807660749584833638458947391747004547259917805083728845412872890708038209404936533467505943909025750699417940039660163243773251983021547917427572413866107618607909122932217405498016482599199966915340638839243515051101488373440022734524960155125632845480658014889835976607391296531879128246813940424379820037623597736706360117477980831165106418377601603560773236788548594367097403943621972647064197363288169506030295772831551492552450359378484656370714066220233589983736410713868213483394204248392455573674584381933708761530977577567340018581500577722980862187135117776038105599408516452207537362503038412486695180032487595438230899280131516299595042204167108575890246625806589120971284890189918998735236076380784560131035604080211490605696499584164979849735733522608446204477182235004706899052362994397274447017739794277057458848306610082546264016581452195745975281931078558079777275560034942964469834166645187425633947321379709359930013748272375273450955303975348361247063816870386299455304712200013289140823293674050108329625328033050703964876860700659604464097448834374607460397118231152029910677206859992197075033401323137296624271548337999870940473942164333497505483361917168319971791502563563525434267803403392721682519670789987558163078103232251020476986342327271873537849106934391817567394323706753228107733775811419262855377049502427559498389323561556152610410092672101520843569085116102263470917918855870953636831531440267001994819882919063183276592570517294272907501576156975181687038471706119350455916651149487161214349511704552629403111857532508398688274183557878782619564220989047313425606580653744114784215082885569536013071150096482709143121093300542579077273650947057560737609113104244827719752983769268093063359234425864216813028396990753990219839794740709658522398240551811026625120590163331874997874437990578536079685463859079534587046768845466350046094597085927991725129675421711696557100592830391080091465252476899060167240475667288790067107068169590355222400279995672837026804837156601828745019211606137678748015556519882341132357922323143163072998506286596697260739972726175160927374764740351333505279195453151392545762455103221657553967068877267854104502412124302004055005753854555588391580501799106085331073751375106652289399244054748559274193046208809188998066690489142316656669956690332827532621727900402754420097087593106692190616853668463445904771566334458581666498493369030830731495540551516310202275051156140837328219681188736980682312273320681697493259501723106153632257308426517861398998583883463973552834178982741940965482319338648439449589529700799361378742157259023774506863483010726462906963249602564177951833370204719765197858820426316522772191314903166452448233626744349196254888427593815552653345856493035796625672085905909616407204312353800201368375124706031318179504367633591009223852724730600834790903554506938074202118694522091245002407273854298592134874821164064440189665186144603216952769443497271527358112611541793468752130631959762212045517755183276390235610901273911973636255756681440473842419682279454859364415435917756353055122543192208334804794285493853927366118026392647308342342702417903658248879726987529889278320212161461050404138023343351594588215039826738308392888956595710307511494569303373808536222226858154133151888588734757042322472194083462297030800291905660883337380193896527383403482591135413920401329705379270381361949869525440895794043232933778839960608543859286357462426366700818724366924474761044726388777171318983655322991196839526585947862086358214254873762838216824105362159250864700214649356719078776918190902760957968705163857501490010963232690652202221038199354254767804896011863425940905690875657970068360606040381941375564522363667535648693107840551267857862879190319847451139631976914116649366465918363893420496028431491619820261556783980420292347906075043909570282854164918807752854753904175732158319938962981461913891647452187301948469119955244371303138405319084627477888816642500448147753279237880949615153797251441163025259177291259103027591918385692565140031484762086864564277839832883115013386144246701653571156180589586003486053024841071459400623785038636176141361115842911274805520250085613746864586260069855221893812470021101627838697704803368400773512789916806086200514238914995612876997575887165863486623274956802288690595160860308032309153237098730637731041773316029123122701294625588911138366388383027150961731296275276810259411521768275939410149750673643498673230937149857354360368490322340577885980053238641109158049611502686545556833762948065232122229895705667718797381960655315337071215133076778987535569394948065933046349338321721224903515420491525454863576290658536513379675529589956226172950872983343659304241338930514599386501430356449851238124311066813095943922703285525313327281951012938628003566558811252546773728132369906811634426378973165716141774472596085428085855646390293882513579105167617955649452325129981029453888255667214360206954729112390186883145426408988608765461032517475990855367628578704161384380287191643046988050264474478562946076911215164362022815014110587435544260943567229101365762177940637883972130430347987662154982669916441463278669404077181297650129265582047946800172045134147452787293987871494881920079622037697115374892317103023546299909458746332227437268931117200789975002653905525365988015170273209534819848170551585368411480870184417427038932229429498170556874131635345695891743084179826483544125382477728171457309839238290750615050604760114570308297258568303907639234802616323233202296695165007149134675142142127416794871982639021766953025334652255848702718443775205666703973514262743894544800509588450850179816541024776907694626301543493472647868902089562218999225589903597836094416447259842009552496790914835242050197317339056565426209813165773236255818295886775868016170060090236617419296518197979567090194947463164090991508407819469568746205005792478708084431796880788066101715281805582988258637434537376833720407557496095491318725129394491215398598011319530427917760799801965990126866663646801776654957347188960289733711367198973688456806645357174919113910455249094568893816034989880572030649883397010349267383641087807131524973399866767025899865069043165959017574179865850709202492996447697553576443279559589024438714825243797806660750267787318821334163216619867135329134949570424541029575127178690011593162435683337364581478533833776238759115960680571545070576179982323079469900936555627385193925431540177320251187317067125428339945967085530354980854505276119524951934716731958024418400643224683188384335553431960471112565582334338858385949553599756242293571358054720623276286830543380537174934134745291208317303409924019827143825241579490851756040685934125076094784497431144417588644476130573585426794419903307755868586161806636841527137228712263654978596705774647548737156237022593922865054975704185664446356631677925364984800345368710324984787437877088059358268178853492367053172349154300394411428320932342863500883255638122363505445486299125699069901613747062043511727728417777699285970127645896380336790426613180307795027276008240755813088805252620036193817938636189061256868057957884798649614023161712598691597070641657437487836616937966491216394581585429417371874298018974366264977262982555204911619479176858716085261963478443548502522702726623847237290843775625824182874061685494088353323079766193727352386504809229132955702088745750755650059472300195781443666641795713834255067323606036985129080818544924013743626874514560381643814012293719180581277823647235228410162943366777297808838587063954141943472964924297465727804887775250460357443118079837179924718815930978383913187005729009733092879116888827460169926957074155522393767342490470692166421636430175330911058605072402548027323430916344828729645761053624590918332196384755370744562948570548748870211100120940767175123771424325733687661082095389862414321694577036208019164924871405105050151327246818505283915200616784469202829501130316941158783723361972465560000318902332299880177555939783001272228472542008647902011305581935216085998060503312540192610355492103138414866085732217766402097373826851318436452394137417170570909597263852505489905441605308096293997675996550717052946710929454741149674716747583985198392752171986078623965672827706280747261387717956031118859746876788733210514658508340354365541485609126077186755850184086866642175493453366720082606686839738227622096576640814307051124198124125052985515773173754792887801990047247485680546230723238996551014666222740341013183201295033257033037499716517815707794592301134942829082244162831805367893941226472165346462929483821307070930379536561126656621123198692555371243178888619647193126393881217529014144493548822630794002072422787599964516850551174615113137998142574105739793878334257400400718246872445944855437904042527510275341313504439304817988884466778943960920291351283993444638439717992720900850769420528990288534987580456839332900838381192573076352699380397369734640738805855608821012270848307339736065276054235954691028368465831597629700694936292665863229729196856988756505231719826427053257149239006250357098668951634078835244091833933051782368060421053986386628690486804194866623305044972636115586548817524763672794572785066078467814912255252479396503226368488263818293146856450478919275105675907983015394972544282929067030268445501947173788689308956021075852030334250299554634356556289574891741328450916749703626005433260542814675196956945159847634478088631759501141898106933441318536734344456416605994611710368934448972456966872357297782075138193245971201839845060708726753182025024499980153936034681640247824503240266350559603903321906096069519948684891659311904576147977193063071233337670259403776203239949926053582948703530439001529477865011523138745149542367542808216401413970614832598521269957027053272514080759381286149331670958593974186298202011217948272130150828039352810938723097479035656212438550035840571691039820730597124069851484504972723442809909807084305951519545528308930113323434201757471149566922318953973450660392627323622450550371246747806713547423377566334258494771746139152065860473567807082562846413694673352087819240234541058858435884151166428468701400086003002899115213427067728982395466502508014594774139707828858704242193020727436565770223715923747616723672560430817644905605335661906862890801727263000055584208886293622821623980225723097733978188222842735623455437743343378951368622649371699141707314019085910161406445162268026691986704915919589122125072368955443255902716652427470758042224332022794238412783849922898077687240909005956065053994707002970323110331162360857956964070090600639512256403182968710140946351142554803012059425978788345535690305270424982049430940280017171146836552325938621101331876424874796894992381440061041241340019639446414995585567209488207033722303589012146495022639510429552312313875292070805877830507465202231558473076046500062457051623169510648793157888046669252979283087830728544793546021992056824664455890173209120845544930620273517263204716427076725603613145108138127254850624034337854737300209103409492601383715546007192126225145191291893616072428997574983398425096935278338584528064147125255140345060872185395635211832541111605824591223909303795690887443670851073565975366464911671721701659827630761509533347796473966550131259583641549750960371467715441302586585218244673930279302242470299898034701586107780231211786300374416790530806883066105559477579914703467446362796223001755853583833703130116992864930611200994447217875567065276501492796016438583206415300818282988963029790121123371470687179513457714704778140030175577471359442588349848784144071479629884363763777255974675977432611353287154911538662834027354428104249823870083600223777059988870442801207566154531345289414761113427362619487556309953023619552526335873569284631070331811051803778468009242482890783216909996164086753030289223407897196476555128764827688704457609014262801560285517497346300638084927729463343081929085453241801457769268477108455458165565853990057174380695907795831198154796662829503944946838525450450889078335477773611788224663696849091287556450531827587907836834926380647577864648110086903630860332131804086062618350453958621903723406788207227317357468034033161256008894736316435897761995686560073885623123581441303793364229495618904722147080530747448539172831188153750874948355368228747551950084751442523236738093609098085179628876239340138344177490772639640764944008631966205524375182485578784910488519363255737478703440726346916895576023716965766944361826715273460822262345346997513875127578521657381211202638485075182048379480027193871118523938113397087407924470476602448444188918932477397435583263512170959725307181513318307887623454084852574575189441986740265330717954972492651039592658062255377591436324186588500665306707580556203600661073494972974476003323951424696541606090215144066864904414046716454056176812054225284830409716472772122637659971308229495457214329720035575988604023448312735212787528609358354146220498771850682694299322024139078055703418364662049899375463127438657656061798629659179461421432781036856726953587400152035175948857094219180276693830210399181533412717469227375446212411915626156709854645525750600435915559791361991033257893511712284318849881791728902618345811202710887395498751306315050938771671368748445531210291489928542344708545787932455014447259472241795377989969821424095512576238259864281501692925348445011166122413740410199167693045601218140413683800541743704043837981786533919478933284473782050252339894917586347051277726640416783436424629558854906230261326024581609802617113050315457365197417535965635148994985189999460269822094522961465053791726395896019493048940774174573465644195537071289831762441180135020704106338747486994857645265139082926282620968494812715704449785117089215322566262746179965854086359348973452086165578076610895703130772843047689813642134717218034426602750926612093939969194125317291003419834816223775553647839628584267510100594524330196092155964679229800892923852073084310579852400990946811087723252124628199156269357542815507444217349841339432678745818637332559713683840787380220729386845448792987944853337556180139054302665208098534740125156565431818723192097258046668119128117998904542580573580891779889417827836371408625540601416246511704821914091602005395595483633275215725003214572839891431441371244023646402817032784805035592494327838026988667808287650050763686665006127175400185341361034511125003382127963806661422045889021681500281898241621825688654491146464194891131313751073078553280059986605438441857737394189104303292328854089658667726389489078622871835879567421509686784242950213125911869837274096245469630781659923718899914815157655615133342214908850754346646172591531983918769174714821844634996648991680172417528652598500858730956399651864452475339707322320384788175913416520461017299431954258753160801270752052277749901309948780194371968437245205860631952656573799669636568903944985174416193895566191858241038796461899044095747006261713204731032758065849792301168404292076877897188943933649369547740078227388934083287129472181529597844275002550595629714172598069861355221891619131265224296079835065679828252878258451602634497717973190204376010055657260038468247825227154464177865615245770552139981448775191171545262925271531217644922044223869670129546376855439310765415348931679380485358535853290367301793356767363331944208445513869861346554290342614080862776950500349570670609566138512758466996739924459908286236143367950920553814848962656653171699313540428538981956669491610862122041001210520805331351427389403699520278868517657948394791870872631673450496765114614943747775741933299958602543878718468788892453283839230037607062099615200586164575647285312359205347439353302096409943007429120920573383330949644624466979643293254981411781076110685396728856810229610323468087547183275896902433408960186913015991475262600837838829860558840117674639545602069660694583203323656177664080871224506182312190853296708355169556351490191243609829326984405371593955064930909485873770270166307228936538222537088644491403086383232978825498226045601366091949359378049006486840804808277251926311575317282080443469758246352178173676658722478685453478919465912889673385194642106942219033709607084113215319983434099843986617874239702367256053271623445316231846989446231877942861976447368500249773840025654174211363994982703056383148388918208133969088224027338034701210520929624756887155310322735444731305845095593678902057564181265966042184985574569017392174303325587805434795147322874801258284598743822016723461058554857025329332824881436115753598720218253936065705352577364496723774473547971764280178183138046569038529199858262418285637524940080634948699303783355966659048042352650872928997278400607696739587108748614196045631141320129282518269367383212667083260167683889992095894463198132176690368003899850100161151935673637878681201244188527018652852884001610399473035387017449439007417655667560780668208296151428101149073563371445684395867899292917398056097081727915007249732628597662484638511668790330977692625081228276116503815960844577033499627223585569357586708575604657245189185080998825676601784375679948131111377761057460695776446153522534732747125026054603202672692331832418370299855880346270847355149411209853689466863065997448184359106014590234768652239663609209927413014676351633400274202200451019936637849451903373711330262010242681313849980870782236003273882025455566953910247265818595763441963255678426734971302351586849833826009733296200220565994344202939334629639728869065223245621999437975371686007893612876255818809538223487547961695970241895808966084294854474759745981598142248466324920408756321030069623725933036502174168601557073882925173517505998766120817226665147307137346234709675631137563153643034703579440966087214259754604707720175521828682631146414330917541559914042725434454650225827031135670842820383749529702152342382556117943584365183601494584475716088547590282608137403608386253855749013547777003066579210262639203212903502455886108987816825796532973242524065575544906159569130432690404951555593784576562593952807581638582574235681982784103785473472472620900103120344644916241494694441882433317380710984514036043141432415531268115154988080460811643551547425489237827413356897531417122978959298252430290429937043336796716501202142140678915681376603988938318790170848118542634964069842611860697095549354446755995097963237221487064353350802159266363338237425596106083735937276224213157649773115698266616378495417269270704531199164766677477444178875948775266765764030828857270190725696953247739127582110649177416563335838970222499230829801513745434805749989257772185980079412860873221385885695260506278395570511580160715946921938669003026093267364952399255415521196822150556296008549998367797067862603312421115995922481575371900661536107684035917836093776483179048108101876315806709559784469964359934901519146954329995751436838520385433091743178679483071925337910592990889538907903945806200844867868618047427790766719268487135639374915055624357316847122177083787273138493998144299605260445169775413884852982397986109768750827534425788909368294104949242362604134303833152280876728182432274818985353662647377667682544122679499236430909954126965319509113856100715724170396080415710974896286086464747784051785149725970026557256703107143026737804284763350719070472207483661687952672936113694495479854435156381967592899691990851916299128255237704192959626806722804857127710928464608273990684927300134845182187647362849305716903273046959553155803228726255942069388413478770023096850530124066977233767414318865997634782830009691290876366279746321099601024790794049432429789528690879489641757447928638146176461475477406160085609276486796222844709836614250779424652502211729547850498669932154027138082662698316389977775913685393562111404928880452314271670848353246967988064498800846637082785704612309275874694727646140920690152446829757873876217877043625106668897272151571855964872995849568286361351473181504641221066746232400779443594354876041182088198326292071276920791268783660685054003491191499457983025075455739034234446342645039734338690876729875972350966024356407815026259136769087401247410672774988096679890955023178656609966216401477261963837126608974397183766317284319533849850349587442765306855278676490637827313553007878872820219897843283143525016390808223458707414211407474842885323361278550123545824137476515173545950589040276511922060918111283393813029890751505080315787222867946243194168839060094802060168548480113449325640303887870687345060616960746645978733980795309648874192979111262406153002612955864908784442198654372940826216343828820990379510133889070095281126649781475636748884765238669416897716146154035824594067273570132627497799242218662004757152812355368439649219633448609644762655277179515345453292446931668463893923875740224952206639263737601898213812246194832266683491031841807673819883668774410236644465943732971418343071826176700458341594493163333787132317569961681244337039707364853925124472679498218189745876091337793173518153984848232223194023484061079022022948767132756493274810277373505669643368207615025902296742294184899836213423217078494287627207366106594501787108638597792401219628811706924124608131611929767790013823075722249320855860355327774252151093969665751150351903778349445745458237993509671743602414086336687007820719732262834523165836076753182422058630756271418859626361618932255027194749088540606332202989600385541230798396540067625721047292254426073313919426276508914271925452599149621987292390588047853350618817446883436039571819063313338219920308435045965970716904687008074354491004424365163874920332036579969080542754192883153352095312783007574157830752364844352417602198774424748039807817102041647850097649653890311235074097942506354413892818696781479625047820122504084867561215131877545411711390223978199905571882118681148617510950381109339176050624162533308951195728028184048040283805906906185147296987842044349368949551297351560748817005767986155695245079425046839107809454248956816695812746205973629624198367346546238339668699298402839951249145834753536672005725160616818295448820256429989210855949139402033787582216319143262228020871169679805150945215754877913612548358876248705276886679703289638052282503959687746809218753494378525571837756152367807569014405785558886409739808924749749723485622733705345032699900541877338925101384122278564946095342350523645164988344800917023990047269536799620522617235522667858214128158235317767028503835046470321008089143065013245359365653147656504754244430324406697944126155421558533760742211904050984022130658598178602526124771054897714691746382014063390369852512994764948532509261189709175942136277057556929348528964902096290279069573100608831045879312036305528456038659258888888465123411083005176827356220262828050199422047529222045152437643521460658203352073913936213526322600669202152951652020012286250773425156132971188606679286078564827249840516604149835939002816478655568618894636184889016434894025963448571772724279450985465504675169231318367056131145469616131006127760516604656177656849572906991661174765922759520542449774341083093472581060650377872605995113177898666420750268767579852891892170257440265541147038820440049208605724594147992897287756735540470973289843606082269116496610792850044147463020026804847019126007011497137932364234020627564152130037581503687567383087453951729394727735382996475414957347976672297484401155989015968749973155189507620452175118295924924901973106888147341145585159575103156558643039823453927669053622513533039049158373098929704284687745187870431734355472525249529151446371374401814426463949034994268228882892905061000256684700354592933849481979690474417692399673120839060234218500674285547693707838114793093702161992687145797928534064130177046741543547983526284997271023627926419356039767133584318318087793714959692782487415985797726797252507927686065970730836542953681270431595058682299670761444574746734139587389795370572009205504619010061380223043679618398966054760261187243668023782346812448772347615007668501485902974537140245871360861544090496668847777113213334865359148249564267617321127729604721609698401633389471251144649926830844578248499662378999216371943175418718932879061906106612052556329993253255523860995629758131747695252889845351603227361901776842321950232885601695974693408207015209308732947358872093428971705457913233855932135092415508244079931752500345579731521018034218625402915291350600895715846920204980078245287857504232044641729528471680736835961636702674714505017913696651363191328246875733013290419994694832768912543608881406293247487651649919604416708507150247603685923348544157186846635122652335044390172373789682638064908418917659520867225991651439752842060328537852189092556494878273119254077885402836105318466294344586925100616571030578043249435915240954897062890699788278499644129422385552111591216142041963151628638133162766705929791259677665896936642054190601924064971069786613537447022603490514590068722778280676968066896990254418711678098440890731416788142378502229940912628278393612427989565333384301849023976801413453023407526781647425617566719207056983333078882413047995430377637280682755899676622652114998336786709315890370322496921599648435990520426380372998583684009658351641052092914684536499446645198214860979172639530220089046510842583891632144881289323942390621174861774102303430125486503409872328060743981426573985257877445766847919592699861208756467995230898679507055916456592054092103324637943934670819396360250939911820392259546664280238993981091443705808706998773326759698998148724096197809529548988186937001244157497986338245369716733335604658802190924273616657037178014615973113887960338875789878392870058379002634034061005681725200567049225111119538528823587986920974592192868143243282351466694685900440342952962467899169222404616291244065844378003693898717095682232243853600013733942364473851965026473666105899450132978042596297535031992716991151291510344525650150856930398931929395666494473773710328192401402525668517852647086400875220935425533543089647865190022645777659928488110393641939416499454215329538036040391761914016825681205618623826051305188851096242535820218385811126856860718942024885869930914938680487430309475087511030413162814276006318882380947266784659360907922751781601110451986905325069449615121628954962728401536560956102948375204134844867657433678302868416035762829698043399568772066028857138913604165245276652930498626600354092769908328011696407638110020390267726459315130789682720953208071805855888565260515761089709752017792996137471592365147831523754525812556619146123296062875974667528847775505319746127544487366240723781685075743660026982642441613938025066954004821665385161720731959056921266048702315044361294885132612212803673867379015035857081316166749402046760011883686645393386824185407793646862018097118782130224928866413577217660482899098710147921660244350097978215113545076703340243471252332883559747053195971510704387243071551719387628481334382082995509062440870386496823754922243567967168849603196751750209618738774857722206201416051298293925505494737721185906113020224807852558305442143488175875524563329314196191584461428749928099555066361873264036190465857037849695461384324133374648542651813956465697456160922443466026152161330324425803359058118387071786017408416765609659981730760229840072742233703750044472619922905702833949370553781055911262458625198068016185250905097141406978795922484425524213617671142340846165712479720760295476050530975197981502420595294622928543908263289911107047155458667632386696819250740396747432542279399566199688266402962349452851303934114633534126614583747074891950301865015353127389140599446607697484817347589328264655849274508707663787544646896035280140739779879401368046062753214607444801018145948427192571178612084398432859719520077501322445504355330846113775765237121149498179460844241779376477808958551583188538133730598485646634355081913491143052289633973481199605024188686774871655454364037038201894240627806024021412632355269353439053158347900779574689663630408932120935202998860486632872798201382323115149652108918726784648586416810107971862895074672622853913750469170737599412780827132176501865377209282286268415581687109534699242345239133520506299376209337512622812771655715059544883194129228513856046062019070347357377301042977389834737164369258773430898535625852427877681307202501938635415325261336804640093427050922863645351267432854870839346223038688994027523600418973685201027169886986698416565642312286564986805083219291223150618847512991756578916609616303808736273863273052239450246681157411044859128520009591897641251769664533032067807210671925774448875018567969849353989529921665943417894611306783468654318230037269344577845790054067484743636849832025432011029129947113033410737356307900222747678424062179262451818867868185568297876067292773980533558217572127457137288321789747273923716245808452907612512678453051222425436722847058277125300223411926584450982082735393631352903382806993019306979103955852690580318835339949498617961667951586933031513048861286360975985221140682434119348633131774395865490697233896557672639886258982767574803875691728829984570392146388903975311605926321569656871052601732841939347300577632138042197532066340022897288110857815444122829188812641882128703161830383159073151122008767171273238780620290794858644094393811059072172239267725816003807850103417053255351030353355037250349263122082440920951485028717873016091105136822613773777732856150768301668510478459162654571962353174688579690628145031236277158872583002276999423776421124646767592355053299387365212188682970568151451842878398087371060520988938858449939020205880757725574093906743535516594009668167453465553145661741706574674572736018205973983048575847170907162306747536770186218010405747540019866930768411666040337470615512844462335028793080146413727774896767487376622384889831813253922209975069041682101408274406327179885882540949466933235672796464763978773768176430558550805751552752519787486107602179232975801903192403038619111342167521127885752827627483434718847358997238273908524689260632914115744188878639959137742420227822535935379799134268147472346302545446463470381446225485417552041300245969836742803732547043588428415902665284554063286702210752437592441450869089616781408677017009964473302366917595303570734346246923109837694212191478772898005159376993876865749386542370582142241205856073490178750465574555081665987979254948413270160673178601332163562107498222345076877600571132654142194836643048471659893849877970432409953692437950686886864898841779994084010143366903755773832305932680271685226717279724568806169050164884219297429254281610884582594923729389918145622154085556129879992855378372952046564081335819020496134118858815234423562726834341386673930059889873968527336852521936073632363271790623335394846479390416179719950539253420179292873918170056542366845420565830634973865105119575039648140225234636182215377699045144243596465389163992380674945039824000580035750916772670567079020114271457069675398465470049139843925097763254461436755965295966026220666592235153502819579316095774249442600275186683743799248017960288048770005324305474111926265112703344092059676297023299872534656075551260326987922219466844041218178025933631484425396020158390576871899394029983891961727357768696024897102398559400011123013651071827957811236669999144512488104681876766167079702729063656195418808796521239346986709240728341375359421988949068211688719320485993471173347823423910547052718138801198127466304139561704872685588777084840914650215768124494178829414749933145280139137946474128111055927483131107172704457345831299060373226410057591493973442783650413301297206613978788754311481788162139618382977934389528878018806625142565296808337939450689325688201160461427302908711256849446060658352894193827650543780223532475335361688100833389672199445932966750670765469015234419294570166872385871164456654059682004965707763823180730816796793305319076069751345674771874969201565031956444089763241666318413698365222386995227674688112625117454967194227334271514552233396304952507339533966911592593901251812119664263556321191375605803989609947785328939465582449190489436682576366360405485035391337473375924182389845824602336015317101602037658068211187919847010838522522866343459772364646397229109509134890693518387230287819212021714181111185052031928518488465340541655918994657160751652614016034291640674283818312189114263496363876716763486700211127782798188485600528023782778272421206524577030690066764015023950716558720705568378480757208941104207325608983191375798294025273572292528989557031576092791637408502544191891239840761404766777496974659296576513310007153038710719526849962273390094320239021634533057469628949049212207954857746235497576468705876307196873099156617235919460362642003655628621565302048485878977586329448633157224779534445034248245511674679655573944882641766484568762980953523832072323498457794956908594691941448084468937666901070792720188954860715145299319317422914141696013895478961867287676559433672334493960866117186647933753289741337112323489990560705065164943634838227380123734810002230437746719922238048520334443684175998142790863569382083626999169005166170540891486537940561407618223375298273411577225432830644632288558115762016100599356968809508695262087928786676249566253398089396694187537844321676634352145602727362082569328807196687564101418298387906654007299363985443058348705376940407424731386020519604157391211004869865828005206792843828745475531720940121748862514701927353818270625558400520026112663927613755454446542745373612585888762680968263115701429188162591904529529448646459543294713579988795870128722434341035870851123706184066990531333203352384729978321532848504159311723928368341474951831361325980810774998940528717976507136355088732885249837946598052429564166078455609718890732333788116040698968130349747749413262690579311514357479288540234064212186028312560501444563865674791878254369451792249065066697633218907821123966711494169939188921121149647310283886507954312090897298013044434107695002284675188603229666178847320810623403237482807116323793362035012193018240130162261321388221347745639459041579721762399386963430952434786914991601154965495095627065120201557564327150376047951953005632922654796954152066680300698689266466137294491701260012806327228286539037068250584294614229033793581707596650544892016236412396811274623151041823730489992650166589279537585753886440499644767635545311205546226942287343159574448372143339149682410477056979324283421408461169153098169089965885399899282795816316930068188195619237304569120826831696336954327108434763392873420883741280531570651404866570036039752706740928834906128423182707598766026417744593698285527860768679427297980630466311068996312406830898822807459636050874893455788944530905618002962221366607160320161084791794232344169078429111324133267146362856073956191921653542299671847506068229191231904660174193405966549735642956478712927285294793568870191069099106144848904915242778590219945717370585831004171487329153147217250306044309674120476759926846416153714131565036679920201106470389742474823661450314949768652051075259383233632453100619085285143490034537145988069832849285008635370497063098249288374054359805598943123708946042147142099671518280522374904145460492322696054852041392043780016645861407063206532321361533465071004738667119708956699562478227561220855801294665186804648962677564700406520207655504334595268466899145144671465301037230744737917925434253260897992654405690824240276829212302105913897963135367888703305953598793451405015615615830629935928874092218193818777324221726580559930578055803796633894103837666235271079752420377059903657623093096232233249530695680307677416447312853640746228734459334703245030924084730983089123606366614295767312686475515800950138058532857298042626504012303955666729902557523392363239833338373488580562334439688020738163204235750504028443398915472373461899999794252885118963906346121470006730823744964067666444769999988582582162832241722173056980209482641782167492710075510937899953785038004901266829692883062869972800108612459146601416872333233703003627517866991268138942212544734470468496283944857010617258714639816052926803638740163837560303715934944338004751891933841070873034488907084854394909777216489286762147767879887625007310034232658548938739403006028432428500001969529365952653238269675476269865097967334901877080814117213354872020899022999509353271564196922507641006234447453174822511857332484742393549514657242996375596860085418099258213021449978891454866956423538717598386843029650491222775700483258710179794726292012139992416027101158253393530441413382976084218585634272009166054743050926186870169953059607292546691007882583837789641046943516204573852687495430237622785371633880757502657867258594640298227878017091874854127037558672044657432678993211251951459381180516575720979387083455689979831975514574284580506524452436703386904537274788094709064608292879473282132710411176593533073959703535838950732780572277332988271632643650682635594045769833367593470621552841815226739947557715834579411114098063539708487738076695616721471666095147526330888319535128523816794482828203366082234816172983194946978728164118793637549977354242697661674075470979745444389520293131786547181112369135434788672863966687167004798041773816911772462172204977417809663791061882599251799764767120690661998498076863564451269164673719006644951300171718572624510988223256928588996890704536772604388439301478037790491846007047812127002250910081331476376526528668152570689866686852119639101544840631451281149701737383682332937223717473464419800371803937639828404652379970562643554849896057641925413472999019995675754160517874750643820842069600433641702669847447334014802358644819153005969330234045922016166549580337502056506774541348768214313548818624765533082498820637659435952805811223464501156304972102137991219296937470886640063811149352896459977862263114373365319580168539258844647749256435844664425481866639916651828210738565615125400386762378227013628729015572556715227136337881407776417443980866665665683341390985922204466644176898043996972589099565871859708065085782936311845382364256798773781004031288481487382610609541398328276751302764767647450969261684478563320239769579049591419438603029893859399442188087116865689420424531345154920635489120880481828809942158401800848112980586288402753248669328503698747579046501027236856592489341706060606711541363506905897004972767612665221696669083699598687244239928899220229521232027886208356968364373463880798691302484936201541968717104772291580582701754917914952207812174655030036742298045499456265331462114714015208614711639188446328788497917934441151153233820045928619612345460110889627537845523763946448800552199441419521755414553802011396572379789455224288105239691248327067233056214836653383856910571121965847281732788197425042061309505020904579749915657766288199420872453252995821067718448950449415522859292136578765367073624960150970612297835889918395267687681258910024336932462493309588642453213619303023579428610350207668321944298622657979356292062048767366531006825470609555904521265028713778996079998694844145606517660910463245557298019806336506948860057060197105360452030047434634448362680471411075977153085684920075408572157526967988016919817992947924085236966386428409798093332145001474991055865918385212079411899219784518868462618042553490405495422808579283656647443688741873665412093549936073602296787590736742077725909820704008216529068980155146880033919202089425026623365264959408338857450042524251565819868267476858082994836080181987607686170369238628611998014381691135300293933412954664751506979457318487226269470992597383569750729589137396076233686349399027008868625097625021058327358067009379610870819774069839975553905771949050329370704394094948465221702893573084343797442939648604532521184460180668795025266708772132649449130277725764698412046170273943624145537954263528598577863772720568767020642475177520657111191197661016373635339291148322390283409647145449909503232336426947735080629826955426515183706959354215603005147303759237587141027219214202207518737656027024458793926713826396401338931602027319579444208175073883588481241540776749945853441125546671685670115993281352881167152278269289562005505376801058639730393354105422081337908766854405969692948942821239241221466353080741860793665375281119686412142811370529274499644206088800955267642006495714081946803549824002528979980665112399500604270065415901927004456786914608519018177804103390876295155052994197765663919307726937236753464601367786820164173798053520743659923174082898314758828940636136558589872282384634499819170280940660730489990972839659577790639027629587506077096799960779025665507580874668944655241989294024951899696179185455153755917228818133841598605509701037353894183238217156655338474916317077939187110792630436435726842790934861624867599045026341199833892412955260667895290084709214570072762914736064916246981506631521155629495708830226190172986870279880647831624300575594992125884548725622977119203685070327664377856278924919164795266185205204575997426907123966647267488850603764096092202627030898513863714370818815123558746899674058385856587448631182536312857079148303595443904515881355584683290696985583340009529278931190854700764694057951351974353149001357431044393234771430815408482003567445485843467186035017311816560524436478756078689697944099963161107570685119567469995314311466306318381856346519948245472916777850110363331693516197049606513434059946663981556937746385076868190958425474672065130359457179322772386310356972477355041269261832802236856492869594018566640497139431451490167132530484301527734812253751868105218250991877684755105137781535476619332910056644277908657760652086655234122793859622447538866320794659426322422522742987133359575695928428909212572756557627873342822302606090570833559967319814522684529690036682264430566376934327140100468761972722890623173929758985181982680191864097158782880499484646067210846624675428481039053057649019721435326313760363870450538107258079182524422545416884139052703899777703898724915546050342518936779090158987387580130864989564169351307030708140108473312039086398997426931186297136841036509386337251797689395156581462548838544534359207082496656244150015245523063964002561599150704314639196863723708308461266810210625157214476264983700617634606357769478573030510987928648526285280504733752469553779397992266271725082361821835679354369183014505672739918046719700530187107537490943160547687496021629826083867463653156715478393833946440546622160588935444359394927467841575898529793407798038614660668435936236282997438616926661340638005870229227106322719869139794549607978407627494356279344345066617885879634677098726772527706986999635456358788684558502974750249554997286913526241831153082575452952967065263424598152313478159326627186388364031094475194195828040016973499636188656097207853057816363773066839629791130087294293514447459867763364125841964450772596877026837209041031999865061308264944870041432534214234231767229840777909292457696087607909774591903660967036858702190274016129981857578550948285640110197637957552181828437014702713657839206607385199960372006032199532432413646125276742965782213230987860068243700018746086644212815593017128456974528860956158857834078042584260605484087469311060106184229699722824700150529044954244785657325450102034941827761214445385790902644922054593087255140378235561522890870327071092234620890660968157101343455096760424439216186982117407018469527295561987690856778898610089337886319869494366817591629603087028278122687620930705360524631956734537427160209353203586065988617766192756480523388566068531563254426762125264994991508649408120636136825537465913207102972992657324213759891976154258526322918777300394081134686445996351767642240269362123921630443959965145365097844294429438476717221539263012973408192184637193120134248304442540608794410421885173193786732471111890275826181264878210356868405547684912965545205946360973921902709870377315051460471647022487486328587466458325626593301311248157233944884879558488193421925778380717980769279139680673793212044129003897046743430627191699975229733655477905301087109241370805955155587897434479481112897824599695705624804127987760883883580067694181807209062453248693727431547177553160221865640923464001924349835937746485301471748137261546659675319336045310164633229473503619787164937790538876875633568346966380001645761150859098229829663362221330419210438951283334441694668883843859234023805443897549561275942683471058778577885888523798795329805044739193999836378970351265943597579374119450144082195359918604003413710838914340618940392344693148846432348126858041348292688128551939686100577764969827869208742719218908559502724177534866014954886663536857140290223804731237503245539093392941583066252758792908398600013298369597383315486124408262274662837744612674769790297813921960820125452678004784339249824576859654077218753296170489552193321042262080677178271050943292375361075622635265973446889616170856204453045090240983332285212595759362962926750051616782496799612261951322568602558170184348044846421462440810594878220491541622762782762668159518382918620232407154485346466077675924102555598044469892190076992253054351204652134144775808251435070649792934845232050587342148722220972926828085850158948437924954285891286593442689039005768228176140414074318197787014972959861063619517595908665096312427036159734605163561744983127797081943854291897158371651811625319780168337972153915881953266552338646340345728171308636414353915939371597046346823995041432368745266295049604925073619155245569394894141011719399081449173541289730775470232836341392575873186195587164542394088722091033582441609282739728430292115599250282865814102416555531522383144466421791331622441471750353673946873696198518561024094689086268958599928368169281830990323395452859768018213906116136047405874724865288240488847995823884662432371035478743213151616548717988572890884048971108026305257523998502714848174956527049761420821295749506415999200694200317072142028330162131361835497625701305305586336243282309151640971733249606439621976899130585983885715484673261266823423527470864398073250674585974912744736516539058087171830248420097821647405928573964454717135024057414967433299740694998756959140027533681008227029374499871579143614547079589225694599379446155917428426005914922972052006565651559442952556475579711139990136054997420261273776322043248031008758117428557680497769639787046152406801764971462841821934489950619830318757835384483691452104897430153107524688402431975177617324915531538528506779430744424288060065241934188437497811901074651164426674314884869616591732810753908170591414086807299432795322434339878112439412764010319574030668429161287759987786265563335132294912398812432177074804403371826106596918917027927524985321885248807201976774022947301770254022846592084443336238123015673992099858356925236112335599401897090795255152499856883822020187625318660380777232198303720830809756128015281122341362177484881735103912124486577472739757292136773567020912544470962594237263369557896341095835517529120114100962248943164345424027256334466340225730869508750989459699638896396891174184884174722982086757829479665695147229303128157320694759123197668726066637768029749419748984642697536854905954625579077287077835657850860276129074000775886378057286392526899973221865269696456753701326001247866092122198497666011653925844093482088875314943267102177243904148673475751643564485165313909930344391358593626292967791353479524867968004642151527346142076505742187880635469376476809311984937620728428999039218375508252095289957285223098819157385251504437997451984871662176265636815678512800672094609982503646558755913513083748124395007557408258545820385955500707572521875025039541459886920778523937341450364753740466724116666794581078188639754722458284096263734461529501862977363290196295198641679364894635880984415143629856047127217054965929280680970635023175212505634087700552254508656087444199536793147702218120879259042919749008240550716216222785466655634627677871458000654196198245181848299159486923599747252047204229885016643749177959986767078268858552590115538118961137839161646629197058503760262715999555332948798426926008850725360039680246533309874928760217532561211822103769382514174671499433514612921140686232040923198665940110699110759711756501704653920420136157538000014333871924079678171884678089066456546849863853129285847270104042254415035094986603066280888822118440299398204772138290658255069270586030205112157443138889440445818383183149069956166031210370966587393499798226261232310164858014790772459993234779000534575367584032648522764700218835804808309303589024540298446412166404254815228553679170736737272521424114677288768491874414309595609547837596980647980785113409802156369805388813833640174381414155635675916005418055386244081965845695446068591903532429777283779885698019845687069871905534720832412292837526835868207068278899836133733840968561685402970481852322153604606641483356140686868534446209642825131043900077763852104031164574160253572385219884033418480047393708252855432438568307977077338070731413614700920471444683101198126565528754342809970761037600835983478900595761484712345591157784777265063104510645217102022647206717345504342258396456554016006461585567843321394759288608355730193638431400574908978392891294290267473449454490192992221967971963587440628529881291681967083434513194517745825657552908493799665678454391542378824678590726016906519150116785436018996018752433327182327274700573055825591821727396055621254368340269640982477879755970933523379424652291309933967510729821335425931375337516142654022551497805371894623975822417503518662763654018060803651898027900164897972944341778282280494157819028370896878446321715051056467103466490965856393744006826551415118693278232289539098082676914906543447508454765854280174598494841202047206089983108682860729036134553125279098583092106806181798047204013999441647977307493868870228806644460627065279085610913968272479830881541488233381369547173957586619722695788398042669173543248939499904645102759157368189477187374410149060223551506024573226568034498239668796130559481540796762434704263310363406824629539151702959233949626094605075520598527436832478960109513685065466628136563838104733798310163310615378960172112159640011217120798653127905541812429016363729663555157417097219080644992262190995455577420854197543250957631504743539220136887285071092181748951031204651799519106037322031492793220784158805365042223601134347905383416221085376995207318686509677917641964271980677878973094640877653795931704735675974913292285764963443178421556782514261295124594873158403128295591903764329590315242652239904978505110852512617076766852296791429517946606396712967014784243638906247888131118098929773599166848134195907876950654604325091832173207341403103861234524365265588543778961062328336726143281748117326071367695675768333667822515252318198179088085929835012356416079839538517672317252832636605051833060938935179203006755200773421321420456014355626920952959237501889700791222948442439386307769649480492989903177683421839902790183399614765521517678516830243325216422438206669778358814064348698441060342500083677725645871009488671253991479528988268153717396928223176698701811134759076639768648374310198385091656953896619191381326430442275216088945250301616807662204550314973705354413803280993106083751054981843937989516922470366626224591832604767341506457979913327671761353656972986043914683264114244242518025436414446367280439738046296401917679039328535595761941336609660376618654585305229587429886300312267463798841375343741915450348742559614843854427591131862361014508852119220488111652960689434923108617839454258900451131356316243237470591352740703570984918865022585863300519533690201228608639072172924704186248914650428846407845415558318602758360991855601050593853110557301183568921237818120115475213242379067278144129341510357536563782699945187670922545183661742263427168868000716766469221946825469957521649651202883481844428304142257136692192131772203043977511645392909233060868432769705779306923445090566769924999563054191011532823801277106653366199649750368486106582749272320167376847085804088215850729705951431296318329556502472717943547243924775493843898631188793246275889463147793543487581117704765286036506679540925217910030284153218516230005265844777373304415298604712925883641961529607334233642604491767506941774273629469935758834411169329930547541214046341562223757152901587258619058346490422490607752479201088092672158035768144625608876137740557610834816076733942440258850562131127949332459090676594961122787248769619229572170644163181709251388524164881307772486073016932344814699170028182923110315130919252524568897152730605638105135264516993601336795895173003922731785121455867154895628477769221141127036083678301574970501365105044667092956450003763772368094511304232675544488011492639521123449329515490771023454202578446257374978404943408389111493585290959443562355811101225590506487013094531485523154551489278522448503082597487795742695413631708695640949093472263166014507815673407702640564899840408214254285102793345192497460305756516832367694808179785036106153326561516138622582941794072612954342750215886439670943456585566916683024214370755984488711812080033118835860807149208427366440176622797975395026301307567286536921533197839402973878971699144962943807087252626302943874956499481423446406034830083185175420860357213439859624823443919724612472477049426799615094948338375715502440115041915032501909701261080419971437838936715237436242614767350680756442395641381052082906880891245886548086326382698699504340251194700192609425974734220769970514734578954957447178209610600562285080337556455237433936018837020689158108198086748007805333049220041401504805261633362728558856288974210610324482576263061183916085166500295154798075700753351851413889999625777276250091865574165311880133162922326608997696794946722920824509319180572267232709209044790379715414958778177507859743867784832687580481726907726420585089961952467528004217810477283400986832257939690688324909131155948549299171149833510789359611038362819686246078966621021868797043881000251758525793953883951596261066822077190376073907053478991085510974028877916823645889442676629700139213458484289192718046746304926125063598154890266940398520283266034681982242457947177928687790387919016163439138494394094385783124999215383006191570048363342516466761557003103439913768719266345028267763677855805944931931092775703545888161678318326241462761439797932227212117974175414759801161765606072638480660531741512473933888168557317394353450634136399541287505504598762415563800548860862975674632899761759914705683505931209364187354870415573310904987300490605077787108317703905050286205623714251558923919963489395789345842468395936982733392045603643847711976484683438764537392318222182389963897809763724529625328341889944589895942467036303109009751077904059826056312763511052300206668684364621522826737673288287126542436919833866574515500583392871874271752923959771330729093420716212259422696429037417224012251484051630297063760958872874336779333888277815624194478790708310624810144312645902984056892576748322331989788457258637257992343886037114213005741490501695420450661687271401211877904461110429741101919553448272798522264706349218783690819040050521459100297188470653566078023827430105389280152495139585507380245772985755890358926862190511602081645710121769653626103624180011034054488014456509287576046116349367095489556876612088919322913311382748842470431358608410046586513572696279864285403893508652320185612738792126462292941666779280191410523427734786354258709701751614570795124998235690755363126999676304938546752981754939619618290308875136925628854204939611378093203674301289223665384061517015799269171292960427151418327259255132023956777496818154072582406779004184832707166930377851570577210976261999558529679087566591089461067519686832956252862202081607749138730707946441832085320957248059287813276185079115911176817028698962514799719102895405776359871473945073964063240686018711960160389342947075249389227474005407502776369339082002829187549745063634657491652329013941825362834735573487479153230176695350511260378628675355731413458822456010927769492567319403700721425224453777910609444932445379384120784530893539221545948034382337139135939706752868619727795295522799526047059205325768168964488579142023600090947239906920272088456353613262526284273584241520493592956792833367736134464196969804307573437163445148250249227837866830125221686252355234356327076505039203137355522735436673259038365147869735014870212040418254018500659121033299477760751875448010072306212678633377760207313335233119593046836852876258240891425490965407737957529849812074879501148249309991729401263031788606799603944721839688837460842116301030686561944215621271257688621067950885295812731190789389315171116820978888080047910593374137718354581486193704314030935234279197723691915297623323367975742954945893372034775780564612416560590420097241275012434006253408432310291850154293030397176036631942382809326513980156748922425460818479209103672103966680276243097618208070022837705633972774696038067639631764386812291268995891807763370520809285224430699727859636492664428862238044939140979814687531667520052737616740773738780505968453728675253542508129599046607990972358221460387264962709701848546318921010717608371516668947907379277825339167137068532763438647883519763107494901060255112736706577583047381778777694182621925577606323959765150409659880159164686634120538701563522737847702631442959171990544532951195628065505791689563676361202945361492967249560156022995283541768091662733889782130143465475008448181592370213069703251286944548881079166632700982988935196402549723845246071678988734737686911630638817520359459759274176742023184606834080835664955349827114714642611138189553489364111647691892925172441283803613108656563089361169901626253794630605462157246769688624972357518652230375672293026959994827219060102354483284551238905873879100023703539239970971201443665906931984682240576834641037407703029667787298823387492720679562796606260592730503233560616320132737655706822701393086167368262594953002226302790833444152154025034451782234752767916324204813672200570228192314608115624533854033971568939117330627440228014330493209947525915328294858058918662361449217733933427989199057408856471401511326036483981741184055553148958377537012919409411902743646413014519459277257520250868701138673869067852049146519179629558698590528953060622913810817425185897805901203056876663097234790274769990821437759759749709484592287453656636973624967629280515975113153743017510785572204396263788657450828222512173109862178934634876505981930882964768714273348893208735690092081916387555658000216515162898829995004869714927526262292539421784733038954436547724405821003837897696509371387822909021237403016096756539837886516889817124734188422573982167004729140907633343029974345980147078921461419446291604811261287182750014767037704437220839985004862775199990782728163818992079567084480020615133377367898480329632265399330874322951179099033633394836768928425121212523150964557093363414968884053908970709580181435189861251637327156982462436103074962873292641630159889049974123879935854097390066346407818998270455611436951355242028971075481000115145562719586552828282069809503837429734174363758003829062826119605083120424354755857085702101405256926809957627833958383847169826438080336381068465830194887525167249936684500851577481821148458437712612215330090757840042110122935642228395942698960180347337282953282604616419137869410899688820823627274167340278344123757705540844822677936028260578513998699295268943242339534940778543271386039387801686130575038098653391323285927886528548303756795370756180364587077021321320615922953586001801084359682128763004604079237812161840525239618753330889441439937653510766827980725782818878298305165687009207608860694933551625277486918119600141336831600404949430223888612936211986851875995256414131336607315669158500463512601800144701564391737031136963834622010681835409378610506171197509877343804022894012421253638282537978034624712466133531342626232153327056458746629255285964035049201953936546050788618093263365605340473701840511787214790406110800162426012236290259779647672587972783813968992149881136255183261046202249681284340720877975729409451316707290438432963065154772545465255744640737134704664847731202326166768989132032459671818282960618184351031747637114433629124957653982409355857232993662310061619479931007165948651126925832029367781916898958920307851687710542927502989418802771635895670867318733509627490144905202578570407217558299116900829724786894924182056003705423595950654127153770485568838453608735611478757389659808067498439696233424696203089637159855854131260604683657041654395230568822351260181568661102913064663953895779075419783801501141391047354676725831460256504328948610288353342563526961361889892414920333737599952378657556784735316503036855323452722777243412726042718588731842672761405341487250745658157262461779718115088200182156569939997889794337893219452255841913158846027633960984683476470619961403969719072523483962257759051887410716482785700214552015950247159327185181192675386180401688096486012618924476398977427958696382289730551144427504731872492281074762640874110246382644646878800455110647613575186944668088664694675928991903150877454234723442057735824489545703017979274374926959957274867578727918159695565826814389702891133406427589799443948995933247596310604985141946567686834533634637532520558606638011252110979484063802543423377711674522344396722682827129630173123760909935651222575557500195754921766940622187621700290607417786546975851238323459003305410434578032101596371205934393331654318596430525376913597817209361671307922868640409199004586959555941549812504384371079111205465311402558662109416650357739928595890895629239518477918487109217175473159368234908714571428945439048833983349242974151314650102427558109918132998315916613218616291592935242804684657025179247994269898575731220362242101787027701709694763036922747031736088899366773497773302664251247135890617011725865898444061272256288165725320859234658521936333972192283028155668758974170212339581563292496867994160455332430779526120797255494558619047216601932304708035723011392890029801325693885171369101988710268128499476011334332506596703008800706234393295712927893495105448751276909310561630818061077118682935460318378532926517159659748441119513753183622443137906913561705623660014214311479704433963262818952848919317689999637770835262783664898064349905731045165244553326978685380156583786839527995080798293954391403889170420707083190255108842404834248191804658072035632128761020507014979644523730979561887068883990022161363735520670914405067783543699004172988383175153357812403628455223610023610918174869356411110062137298019168079038755561939211390914495959730195672364221539482257659620067104703424630029147744077478217679790148530822487412667511680753820283338257617698406765706467953287181970087322969837967390153259783065168748939829441085148371013982929026079291886101438424003698362432207845175930620411338133564565187127041807877740250697118999819769394153589733413425446978468440489229629169151430141366845065208960234081140638438701318904520144894990703037558966072877233499511897830922416579683361254532935038142743657201202862651968696173222249928753872594236497254231172847177181724996362139461400692063649918801435141189704543315732403921666499825483758364412707486094260190618683430282102834542124416833677709568947577941301502414718252167175128258574286231744932438613810749319880444213141501595562195738349983653795009766515890552950990202784993310960601459478720662424237330452786972864049554659243145435059918468502387739030862968451038261138901476263790444834573013668930361626768664969604245861469379341156166065747067303226036846233094089556830648448402337462557021023195878315407376080324644298914179139236991585004050799421507675497642379976895661198361842419991389552808268786000564784014879842995219020361043067631147699485915053585015665487041187798543799022979765981490237293610126503068298583989443904403862325050717516917844978209569875107787907471568862411042482793817059089908241200443670492006148391203749174428087972170207033421707641126489095001615250432816638259533898765230667428670428712366449538071330999827102451578381085245515443710823185631030575100890696408884013143324675041498584471272883493460051685376853637012262571337786904170823422808953636143663316416725871861385482807526097327384772126792697061576611774964401303056779894408088102188094256889293816416816932629965556571134559796910295848016706706573475946577977650395433296453171854107983309318433829248107526102876907815384638407114053799614410763953987310720962835763840461465356397020518367575771134854233398364198505975009705705617042041763734689479133847281222695143479178826625738581491449022133149948915641201612009738722149514646011834353658792509315641571168229780272321644548590834977699190231179997814504187796391050713662760088035941254106822513169303105254672444976214683171150256797189249861336453176197130373382069663846925696501530148686608203161003837948428829750412463936867910624709882735300052122781591257758344163831857517107923368313858372495880689114162732980963637731210603592172129076729795907522144428207361828224066800885950198327366985412815962463427392554484717302542719157532053269740812047573345368634137962610880517149396587718995358007458365156264829837125120864720779285265356450687570422713474250965209552979281512870386530366231839721998381412241133523014477490863736786451039669427564735807485096921291886669994687300328184198793812009092307976945420212790912353701456537809743764622115421961740189319596960958108443539184994248840572389264570524562804415229850280591924345562487399186817286040212159036994847821996804779085177538416403063790204601864045886567851201079117443388429597984721124741266460832673066716816549195290420265813812440552854638644748056586309952881109426109890471275708942657707048470017064788140166769982084944475548012373576968762905897759852420143620288797761594335115409685258448577704707168519340456495134683490033400157573396368816101363299392420078367412314422051075927573991221104184365690235731787215544758481725946647691803566398090913741268694028559682963236311170884378923787102729603227471422345293911663865188295177593226713168466250229027396223112165572479896945331698268431307524514942662230643994482503257908624132734789124120140828588460531977030284514916172425432936995416617790793935020875155554193803520796327411585960161410885203504400948721066074407048473343100025313099581043069739006014960836822046222620090716453610057981575711464907008724244379177544612148113280998125285477411136954742340553289810527517496084100033637570626373407871833487959696954181849221009257664691482239107683731037982897723528563676105518893308105768802300571614898492597846283592314410638478999909012854822040899486350810729008598679083157709877449821182813978275224297858595410193326577549373969941214701517849638239345708318187328796692742328941131449412315938944646141463275740660886087175859237634544497526004859054649463365949433711701312546119689796241640339146661932671292828695198681192293830188530769280413291977224786669941426724617428604827771667868617766642845598597447734107636950725491147545682965382803540760364347759848397268473258093601679203383903301652858569187681573210405336451224491671380384827208937615186068057398398598436126644947825627344556296834400623055315426427635128304131281971815303698963853290410920741407016127090293614504496749615045777923785360089496598485683966030074120834062191733233987536136381808257945882864636370727857237708503784314693138000896210068850433104342020685455692952034216412045378493638101457176719882070617659327085399366493753569647778566537726607380021213093684932019659444437699965283767530222208474937557376271953616785692591845201329037316625079488085744810028021307153780595082755358802398941557741709661325623983425769617512458266992844009403788215906024655120606647557517810126781390408544049555241624422221584110573158879189190089903309430214252892594326282502143149993928396829346648071847698589204322088232087324901099285963067373566060427921209363666397411804316066636125722644214135642633565398046877624673352669028403732922497908138268897433818336976953355236152294851198785696217084322552319452874638763658816756089614731478547322600766631949695477133430663756930205741351085247095134036332991675673898970413753437919632567882610046011460669471754469943866647635200552565241660006831718641958480916707846547408119334499456837872142953530598297376549384103394076967858512339293501919465699526568084640356291488279223022487709749411366101295844910498208631914830687529173801121759643955773478121318585214243277578356282611951736432331905748638546332788955858031379071950277519770878050791028702620860599772814478425307224398794345965934556254279719963401972989965956464081179461446360533963867350520580611998680025132449130930031935624523603443090549928600956450864970231945365521845705693211290829712747331445118272485987520521707111807877365081958391979273859128011249327026880531142101668663150564003985168809266243566133612706929845566077155158676803559442696407817950425686009184797817892885250795263431296038379871617173529814699355560161134201121002909335968371906155606692586855271572897393206287169489571139019640042125921057782460203872012767890585431667099002657127781028136710888370759949548313773288037271083067732138808277068987139478661633443096581876857915465181575879398915597684658356669486309166514329458254331575179122361275056790328487715979438244602964752425431957733359027741987387200921602966180570224607786744389838156028402228874082968100131205893774000274057417818102889477245037664148742339673090490040093123122405712690288558279550670878550013372007184185728825084350462708875065294302142173012684838195165228858390029709652133996578007748689335360332284218956609564505447600673979619372508564725747528711507682877318594736736895520220568564377663914955562845160806465443081035864513145717948937286038105957260978662956719369693107834641793791018009981657495205964357838805711710736735632587106342637262328903271453912147410426001310774583133994763240109319847380353322805899355562218789520685822244643223798221593514908548891396657819946016069329827545660313268753416122753192539540598076241573671496285641685584044031681879490006384246969921139574973882491836703996426900583926965332973854903257599059344964027181240001135781857086002751578744444994523890581552930715334056314256056978699769167705898871177371160915202343306956156858210163722834757130332467654597228740140796415696239936312351735109537673298118757295444335744485736159302431057058458679988646103392330877531976627038397291567441799792143452084235752106415017582208444473334281718053810258177391703950649214932971769136348143614160350469812472272429452121194593948789886539149186455923701053352016601906386326426479715360302248261259021927046611680849041244486017946865066207075605869724187323018519430820701491617854734116209085311687890234132088779229934002659933540053845499334383100861109777710586856735499179093661164269298494051252429833782191362950905975000940156270313769064220068068446316094286392720519128492175860361806659185797417175690540957833090937070667407901124104433910468541982302851612096929079997694596689491505383126011341551555129066295409953229392599555628027349901146929208099906965049667374825361311944415479442307652055704197156742442011451863991285101948974461934130664845287849508520177705361806353579076767041616485737425129313550626237390885146979867851762555066620575419111989941309337347290184586023312258480713169591783959627107471934714054627654746135224266249271825937905499199324275882986277650712198305588403901803084771764612667957131885333093855398099169760018534749684096536893170869310095369414868285653782626398957961228847870358182621690715432276179093547865571732189494280984952516890560868331561629247536824422644525902092784321299160180050920726901869571028500459950476277595698743681043073801535241885206769470200092799903215302727752709783178695700241936121702634079699443044715620880467764107286671163852018604819290985690184992631860851465553321883005920735680642987182005505331248517058960525160892380832589834045784979761854367228119235866181523596777876040206877756515997825649482982614265889515980528886978802006292138700983834274442094649461923685922779576442494164958961765888944510616482097331949618979915579290490259063729070441578337275122891039032701952994002988421311352432234440428602485017436158196471796874640968778059404281191530326024630007188335564780098656819301546154040875702717928746251866789034839218050708256909131285075580256488836178590938533859694284253746335030995254382003521919468838137476593465537431213013416344406209452001217730326741585558617478704603616769945907888243075551682051180798815725831083074770593303071728305862048476726648291292423453615345740650687103183247677918473635384902048507481501225361505013555759623655442489703541150914762840299839309636080736183258876759297839021696683097949008636360541592875443628487519317402600960344551163499508576644872537873725416603396441706886653811515506222931929291256962149037629042096096117673511108839529584504824719856024295620245292697900704678661198121099508097767081375495513330994350131170477936033091639420046941421442505733739465860954966512069381017742926706394295563063387325271151561983348250508107567434111173961670121429238749229225576852838954031682836308057480121850207171542478095475339426157515314214590750641710465984971909322613757548836620029414485005843338433977313531991323026340491497898573348744928914011174056853379136089966785929454975786637262646534823139420213497618798282795281392479796368027037699391678987753443474517684861339559218919694985893626619147831546287190801922372768980898753190096333417484676917719320314109846007161608632641198937561791725995125666662356404379979945252257857823794373286907273002511599933375586218285287644603225768521218562378843160928448306973506883524907977561673184512691844749991980153267049387791915184239754196164512631432379536975865108254399778915230509451445762402795690676482711050661480155309374903022423807634898995862415259099757553129746410368440413965027983456595972329019829412157292896669954793816147497794308178379671545435646178663941252109048257003046721129556437331210441426653705949321102806330823206503663894681010818875308984995441658698136557595744513175676634548053486003444671283704747718129404712358298082427815393223009759558014360175444445169628462309021155266298828698237838466935524306051906744150246672508409522182455552434182363862426941605545497476742115820306593520521381263309796357867738613474910768360881967388320535675104609944562162356467092753178251594839290628958405409388889425231301585904984088638979109033927599671933253099918817832395477105703066184271418049148675730714786806360638578271184799660758400773936586809783235736275500380655085297129875556631276120381506027832546680096320315153375753995847127048785619926302623797064068430764264663598180170557299911898238493064737193044516819694411646637507857862950399932933016678615772637025062200698826495673007867061396200187999790227411420809297133736349767811853146719395294527872042059023331596814329570057243287613183898593370731236685027147717840716798027353641532792560070637134476548413537729925970801846862294110523441489042395511049409173846590824949450629848776185342238598286711303588104696870468484589309912362463786229171530200273765987376162161373427613983650196498561572701764212110490722873801080969188514162535423894582007871398650182406964176729221059509182406240277742900771386307644271701512994803235549919414465827605917765353637996063168510199458010245118917916077697630783282458385438367144825378533713313661552235583245743388326708713226748978538947503888093480497726641856684255689605175732903774805578351099936863611405821779920762857958059225233621827497374276789705634035845076237315461319025022514826571457825361223024112601042822356019131230647398252846348502635350637624526432091008205484719768648736448139322061377159321058037641648712107668978919295379976507488678929865855756880058630235949390582854017300780341571344978012475288894285276768414729759198539103755320232702597091550574736236741095305422279065271880059119995799731500519489727464947771319859747116268938186680172127843283195986425962977454383081677667638199371490519298202230354537150088005990808755773631954788707074437901475581662404654351054907691673897285179876290698419285204117659847662756342716166936903313252073205781518399588151168237369513484488210932952349092660597252875407758651360562824812257011594523053293381854882533033365216659577184370961658155721905917157651479776908791637163163346761417794765645660640689512432352398783080433999168347665473480509077755381945615272587462723016670582958838506594764868684095477072163899524550156449559187248611123036208626778678550584446585172445961393670066552425736399800601733227338817059387148562226910269581175612663949899069524103362683905809847211695248431894202093080465267796575435675827694188650622465922714509669733108830091097879432947952028757116583229557075973192968587645953223806013989798997987728441202030487976237012330030198421349029870822329777860752627867969604554707780918734841240367680855910409586110696567617442971339860916793819203350181695773159799343869353487129690529871570809613861403779011321644735024673724408058699943976953090432426192099482810660008155669321460238632244566464471942564038484299823617303445296874325852251512360704702642509803444501455735441661544112865348888022643359623033799034579667855697184868860393277644165077397491099020067417082820660969258347882695965461898142054178400197863807912771898024068647321441714071757902183114089856657371846551797333593532928960284036967048195738070473267677843444531137898465930871376813862058289161544553600454612623640169193760757789416207617460367016379277092392152191577560136947091031382233784585801546100647428688158661003738176378374005725366977188263107344868522087479150772758880630373361050371412306453538666266994303520893809311447998553443846782901138342968724924186450740705051823895245322969538400674101893389259860787983060180915124911587307443009236667629502865452851455367730308625190859017965189227964905195085740372366515143250152193071186597965630344224698633894045867748966268579986561653382798262281971602976451126133243637983640039258038325492452663521402289630538894290881053537536016274078201362222350544968922308555673255851659280013960709394627077639069938328567414210882265891530003405218348601191664682172938181152305089857114123380579530171834338790634481823006824419107845022983553755570771154329828007324411811953984864528798725918962168746687252641881098370344440446867574521715957123917764174091862192367459352953875565112363422888633060689894742538583456710159666542256998876814512504047490201939026339333234424247541173898720946675469973762776931344296655908313667017015867800031754876834456377720969214426752275539740088027972847458771085198653329007803454589524476130517860082458268365159751441940472526898560997379662169402652171128154333673424314812683914459112343844889106570578395225509929043350980744920536048722722306930203943008927086727563249206047121218809990914664974180911529176019520927785529966375151681310587140005608071593591336069947262385029351074208858929809157244507148609102180164763660043625962411820551949710571145890472927846532189805898261390565152346223046723892990811774497895740106906504676066597985951508083940505878562796502304034187694509268521041604679966701905460683816652314367023899680474360294187387183623080380189148270778066612391957704143199461465956077032979962435842224376809645419113219396615571317833001959323833832107266624618596487286840539372190434356145824345820269151907322031123320100938198664479519442901922146094021224603558345065974073581208789762254599108762384636466877939324187369079078283763546422413272643520943100835152120546204162577216964957312440316514823145968346299436530451419334902940400591510596456501148998044184884417189708839799082987909425440126191184653232263762713200157991294453731389903776646534226733083316568064290587470394608784701482978409274907482868197375695590132761114467222191826123221592027555754894128746819729160917623262451563245521260372057699107578524946621857692158306112618317077061595594510042495558236709930591781392602520099528267386718353983414746370877441780705389175809738850644777655387691293604627822620330870300686602126038885007689839268895966278110931379270403207732601903032995639481762264882721142777576441773173124859968926492584083076886976812000386505061672482282003413675087466894008916287880987526175956088645078809742212031960771110247778081740628441809858013366273985394895821182394304567929913461895578253288113377370118264570099792281966804763690410959882903585343450295659735847058635509621139998437181857936891469423212092037268827818597697784118812539745464069408690631378161853253051039614343863282521984191842504355114599814432501068541840766317901097334825367514067801597748245472773837594402655334551070429764769633627264247803741862330258762320780312058276774963963300237452188543570155804141251880184428069169594477291464153981915923316334772224636904255284117803259652419427506883056430680870214850345106213109899815141395906616916983782211597282629565474887794161086551700114159661459946461455024156612071950187176912986136557775103446757887853908678101333713388403118455156230439669368500029417029643049287316115938842034279571316956210305233373942225438169011515100983450088293285141024543467660947425767572301460965819474487290351809332062775588506162916645174755508265456244243348837042345783384610081733641103675372913237135512603054792805198376464280064413373353808167230076793881474932153706349392722139080379160811753195263574659591028180796886701122703110676447026262225383969711768888996030326027503000911086126621958958923416312795734504425153488052121489455675959022626151491164407691816513961011430789638043013601176605397341921245627714853855848983132695408332310914540517792953119323427130198684813592552860847623673570432015942871736974423410355230092788958809129953619240376538182819657013771643204298821774561292741036631017152457731427912519060170392856916003583728203341994783844077024889798589287782522537504887033539255145174734977227103971889790238483417889817750557012356793161172565352556403227535753427656194762937302880537233555097056638550072774781780332850336327606529790281260339529136614359895836140787068316259607797699690308569550338853337684100651177555342247502421907018062928994807334135930666118935819763041408832894835987120236059563642206026725572066510225487475572595336338981106673921797786808903344792696977215578767786975836136409545150961353762451630547832369775558405272697519363784665910045038978188858605631220172617844775290769018241749720230051856449302125184288235864294333520007108023489194232922480081461258436873210404217697853904841642650786968373647649623042412201300919598535158812460440779023515913398223232556743849816658435223298391906804893873557739109225384310998234619698786736988970049263816227228548776941896918514114748642444806344689187475293544856344066848216413245837391993353556518397297509293137782221457377908357534827657173263908219690087251750350261436955616937493501204835135743296138534153197630665436300739127595121677831266872845596571644008776066886760505335494151407006687283646145148807534624956708065507541698108891053885438860549215123160254221200935122514845823347396794743651583445805400310947278330965026774990262681597528840225227839098956603291357972309060744401736428858113341139598275108511559221393736873535212843400780781443322491984795651294963388231733733587384115131806642313258023980471623544443211854663896461977310169709587273167716856751893374478954132442992077505058017562542937289020797874862230455081559499140448365519426514939595415807675525260656642688932978423457777733589896447138641458505371664050063318991560613892678761022733603935196321759564090993815073328455962219333376340245230301866454913488679118771453105583707366326407340412871543714680351904625931177283279000637474878782254472019386635191117954876290048661030262362585712070302314505705583260862457525339970807484108943799561870372666729359402127866744627516648780322463280916404982154206047690961288764045155868375961001260935309183268620396178949409858213686725477077957950590080340616075430202395254405630453352895174128566473821608335311931226846011336126162897171446338569748060174934184212356587783751937961609620346037408987143398207394771692088080419975095267806856159987368413111191237054886401246519893366149403287911263982473709584247951402063120398380436499330106516903920557491980423363108313282128678490388451297324466818779381862389832490815173078415487283738316576162988158474091194539976691342947402334726862027567386236937177764688063296588903068715255980286515677287247911010341389760309724997632776107421015967804543566486296926350023754106046387654066629250147732096141451770315960527554688236277126867769043535915973033557724301693725806722144450675081271327367441473097487361320900343806715050792755888550723889963734309388538991414388129325962705789136431179946484739995456010752192901870765982908970513874229249417660607749309778877048894545821493923771430467731686271204273344000224839670089502263360566527085478753586422199793500309404741069483978795805761800616562369877697889181098001431360811715688954130984267501635916909299485733673286671599839378601209143185767178445762494556657544869638536228140391445834556335649674675874917079126682449874222174041098035476284890470328652632319789538587999671300460021680385370822718240498239556977727781097805191370562099344987054422242644630049246265157465175109850297307882254090600963141838380924763802978229382732776370550921903514973407223285743290217636260754149008550698014452388186928092379900819579298110757313539944618203008067870692271753119757462391326812710156841040170178872458102707483834127712001398346080581991630796739234823306523984193056954880229326053479281988825815497691940436824323031405818173277844733237861282409527318073745930738245691551247831972138125856196539252162072167049561789347222681694325403727220341364302299738608796231600098360959623552625376594801929946113136255010363728247407599327762281569200917716099005541132204394789248920471332388819850186970197572059175340862800486774379802108316867963569863050300791051554322661767242798001897320591767273144896809205122850477432575005185144419147180179796281790232355481901446916607467040069239393276731503352627632816006141683944611964656855894028053498940060719617131987622486587831071194800682514002714526985743586061927914456026091153621633388547864788846505109184224429708842576325008609545460440137198143607699339141069406592313306259183820501738103848560289367441181424575883378349054621505937956242480984326162309992938429546805173995107900497664649472561323560643735234227989177483599887294450575685391787955995329770813857822596141835409447075217946805693387276113317036689034135434315063990003428850314332739950545029730774139692710183221193532346106844483954342584510726407693532258610836320800478774047804926723014452604061362246278390539709801401372443577064103498321737507606297322579180049781678559358672821665576525655081175955109650251383023143293726290257527991369724711271128882272196142599940242393895665157448346216813783484192767840761033633057054096562483742676456616782571855865050250693367589008291656737160896334389115737134795129113952779632886727739689609887716230965627031741573450328180548500996691870262297528691970585750105266886059638588203007059612435649758957120287042842722371001093462449938185008395957099885510179180098329730675593300939012916551998633023677847282068672460738833282292364743474350387728727560287595752197316777283320611958221405709432068103126820175352068645439401962443959834587788783111966087673037084706752240840111022005069278769220557781405948078748111322911400388022150052871932435062520462809517352565758053560936004667732447665693943706042624195638372973436895894949446459236362230371334029391855634261209986162511908394943889964860995961705010067713190113988809795765105778566163677553530787021335416185532005658845311607813353214692592839332097325478851813309969547999995975925731910134784059155112652955172114396135449991898478347962666683146185511389321451041066282963536603997046614420153912591118734564551996928506249396241789160033606216823581463045105998009099962962089657638243966176524313078546032575159702970820595933367407682188082036752428080307575625466580290775571596962398443211301361864201448385110740763074924174892702299333143334487503575620942503330271753105142490641596765954605236034567360364328483102828140290731546643087895322223460646656311788032163637149665877826187051538527843319939435397530716144410286220050551655787469403777062140308648724884779167957730449134646235572293243375980562018249427192708313831218327526548956018148884014085823372683000367230769523273827261107891195731016832498357677233691317317324356133281823179552504020555002288262046731290169934144836538455401977568380538606550086750212496751167277586063722303792023844312579542529517621083962627703896665308776978184538764224928911181204055754707951810244891307496119874329293516913539534971687332673831707047931181974133902031324654373634899091268180199416385955258583478827475130207562139158567500000239110118223031043399625679441785452211442218731328573852128190679043462930389480168869480271299061962562936190446021484213045139427312268380639467970320053256141779571708196093552269310444206700406588192306317525201996969703994333241572683939387687212604140433636988681152168096101016758592544100314733333676832207920875537603798412577936964958910112175057265704207279776993469532748238098015825337689306093518865366253936927798573171808190936737690686111680013508708409858405200753167332497155116443028124537523782661364919417431693929119979779570635603243866337416571047579550239878461345015018280111998754956088150732251737117641253295651962841274779158469231929679581995632575087105515592731752970931719609967692086190238011173722986702357049254668136752594897351500291905416439132621160796327841610273759224852536064665712833837584859464735916421162459548824211544128342623116542820984153648539349891587414835171029265412370238031899322473778839171524769142348471205240446000969834267602693918928312199469734023986737567159626875003371011016210800104169382454979798342736498189104596548408735751097775686988659317677225132048378719730917166852748718350057775084904630814607504813302238741421635105413072264541347477495865791194140384262749346506356761722805275866527794612861832557940926362431744525452088843550091210937111194152297567105334955884247135177993795760281210830044319916134412119327825698508973328127556602786764477895836718204401360514047394269641831466970633676996120716953022655206871974555692516096655376333063545950248769535512567478157830878985720943461566316755427765487923047387946947568837797528966916134808397497782308370852045710314693955699337654103615671346601184700187374814161120183560544736194442922227624818341765304622138630571721492485880636956251249728743842108699602777289491441922491697795685247838025626894583578430713142443565022608395661125133738421413967098129802370603331596004477062072139361789918789357559083336064442663948384501285073467056882325497713652518350360008237709558622239003057929269634885086873993388406110441629034884728672600177087473676401008651467973111333591328755967917642051931466113123882647450465322456121875530551610666784744008749379389784427494890731071110268743167552127364436682419159328264536465949371159477754966318104678777064485793802079911516988146115307042166938823244878116641330383885738737059054850700353201805185756952273103905661406194821276218897169258198221617295418391016407449945895458143821458309123834406775585898609099290783699213275193181747825583416292617012886474668099808906036357150249566405332243561996017778054257372435976728910118923173885801923322713663406723196039288696522447511170047027506044682085190026496394890420469290569930730455768190604092681072914420394896890849772620453167597222450116521331193106409130592210373673714107762578312928365785777010954500611868339744608171206865888851447584182502773886702255624217560889276087587470197012564201742686285781831712411383825122169324794006349730644814090411567698333845534690732176774827288144101136968465352562684985180388688768328745804508179307432545893665021812617463877589229750953631787876501696004339224133880694214830731269370142232184119710372500313064356078262791969496782223685951414173177487856888240643042088167114215251265540149801657034561726027282458722244406004729022381533362547952565837456837797722136453413056017940490028329880408108723723425837498114206446200064992434290029817118357002672068243219331609791343894650087200021338097548684573100932819963668716609750907466443291371841132014193190642797741737168423680542637019635366759872793589278757779843339651619925283143841697538208697312540856378311804923782229080549302505348938448621925096521501864211097494161850200046802888289522768775831383942921151331686385884918923754118837346601020847224243134050972741623628221105246173678948831189777138561979234976626755430722762528289638143181112469088649717836497400996215780653231881191372649104092553235209639260408646770291160042593688933352421077065786442123027257371515712624223772454337035343658863287632061121692920141361312359579016090819249611831508897739628148225112185796118133559103909589953884529038136073740257856986669526548330852539349788563994689354993838580160028761993641976669929613624523317865121141175944676466932909326568768688389805975259867063354497045544553526298698357557516471379056566558571743641715062595910638489659475048890207837842039617941662920317582233067840076829114570235951831686105240615024753223666678866878941963802552832025706227820587308310780900223559249081270951914670049842843315752132211292597201923679273049664047975343753233220360488775823082560799103279262098344506878228825373277170971935036129026383459318398101210090093015740196634774247161483782033855037269007265999340199023635415744848168958628677695887784737192921094365652422544751917769875044504157412512243204348322720875291070293023699315422536436914959105840039847506193427949553015079278923965685066947367456156512608858112443157152525308938176814502892668054496127551312129700947915597759507567427884561522809779394268344534034269203810130683618433029652171911657193384635287194498978591938270013560270094880169915658572400826218316965083199319537454664805540680995122659002309969791453147975820652080659810527186866495431310807624328011434570913688652355510600175441394164568373373199113835867679559240132380739890433834932420125081980214395423068250740565943388385701336800421166512550850396261647380921141342288639803379037113132350618265103180973895786699760866932364657807600198105539600982580463279763172286476565162380108100379095841879490240123391764883271723137101558871402126282548903436069396991860260285425097933736686112413177695275936346052990775099991044346786272361376244125445397754040550424225200701890245976523111506390911126338764304034925892505620049418367939875877254548971325873748801595227341418562342223406764067382406454284460529858356564294905115214321151489238352002103499325396417410764221643076605268607921912677945521022994908445699215749699277048218566379969011878928669354284061833201768995229210943185917087903825158582488426040083897234016353348676259784268178516692109555473614777023247913234029582537223569712474100884801169463746253549374304771559038581168926858335917658354365833451722847239767754814222654906470293980967670096579671561207724724367350121318606603960969192431128244334071294477960069466382197324226907592026266501484095731811745355782803122298196443922381577175541585077024924607244281764704376361592835500793472410919599376672130974546295167524912480885583587401868003862364568241647773969469579172530495617789863693780798821109943708020194994557215523181826062438954243312375441946764002638083345166022368672966707069089104837340851197176070294176172896664714296942205440965907706352638276577035468809205446761187948115393930339049087071294639576893762183420531324134579616309896325359359194144363426648491233120245347905133650473822032798068728648203790265954061003387086077387877141587469381360336164192011873864413060675056446514542731697971670137246588774553817644278137276159155846092495163478973818182293966646152700835215948943088281048615836572702658150814757051468576253219969042162437376591705578077877805241192182408723032082480032224167785209471439039171417992410466254208308641952676037963678112376823451996149645724696075583950739544233334133233329483233276448721757986320956123075254689609791927388910086789774092162748041897268377222403355746907163103531880330739520548749349811459251496348547005570522004428383472809249210755978884839432351828554706670471226408448011493455009039421053240209188418139065327215966014843488175830984986188272393579944787705113493919576718163964001508349659301820123534376877264333638201752342330745865133086413506704663763426058962984305588572729901705686564604641118329990902572754309797388339787211652829316734197581882687012993934411866402399053531497464019576617508157926149150678713996077627443980767238124129212984731064933428625771385792235754855764785700746444889249959837756863823405036796358711482281188925865634014782937181692993417556800029219868261442262943216758352212579597050948018716197026870262161159986979594932993888495561579691404755639149097556371782447990050402628621527760085974910173844782782834432460766435204890595218224718688786663787878978809867381989288076075906121065209659086287689826160882127248509509270317359679450307037064598057833756177823371674572385891039797042217857550166757903430875089215782576629170122533168140418606849005097909994305842240058071528090782299562905609380465990044463425379233689144947971536606032993572408486223892517086633579296412096302147657625449591143379247723310713248108886630403353624935111947828639539270389810823248301109529307417784070140630810104907051243975947223469557443481621187245478273087152140281571200070972480077414643849668338515322637866511371979062499791842092929385506897321823913238582168328100107270373327047540124793457735567160890196465661006491303523203718948592969014123793099749497047348182029394950505082196996439509519492678204782433263223420303533556910979497701940482726365476760787032914584970895773273199676829936561885845431356076074708353806748663995082773052279475293930839419469610983957419291209244233426943951651883975168855960988305307815013779132669413055307978225024027515864067318477936114898073799545178731681157251642673201378765590050681146885955305352106050953688710557655400417278659950410473090770283143067805718072526969599709453299495862090401074751093601461105455400125921576841856296187026648615266513789954771785859130783049472287915531120994412416210905036001171525791479320146020981789208063430687582771033791052608354873648109189234742757445791993798500153807009645037406724175435453036557924133428164336682625029382813959359376035680438716033230895923812993252969192976811648358858248752048013018778628634486280088732987849439566523322366590944351194043465930120268011200790958892969531621807568411920181953196228892035846422992401057579353197783129143430618276301853544873202267633418391760500125310146496567201779378597291311376116855594857710558111536503440814334699609372665138117872281083715303619481749182453030465478970642606491654819659094497415686844606125461121559524859909656614659225822338652254426700903704193775137127611512625635574931649938210802478837101607561545733565118105100576988831003822238920726105454070000656177623228722590213927728955944237407654653353337222333110957613773214324010736588797976017023136289930583160306018417216175893175963099613626439297554686304168999137129370178996127208081500857756233612047922445196137795130342935359665556190515972607425118007379981757160480045854417009332359512556077562830266244308290261538230992761026888479726819764056798253012783871454073769553050064898022538550021775043525157267777215394489942174001422352989887544725756757239631445042580337708109328150889292239388953109149169785484333227463954881074558496791700909960750221855850592293047148136825929414577852971314731231104601159138263962489867759963547067919220493952685434259154168301131544000322686585791925540998577798275624580779746557522855517290544780502555156484211185587507042519760178787721438687330218230764274665263658450744648617356265904475337536299555324222309380438678712502607926043363830927377073726251285684270801540444980473842341223047678377600675397603902220217063229305897403025281398931832195236571134630353630673038656768213180549670493591465376315098065018042767273867065750995586150623634811649617455666485599203530767127232320742614333317866752088595100562807400346789744282644093463596839509432812208492192450803684747900228097431557426230380259110782724081640799150004372926060647570032233869892793163998196274762406968911770006529125042181661787431218577137256184069198424798264520698276793547110614386510827989191054979372421831443502342030004990429910809472272405680854978809169886692173873664666093737903792175231139801903493378173655023872827590236681449109509076362392404960894756376899764286457216517191335950536082534556849185810958119693719694316730951003861587231283448479882401526286066716064104899079928948145852766730993102916747958662019120332759660726914963747164042190453193420971815585573308679757149472845877706279237547932251457617473802036241582487871653318259268268978135449997814237363252393415953374780509295245530818260735975974352891093097971204313821723176172042528784215139836268613765625689783721191784798711905852109490285279294588365118427185368308782864626968717566031496859761536290701605488699568604647561744020290057356361190502579238173530069914798568718873983709390098693992276552684999955399315123315387229060115553478188820664005751805780807658764179584296039687717424966267457419157725828701137625981733439143587971213984343200796428357516205335797491944803975500364207982189985024651056030089025622031611154779558203615008159781797270794636148834635506684470469558802732255913968138078835252865096276370101094721242571020711908527901928545384508394181518512839556077648097514368835455972390031251390054489934026408689918000069792153647727988015502073200783781614234792453079549951447693154845829097082371477375201696562372111148283394507410614955990839368284343876872604543422678785533549465658126473552790971095915713870816533565683153354474466260299556791984171586007078998814361986113069252717591904794734530656512669521235851865294042368698554984549602895442178136233986301372926488412261964866083008966126438252442980085569890581722101901375754159998818660173863551923681580788860310779336380994707952730241884687965055688262510939270590709302837853640291810650394900238907981105368061767576092654878462558997256483545726379353579046561793719851157079775470607985758067628967635834593790706170267666334102094664720090147542635727226225849824193254562664620868553109287294024499770407217886849194106868140506731181426547181645368204421496103266716882837862865328768316286932382003243287208668515326920702589860521591806219784386995079371095486976546413245222404234007035958537570232255930396646355040799808268322753496677274739317492005547889259530711709960456248168439217218158961456101255541884171417424502625939398060439026865018199562222710539481017735153841894418262743093419722731265786965040750142993967348943213235182825188116472433994374153352592635930386896155243643948904741266357974079672940027812306131905895788790728739241792256257641928393208953529107783230953108726358942892367271425691464987447826714658590137992710624282701300737292689458525798990097525243681407428479934107896730001227740133832147554517425654434130570866502946447885227230675990395166648501864414610411258911096094045984771646256871771994297400786885784573922362783065193408293184607880393826870478452594209764174134504442808174597837232649180269679181689803935798952397205236354363914076750481520309354689834770397568639366604951015015549088467887854201162845619551495615966682150575525039347357312076519078184770936617992156302508639330563096700794720254976125229440117325517613287831985514748396336350371602162675597859544573588471225330065398421341492205468708659692435797067715438665401754112894320199465269264576471661479431430177678908404442180410698978562511004902288221931883613159135608201790686279628774706694894683885447959399911293126046849046415812246333578860400421735034163651423967215790773242702058778227776325567085495327574290334052114180936367714319173493282924639685490145686419095930147588936551633245982143996789558545537435269268288572891924664312039432617287826864315559740489929174764214158900180139971289715991290715496176806677059461647538987557609920014379709141243861256900828506258677269657876494743803599291892619081282927500635964313701316531895474321081179992382268745304128877261456764568413509084195384429606582144895278080527804475952570590355907012817050926176285549674442610400552327094387339357615138403035264920725675434262984418893552547595524906324115835316282909321173562386595792804906276998123096845631176269309006908833582554387355422960991430510879578920940944267936400473535675098449177524733064866518544728845651728194847118118401664849432018484712675766891041508878941668488375313317805114083070344949172073764875316014317021467947553322208590571631783122343602514444137961186178036425077927238956359685173611444167323626959049541330676303020011395283124483259891250748646592471671522913745676491831731781290637862592131927970418808888917484524997583195941942292388719623509490787859042033175326231140027428745443724757622210781167487942035330489808561376400021431521609373772867602801578250654700753271664656024407705477134282725702997513940179743786792086455969570217326662695743024882095856817547564991694055152657421606894064590507524812732191791393330855497149152018945413229624079318764659705863929864922129992944437112391808995734451920721581736241751615547531299133592649072027944300375493942656459400105424337235496134298625500648427275741877547731539779167378983684514567938264104651256008856917633801213902250737563171566066315615835268190680909256071211604229003131932578257759402794051914219011194402239565906191681970705917464010136825128535992430050779537879820332099456000274423378204700715717834001969649132332342484152239915911282865619026691963852744331255612671485724817944874025420465406950687176760517223025722514740666728005538160405488749349476271212673840158650377247017477318765743726932837987079642346469800030664249904611607345144778715773612489306431212398510774978759934855457677870808699922040346855199721179311148086653929538057213827016351972396394866529690090011311702259209986525128830577262313950994536682692493053154672214535215060107173425619431893676194676614568174451270119677004051493105623419027412439401707166756905997391734079282293844780276475238706632625213944891010082179184563115336314979896114618749788938771974407887244231096342256981255052011213053676823262579884911561367855668905378362570437454556325598331181992288380303717211080378980667881616818817185429648081278496914701695187402894066933727549357370210470049030485968987093885469410925477812712912316871321563361989670736869782886984850786160367263699633162285715414899391611585530317868484613567375375831948605946351948001796999231155636195790582888596297164375298364547411821617015539693110291855906507487996105724098575022720423554792803782437141105164239713279665056824648595241375950186150495601794061305590414529692141009005081553674524536629211117772501242384453113156670003552461624877457531001224518308003817811897074937888488644879130569141746562301932223046538919851740428620264439354750468085069082948322280554496682708500720738752852947212195178904868500319677699961753043103044151544208907276868101440859369142463740400625783437879928701399610044830392647107786890409099957980804005644997847431602643165103240366083100216708633085163793299487116355236774521322889785350727727962102802673259716836966552094267905464392420327778793258065271617726779123314579209030600555236371625211202801555956127646867702998722385814620666420306409389674131472788088492386306383226415304029075268399669537969216226513980628762874655472069071816303695410610015910322470587986457332469738236750776829795727755514959999613040723686981432820211286287408086719084410690048428578884793107485717406917399816995292911457284532232893597055779113034034814857227973233301286512696554215908125881740965978544008206615618112836762364312094399471929511040312089587963542812332190256007300564391834935780864314362210761744602680595998342535436690754077461248207950390784917017182292118433544109902270002213517324169797820965701550191011610704762930549495242898656977565169346253443861197688536589573114841013162419545805040655370353967894466882449759044212781905217422820975759618196374810525349546657848160818889873093516571825018354173381780374404793852360685581295608674240342505739277435272682498994626059879314929350021358262728518407926446319917687887988794502307050336494159346903702533198161445621866385927471412627798829158122305771553106763531983210564900196548641376954189100594238587561892472703126981976223257969628009625175977594978975959961487046179157413858747676000067491265320993301029909324191480058677045949389658000047435885299816547920763741811754085950964584535218738983493024402282468530232232990686971114135596226628680328610805076676570865376376547801193556027363756739781737764928192545072686673115049374578421513395459740407753144555327252052139509613308630449226203811496035351780166711109483301480984258727070464236624706608642572468437661600082182829299818148341909130638001310063460606189218127827515251523650353375240601059661381339439030353717020905314384586051894340774053937531565353548400600012987454328529210963017357950266329603167175426169403368143448790566361425059290196612569560622569864989068711509660135809138575967146742187487994433661257327122776127077510944688370740021455167285813398394381164188129673420647101716235113173022326091799608249006584506387149185506898535963140009510782486342790093178815465180381558773062883672743104956336462004645667580787327059827088017512610575689118864782521376421371273046496085724021375095211462372843519351278236840383769786520293205489951097202597087854030220474592373961311867337720280377238006378544008014140773187474853261175730806682702239345825097931629570587854284102950106969169058344160110147760410919800351018957119420255622365932254753869609393881783682049745229646547484368186235468457950169176930260629443376139774114523814442219497988515689107596405698436576156163668850026325970386108659196015546984243713018610471576406121764157464595205281556624633199156360787930522929827768809689435020035086101444124732084339819758466354419803747996015947221976538354518101515725021574437663070642004017460923238839658485814767376326791798570064112963720024918844334574278392061078006255836262348735944150472618580737947019799757649947439653584993530853783396508267584393787870857106219462601522990512414485186908927829548898359071773240211259078005946554756256140295756894840116011741302526961565060954688099061044689263054026438050661751408114303271769995522922467837394163506885788694987894961601863605536377542928839810389930374269450521847364352112978088995128438211974312987580446557278764008185759137826904972219412817150032302201425730374526692450402022104934847646800911618643107967140568935248003164781082754272594118786589260085236465231117115037888253854145970477302038104707639242133335294674871774807517810642846047932950665527421513341896890781127821622457661791333517058660021240211396893605704321733017193680002196332577500466859808899859094550812522409960286379244692591302833462303366444095723597892011555232511300801006719248312428528301312928327367176498258364561390037129555980026291991574068249130919828736578893333977602061344993584010674733520831595571828047098156815557617356141518424822501756172477641983670078896285402278178416934580491394567417728669613907122362278443155246704691899843239964721576271715914021572829667891878132381426237355044081909691845856455458126244943658018983959805271228340998300826835516150120692047495857756169399102100542734868634157350027182370921833293357010966739668307685828091827967347528619157033923047876228260425350307992368130849434565453850497057201132763641600446462068955564500573621854811803127442973635469634529006323016429705367501124428561409456044744015475412335418192461584253552579174416717261948463037002329871094748914861101447025330279807127673260409780710154641427330511440777104626795427873661360380804094569584030616252395513101485290678028896172777340421993225638719034550560038465851168047038138412934671688710259476638197903049757861952218392886626465634987178163556290992368884633876093379831221308118086927372304149108894881862992931971161742781690315490538872078116844078383856709615947246664767283256873547051879639154118571761235634020638937674054304278582093619321251898571672385256413904316192823116354334542126865580081336382989901102645131316641379940940730978850926910154537209227952821203627523899211002265838509313298520388061815546352579972675646725173578346125870409317948743970922792689168881039548781778096319944573085858239024313102051980931637627758123452255896910357156665423940260883560959136304502557800564896955479758217077038356997372304920367469008084640414206542131955421063711046241472110715246094660170257872479664455641856477575708700338944987529075011090313893134895330650108771626652750762958940719039245311130628545239470099333610847742967646339460694738835216669771355030039811402588242381171332466337690187087074094659314601157364971113249710533402428130899428442821311984191255901359714381368767629665639818623294471231982922255217796181179316587364041362240409439083924479033725866582594539748018868770152091094476631817835944578462241812906092339748790503359781624592855766681758084279398497188805953716487975764451281509647168709147682808322166612082383784013860719140953682497821246168914726677249083452506509956555953569483267016770022142739083288639270957681857953455589080255940882941783862363175311669657322130349745559176710553606805797513869626576017041456095516895445961787066494619876140854033963810129900232526983338809049900100650248208288264816045718039639111114125959395381950359465963396941045821953502309628411688107490432717752376164145186597704822283070835051322126866398175527722333039086004080059473618569624085577578309647202634170526729182642421305258589297360966630724075937030393165470675043038704562149302977617455989812665914120939865184818011719712017012446357689291617633900940526336721467565191553506770140297422806313961700375128794235603447317621639736119001876000246308225851798399442446042663193616281182814447517683133940881629332997921203358997211535911910108857610651875188151349726717007605111077153252416642256307575914521429031228756019272580563077806283741548553069221145242868892484538955246873977954346636769100947812002490854707264623127098007368851561614214608086217095797433271905592872292440274435278022526689398613188449820022260512510681714740266720782404445695705448459280078068306630607486527322308445322453050266451435813164328555946945948358757219049625027384543377359657782201959278387942332524047367373360320372952597566634557056569096857148632839507479665327649151373368559704921443522932826580924368091667239324232030937262707308465642525632297895709834294575594915479950320889995443088439555501498139343715860555016605372450617677089499040782347174698813383324201860141367136402946040882159488733573692948228043330291487615955461437938711306648608000746037624058078436770233321248743609242722505549370878751190260483511377496403394250996725553117791434531611575938736352189746538654317249503552566218734842329491709644217428820123855702869391098163106874187508454298859604994457193730011543483957423032372373364795937415853652841525938844351870299374162275710867535059855795435584089749343688239249145887004577750376450957909155507145956248570838838410819363452043566977672561662990894904886519611257599546762438783209037745938009637031878662719692981919144497106537143979453489938839246896501260064171789492544243724349139468907754736703172965197187672956109820078995337854224828494760888088349849461406658746870997319923106337805541118113624502476231083193976782182654617585409854178561160529825038832354452613905958947037758183896618470967613702316032278553051497199074225481205936643615679607631535789059739991140070590326270056441402070974545666673288915463343803681584028056886731989497892389903063705955184753287564802252643598956372560993643440702598389954611817675473865851137024753868414779244884813217219379335005754596156121402902595650247823522560646223081027552887649759568242382452127137638129264322478274533832337307891540195667874790140294538157397070575305756127722877768187522148592458552403130253562806505439095885001535751743747451445915576359353251483915062838511052494910217483732143164810343168889102872857864085562916351840485802550334375794576656399139059980188837032028221706525958264647055954006310920525784046277012340644953186752112735236492154499114833694282466454218234873407667988866556395772548677627687195852549965719695301689739293231775296925318455388066892646878590338809139063360217587960534689633217822027966506487634179204315844074779124919919355952816312654072052849267270779805919320010365470182180089956389284880450314309210439678416666196175514600750581365925200626109990896463651839161790950854070726164452733307235682257613010690945740353123429437015726312051631912645098036762315796663260888142763657980281044857003361009691425120531473846077224440903202168399519003818938389224048561826611624548955275885975983419584995556090662344980861038901863153201509463515120328558821707329981703013802606341029477451269187748385267909194680174293389187721284765336261892729451457574490814309151960013916643542323759000066548424869386580539928843272759369583100646289783081994540448067353663145735059067380502532587203307389165414637239710094477287433335963781600585611652157266882140711640696664010382551772501709415901299698925655316868783747798539135719818601388367566363792640717390724285238220485228876110765269413494118884939383088162325494840383262523174037734997486457482634212408901003513718777106835378191784802855746619307680117433722997169098861516280432431931334857421011843399601378826526342887735773959705304475074071365863841232062594570849356308471195603407077288552106261531564158656914635240668200960818584203047650014813231270345870457848102516242346892052085990527282969309948831177653562831053030488282781008338941512430475688058151162180360652345187562242612141300777503874085402804509164603331660757967752880748012408226264550627158680143458177504386021746391152030497529386378833707817632564412495505392004353385736492425322669518958810440797821176376908405886884661287524274451752250658018536533063475636962821050025656413026506146036734286601638991302498086865962298563160414609440215851946551623740254375492978218142053750056913843475117050743392665637382134710455546209801451547003365341621859676462353887190711307125047868895889745969300800521247918156398765571323477641906358322417092603950766603470262757252469018735008055691082314649962113799481254939097680283771224277179642377213082593817795495988583543721383342901087812419709123502672072441611696497360535659303449048530989171414625541705510365782303225513898246542408890753724772356647424242454827357979717511910103295026915696057292103126030529388228250265970216337837286930293189860930790660414168563123997509960855775770966182953406971383460559517690994364037618414103922067743000020231210379355103906019220964558857781209743165114531231033061987515207803109048189324188370401898432582772275506864992914641039410675667238949535912945033313199254107926093667305188621593991927642934874200221069775546591904465445710558472385882925154334747871992416951918775106752685247559882160624657924775905292239620029488848939279182642090438127635393104657523027184836166819504129970462918243445892567985070583043502147963849963816421950535136903561902005631216101939646588401463731029274024308180062124854719202520805079634374229775828812062989397509350475127798645070417170243946001570854487989763344571942100839289218263759056203791644220271326006315301787528440843307583816827654077914337448558844785037176951370487441003698846178764377884058005337844284163151477463489701943772545136560508803028429979428459221119505749657869518864318941117754519652394089126684348254645067752753977863955348375065202581566545678404045302233458421637664342209866968257615389859363416479002016853822392440312943109715408079798262626134725601360119433142356356033411016977467282637974633392428184727138054906174711324102867397588933074274173408306026753489454329688578661192635940836095397159837617683103402383150458064302545295787678660965280659505309642237010956218832071937692101463937598460401535210193374034099082780892248278105670608003397434462536311808600557747945836494527376851557301724994376075774396446567201783306813984030069787096375799375715415364922056747823642630775907378599982769994815829202057504460352411822212194677453261222738112201916427203280435770495348135296453027188019092995675155200653707105242479215940266369999469118908486328531425556469809225300917135155411658988774218162210111930177069497721760453313138912706128000838869351089022760500483967968694875470485714214551541294585323539891574744584816977663916163549491368503277856930772086288418646531784926410015732607265728414635892136729537454545517157626931531911364179916801209339102223097399972886523511320671222879703241097973653939154621796429173954808175600236421887751186991311378433414584239154272261893358286970197848884624953143555481983941530618139860738924151112121348450457336185281880296098652483421117205803572948905513511211927960038347683951511945768353188658019010021771266892956381713551708922497221694166788240808786166690529962036471883077676329973650834056267682738243241000076317589819839513642691931610622157108220443289936867767110453847769301664885420914106723151258625987570215473154202606517321702062521953809158422392509100156280377500473273761838547484360438948310820387868332323294930343474770764304236810541341570094794113446476251177273529778629431530098990267297413827201141106699658052148360455248279822092532507235499405469334176276041094911887999515634121183679706722342116766979142534406918123486095689150647540508970674470756212298431770780211470351252519626816516721465850045587010798348023303477516625039601156656741225961717235755434569648072847412712014907156669922047814135570106390194422799808685756669284879590520599348171102799456686568607531628935587103080914299827884900617411320800694083819590047705096357982727977897133457137054035264823656238948658321126162867310430545714236141643333729052369966107310564124118036095549323150692148325960035398808532732543526599470498917787909299931029144683345389297324055038240027468559054105890940183426603373821654062121261714584283874283597294540618839173336488577331566116667670941749146934879003534445674767430128890520974198640959793553636233820568455770653037944447828360480614917940106575780539829978814969889867613989708682579002563549298201636719795721267726763746724019106043975359750767703038299222527942208606228248071907620406339284566025979399253916239073319584554664241186048185703419641065121220592851211538222580243493441773083384481007632704069270758798305211323943513923323831959559708302509547737085955739793327179931319524873263159639366665777272368732421523688554661174436554270980769665962734541309395851003779458387891646394930557871469574854173232630040321147782852108653223568792703008787044634434378910347805013018028677966779132864190416885677173500719140662925246110428446470033344116088587497744472882991451613298777225519071575274983291438856550856745128531578505562509330623003055492635996120539135891090468083616817389632733393827355419278320247405555610329615075612643278565622823062927343223893953675648500778847877785847275515742747272969994728441364867419174452320278932480730558520313707716925200455177501347010246765495643291096817804825433028558090379674535916708455464877016180665540212104535596770856259683593795936428849844545076815152796415625180623744765846615866829809063899783872106150082302002746551428380303488177856188117083347747046461144191908758093595937525158649035226679327414210143591162489344595910007351333682000934957733451275305254418671242644578835976463029093746657197887499638008553750904310538639411627140519401494686530362884274651389903726943017054947747301564889778974032509704810472459430983351751547811633883521232354882447953652522919653074147884632263708919847734274312328426863788706459641694122771996897658102379715568634636660586810374416784929163644442850552030705035611318999676723547734211256693979596895739944364609851776694975951134979901338362347001268214927232063730807053478971488685140326380260168996641808188123394305670461330694453724658867270640512767055246364728576811192285631463149423390593785117942174503267846765373566236459211225568485464805872194147232750523995890244879118129633437614209390623387943917086624431237930515736209125998609584249453934999057533425861171103312415625693821442525639376546517597332587234118728571857150314406829026572003946685749098325277024392841331008380577954473833638922688566612363335120448687399268714954982261762374156317295683876482792047554819361245901533095399932306684596966860228633479534381796192986298563047638466491394919740357491845689992597119866805553806838592495417404361589497509676887983276333043364959847550131715731990929036625316702905614801900120789599903084284131602578798290964827207548120095644554101589001385587434941978439560599848476170915515210591773539715369600961043264519444219107416020024191381005872814860855018475903604671866260511386042555936028924738534683449018711416941001890375184401393181210547372708032276012223627579228660159432247727392431417428090570057949020860178588476285949223639126456111837985359472575977264765104361570465609295743062486913824236971131282280968320755165685929896736977199829858119966313323012343050112657589104047781135833980352355180144369965291680314410909953436223865937644239489792009268351110747500986910839160416261369478257324302279194421140399129005251368937919177946190724223924621000990998259528055811575753017479823111768908096728496781950052745014618263696060930606406908370327916703302470520298492986289255133428455081030290647786140925945533409494307037320547511509070492716944925439507244994813189094494628976583554317811832954762654705718944149683963484037569109817766179106108193379607240701381334531235173925710271076006012284875513177548129996935770951090474526459120535602062047323212602862719899710152631716477287339735865867980445905975278460329538763452953885954222006373859037296309713057245154971879893993484419692682348713351930456635522839157848957224923803996220016698078601932511331060668886290355487935130486510370603674747926184700021230282791817964651221322154236139369970890748574800009457619743859747645965691712756454499684524886495151525661502573414134589167379064535544032883932636060923875647200646575751210797238923536636028188208000923517116940546085935498414441241699027865304881154377088107249391905023399897249306467540747236696005619773875219764585044214802030248336838557084417377540105522552254778336091528399080642225061948579104705720947521295964607948171121567674264079018140172380932989796632333370225294491609542173617969756043297330679138547771883638938481953493007849547391139821090120091496261119534092975370444267631142320462741429427976152689181780556244117618004890477745565138005372008049567516208748927177297767942719844059323366152343722701453709299007439637208679064146443992713477329647148893403597187186885708756177796701875136781909403378056369949091763190639539666244737134158983168791659128076550301595993340683729659672846879817207228742240603090295810280009897387816768138034341953858011018093215443129581497724946406679256967750245008265123953178228996408816026423779316227376879930884714414566173629050434940984099824742190995018264048848073511507253895159423408615588979755878945456028040969663467702967500500576006803181083591259654182038548177101524411801159100589190942673902046333855012978499708245354841226882945256495687458535810128332474121405752814908117408339898041492990777813374965869858018192556083153455016020312371629488348464643063652082076947922996517472945659827133575363714239264911670917871936812797343492130810083546081935744089954772458481823741680328568124241852216254674374859127560287052572648442485827704339177936805098795983906014658529925301939594861958616859234803309724244002592775090343117443654077598927135536528279087436424260083873744404205154267999044039696834677817174148549378881223597851086685466158607089313532647408687967939140353376828548189181106444517466762180344042930835398498006468050352151662142542084470719348978310561672049134814395435094168236988301088064913483088035089211110931949767559575658041443333118263347434762527707640601145956112491146548248200435220340266623772955412471599120434153142240266043157866926107167399762515186528542021607908225610642830783396842099580158158491936068591503468786224375760642517857892892213239369800248882122003162472495763968996670614520044232275320052569973396962487796349751123865439998488829539472376804482555410110134193921959460380413317744863194804738766453613056156667318198236022420930035097358838001834764112378321236803075709790125361938969738155334840316321923330589151314484417970968393100158580448981032743353889171104392647673018330300574079973991217751464432190840320106846680467560842787750354131090526113929397321679127924816190167749342539241014276114610526539726432075121840083232457687473161305584163071774362206380246168279931946217920960990306612858918433464321436262633334570598722157221047992399355652303166785101000523840758712913853311427244767064303779774991502041316554518148965039620237304189305994511701280664125015290469897450720663720150127558930871811202896580213781743830970830306008222570219398132575768406863713739719083360795444139698406890999617363186940864019410822199036819765404627971814967734540313500308351164544349890885970348487497684737469937139839639679091152886618502187953397969362651484105869048034371149214674803021767475348201258834618677169129447351003476207885371702715105695105405715375045173319453669717862159103583542354580616479849385922418175371122234908513351006117642089343851065880345599975216531856732962159055788117495520225504041781767837018829342054112917743143723799333458843230248813112866440679944892397239197308232089154767646861451937641494718286562184365575090131950091435085129539278899918658378619197968516061610876260440376660727843947774570447529580742888258107781005451021886308075408632012135160175301564044031915265435527911233536439511958725190662952552100157745320302465240572775179027142011215902727519728580294879370868853723691556298888853774609900125489480559751073884754991974233410488695116121353590500573100230382485722253536157932010176086013478141810234529999194157955112526295244486920946681436297412590072612215628402009212386641710693685968673885569513201326631160887710443571235209103039806326433926818798739597042849292108550730053399417634099874658045691948453278380342543287614142125321893962119023430008451377197794249585244834492840387217633485345723026800636780396636113701019873325919691518528741624853759440206205392568606507845223377808771177067546074824296290333815014490585595479506184642819446724984394869336982956942399716417370708087597991485786710070882387034136686721936559152965328903407075469025149501581637674231592377153331226967860389653945298263483905194825730937806122470419655054430958541732643568178661148282507362160993391002333744763559603388043522928006271158769528882609025549528804654338551571604737721976313484241305807320086211267288107573093180294744813855593612298701363754470039993156512189004998912924702240465319851593935558955915147051066872302845213755549167619220506068059360732888644597269366194285629140368361047542897272581910845303228082412232246326454252606916234918902811156825092218408537679239794387988137807120948619050061729634524446426962342941946268003538619433695660923732168111087426457183467755831220967116022102492808038289968377572779411683007537525521624135574306467630395663313908626721998947272642638261697559662112259302234770194151219300981675059114521017222368209836137431565980502133145946425326407126282377710865805779404766975150247629637933351152508750730415247441066008025662584502632893876666420502959759527428026483832169453790860577464608410431816753261548418572926140861990747088114052991872415599642409358641415699383171420831914442152711053544554347719171488484252843673276152170832917468720258079620171411097809813374184122229865724589612380903055428309624021937690834171060888274650320563369049470270054901298524158085581536673842551060939853781515202421830178180996281565084528329149696280635990112413051159559510525486599970271601614791066497576965082672919038069653661030438995585083671741242216716151380964683291985439817814755054028663907702561998906950014072768592027556255429917190847192538768347495952835550744159074313833803964812902005453329477390689078748123674809671353540051040937361414229093730593559850824771158774191239872730254790218132426214545706580901901998085931735604558171755112292171791973272666487307987318728799977732184383895992782845080055217533293065640263402763217307994625425713867332410978509874261378278034219563616980001086022071390089333117808101291838992586833492540912692553774721120101788701471520833262790511049957929535258796090047444785224702250014957632612475407937529128866624669041772158343995078673154687372370045432286083155379011395331071685479494271471550031241665711177039272578211445876970989314017749770111608393743050689245609328229369619168593402841029100442639936813719369583161810788169670026438599827361128773584746199618461178604849161958553883409145852137953206062133968439673284362292245916603090419220516144138026911840087505213476339314042585116683765402448382093781753838341175288346940158284930666509219350700911670108894617616705204520920928371165411098609990796464303191413196775205659126700432844522176560054016317982184948137691169706550363362631688324874961760705599073560036618496185670165373420258459215865240546330730521119151649151495465277405800158051168773854664157214737115314302693063074611115063858357644179377709899939316112399801528741526615460990629859457975940149476795153217671233054250207684427948154386252759232449430605574845335213114714184095546742609089556846325173215322654441857360061254446848131299043933398644042786208807782180090366393594342548352250182667050597985853329389443409117247416071124946405003826017832671322526551569834435008974845294034512481372389868177989189129485957100999528058599120772784918514998043943886815443539997785577246884787951657490094477564099644314027553842687169984267772848789351785958434416713334484370496748724547890877546268313030325664077475074173102141152165102691399863198225145498725652697017860865376692191543756489118181446205354139628427372859777275066645889659531497116477458206725523287329618774039594773941640340807514028993759390237538403427036867304863880653671004043666361073217211452383094658266076343102402996751120953113337563979056169098490414840857830982304204388633320414552121993439509812226049283468899377994271498715690959740308328483890282625454593324923222615805449377316129591681252084641651610127874463715333699260446441101633067291970541202120870873584632037385978676347884779379549858092589297426272417206147956403012300346591202417308163811739213225814816321023263228008031854558106316115618505970300287578903993880516692626779272755312034421701184309921791489560558778824237045832639304878568111750399153368292880330057724920585884497591048421616680942772652610669035942027832114489316130798627898786323681625943564081916014617498589136027885176618417873681152470893529126770648029735436675591902684501035543865394647402364532971131150446540361507065391379342736220339806519972360730197322450433099121774288824024142757439430801907895611727663730251743006556975786607957935758282116511553614509131669415258327705608349183605654066803550561902526696874579119650161917435022715183130424363165478361318931267559430753437129041985289070008795471057326915211398434584471674242521736661157545481178515493416967294268446359585645661570845954413028350765801802901459578953122041035237918572945210987403110796062789976861923018030507586755748980633362092201021469543813245510319331747102094474414460317735309542067018831080366606817941276815996166846127243787706864261792880464025291844431011046076043075787636557577047008706467209103109208002333935707599946984165583337516599655425676851630177265122490135854308331178189998747035405598273296188251291924540663309161236960895794925706223414097265218772324741001458944076362475667177149910031034672372041154983898886926404946330459138052687344043727470103504340901682547764041818164441404942281902790145987072940346785421172596506105985242135339022649277528556425959502805423503096547034127744232481807097422251690229192049338964275489552196220281754902971436267915332391740824181169013916244358953593784636911631951005151481889400188805689372426806709400721539482060183675820284336789073249529100474733594042818576158145859701446483877672277356609320455175080149017761983499638182974763742920674767158494718304485089714009047333516348201607943838497179413515297735560113244817429188654736848993664591796369910599461460193514071284320071135093318675625364071474724680468281431744890158854146772001119728694554624180055777394107096524585855796927119845531361031790916411005113615485035395667479263538559110603037545638188380816734741772403705048005237235570044478739266142568945066764520525743025915767002063411810141960191330717666300054959091441927751795508741531675059799748338628504882464937558312394645209216212769638729019882990017322068165923796353128278990244567461669280836059706313593187774137583442588676132944002339463103699923531705518859570752760368118720213830940772436170504671908997286770089266423024394115862827579511105222407988055317611660578741418751722713627468726385798612407675878249768503903093942569895930564271151853666464339644526404728995591782827968959608646387799321235244535712855741200868187870057390202630348637917802441915363245317492355446531782255171055590097019695559916248386809483572949234751014971262471986504123339770806866519986897527344378878623122784728354181752104070225267478559968406653569548210282300352557387336727802660337998872642846986400512491937818247167747253644977665537062658593814945472947826840447194001815195826341192731133516279089296335948907792951727323798471003656398230743493942219479689006978581099307985627069261019921913796893583386204058293457900004240929716215874974044879351449158714908998227030315706321193179516417841880110855741236916236752343589284882632537067480667217443926625540153073747126882066860375143722970552245431048524496516685934699517588179433501182568683700919265176391161642397827748768828352749329919647290933826913892776251625462960190789607080547770979716356323444472004885668135772036257231270628950077923424034103721584166446533694581308167832601233469915311311188194989328797581170414245159442043940410509044856193675461375955787350116476984775597146881855507863573694564159127315672763593189949301738304784216919735270382410645167720067020066714208364624660350949068070908175679293868251391533642449272394121333911592273826550189820323086067154774508916825575573426895034339032498327496640209852586813468618219027870279153303809418390544848187014848258372765246977307060041613406386207486206400017771865136917924044809490708190162451879553187760825752626154789840919958037799009419678933699703795017257299028948511036880136253910919696182333479434072269582262126551572673870366644586977443994779270536548359304772708132624432934973845577255674125477188053119037014298374870901737196053884066357045619515020662768094487172960994782105657300371731904115772765281477953700875224473068584569550619958174382318984743590385879257517535722309552156357508758159051374118180152324673653840591262046878345195302243786751352366117013656266330926971752613535723174485885409846231155410326181613726317283754915986588284313836813299438876876574778477992321170275425377774286460654681924220823030728373646589040234916217758480704821371501362257762811807050180309606169363513134801405697293342818168084683637620808252633599677963458244890760830172914583162675665849879191342605027069171497856042577455088336002835730217221012239681040701706291883640204307642703276177142075785947980980778618738336757807627999117518546224964424439479618712739461456063913302558532951047414028331001750828459938610352678718798817670838248165222742099144111032219655992505422844419274750406404369396230341411455259548262443956465704240026947840056790515668989633610730384041503047742357324509050807907700764667598121297370006360137244867486018946878435579543680121521299222626682907286070570820697489888948417636176722640996645961854952786560626515748103710712489143480173677407386089356129440221361287979030368318300630884350996565137979082103846232001240076403337814592264761172209077146788722742587557928356583574332929498348457945796062972093402747932902001854149965415843333114795644034056638457402777566173161378882154158758065987810203910912969354209484371454543041980774400980769803648151101662314353222036284985129102899784551892809176379656003392548638715285333001178400455208036500000734501416163709636566091152319199854099172202110285797450157871414740464490177386913106962866882724810489273203193728468344657925133082035090486119357441409644369537543673163776693489790186588494452496634047496249773005950495045172785990396411035203989050732475209583507359080825537842498127720415142958785702128147903662886076359034484968141449996872889289537556563491564072533007625166751548461093300888402460836901622048508557807966537267306247205631181340711995116634553536640080115856879378622456931134664227566364983182704484880910768788779545969035534205156093638522593246770173971484457441358592621900372366243269316797218602705150312207607106915938634896586155456958762257799773359199127327888538381655842095826394342421143081077515360645318605480106478039132596321107899313290160701376272759386632358165638698271474096168239657379344731538825211263709406258401773343234043163810977599140027166589661167748558274126983640585109077451649273583091985621414862376115727386412694085657064244568369444095401784159571799600280978967153421728596417882477822923896379497482481098086733541900305442740455488014440970685602815534631882704977853608845325531060489235414748029544189913013303151168263650760788829228731183171321989726530563951452226759325714788706538675615040919315311808244205142933576049410323093943302097169606339920580909830841372904538069824772815294893223902345344074124380331284457183419851676072297383186414760444538890971178822658027587559571890101656282663220310848610454528672621221761390819789833402055262877272789231508622519403685456475197283979430037727088583578958287808858069305382841552400611986761663461716090862134095150429776205557896963188302537982496006880006542659943956604220021137099309239795289841977815446737919702055287131217869411097825894924648355921684913479408822948265138939071853644404511025435068559565693116026468143270964269465943974972768436721600077738534248436515807215695069625720005977972786059442389422676079765522563378686199582381555164319210947867735182114842960837681625201599815215466260113698478053402640186750962527926396089714363761480015601583703973035655023181320858750163206598139416074285410170174674671741923577623086229232005323506060089519534547800655442809656239290845420981301457308220772858395795699389558928192419800541311137435405547289674183903241010800792596172911949426223983148342385849251165432564813203850216027925866275432929783100493197246683175253497978778966073634579747850258613243710599133164675914050962469402819800748926954294967349304864097014682639398209052148221146611220048011330207836289919408430465767147045289024523239236679990070777974548868512406498258192910873042222729605416325663149300643394296919615654981454556152816847253195793314268325487306423445593005423247587008656130179558965626505863382466940203406752167066297335484715968812012606143886762291023894895168439649632334563095420381412769010802149887294091847224715312683525865351446846903442511405242345092695230071607017857160544364887041088954228581285438483681086505691585581687561379215765565051572046156771843181304434491543429089494445071315448779477734630255150601711503936947303780986978974015852646049979086516720442693291267770478309483489250556859200884990180418141979812028444667957392252227049531104489414817702341614863209334440366292951999663695140123667672716665410253985503830240924209585000274918137544958651843931216543706104947084177294803781102686785586353892738809791372947893872305858502887969442483210067414454758579474457510159430123451072784462330141552119301930841725405013364706819975361932902220080583784670735878112741783999241342710963565948233938173405293320598190101905810694494504113840262886209930975906325536853814933279891463251303435885436462291040091952122022980247122732037054106048252608161139233302494457733978294702300719332268513977443590857852501562960973242036165072740076991266637129576670739146318771292087980108135357802287258595489420677475565033036500751645197948081979566094168879501731499925468630246841811061903912140110493454689776187064449682932289045674394417799034230449467921010240343091977191847980984712822946943725216084978954216129211846294583972287982715150915168833455238687898961363178124300538340237945817706436028191447558783272662471165674460616236015231478899701928924176440601836087444881802966953290165189657044239984347372984729270931006883981248723485742805436300683331777924322224395120836332020322752123934526453409690984209111728583813252916503910118048068491797857375486880396046201492206204604544205531368394733775375158773945331448910856797726148927023793866657973895606753765400588567006415857540871784528788930439960603117758276805375812202044223922849246557921605344485650033908673348288036672565338725832227423878231680009331244120699275377737255570113071861296814350450808441089355953248868981177272557375882142232400452064548690487835880312472715187178583165959943542444480667658392174754901290748181390635608735623641522471810857461441080894174896559787979400072706274023696640694066915699811786213501701568594749512062726942968493420336599306729384780527903135347369549165407020132859474724678146645746547883025921064184128983432150584084629479635542792759212420065621839769945321771720472375028351554361460360102061978907347339571629839119732309718043323147131911327071489858602541187667652892583355978740851057178080057616678064061813394749252520201801840880947977504871057416228113613667908340943392253708857303879842494133289485699445319746426234615230243323051325234815989081044639674485413916456482548425393501749413929292080537657915371298346913248074134975132797380048006034120233302887131423814214256864725439921305605453048561835585420559091222925790069951618793359820014724011817285146715088420100226173780135209201384272695166169092345528246503519353750823925357557001896560658976751375694449502123293450674715153738730503495024655004521802832967234108879627528154220177226442696630929669419571130006069889090695973615569965877455528772067161365055407289576319044842319641975130418497873395556580868011502944399582102014493851045840964367053883877296747950171025019972574385614777268728732701926112648574653215711077829494884000695421260650100629657255910592689049189014062834280819053179892916681765688055449983812954741085449442288253141511736529680606814470831602740243759103550519259299507067909352248936876873988297830575560135002886792533835778725138762037233437004940372465850777695901242645006349314187117303501520561303742974975445122017162529933811102227820703009775587514755560765895860438641995140091400806741814935874974304652092949323706271241401445064228845680699664335898851230612540286118316514963238943514611745335973919255367810239230832437663318555476343083698004377226120597852454043611132672345148144721191926645117315149613781946093372745704793104670958639224570238442425371728709744549061839598700878441264115060562520587962302267472621392457862824794773572762965531412640490395371615207239119635864645877071335262838610702265627982811270153842744282069694308323588024314695728816422650118887110202913747491020398787794619969343751685527666877820217825339411131388472897208251828268551824571992465034227192617769644249276353415246857678356761003710210961152445605274618177187861430827257140202787953441851846362658969491376562316821107710172870913239264744747775948962567429656638193982635827471024532041903428949771541781808567244405781939572342207463681544769850616844374421296775528776720237290294422870267586802395580072390842465485615415240783968236146898863750268938207058822103766536703702814191618815299973761748484979253030928601471976368133438979914160426629089688200935445825208587721066177370070203703661312256622696289903587238690905141029035115910329772241888353592176029262486675046809461532508905595686513415064307465340232881826077188022625252475363002885197762602706069354053664972828361704558149316587635145035690995241318077213483527938387094070530162233513307522709087000821619870617645398092974588310625393572245912386965701173584908445917071269377553133401597347669370643104771541666319180818299706500547553478511163120098032489810462824453481732425926297033439269163774380204086929065302519706340412373163849180143531881274516446823867520644811616613843623365942656920541317720119237708274928347808651903844552523898456951580772407146348430834336017504463541306676782737042359904360090733805145198370602100242343868904211297415559513669520162158664327555738036998818547567921284860487531093777962500042009850092096950433981792416475945822190420623525868620336086957954811734380632108545711115723915435274812705301624250623470924498136818184829755090960101125825439069430089285527954730564147740668981508233461534029384929172257224885158895317562779208172915853442716612789118388272154354205123628517898834011332815202792207407359525888175010685272077509112395247035032014669608518897804959939214697884325003499969663661085047267493826093037884834187306296495562184222573912671549455477497229461613101242554910881131850187926235209817138229712521808526427403330086154474543494665278194386815666844953438331030434259045056607970063954928127217668655215996877179014735200090074887578450415504943204542718862216903979463809023291350637953010218883206747560249818179305198024328328991766304698429222789595426260529772594725209969560954117488795798165309343273656253747256837156142292485443441407918214114407438859923900723695212170532097609778172062433211797693204794599894139079762155111932852635318284128419100470754055623789985248082982196277084695129045918133909031665676537265245110807169793116509652237813667662328878301619601222948077210174578350066325900447920859555092881747153407742886328574966314164754916508538534690457157096976674543062639338620468358676791015095416627587572648328805072689448000640809471200308681651875271412153798018731919609369611867402098186691244720909865739039102606661185728164642291166020524395845859087056354144768269478527391331628025316951135258356909175268323835383564353482546845072908399091213159783859941961775439224036268768252800447638724506553110413931385042014898642875828718423130698601193611949368748671103010004292479382169078224640677401300816096996240991031559822537421661470015496726347495701098759867739495201138940751927782139405292445233352054828659094108641575819426338999556505255134505910735068370385356003062428580658182895223364367638445337418113518514176506125300808357536428477801062708284181864477426843171247046952930305055294889845690516302235701128456034246338650640264930196097115098453916598309040437671213147319803468490435458302201013534123557014911701198099042891327287307103010788093346682107808062904446663375686450333089368928464513233033344195378103374726276702924621784303558122527940018485729065402481034751218967052348574502176738778577144753956408824489091363553523199910892574687863072907294267373422981219403376464855564129421541174785718431706691042881399217077428621709888582329372642716958568840693336530103948830173119618617803481576053984881640283644537362220585324035824438795242633314648148071583407339742153959973996441279917797273793517574625983213385838756408450965558794100114051791920233455518606300902933195057243547956552080400026944396799488589208810259926968642213184932946293007081804425720575417347001495498072140119912409481430337778303754092772077645337863645907791355154823509573789143327713451160811992793708410785592871894249624717170538342145200246150322840223919797797113206215422609285860719788675805239841709473726909213618830437753128401595406925771685113267319729123747957736059306385674004850616876047389731718894325896049759038814192330434885961616234123438227612649807103571472983180839697655930822438496569140993112429440897924690692016416211591832948679678245341905895211990238833432366542594900815834281025289980996772585024956126924949478812505319698225308141682485827990543688209908161291080500923144457206818593200173809527927480446972507148860978939323210679456768552624498461422334781498117211526271268324013943345181939812559121223724182693618755368858878439966860395706556025759339979198767666642793700125424447225283613107687588569969775692026319474073002486277855214711515874131018172202729440915758851121744268596275904264930778702485688954202934864129529035550723518187463223326404051016792861862485172653282632672019999794163206676236762963521510252839126725671525490135317044874974763219382401954909837400748220081951439315200914500445501018197611264247949083266513187986625508656815329933398002392741724170816684032076204887659462178255458787101481753935530660432877550005090005386743905003139162587846283298956086323549416255193575611881335761181774017699983594139983729829865963469046843710326992539289149182426351105835983657631348384051794783604088246945740329379402008994971324693940538108930911252160797438022438466874623925768949801948453162881970170509950562854417699394508906326650267988434383729811551610498412880316576559363153689384648913939810079643173788459775165695117464278909829013246619722488327316462018493234739933796624405593019364534901311360808013394991491647631026753669969207918524895726578068895974631537820754131433838958806541289065133359667261367989163287203749090695309075577348144985533056032928115415400414812404770109090911841513558080011077774099562469566791444807666183852496525659088058491696915834515026434826487715240053639560799273810309305494905697639944895768142112384665016131065817928073450312115118157300924980053855941009742192309780304724749160607335680371925850552481010356033820790796752505057753056534438626499076063156242066760500898669778937687535919454665941143159747525844151123441139331877143351172770899550590998396165534941769679836096640669453439094095676737995885702540157787277941248123804212470625513883098962063354365728468019434078673101654877132688484285686050649284434925518392362332231767143780636847741686394538413398536691262292932018042547317708096758191451384458797084833395282837571821724876681401765204622151875752779757366626771739233600386621891849589089241646188037222261428443215395859538519314337586897305164452503753664615513546513401917810415018147738645438388611747885248742974312383423845171126050203812616398760118790475172497950791609268883198966315362338662872956433615342845577960670165303191622909895444376957782008909763900764090110494765271169600344576182795885163928970249894992115968277460021936078712626006460880509429468739160447097815428233393570573546534421095554535551426578687097980634368877825732899076819319112659347661410506243303200036650491317817911428686009816096661966930319481136079178603437989236135876035904646762465081151040384912066344834288301873246135906915279564388333803202565491039749361915396309376372628503172919068426325641032181339886020287153692464728815579459652819281089768856291293235790675165795276540515276156853618258528628836761412135301289946709900358796971323763429042868747211058616358080045657441587735476230332324502843621215273879067642559948065595739749553315994681816491249258581521017247252155230362106046933979944266345995561962866367829311278872529020039107397499110664109643329861577271156562912066246062017252390102976256283068021151004420605023172594326084513599497695680982116876259315561094433422482068898527152294925874214086468790030347130882385964420261492631799666421347966960768625645934566815896734721454157385132445713271987582282980937268500454980904381153355965217872567834608581680093097547885229333394528994816035037373556522231938771049503537459799637750269865058697813700558371252549622527556849620532393409757970486447684551411697880785985034855833623746796531177658149861345366459417961309991800550757143319190346510839266084819863258137064217360986255098583289872880132245469526235822859416084133025844306223172203309200393767361196285761649752399697956657711440761943968160051909267275718832994531191027408394085642970815002380408078574625697445571216849081250515366026381342665449396037751738488290625451999652210448349920365063091133473397396628305606796038935762833373024052593410867241263073081987201533396619604291911761486726233534841392944670363767886409983660088056365788192624826808072245946627949266880703170687135346905092031291816612070407565417015350849355426866764524879619673465169811030198219751873200384449472906378208652172160986393893778052202259568735809100100425838368216571826543811313653886207584417804062404092592752699112520287163109090592639340003495350989513606308238293059583437351575704049315426961732747927580056140038332628116015515244143777296053002399562722295180016577324657762907237558957034328882954912402251618869266718501886173172134073407055246882171621308517208439199714091599180204359690136383199202292152758562829755520947089510110817233332147270102019466194242608975378211900175568902767894347444933519870598840843359186635513806592200411553207824975183695853779331720263443436816135994256659422499340685639728798296549639283575843072366423961200392397046219406106276635375796532872764569103605857638465116773090516124950718196011486073233405455459947651862169900769520913009552769562510916704255832249943123835251406132386368283875869907951076526575174448840068868243465742477977441063491256719663083232098059960652780297810731495009753682321076822680510903881732722749699475737073934249092839659585175296043816227523945590293466189512732163244067814742440462433476331252393399279676725351682279135658576252380606226552981979970664276741435801711330047110801774714295253395215118369424260680118575961951805715951468280548029822811932804044170190649008802698855242110534529131141909704723952308260393780614242883185473854466733896827931002495660676501117591338883798053985421135580849127673585744265469744655119490026187225424183347786121427492848451880268118073839612793749511227643060997942755133882751743391460279104223971823810198046694805939209111516943006733880819798090877893901306251990490489126052860904012951931993448734932226514913035844044488391471941562830054034947184363541302995360164080870692364295114139208117299266982070578810902799330456409214226962960798328019430209721932191494422488603863485286109854993498576542222082000915653492689476062542075749928675730053551735432560959252485095513839669296359913981464535618695010122176719177464448770974255788195358535462718027868208168586527901386594536316680985243737266533710169977593868355806476169740364153598338441715205000608015732805056280641848529746867124437375917147860377358613547266939270206293343534988687689402871530140273180337534567701009866258917499650826449113338546433139532831403518553205464169080719627665362694785067856336518314852711259806539058622038298364110660803381966217704491454154513462938411843641889162124422545086985877172664591376039833851373214070701984349262209494050716892968031474636911530108860253158182290683069934661121503664423754388677375352864828561087088221800455948146293013467737577238717129210511508184458696726058538767312832371804289975409950974306254460137191020037239546363317992331298817228138945733974224639912218376154421840940363332809453287939677557082507893170076794539059204154307191160374909343425622777545610543768843594646763710527490554543890455403749865161268079802607893904797832715326143726236838375629250389437550183020982203225112689615998045941567890235803908066275800914936294449120481153893579275748402618132813105927474020442999227156977609169499841763609913189502886413721405537213435780395786872225199271392653732463846859529269499077609630219050710673240898722285015569528869863731364669102153354281733071022464478104557459037228198108758723919333549317506489384201518109165631621841892809124078791895517740610280991953322854529772048478321194863366950949617933984363383971349521000702248518025757749333259934567365087007870731148672306625558880133575647806657975319040931916611951520792403003032251002360644803419971240188051050680398120926994331747441513473419819245203021614920817766311202056940708431512947887690468111631191075106467579389929802818507351363423331692211082423869134377669981464605706888831675924943601240453402900020272030367479057239659786562432211147378662743886098483715567764510200262831242963357057894509204833917727651608241436495924323665189465249871463415368324418037067037304709656014928844678989435589877868622516687851098523936828924195936485065891027876432076990702513104754088975694160083450930942068358316415289500589711560812201305939352470181628980557500570124517923380087452554116864951292330706421958921857199475492950571150741410823937813858751772688061641601277263165878198160356308060985066349884675830646244346625017043491660053413627692146063663623233648998184872026687453715304861288898972159547770730895782145083907557647656244203540129118664674092718980890908405074291396888598510049656736160830089711014210338120872184665110729677706215182051510004610188723521230505969993115732039633943401131937325050712773885822418338948265695035814508501680215776263760617971003300674143497354653881277842370319868462799728136219980816929252544273949312550279350559424773950639092223340706006215169061034930119055170175284568065006430260030457648375096985338488678962137567863339054998783118694152594542680588124414283321599785516203553372566634547262947277637605062475016998674888742302041953476088089105816743164724686643719266938461030068724306158299421426549716031870310126586913904637131640985179668388794776452858939845321038903896893992939249890569142681910643597519148689064003619450420981800780322222233046995050547500767148007315583235792761955217554170537369430722188000530630218493853472381954405235351950093016032866789502533332421355868339407938319810503152034198084329686556543153560385394938823929978388840164632800219971805908734947418468215976779450436232239012577861101922379473597843138650921096361076690019821783006612174184015720235526866071352458223342521475575776602197201899744866036062678053889888330490229958492835944493439816526660770812733935035275447110452214696115659301947103957930074334237073889378295711855736427812304337279486768500514202155855926744300359835990382007978306873756727908307767288805683440555560748779536479074981262116516136279138956189356777975899725674465370876085634929549640617419579307817534687091244645831784075526629028135384346806524346802096777366573698269876846986527437647409016407008665875255965632879809703136658801163067348743712193314646274178753332008257534471542888196459841794435719649420249493667623921044807338272890929206725438784638785665099400580219573042211402105080428496174031177335881762332137153863754804576527197371066808201803647289164865747188973343219803900041051553890817113196810616250608647797879161602460716288739182806914080228824680670289214427786056345740389407744829344344629590889831551593068168375642635158788891713917830289576908036823132623149422165905540285807748228274888298266662320733096769846369169400578476251521748935487432623700968798478924382737616327714254781290041474579142851421712473112427900644246189963672196220675575537448404521405854152986155286295791443899444542445367444387760747616064546201243509580581688991909587194529942593242470448317899687269953869310439342373218665035373237163445600535724424479138992831642780472473774961647199764916828162819714159424621365056095873719155863253622684171074558568302255341258721699432533008978434686388668081668704349212821001073841475836499583887725426573127961681650466589927645004132071504534108750345680261382368201426726448424201177491104352208604141488187803749469696079175400536215939119175757826794666987785958100390074247214418697584233447135290851329943796570890879117279815792192669788436047989777864438146269270451160848435282246027840179390802124281413223355391638907203146416730192290646453194825228045005577685553546419966291256249886820416399673409575240933142927357381351653478572622342224524706971681193955153036095158046859328310892615460806561495940652473378698403180218202373557764570516376583209094089154256984667278030286718583350601650268497187771268292619674767173289405911783508635071612265762690866253576061703219698620695084953695242960304434721565842484515113095284249323959779452489647149175249543710146185621132102938616120998074969544465973258420773890280584867309497340501230422997477684421717297572562486530767740683971860744540039401255624588746532124579073153857898323868125975627888687076570789057625476491016321439174038763380672306333505746172546302471702463876247180884939182185006963522376268021296437201851939027238734244247258655324193740445616415548643657765597217096209383420760822117760658849651119810386087012156019839934231900109718507573609916552799753172054602270826550901053632245913282373478738149179052160429911889590563227116217279382289424501973279982593104123526822806755548004092912381873303834713857859348180165405584432366867066917800216235362170738054522077442530097280850514896845609917278218700615828269348369914167040816806933115188429784878978117453316523223757406554897452638960034987600139372724633730546953953185422464347924487126171902398851603861217977427308612798188177339361417094843852069267980395563872290654065690134683156227339801583166997722233447948292594190531705443339721503706399042012794267675854320172910825801413772019650804075726170380756097270763551891313816476828750257009034950235992301881543582745803568344840418143687736660013714940600692262152437361424256532260940488822705634058623755105228338075045927256899768971662936134099980088755633233094598025706126807848643980173234758810416844412526163847356238603916737172671337354423640994815199471839549828443113466453064980639038948708987792569923507876301428903521828598593484396274017230142087024158457975765430811258429688551871009937264351552137973243326243510247123101278672249678579093239480784210671918705391299437000133477042773745597701075776383604525301321581026930656337558374116617427438025389335825207481810409657622861192481288946617186638803258501080626558705556053298928393347791467651662917357615345640720791613441593338503114198280152213795570841134530495700349508939111821796922120904806923983488298242024464429407592012667395296097837525528427176425976885323974284590937975727843823371351218595117731067869914306772539748395357696917042820390712715613903635046678191550535255892812655979327910507439875434856731576818524548614733196599031616637225868318158144973251179730555412088929927202853447842096276704816559792984128048170147725744098539825178876226992366667631351455400143648714974733173066926199556640764992662061213108677595667528106751017456931342472250815378468803209080353064910842702083093217662997822319111857001316344407167192988652365698283753953283105490733812098098411769901985430957555597056176106997116155833791356641186874801793173785115113780310263029641631538455087440432903706572366654496025758883719774517330670369271130071897406282917185201383326307188946730329253655169189415718930177666073609359563950650495501259973791580864096062614529693508550001152292496574917246483790360900298172653649353695696800505423757728578304143262321076421024723925501292480876168416963679392105875558059374363771826489555384006534110802424301266541564420448023798198405867017697630709642894229167519920862476268671397371698037540419143307611911682733355800193191712095232271293126370208264579088642878704543934047233137097879070184083299101441614775340809184121164446301795376934257151679166132650929598207371814207229844336659076882823978108259757359444316395175702775744404310181645845953347471954779666705176955118833634631040891039560069044939769128082267457813157351416180620680479861894474858007878761656214612522337733878485228055589898114350720715946712049117266018421541602789327831780346776712233595608304168163515378905926188185366143343035131417804604925925900335059113408528125598528369613762686086217176816303749125473659594098671757520775860473528740754501401654502584858784585151641077921983833002434614561859731028150687484219450703411366364102366250665325933036957253181179486692245636632701948336757689206374391009638657271919814427985711713922357882110049484216627686471365822506127330248028731813240205252545686124646787365844877751962146232894565847040444036048669345975368201414390214993431267772340591584810671842480044857613051275435776490818671430944063197503747920935143097332789252509650718961805829890329617874344884734854327383971167280313792973601869478296460583513041989531031661450535307362100258988312436943625172126685059430500923274379065219493767302616738450451654557769121363109164552541880000819254779681856559424785804519832454478646833614482481735532275616072952030549242936871620518340657447582726706137807276239462864823368174862694576864016517649647748521688167263081891893142073629003963161005084698807570853610029806014263389446311089133351038354287313516429265390122687152842597685598648031297982020504943586046638171385774087154022804223134306256769009640351283380685883933351436458784337488595004344446540368280753382609311861872963747389503776470726509669138100629843034159694911110650114772535436850804018834435283492008588325480603522631093609052695791114858973058008823623836833670074535000984209493944901454443552633419661997411671121375352270295691119591624047803978300417826010566030859258687860678918928410577773646089288447194944712183864377205082297642758856607514894968648986066914888914428746744451601623637192114679280784140355772860016927922353714082517549765290510385564900094686642682338754246226328020487329351656882289807237742887054572304624202774791226431601045227821797572197956939615530691411670839683131384752348948053770740093021916311317997674586226529271404915625995108580491902341727619829815627091687182423624003879949445806715039024571316066140361707146036677624888099422952825411342542199616453701758884310361663020800700776433986708415252392817335947297392987623112689288472329384131457773205780544327562894793129020598321872958896477594071435770371632782207151001899699728747756235583451645151245205215958291414358987987283170090000767266392086107101567945546350066901420849940275360339215501889222725058614367003109888762968081228375003136237991226689497392232458545107887703963439127711432864782630316570130600301761686448499682473547952652788913121040583256492759788378226949300041200718495670484642202868620450833193058479955950142148084595700342375305927330688019673248058687618926180207574251704768612419357618702616850910358232802192080415304700421573700531276572062816295235714018292964664644027266273146103267360116566351681401636565025761535752796289167166131507810021637361515524479725802776904025739600887092732601475062646971440908046798181404517000816427749656479726301742910336651391054429053781174663101600737383127653522535915588097721020210809093749157632031884660818857387996198496356481032495589370103030391222696770697558023174371390258413488355752812216040218482440285088451755530859228183660488257608727758745151211903653793903721677648855450531521418875212457418395446866358954472672162170529233239435842727116624693266881771401985651905541440104880917446955005410615153856146073713480586737163191175963225783601171879099564331096075348376089805020753197624071630777128799322338521960914612484478848516623902034096908161500788118360506594853619271709101842547905252081262548260674638790117597033555401737146530712081288132925852062519332591055652300357499897565101806497945680272813418897873247721227496990196673460054140123390304078039417303462267645783092541279173543781367615766924339636996950560120801058246721235562257606894381797388405059993871059060944151944516538624540887642419417500589259455256095382500319294900713543840004612669841922687811522960893982712567558025477089532495699157593819667581821169344560866224015103592925396071399771832563207428268484143115283284733375213960828000162015871432312907942679434300618166639974207421315138164881947375526242652194884949950875278363627051941277293806547547194048746703191386793293798885606663889289516432849347635638952907279240318487822549664838595729957620431687734199404408315390164295860776995789168578204985646585450383885134065096192976582776076467152516087109342783906266645806130201259268606355659784521252715909071606850279636931331258281467651845888088557604237439934578889627846872168354785000057911689843509766718613328631967977821871269606094527371711084362570360342212073368195474570636170022514993953559540766477038206726471815979723163796960018344527139212595471378602145543721460915507850447336879597652499471585548044928865380694892650615285429044781322143200543357289630662782083278004488140388350638974707761379005785374200798944753551654788389287300072550663014437388171898925938821632485628512598714059144647538951571171501365274587198194649932634174192913716622347985185791362984497360344279969212223235323197993450443108573962229677718248294140287785223395769707141011325412088850560744381667868107620039156534255618779233285463636268283337865378932024092458636899455298390139757790717435880472089513935508517141038052381898516369115786607641565017789056857446997890677184220808455250376288773360542531534179628533778508065960275373546041464908789612712964851632902859619674286811030660014184918235476322635532725812205273296441495759387912964163963690268770950887756532189287773353508784433290888829110539077008013782052001321597127986004734585274435357644212457840569687917865657519798801098955163517911507476465751969761476503421688384519127846080795442363737409876440675507673151404884463514747258958602902773436558039422227513745217132738109035921746497694427835794535423883814114693296559680830800114179342044180939439479093873376215398545643815012692726156205455183800148056622926077776493983498189147497772074545663611992868486052084743387087456479455489701826469375448598618482003180757966279184786289628512826683656241436707712562899902083640171088457917334330658037682220430986177333681808360324999283219510892211787326124903348124422645342411605836611449058773914488507897475527850569706537787477152178355003053465441850916461950835572219084129054953868346800129724282813575176913572074639606574362761722497703337758197096663245708182248424182733357728345731586694459202700702456657629413444711777938635226373070473238002015726664863909332923298057195874348354760764247772743389356504148588555782899278414761960162405743424882915449664876154217971447709679712511585705399572775910803522829784738292710872932977875644499046141940742777901401825730216667901395414768210832392101155634433979965914875619834566806441622249181602670903137147208359832835764971083071946625777825068336279170665716421449019426562880117189179742017075702169071939837794078886400532788508234015288383886263130966289096856208535834578534660775386844361135347415458603194180690642949021071045589102889818959450854474411152895863477390094561071125558023472635035165862093670943778250451680091310009810766314267028362357703409155984596287560763857886600488842765681086374753744895610672445151921054886655465188941251488907386744084336061237791493806496265275517624303621486570714722554314032019582143905371327333628352954905595398414529431562997934877159337698942884527671249795030238162419123770100029860386028900870368694315629322935795709653774473511010265172719597127123809093442867934793907875793215773519753891364230519027890278510951662234159255728732896824742472652137052473961988430539991997336296019669490075275573607444927432500148985227780745577754528137669173273627165612002768387167112565361471950305976011867795862407653870144594039522074692178778074083354282015292964668685515416342447669484678745427721592680603492099694204502129593108112814377225138876326690766692891628065269033887332127743050824367938046699126835060063545233458084986537015256455077676900816780002420797797897987618692484216723051320323628768625146489057659525240694631147122167431127144230340502485283064268238220711501568704501680462727931152789048876554537102939832423504194008328792139375212860184769747803372440579979663419271016392052757112948064312391073717149315402156580363806905036441829838766510118749538580381494102638845848233283371905695050480418144790657558863681940946898794827626841425671446412156121978384201397704527891029860038949087897741985545526348454497204289972508370715286348984720528771315073751926341075101224804471975669334579372929461973037468663933010800270084484162505244409178984597054345615449723903134635173616705036182309685655872722621752472232258145924613683147566376206497258662748328641389241354532470560041550532181982839131795069574839110181373511526975441511371895485374299654866182632214360774302148810021485194922825675835570126168932060686362525059607159953853242584812206147772950037818642723567244848418782156144789556492787197030893222660954435065710677196084978801338748637600245364495455558236033854138683355727718196303668938870544201140590040141771028831937328601999855691832195536790746611576084601584001006993432526353112116085210562448344654079072417253249359410737439998604386018524738497953658400598353402869987995454116363299513860427938022564630751013546100502847184170953427592268749453482585388732832475563419694909731386520602767316346735180631282774722886356241178734761736657617839287284634840998038899102847738998791956189519417864437201268429676453485181575594253324081220391701642821945111949685671567532883392987737024923355480136809241572243760098903080011707331898023929984950775645730480495355128380821746884863832841877197886182987560764622135304788955559396719883241262853021928723386910263688412332420994663180851570772418419729398979147843488876336834435989365763310367211903867056482791158377471148412074636108156190961295622637953075205642403751819254139460419857725895681004555725304224273423606400818331650680546729009594894474410602535133321873356906897596694954026151955599847611399497531826261810809217663077610313514940358220948618005989179699096435310116139513725314019124613042185119055916845399648363064729961156065621811404776848730827017264605842111497164378077764321762679221268776135470982339406211621094284563409838719253119702777683429746642803291962071393642096362530804354092425083233003108573304258219791684750498057489633807459470435182924345059489613043712050444422674671467069233389160527563699575762411381811571034025421534172117478169027182348566755168097267858072354779910706953099997722759680312353774603127862945048674426016609967467389499998625590916827238118600076793363944435314107358666917100921078553910433287565626906390582963692936287167832911399974039692741240972448371256107017299395912596142332566112743452886869569499017683879187730103231082208952101897000652400136652264925148026160978878327218062943756194513501094840349907043937518367751499332162811984120618364836107799555445632359359652931480063518126834558931894109589105617773868549490125279449298376296850038870367497728540566806208597842344295289847476786795779311874882470521620437469015233363558351882535076797593238023437067957075752099412442404970756005855339308239142168633610478840304996719764734893294735421679503641024441272566277379093536588878785858306311140887440984035821913568315054932194771812043167011078159962535822437868885827850543905104777538519918456033228623899307452717649275178254463733530221204102882962155272394715053046873022335717652084043140237479527260020299729848733677167546179280899341301745001510714598341597037830130703285229687421624264849806164657870695823690208279223839370381329334376982544448201795598226160285362125293870084679274521405573634737558577996116263594485940606580440056272514224985057746123380414969539121218883757993103142443537104318719991495611614461126120719695268463563762965903852607094868098093299023785306702664526365126640168689895505753500999175168660671315812393339818924009840697743699861627597455396984140894587139361527064691842282629035800986345561350163728504301708146512490539552583741963981692411374986032915522611327863214756435064134937963017536037411307683351696198344022449615058996861622892480290036964237635498579930101930907336377896039530846654239246086525782722739130230932276459711966179716378679270331747834162803515356680793754495746458529894796890442701454255943864607530492881708027305652631162654873833072881877984199587309757477790445100058353388517267469099281667016831405940663532763893801471349850695289467000349048804883180745215303016677729935381241638725358495123906228390506007527330988314351583510273411863367459396609817821328257185194757265693990460281290550811095615204996572607246539826245572150540344744309872486241438805284505692274291311231657159877874894249822928923509514879351451035230371908406617017772220137106742592709116851176456496911074591800740088343802459834034445495610279393280088267134909982921368565358308676272649323227867051935906463575742665341175278287234856428179309753698302242447671271139791388234492254341910963393053560536324271658216924586367832246579648317663221150313862017846748986457393681480769627137696483175800324723560462891875618697730347432486008506795090282575802578564585800046854954461285077657439459983410550607736159144311388527245072690266199265852803539839210914384434614872530772073177668825212357370655938081724860135286865404176565788181776073840420162791844944122393066013121682351632560581002127503530658412381162402570044198377314488003638312423639350456711716004313129194092811065860643076860775904972537970082699131183012874142510879332464232072142782328509865864215543165761965464873187112428133321554824055059411545231473765347648257596589223851501093127722728203607490115582423691036129602228887651832781765687647942698593679457539410544792434246339697627722281598226366287873205274284188625005074338708927404241944279377916050848453831306530140207905501957454766571905501726743715354530423016580699671373946203719395494581970263196537045033352638678197610021268046065247245141460715869756491909610350343737984950811308355318295687539611362052812642267445707771398271351475282161816890054653175083740596182946709675734168393458157962998848129866788303200719928570401769467248508276794843977929638858734165253705022014038860655636507357387309367008517587470941011872987633064119371856623874582098319102499830336592648406303009950247406929918394336735840122324696424007221443892058911620012478726415943222495014012304602402361911039158147696521966057659362637276888232487233747020794990367496900209902354353250077779403827926764915500638783001694329884477982534100483107919828779645499518973975737330421553785678368761740793520336620284203431119568942551795110251079114654122031614393550908445924421065903036070249946175438739624284541072629145496430341919423661055541421420444900432542135524462391637497380207387786382581471467355232980927158088689804358758372452557583742781239483271746878484510484327853592951013452680185770851039312139666366735468770292281609882839338276391956134111082364478436861819622817588964864967149460719432195096378485889160165606841895649371212749018871477081606019337406250158744523333868128495483129973565625595956633986374536557067191593125602454621292962728388380750931133077086729416586874395625165765132969711598006967919001237039017852497693223241560880753853478597842449581348682957077995426774236658584360099621727846581317140591166796771488826769625622006618040611243861384351932532991865560434768598725823869226337503256254948236722812546044985918227412799809709841223235414998243221207691731457629906976445146779797730899959657938480532982546667667238349538126051650719893902965979579797647015166368142060503744250362805057370815486746441776447583340288308663474546480685466674867296261005098712752807680678700770524429776363491609749611284463884936565304225077986687300446893767453151135232973927318174657568246564053970466717812093881053448624276705090870018208352376137678076064845978444417464325604938069994955773988332292624415422416817763875126326478123364378035316249987562520174577069234434882873558744381921529589681889054042856656532202183403583078068766336166159195061410635682958079522659478077829451430072744752706783886317796207483933271256101758418954597522874194717494589777535285584446346846342332751155249015856019559617745739767401757310943132227242964075498738336873060588557370971651172064876333268269308280720216355717497094242505325980021723351829180841699332203869353200683897440262115534195259070454601273456958708673540938864835453619044202980125101875325346426946927735390389645462196622120512322502953228640806599462055415368334261750150177693336878054276178761780808075229928463423213742868618116158381823387681494455516134189714829376930976936480186572342195824640852587699490875065105170794431582764521438451762631497772047093822519831035484973249365062730616818198175471797530322296143227256230874777356471370600068491491853003600950346381105268917624543948906202416772098554272117886105026286042192268702996846768500224959146204994498122514878632117810819630788015578063219250914469577087533596774766584359034222761139859641471200001479992969713021392519510606483333695737478895352899511748136648838724511338537635002906287078657064961467924795705402958096335632218545221338985005800313711497109084089848477103896742081660944175599413950525177274263101949539567383348840432312334541666422780948724730664754315723874858258397012505704047537945893153235181316379824240041751652016714126411180493642855274115657946153486483952894467286736087856390126249767676939034620638505473754581265767854138243512570429544083239327934066120096207803077328592922146193153755834149164856007196560453018626718822186488390119416687038693286894081826948572498888928743358355084445002831542202831266780591618554982311587318465867983872239702604736889709149173252613624415493848292411672977722797647904579401163011626241827333001984075489679918817976847414185252269871719322003194418633374579804468552951905450222833531322898735736538112774617459294049207149973022475376593055975635418531191514398663913565059877324352170909909910886240234981982427125169091396688233751621233932356347068404473808700620941567215692907529982250267843008729850002291298148758362254987813108956710962170797293696851782540225015447493303375196242537485089466968985002609427268462402370983335013610474604800920847476635699732188690697284001387453460845566245619925863543576502227207447536517417031856900909624116862180233355001812600629298054752800065901089332687531710040983380665609614389180069687663180328983080722954339878603994683210235929273115018029746194991636408211158075756000391454111337271900291508897609878242602733857354082690236336941454717555469456636969879561581701465471933729181236336480226491964779478126558209508869172474426300108797242449210438105608637138205092294930317280240485413880560827497294519755594434022165255342667780623927953013203118924449434397529150709362436481621230387561595798278799680449327459929698289179147794759712527081194765518268920466826557329584816872707621781446168803999840511633137108785906291971937213183710373408827922752783776514686999602612571197959367177838817135785530618304998209134982431777060750839731176672760335764365085160982988414763293887636887578678347313168518741727276721104780256406212536295683723232629274651621222559095491582866517272254404035709373312013524918910234103958390492858301303109760641603082374788904051244443645086974671020166352287214835167587140299939397734830060255391357091733260475681376625983707598583128916089268720736692409496966703371188821803537337106102965019341688788408869141293490531626024254527781413751807494202723515236498790506615635188238572600230007458477333791071706568679234472538986913192132039495799459448799999401559592677258826987322288306776672133306096708294179610051930947316661104226146371028631637048364779337200447848132359665041558104772755196262115217616112354026877077669631520417146129281069794232550545182134870228267950603763320522145812575650291341741780246830909242833522354746577395617818370307614975617488175998654297379277483182132505712557495971525473270759413950718366712273138104584359627844719087121837675049481698944399236013029492233428064960197789150042416515342255873429706752297805852528213279263777781152681311065445655629068424788433941498055702922802497056835828777672665861200573992732022276284979518473344726417782228673070687564935818446774124934644975201518092885628001102945191801293630810447187167336347719938602668797153572337283126536818232100923173648389125319279506240809189263313085855583924419816501553051349909075401448578904262555237759707244672550115148245012293112071412832123372210965962811797890292928427732276211235509516649095608225572233257651335888469192084439403967095840880986390251518123161214433481821903550997061160041426874625485548723248680343135856649744810674259263273069440600811639419399342735617942910271961943667649210696667656057957953982467964849818684837919122560566495744799506895756553481007329634216493564491606753694436434356575847715725007095971692992786711613623890848444615716692979573513936750641818150332802858250663564073815614895526422699172193993113174301285059577824735774266807073795638587468394138071515432597788836266512106408480024913629760310526553650507688670317086060681718072780604593726148507964102403392740047273113506895963827072594528423720720095964914481279349098559434604521722706242144370380148621011907569210687844517949589723294916862701480834946924173715723009134687914799419027085223835688586841510440656217674310851506038423477519868092535975381079746891960925150208974347898108694093122928289481616958290272492360851493379019359011493138636021161064467091692427284109079205586309007642060578718239040398652195259681077225851752190051781067166948260099724528042457913303113545183212200026714919652138099048814518790994433409414589712376416596381292481857557236793797356108874503913752959335355522418989395001251592759820392891862263076573356426118961960583519478063514491304080335599968277812576917646250019699157731234968110997078264586155864036931272230255204476564641951422821950455511803319154890201645037661823301688263368305458579366456043499379045005410263714447501956686400631851555562102187697866674549482289100334049322527302412118413309475750573486146845391176363067212975146364835407473350733679980648750805516127602441833626915214101898244677803667163497592511428060048104497003715213986258321400842273377959934828981996538660677389664728281323576441131429414759257254442234182709132762398290944012451783123918915176651053269008846947009353844381951921748462065388510836240706008794067656324723903081020607951017246735315649706329525500760739910095626949659996722509167718987865859098945428779902762016530282194572841234150649282285175192954386567196427335569953837201483746333084252995822971848816074100006004545158750003785657990139474876214610167185450090885730945140316593181574844546097760307218503331794527848795454492023204741871180488927133854984575707063923875543115310333419769558822407109338637529144130850138594396371285123372174762996056658736312930102269110829061823487120888036356342816060410931456547521569268621636483140963480807899827242512014451028324188059229727627953705496599703888035478014781987256156650895147631631152896717299550395123279438449413085211723669560683317293126092535920036836431146425196588229198343732817131924819183171675260441294660118618323807008506654846683827927511317928913655268727228489358231404181165002656464051939778928931382510277940478429270903037178005068568819162791427842115129472680638381264120556298997432268768122947899039936809674061476483432049752550303502226571963593730070356328068220374602991386693246928910941437428617130967059085359728361527741329147735868459698549459527964844863300448753509575507509191851847690168393194365982922174983952709455001806853491999017174433142120618732368195691351525761194012987952606460627320176211233549825681324981010254630326895049131604827159196957856131200849161913781580362759049209635277312442009244642626628424546572125075325071651760012453867971971447259608786435663673800038930239830793680977077964651514064840492656429104844643585972971058911296280547201972564739870466092333326991433101319258441413503231156925393143248013007027534762119277724036568281766178033316734119285979823880750462178691465843338083809202418743881674238504032483528004080053933913025872381301871596714090285597414734661200994467104114930033277881375468908401358804229087905219382684844822743335618132856649767261449231327775108230344529545982305690259432270501376215755517590869246995546180543069198510541861353195373657080208882563456076973702327820654904589812138109824553106954454481584387942917530855745971404401478817462079561705519538875315054645391616872079223288810278887870109671410506709713239106663371482034908436660391545737769171057098185585998669988072360548228035127093044116055963323959360198144759299083192604514478072221829532464567893545092912411936343916096789389806954947295872201047900680482224969560428985629940131251685809339425525116393011583868650561302497658410658612183411887220755658054609360966300658335970584875222462773545230111523607169437443955317708976998851579448535538090179254315818584168477722518750226718015535566846871167655532968763163121657765867413295026635353999146112123808017622537731126535355741166855668586473138619324739026628575491651559253615000255101382512627022609625696367627744423543030445158764630847534250512097051129145852790154100355327755074269267255647939722830689057293833355863320655067477333068409989020342177704042402398922759727485139516779152528791539833380437953646282675400052330247307239072220068729813296216977890860722770858774694974364180563958566949899415981038567534381319168903814290869949362497481208297341766134687674967253495534403066439864133850231696893087252701229368343113324043204414711238953899487248231439945691075145106903235604245549676487874037106628630654308600620548891591481874209580341380186545806190944361071789034089608069732000040903999601329059579557936736437522109615239139222476852667948597052789886184563519537836421198222728280431312781814810885681992974085877611939605482853156749449532240820235204458134744186656982232302263684358240771370744340378933646233414901907710100772879132726642809050795947486410507055553414245488249794869409985674227644451554659481038124417084034152171363605509235027871742594153223150248731252157387916998325606089838318089204899818006891294599658691183914996070588471706380605096119269822851381433624855849064488258200962999959230201954870647508165864653255247047841577033802166608967318711729013301824144053920057989553614053663701605367200227765067653253373404067549888623742299655720737908152628004452729723067612898307378575351549405401815742992953193822328549965206949312341829277371645553048622685042859423103625215492458518408879410087669290990996060639295136987160193101027971672585710250749802396434418546579867590567952974499166796620225554794758612748804263376836407992744276542788967293561476444065745406745118193993921301953857646356078630200745339889513403165961955319171577669241934546007811837829122714175984215128064500340854908912977405945815933066792160323982141246265581291622418005968594280501343958590596937156375547752610727679994896303274568378878698258892365031628776009506050804691294524985162317801507514138859795986741352734643460663531853981908566331677843135521749445256965357805397870652184596946664991718391131858897378773834649487724646918198025423421635598296712868006296069417972885396057140660530521642492160349261710845592417652338650436837546987407219672688092615100114854926908766609319079041115377776771647201273275923366967532776924464452093278327296901032516062132969351861795228711549626860630110047593216150725626664121241346306159887894111224146031186405907564630216558822869414500117816259698069157493377968099727556495336251253861640016417761855304189072942683753466763819305413637621153706880321427317908208942645731949121016462351517351534163810077107355785234388458413975141423407747592592972509731420157594704629719931333973860230744329272223914630090982482524388943273391956807624636379691721809053825451805199772751498283495963988013205957014857080035280365142887880013296379814845701947271463115796404323415219385307644495395521602611297683025573144096671450871625157027377315658065890683447761281559842495114156258975375269247679584374744617897514958124380495981888961061739816202065205755441843685008817754554053454057449788270070700103215630952616107437028541120577633861067930669220913659005952157318195065541890990164245671791471191041088812365827118158956170331603972680030073559344193503069839448452963317356941118956571118126115801079684282796937292440345862542846469913407817758763404110671694797123082430144787027803139792900310000188721820216860891530406198520631141472858064793371272034234054142078847985726183785870577407839945943201630132716133615744123406286907995598321782448302322749377113831551344934539586553397017030377340903870641324495208271200077188352960877746196745190530595083076830862673744504625050363998833673027375943929140729489385740079403683032708237542793921722451790114923687269772889392477855858444153510013638777804204382402773464203522733634812828322527425245686504953823769594870660247134721642525932077947740508719632669498237058400523002706981813699936461600510914497204017325017402513010662413214321631794559240009324897857445015038640931656248363299335413198619775291502903223060711764595082556529263150257555223086035664584627093541126931740865751137263408522305659098597444617379670151764825816200754648727865536004344173553836083092849188114398306231954309266306052088007348135917906026920237535920503426504840271956261246823699359311790213910899140748529925068234495872215803953549938027473826953833099656610301821791872136045287319972282766130401901081677537449725120781026442113279318025451556803976728151887800513566151396224214488987180074164369058351345190608240031954551125673173032845862375912124739512950010546530076948603459668625479830956593728594293293271492211121368434490639358326358555415291581206290961830236719406455293077511529836086127724772711754219234096861887108954968011612114034289900478788639616648423864953390723478892201931040443854839578468380068293303245650152901853121690384672298089394915067891454056663161960157664247551143823629925937440360407025790470827341847489796631454699075386140880445527820838357173965156183971494529290476846334909939263514913644667043022987637361500852805309838123508344830225960845351946386176282920752088739559083102034728893910355946576033891017777919238787090169410180887903926197511929895403424768158435169306464259429903469421988128389316138305141966671654896999350075312784132753377175569180291385493077318191731284038708848726938881505715938154132915159414800605944256033947904503781846519839434839247062388161436941879699283216113467611622558495648298157958426348496302994325358027761164629728377898557581718962177661537386199375445093879704856987660577001230834717370970611208733983981412519569508900798034840702591616172713163223963993686251391627057634861142844171357879726182135937552899549352078184508789454054062561338103707829693175382505558729971067224270979437965625966951139702495388596801168310350443194777636087151205295766543334251204210226924435444448924432524284485921291717065339232941598994378833816916052308447098199926186922029943959284218711848050430569296981022613939982064318345929884658175087554493876175327628673253481812127051647603755130725451647225264594938605345252458048667594172977632170207791324437152625849993661683145638663944705503614615556113993729349208946525616931602976897953519849132728387593658824936347200463934967332061921648907363477042255067495218730218080036958225152420374052804802834155264519737203008568858942327287465637192588494098927546599722173908270268028533092927124167651624017117922028628320689743199396551714280931532240308370054545944153254893504839267450279974346978086480460304396590390978460315876558835337993106011903072882771872717276724292187859939060814894674928437198475394929406660889913327849504445732215779342354320274989066366229132026466471934670452194449818979580516176210264304128721309271319366979542211613568974530380012393288155010995812453291363961085169275637757497056152061593778373179710954110643388066839977483305266936968725702305854165495063336845197464885084652474202300714433236710522384750674918960195933063227915344745255185024983829159917932385759031765299014142068609301280713678536888332905346365095181609302522233322037296145386165229415404179736625358372323361762040262025225805786729515631465802818729323423681445042438402138197395406379048338744088265920703241703139191976249865704657091382751546696808954526698552668602375637664976700747269559018599543922287756930729528481536269982715532680725508907581943096578955358467102323390253338760633636721492269801417776731790810853526530979008286999650206382937566780042228055191039657084924814138448618486797428915349865419149206321917706848331743193164956211087201768398649614658787340470728506170765586052093857607935406300709863623173293629955006602347276114776229215713076430404973700461647740376486944415838187767362456251736032072465691644793761537406399845795624421315717112867846255308027937312740107396390555656189764299215957210079294269947356500696488786052317085998439467905665903937439390724754075112227027721528890202512824692541322642163276908061089268783838528231515609994111977408600921518758062863860715087470824980673570866351187908045987839468304931725565049239371394023987969649563045331931491288679967111378139151657773819996933152470328366301930643785230643200125407634516184247052380028217560910218793422633498212258436009974922037222443232334083241407354238132359269758459327090701263212381064451527279345735399947883707374883178315990229294847228114988930151273431741059352342622167913992757101994866934629141909431532825725751334199393406437442490339377773664759409353975346510510515254105472869768081002474803925096011680720311436085900447366205755480711326548512356168629581730355751460649688431465661544387139624416741531763110240376093627990132449965053189094160032523537457405341246245715722733305052296497263371829805771440032968772658078699924776172865695181599859443020422435992345346810525565857816141648637689775662149340107917428159549664902924638804987955003664144059145994732278727374548398891311974944400384616844560007111102088085896270368835927854685307268710239031805424665584791429746486900749407455483247516701213766830804123720775862550923503624879207915493445840760138294371196906919734791510657032162894498339926145752540277733466938937292293512448184523128651818206916874050965455526268526855556676927069016853460360935123495130459377087302591286290436925532138128069453152151717383300460732673679490287337393770964607995458561233177101938453976880980784929469142737605793560970083191844406233755201239422217313160822898595472044195000205609859151627616938517401506610839208015146972425506541376653552826441665667091010622597442963849621800388720287305468459964343187974339424125555440309340534469342702471597822860267872645405127974564918831253234408176201790121698496092400903358899470848931509264782344390424261171667995437009945287187864704103289314157401649062257669853922355389376256893106262804278700468910749662971140679684488791848537674186589097899629908198571927956336091097287767051564173963908413494689601049996164432772687825086995532185267521525800941222897646871378980138417914196432664288536201147994074545008363673724824560174218089455169151188894376446807323136582998039140311588833293120308818345264226418694628278528225171131713950570040302748366564808929614348532325016352189765723082172549962534413599960699288705856293507350998865994058985025995488101163681636193670363654806560851344613973159636538315950135528585405042581959852525379243868854825983136927986584811495193771533558960547893521780986512332175638558207352814972691297801006451790935967265067502968177125569014090204142528633512609136682661920250570520813031344675145830281722520297510290602908875333605412273673192798424585597438138164708047767911902562282419422606230015692364412609522440349288673959373608756778251237033991754467389826343596127370396269460611883416443077343460181709005707239855716612909366774766321596139296653286870371018057749494078069908596497711400208782478330609950329623086457756086186667325292967924827325828089312653861760544279547669366409645315534216299203694346731049481362282647227767479675766462790014987808704649278456736350216118279814765854564572056977127030039054115258480489627545742658258440550597520977989936599696531559672501825258804736117032698293431543902639996280270670761961975285666686416908279596083812050117561962760191370201173168282975401019771987531179157738538575432214668749803648164571745096814868866654468233646187087600476451995555643236623129414735749625143699943751915101539487510365947242427313501366526644945468566616701792069010049069439714593173868533774404261615620876666150477268690635833856479251901702462648201014013572465940338716097106657575159270566746270252879501770772390497086952813422121823955397008715769571648493412335421815106324016738756241558583313438213631467629943730984612197483226994039558899228912802482164817510122962248343783909892240893142764092608619277573839091221443582193219513255173615289076898493442929883915818241174335972782496395744487853182327410628194981390195617910956532250924964671395138532310005784947462628304746539699154709636044241210924779288453501193478158594078841713890601182315822601531023586600338158373989091970101741325120321668386001946010628582190910293914296763517796343171215427140304198137169730943961715335196340194922906302434120334479379981358182876929433621998131770180469553762601978495342109514286578346891190640491184430785408450699981490532577489295752247976808012720243951903108631009818885961494442631308126957018791404503521051096524245436704400258451477966343212571126591941543708260752597301783515267414053162258879541812576835573051218257630092963424479881389708589219226982335734990988352537835123342463820705782824000888527054004264065614583242345145223992880336244547829079497192794470466107385943356797310240733990422140881197192286569327433641631157869552718806305186379395961166467924152007756334587700107476389877954985267450711337639995476270598142234143115073609450192731461095210974562654868319122928940872774462521875940444944814811357794310037453153217712204809727753690891538767368849246908407334110275394508668172591517294828223491334612583325140605396753338443324820665931104037944924420748852725916380533898816737257874709067209369647435924009512989047592840940356752121115468342217466177141986361598837646117874925985012156330284476769274972593055133497025359570405996796724608327105561674361960077261208619752747818746940879949979039626539854033945127146260623892915403980676091473748461634275449958861350466329023838169064719874972470522950932548941982907063192732911235108213177857563516780742849706373313819118425587195197131160488405350193142806745040033307679489949207507879983877517068643260227564977021983226866805468314694520792220994822899560168832508769385299577116167143617623072148252926203155192342674364367676352518242224558420558705365001166076203425478623461116058773006831325052233253795136873511048908478334280055020478104398187745403437345602621776872997862441394727152188428851423648663483749780158960573386905441553688008510099675276892644657107698827459076184894596109937112262994771596572649757012942149468442194005591131608695875051989409977643429988196166115787880598901379234732293659022017996772079794888624976015692740250939223739152869852806377236826876239074564628650854003613716030459619893344506853419643128560280401111341432578519637713155818269136647090636249128427019422530644002004132995642853381219626156631939854650641881229651568898602308933600290157043297030341104733889456906555518621273536218024829977151426028972145677967677280008958973940001556636797181586785117178179678420246228554428898877772928597638726570581539924246723563459594593547940942778397982379186117535837275891923766650598614202589408566169804783278614351242280513443229027554431504048454308972060909764837332440482154765427702696135984807459936269261378702023821589697464704306773091851600652718161901232916983373208282735891049021825065769994810713912738093796139975338409624722830807366869777499106358372280369673547160806247883460603481256621262018060764140166259647658828128106638354675964393622245588932738702145434562191628186286697650959698154931913708700167765721419902532855840770026049279451818263268723314567952020970718225387119178441733021757140029121320359865843594063811148660258482406876664907113690661865684293047978646208025505583198240026222154565624609056478515312546444480341024483721360751111669342398007357285128290825630628965644587722797524447661139466667304074254882182149776653123571691698217525970334180705366961835534467335481317847262453045758936310996241957740255687864088449651797098417044386691468159810218919281469674492132460395765272840619219366529723452093021470381858004765317949868594895520279618184606482697827165432113167956613734548124068724580327573662608069040783463924606612364415877300368362436238460148538659320435250503338810036049284128537760143173692243102231922580521062701285722794474853346098487155157573205963288726133313846609911612097654411784707060260074513742410087630526600767862250815586995701460473446537458783787108673752004531925567891072318931408505148231752061453438411273326539714659041970913859750385541305444907339203611520774351374307025271728611763735054321095898995032810249956550578469556667769759250481454124848887777175459632704892283688064003962497411994117910748172917796072358125209862622981897894506603376112197274713497787296960389503395536893408748043890859587787568921179675514923939557511255313136395174301889057970781646714677301624700341066839861890333373913783908217659724880683634674528007292796390629538967031060825597934106848889453235218718350696598395134472668046932704303102696115682957368718186098425140234703929673525314484417015545530979149042811100954809127296248291104482133850025773280187496571741656253793062661891036830404108657773577190935312047729582770093032706880193755737697210371114123975208974178709441716000777880892700277105238798426974844324725806626653109584494206616408633809841624431191524506036490323802947821679540677133709151788556066882725696173510118104822975208500760690714413004652903953904924108107306751123405387833247967912223974789626275773072488892689519369240425873073629008165453051413509638198862610664811843841666691028255047684523819955850209919945754944981861145412745283428708933807236153803410825089220810183211231704808572684994088342197237067326294370988140476904154201214436985019456387922791412076611681720006311337774394898833602352300816764452413573309427053645887616716791313746275677698666993607037652247906224884790053929185670595701261838354094959214940276263862563846167936742235586235672733740072646722688308458707039578618027049998957881817249511686281303212358638573423532926336702706137867275724075813549867919851899003651481799248236516864018666079884121608833178368461544161445453270580031398174090503761725212949918238295656810320843900317170194621441896669288987028259877134122396097730906895760911357445566523832692065782545079410453352871370744915760247492488703068381979940723790151025784887591480079891750932109894860287324678404645468452725257193297217877843105313084796393080118906397769712773727888792332218711820501458945077007955026847316458379376408974579849317064830408191001805159059849822989462792698815637702497787648494909827270105094588424954487277016190047360060600881369903289819820993867207651699420501372286620738938067428357682985175050861621840701760657435207294885058399175849852495956145425821937141056256775114010017331047107564719784342942147239915055042665519193272111138424948111358556228206129181416493313492618766511181712358330354835100956741616949833927475070396864259063282479215346891612203575588759137931241382092815400090219887528611144453824068375871699143321651446659755845399317729014583667800821514952748889832772053932284568567091792323036666164947505259160796602451712421099439119267186593465345863555404298609665738346033469030419433235183356470238338653154661302071653752440217738406308028080613548653856046942904523468875071905161463588084387716479700762933510807626704149107013543196464920633881666508898864454498510576302358340778839447756190941181606345572780521609259115582671054609205695966719261914009753805721946224412033856143721237888948512502977237997638836606528611164967234415569136452103556669699137008815606213432554096965636176206923765635818475303477983708572791207578341923243380555917384692832896639088189299471926188069044221620933375267484514338558647166317738091476336303617473068823971215135233642311306233639161611254234954030709999450244335180390085027997514839622327048435650977556715719312077043527115526982111636668047967077523004807649594219243891400613468541235759741697317231555281071827173303691806952560718560964962267442804183701028334284643534861002066729266979026005007841721712078866078482571956356442135828274333953451868938546528128000140555922202387625089501872975821758924841630164386145216488370463352935226480971693102630059663521401608856637384777494713969099329114182044000727113094468296677536216664343007972018665855779991064203205642573673357412760960610604901954583170048058622435374975876469329837080960119224643033842575734596929519263142345526573458699583042458907629902983367858899182923306479513840596517233764415490218458295328790915297918226379496936230866959791112599615197306708279498419472308240074430299489597924557648361074695350637496238312431515040781301969599126184264209855479935683597366288474336712838832844212186014551718197369841723422164093789909062303013116734034723651031303995020692263888612433789074307731877825656334109420200026635471444444354642347682767290777583538945712103590349011035241036353471893950275348871242994390255525574367800328417482808585796727718445631047146524240442058383092067325895499161589970848095595602566976173367313974513221326517336415265091240820329931029737618243172866330755283858721763940030101183855541207441570106675674277888055339634701679600544870139832063915116516514462101437793477729162679108816892317830436149395941042040711784094789659853287716155660866311295604573897948212146969346968219985172464975212563984048286091720962275560193399143392999445384674616153411208943722851190430317387878218105200870088977415317580513473506081467751106384435685462017588424816158773444518350045638766401575122663563195442879391733017830883238095214600691044438338574480521545555648511931747433090151668213787861941941719161399226813972118968144888746258233729780062557281481020957274809008117572038824687602494191958065514777449778950395563380389479183642315806654807869622274602473172199441807426910306969976997103318699138843073702103217977844772444557489728831389283100650322988194076973553101804916162358467082281030001037293908784474315037228409821068982984586997941746029169993212856520882535817005936599092273625311201459045991228232239035816765075212866642693024540387126297197193256641166427595473629908142827270588495277535442492898672822773334608034238719436604368904257124221529403155171747082446538118617444354969447773718705023467180362587171946767499101028412060350652651619083725902677993064423272798163141060620878988746917757012368905843488799579498289186151953577969375217067686282045483060570020249055411552366304159731382249318542328614288251280468456362930930219033399779807445985297740776086957334534220535097191011090512583543327614353174652432477004065499277902003638110882100377242570054598433311588366092819045098281366487578062431522524326358984025084172742639362838650272673593931201883634673966910852597491707930161027411505629821645675784154613042328181060909560356078426606505446764115221866004146970436042371232740992495693677651782203817345966501702046600908050698454018837259248989625324685480338256159399135910931264183483223994773180652531034179295665879608443948231586639617559234193923317111094697677756730661107352162068415731736091601844564280752374077759940343852629549168799579273612998205595151489442803121636410525000476739612583476453608407946148987238231414622847549326000779985413957400570260268550464098477085292161587764712109419078491763491405239389170834594965081901205861400588616169995021403052594208257962904494531430610954980154047567671554441824159199328876108143042867154391653269881578621205552321931539894176746728002000270652837111064079405023089048412000553820178656877936156423679928666360485128443225804832147416943454368749699243738953103219272672173952358900486470442145214977531874865423938453910501410322748589907909578184541692958430781376592060412989705432364857957245059336101849486401164436279228728563831466185519015485777663884712364908881776040935916720244411076988348189601999219744911325001948519116777609841061691565096092150627692865544276717767086981662632231205771177729130882577932539955832126426667707686372303046350668565071076863797229114528682641522446670984922573087338851159684834591307068879724263633868625610487641262494581102207665353933069177259101017162659854392411579124946727811008750412355421837069510108902685607635152674250145997608841468603037873107921457984541430420924751630622706914808216458814048466085934011586701875712774292006500869915636006040204564925597554659700601522701506271150102828344833061770195148580803367183441783947288937912924698405890940058612721947284142322668419726187300408152441624363127183824166622420597823278556672725509337126692036312073843907180232857013004805729552018877037812039829580763351092023482499312773003107420584919621168958105010649703564672660400796132977289726844631249949965910053002644163213836681849902201095368166070148425369572167584752274586654458093276730411338574283617035847796329943094651727571846543030378314886998662895420275476581404894069007733437082892295093182269501016472128071661055194354863620631740374312808318824846527728202051383799179577055887599210683222638341029847484870477720651824510040330239142177560852902467243686980198391983370394627410184091296580835975617969519541011106162220355856242413839967349154909171109788030946062995945279214265990228410892385739001144715204765408023445319468796049895334387115149832886529344115697012326233712128543448083598227213895607100415041641457020472454026696490307654434643617696598177122108434469799413337290566743852572011805978585992589341690612815335753961243017724423375257316364149939904394733737620208106358639322881835956403916787063803117446966749933813307726231325663011824766516486996443066205648942512294396569822181156297776656123576785055070364049263947283588289653693108034878286588189399929607606057708679300446383891468462437309364685198313923425686699485403872255869713764086864117428573595454786104107055129914639616240289058995739679485104148481145631023650022602863181172753259354842365974440259766188885821650067231985854051531927206728616237241728022515292399906336559096668162613636301671856808010425416100209504634439592753948349246928039588581213854845417185825714489950648671840684613664221118527334596862354141396432773161618173066822467473299754545304576544112003867293048341211433250346684394097682236162808885690078552406144758786306273659892902589569051617773818332809249720889344606798075169311236233995304594735536714761635512157388644954295359680278763443222814138633061026340882758671958502317643473343534479571366380950037766904249064522726358320543179620864707822386817237402133481464208645442137621366509286013668783499210351645283375196723885599684994109476521439332062630622981993686604798594567171995022213290717144790434685104523437284685658648460906891125821062101744497535003427080890192442805223691079554610866518062632654121668807025728816963059605306454929693361550314293973096930942575709729609508360479537540581766379340805313379170721735970138022814391082234324167016996021362419498945327955016005125122801434607125370406001443385809102284069897572042768801969633446609028584676374305989946450601448816463286527464820751694928123587469336768188478085490077331662369661510690464218807571547989461595914792246652834975930533733592406155822140429768672577556007491202101534308043357911761802688361598226961868409825936609583887183538282046156135549237151662937449584755842530189019800913205693148849291432736274220757133863341326272276271502688096868589727204094072992247082748036273255294757120449164913775151800281229013065804451499023888218454807445961264610641772205313551576992463127743993426932013021075178067951398069220632463020417151988349843047366406819350129147119419807144560262982451610845771074234427272122738689994172860189073240703299836185328285482875230299178468159341198446536531470674033266471185874913525955336882963088286322877772833129250980762791469822332569741486771715135477439446797964184530137526561494849348109292913592824404661924649498351547278103686809763033483465907722910501514867385449065702361859723535451587569997132108674032315541436141154584784186700757597462305241408461704434521451770723854727302735512994466871089077091816885951219786246553040367629027210612531470368411961880332442067225980445117480507401954498508021611477791258265512029952761820127848205857327026848288205867659581584648399456952077175661047774866551884069323430060410669254312024536676017523800439658529662624430470614295027672170705108668765881672287697882548123244783601044711749064778087856562140203630066224537177817159327902607017355109648021165339121363175551168928784406548936282775842604697993866268025254299229232676929982974064787877173833803653375836212646832820397432146931651925945327530500564952379186727563155066309973684342244477107109561939657610267261119434087265774252931251387773541657518419288964108299165255212687133779525248419046790217044767177576145235556292341041734655339684892184820187359435671634113181043583201075955936326909123551016065465872901386730600304581090739847608086277568944096906224945168687607796692415085456949237205073849263084508290671743214569542125228528469401788879587603228710994920897607393358588407548115071932082626959493109347498306771136596325058650023605996444621330118934882999624695284215875371025228036272804024753060329450098585870319459302139969435017087784168705086182552962469718793147679629812952480130970438246408629102491417020428720326496721627683546422829216743895326254605481238136993873470109653564446870946512201862871576150064320390890572068556468195932726251186714691919435904000280631551435829231519965310847488893508815215224710866044710950254011157714630291682152239658340828894175274893572416817855075903123106568802937951594709487759162928065440808972117919785636645652408633999908421404022675977689441349443531466630397467006324588285273981235004666986166463401496603937550211713419412645517840504608105436741259643570057383382817812472597516835167794797569854808502602823684442826446010326673519716884836936387601330045442526112300454826155908228210310529644380146155637108707712724638646632281987169641043266196695337745351375096209490029645916655504328563745213786496692256236945017820191271934840355309329666551590883598042660640261029483867363605386433067870434813458305258605183226221027050181120940609336551737575612498644346189800287652444100566746897474217836135301753556853717253403301133656489994071183452019344227668731304643097243138712712438587633791019592197026358135874978366791869943829921749527428122590135171762613844755296614289158273979593383680682376624346012123178701424333176518926495063520242587078544518532706749160259243703451523065923067027325214194913024540238831274585856090306610506897974044849617186586243235802012305076600871910677637759145977850755951111567922878732671121321198381371282962197346071593885770834351327490631152862220125348709875030934673037718414790706974623551612495179064453494333775793254953428426682818474628857828032136891127350859475119415360522961150383330295382016400450763504630343595654417507378073041883029737521020047939560664441119025326750287077357537687107791116253722173760664682368085013525930404650544317806983922699378285045990338996772733906480210033510203184242804247064826973506350927642420487504643203760763622694367537313760738092052509186627136488453763970609714660570907348040981308516987679425699230340058193853865697259765771696767115061969546438295165935023847304258180500703265400283107779915767054723106325116941211965622496513883188330072440972117049231037081884614688723876122979202437252485677239284092414029669710774078395985048301273765948354937500584266005729750627581983668742965411018786935487179443574951261545515297246304539183539922017690373024283377383417546056568339719593275220888236151340467144636005544796204971631798705285800818006349641284075480122714648891464970602424738962539974835242157578975997069873156606886968771822784605556103362986841568232362856041116249476230993909907989459551287773641411667997703631957816112135658501010703359096155774550496978799497690109500840208619109878527692997477800803572350029072348326126816874654039488712608755096319701732354043794920382758129323956826463708456720541710718707731139849998094854523051320877907150563700085999329865437381656931839427557195512770360812154528858013555946945196496682586662184353568928576771991777830406821662061897033009980337191239859990604537104412233428216172135395524454621562428416585792215470349973774724904914339865247815649790330184658243716770087088150403400080645804176227695490092830820952031449478542578593554149925591278405680926690596074628882605445979576369407075143052804375361246037906832308549285376601416492799346121360215757647428076437594412860349009614815980337142357976506449065050635212540363614211471039351032496190989929210951551433918120130470371761821460361125020256358245501902221909968712451971755720410970290037715822713062424065009420228454051626370746942884802135000009354618286512008296285331635676462078082948605891771574421408077342021096646783787609046179581401593728167641770022344788764801984748921820017757261883462952967486255454712127936412597780158258731464379364150874777392180028793261317187584868074181359253856926955448062369894049554002263326189335737793127730518351556787385064027608021076196071530073990940374851593130087269567392342487738815592838084764215754074120743352615194515325744417534554542085064814640112727223457170803516939573301636624023847155720586762961261388627260433289523908835983738663870039066152060828076341342147182128347570579353928641793928169231355324529702272316885327963398129370333987547140856055853262724018819242577001365686149683778885631944682185446423358093821153728606973542000784999664402895487365966764061014358275129802362405752247496469667155258087500802908043016274716078162239015966791629032584459213951546846420879852388167237950245500107643048452978398987162223108743915509447152840791601525761619410655681181878145978266289628905062448923992872227349427605649360977247912917697623379038877537544745458919025659731749227507853149523325582800344070892775721819799062022310310304942838260949185123459934208694617892427360576967518268688450895553697724621285242880310010977664190661062995096699850882692817604750374125783451563589497778205379656032261120487415269487161022405717153900359496933645396342039827223367706681931458705175551775733182999857640449063060987943064606326749046752441361845496796744294557315313801815938805341549978162594452204402991194299936378671682542117188148120560727298201194573833655192901734475725910081057880516762423523750300344761959820927263366188981620650716433813663119946157555963512560407865776005318191295088147487861751445194570674035901861662835866699596582250744091132383170293909155282023008087200277143656499586494410302260037454089410096536811590877687904087926497833077995847672309000997707315730696424686362971141016435090979388925977515404916154288675001663601850550461878076446385461609852168138611473683421718560532778961064281871510828913447079143705029249833748492007667991259861077257755085042626000736781542594665575737775947580013696438887528082618202456836198264421354947792534783490807834872704835665577650688567694620259587210544297356427454730025271002268085710387228753401771955163001810881545644979658348674510240723677712883228267998093557518321321948371415759660294102505188230355239531592860114418728176927004568107405300353546544681801885086011420379574784796125307279590339645667513325394206961278391072828854520883554587116020551040693233422644890481883881067544114242577389278954351099245440276300865164712029784561768887443514320532821478752353140536215636063856246844614059218585742269629183281647798292212494858335996667000525704636987684990555490785789989729461672052250401621185171403900581855735087937283183867749048724880841993564847398735799585460929818452667585477596509937281353616020028661477439086389558823068846150170945556074091703219414448647067097770347895208317517609117446744211927659892468573786844031635271869479952572899449383524216883979095924502737551875409070190720065628036131045627136014112906415958556176527010692376034314117517287838075196858699775853433051900695816395498032208229841602933956407930645144734303155832427629434758392508694848433676218958446355528954894749776623043416119930527695720161044034771412319590342659421340085749712968789949343837296628088572858442298919131448778326607874097480445855194038961756426066461739059677430876720928825111642839547214332405508205099022561876171723263453308988338882256173382630634974960010116361008580152131983263479798860542245187081511125837193656290573980004901633958823257572033131047084053259067150203293740413779047725379764714291781295041923956102153329505169164067123651249417528126062470475139353697657175804060578852425205796231712415863478090575223462986163333043117100436958452450889051189947445704990422479167172464183116817660727641772157538494094848866226178449178373676388669883578392126427703562732486006545544899570784773929730412367683063866496474880784830086394002823110296654935787752807370572695799721129378380785524581318612716069857704983262534637465909030116025443233341056263491714771008749591037469641903735592330105145535489848482130379835479278450082344540956150536322356383107395366853906060966791445718835538325257637215266418101082194670727497072605502058009133555395115044882095739751483426123126710799552747612436113635400041189817416179941585107684880679623379511359859807135646169993634797983183985959779522672384161953882409673683379896538772109102520957019223467976977232412656806940243406440059207473076393675675921288200718848969116652070908402010069671526401729174252709709047169671642587147807324244118027222304243521235915521200141904955366685353688405732910705950932793856902713998874287448241024557586087925632142792869640046181854020936546239550799435419411021180390255859635224707799149959141024198187736257777713543073318068641656318558653877891951737833411807098237161189368863298153363573335637955976002511854297587954854701694535943695737666853760001878958215175011881332763956402346204317281786499083526689596961686231626732574805531803064962875138568431861958885901741215466299946175779961304359950635882205942726286768213373607945525980465491825188663201063200902625107903149162443911524385994858394912997126928063523784206182006163225433720482077597819882948165245996230389322469821064583564555250501329016148218308127625644709108934241610655738598588811756901780021554559376358248499249001261485334761526765167378951552882282475057663835667136955390925321007537325427345424548899009661572424960182808931946006519078547527889149158640854249922204017782834437678736922243353037316019390633163014835440058157484700195925973720108732019970488450741427372520159297647374728040972159909912883451970459392065173122315646578385553210697841882050345592660982651625825378799737295395887561771388265273555758875287180670381522553523031485843152345242073544668568573797614480840604305337697698796420413820365422194953608041613048088380864023532512949119391305682137092290753732045656833542690216843350315537446157944326575663353924924405711379992644315311655575085951364896917750967969522033599644758612759983857979137587181832980732479650353026120502044657671584613786591719509466699806004867055142610338468796562544392997316979621594877365811095249875126274077387338032988957825198523156485087634566349242078277324907327976024158360196336151228805832045781854853195825018468725805350794058041740376871520483496103055622555758313739790256249461098303212426597780432042401766787239120413095994921001988519514121915637112813998275259031141905410587300099349022349937744439245568970847760331078910531523176152816569111384766517337467178872667793895887173711933941561015717325159944533098665933011333202476687972493631235135525789961357376672032602760757264027974865733059446546993166207889417453763349964943770470049245378522394798383470406755213381536928261645305365909290027407366433719749019724831019284273674231867046353303760857776665940292104584149302717346309248246448938256548514027917981449386903735021748319890782616039202758711748538812244740930974339639588297872606836356416541152214628877532280816752575997160692216366881317784782228156208927831708257259392760626983804032830503003385453103280468606383588822210481219483825831369865990404410974516321966086253547222176177595391698531724316151233960834727692162651630357279834600221847191161691223881834720551579603253846164648027530737949131993113248154883923673507273699070467672094454764099849734018053017267656277552027205278186871412495185642759315640579189685598419435895196571878837412421454086144149380498161209268802771320726131804362614679343261282615717528334803705031533665086316124087687088318007031653952138984191798953202870539607899625431924657535454117191989637356065444715006839625957917717466173382457295299775017507882435085617363820466300524126236385013496420433131006410805351773750947402258969052234505456598727854644976298000276606498628687099988040313300832475633601348305358348764406608760075854075351270208286833305144102201320171952742546362692358568860989323682165479955606468795415104080153115120460512199517611439058098135861146747653460692944597608654375862039653150233090024825942852283127312390369826549872844573514397204106589885903578080538021523432607628613267037019760147911677161339974133167679732838978274617787052280957691126649837398624127709573158815870922043268163361341985909116246642957514120824493509123392436214764856567659195634580870505242035453294363713308136463959367813807920925708160463803980811634376317982140535867783999170433073629848545885036977621862316680200382129122144696802327492244476514993792196302041076870871726579015261611789305447052597384787550692141464367398434613526912045308630882197617018315130186308855204981282880516729391530125588872831472763417225360937921209474294574208832485448055494391483699754600684388287284985659753676140281367573445597339998200731627124891769517279328739735342877292479952295591386394766518388515230189055703063126310699880425402247304371887138591712423133388922657386825659151594121875674994491698308871284129447810957354396657836650319024040817343675335951468610707364134107159063988496266976231674585431009975393164489105411116591539760009101692707223257420107336970981440636064547886153538726466407844754896568915745222219465049350765678757759250654100374506138154625656270828303469537545004209570861658258044904028393914589406064196339302292520236212585566812989877731390959335840140577947146901446734343796459724840215286263523930201576464253941933279084971143738958288608593740397155238199395245425250043214724327634402453849881879585535445182409591940777969844418772701857073225228292273058703838033479471186841741772948312882022439711971732829933000004676822513838358039583133621743453737261406457958108401130047268152552287016752374327444752584539333368470342406710486997614683096595046613844508514972709102839991659280231618443656254711169164824820790394463916216297117192019895474287317939485524250100190236924493909542339335654387653010352385274987987545487776733960435105842920080176229066744951836490254490547545895830836299411147276647914540803715734311507995339566173528195360663444413658357483616696810110807232408248365128385822809380225461712322704727841346793429478562727069923308287649332472719838400790674351210560363367634399730047949564949922395964051503496988120702517504208201450488799200442467659930136683723194219658185540759882117000162866152036957734725104681217454362530998741910045625478788404883073588175226637336293370877217282554413019009703446812485990751042701647529568564138804764628069172518809184257357314810269851390655141723308364975236391716737701182978067101447584943513821727067032086517975441589267253365686576527670531769528483221908492755251011928250406487767944040772748712887442075454502442404443098861172312318303007471486126838484598411320632969717935204474109059025482576306685550671969288768664051134674484537218661114711692233132863598925607759279282464101119434501458057354717185389241758224161234625137152711243696485290065093722559230722352260340259870560121853169109450085376289929631103462973945346704566386720159982675024158592190176563527642490380626939252088063398274359492906901493928796998181511312567435364173284876698054686544973769721674313855610551551559689374134709959609381865367523102366710133212991843268181653517120916406520013102090866726758293238660777482626985725128953541077168720007019591050247739001846192128236481161348962952339441593297884098995111894425472961176790394259843640274091004137897361000643733479457312963052607021361960187032977239835501615772775059761620851842423119792302962847896445190675208621398133776285018885695369880523277319730324376954762673468630838620556993995289972912356649616350519088626479701537592895287789036088282832492697070665749370009206744062134089977719746684901400257154761570916788238582333439240851854183686326640204390661065594011473926892537090357737798490368387808166437509742603679866361266008590914194927427120119853593722753686274273885008421185101833163682622217671130313372597227111004039373636116475550848604817607785463881793987847371293474464544262804926531938171005216915292036435248204470068252069117941279334847766441178226392186768885959170983923663514878592254281440906262491228439368632926171188413435991495257422319254781430129736565523033263625929020243352000323137737478180587474266028663836528925087405589359691268447753685871735549263447160554976425822502302206921299327662913755039002693903776539561807562992951245758033553659603899070254961878346457845375218465755937359398456401698551315521201690472932827711341114366298498012150104573612302474300923373811979146277664419368740796584396968708828464824275808681664515773078858109867633295921489359103292555338626395969947496305240692751212435100659085401758278631956080170214156158999011078030920449491697590725818238414865032340694573662232018201466957070096522568467110365579818666870987575298042018137746891119906913023636954048477656841349778249565285636162746403302610691256692159646930793639742784665271356060502400305349536176842129857626063221697977207822174105451260617366104430343099336977661403408238672513221516644101165951602892372930310692266123815562314301972442266315563641395043038574775394138325970700798363172975914039880242342497971628920662950078727642146875629325805882932282650227140822779910881676486748505912790222464991849048863036947094210953539987606949862202000947943545158803569894015868533612342911803021927896204340721281796978188572399394002795151273813692170788115599387408826932196073752180917927488151089107157448375638735651794497330721651576041926175613376116256647182377832324858317360412175069417206983410709251420229543479220090671799202623976797122991174127262157602868554636530424321032148017359865168286300165541191392464881801821122322629030571995401422103818988753533615314029993066764173201594172450390792067047471077190770995368054670079288932114373095438596741294592974072440591674186359794789669088012315122554189768545162532180518858299436588793338610234101945734741672989061147484393086779725582775672819009798736573408342978620270729047872642957073000118602430546423435058078891542276297613072682892825974071084120522112378615651649701860307419898164501466682033980598973393516937475770221443185021185334619010611743141349413793554637679950058886420133127631476287690414190524314561009159898044918469700960456175866662076879064184578581948152896936362909638480236417030110755441167674355495660186945396460489949166461037026358495404988135476319655368444565763419699018572860911597248913834754451225684786104740711741086605088019437588030685258399541696803576042358866950189919265183907474720262338829995776474648493051554657570714103854320965262785055619763564887318949206986084569221245166228944790103359763640319314399182708603611673814757471400856979319606701892938993745966852031726364988822689884377472695731083152795400377397749138278670166850805014931529581348573989590159647208885935685510811729594032030067014416843229979605773319132975973059324339109769116183015417689168565127715835490067178606941753313800859395273475516966021740752525866544607372477735628039252595966354739484577341535559264263830859046214656445983171276653256348381691650491564647119786432280232424458821173456210802194036649599765196530192460377291907441199358076584735333386219069927795003937073628802045666619946039174745051839535797527533096859791922476899813637514297111255183027264301040597408021641119509123581039969027629993671962326429741307023756593148495202925006960571758286104000308670944681352357106616043174736862908484465498267210320292829927091431861575780571001060325378229300865040588424333739898922407405313387477786509517027873441392607970125117795303616919979943706234303161578410296234673680150404296661386279194080390489777643023222829536056778904839319071460453591835672541310320612774428254160698055152673893951148314746563596650232854874217626286327774823076737548877239903392531746366529875931325585205767934959237299459311034338790806808316553967199634306533042202199974978712835389621282658208515600307265488878738336770897207799439057429914294320051855560209214263327120771276339905572854320335532422686759150994981615160382976315096939654507772603052735675680000415099880889566813294670561226645848898140833450919833126143933012546310780777689974924412237693277114867090494682290032945614454273209289659524293771785150905234848984800953017195400260583209810132468020212663329798071825736445354048759687231321754231479513238183762107565956716647250191146403150979619765473551286127127567001410531680199517439490976272173371298194002881724993866120240572145017839489720549293722572102330789062322392050561558271434664071791159881876792765304426575363340223973505620200104724640421333851739983762240888186011507218948148701587173049707432008323543351106048121458180615260228525553094523486903918848167523038779140691426152716551937020207988564567165946667701409300168023610119204516201783411721702390120783873267397289060311318211447995285229459903403227000222128635594449433867680879539725802051069955943801173797653224513205401674409643018940909002881461949133227440922395431146862956175764726634553118514873159900949558244807699145948521741219324434619587528688063665971031194840155135544938057010546012060637797599308377522645971854996928535216089971787484940141733136523989210679273135443609876308068363278325016879728677272739415173826818115861606633062794969565169737694696983802384258651975947489768206109446749615576398724230319819298465821776778110031610958077224649494918781793639889403992437045960800024817012724450388037707825892311338425285771707322891164240351493322966562558723783882756068095342379873270938219462078626056712853721629314266394006135268787901391344223801081744993953084050268797817381733536688879776184380534787992613264787224293781283814400898808268635953954913889965056331680959706073944636793335992914857132198581224156974952847907893321506021036021302422997388548312557594915417489937079084733797802686049589137484758086112182971356917186926101404674229679896280194875664961955808435345281816526908608769667315291340177719728288163762739318746205982865701887319365811492926413826101585831739732843377204359044809820863243553134250572442359270476088502511706661661898417788043447629884630750506675737478853565161920362387887865182113749979324278361406710305932158845840298230608962207120823119916719296160316922867193635318906999136920657264870137476622315735161738334649563937151196182493654563821768114498089150163291653218791636903050684810890783535445667510737508196550737314895857537149484620181110223161991495749381063288363151181581104327267885263341408257835149425089782123683679273978185568601250746599964960701041247986801641431197736332363079568186297640321251120918301291237226691115129206197433515923644940494835426662047918622272247899155527719081708654196852662388791840829486875726077076468283516133622021055882521821587753277709719286769110587316035413505431947122544798348121339678160198639844651021065915277706096428137821939475613054693537336433322786739794026215911226889318042575982677782800501460294766958773989453639015994983096523806776260296861164129848926301342922745531719688282449953993795684916516117088487778063521156494848870929773797016864366675550244041548753223804225439062584575930532260850074412002733953467622186360660605680344566006203749545399049208917734662107777427370679174259341858893394028890391253945963264260154035985698419299755102062528508521619793900442104403376838169892122803285773717983611465199158199494277734380030890912788764297051953123041638562188970959148143949675606537705744176802526510413364247416876775291753137865964009937643932878714377769655733703449969025018057455821603600631500107269192509504528428366543291580753815454152268418240532994144608906551242866581551505997248692924985638127914872880563564844194856307607785923256878649762673029038607016889282994362104679629585080605290013665242111200708351311855234099173490677192494965573222062147632104549190022011652419479407637414669841344698885398961558883312380280042394334630306817719105913622037310258013379156283136658980448843369813619740672933693912132822078877970441213983632001949956100419449230404908794022188939745026949534802803999496375652346897586060341800613408166154885223831778292132405034970916152753584495580770774530552883035552143591756405147857417017150684414377327283037325457264905133552624994265875666840017789815098638350406641340518830792953571710890741887817577052690619541899108663799433350359277171684293383248559888559047423964804468875076043017397059987341273276752675521141744064594798954212308466903433475741034529634833821152030171515775934412447034890122015376556396396747813988937514433617452981882760840930975956478663165986821529400133755956239885674251285613403168830414171890112520579006472135225151934590507257401713073502192247709687736332857229928933417814765512280251480242885253819421507973281655466304248010124432340178651546203770643933477148396905255602377822119649781118207844187097691459170272243128524494613450988130085550569451077028089891390251491213088491609353318474493171282667898076188778034688336772866611042490280224481217466004135565231140354442741161807943150995907907217109846626894989312876926877419615638144634654874564527576539018358468460244561188523514212963778136341533514203280534688914544212529176888266435129741286476711016964535348782504731267827778102526981576485170832795922229576783490231877982195861099587277397377041244585549331707132722876280730028757038772675354782275119426062051877728080268481555653523620293734545084858198062143201110959714153627440337569560885661593736002607925714555095282201081977460985467502994497511177572774673513229957338033529155231791192508891503444280047975044633134841802528973264217177968389578059673728274952758607163144320643150209304162785812095467125812567557238708257538882303126602793825565715763077765873451663252194198273362550774052604516512482275205499370965213103626397047565121516507437492941869371898368697265561361183541737564455914634853140684129846602511374439096594527471743455668853406121603432419542964539695012537790505221033009483350862841575183986204133706439059573039019797661510676565062259208116908495016455836228117927145742163733512417046342683527372781333776241324831858284547921351297081256590977295949172522461576893722166303874530537637725102202432782123485824297723029429605798244631999462209306568386778112466083248573961830823058359403548537454608220253717362739378974735512708244730354129721440109992057236608271790903158846329696018070541119998715417544529322275580851272107903871794090777525740363553010426970979686499450082868973263247511783400411040802839190088349738540074510172192765553875128293042658307776459407243344420984586520637411220388841033386775279021585289755904190392759493266156671011244498359305557014150123537780116946701222171467854219192793086218364350913741445727569565082513893403956206443628181227876431704587354076546307595735271375434044586837271190565802600125577370296667545180754673514623330450454643335472785428299065225848269027959353715214723169198117869265250281218158525519401929180537693195895583895652067182974680988432052967814635232786242427665099082638173476250870895609480920287686513894406516822133258236418095132731260536066698587807386796677767575793267898889715431214783779427255597560548035911766441490034812481571579077775112308424894096263265526283687834859206175966069120382097180204760453263287140026533491429554084222558827861494318687568153923756717668794831686607864104056278563484226212777985996885904342469986378627994186264910972190082098753387483798089578715631542846447643890486054325913013831803127074649143140579414571535406955184420522145119227987846152236537570916108183543231630505777704863529361718973539679927783983549764800539813512124150261340212457348197846401495337955895882759581674808463184354702187302795159060002553101059227445096324483645189794122799156703545957994152424025339762653768468950722001902323720126559401273696261561004864429641683589451268972165620569514123643909580541792469537450605212692034584036218460062444982963760001260001443807757114046950160128491338384820761361390640169102787675338497688916176774881658745408485621399648506309973701591415818036951434460079035169041674658219045077155414353061192250015773594003839980077856653611739530104645313794573109066717102531115072766409247982246714187294574196126320362418730915225430854827575482803356999020574660974528183192087377092321377830141631485800823341174240306401221255087982345664140389580743236284275348277708942378678876151573227404869996431433871348848696237466312888343059387797462317105354430756385084671625186800834459734820397323412577368954547914830588686558878906662381069026976412466827825837021528848780033598206940567464594682182065962237186219746033475633097771667801376599008296924848109764766889111863614261988669381322175301013593273335072131067740776602574202251533113845062416172372576207545762105933433338969159318755910786916847630599788236212688637608137350164889441187754071380035912285267001460942505193974664431058403892674356152382103305249469720152754005472370485994176443792777855866041123891029014315837534641085610474820091452564854286845064131474425045858154458751592035256671812188050189658556308751496647569003720140817498774111718479196014954940556714531604133322527398987508620094055669369213989663223435444770147539155181111998257721605183410010777425099827948575035125400744330850507098199657662223216472687570245095347291802353761614869822374875600404061820480923779409780356834416114235806987145327106811922424262555659750983911641384181230705782042308863663032461545305210347705129013422911860481060688019791739022225168445698641307925090449446574395499137024677576898192350072183882594140416876859555228838230021484769228524421962670894261488657324561372880340063156677271058418174865202080228054018885374531991765004572042664433081609584753438941782407491563896481126024348601516959686359487652379491136578247482105621157341633096703720919968670030430911022160948130590365969665314162210340199311133064814534067375949566434926163846025437950267822995062546239995406709182011190495877830415007135804466834015664741438978728255828522327846239330933901472672749021681812580629186966944487564764294756797339438972880126043595893866325235484474327282056451927855618968036115158246810192306264783683357692875321035673355242417088390150229249059290881686216996149506593759583552083510584951670466477933625782099853618559836184024994623214758131540828408344705250814642553514425669753491357857939129596977675057605128748738177952832569024575066804638612371578262126590331387254973228309214904267667840268602544036747146585249382219180995249251741956671712596742355587720158391060870603976790923300558281304406675024421721041302767519366465229136505799189140630251955358763700985276569061826251693174618189213139083197026863913058641261825585384769819622143262338596262841089747408887919500485001124258923017569236544561910653482531050680062812760352003089312623242129752744157529559026652892758497478530530622352680665909890954784478728735517295361218534913581241233266582280976669516491354750027322288462523094169317023641108968221919604563656432832198577307569022832897586172655685802981007800404569033442616059803737581176119860494293054158200719149115266137290299319240439525109734206445653701832801130121448768396530993306638110010728793032087428719733732063786822522469008258836800900804507693072460190232419414122481671345344106836671590886221404214320847644356576305071869521753241559511736626202182684170611383524306719959691487360783110506307683750419098660913334743951498023775623130319226991601899688199522469273272916476132591409851012204135542626679750339883122117780007716357449350355946339144446034096023507443957633327407405437708604254755572804110572215905167521092100348070567182304801304609028801454321376790038234860586476330196484156483288508662766719658084570701336752679405399825040165945833026109162150464250797210790027587980357808187805520943883578960649009322781537880586530424350717809888635557049533478399035940732245876776329533751872923405303159099085378436535374327160171793181011823067911036291871833635048259287397565434370345867223250497351565240473973414102904162770998246300241149658740317685567876240409996134445431774704604402605593923258111753497747702064394457594638071128443236192223829130338945715020875705502667837150810427341498042890060934949589377302362511297366963284267894810297914404788248981003592989681145279327584881966206926368279193192731316955872811974429306621875102430056392733977330135507386573052640427984709644421011850237293268763861695999404813438834290143083195882270013563139416242163359054078760724384042293989176581108422146157734658588411763707827360045968294309252346663787008585320779901461177771419733800803857839876627912043800142591012011382354595218108335244436964043142545046575081170859438563535607737754340889529083262542865596831325069363086196316434945287141900504720845810752074869322309139925487216666727946425247258432732012135274474962286099994052293855496016075128202342497491166271901710814900123688308421471924036905178573175911749110270806919904876949072942437982047117486119943557119508052630937878456905774466133668067714906553995833798130756725897068281444797864001201557804749821634904806036912731628637955975749076920717528295396680553055498032428362645464372109880802591671494375858630316572419487697245298585662547825616087931253735072154178816936603751163884611009184151092207120759923854215598506168110924430602360446142422753051508710896027133871041924782033804930038689194318827066818857726913253306550797149217362864469487039060043459142449986354877682828668418491220072668886456423368477375623508246935093286779445532212538233524748411401371468910070249120776990872936171155196034024714256336967422756830191641427299692020524301512444760753724002341179699501665564596702026607764237006905416117043789930465546011216056179452990656918813343018172541827490898011894685832739469661368199181574464648045002289052275713849148256410392315694173033009478414837420094116649581849764674764786153574810527201605776813255555544386745377111331833356112409817471872138041317662768413651859750111754620475628393796420315477601316282141139172040764091272289831424435758553709068207614409832848476667691250261162491912931020083086016337651103689032556096697110442371605855884062374619105801797810624819682557186233035718280538487050096394353927185319515532005527149906239116082435140563342782952575054416725575625886215316947887248784841659974521125293403590127008768578917545898624470565534427351014864008201568001853739943496428962100427505619590800634115617413052454724665310318551625873742754594755948340204050092798238914146099590267957265405405463828021743950117694889759286577524010017469839159492239856451754687698918173545468934710524723335889929718589049392184756946254107041804334837990573750695390836942448034726986277080365966875517838345438344644759933029131089962845296206176835883755173435233600022052296357223660129348385741414686695866731638576077344852778416129665578074258565493226578782803156646534932638214850857106575402691677348345900805843643788689502360829077875016987514940831500226309395028109430532951892333354309176812555890887969724948571340845393360387094169006222659828455907918826704226163838088721230113999664229766976811671123379501021767545424413691027124574239968235665174505136814134979023732592011361397720158991423770510222643713306976767152211172831798512720342586600408598044045868580726103974970067049127374809011798831225934373314028623226940817854307501950096725460279380828282441227442236277548929747137298490598732092351036689954184942363672904822680054543844768148005808613306422260465709320616720262899321033261380584120579072695623866212860634682069614909906746899882561949049741054273265305258953375312422083361503566521793554488836784543677198607148469359824790800659975127421391720417265822095804304220264758064993224369222616807730700787551248074493987284332719073947492683485658627277710437003387012608504281080265415637604766152445368949472869749683477690687362087055507460397183543624911021453796778972565200319518114773218265672870452546413128413258914653203713695718533960771795951709616174428948318459986906841789100652462953667363793868146263639887076804034340277217532761875295912205136869931221426972604957975393090082278275521838422676135361289954858851047788780313553812965919128143150845659493292829721554954210007728910266859158838994252921235008042968998281809643969548628652230554601072832696857106335428035408096925382395539654312455070437649308628907363219818273707524428056104165580455839719697437303154515523711595746003143727742711352914994172480374883709731081927652244188915113908974891913786357725673139240575176759547906432010735445695685623798631706260258532876807397684754652017959809663681041611666134816661861830832406799175497023345310664916576492647210288744073780672176855442340453478446360341275909293524849483582207552780398657520341490071808740208281050909298607641871552563088133680282661153946355197585942902239279629969783555143489020775336644195571280883804036050542718758347450501039332169729598836444329470697390242820889860039509006030907864159091204437278560599505420087821132111048376636813767787556145661563799437258298868949862250140060787188298077675958684635305407832911791368563319725603239605101731756863961714443090708519302027822857638323424430581350941568109113309079515019950618430421863223243596711719026352956463933198223506296470205050478395821902209109426248506867121124045555073926543559743481939952334265384767234990634877630682254281586356206618069575161469927500928011488006863462286243309811052240909127796834451336021842217741141599085475151622235267275021851530733324561685871403132828809199417055352877279394101949546022889412018008091619365566149157815664302245185785830485928966170850065416824928630108577664063202644592065866155637863216891014594365581779125057646572249229516500563773956914824617699193788619194695100020156329874992194460083195601731206442563391445801522479202849163280288904079351305407515919609291106008526735067724026341900047148543717413055751800712710335952411918640030186664130114808269645245105318485720754058749043191662760497942802154134066444477323974796262517848067621270088971219776391525595456723113504074869421739733302552224930945569597285089847103406997540595641755960570725279319733888360764332948755364436728357806604326687617325512756792112151092126035849383753006258706309549225827891296349325086897611353462216699219927028031209837131053002211896859569541177459765890267973866870744179995765180931391551668546302184808469469549695687311938454267138793495223430627095442239447616970357038480927237576604807535712120390852031383547276643575582935855247849715778902535627172658966428560549680579023897095453411058129318165364453563555511957718474618212086615106599398587131788597847094758413419659807512163565895561933812309133749865302336453075974200901263966517300078405736472810114435656598102150602161427113801634571997686884159360968414978234919621348421580446084852308401436728993279380980528205954198631211090189465452124959595104722195315542274251225166047607852380873817191338950410190116610491034316463695396231927870849698790484645435253376896489413671953873206256859897276354825679864729609811134993576722321418506109957385328148812768166641916436570904205345061104632058886882057138172165816491260060433420693480050137298080796546966287818428320207566635965426231728701932102177213583723359021297419759463404521561403498361367777805375496702138997195523714572011296094363191324714020415659975062723192615936417219636041732490999554312003751041037638475544125358636697433838421508402189985295607853536877614977356050149762226123770566560888747728501732538136325004964669759182646988276504796410883908137294078889335136772740423884303305016170318938914941720443117259448712572920501542350672332985731705791259922365411395316522664334661454977790743801128897624388633286709481653175892269913321013988495707006948757602305524645350671999597636101239496938061348491161891322299240872574781695199013683812900573849506535688013498646482920128919540792487363316500729489140336561871439526608817135222583333994256124813593495858030219303140365372697061126455995207750443231184809493215306866994799448279921953971127208136179897295103015141438112476791403141473367098167307334795645002680313947883359923438022436459055408882911279352714751798153423195231464272486243604878088388766099496239432010715722264086967639411170342469330901193531152430284629357272633054556171407365509830190729679263876972496028452283141664413981113525273464256660128472249834773422870384126310953941037981589053150430524569901067621908742046499088339125422117661919534297626619439060883411455706882157575514139108280206862755917113723341702107668446439770036287542458090604006990344178853247500214793096609304469589467865922250543299157358897934210231392809335726466729988513148808562058580820679401317066965200337748155624658823916608594022027572882202638200423750280776650072676148019232811207873099258352588810969229596921585784216258800323667365457111629987980216080164572007470264868256378566697078533001074819184070600498634155936817613682240721181568352982353699873931958977251245620105426058037578518791796956757921950867423487816234920685026419522045985835045904856908275353730020136736619424996095444876453783530761587827376229325013195834770285030554838157859899864848834740990165547800527650897409949475596583204982131940655883975239768335582025372198224092397773498305052648600970152987328049886460798757280690676054845143467867020123791456754939220640387020371065503915108535828906968726823834338304062809620855076434281829531482135559948812924390394683006996668447746881655039870999992834375569587854239347532234073186847954529738634961575690420026810221494226410088257372509211345656488400450984445738574087844099949618122615183113527308424804527505958669852373756427125504923176636971385249706779992818411571169115113850076698394810920136354901068788234728910461305871679885783914231256524648721916928624499652314485253334758034600717082314714432140907996273272022390742534328422281463803857394957555216912361842850525562932736364682871032376696749232474225860110009452366169745945366884625682154113501368263583089152905456808882223062466758907022524623496273873666008754644923119181755227483686306105091006793156084540742827369517594338048089573286234082923012417320027068329428363331113437335710776044757323146580767271108673885389652840949094776052751124991603208382380747341370029976767218741893314601265844966313194580143106125753157493190264555769360284861064585739423838667806528813434296341225555058063933228365695051906785919473190446171152722369912304394907583027464474647002715740037915896603645395721296825879168003401294614667111994236124991096877890648599454092459737490934786728822424772331265144633036156218455679832595198678735622697254926422023709621550379848817835491532076649138121836850999538415218740163978186423127624826875694166214617568824543096835501263320526846945169924878389536056696014134410831810979733959669659070407655765073551937971101369137415871647290309880414411496588598771963711894428986812651542273926046347219707212235114934884599056284457512834478601599350021203145075587302973332035291545394069341487498722004871993024696222273447201980833307505687395945493647850400129737117054681472024626526525943867670439775386501996669169070007391528887717438997502450521369781469845482576223229549330176787403923615974989013029751257047136929052060619123516312067220962092284537078446866062466272510033563831932754377087110185164032695045675350907663334523274833001021303671957369434968440624805138285379161477870123198996715105800158895439636524088835982490994488732678014386815723097571132843809362317014064196502612376201446917523866290853719450737182109824812322938457093463083356646924111919228437784494292783513091687543586026046915857615438670207070942500523831059520120065779830776896374676874642309880405196341471138150544200115810358640616567848016932558138248990376576357047076606966353452047224675849517529949080732516955638043943401586432964344727540323301174286699465790645783637895581968894181812611162026240814517943981515802497385302128705937573354637379025920085012638058939024260478262912082505721189138167052965377905406806089206657508264528050148309976687775152256703327763817161846602566783715482191428283548484852738340839411932962764926792460423355369814561862241461548943451113850725186553657813611889960273147567228059807060637316327407463913506781221883979594754072163608951150272883032633280549938822275295560500705629808950473292761333962423510202880850097320191571680993096125109643811993194998130316737434363029529519960436617734360842469307539362901245415344550347127672373760010018902865770337569580169592555344816659434356505979693086131275565914300283808070037316602940131823792964370103843694068860205326425639380426562147378368611214942388968324611897698106246580080931256531477341281823860525267017986356149438394048936547762630959944486682336915401432376962455713625295819778999373470696651619669951302910478672065866690659388593874502529514859933715410517392952533973356465717724191302628958013087718986229908249545179919288212642717402720313191668056192229058333783994361263119536702939627698897661483898675798469784288586063657177548677298968853787680826644566680363842410856393954587217529197786547459625524161732911156489167856930564109989344541312467991892504947456337299492535814688071178246365841948211868104171484987685466849719019112162969721630221538766753117604745335184342936687665247117633011678577265992506986218442733422014029090891082867293408576489291227819296064108477771438723139308386715755845120494105567164599402373004023180205542658776088034874406519227919202018128062708706085052792693876814391765636750676639857474721875831802530403506674044850038301681256278324641448063703004088781241651978966726620946768776427133324152375831632110824982254578676147371215623448972051341466200205572727044407300822390469872723448050061415528887983479656199353769720697552379279347583647521940950511592098476292656145528372283644900860411339424959865436570058558219914720765653838617236750782587798280327000663119239153241346609269073515848464153032449592697968054810507879185920681020287538698551504516798440765686026345328125690335465534033063708472544950201378554368228476397942642136784926474950511474312760402266129546672203677831259471555802271298816993736269897361300217448545751707915083416128333948258546337004560251506155119966177961840228889331168548283527562196385350541882578847879309678000884693824421337677907264792473582089995780550523257358956511110621864679568447590163375420958051369842056695425590784564496401461857933802616745503875408964396535853258032244345511602949149607424144050341589211256237213847539767532942941460149588629470369863332263293158926303701325343052527195970877370238913128686000789206988205021296561764932725817132841742220939086241327759148740564764146359638207562082332062896853642276360609393246049043733275518236126890408186436968007590629487367537786050032267230897311529384626952652845863287973386671888471664805153621154544614573856062112854415970735532039238939721787854728311151131255251958909213128169840779903624233102525396072824119595172532844992673641612634528661276464209098925061728552520717040913816811874185478218559169228794314040845119753979614663807472561342314249540454451884193904232834758667980086580353904085455955782841851320599774600390791458394004564284962307027289541613236058222471276887218450437103852993552606905516934874411163268399460743876416843414519603549903490424205075479802172199220308422477098723344916021164526312021447920217217077256224877808004186723804689239497127366602159590943924433085399022699540693477581462005283755662125320149971349803715709326527296027855951615503567406407576570449695569556682063339927137510221584819778124472744111521595050297515724056014780063431249881708251697857723183379114127657829342149933142207722859875989013778035327565390649388717787981295334856180404615716627057296321568675129814946331407729624565359130511869001532473250295292342423550887179624286343925661581713021688753991873332908103930617082785876033524164537425167813962968300284491470967510689564521888697847621669636903829539611654394758399362269293267297702097805370522256101905687771756046611712187196279948971861945318690958096253368247245319400774051555567438548873775438985812299401624554102359382998711486148817716298089607893435087807364024528482015539828132013698064598148702352912339642931124642015274057748284810188564267214714803011377521179942330200707447940609068945460502827139660516094385517139038987009183500738898329328490853531466153394150387875728384614813765086988361195905595827811165045214897839008307312791544066990443357875321875859189269740589730449562431825748931022797950261131818627889460129028553897725110348417411380342840831182398044024061487010316072554400630014632583599816931268427882179162874803532671085696254352900134428364640499905857442234395648870929657990506248896468692223667655847296621306758177970567038047369296133581869615133770339934295497662332481500087241189537217132576195476571663239453797821127961900161317599400960039266628467740795808485563363848088814107788819233850647295976970914571551129577299453111858817119366797342497141127764003961478847227550424208503931217422265272465080407424377198518739656325391544533802665941903070078318084364138199249896217869704078057179597758590642217511304412204563882253029818547392926780184065890970287310523286914287783757248136264636552553871983779150775825653505319474450204173536867125323817836540900673969669618662093393397006723953705946780944164349448456701141297302199761548645442174234204507276037495712219149109920207736672815982317733129363868056809217034686424584577926742043346586125249322144992537209792144520760020030676628154321404119835954926099907101373170977251823001750206153908215876107043754332286030938419675089423865304017921766748591672765423987189895093729734164443222739720895525159411643402087891528375304910203425022033043813589987295118454221670159296186914974799815792813692009963982785952079673710066368861248577063007817670402724849114452803924836081518046388659662983858902880344982928508904281184281586247578069767275372535971358309590115102952017294035813363261537177472119410253167606395048430464084420830438808746829814969937881637191246824650040577467158757983679047292455703285000512596001427957307361631457725361764678685673528133679061163098018896558906617403812971286823957419452033590812868992045756399063917896463114578685705524659671428374892324323108760326612755193809568152458770754132283168842601353292720224970768716737821460562294016501737248418385270997726512964200915604470485195732729668212676270295692361220223101842118956266773188114467800387575204198761672925391717206104251659063111405363026107171631314370785436802149805326867661713850511889856756106285040425934079952524324933889188991612660908649310959715538996339577705946437412944286653850257973881519630250983690978539460592211403913757509548884391209210579513977396626722057316586513955821347239332823474913865717866417241481708635382364176365821266392417593333716740385813900644702197588371574601232049636501219561395025144653114797785292586905766574544844754425082622359006320984871685021870266056811568333833992958164102176478884227752035990268952252819072542268426197146056956861823116662733761972205675353924306916080455197708629484790721272920327848842380436185094703736375990822277405272666448517940820155843004352897623646927636797946891550703520666538231685263740507268498211929588294145584997988437239335194426590729713057163642769465712852965033660587393706219970196081938840469075980697369440568665845656674599555560247542173396980611986633267949181985120618514700014729019077989016887307718843983376584059758819076711775525647373068746133179106098385274419846289772070365616604146128876841486444680698325830861708197338723853979679353494359064943075893775696705341101904466880612478050452444334848644076644133393610179100473809432487215893882931852470807659846237193040254142638857294103725264712335381130563190624041553153241526397854569464996942281550553969109045343448564497212806667697744785183501305336004254698859626211037075162468544860440506126538742285199731750026798589713119667531013697629281190901151309645844528624298825400750729004414382869916657672911427657256921118381862526171788109997143909329738685787597600324176915560944408134414849558512383564570066484609182053991932943535976725151357093962866752297372433358607279991345573280429303715970466922821975146968793266132955569408382978152741413148187203487533872839813554709812432210690195889617494564868832194979957056216736615841651166421427192244639257706447762753323878203110206592673378683152629480475563168639989324176090063166448298453628800452196606540672381709847432266019116181644303539367696126075827022532736077395465603119437231958103005960364120977239078486931528437689829657571914282686618078972226096659534320240352562690344508692215432753804967052812527556749577352389179478993918931967412240103751020122357128340268415352149575134761240934855634905728059628060138104754716185519966579517692659004167749409958057312297636183586019330450119059414541070633493932539128560533835488407663610379672610840152206671680768423651894235279168739661862309788419099563228709370038329988429844077234182395965707598935708528548064594261560152059470101202406127718788243362194892648363971857923541857469217309690958224594600382730437836150675009823633081007946133382359660310296752399608772257730858893710116533032747335627018416309596807373719346706990093709564563725241417239528055675852112491273203671164467536634335559959393365481977317705763788856283347822950664252781713319124762213382619390684104447001147245874141179519408929893506993329534287754420379099806307897396709055021464135893447052888356053013563394962871328982140880992277171450334465761127581856677021208341394172742949298505095333650935251920810984909929346745506085058129155404470698479421564059416420910544659035229788094760409761576167069542939196616678780441239135388638304342301286326063846697122603910936625856407834113961423721467166087044814233926903005606897982633799483571209104399657371200147718210503431081500914763049333945372897346634600466967376555282165436832403553852304162639761549628064032314869582431097037839662890536513473587694737907700810759207464153051597330745102408282256909140590417755453637783511857316262753536143025336011561749215313554173392189636557948651422813675531133430228358812057430262755128241529999437938003015851685420435057479411203092285866914412628892337410458207180542243735345878964611964945043458953863068280657260908793079679224111704876382711803546761449153003993774008759551741879400263094197204927357060498698297656976456618526969289467626297319228070852074130540234663947594228633606357080300745549026870815524203339892252011397123909692430159397972447302764498606171606357683748984815143561524317791627470995097181260225408335919610373577348851275049781635202955556609603738741143072151729931767513818183576521311062347233607217822513921334367482688697395753730835571411112897342863351185612038323283381549752610259384113208152866054811214178541446787139598028246677494401390775023768306027660112409421453562515400885232264259317661917576307219495071035452309804579072655583938423067228768738329904394639792176118100291705766613224087648180302633288718611587448623709038968366790575512381632027809806973969563401548532660034288343933272089370173414565269899078935994939089485225532096085055573805737891848094572330903275949058305739972723193499949067811392647561460883246691709228129632050256538305178593546570761633116118496657817034321842391882398440429244769904311176633683577098833123678966992248362836957802971157515029910212976581358214745569172579891000567630286190013783615880396678726301001242497484645670100479470552114816248637402378874596784290186876096797893726095626320381981799255246198215883264218354804589262346707563777896295522917986858677195977660539746183467021213649295500521731893877173581107436833257290752687937628421986586837114653163205816765638327116325278979630594290726313735438216779767840700961211983279616983083745657898468221591793585206858652615336644159516604277112499099012686590836676536454553932175824384932573549047864835551022525471635500586911616985494592179706764029704690917027157153507670337525829745468487888447143551956957220884516101981153478655555507099116436232306910445744000157203198306248242632826759867280669568565183168928893531071334886340475643846810611585078658863973627184853467635460371205237321289171386711526392658635882211349671960099401606125813109427791462097779573540213725241932619399575458064326934413012395702949345948875849100933612775718466838432552373286733003868437878693202874243057703746688192085317572257522456547336629987153857090022732397306542930340079496631868392807993061735867217205054252691050737274117536455125509169789381816934685667994945484594514722067506897011500072231708106636154105275662461343854053373702676427524027483377102199254661226170984151771203187167840442917498849488842068627928425842614667231755445532610534951056521490035518144901388441584753469030822930909133302464503315190286219250383039771917363159796245223078241515631296563587589926159769475703623550732025016224856955121298048982860922652095466315129220001509389146838109985741811974028502469594198863950166566144873878314965518243283134605370882394351205251012460385022129470035646438381082390385330080885248477366628989934811115789741138018157213713498662667238248428039597925372458031028682188058538246732264439582275028135441029140330065466043818667289677019264298936953713086540107113990930707607160093421535864780798859766555853341946054099795225096618670749458295890326050666928143245872921599642012044039685647235751313683521444631308971344466129092055430350018997160867957004282207399545896250335251016238947328818746665890074704733265927099297043247009581910873156566780558792820461930551186263479446984379391906162537119807424257207305441575670748705024180523584286036378833598926191036954437338994520160565957282526278024318506485218592286951397875065039540960487930942738509260778739499930047922690933798507518353477896756073760192937602717048159936680606418992697270842750879969610337183296710549303584877292251717667492279050407523625880215222462733049634832661771428575255225590676792611628194395407988158976541830419852731395712637967086570743618638378417739895499532499145754680924787759478370360899560302791837001928601439970239509334279035594227983977306724586047909278678234654063247374412036764452595903765445211055888399103788431623578140188052341098222823222851277803212729318495623660959455661862231443607287924437542017318328290621599657043983201399795648423935285206858981476465703674889191164208769923119288285013960763833549772073998352191748912087952020851135720049163622346081092757021927198704503666855936151018850755392973969251405880942412194546221625564016651489279125245890447605043843208036735387591506111010068686437689597490460182188593284381580145969568226305393496597432264713644697547476556808674327887402415853728043936373338438997469226210945174377945111564612028592547274121847944839413564211471623168572636105870365449609787290293571947313878253466168435096438368102497169738669964878739120347389354914941784296948223388901433002503830425715150279670929193858272763331889668892531449516738339092642741396892936493713436343185880888301453520627163256333097679803524567488710334683326048320490560354132158448817449227553032366865787739734281990508012599229390469004376293284746186802159520316243566349841390873983062747564265505846069074103130238434309188901448111356940030134379179702792044058553372872990316989126208138025987434837045129506991672743863731507155943446854782363635734637510548540955901768069871762599666589962958178962317098648333895634537872350310345217745287120254542354884477675296970161292286647850189888123405336701774399667466989773169732370198485395600277991664013278868093765483727272253668317421838434853884633312896604599773477689804904145464065044160915094496167775613051445668929365601636497749362933849601438546554055907911708940246298552669865536183047440130520945873568643379569984333316430631671670637951342076784397347739506891477434171292736375183559930147313773186938551414367012468660847853290101156606956674186593094192900573389090207127213329915351093213336171734686797774509959309384471389616515144695701481592948058981281193686999641283962876413761090371990971982284274995388066359642342131146988487347827340494522365723270257388739776244492952618954495849291946698955452603991914148778418250250162211049572884491713048102288386158281100959090184241968962818606699607396981121347747208437213318961814180044996881364512753204450764337053151437486211742669308950228193358540065914869847929343054147316737719014091339439621521607077180406792061686268277237988978912937977532357620722025654382832407959658992833397448411019391381131477716022069346610836834107080366896922747876029641506503321989942247897989776490853079233232589874520688532969266590176080765093902820058210265302229573435394439712658885762755202773900865590327464762459664305412714204738822574160044115064424807014784264680940145433682881995282201605679845822277858967713897283198292809270828848284383812099736631096607558090299513110949923307273740076333998263528214791348217979390723032983411359160946366905411943731348573382246848366419406278316754284654843290667275777441930804200661882491905709983778595321271138615106539443008487894815332444864708462221792896102478209710898715723971785392296750204699695968763287775702086812055215788086571572070319259281227708365679708573988270740155891242994124987834894124417960859541821008090853562811007722241782042864033599066466502378699751911817922949565050912890317337273180950860914095701094794270092740240279700425081518494660543965298878241170326135792607979169758587993043263774129122803789136579078500881567442197959670377572019990670835061895556952533963352854692429150822344350606001046389635697345245848264705530601299759844940749864949137738774082461770637413986079241744724358662992161822724500547254824300563549124972043225356026443812035885276516222385551044585042781388545556317397505201999360024576292327047989099130938400951293862594972938013772169855259135301736730700366142543447258346587808319566741866048254559129515060331423130092003821450254013290035486931430039332686355339245849584266697787540608793977961659746632300199356938216624444496201697001834965400557903802456857684486023377758202543316419482420943984518761815201086763362348748505434948470737855851752081230189102393353559387289491659017457000946939426757754967405333212439517101658527722302172502569792659549359275675665909530406513995233440415386400293847081211331804146612889015156700844849906306310820192950551183612796245802100513174242061067167896641862190504468789817633892185184711132218612659667987956163008046139490967290272519077952166373104724366532706857120150355162742627053997401512049756928250266323311185821324794099084929782301399656563294448698498945383356594422720338157678870025636922257742501924314339851349446610462437146687441183941356575634143695355243723769719761334887593256814035341712678900413805934861444609656908056810390187996851557516290974476748449575151337219490287277944400093348427878025498115546759834574573909035797152575931869008381130319910468860289274022573690788537916102048129139467370168502895496389879430073861982344759639678154752533621244415157998438445524517065625083525533023093355703956857694474772166730978053067869635506066858091577368135964803507741278186525015596573426972392530594923753711789587285791871646636493037551162812557246192283921810271025865232661971448636044268779929604673014776635651617070085423516493311753316699961857039823258384517126362771958986416288920340113140543206732647710433542259656543779624755377955882262672347118597650989326697195237881653818735529633927296420629088539228131635672251386358260925378131623621384122946855263220157360920208580541097335606303336210243742375556661753965847393937299595480453370967549177410162900396682462033374437955324146707238859900988550473821171623639890287454628728073544901490405852896328061384127843400502639246061119846747187732434359936066597631229402078307285132031161490149856307369261532761623124988637918121611939332138781578224722819255486612421516719730533385855226434281072593704784422850005180800451804082972328223811003664787089935746097771725335735121998301910021933954018381323125245041624460503830302220772278818815260602419980009485440768882280058849151685904755962289120789388081930017528942588946255689137728640320093376161906937432169343942570903033132100191878883289724574959411596993874795170301052945820305237539761030402497900139163248589346280410943918970995731197465984266037649959282519375877230303290051120594890492238047782852040212555150523158562411866149898546282165744612562787787847355417756645832911619718756086291255896890061625908270573302910612431600010799719324438893848517114787624942771003173492895658028477845007348477699306774643329391626325329653278043464282477708423543912001387532320137181462575195576563193989045007358062585424330848329646770704193061737015398905724783823058068741515335509158871983025354842184733345824611511774973606567543361147522565993394106744602229475732504182919222840439320423209133684678251737806028906941489602411391582114121663989337072384892005777890046625384921696584750909821636517086243425837538551300085746148411044102957914485374340568514414793666373421713083378568770370484814624268237967683945397862248410417078056774290024273354813647678950464521713182461781963356760409694080746715682634566665050228077818318146807475680621774757486613775254659359670524162980210931198824847950985069386997285656368584860895300626854958034473089904320960660105472803500567160589983447111750583314379593240940370692361046731791222812502308552637624609037890505988108958535741859170600219708882538812720303918363811000749721629149363770227190319312681444248551941307627895850129922144649722528078533933282016649100611534567818384022571507357122324910451015954506436945817340251698960961329390319661944105258698050768846273761488632553359873183830509914912976587807203124632321657746981831739319243348083391805303881476005645389584871358209032148510034905035079993271234076029220623858968013616490347017752959706009157788888927257861924693281993744805849356959427519254505773842764034119108628391710022264712835671173866661774958141795882799650119756470977161778020300239536926652392041099602633924650754959317268013683168619942085251815112124963229127144229294303188191624322203279380419655803075064728940873620280405719028677275700996366088904033593899173596077819878351938188757708423562512627550073460629290793947351866458963401127644921360439044263877974836878750009771919399342467733118838021404570294866473803523852180658669226812521541724189699004190200647200468633036766720507867354458229489734325410909249373395838961777725137247480353878311834969909300029226555841279847828261938854854521734643400598744436508398021676601160757081432201572919673070805874341281639672313306958978856234153350471017045326346161006511792898580593406406379390198867950603969879102460187866169447878433282072650907884349462501814779967601499355728513947993823944857371465719088525190260250422731974703160402630226025164426826068720236754026747872624164275738469691969883996660564256163685272212780369471208314000107005994234987848780729054433999720083919400440122144298805935605308858962962941799017022774166734624291926496120446333596620973496070604840810359446884995438741430792965064808828701697742894133060522203777344521934557754249527746107527756899077022193898673999264483545640699836451308312530542600651174595107515751113772503257519804859690995167164402747370944316354094843074408379708380920980310136130233532233580381712419059340433266718286644369085147010591864199412226069920630603561136398699590279989501574342021984683192208776781773617505714359176463668813647324060821383905481225190542091205222685384220212027799927485963617223950374097041061996625441276575708665614727646387065388592426182801274556893934557858705572989433080074942708242368374916638203393667904177483613094672584008107475209745776240672657141808828598983728427928815920470168468198013960303613632588595007036305475291733307164132284836729745232376400799479571484127865439067099595007431006786382329991042536013865257587859040895683283690726849923184137991333714307572039519954735417988365834247094063420629374912635297006089031905845344924222401157510215105432392909573236512402189925127884328682253612977204400521281236496055420195040578028573602747028853214796948776426334223831396571644692377172270304665772145807225943349444375025102380779217221400843109439352337595954230997192090011885327551575957502167667928509029700110623827597409259005588601476322299506835703711453962731453220398410955551600162910416855645900940349608330430313774218536778805822330461587949188227064696484708898773824148829002056820259529147279264792627172724286789768945587836641162902575989593295287724610037936004416596388122009982382634114516885387918290368424544670971482826363871531035377774078376327097495975726373769679508202344642784716549343140850653146797817840504552181653738582595504311780316087592688633963344856657870395245271938933646991146485567489100390131781242984712840724798425638068916054431683712832825963126147663812408788290481598497885154210158961709294333557796185362583018462353182520337471081886715421648008160587377642412711335920130634375394037846191779273183383728174460728200529194864066773511538676632154502670266019254959750537503395296686839557752537603950226569079608679921456004914235510205650625084292694773325114533451226964942104347355655918002940510707540244587886174903374105538034246090275086938775052704492312820751877709106945156385594936422891543316851397365450510228610783432686633473039823669186481358694501979296362034970265538893489180795595966890356570588755867928148841133594054103809916937135798701446249774336651114364559086866928312775651070812178324874673755062859637641477524487165078670681920042194229233944662215735460531545294385642740829674037560099173544109406758775901859019383480228969914118601055067394866422549539604758888933724293557699845992561112625961837549997400207262469787379562181498570568824896577691480435591383309188813900137654892900463468985187516432798991174452057439849997748845059077904369922920359025360354034728429877664585573659124860248506099834879522020802785405550186241111274540623805971188317086539844610981770192370438618897239765214406540687251917069487622248098590496735007465440578741660118151680146929587576259082288511100989853192531844576475498297243453011838641665161723504433404382800703188932701658988830629285557760860855848762307489408963609172951913020640074427919147733739002110700561147102392006509029414708387229179227518176521142957450126561540511118400367979559540181673883728120340727164376078673697634710276103709646265324561214473378006483018917843388803818300685930852706456828694046191668207322189967255584909327841473112953886937004272410184714566931302064485657339898314618687122814661423832872404236192557221950750635668801751333057520352766652220906746723839025444985280043795377034853659701445783845260497566504029646176288584877889399882836204202374264745277386445221901042607599664081138271212279522875660127099513166885812632686694095881386765989065487158881615621149787569687366568988096578498657684951086482829936373877242120452872165564584282812019816618828383536722380803921899186282344908531056331485582379857242747335023276600591737054266696121245517170362629617655153200556002270369188536588683514200007573662418120680247188700673701930400401877436218278600775866528800046324644675054712477145242580677296424801290668708885383003136132459066444171626767920215179125072259629335463787949043584320730759000261810089263771977790837494459414645598354969546941566991492415583086063275588532706271620896382290692596856727649591546431169500115036628202480907352504378353577151480077177477052828970440024030248973086580205728949650280352698595672851008312455686171759482547683374007852782251947169213362858238153210905549822641234381194276647479741697799024182721833995146443256782467637245651890811048357885955433287835375817054319636833065203826608751371772721029984455986343955541614839966156771612821981989808473616039337310479000596643604558193818447524595950071795522598936142809579027442098187305359006895386094159116372004140848567783805710440269132722509633607028212648745472968944362666614197655941497516817992474877926596395660885313405307736047364186056307551219067944175930107019497840554461247676049649207400307249780548196199962615252375790355981502165578697445176933437438246766860027899827322697409938256254030206946234188627581764852105052255039702903145247195684432717630108620880109135217637249683921653250573745396521258398407491999841751814574797098454666611773994971104485419140041896462184392356837202320156480611717981355446666027886936794135000582924008734927479768731968233481933087220590347365813319259395252733584327250264420780736115169780306228276765732700113058615805177201185888224866551212082116607556238731990727090456456300793440270382844764314343653576095718264056134536187231342497338527843567273085897202439431546661116703229501835447419569993216394736957933930786472184849861402512704330160642333619743648273202103446880949449243925811208280801829378928705973825738361949253242738018198890421355190876337187754299378926717164437864350748590540512268455781594174305700086642888182195468623729724411483835630596948040900791608978193527192349546795476508706653592912717489158860310749095221045738433017802588271143693841520641153354904700318335327053542159282960362777061565034914365390074919176167574162068663413561576672061191941878220740732690053968546583052894110724979805946198730770611796400011943124806593149327955827443964439413793630304120705485080036682815672797518674029259053105724796729877823353586401325204150148967152965578524608940788898777836367383578181019438931312939520856316718505953282130469774234157863185282481211584455151308453443224980979751637340218094326987460430528729288290697719450672617784966541951561040893939631378385293382745174495075069706843444745592094511232213608644920505523076433812696562178850417960845147303573337670399201432418094002522106669391204842100513321824294013490968945892824796906543254736020327360889690727241538296418484880708993072303499648889584134908123930456162021599846086414907429973343483844264022340565502395027410448366981920094852387453955419892992622078102831383658808846974488688164550403666025159552651716103122014300060843515578539270870899518936567383503963698248560416411462766882926950502489741520291269412530675360988004637684487879969908754451299703440936835546052570663965973303634009927641062320623279621981431818758225273580951717372887187430330296982138345917553227353155944074680323882336281265156189301882223574013145404035243912994475533649933105870695450327026054715993981245517116793639671183246730197684778592415911595492089249230737242364075570327415459019385990584051799074880377682588326193278330598548743226247503670268943738631988747691328992961475741967784362504002651912823188682168989761159952935341689611438875271683092066687621308302197888648519451937998962632675756966208656661008063790374766546637318109556704935403811456664884311234111515709335967211560423183207705010250890303751360528874157947461694265848933101390783404667390472422829767363309824705433413545322464544670975636231354597006985793953308588575203842293818092010790073076344878247202741613659274965486908004469940159334233810279504273711127543378881590351349998009319144743784227932872106978162852196959128882929696912667592883328464501209906115295885160039429647318803037416636260625285234192419724112096229432302288555953183377027880963570170362205606835531701684270494695138256002492554730917883871117284065574775531945238115139813572853256589352269390148282430603661644995095570889598355686946909460886025831802050897066025630581719999064462479954293519238498851698526510458895774528879019015793612452004115940105872886440020774003461113625847513390898157654288991440208331304497838251303241879365535960240726775158955105165579411075870658564792776071450442839225927145966387901300736719544178062273428399608768256496705613232557757659633934895052325384319725990301641988075260079366722322688181032758883964350807329327526608870831834052197192460991110106367247195439289345928515690738084881890194774037767596176373018141940838845856329883757146261097912792043967343544692420517204734957084841881768434532201550668126581292226726252395746404708011167208572935055556659969289374068872481760457681548827005905930848002462140034477583733598533646778102152921353352724739835507531556461818269970159787255376145704844860964372864358794000241806279395460023329781665250407475502707268453253080713829074988834159534243373342030238427386763185784426930900868234753899781758020889523895352183130988418673802821743102556698726409970958839521632792441676186800198357598227561758323356809452317360692632354618250207633817640527621303391848198102901407522747722008325413685902897293878783651768292184842629250273422388740454047203232511949803123036615133393512978714031209841017488455916299966885255105211033664497104339789290688168897312120370236984947508098481923226166105294140725920960781707765771978089988829093532386283640116634660150096275998291917174800346237538406256486368544513006822261695159828391455956177415708074407893610694341499022033631092705332547814084931770660920329612846294819483504839291873773644265423265298187448041382434988460214091298018022459640039719829203952678435220126704044878846530124091861067462418909495919239147515214572153432371165319814921209910068956988794174043682612275650888679965925747147527099517293070286761229567906123621943505914156838873238175635571551232737674770139389213490462154087515612144259039774898180566803799346117861738545153567535403266824330823576034721560983682123154918467444356899849028172566419062113858319264676386234633168411139138374986030901559399424270516922099062125862577032771321829413772035284999547206402881346044627566385462306525942727609348576611381361099739036177523600471568713589199755537947530189517737295347712621240730711556205408127776654029372866738750829678918331086377431185335360848133150987918593765214087765166682741118564536336054619851691563171906571446257771394271106451257705726081356644621211691175685682866747381144904987088018198986972128117963422176772463806014939903444313254828071438736432028068203252996964532880360192352480276692576090936409103867527524220030329133636577395705127779414303637269772084862903614177514896982148343025430464876400747820405276116334629429772948583334351420231791113660375880079175904590329326249034588309669431610286666071371277260085358974045895395852726476159468701668648316667428927814685803497654272103602019818120675412471239507218170058721090087189795876942125256181271752831010167069853324378793307526976426249175839345164901588782793216007466953543627692208036427121560126439109927492732484236925115079096884137944116776664289011192965373244274432862273558782277724491373835832439170660600595571624477349391834171311644070797603340772856759305386715328708599634923493348506209652228613144501685351239590279383276524655629269556675338001059030350481132630278845030512110324698853716593018450953362754810380682122596483369382590683442639215087088157288745400342685441820619860952489251772580082027920972680120618068562240729740616914309382231394864138376590248668947218891215015907903442801121562167299260322603453119190910851201718147287008439567476895819501328694055106142416309342206849132600306657685499180166311735100901464495708235394378740059517808230373739927126158994191652108879154655105193978080002202361346416584651457086781462315444395367121860712692076577327769966166416862847503582451100691012729128728159590587262816479653262504280595369489332918836146675754926478066354292728050090003754993348558732835452699263057130390016485658530694844629391706250531473734272869894059177713589604886387297402073129153633660357063122380408928026447091469155369673498889438606532169214835966228727500872804172788994954885263600172948238429772601415666909840059216989845736542972221672174985480075861327377994139341554949677545702376006651044142641704355927651297382088492592597325435691424655726190118315066481282815454794813302468534966306303636767509804254064623870571095439341479440496532713598002935270910741570294211662674792362593728397194043695489224504471865545688967038133697186093969865207873848203267625491196070679609965381155260354010616641198596372398757897850277066098669383203949472948539911983228484176589638512808675808337167895253487912161842753982795982547722230055990256010830015038359255644651489845591035968039951163918658593352529914665408353829798314249304492393896536928477719262274943131855500646190924889481741551368634501812319946624749505274218357073193637924565962489342608162782998528028860619732987666563845486644531630955037285843576746058571452171511120148599395225630369151927760564520079396400232379789588058941323527968697771666827042124210829961012333893451456325565015302104136792846799552368875664856086531460528344508551549044133076713578703223284576543853550087697100708242424725866623372807997913413751595996870575838502292733263479461226111417221732912281384046264806346774625051346341586226708371484922231791272079525331092427823432323125777657993212785145689736601385202056596506938010448679618394081710308626783804649188701932416350852903053153668685188443347847173568756595589459859597225523013928310981842205300844152108469719406644505727049837146904418545584788692300583585425284373595980906834039551409955501416158670677195240622618355923126425386261854025312665340846526680843405621366005053645003499020381781716314269926260635417847144823746209028383634486587206455197565131563981597547552483654900274982921451137616841458108884937143797474910760216064782062218941738744445973970510753139988810599875859420966090678776869401043793989375798418072164589888593366909077121435740402562776075612863785724949672653249525596879126471735659460348162190021268404585352830215059112472425021544539086170487893394027703021860933146184846572942929138556283738052292338511785009838331382631935302684515607104226724403262986502960719918182910904811421703518680798028505656010611508656398855133392092053238507704181449657684774577923457500407948651047080395071200841312907211739243312305791431806327244757261655085491105597759563619559673151603851198762869562292539827362498169269508602122241168940966327084503982314748115542287854823773686326568922072110202788596385665307147603903177116453435482056617629535871582750406491259810295369716576101621380330878074404416875684817426197456684389430578512647201803338142101170683216616878759652039415054777351487937887421540752860594422308186062384846414965889621704806395691486989940746495775431508597676666745114209521012735791529452364074825263261397389790142197972571244381032439406753809863950033392126613648411397212820438223477898708372767539914106908349115292875040182211507718814691912738032763788819845965153543922989248378873194846656654697129513576093649822484792366930596336972871529005324485027339088064094547227869354296307447462407391127608192360391455739198765129626189120557077922789128193847864444743319862173208845919334363984579637946112376084313326403347133774934867811251495282180318152701398342926827321845592419107600178839947144570750616660582324342997813502372060858429057023406357963862705622095701802361375372350247572012594842629850424948201544110815120304940568149545656836275589951335027317338803727985154791807410527914615441398244839357797587423242849404218287764722596682087529167726943983684216453028545678139872359877256197346705022408592240896560514987757189977634652958603970423354856763258007178731362351486867652892500495674746739542744606328292988215565845675170586934295051890839296517184951508104214048969567618274767261547619609962294037754183591205898176240959721352198422117015253793771575697964101634240973983375253581309573601397890177796638803075049265113310660420890871391989133977368738815747883300626154069152496617924767874796937358039772680458891258243706919080575112123879415621922388684374898361602911627616189877839050967851399977195864576544167409646219672996837632272551757130554527727951448033314676418042408870007563883406231811575820798571940769955645329745853348606816491595955049476827870148598922382952537754601577978910140823669183524229214771033306964121499293166272949019976918028625990315839910892361048809168123988009221599345434246044695904004003602724577397110536014007062449961294954872583977690765359771536762176815134131994215206219424430987849837815354745713320711897401229516570968475070321438361466455144794158566141428426690830412599189149793533828158115898519379487884131853630188381868105071643034948053963504400608672287277654690048947780118292385125587811140243796457108345311279518928368416936207916591397658316283061193420652418198047623943907012213594166633297039326717269093394562642776433690761138098320564427316431207329339298499881461735500920055339634593585893431994823404817582421075643851723707070600807455408324847331301325050193828012374056649156364828295330135797812535334119931186966441729186797858988931017545422431314697630928123501452127979866467376444968671152608649924252143571209611800256429113401554617523832245380026488204965651030103030747878536370951751766753291117630816955677749607490246817484850969512857445683522969132559318433488306252417467067759001533488931958197844567586801585009527379774135388389151614001475489390909709215930151090734954508978046354780071434532981405446765418131130148908808908543645631992075236846702382705555422837431663901962348379945974486677794906890234280229442538209022271106745906255801720573267092783331860428299810477536037991492065324886961188180717229284126644312575707294009546664473005554864156512748291923300059337821126592293937763229239248393342618729065299348221148874467814221039869281968077391525573078149803712360942607999163381239544227443692275012284056117536227246732345654754464476771856878342997996935824386899311468632590378636235286096199914547936543582039004244317801651402560023406023183746750202320202764252930598663613928417388392166051273900164250448950140989970075335378095345965008277818223910817702474880269378857186949981431101924761739067006608023774060106104988257147576714470539112742254984647515417416237371332727447407398308265445349822020002466182283402511215341687429833988750710829627033745854030585075207552225167676483285357891029760585076210344708307128508566021399402690039430772606686653733460136518089526112792159725401401859137091799953012592238011364132061886644081450036702437790675581288698449984581383156570431892416938537806666532681337770880998439089631875533670097424322879043721563252832649995914221172766629119975576900769462608652975221295196481022712012170387243040672841945931363963167581718888870565944718077337202198499328251904491481155583328965256916838025671720727343074075036869073505311777612748020489180851636186144876139852489504369386404188174279243249178602873783896362046996289506163912497700459052557723106846337171332487363982951785049059229582001873850014575461897190075381570367241883414171436095046265405356502243065174206695057094779335316337303607018408015856629946226352516172811571740806962987604248005748514279940324137073705643336402412193327513571133081129359200018474921230521665516058780525828370065629078590911593179229496277140299401478268508608043580642992122089243248621104272987131206658429706677127372539882499515486599905261936855067756378848396125560840665617127933778167730122092788099490765604146239033031503756593052944812124577327415419711485288050352050024713634643773613243189582073005763173790219707374597516006090071962336225002675315357555891504652988652418937710752196205633530736603028752594773827491479297161803176525486141301720957434512956116828501091820514654836001911576419100476192832557770556188936145596911680281535586265435254596845283272391858246511172020134321226818220341485267145702151884048363201833487713435582765506472643565137409490559599644913737026429392362888677081063753765565792616435661922464481856628756334709150183205172327202799495886552272897323314369594862807201100633991362040234380526940553876776666800013066927587804019517727817034086901684520489807550193289990296987097620123428089471932837617612918842685285242601828355341322731673417921518006320386362427148550077000505831391284956282424227264147317309809857452840595340199951908846029588552671476490322919094607723177876215371689056959124513096242875547536077615857020940599386929305482452353722604725391348790700133629602715230906621988564048177316941670480705690557181160780251040424830921912802493710588820784840700954535712870989136659691311316008098267403815336191702901480551335451676480725764637518845432916602539941638569152014967229331346767968394025649116804789432348047829750683653071592704103754134222347798945715344502853049729712775834058481978934630062848328276899771766590343253071461109567009876909167810819945527022523430174918956851981248481690151288094804236455018249500879643073502054752736788361244960939394658873729660677415751714377876933295255994375267205289545356797199915339793397144157186759099074452145326551226168993075640663836110151348833841080771436564622624930583909920061958273766753709911283822931331958365988581534638755469213425818337706541260947638249540525238749099525880139043799073935816814319147386853837188652588018950598355533621831537164483884582544843425539372420001688213675425453506092678442052650420458642451942646547848993307304090908708866693932342928833809588656398904538524743490701924772746157124357781573860724537995619955762238038691173573865575669395804224043565092678364696837647803007145912657581236884000328755401739961347959883112404603740536758064269950250866631447019201917453621772706681557696676928432706274857165145910844149500897248765405906173033348673974064983027006732600069547561206547068272863442882912146031612917760086107275110367258261381156359253133367270111269987073551926181054119698343261149719980332554641906480288098045769058382711122354687305627740731195849141759038302969542620258866823903412240981673121623593603008718920789721070744956706525251398581887325054791009658701591001684278517620951268069395916492122358391362425037374550179536688956875113631544706635678431565069781654205359962689913119931147510978673238700256923804984273566116451774816643273171534530864061298539158863194509263149370885124291982671030801626665945392330777237317046610245090694991523694906457607881896194171657748621093585160954167157091619648815055593526747240937664167399045186952457289769467976300333576071071843618947299444930996096602584870542613084430802686539158788308341609487143592924559425722530907571724351740141035937800097308479125210957903279892090443600421197746261232731137701145529327839064291988021519088606518579694513971118121734254001381520788962989038244017977932901200247494468831655529524319385215819491462093148272575074736949082120409466332118509657733975431445185288734583097387773637251979824395584973415399840494265310586170713603803086265143186765344465310672058747278859135460376904609552055981164947348524262841126748351355549220932331853092950452318350576079920525434327422393503731510544946992712616303136905351142919278826148320433297422119288631431316512552425462920897891591692053354128274377403745523841039400854686121654180704267061579629528920916604049816257232552326499138767604525462965744875625281369826634477410403210181693953247035688978213347155826423124906610936539578594152284471115320597336702237042987408092314512583980658141064645507742216134272193651560524539266585551470066247997202406423316595547477075846956263905310088363017471339147314159151900967624226160419142229078023282783469920693837326951042746883094023136162846501744178984824439380869510018194242441046659666772112628883472118894737872760167712460877373029415254483347048999890068150002552849959868370467908576846355052075423726054570090883787951366615997353121312929248359190561934616116799483144209184679210996252886882214642236305184291076079813730262725233526049966486186150205931290809096627872787959994079483630089973425721243078201531992685903748162567321254829571389605874879884956106911599040510892620574413388925166396233519027977694959668693078920203302629425162837327258520209333018466467260499131871838475569891938899378022157181837837584519686315982668492275124154705674003614120550952067649021978336467242095575626947281981998548417351262009391662844667883745331219645565806065088282820473989258026368830063347599049620817734365806619376774087722961727192342940319142904024930600881739020672979302855662477293781981839029692656026941121335439907392665467931284987852432228714738485802068441689357049043302528053430797683650802340224053708651225480437199498870148967819644738292205423478042879337630604601534294393427837664021347198377335977692640931047152285749888932532889125890793734391516828218525986744314539766953386352189109273022261145001544782022701015834109343982136115624428467682397230675828909527850251770918520812425183957093528314341084139373072831216186263242858026619516590229630061978160766115271166135246623658755229646525479605136100952439611807807416849188188663435930722721935977493474413448120178292913027464997184373445721171028360542047555932801116822093327376114627394369463985563937543526448299554487339452074751124826081324481280532450898171574321830849629401954908082800041155539685153615843046069470805325677371811579859269542108151822073475479491471864810474704603323512069237590997364621062958733268905899287419843338855159729528658136531640648575641571275204990895977827600423597889543199960842357521758418141250218986899689938694127526166520888463470398142462422787257662828127539724675721016193398538032760542217868259870221183291021275061861454909267096549437283771456082469670579747099161713461126434526048260667550094134713272003849644291076521264974824628580124597514746904343856332255043007296440687822241024580028998972598514885750722861040217206133323995979851482400316655213454800534737532839208126540252651308607460942362004514062135889485332435057718034778593630589896671798244988925310768570636382048431048690518847268183419239961673475640207104344753742588471711336184594897855391982136043504702623122361947126270478098806774285186615112409608334633433231131760363561689529063009785955974789109056046304916901679519690761997457314607232294919695961759053542755450046618907644984217608830726692331506425808289933772685087491808748494652306857621605535994580078461488839748032251164149723343251013468930492077211306501849863553005836121324831351168389653602626910689768233904229398107116792631794127720277505422198615004653913935345388405359438819514375008172147471578417286302389018610644276024418016767317217528923845066960339483879409737127043253786165425799337912329990362386889728782553427603385275223969567494995853598264457991919037760308234559374045803729405832321993933464489304617141377221976037892608696871272156087428374876937582882385099594700904946921635533871919107777236354440624186917568561182633735711179528719273212508338346802946913086066832523463218898585854968898732223778659294171610400916046294460852416981865689058406265684301278217587071821349914964985934338824283836191814533776145932927833171146368676259973319187669681782916497815393215112481762156846196986326995281341379722183024320569416806799340523337516471231261930706737114855924893484990051555833592617189073025911606305920214723683014139954876888250692569233309835887377878884606853652782899162537937082101820629491449407801408969543693884915604928822175019158261619170484375240562744963507862474483310912490216582054849414639672103416294326632467588939887409331062983169663151259090931092905858728212219492473436175465325855084377970207141240456656988913094851477449335618692529938963675702655650723292972031929670723949916748977799917525893264903850288513010144719546451792917784065517570789259787762410096781091582775605035662646055833202728495453983185657978954574293582275874686861151961041814074618650238029958257106542682509269389762615049022253197428192814274146546794770589497911640359266255506944786641399732630982962981145184896880883680468149147393900229691219077521638939238680912907537768218418658535415766685838265894414889703175119352105609544102773346903291500806583437231206074340261213258755299215592327004424541651645337250671420201430677366475298945651826951909330318717741332958836790006559466226050132183547214601023188290021426723006670502495114276092783249304470842959414382261480514083543943585451106402771827192138899936061338839346817006036544413473145197412684123797945152010175590532980282779674053265485679350661749142986874714664814611969974144233249224958858606355278725214297697818486822020031784817701698557631549046105189492761821667698362066571618345550600140134095760377183776363799205106987912497827004763764841746279606725298516522739774176591365802857610920759070991624684568152067739273506882195679907350100773300280824487773115293082662587153130511010393810119065096556836799001325185930744648311123633156724093922064157792169653446366638156286535032092079309722569349669207496448977254118683309298010266165988162330044812707970841185541839234944066219283088599621794629193248439074298189805198057809948543462482544925920757641989685747594105275096493593000791190211973937116414308910918043746015166004179791007992861327621305681271093360733562521034822029744515278769081231243855893714605492801099645720920016603474185484015040226108352061612635186170135320642128726568611772076446444369054799801544911945456189397173382175055344869542072834680459681757652552388022688357452252910031113664927481377993616645057599609129036543482654428653162162382937005079132991637067448317755492992368279976757332060128441962863008644702814618800201519640070222073918660261370147219078158500897052461770930998753077630875872539546869190714997387403132878884081662823502593175849421425644227724657438290238239186695466597554882895756991186916990765272390825835319790833626712301523572984110228229054892411120504610435257142915518767305872840201018486016837991589575749919472965377862146903164392331090466535815435144994788937631723567964653954939553848993386808245517442848631198172614171913120378843840207876551200988332429151154974385754875527835390412348203275148840104052212673442454140013020122594384845681368582244278311393888273128701827097389077767489477322553932723709464459265541487164479447111566891538956899622229557840703852084531669878367836969860413922055425247259386868433653219877395951798527111075499948006404957711037568534679223798860545589215476058710092612195510287529752937498360245044616414452617943962191170331947486263417637595420826439834664527963997832661885919945898776532495858437781522851881230779589482447060411898310112670154652566257976159373285315681922180275448088443516376427171002910691766137375792497996797831509593397861497391273540003559493081641627134130382261396712408338992470941540406613432347334952768002250507649874639545760884097678077803261288672636144134849757459119171578087577882333951911807453406132833669095205572522292110391319300364931640299124078725664783561946167060877531168203823561656383004218622064440247600222062551723452820349859921269709202977541545994253981908618074894014179958516520850118954994117540384851141305772309571963880020927111355632591159300136877738012392020315994552417976294398719993265174758486005431773584497333526790509917154151728517102020298630202650717272813257468284649433272919989286768120936922823990119262155892829743326507450480290633731652006926576907013785733132793892415745125177411953404747814020394355797502066838645251069912792615927294542462994789897872997238400639648639792118968110023750912760064502381566938009289681329475834611816171578005809382564154260877672773453371033748387249819176114135007103231990664045180318297423136852175796099990229377370930979287035121902551319319700415902462434177101146963293784948100233993255365171408851017280205213225079787149595561559645285500568822218143401887889187845962634279259050180721495518789046266401069367298403010194637599741207184663956232284345643742548184534082467521673986623826581432178814168154338577021894956119714176297982567063899773739771687410374280289687190450037670353079109891473323469975000983264090134081660439439663619038013612739678846074753917292860407987706005374234515215819612002990571438034031350744975725441565718625872353067491823457858738871050478869031073978468817842282569907155654244859244169089717059624953744548121627233619857255141870363472633250634201358011838648786344314004097202094415591284052405909138553988283829602925059273885807029542115567280670897868641442001559050283796339702773805909883156250204917840793389542077820009039821580208209496220336443260150835754048670482159753801018744102352278945077424695843254055820558803711117685512874339034627874005905918362287272772079322966597644298652605921259876569180776386171435575381261222064163275991485326300624303947530452845198487796544509463377304506796061317329905019427704124039729404305761943829423978661369979623707068335848388070733257749039667802882681591863177852761626484860753419780949171097307989950626431111161674335997029012631763867756602133863023558839622657559912378809942623866129778713667671251969110704981435018881491902855263850907815773328729581740027742612372331320457791138325100313099807722306406820248222973237093724110617326931128348743569848690069952736554801628002450653020507072206306908361494811623188787686535520772350550037578062143301102698551907350032230037606404866129941743025086701121754296240897518892196867972304572889388129004475327266357471050832897213186937303487050225460446883202054416353673850096109212293901510096719228790207727815557357281281962123110225392335304020837689119108129571304321132728048998275971203873897097982137717357212629498052312494550335116984379904423403155230952558491962537632142621163337439258736485162222060505224555409373072067426636680434330238978785371671218986721869600324204562205304381369800269091586289165300514487752311091917974098942443499260190568805056769775946684629637831725803095477107086003792206969675897511599372882019512404019959571691245854474260394679045777797127404347727992419881184886334853256314963644459989098404508917025892082911664330751272259465969599422991168581287936882610601636453165589376535412175877316297083214136283966312241987001065537464052130596503646068699475777119151305836222668900325417148379911300770354361973536407438293076721466523573922953173136988303802719149508819944728747049083453643088855899871640303105348190935975361426496977506785965950654105109970937238622919704301635699947223458061515712020537992117835498098530399561310803633026859072392946527212400921146364675575225589860147418566900536916824333334702233747338131188937515953570730406271404627531581692551514309297919929489326807830036086485843914855603827277062408290476732113565548497900112739897671466030544332906244080208646364936256358310888208194842153726992788585542068963266382948076757534622737587752761994332026940142961630600622549471720678602815668889074870460739523074631906252943231437351146980505617298334504938455575503709785689258762869954955338523141337384434293780272432701853200169483943731579750991942279927844541197379027119472874629350290972047336624586366582757432737719374596444685122235616720224389469616373603255977255275843338346887023521253795683976522937522051093777040302259400264643302544844143768927011567114231930803078534614445326484140324113332690862305242948935454020770376694878605342673051574790492662358170699405840328438315523251246467639020686683231449103134138027309454029604344934230854608597882140853608551786928912904042098216728610982271048378820146002278234478810889711603831272513292638801274884364437726058046392677124514711151313219472818306099307278419820348412409646191687931849755234671734565100106178358068062594808600765582299702475151021373302008225100755837637772559616482022900328990874902307579391552613907088602586117891783911210401378557923749479148715624424580208499842907034425103293050638018502586400105932005891441919279796359070417066695016941929918424075257034979791572573712255152347678810465686653375637677971164032294968702432194921259927523422857255242757003912928668101474346980543685536639670250688595245149880896944931106491225836576997167233303940341927508462309035777986426295298579260339902314237323475809724626612872725285566956284950449826717290633636436574771627908124091190052841642895164344973832270154766169643338621671346092027018074765932631351263534863730533376516266566778332813340233933666797033006506087218689818309572967231017776705343606947930995964340577019818806676202884207397192950109237574684558549027698597083098009643733736294227147231539439720882756287193715557610941142751987839947219421961513126112020683734472949562080630650972774353797716377209016197725561961921298100549085649508538696242125104479784566086796151126928904813544378933173277432230413647654832352692034968102313767333906234277356716047956338422777777956993335159694688410987044516988684043714309933604658290366121345232907867192881255132273390334573415494856571005380410798393894615575397848329249989778307788610765274729263956491456092551626912985507099134045149334029038857917998260320781737273972435975265858164743600497081600001986327324853161980862228278003273435404684136573355015148607107682658053261127987905729418713899794896948194963934795425255089437272445278259984017124432695328133259511355781251427443093497236993748526879187642672970030309905680490492561924689914788864349999310469679901035093521125686170844861461910037952733730416219594192903549543631471329826932533692673214316068016164609256715474689828753136882784764070989696701694583750911444155053204472534392837068036265529789656388244723969527883732414343762059713879460974724793995201050750638178870443697366912648771963698515018030306260463287078184226857203386255221735186367386598585006529834428930334728249386745224863218778835779824369626872975591878858327029228177125620324911624215270120865007901047652460808786427174261689925266948111832074943130553515515793369388607077755320475782266566371561036478227015532819417336118917971859587184782433360738039674119652446160366499087450369867854086266684797371309730555342930672598146101552611470618372671226324347913072237143637934018298248849517768867770849032753951860395886085402113526258847417155105268133279381723957512102391484386527768626121419756688053512039595871366310871501760482605758703733373983841880383980124885056742206338879782268823319740970338346474359634078839664911303075534734423539945425013015422682846209900852216455615698106577960916993820793761678803669868197144492614393062703212417592175489838027169621403852991689971255066387592593981231388885409084657773578072138245024587473095919910349651334126503899113502604459023188691934969007448059972071697253404179137072003403393413072999261045428041127475668243298572803382729259826465353466643581979381943411465893128757422434629361583640484355163505669504930164937016848136019770315098117759499269774872380442439153163633700822233419736803246473922571770044953687941863583168625807352034610165758682272735366601019144684570678824525771718465193097536056919934959671010639933727561453017660174398079907914360338679683158300700910771023344026055994568089177730499453352190860260277798328072293285396377218387745037152699686232474371093871723250674620109692026980701747161423382216755358884614330952596208810248834649583411488609674778920894912622259689058096103988841695934539477636617546334241895729681444599020972985183341097987202522032445641365831179983438007666450168742236849384275430538101224516614978962760983594574618518913476734609865230688521543565357960816369274272919551187555355591393099087112062661920874307708918983095959587871948300070980562567910162127900974811608332693276769967502986345431249449307944078651379448538874532995340291325801400063273890846649708908834868066942077558517200786240055205305031443854103951122840714957195536899615613221458398280158487859285242281083236867876885486471134781764751075632249039330456834525117306747264551212847768480530686405951823437429254294806368136387769008163733582951086991974057389870240706467856491885308144285537542355646875487514665942960580042457786444292926247213763492277819510846010704057986900095014076971818874681807840941554761514380950465894705058581300819659575518506220877968786274670458376760184219519256895351355410402019615820324949717716878794562444303267621824351678599286105563776938908436504831251828213449775470819238401331067109674906956558274853374670377751366507854122540378487458885383749169875268616413467249173778764390002188500030251479292004376901529555905723727031238975307787469277632427492687224668888890805697096237609800544609267185288334945488415381498093514562475895804833110058439366036280535659001436289372571588981596388105332997030451350654093576943697315476486310285212215385194777985970840543247721134014109319477710754611383421064314436128432682062855815337626582263041946238685452877233530682437500966448892493827783912511830877111446951504358112024934168187932705040813281440730818292091742373572768271740196896377773971148069113505960900016179147745995068969012460393308044500035056420791876303844350530222407066942193688318860759223965163560904041498996482312260074309168677827287193750717142282048338976891214138345843898224308564744130835229085888509900215668922586893384709487686332302446810829326054789979411460714164996755341180753441173609492654985717424521330891227432128830269816625761599174471928388038343804424533045384630986193076753521196062407573093561321349687125215391020596925338622332365241500909351698369172107844200798827941768807792638356417150183865452590296025128031428356922637806869831903098508412631373698240878086909775713766953795878428698740619766018996716817382293957288819256158676266742354434316375329387007232643636812523506623993795052914966678674194296460145235279856450070323023660680734891596990256761184028986519143321062810613286736206100029749947087404485906555870162970000814866184005068388724585727706900007756399944385415458737727183413855695477178368845534943804540876052106421096600860297724828971380030665116088733114782377666712648857397459209137725306647764499047833279877271317208114065816404333207546009887347789361876698324961582798864613895486447811746032355808008305006417469975929973440075354643251242716892107995526701790548500466135601015872721555762436647310944566596640314697929241828562484249049239861695867261427894545715915381095498714210489976153634069448135733174145236834626629389821248207363776051699424343507923393257980937332955791270210845235560692927597834581964136661653057862485420437102360073020712607793331844302561206872098516501785298789853008967824168333395068954741655600596289105117443319011470869911523351876542330841838814725344809453494677776742840076150031486123665578814105590082366181492042330671267477945963207770120598063341890912389268889431883181143102632771386148822683081053021836865238367360123860741872103167851043862976582228626594558734025027527969532123823147697547081851435418216651576000957427427621568080253016918751095197383201968480491859424901644063090695540967744047133502858912372719242571413418784858765416451281955053846260240603437706936931074169634337247734611508467179548086055631526921519828641072416917765315917005670159497560002959176961853911484683914911705104144210400590450926327455014511756765083073369370226706079855008322125818597207010618113512001730934420906678116347166057927117325146795090536906383013286682164354630127558570116867542519125448700213778995075079718240331372608579987307766302631073191395071984027978914670913882228002780228543722401203729503492196566286177155411948934783163461174108407833377524760301888699214482372071996525229969558702918466777280696499300458366557833201554137633080881199020327204800980678505858125774181025847814944538824802852360372489179564874163469667631602012602067946698321106780372057727082113919111469828652766658038525542961590653461979918901676900008334673590468509139806359813129478276603010265949866255998134535896698577643682572007513752628536041555080152367728123355989355157605648273840337380206645295201525339575081206860293511695039647405196760839909380326132696631748729196292448470683502903950042730015654320763925686232708849199583515638141331733688720589390511375773799518543933629667065284753057017726604125420638613383024334543675110204845208256417547077442311839163516423871459830732924091481335331887175994989919336793087620180597002524501299049779084777453159069878423958302925791830108448878377934182468219296501591395131397620856140615406250947459834495274768100426796628060363286536446829996004831384113954810394097701413474675983084334358523130569293819340979912247033096189347460960636769928660068858075108660229361190542507479561369136701861505877069657383299125083437426537752667904065504336107438080589941041579107796517643835978843984483964735907090238371313515816495968349637838425985691283688119758740221589377739892850541941532268505529234928183110502003804991157664536921729673587506792123815649633917705636025387693462112386728062817742859151660026335224035251275894350957913290793252096882006434128987533151357914081320171719289185429003311781982144461058490617469800498719267041363189677657390413270567241440784303322569899140133711245007982243606187320318748643767028435563211300683989083404329391394805833754287363463827353424998122329065325934218831252697443292848656042899812234389270659618515705092341135919679309918503805151592100166770309883368864290485751219971325774969557437239782132403151884936150867183328885352187449264753550556702445518234689532968214483351056514212023467841731694539655585869862872040539358581802697650677497766662563925842924782145155356112346143434256993791678211782794742509178137359632034158875908708906165270412869895707771524349302454841728551503088366574381056129583071557257569690218002995860463827670869149542076661888727245044689494874388804323654377820999951705279840745827366512265585197592627144443110350576951395859112611632079876028763488541962342679679826120610824978744180596144508803701971339375439992221690866713123013670566093576974434112859686228829787670958190414090020602919022076546427217322418398820057656701245719787341862608715492171422795808288174682575241834300425950904100614874457156772845615954795344687619260749429582091663459072469193865519359993089094826899369758278211879043533848725401728509613411757196275517198407611131703862105657140100416445772245298540612131628992289385599522537204763437567143375472485319132783569269385777150522673496962434312088425444167612424717646234959437997710167127988073010499993353300945962480864255662622796931763959856314699296096939936365280779211558576106642727210155377255940474205355393448397162300664773210446734182524548934597687655661655052563870003637556603391470557038792804124901555999028329554603399622025411948380744283117873196357622742909618640054593810886642499965752054992909179204582773133958563040268200854336474936796437129386094441104765494862795387009162435281366958614642523611382511011205067945691977079510455482582868563656319099954966445366138550522845950319598101017106170070942781463611443283863180542717019494194720371526954845039808954853523230012932474762492227979663559034220942014786343744130272946708620546136360404421685325717405531873453199188804042971087976210371747610902211636093823020563833146486539955412722987911848529225454118641034556006145143373636096789018317699704292683317129929133666946354130882765564186613495085373480786512609492178993739413646022869563320935898153603456803556601414509916378099773394730419422727641886011976443606126677064827127536571098582237846080275289119446347995414686076291600154810171106782899075653820772762443811988682748744369162249375179990533175900486231895549914650134668246924510108566319792705934348720988500577950514451145134206614344514982059013904125963447391449750097404328579950835918387449586122312726396605309918365821376882442599866425578061480794469526881820869020341777394430731938637659994197217524396731393136604718862569093553294983798030288971376050306402736489985797777475171573606524723694127324129988051746817874037915682975016869483735280900142450200555118616815474927948570056831005897207764409421182449626832535955800130693837176631062833244320530946870494355470109431650726666532031550654229413605295392386981077411582490687620860359758784787753880917163377285663474544353921649030742517162199549734188556075088166969978150973460048663883046713884859402905023810947645495907611236916318064971953069336027635543501298667054308324728671574619502216571260764230249678236244516042497670068946326341572112307520792714939308508447957644383739050743788383499472973088422246504568662996103424442108307491902519538697578602421977316893536290828282006932653150671952263844506552901762033829561512124514095234459746515620527950591831187869175642510141175508818930686159472393469416607415734198275081302189882919529867506418691959430066091404453175528290823086019535502363396092082018078298936876948954711407302737747550921943073533018009585496842214931052366384382520942202708713539535426672301253476963250270913528776351275184367799245469214256177758481828852017667104541451621944585683898425053923469329621376099048564060223345738783992581203669742714171342690831034320914699273225059998758641278785580137905265023825929336830946083762221213857377632591365398078227153318928478118297158614145092165693083472863525336634270568252995927286123605391192628269499037067620484298270443618204848146295503206403723619519499622221595200626177979059155788964518138471810318651139999139988830936928077065144863003397236838688347245277120602950143303447757842269934452541847703376550088831710453775539906096673582217901821010454375078606051692505223900006818109758977122929811172768510308306868568957265940139121648551780643694172440076037340025015412479748936781649613056104695034002919819835262818313310043435294797397585747353003492349332718244522333231805955461289627029908111526160590447968470421994477144576245346285308248202983818620361012015163948008136242118883580148756363537968010596909983158878734752944725781826230298614523234373872952661893329649945504514881365044656417011436112242269467212205985162945707789949007868820760929554525668064363179184509969611190479505504609447986959833734299162401361401711006771511629297278333932694929285753279185963352334797043345114119174103859352950986264405835070948789112135385622791604916348939942296176601550693284547257594907011396553590883831720905036056885103124397513413839370209194859164520370546285257370811962777671770566220747025183639345634282479963460579183949339892996652900349404480716360778713449319275451749001227226392981217381771393020101976176042763869240088471444315500844325720284178190856374889441286982757708673360803565109986050219328498938509212842387600782157554310354816098944222930297743310835126566497154036791048691672490580128427341261655838077366483661290491106849944147931294176940335907488361883141500792786308067326245288743881603959666752089400419913603965802555407464295141127580100820847581321741630445492223536497202522173825473070818068887624529037791973422620000476923676305349256342292248289197380649248788287663541034201284602943702470181561566846323539334253871861536135910364101803384470845953369970436018532776730743823771087197219225463928116879902016776663264532956177148938313926928490147405547320525447294171338139393477730695589497337231880376033002876389962588547762575793636411102631253449344616972016242850551155414169183677726993059739137730963355841485764881656295593823070228091593934428021738255764563540808577217165529183182769059521391580601472497138278640460687496883497574378368222253242900148269597036509884006547896396654563687730164159934209127922007971527438405041766572889709255811253186925574792413802382272263905911911752718649574207456689289547771305204073034180837102048760876084315087848282143920808802910225427354913547835528205060526692919739232131886612703105383618775532624528821800730638200341932134949811252489334448732809629705543313601094209260302166289074541178769443584407315964651021842443457533752140172295464547046617860760350300461847043896837253163930918988144735868161493638004527399504258251488378966449885680895154616192461159803390637347682994743919608689690375612056431865212087234400239650646323416959318414625461948147014675652933639449217807764477370739878182501209199344051378307419490765113860574270435146553043744467649240561460830702732462013094417286175461309035203080911420445653691914625572225143424301224564669197926409873736050515055895020341974809407519352800413861171156234666196754052985873524462368634263762290109257128607214262444010888451479392418310263849348480438471576746359942713006949843746472644120904192297321353108783441382420583952428376683255414622826349934683931088734311612458756990456200998513268025290365430162531908404883277727121020555325312876788473748088638198445108255372359775259521399454428056014611597598002741203467174900070536791434238761299705842773260952067545436765070608395962247369509482158712095312583828696812476221486051859521051674780431547526678539746915696748729475649074351138181539068888622743914553210983384203122787996183366156424834478161526107934699319673723629362082514401069760224309218793829177455561608291384151828054557643018848984370592260781096823894049286502586735907090295105838068634031423611646061608248162900755661234809494273583219865873824852328129519828111201688989366253542138176863200267894827211385440853603285507386809503052200093857183092389106744746269697334162964475976077768967498090410695528908366485435136897146191226185348859386746561328886933621427532286091248112445866501054876770241394372586350273208372668082644978302791626750737550775096461361108307521585438616093142622255127616527050634452008043457078382524512198630979697526163997392885924473081746448282055201095210634817324987729672295374569922225934772651328493578123645433595239214925541937526639367355733893427103828729263556000764089854809731504938635128122141041019944954232181339117674705740006690891266225719798556211197881595937070660200529812516274918188435209313921018064478083740607557289031861984697646552181168407934076158135417465364587231798831442883784964046221865210219487619917520006689180760085865382569797511175595899903811566156946154616571695968640209943471476547299335627750349338629249713184929589514798012072598625770897042303983502143253570874653920592583120847201263659557545667196381469293982255435069261718858002342461217012243027095583914132073874777178900491923558614258919408784154589827406914852961584453570567417856312250728207667044438448354641384918295635871644760325953356944292522293290470628022015309881393746482980727620998189012219623602133496283080446156481875315561629960765180500673880144454267563481635982594764940821187434695095443715727567144932081001950517037942667116927723337963020794538732575606827541101599881610386341791888996712205756633212813482995632613990468958584244152127146950483549066835765681275411208694906457614903763581541333080921191101994025954708735028373941710543278276995811099318145164239460367434878543169739387762694473539801481586583158657430403683687551003165829057207028886833545171106791289241052618480859880805289151983280791314596782011853714451721655074703010258640409195260872130564434294069310666262975330263198661827458421670433753982086508861219673787308490859664541272297770807778275071457239456109930697170435824400346961878266807467035992598573047013756768836519268527090620747738094309711323686757208296086917746708587100523760943676110097859588071957153700700173927275111687175714129946749091000210319413963816203066890350840119185905634375164697465894818492042202761121797141534466581762314568043128233858879111089398128790155416056043300840952574402844511860067344077315437448633344122481111180801633387535391994075959656526401927453906058781236128107820731494379469029029782779448859229893328304198657421260708508890182010277971047845586320640801043157995846339303478766619585166664220434088309593953660627970102770997521318110707020749783962973119549603025353243733459083747906889699246873462050601042241578791506699919301260372597217366750939574297161363741656708771990873395965224803332462432776519076378359471986828232864512026352660289564615378530688250379313588709931217737892544668800588056040879445104671902345686440896255692226480527739240152191652841978274676887027128335566734037537370564700872318477416566848652518862012192263854744067016412649555444894057705684478805737852762212599712943375287009629121870902381407786218196999144045282303837529259392604989898277606944759697916329720036901219841731653084095713367957002076715355660385423496726175892490234866928899486098184193819226595342065097231123712588754188287632763277078519985979415916243871252006111185312045704670784463853731041600589198518232105591314545549310951602594459630465163704703979985022307895410297534995516396072994672180963194080190489215408958954059905955359471224224287120743108942411458022594244980798765899355368980589836330532342087172925081424243170069587181576198454660495045817426133523497170068881860521197568580775633293720925933331750996391256883545696836142622683576082700741835219828613158254886669919391424704236080925966258333344787566274077904516620352871249779830990364856294166126901516225955527664068092742439392206423187178300928004182977018259494419941351646618395617691207468054004293735760583083361355526583416470117020899654317790088511780894080221153621862094243590236245620187522213489110990739746680525281024998101718833554981649890243557087389393570887574335940909164204084517268135593628143375125963292629409680689337315772766599674148336525919803774014420638437028139890957094143210902377416231731114034594297013443497474367916126613013964689632427147615219817346686347006450372159163352514968966117056016913543038274810951766400443463004136663312544535810898009300935621054880651921502961236945372714680479772270288024557063726928383603884711911176074713836082665106184511681345345437039171703685569563884602095755160213322988891224348691752387684001524577506066776533081188523642312932443267749859826340949933629287483021256675196047205356407773715445418601879972090576658218340349359036880190841507930330632454466375755088557481824164116762121602309366516782493102789463172980009420397977631863033237062332324581177556797530442606317061695224420585942884316673754600567909765756476097405580725645898185950768275338868643156722802524066820280142321891702844905333008780887787412086063379734279579290884232511621003775547499170732223689924138979105985841164619853990704367619132795628333813725478385795214177644384526511561167942835999338515540801792218503053037409310141028626055453083519108431412545066793193404159818873009527357276003471875551610951926500598685545581765850144029151488216718385607563684755140258700225757196071358111715566910668966025186839159458585666751604981949143290400959298446599021299161039037638286973337629260644848051472112524214257734371575083838739394713250864217364514312956673398209062513430968331155860671100939260311598375525426893430613474067847587660146116293425355583037775201891386231891086030506151974662707696738917784106718024302757506982004263105986003237757789917239674372276734230225872038420701686887670874264235629880018996703130890805226998401872436729019880497605937556788850171516079227419253212428452463353264154751286746452490963232402066077177936204366283554706580322155382931309924925798428376813055458641547817717997136986473481755643801222898274650736146300683612974656708515899113149463548466021515943464337361605937257889680175407011927000769926756768838843731148193286937410590208128110523293702525364240493853299970636324116940643574655966736629118576107671005578144501015899468666990708183656121028060296304383814198001373159244497143811846965137662416870707883292249298561026245589417392305260385271092823072557582934570567281976263592665856424625602108264660931830385987580496961358663046593279698839525302184704323491024584393651535282867487615400160060884246508609744794446621252022606490807823930533922279792576780110986658420933163912515300144908636583913674830340066002628865505008772688262374414448116557628934562403828813883561466421539456215040078870606560724683006508220379306293450945039590793882761474448034225777441378845917515666083047920202215462328559080553119247515928213242737983029155541150198890451462282250824845009012298194194259620350053155946088325171669637744319826751553768568585603937124867438207714578323984334683775977527495969603852390311103256774025986700203927519596663610569644793506583658872037414529879020966852077770620407226494753723197460473061099303412549822782328646883104920986396573586057980987977711212172815830624054110454322877082847624363464405588860939854295841962063251067530869087866690360855146856100761880964907272738533139565692695541437177489819353659471248380701562509384298856276156868295348533409306643409320612497081577585421430979965454932609720223310139355452337622553672848025394691915151444854207285752341882391014400231713069586649596624329979798355888225017489114725944537072836662180185536572360441854121063412926738020627639161781580458822085794315315138131524517424384233992225939059515405956291982577297219617889381974333244709853911825168086608730306615256452682927218854974316084534320247779941309994395268489334222965300757878100019693187987249147122151855477803435321086071939521716470781794986944401585672027217495011558553123482669723567285646185967184944078848342125595723887170418086952349486612210101790368633370542043054776071811203857984615737293724180615919781767632968506063927454614218777476608097656818674772507141068699981414971246366632056959045877187405912584974460361344356141809613388370468744312221622029004353608898060695733100217804668939108287516023327274237469955160055824918550828110584629051104079562321532189884934870633545740833336805838748793569841650647373975509221971490161672118702442126465430508702164835478749656787822945077633445502429137276117479051824105350768034988396174216163630322800772048590439630503727861662922829904378284078301131570681351261599241091279317292248620321168117760398835155707857358946185635666388294654310464175512642975028724516420218332751942402754877084470563364564745763386478181883169922048358489826004825160657028134961377295495979364025288324496203682145539102523080389927036805434764413103146630053714387113294160517143026470763666926699078641518504988813188894962425693443813999135484989553729842082621468181083417088794831430700358934116814742951592681887239926501186716513578714848395270592401663329239798159516885130376983800886293290366472692399298147143268879712666322239817294125108477319182034106052453191018351526678055281004601238606032913493545516965858945028721375441799045592096040897683206815678093577630460145803639893553322514386866924474486502727510551048266094242242714361451514154589268975791785262369903027150156519207638481313349898118721091869726960802175048721786955939639884967809331342518478410972021675433996868203016965848571348885020789037875818757494840867923797309810523689906804359936501362211139089926588022304189261469728791126182597001353782958228361251532474504013453388975666491233138862749259125803718874503092839526558537266779516205704965750915575722668466852914245337852368337088061401771200081297586142262281838788763835214563168940873510605829276839322895095396587470830617375197620278106501810804287181985866443126596422184455544878901161864700353689135812273468835576020971922517897564039144900074500389981701451027581160794116683772865812511259458665364223392406401181680560310290559109329365530576743591813818036511219211105078777171065598146086082134581490268059291798831992531726849614004159509422589541045379710296508572218853001970805964066716210810432535607480622848338713568351053046405158811875969620091782772338107920001857227625491237587729768176821198319173663370602972712382963497398929603456583209961902310853239021047786215343159767773869544304047236289124032599363588242236354160651130333281411706266560242625185917338284903053316487659128736933313983404389406209108496238276076141284057872459931453929917531802468031021208437459916692251672148587817334002427393400530414921113902608727746008127951024615327589306112463564628040416279144548045494039447363522264478521943819431126553416837399059722906392564691796478075515208733835359430964101035386082432037406564383789945219108558792120040344147404773906629960715480770252566314962454926712205785340841154644385294871247253075299463962031550073095262224853920931730677921665685288293281296891037172678544986974593951726415543203020922716765029074037606742365013771672824399568914193973011724101448358161261412431886423848906010310636050134375985083010955331189258273434800240717314480529541218160484340444060847103980810896567117713385952970114056742915294705000496293967463131837162027988639817740336327084193493474354192708771181053497285147292493413326818435294655440389434888183431444854055081731643640443634580625396058530497729511468065581691680614024224692433916054740599227309207214404031695335692955017076896374718760021576826969775605727417897357919148932575347543367868861342769209263856073144657343931191559087677970398049826743119072097503247250758146613298903356358461226232162650275829310885776138216028403735162305243920859965127081239361115614016033753183886635991519534917929976560436595039354506827408817859500280049365823151410252085268016134816460908112592189835871782929240376690510275332066331107413113368294816429304840637330875032492497223178360311560446179272892823421251759742385884360858786307414191597949150397165036351424990881881512251596136587808501808636848942278566924247828820203821239850332319556117248089348965791027676653131406056375735142160100639122551063038931159903248596565459855804042495313287170844510600283464834843518155258155597511025663842991425210529333031376802828921439696906243673546392270610071648845511251751754625897691252645297937780254813685357064310148041831810952676327551281755480025798206345666022543654152530798480089886337566598566117948968775453113378422442103609013638084811938593632969609700698888763478520092216026983183254276839841372391287992531104447040589477185877674589750799049084332965527288419295332673694336564066749595080171687971687930898465756021134835716428033131469488833960359624791444112690980675589422620654911027571981789726493302912699101603695208652956351114688000667855358694088498262186631251855750232832982489992554027190388628395070754332928665333310561872893667087131302492110982528116626580748593777682812340511494814637474171679266851319491261298804825587015038247714029156337087249839754664933818089141915730984221935907893164333038268350569884247627174653756785916295820538163870374178932333032700849295878258792576062928200642253547588584633144749311965533635276574782248964626146426262073537444426952830224108646062537662083369920802083261794946232547994705573782135951881440255040067099656875904767925896324719385861285532799948225548908533908502500982097275712630610619651497612770041506442041879291753600268777476740054236393930024284465292933299014099074211525821464097434115563396677933388354616142098279838375042374342554602410303686611362622684775387779553178480217064479676227424443621869581120951612498884112155336997721842764669105788559108827393169005309243730871202899956224220216351448280167704517302903638359044828911218933238942982836132581491356529577405474960133957225543301042418094035754069640733468336415388534328925780459533834275614744834851844790577461938481831392270736557811116172247135990209549844019441969199887217080643519571449736664856211750531911941406796935726983364867805638410058391290328560877923352412097512338008632570323655191029006971812912937195458371234845247275111766224541255068131701935510069712094909636199701674266155043161157030283791904296010479491774220831798630478057719989600420740055752150364377236362743242655221922698306944786511417995058055494492789870858289331088681307694605719159188411694349649995294456281432282664786636154969701523739325637971461718736108129240648372449816936959849968497767742080538719150315846936429930478808550117231908217540948578729141451421727020459743908856094797553378426388159381463094836201895187111763195074363606688444557148039977085696686903187431478371462183878495707186785210141278483162080649922386844819159601931166128557080974395813871201984702602384398953744829493411409270523358165437469443979080772706412694021982430886408306834995492489195364399431041065869702706033351395535390401409621649031284295003873643670252235434098787161452598682771416483115997401305088315495254785376634348345318187044312479554738055319458630805175814067363758236601103927128673709486727444899218887962399466035999847374839372216077605060730741701408611273175523925884570998738347552475171134242955875116332000306903717728471478373745274518297379237092277362799356163832455101546812567566679866060751263895001854652738000530166350436802885812448985627264313832594852849895817883504394487268535966461419979217004202879657748877543743282673005357004506943178119072047339980809661007232623293442698101491713169975599047752922271199347721971227476734887228729637070492967529976122874383179242164605970121959750721796134250623180272163627432104085417683538389927766329082023243611660480946889374543431862402199921734808166572109860206647014720528497678711051531848388969875427264126701647457364229048218375600234423718691860924285669743100956928154075542091756537466099891563339846227032006153041036406824008763709752703578430946738522764493290146365754748798175481092086663448532348849811051023538618573020776118205918280184735293381210035593183647108907869829028414088609179854196754236182247255372624576833154234644432752872448766775725242284795030275899051780894551407858117869366179425814149317125296256189408275682005927127846701638914132060444431371412289076747444156320750503363999227316665290376501639910885381958101783302300266924849215512817078998121423167549561707533887530162125903831662024714028106487914606590224650711192494711753167598508346434760120046569403839578276686958597485410017343965226762181281348452898669344359178467913529759296030073947390532874475367506390782320546305029170862276437489846865728627497677136244372086032838843819051180099031914875462386795805426854004927850578851538176185362445335408773945690071821497627878876522255509219630921847575723603122420109932696413857783234692043811209723751109565067179217283917769992033410934399397401239790468795120084396275676647237587069023785769186213638957240046512468485275624715189872267770674421959051902086212026707111517315408118568561840208926276478850858287218895807375703837180993541811991163553287239752341491935854577609360151530117475097894150567528590946170046517222118958902240379934958689257042610047053638611638291348362093205691622112249187187642278635603129960282522512652661826621316769447519404098077226173378422601401311722666303020473861931023341079612540375553676554884632724853173831148214167238044802454574984921306122148420406705091556543599555725374581536449523488083363905323720507548816833039417894350962805761488552889762046689138441061391073836832358660581626387402936056688187096176881202865664926343569923467432298815846478761887594314675008708894890273227803804532076007973542454728026060587861505347350983944611239281915328444998535191978215404295153943173003794973594922169672781811556892528984289927181506678338399784249642756566487087510915928454097935144618863671421047255886099073788957261892717652166269667982277057271051570438281987930792534557006107358063513133724356699466508549503078890647839656355208915096160174637991477906963098752719790288933237606530151229831532908965470678625158192548009076173066057342564516410125647577157087871621568031902007431709916649817862631442246002433794028555187027666099493106680372810225429554993587750915205873119515542716749484231627565841004874269127127059100018372395932381582783110528745055153233716552641349611006880044047216385132086486763097213447522667195716096797085615958999515845851036203696053045164738016498506404414520285249866711535658457038700716499978320747046086196777942329789216631317784762649817395350098597872866126654969936775406815630304082908297290829709479443060710201208729464117044848945591906212385109792224243715119017549797884821604968382872496190160962166153820164396399270676386599355271159567914079791836619398631607846273899003646617168093829720759967116684731595650056117769094665793537990966496598521929626662634093059498745756931292433797627238264958364894099386722581566170839758070595548990516144399781584501417186744567166459417661137202959116563092715398965916616654478626097200889513675738165756526746901698452511582708156482075735684532148800244766052642071276182836466274752274673151308375722708759280385277817216845997677794876358736114947128784907651413840597686130925771367726724689822923087492261785610836203608082322152452103218520420514700359927389958594229813479926661734698229228105994592333436009313195383030113475644916838101228807953644509626063745165771588992616754446231969862081392456843206546204102026151875633262825170959527941930348173052288925807377874005684643611203582054072164485928256987915260533199738494019947142330071844461949858302744250314265372443772590745462804849201410253155707387617190419646259447634121415379210885502985629424355112136459786894661434709097635831067885939240765522581044895070007621764299906859786499635003294848672688967079372929013045774400441557416520546103215890083316191812601070833099175428928012300136473794271144481024017580160012425928683805759940060571170758593719966678699412383061073473768356022488591376405474851156705225538427469375264031834442854241909770551620561908422335978509821393989865072574974901809747850436738627745762612799565642576952118363383085684010023451123329266197899359268288292126427880953835061202060193135284230098715043586234040532566594357026983543332291735167459382072823789874364883756285548824680353396753297379818053082950631390186507345866527020140381406013116737078925902038932906625044070662203166057120176939144615172560386538302441605718181129478113325417617371825067998204043049806476932284073213384822842501605071548848015042152966873985829604382638835685941848597684700652732203695509856982032691169288009906693560302517138849851786970668693229637156279731413569566236764805444359935654066996488900546438146030307929055334916464975165805949112018606920022688844876033719663107241703591056557639236151859094171329781053636440428708043631039054208472114566613399886216279492143497717985577161638407328572619144014719317218895767605625093282618470659088473627056861666294409216103625013379621717730196458541101853984780069901157354607325899999141900133987032414187877718805506538134244031583731034503972606270509996454496217874089412521148415305778248081147325898901934245150615094211767901022824783682820757963419399664419073574600531284666691828506297530363146370065281989827831749307158217862271861406454746740817340687319310955867346902179294051138951845411066956200424568805479249758312626843026368016889543714776550029359101089188792833893792247731199730460996353948774806472420293943723306329438345554630079699114368652045499006949269267907732466373128607023846360385975925057304147688972664476748490072316753854505391805248469429433762605171838684113476934671180718964348869003578512836717692785014573955031162960103227728323928001365755768711342995424719696060477172534917208834559817863760979503924458041877045418050017028338872339886967775984761370020899588471204944565285719328644377320488813917455652061358814461513161869072077870142074642653128504972931201530300006202323276115428303942207394525869016286920300920519915361988196189466289653810706727357856349703600116172004130613907110388618737257469798289839350820112783497605858415483783741539185974409405170388830997048208173747517212852264198549400075189415851993781271088520847773937266700325006899183978404350502203477029305329810136225235493143294561043754427842109207881751204598267524094679705196205125136839677264577844065823398360332433751054036881792789935091379666361201485311944219327629863504634188102143202653182380675286578469108228223953200314449496674503739738478030202136106113727065291853378032529887176791089160031991146408198246268502618199892846495630424487455147758153049820237398861256306154881991702951773729930641301633195221205401320511848958071058666537802389818269502410005382059884240710615810692630895070498678823275181887896516364037023685142466277359836183697812356754707385157594275003020501419648575182726560569490211742154099209434572570498618431502328949740563503520116003489873166957255581997816806468770522132118074228227829594362320360280240798840040947001800310618404652066760919269532158042485952195457119212604097420967814978401368498302069648655967046954280432385222686440338999787633731995894583322014286700230523237059072054670620437451528318155942565223566661696592036918565913664659880449187480350026052571384097082025625596934793800643742152457697903044877311561103076064794026699221250369389015194893178707643442291766964714351764159918939249944568519172990278124031834594252689077716409711486443323953067005708920752646055663842391261318244726977055900269915169741442541873562253074674080173707775923399879676936015212648772824050244163151033370147346867890626264519804052807917558563463029684690723059796659011158311767753656623854273645439931297741225851995526371290862899396556974268680369218217559202748288329851402279227057936924520185002949336024408912730623551440753113893801928546391010713954423935080766144016267745069847286168252306425866559156962002544673264494868194611638853335660964834950523026772818209153398822702973323634178287097248365027670032412151028455694011000913938795582258653281327447053801818936880220512553587463322754118854801313334941086676117955398193989842570050765307502956414496447344393587220571726545743504546515737791320220325292692178531616281876232332379226227730353889864085407649489515549804458596537946089913645370875214944258627866722335635516753892876583642162764291076662897765380298743508617569051252982484183284523933695700633856761219658407287485260122512112048490686856376344063342020069731064888124518567908511955389882416983119828472693883416076092636889954484400121161757898637915377810503224547132954493991388651332653735331521509161177503001326876317708727882217918939447800391069633162596156131032592138367108051428223026702116380974516766822801804421996906124302534803043263925675104310556081853265198110653136280038520612463457049467845669434501831430312622548448319838764716566676334010317342997722911291025911271280276184631022410775235244965045248082121359432706365066942251479108285004655802292266813416243998987348999734357408191221890968297317573649302766625391277783036113001202250897717320419374343330356090739701361936980443177504661957051945785999995381993127812721943018648402872822339075077957607432725236472858221937759922314508623052853748045945958045976221410552518269246730067266465506119272867341599703738914818298677538153930127503139851402574905966197844685534753146668785658278211741391664511651549777209901211748100753913570524338789834752788157398822575400764120186440725922737487262570882155002774982489904031067003319865005711839774254288968680780765465305671459674404849296221610544484524904449521732593491950212016739702492187304773953668550704358068773459608254084959686510139824822009845942095596033675841983823511770242151104018421908413858612897640546787795475049740727995571575525107955730515570590747521538294206770864864357158025513940904633495380989456030855618544462682322249160839291789009028932015985932073630943349685215011735038939224043727151623434346405807702651177345674443061213411305313406564987746325013506091643065259346035501989886765115727414672026674208555025151315736652262220194789574343078407167831610892007214058376795052478976230111142266544740925358536963268494620613035046290703517885754033836706152248923092034106109504669669335862381418573502631697634913943276901274075895488445692619913902016676998860409909013254360604791098566852311312241863368751726932440783687519793108707979987008188992544959296690671074497512069660661462798592253754817162478074518371650951410027146488904416885325126857775324534929112822151522808238661579547937402895692060595720074300694096608272167459536713285163409127457225766483039234046005378755609558471495194473261320810808962378781684539500041811074941763058762497965331357197135766526971470014440516860234131024942945221266690032611542208776033126579342750310115150227639654239808546558537306846880867826102716802064755618202017283142448946808702999926453065460916278802994595421835384935554585127658091372964052458261065715378565387403954535931926158630593919110164864611495786713701678048182799995277761363551126856975486952831405773201777497613678463162059126073473505380779127696170736046968920545896137533601587986968191715431005392126314494695678974104532934994626946410653134938074594949495095175439701702902005672472578305996632251383011923241307313564874443442072682529335483999130571102555007579242206132354716906605832567701193733887007736523020843827045487725215146267242808262561029645370885676331407789484204175694502355858310011899315270852350509893276882577291953273781053643374242246030505825807039894495240616859294003877922930645230062849378418317560722593194618702517106997806690935917886397855439684423652933691048415648650569362036052045618952798832644606807071570323144932626011934311075888969139775363088652539184452793727111534268968608551285765877500506015084886888569463771470615690905443711516740724425219066364619033552870312372399545047673672639416918445845378938483790820779115278371062553577910994929150472339081638530633317609686560573167909891152360592102894815539460003655277143762904959867696176692725211306747337902647474019608628126113711235336655671726985152792645289558809006346316684588144873708070697184165461631132115048461050863878620879427595696365008628243374791730476860825865848543337956742859236913947898389533721319546698327144120462448992303415167901323269316283283565422493451261711143780529563820454323993500721942672202710774128861609555737597485707214473162109823308515369376626394675541452174319356975550257946511186965331600457483482800019982852632239661379925339089116386393661877715106372801288095489483589802949925612919113734848378042217417578910519020877442227238805922330164633139923569475481066634795631488135447270504667826938243920606991567559899299452925501389134168588562090180950097411236500754373887289845832559421965530176981514961556967487752266046840953016336188782220948318287956226249228383111921255965130184345772354227364730136719087038814940696797187985529721426413349440195881175375935446269284171440837402689664185302043952741345890076440391342070585170947047150477618961224085585615348977335035310302377309113878429257487376188556185371194729040906866606776338429267164271515389822771955750656382428667638280431533867944114012128607849918808424704896215093053738755634709505278124275221901027236005951775711820324694305142895853419534028642658748353125901552804717920059589488147264148275146211414921565007938273167533541627705561419655429974731372180896037189739116975553583883070403620308995048431790107697961627221610591330004265342189561323745686569000190509098775862321971767296983756847875093146886754842882352661810839734544698899054169672140423333845390838506839288404079562744888512268098363625215278690563283760074219162045641267636136090529167151149878365618271010197911671711627291127276652635618491719264061069173640047095669478804677396786545706716157395694856661016659587645577914455081812723265072344826694660691284228751106029633112484844069687684925273343240719463313396744232192361520366249201975513536530093665762128430250943168220742127427519090694654776077649550573206574613915853080037582874020743439853240651751762465331220347888898045942105361601011423852973715642728130665384520221731468659436871857423795233330186205883728508002726678433311454930276809507780242202626578222737026347521593463794882934662174752494996409622796587653037412605772558122096809814004534522067315994366307542945277263995197322554572295485449259944420439213883960982103509159208443646429914987422741473818346398931153326104792402753220428183191129929806642254196081709318699418337913645950959790940456909797644062972783883673794922782422765435125752531032269338821120431477802258970694457021470366077934151018991018159194071531818515846009123872827362237276817462496516732756320279867779304849231864592237742711227468228690997400739482902185627149087983340853893015969681007563007777141666846661760611485521037006291972447422362529285687332820242398130357130750653368879927951413638686254331097806517507668936055068337714360918394006442147771708926224925862925296263824105721802848063935868396309902668430820965659688676235341311441076400597293106866215561161047083033535144349210790050691444459520807497337784091472928798794838596751075153833179361294938665238490266287567356694473367900279309590056593358406950985063603673080561731889376452118850264679897020169985291838942265520256594919398574036708686472717702701334657190477805292698438727898425627367139710935644819274955003318221849206477164136622960780830294752583813087408294711829452423691973624840682717045359707402005193033015878122201404440459032600033411208251333673611470558649622769472186483901129456100183165980955974221307662210024982650129702536774083853720622300922879937665259871638547881672182951596792352493228315126526279162707320283370017443880186121488969030427760695063489250608501103173606563736832594299643977009041171868895018409027041276026359704211580617674069754212739751008593145814873430608572065529761409705133797275666273106793090598782947376333573894238708405557489198523473581764958041256142021733893743276438576866088792192353088752401249493914253151577073699497733107919329753832578095525972854417515105390939826106177538325242725411132702217006905266008987471304129281795714486092597516492617302055114022804645831332392136898511625699185374454982887014815321040380196514423441131248397320210043610502288213487625708924744464312957927151398275411641656325071349961484979624078631623951688609957917063619878872969409620515794691910823353417991521271408244223913252222544639836895852948709917537611281360142687631000620157720008896608460502032250986267828911135618495840593246338065272441944201340522265568689439650994177879339574736143104576962084984479677268692557067803736178939961843656938917037616189983140138387575926925025935223007513928304939277276991612973584717853957091053491440098771101493645471035209045768376748207001055890238475104966625157322019410099250330799727512177066255582796610880018450473547006748315414346509817935105979098087858407877925780290297573328302126037591964542318780140784108904851596776273981040400302788879980854260896858126411548956014128071862844309163939546988476269159697693305100113361862004732035216500435294289337330244394820858760365964468358657406357501291730317710408602762129008863045618207390203185421419022187197723115563295977179209251744630725871164714925864063883860184776088510991120868070415831922104215570207417403001407133199297646674534742165244234908507084579753391575083030762636227611642822121156367044286137324942543431561465287276034625005319437549745501092218575307723926256294105188573326406787302510577560324399251359993118989207075434947672585656237439430209447828318642227779534504049055785441578231519566179871180328984745018483532093695582282744907439355025000433697944901921938397430436373616779146758714513433765338517769863297177812782745920990198480397056621473106191878236825085503632413052561110481492720928374800680664782235576691140388255314131801934430781159248132514538226069625206079128371119003444609940508121746487833770251429478841477413296497303478168892132598059833920721925430849568163892408904721872724760666198820290998039095028332857794483384711683583275030821216795175902902189376133651701135686561309625411641802379472738811683105838401819539703079998618911862627445418180004235955320353294387846866311350856703210396437169776008814059334039381091481595351467270380004182610143860162217417186898899056766548782459310056528828939955086388626349731534440086099247940956724782260017850484146917502727942222988052410179393676949590222732353894466207053268965291745197700024737433043812351814489833273409215264620018529094284066850926063146582436897037604318332364289582161012057717043138599250495967358824624665650487207337529242222905078368871021285920413244679066958712023996014091670047549380893135999141409431076152937965505919042698601585389755425058444539096075522114029851550584244429636546722251969697834210095029798793608923947257854238439569094609477286510022209305507623546833072160103548767326559642256725244779956059051498532817933757404642662234079856821559704326580069074196824243189179676708305256364257744002753966095505726478370667627276322073207871411350746835294843201243702609450715253374549159877329739539080770654935043944628461125499286483246751614145850437145695827616492952286141041182537838295510628177338456468700607674469510297079975110787876752779685797213940384785055756823833658107366195030189285393416056149124907112422939150045012782117063009772093442431855071671907414307924258831848164958948704083459737299309536528928729638561187976601651451631729638993968855116490417092342325217004975441683707970265288880841983072769811712848837252860199662619530513088998300195662300803211277430890337351218978995557117749034385465449472858486394177664377036545525144106187655722232526417100015160963572960611254627171180662896421901715397521068625452264764618363909229993698971592455574304064050989543907682961420131657697090333204007492356953943811874297198910036438719239082891023568453555680407946542607192595237519253559060599431060595244091544601014451836072379392606433849601227463814395374765320675993633949663630128715026274245712202603816780649346563422521664374820415535593928456247503500737385199919725199922529922082899337487713778622311855713768508307863075541791949772725372637196242530952055184701853806855185898687901946432086195660041354703164826908519938862224202009787017370325149631050404948170171287855602405031425904317046389749931579216996046787053020588426914970220854428530075931199796509591614048048462676815336684822436730808077094827132325120179037270026466953966076553662184432955404838574523348027596564175372232450737721830556660947620379805469974110280151406711864874399736694869564799423916874657058159918937162268232473729988559029163407394575040776693696679493039671827028324916956225281807239956482086888223847733407408528350677457668967231876412170881028803033860326082689046785207872086501132091926266917017987767421550182742756947006562055006653394060700293444796041968332666430462797496214623178370634237085230808423595760014295671494276706009808932563290282111092335056085238149845350739524509986275509406336280790513548097608265073591246842343964672694451210229779242562428062074221168434019674061723310759352177955308868735424067034259115573413845479063434634888260662002924074067548347375627763842362490126862002757088242537528344439419231164539302888253181324709375071482516279610505858790488676989470345923646041135741852901590895038498480834814646335325017125219298046142243981759910722227201708624745651369935742679343248007811314671287919373575602811152635860072514095151171886489551828042657572373210922436538262992786893262928837342595427397090865106748900546570176314969722739032983980160326912560734888808994531575805751493785374082549944575668788609139271440539731928042393369813256056336822383950415969156919658479730705884871686325546639702427667366766410599383497469660771248854034273519701556621674120162386859001915711490220404723802453574166683630712383058854360272938196721256974644148915043268077771874106067432580049727392622652014332022448857906927578098263300215477030526647131408584649087715048293062820313695871636653995825565290235760056445855219526730012376171229633903581461209639594353637637275118261041263198999547194566247094674142609405351834428447096229598767040786464167282102448075101451193714259825871315580730588973358186939589680438610413024343252160863587706573348744187488566116272654813867373717476991994979829479525006831599374261261455006291908571628953632850716230073137824755169985446291855139458930653050514377330803303176054806622502138821107871538860241301332230691101671788502329912601862383719833666618374415382180127486498032966736988952287245401538201441778391302175467203303005943833263901701975315570738833375053966955417056792705443957107643696137629747597437883432427943236803784626254250454270753543237537867144367929662797954287787990662168149349758069776175252123781063319529838833462860586170359971996563111231605134708191021803308905882349016484491221253580893380208909936722976545348619504895883622292094903160921703219716855279603040518338742959700002480700059090961291799392969685784580055620154043732542403677438950697658811128134743197205282065338279658338881031637326392388815099930757134065412412959477847823734607837665878979619460704880053000220558814984334481475145345446406076095403853072637701743563429666428389358793022426152899740242672306763950371479067720661026293403628303376179876955832367897019554482225167640726816721942608827290550906491912231022481415809144257005981872020578101133097010181154425142978761918136068539567011727687093076614902394750849029287568191025199118834935076200539508019583570612907660516528268384906058837577820692329330407154627494119067748955195021361077125851143259271029484574414577056758325274414433883321604710282744285386137901526534204616616482495468792584263242321416255770635081703459309262050666619070895309292280149249239457786560401979558606530065435633427450920564744903436347633228452025304543715583257056658961473473706139631569120937139349279728125362045723398649349777039961517793535058024434064707916809354375632181600509233779092683803149353903029164003061303612070510023168679889619357007494733989042155216460699073180241149599275578978088063310620569468271647375491466592364407541016564267442826124923565497357338426608432444417466569720188541406897060266961671709043895670818195059119536772032828740319561607038165048073439872564525972844841579752679953338115723429831037848498878278796989787242242026500476891523831670846362692315965371010149340447693573009999322338487712886660610976272593808453601562661021507639484329098764757825318429835958177921216138826659003342283475149753200505388633533655714777847086121450425629890320093723349317493564732770739765287894657332489303381365147584791362744667463934316174519964893313365614500601018678389838257289584838921383915976597247297858262569256402376163163733865531985677443983470537036996782338131750773316228384234054175597729441651704832548678108263417964456977098000110399665322647442367938936887496566352422034807388797124720719147398749299402479918319617535104380283125676275665940807482367839726367762172773995411210954926898445140576773569036905041154586219581080234659965874390323233449961411984128334966948289393655897504009333474313145686928466191358969954136646815091710682837142860861370565932193821537017238159216142243343052215566068018603315968017231078843335672776417731789031411715388061144254018499893915915192680454333186965118892122530813504548790192762949302589326215970765613624244595123512862960749881599792144798082680505158233405313425081808650926975420959503370380464180648515580896034876698019848054469061071700157836040711771379850132487026774621607449049653472180888108402515173264498264597401612723502168388724464403036284021076020872093435861186337797572187865084336636924927317377374527910161268525994602121686446203343381614760347306909438137535082444612508038678346063858150107424639981095304663601950985140065272446074534438164263652984518307872282362031392673952852517391786368433712514347143699126128850428956863016173838421770326018738740958645921822573434209889203906958999252170260590556905987692735292982127213718914114121943146927627002745617525594298740556073414572550309868536175016228097972133378723430574692249422696289215075970658427286229405989367733286911716671240099678420789290636269295278085897111898359590021001986852486121026677072594508341368658720305846936191420344577154646243823627984923655193470874546419467231143009163840992396894467003660775195148905614330378587342658044422116644346661590849109995971252322361404173187047915869984572959227904488099276711544839072461122879809511695019188807695144741976047972294171629950963194744581697801655453557347549700907808394224287635960846056297328603090743839632424417881587128817893470133177255610564291915875394104919064346795816573448010624007941574782749696552459770118821287819027930934790591603108313202689363951151191632483426908469679956927145525007918301820695267772323677812312529360487771985725826702643470460723379220337664362322943718848142438349291749988950567202536859413350643181360567026014261856744026723625293280670271711598652808242911122280527958939402557187256910469684628514255966714100890289908958076234844465875155009702596679738223353108544154499522715908011990785240346086745829181055497376043630160111588652010340589023037366577324754486586077727957089182241443025700015111500194358112939917644190378218562212223300230657154051197110587979858965773933519285050717563887762939222736524936430245725204963318004936446684262804240643339413682769353670234651804977455453807024090114044807829053447029571777095564002019988416982735702610440104089323574969228743651673713233349011819017675395278171206886670905241477384805409327152378705371193124063934461839854518101905421211643365475552642064990710275418337660980275983515292159570670606108838006173779155070147038668387235204949831122201679846077383585442832216632041172732663633411531643510703125473171862731231030469502345169964425380306692588058830534779898537078110310892187997270777737059877786372027911162040617769621722876782871899364749345807141792766826767673606114541554702828332638005181334335667760864713331277610156863152713294406384544143079392858952239068051379234723039285436062240097786382647658802482273315487354697628663157524870096742452688661884088702842898930654820347684497599904014021429242267947321478189654898822778303852396372933425419804309322736019974214844087571604984038319208174393019413600432440354649856237926383770675260736126600867258455291329174941287169767007446501863776425847025267636838146389602059399688881342265606141750149413540025351377733745669465692517304848651328201325956001656224222579499040246950553561079776954256290374369164828289423919775892521416536763013653649770025613565442617261557539768563063036691245731273241888855769781344576697473773626891028853621256301462447678985123226230681777290653728717637602593883908073004421493881090091077346050632146606570745069066189074585718685093428775441533464031114503938877673943327045637949828330400066186875568210916228155286383337619174318109757872716471222746842363370569981946207452133715613784498040397643650317395659839311665662516246353397030596615964453424103279546918584591691192731361601880860714210761063838927955119652553616180960731819940128338813295643269458928707000223894037088868860469832148101627864316808110390454718638809824048995320466469689497362539480769332231963501781798850970930246943783254065557629826108705822316831639873195295230208442706716322558329694327346561155184525851080003301648373849294616327211740974794099538689076347398671491820838845470113702480693885428366066671584362069263326753499989542989650239947780758511416424705758812131163539849493358127976107064694353488781707425750210990448173026149592964794559756088628058048696831153215469640307780351761849945249753939933400551339499996269774602939806598396117279935518470422500376073286212321741019631797834391178120584441130457329522057705117844429374050409024251259761960761735266049844206822863420058084949004789663053435836733688959784593559788260697946808559650508919480850578710023407184182142690243532456832218911220249058490642452715482902753620277058479541585020929846344290701087333660035746245324414038017359888157404074996949136440128985555484119736620087106939815626557855611480421576703640124549599131828759171260872862295373298518569357927622836233481865535958946582622191083025039352097886362692896257686700797910871775514074585501886969090718330256082052832420518200441873376552837829992681724058279362226149640909043892046118230059605998581153532959539634211428392772160755356328559429357374102591348297122340980114186808116332210069762384847396075476778659999952739983055489344062024574422104462316082631596253219551441151427447520612568052744741921173270496310617662040865821478412998554488391760370917589885766181352539906426888873451922163353234004652891858461655267213431750165835607015527634030028733193693228268307356468996802118960168323403102969574768379036941907202865682137773513865571237170424137104090854729431229630039742711562030132306163992073921159196794588348680031615496607790324476769693502800422688460619259534688895056287731874788126543233879269917398089299570432414467069382064451532823939622557349404408016923438598143991635116967746721237806831385254459033201143617897574312413028810753406077783711076160585240847889277126029169379272423353638946504724136983766210875654520350522754579339584573003394002751339394087400018760453767735823406035560357103311901568034952326954079867842876141909314981288543111360985395722997624395844224994718568826461574966016120366749181236792436594179712700477547397987525060760125974066777277378153873307120325614655621250554309420125076559423049945774329288217763476932735669938609652569904326851569633777704337743840151477698750379490547812511498959585694824009037873727188464549115493907439758361196606941233832410190927653169318546622935312175549283147045293870388208641255437101981559273093987952185144777125087190472370822658131781676859154093073080394349811246838172757102133919007883920436958895740256213247318408105734064277532776390430330709514924083075122071402886700923559777171315753019136398931170996512936048534197287070401478489101210155103200074611878514871725507960690381822407239593442721185833258334395783033958067187048987972581673055566417912279606418259238289159419927176946255811975492969626116155594670730328089244629297474563484996919905636230920150746844317016264174925586174749858848356620317585132080639682764082234457531442505508599842773359072192657940658175271071931704172241825837211985492923938148788872268287618732886746300668382117772396435308492635109774733963809209669661134419702207599278617699132001056991433919267853444719843007540728448351155706309628711531310466143663909125088006631432682475730555451267007719901518728885573213022984769840220645744146715121961567298592270591034555983180240648797616620920871386628378454453212211545146914731629778328371575907136702355543826279860017198136009751616085085421693436671577875009428610542014113033521137346260845822968630772276240850580281441979051904657379657967228970622357498260339931938744119749703789531633738854677464607148685266127480105817483083106684621820887266276341071368609982525233380043825281121339173041127846998523149247901845274742828262707647394210608213399525186468685342203338688610360795556415247707442573223129859897123563267264873892800587498808418450985086874835761704877971139818426343766751362234894384375512121652452698436746502838836255545477059358957681743039309822522341242154222173784665521816844118504881709338870758988317333155726713639267220423608222388010169991451410932441820894048274794175613194945726973559260078481208624520299491173145537151375375379155953081958756549176892130574456789607294875727996446649645671348347438275530572655025234667960727785193462475258717150949519735352223843002142123998129366297177716413627961852050642552306316753273087457772616895230271524034975578196684659729812909069125496513906918706205632883876871538176372752057310665575000881244851599740414825298051040822277961653905440546806927564030261127849613764283478848270507081714785799947129375373860530106831200810271457907282263882660183784030727680998468657107810882755135105237549720333738999936706812109157406302435835367883920017819184003283981465340208109204568080735758849884900201942113636170919113857948138394966490510306544576167799902160552307222385594231264508889033135199382930081752477876009336764570698376312172899262493687141292467222761072958161067476470709738949087389380568042456155505491546520563550785621220657792252037949262655081859688132881160036680412056846268908023063918669189971272097766007774028334833714148017641106882898115890526606857329226807657273940600981055342237832226784796242029739780470690048056250846637262871509651633944683715951191793812338817704556673008823685916605507596136407087469899780416914581722684003672134445131643831879857162343423473109413043859895218774107406382997045728774177180282909020882164736535124759952875546101816478825119105820300047191607784126217608350646986709535982149202958012213712077286872146256993229034580938118624917551462852194142024332236614134370949472121655100312231945636942763096216074039047078599311141156469336669643589921949933586565250393889476107282513055386939240259935020302778059588242144663167438508234037201527898069035501990141182054701786520627586448007225211326084966142084582476913725980604046768825226541392924440442451962910762104115237678947459357575824901064465910945772952443152803612772080729611889129110643670817385931007184798628089534739130125631068155581554742774163138262428010226569224650805073591648608101462437484402795981613467119205399208166457706630837539514542829585226074007489539335154632912687133341612046954781512999913854628744923783475925892871354191072384218200991619184665743097853265400249437213696903188491298758359399133116761374181235527661261445690457105310235424318278674033969646404496627377386702594306111072650289116791780295988379129098778605045302079854840057409414637631279331345324389110112060716714123868077916409720297635686236962470544005586860205422675130910008838785859690041171727583818298359516536144614310681890874491767861659313907276132266513073870922416093798108399704812142532216932493764030003635446430447673877640534372569416414570643531853046051720517808791238610546926123741954783489495641729626675525691348198564952651792587537696264410301525796355325141198484225014758253306055581261913673874688997840921129002215924641091689118699144944652285349007630623919920674252726945850421772175650341508247719363452899713765851372441339896481449908007887881964342165396000412903709716996144821865317567944822522553839075423657161644558569673551826118792818874026926712604581132043379136618769739900715779297873644793385861120298066554918971207310410760348674517765602817510948263511393595937548268224079831391809328898103038450740027941389060588270591905096966282596706326685153006904726348819600063521352068805952241235087091790371106271453496914152816295995556955987746341377269902281096963858413113833619924895704413227032911696195251782644249877815502225351472153320879230469215588169706670382987515743938193721220027892487534299984257430245944975056271832779438314349533268451217834300744420756000693966476529641573789975304862627260975108567382047267926218381953327469347453420335186737567727243155563953017896579156855676380264866146432152805403075355258212260296399473043194925551149576347802846414479239589862777879484309092576171441869073224805694518162449145610613208200438712916434229242121503358911813730393123583353135997532853522865982756048519939542099473593518281916437912541852158932526774944706129937331348653282563826820475427479596200651567068217991148171490763530890921294411598772103817265785362739751546551689669148623191376245056329357788471674480648698834886083756566672327367208208648629669976187390002647405161327298021118673341038022737768692878786620046300878542291217956896624578135384241456906684967918619477854801189967268043218853617358312257884519984179535273654698039749549608726370214144373718732124338109664627511121522363714400024614590137503054186239904395316703344920467377382746194004323820246579339174135079217538752216070039128312571605978512654570863705303355783395651408637596744985466378948489177425056391790393565889468158998052755527937241687362175814308081279857682628479223963606541034910254765585492268747801388255608025467758024140356018989729372413840251674446952783730458993658954894250274329250486178754904474598104521550778435654652180026515923939286748248311024940709301360093604241889490149032209887791231334069254188118537027135942571656747317196744936967958139414370907988357688870786922738178337013579114920679880421463677987677341206123575861894012105759879718639840090652220481800096714493436748686398780789641292504733009547413627621695780395472388273711783667005918777291932527699516563271781231295259076217303479450130888188527468383201737932505874343867452244185947316573149448817016027962059142706491375864681610707759575483692919950805442236206852416619023439509200310235369017102659493414721367265768084571294420184176962510192071145026004309303583125528239857094802437173589187548350582046159174627095861482287255141519742777555400946334860131681604640985001571609085822155705264542842866507665335520910209262670357607280514159195757664536029898032928042829758077736881918273920905751982402099906555190148817622981392002059136817245934692061073850829796300357547354365926103987096960229651936804359979219101366345829395499373262474362814724154881356480693165530812517996076281430293754850243740765188697195818222929219883688919295780307250752311401015956482990300750810482692989683607082562809884626281169571039634222336089778769755641046590989423652657365981098135790777207213066761852947634091285304043295054444314261798985850729286983522188111278540063653843103782672894279062439672219534896597716421521102034358407629378228324566342510371951837958352976897637631272374185087909507430466301321626322387882016002482203164081033873307385060567339699205211970322621694134454627516560457702704119221549740563127113739641418355444276831650022210352755726548676197871658457654893033727969601283898082972442675852115273099840159328991703457861062545859357733731970097420107100405774915383460802657966389778007990547592918808822974473181216304991935745673771371511143935562787434146367123078925245161031578798377839633737994738612191171506817720313583653439732389132859708551643983970946994327749970970737151132808700645689346803458471288968184669922462970401846452886666780275158956068818524113457071560293560908781394218817972473348736690680737193387251090197859981190806512386367231811700506068690454342373742056261412323037416505602033515972874121915464778304440909473614729092897957882150266304211549176983452287782027126689694598339442680694660072738745972445756549122773366718239167124175754122538081067204069131638473356673414040796870026011597017502100221537192337865758687548753793014039382099994931927904878444786286404233106412725734970456603342744064616832657833125099562284047628139129893700254104779294616759317535585723068568988112801628823941124712568423388816889171111629005381828474214098714261903854662638455622370892790862332628753803829780535177067076767613213917401787440137422241586618564802015513490732607177842696672757815854673877130670155131947346333649025526559537559612550611270247796583223930850073513339994008884893080932621914521094870449789042324726509863704919430938808823963424418772985566769796538988084222046515501158787651004812196001134866141630168086660942011128243560795787213393586842926999619428327303986157627372107035424845204430658748580030244590554262650269960350004701799768133200424478160635070777262989147977590429823528034955967011582812634636578232119697065591280936146816624898805208208001801361304651966950047543006110687722200865193102874662228446980499339981380803492917587709763815687110929683898286336988545893390053214683316832577154577481959052756475359039431093719813788855085445628885457142651808525440287125362704863273219785083698805985693418407536252858755017447938041707011296892484086600505076434611090513362367726896227212182366017830348877388258835770236835268206369781998678615577970716316617546030367018554360811491535747595626324187397574887684329919791075872076339458843552145354742115357279790705229004052181628228521900262007400334355191611949158446357663831317090074635332025936366441714195307547318207868667635331571241772620987589838345399296814198646645822462897133060481370464875592853671833713253007774395408547786409715610347654392528975444451038837784507769323025013663484370260126562169969828270369466098207674631477401558815002294584661629260369637312031742147719717627973685033553685743109467901352225146263840150123517826996254009596208760706631880387314327319194620123677470159271999359191495044055888562085948526527525621906193584378644064254483632351803243473639106182636352596268033167738607565340946601548319765281435078699924471216205676128640015929600906892413580270569307556499729003407687453923791886332643634930193722071088839521079092932962013102610205197852293353181916169358998981939506358567610157739965129587535718509415801407480289237021757457716030794928368463258091116001543968191179425153963352009376050957222333633936897349765245444380385754188274930813658753356509345228449859838214145923884323219997114711154811656640910041450925046629124927806064601072383272084766993282892194311019596303208433519063406946267538333305285529056744604321700431572687875277892327857112806879882253948124235920976203236389336200343239375490291823503647970812463027512400409487117891453590499963415170687110367924666360559170172439832956497785600188653226859478520679181137395472747756087352854042388977078320044912143585677440827154305592330119193944433328355246677826487783930827328336157593580539287213937053604244725168676652196345208282113307042518486466960939165160010654809415108718631500180404352508776743474513412015232580717225979201397111994711142537796794465355814808523658724342446378089141583633540481957594510991291065450438000677908713845761962762360779903064946766841675187883907910452399466453874586940347489560785931823283241910843844056967520876724836455798628027549201677794989347694337019587266161682988467590243584017120979259593119508303068408571781563557642688080716891945281579357245287153584664569966372962282498283235771972704974449528140385243820667070797071862748402219325311425756820572470138525358890902296274715640111495380862916461892228446331077217320777867386761622707415292686248902929508514272710135787553839330186496349981301869938230743608596954587787938619541190173178610169176356803527977781250525562450956680989610502106925323596392370869390020570102615947358514326647626690890241876368889241384552904485541134154613440250333735807128702736062542158858371688177472984529776094345023834122307850587692163661287490542101441606908695221686468681762658289938767153217674197748726968376084914715336131145133603127116836071739958473415735753916419102615322383502522373760811451093528098273779485804412082879381380062088587308762661600654555541567279908366187024451667502937601127117099634470661395676290884483407151542238916276809661533875537165968743288199886041845333985128726962714376462692815343571613001755541516356217621106386454389905528286491379204295814247567169139484330011372905197052547141981484413000754598517512293450146478706979026142468402336708472861110249016896694979677536430688475947794783497940892906452652907076920896916499762847775324195413285409123430099251853626675782570502127877662543530485267700947096342612161685547322803966735328046310372260027772079544483438494941198266812964862732751022736160280281419999496879739238592476630213643255102538184296717253378933093167552766929266278693906710324738977008387780115057673544278185946497706135422516480193406605243421462746298982350029681944964743322496513894502959733899216045526661100042451761876689915065025161677575083360544221058939574948413278610583130732994516502511617111417910382049256911764780602152927452039211156963303853147961543033839006218502715293180627428745131573818049903400848478335246641922290592016617883918119307019374452023409466605563537841157615301746871064096958456689637356993935218158478775505608641630644708575041651354840087854421275438417264647195727698006672299408170124152712628893564399669993274266605679188395325498370088281747887000085806627187669897176916101668109942072246648488819174977024749905193917584203981137516377983459760478981944849050817555664134022323431420259953562778138561484854021629774734783743316229949610798343713805661758641341138136503843076049374679668036782807392553659929682237457007220948166398195236794330642805051771274100478087326481113965355026694626951625884296852328996452735504957662750953035047349093577479674296641147543863462633849721908699502275004920598896691625593497579887074150961641243104517993921369937955515354712106915532913257488234396914577562117415815829404713655746518848701680450816948674272365446733510827511474858861185417840568836503728844674860752928336251037483420912160256398600687624729047414124294013374985697364336972250767279450244650044526837732076073304266497000466043031268745882419147993326936871502057700560834795491892652493375326679541208747709467220176411193730315476209023505009753309629904339518166945789043740619189493923840140074473766322855428379854809002489983816719428021592373989698157527101729209783435255519550007627791876836146356606474030023012847206185611413081659772824605630574702392075962808784826587796226701286825067253116895581817658771734464703176967583474939524020544868188365359827248122235696222975488851569626291586639867279051219055600369788292373191642889010564269431387586186701084215336705372976535907752042686560080029315164257053392445231366853038892224360006942641828657416074168210721472395631645347992760342466469762250841907919689865921440790320102327523932502253014040186168558115162549987147012538645802514518964217140737070153191737287012350168296038148698460689409501264032078105216610183254135834091004725908259150003902947415889587245982229888174631959653607088597910998382674503472740645422502258385457424634127680489992301343791237120195384442437614616948641431849069771558771386875055346957215976062385607008363549486014400572950278589739789866105719663812699447826471347051215688347370790148179974736971621548994443682624039076384633318976535396414408232563759275123757346688323821570449366275703792870928525047845349922607114990998986285160063267718060090376285545653111653881222958321373197523164273898878644043399645994689961726612948323278658667724869010413911808432065923493622228432111238994003212498325582252157456332408328290984013008993403455785649956446190770849792079940594328762251758855662958965845085297610075934293009221436703960373885744858645248999631593356802657545110906945511036204563556561381325860828595051499926708704395868315965456391462191901165006973753472358649355389593695015836139424366134222113931097400936732141287009494366612564810474409129745476211014346936295467079803569528000536994085146620182925185818005786395592695246949422848364554317832211585698553556168259756646257704135331928252993602131843049399547697707464561898785719540614398877630155962907872632835515979022942876501994130962011459918421179247589828208645510383760255588943477145242180633403173101228089990938660334179479422759710316174242540474508990672791316145876556027772769073627273824755822151820133981562980757121956844146610538125945212546926153161521927489320497335962895126221998224891332406777352287373060653691905872371044170325064229457590973777827330058859280489713460336044923430943352730192026264898229027183608851824643408155508635413608288808920684843761826428535618513938919940962009530349712300217096667387023758994096599661192535353442373795775698396449767589127031061700974411942458052333457907306590012614327072459509343644627468244722725655893046283335489633945222813662343531571993257648320283479491817434662212171342419055144927138298386825563840594502847160210434887300980632263043821967448212286607003308974125128926928073842727622631324180029888295890367702479857470991895051430101353355469184179706660185099576586075143375625552245674566259071855344915473227474206109759154459922339330261018599037547973467245216347525261081149508253593165587715051043003397726742089697261816937209657767880407257352779970320093858207867932425991222819019861625560564926247464457580511150586839713460472031966969853806789255193878019804732178885603963872912189565418837399929258647629479461164425260097752385053715332617568565273855890563989810600941804169516268011566837487126391213276502659577700309269218025529190308286815844139430895369805288128824427725284511120599423157267539881261683076362173727004143670873221590668990758007909514901813940465669327554363065465824675818432849731366007952176155745550025581513638655530455191153434794165915976138174572985881228108314525772243837445914780943328267863930791584242492193991590224337845036233228208833753536153665423446421609123568157094189411335161714947341774995444440248190360307531829635449937668636296048052903862882808765367907196907964250496772383746371478173234306565490881906476222333252915633664463232555295319403854421070441125416705416298869494531814533797652569237943645353650039880871971659684113027014418240159836260382412349949609594125160790798184058889503297925200396593772275417064568661281931369319700868213722017524526969984363503258640154687057707870420662326839701936396709154903998537087383568985473858813735799166011143957219400053548326964197209219853373869228141858901994649256981043638436967514054060061850796653506820271580187814184282606887856249206380214466988553658926871159375577619614686409214801398247689959059569621191744041511422705579392581103942670312314777977161175796296940020324259868675501476677948885616411369263528478364660156175963760389057864776948977581066443883914291126164537733867836346025610633849380976239624621857617921309523956473387623643409446931312995313501954280199087365470108881650534398365478687938825542992491735088248865351508731999928741595085590130500709189944928528329229282121140177757746314018351482912168792106815792619954073466393134616320058880729841784947403779125720358250332813137452931057375923582579022743548267753379226088363663968358448912847742480706234675421519033933083062112137531631646430319950262904865506477484854313984474237876669612185021970490666787670259319200866337755305645188843193696063363942489023487526280268158843613516296506351661659749378729894935911829440145011276081527725903103341886925977456355926422340188884665290685821497072871602558698104657029774564816669578300615992763087982729080985310562601280781397156217596137304824324851702464204146491411476816516414679410108675990467021705547694224630742923323412065535913683485400895772893973449823162241111297209689832957395428649126820329845844796942202907966158121875052487705264877462184092618523560832581893185740593382115990538480385445874052985711249472421392169406738469467267421842781589465764004169663632488820484639070656177522706888969050120995725760285371193990422072758093790903678583395854787590861228477717893333438168597392379169893901262794055035727914167713827642850812524226704745900368039889911746042066762822664797282745553133756031605219160775518740788758425417917361759551717821775729263715779867201421918645770655736471377095744029041567498966696985109262574729980179706329284644611007716270481474701274225409026148275335213800816086531625500864752558087133012672235559242194617302784354379043169995240235075937147316398000260271819630298660940082781294798317540923857983428743355787661047814183725530493506616843705206378323393119495921544794467877235755979725407844271731921814437310887916012376911053320394690893761527098211417889222969110361894632918909572599948805080343198315515450044041457030009666517487066497525928386664393801928296722794072119000395641857112065408173382532760629162799045831623484314947083147545867654138581642985119275697320849756625111225801042628897333045221122523642496481754003163790864222890350427738897721718683323806162515627823276627366540015612613032751843270804149521676506625734971931178608511399688222796500848987245499465842926077865777782821355879410372637230042548387707334577997918120847989100411306521289323638233750182519622717258646119458340850357927751033912045813823962936087110530788844484090522296010026550920890324934373344257904318637999049943633831244326454353197152982614672801966791638595417774875953686375368301016514430790528373083282242224724597898029974476825754041697063744789067734889438009565741459968943060219048928809295619921198077817862487279968360911066157388238861671991948649463584273794658611430633574223755757946006860835239262387517288971844366730250338982967469002922206648003529777291894497103013421843650925914185906866665885215168018491541567408972916049937556735348619191461418225937537343632931805617763848459635763535972307052887035008948184364990874485484789149360127362797520985144609851124159109599824221507830863340469352211064640263906828416152817427247776150227349913692591246224393239493024074122082257773812681557752065817521661610280837683048963199038431909253354025580052668260958615629169260669502375210067627763616867068434776230359971648065345806179207197943541851178461700570313030469919780381580368111032097513965817813212601228346130565612235908766062626704965745152623723652228279269774793157060627749723037312468439783342028082731982060774780164886139409662404627782315354583544544565093489726986666379842967875592597869814425790420448105547710609069702370522219866860386570296669237417078158584490939521908480372722726267646374984678640478375110718757708314641480074353065316248987972923972997529804409065313448389348198909772494859849124121924024974806536979832839604542657276900490899378523863045619222882495215931183564277505233544581947051090099822460418062596429111682180930487974324458219041488896884052469968111865363730398187753844328727969365375736273951507090115146003562414651450663664133522019652025224802073727888322968133932519503857314618083568508763020665035961085254412177234856805950900804400273034454112448129145195746127672057067314237567033741613052714594247910225514940666284327451235112550267858763178151953415076358506974816024562587817836837224630930013227204225340265470002214420264961073983981589795800501182935897584273617477906619887934757059710235038771394403882210828836885881495037941498788921165006977064031937551744280752890212137410622150513489907474140297092454288936189457282584660109451745677942843435715378862105467918611812685933636118155559272578676834415706207053774010175354650812257342670143647793346577209868526549355484654688309547186903574978016377521608456067900626271637714898718301185364835317674913799606432067299023721420693762346518970608012049362736429100518560592769819672097433127301268552237613907985626541197404915257500210523699133535050049883109944936113687208613746521523467876702086130663396995598765726036999854931076055814116956281008715331011506488379851409420681590736471987944958447877997484914152580028310858312627840572895538070040590370172758882393570484121125101128874990523167703734920046428976872762433767967595741231247092292210719205608643020979592513112593623669839469839219280511339175000707568159596567096716237153526490533524276489669728885964593189356891206701124298002250597293661696427792274592543058491126451776449129014084621500146297265359644451137227502498927477008606342924662154483378896869862176857698828266528061765120344679639244933553256173077757780655651885288657923109094147756742061646270535238436252369923199083026250903028163054728419920818879358492027358934208816105380453589565737770805419013127970957874005688705953660819688791769554362585249942544214840388563575088262129027723115338677447488256996400565659394658410594870801619756790093303702811803170812234224194771822453039265907877429046982895527986896456986306586186975160633547774536732347087090791277867792234363356370086140484185378745740384487803464577715864339198014636957411141562097438607724893009314950065150144002734188546488560077451121690754790118160781021132454383406023964942377335417296115798339929627779817696483695853418210294898858997893513157891654152464021920260927861978191349207785439871025178816199288327859296452147815581104151846624563222364655172243773260190440901104535070781080118037982322631001073370979097976893120148490976383520424555693473817638748211522325365143255823458693610337576854858468150652345388098167421861720279544683743716714311916796437721761972602517594832103660379644460731633631944852928595790049547396122232498308291008535542326836513280782475659634256335496533494865975589071651125646489639105432431752275280460694157192116632054856365349012844289739163571567290515044419790367308715934189486355852083990936983461773707871266360000835982062039641669163405657657760238109823764662078443044021070874300827058587355931483246736364509910618170371035764065977858873692755889630494044085614368356700728767154892373730769990319469251804677933582691596266924464057774983750110076717161562348582041418699269752856100086853990253170308305331208953148032419440812831015669321872759530460099538039824810764800023656712637987520616751849597778885665551659205539028164721647558539436860825590294219064244644475632978411747357772155324410201612322731711330473773847646653055909545964495326056401477438763102046408989933917234204213539813872603750963837367641855235101395641029610620528461790572959977850716928634387427286905821707391588098669659999113853754136349951805092023000311419452008866127017981875170465585608579912136941658193067125490847772975251580841638499575310297703055136865673991211600110022358326446895304499507951199674483134805496888583921640680749610993396976306368178162324429968478491440484573582340812992277600395303213538402384497275472371484627345840025615391812592938967621254693612734400926940414918019299569539238606847587099572271746432443547873011925834954567329893183210659565947918408425964471833103613644364938520727965385964059274901572931676574047381304354960340982915346412643995317855968824662252661594061726218628938318552145307213839766163780655511804782265267242326866991336282085459799165962944301670797806482387444992410216662288352232224348134659073799465163151204860653395002076377599504811418612602103459401013443051994880800596995002093895716965702941926545520255466846070655618531877024984387644075542344377582926995963203601326811852852038900258881063002913210857921131763601304525730001794580458877458300793963786022677023521660354207895409495258777089158068799982622880638081855724210683980184951744991369469137185611899527708002091245678639862591064024993056800288040046292076945548148719217246566258089053113407794320379350820982019563049509193205730359068967240710424255909267762933426983466146090761800373100291485663076371834932082967217137516070518370256059954344014523460526136710013630164716587875429584011623265595563831788941124149597633386628815750451445568207367174951356223688159854930041027062411850228786292184324164889112456734502264659819364361859661165537398111055609266098925963510253723015781571318248597044592034056985442068024600396692143050197507583313113931114925590251641165492224351729427030185805443381159001610448208426540463823019669784100183710854545242770738363257501954259212880659186788740945815435704922157035334638803084072582355698721534750427665082162072603237240416434944119368242285792501705312607600497363038243438396511484327022185264059212818473042784515901892515116053010098113457728532146099448840692933799557392126672124130174949941064036027125654900158351808832085894220371235183076818237375913166616925673784345531257336039657689962020228041096049225525501277143632809919756682164515391432992627005229529010472033987396466557715249966981474024655310682256341676603562635143100983940802180102441139131767340477940053391635943530000023890530162882432527605130433075190778947855588662079850231862095095756174523683492775352361949416284942256423339360916492792204857154973307680390684028752189853247473899765337154314452504531728042051022418393795863023571610869475805039246268382391541174770549814576951676788676216716364660423092747053971370214528561481550467215561087737808997394569526360138525221113809666082710141911661989369372192313618242586457920886466452780907205676035571603312245022153084026513432557060478105148057012975723772031684729406806526825328437482178573354643039628066332227149725871695988928207115042547045114922533622554367580449967860351465773412845433353703492096073108026257102566437240567004664725906927229439686610922836860023075555633919295219197794694875052594220992518994376272289171358501322787585585384492380586163294501475507540619433992248965285786527130604951306206251339113539851019140145098039762746191530764099639762826658735024998503721941335311764857682701511734375671018855458195850403968235837938998812848586131483902206275951920982257379912308984056008155463932339331089444979474771651534840743998962345636620356862459891260038311909506718947397174101304931986717992120587860863296811089533286788861536674830576620883483218369796464961840028399794860745390003346799000085883970403164396149875741375636996601825886454718409606764544552248918108790705976726771674789723929489548030230198508316375907150463598761897255980631586779125997969273709645663908450986125042271348057358097812668781263290328534847060983076815824034519045557030282121695660706146526473691237200078271185083173059954010285325909602535300519551795879068831572227468183653913897637783643641777979770241364819039950678603322112045774354370300112937874733333025948366336095917179303143008440238359214519801616459925588183363345997985111870481263094824310615948814827408038253269244273190265855154989552800703818199775092799650781188821264784038524868404343198812565156549851066839613082508586907726975814095490727420466932003446244761867133751466407261867740403240325216182936741791804410965983473585575073596098264874400950862320132339730323122832475299414352125096479737169282483803603163388245592943641467990064301186462330776700890934507564468355786121597566251285981890708433413990722490156099477097238192804568021582467690382348748915776353442426645211117656815459419241866831163151615520124156459512535013095413906848886530606261285716859402092964550318607228372577555032600544365530815409348972835460010420092942982569603570904720936109618449553464883268516715561906809610134175317358788268529268320771769970458576886917870261248557498452746881946780213857913367954037871913441854148702185011679477908165346794411746810093869632864058796701002669441464475149076783123737350901197478375123099062805524440224242861685764840642343583672783007121495106918734037175579488078867947656420539882263277681198625205047877443276514056301181289035377698887079648390362941281006856152135640050423248761466721205021574849651922079363906580102177132046936656947145548861967493465118371630419632266387615071519808093082461590509202859466083876772413465620930307047880709507849738324556555419127919305652701498199708470459983109501782846048376046628525422170953774296049414476772655294255317220302672725074283286958398138724832177260077409984246284429973331148033770360704728229664519380721644948306924687044412752431692536332474549501105839937201921664390998792519532186276975548787332448710973656036278617333059008187583616036680197558898837091159514694155708465792496952125625053774796644963866492725332654745700737949085684235072221666033333061851143524941317339160972489553467026262934036543170126329305562168464710248388828714365384981115950784823803363671729732039836034674442166956804388214326734694238037713514912151224181047304596502170286510028057572412625996283882850913706295053358314877951305021837455015518364883894594891045224855218822959094366203391832212028429132673371014187024157893418423484042641706021750641964101917493359240132225219898725356388183442376579457453431109187463682595517768006219663103576099079812609321857041650861110759699560905490229511135845359702918896931547286449463556980331430008474554010980877540402660118853177012882852688511685985524374971545318218238854504784043422374559868816409035301965189008243214975937208961319225023740197128103015488706381102296150233621390359973562694771675221550955696108057327940761292041508236604895445652739842363672263064636753173496666938859003908217623383599451723563959157794733579104466046846946841741300724615032873451612619084608279928769068897800281784476904685235321549578476146435399078470842997899521210443451303845583240864286786763736834977994827959363754289526817577775668781039595103862489801617758954243164169858137309795462717183152834892287997531071987880703414070911941751013574834590726637407344886997923634156014671930976828062068192829593650723088208654926621203907404016624578322342187403279641006590812836625318741348762554302374618994567007243153795771122866316131457898011645184513068814926952711344304867932359464026932638178325029172628321563321201593954607878471189067613190638719595122008774134501574389211039406136788834200591127476485779824003780960001142473415484210029502821448337750020910891478405120452297090120503081856537051336898537423686547061271467539999542896424496990568021259404137740432230253172643607985970568030388602718670276356141536240066701742202051131724142812160271066814067797221422501870207623847855040110032311912735360649561436093750252511162978143959801902459892408311721704611761387407511201241688287196018277598379341673859795263884446709784313828505680576723985317365085118811380436236234173600028638929287302123645891283826404717713362982117380270230376775101191540960564912069637224478948797523184858088106019080286618201765628245853437688618557506532461198660760261563034462147597029600211330073563889827702845328747751655524006995075818413491594318357814005921777190633060612478838952839853946942007988756242237841264399831947852242480745976005954563212635713588431127443485579703973057175857595388832701404846171354193216873985546466840318689451379339174334487961032859681376696119152252183213133985078006915252241368244803681273253205539752927007570757353754375313538854391026248347855421808975080923733306510924283398645372896647618684750991003565099643190721182706548808797200480143349518426909253716298598745435330462742668186628991267979117797467289669950896244597984701534086536444339233586902168429356771707843507378184690674624510005767056334044314703490652575409804024561376587712339378243772933476729586090075846618349466820004170705404126516734691336147227570973240354457831621008135523581487280525618847718497055949499091838254192062282479938117391646278278891984236253121221111191454543070813299212611971855453852631595247005169810092257229045411638472478072405458329095506927750501032409923934584078156245135279371039744087644071960491114912039748283930023421017201205145641771304713193364807940277270132799351924802970316035404894733146730567045611617520296929345835327022395542658128409603327375131641594371348636247517688338563464169943807022740407713856267277403558052980901294407497073348790200292728801905107698092323131318087022825380027076646041502878532157547865391914603074322367443765445599193627369350100974501089755422366639440439828691149322119028598365748193719942394351473439796878137039088218391599744929531007579960618604536497283490323384849815543915692056495550490715192589552269822369339960487850758964225045205551194945547753120550153782580210467622103326643956984705276054857585897796983586720196819177799151607898617982503661575128448269587791759127252515316728895137195175378170720658032738175402842006501604469772750769897929838087600028563695866834924363249215528277759804189544826690565076163814421418482087958345089941185626946016621432272554602058698156220586240118492159768621449539014989576267802082417210335038509693371096233738437731717201409679544276918652825037409056444118639913294612322074792766518810242897889431007440594323003717890547807114443034328392728222613849894018301999241472182552034681701655438230373950070037188231801171357995789283151171414617475556789179232247411365356487579828066501214016207835275217940992809544318647461579166854693297397111015707234692406939486718718236261068542994392401578746806063195749660741692428921711572845048198743563743707795060933580326954075172199331323304047578818211639756572192506846250012456419772819418228770239986571238635728228823189582652874817592860802887216190551140614343082970522004456175788906536430912729872099596954572192217441946722202034897177972363652269144495240549207961933451937268857899456183253688978495476518938765428823751758279347064435019032313549157493211012942817071798852635611931823599385759615015863140215782531399044952964422409996186681474805940950266783332531015295263409070162199204728644513081752051631595496650115850609628836913683129348601461289588638796771263262501100748525452395864365741036724580965584866652666406248645799043068879848003132946014658113642698909259826475838022328741284787118954214393465682661296648027641728384073648005780321889794808371402904096413757063711673938191891074129047924891794221294108335769214945409185237152245431049284780281003461567266088058331158813442994986334760610004580696153369062588769601024702023729311827062520135278493330845990909391151542853208357112775539001312730190505658680282024650000493408330837314838262706446836516636798514078390608366217288121244654235558065075004603158917384872166814876304273793379574473146273748630371584781827800526152018568478594536137336557012941412283384655424604416812716148868790656940371290814411645915320216252772219524165841496572107983428797587871088610818245773914197867330454738799214575308055354635753166641434218426057615605010355788968883827893342869091928835519267735573968402362472019618750225498390887894283555691296643750943545788527469464395594774152268141384896451051805408014931632039586890571793542371742963786614461396393288477535614160942616384765810664362074529002579559987880952713126827230441880558360802335710223134794493926019240178784836149825996928983629375740417801658022887348237627894047540310363097222989287483969567352750625600237190917198063572682378447127426706213549407779331543224047480833895790409384408315605146557302784753855640344062183897318769214597817105402839472561558858351029440791812604084487773837550365246792257760504122048752018765598783883037604734908039751613354313144810587756642956852134670717357767653674374561734203097888084173101705998314454055963469082644100695650288528654762544025378247934592093105177561390426957818109642663825469863596066451160744434387260738797603186845892333138999515577906386445954778990103464293653976585043989989156137771289351843613908045096791105258182493688444654241100527277186990516042254539244410523277861775515588191587188368967075045303383770154500252561312345261453016691448264469890631408062991352450960254865472458683831105032388038623305007406878857715334897989600763463376924872958386389941982660863587504725101685866468571517536496668169329185106021477905614664778738233471984643841228463925938702511379012101834460165957429509651517073374312477509489678956496166301055406865423501211489605953376443742390204841709835203418437166461089766620701059142325779122541653493790983827433067030981474697613457056725456579809672975823690253019038598873745053303312137026438971963160624343882853172699988418616576313689683767918616030363149881256150824916996034128072545592334013749585654251133779951457784882781895307736351506751195800152256764942320108104511629581730793680965231958939033989416351902114454391748797410975816478263911613326654231690029597007205408257195544074459244511576596402753876763243304513767174818994782830420573292388021325127591961804036545773987514986837583249187792203499439702489261935675944343563504786479477555707591354207972568354220792428540208134185009261868885647701234432379069270121415299832146290435355252165271002917962622452180042103912786121628569556887373699180092211802266301264010702078245228313892686419211231549278128435275295897541428292010457100200968234823215796276889110161612543673710346440406148465660994007049581278906482967945775487425250963174156927792392035842487097210904595807259071372118734667204377043835604976785930086445342685714730428713238480992590916260636185791227684203491165120554652000753280228930179804559948963460608164337054481810461574552742208600429121519301464996776881782617555033958550235750689006221930758585769467149541653516217346223410101327205622608072658009519559289291205936867955876657153902692917417103936894113822462725399852843240368359611228608411422963984164775671429019896694504007148456875181207897580767162579120752029135010254170700770467661788052635700559137299324577833690336068783759812375358284848420036913910181031099799498560616130103575492418456367333852955424896523761925329777027738413353771983467280193544219119592574235336893036437782256489020242460877126292100629001334418941272798562323183039641019394904323771874229267668421621815136740864989574396467979038984920333709779441063852187082388707433557638552796254567751217881675201720158655694886159280874732493420827402405240142703044011017035651643455813746718346673100431188598823743571360016911406163349147308273480521691174266464471297187638487455170351262617862506688678086390156085236793682393179068665222066872368375409479120407697394300779530203732962740284108332376560733879682839315123843312384603120580071163071131468879766353073254877471794303467088891893966011993528500393775522951304532499917590611981317687449308955290423892255739001439382169898649225049917282652756085383554889685527152589051871790042627337382207702942225420781940902800858854409978914237030402888745872713594360064961592166413175079635345245205220771689838766164976147749750455249064625891274697642931290534547851984895641249598342717456573268888899842502500692246356601933597926834020329892482373903597707218017415167676310059942730628636460061478938862362294653668156644783844602727707745048904617614422413214615422457097553824235472650480719226066210673803233183117660905025680056828069155466140332541618109462590249355316604120215976465550056855371327005085555891749410265095490140355381431948266416031476923237994283719427433490022021080047182310911124867331461612949899132241055301415055442862353106141172365480869728885255716761058611990298227047224229021425339312419755192895959590486944945438651600549336533459798126648488929416920998829827540112523518134421359788273311712890547508479036537975238104252873660493192086930634889462548959615858030840548380168395052012147235170107325514697177647949922835305124479134854844428625645767405171740742566454954829187295492741459766386433154114840364964782846366088740195731461380976768995312304387772878732999442248496626684328841935880744651383068785214993631279210974880955340456637945767427869247965796085031929883106274407909063245812155176248214954407922184372729590410758269967441960099300216553163715739047814377619101267342323541727046018967669901712910450258507629693330693747374695401804617924048571375520873720367629211090558014981575829244210732035313806220079009337567542979693636393643129772289469061251706828023756305829759094108271368230096404920320958067024986619541365043609848061906222102361668674162975019099623781282173723216521272720058875116053739636831269847014007948594146471967500393833875146591713707914824382243345702781519891165228790376629914252219066075759730870851364999748055299976972879955815760901089276598797409081425091103439541335221575516013436603458593228898016348473611495468241328145437393901825339432013164124945491594639435469811815190842767896249133424958757586050245063306474990116353627056105331435330493140102995238310792842871188724646731116200475669231080427936457092397753669203163516903875920413580327625782184342100042261591319258598679395638482561576884068726956142542555247204428609262181118329380037181514843858394644829328545171385758881621753635060377776096052451080556380732452296287344897379405265720298734878945212665174868384109293578748779862137327918515245389657131669872903495749581342919366158229557835466953759955208495859160683673854931150082231002133725849488381587890766820676495167783030391639462306976538059258435972084975273144474661195959031171062421495798148796634935227692764286339185781703979540244160171270082401859286233115772775335589486074042239394613898179353232677097949503777132754166354075052194780685952762774713015305277132935401949910395265633963266861545883452118338789544129340042368065454035380201121683197096389422893821074022120337208220812295271745070793621791456871412181619027697338932400512559809828936209831111627346612607447467951703709519289815945996293195656650610484163691341989089517107900783888027075008943101283941628736793827495336349442726005369899441598994916708797641853351919436534759731048769860867608748923269149300852538059511944587151527807233315094367697250503628699821399131904934250892307495449806532475754435076917062634798327393783405989485055136669732505678986568199904230940758218930651410619483387753670003646337373868080696964944053253717063653639273521069482101438665083003552032060903444313564282081754852905229922655302953498008908708022034211123637480999990536893825377062301542562220865339449359419050116462921121403853218584215069270341687388966289018527572939346253443016017550713056157027020523227012836095807665032448913746826427368261915956445261771960958113587864364572889537770514350729384937040172612151906496696123459075093075863206345507716608705514760990428301260670716335497671603658787471415601558937660668052163590551249981287694242218603271860157033169298749605911598722336663896342742997833260851521637059172326080486890105906619835962535137461274190889914757147202957338246183368926727266201277577066674182897175195293493393370516395190611196416816167192886525593479404236382033811834387087353217344034512806321852313911177028973309759984893143674147134563361206661494783478200028598306933195823014080352270762074747393569714205969989118968311633814148252840364125341240586261348059455897413730308357577154189694843318025320890691951679201584965025994515746108499146056146284976005670317142607375101845646477986721925849126726805069567598305517421696847284515097769699329998973512245520847324132544319250507532983156073421877181958384031733108725690127387291942793536413342921095778585693274813980583384274799791835086344870294677514363222270028350492325261336365485813413323620526657056497589104006811851492929466621908130871341832974063860682815040617567577540234126560701406343502468117240586119075301109478101492306691091949849567687128877605042133641293833651741389200914919108293748312794418429017470539834442522272643664477627266863024397336815996611228407342911365304759724410448725560701062592444514211264527131882414007982653098610363600249791886065600700992385908491911090801990289724646240225579620659906847055508758536887787868274929423094228063390232283943243851339915864467577359108301927742961943208897633487526414106883501153886495690419315154444462173646512869660238812338004953474945261308187646206671955299767154237005270199034295843379325659257227451277947682972691358924151008792932478920085765356202159920111463439887303907498611777567613168963273644359392672977397405533792274833737038063985010940431909218868439283851227630772665464335710957240904212611667051680353686034571380216095530274628056300276347287339050933439023498395429468956903135358661485236987324217491621961774976575447143232274257363259211524886476129157333523924672535392717073719182309970547470260383551378093282153469543731119912260695855175032613960441758647048419463570309756543832872821515197381906057995630762488009827054891784322646024314567346293930626944828206488849152099863914744179570717736154122116785471522795726634398989270712454505730087841124257649402705580634087975668842054863208227066409760483636720691681659577702290855109038495082486412523093312022485573414155193829304141034494879688366272326905848387142462629755523890417345226702209411450372808658939271001878699804594825267078408181020696415397721414266592980232126154623827952008537709546395561475469685537830934986912049810479486743380654486759574725742633218839006097370108245159257532811831846170067418362614079922308200684978121825279871723040164935682943446556730311742670268576063730618852478365201646434572111998789152579354999324408968888275161629531481386405813108419104946173354553351904119694833764186783050838822459667828997651772929273900462352630907165355247364775335189818368741599456063729039842742991414484575055220507881247438732617048262620487050511943714133416292369884300665769308632883492864168010526786118772333402752758927199950891855796214547334235143091345420630489498291141488412880665113077095104894789790743179469477827919376234242989796845309560383413753970335969298462998837184563080021136293258784715777863684301980589259224011223080511106880044156976824652716220078375078090680267912276958627724662012863329294123407019270868078381038619657939799584671482282212536817640746437416141191303538450483968449748299934484635607568142922685490554003794281497243046958568470165978489753235067215789544539227617224598605772621186388336669147332654226053995484877621312590274780302174612264621878607063334634844518230092994093343056120803607355533662833358748588619384481211988307422089914654680309469351713942654400118066595824433144178724129945719727476713723061721396353774289068138576878915496123001806766048241130639740859591357117003871742242250952958616744929569636302824816671452108704358014299052629742733315975236276720924375248485359537341411087370564579907616193296442990831232104800375092376976286970798343089549051041220565832091559480464764125499212443715486064039950147893165999627824134163803946080413710072590262028524042715891796896166848744442973957836333685247118973479312306922667500679203250313607082591558095410097812737110070416983749533417412309627988746007821239343488280707715454073041095259277849414784055315316467582380466080826842868776166625915840675313849299062308157893907116906480127446591849338207246191232523491382552025020013016341136455638577948228996337617330019757698467434475576149693213167137105560598356931771729860538738205725664306011166621437038679423857605386520147408761687624592600995827181568502633443526971907132308781076490723697511434599305156592556129321082099856377100426795937239230655813545971458784107127815597735265529260952029522135109501943753642666094006415578524875889708707378280729190805317770894168838651517345520148667682422547536200518418514319870383716037091701132855779057098946292332842616846238983849523798538182149077762448533949006134609985290414675966784024747967638994682639438047844481125146338665661584352232000100036711058229842010951602689411842857393559105718413687387492407299618854437338203062942852409165477567629732120753586194986951802291670504994432279514156068115185421081261239059553445334492219299982803084796616943596322841044696811407064565509194572593376020095027338211955624087096933827003131858679002033503527702720720819919411867691799857780078359025521610262991040065587672622718870289449828995049376572819537229193546070151856981691042318226892095636532258742182743962954416839736588041672617003085478063425271122524316167829592495261969486667515462722677453232810705576429664068574279653070758251082430568938791354618117427766440896950964787993825601639281729470012514230817744601107281075940295192447858114389896651376163946726968136065795737845392493928217369396025562092022613157407691782125129125377594807647761582129751623516598853616619227638749532357359263409704277482060097577361645113901832031445585042861608848276724706773033587331938994870480406399929621793771476330468374532215036692076105711232904610921406787591170473052085819169106669054087956385747788152282777350950564686655899433455841520320010904351964592773251313319730958896189976663060964748671021713560068497316651306195124397830154289812203758141566899584956404819497231412080766954818743316793737539046005784295923149590810946278501850759084178576229377907592373183540461652772572602209213885772356968298649895523698839314074040571849646441432516253529374299177351641991583119608257910915453433880865948432368598387447735987714646803213632490715385165888432411232117307297151354212474906475261831966991281000096906088576769194484819340648827622238763263146402446513972997361195110045738807927800256750990762574969401978355441960566288740542974027614386227832310335345964632625189262141272570149553335578139889274459943798463123078091190132291844242397020639278804771694933172090514882898787246825210735381526011456614591225136660685716456088396261113913239905798059489392935607092507455081742379483342351555291077294297912326347167185374016468068681657908513109019460208696692169292290872566869953247206952212160065020970053083370889339848327652026651969786654672078892187797566680877464334102169211996346373384872715666377182361900736492030111370986226655248209727326170317481362137586127494308510163376767657286409429119029143736967769131112870455218973964778978735696226843996200508034657885489947685024774149926879335976145796727575356948642129984249704310216620235086725124543417556215082587639156959293891007666596332331199606504633775117565335394016193925476200655157472840168746299271204918673540599330425200958737118653307584351302260575487191919528579867746778948322515358038499981485994375002577619106983811170726233457191362824533773775451842270212170498037252864625216669930454994088945940821763400444751184274837306266587659108085984332255627854072320880956882180141198328927747624701830257893135444862643369285057541641429933762259563969294725483814243188524543025799730929484000723626859409070456241568439247561959326123382612326592104645903519051112156978853755976657010274621856743585290552489541489663680590565489678631336533412992441581411917338034356847048552748033477665483670083834810294357024169832840849490118693818501247702244522515617665326150241722238077630210560625515741046695897759087104443590257988859932838019656526160297913226256242931646157173958148633047543861975310994621226659084519185376790435540864952284281139515478486824329894141893696239268216203593326572648318638716322292370050972778959481694860403226111917253769498583167602323585475147420792141266150955309026081184428215707136629175469466849006245414907275766368951966323184405997764440951414973071582960540923900355032973070733399529473064671890310046657492987781472981852102772432223952150660162893912152628177963769773559744425150695771199531658751289161556363349719280804708028722552792045665645261021540827168689217896645376829375228238686611088401799698050527529702104599224058725101259810842802708176025873861187787272750622796667753368672000601623344443870285051394708259200828454838850430718742939914904575689787842453440785948099402418283017251087230550539470185057750542731134750566347721963248607853519150796259997155387769967967862822455162447134774826919797517210453721549036408942188594167760105619619311868125632674790398452304027453355246504255237827565313739559492927525736155000750168347332491888564159589071921346512957011820692728768793421184277336055844636558599272368686679854552729142429098916292097685640122847621221772962815229516634344561639510007092087141852702977025671447742715765294793646050317725163320152286413958071254785605180416546195357960438296639889132604730055865242988655214743939241516644198759350203264573111036702433632146974594044131723413508884239181382903085545936712074475371991968984865756244196421090235563789242444207712821874078419286088767381797413714758869673517913979397527796266679587319552734871395566219394015374220646647107481523011445541115685943645457513161948135673282522105905975673930745374729035158920673924273804484277554179554074530252792481859749000977521475500955330938012727022523648600322245679100457754737182598393606169005746465359443647416653411355691576614709459908456356498157789449266080959411966761943768818106858857784723630022473669980800073461888201380674214352078411665387765308466048434920832023631439905854443619442142958751387998368563383975705828505356955340531246603196768189978157198386540125567659528247407808656128801420393077160574016765030272962988606372211410449070463137050561417656932988379608362804909195871038854156122671067116804683969692365270516027530899168902648313208011294675129878101636422828047703695836379087554836855293501982521955381044593229377889995108622628048860728998330285691914305935826058618614817438030955520984086331758667253003859436673835461038552715530969527568988687018320849268047694496778533645334332169532177856569104415593626582987448071418793080238859638392114089748220367135684461009548892143387079653155898167136428851300705649274323607910216274202655092479656809252322167323116118636092757216643577453557065113844967581444433823381089331639737724497970777634235248880464748817327590899541240212121605569322793500789495119933664547622378435159700965339688670430624246730435334438981880942500784999803003380833267922649533465737602917005302945367375740919984978166387856810044070789989667828952114839529188975350997838389661006902985276520693838377284106392960769197513164728289997114212079186858352750923090759474777250721274916973454241159951333490891003618606266771338834951443678386053896283240087750082873895979192417153264812100083795629827051328496114125793301676124599166343968368293864516195014180227627005656695790791367519955845774013203088798993129946652176527647290963990021509629787176630540635420540476124146146296977040091633897634113480967644600178991728520532698311064481786470494762477972690097033107624720453657657931361360317853506329159883726137204005716615560930728250125253868758823121599217247471820783246022927142743483199349679632267575262286212929287597483307913377712119281347398831934954827671602341914125276812770779609858355915921753181870017964800743706622333750554907362776406868343227103329897304176119009301798425883735406217653510904037715128582259747996836775635230587438452462568948791635963333291047938098404301249188513079464544470248014424832211736686855569178366805231613613946365366162181420072214824593134064678251951425413478786594128302464560880112315909451752250119850708639634708184845546400277651091503826225049248393680946499632863224463580673255934177218982979434197493409888882006172361533899254373140873789208722293886951109130324699476903911321852991244597096229151702604043949468343679813500638832811069350671462977775288268336322867938642820899932158027493133190488512336966482192263910995934507784172760476208683701622590270911046705291957275017676424841203268363348855028783167195571397901843505896963696207916636692687378619124389852460584933539630451202610044185908764917910373469436461277481808719554984834932010634549671843129475134317022793090897384954015770439029900053846016714644281243902930541278991488662868999505725618497220956657241609696126032692948438565116133673252761333634540904350576553680543957875129371192675216176959966840864995358803592824157376544656449998490668757930683765738896717632905847833575184597706714414086764403338701076738379614608431964543097530101928432195136053226820010015170136192860087535995666053523144761122903844633167667304722840602326399970564791593787909803595535976364085853624379510987386047976758229064018444405540399651053650975091690803568505756197512878541526689163330522590211647798278343219622075269801375016176022532946492008835000021306640039615647774932732892489976074322545785264340015458591754627037803939036307026064951524023119684003232795373232538349562741241931883623455453995852401806369179498268928132186846988630996926240905817661247923190015574947002607020242831563344605715334553560778019960066161825652777476702834302757649967708417322718427116405057488509860513738509032954005833751574541629717708775771916722619390148233451593554610711159229543371818888891460703766689698690015091181879712339467089409189061307275972089868958370001449529768686547796886529343661586487798934442439921123640765407064800285108776815471912359920864448649589431679411629478110060064481901459926029259201525659446649086413186515376013428154877750035817802383325704925113358552919355991800357743736197208810309152834238093170999547735661074014694592883910663875940492805624759197655645155075822970685207444077362288968736511216819543494739505352017492328370467852819399185443539422700222833819870644825330817995320411731845570716580393754551070367261290802239279340249455707665612319763237139130058810350550567276955498009947830589110726783000965987832424805548284268686703772192849554214557533726448315822724787653098800286797203138320156174244473216512476926222103215057433330815000154722601371846342889838527367962961974925285410509247007687710018739317571556222119876256942502829413365599189894684011422889308253405024667522795998167145283964951037357990391412982088023571240495342709756333314870913542138439802320306972621162472515471802753638398096274017972796408302793855997586834052548455097063632019611345877105313830557766935939299442391992001526964713289900255327359996009710968474687904920801770087235425322901224021595748927300914885627149908726644732826643231273892730823996584192653809304938755598713976327539047399206376360557156154109926567206067907538080019953101684671422685793807783493664361138801439774884988421081972118565381801200315521408720941801389831961308340161038981055840265885946984859778454780515706650728079519871267637620470662629213787156488403708848715444948376880618955920774257534124283530509222664838122498645637780620306754773343604877935871220496076237378977593128147253408648889196168246033368398249030143154191814953881053126879711439773498154213023442767845499258263435040157055020955733182105919663396549643542228123399286674263384795613918726419701307511278461216499248472856833456105869097054052229982063049693406099319632545558555081318820687225831100420431242958623902499347688742294485751363526553118751690672311726082931834364193693281637039373353070917497138305385681330829248150574465714974719238715015852419717246204433695453034694436587024032551326040118867960938751170016620463088316771216037530766375301919786117945377827454026093432203124193857052303202324425757024282307638135999965267889816540220842145768664506311803947067075506650728603168587987277968096261764269055634259992120318387077692923685132681475496748531816294695359261512053124253583296765044547360284198087133361049510081849061633120057379235675585217192935467694408018260090647579651416503811041843933538355091952341406350516777153908902894868370194864985399765151713495370630994406266148108235171598327450947804174153471807853642352007535263282946503119598292712157016136792821097053989951076830812896992278475096640414383124914562037634920065111009832706651801976705741388079212203070959324133781227525496564073254210603331365798672188946700193815767728693260534372881917223095460493222967398820854297459247679855299138391965753715504233075179356484246732507455828969227733922582414573173423354061304736067604725675477579471971833966882141144900650954631023430346838965701437698547153725857541812499442776956811695836781612907405329803370861459642344808948150658702151941685043373945365280601842854260585555818709118885733874621131253407493885103092630727888215392103714243144994230309208255384869258228736697412065604758092681331610910959193187310590047919722309386975013962444223697276055314448897815377775525602348775956877609312812333773313117162890312399635947046894862799657176162288852138916167049573630664440212819317720772655584669425449728690755766030363453383530070284720861834336490425105917153314805468399242786576332834394783865331424925603421853802201175953540591491681579846879637978304230275577339310315047345031034869166846920727215037067804079801133259600776889098840968592036115261941015271056868983240325354422131163609288891441598254217997031325603315584028066232392465937434451959089103925135807453782793229636081448502143095440800188124454882434917076158028687565999023185422366276277804074301836607311064559372181780211241087914126265186408967929196244061067641581457974562993079907308751967400665477095171196483581187790859569279169033552877746547332591342304082271539043467309242156256227835493120821941834498448101292047914861540968320727508794041124804126598403488602738661634835989622554854183524455020024741237515654379204695371051461435131117240115446000923587785447439783576321621238733546371563475888620577750912477513345140911055264902485227850383513636770902166038598579403829312562259730874154731155937561852767145823209383989908590447875857856623546596122688503038194726913545417862987432687198369950264679942063825298559136466355841468360425365863758863102239082548377140745685469455175977675746738690178036765416233500461250577166143868920702070368120606891430621173421104417607812586460339997315159992927235571036185501652077038313622933260144897479205460133422931601683162888362090438774010904701238255825525484131829130198941876598093297670074817514843554395158687371416687263377115399877663873469258541747273326064872478669956826883007961243910564457288473656711642107677326686202321367637062317010031732307179823674542824662022682461764574687249556651040921507797546913263549768566824902887200447762595698769133637462622897305962709464547148490260530586393205263987142604226597372749756106562456964929530867289439528819104833819071326981811299342752741854808103778548206277155885997890071577017738080480362360395591686188750519639547104658963381061249902542129034341825018190596337852454171017269787126706667462361785581701970207322141386600042672554237098377879034461371023078064888801631945268320090928020288415912260283527738875756024550879443607906510973178426198547542616179233310262622739723732373677097620174671258154519870903320809194368407995206729208405182857445483815385585434517408593545701759651941120395550444199297478407043575082290013679716932934247148997475728521032546165715761098352186528391727643722124233808511394260663339021896172913052422221914480826480861876658474356047949419165129214131107190858117339837693814484714250954530807217593048469223486121798594283640084331503026050780958736669134841956900860520700049014048243075393805359295435364452030800561382057795665313155017703138103536820532935325353720348176199103802871574728801825136178280248679619562433924989324079946299792254712949193077031618492810758259183523267777265276209989276082167955739387544940442387717755868676717657101300203967421202279850517345043041019915847123214278908737411064287611155901773923321940608165694490306924593551025535406824382289557541115500345011002380164235922958571775202627365685648495195621261929476110400321272946381908103297428664688054818633140775993106249175156465338485109674293696840575424354369391936009374574086880747849074527530455392899025685159528065260985273939869906678752172790518188980966156273948886845550122755299462444848627614949613371959389748583041133046946035534365066839506047458771128287304595468730357106495974141387971405587040924758359981564988010063169113395257750343387863185285500797080350399840010944323565160787578354765545653245956271085256689803030934329315368708519522037136390708022709081596512160969538469061245195787556900969528276112668847674011323877534079225241676433216520920289300071460886596546360972038931358302063230001507269378352026284561732748874631828895827240961611010105547797762469562694432428416010265438726154462301415481322940889863227485019054955673824303371073353533237043029352595429583345023607624698180008165401668222972525191224264131477516448407912556741271089990624717988602990884595563277328427357641321495656540095146352335521685069557892252819376590721867999323845623479128942491967752397916460035255044690291616123237082669672610566176786424853354775514962630123237182986601021283028729825058370389037186150232074321586230023139892762400067631902660853380847583306006931556130966653445335127782909910434813609389909171415431338510583494603515920488611977166970253737815596564265762761201837581779588796731929124020397881181054986842706857315542883472592007295011544234081160563036489126164234645283825401841668527410358112834486403791928768696853582165533782600867263756795772381953832123570402267735763319788067658961759579600370846286103258359614875351818700462282612864566208574991141458918335199267245340898259103929245268953391891890641027048766507522096856399563967336747456747219500678897890364030406688559038042771336486098523528718016213792551907597450565819978521673779215424734325347498038645560047670686057027944217351414240501361491579056497130038615062166117825220817675706791832059436359498683464537816737141730529849078149815763080324738927817683021077066794993448212662987396256935687855724014566404176823973377007408142783977410540908906332840965027848266176085345794927439766197636710629767853421656376608729042127102387401974306093135291529564251753703533393662526805942890258400971863352011729464298073193577072391669205902378507498247829524134887250846997743582687983306305808908855060486952816203382863183383086851102306006284711813494131681606254972423205185183914066651977762859039075364241539172076879130554649899162290238066531610894606197911377291883465642030369886726660765078275775573973731211336044694640065800202012773104760987506797932043501225890537078603474000063029494193050386741267941731212533325527261399357119455247081742893876238385799925583410140516306099146772717165179342447791432824742874172672454655198677872662571887325483722209208344557860924216659232996390665513962080341641072191070545532224939935747812605010300250432327393688381552325893727528591886084474117642543156754532517495377188577948468369771398437330060044482267697455179656515339235237488673053327606355558106268796284917400932158707994790322012164114304749992775884348238116094801737636324242664935557373363570590135730794280270009486338403557079499357178160028528187116143363654070365335918484671226230384267753839080868557749465258996176143019386076105697318685034849175420245197183708535159386368695463138879409711830463962924797100225957625151684607373691097830413850234390652667130038979115769255355019469709546141223469527459084290823751302010935012926794128797942408662779757120730938492865798107355225100793816622683927850804894702622221645076451940046318000608101650891205444934982765279913254257636155752720265632729563017304650345973601295384568862794473271485491004411695748550220226618553071570033732374957978448694895148659425362027897826777445748019093828545163266408794437240796054287964953968443644225027350803301904691677395269386269232734172294424302344576406312590506779058751443576976661148440707577437134962491510774520903320653482111807622706323279490952213075753983800660296247670844264289850742617717471394934696044688121017422074386489993834342438032535777132067053426937068849838405461585065582402217222960950777066296081814659211489386262433243654353694689150669157311446338738201359558560237014116561765996493281011774215270482987866577667173842300243231659427544513892438833010105448120875282254269294471790219715591286969594034229825715119626966027546651651410437452179580001283882153709709027625632152861855758630642093276375531151111154069216888035029677363808233385804427343891047703893244334144971443863116180688207832858404274123058924938497468891906754741054518147974247817710471778804978433138341713598706107251961455252724772293660600699323171051366153970170555472287213312432937480088473699482949024965872621944475239448779589292648096982400232365669293178278130918342166062319051704953689191459946747478132505318213818208330760645151898635742979012724109712836134404133530731748901629197893865148152452436839969768944122816726389347008179275020204297946840346586431260574868511658972883552558882831508284606668559584684630076325300356258897051879520399681590416678835689626507115724314575489224092646699738091595596684043326451134885354257320196909754091141924041210122587502328535348762028049138933766573492946694012944812871391120891319489511517786265087662905579306733334326237761887079184287315013105142248380198973717328869745216778409440864489492452684802517310038104048364875299140815991242214391953399822413976601169319573509902917909213883784225127425837930957608359272931819883693555610176379472426435789759819765026347817623001249280918426004594755406477001234127851736549074650696441160452393676705570927185917754688816457726284164615283767363551494035710256084207013591024135883512338517971008540059742360175978805481522747754133489830856324717855861730802674593560939287104684218176077002644351747757955359993952504314295346034003125706550200809937093297471964781404483814084467737602844376927044528375636378479799514923923387895129936848266965763455301984385419485903232401224084843504232611597303263304184298621319944880832135727357130620728246860306573140772435800519650416048453106565488318185139807556953545547047556444299270105795303748529815506604852711254070967353352936890460412340582402923072040003865888046140107838300300993255218303927632372809730341873105439481724682968168305979472120072435595564522873247190053598659482729930385085155080520176501266697204906886244244224255635326425545607561457271001398977581664776281834966535141035566326800624766866820236020157670116646591543127857763363899917662369336405018359090170558870003839626666760716446294939509428149363095401582431550276591287358032140058029897481442108425217835649023506779080501349030433083425261900254346975077531014930461059216421309464748588649408416092218690999478290412051094395413986768614573930859628416220792586981479817604207474589012222464582070930361088687653638801023247760625539276819405166289590257875260633969416174368621539552533366221171734986559077987480485421763844383964675826293258280722266381806923412200127392762972815560374286919422674559866895203683686937645332612022341388724044783683619866809072125389384220285490645927185844510839110319768163920227467620682258714202510109709365089259261330119591292242461971394355656716532874833002872959815339865064415499804207265777733385748035098888112121668612276558218717338087175108364157986871246011470751459089115908081168822533678500844110901746102370040339767177818682778247324136654458700809188469971170578365888519671672482727660402194202093552894275381634745739672059337572456213255330942446876638174238044148283058436306177483692429377923397520265352846298456047825624480138971478219859332100618744606068927445746961763260205282912669523506950776867151942013320150759845537994181762690878928283482869725384849505208512799230466324556377953407702083210454262109244439922553553907332748845403863706306287611719688833377385111803432887394096801696438254508859991243772030381506165124726382010811556162802859887809593240732568560529421315858501659895290527165467748106689720986777965990505101681929266048911564661389023282877519509739043508301525427027742793444432190071294616064206264858531644865953277830058522922014420609278626844854093497024893842518184481401140615143257500438059787458777129384043685206087553523785569376737302226358869178112209577803369692713826544408419088342620605677159393558149237741420295722998320151436784345598801703425037803635198501870343207071921020713246384880217305375278442459277112977906183755211898875190658494566689273530775771759171770828003796335610632354743044244465471600870876864012983912477319730619009416638269401676300456085636491643761362606376635906873316750811747329926790740123883482195573413919653136148015203212078111223608257683792001299849017161921412205611945851448910016340099124608537439920462967532963238767052559265617149195531603535830473198562546240397270968571347435426304936272170866458759043898304992751044563308778625785606366019326371511444609940921861158127412406735170495739664461694044756218701783326408977594603626332869739739046721394474581908239667171668611458662062379480134081383944182273450107809375459142761832934072685655121051995255390901809700877340761009230423663854704666502014448358164707691788083576786724447631720168128414535507514529560355372622282036445750129030118140684163405100652373231277816761637532035815985600234837347773562617756892552278358983689748700551324694548504338212598430671147594632353873696378658447353293293882594324536989528038577184791577911199519211357066179017424010471766554696307788480976474582032638731146147984683887777820147273140924378535357774324813494757807600038572444303240714255907052610244931329023042125217566438475559129340868614272263537414056179113667609783536341941842795037982521019232828066911552417136829047349886624641810038975657731960495363901877108436528978801751529854336069532502255518465109181618149450488940683667089856404124814158789408206533606181446140558178970209168735942323891840137575947404747766736680647789134445986230125642147802953381563508137470561695159354126686026446397172476069258847915964190609857959625742193343218159076793945394282279255232248272643179001141037917073579483627350087521793022859140839277368357181856696226771599010839018886223952837360112449629843438554152793478375051837810291350505275855071171420691061255047997014786892787309592328857582230137535633174801140931500973982564824351994686574274065144198521431419223858263195632545118373627492095102607193921058598113980716010809601950934074963367034564700894000267643279876680700262078420832091968984408694301214858375840914241655511703157823284942553163395058151193186940204628842752770527202173249942076921326409589550145530706329980431248588345753263639569060302502557825600459136724196187284800354466470436942202591687778524377516042392417575413017418555129456614481448835452263040508534348407062358939585048871667638122046983483148883137408881780020458370387359474302408048931076661080923250334578403259543096138926444985387281984057081352616619826447923892522485906013221489312565898031729793326034848189407224540768949745985016998087614199483918913671818387001413559914716389360960006561464992649257966492822677309000768078416482134176256568907671323847723425667125583671510222644513760964041326332072009202225290450496504740043226587829611567860916493775739182366786920126054163627880893640777183056532070012039305960295571040261006400226212231367381753482242914775276666598959927498364235239670272955017206370153906612846716809481038495884185913706192208998100358959755083608789575915306577821279068643971688014359740796411058123876452155690478261851739463354052269803511442516905901416064101623432895876064772466397823511907473786519431063055933294260512441550340415362772537995899266509561243712052440039431865693759495624914118720514616196694861049218409944712028709625661662916644507996821332133840384309137778328873583746357694701195980750204729246223041655914249854063574089452881151959492044046491158400935483878483897103485408134524480906709270547526490853118408530752311099169348594592270714694117433257831960528471838731447555326824085180289424427808238332200289395276104912890925446013325219977000438215914158329293262574211515020935118458486340779925420948803679209049078815799223813462800942527515147091353421874979303601170972377254435065116214222582543792199756316180678866235499649994122103620175576150007715806939402881590902818479037852637709660447347916813101838772552439730513039169099272520446921253521238009596146917858679786358414551772489142010126446891173748459805713189461851889993257738856217269189953050753427502993040074080231485656701962266298557316332036383869033605309568138519276788841886270649943135950620029376204413600855084876256507934926599274598981486837326696752744147047044121739555686477889265702218376229197448667795612857006036034329729467328570405795185304828193416889294331453508000503970212199950039769121646129761365668494705583580155749073645500157749522342460458645392806019994239985584770940466664030567691403873281784605520010330881643145312733030261079680101506030122624250853717198842845145829755247047629826824464398032646630801980474140370499321504652609557413326164552097600242097821052582663183456357645769821042902176512493081885638266393087075799657719118164011371469834812666538899031271477628705887072287620287634752822250206208049858212774363731823778305460790614373835942593907244944973532962129356419066593508058248298482880933673223233648143636559089941568468397850124851923514878879310663150032390848738697823742996769851746176381627889207840536272931100137127631537014211296846047135382704335376875377901388950586649372174801192735493229420698919823802869701626504251258936432192094742694460366701963996068067749312285220188646093624246938259880726534547027553126765053694944120357671005700235754177080399909567422214749663624879722161331378427950138400251330235779729616747077039757401767619570000888743538368125288306647761236981524463660084141386414878597927406242397823526866596537109820197603477316337787163441839868616918090395005768978654680338694659219340518080833182731639106937896356168168056851949218331045977316831257481362527661065618285565934579153825556411799711396595963367989606746914549539425426837659760087031176166078355235162709457289309365445201449051680148294898103305357664880884741511084543560994368305381187717816603598433253032725798127696766147766386865458318511583953200415569967893221284120512147725886651594777753399694224231100494587174200125530729909252472954282493154462485804370411896980622981637939423481422500029798820219729510872837868737321959229835815254664861595534424053302486608419240033392341504320075396257158904207397850783589168052661913239347111674576650631347738390736936698858844708342836839781898861633297682994171649753254198883835052388249472030543617866566797099955749500542085196207310374142995456708463109840898918003223215515697610569496007141205181275993235541818364849224710735401140596308976799560286294001888531266875188687935053365650786108793238932378707471547549022614199636627531956776880146999491478337363244303383797427372642945570352920064850741276777304102572429349781076311695415016560014462043778494010201084175436851070335089739849175995058297489152130927453780318635875709012563599435747649626916837556637277316831458023188274939785238428481109268527870042640238808859176679078117404129244122809186089455153271250774693117053121866303729130980374887525825212957650359949198162606391207489099102804545400524075964054558008098587249044601598420600240604238833706671808283888991569399063489977435078754320295508684677511255420491212891001168389678525088925056535649569188993532709535501892777828311957493447731620174326566532890628296619802678756561255979374293072176532532000147388966756049428015509616164820733455961441788286908900242372267287583528195310564517994116145413220397918205822619084060828952765646012561562803497605666770932085777608812290090458822964798216307090550889239458884374812331200006802590431872491079285745729681335439447521697839327581882669428241758271977741884666074167331240026711782407206444244257682993296531011103280774163688659446093188673137169478249847181039418740289428959412718776360576715907098597656235530265663474699447337825465627904598847414961961803766825663125418352949878807126443250869891812719811414049935064135376600841047010203049298827787571214566069680188381283055753511573994396081464014524027952328316185140046576308017870580802389794186903875551880134186435668928908118663149793920843248584840936403349172551261843979625696421875932167973744348773745511075444538191545573811451651712772131910174316364696070275741831899881181049567860490848008030703539341677988710926616452214668326215503771414193311266860299531393782066002289324904563527372308912378667662699538120612008901173164198353640647575749635171218522847707245511505212161792003637184004821037938088440503389668071190187075813082720514223797880056031532414534366641779685905930393889824879517843542333553971142868403753109625490162362650144959683658749266421048961888638793849917378809762598462766144579684265058835303343989801606629059375240903060384265338647587120065777972957738016479955092965302162502621256173494886107424699867789209501573546946705046592396584666196541281581109686341664606287581083019285441445164552819651017788674892193999078256737557615683765627235350111927976848880377099941559807202254279155567688089746266749415503380301014368337649346643650435348990040805171682006907533283965726175904021024197910506952773967975610841952272846828082537750436904226661496328421716993434604101331837971467220838683664822299662128495593595493328572029265372283380869577506862970236181607788514140622565172547381232453054230239422348639311704573849408739193484872799286736232089000305901455172400567310190139679106000026326221447311201931913607727145820662402368370785727873535183360949344271832680884500818420715644399613475094876264880326982154522588896164906216742483138498770321394008154380409954008323415627647162570358763451031162124746273816818383432619357002904330122475507831200946762320876603604864493285213989980456252581713152649329800658607261566661164131495679814478003739368280954319601091810511167937152154607253504722494995610209895624666243265786651675296193388113769888749007020679796388097076758873084557722555366930365422214784337598446391634378683259319123159960720757548689977094646150039533676653942768430226701094562808923979673546546526998378012288025922265866142948928330277805128581021179717875597783993519877784858744291089005050413159515622301083456443705696489141254098587010102887831971723782499251270440872601668893264321139497482990958084250561560254887387373071983028790511097310989204317640035249454681429438731611491081986565609783844794295004188499056115429751374291172034530238894121271165607882415774915426196055334022987955181713373336995730398471358336018978675499718266872495744186287112355775031368603449635318059458938397640824821211003677908249957340602529074730233967731069961244113024861759154165034475431715487008774582069109774369387601618469558366110654850051067642396182719322962955743464802130637691306836851069624395751521799253859074732865175399962436315800148387772978318737151648607508042769017733760741668166441045455825092273808839356877966444596538200956084465763901984661689348726399912783121586398108731980495440066486418947155773170960769236487191633991571298626072037101027227388941944943607264293839554402892633968106019819495289290692514438834886608815719106254158573251568634127587978005767234567741518349054375613543089674844131001890809161712291466911918278835007626371820049793298632578424024998509576967422623277532978955074446489801966617773888693886419951567079688673587593722780996778317474619056244595532400752570815438781742780405053476090158875859361081940952890869698426578549884959610850598885924425674275082670346510867524482258692901209164160036482254235153563789600181213921961971612963298710330732992847129833512240425918727503637135531375788036613305472608545663295273549488200354013354778930367944423042968638114528315326270855456114668799629929610375904732148801512230339000788160692400201017901175723381681597122724235229857486095327772446425494347930528452955140440114926737033475992644595831713983142425538114639092054842260581621806796830492373662416163578204712780995718773521929741906987336918937441581772004564771750434556589134174217233617386266220989811808016021304936099436842561478355775150885878892181731330242360688891560592111216622259610758437530012864205575801884128561140879616498919571059087604270651361101913396333815021197883000472030103364532992440632175425313850830382417664747206164854921077788140322327052159054893448568092195296234108834869654352518913727818845812471150070472352913527833383810054124461399496180834755146523759655305394981771875468140126819866862358810413577159716932192212062613852386377186484363465737549197210513211265982636491294959176386641604375500893035377939385143044632850748180168449328688240230873290915221294032617279171055365388133277184061217006090206925432261377756571978204760998500330869214906713588661856106239076148738992869788672024697765524544272492242080211849957354410449167077400219828557964288021905789423763309589566658473058086997435520823250468486994391266043106689644530316591587369296233377123448367428063406975536913300658173089429910082119357785975606350407150436355808007119594035119414576849190128051375555762174456936502877324056920526939891931453906122711887699001299411609639994649131446863827228791544618175536693130649217542830641740106469707329526992850930059477358161502484223123563063403911178131255483710129436842162917461041705121922113182513835262952734450492082680292713039260278298017703784782116093562288824671816133682035476083319217888286872097617109381003386876066985865603405136724624313539947695794823572190936114014994155065152274417149824951428412197364567979260618514824090348464905249103146743917712760240089084947987364364341042596350635683703116540080639830502126910589413789878948276698441305647255189759297895257742937847080453925904765318785496888311489059256360830136970607971843078021089900136829923717402686436105262413958093205739139103310762364062141656159303602947354621073569004472139510810142930990942641873374808270813443122200978220482551383825568610186709321276872427934184326293505007760258137478474981060198132966987200883288920203776845061788947659975656862077376309369707176061314666299276071817602677224058465259917016661096741762874923779104335623642966355468919809203072285601754651351136722165005192864076272232840553483470512438102410109925540250872238909059788580102464419346122453395643084678442772479660652067844876325989056940654917260359167321458040851790519911895886350245523336495449136315848532736687516038173129087894684749766404591118897329254049711855589487342764476522382020025176358852103601863016332454031066878091741503500428545934829919922896524260043688659941104563904980566686585391300531144865030983461960574953274059963968688623745590346415236660289649557757885761152642350854790887861041819486473592702439782714620409682386415343941829042258121137373156202694526116887770257977175004815239484665451454596519332218618776511128032902256472404301789211045761097746248448564052364351825122992418839195384630332841907537053102535372795820200301091268937704088891859444605253320277139464036051582045985931757539260906982636441248224073012460731560050811301266866739255934657285864748513991456786223110815858561311992883975554518783098548133250151102325925039595505050821528348521407644170058064715654028506785139325651888425047166492586733713280125642513506080587397960929709304081225551189620550618839872910638715503005395552430161793562458434202262087129043786835751743940524808779795627025372220884986130004602517329648760877536573742546202032585882019555118257569739945632765320505117028959711700428738111688846157648833713201474999131891481424306860416574595728481022022522409917324933398206262809495670836310113362624913458076255839869729054388843396125355764596814557221560123691646853138129311501401582461919794943680349239344122352160364154811879080638442633724210162904371348858116245425736376209765229232719361835051464208311721409205692494559722871125717123837574868362056410114894559635526163579357869382154277298489444813041267656313757891042178655596743198604950363529013238362031606336787740136497391773064127051523089809792746650905889140102043331017338805648414598473176772996210906749116752332695292734861439259817812593693818187563833010449093495853568266785420015386000087670887754716940030332853222330517769450374903790912192676736836662768570843290834025156470671496174789999493648605748346745457145386484101755473587215784704801085010445572916766994427322961012685430680262011424858947099249282703997029108223967930235783477081465093579911612794398198360326736483984617814902079819647249738456432494223586254645640555319499438739954774705879077975671276538094835635131200473577549375819476715946619096310767420361630544968853212579845478609489014674839749371789519855029008815479706969408328572787920150835476312985059878541236478356159433717149077299159159229925029935089869228440079803297711452543613456227850224991802666664303870909426579759298645314227876455304219832807281970307105857343424350164687233292589903940640626947787792429689385566410007406149614120833386429822168130732655350582108487367597421465179205337978958698355867604720054861111600458912707084205284557896443599170662809557904627821670936213587691153343751867597125922320606227919015911445098549758321280231512546208277375431738477984266628636518475114009445404682558347277052295699628227085440844678942249219164621882389934949269056808964737867799130753169902960101054677740470447792616667581971193462428340731183209157235761436542411832500000825447429235193414387345130926352966808270097253154255112047468889332237061300748249179343172416260990544371688435539085287942583998519638192708024021294886025347268381267484554280915168526712404866853931900118942508792635488792791576872956155692145434122439395642179430666989374353251353376644676610667377896259694437580484444787359765706199345638110001184001939954631731336718868709641880466582903956629637584166203415269543929462997785431374628920669044532423941978643672897853683253304250917249147392278382894153928497971524163469225350649894914732430220724496584753318150957050231998907227951721344577290783859080379458246870364884543173637839485662603508446180931295957927221312323311436298769455750354597240377289256407851509515379282359927788091774366012692461104547146521047018304472854173865801073995052898308050217359428153863604913251711882355364363084667666732765164553415417370688917673570279904983672651295570014346566147144634116730350478181305314362767410361153800638330595881461121427332413992925163675927497264365011175883786149911060020947578569301256292785070143781626068415920117381070962397783483520410878627318374940391787146769310284878325042605806255426278770943697752179181785890021924777490222403488810025601738559526876627618691959474874411333227765287332002053401164767451404306750527010668087192167640427296920848205968355684770488182438320763430943882700404969620939770959531795131148382698024921325179055856485696976592247705855604812280304835504668838066046232499506894471024447329634227533014412159073957418584065973755830107719707896051070259821227136594338236563781492808650868109398569006681479667449477600596091283814753518091126252977372319431171657111818634972331034935023295689854268686754252248238792251624932330630674675003856692622969182630760730229726545894333313103748751310093659182718065890543650485867380639336903636802941345266016868066318157224901394149147521998332879482915252535238494513757712774000894780597232381216863652140022371855824119601829193346196273480859068888767854328186007708159956670626302393423856888703028143272195252064679223838468561574137356745411144915508789356491077781179846792435638081162594151161724386673326165404254509032931457230194062759615142943773141652674791399953056416193111234321219364909477063036609224348883054070011637888398938918863543590792765874952126978049186156388957371472564050678239917795079489790645735384790372393035911350576031808902977233974013291618400374417004524145355139563285790938462898477550637056163993743230488142792115226678438534653085742925911801333374894057409856260424638165239993609765655718040415108062477310503995301325378688309544613189031793892173042965766089490168155165074149380722986031221490886842016561719542063029273769040568459306085507315589491231088807821913895011147288166567600149749229808692722752866532953748118070898434411652892272910013163165799326123425998545525304007937805259603125348374128550159633303692029925609517618490314916902583084591343070770936977896088272872389186975331931562680149925494321777380076675241542483408776164516831353727150635991784682995719682682597792573298584096549525559077812863649629769597685564506645170301185051362482872361962045718287682430474221863395856086904953494967898723682045478528014354576845201474900669192329795894646013092765613043251909022364857470669215561238461340582309590475150096990777412575227319455222137520426422993148879379417705983811129161355967529743798581544969036667230325888926460840704677014293823263735893724487154482457400958890850194866154030269998232722780766669325615544041585495530069081486272909592480867938749212347652202397177347778686430891424307130538468197658552261196118781742195086211004055038393250901497605182445107983816425985796499007079405822773266559525543589099044930587547350727761248050917773701570330030615228131376317910571256105396234392234258333410671102422422848217207754196946193008805675484275576501894647279049359199937150146620029146585568796090973033052236923881823793045373976238781174708410807846647923734340292660461975494651527944028243724075150452612710437137138775799195601289556630472569255206667942480420026247184982449158515066277009019113465123333269519509440329774998022116073523017122477640749637140082210326430217430803943674513611399303139327495214328907420997048873613961261576015284108119132974469565665750422118874974053832775760151908584351397547375159101051832356271079804813871948928753492414094824259702354060310204540046732010176435812332511810803396057181442029955691500586336383638545464764219152218593530289009556852287354946129393646181307841944022379247651230348160371057711708869123868116161713257211489952991601895395326416640645831768311235528930820920234226803567420111124721054939945375654217767516469628550046886526793635424840300916448760936956134092735459271606225872953852998600272245441725373581508251955252247151835335739163594411718744693615510502979494023062493926403112247278730579196113462058895351745147575574517150304934937133957418056046913422949046015602172250408061924549325555514639623601980744101331190335476947759757879961216357877342666978850927300885605269122561602988179665690890757901350107848080262928967649182412502872259632700049323433833930332972800637484927761286819894138166818692073855984196482324489072387753994857049985640412287241794748882103327095081501337576640319145337733315136632863783315290986048491214280908178909248437872272191245581907128481244049253467706306675689476050976845038404347082034774307818695139363228442985518868591357988143210377122836620529691642877216283947018320681769702922060340176312590973407774514806673428610374123593907676416645634769248762259421621372554515936255730310348406922207994914059055208765475473688256709682105451249329096245067947841799082148121457695286743143715543450493970206492099325926623162615258950294800739856671378045222357020821569447404631928095728978778033868499323720583336356029418152834549754229445405559444035897211145405606985902587014775617895537420951016802162432966263925653753718777495855165976735386191342290078375391645940615454874980118818792332094650074174470911655561456747003814507283668075531838223530379502702513348533584003165585586924325941236256911734657952563946238174702573228500479007396107578972527064577611587239416874075014456044510119453008525964544836122514429282407857195474730184950223623705738891484732109183466044712780854716568463331419061550339939342866700721031201628395054535864062708445829439490588207370098982612534655245889595643283554335536463514503489160763973119723020473806122133497319858163588102615375938223420898706535907394088671594660587680219731990224475905070136871508308754075690667239169851076588659450504898225377814187548109404847229592748947775489365432262430456430019209794803825167093105550213559863663171306933465683118203165033425876039896211243990380328380212874467504365192178354590672596694466103131262498569344604953343432061559719409883449379478020400164351679125231357800617624275516664878334471111600472394640954404899474085960277562777253317440946045626429594810897410207374633795147497189169447236260101818214685664838993586555149283284247027753539771395228345083439338956628544082393257288082457492579526660164591238931443067089417517665070873550809303380982312488097085446446386015693427618437022407817318999171696500973738850291874706788186125391125142868127434574249467721363056996434768391308604956011964351037959827769254761008585922292332728337273608042198946679757272559178293463069628380958255065069872124277088370653019927183893722653731036589171035924705542145208054557716579357855448459091342197915473005600977627261063362281325500484350970834407426649440155408721986803854427073176345898332592686434533598409359773470256364960191378617308448431677303036173377229254259885669734308376278550365127171205712949276926979882988405601193968102655934107165601400623696477070030186504887548406671354959988897584319743663773137171972940485983357100368879173733739293196705670623571806357211506864949433962213037016484711589969699769481606152734440419076424387066512588810584282188930465140123651500775106847912545523847954511969370087029221006104027155428360944551402572764156618316272063753436340782777470516088466074328206035851575241223709697408514979960259097919894594968817844066933428781005703552915066316452914795255446561983843402053445819063017421859299236543908595685933876841429990384631610036201795141924462057764318773807310602739915915032778218604568426773065189646495552386658916742158122226233473490291733038279629301033372854195220108463523802440334465217085822427383197082043790666540326300256055943482229433739193312169485909793883464182075575665677621109682292097648760096578079504237454574847304898448821983853312915975510076907893368399884625330656394552985546373367826082124573640694490742668907626578356050584546075854269413500181974723111658313672162645674508151420306611807708869552124289955206737775821560407586468930928057185962304752195796607106717412986275712816369410971635728148757020228176818130920084410321980586862490527201969288539392840147802708256110732079474102600323237343472412713984718075635638934313759597453423168189886796092279376535853504059535986347869458969462794505801565882802196716331635088333495323866684188310139977770256353129422855018676263945633549100683234578690257355846380803746028248500145774386925313830731638963693514425921302140905413918186346404690329489490046750744255143265600563012350879758753713876591235504730862028387339272625313286328816968132328999138583752951970404092146491098485803469199330886971411358542467181850550228248523241816286094954048951276960317107576791965497118822102396988613676815724626560181145453386962108175520643183044906625530952956138504435917133493297536882216899187295897381704249805897125121254229623613638711688406459497343110734314768007939276686301333575020269971255966303309778767032177878123703628634159751633467142686199250732261215083140677865096664388971854236892316245847506363823465889132715597807197219259831085687647593205099017802392085181327299026231252715473491214769384219109408789191197140298250126779500556222399834965303599840293942388211458073099789282251762548346433097696500177934476756732183817375647750926260198369979878112032375128248087635211082318965658817030001110844631358728614202319255815031249487528079855807839114983802788638597095649369477150864913030993814750689102124692748968313533291674830371726869678453956368199242575891310434560767949217402786922806638105117548646589198686122905209034913257358153035801647475213477659311340175498419241237600524947763775330019691409055801358009327033114126332859473124406214600553386585041226959636728870071593396803467704366769885593900539774764373198908283236376502623539736770892424848657410478906013683598444042213408054485324018670721117245300478711028947121346927371514165445543799062252264750971235077364951357385514802607034491799070667040473070613347234763823093241366527497102346525019333594373371788587315059088345087130907737048788634450742258495409937293086873004367029169821148335920209720247107907881792901095256503137117612601943179263010635105643614530972318617450907551383381796526614960313432307825725916608110563649037509767999388119264376325628131282721029104427667555493386691686014951260235900939328521336652819566746436911462761395628516198845789415721386684092787951766666329711450685050135460811011751260757794894935431377728844912893874179253521044981460674323117993291902365828247046412266523178768861145391688219268981265021647613513988520437051541816344175145174056100240771140057797104622045025435509333111878742793497121359324092644305093801218879217786801817234170327281028842039179342048407128067404498944548786003741082868614055591735783579021851733691983824295992198690376607023179044813494439950326548609306119716146509266129778976757187603020827754391250115480592074244256516150551069030969258977151144100562239275759596974813447711485072023766304775869591998753349080596999743339789030505918860889686021520215260568005308525742581961470068153880539839880137278975087018015176348933888553910496620671697680520450582016346293082182106852013865934681898963177793728639362797093725547498022292296235389652827785626569908364238126182339035799218121122660499495798705940757545527626234674151604693237449659602640238954290262616527341584739604256159598380753121191995379635427156686175473043394555379053409043462261411671946609306669148365644246307695357619582654707446667832878441953258696430905813224950402840739695562286208767515733860390487630322631042283794236572536814406333689799206563363850179978430672018879892237172166128890825469475046831404259893602914158829927221403418680359214416283742998872819317477495098467160296831736008290238534293051714771431601669949383050981039312290676184629391953571656204228583926526959263195669185602839101594096569597207668984393685511705363229866573663669506107768681396430497747052099310640150567120224379557113206491848293292271739295264197013780973853894119178682967416217767411166978275609243339906646345598120089601211752343655682599449510391322196646915691483017994210022400762368511531402991302091031636595585480995666841145615395195006669354377572460989241453454426369459345175144759917313984194994763607963962997903162599027693901301758435884610718378590142246701384583771434052091218693016547711602151297540090867809836666069908721584007708404640079450988250526356574470026008764970976331243590987961631690999659703143708622203756547561684109743344987561064893615407936968928600391760941312598586863980311069031613331013425010259295470763578607690962400414218571473555305318442002328330622379402925277935625659693765351333715504206816011527044656726955395485364950712043133645441138791769454401084421566702885166748649660910473638772245458400229077927979692966243530267665810807289529012225696638984288182156505026392100864809640184358904249497157022855618872651509210543466510091618880493345483471134614979343272429181253975727779326479589357286323146952778946264128225832603851227037488844167255938313628991114521950642362506739610754403434480493821767383117732327063143737599024212205830353711730001404609897721005038730208554348119629948381695016924403208786674893439564272760921310517840809359310459720694105234503526109978973994814222747345072471747225132634111190263707773312961501681847876012770103519958703332403363886328135005894057143910352896504303241849342030466642853259878117444338380826184726395439293692587280003225711250981397093171225625123258455172790770871494962910757007706087423075819098060901202730162155264103758771923345085517127389099189624206007259772770710098952754205262495091740754465276304962876535860239024839264759502270229713771660619557762946686260784588042991122510004304673047908130064794640255496922457562439336119570269082337639157104237393956332166895630204361424950506177619099668720319585440308448748622202231414504340174765879304296060133289917240641860816794634444542458682483881286657454318567681548667839903633903284744342148646465429124743463542259868674455798472263168412811396100510235233002482358467946312452732037985740442496533794796658576776440505620861351529165572174056708451324726150687378558301895355808407245332656969308526026931772779368770261582718541406575914827336637755154279342745289544184677721396626373692861564438601853765744599195492344228023945261935065748173331964600951981072692454998352304584419130812811681789276719422812303510313788532200742331816769034351716253135570742195908176905678395237796207230871992371245066505688358988436376972922862775738457077844348018695037609796512846891378703614423367298712317472061223152168176720136884988967602299163732425290722763960747845088775002100049064740218695755578888145590787688765699418864405401585094984768098576311365836779735167961199511668844943904273613793129581640166499894462911445260064828591080801132878131775257079318843115720361141707802720479291466324719519762459800745177815931508250148390444554845244747009637389064687246311077676319920798985327973223033446306553294780798998889860860004480268763481394862090796386908962779821589972061010401704748793607431057507401379737621381901160807880838949445279617408905504899507764934726723231663936107573541891417502326334418076362694721727861284647927685439048412739597731650577563578067856186688207185107474642200666703922428019370681383740673911798266135569020839809183454477713743957053684424240416408177568220486307347608944636126917757908582866907070720412337585636052067627536144971048604085335251921798971977377665330824913257875625884531431126241788897414831093579846812795531638439726223765595213606727432678782281673931007414726564880793990609793624457244770769495942926902084507245268448598722936375921419429029775899030882368304701386622540554052045635728798973545156778102758314242003509063525072943991722390656093941902460349446040214952592915525626261406366616635453211125122970052147195623652333583455281437048975934266043738838283541245005766705931360652455047592877974065803484055031088573664869460542422138634144546827295459776958244155463526487799473460168376006991695500586237424395612694758915574624807194158543644501243272533503623938595721176878785869400186674360616484218434953416920044580935101883780229884296809958398318206861739469365981011639838754844785840877300849861727075475352884545335473925143923399197597213790507811128783537244403058694692783736338434073960979765038590206848894145792175959977328628820425263385735949127671843648112196655207398038151374371759465851923265224122413802852604593898065207904139852016696619536431118090302523760000509854848447859574271898168649725088859941218145599925288325410930706207378214902427573940796354388310927771927779696677899347039850874041313730120850332994126377413716164754333794831939258461001040243148119945126975284075212090809255880501331328661964224091262339274383359588304484016015365747055729980958015667238158318189075112009421665956918395419750523739296935818963096928723518959151230581100623195837532566957096930257731225618113815447079019914950208248179929242900374077002138682359256876161612980298826167875205428640349584340349035870330372222523563182639736757767884785402751202216790159092493511614994371987851248596086009145214985331420802996972104528445758996357789403045807957784208763481374928839627955168642239569103578968963192190185650461767654141782642874316055510857061406494068275351711661884837534977112749155419898912365515815880765674614292449527098346173959542118780325290524810497042060257020159341994842276788810916311398690094261310299977064524558936076216775863138206493926712754068555364197435588588172975620483587090334978252809788629214022105824848600058976438025318956235598736278705005682006101111226145155145896606683352510047641589128688691410550896049835691548642648339537193060980961986470931697917890267738648610962723254781877289063547907104675813821344471039374748572772297900618052078686178386112354839879875947047885773669557804526258099039526054343529263967874287311840397141138470284955920713139954359348231404514330080092373487556677029113882937846538763324864823172727804486386013764912603622099094978018853657380861408841255960234187028834487634946059288529380551132134825049904840285543209618060415672771281366501234495489439496450057106866491035302988447987041974519978599630859087719857243627136523682314055596896700136387092326266583828318038701364688693548523807387309095461372107909216330443394624786660849632336081754799068368390108896280310834045645348074983135005807072666110837597384551251665451976616458669020695193233568627759083690812675277789691193057286296407026424531830432775221683788178534353118647174932747182910695771980164670253822790812366195815913169569305783031956531908831831327129009107588267513748643398072249951554801634586690379013309990077954902421958730579984795635352009291878708376283298772747639665427026302419044481424257986218240334570078418861910977725294012609831192622415702545069306933638024722551881739536854597358573811000596708752138376116100031888090958698224343994613371129185530017706298105188648436402207206403323038261785817886064997426005896994774247040197333307591109889765327451313030942190151388297006106589662446447133161825576923843967408685098978879653312661216362233156305514890610463838562963364982198425388724439523154342883539818966322583863505920823116497760720814121385156395522608667581041696155009191853745844404231206696644768551948810680174297872746098745041988625042335044994766630136800257414899244594578029514338896699529197250877468168474036830166576120580945836146611924957022640252207013617796030121977479992091745767784857984017410157972182233637610955042094596818308053999017891894397170581919357374880075295094025834252240395770393524014271053870848496934117319121115110592288527072183525104281351733612003053706733096651841773028879545181977181410022407448227753651236684818912015207648953893026829649099357649384442545014362765916308953663386155358600762027152451126288273994731391551202198208320099044242047566290374745365040632614541163353183544413718179758922668950037085592242447927985060770926155583786320109534249778968727037082454750458106618730233815251804795223055827981133615111464567281080981866246239946785386910237288395988359755360151915076650981135934595592920954798593627832487154673374399980716575622469829476178220876925283706628010675573526262109952852576411776582023606282783592479551398027618532645424339232519859039262381281816525292889416564408717208829652083632632058516339060401533776286935393622457548950731779232639128005752498736657360660864992523074968790107740886061409670157040959592180286269432800419308561691015944355596446217841480028128853536263794151729887272453226307739177029984965626950618874670584940139586604568100411292901160991872831204555535697373342347349159230864608042782062172391343890441505871514344978111365284683310725225773925362240806185517536845849274371406153851169495631553534117858805200250001733523546703870619254480707561055609912401616574960887007049327300602666510140247435736762497912724760832225021739225987528547757002029587825860665994551798617953365104356817142324324885644623927389481563497590145142835950380663880975721540670098538141205344074631862156846391787840367644115675534425421326740989154640503949743063880420428843628311817032462638448465670444147673117066488657851243699199889099741061945087908704334915183933087325694094874455513714207868337773092144740722064600602243725845471014601004636397602431873978699497723566139701599406155175854405703801725895463623744369636524704640924398963339841220699446291796101420056419493881754712924018917445998695334036185957520866207906486644300157802083602151965187732544959328837947132740884952523417122420464864029716996975578359598203094084562515543232569411575030426141155151359901010177887036888452526913556115609392980486623004542441584387790016456023983168911282625081577706954811484563753432341438797091523412868759558435799275064042855840348493972609364268820306030462162426386212343455524678770210998913919230625151802788822459191173755011767258156908976595944261869072006469533872925235643952904851794034770651031759701500655031906341199866281111664869676587381962024487342048486776568132802545400739248539307922909833669299329486568091736236090861796462244483311623199623633113365660227123321003304504299968650460744154600043988376303180609397249827043590285750892734094236236184449124447161870847735120685629878935897905964325302767552122065606686396170885802070911824253557110339614464652622037743023681905950550451276191634832145833751278410325216419872422275307688358175487605253665601360032075636950074494366761956258970264918978507011338220982502028969708886179765887134412684586191864990724901329111267231491812649926377542566164676604771328663926087637790301794188749782580489949344265231077363690583160355070676019923322783207569468494808394272946145302345828611970459825588413889638450629267914236929814958616507505458103147580524005292098905784705285447211627267972120755063729544420467691913538454024655284335971133486551335480954405158840505546068930287775411687895425086753530559341714562610496789636220282127822211986839565208914159534221835915328823796707606294832051333601353937235521024555016729097495371085377534950070222988985414979636722702784798188765103604473576491771821122891023731437650502700695867079177869844232208648273822988667728959173323979594459562915207741525079638715716885977003213606197982323393149242249125954102278473187369989710091885744164533026973261060428760967151796916681958363134828851546381035756029176897939625363278562085766679475921994898555761689116071912825362896543071559597255410266318223060456103005048080725983517833559454513685307141158210229476762868597258148894348716291029697097426384828161512422992796374009063417006462503161292201502004073513378903344568683716742438526512591871670237445149223444872378819690146583785152912188334439393772791324659569687760300702605004771581845893655138485675774935942415769098459306538396025865543993072035331550916181756200990548126164715952759758700597066847401525339522214692067281096907779973592356045662490192544440255591673603634416349992254129490688700844930793719334702619150929792024144156225411915934912865028994812931910924667703451705505015227376066963926546119311924137366897150411037255934284109419835886793810512819247660571169714966024637572021536936297758499826076071396419695519667828815734624910251686822815931700667939483309402698710145223429262616418860966840522594506082415828992393583285100008190079011666094232046939185820671724512469620067983855960606909173640026973056077708021304766498755341129596815521765320318778243310004436639460740135353916425244742142962243584570276881609080035060383465698539102895438374785797110581295854249844539911908181907534521985527721031994657804479127400106794338318323450479514160360511976842488595829256911852137597215432551757442101728787160816447781508112278189342697954061659365618168329349839225494011566056682234348965963579902090803116124961053912539134957595521534533576965013654746472416485992348489870009902826666678227598774981162458535503288681233649935529884212673021051521170505029577919233145208182670764824201439941287092247157633806143176274550392499340578770839730018141508547484654172007116027258103650670770327752084553631969555715885663165962751911758736619189893996655424561884053112573695547589722135584518981942613515054803331963312259799639648339128856547144759100778797532674014660193092661125377162768840315093322618328370414058051092899045475009364714982819139541217905364828626299023611118049162148938130057606285853232705188339263391446162470650943892691816209040615265505157304102213300552883513740123717176103551481412726192148155477496737567341926571968769185549820311910887943828639895709595031498851553338118698970033626203881596624446023888652826731614274708846525466352063639325633440171753661341030820201157303516699115435606809475897302825799614116990185994684415113762598096552934814243524801978791741620120648447424355237140714607837934087751714446109887540721299185044817641510651411047560250637090433180916296357797878344368764121057526269548957789365243264889787478046171380887945656113189689727707575169008911988333392731134180871637504662907305951330259931111948964578838675797414065788942201172751964177690250722348735124349575498446611693824809911967478809455407862178336502071482317889815749415404741431053410107345805035690052827655635882136255070157980580868098743319444285581841035421590716780666082371886135952748672071921488247828085430930769576595361991341206831145888352283237184897162662911012912500230878689642729989829190005869488007029144928707587956322657523091856449126950868453334885721324148422423351485240151552400006930752191899564307338640445626310503618945839005505758332867522360138575654530675365380718945560726227862272905523677698674743094148925422409739505276410644148837998747321751454976991594067679747363102116295012886513367114636582987790446289790454124157069957495983684373770674887305990272646007049686659356345964629833058941129478720935204668633977725168748417049522150057616706455082329069860167934356405686060564161874118613803433834017324844533106012614704373910878620346878186772818528104929497612972581894107134876076276334756146891951729358338330173101675739514295507496257925938802922582848179802167633860739075973610712962029984045034461526770308156704503397564339657050216236414835085449172163311938173305186456179042812023719859262675143438510118836828468827135593408136768627467347701546323234893836388988236277203487816915928569406774599785727596543104342955853815091773005393657072758863125797956115387333612485616063768835236510696388706277658582750657722469003122231392375617101934172131801203797597835835783792493123992518337660950210754954723966873608463533111994243576254140054458675110490548511015507527056192842997224749758310762086590332430720950371594443360672837687056747064055152544645108933712057483045669882446290998139830871177613338860353867234252788498857513398960982059098478208769605989186766521543158470045731695825369413829189113947549457364653509892133109527196997204170988928383565073160025828948376368388865151541249600003934694195770225266531456706620868671005131695182328167180778425388450976576274661345620061849397643692204903619489516910581803707441814801937183732937318089740918351705232205028787602976515588021684741565825483287107986076143901918142981130344780086172042822387660953118731167449511928310395127269442006600450631846164018664297020702222545299728792680189680309254217368578782669318212518626626440843945092582597000665542353035702084192905076179417676929672248516947481411466342553070670634981953374236258847692984172099651774952607149602506397135613781725563588317531336272093347716282952283434675241100180716225312883826486619979005120256217391996287555130498019893324809999749649332507384471266254648407095032549271343522471347491348188253683814768762014006736895643693754195913990711568969766536052210830740694661095078478558169449374228127021149973555904275776612093364354968756700960405939033990144836037304025773319084189567981479189796323157456864478816949773457479004888998256297802710564788160974591242054680213018625052725453078583593998446785549660348984989114857608327259150243376910380099706576522181314773052451091827442604919530081945177526503963472089102812968247464652028644279492113047317105363677934335491033619971655510622044639954123171575534500989279027549040402675456290478550085290219057792061877181794637730243087129600350037506464743150777626581669955801193883930564811901333338947838548329104888129056105110896591270050809442594677636092445169826655513097689212661719656411377949786219012973223302733436861231251079304251183427648885248864310488558628568418947768549864676151857011086350268199183007735900325386133009111537152190610061094852190138683678265528328064069967241360607794951831545844801187991226930726677286335308507770679553811763683118052786290847265083510779502707883231413946463456224454785520632409051483099291204800361107445641522637539327112663322340452509761324524857349851037572568958415575956501180402139995916644890499379521015402112188989393500057942399262486024722177737737590596079201589547027807211029362362394758052052829055982376005720756012571936102910062458801558548293250184715760425030309878479959556665894660280089432475820462159990569612437963263664825737050514214006642904204274175012371205635410268457664119834210040988922660501904857462554642612167217011108828107754605210667530526789986448627907399193364228547817844589070895933013250357051745724964517055479052213007105153959355434268542312226274175837400451682881442178973185938083678303635195764098059553770575722108420799094827283755792967466416574235690937082019094569987041602891105824699661787441752545577724288606051341859426808393317630285399749230265976111104845320708385057010396858333910066070739416426589394461302631222750496355127732723696711623790679702973031547361006582338622912594272782456510427635274738945908901199417601649238919619266932587908816875585190530630215209641305692583479842493302246797962815755233039052727086979092578344244071492500736868057722206508744783241806580889526710863326291184495971744102975420141938808418655102051032846338642189427014105796060150815261950213095256966167411678579310562347657194207403963756651987262325071127643868272230648000204224704825242484399965434120434676257648152067213570061927061639160813026159425326685288387743311464835426234690367650868055393287154347291318357096430371444765598780900800876417445600478717594306302534416455693929612726150166290846160278641080967786483153667286201674903777866705734815426905654401989045244839875528390324746267249912649966937161131344563204946560908152704179531857646897575280777685264040097789725160056653333833406699053053192751642119199571183526766851357309256199985707799819053245180650648063575566990252516868504657921805734306363630344432859627133999746296569380671601446289612819589171857232930699818776748852149197414654012481534895626090744584188493481952811890700406791332053230353011139722921075984109880266265596653116942864327566317147976154103998452090192647779220310125407114263647401122120331313435107112064659872118440712736130413170205960576989461639627097786371244237045481477940200587899651338019309859152910018866381965850678946612008040764757439293032397230820647261474803844445407465571337714613906412109530338685559575876683999291733262895300604824233444286116509536204277087728721412766981578572969019313327385995627065303295033872269581216344162862736492633544501247059346266672889859120492967547956362173913690785095678026758933887467163590057069851521353224056890326478894379502988555653928391046617422589011823078087228370155806760550258581131301277386997844992449925283422820001949988011501823187042639602199344786746427445379570611597712719083667382314676173076549882912820731173394384200261136534149596714075093897702700801519923428180669553572694399108268951510216340467017123895999368127257959634846427201414633823874209468404635748132862763863809938681289941443575003162917137266712484854137719135166094669546719469898074532531232205042036367670867740790420282388917055911301471947190074951076197449563765027697874176531168038331601371766413371325625040820835621825484782022887561210241533000699946901098918117040491835528254595313733234694050291485823489419062525941911648176270794735149254457920226013867074931225546171550465368076953988530120729873307202228662411941561896060156522600636465106034406561421142654998108448372205107656099041103955221284731520870816919963671367901922512107233805158410249660265029137937398728640826962335127362203839015095958170163268263559001090941117724054042942284567494170886826338610577428218499623574769063576992654379527158925464895741237881994749311669694589210608860538404899610887158029707268389931482532436777054376302572975238825483525733663755534790819287189534127385853705800236598186487057998693303486260905008799446221445149914818683255684530784314203483100108828773107829142760185137009463031496536877419203247807728539781100995865016442464165215259341059329188688505299816668566030272038778858228739591101673000197963464811517624987825459039976339828612855161245816648878252230598685206772469802911926003570583199676238100913984663325688495710069257476534607166877005243895730356641956368890368178308412728252224609755162227310736940751584959287119620595749657675484938931647679812010764962443402716253164925899393419423645701440367576268589457947352184638040799443310342470497986561633458463717014730396885748172829193535058260613101576724900408229227512824172468966332309431716030527161971677028410997471787124028002046305927469226716550189444771173409024481371852256848149932304709232696647290886117970482134607083489579099796456247953839818426358298607293807006247938978060592052860081953130726561943006471612720361691791594715419353455633457156294957616926311915167954348234581258941466262699447585407745803468412311151306379129004198870592523430953230891535371548591462328479873517973577943599226560538437857047108511684132612329616945110677402539661598208733258930453262859464510324943558059853007907278875373704365772846310608919318120756260458824785527371642478880313376396683541015617553968077400390842464218258055254114933958703795868322383009514044108901319832855025445729954402849149796814921359163589665855263354117759153994551908853786008547746459388051088701847759850416661640461643909045974951532437263606227086567212569069838869316537119979437141551380767082848749515431348145832025802789840497561451078465665322360670996979478999866857830691352083901135073418237713124902240020682659896739653812574198372179878415909293059639247599709301700606416017765250045207928611758941248889973943312837039119052953072424209487998038389844465380508489957808608820566609971249907888708587828841380216805791957678480841615676443935683460483665439393176605333953870975048337046768294708301421856385183084496211539637476337373152281689288180341373730237693859439510906065237548155239103493237177571819997065827005910677464858925419438172509609634646372942030395780467752203524210865635386092914858370389669499573927671143083638741808538046753945359361701931745527097947065605102097491613479301796419177153059428984025993987006547306721178844938737577283258271752491586476842179028645924052195687787415564673445485305917274096432390228266392831243658107449875424842368759607113091750675344638683945535475544662556998626966685129271043955248935010404690860191539861556460101498631094301938122575561835272878468858269589120033868992311773918324258522508674116881159417759282265072231245612071430657130433089553408012461714546044778904317558729960243285745201236842457844989071946644809661795772935882007729669546563584991145241374995539743834015857869565809878126125064111516092099272547412325856816749976392567976415195554059642205302084068581483540089125875255585043577008917699456068806585169532424397601477606441246875030679378570917947988909332004246605679237435144634125655091199799266674241096091812834559978861050509593246476268438670309815200596417368194274556899863412857023706478243057798661485780922294203436189462615752129766628706023197007992396955907612390334499342697886253027006678837790926834854961606833261571133699224589864559544075217974383264861940506948666104269697467987972912092711955619540554902769007630782988772284106118184163638747899270693195342828413350482330107145576793449115979980586410811063520846353759667321040951668777961160622588452163927386135826906510234809114459279925702495619038585227947730538369342753820430126802815991676900338172744109985915389650683616638255735598323396774852038388386642328665781900216361821325889467681893034478725830256099299173415665784266263612918132347405143834235238852676113311636462699972905448723657009716806874276903486778063754784225427014137465664763576671707769706177221971608258165101914777580525471265398922173693730570259753751694203811837950431172950204783741998363337170234894901428028404573190988961915453113472935195930471137416466112968240954945309845712951556371952915574160647263495721378079990672454280834269446885897194047552800372830151056937945232369907468653445689872761842468813547501581003568423016765124059345455397283448500057664860923601817354753421908578519164738297874514139698664756778667055328295137673641071677958817895923409287929115589119173927918186429750579019193320722479751085892036391905264287120946581644561004656001296808213227356874231905215270269298939081582853348075679211880167121212755896678999180252973575360934614204671017855643833313800121125006449705107898490777182439942209496994617344525054349164826750095219125802286567134621855998537418472310150001886367430041935188319017114384320325449636036379238910805640687235007860101271723256469182019791959954644652716945950470757122641204499378102480402986066614941934562813028620989367478220516259331360766414271883287101149407647856911761284561085063402847861808717386823357442675641991081575281981467851570378804935050031022172217535498164273746124262897292039006727633031104203740084747027379573499562823415954791295489397686565929695085407771735779824516667734002207611494138857534646765891290737596243426474524063355928580743372638490422629258326113006689124810323645003778726010712676322674923259070753691874748578714866090328811407385681591417765990694062101943886488342170050989162549021425794022193027530977484578201520435859346077743879267056576457171104011289459443310162584302028288283921436532733388101886197997116941803739650393501343458931099073792349179940697070570111682481209170332613110267044673133476113574159114860628503264271183222046710512250022215495602603852318448904144595916056179171642651325459665617525740337720696034158444050379562508241208467191140522549485494455607148242057741822616771026151947139494579899871703965818413225212981701714721980024046223716575398099153938547009293920099183827811227832336136419160401537217603200478347753864900217767792270051395690207094049124483309378978832366214890839754290240273725136848503367832192978652499823608792656633121754017555310166121948874280449434494742632204686781083172911272204081105786777815849383297997367546987146213675006355237239893955308672823431026220919620924866670858910573115562084172368020985788983716406930422272769622534599936909826610927099742387748796354160068878875284947572678709861235108674903837844301560465747373887135048852509779283123648086249484166844160789489325467086613540159947222622613302980090039518064520571547252971129829565254690813549986549947625777916381489156107402121409528135783785487232677360686676397503348817566396650798728986874222469490033610836493192716017242423325158983633043232006810058319857857659847680937024835641251313803142980385602859278599814985292667781851193254141056552582430772270975333232339730070257334606326133790123700169446020842406595865051169560014398953693037201530966348938225006054257135243000140568337891766052444679232322584188250703382284369055644554071367511345874197384792468513127599709895902869921870786588509880496382114703147040105450649072276730548615147456371388427359588268101752342103370011112610083598799149366553349991693285990146732843849806939255282138848124028327884115757051425413188633064230018496720531272770618394494256599690480289024729659859138711278752167581366750266819894747542993309538437829470494874973108688176315188704013143362017996763111456581848888493230046298604692250499704428609556822243656725241743237639805117110669927822947712376632016764869988663531082598105139296503967602134282871155240930871863983096264945821119509378766671241538359955898038841441796482073649627032364299539682481853270852198444005636882351282846022756774631212649110947574947439918720601936537904233331132436886045386732244022002038553660991682438436910559957942556663946169350490396194838906613864481462536563442191015092968152936410622867821383950706504067719958085497023098735227918194806652270942419881612018204499893778101361967491172426142768736111786503720607566123190691426050324117324983322100457551696012628237083557014839656155593729505755086529525129895668923661906270165557150793534280071866528649677373813456626504962714526687260189727714274709357578609333949296109040077866042586492711372388208447797973610218685631413563887938999602698771427645128824809701205255320691388244325413214309853477442658013983175291847158335137999079153897061355278179598623822684993687832968529114959910190026738637886759893182847969106767746273785855045577154363657992974576272038117946572427721611566906897896225365565512461864782691269667670163909712271916975553712618815517328214242077253982938388658518655059724618127386142678113341971614049664313452130960216762884250223888771193024395987469893405806241643340184532222145343177955289063992453911704166058815156727813963647475425475899684791567571679245824506047818213371972872335542141175615713748518229220314086125793151794807662224462341641888235267113113389381634734175999155375604239821055625787193894416807953547709371372480731286279563326009849877905220340988738152650847221520938081800064846995241750459416080150602979893422339090503271699565995946345704402830438649295675685572390082475746162445336141659357448390690406029009267066511414744395163317582000652420567877904472472414807435021506616894215944183672440594842226056270116900462641571744266952711939424766784511376850454811122552484573048479641728794728405122136799428252250089977932692358515177804599353620022288040368532437321310313321052425380807868323497266871764986578264664000764034783648356482374245618701698474597599332963315767722966253382054941749629423158523014226934867790128104654243138727982781988845121286098124104989589478886724110162863170194222077995124040349466026779879474440435520726869627101495354213046812476565513514519271827407877288927603150438911796817562976602152910820086607911657398505655715209416465708413142143235324398226630314043948780597099390327420257635017520929128439428501515902720838599299849237511673918105480365627191213213497803008843153762947784701478376684987889595313462272757725264289219164827354190852637740118135727972611317470868923497108886984669988790411852819497383950912272005592829770945144686520397037107537709091406757867299963177164796954760152731549182819684087380249420164178185529689083104893821180195097464137715490251535316554280751784327506671134559654335926470169150953302880254315101696940046939801503581270118057624783198535956727880336932637717803258999343007773789202404826932215937191746817400389530215792228219425809308493828484216890286766161466447462200681204913460065900471771576625115844842916227755742060107050947159598415038103166678438648851401746716240021666940209511340292024049463495136750377512334876065649412058314491143290489145288553582456387296921955768273236726381631723925529803247522592547509090399746308257446101528463725647190499628659748461016125190745944073545115489007843951376899132844529433390221677258537511756332001788238425409840040530682237260715144043726920447493335933228620596994740240679485811386362769084618429948562281274488606164186821753510836239068210674990200163934769569824577551824737771905724783214569441254374328076130719022810342061684490136974864624257508407669477524812776893784413916941549210472226848074737273597214635943615933295530595448557043267224313408122641600555069872990867910053174411684464274090732380354901655833997467214899091561910644985514520899204858408062598252442449834581340390447146066019689831725051316856855880843992627903681408289776028690185507905732595678714121002178543256472849512266880370538286467741323699216033599517587447859400523673487210575658236737944104617859797378684787050505314570578585120659346380369873748032254275679801434725153929885572764110049651347489711706686446392791878057027730000494224398426860718432066599331499685691181079041626483270697466063056558086425469034634097937383467960386815040754338960783793678313518503291973973870159744058283370631909447952343634261118754348290420563674375660837740142662085042486228186173215991275919832617136761225329976993580986298113642865005108145170730155743996333429883919301698840773578983239967674642471224574019623966397840284901302625723301253134529911729786848778386873328555527413647633806027512611905454458997350064025229638917846828620213202831229322598212286042521551156391701925969984171715152649662427644107692987237002244369825001967587036979891061955980905870863284077470948687397965067490258404929788821350575170896246084548288125543009840168730613877396993837210106830371199093442142881251176025784149357523855222227499268399739967919409142126042874503685238361666806420079268557993745202978720924796645858805309728041005596731733278472234527725486685590618811282392725747029812089858709111327194170827973791376958456789733034858260983822348468826898147683574014025562673476801139617588651974593508960532494077468371062007234304573217343278952519204342290425356663751896093102826153549926999462473228505008675909604120965482332248099140822149374124171676007680768011142251805025188168480543625867201321695842531005385149912037274633756108728747462872223293404850005965074605316587724824448082828678253457859943704680502304420480961981899957600895081577049553088955482301648336182512505299533563595264086973988066253801026650197329501181998383110397797332291155563899078822219896505131593364400240627090712163826423847691706263731301815040352647908446757059510977944920710690547379432966641436136467266231794448455436912938227695798210068383770500376849343475683882837174092315890541780151104763897450145323623161989240019403465758039552052427455199800773519344748238561562940881391332867874071037207683360822361800747831355432157665117052980293010123309919792809313776544536280900596606379485299343051367820400995501694444974645249341752779896413982050554543415358898268274595700168758118440783024148584327219436443659744625251982582014116733553577709403248795334780633733387387369116338401342925967744392145469255250000793605699692777655537162256613292838162841217202348839862855627496995623470223198785771743746970431691852722940023477211363523584824011754720854538040419340046164458222524655241712020381081668903185745456916350460534147000966279518735497589646042158588247444449656349643117310295009460927320316528051356584119077682159380195948670914585440738993780354101752361944549617292163324949690377345403085502432908678281998587259238748492854229684296108586035452763873663217642499780096085368539500656929225028304690026952107901359403662949287168289849669925742996166541393382836755906808107759448905260561981655999243903568937950862457096367667879500517688717581035130696941976344945673033659453358550546930640240015927633391875477451654496712601172360235398973198343723880447995292496867200632390435808781721503631007851221550992397862280947653602204078281020773222711652526360848689537678665921899026309352486778049629180626514657511258837350321650918973000813143982208243653142811782490326209193153712238181904938039644436424477315890059132229294959059844952360307365348131606268424925141103925973732912828746266559774595428494563237285779292746691049555663652977492651726243437336975299306554196962675018315023274192412836786947583614479412672106670270163673387153748943251358035222702508960159025531515732478841764925591433006026758833034610027354259675761763816097715618888915808126308904607448420760372537656521628427839306722235610000768278344753148552767193634527556842380043906624193992270668927404693862714523431550440489507875533421169701078672286639104026145391002197944777636986951883322324790096711456627833121131311701461827555097924638862303076096285081097151799615917600545298194325727193314208080883261256942317247220128063034127308402945939999421761270661293391175012740087313287008545840271775162377798537214928657490351054690843730753959215896102914005458214266804534086656466004197020999272130315711041020023801147297106336636166130575429968309223507679341100515409916899580634239912012492108905034692609860724719939674801262614299003438916249631222971925346834076466651971936169272238683783325116503158233505560634479791505357948792902723552020497898440401978246545315942801752278521146337029065192765860710072490750401969213030992602086321300334790759327840347841016501862154194794606847508989142291845635815334330960778816553183423735017449684602803028279545199816848236571124111500851530349062612433082791410370447608128736395973867729463445564274867384809535830682066749551864152300301762736060911339929223119805505075647090793152124122394922467387101488360420104951725901007804121341520992864865905825238694342171505701492800628610170763543365868957071719616732849964397122665149159558861173950007411998295633515588670803837545164634228012110085146364315128900540398637879288521884119847143795908905514591176060544157299777587969164889758935109675165439854683424110416739548458797973571924935691848964496492313891177649720302981604439248422564269025118743207349806439287094476281162934610673613502680205980661969848279719010783412967911774357702409211187611900929823613625120897064887894276459742204793605376749309242078948471210660570224934133637203410258477438991776525304566308634787586920384129654480577993720673506324345282683874487955226052959930460722064128320027058586568022494661305177283150403031775259013731859678949464954273339864460980551193369121848349058837750270509970604818324845533986275651357646435915891341586920418231464348330534703251299427965729918818249901626545185273387336018919531654787122701346243895566230696165550398924289094698238689615214239553231294802946653099082342312514592668086482003760910490595134369075978951938927503352996900868898466997367347401360024193608388547042241880244891935467165473434974139569955867862115344790576147047407413074091138214484049647200196785894954897105873184611307720366903527811607117336886114656593189542837346712420755961080631658727169486475677660499229743259742128485357178832496258095213953387383956045968321264679329808889537145017708893895724481778720102217819805106096530432137621197153252135421587026400472543811610653822291143612731048901600513435184970845311963243703363923957528352630859714251053102542026443272489748255455381135691780876291922196759590835906943969877824812728021893824651705116525813918311492198242845802168804606650081691477895225755763482305649032220223155339946165339024122276117733376889733329562251330078680951739303546798273048654068968233597265202932680238909744272840843190838351530445013861467752984561010288822953000805958599127896375284578819292236092402413031634837988534365745365153540739708940005186968968923321271413451137519581745359244224536807775815128493672788249835853660538130548259322822421562108692911971633443930463748822103311322572812058287575220894126602278804249323453848187956042482505474650194866305569026313347153427712613828823534060529852301991571084967808124366830095148822037371745231296487972028656679614172290549163668487937670438215722239845765416905274118918284432620184232148128015759561594865640338939581344963954264375140639043321732952590560986642241031007872348727297429592834296096454874422033369093948550338455031543004448556555398684644266275646505566350934754087749105776764135979446011758431858576259220083429077214097662767743851398542873337125247844534720588283194524461421129523509628003473472838466270489843477455940976613788545899889497132333385741594606816077780065278673064157544016003690331324249623097545116078995247572886445993771871301434116717239807958311647844397004266987664167808182786566675667776690463739464525574196789780304998330756925493461420027548096412118193904960613239753291832595716205542669430710252478576184209849148916423342358135255881397804767127730399068664756192233952558300430579261190224365659946930296695594187893344474841845053944023682355523910366645075281942728134191799312916589758172826098687736403461959978890024927144429557011317861759495258115931419691676234916183994532043919767380840613400532129825143457526185926651920717031647969282920862116206111069608516037001400329720160021417301354747845341452725636885208666682693904452280912761875092050027497412861211186304821102037877143185643609859337876397789164759718335900208604083152698368214375272630348331504997604683147195967322616240844792511464852796750681070942192727756934728226569949527697664919160838167010024497028591736562654766158522534866126454771989360892417031140551517489750407177484422539601979766274144994839068690424908231925147164908699541513167658497694076015547681630092592600009576694227097713656258256931246811883746237283666068025567285667459362190623408310447328479289789377349785429501553635159203030644261745331098417896926213797428229328417934552706668612859091390360658567169197459179237701670959156064312360626585706922742446511187891182012933956006078465955310036632468662717699855468467918386061039993661283257891939794809532704757866280595956897806705696561522523954771160681660160941744156868624896670620965795088100129668926886424500833026627055519962182301900286922630851402650128176788967153683256135218695671764364748587879752128168976732627087459175696383241652527661800180062331168033877720384510933348201956715181313885378436467900312515275978167355260195778043060847410625446599638996921340186598087443952410179128473156407757062098034257676104750271484479679682345220732448421516416301865266354064102626202469631968731900058140179383177315872552012802407998408786420773460003096280326363848175270512672501955710688876287856483491561128157234115440817645931894108588835422133529930721910012601158063476251684897891534995422221602550046984141377349868777437735717600226408270254764033927093100755214767727411103416213856946005786864044683153603646797645713549283343888960783318921004072568472422846974029087037606083417361236156056388503952084283689664413386776685903310574346260590457347737146562797993291495280313064675662100429795225006227604153561964792498771695804085428453787459793876572739166434114745615206223926927371103680841672278884579828118974251117411018789546511783574648379239413252073130453819339203722137877808140090638803407181804857052897648623708455419082729634035202510486391498376227667234578958706923246930842588580726857664659306483310558845550768050474555796845464275270055958485930527395312312336992116685314944685015968903446282782859290362804572215871971265079898874499222209976017414576511533181546150602137168049130341448927934741412043989929765393336323805261329872967539334936040954046334960500030182855866308317605616362730685819407009042248240885389678198864184457169170018340065292324930501572794456556025503255947415019664226124452487867499408297624973124945539486099774412085373096315707312677181692570611051825247977653367873495097522214671796145877210222303209891603899959750361840764319905582792810508631359333073216687916704611345279635810282844004570121216443558522635484032433815728042642531607341615005678287215126566105626994491582774651331898240073783271901359132728970486234350905036891202486259653113827785416403033412171498621291463109287226949047063607908722232894227309709678725111224194721397538573889846788501405390511080110993301483879835067791647930191285029495889927648281692390233595399910287736007736938121454329911406809305162956054669924157502651337767224011070276754564096307032376178016432221875070761730262299678345641507114784859355099402331518556315381274716753814000504534874331294096021466815067789904470095348271887845603996809426066611133615107556742309645793112575528766571183883377279568898835061770303097681493602631530647662613405432906376639812719672191359927345579069774408586911433994792478992239462603651035500627272277500413306265548078463312465781791471255008055604332914824462282011126692624073537427430552801278074390528361099219710597746872949899581806923991295254780792749362537165776311165959397737407428246205279121379266503432513460718457334924580057328261710621631143893915666510162271791392228990540117741161540309937378661702904948160267111705489205064541126059941693715138237833073909230798706362300218471386564796969519416263541354995134342333212996739266696215069065803015513269002489837792188099100406347410924497496504512136060465986268114441509395349879762280850540823669698349624692904971025664236235631495745969255693460370651769207065566089176103988458774543675100387948389551061667103545276322267476482825864858093580682381710193194078595275257773062251579789045914504169005857574602809944287660007579695142077204630910391668909891336585090588835356810729748666033000939730807835738456630234312965587416057985350820771657348404139019759392632262688231661349329404165728572371130299057890325117924170063443379994927681314539090052619295082667702966516982302270426207369574909045631597111420623826440494171507509026469770334507688103926652721327336846009793449705685907918009505600333822428203135534060822271594810496398330438230332073250421436156678224207635214763266073360408115272714050444256442982429438644667703944173278887188384329661689085101107837635637986249386317761967139292585048620978212861100341202536241161598474088928687735659815499689540756131427130278590577086605262140544646580084966061175789645002542795908852055057043511615221188940860215032035843374885785381628720378897847939460825364384258738718396815265525127084013244290740632824626904270769692198066229929515650716239585620838601815907985300976735990099722117407984037475290315016306559098910918334760308491847851303804396832099737697910314099579498221301742168351870497564542584123353347600394558266940025595089475384256922558513543130508480312151442970799290678581325038288249413494876515192676055375237473107204866481359788603195630551867807295022569562714023197346596217803914534046330231480013597535248554414704281554053288991719157933381188668394175854444296208806427095440296213412335751641501645683069542407211296927237275884173765161279770243134608339097809747790582276538881491480874088311867017068715555273934301453591545484736567265278001190975977212300497106324573004648331815056686545409035133059102464915873189937946138005949277312074605542589380010954043024711722001297674206812430569028236326788829822759980840426346139849662027514547799649155280873291336664646010571145795124539748969593549089289912945633502299572331971350835945228788019201785097564878693643333155506578404897591765801061089339233908069891728504899260633967114571477068042342452939078089269386773093390453765903029476906404821142021308031601178831324426328339329378056909359792950372869067470115055945985133825437033671717651830040392913785338798611080289526598782959989173966202456259012087089475330234095183626996441900210655431715533256739468413993593805487215387723348528750819903944254673200187305996098270393571336804731419306249356323931628647185688104127541108468302093133098636150393612438644511346251421698476478143444725056400493757768244312382672196139540895937062662010239719282999489830712631242901103718466882376306130134445033572015835617011578358164166083788356364142405042182893795286968702157950345537782614009089799231339766743834016973634940235511260168154706267453685252752408338566731408502459050165816269564026960633036163999786124541298605262228591288937599839316246060971343010991692205164162072075047435503897741288621870354237300245459087685793900665604076967972319500978384905018501918321597050883038774093263830703223793436020313109236347676864085870000125242487951973183516132755263008369762406622883282960832792030516538256253161824699443268469055834925999242993951166131418834037409338878581777107596203696055072202465453134949075656908311452362655599471066532812354120568782509333102327612779216289913813995443515550639162118169867990707831013324457136510464987896934330381066668857585968900645281369785267107159383889336138834255397470905382513216051628052817204988182655587970812658869574895283636788192648464455209411628958275705652087134500062662476128339582797018850148231721215624159711548087248861000232392994552630474675505064449426428611261142762561985932327416474421405425142841340715565521610696233326778345825383881457772118277420826604497534206681673938218542570740288819354307550803664172162914554120079123919329948591278289516743951466166441801340131224925142772580464413158783722011221741227119610571074240288860065325143224430944774333051415078938340919233200542797370157841334309291011551237283277373229164087086896938267710024647926551100321799560093937261301096890004416965226518911930607990336116363527092966315315208195951193983031448804858633339827146859053289765063287674419124046577448329431360961750417448331941116649264224059562441686162020513456686736344492019918571385484307885007666278603238641480078077809544705290282815944026014111621744791141898282783654958700457003434334463396510494199262519048038325037018218049946538985825863197495534330454720565100967913892970317955770094075569286457071710608655685350820208394174879409673897298647758680483055950133382130432445705079904714118141212074859237097007845398478680987823898538288235771509332118999322080264447455452720294037511522290086710559744082024830181656765048084666840182856108711717542746901496355527033058354791579530310640191274408672859983976486971610007931004824737760732978069347568994950302456435136066240067852173118596812760306175266510482865113709440869311738367435678687399080700906041941436844965085277783066236288785759805260510440636884957298818035315385645458173000949421471017812004816386576912859007237291860719041248498228380314276431746873565506320311268124917683299532047033937479729568361336998978682583021930163452120271992676493125953886312893803963367488256154197231910647001100834108221404155510043726414140029370182807445877849696588551977110411459721632104016016516013177892024258529008217433197403055067557576383559153270537073303028084210614859099381794767993051140670205034407806252533604100335708223913507119779336650919729261065767496483349566595511021022091294174294328398377244159447030581235741112996746757034325167018188151027813805957906089912954766791236541517132644577449121788679559247504014396509861546711633911976408671063598507545849673235689062848965874875106446732051130954726298379063126850820386890447322525552746988427435967744894348665326034815993693279215111572179186801440327548573254685958178752508218544467059408108882401903618397325534641153241521217890252912429159107351544992781761219319860414403130513685869927400889935764109979218492633115456225258469750626760798430830936338152026646657075513995327024347101638307059059932268803587978704650541350232416983169839188323803604346882335050902687028733839949451777589727428276310928924165575447644385370888956728542395464541267982290746243329354907123761490632424185005017956910118382426875186442298297045891102627959076691944245788052326828412175447049232199726035198282146592327754509985419181604008338759178259504944066914920134232372091169884926953406794216320193872908133784099024367747420526996453548801177053720370613569130378575151074856905475477893248034714079238347166306435922269583644431768389216126736843237703609550307185565023882823013132735635483257167509885821853859957940251376537895962866812963402362277561794681141294664459052245711773024393011290088010733846996925063672460369093008304752111617799574421389297443674632029712830891851016183662263194946548863757775796158490603626291655916455598844758233311337733089775322726285635086045104411245278017475416183539448127096286167172737163925429468404340012681204202028221993812017843639507621327780630673783707096758887787232532112264536656544934739275312433205545986285739280873314763864072718149970419118093863946776087968756478033394068217646416832276536576904152322480810638661352398540724585985774535002576858495852557850762183508769404861658198399981312235631806665598457428129655716558476813139919820324883589943214030526660137610964992278022185848128214751772027812848589913263916516253927803958567474330493920058611673075081141168117790938950726256322310953497604548831131462632063086811626464071342366139215741909290558588181074102654188083873123396246345864365371258627578492571439900082769183584441194226605452198273099121233646822649898482039131869245806513469633173210196812383825934528095175657855503625685168850460812136616648577972845934083935295311420125161652393499528047220961077133514729147833702360343244473504048414315915796449700344161764659786608304748740039916413358365608462217297599339204702656174487323166126896983703757919482282105361478586308583720951817350245592091453905270657636115232877607905801432091058290465326989244387960683516343896605558038418634621043137136281178035777334352087529790144248488881485194642110073820458989848182271385867168139459650309131041638646092849360944996444444456090018418867809264412220779243792488638973505139900816343543950541460598148721091941321914672259421814708961263864300945443210280759777995657724696680305650232728913242256337785822346171401125040610927400576968319979005904960092022614855708966190377978822770985540378201849884495673658844613313019755455290245695538202112540089913216135900514576722399500514735732164674730177583699424183114607868476820733964952335113626502553089669391601298634316230949270769502124234123937009599107998850161525388359941036772630694458583557965363795053257702408727602146342355557725034458659745863606609669946669934639761042967116465145603644679594508972993457692706659727840965903433147761823946911097934891173180315689481321863620641144118431789923976351781037938675673432219155174644303514261401460337491501741865964884030019468939390420076447618168571187157124176610871593516353374327680452955434863176849606061354986260754832351311622373752964869258376537095794533415673744289331566042268511390808908421234850348774226571955975469451023504319624959926568008550354495169701967250711220180487083761652393208695197769586515668161264829753005278441566298334467616837281679015464785230336106815601572811233799484456262955232068510354132676024089343368882299048804275733578880948505143542549013174015294667834937452685888658412466784650496143323165179822865322103781900441074905765395089267069662475216640719193409105376515278633612034088647023101418190933233755381894922269457728592157525788866809402727699993935041519021424454017018658097118213963590045895671229402644037133520134409272403268934789760898292620768170623898084121615749478560672802160569013712409564644420659177720241449435797567857261392548786354756119814679034004382608954707217051701690750097297778226693484664642430521028797376568637008287178645372985988204683158522832683147272290107006492764692236586694050041702149775684395208310015948502823099765390454503987023806014888132537013334987300208870891273243962872499445340907408265476687700638003271681793953838561125928876203811776653899676094244507827984335088151351378051501679679916881175441733869456399752085805774994554697687390128823935197071473162258431820834111504004989268098413225681506186862778090366389352148171825736494901086179891853218156722271896416010646854527894102865784775633471505597371459748441128276645344374884948470766003035826081553502194791202549442175137149565629352159604096451288523051396860393814159381495065755700932601110040052567546623923912103959743295116669259441035406607721516081525383348271847816751593424939552956670191026986044574286495186393353358410879278922465674077137418035520662997430424148031654368907289151976454347319365341044942884074436573842507362086264900766001392751458115949643803561148331689528421838864920913713235959928571458650545042786759508330393600496361119675527519617015367142004291506778922531752911871705547224413460008943729479794952032349169933394354468152943586909823164934077125620099527122227368075425182038243414994718211552014013690566173976869065219216527228208871125118115561261582683927499783706983184063201809736172357604808872055200667300229135638346365856056847820899276202874794584304243488335377926895090492899590842690486402715237916550917799576163762215346493344644269112456801802989423916385142415852352354116165084180110839957165920676934026448061925136756213613021091582051288691800208246599123713724100806756220330120171511342949925713006657128105544791022880140763532293290869568975969193697038156274740201477350816913378646418604752201704701270392112919386925601517696898420239065654347349532511120459747268756054392092923611294203474414692239834601316052122197775801068959567980982609714772811360496680423100528527210198896542390536622176114982244172418428755935404790018402681534193892379846608563788284923388349204016877307477310243619500242532671757515016103284146504242357206203068338641677985952352183634550322031478470379462217532715984155549418913374580218594407771426073702418565420097343129480951183661121096746457138711288894515374192123820412604456684530613100766815080104499515076041622257100082657856839260591065099420895828903621424060420269583987229223922032277511089631255180836147580400632516093742222772681633830474325998935815271738961766624261861589369761159484458339121248768351765678425206540524086284771344946129416225956995644410187992985382130490819999061107392586193875711111443359525340192154700014789669453359472538715467034721487002386200961586118513066900137877698085758723974049870369725546096220759304081054642494002234352679006356309070304493190046290398139253125370546410251466064200618842242129609514209268801474041396802000777803950217579509281945906166348352082444315139536180029276233641244456427535039925354522697746998262334189033871628660111388154872043847342628568490965860943451853347492118193988105022209704589531801459830918031408793723745740362965307512383499976823488450384545481358438644071520267541829852968842734953752326583045213969552562029973768642719705260563428869085324946006577461004689031509801868111286081107038835281677595233755256168115036324923393709062717009515361358884855087177708915401004169182510830449773158568719041219875567236447122627884576068981902566788437270451313694445290521478842815142605218822851715019411070923707932908556918951082197384747387880258081971849371307026817181735421286105265781882631264450394371016561967083559249441273861439547349371443553206250347248532228623365282091750932683235704881258385057510094157829466752249108846880041186250405981599004461779456754242709955795316425305058419283888894664228094065672020109011528898830018270302061320693738160008777661098719389145728514469520342241329028442963390054222637801482113052937522480473561901604638692015883997650801485777140256382498864832269365803138476765685931825123178537904391571445098980728337397134666087979385248540653073056639396385819078741328531890808828063295311039258314562369418492927880683476035410249595955398879166088088360867661993825684952134748678758067993641112809282613984435852866284460472440656820282867296884190122882143496174892325002683648874133708395195877455823635020258169810513551741505691639243475801662917723712149465334995645012234578813482247459286279986551807518771536985438967976162748289849809379957977682976541889954464511925826303445466786407501557794191333912055265644919806581532993038574791604165260565648958608342618440294888516409620315165084989549971344077529819337310429086914402785893865943322928559928521987688860177550132730724762849898519063032790406960277416313649098320231823525132689019822456204411139122289821473610384823551463636380096838422965831376009424550473623519342002023045244071479074286062592356100593398481322542346896754206725090678197497418106141179491902276098769697800482396267798218028976552747810940986895970116161040121839490801308710463223641327524493564768248438592138340855876291387016490338238394746746729909245934755303580810271208116678439621911101170743761945789665761365716886837457324166723503481544993659997057857183730125285639759600354427857886627331094545953341042882441806270939824892415345115884073226097338603824755807031183641661547689249372654661659978629474735809815687919840563573118908548031754307233635449961260785399921781213349990726384054768941675615648188368247852191260654591922899085119420982755399395816882757394437130506382778694580044651544607557520139354250591939115585141560266191799505627571082542689229212917032843785004657560993192712512223571501837648259142544996309396695694913858693704748891882270673180434344279807067104870478759351394707637217169391002171960078624933981429406521796922404922080473621022094579666108695280680876399699911833469524705742599155234583843558756369782604759960491142996065607906555570629119085227307939593437321236399972120311251365999777746111936767467146053255759182518529675041620522429681546191153402509917829829333398927769105254817318214642284996857983215645185005192985096162272561603015237247568393629738908748262627569447083818708709066802345290792738852645299182191028726644237410146426487423897719571639639621470510506590349462875310182172623603638573126488272719745690432829072328800351385400123381588773353664111996843038593287913686534781469108197149056905594076301768318830744894645541095484357245195999646510673117850065848896856526384832597592207606627653231342879624897809774224121278325543178669508268453451742718568041640723604608620622179568376553587072636226238602912512646895538715625107957206368217876194014779016556765858840377941685431778156116633443383077033759203029240890447380301525767680342385563023162398448976645768558808113493553630099603963419064162425970776750163912155131476980314907543308547724299204316431329125561844359511853549387768860692208793881938638614997436365518555059874455727043616738373442697692054471994026669206531477286013719719430089390618388610121354512865788720510572981457743898605602348603973080954901562058860595029299435139463954210816099093337941835560459820688101516741167823022564497418300796032622889837949142957550645259720312755421875847164179402942255006830504769914233415379206032250255127644059102920450637199829894819759993716555652915062296461663555006682620612074484039416986116992711885612095383939314372349803146472452213700932944540744904914847556094430651285841869638566146937023948263714718701997392205650126921417908761053988137370918825597211324814686848148813550147959219865299115553553251150141028819789236736833937881520936899173153334143410440166323745558427350846805510710074872195771293298087084093619782916317650186903530856815351961251336459367771101345989589585857063508231064149815789686155264253010086038307103788604674414876687189267695820755872139078009865351663085059087577177587523141969877416309335939355027736558609226385485406167812081112566498561846438286875380797657810432555082351394610005946756156555657730427939614649251634058944180314231155804605648077525426213256678654488170706684889233647276527290636878228059918830312839385795170875938159713273905955974274158584963880620207003808142495836549393993853006304950545737115715901920153511001860173932200915773157823042128839013594619644489511185851108592209928871040829907954114334494063364027479794364435429633794085125293103989811893295878158487586745993321096588999998643279399659965477470249319231753408813772569810110903670875692353935749370017925073020438133955631273695231520968773273268227010857087781928074940975047692585622565471130782892747244586371775305367930453685435052231818579838142439091679518405768124284149945862785981418115187125657500338683008109531605387771025495719943400419251315205789591877621096513241162545535833474560345951354599858376249875473060296311502164107758552040662552136057792855516423462717983882201689830360197143788005474189120799163347228078315559964052819480016624406172182220308830992377912579221545794840427070311317601564549998821138014241105215430545229919761743949628101733644338370531104084975658978337273434470402225872324868353835545644490601952796352208842807493331974468739591927093909995739818648976652489449269259242546349166388563587067096358297859476226813756841991858724516237659014447959386749499471044361495186317102746895082013028998179549269015800944029037188618183475095466934038525988663548542632995315121333496139787097529027362852645986794901243361708136088826182841872798899174228622234390085500230858457487803563793152027810323935260082501513737802592519636250514605714488105049843701546748773645725401537301499880462702721274222991595631602185118518203160209852472059302678291209281289219690643803899082792887183713631690404312660131112778697598087960045539665338346399385632604615080927437151231929821293998566149609064837802583298456341253148077182293252422145817891494936528057440753910513175854216431434021710492323816128612805908704148560799707478484522810926877156608627940844098937412336433482713808929876940918802721663463555362543962850261702948257099134433176173582136582522319814430978003089327951365720064179489213650676990349117411589427679565654697505468928482819709554590050279087945228156364355525018061311186149120623456772612235361413259025918141670392934648864872060289027604809605083886515060769287316235525989711685670131068156402045890854509721122707133896057411495898747087023297641137617958427768765057946448508200460040042068040382470682639158874250211443430427469180213377745983549745986963917368053484118835769035097094272572066370448627910640926599044569358225432058544774186405677923782562815990859862801483906776947940594972463347957931285413579635218050283706202920939948768222813467587827787061898509552847155908295129358062332205433808417151545009319969908680887778009696889758851863799791915416136624054775674300002903260790417602260399619500435558123416315183181144158210345645024526284375073650596846202008879995025067677290119152385149400785545455022423352051175636525561297238086727656288886931198302108227691737045218225298829927037379138152273121743912596619971045368045010388571807713996700221243025549564129383730572688512146175316933322716153727051933823200479127027139653024191436018500660959243565140585986407352092636104395341428641445741143119063523907485352856541535690911005893469108649764227304023463817072061061920401610153667064374723721335260222960714053981324521802177219621149304242103086502693168559444967508857249098331566127031276992165110335475043793604462515731396615914885563245580294010048503753668695952055106515374039745781478590629736590920869791132169445767020845623064733036890749545907712197847341235130429092965450666226656262493964647336115572507118266546650114076721022441763697959020403799262218017002857242171134517586912201581651590472705214247445244846006569826846168560135940777140582488985996681237641033827134830361130850918400508960726850110367928038079328104181190980316205190520109307384273266221405037987915959171203777252281247809776894824691402767545978641597220793387213592081894644906232389772969527965934620737234687029757948822921389988301132677488895508895149179698902454171510476062664052825454439771565941559729245842882012431000975242155539359759061744654368431020251116238352078174682924989558454279443025722706509538172858421419256874544013360158284012054233836226143513457586262482986028058308202051312268006016884536226372196268372321084548777262348080040636935884323069817645261590453205922237634116158662993762791996801050571963260438371047051533933974711218196171832799035388740393734611418218304313145914680458148768734034065732084545348843535609351588990868874471462456055556950699354620235811836537015342059871368894450201333090195664411876767186830834254746719226101630615939323833458004840537654048577833624330575529932017016602743541212032141295655839418553722942092314311209719271711141991457693669960953686193156008309362005349284044317177830095222132035567068523159274087833695861244031009924541056174524180731782578071328214936713108252636921866972059160739013207462510652595946645617263796290779298248765235183826544761960982324645837907533936368869619607734679587742537328245671035200152814878448631535954890410574346026458179282106488787839147087360825104613268314835499851970347333408729989155656608696643416209861669974191450236743100333858041774444063971752182340635659702367910658591766541309915644749992053368800962196816921232581878217518549111486218034033979838127825798803408608297485723949386657788382617389284451576060212114349267535491835121786928041465420420863168448845717089091941846541671059539957879604568980037588212720879186556321501540225186917564239090858645620283198144254466462109744910693696845908783809194949646538104428213809080458897897239189626840013998723497803031169307066595159195324688182915727466584240797758459213590091770562460196590709927001985120211589647864001247060607763994729415185522617429799551055866636988165496923880206127997562192515982464160606668379849488190544079814723547323955164857511761499063176751031094050553809514312812273173832038722017837327000848838112831236164493743139428941292380205847049442737801491061387753784108437541375806157887178566414726438896597930210621274332151540068742368670390780089916632740642040578653090843830153493746267107478906607994075272528754394545435771877139757097135136944386126580118416637560160678191545272646311787162991184154903034272646384418185739089852584770517424186237493783745988446534831899201928804064919128958062012325871236461933271329403538319275360457762314819539442646971345161585611650625119403430463460604831187831501699210348290384462475567626147319014704786481300502876179921074780801210637570559695693852239423597969327940620499456282638617101195419419344866354256237420210568331576655475728583413020198267153369127713027288952224929156409418296467408392861339222256910269672259318502486221762253885364793811073559891047376497693211154499797591694914265394389012162517934961371005213768042737102840924948796528046338280330115525721325854151792333933177725299663148971594375131262673946776309932014879229002667022454990814732241662604444739407515845004765420331820697544181259810630676025244816713037302008763968860006985333276238070793864813609189499756240839878845310674330126525648142106086355517226248226654731729242290051433273812528838868213967337432663600957043140492580482430073634493416569264682253760906166476033233273209422166984793160109440104032520419149457062843914820763466103979009022485414690734884048320801502172265438564950937652530924701139505478536940830882785696116195063065771835976468674051835895139765687595485549113849345469443641690064988142823866914593189222845793363801464470863858134007256691522052896744049353182263733523125863427598282754612329990347676618311023926619197372637649507761543605634544762070391990914743558152959198985810982310824522562295452093956715312031424543613145687924753280031869681480395788443176907950390368972440973968107406356570957719921316573957993544977510473424346133969463333558189776130103230879215682571877203131291699557776303933045382301115808856750782990848153062781203682321318604238955296322814722061058018909753969935899230063333371047227902677173794427200850802379701502739309009255930525260391378892330582954404480610128136839635142833905804388415161184757091167881154712996818102756970682525857224664323767297410088009167555451657391043769539728429818354297268425341497247838946471696034208248746368202433784892305479445098558527676028604133059601667546487687912118324989899722591087202806548739863540253786492008877808407973289511522344499730357838809357109492509238025613051963710125553816271959953555997911546453176896566249637889862817247044698454221257534731413648042313591006950981392958721206297791858821140072824845764746530088874140860714497966463947190986765208045840938067338542615060213416678519082931661921051049781910008236590599840188179449265744347724409160836012651234351660966754148749244240574262727320119062707304164754467132373033024172396241557871813916400557431534458672720441478736722464615674133176060734360099706239989208793324813958667855124105617771867839594125972016674858269767784458713305964315639888235009029557172250031438073474560085297959312473605142863387351677661990623032863102795082639722395443899731112669359242866719445728409826791961691102770438998224523438144072271194759509174335455960252250069068217909774125633805058505034995350081088860532667815122357562987574949435365763662462609690208373386630972413414286958016589097811841051221549965271696524464574575885741582460573204638105085938107621752403302145954169947732785064233000457255241355312145108885833504289200446100337918564816839176506872524352970318593908443704252021274989858638648243088401706297487217915930282234129604985583346007988179906661582234476722853871860842026329372469102966834558329463873296025572601236043338599229310108525628161403307738607895254714125855234832866824219352287062218464458049811436785302431160257480560890902312271906135935659858717693730876013192999922413036857771253883070134226499801118097342507666457471824913309996325795124523714124872714703695805617996561003999377375020763175682439116662251723482251516913952297339609953795664177403552828743405783205040395462847335411528611076621444325444447573510488107587215913004392446942083800664683728321239051792191787940992298242170608155275592302323608666875416116798140075354443672051865555510485810672537638630014404431919717894578009925591439822469138429889827682815772503285677213935588806832512864078596929073198930901921711939897529621092813170234225168720211209852256302267475939270210568831895401071875453990699701598973757866151251887309049249832250841356671915786299095054306745002978191460282616859524696365200240096096690746072238427793702041741076618330034467208823362712783074275228217515269247728101565506018528052233119534323399750993197712077571139956169287216727492943594854421274584223751517651066590421229348351826026422147676644851365909577312583423830787617551134043132283413978352937849635698245738493871136552411603261812625151127939213804384243987413220551432177370011262400168513175351259135182728367523542510023998517813511253570975810896350435597053364469045972852542767277073757539816596756206056570445988262136343017835419815303434834629300198620049474999411447108227773490827912647502699668610577382645105190846735544175043839151490251401991287068166212161982127655753790573945145239983498240584662235567438330738631855201325284349282490261509911305077226068934424031665720204314141552917059016957151371250768533448462917544865726655391086516053317371147179751310575236919261925009145141498514955778836625742733569964191360135511765435977646372670367093746158757770994200998718696017968154554161545083152425371562344505003552370496003655845430101025402593742692496247647651009062692189102083895295061558814780229831276807622449470062124445518935561517315625586710996576671174838000524250647127313431892007044788020944873100232014965897458337678398590067014361810639960713317375036818944475648145443427734878671548922701142419586904168991654186508424611795718360261011949331986821887212257464946369936608865712985921145871539811982821155672903208319175889922303532556856628136368455814278857604885940057897276206307069346983342746718885751719118979538872436059186417613071334323204585956347462658061553699359890009114797411389393136763036389211243470197732255817135723618105786626447242394667841581635450341098879563074999331199997921445316310898483504637691508721686805627917241354508813175730472664228075702874684480662991463829516987246203284872143296446608540896824215917223912369417711306227410857203171314141661967052608399295399433287446320127070671542433715943039880963452390606442119663859683565688237921702618565611213594734025760256755835232344020429060228116012736966449280977731840949967441355562049834867897155136411329302426191443968379698430764022664803944164594413874859202536685097806340951638389014794496022961724034727698915529634427878105929847712676184095664392643739936299671332731368941044863198811768799516435685792591267498285663471844426916379391451338551054780998040172637577236674637884894537216084544376667853866936114139024774887181148068297267539722753487656797399028541675109594280698062926812782047778637854894774341375264610948806967898727554828491101139895421795267268757805795717540909590848525524518056866768535350101633980010431421952483861978226166318250300023102109942053682643948647137623369730040259311546637146071834040733366321866574859661072437346318370752164874116861265329294905034204416437337383261618546533630958267533076835749466260583355137701283225281199969639111308878885970006506134403442369384459344162948270921571518787410528631005929826111165565754809025849755070504403591304485392074434401770796207043810756460868617277176509653012429018785006742367930040982827652884391644886653683933663174010890684069121548179040750178434015573318176006646085270639580228038450335904400829843172456252496592267108821609196804366344770188037623688745510171912138941177062990012953956596895039727331318986008229697393727440346430341480225790145219680147983765892967967583527202606728203233804055717016890798555750538568449999078524684418759159384955892261432341206032302894218181296533296026683233573905611226764144542543147594610510007180411082928303765247520462603465016427513767688638372815560185327038466182115444952521291515927302009411368539647697673473592650708013419395269465368339766281539316783430755607780358233949855627880082675081922054103361185753615134250536651580085248048289620564302586092892703388568681430960526079977031586346715158137469518825333756408483960564665119901950239857062807497840758456366694235390336544656956485248886382578274080652917345693949999031657725213765590514575699800381784150762931890870569499300724336131051355703138689479083739935737210029803185469072323358923011340418318814005998150103050284053134321476113810493535982777685791331263704672524246035164612442702095123891769292013862533990809377275777181870045056311263497353567886516407216434821568507927345646690574215190669577532560216183428670132990081287824499591785558982420482325188398055892107664891441584660452408627677835216221403906131163886462098245598986918469235927223859615210212831180893797733029655971335928713580529731013073869749251312996487417033783053521460594188493239493501019826572243573653564447979003129303049550807137906551490115265677512214377264411215918396507523920419971641935087304041135395068641433054587649692236212828103918507959740101327739945875027572414348529376401739034729824014539581229153742848233299453093870024574909053519635215726419945582129384532890505912943923685889114620392612955951722508185544141238532436423648042489213896348430815282778532036314246675191264672141618887810474845171091458542669593347324334432347139515517188972968832941251600603589495362173637776121132366818856125467990875307692988175125428812369683880923233979671228090467939522076390941092797894546573261760613818230184315533467059012790937516058746137289176192312164264858914870143119983251562819159647835912074759371661556892296196359385414747649623268464351234663955213176986266595494583710476606338379509977103422575667019905228532841735568819866346913443016468467806158395644868035522695132077870428554388097276217455644031268569392689836482521152801960822857628477169126066059546640716547047758135226791271510320285710353742460188149416823055541262687461497719546359336641359930814159187727245246451470608090321449942741748638371569259484243217057052607705545055171786449261851591465690704207518190685285291142337504067711683840697573777953387518427591514688502892412997416783842530946609540458632509756783246317870931123624256125743799548333220303477982430718308078530660888548543713864980355455801865503824618540755616390133049708434987558306718655937595446948850157038068012688159945042824963570505237279450218885866857989304081256751136781854575252339381846089889552243563748379920271843599051992085848266534826720168360796476862575537132004764066128251018584628758418658828289014128319772942265078847400239717816887846373364206752226407868038582034132670739830858709014911443608450658992877985459892597775542035072860676115470915043496529602306489937829354887001577434821658942476881676141203988325462057765037116181376221153909796493341346332855729281188357119277675339875412789825678783565247416465070546726415824653186692808201809732802894767449179950801042878703646321422670531874653874588120476400570564593327632710516881073008002160313069099914068034149477381852436610442715372311478695030080265521813270289763761656181538868145253803116147559796854373588643458773370898586465096299740395145841065903149055615207378997511918668377281959875854691885211657747560685511750128115880871013536856973290678029699059826224533234462541977807733082479307351784015999361333536646760839481713007675158701405071956123909689533685846314669829264647526294855006673198833126231044085657362759175870988549531640688270069752359503810936295704292566857387366959461086616444463305866854237625846966831921135025277239587097156235314930644957903472253752298074971652686296270568842475269385834170378654143324011955623898041964051837558572975276843892325442474256497040902534492777760037363518048086234819839012051796459250629163614063956734483294862604595583206527090981228813491383076277318339077525309504910759771341034754231399139958620160885311239448947849342216800872323813048144296049631067443953744915499724039533357493784700317942392678277774716303867997066903049664511566806123379861511738809657759380658030177263060381665608006494550813132463805501723729822341208239115602215707028918382052149350997981092086208806373066266821438517617901100715576960041487229635386061698957759578946869476510388353890036474025559818247930600029997549367927456603144564626877167846110328011527400298426059388970257716578551475120029967485031894189993176324583331758208569964691612954815251877825358016325842588665252749457914417247478233666028640693616013171107763426204400483785131311533301645749935208368173185577586688507919266685293885608993050327816166564000093262455685740127508671789124945723769290828377077107067188268661788566128501834842926197978555750899473030532381891474571183023373433690157262901081527540673024755835529358828650466923429429448408736477631514258517843372685572290413717625689180412193949892360895639582324185319867364105837240257723439674676130850517580491015978090688983830613015000339828384078428330300469446882453152763997556496348920314260747477678597439112147341180462488364990806661096017872145603989055402650970411081029761594250698971786643097628265711861622590773428558175033108166591947583048289224623333159243444216266688354964990399994985294083439852444342085544606685961663663484192242793993853496313810869080915190771424510926776996368425956656280706054336195641284163752050850336232436507231949715152750441634704502563017586682695580794602402097206775414577904474372281955538551799946395655340939049786128423358454286189236761516940162039919877777106395568017030556359816486990314914472835532780792727278328053070428174190553934670817200037614315121066026744132991058092621834135878506806647288493815520614776081886252711430252841289695417003146683478198209522611739554218987207176227873818969748494789784844291019361881116543650882090455262072781600700197245755043113859517856569978009976127364079292359620003940486276328385553784760418419573636621909308149520162767079499261936811941589958978178364251883450079844018736851894715583272193913789980519935667036565418245007751368280353439130735744671669048344193226362521243626116511156208041072621865349841108623017114244201703558436237178889613737783272878199545438082922939868120292771619213200902963511413538300786926293719444348786358568912745104034208975353081846493959292523033074350534265906468273171651885733343912243524900524612321047012554381056464294082440547706105996938028541615562810302422796572880071811463948619565270363215438986714924283702113647582342533733785700294144504026999134826945276293168152367118578288363483155485469894246399941112667524456036598690751229425685438930500208920177633356351992408215591558220424816634517744369247835862784183028333531064844466689499622423196793615212891433444322626764986257890203111288231878044830341743816237754003340027802304038062175647774201966771328220672426984058832249104069588831008956447350960484830303042418628670157782519901705297562018544026161502135281745101079117649277912462847875817792530555337247886664414427767914058938155721939318979126863823367529546246874512277180383619299490272997438879902381160574990880328588785101665045967754804514059488725525279148223020791570304568944527286431027935801010989960305074733934779017898185072857277242153097184502492325959791234465756792927003385307705764560964846839739948224371699247339909373048503862920497629491854571105888064197936010158813747058970491186657636347115636773201226648977894212994320055997377211150201658792978433185783454491667693194168914954612906995039316944953291780930124762944327871844562132446905648445655556089139192844695935330631743204440213721029744736898382232755721132430642326925110076596524127373930536109519433357114047247153193343799747973377030745239819103171587151451898834892821816773554428498733179764725587518120486407439604840068983009927533070808578776355610021904695575945130209545396753201279553117428438046974611500364757975767763008793234411826811567285481272921475256046686874660918900083574855221431191358226808962480511634467726765323600578013132530566677446629126251628046036929792202445313142579879877736840701899693137009926626666604556056936810132533809227010615131600991604093302323276254353917558063437867619956683830165640408674070283969967295582522386702956491425003657869059775142162747410604987075041397942454239055311045504047625298323037086853559766361670832509823739309355438597350294425684071338960512469855153046281236504599775380261849281687539485453043705634430067180019051236510484035324921970203610586791595983241413013113683381101745211294650610591938932165601762294680681973133499482952263388862158417444745561126426565397193651571171777674967857525152926010110910740922031782989231493113267256131571481706650378511001656146237423094164270264278943207212557377890006424026942065049213051200107366383204098148155743402319760273642478007171078375189956686412618673711389713366536762728309580183543769405455033584002144806149409664399566268438380695276502245036060443002581927483234699199075491454079985556841632954902728702391537201607949227226425466914396265635790105104260825001814596441323016559976920858721028642243809426349084075881050599608870874418397640588111799177982065977344269368881169432391275792035306947649046157610628644176903481327113219845588575129743645248352320041012550279347229303055249567545880696560858197381711003958261344191255643375983335119477179802153415894829362882754061546424904399913536774398150704348854829358291269260954130634587940357643378036226783514069374243009352839875914790300904835591473412466132082345809264230325022494392242892072486838583433806914039411287192152546928927176637941890360495819439129766508818607389847845322944278675125841220450660523597690386522001840703757219221988256169020255825761452098448623268624002227807753423595733884806280310694067086537362259410337462123677302653608904856849137301086786771664727497670857846989086882878744710140960183476906593603864164949596924945049274915352659009702139006454415852171162314583307937161949123051593894321948187515211554051242247900766357233300660074346684904260054844935221516589844618693953522879347106800403422014419184131009154841696090283395895027645634883069661788431764960929651258154706547573663635507697661953384622559176817757326738507339525671864020591277608593911914569587684406235717610419601796166656657881312406286331938439791213417002124031212304471584373164191099102952242895784104196211516017482787352787968085778803939521794781287052883040539693570406439062110131473580450459069093926761133090461157222893709521231052811834563595305221454838614564221515250739379293175960996150451420768735624348157450427298994922722735342983073224470840983561365609008360024426372104729248106319482678673091312408325800372472207745196694025462580997327129313896861040042149901553443197346747241619499023005268346271318657684985870550108021438777312004640206947044677548741754914886342894822504796491497688247535512776845427499929237532849421418590008704577057770271865847507379583055690816759859729580350462952559993784322422122682771654256308480850907736643025101208482261329466303524708847490603320084163496935151570077490830167782815668112166102338308437173665324197733807618338480403515180179337902459487689105930591939525315563755362615650602137332462032114994945367473856783149213648661001090013249634709592580964672404901552218259197637217759335580615824727215886681427414227372917150156656904113695436386365612644034010370589525600017504370680429731152493246484447840306279374385088096454174328874636071362783832486179628881341233662706193895810563735884347520567843923034153321277392843563177175850270730169167931475186224154634395000055507064062182023781497077106875350778408220198036802228469518167058020958531873576002716037952532573825940499504716254881985656820786556082794310321490861356011840746843682172417149775508846559376595184602677696692240816364131853998165766134926431615562555734753401955219290246279384090385155325438972355739054367182265667410623095728095429564204876393004545838671580801369596763001947636625654595718236797889686178016996182683743120201469243633077756063554480250580813422724053732895773521941411580296600786374029182316955226673179383538618683012613231655541471709595039700711342310144921474597337106249006402435169186810483127203492462197617422764678352407156681730084984656896331559870144786030208630126548127986336074364209509280232055964574016371819502852290594458354829621912278839394175378889761772478762843434925722980090946687375482741806070268368556650289216544924183607102911261934010212973280015796767045721286431397626429009182219206931280877725991636167344996027572723170187073424720025593660619979371127986489840834535715159796723541935557634968256744355403654091269372676505818752601017760685325276393098808253512610941164298223921285618703761525333157908594101328963957040901956026759777647288981508864041563344155437955555494413460817747045467702025759149740002439912363445039743788892990508535616182815951577104703409440400406934715894131398087253763025837560069664399587211540160445151419445818004225757009034162752850126059936223614770642304593656741352305017779268254769988204074761140009943028258881922907477460197129199872230198319661285461205873387189286307828210814286955940519325968211029329291499469675496505866219375594712986133423775880724542378142768993586703360053911184191761789725840580652666245775891871513701452827875751448447185946765588207049367530223854873741436575493580264680910027549144706277600190081363568722905308069374147899030294657705896692175484219595601927435146962032482367715448815023502922919928717903400375039010097052026797876076537839281566876280543824061130107833462512646505017493779787101904600621375640359259637892340004484498839178995009027176281313702522305463787521811908559291527706410448830748198528375329283036968292029931429917100617083898023334465368147807970332728730800017168981505894867024027148529281025735068433095750827122622518575313220323972033086769423669940098191840485654313011920912643663539410728860937698318977094906036011020932134237511926974255886697314788400004172496856888197634799722713402200379712221745550027354837335484985572034781500717485664494463192144691699803681697348190747181181882688212057608967353765271322745540765863819367020928499184641045547299620637636659294199050965481328589060297539842868845025835869659972267927652128449686555750392000564420026374427122533787775114912679770765830952835855027368127893143935860261155580959840009547208301835221020919557601935959272544111132462577113256333892658810552529006351795134389871711768402142703182290122766184157912391762567296734749200139752011439133095961549690386796370009374346302813413043486394875022068985351082943933249694074770601939531933656464950321423380556219295669784508654134293796443946818889507604912107178429918227657354023405887524262272411491761851243995487395807585310933392716597752902795225025335219817296065814649132490372630446269627643183786271619531749002578761989589672796453818620652126489610858068563341929082195175514393675941480010356324630259946594595378927511790098504133195085369170080991327083063870245216953676393594641375302978210671663300817068820518087354401219686161153137765436783248112361834839624720395764106216749841047146149560421114067196250416183729423261700027549294645994436571796545204532485643387887057196812328041749133392862779741799150999681178251336862588498872373439853677765699004003794742329414200963466308511669568591006582727112150119275836069265485740746272032059476113166089996417671038997591296460469207088012245211237085021309508643836122414246678543180079910721430386976670740363061253048052615154633174364906511522866579845827953552312314063687888802455482124315502612089878065887994372577393091155324229355411929357591244327081555689000236927130573781394534933071725155854976060889899504641634249565690581335659172264087219863967960943521709835615651388310348630209817025120048616431166324651771527994778609499634523023069210031796007882758011365395783419568639938404650219073948381358016255580077970801684589036158254625588842394662177878475970643411847946413439041864660656505906311412362783156628966966927460966743730612848735465314224312307778329190960832782693262859408516861865546295211203364328301676390146433277359940613320882501116617889340795826449771909344662840230768980183512120911040448353597635126672542631661566300439945692229230098020675042778288812005474819195011906972453933179880134292016749188715239343043894629988322283512392338189604030767563479267251011470686185653675534336312834856592136904535672695521840797714932965990475525282319972868162636745000139466574289178041317975050377772999816817182619510883679093630472375539037742256730394829970318697380312870015940692471475280925290950274227629845864255572003835127182888131961232685108370391894655548100088848235429783488992571890434629083377861851497793177430184145390436731566757715071767341646164088734231784091029754320701606473728983784107294326851172737219360760424170752891055197000131292809102427914506850276257714229710364237249746922333600281800435331338177960316983049652326695834737866424315665244422387724990952919962024995089609707339712595620432247612856139597566157678357010329925730067489144519144459274593770557335072909407581983830576832239959995104278693970234142009716238246922443722162463761662668815466162134923332850475759083189843145266401780596089579997533808934834812366581047456273235599869675885419585310271766768082413757510416478787594886359086082362412448088814168933151964696092951742424870823659482078196241255600192400179162996606271702078754787039034829216364511265603295200229376096425761186601363480904435942503489990354212037940244640842977053215521951526869216001333301636034050749230534068355193378436014092359920451754411633184162660090901254082667105274576757611502608378363790441997375346680226452504351567803722102578820140467363957099581197964192110665402252069566861980293816998077113809206604101075941334943727390634845072173668373330132717618266568152100042577542086571266629435235042888771608215232481380466607498139644361470750860060241148553089915275343184615865532831761137668452360906388953635039155058875711484044979751920836360358795972293834642118939711874113316392167588284312668661233614208510182266449097108111856039311301883087253444654052021021198814462435826138512057343200387858263063523046678110447416815517990247017822181451697237818518294537205983549962929240915326132409912100735336859505339458398960991999354181030894482782936936196121160608281581534250656237316310841599963016511634697848504777504140556339509691416135830433955767776576265451459106057653433070634305438297609690135853784240861621026857428234612968568250895891934545100630310536049331410890680539199234974607284142741943043096719940149731046291631258292092898135544637346295326822635307761098045585161766147102015214825215313086236897910521542300193597618843062918297391769537035371836511499292744560421241431475839419242600999808689804367108987242291544904389513811401772774378271091015515373577584965878710090678185497126516745314448223740375435469559155836007115782547803616306887400232356064851154170194665504358191441581925058390413147868023301415999331094920933573071746617900300942001983909462260357602021074995663959447397526979593341766526487772908983581318758458144883027686533532140002763438024865704206774562220364840429916350547128313388885668621641310597322955923182397299441365356624570152616190819497851161515214323768698077368614753986113275800958162322148095503496499582767557512489999346737226580790807479958101917407250756619084874128781681687220671683385309730301316494209218916860705093709722569880366915871194497524903197252556534282404017768282576659634282856820280085401105261087271764918215560172145924646082352824030431619469452271983389654450262326527235610006437547345182949948613856814446778480965985078282071081102308392272702688873363600416268587505094623690641002325681042851403123063512066571378881601738799405302606236112240914775540465487206582306362855309264656238323349656998667178262048048507128694965949466113158525599695065253245080053346134429810082523515525813577291001962136182200720739420369709430641629792400885743101757955413637835938698038114544595000788362438848098569041853704921441276213962516459555802747045591875609248078681433613806532217657178643663148300094219964604767999143426642347830968397641554468540936766526241527847834290582319874807035699224547261318747448173231620157170653128755181023573743310254864488579485846947406328105757027404784440338794485162913695681616513320295720864866370409941646340527081755515102181204738698045369385274082328486714923132597207950291697745769730062489450438364655642515850482991264978543143679795257093187327241906758289652187406924935715791887438775306000559341280423682828640711539332180459896855710121683924135567398890241760337083362178519972835966223736942823863848606211643011140763211612251256673458900771161230062253572249287553309351233169888208878863092589680339596482305430338987417151791054722500412578240820497666601924628111771079204711505196255147239159364529141505569643605479594596526885173612597155558179336654207061539567740067086533276305072484051276166135567881046944730581288832393736219265855990678784842010408307806306435496397901573251523390678567525388871696865627307118318806442795365597036119926202816227232624409719181172488890818847888600168774743370484435372526232044893911250348612192784418403217033059967819834839686906142692534669119728863048173143661808442105312726418853778717519815681269767729637345911765391357480552349631635427254177121201825107119760337386149890076225371592341270736993299459491311902906495316263820397869503988503598025049689984514301661604124734540531594618656970967455126048251056043030764409721251634677300735271236276652979779630298712079061899124264815092198007469773990633928556009478421487236921461776808923269205291606603987178066204378091869191998620818646931286612577317548092431151564658831081027006517507872042406675463864780131463694130083376626445580700816370925908266148100305927801246312840498754621021119849302866732475879124549345464702451527041850898030127150895817653292660438474012324672791180542291408759026917181376108726241467069004945467929960003994953066399898774820513792201629119864014274858226437694265823059281114358978268092763457987722458824592673479688815679524082015139269497368841701161668692520327710852364134695950508818276532948192179752026237839761406908961587087203734646367347344207426254500925991093054954906699259108913760208101791248706679003041771323062037024606245198484947386022433986539540794160868937074897478433637747422804366409671602227740756081148566031728743271493131026340160181901375251908347946806947534514193598491794426233985912419206008842159505901738249434590006852445379492961419132043547925989520670821512302191078050174023723820952167072138993944208595431541886916443513993733351539409472474308878543830764921121798997633808458193507989459295825507030646260403089758130674451995068769032544424867904477187225769552915461345293984083473710836392250660195570235191626204960767527590726122302735339262652370172731254709407408493783340920816012817453575081980815945798586523313211177430157231398311438899781007106010696315776933231547873919771275794602463105707213914118169461953443329320130956980674287631407654290027096589756077936266919755240318812252982432549822935630788291720355575305602333308241538156517218927696346719207950125904398692582267446162106507091207239324589539230084810563236077387985503082087214512702731171838580851357423616198001345438341687981215763808250257362247150359823588045408066095635513968688029107323512329891905530120905666097879509875505339870087960256142571033072655968506828312826323267496378654664688133701898591216227511507578260335678171027847043068869497341897835812827569313684649158109841174142302214505577861445088187441238870389699094113336588727526480831465297958048798524397617951480707218345060794942696228369054284888051224086986360933767872924932159511863147803835318678660488787376976482711439116430292929541369854027544075203856623573770986684695566955746262253825523023262214701101547618928557491831305595767042476357504859774177134975941771312841300174701356543038239280284450935190201268155108224906308396430698410988302718941055431491689799201163922842996247988485986378057208716664545210110301619807680914089161504200130369001190698099316479772746608039228785896495974740961274684260377849743552914381214697582057251861684010982466301421218665380721047431067971776384686380566422039978275206201963767308930651550141676008044085610596475897641601286089875430980714396314227013057969346607273665044795289753581928053025035381478694860956534478990626949015509112773487828659117075575066994342109371206541089993298229176398302968563949920900033000007219186723155120836726640999324810751589628779451961835993150983975133109955085802228442850598622760128369929653310834163026320930302052205154101894797214466768492734103245725757506206665012154925048724112889244398428255547997050624438666123836931877921899645940772322568624632637622425217807877572026034154969997500778579588844519470652311956843688723546083392207489023740439660522032831621061601990412863673398901606073225317419874281959171943191172456906468317860382395991536994621556708124011962893448524565738015509524092055661455668352610528536572562193942892670444560781041630512156154216472228057529690529774023507186585316792106497294604165506418118772858117384591461492197577759918423707714762638647944547773716291770425815918091704572305146387155709348140114140508419290160442020069885297571339158654754856536489618526643754388586423995115943032515796340935086907184814185994752974299538466493082360908049099774679724451211759830531955362703213804384253008569620839669958352043599845329478295421824592024097430396493387936365226685873953329834251974593550437780538343891024890130979908488892463413149351672281015785535699131720910983932989241587099940197770327723509805526956472454854805642829411076677586915406455226908399389170249736077583874027532095217511451950376284214719014433847565737069343175636489232510160958090210889721111205228288803343737161823233241306464878946074907928357940802836298807995942819397891560074209159905649193711637957166231023890249578696139198409698861382961199989620236655099450544408901877962018315965849150631777099861041470808102043393767586845856341499050791401961351698806450042665176946232511162750640355995422836638020893665068391088748801844414977579606496287836092626307295208684317657978640059963784462462040866059358412085176668367644234870977020432748952874599981243058299054623223385879487817740759383697772442863276147464827283209391021464863347948915609131361479100337018023248712060273250148298775712892363420476951399143399470988475821270049042313206225605030331292611668232615576095496930258391107154513941210822816097900865427282772744891344513894285804155194259160761475435084580259294404840657646836707052756965645407954338324360127158654992300427915806877789282139347338596469029578866367009985259763588661461923782146997938859127275299809144161116529656290119015352851965621717261849064555210326327521572324006982101374253365439843693463762753740265413149662220751175632441284934131171067623562772933652413096693072421139660327829928398384521948807480115603073327597073762258941991683823123500679052569429639149584412181133088450687701223266295523043013039926554394652981630503255448638772295239059611985212018521765115753291719993568597367469358926360425233882105092832276369385012824859314952568848404015678695305761534057118433309391095764676029405219290092512092093383545892310241001738624250209577385492463692081928272340887036395721499915420463239300009076541943498730239919354808409862181466135221974716247067771970065180431498355600677034554780490071421271292052658191613874353044353732979325184838116444627213353559042285435122555046313608076816252485895696968563140234269340962972685927772490711326214594945113205887687993791360631208644130362434809075594015096189222787936489629442316030770428475382718619082826280475927372875816964262402339200202620251639354464404916038790211147340805146210091888295147397632429355190018695229400619284600157957826806426383745290200316110715086739603154988528484618868281402841007595730801719565614559677461912204131562428464559481589221823720272192742105411979215644037240041110631174338780679147319648627981189760067208390349751405523619202315493883333552138625219058347176343084573607822731235209011015687676133117568265833366399832173519362322454706257641467362577861486901753949617141165543496183266261615369256486521680443794065702298854562177716426092275399196442750548970133171179363476770607155457411277807284816993410896048668928709064811208289983492874486772080698858098293673486743166067018715907430827277892808121537261858237069758087926486897894850773353109978056957267762562214732463457375333507470067529304270923486222746300821443608550903174257924177037627878472331136135096699520534120857004035122150718383056565327535547868494644250961277321605211453698621173656752523150288279232042347122880740840125073990879082738783841137910996985519352208364480906128966314826050965598495299206367739426265973448134736303730570836582737358972114191543926057487375073537704156912418431548961882353352422673212220795180217070361694538890946049984497510855665259315244204585846745520433499903249636517790188353823920853790519958861510729255916886655461267505002888293662201740429848554244479610579567378627672558562941474865104056467736030501921943755186729811362106720967914368170933244682673664109492526967332924758317424609653135654238774770513480946702924070378201212255184910044389598323886466979965696560869250398560176130517293575267810119958984849592765562094463603618497456865371596182546228352615642416131776019310431905640214799096101243759547027943105702217911670016061447605277790366794960591941718046635389274362185163445969662008919099299269229863680859619784176169818526589004790321082294815631348284189463881325305108311687835517174155772474409287193548588013815557285332186559536327935407814621200901625681973922145535487136865311707334880973743207957024658393477694625355530796335682988449592078571963519657238609936263200258023027216041202596923617410787753072812290608461964825464885454801040586956853050766486419076900212341694843086898884789090474777966945312695255342161980572407359700794433284307984135269030165867024803759636987254309627673335040410647383025595923827733134144923447499245279465628388878181675743900579889949180590989155042666921696374410150718820029795189366070045086814029798083894986079383720654720279240042982873323224356294051967255515421598435006303963409343461730868275712157935646533390714269151197264323003858845008002874827011113446381509466738514737012187263851658842313567470924999221437759215155019024546419817798000785177084440558692454113750835016996154040511719896315910230430971996958719634803359401774960302166470501882120273706805137262069489766933449700894197411972042969692073532874850375079748946287462139660531339560939445531523372748664007975166440847098769530437964834515670463763276733372312380514478469016590741581611703309606746550149237811074723178159531991010384352317785331899135216997351884313791163614099344914818034101801130097547564679797700015100150348754605946374399525398958687448661432402636031080493136960895431456122037502240414768720974738187762786116929931836876290557938219443121980879635937190128633308380883896716301063311616408505579975299346250745535521044457994865740003131563556358752898992572236394300695195037856474283694800344490851234569977291721842085462008544024708107394837397628664571694610644800528206686550335863103741932434710887276840504168016543130052110122369012306983655305757378609176329635090868262861414895939076130148867476437111699702659167792100862105314241531073857153053881379746352977751287532232678357657213662517474309419888223410174389284995134477150351584350213120838657080838242054721558176417138956668567450976208521073515202592342878008669614016820091459499684521727148853688928265261102361770740580094411310375573519544280033120531610679268889363103309045019452169757224495888363882256229944957385647550050508367679101018411097538806963672247682564318202131081274573957528761885151427529455268846517103396520521437724885699133592548223180163396238632752450131053640663738324028930802754105370683924121117899190244679360824238130647964420363796139383541335941620315344037063712792481117802599575251165039721973477647861084171525468685170641483053649765609472667401672459304390731908954700173438782050326725945520818475392946253823383800407211236984665520230766093575881564510541647308053374094722999472982256703963646136844311861255206623972728845226251809352353717873763426102708967857009385505332685478422308854478233441791996552090393185233168422945515270412543229292630526883884613028367536995973160359590748997928853940453139500322703860468262387667649752484209412033641406669448703550295872437273893776384964106535291609109671835111761060433850417980572417013705866864433627509773325823604319590053205006684247287118312077488021457165761823077720305747265065201751024053029776737194143700386435379700615380821551650280130305415533477344150010449800289787935105856168476831762223978188980449666961399184322865992830979906284965299202921448233349713736134338517655193723387981141390299118385324658447368597550308832832485146714732291757330713663282070914883794823751925843419061458430291599500004163239786653564272519452196963361238346854693139308462991038362276270170581083517025235528483441385184749642450237061518276847160888503101730507329076349259572127652146650442953244519100707705819252707629258889178072606148499227732289841955967179142088737530086586983174717668737999031257768385501562720998199948666933565244312537743713583391079995675941389576467251517356429021943805602829348751709708231500467499852235010298640979562625129782935638977560537549344868005482144404106012472545793543128619205728650055606916272901990878115577431824825183421684676797440022155157488984269338411991110813465234648164722227586461913002966788670892367828624283845757270135545917492787416866963692289241768049524101166107833558738112739495132379785967515721919704317553212764804642575508535700878694061420053104891907571509502021835891192693518171714312389689063542033716544082148637108078095813412728464117237916331780227445321318905525188975738258227954919454522752753059118191865934062484457979617450510696332877171890807696412178740388558993671856929642221771826707062409178229009850373056405745100165630592182979460299642047604160602553961268815346900934207825191782064777840119767258261511864423410480242143448296001303695283258741550518691593806128700985096302482967286348348318655579720352686896597990272546833317619205357787101256752441183442209212888392082273296109498766584393617679199550653701744770205975341719519818627653642468981219380321266331010417217048921537171825013421466612028651916204914910771319596604983765633815203523056613478533516343556397493012484413950272916698555389445622231763385557350572233727075937931449466602831977788491919207094195811034563244908847564482579748340877038871084111406603909677470334041314273870396545330115689825760871575274663138147956006585759813590518454651253142667128520205286105942908782673815808462943583114758010528637158094576196752900452051136813703499020160765098505321729499010202746547884539370714210984739795181259588154517412799185153235318287470135578911586671071036210930250398958398642549998689695459346228983626042242924292291054684085289901626680490182847460951482431640182252445000532590589089248032930251945778140782466206898222493735553652100871029849263444671464069388745012975074939655548453786142962262839474442428176356454221638375047680737761353093449219954800155135378179037791813170184065496586513611915613605352844004471445742607422235540873625205327336028779374287861606930758359212419818338670719203166497660255386008937356669543808953016072360390336493957181382052944348306207157700154091704588949336321514269350193166377749572206926132960889100035549336917396002818927413315196503057218815315840343372039058903709023564171010511543288228280094550069006687493969333408064108348105883824087861912462670733209535268093241048996564651716679128056326372699154006182787098975850828472898692327580941612748514409486175967668032228544672543085191927621657016779246478007610937424033713489866865161253520003945451072075406592994692567723382349698843955708839535262829103932908013764805367354243841435787363643689528443251117323350089695641181900430934727200493309516863415366031049019934094623075092886729614052046988749245928678262940786443016550120438209594189320812130618145940503346826965072504326994870029791877491987124042527510676833514160947210070867559599212786420523790436382506943066649204481953430144177178895164785054333560169043804682613936175623955837324018926704424476350819253189376582101017830618754046504533006756399618434854489162238189344598073999884821053672515943538089580218897264611060220921214840679802083299359334457816833988090397450902224448510200640658328500884135849178005906091046063115561536450256074620668855651970197451125485103283729192684534539959719197667678029088062070792097156633534552995422708095039466835795806132248042549381891870740054925412610863158720529106318126348091273962481740439958133066783824350093863691334070388031393055955831204175794770575723912345581922215505759156251541230019422087578085709932318490980640667521834919585247683055988494047057373366730055717467674765586110482555005768084128935925362661924395861691056995202207213035427669009861460780526647280610432220331271090239632823393756651480018897404624349382556080805764553891532680271389374812306350699292892092106258790306586112015013196844768923647984596395127726989791610974762833869178532456060233407360440352340438471171444219047857382129741680103423029916242060400952750699185210650704327748771467807055194807896125832750963852000218137638796560967200477908169773947110366488748993921775918703787789939753144287734594428329732031543064614699458699967440705966169565041784914658836094635590452492186745624281424766724252574966125818417959343459473273302046581185324070785421254701504508507386479782267760808608005106541721323196617509757791490904790079670170330552028605679027542188277701322606492083422005230096538649541072458641583613111684194380567617622274190196414298887081834581343825596278158687978929939578547477356423207924247416238414701244926627203517900024338977839170721740297803032864697081441850527089447771445262325683599612089599300536447630780891774515302453487650746519742969403496607284881804876119029294504328791681538392086421327755418252500507321900974542785927460399065614960277798277808461522476006152242090535253754039989010811018910366923988003026796146200960449616773046264930409519706516813624527061631725095222239521960810404575724459406745435859676550400852523544855386428189610841350709190501073128112131094834653370490565509197137508200931923263345840937911078882929107255856943781676627929600340957635466199114735778252068306644711981476994926470730503037314316853682828619561482644643481729355404250052737365783176911211615355665328200750424165613578697623795857999160901471235581152513092926107228599737983305734803150814437268544230834079278528588287732741368924989124222282141630971452669938953569919639819076374727694283255764130767113482518307206776008539185062265958256886724301626734654666335268919333804487259625623813601392221467115758278503843938748980493460762992748136196740423312330863828432387866851209397185867844362214013579495042168848254335519054470986796535922762786457387249858284707413112652334610937035326591966105567770548358886696993979278455838002439833689881819360964132793978627897448099323293162401568010679036132378700692394232452718569741867519610927649035849117649112974774900797201551367641895899218386876579927241714666998760179297775650183206237673498008587895107141616486518470919987970921514556741278089247848335540128071397401057835210417910660107284187904334714080724002283590897284831311015070462107719234760716654768628940170530889314708286560014446209126901518239577780984577868675495383967029384776845416531562210413054337849075793512972907542310347461541363686264141979060319778894159045899935266058312063906229268090598388832494640789358335173569005072933129540339242229337711458615913882543086628966753790976023166242817968098877497210249777666790019518037581445055644812345277574938547009291221470475985548071403052842200466579759185657770290033388149679312229824749734377683551914588083890608054273381242765906503504941765730401429534415990250518550761475375327111414941487780036864151710709836113822394527621052936021924694401253303942692919472403569106121113157588647573329009455216851884694665652871919172006332732280568441752499167074395942608064442625415922977721031202459801404767104391568608914567519479895719985171800363273741147040318134498925813988642913740008004010680079307305817037525288379958181323761366739111617800933637868680167132695137766658422164512274312941296032206600152346979872281785698950141179775283903472683732298130595568559779521937187621016421750367506982264507405787742935801820915910249620892779475118600392194022166572008826283467589650022859914788735289328981370665240093803909045459854812005357830472095090334943704702054952756898446228224451550549990584994919527846322072344694438368707114603944435147333663925615222051798393145433671711518093848935595888981207999007298002354766038581040699341197611952792357702872852680847025972329596260751510814176054328109252701683981370285802927465128680759933445302065698768637341274102936345590488882283519788148627331617660392950693529407481803425609587811822098751549648882041301763183452880539948815035887020479642402600699464311516260318119337544492381116084093595918958030658822820329028608547760208578324276775125939200147619434583187392262923372316322377074231748994918122694779261236096068966432440662297642113593282875773631384076103489994154686196898311452122337055497796588107519111471436100339564426806622900270050877952140517100195405527893600448550372045140014265710910049820022114110911154942186420100302079774122483278926768399844007369886675392141458750742717032375737436145295650255502860982602217809069505386340107597699577629124098930253130252523700833713362921092499641704322059245913505358760306384452439153711664116599921367377438323486972043371903912231575524759240072261361867366060528120009525432864240324606628451553692770245068364949506920378180969792204697132326651270545169399090374271780810739945163843715341408686914020966110832150063977084138254429779404300440097927754826443097625514858086579197244112446267667783045121720023747220071706741892411991155852379535050779522975486307605671088095847490520296265457732247265755902369816025800765279724556376886040556536590138578967356692271819202247655338422763323626340833307414894390549402800802360250270493853491159613920967297165206241870542761434840256374583926886009992575085836428605577119283350352442351235360529068649311138689833882708598686086317939473104672739933639868629080425232925978325357613992121413452811775702629592380993663555804244660299383170354223407027214814150693636533235916509088136024634455515008858282988702539917335032727508604498554821315916922643026590945621028064635806766809755749689678848894322680599907036352389271906808396177626085902884765705921593874279830196779882998083266929325308464442848891459778232244679358662388013080367926730007499983293246167674841240217866163291798229434214080492100643600519639892590666235557953186495196851337373554460691711378845231668962098491805061411330190138153638703890635797747678131220814964997738629091378448062439600381434607125727748392571513774788824345799256324912834533176353369796776672071800199478957847055823328640562274831807942353304467483059149331403959082451078785435656659431435195567368396544252445935338175153163297290844915169612905428553792249494987941763130373020444920216966780032860996303462896178322940787329151623535299803838787198347985554363157177482926315558217666245335837002349684322583953550378323640946014314089811030922934965633822193309282165916867954560985347139387574968421345866102563662819257065100632756504399317697958260515146887365540326555092491884262197469927596799404699795340630428413883821616089390313319167352302776341483582641657315828580232126476171102476287955829167478414201063569268939767141595531268785859912864496860180922650430603741165572918922788613962200661640311518835021053675552470529589760199093547393097911761935565646088658030097271465689007016636251865207058258002031769240273256022027218671886443448496968746938231834304471340878124514118081190948049893812434376795271809954080950303577484543971084097259875924387972784973270955006971858076821483556690208329017871951348356176051433634139825655615875993088496589134072126195078000792526445411593669364616514081101557492229037079623654554516918600959196560871290139507689488945342117219202654876053204681129044455359961069157035916196564863979099259021468024225190151399645419882302955800406204682352820007274538808953960855560909738603080889872547790364619681307931781049148061319397885128802908039213488826873090398956880848506922437247133515320847128210819576512893221731270707824269970572640196342390752081256695215196172059432139812166653881167596965093761946900441352806587561118144691154891268591598276285782734316257966697159000693752500249663426871384187369663230305282732823678003104378846127227074996201830546464013370809475329353885331244214644112066975553296305978095377905712252186472173252868132262491713917030684202619346675343648066171234894194684593613844615342579034106333669450441212246535269477256556781498765321523748503563818034340380183812587872822989641049356147223929976503384949860748505252649854708213306933293864796928187110031045981494130033595193260216960758915884011067504104546700360207725857014395868901946489098221395451580981619641159441492346836725754476511330004798136476215567384858121768925250740050983967588773128282561020616023750123446568720902780784472725303760492441039074769604364226337858656582326321606190749694386412995534855403790777367080023386296634798090666028192888741669737513889035086146139966956524352407584263662086179220218814171943417102166204929833541079389317547737242901431919672475416059698941576199301888233068910648412267156954509987174962147103245873005219189405288710908649526377829035432781429088678947611504395543354619037070123306676180651346695662933212775471393282992477986497618489321542771465403117794890014429695198691243713176232605598365047117435117847726346388414785427064977368535634772539868318234235371754894301480612008679734093797631063456004928501824442262171321871508184609044768503844409082897193739333025775892069164555972934391445547503597635972325700286138830247533927669501124543362160114380017160252626445473215533554379015126841973594057156338458370338514383992108777089956426335857442730057511941746577538369231035323406191567548068842767581733264135206533098554308042109050932329214421165465777681349883121160287820661394286926395207490931549518532261924121767719871943350387296753316186260554134429760136572627567892445170518967315906152221650785977261819316675654011488967996292305831104346829921084944065400339144041539168945787129314331849156203550934990821336666992494429169924508517541109346958142935317882709001512865169841201398924535604181302223487949857238071869220740912780601560111479724298207329555142082567145427652727737647924089607179288833494752312591898334273379693932157678463068539855162169249219521381507115676738334018886364706756656306477113974243631134508644347259075658490653876197420077947675106514247975237052571259045170572209365151395587512242764788206451472492295254689734368278180347940281385864986713816723943615498833531373430654784455258726144921732078938395493104445653030207858120279539211600642682632123141251659783686583334673526670131500423646407527045820958321766430701872829595187981349746738812650578114944836826721189361080236408845423795410786775539458820025221775625513288180364050404605315034750230718236905803128657078033821562716031961256497527466179541817833975230624541368926792092433163924907801158306822379039726285845434779177585670561131173553818344137353624560791271304056939199941908695140566597729951541783516825296275542770218564926854902920970128661412037195816144373218828682906778080392577634589699841367923774608286303909796745419426072091237966307028951363215026464275721438716228816928504619301620963767233520413959292744340952687522203325307046543924889661675311094742729651607455255056154423405767832434526370364166023332014967583677704546300601244419476167912194950220390957274596431083719651193777334851103964309712414534169615960916589931164596721998155339411117058669279221449820573954750182665801704264937103074848727598553764503692275072010811618323102037140141996936024218480521377159429199043776611352181972761743038669914153668643831565300860222973547785249283109662412860592063138138375610012245158497874583946265029639692245886674983370554140828998284375723129937546642862416876575387031946716642443345734652586048942502202397145264388138356219970685916325321515958190744362681332710559640421093811636357642977600130741255862121559784488897950394045906454077980508233288871930540461105893062252046331019404886388976409300404294793613718021845482635848952280677861915455008964176908467087256657068741697015093509910007613123904990573728858018467164837213071330652677802396080627950820096169882341225298570210861627180738730032871490784991480122050601995540546665243329334841769606995807563392002543819341207623180610778296250300411267476563034297421702822024979533393559553343999455611343923573229379303726468960712653331650405753324619723138631783259858226244865211665343481672216052707763228509310702780483433709147474931535367152076751274342222536480592695934000841702629940283290395355621669160338657189314540837986365215365873056966194143267398109989373524061013377820820986037309185253318686257387060733300608113111169068289293627483272965813775802088612999642559781991229499405714833367854122036414334366420702622297325409806660942047351210195580234102287032913910526801218964144938623507223315426075702526547445181046821353132891307462474431755840632308046309767123536365173888215392328611673806446375232340670685106228061515125487954972069457972185789907728036539059276734201319746301218155924214097799783334074649050991726025009215445910010795933566995216231101229479098405906687656923056194001216139599611948774866217340478108750997299374486498452831142831501793622183328395318953772028791166328569356292378770162203735953153871690592348479706291920705238131681868952384283415298077032534699498908332852487913078714604774782096084327763640502010483943404942372126118212991584422245646903617079359224740206501008829791383304189107156782537246644349855947722105485347976625602577236633085148443383751367177653065378199531971040258712635569704847866337637264505610863274339429044696629902695333631563074058130979083899896887007092298067756213150668137718725719052678459892614660457799666543147277063661287119231452387036525741473614204191214999158360282326949362727822823258300106282290924154055012099958631321986597078142861280928557367736579848404500415631800756006042582259381727547722115705067485470430346238599972191556936944654328924160949156728134535807747591694621139582120988718407878041595528294986930347780091568082961128673991608050080944844573785857076418898483942424022799819011461184869103220049393526005148735176350430661341817825430123582576298123256831811198011814251979279480355440819291239266843668346914499782561841490646107507673713416506580133253943605451305115377455488434039879887722072394711879491702667196514302136565027431249062312691900090773020020311311570818817996012720487074092760450456248953945316678228716592237865481199397179527239675382377737071081139695042802073805246712255049296036962327616422319183779109008481626833833711522488624893519985553940670503426555107501085047669503869938138692658522397116584709228165613278667453611983103723452742075638223350560427176781947626407371135621485486077678623628586638317575408620185975630063288253990691920663644272432855996264683673291390805308244938377000306956050687623791806979655862918021392196245972682980636328271978021011204894843752346244210457291574536382004588529725249187987227739650970502832886688837418570446402082413095139749700168367504759211387726866235864489101428213652631327064760143701796375620810054212772893308297614300738957612858203217558348635793457945670709585146646502934552370887196752599182032800764501579687921330245039195496233989042802876900479024242572842224910489214587419263581222083131457523824647118797370304595760413807652976857534261479025266038323017914647219387013042991676369580944716280343074759126881859962522209269923114787593128387843879105688928745475507823954145025567868881396060467831491315187009231023199169021015588304048325586819265858145053873659018775565788802343654327321538996290944214134425971185420794227045741866848714458205276522620915402367856478167508634909549354631593280171803117302466930104129514452078633334840299848804140925432086518212083459164816992321016846556666384109640124731501914302286370159888470535224421960831701637477157105512558674885867434022967569289372026186711112530028714243660167696219370787970615796396486040136289141207886382911336904821945108523896649320633654537676248012519319951822870935884823033233952227464293907258066242928264597395044765832812554844878481090230460069022669234647331722032301551218776952061100449749786277455863818993369215662183553719969984920135037219322345837029795642488226305713844846691601827804558063580867767053557276613998586842940519605223118166732951892626691071077721545531995956324195736461818667782511441726081691356153199861368583260950931410723530933751610522061045911451697425580351311276793981498615063441025439807651618955336621554002330557667670269455703739869268225367243334794435256595639121039123185920881445261768223507889449361356857523403213245672655900845061641632443864492745257568914814173995530079235349822868676279864390146673644221693807695409476554408067330483475976670657892171315976389091959415113813718576718430329012345672888996059905216526181624883291569488681737740012115120677144444699050539532644585363978757139310090598984728556402948835889065602550869858387507987438994170198621766831149476343139224793707784383331044146577360901545555797216611916523573608843288521584464827796176538917070666801998190287176413707690168791218404749326392908839884955165409797942814978709470456496420092027874887479314708845612917898279472804840186319576827520862153845296230121839900328635658667634044850241399790261260525035393923041951113827909957627259936988453759871057762113732439675775195738619539605186425557757744449203461870325783164864325529539844072803769618283436729805012638853118677587889414138422473674482702153008751189586218920094548545432775923920095229024547615401066484357643174078329110374567585392013223689026886924588023113974233539402047857117204818578488969400108089974320729637890990620685398438487997347205704448833697646811318656729351701032070797910384544018295591753022421644563916561837715241005169799156131391421224325781549199952440977007351862213399988665690747483288463216769033033828822034914662016840966067375317698190718618141293466820040458332611086363321556083703470782026381456448619434090951356955028115056294015847239908563432066065814328250791859440856537975462156176039382662558530630481343328674674272687977750973368339054066517188855186766395440805982547063520202658185615282944652036853289350130854214679944491627351147067670664774156578163243193403682231852409055095473137823782268565854347081396917603120314374898002091705649371980946538007153340279801449000904794558674885109515015405560826561879203373178831922792109699055000545812379012420834360717769120760482091975713288643465681661228654576870914148254338443049318615641096730749245752284651109268604178346517461439107367979251231468210421940828518616680967368638130082803009708379387390406673125769429823332719319999595920280744454074501102194637963231563056994784451147555273066962345737510539531234168602224093737731157341522893383333622025382291030471733463002859716789196747196022688118756638805655798887247203337604660031068495388972405921733204875222800324028248599864445828039905934000916323613154784752716968785371164184046724660140734949830350557348232154687727626180230430367492797347288274565445109189477119095243154873181285862623513860303562527853788350875270189304841767377425580603543881161413930305087351729420014244481668581434048366367325245784591822657226152254360670218238961714372691745988436070379385764237718750621020402705686388904083264466243321920836079153587970816116258522400756034427324725407242342992781351346201829945835082033978075042339868828208503338196171855611117723237468952058845464427800062011091677885740993354222257126980222014639408722769160467259716842240268327303196813146180136223288902837095977993679966374999151266186439658181541913948888990177411861297956911207505129373374080921907840514266224693980620776503767525840810444629458430464517112250652523261808700856554384311415840449663563514677938184600362384653175889605445358778864869633294082725374042972861971606387430528720244674901793219991830128413802812494789283045292067078624002412728841527245744299928125965405254239500237211393777756235973213824793867680669271261747135626870130899808925205284232851455877064951550807384414841703381693245719513457242874661901502283320116498760183290344556739507445191467786513678660933297738839785651001947353136965985862841303803388301417768129872353081658143360716072538075102631103237793820203782712467794139798002438265605992455355235725752765800254166928131121728650036135208905588525782441222702258130975934140144358052133202322432521537541481505128879156892644034462500509360042592978119460830808254246222094744137083252982961220086124418990269356995814326232021253133064918986074773075100286842317483262834846349324514590316037201048157648515628804026842999451450201231291623226517731405190293014050079650069476843102546480893016662617789272542942817480187097358864439603334026775708006280963644716772627705591301938358092507466880392020806158596027037217412920413581173948377095496614850198729580601409720671955049273318385920448457716592839393877647360906167934007324379706305911548567841202515736428293165113711355241801324547638444437405890143360921787407839103915929955974407792365908662725531069607188308480056161781007400080569066036742093592393648210633894418350451957905533344148499255042685129043208417287237028437192255861160126522854438597958542628384047260982665242029846434137519678226087527999394549754452456125740611622953418109959385686768391122338440667491496753513001110783147366763391803951610016513655932784706241208983198444569141087389134614009069276771937583490197255557274245572801413210790953101689901401524591963967661577777116714248189052078563739553365330238486034668202429610577001393713732786056017357045375866024752649763134705514157597989609751109189564379374262585135492177785822508443425252092004933876434838259542515369188812342484037762586148227689676372029866408822918611063247403922968687944620279900511424106156723620821451998339268433007066883450470092704538703242555385253482061667516334715924948702702576003000955082064321987031776982679340464497720288992956434857777425639129526971415047088181311072915294569060679366086167805303272706954666725950825728701391616503715294295501600171902780540860462055511475822046847848711208491927794476972205333204219193190636954848912245939131156674078025266019205818396663812053780210934308384954048569718808658024688982207525218421418279826461227985282905146289225770815029675546863373748272056240655232603015190535300301341538599177078242411783650810912672758672646841006638243942629105868531441020190809029833088253716422147473919567888633002809547236649605770565016347306565127298435071560934569481078362201802567448736654038202258662870904555817039289525329782195613785539786713750379425229568320943592835683433309474445768363329915348902366354775818305098839868090433881702739319553248753971087464619228916001970493272085483019989819106029422199772806295579836493366361810533400850810229145514160178853759013244365911875033185246432178234363882963979659226051741242532708705523397693631503740510988132438600671992364561270730193467398011563502814528834482486636382849316949855834503176000571922786121165607894748009022963460639265510077006867752913404326506214773817028846198315683479246502994913700013525587823137367967510756638873909047300659057184711051900662058686356275189192858049720142955076273568661524354607832483829917617780666898887329277712145997591922705335049827805044382935998578406188386525116945648575669966113384155929061214170384871968593322794836532582159276981423778491142435613826983993891084594820412279763028657089476014631662325206267596816844802765227281429762242605487713341700703613648863364406222474164217838298403288697705641485802775505904814494890929563565197112335975983466253369807586019175168131468166565051677112128541378655169513072735667840947765413486828302398324195349400457516065378068470614930893144883150113894353613151248129208566937099550507326763561049099970884438241235321759852323931037985150443557702444971117344005961023751967078710954707563087049502950860609457217919270036004509298857729334641835123998112589814439270068876319460175637687913785200278157593090405022193176987221173981365160615837975093542555305595428104154038097891090935428303014863172440488458332388706828938487334736858802603140347250025787051290436575820906963235286022778788988840185905797539469168127236706046960257355989511698861143957008613083448104296531550454225859321746395074309157070821256918613039260342948702997693123113325120092883457035749518249553314694233696715243424214142268316618820291768034261505146745401461198802846694117388311110147004945131825212087625093901783053149659557243485048105074861108971435712570169664355609428944379509292375150939002038229188417591033712022654865292234976668746449758297854670099055112727593146263758560780956109650042247661416216111775335771793991662265724728611583450851952927918330393419710160552835531415815729087667710932206341008559137010543693985242531255171045733173769294976344273549611959280824028827302413502944721317411474075266552544745316141855765955460918005715843063707728646857842004945182551448504660687702113249376066109920419820605155149041033334116473084183556897314214552205979803430947379971685512858270308136578436773298586594063605574645556326201692635573762904603373689900491237936596280911133805178877263585692322449552074660558781425000706380815770014270293430752135424264301463598378345104948855535197001162405537169454176202021688883649789086734533182933467661532897835435476295252051532213455373198686340843629886932197912919774499291721003279976670433898016905892200678516770771004745919917691986928837764158632631038384819774250349505479627872144701611468123213770876937324592905291114882659096837481950337028299647180009141219205328147140969652393692006797069754235252072664513943548872491716564279300947427700266129146254748700549145291064782846336828572231661690632152641067142668634728084605971529672419911746542967029308113755304008710352279551015106197346024363436153346696939374157052973598860935595805948756820230706602765702240447158051180188604872654048008856577467633509751514554495074354510513209324476046207858122998767991683473981099364801526047783233990929433281536164875046583952241818293924229457047659737632770789023730293785558240638760336356489516842314831279466460145235097793703858471634446910732699736873630363426831533464692968845013775676757567839970240510012794457236947796106635059027445622523383402931664148048455190433186604048450262891386328177233801980490384434535535837301257061460091190114475055001810708180139829801486900528230234929172202756471669297056417459902125687109693749525147289585864806193591585195246155976315319510285270102453013032441183933952102728872716568731198768487102905444671767056087700371456653389666345333044539826174234551806598712392976343824209778704119627230842883900541953745180168884561782465109557643944545095260411540111583179020903615650682369412745396066093585000863633017843721439288155985581338007535466934222672484769111979826393733418942390365318579415461773702518502963691750067218677616532737275655105654069396012293091173828040676829887958124837234083982493177003225334278304864431008732065565611340715439756541867647889390034844682321702557355016806758153274959237714426549158875723932310097961176714817721680736941313905580780617622080860231975059112885061989585700315079979688728628981310321362322901508287380377728035279608395912537462105518459796367301610994700267752477054326703491509941811449539118095013914400096988163013768871242816078470412376315986524241736343734128360295999110780011349419869194256358460396995323748108880168480051144155349682394653985825038086969986059834391903619533631042745580715244165208485833106299677940842252557481378408799553424151676653143766681543857522853976381779244601003864320594375055790864200795570049804487187015855097590467072853070458880128103457735930177571285061346571496025847339105815411863394905516998910936601036046455789960741351149018779621027063833608433459754550186317954569302269245459989137215107248004144176418078518442066737739056630087144313687154745396674453531614618141994196223608539507926090847737580523184628748630007725474375888113025466979816511772381948315491094263883020270804537070543852698959316037256947673286460924437679006467220202750728581915614671513690023612982782601253611831939716476433659654933902799812562342058933855849763753857470751037242829148013144022382389325177370381972848968929575770990850282769110908322087890499720978555748405066222160957774304973380658631144074895042006832672463023756262204964581283155845140625331781373018078530916514533621506413102415157494827707803785920794025685937150477780744254012322734654546282483732541319735420101232427215749450662645271541356095244672232899163639844586674913603656277915376323490606409732476265710961396692878075059449974394942419067519652096165077613479474255763977974880402925015357994725527124208124839614890486093074885273814097453399515384042566469743110688899281961588968042229951927905872936269326164286641759008011197997674964260619578582492578676350271873891365831082940302519257861436244187445741233213685724898222131724087353640066994911486658914015034771246801861399185295775989405563824921860264931161736191064476316040733463210356778625139402406875278032907029071146677200709783999836378197372027302019498118890122062975967044621828901138572741902962631838499958999452384279331796084917759916056300072837835812669624160133950622774994065108347977981983742207277186607321282289463244311063749832753284412565830880356117517942964086493277648999973768363971655634458908122880133132752833227779751090446784107688194252309023679565287675575780233314929413235787123219325883800139230888308074670820423414176347564098360797974445306764365733858675658096585114390987507514462031511212230083560769349211958344603267973008095416885997983635241365347693707692751293007724652717180544322874094761961503467460037970291429343548141579061495784202448066029914454131386875400449060046741578373203020459937215775803374349888924477127953415218342047109865939622080411015900815399883092150826944761161229407679513078442172217122241799563635498938259447995919678062527565134241722522498862219395239747823894940737283413916667062861513779385154689210758422005969261491914228007243561309413479030372374618917333527839795988248408080673276294061755668703314234782991151333320885687588514750001555324597650735462712515016970487593161236186017577885866200222007646754967132652310250682509680834850093839755799060088961145177388737271263160507027668600230660606467343649539101040837369334947891084436929488640580182248270255444270429008173819754687788764248321324238771904348722821705648044342991550596083818546505132540688249579901319513666458753631650712664811286322575944995721973994856679793710549888884948704343232630321688272862353627301823051088823521793580631191512976641170876158392096706832012048471224146309259631548696356207257569115858272698383493414427387117718513129567636968481204194981896528556346791024912463306392772277698061698448064845589208859757223049822739102131100027325869807598529156994516408793657234619175264801486596777310037210068130468714588961210700728476167405882862636641261438589262853058577482223234259634567365725403824952870290090130478069913217888658964777001313040694172766551971188375231335211079617460856478067783484193135013273723382247522345081517546761406204478015728771319849683477669379592515819642951636076487519904310886904683646263445008925531225770488621223234383789961712902800010200140873107314188475544937854016195588313075053927401065797831114523951695094521530696794095826037200516447316980142089113850182300134451050291560538586048358017970196844699145112458886366962924174567013004392758112134722208741274771412715373149329665625764089507810528419683365775204746805268256987612523951644329830333952752838059482811342122070812633996971912755574792531101558742785205174847122309407344689000030541588276586699053042749248854047243095665730632606987950858085812285009425338343400031608791893410503652469036986606093979295438881803527167891328252886065551293779159751113972935670093809223627195875593805780506378288723256156264947037223770608409833888350782302554753845648699341266726381961863679768766573815203566767774372683648601860453611117046552992883868167629782876625889524673499093159078189853846371810810389817989421581614767224300211069237576527880051845740618643355496599755525008492378202457021943791070035338033979608122534104947801177971909876132425147387084142862351885259311588990570658462379852509593103100447646886795677791238927197569016520174547702365066943920960159871073534203730065987362600300708143364461683625385328168335567478994837812053698808134130266226771839032622969094747082049970461316220775949529780343547599024290167415180007101616792847696343074047627240587585682129317509492634501254688373136819225971996834085091223678441108899816876976279983080579359908156557005181342130135177136158009722681139182502359961660173264601830533264628179126183390847681443223462397113181658748462000642069969119251379406262505532886401849956228578653973988710061775362404958435052433492869586615082938914450232968552031456969588412743758093226632091743001340545821857296880518827350136867989208443233771676255737998699305158287235972083108937525567049335308892205254552579496704594603464529164610849402245480483294191382037560562866629133348890385748649150865868383064513313510523677232667739498108868000253517946397129035042664150756410324189695927936131435093631686601538115804226662715506900867766065971554326097170918640568218464604504486762346572391502704896226605049514684459240853160185173955646675171445160698104641521446031790135996100788510660010099256006931167012329502293058154481214682399095489243205473324170030408030949612276524188381156676116038741700771384862830432684005488475845752404305049703701835991292581777644642671618569550590924724503561392621985295615911864577003822437768972258924754707062983441209778491565416950002092807510428575265313207643269371524979867079847280327180832880551327827900927656374560214307796609673215804050868011947530919007684687656613523746965069457847875741481177288317398466309236972949507370665198984628550672185622235711386912292162352744184367368077155999523528785363207324728003763118175394166196500220901345279442821221611690759777571273275557892800063110008921709894143639586544011175064139027109120152910858955187900667585383640243144218659822950508344164001532764514813565428611904587703850193164550133708272842237707452386218690728332025463059165069672743900694894847785578455181752709361004282359859033565632997466683576013037371301077109260545632380854913746809057829405574757789646810425438423425397363546625235855438386208665856439785656327887357788880378846019839176009922821308486366152201466180564166831281343627760301706483458529920081216939050963804644992844590864643732866195988173088637395481339322389788233309231572130325490305266396728080844504609588770020392725748358400116869150567031735626635572228861630363200771383469091171955685411161909526827875657116537701626197767527710373154467081493812475879551594071579700823788790655749215635194910490736203195783659194310192568229562884710648149635178495719272704890629854956231579537940385606474662689976092249658607738581673957371603686817381862684968338757996037710456232957819925608564065666416973599282509015609393004243144803614202318406296632319075369292758519067709078429050451329081650938793940973219637195019311391744942749380080854971242541747678005939783764037571805222490995842988488163341444320124536428987931751831235606488230066916024396158871023928380703127183512682378363547109987996655580597538471092034767480554994209296956858101819097679511692127722772862107819569020187109338508271096035185574634635133470102978059612888862831563453059619302250049095684289149392023182860471188449334271480743216104936675885233140713444520610009317437442957979003493185663596596263480566288009719533324474813767679434465822294941625205015039449329027015857030817158302474258303955400803992815817504934155983465272847167949055002055444051038955976838618502987025546059328097106864617872021312754745714394571509718186036067056332798094935430172951598008223817865224460223118345963633770305226969021772655506618186138925631033942848568501121537072866439758666295185714923363955192936583037486938339488681131910642354408784348992819139191785752058039182702356182738329796009528073139092420257695556710658660392651779100014460337325252449327409426927206746454808785201939133429414911235916234513095805124036611286738972396522134581320808036148624700470390288019688627104990595905983174567583232824104059214549313677224577853726009310757456577810749348741705522035891941137678783628663012065174904671791475521977190071333939042636043577819947278240124594306941600022725481772897667263292706075616909672313126348984037548764382302837551792369383064868341495350521401174333669438146327909261623646254097002665952364284963508242635580478085358517582411386527140814377300857307940442799620943238527050173217632670018101975055028538703148326857246225668296678728077677836693920915375733234761801366560886625956255876687898961439144089881467424830486364031127397287644386145369484252170820326879680202321314811698786290748290850158691453630908092276010083382289946703099439788717301321600058433581737346494559836062576046346818090008959005423824926747434197230710722343799879678769149996193195657204461839151814439070872616596559023506700305651177843587299583929873437497870956736996514111969340360148252768433030480069012790001307477301030112691639163102935423912872844569974362453995171011347353067138429511468313852942843930819888677959969000923196538666847514941079693467789309926591210879344998618550742792376281987477779286200460781604133826435179691596723526249833489053134491375640682123180145445367474792489344423977708560399836825477580155381915073814434433260726217822346349446599701695399166041740871942537450589224348183385362484141734272050024450710617304587091910456933476305055533101879671800947720904826158827522022228982765008594621764610453563495938470487640078437413122088992080588709594365639025436811313619460909818902009893764722959621792374360931673514612469440798790409874245720151465809724516991560486719966012121965069536624580841322817729762266377851172034267827047844108137099032037355902051737502157357551987499205386525664199681879711800830265015268992110362276686602171441347374097320712666631865663983063556954403466833585155676662608198261803476333186302429018098110425320279270559453362030367534378722199878065138588318527395883309792680659611180690485958307359291972934114451279451844819976288217582912062129093041715251522050189062041610239994330203462468331433780142694642943674539797817206409872097243821687236480512806035737757175187972131224363396340547688185593131973902926514771502449030852711992846149634080649354814514594435966762582944404935051980258758227428206591252872249531988340908909179223126246431370005741943417052152365699803181807798483860927781195082953602635336941237077796878740361788160796388357722665616860600445601613458555355322833576996903654321672151649412307954361127541738031758582971686894775249472188492721331774798282642269864240336938549543792820154059925167227295282012784713404055230349315522023190180025239262215975346962220951205473364089496706895458366286057628840623691601505361794309967409901547303481851099877451837331409411407235255722470809513990152618467917590450678605190081701612577066178645461884541848519197636195242429256498728710838981243978485475893479112149667020844493315674531564179663824321969308942325871263674326907390340914739665877478303406688493408928702623874020684487472958833922291845867025821398988509341454777938644163448645533883247318888942536781301745602036990826446468347772445940301143612314626347665662980525305118658945304090336594942845096519076479902494949847024473363811253843686159343722298117898185940760931466410295202024027395566109502691958704782303859663271668293221645444018606957166540550797326383908169525240090948153554487409602206820010762684900038884210970731656600227332178124611788759094979664104850655336939376419917616376087661640214506871351391769788621209687052166196812655242817998069719348263599441934538894183709982818951328915530882744268236210067780078166805688507292377203923355809885971490766926221638413885198193333945677721785391231470398707446848922512510790607047537424331182334168657168705735059172632912259126703527227532313270465954113261224815915004861221528025763923323199791165470933636804080602829034347890782708368051535457113684923541354133308415011831881075857010664265835605647064370694236729594839765319711047744132227005572746374919537892000290764134039013584642507426499219524484197571452136685178051071470543839452064514532372472842106841494162541781331244227591719130355686288257844211275025535322230401057975551025589605219131760213719460580547238434881949263750718844241166062583237540510388322837686932260317237991156295111482945706423748265271078199016395370102379944140831534629001699483210846364237780449362505845961884162676611742246422010718763770931914953702690092538077971553325278388973233267268351612846675851285867042249783744237735346618254544439215091686115723351373962383388380886267212604708337171654851444961776402816664981450269094565847031866288201313812884232351674741266644511557252608027349483921860662217457550498356592165171973866742756906511064004278595162377181519207437090887370561393436597820995011198098323153366215075146612865683803861755521010753557492542363517531148990486493207823463255466263039968817164666343602001687521111564792544381715798603003804590513312345962837837927538081668054994010039374684043597192457920521330682076945522650113401578693604326045516310225137294128225405501346787936427024117086581202013981952154327940566382170912838229212161647328980634388413236432308940045372940680174962978440608154450035646394390222430553030734685099694907012485989310102366906505971369484111689216349938971959943797572735931155811133879096865538538807115766349223671536808924634022102841058675956575267254663184221281486934753989008913112345572090542796154395690538135866061754235748273537380662665135201866771609987557082581856219039886141376473350276139440682766433807401163150830140170182859912517491242759862810214062648733701934028651043835168391593748172296820097202379880947867084183997292374993282768117268834576500820560049243985369746069968571440379655635085904148774561237301066212559648435471012715340287403635755566695792964130053620834726923986637910990214107733534134586016385430185331980477483338561363735305543534559830160316877727072428857897982984997190178501357184761727188275690184527753081447478621798080521235889129453287303347815902935982440200097885337004876727073734014795488321210347503611903840272396970191134731576740124846210452258239504868042071407816925125063194566561733527599483504553101242886919406103577036590194241090109220333053249675975878104777108890222765341515736800705502530149950805768873771046885978529566032159542644552037762965072099468716045592465648694666516024975492716389781332586175295635101153411391941776795837030103084497100588291617177810634781701667226617230353174749546854100217323372915247966205178954063090689899120435843993053725246090731900360269876171075930412046671299137456359032661481360323350244794548769113102827390906970904473939166671099950828874059672880399680950260331141095168015432130618654995708835710778539260486724522298477687104862065424469206758877919096302420838941733768243402613055585328896628256515828887821792895509219702536597689815173506607681315708105785083024195151763303284095724162992041984157591352104519636719255532596464914780006072378508800199453986319302154790409595989070494629181304628956213189334217352061190796569502487450059007782213743382719316292816182354733726496982835208489122663436359029349750362491672569480414989417479118442553642588978483707641435545196040412460157853777000497376130678314366094184996897593611188128191062415285213005566844385518634611764480463205166765514052571040994441926785586685910111828019024068903494130557828544064937335348876226426415886326314221248715175251881873626397614268570206166282506331650244664937488588466457572925086595189778855861736213534188765846694285143880802428965152552121932043978015279028792344678207878998264263586991917371069580912917864433200360069082041636906927135067874194048515918925940811938331278090345613391193955002966584750717014692424347430384162888933987962723156402951535417945918269879332020595995998949728736149943507486732713415312316624335439655683625965314351339825415833305182136573979204763968260026873809037625852972062610908517034647838721514524184918989328546440503319862778416685241883120048848250102317225544634635178344814976162757803436999858218825028409892748007724138395335200517143246212292364126149404096947973394942465767829940493897156974507423764054290799543063396355439376163763630797457806673632473374727301836440319885998329138550613641488001801845007674826544690897794227877587608585768256510568728018234483135464203622513617115295734207008288532110454143731099448585062609806479442550859386319693564712602997304845638545306238760717996428819950139360860323156252827968164554681642092378032567964696269744267701666043153576271215710839767839449533893431960985477961830360431736193987587313187875477425634392425246973440637132044517210848205438715622689277683768812547597875689406624874161250562133798047707031448019990498860691334971345532475750970621878924504423790172413312282624223991603376550946933693194491339443479586307307830530506034201990528246117158151411513802227854539104600002760823363145643620716631344313467970938443881857039667719529704358809193628957984389297651417274528370724824217637637534863526540518067391442623939988327042030771405927373706864992566218342967703550757176977581313146346217287985653882550679191321484010867376626483794187152917832004060288023186065734952656442626211025488341579426286582292845194969156116302221468280135577627597055804236256416602831377846639455646112713852588677257644506171504862563287768955918535418444524010638992434798110859577142519979266681097377660068873302588835263531465534026027615584414653403538194026786961104088153105244166517942473904083518012608588867609069610566222964177480835256480259914055255354186164542962703719288005674950662972913514942567689290352078516539441293398058489904266272124964014688185865780380074614142105295030407096332872475437182974029566828771059132562735429805701168350235713663024403970143353005378192884220873006286182959893614527580141153644252056760190538003880924364022637591277263583106400680043006566880711444720719558705442820168294621727087223562816087695381930055605504542263519602374920210898015277560164239489879174554346929706836849156817774583278638973935955400765590956684959832207959677834309702481989231417436571570752701435133382336401268225914850148698590570774796948956343352467139027235748277568527479184362152886097655434984796843550074568310973169033879417186278881783703510239803166531363520192346748663534446044197902594560120409208208919127232670249904056324831541578803240098674138803938541163561292751306637999164867204931268957075678418932618534930832490759867103915478285530725879130124160204236867815593277739479776504113792601652078612999765804471850891840446059571229674441304368601613752073744974189707989849973960703033956950962618275898300151643831633307795951538039207988289021837286167051170414918896898480952292067271568165963749217941157961158062474722710999386123992101362078566688547981211259290776825255555767746242082625730861091357897916522440223895059119871102771038187744185521842066725046703185827745440574973784424767071947748259809978912962605201421053546513261260401581689761917557090112936988050472924791954138845024234438878667240877990307009379011912011680533072733063443212451023447538111804164858396206349971241399035714998582272858944983405532375590070922864481580329074146520586426154929388626669756169755043557426840272761765712040678443035963662414018681315930078340066014539482193107755020700838241159346709827862196437638373958950256788904771531179789306847183735168314746809314627568586539968062780597891821471537462465330638886552331965929313366312331875109232496137040748123990184696977600836007285963724727900271012263800488929179373647069850480049056817547670913888076031969111558101030781634421415211736745551346935497731983989745311564580563385933363139114102642543052046422332765586319333899170373822519683947620440914363105510204237820187503083584435677042040998006095203408868018956495559165447153082405140203656289537856735520308836587196584579534848991060821736060684769595522693064271651843503491017944133643301489573512420194976267029731011926904417983557748697323062614184348186792077063667739509377138636745476409576761308812421871973864158358442695492596842672137880557835099190600564744942869780761308892181056230023389017270396871298414384089231776238767568743672310499515807961757607047280614978290015679467742078550930461921435343688005835378850721558819218314535723140583142605508574214629919658105385877144369426691458051132413179081309021115896255314854630170337158763860272066343806302857728344623582754330076507523519882517564410831903898397153324142583436204800011333900061067144504690116474518155478969185317667618457493146928551352451010525163696210515343735270565351876219051513903173338367474469622657884942015718596640144179243241485994377271507963303368607492808473502652768387165877490306703685107363044008069071256849591958802644894215702389573271516569354967277625170775011986329068036085977579356783348411878611986061492821176539741476487757243825495033705401734516722597954930100511686909352016715294472988308159730008432102627650112789457736725344310195580051433632610398313789499189751637155637606384904463183451415551836425548176820132105734671121702224345379121759666143714889907343855693981788506263450337207472477223344582259118750546299766583392278976929134070612734513970740640468051475260955137295199889457469007805925497327262798667171954166859796257739042126463255659361211515279471248092153310416605963556252685875050135527665163066647497501444735841837498391169621210550826998111943436138608672260653328397245928527322473673457540073425102226808781586601660171385685405680292102860511237067762423292549199694019463985885127811986123974879547209501605306836811810871549081895671802399962724921048535690687957975333138956052101243384443119867041800003271006491083894207686511556052118124265059851959916919039287506744798629572397216683384088583964438184973234247391759302696023842492893134384864702946000099457200262580772981398390602383790610180586293375437594568045829823559613820248551434026296520103515765759447193625069709534850779170737365376502427237519962684728868630835896923342598884190466077058629467025768705951957290880238957408554636994872233654929574638727905079606219056075851164282577242472733779298350801555719055237089670756999647868558488916987242249092739680988579450602060459574323021431003900931899883946930501317045796479469093317775972819792653198778058394413917603568724054677860933365645408442005190816671555469651582860391364922687262037417267846367380482485171290430985239811063118498587122709193720171654400832547266056573462796305848049139416555454416026055213784261239871047703148346449313375388146836904573248000520290962535281308598253394919839598037402660982671123003694926822652520041697809913002880236160882352934821277404662989561196803742346407126472598632016459941710582334675964878070574583059066670909232359133080970267152987510475079601305184353574923154966534331202427863360326804462216408999222866904980373570729742401691606247577637939745789493102766953339433044591736132776434377800516641451337439024235670063743289554939340618265267846611247066439361322844235117388404212987583377544910449979689800928433565379896860396362796955199292316286661840950604671660067117796302806966686679104049931020544591787573368527644381930104724787413589588860047220164456170504375085300701138757218797602618105915061816706976526399093196794336082947840119729443959390751254141992480845218979834372167971844114384405583638503693700618178648146117182298663154344026798229736863469031590846341338962140508934404070349630158645501293017892833988640016525079694484422025693391595230397542904054289910436674564404825134545090699674067770524756425361605674681182068421028224360021230411737216757682233406732965213656519807482284773847178345711946772827464427863528281950879150091375642569358539545673449209273284126318570505930080171648088755114229400375034681158314718836797142162191020520780031861354381851755698246350379633444807642695879010760972303618617221099957899837685515784319040295770498097818563614043148213298143870420856106794649858784072540270541233512783862486192323271406524167886904523875507071845629416816902819881806471369185195588891462185965897062258135965829991245194398922350690034002740940073957711323131722189233712343559874471535149200419393352201703132850984488731239863641011396479538043808871016053788197152362567589860068754711759605368987082934727559921614195111277490730386914135512734769227594956419973759023642848765994388474395210517497932442692691973831793611167323107659341334956621961891774553529185813751089217275972602957744540245838952310735399291122160121133429071593567281533869220210765594092551169202133373663121673498312130247578369166652983098134949813851378967249986350057934935136727249840848500639677546733571063178705854900190547747738517874302335825675040018339822658050810772535614656041104536244181628481217801861048221700485106804437869031406797264061328885714843454369230013642023926136931133738904035224651624842479434484773919160956040611344934876655881046651028592724965639860013011114978458428650852778943042278336011566304075816782023741881364821652393101902007423363948393119756526134740594618349366730649996057097867368537029762076349174332341632786166354368974265941563532388284513248337376203010000430316919466132963797383832279536293489265425761516294679585225341892338135363379874938463748376803856533444887993673765022795103579606687527861547465609403601762987222046625690856477595333976697956247282517155254955085126269056718359567103435941354951501253931683734210491059824468300066968696903231684403917636707936377673561053558199111119321958962474800811580308516460254077434851557647638883295255002253883757649766153471674576131482213393285861038720190239875528566895978376709295801334021517571259921195964694998547295949661072751376080280012509939856838748441195664791625386336757198146317083275990867371531372451762001346739481389578053233779567323700578131310784786663677626150074472158667848931755235247053193899451645999335374414506907062042239806799605531232132695921417144689798530162771246985227219573926230413384732730104267463497022734927750199129922829249075399623270036449398416939342583830551634487661984189626375725008055884045732801738484114172857438650675184932789045300013691729113102868969707449039812468330691060939916335507067585814967072255452040501230012241311386033452620913597897767533635083754467774281946962706064360322393685906239566384277078385885939921944587689722335902908918216514105859375750875710065170516746720902342339240016405148045215326967038126355687577400411953284054736294507486981835265829077321556281406802112949705241922610377041386754262394864500991806801604813054842685210508895686612977101889955962505234682309030825692242262168524265793771366953585707353325131949820680564925734436056671858554387592934054493613302177592208510603731839444396306663089260531078117240843938626802870733586538811654502315829579420082076042899665698999652765182546966453297219825418752119136502671518057607091697610907152023174994795154068772106364412892297435223051727343889326544552194370945191362948254046895366888825422835305163774565866889934877020689705567488679765421740935949501817708929523346310348202130567592102381033865641217141405313145171846343143670129852691444595226823471942528372124227003841419099772851386423167391931781893237420100848633903056610882006407527297022774012238592048277683303679560901245112593010250936101896905864060381278812264477225950898992436150775172820770829125895178308854208724861636380754907337579568161046903896545706241970805419973159767228227311868618705416544412505799427961133881009900147001550922573914902825851157552235705765309409250612696590332437521651205621807356118208629409716557432820451669357979708162560979662273469291251249601350387650508907188998162660461882192935351774328175019636579367791457357016870062095604133162407861855403921632546634271051815548040419671979696598789978392363014635590752047621408815902611716709522712859564522957630946397668966045365925881804226395574271779174694369701485442602282157442162792194200959686957658394665530282271007287204606114098466329568418887923757577413295936809975979567822068969346392822126386255690132969602610695794294106148889145424921577156374686147626307214819144432135412822685359731235513872798511074957358881160296147552176337062941012728700765055593006614766150948492036746719954450846270066770297574962547217026409352771909240496303725559498810625127944948766668258731731761046770819486121125774864525000014378925480162694725503979157232604934660865537631517919408335247369676901330430361023094305870461359061781572508109366932307872447120977761613643042167348375934305727149858032617733730700188669255195590021870096746175848909755165753222561726882430921552200367981231892631288812266802949320261816052794114857971271439198516387842920383067556479842651260975654391771708876915390212775747956567031993460718133610115455670271478315310345607021962645848531321835203160440153811362853412200326387772666394337558428898252870444563294050552458241201629181460412391824439639983587863724369749770528955030852078732224098987981169909122339930063809539621672016307918800772882719977666619530112121116636942184803369967307044622432375819907401706812077541399053344800368799866779232113658247188843799427326862970873062666469789123878303275074007697536265583764812217130443624338914698470602581833699747195240953782828990729879897041843904810799087405032533290305878319980573326347569416420544824572527600681268300543361299095010920467875875343316805386115105954084418106759129921829814107602154347824771723066592143366996321756450631534259437884570502113714873869142301654304702421085466839116918633614050866016065685065054084776406132397015020082544372791314398297387866103472383262842301456929679072303192824844258130801289044657796878007964029865388612243128218943781725005850453854033800418003632834517673789239904007755026899374553106708361947298190255643940406251367997869788716706045366001298794453460400450840804858791476683765598610322154335886881332786001050085942374893998650384292823236764483421437823589696923772897433961324924596594834970238464658930289486587047022142137595282727489404336113176218653064708849123198621524541231519055220784559919404856815163378858387252592107170240167771661729646689786820599833704950073347033286684567783405766465676509994796978971598300194912878526161606646613655472025686385194392668573525247252237275454873768499709075082641044470474768509245476242003453090558104423702086587913119276317166961132325681946360688081155367209297010651971008889047275223279185773458324802927474223134099642008592282454317851754966315871524731544959631856345018741382400373123090616953848619638106557903754955152646737836917252122450639264411842436829758575045887306432572499686164780460206647350072677492065265337716248454368536888024408520514655586368555971888773227527438585873968903344860454587664509243160375013780064703044064792331881747287753721926186686024963561422080636505543042808790314873820374249513148988043009204421378932086042688464231824974690267332372368875462724623305083059619552421901566370307263609221169992359887130511528668608907895359124669522231447027557256408533996342444803828988137562369130051453191598350448675514507886539248377803460614480360505044375395771444838922727180698068611309227332428856619373789669957104690552319037628523078857236210309354582313198036915469454537744783649788699524603816219514768650501365442704217563567750854279536225364359483034264635165240382959212195451104977687259195821514139711686122075118402182832244571550200090637597119114461671142679772245028883598655934520079286063237974438540422305076219099913912934754043102774519811328849054989961140810614310962021130514894297367705457733287292818262358445136959412517332039492633100173648924305138397654305815543571685278605368710634415848658282635408818012003442190396643882898470508609111747903018363590919172500150568639033855569296276837611184717942080577827953907388819096421265495997708730280289808497739903786605442352351866809688676463082865013166188584728253691008999857013289384422812846652651701657986960310110803888532765640199251613600242408393793318762672981206507164705940648075903811597757011926791546166829875590065996588041921303528878507367628747626768580749263384334772006420888004557345755066211823936275741306082895586762594323692846067612016732925076082588314032738789225682843511965787881537598341617416322495545895687547732613831712135424229900315748526986570180317675194852617340520213917741749494254365011575224522012241591476168243020352847879930656576586108977630466178556429832069166235264457044898837626394972100033084484796305815894485633843582041212000972921373316954298775819123843837081756224482444711249670854886546777135504776601125038447204996634871366430009348929973857679800231483459844254556054057015974925063746096693088584398742414660233164642355602531421499198710806598183031651251898467992839213091838161429933024743215792502310777765822168337891457099468927938596609099307798620814203431405024988270283843354595547496364421824584437957371950699507292238886644412340150045797968616794894690405355103593178003579365818664115933303474880666689554902231396288208068554704027083228533095072444300518428687270489788357107280011657328440860705921267502021634928874730348272920232868762721467365122038778855053178194207936583830182674314423509704092838776676685549455409634833151307943014745303918612930471251621104861575759843832695756368664069961490407079229771180779734522239519783820283814672932117893549903331036247285909511966417582863209240291137997668739507597537145132567913611824454302888901877929079897758273852391426666599370615270255049471171257866517339803811974084829704110311513419222745256820396562896874957798612884115457069529322349989213616754171777102235281533169908295578024021016962453306835496279485605200392436647769968896755603958408514586940321579446164409488784634049063037834346823178211916507765660348055293302930282632351325918931323420392659510750891329353552726434864968376820911182395814081590595586234692757086054222105294645179698330171570732129111778259305644999025741006968680373832248272318702370184809219527839420641657640659017384173302723306658647810210166418269350213572638738201036892057070359218369938747913765690000161859017413930670829706694509825548906467831864205755813060386699126467822866283487593263614441527813192590316225610933107165335111063651074046324293025685525181546948581296744128808080201764960381997429213913314753882579376616078274049159053410900335608425122547837399761202268002288128864016831918280804819655037440002987859732510596633631356785735019968225382027391906462593328286379194614426655418247336062946061305657064966165925843942123489645608569226569755493889695905962991249661273504563497616560625685363897437250826746127711583969945819701016172823137449592929169378740924055952021264518546317331971829427336137798100110444549973957548523317040720015955743712973894653916569148153214118250402395535110160800245314135548451681035645639562929690447904525011662810483277605257311184096284453980848423377388280803381645830560080564418227088900939107495351499404473476019961731864384320837708094879016497161678711071450276528579582120317510669666819701867481727270388131504372252476976895741486206322294380026162626106108998557575085366515265296204214688435744175935908147476878136464617205791013209680161211130757716679718621101794518561336247684609012042803470535193368377555721797466498198658986115871695581393144211495410382381084082521505493621475365856244930280523406258878936980947902507887390573848502052555521487701517879704656187671243131322929077596980258812755578867200789222314632379210519482250343463097667163566183861253912005928254636542996245102513277144226346224444251231648736834568583718535301381131783200521188830539867272674859844831084959863880307888624693958713127766069121267263280038440760225710905495612542579153215654280292535292313480483268583177377003468684796819319748229181325943293480566146205258016658249050326099551169275173932069271338859606676024440849688963396530227741398621256421960637428552667342743816242262585287415420272627406405301620200008837215849966906472538423825019873107093086496174462188239788006607170277587017262926053881584298262039870565209928250344898240459130621915667712911896784307628085742390319593939185128074242829735820630028363347128271211643938150813042809359073387338064788037729345376097964281745032896308145336323006985420672218847741301131218925078143385772959160313426296863173565517829227842309753585297709870702105867820198239047588517418106543748156245549110130313462514292985123915791312385622203199023307273902318085342233928097254740604557442143074842758867298927601724904382404902291535051667105093078479301504314751579114681573839335288585731836724859806467207073736091884877115047248126491944303901891106113549062278224331972095758951226685063370030359179523672151051554712106648809013327490215995392549378483258219018358969598310854146570901898722962818227728182831450646041322634114362629716273141144595294164410479300480922672130355023890214451298557471729126934083458031021980121646772907113028131935917774965168887492879310161890536222984815113005541124810148468914812423464626489719722417570377891781235217608121774644396480428008122943067697892860649248618611038320930007800743032062977677321153081242529918952838282825817269377857937860184859605548142128741660868960828729334863030945868057212153098852169216802661172158330595768088853656494349460109665621627913890427005180292574124088123740389516038875778756918477493486890731681338338601744956024265037580085088231888713282339639637961542278873146345042191558965389528586402296284767318972170839513104919592858023970466991931370819530028317667603393877033031859064340845303854497178021434583205906201872873359590658193567332217478415762442207136798623869968923230347306835249676917302649964759636856082478576394506928887565606691155546319221561533302989863211685052499904510802682117633393292310438907283954108635376560236478044190126373278973944675663523247595346209773830853524737968418106162405396518898720920591017336119079950834002439909171581303851938661352246036766176998201851067055378789126826060565541411502611912671880526125684513630151865699459639072181177200383657020239769560392062624660814049663368044287144547583123334052653955538100215682393086855450896155660030478230106233215639231400185285548113400240663471168695220832439886947563771497118368979296685627406578744657390628213426424871379891679863903197585685497526243648056156802407825624462519771887298602587865902935351227249639880623470138404707706831805030068907543535137203968699940030375225990726737903517200615428233955024563916109129220708951207840047549898325605593138370413892342054238803792808517164339082637434729603049868960493524024435233085690563453236730865984091486282363614416642385031419235976164887462689345764547419174626884061452917742762587356783801622143599993610099419221354891352661895196391599186546690905257748309180423249319687312015346724144775391513126347088222635338233571867506440654141133709150801580539251689055030949301344469740000843182690390986230431076115855123179046979940398054727109281800035695207946565784890926490647579180284236546006529757802970768563394789755558091822673562937337403535664323209651476946207124586432346168187440501029935966229632628778749466626289259589130484303171006737372419637175667546423372381958896224176759883496356084664899293414153754240795383477223780658641585600410414485974243768678504249516182980365256545654917499943506076988071512553979512727196132411077152968769147522527675844699164589892776834406758560413866915585376239965141308531944835626150233227460337871095876977340062736522539367338330903733384970823118350580979438602735783096211206039934878051158281953783843737874382996444305230415568422023246032307664164449952153339377981326866935787926956465643270004159897637811846333897878419810066281228025277206774242532873566945054906654108258443268519596946121137412129294978562873501731670124417152995279403032749670195966216122453823100324501334863913302085511023373222935490855615885799681504657182918169008655460952697912673764078985579734345031964303750099084908592637637747341513028801540382553079058812499238079969867857219874721973310543795859800173597979835571494394066565998950991373107667963347692673713512493688998766224867019693597305456585009871237214679029890464477817804000179147920906212656443414810259303599164946796837405860015142364315452281436007635806390713346720742013478606713832392144307216202018792384973119063426979005082211804480176806338209402106787254506625286459313723662079016690451678215326826751116047108434893583268443740713572321007871052681920622203830863892563640358796095727705000998766351922727516924697211139507644640491821884830043385255759752512893896833711197612702404151146293473309926362802345931058621947044929083156706802600448594865970107898555882361463202105442034909044198490205964435006704621319412285903355653144399590275550692228105374511028509480477057044826306332673598569467649712259608164236560392671700229454648285419850498927330838588996110506422592031135473421785764479290309716675888307956520662799358547529205211583303871366365784318685330420499853335786844966757653147893669545260524799723106828611755057488189630877525871734724026438223984559479723618009344358617898072558762266894087528934550894742418058915594511361017141924377562644590293135340883574842059127470491605235732440681541465863901417270174271972919846395732160769154954079424684419833846427956276653567500734092993963019199914161102065361368981701389535225215456385022890616183938585395282797654167655716506733744864264698044044318382022678140462330854747131665708889864890326569093305937813782805810208451477275675244521390474029002483768031582621762239747455554565493428827284869797053139394433540263023229518895717445778664558801467415183574268731125903828804654870938221477418535200154473748060521716642101973876425752502297842833129948503791438323472045894010631237307769505506077363323693306511534945963216032455202254182388347407330930052613355473566686521299497445039061237669585718505813346755843356632427237602514600486800538850394982658345022644494035776311482754298596913946162376630617664972351121080536884885042299681537411468348764491317085248745281175439201264560784236383661722866396369505214576584028697821693117341631032828420965946183150168294638727661959681890414755511587781123999722733215025182835655463401977047303772582955142255370810196220657007384312004211569803482397029354885166197756009145593342473259299745658938281227377248948758717554692985907371035892984965611988326249344979854063561632594827578537301233836822792972356784262928468714306002913423816694847352752303034141142822969793122880394035078344827468799940132471470760144662998991319798722733324645681918387390024154751440756120114580543747480611954303369745269557378270094879084909909633085707359469458992315866427195157751857754056964771719231135345919486972428110262593487224114537588146143323784698077233055029897384475158325304540575472793572005269215875066780675203770303387933040854541201769992590193271733242185587007700714070877879834263769506572323209786062467961989075191035095617429040435201068613051204579778815106066750794356419700815544892758652083150344976663272495058356493691789873306804725810093626992636079865491506328928573086458186768033012951550031229719836623516680035873011549860762245112213431967377771662641271407204461083903665093371030091871806397137985145244994392497393343856239516023219308485240340268806604057482609926456725267640336202925423924988147573008224224080593097584678902558369132815263723020592172501157034030185812125847775980946804710463257630977650559502976662546066789317024883025189682496721862391735808096174883231781127356572226549568783531076680125756049944201941312618651917859173203095207609930149472676359490910613060429704320968160219946375312215308302526180384167400593237986088968751966689278987785066786425250863310052515996109031541139435308001917461559893787309617219923964522208146454964528692528396756692121454206459064246614062632238989992163922499615342775783619909143629452256957165688312000045401686018968645171208481687435691347743125112481064317147594693638088509975076057492264696866347270008732787561510439442561962175455320576844632484667508316704138168827610445041083771165433861010656701994727255621759198210834885520349228375494472918942970054976381643425023851133775956357313039036762142913017148457056315692525140465284480525336565937994374932207731194044683613017229810991444272573296104762988279913366760637551578270802693755184505456956939142268667638082593922459251313923873384852357348461017544761196036970436546711448142586041557485407406932854103695276359256985642318628352654329723604920444477196691147871669839204149609714762064867807299894298006740557645711893205851173361307888796053193396729605240787486274279619662003275911445970817535612187941822033967772371744659037361159078961478779383374859490137264396079875675360222270111313708230393530202699477312820187951151587558279404244876701758114164801449882169072058680107287968854197873134511918892819562167483962793361172573002606783185576868460774967992202355712508492087476817910915177770034217631676411436020495701936591876736104245013961123319946899643086244006715096776753611566236669830118768312641111575882197401953664806137221301901492749279494888274705037057527860519461789043402125228329545023523516270800047342820577163814998144875352193934372566947627422505380295448336445250354998578572727955148334160509979747456858298406799921628684689207977649002123732966625350930385904069345973544273428503189137918214504063705441894891954180311808656904164480513763217911238881624826916866946237143892605818978452232665748094426124379110028260445960891066813415861109735813455573723852731234865262845152891076770565016065869537003184742778167872729541307926382298548133330367190231946719486180847462885951435609418577795727627669242414957428076489048372744265276850754609237997056126720612757011177972854497922838808342449439661631368868675574575384401319200286619976300577752337970510134802512855443147480960923092030951500211599426664603070906681433683463051938384349429555151365459995553218856028190129603942546031785706463005775755205656549751891545521963001434316776760361110572112550605374379110725197823308157325846417920101407317403174378472737104188632889464102980616815508060151073160514691892160715312876537283041312550423947143235583273252630331912137515707520967593345710955233448232544068370545257971803888114973357701671071106660642932076807239555425274999654722205164851045130595164580411988302069973081490783111414433408995196739104160147801599613793567145321069000213135423267715647809347202655466604738205415227925891202897180274963962539066160833538302138993059512693433404205874907078286615818876005166662863189499453707363142178111151667922988122587562972503184818209318336464921282391037709212963541076325406856782077003094913098172767479173893701508338385276821510115090522500581019918192786539865550260766654510954210360134394091526100281007029964797373250738244206324787317083860199830682444000918619477280299673186843897411200438063161313682707316156124900444361673241285016931261475421381662145200731280671039169221253092205024062075040538471628427809564255871355170588223103200040260166349350394896418775111822469434120703464644988388789738611397713281407621199112815721685305582074540866580782195638986064180494964381230576268944953623406425867305008884148981682924388690991815114157384237512971092670234738287255378705799362074531999217786504949675743001812093136273576117771088606057356943959049169881861179459399575796493101012988067782187060719807443797200870868994370120841591093741567748113662625179328452583155435600419941077897234130204320297040787079165082449697566318994231902693310268140215912579785525512778002783927185868159520707059751387098341415229616468956634533321049829308802490937301604604003358077377028462570596181018495760229074233435721164585748937437297920232045091234425019192002593721021488399716801679353004796877701686520773346670684153499880566469105315461795417150211172045489069497684066386235232688790537889881992674621621997304995202519909323526471469340487473897413952121536413316354399773563498319799467602576573991235888492031464169074939674567001037993979173434118519460472481263797802744122054792313306903761135359607869711242234295346487728475391015006667917692104115903764464012451387740553427465740060676106672549430371100497066363946150389302318140888761453104194199840157916865592762711517787529630415637198271966141468480357460358868266691486522954579253551603645544145632221438878518580949931165665754913937581715395647417978436246489177150467850168127201628974767533949931434510041794536925808531238198975338644932900781021809797683800196652613676041191882373556624984488597955987102061231299688970395006816675191423886297363718409906216177375174985114922674786328556255719571826841957755553062903799224660507860581258504695615498912896123293006756156142621654686382985543851316934495081351422556874881949720825391474126214174224770949636244962494823993980573520933669119066921016779371830055862020032873085543103171177066484619355790435176942631496033274262124862959945307167223414750422522029248913143176704651327444768099935314839539897760866713294615940151277419514563573968470503346855862027648403622616693364892603924071977861143287688531968295743275488729896293573274101654590676328251806046588507919758725940278992226614613291406516428351710933996376219125713012707361565370960823114206567130952793979306666850493143065576869581927412663158544716551610213170943060449947550654053780348112279741334057026227708683279087459959820988982673123531590593416116217245955879364819589269402746286653146706035257744708039553225967383871208293784248498722542746958854259330935027386792074765857224245683098106680264212492760954489885349695571957255769668672323552809669887937973015824186777354034657521468692893125627756133342289825145369815326467803133291082330794421460639542242303901146518304726017626032742662852948473451933898515571389472068334170473630409400030611586938594715463895260779768745972816009872080366605251682183243775297955203015885288425216405968935594307042919643033397010541344074736718163854887408117898817906437723856361165207308290695848042196356303405939256152486295085941951109854416050623631395744197130144956692313993702549271688238222902683659823473619395015975480926425702226892867342227281990127487747237907548567554888932256935552284221904282807759458620916239239389975660815361160290149187521651268564152633219796379122096507318076659868687305045639399116671684332279327387820863423864354220082489316557631403888982626037134236877007965350207203899847828595392422701030234796367762019592262005177782499950346938284951366324996195084483301694606944086988930681497669398681371071233296599340023723435998819336936771982653969458528997621818824879190126211024366491062842407775793823950944364142103153615055102199953283682965263277900999571509400708767427593370599108881746463190317917377179822626949317728193125599423323304718458889584045086089003028217016231672812931453600688997439504210821888762363871961519146046339238253909848307612953872354353823462343392772429471123578211926844672785910079216400379923337080112078670276911715907331377621709234881992646593832782781211683760481976040550944691560373908426057549163577936366308113414499186791345012230650057689261510913298484715040237843450639468586262932243890548488698736431717276278129522273794009550126680260083437339861255147280530970054792760627719763313268219316194128570877730025691453636137123402423126004970945775852582816518654654981892941699809441670843533628549886427754120495042542697593828754923426669706262957607932291652331109035690548810726860300426639766152585572388542105991678794795504084495897253677181278473779491530462620485765566266213644974270015768605628733346165752805636384119779722222473213043998358339801095811856457728107732785719325975052166070933045949022709366371928767154688953414293182647246627755176673687402863647436676814314160227640334384380202001484112250827401388480515561126934898085327539857136377841176132725231509893167452299439876694143706240515595902478752899240999383522282721160915011685725356393430283580136262193560446070512698096912836626075082583120288121518552695304865167786959083337406616508315475577449594964029451524947238944396561776229136088566812168284502409255044468026538746258760768134845083254059722928712619504609912247469590551837451995590073758285579732607176338228654643093701760368455322397948330599322384993366169470173509762947184196938360477761450614440054017026508358105163598212517888471413298797700685578577755435452917619554190886537282597459734705303523698745435943140245492176341476463334383468936979867085286541587952179444108737030840145027783409023924349065259806355427151933938123830531746279591597761103401839289520596531246582245797160699135038476559411400351231977508734329379689062925431351498060813000523041614782748782041066204180165220422690124984561578038675224028966721442930929473848484053065609769257928591646153989135198052506097724097471897226993485066945962693663200875923156785109105931348969989716726602686511498075771252178184228368770201139668832035006312020364178860017170194528465232438858592008802814023172190391727882573768326179905873682721053358364588255885286085664768735519711705035163087858207113330446074438265012182507690082216289896876743440936827173552025549612966203113299069625235022104266940011000853469983939287621623681310439541256610978503037496171939507742091000455571957930539476514054360793697521258592333486995646914254841785876147982477731938921119313667034203400658033571138766403472290545960580885002561121572844524181998011401752336188907250648272190878781112650936693536294497661482547719285947831047196655236197857463262917451535227228597787020808465629009310088845429895482255198976908701111847315494229670889595432460013189356354696419469059434718737290105314645728553427282137894407710707360289571970818358219959217133663359765861666873528775073949360108824455424252577610369227211781254552340062792671390524559370900739690158283414775270951716149318414400190921231482533830683980917107232733993919275155466915278747340012917976288901011569285354699063544678374456592003757214534445185724997728307043300482809691610360676284493740438101204700215654401218754083495976116354867956562375544642137379104628573494747107442010107323533061131210507710556750330837713118243962463036680790155466821383010881047122873086621435913934835091399211763987685236677726495367264927411304483980505835933144048775345601689286914412098482801497963991060714405117541660173096385859044613464146956856588018399261395976315375557524208770342764603807069535324574216429156346524691387428168234549784736684169216721587062740784459317119269314663782162616890112994022645716367724731845065056334812951973711304976320731842052848004757010049495814584479746683141626817692025417245754345620019299711474806147951627956014358390667625573175063254806126099814915397109954137237178377477443500613486996435760333723873689883796470149912006453727118836447728568909674649355532136699375387323903797460561097957240742683745430008571999776928951871099883146086314847447452781602536981172377310545834149708342364462550608264797760667609788664833326624700888078383463836813804196009987851733347027457712636207589762107928805422913420907979078503961766430858244984823251711137658521046662863204291617500641251010035485997754606932268278653523387044205294833394379741573462916595285744725333189047031894635752036121094043491558760470622434626709715972071223222543202239225658806661971045039604436828998079929884135815554905481560614691355661988474080703382163600363319778760669264744198194744900754956359366971948885930540263665650235346208484715322326345147771329014008449584996153617446856499994829035257789982052641455828876084237352302969457976007830063089306351203526157967576341935635516812864052943389941442715782965939457885539490990933864695120861580419723984639699186286278361305051269125135935094403818556787418887691172079547767932559809449234663051827810341373335765116232687255792528320194820137003692114493934917688637553592279313525490123849388122653971104286097895048683948893947873315353911710539148113867313383506699387616324433748594400363391858273100620507274344990649230211291499368692872119745950499266914982439379546612511057509440779381885772776567441920170075601857516796187838238626161838461153437613951923880942759030399660602238340318411539729025386436999942266805972482688656383967491013654677397750128587380161195006677997062588557017513103648710465903056059575242723169846569937397125770523062476436693264735483946983597241785421235290566926961541951878389296189066229229644309841242798905394845818220691241692151851832467273849501072711387898440893455412884163753526028958418903669662511348055192650797734246439969894940512099996440904808037354684346864215538701211891951840871517789726410488716260561453916129732310263324170957244402576978942998274107331851918626952210121605676918113893064398285339397086517149546532331388415157236309684641901060513696494688851515338591515061884481325432182171400301478990825913080383234575774598402577842170382614523604816289517760405683549599354147426101624187191220080903058435181435368295753564174705726159181456630306435500193316671325937505151124976307733380467038968311800384530313688797173277333204067621102090768043240759673618111216083048492746890764685413491518932674068970362198069682532772046576324860661413846476754871368448340978986968051582469538641350072830182591420850228509355623135910663668396461760350003261854080212683636616830040270941765614193625847736511508235220660262002769066575657274902466310138677021522382727174260324575319822746139008631575410720356445749334580880209855413940034641944646872804075958659652195853867465685050874487175640248311286113038870575101428854789473046004062417553651113508741366747082266477419310254884475300116961226177382300643498598701219090177174213277293054699151043539273096138044188993036355261754462966760822916582267992906852929845652974273310490141406432350680788695362400896197922697283175134175004540220118361695189711579987079280596845604952604191748895396935178325965366295293521248675492457173743508918383283969427947085480846163038436444772343538372077648826809661738604380746915550761782133249368581764244088865066816538576930161211436243204032754246701081027081986764389345428702951282091102777770026027620767348023147601809749514505692473570048550739246480666920292464221040393520188377161775950338378477890290503391595346804084877155362037159653687686818245704624057751145229773102846885577774119808999034091114365634268174341436047134985873926371125807818174618615578421656520032804969862466420504822538921351955854028980324143270350783935597654383864187720581060453919640796695386473724861778883820203473262365437988968971319499146989553100519057442458846148717456553351604719481254627145847340723624305671572254515944644360036325172301199865479461756887087663515232426331523856284955414765044962818899803708882980754625861438382345295687813729931859942541480635091449285179884024919143053543436287005318695003578267942594652278458230325243022317474545630396593822543550093572602881363279629481151032124757637090325895858453055740105270203963981537931040536537461595083398494869441400791683548964668268229353792755411376552659948903009764988942231670465752681148194302407204988641028987102996735092422145753084861397460711991972566650664220099772604111798011777640650874100791130715363388131925025771936067953775612917190187971131620191007128476462499785563428007813012735672921518793841012671780491335555539351043669597675531407663874906358798626915874038901175644606179074605138189179012649245638047028309475154276851120319498673156839479807435980612700935610918866280611171717803140999505854822382087049353240241789461605531603292029263072053746415945102575915669272439326769873422355004995899917974882703675507289318483821498809814633336037383846750739605678350512229596462000999530000386663748305439426482340058160927962895543452033024901300743445898092213690134056661517699992790133590482765195272481592714687748434596665407028190654326066901756288978991999573137881211372802419188281151509646071722817279936513264403610749762217355017070645503111886670466867287526201880265300139072463436400115966687484735625575541154540363297618439828717133843925651106986359392844632113193102238624190979968596076990137461295677570488901407369163729181455928628111471771713075076426613071609180517775412092482202747830925937289155387404437829612127632732410725906351718163778709109130600351880423330969093289267741031876329131135244053399503462074719446893035221904758377566256382460055860282273551697402204859623489319372527467069609117095227687358746661598323647441794888081845958424730549387169377396692344784919417853777381934936196075002568967302161820104920161800680387026022096857654208030597371072025909597003611864151261658125434394949033213393750088887749685152785139226538956991693688199891834957883848688880655663395989724959398323440361352832865046865297937614583536769060255839693554185457828161939851595509332161589937385992009459700931462214487236069076974328726311179225987577274536361486274753147392550613098333898247309129699189211276752925341358545586949606172357690986565369514026436262368879482017800528052800333153852890077122125300608457795021964541426600671707376155012850053721308430986759476013630879584779166484959739483434543823477990969255938072416156247039539285452322759507094414046388800445965488738455096903476625845730478709725754695198212444613889146319376504547107305902479615689782915988028736142620001509310853302284357398372078687281917313663851440122049554828300060756695858547630915678217033932765981252627859495058296646590012194190510259668853515592885861685971457182121967439829824608263078863775834609558834346532178233607203853515426589772361580684693326776999403374934534393213891000613567788338953991554840186250086558863166763584273904087159903858826704922683051841198258157480716566571935334272467145679821227629115773748800010682435756783382279400773509498400750202285634714977616936513353694931463019484066318215261467281484685405359855897718084791313651074750779412756159208852952534066758232561763772470088598993605813462241661330069258556815365155772658827929545489678337088814953362754587117087300361544825879968200190177013717636113144849540723884617531264661212228854173483918390937121820700967384842657613795069068655511062157897677246586570107125153339576874661470840203810939871691570893381358753797590330217395173893639220838087988504814505700891964346647272252408058472650384198700953377834419369178032155254663244941344213571097248068243101140421151059891455786868970741031254762508341960820021826929845137270232945360666135095476961902005375061959422154199988267170991085738392205146077789011703161278283887658632582374602320149725227368962767189242608607555757667901512798758995413109662399960729467268967443636034981594126854367845078550213226090166696182086333018129965904589742868769922971424385650616518976658024710137007601809452310533415612138109870040205903185245094761561849204423174636741370188795268185210271552805893248884024478872986677265104538979873231387007672652611140126376384949387585219305337320182697911131124699531000828542722920191523503395656050526714721267381641704208893949661838989633055245689380853139724750961042298285326003316625531983181209112019272649756336885233020141489704303844104351352267394662569243670395673551954449992600808739366574040280192941087802623858171526633013713729366991369063421041826738059498243673630722165833461967689108724591103801823840209766394419691940709075229423884392017125128124632737719977892086388064586442665706437435299563141961748157034755737812023620012089555030059615623275398209168619015593492966546082522853666793050143527232227514991508194858715306644905019120584296892528180344036632015316928635991055067173414565119450470978872722521087602391180932992850151452710765534171562780004479768284810124445686445932986520923941178609587353278656894969840010691953816441930195779923798905318616796456058771367721997070451017078383293486814773686180533553644484948680052632563627179296585125839199312622162072504482341982260103405306824663181802898556953290122184068314319814190043251817388042922646703956568344902619305318089125322125729734353124574855839707700733682137437876773656185888062624760160623121916551953701070885365902074061140327698773125692474869078129548132030966229198920061466294592893814167857824696737166469536773050871749372544542075607824737538933253108532350109058460631489115145447372710992521382769366562641239761685533537152872475757760110725636060362689217024398122758661963930510542634247199467728022116430979974659533084354939997992249748841311444949801557044526571674434526084420534620837516894938904106509916451785809825199323425953767370650034041940744753086475023898446092847791029888616420353111287718352245137987261738160932862091776118285332600650897678508627885208266060405846140124008486955944953782864111343638012888202219014860169406240727018855814775067393064051762596510501077590023840296931970129154407016884362694371765414687367887696909687360908977673716956128618937658933425244501696924885430555461646149644949091954967361809369068108228049702863417188214929797976830778286412966859388271405583217377472201050228029647200184675715523960605530060152093389792222746659626000502025839367298448724505627758554366242911041825465606795412497371220933781513234858673569074167105989001162101037544703958466393958783286965414130262225438197826203270270559152974608137313907766599459800666981127609246360071484090434676361204144993971156241210144911598243202186214968521658055933988675411960908996992366004608571732601191503774212730552555288841346430724760766704059805559634746044421176696778945884584337770643716478432443642434007629145439749630268693078482190481702024238766813146899410450417547211357390021215364151344836457899378398317999839791931313864915618118626716463924909302554880578788644485898821873215999063041333315522344362408199372554260607685384422888071143921616974952807090221622753645104574245158055270690345159318109766689417265228630666554435663092537908429211446772889371329887410600582988291590250596774253432034275547751103100054679639135787140225392058619476614764866576911669533714544938152296610167286633688166050428539432510981408540087215603253088454125947940697616924683810146970087862328777908159446676946919314548394680045642576453013932011370618550145603185029729675159705244926544383914011284199483633816876730713547364686484641154400053659812516496078409937241889383103244150403875074360212042515287206103847501553173518718254661075672342469166297955176909734549173028189361230006001925482955900910490148922491247532164179310726898672584853100072729164601186317436249915355215470236010090359999005826529740623046920322717899681408377330289347305018816688404715513711799001536319041274516467337822283231850064303603466338940290841285257604712684295335326801134022613712422522237246640387613976780913328727788479159971759029946239291853853723817718346453631284040027292261179121612210893431255696204687180613996016885539209797743747939692344689437306857010830019778703232702230118230006147415957037580296299097650490099545587406100446091499842672650573206736011524436777905135999103274932452347181126686708072000248581393809201727445616644838005419047935186295192652294061527127377955500901120562704965753983784448383767974615689451383147554238983989735617971415401255086528127831048639030667744633477813751561064390084311937208831130517500222677592103980737339773299069428898360366854068960235978402238123873140266078093378534640106135308482159949253404826533430626675242501169163224105113622811722001986799683257750155328500332629681671570614039285090937481122575346999102305189482840926813390246383778519500973586576973562327218686281378312093145130997290403578104688878826683581570661899844929784572939149898984394307339155938949230407733865005225329206150765571995714309195712796396174890630079589156370811673811527971935149612350671128306804018308400671137012082054638769753009307915466611095451491414477982290193176788655351654494819429804824856192709693454947814833791437866957788390780248350308718229046448703737741583773259503400294970825495757671288665188656741898990351412084444877999816247628745817281985789289258353299381140251582646841389739225608047011014046869294215279522104125415227774503859143092494628084605116500674748678201539543048971844180789968569226509735170725930564726213048428438431824895516243144796080458241260273853459496528724068667534448342863397607209610029456442113942274351494421769163623637388021239861964771856630154927475034106203131035328794921448007606081105769669775814600785817745066197506194253367436226201631198180694091272258048205971260377963871537821718483795458243314434594006170145075940449370245579874137787287402445272626807972627743293692660521629173224987640626131258150476021803110347353791743045601886931346006220218499432611482821176460938604267787926653530951041452399309824866623911589162155588177291240311231654118904477502769020016370520033079906250841155673867662114298305096637648631882431296028799709759994763311939326923355560987404539499025108737223494618030671453264881067973508868127939777186516487666964163113291121340231011384422392630119863562313442886844782976548425734848937662192565228320288682749669472463593345424064034852005836648466148418910380487600232560854399629581331480022571225956389574153052144820081296279423592372243962936758970358412851994333792336195733759788044856153964530006669103956906398266619498289080119247913092872930179915313057607906658310578388322253871948176217820997361093981544226970596509171019877587441326103942255562283082952844916367489700134427489571969627146190771278937229040172911488805687320119196917230932555701334444317343737342708055124638498493649940762776061941162730895080870523363468769700204792757111070683053973196471819518255674023013129154071053464886654222134551586889247184119619438879898804584641004804895643431985916119565964065866855324031463200908803915869455880343656314890162388602137042814659612160058843683289449323222464388328082183429107233039366311595238476487146488406596952306198709318512198906693539653464315418065970522956828205262624897699820909934248646671700634203201913821758710725136826218376968864110453125856002409463554981175176832263786250487353390664849691690005873681690191849296392150564155818112356657917539338728254265506685504516196516726418549927785742031417127108646839505509350846617515691796469648711289260874365011638427306481190562955936382769327927069185864457259218703418104938103476817816589239543884879129111200176356972786224832885947295785320744896023894584263119404131296853762033948691378289999215835436072721174407549373044233605063307539505823386471091321987247010274250834233678222433806103541591462521038655131831574358282239816491928210277212253570023588052333688489739800304214309272953526538918720949382088648025167632204774044249780430350575209715002970999968182762951802456299184730238824908343461064984051670305061700238283109108835790442082005319384617907066009563336373762317461769284176396326521008787264527041690646941221559453916803202064750483748876703302621586397406682840322437676974966290801997253331228964751225178361400512780019116095916457999642520385572244553366268436566208782950035929960569296199678202745693711889939541129264422417436923456965881112272878037698588642016513094569941600881555021745471128379850421597617769651147639920713454948073083930554621577427444690606024975716360586070359429249328961216424531866548401862431127634281816481106330123258640236346888426850721084995672450860689509389566660993632936406133273488274655867437894649181081681953010648502017387325975725564636530858487655851270200039932014829631312886366736745336263548139643302714576241257195585309598260070797228825132040056437798763513800455375005866983527174037338269435374566410170995347821678575661112757394757347714486016088407632155799561656795417028704371103275645547026160740651458398056705182228025455597045216175573363883600318602899116841235942714038425186000861401531530158252577658113637247265184712706939438273197863713927272490345113854601511961566794268946997344779360574016010641457322553520965531520403491049820677004831773126226534348317221233714974288286139161203373667916534635002849220250185241316267921749305471674786903625275515760450992122021540294686447596527559018180586409583747826125923645438183874697084955054888935444811436469387797265090455332273609645592132591325666160063183109019925993782688988849406222350291959574529172889617890825699218793619232256075950746565666599550714383916923938112379269996189983180660356633493157320425635789117791896121212817309366824838592336980902927537697242769324552795459717671167556790354552090942004369227929196255378034274386509703985928999457327052599638670728990045898163293304352880560479442824811039319443940994119258984341540163122242400897493186070830075284288422666628756732282834269409753313594583355783107458153016598872785852686412820866180614981591636047174788584330306683809907678914450234054736463557716180562363488415785032933443334067707107583490903620370395002176718958869934944584081106692212353512203607447394122417560191612147404655594590507606103710711215614090029593986526448491001681470908301781491774085462205138263843462384277352131462759331630771056917947057994278040431840643317748999012655628243471039657836507667261089508365968284682805784330210444662726813139222990340859035691859794160620514924860267460469111239506969256961879365304478917748498474142749195431819166798465556923637500931861928763019482249269176895229575044428829149075032216536142859364984803458623574185861352196348352996600171388647136500910200680568249368544671301415924170228272805356854156048761177330489015446916081926479814848778298791216183884174808666095872025424803553923068714264704808507416228202242350103907378436100315891793387300656869883153750066108321567894633535403541716199434259896840970759872579308182196383451755675253600282715787518729258251930470443973095047961436932766123244338798177383691980033526793401282716307230596553561051487992898957668511794717519370490652437101096664189796890370677921036030351985428613531501057846601394669091792109605286281128318472084190075163071437431234090754450604573788170381378123622510957687508801608298553805372662422245333838120311525252100799534983140616417685412645868477640397531538797351658500910254159946778910427823947771476150187548275885826157760058939099987083887918947731589776163318169121893211353404166548918247574737468836651611528012256138933648913439349238864064001322633460793927788541297092022954581090392285699585189391158071089033188617085725103420535582228093872480254325247857334646957166965364107831280239252956000423567890959588970977489134690543720025897535909145347635186424904806369187956169337443444503841109810862706357787078702320600436198272367454908289281496165595923105750874204176300703713225057687410532437428111158821445422539645853533455840213713886138643635072425743118802813007005566756461122907778749302429276018213289015285663093931550075891818327612387024180665846336220554116215279870379889811354671666617802246501996428219019675188571889221398408877595882008918823308719319271638340512327633881158650436105588548424849887326301230714006391486562299694325241038590406532944084551705137231333185761254428160888036965619804673584781613846027878859156342736878432450034354332849775496239148356134410769669684052936343701505051212605308290413282806568716706089710878524730114187219117373925774864946530321269914465297627553212487013530041660495703389287781707353846540553035963833299543030112532299103215765176745490788951589572531563020454043831042809485888624605647412709278065679869029097438917444563814381973383092343933898007770095499513511327793954466966540659163236114896120711707294555173629395906591133063481752980790497047445394430638261735163318514517151467105432585256742318702047058668583284868990273916496138168175808600164666282980664375442038764041246470831340598036033520587272047867423329568966705510226578313855634518787351276635499683692825670884263307329761928127059412805476121185442004069497999186989029633525166154195492808339679294790579713427579707007380987585823935811423120294021457226990944762969270660288964869877071721918731203222589845567298289003213865471987821312559905978493094254649957269514249542778531842940311267387095870684368506574295579061381895759782051587449012576910412133755291081256086785547217864143738472313108964428742204806103224055348550137392086963528496355444275324489382585851665472779042112780126114292893606527106846257718335661442107696233448008359673004894381932000067946577679834787493013513828878041835962510281519567328889306952840279670093632625477573880970298110052753674587747655451581505322123213935670846780299065736792868729843898366878529634399579403827490197759855286009282783716564028263274751260615700093648197897718269762583495349008269338854565568870531120398190689559322830460568923484298887199108714332708394711533500932460433639952533330297280226135122852651578502291476672377441011622575596664586496646616927370047183590196162195098946256412678239678362960991244191278779100755247242985331301498174158271911204518015033202160698734778741401420095780526024769655532986667443958297858055190895758306954797143517925293070160823394268902628561130892607435433193611603308362278032323877335324683919130547802556231536239596797420911678070694682379018693086404032729336640755355879762149197644485819592457289824264362300572130618553518013001934553321034451567091331831003184871692444527705625583097856848058617070791980906885687975900162066616589095582999397683492888549625758935120288865948599568344394464975377822080934896966259473861228785643872251288327769414666195005255710414876302046428143636889015707571235938710682986048072186991024921667938906865814552569776677033895579268140926671432537091751999598532349672159161694077602465832928559704088208831819941044829084434622513581398586819107994021343421900334262264869629269957960632890432835428462430930564515577736588534949804185455904544305957037040450716470393037584307963080957129448904091228229040270197900488281028060641968534164251801804043234658572195775069163821636222387801112815888845383879448626863789364796456549673479123048873148384079945292595046334760536222847115631582658002511882910079091918142209091287500773808441888360295701779194658787621758522529122042213966219036732304642957737757686496246984132347382076509332145952146516158445156241040085847563732892661202592128538943882199263548017857279937227138844182217631063955291588698884230714644522792092068487098711304195901970861788581045252756863707590859753705881003845830942651660034934837390682320860805867433863296775907149304591218524695156752658304571587098256769991032776564569417231940534547652124762174046089042687635139848636860843166387985032872013011431379485709488514971256749590241970179586184481204971057827708894300473080345959125344146020548932614541849705427025621610099956662465021298384399178890462964182846120187079367983583685210155586352136705848752835208171563691874091689492910217547947764752846706596361738073568422428894393468403508064920197055195263563014503209917324923102428521650969816262450447816644742212420874116783540793132288862169033819361406927158240570694255058025618167128722766247683288296959955623036542934552008879713575732790290171443188416875896135428919454582096432230995885857678941770799525065401157426580606039338336477192901743663308773024198891942038500637151324159280795514986692255070438602486529932673655524670666859004511489313053276758133371723473794168676669173758731640779495639710651239349027020464857672529391370823320102924624601428986155529874296371581887141617926983828603461745657162194498775045299829816319411389983617307866017127334727393897727146462482335038155912340461168363940047945422252164100392021916231377620685244285969633422755840119845481126922091163478953665961732610658432959932559398043546711764966208227774531108518273255022286381421117822906438338784251750731714541872525804963999553771725419779582217157869417957183322653825207091050792340507004158852203117759912670445049980522145175285273819485582570930816809071699008411124470578711210370984913486635620454059268575501055815282946958115845413453034574005055807316881043524170850471153653751879295604954610937056988120210977811532180781303658378593530695346881564433433365378400311849517267866650455864541674794060531085832185865122977837313602378150949817843685674053004990523270559103916687420450203906380916581559109663303285926524905277637282582143865380889925606434573472333849248842167112230255187686799337151766250165241013628331934956047710831749070152875911320978432327420743799493394792963000349055935530716869432186307428634834597671367533788734966614249941818946962702317113077491663186713991476890028680383437980332143389245172133967986730779132098123335603086887551642835544402156896747005891426711617993219283001963666902473919751014327389203820240315431477057472529332715670493139270297457226742528854651969784616285071539889761205200523879830507368657573668640270250308371221574233840186215976682893862423730684046847844010919121328199964935218095712552858577624578557224142376354927787733760813981341149519849782918506100116009464066326916494929312565418223652943318106468938049100481748719097905135468167494157504843041004066186629919754076246159619045260327732234579951042092314362904119928878896846067745114930075405651043041122873966892783864795424181263328454558989467202955696532616050356545928359814492473221997416628273382630209855496199988257051465885998377648205341667587211988613529715315136607887938424035671388662214905342265542249196992160175881677597151220978350240104459820291050602506776704271732874592407502189376814123375988554570244376885528764449731053770054505255533961108049920757791640029363711316801184139880193665549841416877587350530314151895514880539797108386498272156129132814471698759493399702512974939717092242516783424474406802607866947127351352221518757135618215506746294029942542033978624968632311012982282956958924555329847572452443239127240524454138788416888951832667395933582530145386093659776478716823846598373507979914912060685037625774288794038960481614137588344701596375777837224098948640043148829432372062673916519766420848840108325657557629566054997814572519483449032288759706120971474316998743676035683199502505205559065647224777879963491020264507365694991891325472463001175220442897889038442821085024097366651975456658562785538489176178638830828650367377440051530436847613651093568511426000274370097795250554454308484393659111853160248727492258273551902646875890583100451465838402192869636145105892932592356663986727889560549115393344546978156171685656482362124913028972098154231165108648479913104780449715541532409597174536216935901468877307005519670181697120015114963014171863862938444860682246559961031833027774705786387440775161844788681782608494293325352587404965952790396297399924647790782650850838630853455820540143158661302131117730006331120375895924904213299485348328116201017420234156736621018207036263606266676464502497581221224676580162723332096998157926700725066463713814515569807883321844449063135068608410180804693745234634614793011287354606211064952363572831409499365492445654078367838306235806320162831397635654644017679933182030493705848843366293454752273574764088385887113559740383067847810545186610662864470754994901225232536330987832620492492003020721029082339683767523761341684781121164459273291589626310972152560902099188070984075573541949550768550011230275221606453166600681971756059542058839652061979508048543831349581561903548893224618113341191201941514555046892235449601204277676234934845401386517591930649308055512103266720880897346457288713980571549352329582480610779515262859634426619756326452870398991736476279945955858435638313159471480731510182818341139107474619215217802640304213279305480994525851432514464148051960134200720433307710154256926774353060067911578183275949474365841088952528832699668667484832671643215917532676065016444953859396540342024117111667282931789541755889167466566576965259116895463528077312273550105439468133462108214320613527347697213089758680900742594820312102985476873436595027566525826237836373845636555852490963004906985020258090492369730561432516158862835570700761352649109212139955273823469623096176605764309054825574406394036616235668801556718004845799730959024773222072390941676628821834606433328661510916411981318683177601282850545864925599822392682471727373335045194368821792172189210424209876799036725922289364481718214631926326196300002823734233597718053565108817052278261358268701458361923040933588289750240823183448373007627165393171394876130291311212629546308138888540154206074808105429747236754448209652937017268675653442011153983268961733087019007173515207321981744326338162384000612079984276887353389710605774378251814517277871133126199171567841579594176026889515941842276423896272140001441716438416695848103439230993193615615383979711629592852281408631051539074548684280946447734712868240882304533375393872543499676766161734481848224904140073781029128187004954640714703360734902545955075818060105091577336461127457156028577559475928956978321606468756950967152713942005156968155027494383481875969757282576769012426853138212058082309569622119499224906577436977306168627873644490114689702559593872855007603255553958043112187341444229048572776146765118757192020283799584721538230220558921669461394135800366815414742763999530958095287737736768482781967921496094166596509445362282087262580728150745960878432632282364175625496259739254726640104602269707338718913976079965638767683505718047407647180628455349573109535730743978414957505392315183150939701307904173203647118877731717946601480956737161755599295314292109342053570590400505750408037708007736816770203708807086321598473578151133010582176730417208465869969704910230328221225765275392346855525107794119062018075695223797334757550432310984129877455030445093801902128502655248953747605431360801467991245702909011376889236850891348722142289032850820728899693041328728359282852349389836335633284011114141319455151903673951327212579488301597327371211521818993162337989375604402061077568604111461751552513648057783148596231740437181566804236473065726665418678607811876059133360104639202899608039635810077713501497145972302230334520647325428037585020165240982545993359511816667852328741717439908474578002236159244816171583147377655828013068569556153812698485954900934339208433066053464553327205069608676510353282834014973634660160438796234961055267360026945732168854455465566078437299527862287251715911772026351296122702214784438486500270038055372479477254840204396280347931394522124436315343419540613770280742731070281521882451741265998612361456595190058928680277190970184073885664310161201062665970696858922646121699641540924171797575717397499781813177826443929127552396839877042633956134775651030229619516358583468156442719852460120624807280358999445763325809153034374168838608800202417323406762238681683328683292568032603230110642629300425291255901415566615524616641136926462324638948322416291702854042627426702398343977540161556295857003625135113123753236152357318217571584146647493490973554317690833116061107346243917169503530685589720683336991302320078072618661229365452466530976151685959475584757635470047819366205613797634490143002371478772128462244818423566649354939833501566485016937585833649511989295999304901938183418486648194570715973488251801004926771957166094608944136808445367109903227542970058512238767056213678231687633317710893168573240878076109626457776252598714501688720812681733729618217624313275139815810153364491089191263521557529243920933414351328603388856472962500369912192797783860808730196748759516934654492448190633136135204813360129161746017698931465808871224805229374814161739164292252542218129120274528344640545864644004806816983756346715324861493293743801780387221863584623418139108399423966123112679021018471251974882055304480513834479447854042093051190204249039865788520239494241242458638158237755944202854619592741820568970495766357623249580200286946612643514811348630387111630669146973664823945694563088291755166754092586371164811451757652097596863581740007141099637184525006553304376721267105898687912109882821994430499620915425406404325899145050910853143377225435742314209030144855572746199655031997455517257643414601078110794178427610497541817370320878435203387866264143740802827512971229912010902969579543766721082505346565512563591309284833900049878725698022966382050991031513698287039664466978184974748114978390041867440633531209136079003583285704626899706334121910156099835962849116304083982636014808751413764563565253849988371061552422072765908773727935166024575169583280873578987827961168592147887997611426523358428402473283261349225900255739431743305810270206724113394720392679189023639438774404203566098700158208234019277007046355818974841584109338562058659051864873202075324941703597774409859856550898643624254041055375786794940143461698012262681096132612148728587837241219199396745087710547818765814901250663028627533576342632283231950729626481941090953188602391238482937173081718095686141217205772070109879563529107819565801735426750697009615910739160877099657739411766894631687850844574308438259301451725110851268259650121388715990996316129429690339282008482591221125654798596364704519699631429567446052756029095463487492142409063600780776696757299420636839969139331512837872224496282917425413283465335618582272195173299373628027334578717304496548468197700101469559560725979656933263385357360133343340093418533063584081348237764644787392229801664862998733214559621053155623028637872192540747530805332430574819869074034698885760208864641967690387859762875492828877592149386254131557975987855667981217644884633741053480564158017125820642189032996814020648462068933873005602911213960568295704770126613148133769719315444036955399850049320707153037648179181913592569251674461617532994849729974627319089054223057495270887457415396108860188882837408032030476741782572123288908203590249917412420675831454277570292237528327129785427759185328631725845045514616563132458911723732388718275349181521843311757893796532804966453045309821980089067743920580886888289972492862467082667099938426512960797375992883096483994188027315484868466017382123863232807180212733055223255569888728912330778236724669345777541654199925795711886818943522647239306682248596870182248984681996022321410916365441248818407812626756306961960395166365331508461551070194161744397455532609851668597499745937157466057568121150100772039216538319125015424432061978295933541845643698552427316319551533954690355894032153310213674351802486899507025591029871321955702802166651649673027256392626109901818988492531234657650325937597826599473412592018896358774546436906073657448358902450004731428304190398398197065254363472305617883298665231986764939046231225119195239266364746136888904251020878326055199904672106217630675995258627182097289492324668924050155384624372708543892157511342826094278230820299375248026757947172901658457112769808049222045613370644566277277779737344982423841823129869559197762095496815477732575812122877057748562403493868566946326531905088959950548941552427573231907101328015039612816578385618080391860558267974528885874761665563106424402011471854762664181486790384946039863284449580215140005894422840221227620833305018215382403612126141425803174251739828732929694248744163185598149251258519020322852857676029345850715076779339974725559284837318856458952590130216477734964938150261520770837679593601582054490733734422519386998435309853374335899120293756982493578122717729048955504733719468779364235089679054815317501217514903385521412313665150624473066139825471694475921534156659478665023071415224725651049276628952670865532341071719360017775261009061331295473581241929774993299651720334024834078997896521666247437553079858987091962670475326401784121533954643299909235690558495968476351484523041527847948407660909209067572716551810958327989547349913923915306122299183748271908827191562691930587856964638372014307499598923765390621110314680427438633823298769378670251036525368982219882888563565797328229021719918368978068819002972186796548638248242058399929727469414915599758567403466593646440739972312490447464420083317447560927999824412467818129952685859208017258150855850161528718114324760095633365953948990786890144376218352113831701240492069112267450836664986013342730430736947245700082869429153863348903669905981632747725042004596749546263840902690696851425376972062606226677125468467082395833716596867325651336485153461676873459182440185214732340747629615260295102949944702975373675489480918769835766486330471313911491433763792044473123982407442924530146705685087040986364146563164084739787341777904656239165277874664836741303505165080466898614294923951348319115749155916171085892124104231440663496472555238803697932745995594580224877750692043663497460716012221245918980583482360351131792818080120144465546105462271638245555630903098144765161529209565585605555389002276177149138872608822166866004057229500087800890428664992650742251712549890190813800302985045413351227091892364911968546247089004210216603724637006610861291782198828998607977874303761790355537817751876182512287271351240095862869448461071919195568278106759663667812442335042393546726894017649634806761437092028501317100335058939403590975622822885198199556509677620054245256531212400136365095518588744349521706556568790637809288528702731709597277326797937310603354467406764250073296603668727716107704653830405774739234847886011706618881682937260531954343014567964891673014808650231685502947876370127919881274187438766209088897783421702900730926346257314932624459088353666599842100082696431635629701571098381539727423892191727540491691417687285589913482402372937697093525219835209052588280878701200209092061895225352906873355604249260924529096459599066283428107030637564236413406540335545165624676501481350407043606984402353770926081766306132979912868709532317320817248385673864269083375155002578476206431679891206755868764635139334362613756546977513868917882162156517851869180974930191716099863714998152869406115350032276765824104563494652475160736921713442382315007442380450085894291477764764894079833684299224484294468114416869158953539693458920460747394907554372272020502451309757571908591506989596285733632417547594343346018638319476965913932806453165306182404910009512332131264603935780805145560139321934917941371925481678064882184833575424476497348726771096316442571945255378639281203044950734883714915264775709452904297697806113275290065774910421659083796778720715035961421171239848189916186684930047150623134004107770011202111383520925175790451225201037805568587982631598267523254276438454931022855511131611393491787446165193763955143448341574027998207488788926325377294563039931546359555162684086639107987847124239626494666341517584469189111841128801744536564897538102072588247775024480084662201096278477772979128266773321887086738483317169151871014659693803695880701137817357356283139518108088658625454918646771577286426664801976735358025388965054552249647013720120412986997178519637625584793153232651557501071581343235359718839249476346885764189395112699059309056691750734967721393837227986249372822572311657693237784528933215771332311408406441021465999971387398621509805554313357090852195852707582094931582841575982168945024374640344603131708707180538479969761274251262349921623248171674929750599294194974763335501356352370667357887727128547336594087666304871046935436778497118715873460071527578897352143561206380129208129855893572335845385508300732469036498128738507192483650068487368661988193568992847208917541187844811773207733057317064553570968982493284240723573429580239122704366123683778607180539402926586086535090992771839253952181030650241959604713071921248335106476416183181138111101019046343998387875684781614621894650387330297956233685454562494038821629192929961673516705592188816881714549961176881260675619463172969066925292197953712241482454018614170796024026387896874594613296978374689762657987821950119988465996403600486761113005253421387329271665676083653737916126278932456264616148147374840547255450391629434018482115564984947641978665060662898020331919153262947419212094407841840620418699502784702959359159781431604397087390030350151714299893722385345049435198791909941832099951682392707771780786189319435015178868839071252714963814189067463113538083165152522294138749892269043320271492498038720594713967741347772377046565927409892097335296646172343380205852824038768780091468439477725618355221976378533002672491156730340634241445535771456322634124757206034905912475999246465679706489388312925946715638733895308600559779723669075249233198272558194863858267103538365608489605738955046315326699253910535470977980495791158374273091583951808834564835903840941618744262040767371883896072637829151315106592061892659254435210277810714761663979389426252089747617087261924984258145721117541657185068452962785046037015954219217232440787101761966654044219952420292519510694876647902752704587415094644553775969753836585529045297878542912609781217366794714107911878709689758115382229273985861826850062990191742227455037519943649242124456514653914066420944895384760068199630064131254402409602155172673485408542248407677851897738007020764303502783361463808644605576889997905234232966945131314272326586625706762143550419433037467600081297397691879015261146928617727321039370900152586102463690686515551234689750848362320262035999291889115240910001563887614902095707198320987932888279489394698711519358767413647258244753956351144027241078081135719164540700273902540217770162650398321966599463435176853961921060046460424137972598899130502170702438015686833349749833705272636177454629629232653123413183569606555598564955547466748947913267794007281083877406870152092896641273253151267423469306878498595687259352104361088796651032079060135018098747151034139229592117413990552408451407181498332711375333631127177428342096556389234294940124193536364145543364530945687519744423575615162106631597228574912527263928422120821721784637030092227440865719165184736304598059863855393336397374880056691245400621177493407082177812241626122133009118196195079364964715499099331602958002627743556485479094742320289045040578714890099390686981970750404064402132162878853553604097419712346025193482939145366603812322330390056629168397454185481194338610194062205058304222642449598853942449039287756758050736671755733158487826388168514719403300373095210351038801164615549652028223201738201689983989420700622489978142070164759696187540835663935253734996434946861746051319362819896672526745527220727008242084232619785663909721793197860686576358091066123540391887909610793303035509942247765680088233862992128972181295597626892625810117483716508172402892593411572680847049709366546551116326346967892814645819170249257201385377262708978094186035145666331255784633396309864181848270486293778451703640219375131204655664938506559670440209325173585267308793894496127731268274156461877069058038629661287571944396847687722757585863530089955259088591133086943826521096860524606186341768309205630304298338730642231726519354031245770704092328787229152144629762097096255475850873745517149645677027408530476534821669378094083161379355323541198604670992455834826266783281206015009620813256088026338101195975966474664557834318888619647236943685849092873289422247607456119237740843982695558224443018761791615563233804856983987506386003086929966151412979735551296778972634250252908333713221154640225425168578441192534851981229407611046545184183615720994040640425859134954767663717039971252353313830896702039550941649296899126240797953390560517446904295295656386067720280022136384629969792508964804678207664335738996857915529361282749028476555695887360192023609355176882885690657570935850778715157355398256089090124041583560548848682905742401671664935728333028839016282233238852889275565272306464948481187653044940789776653168488047029617593627218958517385153466472008236717367204727306479237543199818157741421282682441494440491268209069554329434933029782710454531951363814232338411122116271816413289128393452308445833021525670246313781794182957264284521904434135422717869012307621651317663098627502432225396717846411504360226714436740181227306864456184138355560515633874864143859748886902155519880357857239999426000988398223979018955296876540611695475808979822283457015676169548355660930386208605696401861179314694889265931608574313139959734448312866916538317228999071364312343926087368747712020639143714449654746113279706584520831929263044328889013500510894057510506251421336376753435643218645751421244334636586644063889813961375892047759137065092866929686554905663277628808673995780584946008450535082570144412923773256850474206268141231773545503060639285550466411023333178079799853048951301396386258802833320128849876593632410426390254631669896380532059594608017323078754152229842916846648397217858052067726265456762169578904346237326999888994577966978295301053299525662819060970942468368097617745981020306114602195543302915331797618275643774627049806866148244132550424995759800035711183034109966300803242266438032432184766956067000795291991752538699064150939612900709431255709533339148445321453730097334329391446850170297347762448709367312827638813320641879672336013706824058516704002922088193522755770371616180844146342270690096935986958248660494814224570916400357249958091985482990060677396773649302778554390080595409762582991931410884729647934315016743191046456232396378716753178596447866204592157759990788007292476625424175747932221084384539205182202503960802752630759438757037423520464620469212095729545346169514361837705362016744156532943303097753915178941459525174641609776432611076018983918127712673749048058316659188040337405215180692346735369051592181984940362957983927983823796773988075578618975790503312483714989086426291537110324199920142231257322867601845349253410535767782623026391551951141113840815755869556460448960065836253492762830587659538200274613946635912932470148823880809210884098765399089878206149299666484697793762621856340833184540390984888345359340262635906526424350040575882468241415150820857033071120796272627476059751730092704980744033108695576534475116103458640672019898182676517668584359590037729410112320542622743319141227119908944041893508720818595054108085444183374895651943205085721189046794724078685212648524115239516317758759548926955830140986674588041943525990930064036403858202092776545681678101718007327650937121200286905932653102368059345897351871324812068964127088489552406230382146258741034360294773392705047546452129549566622571385648412070973163738012096866718508634817435654446009556092537564017867088144384019841923221309053643157114945458725467267720573341982849094264026313124156149387718500423811949938019663421765917305997942404491847596341907054962129611280526160018497670819635196918696668158380707364663855422153149008241859509872805545995787537295347342259276454207178132642210701606618198542921470259707996292657403231627843645343154313381850125386964614718419954495763232784974560314221083176250534507597020676509479932633287397196000052932904896038029639745141131906261412398022877341633688916387029522901992374736220872260400659335850434526127537737979620712857585399067144399140440378951861510573056641978506485762965236788178256465534369069099936677446168079922478694958432076171545807621700803785861737170939286458725434808274085674687606553927960640769742551737781018079911076599741730295169543383943722997869480476494240323298036610999160228375264664573520576901889244006031364400606323150580325359449377477179631645755374309580342692815132051070080412417652366812600973796731115731070676077798686471207341707856068621588621252688426179153168679219063621007260699172651652305400534634195833300866266214413880829367665633483107847883272750263869058629299593628309083776148379650624485070844506327869069260985857350303513558626616300733679927262247932034382166579951749418606049180493984023846178816465664728241056005519888442101750265779312211469695809692112848660940742141987337592319841892828397191648136561324625586273182852000820084232461723251753204345588830540569086978960749282463770264844683536057538286443824962579202860188493702538678033705757673572180748322384913842240075816194941151484068329688781306333513031398206624386189866601721360811174063868542123447622929129609171028734732893904073774155202314030614178781118625630734698028620771179963597808020840438729532640696377748576305159797423130882539625043079634445075968791031595365130442238989178765412580062755987318829915853965890009313279802346803221065004527268515968263534593914980998180941044702918657223721947051312216677531329338825936541467673401994806578634263838288537864337563083775139376787698311954452145550408592047602205663503274258180137534003671750032184987995971765236524138824206697704304122639377448866645915445212951454071438976618123757415467376995262667870622962098919429423083180098956240522195072222124064100858959388710386037827966293329075635729406548508844806883410764198360865273474736047264663281319672797679062046793469573293747068989731954106112370582224562416948497062567059301758985863542843244764055818263851002926428225223382528788712735276553537916214503924548584127857731148160324931437072564450249096450269589210600637768678973086459463222969104041599438482017596259662030086121294859899833330685582256592743059510263026747796125395893465601552001261533428188259831056873695173124383528124719361544922597629829271469563285204392180020642485992478581897001242320096870266429266652870837726187035375311875024018907112807655320534818769445935999100293906070362389026783276694649874630136555185143981115866709666486528334327978491652144472143998926504672052242342563480295095470497447378475583541932299297182551548764555683057896076490566919413457584800646758911926910635797379446591235105825210548891169526081571417273012570102772504796268513339032445034357063024725186689452699258795871494075338055339252647933623739237808193958143968301786413038776291883451665476677377306221288699045668946953895190158703799665042558094202901555714749727893354317293508711916819502456302036420591937627311914316034950886070612207619838493150084375572893264563103446362083995771058095704844094110043666068228863811748143141062322425952209982341154713237592203302499986113347235915316369886224543042570874831096315826887558142864532979949271981305033946861782905978565456541045824230113048197224990439595084062402599679885352419989174674066093941845978400001284186102930118822078230715321749546642143218694303908805160438991569893426725490142257803992546749991508541198540644825150242985334105933723971173839123334021411227785324512945211287919817983503044312646129546152725360110184781056369066952292696827973049701338901404536368804992099711364575618439770525192879630781745517436931016744585325315609285316746068231179923922832509845535380097353088634516665595546273706055840623208509691970435856979420432303780375058877670369986269065998072204042109230479299015140255457233700930366446967459696078485978142662522694154309880702844028106921638138068459657283987020181429179052024659639634527627333487258092456327651476348808762763701099036022498529463069572292869364411580136469539118638754308747637405315767212650374631591683036452249035986837996324965754658922632714951103145438001903614697078476464055500372460875203581821068172141830281759781265720305626072677423960751023801570913851832848908280513804072918684282120988754928262306609920754022646989294607552857189286415712900136143692787675616591046573886720890211167620449459957860722781368011188131339703051682009900827145398572897108814322790159593269349072083699726870151480379761033871260894743945012766786925433730252509130176027403205206875936890242983252946719002637539820273965978221949663126081591417356239836154938052909511754332091957959651561959928765300939472806205010468746281127472613361428507742971899466473379741377739875835925155057454423105712861144930217657589641743259994086462554921355407400036849021324863666802279601927102339698932603234511055252219872493578661972955860237072519393255941923952184472167800171563510893827886269430682584324254373562709744493455047882401970652932905747501246076410445265922820986207911362044121864446319576218138508810360996273491480307566248351821258694771411873129207757176001508252991643965270836114345159485730250085541042989458216753475973270335694116888008825445263508526037809663541028570423447265898000514222532558475283817349581881498283636505713281708901163105704939271210642647679249881960790163395391163457512707569566453582235122239586469668605881628709577398385575614985599154378632877841443064161292522516955960342892607591000557427603333017776172298860092163352589297270056615657679421548127822555632055368255023471840145814123009085342755158747489680548872653467665733612597673094771901953449248522085393366288419796437020799549190808338602487678415050739036260136249658916178930407766680239728734026509757710866913494475828420353961310705559189855986615313722236945805450568635154945219223850143602449998861746498678308518909603261086798253631368596715821471037093674916402520831337932866217623480217488078571366069619447340272983200677029698646847111898891258301967775893650810549769495276816984329143276964445388451502185250576659706914895885510501070807887185269995905709440574669394147438255080583553156046519959692154590025833650872247919841446856743563192441265497886024605077357862881256480051484499758074735042803725265094718893938952544516972226365024697624446761235616319143671920213908103935794564107651942020060994736461516496849508677925779970810207369774527406282893252742284132610997956988508891835413232861129868719853699323215999791379306630083760680008950930737723931229287613648691934144676747750011814079414143400044515691640689273118080154533569593823945798827141804848937002489046712434578638988474979814285086602283008427677777570357513576323218042896484665009276862120881508854299983816066059574147564598238463627876903856709701279954830323821431830290602903884325502751226061338992842021083985025566890117259237515412817623319090320334870669616567431994468054193590353281966832847672033140811018007614903287315502906540110281699050442622431974635158003499245276870622768288764604710347136714119355348699408792112554722819229829838531287448200479193599078012017040587455498615393708820166601521955135127770218274572768276745340503017595062438604984328058206967002828006946083669945994106460971205893082020997829662587077828158690601029991194292746389868313482961918331958324322486268264756033146340310078148400230229510188525017075288320445144505778555848921243479398683129578056350490605640860191579295038284280434382421239784379326084593825282044104750871625827322484814836450177050064965870467314757193904627502668250489069273802570638814468489998746165956251392747142809177534548023313357249330005900778212343171588218021236397021469775630056931494038379431795524298667835057841526030037969347030798826256569022890999023201489362653324124837361895780200259282655288684525033323925198449456521375649711560321660150832154898554744429916605493890442596083203284304230847755271398556429133854143494039179169710007229588378409648203528683448972690592993526802403713882254932524999458986974696399135795373481529546347862438268885306630447136332040932662418667072148805823258720229314375332216772175519202909647281427105980597188299843733984835189875127631272340147436034273474965344137259855110585891832321847285468757478668430788981006193759756190867031528728677478680017774312465612061749943461945531255575453760276836710595524532800089872754501686568201106333100765478042661645643137816667978471054977441047878146081874909157405549519194306536201348947139526384059931925135959026767146726119571239323708129952979461923519925640470503678188116496550659101959053113467111697901201128571390775071379765689703736374709674320435600212491237263825992730674290669502175870765587472081360418762721870924251523351681578640796737409845482081872258438162131808682074044025794642199257372319779461774034983295407868265184057998428972171358645728542751591158862275571158700894332757667829549221603378147523092917193069199900993217969707219808231826778799379010639516605777349212926947616988808996851419050408330514556210720849233458004431461964920147360232271800124464876998632403860876121621660149163912162195975183273164719264556673837649121281051797151395115566107412461951740300639143993629482365139146933396896943477702896167413427404058113579637519602399608428773826380812062590592779749178412044215575519093931860968308736980507969508409629799411412820284214644062122612543479424526154110811784014468796120357671616364469220582594361509900832440249562902720319614160373920083576633819362695543650696779116963724940973597428162054005379684224830707639599876292746723359384433334457257279316766114114144924020213678564854110247518148783907152772288422240612941489617217604065158891991576673201048501519642944297441024092233888539107808319517736767919485350766533592732758688918419377447730323103346553067147627500851791821746358053769821386503375773515087754386981991683308276096327428865683454759961345619642465638983885459441742945043861247623818659524351862382679734253327693471565205044223796657390130479470931591146141101669099559247834576344363345770711096296576033257677151364766962992025905545281945963694366981387679544001875825393259413221342903640632872513989692671082762456875177321104999763121898661629407737196768756429599158601732104567708568191518850258694313693605590707325176919442664679745255500549686905065267377702415761813807625606330404311328250752928032023713664768588347224323918973587837914659254047139131879164402640441891049416485658857746426196203683298022134705608682175724678688438893610473974888133510990363841407283927952238059242894017086163309904897666944982003681944702391827724525782569161153191428071742237778148076351181078669801496397388704988992940485756392171242622308676985578041261552079444699340589526955417291722976896404323679223520368899137623130494833494746580728934478068052457696542822904626239582658905687108948933803509956457731090807298362421778272647938680187302404427048355416449225731168849086223581483049519607113497809172017555709944624681017020338134879947208513152134097844673409817510979771942189775546827374759561337272174156222388203552462516801157240938454944728288041248682061675196571593820945878164007079308280951901205115441066964054953152934228637261308092901094781061622584755973869070899611208654920734640903395660669978134304624465241733132036008237767806023675411506301964747371851578210299949000630181312033714924148360730524673864195729278498826927637389514608225338631167525314816840210394387044474244602735041020215426718218915663407123856328675482061408022640248934752217199693932162472323608873588550011729881356047606409296700629270952182136809441546781505074077975937405038616830913090764734051986314915292250552359370017952308263187615667914620275340783601886463000437358197734141027185451033958884657969065063620502815868458067716222496724103897837193141773210959819362650365852937214906312804588889828530299602130318362959421782214765139584321247807181159590404345762796049493877795100682438065574504414287817510622103552795082538538741118819552201962746052459719573557709577691877674936654391720513574649091482805177037680735231616456353645522940805049613550179492766538438928759894480435495112479111987127090796401207350626711320020884363439374770506670707126247144038335668307982269053073915672223106466869834009116823030478607185190988321968539150927572709566826057366288374174325734320508969284834906988772441685715336068478827651926742326954342384500003936239341502345614224101172284946780905961937814594284782125039056527717806950038173588881711523204271672631902577752606135922112628340244893580855476091609132807724341780167649823472927748514058492866014669143964918628670994543303680947227468665775043571499507937518040226164995036233330678067896573503851813605939786922734706313131535589365256010415805591459282271091417448139553809779790325044138444553764822680502047009900959292354156199352638051758498656747222697271637026033882985184095827825028611026348174094970601552867726408218983792853022576895421641023488974846294371337422328456698580680103277972086993759113883448588962903976975411095987983977115602513913174573656564052884777081322035223812368635524411269774051233498085195726415455815088107207475364455038640322656297205683495104800845739932182131667147443698655257715159467200410657141399730927004850571160870491969896891472043572011551106583115833945324883707633659453191652152452061822963481644029928543793970561659875867669008562566354824026660491827116532640862166971470328367142808336195930079492402041156024921009041492659942152599760612291352586597146125413720429193944706508756004955516704299461811185990105520692374005684785799015991736900066515698006105936930221857514667685233661822651994192432660378672115921926763578689138888355326454486817268298794751772991652301955209765662807789828662375907352278350550223550396836510490597213404760681914658276000925619362931965531949899255461814061340650641454458243112943687890581757906167746630958532166870759653183918781628082156040139299400896830960892021434967646203621768845827902925279859307515467316012199157737837141212182148555569182309074588369626287771652128305007911686916956562233320497667642921317552964251882285277319287607354624415888658174881510689551361391127265070684740631507896421500473663041407793734904726601343662384408231758347458603569056239036152016722700507565948203834573509272440531800422348723130632205498320551390500179496811114742665742685945900036579388983494184042896672383963715966589784879923978999777093919019433675540418759357078329262008330975173536673330885007317823913273861365340953310324737295549458150869335713412380690728368391384956951499466516049872847029022981769528089516838144729906893604756567100837630529490379038913167141094605320017715674548848573297971902390699551403855371994650117046014198774211083081374006439400874147973667272876702358954782474816595187320193731173926569315252877641249167959953928510036617040811532733329955347893272266026351905730531908956079352384570006566949259835437582507804666669674725290240144594373409993667446529780035075471865236405356672614880209383186758820176866873456047633579773528412416548682561975831822635290397018291979857380760322394209362958187494838839924678644477326433321446893334244324575998693089624453016162368390414606463986512243369561046797752014531606083171679599179957455867837254072999734879123981730028932422197509490042481627656812923323436331421545768192865824836495086170110091914996337329803164957093490353211710329266459491590898873813944305618673253981755092795462528461690629260296509305636471209465132726241723831148119069054674807639268468152481175264573750332897304183525674398645819296844976412801545375587166578274938546825985280217493038797039411116385352488019617377304300708006053636772964893072054694235227022942905503624700802962216126440739922852432664558763062115775276767377137871903000830966712387914637301806788803899373404203828111112363615724753667370813314592735564522790612215599983383268375901955105071065811497057716464849278281335145702319403080387070585766623089093422215274930907267549696778277438302996220722968357070978951683171016223168702229387798528468086542991019840928370633047476254787998439512217258264700367026117229311689480037951988201666056458104449808993781790372465850466271991036579029715243396556405264880704740862617492050815850026273069559799101691973323784059619182272408946408028220978775287269716429236953379419505130076309693777481509492751182667312680226431774200173289913414403147260214296879399485965754341285781876564739363987577299022238118201223307681870073243735223549274015612427563739041526864272086336316006076666744770193801997736028654832319394376117607479357541892602560830054450995056855589949974246095816054376599285885570932326743351148668411514235382566710241558137827354621363753140530256126699126908944623741149613776573064807859986819810688821961082663684878506578492559641632331176561391819122157800220706660161124168964912331881150942964540422099742099518243911222196268900167648995133733318359277410147040221590019411977190156079307029586492602744173619679437423603731818535147703200993738516258063698073887461354824921860882315649880411954747474096342314142260311649931932561543636150569667951228188194009218321020658070495033831382434831949382424160625747999640268757645191287405715694089481107255913020658528610186814793919587389460417550984297421748620254338100344867466133925406820710278067899588172992671401550015151029204879754536115007681920132809404177069939030175573181352339029533337026194850756515920771790030954058331009336951506278692673321573242807777828232247269339680695000642520363157907789961414292963188534504982364774737907283677252217371015712703385900559210831642640090400439504530573912909586694230376316639740752467029503263333611272699458949328500366902236303619844752238379921406598298031953742344869987525599135575260274927829541456029705808677479388755078464712929450750154906842826025634568656012810660077201369489661590063929248887628661886672961011155632066479947571095765908367414616500330517532318558596149927410604440717752647883633265700361341656174483443266186230076507814233025131871598110363379484155434277750237118251772442937381804302766512250405162202754941760253347342295401991190456242973150124352252692269834289361736458216698155982233186715088065521755112128536266590109713694961931379962557849236904114570266565609379779187473272912780598899496806970886729641285566092911876109709551462761623704829188020188377161971490733590601801938938272130569306370943395561056751204244627547677159497427775536398745144695754841089297158259036421499373500122912752435849738404151325273628301566542779790981202677860739257753293474786850909001551859127114146185752514757978315153842508973782337147685555280606055434178664739347307044928994037518952906149562508892853502204198129101857276034943145360044281350646267235556573995169315150729586649262770276553867922502089645832349504208558717552405417909048328900405163456115842571476490578780281635333266283297803464812320963780924170844700512658130468337296799003209153578675157079077794582292612811499997051454200743972854712831561397772865203497354389713793748608704480531631862701381176821980629384696475118831722175571017332327951242122489396423771903536700873019747649856181761440081384710330375503068969417471105478367801637376043136425477002593828331770564062815821746662430489375826060963629767370234604447199533673196873353433635557896916340263062611197299220463653275388250122477559924938711760643743702764646545199143816894384969110852696411739498615278266191971990347310378006652454276091654850385147839904567145229283825238449783954482625125022032454697081079060997232798636529415105313744928532981630074365334732627385561418212631031340900402565398626825885321495083629138245013094628013241674844909485204638819485206746658192884989444216338550583917755449916222367968061478255900702386027749089248319510641031662357949737851259424975973204583888429387254360938962440516366621040059643625435576163796082805388981401693416733926775177258747983305938442706512270595028673982843950732066055773225280495044046629036440392911951505519038754354815007992962953166209169683640178191939505035977595488718835766123416238082228122932410830096617795994830425451497753993628339604300989082428037695751317164904002226599283556588954293014845166387463869794902904020176152033790225336723410525341088596444092286114405558784057560945779918364141586418097769411459453888331310948074417942887597945711712037345556733450439823538329918654196410633610939992042944851334952619570313850997630103777981525974134360500860041028158573730742910386496764697710928987814150440671043750285926510027546846374146839392217110883199055735329680119128144523251853288265199299164749900982104688890425303557656800194964243389220902441435502290433772934631704298216365698392877954180094148090277108186404986628084640592340926787288754606008064427363512232112677743812931928372839982745889565529762277205652011416043876718802035700998572044875213491945117181710284645120967978950576092996442816968331740773616129203672282267948701222022080161218525605850559257293516350824458786666262687866084976549649017736524728926733614064269188445025913754743856512427752246013627375102133922251686408761548053052569817043817555828987335560683545260043988020490638658644721836256687206367550500980392228953131018203887131902319539095204807836449850790209630495387907493485919217148649354231247864932412568723833818569902505631731262709278269623400290101523774809427434583757320073778148877061696107208781632405319893512334618424109300986525549183957604662131794123979160299682884847569188648025773579400824386079544172294786423183112875069485564068766425136821357381490797987628479880940113570998717315973484452120885709745233524244246479028152547691969054141829275051529703709044862993997068917234167083542677283676581714094554220573223985037228302987374065545816989331325045732167712150764583085289961533315758231376148127271018487078618511298102271379657989236221428346577671639798436796097433802334415728865098473619531969119480043228639103512376395318050287968267268692345636666473724179859823135190583292882870961846332430576942553789812774397830618704192104911714984218045202535996534388197345354607537531659855877140067449511534278948608146477497573222087879927929234806659682450374296943056238035280815533684066259988529398578537112033927692956577696123054230459747648799059136174818392467707494833817486439720569348063282510662273932079269504666251844745155963291164589808019659843963790946329875715763525177145200878753826660342132068963938761387924886198720578617301093358550528580922697168158496387380588639715583418953346847886769163508295173988066739310656734386142388767733737233020343762671426744685449304267802199803675193885511642356119193951104154054462654924115906178157398587048512136780456469493330314800453656695136589096802632269742052195458448636730000331332057897134363532747708410309888462723275916101207159272559719218074845539112499929826920512258528554435372455397405498283283432729104039120472193238090198368574558784624756879427865370821757474317293721690057166653773626814145314811327646688199570643221497719156506655117772678623768813967807394140603010784129487789808195721285203781434439410049708918833841742610901935571734991603057297381269238514330729863247505306142113619657369547971683678849861170502620238722349021241077490361613986297482430161239638041314415533600971160567196577207990416390437513798123521861255382896139413616178195731168467173477091366998881063752387323514551826147662473599631775666971132575721779570440476052136344668046884858706411478212688178867038498594367859260576419805344417062877734860694818025828384425307294719458153100064307382450252922364183981527777367976284550186696801436295035658117935836264697128517921972179515805778936169533510209425400546086050765149714653505394244328545689103851832259942692396279917489219008426364759942974589055260210583597369580445382490606762104519583787924334942966675176953826271097346497750583183178277967487292037015379943887061833723079905530410347528438665599124445419738983053765243299946083467764691450453562115783844997615978103449357401543830627309323216833880032336917894372470432559319106772720351706922768521212380064009169195747184380791641146683747244680254827001819236972119573755971343627871778549218992412191055219269448523875072305076399620807172195789921511003178486818050463125383311069393345394528386159857510216531737662322379233354919522604020502286174006674290366394019588599286198794401277441741679744802533646478320069952803389889056038153270901645285703722468868432923196143908191071089282024535589086087777923314797718766211097886347552293338429233108444258309629457705799589071676019511566658896267479086275210830314374918256440117924215008230595872654091772118066787955603524273952440052919334893091205983139925192311564326395575021354754529459523815282462103429852029496582017468715840140001475310547557042378683948941994972794152670502001617987138955452357240982103038960018258534624941629024311512394453353726565640363501037386684993977967516778057030998324242001278369319787097260156876232055589300111896214455311639845777900098123179143347502518503987228000420193038754126520664185405006634861703182725387822964905674408911069408014397569409492180094482644906762517149472184968406792087227215541556153752242004174511260138766299978210552181083014348844879350022854477250433455279035882810259826571540140574327322621352218865002359125413934954521127606537927074441135339539873205198076689159154766878040848644200896556749709336044106051453441349769996885757739210499817908681259798260934285666319727182907264103666784355739709464779336323554411057957267712865301648680345186318061148674698025920489481317000363369059167438726472135092205733135878066739584666816411298450291326035994344233651392404752937666525399096070919046726813187470540959612907817478369158378759672339906483546253841997940363099722505178655678376709889011155924806432593261296460091544912717712841468516428805909515414055752415848927719965873632761316741637183155678258780832642471376929770129846724499111746698340661532992177613409617604853737347062907214143020452759343753626637194443584013805097897657847505056468170878184208403744272149018688600726932066655494496491409870001158618364744346526104836396385355388791926218678690218914584044900492267724319501614352279666317219300588572679986967013288350285014768754699295751068279748585609375290550533984923211449299967020611595361544696415066227712932804773550139049905230511862238329078771821037731994230463022404138837360039192678313639552187405534313653675220889642135676200661964931321694384303947850814443951749209911252315837161270446631232759661495937248317980848567214034474386934554934520457516154395324064158731508138380683912282406690998744874394544934300006455647355294788082678713504269034001749238314570494104968190896570569805028600178025272606894974219557643262168690173484033362419187207406438223701559329327414229434783351058900991974323833948825777318902561196184299471449308891383995431079986881014928156467245231033756760107761960610691197181490073410712807817469519704818368025979151621140221871282342098891698981410142296146714067194870570698572983002902188028348328900033803281431344915465943155409020324565949896297836541283259501787461507208461623997775321965701027663395528574616336205109634257310029100940968447817181451869767320677985261442517123974552844637261360182316301191793263227706048551446685079016881725260234762143302721670357498803517216779931679142601285439479097913194175434797698221051443812687165967576447678029126954435969350447925575815525779290001759870428554395136042255907307574855563189856003684032375985164676857252545371183596599217721122307463646376471674343944045040542078697428162678779379766805034916861097357325324278216713762515963223257907056316301629210726983914268040157841519979170396376818381805312950357284870706063723994276578337211109217476730057530689438198793745669246203022990061228977307650947076934509401676173382826286400370539205624033542006546903537046083950801502498737277287129899622314580772396890036607830881753378080683046169889017121112453581094066764321156029103402991419730251744230175458557618401411758884044363912272606369555569439836529339167994210639487864630719017963350788944637514726933221901553598764298232576051313498013025764397666102510808565093969673861411266879536535454905607555421358761415108737029740781122620412050660470462601526619279083246844592587422981210783514595113596073020836282986776038755456287045652753710139361574069226005398596260415327869408523353091368104263689027457530000427527607198708006744607029392375020432527111531952862301283815268315157595662444276724556962723759163976607882670419041262245575252164639138605236033264207343225740292556477280405519019979861882225438235760525788172790280119439357355247957353503910833672280956157423691667393984535439837737575750118924036827439694804551880883804015935383422145061704915516717724510947998153215737908469013286161357795378270107333940394624975128448026822962690423375544057566338268782705149106118023069354304741034287782399266083571998081883081708474191651480908787954389047966716977014509459151417671297378993739625463132433296830266140021949694374719077969367076994019553492754777947477720886791246201216951477091629172530360875116928132573839797891691394293677946258439825520185328363188729380936409593439992343851901860422990948633941432123813443939055549717919371530952239079071655005322105115910262679287833115201932358844889657468175054179352274458447119649534318610782612587665284770290492507471526225044572426420120918398775094549941290067193941359557342259456453369476505008364583748325251625973680229122648494105901623681658442182973655178795361252002509062178951503889235239648991759045658475628440404306066370442602410165798109508048048330458121610296345145703205577776421217817480780823385233325835304377214749869857581344306454137211220698593740805323450216054188962312951778310957631414272232655036991841516307382910292924854848782937515043092804825300096610102814341878916219142089162628047135562150052580838464579463214601033818783443141253392305155907911494860749942642339223657639670877742271122104173642281134309187884780285315407437057385048786334202015586749978577316043543316288883473566347461030457864312313823645210858552669886616625004899826506287352109386857534117627973323204553721141440417712459385460841612591226241865922427685141682035445402343939903346700236732211867325556372094703795576611590940374302507972758154473908831756953625475103370238804619641213036882153556930137317028822000213687259291954433778100099170094866047634722866268399855625803410102190749667393303824788644611351185388209871521739925450396107618715899253804272124011431895261444159016893149930789441587384465466562440601977894366666363529561933026805281987906430083772582234698880125987942169595449652077282490630567242240358195568782073818499701012190017885329181578290911400935540247969853270959020485830190500553832010786363998107149342134688676348544961653152484568840501926368753888032438850333676227860148039051366198104687240352592935033588839264581631339588206676173844602221095539030830869035085677703805363442059369131435412530749609350137844628814425915654787965016033657920349408332331857274763815255921132882083894011996487449710404477187424077958695888923247825874802352515495447586895762448971026590168323567185366757647244139867789712765428222588087839689573770452982966721822288890801520182589839224412607337832593055554654456286468135177359031518821686632215349524989237092445840317609463178091867356394835936743951663823782533282243705126853400711475161773144387623732108072852949386297248111948735149392257942620806015327349862673554290870962898817079945957315471980164067020655042788561462565465810558031003736597403182215008106071074104889494451490887780336445188860607634589588382890341511754965771746626454450521211898665643323268120081920045388697960323810737962529726712081354464099254139431345530392395267191559986289993682812086219048865437703334178225022685227558527018657847404399834012276969723371537294939659614394922633928449099828208236114514384612688545297814996890553398723856551217338056119544928802406026564950563434966716682293065147861220386615500628132631265777824449149040070596443970757033228892915170789595047029123788200691402261461965313248280157672906390168678636083183016615198288436203574794705822186341206333383450579870914900446510924922455394883600079802406629405630972311670985117562322442454006117350932904582606212958704960976205858103398690756155202889362692026710587506600448434487012061474502721616143704680851630758039685901546180417311864873297404989098343508334903564371991502380141308448762110141134662193787583183287269881450206528019857208804896694953551693120522731064496233600423697162825689404820283715092967978751693698267970417793604568833129637007346652223424237384377869898938046645249683123019538170853091690603588333694367607854314181305442240442425666649575688437214502726570709300566601988409945053625276495340561459649638827937569754192367701567850691833717711083308201321345603074815458615728520225957273273007277971755486599070987724420158100009030466806431627816221536854124831140911259886637488205813158137939006195461815683936307195103743737948554455377351286102153852568938597405420675346767922285476177809756477063122586258327542101783462320171332202195836900643662852483012308707948938874747127360393695352859896303839168728021333612909787087142761929998241396812402469292066623923775810783156361290660925743265732298615046123667400622728441192998935304310555317387198370586620450727651154897105597247010557137977872591079107841049841192700692594322275376739378973302596740075004132683138345513202769417925173790953518743342556928763763614371206953264215983450338488344672724104526668417512671248437388844704984461787491629300160672259581671054759774482609304464539781771333907500750564175115909800524939686493282349941517512192040562270298321087615966241746225721518120378963038770604308932850148219890840106378869510624045216423594786367620932475232636017910831597984321550185077575566627483337660748248546309061166989136826846462602890609623638421180287687747917244726879148817601882946547507873205562142113942677726729295106708244105102451981363706005607689728160918450116693065631318516801880331927660004441501739309977477001161809710748993624244029888109100771960781704240936775676671785531171553933708295615128441018521333833849096629511689011672087795600904051473215286063274412141773878043125349405215807600276839069446848253996552114209332679966251500651911362846429509947723772819630965956278166998072097152607430079285170147388530343889935223161309975546453498627809790530094582772665553892232631548144894315675901124421895423942507580168426271276399315219123575891866693224789613730049220068776772484263934896109478103606818144974660674251274440632981292212794069642678707977652584266264527143112495464514180550669444339920990837182265032036426184037706987031243464283634935795094961633559042051920148378485615208471747199356577858183949600859242379324374370190794537648437901127577210652030129014910929253080087419680969119211428981191220128838329246939045840555966294717103480734890442600175818238595940694621495316357258815592173750856836916736216840356691037365463258382585690804095751384563936813080124241364538063771997150632311277945612310447982872795607582723586928441508371270725694995601835855576984574933983233639272579848638165444605570744024057794693683369299525927536001610421378816748787384522826635135887465351446238906419053652266704792277924812783380476931480718626633718183402454037055491480555522629260489508869429098847603991200284211487222190885429037700465778494216139485983022133089105382783303090734022149776802999971751443348445714193803007985277783329433278180738967260413555725741109647281842131659085613906025147841678688167552980724785329287381699725225736218512991550349403966338860662662538720010876837235768500277378274971466947321854650648076769209608622105389761297053208836356170673126153652647667578808213773905565248154865378001976199259778934472931100319165212583200768735976056948712629552778353673938640666547175848159288621523614775239805134436205773313495233638053277498515569417635395270132512336462399814747018576304700724487414945062587730721662965946495261947381879429362440371940095561464213937535236366853717446383518405630884263819285343279662951465691290560493308984780763234217967159301170396030736712031526135538028127697007482368072237975027456625929233099308666259574044181264502947946684475400049333268812487526438522267626859598446705217994720046292607344933364333546581598502236984598602642416977617443068839839524466997106762914686937140596942406147626837791460713628802859861537380511473783408982261362209371273812662287937001950260687434802017622952533337881664839660744990471486333297557478786284746436952000575387449354110654861252803279945938387833698648985747701442968989321414353966839059781369363659207377301911163081448737565109558696861180177671693705599398467624213232892486896774916892985178341070004324885688904166510334358243170280865077242166328980127057129008666976419075746054877886118421084472210573589071586940336837422839005377525882258720458903504753939372945544580301108766017944766109900967779784175944119093804653289682683311816704005431488097790507803911527221576981441536889197580104625332450851805153638318325447624858291739077158243737965250871867734514391312341136263872021861079425900604339615460283009230901725767023691463518620793089943568774889616901993578222785162600551919642879928140942027602489027709167606591812839144818097232177932889499328365509318197340464270473599579213544501143507679014642429944728841967244026459106869441833431638206593446285146896157109162411261770329999387414207611866857691670306971547423171637214052247643898152658379914468577907312789842038311033840807156920665432094296475942887146269682287818777876021334776535315956537942790210382162181050428132219140876330342531198542628607308938268524501401066964958436053464524937991520195129717237534803421938951760077520011329727823300374217476474033593916936689515692836927171673191804449761796408995777780396978304210903522949745984336051159400790848262524438981315315175606367684332813574305432710299084751229484053763802655621947276767283765543377915642085729042566081162213772546557170603525454033004889197621995509451725234206613550713918132499718638485379069927084625187248686139847157357638064810455847413583803321302772202679756372104421623941233900251625264077738231667016225272400978642301251061079794149680712450706433301293236367235254186755614018853574284175709721360504192751870232579615952631888470984394621540217238357451231729562998421406767565441880047787837854355554822415281122092095731310347974314684612754839849223845682355443644052268716335485120913957003217401687236483857802514064977385263131055891042985153594276845036628761110412876280945066755784525771093293959509999274054159214947219827044033130845071394284511275053869027603118804926835404464178831537185751506440127582523732088019449157640744727274401255417520126084259752766317557639020520650110961501639149463519517440814583308628325733929492425164985962360989299921777340881116564724425701821817175502718523943452042351447776389118425685241127640811691467952692879476078185567766786038632192625417163646826448082387628902335817870885637980559252756523779089048893799521927565015298250493114154347173314454450961804808430864265656251649166200773373868420075262712882388642730562135755271099960639200390787887182641884631603315429791986515420817889569360383811630231749334810841904678122155851908084511307345140959429855114463976399693112478508020206259420273830706881989933878733407443031018338261708570369264030688198594980279666948879119920404892366179923068002851441992004193293955357454880906088996854797579825335553384859401493451290532780391939579049592399044278746005796883022709313369721292480410406352095500466272912606765054396093062837733818939355443212684712794151203063799256701371458831173497527645317145864754566589141396828172166663491965334599446053325545108878477224413773113237868599045131504434246109215701745286549424394209875239855954018856820065815599278449187319714178065216688109420613874655100818827420981120238131062947393091113007249775144243374994755775380031314281759914808705072734098724881639086810325463274506508234146205145229206606785854922381273720606742237703404465530323576689388834191165340595259095420296859832561194844948116650752983684743665616559620417799260907490259519285558068754449726302228042684630471051001163838868828386497096959095999263294918874145760314169254798619458879639534406879872110027170359527150741822932200660978655488059118615165691832591727049764493490256550549993012682837996924787519839627320160520971626187514635092715736035188903471796636188441939592736182080440657537265811465710547119121070198765828768422610523471584251032532331495546632468286321474152728417444200296762457378503090686184222302882361027845095527087147578199946291166177672568938890642498259724003247454332034220882099054379270625958465537582253183404565660633873467852336550619939293827585298272662146919592148783669302727067980638097145649690833395330871562451334571005168860787394294995027029308079426353751133175946422022343578768962767848700043113097012464120414681136599629390663776969540674471827512662885985585311848958811724824947522634780427510899148274958687332653301489816352524223015882628262927542136929437117224834126932080364179756998147241599974639283039833070045209506759136788346030952886317452513966860126504918184767127884495893859393106120984001131369956714559083661215783498685887236750917144157479296329115888310406623583555839271860675265588151521613125772438145299094415151781001338113875382542660225385398129263965723218539286333659272332032201650014467893227253853141655869025998630628384876141502879783084687874283002237071830202213271970590636544577959484555003808979595197096738320616894657728882471004860480089313913293764030746985403562281470254875557677950294710942731891286109413277893207186357649837310104267911259505237616261569466473240165687251353551929498190052297610106139870792352371495960596751758553112506224914678747514560115773049996372284375600598246450425474479434267422639052708218878973859063913765609791948212299355606067662610808072767494824079231147920631735039477103707330147417411288111551346745199330044692590602031777828830730827479369745421365963061723725169416916309829485390746659875909417292800162912975092737498081950001111705086885395368612709196780143270952827038917495501466247150328543913611481022594598744070977927690749383629403801746137436213918353790620899518172100299342208871792880521067514182131111919263855436557456601607753654387746328498948195913341033904388818684293912828498122917385702998479310270398302970952633141766510660629374255906736061645966349334667458191495122258082754060642718049054385672137108530947696440337912281317049322149338308714523495229650350280514572145328513844621490009995594857343945473688841216227053357795691632652510921394305402610530656150557297014846855260782162125790458393617890850873589689052206983239896967158033825492004132369721175116543147508832396742113102217831754189718473223661767643862121594053592694893838275460216124988380985909030421458673677290423013604714397784912389075845792731568860155907776476120827239487932966454088629544063653776619110844390299791797108095597096023835715484791148456654809559149369172833044329006424424596221608907717663209317453940610235432486282734214772705856519367910130718192133072275444544787994560633891675688331518002485803690580340702404494116431200623408408737941634902940171882628590604292927709986901598132877244942691557459115196591525117001075200510019480876788547252911421659060719193631399851282685328798023439949528190123377521639269133773972072981711804582903319354213396944297657929110816782672205842058803383065031841302897046077938624776196431502561553391613020737765031403396302072492231155215595952009057430633766219070289692367396119456294475697186506313012591298022248956700828686432363347742038800712331207137611649610396766881029541812495450418209488623692770836944102860638286056310747361484576058902030613171634630281883668551478987286198481321084635024261848575166093155500123172582472173529624017673983549066450604154172146649736796409839227838410070776007679284984788668917645703483686593215088375872956211431996031372452624142410742259376012838300087589124335050083776833713858805607479460947731411130417662481845998537763286191837851475481153859150788335127716477834253548245947788968535219435554790132895617293220635883585637866536723024237164669729820933667749225376970139535250337972751358894461176420836081255363753757014804498099005470204608851232654469481154674479005278031442273891394680698041777112500135169010869840316926108477217456382937833534909097837856272318022687598954981133305508552516829991594203292658489907696880353233580881513882599798601113240844215715215105539693835425337792602131063003172421811251861928408075898016369745323260020840738282758437824676554303973216597788615860846507888219616183663857818143773491761752729190050835740667806737442269474945768805204473326039531971671160214509213363558086595162962236197521751513300887843766810594826590623474258547580746537201913525996256929674455294423761530033363874250218494147561137532089303405916149710637593577769481786295592029943646017362362789697848411773485261391230516131140184741693909632550362339419050488048836188985863968522056173353621345820201088807269972274694424833151673775990493854996522316667230005743210307980128102495002314209037293761316153332612813679275802544508419787169517418993477162622167823560108240185164869855282227485323457056484629701746905234930786009650706924957853165875332802579250343365723355280907945056287401480654790404392457618107878075083527656419207323096287132041230544169272120348096988742757418199031103043729507870077614890711887757142459755026385881641884018631008389849602027598233540110619208235485460359848871835547587579122603993582265196976467947438288508522739428663185981699467107398692892160132605779117126838204433852117997330408490025470297317669932065379320986370532069362508741579529760094285917709146492311035930890153215165429367290286504744103024751322033097393149873445488756014280183928494789313499688774292391000589772182254360536732397017061403798229681644980728666250981342730721696969528885639399396598025370435912504186672619879583436547188522622563236045252852150136997276175838357753188391251143668125161362390371359532837294308841407487197830918893886662406900380112315896198154375721449674211462696653709192834594890738143314476356551747186921548480860093338309373073623172663482931066696293834927725397169715669535738922186548950398174197791430651667070979908038214410598826123342536867313326268342460832012427689286536394024692911470456312861434802541493603890782820867377005207013192775735006025688992432260094345625311598317701456623983104096277390631838225980909713116754986820468696754531001458732579139485539679172930282212827798699687941821110131592392382839142908029582584882361657088869305215506922180874421165059920839946377399901608500357452240620271301173552938666587331435252165961335484656085327873625466451862878008618800168240946650835378857888961884834220510557630327752625363332873927757739968035198625664578011159627490562924950070473842180871538052445583904023431440471983072031465457725174822894051956054017310253485210782007428643711572877343730269176423266578067501415020978661738957626788824088443095828914487767246186751167787300191369524595378412916023028632947991338786857664042874653538947739652717704327702522093880897834996513102640724191295812903245992537802665926908710743881160475093101299671259889363781838980091471676534142838047769865442578387745147269900066219964933229145036510446535658409054168827190410422836685205796775363057995620691139972749564726019800104668012483373531164374587819432464387599125465231318978892712762777804496868097557441209636723854832450586933038388689122465750525380065281096785935774045355246562168262455215912013157957051528571767447464837955226909516247838979066930140264397667798559550597343647146114125778070245766708428293036283041947256173380107567220635272528154434952682954948722580324400040081884473968323430818752716614507728773631110403783776862125067011843994340169064782016979151464279506859618494205859560829946785141258748800308843555423952653011034545928838076984894482321940353276842150500735638516599327972748157441907297320477316521411346903750298975367762851072854421978796460511733337186389599033635919833911139935215261796728306612680657353432234163726222618057995008382833774292480036542891231365495182236530283222387847368716081395006025315509552111641483128336550302570079005218202812968561146241401997781828436974446243004006167354437812700942864111692201524947833719500495022190843822658186911450561452728842775811577164058697460238959079466481948830410102221879202332608379980466712370106474098025886681183191913626726881996581485323808072229174195834122107114010542896977599627399237718088428335761680418837906378536142710979295163380847718174580759202164671850045303402487335212067792333723941417414175853599401031086073859241543518270298040391219609891805897373158808840994462984017960135724665688705241355391005018880267091939432464329879330944955380406702529237500297647992620370776534344986523152353239757767020222582292031943398915863823784060173607177562155619329676633776338656381509300469174178719331079589770669721962855998792228452500375025781900767746809214055669724598586780212881644211790462143164049836702980185392882837036502382122013245329174402780455107138020634360461819841529686350720323179695016587448565126829282414240943644233342306928939744594792657215131213254419010790508615490419943600203048423790349351839025631631425055773895021120829323181848274452024076064442500177247958151088623609553808036734245939082570452976432230573020755379525780245820236343189205704704228128714208600519789560767098761284813678633742295745784177450724339154993934939524012603040012548899322077474335771064548141441965824620250243960104544125556010921422529538083797390725147350720027638804909886362168685701584653960745662608931697010586354364154389545460850899166068480794292609721930050145065600047873973811232914913295150198067559088798149189567544774554119438770964352720979633231808496652898515671628105658795218056607336188641226102410796928642275920903263480027673875820431340953960322541777595395592513904216902319557243926635896215595126930636499505946120112094824733910318175559934516703365100036349119903843166700109592878685561705410359197038953890028916415754309595723881552325961831328155736521993435427742233140506905543707615599460632453603836166536361754885840913687580658091468927148965205762243192241793859897680499209525289787680658870065852656078402260384472648942781425141538726656488001957814522988782249366484065346301059030426474416426041353126990265850423265231238768955759998312393902353875008372107683999294603259551608852505023205677672288382020543691145017001499402469438942919577624745629852118088261027328813650138917824525186329573485258143100833464178796712273404115255185940646522635860660188434922068578736456600398656306029473093754691716904646919649495442840802299441391499016052349387293682274185176187515465612874202760731153719223491918362457655817276826656643448333554197557355641088677890065844367988062733990066327896216304821069938390483202166648026069627455753018008435247883330044807986891028870860110971522552592142117027331839469809689604458600345709610747880953356423050113614750407944796590858035852539595872594244954663218134553634577161447493843985848087288895001189386015973626999988211228037930962116657890464986014406070188247698476391998904341097709278839824981698965118278507344029919624883697100668398983857629381800637334100573865818847064307649553866738901494053471669827781492284720871455970233451716248858094481456350771862144329586911101487151528343644898031972493255497084327081659119762994455437033696135022510654938740749687610902053277784949893905077526221191601137220598507017901105871660486732675746821067475711870749418139321722561764608098592453639320749503627968055145475482736950476038389587540247084873657119272975286577475846779739399048799530109085128761920258105649716896862800129807443861227133250731720629649551909998975418945809699390237548357905587614184342446975814934762012666563912462016573166902162958392793504649656383734214301203209549607967101406640605005107043620976189323618667105017004181010992732569069916090890866571150193659682837911774069876371551666899597834975739420598444211387618027057024447166306976377913334577794375299416540249275351788195737912502615695070689257316516357171724800488793416992850551221011625481523563080690608935204314424196143196062334663223016251635413898715600192428478318505393098384631681449940806802855546767548631123683444600636940224024645480148184727315057962465990503178304873245550703245685011488705737134428315442664371195654752026297569978990113254718137341705599122592206293252565657673678170826509325083408793589476111938521997014472956028705438557723045306797754859987949319826627629390542889115729062672628883189297018865784268366511635447578250895024626251792691291838056211326197223454556487769546019432292418529017646456993310384153295226933991493354784717786254826130228211389386332618955418884442408695229837065005114515652091652121489888131765949387612661746615971541157020759426536404552519855963739494451577487232179963616672276162845053099948373558761266277073412850929943213626645065276435328261647714186526932508752309851168636027145330345335461816539758642044166642953971797952598143757343404066152559771541477214107691088088967144857714475024785137912386883642502366659353645912436734910193099684802342139583218496231403608834625329029603908996542528901548038383830106457230542985752485053473333393140640946647127685694829638633890345644515867226565698760807333593315654845279290000307890940078436292936078910405735875137710041057400637149655119976625417863372264327814241305806200747698967352451769524048234319130187279659799598193303355308078297829164310059824016981773013219806805913394179623126769606427319053268933556007786242179652965276144278806322538631363970062352676921644874224140040434765708244157409133701977415414176426504117762442623473922556063094026099469524724411082911142708508877300368134442432059209686354960206713914158563838855700326342368363767646098948318252207445166655568980078240045342254669822895790672397665495500590656437188058279429796362919876295982116258348343910572183579570909653708213081037577053424033230857637777210969132458643037349807509655459477321202155888759187210243269843622366489634842702559343105140825616073330955040968492176290262406341406427428259148331955115377632411573906141659318222186240306299659303124722181487826032248004514030237983854851515228609068211882208056986798964336666453795625877637236447363841969590830574077857653480214212806761180576283195743592724790681501847161307454070434920115210232865176236479777161402042048981061571617382488551728180425155482100435594918154858096245424829215758862171258608451144850209190241734670087479820939158600992430488872180041533893170535592298443043266130409240897054633722169241351190546801317172552470081345858344013888095144358952323503072578505262172845678382318715443588913247291935342484587356325288593998849400740033916178344593117416843896786707384949319876376126638357803539342329359320630013653641144454037164655818711511699478671890349705388537807836672288951172528961148961374661561862850989269360364386871920133460182091318267666857090000769620907192996233794586109618537913728956949093321578039753674292938290501541706647746274607767389740650406724473717671421121220066117718524546654511817788104036198332764364939932038367869228434697012454242577707370351976556408778484618632841865141521464702035184760717715346079037050482573226957880706263408036428701853190207927119317138833376674451715033374694232580486624760060273293497472447356575432901219719438304009775989755936023580845473930778257048308463642357556159957182805559807981307289243582198004113950105256955410583222086516640350168979449588656178163870368780631569543565823313350587810273046754422881188690671972586412229737160197578882362584647760330817876572429549564388678229239737259931311687319744946965842648852999675201671811256204917031580745625481237742646577319055614282800670906387267880489717876274564141755346165667848764268258622333721003676956739502054339293460274193605301248809603821932629246689680660869178721349949028062157927655794855055197118995128067479665076920344791684684709921272037080885874887147081796722865150998770258080261558907925756342004926948037870882170911639644276227160707910877953712395487116895631435661822910235578940607535262678191554725175346877870826827975179664301024677579141023449311368484448059061580812262350121063402242167048977922886364989981806842333758766125494089309931586384589295099257976076473544718228711704837959310703741036794589291062615246009812680430132508493925307608978234817231484210066178995614095759517350550792034778427234315166779749689550596403011995619717692293912186635151158348157252920699445926747838425002395372699011915745165647927264644917924440443302921961109795213956225547523876903597646853573786100748293667702982480983310489976027407765774737676716516517639651687615179197040639519331157798402511656530400157258183449454202157432074352883354440786386146953346748284433440378291961695176799844194658991617064123840283177288552799695808918216190128053232394169758045857798890473738668822826027098741144117342327428277435676485395887767033945925806963982381733938549977853954458699218157888420207680853998612753044289882606841657604036101420213584532541825961982661431617613462981491020612140731239408369473564440322180195180488594642405513804030960260256485757625608996002441499118448660002483482884384502151738758550113274008239891690754539185587854967353452958955680887820401532635084446628231690471514581256109863234751901599408070328665097156357729240553374921231226080284697786474442666085526090743493264123233661406703035823448320251551910557109286856627278402282244667711728143848516815876163307759511638253911078947226005504044264377782790988733672501302623431948100216542667057277299446807019479643303062291780107472473543517413348450755982396847956486267489527748650339390440070895445853015461639687738807114542926210562800105687096301805614000624332877771282964386866151453448244038754889612292565288861386665809971638435980143169735082851677190943975941660907535744181873637915889596520230498768369059815018527672006176390284898129232855067612091513797935502127485641846597342200390019766825001469937942367140391207691262377410550993649854467554683737524727031733286179190294184602112502648227947274870336082143432072526843078852677626584895406294888811554360228013191380092487036902180944260667886255133864299453669674547390909736358782328267760108694161421289191845522144118434699661151959770047797861551910160136625971064470726281403363187376572238542473136313736295499018810609224143107437855100862735831099512890112858098121207561501782512654422591977548872498289815711300398458626619983471067960961000945758599756316028331598675485110790102762815169639699047344269532100177298620485619003762027693200280290078580552911692085692943429854943373877727708914865048952123415810230339367963906146510786076393987219398445180541569766390456009495278744232530574608351189078117108950866647076490471397745451215423900859673439201826175760194246987717722213116132533093917366828832072494596333441299685866992079495071321304983474910706102832967735990419211287639580725375991976466771664340029453153729453982524843028478480612252732522493320053135814315101259384447944311321464542836604535371712273945993749797604992846048745522814990163612965658135149819213229265444936908129182002331212423215282602618268697484038046040688159474514483320460409930448068021323953791549462221362128443040779371111230305360225540969611364922410552598752441195789183008607679237673078566571132282187833425416571964298610661936366485563039762252707023143053263264241520452011188701461819977133263175757886924829926359897709594280534781367607266421458486623792096607709883440334296628024666143366457081941537199096720358478664470983181142189964989661663494901243526306641006147862935306615125924462332123596600351737829033394008304555682270215710699203545500415847894432546697203770149434114027507111077600922307288263715356962015932356450156527781470532103137576354192398841275117816016694906572081425074524661072227721461298762638920020878166323616855144230338210035152887207267627593474960441616305587850082626541253668430616558533734460900436973099971255246053210750840482362945437857003748883801950594591645556025395616796381095090875326126197538517777049930089456289811594583993872711095556143127683469362636059796748333843314627007615195670495608151142476942204467706636136953124425637930100240510075633095070979409024984260725206822700995796159077706038766377945879881933788288844275373137112959582521498952350357641947097556733358982898550979155757874478929305813474724406374941389327759757132874306790614926914983667633149706992129502115506500546755424301832986157156216199356465621062465244118821034496945475768717106546965631108878025203849230755908087806632438595275446218637352755720770300035721097976973992161091342637691274252746626565075330789834176097327810780419023998695854031477346569676180328793175405424056597468499977754542787232147025307929585781266916613391272178911943746800378951173556241033413464423760595138838666195012797095783425369394385440710339506800624043158267171005898076688459123917359789204520168807077579267451568745744655350070102156323869560238305968080474101099971502686292612809503035112049594892309581577174263976047517871245797373271116825325274255254513917687401628468485640139321647157933749696594512090098191552248196775526923164747563741454774290823824598443739338702431098765066930530335359058036001291091565833873944331957704250587510965624628180415049460679823744491152148891709037069885817264681692450000536046501003272780227670853997472043201671680279663704760969910099763875919894557891725415738318876542733447165982790264967303523477906334414793680601210060654082727401432979329532649592853351428747321999638142002306717333301435657098218971085721903934474430730022544760167133200220516467306869017563072333477692473342164709164213610484491812438949695509061284326846530944865539055857208868145554613526143524151886632246492078395359100068526006299975144317893235645689431341217573265648218803854081007290402798699833765582082037593884844302194755404352814889371717273462203204314800788039921316599468716736501497158057778515417753883176657215256030855247618073392169675555277866386178158159029582514392002424853103050914336567145840662773146795159503612328339878486057427335115051824895858410327794383888522391989504012668418658693619874355000019988267116179876887760062583346441490573190047467592614413562338343448533789342070154007820189493984409597951393779029711218243216651448684305791046024600832962415936939903434921415480321380932718445761395633921893994668403138993245302479771877814487104417768356715265643940756668724630373751432704794820745918240043052865874411421856831550917985268557516652831456134886595339152347791869367625143605742498380630179620927355129746276735344834155686363029183838415075724211343161325106963591365169042357054796802201995315521460220593906572482069200294174264935775354790974602031032369307213331055706520552834202136280382845513929231578787108645610524687208594046616584913833917298529402982928765091814254134921651832281428206862825549433325071128479925223077014891596657906577237931329806594489803355250909862834021910569301846536694034762363035113612545620271983876503663325097227701751062934340872547090168717335196724966942173457963776245218385671196057745858320470070127785706230302433965446944997546189937783445019527660532302746942806811642043653625203102666317058095340447688135777680738679574936018015348561154709960895999220584797896624807676107515078448593778798040499947737830496618921185686254355910173359237069682752928643167732280178090774726227364516140198183180501682556426399542900539878343745578528447099836238870175363488690179947267794435008370399882475411683759073065504133679357407285064406267925567573284912887693920304875122123720039371910573606557153572125942292328989374526195427879754486166390732215152180709569247481445277255999773566618260482943780077514666316721832493571886114911984974214380720390714754908111679140810347756142470814201033546094480154018979996689844516442353789170980546445354661066123432332076604110694903305189113199488754038786868890183915837358169347605191110378292419235351558304602179314960071437319431463811952441045254347478562732533984627781963036629831993895389734156719054064889259424929890915186692641461607055188999570257189829840542219451473713438383759201408984683125774170796886758826720846759103330140572500896610095760747683894769747479200961755105772017707127513999738938287641269778946665854330224087902676115850345024439904031457991932773593595562838086539890301216302746184545950583423549840638932876782647919092256646321819074916056491679119819049138049227733755898750790342912231423663985249354927767264066395808858579102717554083404204323078928993789758670661039279744836806745515738072764889059489145339162599589832125205101424290865012036592251163258739217206286161885626733390614877871100660588595383810290406536292009594391131939566517755632722956239443579173536433302056735719253662994682505691949296029238951475439342716610109501751187762176504977990102629639755999019217422703484949809746892570834530528438245011524269518474698364938595987812018915217973159334260029759907376858247990240116916620870002754232793672621619431050102237461247822791649100990180698712980846979359517033173823112483461151161318734198807751123550292620484685481325981105043275600093274416807283009610935928840830630749706641978361687201811653360727394162578371390280179926240104733832824703354853658398921277479339528448098132379727713162541486381126146368777328365453720993607839385151088277005232542638529779796493405068252816152198009067847789480163870413099581083822895467272403701945288111134965292276688318672076317271294466068263355382117724133430675366496003618838634132783850166903782637564517319518116016668668002421896449583499355936439333026545499330640742971486151368218460190008707334969320270593874991911922544193102187830713429804742630960199449908917990663785082781730211348938021870658454578709775776264632951056342751300570206367605443735930049037518832673629934796648233420730662136718901784253045816677864655632282519400703238327822343656880371492185695890965424981970387440272505363704034574290406731891678037842056257063967547797276781907324047681297707167430753355046517172359802585493714872917504795898060688471077209412697980434837182172378722197505518305129575156228773148884518669180936756322214789649818568403173515187210003885484254397959145347836939374254165571765734266356014177280928794322824142010823892467288846713519500049481422432852943655305748277623433978869558189002557809511316878935871964927556372246276421515334050451189431370284309944843817902311934382875351483167848429615556933026847242905548362716817051993594050174245983392436302771292158014233409642432706346757661873945974841873537490478283318609824573248754008141822337312747436742660673420339479458260525675934149630031674879414389891653649849810908319313879842301050135173394255128644931907139256414803549460216795181623564787038245463768765330353219885910120494787770796463820739574967188068409522321605145883993183792371243892117052482549757595395092178507525082544563893929996756291291248230499243317943606858733291490441045350953754636875126886279481821452082850746786516905473041301406647393292246622594485968806734766564858793345644363400231690467628488827340866225872655587895789329688158026291214775806864044467016885826672004991325628288599546676312807624911032971684904870720859835831612671977989473885408173395285330176992423937642467183783376239798352346075716557367238955884999964587619967976012032580013162982599133082100000224190918486673872631500117670352754734544896099248300211728159936368976682164083144350599020477153908358875758969927925569924142838652506747768678301697509319913405226391953782504250547667040715864850461688645044640872400368478628756208526784064442589658736538639444706649500908336804881778954544885752123103370393450162763700173913973951173054702885943580540130590405024647507939299262752610118421314460998919888086839586146000255229279396805654653101422306393322602353614923739885624215214727499076913100822064525479675584888299456246318358982676129834494853058983849081866098171106712017714225793841015243703374533451693745378511832250511704973491740552795784357250208550373675025939531753908037252472403869074110214539926282463241229586202450552295512123715583321653286145535411958887543550640910463317306229464354543351764275035386597778088171043355475791868524744571366942561361302396342901049866164929519950646744472087987551081114830993320426702888521490580018299642970400703600539662061228028915465837906487187030948607875531680695825264451665263800979139243765743511360748077477637096753293495005935881576672498028012297756584865189840952840105440645725610865663894197587242458541129013891638754202766521427055581969947358287101590405865163100879613328718639301494433544327575522887680104092738081277153215768486168363495693029621732025185950019610863783180085857460038832136164434419656096849327712806691417166194969988657334104113408683185364156600090809718154782640254180299473818592994231379767957625644504862358165274437491594391254115180893116415864315504363403007943567744653717711478410189856234742161692665165785808349746155096270103976898468070604288404024117441822296063041493729892798608319043072774612972766016232003508834977806744511843655216697708073615122477727075649897806671859188881990799949079998257258252865967035859542428144290358637204673896999444992782568800205664470199943885300533998352941402119599976769468482726852548735760664738628434276530223171914068442675973027730954094099137995959924086141483031650892935489393819202085682490508801275033924730588135095581324742687163060036001169184093974500263286719205936327354154084675094773957404269227861228912724024634248490578082922937159662861220063663040741766583562643619260358306544953593783450512734955698369991129269905110093704735724324950628142071943366686364784075293101190034770706057160462864564313126283701439761145976499855391972701678829984948843509029386151335085048648415099873309959609463423379178552001376446749700309705711408121174752209933310825970574666590506298848498991590279837271019471897563266435640785122924371487615183975074627606706891155423552534888723618192113203479619775778954667668588870698561925988924849148816696159811971890580822896397886174870082989317338580638746432707953188954863347169218592145897610703880253503800645030362746818475430567881912766060703822808191297769848283858353061098282199977272722568720948545554551791043398348391533499023330032752059768703510779565165157887817919652778259860667237052060125502295745927737755804258530850377955167313745106322761191712262006288020339594157687705505338726374249399932284739236214842616376864549926927638258941892679667554260380527657988035310460127317705447385707823567043006234079643005844523411651138223102463600256341644132457193651005103768795789134923545845818410050311870529806144246019375731780013837781101563842791987881004174984897428160658529594388626594561436855206491823154852494243659260596293804288279038120524596346167064284015168910188936115696176962960337510227857261183961315802442274637546006775598486002483900741098848427823509065422574711545950955937777176672548877984885986021273104009018912461843383219465398609756361686094974327157736449582037137789086458690098227201626642710792926641381406670586674107408362339829098506649020336699750140778779754964442989167602839702393622573757365201943952430438189118788949271640127377594966964997090243482988735385937172290186762699028936274509024667958566194360621418090310938560607483872551147621611527479774657613739749077663678272656589010675087122311723352051655814662825898785990416138564597515346071684532573262287294961708736723709143879094549304377497697283782835535547245073804404175849492766946570026640765883267047135000615229505671517768172187000492585845181673620278297397316841460657199113248290100297218714511699244122717627201346606146610881146949182350028697044492336583703772698128040809095959768429239484459915677027115961449725138290456879688961210196909923300464967076471039181897398639457788592540191767406484171579246837648629409041170147334327782220227019100274275761815084321904600334100254224282547519129397967146661867740659989805894031955155594267833753849888499007891548269160273986849047709737317683069970010667027487463310760893749991920340493381451599913529731532057654033568113195512089906207342987730394674303903790669539819596019551404328895521008329055963000681410322188731222484227349441148552347434052884248684364277326702714664888680271889072498317464033468158429821695195095422219749258998656815508371458811610480115573291383313851591778386054071738598172963127182248113749782415061716729445100153195547233795831259435821269916510890007997033577021175486462960759185776547079733948228020437610389266194387919387376325395113315023854622583258655885896827509827686243323597116519589016182858115401800822297776308496597337118403339131559648909240554086694819623373934507263853771968356917661032352936353814379679246102681153275680372576774006028716274218710718129910341394333288840573525234096324006903349237796105961831187296818874403244639058303570845081587476716746458874334209794666221035337520539490038852558035766690375670613827033283162264809264103773960851429684371931698179218411218320027896551572465439962257687068356702988433502133956598730310480159908516069242583400611277532442430929375344588435998383283060957423605769403982679510149679556674066264390889229966479869504340822690244702081994926285718193737221089947000212011014081421504383153750889802042321106858668957830178851237661983178286890774802693253353157366935713535752826510337452453573289858238666491725511505573931420658864544193015753345484606009419832515044147811533711427767131654895409092219090112747756898224665078793933395849440264228813096266530360990160973424252375051311783364610525694405097617054536467606701702809903844197735085025904275608060540176045163952559678309583864462563413039204644718989048802282391412982192364671276378277976374501113986070580288048211218904618927229965668307452337449166928183044256357660821868357471018053856603768254411837242921554737436051526751810179789131556194521170537428997718433666725025842400489333853317671178975399194443282976091234038669606256924899439296192365678223565284955966911826507644055281680567792834049490934733086190751741044542226249077388730614945180798774167135253982323701590367830234405354916445415938661937375561873431497919608830907154505312439005206405302721788330874530084094298461997978288882149571556391620189214087570857021294039426551880626534476755445239465270993305748905043700681110387267097991287925601656590230236773988718514204350838603765875511815817559078422395137088679548032824549122666269130516592243698251556020020105418290098639647695945777641115165743341415886358665975862252635847034476694344960732949546025627117524171611380910451928173818740907955863658741812052137812982566847719471023226696552344610614318898807902552851346031205372781670436623758312060142977324489780968454272363146627825094188048984288688764536783600869949415819195632003833471331991763669302946762815254863192912399189553705570884396944407132775201574616458853191737769401667995362850260840434485829153929072618982098514531997348347898246326692360258010944964619908923451874649357484690278694748215022083117427267110350601835476658835581985367511359666579783846674904411014014063063708837669597539118749215303465878790291739065980934297525221773524424589643356023279380508718788185788803309178895008680219531109091648527072452228273631543444133509660810417672454641722335221760677852908525587236072928533031444906145738604890269175991694724041646806783969451719658531718602044098629370182096461259040342473384276624824038699924465465787672408079296315523547772859906474375994964271364398450871536747842937409648356739154402801412511521412550318007479675403345578534625902165100620314401036631831032755796122457375494250013298872466950419514019455911079500346891077442311214658952003227020089059055610203584090010145250369962881250296831437050048968851543456101326128628478443667630851957504777646777265471158319024076120444992899843038924485436867981683168755389158575626885307516042127086217190925864784168548786315944699395592841940278027413150855462565204629710231796631193671411815367753556789607251849931257989721001393296712552472593731343179426349277950001027036516604347257770882570477615498842550368368036878176665866003090082272321289189165718224923523780288621146316519083881830398835394296212852288125442221405068757263834529982746580769674559967096348505988390107887794817128529656177265519584261680858287321363100548716502543972144819453072601631769571848457915801583954473308742825980083605800695715350505127076169588583309959246272892100716339837910133738079596582696934690417105805873429953356153322087221441488357483327336884504821134493698624273563053644770327532103521667508199597655426793021193937877019956661155346134281266771919701922851990060530748851239545217844629446889760957647753582530525872919383689814398829617455913513333261237218085475311666563751011904436692171065250928910755158142764354052892405507739990418774193528613299852409212543473127882942492707783175712673510062236179826175153563858712210467389523940952685837929283711123545608983542440768936399632536304573920059091793728253495758290711105845299761474655102084566479066744721228303525984663321357250882651370459220725605815878474132590645130622134781908543437275030434957128689145366049765881818188745433612402630335549218411757177464298064654213029636719590325786774073022433651925092273610798107401531237198752577634413455810227677491128389158322244692540907283407356352432852120439999320470062416447643165854550071606243824163815722663462054719586128789578243335122502676644977651970364803001654264751968220479812053506837309892436301228976442158838158296032132315758108760817862605039140818741143275533145088107697911085948713836102210854966454303612054249747038919606904203727423676048613735172265536399200798867718559219189790334900772343427673914800686999704442253383570509234213278229550043105627979616026202436894825880586248251922165119014011283234115284130471776862544494634740248865857630301421816188358329689501097296222597200671070056927969389490571117900308153562445695509686146618212931626675353593024965521037071924772427602770706044050231828965901665046143600922334814000789842650797285528460503425956501509237744681803822366078766231881914371701648238836243895230294479927740930120364878685981347440160249066751517047634943647594879013441005676490930088188213561727684367410662133119031386195431114972568672828966014245188048118768546029040355850853003925328305499774052831405221069723822337730186915452405692867194619246126165579833513425931705803893541496743782484001786096186676950874487312128601570174387440470025906003201596247299330749913190718850953949363664886204678491984970249532951413656134584340075554277608964822611931125268017057600510136312833603427593927256997817417733223584157958125955629859581551552810542976002556527907810770691631601313787405465741545178466461810355686883079294667285480042670736532979387143889606518134080142204516056776582219568240782318455296969774234820783536069018556609322702604751850766129040936264151680810822788176853769881955514929188056499009458582925976511608979866405695909859036825839066317907731989768759079508425322397902252497805322624127049493022973581174764886250309297172103963440333890288926686330335090829451552480546433950611008371490360236770094969715338629911882065081487345879857129897522200163797019513156486871587590587443712268097718135467645906248285215296854838459343396910216924941079279304813785176000551003474178566980590762869098967796754094497804922392379631294131694330133149538356065539243580342679266997411796841045221629323112963142479965236950033661614463144827258104009748546289828744323267798023750214827426443092765995505973822112615444368180661410041566574666692939839575433891813614401482657487910941636424671052228702132974967034387572576281054580083470136123582764244760101019885824357450913545239763095148089045928963974103344259625412514942770182294203815702824670577233531509716018139984093285530904638906481141238888102425889169196712387896739175960905242261901444178138549198071869454201182627543507202205438643532955846826731638498455841363050481414980524241659238956890430444963174867405176337227193846454117366061609557776333721634399714009525339271289635401346509598229603586871039510119226891873158988984299684343973856709531421008671692526310854373754512772418809078802900899290122609142034263732724002903808514309169771939085976572880371631489893232526044552732959266578638166602825526605569646146398330079973632828197719223497038229666081907529350736021676424575203751538902351470945448896920801565943328848989289843610233122314941026915281992259382983493439000553806775262776981584124948201271884414517379004581560431916691744221773462509339705545980773944093516910613291074494339948353483287361644212953310947091713028203152350905066128612797377756071309454433784899468678065631009151913156248008878098972476210643058876076913683195648858897323124104672441123994014686166976183617623389842943639441446050028213516418581533670147668441165193307891158098752925772523486557610801077598051586475517849779506351346026924031519783335225355377897622800486511612792773290774269445981585226289637485623574689683509653046530451958401676034386138182684530149302612568925715918276645819940135860451438732775299919087428739492927533143603668058196043746052067151452655645010281665555943323298801435543702856951904797111039850599579688846884434253626658886796303621222389757720404500532852659834169522104394438961946235718702311751856514661447074906603770035702640373861061071476636327281438504956463994347842198132207610966469132317638244669413164012628141404051709818787965686267631099338344548909669577279976655205789138664083234141093891616400327017009932335279351007236719653351907374007630082696174663871632736799142569805779205878083753073035137264230640589832820259620755075701447581046083635467089834970745431197524394601628924980396663875662683600995503333433395472608141657571995119460689047966727815140602337161900118675567852324426663401042273537893025866157528566611129681861820232417277766170312017458080202688223437203558142273379597645354504140446235222040862324314780808194816606382768715153611592939490136639617582655779250842060500020263835057871114027999986688776134077644183013175562591920599175839559746563602541249830054186810431621570525340434147126250352290693933372269266834818483607934815458376717334906143679674019754780423202785952393324077871251963400260269581473443443849562206147337237607985738930334639644497165121152363488016020282474526954983197419961096326723273382485269852087528620243409485287611329353284019370431870785703781261840758541560252613440603800403417989176342333896779727573017519760848439211049883565277500858749543314945472099071685250966720137741647927984225486272757321086602316246060747303892094720455730952506344168483561407307486915691561509961700110232864003718104563447939081315962456670768986101149199351806095228185840251248902243450562020832391052620237753766993270607765751071040386382024038250953796088718518410022993842570503784240709590956324343738549816029596880428753002445618225174524434256578525758380209361274352972707470323363339237434480692699636296762640423786473902406171395809057073518157004987783446487228513450852524924849860738070431381912512416662802515096252134931683460960986365469294323433061988088354986078292161878956413142566874648999941334532523330509003635545908268605677254222137498545603680756023650984822772703107194253199274978476561632501788410668294701377291811402989087087946642475819888023318754929080015858006696639605641931866812391993031806373801295734617108246807793133483438072404410874836803925232387862523972801138228078635272432504204483800508196411174803143003472252821115672276742597973568303712602827609222202189856269335660303837807423230617178927743738097757553708766778960437801469135962505693673177275633567925232256648996990418388376829460342111164288251660056462873746029145379211405971351080557001688615437279587432662262781041812319707913447571804023482666204225796780715067427477906011084320067741436142913416941122433677119467486715291419702652584173794203160868725154332828634464440097988077320543001227809350928027230235575061017986116863483927300744952101498286874612104076725484203187513141799159264550144534527209073018146527223174005563158469762413370357070763434830102243626759607829834159003625881987640818609150678424914286091324286099356924005718053161028801144324950723985183579535959254478137609706398882959978071690761236723052534125748663607572095217314677768248210635350768299970848354343162308149833524832474364225741043837662941224137116266970938149735080522719578372744725818790594822762036052951994070131015164822586179455686071793724057283069172194957221321377763579534347160271801411910860315908648138435126979341724044662488832220597977982716516009583765388521725224302385619203597724728599884339982730466958554651590165298221041284891773134097371064031549116427186139277184758998251584973236425413628453052110602048086977618029271066924219619054033903884307339076629555008914550783331815118288190562133469088426665032219064083045912300645459954633537759914147633497765616729717249519382144869141939324141898234032161055004919150473177063839250321076738340443165919200344440532493136691857565335990477292526139846721291417943515798769542893918203413397031491280026497283889104083568416145615581832850967885221500939419752910378430517841449679579889386579626083293270068562290930936210146559954331738751190010315930736082115851554323486558008014593591515217493006897524662751888201289726439333708857983842265144299732412116598828646346318536562933909987226535475279044758209564841966399110134035429903625266947537124052522088309535994896545476468044972827139467111633733620740812653704748913731713136470437947499073590197797192931877008111319677390965173668298522613905027029903370077031055068813339881546340077721686068834828297957454874177302987239394286647701290909539709425382817182664475097960803440088728660746863526534383391930543413992985205307833602159414743657089950599988488397648339506315757315531979732881888625660679684426678637572319388811207295400199508056937103425786738172715709552420792112288037815560872219633739879966191483463183379022009768388379274416242635661123235732341947758080866569045080847665336889381066252226956861370203864811548420853224057011861440797200220294952504347453382570446151890490384204533444875214885791095290840567972508149945216522364622343074032108648159033429699704499767408444568882499006300460395591966666342101016115419254840800370443694041653874907628270311953372649394875735538114548155751345842433160786052047210265210967674842230574675721198490263989128332204208273716393089358286480968088215336616033676363129525696624908624611053628554093659069857413213562613057944788565842609767016909433028696307346601114297265788731303873862760125023785386151598696182666949155294508825134571426997463417714187692803512527886032906940038824707416478607295978493181789049311208570053520802861661685253753106396940421015083457941782528112982254688942895479129193149907938544672103436305953564951305080046081566103493080548832965901884749886876116980333020923081659475634345708274806141431533691165045020171394376148111298122235548182051131671643916819173637517997845198830885133792588141730130406849117321045872989037266317433515410818744828508422117593631489076175573864039692983071714332186850797614793928342043792573254997976162711770482955052339993375696806146975275912793145167105630246889766696634095983202476612288077725121387071578907675974517293063337268156241285147999781011489647938146952704875173879657858171278985240755462853403907244356429734426899753352885747985262171985944151642555771877907145659114236963821491171050987398674957744505758024136405338945219683588512883232436627781460491382401528194095536630827599292092114117765026248762596916484480570270732780621191786146478565879268339461643483405446017807839684239436777147125587986308375846589667602960037819153250057066597305092643241469589960656002452152025044896831972576892377435860405635216137097073851154031839324519301424376517931031625319795101006482806187355115932051743450170017794252130473113495212119432484534914038902483583326172673872512198531117611878776600556294359099494713705409332098739749191690143683719691998065321428555695824105552490622569735461083295825980222526307434804103317371635160383188609105553893691734777909899339592441118666194022835265011510566377054212541721865423090171013754205878979543554330973342187808969652766179161781370008718273802450564047793020869508259763495838778626281023149882835271732736785369504947648968636878769025814800019124593653978668449108684502174939287773373466893290138750247667604728755225807284277436002395037579236297928342133270749751347535009175976826274117875723618480570596764267936892358965209125896588256444926340536353515343563843373631803301679335791478039654661603162754132059323235733683759714942901416470449029723676602597258737923808044122272343241423419625577367975183932977085075824142714469593454180679196230220373380282883894356768379149823132822515535982153747789366561430423890332205854360042076631660047095835866878113275130139866355176143557635256770571864066899322099402365629183261697656150552816850616760095025987705100901828902194388774660366855795942104582109954740094210555109664025145942555485784215557456991716986610089983679315510645754361768618420991159946074907977180322209517126441317542392104369096337054087324087580699606866779353273283654158565844488863945989000209863140921826933043160354127326085303363545026770955478666645956650590210005320039138235288825530221134562009201922281046395458325836988809783197720069507873560112473168352044922310538810799867396038828562034088044839525283988976535105392873794268900450692009351548019821763745585502574017111150305506505545323078701549283061105509352905830344382372717983668537217802143207526123402694145627236442809052193038472369459631892285572715862767622576548122820764636055512725604299649397461085160949064949070081868747156932348985306334899350119438606675318896962502591276202215617646994378151692737529448248460906601478855460376514614916492163311870913893978074740652616913309919838702211418088564865504771373269121622220450836247774895749598761677256923611933540592546113111935667962576553400821206447483887127035706388857386484578958532908756823619470639312641538335034174872211646575916566362718154983603764496256557365760057728592080845576132867747543642023439425773809717848906871658986263821269449154269592765302176034709598172634132458966655962994985770680923641401881523995343048740969219723792765095915459953255560551143787443582616341157498647137686802603346167150775658007687224461655800306817761785059002568622192557289502155310666538366624305365688776887007102629164905078046080075335568569307814946425733841831145471760228929009570336536675973947800080461739992153724336024512814505949482444718065101626642330844377694385107260896212266725596382091790861945167321542342733516629215084935106277180024126878840660019004973199067250420174774690137099996120391418237398103735473606408355589522096221393487892414605824790724019669302723423466441448589603203246551152121615883796455985768737346647413016527293368456590915199655659687817068665041332615289508724987552504645449797079168885324535283869403458677619342228179938646379420002537138176097112236018589671648566771311694388853600665530874129885104020160276446068930324642451038553114079354540869242486302927284565406967273914998363960308868506123976679622650609196872400730093442053325765152468391700410108527695000244025219334820890689644127838033068085231348084548072370375676297567051817570129416552442724212540229679023539912085997214714372143559304189482537677102109509196253101080893958351991784298037602283658808119541752923623371463000382673032394326517405641220560603394971028356822012657755729445853959346494016361727554588797387158477309526235795001748588360922977683656651554901471449911524595478290155188644740596591356589127836619492039759209632945273404544348100503139168543468157492561706544791069231824657200811711365231713103302226045715749225137366553732799463819988572579285739473586829436264649849867354793759501402995177951189114910437438372980625116638915551455421617822864912651096299828813615638818847100030973655569396447289271728226180949898081824461906130981821455860250736029033165510135968027834014691646441720531101493636374524817152493086332676310760784215223739329981069727370546827665997847722520637667242834117330249732838384120331873722428058752411662960986647286757022530600172765492600862622846223989818606708502563658063979140235443610911822090645594422719886328469115117090339269280375118422142542660301632497541095916050011062609143691281711312000169133568893339540062639792086763101692838374669960526223256422834820800592561463961056675516560793157649062166892986575501851075923503552705611455547100678628077016659200473748912747503805673597705094774935910108936372098920563842127672590921067364770503066529440620887968455856225056932802194126575379300080801394831729168224492691467795127228054627175636329342876120436378611800990436994555774516404228515885996199428413863687643764134087375185566285429947079168845205757236765680793146727966240239975532697534984766103491764344277318481568551615567343590408412585981173828206582391730620156676067466111386358765695377069813390842599664104454911224808131965195296628275106716344488269618542690077869914123146323653677256317318134665641877809373025237790954161752459512535271911816335592470413749937192403723162989601595029782910788980863465301679791382942834592277504957061293312723084705762709513944362082867429457680704015115027336816800640315459363737983512274737049093307286402173791389025189796484101934523326079677152505512898486034246408380202657837246321680500469859054503721627473516475712678355677827359616136443114976894194474420189651507404079290754548327422137980996748082182719512319272240125298921001816161206995323643930865161278839970810049684996287984145916701892322369229669799294424145158671766684143511038530286373105083840676887357774425653608375294227495204329402430747760222058505112228177925261751946377584298853868268437715394144436319112104286105353979326285807197535802098229616632032716521557340496623692040113710528320317457208388867562494360924877042029411316467531733314314280136844507546442023271934308039029480770476738506005640522166789163082376718794949960914178047348092793643945251423632806357791112105784091283040973876931001657243676154400518280963115677969082603680485849737010528747491807643962831841012833899098186668527655937724600280086402230087261267311578539887710639870888435126803901944994107661701031946503368091327410949613866320582904238508682719879584869220390732798934234131699637436382422387651121232337407677884257876363824349995461117119369052901894604834656385327936459124538585606702070419620702884210699916958674977603653968631640662813128525259599040644625121164032616842229630130008473008742833058223416828603886480825785269214548773385145626705552662506797574613358338108267504461525677871290913851820174210120315592115654626111126695598017860912160288577479976171943664623036396568907282476285226441316866152891072989254882601475313456156494391129849438789792347558945704083438817362103479153013516724213502960386156873643414580736416752746122039344114636270583646044258548924801077133271257705673125816311609238170488243576754474733945956445747162147542004902819069792757954747150080628033955377443340339762511301454369813285234510558048903059755222311316568514090240205531167464044088457876216596674331382747343012550434430294203254500421027161823212892399844598354290304330873236589556035440942198367406810004533435717357524788441278781401324036860263025222913521472063141396681754375688099253286423585335283763812208516012232653903679836688608276544323087091277075162731341713553832782389357976935438708774298395070041553753596657975075900304359746158630112050769833448869532375741376180733804894044667931133836760141946879709189253346514560834180627268948401424901599495872300325237681574858108549043536573715132216292615048427941932899408599600205646789291150140396804297093055160387811099059058507926395220760199281864904140090382307489352548191704255862905694493721847904584890754346983123173353338507447209097121285019562277313272532234105028122530964131606933132644949625778415997937268767118227791507294728531220503049869182538350952308155028446928819472958095178521415876629243243492120751108663820953321597107527728776600271002310636216619514365786845186242764941026774231581586497187287437863770181249131995251349517625734389146024049742243481824033202927892829106351309374035358145460080244881997398852148686975985206759022061623720113765819442898318334907877261756007533552717811359860626440599885981982172742505782613760183688763901340478122525639169184872280853824047296616260562877918187439351909422468437311535341505343207687542655153461207861810427108502574717648787970581056512420616936753067605957891619155756852666590655198780558469630651757645902221479371285792618072754564481014265358636294367934052653140989278084403799496479141829803182769584707232195839807525120666801235990958067393957507363607742728537989476581111607104350177085491947850722485965678573889816242475999939763539849362231798084080828668202856558127586732279378127869445714197019645714733805042713937830930831675628757192111520876070038099544785190951364922977231390884587865379572671760903809801592835091864311883324591184483548629360099107197695900060125861497846351250091715750402794002028147365089176962731985050524638625451169010171211374263201155146724632576384456813480181091397707604403262795580787863631984211699101251938456850176898158638357088654260785844613430657967194935007430407148150054260242931879975477180718577597036869691658447293129733196954800237750554316234633455123546979438676508735887455324821925729394924328551634656602015644825088806234052334794212055658732230709807981667440482165067104636483161632137428183095032656376770112984435789976221003120210293872155348484430620657647048966392959124332610925652554313444804192261975458429630491440177472682790315605667617089075102631524677471281505885959721948583900893395260838055918377488840005610209641563080025571996001608185402178089709685581573776963484337967305581125852575649480857682993956578436999243751992217375024986038966309926739448630719479122406279459487336319051710329256985032585661402040255724658641459505144442839775057430066593131001976340257856123253742894842864563823403476667117252731949577418125945518467098840726079155834522647858774697733725009948216447139470984185963555969194552781260661745358523223109150538460806210348624350476880978313236702617897930462881668563385741000645844106958465600746909453465318835619416702541266457538207775734839704701976161986060606954432114289897075440453777959851707276016107871598488454591920557157898899933027841843429687120619599235733071763614892424692595020238510294160800312231870081481519542098142454545348986478447448756818246695852098317691998274179212165934124302086153126482449153982205088323085882711943637764855263652441724001207880718863013519229039722181437877785150040948446571290454963331664511445217809357075148811178013334819497507778961880456893826067945913775429888139838394556222058874797687747875846260108160643103227907914979602683726386445060036449003810981634202370720057034302992950611116363118930499069624909290527297977990245600407565714385836767322910771542408347595754119294955075502573687181447220898211120946493342695430319484125930648630529704934205483669404530186206350694643360110819757733020525470272463221710665538335130068540293327594984099934360264851022196076318877510954696277322587517749313422462321094871381833885922538627734906555836718664116805836156258378364200676007740725220381178057429490120321057727379338078506719323523700038364291271103463711376641998239176700799327043073987959380876171037154051443310368807318209472442796765327613923144756076082762876235304578532072039327071124199360473921457093161244835503024821350286016332135898120159411319836931287642737315737335416425927633705983023660425000438245569969419859173332791583251840416790227670783992205149094190624821276404862194710798053763040222197938415540772596743023084863976853439645312517011847597968810403196370476065960161232614259728546062111824285092701862765199182617270259953737903982108334298947584203408687333960583763318168502455825185070269834105483275376825966100098590539556632299495028885888798584163284065308540373339187961404093988982568810293493316602617747309867088447852534000367536640911093927758147706081615420824944156062455208917999047661490738316425012503450975024631176137740469443161915450157194681848550300828341214386647878210017562557191977942224009350601675825745475991965969244289673006546333343290902579192069987993074537408128788351228270118678944498465418988354046149934009103642098056726164982123725057205720387375972098414807574255815839856795433969745209714079738278326097072806537679674716621281851671628253327110570663587584425062318301140194174469463110302259356477760936904385296912586626945703469412465824794500074193232892018217693949830301514837468520672799681976948852536921730030346235921149711031528706256518939865184979650671600625672328321091871848084192271051908063161083708808884100005787844312558276635162799764241136155135325098823247528566898111139221825423919588360243157457923177416690039726730864110501314128655995294495189032126901214767379641439206966253583890510111248489421199470903014224895611711521027268696620260911493510686912656790648362313471133017032826814105083609138907087128812862784436374159007781554593742397341213762350111890668649248536161550249179687101799996408433600063826474829684463928258360186531204386199740389589821917677957272926480048154171774233303776118496436252111583010198672767994691990705217752625789256715941669295991782666490635773874623307379395272767781939524596986842137863248833128561899206534345872702364299830528084897956018767030072401575238100969175609855798406060484019756120219912418404408789013875255334311870081877618067534124233965543027368402192184212559414869599609008654797147272231526590779834381812689257776420231713385017992479530903222698923564674599004680516475251112559210333057380335578520386780176272042265929366927441046611337697312828041001127584755072677974556664963671766513797467693641633910216800070333265259017362790150423419237944389651270409757873811327775768806469483343178764352451080789032258567954721072135052504250499123692913064424710825432092668553159300644550052761349052215198905234610095151094882614858821009790970724487285618018388332832683725843097636132197069510878592747402541380348836400528224857751329248287095711881763836159961094047741539059553743755915696791140276723478537884814055898769174798505764854141398818060223842169009427263129485907129135288131326123240908614368756037184847829021050753062926871868646246176615332283010124793887710167719104495934433247986166359977894444871852352691325555223683068576636394207010230854757261602514802167158669617062194513303271803527282800592516514125142404018660526843200160889947511041591283289043433465463210808504879669697139562600192226581863436176055497074739027175029348412168285528666060880081694844356379660434225000238283153326941462036990341595863155506776411644642236984169777154296501019770009033624880116455902815117263530664171951364044396608087175404786713728453803455688084844044410149519070298456564384882674645709266644847283444120641038979964982333431198412271721014801079711733416014045836421826790442661088737169291078327183484051703650675913642171441177905484520601070051365093947926484795087788518286530494404024067489760583436036633269576803713653376343749261232496113723221880310229899267940599902369545437035725455717079308565605446105190900108095515062448887489730602964077060345736601138784942448583537694629788710091544734764778330067025063945694380102730921762063524395062740374612995579285101000050665443023265349269992134250331825666094097496149982945252755940604650642838634983446753062828733513654638993111878177347736610060240507974270095584407468723756467071968295790488591853147637225072919130622510997532514462156649201805427808927685108224123955620590765234860166357287089280835191357222699907639372695064021070528487254328457680262290568188566463341114971459331397634702350658600535640728117194236929449101645601552626808080432048853189712537494506210652139948963197612172817949359503256900389654763986032847565092858510623307956627491462898099440641531234007169954779863275933189498751154737366435553263972959014048786464137973864408240725903827977039504267384908160345333241129569187728163134051554904891636515296704930124300995414432213504739018853931081379495102441449329300365866579420528007711727692253877579694362561584352418851488199710442464204147065547373343970881575920702571205274669974467213877844574208244781490825038474942622448970799673286394900831902208705803666948523753886104997476726216066966610568201088479267648226816202727007473851138197555153641530247079089441051295900160481780285970163593807508279538793032512274897618169212051710621771702940166551865431385049925138335728537823920648001662280494725786612895579551556875663677752752225734660557544564890784197628617724081985567377645115811783579918373062094572271225270983725445323267757818872116586989149707295470513767466003047524565008321765736868199094826469407304243660561873350036546012041191963740094491818560205447354365632989322744035255908469244019721602292993800766066347418048058794974869793147147078693620111162435208590178740698864689255536945288672361629988654906831973853326138945764738491608342811952005878431937814827567940655295198047862294441373147490491972722517538236572359013224013310662315605808869014716581587660427171338746733204671644129762050987324895285600625564136912100814587106720329766538648807477638535135964596251523989554371052003500642203065743641548969728420055653837973655922807940388721004787410186487454688529776635201478298516534568686066294668781344307549732143655180380936512634202755359925174167827950521927904540664295304683488272109524105755079631163461606565852598925426824871829207346633623079196725463796486722514315476615436679582247748386153597217750299787533725085254366804860656224177369272741997154173351863356336206896251450252934050260389996538209375927511781463816065646562221997578719441771979038754222693665287613046622077031109921479070260514286628632958209677128109868346241448978703631402835259780550408349806754281523420765238480391415119071593317202613281412230555135824902400633278411807547225329955613479063235070651584607039575064601127994419311234079507527824801566199226558723195972526902029298663078183731928084648415477931141072707956409350168969724617065906324008054536508600840678726542715614145152990984927294668735862246779007169681841334708057964373198090995289131845477505914654047527224718360345404318331679262343334002454008350349410303941166368084311459644211864408690731144418638673769671349243433459531477283338001262940320737071140591460683343176529065869015882199515766538019117399851991771917681326856458576606054583646696362449656846690943570850737137300580367238904455393080362574145109118201538243892757482154582682391009513559419723240491349745181601785260087847610305171426752621340438844086154994094195625738347344574211658248227146880029936895023911642675378565536025315793954012274185123621892614422160334631014915008950734711621960200802976477565603069840675785834757988385927846717684370146273350699272275838786473238955596748317909777834341583204958760513415900874691911779737338070280200447101751606965088065130799162560982704652145272686150416079479191621585578223364940101388147418117274536277391808299422723296149694706488994834396453183671757980153567721469214934119160658503681943255605177613239925035413585607661807081084989508703253537678945703512303921012618980809051880266320843790203041724385699886645752725033917563514237462043691187839059020378568768066971763321157627302578736064045507592306242884704183175711460041411058933700416890944192249239527078441852648919979092332558846801867670187700759230946791324962692898551604256678540082188099177765222118668484499227274169095717108992033811661842897369198487916557521275626543578047515806900376056818583994559865612758648755728012388793881306806674786026512521291128265699908863336798758161608225961240932212954467272453163154237096744333880715992830934496089447523995825122271928484142477567431220031291991685895482868902334408971089868879233938614991732191399103689303777536624024405437360205134370629997538533451959772859177795155156642230205304924635628685441417624861658994932297540384898539827063378934330805867100807732859255113451025125497739856382394474243519089269939265116096181819748944609218838077788442057718683310997134667060560355390355123395343644548277773962620213513338360827508148744646459189251598878146304567607522393728733483679075551548264292661203838705366219811127716689730504487660935482880116315457104129047963868518496502536441108199325575678808743372296473141796060871194300842728595612667176431184184954568651534562676984024960647715485334609295582416666581988644574704027608215010475555231427018755761481144077333785364330119792833559344836868807415548366149650500768715284980059478814305806814443057806930833903805154712263237271052707091231714385863047997498195243825315400821138068398657822911183221169934225573007609263279484964911344868478613438260830628134040634458675715163292136401004858734204065843310322257440944145212066362676742013118368760611947390936481708167079177706836401340340176577481044634949652234210808986065073946236368710808177248468947820904826716192393947076469694577322555947617798186253444936251380745704349831937622467451293446145154781079952286713116249542260215830218435331254954471697990975886056158205913201170337434227276528946922254783886033913737383051025036878954920252029484404350015184512234049912100591764013033084592986254191828206280354425909482352625753688116739096053670340462798928880436510404883322813305420605365239309773840358663169662219093046838059826912581623203113752055084969550884826687618208600040989417319423007193782760130195621520379315704518194838214991324392329552396738704528255901150603382083393201146350400435944039474873220607642814389542339975670680109103695078224380740294305685618958844609734640447752660541563056517202229067374008641791774118964927952575724533121652682315169198164480236554261351173181221414726893215392781694379520860709565194298781008126799161704725811068889161214796706233157236129556608628148889835744912725517003589587519524127647626535426784915352816084886745731471718877764515750714241755159560636770610052139544710473909766842221661497209441261585283216618605758012360922850508451569944729703522404002005195336183434722675643137924454144712377032439408395005585612814944592086252172199146260744473748095792558308617832455957448664977683288162297586313704198137528861057316202058491121216241765403347998756983951314610378668757258877172305981238880923890745217470815065335024830642448161931068482641800456737601115508809057393750953141839747512922029856397021835770422892244086563441581297840548615304690427799345428869440294084187610218551670160364157358380446099006917150595249708937941827697874630630789903955107938418878849971073980017088364113597140051203719582996792385960932738071598280890587685862936269138226064490148431973237138863318307091160733525418378979515563378091126666967490053480630372166494625924988177761558883055940990749899134817658044947622627928967584779591654107557011991497434039252257307621938599226897151205795562051891244091309196779378538091136717221549945462356474623154996845650175906817018885183037452021509301772683510711313804005925413203375070595918988070332833838960416225586630660079603279800094675285697416473342411482891331048627670850689875918682826883619048806743118174785641245388269489390844141993573827194376091319748149425647897538692151435953423912854183599162458863698975343819436765454203654872864804840294249276359001673752501273219577641882367324016814020246600632426733742206572218559341116377891734049706993316651457864632150536657019670648289395832751609757752682831334471671258386618196115558773826949157543298867856618115686518840031140189759956728701694867679774269587116107513726258784001605371337937270157064275454970037786064618745147832824271867708296848634654426093991978020112561205166292323502862945708320521360335356753017942903312899214908062116572654638599448338910516408275185132535042237578399699588340509864563688440444436464171462175239370624377768127498746692297746026471180196070798542681976215460798967494668172785857593695804358699377822444086014758379356680279752120679173706721837607646758864979302318215237554379872909646307223445112056832668198354746643308972928885035969703956899401310481167279560558285061597716340746577750659734504598741925320982865263940936603120535333861607439939420736060447868571639763525014989581214121956057432240526350205302895169742622427876364347488465965644512231673055944276862752202823074643565879139819820081270103245309684029596401614971191233526559493439610481816085292421897623344743829933237895313489673854525704440171620852789242325458029936667905549044050549094649596715951188998852107762572014548326678702144155215278994414273908535611649866847279089808532515954604049378682434145320579987173264990425234260903705490691696019293048832385377123116737865466490314010589087018652669423213240971792483732395837407386344144767845998866920416849126566500290433953804244490052697256624536377235619080042295618285663064481683297097901609128268519283156395563890459834039136536304171414039499781870678706864605432959052999417312459322591535929874668818512523899911806912914551484868484351297673551017036177407804927181286321138305334216695719201457547879534428871013025457959124895089871379642978289514352643138642664018408557226194690731438689220952606703725679906580005165605550082633870068145166202814767378633582885775456954152184187919547392303249402414954242948990161618592319366307375201086170093423546309954161141084977188445131543485658193110475091654753566229434723367519638699461675669661223151837691633092759966281318858798438164813647186385564348333738480747987533912616573000479260463382108035152962658244882581162427153114172701328934562425559019276054696360524369240956167569290491530657964850873163525530795393273723238660990273288468167254808224913163567099335211214548865735746226299886591562729565837623894066420169250409337435187412688892737787799195537682698144696294020470348990877394455234151427392947048050040868329289797824502190119303425634962038025962044557670817509408824823056664890308801717269913817092058171011975287879865792075007987403903147748759501079722321447221839934728447601065797825442999513143413249417078785162315747003612900789667238733066654886230735715071775087910817078987407799411350782279763472978990276331422524581799043658316135695012747122600159685674812609559067295542513808530362076400460414474267951025291484833369930610564397233235367886046605720650116087291549921100707618874822998229031049624144171614100933756129984562707637522628091415179383122488959461936582281820238626005242294295877087175829148100538804171996360870496261563045779025323663697983233421379701126524198155868495576197779172221432103231109513834959811867463378754571605196870121101286720304753425399510360823479735033768821117080960412143187050872874025651407752764781412442668916295294055451756469657874892515338386390508298394835275106379949453714204979052916489556590369305638455804893225838757130268981054381825920160232007967759985891158054545316736011061775242611215349731289117664116347820458698045265691282054861022006495919573802880545205850041727496821548098926525340181335797001450775985263816303753655234170354370152683208253286138183827984467373778119312569594996279822451907831521045890353838812669476831593627750275029131217752339212642223145502389752779531930703355977116581207727531974732592071387006653361773659058850345618781095375393608934760079255333751423663315772073964641895796315450900407382907262742957442385501233370755659934154343839173049100305852903761327194601600502315037216267006889942943353861868887823196968468063528005678489925069678629929182187564014653739270465511773663598612199687152149425512695169772638604994793631997512913326834460870728719127873593787873525281597476134668157306959407308711641232793815519681062654754835506716997697063003226667633916137655824625484761956450569792728307156677695823144112396153060793214195349648532112619714545150208961335470124142925465889705151784032137283188025647626727388042554711577671071731654979030223942221088019122957698617245627658474446851182540078825096070171526687311195961849564028028452436882526466619681570533972523891165824160160769712055248864585135499386491603521045464719234186761296818058441597694058411556019765954494917271354638264195882160506277412570695878039987581517150107699976213913827218476675528842799895866350004278149072403531918264773940040923493146638068406203578236712662191286465014966538202167984624392581227683717774201852031062101907690560866215053347488710937901827185195304232672690819822317542926979203243977511372458097787551407073755681919438128339838407173673140902094516795636429472414096690452312894321678603649870643073837876114367345870901400849958212464623215047070792366537400259926413146351240295408512831663747684055128071289997467819819552959861012041543000525958555694544042746359416647081944487812171186559296507251673433266829793286446697793152231312194544254092668297108443690900938090946738620562853523598955428107136671748048576576722513541363562973945250469162504774922368526031701411827243019779134866503985786287833167931592727442598036680987960387235366824117935692135920148381166717434463832264669484697662563406385937121321572896611790621283258006739072831624673405184820892616587087483456585689818348159599181344247814577182733999551165566404301328317344827932427961633667717121505494190623088530134458021582325677935673753484361460389751865377369703680594352777559317747289510982661341580085934347381353066410780308556993728542277488776010620822288243359789403197883188000749926309038994928017951787751603908171903771784364411802347396146584768210455725770194586287233683282579881128447508601459725753169806629351793523400785484151860801519019815944827286129472422407112318336415687180529279530406837598886838277557339548741760486149214041469489798998511008311632297983851388152490832331749420491396446955610914409541012953721876529110232268082037883065011923893063456221663936173285531525381917792305565346841098461362455647664374059538098911134776332149993871643305419980560158264864043750860428148485351695190936520096265748501689537322301806683525869683738546993683996342354439073731759108696146022510429434891158758730423166255375739734519047303915959427290636651106232361385227668415614136449192953149935621205674566037938488389855605629571307524072214635107939810906058883662791343835648769050938834028099162883896306523950491246568524314810327814641368021201115143759313857918629895298738211787360885366258172476834927419020293492775089520710045244071878366301423134712559689928807925750454688485952721926640345557693772828730308753431717716135617251626427018562330244803164635586886724635769831310246758898481257192087064335726581001877456930657892474170532511235716360504651686491305970484689955069538344883280001199297224872252882941116215182449789191856083436560666816933439968593041549926985875113469944615779282574837635414091892777032575407517217180096642938695809652988393510250465556086377286468453229848346870161665504965328973149678466189900637503370326769608676025332365246105714808776786615530443061642083424597199393358548818800865937359626822424002109994162742230303478574932878080627682528730190642534513977061508290424275735307296886917905096036008908189875894727019374509969322529078106753876520945784845150055437290416031171699734550960761039816176408549995871400322290338104825798732897223621113187289230435883915367801647514018356455667494594411226162096693094108716009227802211705557021521453749670018005564806730048287700199850468937680417593338281919432279255881539120629926880176822943701960969612340529870672306240885990943263178018338054528393449653164736121694500431428264848548724866656489187089152430381686618738911980055308196886302086115895955043249869164819757006682979169552729397014387780955179466605049527756761141507477073291018851724073529011142022974643777837350984601590286355849050258253287081062217898875724042516569375011585655543300221787454514525929851708683119791732419932402898321454018843242592538026326844621071212758783472174160389615322154885423269285198107761479145821047791700357891815710546575386645764495026238465149091900237498872282593405865872148136437141508587787417794440365715685837072625251583273375075321566290582887830942338667226748823683934136300157866689194176068943829652580377699283996784894980647936414333617155794659746157503238941227566996482409619486514713873861172111847403876280516256974882003574475228203652308711200591892119426931986654259215610787171083823507796262479571509355816268003354097576433744866030207432526527736794945771394473142094086186435082806586337247756272927414410109561290066937731929033899557083059389627907575750195847630368795713437505868814553912649734164216389610136766573500788381059522676738737379274354317187617428332025705988483417785753793234325639442431842800519666019781410273498248882693735563072330516348543813758418352292914417761747673135994126862421189556838891921180093631501870788077472712064716366381586612063030059061003515452775200749135796469616846015671724235659255566829740433560525167108238090907192252932317533402412933806645975594080913156576007635793823083592429465020395442167310827487780475078684764839201403721798945837537609050805685530050353845624354818014180699048182395881776207850295066364080379760702150134427386143298996955640334764180804022468682622209200831464065836123129255463479238551340644855747504416003486211376386705452608639134911924881233106382497992575758209531369470994878483860612927971215235289951389344606205386053282801781209583932606905076084754284654352982779622097012238756214258072250934773550718291692495911202217542673158859941542639259890291509316473783896703305158378215614850968324998256850547297038458215906853424556125649183467985896099738846278630225517079329836618871116625391520206606488513126360938187720758194247952372225952353921098919860273619500693202872801155881764828214918012347837045948030499833112511360508139825456325177795683430470266149337593580274897225080064057022284111328118258255191185961835565477107990584842919913296538693308754720902971882403666884887188261207146216109549300277489317909295365803932907769423078278607593576919479043821937363609010234049732101593541265271024765685326145893134950485610820968566066612601610772619534743785250219910025922681506430182858168880055316350983608201730022857620966296350371586745336334499627251919698180367151737529484165981150383389643471105991166118028979006190171307777151305117090245851112787052228752957836768992959637099467854137438875363879252273251376757020135532979161699054253532716195505368022383779329400401851229633232749680426257048206477032138779383693809209902255603249392826817787972081628480706351810846530831426319663191002037655817733407445723756686160415556333502486409637776599905039886027176583500906411067058520649668932618029959404516331583690564439219800801899877356279367721193565055253416290535306315550148047076699270964067609713614696308967075829623741197647797542961855559406537721058515987241514268719693160697993417193464821035949826334790419441130388781432159275885178357765414021581355159922966332169913718555533647769572259753108678926752271505599274643811731512533248969813344952959581781852097404571483495352926625138967310915479474154551119978848923221337543686324259064561132192390033698024817545276235726095499810335927757484441895327234852496130967050460963172124651679329142726293814781925220229016064104008067954414805003132386675359244539122732891933877342184606510486536036882235965014579603926446215894885654793525108986923279250467855748625536947343319020720355169487351302727604457620316048578642260210900353130251560984642023230654765231422373843622183584627627265479510766793995176521397007851259700032709546766946796236732917643989495903681672502597884746832471477958676544207097269370095384303292187985957244443873474204294797281617968695843206584997429087400270294401753989308716318322182580444471235956926973020437989619123054021903172892897248438050595712860684447119232443167685094619456210574476486576882000114200254968888458535970867806747125172657550928357003914712623796923141595578925972458281720876650539099530035017366880462003136077845039230874644523783675847556234774301885853441513802601079887660030773983010269250481310971415539802748179990017912618777921089501062161265190264191396748544820212604384506656068670636535393580336240564502065189421690460478610978396921830343692284775305049829974759187997148673543069008308898969538934381203353752453226150688118942678912449613233502494519619551843246352597249110260732903963392357683114197616675969687201322845691032504839357590047866281660783995285509380054401178416732756996171650866884395392801232605579762656210779465794555674070388947736506066939481508936238678942342857307824954843910755331715112337829116548683553405094504716883796899324553156731712988237625215275211511181303257571834311467139488020806581655600432684309929398402258397116341479765095635452272389893205522479650461340685160533060908964659826512689908963593729035880892681513473593594876173813435166127495360737818170937521865537877361414711280578042251650875115234619448174948036827390922372516664078769300049213458771336080430634108439969630562469174890158972180680883922008812504313683918749838770384214094316431659181017339145540555276414605770381567001183026159965445920158161346573611900996034345223832687658450063313947278602106805900045218145365914782837068984357432180451667684840239196440347546930387630428291330632549645655203055727702271923824050085709457384132881220383851845263889967309532752162758873978626894166772172335462916309817028625366923806243578565440916683109630711746760785842305851868550866552719093912378254657860126047769638250979427234213724610221095050110050497196417467433018189188406534966001047509616501443288397810422354062707964717239280593334731313406807616123757426968402659174775702734635836035632826109345537775789451476622438275364689012635951943080002384095683347026660433863546536528015794834420703155802288972419265951475761775205768826072300349021083625248847481536339690267419895870004947051084243641939887718013466290718516848994749319251440612538074309625603575426981554740532469369430042637722011889991877872067407704234801294726350842760560500869203754858352375119134754933184811546606705476187384130049756921260904709233489336432543274760793932249712181015538829547020577187697867554179971337429630857862228168006768046423904639959964155731239410000324017287385561837488165734495335543784831784228117772337103837649426600944066746774659642258371584479848719435758932675394417797621128816507810710121144225241294203079468964631610272453405626253725682545655946031656233004134056412614279508482907224761250486315106268883777265397033651602536342336651879221435896551372653219855444204255191491166851829497231813202728176942199089010383594111758501001560912956750029964995522964774749861933188607068867694616744029196326914642399427282050183744052354144621917473245913232213704960924584129455283281187437577469594933393460467959136342458511801697298338744027974145847122594281763558334594619409670504267748274489488718576364206307385640288210451609015346214508076541688530210196023501439504640575419446997422801206049798328279230468342554469906412286574909077804593212162275256029040539056683542860594713178069958772171106535504558416622124669468022179277315463125264780770361005175836160283106047624138564465040663058436587546072561178276180448591712951866153105874741235977568917558455797877212321237155417487820184696250507276214505242222933577953730874208051662565835408414362434350497011052635677805390644890674284764239392465274484208536352796879768336633144141836611877582716665572962341365009427534379302376863527945161652920790323157881720610576751094171823263999046040382491641403529210476242645823195080414118702303215581874701814072974177824242835715422449018880738242940497467240710596726223891891383325602166571305800348748141148378196948886732582864006654581269050192879416285131332516656319317214456059147196672495757274478790562598151386946481424109481919450882061267194113699990882694884798688351862595602566358909808320678717443663635480579122370553659099604740964000177676748949155254924883892166858167098865051260713401595997261627756439235796653890862199079091267295620926598487523086044453005185765933929187066799274026277624184334595777120355367891104521645978463915721450827006712561680058713485305828984034339596185045744067688098532724262873942124838546177557343323166389639192852449021857679272250922597495625548789383129593884661355892805691521242118716155517542770294313891538547687204983300576527082985526016677938213275070751781422963197656138988183152699501926868913660171485834082989038189820501656132046579887810420281072724366760512759103592712070394087038934703435899386769510460975207966927752002495413223402130997384004625199024118886247560693934771852856537581923368748942740865434774062793172137781961958348119829163001227319261147682629137922414392187332383914416287018495559000806362609193264127250177297205994109454287927431917198403604834459839501088854617791970059055657452490508039843456826907785228442294816884227631349842177745259030706459213994000358614467699014737904376340150833063159735283599676845904497694565741876615826705692892053096757461243581475583543293819517471994909302462226604914535227623673517858773602342483608293482667892376832192614271872252795767745820694406676586619737325061080337084948453328833832614136646522200054554211485086923505325447349605205524006791447172961700117517206822484061370104515751916905881303376851848742912703267125571897855447033199150252330147434722831670834584708053871049080961592785179691105577716505718633706962939719654799352860632041378333829241680606682901775194947242646360324515908717925879082096033625613201308989635510062940471509227611462577693087899055490750953953387968376055171064280139490145565329322225771401780470167438021974425482950303859337058369638679848740832693503936928409039030670132894124461880147665908360833870765027739428337143504747165042511210121781615437901744189039163250906146670505204400793198747799390935539627122901659875671924732618089119967075444194670387729923914947676312810472610288955278647634083623635810910028309364300242351721195428525349162629441173333968780980843392854279649581322343742531071209664668816649797523791119361883449987190222504010017115695600681605267528158281348861228251227306061129807506044713064728859670314659307714901464734815117830509371812959268707238306257125546128922862918892447866196805361842746700992045405351321069859993651528741309051179629109803330675466813483221866052360428923250187332293271280613205692776030255138980412213933473735797943506836725081811066643492652638416648676855416102954452869396419992427125996717510940764256765808171989507459215467741012553917724890870061968133054062465851247978595028521875142774198799747283718390636251372309871231238574681912391936353411605887199505968184897106953771631482693748924839907086142200577259378799648055395517751604206502161849699847890824441875900141111340420082771229965752907053018271044448464429992232939849933893110611472165728472914682318300950064352190169382819928287854150534710089645828688810231586790635499736365053927352441232997923110040601215433958544648716995428782737928109783871990053564537436307234684302350240828560996110322769517727679053202873851318528563392205365677485186193502442104156903911977034374726463780287259039289027969046154711554524253744668708940737113083574012503725856621598273220376366801619795812596703034064956023864996493761416145428097125746696272824150506157324685458435081411001657546954463499457866641787936878671519080188682471607496220520119935757829998906149449363107422167229722862857269169522490428355430790389658834697528632799682126410351910706960567231195358908295302085863920040897645976973689169489429369449830469696955208900053827352620110009878849646281379305477275453730876902611898626862949615575548724458354340654623753453237319709839051028580024679159768732038681537303392897123038655261610027608702630748296117794611044873454746069764512002349281275286216414402353059444001282239002862420265951642166773810116150679926964444156738895803891562000578482443889909392476550325154556916614522359534488338400183657243411830198314449792540062683129676151154457620471245028926705862869626860468952807535857003984662348933778959453096083780756100085291534748079499409535913611960752383732757592017694871223702540191272130193179204162838554811891388494766440576936270330561395845199892244239483542491276777173302706530286082682586279443259168753235372475318398683395001057610526026039228685623612810708120759142359307918885279033501523346334452368484026203754305519816180006632723877499422223999350611646056695131839585823777676478942683655638431307402557962855215873974108074479504753157415046077462953027327962098842237044628551895892781047146887413861102431246761391769755223427082162554728724891282006459048890711926042142840730785673452996999815588129266246202619764738816084084369708270836690168150819618963917514187916758831339448768949900674156567361754378714108320066640220493369163819432215985923582570907272986505802753119958917045438032856912901155942242822732458033804940364633502837605156242265572700491828691806648535084324631177475683338787451641138719982672833563556545444333751054394661601835322195523425678940997013810854276370235101901786866965739090728668280787105892077422558483025934050080302726378007519945728615615317511678320795879456361002799787559794122589437210479089785600097026288510982979437211196938550519484434447345676157467592429625128814006908102429419832387474788726706947641738145771924859435963727768162066764798086803520943523633826097012111921102122153632691579746760314904600476450231095039500113979862539089693479331860253113800871807257120976019597830884111452848816748182385950237579263334493754610551026821556312704826686790768912391830075148606716268162189252465671030424928582955785144667323247997449081882653065447998312921582369241012153616819222103331641516586394986577016370253057938135152171993741235990366820364888365374015134816748672080062583976519096681927071713914309356639015276857167273904881340753567934190116524787019317877524346730240448903988235169084904063109293335750511243173814887836971427349338687683090914894074946901357635630557234005378254659246416875634094077591608144588724482610604557039841177084226849960085539220929171796272993662734492132032507217741999510690300439282348762167138730571826207329811674328942578042221891162517564425167111128340514430656507114507299633637994339443706180764320154222021215222761773900187127330006020743111171638930767809363063612718944914139309714093108561754174320982751469224209097644999923018421195071069660321326572850864030609905533130103628038093309853547777964356120341282970326648181934943817740663213676060442882747033913405075382262391017602553642998059150409431183535331841366318755656975883532554484013347819089207864188510115257462720725367334838149279235056523866182266612987622047469827757816919530111679535282732286137987314972093680783342405686298474239325756545335272390264749094501841069859243827043143643740152248715787662974296068518382458312323597654471297217538381965457075175805599266136143762638421071497238170724439883521532440397725752115880025657315996917420350585112841713663868989881721216867763498946970495109928676603061530237953713547458166621678661219623249270716449644481235464249326186120836210969613206272267842180087989644800131898030883402708127666915006121327055554689773997755707502297710162651269890936468021217799402635477825572448500333897808614139859614062468398126161099168818542119590833469514166346879292287660389441307514048747202711018891806362907651546772051536094680977932380724467157434833807715010189749500860785567031689175451346214911517757808845466740729364408604701826347592540532768852052177544064368019590010423429069992729123085058268330087026010432101293617949597350536076660485647641319967042142010847761478489815744332942481298244880844413619477791441810710218623485860192518218499804733063064985330373140355778633287197182971229987419391035913950275495582544627318846220705828174129024573947275797939108104913589392053628074066998579756953826713370992193042894455327116617140553279496859716034740865482507568564456748648038127189311148232415564418622250097191887126526041704153751192595316242185482727266895537980728418235247137056724407884235938055578067280404917898351989577937958024987048802726009744939836366221591637607796308611169961498253730019941908641175032342414841745479404928180941234834123244578151728035381034702100951879464826806363033075052720572067593803200381093067282228424906129101903678976162637593721151378296609667007670897918269476602597855660535209283111935658551731564687400950020086109237593086853756472710057682184648632815463811307654146126777142741583267344854586022812237462918000083402674415733475371220252883019340600424013665166534962559572956679119517152389257012786742729395304009888516600792888442771364388108524256390341984104198528532731964830390903336189245548573361677809142095318012195047905650411354216033136130394999072476709408884463679898182270928110343130599946310467930591967071744262386452581050889625835382146087085707974322846201460321348398593418579446145384024199045240521428580547582199001752577346495692610480023036507357164644645152949618127560113046114152667109817264802042722006757696007711041839883241398326874685450798841453133420912934903477170568711911257446737188210664228356406036398734024311207043754688209001918316309208964847504467303310390985633714269031183117259013242444971225662803050333134067911599860830146389474940182894803015206882227012014388318006831065508227637219472491226243574993846602683381021718423308992299036147379577768171489322365163263690889216499386610295640933696735639265772558294530391321664376731151742879084344050283108501396137354800680712390012785494403702650026816542173883119827274734607223106221343603773068605542196696086151371794505217151723082686099426432519839400192795045532701927903571023935193947039773410953374836425612616761013944573232519926857687309162716808206964738192941165689717787013594300985862888715887230193515124012295341868808624311681284865441078261430089562800926895823295189782318859716619514453220881263803664566433823306381986945114741228728998835144213141265507915316333733399806011575351570970845730840792481432357477764642021488883275560236117266162481717488727944097672469836993395299162148510757978205954967861177812937202918298330677941647825614066130672050045793611849082773961302631358846631090697814650611485143689242743588252087597885618259087883127569666861199815536885743343716349734057377361189721071215698563557548685774238894060295295157767744875848105286054232166692480146567095879834885066492978158139765311464575740221838506182243876779420985375000068676493789935934881281543124867573419117953974687987715660360263600925642185845973714312905129663303217348223751318538438633405306000960351851337728201679926463750364300115024620754966215493375643579422331970564330741942954490339020960894094418399105668257245011866882620089642128736416488820380041061762698670373740590202088950210961193448175135266427775529443914683967275862943729299651278316666429245638962485427600380899850361559116734572501874377903806748341123771458582154477488328332773954965535847554054991005436421622090153477358357106104888173148643938195800546194193901401564060664783398353492261840518491091664402682812762623893955943481162569604763454272694546912349346802820406975921748242126581207475662780402944678529514517318904770711671836665813801594554820810505413832559115732756980054858616808235199891764852730042261944584061367090928208556582352998340379677654496118840291179214700786560304447427202512070954613361009525850760059381038441604752239053409897360446847040703484443282883438156003043505847273091016418944305644149694954671346108241232936321774606293019022567086561391441459604317169949549279589713039616608622079901585008977890355966712998797490855379031513656039585972379302833102913692868528165269925945243340304476613597880005283901775977307953647724589982171482775674984825624113637725622581064723675928515312612975006385269300110018623933363962443637246403437064203077259117323643667867874502097779021098765822601479867308722324101983096010849121038246100338183024075593588445317529423414835883034512120972227735132923839382470137535208767682209327390498083034330328275103618750603993870452365436417934875208118128801582247685735226422466454733655146699127976804006271387365001336983032016657539195819827721260840634854617797295929977449150162874543226047948589204789713925025215219348250414035029396794694172733106659820888785069820088187123619558402065577243043233922335561102131167118643865060582174954828161132570347987365225359137371293400467856282083984121801995890102485536242693010390324585818685877482837668512273949445914044792237607990169526259452980282159321964416945801772338445965524607723932761700995856823877049428565578131696662320715377417420212544916709237805274742582233720613564540081333880711603682869323607666004726446568144108072712510500672796487608464650485875841573543630346430901318916612671350037816971341667485300861025811371202733867308888127900390329763075091861640945620307167226120949258690687929640522140502869297992596195661202301293446858854967163554934001512582643499202114020410788671062604217570850446661824438760705333646909753648128108406102033056192744027341537480981769356610223332139543289754006244975714843581806643250616384436378142727282019667827560266903086846958272526331875998245147780801089441005882794938319917131182874726258255295358433108421005100841852423781473142665732817849175628537214953535424294326671022794398441541598686696713056438589830600526072257565962893115152194529193543190302495859613711752719432610632462275222176466736125407682839524179401077178982630806558275452695760312335648399441652402346163913868342783075607556695879912953651281770541335311994243126832180447751329109718078655045030520574040595405347572571212673981576379474307004728027544591650000278728310269446670114148165364418312685611414797663062515907377028357565770734795969490731017131268026182481313857430756502704122134340007343671531001771868059501329213972768967633933042784192938241063616221274441326213834218173455363523175289954667425867122534241651327823980984406669279476458037612085998069548778956868780613014724492676252307643751359076060079403597292200837915636663817878256115093541121041107820948303247838334070480283525390708544573473154637771511664749936554505336081646701223995828970792787600226319986384596141083446658580573089937709485583751797982314339897481998230861731094492511229187597492214346861022827113889078879994230941073209730693426174352510482196531020192257010901239887501746970739814332396133543993065515961928193324077169154956425100511820672459442242655824912853020043857608040028219617969583503558096672169371656346066086188382247992929433622027575036470346581991780837135112996870216338724606599946696283814747567669852510428184786187260379766183429681634630746382490443436065796241083881632356331624197072431749453857472877669767087570004868468997030376294802821246032762368061015787881455322477433133975110315324029327721898558862257234372745822396364295481778704211936946705439303381005758793706839514082489245249940711280025659308095156338226870815085163265125021454929941938220346554672419236178800770456464939715363317625064509925643208883598243128938978798293129396623175880834339185084696100024061071157549684087432999782177043853196634362001646210843197368503904803363123226619182041464417715603727951234227754972567648939988698858229720721775303691633277650015202783828203866973730087252118018879388590995817542354808112791668696143476857354693466108159770886445640363457370598444613723373403441795836408754465745620787690996226526475731869028759388773104109897544500596556126313589633358917098555618505910839071143000113750074131827666373858773419058665776623941074672883546198711593960915638534267543314206122554412423524827214243356106900987424213324956911820191463332094573162175645382865100884768268620770882287642371547699417067100119591294997717820136128125579139908944290125472585446217323761398457528076602843263941505787160849967878691311372243151433747395615401859397075424831020878474121044861125830883982988380524705701035329081205404192272190198441318750828383157317246088524939360574126065198801207056639676972274767205120137791393733746803874501803377099109845329039945354980759446564810731966782182601712592893626245625774554516014038787009197460404577366685324046707230124449605854901456597495060572007607228023774721941972346854860634262742931784545398472896673598504584546348549786805450180044668062932066705548606747603029636896708442674360173002281363477075878147028994191984293584146042497035257215010455773494162656466439065665893700830710739906851999480875413923412794984599733139543740104724175490198927708589941922539565038436519033145791796940361821325959191273368834052269184077255467888918805897370359461872760999564313857701072757849202802871206461344881254744998683243467458243410855612552592394730666816144042613870139057614909845575934111696896110992569766004510589991900127490599082608614676694110247486161824687283369369911415874752106557836984905504605682431273214816982667333889581190174107009366979850504133631501188671023793131953374363984465726183091884773755513873071420337830166212882527211171685327733288663278797908949529473139932605847086188401468869292636533505072626108764155867882164068086926699953864838461294771506159117064406580433539703899986927214588103465094714782024819492766694230428456311910541674092779940938136000744901375142499533469331049818282081899054180018169422629381712289061780120661540322429886073371311238528179413197540411610379346329473275922790922473145450916281675254438402838437311781493090497980711894009608358665222204265977215298917092720529980354694624408015422192580274270190998808414556522838230523335311419601745796017195337884221024845200562815758770444423944303221862647057643388015738745494571804583066071688948522435278807523388834607027805318556357805664620906285104965178703176034569311404939591943625805014585016709907260745979420028816845344161966261512123976283274921924337046214303905298460807524696383464846482444126810758885856058155828508165704879727814978285416972029905717282312655668635149696351558208456755518938810898710534480335060340613178192259345055086604813799662278792633211222089737078446456976571903762142947964457782761690904685167032770625739616331335548001247319204605145493029446271982338074524753538134144137198126947922279270427146409087943071584694769690212263527584724244668220319621834365342881711423633234834859902197556645051781237338789767015621719887003111627469315764809007338065941261664166282974862507296079068079684091948405935150069157371742502839580944349874859028768556597336023570601867334090170147653169619585227745263670359719611434867520515745356772422238976234510775234003800812425351225664021975802166523790222547324398265935031306460387143871959383650335521402014585273109015188574762249250597727802536498623159299274130657362565676680411253918730034644093516856127297641591800294314091394576713649931450360683499414920621723203846363872684049623445597075948106454491623658578375112752851974668705909943023586138271204761993105455552569450351342721997856861976806740411669343009007512426632295054707833189733840545790763061723520645112477161060892610176402542513462851477579680074676848043368668698269951868657707788812891299326717518636041527193995096722827082097893089039325603312494068147795434405099627893731081904153460358674553312334282129842600186120077678374521235353156383379112506218511578926357078909307099136342928904494448333049495858295011549069370449180007708964806371111579709144667461952236395925219012856401147671489827938841986845196696650080197049453334594309145859658695369129941094278582098519078393198709593802195732696888718963922870879200616594601791604769784303311272904085671713624268040923844745138254167773169734314577011519526108104100585234356353285269344740349778927642759241415928058480596092466633989909600458810830274056234773168390452546109194039850081288084578772660137854934266716616196133242322856045357018571642864878796559562744911736783130319737804867771412372401661461895876968180416785358315850316035208641086855449617262335250030261073693073150948267524859506471076807786364860057391621225268990509793778639088764216124475728261926480681914430739358406858855339933721502840555671966242325112261209074329564862415283466494843888142447607649799128313810613790017431161426160735257730578987210937045452636309743793542085977198276148155083182577346025923476125271777322160960118368619186041270688397212440095594585470520743271154946404954843778590039303136016057192929971716905780839279337314309790562995622244253451960559182957571333547910004370290284715597576142383422053017401089930900899103371502198572806418637725053628933356364657891664105124523577655515564609531931237191432474061840703441664786534489441712669619449469502809310861793254940831828250196336499299141181054725266117271912599700892980468091336813769748639014643357537356586914923195638829424907728661234759644368366511118827892104316576796139513871218151784409253804641378836234329218629257540137634327478820109133152246515864703547281912090382795358319368355315825549811604749563227072438210832843050948653768764579436369120554691260934113513147971370142601104961704455227017773637860988524352109934401518680500350024652619672234201338964967182671943270808184968705760781817232344983434567031782925323371356246944087003412728288415017278184887715046922051962758637087736990528757171370970399412001783392046460248354010536593904196467542777401760643018652654731120929196447195968536973324855022196701926194352270116890527100695987481231173116187372006113831602927221941610607864265702429155432681517759108155614234413949124450446070414140459289439116418074676121695618772545141045748238993735766050022367379298355636861530002178922698522942123534536509740607525840697868156375918876898237015275518560216028332809346430836163618999132169760020402716709970197093711790822930116540080547609769298846972641534665095883715685258030299878968255469447410256037153527862073238384347269932047002276838353628991063714873176764667208011440035843251995751310468770312224102786952133765939112271071450883084513395088985736437905415707560199010282659892704444677171685691709825996044256642092241173952433015641835874307173576091198220535029562470907511508310317523480978032178201325068424700275924304376931265418481114406883992480623747607597238485237410427499799928647691464569711288480795699650162413539276302071358667524907036398776750048746724314778842767203776552857937730164578533797037431911615229417961294454660177538242751957786002326543622133318353426008582943843907709362292769286301088693634411593056990834001745828867831322951687261361069909011237378279766373811750420170354776773982308849185024888731607001681872279705374771727018725115519716184029956949003234340946793592051552754528821236404319421893577882525569947610947092042541722676218743117825590868459416031433171875690306640789791746542159487787683241771310258061524897152732747633579416082693140706311867161418939606279085256340032967781773710041977289242261207604805495695398156592220666438280083480628592684238744250424726965989579598843576526253059373103371574411037348050700416577624550958231724654379144626936471748065038830217033048089699752321951704890456908195220121935580131760124034004541262071407327009746678673937865794228650811571057321889362495311081510668890038732792107156754652888921341364655359821932122425234760876757036846659448579361520247693628166216401743792253410915762772402264065591840636579912310043040214672272190626167485630677533060618922335161915472996608433273991858540098894682490534436370698775551802451268592066130674956836541675124327655536360065455217903133235986807471536883675156898402130115520843254816442532251767613393843674836278256246201820117636534327404325219104828074315135281455553534280708562653466779283157525019616488489132630513309362644708050761425957922349607462654589378674176521702343410026470874556720980044033726606681868150379678496232570326490074580788436818318341588121926119136891539548280545019442826256635512164261479506184022745641773533296915959895666236922330771830039988588553132731138138572567708890240236236521857966773432664401395913534317722662601415879468796155608333422140580157698694772637770730841862456810151066386143444048388414899257920293805452809000480901970973797936120727173912527999078519940181906689932297502063024225910089033893390884749818625674736059064262969252585401532925366072979787698206758345317405092123685994591883120929898304367130416879303500826851278798001231990940886435465084647418448941049578949810567325305753406999093423565319907257848572002719557733816072018207909001740618337502586881357863472708363864547145148205212267885893739094349596498455555948932353964821353097912490040130116646463041390015015415466273863589758477192623464637378732480470804212345162495548511829229912844059674190033749168434790798381609966039208624600565147808436781413359605743914954169373454353038879490952294147193986118429555323693048797536100796280157447778273705995959832867413598904516881368384457436967433478730811644965039343165770332525536352522906728923972560614007469539408379719407816540280837638299140406493909931426191243268793334520623919648259159888575748704440064504958389027134393965267968565110357156398908246194511875593587761708082127411804811783501204611911551654558674590163709216868503503864763822543230723617118970764905856409891161836387469104469997778662895100638870666891542308633174406025435736973763306682029280462785184166810154683910462953436220810073535492488865753938952984401373515872119606951645568357723539984902941007411549534100402390313803220924766287223055974886423168920033925499793502764195701513334131998754987389255271818663697756928388196745536239900678796412448611501581830239859182316574357584908702889754318509009682275429403492722204670347230701857009322199341567399883873303907961195537528357395935046059722781110173416959803974503919652382044800599272796600071606068004349598863093956069275598921926985467854340439255838617551611293839323202457635925440086960951603703856518502780916463615977680815719294712749531404943815035104328332368433581219607737016514072035024282608970454531573552307439948461050439443018389492649149920167403041139492346944996893053022640319789762663273670119259756102319107483981236538235519044615882683696729385409927178419451281008234275294870538097558243527333716779747749408221311838651521057699251903889884335620369558828560695022997343884003066575054917767412458723136118725825396193128483851023538093333173407111384879090196016787139544974931146876375914263374221926133761770412760013206668180634536600634960806409847455705697180637081866679258721815452199522173328073915149568036205485779453278032882031260245168586729616021064229799891213066790973665760460154540532369664515306672473795343660612115083052681257369214128327894347148257101087044805756764029865437442193975146613174238517182890230892950998561858035649866645806637891987871355745377822807561368932966672954708529427132444891646762303203412548043878439901437655863696173589628530129780445285892823479424415065449344791828846046193609983195909136325172381386307398987652910665837667116136575793301581457510532382061458889572939625404797427964445633660920486669872050522811038515956047139646018410032644694234188783349729281136829775729976757199095312927868969350069090374268358775723190030564446868286850921783175079998605162434759554967417765010686435274272819158037068600671768804555779994644836464550113893675529438979845659784413965185198600191085989963893564398678338349420835562652870200367221946349308878606804172688990251991484269508166036626785876754535440944027423050575178406727220226293867040768121461586368829614789858809212662857565852136720260254960892231578028906685719241199326461016680875920265046605010385172530800847125352383256119251310443278318863127478293793000805546173481843590865243000666996059693874353940773333791711265316927399312105771476645846088164923561948593916166140878912338245048002548989305552097825299139571920249177806493937573049825068917761135401620527513326665263080791395429632222490006127078566702583496665693819998702175628086378609064430929955541354498100686521785228855638269889820211065708426716002908320682984091054074042061638292050438163597055905024413326544092304423079667024930371407135000812285198699429166336156391984439764045278937530755851601610127835419570576284472155509640353224055792517936504139239627418960198917421302670756353997995705310566028524474465009665684780415469062893763962445902148670032839327622779923574936703761243020449820891828420695053662386567408385756922959767070865028155064930172117523110761718372363159623538829100105612961468830166119037651154004554706278569492750227017635694128011895866433497075521409253353720882951790613595485223493151309745582781486349721575194625149941315853206786242517234283510488156094346951453420373701749899063530302369478706251601212511302355979840431137228180422636447339217861117352611822391858704776970399568518065561917273481634401615882831489616119435975875441389568854543133679636678009186205073949740143979158164343704598004656495500138930453138306671908246256816389366645664006953369625306819966771745901253366985493938575200696012567040234366338935291914631963698049518635187339885030469620997334524926122295656642406946746477127209300361181451420706899576173540299683070348118063372945910371147793845907284777032969596795243678042635325111018572035611074544412951683234679016942466993915920871354046345561660259894904739207270439902202672107275925680741730114898908370269826655708863124052307978546749942026559050170121626715294891130167630133071038796122090273371579604113485728370489340621040206253247386257985487124994737065841957237124811219421099081455240705730285551518071216766697358177827207274551673275178571857335044064757166104928225152479421278819507622051699479095295092635121178218831395307386497337364755402905629344296746459586431002071884281406327207553946338249705682589073586923085602975326112632975200558002896368587857909056859978395231601625292360099740580052793609469248024826391013327362926486329671763152235556795873420540667784746797295619750288130611521883576770193436306623719894043387704324727270123871998016300412088148719829111960702650244319728029869856101651428074521211284236715541645244253273211478239041839812097647207952722605318289020066009933091778522779998288708958314902382992939466530630711091536201478922643392126718801992472141879214658895232224180121407245817742553910477776651381776316287798839007967169354562995597412709500210681794923988276926350056247999569641996152844326867775524423256647588910984608453666428288012930133238051156469371380969981002055868256838279879751377183895265123200012561003948471509881325572146431314518679692946992303021003826396460038334831501797984424842186282576604294574392340142709487248684435545380864310067754367951870201811887510364715362339081231162756347568141595739262631000874034263147669073383523573142907957285316140149382104326549759954742082771659274677269250196498170999414203343671797848172873750249365932314698340803600923159427872919821650671687079831187679679698243176967667609327123704272193164417868543496308659741125247456502226884780426839773126082756868685671839412543148012752897080532014839109385606480026101447525136558362291612773792069094676189462034873521331653267876179184707153441109705908972138321202605711811471026164451102198868488521012766745205520596514776585793974228871146117104731399439773232959116020189300731983779559687086166790197686658253411597289669328944948723560020511184480558207416309661783076692764371345483808295318104653664416532798057390512895437211545829073332784946006166399173414428728292683562973886888940875577256355157673998802911850286340754658851508433086559076141549439695609293749974069189360748032824845718015477292814813623685700951715677587013660949012357465150872190336727531207823386930505647233554084471964332238583997788028619816958423903708094881883747022453001700164380132934869624922060794337523041919770514544886400502445550096142124710611383541289607260456111235526650179181188696286249168021014491935273468844931019868882488832870878398770526841529682997203832127669147616871118295559823966938261602799127447400694604829189218833633132940652716218342827435900006926518290933130423034165029482135022956030203636231519301675071959398538257126988193315206025496858176170057302844720842585213766961508418367466178193668565898512886149684521972698796096224749287243894059793149109933999433776230703896718198023494068084473029514457487600975094124861605056506190193046628170509189035254933067240758014163291784265280498242175728501993464385563048026858747638216075281076065932967989939811324897924070308265991383719275568078780770075098067059420615371720257088090161441722440421790257123818832159298010827578593388872265400452393121466226679164570347374406586772703984190602041860563106717779652266178480616540325509275417332615213577748421349107651020914139522274561402234067303326337808965650256719929855732814282940346412209453532064620606768035849573936814770296814716350717509991319968050046055461000926794816561827008772894339056411970334773750110195151398242067853736681665343247438412360132965898642487617702855055905398582840792004832033783819307271772325973977251153660540229788850695225582010653670213440837809683009605365631781452733807411120511897511674821984363378259008842604854638196271280748334654042095445908506568599228087902031274801328361348194124416567985507457709870767503528113806218548963319652671378462400873278402477841432559666334405553814609570645533369965352534042587380480606617593811245459877172799311507682937076641060815801932951438012486678418463306871872165534795235187329139831456939345817541821614082906257910942679489651643675020154623888799860094522176577038329991166677058150121829743975646178985227169797135797417712614520211740152340765120861401589570433518677484334831050209139007351021721751315312170259481100842919206968418940072762816418738204484414396735496362932284660171574169512302724679733339925898711186066955845929643680534227589568609888515658472243592505875152102244293041777198529098247180347465289389538031056965744029172055169151119221614028975342791732735850608721578925119679605462378689735423932346604949049116617497550529833153449143116009715852704465746444805114978029904612143747168392076254106817859916595434921021509430714537030936040064749620573121711135893909649536577314778353757702810712456285940344810842557727788190473209798471385377223771728087163374373958132250539270460151033237188344986034211210486626932587209234930274152387727758881073738532425178427037909914286423776615201438543409274389270927319744361969067536477909721757933113923464884699299956334137725451590361399822641822380600892986805680093264674375309940199198335523045594130373819849729957902120343336423756371267873126441164695934274101399586663550040820915885538593180782041607472302018508970961172232281006015779388116785901866188104563145791701554335500189044032752260915682022091710745397763627348494217401503952725247103315724940779627580037246409714809168667977859685058368803117125228360033547309088015253654595941475083498833291536968178214417198108486178253151447606342877116161299438786330246323731575872391342544108949747991195316293217967463231712253599658763248541223661086309002578810775720431388816246185964684112536038672075359362146607350707040998519481116081839552607290950277512357619709518561856491366013738410875370065353086735484659876483610341192778142835694701808984082809642951126327023214313449097635736703111315866753364775360955485715797402752396363261562922168610412192549547904477455045518954816237505647257214605404248191470433547878802513624973800707533868723003770311621634342331720195349084783176257272874370860722745798329747431174763477078688138048385572937512491416352806130788261544556376849354535552806249488649033717387328919411350604714167599651217667575652550907865139928780178651158028527682688733273513651141576190923926648905854596536977169611486802494037505018833831257302836470398554385410339660180005381044626031493491612971196121267734349481741686440733082442398818089156490758673770192984124038193345493455768064113074272517557165400692504351843462932070125230658176824727356568965037893371201730935947901826860809890388511268003533486875885895777616158602341074179871716289250773444372033136423939889350722906448838597702658452123293317445023849729587055641983813687390981135458006264064811228169716189977021591984686290691532112148532524812099662163261419513100153184987597031033498859727975989550666379060284778468194211132881675725274560208443363409221152977368611523577704985793932400914473778981838469959419002062209752993031878421537291422988845975670029395610527743081473000641372960227777619087743531474707323839234758443211827878056111742427660366523128797532443716086010842097244571994270891285800080036550412764280175861180723404773211157455476971883527166727433340933618714168219075207921109402106266247045942270781256403629463067180203070519080958136180561523741233538901547748315024413694421722583141066337823767016890384874649495810556975122123286019279352973973912799856955396312335970415586533076418561814632733491937579687180513225924797920139142173872454301278401379164038214112790067253212447769734573302836337128013965168836070637526666256233519552337439899251938219046466182881273922593164272604712817934218442160792075107163931564900828642707316434656058763358364499300174791783279540034064395307357876537196619760044361606635361788383587758830944920346634180854621030725885653097803214999097990261640344785587205535347166541091660322827712913499906709065030456197855402868388791420665569549682858481285558654150299474290957804131461257844955925510016207763577555615027533838301069654057190229295653087125834895052748204464590341625984840427932531152431660441264653037364683816050585068009536536497036545635552827822864715191060626132727555222574350154387598427164908153801662169794652040141743835179907699854082210789776395805784610094936350916392790603728381724164424530893612683652567710820133666762370559579679400867419047758078420386345061684651349796240590669188884258942906738653961727019985117948149715662747989198567004147279409025180390567033387341399558366375025542807876733707614694352694042573124420366571409395902317838043671923584927562658488156844437961432177327451868866109810531590480299835163294779559871524072200835052311503828606197034476546363398575441734408802857090063493657297404359378625576170400524150058079342479922941628708014487088521217366613114971522739159844693179339545526519493168907452257404691097237810027082947985227222850983295227415385188416828259505374608112634798753171813111591533696946923321629861782614706565515320721534470562838545213316359434410418458349740436228989659303551350568645718886697035153039035471185147589456786424671028213499900774127541484821416915395607266043131328225322190601686113715565817388293398651621941011445508888665335827780770137011463235367939890489569245261794933547884070826684973319401172576491181225733726611084566574292003511414986579142388441542997700470915687992429715618594360160420932943298206563992345270136542452636257048279021659805169105434354755437537544309862193564321717952274097928809296496681700035694537142544368479023574540205662481408254984369699142259962635464933989226217908494332352934373613843100104317444708892154320501365919950179050755903953941306008453048903642812540995830951092787007198775361071812215058368056110163525059689545326559293317061146163566557770959035894513389845154522357313892442763236837518595801021029861942701029313977634584039046410472158382231383772110631932948129238670690256567577681308801549743185910034411630068224927922119462446741986038514976271215345986661586513580260382481229550920604815055592436818503150214356311226754329052649769359062406357864082563490004767253734457243241145796557581755349908971771067984260767545748667218862671378209888487381927588387710923857681418001882703030011708127377781090623759876067633493232822662661094256167275497227248314776061597176988941214071793012987806996456662077044036092336445855571673097737094531046770200872076767166480639214841595615057115288520221437537133793424329193599858468092877461291615851332879398893753089341226504479327612688846576827085936517805616122797760475657609755054006242203000516022088176357355727706318367693290294903385352782514786673064069252282513522259138413907988462432322425210710392913293450296925332803139826537701063017285198851140793866713947437243947021616375899899480456678706574797090370541247483475557480401313874847852206503852008456280542060294063319718320629228305785432455420949941436318682829263119443910453008402252279176042387360476111828529779137572770959963004765850989454050539495083639513664376437334565694467044741784290365998472487877686517188882589731688787682295315964246701840503714295109905418331737769443016528868803846771400448999123027302857403552925581263594975776359470438421655355793780713220987502318342252675254739392143668077944510505022501058257137096281709567966249147679834618465391981641259455944117740144139908407483651288448088279146907159853597630146193941286921925477538022451672270974549286803018156382832420761892095828631876842845384754856860172683287596312537564266835883315997041937682146291086367163567232637764256597388224784560354215599424547096851003028416814051084635990313700015532604826550968457137078681866558943842854394179368844116722408387651351235241071271919878540125156758058802599087397941828919355547620940071553495701818940066317583014266647307056682881857548445869095619789275368337245894752249089888350949881834701941970514307693222626889671536531344980410289410731776401649312627015617395621040754957710256128197000282660077746953970854999275741881571287431892812140418417967095437960446961999827247996500319272227901710473332577049200189204343934739152955442571924834620955967005070601693176500239825026955210076805500654831996944716992937046516566455386615655672775388924776176425222103033420080331296854901052144247043043749371373868928099087511511713393856191527778352666847029311876894789049206402796417205329712595884353597313322742228717398382911233985092492744528804104434673622135449373014855984786768703850845659794765468163731301167930433045107684070011496029371057048875409044588817599033613041196824256894313717540543808679418564994210408909972044660061212980122140194153216210832091349039133192931390747441744332228235148146221973002357737198288116185430817556281029442507469284663071291223871960789609051195636530589927575805662397201738677993565422976177681840832305562387012334404703042447189546508928729197305994213109416920634262374655105567771812777351794969390477943755185438277860213030048256606177954678518953327295517512534038193884774556323098323021129295815857490618912603522480686740867783328921590119920945403689739255178096220166060272032127441450339106599975432130351216090727599799387596678216096181770803824510162421488561984715719101580815867276799748631199872095005162207924518728271137855001104099216781457188515399283922850056084399758604183623864126224508517481088937436437371054615015632758118539316184109803770214072869549318013536838407991636974392734267616735650333516625664546406518095686701038706152103983247940533355756244709611695372891058577616618745005880356566291494821400516623417877286425256551716004703561617791869296883395555496244352694133570117562501991140219492874662074714699376579955112851245114984533149335022754297426440892812928132912700302994060471596866873424904596320142541385836075690686205233368591827204726252560020795788812226914044408000567371701311913347814077148096189033661980903054364146981909203003560922963287214799916677498931055580146204134632284286096495931879856655574811169122555991040740604011516149482916558990373945678378938509961105946281071206928791899176400618351475767442554436412557926509901634599433981579052068369479782097838559883720210944367807172401230102136281017813906593821400543835864987947596674910149386596067290207266076169304679630867166325804880660835146175342035458639848566034556259763978582253533064536747857242306464500784285947721347739496206912532208299739185922204224377052114894015310400868094294299388614685542400653633800244368698033594425190422396928548386738273295723926704926032667373685644140329941708281808820562184511482600030747318996377745100912487570955947091091285726362019208760929777899224154772609661060527393400361248164823062672874682475300121244852418817840004706005156934862042194445918201116316628211855752338586480918168832169549676108135058274947024650860596301793250417312133771511729723661970444163896483005842557525196257124604954757194343383196850737858125999132587609198329118521362833038942404723393786003133792713936644494441520850856630510474807632619871966106160698804115084453660341319143556304482372535674477427407774616207452905336864351761050757919073192372941041142877734581181604398412177010657427074981501579019606479394438183740681247022292159023762015089447116637940330678955968464175208427201203728493874935240823216028062048360220160183886048333726510751976790066427061200496302241339054836123956958209942163809989911877199148309374978685150783865230849052166449281219300924849949333497456280153597078795871116482076595220427159255652064168785671036471449229370122355848011874298123787079327748974294538579566339272967306344003434092252268812760201196325434223663741088489003543885963494007093243513580880876428252435550225204150561004495741031919108267865792899352398256892820714801640759716967170267123627529488286596549914996334977399254143387095332707476846219595028562470463230201575314243599996490814266399531998269123894962158220442737476695240218349191524387862390183375504347239893526811503096703014243936977940510877317060987887446263564155517787523184521301049890478477630046685726623641208167321094976625462041507441461898683862346526340985808848990170405318013721588506510033627009878659663293553815287951607476171722853433734978002410038395726526868583581426975380887957840515796574906382739508230751626768853762135420767445262449536873013113228913105001519823690707322258199419878859567104716410338516010672088287318828285827504407954003124326044516681961576620625356141340505493646076498325574589208160757610882166783296027911172508702558137610314248986100980160937741298412847989504230865245859392896173303311893977348406696308378838255486035955219692076598410197223755742851914629935247494711781137660371067624905387105266301948879134232606305162922865935038124361578754119351706752974911739670096905045043104281884162889644781689115020852531907070717852687435673433183861188038614704170861638975978228992904145181816069757142612626481061557282392313870004473223537139563712775561687008520651805898017900595946659901275347214702369825924808284264275975852973279513486883944467700307371240433198302110061550738847095670855108366345225804412027802280608458279453338583879025426952939661245394453134149676801559540007326689903963007603381752674667395279437887160378359255927216637590851541066570725997737190197217934197923504792336158044496214385946236565438342403125047514844984372465600065350205029499601392318391905345186137748934425456547562994046088125919794729608512485535125011753569313310644150821818056752384916180191776346741053742866171068245399777376897164008883877242950504680301019661284000712479239542581809578771996271192573150794223527646017686666431366036668260398062689499516195940807809404560321201379297879780496356002488152347824878196562751780725127802999790904443563984522619403294201992918448682813671155801203062057283024034665845666411033766678125965176328395255276084278075461254654964679281351315993981666218774413160787497961107393842188765092786082297668538943656381371900842718336236299692252238935403429132021750262834032406882460251930702822674572217669288836006801458740529284323229599037662569586283204711550865878637258938357998468960309216799480148368827726690983002827603222724581728047581091989583431523404620323225490619828995977442576641350488476101604087162733521766057587049229873326778371133513519606859051643201458915228431879765502595789946841085471144724390952022739882608213491454151616131829428525846629527467779272689067861537952640451945932706335936511591378459380786792935519005917252605690043342386219284059954608023120991773067451947406423073645288361554098567783577737829752365462321101714735210194342855239069924100535368410247323448523160846405836414334606652756359585603070375333001218547743816020251029259528024505607672575200775224635428805928694613155622484705550130471789047012228554898278034746326584897799480562843089333053621819359973077902599687401661768971957082704181200773249342967882323802005573784892592679902718925195468333024989079294261658458376593785202731110612129680466387110289841488137564709014184059753260183941292387425009357592357165217991017488648437159597223058583603662121234051554679308513664099576033222791616961353779453775377297593912595749563189897295899734077988397606037409331209438537532987027236542451062914379560019443984993981985653200543769653993133678155806788392920344391565148047962253275147360337351911084378139377561377921726219303272065089468678405684802557043182736567178152002944537542456173344771255460992093439536998911393870937087722169346087250462514774514084785461350656956493558131790182782538402237191640562628351973699601109831505446201864943959408994055180018131304465623987836047965699887180903251954456779472493236079016659343311237541662062029841002609162336517119427613400617027011718111707549249913145343699856813152110611325338511909122991345793873223250498878441954380333227168629363984665632649377707225043381571814225269946015612523161792918428664858632234782723883050063686383376405705407608949427841293379505982341461957435636665311190477801570154896157361173776718974409529375834957033007651393192571466041039883546299209626359132337536917118656494711022414885928778681448713180815247064602922373184324889600872912655013789729612632782557015097448960213845404953614230994281871188902106952639755831340109419048486113105309848770318486229379763988091031495359582468639565882013560428539748541736780755915687380712852011401164309945214790844406928548921713602228198855844492998539985196732834737176442816498420283557098274896126710936272175844475387306108457842693869909233923475794532228538722935250217292284127985974958562304926190180644301398310664258225019809493064366671017165653985080089616404523585334225217009622723775062463579233425643144884526063879762995450938105044550926733320823459794738085636157695708721941701328641945047853861645131486570506160169237629857081121569676579642576156490269015582412873506697174000471071776713464489979457241312761696693357452110928927565000037686292375279280486114740389435330429839774846662871054767516430909342212378644166507930145130899095548564821722900779580030047968475111505780066639100409824842924803748164881071755498090112781111336426852232898602272451564687928514827634727580605413702579782314440691707734875570119375355216101568224859159454468035984211174553788051470505142948962434939110777991375774842675410428066230646174977426440639829409765589276627155368400067554243730585726897953578889258047754390547745240502356721395715511662958114391218714954593993801507924982532274490239505608949038221993153265102118420568973095068721757406552814169008553736611356935145778550070057271405297678620941043820568526703583836453002430249382725730770231982423880709146242190642681996601381937830927004943469445467255412530461826511101305244317613005626402190759098243310333865918556845070526224109947320882442548382922432978294125910854402532154218834717534094565299336206910687504727610698597211081866829782810051278656698257632421172434314704721955190060227731164347853217959931195064325355821063046063129640767396405999274225468520191556776758967572481420392893249376691663422414748313424263119018771140180647539716958131730581436580067490860753249866136208170548834324505320193779747161792408879536800853899943137219062611808528396043820299662855924022503415920191157034073360799965027219862883485580313670391653581052162232419392415801688440777694602933290873256779749341916487656152910695713045390209664764989005323412214168857607366882756706765577695037680639486605905878417365797238303906190587162153704563683103786051403903451598228985254116689825014588274991367176755734245216947670455512208786192515153068628420259695394539739650168920127073946391786655177519253680653396593018956401267760063713717281640341810448308330757849603294762529649148729253523104704258959504699012114694063053518778274133198123160840809656417197461522322721833240604150835999661564849088279740444592969518991889201906537845790831594806066711737444697827306638698885733035406246690293711979472135652658464121615072970411646200319351301502210216887801422874800008546029942843646825382308669034430156701719146988640545610068210230033144907876058631065956439502825612733314078159782072679755641186906203436183572241761217058392159443043282380155018740884769869234977268278804750900885145943810884245323492322382254270554366061835129867279419381119899205578547069143399379610149928095927039533362023077567459925437892296823992477636944747305655209837777197937234509074371019997534409466749518430416332309770420020469516786672640492123078557760561755457918144532160961630899811157279396611155547105256253211705737198507078598302343700511816867049019083743275398236612232106824857008520768591630387809457931405556051538068519766170525382916032514581547718260083456581883652381434270633996006103715360256996906557532397549738791683280203074617307817271562268514446826916043278976603002378853202697089966392299859226768358347828770654896209532872992338028225937487231896096962445763437569919903872989651559649241560506322151922787475097626075648773643603131719498405745293869296270917302421542300875662881762719160259830517683161444047683440635690329824790228003473864059813776264260808226432943250032481593102635023814134678377051814950868530933729853018441487311426666321116664281928156645772918450890962616456180587733754937184452183092491286273763673676152900093760835622231489468785048926620464218293505312164648543976859082552082537128698326170680906971536988628286634983670931332346264144704337033815352250533970832141671404275499537436953779742569412111971697143732038464370724046253885387448373810948798488040840489479812308260533287328144070300884950786853773554474373976225389250975968975479620267452794879566199839340361571552082008555713812514388188138185439559922720949014371868005722984868983690935052127799779495437560202463457011922687675252664517521173053677244880863792529059100554504180923087618305024855071727371678013011291241629477737596211408162402277250523490062101274391562243255025079055885730418501699312988234759815915624460807839636203128936443043291099233309333878563753364434701745875678857916985698604938014715601733553636170231952308997718183873267900567554391563765900678026485427365070209429857801117466610381447371159721356323322866885201746091614687577037989742308604136442529385989070678230090899784375590140113650593215397846085981954979394331506626247057687780975234029587185293190213301241283021036773865262511799774749538868409245113586904222745179001123436366075866688940682759625922845733419399727837848563459549348994321512863623459690205220520314447430593449826493626245433936041976238397054210557347322833590971871687944762406628673082066598731992271747152055986480707390208690990601928579515100854697997544670231436910901318756706601060265888954532442003520976324818016604737447882051961498622245572967484124413308867095703897225893136534041909644420956747834513467685085187126529126058339548006649018218387253474201811731066932699755535452828107084963230851683560471870165323541810079192738537108736246123335046159142426488034259131878679904895151818116913726808409368228359914139707153596633350818799460912877172695739265483837384512760112459026789303329601143304929200492489512957255932155874530145356702748381786531030579512435422820196545285829232810609795186906985989832606460785556893981058742094617977194345472693030287820423764955941497271301518941087971894417229289387485655660045313488950448371821381868420615785833346302875808749721445552955144426021578288771668417961717004588760743082939247042516336230692449523858651160859793416153044593390457020399551889373114976218270768683866662591201318697262404945741465698645605753041375123302295032958643767020994250098928984337096431616301330474087621948574943390225170066823056018521810952446621090098936623735953881602706986360899859578286589591819779706607339193209068103973051617380193025204883752240722434309270765260415774460667793299399231697732048644952177315713522691150072837700813236560979309248918948175961760772439978687755486275199419566281134986246777180692717006745889966063396430273088327176966254619880566075667966036334890952925466155509443878344083137429739338568334365016410197176528615643840758958354182972775528986073762224152908400382549886736576331660541775724073696357203374531731950538199855962321777300395696520468184436401528503974810278374562543004351152815986699304522062580405205568813237606635947093974043297422252225822064709229713380429936758625319246844065705452082212874704551833760484555097348552370524796822585356775305848894086743212269194799329258902669657652289707344532602103072253458741019580132011124866963116990972329625323555152941841578188354589581577124969937776374662033453137214319714934545422812993363763094714691804654273036148794452825269154101718067844211395956328952883430077660449817932278025769126921107938247886291905486131266892665961065244292402468255338548008164735453762554495542704460584627878176292900439057110053812005065358444289578618225991470583248818452384356239670256191834110185102095199771721296398953941396671783764457286593229109990140512966415331147448732702987549241946331326206484209761468236797387616110192313723466895657666091076184600897691980456068849829746955013969663854436748146424122888828407260446347800294271418511310164554342741720495089635780276672990309398672601597579232992939268573078010328772057118796070073062781845992008030286730290878031160639084446429602875758129239239008345882265834937287856277044856346020779548660337193398428429127254709396520587137244408420548467515045000461038544857684346470213301595973274728817187790438893475993420547343337005799869043417783691967042787752220448882495531373142680038923698052804972814451821858157071990780550459497079476288369849085903155015412906316500581193487565785657968929544981068439660865051795348345744690427071699776260629409649104801920219802101084614350153519618841261229615976970447934069308903745857256289299927409264913339586365630654645926954555418129452096852056093587566327752624218765441704273783001989225124117584170772916503131434809095530554064628305293100718204020658775777648777083040068875568704656699624120222846634606862848212852412976770866622119182317794172087309373631512180373921344851287869559352682092069381973884155328709621104874400685532479172959376406862945223948400095125950688632540508450191024929429030861228895383446479929748111998250329479233642885877481967949616151049653046071046540982110709063681616041469485403283643599195231952473334659774275699751254105247438998073305305004489684289644702232185979998530232007565791686643803506590124268018746209977739746763960025674569985134896989262717472992021055218213551384820639491898260147648750660146402796823437998628577591390379612709327517272624080742815923023264939210997112975290478945427497374532594422591578599219124420096339110541403542833377983768616016567531700779759063135685092491742179342163780613903141929482592934760775340789140393244167828689364994973112747653510136601256638647920495507589708941925669815747075456077727915844763287771235228250458026121317216182471137394077727542827677966834368005572449558406440292455468949320128493279914810765690176282962204745521724398837208799920896521513184120297660494086744494629660675381633425457091191970376295598188170195921992350920048558858381544764325731471831001560628754787366958443627043326428948150161889525672840531385679726651359610259566236799036924458923591775683034843117292092340902475478724845023615018484173908340322015698594124014375799839880137596824680585938445673863207109184989541229469208986846950951490183167026317500138154586560992914452696695292293975251064343866394503702082366822391494709928376442037088031701293909552880205953361943131926183630508599741313003810184953695770340402227536788541793099103984609536489261226329779743271921483729947443184930814139675102183930798567739431346693862506718785478577875750619859953894795146171623119846806578110357490648936353142298097256238029740634626952974856513668909323024069213274049661138776111633961380654558503658963825888343396989959527211149004839213085190072239482759097575598896226108324694192253802752932519904020423045857132708680897528015453877591514233221006010023578195402840074471929959499930334662054771670485182261171741754956708504478777438489396674708488127605506326682584728020316053145932747432147008626006153246232632132659146572436207288439758717318830609926495115796834233081302755309406058388636307406313328054239567317108868039683753668210303803889933094156289972444048312131279021612554317388457687635878818675077221795157533922435884229826132972217656327898711324316283344127339707688532687747592207089732598804952220944767994586213562844493080232796913620279490521217640141369997643479116965845798198406710972599092803676838433889951066083190204786660389851851703399574938020973924610454068471741000127071765637140643563527282829948203969981181528841275153836915611956988033015593710904481298606756311809299585319893588664107066598760533265725464526224131014603562226930441817693208668802323829603005138039745098710333729097486403089576617921399096759984390361377553242272112461843406030183604745404936255956460413288383990858600214136372924456795537990157738743316893396230051487509109381579952414049127468353804373419369459520841623795646521203811060701916286624396525303176775617398173017187429118959330130407851499058520427013448527725705908341113353608394838720272340964282418087885434042325440321715270404784568606581099716114065106186756929552739633790183994562485308529965106813331178144766101233277774070544580541331940542701722992225553638066390876218464501464477355547483138337106830812801745443077448858048027100531732194127551880765567875541844723669972733716095927076054351810144453755992549677498341381854109119262867233976529086192031033349722077266350586797608846539798675747256517143020448786560629558646901585775066220185258724059288587928533221786288454329233048552667483636218056712096489548236919245029381980744716766168291105430982017365455007545500614730060186759224838530832740639571833925603364459191688969693572099231144506192723017317498235379398701048272449288771212765612617479220373805861835636426102660216020596143401498135649762127666024096394671255013676798667626154165323199121238431335135040087195978581798464972027182916409758654333121368499162765371937876251039630204447534135099372626922613699506711267830168803303023180411053614076903820434052835020205912561344548307108461833212213884181501791107171945803194144114255611049557349916616265526083270707775041334094968281078523929519660431316044568580042445892455869468928525949096817092751807449172447273776036664176431824682371476137062383859465771008621049873748142683566929674506478051119128095761398518523647915144723649975447542387257642624886432838390589308201307857055655581096238787517801928469861204921982562432888475542008688453829047964087688169229824726754934319931113344803498143030259780048769692792025191092982255569659490621212296845598990479043177944200543455536832412730952332460239834220271556956307970690125364026547598861980143647451893903510205845534672989906282350444044256878445377463651899366912277243581510646769082205226085968267785697272051347389054493058816913125689095711171625810315621990664717266674856691108172551116299707372546721134757693786699297205406295430679728827067054651392010296340096221296054793738737024853853465260537356169233470491556491280912773956754367397131112293822064633906635603667849821517700971357045269687226891438786271312126054203039518332268760566560484524386527967579925849705318111181033881133062540008468471942781769762569413372008014046374923385074151254210019429676294953905653818798406841234091205122736969426577837845783103849915730005614303517284818145412780536507544587719251062626098642553394250635360255580778930932919313796754960470913021649461834515515973254805007730352545391993436726561121256934482572521715864219107950137714015928135622158480413152578665687318489435614174521339709588983568215737529261510825860956216455576565579176494985618198222099558099112658304950272237908338483376490352180330296428410314366098578823004912517981387462892332416664278670377678699527283267642548065993550892293987920094470196886207032756726197332878591418494931973951358380823904452639960223184309014579753840372831215007131376261731571249041809819388900813101597057392969046498615625218105026330334031207038455956263920865939595881411334495684437705856133405703015404283115431454653317816408983112027576593491564200457474411501745133353741796619298968472063403725419458087236780915016939331623847721169163677455820836970079178530681374700354905429028613711121982070683937653926467247032577472350205063171025019702701928702284656853848431116954874520494446108116783104727896662183618226727982562571405552893776194214767793033743515772548874466948448199220635579659660934119646559981611907918682745255609458924642266896624283487206649197116192907481479129467336390027435216495002843746216202324745388340194137943511086489600935113684818350523726124489357738070493197696864024529449104352614977062188120951301664979625026452513351568992398115083046185698166778011627602711408947808113726707471339562206867442684336070190526758030335659580623358697000537801082124892350126475758240948806422400283399468760470215085086150263872900656972261488272458608264201234288351734521896709459794364149094407254501330690919464271678017133591157738850855663723843870463906990898842527644405061385944157526083428537388108654654823770710044913069406623629999221850201213569013321863629003787843316128516266076342444878079466734656477674122615152256163118329204406837974796372324650962022618603716399696931879045868512008691762531976128207938610491657435616290132623768062723939211804967506979205571598303663884227186138514362578443497734106460664602972322441018098779641692599992380180763267020317702065367300931352670857513271123854491839863329495145528464083751111169592169663381759635966501745681054861185187238893817627940959457085396005183833544434707537807229959390607867288256259770845692397058687713525414562805610525264037422825573881210537205662755989970196319099250031603372940694162253390705014678054176014673771256641049756828946686122504392035275586995639993740584133158123129071020812796858903125774897030223214589106804693726901153571001925525012625649098978492674876274455495624481203750802666660641744984104376215981090024343065729937282864973059979017069083393295545402836909299753330485585962343248102098543565729313652369534711338451366640539983156329645554797289533802450327407701175961027483440414894388802099757624090289021255620553096006753191693492129046371369871320585555752861096515275001603758977064318431252821758315851679817913776341881212942528386037189130596098475788973357672711476872318128030350156003528923948233605050814440042619665427456399586569409446168971996416855843281954543075672635341917213296725354654531762604531907846184800784394163183411244715780087497879815171618918423683573984151049726445109609707980288552481034724692800107398487968923170811330896443306800777492491218605168121799027051482267717965778213953326936656276431864288698598257198354589781058712717390687504933047965519667022792202156607635448590888062482661762569859462936523756232275909839529757989707293323821600143495915493312712644268109745998196485731084389975324900627543015585362677791448574504365052858597947071624822671908201382057155490739143569237428079114973309161391496735662789065049952956186613519077194810064474329298706402708673226375940353535495801528636141629605991745663485886477584375111979097026209601348840417802543249162707284682608394696953416029497338740499143873421317581882068234140238481224366774454387323539823692420926988949932842418287481632893217770573014660040080831782088945109492509969980545721575736810267521480123322912036497841460585767931545401391545426597393532023823508444423868940818606591881802663900011255853573928409232462416601057380491963034213637149079884803863509290224121350626613818663874353134966320028915920687037148315346465496763660028440590715646079311607040390023314867883975186502076929633118292894230456378734684510078649645649179203533872595748600611963448173924581599914192906481393436517574298051483128568645046509100136930041460677994806277932269743099573465179669083921721785329164769119926624121191585204042620985292350593907722426409112421084376802291497401346183835670733893291895540642575753279193251066008487946243977901265667891784644673358356324203748270323619547487053921415082763500958065175209978745794644562936042429059309473070686314394008010160014877290292566857830419655575774851024194021899034601987888110554368522802581598572238524726643521648871782867783998627545688486504980697977716869294374374177705636402618312665926070936036117438652967758413964981267171873728829662019870534699130225030180464383689992916997420574577302638484086423050989089106800756218372292027578923126922965481932713413945879335217508992067745331453008932630784278450037381655308590655381953473987018765429137635766818550476011864434272083211851912177628555591128933609345595438621965042460704076816916395617888926985346645076845868764824777028902729397573269082677348176656982653468167251663311628240559928106938514127651200681988262325504023027166789081136667910656522957604781687647625568940242943973441724705233899960859026536728445600571369419779357831982856881618308680335025048198880846631731028567447784059294397945717648744676847539802677278554920898529728329733266339800515382320935433279511964174668853472675213011016171910722947944154775657299016268781161639954300328812935771979927187432250862426973574749295077304421917898070379563792240356716266892497628931321930126333945482821740091193472914208180314458770259419697786958837567708512745309025169018939358271881633065542187694244454730150297274218537606451157733995497116807438396088963087436059782050798375375248938820242996020812373396499587036712317583016605247408371867922021141673431105203222090452002480738880241069986178019554445469612994560773915447302482587932070034233288725821539999427879063615555055215788936445126800190139786118194790212655347091949836918886623051213317135581294971823139800829566306678685136866845636731165353324149441361325518588711666599344570701023811319373033010162806968300656109947731950403817339793624355878029006651393248066190191217077346259366544927879935743093907924504655782081574510321691567724745959581342553572650717058784895482855212126234809413303619742850043922327812604865612521068007824246325092205315224564658307622322335292941336327362290748583292412908369703272779991841294277476504843525480636781176464943159446716187389451504080769095970023035730503730657357347692392483594016925788493444669310062978708232932896489022925550620917936755472866763014337695113177575156205471473409739219629372714486436446268263194266405573890409893382941993764844682778638885944919437395053364736650899193163877388968614202181182441432202742772602871739711302186302885916760825297047312393769431534764029671653795826120721145192787710343308138608728886337415410151915783090909514212004735313531178689421576372769985950024121112717356149897256648134404587658066928617632184795383562815131543787834381303404585189903350684189640457240837229881271646552644032390714787153905790208876676375488351519168815113134823363690869162779420402920791644687826654766074625881224569989046605454253625377407946482599718915541640884610524795799340699327254498299044371666515616839681167132268178008599982543572182022686790700467493105665799835333619989272554326355106319259317740752679298314252894380093864342779838512025596194306812568803089134799934177485672330373042307203155011097100768544680629896542290106932473960948727191185048953061255004543495663876565162817656855885840853055160215164206224957719426322897586156481625567185020222120201511744173904262484788419209759153063431436851722227664141770292206460961202050979182934108176615085828188954931567459774284987318260096008697374321236582362187215725371818849280349690598609740964007942325652868000477557782769211703522453183960200132318033677072201581733631120637680862427678234431760289753235767280632284599670010938041626402243947851231725054363256219502845681041409151667808886781011139962891914463789053578117776064013487514785025330570302267877683418347877681363130482053000031848153025063149476734222284383031211862272891061656155174113183867424354594991926863871482031345128692908988830215756073724597314916002773916898373057417001371067057217733855455856838190915708281822928529301780348608770086164273413429753030785626236239253884019168892059018114562383694931600940083890425484813534929172262311491016872304132745175671444396816651680375585221476194992151586484553136004503171452574987546798447195957995785046595751699826714107197286148468168105662674774284662223217351425280556999766216066964765962354906829940744861117260028432995294708512112880095060522235736145214673391535254930060929738038236682145644406885245687287149837207047197906588871761161982706416368732272894402739999685911257555711609679545389906549709384759447612101540353863461109070064526657293620071656008253679059526840097362484688910924476038798721214444875633505123689625676738622491996281826796287867342373107805230758069920432459957530905922361343178317516755293036857336960608851762797929017261554207240566926358543288330070741009634013553061459817042971557650830623709576817656427705274173272466357261838450969232685423647448395890646301347572884310308261561731893964223084162080537227396698841253328813323380537660675216747839766531826319219510705505782843442546396203159065044336271608726911882314386630053804118812896457802117413623265828111691019443412916035337038791656027485116025023746131058863724182095265337663674359937928195333617456494092769111712042438742526225467981771361118788715867333449512183347441516953991464449414065410353990283187584332166359986505798861543670784290058184923094671944127901403199851603089913947350034241246461134826557221444940462799114703814750079669548510341002476151839177001934786504015372137024415887800449991703938435149753800374136928154735577588813248562220760200397835532593350404981856393375951145991478436564924158015538108728551385166964311909223668215132583989389217450199347869162718806404715679282191742995361168202672524323318291012011959193345465956435892691636924338617448944207507880832023617801138810415864870866831402574366756615389308500712279537602801068780559111790725889468495153568608412755301424498164698147526306916997661630205171238052303457034762567960395268189288569930761606565849352400798181796051122942132113417331955504064671605955790577223384770499646811410744397656670719212828819184120823020666726838579820425310807506307155829831204705442905359311978864107338351157171776238482156075456778577294242125711315136135694565688727016045687735960616067117189000109276424783892656795404135467646998597204028365238915426949010727140758747618367687424503913498807981132161245391805000858661603977067552899368157747360768702048065432604022519898865126055487410177965630122174198409880260880232917098963812418962565029881715617451388442087690464443741993982276527544730453931018167918558308293028665517968092787823966144613589115470565797654339446892589533531810137638957268346024610057406683529505523192176609834411983168382610431409118254897684451731138382167618826517669321831585843340786070861166747054112670424113801188555805103370900610983807930011050541606424559305169921782991980945473076109307992074142462854581363634586557026983177188423000784911726908889860697817586203243011442813340148872905999592663361490590182312428190288648669429027343071067158247519288142022480187946682049703588505577407470239095765813270152290703602819345324430637514363199984802283919291891618189285500408375108048481809467346133992011855619469445425101068924695682045105699750379239490857105643121134718212940573981984030221158068282022915798801307284771731270788666081026081271591892676890184192674103937721925414664848547099804534679403627336742597570062814914526460857579624155850721287043568707110760124921820169690646457251894154783487940215188146878514405378788254957327629442176595126861315544741953775147562606645196703615359351874669555061969783287740179230245342434237747492797430591018632528217287834881616349916712319578222888859871273801200225720505705783796721317357205201122322449569401873067597082558701622934237486700786201383805012870920138563420616707411686782632564725720375634441384487773755634496551589938811642673960690722313140668411462176869995787357193843125258194659950257904853842691759115451393540794382080252005824995988773014520230543885551477207209559727243888594462420501025350455473024142542328109418657860351741744254639415783911553200717006745649850756808583377824705399735236421268528706010627731122923014982516837941752191449628325088221450212913765890675531579232170288550734645904780786075216516156822857619926324405598921701322051688289297034261164446511491764629508532731460274317775783491119879212340544409264834988983495031404388318647461799296684005059694927163898998444790367274006166371009776866400761602539647027065246103280538232198429113746715182352054830120823294074735289940007314234662086382391606254786369380887399096896184455382392680472884284178679659548907087892046426816227518742472317159320535507610555107705120435232932709912316086016925830723529697787385313963291440509761659654596479738298187151774458664891374614515053628908466750364610810086048398028935684318262554124674786261234894862042311660595262197945440572658494851344726701407064935138839607768528130640039382828555148847011333835203306169076855474926686735397032533563756243602982248135711969696376355697346894112040371921535660249529031072588940983286021204364750596138398950393484686179670538213863711979000101039294376424328388318547226903828555908169323401201665323301501561155109091306112872511073052186862046706270268809679722521553464924891182515123185552394580138833162751028427870079473958360958334429597140667541546100509346727672285353450498539147139106357116388633445287661332751999222767026234381146201622240973022379248690937672308486624019833961170018813456884121155394788069157545983578972492002538139077881193625740383647701246829904197306792710231914017011054473815593061754087420838447828984876944578599551832500254338398860383552157061703955685612404429024829355874255996650593272827514640291564498983529428312585179716390718805882432864721262353432189203360502937128096273526070362449594795894332948648301389776091149847511386834818773526077912006683684009243267204341435792896779559519915246270464953294119137490963670537865203559865320418381169982692855512308606204672092176145157697611367482104881446442608650796652661409821246753310366385761811174657290767777816579966503970607201462253430518920409682235299678954222217528682956449767452882787380052413091000213461745729307407729147142984480638912141699145803970389118337122591363812034180359363997912378404932485085906477891019494322802860252884903860137389613508030370810398023451377533121052139162247681399677009065624778982349691224540369342694323808040175913610474566085725305150161900428819251900348904880957266020381594683970872986049681659298357411227597163738280635637818407802219066636298752337663488961315988817492894393883413951465609123379213332458312331918167620960870789898660310668708885348316346360562398669646254453889098020220178170642969235619234837969178212460403522822522368508470878127874645730036867506615854362428307165401063816044347294955613144792363610775257503643735442463255549254312712898560806454672925838262892789072012372793563305401613061403836196377189075815879460755767210581174581449790284141144499083645418005084868474447281664229862209351051664889322481872819217036309619090773308001606826791629912686455047462772122704577349891851323482827167899215915737512796703297923201305816602063698346758657221956306568418423600362947011019600227982893865165825428774131055229599112258265777361786547343096910758899065836487921743006313741822991639542535310659248415543059837124694705973649339297864876559749289312585510477027731879137465907592945719622286020051217237376488145821341633549045154760205265456480131162170466139326379433642468599511108204899881608581595349843984774567828170809076581443399931602166038827635216867054877071138515811842247031765514581892969655327357459141244571689344987999231410675579482001580867922379322109442715842920368714355983761368931577060412869023305577750252026501077803403865973273357159570331697699308366313650997847953481543128462823989756555405320632507441650239649882682966908368465305184943350095533469824186652686628456838759694095903355405683241096084734286885999358773724055637029840651234106712568037818476353924802573208692819172896602617346910513732741895286892177634340590628439171709022096347791168246208575933797619440428161194986700709864917751001248339777974181285590710326241278067589264390927424223810549545943049976946210730315464936660504881706730058675985855639058545385573735097829995956714984044670559612636685763399902091324375165151233584044533484402322535426602464009619765753382939717575685426761993142878901445084481844826892290246910632119706908059868342210218923588219037795940427120758024936206208981114665873817432910242703668490621185487587238849365889279743780318294461500240029954071431316562932799180280257596909085297905999119513415358187833912088922536205113893851918978102483657888985815820018400057924099441387505562647739395933117314748759009547094274782355995087280283096884991545265802956085673339259932966649369745727423864238244486495895932017604318454423310422348379962830866645653454175871378803483498976088074954839534028126357509088816432156109780382423841611848043891695159247552066576907885640991199657068401440927828791634477582496231505502210810275209163717316863271920692892966958668639760467287825056224989547829591493646030571751185824487641010760736299957773712880943884370663398088703159659074485677391441815501699341899282948375726079118725212688625329428925572061512695376821662160832915540617547784053579070877588648956511193792846754915060363367184633929529321549228032519768022503110584584618031408414427118793142149793636491751527150802216090616829116517869905731717289469867550455291314559471754500315593490113895504106124937151742204002315581951288026194374252304354172415258622668792069310849695893747995145856164286384969078577992467126510540045084506319749382000009900225693214232101411283536183404441525976752308317876877583522679432601521355988375132640466580638559517482406144519466710029115080565607275104069269448684832535218437193889314416961157634735943494892449021444533969303137328630239868764409766110912851943943594610774640283119887547699518669202838953691983205301523517762649417754779962696463815500146230371765309926816054015509019788067397083585222543652308712784425557696266010682684512051522656613831852521160507689190737162125919291410766386099813706971338677140059279714093420311357633384245386606652571192702506497231434250578947922082670123018406483348989702998017765121008898362469496449709793993525572923462015686504176184695793003737821490808473715082173262605616432936965675395650201846704204648260461747305596283245880817867396143772077267038106234025522118264741984776341752337516039553704794159507046706364342756211825869285691923710321733938571058485709269299786029384282302871674564188030535582468706182981700260185200643482736590534265893720092410244004763890127474760870816074980123541300076851855880853340297826419598860959743623612426212837172192189640697073287693746320599594763000190696261225920769651748716125920419814599011992598108621850429739026887154144374907505119318469550062311408306642997111841271218858461288216809493730268371461956831043567884133302348812167709189963316924440715958308842226147278163565883428148285785485499708783329640425597563831737329724651486505465004961105141845320952296504041713325410700288486355276574716183379014226529368638481194976768142135377832007760731744310944315839685213481068800164106772253974623088761514470326039966150317891820960797167868367043632254207025661361931190789425864087716138885579038459700729437844602255264659368028185902746713221232091971286825538141305569980398799586478391447969648994856972792279899564422105507498785059937912842152348826961737352866686549450505965931723045845684101708001967538760537199339225109914516920158101055162392310919881336696846792755817170114645428717660495045429443716932782822273557434227529917504926855305567417384302877074411266423120688614347316978289240832861130838351241752301422427241224574582333806337445303591646697084233516924059463481161414065135693123773849170702935931563954950584383751225635771742313376780916004293208970644763392907195772626405922528592201555758786219994746690685495712288428089340587323612055833766161743209520809359749298340370586976699033909285462157299484101832484486299709976252247403938889974140831277313868314160414510516976117226804937302220075649675290429974720902556592396162498671515542930673712835623283997043964307690687266573209588523302674727392418489840511549830075941889455544007131516375381294033148022998511294178480309844462642857335590440380432370246954294851993344868786893335213338020492748323885290763831436401027016033389565660876785867076123816966646757125378343449586032041639546821535389228332999977154733914446933031491322376884183026056879407533209959942269670865268357245214769547338318513532557894336019942194949792987295447161301411310615794115897371541397731645146119577039528885131225043112615726618901153315496853034608562034928083622215098244483005804580654305210324337652835805563777157639680179233864446040813133308098321108690827402228054826344577305997621983410474480503052286901171114422247661075573933186711443115769755255154464386611030727355760057293649071329619239495195655166368388733337705891038575391440287930454048770802035088862739716091392157731264663137302936409881252443233762856158172569435760454430702919045943835938229300143767276648167394251278769325252720329148669561110431774995695186860646470209249387347441772204257912450179338422449341841596752255895811878573112688184615966346462745153148405403001872312814065478696683583548031844251989882334253000382555882241398793189215213609464060635072933053148884479857798125727342437017213839940456736160781838816705430462547067602703374416623848099506650453839670875386043641843879181352300845806454074596867630294080408680371096541526315400876364066404394433163347271471706285649786178605347289850830019729468957345144024038386884374547812215146167340342924104397771814066288176012195718881942855901519917221224858223873955387611937403329650444868772029364224954825550597422817387667954028342359418601237500714075484846241748021641317616796239902083294331598018120833203630376962208061800172618304187199664520572699953239701329858458650530058452529425637261038438488594871806629534674825050996680885728959776130049484339235367013314656618910190439194720118893493362030455211177755855344649929173888106585431371484520781226676858327407020355515921849556310219805353732734093145215583365939380376150097614914399895323117243233676073832006253113194225184698075431668452644560979853690245014849836717795213690374760778986536586107412138053825377420237833500270025476578332077141428923126304196524249705458164191403853374490294375713845175435896967608345641301063009082273759346248504315798902833640320267741237107281093797203350810867437532728471675846311527145540098394002201134911743779258651602649433344390779547657597955157338205214783719561043905926328712323592319602041780401723606875536271701942133867815548315266974486957159821643618612967301658261314974272036177046232690531932452425089361678751272338253598912897684487873620692185836933589430387143157805828063793958345678074130446937675087687751885204793282015243266419566271393772535345204897856214410468800318238052466322961559185872016166294684871637918750376813180279191726942480054623023482627877348971819787249080184949215388694128882419752930447314258978397756597817912474387234321565070371974377876242807849538568435380469965146667882925682024576740546838968896816209673800298651951035679141697115986125966324468825030097047162807744321201287538051164948606681219172865266460766220242046678224787635226534252978233801681218502382448078903813610300934934953335561681900709878854085555707529538946142983491273048511724808511553613969311138470031018861343600778466017718634404155283058233098047948269158289845741038869660556618973707900804739931582856997844462799032794074080372372679977710175159292662081326224593009884536909065784923259364574783724609163218867270875969737217063029395898831446216954274360301753394037124298390553405876622425977702125692806309059447213930129507308878878882857554013497091530093468321024381468216610617406549581041312009279645796615342956077616448161527319154403174379602368152279411320601095303871851420504362744926536184028290361323875049506389685961093320034624010180091323102830120117170511628874514472322261927916440485782659224337422469273417626969866070666924264215126601236001140500592818385901563570677102589981569740824775925559607006905116196072987714238369498519138682268496935861264878902100821359028163174871125296936853990333057987726705898343738937504144000680486929434873229817046051376749972997586007331189374444324970422993835539712875466335201073995532120921722775221254967951517457241240417685105085268855443465825841687935258964634491572565484753567731916229444693262184026746197403784972715211993190573340750333083647459842485974953732396185345356442639477002781064904187424833762350912028629437570986918547776951254235714118962965665672208102526054788078598186895586240136955043996225552456053686259416322409000096051588673667929414531927351947354202250003016036609742956743710182222550586594318275005496121618915867007631177952486027105020676075668829153263907672450023147670624336070140666485772402687494730876460861347587577992869412618314602921628380725297749880419917207450442537828562400189493356480803057420655717237342875827006811483065138094858239083792362999180247211048404059144086958693035593735996818636469981006206656714335790794539988764080145574188321187205756980929091256397591016966329540288090241029132002479769037281759030236735142831238120277986524461339571016671028164099114927766955297623370399579792092371401061558017985719373983494045295232064705283315945525887434419109153739773591706677952783416966096760781824480265783505580664988297474348704169455248573332034535758655628208454986474093255107808682439280744996435878179990103084223155243041012311568697051482368108075347140131910875501482602921730897881593052620733587513012794848509829253233185255032360204160775104162954865632446186766083203858433003689620503481359025693067343106533386880966315702040128498510204660891162515831455766776707362921027451917633131776732102087907585980275633466270512926015820509409083324662227057780102581463157870557561486187110883575179724875129720977300324200484365756442868751135531765508329273979164188320713063019096668306109646655322357037800996853474295858064348806469716421108647346157900323977186343666753454165918866780219997214232262388863582960955074434337976962209058376396299256799543025617770000299333492240273931450241404014415753880113467643855082025205331120963642081172405438662607671842614150047214809699352529865157643642522871067398102726136763784210400359459779440854756362254660938802677876874167596451776806944837888376486865724251636945194274017312538335450167056285736990316215642623286334544457175121596611962884529370507860186867647645479381265792908237238237967329260904311206109242949843248436689216833717532220397248909260622679508430268615635528423291929247713341871680775754511206349835346070129483912391178977377071057241106250638860484656534638523291541146881051723759865788895617281340010852300524410583353955406840288365512120844381863889792596526547481535154949027855312544985355062687157846011945093390008645788442960658319389856087231119576698397911972841081984768183951345268942252574108917332810156112450821463203565455267090525439028881262837237870542239869416835103850721051465107796861219390263353716603627776749798608239974127365710052702029575110161112416365703271111471271037304154253555389629915575316856410416811039796242318602522997927307061332397276989622322658237941529064862067750546935051092779002950618744062635657024063978462136997878712015558687238423680800920950727289575305040577200374341768756975975614254006026803837816124497575283924063337301301572305279792314165094862705397456394791192685485033052120799172412827870425799540553134869493989093407655216075002194458679412150650791725722193551371450101769676951567463178332007758613915481779346200144683542797220264653834103812314717031629295262864689197836421582502651414036339528854348669434401845106007360123101390899239480716464092627578493167669559409579024418264022771222153107949531148097100423894519084481002633014872842834098120472943866663670203441629977684782465125467336348973984800304179672400954535144638890038752256761910649745992450356487824235629578164687115258757009059838103406516293572186310014156534718001641876934086195989898030657324617299499939742226711258858633747086008218489965934504810466277178893490767867535256989450957827284201644093358325256916705617631900633682822198199503277141066601189882217550679492288932653685650372719510425525699973244180767185876001138644799965087435832438062321673340540105863281640285558444124411918458948164067875799782734865753303404178747281263191479256543262476823663992963729322628420925449891951567341163133177511540111357666085581383947196885144961621794865491277875163987308737495922634183897857768668944998939446305768882655091375949451074754875030084280227867936979300398302679550120401158971926114868478319880617604327556408855750667988033902729931409000467838010823684528733774694192403161047387205723163880386023097422045967900509569978771667991760050135992181347170401064856747735764003802381536921211182388532734801733294444901369295681859754715354518653214957249350898529321075603880428554421450113813463518260366954532279010151078798206798056824915167994701950278001203123782723067737344380708186162346699696936956961167401856621495587537606668932905057914239776461987898451696082605192580831191210081016342447949256928258330736631012816615204152581852007287153012594553591840771321389622492209409709714527987686662509701565368726857080412223899839308398185141446555202676308627202549159391006052941959366458745956906867775729618561482852833110992863382192657300158807037365475484775525323017334260764220324278650691681313554007743529054497095474300838233280991470668252580216426909091131469372882711457090321937206991431626894470843466338162947304010120479081820885472396400838454548378142107290741048956542270309284903346058354246437440857889209641492383229178270065619373204914947338959548879039449672724487369797072418101118704819168824977653506213021736001341886451062516639548322765195308145072765750083697027309684762795296799531033123231404206274242303845198003263921132695932083500486908290709479213311638870841534324111170927274819807852433645073504001299780487075887329502255811952919140881884927237232533269944895563502336640348699417167622426112560155157571267593488243206599533510677493300614497162052908021032906316504203954977089094894628333111460030971285359863123250535787050127492139297376676995221443298881976252130450773673060836893453210594213583642059180383634425449363655320586292400157712422246236356125821589499502202124126928452860305969013351729986206767969815916078623771256909694373656732866665909618235261075174774323660391930002791557763584107223747893769273076633969301184404737217624389291636482887559150863944908349922505871297331064865869997158711561931160723650497319345953968870563501410541198777760808023515745917263062340483424853618912819273087964911529821135315339797425920802404962599818490170089716252914538349004897440739573717802283863352012566033643519111578198585580360105263760623308743548794804036581418328101877903263537870351320294246523807080530104448465475950062017948383666410013767620926184790041067322638642314244066585222634184183847214639710005818742473814338432899905443526769305608631928245118666960598693028193227117024775858283750245861748804898327772122077349375405140969665090031815887948451825438185301560648405468922477719271250842956148231133630400805814638757902131088202113781297948205649425574198861541536644254126786025508793118525985526911105473161287630368168417449047665187647637982023553224881950110971677440710503026154075360916125184034653677761340673169279199328482159821684640898137235628920104182874151683603994294056958369019884992257947949193973066291465647353434318082510571446831580303477727794298546750214969574146341088001527621160490916155766622069615646320504826458107002114370340270166805984518929592296060143605766718597937429789029460728800048834047264702866922373766122422878742387654607023649077138066134166702958169273670934196400529765045845160106604401397628840063491818394543712128758566715292455635563126650505010605532378134604960788999502451350976657884730508976223280154640280479159432708761457160156883227799823461742333250940600048598718887157551132536281022968858637632698545194764609155877462349746781502986771230186778893588854722927043186643306377144043272259190421743606692397474488054884140145894379371974320067787986087848240087194682406423662985807306886863694692983519824584560214655863758666258980328699411905850949096851904040766558517701891356605607071390536340443246111445585836755414658393108348005344655715749099149171373232559254598202397423448398265065651730350870813209783138687722280377598370095913069041132382349724409425188521457345901389381216438987502729935000538570087260134703366923788928634154668244627255654932873568527050527442945483036378295381284165355306626347442086039436977447705400194173881772005630206901542927440311995256410387274140406301411065211432992905448758059498700321372292003977715896669386598699327454268385656551510396788886381814503304690619323774300081105803071604388807879775107555792451052463316851366173184895401904483288608738570742019252437008626745140696335699054221914272370732252148581512919575105727450989985866454784502050802026842818976894933609928682991342286763494016716189343382724174243452285996262841516049927853350058879249678511139201019777918961488784831436424913810604646558851337693060437006700378538253551907121285411558361821192107498099319711566893094052574089442820248014363911236408321619589492033133429032325029495116670818385962062174957214448425365424033679892080635011385343528560455677465777729203975931038856197736213090316758094191686183342962221568987857811868460589132298498782504410222178705882370755813253532830720487934022835262827430891255589782734776751107969579009073208871172988447561522778334481860773633098526599418939696031477593169161292787319775611737141756113361621342288095715714880649161156457428601131076565420981391052443134995715160553559413704813116585484376184933116490730641101026641016378125212425535347689330660327107391128804523297357511180190468037338297209553627094886117196864597498382131653115906475605087384647804930185407505247354266061589093417815890283775177662857177070890283832891397740015567563724623353159660576034312685750465617436217534028221725400945672014707895264469713885953040572631238676942142639161325922986968826900862546227889382168434105766994593949941955677424687824649654437419213574191798922343792128046487893159899171377068562357408351391639004264603527976597371880357299418207051169056954668153609395444213844181199009559163064543246541994045166892980658755606850707513463921630517173575235376606908788294659558631740020742024179458851112311548366534916019424750682148876394644358222485304489358390940792958091182250166368700713816178986235243677498445743743124278508200639404362169130289676614127942411789467301563927256128255522969278055938475394950747503151191120744043827084767485856472548592716723297652786856506812984496991451426922261730125094904531891172628279009058037434789514122268155431966355918379927571365949538957009117004858814420100428507958089667028249711655772129560423960231782824958562174312869558492968563858145729524301310540603449833218902855496229784949740232970444493588026640506962641906650462156310111824792044589862125227179810186593147234888140911283427634212677103496865061866577236795299631960196145996609317076030840498540637015916829858079367122110093893988601663779964216870561418835427363886169287286620845910096895947643013958537234379416575785439553089216962555004135796610178439002137299584426797773409021290270972743841656430656092630707942084581704022908694849669623299853682503636886788949955671878555830007291300214523222491914248284819528473940542660971669805435116559384511763234834518259417800115022680922716824979040255259024243323146976193540437481678875135861626059657611238534498301911674551828720131116354372686659753771599086193584138175532275698815927359863122898054299472546072811087072477423363800432517846369985608115351277401936965231635822636702920884817638790506712789256749987166465362648097119729484891253686342685834730002255890024214084907951911070511783025981321353634185843664579879850441093596530630448921919187646144679652502389977719377288244540597710030041354593573848491839348898161888225346455531112084914894480434589655500265927756796555573809673218912085718194556972008381357651381548706238512226147507691196462622290097006930137644540777757476042515200267912636912147585839852077354636826095925078770690274944048178553625721423148234145801310514237647059217058644418654103472911604000506214358385376761379952451274617738795743484871496029652965416903514228922584795185256207980499843631245123984053861353987901639811215805663214423328933265140518628869967037308572687042190415322336674215436012495454498708527974295053765526015936035649107998068633541812748406459453207750940915545773653583163674192318585708937025332865127942467980939809849386097472779954662740436279684061396372377999485385227119927816899395545828369012260667332419779904361597365837415404164580390367665643047573065998990883668653876697385504437285783447859468597155412161767723854177166022373250040366683375737859535568040071314014295923362778334684364817667772883595630124516264313400324413581482956468095713230970670625698094068421808900873138832826500860062393312091433609947562728551715371617646627578692131971442890837330396118275712984029797719824755722007938525313341511949147702899921212954610723534307408676647582874785749349135674796989324077643631143060187999245921053788451304447382142999871592579357971523847899333973428962532732235876656117807155941732489388059756344269892480420200213960169058517597270422887211185882551394752228544371977210651789580461450599267270848162056908079445030491575823900368773493662736383405132395217335810673809382063126285150870940476605847552736397957323942496897105618175830055373387682307331507773790950828402674352823698067677607877014739421300634041076481848937799990041177260023283892862443879262138440397822241389285702912480676271876043759354537820934158692121614968795527119566883143551820291245817273827144745449394756025424570426507818232766525659403139428744443006985231396949430934283816692897389965735241007789439754379209479005255958663343441334148217585410977725484135905830195906366352140260158918228452388814875986252455911864032349421289702050524715154276629677422873381877637608981258878486851502433253564873868878732091553790096062643185445687913670677875554731822745808943198910191389000406932773383606675400282249349887443711984092536511938237761443057506782708123855671858502468381972330902911022429100893935233735793391655274111984734895093366307211508532351291865119214880973840097573436621806959572540159791735283051024499894525544359654118843093230021363592991895666512872965257109735677769693326869400970291230453751430499468655629293193792366031869255186915337201620675560827701627911597458834525084758150814379471414510209881313359623332009249002450271108387506736404133026367988456969618112675882634085792016553000058487051865228362250558349469007099340272409535270948004433508150732630148593623108229915998969026997375372477629095340843135340756802715259600894278928384018602976675875617448320076486808269901534473879213262928304474256631914391655219135202458262086488145742281294339130459671700709590839778397250719862540418990130355342383241327174843796467773857986885384781737569512535008239532606936294428963475379015725603212508855477171942693598422181066114181894626019768376980409581847958512620185141749482716305846864467316794985287945666694099170024649514447954450335103395184823411798769385604064174356689661224408862139443793605630943583184485406363661243375837307256114989454851505431986675066517645325390288356204154500867539030245903576299694742894482434474139188855232856296425069485708151955419944583195149127340124526006662135596930521246879380894683401951386670912467987960466705392457641948795507784925318984701679474849516017351481400938602091314400061884977977517861915897125225986884129906451815595713022810735604178869518143240115240600111862196144678712421329524718257904214190020743592137613233165135826601294479502138549580272227436884665598366985826722800900310149179322238728751770692222765142356261761406042355199875880475153704282958076055617674491185243713001367896505222655771629585732775118049896919388447159830590879334370501119735675351625933558348218725846659103319222166479879049547959659343304687860572703697694995508645104760802520597871669170818886755229696017850137404964605068361234931822233075541678589977433010134861699550307572026788481830789162906258418510981031551988043812204753704883876249871720627619922434560860123037991447296871226570861087381027975783628377077006370757759954836439672201649379385098524866481094855201626982759446435158473350071464863556720584115697648265632908854305203210147346047911642965128334924168755767179760433524806108761799232778614833874744566991947623811819587821705472258133940774822154239301577009703307000601801367794113427923403776045059242749152829293277377376763593804074495063952652681774875243742110558486130904387121002120426638975367283015861436538438159991697614331816154590933938583054735762257012665440505519081800415100279630059867915026829002179211702336246581231881308807440415068661692446127727367570654800033685339388338920692864070959789981706972390641658669417811427504016966831880620899724432667387325600722374228903993644796975277187124140950087151470747160184050471934418281254893696652091515250624545545165297103561611663074600279487984510025600993516158094353854681038786327528224552466756278583260369847893874913353550336158253971417363997733426815825038696151910986385127761082948159143929877120598132871581851461001810322091505630752407001667367128610027021472204516073899739895060403459090346556576335977772091372331850487586363394650811157419324714266715980655048041224982238278568256238265416495297108727002881868939744491273370077465574406415034988104744328037446197310436061037061477282335941166444787104383668970526811059134711045492107827606968935743422756551303160719659842107239171672842907678801472037195095497530551296360581847289241707171806987927287517219658214879216646688898945806717483784817668591034801951382636561589895361911595316247483477626185100942372383609965290325422642188806174325873680321767148092498083155441934083989999691670163866851567505284178174830518235297311239515930631568665847274761015510210909042765366488287556244310646378007771055958807215463110046399424177122761561540817642954877975641593904299605388444146493580256482728919844304337773760809516607345113085113085174490076240680341682378898707462293447925420694847615985616298418245230967688042465191879208232502459982501550590795282633462401047854997615854162669068985676915534833242093056439656809878288330115744356013794073027235801553899159480971675859085002047498569997878911465593514064783395060350080342513054755378057828488160873596209843742444974784894357093588993343486495172202092462494993133394708273373996940040539326884729513159140598793966602208972589046388479656687430470529263533919551115173667197984021566345267372664180769006705145807811316680948931800911863315371680078494124037570180133576338063089113569888678143173896958859966645379343315813798580546798315461404704686741552384682051845516230733095338933550887264376128041716240761841040752969122832902441763041038619911974249941591610266579172547716151791876323471201479339615317920060671253493248435754443648304224028259094913594815187021210491647472046314347176343561618956455260971938632814602893262460722164087077078832966393604097899048416012340410593499121414661075216845267805452432741223197893042305976745253198692121572326628388536298153766723059475789615218362155549183551389917598374170285145876991948103041093838595380632636707913395989687614356458610507373518597395395349801065249232281499447449609241982010749532042738169342812947004531856331671255398510514686448244445039194042299229455203021936903760731476598423959432378612105510756027571343140093017057938564533683101540896135428343383693852475115042975933422050666954395301701418922396446525030625445992046774129980876938795522213598087942835935991633565786898519609246336283442306548113588913733398132014338324492470478803083799068889192941679136090268256628320594208938102293773083731494603902266435458288266623473740526701708495060119979438818312237711273887359541599321990100674199645471334184107551509764440569789699271204156562167375133414459912884278688581472455518992741229409662740031341484743088222259751885430771147637795081623118301321534161529072769215866962275562875889506372162458935340829973118384971609246828698614270283443975320705335858626405720579875160335268381478568953405784821904670036178369950300159062049983297842731423379998885479034414851742191341640043310483269839721672879885425618801944520675498161078184241761440394503361426318239498050792039480948578433750396432652683458854983259499908140065463710918414106396583402889012187249555352647866551727263226617197772988450807006670804779612619310303506787993232247234537075736434322855593162455180319326778376550063640943583845583319673000491911649306570395262550575441183391069629652129521465426611085315199737122048701517098127909679973198701726659685062976266722978653744194442602824410785266570993312188921756107526936114462731055052456807624179316682222858892583912462538256638934319229906596417315114026906920770446587252273243943886373083396783274934408518168920906761469751304175050930355599487672066424212757624858842165053398350754190532542944352574102839781390779778939125768418818584102477094261935450162486680414466796193279460539886970220749817422692033468262513300093798654782954961247166000625067013278255791142659666326539827391176678344240769154490220087054333072918083909366560787678220651433867973874472567666245621299516380027623047465168140203941726229090474875957456375526105468122853659407121979670916436570582703723318975608961666921564113108373355501038519261531996558728814213600228059207541928533465172133532538625936087241267968643471914456913742632831547227003087744201548881083784210446384896357658645293779488846275475889971910296213762449968676960450851288883200662186081006216883710503092563179616308562669861516905931553209872408824105046842038495167395851493906769203993304863591969013563987167593921492667387219052192212250978673310806565583230428207896351431720982687466639761812103851886010027007535357609222295879420934488950932380675178742462251810762048233912351585211974797577020994592479018870533125696901795358129792425203189179638111112334272308762649143117471277145494146897726863648960279105863443734290505482552784223919692618286437943242495463976848225551252744115956545547388512999252781554720106384314538112983596741865848330341241335261301769845515841981561731308612684466875932567208394202761652023400076189600363056197653377905698106539187490229480479016386301486887663384224852644649565947924537285869997097350223805157183900056881954566613519186560644283382256745545308770044397965485627645706866999221286190063805226370223533915524239252891106863204048103450477015491208694170350511662539225084047735599361134749230637434332527590694342451095816622526053437886420861010568142953231310228590643903326732657036156632676191717527601707390885508908497528065605000789840208383729432731301394772909957867541500574871330083394158816399799742127245623940197333727066935142646849831964398521441544405064920392922321688067624168595517465101115928650752324899157457954629789007666137510142915914465900110134882645515079155264272192864449504984745448233399744573577263712576147143807608614063371318863348884861671283172571022244115159785877405378763358780778350277367346684960450489305847053738006723895313155529488712747536911285798519537776943296907704465212836715238475476688090513091341111011315384368082516441022738821750005647180100516579793755787255605085952289037509664236704861332183824056848067811781630242712659227410518719130732836891803635009236638742355572418777864967471848963511972648480186217649652611114061866262803052224738836875908359708050962881224036075782788811684919788952186756453363163752046156248370587954703274184369330894280639020896208487457376716177333367278767842942857199779024720119952089352975988055278996914568869678990981989852868490638109573055210755846421984596410407283571441181302446303584716839213755526230646567077113469109373276297639377106635035734010551577194014616960044557453791017228066391120475289587999599360058495712736087492462545540986799646506867568896330151371584977122429014409000004867333957394070958072564438120139980025477354198165516382720736369513852977763279362064598727115764661479793315190018530993884801592817588497221168741162797874637689255310152498558727228810383466869922564704597920750765730744763687860541937856360175628093259242663972988847535143353277695922232168766394923150034872039886432009351382757007286787632257872503936778396532932702294381125774345171705531375884691174690387488652879206463545908808797539217375105875160761146863315341560477287221694991682545109656407266411643425019623667693217034246157424568720209503104924355134509376181443426845058178487813731758179770270308269565419183142727598043265055726760270844260611175959570162264850251477278272623264842566510145131448021510476604262412033338658425080616398167934101792290114899807232659295531144684188414188329011631138487493061419095402311603321223864507187651025518786416597087091549437865011749485989452829664133693087283990334163257091142573709171253982878565912824185244448811725080095106516751204824081930737640516536089921925451283740003524095143243021854574397720429439320837617585057947828890790835287942338473682858888620362177279356826350944878884391004676719129778426989408462352582552371216539322777995009704288207987787902587530382533927398892074432035871555270007628975562574819301162003357061441177517388706337682046251042057252726375237246663631990488321040326006751598224068518511270827720146896424039652784709881406305869465875153872432874482117436788842764846144168889717599108629816380841046184360139887861988014965122100508869196403080335898073053924638032849833254109627200873284523643863592729765129738043391605613116262137597338621868419354678591630136739789723384513291440582861977511077055216489677461274327500040901236218240890831458217903296090820889749272996100028666246456179478706738495442522666382337350975111152198053463691596438923739992125011114071287272875789955568217278722480721739793586695528671624763067463518676582545870695872278234141644196227048779361313852392519080127611828336470948625614137347564203709735412145657121773609082857699708637158925796793082531509266547572994502660115396863529812441138963236462921925854299310979066050271076252641795616722084249791958352285680859746898173845870616618888015091050715890138395951264610159672196982678679647049309541447639207648463424352154365902579193837478060580854349549388447072189198871693583517070405752696509909057760464603425762303246595089717697843359533101464302342589861843027765221808873914713466652914589253408261206189059507355759900260414554406556988971604677768250195290764457313860151959393955405573841543501058650056130488454327023640047354602194051709990954062248262886529319916583800619386993590293238087763155830139252564748455381824091142911511887499044470977015493315948110915538359071057842593411817823282406358962008030238076378718601878129161976997721163210358317885645042134192922827300560546830169448730525173904857595898224036331034445527536775262545178889844553296968240037980229219945406257631438601566295580856964695342327860214670759703599523953177398801572641099655758844121934966038972590290442811988845342605736871103630937740479816989140964389769050244671975760757639781513587641577793961024948354137844959441686138242537969777813976913936823709983926788790326047724113513278426918967197699656974497216946350179391500234423917384631405265744255243093967826192978345622864031638873035361518188662251649070029949159782761506085253698606922329302847960933031179075728557423670482979224079619541177020764476125565959716100592252582630298377400082444975691748217387128786171452850722368764547887096000193332165877845239830751187128263126642531046604973827162571668697106282930645352830954597152705436507058447900664891774970259228429815963851807127318280131127362350699271653599332218009328666782978239668715899792135598586803231100771257102840788800244053804132169905440848429902712723047738682479447109729318202760065314534143641031795131018556122642057350086967743371516765693698368750394129945295425690475950885498972255790034458079974860791248118105495689564144359904321778932296237870853536491183015186573958688997486631168650683475756604453330015947660226939829810584159322409120800257165309242638252871671315776322381123906313348754405884042353738583860532003562085373882257286342977709169514316029928418893352552535353760946314821104600624431197599129519872326333542515603386633106134879450246308277618132331205802847950464020749432854217038287529258034577585257496865532550801434936338828520048044645041312632024271300706821474227999272619538416395133454409382225444076004460084476185203854316653148948110434307761595863352955229161788629958193390592108274315815620478410796801712005296104869707542904040562291401592572531809717366414837011580672042574117305607032720034008453036537300081990698908847949072989063813189823341716370946836231689685944774183542255224940623241252426647242813189161208886609962077321494137847851699763469604580919345149166891578625555730845420782039598737237646296710220057104000038641692572958323213254268228773657498080526834803068160649833048161317299617594544095141934445433621726963127244865328695485893027928929618545405395698917441503039046832282713237025048019775994949783550921071692873185730385951594188778934581684521839303085177647553403648876697636457939088876958136096175472575997798928657518862724084396952608072914265009797153215538363920397257875346640869172384918483993935717263305042351648152915675047499333501417027854500365182879616377009723793342455508679303665366881539666640128221684994321006507987703613020152829659203891262707894939908131173198750326812507412304455706922202465602830107426143130568222958957506880491042884200594224249829927669057410215177330598540475275444976260166049916725751663885265923192325902706513592476693221014108437598989925768215377313441546893416021629505197529459371629230101693482798989662437038472602146782228821851681045282049214141756091360673360675869281348929630725560922658899697612989184229238942967734677329340237677852885996354086893197744654957889424100025375266253001854257569181714086234466789068919855111997932957269807875714303564148362055122485168013881642514793367718002702296274110415759498057803412842269217456514370439344377843792895549662680217837932189285506957695171900459708711744477377368259968008863306372751128908686408968239089485653367289362163858255288438209908463422045014650141662876306381655477105161850788957095720421751360253296371512090147611822822097596663062347135930623175412455534726227467393786135955019535742814948151140836245434662385708879545727172861876472071716272509617825657341092390318585053178156873333020389800013160182395689403906066445606126066528856274092480182660189189437701224425848192077949287356107943669379238380832564288817968924450728888433566902976180653517341769015175194096215093028328393455161156557464819590635754951888080789584756754451783003352906677969988425727533686796249014634281945368317304922565931032813393515762422838027818665757976274717305043377256948058613812428149511396770658385918811165678700575746495018204719631068365092176983432074224394213859703691760576043021407321397471430168176826017265134946509535658396945515191840990042274636016706602871063791758832601824553963942482338356979332277768908508868570496088949924266328798452281461020280174530580640614072495193149517423086748323638989208303597661967771219658650317607677930007735275853989482966121279015227760381242509995052405053907816797094335135641782507672478451881111258907622388255371287351421154213226884235599530965761002230998373807245130520212037593716149513219417655000003335706085525310119444151925350039853624774833204438348608563653803026709227237079308583961260789067512821968885817005016615785567891483790949048456906399213257754567865233903170678640104279991905638108062323994026185944237929933258098443251708244043952511109758650603465110988872351929790909281103583639043392808319043536941082934889352724579497914001825300003695645530797063496612551216092767196452367964537293291340361092476845423328026896230427464670263749994584665596885404109354585458551102232224164168787235687742975166914259021507174928041581213050148080345566502895708876043150395473451916760157259485432143833704740429495268540208542586844016106276359093553976033274214804774550268651099494491771599485660967664146010623184723457453617278844633781391499595001303982712687971232587089957252697267266030453143200317433201409540615324793402104120288816070266159760058826553045724445163717641715848708257479292201559116632638033545185495420915584962643333691379758111426579558108550109770016958198125493503993421230026939992159889570142687412396821466411448331871887816056018367518194315701693679659065830563645885489809343104752312594948568428364141420182600898189017078434455717694490426738032443114605625344252642139025661749572892915458608676297656736562246466504058761548316958767088464936371027373159172817655164373256024364264069681123583549034335611311765591674844103317201886500118596562257362583419522835348538202287086765320433951703213956869115422391366062888955590684472277497943321387218241554921036518491042074548357780707621491883343124754088634585227064418010300931799463359684764565697549207026824660908526992705839402635903479152284556912142492654016150839285061806458811350976670773939234288061611527432383504337041064197375619396240159049418199481058641491022760669923271301532805832197264119590772159955562409573876428419691648751292410002665663172758157255027300411076017448817382669703521532584698184725415069682694002971553849721593000863528414991355154743664870317251057935796543455075297293527641214346394086660320927336384877445137330704739890289811377674489645552344847893624145065329688791490154074289730075598731667487499500001675322720897679292200421581512617807596752650002574303061434512317636036162624900503805868715756176546245358283247276452959116853907073038190398007278256145048501473854362847897091663317358901148880201346512822415055018582917302001394345123153832145176714764086015760815355470149488836113616010987034694924590267882545955488681057165985029557296413238596247159941607532777731582499207045863593621773513981054952880325500192784497504775289504734550545683094199892032252362370217792846476944268608703934771034796877829875241351925638581311483820862738761754842547426654817129475532560518258395603425899120737700923327766447620537829223242937809647782052575543245076897344322006340554672574206948491452754220528092299887440700787272711099963951436821266808158460989911765840083406679027990991078873369264117383524854148490230258786513566232346436657307490020361020472077609376835737795162350260945960768882509302652854187084349645440785198231020329975910065538204688232998160437417021545232320070488936181619166954695797674907143995951954972179130603576521648764959253694077368908915767631728432946588910220277538348805230594021390245718358046457989778277979555280158808518205592176529977631923445694385713403943243964416975052469990530165122445716425989321957153906527997646631238205670024723826643432400949432619074221194159170625321632287511399814170930771103898193288552483523040105265671508556303059027986381017144787076312229101676929456980588353735551512651288369625982422082186276900172890118672419174796273848670603201205151117497953392685738277662775418953814954858337435590415973008705644289282989240421369290871188949548480310606129059790485827823774203930922646918167887751745286734114714144194504647904941617424723787337131579493022199086069699235689557426942750584375039681114942537504489923523359047635736899721906526120715123586571536338233907463459371538930141023822782889066952248265414617411879673644540790902313152084168864294362841141822184022155933798707049619573918467470867654286356696000922313882883939393066426451302117127010021408464037975823991011913495405028916681901431936699926520605851202952403380112207894211451238357890274854571570673702406205008447379366299397927001888616419456289311545757210708122867062573588260287029550539661758023814547889578985223377804428488062626654241254360558008969382411547597271368253279916181801424876819256387725058132699375833377178746118220029541995082469092194755094959736532889432872552452741387781954393672782525959833887867453235345969366601009714861251521638840969315793122880537003758209575418436804156290245564645326366078349718524140052132476958750580998609410652018569035850306321464606884012164646466528484318228276419433294139744530229464989047022785945215807102940145581877249615699037821055174486884489101353670863734252820472647256735956945960804097161704349750536047008005226764857805264654082793954723527128769435067753778482333083740029917001447304769581608093424227480170662675535571225195512300229995352982681455012736439598798965304196407795492268496888845818761356814814268319579682881345467081626655287435637321432011302209278336445542654141004085130952659920430918468070248361555612326809604738878081335820386955341318403304010241005084376061491176514030647361079043041508846995021225149026295764176618387763768180788039315555504372353376250841230213663572235915159502617572041060148148791103416067411251941900372810654004801725375670156893552673935445491917226975257096969233339293308974261700462280271712550941563546502867971270735226172725535650018502761090148680269871159005630074216533324701830541166352651216616914150545353558405034636668984620904917002282215489426196606791382346922643443229645947517965014216665416374339715848810690454819352447484297336335573982672141523522343162790319767799728925026419612301504986579353861007269953558659379130538951316349919806434160831419045963818283975560085295166764503213236750055096301650240192469149656277901742875727111852536658155348935588481507268747525448860801156407462176860593631820637101503526004559036443242148636184964000565185923493001200921818805257018870317506625149955641487774269177523206382966295312122529766163562989415596530094419076050248919963786204172747234596379252113580198203388797696289445714736035253336830627995633683208665475591613012441145804982172954728664394537341288254403703171192536814360567701991587707064254487040640539352866945429859045753150383009264026771993100340254081434024302747517410122497435174176203830630550747452413682420519707576887374089182733059110416062001797217968353696588628980820436508275679215888537204279891606854673112717502980891179377214783651027741131411628168588289622249987636951365433668076639407748622701131320716212679967070995441725353478522825565379920337864012669114241042557885698676324914612344179874262948790247813106108090424027904438673727627016022627822138883537711574049222538011299999530469723973099658243496085419685273161159292249833998465457261899601220105625186247793627352171530589344665164126209365248298019338054189076346829242017049308659514860696481550609001948636005142764828253963702799906194936141972747772087514004384660190518239318396871080308003120378280221968151440856607148078045193350742842238091420776019372937763066151029468207174984371867121526910906998420841987529236831420963471016362793938395754964067830941602601254021237731768160803038338443596651574626502800354818057143483880474767418300524739733846526955573139551745796998481219052703918591172735939189844058622763399259986227859614459016552530553525826305645698631018890850058693528728658227768814175236405641428884922222413503043996943687446787678385217295349832204183123072742517142767586855966291655743724124719336040529162047170746920398778207172894061045654123751156403816418079546258289788212175287281158513924355664849194199794395438974091860810558425285443610334726108699311725019465402232976994437731567559079775290173432716166179976625054993484613863746242914604689952867594859030969716465884458682856357327952960695969390850228902645633015523199762707148839241503178470632872093044172676929262679960232104883647787360499363244134968417061062667967506727225044275020572523386066079998220537689374334653804704107508549345037094513956556430371105459492154832705330248303607011838210850734930155029680712189380356162117274718830918968307551699297016636645914254287962700706102893787007221362222627246013085760535486100580221676930372584699323512978130161724978332730436091994177257736895099552096713993249978555944777420597973611573142946506136843880809673453878895972964042871616833607351960809953248846744484503282630095066412637345237354838359188792133197606838287330516370091883719607429863508702357093225160559691393872949675348894180950089384105819304694214167132612545855379070306455495413729585527484051096582287345035612945117782121280671453135309028904063208757390976223367223500574532477825485230250005059092971657087266205215928855306667864616540173894077161458446069398233129749608641938773963627349812955927153738928665158990946322695236739805481751327836709228874529926707310443124933448285410658570952975404471154040018131261966060922398228830015767966710088791400850055477622746678195688193150251115233819197065808345174328388364602623116895353342202751047946632584325525881222783046687665156735072531446789827345342234548898390146354078655480129684250790237436375640461363727517331532561848154043459082402885397780209243718666549414834570678505605246984139391906509273728335173421554361379127251567115858171798637571292195400961474421145407544715801916162274099093321833007183138037284290384393205772997268391131203621824022603915086635412178512660450751386102188636785620904157574550617481869467617402136468067730664374343861367658949443565921627337733892677923243577190503481506907653433814148849018981640866621548392289678481492813824250937547743898809349072106539573731193560290286474096690329005973909780390787256640566682208059037148469242296346093882474219606666485109483196496850457780203950123432651216214704560238336576896169077332228639008765873190150727687065784890363410460212315411381570565930410946480923756293378882415117470082512984147531735757604029643979529829871551326647965826205235165329683512653976517776283909013312411828518681743233827640174810108322771421380404751480653266230337298340955749773540207948250703221745817098082450655774561877158857242639399600908168186730202831636724468399001259402903211228546681595272626740684325158612588784735894852564862695199778489619344821026531052640671483292587277433451369131871657086607008990536651364316890008264681908975836598792745589278226113221203904401635303869549456575819078692239285479493996725034087520628324804793774500808207987313066423376466076339730966448321625842190980778294595580239148711372215098542357485203098255511922466225923569017356049036930322751355502014790238043550981533133737295801210076171358767828911259275172286428448405555637734708121775034475202990084097515825820421846678252864572190859170305102193886301080292458181065709488589831075213499765766587549401560922764776654778650570458630687290261384107446651451773621456179317530258332235914732423882451993886064723728824636512111101528483435204278749189559777694765342955890349577105813486693033950309428994865282845304769067653474823497697839535006364134871397204851277170851966113602440536977376733813181542225849672444362547459985995652505097474288667108884140229669933477780638423746144574191440383066611633905078475120885170000804599594301990818260738971286027666280712515061194858910837885101002394497410945704523631098371120254888518716081723924181297705780790102310162609955135305944863871694934287937667641337594332407989030690254690055257199440026825708186530286811473294205958566751569763200663360516054261165696921182506536407484070032820452408148497998542709034123907159704276974116234133120024846982189604470146704621331849422312987339849260899766766267276366265265349913885820084220709184159313867081070981544280737839703349380304542383332961856350568733026590305930251810068908411812971199018696973624061483776931379871281901707993173374831436298541196730941963553170240841248918090387819940262170862573449801270430492931899237085903347368080174357012286511036043780677074143921393737673191560938770472231197289292264290437930837699429056699912480541444423942292810620681244804970950642417152260832721544546714299969341899594794154186545039033581620873857205609305368469687182629013279490161782707689322150779175852280815741851233573870455648685262132727844812761130165813830462384146580963046830850675865560038924585481478811906465086360220112069936831293473002080463027441878939073811249242724290821914690780339674740378275143089757696280138508373276664836775580504435567603374593342949197686224121033197601744990057135630087009562408787046821040656872418200108131328356493787951922905969991171878277800098683273240370859801969346369577815911147155282465327213448763116080505933762750347968861467550967769196332331386426189108867912847241157103996085024053856260428526985320169475963549830134924893127245946488097872966405874284018103284206081341149110418851498763236691703678484917004821404568175085640706400236204258972598438872006221225541149519303956566003893843615231771204783587272646522164743409565342790643409290217241232623503180373257743648240148587518397872685209560164304807864985881243147068389133236526271303087871226463776566118819890190569489744941501634195164282676046463574806201309563799817543208117245677810472130731287961373866397958542651155851777985805970412630632168925479500629738288147566331629170665381747757731394550259492900592316721762617134102885265187200417208520793309991298189007321376651000572227799175434726601156552169819863666398383171861116692757463452825666536894639315712779446293815151141837863431026639616747366375796176786824448261521737924720355072945099671001741008813252560610463456029063958026163681906967156421853125381381057960209325791557248509408488075130432938825103752796207298601525418566705511474466988843293627069225021993857285765471873095639697808455810103925969152086567172756834065628324915262364725621769373411822289008249963492991531965789103618553561025835124236591440809492274378263626553643458414331872469124711725171122116388097739651421633779662211373280289471005897714620113052218046034874692850291139790019639969880576162373268003682570645964884887731625460322872759148218530633490003242191196287019647001306383157478325321637835840051990044688683177499201748828038078380269415772515530388276834952918980592245148440889699428456497372195125570014637435651180480071578932720401777583007361151300659954180909236300683801927415556786077109192100991326098694003886790277065638546490772356730486104064764047206654728711262114846175643611123664650229624626330107828479084945134753805623186129623664345672973477759139744812998468801371600527360381167501416921407073999976808423252823871488942763333993110533969294873520932590362198492232529398640480329228077629997080845470019986428418360239437659558701561319853659452692998692600429927096323489580577300782280075955121776341904241607985501372958261296332792939806361634608516903047966383483056047267144212202516511787044819074958169928553991800161517353984068144242009220659181882620392719681701531004525432652424036165736937187673298488530261738610231604491804869459999907887285290462594225462257112675054146833502751215552556674368842960005571229289741131954714140085133836928038418505086405763223866532958229952628587041427217173109405115589632369699330017397180584607617861488668742943889525851437191468663274995994992934052082151373659111270044737165724899874611202984355208254485756005706618648176674730997297807850312036112185249141182290791814475218694166952090238758418628792516892403596872275382756286921595198872446247058767770513940787349852784018063186404421074376877269654908979320578592803509438728989501119792988864643971502419666057521519167318552794220733940039928252920922195651764429499237964956986685248785970211061911962719856336457226414278956819803389461441176375374564318678645973583792027919781978921031676726065443803879985839075986563672177550312991346924200707700273002954098452531391198135388404370948545137869611979358344734818464838910281500314468878311463612883680721534558397298603211614127498498859385393667335780068109300180920563268847722740380268303793033444940478441050810017451500158237791144100441956768544725602794623204520802667706166015697790852648367191733468647747336445953756678308957929999885685165546234736124711470024186854784016740077263107629783061959567338193796291695162772726363083824537868237531525854792909065404288809965310123142804619743311491545580188434850177367556261676405860374511552806877119819797687201996775255160026775697022875814855152225442741730983789151421476500272651859757162965830704563971347045824487603216713200055380810293671776172294133358972727704530494830547806588908761350459972704508440558396124444568295686947380164630071407313611965673404425240486465064318602658716920187667988408401230322842523056986375150920630084064180409468945818836699702371626563783535738536867429851878586511951379409583487494834945974535719739593629267894680620542430353671953924073148923466286637227941795074773381597932752953971629289443960987657706468636981612429793915010202512186017776413640273281887032577480183720005429869192620774818419558815291087924599087282373384716512222478128578777547520093200280318710256302055282377548279671997168054423471537817234008418778740470055388646695236143401828670719044031224502614356754483276031126625225251205230471459393490073723116139157238989278539904929298725361299886257290598464552437748878092837291873681159258272308428029082326600328384662809476072969474818063377812278522334227456474296940654264729905573805886723246386430248448372983159667167202379590406453558493687232286182134406331545299390841677954264432994542013102656872045013043638947555369274340231345986147294863931553486468098048097554332748468229865098154816921475658277791054527922304982783688217848424642528626753995107784264081818439415259678920370227503772572591081899204170575667780401068105617686440801999899657012507487084972408850664076647913707208333342507059274825689531495837918006820737146328988494428798400704069704069582530552221388754403246088103596732496600305541502636538874151539947674491932251131261973723279348051373009073534464141677014654457766399977810611795572873643268037913888662974776034461161204079927309195806887562128957385008425365029378916307119402815927338238169861051699721481134278337842684359731987383033045668569776763491819863919304097748943004809857965928768153758689975826766848632708713795275402807441474971179282910597697185520230481755393481369847574856173000691822382601083307146266561284435505041931893703649720684935869107869802653607826764284385397673444220295816420137229902111503036859985246887960172085947630145887527543525574586725353845571741518001034086728825716810214340155796734477644640118430646938465900741233715767242684219378977163359839276485622102332120003535564030954584974153068900746987686989664563091167273751436375509145322901889477568057243608330969052758666615890532803408006134158233313754268050858290712689303198214941741616882475325139694638986227119077330107203827285095834367528668828456738365140175350972278330782649615220185669800356891023040201459257154367006278882167699458336564181428479605747534989857597405255850574670360704938413712496505342710865514808519496849931121656622947042159290916149953666076159699994099405961669027694106688194557906440764522676417965114828958815222115970070059530198608157995717561134132410495701959394491866652343344827732470200909326703229954464098332402886458541782355499706792835522030241115129392967201164270228140432009385420976423915581939556681998124514662833768685187577291605647500736048675438493226152954214337338805279415792201116757996104097292206147308413170612583144186837497027425738445945962027308574622346891251586335335562451716613270803548886418315702398633604484282370258465685109099455801255885837359922796249346380077623211178270065257654143992593843945966456314899291134050414652902369677006538886197014282407254996240928041608312759547500787569256097238553044802452138516492517238353830401145207653328848503232392815831044223678030862526269579137507903734086156298330399654590891231306751864071091101312776846818601563185301073221692527709164010513016437670028719363008137376943041783856738323815383791533979132616475542964602228572168105592164126346405854970072184725131797486076350461163071298263801959043201565684338719634705533426601269169506852667741186967296627690588531154769189808639502640575212164315930207529594832896895764950705527851928168061375390796337373407795734028508129545015150523061161188875535407519973833443311985709524989230183395636531010279744274479070538199938620080408624390176177788446627571381628538441257631439328642128237396557885968011491212944462518564215010623966022266584500877634303129059836021154065830968355801958580027230649681243986570160888455706088394993281005989781124684664816026963281891540247951032382521368464385680175527793596975517122158370710932591711318653133152174314564857825466307887706293485969202849036567348880678438983905428999096823243895335930071206260618882559703339729413273689317844884149282525919558206593346086963717269623643274231392970855938486189296548113786654015795558652313380374051494838268318243353487063004775190050832691897208070543429869689526312117593529055392725230440942365568316234945677173308269981779428114002641257448608840897261792286142311169175268543080529200281477276913902800192849719784399109830104786745521597140042020495075985513492051495336679798090640569711025870308119505335415344618739627522579037283239981269027992384201350954649860256193920010251473182723077495791507368525584089009430976709558209612356970121700456017608405942721529994435310843127091175900174504180509294266685401259187344282362629646367375251453613164818480216686123355014457966600964733007524312571256476600719731815887025961298278333460567722841825265884749201714007697916154580884572435197141910324062579827122270100654868085654782882891907734755902172161023592190077550465025775965017549677517259250599638223804409761668982925880954559614303528226584698763463698942358206880507275350979359138088034587338438171588831888683674054896356852321284055178588117842805221466670074540421863316598705138416217486547536603242458523238657476662725117629255280966608756415793594327861880433110248896789028521758286807089844569465944227545933379903335600765507793136555155958849399783051501791017870557715874223734945260859577669160908188287086238317568250866553444453785548623322795611786126862423668882649236554045363364052274099583056443320327090492453936581840521898523597995584749757539918875415556787746689112975979671859011790329998265340129815392825834044940531983882217663098475863946372333301196771334927737695416665561691389688745738256555698684718729469148105880307281026256734305112906465078775626312426759663010656888560455279908977503230561250238607846466956498840259700535998741233120142151034946743051279974598162171051773948947690454483524082301862664995109794811051643238864487157044878829641846739039599691003228434832605484813652339220795078039603814267649839766942373294117851092962387873400201971908402661363407098270695505771473484796813280393763087028417457651427849913129541913897509404211438720739041007259454794171193753277768436856212078596350321990097668733452712410073729239069954054832363865727271622383381479287580208322682475011973524072290062495766055212845543305939127946899467171929771588864878044751782495548443807194645139343730926206736183888233556258807425342102684207379594983192135802176916564106151833142005483112802724183846030193010977471411322087479139732740580312590164802830188254712070642233218691063343669899849879671921243019910934946009173628893934971135556683680536312573039688363032045164760699680537508363790189240844160543937914537328045144536583066331934250873851133075000970049543728386355613738546812043650212397611534998644113434540718696690551635461041989457006861867804446679799552128193975739543529307428256921988399917652783303677528019127584730854132306594248600853355454003137837566248546820858349184399965446888692443109204093870069912257797100712937835259204711657223449506569666451707997567508380056708832512523449373354498167998413063855561701633510408321664858061596155703348688363479742231142276388218979999238675858149921709463282306666147765199280420872166445518266306623116981076713337730339640075946911736754522585688685913429057460417629045061282733475419355057866760590002485899835048461512509000329432833786388726171704172546286793020993342668374093228867274153150049942077306827111338011367619046829435760104400707743590221355683823087608115028892816559325109493906739556948915304851937998128687188285704419708743655952103905699005421340696259124693143963820924352617162878802749803375271956692101302949625654537176819602577254639544194629566196633528650873757178713830869995420443228802495711466089011715176416577195342144383959418769846542573601042978512725272080470175137024411942907741051278810461308421392198206931395695814702370778935216847349601661145888981001404082107728702468873152228761766342457756518058267788797268032759201524936751081301647679627925565138317488990025932972693488585598169687755500422228489264907884277043684922825595367106342820149228847136417667326182018525240418007029896680001663479086236483559590022449849327517128629745184914458725216248541088678545944902949962359726146736007371221302274495447837026009719892062750848490226133790217859741761598545513502420956657238841054374768003662943817286373833314597038830885727489979155383551886216845632866931498326500645013917837536278135290814711440638389205913601026482082863031402153131016272664585541264784637690551982259762248003683964041348062831078879090325451855660783373407493389127257774082823358052922644034824160449727212419140588968458366496427333087785358662294829060168650009945783791380362452884875168822691091051261495618348573610048626682037352906027774493219835705735189031900871748473845721991333671120473934505850891953983339967251088340339358771942661614937223883693615676767830398114904690235710940258644354762931366515554678389585563986700623943177181786441427599959582996818360651096855346385580427551180749265654429574199194443545084022159021884529859487778917495391886315418095440915453320666213113341550156582334871551263403608998509115216756930592582103042556489961638934486123462163022231393861966359940754598685425149146688816292375377598027842921996078499156599030657054232351098130224693356989091128903586376456226115699552379338178713808819052641132765658185749350292167790379666680306818126057708857642852820798946045337813943774753851608512371006554738396126710351113187447975583921646806252859366670225615285998507871461551704843658577850083268785485906146267078018500574917066903521580623925935888736412361039727065135084020113520076259981280150302432429993515462189057466630051211145907648010345060952026453913297090095831040722789924706503575856828384839728696668448106575460395375160931020380367827263815714986008096363719021868212586999954458244378686310686658919120558144099924480734350264310909487110915019253050394929108213284942590483729521431662889181857539695096624230475064008755845726474665761284664949348867495889273441244844438200875836034831698708211120880975490365457805157255434373765038089266922695379640014269962383419984008983638176312192691913672287372491498949983120988906714440656418421200924662828245072064759113228462490911232844494719224623336020380803991066257285779842422529793279714664994866609413047934797658549461757480999995553926701407928228478612045361374004995116042207195091185479594293324937300323869436553266222379749669449205017028449004028968733667468236921533608896121630899673594462221448784769809950897144547837768690231993398257896973193251354225685583511816990518586894673119915556167639186847763026013063747285786700487086660770685990612835445337564090038776593263840773216252112312395915857982601044976574265146464000130896651037577627188673173579276743752554420399237862869835280137517675193928335297429964163776712529904517041635812446492806138652513641463520221151322553442807125927450512515234959756127904408681715266584605970597853877790810685799587168620485681263676125085031344962779016624163474749846769011601924121446530421648695358719102492180580151278633018668229093690492418712601363277740046380755016603076915803688238707589513704816364145955665822159089965087169378483939463911106809911334529756337088098042622146296413766007811046132206926751924090704141759486730447102390300500533016518445299385567372316245220423861835009816701736545866170546500228471688757914570178669344269273314729711661217576789529502589875605338631243459159593081167281125035711984514377016377677214747476264561707541839502363009842574342588285837794158537788514593236879831557406731890502521938868175569629762101652764710693234594810468963266733089805775332368777669680085014273143564682449040034852425893670955894760325447718165419846683764520208783578384905844536110121621843606682044780718009234003459596901452547583845919337870166615133861273417697109938693954894753844046529607115282339804633620317816646991740873591488374798608406125931021733390718734863841197211157267683422977793832683938243779733746381945404220383560772013433555579396118599936989218562346613036734645084721172039013449510099852722023399648526930883055504787491243549904279014509592973663116087628279491955606369510276037694987197676113920772789574288996988340007771643130092264099590857096961049555502938095262569222188568490495210273011739601243040112054247709216607439412283786287578856235286133874617901625459960869419446417905529574924739005900186029391021965173621033571189963091446704261514237988727432088685425412599164288215076325835988137456928761433043316907254881501939639493759635062323003412325028848786193522149423440176301092842171091108203109456486480174688634132744454103479428286469367658853749304231316412604151544583872955218005226436709360769422687520451730264243036755976191786920401482662503062831928246095226167309279511878823013798392425723402892464758382761756224544788189899881772939806763731250314022422170198054071392084488383054373747832003219449802834221533997798919620490473131906205358447088943481350070774093570488740703237047751094650375091451902799804988396848220873188038123853526485952991756370275249243759020514588228418352380499002007918749191810018788450470093930921437054915384446952545852068636720864883975805579885983429449370608858775691555160761008999460076598483859449884446627818479888823854600573290842351573654147125731232168368361126600015117070391111345321443157801428378228079423163129578264413978938532088295138074465476476122078033768037256703012550308172597527425951063279300769247990227685020073001609649103797612303995890734985541265210264099206501733155795142240383992833919358367905413270585472711391922825987619221302362337260982629311344315845275239715151969396541147529482398694386159825507714501549127377923877415178686611319040135033460860194927395005371074226239956341116711530076950732105452920583346812223910429992160031365231650402668136801599912750848039070394132966954680215605810650590668765132576697448750755376047715598642657239673087707301703474764574189866253578943429114635391263169430445122120486203722855268633850970640027250338093576874313995905824616641727734062026615089302767103915368445043790217596716278545661847178983813182848599635025963811658249183288024795669810881143683547914876157005492156349724990769016662594252308658435389708094651954160313611517091921669898463035140115372506174563842256796816054299287475665566071735951069664809833327935662835965149622846903897836660223369035444608339037031452090711329171133060705876859375038098527041477953417371671036505435458661067913731486466401650893131708384040321637197613164304843886035141242785993066168434163247730483161560865090114986816417078943355357914081662025904465309440001633319212714902357417515870937265758351597349918492259237762710927076151672428501533052372397766895342396182996992595944722752808812295806688684901718888631867648003806422225187728274416295134132678784597921740158775563357163317218354394897855511125213752616689861492596654180036201991258043796548092868941700192064217133162467448130482660207130627287393043346015544447589389423344153180397020833370997742387466745497959298619637958789031105663045153960904961829615480444016889316727529965371365903550241390803841361747926786244362365311682741461204868081560255793386111412505512445361911098480529320906236227480267398042233968576698618525650451958841850979747310272110794915494933441066057770586468006425782843321157231214798388095376636490664593256808675880385424097952738416285283646463846470104978290228220936891418051478206738091788533551684906708160401355429496091509515824846535455258199498987177908087641268602394331453196396578739557270452135715563535067791487261975516010198270660835029942713644974931020699992784148430137979598217844889454896567338765700300413883634437451590762306767800362689062391876283832200481795762652626486858987677280387508200026112572713845964530607773190564670180067290444554815920603460968132117107578200230117117580782063902583394673873143930611680155235653691946171010605760642739127753981512255139692422921363005778031631393524013019982405582118811708435528619799347711705980835980988985721589027116267285198126193583335864277299311743342840397601548720067811666567198410743971971837150818995484435780640017733179342599478017720552001118061746152600454353889324198982219085802478998319045396532403547399442577737943380033214433984548051982561614774198121970800375799371319807425444033608005268338130967987455307092911081180681550197605384407254907765544326229051889283789990370108212473841058151007717951512280850476194317215617332369386397121350295084603252434550666571015809195379777622593290182750087354926319562291468202879945031422219426377872378770119265511595620094407006569350679668934814585001523939871764002746061332731037487794336621720937421153946094478763073766241137364016839504316298158556665922664223242607754023289993621451064499697592523640770542064916350208470675414369691908744255405641420605110979085706194253466960041677588019583127768767075337146001872691534345793148817532794661847207794627422259599381385532266294958302395972781274735745389488008476087288013234410852600223293593768891940829035399693243441773900846995290210903677997980824268088804517189211695199442728323114367167124846905275430507240524743910158323282761578433952544996585835111664910309420369412615289720155114827264940452491953206694348079712171517591369023112028584529725193388095684116778071504938881782390722674354480694509780568054796816364655330606224298155060568622196884985156448747943593156331139009149089151198188754584508837189534340244660484592213869741408378173599271073958606640421959521061321519947273687395401110456110116722560299761664662327817771596850168059153097564352241593285283062977923318656819853797827878228502206385286408190257182121562371850521463262018891583852923021372306822604760649605283438286483860931949653201070760436425660586249805135581359422309300246707274125234382059989967607297996004996460048774719262247903383221652119490588081082579666118323121228602293382384794882099205654966136528906590946571403475945406541499053671829774060735506533863696851158250424043623507581952747897047369600454769887350914993523709845543868325727618412768658723302307915676979166852588600451294491835386385760119724225170074432447475418046124228554093548194131971944601935872832137722862783127458435236918620558081201802473326603278508765016964225973932699226095872922043340795432602204189771294772692119652355665037675335204208163242404306011711857916321378272667261208657563744874239383517639519239808406958602034950651582191945355640822634948599218856285377776649957521977529360361338560089754407410391601841019718826215338237453074978378788562855268489133591875505460842193309137522799108876875752152627348946012025410098585865614031546059085771212498328948954160864136492040191443720163776814011213274501245183545204824543681717488869944624315690330360097415227007363062643987469106435425761193443629671899219705969855926585213524106735078660991898817478042800013289680610644954502670100485719005427489653421381367682475899219674525498265948570889651890969479518004135782284307813811540473873690888617648489580137897125536579975519998682158035911015451096172661178945425569299132956607228648428023139886898088831866946905395127110225044569751639851932310971346074629296534207489223050747798060082333568430826615551172171824559209259221830840192132425370481996468919065750254168811898758259650261340927653123352625631406243014452597727261147597993734327939758987598577014711735937844238386273916315928527124863943209215717229828128061947846111540229782439366334158302334645516410657270646705203461732837630935419760393755282639749053171841554793466452796926379178587093941307745248379428446182898123770400634716168505043863078385893157949439458412043113257646226658849226565955470818961561390095765759136200182557269608887599549216135960734151768920832348536194326871089934202078817652530737323391772731254597693349832536153621996384959351331258684075864587120698861851141058941642242094244001164784111803158576206336638636876916882240242813260772352665658984884367356492367211047241625560116394927575380358962932704340712346082767290805627370194536317984857847734208213526897472500808785217762328236217642111917046075727980916351728776601603414379423809379414795427735961085915265788934094967967217587389831244600431566639787431531518156373513723850309998561909486908201342591978336913351290316081917266281653098836890112772265214998821364310066470069708111845184370713884744567428111788542357303546941443002796105079141648639687933290090661451224593041972574264773160201549370845649378291781577666253605011889673524132086022050395550131610839129609973069095751359456487575355979402228912476117414799591787357301114848961083961960616590428454679588663257696157116759045770319219210063804284909314394961366815989211358527659310389513404157054583076319790613667410476369647348983509926967064503448845357983819941755231149948273020441488307610626065234895539308401162000336383971425722633022322743518806007595979179809721937763787464203360331701809677159745018230947834041965060279900197403809636998063923543211420685449125321613203103762179171161914923076697969891902539765626907944994983985131946313043247576020194808622812393591434119835569879968265953833048890440192594876624241124776683529603962280085479210535307069770598341110053405357106103388066293994201778910471774941761207314656771447045221899928959674490637623114208978402859072372030691325358296775035365619285801176263675000557672579433324173177825108658311301828436269427525850535697385146544993725199712758191174896537518898417958082453819710958601842675633962672018754379522829330405372971889386422533102265074610399365380911262185355017281692751939148264569104066792645920649450451552294019576559381661521501433678387682359461038442402996688160842119172133869041057284291103217392474698238870782040195497207315553777892874381281531369376177098962621534849276868631392271728577768699301579444752214011958825406243500437385727833902444221884085875931901406317611584986188998900187429387795192212445361308827939667201994393358612702541452239324144924731966875872670756242266206499673490045279165348636719817421549884790144249746629032789171173975189666941688001093143779259768535262652690669276249986382150218925384095119184017434509444271746499925016451566423644325269740733831331865343073665667349311954919817174202739683252378393762629907714422853204936048792894460155021261007178402216680893076011736689056405413784314875449828271783864577113550581847910717384972895426031276715301533270571790345207896390325522254187324502259665701772462180841792735888504166164724488647427009015939718966340836712489417633487582704694353903398182595273745761410125538640574175119725903717492749612739595625851088379487940588284979689214226046306699027567301328667470765762927968730959124907940680375426532510783944547299009252104713372182751085649785923322803529332238802126867771791889969641789108610059017972125406021685780789983742843308945474833730837750449616508375965503950363407120173713163728507882404423558229705470830152133924489291629154615994781272555143005810072048771544322130686254297632193882009713733373822175830031906476410503551449897478377551521488249364729829346349949795361849489491398670549572109647028787193443261447437793543492099127339721731558117195100321417834503464645907381141738139629065310094174013065607187592181208948932844153884004004604354444758268752878058974946683729567965577570782918286066820548194177890099691768636568902810915934841495715131336280692089431652198264621137915743407072520752780722336062688043743235932936197848339568707191994557798091395825577069854150966897092791619715397853236449043823918778543654566862009867635571017684573061329716095805695688920696735230742125877534325947629132395510184363735988907490299636086310731520719589383651402141797712231970470948863081671776980548156119103318879722898854965479255056964069255952498778635458507966104076196272953205234203169706390680901022091882779208093158224364396370683823940692216673941478427340247313025222983096380003315127371705292592372014398025311433402327872284245332167989081917860624023425280087185976873527249522254196624912704557884632663717652374349834982307121539016693151917614983837507139733892603754756878467679601125994924417706601470112862723973773415310640307594071070424484810087338831515901547008778291246991909556945069278304453061753750040569161222287576871203357832598715696140172022997005696354603770768547290735967293202761209883941708354066290669246940276611727831568072404449375054748078916263847508324342948517917014221193643676656784681125982758201690148854827990162115808244243485996866262921640863242122305822537974425361790041836582341594304835777047556643065653125591388220155723162806735399844795164434573669575049804256355689694229085074892050928720456332643093915263080979682535561989231167312990411446186330432077256023672539458276919097139542826786765743204838173822454583505555202440986266887177790642338006216885631760875566873529539745621492836348937085340514784062802162321366380892575659640153145777727596917035993832962362489452507661393155777847410679192888223073153967845747400709611798093407619524437007156049729224654730309938055022567487558778767419072590529101570671706687397683840811836503978835461212902495334950083568414523432797643729833850283127183776403265670688106970539790024350491652329180101154191295905882711407924944062744687183570921289221579471586789691052261393121539441613096300780833263533311029120225028536054083559465454535658095459712259596123373712663548977357269028373196501170762089529208383014248628350470239767864480213950634496175541451734611532188366644195292617676122176054237896639312718886205524981864403448626206432503570184388693208769686397975031480095769388171090110304496700643951830998827226928302997789017627272810253113856913195233745974971844375112781796175030647162223361041614051047131528535468684618616227142880721673805878944455735225118458727126179002975413155341721032658245109437730605562227773465510736706186842748996272217305608326912380892002803368438523153360989757439948939902352927685003157880990023535675263048735012078884021567446255227386038900908762878984445487089508673824479349256478575910011332533660279952728470762037597821694925630491875924938687103193202925761348176340926340821631124361797824695003770918198960727877260377735293489888663980350994120887273291534137461019669910316995372328128146382152450224871609280428971850703812931910507487991926711920524241287459233229858139514917037487966588116676867427148050778061788167100009149302911098931497326064657537273078444728463053373660073525081712512134991157571688832214247616338353858173244596203363916759608510561953588265828061349400763860628660574037474970723888682485478332996903353008529694030397796034253523727709900963701530043392696101776326853570029452833949346908815957734445821548262328546367509674594734068097736339969163490868419375053227946344567837575512177192315957517775106172403209074372958794704907639233383212922000165169182854988180331044105751718783500259437327252859662658043786855661302405444497168739793915234028786529858062775302405992676793077759054766169267170407312575684782375532965009688455987458119723012245571208310378145185940102228979317158484351636949828340800496229024616125677604104120390684706669987789081568703222459736623201909023699879592215576137063240281473622425770482351702611129484720764298694119311044569406327016407356324371281447225081296292455177000580858945042038142340479041593765890089764376513572098760841241029155552917669857597831447675274810415441023988170618217956063580229944980355518237287540298425684573582124737080106415866895890304818855332556757823855530328368351969567114216681244593007416150601476409458347058221159400672765578247965023885865965611200681807942821953975630511661927490491512308790330949066434476663977126441278158313623851821491067044064975724838993365997407036494239883558004467372892255770264482555227083575829710615179366390826022265853245131640655003971493819833955284079774472502516461401527420680804702364123561821006559449472728838861576254826021318247287525560756416380468381837001184579442970513996388717216669164581637335947079930350104431130576454876120753539692470392403603471866158713668219964000139535473674651278291573052836811166774837344952586560258533657564792841987748436728885061441844096158738549671580466448951342460998818750714585929742929564043735465903375764223992372902000151227162296007024209610859406503510880860311646638366095950655902142211856727878873899978379499687815884767823449054118313442641092388463938771457877816943160954538856847652334971320623321605596573418654989325132028581576773877802080589387247268890689046699472513692536396621263394875571155820670047138735975051601700955776502579944674819607453462984960068004713941608116351964356794188040207717040174741183219682336473167362299593225346656484443014406558056958301169787986075440344905219763187795085958032650598286886934140814814153867610382946431783816845927659342855238690078612980173495702582976592732637573173365952888207727664624510999801392022305974417704116225698583829340315130110921502646077180720952640057111072454863821694946758220968141363771087900262029702329702020947246692080406908591352483140830539845467986017135873236951963101668262769545277956900713745477281632245337402835317013986346424177156035345439853648813565551280417762174691900241944335918434972944413999639890718901884804144896467644671456327991047129417423396503964053628565528411722936813321660218581847408504667248991818301076091686924814822480668595825694064212735655343965297715160817226650700980316797120635090515148178263698999076984221578345218652544778170092805682423258027465987234959474808100013861439767407108854238531638181628735520303529898860033830900269845179987256385234688010200009247711326862243068765645637083359416745339766554269697613023767243919513846572486881559819544079125327927633175615189868382212482843513818423433949715837583048865539144500332564520904759368699067677221285580623134661768227468790197470205547979487340315896174300752614445484704628334802795462788969644986576838234803761686071516930506345823763285939851823599293502092175889236548832712617562225826927541224544597902962599564735298875483183956294329730824109178891926417960346862226615528943719826441313665080133909638110781938286677947699966191860931724694450648970136564324041490697150268785156215827139559328583867924425598179622933164075802304198953818979435514591598073394638206896793351602470416022066620437790101009613668171207046017692647928069925614251136495760931855320480875252721943209340845939426903863567545250388564469116107531437454803723374720321517772407460895025743019925246730896366105533212555669161277056977590736038717331316755441102804321960203062220677548973113435521246962081340623229413428160411726474711219851320179187810283152900105200721192383202276764529632958555661012992835819617153744637017618833132161585149069638475688146891723236868179038908483057077432634047032428093851636785208463625231835723389690715293244184464497576959627209157807212426895838466474938643600059178382987045206110115636293251659876051293857354881033253972959296791144617357575124423162948760061638865626547937480140127469188566658568798862457614454307492102993888068611441569923203678368294071374173497762530503083385392574131228058665145396271890383454836782789519407140881689390482700815909123183908440626584981703902126737747687922796249930867440677568582702139521085826026221797157432155115784501615163095153825654345019064953572551639106519908249565638399392418024491894171402665626920142664912718544269522004675663123422406076160992795083537844678419337964003167421171024994879564308251651227027433909143829927680691337892332759171175700058472137503807319141778492901379685505493877702435192596532246745776965942060786588505946699011198134373796394124562123822763278623297382019897655253584663946675149998416061404430631230992379187255619371689548958441847905604658725591497022009305446963533190370650400554650595991386757671096678168461682891645905111707988344662474794089422783649384918176106083869176222280912646707117464465150347148330266961736835622656118966382377748364460083112097939620956368398459910221011510533760661170504004727434755457871445362574129264543175776347955242621671592860420631139266375480353623244262762588328303217829059010071098331161378351778511925607301675771468645929161521829881251484170737699123358915952725318776747843446226654438588844570792011085915136667263547232580375885160712665193406478609733873127401656927250442963001034503590558002692411150292236911134268193197629823965049776510491321742009471507932345572677924154382018224931055752808150781026773373339724158082080315266427186988234986520667416525593990256543241462414326873701981789591982258276328533228471230727050173027592182807474760118921547090088368662156762407846183265605557783832581507168329341847812185052457763593783163771538768263483696561777531834656260062815397636861036068672830075098770270990942452080491819896281546080785342888658861463657671534381460628866470894370245379315218190719651457570362469895074588861635942224014228932652005463958318975296603903601799937787514303763205440273375980277570315388833523921719085848830065025869423776854190937547030252684233836176726827747689344739283952436182559056665131328219473568076904434236339460552653982036086565823912384267763206505655642864821932990456881266331948787824992361248519458531833697468991419721552776808209123786382371142341678298008886890356394915118582093140414077586764422761807212344776329000266442519751629612670611310862266033527319687357735178379626564851994912217603810859400419967322795385450875390118772097366875876819079471662138205371578009228299243631798840143864438295365507316875257247416637335194683508018338520016835238830097715477155138091361359553282693398433884781413202698095072665301060505060986190458981955306719511186261414746947715855346885029773710136200244884225667696993988761277527312994351671165889208857923822793820758283851811422637656357965412172889359018124569776512177734623890966883171942982808393398359606542464341229513573030772317871691487519393006669067333056489580081221718319217263314324549903344529272925863251892227214732488144742235513702778946326999068982221311923400793913370216933514041196043915879099722041499559688442444017742823410767933556013006032435924846400711725643818771692453469656560272696599930848186485856066669592006365752357099490222685923047426134896613459377670681031722562393142556603582572315057713862087988844387883112339499135767559775130890951971114172064127317622387215548620214296327424867839529744233138525286936028869435461379616845952746986854481821229291256878430020906441783161832195772785802242516885789495592903935290022470161506671392886677373235678331618631695569863371686283847020015173287368978045384914092729420401775250154451137488682000842210112850081060438909151905049699591443203974510777080883043725173772485795573089796759127970733066667154822203571893843012928270426427790118237358069853313520342805124495226365237134219485381063562645661657126624934888882115072458745633606417894447710982627712891536904226904190889813801911457821187224390976795034131874264208912510450224334072489583206863556503978825009397646088707672197829394749613744348929219618449521064135343871392670618883870197027666276754628380799630257593007402505436675524220554966429622918208079441300722557774557970019033251411355607063097735326571064290787463714833856052682679814063299864957209367620727161424882852473672408665507952528544061629949346743742403072953631936451001410606441538441636527584185746497264095633092077290087687906163200999343381422762969221200540153351866080954162701062256660181992299766910626647820879650230914116278442093248610665044086716934021039139779864744362030019156419315958205300610312331203214336235660722754578024362711645149080699286764954564938651048946951606515304021259005450232379350899325522089545769978482172015801054962059964328818371924550865739714171565204510437077722139280544581675915915300121515334042766895020536996111368359689961324161402412194291057690877771822543560213798395618242874144999157539959274310538270915048794197977612631022242477955321025731632780756802467149091895475774229185884741382867230843740244819289337641954817559123453397597730758826708075654212151439200162849280113825136813961882641495322308540771546486566750867378049748927881584656802755383110892968156869720870692977070470382951776307178049328570405190931618715357171137906468976280819542309334657216734009039179205828625914230215493712499792510774224785091323046875512121148314548861995971530605933879282702020062473017328923521784452991355577190573409486063628962538283003468335451703792464041915526924858455945225814223255630728349936593724809646273530520052354383090721684490753148384279190028430216630082106968297931837946038237443676247582383596327034756518433147195986913490791732772236811373352928666743613620165595304637170323702220545976067810480282286442437084414977524851684226048697951538974468254275617424591190373652811222803013926280374011633363903757823785410524681782768074381949351855873567883046091852870716217803317044782430268277012114498577286604866281874720908678994047409777137599624091740598440266338501157254839164781028245390457113831461466711669044624802215479610150391032316359614351105942049703667207226852335555052326330601461528241197793801536946439689261793603083332614874203830755594652501572163620275378320903568057346162977187122178271846164983100302740607805236372267510151379666853517584399767566377713337839347580775134465030198928566276489195174240548091293118328987774992705057851945257899259708024550431269924960186454072784478834163210239157659998853502032699713714437906145345165070473728567219850585686090735898021395836591455069228211894787666736021237715743425032750708788276211414529287477863559780760074762512721081398492932547426609932453115747188208067515894336002466654693848713889286594181806852811243257499317895206860422107869151328411606842088835399850880309992361959318521201852505756760428383120462341146579496780014932988039465488150182915560647720270291968822524885329420230114028601810946534893685646364451599560387166265381534888737731031217084881183883581737266547277326796708055042957672213996878081009280770234721550802054230653996058738867251756643416088911283391418198882189397376189099225722502582060563573623053535762145740896675981588409533877484624140526876485050022105488925202519913218633894366334090726433852108842592335624485335082788833432605047784971974702277048706370930552084797409767827904982036573558874523224071959081578217975738713170938735033504332840921109063467712199880634780154290878826844149518800071091169650325012598031795976502585016056698194204731609415158824917283260008723288768907430388447066881900748508533928348101110170457019785067379972478749641966590314238160821993371968123959695916040064436207972255922042372653872707904280177861876302432464048024770864795687662402668176204166182564258159730447662361305064873736928189304899875671223901861905419523633669565154526334663375647048003247157439576967286155302005065511194674233734335791470657744340851811451744932131380503907707522775858909550801595408633278161002891008112206683690664774094007572364901190743495114221467882735816487711746101874605818527222766960220927341948780201512875295475262101715362066253716498697226424120346490768990154088133519517748487646928898493055123947643229593564827785143473451628279902404547207638816225546632374481708158835262468625561327389288816024057945221437417673698951255422293842182270733793972565171858951741120514373846168489127711666045995794280612604817193995270794343341021246350022081269274462962193261459789627936952282696265208710005568183408516554624745916706967850851889591197536607175533064095483835520951375056265456634205217138148270755851657062566795012910576746038767345686794507185007888647598012833804606203162040520401964965563716819788015266530711676377786874313215656627167301506308295440129990445500255403528210538699291713922823682399137971161200670231707015465206248495651109358845761278354941006232295500971625909138127665420582518918424132187626747710967069010850083720245743611086457177664947723739249471345064568470170855986815381778902467776675417097875890620543921160624843829820562365091561774063440295587028863577994028877117210682579662274613838295502255802120772931484471627693196830176760843969069219326840544849084004265426365445444840989566507151794584434592823493905354037252883651725017268603370236487716046245120153044377395039984383270717024682564149524022047817416001275300440810469125358061738342495204827731467674328982908968265270947777350881847357946869821712113003732021224049118232619287219268964493262945428853215243845261231923773741177138703247340341628532088547160659216481289182397809557538732187785860323789919866275796500405393431865106353256194001209914269297897792644251355067077255039727567397488923821805899691012166062502762004564967690960318143469587157154605402554366438826250050106782902171280416959749062600968103784795474925657527790073189673285617222329642493243916754314967750408796113067830475058277933178467800068407102150091727909561563302434911111451505935049977867912102294372549153913373733898458922931089883363623844550143873813683004232334071546323970785358337722696020806641143244880501836695737275474937768340777800881418113893143395021978189054571772112768391291217037043894060996524075296034578998289490478219883212240050722018016677930794437085197850782529366796340277753407056345248266504522367787746597620456218570327571357644020804164312201550899142771460843860046629185191336197982923936634986454613822891983566071613499290001700201370088892331372647547967670812259743935840062665246861458936649821962050390023415178113968794400566034571979200513051518478601599336942273991532821407731972834939825240058084322851330577650754542797091745569799864665577248840102896442885564678215609385446993855654145839834969109448758579157169506813663599313127092291162858627807951379424285312013748746185370620680097591865932682984634312300664723413027170679664634237591867038105628109944208009567264372271322178826298093000389085218131418585324179660346622291680841616925621335578646120613438864048248020530767801456571277895690411014758211703005351621517139977428257971650480629246094885702749445865422461437745391972390400096396753663365519635590287370011806352347086619472269871627724301569980301989858464624948741188559021244487469714143501224414355728962299422516752282669221236897829086820601853681240938751793357627895963071230030153695181925602517239595449874205669773160438183315407218872348023750798309674973425937117592689366173304409453200134674967930611696328245203983404347363104270484158807517555775228447931628322067485327586904726192373501869031419313779230772995167924372425723188976474648209481682908945194573803494894700958711747403624490017571898657028970865095489557096558852125500881120673473292365669873435029528011102457292760858182332839275227783424812560515470551723756720669224399149682585685550752413485519537953106914960100765260179790143518668068355463801628790775352242364187645868366389979442432114762952408134283332988854349282136153007933364592400272321010412151150544131051004984869342033047141373449025716889724306221390132337778467407312133392993668176291315029822903467446577772595861787060466540470823679460892878841510290587878098492681876479584946300897325039566213955423524969081516391217229986101526539203450305420781829450268519613897304208370627567236431739629728339133289411433750116240503744062221062884591070944897901065156446283615108796125559650156975551285080485093776944654270006616545349197751132495187215000511775285998684925779933109799078701659223540487869721449620509099004138505670759185719405504684381360460876563757907943322697194167530436451196662622754570081542755246771344222259921319161212782783774834748206049932335785606603040177847465839834754738650147457453409499170087689970177902769082595599716963258149839611726481114594077104794235693890189937056326477269554357271850869546165489016698029668779024987919989189868349395130259819905768810143348081667252292651179126536008389376104184438531891451825743111281949488660357713614967912917369704289315237436586215780015765633401256388875242559468905090796026583644615879212769942430087907285358738841995985103573767292216972369711677714563142117784679798650715490424198119019397061950533471819708311367929394720882100172494165932912103811883524282153987745269402732887955809240037102398080467450889794071370880450609589167535886035594770770842571882257152455541278481710556120341869632327861882877479803376001839349921314896771931298200635942333528374379038578090177961492616973632206318938503421186006635448313370739888399628203890498313002836049587792875531309731650850215751742904699658900511452752942003070150057677152243831420403548932286400603296376717295903202743243045101373677325686053803725410474717554843679870480513180042044839756494706204143935154186160782529794617808423917908916298758740856947730124035802802913685636318088525946077972438703706789244573912076997289406308661882035823338216823708374583227848053346296780107080275699878110511438054536010011992634391484697962288338623126422271549033293758240855940753901762758134086636793302373257332676665004887097322983195473677165656706028674417756836148597025631348741971586346383397742271710675830253862103673867933731546832069106998243314769512720803086685112535232776349980800236225945282266026774143238206727420479720082733601496897999887122161433568869321518134982333353666057381124152425913540515705317239160263785001211435611351192041821533789986686427081866644275657505433288479495723058828810686389267650362115642999352632916004916519496113665588917121858420563894458274003054622544510608264301953500638385591465366006101972646692013933995146915074117259364772043027961697034997817894126709693081261510104411195451819884493142919229408328275980741437156085949703384759133109261424651119819416302385079362967047855869806615389678096425691872454459972959066333444620160281770516076259193886794589683635609670305068495714081388132529440570640569242289940227756477373201162030736402344460332630964010415075068636778472072764117916981937488602243481778875626850860670135370552140692086631721195812132697768515908231633248262783545961731958744571391691801836992376496724891964856561544102511488735004917330117936942735728236529457047366476208139656541788542888597945989833649545966260160229446990085826553235820486180604752434679224413742071409731324685814960211109455453634920669565722630929681292463880201712011396929544959674324525891070053297496940998259964646884294799028607440934780466828651488979915228530991969289508268283142085040540498689363603902986868499535893686966291686896164391563023428621359414348143619860871662355187829849971291179042472219211450412360588569749468129746413629468327317885368427472774980981260305071662153538701107719045578674375395598951477302841444148551473799224381115981179102670933394077869924860518405926091854626567174805148253821042642500628228730691555861273270198252813194314230123568158811757693348682943289977844531966357612783607062424896380852108479224088858992805683712992368545903045792928231075308209746825110549733071596837641554195760305682948756517956098349973291142875139021025717256918546992818671846134790132600595489645498446103878965795067801310862371747603654799074075063712159568762335101392140479892643824047492894807412849077449757861386924967532116603522111310963507877003416096516924002659031569535391694070524305715475989257969996847940659451862077676587175322008795077983155251854891557749874735586697003578074170105493393920281232368905251972104409215504066944364695359680232093847825203447392832054829912257587421289300243341166199678059475994671931579096056124686264280784590849756515437762380290453244488016398002738495947036897282885137239220542398067547503280566916403115690637214244336710986879219887795529603999784306943722692228546305080265733272260695481425474624305167398403402074017541904550352933060298217322212465959504656116165115329998723108470222687683509595760633433538902969528690175805021872831280146682891887172802960206077928284772566141950689963891559216546744755623260803837648973272589290101729378929193692533431625436315167020186527638277007551395779699794243019213286095423667286663278686642177398561704590139178538852812725204868710265305878020262743731168086674771705446095769860631328096072859696891828016922576685006802950505122187688184818133503121575381266311568510808230954046837668418885444379457545583256131997708105252193820739466432299103094076246448376016385427615423435957739863327250784174197532261009611234269433848923731900000672099676375979162843532219915595254523930793072158619695966597127020467521239403674103305904651306466286392304143404174137021374777558818456658999062730149386870231563761459491883265513876426738373873221733748548588851832119263070937226056063526106601974257157443285412083845816962447362256489135685043981523041033327655088565659921492183030555580597874758455434195491133856416113281872381753675694465914009650981106130961776700227550368935807429180863969700813528270897855934336188245210356757365325710860597098736848856431814975197802310057158260204373384448480931967155930140109733911388318766480286797310383972407827271803736750909861519357270012459995038595045105164472142353088892062799257856453129439640261973738871358340318758840562305712038767763168385299009266059038221245485487370667488459628846975121614351731007946036719018084806476460476955568446460910563220026517504040724544088021630845710182214860257270150174930931850814770041500470890381637499320354683893019922257754155371380907419676053593849343409095956583728118877221161349435485039708104570829520031698659490496743064768662698731097813296680582534915731584171091912151773924161202529541437241242110622199055204488518984853180653114092762147846575108946530696964534821266095334638736418512783901881498814502463237229044334478008966976030808144806333127922538514814679035925021944231822137554875964652187247605054901479829068333967167296082416944621466177710714315190688361763724464083314986579467013070774823584518048936254284899698860260128640366463114507383024693932534052931679430734103459454996601722436272059231544359095195603629759248994809913336504086386847687871612257417706867069520243236686188365645798567848768399316269232010782152324143970860381419779444413901654849902387684051374773094562051696723878223007017103078846230932696304949485077672838116552707256415626097753652534766962505607748698672184297454430050522208623654862698287436693008103846838787853154555291828631879935983508290308834882113272566408795051118987503884526251727805992453380694435081123276589901620586192955082094198223330527243205564723593376400879118322053152945172077826845913774658618922408834239400445610198664035134783716780019571708822707333628054884519231557179101313762744402476896449179213681494348850251816091977828646009028547126178154210672529329507274510383730023077914218671457790995083901435785243261614272045390686214698662251638382788462005599651769015121084519780011054305478572848848945645100083695118721215275191170560759978539451113428840023709222958252838783816974391842745499340537553479372663298362526889724069463895969916073038251943085135705414694710254539189852522418122026829426349719500047058276923433576219987766219015616663648551338194567523914679138839680015561980899603632521466108396444710200541354678375593650022130921124120014316382038598115501899092241434063407986097230973946927969656872546034534183769639118520033847628299563078613040127969820367790767410370184893609053366334033371060224207771136193005016399327897045118370575387757478966301377337518064079699052560732608727248014194243391539571937041384240394866520029269376267361592360753682694299826724624874570293120443899362705776544297709016247272095670757832026440146395931029190050926037428969689306956897772220499837109565945076749562547734356667582955267818190406998861366397871545512303690897538106846687241317820693198237798894506561354133568264932645185091240255004026656673414623789816248015386968882689395144692946017963610166077635070694916838404724699858706760180447659244654344442729985914140212727135313844678806517524505227437778084087232707436123646472877256038967206200725932641099761861537524596890041074127437261806064256277020843751442830124933457734719544817155362465596747305083803470577218769481190984272435521059639404225543237183213975797005014107301800601046785295154243294171631654062699486039626574158312552945210475671565764532634100322313194654619266903267714534600361374264181108121620573311597794322471941579975028825195050802320168317152920741906831879250641366178053876300453116845607780527357327134551789795193619696717312635776368383698318284099856380361099004925363117523232895979379863695972491695180610730195373103354851691990770949255434529081301211149466976246609952269508762607642502828493891083350651190752083776510444167606756031893894421496607059211141377772170995967123249050497193406263241292096843476925005521101133465385614561832685564668211206243667564064327638133470115044903725546988986235268470648967676954783049751983798686022727255326060944701397310979219578772365332812542717398557121399495424442546690503143066760767589318069589313491498026637466829287624801663296748993421192788266398938844645236223385404037752055355454132006434539274404015049626242398548419373589258190487253701850940790232889538284962647127533716972259079999446655982863378290803217689435317179145096175629392489878293735042007606485132254369432331874520095370453442370633891727084087027729111242279686986616700518003081757165336203376986128251254341423327047178493327551248704720840266166115435520848457399288705779954416095998676402847655553652558322855699963017321057147195193494468199173938364998107791049100105851241266245375051651503590853818289008662071546413414857569966420093397439479703247030274472364098102751663655362628846580972049410711700463973410040806330760592662719205722338516207706695949718507431951232465465376730299914120376452060496163532535175351507771063765823658461797612906137637376646469817234071264704861762395957802340012896690888187036956307347895553077103127121062780743957534419916829992439053318718427240189529784167890631220642221099024858350253126725402958188350720899260108529327967124665339780678641295046321426820108521573652862148242097565470195804461944444061785151552560252325480484985324962082537976032744593993556753061459327780829196101046609048325614258868058089003395458831398227240395305354090702419001643229550597200830217593266428496262328409023484812030367549647584118711232223218932131235341142415948907753015505433332713633879184484271456379142667986657180203169979907142679903925188722994081457076453390058700619710327042282093482014667625515217305330586251967785193070971033115113721370390146148723124139749201301532981453811905511573292815298623964093640465406492666316017729203149407061379007958772370562528777805114354736430009754943407261565493988876032096777286582104577475920389130082732782299252608723050215318877336492333153323480427503119011650357173660170652640355462998810650142430120827868693287238551851613516616948759553884341999313467591639833748946911990181133019482439597858741783023900428618298108812043396111991211063109269821811491117234561534872497912940609338104741291559913665983321084942143140694177303787524597255484147759271524776281043212632042216436157061578617985444568862438565285196415687989053779555178662812067696711626946805190535487688549161498765776178829711976517603214488570902151391111417154621953254591698215280730840342061950481941706580044979055962087208165542621674687796023132106181858720165143811202138983942216476289752714419607004886001549408537099496890028237896308804740020024661451218307695588473912164604692917192229364962239843965819609554618470113793003653069067576524975669690006804679017398524181592992189421501427182150587067762250903610750238818547481091255905686973962785560534785470193428416751239239508599171149308373287012318257429750292798103643105074810183318539347737062689505950037306449355975920968720246384613691502303870443666587166187689007351372302860317379423990397540071339847351947941791885427077521338267687991808775157276205502306377927067914682028738427210987782780318096854792724644398990384791577657178299693774056566071107355756993552546810811543968174599412588364020471623403815684233025217573978480907635487902692914743235835754933658625430347231321600600539761139503468110870130178898178207564903555293281553937027445509536236397839873372515085718427065538993322293602521683652417407461998372855746140721042399391949242934527933563442876141359339080973849247658104818523608286285272272348963595494588875652137317058282831576221115760848090503501729400171415917775348233485819991020017068213824989576182658918503723175330235797682323876710317935299393001377680106165485009201058434758567009138849935234398924335571226613091037300888996432221943403722489874435855213836000184087394558693742268541286035030012037846308212861702260765690897516854909032398751153166719495751681559771963960674766942188261813752798566496029497964362357869690756379631497869362663431711611700545437066349544051965025059652135497733356026060248223615707599492977880348207425772810854397728405594103260637437114668787667597995896799568274236638520563350175694463383984643353013936684022539213930107188573959969537045044651120552943227116378886403780336920156640022325340460826287405394610265528747447000105054373357799890203158737769167870365982499620119945607670802594313191834187104756183641006732808217888854989331041547896815403950716552988515626237365710375899817931927465070035762473337218977408864715238254628292278983921300430901854729430163296270217109556547708859090985666826253150801112534630481372585825447145888703349003232341200055033640529804295722785764265805485510111943197832914565648036096690261968464636894365364022590215216290941140887207778244239142447242170128110996027968354645767335013887229824084898492826078720267187655091241781017592649961752595177765614155111797047522138178159406098591038807169018285538457655334546129290059181131346889958839820239572401707142522411954649872535641699479884167989273464264397270816790708926385625652585681566385513345899337830524373743030820272961227541000595208830887563355200153120667441777441592954361001801065230835100094381112578216188850325639410553155226439107486829160915747197374497654009851179550556833523452664474970394937708624977250123597079916847816005611058353593648860912054421958677003785409530064398691000781429451150726016237821866990627823684846216137228223920233928106865160410728796499106434423894053732064822889650863842453711814992749690839506346465869226138157639653748579937291771171922617067992098571332202702566088931373885410740581059445665216162803914859279340920683458501583182731008254181085762259701794812957190255358320275276838177399126695026219971191778694312076256496790644886952000906152023119105812963711629194805389809095020062280995171907652420761007895767127133637516988730489755262330678668451615468002778610079902435395802189043273976736228278695025303387485868966198968510283035030561539118871734513412161328924835960359516110367737187275898375928921337662444603596779552750819310244392126223876465345380578127234347645254835847693939972141954693030425433992011739083174350712509856067109139533967306748595099816105711979781475856416800647948359507286394349454708500799979817158724660873464316574652443319711736323408866211046131150688627740084212983799142864595713070577819303592941319042443343553835566859349488829098751190855444388936424890916293661327460992374723627636999002763123262222966162408568608718676947352798798975844672881526331051754213906573771024185268435698600478305486562024659821863325685866668850533446497225837742375830591853903180104392231461891295984423227785176564421169687891227113226166621202339678818304109851875444530201353323264191879901916973862790453265603495750975971980227793722751802958596536519549547778573298227093195616666130244288633949047680079427093024862796129925350200843773196540432414482643027303474131707135637320117068116793034028462003763831804102036380289053604829406755197681064026256672926286368916994472016417496746545952686615316577354017816956398208601890841827230250931922835180035479033618473263898506222609148511783987251727723440716824805465741499262898550668976332952670054326877909745927583299017563683811866939702972541413544683145951914152493674207682034298273649691412582199113918753081743645374554471950306491209461376545398786743000897395214840417067857898254254588894097062780316714076150204476444385451197182193003214021425889521021987158245762632837143228242056308176462925953618330032759347331158270736648863891147209192990613522159825941860433768781162206758050198775583836094771961956789533536084631944981286035454788183239812360458043261599729534933028029269029762554660310013376441551244366784646959227357722702883762006285276141096926002013991683683466056127953763184004591821671617992664277990610997143624584331392131611493961460591377975141871040136920415561321243169959393207010824407334324094893742172432770375645855311046506606254670634166407666962157225981674527328854211980008677897654690966357352073218497633973789488364553905367763965472326112612482799776433259677245539595719517466246955484268029723064440563385714960848739363475413712290641092358004362586252281115139426756336997107441067718539192867740140414631513503769340605609218744587683332698497596141243671739145715385933173193979114127039488522277100396699234032827667411481838187886147491637347275891194720842243914960997029967755049937655893091230085844810628246712662978183789388495812443564444485401147080854403013650011303526222183804374701364755193472442215171858879716919029730928713545351792956756003851479649666083291163816794426001546118736420634974183704953974393110518223944067303060697048493822888431146585701819831697353531695480105492172711643513374350748534350429267849876198057720391731580775073044092967806746682263746879459314848482017158024459387227716537802070791726521706553283681193345814057211408851501326407098713011293586302409730700659607545468710611312097173754152574200991630620866491652620858746551880695069335456059602398203147747408061778006966258264094433710568358607852470235862773049685443486054373023957253009822174493677979748228278696686864131354486615783803692346003667609031395232779879436930507028150601607328674897091393323204913680829930141062912261841459491922320385194243978910643640517565839650459360649199484031429091704575724686903276617669035985231567947743103729830129720903398145240094390541288594785861775974089881928721235655467962178742461865142834616711594616727003284093652679725601024520635465590652345888937155272462131759680791325645884496826935218899116129279014573145762413595963130012615192654631780739373786990339651164581487379334937339213204508653022653427410792726201486997065290051399709054748492278536837659817480309894042064005117016654220381299300248755368519570334123378243023151847720478306934578224579645549914021261895397637714355631538478719030092510876319738485780118178933582720533381154909954121224271302012196931045806725740401667273630181289519335479439689244202888976620683249370098905202042345117067097792190846754618321745466604031618119305414555971222656463918449556871429075023990985415232540594811144014428960695469734012180960532292563131499808411652766922609383086977383995486511686248912033830051478758219648770287082063461661314732356828126912684393464104260499613146093386695117536079642356589423280993631569262129591786430831982535806939840955423992074878943009213505303614361040881275458421676297299660043582979793802874117867375062187998336476092395679070645801817737026898951092353805254043759017815193842853255788169909028699545786350614816181610186305080244085742010699708997897580965010850711283640406562144577347277904340352644390838519974094073930463556598195359086503503574565994308769867325079681640133505430289508476598202221889814659904324100461024616249840619772650208442846209402685732702790391320813218915562008571803869047381714021544750786160013558154693428533231825663111423499813548472126491785553421820064422974835687036396484501568591929326115882719200097671763284896455596646783554782244210680395317292769517560843948860393094185760519677962804197656628828960124800615162494000011451498642903849310591406658497079991642665031115683880703706040235473633139457456184580318531695236987825831082406833651875634711833309737083777434227565069565330647940771971422704400523937070019282823136919123782712405552980256147653527998516929643185091422282329650906786802471786369744317598273228588612396902343479678714197097856040664520564492287792634912396009112111228480326349665171035318070070484339714283743142959677717108996680317672831102941317564066117827008153045019631537917262552332505413323175441252122630306664837206349727634177174877175774011797559600396381917827969890065050878370549206700518222817809009870952969937005582558056729923179970222068108200858861776235003897961058842479183388666543003531642201389184148268493092381787411678800272038159495565495490289695133060915087897654172500563952157762464795186370681628172730561086898042083898086352262561902917511601410575694647681342634178126733799703795834001321441969716646044231850832719823914472319379456723745380132333727095682632251810519449077388726407968247500413267397052598076316144475790068918304542398821207718085168277484830444712988683904273643191272023173304460920256601222797863345806289173032689366779259687442689372058986554528923041228676631160224711257550095162912550331529499578411774489690091302909749480883238148622503603301978040865490308398324864375318850997332876990229926145491758398104074506411738501871738677554644898013533075095543015474639473782208100211269305132330535362373020392314957738630844369168485955438702231363306643927995711224763382967715793833604427160668660493023941593545452506795410494513217783886863791601229810665531160651829155760032059833438475217488396763978590736401479883002382038411895669435313732426714094839697939039180728425849674966686229109854450607841229893101750478641662809689182631337066209057356111813113724366507811073964312074791149609704324060555450861498238216884489428344232577899822149096809164718133434523420136207450293637133509842415803591486664906755498480286573598617031001157769133920182049675481432200339401422665461331836366196416781916509500267972045062626472281434479010468611525482978221012460650819147555764470434492399804751063277868663152958918754623458088205643386558857747576480944476542310665953795442293826362906492006532248304300556243520692327891047883677433677202482073878635692306832956093647772757093394216627010304781325725696208737911442194459221201113742201270256189486703378137280186240525359293102566558283595618651205953811538001629555199123509887897233326599228084667033518525984727699424288109106492149300680333890631957852844890008579045847771440010080498660874659853617819565946523412126914677501085649499183673712627800990026919584843991770037910039317935415450845817880494687867465930811079098111655418565984392038658326071714821856169286448177825025464758020459352382437633782423932604889566632533969630047170511823714669295991928699081873511639619732701973587947081066143614578296813147744567429370711217401806196374578370991811232868835633400039100894296968529941496874957690039408810776085602260590557181904094970435656085343898723180293737799496596460547644924832187651982763955185710462967985899355504768862163557868250572975717834806963686660872272309612254683537362465366333910186858923946051831083837876312331113533543401728985718171614497454909285848301702236509407214621998427016351386831194252928619201581665968228849919406394115225858826566727259167862857958508943350147433243094874056768778710359405586478551769287408305699318934298618176208911010047572268902722520425582749416967692238241546990973936505003431552936918420026601483987970113259026835919819906809466798613758358877038659545092118363686943072671576989290602268976468627225497093515561148638389466450110970199491554392223539041644204724136454324977413802400284673262284646480714636484545827122306610145088525569833308295623375312318052043962747235078464396163678214202282210425120012337171008411833084574292623211164380702061676947892785960976362007828839227205307223653813201118497270882804134093683036053516601421499543271135537451215000338757606061731602030932418658053079553761543616324133236083478882522245304481986704134696362545562742080382331637757677939876224328495907642006554915280765738773231837897236644549577750241015639548436055309719516585055596068328459472160136877954509052971586107094277833749438847480962302123368226060562821107935968803858550642367617879250894498310083285842497034786463385825738081632907471032544190909603383664209623953506288613076447758263119167114720075874669710011749409885566081554041141183348979400121120204169210134021457871216543025196893560155716752824718197990538062807762161485662890386873952896936041288653288809596416087825624426122220087242458508043608672486881287281550598498115334896245189480134855244506294770689950138799957734219403272074813492743537145698173973840192487305593952637832867545252753934247163122061317700583835812110664028838456162631103471256232764383856164029711641590978358600352802268360095058518457099941250479210805811285966046009763268367398543995692823784137987006116935752648454513984149495581886994163988790974229219681069642464228558107748996758043376795675425039872407272248913570706228196853167541480415711498760870713605458126096760292937703761690350022235691241633827553501195297244192602182149602423237253683815138038638723710073177356338622668371626951606401949862411806841613086069299782135285298410149517822489801764142999792609821141197517322715351025429282401979812018676788967096689618623462291252584140718815682317182197901192254531577392659496201477504836521538415283682417161082752312720772783094774223257552426133335794007058963483319423390657871027028564002227131819840955144344564586539049698591927512983292117157927539096347013265453307322083195982393936967532106638728898385265345267974629328626897169334232350690725689198621733985894393827417723556330266258161446578594650394313488276766691111871846972003952364124183611275148824007002472781603348798990671976003801515251821904702724439455979198685350694878249714775111479882321364466876394169048471894815819976397691754105465488806861297508891092901023302197758553028591414638533689913093448027881537229428275317123521564418107044931683225528446118760033432056734961325889895724177973340567941579640351059652172139664063934786179774558567712422592934652454712405343017019989433828889510877490674455118021182476927534481221556458010070448133021357384253368164630466711942454240308737748434948165505153739305085903052269602357192515167998196384951331042652859279097709031429491009543969076439003407342411387384955259825575129596017760821749578677651153170367267588352634658311920856726119598554055425192868105008976823108036860013498501974135410290333193808648346852580621089163417208796427648913346493904091998323863692568426515124371446069295954172749859032347851145047618704819661965687893242598248829387002577733593250057640937564405315541386236577624636507282154967605461909257083136460629568043509440799009577270705404676826846957477915802192596764461772076286625517124810680337855581570170307854178747486215962641881579866726085698439907126933289706636044653631806244726238399211803765301440008985203629311954786496926818564615092032401312140541934843512399524166511588763660611602990491717439936110055674482287111902512349685052133032985103262343988239256912621080937694807667690541434990690864334410820320763689960576994859229895076409246989115317121201999336394018870002713914344551165083511699679025785953686452288382662764628932746049768452140236489556419727057291208211985453463754190706017194648808932802610865204954676365579793278847373633146069856026456467598440508648401414751012150825127381232348616298716939619601024092839601174288747716925348458183530317998378642315337967339003447826970920134659775053037413586837942863808687474676896998848580071167067160486311429691662716991726566703661696091483501230831461373796045076448891248481586451555839888394781878140604248367664038563356828117518825573484081060790536888786397305873878261393783164343775378624876811186280094628691975773805538655865010826849497670378849678580248787904840878088255037049219883696339663658265581698060495123255101436786502809581557028291345876252558839562666521700413218002838000409258606328490236788816981599905578285967610427025858758550010234596309801969086003997082647713961938723238241576043843067297276542381826712254526551080932543787839689271563376150112233794636021855100221303943754017002319994626866152466588995536323684786001592896523473441741897829217219297353457715682104076340686439719112046390909758489639265167808506758743122722430776197054045717232001559330389946314672526271170328216953592462833303432328107180681799539163809284326173270581874996057267131579356522577015458999268180495243808188999177346698879418360397086504990924904367253866180428167732355265811658716416130250355537796766913545499910676814798545506859873122228373733433400550787545770747878352629586012603580035535470643460221179410312763337898302705513879826704032624227665114624382393165260537675878223428783951347101043394601446776818410131852826971594035646424763499662319715126813129376064218994567570527434032536965492970992096452108667751863175515278876185943927336559570426333289255814458702902512858570300396953817952811797582036956174344071597122253606799558603416258100871296243799588455334978445421509986065958231718122356104097087032471814324320683241860167129702355679930355791189013571663223356910300576161771315336254464712540803352381159585329986778198314224779051320900051455798892457879628166901837986508017523889648688958188779783740276041633975410143073908580788859077296753407775237972245008449401687782706733817582919095894655757624663635334836333619868730418486870536901900101775896857324984873314295307758325123607878419146367666510784710838830307085825570267098789836147353401439072270597662394480865788854893617147641299013161867053696569319153388345974744891775254794334118445651709154561097295757291135395147053989535901294368553930344422929552025424705130314805925618380615647326718503734458424443479611005085782469620791756836290374093090714158918179168494013468662971925001203073342747152430154036093932998084981356108232703650207166751252789409404912113663611618878170787703273922562707951878692899447176999836222881518914696143645602868136171102034978726473542549060400849912261663493917758627581384339909123509506477610972868778790879205910406994311046743780549775506869135793661497670978454983738855530272582231227549548471503265367839130224141398734317358640589308606914454986836770922058375033175003659192277325615912604160661856233138847814109064073847057880066646509376764196085520417049564166128964418690429263740131249313257227526995314942026309989774463505783436224782167906308989990299519322649017909518034907036973689017145696945917013473620138760866117094980602026695772552439635231659981902900046542584838231822323165737720555700479204725168091301425817775675664394369067657789826597070817920798333641087706915863428801883281486648684484480259776836149800836814786358842963667060626756305474076485033586867875066920062627467543860111300793199265683611456467987811384633046915845871061729349197166695926338342739897535615913367085046772437150723015501219293877425045361697169997975271879707680390302069427236876783378930252774024208245422805371111165426893845861517105583467729059809991799477993434123974987025125757912842746058366169912116076724448113755983968912527094119189987762488989448624641692553651002029013640254135665488849108804166097945139787366554186352906572761650088019575315209833152644047617208214565968583543163229121951241292971800180708227278164658468134471872598951736074814239040088038648144043242769703937378427383750938984740345770636450055129861345350220310685447792050404627533893801718610173957489437375956946781599643631413628398307987158447533739487118017645506756957810566109509283395412499312401259253724626917863621996279903679940536768286272191127077214053349128202013027379538511359425289725962762833980825713959548248454595941670915198420407710453060586216897092260791348023544170700478861343059819879232936727626808295727810043552910729405495668178118511415396848011914107459403168541380548188989597044157623201103064914275132340842446956734463607696090790365576940046173627338407814209461777482148589737193010596271853156953704074749975717061267122740940199689968307213711111838986478074143823638825763095522937988997372398673228035377070270908327481648910219245585873564732804254841271816731957686258539708436889721157198130166032364437474720776349468096712704781369719311607902674774078345132954105637091736261402969808075462600581076588603273353354123087624268954631600662834397736211529548947055639328233331618888948804376612311221395371546205120464549459648804127988188361536826375327208727140676649217996094044443211509273682933952766662859651388401589969438523665200718128071637422649306843554717262947207154209591228465160840836912120086072317207818326136290522391221592035630748616652402635745368490521226440005879492834205126450648086680439705875853747378767004693915903887912115296929300390092471891493736641479870622129403947655523633809053810712408512311840886647308462481949226879714993832866260161639259335324325090482229483470024017838944070148802720453819011540322513610955461507443804879120202641256154727959109171099042587275317322541651658767783385244904518741063239672784390619257883043760240459856746481942798928484570891885291088792750091329939269551802106892364539632494616297691657848089734994544503628181408645347860239598047261614570771912653781671283129746769623789341973372592506861453516784612015031818878858137140371851368163417182532989931923085383549163801739960023566469486078177488572359971584845799486252200631848086932433714472363420639986725753429738834488687468862650375926198884788478286963934772087243295059976526711174742288826608786664913459200169900489505843631201255342335072385795026901677670378835649818384986622363081292443469168820981431024331807053189736107724923099577166693762524285299528974692318549077345214923832335708422689932000496260236472018746373555092721305207052246290735978240451166896199118884352065335375627024153901031218447761543827057026384322749928634075678446900507800541588793794690715396814419461875879162547188021673972727997088023575156485340299492168501732640388662655833568646289744014589533304457003696606582136003298539689986363759551449355648039058437228180240228963796033235764361188364735658092588285786017671080946663463017689623227842126202754914525037556232633578512666308001635225365568597123281493757792135554570621898359470487639115345676774091678325267686636601562175561996144675417189285525268822727997392514021890257692583578802635399831771566505932740725258069483918703276476233245048420547207285448849009929654250347552478536327799456472092625149172548478784832318014923276805364790481494979829873000147911024228960752775857230448190683058599370838150216635510086067433423894501488865133800240251957038541287939927730487107647609515161391988441272061484828898384929679817322604633946945599374657275613806573285762242864623222802769358512512118492279349837325598323869839328402471773333544594431400391320876296259045451282383646428649494569667342729987451573229485915327216603573247917415128309972169098595666230222062549995103945734785273331860543112704709553045276829826537629962644305033991705166983115404898395051371140794860110073266555270442325142209531899925097270232677552562908569100783104422920511037123217009787905345944969496524523891351795713476923242736141031848324591510644012262498906703647701694181752562702133758934274734661907976589485000625176369225364677737000669759774252588664488928116716948190465880197513715990087292997465888761541644269929800255022331346363624179940554541435946506577771010871248202977676198137332530018032914851634831357584002844116668991242186188601690992151849575501278199956050643511297970783756773230744516073009792101301961132605262753207532862479923069199223999845227547849097050374459906772163910383581602852602488925892200493190013500005866256490461050631851003944927698832071055507694315559435128517626111093299766620518942368500499967405039002891151152373731879464361757591285365945078563372977164748119969381045871139621467473951143833303408763729661479792908756660968340908934824146253838610798522790376525740059037546887871026735668579763511401656927469260468116461663327154180250591349993774015681987300766902146606297652070733216774301261524749191591583229594110273574641760950999694228737036442712190148974734568784967820749070731883495647748961572660271610257743502725686622645324687696128527557520104580289816140377709555208313424769414981041303781121898202445417002063228113907864417203378451518744897191693119428989838716978733842455911102651324277162683764439671567339348287112098408003752444008284787611154522489807341956416873804162453915672303144978877394355250315529924835636936855949019167848143305863412675220619708918510095124809363198809631063523374470714766285094482381784031936991223511616143978570435686127966122545520537486953908238745122883895951012033765779809234017193664793184949371010536583181755125225966360745440901279468505733305485168072831933519996514003218957838683281341396506391156672472499446226466297260985090967792028852106285646014306125372736247579603516098425666407045316465678725381471067381176625115579175389385411627030595760408753584446619331362864279064310219384690847549499288960017998971620406323720722651541444574038104294522570704267783407082604490503823315102805926157590840864009055030901259537082635936408365210115433104752983981084505484901201968187228070291583947424835360464041755461235602743499313820222156403998144318452785892825049866341847061505359527824402231972555091675051154883468773760976637716536098382627514518678088097325892187391226311535507629613498256196332662798935867745672954951442765398092784708890849754463507681808304574996938206671688301864196033574057323639537164555183854587117705025868264227162508498307724378449715589892371335023038252608045775840788048024428035045652551701726762361688002090936342882579948734676748984057965790796308862729773697658013062808647597182296253894723374829200276548361243456253172500928838064093065477827564853543689563359017328135754942928233777863441020753086453014563869504535599878649657821233520997151705577229152696125242351905492069891527163698970551951586506240695748954540200546570897490166605999164612746405209774611319532292021776588185485351789988969657717095483750775123197821536860137731103724658121071292578921614121756959709854799838115117521984173842659818498227596498824576286362678760947695780471100085588792032764674097997795346495292948548849516087709034944927715718993690646118052213183289255333247104366220122045265500407599157269261199393858482433680944885265606432283266708980984203589911759106364073460165769114637405611974791132903857159417432096994857241286666406023309720184647979862562922837602570031563337525642641023619468342219802562719211898260185425432459901645988800490530603946584614854841247416336103040070651338529879633725670639670626554188792957974209893238715161469032796963550745650254119434564321880231618481609987003615323872630901528387352841645731261601075795178733095172688028476469898673485805528250397080623709348265318890824717349211810131507658476594178421348079200490126696060450957033694353398600473928366586213979449963769416552008527840300764204907205323481540286045503047151738634405984038476364465503203906850237330173122165384616175166758373355385283205647473672697677531460736642217378942177741727689349321320605509797056992893376039339439314120419628901615990678208874350718283106081345612085210461882148525136524342196196181114710681723622015295615952169626248144188824357462260955188287542810360400249326603809146261675040226364405496855236903461766482034591724637062275227394193845990579428807299756857972725308751595078058016008819668540057130173146691066458414132533187919556521641513434882282124888234334340159319248474256316790576031481977725706366058146717604140445244246205541150944707858863579009369351324578783076054215887857791813878096125084641134383439359283820652184032214973118268773985291968920295593484899351573481300688785008451233877384788322795702801877912292878527972113850171301672338851653398944867326531097878576622935018041165609846501913331559977187929593785016994395451666026415055744439679325685643096239996530234740101312826232772466626746118481475738969441244961685581864958451294566900227578804381360539594782326448958215068914600560144011854693204177579457385907677694082576590333787245457826176278431670966741491948796354817702535454185724697528042621804075368056392131673339651808454678327093225987247953877652571951154602422264167234752485446962912264872467048962924657183771226740127098525083333305284088265869220099974396534380139999458615940909317752050950818852722123249182678375637786986736517010031539693018849805404516571554873812042721615353078214499292407001223506336470032191989796566449405577462522529649807853404612692142199906902401901141375029906104937001972596253530887488434143379493545633758717293291795220933846209692533635881323346043047818603983332736028948757328124298157266383934445151588066388693079496142906042821845591494365177711764672729823817942314887457157916544647967917596645338089643253959699625413960646366192570551277688995993491377269685685731440191692178582245628786883573404945078431392625299721492350633634288754022908589720775014662331927664622843611131920040480177628397457789506876352348548288698871704599071949891858459825348749290511633286992278946687072428997736020949357450685760555471023621173859154218842297798661418562517214065883107429600387439583370443463159619399898416394161090041404149265227810447756640410339352339018564818867702432760207758705083445648724686292569539097732460850379497114908712591356422173916961354657511500359608394797956171065694662460668154183659519910647988639236969597921382685171534146933097304206284122353852989488022746742405219269332300215054495437464195685632200576205551390860872398220573055063131658924194621074208388686864139295387566001427288829126785817662481347950810457930371153730577015437557151525913640017142341654115923549633130819042961097595851074871474055435713281860895665087227927852296648787791922399034693347317176507255229000325856999839719375293638730645054920520903366238244554577999951909303906783506042963074057520456510322616306527088522381124789098267981893627343819355201561838994301632746962118673933896977828253603139234802061721631500084999595361452296004099289987694771612411755916900688227042626489623447936555304494900998577216570418720624007485622154310503410032583810746202899630455485788141514348829600101124284465943774853082931875536970346928894077153667051554783480214349167637169999800545328133074543314579171058033704748737916131558006541928021103775160314996796375779454728394254357873044431743128059048761301599632167274115684613289301504821270347289297133006702041194490995540071123443337446074171073452739003418501061613476041006960500425353686181514763657093095518779540214879202381335724368277954777063603614993108733832402700461965169189005766656021123385576088789716785750717054886266268732596975758234594822819152152649544967326011428667958435667234655544500705251938798374951776741588967206321345007723604995216931059067140399527573278790056916927649900273237756252222626430138547252252682764296556729004895620864054652152204871291656405458636074040086898728792594208122142872281725887823067689802159650583102426571824657396495217649665514184485044664974784140052958503347387455669399491034077454699314682614066459386407358630038647453902975499597758318788343663066249363008714607650767391601635804664837100227733178012878526018481390718711283324692438120423797182896872563778871974198924549078832280783147381857909069033636305201502598107575991077929505941535851069130347373648304404414870910523575367705586633318717657331572749211654938180095150655857551946291995904955761494311408190111230439951720607060766352333216161061409294854253712200662171730765634506354745492500578570896413983416450542764779414459321255527493424451361871125049220938986015415544616756112940329690391398497047686908290088089919709293484440297252049713800821439163943295930540959563357362229776014459974761950018939793321050667309383805492114168554418684298258149832523906695853593930353279509901561169280389182923338457591272627761299179605530827184650530518981225898586505841039939811534376192508474797175557635156497383815547377281736551317213621539200460532684184500299809931859798657769619827265991353897625893545095627895813144723668703522632417462262747604636877615575013046890178896757807080291154360724698917664693311394192700872132440574992191680604360261777446810971651226397374966061990820727744090969309882651821185781558502049291986712090207753870836357557933583945899368647947402106343917279759145552115489140703588532995442821550686836479222459073880983815517086554210519807285663157128633565565079891219221941152831507197245619817519696728264451848104464401087719424020756385690800760831045313182712840082159444737107625466516620157077509313867855697258053974864907359036913261877478411852853137705231304721467778684502891196129355006823192385961797343995171156459767270287283035963749699699216114016847539475239807815614962713292406553571601348396499699095215562226569915557803350058204244232517895436376822563641114509016962414897195696134884414337004745291374978835374966116261231395511839414280246029103375343376054094731472147607035733554526515214439219973459322446238327596756675831429388322146203086384701205580630807436030167734822407092407158310219880322620132862714259377389288088747408867876444846954187647555362319330521578321913553518976385966900190102851858424786946471240120340095720345984383273633704182069786666858455228716609803063265068306076754462644214800794548800784518283677434299658933055507999907128719082487098896190750946892217533572918885958492086000096520561544547238730686654606642278157739228135918201910246352849686054657930579549441522655117615937920541447500064759940400937117392307594302432893695363577250293614924099708323432834308244553022490308033347243176739179515062816779688018942092233811076688018223203509387893206446751508195112315794684034213939638639905808162187442610411664271055391825744490512335817598502334673744135733547402479584979529753777190107544397870576621877533737809759633076571392442252026466900041874463533199750797531248052519128810494043152826470048841930078705904731913672489665341747730769123057170943104541539165587264224363413469264413001485741914983748842940215117074229314249767475695105733161451921950212239357144240655093482961160760630238520833831693449442868916638092001127851696773844462550563086609206362899091007428801030668643677981693337780957626928860256712001190129559329351768130108895084906050780366529819532678193400089405958442252761525640472278999304468753629842701962432078397060022657624871275743044743665078678190600498245595815250180877506917252561924470491176741861336228812617363584408197106708219416560048807141739616749916880693404181273938879085846129945350355566207961966293358054929046286744520057480197245916317876064656500383768619658232315427804441355872657605153477339869305797123842431336219116582235902429240413770712335335281814082887565853731360308074221108253486770254417957063597354267612688147975157942538202939501370560671988950230669006028964027285000839345617663063562256453019651232370812573428610446210322752195439134338473177887153373194821459940845828774680535891175314725713101917080137374737735079454112399570691217382823333749363348804164488311662807673334790278258074927371248078355546434189831749991398688529862241046359990823889642287167592685534574782703656764610515307225369893132008965470975109098665319488030487094830330413416721366433833647299391788003093541348392725402184666916357013838402785513744785895738002084932246991618546420015030425518439053187740554480037692441167038917640314871689687959180007926479726161153199112080655022113802479252719017313757712900783979314114811381901567918531371491847384198076972077906149759024102699787218657783280939667389384620173058939470016660690713022819293870832754004151638957415073194266916672023979485749208185843362452089258336512268583293173939856201716583194339034343494477935573358356042387649035115251129089129604644497242419027199243444149487302281877149185511310426700751839960924196032952934289446263151809338742026464993525357367562314262683291617853072631936288366895973330597301022217279667773156783158681886526809807366594406725865846617157231952311543988325199687816313988432173435735042667567287858183869076908138369867110033542661825510404944490237949135528636836452939454986566905566073801469181869274516790477902847493732183501235814699905183545857454376860941964337100846723533566769390912463044502175426755538664556059971354821809261100758111902140972067502474188958729781783849387465620616509068799402974765479555613626073555099123177328538629355432045235334600239468400957351257854161699405917875755701490996404652926528094192183276823850830542807999912396419879489263762053219623229090639887831996425141781587764021103548972705030786674838780775502597723750541838234343702414887315940444180266433812850605852041333938181683801734219532433443194238275172097349312156730202950384754276195502125134391891005158319975012590309092330636090407999285175398811845961136967706901917909590704801238193170197912663992056903976286243518773168672214377674159883957804372503457565854055302802590663678585202542124490511358700209806612641642347351773550115057992001189819974471531268966723996869814681321995343287574737222451958733839367705930746947866277099196934605064309583569017677250976049805964959863533359317891177604819223613269408727551349402719101721221005729907650929972531889299771734826227378249360023724310909697255692101923865106409505020921705384561235163772293324337083691130251445088936560676508323557027905715584040189707917396338495266356530502247823517414105908388494205546486327305659938679334851453863630247742420605874383919722717867641481328429639371581776373720416212726508974466469567481885622494719412955965575881576995172698905054437765720635528436102102654013990630687216207870078347233354652010584402373099239645827948507080869380373035245067412419225454656290709268727281115111631909525998807657671129138822833821983362508552796659990196044066405087532029572908974547488468115246452584486495117682009527603941998253647984087302348275977886527674151397436167544517008355890097947652491925463632811132638870342361498259929729796481446514320806116483349385745132821447328601556235410690926316029972421408579799922867362524297989756062622780375088020169261265855870820314690096928802776517234133358635451843110223067048032015366495850438358885829648575149667236573497265277405629498725684758544744718744380752734495603142385035014818365888136392134215739421990036585181291634921015949363685424884428394028874725277922401834342238447646727404345015374813588137347749699622033612520863617433680034699255627313465355222443813181586881838903880073972532412883456067280571366411533958196982930852931135002925115418922455473051325778929952938087276485646983531881932484115297791448339305379264591283316059340321222042872368045130759307219864564101227535827582562320767184051748341635032820664860151639523695885422513345953032903069040908577598326640869636775225735122355141870381037576293751576007361985386291767946118716646286543706217269044925825053056112683445266870039197928771920403942942116144507533812523444906926704820108817169079282217651170419279026139969748828770912901843038849295291682329775314165862394406936056025151132064784758212527839331350080762143604610899717688402180790347026099650569004706467951391524853372149793286009589869486609810880466266738032104676605985363061024369350042575203257544198618940770330554184993920910825011685983854551971282531810042609757091819291095633698146212668986501796217675285399313455327712566104677509009741593933049878512520110843719071265697180044468570204592995645563104709941163036989751956883615964693930056626550654003829736196746072811260341139832998773712146292628455105199150229985074363121051843723403206924471379081324940515043102129334018530778142582073178149173752294112316976310447332408534916756542095182128152188064623963902314230346204820439874152490295453182647982142440770260621757083056407092628534982627590651545359441059067189094963199487232926466202828545957064759284754896818371053346863276572923691673869186805012223611628778500959573648927224394060133674126449905365475189323087092982379893622616815365666533218963024716560481647056300976515973945332304667961665187753043631267320652833302372486158553060807219007083902875815186136449876571975270650406354938311105391264562218970198681046766517899703071479631083586924715358334360267171088370726497886711920445497384416390515268577988382402756052896666890175342624175930134816438000602026676745091522339206647772604148008750905803103482745263925085724209469449692978132836641532814929310774352084284622086205705884143155595367435065445633032029381468706068321338837689523590498327963652781937122061189819767706551840827744508797701851378913480857075485060553590193977990117555894310309127774553910355391201117434977025272597564324592413821237620054680718737567563109897171682324103845579642450563565623462562704879147130943920233278687770304184176219706613690159205248986694563148711080058667336828900655475687276702306289232275256483604705768992788396012601756531616505341104715702385311196485245290136840032188799768179143387900076950121786265262883039212900095276108161343892576682989226604561850765668099727974359663271237810538918445771135101368469292510555634464502721743432500061801712781730497467537264426082848367932985004841053797976160128561718753092228904476058466364581201012029782994823791698298958908462128414906515462677990149469703519906060060714319303962404304424180772116591798934628014646705526862843395563078801784661805315564440033626083112802524244463961968698910514793799513506215647717237962109136943606519651769799670243871319771706228864016462272786115613858975515576167178805484935736302811634985125595551304107377358832311641537518494992141437346955184488287889059892692137844976558566988410158143420678609512946135560080175810404559419897763092320454994975441900206573741662798102590236583784225626723835093694045267702691088373584744273335022608879070271170647650207581599209498617573287289600019636080701547571918413086972839780747328682483695078930999997299736996895312855465540848254613231160531950478007127055711715636618720370982561372217860516451198431507451702356007886107669466918509460181842060299575409774027679217694298329665976353277021647406752560361760676460513549099548368602015744353845442835821277244508461158413655551929799745299277776402989194400475478619152330820064651896751731242655983813582417168386246164925845411707862632881988021800465822198892734894306612705298935671407820340609016728206730096052207706207068123444322695262424899983761623861523021507937066958848491193668009846511968831108481920493215353255440102099653272550863692441622792380383060634627821775160376436822288025286911019453131722541372433271058466960171780907990916519773266419667569433744326035407045690590511492448855780958681694936157337669824195114731947047007884181643267659313443009183827740883137924122333661438684832339218270074829280889913838108700638152655436675448432565067677047767416088675925211435995204405810957953938783940997873667400782331896818416968278609633294234914405950862005565907321107206375022836816539214379731861548112807288233809036243211558661535884503686802264957888063388186145710438728157079169006519901190912028739411456116739631760001439797240617941294458863651469409069107983497262770898822841077863453733788577432992047784385952687921945833981784866225121514526249806949695840775036086600030162210813145542863958404464263028033755854119230059600504875473956582331269619844653174911921740756095396956506154695019369649802669545886283101245446238679845873830083280485403430577877031794270490282333493603471235920182262338940045166361878261201832128736387974699361419461736726028400955473220421749198916858457245543789199112636547110032158797320947135784930802710794985835962372443503484853542617662077858483751405005582881709784656700650356695155484083330838745908095991818547460661273646190603426285032176260310386601066919196574717980150854070139176442288011804166545534234126872588476315403095596494638296616090107410728175962970482776194905483044167225091659958908832166832635222586912592731312286271332805098263932782303155684729080598098234341598035626726796966570469215937513735842277149997611125216573973942855819421068206000104671933357737217428978721201535309989265194334244160178068397803100705952805708709379144537656507514115842911195706895746480379842729184757182720831132494836446342674507869101926685519118974252041966964098970007675186849053836049461219568463572908019419341748777873562639518822155247570786832868145465644401960742041858033530528478065387369192753025525086960376879054485005874315531773058763590430894750634279003553547993196342600463677425115370671869894473053100308666431654123607991195222546358767613634297509660568720709237418208216146815416625720238539813933125242435336181701373264567664312754607276867550961615730559739430290595102669770606688348607571105056226405797564543697574903432316788168602980782378076486595576235310055552598681602618256476147552308682681586492940521626776913552414833727258961583111807736294021949918260130947510334823466431796110602702309047712602061253689493178587784836418574849861791283499097283709035278443615360574530339518051285334635999183224262610483744171543370489987696589305382009890538876109787224620630594151886368044933634256523409659303695258560137257211945918612615672990599782185094562046869517330145255256234940054099814334495864206385900448682719789382559347898888642783548697536978105848115783940711202456569688779036707090309689058775047471214031526191475153131898554662945436196296459341321715405307924192841855849648945667346806729298683981271774226294935654913831158475009717934968874034757704665415162579635984666291314168616324721152543666987906814836245449610890964841546980813821478244217341651905818355033050839314397550219874012533911316172204621493642186842864198146778638818264084560197795128751160121831508907501681183832804997340967917915212551415047722764892422663262440709445839405985017519630907215052123102364879584961670230314993516620428129052673764745969377084591864960340272598687200649762952318052732739798062320324412917701757642687604365137998422101432504692500843609216311923066613501471620700661101336422129719234821956547534049221177855916026413928481002983042153440878268824856746221189553441353538857975539830868289945476803961769589859090225785416903529525191726182596572212655802804585851963927883973386785745380458698959599117091614133475372388569946579694799648475921370814803806436000168790226571964316383713307870944428715699778679080316484382851108591263733030384068629599183212666661600660753399210547438249349815622157581952873723988012720177070992122058723956271685129738473953534076137686520373053544484889653102163000952700577747287385987104066801091424307516272593986862071044688915921212528298161883264638944272174041915580302742627347530136538363039996425542738999014405152309785053567472838639776564526660665817818379630229843966649771622157619931436771293915782465789171144033337139683217248529532535132459671414977085701713359882285861051021611187736894742933479669995821357227634780138105436497031693810901520579710449061482375350936235799654762003956891433427815033532593374390857106865307712224186251956327451828973225366449070882378994809454255473556470277169459144744938072077252797403695608321614650608209431885798022188089072083178118532586194948167199093694154572976587122252577404656492824119837025430487018577604097878385099605219292104045433645446992226520497773940497374953003032464908361943990284667380800304372542345695456604786262548232284762582151745378550553105142173489928144832559054048754813835281260371288888046650038643961310309488252400624078857484006159284513156174811680864128062556940582518029262080548385090186929014181336585703473963292718075745197971272020224809187001036001032472066370506660163630594264864818597462948971575733833518217005551174879092509672958325453907589815957768137348692817959050196657718309336311538787950293440509403468492768454620054311306824493533608403017407049412649267433054910971799250357234383510670645446838023583110443868972952271017280017108113277431578597652152269069258150128376971475576630146758946266542604592665907196809222464377000009915753676610336380827630582890965586652358777149833323858879325871707007052770342063572143215849525651443915564176273225765051832517601381067582387452195637957315090800870096079890167141131703816291036116266155054238791632425852739422309984678144287463946462153878416067240160488478762797565794655876383177347858941739788217671118589332105879137838151786954399473431253868772610757078519635126078500073541802445491519848365008378690591690275611200738230429121640614414853438867596950141765897613300533497238674047542222616839882973943645288847670126431447654831245617351040639940731079957338942858049371369772025047525232458063541984402197937588444606286994271617704894327707223099193740005853639535801130748483453918979775639454884720829907392768608438608889356320517218841634350651625172082019866715328581245982732094904036005384560830810737724129112062651058827264329320018403334592713019318610687144646074177999735887550119531514264015979747068576356384582648232779627099463051854620214894787482344752945176555334275446108369887480289828252017578828782963490852273366763331078326975699509664806716990626967112459605086231230747828915039573109635960071167048401372988176573668624430292253367090790965342043197620767396768230972256342180084497737064791717131265762536044323980427787903782180756386757418468482248021137734723795277347362046056898911528059136998585428461302680431326992962994934015777347594321505275794871836276528098090366748167594398514265732465875338003046173019337276569401563630089417122044988148988875572668952600676115410555331718945206559266019400294439931178801292397572347737683662163241547045341355149659048822533406887377394948984596461683206402675169824683227616414382090103639609349928070257695778888643401588978074301748770097438362604370143889115012999541520470844255289927648129508142165483947347657187141829817225452513233265732724726252878309030236564109175947059072395500614881275442228709681590032885493355682376534857098065246918633224534997856859205211609101979264277191441264458713586737731754577240523765396336355294039314455425174464728844523037273936039781962101811144752463350728451002224918728234819510894999482731211699628331925736201493050012271211547820179230081391218159210686540296339864495867660789227807714450777675007738851765258109882593372218580418776370600257033039948648477128808599358718400389145325331737851149886417895099288830151343696441951233862902895735388647494257939940660868955273416403143193094203550639935154667292708838124817530278624103801423501391330348312835805330353430352725568081624929288489404433734604974191404813302980988230261085860399934661041559503258828382192322593992136527014232420252408255096814946250880254833696777754265488693412705583257527866398826204853423822246614544685684038210092269998533765332731707239582321282016044445534428379887645085024141834328081984121773200920178386374706702247255255998469569482118622346677022276299251839343626735146026539337051735353219248654887502115758036525232660309114969906666026792943171528197003897654264612261212017609731838469167398650367736715152611112918264686961512816396747373277373438054992797601151046429155097040800924387635986981781833309146859691521809568655195219511755989762922264820524131115617465010623003091951933154004156634275776736041366722700775885229469030796064099948522914383728531681294936185740316461656141135018683050944630465959489633087071119119882079443899281607236127785943542733381283208126438272000141027828257369823095058005075196951138715332437825380851647515784904703224063147331559727472475658373251773512562648940262189643098872588808465139065749141568000033216576539628194139333955891035143402484073691869273062634171248442574382980496372816073807315295815801572943239766176317777759411865306009635856906057218475619193082315210901349397917103973765313305240509516889365598414680626135179855471409018019645026347107216673517722874939673916886614229840111146121736747335608846315702282320730267676757127009484295276407927429397443982449592733118659662615441207408607296697946957172635402366639113893618503716435652547841404954396878126730341154090960720365365460295768094247926728021831692906952376767932311490800986664748522820805010063591100406406901029176673713855926684492326912296230973035731655012292391833517706305539912274591088878725518050425583663766745999099036283567355731617190217246055691679192863240379749175825494740953894751427813754744718833840923567705256209520120225906944995059691304062103994573810428610960429430425347037074358507475538373839703017453089719051987643314060759544460882308496114990268306264937177236854123860049510562923311584515926361072274950521377418610348643717264608016600819748554323211887115686156452568066188016685329103917577557086689136532674034349201091419969849160288727072888557853817647008163320173018658342582110434477072055940845191555381192653956980197984346043714443967168830274478054814671728660489255559409807165672772151167506737691888822990125324953167495011610015770222849990260527323470387454657769262254829367613016022768752013567505335688534196758703711850386752523890997907846682093066173657117178205272521183174854489360547179019220753424923041047461134666508391904220893338754606739932714544136891897238942152708923272872794137957345894204518155551523035700041765721148363579149259137894816855565099702391601231515545514217340367032280836311418331817877652333638071633664046901537244075002757185571005758230118790498900590984470830840466214692898382932030232761003989314162873644298575933211591458232329830373948096274208821144899103235176269772217392782184106175313325419999001834037133797546960128693180214231388724919322187623193394349247920123852059014336019729788143787436478289896769433768469380234127757477987319635847722953586948367944790931452608501290877913859320187602949687615881441141305898763294431964029890232557202958505797749779222908559063858104337891696445628815016214411213274159381232101178858024182906826308983921518945308672390384754699383336743973801282526614536641486871619214542224524740328401674841927068336485601377410008618291932308884888279841362744583274208732417974301367113049621073800522069914845794519444070983328390413018677170019582151907126268510917577723901619608917966093072251351452849242764759803985969512914116039910612410563563069598785596953925403102803550070452506987087706783154663491847724676255864008814523134866674124312344677419504430443750525121518007609704863444555234799924409088985840222410840569804158647888017423853515603191086196930748726429203398423703610824768500442287827618846736983840815406339925776374040839207042832043912012525396856375926381922720655067442162529357782326090161192108286971806926281970052194887639377730368416585827789555887296213892421477955463218031847742937458766024875478640725049944474035329439270334119859852157889083619629065000496956780867445506202701484485948515179725060643921423760508785463209530614915470367149839440341569365871325364067400285600754329630823844696251738445391099147100482023672034612976214659469482562581019933044911206243516866304489082810339662362156839391543555308833685099265096119922902673159664478765080646419830836971561887194438314684468721681639250294153527294583422580697924849940932755372511541726438991093287788652830432870701694545080075474628647603039022479245834118965226102175494331161165541925806706235996887322220320762278763049520249960302302974746796974209401139799191207536279058072489637991854125879631080957890399771055230961864582512340727637908647138046143824312674081646490645025631774821862301353989131678252694647430320052719172399784559005221706147299463443818682934938079218755696048953753006450148637024789761395237142820868160003676817527548231393884526716299723531422378653783780289354174844852548366487698202194116268413197423502278570248958293685358324931436047029162632758165691620666821184581947555667250374622277713597615440396549802082855539950662546663242542803458673612827381424784476090806307211752561387171782667827452478591443181958848251379423535258979489506773874372772397852780880893000178157882196714539307691113996511552609695850423015475962940006814872023453925527672850453813100898872276343870061540060603136005460917846923825659820483745632434418595723935901775064311166389514427105422635026027805199760557665732662920889847577236057736068432136295417975484241303436287569346985831036405746177552442661116755051131717322796349411755899992982463369464565315059825703127473619528085801295787813897023122874293044132535122557111355650549243901471868934195318114520094437571331841674809897629860502065902968297056149095089791063521737773049995608507681415724534613545020056035636427785740274362285340554214543203367371062379060394048279369054841363661539299744445419278837502281128875069868388626690460933238367562223700026321346951698472700242204367292400267883569932107806360186754385155624836383409873976801280719382582371390992700288862223160272491452596261626235068062500792178150884418718768547841590662490279331120646613719620267674449602405575607871532670988540541235819437232094907162827749252103096826469678000744732369461306719909998030203178197383421979506426300825777305476085601844656482738204274440644579108791508384617498887307017339189472307863343706834316852555452344173132183921179538578647790639731073012870509262934471047794324377842928414338082464948740153879527137974241567847257132616528400205555224819549913605981657062830216906298511247931459905150698366968637427969958833600025422782868777411965588705740204412836026139683083953000503829531840032154958546480473824594039058516323850827335556157049584203964487294897728791703931882854163315388353094814541018832467465584308024490316436881610496281196867048603852599022137284552551812382033562656375701053730839805016214656367297971155756858949089234730729716798845229634890884843948423222827408722648486244785879844133427771700374480477216378726239045858529576778608327244931717029312198289415595509280840269461575001966227894748345189596742023095599998382080411668333353796549464119668713336723772612809417800043652284869968124178547244479741545225653266890847134500852243217604458389693944098006048066316357392030388657745497509155006868729230252185974482252971325255168683461058101949032190382491630956188930349704297928950815204192410387645231811246170139057692114817558194738578915486811775831293417636732359071516776292580323058484523819586088497921756948611501471015592751272486322092047443435128990063284342526923139590855740915480928715223496740343782393670870481567852394381257131544861477466918481915309557423388548683777377663744259630384022771275971339561006620140211145581692581977083137062003256027932968575183010387234494650145342611090593948170822005853228348232538824626389496555166384280662064916592220377218576524389542751590017044636058360632192262175431688897478268927934428150271528127748789254400291360028440243200157881383924431242730235918605919022351678630315081316049112949416132639408246660640351169351834091199834263519566114868502902449625973510090744821293883020855892027344853321575159799108097454942218801094389654124229334528188463590271349055592247476258338624723174175569138412703062872920521461166288971059742379221696899447082155103772381052170036121523469743932548695055011879697362501050625316689304909829427452916745609352321315538086612447141459494188166529575743892702836933228265166042117234272157494800111602638025897598010869294797428094813334075370193601855925032865910115033120255770873847964041716913375470998212135696031708554063501436231451809896236389461072956090759694952942113831952042892510525106177391341635722318269828502958884164673662507678461498746184182350065661460359393390334239923591032911359342942812651857090371408338870870217267428312870384505548509208674936074871707941194580019828202159807699245921855807314347215029827824504483615936999342723479160221488493906746328439689247611478577624324221391852322120946720393391633498564343946892881977724461684389903059250085927696417201371922682322564306275698065522732832981675888790418232472815609273036971304469577901093837704191849880892885954363367413363613955757043511014270060738861069362819907929258975096826121376066699574321769405501546321433665153856463516682086212437256450562666273075012369419840801237203923887455747222340405084706416809105550988523822394213598375580125560203464619947071055853579629918796671358259532201280209337031505849329732936677792180581792717437715081617829510946696841241174671931630637522337767720752526349083398917131284687650898472051953605187386607044241795839983717242730221031092015149474089236579423908766520572829021304500190649611720596477423879871587477664725241822215175750040559259123231045575063360034247056982444369376613010138202982516656581669372275460894505362046376367877221318275877025753350998056757206318249976232836856268902188891092661058751915762447953573384633866202522822941019995568442610284953369276572245995042063852396811308035595544433882662454117390204515127930070732609502451164985547671752295863104337364761331871099495311002808083201011670355647933598558762335903173359483379514679197498734994857107147187806361690739369615862711755109813191777667323867765058076506851985564024680886609313263238243976055129723751687758544615060458130761377959946358248513695154675386486892381193764147383279858652095645716690375734377903156685144485918939275721164619085576030255180769842647830035374498567847859673733912424799752340677401573587418968739542241233125332822732643491461364614819494316466604026240424947307229016107914735501185790439195430846216438537097787764612797225536895891506990496918808340565511548082194744747332408599481805718203439060424886869410954599830039849127018456300170994762284572807389929728032205524862887567211954135552575378415491284143314332844714973963592896087185182706774314200756201356487893706369342216611092539278682412691949162046237026886858532163364025336096481231783253637925676409091149939837243059027669430085479506606700116661449999588065349129873307505233937082965324103248704969979541399757963828715238937535463292627238939706112714287303079356568880721559535820734780924576654222368096217058910583904601649092067459909352040452352349486677113563079292290696297155511216693177007429923295880163878067687565504828381334984951260834523486033874371652212669891393408335817017369543316890786948700599809861615733100177117495094242050336052906902468990496215841493833708933577362730513466628924062151495291835681138160395171990214895183459546745038092698043375186757927506231394698625040915255479918070407717013922636415444138697521361826588141730082585990899246150600661034205305657542741513687476494415869372866330612783187616720678115343862334667765751213024679736933699118738656470610504133914807314764406489483036284985343365298396212814455028155339817472124107930423965106393450517890296582161231957111085445639609094364356279179961886165425369974175686064415151366472743825202369984650322585280813226035385949236311315669519227524323416134817687515309909841136926651449520760001187125800157960317365633248512405595388839790489162455625592261834063838445519565922299850918259934329696026498495326502790217253368535144685852491956390428831476349806487975170003054189911622911614632790245215742198050466691155916591108379711468913686694028497440058618515528093148215011723739100662762703074901442422516802410540096257265408939569051185862221487165571048949039068243458049916026610134504362560470556179133281374914919620867138899126747512351161928498577414591836006341897381680232437128908097968456302914340500641375982108672286390855703727549100084557671042948086717992943723027710723415126753628824166937879526501754514706278525358848455278338987524249097075489319178363866579381629569242831681518086742505072321056391427278800208913012885313600366606143698876443706984807838126753619520545234608776897600055562685592773086371238982576175988379556767765629578056590389227890154457925369558588675317787524964798152921430666066828042394276773029323500230242683221206457273114235709593690280969587286825892649745793538772728096667751269839226705830391546184626420489559891861753822573599934751002022649779431145575973974508428693589009864013754445739129119581946924235293376306595716336520488869075484592073344599776925687926885806159510323323546032581405321294680938514966582116108734202312286300597576959600299343938835933584019268195363593729337611513176620826509979863825845468856508228110517058096076766392723392642683167716417322282812426423137334258544271566485604257877077193015723483196890307872989197111470397084482738987720155892869238681421682427812342126364760144554594780242435848190067252200799362718374611546135240398498872894353285581262132312938379453037919557105718029431477041959832795565494029518007396443681217271114186217525673292024398055342967688177292320808044981561689833618924777646244361772260027339254418935997357404390231641251548562882656928609479420398493612646938637486339578324104137787878482949950555996904963534296293223711100105033701822347833791932964633830808468964204943243600511005689749372160513310689948888881285261272243345784177263396898065063361050827677381097287340090619041946274982937210592019618236160754607959077698028991880275403620547855846062601434286646927910989263101510022666977934450863728323082025005761523853068786234137092897071719387889712999032887943895724124229670286414597719232027104928997153415228237512237397778441315959614402103057629870096367876841365859124403089459462462506906733104134143500584811348458373752544124330015564389702639031878267969577088095615658338696262154446559295888836659169642622890011844470961924503584982690944804361942237115618648051056363653597676117178426740170061611959108458676872967529027412218030484581173683641482093919663880970776560102436062876043169744891752278698031457872411724217920832518713656763225187324596930210173094586235649215004172833786525057418988137298464839199393143287953773273167356600166893362623529826559822810873991291842913177590521757630640067038657242639215641574437845048175252261475341887455951363424032449368283972477719871768649232418238731811057462643623211789915087125057069764025103781445027416747820774174446459521074535365694965221430558959452833239071576473322147132587845567924305437756804447312943735614398855341061701676654006346222056555129569039788227848134298568265180031618782693576741554045886144976544491561316510557410699184484911322773425178753760821830578768048601803131094728502926692289484581253985829051717864743625953757264432320636568115166434587905121870953729906533005530802206039245249873767824897265907233689165593152509321089992373353482985123782722287391162278564992667551507141656508268693022970039185852852329729127232401564904551473454049037350135893560234104816249950404386259167599813814936909039130295868341858069514529512698413918651905976869388158557221178590898224414941249525316825416829543423973108585071439937636600797843503981849842140412358730044859502906139536472084606550436312229551206916093720806295064119480179350908520141860596530811813041474971482165998512328200628104699285473497272020702339588929793887451101535227367868943159279025210339785664786945398057111280185139415158043685141872004230469410133769313153854815726746246019962008874273649848152892886185621477263701731589575270725679944809163175217311144732599586533629166787031588643216809099857350057239400895441057293480777671983808880134465059569442939360449879140391188536375542525529588622259398139377627123052199930004404851628997782332412357746912911505726371203047278018339522878814279188745320586028014274557400588141513602902056448703359569109579543425469003276694016147135712294751391726007490524968533032767044077352603257140475922540359146946463938027304037839664469539740500297774700397229224951365790938070430530870672542806127306439679881338279812672720690647192118476908320806407588399127381666654306301616264646084214406911627899235917745838143319092082196995268848997072730088772940313252521635177231923738173375103241161056150008653057374397567392491679153982748999051223411739060281044293251048339996426446162558516340245601567534717976015007556112827116556609848607347974222982496367192783031538457171443232219021166409088622681488773995993262253414714457431514936368736451303608709040032328723820017441962244899478149598242136384078470486502631855210031810419849604017915912013296710918307256100824541917887468069282706876120585359499032264344909813059938319731333391313638572201349223402796448410119239040959417390143419769111285404203818774300156253633746165814688396529964799033982253307365126625759712091610649184247322703972745149966622945270290125132998004537279278856481254024269463476408822965498310912337528627795260926184629892761040070690598049236511617468785736118856098836050657949096613925606387111447445943409880313336774514763876191489536766993934381141176783718718957039623296247269773378385632393941914868257442382644895883722326189749921929863058822963857782194614044987584253590463673697631575233038387792811106109694202086194940085043644753754330874737262550090785297691200353088361960964397551739599728310067189830873289220035290888947923147101363749267005981985377991532366166816227167824249500798318520225298980234471267051412844046105957645730096342017574659388589308338393053475176764510368028875040199451523343093877806213466813525050028338840999313572182947970824066842446778603428762397862289720400218883409708767573786572900781702165611399820018644824918884825393620131525323286724036962722100214145979833231276626256757314684386703758117963378984337256675332431585053708731758229688714362951071487454770324947757675559312750401124308233068834397979741707833767663255398634678897969435565531571257955189445669551443940975298219565763958842953507653883444497734133549650155341602465062520167153161436314564494178169665316472772416514047984983552674425932476286741155619282058749534568957141792984546061562114150453020166748977503231852246966981463713020794928467853006612005528566628357557287986674983352570577257701592246882019733652165965150008657100361072047504184633745263508883070109753499496213477035504796613861576321061144658524109103895143483549519227140202401978517104344509704083677905413329028373919170651886446933527973070280068845006990781598370930424061714612333538424269581278041216980310641740736490902526697503174436686646783114788416705648802536701789792919909092036094846360145617156254792560593113078599968294115138316657170840575433310279330783196693706195334806151379683519890224002486026322353541826847251505848560571937734496005867079531997086448951741691826706011392074746681503360189376547788998719821608149608275230302555504215806118517917427997566337660599025584508111877091045056425562664583246203067606556164241014898888933993180739785138774482262829502470142812520578279394819454505636967023978190432345607950778394133326387400975772394415167495910628588989221992368869745315638465733542022957524962965611792362976811837530402354553804078131338299927147934190298511435485562633908357230964194918985451895539229288161268810379318834463367626128635888587959299042995951816302735859231196064703444507767846425089476470852449838612220512251704018133189250847719568656848167047753418384218035978094892678714676412025730462580966397845188778119785210956234369521053303204578204919090297554569732506367423058387719860333025859096540205898787982144932202086167671325533392435798823394177642311277511775780851126411959148156798195085124821689152585408127368137914735544934351224014774603132510615711655753496217162874589135091689739380449326486400706090720513126462655192432519573929950325430077803510480626481150715344026837255294706703516131205248007837830876192519770129334920358575343164170740766429431831649214647291435443048484727340297242661725301742916796102583438543098859550269973794873283698763758184429665631685041427175099701650222037815458684888221088734032800957338854099734210984641269924522853036969259801472649239008940473446737199129022304270578287151173616312666948600812896191792045640950611607944011824513155731176037178580740447250593440018115900101098314394249752444738260030996955425951536636425337409867441410528285235564939325087381014071196362601794466544012996677787111439939555076445163683607774444323469700610716955823098636000309894703489110757353775429943248107393398958788434428007732324453287239165236611631097038407238524760748039901756889447951062524498785724121246566833156338107005884088810423028083223474026598109883578648254634638137758702462495507000742713930073336727203214263368858775351668080138963496490489477655627615039878445981913416315004696825176330312935797182855708580083234879504511452028687839394448789020704782229897215568214179425745894909350840549608025169574059232210098589091897339698819245123182872772638582013645718707560191530173779359764699990158453541129523476571026143096379216782852363930878333486529443951467232091806255083801360375859369757456060056017803022683480721238072341032510714532943254753643229364462998243565323721053870963505486824276292450798461545348282712791220195678276554644308230095967611564954989956304533218018406216388899012784440154051744607696991791596313570225616430318338841195857398462383634082429183412020919210577647446682152433261010410518737684033612853928404141147934655305775264596037648470836726053263944474003728145288150641290370393320835875530306141420757551938826360156261754471469960710846096248888429415554842989858404296116086903961021625511966332903249821960980440421497322037602157760299170399837075526703306234835008093549438310167411369511724807540151041091643056236210934301096823924245516792418252508870958129488030687685323089869727473454654383057016933663073531348400600869225886611871537785598380125643426933563647725073324721539160696907992416923118617966192191679420966359923657270784360315429467913550060592225887227236007384166304575235571108540986178009845225007294336525127292678900507490819216246459499477254414538572612649022302812428938822281502686817200142515191177813168528844530377385441590094414218908201407400456163450183181425489577197501732652622824196159144383359620376098749319489455156867945813189322918788634094542195734517140219924329213505383689639990082553034249541882670841228677392976614344504029677463222047723507083630000414058439545101482602499026015819085280977782306068369786308463153436929830772897043403935135525899881130683728630888285132951816976445323230513581616940851808759870594738785757936402256355200941927082577013679824995763291368166229369440877176134000412438175557059910163389468484048376566121656858787630874390385171475909625099093323431209855827057368076212822807893673453772703491033939365231551690695221286850479490801352220866154402432531837276072358688689491249870383831880918899295613024741728581953376834690535097234511329343428119405214281008328306650908408352330690746992375188639440700965506856237115725610146329996603093144654201525200567961806988246301428920374546546967364375194131966334671651479032952012186029215309522931357031807926628441698134352283672188699684609701510795182950780844721803604232036924369974176826013677980524726264307753510907277187657732793587151003715101951673293903515872410194498311210155283662790949767186017725886469991501405680456486771382523590289605418055327678701058300482334778531615712085141554744782748556992333131297675709198668326421865671830030138407659389905817442671671254857371199405027252995993378750100793083901616535210975535590176434396649019573897925899880438244839456332654869961053945599525256913516173704396011619021913278160161511924529014310947279474301140042168509974561327140618368793047275724014126260479936240459104113939302486943236480119821864928195530951847363762325318305205943716034302868901414669156607327103944913359256703256692762265138723178172906728598789597694143432113409200943653147620681381960793887430781513339545566950074351230822646661765311148829363205117715354393340237254004775231858353108197765023602004546842653139014472397189171660824534075426469560822721329167279859848351990752379784844413374145629661531367391301668792555497771056328788946173685340871220135295665805744178195430627259291150204919860171680537006257024787887839478820089716715713831345310819499384944784671848079556928490687045904323188464114856562284618333206901968510310064805178633067907546047503444858384824399069358682647453655910396374448789488132361114085397019327864475645366188784373529833128831834627004321232477609783971026448889147662255437145560047639583977290965817391421726637772774071619180939295257703174554791182815049399230159408596117896178466112752242894296229573246828878106315494081937583776391733611523365911459683008177315133622272386253678206170867815292537659151910483770023377699407856790479810420724088870596548374573621234695047499906733855827514268659696624312223089121944133283082497018442204935284430903932604970672139168646316331187576650850533159151840969155425967963878642262134093564459369338937505097136781117857148746235157096631137815046235914992307312552374907026145846302921104389877271523868210799235811539129634307847489620221200295686092074200780015232984054826244690543620948695034221450155402977367457074949820235924775701521250879064348478967771293233646306209855772203371917301931301313863899948696701534412850278846458757966715330283738632840373241820419424249252190079931445084869575859187382672326964314331952728223934526448795183763418796858186890713033875139260122120930588430504850401617872334934684366289065986773009559488363896185642046390116080523053671524900264346755328179988503283863677685714240451982503033869700289279044489135540499592723568152870558912273683856750751796614266377011385034889329123578883303991553101486356147450390282838506247507820827918516674604927639496056779114355260539280659772044485676354112584548524012035148102593987345957265967877779900729822566820647298689825022144376320633484239664886134962930911302138094434138241624257481910777526040596394868161736130582324998226698292338088289596523353273840723910605052727755093738996758033612274243307804052856049513682220418904369117415495729190683638651542276347661383308433175359971253432528258765292319482772948350473820518200419042159681885542885808305974347542819220484202375117513517440227080910096979672882676389569744677605265534669154191547669743923413945348470155678037215984073585703729810619304518637238486857317607429336634029319161027390582386673582171078874858744094626856638538778030180873733727763127218862016001061623378320829657173332355482088304060756045909979837237757223244185716141036013749668811944172268574134633077830517578092394624777309013294481729806322640072579110583364379411161474318185268646523682156658421772925163331369403532794674236214856566675371327873763035300587742532039597900157636915163732470098136079269339030221594744007850378815628207391089657203128259933551766690306680821858758242589401001742673454944872412457428274520681778848122600099953037589388658256368719032680471746672033082134658322951057299487810500861411780577245988168947737594304960186262056655214410806023946116650459267195407026450906680372210287578265760739368633404777246798108173991452723996440874595490456184573429600058315789428154937003037889123530433975084212937742477815242961140545714769527592502793886713905182232553429175841139806947917535070494504657458971605168095503678080571488244445422624243920074533574452971723584293866535279441986620317563995464242736746790396338923700629773643858526127157621075747379848791460961915715910130262786787201000686205176249253261437303458688023519553624517193222815331747995549308210508373347500408290919492018369942630545049651600331526547953686898249198990819933788080644583262509586024231203107101432364601884840417308878293006295972287178447058783260616208558433397176468663323322401277428681658553071988071026150930819235883951000532991114444358427243790934273086035884979819798470533538516866787855443569549622230535079740197251440949802074214868956159301740657657605277845736256984155045407543609338973659781722073349377488511006207528443259988718284401099082764580005620809573486298566428212447280580681874789827271121968069708008095776424306613450534857612026475710874369543403297031137533645919257870253895656516088938893639875486753716117570110946005296277790691894422328931813279227710001269341182317604206331974652660296475084562908205387560991792171210135684500589929788635286498257416289441647023357824062466308404950220143400130114442559277203753191449332488687138547579754070564708758257693248298687349471827957125857986194594614401059982287130679559437343041426916218240894288266671746587491273939828880229403809072869845043208113323067988784350100550648167017948270181890995859958397347598015160242281641269160706998186751086381867417142145582934256291605691435843898345143835990440945837913238596533033971863536365867017801103917306437079051700627825848907058204413959437784042174416562463431279149945254626174595471435967481341115131617750003261062882971131735593176958736784380769326431946784603453410555117990092510930046421931785342201722149454218387644235259966111748201519264186859797413750149258599736248050162142294153163818699359241936817365726864526627640094983404120343769118761676055239699638920373723842521296074012022755030393206994389598608825958367048555836418649619412863425380129745869464673464120948655259044772711399673341348428885306755961752772375927135894007311303042892926332901454993373065535971308863278292438164174473251959899353568266283775398140132790964474666865859205604586567265346669914741739772814426763490481415711021504788142389391155357465478374125915278339000432374791836171531916430644300830751251928598603349483860162018070060862209911943425122924497934901367401431837211162344171116651098423229414976480053480610764685643771488845007332075820417881886566578328553118952201871890721683717827406767903590485637958457919710240543703953829309644245317756137019579617272804429356874635838902749917049190515733879396151536799783886859731652904961697682239780315900661907622862143178935250799380091890543160853464240838791810180158624210403588975603512995493578041447184799842253787031431873457667965674105585348981600974628218936584411021973016145130743085629288144131125515471260178554644509920461000031852049172976174757638350636294315506884035207773022407711544890855727895854007331987554886793986962602762371491029618993216751205403020484867302536900178745692423229415832179482599839594637493622964715008196962534372185248456357625475692429211335112628976225679344319841722872669389421049852864769642601802286032939670859700134636456811403456224107809338814956583406869204357437764823561825419026906890804040615415854614721670268748215230184949332868838865474065455540492873211730569093471934013891882421642898313078394200701013514926888066201867907014454757845368798998851461581860550467019337314417145005434488018072955772278351752942271994185674107268461390364275100545876442659661775245004957924994431510966267318006162678852225142188604491628618113540164351923176637112882927061077699603629478419929828064213532201559055176092104738638858435143527877593416813323265731418344216636981074996728974037546913855818906436427966379367787899139080840087100500202255902192762228498137290721917446098954385600805103864163080923408003334913475292961369581452886944061972544586114043366749233391755613521375751055777540329058806688691268969328013158131040595007579081202012967030560518313360461960239786845850585042636812613873397687365602291357596779581049874476440996156777437337601676646920601741326414061012406955798908107297219026707903262779585389569205887051925572005409076550795691120950541005200429464774050553795676543194229793516458461297462781112881263252485765190975591056179769874377956701200944429527637713264053401244481042263159551665275859877295852182729995624380618607831509958348458992010834973166282899266425790453545841460376423148887189740402247458370395214865200203050293836823469327224432862739847114432865265354612847364568715600257205626109283833710852485680459028344752545680163591515427744665870484463651419564960466366552944891843600056440235651101823892876590200514906369454378659560388897433055391679079478869581074611986696009189788980085065173142023569799953676044680905619234969737194905012606115950248970068759989971801506316563436414978474760080990684299451587788060300696960528662433497594767753134157280288246871292167025375691266559325337053360113864834297091616565401483304682519516390645976089185383193088003194753188411017421169028922704980578104982199814129224032981460723790049885120880017752119971840777526515686669720968570943999949910458586565431573015591023994171757825822096286474169224589187024350943991103197274954159242216057972418143044058053137830303172014322549134574068968167788913919677267640685987790002246639936489001109125320748973162270433751549848910435630485395105551871023721419327135950676648660029651805738327337419387672327606203395619206266031070399911571735699367999913107448254548653041885046514845525311325782485222444256580876747551441524244676271197084176661411763309600812695187146719345667695330984899225741005892756224933354392890880939327375380118477116527119967045509242177623996618640613345486555294358176484291825122885537050897435822901005209104551183527166129863734396745120229287922529263941655496614769592851301148211217666732965200652745161594717894537695192711660116540575623154654113976261839029136414032253556433080826360634807084348672950020561205639909485194899098717556205225907200416430156202934120853760471620401816295606740404775859667094964349217594845860189360041527598535549698049260345809939565047059057560220777648280995796803937783792451104146465645247230256433055865357881470616982407925817244837445487737851672095520442895873883778314973155349408319718134722539231756993788733407452308487188438738910315381819152834127796115414703823071104742810451434121864389044653102353641025377549126664454490811661316265044308775189255483340015974781567850812114171148136551609090324503705090502934738422804908567044202969597646061905212551888459306479541401881446607038260396833129330092877013709176265967103001511836129393926084622636811951259197326988348164381479280811347821366319958465171785650164312417330175033892702875209692884012692996267305245800625237956929176387817864164796502970856745759851644938164293187758654776835905149046401222959394258750072439579859766793379995216636871537746997566080486233581207080621973123229598825670521429538338410493306167660825600354441366495999390640310942952633608661353893742686468551016657391664829016695307342094743787006234332817180347877671835773576076472860459913954591585006704671930988800932425254661151100335987021647129453486067134905158267336621065342372935743275737799395368473135617098461181796771014102257417356227864222993083700315422430296442058680942327107501120360086276078858059774659772237658747871680718478821794778576943441311255572080359579596697890975492771634504412620547297781198859849868762940103575138136199320956908932236708711644324405877040383012065188675384078079719046702920486157772714805118875338514651441941088129166278697600355712964016431562703165606922521947087390941806762871392761249309413949598263607426906406214473369402054952060970289584398549258329941351774717244043454353685506824218180176194369768533437128373162925987284175453777366536415579646394725976896597944664537170119759162415036638494580770547193211667185064242250368295875065951288536231772223166804535797585646084967385968701252040632382829625589455683306591907864098321450278573457175452286512203357843476957331140605724633976673750686099896015272773433624329960762608373714678781284546285207852146797457471470661229195210856922200385149835084661131203306072598301800051585853240424511147911529752940839560186373303535636431341151815980619232107075451889755896759856657388828525609200509663008097747085742734311908057587243137712320156139470380617935482874264772434780909535850692654312583521159386775682350161215662546629851019919711751678332106557534024182894955410202345846346693770791285066486323239374345272241807041061527255696865264249309799266022956874628173564528621286994467669193150174511617642132947752610131490341030361514921675833885387029384690506055371761137506139964882757463827269374807605181487463388659767301060140311893362698589106390206972781619038647544697691584091958512263448815289405141444896971482294332973937235620324746725759538182453026992188600632531115689303679337053921248552712368378512020838100190724569152688439442194257717986560833126352983752427495991270986867548982055613870729468507261319164650731511177514651151661977616080281704705694072114647089757782612651439654815254298396574010644232166179054878889671580251980478751691151660902013889439652501631035254209223559744085182989446981171449097520479081355319036926431421579964946265154245386175770470103440891839667371501186486757714169650362311885647482227467351080834993462989182193433632290098072388763889988885675440397848977001860621513286622401117996523965729941474210832370544684338243320986055550607158755272565592463530260315584758158303195591799817480803148867237240240063580446684126210326277450972805665943555056889508946740971250789067441356187641167713975275920084667158673118233299943345800623140302329430764593649927730941811769033616804370476716380710697514073484333155740767364698514299799530064933992070631362448981299449244569803817659924213752199073526165760579480800347803065679704808796865734167310048401939282519233890911575926460856637841087885784429494599979844152958705474761543928642228175495791273098400673685696154018230294216146481520610032771799030934036212329682124629203929029756609380849993731546523535373766917491568411059675288544885670429812672836519469218007312037505932790394454906606292764014087185513996074990155762311287651132956284064487942599292732200312828365846023574338096715473831060349417895904450185514463253809018384538308571963894151699424671833023844745951039011217175529244137778270702617369994118278001408957487403580016698648881002306721449357567311920007614035515440527483831107742294087578665555777295062590210396356480376320041950138304047599220836948984695446779251849703622065523705356550782160661949928053957268292732466974080542594647395490064830817643452540339964061529702397615896651331603410036374828917942863852681236588344050218930987570829065714216307684254989320055978881789172038183899267697111398991856417769744536415085324362428151544404183039663484204446309326038713430818839596170482644797212177320092310667599658851269079234709949055417159210450604668547141652873882213980597627427853137554136365526758716174629171372368307147397433432458259966976979461222506351255058678557921789942671668091232344087550333860787447000649515550729698201717413534584841838132808967634909792181455541694287403640447847673908592352608882771017926288141398194666939256760148542408535640921313932931504865543425406195798878393379736861853143375833770238481906086267156283001015958153405623448231738159226072310458506023448473679623500751080088116729791168346397812730733331113730584516455723520956744180993542410037240730002900570718202621813957446112602494198482488134690455766577345885225301014671872620862575839003030026544478117983006379767447903438677535059326398681686731991861741403344220981132740900891780720283805476023650482566710317962959169948113420775283476810123148533004451818747375924203531473164328677045324800660595146925477496969910733016776770669555138843680660454837192195133096979557402898258074610984515456244520335619644014980490585444452681056032777250693797720945046850446906852416479313461966390047349733256175091347101691008892918154267631541953879627096875595538366109424374616802761647027299884824311722606636833502042281917529983465692558176733497027861065481054613342991969372540206566703853406952531182520984136380951440046739329226761381341197819411109276970427515990913030642084705241991972488547108317706718960184021792270444158717949656982236118773284243248883480000067950283685067491902810568840345381219468265772585748505271768044165132267938523830036714176910714679489392665584161801756600036016050404350689276532866834254317775217419617964946843864097822978356041832705289749867811926107882060849880760247292250548806969048694034704893166854596943311984505738342180839072836351728990665847934453884822952359251690956845024733051226893751804324639826836679512519261714264016103388822358013525306304100179308830362285952405848812244820507089146370285776401587192869784800045205328083502103168764995507042472590955034949061108349290504743056698173711956265674322220701384322261467607028148209996456315574693077408639825733128037419306067970941276042148780293396635198676996407800621544866120295932698838167339587459921461226404023057386340866163434738961197604288714928491287748437899709738519112080409098326039021824203799862951006553595893263258945958779285074957365395973814671264996066332390994562381705221668501476083634767092401103884282063742530809627648905047639517568052382897995833078174042416739646782742372793627638737726663012150510225262607330736860105346593847789440917373581074618312049227310054575988331757132060036992919459987252483154207161836252595463766349524831145863873788853217321994797970641253501764069406945375595671424409035742116935172106879059556459354392536552614617168307785263233867711832379956855524272199202173847400686893801023621969211736580517946778345482733631974284914505397801412515017012628112147624286036338571751696837699466397842089801704145495804776932777501588562496428294872196913235518442838289850359011205762077052610373182715475915619470480479861459519908757523513446144452317824754204953676448693636907334130068495862100621952403410466131738419202353263663115412787628852660084287344561867775855700949393515382527442705911229636396133498477201325457970439612736792886913885637498749265956419377026076029342131358956411811275333209989320436629382061361287896734912025346522072960189932833125016679555996564857686313205553405899499204984951199440460749381326225985580525128687791227320963005695674164899034001758661832501374776719422518577408394153467625473962688541228822925792879827473166690748411697805908552091830786919310666286920253124168258795163360915012781520834001074169743385679497545625160248937180067334254037749809409150631738897314944602686725273303856215976455786208801678098523304154548381432651703265590091455903327644562559150613878999423300091239170929149786494083009793278141507395131166253189634824315975043105803182681739349758843477652597104466293488570886341400576531820703149759322178156445543775473301567358310401514220232271013599535963322571273377740926609049571583149309853965277459080603433908274995531252235425735881500325194725980238270304989978982928565113988096866839628622302107231542152859772326173271348497779093537592118474722812576053122960509583250458564180607074524139257116911361340339534800357153863751182302026642348444524148201066456083470619115469074753350410191509633906157931375881569125191393514568828530100600799365279579564667255332267193589903123983357916749214429013862247608833804056798407774279049540047925265842259044243003103018202968351620656732436406433855215876827213333897519069120983135425403257885250312603629136300279928082414427475389839969280206260822698964630499174756429184947803611406124563838394492404586233224624926902820624432723054453509523368752659829715695165842299361280754686007010851064210857798677378495310035194874851477039468261180961865026834694233400052757577330445381764365136351550866771797822758520062007526947360109908300359651332996739186995600167708528528435565675671960967057422901807705540355835937906649051220326500794176480303604338818574582916527418392150054738889956305020740612045098961490558564906456449281043367679229155550779175288822328852331209960913532840968769489995734369497362413260732872629080207743351885150724927772903824407016939304988662517020991964530409074820589074272114104088968840632990233803676709667023579985958146628371828308561934788122614293541198749777032372921364890101821437753390765612698999435250558102456416019388417194913668470998367806715297853601274458954622938581410808735751451354001805001839144603769645702943701486905908370853338102365591098046717933332063012648927846085199225621043948370196534563508386119033120976805536467109252118565557324647203663110302115013887309993648868622001207979437651603404257549323028402361612395660373416289260545214869261700660223640298217764841150857486546303389641532835737998902575278956333068911390882817918302845355198312904475765934228434581780560419850419395266078085003909178612373251049075237331567669606679226530001257276073513251963375589520787405689638112052165336280460676735558388223981425150586912779023210118925752326315321869085833016892999019896774902282233720947876329971666117706080128715914759481191174360688459852875892638981755880760191441451373380281585259497504657303533044130772622943719885011654616345114037399495940252813993444724092915030418513120885336017455863084734377659860855397849503176799793120220443997510468328735074526385545322804961902695634978160290649646466525599803253448267474855716446569174932487539917914309131286301798065026157087214128679099127393940685763143580197304742830224373216525490240196350741641223555064744767673866247008063839827505798381293971466325799527232852379507817658838904434826024762218004572502446463773618897166594772276611318227838689382172101790895838259399460139995636440181250126469430500594908012303698636529873395679653349198537875708465201283191910210460184360618553351947093192923297330585674365913543080015847402872487584793408103864289015313533369858249633023187909493789465658703106385746564828467461824624126542355397571198619987298408822741417743093660356990549960271191133400695325260864044209811093262051782469081193997933504927594447198587249565078828152074720852819518805805757338576204674513145145354866575153597278101635665484434045830112598239308921374463276478787973673839919169639075607805150481733301904554584901136772253328511290186107419533418447220110756209100178654821021850918053623092490479255763186395403778715705594995698210050624358936216347235949086062539995702121775796904514012635591309105164787126622049127985384727097458508415089631203665521845746864775447340825331131084379732980326402485059327983367331761240799546652675267170902552628373300606975985939303499306602035236909194511247436885467158934082725118784867791478220692710856696675858940752718458103051071600664884630218440899893848448886765338739464564258888767829097373875639391042281519914408274370278380449077689462261945408758526224708405057593670775002766257092695924865061543921204121736508510056851079170420128015474194801544861358727643614894290392522334187521066296951298424185771000040341017714754516394976338455871679054589802559420923734435734154521490470593563161364893590396964697567392461449372924897910942932647142613521017897173208992077036227930127392609524540840345157557274630326803143753125477152679342330411507799775684055284758545139496424663620288858013868973278144000879270514552653695918951213737626104049590413464470255139381430927806101984267098354712206567451575529664951505425890172036120481725957016716648943229281646175032505304025603373218047967998264361577755119124654296517826451204242313957919395885395887128029615678420221211629600094178104217616011860485485555465185420756065985367362181460377153386915494480459310120858810670920009981667843811082238639064888264477471356464815022027699913152735865894007786488647921546444862357961703459751104392550996737996220709566756210115841092276208427935347729131517500453980094985246196976459449183457782028473382014947112064769010429152958845430903630724633509226644448356564511883267393380077503119073705191734987657513997927324123000461599707068830394688262389882108055875277302994494539847492716439734523792799578268891116230114918413493324160072610308449525465890098301879170703895285830297011283102046690487191114143956915090570401970585148113841955218781283951497847588551894252800045454808030569305326546042680090772000514582017810587551983144762920574776343771919294548341242791904129003628852010774832113223968661001160858847094810780073679368050170072938277986643529722124314444148474936203197858554968412468310100783620898478197101656052095749440911515782294386710322757384098483917790251688629763893228168513927590964163043101677404132244022511167916080754057244075757064342193709425146379215080081084980173319026414311379438433603703202309887937948746202060349032138116660803308122840531863248049065017520543457195911523840746666416379031045731107563938962867997439593587339310341180331764964550267758359575231895160379887994876295062178505280475938064094497623748674371265560945695959066245780780685378125576340807047063754339212632904208898459869350291477015665088856898222212071159826400156513279966181780694695774391074369674967146900098436417680470187155708256360456979104751716088268106575896376428771656675470620727543883572205865686545283514891947393222874109958260569385706237696134096821978782258787569918377249938060937312995089347507350412599747177387730445652827104122337735892044607896730240300190318757138302735195906630322633000251737816926303815490618462199680899675503613712721690047737430516517944732567013831783865605508630206843006181357875103155391660369080831825960541085917741156893403638084938888303305407776266688314171574128319053301214973828294673173247499778213922218728951931262289532374876163406519135114655026854850592954748693236212046323766380282018877963401392439863412162500573643409925646115508903744597716750598667144041186642410009266495993492979156364543141638875397188330124343240867237661443388874317869260990314980378809836347416530968778043918926842192900943625094842565576114232464757994785971522340130601593340352331145167839393127468683605625908258139815523915702574045059524155147136935825303593491364086511977019321719273375115346788605571548442217707172763503200305955344346350824094201504246727590857242818999612789086763609344926019484809419095351185243271709442446252809213579585325297747392644028541579800034650778241665972281959943364958965740953692099762538473983797642594529491430970895607199250011323341015012692356075933985063677735548496899347883946678162517898911308616102546956199076849481588482035640173801911730770887791346761899411235189218189394281405715095636274364028686378018323895391615549271841574153390974161989213830822851806034675654008446104205638636393527409014177020478360105295323361875335245789177639942759018049455724267733995981494357475170408425413411866023179798463189232155409770439535138129019623105655249612184866572869104484832751365405505107082318548086388876535408335921241864539084645000946541305712512609295027766859613599472814899431525001912076315384663652913670664138425866212152060662536952857880612936911560120521131822594841651307687730241095737058159589859491855744784765433143291759175792010287441253483844210091995826972166835269368076500358504647355514974237275691749437480634427063267223219782170707601909231657323663097709150273020637555243193054969884863141207651735399320824830439182685695320039317938874974929594302378160413889093754727308214714618335244974849977961678767451956761927231803399480760688030047981485878619977802972074950934848780659591459354733890144809003081698378553765642081427695613332015657612940083846881975012210720424481736653955299990703074235963619353921709380185190301916417154350422168622057447964285884066206196899902630040081991369815719507484342884435156287923463668268201565243052625599172569397579618700065243126505472538032113176461475412919961791112800914821714464887634764842701401156572741791481638750308628058578098955713969988832187775152228382951020636350411322774879819756348842059507080520133376839263477392845991021585905385130718334654345570466427376107583398954358384594503722572617795671507133598792148702059254757433733771633435735332386886893823767991292553262973179132744430050627650029971860727300029520304518876783698907302559717917379410694890650226453349318658404783906304490437806623540644381780308241497550475423116786280517145842310468695350929579575893339234459177675293947767197344932925811593200162189950102399880103537247468585422028502936367359397158590413771244903897612158083748402597290652001218081056709163505539485882324454536984425639912139673089103329522680108645093624775692108474323318334668647317669476052460073510438615411524117185551913452186540098936339608404145168883747803809759104317407940473167274243147025117716156828606540337670460370217848833074767548339790033559090120610794451079311301517120160006742140695116536879423885614307234814594627459354138806062602649538659390282400954857216147034715380378888245835510128725851211596268473640187306044921134671557121406430524863416391638004542348452406578932687728165723495397695910247614943517177564391069570286240378605660308300179807741766194024510563748348136840647556614987336315063711384637514589317428495662647809666965088845717461996003916867514356088582557701501392037867710491911030183331366337046568999436122861825251134567623814204842040473287715938518976373206352453066868780487665880299358245570214139926275562880781711507152904099263870964763270997192623851196748524016094063879354940179672039975584877887269003874687510922451847239871732151818479721984217261016846699641987446006011656204296120252562486371216658858196815733620844917832885600600688385944631455807994382106879529645225052802973191660187751638763777657759326909143256039569852235019024250109129922310122990239936268759482212545199625387735352557774051510583452083204701455418010281988825383574304642531055128487135825366693541872209880888813660565195009933555351236008845409457596644711205605678962499129785103101393668157931205187012512092103068111256637097332851196397991624452579019458107620535708445961380401268265391353700090950562433742038314847423956193526447122709700035815303638719274458047761709469362748251064244016989896893984392752925829510796287995471581936910859339340382152528659891411243984506954807276306632859488888570869685806434741192096047433792151740196681994752369543144173824151476439347036227544975408253889914556362857649102136078260288022184593129668570765076168200604402560211369664740207895600470326367844240363811494210063185268506743782640536627270330860087896313557919610523760185961426742935625959310396851866841393999150999993270958140956902375054953793258667727827067345703432452541939792487609448969191887037923933995863415360188510988484534708507477327247757268302384645916630453014833410373482079065460199045503608761637086420901014153100912483929466520746919873220735239201196751895301702964281713472123967662839840295775442809196846975796632405087265919771860677108764895966594231357228042391253417877436090793074334696515276574618283563726591171225631520135329171257562023502406269434685344579911813006738226424709656038439013767591016894998249000035135693901001859127950047832820654693398403602713390492359893558408666225140817604024845578559003896427157430725293891640472282973200272092744131878943292967661291686155307601779024990404439233632334372131873079654534730528508326838224885493078590769978904892946495980053112202311369235602447749790500654532181979361337132468501537138285506877143600461452373994712582697730665938229794246036377431737497293782772014048306803068552650927633644341899047754252955627006478078762453000200825464353302861044787743935101209502449000843293790486667059749676089892830292746814060185712386555971053478798362098449787439395774416051161914370386091276608358199708020110899449829612786210771217587530634149342629186333960351986029407081166062842233825256161331096998786487471722882698317688587105406381172737222022110343679368792898583974595995407783266958661515453333016777959961510648353341331028744909690170181572407081483467945506876873278520571678338682060313094921653269123880752974166121876581687062710309792036287388267533066557741041508384542664763654734404339006137720780737492859407165100802216908118537718063680287130064104886990349013110715605364459535476566210427934539707291019493958497692258872944768292208315076597177620961809381627606928890746908738669865544540480287897136083647371468233336980457817349820127602624650752375225821127013963301425564558939125970071742153931122515591612226016175227390973751871911304259278306851932207466132097000211960397887497389828026206025727505508090098387536890049773911967273660772072579324718268039490400066706136120579252002845604557995243349698339996510393008930478338918577171507185422641567732681194537118219027124515482570633384807828620256943642730357010796195122353007283351354228329427689769635164931473635545275439764460812622715837435311099408016309214246112308682062202178990165286932192319798686733362866686951140359727603643583453526505385666689268899703482870588861216717561798689055502358768235991185952381553731724216938031252445686503207225368251504208656970334646608313447546448536189812025883267125279023444736716554821170828794388415226551065353563765987562368793749630810964549861326898926472172566215342332917934775001745297166472822444130865781711750852344289124830143267917678118516821931015687861881949283192285097836761353288750532432874583770760407550919735039993233984720391755909283181929013830544296521260023837984764988652707545887534330736553756840787818608526454452133368120338457556035853865416630478510897663157323711733105852086744310317460493210638526018077492624305171205809841025380079846870147955867551771579777065534838308962686914649559129200290428993781904727991063656502125869263576828701049920822948954163671188925971476841418150424141456743772253131440430166536321779531884469566601137921859357388574166388785020142651218127191407988182535438382893680882545966955693523982237693987873143589442966424857605066562216711076338027694241830242393428089944557489882136624053214106356902756948472198865142731889303056572521172978243080521824613112525264790516730212351907980964711289432718911478591242084517309770166594214345459769149263586867108733036490824966634767048241579935519823777913423151415315533707171956647451807266130789060441629378390530259462814891572141518249410708230709688125329604666986304583139790303878791263738093713792169706059048448696614822901345785506414723692322661776222950919898684086377117206103566261484033132047265270954351031776539793123287640779132934905397989082065265027982519073561654138475685094113546823768208409056570589856251631014303581617777279424298198501443157681023869908826857156255715630819180788250185606507554933527732838908393961199288218837265008003696459781165660903570766189888789268377573883391496669038783258049497440113852005523404032682837199497154080209977229254012045226052171809682414506035120641912168859221569956043683875360488428830459343772437759083523123471022187430124722825565165874187506362045264337677033072452644549314196955597013749408310830772367465115081461888566867048535801239753908621091312803617730452909845391319211291947859143942518802228389014755167205046714508372379897521504670136184660811955459725064034324587558750269688037186549033626029836217026181889181578909058807077156038685223067650617604288381783480943045340290794818111000418809706550530203663196957970429352068365337014959775760729521883163168715023717411562542176788498193059117299245406797440883496014921829319472153851007395608491237900649912005657448725083938223796242166892197386706515127042947714684472628558290756026648141460265624548213625864188794613769311736062434899330960818601659638288216082120189603075087100073579198607767223703743479143936578214573340914606591608198014583499718873015750782036205976414943807291982082898662097559177005291427218721966272945579742011285196146705279623611009993703289346219458548872431724635572483045879926763158172507657403201763365996670370788764825269289947436975494551196957869763147414638797079767538963209829406834236991000438503279008729921878411954680870093175374669033438979646762750304812802745110553547158076706347085052560913440230518517065551030829272454008725174083035257478752557800974366514103858862585848167591444095982323318760003242068685918500033566213682063526956453273477069606046400202648960745500649642043747772378131914506024589205520712466631401737102066366814165196287653902316916379811875438618416742533763255110433809116084015356697751204501393877155521553731736390059149188080208286784924577089523887063982051555200474172245527135088568591454898334994115163631683718035021011124322345880780011360604728999019971948702488861996054964529014537400458255498139414807024600365399824146556132914458020086598802492298774008610949694187239026127130264824737790515207502309477899462613033070143437717698291427499489130406133835677401410843309516957766773961492726125908155406429129768133622202180942671431146683877767777573374743775579142791916363124735047526553855191020856123021009770111968492863482546619697845544483177416531881196812627472960564404305934044315287024224848688150311584331902844297259845425861133072075710091784678493057990588807523534500112469137248861453280595764758089711707305328860023170481329358805467415446986839114384105489356427220431854067776791621382389359427696934375446027765007992170230868773757879284577272883846968273106170156410766023088626933530249095349028639266157960673279349695760798856334832037428641131346302952063588040146355318291784923005326874007088156596039030594828672686115071063885802569136687564329406584403815319771020916993905625842807307364628129422671813194230849793346596977832337636340612415589252891762258156271756412138876920039525855182285557322105784643020777767348611720303086358142956483265259428594420275562987641257639570938141289812034520513477040287343714855433643227345852780339237451292753211899457412042879025440490665585896399968177990445489484253264130830565188716280657561726142213992190707696771585119241858648241909046190527605304697566877548709346982022906811603355933936960216483155459404966090543137406957070223864222489350595526299652363668023943327306773991352497321288723799688917909364149544091087292819980448305503982987637416792400522534737013981420573544066198563003953556087866853440137330168112032550041223878861870774817184409562702034709246773630890634929287155484678239026147324811918089762979929146686022208984884545969402896832257086897388390496320445292134603801033279827032857688922831332723236805554145356559012289543619216227709080829478040200194177500306276217512290832945890917076899869868580249603821794871467689166607902998417318646167141206568976841643981292504485447920333833358278436544047241196486242248662712580806430160143937942442096250380342064200421138649342850293978563760128095306092669175958261786773090415498482083860966784425057748020776155039648154696321138590116118848021796011794111279413176045039291106278645927357069037985604257845413152810127357228833777223536730592605153212508900085131899536490880009662732775565700198478184401070572950545951563782671776118594683398718418500878452395571381036669342852538124326696281008396537988083650145875649396737213005668550946483707215173119412826307676620742003560527770812488395756966473051041747599042501898732498835406627751295308746343655022800315667777366383627748569939587096725408425022959079294209948840616268299810659846091777359436036055416714105792571506610539493900277969832541900780869938130165059130853992489123755095783695733026347911234629279193759231240905853040329223927629674495441419029997187227907188217864996419533873272683253779175217383993061947388628516861077579814360324185951576339515135630894654169751819851627264023342704182095081963511140574520557320600070805645041561817922061429981228275645641624361099556060983684721426129954407374212677430843183777155803822945891064503404192984388924640492650357162662490904188291747332151959747328938619821517317080067489191708975382153807447182338374771500292645354015548935861143776634780228288594895017939927196539250808358589239799641810597387593185395823621499809936234697045800749482515189995220482662574004348570877687301575300796051020326202773235762499282604859259329344833894771604926725765530245682287799201020519216922385921915827134312166212941113222633842008418219399809732631682894863590122579665787832933192125262223307278472713010228058043119523611319313220191812598364089191673650396046528254043353127641725151734099409193047462139104381608319351048976939848035109574870019570923768152819515945890741845783197210715918573152894150788334777713747565048273699047583145936510361624436129575826478644236017036959459816045092042311355095888116994238995252819089417318811361450766697178766672447109309981415475552873800629845350839440731064265534454340942856232385313144281434970928289586201401704635503096314530336099541500187897300255695879313346410130846945785401721582918823054670409107698161822126620310834539677011354840284911040684101960370434752490399071819504556443169015381535271582324687658270002587353368080141124077567141078393039667553338297976397220019829642802576732671197950730466189705523891988528636817333682351432703443232090858245256283684152358640518361676637168824742454442624789584308309486456228702479487050497655009255550433469103434248142834507055007528053749481529116610479152127366745609003473299837966364224279997119550478052648494056176963021464106306546426513303197245152196499284314630127588978809109625861567314787108075190105753283167778549327802508172403304460612039096718947939083620444889611481346125489398990931232865126524059513813141606627690163947795276769206396790772464463144954482107896377885342910832928142798344087665913057932184391589665178168055594202543595402437468304378675881845370924696597436291884407447506370610825338227236480207073594896788855673574936039656923810191101712799053256121031580626495009317130354138459698828377758578765672428125598799232064282458583440802145830537558041003338189932932064952809574686985758838600298883130584758557703155369009723696959793086558417564343112405677162738426850327715705216616542310604733059611813589884972179947346146453800264779673871340202974082719502363432012320304712716155196335504045301173929942670699534512896468889699267477369215646895420630102138934669468815756920582427258821879409937674660919465597186336061946605943336284874030050153671908886036600500144136692961271540197093313453406377136216881300691898094598074103635267234821077942170176088476416942356028559910185862953354318203586760826335138356614612135531491572020207429805600198155229187864600467831384762246640952666537435462376336460117924052442994976139414656833722754171487003502910985566875633930759502033828211813827083401942057426206072272327999541417650687991525576184253432326735180323611395819650313948919703994791686023555315485533197945719467904211778988388626049752683373928861867515077675447079597487438068740854542553030279620654128600533571222287658650909112405519986877726844289937014661064226206970629188818547589977398219893895814741096246622680819109294568799512492933177391583572345962957460003293970047855567984706056841619624302167368762314347246071744160092154424695799855977965520172330493756173995695303769378072970351467548251914572180916758988125328796751820535427702691585484678679946755286632168013419326794534514857208745730616742133468685720160881198309695892832497216426286541085270474694051544301954291652161293245651776415321969962565330897624320835529713060826516411947455860402765849262554248413872270519419734348103941811927869718744941793192969023495976991884839428390660963432233033043826860824004631352276796705683731911352796950746440939657417612836881549008906556622805332050934158886096244029876404893061976426707568558019369973585600948944194688466075350771055665381276352232469758654657167280226923784727426136772612918727329852176330673212027131151279204821187184399643065502378912778148640857970729689035169504604254843372398857225770106421217062048843451993659110567011566760955065640060648296352256253389445015874769630678297808570774237794038736982200191387760800679168051533794962033570767086548944728291788757527925819666011203902187559692252206807191675412852650456625985609229270402252552826005050147205916279138316123888620187452835505001791846702885727974577917379885646427929815690008218779101103161240617405433757434319384772673464715862235829392286238823635646455418298509909879743764704201198637872857052886592180157972531003480758712178998865342573606066833593410435302621007656237548221255003230503110749538435297946966109026693474705145291702923183228730714205638541874908084527202033137041207575350090099213697223101648197747383312897103443557248793202964315514275089115271221187533614282754827666869940905988625578094811787326442002939585491533843868631654703583453983384708344058012316267153328959758638115126284962894587195573312270475521132047272489167109464435963091900027154535504598443878766161006668220416106278538458883649008105774644858709565315575239171842238987130468382109646478318933595678624695374650924286746377861282805763227244883099827485403019873476578885238974506440684260718682532426442206199382786040134291134205639433756861965933090843367282838578397752581710462351897008047809017037429813104361380317949718624991998135492929774469201830074832277372921916683625602707532809339716706912832691925960170927431585271620151778366512470409094198072812383241973987971031770109162103844509565177858890629852265109204603228391501173200234379652638355440623198744443461978828773119386444845456284233031971808742367889981903004940012855714170271988079421431338930730589662364387587776836460125999846040984353336407722860690416039947805711018907116049585093867635589510908032687077457692038123983063890276409393196597157807713751770684330396301452743036988390812788495803948319015581692225613769060674212079217448770886805121157010921331978762689118582008777692359550810014075405249347476530327877663588451693408307256091021258232802996349896970211809825288392703243893284756028760571892340413542054074291796007624125256895717154775007304124082892250557094931939229694561974456692325551601206377301394031809981162733086124719546670090876508751526068036467174370457718079470765045474869905477545052528049187292510580400950539357954913540971548968689942500615126863007959409950528218496786840399591574447080777708083117313220181040094283796368656069408755775414805628981291387493622207634722374537502514024642124410429676221300255846508036923433624112455191801182156538438516298218659545450295804823289079928631268258177701115519070474974703982626390293170107830529588923796264327512775169340834471183913706189403974364883898155295890158957028971094634217417648590823846673798006199035741732218063051529709413692574219566000874827758377476138868164274144943225243749735533791449406373945928802690460193757583955969939947465025929388320693893623074233072148424095200863141191944459186240893312821042606360116555191181387645833442314420962714229863920633200965160939651329571896987775807003902680480853913267249808171743048462655277160404967006457389845497996223766216934727901381646343380988951532301026712002482007261784912576170578874892426724216077398473200806486759652385299678192851067426266272162251470484067071403751983699383005694304294406292671954146227969082428654510803690791133908992964744739201809880328496567925169054425153141339589686310467568424708339795202128859501920302272522347917890610366689022694143754830248259150871269648196153074411637289649634550469778571560148087219614315368872820609648799968444454272046649508474971211766301040488269639619044341015688374140683914073360178725504707729549390822082217428614965802607562786774928381677246109127917200997049418789367566775876813815682682749199787999098836671821731245609644180372224599547142967053204563737262099493552838743625501913985730019174995006608201388846680108480073459423966591644884954183167513807053506232376057620423169341332990645882868995465764823323185374275575400409165435094173013326143672985900692697533260029510236828183207512067346679896524942042357814155737579910400869274023607714734312633133848675122555300962396347530080482595002338096430136473632299070422566062578128120818306535900076150449335081455552538430093017086992035625753692163205710901555949425867341371900540747217353655304043788043355192379528274832397392081768996653517040702176759959733631464133247425578320447049285401714240189337355422825288373523499637470145436608255798118111481879873992135007291306991794333140885835761677829345941535588041105055240546291025984565392295248342080597630822595570250812682283999862781135174412220064105238519831245584722914471077388502406811033571949421788619683732065684860455408242879994639868635802529305768277779572243914897057163408886395951560185423165054111187639983255072497911414088076141463946069007082641478506168518700886440527511034422840227068696074682348239004278845340314692735973499073996756088618125589845071997192853117591998915225583220788970629465294503700624160655883926116106261740247411242938881378615179465678478679730068058582591465981124076430050903573629888749268706798684937805027705838357121234377317229610306963377505919141737870078979568501912505193017298417702637275657245005149139015570472641110542939883327091414028658014727368589383544296475916811782344141800257967969755969151472600899614106342081568984614048458796805639096386910342703139116567319780987668997993111838763958705258524724446248340680709282281696010163936148542078153785938892577365101516866628862156848612022969157607347485020421923052925886632370091436996990869597210832332535743310236315248963829625323589767531481979543435537135913558809056864013856428817572005287890965595300527326091491901880875393476775308068112033118977731215072743251567388150154402797986451911771970300207716264868499971248091767418434788017069751641507481364640683463392616971733904656253910522971937983373069184603475102370859652282434235315007733284895043318995391690848984560228683273582959020469125768134333524312037180516614809411505510131230559578717678620791823444313516476551705207202058714382519101521259905577776284961221373483936941439601376037505560555440455739947346745197108108259322494754838869422589892076117561256467423731576898871885255020618562428145728738876172713709813985821695484006432054526071578661043211216013851030621901454105129199931157997055797175309829460491052620991039512725765885400171753562295978245815603957269214538618265689637111247881706582508476369809772444522649241308275543417582819168239284430371856151244442107478309858535200010674758365125648121217475264417846426388227744303209200534319330527269395741719436918353702394552960824257923930343708372380910597885299554687731248392616282411744497513781274291221995314276161271017230328322871678617871903142124396386310061699804969602066202041556071323239673186124152758033215178427662648067783919273599837609776890416361983072382195424602101741822928219885794434926374225193319058136556627635605707280306703957950780905370650160744816765280737321528153892693015853331451390822378560351484714682837343571974676821625279018985887727482004109000291959325463712463483898434520455780147590126755864302173387029091256400994250176881882547155141700192320125609298984049194759247606230924107143230522024654105947745509274966897504121324703171845651311932131544930505439602768191226181182581833252477576566038693043960360577284566075123494616505544439827642958464312651583164161737974282022279411509458217260244591915945979943897965426519454999535739258195927227277387852776603173575194605063450344723392955566840330603368480809783946921059044521630812565141103781073119734581177823082448696562004425866568601547295366386479454387340209127905027241120830285562954423387608781502484806153389701358967067872654803870685468274999850865056748496673699166771675924716345083234038755112935721233491270799095810009228847401898652139619669818811745894430790900708408150113179614144924004546284019696433435292756737107029668510582765492913418318605507414761000289502270897991696864433537398392719537224562554015748535370683718954586262915961739762407275344957343240460193500429448746592555099637222321957899477968616836514380872375362961109560522276512601356132765672176222369129457372719859201195601993084215269495945367908602321800948773570313307197794122032957649219723434621762064666034785292283709449845649539163813563441419972233110094179843330226978372892646224246030740161175565225869154503901272974485596510996105339416708377092039406434431275441222761568893796579561400313255612957268381246457259264960794093222742133410485929549955537375393564628291358520741077562493761823574848723252085723852606610026378226088985547270518408332898856261381852967309675890481820892540009680571621175842415037304189061826151030378518303389585317421338793605198492995798139885883906890949584184675433880563109873406959340121532715157546219244147103028337387270513923230516664889524018974923122221790500628008360907568401380981673692672445332494044053435427360325649343812689949421730333748752969787739689874342998689273704708457367439004096721616547308872786236523758843306806887231723963590385124312891095576631085901250201130742708723661596590074529910585844757674929597873897919934666288257072381982595734560342676766759409306685828756508612117665357266250857716337225812144708531904191017724134492305726042499952219233065909803394518728562800184275744545664770207290156907193593174085416089644634064562046544249726454461257413349979512023034705695626547480143266017946116711262696310272144782218796083950477331069454914502270605618351938430359649663309043310620381725608259137951673863590644139161653787046319167426501258644294484420752871822950694619436759365079903545190477474161430995907887373143082478116279341819502883925614847773584495108627115938563219253810013305060142836670368535380799407228647852149624234961514955132789339668030664372191398806034154605023860757304491553398732520054421182849988535571518617498410381636137847173568360489091948154044939248764578954435931539361321847859234207509072670448699233118226040544419903050170474037300306322013910424484419032904693124803570149898101273820010282681837820610094746577163025999595227408673118216109326895141214330948840953447718358288824188723993831024531206228274208930082952857363710031324354903932414199653484372249043685008280016548262094825822001576058331687896359816769889689417071709622819600784814621881787053622503592647969700767105907410454123604212769906779129632647466227957289238279984319060483733528285155987424787361149261626994573226934910928169728065829481942164031577326467663002355970665478406839944039742707583045305549867775796532092269078851522754714920560639683329217517774838239522519740597950785992641572991633561125603879891967476610925836571835960528845600329556045073419486539521005215304251197430563060497041047930640680972096551531796287965879395504678479998343155654528446989331026260855006653565146819218244624077241298400601372407281943544800663403012117110400068387960617648552116278047651880219884626836988858946786018775810757583206578020933965292747641713513980398946017072103968923010805779653282800886769313584888617499717322164178923591334694592784312135899258921703994580534429828458362976090954070536836044451009122087898990430854575995780300602633316544498367370990372968971911377575735668999655994095885321198387272934075964681304467147531519684561655422412883313181192744010515908105701610741307234673444102819675431587698859840130210401554032980672267544811288278258452167620501983643446058952768329346001429465182392646569386659156951820298555869384528942326616527861583070912832368206552402595693075209309438291349296618736356054281751879271748257470255007668498609935037475464639633751709807649997680180375920153796594416912016097662922067570152982568514481891308920672727212114199735399553342311228534215242531832256184168898259625505528655210023522401231973437186622395424347183643728950701645101449662271050071101470154485859349718909729321778315471906615092633296980561805692272585060082290338247818112552831770943045702364040657661469657007649543605636281876416945038586025802353298788992796185980724013117359718098751872128451182833939486871890698934496155426715260938464157837187928979146708246938988060292162253121087860580289028442643758203654221379644606160939343633618632687602204259860292051401261755287447021570586016993046826940076087420997699040247255987557218360670895565427595422120007889418409127693024420549258096163750804245797926802890668512034581960654126831319378102677770750113580858754948743504823125974039416299639241149217883581294893912131610983334476161822908575336962330585297471192940945012279040901972634944533925281879170386032505025034217487471610086042084319981765471477611899357088654992879551048931493787405004918242099763317471734628838760475716736453597692068404066556114514836746978603643759103952230950697404453697816427133744490921814273923626426468278700993402445944484239007225138320745235744838890814179268849237988517364964141168908826682578789494486492132939570597381572521731795753441648359817344414154366351017223846156889359590508513838757523072009019630983416841968058845559457414101876281157918566257293516013188017534622380491540373235532877765314658333478813556205434612614223247154838473505718427752351017725548991424895342188714967965837090096094870252077128513610754420035804709502885299466826679401031006828215705227941534632027344992645071804521074061193391633505933120458994866589686284518066818196898405748634656860987908150877833106634228460780226095470529462005113955412128970706291334901997468347219991455681490621980390858714410418704879139333106176651235661023285318539467948503389809911084222720566641648490615494735848694246665829663338008958142459309329699764325937424916508606997072377765805431419728894301809849763722630595586317709981493195646176626277962123751858428857103362037990241931429690310733344548532453003823356669276708368131680416328145517425924704858685602860087944783286184208318244107896265612362935459890751128842426145667744347538157104475897709788734380694774132909528134709464094489897743351799267278198900717442812079878678769053520458533866385688334554335484054994676394908170296782985393594104268853262195899415677145929101092427114429651297375956121996728793173514924752160650190593410805443359489413016801085139747937269402839468901754093875842784220398686918654941178166308156808093268850612500861765814567688068502246937595873588678032574117909821355104128886011017060363716479893286269825440537736977211371069945242586971346923150846809152256028977837583122759764244770627777881977156935022211568349753483158423254557933336476259082434454381063464199441876643322754712149008054065744971849268208706379040690556025811808999942309339513821124225716050568399101444447432449330971750032354316129701399200542010845126398433511807506239052463001889094880520228851811717754416928297554821418284085489601247454422548926728092414758977911176973184721694436361009489453242936616957014531946422689327714843806338013689987474611332954445518180829909885555543595616209355879044030158529767344334811306993612977388868982333364683624359872972796776990362270360567378247696000587598303547533232675532286118159495264344320343246032419649112101976827983427762313620147870580288448297942143616396666101383802713059826390525353324384056864001274678396602452886073418390021482481402384061427188406728679983749892012041990943115014349706512774116587092206051787870041899706875837620852139008655092089530312079410504325172359556805814364934731775127752865464368886766606834764728386316838426552297505922598173860187300157105114585891824569774495265485047155230653573070153418338244315684173436684081632510633510972198794890247196460049245316416550834183823246230519953264013082887590750668492878162236169066058483514835103032003276879534595234110748325537200997223183312492504652910335754131652577090366128305979938284147301723761625195319360436569072055508101672950853203692761773458546863788757467512669660275012621903652510177478512772083170910221372151574183179590369395727245417853245244406945627485814739719253233855875165215311280535695687705324174777649303656261685696640527980730774808825935495342306300450447978708636107269347969751715565454824272980994061137665947850841477751548601908308493628857689054048253433294637419478478696589251434696306398288285215819787905569760930442698841435985471068183878049927144879918106480944960457194317720397320365468246338852600693896769169845041521392787300904412998300121320171090585066130025150357109436589124785116522600459056862030372452362809952432778327592166305369034326307825136388179446906457677996268261697460993957549911261627374282048153786060088099961429039823688343881096562399002191468827280423662735907580894929918645092855057087588339572506784146919404429098280316954655784188019656681090531563974320033261291664304097182477844889641418855367249935112629328988394668865905105223187110121339794869893439003809708343665262032804692539833718243382049277915080780787843642222273997321990755952240293351863115814840402359810670728914775558335983240391461277647418564235536692323641212616279801997824512149086081248696316131045109556211791105065854743413079307389369802402496038744425579716907601012438100609367167583328248550904646740402108625480267790846982880854654315314046551677372923363903466134092296501398912953938280576735886764658561979811578685308010939914490166754492585811872591875102387916678627134370642033873034491540371244114507301604657601680179448286489905320495792783388347662603033938810413173699409354429094972097271207818236843279333908522699293119261064651648741121114031337982515075322631802145514385815766233445205274549788116177509675971627374328123004002903208162514168194431649599037097461111062147993866649005532116558167829744673347098821934000980850121181531805328280016691026960589165484345717110057675987588797650578089757686918683685916634253869181309493931799751328760526932823809115390994817864680564739731902940115586053041189252582380661920214685747282440940469180321752883367708449313279168245555531564557364896147914505276567065111941157426681074252943463463433591963636159993930677596361779409844610978660645713813081736013958044204931132562920596314373961644772672715113271220733427987155267126165373815700607300808743224377145495742064008589197221162452984941111653720610168409814987314807143860581083058988678405815733181581277279999567202501345557095294570017769369586782907196210532214003114249407922415295335058459736555692136482135905016583893289308847210479116059611341539230079541852226557311682279214652464509520701599538515863077236895201825799679461141069654716828462784246126147169224737683082717104243084455079987258877509335892959346534892749828574818659439981235482821654088921333625502197015687507881439493242657710680566971608249096599320103922528824751101856599203280701326909347193569072180453848684810733998608767255947755768829841895065498304660321660980477995824333004117968469906641358169023789717442087338290732915689135969742791939087559938110195582996104592199163337743233008979171771595640213226191850437608802128103699831692109178579195552905192504632528345475550613474313474564203038955405688129887379379982877365153150284023182719923852277524054253237399348576132713320785140353088041215992837658761190770131886865975298269886085919131384511724454610426392082088101808760034366524462751627109777276072176956575852291266669644720689053506135618248657111144259537670014464880066050314338769046665970861526287919021376902689118809203891969693991247418526376879373469933475305144148036791133497942796551515232331481862808623761381045081615720310098488978011699628255560464042368192994786306931915790091465269154972179248650967596754998358763366882361261246052397890311985919384329518790791290629391869369750991590677458235198767574340458080773051772402671761935016799864042557522473503182769110896865698517696500882776822794177248210006910810781935205664364903874034080276214239092371931304670617794954334632641457519143544005849094624733414580715453030245863135731649044598344220021189637465305953410770674930213312765516034671068524187329133359883146340233313398669027626122670282080736808439121875750100831312658927184965574178008734458654919870911099467845943859851264378867744905084427225707799940551289402505484821493343258846919316635860845447083189456298925473598349428863576310543587492093146691992230197404178317630594631257164704018605040218733442010641695670696487675325056187466135724110773895771800322451068915225375083570407907636239803052037927886991644310632190529385430968920698736538325601130669055332842901029965513098638788534188637210764486472794072076397180038672831408924321166910824949369582025508960517996169613941752997752578173890746898669294021495634663765594113927782725132443777304188773338208597373397721582433179829383913012987514287672650288470444471712942612539602210136328494811881522547266730974954242466614544481917714783080053192512516932682354548684211137604257383218939256397348855609357161938725015499839177046518508768901075866407821320638665124076387411685912337453628030163089041623307157248452841074236657487583135555301798167554014682133771848538343100127964401476584593095754183926943644114106905745965184402737227722541446701841352164360940379816110874955269539220254373985466526728358288846481112158880604112500037797668424039729218390290938179908755280476126554975928381121875419404493574993001970518114258458651192483422185062197968307493420545486259260256263031261183455002509101673498230076098119416113054019527709446925448636127022069797465566340846427414577231728249718132837475808535868320131021888841106913021178286822947685070861213428123914128078459052237637590127789375359405937531854573741417102948434989710142216522582552289624603072519120208121004863979163646470829132102277070626107923306952657737169104770529682250751586898482692508622666781639974172702761080756254787104243587300851049535726488024984683132633729035572251303955284480598387767054517736212702113642173530145827297537036346648989225517240669062245494236241603330998853081693789868161511123387717046798077062889675299802201644732498860666837701892650641601545466753697541738159792640295852485045835700624493387252765258784741095807063007802082865333374814023220311043159114095246664646799544155071102034881832193451030699496419201438488107892280425908572931586427265481151645027146649032758496673966688468829097851883679342056312922885266681634584859687701545611712244451764480932145377606910742940737177359778905038780139312906192358091285127972363348803533814004836642893740734895973176041946878554861141458538657336570601351828539778388829331050432251446760645849227839630514568248687978677921982702142308296447823943947256049097703973930461977750058138354532780529529491326845915646772676132656571475921363203990730345507593128961140613898527056391173976119013210419983503361179731890940697086436839380250334432478380025404945032393810612486935439040583077504853829518502329744866059006956439733517449226126421767621524957823091486691183655069551365346268250326746231646440968117761715430252068277553749618147303703792436936714605327621954002341715882002397873914537474419638437059665429408092935552735653111354067583603299284088629182726292740094748894749662608741730494681401000471893268394431602667974771911722128729719777257743084038508014400677576675288646228109394727556671556458941018836360971393431889721128027432800626584877552236704227658075324972290923788696660275330783826742582066442538288721863656178570714247747055461887309265351021716007173692824744572670890126947328120470552221632726013287335964128002355069984275394694946417360084886803613012281441045720940077665005464516164932515341331379287209031576196150338813564247845811612482636927410907373387639822527110245868346941001521130213374455513206904254195210794534199221085944613530902924709596278659515930448162171751912140362360914478110536939318237225080800066660730853570648513425430393975854502735041878917900872602633617445661631753970089227501914454865667326975624883365285968719768499860623404129694004241746879450001573671212626850568719848128531541794465007100137919200129012140574044920359203207897709494450793809093726571707144241769884281345315517397112712092853832907846610862741881743200846807740923617825615821835785744383442932888169940858960307647134064780531597717562767811130402276225096121571069582670060576486522121115053805825811265724786651112409648366638323479530207045477457309278844203434601437474014119293559483483689673615064597272093755428862826792084220468539967985074670323923672608697512650094522735243285104767752785585698846251702416955580943495924756645262441793552121615834582100820179922114580790060684281095409209824900524234214120309326463477475052817467731511953327261921711236323216124545433519097195235667759927065328697019084032510220642663407668689622919380017801214680955342988221045461726795558017870055579230844907558815392168431441671135316888249584689947738250429442671536486112719441032121544583084947861029381822860046263098573553707698377863335060162265799980445321008584562137759133304497779154184704578550850496204122413448099660389551745658129524248283620798849333605580143724614976571912570769003965036512265922772361974034989951282145555518174034563739320019977099290256127894468448374341953515511277347420189642921881475615265675264785789511859563420392609440409701844645171163856816866281178989267526028148078031003099557236208330365757605270597479880837592358445345349695548401649783161675647339146738851519099156035438234297834875772194843173948531295296236859402467255566526827190803302918347388043934099150349030608506313362829075193513293602276374797949286089525844658647198172744938624737394738124663409133877181017272710800352334123233603093988785305066550443542391996743573083827148333632137023886059232807346863351313483519606956230769115417413912472011432120575993060983413285200444145975403202008967156901225240659162237171398668330024019125431080344139092913295223999905399106454347404118453647419286162262995862758733417084928021778791646859574401250128483250735719267300315064612068015611321272821694597894397360673640840945350890505429835219305091548472482291223292432377119044853701653795172003555336282905391917614900124045954473564990164077273827173350579657616214969248214966544854603645919323365754222187206753481074957435132674317645516885980518842642662968517248891134778605760763646126442107642473025975217179689727245436846824678248864761210662481324838794260971447060445289939381684994649338907664822885726055106386626199187438999601350548039479346718255279946291873948564585558137870306649586743850216673222656799533080884191307022787007551216572511247194063057471922515558960372142085107319149837731529113182524691284221706400607224435928298050897226670283876413089839347915849429783017182383931097995569212668543592324064569527389396995131934945834595534817014158943907125996031939205151270069267661418731344894353417943764362523219777916855408831058769697091685815120962118725303157025453659300810850323043372357037618003607882529200443727816703660295552940498645066815100781663847528286084243884848561133252712248810714615300848499315575023249915090062914466348562688938670024194352894230367393926316658737541574437168191935533400013876209888553102869323382267038241454841687109504670485109756137468318173087266851083381001200841635297012852224859535878726374205153325071048553467578598060959090290137502056312340933367845016680220543662650164968034737360250866293970701528052737534887186343796556563235340938713464716598276248519080650332510544789479064632020308181531085389178222731758244399665306615591405921219290662033963330603794039422543060580405364224647104025440768653767089629004087081847967586962499548250817675353379589455883383232565832958652624294929258515632287376599864890663318146144647307547560545241704469583260420597284435466028861844483198568203860776009627164850467460642893988935036551151732034966052231887719923133656720763640226007135147982975019316925721407121835242597019059412660739101518056723914842980487289797883094775609146644803346896582401809228610929542448377370992597328427936988499480165415995683044865394574886339918124641200278965167673940572821372944215941288355891284526357043804484244965751502964554493677296260232050017268454970005128983213511352567550513141819965764445283847887023514677452945239861693398623659497836226595497738645524738362872470448120761037596876617582338319100780038687960785585585628251567112894363909307693222272183882539389669276800193000742846065934830374556815663473390564695126844187289708472945217716164606305971383298242150606605069148126140116883671343004863176382099932039237304081423331694055753505674011827224559203021249006573521370291612985741747553043475468089508836463276183024266239920814821870514486128435176781612112699852334816558936960733951954897568300618932551380461419687967651219445163713479097569271192415409129882119183640706679229331735925717553374254960211576288755037244530793270849527559910789908027732044885045875214011303758142018183294927861835620697232978385033842683849278468286707894413944379202474931321326437455393054891778722243721677894928705438058305736480299318475063413773942270744791184275815295287985126786584997903472635332489045396893682067031701211701938100668500792176427453128737441612756717645022405895506490054127000272639291921496649652238267666682597177530596695058217669285491788822481862865622931380352099250814066358039871909716372816975878856619908195688494952039680341811365674181124693681338493502368006649643546584904242562804285975935614392170124668981901815615470702708333683607191090612064167604030702102213468111225649104103773467121321248911461407662334167797013832787755406635413439858801085518162860237521073296471930451843884371118709734889081457521473673964811618471929754819027874895617678589156137358958113869586609418573943362631826012942129032337933656059527061982595137264592840572979120298136961364024889935551079839423810618567295592203333098990863997971955217699259853468874791960880115160481638668550989571962176127638450658159439423803405495780417003230108002358049290668063208922189149286126225023210550241904873122450562687876415125222821843606435655041581489825592049032249764124569564142321124379747009247328863711087509723574152796252658943518256513279842053900749081530949589595584432179042146327143954673566717662550064126573701587055559176742643647719461841442307524582458913008696543634696620550841370273127527826408096759732528731599755505592511605393531736330181825801100552001931204881583115182741326543361655087164703844731667030307100882921249263705338909358334623330018234928507072202628999452874687814634392826324127189658045618525368820369982723562103485350385127134097506079713181991402920676755585859816136988660786301672960648768917836865055377068359422785903525458532321702609078464087108832839945058118353459968020673244425901434036007949610726203138968197840765113532514102955888049727349321672243475348717891389243555622338254631977957030870072305808981735233275185112204336285148821245567817733643897295473459441126527633320665228603439898016968305367618436077184276805394666170404346302402678524079891616569069018067917474574746433806626821598018589332926127235315448578619364805497819740344853835687687600911050521559584186935970458235175470238541437781334081433597914792531351270959527011888963765015059250989768001210192274169601947855734941146610971530536382819073353024427731871454425326096862227131989809738138663954757132463015218836602246234581953667025450522488139797757136372637076022340594564695097569029773474995060658881805238604312991073939032351131246366364813037789271656473819194659091293866959832494080122089788705988110593100263955926029332201931567339418488073001331037938248676020844224238055811804738032794563425434662289828117890301322333195341820316061171561392773543826131313218623709900133403798494209483215445071526777340488280977807500114383526748859742411969879437610081080617468584404141016380269484267138948509863335778733253496557978689856683192864151125872924949034863068693027485408736953217799678670682527448507198299953309677204770306473457096694847025708972944522597655648660894631530935332133617475996762541843752886837068991968784498826537918465883362491384154453315488030370161016242578564420925363456832964796387714390093578921913444458598124262089295477277381150843557871820810805767553810349424466319867112287151027776803685594753179771990408169058145299356112565828189266933100114213749273907015754045909768547457298372768690693175489792446416454978968778065625109426181850855472657082543241233136813615064427038216464902857568002620199927494746893784563657155075888144428046953652644910813934643595257793293129141719825260259860424721128472353870680739605919397130136381083769553435224856519403343427116725517916627302902893041893596985005681866158856124197384993783669560590527794506059527161331646545297600515843945325413937938649355424085936123050470387895468582606302469394189544290184412485696460188610550765736203102942832227842302266004419107310215580239211683844825730927379695175310466736138125765436402400690608479851988438617110729620620014391725487421568696954056362360090591968473587822607637425578793192957854941265364909243669260109434604292654766302791325614356485507763979578116999168353196246377639779406244401685097480343692519978138742312404857134848660721430892951134615397364277985669495070858984718321496532099324438254258844518495723055919417819365348421501976544085549482906996848052381767541147864100644863854314921274212128877723088806201832264034585884505930368181940444855855817248834079802940407499874956823518891250017704839765685408920022653152741110189507194063438057457732833311856218267155431978396799611681309844105435164161548499841450508686952830220662536476976783963354500263892009870013907010637280956298941015357908376319473477478170359178362474428790288528499438053692808141895748342505163086319026474499808753203361492622616197743359371713857724625687841199928934869927423530332570515599449707094546365129825696285824703748609523466467627538426313544298848092344293278056794270915828395488743736814796848882292091545924371178711333583251761602766404672350097317024539242646588501376303555850410352334425290445674203929208139675640698823198278410253914179576030483487351352694403730923781948686969277763666908412274752707169255850268383648981305438290604109238640615839055256305203627870789460345934012617296301357160490861122260317868604744221567409538080280540301224079638347796494860186020860709122352815924033365531366494889522123300661980817300730461301340257227668572141832957391466551981697635011816589682998822111603424593086682104096932835755950799455652253670707900472882161746459893244434745815640291532449860765586828420683855964179983029619391963090836423516022033284645991996541375837454288687354960929964495825708145502265693773596065310110162197228664534907290903957082332319525289723968094266491269083096024783694587379577148898556261844348940935284523641264163077108453817152964635472174173714369893967294923054289180903103473602461017642739772773479165117817894662271934118399075923179999493455919469666806060391541222498523813223443561064826870090773550654072186933010419917689367338787350038308131012993144744367364505166904201056563103550507134896482737129172906442921344931279310568256755547979718355089590753474516497258146397497547273328850883441647711413973331401223822230498375298276830015048748929991188415281744444646360188857475705393272032493029859479238626095120814473802418185290016696299287384527834620601138948266628638937790947032794446922466182079925290698130965241206487795344206379292665403505871754668424235136963004405155620781780982213284040771976805452668763917352376458387846885000966821055334316292906252527614134165367684172243673890331860327516842150835684222695505989150008321179399016497218352793186906441974892623455805940059225223446320051903810571420350971884074612241187561751107609526086022825001294474468678887019100442894590725685355597679427527634853655650707119787223334113702695893863882218598260812386206592319114164618533164171494704822910663934973527505811650562035726520066764666130169930604180870544890363003578595641208316832664797573233284498020743409484947721278777740219676623334655145203520669724325889506790006862116066948575508635768459920490499362356332995046905321738581798894072248510877700795384926401116661884521842287666064042086054237208536413027452305260627371152410495826072113204642144859259824935968503026961716536011842044919303449391549657059849848868583901290944269123945111177117484662292482746605017842168936800243046519333886940451499348264325221047663788806991641672597925339381796002381543003549234452601497162001634088316425207397345734446384495403035059001248781558982457695180412605865502540112491051592555646331990638940174454455495649859999268879410080825994482034932439586786371834712484542199544029261539518443609656688503909998686767583308780041701877223829107512950531218361083872621245808070890880867697488613956004124776955937311497470581612774846366881210388257235009637721950423606543765932617090973740058243759446942973256073960357585736752180688079114053798906122119356969610241171560402094211847702588435901587144758451350902022269988496080575056143420364043988756221011177337553709163615618965102692396285749810873862791048296421527737830251854390165518362704848842015535419864884064129788177126365237300137483926428203685095387501882015082379977735758694646213762811407487619355997880069050357344105923377644314716008100461939090255776524971960932043382065406499319956209550683589448703886691917249530075431141073657585134520770077470558540895124424575387162484707013571496875190835499199859517201105173349883572661282867980751504351764521209710483229015203365632469369942621574169832921533102876069251158958717972935801041012009505983583837379937926177316612959260096326322781219831900765749809990000796512340295201730670850333271187759853316128954833797548953929571782315024088456481697906620070243145645358676420703315113562546248941484137942925209402599588732230414702845161239316162425800855589934510017578125388969092515681698299918555001732479905653067540906355189665211774254205283918082153499407710921500879827267629625086416068395549549274455482749740499905830821810771233980390330710298720018046594765281943483369178551997090765854358884726422820685050816760675089850972500657505590185541135359435206636559880034448273278986056866684046723138188591461516359287436237118150632588523243014806101115979135632806286349307751001907148650701519756449149259517819428962202050968989667940986664725244661612992779206217691747279496218466459463425609323555747950012724107245834503015740663153343415460957245037274815330618335078735487772510142602937343499722961642319753232880192826176247991277090339059418527084118768160302442219138187887623800903486429548905049272209362008769795904530375227969361994247528465131325652815413221771908503762146316360678270041254143607506454068265428905777216480218256911873757117666848083780672261257500684068670342587717013574284367567081157217947495379934523190400439938619551755764515570460464993688165345828480158667504760164793401609319836503483571611704987190742833355817296778847213683974204308187991243032666407090395898898089047729719281108756859437986758885981437429128702062137671479348456137749851864555009665054316688139710250168298012864946938302404339102476725722906311930355535135872693873982265215501347783851468299569466092752236383959381234587923160947093935160129413215087931049949399099074015370400154884385338165521847855622696843382164682264093266950939753557043458681294323582106246291719289106506082670482121520424174891812627205279503640364794794766663421200831753361188351152343966831193781709434699008535937330573760484833593036795163994135354838767860321329133801012036768043096877042209648151572952224570854017254062420532033138198476826879839856923160131131332825527678576389515043492686987679286221306950717124466459716853990633796820369233271244842427249772003345759254255651562840819163212816082261523601813980094212982177426843869615362509301550145545968436422681516584212711734538244097716286762846553248971056480285060106397293331922648325264855774132726138373099096762527196130393598911218393507098666625693251341147083257737624293742313709808116947122396134220143761409711283445497238425428807713469039429525512786752563470003052665303317544423782050953225158817257778875811159552972956185755948978638343464937450860060231795965335163236498803462888792060613736225255834311159833439150186191359196100964426029019020681600062360145438356627102841643483567535321272335689837337027057961114152860051479597752337303647398932502778629520338375654039022251762763894488435484739899362660498047116241939254543971909461778308740730375556221883329165370316621103316536328994303727320750562507379875707982133101351713200545674509394369456114983028701708607230423068860864821398729870478079551505355899779936179088781603500978680331171829560243150932926883231839286529251974356559061437640268767232723733844015706105594149154595467577297491634611338877318052398108528904458469214407126927269183385819752015576770347557209197127019592339260237237047126669833606244550326431544580028429652773101990306775430799800140533561023364537256542626517444139196625726034529420450944090043479251935396967252174620848004028661928013911854207003847866943127484399903237745882004534649035826562996884205313868483188666173272758809822313935209084731984556070048025759283506767770416624413152003315506005461021348343500659950198932710347899938532446438111765202953612415744021484088384885061459463757962392841184773385504208796004444580976807274229181281443614891873552791598653727322175425527140446073249736540979022001080689022465787660107253438188212687336172258216541888157761561389347870478627092123187614286787256545254912846877847229822363258786421556753714554058187783053443263100917754965952005545383062260998632483533334162818794312680065073335887607732963182118070569029711532366013264222376961049599977922407798829640258643622361378086101604992082028607980341518280043577087271100636149481404981741228267795600020917216660508237263967882316165786335435592577993509499148797194549987647346568172154537378954442498894708239289695613465852859681515608008075365561735501825822245633858533691463161777277682340643852655149543817049846010590399142757156789441584320019973439521994704354212936555383351688414539289005089434022053263669156219395766655766274413122383343322981514764008799324073397201080317576153798785676045477596212219372540009225908723271215787059622200311174489993268382898375100931609257592680071547336313058956020829868992661360943047157657051192297585367432226708872424203398418161666934000127678868195935418252508009473181917831106231694734797389895944634916208770414513960085726952998946275670024470370987799374736650768902527913803340453038493853598074207037630599054938620021311421016535178682144742833518255454535398349741452486730475784800494824731046144312118517941099517044167103279651202620885305529776520600087385015776662622792553123522727956148136663352622846434916244454804556519226643580892573948234653278144695486989591276573121093246114550693858491010841661463087359839853340330855460034418399937269936224260773298841554875253718582705719581540164552256104013996916113883616563850693537271315213718841023697770740642955991498970838903632294114888804987450196457716641548071896010595340126659405188937439082430567177055813743637610990030817710087460384547291700908059605846800068113704642054110585309111509107111675317475776399627275686227766958889202097001247223267065795839122905339318226246128852870415475454541893627807048355593633003116306420823281439240364415479629839147170046764951531156718948855169738520038353576450788152191878420959650393063112135399899258848283416412121228797698636506231539562815000332858028720174104516307963167106218653792065889263070821713741154915295986611106572639918884111713162933517259040056305222488124919776014779105657956139579515522637546379413404739865855135005487524475939785782690454720547505320954117057323043933113183778415306348946769341895794050484959898993009403084834120891349120520402219583462500400503410419635696350477332547438069234201314234081531879302941825015903352871738340371931907918838355533428025858215683029849758219023271260674704930284919282186699637802517240724723331065029838054824510503744950042937380831800611846387366205172305597756579734374568949351616843563961716969748745746655251320326864238340277825502220558999822347904016196120338502259992266466252896850060276331202792614981581291186239136374043255936427738262368514015549591283330226537172723143343601156198952254395399567103470027248939643245276920432720600559552805214462183183333621236652090567174788968719599534797280887643224958038376953293493075733866192709297776969748265004780918421434310465576856241082085291724319264220496286369832532563944179494383925914882349995082720466051123897561138057550756915933542831226772479832509422729899911473588950737340991162433694224206602111922359477252509378508232372306936818450179940237037003160126665798648616396283344953985764132095619945710305955103667997791968596465023858239471461493745903353009708004463633126117805451833414680767924659230405153227975828939155022703249258311747066644692451782183846560286436259998689589270918515395910390559856913190787398879346419866786466569197391706232314943526710040566808539319577792614055919473313958189507461952361766554364294694207814279409870608682146628192347368316188235549621194701091236742762930920909410406853913818128533357088559834180753802147951746132338407637165348200628075791631073361909081804423830895280835001069843841719923837109108717578491034950137763576149421671894900197869458124361457189546613148588598935899570039767962811480691748524455768488284171389672905445644828587089660272851900621867667555783616623630038039879886813386234244206445963793681252486532448942665861634113069227196766354466247660530747820224596357118320317140427865650466063260023177149390204987287803070159131995885032537781487684412147602706507619966216674438082764231529629199621262248162637631137151946027733914632986245186697152988552838071978374196974240522141951520514707497188918058403598076840808162291273781813241732304924669577366557406022658208066956716478067561196919391606294418043156158293985994425077135185791612036392546040251810442734423709637620958846101744915587522358732182483988304916799852462316372984362420806365508756865675073557741957295228956974786157521274687204597937396244270488551970506303349453226262990719344550902930089039925830873809624254643060847168781157909612824756634294080262542735480123018332175010796119308911501905239508090228983505858996784822829423512722976545286061578042197724066493983546572936648088455154085546048268688608650582548088655737083356427834008738947725544834544622652588100739457887184494868290313453800803529552485368793363832046829980402982060837432019646092833313956583594486657477296077743411743688237704301973337041273918460137399098372980446319103638597611656294442918852055482174382610697446830752020407356733679263637751127845970793951819115013504574762289211481208049243017645963391862532443432345603710656653845375501457595289946974035604600322954434351486927377138207334335495111708312669789472857108385509552153977204925858817577838855325520764583097344936124666303666294329886716005123900374793335015389239145205978623858449486475913181860134963998333028744896886559362301718201470197000041497659806656952160611397213057562558710671083974469781982209427538331604249204945513567168763911631593119555225501967276816200589065473951270510292831910451211249322378145398008259534815989375266830647514944273583200332611701043016676345310963751473922998271949225894408113480036709415886685802681916684261141085909853931078930990492790734343041673094787207368207027832466943649575256801408767155976661145419431763290794421323760564015600272981292219768010462591561031200087841691682840532473565405520316698909591620235783493833043266396709573062258768139064478565649423495297432359824359269735191163671240592814076282037119708558868367999536152751286427810478354979648014358593309627251359498139953981946774799585005300883989099475658963150238243670135220710794301592552634916341215450499560526136101385847103162331576204893963850111667105549314160681184111207240922292301399226138456357614211560086805195922996398926913576339257209616740503251406556095012784147783300795559177582596560825487626613208957395336364305635363612987729096742313059027059442941672682178226303105778015224122414897104526574312086203259438932596443203097505523102297853593687121067834130539681681512806544748803340771150558902748724604411159303478726409540905203296012140092027448253820535509337096322731391075129673976788406318339858792342219035354053224386317225211209749728106248375473176468603624494352988587306153835483767603117679988084437596097252336973168529604561709294597586946276509314909538855854099982742285175599634837709452881083596499245446687290550590310608941483297910932975876668650801518235710114424158309747772749621808643781888183240306854413626779255438486321397045494204797967834796428012875101105960681010931860679445625706903884527455775365022051613546674553284026840242782704356738635923432850306523065749533900547228931631869235632713552856716764345223817920331623171301697841995060251897856323967206544011868560157751757809713750644701310045892845171778330674184325726068677720538759540511905165172317411527450803737109913169424554087616820359193412701997020135374493972187558733125472671846953887720544961957258665266022049608959790841040846558849668642730843929286432678090222566453291197298331998468707861390997520483463430617857340531999401146994748411532432227970102022352948774586792739429772377291149151487492871350460949252204564364205519108205714642464900513622503427596316797744523944669571597139723820438262527116046275174839886577327212636053561721429608634722329066476843604305507736587049678117664025931548689869964906607660634472390561100872979352489408552811229210124892703598044502339487035397063399962618959365757988044540190219202581699072411853120636719048415430832408413198833461270385002575036693496710379372338308202506562291788246433535176514756286759842509004720432419890105153701145073120369189364544518423742918586294022514187991277613852659055946370923447538928197547651889062580374104844258508842591590844798040683336713344917100449072274475894638948880034586329180892225742377007434700588284237440782851145524185248912209925049002158875012861827560326958139769057485505995992762127002708380373552579820880649210832088457716311976866884209060012643282851197892695266507027831424572826769104499629836716046961572774975514243154571705275845255843951584080731966216508167320714781232184783958682566957427083875818453871239520562245013362374730337922169840122972915253631327223777980884097324861938873062068067128098417093449037204003509128211060818032342527034835861016780759891457082658182434438263189324807252531808391203699463432095890899489196420857210077756019911516199957599746546603874360794459124813921756334399093782830498175221014584690233718820983449879346163389511932238600504296902951172493353766980229908594143409620950849291855049437347889234206917938315304450202957477987851963904958454896345540234361783747064461096439320062392720929932133902297998850829351167090235328274566583721574963742676020195310242794828205577949175291519369587499792776409720090148707893247980153031217780365731330767294089247200849147511101526795527620427227184072392834921542674673557353117090577702953722077335364001519924103496268517411620532033224198871928064536740287871256976273130614450710799785695831161594664329900373925480275928191696188654139523803374090952552685743874711420883166712887554867376598254899074563739492899594588515211463979016610842971805322127288379895541552361024709577018011756065858361750097115539038427280417312417777969079575051632701225071663248761560168511446032770691864940931590924126318461500127833976210086510927980272482862398948446391540600469275123057655514218303773562944098865186942896879516872882587366036500193720973582648970676583652027865046902365957775426458703511247632307678761748572265375121953253606328299200557490161310935669975620149780748233841956432726779953259811886185928840837564404580203523598352603627712351009799729095095940438862289174429946886952690830321711445785460191012865781882759251385198827904020978838789606730896772524345406306306729320516005558462810421691886421850543512971519325338650234134098767061162099931407632906031978722807713633010171592968236072307980303759453578202743798787740224735253947897487975947430865440192644405683197361537831593904531097783593759642666038423028168495633593701340448435251727868690910673159948730370208361154403598073284223907703616802885355317828709264074218061140004635347525335871992813044650649706107221112353055358343229585771513904737938562206079616094928943238695542181123072712398198349536338439984816219124602710951515064713734618838330805126506287852760784301332214418297026703658883247236876267178387736424565835632804657321510688995769705862532301727562655789387954068651451811815397737263595562482008957167897274731307318517917553390525291434064579289061645773523581910222324417607110686907897140356140339505899814949848294408758269434992941499275992461042266288407978178933699157289714944285745754940521154384712424460874316630302841781794957225608524007620769808553550211597515264474899287462384196835819770251712039925778125218722776177430614523143965854743590777263833658930276540547518615278094902777701512905677249736636248452447789305324051965847338789530912461464428894874705492028260982365864516451413588257274625861306102563734894288606462247972432706140050701980167684739210462169273082013073587403503130849442152060969145250827734611365948398463247049443438668267422896218697653934636583461420318850453983293605631862767943506086301773675576962994625508967143480331145154665940580081567897286217948738166780575626115673548796511903322774946017508750930365511741009622341587036727367244297556173477899042230417883841003632784947625075297878111078804101957109513001884938544415919399239189091777091794279549365075833051327966277538395923234507145651857251371255652635224029579302506350832873830807701335506725423332174901051146123807301809530114073360995574458207311330063410331643265592307515939573655909802009956555516613334128468364418313888899837991900877088035308232811512957229636000688457878222562128021690648755142755582215038030978303089234178544287271741107883670144151320491881534054582235366732607344027033446809754726205324929452555008288743349304486952740166641213643664148440044732468740137826078355801693936125737837931669377290634678230340396155020443158031395452092609304850180689169154383744772555930930174243735441259429227888473613988118978020076201058767941628433865943930934477858898719377201696816078795341849835906360005480022101746723722953898796916745428253749354080704365726165694339929737694699401233073682092522223141901500899478107955218666853345558234435996360622224710369856028523237708765639516156287753468676568603610471344140496766005326769424571069246625833349110354854049839376245053062764551276236123542079531889701681851341378364320368643817131234458199501005755226684845278190198428502453782128303549828718641701084962713868726504803674684311222091932587007093179988964802329538561012955215802820130770480326970149708581522619815297241643281247448713471280060299399564219527350963275313901240977421491006069523767290644765162413072838881232979777270749843985139991392135994198897399256846820168388397966753494744362049945212509292940914816171314068690055037339046034086749998770536957227695540779680624658678225486968647443820870822197910123166878105333030689623756821825643524837382662592253342509951853356827063648365822972781852787999629108041978677362396667492251921236495867655929689945788523478538790339784844527909940826724772969863814774110066346845378922003130208657442787907853574636574753387771357128474683349168681938062322514041735465683089752494061142991252420415000443297236044235802807527327977020578033028720170754087308158350172127879392662147428105962331846593340550948810231046456498969555462176611783388662693618413487702531052794011627135276492735107332705559692860909267157082573935406236974662959003253517930218305392055679042349422621927002915572216505400429594678424095456879795271251154935496690346386034395627287104077088867270866616955270315602584934421496967668196586519258187986295615361690216036208475993005830136863344788855561803523570207137246992377134577075369930179540927273450891113677421864748437475892934506362895725214805208266606435115587686565710470115492949070924775009980788136507914094166032857477824046574403925345994911667827582147803192635019105428916831873974446554096387261072491944978141400080106559820935931813150880871996662293974514503001055869586078255326200343943910807781407451943573251312276001119763945856231792098260118183008937706593984721339286327334441993018416853514277217942740921920036334532749997908547054170939180274181330318673351926847896107661654913112892892084154778169763740419433539767419567448933558469160921028007817964407290816293245443198298188568436518744376057956320579891104292247546545744733702411509555028277465053419566663799650373740599972689577395380333050517961320298255164989608822959738675958722915575202919773848789511233013882363686285423525443297040961026659824403623997555141499078012383604241795973489872406231687384032100933124842043741904446232541500074085856622320416714154694036143832404837849826364535715384674117970965133456237137104093097645487467708909030841546932941473338367050835849598929287615660374100298854226396107958685983837259582779832804959194587511484610351860491805836531257415701499798506528909265751923514517495052131537700654397570980685009470652488130891052890993242602732365098960256894544004236189373199419429958301492792943457030928451533582114204469004474983861524595443815321921530404997302043932818138868124565963501642799529101551202947783234874633269084623748337140287815535406004259220288356002091693439934392444581545210644130351417902819718160357675648033651414454139812805920128784076894715662323668960082810829301779975519056890425572614423580367467812992925120398930674511027047000399490920123658631977063098606922097989785076078858539289152022155527556747625180537408422972449839620204213294721555829400506855098827169108157115446096062672347471966586003708072418366786255078275691385420002001031197528882606121029497681671708825800822412695983146818162789525154908046811433016632728696137276598064938384206294597724279026158703593643360886585054041756718928303485254519216478344589424406099147466308998633703941887729809670352179789101309864733644703588474269330481893816845146079360308873433723452098220674196457486799162970263261666284745494449129760010545414998180132134887539500302186239653665098302568528797628181641224957254656332554310883136667460620007696670981500946857378497317514649483366072277925522294038737963673238891428452855626426174933764051745276326587466184318978952828009118982488428461076688338675190003447390016561424496005634087813843203403880937346891651544650617733756371892746892553480989901672777474987058792707077647549330416566491207145225281279887129024883649271936070976169890160707355041858191523697563943106969181985659836254853774644166561518939122702090306508344215804185239975066301340108494634464257710562955114887918288994303667389685519069327637763941958059084257504242968211698374622795627496627421180617450543287045596943347156702919945824869930140582774843410254976174144619585066563622705693717205094815106728849277322901657397594085414026675036268561913022399600482286464051241074677491377855427262761441371213887751492885945395314723446501324380273691313283431166120661503501411987068169803964904461794770197039101995264714507288432271962725606561940897307103164421288382986459869232132082995895689400341811647555714251223518891645618653452628527380588796676145592560432327668811504401528395365228237283624163430741606897536914635933615477050255477265474352502175221732070468428597867105448412724798751160855030657641671250841079369945607617046667887453176518404334204562241999626045278268619676068629748394624270697518633178828587773481584271093682915356360475996209969056434641446102012115521712000655804336355353479368465808320437086894622744917425484068121703798772751174446539681286178747469736500238757397754707007888488091234080442921336148367346937222273709022190194084773813030820387723855028833864658928324469029367430657888699549163160673235370359019262254176437517463510023763665730849373858292244258920306091504370831779197318890449517037193503805802650014319685287426365143986806208114737889609138794658796059479651923953820501912628492947379070648101639543483470266953131991890172349627132891635854947912852720084048279017197769964463559087979116570949883683473326847156371883510774290017430183386624755422163301747019886914966523427242019423997607049582917303306956328798672312153484745964825693392212902562609175350235013744618803715512755115430264464714972113443543467136958613807694197391627287157167405560992921210733029981540681943665224293539513721961960202661683718879618508604531026355791960520571702671878767140857207961341596523002560306415964016125015965184215317998195397169075555747089116148761800438621696628927729440866657566585211717841815745250629433456000427637754803673900033438523061614606490351160031146269779808297524112131667375524379849132624461427051261392559237579818248423493434090932744656974218186869411504625177194143938023042902440441637408303177761434478047753827240001915224134317492644984527290555720428395474815974714901623537582601549687678399080346110656199039382298042422775133906482534995406969588612363435118182416224088189726617347147131978024247633518038292622963803584598077228640254735883189054698666809638334356821765174022529573871588110284680726169909494429428059054675019810408083355198255152848307853372574789839548554572745258712451381853184538795393517573249276633621597597250231382502813626463736761277255913096354671825654901753865732459692875433367852983892349004901598631074948702119047102164038987255550054472044087164946730932045032395239732830829275340912837130349270883720867265907376228421860371392351543907820073396824330398872788928581826754974436118686341823435452064551768972057269921526723132134348263234591264089300787637458692919836454365200249233912659303304569818506220027337074144123039137672761198992587781615265862190246490518157199591778250492734904701892192925951646761085274642529574814057011558738228681929965069639813786466733512848156091291270543812443678538200532725115271690343889172718528667283801611022318459528829901930434932062809111658116175781408000941496133276015151604551146773466227800770679237390492581717222656859837644386385922402705135747733564489227245212193723900829937593035691027699168514742622680768704883256022481262720606586977616785104947870339118886556392710245233700125242498392541361008088310590862013663649769000935623154270209301238100871322561670140994245299577418038897983527887004817483796384121890611435103087889318568577642908811634589770847916959353677453727837296397484164270392996516543311078059268957259761556104975319861658914526283160756005392272915395018445130280358454175973838881143290533512335342715472220748955498633794196005498607088788462783193734744136816223953992391220730400644304571225339462242178451338380619491421486658023325345207750825918239138517400987097784160423444280305678543592494786965062862873588069111710380450293292743771063093831608260584701972071323539216645642470692239907041873919502981510364865621945161104553173898951598105458985488607776709411135323698792257134006642836461589959661354858429241061305587854059493047068032920164990229695476386461906716586130647095298385734889400684635580721543529497349837977413201181183446280365429349771138544032178104884208135586192954615392055971829408793127031014750877885789710720614039972467394338439138835458643921775310558160431194641208049621126297526860704161018018262047174618435638691798247742081754737797311923163303562718049410384059044487995445413010983763014493707350747515020450883625628862626542317330748875146756660007674228495460854801919032058427035976490336271509248638474635382361636407984496880819257534566468750400173089361016224493412995055340787867449083871441331364678428828062728582713150962853791812443929654117546044559617151240704625584400913588754135576637929073168888417360472884324515579923519057626815359569220795691253148861468082438674908324829538022438332946598428526660929867844221535014750166384897587706946125747331566273193375592464324777650487159405596756539870585991710226888219812377897643873730701353050556098536161737654320836672271655398915180436608466249460284051197110736845016837631967077428207392517190648868730885503191259661868811687044520406070781889740641231357561440559429621197171815772424969912582721971954640308681442445945188851497029469408158871309014880850297706342303883119023257083979108056080996165925303133813043980194292202438179235810437187855436016528120198719842256734783324484739567155249229829625972370452699017745150043185019540187536192815721130535631047044163441497936115380841606650388444001152678711700021562306228815294551520766773876481656643659442391402246950520073928570301471509474248240642947756116209773757674145524534142486325001460510632069728352724555809082029765493169921422512780563108386138476812137722542500386313547687937171698983668075047789895147160298879879685130163194386578304015679424456922770043797221327372907828927199664873502217850072093705933682131110526609542699391682913159494882092494680554875484907701570667994615374745739919001273436663066368364745615093761246437644383434746404113796537968722112386820612317692738177533250731655067015315395889865413627024404613787614607395674122879335285229923328710013627129648055006489907842527463499445203774105320916886752392145515388036025602031992944623827831108580736594402424578754683110902531059138783187182728875587114487250668569176140709164485360488153097215434145797835844027480005762574117823695535351579437078950533011193511043260329494950590214054531922508705754542548257529230450224431539688076318320758345240726732973037959954351746710237212046018994656422947432101193036409950638326772781931136062822816819752151257857187620623204124947382640935524624168398349171360368609327578417416079391492159005844179403873776031144347542332433294965160332244334402327113173452158670953958029617204290610421712410411132935199334359422015259469086947488001440436827840442743310696063123752564735668453027327337001498291785468840932187506696198522212822062076033755375375234815032156066203951242515405563959847105066101651445415145983585148873914395722323321356568171723540109036798856023581929372618685260978620311421000374445814107332856647357448925040295843977918075646174364011843443215790563539988158755918452759207834875268615101821414206418274904556405322627161692626316941273091424529793383359140276057470526584147717146469722883426643798516257387091043439126115949069640816907396166549480549150672187306529855171959895011381000432321112190722272275617311467750927670253276615996077982695018568438582070284955384101641212892838501189972932224512066307985069841166882338927559155654329122347491605771352925970793498016960527484606615599257742452194919138121932377388573219949290402563604898693045080855414096358393207568192144546661594865663053209959776302907556020672158797504212590874294562849197818669257565583959698252630630840687400628008304626871965674155804224953196665266642938214084117209396523289519074696067966821656577141417272307939059786966051750554596174704043671461899153265529771932944017344749695657399790241077990010550907426128308807265919214202928092070673366778061198637802124920276090919438479733223248225866019086059472426188353479155765397675409992745769098860778403497181065926497582252581224623172951997061954564878360993469485190916392519023832357422031059823368437067723606831741445439571983354701081280447603857115392389651882271565261203103468230032493681267322637814527425602745307606273394682114370733913481948538053934443977615229476379772192192428423008597443092830422850001610367103929690633816404312208904977181432669614744674315704607151666236790185294135648869020746622396809913848336748573594163851257453599507668303989627817003468057648352338510920610393458390776645886861759062067449649712635927113885640614018425379679012045123945871973258491671719494459772056288307637169349764004911996981124651124950492268029868385075940128328579729898489169007935938376992592003190208865067243384178436272238151819353659146329897067377521353187555160821490234240168377911309789917437799263574258591729276932174309195845663449706814265240022531392017825577282688068028195238415469118367938144587005039194128386924561636605407420841356369531936369892606376850141690220751599440252600981040177480340921786241411084310396534008581934656655540421555622565778392256565861020310215310841405912630883311443429881308115843782908003748519761309547494874599558611044013226869221269854405327758256918235733678883070957227720152970124023661303568701281027727413088852996744416173366854151097489247173660443476886404723373874083173126458464116940824400063374291331679024535947222508998114224173402990646169717937850411686388421283909531707927583825542222793746056099243476788377584872735639284670920621037508349038701543214675569420130124903113130180993964578808238515695510186592532232847410806404219011761741110079553214289375247808341046072028769571590642842793837897035858710238419891133721787914918647264743323703884924367689646084639528880223188702466994189551291467698290774409161057970363546373866841801243952928920710763733056607058731750496914597293887385320516056113175944100494078798235161347323674990485142821967414039723556197544435415850836684303996986270276379957928339229473649803716399192213963976216935459888353061240423223341159956223123204047832579722278751450987632562434428544290991148582116838868860588606403838329558721613555292869538969583483484433516027086170802108679429700375169092165649027955021489561919072620609464096660313347298859459104950203661367210788368416027472488231709493932290552700477955111247953645886249721576546616953393613848533741213538672675727445843428750644543310954827073980250152706976967809221312252031816027441198698910687263756269985161235441751110477875854149021277414684634745254924523282233664450293206604482787154534792590452235100481286251951976644407363803579328914922199225425487334455051370258161979234552033613152763062872539127845857238842531127690203455747833655124848596159034280254049879672260309130437962321220913991890938677885387984753596955938327398516781764533036585227483553511442759391286300834652500801093947947184050628229546213323139154381026712969303570875425382435769004010327917113916263474666589480697222561956377918750251448215412002034327012783125993419330744435925574691975877929482965068415043145282407231951494227388403548179894787175939148392374748746788388404201981590216365731377071128892815038876896156587957093452064326047479318980128130540146263679417413827089277221481474664896456319560773158053640606743053791187951574159832994145377836534032818352421112961279360428439697921980535503890378858512726909076548766941076655487644917868111996355040938102162039360152483432849590207096430184416487599072975343560945857190040060881549161813639610425158367291300409689907313769228440177719138974630668146250986603726604040947600030634711275199869124035759879807303528784286043376462047635182711568861335668310692979444689210723633656348257007962368993470544046894344764125391839540511754134514478905404693771504911174763287790027177659256353554917341559166509842474672756422784456575021306174869058871894404845007243010828738179777516874128869085785816067366738169605520974534148166215611246146679757118843879059569758296007631646715508993959342467823687537626261808337477998722798289770766175360252816900054135680316476544423973575955604729188608548827681652339969978294741798264016363111345874783139223760217246185362532413813885981977818797200011940977042941734084614810738223989579086509987308038751312371365529975527592015448752333244148364872882120795574589722562909638929527351434028025291871370053617410384656449737457121724298376959153072808512809333807453732726680117060046145955277496788493488752737062853525989538058676662883545790096266603203248707214308096961022096784059325944215111064454992916812038710776373892459089162406557544007937416482270032570613932464294696272952779398168453110595360402258151521188500314232001078071133095590823077207207286063625896222417170583696245561100037143605506990374163848258135972625459663423195213109217000547570158447959764960669330871304950547107730903981953781855774041591580984696417412052226743607890092492544475083324401262512373650699850755023325500983925656549045198698881582654522603335201691908839862416705467151923681018045506008268978376193778343260172830047428531106477600440420922241045895007805530116786818503958893084023008622864786327499229735119809718523301855079905841394085277147994461745357303755650394285702328604127184638324909546560586917890718343248121741537435688877839532472339192294055581281572324846778424723347094923386241426660172834355271559335786371597153770630174392162803288770455362113232483759604877034488234886207282034142698455440901243623707355861677478265921945070482837092209885624045308358884187348990493149697333853469092669052464880913671262726046333095802250255186078131865513835188334160720408599864015106871873097508618282360769614754609585775777909020679264121486792178449692748350453609969508459213497325629323849601366901647382315210593801029566265130701428688135381421722014724373389830911053430087822524575708820277808017056795500249787136913643757759646123400032344946212019607195192658380962885045314688063939481041400278614702394910491902540022805202469557468046047858991313374176325631415702235995921783337008040818991804884347185982470123706457323370899021709699498459321757669036688180287343980934243581220817886666691768136510871751097332420903183926016058406172155421614572044505428936686610264131893641938214676478429173850613723912910274721418985101685465688538510055437734915215442070425332372526249599902872317920511152023632480381346879073161034889043115284563193376263009341660149367381941747375463292049531108305097045965595116851895996566954184775859354386334264444379797074221133522784792134534792927753914056261027976503201041312905098579622047072928894156157995250349194111125619604210975418469354779211741879633996777508000170837909128624047168462267324453883093583837239355712584546873808360203025988237046156845689065817812618347066490089587996988251102369443230717715409407363380491400504476992331198775533499277244918293859581040189881367513251758236089637287209888291940675558844736433263546265165718940458557811940991473482032591930220049244823004937986540800406490282801514564932278964024124577834149223414535784524075827971259538213001846069039848118665767735627357684301570383495183530891542204726202010533390095397934043609910819217183470667853864869642661126861914309048882715200620726828413511884259548620118454306081011891607206205934591314543304267131442957258488112125165359962065995918950514091926341187224627893412086516427837078567070237228037598547455791573407417646342659010584768072379872048984272633946603209732891487112791390162847235993369226338110661380231964605170736816333346782059447815702060491145319644894740540329850507200696852131173915084798151548464938885512467998982451600239264608864965173058987804607268907340076654224296015921336927969846798177635452802085024787668807532674692183926624614411084996882684679146642221814775380074862652741688839824253594330239381571055754976035224247635177718341741253625613438212959226401391480629071523995646791203160526210877378400093812031601663624474505190256235361068688472427410148397253927851221850232678567810190699229638859989137586132304449864053244099109390344699312663163925126004027660752809164806304759082873033013805336698090450678977810715480976783117031191272311278577613600586313524313738383943564810130286334137551569539276766199489833770950939180376245072782191367049664758809989025745032492465318164584589692450880817273841419567054330444881678193711288048428783951022957422732739369351036331203508817268883524766105181956357099347384249238842355628946060737996183263076152648246681838645619294849416635341102113294528260083934219561739074477799584626274681166164525397026520984078654352879438731868294097931852694784989495551093039455898442940881990255520557228078501570337785135998880325914160183049766754298229478850022656394764821430367542200724283794419452545005168246998469950911468500293328480969919643316638606053016407360871222898344116487973509929746243543834399577947267298612430747006130471587153803754116530124215483217719576376555414246388724029823734019358055243557736042827951216233140945485609548914075067973521608556401232709066085145765545927733029247339065599373198046056977690033225002529527916940779019861533465869110918710087315997701284428919993789548709141504631961135357939480037066966909895587549393314890638979578475798646703254119851423576556003417425598842696234492956009234376482432162111916572940990704317056273624027233471770116352851077021167237919685138883945542254555220520969795361184547490530063166502073676006273136195463099011770246180637503270547418530229208693164173094799662842317022390587151323361854106613438479466240233630274725369189075334007249339132268207509810296752581723057550324541629134597456706532946787914894872522656735774292367127894112894799008772787280336980766419184410028037911068845560956750236299895253784649738791190200467705186955159810524449492149517536759053683133953619276781298640159636467431622298672265854902510659550893717690550184925509228148925362976794920064374614241705871051137332705041446791866851693128434312580878736832889830075472187126170256543467464492083063071928095420700519910274896773121736504785695808987714461558387401320108212793665049625072267843204166306406838927582876389101439912189989415073452095485307643644770180234832407396322640247340508880477242495369867538165260693625903436414141121529745631562549449955940393051279685079369146365997683747740293875295221415228708342874969819993913383882613867882598149462896519600282680625448675292442067868940807367952112977083073910310296389239643379572027728789722538285637525725566227270369721915174816307134081639625312954600194121868603012767295553943368301587837231868609717203975004546771840307884872399876410464827834346818977199591110308474628237799964172977142957948283497388632580499040694665313701640176877458992398162154306581121441420089458981337051194384239861542401436895155864775692251525183394942097943266196545762660232098700994049483661314500172609920339179098115496499072178997126496839134098769921942863857867917326832474000580338915838969378933052451844240417016207728673624508442684050988752485630899928500742077022276790426513433174380929813657421394426839623917808068331569892724368475448758926918581931230691827463822435143099505163488917479197026425654614728367739118178002308485474892007397910592292623961315751234862680097270116339687685564869651665342920498765796851116505506931948373740372866834437951958577098188914183928422777549746755519972087411576431542457705896949842911014646226306964680177609609991562791773237806955634524131602359683243537929711788544213457217390837788548839553742788330084058110363919153358000322842853131791971934868749065918444238180582571613944527016587079608881595847162974939960196748988813332987836634048962814388053213527277600591116719418422705057040874004824093561470753076934894262421916901899048691980908381507860655361857721660298737372687578526282862607474648711333836135265201280692386317784430478569228062475748718875987497836152124626460734473575776593284019442307618886157862517979699168900971355624189272432802426985297536183390851984625055736360952840482340486868919677802570424974808163328109448918598414630970750388977871227968743430236052879128963301561215547728743335349914812268480530004591966347655341393747254844808791567354040943219111021711868795400132054088345619436618540907610294617584631082948599251953362577268801329247496812399914155131125751714558670339394853442968634347572211251479592877727824229860829645957521806598869628326700051121008493063919349895172353316600876980232851549009946643174834827176990772241823261822462499840633258751564439838900339549685615177249829032323851434622684351266211836760175503867185621584647534416530613769025489373779298083476098030627761661485663265033739339904501287182275794630748992549752472018233657586066939463898922897535847538610569070990648809382905034768903813645036894760246528671433041740087203953893423136008969657497909714553756707573780765294902893645026267266933540780294493578499509061562759956069180009924751503370503599116602137298041402916156409182885634077268377233093425103187736312528970206388774169404544590674995138477236550511072798703572378876544056935319450555992718323221445660460872475430235538567020585465212289766147575841664075133227186459707658869481934766005586923097771400738653312618898187022277037725634231891268879905552837842009298884468368629918391164714326433547614304123572097195685334242292227396911976338061206508401611302320324176464262017405698217368134737286095289865693582465491045171837384241358150625330623645133885509625658526826677115786150283975135162586112392231765562208340618363190096116955168011346185688264196080735721937096350334068114034605912649389465980448475609067066459166238519623422869716261389351186311699231732739245441321319721581065544488347488050970822493195447187552998615880354949923947829187761414196657977372358806121427125268518820212579206005183860923129252555367646031006438635039575500929948624256119320237565737588039716570167092171938758781709375774768176158045260460770796107269898508797760512477320200367537182233190997768272861995076006879287767451941931460698905340982957892029963378835061962895052357404129748243507965328888638509377105524352670371400031522931831050902367689027242430687901539185711959672684716976840615687182136709881243895047852977843311856593444492784947424422619738881060844249504351289840978954291961275269303898781127947998904423685860209664636693184995719282793125328603410746987036977153856406051571982635294097614108960024984653918440341317054956674543603763347183757019124790217807127446495775989084319565679864165873534010236600102232527789664459383793669248408520662906458937867683082824279193528267210795269334320763836629639882228448518445391822481976417049253805808899892499274355573137544578139621524602871772379387493461400198063840547388612978387036782809907498041129719148784705814942738174691796047639521365357272818925147713742549509409883659344796297022584117914297643074559658921907775150436578048541926606077287027985581826746498514420304195236714744754647405588583961095227176550948578082796684595892942030905484913961012482013171905810484612514906408115089153765671193965592934960471038715568606789040705893823391166987078153791373098278682347479496602851626987490858619664943350433026821962223734417841212134540903173095842528371963114774392868448599274593467724469520969322011158621953205007555977835918751142255747073883177910352944605099195809831263757801817364740245698291378117866215176702706535250324680321178287566730129786723446812515049174184538959382511218465950952888677511020990721721477148366611772678232245999167078390739189407740775159209959853945813061615251059769254632757302361288554895412495356376329515962074097503792352622827342369473125318161271310215248419991721569404291352388255043387791448759909461336883966848505687904617531723157967644231165582376971298629579602547451155507011405788729602773814830795301975832666224778600178120799562653771217118219490084517532084335294585921799769971522596437844014965123122746056151426123805397180366701028302982090126227086331874739181107560647521965793659153829184028693641859771374815474394349658209358781066870818003687594412131875441966979963053024824779983224602456404924565251187787320241539709280011890718240849182256398863672259913296923421325006817734419973493123452845202155779636299666004939699466787399436175311474190867973033321923192296149316244810390607285413137374317479163679518695946296837676255040891767274275490131419797638350078353947828049976129133767734924812060569553981944733478422061778927058106943656480930522132641475713373481484011220806871909088701857302767429186885026381305100155332323740527807054515913965865765617986874863110343832807374088280932872668991680284495844865492710806453013217103210164371071258503755703966031495709511957685061972418236514143425412976353532462143047524866449532068622188589886337448178984909402522547304047298764277158630624519296703588960035538587312389658495225504320377312990560353822990536468942763773554102595999335590356735108821660341546918986355540527571593294349735466932630001586630982841954845834366667155064771307099430464985664248665496776311943618089017315256111433977767172412871469635152081934248891591386211770841448871686881603261457666404909896583542721334245057792666151396675059441571851937304962758722744332790152159245556532930241916928246701866996636037283829853516845822650911717059316001634699967105019023944996369996715200828477024525562991119924707757784318257004237917493063674717642517380326364029623263058965737889133147968544540014487095534388712560195142656150085987898970358690310470907024953052902765238156857609419721152707392154982376481782074166156678270635140312844014512291287596635427119760914009846302718100113795653242438585920812148817052464493872089863292057463394566720667903121157055637303678927329491579579239021470651247094652415263516178505996236307824150642378557673731155239262375536675050277573276491432475360220991434387634819267640679021402854637392668676805362925358801269514723161157949479755857982999981188912841155939341002574612682701891070345489895553983886495927764118899657725735642496608124632274305299756993888402865179627646175788889027610528841157419790736642963761714304352204735225936522246446670546911730720250724726174421412026148642047765926413730323259935732167694184756559335644737968265732731578547824009658658434949484536145642218815773365006774878031565787277322073719181515943524202908816820876840527403005731821175304155437455350609947119996731957735272117314012171473733586755807011427919890087665120523894199069485791537898910318681372899352353732881745104515122419820037724173416115433418680383927506923765528366392983716278342420405782306482829866351163241356436431428255421001452915905988808908013085148400250530054800722061443964714860049290922682200455339405845495924547506543459791164794803918522461491077574375870307988949484132509703294185118790718859733335190325143723563310393449902327453385044292474771276963945572872253299752842545387587466656489125494747972076564992538249945730643811894860223415339514181735270609021727007190441948838255501713793922029920414808779406748441054163940775540165920232635181132402538276567393215685920098355619223095703574963095994861065102115301591340430922030894370636145426488133984438778993008940970641162763099023226703205890136053771366901300911221936161650158562049692108004851620816167604325459981553413010873522800247975911841159633345121292124639890414079874745341942511180535686215950215581506190351957242257598821663829155349093782641394911947881787746759641640271689995393143073020919767429263299463880525572258011085484041578904668804349986648390431385653013800872363636996893265437347479709771234162529899320574894030889006590685554810656969484644313136326824893227352389033180899447362314475527527276514852113363971802128951881794536601490031816048939286594938247973779502661354908850890507872685704624898846007247051958562749653617518067347802678905663368944299297131773935433805131619773762981872309647802715915587513792190822944030787996280736402335719731490874610307996698010251674763942830712429083103663417235462342229851890190337546582141153720474482289313276528601863407410879108504845855584790633554898027376907624844867353334250230193524183213146215165360737938826252377304834106572074275925278083314830765966340851166322208493989511226960534415143888667165889148929237541997756805548870724317268567368983150268978951880210415446827765009946609071895328095760953894246934986228306216613403392348352992762157373736171431030764016816643287534841504732649991082260073224044271075475744362957936654432607342599075406364465599128947838109971429766513883543448638740308828956347907160628248249522538423819527797140929107544021693692898530577981879271463285270428213663936077491895236749329999037922179335009063610077667335329452935550556376338357346860372007082785102909316771596824975051207933258966883607684983513650418209148285473504782855540234520587517067567314125055245108425676623144040417270590862644355370058461521623299166904514110506411648757263973997326530901156262194355732821103455460314160081518714399114587870813330162246740344329048923617640018224542256888259649779374816553502223265820466255308157075379361168493351392668569513862533877055261753912519438110521119851013437702054817443831083931493313144873811753819569413321868694476343625042241655253427691870089336857024686127832567938876782254004914588098427248032593237900648958791846357971208678697684036643905527579631028163001015550002104168482223558814225247700826407459953619428790780341310239421589060145879503291685018262202735685191676629619559927059608988164217837808063426431665711048867412346481201194263583114095084759807696642048159271893145708373076377288430334261189411725661637263886673374245692155803496216626422997473004809427688165397264209455732125142848301206392207455514857977380086949577878429514258669611614206429833805296524368483261942771424182212998979113364235066371544490534582815580481570179328801790791035422645383443850486400881644395443358166345842325310072369929658472802468418846871347089774031768040242426851884707046818934223848612166467084856357337061274239396475401948298481213230552150992697372876688974739361414807945910008364013467206459623607165894123359787377601152042814967103464391785557770505648970853963011602177819240494374791344072821724000053664558393123815976532928191478547358678363689928319417009728328756724045384046190505324856664388979652679744941793021621827824545982493457427674177653330576493354116190388347113691989255668377912144171291064310843340228814954262943789616771474956625979001867037771840067249940975847256456008645900544694882960249717294125391378209026033837944558509221028989201292574991519000747311885081084689419710199264492855431955558998998918108066328157232586538491312072812996474591851333017639830732672910224767970743412870070751059831741761871984711316133161218845779689916535525798102507425626069341789228793851663615990155625887005011278245100862422080796482507540593055773508513537505776242063629553412364154651528711699226000826370518402320626259509109902371566272455198457184040664278569034870679730627913208893468789804044936962755406875129087453673761479040986176107704009109398042069884791669253189625370854469138389920291588531590811432404537038674161668558131395288600521406527432524919297684357675287057241677451286963813005003002993131621678364991196732074971128016563811488583346097151989171938467079398573985732369128737992492209881304869186372911693932779502328696789779152635078612689099538368237110654310591861464772466242336249445280856366726036769286792183686282429030257922352528415688610693070311742838238732702811087388168800565874240616987140898078884671866668064548256923808706080425799625677458066878840589969297806630752060703864506443827481124977789516567054791942045562033487973673253499896973001349377743422106910657944516831785274788628567657493944810139447876562248530609832525701953959307180353506441223875363696138787238884489623478940831955900876965280095978193963330319276301301182197695175754997516464232624098505632354458219427781524884651317812128362414586307718792067840801382841227471113422803634403030331823947712130289824964158512362210816267087625691890760204437321356062046452852621892656394799643856311368977401770070305561030480674064289679053490672378016302452787568569578560128754842744636155688873350388344361010365868285937290965599754709937156717210032973441825848433977881834361510801765458335434090521967807726625484381035106934995479775047824092046794605145395442296637127447761726199701642837398942859644820215858297135566854678449887906079405582030532058367987066402205428656162089835816570561559928367553331582029741379753108088779792620130016841532186116784222729002392707224665139213972634793425003890956046898992883902958332352194482610633615671786371873918640942426096555469182906039811257517897249459310362053171103828788572902946947251489716388130074006626078437406985731237344906306780799387999835605194691924491219451685870293122376462242539120254092187889575365490946921083218515793191623938156345063234433695647561235611838620071383373447986118915093029775111504348719101766213717038347634665802705908374674340393722036959191504366974264603655575097106973755843250669521740172003632663684063739534708384112998052758891591210385801583727409157797388186537590668598141452253827461446916817028176474543575605287633719938922485062984101906910017486215878711241876227821708444172911196138432200226014978081252765039076420155204307705585268404007031405274859374946374032229559292253869385654669195296683886540526091507140480943879870591533643107601875270343235835639529282658204722178217844336142071456031124721058948348641974299083157439457929976224244580210383756369555485250871842249441652857936802905966478309634231675659731730000733696605975802975969685947930129502729568056334336588481033568014338390101416502359593798607889687053258166115617311171000282943776306376729586452526642683539347471197801844795417502719963525014559596557999653845580495120127342057932224209027154345487392243466997532025078439276063041619969117760656972078214442960831540363419088874961939703106051464073874986585727494303974055983631699141050911620774006977872386012110102838061743642824977016733212578759864142999885765981575271257222888047114672679151956568015840709618876478816700707061155311834424470660061697003102787155231989394708787375254843114187823683345817207569018927883950955929300538613056636669952245814452037378602874350046733705545845624083748384164067675743937080412119947026277218304592929791070772426794732061857107666118146030635103795127713209637125548197964494179874725288537557210842072009648422232033359063972957872504802617634385707139868644809619520291666459979584105314507103971261554745143579708788469505041845768001144161765279595984707840328621689147112440909311800768342134003747846981964838289629084064182616370249824909968340950573450319235337797382255207762325091865396375963653391148943355956135797834739613739464656164950534090958380205917393074548467781071461966656257869745500407299300413177158678706310142508227476705487311227314039022703985976391533570773643393428884997093740750379960005805088735440877531638563912960682180985704252626768020823662804819709078640487885733040904983534434657102263209875475762828728616955244186819168646716025022816187993874376944564720923642524950513657654346812717676255014025010097054983691154087385041792587934368287075232224003430612256392452090248425015655278623742213042377227190202332402778974391766994040229446149498205520373126278458884307009002699056255953999239104948357379023292822052472501969603794994232956456364233952512931862517207947453789384595356622945280593291186692334079042820081152514367452975862600937794146134384658069676563911475420944132011883142252171785095187695832774567902329083926268330520706633500479423098330865881425641756223577314405786095864985269803368479917500744893329061559343193907748038692176641976717007488483496851814341530335569525798604516979867741394093350872315546737173454441609403918601517111907024077493470735356148919170508288645137090662662105642416836953423626858771484649687998157014979116596939623713853952125875635290858892348937135911458394009744143844781906015161737760708205101306010182651385111595491016982739245703026660076938620721041965261780923037302929748632712611588730894083339836140291699200104182975724306299410188891432784625082014421290459708334507029255985305878336195667529935556070573226730453535347292750009436304304002943393839090665310205852912142899218669664503368378633928293173635552772201178309899070139229689938908534388687368677582765738632627059295134278557976266246732224514085676941075556334310002862361280549781971062302050316694206030233064131809576088490979566332220609305649343958656089770835533083006775730577232137091344276938567647579101001283965084168615426610500914881721204593912185041406474104734484947643518460946055308163586253780687780548484428589309278906195589990015859973934795555445086154813240037299378916975094277213747163149684489945472103564074072578907485873694993148043421702019475060442749468477975421509295983236164777916346495622656633997631496568998010296629481205039679467938219127371957462307171818652049350458848715009266019191899917397108360690410143041659303542325448955361570271155624757828156102212636878186497488710646707986728945735191631410136873798197082816492576907761321002710728159567870802559850195190271552328778681090614349443417481161789844140266687286406940485080962741746809195017574422782614764941005863623596902768388383433070790152625367620078759167798570240905422805372305701471940343640781340252272561596638101998728228497028115035376651134992010834065445604988933092700331528249788557220518944637610690128468229967111677352547090141131830790236504233584565004866042468941908186644655062414556202248727046533543335456961057195618608006353099288029631765533773323546660158840960279071659815855557362199618348733493543088933404810818243078341137370604135152377197680900613070492026825828990769609388156419207242989310632490476627880270508727731143361516369443719679210304483820462451095640683181941502562211313836353513578000500662587843352404813255719074027772484903932001768777415908168365646136909893851958411451042966984974211384033302847680525771950802024974593913928894196083168563516917903592078329059168962020418718862281939041630878324089826089986665106112341523664488868949191842747392982809454118375175774766540337232730849164605288749439342251659257697743350563110889803565718642243664676726025451114254640791057500908759017702987773879601488855449591240954812851862754616446878374969949917464861395943414326932356044056260828143212516908911106243027323019622624395958332481791017129991874992977192701991313425606487712224532499828605072570325876484188240902466777499442260814201990214724627890004969539730603079069347036097783840224513507699170664093819871727947393114947037175826601579254409598230134330638543630456189069160129553817463990574255978963859040748871481170258771501609526743062581408423619930391877895183505619936984642280920061708077077285100387379170471241595320995612344387632874351179354941944968853734326939542174675445181166378460546135494970244583534139365210298721043580420120057597112393429017150769197372068641716911921731668269252430782390232837097857540439993761877434029721662972473498558004328335999329544343242200807390003095881301824685629921605068402556369066287240099394487088140342828826998529311263672451682101793137953592183615169798113254512719193372537984130937319137623571537479340960069326208539904874042380553136574347025573805208269070545521574330293493758779882917559353483579555983602549698999649039401051627866665627634442080392462678859730509328232637024173246724736409863824298418699049260575579416341234454900201497731572172828889346665108513652213348622936549812811732518434051226494535938833051415335653538877086649021264502223603948486617821373129524525190192308079977668575201653180691298533080359199482973886385767031539039368448045457218505085287383811291562888586807933550446218155879781525572752524937786701205749383929133363594637624844004776765378224325086949100293158763821617653756263687249675429535131040522132371421150449540075640731507795885251179908726744854186334671426109188149896865187463120795905808009964727548579192104594787232838476566559655451003211733999678676499834755919280883846178633760407045458213468024809482025076445370150753403823363226981850250666469028010752153096954037682623407588363413849374519375674431028526681593055412365846728441758547658653635604721558232882901060685714145878806403036466741050426007626528079204378679283465149749972016243514135435524691334097654332757975974654317209913612829471624908496030123594688086439083051655882963276757483220835440536805034925835558370370220795642036622952077749109529420096131217701326641517728474001204407149857970071390833721092957905346830700618801482237410549726371491354187029129461293620502126425435581237621899665272398895662714730971532175797569447881087373321971454233763358945583556109067288291903687687471579809573632921115417071533271119380308915959559614112889950404164929640287198259807462750216416927762635075649452414822288393926153539785785424705082132769346203373879378804203887935927045882178523750820583048541245345130932316818062573892478177190368991637179181131835192417286145537712845285053501897043401932163038004138621070473400144883272328264356304311624032349478680966209071278815568202719689959096806035538862857591437539437904243152963671325992235729773189279538637550209652310385986338266509157081589695438789429485407828899985539348025916658812751465908417992597311041747173237986168767564228417086925032301448975495016643674346694801846031828713584504378573762597045297321459463353301572637454468879360049948819124778938529310907775728531247619213196369900941989668917666927774786648200055169106187580262679182528210693885608662548779372828041230658051625184903008041951220536421891058868354498225756034938466723971668513428853297108324426783316920827107647564126812725206180082441925460469864271559645058604113364022330090029518283165742488029265145877813760475846833181879371426695779955844731123915396924265772013938504005313970523648375924275475703232443037698584034720900268740077231118571894517348711767937646345197971160875514231910905348604854144115921919436349756473096965414113091194138555203761006720200007476301056770539539689433336832702842781614533691728080406196420266216754635850947480410507306689518899112579435753154388891700428694794172659586548123618555732626947603235770373421765801418254250400384257056754873144985360405287441428890603421914458105180447549605958886272378776626642442625109005462853872080008718729108464969976254119303428687549446847821341152690575599937506827713714128529070311972094429611720115623558938477342931986996407555255898126763355103794322486742571286818711423147003726585398095976415100425750895828786075810572277347794372954230863122750981755373223927412563512962296667690961585058201774307219175266134862927946968932821311641261823732808087005362010593147478907527519853040150965367490052412425996214877855361874840788908783974314224355594815436715903278489986831354233463021336030409678142702575867558750489151952938251543295876962648083779503625186502837694557141013225990548008452974505939882353554221453549165458700885601100679469535521750837229842917412375143445215292356369630295589716225299986265980045283754950336641751537880071604075730116659898558339848445240763907831127538877567851383959013170866733613846125639170198210864388565860020668346605368544243809337440561696558973571595214691538471270991052416548636313542896943062972767704305079802320042946339046357944332164985467793818606666442402829007306547956812910856320678414641379939001298986861156548101032243702234527295724177505865484229482261891567763772055103937629194213301007466932010904212810876304654302420647992289202902884862379054676146410620975025972223057385591412373640237570431191836423886700519303656296700466534727766235699806587632826824832499158462149787948227807501135564192100922726465689637933439156613854518603599204005981108088001814002384856541887811407098390987486585220396014625457926242360123858063125979881836694739750723805963286077731009477098505530324906438504376608375370610804555558925467248887671413349760071357132503432959295277171174144015952536743578190763254506183130961576854920653990559152233924241431502967284148643803773858416787017900933856743031674813318221772222355883951508638506981957583882294353625948986921642539364808696549996347232470681375639253007339429684378443913560728913184376008204341001766374498888397283077323625222510200481834952263701594028548848871393777212974166334958203572765798911886461402491339523592811661633220529462807418369500769411232343730332610715577419313412431354554435823898244105473127755638673121328182904749755134815380054884999327765925670367322723240790548069687405738319451397493858230844888161324266382507768277980566187183816196394001494922936136504449225952059571016533420395943738913879323323552581894938013583555016353819874375366079934671362193209300183217130322394208739184529181461190126121887946049648405897579349460485575258784305678098134203872135741988056684695215125340752933075742459556877154174450699976270819918101976548426493260435104534088979448927098827263360007667321324980805936765297694987211992143215130982564639427009288259986045391127116836995020454137853702391373731356549735172774769701574517733832413243810196321790877817717606080794091308447654817213795325362890214154624614767577106662369308097095824464626468626849478758096770187079414902004938161152100082592699933992507279624997378705102921277325346376608015140240642029794376752894811215164010191842642353181133039839096791772758005728575386945088923418455934688317640892784073800803949907635130962686703907481405892044185892712585517730450781548720488288043282521345995373301079472360992747853497253130686949592032790894066954276191131746997195858357939088937193128200895490614630235240962733049814145118495433790320206538515468473666120303817062048133554137016828942451630890438567515375967255437425729717236246178768926650539688376915367362950027345869871268775992813371661110519535716102845570445125935620525237424225046002743072615651035869354267607236707126183999684470657713252197107374337246620010622489589718694490542565393426562932710537298913394561637093492162038159679338849537413077762852408527233734601352994477954316106568714683496703564285110307621340159371059273285315787214028415079133579785970361552311375765057247578479184551409229303662553524963318500540202283870233643532408698156759323306559474029139839232657840492455852609686841361070495975608818038093316865213194008019476133602711869884631435282165859510279481185986835761604153663335359455151971808756581010502551160627164858210493920059675622178361125418311218718794135892035142989461489219995095266412146070012947190288216827132303593638903591493244471484275883312904873813358930368679008958199214130015011871764023188208853228411807743292449146830347160467926816281156240758597702485341651646931196158083331638048735584432787976794369581414241688174061905393630296185239653418650788114744531242907327794637930821026389088364019089656813283898847788838057835148510611917457547365769244616288611586366026333848203009594764527781378673451965081537306587972063620501405572588103696939536394463715842312880185808681419505622847518767710332807494229596640911185935160895614146548069878967533151463130494363340678931004555879326091135874276883834089972759577968863076247413992525429077900775369546724813942805405580955190434780679511527254290615067378994182170828506318025308698484508461129379491411498294853801392683958980858937797356895642479215437331725657713566743384437101995951937602395930439771603575774829460613114291663662454179486927776403605135864127856160371603447552847670998583071581517656643910281886536907438437117267245572259515923936882756851972664780214327241700563663198724989605829668532120201429697037448689314164129698089473456753325283514044758187466386450964892148205804187567367294451515442659619634406019603160609222374808474604097651240912230327549512876789639248298286734691976992826359993919819961079532260381061411955502787104258503564048139024082278924122683541342511152990192937342722159635890370114228072528377237418681060444484691745627977801987677910501532766982086802889196467284452230426978501176805611605410217734497361437417817974234762018832461084398227791807238066181338707784735992215347768935941103891650058700709606441747388762893202738146951348232370371904005814191227153186637966703079000212797819203678928893222234930136254831358557278056487420752836032443041710832751873845485514691849217330881368540530109861262722078408272903556951118613274713566497458814330326377081508074480611863619071523156102642830413656234131830845467748439492478106905652393157544935579592011775151276042001168579980603029045688251728588129190151936973505464479725616733995595928697407394062170568252451353344932291498988268073492387225444553213809580271426614364421696502454756521806794707862271818340381773532930430049062238176663284482537866237130162281267690648778261857732108549769683367474156740417561606261007197752360598466813770480156915527746204718765007220066003615222560500446026212844275529259263522274381196513406721271406111800200451918024567771741024545098725408206712837495481655996864343998236336992182372612809102526862918397966864363684680478199626302241394965334553300659626720864472481020474384947376013596036125671921987926071569526655198324826590813336480572187742788055156322185377109113297093164363619938359802896933231400359218155274364933397513029669422461703824118400947426717964508829037499726803074231116034947377975459948298359199258722711327129082333621675266205107817384056787304608348144392596278905795507143128677539651670652835340666583643976731203458880692937936249780126741442565920441962680754866409083806498347131827683650650902331533454909644420555906437323187344659485608205448338233859758167111599142517595825145046609371068713927090171403567068810526543937618137448119577689089912909689107493061818825176247185672059544366664114006771667644043378986807358737225512094174794606399583178538428308841175446310596585869885996158591506176038796730080550984924413602684562536658835791827380707643908974806852834672006426932864638977283740704937963753725895858057152308437576175766701816618502232874352160031206897941677257433042773858923570658303501351544667779778346330579320728923940358943588328738106136188197493077501075954533619293963017294508786922504924758799876494317483382774480358265946444709230203514932917051089031899367022644287482953673158402463007191344605159196951159182551041286738201099517740027400212320833917760007154670220714604304078762995453247829486148983361830856965411010874890949285645150193169907524275498208690650730519713945365932467827768661986648566158154307909602442267242914630494557130753351240359006852123651646202877868751100574824411381072748422856581704895994652132878225202374190263627438568150993980995783971306908987716545347107661175242822843796012239311221551212404782446448336341452378332005034780794994574247111893043606133519780085882079224776097372500513171635207019500130301712464838226453185099532604045837369784244305714437968494087748812485894489093252325842801562628515376461459611349386679382816903006426543486993863205199416519804380975675669752640458180832742889836056556261265329146083801431942956200927631572431367481241521678622596079324977006427407185087750035378671723675583621340721380218823447084025655831098656047346736929734989200222802885842691306858780632339517209448238940823090593886388790919169143206551569334536093889946024898940562064129675261463915187204199927745522078816282464786011172752295496879895479411734285423364974342672023353772538842404123462743495832791393565966637518815391305640243656357110446314686177942285854039097364774429485481076964218416750268094388484471629337108325631257092678432340452779607232587937345789891165577038401904354166511209105998355914178903435385764095043661639631964245273795829192110514457145277863427403052511944821285682385573741174775650656802580609818082228561686464783542575203415358150213444244214595020879097903458428743756788584565279000081024711206522124401481616046508219786731509279151913945262770633992152886366883078437227034042678314005386268200264066476565472319593218476138840052662803776445316908148908256694265641705329745893904279981199677718964139080832151173026642862007346273685101471043917915165739907505592746095272027276287496049437613111143640784887819456844824878942502385888413686646190655353163979645116882657427649209128171922129983090035546627190649136428809314626109614460784457784471765317088931948880238410372936749535372134189219046363130890555394706547791385733171209606370722930360631825605074331812144507971251941979685109379829262720280340698948211015304591798619742917880328788506780439197437736749015974002943196326178569477396444805642522173349741830519588917047354572846321998149816030566452666925193901065517843166991932581318109160912357688131320556804674096590289557458718665584214484384180574614450180042801807949882589972594811353078846734631235689976541345714310700162405933487017114529281735859549299835712454176437223738780225235810990656875057421756713719868197932245682354037773029520772293321007887056227947849156694413120087970492426701572603322762554925082350094540268094281472234930732482073699439060915740862673060062251556756732331103984305749536007709047271562715816493611262278370580123213281752238509379433120635317574716335718513721814013272593938585255752235700761461841544187286012144937365970591569337198635943770882317160744212634076939903453863903733009498346087861996837052495683881376827544968380907551035114556405888880184408090375347036619492772788465710151818352370009781441430393685243791509456554349864765406630118964101562443128786013981666883831247585599140167690045171086814432795425382772940886074045006502993844973690824842685771169182129035048553879233017395053695605412616556730717717505927337955094582892138740577893005037794955389445760755901280220973148638759229251205794673619968239270697195919131658196507390704653483191189556369636030731821189312106950202206088319960142044680148185528340794921581815158829357229577644336103830717655764153392946767633646168120510339481875050556289488699559000439132801369846004106447129746272946173790416786649651119262420866441760585801640157675462390575122107044142491306081023135239982014574422685533749384337751636936539798558119695881196036981248174330396934073884336498767451913388479642814398956968066167716411775968951610696225303163859512033484470735067917616556105931158712956251077742672232165505638738817165550729467371627805844745607975322772794026161450060949664252373450451415643618013115814452098873290661322584759643076440357740298580957946489220620562689924803346799124619981750149752594898448727957091765735610183947946910513064997317172105592822918085180614515390112818739233458146402446252896342692700303448603974322965066914206561836629093175018042822823624766845306941748423507746201476494980967309900188745201817122268693308142529807612067498604593055791913682321830741392253644653000548407958000382012875492149695148616553676860570602900057613147316707246335149943163266524599990309564997957639519864617585455393630139878483656762599011723678061324765350023181554075787948440986166577002267052335866370614043721242018855182180810946473093109432320989112040752233547257619958305953976067449513571343290418041286282744271366816181220337343322188784121042321666314415732403291282002335193114729305824985430847173716477166611799957722446059507932846945062743849130965135855647884468239799811975733123653640702493569255449905575763768704417077571508536234640799048543300717457879059433432082068654004805024082252852549092126370111245766699109789919951152522159618571323198009398112689540019834002361486067971626135982841684047745212678204521396335309051615418484609103692835367854674226795771825783242470785999306288263428776372696314888876391068348809926740598283419491805575214990096314505249350348013969835542737008599042918701650836495678545434347406465817154245460408391474434372199070995748578213382419581494262983706832233518100735327463898319242382849833862976155108501842285610426107460911029202137060268134738958066248228808697939242113347327789567187005146832611370889283163899675595463092817993774670024165207388461231867226825289609024375248672404750971545329999807240557100945174030003270612101821410073617476553093306127367274729570119940447306175417439559301712350664897252629323739379458524068971497582288134632074778599251022664628296793694334074299862862291214046571309501291521179925608470266427504481284039868561673657465838416831615356958349892529717113134525595749137347657868466083298027954242344346367131562732248722899046199919278700427242982793886170680850387208816474671967125323301323455825770668061183171448045351061036294168770405913528567285640615469378835876455502165938256323631452215373668293086598500242867099921417120882112038499549131635611578068912637960328009501979479474839267846800949286955597941365007154756190090382466187907899454384736836814686829902596286123732671654928128995399698874433221900775659585593300607754962174059467047021243353730961093091407530456643883235464430618603643201511398646514743989456565045465510397477223496891953258430686976890199842233977886001430326978185451052065873590043843590505365551009637437197514307703768483831212554868592938139395773672317948359442078544597542469241599432730623345501739312174261306595331095959804649934594250711694475973452781199350851425473678717161556858032074908614772775641102720995937069214165122717083991360289430912013284887222258694078106021916189479865456311209879001154831998558377999338744452511840374887325687613109435011621855758915893925946378462269689777540801482050382803749035325376148736686464413867129589380994669671064048387054356786701176659390810943578849944272740964807945617081781051764069211667757915467969430467236126381962474964982381831513739169959442766760773565636820037172599672455170454423342049313870375747538021559851384940942631505225237293749279496863682921256579393369117272087933193266392587814083999443072346606680045410955349557056148324064195714373989452681514828822264489636152284208281652648548474339452675264193512979650830178767136954598276848656202352528233788054025057547404410198585033217944888813898413248786773355117564720771865998398222761766420178137737294800871876772810210410737818907332805174906822777545295621436612129818811110729500720503318970254682820698739267786478636282526062372932724306225838740738448218897561828376151984855014039309412369504907128323550680405215177085895516659043133244029133916052427820219047016743898918228024236242521571662884523753761609905773282782404058630236770182632578329282364654327168548315464209765716557881176040257345310508998285606071734291274845271961506845441897555374161763108068221608956645947075347612635851257036603271746720954089363534969939127692106595441525434358684365288785635324610202136616661859454904045497605029120736981331864081563654216668958101023835040638023757528086903488858616469482463947784520478264184704680843316579031720812423349664970012006693041405789787281952820353750094199039756926809478844844558980625791001731035424966303204270295147143162917238773152025553209777795304291240886091735979863933412516644709423495368674689238668080729391824446414292884389809032494346960883363750905380227302218601857026344820179768040577026463470269251509309634833547175977383090235924863813568899982934257953572943667900082306377567356701737793078801294702791939102053072645173839593404025965206250444724944619094285435077117848640072161025344970274294625464710075713136618438391196353721518541860983595516022320296801838409421147606029943426779333160382511768435924332798493848736573164334510184364857242763068608626895921894777724765097554139540061922012761368232789225711744603107810647329188522212784962269047236567580999119147622456863484980763822162549529678440087531278212688068757904177181286595140475346557212822987183644759066363278327434520086635141817970989732971252862219802382787630333055819344393199890904658639635919412479013588619460021497303931293274638680640242611642393996938785590510446970089650094984365819965921866866061999627555238695402392567043676238177274029296699633081087560778211179086857817730448484108962707504540075902625472870661003404705936963661778122648401630046441377234181032103902586127405635013952620231674297179633086694065036664671167037066471082811339983321606767645900464052535408502688718296983563598829916296080258279721773975686779385434364277118304715054957019774872244876000665544682776564744116861906815260574484066637990600681597842156099277196507140939645693316548749472986601764124073265467737687485796570713803809602818341872414865316798854159119548904086497107747648478824540770982997741735525604490156774650088104239307542603099170803144732288898528237817655496279064697806735144801067427864173370523470505643419756722177125053891760644757802603864590464436504709309852803630103744102529733797628503515707342640503613932435017554289199861272225579295596586403048228301939356401384188305606480785231003872008769179358045886557244663308313882585843656382059116534932378835086118987411337319812306870489497798632101615308724507318894553107707401098839558998212264022764445277051998942732908950718305960230365575964238418559778765080975842144642234514220241905125498317658710514586217139158275622276841358208283682395200712460445724981924842052891885218825699855504671442256270922037841961674880423367731574402633032360777375539797872442572411618933948650576129871336763795422554010914201320565913332595634537036693588091762414719805780914053111473020539456480066251795755799885119405590325664024853982561843301704046337109058424445486134676578355997185914969705978356694490949537130149789010417752955536410567453916607102922141397130792395734474161398401941823888661849107663663893357905181757096430153378328615038465973680359112501754237285952336941112511910963938338010244992629604397941809071465142494107739116869805396432846745909592706940156297818559015772229591124179920115903450739906096649749287184636852900797199699572887723202985719777076540928072667324257659891366670363451148868515635000369769081651020342341408675711052791448377311744503529493864696651252627935626391310048748962734875246752382711574013434940058406583482021313689144505247378169099084589109987725520817093090605733249849137860689473859354690500151024510502896118460798555628349713725099666451872696280503282734306555653625975284492732000434858828694178584018454628220099295988412636028227191823833523276634742354259019941664274272756995223813543277987418474943351190212147960055458054339470705347155895086824527314465067817312157171390802897836717486994313630558163082300932060336769231735444223943992010682848544734361577910192051212312990853407720542953038566183952649609569052145861808745452231627088437319981198568836727145342745369168718542955572637481323022887072365151250363483787580026555168569508249752232992506581052579041960014197946295144086493917111323184979343918791522176339207371340998430113510437237085443797393715945897644753460518108249003273180236043625241080603174730752697218964044601047135431970574207355879320580224523065537405640984535990499083498966331272805030622345854062312536273190743299321036465795095755919388999901438295932826657351106389916320266406286913595471371802155254969189053529839199351872795709353928557933020217873762820814047675143930303758186959940531329308136203956552162328489931395461363789572430769715628385245635043172014009651790515376957264030307665981685529271675155081037809653901520037952415978853967170960863140758319813650256039744683465785739295116296288063407278595875152028510437533455634478984594603131579746914187624109594853981091511473652791568209895425245512603056181297752099327134888366257548274310993871484336140450476794651089593225173269015520081092512227459192695669681348996485643345723116586484276988131609936454143121840088807690951462241436811066430870524661545991805386031774336780456489282295451113079620863839995551730351844237418887175057304506999465895722459464520513433714812280047994365649351216210125764002662616210563044248715616428883138962963478480174534946775320004293804917877109562173220618502626642752926928339550014404696055896607325457649701985554825762177255591549943353414206218480450448844605791155352201403172243664902481015178019379907129893122485074112529589523155443066283147503459210866911179198133377360799779226463168452411465805235125344980431458175759942917110737047522904031241192548028863065336745087228251336610085501355885056789578279430243212443637535815048433386489607951333159961240205987686264991637288819042670912315625231398330749093961373610768345010039198792290747138091808275093904170644647733534872081747206115112550938047873075634992465078653640790601805135853514629510928449415332052585788001995706501229397615305525828053068504248149185925856410118715200951524864376755536447436962457181963041671522662385379323862776585548888669168568592872906338499499176336683124002054950946154526997572253874449289228197477710513308377190737279560190646942754536569972567245666937157783534982294888932506055693904621510958517577860147965302159754540667801086466371528257905790232445814386449150931759882186113094170445267081997985789745622958999952191535762870204988522017733366530978853691007162026834653182627371300435569112368789477933420651113548646065833455210780059796612007550405778026482531599643979572814326486721519241476649900528343335003686640811231181998404488927813915666140241207352397566361570941005016469955475164472600979156226851533108170639635815017423307720694523807515973898419039693928974661623574197239337370445154361329857393631252311157271024651486708418014975070595157367991098280613057510288379288755547168467214536395036992912126032918171776431928679601288928184995546271444107032737575580568397993404551875855744016129104585564104908644096641891082440372307503790192065514126090356195998534385161483408983144977109461377456985552413352884848422525946532709119994830956287571019135501484461151041757319405994745119694265166817455628404900505536964130231413370108556790565403403621059374541541602316981689427781414285222889351022565288750914872110370596739933783568192609394473110160091626693531806414508471472854783327229077003121357314197081234595158795138512694332468855683018209799778578877466561384976056263538927046729147072247207867518556273246423626938778476863108047984728675220274264154318487088306216992305042259535065326358742606829757414822205222109570120562978897246072545360396691105256500691362823099632694211407750767860373908202792643185547365910153199304980008863111173621420650888492913115120378286282974623834838196318789898788608246297363633060762121794589081860733486366122901146329954209211629057188558436713648389503720226990306478420457600348201469081252398018248971095167013019191938079712508585581977674789166783641229517675483195786190551984552316306671532348642894839347008572459023795462474825320594159194199130631073484570468226523013522601289676751058559798004851151788746825797597525388883744019122143435570133556139010522828306872176900161221652154369513525602154981805951367267086418614939757437949542400550075881568161143109719779990684340759549438530156191842798363576450459663943700413047305272479867166179882033884720813746029932039243130331588733331367190343148896690519400102839259189978532275277204066970904611338200226694811792439664111275756036407477491327132874494029601317415168981625744953113814395592568422495414940983770676259315427118177317645382006623872917223103900389878262541729416554388226513352388533883515128318066818488721176365343984111386807999321474654932389335723954050057531974766222665968026729868367300483093429702021982586716327895378418110117826954079789971498277994155428720207697820952166887020617557011806086644875827346652490577599613033221809434889897926660611799074669059248792995534069639348867259631153517944472401864744709639864772410172687852737002006499603298088993455362241511233869217757353776237765167040425494578655496258309681971201232590216732209915955690485011697937535619781799978083442434420654391572243733318236876442319914186431022672495103892966944383136207506905306661644048475002679867973441872528685499104691507161196603249084041327142651913951836380791356514917935623239011982539642951018867868607233413075962947602439748307849430966836792445824137965769035624840834041009547705725122584672934767646956830704106676169142522369004142431326960084970668957484325090820975225224060392106420846358545270511987844409422213882860621387013910599819433123175346512160781229568133927618784135455344713094548408748775992021164948670509121289550755599010965439818979961548180277568912378146744561058053523888397302802367670899799978623342821226592467996215093934425914718180446311731048572440306738292360011454975253109550949109207772190162427797515266422475089217580293152575383267569330690686824013742571221542246226547626314017722248307917810078405304864000861175555671480782072079863513591452433534319638572168170833452066545372995928133858933045417555522712254946125528251495256780271101537255315785648348171307325681481257778852241023774291056812563530156969166741200252024100146721152733870725815757418873261551668714585011403908748644873682138977274147098048409996494910039242394236771450923381772504898888495514988880778710205133798749263980288100555026920399073645634889183714032534777783686686057316280181505463273705269535634466831054861396543785857285656476065717427966041448859058754996059143748700335726378489847626528640110874979521370338864069504872444628567788892648533589887094725302092716893731249358038842116818347081557852594340038302811295445145036395986484897676442505668299780326491231428828199579639841353725799360029158683029920727336527085056910853361524478864848270964981376274019057451513586602257601435761883529300513257087596459012305796238800062869152576908367203021495945004974070172615100029076896400507758594166797740401311614918608591343933116592790893713580491669575414309107925630960652416253370430372278985247761061238728471857713994099436223892684720568469017773646683483679176070351593599909500428678611575679807979788223734066077899834611006522909828406271362281963729391375449395626513370036785009172976166409156231133510945940137071935486923336592607641953570100709512081785498040919421617260218230605238235793213440257208390920093656215547449017230843457956471441583165319229797325177527892969335644242963704177779669852132180831604221304885356894485088336744721534855910415362974188338179331188507932274010100915589650733514776354348184489946656088490413496768348824990050814958525084592680366698914174583608237801831609563994610713825840590433600018352724990809532007976374038874008325309430808160593933818110573634354912317102298874804257177206947034620942633266749242026497593799588180047682364155081643207092568414055644165999638295487575846366301243169943752315368576523238150177823480325189982524629799819220460874124412033996121272468027262248095234261715558647029837249920244630459163666555163263400577313841614171140936467211978626009510081472806146014991741611842865282445735974068136656119248133158475236767694825711984540025507289429690314268087130210914592704422501605038965485473682219641180951393322787400069083376035996804174209437677680811638529268283267730349422943362957605831512402621547056282652552060444268365254400021860402632076489186778793164445458530429048056122909191377426820561269752224540148546661475804860395607884812630143961236446404860804714982383180275368708617312282016056799455504919207424919152072444645850002854330637941566965345820479455575048679295188859765940775621053466408075705805272417061169202582995065800370927556901434523166231980443320471330571213222421769098970261418638675770181433670646583205639181766845161708017641707069528278350415710935348658548015458053381242671373235597306062250576118957061682928554160670999293063185812594809489350320368943707555742535191603278800351511485201265523424912074772734269958907007655113663406364102383851127274345026387171530405109231810708263922386189188822826413478975621998969836872362256380471017096869899354251957084757035347313335062666511370760133522336719052245343245241899568086738780664395289426362860935063247009342555503737157961255730853640231548796357332843251832943620160285388488884749288986912097091554169213650250289455139526010508240292598315742264183977791194391848670762045436947813781946131832940541410212854249779801305726076965200695875435327913585180076164406367460888769549715915828524952424067069599835334647675894743088625881239438584049490610788868451926997875668785116799588935130405776525999341019182440594557433475385493607945934678039425319436117199868842252316651304814466497282584756270097479401780156736614284988009309718244392538797926402993293766803962774499763847420484790906522296173347270528518939143938946397244260717266978288398715947093032360026232537730377511653040889457425833871466369972469081984962286002289705276639130938155364179757257924896768519394272853189513516031437725596072313589342764348939793424673203572791906469771766829863781328073834604160358930845688656221284871601029246012039160675560161435558994731547937770945108954708602943230619517832278860307476405887221192496008786068347422748596987734323517459765139703792820101266743977274075919311564077178442624088400220869853551046554373570190866326503617994748729886200788800252696933647097435144552048689466575609161890736660326368002403847274286657795132732250145627614456701017894690986182957204989616946260784382777040988522770824838640303719437251277836404257153296630492479532674520589547551627612438511105968437533964367668342452420430111606825574622792297419277965114022888135744244479514079562306357219464466650262699434564620721747435569470827170518901689358494932734258202643554037440569067383126086884742869516038433499782022387017844715627235338460601522637901353367631945628329348868482901869093858436076884277327855222668822189233592243283929024873355658914713852932666918362438397581192446591570209519161980735337067886066458117501855813868870140444754392986927297986548283018308433191226615905629564774774860928960868851924615051378196921514554936007268261648633662165665562181665981526423967504781886902348993263642119179445578137620731281850545171580553940938546818100343849367367031652260211680465013103126131409332509373661442792095719474208219159105477813180550156578428726018246734288870058958290462507676693906788472365098053868045773723553890137578877698927707718014057735384210752652315621876325719768503590351725747772391990497679815919519839743897193887642580043262105830460970514212109578397241890910599892801464125409381562600451015128988897786504443960355074276263092197560941896549396976039329929885288489265712184555999555517624155167327277052805412935295278095359041998270208741083616424050209097279786539036897960347034386281526828376811651724362201456064773712986988587223056229006179345473535108804383102566435721653924289099906474488857530231739633361045680705254903889426378687641679578141138612287226594126607022878036082439807312050644872443813752925284851466460548607574296611802493118624565192796949203494159717770520328792771110802230588601584552483839213126625633122027606524222381047209865401229816186486712609625285012937474980543638743856497952187106615491964100220883134237122169434133134714129726072396958606628076637972294991731601044402912211036159485222966003430259337224845606788689084830258904208651948865232664206286787877675423660547944266052543088809852114781708581250870680772661173918166006710085965855579655043320878176743437655018652968487839521663385876359476690847324478459827824493799992841549213632792797942920105769589184025835863116915449334058557143097017860283929179043651174971878649348566597961256354638617631014351493000165724963044520109824279410709074016853098207470341607967582145932224796348960392737818537458070001035912037242372458272665065989326069753203002388971074820404560222697240902067067730008116956854356370929747530821964388926537988807803158343023319258091819418518676670344232694232055700157044465801166149320807572316456570415968952507737387987577945023533422474945558896484662291477368786785825253054701995090740640587679668595287888000630107975898097672552783457833452456852196045735108839848134510890975692637123051139493445216908824065861205728945473028478486784704024851059954512647370384092607826519158828786951574997546531305877683661630641924029940199713529507460939931277958082350622539331186881066004879985298434763003781983076125889555854890139481787382282291622968094919565558953778338901910483554735385153627158245995182200443062140676907000885504442474575820098138133985753805195088075399960393684583784936177478973122099852446072293318887027973516473003022171087908660980302413323364897186068249582861009482337574867589696503448550406337194310065667394243580788823841107307920818123099963397700950308880328450308596756822503231368251325708188111552633656924109435671653429813283214356307430113910039964036560524324786361213641535126515844584876557127710294711890285820934805495432067423037976408962643972075880579181928071392804323113009423902581663934658309652671224727201599782192622230656486079388884104241629969573221653581411555226193308883899655374971646127303490856132137759445079764112043560902628272333571397807046064491830535530043650836863981850069263215498445699377925013233369872066058727822298736741396374668630519111474857111399265105062046708549284051321882216492210407698366856782660575669821375095260038952876851590548780629000505058780144773675486433716750133936835687653260111704152776719376030310683594161582790315515814612879909184322653990222225942854702284869061803380619989082938608290397697958292673049003087758802399020155523549684779743430534603201166588777474170721719242793506848777081223223331413306234541835439809549067111426663629448653171426731266750569964987239004913583077419616186863832172705115307496870204759058377739388021087533198351380481302796203269607564438507550790033041718786733374828890903103493074323337805046418757189718885754928059222287820362926334216777127835780329963374910881633991320259978481049158223347734728472455586630120079105656204444973447708014932464342872673755028407905185595465288943559914784822793930711567964198798917803682754018022509090678837539038926669659785902660722226277212232295968822103836878213787673467580020446053536239661028092490499794600210765837633686153724258277585742862537075181919769557568385471638715484947222978729427787974920361789819535482605852340884549959740733984529860520916914762617323874000673389113530374672763210064160224821497138403734772529361965963093065653791652191694951485119295398727338526577933487250965549050727995299033408667499759885036338938920948433028175963436842207155633490104681413324095476334533253177651529946049134340444685174409078944532161731647671628273103486510694863163265796622031364022271946262222242411626854352882251642109001253476710467200602747431866115270835729991422188470008013944287318594016346277452042906842466023282551287314784334821741694256035467886735300551297131761486289799974146495383385709432953934641575835148984427326450178710579008643100617082705138534430712675084827298170557420690088043744749646633884869113750012408791161529118909910330197590383739192369141634113656473505655725239301338350061328502514999373160336210348465430560331604063436076375555358803717116577806174640115469321242099443966773625857951636479497917942930462121690114227426090059799796556936803134753676958244881174392499898874738312629492346800498035610768921813874653686619484572751424945953983412291076025041899940819449706987005308703690900299209065663172691309844740692623618444326413503923710441744279523987981974818193269792899502046980678130913995465838531832450247424786800266686063699382536540596552151719626239844092140639829099359520586323957908491723045287229913392589170575671184983388628779402899077316282663989685637720419370015671286587305864050970050209318949868595588446014318582820612437558850937699401716452667998274490444748873866290181267980858362390539742607531127418209715828399684568308298494595193857263305376157300442676856041518172447218717055282430816989893444945311007646814486001293357328226635459650502327458707093601297359886160730197638301189625440362824879823865533913124089849623978299969517879062606377094766357942765889394371144528152281853987354408177192369620560485101243877431082368058740132047621190094397598472689569107478863207143496781662745702356846881105509674011376628541946026834988394248169009814828186134954726843653874313584039736489061327460762380574170143288747546029809654857772568006776842551050030462116232107209743779244475269270759452166708793638850978691206100072148714558030824838809189588622949605982508756695812534727235305338966793778263560255967597057267992760356943763870617378375750859994213563165751180944455395613286264502719656262419766508075798844147230765484168846897492082712617759953373432514493829658092351292426117988647536185096274106987554255385851637145897425360906477534796243124555982380366706159077349022753561409723790729359547265422905595076894865664506999213405701764415737956379953569491280979023232596701739837504931088968754220361537772550514725356601481151310268419244420960517501209683517981604412820467185099558912373158508862416492935484847046791632367810367639266496317626813396876390990443495730612804824556910109490380484273077532420868376377939493298276024308552603444527858041893726911482965023062361477704201390671053102834990297319442624841715972644855762922438873573005071563842036555767172407919933038261926546769497580187760201931744618726718645930154348969513577881705173028584386885213920261741587789826387836836322285707254794360024432401585217477831600352458235903215922034877574590338435802558173967996179511269810880149301199126093897111668461145233800617406998112252604666653001005452574759882841712240175037400344011629402298027773083380120699764847244193656128776533230934102234818424404885724104417493503748888607277282600808347354201666525819005760840366877225111990340156389950779400905794629011682886032557966921462386954263029945191440665649134256240435950492612076919867765941072927771881964058602095327582308214264255427981679536248329057832733273978288702297164075056497607738701262405651739036080898037781861471922668027760234031153623842704936775119629912460976889053809674789297223558447609357170598739040370248601286974830328644776228628820552998310043932054730378124194669292087099924049585801985294803709385474743118382124886214740154525158312643867655396045867107757884640810879190921064331115824982827482944759805691641751938937878495018819146306594007893882321087155494190319161541692403371228716299244178251536486360705436363535074797662943550244042032619634763374177778077158833755910880767735804100791900478523194455447181266915041231786024233350169114745299332513496231292961020751503597016669362126389185141360472229458400957666460620693818424915573827444603823672371028608502985604415190353863051698106899241733779351012349133926533485247408971596831187069723872666926562437409970235290444589938227989839768491964975628728124127008228469735537281352271175295017680014584547593196691856085803946528242441273293665487124962603498152908890169070716177467699188786193117974073102325407950597322257440681541540067285350899328585655526961250645152973083272765323536527564730754053863368764560561733875180848284330954140937082215689498675747365700312744788795910279865387607219194840451429911634605546973171883864047077567786849368733634551821149269595079310640806191578042321412665001742095857411225467142340134965784029661321142723792753113369163214582684516528304826130771679939463547110840596342373567511800650277254360799379734186329819939707684783018550713746169460241696027698613690207651997724514619581272300329941885930439088464551845556521753010212083111934801500773542522812157180603045632440808120727880588901619748936157739259200254415123382376655811354639310373274198528344723696120921777083489884261346822724467441414381515000866101054845158643951296826472135379187741997181873558951207478026946722980872507397423961534852810044844588114359823369280238151046388540372131046418135797681116262193236872687466257132865665140725049020215311883712225834386428874811576207718523235121648227629673156024345309113449143814712917527821844623574712657246792720883289587495053276688894401529971509377752840674416618380596881230688717434517599786330004895861154535717608418004904670622079705305612192097465210558750003513312944199547172031583379495227699713635563487638431038279966067950021706044324999989004327787966294591248477369043895769717147180626666962756269914933452755618460969429697542976667531801396875198270652370428597940073987099078319362824706007087333784218790507212751895883723394901961787814735583130339136289126875840442040218605879279219291788067699085699921492163412128731157097485394059982067451181111876185012498846922646355636204595269996101681044566019068327462651831533447257682181975310070112353002928837286188232962500226229672381439150143792865641956803205326319935623089944508738073743366994814065528220454316586614422832366133012089440493705697570891345830228984254802265193937400430241611498268484837929824494140836870701623312396393292019990899265211428185062644603105704753152516036507593968438462846676135580737596381482528139288438300661513491926959727347281394764759559783921542798080408219640115295236545571238933303875092337748537407135275406376270116368646611811531139570748498690360165534327221956729783403550807743834163023991652502024039888288924771668286802321452448624676511885282672108064706878951266880007491465158944872162748730616477969195475840001894316868876165349923953649567183298991079457523426073978395403551640074182860998387695904544299049153191111053775489595557148032077855407019020193212187066938554372492441340497577340054686034497623514303630754044535456072486160654371048298781964183946745725518588927538106151360110378413916867292900505666266707244488277524061169076898563290882493209058342810061992776239476433279465182743395146305259139251113947198607820574999636812086561150469607406216161628909320125363368875239284614192810708609828003048081704273452989635284844596332091921093838255603109192571080914438416271624472285018994064238169892294107053021195748613861300852397120110960180757627552052713049218761880049036812191117898824370947886348857309745667577445796020816777235396307137067843494296093753734968648998610899438684002736217959235930141529182611179241156010823040385902276937029145414225209059965758144171202509418390511689732820667045629382618207739015875777218422306185567136000226199053305904372909606909827726433197482786245771646452657462911368042928042496473710358708824184093618856392443377772760657914808527972199574903272726755060280486391138873185388104623606441644292717659255745509770165155198805449582177098641813545905975677574914040498425111854633355746237744578448377675802497100825378969268150809366645441591677415399796648591994584718712338409257384266894034657799424735527969078633162498137433234179652212609685532262858691035110443187596015647451833665342157146914402618555650980657766980725613441846792456919904948667444999878878794146281100851453997662113580692274373092849900870223220864109097941766138272090968016514281777333571677383193547228182482176630697479446384365339600876682502247651762637832731350106286615293644679160343191523656471643861753179572390631001603012641524802677928349936583212761687780233614477337335818755904437468291373796478016462649435811811935828294108869702757892527654021736104820127249799376940647681941120026615840327564050577015791791184370077869802161523049021674245268851443602978774343501910980358637485239435156252289933748048124980875217631538331114590457791574726326763800747907473709503219098551933712775879473284394035867008596387606948985282100108815295190526311836305501866033736985820737097649828834850173725874199891224417914290291342870214158031647600750245094296686069701257243887935181541599959281189749921175043256375541483564113171933926968618920230840955991239841830378121196730754159675052441341557529456055139963391701633204691936915051283200728535652838571855785481409459911372940330688101467533856306145311544150448365904318515748603562904511457440969278471367371453837124777790902068261017563412633142195821386686429536319934976886545114067280314037540477806461137229959153144646767703355227848627321603261271331260992013432647149935281108288787487452563241362072028767470483521615697055789197652072154469443950932003454555090212591684089147342355243228827460861894615751305758999649267994873708082935956886401635288095475912280943288972285982275226684476409906484382722414029895849388488588678398802231005833695326522221006040552374044806871742908584172129696833719047493989894502931116752595697589220776255840172012764730050712188030074524151195138285270423065884262159142892166183576885272878958773783426868180930684154538883747139480184269670776864022890362060936574959378171648374918632686673965879813406482560403099901165921086393943814761530348835803049903966573095335955087934977075935035691977848540616306780357850888081223243251204709571499285528812943046520620604793458178403607241678309258347246492279951791073675471115835086305863691157214781583321648717991731442732415380996570636394440674190798162041389187230369363326764002128115817411865067205748067528670998762318874977635229006235613457561903391024719726915043673075671876924419360973300445492790450720421524447675109425769214947554665982066426450619759579209276022723103497429396665198021266851369673742705456940906618636162209493796934487263728824032293748883402055551896792190550696277069548732603446788883796707998932945846058721498625347712254472271980765957797907975465277955766342384639490231882084568780960795029442769659349132260995838671552609014619280599027165751451045664558440057049601767832953927387642585012155000193669502378974544525910549158103849811622518521855213754518118451708201255412398905199944561278843212336576032559439866716664097229813665466572953831357049392827866065313145199481210706248311669982164554371226168047578366505635061064883874336612530013358323066165032047281736170483617669484411765274859175132098890451747096082314114774732767503414616119291285326568344283797728889362367264281571558544028089820327283474788237195537992502339715502341762900205705171913125757447217410589837642013793400241149352549290366561682253709789882886171482572378793117683322617587958038791206865865819900530736323447984913321527863879314477775187251753287583190550391651871716101533017076974478546722099924130200854299843352520291768785675019593603021006333337220982745401514245949967873214340099797072500935238266267404517808030310793041637813752291496299249393075212050234867458830648552909872733150532747294559086900520555226014544712758417131791752606024218755810903735223355371430702858655218125018036375319105906305344690853732002684832293483699742816517840627197103378403697070270044194061373135316310174190527105086756288288805527942020518164185255247262907510409180965589665696701834805240537393135319695439503633413945379594241112710186339463934435447196901636723969891935592502033250215035555347014610936524468817886136656846847694462064501943445924975036171100599963893493293361764177148465552803244348429524732350952019416246356428691614580093086374946604368213866878035469184374337259711836006012412177088695849259362539210256420432483719097760505181770001682243974835683183630236889441226181177698675008780335528152911544871854454953803157283754706536713788186385023525435967287436467621982228463091107197234913600786696188347441157096518789438860188818880437592720278746275980840979883313226972676573497427688195502014565628350428621011706262578532981711207925041933071938744734273967318116182599660925720263298410534766807409250112738269934691459159264749073635004480692622869681050030743285160474932605195522395069863428374856924935521264003676470407943149220656543251161878120832585163727977548648261565351235348939221526280465534394041116505017812916145438216378316730159178481947350303502369842808643272641259799594982690360944172294145181076824899549547707751260921797204323273747329832267340037217594389795913515926247423140437127515794789514045002988343006935928757755811416155757931157546179870927893103224333222080194511320537208491674655135474993801866667896939708363132694080596488800074082559216596874041504536601670970804598481401256925506006200240353952013630257995724407662952148078952791096694061892143650944327111446741722071181447045192845708496176911765727553954575794033405223888269727748270300075736066238804448999060080989442303736309268373583492367965559640998836088999438158288623183472204191773998487525684488710981216079899344516259781756592776705117941056472590189845391314881225201355722379442096464705381146616603097850669515926462916141588820016989106936791059256427079346812036310731165074050967875734905855368889330724773673237755906649552996111942397035948063694230078528255149735590928149891411091269773643981749396088116763908596885972578093633761102918933392508306860751081875870560783056124225440536330434977728747402516410656068156445020119484310881115248139343972689196204674584041803177764284177790313736065003077170706877240632794581879959116076151232402450016097210125005200413497843320664143082949385958186071621120092939238766214818218080425235150564726487790201663583849942493572849171063643430936348591349365040005156896508478943509742589235923249135472314998618275564941367969852707857516602968101603395307371124142905310772037939980655320626967309960933318264077873585770514848245499437305239875805746526293238509020174978448543508927289963571658167346477257677241371369426720495889159639874770894252768854119083876257391111221998738011453886377467981777572555044748450140943909762722434955225709524892730866520713496099844225161830210496843116781538868593753341176426275028053859700993849392651127985189883053239579910359254979117533446146132412460882191923921374137164771353010451106365561634472155891208534729456424646487470854441171897309043675343863202805950912157846406840180210026484353791462143153225943180657787353439444699958316919500477014214385194319972714559943624812937453408806659766459068224502228383754736149509998823923872042879820019374147014093951768226589070281219164875053869447075159951817863821835052926253740412420822286851751472123977513078667765399522779073057743507095634702219741123883559767476509621779196834056920779749401014082908847779566423585883405487914145342888912236916513266792249842629238295399182805021847964402099650193379889525148340274593157488943391319613454259021223325582561303937876485409315626243476124794390482446858049235664304001470687226121286048778002958582692986794350545133760518753834295485900086366572018364248288104017809594775645352637128320838734830809565075788645979474597159165475403871021443132302748794490540106842597617950170297825514941980657304624983159307304949391732391154000127770698586649482046055195145036382162364336775681001800802633162291698147369996594810653509370476250954361388982821560845452037440351858959913213923560865686295589773889302276786355586973899677292314700129907541451947082184744035836587324292261172397911806582675436796981066347452687694136130544848298916744605385330769822272147395572509890066559195059187416988576661814513885797462968618370418859452166796389523125461222552165620990523934177590595731909610658967852324731646857996983203399489177386136980750690763350128212346148269718563853351070147379798714129322467177663181186943293085355912201752660264592257945713599951827027782538900234062567191819730375309243478173675857783249121179836782836087096387646766245101508020228033204747459213504152325665950200738239433384169449393784765996311561361352688674383483129320766338227962488676549146077255448079390308826060661619359045597059270087180643842220707908846593043488017904305815940862292344951757162786491950013714682804363174410648412280777335410254631416038539711049774658636456257635317499733838857495643359520409155654858495607604411935098965663688092869377760778536610892844545915330801632970078568477261934818706457412897539128209833397507171235493072093611153676009083762481753594145095327616074278472647411119359242429840059516409540925917936749273450327539748879136824534339538231889976161455036089107735362032456888522251877657780979619319507940048750865034607358794268593898408407007195034746455932514834904350474756998000863516752716676232884287883554257611290330891180232403464248885886518837800657048362403041817315561523414600677208185041882674269776906763945298355968014602327238176725685016155015698189340969727310368061041730914610006684087514096461778944726566609515899211283883656303380007393171648301717731592078420313158129159565156163267191013624686583558419989849689883855008134685274197622465862234036707609126574785939430438604761654666106904699678259090687096746701490577771690717427455015742003646943046701162096585096451011056305954829962506655677580367854571745677568955064018353045256099048607081495945278247406802688412274820921572349779145837741746038425078957555934027526535836771102034587647513787265025249162135891097617684651812059057821002987953342153986677151703421256585089179536516961611990442474379288768950311878087379673793206434401126533165736408339293800413018386939155875347235171953431987380019818551534494746496955132100895875777943337298020117419525078748126538422162413628624039911158478721557553072748039236888684657794475281687810346588267939967895444531227180654936875837413365746513058119590461968013871760122799223661818172732724022380903638082945379631437832718250413837368280066650219896529694375119458638257641470142662477761209853798918320479772539284839039818162551600741122372476798703855115128935599661929260421628223986992020191284242434940941340267657723872545563483492774100634394831479848645296650638135009339572526860690154409311633441890477483552789248911108791224830833034062764347803717756187943498821143040767019083290209808266643910411052650227175119689966243461284443461781536620360533004161703933232423362524666398850395232305293141469572068536226787818944283638434910954740863029551624536537546168863388455987907038005740490600058730120828545865039643215166439504599749519433193309793853663609391496171698498809304294093485259200954241043190182566304816267484522895688901463333583113311961815323087209542191668454088701744575516706482491886131174101158469772801018459966536183324431086180861438767749906181126081985600083285903486290995413507814344526873282768921060282050396291726192163883167710259862647747468911007421902258388614263726064186520865398285422316894579345776968441269727660130090760144706607547245331690018722952917613822365628950458314186651624327436645712225204603224198311150895894918207228182776437159080283486001281204549701816853050666700912157873674450849410090963185612781276852333393276657140408720719857937580059132853375520813026844535153981965239181921477896510644847690841015166908910491628978652376361897476227180061143248168089701511376982826042542627866256476150662821138764425757390656084762788413911417056630530477502642991153789019052962124573906622672067922441004501248622363062398936766473285159194641699267356856196539823854615718570034976572714835436564831346235792747522066464237473592105005136221273532797055078677422795106273185451945836666294030556657155304329945825846449779831398803890394937415322942035484355342032648934650657444896969243339195438278812939599487113530472825971912042363527934623784189194772182264999659234174933730712733933205024037557354838622442057702015144399659663892724431858166635596228735374018972827080471823971762741925669719028355667703750981772243986542532168905136959737629956516269613263167052994735247866511428314737538410354160189383168259499492015382852762403781258368787580804088239387983936470636352106772625075360485763660858089210532676807028096340004950522171386031695862797488278041638716958316015611201154489212311613859084723232349262681399828323311775205787388834730609879052988445442443858641017340909237216127671557733690081782948342928230666355882694802281877785575479211061126468678617090927785882939295494793893061747880552528986980187194876538310206470759050423631789028349987609673987240414887733727026602412149445831301241027183909388774328382648944605195044977353713442396727935640762484927811608388914106005630881715093450687577724430473979351055660681539126171189330525065162978182333770553682640430833834234694427748332471421321604488990483829499800728296900279255039202487790609859763920024678969648155783655458985371680941432658781005209577102464054192468822335755870229953693033784577862087804846943444594513303813507049375375883629950887868846335464726886780558039668100852913892066931436190077936847477390986390294646029407023460888245868379128396527150283141322125716617776516425591819002738691173366653067913406351694975268059208192108381841869723841446817604706626214301392401902264966696019967989764686856249749291416325982286110671179465411277428438724747861863608374875672856006312615692345514340673177312660059156085552752384402247068698321689817484408199195970691530693190521886038983488568984026797333074256932309242993328442539339060983371861777199490631758897478244707114298440795837992310733522074530638539450618427894265496741299820761318589252002693228476426929371706109229368407708511996384006169262109057697587376858215551253979220022657467011311818778811453616874980684004481727729732661221192445001006237333807158755591020577703112328691171791849734753197602421057517186288701342109050505344869575825382404999800861694909964200581937494640195282865933742870724344200629330851847132291728295162012660109795394944930963861338535177700065409351775563889819121247404042348025991601983664299533729590034280723747727685865527800261169551211904727103059565185273480039553320484030987081572155484583631953080454480475157681912169127387939669885460586898221568677661168550298814592035022524142909829249342317961618212693521970169027222044948813770722671713739348798805731819531819481826013734880777726217100386201402679242368424282287831356259586379721199404301560193614292624960626162989364121872650070508450225741978828748843081366879541283338075565605113144976947353146875819223271041623482008112635768214381973876025499612872567808245717262476279199772952558346228179947442355170229299147190390229894868278520160983888770579038253003008449036136399604740316125671256185096979787825878367663740198497994475952078255191650413958912467460483485348693034901747421909189297852954555709920670037008473295083560388762829654719615205674970525856016946726151599590574577801744924625225158154331405031738203791451697311057958023357604795084994673041001115563869623353422097928134193193321324595826362352200729799294109933331372037708916667953244431910630668065112716694887995591936622281738267338939395433924044452964012938281807939447311677244044589780029456436685406047326259729830889620264691378061802146136458993274497075279652073324449991525190548869702276095481192295217339092946787479008218385081747424855408235801171177423579615920671860612312697381796313273803008767297972649770274923390217375699303170037206689567170037198251919283883165178694074932045646020307736313021126176249567069614822246552947649830127893731473062109490479732663052243296347394135652352818978050097222011168241151671204515576777462054603655175239572637817631980432840365814648321722072814024274048043035918035205522125958487958655922698490053276129730761642860218112974661132202032631013429116869822157945733251815208150402334362723398972412504612346625496323839269662299592121708966861129337418790319304161566242542426690378871767234080760372421492055820570937670209790778425506781872511662266977913207047908874101954118057926444292930321341284949294689834296228413417814023560828403345710932650832438126401446257927117499499763758201002890866503902885002270405044309475387910089308067744427074926203131684005875700098527030963036270347027853349351842319047393113235117118913197473751156566254976563438697993609742337405927760695130581514549981397063929828717107903797039510922492343153080210854563499939894490114705359040543112914166707550859055844890649905046607532590578187684839979704186532351208740651947393488105988711985689145581219658302593631806776762999122188698711920205711857908055015885297137810131354820486904147142389588865868819940926884658255442576153632314939032075045648334737635717754865826556033354538657128376379763495642508636208018283627350581659336287770660158363009075738706794689802609445376177938113168740624014186317442852713958573355730982394119159570070458894341151372031165661890786537111489063594126261590814033622258029290758359716684926139327489958440259601207188886437609561285271142719408454281404097082597962706536430797593060571576910485380580552610578716671849927758790635378847392403787045869680112441086507264077385668304187766597094149026068327790249332322379253952942957966186047713055083356313659961691818753139393325971668743233446732129948776325305022550706258110278163136617784955709369387975366718479774401770673526229648903667855476115776619327368332027183170550248634284913636333054268857442531720563483505537636956909404119469793075830596973959971617155087372775765847933044321559084113722007228914142873462228579874140852568499713000757554463650234674297229307255932331765813419849386719234592190566265057150476104573546822443419813177152905451314809059915345682327507191090813946992901657102096100064963922476821472067003899133717966999016071822808110378763170805273590808888859416944298114041146525244966781972651139620815689333277874361968617922113814997347765653738275428849865538513560209978067477526111879756774584367185045098433393142026600649593801536189096175436900578200311594243598473474900008937555880402463559300027520999377023657931490310369772714931999458406021090395250818618428440894049258123156135528200156401388810499721770378442433364807972198814225347365778787326598067754041482436435300171457307913890905785843196185833114311827835863306505057405443421060400613840764795800556338042008911530791460717890365306998154922274469844325827476767933288925998902201962518824579387245066506113844289060428931046321043210147285344522844417121180581902595703921326243062506800492006902511098760810599759706226826985555115673759259376489870964674168952255441836830494159438724584149478606318096517901212707084862413098477663218286570143819839493080024494326527330796357714914481478939208873803492751790590747120642303204142859707225904885973313381238880040738984447258263384016244830251992465894987460874331203789883622855380275879462593790718145236676511934656785587782858869933543435168593509174688929162245929525280611425827592707970806091949036933897920467256433312078719307208100345832583972114224290761860027883599753489214673331904813624981129098953107077546568613323528286326827247594024302170765874882286092207632074618065715672605226680797888241969359418548733048119907860259896475804148183631095309150000393499062716605967328720352772022911817398336692440693850841355125962366616847492582225719799506676293863056787452806990153926875879508240132501231113949398917239923995219571597631516379822880112854323823132467424983306424086490596587801717016770315209726389209294591394213940472242391270518744917589129347559487160486972668737858814215498063949277397819364332931006040089404529066339818621718254353029627464718841951023808115560115391438427689106927413285572320604463901186199488325509891204704545684327207160882650186536228081809620949597613630770799484985445610303094679385614804003833838064184982300361124406428175538494250859172561193341545168061533791767180557359519968641120342727106001610326551942098693062528555949221778297766582548777269238898498419609342851360212574497188146400581011705833441552380798311465620223392869515319858364678346614387888026313550095567981024852427927497546453351521863154805451524429527066528981459623898515782808188919829016535589294127286426669226431041144002435580962756378045738262419454328558906776329191498986269913800663044466985358733651001218456338093400260715907407630298268429597561760351659755792773959612094568815265773129517551584997646958179680848524387710096895653718273306898060838535964377713409433071781802219751935826201998397801076259388988092227171064565095886639611462243268755761081984664746833794921980642085570771023440866041358669086604861494831808624399638178954548468262196353740673895719590269396227586699233277876323671514451658542136456898510835954118337345411261160433229924639601890011282611430727365043878557987130811300356487842967576831711296758162975544895325445468683601155764545396020471790316347573223374325205270522673664822742238754827465799317205834261318677559960889108709826190042493986359046293997475847408504362580362070047106072687128301056720093633844196318171572833480237802812696507547149313851065369243768312441370471990632872111653543758032857867294891521703404594166693093502946810038102110388131616550222561198774263560134439408828109540437514030617853523504462653073368027001506175644159318379381452760600913035049739338454487547852821823186141396478667056562214109462706539962554961532116413305603226060803407217619443621332010438822476362548674938011425719943255736218402402083756746445009550902877704536060146111600632692283118773585113851365708996768043891364222434799957081590120798676640308051745608395885547578911391734048631307984886042449383484569802689998578360032581479950268579920425480287532847374035470089414895469054390956641110891682174733689072186561053514280617485862450605663272346539354895155098541067400031045820743020826416058951725946130616886287473243729550215768132352937132012047728920398098190702988185171063945292973124192133893261227424294513963599042100685232846623399195669079677308175444706877453843262770394986458232580279114600723312843114133920002864046582438718140262459118709690266955970556843103933449725214025375765859409977444926763542394238355248876420411547447374260220281738503320162911822285531751298164077178060509023954849433540403398566367658678371043514290990928961174545942918800579531903329111288290839074183685793400848636753745200708027183787446285854475506014248815950646030088797406949504239862521076801283765514586384897548642965563006110539372164781789967197496296304654231170028717596950149384337334910211725410970054861387824637343254496683987457082310472406588541993413889917252688868039325340318137317699453424379592366676192853669890922539576400398808829797282692975657454160669807422732379391737321661199788236721960754460726495142073667803353114992430354634747632581214249884180185316298341248012569230248834704355776947150150369180412610859527069604404740139823931737252081114835679089620775824695371287888913482695394755600917226360526242499358319933645476941099009372490207374738803730310015380847292467171901357118853510343626632256184045370429388078854552018698339693680815930954077181579521613857997322350618760169687775500336663646079202753751435701941733831784208433116559607176153086793840540600879347562648277646664022466990829536914402541634570306547097323761156183409841880722472159025372209716812159126297316317282775043494741963858661135238094836431695411147099723432469431228166574509366511530305322989874554764689146142498896472796080088955255281302980089437608067783625209239541839330286333850376201124702517692168927926187280190068877200239297668016727944272918005576091430230105248060492831842790367377585464890997320074939743325788681600859215659024763060555804769469737670255047405496924064583671467263987463976979067437930836487233504385338048015228555563209123489326667474749889816067950645940675148055351280969347123151741209676766973569036515519086920598178213572633111558991182325855285377127184314259712619104190349161908376391730839957593346392175351465023518077448632710256927581701864376696521781017343967603628269151482319320878251211067094304698165647155547452525608215326633663887666578796131739996562968293742927907923199940541874924593357595205758574372123680052654166359398833224522705588374149052110627331637491413020318816213562205189054628843563004334416702779314603819201281748694994975117872396406828923866834498864782985305950294376107597401546302877623002666545618719346354383050338415995511341263601417167180551659474438631994308920309305606573511479170343594992751321537163829540350903661688406019968937421449062577996145127120949940527909735270495201902296094668748143106579352040703063116578276315452179947283048079302805760317960472113350947863921929186520298646930495262049920146752390460144107702757523194895437683366752814905807343625928510314898164559249714603046157230647028168452971554180736101504293629627231264676004963214439146516757379917512562999942407888078842265030225351319055311853482651655679841943676379050599923214785388600737153668919764879422296046857699725834812533758571864928536523821608869465305513100168491475677026288590409920559977524558477636524416016129999179891336566666099364636160312459527988286198674364822633991835107556528607140613751304521177248153932162552660550798399014510703393828044147154280364806327996892519211739127046121579188141052178878136030735125278721801895965307508754793696132889967678028844898281768623703605175654153129979420370602246953282162352451853231496721997239025075041425900207856617135711705436427027704644893369717575631463600123530424348130152895952275844383350867734358015538504670052209268079736462826634634810571745349581797194786077097970769736836255263676888248516166402141584544852613699224461632792974133616471304587296169078088988470534273962411456411800367591640454189056114495895772450349346091335351500040640371936802104788512886998293150349023843454654624453772015476382151854465917427198693318434049073322836650183468249281961476750053206209506698636217568703200257164392245177994181966308539039913494741343855713823790644727278443551495544204583372486157429072927149365010408098603161274248077448883404976369170414453863289648663121645460162322686599395136587482584431524474522865486877214030397539947883897691693382638793572555241747248824471660741144895835280090277237641312298572224982857749399463949142195236364668098669309669303439063200256143024858870144495333395520617024519201221136012497132185146130498241949060371893037081250128576102711908728663383000519069620370798442788953892256987762002135239833407226008584906567399362549078640809334648003478373336135015852595385164485554076322200875172640534772069748456447415260920019908400461324821631656772535665994631522846649318172204126436284296830707414811383638921462488981113477514060652675362616473415247201967778670569499800607891630423720560830505767099824760195207495468294669964942135571683617944743193320505433274921578262889929561700352975267563526298283584547091506098127549981433846884858275133895417401834315268023795330822570886527203217626243890981103356288532237999056597009139481209101127500731534285484526791255686049889005701109977026858196378591275323983305672446820504637151831530752606808209564787606335034230902007596210805982356868228833892239014244093222774771156346717636508941142744784069405430063094877776302621834498008978870137084268671574940972846211392753116449987012036910902419234343025508547524948877543120598456955192545452735385000073965886011662823418510951338517128961843800306517231114813513503085419580941510715066951605136570650316609957113249009014795027558294029031143330417159522571068739534090986001192882800223621104158766129270228204488914836206010299177662206967976753276400682060796441145014264411805198369393699764844097404652955677984182676598398648992648684797492243595435632585066818003825575653780622712500970400506181790911882316288009161265350801743150255094877587428908264446248870783433810339889967189509441092981499993620956159141550454807381497696093351492754997030902031354962591757013690194141182858692866608228060417806496291141272052539909266156433163314386616487124590192135723010941031511911119075519112073439632644865363567888563249990429887547014969575726393404445086670684200332179029858472150466165547227161861572582829112607052946915465787352063247031668426858742933968466541225538154147677591149808258663824275664695360478198128770138401798397444247713482428410101984094967251654770488146016869163634529479577509710342474343065198376951054377693767563444192900297218995644778784081415449002374879578257679492479898253277539770437208288161806331580821309874055740598489197582676435520575483871139535934504288245990864950671963584314702114569813026695071377420046358779159513223141160462478555631434833677105899652727993686006104938865193474142889010339404498918934510825230923353188990151939616627031177709206301743642574494232641013053844444372720408893913996044767669918286738568627726461245221355859479529030217445048882575397185523778895502792673065709313938676444820293999813009508194702750710156904939284024290122564415671224375074574645268956083735441753105677908109896149281718922347983605048949389832966773003133054383889884541410119023131818008544661604762667103189629518527443456071757028859373561728681798890155011478414192257851931632916783276599091654021334102431813969591991460057361678071967429938039024309963138555989886804705346042821127911873408575507863898322864863473743508878181229700746049302615444351083112652546234136804875774186690898870629662977956509330974329704781927496540286428385590043240981142435037986740332719683369469529097926603763447904749434094880131060887966732820721619230157732663306943503849206939893277578167342156293460592462496250326300500411211157299657765809957004542884054128110588573789539561555525314114305125556050427682531569838332772224478304415071156197683957645269479054614422354848328983799553400570696193650539119889702527377732189859366434104533439947450054488695927271550928887228731554180129912721284785535953940965423276197675946997936440044294694114526367798467883700779743723266041494101115467198206465289115351166556629180984312925837293895724271546790241004308813667372191181351945237218465608200094462032834672752970344113537714472922222175914606998475246289737469534004963565247967133704434330236842531925499429467683528408418059304280767258225586335337053081301253581071924505699881102830842180012981536866547087522909684043229471157648695695170610111807768413439103545466002125402181158895744606923659278339222209134999399568979979648311294319249437074487902187450391075576075008564621287738188303012077711511202471083759941135326603080941591335685055672516537128883963713997426361119463413907481843903291898834877079780742238251798479499976330647787777403587967459241361187119417934600888810307639223362487327933288145605510380529866983543080321172989165361288429729908410339910899955981697429834861907265266329148334264717803450644582375470455984593114616181397283219310192940462934009726357554775224006503907332827534789226640749965674353346161955187342472035951732201718722021510875514363143833015944251161928251230186626540020261642541824117415749748335123688551864562650654339081559831737965932247897296782938406686020167532882878528942571482685525431396328944485491912826594034599156142278167348927458607264666747011682143216856890885286267128040235061727169788561898424345663772710862505106485728975059343343950115984879489418074960787318270534977978265894726315849671031931218439875066659474907062029465759526198496207327896446816197217978744068165308180160803720095416497119018267040871358851428225437976591678649401680037455326057205351317593628982214588718226321169178847853891806815163298959096742968256007020094164891849809505652649055182154252372656464090495208782078207871178403569856331290063342368131699822959547597890028246953322699217375537625797399855097196658509045740407918834869546229547998453724303047645026593062171080622341140263604874354975998112429364304389105764014227422109670262243452163364400102686370339876787640320196106365700093415646172457832774024234526714996187611371785661789342705090750001078587141922626815914996760329233706849481027922993350262672589728825070402769798773681873029967423479715089384290839402046321052090803300265037599761888989489077337128528547377476306380899727217853873943662054819712128127862802459971939257490805198432156583350717252009375217168054975539524691051119215456586138394036883969332935367895468104219839435388756692207374380154867708166941806282561660999763471311281615640244051127310830048432407468447321035475546586484528617851448780439428266760594306216603747059359166774556202479070548285315885853329617034913525064551630045676560289489421622416936956409426947714069450737356198411042397384346870243646350223481630595834177361985850556711404340806251258456558516153127730975185186346103167231423904707992955132612013193066595087774528129537559186733359732559226423818551232822798621561700007397742602466861515610560748732250713704505481643657559967997257154886498015044019667845623699841742307095792353323667445435320609297527776946769634620375375883123512583325414765174754058435913700954235454637703546614827583047494141024535480031330172223757651122038154077085998320457663303365816904163111036922216371794634023317489753364244298713781997569675680790528671275918691049585382189769414920339190306451224788958350343369080382332070756276372169556299157161574721817344424067727517977751693589709166720099782490699367801729453152837396243948324342779865658444896674109106352502556950667384897592509779979009516792430105076145331256182669749211664920449038485764612438166999006584998333233755069481514278498753552943884093380420452264405555347988896456223534856777746151526244486145627989611675175191176496456957068464566986568350743695107876900347738206232253717568263359835363254782102569683784846005141642045762413502745294680747361448604682884009969363872061087157126454651515563769999185582359232940539479990863274736545982682136402208902608583912525366764799358118029103631427987651711595651548296397991748054983112837024300788230720081427180001267694401350248313646025086240937894598292423799335320776297556908811782646227142781057293420994856150510891898886690023211476970865168274283558820372261778368936962075011942277527849659593308111445382222311531353724432211377960467452809054254636651031393282439213458706651309360372210895040684038312781266674093638566957595484337947597018699189919324996122808195033354581579307221225573169412991996035052286952825292514058332737737916870730036615780105725347150820334387195774520730644073116994722453522921199335828965190428550792688280064375835276166619550363029796395786886553152013454635077169727347886502067682228464034848192050208173923255804946427795205452125878549916618671151678741282928479331646532537390930257821452249956188029517779565076240945885902099788529810334922025634511774496140377640924669863632235311517614684198347813939726804265851486569765919806791102253895713288296634443599248905864324619895446483791777392711431246439634065376646895896101602934380893122194996102146678041159804847455300144352396714531597710401143513649789820266220628814301539742254082868322731029103198190979841542048004397169063557535971050543275012494444621887561529950289234523239909983942676464629891152626224718949036266434845789780912140131028132178354824865743229585310442282680355792881521258725951612676254075028620942096858168314039775758249693759873200458939961040186550104126422522159039459681696634855488850690973265286244743766086874945307837260282459106879357839922789976844701933002651197030282300560469144912690054649435418001776361869480863240287138092645489225798800054086973329068332509073840588587536784010034438024009995692604012074975197100165529286442980856520122057499887909030654368191818564051070524802553421662935405556211914286699601499357180981269874143337420896128431944373696796674221677938306904653522077016047716548241064671063366967875712706665176103084381333292868765468819055018554016842935220883432695344219532376317579536286965446950505541819412822900927412801239577236460350122157924714463728917392468629367223547289111636480924072343265599701515203194495527857872711119714788509065421583562872266315776735322466389294917012840368602777701355545610555626068884926136628434476863033118625352989652193744567146648198713478550137977961465288446212861681286270349029176735764663280854258596290868692138062532904538067483908650956733791860364024344608479174536613524715634165505431473837912879948052388253712236337817372650140393277260211537751967181088279602526387964147649317332126757489080801115004250321639728943326939609084227616326032178498273289205130025447899460235716344432855151490084531883199895490917139947930807868916505758274109318575131980537949528487686461724295453549722423960683272293050952242520478667805951564162554958404763742395147346768855882563499543838519092466373536694547229645737720658464975669804158045814198405092581362389616140188293010711606976187150528768199431903998081372319868235669194224493270186150486919420957777287741063338101057661275067337808224065080346860950536653835931522478304058825857169705965820438739394910701007287112261411148664110602570399390635794647437286784273380065447908479234685336824965695758738325462799717903048553987131892629093689543708699061142685023891878862209282303033014616564675188548942914578048384149534917370951624014164644100602242703147513233971337135395335249097916996306228453388564274608504321642412798536364552258003279520736375193966177406512855146410592887811168809335869602767694001359888563189910637502151276668798511758832694465981344706272924328327084408106011570558403053686114556461936502706735838892931232146717813354157717046145986845806975224703189540922235968719653376511351922885838095250803339023497449770809397254117286173224255891492983494069821391701253480598545177669961923822135990908212974360461703261881292898913266092334501587264638228736227938235720039253796308533497151496200956979527570018198146030660290415637768095122949204188644105902448772017629533505946309253372844077500186918191764363532890093216396231867257644896014984010121370269469809758766212054315149932563214184303739990440360409304938385278120523382954169570760926939818125608488220670218887444198725350624741741323333517017337485532601077087512726628232175274994416221698831046065206281733732878215086700008252165478332286608354736950626803992433625239031056690192603319136717596209998724986749491746896236512489891453554803795159883587710329619152842310914076261991852186361181594013172067817433611374534437331835534482548048430397511494251781440193404442640776570404642089889437108306131135833939746301600626103125911904265902144145326130100199059105478243199248341930065386728346951812598340956375342121478697342311781739653909507635052842481896049466855330732193011282344840263266490393385958843030417782339295774893885059283945760788607507431974871176345898733878460430161593399903018320886895135174877482680734505326728652188805249224298691222795058454817620599644431988095820130219669492331121381912269461253614715198062181271022442743065879583057667958392083748316528884908277238511603897476077505021212235549470117411072698064120227582262719374527821169068754545668279110780581159316687740311945462849624100569513266013598713262606488477934409750990078121455293198742613398157110880368741227148529169816074862194459400568186547284598952513852288260624992388669472707900223738571749274179324954008363164636237101515004735623208125869526761094795029648228384733775268978658301995951567601429818266910563369273790253615734179814047891756012683379144917252884017108835274119219253516875621657102538605653356531058009459450795992754544948273278400683114428331419932497919451996495262757248329150047953547571089113727835532378871655967149535527621301917087429111602956054971969770338558679571205859090928538089092041367960428008498346265974330241927450684215706818718758030290885041511663177483033566874177688644009791044063055332058979448057811118350583963286362315865326071162319131310328899501636019201916029729660264064435511829071284174787806197917017689367439251676478914209579525848769844080055625666411868431948417707695101718059185888661226573797248965349108300060915811225450152844485852436967172054867153252665424390341115330364717363934505607692441960415144756247374982584405750497930556395400824646890270881692416875245282443859421375608093030210024974703135764303636653469506137952282011501513737195946691393587522668096927602664824358437281368479493193063120945960719774096502543020980955832503977977653768614746856633868131458318842302699154560930471985482914710304974808889383592552937636033754776253883181106373587290306493164770378744381593351721555188327384171841373259578470157995832915510537467189503055807818661487246632799897770009129476028099035205734057466537288526982049818475518300302495622247307651667154054496778972720773644299475256054458976446572115003928252873464513027371248155016341729563696551261214863507572268890077940329430798171541598469557210361415903921022745761443086204149526906336038300236092724055380666631007875613957938045710433023430778761742439572456308655541390140736498204769325300299636648890534483091673224925872814148087640162472597556016391485140901848790925067046950896541458037912319852917594542620634768998824676960140708667590551264406683828331974477123547633691124337910033816173988429027962330122036316999882669275318218073293450355561096398804060633785537779051935876219260555029089213738924971930509722509240968049555562974184827033801155746047022403778247751652690674437814190957420777946532351890625762917387885684772957082801695781893252131647557977168306716613932623950258072285579204276726274805040427273178502428331404577243173824988556917682763063583663845288647795231615972651964444199078429621726217300230967467684485681361758731537659114481117314086221678216824413590180767094555137732721889665238806977058659350166268009965127745239853970107973664329730186697717423370144366414354055042990997248661670366545702645202665080601011821019800212339280647906050778058773385712137711486376332805419754703076674404545986110329714117001659943219853318398864518017516411489361423481465069218357558852279799378656600403601965814708654575988544103597367167726450672484858145735779309135232934034537233746832648897995276539210511969675257632949922056122429673919202891247610107935149042894667768631701685300589801555727846939815024172189230401563685765953741269227808284350299927513953380178255049191049082201148242735255305963050976457764307028394133926069261028235222586727311177833843252300917451189232716585684171692670494397998341002485340079130990008541396682084112579869425366853172039722000909251312324342945135774553752295653152918784034734246635438365776067018098476670635841611839596512172443718141949467153621357582585104637682942933146996788585608027659741323765761089666980105444789709196127498523028870800793572589462417315001241432256031914335531271473376608046983396988519588683978635929777873679901928039007528771388116104266217923179856983652481728496231254237977767379935897259552254130438239768208617381396375927778525570897713944036949422534959090115228704493136834726901996969480807927495672259690050850024114681428618931407408751758849060148465476748810459548253003575290686722263901797587168469751622107577565823216521292364644192206323722133316451584281566737900688016073577286802992422169483188699074257996327814632486713785722195864698318788381624316569487350464242418916057410663277503691551530737659228904529389269876373134930036851951274869559512375333690987355111711107230332493780727732571816504781648538299421618366726121802469490862395117840144583481648701834938127264440940795152540730581201429327683370342780110479670981065840840929359583331929657889676280717389484539063564166577110801209514949470936332920097730689366095949412593710367680267714995505121516173491305075474655884011124257948694565308113597072144293089616086186270194042846585127280944572257866062954951543103746185549768678495821152029302281373774285687307407771355652551324265244795020194753167913021267826271155648507334826494099270498893454096151011255368034124731754846978879624425043089184656533823056178821925671775812903003849081055195773092685960084524990120558725321291033694566003704977088881029220409431590307641313102645730503644354329252307855089611124471202496702128483919443292764860773117726748804454894501292296314590709336784266822348160162296939178352002291415321763906220293878898705477634691549067271062818976611920137220059385987456371859407363392828735642888852848724019776941394902456614416283680582489893692005326008411321240830645866923975730861880238889705580683038803807165391317390694190627549533282105728253739471367648909454242941117936694129470249799773462659874055328488151308597996797761582088326086405263137492223050482827671225011435234667522614151133270929054114302854827384150025331129775810046085603879645899162389574774725451392232932879094476040380532099738877818428534987301096239250372719131420712620587132169922372194269047600592194129851999700456925601044004592091401762744109296779169729939163162775259722524926924315746088329633457573553731320212866046586338564759619454249459681951994637385498400262581037965565075357077735757614412442174963964414788189992837285108300099185510953242412194824235173280289589090418666171563268782378610691414763459728505628466427516496700557949995344405478330261386631860851128684690964409432733462919677076817062244259962892168793265368294081213891737880205698157636890994040084353103353004254982384591774465168815132541069983320418118512130369626601661689644719685292408876694057061828391821851850718167658328736834805161699494402440920363906620662932749898407941898483738180675014675799700379123582867611705667891564482714071388315180786162904265044128368917478849366791751398661395731990041273584182935106057573199022409420498052019944749311567810829373507013150978967561161361908191928943634058088200270153035242845820860076898263549948291845361247699939214864756738469781183118750680480407097864234055643249039433445118101505917658822438298289563563704226186154504185974452388570333085496013607868896929957122887762361778591737219926352669575986059592212101944869644318900866119383692597006393194590242077936619274223447707994296161154414022098298149676850096216648204772389058148611030849391595771430044850100682289402969603274671401407670707333304723503349491351752908046483318991247169379559500872577230666244882309394180325371119075453048398635785536948669816962512023843256321378062788548055144505527225568583441138917323604365364257244556924562496035164686832886155950145175102789614339302375724208702759162018952341713294699695352593877711216997074923418102497171614444711892919123137021739567117523978393474815256007638440537403759200278455110204000832641108929147339553243182877390602048637205547422579843722497743988228618716267418073311592154469497819896023597067991881697821392830086481965008579319531215499142732329992594335029500502893341400386869544401294177617094831281791906775476641655549682754750148520491608919631592414293916434177737858589423922570880669222183641893021502517497508416940228673213217848067511235082599488151582349765641640949146699207575121569609005929421441238260120158267898794021490215213204331080652598542031129649997659161121630372585953256867906785983369553545727106565913997669443237010436308194178562952572861615436115478794866886965420136744770068785595598699868888581389751037442731094060523905813368475112784734769437877617889739392313391338634669551731304526880030104402369141148102414794874544792672225362727595477853311955618704855533539851438713516239913004280972854897011606644529808983986865598235955794610864667308726404611198686045923922909287292423999708871100033609369554119736132308289831096918488082005491581546922999634406342646546921609964096808234488331469673575365776385989090370520807932258117451122273286521622192080383817996291548153512858287403595382566639240451463913717520996988487539802410740968762991205285360302602320041678893237501799815206451968313010531963746187633144482655286056528328087278821647995585492793492779500244550332293708097728921054579306668537973894543177642496039282013667782724812373927690022722416974187183206067149053513643022664719229860855897028954442253971012112686673939754261980091689948899381684619532082935595376022403609799071802267166762485473990936285404738159976988325732607414124594528075272453981284893538466611767058750985631533722464865546001057375436799237192285078648953150739448733831384523693791408239985249637467029093181617986786115215999940139725134270290102432154663327267731421730658579490746818610307865022581643834763313897895562971985765734860884146379614828476940669111310594212288958274986889449372409209715574355214739535590285342817974534873683536313869251719867257803471117048796761464929461740502502487302534320010588245265328610007762655044467177560361617885852748578125078449554266488852233065581424213756980813900503615606057443330281336960374751884546637516015787115661685577980018665012513542293329691716967266743675394317043780475688335008240446374469922177344629628998018592816275720541420576865350821143721030735842469505507477125316785945333066983935982983113163677503012035121975175904800011452475599808327060812952614806405335376179057449121987527048069495465207319546913557049204710649649657336640696188301117909383093575934796959565456975263193343595068564451591198002610429033921947355797953648088510042651295984838850853083373146307948878343654207600240850497307853695632946335386699050565249543750302517924632230125669805337224417317498014827016504957206002871074150950266444001001937664971746514786122648682986022308802727748938822466728893703856994020223558861905711866879977383418607633848725817408305404340178144152657375977507310610437191989588448172562472826772324359549541146696413605592069644692801077980415140055507354422339581368512761785108488312619124836409772440137437819647131521696408509655035835758110668361100311209587857639386826509194201281416616863267065590611700752904427461650099869144119343180992424608445192824062576568620973510959657977508299845912975756352349084794582560606702558531701362147998216994763439828364255027758687109250685832363592704792111345263685237275376558668893574674666270930640136840184770446040804151070104536937747951344380658585809820341359473830552645093270312430816768981372251068081839103591582203978494821884264384765985720734594642966939399032310247435454019303226132734901093511776160536364646458043742441695041972965928087295939319473164339621856243673329515473836670451828826616588254159964980362525096920891202468409340580879072109841346708774505434048935256825563497377713120307976258231781533567152432593550186302279628893255184821057870517741506511934335723896196803381188734466235495042537137872253763018558084572462814192902773072927431562456100173111535420668466387030482263422739860808060667335816210818453191952031588361240872724111387014242945866191420364510479643893850179358545574506919164789815416709767311242749770498027190230862757825680742921362451746336072926922878633097601110889335372233385641434844084393390065093662901479804890824871398320838598798604567434208577045618204605856723140759717801730325006987680084980504099435617071876037224151635859450492461836645629070512794089174524841276639163687999823651586382833448720319375444776236590419876688105326220726092662116672095814388068078111969458346223192097143232917577516420843783826589315962950427737550025376050508988889845874033350354715661675605367426704172062622241810592307614711463480752920608882111594002780455613054492159795035487891737566646644803386025602773949112943363974338956096493004018543267783904661654881951123597965334032150029057082633420713715258778209611172636186794702079395523056588427174976907348664476365723626216216194151160435799125498457532092992638019040523286732274079986104177346770091895023831191763287253415423810974762079352097782110905727266727480241617546526641490727812847054938760803572900257093261387665997063740397237744836126888917324758473433695946325631675332465885243140551404037366808991060404880969074005673275694875631045309929360494408266303339284341499215172907684602486218268511527935099838933468502709022332213642188752739158049762005331811012095657492928532722229968725087074702024411676132718894422548193894208767990089390134685869402541974829524861513256458634577712152568731930625349586457346213837064153995894154232533674123945930952736014785015992978269385253997733463993966075665603406984771856863941631049966337036112089686232813899085068091172767519754363496571075908374253073993701171147130974871787473128631041848476932070952325206002038157718039064181878186170683541398748028143677369785068963104315136347928506145506451573547378746598741561380431100377659877630514514977425423504571950215762469936755210337222193643396805319587631288793567175180116314429790339358838413823921114018837837292789578768732686180170605408422824478852669554117712036193531927956223255591878104096687721274505778722771259141128954237780570232172200040351751608271791240075170387966806003951148138293621601585309114228425936683275669689257158548071520504843760503437412743359208757374209145601557044289458799486644549015533568926303682884447883343742163124252704178407949128831682557874966026971914984739354993171576580578596141620784542138417798561821847487604932021724250882210997368457210325737401176550808571800324977957330256498513320598766892589804360230565628044553392574086452410651419937673866387274922685834436711002042517058624975052277694428403556938390186417177728720800264965687816440569373473585190719966597576359280569731185420763658192841235439500157870680577045881673263658087304997593168112666991391514519380129919604414653869034827612541246916216676468559487565514607511787992878369757688078655289473271813769066176571841976474177752091010708156525447630582740173088512150711349777594628160160540772104116241578452848223488322569055608301929068465209414329469320352525945160008960356402155077793088378809400279822504674074628114864506165296503321339335903857622983043833191127436976809708648670369811756446600618534071252814193909037880708445458095303512579832508544495647016975138195032261792806210165846461921694069163049724543061195567354398247187586987961981453918594874622572012957458918762609214501565581133056866253205745273061988876728610207225921462859219861778858756193269798160956316556417217484784000959619470973817949375186448218124227769461061600658518188911445136571288351286722248829596855576725346099265526712470372744110702902434116198314279080744283843463631580286672425335998174149497311972992175948108630280483733846201941610114080206181805736596361646108392509549255362219311678775294160965099151967951245989451181992612780591565753592821949101467892483082844008354846122976300780707070084642987565529802477706799210880990959478501591741815234479580081310056458754315490883621356998242587125775970842027169844011372789987500424823684894048738216606388073394687206702646785127408922367699164270746815194526899090058925201909128815486988341809377186874132517676815027439206446206903524576005316960050599317765664966774991864434384969203939515099386232026658648396915281229622719773578031150949390371563593776793387999308973100068261285819496193948971387964908685886869977087127832023911226566179332631956095454568695080892224007509783241760639947804230307677178103919452832737729747822151418020290234440551918049844941188168455214113083059008801882956072819116860327810396661995728295276709792256192238238030315146655122645912220709178267277834741238295734856569465650457277070982174328778281918220380697308128760648969502370879859385684016956700766304515093925136059389876213372441428580584453540959335402970604938481285836647101884976421167436820127466726349609908938601640279594736122845004469659346051179326643805930393707570302413801738218954681422525001392541715464557704932341868953340880797399579985683644703253103335662746230314064733466740196099408754908055134864926147937289247259053987613087191505629031723776966187851765159567194392373440261741371502849832583758319858124903929719948449615030900325569811493254884824568675527341153094447884165393358948872357406028637976497691385950346245369050948107446614921810947542603364840967973755917970858980596134586562085826200156274304308764592789504914352279675766424375472000248083467530016808570174654929267408670854384778925648739510967761866792786348739714458955235620669186671453076708718403628247115731247743670282107009864281534850442703599280546153294522045692220372968850542533233653395736986409535282506082827974411122452103046570124752854315244399197814919857748020249661548798986021218482344282352918973803105663424829319756342958518760586096616429352255233582103928807958100145484731379217072071882201014209675529447750526378926217004847525569009501056856366456279869360498161365609399615294910183223482341677241718611413589193524205373739557968461858977894613103548361321100998086091815782082434337206601714413189675993857455916005706395824658265966059087463694912813321756656884186239563584646826471181902094134631742765877207497278219451773990805842147153699576049036278439262855045158179228507158261145847760499439666404692929483995717145950780456065109289273579552499108395304947106653460639773771297838050367202770452740527742655056660969334779321228408647306452759657229548769772101874483977488432033810339493815930590004287826365893774775975698046714464820210058413863380721497484877555763352470497036530799337788217951521077023982890627609600177720698759813607790229335633609791048428469899590491330310969031984362614272045587453553203416951833662531890488799125679740805677070726506466185122392366714695915430949664724858992155123514864377832712404210779300563933539298471645128720654554392391109509494710424830608396952436005688484847190014662429979267940514567815994809460114742145580434263696516584308177877361645012600109357060943256589831445079178762979239960696412811486664446669802780803414021376013187080328265082875050439086753176702224403803839123455721921891506506727823484926268508409897990864755565160382816972558838932807729376222331773865769375500874353755840644426444551030374535347061522448237319551368908922444966672590885074142770462334813372107947228583941700508618267309777901168141602384846182713568494091356348246974235139951246512717529778204102116849199364882226161912449464695805598589751806791982456249014338074704188036937505636848415878961376328670287847572779230389861599502478629787009818166662370898460506216911958929032089393526173687101752521878215985031318495023825507630278157625973429278213607048052087793505393022380322942979868411668466451370957360411211416413912559464321102736303568556734820188862749442907462927219777578289812790385436943896744780797797537222753496096102579878533664352657930502057542298096127425660174334001421563459406558053741469229977092533880249275071121866092635641027328158803924676746044034528730914360168225778653467253780711182549146121367980581706584946773505418709568455607608482860721390368302243618683450047293961375872245660970687488073320207825638922549887180289879443357375135647988013983751600004031213320612204504093890509605054642058018163828564471239753741613510433614661152312191092696462594984653317209295891062976231205231782108790042356970623321855538153722830554459071811169545338348775301637377372202410406756930825116465582218685233902158385811160629472695492891302698123351963890776649757322924824042963171815814631498948825252031941703874458787872809694033672006500538781622908708928952493201649846978116672844437778742305368178351479612578734951114358444813287624815724829926854142875030739308740763256477360813250221254965484157971808298455865664029016387507659273182198236778587810707814676977160982073057886807598595208912440808393333801807173380233455157502093011009842288429987891130504535109991468492499335364535580281300810243036806395462532154167672126788626664881718171711011447560262950533853618826910465997296356329610638263994556034256801681132920276773820614413633719194698841433005200050059298425943884925704001877531615933171374495550569045636703722827054273138831248790381986895093312088357772979550961671464610022989562568382972150300463740271065317137717954687936733435694530433280219366415433464671078448117126275846049224881733648241510528069834463810524713500783574659995428006236174866009512213901783028608778224670727718813485808256827355675593325567665531739280359896797782430212682992023580772849878352414217937794740697297181002344352699062867286436812199109115941777996220264948205972694602645396138357613301310338328711901757725735741614367906925535343280519802290721376124455626887625901007937219761973736455958630712203941928538516055404643115195435447612272635710762141687473018210793965931940392192198342106799955648545969915927765832413664369423484325387497937691580211260309907683741142310524181372344434509165231791164544202081981420012345572012678861603385688201621764619375592003246237620441834115322383008926423516197576036287497156627583693148980026064951237085857335090990348011024400635006065509463716027021222245516801633901053910729743394638798661333945764673424140541029242814585759649046272605993806014659287082392200039686973590475241635747805835548952902820317298457332317081793786246387839920559576700205359739007906651079075202675972577848971313779901210627836127663063149753714853395038249151014796294481260685963061703248553374804176710659332877722281967562353489733557252582458438828992702018366039388554650774596666924054185485092762774080817633961819348995055762310759851768438666128693412743835787850700250618241497314166731154618700792856911448139428291134586465093377818483788739183135285603686724876366591310410574332643074391179757148921911085707694395373671049302134160171434430091642621679035932286970934893698053221175089347004185937339029608960346583468823956168087073287555821203005176304894259108110514598568496955582859729305886716953659513239944128826907341773263230881509009969913717900891221067657052309270311657272268802149707458502842801711911264297842652989217228533266872151549773382567249641602669653000223410522916557685022425183962953261284990949029200495826034607110663508707011965290976203983312515661310649161617249604482115576041303868828946606337055087198846355448835657040894953606610726746397005367108088796938273819048916656582955842800423387675211090985838003074451905121141674894116664768336403161784987236109057532242541727038779513525916971396006762870670305946535096212590826281863466951592688802670773800479243743065169901830777818114859464443461163413196135070616694920252069344240603640642697143353340832209649365748375915377405316622105383994480545457667308453835075059063515522802781076744257182941611060309639969100572298238014939063051618516044464551349014682649181860055143921974293415745190861748976594020856168217283931311715475338568388616140300509614764541415323050641706653958789690466451730392545159351964209016297836544317053582797157879094070153245235436032626818382018202871665910040167248805506856673703363244105125681246449157195191195807225370235824644251006962817641006047545380090772072685777206712604234690008611860454464074741114545604297570213724873636434466726486551743330224883366888070228717237123272546972541721752371658067651998221787328725369390957115904918633969303435761404556367440353615128784344201288207810052549003092497890120149888950174009934234485322917300168426749899896391706576402464970496732825825572699696984134675397166149987244679347756194917318318822221722048548774893879434569118689897166993763440519828887435182690075963548590291347277086012245027350784993842352865256635911205576661036910813211010086433235093633857174970803208761941508861892321062152746384699304976941878278103821334554853895250823770441023222747476160201325134693476699061397396854055549625286337221327459489020646505208405373648834024743489819968381552351096269359153024910996061555577288021724406900230997859077397422428974919871432884951573723085368356178168442773475734902992428440814910810065678266073873230780103611144777686588547849247348322804000837773011432126041491155893633070337763159253482831587206367948307004750854795178847776797152271724740599607225941709264613778375525905368454546124597808767700447049674655658564762269626657674048802967068308573136803871345971337615775321457043963430298348394505176272316835553172079309954460118213142575082688177032420689493078535979942208871371369117615524558642364736105458520697914688205107044233027528940899044076228000731958166205020732148919266511228252184661746655500034400350289469873653737484857246290685693827897906189672157047755762289264248441046765861685813484073316920051769904259824376142756210807566254098098963978645271110872963824181407875717670357919210986074441399922487759800890865847348466312166646969067641163758371208622880873120386960908039522028645187049040879662798000703916154793745074807184584383698436944802791293354000037847466184073592039213038514507494326891132911967996726960877216331906155056696493384650928885883184445522583628936227739119016516333064931173036749782899750900721859930269585696981027269167614761834299492428199852442054177755734078141520778074541164253765506969226507090576151956527252131993141064495469164186697057719977475668589003221262393833631303079196923710416566641662512245681002133149439323373908598344632741853234000923176123788652813415765259541171597689187864384155677035839538040183828341649516370066576044535120553480498989676813767294734467137898076522323794062092048533585761290691872358958574540159128169925952434734538979040319651101598877234905453271127624247353180214215267484659033300850832318838224788544808020022356687324103591173515231272264394767994482968510135547394108933293730264344874366533134602662220193708742042734224462401242221689946762030219602585360236012760506434978452355767989927657806866379992262376878828004854149269046566707138838947093474288562384704147530997576583419750088222544257153914325481093855181919626585619337655767002867817613687573322581139435261774305433612115465317571139124908569923310271783396338786905861202768676983338549375699383007281640331583179688589007567818838108546244538196198750536491064992051320617610960688466868449381324464161811798294406386778140079749592388104445991650657813044035967550955898293028365762410278873593804869067513537403185844766593057166739118271290119441756563664002179624870147190402049340315186729971447315326703316163175816290240374885841536062955908466643073699004193615099225867384968226066383309024983038489720219883814720410618922325151782656723190354784459857184747217519723210302854270904722670789957880241775599183799906474756246052290007860354914590404387950647923770856009558216550338883971268289897978502102064228477990609506891265448893244127124801730115393809829281976214228553008473489774570415277616795680419593425938962173386184269689604505085049039335488253465546954306904547239856166988714251755359196557763457652580379604151645473832797382142373251541697173275387248618622965954104191881546486073112210619470185149494275814294738363524685635961441854312966339050093469146643560799122068486040767779722208989838997210078148769068157158070453697741255512302461441602873685469473748930452831486730829281490527675356120348586723936021272268582485181243332625061716026554631987981022150969241629212688833043889884059136047767754593291010757558421824677044084584538867464991277551956685731468397629708839348486743285126611667233616204626239029473532947216666839713695582782172549507469093802266926395536418951552216849830117250915497730231429372097358552101185639548850034535086806919374092227033827237911251353997452906895637904060804622744893558192460341044315267053842636345746397527286474160876400477463626146406103020418803852027430370185305196250502593626735005789158501919179249988601144535886772257349358670910083784700065920576967898894818865560971614694632880619436203763928536124287753574548460508485503052113346798194129163340987160432699107407800244020973323244397933722426871041080225609274440199308053183916316981134469063748647251978799257944054071386426231418586996396861905390295246705598095682544928316450234943819317044258137489045317549330404564871069789998698668811145470055209813227357967941278632316019335072028717818584781160451782422015549300910395023020681439312635045903655169942256182933542495798548871976020320383771167093143105322157942100663803095015550126885277439339029003339640603513330034552287012349313078095904737336976277279512886401634162497228506432140882346986522420720165244817144336128374733896516311513702001947641747339763680442339283085013038268330920034764108866964376535468296591140992041686242355967356756507363273970746988530955223027812866540542120554854662613368293987185095310994010476466071114298544379262925676164354253552606220959716926496655430179783255213586638618044339496432409509233550222801188814329970876329985153367522483659693596490717900634460406069482204444396545176957222062709523127739131780589046047301631046486391028272979984974344818321678857611715325730409822473742742959060206151796658897931357801428945714757476702336386852572294130730927520427047988865951889958492750072210849861329724527688191733930747986493608355421590502864546398427740726803817459880420088942711299482512156541413175908301224194036573219503792796575663451022349078508427057484420539042750499762330906559686425836187060618968870387466692896627080891346744523765652419270047665677507095936083930462231459045546900739647699945526791224504413611726127034972695595561238779480606653146932173359144949242075134935159018281337459240435378533329642154787034266906429816737676718978155603340036612113657022659451145702800462447513795871578149209668260235227956074496972989439423423933944218732080624286763335484778830605501655987380544755372616687105132724185545460343783996396911244323588858189073012939529969257725635661427333173194371189615204244644397950834328412253740003961049755247325885509510555724923923197059467442166226157090930681126538871886514663953399530505562301666513755677505394064288511655939867928563934894552428243481198393662202981527564441655454907408895509408441706756145885520380867008334974679109504686452643856955356135251913705622451140162718930495304130756327018041173673857584455711790340690779585911976801304142068992453531556180702665380089388453687126442435607748672824009127279680403892674546638849653364713578466020673600360616830453806306142477348393451410841452178542261931302295760359051825913428532252569139622241793764078250378654574447267045769989869541261082187880327557576050165440353942508815136936426069825802345011965436844525773607699215235522800805561019448633361085070871210457672912978452991651066418707212618385975105819955487875890157306343446309399142301259041588365328789320469114937703497247611751121945061228106151604665962239373714677372388108445501681365291366467772164181985667309107692463752622524171285556125096559848482605721450983416985370197652286807338752886937464313775643291635220164350849697700651540268879753213437852638360434650929864358313537434392978460886826358235046064460800373992309589167981542987592963554811490080331909188354129156793222329831967211564576299762581129722725246846485292268899817471337055480984826969995405301532459853756214937113926776569692720731715070067683350002300794287166583966134918546778860116907839751361060724425993006966934429550870787208067065226475381296187505141539961393805485165310631707813650345839891467218599350685671331266367142130180600947685650228864906337568006692818176093359434257691203851730589826845559227782830856260557637290730694083721684389152219783312013233215777079490286883142249235975883430741300730336165278057037071254721444967474121445090215700905822949717127173384030572441302238829065952512584018052655427270445341192861899054293361076972019343213593291253195812010106694569317112322081068516531051479357650903372525994717331954036991018980237001504784929281901439670922131622967301481675911942406452804038102617998361116125058224189873751504922184255696871982714562063590300844980212824336266785002639548422944011210260236373577999844143315723231539346011404732300880332339457186791216589956936536960994033211101153824040420156023310768407970412957398483511868235941221806676688411328836651070029698076627301652164688729663857691708132275290278812968720778373105221087520934195504555708981805350498134562619630448535620485071474006738366977376011131110606036121538629440115415155231287960098063113059536084689493891285759834170569725406124975393233905276935602466026869171764490909627425918499537412987552703081120927936714599976392752976182843309856924623418114656149931815023269406922607055020951887994230047001561299894986387625922600501085032929005915127200175185154306893872158554766682355800448182270121505599148870130522587409626643248022974316767735299581805481326836215579141508448193876133456848776495726677402894166221579338688169311852126809135729904760646379514054681331959717287219371589153568755295266077299558816651498761522345017229737094989238313564179288658784473974243826388562314996453301452856774307358943027924833768958112205823043815331487948190943923167884462873016149613429190375128807287211736528783554266634365943116830392060778957864210115810257677352282548390993840666347031781520865866659448510897781477833396478605180295114103247405639175306759018610328583620080098313038780512330238815980593461699911403409488922922571762397379213761240868133098888113821957726865540270398479981239370937137287386743188079780516423863052666746017918569393294333636308335401920041720993376628060562647791061801221740572956382921421548775455245496516416172744988775068299079721741883261667408778209504060511072659376273326661917325167361192223313077406012849866515993547405156154383542405761616642652663432256781352717154100424792488650007098820395526348246281079631226397507860051064019935600139100960841476700104901596021007473115303972656612525532820551714994209458441493496216816746385045880467110778872145837802804487787192510343561943118487585657280505554082769431329836729513175595958695828004833383934831125180172415243744182211703269739903613542275088866075870188384896862843621510498420751873831579233692397026362370414117397159090474317247177493077344972726481579422636236077156753941350350027320611534742533221309221427537324958090654344337699027070613000382729510899866283699524932089418478386765986295315540243119831226899206480601122522886612675852347241829642947935731868559984396979160639632340152989198035689728368002688206951233036690407331899751884174551493166200833906076278116612614885197895180998666767954190251492471325011252262735725116757648447263065030590418221381042690952138417531759898428851323488060526433351682192855950872801113033125160856745340052793309378379150454941296680314450436192973168130636562175446064700846852075357376378922751531150540577471503980300671548441161576409010787087017473274686086105097542270190304843743422844934951139824617954268315867541493978357630129073582183452377344377782736303211852170825650454850317361938073351428978339073457017865287137240543514191717565801583637608103612951602312708714560098054915504261839076139226762123178437528888021215973011142848283111664659030504625666535150425555512453894750739652505488912393495002432052224492959065821566916934542567770273595483621686571328371196940036919811256706855924952039553098473138014950204998909441985008939996576590898259545154421969930805231937229556718200131892698001768219968731771829642380700606444406053526190677800855098321247138502925401504195439653286769253610411415644460826335976154934228267383465743696675550464963881762794304672482667329656636694678816276390401490066973859212092898783886863582102265089189685830339281189498268524289039618762379754832480625034545451909273067568598059321327546648982066708059991676296908353438526150379401228172713714143296778394583550630436497250915424293081436032556223155114157171752904647377629267308245864869549046256054469969289398387770916123835207427979768103667734905778571262950195452357312987312950450075550702008224885774590797006365531812895139818463049656597647042514401052658751339089682574271539175208331081848799900383159476820943137837172150573179778732369995374641193989880856044174031656064385633398391413856236134938856679763405724718319819524343846853558737077823702491994674224115104111204996635559330070873677825496561219047443159522455773996487671191935135810843218636732901258034641186133545831990677432232047530673910747052462419348038804003224714828073548299416885778098119511578293747746659733629610302247655517160227732829861103726563440277772101368651479773711239964609300755796646615365156283757286012412226417075419112393020869075930805286387114422536207660722796589150804579591633221349523694316854447755348743003231228254592756141623826232136113042493633539312468330723995736933381101647703781197867300996809313310337739746049452156148193348514847764776647245624525687328190735629177474527136870500022596070819582238017798733416890774376314878828015004841502402020969442327864832755214160929698031999663163634645642745670143965140983722902449339229137061221383722482503206962988617958926799695457629330467976463173519510669895297522759695104720922663196970821062354672742058986931786467801025788116645191213610054741195775085344089389586407957067188166064098308262794718536749375211796634334181308780481886154713180170701185038508082193827184163304320377144146605567955319468939260338489921603871634410018196444964807903845895707610243879044794412751093115613783343613478710247138116195393801434666997754766128154226626373072613977946420428949810269255020490974957417615835229129444297264722129288883788365542311788147293034514208751206470570540747142800479605571013921180602551766227190227436388996913706223117551762887688809338660892157178349416106561717699205714986812951982165007622718012951155324561896776569641414937837915095590072684030014620098390654949511984346990922144165080913233550628904882364101579177365311661438066781633602556137607538215096406811759116852849224554290840009322228837794486541705442784089671736672107756618947078591715268636601496761985438459761907799176250787712401032271493332394348751078704969387281896927625900040349611542987131408524926349428332025063131739939005902601207048585931001331340841208906475108749001849701345719743705658059713686415087640414360760218490893771460551091950354544544070207942476169608794724554439406603445706425232663312284661350219869955714853204713692166017021245950367748831790486246137125213260832323005525537223751679505518115808607906112210969472002948513540276805094969517450340607638449049270748162222656387179565700185179035621731095448301056156324586152149004119345005032213666580126628540018064680801353487832507222627495567839491941646519888691952527707219490567673340253275459107277790061082714227256627434532174308078490585861418799821569122634792461502052376527109648362374356210519648212287301803545161629919354226655452402725926392263026525968899449431997959462924854407676092506423213190632998432424960022843276254558813245192671378170930272387899634146694568044800058659792049548713265021936288665264788033680605177869179840595735052092226470253353296716728809790126152063544971558232205812839736725290955849316084123459406032403220243983862875415371342642540492546147127680202288325991311058528742569652860283829720857003265021896649587247616115940514282934079217150204989433882810619333129489524980822917517549638975185666776306078246749623169113890718627752669427128864170758312139398267908429492277874296717988426876607002771041526737620491223388610585404004998717754304552406960212757175866077544346799060415917474991827050414474240811928321363061000849439008760138142245386563094009724339391590977499189158112896272239367876364336500242616505130411135715883273093887553753148510366883665356046595597080543315893100794321245279699327924720468799339041769711346387875780089850051804878526410116527218453103612391705818766505052333363667900777445097768758856148585008433828614820900989817149319476540094084908903358049754906260906548520449538120430826464904997833180169922274334312595673447561661154181503659832828277459638999323630464762260106928295573295768671288487291519462895057359781188456859566375868078610093770274702294670667834269478111072570036742504034875633081150070693747072333307890580152712791059624706513432596080256274892536662093511230387047396989573099853277481051533202111974884621233737102128037903918776260368769787067326505460699986017351892586425518133464316585357670305476943977911498342530611659442193998820440323230737643967671280299610728102358749594400453870975857736000802826646851028299395184605060537882320439043892827026397181084510384230168223615510580665200800932245124897725987273481602399226159404688883062614018204568317240012208552071981347559631532862682942563564246450083518128054390696060586609044168870133394267704826414597177371968914704263348633867838019495096725990724710596268428181740929298705467650453598193141828564761006208501999322074348875763896612141865525870903265364860508952967986372820630748429532760338943894148846833310800881051108259681244797365390913635001399168318574343242237548608465137220059508954481424731851616418456792615870709159918835776265176525424244712294044755315255237227276199393612032448140808811385686210017373399884280633204784478257693696604125700858666166172091702146814802513958765992892375552227162181662765078024798013252282694614102774739462589329876911145886729657978865277001622259004595031212787189353776496304183816825614617769579371736427323552653619310921188431272112684719795574009777167009881903670111052819859281834790378813076992958763050597912911384864561876592260727377391060788993127634391794056959834439055013638082494139250067734293457217178745691710257574577713405165755821599630672606962403714861175085790142252550846001365954929495680389077004726963689961270773853346980343082673946734883853229410853105173144851647452128906808545685420876616691538892722324793615044006174840625948657473206835460969954287471002120646643330312413096047527175143226279044531079847564151618927488964845591001329558936476933528442353763811478230699822007474169444490801677691949274665912215326540981579593008562575556445388900060329296193561983120813253060914995950108111630417144167660305350624510603015088149116048556541546216204374044396043196723627356776819477123439580556506032117428859032470843991779735637477501616717837717360676184490199079325764212998131698465829446070553227996524725163040222345309815420638005918806082612597187632945770153519507159155775011669476929431656109460329784252049850805886888111198736382531550497971816373162062159923710785547713843295630597016598612662386435157960117092188964999765385782204089705461327083455077214472380443152992983381483092874551726539090900071541397553432344493326906856141789588255729539948516214379735431377383663934759145366472654390478489759164078941513172432004069962246453671760144200497589094244266612277154680562979601109297665827984577796661932232726053833648737403926846827545345180116299793231223501560926085365065042252963857062532647538098279082417576807697638115557261737257766562771442991142248416986485506341075278027476628755248250535488847090649855481536838050579063827783521221107653430320720040824525796981050995952709625008976334473076652655297724205100115799524156186771852406931864741102171669331099800009331821109626709966067719408723918862433230748396502209086628016430764483957547898341105039768767713565155916124938044408911942665919285522268401895851193988180994738007337647698961274485015030291783828437326439243836999766038536071748227262059807120943371553233663993495579158574203789435621183554285635578394946365239318970029412046797006944736799037556890413912001753611122734772348627581571204093974147093455399716291467075262008090153639604845667527894075270572831388975537967324312452766019505428499602452599714655891609494047980154044631119306277763733709079401126534702104134548233431892543730628148424001431493322654611150853361301300584063274478226180495371283330809683938229188605192281400678886533255223807299768949520395898515941151945093152965863973482058056174882303903275687749550942616849862879269730289396908440933372452965709987803755942352804391230380256181300830800337038061974116595548230031645695391313892683100745642187312721313443934441334124792424745507544903232320946618131782447640804966371229834067953497297438473551221325889525899163335629475459440086789080928766174726620052207660822333981830122421694514022149913526253272543791302517132874564315550360719357857481272211778175859868936583079962835090276889528934295533713792531843978316486088316838527031217731181338329449976947570426436782702103395947710904774108683006842870241654905588303818408109276397145121308856190594450929403407602317909063801486163330468893555020346236616439772791813998199230499360950724412641111945796198270954886048319873825794015937977523746924614008272161879007615415034701687346562334651722799533142298147568689563725009768957695052385776813732942083604367408646645107953433494656961204331887511381462664362791098854680991721102702596018090815532749951806728018869919375662407478360573772990293460708681469373642290329722910834788057293188647175591063393049164078617794551927133111427520845899822464352323433264940300520752934775288530037199492447430028815440696021477644971010627214452775326434814475592944925756400099395497086453837829247274618317993394996725437615321365764036183736262243791189329310043272350729240500905701647358512903671682466640688598069706456716725479197385116804988371588342262663429144877318261639709275915709870451999405792771554117520541354092397952797059177043966397460086060338701274955603112175563212734399240785779930394073815496985493972537351316023335228624668968638809815024507915645385891361547623905017027782090392257301639528635552925720587934157653890279300927886587909678019397143486791195882529182656008038819769382339115756679917861286347438305638361872625440658106538284826419331728023541298076803140505571031885862264611157276788823926023709634249573753316179950085751137825023638426861480554588566580652494215264918935653192354854282582659953168710815773179500827301809760864558594982730110719840728538014625240081752728400034774690978525310855749835110114872476079992964098121988095914389541384165380194069473964803391726371453936184445321558715954370363313662136061271019404495686150376780271063029153710318110406220791881731789814823025823479604273896994700427643511231587604672571742590052217529071603164482535068529585191478415993100299714168969812678621427000754219695963946578146730588898143741021379349167515622505570148261095956166405567842377237218913907057924337180779893251773329329851914521376624745215270147762248313456322639945084820236982143118694374954631248993337465830231620797113045197919109511537024412379101389601056034450778181604418819688895309435494029623762165999875478232241648051169653525684573541585942706534796395731651860882929409364302915135657103898420384468115365936124347679424116442444199316488270947436780901949743382399535153474295151424415502290497224536387414523255910795351698413319679186354124448829115991014134700357145423121660838939602392543574916723882326520182265530813227505568961491256279348109729556711994105179923473802104957476327064897700267503782512870509849178103540095141526364262401703637453609970392938675984961738118625006321487289999472639251447268652124668822603100664771601036640464679277087103186163187734303109465361212499514685588185486352321865279258824676159162703246392597535452340789215586179644866025884596394049210573956926768914001794582317122569758757768070842830602964430882439120751544391528897876108505524662542527614435075277622502121747625274182004504114091792111148353471989093026655297446147621814589094128783880538277723606727492481125576263032528635484920374390321645760924479312986919282314646054305085830660610259827690023919520892886989816110170393583784446210220376280320695068075340857041820340712251163466885796293741140394000584382119249264570959287956281870358720301270056878149619409245512701606551583308371905211849868735315963901861670910566024464527438936944375234085970009272156411576989638831769972750530360711615510720570864629045963312093557135288444851674632191894248368083125165196761691093114710058206734443664296645405351406382630181715449750544414804788688447335591231179186968262205337490887380106671031516658550169673407113039472778698440270085317199382973237840833583710176993286456935332091022762806003707188301163931682535436160823282742488805008994116086612436473120708037795760480417298613675212205796205117745593717359130335511541393831209919027043191679698741722838878736738865308015513635809733758763428888399194684635586960599812688673864807302913775081990004751267255400337938914086120494277063480668010370405948694222508600290828906191997251991398268671872025243834319506667198658218181005468965343333896647065290094461501582056273425972239291589666703056386171564530016874259096041507478548822337107659257948875547401771840099343122490675341954020663725427001428423604903572770064916561483652241925006439925845498729555450511720801005434290779059685681963266024411004576712884347017362435021422960923850218107515587820279705365844908449080539613518516341971495844493793321464019769177701790590689016374193770534209935659254025362133694921230748612547796935275686906956211571067413012921083751649908791537192172312259597478956085836068275221646991441408279675051150647663449616177911077409851863787960976708108468363782402492106862390185591032337543812787675237326881428094323364797720041360800159783569075773591132069509981220577939131890225561771402560813414155450602941773998238647469932091529379075709797568841533589137588977787815548565360466533883853036613949715089483240734707124218308270880608640053955219859199667254695602596302914403678976164755989019720317979370113559307795346100476921913176273443108084345379000910776867774557162076843176705872538636447003361474449867962277182180862003120325908691449889006822280018827873029534615210939366421155294873604392216217248156144505749362640747211005158188773026569194645337467545460327585153083802419111200955799661169313001736757963970730858396942573074081892487520548822024196115610086822220146029591533116032204793359651430784211862741516378977497027931495641080606175279618637854076075853176875371231650273149308354834411410585459619595972982747549072528221360094122826336233916872191544401482592014470801819558491566055033391487129976363524238220711945768845571349523472353440200604760766731097465172795328270911894307242357359501555424553024624417427312831162415229793202562884921714806668567818232474480212091480766112466818300120744092432453636025342071493378425239082750932092978913631404290529635153338824354272984327596127905509542416096175404492642397081645452304874096224959160639848763036647875203460083913636279085921530766578874264458023149271149947100060540535298140201978134063982456989385407772220427609801034082933390463367254958685478525098823263781898359128900685576251482026887903281469514490583158964478233977824096318798890783003289802541852978069552171121101726842236963656523426491577425336028312332534895095428162880551107520272565227837887471073976804495029952974561843019956824298076039330710600296401424426267163223027633395029367980435915058977003459843668384284858602803402456368535102569272719889627265151633089512673361585003915632031129842647219844075271283173253435979946400787784580119693523115571719733188537266894535988074800139112801118092819588821589743419144502015985180787549131015768322542949081233823591196292028315995524743037506116031621546935392994210537126939748189322969618302287811480675239432071770266120470975454132451477492596682510625597422803535192963962796918442511630861077877629165791884987997979501474540607884910733486585280339979962996138128515476851445193925171253000029602089895454741127358620435358678011734087251962024330516935860541229048040986623182367494376285447971683254386475380318806948357580801713686533898710629464325054187386625459492362569551743687635448730730430268289153600569903325246584931561299853080515829005691302143933011232494235978537766710627224626377759143068899858094423914687204734274972448656238176223932496035338559461255708491719585646046262608173079303116677842570816442143126097313232086481213667015238389903425050742693055540208833516397205153965074914733985623932079642137404464964812914183000216098387913889237232837875952340505160367181416646373690704124336345607718844056344509160326611569306210614802909314623917307572490169460078470055382761119348053619885426842775006407636791762316006337856981360559278407537207582869012279221422454947022405145212640138203679299879628854404231862240074857653442087245416977991208147430018640302888638283936747572303182367220897652275035574696987697439898967573234410791478955581952170928929855050179338191716612823460177718520149022885977892264502524089113701930022767133141086375692354924808122656714856183769156441329124665848800056674831811249704684144955272737354315283160116118371377120007641105981395964331720229038969562530419120006118653636264460043750418160164278064831406456434540900661081834742317229888658966914986306493890596217952825966247213795921588536388409422257494761035271801942323908470609197042879251941355336392836679762667321488013467613474381552199657723842168205257863104806133316992004680392694097805856025974533858407370506108188799043099980722563354636660231876829656259706078102860861279635264095815498536339194629898442636087938363881586439184951409803261106611175798148861106552372919160982859584421434551980282170485920874833911249735706991642987470060311537316585445820407877763218062931067463012983385360516825462938885295726038256868421854795006328628540760080946601771275124286052532827237192314742960913200993291852287964195410215626709743855827706816605821449916258007746762693317750330820220703141244534981353491264337010037040156570239694593376104360021497254868749597249973979244113767351881908127650661351435010436921441516476985222474111808858186365281903575295536376110069502173723996933859784924584622236314251150507668600527254142370652319731238023196327669643363026085697317174747838380578340314242433270527939615205194383116674535596823783365780268562555644443721367964537471652913989317201328411363370099658635118606744879951172696049521730484159551986466015337207478820064955221357526029253201142937449484557679161505665302860839727250015810089731519655794945910375226654799846720828383263594510510856559610908548448823535673596385283913861450091381627413943580156308373314768703007586976595974713273017322314011085937293949902996544986196961233946766148947054250263551927153180691968211795157106770038184075740971453338518917807735293364266780458970110100822414199593327095096767250321999700624417134705938887383586834601555874653486928560602635742370357239460152398569082508724216374771289100610462596353317782467047501705798023374146699242501022080474059357248036423052379621150246905555070522138163486770256765807315545300294636387038684346744082225265542483485871808597034010841149725689761449499924957768871416128318976216224162143173609067058244608610431962357326015641489167114072485912737816670564530829281779080720729748942875259085076331497313610684271179351172909122090902494852286001974008287875936327264155191823600176858874440754407319608509100422700909309795788464537224709744885337474309704325609918523433839208316679679335776923259800821738020229625372693171403964830640098546702824936603331939897783480329254603939614874571744346482249808697715319303773358719367971715947127807573245084595976210464723209478567726352813282094936799144775185629814313598444749274546723621920046017474266869401556060616106548359082744668557009171735137705959730429411978251225948961386331563529656754868021221137255732438050678894655591397395189005848798873311127733966014004937407265738770011903729613636976756469491971490785493462003335286649119976671909834663328945389513940328070463462893140364087003190014246543089988234318300971669724146885426000317342309536121133828541873480664707651193732452048814600951624293899387252277625664715911143836060244887788446649562971222070337491043522187227981641873385608266280024462264510096563739409118976490035064845216461838904138844976921683293300480708725557560537447094304899923166781840413329796230720132116594587148240318888107739648131320707797963053568057447949235038178893708639815898697142685604000394120394461846803582402241169073780405101459974642962504962780659877984989588435691800208051166456975157378835883518516070706076327707634137431601651067404465838088429962687272305527939793752489813850994717936877656968641312096613306031483043697070626738649091121091223928701092139453913508898322501872745120883828203885643240851278961283729224234694352881000620121052494395797230740620687936066637050369766320729744124882957319957134559726120747880744736246844941783817858145687419389429243853965792921660710277184227876578188920785068980866039618878552715446417835052326319808670808759098958237406225377754126223065025473641571953070409601779422060644561465172192198044939201890853950593022690575446999572173968030013315100881286682747774799648638811141435096291759877910374161917454341424897584242171967081045357351223962341899393845078955131836664563358145502097451505604178295282443586451004610600493994195943573326980220750884215055269288785906030737938022800409054608728155930056025375786870491328568091016565033926699514073884842535539578818457139063527084816445298927222329342434433519656647246121843490502939251444346904390685270362542208818743155379754574986420327799380149351441746112648230545823155929724881373502968262085328983310522838048615062028256939009355725360999466480959314784702812592144119869905928429084458488921638288329633626395473217693739954568441267371319226697219047366302399508956000147169677923725374044294314802810480093687785890204152320815342743970056102022300027783589731707360405810597892514098566130706018540433737094409169510078719083908598469761734326900808302759487199061547554684888260740974409051100508467791394054322501461751887583823849382111959761779600028625692061632135952873874282231070620983256203828505932351307196808354032711598099359732426257544607249798134968618617319293951530155143116717451515256530443466965472734161779026033549465110362448896299307266976844688733210281410322875224625188849929672050884367101405418495450392347350885926613668658724065497343778328190418450250470283883522113886027102295073527624710778007516131347274012488868471537886865681921189841915864853997581568400788546576540419692077473434954986423421343698757453280045678382558816555860566177043346256530673610796613526987376945271919421530269093339011502900989856681910423684204157797159197243293132599569881740618863334254998818019840501241532415045927105449167039368558092615363633835957887190425192575227150738483412190969896874898377739271560212139824499346014525437374199676173804615575004050043714331995207475615134685628090656326473888876598812122451213864779623910355219151967468315829791250006395997839992474578890938461848140662805063133254740351775156916423398374615067024320089832102176257008541854785321460121741653195367299121639183401225100384027750208743858268030337636384191947387096065903978731199074293518292183101247053817423469062230369382776562231110124311372788594561906453677237260431793001709196251327583150618343831202930090498893076411759139746275568898537703514063165373984606312317358931881989727911714441507160569882398384423777666106414192518316924576190744447108979882061106478254754048043596947965439846358910795076333976165785295642213991691888615468110709768122742313423338973219962582800447460161613088855029736728635252026010560503785176802809380852114349388159323612940163402220959524410617878143326803375564792222738276786240647162915049468623882368662064292561538288532283025427507414347994043149045028378002799304037748474672286640982294650172753002969166025741111065040382955675746851180210178312703944347390559941088070116881634431463665403147567982853791496461161935109465387360230957428398724280138709724895411659579740854637255519964436093658211250709988214589930790436632702651894760729998408735847844352772596143434824302579718841737097489176321545737319197386999228876654096482213863430607689054071042260555184020176064430545715329972630625483874149128665231529945581473869805946957375878257523854323964272929142017819199992955824783399590386772879340496502327600422908802709500819906772270822314796066680786638786715157549075990483424878886438561508281596209730768587076255923462793441590122977072902173717726881700392815515803381588342608548521835912550460677583393299411927022956762648809716267745213873960147588615762117379214209618441086727767536037683604446015282964065236334302672437960424083042676629460050756366193567848714965919955822202039556616760688973985344004215116459558229894275784010702503686089191351524128205748403594127055236857565850101826378544240580838785196231155509020340864384807175408343340331404804154192310562056115834756726743773691263316316292928200900544510468362883483715715649525338675188738060990343266482477537707637520821987087778836069399840213607740606427601027634621934298806545964761314598704647400230798252069245829202237235749599115795205638516371510773848527862813045864246229638969470962588490829121900511006393628193945670752335462594135639122973162593570654977406986988148706153589548110230464763542681195539879691310940628223020015896530763988440843579052773996005813812287677459815274831479602943295770707757099825959873731271848731281419462128904123228210698597227444176595054832662815797690439459097488221401550043828964028690322944032077622107598186716156759586242046673546671482858392018651784117505725533405688764838952707233127315384680203602340830092710850846996572234861548889947097258574856786452840246635747472169459657843340880187428440772623526938037864773384281819660713222506055701784486207210687613775708436820407512774197640460423466684796478502347693697566703669283707068194312756640790871304716976378185241589669388666320265059092557810089898811178435858862193711478210680915716986803796942993058177488793773292473120888308606248658993735049025485438506581877913935348387962698468056095314503912318532774201034779184445498030896339360305314889055568780376278161207123307450059085224593155479600301209033162796996830349499574204199871857484195133496855918061297873770611828925868290035273058735687990363450008801578088604014683618701051147297320207710259591507938063202020388292653010351868335712352082318192113331973050581298399019631618084757979554912413090307682028918248501475236642471976325243676122913926586176308107354695148568503593089684491490340580600272898042335095102875818324252791558178747135612038614294141890634411022167440628171490252514848139707119007792194295991937095877701366348639886962113725744244561836324787784560355583617523296052085477828538091543203400663636053168763516173567460136532302099580885026814129181383721349634761119699935472085064210695621150150482953046795948010916901327923190568762768275397073702701668043256585091568017354951620828210103139821151019543604706127631436502564164232954123606325337583844974410085299053538121907833898770453763554617722444188848755261644099499732039391506573829681011671767299760053731971689014543232957423302787825617957082532280673444439693943288115261276381446746421423473793081960933019917618606697778465723284791946289132895717204679542512809549197887273222005606080118573132697358913676276321778640891093919361074860307499574809986328087791100135901458952295762624732139959216755541489352614594578525022457475685776856696577671178933887884235305202553927185586308651796213040641256722370356589608899384197954337627763766482390673841446152474594747749383252819353593201090544126355631307412433356539887788774967962159375496636913381273569968877616721276826222180998476368698208892768757563783874952882990668256512147689974652747987028301993152129823521401660496138374510954685994664498801133610081944312214415484870144515569462651041873325441633494953373186500492884572117338961277982896802740045997391167723858011037264286860190354729375959521393061268819644563765779139572017481957663906578141665047625342793172654801758226356307084538283749723291677882319846129801673187181526020338770366491234901796476417012983556061106812833382694802646280571722842059982843857226948424378815619339427942542023544164199141428633220244096013563359413824226829438861741099099642880088359060284496438268397583360359530063709939022106496593221154594456280678823937243078785663254217707266441537196526695046485920555486677376883364157899227937202715347802540194564460436331416848552610759077238067696489239133240242159449734912081403759888296579752619591885728278692004758685046517553278636220838338687481473101574080918429059878568508406693271857076981953579364719942374844514340456768678288640455154247305114931045600774563462833951968308521430855072914485184044693618776323287294672206909022023049912197657545014634264449999211177733465353989391850575122835765262207250543076693004051771536239827982299942788979487279832371277736756831583582894215602621363182541230542713194303666383449910877154186099196604070180499273592753133356954375990737384593159609057155095031811653407059008159684456464206269500757403820365298838901626025866249645431328799402489896847924345798269860937347293034999015619616866700778779094180171387337611649362259423897300629473060896103176016821020203642534740912250992154435369875899746205853281245918432776672812274807036359443161988929135764489405623693270289283242208108997330505690930215113340461050832853119049407061790195698621041512565151891767766369730946803414446986593093501496202516285193107704429211632352899923656938209862243636414258973450635845424026197491625880267655216170938890621085537980203701626025881633099409124152672311933496922759212435763557754779061535829274428372860018776495337983426449046494142814969046424162852412140244983600609421052000362109481034685914485767842509674227442146196392636887797406027709044020572313361718296647074737702393772679435147512596375599427222270651602318362819348961840060248563251824911033187881391063033843913622183956785135972330643773761687898946964746450900931071910764880947420904255460835677623628574247722997418914821486602515856154209232234280030515041918478464230064366704193557752985776092254460659329302272352700651493094864321894471585941370153181898301617539865308174038585971755717501206171739312801119519939200651407443337824493811131916496142624965967000865911053974582505125407149774735371044187110638791634690224185932076820540605438829092542728352400800416494371205716018658716750101291478754199267224009993888733395721769399256532114575009102018580290842859031028556238415556460666091433270695898904974355423777217771929936530714529977799948866633417745950874256946693399526818403931850254035851915658817980632568093724179342125344927347254357064453209005315000951803585834662562537553516211676992909908361572694133664937651075052113856644345209149241029138486978044025929460395224921520433582036411287507469168689439535426132854850029572213853520065128586098471775253971360775751483018343909394957148549621810882513112302980808245481342727192524667882021538650730634606229832938392648971152449193417968138605178362915239744557687654940435575726668454616695612970566968927228511555016178623630945641347860964518162421144695430027339718507355007239435054080922960114638194124646472687310813819175449512462704209225214322899082468031978577194698523433754036709160254886522673912465813836765357145863199638614907039121989808370060839017311776963175891822831819446582312251625015835906712263465478502184071974153244167742118272821152767591094581604667296289510758364920924678799074382740934845315969817891615700053412769142200081805937692013078719967831243173551923633795107103724578816714442479199324413828392903578411293367391848077108181431829685545008580222181512087351153734980826755018800144406299203486890822391426174947944692306098516119998126970520021360241884881414518783426221673891910703270058281660727081982242724355714324337411745844510995881699642407590932367380364255702895307677939252419831651305255767621018520254104613430454490096529720092926839416192883881199338308016656876560824918093779761396226378382263438930461849719656778834861612338773527781647076634264625072035550474211378551524640901381326459185412249690773972253664492202979179811755267428643378874998834512596647832714567228912350589819922718571385998628828279735150738590775292886378590389578761434570089699395653572181419854271813228417977045266078711487533592077929623899883604815013317008130530957184040478015202310589597460432777777381416199265047843027290089235267485155859714997576092768202824496588446228390787797225597930300137759285659853981616498407423395170555795241513492743103454068215270911177299880750767497684375856350554712380599056333894509644706211545757410076325540627326976217126150184500260624257509829907077108478427608354776079631332637212925513359398564422742349135268804087571864420211325549006614599252460877549430784085134076870923511564858266312946947294538398577956553313598591032432353404895174330876240630561258141600026837332195638956639329632651566260991467371905492917360782274336283075695532299262980967300323956226133206583818346904757342731165873787541865814649523615707344559033271617831563681837118427445691165166502445899837582168792919621462959341834582957325636231980459592485420342437179497846837750826381843048159613157649622420640903941934841163795536176884315319211651152911808813810924684217803867433337578185840896976062935615939017684518682094204883494448806548510113164158347210893885158897868068631756140645981218635285132160524578300513213317705289355943380118559689714172012829804813442924426468028823181422496650920932716708357628581294557837132468518834936875524117539464277690071737613111299638052741238126385964414497719865712571241217845035541483617671729149496125544980035882608759022006570379459531826113157962271317629435929636042511704713841307914066171275154332244640378035140526772918932385162148263556539380232532320383753477503043927654679546253666260135388815582543041016979340114410518536464945849535989639341996942335728478433487922019921379259930316696950349153489140195454308803418594996856087341208900115052506947268597969347510603982865837836890858892701122206912894810348237884991045797245791211485001937869944665052044494179431798740387603335315370326516007293682395806829422950054921670335963460907684306659953776561984689921835268044475385963409788992279797264277584459967213135506758346514055817268333266153553262209035813476020690795299445835596587819126580093664873041720811996492941193202066369621125314968071615591634073763002852444634164408175546436554725447148741408610826922035483503718104413199820884190265156156699534416863297263087933839623851597140308610436932129639076931021218000571673808892875664493886306033791588414604218971377403040170949686301513875679337582317603087923941300317707100462769319507501013304548252695352346309323392701564584922817363677764604766179383931575559254688644863251505253113821049116340692146254756385714554718768409429481489124678265050676937732442728869113568943181007987298678808693614724405088340227680938447368289889945767750988361179791690659616084269051419316091309973895426092455098728905127618119846539903150480700606039752895504219489106240133249321449800711536059965904526522111391208373905895176342646329651199548553939522930095941877939405448280831276753061784520103839505011254051505931107921121659958626867001947707338645268156935191286807164965021344195408262832325484610728610368987908819589486453925595088906958159836904105292905838982671454504053618509034257525275118368850877518999010723024371104534910966667209506074381437791777831444301491609207909017160021500584135881133058068738322297690412094976780719552060893570106710272316261191234982234059013416567925937110773842893453037868080779043024374950482195159164999888230637515744818665209706685345854700417041616982166406280943204362168859363399292524328455739982987963466164031187566205105604351369698355423003264625338465487030727298046148583377533504059112985744233136304514604669631072269087649600298921969570559471978066990935086863299692083394303484558382237007867059936254866597638981218415420129891994005353423152474478384039964432918331330443487438168246500868066585742474449081986171763272530698005866272369219033090069138270516734698062698406892717118492730694970536514526378493279887486855197449074127796736261152513997180709183891402027335279324983582438101958536723052033173416505088379782313829337453263675061508045726582651659649815919363751383041556634392469461272543044305011043271896006196933171452565027283774891382249323792668418649842074593319189354558731101510245688260455681619129545173890693785956267611464555275816354883185077671716436541387458078389824233472079243055397088011935888843844398871959562690184797169793831203726204239710628488268572751402824545796887990540065547513622482697272410583692749475170143477632109932413484989540227651624754049402443777902523069271581843483463031628451084330228881854509562701869612555284173558174137465737313634704618428197805144622597592952816874416999726349124220348446652674985134702845151026496645467066732765690421342160492326812090420150829800736556926173340004743040578128502340555565225663900470777077068101593423873051882067947171311840445453229045610369791297433084468790068963564157565107951481045619826435688509865851672619531400753291310590688521884208917486865207194026854081640487705536033836050108853690028200641548302809087340048875895901061206700074931040730914095063995032934825530992756262513090620387610632558663915303291897016688435353087744366701327980240237020743313453289780592748653287336471297070518436934887527425615118162073341863163563427373333508314618271280351222361660020460626388826957251943407541918191128375670072831416658395262563124564292897386073173099501891675248921324715659643438383604803254162231606677658962744940741409492682700541833528910857430339358828825523622956751707669121897084971060859111183190152649640528637547087642046127340115623143140909686772897737534587797343047006034442074136767055464578598086858151232457815458796209806955257950922454198577139967192367741149943835646354744159320803008718107914280728347060860881501821219306238849475994477584191733351682511122848868360523992291003709824357455942321258206531728021459938390133462616506919623041517592112122981227756588242527063428717286611528760618548944555295397433296048683318392417037939606565276613599966691897518965443544723016612367172384157579917066121096513184125728933845135218627775805789459184635744371003447240076740831778149391327137513662643772702056940604368262758324950997755438292313685039724891698899493625177703548282049135772812164095337074392116288328130107291169166281844071957877222037405853451229935290370227810635851917845565124513656689237726150451393868703499988368407560849634103524729057005061993693981733698773167190439891073636067831020855027729711903599120648946773654415488433646281180863181117181424849704161543726118590789437097800507448351799285846523372403922036314069952787338436915810431674717859701158827159855608383590802510726286365783740450831620040811336551953184238939156156050286496763215722512993939773866804164334723602614189565102794232152471486710199590104949770945376776013826656735501263438220312116396781391518318980889376188645990627908771272608913506357179370080643729603945429744439218772258646424502274364882811601195023810682805294905481267466561414854448176935305802909821131905469904866013603504679560998490802339636269423525964868364446763798222312586035693633812932547314800711628007723080452354192054115536069399765474879042845135825085568233860051821252761369974391937214478692679013013216849385013216017732756486572905701788949845370982783532065283571724038726791545175575230596313441264379065708275473314573825815974854475198708227349008072960142097657020290025088567481535845799272250908950238838217703574929568450525019189917481777539046676498723486719648509642819889512376988594628639019570624492963892875750438071015177003384502714697462244503828590745485540864324317568043043862798446223159157971859634982605575466978516196076728819511059779536345008257389069830471484718217445500091021289997614961952031180691350084622811249568394107876814729164134242373942880808932781293154864833415301188287721335438250995005674575212482366223552963812057671874131473158675403342470008133629030679204945096656553341886796289984802533484251766356647286845645820853416829063166926373216033542249415705037034581057620782510432071285168905616027497631854899520373817859247646309609810754383913490454032656885254807352901636599464054875781251654975378602301531823949211365682514137513323113333002144772573698572361945065351397725587942919241574447877435168646706276058445599167950452042416999082168242634165204956642090737047889542720637964427979862462254240519446448105099061050417574005474052865450462652522709541380723297319510369252738331540510197151481056975252932012754371949082567457961654551262965027430703813068707311284624338855715753400743463395343873232712213865508637485223102335783535629029848327503192022568983813515463353350043467825076948797530206735940761549984835135304703287040773377110000578708263949685144608256377876872068236607165631018827628037153326871602895644789529609010349905296485972359701992758071376573690972620400246599677080810764671253131019563230751555610304529446345957672498886810074519106943378190894904835537640131073598258781974993797402744876488369458913033532698687866590262517125359062919772587884888630688345179136128154087535838621669645361376374826868974594077853942968221833403358694506405780871856740496601304515931400054949423958189459508101976802822403662714465871825377724088293425961410337317645140307538890390640632554090785688791730093052881618239490629339781682673495252094335303896555362804452975830539738424054649981563948277557769378082427295694143902882765558153534256804871149619074561307750817248249731903718272630660039712385683522426363556182634056520045963561029721092373876558194345453441749404670790694906585630201856963289000122288481851609674322208326246113199353313405831168707316886092913060094358195125415685723973144435223006385027475731591348841511723328128829418542885710163789790947376972520455505994867188829406110342214101102157222842594580326163222121786183107179224791833152495827023161438302643118217302510365461954058404372002504700529483362372713434221377207344152481273481679589374996868751746664992479587965262641143318142189590091921468481313996523508574298566469125719315074854770877036248352026167120584833612485163623336396965555983076686641717784740760297509190581447917069728557223915089318532477072781664551236575036990492256004757338028244542367317000766796767820983592345846094543822452395217711691162762269953976850651309089042714433823201389645613337593238873095158919357466553108965680492191394260443663453273994406651764679423540955097109742523480367749471756248390055744777005447325458267943670002004939474330155654806144324160198549568622076822441131798444389244365846003468513811717659318148817608469731886794790645425192798893219131077490434334178212415029416485283928552157436707885056676062357430995025677352174672701526184525715563323067267021915219729083691179544373431031043506042021943935656642636657945242560293170977441547387487771255671552797917746621860619605225664030294671790103141192623823336935673189921867007689749570401551541332705100014699254867085904381578917915794768089503783093568399365663779787825238016908716061185708556521844071913554885951472541261088489401697865520326600097686173289635419752172421509044821633419339571488936655795827645312241093766931883060924179033624621284828369011612533580474334559843134553898309339585191240124644967524142192192603021712208939765429018402729848590659423725742253920894888075443925949571997392671250349320273977074593419008537495683864170333342015172497443273732629353638077294182256737621734665907034681974544632866600021134509615611464439068699752742016997829279614389195324098256687892166346741300439884039100997630449649148550783856136986720609436592152775880604124504258699395090914922227859117691090929295851054327875352859193858746484025478985591421381678199892765979364794322183277913409407777259169976995297657032836707607082087010879920233932391459596703208900866374146535137597894901354107568811521273625757886582486923174441743494155965936562751538875541313740131948514891733138241254095299847340084218702894701518636612230777336962575412014166534091904605332210898033705865691464813096828071946076337953387738480707130559657503760771625377815684873609717152520289328282650673146817780503084512288072645380098177437347790962013750932151697270143465752113311821979609168723673716139670182428777160663128237995409726639314230137265791672295052258283486224862844557607888097090015560083051707079787784188917833252140233646465424668654653847770514171491094959614307929740878604677627204555006090903439200238824437415264745189120236382471599398375351721540214924884284377167544023372870499879185423285882202979134936124509105718817869946852687962875034830429967908185392097974774332328746896304367444602754384276417349866745917384027479371472137911622245185706545238147921188149022885270616008821174786788758470628922984152289448249546809456067923026159561353259666319815585017666460694187751119964460099944688558566104786729366040955497115607101623256369585914407624371462957110959871469021798084721119352189997495648137254688376306917996733797388727145119516708198634003385488394117308012584532724440258065721307418636569117419949941303939452918470181154223875784262644745550770791300639993754729838025717026699148742487414768727828261611445673935034668338080865389007352538206301625471620896997621969591591163634590249695279521423577268089059495025583722952235918124439486292133180019705073809251848772451109757833728547067151694023768390301491191764935678604615925849225160617115357557805929349748663450999886544879149349664912149070776843159064488465173419069566846378056533331262365360268326604789269681978813583662775026938665751736332503678913775138411399679945841749522176229142107016366855031603973361577420817832600229364193218312687654082629174225472347371296139507937022104782437837404065701925862546662662199975638202768160040365691506368599696074698096795300548742253000982358947417222755298073278408200398730286330999767697444245712836332628785671443168423304011923873123803745600069836609706319146501720350221223408284538998354194762951546112757467829268595443781198837329855830799400173503303348935227200691372279410580200204240713007309603759922166160828118808453661964149185576070467277575680681344989926196877335636773085360461712221036884503609190121117225366790585686888679928852870283680992353592945957988255480713619619251504581718617758300290134917618444047452604418497128716940194154406225037380402973945752850718120170865331175268977194562148991851065084240526455456027348392354534760561066093459051379931071092871179725763788719582549432216309662223437126301666607076343396800490288337848854424321245368056009296695072153623143286540778001300454821056119755748938613091455294065913362278263456515460681354922195861239534189775469753334797890452931889616317248456200929839748110224620463544344553774044931819829696546520884219793362947519442668057605100614206521644774417392481713214927204793841185863138761268575185137135915248098909062488242203962700721806504106808122862048623908484573667387077802313944025763176785966026129752467813111672523389771546120048857716186721384423983229221715631852696545388275022695020001485663752869644951121104579426255726646565619543183626473858769411397748710132922798876423757991507570637641931275104367045495977712648938276164619692179955653279340406630389505752979571710715654731342080382737582534590144770231526191429328943364334735493177106291199938831355476904475977663110954483250909843456481494158911819357453932159306629035073929509029303247316568326703023838570880660342070707887748018373438185398596464561013424002955556666856151467746204014864888108058166104251983427015196908203428677121384019141596591545281691643354735264668724150353064439196077600343975233774672628103439386466364201963826235887011730666954480485249443823925728931629796722214851119999802645238037667746094938199609851857727072194302142269443794965476737902034178612921105975192879470418303463824403727562575818507696299666953708451428995360640288759660119016029984988849173142863172559638635596869257946227876633508986089144860158044949408339741407807434911239581801514981789414164941360567447850972211068433776588124072588717387252331566886192332377089397077548061813878914105587664859408019342895470063090987141862467771474334638415298004152035564691373403948392009136743262763608193057122904186347108052913892314492649930396402273652856754344802932947048445295617990217612531063210393274154070151850246700117996485949807857925487441328021480419787122913151595667379207890790374668299000452304710275898381193422734013620345794080116609337879676832724711750359044224650515220325235468025313652845165207761380781775927737250944877617603013838386544090541154633959670482462273712324096641920316020687327362991149480529149143519624407844679855590553480070331675732959017984237878809084727963634706506787435845991775278883607242523387140071387699877473991901060845394842841719290970217368663631524374761023631821335138509200384937652979290170866469336892450263776559352297897605612355358743564031136673390228737656129081663136867185564103033132667692907994221942212979950608711093097792397702098910489733518791072422264147294772611217573611940431244368025405921834452868172112956240387826401360832897781007027930036581337943866303704946635852293156424720285190141687373937652040066716594751004437927035380582645915946098687239420690955144684486808245450068060662553497059149612619529704776258169044758158279847208439628372365081247911237247612499767869381537415029716975993550412084567733391986299432989439604510384389938055201290698407969743693964340478480020615516123940625799941038912651215666004461069637591764486444438230849449102544008098996795167180051099456730962539598526075972032246881118365100233545760060306187870996315249591574549103224456774448235107246594019730873804886556432021774030204647872514676790846204268545157448981123539371944238828858958779858531385732276123632598249281143534456361728714792827178392178030409958629107985742605127253691560734685787801568353490827928879866546440863598538404173875663661233204712063973738700490993112259623597972882807335726475546760617207604705251643242286913430916107872313329555407474859020207397743919981199470330650004706710456369650052367904479390268627139676568679560112248226176989618539616265722905946802792714276315746281429160232561031776718765415884975875681850701341379963103298749154333123799293199194928824983314893369134314435726943703222437576847171869420485414975695225107885260226794130447585935243034236287035609283606195658823849643230572043667463417736509237378584937743488572506994983341760477547904875709158265406835952827661088907013118815368949612384454686692675001707169247675566291221830570044771475753466994330513034133914043130004753200583900177493923347123192284405682859167519921114867340760786266200128062183805274770834842955536840264375516524716342986799501536232618894532537889347017934773166633324119860289226968445376248069934029573053410697729564190170628576063560217670738763190814142046487356872771168763407553459863055508610820761410687918659637153091383754497050977232363887889251999569051023698386699354302549617989161209125236629408884628566735096210662853020468493121268954860081419149436178713687134069394300772687313977559089771546885287779696089430288852873569080649227887888228805776650966635569952236966983660913612350265141567321469869537721672307522650352336553648775227129644773241287507884269189004263210948360065595562185231992911576367252759978626507644651938281057041799931777508269824116364321434860457492240089605287346894847848067294903608164591253319031553194848745255491484595394329808616548068460441604194451265863293739267670425177398142846391721879104124042252567844584868037895858072311940889659609349828603224512903226249525338241411927581052099692848722399821049613671396327756379525061924083075380110299575462685050517486161863571552197537585700076548624582134692609834717379991064577220059599966713267338480633309421076966168380999425340980040157066087375648470574045406453430582082306850892328386718921964501276256768589997055693659313512332653249664299454733321282064858508926950576738937984422513806085491767967488798068334359640486712910613488822219696891718496991053036444702114250933274284801507860429812720073071030074385640784554410742293836788624674109267967523742628674607424343846439357573481472239989382325865593878543000759833119354435082831256020472765604098585030626712125844995636560295464729888679085714164735505278027768720940836617962403676178438819814690008255131407866600419623281973054154887321656461469096428272362171639850939556458647114630250604841946960898752855600296784482917833865831490314706532014046946128531271492844586022998268067712839089508847769022653196503893105823663310997688647192366742372021167350227868376657990587851074560096226016396563297312198224703328427518366035901356533256719815915771907843285447796543747135417003743719359386294884266353893377312750268001897000167697187169636576407746956676573660499154552327194440738945328224226361766810605526256319651958501695925529790226565022960357313724874952850769857700670673742528130954544526919622297441714470638639971396757235762668375230238799296545670679308067591643924753470346542237325591258549352258577827317911373412122327788556276508842141162900291948433915800246817994824144730948028217477222708064016928834563313838082234355456563130929239936756531373767523714637414642977757211861446591282694391307996346335476945174191747973786716813082086905210701472591564639428270274073395571552521569100443253913256287702139406421052068466975654958594160546055926005036503918113908791666836002364623595990311582275602340989665336871419608948703860683128837590813563602738397664803276053068542536774602375283844622439991362491299402505051589665974330995966382924122106784889083534081538450119828868271169195617896284409808351657007180699536597195529499840289488922421950063879116165977594182516351008529324653469766643672504577399577412690246789118157318836313555029092049230404940978941854161280014986812907304651712185303565188589642179164865973404885188791010134155115123204147926433134960108202021741234790248380872242230163286985173577377401412255480867271864211331675248283554447585683118715566311801482104215837506708588632785452897312396564276034774370878879876529941074940644749730886553594558351291994702002751567925372352181547727570481994597437420967370569617347824810040874817426057552095863394253442358363774298016428569126127024503286045565132490046421113875549001424094104317405442250049275584994143824441234588270481194453820937756905266974880931929734426491222785361786583563513993201853166890739392196067346964865637342006318005664682871607758357812290381409935408692962090466366875938439623561171560118889449315550838400483413184330339441703325557137647045321297128654454191027259795828510642234365523164951454443849791164721856121285166925837606426116567094851454334957902940986916371858776278892513920743928210167935246193678129286405608925089762467735711055571304346101486936178516223907273904003532564084802504107133612933743546451883604009165096290475368005617323122071632075764130644428037930575696395268497037758631870665330414318553918938821281271071836990234084989535065138272629400896869240864383503942455823349225229863146066655330482068982320383389197161430210201167109071572038855366659057693062566581167121563666459410503295085276311012443973875858885277856936817982136780599088209275419987108069372804554657905021777682942993463471536333087803775259217757633296298877796183387654993467695688934496744965102263538127583129190298486077816060872612358813466623200223528124361447368247508837781376736906677985038914824181720933926181495340160921121032353246887071237964282422008936396853358000551380439203164615123141782091301951470760596073535609380386962082171085357236890801023655355937833233577435045974798357121980185132455536858738718354683575163557300903362728928364277022972253439859212840485725202227599796127365127984342825623144969758516921063876549654651996740505652713542867403901831501090112703614463222474430305259268290721917064724373592022597344457258335941052841287528560001774109492644326921729882023732665837183424605728839086397335164523726095305310571044414836077257026028907473464358726165561302461769646334185529558799517588432890817044486515957970119467890412099591878311778605920373225555630078891404803034900705964878978598298105638932125215308078564963712831453650014737054781441382879502462783434528465095418346309086445745001822351513284281763880991483913663605071643224631706213539279125664701838536311019165516798882429501498843012981821035435406237899243184788951165776887989244264226708214905795595598903458481386199502784546855195380104161957699061774864500711409568737452423264508955753421136659194668047617923206569565201612142576853073872149039129727544634897067446584457395316866064314279479752350938876493402913013198535830163596171019775684141009317041850058585402207966101415256338219335296939767530896396725707056602145206011588596387265835660865120369756286258740429556498864558872660123016787433691932976951987769483078260826353848943015969582064548926179736926684130921609167900949411578097713920416014690982173049464712286975963747888340936277950051899354998913012703638652836152918403025132377936076049630136711307728876537443027415701162244970199978098758501915247182966757297042768079435939711904830747839550221092776868093690976015831769104361954172293147809145648807400869492465853069056915800080834242386853819334555325270862683485518578365451082991505695428515581499569903840190789159700972567499872877465079571518138246069770967092482356411471130580430976064727281903833778113305923355435928019294824358322020928198950270200195375432617097951644962512598754588468036341903214188443402258735113580669107885029270912041962046472767841263676811536622090413897527232627266981800382475001109205957974345708784134565679484471832532595817526913572272183430204533926229589011402218780615126125720671687208112061010743625618069140738380112666601118220796167992862779203395573557140419468924681468216770416456297328440433608263202103734476104621503947923956173403579864155252223441926316375353551224164812167919820799915111681353689385600267209433470980328921288403656645758831779119494693352240264393953077303690742017356804166923670183596269364083885168749132141294960833105488617534889329422819096039237247274642842144404427866633736870497929553059045030834103498632501780987251708137450495758880744536670389942238774699826523924526843967195846394870932393806278908202613503226150332332506172572959714120892853063288842678648218860031660355727947630795521293106553072884262982254443065195271814771033993502919528020150455161846756147856633029806148439752646367428206566552352048547524055522256123886755567730009129160754160575202591970084635441981343030728534683100061700426086442697987009216986279067485093717652309010182159850058727678877592877013238664033461185646144754610224807469413636005445966907248494109584620053437653595062860329354226592713347963109467433011217174393444620406331276503357940687581961697179293360696831075368590208932766436288584980204016623871794507546627512375752998059440986383284242990485042491055990145151178027455511862057335251583226207786349203200572083703615664256283391938789095922802115416176070753816965622805133202900154989812758928486870397495865498161655504306108315167622938282078549070043435519701566362189064898795222161217921882354494589889052954893376192580426282224159063843905967475197328408750694602818105793850051857161859584115389180198605901120523368361674700870771523434813720906122766034304285963509833132482744651240248598138947156535761658777784619462718782888712362988581187530474304332698200271996486651230893785175827963413211313020586604605547756078568931233661753061753658568569206156862742157079457351083806547238001773457470642517093463873948223490582177501476699295782657493135581746953154988246355533149502175573713096458287865452351250732111647753509417139778292621867935831679480860269513366602946905835222590983321695253936217920753198020553662989702717914013758136158328296640777703497668850882965690065583586769604826838020710507070916062968549657555325532928563213061150665234083994834656868366930032013201275855020957667390757950110813854963572154679012924878267988439868530873417233705026418523763340436813989685380090254990138582570530312850818866955396845200235147913616794202858231853154674207322933760875254738127217793456038739757773472194022496534960391678774641146684135139840088002839534690630894031739130121195680953143490385140407194374711423679976998577503681282465378762701812309469743532235825675774694590275844608126772205805515977738047648284218918033289154876345979972426172712847325518888101972934394799757775271595457787191970546669125327611091395724887419525397081354508263764869276211308572488162340518964414368966102746500885686566604303195190093996226066640616588697098531532835573436176237595287391778736851128608100448693872579033063181515031413021716329456411543155733992432230129458534807857258536300025155466077621002651235898705583754561266976889307001804075398373927151017713822512012492853783722826267173942848571824459780136347121753169618939087435571266828101230443663412456466447093093304074872274102517270592688322468951607301240077198684169292804787972007434466121947772687644177851954800043414266975592413372129160879769965569531580541712511591066396892842824381403020383110035729798433343879480303125404000923027038180320943547671183611901106238322815322940988276067699768639424134097160591594446694574181057334973157476737900755078471727087023506110247088494905495525752940767741597027458304489407539508358731798507105345281074105433169110015523829045964735749515442626724054486837105395018141466346239976476478489024434306627399798272300014962903050933447220154450584651216488024027769439908043227566867175729501868012324476077454039215633569941625365709785520621870232497100989877611844764382352317770699139842125665006117725672810177639468512808105402655007750239240193169105068450921276413780703058917480218098319824988624433617423245967297618728393512891656242433724207905526840081157226679839600253746386896318994185908330102292362146213547980567460727896552780805304030849325943729199176053157933580185947833282026619203347978066310846371557102237480724166950509800460925343503176834954146024182336742312995100057903531070576274418618389873971816257190145318042536826236504156025201103869675764139979648104738373981393748891731208889490168196748105194934725005520505329318004123083146593461035102872032776194505960820923967515341824542090964530459633973727897232722540018468813368947721931020929942907278731084462718713653026364951729975762032629788259466587320970584574928748789100425625669921781817591723050105689250241681048527258113640947627235437957256356557067721456561473392883106587574939258821160381888287391284032337513945512335631483720506162756042645622516249278726494682576896064362800793784804488866633269426136341898316455043738279233238534763783418945261499449037493892808646607402747274085004390817938497668240333636583356373949754655117832767949719990865801052431707577477868757443033133672751659843155857583790191439234630916840207986536479135791278479133726919554668179441644944775247884180220843116115434062182727774505801470970037710975317005117852329122213507249825372478955047087226429714235729703979650412922035394911905875139584425313037414751284242498673382774440711742764554144154546832437476123425056610445678417901481603177516567610165772614193430956801093251884254464367198813584471450633816134564221549216901013322972334936867094647320668839614739903250993500819762034470917411647521938843389268453651647548063940846622631737931913253171105742210275103529902492727906493694343191767132851187208667752632090714274079658359508938038301603089749259138363808941932556480635539119079119399357862334021820665516767296251359359186046042367456524725001272729701386658966279072225842938524571132091722559846803800235294519021111128088179144309249081775747323577049473489154546891558572392980177437080088974740704843380221559811539974006021428348559196964291713959596652174949827271126835345271217516090260929628313549258876268586870266493101386562090023462736795532816057696289098803967706271945027133895612580962116805138782750548580143840511217881925769638362523124882681547174842747156212768317177612996024110556255592939925898425201966381943259595219463576068675927238298097082008357365281697660581313073625488864011938875022459592149595387998179196366766891468133938835882050837446911073718517803781601357178148894957880575662003472912132549001646725949677940516090577943307042584576434668426326932597201182062532688131155198232023219467690478655045949447987343714875404303119822242128295916537355276527440627089270901687436488935862774733810919423720826572426902088150338211293092274252871948496404104013554644823167344940788327938208648946832920380268048011615390156435754776271982095743479718353738711939374451001578582621401977941265232622452309086975312222742159752628696304601424350072030487636953578800232886283705743801287442970229847404135652465255366781510609268613475553158528899495210434329580779167224432877649808052932455478344198318010995413670225066239474269206229813845656179061214042977441833806857079669299596616548725163029830182174513374366527277095481582261669034935850980110074097845933125178347351851210804389652944615041857842304601928435302189928767683419346410228536957177037840129758818688582420107924124269290026122311561329904728013446157385572027740674136423712955821838707085649734530963286346908955399672318984471646135499556967529126430857582037055397887181573800830471186034752535318456213044126434309057953830138246863462600692752199149996726101082731845674131682260368076192975575665949527714934057869307366703189801036164480387885411773123097525216374847393383443072376374943807986698623261363032686978180278505453950987037438500734879253691151987568035229963756828285956887459180836144303988591613914945505316112933749294861078772926054258313728747446152824895589468521511496705769635382817435416619726474646420864815889939136427497449383673709745634815065093767939259130723233557173987657799342530538827157944981994378897609444029713312132518591274188398633340372752315565670417345387940324211516794840567300909930461935651915110213097603706349985222325968732148050084972919114382371439349111832197460333044840161039354476923867678732391053861779498618965260049836061707254214650140020658443536347290546290099827101991584334799281559604197726189091887113142968058273647866667543181528996493791456512094774842680582492120139722950838537444688959732154698020188536471253639149332366756681812728284137684505610361236686923269841060161717663603920191013965465768777677193328328716617180828406637288179181564273164799948711222814220361238289081059679916154483401364408753933780813563235303472782615802846314571782804775325260823228492823859517399431389008989745229360054596806989437683450166924393109673150764501085654490675622536857730893616121999511335870223323116545152379522241041347070698173086274920213930481298990126884984879483619684060052415119481618824652338068398684334275098890846676378643620429645050545620956453737233169805281473636641152232099919829718512178595922619583701714799352774643174928994590512879364474015302119858574480847399390365301484158012330294653883731649015676136155928656487346757924735543579357346574278867161276331958629505455352248041773312351029414324596359563347490988783879475026296056597924506813928612061355027251216407573377673157735562650156695137999559967481957594240390410271135321922382277066637811702814418157042574957840334845520097903056311265104677445841125272043497496058548844546368917065498605217143363304160928519879874454921967633802739832678506045141757208331889312787482863656587643117358701434399646839680930847581500557029976890936535807941614233500869879976215432173066518730632608685516072863762012200431109612306300177102003618255854702659369079079246332339133330638103497074711667044606338063289232256476650974946232172169728822201144954787793100862753394156152436420778459644090107006569854867559827800079121511747015222219736657437365920379228357363944269542188642198385001349814183533105935975335575623350395436790179512883729246243668708539553497022358393914826340460439561838347418887152563536117122500752132287121209107442804193805565876124220945328032089106721822258684195484753238863959356841836547013659020413403626244239373451089040707386835333158740851123395926926547071596273223974365128691982737126981179787981512939053575742259154803014231676863451084985708435541989829964956309311337116895094722923621127360097194164471777539619736951004068812552933963052463161089056672785714422974784396922912395133021662507114170609592214005934957402935785059376059812671087447242627767230615291364374081667654311650215386750731395207910069346024679421605188532312124346076461644192017079107634023317980789209747333908822309262304238315446274249898621462094816241468386024580385309217698408741553978477939779568521838723992510415129179802164166029802636351241920585011197308028546289588344032102985181688223753815443839236246863369964511286970426868801548010923605655492142039588676890956812990816669573861190114460293984323935281210615776256211579115019212804047796956440132097315294102971821951594225986167833780978486477696126040624656066431951619448933610388654052232270084904110808885060492427686935762408600067375188094122282608571501681505469515661558708854564755075235153952567619409878970965204144233959640681279155905953295437587217135443659791386754134836049356814363556076937945838389201349322379662433711021485962774571263460969710070557366676855223107448530142202583914607915826427243276174576366061266963250482923759472861216518543062855349225179136709156237694686623245348496854343025488106003485317811061795230492614153415554557077128108689557414774949111639733854690974273139604768327645008441883383839181073156544926605576588124102995458608574619845041470673993367062089390016460569483486049237489028365304935697777911961030562198976590219292398651952394171271731523130060076202030956162891076394790120790531539499085528233016150439080125713530002779317191881359912197979151747649815006203533551369120439962869443041637513497026979325767174759129383482082114865538296649119747791919176756662542971057724653429324715404026864176416265409011027014179317138681309394122188630663983458632189684861943907935730893029850197670347431144145966794102037381632838531665196773551903259436680769902081841154551760267212066185467544523619373436179456948148418497052578866633978329235930057596932120975491012930591526861024915323268047861014222839163375426888085073450393900357826199535590960659623475374318507437372381194343833428460681772681233538123114000788148733643159010584763888881998675321661800549015509056640125054572374399888263937902763284487353299787189611135819524430123677002918996260015212348564619527462468313727083185825944845769470632173755318562973392991459850528703174676148493070754376493101799772424589636265995419618630625388043096051994845999426056476837436803470954968641310968891914333746427261262154154523292254093914825128163784949964678236344979102243153482948904796370331011778531340639597941581451755171935033293250213580138299846637579268417963102719456727102690577548692238319421810979425217950796015717253239933316267932078306417950492782520640998269068083175436598716043184619119177880187943314159718195980356047213228087282533246319155598423260304453681744594399355836823530599886745794296048388483070219598077989212204665857287838494542835715010159198677677924816786755424136727467837877683928674052617690615650834526295992139706370211369402659859470566657790346767623232308448174383566065082410985578143883566691668422683665819126557153193152548830549564373666539043381220496119034006267148911106843452819162529994990230104853649074860907106923497226777800206350378363943520532165911252725358658368400575886486457340759131013874740626827408208120333933112399800033140524492427881903155432541557857895476618630539704273777056700530429179401489222514065819507960190731067203385060946761278806047653741827062866790606603950466687428236561488484616090033512973163608440434362650286077313487794390682472926495276613579055642411990420623665710915057487686303449851695239904000889462380824534479867700614947834188213806589813285959696655820504166580938497149376707735010662227689932955136420785303911983176575113967210590540014514792957588060460590961766240227317469713962889371466470566560207342809778310341337430391222426231457263352257065433939994099296762470498144376975480982041795700808217316928052787846905773969949137522468246587822345468799528547071481584572948941578195942212172811816126055018104646757755043219562132590175905080578538090503853217216146093064744369222951374047983596547737574837538854075218194729304867494996709045506237922287669377316125484370139970073373942041948698919473719981438383328416018483350113598967278441596499123514126349158360298518165817956689463412305870130278350679045409131233876587772597327174581312859476401415188835858992575040407630039250964034831331148579502515810949825760395537094882380896556382205386715938377828416869673549879005391292916988683259936722179845065576181447556210007595505672486550527274371819278840570880667228522325380207200480704593994509663122315498506773250107342318654287344148088726883135106055225764520512303705542357782938435427382173116959183581049084497012205759835959776785752673306986672276469070145022428789109896879798560753700211336328966821539688252016323741551258825796006567730143458257303704769338656716801080079173083382211158876709759014851547739651200803669156232087412534225599220536505895619385734627591817028150342941050504341331399744184005051332978999290507996404281701418525130580352754974693868999945139346218644488086358239686724604350039381944080884207830298282614470313792210059410674828938639586247141604790584467422815228344677333238870406152478224637299968216422464289445819804802461760763005876808425303346962747577182569303367399710058691705992162460288971958903179072844071097287756295063523076275985668405545473470289595716713187216752230644396992649335337117342198051762676845306401222695136358390311633789008156859960898036904510996489428419698729255576828330707174300069192722963518568266548162208880972804264464438603873908721776401956318789035301368326759359769727954195721968038159380416787589680519477109031960815526009528974061441790249123701320180050123553227788493946763931191907709623794179299509621463157243716428664183568277884410207385745991318211548859830705426513485287149074418719106004449422282017287053711082676992675289263847614744003656089040747996944027476923765818505599162632970664698780556445313536311430072135580140109648914087677009300344763334869364411562139763796986941295419175490600918455809209829686810116484154048899694746395067979499789452446190183779743653293462286064748999344762287763329479782666811967886526242625836819361050367710672777729166156833407528203495600666889373749395624683023917682762423197328691597552019530776769481816334189627749293090674250823867925084375789823825804373966905648551888585846822192156984879830538949209084051740760329745774902129816005475325187769587747637125533370650760105920368234826654097708596050366744289627855358736111911846711296980449876483407564451635835183117374761914169346089822172092044615290143458051946532393944163063126393908050851068882001398655353647224739815019307319934040540585921892932812731369541853288363892881008276379576500328121103553296497910332389814502381714642078880862582253031212412835865031700523076945273552752991644277077723584581396323030463445074525593796072243954205639204372132991602351982711879415931804578182315586297314406623113143368797276617664969075077865677027971447386940364034519987394714207544050716299664168109176895810165973024747057334805669395656863444707406310664359772136330911438742914984834462647091146260081406019270719148869490734783443336073001678449367677329648820548570043833789612627820896654123132768385896752425952480352459035028153277753810624657124566998355528686757660280590429730537899725092748602487973264400753829964033063014816971895359670803660281880773153531897924277920798795300823455313156109598055627025002717303472584145204488948633785307982856751508830690296347635733010152574705332028190479597219082399763875732802584990050696844315279897033433847763884396240766298821688514038702232822248246212789721501764000325589396505875463811376088574801281182991660024674607057677425812816872926240108848365615970182671570515735042882366213043143487499587961313810233800070329585412885474375762627104286494304255829571791593016644810986761361897220022928994741918941264840232703064478365284853673883297238891056594110777303063505555685693129910378457965187099640118923900434774618515781472867722896697435407400094451950854219169551649080689050793969499145313031838254432511867091433385770291624276326540729194282627383577677656158954841585833367436498875352057657231020549702194129730047920212904578176051903344518688425423295895098367325577356521674586201110241954936981443224105030264518156476016055617327975066637163677078346058023333588631251897458383706892874036586949818933770713122223003718785029959737609511862831146925417528013480378281054704694305348193771961596167899227215741689517838222985806337748136988447929451071917929288608805863274973231099179721076078306966609775603244694816869622046657047965605323682102442354340523695274541522221254407978151920924675510216640140300845038597911095588588532781977201512648443369710252955885181104370371850877591084625175406161568394289705396343425362847326736133509636906481251177442825013881144675044651464673334259835125638778185262412087286993000037933055491369241637020602908635723213254616402001730274305000137979408798963914333362102821146474042389305758789930034719580619695058962353618534903642833166950599066621935832351209374940002058517265516856881276842025212485823215050586046300309188040971426901316611186815956713222261570814820774289347902598023701490577744293485142746005347035969281865055270374577041945324218247052502686260684977713751873705027705695113271258432075097709276157806329691716184942876556279244529112150812061560639756758890668862698811848491439027883316142888394610493655796662156461645369732452524963130189471478041005785817543086691840280239007580853880733956842274608937392304008613138569896960584134636063174109788433493862962708353677423037525604891969098937190332231510045764613663793292433628889939649139160097221806728026905890103953917582785201380511080144415931034536898506100371228289783448378664277380499507637095958558270613951395940677096697590012716759843912306011011498432786965966812730469255825591898987353244083425249454207794596062197503303630315039228364377048088290891126726199483220116798437800044510227417302691742581742965176295081934340318863672748316461125417481883312663819224718466726092824969228078665765945249426202840741574245913319641212423143097571353987409820169100459455926944691705913736031552603170116806397035240969471915015781202124852786417376558425157416401926076348507377259324201344645574261673873129580833709943989554810674477323367226012152649553865575528415887854519573015438961995728152712015887564003032016086909229524733294170555708407333726902301080055409088980515310881799770296100232573246871128872197931251714997720274567934088188339301777755839134641157542686276330097432714155897016736874843760286550129019035424351816316421628930060707060934516627294063732754069551043323312471341247106248289061324568901625394037448415022841765301405235484333786310290368395012065757721293717145351694050242678683275005064796153824874115793719058191141821500613326725826850393085986595729466795515926035944358199117715010684620583873645980174508419888700607743917640836637752864281327938386020196247865967678484470611333022647717155150575233084713929749457132789815760103410213155529262967908959541257669193802662518895023962604672483064061504934932575096457574199206729516813019213111590338699868304150709855939442375418604233963896155726398953307113695089796332142084383046336183095156758036334390826944295957917377478836704900932380114196086622567596963350576642717166552301601725980974356145696771783558976402218161282874303526314072658318942658423743020064187491720740351479086658793799763780052201705090710765140863241982922011276470698934281223205705038780360783391564790077082701545015709944545707259161593213834269052655379975206848396508761846764858565708489437730570697990881012747545193202417277476186679926061270981297084166960041544020688433458794625409526899685337882124825643130250881043852740966164364897383893295962130480813479344420118005019441683954413253945970342038066318429702865111170893890708767921767302941239317228666478741276033904039975449338577602525689977901321757843912725691713301603008853221216097094890944670156538906694269870459292570814194230675909082151664241876184367170947345082546324373305852583561265103478866659115341694147763922440293304730254950544806805656722956218269633416961422437694691886703944915428078796438779175015039491690261508756276096615891619099116281493339636429187077749017434104752082579261081923085334320258995470782056970583556884136137139196246303265839797303900617402470077809988135368186754025863821058676527875901102617169129283437739214660340915925653235897037639652723564886851743444713514342616962612913840315787086083401137839144755794660776748141416868481661479952415113870282019214925233757803391629879122747205815236716681337066189051659575721352978654295914515775658236265351563150809103868112028589485773391517913948392161938028229766007597014722394806824625300300890136583109045923002599163713251160612183234210017149194293903203412370191528289594251523596710614102898441799384447922161335013327732552878956746233085178065873841654786831343620337585770925798676330271696651771070379780810335208579616150266581386496075261507100530543168824215979971487106819300817838037263129507078214584799250878425966326197611841894066476421415936117245294118558555878442344414682367146176898103473339271099447974346994442166585362440625948062149744216050384147115447236308399274664092757950819244360788499687766184580609995015984608418939303150501902641091718677782494841973806571130898545762087634506211124613378911251581824133838070042467925026875242845534873430093152489074005730189013164814267512243445512113736602522745028070287799973356391326855409050890862956294663870205115198171194051968913361629556064174918339912963678782843608059964148492914437605848081890707353417778611289860912082709616639627249047410813746270351574394615579304355019950064662013768112614209880927130099673708762978159927044701960492936526598757549263292821576042393836134874669085768628879212780313048652946077196485938513508898349280279932527665811057232802101421345823494885603914326895311761882622169380321677206966399485087121765768847745840020582093854472109341620144990136077508287588222738441692563045979139302008431489849327590114695047908050310634537299385390748983439590707376689833671084360853249229925999828538368687396776615067595835996337898718860273307793783716328953001554719482270112015312859297474949406506800412229577507615522556007030427154901171468460937221852357906929803643560790009463592860937130190066947461737681147599777487513750482790919630040124215691492603137554336476075541823255409242428157534078554654080802049740197928227071099663864705938296298277399204040077310742239319497949854171711610959584783422717647725633282924950293227702515005835367114621280900166082602889462690853401609308582625237860647886003633569494105863104486698400919881312554435905075097797937808679306667532429931907447789506672238911511670450812826321190363762511325052651152785661793763806567361285622927039272093107397539407176836274263829706821604479931885323606852565792669478241256567549659078941997036184352223443979098197278701382507769625009158571534739993905947345902191140266996386363629414346323234109702643473795633866958256074433559133231107607232690179117377101967829152075487502670626938199488293646713689292195580034878989445267190007668510354417985572516870866769682600223461972767092778160766441136055808784823040195753066310207825452290204665902177633209360266904642120226377178713074828874105820836412808608184466380758339448005760202819154334125311426341525368961978466030730900143272848235342115510489898505021252960643723989100259891123547322220607581297314903299718514043023409142514725589937576959758920761108822468173746012401136127900592217841742675035347212980803200831583103887366489768775665748724766324663686940118922103882420808843661377380433341425637604673142437595482453409024656833877573972907326095134832218805661935884796226015718272530276102635969972862246052071065382013125000168733071634054066459348964671688461771707929690539974553096451133610016035145809121888643230617170514452819738002565313731566491568844928848738685830014446458955641729213213449133466274373703262923654054009002929059488646181627717477728667131061273039003720663323935111810423755784386976466365836753082779100840865550145371213271902922153252588386971183735187038870015160513926891904704639568267416288021438817805481003717373104994285108108693565831311960454323196177780885591959942185700505650046572388771384771319772275674035827243985808283718470760625684475573934152366120793880461554533449623205052728847225173278602719621987859860607962345031144961591077577382605009728332739053208340345052417417147986610659883861494799139118019752660941448487433902816040802400469342741509454514621218892089983457064123802663761502025864620270306133054051261425788221400321620263088924464743163379521910660112792541312106034673675658863491172607128453085186016607624290720547935361834310631288783610649678182863636235599736656184542587376451390583963124661849048506480219185908372134945976112652554306114972123480203349163422742184025010053352872906586478957915265863942666578883878577883103534802341385321380149676088422525007161881249972160030837578170085586146357214004520017754682500761402394060706429714953893098814734033423904460069515549972549141752222366757925217735690706469131437526410553668170656409061909507013991028259833293819510634328969375171708275426832244255553809048339443155117043732449571755280716323382182327301623499483270066522519976657624052287277934534686362212395224121899891210501550359921469197954817195472706946387997380938330234937999364746289913586175268867371653353142424366339665499955463212087267531536474535256886900342561297225340017711180801361702080762415500245492580315777200245071488968382355212817097685735378623041586630398464281622905728056882188138975093886898907843175866716507679116819394383180681900831960166281110874819967568416209248763034670910459964721431265294048681020326091559980141190413979662865332210689319498865463200991550683430534353374199989577797479448458123921441524181429007451262503629898445403927172054026736068096731175286755938721091435006881510686631748339507199738733679985718322620488585180632847955438160599352498190363094839505433939885381288299956292912945853096817761778663760376881106530387312700766847637181632731418587416057560806532369352055912171146396398061799646081513570804676720375015501723955678789236316877566444830343208471285085537178834754475284004308030366173135343284322847699115079365268690264134119144853173656124727223700786820295439216786655390280390860310407564172072726815434505171274088185668024795489619369413665537823767279218757085873536515372025639887960062466344770872020186597964347108745195957201497153112173520494995851946448945223200833642876995556076729171281531097443263585502668615533418682082663825296008157815394424611184012148061666607931220466501325942611890476319135899064555474444117955284772532946499647714313933049363194259174735916634972523861224323640140479275788799238419746065739121016350007118646322533163794722704554838919835419141045654988509354558843406491959485708829076165994929310502614232458904586283971174155416408893919866970344957942306134141428307807019224759593228345472102144304624955514553514467589679960769806853621194347735121416835319464723750633708382624484448047701245125853356371439818749580171885449635027599243644569017638496863243772019564981394321439487897724987533994619901370316245379551086230630924908398661058065553642830089476212273994785000295603570508771677160116317330068167692372198721662947206206448763411233982896709815505403818943182092900755069682033891527122797984851709843445023923381961996395365572634623729014094120557456551463994842607780224432622332898344934813037853110284829134639553972533519340145208497469229954502787748744290694757589287891027958600386484517208889452405851326693929398830925854565412171567394869924166099410617444782859770641930431841180239462503490025809753366123585792353688464801575207440232687064919173153789125552444938982240671788240317046668668548220381841551345698313879875943066468741778973645708045718381713760520488147864018705962050170980223139800881314829628351780491764716031270160876720780940906843553311220019424681600053561072396827205957282685626615202348715010224626124808085805583330800569610500945256985085863227705851664794060892078245771804120691460964339053150686162247844749380659711000376411550967894321734221055945093401629148883348230068403253074255544098332494349972682396866477101042597820162908847071083876120216720758583239416558323008014621879436062310906079439568683063594836404697673596570024332616783843955110231986788841370704409145954656391297494087570541915721519281234061853331628887772266033384742673570174284146745559137807150564689869306123597552177810555209918111277258311394350364146419596959469129588609327061918470303876931312095836762093923290129180148369759285365746875501622340639837894408747945464814081060173653098134893372969996207424731429882693391996840095450520200529998603744453621726975605643098257769630711619694235901841333336098651418808223769944903230264791205756143909910434939263889340810101811210091305487074289475120648161111849197049442014649565080803705038415777962186793655947836214890664960847561094019935106763247157208801634129599562297579351218836189479844984909492800683545345340394066424841753666925445799937164202444977770220479514792696417806656907970259234878359111983670508390993823902702886800069392615130534680554344403023917608114021776855967847190495440952607420169116092706409463190960447066659592728304945423898233572662228491200752217422637261645163318476657246497595197561890981395953452605795668176169462715013858342480631760323831685867866392079721631229214782830593579567525328209398336529544405427212439868898348274737727676008229193383932123503602196131864968837022372248377025107453773704270211344373447547684369266318268244548213764449965857656799347497556887459672202981161184145844893636707846790922269010304178816461445683578219317276921890683495250989092316114841754962854397938975605602146634260543539334640703055245234813968699813382907587408827896069741570301234584290612370774653165019317302014722325389814547556662821626439654112351986657621102582516216278833354108018980241326409084897735342815967806078616903816464641593023136895507627114307558597334404601572699817645822816321216458149323569606275639534576619937866479118597697901364204087257261058692705893557361013013378420225390314930749280536312900418284633650142278542406008098926239287578113392664600600360525755326893511612204357434115983504411863480583857468830083365731858439913748736431080639053724679093286514698882533718588318582813932667623119577676967118809459955515051339796979531496746211527920998664329441219446860495373093707199760229835173455185918775724192784687379710204711906600246593817251565346411799106214100529704977561306285883349951568087950428484223447032901387150688576027133871858244189043454013323660804571079933809269563777743474771125797624134988915633411008359131420723366050387736196528829362624532440655227975363792205934873616584945344929058852518784080574962036193199731087005016903375237565165183526980132040488932078618003649544073233329150258720463580145904386737310611781565067931365182347163603597069633361604892956066731309927796406931577164444526658386808164850911176404391840865245899784242794219301824333314848792543590290704707278908394597575571243053969658081333613218481919848477459915026088959851327390003996242479334856047023062891684755590440131971495916165906239650235310952423892109823188656998335846134686463854465455031506154661920022293542171131422866969200233041421441486827930966518569316979456671570536104948262591456607570458463672885896610893731401873895945715513377059176994079726380427997798461643307318251848298855466646422186543841493049332664673894596288165471250935455195550284475351872938506737590996435585402218796843962729610956585505387552269976785254271153642105239155976571411166833209973822084042476590684164058712752966982306460202523471646077806073682049136327190751809751913506770138847702276240890651746790482655206001414678569782863218986782021400559865866375995493156666765867309870303924934767927977507386690051832995372422558745276771381281212767795418339812441866808007637421792430400918534694459511576078977079248805127088608078237021516852112389995342760887368751096614155774705476176058218584315630923168267970709869276013983639746729701003645678316987173286935515772755993585583984702823002497240703332709780812242957021812408889910606377586908846884302350194181694929329891278032026569044690457953443095134145934886434939992768322741255729994489749098521154602647002458312271567641763097463080917519428750966798440680773036624976968193009804850330634079606201793743720435044633059121701824326133270427464587979130770194379098752646253152142686420493705396265592847182213539214112613776426844322250021640611624091920567029913614283400547159816259024054081573946992709589483522532203541399741147005872039007685690446000303977829506412512194939486855786017847513820201920742910872873461674666791488406302633818174355871915690964671779151256688885360961225141148790392832137225441975414131265431951035576494102254605384298663453350254379004157385907883379281267867331856786501590683028858652602240759374514523939023528662218439806769155686153168623903244329674547641782642517034769227837657631205774646328451765789135899069403691395685537049514999250698405298419109795995910033302790234149210584987935339764290769275432734147492639284698064252922558155427079899590153922177767035032966759246878905912488943322978272037983808818241276518405636474835888434727250189913720365504392417428712088860651620228810335296701298036851990430002494879869789582697809841232707423703014685520895070043874269121465934989317962532334420282066644750337970993230664307561514238304460078256465858003879619036463991742887935313332835091967719145447002463427072502004339141908701291886084703376081405088053261280145127841175861542079819896121416572112938115669267843057116724253757793172868818092865683667544065470039002260447672017478878126521292732006558058574852406422947034997745632458573628271570565560595005280274633055894962813964058305631719661954340149514919053410305099360595658353493343846804621417232050137889955078481373904221869401659235293422529580309215886291476502765805575972999879285180702054744056828724696870534020792583867885034349642610130694082989122610291580706039983399109900590390490220562166495392816734519432698543296635372249733762564976238001939411958445018267639118774452246127801974958171992572355709358191669714444669200771470737438016869415775793662198550899009683426193877437989133662588091658540416962283612336241035210416953260327807983267006949662389270837525096074598335758736021840780291609752011894694061840723217906165894924542574129946908815997076702774180394846624624530641739118729638913156047710122322368594488316427655209946402850275167821757351837048570470169376530528051207919976001221089196245563518088763141242840419614503407610840691508950864686868431495892592462775699342282645464435955428999468722241467158331121349903735491297068938317075871022674649266815331707068769038604942338175175897618220404078425047214369792726438368143291850890512519546414101573321591648361141752985967226157420538560050167613652191458223845473227951561602949396453568422021593533917970588640285732778516585474163618660680655401381304630946908162487241241827602764266843314088838656236999145227495296940038875796061644165621835722356794807211197227089493726178323241395789242162415311460274811123953524938871063580588720070979874680824078698312603351790197039925426059141902438980680944215162627856418341630682394404359256298786519980174585198904310996221267373838455571202803467436304630718596003376842609823847427501993270790627990812389499482615990816480223578574191412746759702712067444633423052731891472548879890316159365999313373282732989680565862158415745874279707363272841425394580221317721679887166720387470776547887030335569809593903105259552854614066815250125437157842364785840922374074653605237160120944094380469819630793222742054973899381948551750166254460872873526222908041385820496520121481430034312568484866828823025720089440550864395749242749983382215986806830696962113256857975847296760825386494452913710529605123319234562490818146981542417151475394144844916306654800421922503347181507453730816849834001499305953652376688290733699194497272292375759975023288144845789688016031957766088242969843251528810355941835667202667395771794210112137174751516201074886155864797978879981972688515187943718057020951571328330678001362971137429842143956308552053018896173776942016519852172783765880741655680619238650590827791115306159618892509550090587792851357527120993462715099966582637543975299939533445061763182280044439769005770165035915723344543283052590846853210831905022244160706402745585258278951213657803614887146780970288301914478411725749704871013494611182474374709907408026825779559804667138529945749713165710424685352633799405690226635991902399512975859637274596211675121201092110502947462816594610943087459349792906716965836043299918808375647984835643377780716949142814996742976525194073073764415879273946450556707443899192890447203005520458635338154326312199163352513085040790729704459944353077015550473065433878700578410653913268472965605645105020199214289848459861927865956958723866251656963935345406505354856192860134697152250912933104403467802659289141345159532689974351416686608850492822665289180463158208557518171358044528340410557802095473796099610473890699405970287541689911043594780473094068344250510321653461349105320044976927170814660979389737099754753935426258788071738471430862259995185553553320972983283596678097654667604210128063249090698051759259244209783566954247417810779760549526323097436616366287717297301260261924460228231868596826564965263970235882663774231654199372539297509154654383351952301655858650538982298500701176674266327172659602480353184161209393846788171103622435044013109488512997296850987441485190716323609100135425471669777792297723622933850579059356126577211888383644947925970321822800849121243208162967360581844627566085327724702174772278040757492734679240258121857989467005925816374018918757147685171565568677745859805546106628400015632463887178837345731152904420387926946172793403527256507713063399947998432351661999393818881212162277350151073728499132084857793287612019229819235293999526079549229719868753052006920479854925473401386735868607237248059598208270173419628232981236230807503088091249400686929775851847232591631969405680980011892274726100385569567573450822411261351090870878502078876773629953218810745796940440547400693120292329434925641590296965808291825078714104349451247538863290265765464380058486612958847988831310208983557007376972888410394934020910813485021084946897378792988368711445307603307091643991425287742190962073206459059941811592774022984116691240621639877438931291764876509366773081495046628964075102295098592879084612348498019397909902184595800254538614002801820279245354470820718103680619705038460106612500385536187387213287284832732951008659685852361386917703256140765586153388549365063000730175742436843087809480800854874178347399459689248170903060152644795618596347962863183934329650305573056352122944410235641249991931264735872238711808773061504608344145667218039617015757201258280005613512245388847220697064534100841333057488052834784242292871786416042900755498813373059038625856928574701144214282270991408576680964503486323502707964678046717019733438816757323052029369265090460901597702150779818558981040861642100824407093788535247990297515377877634567848713964740933489110170291221255946564429317210693838919515934311316917068568729171122289235228875751708986386301218157997891521043647856754365326716641053494196310508045558367549295055650011654586842525433481505526524433425310535475335756198526909686055102788574241841142784779154245607476382390992809856094180099865608788921664163954795228986139116486875634900488444375017215541510239976680397874864659582954591472095790310280726932395760226805438210937198044877829150167057691473484218742396436972288235859581129246129781929287320204525512476269619447372225381006639239648297999896123900358306644961753251174020067800860882175116908769959327207078423824209916493495856322635806742385823430167990344211900219868543810823800875245617496937003468206032819467085139215867402358300287505101873564553680664550855150202418796631478901766354344967258545089572245873956577905199081990052983732505036077647457188074720060391925236982205145688931600797346391747008732186857127011269434901879124874074707698903834157115202645881328837293535426623451953824854784092885104064247702315531560720931238266935041221283910554397859271653995215479628235119344771124754153607228925912244860153558809493233448367321779004435446914924791631661429325209507667405803736576088487672877311093969443919005029484819286462265068574105161786369824081409331908894955285818767418477325970029795662866553345792570337579036607845655460077478817457734748173979908934078344089166432137865322430453710436937481168600327596219804191443280315693962976942395322953291649596593228707300828104777532626998610921045200552021077100543295010686304820654456751663693314508941240727693705977018388564382742531976178469471378642258446394482081366446114000730171597890884735273888644974792213468117381975970793164704672562367737576175444069193886407109096469839580099974790110303610593507956970537805850078198944033590146584914981352518810146819291540263402635514286872913265537437764390194834510900592957431678996933250211355476957904502251596639687894226273730966331435858822234802484210705923360837803718084652376743272975430851986166377961105754342741088872333782979404562983374876997348745798361682697752055168132220036450917465525706952765035787352491807584310807993654015629800872409570385391872957532860421823727702108718489016330364421633576283622942806775501353478148757106651996121968435270472759473743984717260697094499588483574947143724453492504478286014822897547353438987262359535192266945977237435684375934912433864044998834860666155147031515031557514374038395924196793093621191309406384815912848536769093494836131799652029636093210898729859424148876841587275478092983263923617198672465365198935014606521485753694143576130515034614564603098587182570315476830009755334568485675370718516656341834002631194562638374479249048705206810386315181919998681895646286453639980362160510861030456888150329506817762945519973107218094785650179251025927085523407845779815774392920107313761828660638479786218873876573578111834944244039813598640259485667108328556556877228012086673693827264755471198403054868797275012704983915296645119558854007112984466661534852227074912992490894882997528550973167689515772604697616778875521236080351812285089963063777148607881565176240352597762551577192766864500925457066599635228787727364963076564788633729877772178457095583357467748295801058925329303635986710061325355911172987160067734079251464231316629245523711162594690812143199544848212069646768427363522057242982001914426721897664893727430331809028757410403134187883353498108655253865026578074786163006444871426304965180846433694432492280524865740851753881260274253474236271734275937600477206744503709559408182532533310769736018122137527253620464917979512386123995291763591428875006526364675968703118612036035043129643412570877569835668268786325047520811194592567957108041244628857740557746532880926911976529220845908623993347821731035434341128760936769994436466203163089635150508128336210575364671329674533234250052032526656559542955983521964727146566214413958751715597021283122717567641090987739991833488999054064814282506479770674772271330122706104448513534795455975666995166267366757476545965915766610751225738160149699391226604293521092147822964390845241182572264770987547888656730708747500574575453135928889779145485613240387641639166732613586411701657115645473199284908673069438055037973835853012301499551432817514173426330426366417499207255191320222781577207346794039965013177301737816851587894932971985318957369139890927349408062737502163055179738462400026136756275514493538333021510753895178533907614763904755927315884099288063559025789254555943106840584396952386156747813755310029808759472531095356674812973698072025788258512026701047671173865582322199440624955079513611220003221548337947118117990329182923274330649165774074302774466749745317532973768607813486661675472273135834503485433041875054422309891724754042060786680330323803687898778102810569439010595594475203197531491724095045084110902479372810961600719118006010615505733223549507413449794389496273931197953076711086863753029982594337533454326939709467681577477033188546898501696077254550718215471757886174267325290657752180905869268321311536855298152020903345978505668374764464082046113807960480058317846763550195081926947288763136016125613838592787198289026792070305541854940241484735276041411530724577652351786103483024888028090281525336724846925231965024858520532333309618288286056257584812935340128388841301850615277868148675720460797261146313513355588428637520163438351338606119457052651529670069374932336032387333410340056649103573207443065422844564685545917264735672111948929777839967425395769812780157003409466746179949415058274020769344202367190085529029634436174809864331567648170549427716026363225396559053456195957846866838512619630945024899556389789745959670783063418427685017513062380797557857901585205823112145824360334713380024310168587778337021127347089085818338769468484029715239741850131353758053457647025636457084407765970202444934571619645138854523383374275968865270955505693595471445480942438171718876545336826847674833867038343592567576698594867854704366370778747029085769109818272368083276102238971080726837243473703181893984020201615301004009692927838597853742994344107479668728156313794255058939329122036454308111769258163048798133758513631977477217219958375237292135842215490096886174669367663027182557410836754088079055189895489736886846292394080088423868807956810141644707733477821626284704783043993666527629590607718659420730379140976856447188051538339502655507889892092939107383049877330138637275279866789512979059012858106400269595619668376424059694641228453953584668047910294009996530227994496991162675719866332136923507901459254195622227938785376163171657106133924508422487155583631246185827747442862230680410916281668657095747513705872210619242190778420155275878898929099588580863294241880457963048985984932558457122182685005653912259871576780678377480042579072572737416137982139769235364482272521931833084574213098754096258358424806120683759649442544822910334327770391109266910429082163994704225003690154825723342739781541964253297424925000862330456631110769564091404123211694243150978402308022278801546026793073707867298671984680081302310783045714301829300833098253016003883757517172561069975577094547058207284306363960073054537468399700991164322168670086290555624438176167551256384634795518069865253835460034618491325073394927169393922771735485525912284405949281835644552025191751910762555072708719356913952993114150246811419213242881098443655011098821126818830369977763844944584868317402383655618602053963347533423267407176656303598963713710663471651190491236462290270756600555331268197180356595201767521615479803564522559125202007792377124544847984680424528600127206351461124608837655889417754678436603067523993614130348628755607546889137231841188246905128873356280563507506460686108568064917632580175562980023087019947280236955252630718377812327227107194905729106583802915494230134353089365013380031713595164447663180579021536366959475265841388586970916078455433707596043458837984959166880910791225603023492719512793703278147387021240078884812964838790065402465330106216679805137266011850185516617089260016184582232866718058544908365890327516821035965076689315442268896516922882798447349829514854283756930921007448011994195384418660681246212190329214493293732251757353363259939418073602609484599698916773380795419022890203081861099695918105857613867582116560941802945718462333070131169425719848810763306051674499580560043282674363032779214023034037779438584895890406758990101611723103967399672478359961046884367088968572124506924455092639261580101476224421038469811437130943827776275682816804406570468651164093860723329000782886962451939977954049990550847272154259336548688743152070280692223364194962122650183894569861428355074733680535033893038161280819229640899756026489786642269224016644806909461344020277803763667366395690450452329170408263489471297087024824645877699806216215862274713829160327374454862341267391062812805454347347923912288894983483658062586007485520975968998965539538877316553382543756794595301196371731729447323921372295982286739034735793312588524014689322963384229372560583139972639207554078462826207831565817729043974955933484551063176400091266451125824382026685002844559947146872288128198510785033857090917309916096919554644446757360161233520535656950852167209708454652336627056100225062147113443947567600718561763947117723892376137044538437317909121698087215765586829123387552340669420865321648843318809431779303512043271113522452903954647882782836714760615126745499664377602979596111205162276259697844164577560001857684959080260507620695503558272911523692173295193305520090625698436158341796163902385940159014306220089181659843823183379881974460991169877199870868290697434855260260971087229165668731837668415981138423424334554390174292337987070647856731228163047178843101692168108966876168831499937285086679676535205622377461797934378513180749809147231758798599401465008361002526763164965199643114588518705187384105830380395956151486061072242551597051061631662652830847697172701668144748512195008435872281172773415444338996930622662188976308804846241448027609086773010789134578278713816046524250483095429803808257187231389554723107582980635853277198986854748751262727977805992011539339013022031818388359563085794551092968198170054417053403173020372287564586859864869038251753007114039267030422789967912320286245254042303860847548450748313066608347664483757069939735598904703148212150440331185354101891498341782267786672092952707234572426088273688170625947184624772693704541242062845811620586817797902719122361437666341261709796995621936697604444772416019825413055569542214523673916959120478539188240347420990798319361559412033555331770396430951184500862722384105046148599883050417469441052736642490377629640598252933051738344062940499121584041176068605097897262639850066752036459890990712453027657249954822888919564683350629280547434858600262024120800987175566363312328007318681637484071203820223822516611631926473360375091864713357781041719809484495780095397152025847076000799803585213039228733397337915653616610914797126540627485262100418682104418749824729823148623732739390899989493952546130558632900956784970264599415702335102201438430829805547845910079545977149193796254547836931173323011711314258920301880904304556217385065932016885471197594678284476986259597128349241406187827182728638730499129829481925329068038973629004153180388936078463440388560326908273270822029911056640113922743738238508900042393511365485757315589167397656673205283150341864113659665714814922312176567480981247115830097971522229192849696043790834327415595418959686375622906213556828832459164372370364901103087248365319641674093367501667679798754188834436767280890297901323444526025529259723115323107638393066471014273995010373317715556764732542873341127078057194172063103631618788795177471027228762102412672239059871575459829240196937156769774644705748579359179095050949706877103417555059744858583481647918933118374933059364675716438093990782114430146743975157268154679028199470982980025294494635127601158655971898260555248752609655430809670026795190813803304898970287216508510265828289525630613417581094424467133306851883388397652078674897209848368715735721920504225087406157279508740860521195762238221100254458153350335966726627221320126297114483551991741014367037146614881560111597538242130496206850374457620775613292861708234930947522211651381975347389222168019032658633119398473303876249208185200557305957601423469387056895594143011213479187966790069729925991884022284428390610354108302349330806647666517149170432420925712409470167760042362836939332203300325546455562362446584136860830650316608616441292734308217797379865582331890462445563594015172838405738686982542055581767217136489959813055561640338021181044531841775123078639674542310509605651666818620171161276919925915922066526710381825472131107687137205866359633395836203734080377083048595515264690543823925352264812205674566296796065134936446580248783760314300492201815404128055287324760464831314192461859172511790553163210766004872411180763373275392492288461573710497621597328279305485786586056734708716134579084974478122880891304564997087525829916083543201768304989222212471623249447423425915017994192341912227654838265079169055094881121029417017215381047239473950160064904869218589324252720029942271151577626494944333511220649418005346911910507893982158482449148174728998992676272972804966291693044789028861225063517983749358284783115344401823550905106744698591518100905673401422472990420734251116399202888868337816970715933212223845391724987496892314160556526625699032605069373978583861338666158372476237696285970633634763459946838196191558897402590312336268375174792301216307202870182424338337212508412952701381271664399068459727755438525650993363786061584050963783295745058754568529639577869391348964643308847017313073081663640748390135326960882281376289914374764635514288750447372434140476010534826694932045559815126636540850204252375306850501774091728230732997299702227847393245527315901139898181265712475681627047420280215015001334251058736972670456494546344927024949893845225371814588385398963644298899439589235176749892106682356099983462764511615435442477647431043702743958767212553343266853752626499863633837393768701023258627209302521224881689354965965067626925111848512333609256342772619008042056040236015188696070125400119909015436111788321516503960571784649560496410377038241646685441608692562081449948095443123339776257934796595215730623775763200271917750500128905066358671383525788548322063206682249616911281345208630566685638803240967052995983612847385786627886747672110827749442447218984014583557012032325599333962242342387249864789935339590873062238814783444052533315717362012454897437440420415914238496832177113996728580517433597897486710266697551098337822202094437546363573207231461018935590494460682983237508663089740216369464991600716443382965993158276129690999479988116045978003758361606087019836465991361170007118535445965473154697059950444742938546977144895628973715907446145435600229578450503957420881329545760096651552302538099740119024876815829693894096833272447866960089160744063028084606060800433472230495298174741049863309185398896060008841442949619775090320161637105575055176693926102622748595125423161800772672825931189088324133882271454991892232612269198641168248824045790606386193472649548754983572027640696000087399423603078235710699422951296881152411120627120221426605355691976863690461609707149146354473576045303565661175354020687868928952525896709101852736429304572376514786050927704545965082404573083842544021510741235775368997415880070202469198288367949148069288028136070241231692404093047555097010548389362886368030217939001685569408044471787948125842866981764759815689132763063942988106340857766733350460981555805413013242070475322037410683441873429874841593116469382567837304931620861294799638926972039912105388983898147917205141026704561044365491204695342029942145645369984031781952903780834524086991343228792074819630656406709113530078202215858623266511469753518078103674584893554823764174670335451162899321190075725399779872856652071621690204928489835758869921691221012679368835686011322963583678510021325284021582423695185771517731933836174831890575277185514608179783259771843517475902763495994726038597433362893557107687187261614348249069049416379259422862574257382001128011956617436803518512566401781991843639656679295699574496715003655854550195459488635843147482439310188118174874103538306460088082913362952772325920754468765232326683549907348935667664588522846685064228216020380356176215843171912223895471397862919168779360721359800788036371194414413758071633972250599216328176131354328358410055599822307420501053621802036188315784887136852171003390642059692259559130840903228601491305425708928603669014986549693837031349202533966381210837063200687887648747120171102324597001121726443093758909292757813137259943514668231965203214635065741035806852637851140754275098881789397563616785549648301109721552485218875391811198921168747768942866362089909105458701481372916586440552559868734279339385193789483926186230578234208589923650970881487253452257463453941680992667589203513868464863948358690173369095560570833381962559301586397039618409645041392524571372545839087788648288220358623022297707081459370040456566265631663905089673190331234416683312846706595121285918483831917808189877935422545616055969091449230367943146539515904036094754664121283658607127505350066416566902394994993683262467179172412091557989953025811749667104227751005679282804100794811749765666335785260392478711852491151244329034881434191708476599252838418276488072864928063229348740560723566927593269807039760528482728046557163885615045678957058105377141410344410612774202463831167976103001554718331749087235130246931664674398066670819127105644722580825713729734142553141936648901202449991615891229108497870184356616525225536125649363324376889440243903278150426122564765701648617032214187770483471968193371808100091200992310636050755070877423475948396404767662325640584115105825780670226888808795028093442127487267429171132015506758918229094772700478106624076671051706696685902564541754706895357593824491327337344135083255043571766755420433014463289455939666445098569298093660772805035607919110322573630103646184563788410038359346512709437230963836691574018449925430998012225386349866920454534782524461954227379737603968193980236964477125340701841985768717665821534034631607207910162185193897408788212219411984229619212651881417223882450964817091762920744002046027654284775681327593991778968278789679004522334998993648819214763897316693913764644121364620446418611192042209031497316912340590726841483387344800447256141682674031028798234323915347743427435327184365506720773022233460537350518095469304300560443702492646978362194484959297592850004036368436345514561683767543897737390791713673287243554851391745086284970539145492646281362028626607024131599393390734668856821366003805274129793817256546810229929935888605966938349058520061578625228961485819942161120837463058822679781702142974793118053254042344635869841355440132097602993618862829353542810580825882379167425892535420838922207056451876118958904786234800934789360821075297233578944256150227294742056028395074062698457321124407155502178685164689190418949832429166479459201521336341881986753294910147450506650446041247984095031128474109868523124204350680650534887198170380537082019524697398959524284141259567409910289925017849535040954373247177845273303647808031728554186835714438761104348172320089222581464011982269390839778189268518452629233718524048470330445634115956784703459198178598455891213704971884613336145394432271354789778117317295547858603554418508170778744078366816626601955853151726213407034538350186440211035195448172631822936665040887462959297158817785708868388693433470497741123895415927542977127357776993555434147200251007763493328082661645737958306643830110535539931589233673708251831209119879135749764188832115447426570095180319298546166947603463463697781864424454978986795301409879079696855809744046443481264301306376441109835975549499131225641227975701423131045638178813630479912111978667531120167972463548644614679049957390473493350120077973899185032960720431509904721730469012635420040456396239534074972346746570375959072220768424632339472618235869920189244128954474466508813381031741570155216280463716069602671081680272100990321153322342728321623032120178325671431753587010675903617562577128772395287496636566858661701550793485160026387709837474500658456099623789345141715217475181411530443640710229201711420116434099706574660571000591616172333264446898986237356073861583227588721402521606110746123211301470662017859471345917967688074153425835405621288341266392435001489772036432892254077671296871864506120284824737264235938290230681533389189493735699172029757729267037720879349995863283138136317238816360358822990919013377807427551731776538978412866889412328881398433082273437237552646499776742884685806574590186377160848217171424992196714074970416139264679938095255964074581753627819010400177030628019459524535511327920062259460249071579451485201291282946485599495195406388620788547341019253397290625645385048105557800419792962294427973947778710110171801645745096190293988517006161085437370895256987957538655127188050581176311688092761593373860015908640704014123630350637285251806736211622302771403588693131475054699054433955623769893710740250183154371059470716957089607596091984154947285887291125617117700799652175832022472215571692007627758384455182534618924871002962210387337437005545784363982721240594860426352847430630515597744480937804540375338803970708545269465414392232706715999452192790527082025214894022574643640150768038543149927912952491414035215375898695230065857623532790481516412274975224046330651678830895123839856367487782021233363381782631382990471189564280544361026711518369317139519560960609829113892051667310983540255434342548388290765913363734025712371311974893876631794985836991640063963361425136072053760248659950594965330537800485578324415682410480322983003164819413437491176961249784945521913011377701547143052825564613615772570426155132298436208320438362634136153593426977804892018232634930409966921513047215504673507632578576180546121482260492722001486977320058274948296293530809304476872585772783105396678219150094956470751069909862616594260319462028014819423387713253915376159407808260718458771249286418686123884883730394471241174611761002875228108889742698056139753677773905260248453170582254504749365183941620822313788462947714540082079628742755385998632095307678781017900523614168507917737139599018717549456618200423968365012368996490737542394493147730990503851409121485014763988855430334176155023826021995067298266517018308459644932006202726384311033374067704651234629116364147222839990998316496535364643279028218926507035753829897328588866491837420752669901990735159566146338411217127957691465954446461309400991604741095932096025976683753739878487471640915555045010457162571676615488989403310113688529557254642925522675549509885476676791645517343402215926211543247497835586877344429079305265077816212537363729155926999567714337547328763611789513689311740777749599856424820014466070789930660004114129493460127685985071101131077980881348256806840465183722503784921154874577411563554329302152260079978482455169623613292455458367977421170475170191174631244430336059490575591670066250983990008132467328313608159003004157810198044049628757734854288196526460833737644316795541529490093872500400824397629218205482537766279954899742990124052847012709676498908486964879142994484020651517272035543353107756284359194278523198660967121829071663419941059116354614817912990300031745212445942720197252136596469957795873840962307940429223491229455543552762571323388586432136201264762126480201489123528226229265656432836041987607577922090348932946054482421153688184841289817204246650166272097903893602001954365991643209258137542688262544028839319857583876537368759097231242438964969803896082791996970832272688122944870952078879600994761607388719008371750390997612706758668220301104894192383209551808260953745014588629481928021338093985851278977100784028248256985955533230945540624564712463131241956832315552886926454224887125853811300848224493358133010723594060428691550729831010600842016420663118355793363883331221211045513933348893144276499048585379391213285615003232006614555769801801769856627830321924351651662674136628721499241763160508549841465984393053240495606537751929389789949185145989326869319655388329755338379338376270298955246812266166922425290136717736004949170892503279131810347727587107393574253801834823895629992883924928934293655456947090032139883887413568842411289963830189414583354084498074637835308253187897618863618437207036203310660295351170343791945388794569944885364751066821971587906273991768911838123443989605780724840506806903604091696437961540995096273463238893762342777495729968461030426836108980561086881170403904726353901174861912449979841277690308624204204141279663338387285713054477140567978925480714096606866866927319901780597394484033441432347762702587620915735413392381451043876662544407385824460818533043263481342577225751883505201570577255284266558856857235193701395417883015573413194964208411338586497106459511392679318432386524565808842839676963344302490831185060620985068781032198577693376914964063816153474276070587416973833759238975337181125920347043987413083029252948301362994300725963291563901133952935953412756275260404286311768131498991981924046026497261201449461252474269188633133224716807261356714835346082120140705777972515547727107522721955278105733537742708678120724600063115192511442591677160758759008380529358037874163433713253467996080216546855189925360288384720688126981872781494787296699518345788657704742104979655137281687606121337775665231989371774876288540323264267844876673129037358884839734939090986370070319774068358815867983639869503478546525235057803006809554596889291847914926004146124825055744613640703720996812640596427988396595180014003462720513800905945984130049652884365247453920525310603790716929661821224219071288917968339123692871606337341982721495218130517353702661073716815490580982651494376080956222376921432478913671728189458630320409309513337586851337326252329019109980164337455406029107133002487341128347496523080023389607133714094132586599867077363457184343815897764796401316625098866859780637733131182250490446824823820862903774835720663853755792684974443145236846473805450602413156045096898663941094815346135362410021425897318246977921356535737325309171333398464909685603651550811290917832041687210635719990924486769167059021333995464029284627077311653143417472570994226563882099158492743281800882388873650765191527648613469240140186614670971995946099149073336014064051335284299263926952081363875971126243088814233136734126827205415133191214887696757186419066030029026227799438164171605952195901358159987106489416087860568030366405378119802875253691286749769188626291937478527689002862457071322249645703901673326348809465231101298570061601675429522359753594947625099210864380770390513241599613506907842089931408016050852948749571565837007544736207767105957095648597121117817611870525709149718176012364626890041030036365334781893517111086692037594355924242738397348763330236002170730790470408601233999207040065218415839270207581805921232281395170432639232289869699385311928532256731425700957774408049983563458959435703007171687378704097854273551856598393543292645910348856963239057311410503242703447474980637980607177011023218610748947546158307973594257622280784853392553855175354237571739001753982967550695954418690877429862089832687258913204985923123076240773338846155450166243820996428224120722731973992157379638844768931642851325213268566001799659540083144103527912046382616076291760258361847923774560158788228894346270512305812532665826848837387715284109429051101046440971805654001568720316086591768803651912718514927107350448025922037818067828866276757218859563772802807731232765042989222150607203483887491750053136588806911676352982400980803060445282782624146900549160484528533794415117572713452896777755014375030429737982763501695163141660984956549809672413061171504405472682457249892232142505559982292391984380616046648377075688608268632429615725854799616476851408842446478668171879788970854004116707364743400125113862481324833325823860442720345629367212429037154980757040134172581300954394874153762364806361329140350614995413898419072194833733822226660350306987474619160865421258185166222007353932374438245066615078934816454716806788563730248304741786349903620773828324717640833428495432376656641156089497809006685231037356505851734553291648693986529654333283959975247296789551350270295199139102688643662280156728308047143633952663753801235561853777026017776946140834945500909302441427959189934291843612687465357380162892078326310237916397283576205225597104150298815265112810667652841800094464473071702889200080426312269301741550558664839084251444876549184110800976833567018344742229335396791084328073421255393741302695889323796883617698909557702906317827457847657281173179391649847883527070782399327965155560489837469200131723222214939264155717293507086036679340499657407385274741715577047801429289434839849531791178525509063240526393401934847887275371862786422067887422916563479571275378265302219270251168145867521844282600836158872180626259972231726029482401075036846220903156821342060694943479852873663151447273099795606877792190028682679648071893622518821713194009093762068127169745722759384343514098061377012686475255235592520920995460460569622706702414669182166781062873883639884609169956597160400259579263001875808183753494622391607368934752508368760143607749710270381753880757056559961637847184833021523543921312206103733526775633800925271336482640712531238618581046008938397421890035534131761760174882256022010241529528789767449802823784489074774104850481977577124816408615504408042435715530230536776451818751559140851736916273695703136652663729285940062422587834516003790754924298081638494447163103884228359802388384599133578938049141527249566218987288489555066905274009344538598044981959026194686549083422130063870147112283632567827116253634993254226194329979104928858974369028686695494947854048966542392293383938250690403400532189950224255064584685684074747525626743141562181173984015514325936525187541423510710811854050716850496325389212170678774980428121253474533129115449806798178501915225174912173739430706051026178379265702653930649402408340158601867179242292158895267531347597960895361254178559196439656970226237312264336964486676383496888692067040970818171883900527070420993923759482822887813445246357127256324715039043583663212204115822904450299654301661077293477355312150648783376662484153358199176232742799937585090109390110252126969064180502913245595591849837372534383450900342460696829943487252838433297017762836959253488921393659348294289957245221124549580701691426046726694202862411785111100136077555883351931551258582541444719653481754564784546952130231244727345869722968430379394551451151499828142184516956861097625962851612117311422846641873410441432117346873066335451758023661510111650272056650251304343425725050165305606119495494867328065373325831861098811112087452481826072562233885329096387189655196922051809177581745780700514064896279882246280887307942639373788483677047542127298427811362169886184739989024834314748302466399209670111902513569017159848353812217489275765320069410387615579996146372849971879042164536073834507638577353622476826750079385427937522111587670148586532981263453425940164211345023065290224089472453285480767430138281718287371165399046125344633839424938649341590604196804587648782381321199261582494110156677879020885608461722791898769544005967397501885450768428924407479420255058014802504796812135609338541232355328977777243629393826784493895710044427358624952878227422139929417090283383881708307931941815260119476411022976928586866428048886392299671522317312495704631210315053726898429164918771056244151561639373969163907211583022645281351496849292694723822526275328313127538199789785611583489302940434424455441934969648523927098036369219450552408934354661167240349197105605020154373989427904849172382380679241453367950558387287206905879235361435977010434075586267631557331305016770763370752428559461796490455423600000084242705006978433073844364240817826745685824743667726777761826526079458865156132732644621510699956177988138551496751551542431319023884353419684511115925720502745825272521224082694673084207837692660467750481876001182025683049040283569945392580501492354692210457402534698970372062913072268330925127709323261537131965559700376990465668400068123720115939579510505136745024186772603140412057317562514520269756389378887852004181416324761485397443036547237680804199700954973127801860541364155724816443187624930057192161726609557543618236604025013374207457246589900813027676695926988559710530291938201210828860577669677319011266786207267877434395649301613821689974160806487838341791736758876309742602956369646691385811608015591574059463828757238090555715778009424464357212577608157070239593344955089324437032261926739051128410713307525238118581674138393984864861573261373217728375921136292093309152948667515234179147774087427135718455926249592324293898120435425220151964676905710247180453260145341522223321318822085408479634068546465574378146202498393421769182991161454262881376376228225904135565388925883569609098779983914363004050518720648204755727485163550560072858173923277409143685822659311053206901138751304706661078203841486017240122700784595635407792926212733509889366746731646388603465261811375440726234822011835792656490052323169261964427006076885610714139186937794253526018739857069287462412430149965926530633692805625978125279716095820005332828384494156095977480259025255436094630245598932263938433577778446458450389937677308093907561133552567796175776528881748800639734978952366084244191178461216474593333262706249645814909607571467611018867185139318337381144274823066972543532017416234348587444935654515332852306951840443311433957404792286424219777116513925859298758776766982337313902247062221678255147162959795574825602848805028191618491903471408349279557698842772174853658093003855979305099129426285954488066662937066348395451508318007325334907884135353347709886901533479130214094350247040562982772188007976571793606779130965749546347419758387034738337496570774964554563416644083536876587563888382718667931289763812230653142157956485828923880545998680752061008143203130489730689788615445056109348581513505650585432851818980859521522154732529349183047953580663387841464729270185980255691490108048031788064332877521398214506202354810274113946056008583601160224301636187152223956406579200902040274835605814153469186665892927867859375101706611160682396199791944839352683673119182517737291513724257002107246898839948892527257300661308267723037287715510082844936670169487673441475605182676725532359175199897685190554826503606798539054836328565287904893233085537398001507923520405695228612246922809358219316271519292066502947316438038472779776011450511971731083945418742262651211089174526215703996351986341095654475257619938772615120219487410946410047479262788275492849425002076932972511115875654065089716779213009993483801831658170076190831865310437472128917865146841702592342612315664048541480963401797643458967773826455229909453703646726032849432907115887672951213693811961861603684566389030837498371941564207818469144450712923099710788864916549738508204300822933457290369496163709415928531945065171609031419570696014711215001484799384535474176715477319785769735021551145076393398837141796589388847306206936505683113191538954096273547384980359137470810286149740454592015784384508732836092671375838434831351480913828369400288419784549116507518209709212722620826433738247455689874355544866905446997077466265572948118420672487420899018571814251669696042965281124980199411347145850328693172961718183288641358506941421521122680093559663045002067752552253398897576971757490761828415755593497398608675245317500298414029892109232356020678772415474692081679481685438291700358414930503744058911871135565874926103556705411412616790688505906931434098461324317218310089847458206889006399322967079185439698039351975942853271974351537222833102801583240690889646255546205959533909243206237789305582979420033852085607246085411094488414122832670606115858701562431102820238602747770623452647004892402120854130944915815095862948684771107371817330907510486597774098421655823578503840177255695444347185691042484896855060511538707820598323397416426379588432963409958675735565838509441427073373310111612819574917511286587466475626628996431541146233150519002954445937652785798660977098143889024819023150520712244276877842416586413769905385661087269898422738001805920171021455538370919299057353946211622074859859024286272639440872732308650784987814264559380405080000980023306193572006573364579910608887421153671917697294465657872788542901782481578746324908208675682519563465682245808454538809919605597973202237512635860020252107344689311692266876776485947598987879019936420632811803854200217214162631935601665906487840738135574474190623412249096187529119083473733235644412358483854547534718840546309026856866038416909053902983763399837293183122956031675279856616899118175719363010395482971474285187574323169652986202878870100358206461887866147154169040560327321962836236926769094619655321017756869494637818136989738995356364587832870579124182948835899051803319278920003352685577982356586335297092259418035476642873200555818538164998231154772257658873153825981000167961840444211472404402039846399736704249241196119292052467417854545196225409499147096745088923949439385318672947614273375587660978030841269369461519346381298193062611331440097461530531969644658331058843413185351184463481674608659469903043285935476899085836106298818766686437120045418124002561906200748263899234712335197164176250951903648311861333663304508369081443005267210999321875706895397848652315838469535790611680030261003339872209663861983811087049677140276457388810311088537748306817848080980561180083442559848380765334853662765747496769951499106826638145059063377361771534227037010020716037952050542320863772286117950258582022700284714325107914856429213254454230622449872677603241748570401685553651922206132379729552585882207065186999021544954939946135879641914704039948734340618950737933164849687970782754351496248020562188472963545816576919132094386689526810744334434132266077532646875136250449212635097792015425237411722957116359570409167814258394311571925257392203499380111832597433876868369457147371477994126689613108053310684335512530624717648400442562624373949197795926568009036716821726226388107965749703228026202073623494751659952307571633132657790617595963161496858517985026059266075382086353758244933138166326887744796343358526049477282709838557470516710216250590193584518558222448877562419343203683341498020096689412772376603106201088337629491375094166037029860932216884724105829018332594616663472436962917972030543417377018327404222607870559664078534168837011904743641495428006952744169969184981606025012773541577152781149145623205371209591137080293585809730967857245947194468002023962726989978085731384955515729815744733911583374659979875000436025708238390102916182811704691349572686737163237918729876256310733154014548899168343832425115786464691697191525977278940437789657534399183765741956530380836275213554616009817321659285548688367005153083308395233529733054922317716877972940840720539570618435603798792341790557218745755166916576675871694261331914320507928392813164230806969257101882390178843058747263575589411937637094645995677099156127628692598766764542164580194187705529080171986617397152697378495910959833839998948004475692336068589804811514173771414009480238724553266361067685675250301110998639098780851613521557587909800779920708136572138389009918980434879699940086263579719941014987702675812906457012565419992059200796979059173728199961208100730362020498797181570050687611708571976231583700062858520640051431495258449546971438743090902766997930956739647227021423110326270507324123128534000725420328721358104377176850877667621555119689179802367554179477008070464087283308091144462161906667253795688110062579253940173933482492309804657688625999151208123155076354561054356890429102604948609912790054230567709985342787207890568274133431528015183261850581305084445731491208825289615987222311100151614779455284729070029056759595424448284306650939508146045206532268130932591127986775042266804393371422538215360693624218197689041069397595215455600171155982241882186996429856308010753748522789056706228264886654980894936344346354997765139015139584107216467793132974310756116625860371538184780004968217117937804859098272927576307248898119725030687567280265695555647398439215997894037410931946134542235185095201977398891851811863494719537866148055929488294124727761031384207517350531386188605509200395124452920856742017174261378982249278647163658196155251234466814105036533502653794061844131520502141054309422681248767141056849278281904236170513116777640569571736420297755502567644117127961904718597934534185124173390073885437313993432742277858257407481660855966092054517114844432484885263735364469295927395677711651320442485864545192413162857704993271471230358797711314060249464402069421665587986562893015914796994285207065418119914229594178737145153721113553050527649080813923413628052844769512362404372086739937589505100120037166700793864562823438445569372965141051867476684900019611455929555386121453791571973729898867148948324228971190551269665068433791738572633289836149927728701387120239415326893458092295898030533487527740657323058686260379410455961085472631370287822791786274428396637505094276376583543838154804979311845483769469787518858587318792108936840219850306308176653763968296931330938161734296393043227657938782001463914125101264403670590978516364044267266902856850182460240459244066584063482148235698571683990121021027568923226795717218852575240493017239919926178248220332490494514654655308705908773895049966239813925418338757906709887907094412033541361073688539445065966638898611261331898142987653208299956087789620285177990868781666421183932735788315270745465513843155152475396529430656696296246877935237527520873815923398968925748133203683872130261612599215314209398590045391429039338782994027051313467298643012274339636450872504218446810469976690830152579508254738626727764097226199040700324351275373303878688438513561377169629276115474108657631280611160794017273335113370374854942267505289413517965220563954758540390705765061810546945021982186148808065839972633456212830884316479351547337846727445213649697853576927215035102976897306224933153987672083538912060166055430453844086370252992254139873846868486330454517511623441396852857980289508061896037052118220895881855851714021317080379279855735380655914861981104155717099097764326477944173320696656654103126366843030443502109591526893988486195437573503665398212347809178484217495864329750433135113205257435944550095264864639400408610671155181462199212806062910045485152781930954821298294416971030973987547620355426855052539380719063592877208267986425979349004049670468146372995847372800225220936955547862635469129862613020000022921222215687189871454808102232481345733888332318128080121266896180858222817246542463487770995776524662856448297622844039150585898447003579300476920953059545895196099550177707461301679143049769518572314469577697112045404386753780452541760945148382461148741503903655611955218438204487263629017871171223239389488680746846636813891861637953612789400593030939547360619864163412166573625318472674116646488194042732009505646231307301243399884578116285326332309546838834403624577731303605703330038264833247602592996948706829155242522293071303472338154010544291343655811950989717487299130210061303111904698894655626673461803422299279622653215617242125381626586070516528831107771878154601458717230134719599175418608044702902163961691282014020788471422769674645527216780361393298460479876584545203528814557257485012394327426800811303894469753081239896536490590051762186751646121314412216132868201375857756598223664524016451004460946973969723609481809109082638872355947730512947280703828002551161550889442868653479701757337874873633794451325339279361724704379002897940505674589880464128159983439189242728525486580318193614571375437836184407619701608330868128791456228167919554999773332321485791910440988611003014870514952515664152071381173221126750344800949245217237208973013802773838520502782431578481079418716805484549650447215427898728132738158276585019880535189021356103470800642966581780869088386977545162214523335262595733273013942997466859878806711891024799290761507356575000036738069488164019541806816337749604764531685173102814047297477420416465620981139438440186122555001142020230661513528050037611921608886732635475055150431547244840165358472696872437006934386471112534373082357168853296039065124012628349492858912316603430307746107539804542137290765573675152992460036886586787280256050811399973259213251604370948018006209549304084644602698105987800259808675279622896615006753071170582561760359331467473612674262211837566980887060329231709102122104876327359189964469147736890376445939646598312197659599804093987480536798475172135060866683455274857269673289724344135810011496624127220966662027195227271443390347019495391634021499636120679949309476443923981671284545847325942707162132922078291119225145182952625779141885492714445446835063600786696167804969276230148263576666321520982372179084179223455595460280302391815973835863679038365951728492062610123627814935828182255258516118655246202981274774245217480122184274780003005611265544260958402989740625972421369134335877443500191184745303567580715923317214840970270008505369581617599255338725896378671008568899924960998750931041075255806936184799380905415344241863805854888054386116757088224102427492896768252437823989531935218497967573732311709249816783440765567396989403347674896122925288825832591381951656080569803544610395541198266056738187542137473303315495868324779821118041836648298733032197654194963040652941507756829762695500904471475524743639850700430093504331804752063363118348788066660561615200839702103219444112276048606671002401850324538555902339534165098083256757812688904536777595651196088615598766417164435760880820221775171019550414536914117886728040551146136890934059040686502681841632100729367803787181551616948245596559736312094879289574385898666977215983017075475115033732509134833296593683291755339935323283691512898841601290343705014511295133674480962683692139376440951778423170911430538502454552413607957992512072924328695274064420891654363764022173419873886149351492070561086351119381706401315271695801629674872537109507601514160416722028735260122537033780656593771784528480278255631346563920165524202956988294730609025945578845869981238019758707033412342386825050602562060869547227518082982530996488183197365666673825512476403933809388846270065792055131967784729954834122249493287223682362161321028754868494905952008313987425818016906597638055674116494035955326414122251297977324004669019038462277075896408194023531026476950632362957490969752503231231587073113096832614268739626095333255156895756585156687908095572730120997453875373211566479176650826720736020919559935563111479527441825256945637234923707506451306959948802626758566139635067508609595286741885084113552430443662179173560440770301806883503461315463941412448628242330360973167330073415879840483706391613326987642574919818276632533083646306656204642261902522180026425172513034209035053244968362741683566474811917504695187828802048870442161777953934594579973547505820986751917754192648189210894056911657991340704077909275651275632773762160805598849635959433553068691711227728478289046661121637429725142568571824518267846858197834790402650425814264096951019537025811934651623045799875514537738168526134623509629751236792944041713922126350043505332859351668216727209939933945052149464739397501207629870200571269587265833507170915292722670700593696947566257266027893108480036742088465902338458506958990334866378800850416164386937933673450985142055731154705469084357506176616417607709942548786556445051103082944339011086194469487871664423875216830956586247360309006307967297368493074321596785009510091245517921881466935114080475071316560329451653622377250624756203835146631622937126153304441630521953799643958117956310747805671025660263625999087143840141816900748409040289933075523444409272931641459941779648675421953967984548425034196439769790184859759505938970609376421267191088977704531906505094595942259722914548509766430769117271132487652490021333108278504284799543141570721734333887263279240630396417391774311631860933791427458355426948388406097674676301594707592232912204835212405903496224858196049698823818380405034252855124629454288304216721586443171137323221392899716481283834702363549076925121122629144717393844700088884035322764524838937183787501773395939860184728955651661628401987982668165062492028542525118471908875634022339597594081099438715505378903262960808419142930790928488246166979486691357627365145482226775141034077513250326941493864157961212593830329548392628064845106577031094827144642802950684008496427864612414357323270135342156480580610463197338270561824708701541573854884743854515341023911323551612891715394618454347543025077510094743295711402226643883797383696015420624145639964762329962382471921267772634402485809849041493764939395791319281597077253698744786501422256710717195411874348252682643074929116536456550614554141295051839208406108752126855111027333371527912399864115507157756899473930486743532611295008408356159309441544781030618586549351237003070860770981511500086946787165912971445792118329031558961697685946482106765360393915453206889168187804898053942629054647196114726680329352266144904029629678616021382824016228657459706538149340833092727386118188009567867053546221250523210472862094711824030352122832098029152787328378713761518830597467718434263405303803162676043806064081833989442664448835219749617236699190309348797281592707653107319840734104128449742785114947672357617357851135612366546444197195145016529407771147045229177650876775494586543502645140597475044127191812178030131366458117023232972257419969413273582065765625375980520559866580792777480477728578779470162995497372375944134385853680986239746049822896881276515729603163462011931813970476560088243125872413490398381531212517369764613269263915269260637073000063099922517901375820169794694776667240344387233070489780785101969134566509642026545891850199671140196496857073997734996131191955875216318669140208390071260992561695582542316889505556104298059474303412148028270901463763910184580699110142107887209850081485625484779516292908704476359575047995642327803364154141260053689019276991999929810471088655183988230284124274799384579725538543307882827117772305692394743373213448959750004003436719134492011677320906088780537606678365654642693032447672744560638140397891918472148139959044238283715612439115494246424773353068839266674240772913393049382583187656389873683267865740352367310166505162788974578598196793951868549264877226962773693146365850759121241124298282307941774449471018350155375571434619282420432304321248065224984712702446992250402181725759355190235980069778467752728596958498441195146821367210560070857034174787423593349110519075771413360395947218890449831437983140142525262146330580227748323093581060873413690612351509240241193688827036493864618486188302152518696056086435005763126016450588654425139035932984897875622186027129244740457906689245725019323246335603854652808062346689018137244120118799521801546804132223651667653610079658941646376130436148972949486177773522031947518699404752559691799811669303475799829864247550511460473616793850607780621165477516826650349068775986306423607885410784325720593126548159865747763363063444444027598740836727531530191523114433254096101786515621678240772438120479539579622548803819925135542322186130414677212975295610081260802906576935677849997743314224186629697089329353153019221466714381379426529654026200081982536165919499446847967946083646096758031443803494071433997062902789359411795048408281608052054398090741580344837968064040142904416476917729315964746608143487300108786783764827236347574560572265259883691722296765007360729022727240502732145631480498645470216983122030445086347727630302304049425205197352213732459432908119595643696051740811930303910418909948934780039951349230935794714131141313721245710371556139052226627013591851226247730493668403209386101225777409076709703251130152295254824597292992570616820271748988936971037813126981544486246736020724883705081438991741029673060816964215823789911108244593885523489695467831687143719885370176423810502049545870903036172036487934711136186202744938626408941872200661756011876999119824818344287335828825688336195068855454254210738100445589885433992985135796304079167277154675886400071320895172733025659747003833992163407631519900133996246588314789330653095660541904044332097214804139564160114740269271701418749458681615550151588494774642937059503874210346389360822011598475349157615604512573189148891000064692859453144007469741350365689873638401584977093291413653597933416862922224917384303240200896696086378272578660398487436938721754726830154833822044763463786628683253904185746174535084037924081471638245617860404038173272245144684268976450250092916743315012810351122940461938321757341107138039626328786803662563762830589683643001736404495092285157163738480622744854245818563524270532374844441077300844220768964559032454939638838115883490587285533902207524762477870190025931292160803116736731844712037912407854909253239328287323625688022189903071421666264074463735720609626491715042819921605600712036970052555493374856445863971267310911551751935703808556480487588273628349331069682542887193701237833356422694050506979184994753481944722363145862820206843220576273118964643179979649641297049619002073864172955104970087374106790815294690734239181752634693186955754109453055232457635467568680652813041485664436831877479176885100396361419861260258475405126947055070659829329499735577780017010208384719010575732612657178199550340804738918346281452182219745496310940508216340585419915816216462669779895355559033213402560463158367446091410718660079971623559436347927781022233175379642242016053197276033089555099415008701439384553412409778385484902167396361354643836011160219775102402714497198802381682330706958161046568312664429055320278335799052218539867864428651866984284655291106130239947627026693894145595494899484912933110485095063065607031986617343925589862356485190968065586244798846081476400309106416228860471248753732945898541765324937796317509999673425115822348237257744109351505449979724659398721006065016598435222126138302834893898322078992490690756718250760483523052507577208254659930154223335354278771893728486498467268682146649907366403077477913043055568527100627873884357458906039075653753949561976821745976487165324624581454599829834271609539231977942493109016430537584383091925692638586686827813997777912033367999198521021236547057557272598161229841041502266159072719158260599754875442465009058644545780073497105807443920826324202975772280904343756218191573314380350267871002997026499028038318366781053992549279237633165876085569865740874078594896603458670259942015437791077848197876187271915469872198527472761378190886835616292118730815308099668318175960515255320461443475536534192536990424412476712425767959913548406019509331353563917977799231792751578543089815092972871419993344761524382203985045436505445046457848925421112746998754044189190621219172047851853815964650492047867042706659070552297159025109070116804735617967164654175993100955568815441474729708190601284189593734576273528980417286287479346752695107600811126500228412934558157818400270577134194253643333052248468733383912349818731898229084014767277836503808797457981686083880467351514551300597015829192612349304867875857026165530975239466286468970153481015581804991268725721436873222970821423926443842843151426627196264763559468792332633229853427934563912598784273178258980946987473816755541007382102628865157019989385255219282040546991350843948453753548366335520090362210897977498890620055166555935327718508622201180408697687981923869573031853088370719668323284314083578387795705719387848519708432799539555667716360640252112267442941494210642197051671120155530479152577130065037811066911297877744364134776554900200987754525675673419077363638391473387985900527870025177975252706430772761855237240534766991918633144580074155713063203475117959648435572774631443213853989533307673419697521368729445893796912662175837245144538664962433466874049058091566952353668718820180755357066675718441886292538949042317983880646802748936485977254754070199037392731572202726530497389923861572020256715803929133892358451568164495253867429897528015867880859262151969566856131679208480194409903624425629375063780199595575737726886358383393283973989083872196471943074454640492596481463776862324116202316599674288652245288061924312881849271475458157996202724753282119870734610459137276264117292187382722306662341914606885829566177821980539940531189764260349783055868175119508514620835075507441969754617814462590378116099010501763513662300986210077395987837467687094575168486629105871774649989170354972754392479360957573834527407691727498449222225992144494992190135090718032145585734183462066079677297391307298755466329026302728838937945276480182079026936114807464104097903071228745760703509666690037348911874625816290901280029527641898362918471129145580101033156590522530665374396512757851121547896933130590615141825060037483700523757516688770177732230505187831125828371811963459024309799466304804919478480483131275524519775961484110002651948044302445624671860242685137769025141024467918350466069766615002001702660979257355420740544104021464101026868049230785293536608548568048875138898592681252882257173485239974567075836655552880578231611858571632892446681152780393403232914766723328837597893126086606804313083003647070673173614346236264412869888764593728081861405907390511045523798487606638147907213913240703257808482474248073031949596505974702210751645346691719936377009498048026719287130166815459088520935922647464770483748058622892222575491642351350085441580112035705873447925498759713414285073158911996810308548631993332068111410437385482394190385862396342980427110215864415458601509253224705535162103932106940557024604039517048086682712395778137824902963422927133023471476966121559151015696734502017291693758492423723385043615127920040304370192117640407621886027286511487329209150999968067552423481141674080892466437589609973964698034872520583982881061576082474884916094582457169320425439043960763886535627154844767507197956072054097746494214535142151246415571093954099025133861760423622150523756199297457081596951679608144017572816368750680456672177731084501299102983856741413063774095151870792181976269800652669985712185398460022036282307161144637296158667709779968623268224584298775782526602014187145499089674302470864969834954683326173486192534118420620817831530905468142314702742489033734927184197160300559867965831164596232242199823928027365612228954452198377930806221391256007369536881443764707367199170552950517630610244248005788604630924493420492032429823940094637227563892050846339781356087423163744492348651191416403931007674293126451838475045926223880175198948005426176469304917553343171746633160832937312209289374006931527084657156233461158347519705463983387019344725049405182934822927407956871589880636458885739929507995922595719454305639585476905757560942965840387743045544233223936995093040160961328654425587205673198878931298679407823986954675235122363746420255048053166957193923614891488995044150194480555276390906398236098089894583280901102672904955488895973042066506434675381376161701367775547799780329456928632953096012626711914458665530107358873147663288243783096086717660281240260762159739746469774407720558003274255286183697461786538385426050883041640981732579120072701846768806760312020934054671616554408279379889498577726546602309978388977596416212076348670870152747052256399396258039623677336692517714417499156628209453233030937564140679122410271836483882147195605890424442397855999678231790231836032284231129165574656238188479947349003848291630352043009989950337845691771660144641447825335935444923966140574080834368903145903499608189453893228628325232590630907832637882872776440979077795244579251099720743655005811524366924332821375596347408085177343055849494843538579751000578341898204237995712867921964557142192139392623099926845304076655160301470175000759808841624453201946317193051179926634340707352462130582501937452204339229616626467504366992475632611689691165406910085083654303231998368767845980407283365969901161112103267486500275856957139898339635430049314732904261796914817421643156709950985483727158365324803125236832299866735650034317608386622003259314054037927745945873268294458132913738470629546452083115420745645145854259304162842966083776104174051425620836562249438959232640049540137790037706923593432648813559027201690758257807113290132639594788326511652746344919433230916005617242530983239856764783417190768827114054510018754780985258065442272850157204786456613956890239072274515912952447932942515031472746307611475628292612081016289173115200123288921903483867082715457436769365053976720125282905339571556570841705556990211177478677208505256009151037625335989363422824514953568738781449611549394277012121763475786980083545269719156736556804754225822644808966869323623131083361515438449119974408923140622523623625679094367607371506424801869237885078997097378861744260988061402581585187862753761325875984554299629021116800117482744250740021678206219238796818642146160087301646261243048827688039219057073198589638081895782193079002773750941502615004830648321848610518640370087036176830512070921564454292122663359425391965098668040621832198932027989940992259939700166160715552568861051066379890527841611715218221274134288456695202348278377484695435621197975741560756375952673689837969356249133027798890700639714045309686848805953177604491256161885508169554006305415239969692875323531130150243171224666847429877208349230178787150192810150286509384408247648355607086292721394419918274036365507618548882675050394074167268166459061031200920122902733081653847113158281465256623538913528336507319184247681658012135894860842224891899115503486888211992131322445140633521807924424726794159873737509794785005222338880321045975494176784253154908024080481389562875042730061450225138195461967480652775299081802973849430387160380549156789960203633616487354458619833038011525497037408250564730315696849444465445100714822494189744800784773871132733422650245156471102692571359904727299424392821137911483651674347957319365930322554140860680683179806104500727663264195829139649012340882651385641290261851857265000476398095871615571869748461142043201070920729348429797035046526827740604256758530383615389141692160336900991293398956344209933722872621719751281132263236433903561119949694014838235351511538083125734671498138592153259970776231357010209848659785328854712634671696923261202117291322109367495138952203173099138895007324469955542290073713049897530966680678427902115991174587545037778244400528633523760744892379233357512332694184226965373621991998737055926418634286219901888486762199753996790387166931184988223874057443922222363508751305634477984513486177006609797709585826096453183884590198906671344370952819726399835310189435048471596276431695778505010556896018621714362103051686641368621471898606669690033510268998934395943259497027580675488100601256662792149161793569441495635395724344220897249783938163905491766485973712476905405480143826637549581569885624909386274133352595498823367510302647221294546516207310925303900507543965735396787067384378470621216647344920662588384365135022288900206447091646798998185495082066023802933529957718897909784714190616772047233540779492708447554785892700661891177624027027086007239737359679318770266863428062552136428859901163802171435591324877887815291984689022241878314376577397738932366521975474661129598661912740532520393712461890663448748720450900264593768920494544624632587018349586724036962672580727648581612793999433542013882239849954223518692188103349964126609764294624693129248483682361575628891776929517305967077747205574292221536148674457728059853614532909965402408405305671031219323257329256928341317436003954867566908222445813993377196096867550904928876290110596854320190378520919754989317584515944875862949649150917234617352636676437979890513135708253550060346094647035156907135057636273104419875356978981213995703626600179352956613034540408173773941075800644251504679192680884498034391743334465175071378565564304542734619421724178072255358048973683656565730272447525443389515854894720693550412818568732394507269744853759782333426255174186464794943149709700623607854597260744622832734038020180796294849215280368278594027826109322247743660943226628397072767049699745809669285192721873889991692964824303987375227035044428000016197646344880963847515843688467004210585843667125572630411301391190408330239079291034535333230002357901070395766887069529423748667813680981101549592240100317266714851046950315696401657075941535433103595435304202527134395258459431120994287172438781310010261596477372486775063764394613465310217851139835955427503244537879319083177594424444644677440135565783445606937824669268972359842294357092962602964301721978540828148987074528837715761441004206228367041910372343546512594515306891270419344753384606272487458974633288969341165794133657822714707433274794797933392109119264644597341721182600107988673568393364896545734191474603750620902868907139106606456961734337771536202561104445237492899094006278354238447138641489184850582943710553521267383736004260119875191493981213223020847417188438430792826808315192581842420200264767134662865556296175733441528263595484867177674576167212217180380791955706290562617722061424791392040873367129896528503796899012251011833134833021661949254594715221944990371448390188310232736275134658654038080245230355543177447180746752000305514598606943569662690404402967105961082285596905633260230943340589564864188179549870626482920072181498489476270381491030901854624965146321273883423948367353207498029843407532384648832553604088476946817666767580846751049211985353710097984186433497805921842763654802146583730990455185576354058244565821637561491874544022660332992832760372881449899733880198371433368667437920849180465377793524704344713563155583162042087806752639052220907213194156808372279054062637138020465778897399833647558583442902242193891336658722482649419254873481399108414198457674714284232237653126903858617988951455582519254080643798205921587061872618245214948970576304334054638536885910422089790451700595446731682257382859100600443381872227264348119288456164842360501405515108124722156327264071862309421883178952604661350376182206358880227087260631241373846179813355617856642016770074323363541853599701978657478769936451237485164594222288653893449817358060974626044776195272976911596421940595409856199677333368294628268942934864463923426766604279332456086834115831582995045316041940374007493200931492785139916104903508491208941124933202239032104366371519832440552308868949667818605738347159660527547561618268295356708830015802493305889254063488340669408770909537932769188066665947768318191591406808201427856454839864947529419971514192194681114523330403672662012423133327195167647076096729544547703630844286999927184050316893680199216914800554835724277314959039062444686700144881365261540785043341297536130740186494631695115247643137135274227561443666796562565396480034621518973249816795873898321916550360277194865007131482759143532542716064092376233760845400134912760736996088531334649047860800277459920795042495088369971113393610389744072015871491419912055021234793382535719169482004692095122072266097578478730399926196792353955139775993721134869338336134507394106975228052058741114409250040998229187095179025798906812838461353017182191663793041585221458861923653704394977626867089050438258149626111646307063179736933205496082958697369630831040066388268212346273385441508429894342970318923775814119071949112497214918785202635321251416520998831986458815417456132677478109871062393552369450201927065066672036575488116356389211390864110753899204316756028201292419546120500199584595974711814190242736222440911490360586269788019449555314929207555230597806437549381757613299008938384022975802984846686152437605439154294747391218162067974296165895472229622690282154598332437386239827954025757339272504831116024331757509741247344530362089869124601651797718160570017337410505013876808774392951366933494378338807894318151075297524867489454362504163908999282831092542641306087033545440297305676289070583119075765017350928056565020075576167864014817342620183473470937255123530843400151969980969640289728375996710584522621984232935879150568936738795810266683143726906307999080805784077045316151243102231062411328428557604527651647763801827057559179148988564061313435125414263159580961923136752371367766605661404667082085160341317392902975794708757919361195722047384721207720948629100392368271351576942304813867496750088966742115392163292167836978458966817211187668749392001450282345893854485981827871122863468958221414509775783763142233806740956479745681043597958744074105357452272763391324290816662315493250447999358845560002133782088580328250852178675580858384469539800579477266089852262159004337524988496655454453458813710125018243135320659008275232403593833153098480654005566757215464131824173412386933292097922326940112570852280814528530915864198752474498928757899414534738260315456476228566833582523570238678769172667729670624102534725630097037007271689896423347250496792549014445998893502992912065776915004218257013645683951133873290745932034885647375322658700535922040151495766939611058123477893122118736773480354795037218341172512399462930700162764566342874473515178171110442215537661715853307210204306403754553407004785652148528900176256692171291501253204208142133351126960147793599726274626593369522450417636992989894349191085486534146018909673880371329658059384766307542050126483096076597027342961480468074610926777872977764098900839191709159282298432465752595571959205135116981226897701262670746456684598655925248441767575772883551017993771301465674179725970983379248411695195509264944121920756383209757367786665011254788908958611367000813660812044465579893872031538124265572760935232192272650063040117271043516499399659643129883309552056067521433107134475951741307393488506177453609175523269815297089479904336556522255305093883440308998543574067607660623093699551380730963227015749518436994094467278006427023816034331411762244150469850916022532871046278215574252574059368860654241568812350015161931751661754340021199585458549025060031468401705791698518014757883543862964391282817697423989523784526579013836336118129610769551890684850900013072064568385360281978967146207654200235087328449948083812713131144322184617242783725049584666546790210569273640413666920785127011152619999740265691654958495495098380941600115529374543033320370678546261435175610322728345701810101780150943358752545351976032014818759016308638619298316014430570969690295459069691576387115314520367867139351844029308098558137575999654017467591388496476360362545483525592570013640809137570744418619661234441376836370879817871662875218816483108267154156592814804730855593806855661536621341258465547168918833572007442956446793834404164271789368859323119574224425206856325477267609120340647184982018000257296254301063326329794052439179371257946485867980115453500493126695908749038065057791415973433817435940628881558397227485171627260150666310695456703784323952114496514413799030140017988167591982681539607589375518887266091361389148553876509975075519851050174194406218219519419860202911951432130387196583133438696653373133467690090569755185092775654429584467195387628644408642385054657919123064083803715323187302035045955678227603215359025742099624409379870392201443629703554735523409781251510577036503226614193831718670860974781258181565094803832025958651318385279188677185555432298652919134923044204778566847083048771497967588977001022879608884332651748972303646487920415921432851675540398575225745209311849426236695000918058855087375847306323718984610803307712066964432894046699560168198632518415149135037596685085601113863374174807472878025314854713921385266251956192062780227171193856659118615251200909170906805578187562874470159367183575782289143455649484561325956846181324926921150168230334191853095735676504701783392249304841672436788570213568323535961580592735219376900026301665027890067016304950820989632674348633425987600533112376813302077485190767273340245315702850114418371116863281286208549121263026074204074973603136468190291580285675218757423009704309731938062467300933702042537818023247794293369501351994600125411925171896295910557906423359658010342797505219788101580176972254367697102884924579110866107559853637742598627290542339258832795394154574562950941206903822129330922263908225685641792113504875633488488940728998007558070551792079122818762255741192392934860904955457567163012680653706152356585489133685573307112760602938105343682044916481346537048276837523762433124694263738790545380682089846400156240045430128866401509908463535728411724490705334371955361966002889200752122108516752773511278105189224811628318868711731467587287890073177259494532119903377749021189908489458710947071339145140220797952525953608940078088731659369840209725970798848481553256022899682226020752926515969549393196384142210254149320916000898041134920229591788878200018210633901955296338127421836090434859310202046266444498445256653084165883649272316775503426924617518117035405929619079013308718127305206964428481100844747034151727754347104882787455662799158285734340996011641894573697700440787856403836276753943212000395347282439734834299615317107518645570576666186507795391087342357441098967116207677685877767971750823212604086551478891883856285655118313634179970418251948971845476488785588884149312272545075416863322926297560453813777774686182994449686454960121965907122034279557290410300272108925365374287550219065638656356197616403992173707662875882838809784968986293417634375539691938934325411500115773245120147272271924057168670721708415969316486010578716688662845738913259614560887442137190259308193874811138420741631991634778705756531007885044036093166425609180094526653904862499261672884060929772664546070100819767655617894363646304370531796545956497560902776661889883244154730638999975213955100164505645428697329473047302400086921063865602665589866859315483053470563700994614179126779852510995693779584484131755461396261619366374619333366284785910326835530266587629339579675601117162989925151029528545361226851996226074806690264528122208706749257714051969978459336787970724537039217379708345993573067724288597098619232142111096209513556773127373578262367258821332865565675462745990013550486106523281357206962739147349397531479982125498971777325740943433781171561302005409935682715063354076301940376279550060792767933119053180465067231639272556339128018410768532021471042091043892880346268949279649800045351228265167033025938909261831770078967223253900024851173299055949371562676572124778098848502969919989227678718496645853621851833902906126246843190154840741539478530240718994864477708164622625396531164987516286831675886130881123020226118347624040124808875817835596692844694136823836853831822663011077050383465055742160645816404731025915645875298498699480063493669604893163002840134274173362907051471666372307729632422582062412493043754687954476824358735931720986490238452516463377408872278653034518933010116147395858806689356166637398474174804851652639922343967311005249657922834810109537368779013502097007397931212430695112586194340210244408375286354067661862442910618720104181696221636040205144430092679089965546872826311870388449762684051000059061544015969647615551464964285285508637903622964904039709118330180554220123643171170783959022430050441715575875475695791448305505474926358470817915642060009316932926478339884975220460902057676066938071741660797766589930599879299331349919933245568611553693719209636242083035935370555754022322190523184703216803985728229918901258896500598340819073499156606744599598186609620135324998999896631662405325635729377889797417616957135837879363172451635916376493956442357023834738499819827034262656507538709087224551405467976472310041487095120760630948611352470270627626886442812686541237278731019897632429939612912078983361226189658067164897052003573988385843933052558086200933961649105043993036114384116825268861381630300142321240225211814825043274203167040484749448870013952784132510417127155933416532479632472271442014910900579299410764523540396934573637172899691004301370234019254602651255424687250825143489644737327783136230818476808060201004535167171309253857884328911510042965501195458895482933466854177884893903249360241597308038816962638508922272776856358548485414442743864036549600322479045671073036698753010022121937856985119533309969109892529945919734958139938287243891071044999206259191750443668177186436104209133805371182277891964903266221339944491308100835347079342989438867649520802115765689185700260986442434999622284307509238897497104987747402525353981049205877879648140607181245693464571802677019354436303723501010211215865889183494736993191308883551263522043130631246529426605300491697749429352725680874144415718428597500737537089788253797895350241269091317948653023311292885253500923536717057064157109103829952304991330178442658692795293525451454612199748470638379330770065806403294897605896782087128325110668247351239156215698556429364184726249649980129029999397417842221344843580604189852139968996044207981227538592571892656195551753920632101983863881539852339244991687527065991262982201999395541584082882577365780623315726440184593324311047170014909453841147865836281187404909095847649465380079154516774024581450944572117678379629657505146169860505335095809392829090169112542873428195746245261676442106384536571600099658632334429529128644916736405327669491266313858936415276753998929579800479962316784654423470247546388748786731795947762698112989020575611306992752877526343337817581940035409305215279759842635932973250000006038676096081203193951413940663796759931396731992708193136711784670552720303643737459798959631261869239348110490354418440739965342981487540479867632778866439349398347237049610478393822890381741887070490446423409221203555167639083108519441561947803392012650054618558858182531985734450004066984157994920798740512998729451253543984302110391722583060837442804164943857305804492452726452707351234564033085681441877608557322641067409249879194323917872886875727835023194876835532126936510297505923354464589197265909837398055708126083588079664809855585369507749714077511046906647416303286312675884281142758804874297477044487077126193744268059619240373896684702655316495920842688378393331440538249494007042557573301613296355619838925660540374725599118269858823075829841068324728665921375446547185489315534752595217929361315309672116845886530341465184321253209644341588757670375263527820426315004499625595396138480717529031535259132940868987499472541878858602209599511110389335610780664640002208998920574481337603064820251817114183865988523510856783811845478173213564486146282781676983645018246812126735981331625371012393136019406019402450944933415588404179091835414031462049336944752647561648790192162597921859411124215330120917954026468691291014115028181591642582365243136971306282123969696463437092329567605317472907981581098910515604678584688123636504779352411689944094579321310354571304878172844170206717719498402379836337725660973757189756207611376138977248629321307543657490187315256600239932088949578355434513287454635129266968060119283089012977841006629192970968308156571483296994692961673726374693219140998885257179419768875957378491367796531579224619098684387018114385514550720557483531247699369304977119134681002702053864215453669347036978096726793991666278801677877500042367636863760092752147054516530727563366658604456368876421500082755220215359867147013560761787146547295827785954975331812041464357760986777958173772750125587312194725589372950483285073967723871228809190981993460568629470280886757073454541558019120524759527849389925027813083509890024610616079525124016662690514482947699078223826005300629813396794896808830043233090164563746522816764487123761435977514649951357746831032780605084303716107578244336153657445869814351098505398026169247814816229580673535829905904069327850867107128434787686651920424931001983589801305866443379684892352778765200838023689282846846772514232693016799732110441734305380099811974071276027034899103323397659839433317375729039147024780819741568471481514735745594288181704207016155388452125944770146665044037674942775634752576211281156490451498640746436954267353411795493131131428158215724075175809231811232721478426120125639725690825556023205868823144209996159155766118776251635952521372996698181877571625724685787627661908931300778402363585017902867908054064497047155445231092426566726327492125233966104425287673085884014649431900819136151171647582958185332180732451498037880150685876883048987493842103754020861884580747140083147103819550650190624693180539948971432993207558415755000650278714391056333721595054868072134422121149413225503871542840609580833202364046831068947723485836718983856556952337453330090055589214128260458958947920878972347847905738957323061972910888353364755232383153838669191317975129899047122351385229433729059806468298253406469728741629805538565860255060850774149461513324609890608920638588986576464931474804896501314591587878609132082017854515026488070323473987019627667953465753322357335419847192648109423272581268737758770228774473444643157799583960388744328689834632118009661652641044204689995606240161213557445897728534370162936788174026997518737177854852429859822788998591363852384534124299864571788582466524964394691184422349220461304989642230852920416468322518246533267773381085904030184020886592382061196421614670800228527802186234909156693115307558563028522463690215374160279130986715430556844038467804869851138900653036755325549742031938499637773614367378818226316188414888012165536104815265741279166266811441053677835831897278651370739774169012745759778153319692925540008426028143023792101319975333666948924620548982188815740399560320857406416139077752911067581766572934151333447442139500111962979091037304667758317254968589033784870632692472957952892405433604830059303853937510539554608334557665278067462186730717862605547082105537987932527540357416584269686874485058676238272664210214758702482508318881758454578659420662584535259610562425422075423173545415188839346426302822356085364552996010463643955180950643973174691439212951015735998208257519966289337978674133055462417134538828744141793506898993654724552448977925200992905827115364773691575037515545560353327130899405221606385762413200012517146327833084117302917261201210520540675722251924193839587928707086633185170286930984599369878926788417207467035456782208739658934212092921555069772652265307649404252437715343289482998425449246738871090406344882824112093015956378314698136047975746471762161555078392700708235963315197995108037541126952174062457994746351484533604435773558278264123421415306978824540239197899777743899866291704336643619162003174885677134274727028709773658526024763140192503081183597416295041827557694043365422409757723072937656549612387337743096622451049186827848410279523508260046285682029850004599909097119101163832500354715203920357440669374990122440145240204580438747074139953443416537810057462971606198069176112311673272717292077179976346065826688825863298705541481758017534930180507239400499108352712918902619774624431141545042128699989907781000546386033893554637879265186934731689667896906882048205712609866416508031925533491639980560664492752838676465578934106254865984920569870573837220472058850673075036115342013172561498771404977731051949187566813335001923369517184118300283434755804482597076537595036528353555598410526746911700185298535414324523320143402598698889215743730872904579466856463233252140607364789979000615742043214342802694701249701532945356072612914834122997943439555720035174660241680336889511278465072080930996768207893599250318296286457820340609515299939841202226914253199615777775685268968249823877174414029409703422132268012625400172031437168264889120349847308952526683705748921228542895534694654760164013219719720685992620658995511590339287592521940196174308090868434914028527343608286001710675875886825268216705478814648915132352400554815249986999071331776125177598568341241957752151497917415574750123379320946338676169975689456272906897745702725163456621424853086461330374108869008639716444047224459611502960841589115284299491080123081338885991195626324050047792712068590447701905645115202947670787413936535333567353616169229777867082261257515146617188800766828008941365045885489636534890326885043373038777975268635050956047077182611138312921943233017334175812276605582129615792166987641074363601247677766957665275391683619981204483884772762273373717868261995354941760130422332543624173445708755151326677534025793357026605949653381380381164103764992779088327641203425131788472174927041108058491089954090334034573242270894513970079911452712172271263751872137608870451201485268061651205111620724786919730368090526255234840833057651136208285669148274021381491215595974463319222891935687223951383563708269246602080075653610855053199105953777560846272324293824286113457860592967766814038962304620806609589246072478262426080457516512405040129627188375233056753614166633113991701861827582157402997994312386897145645692675077020009988860405344713636989218235545605280276178507814673475859164281305910429111445031075122157113027981207282391804895658182994758196931315996178404562650238975197648995028022708950385053700113764353551736170561986394096829543988168633482711153045828276410418445847129153724174876527462105037342475416084500301736189617855138427408981552586226623608676382773308851401256137248927360516312469254265054182716230924904953282488236953204524418842428954102215791484409401287902144769675901369498350942737204094098849272759523168178358343960956325353197892982266290494045911802223503954796117067620311822416909875319070252734377397850404565562974628548604592368758654636358240861199270092020007307765545859599810441199937139830100256456504961529624784686207273966091104337246121325734772234755825233259964325302318673136616420109064150981503062867689701395435363860925559501181122363152226936772578486688604059168000347697564240894940329716282689196045161760468614151246035024084024078957715239883783955386483776917990860620074091178161795292224901783894324651161494458380346825830759811831592202421283748029249362101972495670187559400872620027731330440920306220757609846283985674142200080257285261671208270804791240285754522487684489448975510541379425964794095772894293278715221213169694602173787931627749289034550662436365448157564249063915296081547566560483531061532002046147209746688047851314071959164775766766844940924660432454705506169581096256536409837825728918496665549611936751077256001398644251717011310354955710149234016297856205127379658343702299008800519891967316074718274919498447525721799291110871367137392579357313709172625552527248950252285298398712740141037191490969931067985970345002503555737532591572199817390884389206330877485103964533820528481852383320265476552560751068823651518984408559332519460107363079788090309378526762510405457798473523900501867177195563817153590489880818960086026966437762887202831895252826941392183027522359398540175077391793963316880065431964798135416311133038272627304604706041203588623803760052226476898264965153038470142161256161672716663414297920167867903839593356054866835005145646673498500888264006871697279710921932265763868673478820629051331251584469884252750444878665604198107847118458921334800927639261514255262651436633513145951460792765949511417957747086382918452278161924327500307614840375317301031175119810042923227912011597503108317538476659103750352176127222800429776058086540992603628015492755115843832803598493460664425532154257963780857063393425345469168682709201544048640581799948493948438010900978852896694815725978293603309786674064764503018309841332301752071802076668939702174626268799230057258205674626971451019397662636777074752542900200108793925132755825859152348459074677386819829398528553581724708116442711582707076769584455941766449283323936202868292681018516214017699216964622003407119837827826190510707216556202822583518519966565355107084166531947916287684924598678393189266285167646574208928164481225725604458749862917548550771416149883625483431178588924158914058092513472804980189999834384026004153329340836105413069219099573464805887343091258781125740724368558291031394381655568432801874791980399136233410129301957706414760106524097229773107740827581276709447727559330734651628107379479999617493323531598228403798621308020422591965530778500196188089759840697850103141827242067266796831426307975488814557465795050781494557353516212981907383477997942862840765940952314449062316142825455265468335266533389070447340406289774062203510444201609583183211391952886917992246461834962143933860031727666346436442464630350264044998003939452231969197018654432204861053406835124646968851297893779252099538391219860371616721867519830574345612493963938773763759401772329432521788183200369262238857828820347693543506867232271605189382908051778742027021808746614672507143359745696871889237687804126500006194579178881493768702575316193641659497339495980201482905630056885763277755811626375189080730348576639556965182588060213200592926988224627675484187297207902114251627718546691601306012749574555756947310597958445298150350908202526209004553898308527266788414257296687133253986524911005689896519052080165690905863669160891627927908573570653893220755002931104083977510156863403126536256651717823527137032484806909766238002927744982952096972548717774805932390615904943665999667828465157432842412718104701609566702039231782271543160254065035718129204916302992701097467035299857583726581481029509126743671520456916953284917085741242206106630543657476910948933916852867111811269157316360777860376959097276241017668169195905357521783769057136187191803502345098673859698088650469368081637540952049286238724063582603374870650985003695397041838794029371382597671349667329543618790414896746648711830189306356165040158227248042710904743321496227912337945726145549923739884248950490847953867539869398105974190040192321159674482921809176402513027896561125137159972526236293610611838369830213205553855788526367843972385922590015102908757046486482508796167001537791923124151343433578146450977810981586267642809493155455870259008391941752170701620418358990071887431438102584689919048065571575112057875448070342766396385702518204792713236868629592853315153496960793213594075643310810505761650435977534286368679497098328675766270900203653128298353391685029998405433271082467444951419666640911927404796029525141756035879293185323641662058609293021419113014347072047529165513427048368765174983431203491938141334176424330065992504182932341310170308445105930082219107724189589499256551560159962320712517908356729039221126667478206619919030537592998368678147699887103769762173469708265214606808695315739281862494998866865248068068850396875182452384248802284126868880686403212082680950347857985332420582077799702903553006019243210701173334339635465578218194077257730813868481418124795936207589015906064779499883100101353769273280472955637830909340046504425619270327342916967787987134694009147975860139392115781334664662287587844517321126148621726691461572816837582016318927367587082765005492595886321254788535056978835335430194352559523447069211010862211287161241778119909197846624573572999255631101426560646394312661072215754813774193778318207249050710211017555596613300589963372178573013265880852728270359720421511540038157242898925143756414868466734306603630640164497712888048582435397887044327187613499597642967294525715322898079917255230118738727380810914652470055033457132195760347707718993484806712415142963225870446833654207523285874724149666094136527834491927811092318754549194238462311306613536923669538049611699990703042675112000813650503897056870613999175305848290654947200640258056442930709352636828726075507916732697725558951828353734090644976804332183724598007845970239780769775626450688863190620661096881448256392646877987970429000956669811618375656351854274683769228616913011872192595825830357652777124067069649439450193490435304378684875756918995144306007705402908321533128455495077518509041200561786955255885856318731829364432069461240986999914992871306904833124195452236320852061692907653972901462757892273305603947983866032852761734330072999418372129335327372757980360727114968260002392484856306426588336044725962597940178321178199835582398791825050648397071060472914951630430667697546912469108323466410490567001028826067202680789490250896963562407890755918384084795387544756521449831305371412301418533627002707592680390765511855324312894349698878097606314233826706041605493278930941278410658525699730213400897122838903791931899181659177732645821498210409082078310150288579173181269564374669400476706730770473297060491309794758662720409054999247883477192676284625863121024883011570545059564765540715401557927955282118374210637347632648140969450289353252104303642300393414085633390852100936604093204715343596836815298138632851281931213719339180830076187192971776572063367219917625284763232358057751903243085016107515951475111454622192159479449028944865533896895841718388590312008567191918651917759460364123609485887032776266968739648725248259794225097177659585394398990994815141254941017333513002226180350584465731346668555718432904405505746220956124497827834650595995634522450963342174040128717178251059090553081659679489881164875933708769795363480221963244301110323007357944169676369519960597669092581696450946903123361388284882527462440914112988580777182568575981892031192692296381810213791258432869729154366260184370336675464281895564621589441847719044458077267789054548121658306344759498279338162828692030514249004886051410025623168141803577452472599983295527523634585032139053833757876319634255726949610624423364104258678181733064726711304901211085179636540237123403759663661385092065992566924262809110936784539256550921193234008747438090633598775056701841552191045447130679786915481143537296173366503911767283687277186695567277013817520858008419795164160065763249540729762260294406106076300344692691581826143955699959932409975715427039753996643810857572641731947805175285914849630543675588313082130613240889820794931132631578667547719220580864823014716776794264532060764609378865993605906589099525707478395398201130799664124518865856743089672778713706364032499381076107710116839527986310550798224684975885230184066118133432008856497052351222240537534674644142422477182192161944853721912591082088697837519067641712003936280810906018104988819400556369267174974364634983076302153464970682435054394070283337702714387955947590608765734937397292565229860612337981756487078285771903000313892033863038944728988272305944107762951011602070607149467596909439079104559364739316197311939977018172413851147670862648879410166661351100302320509129520770071164248615986183874086946190315048049700943288700082414318619315115484286349513852545868119696189145541537992772556373715227656735049049538091504852295496388514728118974496511337754190530303214775964098824607281706690159826221638008192649220610180260509151014716005180642473350916486668596265158903421990040196913919512563498245697217986172607323663480811668133268566896303992213395268041991714362416064255218022790996688840563232881646594786234562121995726776243425910011133796184218255953734659602427496213234328782914713776945886263452008599111300742532797208883836823020583815279000326662887039592358924277912982249087329738646303920153583259165883988405605693295167002361928978968725516601869971569589865821373782398107771994587269878702442866187162117433518001534027095587164787217096924695679893942963301926924258707045625996420974006631389760998517819427023969066253604020229017215249529372557074489108240995790175174367333642805348869226840301559521913798972994632202138345814729864177479337742361085198529423098934904114131269518603422066265972948453044521345585333203550437646976442341769362550100026226540749928682008211113143127081513587744359055398841315804608318408663747192031274807885068942191239601300317108662068656807343974943447764917846006188963239030016624842869868219626629357235861889378221757084200365404595189130495119592092945912310066231621903016220413780646349224842502551222615294703337388374588245585995317552702364935512181162707156195860169092251414013078879782323413341759299519917298894960501832698093109878829035839644824521766671971227756551570606452089221643418010652200413572748246208173289951304092663766681882349081910805659562041964593382732881518156700821787989845261121688940187124838352515987218630068220930537789984401638960259952096557022745128456096116747522061940630721153314152790803075407580054432346051763814390073378457180591663247405334916120396070837519681216620927193699919751206267658066052223840716470528689329359921701189291735045807076211266778417101352647796563601972125361924832397306392097288820634272146191365117110763233306964659649397843080603295387258105438855345240062829850384995889079851788914337129964822200120174114843951301913607550642653833112135976624007843803035661172607650573892369795445319494774169330697057883261490573882369097540677513708409574895831589280355242676267433289118579137178564352130394614466102653223602498557756028388784444688809342541742089222172393258989111487150942261407141326501061862124294496500971670386918024391370377331240524822867491988885004341125001703098266070816607138564390474399760282214216673190935278664484391625573315215173109756341956844442864864940907605145346184815807032311183858758685371593013460793898021042582553944440305124506553948365824273448015043182216439573497052114933091396778233000063022076275779951381897166964963881503095188470758611856941393223686674154237767409484123670527387453725990677729572949284147227381129174673643813128629440922323834348769479953507981745726678869116798780472143183183638025870746091663432971661272926913004571623873473251780009429825140566256288567271050231807412606423446671950893592119031530930089804697072172115105037542249063726235621364286389714502672701898832554342344456562434342090641636554567665983325536553552179408388936332541794326209900951641197391552756136435782965063219028975996515296331510580557412044728935073717557653568493839836642525138078319412656448203702141885744707140649473729364125488497063027972059616700306556754482605379787516646811002412417489950527593642625919356857161306678915965421208524506840299624732743812787728202880657435305551499025928311562852468044849837413193588957036442416531703086181518108665979434130418022887105771347211639356739368994244514127589310489498072696242779307316499272609395442321184135659127312850333354444198558131236993521264703841500880732159301480138640235506906792593411222448650936870575315085516158746435765548627719906170458414501752636027169933821243752506726395349477546901435156918663234730773769188232189855457737811817386912039940673953695825166401962101773245092638865115624574405922172641944002937387042937225301138856400640981903457414497731153874712857088401421631539001619643213928245220473778180549579194445224525198459464053737725463585497209310160661580730384343971556985941896326311795823734357459068289504483653959267056411061216364227580358868940924001088419402356530292628850112965979298021701549253089286887784891687242651103963669046897423886661145174935520036237823987188952599115891060892965275582386220981964058651802759237542974127705749926345265400904982563213720477127611026139515831421720599720878046490532500610974445267935711507466907088973378519428143048494589094087972509320687940797951104594257509795479774451280124251017771944979684130357114603412310086406475092977747800597942612744347298360720913118280327683012656941799558915859670076264390576300655719714940416297946055685411187125599033313056502561462232429860419951434882714905204360628808715750158932961537960039063996667320309929547613113128624237775702636792079459672508125731324028123731858949065347846147256111472662404327244195584174870230481947291299799519079991436317358946470029979519015646372880954413988420073971067294994469619347443053639248711264505616643879324233866114199906729086461296718898487333011880340460441440765083518565633330634724045811646674473007663261670288314682969087183029244465499247280765320723738584901824667954667999384268187122891884918684980252009016002531845119940607845547781620573988731007069790667361832190548791361762132467035054757435169867445318087700246743494038562775540085825635434602144934348309632017014320880024758042925944212595721286200851274677006102317664353183586006980212857552937273447485653435859942032857230341762557155966868701826527720344181423686235570430452906607688953199839500968721189890997815121531254875393038984586480179402811633611917015032500106033865333114902544156808488361792319557463484224011569131160895096323400517708579196600196254740072871133752186882574157187393892034628125554094170461316713186343510663792265181897854124479439660433602792638830255557812759762626049029369129571674291908333541527315376409090530229882878899993177227864715682222751804290555505478682941302827079360700006189438595693654174985115490097297385617656392036725492024471937461600710173288840218233624538834389329418062572481952984773227978804146470744104363129827789312627011329398499447523769030061169402457214619443935565508279754961015832441015043726146730659268388013921948355945004096616560129819317116538561044751726590561320982531459152712463847716928153396860427034064523798431656586052012210822334264601555796119726830013222737349394414414558014110051901188974127242677300992344196027392276839792072430888479686805096081637234521292844191043614030604257592013554417710057320890687515125364766479020639302240283509012201705399734467275524868592762951375542124581056783095867024910450448017595879579124963585873350069286966651738434938186682447667890452265260883874329374229923971809346288532910853053515304428614519739257320134266662236844486456377120983009034690180395144299146884055711981004665908520677325931846414907076987058284918800539012950207098929542706282849840941727823802403943018006348452562960904803685230139905616268333146071746323780040208071065672475355716956339617456816538967704165584394237837547558875511085177778715211445627832267752718783558342595050359167959742288712426940236191183911902556869304040590018415609249944598179948626316184469030058869339091412665735005014485392841921329927082098819824993445805906371760716169666592394512649819045309419743086411834509560976245148374556768503659969773425272541079466776826698863647275940666638562033242500280321332333354725818319394682392878044751807085739331959897738486724543600627999981233211658912177636252189696975868616501460539083895242425249843444822035741621723805042982838742062140196131266969294014909495786990670644778312632597052246787878551918697540549566083150087211901830367668416270855513993243903374435213585512268225392915247758016393455156942570008437396810059314998139581021531658655459757700685819845565912477841880200284740673281839388601629142107032998296366012335164167271221389426148335146146850693791002500659453224555355327065854220899344881003245368518935538403386014667678600703654649334269390041462539372832654572725677714032541584940821508338372163063993243676212306506213422082605959191161394341585519314505875832160346176818162318669048637020562921053714650295387142614476025626346953065299846133525111545659725537126014055054425229501037054338092657189129336186852589392747390287300781485839754115675926881630959575740024235386161364365182099242248859205580229447002275826198657633170728655709855310313882333304737090776855286322064203436597632662053859266011639599119956189798204490916233425917054904384722530390147415366196543907007130422899355124528215336134105778692318389207958525147488723712226555950704047973795318984630669924925970507459304564947396738895524776527300211692786621639082168135755795324019021388527802108657790374747324178224878789844239206877059185803586090666216415548483582840611680208192467232903819015420811975533770733894505364171007883290148100863538272850787042014023752581820861488503722904998590295677939109276613071161244776151675100241461085057047200277358630460602691636385497949943310469243231089065873260656699711099392960543282519354773142190848372449645939089264771742606048737989497634149625042084813533226120129135549923721264172385200414117429277056878005287305911001489643619757175737029027538775234539708463803177806962745699102315914573855283544429891488920887910837003793008809483396033096049629497649540341323924018455353878660757326202107406457089110415098785408351420027978168489466087799113073783214046568412899158934969368802524846857262651721208372171037013888347321096133352416111001701903968705328364950430743680202580609436323747384264003801956087289644378312903311933125412620480524352337196368908856939840642010570969787952562187674488838627096527926360090018487614086558369217290512828471085318398300574545499307143683098033739063984306225275659532681738371052535758496801898422380594257895306955270810701645868296769018007812684592497636177948375661043512978399438278150013720608685081314278566787298107314307122460197766940517323208843604606516120279508348945641944723722115991941112091906995185310192409039136578734762432855973111805534659263107360225220402803443201982713167416680045331609287977204338844505680116683003607379425417571863886523087690954494643239985603285634969355336908195315191773955986368500229426203821539877144571265223460181250396460114517652351551528761660978463346386664230544425703065847598079854385067567022762576242786369841963111666227621679398863920329857624605167149503501016400025713921332866406760785567078855761376428158690427139503512208382315367714510139250953346519472751424817310341718650735391773934644591007983097204356682038275159326983430977499852981624245970723416090452359143131317135061849993123572069796252144188661198184208502865170623303362221643363877874674375141927544172150665621637063397997314403744346972509404453252047778417552487474880654118807807668862611707166097676893428648554234749564919915672575783123987297880543196795631505739554309057476426451386391408033929200591769240745038478056228142501049747609574828172097841551618156241129560808286904515174352109824904538231879911939433426010670658039868398125505853739987072171844036432633540292092348104552616067129006202802458020730494764761685045317480327366215320888863463180245844891786175930550394636268667403167970049427928282912488885514710451508260208579776158260311044543008447280377552564756913852956086735503069030664260557315610006985045986493450125984318013419418458345944778608798110086469320381295584076064966159166355683482439146666903913413619598825677973207146346925775225608150737143367519939798147556069092849467809606722217623846068598220421057309031706298072933469314194908980750500037149810536071493530528021042256485166887283486179671663298006489969181225521273318873195083950364035535079636930205114089518306328366406170974272676285967948456361775738560198186237580394293671742711634489383954218000552590431072786953531591665406780160446993105214734555029156039186078322691323152315076489577093080760681800303543150861240550961058725750532691476821980461790910530873041787894155270792358705410314633051329044882018416277712002704387305111221934559092403600611057018526124365465201557434707406892518510609091859305540439206282088599033552450776824844153241495671031260076266971100954511675337515785180721656658215808678236299384731453255786504196570802276466602626824303072076144370151322335476673108807730041657183235860877395223026574211222801627107184974575780247147996983975562727257860309039743937170943827599848495870606629590327996365101043183044001934956479334995740126672936506165977163428189870657288700751415755728510804596576486410677797401968623808368925714390216138117736753831613244580882540684303545244162049256230828992006822074305471276334941508386858960339792681125183995464205063804783880038856127940108744558826619905402504650088129721080008329037551046954535787065313534486238325608588001514209151956316029818532698535384208544878793855829645015555812389601996266256787614050563236090867137854178592050149100390032086165281389694048017447046365848261485486789833564870898093734827149953032597128984684879884881906173667035105715225983023025889699307975903086876634604730363227884106832289512184314598172188790621166171300848630694851041786525373680336039657775903338511126428699253662801578233997705323904624039053461406934967436172452512263947034138516207375641152337834563286785323302958604285651122421616326832212693915446042989335510817176067783428365237696312519150203303062400085097218659478535735409451378963263965037832708886586016364165004029360016681379199427725941062428837451859132093310111943829315484950362561890663626475584258836829881658801030475692578001025700437204564324301566672394078308171543936362799876420934436851280729384020706393222331634262031247582129130152571083316410276159932710832951031428314238157796795783565607439544018621768910514591543896498669979127335036487805569081001459971248901222879604886014512034000078941675447953644806315289853077659587739228864671663816351002896336206505552509973576082957479272022692575410353875334204883969437713427272589377645620510070251217019853167821453447071637800651350346776147827556249086171287489096721515563687982102137318314282911215314848389073837771352604347578089788271726783090887485209779163503325305969629620177877089027940963363921564803094677512610932220799396611490039039771397308629896014767206086264712280104597668202315958217956584219504586817853162669481396550571460070202796727761038429863123751702548424785871471403216833441647312615541289373385205335315249245736952740073117104949252959208481480590473012300785721974836994558614692271085583717894360792515034673994796018150583382075219238600180966285256237834857283521717105838076747917260446762669609448176154850133370476644732256190665929786699545436969992119348797416957644847169837071585218775605447424910979350887839971905013945391229252934188589924325753786101497120044190633679442183895342240894103268206032400724543034213952539725670082833377582196009694127657413628994979357034790268423720720222803624077489529966913951276997828190893963871345354198213139188260447663748676392839077150058389293056355469369461011029204678625530938349429203965114703668706612048571067288165117027409583715161025711173597428121268240100852446435309571663070422098414648555530347105970058338521406236511739554122664677027546595773631555610828983308264802019221564349127292635669417563727211451035694288866447601307647365139491763989910038152803127131873513451880442475921063978149670090029721059992998231286172495147093030153643223070667224520976955073564414191053846653460075472269256329186951536115771293663593322064082929253574086198173313204196796951807076955511882211911988906835720507474265299966430984816768318891139497947021759056637047422052369320466398156456848531635861829137904320905411802070749472603767660532532636767181445952819276362755321006931525935309159501216371997872489437760215938581889298965135115142912250805047925546224794940525298089941663392345858195888221036380937328463043154950870662946779022052232483075673878425814830536882369960777422839706587430281851879250978790873239170764714690997057904322800989359550348786825759492304997939738143260857062480908477827344674040871446514316798013877282229431001390474282238213385083143243623507575698889326832590214659564586815576383160070498247254226829772136657135801010469447236161250208962238853024240571314416725824604282220275579012057012765627599865835233984066055685362197762296439413403843329650394454645130681601913267969890568411009036762237536566592357382302633500696893593707926552636016803556612415071503484983148665885313173289499920705884395009859008879507111786009249374620056705767979820572153224537924806153685095641139838488199974845456935948695446184963504058418611612131747161556412303548499782080919018743267871901441045535952615746327265320438056188480898737071287007788239381547017812211761178487455419941301375360786761624999594802958294949581942403217056704827904179401668041734075024531532334377470912474016544456907693530942296114987508837975039260632597488216561772340181808646756074842246030936958012603413022540990871523877464919018245746456953476300179187489650276437155892715706884609161794100600062362685539761538086830026446130569192901770416568757432813361691737930620073609176026123138667296107592235807191513085982745460930058054392418440746490844538449747553815379805265251539009693783236179966030539184435259577415567135947162964687304115100503431119315401773591252580287601597424873941544890315203931613566569458644139283061795323594200181522689232153576630452575014348295906680654227337372143532485202649904239834670647599979782968560011337843889483665616444489948999216285931907193829611769716107495567944144234873082501338010782769084541059553935549150284582599660531232169713986275395783483091110372316400769915801929028695741918335854807682824509103520407346023316585175406838331325603142547480694645895543170759378177116989429667672493612099254175289250381156726625824916961441629156397717995439886100815604302509523551615061713277859952667376569567200983730445520891772202884314169167255754340360752155508494169796644846659555184234884269557445473689422166297073830446918427442694004016782146869495726578884182286205193842024091814870690264782708003156391259960375559908342841217988442062081825075053027820477480321258577761257228768562211418909573869124297634559345239194891131567972494843082412924038112983626496387056611023192883107415564604150859907473366227084643618003265237707523386320163078468017939941189424917772019349737146523745764577501781984670159830549994622848944412067267710036352591551460858060934321476030515703561740731519682619559370986073775350685957076675909505676686854773922440403156584776721068975131794853426941603922141513677368081609641152533632630217837744024670746341893463114200457590473249957861932433997451871650367960567351477698312414681330997547709044443625732878237525271003050406320906391635405971794601801414908446440750298314980827292081317678044543832114501145337842896531656549749313362579209969814417626114107671244988426036190003924178398409815803624403937765261143664670689348989274233541216927563085604805423758569253291576555693728344607424318876876390289270523804611080517085191567029849886168643797804713868030050795017018782036094965861077612984636029822245292045593039163909041903292784889547313558579961325614984218870671538518021211891457533847633037940601165311234024904552489305990740313585781715012201508096714284139550617783565735992298644686587006946053315761758592368793165249237983104772294553833297670381948799443935833536725028023643734423890409140751304358908822926411007854493864663111811159334012116979734002540582071354554344809508938512239592539522961572107676811696479555713653060674237868502016879954132466150149346353972126321601494645169527870245504566452688200939667129872122890756628893843208104939715782544229786400672176804018273415270531123400309984431355485030746894445724213172372982668325247264028114873187587721816675394174325816268434094092207700269921589535675524027571736056421608123846872480957247296831435990453686867536813045793686289678786211886533614833423393064577209979871873274438284359338242386703559287108710164024528019177622551716823497257408791503873779914499337817900454321782961356674088812309787675239330633620731567130677700968018361236845745101424034979803106225416288382778386586288376230512423254436486407243441252261835794883815521186641225549490274329367857190949114797322805072231280885705603670268064777538725682595727377041462347550310893451735304246181743486550788537059604456110850704722435953647505180589009389249057017553933210020151950129113781289780716289876673971912880380790038405653282290563024399190038336084010897219620026228934162683357271788308663863518133217742115280740710969696761082931005876392440181827543172977418505619198282474048939543779339481426123447278286533470446388164343207575529193169764426508396372306974949776662112431549512317747520498962085498164984753644607092770147022212968771625332509640547694222906684186985658673053201681840976128357428629528838336788689960945789851627152640061894676745237982088412297432987179018567214304559353751014860163088928220296022098559536537590367843925418139007726139570930214097980430747287035437555975232322974363415713722459575086663468320684271157808555504189039925169138767455061828041288921816189452989578652012719600840892279522387036903243437255058249902218340311658399229050277899257998592255532211397617874739479016161410498302969749890417563409604661547457529056420916215327220633234611291093041819909050415419502855747800541419378546917714458837225416986995339130326368518072976681207017349632599315703320672433155649240419280039278205084724650370178172230329740024777049458208247565359817960922846024526423404669300622477083671197225695243887575179978470765065078943915516804574349711293525625092407145850180311022449593160825985515282843647229406944009829744416122181300987835711211796529681527055268602028219690876344569785390937936013680966560099883647383038794045738218567457293483906561900785775999553874606885585734144124577188486962756934420297696783400753972801900275774605336370009137757714276068487700210113217523929147303371411390482692386009203067892620062190211727591738887798100018716604552744844185673526106075682413574715454627550787883932365680639423920591562778633631862003510312499626058199696590085262613835543938742824205382900726233909710932134146212562868852765272913076310577720494613859521706895675930905484172160943604939604382617974743113826570055162083316004012303376241651844173122175571128526605878400258452930909545848999197338940043384829746541028551281081952668975593688332763662726404278305732462954415493435833451542549061291595225852851566318685091918983910942728237801092534027308526655733492878946769538188094113319059730178664761128673484577728138991348244062955312416396010356484254807814441476326277596109795705112206581261782537088885435640564168645915291218095616566280381899070152426587294959656795379090587340095761371329366908606068756050708144821825984917160571009149168183494719652780002933505187871310578278334723170368473472021677921598196633309067048612628290698240584153995626938936569930437279382304466898775564837530833948957735951900311130880344388442246737280870802674699765916268055553725578406602055609114215960314941170965874336769633078013807744383951855711482379871395074496930720514859025273102604076451685455805804471356758482916742148399732779137213959875180195409252844650238567470775317607805588320929958545431139596572922408363534386657331189333115818477576609970760530436553660951512632469448369917349425172662623703676827013101050520237910881639614918285005564017863237003094994974075461453051159681232033581671409741287968311370502571027959228983204658911896934385835811190011485756671281063136151452615059734376082642756009461971052186477573464788382356999870895279629347183187786897349200854234184563330469083767100392265216517804348910825109791066748290006564562604278663203928985999146374084560649283821705431071770141449689681052368312804831151032577618141394311603757529498959040080428928704325682670855521964589581452089088760954827239527590412622380129428864696438170146508029262949520629077690014300158656381414306648769610389870969293271212872000857378050267806265079083269261495531838226139682003125890159571544491300474343192075489159065027601437154571973032855019193967922437286119074084853157463081893451701538878294095749260461261469914858988949639680449541754488684386490125146707289726980450002835398913216900662974508365217914149416791196802902818863119717859093161189639877488522877113212446775284282878370537472153354436615973874553167723149243731654292942500540796983883346444025017474499385959626557605643781007624188935427765228507259951868941616618895354944495561860075093349606600772110350087645011674274878478262128275207657817810595976927808521081449644494027609300216900043554832054573944852577750722667549940449076128040504793907866333061379525489510504098373762194137425831950190430001798411718576462948440297993230558808412725678239776410391787680885817561276263660459733875612992386181224909327149684195592857878005588135202788133180416530567662054234855538686297122789534892132712212798160023942063120186731910129498005280516202217302329206086808371941416889765941866397084310918653516770592574104379908758033078129597996378851917828987297371676084205256616098160391169212039318848853481318341529902476564581006517717979274022221505336415294135387073903918525825216596589809059411616238925675498727871319440471379157933663914670774773750965172060105040864217253735660239863322179847906868618189222232552466934604418121341563139563904788683741472142968166504796065775191709917331619525159531906958747808216635206488519834308595008073545738336879449346407655447641928624473145074827550792140021986350616374806875402976548427071188361302834208180189139222942746827976349902630066892475383862404532934662583717599206433812611768582411683404005059641201555232776262815671993739245765689925414471519349437284129712421213945236472318373000545663453841547111600435767753039914395978332952924416330411103442039183929283842526735712523321450705352293685275045600737667292029739820140167947906882663230959834241123838790130218675664784064836109636059538347770014257909188725620711108186515838169810810921526980957115829334878481701220990770428336990349392164775174789957223807024258302875782329756776464822818875654858221875609834463598094144967093919304596887444880498080077237902333776436670201519198877094158424868125009657003802835170749829882869949973740037267702493238941205089242217418757173123061642791416652462567608445442145443743943215288331436287933080433838112218743819075389176554010570641405906720283225418208201398000009686635279138158351407926236174371646570910726411678705455556194294861459758436007616225205767738364825445500651022586104341614847320808229590630554663718887816817073808086946321752906786818060934153669828423349741667199115721859749763804058474965591963396918892567761036044346592883072687674756267806142805938305787615385125164842399926997579487917926993198277599153900651454836278959849038632308924946246401647168854009161428695267136676281857059726655804246631536173900658779262637014846026282852923544503276069318233693099475466578613529933980862727325550914673780007293162472452142569013509145959939553538169189289545719698298678401099626560058744121491982610664013120635074526781476968894023001580834052208290135337991518427546347392467930321518752925426424803536385071853344796159157252853979413180025395781426899815622748440116167987284850588524105814700773097083795457967028246437322354711431564045643592698355239022629177966946614132970984751741311460524659631181113189434802111439958700987759083132896673124566237657461866525894589997093137019396525593711807196246895629054519570707219288557918395286315419162868537857660305813521206717198210418923943858317618417366135059398984086049691062931548919339140503253672215909008225048037008146696498855224322101422001622399055526937037530585749409695842554943695082324269283695610834401349045923611086283739184171987493132010459229562730215135653742107696393375383642039766638287968447397924870072456303914150080746379490830223947807195100348735914390276611332013332916387847624112620154896912878688544899645399278828974408918021209719546460640056102951136271745697097671315118597877409007456994003041211094650783914777205580571454546152548169761471938574246486665117531552133083387445377654498183090959035389362894531670367584691255249680346974523357786933519153873457008990137623260794218938579965092541246125385284156031618072100181583106330607060607199581414438025462442593656257087688367652811602563894334641473752953914348703790903522012081212214732106383724258033052599257177597839194165079767629866236282685612819239452435129944060855391629922482257812171036453878220277436629569565716537357480251953192569864034083392443508076529029022391889400440916651657221877263121404972573782077097711702115495569471099863869743819835311436995574592170946423486950718883260443043453173121483641979960993769561041961269691058968974673787462353319886245735048830114229764861674069980310347206359729533066686090767490856634073660091138876433066373794068014713666584296801609918291801198052799744799699921555066087344439012239588748779048074973736577217990364350720464557855883437956675656868574280357576081488565944633565511702976071842945862719974367179488831667734213751710627778477727287550510168093684392055097661525769833678359477880014297652361829175173454642812286575613863018403597092053945936840425653652525508845621704027492963356191711081875305253316800529102350438809428954102778873630339892886372733071365266851511662355908990778622730693833214661578187322816121774247205330044275840250465915790003097389573623900123114699138187008827255327547560152309379684382354759635444840184310672220084024594999222970186968791682422356377188687283903691582080479281090854393072650815240786653941233005784773558084238319556315589240915125500399403252757430602699234385641848075184114968319059134267184212559116551352301915799822311294643278525749044272766860311862915129660421927614133863278190320349870952287396500198187259516181562539849246891457248811549227850744612259049272718312351190360101968843966051223281553376238018661924439719724297481581923519210812832806161549780861617944918868217818538890603331553016866476848673417457827618418275970582003669280151472074395905187651146601878629497271095145661325835959975065805777261040091904963179966171103832104881406878261833896410577540229134145047981493253386033563173962524048241037254519364478405383228963975622090488241183860877597118669411348760009705796784539003496263054326960453528587591652796515815268284485132798394038303211606228044878061904450967717369369879635550086171252661292680978279094884840185881425371860684736404145469070618846100563431915702124023669753168883169014562454284334625753040825829918016143890368116139401517438016592832212766192384660866873232074305460785278856242072318538515983354337186484632934061341968772465039865871259049290976333713695255912474653520388005615237304152245568115308885625532599834519575257843636732023995826219868748312153759581191664135568514346998383233134408400049366910581362047820781961173083350957726737589190269158212832821038029254345521533550855834782929572799777592942015124731178156860317607622741483340283231911638541251276446163242036184306028615764675378047649022259926357698401341931464651087082061515667617664497559858302969130776276329459935296454545688543199374910076412421487669033520655002231050612915863396435727836202395872648558086400437841061488286379145399375236698615538794294007931927040390187466247037363550142372708514128245430953303842342441339472482023222302477477534793199844100635860684162388582408980483479008079674379484920462230124649141916144378311679337394904428493317264170065099041233655800610623791373128738913941103048671642650095590855094847668490774145407657428247437799051429297165912616470959439773974666314849039505950766653142675149773304738728226168768950947341283389403713128139499369809906460653350963491224822625026592789856520157686761998774354479267480160697992705768964038116479826659392149949667927880744791465947795990969296654942043713313623536695398651163131441691577028475709679561518945875643823092981436631613328180145494089195483429958954016390624768712734937522672088485155422870553651067837582616397672778742292909584373188004286925374436699913786583423262496147220752658218450679393068478575604211086483683243752211218408827553735672590946570227804433916563382586964796419107747112822628209713418356905544173039264727575124214044253609818252504572890102426833738041572687105610404948840821040972992293296935759520583829636590147821633641029714878229591737272365755619903280637235914915576502075341296998197692508499278647334386041581920844375187259949130345883731034034656831338139194237876818670321370258009445084485549000796981472941474951053171880055623368105575133167389922897329108597170913310720647938024483501070597813202932644890454789625557778482939246541697531815672368613580533939907041367199539664648461763123246429177345661742168839680903833187842247045009204605748924727615829380851016870882715246766812077678798206254575958622280671457631330049633191229950097802504571872746887375065437120858010063337609798384033305600673820328536491526207773148289992465439634847000283568935559234162601982317036655407414293891817049835714585177310501901753247454065542407980818329688262309510375732145078602237077784374841081966627589718359583367019229070907116133536023939722822274977735598044690216248091799162375649451862894420235625358772174491274833764156540107270616028733310941947518016766080706182265778763389974999189041964012180554870884696698621773490360956644151544212057356702956656311399979909896779172974918197572104098090977489547075225913992690660128216257114535425759971155741357591968875134194551000778055760746835992710923322168884794354220728807491145644580242064689000487717286082131204522966669758067084820125152189758869030291537289571778603560995284056774516184374311722528985060026355062402387013477475621438259789738888679529742196146059917228018352371616654459415065641122344919364352746743199014292478477366413252996424981317878708657778337465144814577395234166143946596519434724254219339296465066147521736072199901675289440324258002761238527519421181728078587572488913923933933887643433673917507772174198908497031099985919880833879732674462025266170055349759631110475028784845277188757930072155987160880200636438179773408020789356775004934262061471777720446867971500146503799431718382454413070114198093601161533565192699809572570697692346046116537574128648941368039032396617963238953094628188549321022620451829075731874274384011223312344700373968022924253819777139526891386605565338942067017437235737382573650138652557394832794470068451575712600760134526655211714603583078497325165817109888114835053179190946635571588693624198763095521287271692418730637587153048808324330749505915097917698781670445414693710973129603106569568681925258208308453531860557082125557703276801137406702394110873647285852168569417361890233807329724647797209456932191069135770084997249257631505677481837167695586917774697752569177374123868060978195093750604879118216020960010726114844531531555037087351813220499472177903099314109873342916727681503348841944299028028528822371932765015284993027926427600555919637330046736044127816590676559604220435790843782663479729133852729347228378868576641609408429996002601674319238326388124946841982952296037721482785381276875193524597198641042962406002659016156234959956212273177821721897416163464966619784386569951203554335616337355940984964040175086047247288411990490856983807180749669974948904041519260733476902252876990001755401205628583240604437108196624522791694199355104418460436237373708264955916904513735920995583137445023286280881916073189459989118652129780497820504459119131323989853545335969021663107186693226986331999051100543721772314623498378724614943804122322079682212023861835187735178869710348555105097701606769490917436956988986037882266523788839160861156064466687355711840113327856562654243538262114355169973318157968434471694504344084487806330406915868291141048731817064679801306355700001470695343162589176711737080993910170110228775037493755473529505833493359576308621582178490380221547568486190527373209340689408094036316085996605768860278236802999481369603565677931038069584094722485164965619649319257393180919111958627598718743001940382746543042479047964517888385689301774184845694567489434021169500337115875530517558718952915853350117094602536708495622963760303411188091729026588878130024723972675788786745700179083390573520538528535377934297870636156190612855152941744469542191222302827237993397060538809593076123885006498395237603623329855735480564593560926466537568108883579350968787535121724559193723371312500459758262575175936655363624744251025061604102854059141556570746206886510918205965604413324956903792619325277064277341465958117147418794405265142437467816886848879884652102630808695432272169889770744239981480721773416247554826046832503724860186344803572484030276535873957254626892152513315969791806474611827402000399520620701744250817880280954740746494147179758054271921205268540852005368355474835529155828632410485005948432063582084881880177372872285081755942843982130973761256790155755370240847715662156924706975533071405378064933191892263095409299690340428306582469248098948935245085118716817824491895103067960817046233033557370843171873200950883059148183506054695109724620752367300735770940259856527082153458507210959858526361353525629766975882914789171187032865635781486434037312324636076382763762741272387249869370053009897142524129673850023397061788780760748701665794117085313316626641111269095040289061332732088145971761856616784131378101873703914091017319233455404328865416880099429735242154500354276806966783843145079795497634257197820893375071420404237427645486826695628276809065576042876559237814373785935680397983846689888300243826321953122793015938117861783821326718335822459620191752608945092966379664477201915338993019409284707737342489560653994629360094431483433524046883854124118299943167175079054335690904927831088004427094448363492108142121319026001074624136774308599338638480803116186216940091168960470366528472720579144806996843014885844421805290399888181593702576025458404257587625875947722614534550737149003155032836171184824271529502270252781049993148588137904095910584444399712657005212672079349204520914034036568913806799584641710374541912953152020365777184802605246553265821614688372475681370573746474856038230622220148397450698036023181839616765132989630749947708360242392396990922397711990915641727075866650337716523933668477121670206606684467899733565510497253445092260417908028191811944819301084267374197349851503632715386253783595643807608739954261154055878030197019594080313154593592498951355901061092779437115813211509570976725355553340547525031288870912525647375618864783667266741153850646885586120199882861616003251904460446426546265384557026609154874172360586433198775484005228517137903087543577514800038346645837305018130491293989982954550561735137771063205832186342068246206694032336431061771379089989283761303991810243325002373067585445890850631671019887361849778098801130102918114779571994631027157206876981153776695236919457606522503645756826318031970104445854280905801331291107627050337052650191032995214637463189838007033527363045639377589988484790678112765861861130657808727162369180236864122786924184879936335807996016416687419720789484963453730691521595874939042434325854315261779159936732416335015829322784279453285098586506935611931834854377347807018475278090821830295465546726088263365959232308212135804808096758384731729457380398578066336057437462132139224680449648388360972899926954315365072254781507590577067148296532592515719794026069899193059676796347068688826014681206089965893497028606139162666936098272291475829236890490022950431055045500002538093440426637652401645626472489663656067763309904309447259440803502047256926892256008658008591237233550953066272451590903647767575446220973524778152333118668261076891540055770252951917807603130300330287791208392747764918575830246202078597655583892017473584992143687079934736574057751382944761773357561855636749786269894591830255615393453795213397956901108864442704670240907050109709126131533306378586567809379925374530683045262484809220083864933043988777377041082548163998663997247757428428967260719324859086388943925293323276321357814570632927262642604006210086801089484265946928687151703122912650694985330662461598348673260829942719725285006188627504603953333842843047443264938449415209813484969891830730130608952899783559376385304741096216254508847468942412725282577141227343616383313276251340668782748882421465612432033045813503344372168056291283553432653346733629008266774213436800309259196638526752077585416963728492604350180915362405458181898274013256285863329020435811321925557070209049849382601919658043735613044145396839653934960886592159759995090534356073140652579242829179548613506376235367217886263257150056038798561467822537000923933515367175669839748608702896400961738670847490979109417898903576575663552703711366815915847868252323450857321787555142244748191442375989318765306454396034056039853652177118835042286497176351929839926974813286412975088190537324009096282944126059884933434593284662357401997445493786495792437083778093855853425433990211201088619223801461664459142419200885070423019288880928781701086525169293788666734547744805777290771528708773559217576720044343935823848524124974733543880866621499505386277841553522443956779117714448804706883840341499934680493161388034814217308507808583823327743632174117541435806968339482477601798391072000095031643893015408982986814405513974177379005067226550787184045637124089704531539033164017617714522236724267509530340517418950355331531048361858978520084556674995598342473125593975985042071248631084160584517554969885211382347341703539058368242279863248604292288518005367142215727716437010937613754355767803036473178246647553225208124312342660950953165947539861382516386008697953621519350363536669754505434083793945592109604688522843696654548849208963196025700186968930776007613494086775414604147020478350872694200240019328802609786405490878352270660898385457421128856564596909493846500926369534745430340333334770793368550636221780460543523294435525320293974418038220405277177385381139375882435143583514603474212593643497003698455485510655782628838238020860115889147007210790526046322267688483440173212926823267077734661061690971682058925349425859394700451007041626098947334852789595820576814929930736098849244039409624427119459521009043117358668324807215456429152016689204105221072154738725690437683885938027922782307571251769744653564848312813511305850515209850818108338578879800148634828925583438509360862629151313624015920999503334171072725087956672954690173001722776120612008950042574862718098704075998627204939863660016041601278489997009513946891397071608507779529872823583665398353541096409255742274260014522494201621403946386638046931935515995087115211621802897543269240505194394226811691175092818408134764812784001458738284735168273631643251897359500036097142418143504112774836105523893752643574963725830052767619518795823655387229713879654373419295556987014673555662533624038244361951023487270158265889738882827131790927656533955109452355661435127845228852018854410093705655221162901046139103985058605683052884101127554875664794154257225450406481271850969298586710503425142150753955340506863266424879442766068767267279156680603506142817616911413600770570374720459738371932418261687717591781309428203173707814360615093601193574245525337610223555740794307584366689035742911454712180933054344661693494398933801003656487559313405162748882899868844023907027077782637059680298380580756023435801942373947683759803498647143067263976825737753912871280287697151785207197304231511740108938856882634395943933354257904745424363428927669085123820365857837011054682395669631024858710722223260614061685208396770853574776527840010788259653930593692301476472454619114313938407798405743419940680874870619668708904109860913407211370003967260021404276735934373846522306669592845533933250563353585331989727350535077132260527541724423947571591726933623347016322892370831652399571008007193859632318407138077153699966118739619190162720776385093215207257796392496645156945543213050252847167452524927485966018497530098380964406249339642160830675568377077376464413777446026794939176725733221406930289848747119276562107366137989533599006325238674550356250727414897384599304425579298870247554451731628396163138533783061479003112398500028114750074332137800353014016417188348625827889886207686983046231358121078252122215537687893742167886587569879006704087018999057803902388872839827332578726846302547598342620887231827698254917098453452353728525962474508467926433653062122961356171273883133239730882145988634303949755807691330357443861482335604601369064909942277930825885479327539093104898086404144910605370019769651208076588645231096163223945108372598108212721470723288162492331277824636930873616492400525974239231861708505534848408338704387921946588723222247327198195596648667436847832982102873881168583975470197482648387363507083144590084734270027340067845257118364420234580826413279798990417659075116404393017290365845269865104874006519703157436081134632641871569736484733471484538724648911473545064176422665762824449530533110694348447058641490654934846755692303199937028714182892394265956201032765983459641887535598499076140798199980893585171146278260263082296999319994182477228395611541453106564804918202273631441491668024687774797998159639247341881852562130310057906454660227017108696701992805895310897968868975112102485835364675322723793120582801061958075205280276891802391068850748420808042320714858784975203648331424947242845539960080191787080343221232047489152910664276101782692811962425946751661224061325430277965398016504581618292074230505370219803676653369997467357105335160711480416088719937083752546990023955936739720901129364366223125444226550776876611791926133204939451397523636903097296499461318226276113443113536083237854449841335343905993777534377584431157421433243380499186712038887308049191057017574408052833975570921968225682663029193619424806423278210315817110126227606637840214645439710452140215463756456060470671134520197643779904205709946759279007754127052282022954625500124359334977163178862689651618783148071915929789113252782998819546768395198255769854692414233787204336422695136980064787116811391694541479712805870673724739952807125857729872430115306962462005019697993812976955242917678160197146642315247786720787097685078221677769166604415110406997416676706868036503321132044635471947254882725756583408856271044135232131138851061375417426287376314186727698393091279170453726321793000033120043398843319818732000614159777871986036222550196070959368883704554036052218042548713616246345518511427065619995187613166748042167988903633109477612798032286707024942617881606057587799212004249870841963375128624921674025568089303913346909710505433792177148369211804775595383507662594233372875238856694295121604841774307064965342874419450838741506532215410873720699902559330671656649469945868383975774483445551063346279265522180700730754184203462279539661831016962573872642991047481632397024713096761190520664946570632975365695574390746583959583935644215539520322001792033879837182965218933278575580978088257631734221690020513536240995203343996840636646435364449842766069924686385563799490247898281785026901303914630853819850055494291933490888536908335885043891974395420569053660283798883091612591588353589786792504614849310365176693074339754622875423360924003804538246218552375585487620105189273028940382236165401023002228981544860949446296697454273249575101996426309812621547310691196093761448751626749199640825780237439023043268203158230794842653073465568681760279002807599946795555347059210331824147946746704444041030796559512521768186687544389667047094780109435956675539469317354288527719070699076237902671329073934670425639501003476500367390992980888637567623121451054946628658123156150863612438238444379400707233826404474783533787843810333382271290050218247610905926224374748499660099806419209855862408257984595571493840428481215877233499317942343864101558343218680847271529075431882300506919920925360710063482290519463175588211413885247221505213028278742757652105871539519664151922661744671444938188050474820039726285917131492694442574029198998354201419446096461702384882845697551989604594481990356850145266700730146085714274551861944715600386401350993797134041208486039138553584188244884003589832499529681585980758472093912456260488246980529630726539019666389851345952214614288558243497809893108005513951135208723164159766605517533191237133070711459059608265832532205784012330516084689667105738159506546196996895032185563682615124622940541711440258781056202516574975155219805356449591322308004299980252094781899247905466275963396099927018106319490360816909881893014220797301413736996489936400020742190172899354833044276781186898095518612014863273963220263388308656036510383521424467203524109850318423337273931935940978617890588971874114303584085610649607994445497579721560185640169925365853398247359549115493791794420232200872891941651537784473017590899504563128294847249115760372840109200769922585710232194744609941035288527508762011551233864362462548556011542545074967902500046413179750794857175434476784550541486511294936696347143184287516875768484104482759485628287610170393711915793683597042060424227467442470339129274366322510239983783052924330969388587464581357143034918998102187442573153561662859028462583553909297347650188342026875079764066476096230251886831442575150722149866161984347536282305167374231109461318030448382443606080080118060004534403857847916136445824377585814869074502700950795162852362228811290957997873670822329791762105565245523774177143728381903116030842966756907435891027496574112238183010192546656244470194096616706999830519708917144129755135956855592446014031422052771217297850174692471767742595981575126712663131931699029430936533093415168863789565093269842975401115150585007343883395260402670059869246980591975401625149007868836876450260714660599937110136530118859521815817738537643005617109210761112961355620647656677924357852729887527353464325801818003992314148394464390772602103730564675140283343793554074624236359010154846587652005192411825771059086504774608777177294427168891575727344347515307617312586856558612649943760033047621149158440955186437686036491862035205777899609087440036874776536383598615705206859215065019390353843583801766983298724289509649169997765315706040254588924461714103955353560446320021754662384723463190075502902282345948834955010411644210886436721415348482384344452647693345319253659466490051662932009751645125623673549265713536083806835393022365645335562212912540909386274338351383134414118122698318103030188938424037910357723906618057726698588913149672417968238729650657244282998720573447404928542812333244753371307701541015810499357617566014146238112886752424381091415206896905732078798737291280396333947555575160765373067738890521211067449567838872560875856869486781455257006683502677920350311886335819147427557456955257833694761484957441714045924698961175501645700286326817449904187007267849415490170959438172644489115091807468293078395584076110239453355975397981299432061208309847509442453018210768584092579508878509875890531509090293528400431751794438923095698695069284461651142798720728621449294791389371840701517740074596811552727583060441418423787743496683548949619088802335810403762590966145715073528293221272289586743076121942749912980400673022575982821136492683633882570697629349413998556421592784064924410740948491177068378904994667715317286609490960456776195516349790665816994301536150768001588922251074931272046451742057759367954424182860816842197848529894038640442808499929571387155966128839080104427330353962529889816878726195247391408738214691909239037156658645882906077442615916697034210074056210658799184406026705925906899112298193134335694626369945592208884975827496788192428785279607037722844143844973079506300801331676672649388378999040708861852045359793612756495739009003275489827858764744609894845899105873963038058650167769603641875587915917586819158251593087959601385430904620576540054312878368472723397058478726541435884574517489689196070048328907068381343011483571829179483637384402107008409237638863922487856289923640980849056045519839166776461177802769546929771905030244600752484952569742472612570606852568495212013519349017652501857179201384650521101329015991277271590966423510537626631609317466302822401193464327589327793091502230092419681144462662281793127036753058716713481156835266322009124484588243059777753393824369152738421322538373751664937430297457441799135895195206245243032514828067520108462989347781983213443689001912022426168836821685508802531665267303324456265165056696894437705862297037299693266677913734578176090901096364652814696981992701249322536802355356643611792351448725046782545481712070225409802742276656455629318372604888545058294763935117516163606178718958092177063226425730882607629319174718024137546117235461655353550038599322569862154618376611426392582032128747550960063435887490714848835177805249927919400595135990501254677398388567243380317575928254540810269073448007364165254083376748938003752454935837480392224188618812955921375363980841819200785798472083221795861179136530174341401383922089506930119732054449291986297133696153990351694292843827839889069704104064125317171306070077877632815828618660090167409868313433122750360277408560576762391307863431032469373126082071722683511566904494226630188225398463677122256501423240740751602326574083114574677826041304852492738405261278427484440741581583291996338507294174356333210045975390760326001600144522118531793082208713557858540470761999391141034055514547529900689826416518034926467190603396812710996334426645671659954565074847773673249746640737923715971828490420172643914638409639015817127796163589141945584451006918096866428140320168963470643873250895313922483458715607047669483717979752606944335076410856299507403573325648918527092431582329925871654057006044696696659681882197471389050904461715465316242646912407400575630272263776117820084972300023842989547446210275478028250546164695110309740846641631741563763363484533654634931120209692442899802144058832931815690119405095413975939556030581192228239306130708238460882286895606700410211009335310661583322154746607709649969315802685654637117113368736344602632377519478439083099189439521714854303504294397211064619879241686662034095900426641849231007986256038618450466593959186408282196222077550143579548044420286136524885878136693147240223443753156417038030438587004102541523157439260350511643438846941134176666361496369180332739765098797926265124492221104981586617917520470240516081331170865860017949911159178838216500448146948372007779969683042305553823440835647714779309887331118339592503995554712497513282386320893334266772289287584909155130420891153900867114167197446960409355324715920043429078771208548463876595697311114315330588336416188303286567993490585092324555361212889036262763571163949608640205760551819513625992459588676325048202426945714025663335477407339990676852351137983173472820796763758237571004040181242933014442272875711378589588089497179475083502613555357434236267152731848855457458658250737722810728727504758552993485243703626435162418580902222056668123512782364221036864168490594865306155013486433768146315198209419921053010077596837938696626482515809162169593108558531136092762811138395445292654648555185958263911173591982047386275607530651713740080636813924733845418856315034043925645943802881039891862670747096655508187794643682095973425589500612032576091860743801195442737440503570119664830096223539220611674606700245206885052320211197625267970963292726102687204989094993491973709554387584221275256045655366097669905145573093771690383870305958043171973300802279087044570669551506340598561072027750632100571205149974817328254760327755778581594569549580638078595999312316582370380474945239735659395398968207528648564574030958221033547598887544517464948135263657179845689589153865527043408447529914663530620119689986648091846612631469281624178641293067233603161236370632938760282195114918503204398643396833585996303670241593413473855398825431425168462199068906049177135493196050555699148237174198269847385212117521982075142172695104070233782529248971003661767601220210016953736510671679465841667466782577621202295730575441087052866510664532673997363566158782242190104354841640905478114233148471051223353470517332448939385410085261117631494068360411388195933407986141834357065031820145849552664693946072633125866738853480267041944940233091833965218968183099238014722480289890346075394740971802910882629816393754224494921316737383044453833530437786242543080627163616699442831565053343381269317373939076704326536591051752310192889937159396385634977363658917119736742801474873684280185502266990463863255534899560435822955190231669290578496193897209161242056944681977219914395101431844702298296164242936150609620587555745689876921781142887612530899454775963286552951395310226906604346549894125694267877321964040875014564656786379091552093721855918044187615319245352670700628318993608641768456982639710216142014994420078676756366217886115799769295554763904562151714840731500864972330389930222070029037855299826257672221147858152255675607819487789302868341753904607206268998594350086438529130354580706659114888442880107703458552847302041718487387160380766071826400550035282100024488048278252568043969413529966329003110072135813191685078308795818427880123398683367032189958428983928428622507913831379997546676446497194453602396856354579934328080717415380882398468529714797709084673348878076720577488096375648962774452404411070435438530326009387001675027554075768875453551076803759285002830783316107617553785100271044092596911277303005824970445836700831265754761128044138928675154714871995352285256924429214445871450024568394598625761481391869667910882199579066919419601822443841078549110767490289009135663179711514007878843278008268333409106170296923921493413275633155015972865136093577262519549674114442922921510793192166782838957977662881131096401274573703150980481627814190244504191067050348507348853730105877248686360147301147032359652273342219411058354657565980862026550247717246767552337325092764496106072520005745145952820850047705501212848552513633701541241119345232340697050352628491404901710262062998772503843806286723397729913139889547518847024348165320684380763950800331588116570495134079102744665789045677450949896685720460302319902061017009142432635744827199833418979256871563579716596759516749704085022307458494015366141952682387689182241426399507628041871678240286564349929367715093712930715545008216090066554540514298859019066179624302013359677157624472360921474579174093946025273184051267981718919596138048734299496111533524024981283135877622880376078855678782228858173376210938847008868554000723320486656490284149072613036744178523482806048275549121402118205777850147388667196150370113193576221402848220404511415884791142568835971105880940891163450117022505799024138023925332465880754813001284749076983679991074493831608733229938456023307312166513099896747581313633960398028591991824662019462619046543900251022153016506374339639667416877840294789434969481473766564384918121721301424796161460404358248019509289874814509882693368634422551828430649257391694509685468156334771827855308585151681937274338546031105558574480440484275473535475240497323973139573416919448512045482937493030037213258507772716033548521672556367383441232388127299287466878017000462239604771375722830468906613055276005745840789393546028702748761126525228064541682188417535576558344899338344174423712495103816384842613969247882139963269912822854535882731449118900633759477490232680079467205544729982191735018599774221545669519103063314755811674122672442485916726323360665031701096660976360933351592140240366198674255613139743668540723021149606526085471019116655573348906794343580487530965080482521292990621538291963716850603470311059447369717953923465681799425857465771814595203790096913086718380735533250514563690682954689037548335349172296159557482566849913933216131550421860013532816998977268260965655816152524177057995739969842368331288440917255411379886376998117876907648078920402701804620715425656098141454195548494647210586826099056396373047455167722702086586731793266691132336363872709878804141102269646198123634566157151647970441619561810924824216544563319851528711045368002972611906254154627797918307490339528887798323765950110288001631190309977910878505658474663949813837969462971848247684956433362385480860652596880737146522993737498264148867433179278870772728282125850575522870616114178041466732100274921222953821612049776350300118374320670517053512896768366307957280813271997617947535975514170605724005559939499779672243098976485114933306324194793565337207348658119106152074343985033558746399903282501515536399865329609112716781921142981769484479664202979037651070502447062001350798175847107375592160919985068966461962074653132015371399800241874486932632255705122097204183362412718963290136946695700589608029751877247850180517141916815865525423842383052832480155023018180936512682657501082872040219590236252135574420494506270654641635542759731058229730930529873299163093434151334473521027532103868393621975643534128868530923760707041884827425842224457451449164011918170463606843389209041715004268947731201846683790604284103898098309026594088609579864600668475023494396915056699474699957766746014101422671537470033381885216860466908216790561415041059629057862037430443073387041154443420191545047161277767124919759985998721315694585600642412506060904456717227275454332922345522108826285128917716116681263933994754870777489308087578849609009047769842332705345396605707973698276489479137738891977903098342254118886925381876862807223660854078405492037212628146613503207585867243375915094435216873962139767993843506834388152965261896056395756081679020413782468882143990821170838638461761402687670899275528283414386622544651635630538508083286214368662798464181197087589311199350354500405771841708419762430435421529471216877043479596488143759349851250681699565739879400390309247074732599718202365115749199152233757962301426739593720201772895381968155216714889755197827325183141185479266106582346247813521721365011950715635750377270105647345596829404662651938693102255004557025990099398745263044986936808635012036460171752319213706500558434733369147087727829708679841211635582396044212552808333381331902946296805372829485622525260310830534153740558752632300772009785086961561875527356600251129832289805460054617028359663386195094316415435680901685918580284026010607873820815286864445042388793409902742806698480688109237560475596334709247667796740743344226540898674796363213868415769422494058752479349883008778778015496589403996549577103373836786892455104852919877511032558341689088888813544761075645403461249624527468358502724954201013555464215211243625602145937066633778512126348306049045804775899928511347722237757906158012526288071463482386006741234013774826062900344791811573420130692562910026321410932022469004574957824947453931090259412820652701137709989620684160273385098186571256695470797440213353203401800617028240381741250381811577096084824587746355675265334721863799475166761592824436572757535951026332684192008389142367889064973491288683115070589910857393341914140048771330233040876489840727002298213354619447967195402846487863971468478243992542069397741035832697846021693786886740302331014862368948859749656536127615257236186634028190724669384804885770031442962719008888710320172814325054665546569045753530465241377598105531965674505995520596994182595574322755361009720052415486969602502152745385454037693778181527233346954639869734676968269378792077749930139671078819263708353009241925003849969416092491931545009728756355761032237924723056289412120454796466756405130916787502381986247104147599132250678635734481107773405348473741093263043956263929599349093659975022175971786263873701469696435417199981330574327369065719167505176298172330679384908591870382708857305046357910936572759687669814213099249967717147311061639603066822547208209374288516927234249439087311698579719781087536034172396437430561589029814200273019342717598846186956428709092185748557693713702152600153063514976975884257829855921088515447912065890684644992175988667236364543492126799796911169718242961460406613242965587481522065314764802905775344051046261071936987130046463631251577315956617935304222160027440385952600570909438074091233566581112633944640034588560212732691202053670488568498145731598024497553617886477082724647868503078499995787395650858825979764570425201409503862845080763530899225648064243312181604636835432402028364881641126448908257519099086542269312333723358564040952036971773984641407349797189569083577403575348837464022918104440076769090767447701318535009561105301953155467834089716197850936232400006503298031971332148898563201227168368490203240190779062855204487295082858748936859057142310575551768336290300366829783516395653224895220150168039795105740803841641906818271865027278677386232577299716944005235944300182511380005025496761783003301800705671923639051130584464373480248726794968595093845458640433611324355855641775710731642436557480755196239744429437298348937795319446732912559871620808913919551462140327470648778973254398459431443850050359508503775798827365729747777457398569757865661002993219889361586009462706252429470156866789336090667524377340597098580285694774544583177149278410599589045256776697837789316004692941503867148989224349023646194504457788473884162522000159048498346609918871100008638777904830069143688984836664929456916053176776564793408356705063289529406077161501726135024370385769017997542346305214785592668666782007416259038306377301244820644467342712136373680466340456298510040510526813444575836874331397508329268788898495578882024778611350834884833711606175642802330794572471366136621001864633637534540818578780516921973219361579101262092823869092949855497163803619431965242726402031513628880675064983913444208325483106500920183893474601087779858956540728337049568717948612589239324900427949149033940161127776428469540984191952196673450117000356613791289444102345296156458864175155431371098079746930637835817704916709194150956702730834453278928018071979682580068919648951359428903491318021228623832293896105326267514271862229139209269487043918547306878933356268730470790638114125142651794622773286979934284328437236012395111283183410228451186883881568593392865294488974066378696683205466576703444033398803331590259556916066322386560009286804838565680971258483216195222643557040474507799265413308651740412745094457577398909370407592976778240023092954092662636477061055842708703584702092135934552169067379948560728908608432653947579870278621750578128925861289229067479851803779893954982046366078954212014701691413406767340797808025608178603044938164037213133604047633299494448644203624652936803081866240643276614266926975666544088769360474407014871065198197640001115431220189710216223973558728555087541416913401750306869372371681549594158917687921134686311231144941913710472978933293481262024555502633496758120471384853517835237541828852196843478569857124833314185886055722490410656622535571310636900423895507792388719879609222525508803092939712412490159523373596845399931746539118068108257115461521316782572391966016087587292102063037583183773422928294049840965597774979243421230698595527972341661779882648525309191777607083541398195780633199190368410708414958587915705607531989585637119534279469202052788384404694568826047687449909329453562646350998897838542917847263535163009673608127778416906564900442283590912595488443478489478990206100600662424950105240772072376474175914948802462826611349272498917132751489794898681408609087465763757864209365363656969053616653272113925969806662533618624608770568473212845231947749304895378075987960914544955746256208597774126255694159487797687048642845930655883940934432896115694049554264167262453508634114740011982157108664874140392401255465722765660740973279524716963735835318209041650314464702599550091182993971347720056553469159740028361592008345201289692715050411935213527049372701557190207263860837626403708063766188437010536041174764188488793725252203624079274245157103380459824847500492268607632415155798773242137719405634307841729630810781602099690123638030380603164984708571073488492220274799705881422916440111244734875050993552261806287575155924786125152764553429488171893656129450472794023395023014494786404736165030581598010716937834252143913349806193311396829914181603786400576567753648793810464603691735669309067375388051172574926229303848945829210950163588979618331882291199478574516204404617473485535791948509873341784094864855363849786934347242333752903162619399674690713208988822133844407809432482577947554469247823664382704237813268260764435642379066444153641027329081399051290341517574759648143255337538081241767824991322731896020214729630521621285135762757824924124418304662937238774675691659556950362150441065515550328719250588109270461543356790157948809209412899713429970351697731553118777493666193110061012444837187121660256170881493931344454528154782972118568884397123607857153949886817867942765183868925012285950868755127394005130667814471250621362144498112841213460041363455282752108691311528254031836254451289081415489925880241401021564405895921152048287392623995334979859878723150807839662229624961181079336543403668889103985627743608057316988593892326394641537631109385177319159818479616443993602840597432336402151704346191403162012919331772175071087693628817025469211454605207211698130715942128302582275237948712246832096160242790215393095861146993223863116359165318888298435052666844475037748894402277674600392875781989873062482509152467222173800736339509778748933846331970572427246156972245565875349461253633357905183933128507219230783258356146933907465419730998558766212720735998452288453110913387977027841802542047244470759027093903513250116040477523069779880666765486592329001115868207841868187355602413561600551111055100233423656983751154951167671787717861849005561607092103452232468943500946409952273358588429712317117201772907919383091557994735280738491416182613290665303358753630113617826621971838368919663489091383505964614453756144592553440624519148071913258090095407964082707813194951770482397577948542276058479156100958517772234870756716036449693975593929841347837367044847436846250128604143414740732248097764758094868272255254230132825913386781589018357747776988622992744507332447280524928673762652010873298215934034866299884317718978158939375363426309932279908268757862830798875507995928135914063187635276215607247908666323296770617799255649811492015028610316617091246218490053143411783300649287722441575211619525407470379389728243522458320531983276567327850952305389471928428771213634405094342140356992465916057483660355134399745335973813925521458055787251407172249183120828155035704859161287735034398494260213606951815562501865897669258678317855789492461437625736412586189931431218706284749606176843866521285455483069679602301329092707328368668690439068925534127251808170126713778912711802670639943323368289253417955932319835687505154482705791574505766389554428449289588946282165134084548956671594787327268436698596938962797420162309228316380695513377495844701244194299799156755086772084178808127299546622354345360472238094368599505694860997397608723789232282683009681147305839571496035936736887947169261838190416434620647912030512566491043539984273560544490885796303782692660585303852977654759458237079263887921085343246969271303827249263964204773395974664414414163104818017232367229079258079634702367022321113364794785767716576132577613724847512229184156068698230582061026419582883733433868158107395200450479312079646850873263542304571648423790915260615871815530476007615615884489320406630548752881063446910541308187823409345845365259492108790936336446727146689749767759999326521673720169106032626978953191624334440162516160138333310482603152623682583497549801377613224530783026619016643731716430446218540786474186049968062146627800760717886302432340844484376934623004554056576014027603766479721389241801669348857169083912049725018791169987000899866010388650784858579717460076824537071991614620447118364936836278199618498377544081118621276017221753972306726471397944244892863800671186354644627766972970098939445948826402797588191209428020841916685960292438242047237233720216430753351532192193588916000003687697914711627087117391813458532441953322673487647475050657707820909102559951934165735647168332207101785945451245337131307855107407463709789267521504577320947108935310573711463876444809496250378079122001669724378855359420887824896979985063272489983382761385541621356992846470847579691138715925747161475698272127192411464346322228961604655095810844579705135043893628907612578922438345057161354945699087173121715254055351195146173996542801357053897617779532637791826041657380525156022882082788481631613149104299435150482521013158025776345037396467686067373482540892039971371068696185890293208897498461220562855384543208969690405558443356008521857360509050326705157109140520209953503811863243774182548038099489194840843489714484681547316449852348228679872646125102161893171717346317488850979554393122372565908928154184640396190393585472958144874827163271876840875633053102907849021473256720330979009466159654531749473577298429188454931572936776910598124951805076146500355238499417130325409158146601169457865119502919763470449217352931747532366690921208889039923043793395181507153583223674759011074183591279712544964098410840792268493628875698446426370087149900414968987365373858177074095107776489063845667090707865356544660897575549165879248898661393342066626113430056253075556745984216054552376150571158045193795911649361434348961457247635900476925218292282026020131719158485165456308564549057494519988469493028429356904688657563035238345659462778637541950694759336972734962355883959016739051136389387710356558449306117943820688757496473790825460120538851769915568701608798056936611579394720954253283259342156959991548595762716902950181564013206549981024885505062528891937543624725656905827277413911670827270744668902393257678679888104245032979482066321347485022188939237887624534288921311801314171971487887552356842026708712916813322728073043059080569688874245163959994427510196054790999569773129485742668857666694339235418143313192065191914433378945403544407296814513489548712036147998375441250771434053518547752104182412861787381690298184681687188363705842735972017574287528488695971018338371307788750556556984056173958667453537889705020694460700194703288633396645779972492098979544335402985152545042107904013860191195783869770554649563844318972674235412646320030756501454274002570824845620936280639659535224001811283856360327996785881880850863168468105966492799259296296654695459531215069835605035445691412017592844542321071125163674338086814337989828530380626955093596024927818267969600894690493157313560513014433254768913667468947718542230338668879207558941356906157267988756507177352366274668462028772206557311215588097814800002868059382181248364257750373698162500244689600697361199702612108709720816464708473318503483182892725728829232523386011400187195904602744915857525890461581192609778781940655800483043293491518616039955062963674701138268759538832662785751690362147660705928339015596281035297107583534742850433572097243231727862582523385398636192122105383562113415800756001507718209328096059581654995274701351377837921828493978773562072208758258500588047030786821530438569537974210747426353077250119235491434856622832374252856140531573982460942345630900964082489374209435042169807564303786628541461614584299291393565282563610620217290129805355248959563497916777568958050748714781793697693104741597077735195133668135801485182708023492183877041762110756312324267255312058242598707060323369089620367978034503894582009577863333499825925990133539762710206002596725451898792489720597234283006877522335118892920739619623650504123511919568053033110359551128430654822329702313396186046665655411142082056937630472488369439769119004511409420299526668892263523662046577176725357410580573774309606145265378813949009897816421986385091634470540194184178729876053653001011110683176978241894326361833970025412521221556272268926485428971672924071183757082596721454378359214007040199519176312303959501213138034474399747977188627646229323351151889071602321850353858461499681103983788060494770268558548284807013611783454627261462003203486114758444043098108519319725892394582360485958014553064101779729909326422562516981169955757293295280042541400440134132933756656392756967280721979968279607646236157924604354225670377903888132454104660758483302954846061116708729313616441313753178661620431354732766285925859226942848364779690702848476959782197799931708813927157873385957592198727603441250689627506073928573217280264427693974694376031845804919529695716113941148705900907092729450266488266824371510278706429004350292607082572086863405284087830642241589200938525466588087776696763693928128348683947050848317815870880543666505830509326722261560218777040331275307283808171869769836626527809513683759905584450086558693563043636148962183148018223499157149163933115512347818663182232936411447931092147635656947634542548180101816040276780059980558284268345548408245408437648950729413561138546137714973045125942179989639949991839139141340225457725824367617410153163521247941378777567024669950653421920565421485257772164674038845027269178212100916732984933762734751722513298064163666570764191624347387877482406294118235452088033250575131169490832678202756401551672410124539885224197077805044621337731214060809301619621064815512503132699101932048409225224846399030870775818794072300118414525668305430459658505789068435651710726347092190692417837436893883740743559006649533278827670607638310455823973445121453375682831040098798907992419514911260967249077360277992784793911301933295811023943905622517160482866884891200697287125459726477281294532661176316264536048344346913735675515411317476489381192370588964485687699907887062576951351950707603168338014849770195402122369112360892047397766656908238558881199581588660866822478280489425263474003812063601184535491936314739830422051221083404969871407885233757170438605096688476683070379840421799267315882201576865810959259331436584221202171864054602008344718914810849727740017972045023760077176879049805713328032285655674128529235582732540223498681316467848946081321220669744723925789766605125821739417048232669616898295458817629746250603424807644472886990085884106345963199156395630149910852116211030073537528165497187578257638794755174413694855945211281285364419178502768346146240918824059963608713952425260701226567726745002260847128440850764468534763628417659750869334985824660125918285457527000144770749255597054117713794497462629098503263734714517133448149719375778090612219711185722763802338074367965474137929764243470701039863162231996759736272608778564919200822192874046982796187354544828601970056070002789875399558881731127446455249265082983936734527310998843581277825068902923220546437269156248660911319907665287840557482449380367502530265945328014129828863822429158150595357477325926355756480997270362330741961906906357041917581502677655392409252701505411282112418186830450207103029306049728761619074748052838460689538434246644769504731374322887647039463630059874742572520161890306931456094825175826702585780148604052564311168945646206510373230056748716653263876161625805062507848344227735340347194668571567982853850654752016793471441070072828164431100334765228699824344431066756768951843221663652906952958423262736856894339868482414070614462080640814480101541270685472822805751933670212209296435191609745548657340453962928698411343082101025373443337152264772446714789814099234956060339728603116374021364186572394919614294953949791297078253958983245823782442043592687989984140143151667844350216497495887714315387369233105868629610297001818396770735637882580578621345028307615192514999745361251777969959275030379650076881345244851181566430826942457180364410592918822744571388162469518494988525912633150538563705814943712842171886161511322178270963878815289536763455837564621341122775352253935881633226545988170560804485417801983353495401568373307183602615127243167267168491646057675255056300180671616878749314201776806263098751731216280393133370542737146230233583415107381192891262224889918100493096384156336019500714168768589890025933082432670610283663655012004232622791217415921743711266975413616201680272675413644535776334787829237357799819092086029552308648859886897600102695357802101737996101723549866199501017828852102506702154256095721052593023304616775348822487290930076925948530446289460216941950896323877946624496879084984238134250911149984486513614169755390679744776373031339665200148668152905070421324977063740919402120762302774112174246318036869591749058323521557375178956828474700528917852142370182780358403531008925539269824629276921976135631050776034864750385260395978613418153140410909896485231690356441325313612312549143960196851287959008816383744397830027547141227118330478456680714837526662811002544528566077752292475350964715117264970342276139170724170007703815801593127128786451292889312441453807889190850172882190705662229417321324540871586382076228239393132251201314120470010877347637423206405941945027825465992045340491269644808904883869530398067271122843246797021702931825504339491450048728375619385596923647746827329400090917648056996555198511195011871275549093365763084818367705761173998293398410852843577155399511988292405052119652579906927202835446610087434852818191821724971728371506255386596325249842810612244690979084308117744629263710390968621642017343908514817900662943833719389309747699686899561560872673789200106254678646503768738481670446552599454276153678452864054959939494961776443234485917872831818066591776695149840305211026187297823837899699249614812357176948828403044904177911199928014848248257899686484228555803011727495997438752866688476679245003297983828340894263307712394929783007051036095588955222779163039669054210169929266749693751475020108253064374791172848640032151184955430073366494823575535302529582250919772928378994007924136774923211294671852437556252726070884390812494584567856519202948672731040445794947066249720558685191065888603530744445139846196068681755787234062426645775333520337099017967144243125486869973686154525543394249897233906718433455438559958540103670422553198053600715094638269895551726631637466114167434959621542973252310642424596699431380268992535607962484166967936673786933487464868489003052937290866544161232364914868948640730030840243291272579364240601079011018630329098591593286982523492903550148648437725960628867320734281058672048821558759668904168561614375256646253094473302173126658409739087907759905718135112109160758310499620076117972819378086385509396355601634149367965045764774315305471865351316324527757042532713017743667962572929224527530885899489052340208348469117228410801757241375409334187927497045161017482312905182119409715410696465009817836371845858375225241885582906470085039547756909335018318005329516268272234248886607875875074551530017084065015229976305906709661668294463736661039129540146931216662742116828151214994767506667211197324522113090768690828323696912434907766440510840811476467735011806412154854969233035778713160736990853183525104127022428768327010264688349160656995343668384116960686664851895175171951605799756327406196830097141947609554988577845834533824100224645643345416842050057792177997712747965848413599151401918202839234385981473084849096309772935130534996553212763267580323447487072531605158275255366095038771595704221193954840733396100705046186477744145428085001672927739579753258071194346472586915124257606486533576705819755397609388189328622180909470540083038035477308213759637637460492365503706172258223912841424921930223957282569865032717503104446173623416669651978700098148151551756119925240379744674488779019305428630232160773577774054662167071535339513743860286528761616359487806070038671413150052410614954718186331398885751731826319300139818046824272776999875215599892936556515314842322382950582355959969966684821169812411661432047121569125336469068892403288235975642650568650465649254159618553024218752388677963170763832306423288920574418277578018962320870076421867746003023334372249874827949491334185469795983823546494349765607962470525414320893694959862906768274841837812796182484464180962753891022045814780039515154718659082784446624066184339252587949055539772562458313535663333353675243964681937107158360562659139297485790815923566806446590700826904128265192999721233040987825356899334279064617078831455702260873157293009600330075649118194725868259593022484201796735335299484803675747139618543664212414772458325216680509185973741446361008493440307443119469203531814385563520212376315820343941765984105578811477604067423252928706333903281487100747110946528565784646678581246747705436343914297808541990943074312731040178660193780843910129555205692778539406892148131317250360139425856251425253551979864480276353410159003743288732461629997708086539035024003590675373587804434334002119099346885539106267573687528290709418724196997188594542870904604802667418065079022234307912494043267533728469861978313168808605361445795894426531939048735291657504227981281415813123642493029207140663340567073335373292792539405438660841734836552156145042632569765038787774980577430542315059918890921492088388945456146134296594395128061106328044716695163318543608278308248469268464551408094803456731350221139578565735890380691272935265719205535201827493421403381835075871509006569281013050625533883120769275403453010298501159778648382557464264387372435062410737556610146118022501575130242662400068262659555095653718231464189418105703802055242859580236633688171944685784460449135594920454076937443050332322977367002295797008692783641180997891934930043145767243697404528667485146709562794151147929045473993269169968772890153013875878875247750579324242968864839913330259724945619926782152050950550114566409659739810942720399884011135911106521967499180844920224245549327547637480553241981493025949404757967804424607031125538110145921342181948375112483696143167569447980868860698330906991418680279610130428039881141731379138905158089718904230151102713838670299069401033069662790829233757652485501157620386041757945698788117686618094016310600452817245726108958038943286506486516594556548071521962349843927339910270663948222748711574274289798316908929309439916013072514509588302790491496594879054972576415379872626015442025117237646619643251174312366682380450638160185716683763154846679457212037931440653851977987560882767383478801026594932764003244699211012514712023333210984528380740722606271132575379317365634571462724956863280094275727943384746831952636153909361195077237605040268557590815845112563412739189596026562158131367569827187885044922171499397520896050966866689127316496529509966247964423192147877937715618252395565928422728531798058316296211945326701898455495193052352032059148879142032911862878113192392146807548351868860413794191681396440077335638842624995238105759637897691518610454390281345160312374296401224411109983039843218322170756787816098669631354812148145953606146948449181748727086157501259693096479482719239479796362374254428528420725066927835165863169547217234347548343705818015524606358833957459380616117180619268486442268495453337471658849625480705898853419929802901405814754207002995337943371647537105558929232628768629153895637665939031591177904903021316504922482459213662210898114445046506708987471255609947905165918831350439319435210441053961277722235130825059098305336188549847605108041623027273743969328320741304627816299370206257780513218939453975243940750109400960278483059305768178559263424218827045336980683219867854255569258393809825458193686554397717450834627883035227538095711413814931242965048806128601422872405615878869787145252960181631884507403338273778244332984681387386621575167931851606450728170010375517091588632273219513470464765587032965268975592459638277683618060994825609230926336692360116890741188002084743830764849874689489912418034860977030582227203784926832456153878215431703675944752603837639913759281080054777962669079400918864485187866959823409043264111333208509031566419478337297848433517117056091512439578452727251017534747494651085923605658489509096284922456798359536200440510015155747779112378822368051882419826661779212287992101920757845692315080904811863006438923477064128564943795420102773778429642333409052636621832710456944217216596158376753265845764350805746185853547635530402266010366570275023718520498037613312891954333303188373936235734471445047018172105518188865729955230171891433109008238780270706139323988989282925380971173388577283206822388337663584757405085138743988048385603973314157793612385171649889302189625286304535770627354226404590894898268317246807302236546298854588367738294696949941508588430563872542765081824355986869191428961790124752403315518972096632968268331576234614423494587166336868712785259502517169414227851389609927525698286269402304101310497672900461967899334242848490673487531040730552416605258455437956343348459584063950675921423255307044543458657397433536967841963810877640098442788534341637065180026418698525197649438974063695248104883232167302482323779703600460664269587586978205228757999467557086194382227972729104780819978370720374720476556761028961503503051857755104190075765496887737993898816089100435192449655839263544718257080124327618451804867506911906077829852964086591259615873719561163112048495539643845334528095430764055423584945317875681553001920025292592185110563047564403278807091239801819754482235235741156350841569293744661961828721356575265769789494737637540405035937388529561177632530986124115036674248241944093124802061883637612365991476260292833127152183754502468190511051015651689865322111367131297347605605236649977028349715432557651882523689804736099739534879981299035384373716689012703528002913323774841929938570098384116343686320808923177669611631192163127695561052652888038673696568271614752724005330525709453167566731107837641643691033903775589413284182708721478996096346280725373104063382594949590552702123279766990508041630652774802865392704847652167154080168077874397358245353060374946115440139718434033190513110375009736466111529117824296439466842591835801569057010144076832661178010158289498908683998028755852799140002787523109160275853225827431083719630602017892553977274478481958538209790978293225828100738280449136600158879295173694437142981727701014154652885662128481790896809556264047571324271499095201517619014824509517840590853827062600752356262021272633620552493183038712280504971779630301452189086781304692121537393455468119902137165478887637281894236368067167714032483599722276843435778149975374367881828413161957931950859566187698503389564016400448912220435869091263185865115391440643563474464819339520000059896448863415174004197572563205587840542617585026961713980224021325834345429070726296709816297904514924345570290807739029823271079070358475299094515886039215762306552062313154361831809976982519528076788195173998921738131950392332841634303413366337148838030814726969868629801643299359828770976040969638966981655760356094475376419473467988604952615634935334308225861110170949000179332675724540604099065844347165402051678309851891375347996975165682597044834214375257492085448252126084579060326505006966002896472058798659500206389719493023441051470811638237205698359590767536860283444575637277234422533120147151198392822777559958522199678532332434835107256640631079171705955810915556946627662299429406233439496517184824026543887506848862158921619663151447586743080114242986876635205766443313052531865853065113034952941604711778880451752089671527364700062967834169591718963741586704428016188549976403227429641951963879814096434080673126876734698191642420416252050274809090846232569793943538166865417498723786777510869203902023676334685461746374281778913780154235961402242245090639282093066627248216005512364479147431558037666778173385105501916744408234127669280879793985042230160564297988731875521797387605928217180911504055766387456092319470339283969294533488732893614069112489964150893252441168678942027063796622791316464102331538394523999974839126994947562263387715373880184615476572085389423900020911793657906782602818657953809865113865532111817262133757029353197157264153109642239884994791791285132466082829614202779966492514927782894329793088198607787436175615097866403555081066742689343955605966159362229581011319675782015629399413098406139825123831692872384826013671172769759829025045616691300631020862704719630893975721593333069117873677480358597990423308047971896551732347470333610823041898681757502726946214950219505428701042689885891890866535864885227855614181082566007737300438447578595979603067185577860085000040252470646727497208900313397246922257155904713147864410686609862707806703921803696297893409046859820893020431036587869289832153180376917314134454217812553116091497300907457103759754913598964184276208712631994707617550250132529779981772295656530928394291906152328409331252127539063767786444643845615085712471104054839588330257988066464966959254808424655139600368881772491103904972401398171177517300607254690997581860134712867825603143105640330296761648271884704651748554452576209126604095564405696428490601095529754102128681589134682782943998468139466641435683176910009399778412533146912555117181480657352576298278457073488222313476798014462068471974614671722205239445182780371065293300707769196652738319077384081272165436153200878527183229735652577212007542255641563615661877529067211501834807829134336236325413237589233977898164192574761089693784287198965650740502619246529795877440484249547703288655274386311835546670052337276507317541521638684011158463680919475072163873283882565686696447848682098381707049944286143047908104555518530952555992513376656279807468528805261345670560739474724165779279645857513671799006435901421319856935060457933396029030865062680675192546417144767440236074858773597342090228419524599612481368976209936705586943274771804466583145946651928117948563504256919821682661727983834475768312273004812863083923853780653894932659458547779830800177690080712922534608822366779238835393316721177151000873576195304345415617949795214782048718607215658055219753389548528142547514663858552578604973178324296959532817140307223178247752833225581921266816447721071150302738018510497676774323432976939768800060729666806849280317747755431478645123429209091623662014457983398253247445798864652183790161663921332237887299012606342599511883067026554783737179554375511052218091490631800810702587736021141132295837576487226149552217888448522786299686959386480246196925738989893119052356543029989808381357353129306988925649684597941888809791179764602878736728365369843249082702237782049750656712814326416597423196162746673049559520619723679675579419736647190553786014935890290918463226649834021076465439714250840254895900642288286370582544296134167281554005794176690700820757392132706441024084162080458058921525047513240901371847004416214733605995593849498780303845445254151562892382484092198854747753171126563605451577516683151763307985637431775408172190316058799897779309714879592241707667843508337642841504558081103161962268297416747123738409247125476148405441023529415017596476713858158605107864349149418168899136510908705275445531874779281086247992207423628659655620899335471050060532988332782896640438661916809887333264506990677798550790752449296984501850645641854482341164153142761646125147786598365675435933422393744310383295854805069779294396066899751650892947080903697421585088517689491133193154092569559434105043662430070157437545371146664973892188412684897071742577504090485811219963178235847892594511770866465062529738075652118025422207448451705263702220019019265134517996470933408289403555393199720482960195257658157915231251664776204889989857863509861408851631140558985671759074639011178604742810655374954446742608373664893420169933348990546296039329963170501070913582560172262431841406245541123797495246284809952191480395436661805342298889715002261395539460627208599516334900219345214293825210528106236710347906878219469523702858494639355987605513155516329159002347782028402526749330833385287950894962290597644349427632294666239792720119812741931363601461398658113190517167788664636484120427536774641428199962773516757074754166771980387538021952306102746802850355768250493911741784312999868519336222536751613298145784291813538043209980014126055977151854661691343783960027954834559847353605427254506585637892985664709021714210076170065888386720382462595628243237478853870753037960530146792108349428407718595030538222719899280323527206500198813804215865946912121900880027465014250690658775677547055743391117791071461325823201462614825631909627177633534781157021589610076611521855298268201039384119579085567045723407188259605498200722091386926251905520300061780959676821599198199491830282546687589313489708257802164620614164432151950158251927169702332708292610117990096989798676428881359784232012717999234341192033705110253327827129620535387231859959582532456679316013210547766663351540543416092153811233396943200294947419066217040395342190335516922352263078002677084487791549712518361227126117196878254216958419318677833783656647507301222564867215321219831357548447372837835700045880390829690787109844114262552988408103078802964092405913212282937530085591384552059044732298942404824150968661586415299702186764420434102420633058376233277787984744022496142923970914175631311508743212591518965194323224665361325677742868241761751974755555167679094348337965502271957648759538670612372420538398454248992845937972015442064067318334540838495364885102368883561399544605307567972958656412676711315080357185078682828515990502189090396822320699317303407478262407941119361067303515563381941871382065127285437158589347962707560598278949351203561913601466547033592639915923353453824520393810541161163526039813600127618550965076558414777205097411203202508113865952924328639841323815464732094839537117336997621895251959109483847416533669955935921857510661292790004170113856563462895149392789760480609686606009139663594743310466367611076785183611904447042051842362149828203780996554545775058591956889451468401160505475628916845496408649914461320806980395706788851153904228991713711974745605039786520633973981273545980078327271825756227718531715699902674243291989167175253335723307849194307160513247195519547290133627034769092293784618039048895697920411025958198691185539573703967603561739814467049635126496550897735313134694601459356821439888516134404415287027432142564248781960238572957857127853264937004510667116610871663946360399361601421971022266267437625620228847143980920672735302126126110144777670676607428767444448366583698206957253212266262474096246997934181716091840328175400346567940079024823927899204942717970315039689967672527092766147399115786717604486307495334483396772311206378833765980255236478464724265204042906168600378930769077909480774785611985799207692541024039115829383706076342285066067647257428122658660603896158512602930058743511693611821288545135275936712901054012921663226282675885749707827811502347772465197851146976893248263610564404561074590934724511145233033885636752553744091325219696834267157651392221163846980489806712388598712260306031469721490722049906149977758883248789417203517658304818205424876156002618552202249361473741451810160205311722909106354171204883922308626721818179830739132475417232279281997655678472940566122153184773773387137329558137699860944002478891044831436068344112342423822377782826855944989392611415759497608165174704608534502705478315383919907844924511448896731498859156557874971821045782994628460663684700534359461421445800562360298649845617641552484482471500483803929670396405558489007114675829878734194972936404832989803207736041050081977260594967770819635317627726955701107949253654342053760407663839308758419274635285284062762581895329459402888327804728814215023307969485502376083995117638222088987630964837291666595645410445274834164047360241884976809844468452188377145342324272628608574362790806255899750525384395060988462555174688976789801681489949089203291859480658298856458342036248064018272701462453232693072634867980271475934654124655334749095013208633082552310914618606248932791271230185210862525192140357660808818082226404614101932914124881682985687353507576879978587009740249860820719727899450446691542733307201108723384673590948041547151611867914835137340563801336276748037881298589788658662052876896616559166411730553615040566491809777795430815742772297330287564220408960887874128061299494305304752705337712241232236303122429793197589838637363305416031945402286008276809694138819455281951869552603781981324114057189322879493336844427292564376883088920697204529947878835883676524616283656287433162206375731699511099871924761643608311340761083867447808834484454943292318619255785481038418031564263838324460805548559318531733364512975087229801659674906773146159965337407443368683518957134538086194743572553939104190325351467560389634550224485862264096121392869415516722721790715103306420497253393707988796544028551032842256695893887440096377421693693077660787623581110909875455559301446574930373705383532924252602547245367034763550502901157872947388633797903639436229577210944591763527033851055617002117178634140980073606790249752879258370145800884140287848849525452320570059335977657956982916485332383769177626872642861059146574425285309545677967642784270931068308008838160831427054397820298390081528689751307309857425767916562863352592959276584265990881468813687330834690458929870698765146374165763858386103931388560779849089150407381298824049437194528504216578527947387500685159924392228487362745634187883684935820849597733282313060834676770270470391727170357804786242607342186375509494998817891495473860986979360055926912228064428365496093968247919133961339322282680320944207322705053323983707032458060408941973060692773492173611376308555964922684371092833206697511610912556665554180339468867445770881364457686385836129278371414135726831524259889541882748937558420606711504246737369352487432008583551753094653329763545985096911459160312741241421084753325272811407961486129852463784014225220733639666503402801311189110865477081676796176887005089281486647585745427071310699550745877191824653872898995122762247794913716952441758055738671645341928097797440730062508952512283929638775409154766125331978726758918855133456676550683202656747108309773259136218878541332154895068209708647717233743140895762255219124915773882650786899449448361400564904336084882753876293036667062729384521547201713559709719321546123596322167657058158266926214491458037507254904047630923171652569464628931475586156911385453696443482016968826159372125960618398642375719803156844634824799548425715623235772669747552244901505163172573888761751065255047258397810610856660497752254245844403290452267338251559487172352724605042986298344714084129763460720391118300537017582051413084220519577576913763105921375455790347861453983281719168792886059285438574829278908787461137338762428119585010924447450098614519684058214433052528753243761042603629573038181641303212802558325395937264832695551093219663040205803106050694363620846575136792780297896595402378608436550770926149944942754270233062601391116409490767634061875958073233197033000003837578916905073704146218355139880319224088592069787750354131895691725541775111937815226241679381730486775841764042374182904933243769544750949066562627691027974658629765961934050829476192867321255492605052330877113420471478132947413632353829666137094369626838863303733983489912207837173201225809113056226415321698826748387426292540999851369583403454147082982810330224783184910702717885833779514095651349072222317607799978031878555979342903788533486004670886173326265227232939512488156836074119535507611375641103212655460255696186416714756928909950275814591007843557846217959395212314456123599277501670331651876772680379198275668117415441168990925935053163273919307946431363231801261461620989398709146928986883936968149561869474609722198013512907255356400055784243827911655756350592863424729276944750336223682713326114207645347676266369132075804178659882158546840309280637069348204237724394867576925282191726843787423798153041153953576420411788420837965601817817612826171444938748423129630226645221051896917634658854868041804152566001524057202957575268583481413515066710155380362758007162061946109534831002954194531705176169491451980394359670600055907207284967024495454465804807244779275663463826508058086946641112268690686578864009154072872656352990597784592679041924358730116172698082974238747602716401773644483297005570057915056304385790853023670575601757148110048583335737559520427597078012967377583544707472911016965100510307936097931683766609569943848387719830072386914941831358482290322097576151595607950802785577741791909173565129728256538222296225425112584808281355214325078598137938560557615043098963837826337083042177048000282285495702692262957350658484173478463154855249226191137688246001673168893544085116586257998985090764928187716265126501183219715645136072221561574921993836758402779673468197709586358442992569114191717284947979392119229991381959837657315906031690525768557610165017508030339267574670553746816985620646616933448672832281709780725256395748222071501604919944507034304490730507516316703776403620577754029316012913562085639378481730124206701639194379776771636252187944245522481767524122476356129421271655520006104529983912567670808128760533545223488116166395533018758612819991873249716701110079845794188794321458970575011718784277260579531158720134818661316610040943643064908439409756054533271271481967802553502932934363871239660852925693725218935048343997115857155583122288698505221341912699030905827585722192453850386663504555121740305401934750895421740104469251123462520269045957259830830857246683032119077568246946325312068670315541405001867143841715686970063925969860247524372443667937077202306913167843330814268016824371590967503449667686056417571245929269864283606081425678126579354803044423970197467828143927949835595419028696259870487750561173229161148937903582901678257492004160790867366010323632299039943356564071686683013212479530527694093002518761133993706359785844486347126879054757842724012254114477905970605669501848704644997171755801913851344786007743357456810748880371679048717290462095872465658996224587697836437039420635429338254593754307736558386067455153212721801884923215867072534332718687424567295584120912147462836070303768099048148747313653100241566886202610127940935836564152638025529106150501007302603622952797615236790916427399737967383947819247285246277265669272524681602239640120878446989659042517451136630348226039904819536285685801940446647611261630827848896112328832945102164942058414947287059496443326714622199245307268379756775650435322558193576007700027775988733359298820108847349807665802205415997011148591083158284447794829365659555947246252269198489281490739740277810992920864096321683673221567491077360446337268474247421687682725835755446579837175849458470665024649671035026340805986052879165386848353040537025171220056090583969405279456304092561578503439775465933686472261376118683944650097101602763761278395429058579626108533778878557692478857719121689937323360305292972107394693754957336065506185840513879541361938791170217470871660241458012075514121762356629743709678409026409207624954615631851829039341572243718978020553710363514418753058319774804111401601949360772595940242759597197466979466551338907203090756061128496282815891356733961225011118753634801339384184888438821044215422743727057152892783662733667405232872499290152221112882239459088669441311648544656355644945271604759951708523560029123321590051984142086478099358991184235612338124807703478142266920311647230157054364551098107289751447029210785406877106605554490350403780006205885872805530304800671391455160216530376860756149716846057317576719396017494163835991062734206190596673953831367627082274363118488024638516730255368638848966117704165192358242916926465485806710604238966793022923802242983014822581550563797672498084465469099826489277424406220911189925033768072188000515334168421356794280762964815890672413429391388480792418913870619692472793080237190408240651115258173073256033290996837200043874683469783089356073106983992301881374428747893601141337707302575028846595953923323807990962156873247485032469621467774057851157040170284451382800407154124345544606540663026137562070099868137314836362744687903007075803427331890662940006336017037562887756341642368623742333008763062520096171299264153693129203486398687765398039090265344599036412854911591270917787706629199392385698058704541634116413220045330157086761590437672840821355783974572196512149416151167015600231191438183466034933936665146751697935430008312711642622936298478011302972515132475060618993892654826419022694566126105753664345302774336115927314029986392527480914153930600275449130173346030761192135173259307943657734004282068089431466342137473146116594092863621954499378675597119088585211061960231941647760877267594954469035780293461556842622518515484414122906985507859728843048240115714909150453001329544715212560623373635513760550844993748110075346698963389688372619117035170544702393298597006632116569758381718537050914341141664968043234110264129384405240999016181370920839791698414052530536867084840053897724380818471763035498048196342619297258858892420507761055191763316165895494415864160569314714543025109071514171080293708471731510605971419405221511883854423055570798176320782458232000845467158260492737677846480340376685544751635422970030275029669579201282300951195731781188983208342329045573426692087993334594218700284846350598785882332468752228191833861656697537289403994745594016695353878816252774088828669286755081605618853281207536957667626764577126169614879140068986277290187918771091113730326085175336603897464376071835361021471157244302467270921078388864869314742754076973117529778794863258358805685646464461234087856914004374872103429758899914630315069531806375243114002113682557397153699494311004061344153356493415830843299361897661391633616552385612180855372353083998293888268629508154188670884467780800374896163115694839760847418200765732022975738590504309898271912872154803753149820063379749290089212991422649564285711821574830325702079948148563392622370599415049721777178556271696617158236591660697586342345258884065329241930147320652916957943519163510450543081418627596370380331086171197363438692071198898463055667815161589705194521352128457183790997853560285610520184490119451935806511750671118195906340856293927976494148100824198397294171572301156301165496102448070150169194128372905756094825595350058947107473103401444535635765703258677572532854780587837605153692340891311632275617020147749263167534073961293147168777237674578562287981545664089344997380016531673824283752725347135744653782591844172212569640189867533035279911994835516858411814208203358482833572990233997880665790787365917347144280807872070873535363466751332135775168287308306220957657297491139472437914441992443468227558078864990419280250156123243502477615710707331514949558122652977599886883036288536196206789117889042632920045766225059676204004815631175929568892009449761289934220388842137465210175530560776898307997957341862048192011894404685229707825547082534612156126533507898428525346027128639621092813833951171747310867259736855629562882352019073174878429062892038607915918951013634940538414962575040065852919723094926702004917978964565842645972990027899795284690360038778406716756323932754821742668061754205504223889451244735284706151683532321756607685321309350013472388824351742701636826723622531340885426859781393384998482452455345795116832656033612278631129994294043781696595779083505424233886676524167596876885816390802162269734666469084753160213115353062027541171479166881396279085546675669566440293353074489305476853126007208370302139322694935004915727922882355776117554430434641709140848939943463315043387290845989584377871546062813840693285484860298326061289346127751120767707790263742371313182975429291485009300745140397089455226693641526500228003630460844509284710258905439454863917315620996495428439966429264504536112620254721178163311633962044119709430417807440388621988152442665733102452161449304400155607048809710649017963663240297894078179317395504848318410289881391635250960840319651930365315926772580887567471237923128858621924829858546817865144530405065836667191977315194467018210857583189580627708470486163560764969157019411917199469862619529408404009341839272980857092671414513131977317419414226902043923255730558080468941194936665930268479221132303035317646489847946062423083003370748994008645732409579410267903933091475405417172775548525810022687670704567953075800377851725067170232393668677223684590775406491426847438152685287007441325441537220153185023501252037562507318685611361053415537529500275577918071051496374235917111987587590311178904067243226227169762662507901128741627224730988825100476740927883868533363436692596544867579787498619984103288867396379514824977815496022464073870496705444612410081804114791959143098047982408261869059683311586761502347911836715443079290933828205649236276616793391435917535092520584795988158737144392540475635634001254355244252598356827455422078471029786969258233653067541205582176562247155576551874780783466203653074235466502594647611262605577328329421923556560408175300357556320063094980353268057967618509049152338692794338132472352113000430812743794902753383670050939375937683144637363261739427413971386225299662730212197422170438765317767737695976227988107530582509499651377937075109631055453207986397877030974224660592623350665943085110200323095214489342681164948153738455049615249913069781145992880451057125602172469737670088012629984071254143310546545043911246261362557688197695481284190313513209378489417062475039227843597139969749219384838913826986060507797127758695240247625993837544774498669997486000871756596555710847333399247699577260431523035821441032436167388816138089254732058702440075732285379199180562519214999244149654455283259872238324903692691594898278981375644306555924225654917883502633418170666176532527978655697853237105181284951297326843671350062553848866491700833789795421761799316600474863988333392009953464608133630163475191622568466646534937699069439506344333350553094517012569726802152957663679305362450559549877567980885135337810952459390512134550791651454017591829435262230525829519692838002051032234912332940333325199606714920954780568247412168557340395696773099044724464249011411922863054754962947879398455937809392058614605797237529300166574880003763013738429782239973842146531219886346336735680927879083247763293049117129012688138592295624253676734856877467678312140485100672920978452909725772090280325137909039462537869502530096522335535332019119034894631599313500189216694515810553432496569101752953757438906296029179751879879871985417723044833619872462962746766588391205607003228728726788572137732698271823158811199847870706469999664319475346525803554868556796627551449145736521058835747202011849139737227184011831967443205857224343035680697359653770278752049542374849845015734139666596392693506060645304927028665090332542371232171615434662655121939252538294835038193194010106852769842832543717657403428786914804583112909483626309551215777888396497622013491322945299510864567409358598930811621270569266441359767543290730557375071653402680782421788060013881862183914524763008935455809445362911165137681131665448797190424713893537881188417402062680110266449018891104841607804145989169159545983350204308108169571629931767413618339637340124700404452686980041325558634417728893289654902995121666581003381048774748216368036888192272187008143806201451690021198033748525502814404020023439310535071456822466865851618006234170079910262939979831169217659705807480737197089707222289283104329449932664025503456580451406103658512309411749488446902312890098011494278787980542214805205399006184285303375000897196483812603627104216156964041506678547241939222980379338845340068987341419562589493988424946960118836840191263508127173372050037771990426567142547064302352234919400245057647659084461318498032310638306524333099727032977518365258010152647549674610336128723947167416582946179535591176236123348817453429144740677428480784914300082819129666982025526102408345846033438670361305219575074926271805509925964096421486265500638927819000099965526109193373790706302858554802506004827947744448916781876692111789446437071752619001601311915472548378056870459945274715289777355617592802405313403281619798343177988060782307285576952359741798234242887280373671784767419816667806768686499427849028259647990785024246082006064154741553937842157775595077984428357139696874209164140266488621133958596323412067246403388609549956779251208614005392383554402593089169023931706880022917228443246770382667202803134289645984319913395171849089298352596088595075481932214796562554475447771993006492946183079404760333579925687678370021264715620096301604646803375359046252847118045062367373399490573931425694235312126515943629408097761295348510159595935225341394792679279004780448093895531638875768753033055808150009706539674145204893307028663298313435346227508905228729972918599420352937215485738958032657730799494824761493775857762025454447084457327612862295198662794000433647296911916558296746351519386921504610392760394002242181906337584765409282144127741733745766327321064837780781497916757639647333084140066446787182842893212669380300363074038150286574770758908688261676988097320534845410105101561062391183030890648956484651792342859909063543888185890592470771655442911757651216452052547870246041002099984567637561772354746790735778876979774147179429745070509625976560421620234387966160538176166785132351125119569299838273391844119103514886844590724402658997678549398628866381752251343508226944453878420540719080608540624672916509191212049667595795039972022362478178854625949983793140700732751905674179849206723160785739157048262378722487947196399686352430438794207119837017570905503108458075789043160493352956958912491086986579706492858808289107753712464988528342629882784912905363715489461161650735456443423907451013255144469339151880726545693543362516357976895021600797444466352141558177008633072112541834165529309911998349915025465819785542274824672604546374629095464831575245153780229189496461551527471058618303991628414138455654885089934968169483437371230180009405652228882829873145559323164643602096780201415502889764308365972442069209845521956953085220584368787362417102326195270828539525274033060343816214228301275062282291040966265215816835024432543586588947042854359771882476447502420842134131566005097598239804510057466344212920098618155394447625757741320533678817092280627125078488355548118811438273627295940305479190287333605416669656104470126784131272916363690532441099631372332598976061736897182400283797119358431160913885521626886382388520002830816519152902955727526946443302050368348816194880997047590741385260559093709234934944011184040260321745516578045302957636125623984110063911355872957114876753315437141800744164568097040419141696294049884177148768377109068651675210692099594909135449612924415401979209229212161397926667084958694393816050282501892789432031975227279769517571229679657403974234262137067095574981397670359332943990091354499905007302041665112428719499994829718725588536287427947811539461347840145290234555237584186390456827206858593908516434502461548359720512345153060854590561138040736144287632084820882543936393838685943561169386282013427217695690704835089557125383999514597521543958765783379318166311297724124014733718643422135455381889381123126481974057813409046432914819494154164165302255158138626233242879594351689818117641839226596468257792274763420288548206102474168230544438394991840062675895922674143461527212495372317669632512219677953283177820301235841223876158267160031459342870340257121165156308236073362525678726721470969362767819791248975513060035107590896658081033950595152145198122375254479212323119336323012484263370500252180615887919339269008578405190195703184430686889204188025497214137201587844799247656882620838868039038379627302578350947323145434570479991530843595862308964657333240063804289126396418581772972025159973793111455099665002969865134380859169673096693947746124034016336769928303411676395679323899691120549369157917110648436238517092396356522343889533753223625238139459404554547803236054582598797432664053643481365003517565485818986879940196653467897519756123579724378589780334738906539182596479412682067577352600107197538924618391476604084844854335586534314732604036628148939968204055688698143576126091038347596148007513328902768433814678203696101199392171845214426176112133154182062651559150662604270962282241900083043320199571735106038943235362117670279528921387436596210434473940997305654656222670500537267142546999986624610963548697289683554827000979017499917545834908822706636129383005491884449176449195099321995713627501997195133543419366973566929893655650483041009537610863075072056885538417854388172507482636985574012782697695250921778820103987426528691433707941122795007787201283308903235546955122451187949135591799957357532284134548710333065517954175753785098503029466870751685446514522484188100927694361181397681174958431574137234662838357078886090793307714971545920386413791592818222864253656517507666415992962587879248324674031231749618927073632441514205601968627945494679944883618583874735325148189491755751221230579197818987376056516358271552498419978437144519766978168037303205047978517092198402539499194346619757630889621862456165782691339168390701462070725994663954430358135784962164876979125624424789840622458269115037745385486135564954231988860459288140322644180629781225228151127239204362244141395963641258986237833034575345644220418598341367856429555434199911667755041052228027173505178287338423464934188557127692355977143666171281407782481467326176026183527130272647728802602357572442714676620457094440416997352981886990176172762057611008216804745954023017468427162602578342659332205709106597022922382581776089279161031632873585149993135394495127741146031683785789815767665654183493000575244465562981283432790657250544193079761384882944903202747855641448172373914185407453789899464393925369169622836904272545542173210404691636526620222177777839175578518455325239140437797946419089912472700445449158952484730935484268034056474057095446923476144691185926974892575440024954354422801896397513143514488057488900504967569987320829046900510754451874895038645378314609933796525961119580495475980997294875996313463301186011962908524746867394219623288742090472934389559225118491331682337555717757517090714675876117664006153803254095327448435197518236027920153269602476495567391955966317690261093477045374033212382755430231797082467247308556234443715066495633131930737457320772214732266027150851027148254819680989828371927017878273737393448850944207472112799746682576126151409672531540500373394046248366199971486722479439840140512400822696765077473844891925400999070930069415794946030735280250522699629396364779100567162867804346952598961728775637912045047177513873002309921534417606767657704031174091404363722906821929405690678312209778598794392512293558773544959163171804187756634032622765535576040436295058965821007024678155515663755933948442669971739110776323816987018884759289097861489174864769231260805393013797455134040117698651423692851642585894492971549303723261361074036237529863879100201935333708986199996048893687238720725058768574366734129356983236043923306564958638684696976464851376069586350968205071700068489748226086592312772163269620469113613669359496254174998875144684972614845393713185540750630795912195908376240134238345739746059455331692805341116554912802582317936839410954527161208153717154559685963517654222031820151312332227766740156281056993421232201141388855186817869660482326942922376903374035835677964937727576261792561581476462241730473188444768297466369279327110635869962038840933765192051890251210340670918913641379221206796233196835991376383695690162976798168127749239631970629332485170936041143170791750698877978759253698646875329009552759353459186834378096612381082928509355476751787851245845381910966323333260055870237601246657630261304872601650539475644368649375066985745685098485988854712527598301758948071266351372973805794470263209323505849635641519686890488459206828680561721983552793882127111194901723071898458618559471402113941784794783930541802088966325661392955734798220080717267847390906759897673909153087536660439519004080643151817494493647542013081970915286450860016528022909858729053598803912731300442195032632297795231782464332669915752914762072323145427985062364529408235675642436603942760981214377238963819196328016569992634907522332738725309150236447546020033820860387504856577941431650895528250545849155691316609794062329146109617543816506228406584586851149149591754802779217130157158456605982420995996817144582503360595048842041785709961448888050969478494850465973979816880449781311646506891395339705651494778109100322784174008292329109343644563679316241911380830171222623668304548476151954026650910281406343020368012610567047478394846373289551732079682321615045563159183572729232765717040437505106753642974123800995821765231950809148199332920227560661135303148014703566607116273161445167487797526993947817856447039260839563273147305044411713018614378516410852040758932472207284265722453076057915069323150480603609686249718601884389059494248134054452317905329191259251983064794511905606758114775527735230508734220274134345829301172785951503947971607291176462092419088973414307488586090474292494453462032977642947792788082850695458645201533716161702182128058453895654639805214398438593944645069648408041647584728497504887202783989894514646436584453346675340021619362372485140356462262415726060140156652652245978575839596325927739478001852838571479373495752834486866841562218449474324742218396503882248888760140756529825427347577348121072416635719676715804615894121996556333569339708421232256033186449892240504734066604704332414082195248059129826273168466505006177031676839844246860762775487593370839297018583093259449762012681027711956776899560542101731604657641734554280127614756872163429473677995154110685148949682161279467952395739744543799252915077198991638177457462107174706442319251749212273053783795268986103436211339481037730170199208850300215625596131483734176053506215222577554385705252052203238114899553441000348051496594477040304224380324577399597345211717488789621319323101723588833698798145029500138092697678252118685868130289279172769814309552558608426959350359158298199206488928566294171982691700466205484360147643562314964434015368744322885831288969096000521865441439582296967814679872770397043131125940866983937665293529529245607132939926901034379368647334396292952519847932280711275914675348792254713248738922515940018362192210365960634188695226958772731200267507090590296433836375626498720361406162247763083996369092439745437008823450482290411784017002713943563465346071188250751448080219599485431965627694913734125286753460224453998712034276862054132475560537756762280470358149532780113473673055635399034046618669466843891803083225663860285904790452497875045081987519001049116686088691682372492154983166924395136999186665236291229299738434867783874692726511155980447692406426509354593354025124769428406285228512935238893952818326605631960348316153068944081585105206318202446110588953799063222488058974275538837650143640092202839283000201806944112663075744113000309474553704158738231838897106828553509732333473049943940055392794012858602468354198925608880192027088115457855792417491280804659458107407242604041107061611367242167714896150564173526928422328161100504943053653003285202174187599297828473212311980341241579311429616101493117706511786578792865686685040110775901137256716136781714126479949315416658274906943508559287826343310309147641648681728981931965070036149732720127493787910936218481942588718152185842394035878806841831812161775408242787202926857194977324547638881266184015735056605357512621274153701738198962386523479184988318704930543529776646057277039884476024949369559435461397167702105165368363208273529120833802464688651458811725423555265953357727670757868723673890982279234774580202361047770361327091381104840226432525362938147588621256434270263800302312718425658938856785575374143985777754949938039517632266474098509537063715671775628317587376354422145635997381975743725139388266131082198067218106525527027937071808558367756230647255397975146082992204806618103820190932194514762310170855310927239713079281284459504739566625156933354497994819026914318293543438125636653260019294485409670039156532182911944798250579761276113550504967846765726265920925428286652005659615562964282030104729543239305683082625235994039777163150319192885615172313960503789183366081940054029092918765008547321426497103065473142978618725989752794551428136392652355081308393116681123829798118379092470707820387392320640174100609055682098727103932674151107629141865749315627595268450602280144077342599795653924137480259432623603678498824976230075881775817419314255013071528636151027950625253329857081490929244173734657402915292197912940953716115486912008931305878399924604929061112091758664024690837665571056012988317830521359669957068857749308293846567112681090131242531814471133726468281476428344633450464833789380280117555906187432772551839389230757293028000157063856851022306789835995151299445260131483348092327557952361010863520474936173491974563273577084539791681622362132703161970705034019919962169172760359052710632577831795923987482709930290028236704941982987916200420470912392749426723960174937237679937217608593328100908746819447790949661667797924849352290250047659812689778377236668316739001393566139584061256039086894937817648863390085530950488263047269716013367040790236957408942581189073060624194189333536587999280115833718031007327262197044300785752682831913031202369729554479815847896750586622082577900942870790581884264556150935039864834178519250639545053678057956508141606061915998657333156975314183038097020922038074388392746030603140905007573155973612452319664186376130554274556642298856549741529386606846036675756238369267222196674786792736358456769549865665960565274685815829961434042385496791060654857846828179932977784257003788599603788709982185764316577005448229445534340197945134672441465172132682330762081539362960068026637093872387235157099385194264701423736472210116636667953485827180205780900878577085985180377571604959620695571908415233679814964607588905569197977317486037428403062142628149423102213690625221047555740118914997057332575224219437117701119327793369888368945127869739106360956260548876588747706651788085385324808064916077172051007225199199000222241313046626787120835477674045810159541759427538137605015432217440937852617185739359062295897242916554678233906037698451122131497874906314793425997908615856432921632373730097800752481708588780395722942420309119085997651573062075493857690016652274478237762251880114781549005423141806493460423150099170261383475897252271218984596215733190288820300514465318207916906241529278511910732808026471174962225017862043343594451595179361660685642150228389525379358203265928318543127976727590633022859681287400026809815920718190102806978867401138358994526309727258667083899023634574420899808700103864138566318298612741828537538855093614948108023322134733338416357382482398741880408161342497563960622943013780442472528713379696539088962277006028488754210639747068241268074139342731310728485810963334212064574820928027075102234089107862387650999542207425912119618409854994895594487514163134104185240463743380827187319897785021166962672449721268977592739101162482636635157928066218354108995946587270775681084457222027957237238739232971489325828222085074570218816055694525426418523853996132201935203179823604010138233843872831191095721505556583734106149745304153648437392020756393789272365529304955819096787622213970512617187944109912591661016402897015064173906513718195859845618847092047108214700006759581179869087304340454664372425251047728842891056556881686786883181299356558940254360118829499594568784283471638916526739525444076150331891088432279344688923012828972989162988268624792161381196788163531815467582965577558841425866927446209149079710062039886737319794076721049489956569803326053724877365787218336642227249189631656743443994958872631062130822928770842532243886407679516142216692648760911991530038983490263126940070692147105392732137637576358356071563846698298919118279295859748470911627769928324542374759509617325180574260822153370999646063122028420698151951235860383485052643275721995468624100728942760263511179123857099366308686138797395398221164278878654731522802910841944365759535988354472226109228073205044290054499853923746680456759113198307163209877585858418260601596356761676113247595363824301920611454079978893486259980451677614130545676779614329249553231866374538034331916314584462318362919994918094170537658811536347918282039808610402775534093988982145289218632456393262786397757426485174391456193462700910556175566388492220926095140394752185588111075548873369518082911657592700477010017458910217891375449946259814244183728802242863760101780915264322199078413158553763863420268699024127982661119598971894712960307779089334139430840250294299522143333916889002581252513549146039254484997554512376604426479647666980520315281081697946234015836537789202666740647609009960606625202934747793276543623765182669414878876692277379356908433769137791086762796751645113576120556023341784278907840765947453294863759037359021720592834836173640151486929586848756980681480349665259457097724530302916261481733397561838464929898410764564765388769000431580458901473163120969633559541149889733022313363865629337402340376634981705949320547001687620176957530891362089878134494519868591072468953536773635246286790355535262586204675130492733779006235100373490581090501806761956892548220599618348935208603861808947814784859864100904184708877661918892076542680022268943737412658341780606403993265868587843205967733730590941616198972160036176757699170220336895682934843023386206953988975910469029897799576797494615503400111054554178325949397677597581408284075383201991646501928681561657725379772828881763077631747400924168293184341409497701079890635345381621836570155710618042556515245466950749526308526799933095721020900006414291824568255180257665463716633757733919648970903029633800572813806607008251096945455593801113249345263768198647538630208009486011201377014053444417702772753818151253594098865847328556453489634792607747711849797761202771891531551361317146963399687430685139627180295492433544406709267210035344671058269626303584876668961795402456967095359947956093243124978512321114429462058021285542324894309254477686313389334542420312382912052152133536582058380958949929385513813591914230886916712234079763975908296100469009823277284634732730494822156954072912803456490121502298705188725684164659775233660747087822904598337205448110458453817011351257720431261662176400059187839492894468901461132149009525921207298723570515583960279213093307973478360197643679554577615972236596429940254487466100922520070392031930781674783053139350899781673630021392229516483712304085076668174203384216287676921665108276495903599534727171351695867697733881378828917938285339720277891249333843622168507711863589653772396612598051600510405172122777088311883077711423173890421027075892845196977785504168738963575577925553068923591674969166797370547836444245413359646856911238503649852736052670025724736422706127673902394887450679149090568900422635253284286809242302350644135159870324717093006182394972459636482560479460984933989204788418943131302997832572637328757819527099611879005414712689087677047532379074403039565043807604182145779689712717081383484791839408044664999156960687928993187508532213191509215468059482593501843800177932889082332730885206712334046992830850702562172920605830181200137707608505811459377658552129147846874012982309559274357205910153170541301791120760098070331759774940866378121536646835478602020460177174628825837242966074882736068435181595031192025839521206616265001632419613302277947190872401377251755028101246479448441977860025732053271103077081219861900831781094048872204602594527062540552083534673136694535195500476787323169032129733796813274446552228144196560246397070949746096524758965930871140492831882943565514462117333953228003333373612990718306472337971703054993303794165130966660173077927858598322954935317243693586888470420614331561941063016295442454790333571538088858857373461059074138686079822712583806059507906021600676112055335478255440433655662764773095751612589919420752205324781898451134214739736862597267936545575993158022798398325646474546125582942087924796744999419666900791045140066269362297067600646807107518136540495191078089119638489155574807890010942841199053810307427108951930158518018933393807703327991910459023382734021530844016431858179290527338532746982756927974529027109934066821072746497483697672736117621370815272274798952313702352716188215942514018798194310170393899313078300704118192089953547171705232645739014949488893517714385763791276717911477233789461088177575882138489218852575241534776796942345213964978733384296107493323900264725954136801328596130336645037716944469700711259780422607123538656282124639291085315369692111032711285781743417954883204783522617412527512991212156790874925101829945579719141988640393196995546858700891271069267627651968870959730796234743289751941688132160713967998601721039574633403192740861887919131353529055681841248909879519872620683333446769104748778469199203560377393633316487194494076837404537891591893317344790381704460080795263573596433832371005137330225366977055481717542841397410617666976683780418533832936378833377734679161805496677828593324222983466506701116428950244000638826434396246078214386758084667330034715730647580057566155221085948945684502965101914672744242578570857925456631111101548032356668502032561267397129314082023299131637705093913353813640673288004609066844884734726511731669746335840570981175498628955751673334863885324238979485998177934350730250196473998467210691974414793173239541860244060290415641897372441162175812665247064360915222664973678319698750947419042948828097798269109725608923119633426076034933888699733786132234575697587909481692624810840452251983234278542847254570109837882150418002413823096003035716354200221658972987299157693725290483904083322330040861150974651236228398096903479149321355829476932819262331369002296929535494767487053499560762909912759187881268439032039040200030820008098363406620320282050201386900675353231447713308747512826044902598870721964576801915214030358893139956261648451874493125175570256057343993001206718278957552123175401413557915521146878595106201608856379905612105748781707012492818913123498050720527566364387092920723023702203055970571273910804204999440981141598529468469246812083916735911432616155932049060358000934508052864538802454218348123449755671265491098317365924996396255880856790082766899488178465054610108291192068276221190151048978903670716303008107420319761813409261637986960287830947448457074738262202449598350102159077260498695277754412033985139586933298114294905784248628937491240253605163841241993483791470435248791818486081989696094929729339894601072851620812117401383651030913075187465813381498679230229958021179073871440082542225387504374120893335001507252812021332533436029484996005792756803050552598303165308323730609308544578050081305025250834220454790939691915884022893946975508446371538586374141202047310099547026221569936860524027913669456091197032801533856651547268048574863167714157675191780771761196363760451731391211422368266429014201110725047367438461736020319124843557994136341216232264986386528107293622712694693856356808261910768665810423033905277107187952973074440159274969524785486187100058165911658247714571257332535789493337428601883239173863410046131720391160537026723058926144798663788718900389379215925732108248761273696362326227478146951609072048725405223877055305652139317686522592409874651921742212060116713505772785348929230542037044269095527531259767544463138413662705675477974619567164327182564069584727362942805058465009065013397125213761204079183751456345996744610174848201422323581080703592967885282801114539735440493827352191210516571604115184542721843565683658318106217116872968619534557906380906242918102940900072054869956894797855997919898079154489398472219245471487316626122631023611423057720212332273754801533624442365116474992090949484763611234366869298936570288010638352957891320529070906584471308478960122388510392981871490507217904792823278089112342855988368278671084140460823284220153412471860034719233598586585394116017666194154899553235053251709208003044046274979319561386210715503158637668165695370358843353773053655691370309151940433939883591199448801037846758302040631567263833577997001388537468238468030294917763799428692369840775518014459955106305746050025116344843058964289802568070139282598159558701453913454451006334092894820253193406426722566312822905937011347686079464023975840031692888598549211295767009829505764191866538535307655944522716686998876716940198224636873340095250121289774433993988599688483933583744345954004669467161290623830807856938889407387289731556508897153341111248536497491279109569556568027029732340549026580248926726241415852843076217079674737114232980511969672665083049306203721006995007864126438875782037229829288071059150785163595661271577355371365440997607629167199257230463974752991683346520795360831766528430417051971639772643142855513881185008421451626210695320159925209937432649466832991048953948966181112076662764397550721833640440292761702655792500907195439267385346079821891886337644395329183657650299625796826759996200389657188716174577007894032529652449282643717136167504504447396162748258605873866705429936323720396240314149102594947024907187229702443240515240662834382836583954467785982033286205531686511485771480533984141459975433629094750230132320802746458923393719824441303898943666345307077353300119876113005729602560342865572356221642890964425115993114304421235787189857381179674912615806095579482662113237582780300115152204072602577570247370686182368459016337651020860475765436161421802872319003333546104789489359849499736644217384571282829197169689173712124707794551491419824239582737516689149923148021004962610724461355077455511319281177518554035447736507659314113736484806624096995845617632991340884776248358040468884943088702230251566516213156569986526563883494283262757109415200362984144531898495608125850401987251481602543191307021421976732931803712806008686548886819433135284973243626915281014675830016208032289114584603291273144870664503821468914584572409197229336170006692101263409881767424926747766289345173815755140933461493311007043713612718893768046972679465448778471883160833384540592780202786310588661138158840689270264340132855874077664506181272074666725589485967815876660338637741722034318205196951427622333121084132726593284242004047551604781416709787451087813216573115959240521457330681894211903022256327722456724909972721218411466843711619661208242982073027327499757085658206246922493883962350522965904118015437461532440722651730548482320794053585069924429497095709555951295705743313702761605457638465238405928803774475829567248923895137856533543109554537284144181768036575476764976024503723286501160538521168351421105003030448995745907051473090980885233780370594985334396458894070796139449813962781126740743979998959548133899786945313936291268731498350040625509767716507766506082726459960181508640089097438951884120378341451516852402721554961986381404985308963283352022115044325727752308730477379501595078504457554341990617061200907591244378261339729439018623967007886923160436914665505500881775422745066714747280162038938393523310954538348396930855698958583477903943319384880901601444552825655611118128909692381540907956843495914441219432886533833337227032037497174053837648216478734649093830555946514195140702877816552841930940959878218865212250051055911767509826742590265022084697433547528506094838798970158368247059508754459664928414562087641694853427471425524224799314758941113550663308902093794087981500999696567422178111248829985109833677098423824072883393583969895738208990361857359665005206866076430098847559995511956538938147877192159856824257021271803118356184816521028588519645065831869532984634720112136121498594326869965703758904232500261961050443261115677614445008168213848838304593301388451450226972345749774171030223724812784442911773203224840371108795521676362157554482087167218142789816479450883899912033544559034310166854813300317944297038613567108686711156707693755648383083042716967261449833411537465034226000848421394986656079045342010032283962600645892118318148635425476889271380059487669309666010529884265178152369477001708037560076850181133394009852928697631473391852002630067247613572074756626082524612006004140636607862358711632016332478095942193254857748589660932207103866868050431773795794596140819600891926459634803425924433485694162465658095423189268282927737263596622099509487842215238687267521738830458715626805764051038072472338201447993049673549003321086859521545896194825801532323339827725963383800845450059124499181053440469048649707195001464641357554956305609487718067278253506691731106615802326150726407084542308688867594824689811467587755981212249135527819793184813368491791514933344188345204149922918917090436877877619492189273309313738677513085718328248071423086844404955632198341412100536273109688120509309597297263071873330299221274262289574468763622001758793115668681358288280268021856956804720406835822512861412946771789823784826575518048827739919556685490434778191591375416708892134309766976127390018921778179349668048457426964080773968319205366907327753941976177680164796310027218426727723669521507841733316842833871335177429672075662706079485776647739655083971903135068591460671152963312903053971881771229005319097332089822773481308127302270525264499746629745822458908349405022033355901139916077851036598426790951252312072068066619640610016073655135860696872093113295883554156974525942129737736364954178748376811050060235935338778069087046525710794184067026650171273939053865882719564603579957907121890649999684383069861492270777003542347756877448954919993503692852746894000425668866003557166455713233714769016803003481009846848734637163513679622292112820102767959525710159611252740285929093779517206342315735289894978960010254481273022625843864667979249263933016046294341551114875058057554233836923414953217162790363693464116216326098467205645678427994052409710754247520121315677715937895076783806253678517191069123442028380775409069843390699615731165343797593674497446829138219464384586495601468322134054415276677461580923085529377226391505781793064440275736740725475685311198951060991127412703764040870780669020932179503977161911789380317619891533612164650842379468813064459592456977219503537670293342229668194188886552782520047708470584774377326414319880919915068259801349448845285941519981454913627214344172122901594723844533295264672833494989771992496700659755885390477390930589566806465191300459092172197271278229881694201538965338173992620793400864516931498109882398861949470650766815843947472952218687649721940687580209274859960272105726662944828100451576518190274263902914622550312261435589951793420528552608308215020387584980234815624277250845955543650213877643521013543399356167963080479642860341781829753549706434115723224753791066805164296444561884589082801082908154513415787660025145323156738751943928715847552106819892293138691094651601237080509020085165033953299327225185807097330718738812153272522932643374782790263781889462144330557766521008856182696767671196065210031731648518087043096645209456829728932334464356664886586452702616307328571121943071147177711632854239485066969215278561131917609752180887554984744524065890726385872528644991809663537223984515892434136255248861519078114733091086507873372367832464003096692968352388993794739397533686897860085939881095837405717230916065206325693196152608137596339429397381235459943178235497027078184619606327385771772354497195026821151124968013725375424582368239479565932938018206156734943339361353773485807731547751522263092678726046951338353973090884876518220503736546206570798401933475090764161219803328605362875775700451876937304642290115032205622046687621285814325305314010098676939087965023330512909698892844148094825809461365984911532387848275767872886252837587814574552470924673301992362556099211299153523025972290616019016829240051462748766450880112569666466847443495136507360507621549087831079909712665963861341881468730071244514866509294797736059280593575616011989037836224494152334815142414796087099103014648412682812634963280460593560719530114119884228382779944005412814642127971992201210684324351874842593475737516003917770229120713528780018959734002548920230578902644175834620113979748341636650644463316585229093223521550938245671083792599445152181222794949308721326633130985572398498647760801399525094739835318425330483616172001405703937599254738997250186669764847446141230902986974460651823314748800871980399199536403920174688017719607552449184340418842596681167896764679385012402390827512580193470782818216434935683818045293721538808914539988358821185237596399712735923473450441564753996384693682263322010751601559159556585890654655413040584715574627158876023542710133482316097601480955694919025733875416557615006701339121327503485813437814973676436341683139228518711960059807533385905387522094956092993238709355096116288235356367759875490140594169819181015606423114261375189686262648784801518328789856355694417246089547317006335534466781892086049787819369822131666965023927038296266736806223171217209927968214626778797383458086478377903332578080502638817782339931432128967601262078893047805764868955465251896823585625004233921169782695176872594139711358494771229803094547749395657317469200596446975188370071044373186228988981766567011383441437199510911424699740447159585696487908043213700082464889017557289721389761840387597170152113621582824513835556500843771610533073709749138958533045199444575217103897390127641617528791530103151789277584309864946016848143296561670361019429547670626795974543244351566441003426757293632422925261535960672936919495153297457258460853985631575015847760544984314131180563049683944725357704527663008241579311331238268711938734684566884456528968815822790549807822878476244215833533392829414041383762791759395372512327731063771222612014953299649087086111148781913110745989823210003510458213036349650377548171182847094247857740854885218217607155951321637438887179346492682054545184887270684142916107570659603279317016339320433530091393269431462816108253442546259302078408788596960666093928504854378782575127948488586575611979163998877940700235561444057628268172466746488583877690571464857084777248979253737244934856668282951766649021356177239298191929903696827591368574943454636664520779063610531145748534150533865077146548648307953698431780995461225700591786554878909841909494425439519650138024155799660493237624084917919559802486283030675572261872748063194052678018736857140897505141496581506628923721057447751595871643422711672117364738906785717740449218700101112225986033481429900675447738957917696002291781367347117792730075740563323965035696146828664726537379332763904975975581371931021272478072747546924341616649956784798911266965929020000646212657232975766604225438888175817085203021353652025335375183074820983382670423096343105097797231692715374332980716575137196140536903675077194359470419935955416396997037069626572236612919895446722518790947853582288944540393153419810897268623260673923369923150539801390722261697461873157557091722911592061047422965615677354760790861100066452669304021700296200553221291948074318962990761250804821324978388716441143687702922697447254702341953154494093737793756883921584493094397815161546066623762805177859103913337990077976875923915355443727244447782144992982341635888637698439244774824203512120578477650053387616713157321095922888141321919824959378382275060205372488648113059236863666502556214141912379829736923682453836177347520854511415819781295573131891383666944875824497966296150181861564904699148175703026667828909369518387622320754548719373163546954559540864624359208132578581128076206652986012987357332927591326503719988282776208829978073019423828998447367306959180819264162605320182346956691886901962944470717087763971593261270327121823514601280784118837077674576609948008862867291118827844544387677705339221066606050999081392770658734785290978865563219730961450687131630553598531186483864991570930535157471936945193352553843501851988579929614677919498043064523483133263813511906916590287190693705879027036864724255985555957260740372279382777680663839256207900151538163178509571039230008947490395496901098689878725682263136365287697556905074070738004333210504692217963530441421064395121392035345886963377862936902894901460328358928376122982472341732508184627493572192123152214631148649447694000385405998510370123057808087918846611007772068284797070736714596060157544792675824254164079097006751665231798544784589409647713500076940706761741777468119479475696388039851304450731408502724106668650017851963074160054695365955962889159061482510876500485822397976403123592462964448923164852782851440796093976180538165347283889337808541817662053941958675656400306955457406417727151774667586189867729829667315120321465949514340635820407347091404885765062307408475800711219460096080678258599116338391738820435286139000831471206141026316912293241397294168484236959886808797589023737750486561033025130121623491096076672605714313303422225627013873337991668116699441349389479058382508700070342053645406462875672272160855817083072528249675082716254589730520603383948786011283477285938454719999924480716983907969920650010547386110266118530343446643733942361061125546511005565810198023678254852296485692886694837433525651589728507735372489859755837641156872102973748526285676210294236516395721103002422302428151088836280964553185595022804351297866261471527325008440343630490183020142183484126636186134029929785327139428541196328379641543545154720654067382943751690622920642719545322378865044353589448767470293194098634455788411676571615620710565352786868742097729210442930430573587052754835017351308666509256016019502897619620088886108872247210529949557813447732677822129127797726167769700461335249920889776452896119188867387064227781738123820841354647742232657627058453142230682411500193906196507428228980832735179824395647245120790420592930693147337078811056729231320701509277756939475146988170743547686553212589633449933587644366695969012257093910406574952519430198235495198402810372831698327506386125438799995576154606352444504246691955855958821737936273702011136982176879135134973680782953840809371241324739667038510776687731685463055955690626145619557426654147974721820914219480423900283855159744847138800652560004847276833608027706278344322903388694369754676618218676783085938137446602197170229291994638477857822914548980590781303078732875373645173295514988761993471473655946048079292613697241446274488000074861780935499232641352050371394609005217533488812151102317600193136930703988548632943980072365007594801547688476516009019718174745627768713668945106401605474401447192887014536663527329499584840583530860794858397790697919891452946660105306748384382816716851673378986722233484428326198362743352721549820432425037581069347207947539351228795342669949592893002419557384131799682148572571049225354171351048034902553828819235713617240722099458418984451095488347796808316200132326202648535691763497243451056012911710303327469818197600712585007216026145272547551313215288102162561773046889385688508564604025389195115861303916722259894185560298486322983502837007592670041925810346035753309259957078262900142667456436670028176820321374318837983468706804950482090812896221294978354581383603972557220208271824216246392600078368628430689070530522778613770439704526572266483283184583651504496101803709779462167434929935008557219088775523685675774687352362089735694354853790063380397832922977556950997856437106986923876578186895502952051305745133672320494560945866343210077226817822025553976107331309587604094362862647775340757652234105140926058267800757889935207125783310892364579361639111496531128087035555846275389140730666939534718750244354982566203246963220565892610476924394021055925238980652221725390430216581022137075668385340431744072065008247306180995461850895697847516034988443077364088648699886434477279514846204498227715492937915928838483174581608859363151429305514904107988782233273992466366627591359792902676558975837413746586216379075148260355965657260900690237522366348216414537465485187696651808020346537382973890233196922481120403730482911354530914835028050786031740517393877906036623425905652650677498121220064859834546014215139095906247545833167681425123490312836456992603917900593735738709011673706309135188242023876933871432455575406438671979408663626666353790603832912791197531880246673284578962644025023057535402246575598676049718207514391623447296378436757102673837867381692345815498880796215970043906364103710919365903037006043042105119604742524284635503018494552572002571832822568951441867691118262410396811202604726207475465068001423335863974388678199249482576987728326963906486331644815993792012767287694396875343614035603053399226197457059644059840919751430753474341018274207131180955121439867784804823727944664400407421095896996802399187506707507564207022579309970072126494859711071749289232724833918022990128399376588615559775191432103293357145957748563271394891098313829641391606795299368622186293645799709419057878312081843437571422704553855644635684645173644612143379898279036255771368838352992669857784064011698337009586983865774878477940321823181346617762945123501573914615526181779294724685494001360776443064082514224671518453458032851559769701339087541631942646314825713617557181919582192724229446752212872720114060380420414019232045639417907530859393937731237397164846383429375869260544806863827447608834125070735605122257806597553447852311715307320421316277236041066837456609806189901505754031923970199262786177864693046593122210363738629401827737006419294966655571406525125985430250979716864736077545537582153137893926936865214710392777714254360735171121135441561381093700337179868698644974040270918339703706012516430633134163410117146462611968369898919309326919746783894129580137268690754338948225411009432060870967210902783199565993955561765471946625398787868949781328142529798686424424115853424222642262417878754114305732883049000649268534960965770687286801524769686857956986351623144129626371328562627769314471359496787897023718445933842021380278724117204207222866491232326112176806854376826501606075969451081490870719890044541353405570789049326473723337998175287433911248911092148561526173213935874726279548783554855301304139788789836487381658628387183675055119592142734051226065146621469881291580953579645724540494762589254343550407837519602722322306665239240072014826626414751741816307542088929106402395931138541020237974017861769307551780021697011529442644495136646052206036619276340908993081482048688126640242983480402494075859322317517084596538230642779192369506054635394248831403269703179152213673512123599522090810868359551695739530692467453536932584521241663914499024076181557537216984763552986370607829443856217330772523313005215754558184604219026389481867332589649357259045218343851642371265299614185591149099362690882970056282117962473175561314385110114846708100991337433389085323505137017083450811943626052315196795178409860865454789826913246852652915646806088082909546369183266524373460181799385453277648858637268295052082170855142621767011443741408440418116441591373967610911211673300588772325558522859362593538439484507206558819403972349543165087063927629944749302351074577659596905647049555626675550569523161161857887985024768072653549687030157247453166269647864113831231543502191837341604242932282240725691694211107321507152650538780168990850350182607710849651944604647321199691342481313240113226228941527543494678904779109531696335612650819536545165189706080389779419562761935632572263997056288401437699783477497252511732700417104757733196242614344077467076866579828735437671063619799746272824203946371154544631210534984460587409810753441429382520740043360501843324926379869721522893318511655581507311363278551441148005587086597350384885808582412743744489416495524971612054482480404170347372977409187130014684690757724049776807576914404861715835896063395788874744606822538518297874702533364013428075202872866190075106951290073485807220913200321820730909766397943801184925820203070317879140547322391879140376707801880920212390401468472941391346619321213065520140739520452765005646463288617055750025884028575257677856691447992255728405683863095812254426176473200953466762111053698629667344435167524489003757083336348536592546145413734719346077693027334638564070113527653362682652647129884433810098049849750441095903742752654743874918458925606707451101347788278916075426971174198816012576077576860690217063502876475644146703991082993118748427873145345752790681703470936669933786760428004609288845268302656457717113447364761507851614440745382198070267264463696549934265910903359328872749058182351590953107842832894891153740573427253277175947563017307962012678160136645210593966471531862870177502007104886732886445118187334281196289897298321947042670064379917351205806969018052436152505292876393722378408577957223189695477752414686594096800040707671834256012790795325347005713129977860875909113189479282890983182192731926328027008598898788547185622341845700980455063977442944931355403619553220892927728278018431494023410281936265468306982495232648609859748040655931285322311198533987375772143913861361578599627903409389806253752398215063908045034544227134506551363548881513474287242400173233444353983602426973780600629295519597699564254597320936220281207999144113688266272799216800887113438526666108300979387269681158282661282984040760629706085111453301319487881220154481421941928904721664032931670780468019839796781404030265154150888335559208996540562116160693534232626460423221282376106315214728548217680459401608632980169441846602360920259810845145063546315351515703114955460117188707983696673969259949978991646653554521993970931740993161459015294408734685787699252969028750702459313480272897556251201760405533219060666953112830825036470173774087059968613363057078529607895644884981659141881550142620838956700043050550646703464337449272158049179114933246430448702371185664246069545776405741778940374672918418346222858784446853761919319463205887728613780875655324172487632322756105859231382745209010971591930866543493785798672074354897161685989303490854538830555837826517920555935998658852803109369777147213052649124462097435638638007186443543417892938053221634639453380064173033162986621727803293395245025744730130348093456426352125722073960686056181670379153484132021450455457683621809102093452869565818088267611283108121994065012425974238332267937607077714099295478872028997151116656468344645806549087875939096788672803610728114080722454273102196253684248507667030987659835934015052638852624599698282742797790539830025972417944162132289869456745974656409100955345956124151087153775203030027345869338876621894978430258965812543404251638293916199454340837249939838369261069046415635240938046355129612996193111688181562218343515851001104138918821858187021008886011319579929391655636179380333804404658823290201273134819674758921955289327296112078292482087407770580674817579233349988147640574603592887713538281942565255070331414431987579036066602837733432894540536667432866379945647600054175714796004616706314105979641180439111953294587231783801986466752700306313481766898988252292111402129062600212431136157577977857449360381444021102574106489383754232005309867511282812138174080402465775279998082379221140407830906838973219207249017351055851909350110392668153776031419571778310982209388722296419822524690654114355421410377897231182254691153223823142281455490567549468883655291292169092248097868173853644345119289519583601209015086186260162052267958456060020500884346440986764063324392942349920492848678230797095830831170197107486405733977350655735051602507240724942371560619253410417001403767477584298018627215558411538854080484187094854356745421352617857312925361846373431853872372102993923861415472736343083446501411017607745659481293429870271109593589652671182100623774238230505428704563343371704959446008707494914954207787417419626810514222002578016520340428524133257089441931095799239316189465136115439049265697552412905600959641000304574517646599805085029756971083245733817618315348076578355304152580474682133058139056417693647953438064765185131925913523359955791540831331466883035861697160987684333792151292329865043124453403396412691082062166651127294128740723067487385792166302044255324427997740916863847817209357221387365906961036028300103157117204118984377340302096242421988725231191549654769929585606147487513300094687845641205859073395170514021373111661587614606800197571048056549576771297367333876449204593480052085235616354819372336006562505422391484123213492015493257516290684870273969834828667173043172099011014684870061914868833803745097121858242346705353366252531011992979838583720685723922182327972327808263853430136026846705980660429972310563106365946661563534507634925536324241115799023637650592687320550951694758278222611576357016972155483321282730814697662996630501154754501286355758288489547190333844993312388408280488030431048878530210829757097506758609332085654603278599472857277556235273876974829849883109814052310290077837816981019582986544023773194203374079291546413874503757100664527987085680367989309659271961306387811631324538410719624293979378008851879583862406148448478798851819376826333851960715421780721308566871377278435924195735448512008596671479432544369812289214672213056935551298059994686176827374837493618254795796990354904281108829425949584664084710188750764532808204362991578430858109172099817247436710072346898127799572018184480582139668241364467494241241451915231414766298572711426179078913217506284435607435672538411589658807746901295857107041149647865071765746523445876347254414607096553134611718349930841832453157186501881232307172064430248165293716335134695669313951049317674886838507777733571632853981295230522604428184914462775635113281015114095527456872916185121633674464194645033910521620530390015380176806085918568956461712149895553276391514026178672179357842190552314419267744303248292288006748959367410404015014363133591074827250016023638997809121572767735989848484856004679748516884045043957628296563644298873809111607612963064267404014753818200481784046061967499950145928580643801817636899172213667422542280849434267941184977206789187846498598011778582260474690004635867081584167749944089906698385633397458369021913149894299323830407923560183496996607514196207522577954670360977643344320995597857451252539549052382215088128450760945822864981205564007322111683915538702325572504312499845667648047534985411596711127907151022861997150864191549617086679726958642838918771698309510166436399380086308700082376189552506686379320546692999140550438975327905208522842455651833503943886999351675801366755213137695926259396157959799025332361853286786921506916207793530134637383447375257684796775001527863993237433050314737261270033692807057388968639521143612974530695004549608661066384545309447600857423640320868636021226519376243245455386012608915541290312555117966252021671995174173405642567117325661764762789976802440355216581873889685293198443217932724830955557694432393130246966318945015902604257004852639096505441643099542247465352425275451901758891408970156725579698462033393114681567806993421102786045285176646944689008084776213836505949719634451014878196102913944117270758244329866361027146731145682029547430961363186540443015817119909574822784459687825882934205152304615246071846410648884588877892761618796877472076098262591720957240082191058834744102385389554044005725008798091826920507028982517054029388847565860318192424347637753283047281098524997631190980982797059521218305131726173769464751429464746874787525500499260614759596862332275005821558690771425813143877581134890733301951113364542726106723033073611280854714180123464487952699446677220702816954407366976167491973407788953281237570286317065119956321134958797813194304729195238467939718584703699612056305497953920878055657361444441502258274426044689511915905937800978314164042890152698426367566366970060380725012410918815242983603214543937958079611748829692431299435175061868107847259262714425513843820912303378094654049294709065684651530168601349951053517722732757441599809089822811496296651912088614807918316459965924160839307903916837759827165074164378435687150334076454667110340476167819852959152210336161657088729306752861699847849144265967591881160461968771703571450702222948204902386614371378906209336724630816767519200519465709499404423126209935746851531662261156933875637050798776223452294182222699074239809431327883824522097116839121317679440568802583027313074395666969005052036518791651205256684294970861784815317071907970269326257053171935585994074007636922811335476515222862943848579032183492807804256409017717016087218178865361370125255684066717473719729259103710572875460565249705416950558237914162889981983896619367265999192916666747642219886709348343830196894938986697927249051727177245927094298991259198039549825543578333250225397315064124125562436299538524498370242274815802893848475754903072737057298754263558199855652020906489921219022321698276144967459386430214275589449236616598913951518286028414500995121853157109459084499997496791622181556305312695862434408300148101958433952090242140055735435869707460786846462962985061454615784660336624689678858754592118246660131360506967869478826226712527380837467044814594176364747686660464615539739954198038171536075615068949299101218788990635155341154792623859906853163142708458480376546876772466843069879145114561963564850714472263821543440254866202602063201253270129530854409139680083807451836092593412106960194473459028449857356866939101507682858999010693677550849116541794188632151333935052979855373832493861964541406498823723838785272437621567141824136287243389452262250931659520769184255387991378963707592356414814571545848772019009656649606670204571905528324320203886041220328789451012180705100908083571692211533732022110922380296959788728306039619941840515057436099084064032409510331107106745032687744749551258644812411596884334704283738076823441148495133928995128270062674409175816083245466109424427043887767289353390168679976682521256810194992762462796824864172307013165638086079656795174851283841104583362920955022260475959836091402751857627569944264477336795009863755489027448956478341105535574754221430556933772701118955645875506785513028141723206087332862487916848174561183591667549800175397933540712875050213033441265530987208213099392520520879686144416451005044035439556565790421326236433084231072442462329775758351607935712724326886262317663618469108333699761071942411944430950370616136872319781529406616899220053850679480846663014714652939966254676016037672484927682057590602135692322706788185463722293290732541408832402836908700595657795474027045267579770666709954210293269407694867598300129803342256714080575279034604920062237315150399340818712841120509478457105322810377719494148015979125365204974174967164896219668739000788957530552958222932373293422988232026065010969043153158012714862663924348421265365507063742917379822743809288572727712585611598968728608725460359361873984734516431689965699282627869330991475957371144093765699390336311318993012099147192719316954187966757655284746478180351926852459508564983484466924063158953306729333550682788675137546419524277792426349389544341447515593600491156832348322502006711853520938158021998548402205743335742330641147825111663221319516198332906096961097071892384034551411698819972539491019348732029253195798389316523215044911541716447959300990462237282201817877801874696664529610828804732128193147744078126229592820776736722061663455384730381433143050636654126736844794996831346591538874575991728004942108764566223312695485388324251213526285397719769019266581142683040211711287914580020357857828998287586761671859763866591575569124855706683538589910185043138713654574742759234821516430058255332830758686638333877082021966461334453747349134587024922223899866320738516795466342663231381149381514075039943957624987232733844367401714805339702319040536759244930460276539443677324973754590630923253112867931292655314547666746009155043344833001451802376486949967547254586882096292696016251525364162587233636849226694701263380337153325826966330794214727332735254786610917390361518771279399981192354311153028708386685604116882807244548151507574736710968020547117328956530842099682845499514562211828561219264973109330051554255148002005191740796256249065442019928133699868086885699341840545940628095970145977434691571440073064741711257028604014003629432553750964977665671551192737865624880549756761412263054630866757504746901697781140644201988264816360288186119805539231272950160735964341460724992952175331216564992743888350035046304535357603059505748581695824897786757731713304167083996742611451270229337475818358153166668676071804495607365335528202063978607740507292144987107853646812184687292549557737086082921619935824007135501781826288384773995637455171378268450966319384875825798701921379545037015457122053805819621467921510174810951440572983798663636316712975631474674825968894398558448154286469218678550369660312970835190977216799689362419611099790711747105316451426087243146005048921770804725053997165432958421424603601595485074374901344577885349146100348817657643201955291169111035726244050173551636835177461082836478579154245696893599163893883112763567612449381305481754079689419838273419616243895950099311871750299751884172352070407806625813037283422040415674073588698315461845203439276282231351831615990800072937190172407028024321089901761009374121356966891062922149358348827817764828488586236377665498508505832415487953563760659579639285044360750159386870785814305655376405495268371136485899350006344113495115518545559466695491840189960925959717386446636945571751268190270770064441526248761367825545676005550739032694406676261999220497611016648294904828148297382100818743312348897279170156897541839960082101286402586619002242822099382508123925377416423476005889741435648789099460545349216000011456967551011404142235565985126018994929883740700858879431024145510592904797409601769116025019689415037260689580868766892716146804148582123766699475087500479213879540690805772441844889551324104239714652370635745322302858337982295600297365552745211201444710366333675551820467807430194050196699235955299450692545621465316184827373103459768184906035838188662055675461851606668935321477679159543963490361232384694622960001467362230493660542037272232821053598465718257300866297927057379226395601361152979644731308850899547225971831242203000279387927754011690852102050590245718858945538545483462442703968351007451375497672860681466485786588143720565704265952255464475757020939531842322620907732684531622292015201567839306351966209871753993276685181348433425880379587022779827758463566118681672262258852376786952851792088638136580638567153285500795674805749869453371869569326129801087611919794655549990721055738551985319663396751511695918488374363060403438127287291931644170667629318591368768478445953604598999307329631225408549210818171951931455069011566013748824722732089058149333001530710939919115585517026800761578111851440487279833946076334983945666990183092248668668556887822163956763110562044810061207527768663162167768309701030327757224213258316108689214868771840993029901725933592004407965190311735580084641747821864187755861457610211101522072790425000909856999687610516370022768324967716765219644462824738558686586382255683106681654579194132564166275570043180061763610207815475813513137641795828931339821240493758775363420376075778231043507515071855349880316510015647116049377963235596996651791133180819242826550704210791100734030621900847048660451514576318670210428616389533064768459700839908573274276838835721059776337884892157073988538655455216192307842066807731986858329957227080879126561117444611325282342165829582265346435109053047965220995783933318346916252443702364276205435923448784061135679271228555388567653605166376176159234963968156740734365907228337875104547119549302069113391144450429768847902094141001566809942822238446805240505161904299265721613606949597202221181615938261199836157863415985231074939577170095849438086102018009851362579589708753635842384594366672255326328829877984351921447073179091670893502126087191703560881348320727534818900673911902093038808464906911121622755855171901484720436088627568737421463017751980792225136548560984887671330989651906370968324544309875083440551932929089050597685205616928625812274191366103894006579772144607583153992966818602477271832034938865331548661639146402712764900040498341706985424980677026933842245152255517395798385239478328417731349821716534161197289163912991225573387384230424571962669080506746757923336609251111029919238485984515596485942116557745175625935244220994130405174832908029913830876588027353738230823365368613588167842011272845265744875920606234866882187737344596139410011053899043101164020267812388985351631707861687785061972829225613372833529981848878230610237063971023638246786766844926375414059522212808713094469743152316648725418569177423885494923105307863709253007714897539645799020598984036366372167560361471950258008921935310450845484624601959142806078426740979440979113915282786290234391118748966501700436900891417554911050302468359043257639474714621757105739623076393841050640519762456844551069993739472490976222144020555774538879481294748875110161807564319706313911052352418309588846746780515842275774814068817441256716797237286452300463211372831157609633600554343838893757038125161688414868573289043232720715999030264039284038897615233909929417732738953401605455786080675919495771352766862588327683851542020761233414650057334376878598510456774432093485640340492514287073043928436199659767517142909392662080818529523160342918951300495937422165224149091904492048474193243804933862361514543328552848271382768988918963089116087923370200057777002616566924730916644248902178974411867910710991709266785765905541670124634055696611095076530819775167051151366873221738371642426816657853835521266064025071073114905126481943072209706299935829610848916586697257362671749723604375674648290887634906472587286064864924553935236289584933067542549459829320470301299870344137298741573652695006625781583833280555204632445179122888165002950301350050475150512811684958927458486844220640775883777472111794743330037549229095796270534026232011591199771093610844005518232326966496903748448384888384941513983759427852782126408128836554245965927633019491116503700453707705125411804885899897708664906854819983134753829321777688028124879312892456822480816521765413560723054061138255324729290501009099224031536111868631436480957011621901447117449760765844910316772787711025989570999431881022596726369432155338771491423795416028140640574477456393338963945593348443249905224688168589909018560710629850746293655910866825491098962205984798454466692799615494724556200660997436720292417962775512080892230587212442256049488697571848906594924452195293295329555226019867435016343038974324806654934342982692200344171921884594918821871179743438661202661751694014517308494794496024397600782975939257374447208091588471191034516786837757423807261240726271750666391589958941273874410184224993487173930926300314837816869917886529722511243468570951915212503959289235957302450267666397951059861175886811055626148956636331315340045695993652168707049559292096458628498774716231237560923047149265581722851267422763419404972268105776158558585088210266802016805310355259595588089084843501143976755916045498928716823344149924610541992997412358522394983169235674484864583618130096348782794008047863751373561239781024277427138089687643572793493696303606344647627622947214658775684862452102784028763960304232383185869798397860684904972439092043228343217145108646439516844780838367778965024250825588744275870345424110761171321010366183769123559151384884743981578616946481696787670889518783792535989482347356921458028278164391035446735280441238842318127933793650828786932062020675449923731395677037108219425394483696433719340013606606439523445037969462943287694630320490998569708173018716898152210407205865860805523742555901585169824981943370350128688160033595115490618838402576859146615933806407136605526462744837280135606716353316048695512530307398085341055662768395728032001327433014669805655481195076335912639512505617281798357864574831457058404854619335818667449567485060651713662984641084606988194539001772146202287767052892339056989205770541595378911356537440435844013842915458520409525907488298333605329021452950137411033658705819695529904232679320627622202587732542075520064864022641631572346267371417951844446269327602786918674580730749568736138584993660838654671974997007642716935343111137227822318289427737242599352013316886949918988450689695991745499526882124041260218251581684663646371763192518412683218534847919116533276589708603697350325996708210555257897209407935087890010588938870323697955883095635997705382469897589294487054759594553179652372524392263174861630622239028130264163267374797674202971901127367269753539164254533555672046933848781962795371420361534927839875342783450975868467597468287752962976900253259127166767867051312353504948027730766650877871478425006873530583246731390690231895737323161793973570604936212122061720473784720871684283755319086138759020051196465389188463450661910963187646584464568881724764703697324425211669869968862128279635910361330749550715063168865205808432492193238458387435878481140108834940163991891785874532986866494027276733975411831847931441808017475962176417744528307229649684249217158434460415967564795344563173821976336794735517290290973197963995360106213040212935682174218488490117460636812297270652736596306094170152158168512007983873897502819736928917617097098575633461821191002081839702897464908036112343668798646977914542333776307789065515530949771967368499221320740568202027787241028131650197307747731134595119294396182829327141724743854578933619013335879652535502823611135739004238015748815952191012651810394881477077589432309134707711494613629043048467011400028564437994005939823394785261142018776071440509826293077756138362149002185106167984669076310476482122929505903054067212952045020933528332342666301929376846020451854149802814665314357909229927096703470632209689285170627374808421136827184551099671149260055184203520212477946096167338549531757352911787953889713697797194282465253758803006701403540846434988177808464542846923082833493905360794772322955238955217699837775136471640564588497752710467727054351595838190474403336241400394353477439328782524276251185686194303531364065929839000947614775361186606725870586924420513504803757915743161430160664988437218287418364133629666869463288913029472826856873649943502161587615621412875229443619310233470115847714647428856024134927173354422941872885663493371742464441713700464381067556963389278261809277020282360357759560850811562325368195280609212672588773152211671304897623800104874975222901685666846527487108091595779836858065680998022420990340110664819109514428428857146205460024827947940170248480403089588069644633707984704444981826045343793222653868930405968051630952689048863954930003465092102263084163440817992239098000380661039361812585196774484097813525840100424223555124933856663790870983028552037253646894157863611609341087323855447596762654620787113537928104098283821386748213966174274913900756930436464194971618048124113708469316175124785102431903313690493794247070659591948266436787750499624456121100029988791217753948988255929806420077888793153719036663490374522153442075153066342052338016537517186893210578164005067119504340099503343351561012719242105568054950513505778049403054502502658350219839731117193071117233827420684499559179582688164900670387818101386337999028066096607264097204213079781733188435377026167590699514989024433118347437126025299209647464328379679972797646722615432827894771381295154924243020730947361089492862376980220003724824493807538833835736606021754800670071529894631850200385491351227260276204792371706390558980457232196584847231647807583570202712708809601947869871903214975862688184208020896027375732453342218879231941288776053648291535210455100563454690486684740371379701488237112836612766347816727215393087640228297820730612931254503185118578340408873232725721500919731839004026009514389260339215360368736848522383999750933664874916727153851366827767143474752759112347740790741225633791347729734774781037445366479237659346577323899009432304987035221863036647839303989339969197310900087084387939552593376470325552156549767369008804228436867655432564927441301841937097731797098717568338284687290919357806606527580315126513069063931453547547499970079086719298737309096473681211806457975945084367186287045448621849346327948398511724355274246180138989823631412341244657866541481636727170764382521385618253884299420537733679489375299845441110153822916475291878174249069053443323975714479082564667181385356492430430794506901573033606506593843925303789408492444748556161340508755169319282636311035147220918493695796444125704290598650463754138563094983576300663345211702180497618299434311038615333188182302650445740303387378364221233880757583302188237826665181051755038824424731371075302460984935530174970393669397459755166697409932483429771845962112992214402864273139807054840980875109478392350388558996947007465623716466515689015201904196166793037272202099090617433743377125031776717486697240519375060880901187669881618709832553643163680746999821799287715901876823140144353421767323835689255436325612125474953872322476671847451230596823477976133018100585039076084209519554332671490181209250865687825632127987763345092460645708548857519292949593945981163824786675829655356107985130249654998073459602632779189088551600315320378205737307062663742656389473238707713022922915971838996704369339391960683934971668079605651524874307459980633118699629724028631403742589584031671814832109995937641870445898633831248639428180883865685534025754263987643451070102985732242190940082334655748484921765669448859952271358065105014916238866166633760888256004602499286490962112463192568902510079803579362217856133407859493684001981520648732482390154665883583564268740533855470425717243024155568590754466422334434075128674056251181544789930717450701314076629899446747237609629151825718128016126179853597678051726319721447656066189328812079436998067503925564080887499851757399782133209084774395259681872546373386420836686341153084366207203417222740862731272086038767266945264199701125518007795729748150227740610973406267694706456838892677920434783028422267971883994964040704541245042662954793665420334552176176524281537565857399266158425093698006298967593457286671823324209107425515169937758997719329419593487909896254261856365583344132412768685258227627190551124361173079185467145314558741090823300622648677101325911187220756181616173660887185939474428461460891441140947315602950349051070134956628629724415016098851010632801609223241642112142497156336370056961333091516425697602864170529013343541343996620857520722642187858615535276324187988583164064661633136895177307523989497271053024410258786033930442141786104458725842133291139364180597768895655804874072969748679728356668647342254225264803813607345131540792974751076938848997790812440333546102815135805185648776382290326490301017158782089342519356215082245844625758372308165770124132597774952928482050179402572441875685127587096807843155008825832147019164558116607715447047943676187548211742702974014448995366681348435453032961478712234503635839968280319986902541963788765298763444575734761106347401870216438743899089990291617379817418883310313855413945375234164013075260638038447471578620930958712396261018349232033184401561795287757735145322076885808642208721069035921603829221937344031251291617241303207545625780729963289470254263880222414892373682046294779199118452632768911645700102242640511501654989945784553351387767475496555463805498775637806906034907364669437961111314236534796483558366368288048341595093405037989384117332603362907418025538677998782614972132881578787130570867502056792448289711892537985490803364658822889795521404701373900524302791441596918908672313968482985097824116297257787401424158880814028889404736603117676324940261054724582914804100659899191675454014643664045220366674302451317961008645061951538932506046832775241989470431691545567734408399200823945077080247768094103225788581477340617128145893917632074916298929846712378950223162586263272644843213772970714652406008383011762508095504997232864885671005835021638262132318823144919046030090724472109471578359818384422672376296106287642234020123654666187589103947934071448491792231437659111987997970911067641094379715997984886337573211111536664368552809498283433590466900672165250778562611341978011229014710380262472169036112321669540865548650236035026230033429808380632760925025626486554848641035703531889022410629363027607368700749299474605829319486699076168119200086009564402562101163636416040469516217927610289192241537914285648863310575878575194727060908365798062872267523496670222494901521765830590971068325794540325683312418369736716668656834003679411610595577805673281090808180514165039480811577195831734950734838473425076314299493095025314658590415233230372701594980233806723125551533200169417503888981238247140562119371723254981149820256318652234784488413958322164067307007664560611533540430449816483792571703466382420872152750548285362992680419583789444442133690165253576515391504914543008128943135524591078982382279362703823982307492321409621021897181933250941503436514630923373381342940997969210444492192982580367852558831160251103045600422010649135104532049770185740786544350834892925133735084085243098019500159192078039428465286041053440401093765245970038134404617524561177004649171884830113696833814382309790909900564177923197554680434247182941188441895017410092000911040310760027439736807287470047897157023586997555608211851276370944211260417178456867245566835049286020109415902634281773890373804714294667558449686470885199265872860632577065973602928961412155665837286127226632396971075738868592631857066716299824906891166773984436035419822822170476858373618151838310156948734855457506664855978738716085026341720911783747846732899591091840845554701289464226978314406553775672341050263806510189622015178311716793970313697813697485883018793865512731602599706464042783744636964230967324855249902717047931990744995677954395806604460312232347467577784509054090978168292031527508709778409237890154248386379434339701120773003215545065159394147014811531822576451868883659055353074444875117556195203520873360545531339462967200938474001722130587758872695800176970211026781027809550246298782188560500189698708400724146226951644180352199720633038052179792759701697208835397049675970696594874778875181008234421312664209015597402215804120449723701013628769356158997925636927846611199358546487585524330942191326754070897072815433711539636895461759217130217778866267099590359524845625106652722045398811199117781592017608723014778554708446381771617976606239224309205018903199656124997444015224143002263587878793517766389801643754706837346091490793139007419948810922785764898199122000845704978578451879013160561091877281904370668669355914002480357944941205346191744965744026857732472490606638824457889883376771460190463230431388652601250385339508444134580548618014124318215566025153050119409487658212108536771223633864356391801262563051767090504462400882553218683886545482514408276098570155933656811270169830977157309034331022209864022507978585109198286462162785980603592483100027058316590326578581281850465106887860716657869189572690094122523009208776505573780741258021332614767796445044857411337574492504526723813310892121894674373125650734325960136873187527069747065897172582298433040391294802463077292277842185584466450546879329242233150055803494571901985245551547429711883536643429116239837858224342840720475684167920289959932519947919168566431027113218312688687852166504790782082578484592460895044057912144332923696160662951040608864774443233114186542974189235174382371358087261502889045389205203199019108174302583664614398939032191040164524926383304688749314076097621024908300246851229923500532422319704472342971740872132356655631642737457782339485514369508721621669801385591604452385275662902691141011248578055836201231327111414955847050375452293604367425207484086101063585154067091365305120570601569383331617003925075523530777786598296611708945580547413919498871398247824077354914900860398371993240241889114715990128288514829241997781485207310519995212519859258199321086148484464511951354875793188901232897931875376346877187063958550871552901685118998802111727560165666236172516673110997088342844943228287636077535937588336372577648346792113625294318522368889859569175688729751459556761274110886286307812719345911722168652218277696919392365905249450348830693238188384835432206165219736889959177694885247053897228366795989121120972374644161002106609779378188783055286285786044146191828688231746877786163474918537416026699428476235606521417176652771958211121063608512895385781078413663979430901116715950023081593240312745823879731906785999628873802877705472337188743237580024812953201833441881725512858852734416654369486176778329620401524621059072344002249684192894206945580488557055403142755203088360806834695224280728038413024025631075317554700261716100004203380736224299540456424714552093487348295130720147151073576489204645130197626138210117955374412067743070456921898750782321311899217795480167550192987433081576386543067551666652577213739790850839249452252438859463393371107836269225120755776583653257491027962092139907888074207055772329219650900497533280126642033053869697270628231823976086045932859399781030096828366264721185961656807781099401218779785534966817011455257017594863968946546469456569557379596135679020075086096775925944059919322537443896897298503640018678781833166435077557089828718515132685726008793926123209543718176531134291158987109711207686135302061499869688740372576499778760915628408625179467661128868604974933558980571926867416689528411330078240743692402664376418149365001992798915303763975178276273378812093191795048085854306688971134931158019811881837088016954799094500717497298750030798526056590322090341931509200505852980652152839946599030863697414505311528791986323158001697386165382080083914889106576872258113774209581472615032713829420036839078701057795346447686173200463541848681401072502286021528195201371495505168782073586530586258115626829540058050742283383964127120658174930421426453533215754240853986055055046521718708198855718312619293806639679263111131199224804027020927908715957493006558754198429479485924326105355259048324500815501878548308032725016582427163844658246655214082773500264254387377526824686236789466730376133763221132331990988185032148407518066803048909367771175902823143443671422435938969989513770772758531448630673331444687969596389812791957586447750592367333033738986586142561898011938298821277304684372305597466217119199759732772462402218201717869566306296498392802619652496003594193615275238587165695887970090393135845636428437662891068125859192415528543609157621674776414782950384940706541769394568597936652999092638272384520490384726689376785389625573681446628318562765406722501599484404291026700988200246419875092152192252378318798795599371299901914721334650477571914217993855499678463293712786604544273530990348725285739255240530802274603227874674373056248713771808913879820902980947642978944131687047980376856702674056447349430895279034210572980221454004752924661316089676958852615176912427433155280450471189193343936037446641953474161030170654387266571846985609150173108166839679016189759134757085101564121013505909002071803738109262697266106273446943055066495197407777307357940372097186147586184223405789771475912356893279543576847755607914458795739117903997823616144090926233362220669654057246862675967543297983224398075124412607759237363399370422563713998465656577659105126222360835545881300888524339014595492494801809200761433630662869854772817762148286135667872988313069947756015858749147280522524186652146904625096728099173138212818089531862291610888112745369025570931285284707713681728079914274948217949351141243396640587435574714921641501705281514574861988828005429343268318581586742638933746617282377766822434467500696147983727566750654323200779113070860389282538578346624277632298918016569826891553334464023023602425960644725648400507683321560641415803195464916786054791182928498256237069696587277065350554855729411783798852628342070480173107123841885544910791608244879721124299245014386884562578206431707940337471005590516161313017919271868616980055486965907265227656048082060988116391391392225481707441930042587477625180796177175486884379111667592854572122159039644331997513112898070042619562032825767877360583355243013894658805973226774845654103101845588875480528276346135622688670863133837688714286023756274976268349124346874828885490155409602999014613502006507651829582026801829124080565814910888686097123077035654007585960691822451998764793201839435503736507426349604243276926487629002327262516109004252846777455803863393898735152504760340654706507655270141966112488360128444051239148639067230536557574218565759543101953545682779916088561574508279649238405832296750317304349810272720940185170243959754442522472033141143554502761436271859007819353652003769788467084950349746403233318329669098972920016095825752072740668382310103333801121161190293690413972286237404211698582055224519063694739992292447529681373395418322202141599293434649646779027673007166287937792783636348688488423202997609959352436788859498742493709066725513128148910919810965131926754124073303838427620413282844254668641369465370845792084014385521122751238666696811769155988206860518673371528251094865611489904727185164052546186116560096262771433440400526174332133819812720707189496939838043555798955474336598275006517668300091638695946353758765926551643767158009638801153724946723454660695830441650129219349578200895571956975359762404863013954878349026209050646470073228477274282071127149058798466716342003856450091153303929743891839883497498979102631668948541690317387061080231403353583273965023816654618485255112741645376844457726429140232062861368681999292204123684579244703869411749117968753111190519824887061508112535252787890635465964477977185553544645079819487751901779460747055468391812373977867954296403006244687557073196950163411973994072445754992357164951720374698015841612298024548769689554991696525261427028283652743327605691271088314816467194628426494698818959088264852270887222173682767744709778596073556681924752330851417767275892544889198089812888133435985230530379677584255314091453169013524853580958568663173535244714288964290510922629661900161349572817876072250747764712327177627825413426002768367615827660108726914341010099522426977184908509813321891150476815555984350962831515000522779945966827268346737637158762415321995904883329957118271225501946741671893248864790577538728602499814708698310391466282186015114623836160497902262628597942813003588915181990682459785066562203618399714894045154199637804178173406327082048958375182185299276186198809033289587688855379139077192233011964303466692654354680948814178255712498392855208117526024399708327421386127830134215451324784153848861569032272891891122296860306558695738983882069538647702128847031562940177159306395871961674850631723967119253998742418537085089155763759866544557019550082173498024555051313370395781626480114450969116645493988873235002940556952917648511222169524561382076080249221299005715783627481504378523243443945498522327441436406741634857838116805328181918071854148051939341795888821935616839352036378822095687909600683865831013530439793424000470024371371805681791325068933633071506121621055534641825488695533776355997609543858923049020125164204184797759368359725070270610199187037490098723478233214407544194515702398484099561875428839390208230416791073374512514463516931579497487190448687309707345071221754436861892228130677031776044263816571382082976327120207488636969997351855577429875440406574774994331293017240222241964735169421508710291235680857518079328341191331993896759406248355042783295220898152217770676631596312570181338252364021883175031300150463859904131547909189638439002871918759601914129842037037616881769902204842762337564479857444968359162521102148729414383998062999858570248571017043930608793915480205009798133891236880267838310465508539380927996968322521817469527822966118349194180459772999384188248238343062660541794453921918323480629781865122826787762543851791150567208162514436473128829176755540564925937755946601718823259281667223568642913103569855672078566098891017954765566669680634649975614659374389693534531237028986458472133094325078711174898774347286731634537066720302718079439093827805503880799841189838702365855877171458282469897325793101076493991376325383508192389884205948920849938208335894791305485865068924049811415032602189813474231684039400895077905606242535798744305345281420994161586208077322861453520411595742391478867050972458653217090544547060926951588693833399466580727578224909095321935199537251929166763097650111845312593640461663828838961307311830884536493414219730829935044228424362835797740624726205560471945898792424516652513237069485555583464184764364594247340743895003978625554475761537705360250869448831266359522862957167459981863569196843901532594701528862659839041955417306735809771531746239119039809395536976929317812676230790146967804491697946763645101386822447207046710119340729241759846134420628663805250414986131597379540213282695203483141460193086314419123448936565815315696869441894613492373937005002995613770984803612021425470611786202800216758993349147893404425735859527022146105893749888357916454149788445446038096594130363096912840748208217423806746452438989937627253221277988723005777585172823505894740139241513320454590137775335501455120320304584695204711916252641074068624075358680112094573491134586880956254836448736876622000201735310384393418393019095944212178516417093866680180211627417319136931857186649564288575801274997606218071069190711815006480460077855589298758295545556630274657776541899235473880089231646608721017614084402270821257328590087327862339064071100338364266014133309955953517355952922370123495368070939029558792423059402704187068326076996079295675736239127412959084923591503413713926501364359117252462207344518901928705259301708001201625381081228489594965911389079527513695202701777070411504589878081920191905586539108849556377660858823810296115298393542144415401488570025618702837504616701177463164090932313361247842328163593642138684309878410385540980930565140083629057939373896443504575676450652396393903143740717649078909547088207490447170748358406040242671287709392160433186950401960608600559584723586839619161614888751477288762058667137354461589158889092929242092775517011711430008696776988477260836117250682903485739301360938105523695994959096458868981618672815578834828227904000384654844429170126441993130476422214434563428690719147472162420008066422837573349081600479353339734385664867776470508187072619584209885494692228474199328794932734340487972800363570739063008672747580825844459042866372025889957257743456573642520161087346550348919295025334875863843270807440193915153218156436588032250455647516211480425880016093265846115316847736166332778680142826423188401448335535304936525145869306933691430344341725948503525618905719811992569579204213589304464291598745683033561909877907716720893869886835161443082986252729773538729194521898450318459258655493154441429031997412943113690495143432271242319979908970201278642388436118248422654063302392777616395336908494755993568353594954453776396420092128797710894466576387884030652753997073492032766722028963574545367118446814321868462452901928472224041398968691610726394764518202073229300381838291866089430903794898023264908918156153402142744609269671368298309042637569609925493776219040210715383024701370102801261708240897335917190703812648163228175170290866863493529611510056665198933775781675514646961378554345537610914896478250639206330284876336912070576002582031525979910010965860014244323917660439375380542483795873108505876259537297653140119675866913149120168881544181924856395588316213458024579705799409648325541824874643335054410350620108540759467322665629834502207951504230781624350854097248535646885070095462145928975465356795510442223178447913453207446366012704630174988289053729571456110038979231403506563631331011764080611644403714489970977606468675519073922406974526997444992468097261499673977196581370306217285751639734382540677883330920430604717160364647144853078871553840646291494888117669133871469133838900555055253113979578808554940886282720910802390991253858651298278544317071272029519625320704741184254254718514926280782582133528637176568002047597464860673211137088628148862475918042769123533094842694205706865421553129158885197838426183648470406058220398494836522629770535262302707894802179168886287956140238688275118996194409442882019842963379008711691788947507398567575612355474945151410155869376851508210560423416980584271181782143163275768348946574570855003701622205678823395376684737377085336136240255036731780550779725846649053045017859686074634019001205955356493220475155664883456467970672707685783451886406066600380002045182886162361429314307555158998437849919560267859248968741639248914573143014940892086846221273407378729917935445288571811795574421278189154744762696484237670552287133063373838222433983565472505628868836941987675619221045251333594460228967325964257752575129905476760113643324063585553140392192302917620626890586494363869735428238606455885138720600029380898688576138567160530167320760452309710656760276210861029602509267650007722787625583602212958507146784317252896730963501136411882469644944797599030797931185169230374327666292563802487565115042100868406239141909064331819004929861501662640179847812232279527874826151435426924062027975094873905190427701212932483359260624053717021526697112016526021503046649750987293383218498861277596393847078475932608025914480186404365216684438719990038176230887407493976860405591671404227057810549798621681272517506210038339459751491868593507103670124936595072349050625755935776308670717624262864294148481587976664933952028384102651697521898624422625375043422892678058060959351760621647135452708993547785829968414869533191249880166765480472618208717790004077957560660084472894052949840516899780214250840033861905094386359371986865765713968244684930615797419093136380119053614024785406365642704289757661416739491510456851073898727899621567218265328854306983782448394773041762465972480690792503736863539615309208810337833819973088655216532994281198309915493996563356828906299722981329326875106686583744343200654574246121508713033136741487598126432857039148134024806751183436607358432899632521557298407378181775367275894749922438187379244372526653295810569575600667812711909812447255901074089398553994705604578117462226460026279896921578937794468703025110344163474191825144501503378731690395000931234952424206708228514288946777449394878775069866351764527205168772256760775558773913110727880256304193538289766757719234108265742193078167988670665741263209715071136647445180154247372485884534434467860551706480305869607381258619151627829238734515094347847882486552050176322474868638359352189952222909459044678861683238057448257943730155496744141120552842332187902998819842093838871778977257854676466342217457572651964589368113154761291926508965584788150606477343623398655673799464926324666236065429485360290702250877060212493644616098277269430287385271989030227682914495710074218350468764655509747967783527883069152334359494965755506549040449821089879142249934441637660318271336429691365347002782476064809402959585929163659549921416172627327862137090945863862093366879670121018696500431834299468223596632541668168687952917630970157369424863827285349927056287568476818271065507580822090355819405357683828777998809276010644141687596375650304147488280339004613063253908196036392177961281044104428600977285517181178976753680376513281436603454836010081386513696437861806532739479625363690772075012722088778031485987709780104901963734917054565315691755083773289539423090080261728913429670795326655434355616950311720231023369510790769993732840872568270400358520460295151436551213412038039295426666101845868274470812586110023751863629298703892538916587377690922572606118086675783494113680016889203056302768563381514356637711198972337811539244260208548680363259103367159425687170773862330899870742004291342098835892369558128520511417367774742950042808932875856053426379692714047269427152145057574314268662608845441777474505214537499064494471791541715534512426270258520079583082539847335973514717133880631294034170528643999048202952474389756374501697880057481923504865040465925579886587770723165904622335840894572026964183006152420994735580188462071937411034457796482995359416187356006523569297982381084600863268521812676826502571242357754183116060625371109667817267134841445659723900945887356212217738508915340511152237563749757358106729475699844587080955896360735819916973475902817189702993374790526295852777187771996483072956721971275044826363847319750239926719241325583054492988878527263555167060880282534230228027255883904003141360851728496120861254915282855741278674374602707968107546722962518458114989391143332841434582960122200039383080095813950301018532983099123671999418059820356217295962173901797495423584525021221064168525122563687011130313603633089473306755383603464789611702741651085022287081472027716356364518417603469848944979126243935472318417456914099596706053583202271073885063990576265550541221995571374214671563234390129134263676378075660756476622458060883797231842384858435195702902997904127521138248677248939192158908140698149975849477490244074347429479061830633511523818360791130106762807477811592103183785764281402831607337100498426763179427621022448374543780099067217077570735928616447707061736641462495299315113811682609346249340702392718765606646098052763334476477522068668429022002612052646467192196202996511023933567355649415826315987419956972356510470367772485848827878376578931840505496479954940323157330965932968602789493282332854406095478199642417834520293430997449624125316811982038642101941934518926349352353321184401619290069691231150218352394518109781349424719807444440914118445892996137627723204181282100426426048659162392774649285584238852484043113560292615025804034088041123155639913576814101073677239233936402052517142200463169545481658634419363910530847252504432466597292848664827506174874325359359194717184455912063130662718884266287138354087429842758079166152901726121929089131659008689570908680034106507337875957956768666480525046065134186376319610570442659975587205202883822897497889165720580348222083475086160112359269684291448226723202886474762445697545491484582852559000982845672755256905696017965408434014080426321952656398986091460428449755878978404480940017698686669993981130890264885219964619921464683420828840454595783793245477576792946099381983141164093872907535083669234219937687388856591149064879907411865277642156953770068156203099616499624623562226015408658508307024596702525780646924622640581981803968931256773411429414232142307907530376882196741311541980749975499900434397647737242272917836271879125115561239357755929249036795380098985816901333118694656812997222456434117829188761378597626656480010449499697092900712166331967632884012302866260717115802378373140472784821093143380510034109674744534071284848478671883050745055368920416199323299960242989530057528596657841959297154032177307401092728286021287716762136981704645899003261806289994267045711895451601362147471061259849208478283907063471186747396232717942222956430109687257252330127060908767592671507690881517553839671089737751957203243047186067777360278097662932873581872927300729542969041828883030549311363659839418849798442869994921163323688776727072513307442922001962966159867711306674002808179456924323859763471920467665742155882478592239640698856718972277668270232763073074112597992227550962009811142650954482723581211642201658022281258820021480309329483632930718030378000577148606969606215395417963004282548205184753795188618667807703733371024787723879358382087278086116369589561628697396986221859970898801038381643037242269973936738738817633738930981322122895402738318614141346287830317945726014201140825097499091592756372380198735751102263877541273410880307498334135067754433357599095622534438968281850075460945385656818084958627993809002249668512390623047476039250883677164247413403812555246220011477953532832553484416746061962538709706628612007110854461982988273414615521713395364854959701603121044328567889586261714861269103865002544732373072280097770364045571405015674027894864938936843013605964773234747991638353792004187537251150922686927120887854889309976930524671402736635931553664152201098845892012532415682032860621281390209733290286090333436682618399398036094874415159661003838753199274577845934280879125384239834430570541897081399156439931642943118841248618904231674788963738552940905668229354874203855557414060826306370911579534218692260839360847271191099191129666778221907881856378747973259122675785967797725492254563414392551779272269219491429660042433374241665330979044675304886758048217442584733549121593181686090183686545379878088360443787270846650063051645571810621407100968612024270842683596777224777576279143549817647543376799423720301008267413194243374175296111187108290220392641014054907884393057633931101391592036707733695932306950224983616115201192785304828708884634405884069486328788114417858821605216528999965381937562959922801655655995609719794572323412952198134403432719181488769019355935213769418351747208735042296270796129380092808118090623431751394308828100770847263625649668662347892371125671755544070207290671495963530942222172237864880365953656620366666313468991418803743717532627649515156459668620889619568769712705585597356926670044642789488518899365868169442705343825376858260557475760845912196375842738859352948875483284107050918460739210299105787087416640182266425334257248184512639824292495010662656146534444119842438329281313631267917469715550745878195917932508352884203756156056030367787729977038436645548466471180065228933982618886053216436616378222531705336336543400569500648129929824108008509837148616544416456042910364580982607348973829635634076802861545779358776530342720577105115711816587189863900684897169723212171018662039413239780594169866278931709380824883867817995190482404255568005899319478537169159997270537019444806698109418782270664097095648742030125313175150520163036488923561036945177109967090301021947571217040754329093830310214815571822496631577680286195022959970219700704615916172157352927441447561493678191171449280516839072190558103348484043895788224160805663409626888081160786313938043107654716779092543287826812303668981682669032652592752805826076830202799482230971592916390082526397106675418606275401157829503175372088801851815968233437004071986827090676461159561750270849861483619548371575985917257596020037077475322413082030821016856534780466147033153804148518140784217393883941038654078490877905841456273027683622359495583915770664341998142667556404837413649194118495790817907052065220756209545836992166567455357936700550817455852925004694366314846099629586795782544779654177434928649951879056798937945982564537985679585765146896022665888592787613376139645707793178948234938684023944865611298163847723065999726488461113270661979902467485626756104811497631089648768847089504087865216952278550409824014367494133068566966472358663312634835081589407417887489718354283665477136871452466344780926441850185616291673564051310148252206499580662351005433217184182681210111120770436110592301116110281425630166724051126672274791293731246804602877759392247438592168074176176604248544417613574484354262115433201491945829921170802798175739174978649307403983390702492715789767913932469676771076596248497892776472670399091643081918484834680215970013533650697106184859675283336824544623904520716023028130890452216752696722387676138302421566708707368317665815241736194973612686843157661086456084438941541173127535065164246846574329987222978711133049029810289175085568921073939085291945195580081173658603220129613093822290779438511637540020294362212158767490866089311003722398495412083947759984196472437778283221414915232736661404993867430637943674752417416654127473245411881604465873869272863191527810354814956688364163427032463290805884146718933346498210462484027028255254930992114715046191409499012382184365593460548108885221214980527826818682558721298331949301181842059757227692197025431482264739002452243440652979775354431794307734957266282047346504928100830099473397463368775819305630803844945779830865368846457392420103346018662918162738760794590367238902889469153878402170826370781065440844545566757769997514708709131624177375032309395490118369438291726983680844785409785041790490358170355076234513822441389069488840610397309107025820176375809317062824745349568221202390382160817464406479744036299772177543401038207097466369181717427285851523551039245852104646214514165294795534328259027622263988946475388467863224615117050000730881354622182180330242577658701390636279972703866630104709711121111634396587999170400498294121239338329265967817931637806700357636790237615061602879273865823854023630983604613293463342183982326535323614313675357931796319715910379136604355093933818412454043423245543133755619774022566592474297514288951381563045813959982202576388893692647079902156622230285039738282334875963172174563855883918198640684844714743285101368929947984418484238539209680513788312813373386282453841754157929272325223420892118174522979666066630501447911246761131821120573105472535235749259732945926039839265421814219092259485842146323250419524327419403355011299504768868163926957888927840570458109408866246178735594190509536991722896636836649048678569622029473314928548311728939841726976411355403384010200507037868631661051867337959496055624715383790280415214924676626623386295615220916482775686334516869841211139018255922365708831922829760977094970899414802682278460429564057215928439332581561110505853424421287518216263178840197713928320343607706240872364855255360936467822616814930295287009525282031115634213325256889303081430771437029306317656912158841362965034024912577331387844713500342173640763099163399804085970442935157105353485097234035072497592264055375802938432298573437285115249060973881384002230046452184543180034784539543998964475363777486354828530743375004263316104293297785355419068552870889583731036338888402200279009789847218137125203152079955580668600088898295117823696222281031181319249008598546081510294918585851031453319801421666893338203674757836368863449532103650670626824329333541604213076501482384701013458527972291886163493559824544244233866471640059785839888328087652328240740759197997415279241012275875217909781446984174640272641444378087210810818307330292884995826759702917549524210947223522528243043510656090992754707622868481008325470489079844208436448544368304012807414185663245215440501461550593977428577135137818177103106009818834735652410959028180229207819127298968271298671384696887888303388658241815734328804175902068048253074975183719956877975078702626925028183284590267168545930489457093242222901639222540797405202623057911224229553080164647514450469728143958826029704903009063882744414367592179780090124175067758159416706032387687582772468083398375295203534112324978397247239469923611676291449409746682193327563978777076530923402321557538589494645749310520285265309418468210460168473563806630861303002079265597594884871003001238613583028946844185522279950871952554361123760853768617943868339048808073818159100769804313702651314125598340970045596445715018403130659632598453293830905904779385779765184131091838761969641001049981334127422626876519310460128156025690849742131222683122902397343179821854481966215409218897165384214700322234806358332834986738787362913442435118437248473455807862083823168667235648702022484368337517058775843657272343890759164603322708218762974523993375433979846745207990160082497497484516528480197954530200833565473718413926076505454388716768653040533840188559582303839319057571425095522543313700841655148396181062821097191098312838300035305521036593122509780852343071978262239891652864317372225713895882666799100589574852277017495030300129821299249521427129605568564241770518618801547186340410000902154790628695941468309375621636000268493364255050769552358036938625729883918829027910297940454487102008609020478420725092688110981639214992561506219874883902975533171516261744872381466340754094218698848162135413273645975551579763661297213026465891649651794505887568211106531483475422541475346792648225454477826090328357487424592763055472271725234003192440488244001383202182548122185011416671375268831602129154065744891902060219825104355865111364690223958109464326947874934581193722212086588481912227447868284439989194217227579559719679505814139485733657673974854434670779184062299346212054522958937568671691337697557622118933459705824172231324891939222684913902461605831049066648664968146831530864150130108208226358744207885425182359484240687386866302136818578877781359461644631775711008193158404650528120244559674611596710426800248101356209136075581291892432700589106297107720031006482019398394984573433412452479891734989862167741945482175459150405639255683505012241935945891307782058173146384600940220864728632828573057421149739204921915261856923669477825290460308515951227507369250713862813613615330828922373632286229219565905093418420726195207330796538287965250513828867401495411164201613310156877158875269120877846078153940826136676154957638307546970743606896657760801705349720418332461109771913792502297260172231389297306570511128479945355532853423049327309777896548038407723191307474342413900702212476223933331511331569038776570763194937726559473232543298469838366374674928589675206956451611573510333223562498952420856838783564071182399403973214924434439927188485621464006040610961818362799713030027984054166589791109481987604955680269649415138146881774846664891446980273781225348470780554397168433316166116912225718607308176314620133844322566304160381957223801335674275846468675836440603461740202248717572016757232289103276169888037019805459542446108935047794571450416825160193408643310126653703355221723603122462183114211188223873391454166570821183367350851679562894486114150510882782501727018666967971362206675092149828532893400366341197614324459918558836416004689302670236088780310909509062732221809970192984835383673627740163018910328195865831182978876550959853210679709263780922239283015067287677189902820231693085234011782752603328035552558320370444870584085097734658715430623957904483916329486912249748614386383071016607459721216728618620966581870603671777199012591139404134583808914885629308963213598751680155391269003443881551649710510287341551172955003022989218214264524497679301178101582644135196177541636432390772579279808321085554776797387070956942279188772056247267493595441511453237663537426834508208515362808543808187729513414382678839804717975761254917885009233140050508500548555622236643671232492361047501246115735061861919847685373485165280654533660545722939052284163716623237880978886022586348703034479416465661244250431056267819760019448561549524130803353000567161185240813587073461820252799346159579532227038694421516458382287401031440470344699462291708977836725119667548579882588292808325506540954563524728171591227952814310613218133871177814398229236734323920039605089720244751699473873933484628661646136991164302115384004658931293651321289881021088686453796853476065896214045681827795020565094886307104262489024084454012963142239800691603085827956786237428857248020677299073433917360256258969894852582339165550588302453838373646810083874167776011625485522413958831914860242743299606649875232386598555148250938816500413140064907571724288333452766326876642795567224459769072312061239926046142591851207380383426469909076527969464955762062293460218144106518087238813182258795265404764407916006843098126833138487493580341991003501203114034872945555070003698813611871645288200450661577006037042626886241087968788914764843431430534099440974861043736665723423284051985225193671270723763083482293105968962866309596090672476737721171329224774261013433719519560347948680562207070141153134374887204146370081238510494032268411956237271514086096592738637406955730328155953915871550116902481864370299795463980998523174291610725357507828095885124755690793334801351929614924292316352299006144408554217599743779278193367752146150119803241029556933337490518624816003811317210452370731297770453116271744824954700485876847965924081689338098294266837320681683743114144802487500149398611762841370787536100088658936434833319023939736411299440969495264632774956162358232034653526764606067419340734843527193736358366239517082351742222550839745810937633088000370596302211997172330690334829964501398025549689725614639390891535248056120688352934276998266114127892798245256907717773387465609187360017046842708143652574206882529584348111891515323942573080935020447656825420653512909433809455367672549300585463393197812658636770136187476088758455851606118148161955577171428254723668774267179645679260911601408615800355654150962983598364085490017280234579832935706318631303025133663616132884835520254745004609295355433764747605328730855029480854696921529258035285796032219533899976651272815583612990130444552547787181445083480649332324385145491701854139581056240485664086317908319141508036463313336311205176291761354920874529168176381664932583060370427582462737762883832926666973035625236055111271613616611053681991314886041534943410039240587288897404322110471726947625781485902182798506206578548851738612495330305533585852113770883245827055833506025585314699318890070699148026946082490122450109325964711180013777533672169707640320246011392951443833541051785482177814780580976489891819565880261530935815711566332315673854855128494324180313771440350566378344614120901331988001847322814749703501810437686835753731747296132709560177956958966698933654233212709779958008536072715712509627033526948280758194335449581732225607655264729840453395746146840835267666271591297505882417216385287865347286181189469261394056100797057541995344646105099389161387550825893102955411964302923123866807379237113646834850943006891824112562251231617726366969585234592256975712978732090423774755688691363952966205799201794487605330497438545645138922238454814002104278689220412666663441469815522293581770746910577616208235932584753494430470540761930815019831807877313061412442798711862615574055832722953585743720557260050380679061115989911654357190662909275977482830005721939383784581859006579071076995804308109905415425790364814822421058939367422216794982726261885149794601677071516222225608824441318828609380404999025504629470755364500052398900151570882482588711018138956006402204393120140773157215330872224952154348871071731304672356897436704826702822305322414089903071306193542037832734824400666719751177840685328738380867893438254090956085506896647769257871731393892238200234760783105855118460674735143525316405335424440416192096165214100941382195501562841239113315110178426323056627173297310212704760199661042683055281552328455317631552911314633537941200317051595632258621482032714213977826094801707748529907870165301473477580137140085478408234799838258692496613874874381062556466665671626523765402724811961522225151992720301592080001387508514793491041699693191336965030840593092660347940959313590763993144106887045702000725225339387869724399499403606476900736522448448799611485555489475985463127350500053575483167561578180408432240305101686742229990965151956473949253319842227328215759846095509943497788603804268772649436770368437742059928829252822335879962152176926947540311595834157766307394989099307507374135367732404414605310218080156869321709311454412782270379719176198548894570183083153785485591171392719387314373672700749906014951379026416643065199199384479950732354683420492333183288525779418218599401899887704120687523996212649354901408731370474564772343045005383984563972822943819645376737171836176399921853375942799212854196872392455979696385968883681163075893575206618869737283658675563954311238438501126077660794529271583992585677774464809541511371392927061069385881126956539691412090768813271949069301792895446335555113254733505222171645067168151091303834305112404996056519646788353955400610784946372921612175347214259446846893477834232486597698713502620702776326542031982874933550811598762123187219932328046610908341042180204679631337925706962416655940356644102236545005333707256636096400754018494160811189095186760504113867139653527915093796436145689483379196833786697796505519022240383764760044046657422043056973638720988699573673799358830533167722168473047151435946897552600946160325753520748652583215751436452235249476068299447149262994996750121746003282153924286975106172651347206147798048633923880231841411852066278759397691280982723636855710350830595341731875766309445815039541904523109336271862943642300803207549624060325739439978126597087583814602236968870936348919814190643077381612098802934798243364075726243701226551409985591240482331543752923584015544320575315983211643936112391169089960789419934187267833313924666714302544250939139288845658638152785796554476541055264959349758469700184276742867648658058981217004246060214746312663994436938156701143165740407052997844880343990458297911782065593858104728799669473516080789232721139865337191985431628296420019975383758305722812848123424356856799163012533260734852538845768715068156552502810026813265710421384583434925645262831306795560543563890040545322078335901494433495592816720793641406085594219786383767224426835231437648173565350805540706986135256250583780559065865451078528024013331555263180362112498674373035219819274752749519918819002188392399011169472786205913584082733778029291327294852383401118831891185484069345282872180018416586843763628077461733807877666255687636640071602788716116780506047898004321489295139849566986634739069784316497041366592217523500382345873659548265570484357565093426668073364598115685862654288352898309815062556749725985303903273172679065987538839870365314106929579012453928688407948021485421959886589511492158378289290705388841739175322778996674398884617357079811804337581553667461980469367210568085683343042624897204290169399787240043669353547293014293472916247512682463869186076670550638290334970616776507600598399608318211927991767426271754711760432435506025498501590513982565936078465767966374195963281119582980578293356991285235296451552512354356190518577347597306174158167110585850506816900806913306643951753058346713501889048514009037798236034951527527048473518651746742480055200258152578071800156586655252570354328115546309000723016795313188966490162949823331909459254112717305901747159822975150791814921010565392783396054614440086259676657692960668945293858708139766747837605935204282802128037351501020469009973963367558537022841919692397142415291525540475054627721039207449860552539191883216544178074198821140805696278398740453863945224049911379567100164290521505031469511580036086933660559092243134485898252134629878234471392740546186866435569508657307530972208213634465877566742928236684681609994712477464729464795287616099260611719760332185684347013888709037971764435943269054123955566023729692321345725956059792123627242559637799689517575930159269587336773110220971499726297000278250939796498135101515611730865474420306184229095537928583056759287347495908582262434319960141796570828998513101438895604602389129180640959265691536115428143936641738153701633167000866265312083457771979616034380386962380847166566461575511020456058644982576259681585121508558447241857338948556860231230110567164233338207317778417972024393995381792177326933452587057579255000882617596091564793372132388080593695429827733117749243820313127474513901655953558229517881922292946135298899788250200433397786908953682882470954748368969867960454463990824954062706917260609316042937383246924842265392386368159879657196305553805969094638396928986645174790579174240186775469784057386313646416648181469398432905052368499998955194271104940306658506423248561943825027416748633061788118204274654669583089833131339925859671580819191941737022928414396028716493391401641686757549442911131487481420938015108350496917738784406741456836292382147720120162585835963829618381439087663816633115974407178714384740867783266296568190068409586971787872663424625339302200825980979126969070675839977241152169742345878033924143146164086931803648588806019817359934636918990200906423625086516131554790777173298118615487315737382579294009432439575369408181688190027742740727517229383322274935773177313945872201143714333276120803332358376604636438463256505558344073762491228039946279374971683548648843196744225720115176751554105433429110997639958842345257912683180207917473230621452047804125839093425350762836784791506565978936430242589855986039347503447362087451488164606180213348891208725855975158333029996793715295505358192523160556658924222224748175138805106753438980643943027320830124911696044551056742727723198413361417262419002393166092293588613634054322568995630111717871296487631581262562074077360483699457942502545999941279744185191127643511529880115991729120452303219031487304865000389587784176345711182210428448482486751270441270569866929449582211395562171074561552553102872157586318517855089212345197064289273675315195669014567688258897266881155021457528454850853753132833932875345010685344345198159738104155771161729753712506074506346922279234068091265223824661437293636000264825547367259754986719672301031312244804259691513969829458010529669015376573835090077795521795496644857988928160157162849434493744254606505759908077115336453979337452104227486831746371129771502455036725928843147376814047432135398091421861756851624397822880611783529207785647853792319392188176840809420734703439052386282463679403377273910893956867836866262413699996295081630491154948204555838719556616372348192071172184722377701033484411420632997839281210412423358926029475992571152040154085528324177162849942859725569448454583930631718289936509559930207173162716283230261798681464560071869749087779675733637696808445016756945043169023026410987561735499481257679526471466062271828639960058213688394320502648734131172515160896823714834855254507234663018842200132684970337666769813742309133537524981678492642361007569657394708694717942647188177654205547093649616288385032720890960275086222436561086709120685516856569432306277033389596186017209677394947559097547600344610242824805778207236322582929913201933516299817593290936895674667004692336235045167714985088096581326627225693698945061097844839982976483143141164130479550229095964801935807117678271712283206604988947151355322166513732220451952394545031826153653520053288270625337060089936131973057269036785756756714347263055258072023509519552768865648537560358018796682112326414151736473190138489812485745780810216827431504259827821807367193827639632269230490007856514394313470483627570036949226825490551546011036259809358914945898737991853694851307744387757616065875473364943807751244553359924071532944363210427514157228362991027887752020259570205794075822742442814173186292414405572200416141120226945739107791216797108054933776741437443096948008316127782079254701917410336057204245948472338322854615792329314653053820083762621763406550544892549588814364595656896672925025848308020264642793996569663295872811510203971445022747021206424924506809260420093977941568021916005317779336009757521022650352433973316485043075645566824767637803893821134375501302510279219743190387535644906051075059129654704458573533833275591990307434717430731646523714644188991466679828569286267564117594108704113747770235219450109501066917090817393434939547069021657463617352642414610133495274903060807714203424701880211673765828378946331686183454122907561956341718067385351016857867753167889403428128029047896765727321133516106070237903969148876213896093591725151089472997992735141772649665805005290560939946479069092637668045569470331391371423921724917340869282033479681324637953615003034475457969623665566864194354908477585334984903855231705601183609842157306972866179441597774147891926260379342311278931287008820475894504334467356064218876870707292666339766461949798318000340473585798160384729164112619467987289670840522096216169897495770224905110734499122504677911898058245199894654512304838263986807856837327429386016608333694529977987911500391788899338701968524507799040730999705486689648596047747883904658128140952281564659619775408209925785073094781654697042244480078307744618506328872718460726639733345724549279632008384209535310227404393968326288688279063212190895942687651875137985412964785656891188384278797275494906946816228850395193963005023195445245099557308145313421846184111259846500280389774638655331277670457548246218006414047282019433064352967174373378162467267727610694004239125606329997290310299028762729529162272937980439725837767955791965623587102800976706880244351955171023966494885118450724485842665714688797594469323784174765843760886009631056103972010297370277409100494475390212949520074002171399157636296213274620191716065059766539765903513496771192476520786809599863875932838570911318371024426366771117775137684093646158894511867075389750627383573133857075599617707880486921750313991239569839951639715693942110937087657463523467193971900496421309104097890193038256970507082397639051494575621901361426217651918470341004996584986227727351227234327439657827091446836070293912889534796133211215289494883187104025692441125959272354596986454195125644337343982420000487004441465421254145985922601605350460929436704944583998530011884575564511948486705099094309221920829627593068693927469785623721597046014773566210074296415332268955748582102259211913725463671631419083644294796842446069555390197887981663973442302759205279286822073978070643783292293375825861249214161766769234326597187417166622546727668741469800565706816563410485882063817827799433744591327768648859433259909204992819655326589272446852900245882028658038170998918884507464491081622340737046397486326049105330421291548558788075704171612163358433228788513431865526379871806653768446617520121925753938828692984642312544854444753411292272629235218244143163181800725251325300004706209577485254123200217882418934105712244915357182531971130260010530138470946512431931430777524880924635190152587006756390436046582446116585288257422069621061000572096342714272110158795240989677105087823086672092702000125457333397800126046552046567367374008172149019844396337936622632617010496611962974134816778935591699081967384346226851266566190399591978057487437113596237722743750622709337990236723968959377521845625362200320542566427830958493725001942499591439897780977633243651932247957722440275056212490020342213419798150195080157603791043200747849525900087952933723470389179781969663527196290288949751651665454590078329157228315108027321014625259046392700093670493239232394847378269866923710186754945809631756168352639152995461972099833453771281219809668669965331311515525880469620017203646482441089323356124642600465776595472460025099963405349394969006540832612414991483310216286701979376844960004178915881128125227997424731047766243357029513642973368747950958529467406668766215141820331664246319662289179378825971368825390787145916497659742922210294735992239982121688269435603417618954943888744835221555780145903878765771933813171236747695006784715791411268197512974218802215143863552722966106472582684607413516025947342360541799233466328185079317675957038005370807557740979321170059822382897286049740481516566744332573790997410618446061803589242076578401159500374746125900065949069134549887426116383155489880634666322701102480981873997284533245774644377114052032527034273102270040929592345948096084922843600977779213353479882637569182442932674547849733646113695379031377693771791421035201396025447523569890159655805953194975512070133644126037275794357206324065947770320775809133238820185313589479622053651289848297780027380830334318327448797410040553005070486093626821193639964554913975728883940243370120465424640877629032644940131641606375910247410767336819979405246935409062630549368951403275288558388033528648079914317883853291559325520260015098962427081595504057969791418675567247240584753059615144557966850101941906995598586830212353581312967437888912042853882990427945686999753659662327875800159454782528398571039701999620790548007432010935060607084869772434666157344776159337900650154188413969178000654510763396800653408576244166702941798489123460376624441341376635580434955598344973500088903983838358576349231283888821863155067532608895800473844928012124217006315761640383081649105280465983242806166836609788859473457504100191432521423989643517900011807285209374472836665895910676817111427007300307867961956938580536566336602173882177721071090265863581846460613477452639620726824670791914733483747807301175988860643555037824474640118612462228183617003457819433698456730750164899831116554139106127441059274896640958639441355068626853216285660621021920449930887153220490586256622424288948091265117680874716911630438591502152591395722670309782304384716054650912908795758266514243756452394045912547184889804040475134201502932982517839753090329522115649724495661308089568070322463499715865860014279554691550755020427763809134829774646471004364081607835354587807516818523696289518537745300676492160646781512736032562333988070123077528749052807982439552989820607787044534734707690273029124808732466060970122416652226140298746733509788991693208486615995559389725701210137787294833085386674053528332332366949898381585927205022296133622717367044662051960287516614366365869473224625716023531339575044981709010919233905014356107349759222067258446440346738773860154382234753809700363832249724859374987319867706422655345383696517695787841952480717884908281535906373637999637883800432780005886869021099256488896551236552013375881464502841894051038115192795925267934484768987498471531837456339985851783346643519530009760147643624674304806439733497381713866247276945990908254880523035913749429938189225909433105775754763540506946634246423513474101007010906705561411537262003592081247721814847935304724152160809266895394584082434906877270026416917560028227079424933060914295381309167951803162564238017219527208940157873703014434924330540856197612392256831703045656741211209657116818712307466463651099586250170174606255928689356156733854383486609418161112980537321971502191676614699149333756522294793153052349179931813423983970624912618486972399684089351701645339228179458576903808847193416943072741757603188898207047419036980696032857728892451307683691409415218527571916541274938318594590451020873161243074948776758021522927418307501196906396513099137694659594727947236541940337348069856404189791455629462528144048459803482664143865371511977441790080757944307320508201650742569412638861706737634821895660101243338145087496663508905096628201553050816623740170290537291016821686828621408700706077971683532544775394422864571270910041950644653976603850713507486009103654094815946136209615584507888411460076749679506148142481807430703950398916048926294277039144092334886172300498466453916290760039642156312329119322427545250293265270593728971870588562878284937046084057267399434819121668228254219345973053983129413893969947311183479153225352158550090010399488639241157064937614877662956848225926737483876810377297873839712018016861067453115549081329758053881102570782170527486194284215320506360742246058738256710555195805198144110600588027815124987797161708291205265018136900278910281922133527062575676097850683960695890836599033765163294392208530124606597246277595574971044005639963481220066717733362813390409423729755226362527045513972148292524443858379882434966008558053753638092418141954054612197883159180264970174695227426262073502128611824698734214510578964891002707720337417686858317937166614363361412538492978381425747698151250533596566255154553174113999897369804145479236792652597719925183480687027497452600879682496567686409294026394477242878610742896120983473350960938363387147121245946532264491211879086591868047413431672411501758917091236432609920722794536015250685280866572171357702897041085455446112971749342633884045978246911102611924164968638788787954237628729650143965905101025052877294162609294494304730595052826055566693779201257864917844730986342340451662973399600490379454541015906408600573062635563815451505418745882667781006539449184063839395055320104949229757261579801969285492106313720481391503745507822087863754572143113691776222179116288261403610273722904360487330436243540503099076653792595934600186014290590893998753370007179182253979371207417005382020998780017100670596550745885561195976450633037158224250023124503835477032934005279327829421940648915917762662647059082426247008145475531820195667786872777161165822065853664820650081964795084818116393401750071658610033141841133011215105044821108283587594831420988742499231567980344237981015949903010952058701978198188927890205961426534116440985392205887891492663708798048712825220778156412257142127070445036536435657169372805363917292806381087804578968396600233819483460607480264791812633397837329361931599599499522712131158645177671488854069020063244339023540514121961232962253475977730606920351055660342625738148013926205805304758755863452620160153927863183432782494342707391388704974685743788674146319008995415771385736829957985331167276022287537010355755014767000363015486114124363826933418428841218446156308108105740045163448176763321975863409908786497934131468504081621172500006715265748172131898031576742349085803276813573756924307215146763401813851625097050052202555843834392939813685183389695445077423614634023873061039927584530118901530654851846329677804064546900880740816410880315443497376138161383800846657492627032065520435572825917659765061370751644755365569073760617676423726465963114100920826736619484611384812036470233351799934138967724854192968858223564628855636389319149902667744408706067802638827496876891747401349525998059836333300345802471483472658731841387307140967230825357617353168188045713706421327558026062153568655046310757535963124002565314198330925010282556571728111658530936686038001897226020429180492619629998186260359223293055786105920570520134020118521278114549960617383359660395084378022659870866538109305025834603462237015433530884811304700652281238511786703051431891370573244487631859126143464674545949256492004169749754554973465263793117705567927862862922801776428116674714421315776166047866678117031524773593142942143800746590817773282980672292539961846590348341955325675038349289163684833987356076044384640452810097431958755774857625476823754502681494176414440603161592211960479742737845357100162538922874711544469952238767796448257619913462795146245123843810467418233920987972160588373677445378642109073385603852704460353433144890330616280577493059389571623038814538662193970261411236685020263115169677224417730033134401573014915186362637611860225212510233576842458747041871455399858440036157520613496609251071831575833205420451582362408170028014119054529224332895173480593795065152385237253628171505284603752456182656560054515237421458688271064372914967809074557905977380473771692147405725213002809315713058738469020999630967782544234694341838820953736248220980444303656117101223175062633713727424386052487013557569885081683572891109145217866254558510833331269497519818148056934043415313613341909242104131164651301847284657058534580543807587265862208294605192025816732154397440417774250877651084910920106699871568150255016903771004612297842522729942003180735697821481889655409508185846924016814142469257332933471507169387626970629183375407336042709660206631388307310116388210944654188230531151596873780302521661648688451756876144288929619030098249892167912694986331143334178768560413807177173937067428766567928224333388655722935754151194687333516790137849376238513043096347721231147527344748117808441216976642646657333898534366919398128860639949661341076489220350047495227466875486123293258923737116149667784378925763772171205268231593424215029671956989064699691701369937054956771855894477976672342981245292182435046569982260440794594500688524607576327972188844214113845486031169124904978824710723506687892079795909320460634087284545728424292651898216904937089458677029668417306747993109867542450870854151898633043526509352217525499441119425515246283536752078962098390122543176748394175440952305025019135218774721697443987970182830114818278723737647830216891852185700575533447531561653322891187913063897732855024055615482892731561271832807061319224604793562019342158259515049332175842278799362196088128102961437939902525274492970461721576078213433718162664511266675301413714281967013122967961202624760865446701380689114903598989122822511415148808590966799226678260404621309297438967257683207228932401126404553138036518797216864352406247052442068726225430734811592347016433078764124231556939879979298788701076322591733971329364582849465043412394985655532431678769561995768513718765410015262420010597549836719743771253709566239000942880822264483932317765605594665316340039241901455751817595491233277495097638749171182143553523067091624373579154017208644565022158699716734689773327648190736342401679210811630075883975662763268460176376229638997216013132196354521864197764704009477499464583876932004977771821278348858270870694506469683851501944166112597156504790511494797582339402110232469110739347417679967180880571890207838337383112755797418615717605430168510920595702025373784991442021944918963218034937642148395981596040733212853231920345902673717537872459080796250819657110995988440882619991222998355385700986477782649058187920244646250187380011816557779265843629927048358714628452106315265790452279209848863133018501273796555648384012893227807200363541745409653803306370490640577204561963485035743312754914387893825327582791746892251022311751323586810361674983700670760500549022102957972286403807060060423707833283840022969482154037211457258063888963726035282568745881840750452670467922909112965209021890761328309426382088925130593172199212522274730906872797752355566581740246248704499549190884476900548827056085025540489032253879076863119387882484566153174973270352925430066658299995220203381645747226116543792563532195702950382975825638486674933014553740586062782171458011547437658221659509127608792917607637072247595110255098404071650421018225045888550617776066927757159377791280335061101315658784789312352003182159505977790911280809902891651354870636768496534221655966064080824612199487075702504539082575401466638095256926130222171422857672967825002039488935199750398875321833267552287346079996521567999422906045612099421862481276130404509667312714913858597825070766333447096830557415812926459080408546437105564873187818357310252958341586990215793633723810999995642849287115879506255751152100200553948646383434903577403701364542511986029707375428828470845193738493817789613819663294529659718829887118899962621957982943754405184153006720896139207457832047513734342651546803056276335678664999942546347594238091904401542170742635998696333827226710324688038214559043540397742046352918939488849425230221125385518264935422378540691068900848173364677337013492497100567368920511335106220948376670377719649135605068560827035969174402257262098001209387587290058467025718651869683467202668546379813883703309437241045841996406278146823880289658326878309896398468262778947339619107004050715730756713569361386533533898513988521731045258164248980869480731836260413562100357699419919423024720896070040360426630686240772372508720980154358699094939543986658150167841353556712935398883755471571552132932718415783022316994255902785412815500863348702496163053111136448867833680600460056840849450219841925942869685487581630819221333711549192613379857502300447571256964711432127534926653855580850559417853699152432474866454100402382871947888745742094050288028521547538373871967260830888482315204988366855393271066395429827374306285482564316702082936289768284838025923307480871978197627644564725372737554586361627140518073189707608913352413072182615754502386370159574274542221595952094460592121142406036133125676559311255216986408419786763644403900628718635406103850564319982183558461985646100007471767880303443488129924000833082459916553929112384595139025271687068731051462789673233218051574653985608139952324218443456456758307300888199739391914391147483043559864190321251091415705534687795361113556632628201495762427766656978803992738143208360995570507055714871824292755444086804701905443884165372057232167616004794545364275273676561324368034900892944053863367261948507787574665228341210954728122126864525534812593948920562992442205771289212670706340859606830571475309836131888298604463889930100704119212547914997551943691112301535983380196675117792807991789181888485889891173161656518376293894483709210763239850536570067183068122980747727692811934213267530365343462302950726371503840775430365909542563984221959949782222627122461086501673731891003554403421503027795552388389499675059849531758108595618304705301052603090121419523055721173797415167597615728866673114325326439545333709841133212608399671055636711037233159379494188181208737592288080679788496567164274971667155960767045031565150493504407503936984691602031421959404291841293114061478966629199244409679254918051060829994949379336564628335471500769536007303131923176272170956698111090693645664473519391869755858603337028333429842076189538577544602105891301249787943998360174835549684070142045969617821298333468953684645837994619211744134274349160626232162155171329139980850631064444351976078924690611415304806833492064217503934804916906807056249287794796624598557683322065536211430444236940681843450447109518688091068045347075019990699145300980776878736972664065892987129503625598419058256567939265495310731528593001788403313620377410548202546433140665217061626395348562625038092146044605028196861333331411220297071906349253457742463920898530608971892943042112410272012449977132798696997367362524975521350312971130306056002438938872333460553841574806810387241898498225042291948627114230152696820475446714162658354952295121587019319592093658074529221634496859085538650871760047839568252851819529884075324022200874979682746706458600499022904600565745632351600278550231241618263881064279760196497414206166737481194651289209048101135037253375923864162810134378507529664787329334359998711766936789188112282840984428806578913813037409419148793734740060883833098288716994783556958263482521577132957268399108348619714046882744588785365558257687548353382014871012721939429543711879992648447828620229170593228320683730086777385860464364939956507157538160129203478668069296256153557973079317585675129189756840508952249786258770317697471057841028747179484161931489525014104910256405963310323583303582055614731361635569221759002970036083905948765238727627468297564053342822645941405180947437705205777478044661622579050860620229425919416281270871166288608593756714052579144918340694602144560616985379401756868125980408173694394479513030915299172829255576628524051237019652790508570211903298618748657642463463413393934405769781735599410633527021530354414877085602858905786098432042823090001828791760310295200628052101822711923825167626633633068488527761806693483988866929079919318462213286174474373160055936053388571366939579568007763541741376284807279781852276054399661696302779580330402558971075821895416252589669585212078291016921743961507295249374591129980339774043101015623422913419200883531073507166895679633836843031541295131213859447686254716859127015022845471220739285598713189349704104606004542120395829729916323434669221539506102846021490772331714317497273094613296149549354332348904838114080433426286336984383022770557107952673784709923650676365393362315808201836230822475329872599767932711561985919646888604484048434819521332852970365713195479441679415197416630014282056443245859143971540687202932894239857949353180428693932262429643063437023861019270882655148149165429900588256996534782092930898241289195599291203957756482980993607449301405681652245151346127961126066321419186647443154745935919234541424556232698704098310234780073184505416298016278836097643043056378340395599981454543464930705830722850881374437812891121158380605717870856373442372241847280700937879514036825858724070604382007204044684394660654218482343139547887064026209032561981893512786310693568848092494425229030488117102334409900780949652607192941999059687674530683570260804152639363154962109765579148282516184975565274007071390946477851978537316571630986420744734539074004481736656187824287021225848498216879641922760768116572454152990127682747942578976147451477623949158764380776262504516364198130743919645897976899981000293356188237314046801683609362484574009665734401043558035736788265017752101809723386499188628175202153528998636036650618709410025316108717558087975880000552813897322857656666434349978307902334764223240031045609456950898510753365120652949959335376082393607069288175874343796130201998909476913585190887419001582829522123154461764049152132489792418581649731165724099128632670135143908220208855456958745360424166852985969410524728805420623564332249432380087045096162058789817401418635443673051116197677523222912787729878081000043982496137760858013166343223464771490397959621727484721552939724864733748893093693837939173153566792516227147948210812115860168325403732269713943751852508476224109989352745131757640641252475749198558086333775781054159195744389485607791780985213736401203423955007041136083737815720801607755665435898794408955155998583721160058271812406424549261782263426457249114589583667305619573753566564674709298730191621427607224046287698913105995644969906388012124530015225541136438935946773031544752516984649655572467084352200382473609162895114116983416538992078499475210218149867425644706096606742863788803707080782850481979906913609610572286614989265650147357580511757190761225281961747560805030178248853826771741458524420348756029684347920483038820370947107465400629841674373529779096975079666436371895488385187601302394363226759059032029659015687174616493601990173832367260596280490648578318363015338919016206769729823772201690287984677530496347224428366884353064353350733827335047153309830557524455895573489115853435845386646609895635629927199731787446603921841801870364003211870238160896042641910332734974975413834245157244348509144797239268777010801893882529189184502990592948926242350233491044995584007098615505555331636223183035571630470780239521571943801642011624196976857345069125124728070631592309984957864554715247621772115379936754698923740203802236322388337650383659650317431703157229464572986373529929662046793672201797538482456344137929649832796661068199085639896250078601172018825691719962741633844818740911037822808235284400978644718764177191834001894773975353992111546268149298117458810087126468041638578611686278874311127373853397230278773953660851275512168849258497903589333356045989892178833376581124592335434045137312915552472526634052791955250936240790632980308485761611311456737889654014481724389839573821892390158965644485591831541187175481680056968839388003141061259377498200318833544596218392763080369278791683428096921717206907332186055525129055025959787103092294646886459880876996033105485845383651132205456299078463026243908610426908278821814391353503999900296330137517871620316281658223370746931110638257392222328130625531411869330772289954079155925990472459706132131455558470835882262746982300271114782042223895594558017216896645890394188789914171581607317288379840231762490855548288147605551783899902976316422394622761807128312168915443319304674914394865345858909733833431084767020629838549439926328238630222618970644628112137791992170409786455839603364985424803016631471513410099747809648306271937483950758729902084092174256579584461610831261877702811378421943316366752427630806582648979896193055044751367639360972646528290717088642128351476842294157652460786653100443483525530703447075654832045645427836108271093253513021889383737653943735756430071746436274751615920642643952253616192997080864243413912316270345897574136514266438853477895324939251853761132610031190284059111353566242323925209098322073597202338119720832679865014231673469138326339610365912738825895842865798933864399054863449739953568298385513025814401018318568710634391470848628117546991527477922766550408000794210017882125537216022182924479132575671490216078182386851366189015490931585238966263980270868913550057281440216930559742007823812372412209919970743802039101804779317516060826579737966468668789194749166836453738764226326746924358667711205358449910755434537240321395976615057002697024198246689359730956620740446131020826067683162784331577158414127259218986489030089744017754760762356777280354344875858553931020027410955677252257904664753109468364190040014539195515654060144368476092513082136137236990384022755661833672754779998310896976784664743834906600440480404123283851361530250298690724552158571472967872822651509569330134079490152332332692612491633809170114793602566022826159293447150577865610042256135509066767499962834172220076366474932075390253273307166892451880212444116822730262873748974197203949897223118542211862459125724161712044612931661477397302325744245692668744976519155186566541536129029259161371313029236062953468033536907303976015550953508326611656281376096171056491732396225780076279365969896218152288356440486528653076038539619394005805466443434128838956790177622904794798625651174897806055906051000108095794197203083267212190249512095775159303395510580283892411076367398944735210274399286422701521965726600777660257671078872736285225448855016839678870693766416327633344146802739286929655058982311352593978272581633640765053123539747336190402683886705575309349496967646232577112568172762686785256275482201789198088526943263290192690836124491070475709799809607108602352333812984210875689238940958597984822218853364146081076149433332146142924963968340290292163582649685705617003138752798627280686105268995805211851933251630439103892872461798623528837528257126154571069695893808126211957147119361056302253136040541079823301946077240881082870639248217692798822278101769840161743227054644713902984439279854080032442823224652062260614159171014147354794120775523859311960394186452995195993760767566840985049239746965129287275698893573089736247256181380028996423487779786357760382620470063076109107548552652169156795650989152327099648856553946884854574292372642689567271403306920887002490049014344168036343280934181741826551027144590066893913050471764571816647689933058221296662571962015419845748177816146409260112220170629102429020276883214637589668544371762054930880933370126459976289986272162383916318338321590060515802214974552176966160416547772889583113268367137376737793990898741929769899463706438807612935551426920907252147066952209951348433308548656182173882366914863264307007406228100620503395491067642897320825201398160358332399990319088209416627957243657658147263418778705455547789433071846069511333576004034053333461451786925654571360836095536194451361726501449191458220793793283067778551521622937647017963419193834726289749886444338379315295362395843170927603283469116071335832298128826187632390251573965740519977999832592089094655139843834655840487807627520578864249600225837320644296155822150180660480501792698107379921691999366831184032961665763030493849951042258926691825594836839298478123546722980095976973769092849861468582679481569359269854600864486029516687348846698250671398231497904650181754820458073852930939761626503125315155041983302537229271388968616142640161186304242056820198873998568571183644399384314454274447970066089032907771180205250065167948913237095399546699130346860081528366950493005871106613196225520331521509798082964304575190061036170355701444049431895910852864380170117557799557840756585168913486300699364300279432303652692906782748055601374102683494515639758413552006538201240627747536319771967268691981074067446775120061172754260909170650781830380401711081431891920749994154982398334427781696616024033394866503817403942688100054755255435404697574312786214672215899401747300468079591865842112149185850556524171288906717003290785452112123039706906337743365161588236551492068157819910609973621917396625723624497197911603641211969077518269748847226114765049438856149261298417562010934352087984944354257600313213894805772038416340748984200466701200151983946332732199993354893522660833184454783117206696017991624325096653995115761115782555206225769845107988824227267997793055637040677436712742241400096007788544291806378210902523689758996233054041526147546813632863763645208572828812854119640381743703026054297271389308342911584011942000912757612716370012220350109431002795531267286413943213166357540002181173099173112480760451371424338073680457565258490935408626057219231110877835150701572458116908765198602139135161036752865209662407740924706868468688039874108298989918883597057733446984008403699033642283109787130990542696934516147649382301756693801453173660877357939471595542866462227910005940713717076374447656498695193321210867230021961507113208491602287057506243967626951244509993183054193118486292623642839042208998954818358586254371743583025687922630646536351122297132604048683081110640529556414335239894772953600605723940594957485053243209568432629541401764589299888461763661142783978455049471816525965497913009794418574866685840944630153150195138743839063561824441312247922893747502711812773263039297658108124968911720581959418298387532246691579645836685921423924936179181286684338411488413552782349258386391776557301642796378216125400247491414869401463841380159080826864319537175038962853940327860462936760604848913611522387041575362362701106124654934526128736266580542811317752268494521994898609241998034950763133742738607288236364263017914352096464823171938468387866147797283577950689754833805561632253448129609823494362205158497571436505591086706326692855443898569585264252919037505925564409026886882308561304277182585284826262773961694194261267217811338052024531212438542272397043873938592859260796971490194485905794535139406058947165284349797088220308459386057293774489641071928209899000843892516333056666255892306693416604898562660950764567628271346441780939589074385068489859883272794311227049205148772848041388564830796675643917528669305989791040479042609949292501897329445320824259885266755699864897851977963930641231121415926280007176400161432885982903159349823037483222308174853772362538994166061521500385138648418950265591921959258511062824518025842173591953678302626785184228226713965066764756330367300730403497885971987972684952469827899098236670877310524364193113579135456500303671208115815097387791977529023947133595728014190251678149004494404214727536644038809812108381010983354471400057194628678407730038183331107333192264656833992671719145381737437615120105632558368885797865806721187474966431496254993032241311059965860517426189362009063280401263074321559306758675374463132832988547274824373812183283818436439617209350783877782929975987982496603891788927469182411291389537024086016117636140909602542494343938828290901364757680818453328796434361879954763003531315134246112815706520213847254174759223508836388126286545800053329670367564502306628807161191709975871138175473822442715111929089381459182477960439766017426034335093061933399787888471265498163851914125874324776796203927751500673407571285708229073101488835261099222334780414385741215149564735029790972406069273137891597237637614809843798020257539920156670818150524836309550181611941348568911560237595780066924722675094416910185185052120222809127322411451108975530749611148724382135366801752972365274739356950547811493610819504334407256092235214870762448608458300850114111821740785305124279042172797713310622255750044584490620009680306717771871524867064045150359585882366966224522833936817191966511730950278762992164993957897290392791134025916195804037047150287668580138151075780674508307943848078614810117637165117078091557517296120370642147238659125066241500657593213986491352671885253370717897292858586545709201497785902823815824638275339844496887199642476993296132708712817036549924644553747203181288580034167283651028601904332148913516147496818101467783920369372140469984786549354855573830242282095113331871834171973327730480492561065160696745115208978860304322802378867640274464823066770305451124132785455500464513893021634900494212854415252397007412497177006666424670968951518966445983075964370509340566330344829834316285222786745366143806486941421557086863206905914124177948324134546478933621478577804927501659134276944489712491858504431619964943411160514754490660517311585801534432739061873999018309326551306530776934076257615849146674059895549913965249314024879795786059586117206612856467579861687114191856296187685756281197037294046736591402337553964239774495179895966468124810064245807266608780848653364816254950461915564358820220455578856724973244659894550238748676802463123494837575195683798907864246628167963523956579221461445587388894116170296490092149252818912443629165922805751119981723840324464673736151886391644344457726668102829395553687295095050680918388156516947098588481032921402252918485789502318704250851735808047028117845910051837379217764544697061584348590408851717739937837597220259341219161792855672442339132660750894004325451789539602344154311534961423156929464873243777287914832743481507601817702717081056157588233759988070514169931424721642087573396301198865445640522643466957427892479406307996664746717783563469567020629331827837129119781379003967544002590961424691659536162025097396773977154789899494903017796485993670987655429788120206085066151516917911641897939434516006387447328177046581908560447978157811094330631418349499635012440246844116433236763197086498446989754870761202818691807349401572002069708761873851692008267502172951306430105651314892504804673579183242374580994970673221502092015780154258719379392478630814151641076163287534360323095196176329944323433617860965761372172022339071847895598772008118084398891877661453937756716667059211491883216265486139909323136666417689718247236146507283510376719036705832685885026131261719418888102977315623101652526988559660394002631272181779376524701526925845389997789022843538724025044376497792085750696563127682127637513512470729404547478934170950539006296508958059140659541650265177124628978346327213233022496615069166930799344471855173881380527478159860733634185445513599533482441620420137851532270991334589441196852275266510661802585163025016419895448220747955376433662757096698836058968244794476526058394810974363157995380374714231087632179089452504059810200929940908353751234954021275118602453249184588977987982953402076114325288534861757136238560763963436454177850266952028123522013228271267442895886818385246925630906603014959864275482435493925396729780241998778620870912700919784145682914940259443189509115326242963623349570115034822202295928686268034700127573993040703461670666622768286632000646039994266905094597509131165815628041522642079419715555927991698009515238069701286060196565205972014511960885271505584217473565955104736024758816168069174931939958441603210789046523867455080829148752984205973070266344045378142058063010356376048819007104838913042912939522156843903104117914851945520337648157179168165281559009923938355041440061413629296704135372701926984454493276079502849602736630465062996169876906285871918752702227002044001521558562648080076290196009271368341559689485280800019183292370078401882739373874888759115483161398239017208445481074471337023339138811298244444257590198256604843211454734001545661597946667295638363580381844242485426304220214875994638535987487531618985494026844258632409988506766639163460061536787779980020502596295986669120598241805027662972805914475627586512351084499517106943302168238831856251475927303776996865954063964447863379182808212274720933742628573245135125699924306351438535655783949350763939364913944948418020652553196620857072417166766627584774176071559148406520311751190765749671741920057650301580780566996702356054600979222167139868806742127068549718702828190069806688474615684622357037686036589640168859816181996982323517121889996609755321560193690554347317594062536408967217497596271053024353616441863810575117445235331146644489477192983999327162833264024691239377778720141165122153153087939643635136439483493590015043085503295731317102525713971580344392099680067380735350154541279959433638855363014298290781957533413094958552773940770535120914327299500068435985250477425398586741243820744834024493773305004208338295900267373845492184111012752891453999205984803425764099897595223790511104992372897133779825054872181366811289152852649240747044790086871972272699382860610198450273504624060651779849878709814858653696484145507589784125923615088426317224908979566142555123855639841263225822137465910880237605940751524779520564291069875660467765516575760681728639793648577890099288160347976689337711774259252241094128041540637511273154902616594296011007643789553406246274373779249993098662807181232670685610167205958088749305265353022697585965999080588529125431078888309203261268133154997593930977728381019064724397307473069394503193455549050332702636323673610219257943776678238757500478284360236370788307839291514421817635287790625027010227834607709884900816889174309090241932596458004131141100843757670522224377932773429247418637408978248274222797211483680472543402154930507111535650656146360408351383543625638253174068062358705251102848025753861805015810858023990768412310947355401268392602924916649007043944429743380983504410386309348670463015221747185546091153283318854128381456859688394926909924838253584308917981874074597752398839025793896304060621682691766264748143546026921681428885093267278333892486047943240596846741549118172188788723388265992008825503152929146242011182560738641254992790055039748979096832672091261582971758757158968091278675786713787891801542052348104868985327145996471031189533080280734430642996115792153532599136229344285931433915316482705240209543346015154304439961811694953129349867157323357579385286610342916942227713755109907194496982400937574514167395235437842164994190900098429660577110962995119627715845089049796674315452586954331898383973842247149202769655190641861934107933732844563302941514584910173754756088046703915634218459202475288598702595873312033041749796674132201639801615801096631176820787734930373867009138601030080504095327039597068867279854505427502252763270858037022527785199974859375699568736088192812559357531781016937285405144890282663588749008095130622224041794812083859109843232712618344815901935753924263020570305834533488252356624017086758652805137484125279716351139603908019651984484423481216684366887568731513974226183016388088427673096888603836604196735231851854768877173462013447842329278140315407113184395944672988445877794265696496104177156548233130792996217289656569996877783451561232981000119835756881258330028103776969300307453255644187968791699163345943920523109284449156227150067661208632718645905470021861048534193406964669495508226349347541362892123092621575162036495483890190982020126256213849823629676414141116092076155818845487108434117367274963825787187780330254103243532512538878376582898465804588851526266038354575047875419784454026709187980346662690468182062951093257060282562331879473244186559576821059592309616719094676162992427589664552816961929263474601284483667374143736340345500726935087439023522487419798407579189350236517162748139422312921381237923446978611656911523125442427884936368818320079672480349274290396071218626623431543811237352485636914583240009865055287438711800780859771449071467343469201147402883020613656975054307866543062674990816642765235464867290671372410606941520086803282265880906071649474355410426964691320886162038138983853132352339129988905519009695979851098548866263082523207887158885528789501251072339836712459753450987003479916815163902595375903656657469096057340107039270683341291140737925084574356620339251652991969498748024898155015037447868156973791042179054952763780941612192027281293866155531452420001671765245548817915136744437003396937230762860204012738059898711968770348199846556741194017801184744794470579368401567136966309290501017329620991786079951283893508138211285176822678630597507322215844175375477467610105266890227144267411955605898624525343963638047004636013454202573571141882279643478938124002608983212811445773562309521412213787389130049938816623012020429205282241113593738255539264342022112076293328839445849166445935402264021714457844556034810374596507815345515477494609661010120804540319692357245747051379715027398085888104679078755177719873809179518479908357868150051338362857001520314457432433448846630068398398790216766592321181912729606077774878002299380770458711324396931993918835540250743156072848701916034306526467758007610891045288990266706857059734112737090956706701723666170762842301616023498343883923823292473420152691755066634865179753666380750789387113840998004432653979310558455431698887162478648825301576414635850207282654111016861049586201668808522363208593382758281525411138564697278514254635335333317481453927429091675695144589688332215421944483476327019491869695110407476600450279388467557394024221013323899620798093981853704258277470784591880486193110983967598484971181561889462362207243268254492068390466278219022389445162522689065925306927430727674856235584043083625223014467065074976409045095825893406785132951073042103558911681930483314592084837953284352811015776834286929170278978763430853823550151519225503174869115858485301792849379016281000181478480073189073327859506920758445791763888779839304696564583370960581631181706793331649265065791941569933428144029429899006971289354062734064966027806568278299276470507730829381390614930732648362909843471885194007448671384886590521123613309181233891439973468190132877794078210627587512317395217076409632320524394438258787913200992307013748840576244988476636115739640022317396190428464880601019488891732514108221561723081297663347257240481547225496526701586252504207816662572036519494387132005749260200222291213557597388744884234446867015811295231249313019466937748015907030725131342992815821051118262956561898336629475223862063531569760966565617529011882999831584532502481860229188882556039550963908162274220518068397336700074582363817006550991367961866700850546002619084502874552883653959951659357479869450930190366091759239042044758512969553036043499300091191202476916625259161343546239615403164056049107480307754706705431698675572039409959351909435370146791318498330443820488886296975361095835784375282637283205909905150583110091579818500716011922445584480902475581291711401243393904468644314926384213615813515247245731768842396313530801885575627722567009917946386771173473991157245221419486914937317451084910920120602734051993422627859200311116699554573084284028383408159860907481809102033876564078466143558077528208794675869664425469406722764719125425186608481018446526677339369384320468963050327922738151742887297432025098297983793269666925210621876724429203093024903773493108062898490407879684706928831041159255573922655604829474556483505037186662464257296532844386046263247124884851490719736582558089452921460376496378331303536267932670316634741194909182202076015378715930888683190471876641415484636115620024599582343115777725112164153004543628727696394532593743633837572602717362918791920679523020186069775479596505053873955592330411581941650900814443386126248346746326481799547358734188229505159075882301608390763186814351707068613860391129299367959802892241758420709154924061691437287453863311273588080643062074678596438868417607467491418826340138234875802947325783261116164020041736033830645721126615105108339366195584139463314191363023240318820420518945778166606074183764210692486226064702648213691089143963893654288968966252971973571393401436894995208596140439608757548163750496591326465677090396250511280649625153126975640611315014763624802007434927811175131104328509173261556505495933869379562982252361009785660824045589212288492751474103563228935743070789661794393933365518552076816633157283682680144457690704227912299129534306336917919743567209111243125394726452487241685205907336774909231810548751663053765083679393276241076499936651943363880995388898424187110874667080853434494356467692492178868447308131178113393293135769455939681967672671120873625741409135169808923283116005442658738987690851627645153202711569214460730406506764239842187931694722946758286749918547516451599590647488643539179763732222285519586134302225908554735725369023183337737045196746503043994413007507809854500454875409932664663061952424453631890809089783133427639062029674669751179377229188782608367104821545534419248520757860537864498215697324837807480031034674871994374107597776393127253985857989159200158149415322664026373033257688782554616735373983913151263074326085239199511345134237003889151027647014336120433240289309571767349121587814453048090007623595686284298767332518871936176874894694732776410592058530492773926071183114824639497644626461480326365722014272731333499394128170264282625793763643967270253597717015008663943802356595021238554058453920964036237326299645528437152596101230935831364712740986805599487405572926723056880749947605889894764005325379186922850118478155600225844044599256297899000232879852873818727226883798170805315453180504585371008702083805990509488951300833241913572920973093379337096438076430275513211868992765281482827746432981102232345918206726068537750110764212688750345054199725664118769380361887084780111981365736718808845030264933767080863524888466509902990708835555679326946959794550893424795821220188486352819837827904709556525688380116474022021707146518541944437835129180699985337310607647917637682998424433271378912567842040527938178350631124323701598298612044752830542316518632848993282028822839768482201418012698259459687221762577810517014266186653595957590540969137056240343915356631735527394874872899049004839432470492312353515608892195023635901295046324986219354936837759845871792649803905328431269968722896662609761719702737939199650446816541466286749100495898532126026590987728192767908296053608180450292760074044370881159989809418958415173519696738875340469593721387247015741592205648446769875215388238501686137169363753700306139143465112445455900088100908861658142214615098792763028898837318039279925386022759889574784781189105907621999813376763975531384414541556177318834148374451874439335719262219638112177153666706754203781916009329262669226368983220704962597595485254009006998135473730731185140183435780854661234167368858376397768757080787642127682420484910427225013530388561526449759476231710210974379869614082027529824911273808520085216104781727421108219546267098579605130491807030639097725839850007855304623657753510226700344614797390500101676854373685956493634573713573912809016633183859588386973509397551953659929696497054285351860895888141646092343930245861953368933626801358669510187345256301316758097617798898656486802327605842987523732335549262533574693896565464806517189780316814733642642220670163710962927468075239910734978790999223604487975798808046094754626042622423933418685134228776721883599184258225414351716422607520529300581095902989259362174013589473256319672339965929004581018717978288073098504443253461487063085338355579777244850961990869342089052006323299695342192986481915015418709052074101923126159914552707751064244016183854794941387396700425287312636752028943420514378190997381730833535688389036287970934441944618058507302934714881264541416226316122728247664018613030306324487656805671836631216484498997121767403534235062972044832680552305588771781943988408635690875335307516496307967827016605688924521055952205839534533509554811427718997223974835434244452104990686063651072514792586226224531872020509814664840811752842803204582003273503748407094140084703798528506640442478550439031537402473993698361105133260289829589716936649041377867018169396665144447371275760386303737855026888545687139424812184681507427957021818030956360474845466704118852949458713956994329615237935224285752251327507491859170814250736823032442090501440605510026914606449518490753702457999497503709219600996463311234375071808531028981663177736180307721782295639684818227164016689394762952112867721347651635986899450324242944448406072679687831957684252114305784057250596723304902788245987717874620474599342615011265832564059689159968716296145362187072225919321059403769418033476070750568912813903951074391135738736995522893250959490861821361798047620106208305904476893187010861111598965362040268008580241605173908692507511324698677545531490439531007307910977045917887680875372128888264904604254966022978084012736165765486664155582266603529385433947219407415766768096052716500867587528437292474777757118741865623418857595354492533288642068081903134812703162524512167799316493082716091792190696044462602872906107365775534995227159718176292812129776976430349077354337902371437486150424650212891117357742987616388682981188911790747009817507099662911801967628792854958797508145999911885208201244978892635652944043611198764499966299889070158450854269136748774157545315664377603853721481243719332457504413056687187818284025176041931178574778561796352547907964954776096200599216818103734420598044893528913295912409995954045335026017724965931786690873001442515152985241115490322342995611849553871170087006984900479434720368740794010482033057887511590308765522870229944429447738689760055627327913599266901763831059655773308108107016886148558712780685598510050135886238667561360437087843146741985092794043458757201161781934131898765811553916995086978709605083208330392039196719761973624268946012403209174114567028280266271989938851680606406060071035508132663636504340078403075199583193601596323718627176496951541700378985632346380066454119067774666937050209171285284084974136557205117631276399178583495127497061959521542979292211408837074786054615882777274542157685202736980323662433166744655345289508372826792284340168669973825037961170340224050132406456243304792959973916095290943109145274951848182147815655168250700067060218500691642882269641194650784884954595060780378721548270205773321629640782517602517011080454519893687926615658553680455502575665067402816385245292096281342019957103480856572207367752059223261189265017591022022158515438454834526609274614016887115860726598121843973851978303092725154995989730382718835419407336068902571461355745720358418269702716416838361175553590467387414449610289957922667063229420580019519358422093413243364035652377303683628835098573626522209905627912385580997933198630859001581182450012233988389149162294238330650848805403349511680287311157316363978152695966516355158088062690774700008571531471283888558594735660704652315223705943829907845193925816976969193192131328006694005306755730889210334949566670411630312614883357647371909183136182343252309739555029496648828034442783766342230742305854071566958737203945091362971057270851611946406589693888482134538162131817541013906738581821174322947284177297679618203601402426636828775791016913173973709550056162599477325820418526438127608858868087267128081058310599199783050240071284011197646158027013653991541462642058691043643171713310262232763488497770416259371687838693719617650342754504685908936577875476024374874182392135076474772543356314866812224293931224018835064959170369798889414285013513638134747554614291686110484054800531123814063974405985045261323022349408680322878453662791670606319292358973539843026644336840477449376241451326824487275803415745831796424191294579737420430502494817833473231493992478935790540963296926384104175860158909776557061778078839461401315656633541992705434788370187724211490372834258468047447130426395994591422987018809115083608673454420001102282044259939431163719283935637342717531770523882712497019860100717762809041913961656465162358328214943774110488608237393544036417922248719156254442299570546529035266340707596429246849651083056817948555415881024447292764675223557113790148448072370214839309428474704344503541209059055699081339006504398574211188948196574912913787382445760268306020321350672458250072944414390402529527196876273409502384369805955506898630355849311569987540345755098254724052901919109313138060265551904660953449412736372335124988826259737021276556782708379204206026250494496947606916890653021294575016875827893048121287665112687712388484364864880872565973391024544029069561702298196740257483040033727190933488587522150818497932150919824695042229441336155430034455498855426393285342057309671236913859752030486830712890215219433504472333250590916069733085359093302848265009606918682309957850892570446101147568523619462219165271872063623030294117188809468395386809294416209820150843069563721143763366621995560897818131927893165976198184029347972610416016098078373342522745392332695448066225895355045080847304722008222892322274949104396462859412271199793584456685296164137149337338394650256114887665043488940838242193422745992768268556473029926305030717741095555055100690813778973923784306361582361112048683396875125391279228376056818538977695254467563471034844158501396130792039713674695313883802200499550848787241205004871987829854654152351116943023643575719566420454985482702838548733109481638478994335744895106513087649885839698911806696732748933460391033624051126488930607831666631801841338182338284200133134050227638707647845256876220497685165808367911215884263993085418629747874484568972966670142405671555977955252921015535072356002069603313595856733120844666308251955314756271471678040252700986584893459585796635828490132851631518621294322726941174191339435242261981873480861161448736079587979703836030505873245765544813772946184176494049346977813370455703297166685841823708140230991218366161994724073676716862585701242334478480983057903239684158156376107908537299178036676970558669021759263512820235719546421343793166111956035686837711474763231488933484732969808291025620829385073429225530801857201956272506108430874586359554052144097763950531623127386030027504181591016392500054614765605400003900537274819683865401157494097323875265495940190153040277851007980949136624029741130090532039328577560306225935540568321484102988942333695262039926917027366938133470594088437677710216011336705156346413918025831511840680463649628363438179219561985711220816085925839009909212869664716876221670358994134320644623624466615111918407215025116254655027308532951148515488873593555400978835085495307464206924955832708003726782989677320579296369086002258719307368525970856584622614748898656007228680075625948838259084360878686085779826832258794478536296720447711258137006063628177865910365295142845597829632970357252611585902886234469694386609776466311953397113343149162916738677168420899413836417879711872059488077958382498806657019543699704803410919963876485825806932846835150109001359104470662388001023961420052510001984697000421320709600092176817681724782224002542494223380242529868497616226256354193276512854066194320202554121505588537035383917580362465675409716035311333314771342711470471898624560754818183272518420329122453813127036173060025020557591046537826121569114963081755265706873965317803357351729287928337679285497049501639036510268949643595026165653995062432801564702965654461571733338160092103082747296727719435787328562542017691061481841510312211178154044798005042262009927989304116230242945675125872060081530481002452556003075027431276507619731272802725408030952307486164411234752673134002803519303462528378411933786722137358132652324007733204626914867469142939153161914796254561160040924155933302244753932893100667940591138399837146574736370795462951874839005560632618524002613098987096498599527024203322957935098028445520542342434111939715812971659253288430052036224332476551887973621067219450146352274934872663772387693735021470514033843914547943416020444585764749148467076023875626559343432435834776381157154413373733898199065707150423442820680860941941502943206939888249893094681870949626763083075957027540074904027221504007233771929092279944131824465482627046467810390538321030980361130114965286394564512388708384009996703754073368627210220602118100532745149559181368839501592009380959888402980944016080078666482352729616238878647345941181688668714328313718824091216795061212907833914940691877616682839807556073292389994305115143453937435844339287416778257296079673933123856903033638827383567210106274733299905605507389556629412125917557009269720965994795672984989845201800075758145923723898831416603343704771045359961655486757771046073822361493917878765375612773528397111506110296981260486735151198227540462178618663742452033036947190472895249731747984476709531395826030507393588281702020024707547721807727572435821019607760321356211981590878966603484603089653908644319558308167395786375510197417746751413299510450167330236375968572664800031787632391357415165080740506471171441358886657002305704014020508136536204295088724196826769916879359363438077016699488334651465803214478949230432964163479275254950587248306703744368862098257427991760662858853375643832267143345769272356944010645277903706744299003069609538854050424851171261908776649622019303191993944476410420695050458036317556763355278044683870902656410467958896781411787871233352938950139958702779867065988884237946163533507566333386914326063751359553872323760464451186086701967722051005322606158441826676402982434192763456044125289005571390139554520289835527046982304358330518958942627649697583240371648337509337209025466713832664908974387453167001925540715611984054896995159530382642738267924668702744155661395324637492722606549837331849284678494633861983007210128150806293894240938685348305321628051708612991993231035877588269607427919184348820144094519267405921261565061503501539202372181208438168591528815108364478472202035153279677770380970717912428610406276104436853663720320118578258154566961467897413725024375945272973912205492522665710566057415035813242642651535173369642313071509100817981723161116535124038180498924991798964440471663137630397332531213643820173246320346422177619790349730393988825724964163302237978292417752680950795685794844327963366155925552123309008739514339582596397425612750150811012080708924245918060328349307582638253718119781365938410057266081903082860860449400785460561912272799719257334705566669658553587836526549335719279743785762882780656993014766921509017047207761963949972296746683640125891921548477819674067756116087278473733240456619047905424519472044467382955184984871284411964127635196101593167388950527124694864840503892268214078139656170007744647901641541748863390859484959781172174452115129665629010567795933795312907847312169635471145841285314401840609044102922081951018250419244934976872321796290869561325766957048628563152727777424211285055604153662983871014556584956698200655094543233033144318521214554074391152506757094115355292964507726226542024230518926639657480011141772195398135269594364350456238081675480062695887974264672666096896586679339138826004104963427081878124853698298551879589545586802611701173132825539980980993281093775441213197838329588436042425018190127097124972997052880421945542837883771181591244587322407819353716233658982819528381070673274123106113922000241918682640758731204765693113442465495533608392397733757360444983250832839512705318707151950381596801930799309412614579048120281985667854710977292962884939233465913076990240094600923970471067128275653665647329948415829493678874457537086096477509525081170307269533022478697895632982324369678698998437827010546265959310803222249005603006649985252023211982262917714646650125422868787402916091844281142664477847328497596948099924433906931940265460957725337323819748677154106740871336302407457887499711297424592020100364555969733358826791737611332816394907665048719357987049754158516907258794355825196572157823928873769277978117897799514822664321289341147818131737052140110736382629677779474867006032255289367506670289026654627327141452585306677440207127519874771120922784355195573985041308122468303576242205656084884942297891662165850644956643333154038424390409210086696449052545188307193078181901357979388279327001338163280203903827508305105635980520841449103143323629764406093469061271851526354111750253628501681514252053992873046553108537379139032229379768002853937140156285039738920243364008355187792089651487910168938069499207489942852196122260231904185092157334057612837016100558088761621601660569515447814105035860992787996758441986611497013151421165313417979500204606782180199441286570946180475825904150709212804282522391060104993777598393900596156863392282134560461555887626592532637226026830141946503160458871786577390621120044071758471153565065271290674458987249899775419038824425544961465228616153068093805169001066485643401606417795863474448706193111634444495240656482732917744383657981885564568993634434042870279836176228062457599508786159697238924952006593769344811863088772756096570194008499724409514620338391492163618676077667928813539738631360182803977517611228830291278806105457217252786048026707192760450734955007189370855083422338813054911791780573846579410532083060651606292486345637463356129096787317847406533244197555239263762892615871155757256876807621014836264475347646704695376775865883025570885079473172447274661433132499242981116646568373299433672890332012429273723995236774879501335763544463757248857107314074865648389716493438661916985821584407092108397207182903733918051574212526416744335692150253204860922333561909049660865353871789850325359748437972620849144385799621700540901351242099860247830789377616111140216657500978094714177110961819095247753887983272326982658978672073713283246239649409333161394469172160171915531373299093589250975958592584588683047863565179737794763816181367052897446866213020202468947931733274966966387987183967028235785220877618319517414741894163414811632705400922873389718934670190851496233937976727417303744130357868806880946323034866270845338089847116120267233123622601423243181831063102745605054100616811668613390857712026008882286517698333904137641201350065966795760627285936534681311843058986626502915617868989173202593919835282711737739187626631492915188966686803380679062448160338225415242508117742331943206462910681641142926035187347310852433909223509560802231805448497852777914269952639571296970009889507690599479628343721668850798241377454721049095159176595458164759464176605459451711054721966386533896610814910413843265277994503089007941836100179889984584619591716397058984444431734445911552391660673532336797324980639523532187931328432326381784744870905740722483541394001420464198056515345958363483452867848659770488655854452985936931788748941977113821830807277447446879442469720541262499896943671377507187555968209808320230251682497709033414069146916724724963831446817517861885484364624032133811673682232782204853730925447006411964428767312192710783226656476950231480265195437611261522757509215755405412875346808907888154654620256892434412692340311537365696648893996060133292710281314292350825070426509093346994988408300543209907338008322316278066322674874505956642088589071118856542427951701846645524078554702023819688837844169880971440985584873039071246172926064662185489308882750988701815718598688344387329605890945303424190860691159255086104678946558857666431195994975914082382806437230533134177880129364161316277670181795433171265111199791265611602616288248505989480082657900028138655377483770888986006606395818777991265574743616788508543829491416214255586888375866696057463348024923346223544508986882710932045115154014835513872326928456652540456220087757655505557601914075161213597359944874642015771289021640891510379288704861317076763131837838165201798530829215605149759601140818714804995951693219028480884078389961101544196471056422958533038807052329161687182928523573221653312133134573771494141523699727775148818335427091696576973696697614750692206669156227275764386353266919054064906106763381970970394540320503137431269411201535252846683542549140614036158669805581210844226095442996387004441556830002765804521908954904188021857946063940722339964574608798087477535419469123477446533385719027992190097016011106055326897139966557977319078506270778747000992888581288725334773062064348726563346580292289971992413537230425514937223977797152239796801301558156221606781172316800146273363317157512966417614078673027192959679247570034397367625980864044842032535348775020838014333491211063399180546386683079325258252895480167712168606373477965846787742950903594965621399870552078918257766853469292060138692976095175265598865318234906611861142482485607683894846680550973511104179571375580373616187434028079322397654741164781039145039440715545795095141272859735076377449091417249953190098831090038902545547856277420724793764259299218565479966102930697248245177293380531373449690867612731480546932169851033813998425842937745219917085301146382148274858399616536533040412666901066750066983591542552407069411090812308918841921398526129609701843754560124317712879145900434328538254264491782778460699538430829214346985291628022430991683368887443965439347868794111887285228991524949390843466600135648404749675233071513664777985382292537809644213789959481500638526774451874972926740620013539688549069597289635902546184460009344870882009851381656783213574301069368967055615731487014696365528841196892524573142758683592815089857756068725652527557241699511555834699773998685856669389417999691656795475660514693139288717744849785951899545959811380870417940148317029595624724750277445399698328661137414082738852045963896186305161017770444485083859175148499690884487570497292025305815196736861311966593504847361721915207279076840685890467916245357697118325718586672075159860424870301515766485415425844124270806229155345041706560084070307663475099744009569934371824630170006631402608911118486850120535334328392593842313381018089417511417234593065802818536090008785905206914234407814212092283946382277193729580401754173529721435486409677204983491589191535237837477789647333694816425007756362884506615358453607136371432300252068382761618518302255664396208049681627890596260653184258570789472875556408701041380605799342238615838206949512689181512661571854088670937964624046949070918472034915028889894061811185436571247459595172450833565211476015747919712006932426608933905797708550189762604769649616940813771176511748406026475056646084800905541171308028024576833894948876703771132616311858181516639202342573468373727865161216870245039394558426104375497467288774023228190443520403127048634103149717696681924488232309658208280805093497047040402551390878787730821080138992735851646088320363318641141586735569939422275852971624379775770320596199686608410870671226423899376476484679823252256373233057177520380458319523683185457277677201127074008049796142921908075640890158356580918340881607351109584134390219725215684741738847876385316963246338891707299787907256990734402322983883242325151157703062356775579956873153382966466141885681327814001081744737765049187344526836013819880363849067182428013543860097292579736812246658119197556909603560698450188207782435799238121994042615403636367212395411709815643854019577087241772379908308106993222449169895500659769763626178377479099243319545189521286193175618453662730414245141680356998787695005228720958706108623867510293251430785740960565346204583343440451172225878639058333346374333164331199091555690617028065661001667536471426454458298602954916260147300905962319648732455033566299923619765781344382389485944006237188260918923472301082928884401856143665232604276726911703022685219932976346631095298679379126297782024744305054646847584051789811846003182080654621448690616579470317063304752336321765892565407374740977834307535804553784639449522698342489915913743241946714502670661639191178701097110594735297714636795709225960172517902085377404799081019121422900172529414226725684363844009971206637790604759389779503100888945787772766754942573480077355180336681755698832122759811684186748087778062144767414353832171917344252023701725328412603686512371133368323478587257017547031221589197759693320510853874205802784380822926931342709589504060266154508907213518814366959341821050104371553378466474379617420175011359156309160933688003673518236171152490768393721453068219911946922007416620961137482287731612143559800169279775846643642440612524398426425257560362362999438302245480769099062000709718071524935627872899053077123160130684640027287763924232425776352767539415194638968854400322610728850411903271650284959677225442121879413817457586081275317900459100580969019800181325527559519911173394239476710245132642842567182680613940959202088021727493476712278557318969571993701314686778578127007261548873997451691389559916943245605135585703876650341658816678743862315583138096420437983396127112711282534139702762136984727977045292259369040933790773895675596476581473326509758875458776762806946231575426246809392524656288429863040835138752815800627723106200302358815324264757058503568202403370827672244110840981413213271829904026754199363382353177623599388226976011183197326026432831302850009490007438654392514143747230015131190098980993528784592825516533362667687876696140107942600684902699517539090781176354010741127188668023399744638116278839252104965075645275331291987619907015156507239508777073906738436023919546523193042735630510645642435135273301573278437459516746061309675659102058457809971146568143012738800933319995923775461018552574435140478972482199734051903012822164536329868579598047000886321178869475126842480456473099408161844710546858666119322051077994729242170707424446283527540849066980157356981472130349544462311182583630198439226390225707869105460284117642960109091298391036945543563484666362139581852526894005773476476361591032141026790305708618818436273352155213694097306125779383625702348318136969408669992879070231094513265286494327441360535122786803475968344341743348261121110354873562576566693090419308869567811013206574935689464554204783465944153059252631171689803240525692092510868606050630322467747611670913218282040648678235342484055541847264783428615654663261606773524996635255123274066669633923361477160388688942015951366145705012870202002074383719726719603703279650511772357237648332211302941291001000420947561233142588860970776259189122952896524582012091480388873313200010440741697459948969111405968889483154824574477561527615399174337296708302708916512883612433592517678040980193392729074527927570915843327359942126363484212042044768821642356478346495191391519994524223928630983873585532536164055343705445982666539725652264061403516757692471023933869002245146138141744071943639631662684937226390461802685479124937445328378643661137836012225426613319561339792761251259112604936120369456045465369340463714742835422259496144841438023771150420538332240615348695404459469444357027097525407328787592237753161500495749950081522282313658280354434261567465766897057823184954113345914626897045300190143023997224639521295941410904018610241447961544461672691809135843917625734583610866747433948866913514749980100763819654262868622949666566104112886474767117003167202587563372687163018624285500941220241481531921430706468005412322034175224469475129281581362568942619783984382924725841932031128209418669871433685217517625775616122087895847949141495282086034540728782514611430378866810637284388467575068147516255292415698058909573137790660992696801665130934132179528206735079908738079081950566623658778805397758454807708990289034712346643952860799356961922662398759819360964867653292416199355204686135847685908901017790176964181848865248906604451521163040385003275392423331506784595381726892557120865105138047049394583051804193892888101157228596087228872978547481654724677509946978594557308516220631869977193224235425340469792550030852818207440949610168533864215206592281932437754277205746726183946910650972152675626745359572845601732055048503788782986907071427296899376795798347212324979388881011188918548539730194080118314734319098873549869359213787357020913730160803959959122387952578590314637894705909906575874157342339780614570857600256413527478053180422114406047255069204845207839794003702435410120911540873237824325441599653097386374733581021939647852800503930450607104488837327182661857000954164961018410346698691327008037830854269072512307177921846843484409179013822113271569633275705672069257259116460700848865040922828184509502211549463873568248294822426438191225416059890308586001841832116014352600970012965727146053989744079262035231775294448232371002067459541716610266737255182263532558328533882968153244604834005676865726920969944166050198805561862437381165306362046605952245588648913309073183456167041728292992505047392834731145459276760532060223334181949348085360264370163447169268362018490794131838120321197245700332346030659131591746214723988479297155296304734370010477562270928903322301693040043432958651953088083219848939003750082085165051354409058851445256305903068901722656724272166416962014565069300860328053141781755153433691195032489305937206617314672944798110645095486361373944536714764706758417853945981906969593083746327726866080677079625198932594234021877182186879541697619166066243934337081931897384465150414560922915613299198735302310688992211207287462040693903944299712074302320205835377083974485863768793506535070483258450094258558580013029581352119093469012591368680580839343340898265488591662986748648376453654742188939410268012964927178656746732112725445880806232442891831492155798490340075308404931642991253234821837404450837490103411528422271557706336619384619991321991722005446888451883059874020677452690093740014974617403577069226523568934201894635648321015025910621505101435076378132472892729322115070439465300513494859346768234457630060964841612723479101541217467215652355083366995498384902977552788181295022487150353118851047885937589907978465434131430196241004744834694726533314478666820287856103726293758097908141727752496929924956764758162238001319316376054437377282313735894756368810595076081993916255316668232868939236754341155967416907862568526148091476076008775067411847748696066113871844562858383965498781257663278615257339257696886769442414364215851845374515260505445054977902312523748554782580521779839469692013621506421940302743486711451713605709977599290856558504095011449535358310008843207434174453756197732039255442524418099453411510198294571931353494431201266278497874516921876265581360505846281624807125921489031728421397692767685044753779570003108551567215576578455755394591215229719801334187941541735680469413883515275285413489330826730506373262276431183507232434128443747137362436232004444725019566586098751552359360141156995622385207553558729038886726860121315684436148222941829848941358127096638914172284806408363564677923941854336178094849580578993766434566758019595743928405275475059062375068116507635822366070677474135683480241454265786165439928004594337473085750378788579517052865254037251280081802836583450453347122220286905715365673593152952237797676611917098443430525905440025595480717484619339183999554361901488564060448110627430371445319484308517953249229182762383704098806612429663486320757687614286008335983283371327884593966463058460558072464931503363860463265582295648583696595339585434844741519650115036872881320443466263596924905758091111701645448220117304911008915418208102477651258154880428137113891529008019949350218318782835559254518013110071757200300100259877499854747048961879704911817569317105831218146155349007675324874382277539896170216612682663623027643325050653153956765126861142952794345645109231081580044436794960243114707031883450864857504716016251718918858341423998041278258218458748868645388450324714208297644103075502792284059651938368315044730456818907258333327572806115182921595469284004415787284551422749685553432079435388479504232094477939961717808498005327593463301236581427955858933411852330861496143919262175680603909095572874221753730599323313749274348543513193462255973628063466615066275582863033395852769193598792247598059217340337334433877902728332748550646835987648262552860765198733021703195573471301308224319967594996900763247185958393274617476781694920311872991279880348776962419060290619848817303462693240188124182554046866933946771253912690378056460724809695689247720528315269033449680532308178541335471229120115376222204802846813234317071658336658702609538495336337672272228211210592978181894233858941981748951637025769570518825708442980516282722655410732408000632950396854453050130035022809015405895813517442103791592405088819490055067082872249981920833753099648574090070853314549088025380588097474642264068987116597910902877615851939801124996505318342088929118852968806245658389668839671401378253333066753896912953980876612984682789101831260707626010401410196239306176944526548218811430212146845507585546780716199365242190147257991906674486046090341250981762782802350487569729640783559721977970978636435796541668571035555323270692488418090698413316695919787425778169430486033867758695300849064666769171488988892668838642393147552909009647116704334913985219333923564683858790839128446673116811832335595101102919671254378160452595898945456133534706841155698713541403490808362542844928967233317321076566892153016298584961222495941650191686536628950537228068590274817377985345064098707099809605681607115841774720251565160815520318807473273235304223042067048623879057325987532445017344091047338788793612469394852909125723728879564115659626541729436229073207103787970984532319090679820625994698377460881132875175206553527095716626398156853955140999984242548592950670123245151370827377977292763545714204725891973580180352775140079313195110643269529837563075808389473436696778106275062396982529572807053252789228631631532355355725850128001588098404795512129844931778314544270095438239525879668262658967804045825874285747696733089597143622768900104634380975997861823371793842408249277427870342945760935059535561974898451662679090065573446581547213307205703051377887876599743171354535971943827365787987659627671270587459228992111636942822348452114373111169735673707683192027499112081147144518907951048820503117973000484547568073307030137359099406646801907942754886982237648139089330456673073446939241585387096575717545752967026973038174603837509017233610737664061624779862801697065046467677460340194046450364143293256061268511491588916384180610414309676520647732410206545932749903042598336538342066002829615264827758698367310225515507521029464546516297397499816220344756990860843720250228159496918106539492246545482747476881644797637311625633842147071803146932083894340741652618639840988498625956101136004593368977058561742681072561719836817180744592243566061565161500047253269566809549522703634196957212650161347617341351024145855522118183345689885452083614798971782348945021081311020475445590289617515646241415440549708789444543046809184331859243852178369170850182376550701668125686155068126544815966399136826208235982155164276292886710171402362343931468216461191222212085384673408960316014022622896599534224465611486842098467257813148771423869397572474575643966804177523036088725451757136299389020473605448040551534341607461757996325984269273365181759750183136732323960938898523049457821548996549452244542694739927783836914451635393014614279912148342832023242215882974016456767694252201271465880601662861268545435568172926612203592937472834207051505294915187691231149256800795518437171540879725021321687825881226463138746286609665236040293460884962497280225145022971571769393702848880624318904611197406539587180762238096433442319752480811465352695617665294782157148112050589632318350628924944112939352511325217812881659967870695929310479209151858891978182759789828184183703235303408985288804026607981111857187276392538618474372033570735336350106627257683165553520335857122089763059815635954633205617087026513589540545242481290165016845839208344367616005161614772793706319605718841454783136407041162987290005711316720052770505392795716015488482707858209554566001731694035007891802933729641510865583365971974894298886592453233700085623804180671967994064668389971409314733666533079993660011057895196239680209871403650796210997940791492647813532692113956874526064506064790864022098348277320383237446954499609821170409064639338306160870100065624167559259291884282970322685377549082043838320574656661009932250060769105092424455807980937444060517789091894957409850312290027590617939848497931980571648831865329176783104511592207992035499451149767293030954671380464612252743547153754293965065219851641190234720295096582375297721371175847114113791064108269147476056943196993606891498712886220033960178960699825518168274883815458956264163171273813842361060562410063120223442504373781923696127135737522944109070777063071396561542514498985591133514844874585437720635093939935937453152672974505110684233166072272094244921924380437966131414541645650055000214437169053949728256133790354299426037608487971446750141504674002884765803747624102553450332152309569256850254844518430677676750211793201723569622300879103135517523275739098715934050573635854689107320204048456788579720390885462320660627316964701056008382287967747064480891435723539120449794760933410647448156887130800875847744819748804317290961836751742282835051408239899909935602636761954245831606779400849013188437140112929923628735206455401944891945900756660893475836303417193113106318988036554519130569146083810622565152001800947500347116720937234402052432067676235583539986396608476528020640480626099685961243229977167499945007740329689022661179136978732616971494656974373172166582190425268965406956228248502002513628783035096664716438262138467909726865771115294090788175739615451310660922711437664659311372752505001777342884362559100946851262255362766010502303259711037480422534043659174062190530965249695768534499371162938376515535461130451353444093836297261630203041345838471418997023144144390171496320711347610404410295448445543913788165069945489277754572686667504825208623680891048224991980363298706254446392760879232500130252738842238367541921183974672988439627058367723847844255938122337259473250147376726158265521619409479226719789089566681909297105658082386180639461640817004719776744723837237206289085613369940778328668052311926893081506270271171478858891760991299044959662551235507812000064085169456054561611020307008408396576843238488955132308543117430888038872503723187951979374226870298380240130973267372879308175431079481660449205147592004624097426637791766675967430764462031182237318589774349872246654455373062452051525956733782393160644558236786030322037997867022722237363657323108617447635833273658770997029145406163132965266803357977145348360781040638674577056600228593390447051186525695952439019356201265178916688238038604752821689854297993151179747693063008238545176683614526400557750204302461927675035387632131759394380887244939101850652927042414146758691107195918583970533976031790498229083183475303074601251594861875275180508364406834512887385604141736435141328708329205211553286601607176957802994168018288805094988019221595068711708439303660133909308272744526246509490588244917526000656282860877670691626584740591468304040203840582027483833966892199575481299714350626907797176638637116489358898834346111675879754530176446833708247880332346821745595824419348998708232569155497997623387824185833356715433422815587345337337671179781255597683655604755180922445573967875890214654631688755617005942794364634354164840939635165566080983838996356767827656698443430266189528740446394150334617832476602038556597013600757730383285954990657607121860241728078276896555068394054446847257110833851916218987175168411779197602023099607678778513564792830853757907952208178828529429496822604197935496787302984381790988508292358146872314903749705774721062359189730661744851669061805387188540994255459441643561220897057024459918233717447626194857091291970241279609692699438798416972830917270037640994746430072179292902708534268874013230110517256932912143731714116500861064256479203648397195223735863302980955188501534798216125130172603971142774778615367591820624454556505879594536011791074915177731991513351698636421526974786185926963554486664272334687674049043577243311013523112865816784163796082181577130712238551907913530248933910025237205125982793229295940389464926642152379990107390274953061217238692097365539866131894341788982089630343909062929478299058156354280574451010479809847835588387895998076051044590189644675797581610495916356161425907533677437802785605319221326660249225506653284507041977981962481710365338994788306077692805607346413758263201698184086507215486645738846379362700643803777902353661859554994380024492341777851321404664475175399581397704745539957621606985390542372989494993716716648649615130825231861097856374357959456823246584605347959800059128674070650160210191734499691492402876703297760255832233322995553345129789024925864484122093273990504098344369996055980145381302249058498115720954553404438255256712238113664851506990955179639909250684563993284460154530232583297558589792499730592511080563820643519036661225363626173116039646298223544084376662810870536792891564417875481480521942310530942556195868967342161252883700288202377993128326106977600694478903440201872958287472556089226089098631857679257325669427567540784582443705863904596082594127144137963190988094105907612412855655533999495085249077260878456273564058820851618148044700036739458457797888550936046810534200526167542978578942791860267599102189370346520986127701242519360477479939386773571211705492753362324659696067248607091766474441305350937177594221768052301961116912965459638479608464135021245021891985069391210216390415074316209726338082765141727380659778109567316978960330047352321928506606112459620605501546164153825953295988568922316887351636478968763350581276325088559743397082486915066768069358670291203980277282752895205532030941290116062248255836948897258144721571972724729725421952705631241543767901297074717808930693496431360167252176713252810896722726113835649168851328186501734704417774954777901348091539526420164439665596593668174727082491767667824324509658952479219528296338184883200526648794378384729147635006941649723073779101176505550773546951505611936294401744593312278039953561201287184431062760454513630887649932240937957822450444635542598043359660006918789003147623637655614576235077326199223910184497524209462640070505716956936524458530799807758363385437516054770880207991136051710774667204185340899194203405246832453363049937069677142817345866440115042765441070543697831238653494962543835095262101880977637835929370914908278209501884724645145479019136176416338084424722743779226262798646311105201464049524614083683174727252051757203433219108493424262229837453512971010790790483414559618917815003352058088361058912075688875927794489742092777839123355528814058156624710417547567240432340341073199452647707027706214876422453612492800626018369423585454227962887047546344586832493558936437880516297607654758166925788677471518489567555987647316570281533125608303840287794434196031620198573940485303240702869966477813730413610425932291745215505464597666678462895067530400793362788955570128135960583591334786953630476768508624264947168977625676081228989253873128286836198300977019632480685467591516910106497544667572373172783231171570501127370721094798138475233447787177845273901849381772533169287791138751090728020037191569201622997885695145377539097280189130921608277390919777169137484180330227387385526338120660761588757502829930778972485971652499638510005572294486542931541899004793242337917946022162907902949859655417418168726838228517146310502495932821756840372863173662343782312261146627463487089519513943564755236139207018145186623288224579727140837794305161162292482034106186249778752240073492817881135757065805213426213611245812855761436226327524162247907351108778751536375604660603336977042169050832142152624773202143870196681431000346145629280961990857506401258223386617224663365269818831625784399427996254770536547426255963817984531400430812049197289421919856145509310431152667721098295812371554452240043242844975693895289429939979889555515476173964730555399163746871246259856163350258249908806235057427571981312453118710006863947845563750991139419765098282512083977964469031023349605486535744157111034914336824599420587801476697418977119470064660281356103554698186176039247033403672482234847829248633533936457591951441563028611863519146561532949225175319979627292907997557662861999335866153014150796982461468533327655107471596110403193675733788579694863641414580087706385614294829861174477083072520849762856495216201617689360456289502903344834217907053485224854418736025513976782018052415913085553850144378594137085433542490574496459802363952571401966383963022977926999220637672165220105222818855628939388864742420948251515540730181550457797473313180201321472341664908366842439155339283975703571106298169104785062646444582316610370652924893392102489460010547762171874468253245686307351951747845580838912316791663505225692372149258200859124017482452035786561091952998490317798071458928907837396887804505448075608282195728882880239906627180700912899443424089602948420479604835622229426035693010469453237568353766302954425066726624292258493613939499816880932586267710544052038712397748394717912103073024317373402350782611053802879480460285231552105794325463661966361610277777253970558195789420973599043121510322056177995371697126175935414604740920206668427269850567912107965613302870811847969887913530221098544194786198077638454032159289340554759836364497131109278978573672827066816845599878653843818089028231816212758196536805202807237873287936806057854113238790856197565242186632388198113198839941999070683468791866368511204494717169038903357897095286059944285778735860834198341692418457414632412663535401318775292093935854475889685510510887621595093028512275678915652225179795722428932401362711544960555127819398980034076144206606228024865475100993653893918505849662517542519544565186887210022675135228549805932352469675466419200647520513585808048195244350136801169296113302192657468646611719070025164166721609579503407042633318775071546566597238380005431569440987650702606574276098130597505317277882784422396775821323644206789186436438408066733612353819300556369667623862474240926517909252337850088110751259905745043912197359973430806961827323293896552582971615388125832089895261212811175049563953506431144752292003558799253136225783121707162052097751445172486848674545237211766711803889148061588823512510953411406819936664202977361000705485293699488545767634951495412268233987131805650962110696993828899013414950887973647768496798254426236811700932288874545430334751081874903814365340500442109172769615181122689036151751438886163677254973319689733401384523644356215630934316671515422307294629473671785023008216523271818000402969693569042172732746231319322141123851907678064502591751250451335422610420768365139489708307322674786937974523126355126873562576849535742259994913405176280788574033740988320815305245325711700503751695608116561930758595276046554606238842223779628799536211629198484951657229661619033523848922942821473637324791839031856996420557590473524257971275237396928504900468089209598430955440613793574388889706097058436045298905232958045664251699491101502367355155258595545181088830880411924584543746216251597571382749551829732846371495639622294467406455222527084260663071831856905139114313744414751579417561178517922495702591977801577857536370139383519815214472977265664953528451979207576454652722821634852241544857819426096288679368793290883701235763242180441436150304423974132256125430428013041442885302384922679132786296929307065655048380216861011595041052662646168718053968629170931277865940406453287820171267019923037580400608931749289791029177427495192612436927506904988052490176366709765162564749774626879161232554855020518962556462845932336448632021027790333032990285370879649657847357512421347251116955985699166930478547873609693507794193206632080564773673991659028185332877760162556874513328731243205499359322119897643076704927953682449872496516451609646057787031674394378135657391158940670541794738052187516409034677354043182030896785735248130902130896875589524793814830502580073843220634803754231672213342590122014008954058450113912089448840669398203955030411414109951921740129568250411007283945705499906204423480788623634187579724729836266107451178614491823801716450666739438725547691433548340673337707345889744991730307092266918222577778865096719944412035154161248874885772167389945120621816082615086450910652378222256832494730950381264954374759730022909844003363228899860971055432004455837926727369498886698748030770794828491930504557444398592390579881923693057459192488951777467632069852247348609477020213341779382034977315277785655154556832392855298524203970868740499969005094119298338105031375420604150214088248163918473330555474195648490804387362098442802358036722681611951885660835249141491561244504186379757190900846781701272410168412227083331815022076300346351619173594383243991913911630947158322946208764419943346524777341769770980595605947404793864379402345798692907034569044562616001564041288729801670553018654657142599424677957036700997220084284437237651943512319411060207190409386420536959737569714124468603874413093814125836557845404241222705198744845625928368553439325779588786424040325912489447599630215276995992394561544206411862608123315268146351618858975797024338817025656640788713387864227210092018474107899791786510430098707120259179880158518781788150856414534524186948466687628804238844014971917693299567059763124338390091502262256384995915276636406664385506706824270066964103455220473905227891227943804314733068026007415937542672513805129151214365588149540643408222519157284554169255114078847855266809666114364463251375692010003226984815107920826879525822631175237526702445541735489833684402627794847312187828995230587283128760149119591571255663093231129725773617170822906458475327195057108619958508738409387253207647153655316234906330863885553652084643492153488736420199523859911803775178067928137084187250307558395843435268994596071763411043672421302285080047337121769967306382429357963839471208758238143203076048279151036173506948837022954741693928869605031020829588704329375537520185579911513937009476669065470233379711073350334881583620353438536578184596132262765162066439311267198259945370844525115716231859728514238306596359499233200921195777659159872869490793820598027804592024247428269830765819304176724971200952471865628821631907113451618920306460310668323246632402728762407675654745396452978441205204754935714392777681592981687420649327270293316812517995264495861976575058403611682995526226828718749907849541329013990099245869918362932102223073302570702186199413629384912789549697350841424903251851641180248959644453076890781094758393178481794366225910766042351435179692843639077291484539673291440096732238713103353574034509439779945806076175972861493651319398273851586627851628803949840217952932976166030717262590833390026325517519800275267244861014515432239200580393423480201483470419518033567244215416885121617024856987935362143173264862264555206125636798166780309845598092421659467362111897289356753015412401882978298739647902365279483231396062734563714517015582298535971578586812752721176011273481220497168021793820639539691436504431300348321774322020366086497375553343520067495364790326731143426219145790131434685348446579772446879880976677133589045828460320604559811020907080458323624790159127918152649634937661288657280844535946258907346219562813736449316001095567666197521977155909191777354808261389836757264646679014900492885368193220322756773532017856814467671442568930346986482046163398139370210104284136506550359809125291597843064134283007435827959957480964987324006862039208506133822303729793114757494946279613294038708079808523508525298630136680329682720345186935847189683132311519056474793980637955066349116095343104641611712812081682057971089430555548964044368278636883530061554950571749270457306157256471470184197907846318837003854115936729791040076396922908502853675164616091884600052969031558512869090949441962627846203657212528199143854112288493515377524644917340931832362154240685154479532919560006377193986083488287766912791027867243877507877874745524058964242902232984172316209157259749210206041976277673131072424100805117000054052635136395352856148676168717825403424447872279582424530326700321888288842799084995482963875536967876508275764907041605002854648150675599413895921661313045156342580843277457182311620043299795419900474531454848948101182154551774577357108176403506774830722916338423146555693196052305446300162197444710268784875131558422525064906718128162383807049050112933491236286296072897398704606541953544304507104624052266017593810668003082771843331709926504672543692292501169624995039323151494478715316564920996948731428300786251720142873508193435097974731562218350796956441917408096710430666919667551891847351109618086479179972979699178798757462511815785295453656295232216952096301819526237296567423523145884851123933812518853133998134946887022623758177039884794305763010118304746473153843292965386639683009077165387771547050568426306056503818058837974270553435043014413726095954190927872578255672207351569205600683003144396937819746235436347355127982873419154353253774224545404986800206528778841937387035472937616154080147465283593118725569089433596705590934005565487924965924034619699386349811490268451415458266671439056977476949315658667675548211247394111676138689800533286956643830538887871861533156272525303915106966143548711161072122455235988775119082820170946737160032551106363048890638050397032517878813580380381646744658576984557390871657258260415348391569481741174725352531621787275860211200241553187561679329066000593085563435043740101685702033258490293211461574505880612308174107570006941094668771199699041310092738770859752649130783351280264967765125802429357729256901849281997716693452436322352525930632790703503438696537741092026874204205657698218319863686735671339489744112584714469408444480416868445230492811399524786727251915584651306787344831224352812707886445227216851843460448560001339617522346358753718513119741210580630909238969496649070183623320763869234375187567053973708824948779870527552167175574344251476172855510308126322290596690072655658849482942075327967896765390794285008627702562770429810232513379721494506509462691342986999668913931628361841775913541329303521777915416438261698336431506952416862783840982166729542641894980695792197008657215984889144823224754821552867555796598811789238991721811868754298237458988017171494251951960923288376807694719529132527168584468677596117126320983325536493294840956407860616782634906470102551525108028626923806578908545437085155327275254289274316590386256445167891219848380277326289274713447296417910914631408206367729110823530209243592171452050855300822536869259761639867867110994446205665123034067838501886285460467693194327287383264052377761409662248758626749788355072393185841985546068336957417483244685938643128217299280515977189267954360262472394303086814185494393844378795232940691099652177211330913180733691725526905116417303800441294309738679623147894222419202741826036665312311347549607593838822069315421680961267480380982067542683851140164060639343060834992072527302278153596893961440114314968128393069616582134413387200718648393488847318971992714597597839278239292881021039311795386766694190184069743784261869732845005845116241647507923347625424975648201924052995146862655955021844725181740848461137397982099683785105171528654864182753878897708963125723838362932707743415705565887846715917628967190577575950252692006840659181343936931448161825703999149767839028321277313953077357848222787289555918973282625454498146855699496269285086088734962633330791260331059164065188837678295898940768599634240540608881556709709801220435052751950883768108208554997521438644450955323668952120702116021915537035485091654910854008950428667653047351699444636123167313059570374683015256825916556756549704702803992961801252957694113110003666040720108695617018718528340068088699860204392137530522275384434018356267056352484016476647335969562329414005001406300316739063083028109715792725571097471435277188448337399005927363729942269541169111907107194680096838404805396163993246008578956966029336797986227524000586558662813677406731593010627666914225992599761169938830134845565035768003829083146177675323321285087704652880115737721799337293489458550568025056730088464727643842554740426710447560360438092119751957623531898856546707549726276481294528994455296658482610439310630271274118288252148117430917832566570497836530487184226698179836123658381782202615852865828788846903170226626107679404463347186295455012040038202124509300187847234948374064957856791387561520991003998151786897936446342289642410988858937490885517973283093277026055260285341884612253175318123138115444280259006384752397788129494369775148203582167088038854152688927686573216678520237314779897624432064475083204401687912991159534221584443171583479136600506458733250116009288156413187325043009642353782072991288490271573300039704820571634771167182486655162082248713811879449769604865114097263404357532117580257922194852461994227205097411151785637205959473143567017771187757860475617197545564819315366740509093911718835813516437078481654517508386115256228394600373575265645474968801831547929220819189030438406548313487443080858314475784658619559876327392076899665046919960391738101678121291069778572455463898911431248671158081801674726960940935687592294330824456989729672398382927168607657133253785622405552211853426046581825820562277069803863235367923089999639940305347832920555060341822407687430918530881497801756893446033373883378221318347744195432608964791760894648981946355476418083025617517795792376756906234403500744697734383102369438661736999088129744645103244302060698128240125308995975669704412574507535564964791318609121272921318313150981208140681440773800845192700635779733206462447416272788225019957757866182009565049737024296643857437125226908001721286873398085912820678775881865282571941364467348791006153171702749739676457469874739030215310362686266530740493315492528448236482248518799429709888824105990840812308967978233761973637870549222108791095240015537551927677256833483611542297305848549946634283613245816414854898507764905603567431572732381722609705112658027038042689017345254787430785730603785187252437861507999699216842136426153326505988289385298459400938914504598948733329194922462887488687059756966588255906968005339988913875565408338762744274448689694475591129446854215814938282981227633023333143560576966795649528528499287611162354314015765427628087125919317843641767321766275942667514487564587617866512632147585951736214739452637415417252526576936705633435849037574457130773779300566135629398922184254945275159612710598114497746080392901465941309391008771976302173310790598941024959583539551122056629758455711987950711106295668830019890886724677829690088322392603206771978503132620983088797407615213234494383151100821480014819337266453962962172645102514600370718793707611831858922517167323095113777537291001651131307717733586009660722665374935538476728264192969816515619997208651623753333276315291700776893035519667238447335342071966753010612556371838043438899178328678012511633136439652692567722614242774396432534664319610881086533076925792929894612089335814073460175827619894921788547415863280961356100646048664415339349933264376920596438562153658880996363334792756251601328469690591798191568563353251526027782419361578887896259476809343438259497289687262267636888871002600462773205838715853117176178199097429191620241906122470445927408212002514663023049453125116561381363666066596545881721681942984462451144552026111042582893369914553888275684818227371796451254028699367674295287592794255211312680311687003205479998713907938790558831243464330505643649746358503616708586832238696010533611641575797330425769367927453116600663209411749879230242266306793592308097963897483510467065459424884491848722444311450863493474058341896434048440273351110271304868340234889800922624578588198679028835584727218439224657283200627053731795585854882994824313090112795047948750985907133458847789096947338165186657755172847748203083800807875864571189559741317282937312553993360009791479185455814942390864557815523533815360635066723959422762709183337920547532452900330962209134017370195861014997514928150580920539169134884208899432045124616398653497213276690795687377612229160963547579708824839122550160665429380490313889318855756725751303846658653362216786177767597877146229979914022458702831828495348996704850540664374003704791246303386571251005407607215916541118612533423612353755133973192932190857439008511346885553030655638993489762527098549989823915120698974881936402974046244929840194576311877780818985958747514921796528060432393308307852414396156084946284574972296485069492562264481093171990044873051241441212719331327601546552168837933610888209778824153307698746684542788586504978922257049233513677733906248654910145240871797112495868575910070520738676514081212706340603083948809785809953599535844334853201277858868080227550609655776451062401728889778340461262480164211206210518027851456778719615558510308321068364101572311932518760681663345152797181612363075456699481310092755323224280606284773067677503645719406961056399783207402781404076278039229729148733509615896369365845132693885698683236891225324467498589207613741975973536869217832799692857042011334348873122361475480073726656405390450978467291798878254863098051916194804906207674999543593823007022790495143346012352408937472574340676649354951917497239926878609282169609292279293528599326069533775558217798312901664589854613434167163722807121650169197615739559450419982155714856463522477771292008805673953356564039057614314080994890505166442190169309421059903126213394574204056336593024153553085322685273769450505577467455106820211889316914615884296071879499011621154608258715542829734486296459986059091966627177696314242992668334779446033615794282790905902828038083121914992111644782254803468493322305987803916431157778090109091781017535191898856897930520161390180503600163462158476163441001190465956300510365442199346616834281522127385690562882937158121614489345472663502874162222999525527100533760511726238951099849648037331290558806234479484442290791554984404956065640669062256399412442331549323435442305408222784183916150249578574075612015670278583764700683153051460674766565605211925162305265866309630561947380476261527891769322965671429010584594725517108958318275439585903125656604996117074171302934952101371323875170031200951415908670798658436972501881385943128907155292439498796140109539159115349911756450228147060005146713552670740975156509673217223129656883384946681570202755025368750303337596046038572721662128105646167250473916743648797935406462511143414940599107187868405800351532932309204595260322582663046984957659438027580573515719976725483212628788788550502609060557413396819133059873457514386811753711787776004450387185606634339296153879913316879286832393255638664323119132632195106219869489744888775476998291175711012986285960844638769798152869357832176911889097697643785426980400256681279887089572956852240953031421583006368716772993597145791788772057449254433865373081535860225087872083338283686442045614306374691039205925592629834255499736239046025429933802106878048487093429404746096619755988010532438654994765255196000177660065672922230231833246117050667446945319606398233355630543760546439722027744808270616435752952749664030065302276144691722706045852376767938136245898142724204219601617017054943310847584387039864899216181164779165593491123829609314434476558965925995167518644289064106867593988128994839405071120458494984422088221213940261852423682258801936729802273587638081088175697979500030915579362324919000088367222950431637985391785776085238723204557579119287522433302502639583753699674847648695008361625511861643355553737345789536859726653460919537300217653209489565335894971191869659515697698874519172847265168048541658229577992107658299566076098374705780344421608073821644605987047633756862217487225278483755547231821473511408337138441444921248637426249204595524712789643664519919021979938147702353612368127412740852064999036328024733575500865820499108551069209875134971854661010220534644829410222063108007813820185135857608165659865839792255091515502045195034748571254650755678465203786341375536911820569773911078887169867408241314897080499835398267800692251700607529917707243057622200043540661638288748091536777101971844074859605197728071242141090063637489960035423554400229425740410024973469365987471702175084703117625309294278829484800646138702794181754075026498942366755717047653996155454513354576957019362995367023663125368512389630960990572512598509455333015520357329962358940506882975296068701766150246114325993048359184304363437481034755153687395989830661724387363322461717389338491347445508801122130213329197003053324819495516284574757825116010710491812064413376296668668714884830529067250099568679910642060396987037985057303403669481098993990854538931642558460098257519483965215411436864414740588928888993292475879457300324414809713387722571603148843928646012992369780005151901576340153004578005696005614495237213263322648013010749306188258714582020629301942609010838273610541846194876237694103824244370607156388943157425283000885531149594256534587063629637634151937586626163746590341851058339323846019263455520991151043576269534946248082697960837152452549871428272251450612625604992719496559987307969120981518502242872552657131462746463321964124213927701238315152219057075285465594927764383002864957008144457316297930926956230129999846314437955940781149925461704154416854510946902616493422938527747292940802114866187484100930300665086545289781669476427268295514419653941199306345795507026069516528845097497103259619015734714924371572420463217062863417873103254913907254754962678905815567301956667620555219463919559728086521068619630566661056545269258595794959876231808346996418583735360434509330466801401041090820600156831815193629353396841777163702589920895727040706987410384930985070853921597282155795900225557410271362506751036813796932748380615607890298937683251097758772454577024656893863359580158907894565429426570653442856692191493129881610406610295203281708208899110178603386715740522276351546508139638391183137546433593827207425112303490920276498035331559665477747531534466557013667916628243897047304257630384114554694940287350528868119753165583496945991459972340166243965753421068872484829561780724123565630058024209590535079642386446297296791996080139478396948850996673992557848362640449823902271188633360862991711256626842646652574173321394133317164675739741418788529943626260827708772503772336965706566221113478047045780840363315679832695765334297088335404454206968481317597231168425698959034453654150789004476466221982572565205185444547402197330446591118887723814833879033508358257868918478872176561421346001466905985209206941586514534752938987873572636458385152700262350185532671920382044017870736759057324266614469951101907837234539814321428113299909102136435910073807571503816194098368101189571663051118881624567338354514715846608869102685815009096272988989027480242636574063909331949656724968901853481916669406494484093535846850301515184387424409279466283956531270879894345841411542986150890129663240917008012119693827118035064898951612039297359366951272620250132730145151784470937143159482338347444172685991747818366029306258565532930638590318981498255257149196210885638551492275988318334852361149009015328990307762927812608523153415255967752171958090264559806291837010807881648770033347477040878649165247350878343686572328313543302782737029980393687961596523539110397583427093280145021885372948962009741602600327159195981786213562268142490007772166796203806727973124359002465743061751773503022876214223720769189461071462537822945576605692844712586565194034586312545368752947418910299001431496425344327809976261098223910369899693199009679977112291699221794571735408815053593957178189953228798753223601548509990445575489818662897956879786489804488710698089901303891257873149401435104697526630851927973962631824889399960217628341886914696326461433975722857025431114461850734925416218012171961148603550526960635379029940882544561285655668958312063299538428688703860464690726870377202327260687960435237550706362994669091743360757549703827473488388870079479430453820339138318186394681573272007928769895132664503157027657930361328293825161452824562441685877803246379308909406486133726915718821107757152827969239881065611654540452514392621677597863756173039924549718472328209609436827631225820117928754350790562880113107756895139250017706479353018506292041207781700376380333676495881729095384925848410438864838048481505129242572332486524064923824163576529721206872155456118812586291538555084488477630884268323239079766759661072069882366983719793574894970561499973528701698089282739626687930938157211557015686940960791102850588007968598200018203779637873049782329429347588181748586894500977696199437540734038950295757263966482657471262364681274497663769169872924693621447099235036535440576574241598438836368409753215340630826855401962219043999000124158397602276861014802918233800073700188838313726156816890755957392454189303677756194333602146744062281944040692968920699389923103222754714229598803328333937302650864456056950326347491181162185822311322807519274515062949653614872289990760095474514237565377659579723369577115516395655214209868100444767884707335557154417690273051539418459157590789135705808604241221769513835554969437312372324192736817443038213629984243534309535117763317657904921372302400806646384666215157675492797399210790449359059316581761586913619148718374277213391226647049510354546440285913825560314150202886865245590127398707690761059122593229488120806538631395205328933689802759916612390914468994863184320345098434188611363507322181394816845690504644262475626332815560289627652738003975675650581464474825158685745670948382295230259728862885494882109249163837477025276938518282514716624769340232444471428919764672491324852364003805305219122337652303527869914439439277489155131591556945264020639742911974804746637709925606452248701658266597771441659458479793350348847183060306770044595742055478448567858819715981493801676149895064524576256213430728313825930078362398744194823044700021849568349744010516966164973949055606669561003046007734072603150738983029598534965866966644214286493336781250373323354469099508269167863144432267153425963471750589420007042960224420949621818442170701920631989828061588800110350783872268571916015816015665663038161383036490846286607455946649574279974479771025360588407176909611112499159286101284809932061775858423499981130969516843652203832549891184397834298739813381843025951463291850120866524097528346541888836939018057628905051076154506061073843070459006323325589353750514102905847613413439186038935185803450077281576956771278351754720153018255058681262950559663346761349789927496489763414552352587390144947512177670850846810763841858107890421938432245781188168343205800170893140022945053527962449881152299213944883774939931332645846057797033721283806623454362056395729778289886232512255530768254976730231490027642300442100272977124936951663096875504974734378053746230198358215092831251844724636412394419878278807231552868504389604122830472775684577679963286027493255467658784530821391095355757132185723176174831917621321690943005840007874464704615593143964235296406012824959688558208158933534955563162723778088522048816245824186102466116851162151413889857278659162029899943501129198241669155566791013492237998660349478749888432692687949735335963609966855179656006245979685360523070329245882674970471896735223325751642810765532605603830396481544371454786228566574051885985651659040695745376288659545063741986003985875480363373825257802588703261739094662664510491591181355119400130086242582303450200702404319775371948151718167935827060502670421921561697489518662602183716347611735343282933949101431944519212609666861675979637369578085176112342236253232635995498697083579503683675747707705323611792850583810552526011997229873791616655215859411675012846658859555105979011926502339055196891177965991491194562619573198066615772961049956592457281316085309857291134832245929202927340528106616128883006194800818924485877914309315915467368769195658018990568069962510089146363200320731248206735450274239713163908564222563320351204403671532150152211958079039150145927353992055691125558973048960655062620873986620015696975358963060620206369712242185832332163618109665087224887568280654409166125095910836322461551716726135346664903982531204797046410878025532067173015777515325047023303386123276277882674100670034617257471030006279251011487305511970435602314477331287201779685755759371197503162192011722013216242112290081089288320680168898029756787184599036926282690678143620075167581501609481229547576914125229366462806256419965549503939939599061494382163865557405492468440455359156753648557288064787835786664257806306276899025423446626271881589727083770434924978830448181441274625868132157401000182273834318169139607846715142187728197741895434640906443804029328623397710859132179506061362968721251189468143202404939308846875513455168797974281863381846712829820652976061664573662259140093988094705611668493330181700767685652514477626844605385627945916597528363848160369237099163827282086384511295198003002632805304418193168774230009450145890469885447545758896971630001227129195792920564000943893467936262460561669685887079262430091368801279393253936508189498848521478311466491458779106502507338415063290885483380439231048404993680247312606433956167148144998296495344991622886015827091197284568878194625708272741045062201707473107398050168714671609618001508723576435621196546219185960784059502307880243140011236098904176888503954619731999918743249219532722325462345109748658085694911015308170278522206135973329829138955490117955129376441125973510774025014925027425718645735851418469936576929009973221149172331180593600796005443289645754600263667334575527183566459032470500681268012886405534522295925802313914126840670061093655628067875111071493381818467881225933727677368245910316735928032456428715859876915182685151732932023750093251664531104660256047493245667078239588346043908733217492526668249999890214944106779000297336403461818467051822495669876715571559658519353543619862181316466271123710658400758854008506980290791075091740173336804863882603956068033463707630182324773291373949577242877161245463085737190968978681301738631537331487785665250984863957929895982887196639033906057820499853479289600080810433233118715306847216080448679190849026790415769848276098583736957224824559139377140765995454458097897161924040726183179847107563908217037361941564045927920622055813927827547279686341594015168819838955929724730889241086925337364454077008422804707525041880976324879873023013009752169610844484675222620896641592786428607318906897957548737014671657032518593174108903062720436021439846368446774735982694715554104458407873243257521593762069051677173760866485683234355739369845727899708204708320779115250302834311109013040126229622657326753876816823588195707077866129355615074347886891723754468835632087957602380423821852445007565936805291052354538988740814972082141555618442371131444752293128230757649698942508612628404889677849644408131366276701972638356096021372880900722108919315603007906399915586905974173911642006095769447855830018114284299028216736240557272126050929450754086405970160259914376627942142134052071577416706197331367788121487199546869791732189335198688608839611084708380040188928594073711653951932777063045747026739304446686688688704855033985216958792817622003973532448189535295068515369032407872133267835378428149236651436459428701736318972033925480200956476889346875421256793161949303936908984305817061509550035012153649885946809648215931379733286552836350026742451104118463114942549268940639810575205002060594465771365666614896210706747942674717814458995609834398621351421211053530666147651724027513010376685546839455213231030416781184309993611336607862880335120074974341557153820417575573869179612452206291545441202153390687664200513726410163330248443394021130904389327688984986460805641308739021533120292037716302475057962816483936922874668602912840484879678932974575783591347631450497800102388041725512793018602366325670885296553663420399341836552489575147425179572008107955810668840476372811234463655519541569896391522235274094339467324444202653150644800669113450469990941776563754009207816258290387215926461020797671230238329841084294918492584690167597686419118737352215977548306132891040218183835083277823395361033235413549555590774226701487431742120825220043576528547698573921013395874108920859101009379554999272231472379932152013170851223742583692850015580374506133442367961643954619275632776060350020866357662209592774546188439308980976545063599310908000176583280840527248593524000299832472180189653976614875382248175044297911399778547242816709127163823611660579745824816367888638219759270813448927608980389668808380497062706742399737817855652920595330795107050394441765250674031862143707866653878244559712927022146569089797030804298381960681162997265738707816808601281879960992633275842110544490970500614722960796417743617026922673122611384332880606908622345685438487893618091051757701498815067498419814541312657594757102110316731143188182820484624037713964286876835879459170444621742167220109531063770322822325385322348216081928177906173093860876331657875897250965845345606452910680428872499759759452912829080668929880491972250808134358830032693804574744815924350014725016976503313826878530694626538682526986943029529126340591015564676334740865196932984595590219684484904319447737255864904159838048893575565331547651679789532644217558629976403275284901734857111130907077957082172505221293069065785211071438335539739500019467500767736671541322471288389425622513262004280483532728944979935723779532368703382344280483006937198669941826215317981682306258849046548125569412488432853492157278064993824123227468760160962695237104961685634835558024710258060854111410611973612878481061725308598589122116454622765694664641813110082827902094475322912790415542301571248201474984969201939060346134179637539169982336533310037992292177205592368528041065027735349625468327547712630204542311087994742798388230967871453886008538854011528947935121809000898651985803413018452465594129938104146367325410334064459122352531333023974290472840330193827686398727800746316561307203773823837571420823299490264862843265820171067212093544385085867230808133459846749353976445802576759795230160872819681949411614607045465321628900842973581568646453318315816152978647052388301206013850844441361120547166632456092296931652550273999924104753810991400500245586863487906403382135809873124987200707699305758110460670541520668098408237451964336300842584217979536901555959130322900962016844707690055638425773563649833336558045909526488860822725962741576320228028034597386552232978209384844288655771145046321099017377721551621332319513667921723790472214042431074783521455556612818697565476742798879969511447243674526682157699419679538637969631466667747841269807920679277798693236163283954838851054715695492583950003317147122352569128513414148708866721390715505137589147263591040348128899344345738137981986051609511210795916979318496019315027935280642447210402649226091180795968165897695400732763216136741239885018673801722068699615191207873187041263650317924346832479770533083538859775652072009845960898985866816437578429964113157199928745832151286897234418285707223785886829303426738367733777517403704258708074950475113829022580242337133697268985515446213827331797355543827313004393014543242563181503826235012518049595471681381418202573862875741787928968016740007261750065095014930110033440367748968513283140129066140305857481439005771807268882484653298330352317256918697381285249100243560532915171223297076847561427390155528929999747456131813203568049352750623001532617290675527058777320801815619481091509167172552895332669699483368030888880865015714108233765681205935366157963758811951611546732827510623882615349817996298967038330476786408794737035504698462099110333600949541340002782641774705018736064596336829474812095254787440030691033184919133185135684284544701944296192642292854159226889175181626882383935904801859879872287852037488235638399346505815690110044232397339446893931520014006393395056804950708269595983222948365367554572993276153966290700883018797621175762588276168271722922410452435132323190341029450463553098772411903507630833703545843344674161632692959966188146181233261000098043383567187617486812659127095979023195059320253067664667968983444027280057461551256658932397626871854625328285530395880465359998229876284733451121628798570815002686735660828955018425876101334055935402352997199894586516334384578538322883193682666604242414055065755628766412903680303175710844192642542168332860081649284329209179277598417414786967087444165772399440306340424119420624548572434533744761974613618022715984784214184666483893623667406213011861430212896469801116039100105191890325253709549397756418278875318266594377237862509209474167384614090737265950808702876153946329063578454717900405661730591982723328674464375458799517042753156114532891299435961583026377108880125338431935346010055324385499332967743220062330553224178913138894430395394677707834046805733252799355986366684517552803582152027145597298566261626197395620003206113850685119340502774434299647400680728831817347699298472878656785557481311765526196535133292546934238890079860496007174741413036770171307656496157304751052061944462329943313208484932136025828196424441618023967773571236149650835513597246618021604722317395530046342113760798104660963385270353001623907711693173769609189869586185100449421776440732237437135626548562547412609755651466264755926901810598659430471984925475233221403540946863389460509720943822049058903314087528129171835735663841819287760877334104887293752545650776746834817012171753753113751449451251332291456831073608815918029088883653130917733301346218263851677890085275066514748345431461767623071373258682253513675144329900517494276158224020379763876278545386774299471096314958862397019774504111493935478878839991040308684332337556098398009512535471989399690556333738567425717653210891061078564672381660031999577328460529193622648357018166832071519938000167267963179771923999905114153808275471880090202592127309902449327484653914287513676139010326276290204956209656375671177443261385180388529082077093665599870602984596890891251295101254268006984607618772175160340804350846712651155935502781624984246277562503279915169417764495205803307763114009062993637881644295105684797147322618021278013014862575281122841851155763125493281478705590642017150613530648502779288400168698755021350759752692350224610133824902353872256280068151761018284467675353752247153867332329761206766616714075300485111435251620812508727185459788342394521731156621158383510390462876864002981464697192594861243104505847518043815916892551352970992081633135368178980841575235227051525701553949306299847003173510399056910510674505477000889983999992717092380896879163411668209129553804260906924315070612663152974248879543404656343648805558852203489816620043169818955130563782241608961765193906728236573144235690110169894826446968316563285220308511969367227437374210821287249678507294863073967980071606515456117997868299568364621171223411769450711998484978750860727106208469663936535527597390644943268820649133171457089659952866620308677062039844687151552825138464575895065223371773309573200154094901998215802342589047410501234011519229868071469127726104551580996668132680230837781699920842104355601596645353225821600450692168825181867592036403818221308027212056264227335261864099708109531159371349837451604896632750998569537695596748866569022436712514585062051174266082096511873518404152719583333593614117835060988421965930671911082102926733929937530322807175410841107230073661044765499719667037776820301436796780414585156171033410623711705671200933111845399320942704307923430892417460115506680414794475313038929682038568394679999024105194174052033370545687347402993119933430247892910180251068608158318748786375013093553033194070370675955382448126427052710677718181966689529166667967211695724279119463525553234219857693158566163891600528443042718975747836040121365562866559721988903676751584131727091751922454059512874063021782536457964941115607860083770035831301234116697897140925345107221519962241805099354492788417525622893894788118735975063282655603067455856776239750635442161866134391937993798134955833899100315459764062520972838139759999158077617306848407873227366029835772807717182944177455763428698265278734897409685666164939633194449620311983724313286853885739361542587999608740131593382986827901903094724028657753114310662395897919372462033468747557162962528377853265083290338665280282799621643520181593132070553141131588634704072116081574208265432750558569622632384676987396092948146921661653662436531903660080885033597219100232448963934210667789374506935113147033522562959435799276125668881315276234029479914669085952505333990855379493452794250412416189433801957746988148789441505532759373433095674907175720754076501570606898252901575609280830425454565291994056320492547733416072187306508912283269734952446210634036548910369353439095606701198957359476792682392152764034671744222452549770497990581889727693022499100308328793544311720641627872257402247927397803798988719697169522393840853636237876177787407106716261490019267780390045761694507136820674953038971147371050853842025765816434232288308769025129862894161503681246478899590660327665336904102358259842095890451537377789486658789297256955157173294557108821383405313850439128052057234243203299230024713844270007680503466051950355481025426705076671711205941492985460507913696020915758762689383159695585866712192653970355027837048903777313641697649967735537765528514956253296938276312127897273692986608860966961791681596364912344107762251716000885701636965615373697345442378637946595024960236879594941114721565084869547283381304164049660054661007917071005976597673399717206334153860683287830366201680774659140382864618201262591833886436740703424288409551020161846132987294907651868801148622172153040420561130092436535835676641967634867503872313356900378074598646823747601090273632733915186513273892076496008719380420843205990474392939790256044556380950792136744084147869393797128191956144702720013830657653892955118838153441789917283993666496037489050977636188491851496498445920443730511451880280844595869357561436527702659989389400000750469400627637722292031349030676775869280163443951490677358583741889852035681705705416399963926852623486946364674807703604009278860022704207260078414275613139525422959717264520592981494716796471083550212393730370538859033778407110136790057427929960600520251496939279305804420971463940113180528073425775300077070217505974681664663699048148177393982876364212868853341721972531076148361323338727308994938706395391138482102066956006862358408524867128107077662998605644435383823240905089627892305954409396519450356339314713968063833215187923808863374210267920997427637870431148425180437281457563042914851630905923986849229492127986933927552842037499274898814737703061259517596375473206112470486913479154632770097289678307376938416467462527776681645936331643002677127053105688448528906248395500212887641762288972195278554417649150623783244352411715572059005125224131010626788001567900744693750583193237855153178655306334898412355599882248008633140642893800960266415006537710925848967580945943446673539069946170497452248636055949888613392190116509612231368414082621121057923646170656725687985283160706395516398228007792776743025966527179482429114118388838923381572833833464005397487026013031639401191309807746090769437117514691715229827023671955862315941946590009693888724333489521862076667404571190619735456286163619719890462175505268869555941095818613987662153653380207958087327943133245701583716811690681829132195033362613129889955629575584238336192346453146053382042461720471719494909594142848746023557854938703526261433594226600768061263285569140309455107364388022441036177632706292164216994027946349563950315740867406794192309462486184560992638696463050563199697373233415581387563228742399970708006834971785020925234812507118691400773955677562176910388935509986992465733098456794935002960823164266284581469195029199628626858590981262604247096948299661292232941566427089499756194895533574436188947475951863590176960229503122547934842465508386503871760967551589135320029708561913388857275667841678339793498580423274853438803235777616609945030491646042749597926659541772807421952092552504279401601242343188104629845530937072992844239475972515926056541202289809233925057988886450136257334417043588776074666535752033228257636719339035972232691670270800816650398622490767943678467140434299972304075595002169633147067784052131917198357258795477095622040861513581312346293935887277506564177714022618542451037037540781455073896005868365543322614968865775164735848483200013972115696343721658819582064633963943483145100607821312946939346131484922759925105869252847603884103010142552195725828653757970493880913575874540913440811839461399944978644967152267371041410321173338369010061646599867521013810875630651091698803287700593942623016295252455558814010330844407840845568512218957371701543074265970228611132466401463083116755476805903482375516658245695168523478404660166639828719700915224009424813794778641022066868438518654360152372214906825627203405059161050962441778048662405874070791841871100218424947262886154801308784955561073041016391320845163941219686900383417925485444335893051348796874167868664319993928485760069233333513985683395559525691622765700954058187206759746963708250182583411207918824275850840567076277836563960589572892260597672771181973415518631162998346359196366843229749186911599495105930634380777010494780610902552833029685999240828994350578982063739184150947916344589761234967383973487696654899468591021660062986459520597875842336140466080049466906904556891329368403638088902262606509430580911391931639548205198949227187700152762755098889561605735812010564068613167481364029198219378438204758946949994158171609006159201754963052363020056499492505558499533252965495974146394261150606721650642653734406910881306775031940411401503840849176874619124074656174354451275669067289856082339015482023468384768971496938815468799302411005024310328277553491751370939090937631327920647220859861145251529748489230644614700289693403732231414866957090416995097304494400440816680884025727261898894699569764582725467769473257803906617584967980625584159327488776821685600850866212672521275938609297677647636010278119492823538816027376794231453786822500481217050873700483757058172136331051252038359275375192355559134183642057900762595708825311591153443606730882533912447212326348876276114347853918339292158286713657400552480137397897639441121086893965523111995768179850020004138359026673448772698541864706901848661070920534105850524831568862876857973412692562921305783095491510165684438386129950125389013771235089454805793725234330799853106013296825296093614477394206467027034291771366676036202186840059578874313706617610192674336826333462956767892522709673065279800933303212741690594688392784536561872796276408407410533897260904486610851701899921203784536095506735646421139362078534645516167767390299351376722821772161641651366059334471258882601697329145479953041699871152471896541271450188366581769882397659721622529417073626237654436450508284858392733978774533794094358839870876672767115026335703082469092995334064837253907932667345581386260509569955008590974283445124168539923448253604117174784611954781507133190863009413232584064472459397760515998944352080305978669453756636460245758323133515652877071530813926029084447496875965805000203122836329166776641011405595421743833216743075551803035743761270989790906843743828827073669018082850120440380625985429666020849346505737495607299359586055778486733744708897464993696258819669942793627010168246173651129254823742652461837797123956773719302496573238088131944068327531549353531594620696318693488540622600135225309751404131870664581880943623497129683539960853193157029906281595136451569414376892662856060416239264616977799386000474721305397088935439403896092104637044316286451209954879877056070960937281742490169842794765057596907716833947230183229556629503342943424874055280656754690270282869376666058954850233896389064397921395028674733844543486640547401983308206437213435907366695433256085702405908626838385117188702813616457913895751898351674954824692185576309499774499685033874167106966995372034872867731989639360577943863917589541219907591043809357903305231145340683361094285453798284575111118891354218933905341346833867120054291498986431917727205361831532719677583803323298539834189907506143475805940507136255823784985903772684428483399807836423310683379747461831821701765074522910777474977477212426819775953117421261605824488441513024815597968310546022509718531327477399862095331666291036010128324870438921632970045623252714104487593217877105425671502345231909166817377667743628853063098565751943508766283755788228034410906713193030841118329769006896907218023502802114031218581160511731429645875963323692491827981232775851146430764874149411636973300111816610086478469218946175457017250710080542306891276170344713028330138903875190789771042198009520008271754145603406585500784896229799737645644867898394989619056622938582835103787367292491422180410597059003359175526258195388065487343656474391327469367362780568502161138752310298191229817050610557464099237813095943509685315170357021119384605742640248118639979059331777328638701259920243243465191269436658861646103846150104828242103927917432475858760810596500881279222810479378039175667891155745756847955913055690903285283990642070083792190017136851800980058673992029892005673985048028820863322692911832326744566834037199927457911052032541120744530547300028490113956987449381033316039782065853263552268034068578640453221658205984409152773980837498257746856369260594124019175102466645179058742052729869093766820396347056794791282949511018981267962224111573898752976317713725493155070137677622087438780043137435786668294150042825998656715684485568333908151635889668212262330963121473628221022666904381117015888024692392697336282631247463187739687998270448361054327556854033632792366720449903603350063389123319365942128449919793192333586436415798599841802507879095918756982101858045532096640991912628788862866148909521204263499753890829589057189996529077429701290734542813563907882329554675146962437949683061020605305981946904641109839711907579849584726137120724808981115970831406624350714596882052094800527738688127482535610781084317836738975993082230583277023375519014980905246216761312373552343298653964647959741094998464383132049665440186825999166314242832416310180321735752206772079543461881120072909318061960696637210369572079586439179719939030118236586135701563479446483291376824548672583861071092059787112852058897658382149741996819637083741200099411906003913648044806197917455825122710965727353776493817338207103828871110238071365442937073669637930507050720224217634849678721539333229830046969240158442855316674699669520106256337405526502734966137005399315348770292964354997147539823959442836349099425530749203163590172837749197394534438981898306148820431430448169004006391447659782616526461228586256420237989839532907989136645947567501569283754159907593009526978854033315116858601383516203996911974888381229510177252018796851807515534451035434754302474274945673024731539264569271629566442126622951597570302082999712966730534659194867545488788633215716945835136382931790825510795135286890013719051340419190087305266469078103830920908901523476039710191574452773906981557139328776779325781613696880441322300386539323747169936894483197656060582408724642542063607793597548854930235470551168281122066499174425255391850126655571155355098037777448676950559926214560086465705072281625939450221691477060874180366974171088668897494865752517049197716266091239552305823826579965107616459605852388175663196219304069678663491094668758812850427315105295209011690360359143497006497794001918856932379820191657577198289006572980856104602389714486941454307420536103147893287159497897135322309178026211608258262224472060162572015852915650919769466403263645869855496812029311184240370972426075699834669010157770268667563892069550631169376312655924408051938401504394408918544675714208267504480552023101344335109278465624562192032316802199339133165361586988944196633217575333340379746158390877287443380933715799588926669679290817575349713620703315506369162862442625185773371802700551113922855269087017096853059153725574666280878104191585348267256246303834415786096832243940330761264427675810677374087876093680313145134125813481994360733628471380168636678969380958914820894211901850909861559223114002089994411022131577685129951488172860830731845862642827614046371223157397667730252006347006501991797117508505592390549103936265414617625803832333360140624343705189631937679397682009548506247762794974778782260142954855810975660435903383383828114633282203021599911871468810012837396576605826097512577032381040885480821743082897359258515204381104086694952979104676065517232989755545938096956280648607766923822431755367157874493772536053687067253399706786036762183191096711400126147440141294306344021562935375118136439692848711624774358113177722414630184715722955955035674320991255069803075250081106495653103116118569498829156531028372562123059507437239544220127210932372765602577857519464163905159329458503600219221347182218484073235490484211640927263352003151303767733044915008464539003751668348852152770822611659479441590630286036698589318085729965466766836575947271875879134107477016762267762574873889092875405063087063203880738565529861200145860135483785692582132591680517931438823034172606261505596388191692060682979258226810250849019716526030554391752819406006039503544107605874299293481179367390691871854831691976065325692271273254903456533668926845551778615914817222567595069070493886195218741409523210599455952271263174029143157202132588561006150217177426408291215303785345471186408218354373052759644573600309380715809435352573805024734260028943617675572346706183224571010846139538272835215490650941571866580181707556827279228149940730664123892373848561646622769852324572486760249799918858568480448699182423255250310005793346683038911314100227534574775239458863320904084721927399896553299422464654680825954526761398726749523619260806600582513396033800621502460079223117083020982593650977875027827496382809211955863211222079105908282534006749317913329215570717110021938982444777475349695937789031412819504899592955732374201703399318981533440750213819102745392151116168977475639077787156952214511865159198069047387935898782756543252700992515867847199074052748933767997049232658487625095369638357125715593686773864389509053306302181703250229746961435136539625482653493971256878712964975667117714060836523075610129395959249555429672544583747168160197274938165198601267811750951562569105710125234375491679628638448184284164031191166412321040447516200200333978753566783501286665575367466807421579456799118511926982419901051471073336123423588332107379378092633310640957452529977808404149185918561608663003890930323240533040414339727332544292065469604963895543193058770518434822750963647059793063527972265963469199869942233997286973981713231892703937327789889950867808236152152400860841412013981257252483946401776028703321408762998654873532603738574117048789866931506674484277549179496093220278158318015726210372315285367860486280966474891851168982784432026808708169571763572027196306421408397107144044142393253312422464064159762258937645192097574425466711941968315122198179962843561961358296256806738228355155733353474031288249823250415653411315001067593136740400580707482058232552980830203363117465660122100806678530579418884599758233415305211484420092711967073846228629127009824111094327697291033234363309539437341906056173221595628391041976473461194855594155958500613913818732546189339671940657671833646794902661641044257671733799892242457474638795118085537091444643909982204703492361368384789927492181831861977697933602864715603099808061187444890335799620980253787005117905997378690467324066017287941383467488928908985989631667914791134341987134100947021102055493771056366339660107933811624543019560430187792637200148569254949363713416837083984705965710531459634470550180158447651148216224763237994475033154169388289629677211477079989722652717009211531881211199543425495769695030832154051263931117048548484190173936411049655876039388998738097562710044204405666867382925652577453536195658681115210511691273677619800312026166496298210706878448534739070121979521586600485390960635623014892643323362282016503038050555079858940244168237333048371923669596676889532601615790339164094777061862748035435635929196275245850416247273545749699195242549353479143257817407196823394535595409736162416091717530565921688590103718500731732002887343961966530772540425418195224078223576686238282364586333424737266173108248517471092311517989328844060966101918876213168398525329751563152860372597200784013833503868709863079263215449909788148062757376505211054070469527360372011223196391104922558735765213858302116659350912059324577978005990191093768770763895555862786957122658381457756826433586672802352283415925837415573098171432131733479480358948641751338165688705614589001802856105805741450948475686927985988241095182986082969245055157654371630235390803224912071079846250305421874686057116508079101143940704681426984338283467278272373664752986509800252549290264066036035283346398353444556960442093671616093708753403693367633162376019844332640758700280550793463326105998778786048032620563908997834337186696350662440098911415069406003155715220340742258716171213116115841849727151437499675261180688457218399458569783874505688702085452225128341071432937163840918677442708644939282642364588735543568763253410333694963949929670442453247474963520681809067147976684300882997807741022493848124814705590728611952110581749210968445513985221570522701821336154423705647034409035578625203755356168527071803214320381621558539868817957621319209831554830900320057653970590920861435564166097822846548581586478801062973507308357973103623351147355481561026153782404207998019871096188134890568983713324922215185245533589278151924467266758301034309484656231471774965843239036440349510330049804284863338353439702062124777342591852458694561135845220569958533126528283434537635229018740360489463763505570815640159371897237251228060781619100155924523910035332067768808517433343995291342275211759313978094680404506127412967366053404247945923105060079695247054844272781276549817643937812930227254333163815979252629554840507746994062691230078091119249397010783548693736395957713429398682348865560101158263387677000782817025752853940453827314845722733867934292912621048683007662903401761789535710182187087829191840001959531708589279753404571025662156409316128530370499655062735654756163656982115340027869647098214711014080558587709403266139665283004515297663548843999245616379403238771979974832770636781546632316488820980104797636766123191161521709923883816404336681081105876165441747909640377617228037289202550337741788062641134662275215997170102069639646668582766177146610736598067698514794486410646228316724471628454031570184113579494670597557851616135216962219213882085356456093681101118359565034682345850617957436014161886713791489311638359642034680633355053246841034711927874385571086514874208431417116600833640393973911946289887628418442682997641872289953233929033032955016194846880674009205886438447353898240480630719220355236654831046440202849871055597353680137197970983690626369167449883687460905044304952595939951547931394323006593164139444170024745009482095688286663063000956673663594772027844417016997731857891979683355429851097469308555928145143212224066108112988447593508256687445295184687140515904440274965438493940773729210419692850308460417879878874028571192137665846029378332513992880890559817976479007510565824721323256454868449982095703196858018637393374411370426139972397573592956782270864484141138701909881013537297002747243836545811338267180826886369999500711524185878631242444426627542276177266250741650426422621319689564828257962638154467775330236745025265907612996833858533669307587586264394974723672362152979549239190740282721968284658422081714369691416236198969730041081200176647414819332647450386977683898627464683695536521434009579926994967197617413748051870312069694865428731207942862216942274305003505197325314960020473526852147215736986578010994409634402624996316876293388842353829950768096537605134742864712027758174209818301551908615552840194252111591439933464947235525585533500001507456372075721294235200138450585128478403116674216106452382061658789929468386734738625428742674590765900205979166439224833728958683444088297410541534520010535533521226887453720689829866489798983600879007224701663798964069713907419155323005258049357264585526806527343134433969798101217708569180306512422467784369472193411378314754470933427189977942654062855215174771737946364144184665900372893716610262817389365810916950906558622904657905677926610022700815957697210937942024370495542476736551319867666444124951655820151311736147964726659816869472887392454690394878109059785566253439953692412327833543611919896064451438044640111957673934852965914012360120407011516558927109975878173245827262983489739037732601912642421718040747056388443401243229406237975263389819663124505846067719217291214086330624269016710779030979991799994280230903248760458193364994822615181737250965570320921722483559743281233592611751880375776876309380413668632059334632314731717040706488537938343492096204338275945609324945515404911838265834219475377983395002278234126267681272993704361589427172699328508940121890526799527247002194662705474215769676036272375449895986803926498421871165058152078808611102022239833261151137555109700482315721869884277019759804858488790853468067909078612425294030557325584440678619838483108117010927210105478720191364449039787619196203015623089685711346073032077155863416003174148271038188089688276586803593076723281472359397128704635675393503284508012973294787968481489751577504813633076498452166705729990515790828296988561211848626045278789733176181997729957307971826904532172441801681249558543582308108323027420663413582401138711458062071739114696932905655081717952668654567438923796580668021435939806984938161166756307815457944057055771399342817425897865959735618844375969300197594177913372552508043327508468931010742100879597919758248473412977535681130080117076240296619793756926219515019031980463706302956277762651411996768063608639306535839727456676283879221801459114914929577537790453243094685214473362204494454467842048029922183965139288412655549932607082126869024463114378508637461018653004576828648441809295820611684624082891209662813902049575672111170281304171251730867098056283545879923134525911570765189997220221343718030776748750524488955504974777563013873679328719561515487601267410642191571781585725107289448833237855256065185706016337482466650475562528558560345403616953041425645212130614660073587712816810861210806390170499143180762228281462036679963566319439716925678393128058292932741967379671872622231680177453107097683791366888094247327187069043245532402314949773213004032913228227150623077365300856577566805817680270351245432049809429730611858448956450749063077408908006545370538017278061677091164001577347467662987844801880889150277761845261083870620268969021527190353407986309730942564813450871515096191265149512443313031959395551991020345081056734583699466209741687487957337883274507330477719141410233683013252683696610346668767593867855197380874390395205522656501579566340100553118911297206412378825228322481866853117426393735096842018237063706709390916721849034438004510201309678854443452597677396164120692530103628877771642021120112935944145891194927217217763166777992823334963534483416443155638856518666938026215784974427168989651982543101149964795579700685198316688934404971868792923988714176007884371339653709335875744037839419036812287810822129425661206829442722202309515852188994273090620728074289761346920724883141218927808996077246731358174361007826520064067982756674252387041637381723802563553961620825318414376988827924432074116207735262138536849864586887347532953380089429064787314590057405778292065107816100284646849048636377832978816359410423563569948324669813476851794648081373288402563891461661067027534685880029742599267396712520505811877333163172391228681008757204918199236116675413289389594208399746492288628939507958554744270334149394170448012984387771830216976200165247354235500510169378139717634701425490629710949451575993150151844775536067009353980337731543210494725434450629117510686203936159770768761917237568413443439528591841404212952600230918457634776777840379367506216087551289486132121351021793170762609180473294035206105791719122809206069301620997215378739450176427996421019040947847393562154521044455348231398297138641843393915805537103481359909095975935873276915233517249130743112727640740785702955230149645118814396907447453719387771034469668603209874669507050191956218556459136971602375333913224067430673922464923483032483824677210301790622180544647299895966735503549536240469001609487038283033552087378581555557635121625582672109554691537045639228840188680453990783650877693018038790131806661274107231011249890630113977094894727440150836217532736053462660904828746935331350122142444485376196706137086139688341657290997581968183471623142321419845863546786003299033102708068492980102647395663641564390070558388513276516032721897372144118803422460689217084076057885777092549612423974544149442872014821723218461259258060853885478206365013709139644400245612170921572205942938672142851351994754035950614338790102631032758571497027531030803424993511512766766074382946787947143339445334121055796607841631216899778446549747014430753562467887597110567743770817879852215910164382101093448034182686588755805422854601945929328926961569973612223510843612707072884871440825780430236126418874196053303213109290862090151690964537352376703295224437257568105035252911610363699914771894996757494007490617523336835966849150361129232561480028794190994283482571728469347914285911733023308825983418829619377204980894108161669499571485465906776511320990567013045973787085794830155912044582661961182156597051135754866918396950534790626746783334156731806158490883700419706491670048983086028963286513628114308152263887430797903218906013200758853088002671195740343279318152341518516199357405579019662338292085642581698430125920589629533284118633524274400217283597186658470453651402240245102685392609952838401679481326927592935403770648540388808490809815720622432767619538795157337172142077935630448602131147659899740236129135077946449700021252076251763206621397043944333835071759474251659733666736901416258704949114040059165674231171314447114076954486936326004915811252780558861657373258105201602716846056791619896763932430433559160249456405597954992327531301921211364850104163630771661013150536260817787540370770508870554865716544948189719608328598755468705018031903061751339065579439872579127248789693923153440322650884267908973116562793238248523097294273880717631473671989839771084554569222702978872153444574213728007502212622413886413497813937939450752889489033534005577804998393114909662686850106438886615810432670610813324828670138215805721777788465878441160672981250365481867051172301211469934003444424528531741918072440483295763017232460183377952734765454490719710432569773734030067259392371867210645545405044857233272581260488224293583382150487534950701259887424075601123735201682139944530281427748012592203857681404585685656659239493784364658180687932592196241746069525822000811429462349753364086367555526943779535108041109099319289386132220684811135745881512386594845054945378699306632564922011984872889747755528357040188753880802609422607111071644826518698625150743244045982882692314615008069022293188498051556978527971081610083466276016338968192539894155130921665601681469318291058572544924825980882820098081092327146458481352964908414053809893822390601342227591563242965995238586675308087195802572795954023314944485174956710685296637239661377116446408240803344066838059337020357219804887638982401509134654884523114187486666543083377872811735030254420667180002954670144205832192855216305803180872420677750187551300966646665503971637755692202737882939602906321231449331490083510089871792220756597331744836099807595454195118218611365138052647454100131549056867935195929578740524783342819793166222126208623805137365490084275458373443441444297170745551991943872360710801438443045519661500380224290728479101073269807776217152703219987096336087424364352959308897078053509788568043326536473654623328080424904249627821021783901721597074592853034198150180964502833692087578430159373822838729046321514136541407386338846746469276350850840015115883021228987942664670189403433394459201084084727279739890593631349571435772856254326615748550861176058828280422977501589668619211032072326736791795662405792737969689160716138374077550700875498489628664134768128367918625772723402307156383135146610284435205491960764084601546372153008654852524114882186492502018061308301476750939653931155811656734388359246570243807329976753191670125208491205822591751091111413409684863377570064299397437619923945688341382708395080974826600730842877435882191267799770742395798338420427368785627628967618266413411799081200212478693750668330018847173487042411595934525962059455578439733057880739254480764049184819836555402065037646513385625870938818965299451508789375804985218716814011297720631878635155449786097142624594161733642477359142008420139640172566080158050013286123856124538461725144959871849060472180324929409924586113806460920670149714694601811817011210914380785329988200091041629576435736841036214076350484507956941699304732630360660883338736082750425548732156633505563057059463162391694739431468251725028094125155037181998006678179937091237656288851005567533767963780647458255583521496598137073508114730332296280302440677493541218164270990239365435286339875628968263499693054899439898274112656296960400580998204277712733343985313663490154783375462138423662301439862327358148341510548610501898160208507681918286859439212820481014108338746748965395822068244028030842174559185264194498911542950874602038191420396800102912297538984486862916842749335587479957576612327070827406852052837750919447799307590716360703842754746488083504557311234203669859789077564891010297806708927566535848110414918320641791477687337521548533781023384371280605538788589758124661878535566188978997303215350462310910098311031919310298791486875964519931729054562353747751924908770730669100997904929446432636636445086930472564068701311811689217463430557840691649635143829947755918761549198764322407284761193990149107243205498685368970760069991833437989400054478438925792099050844858347750178421773235710012868476914450665744704675623931418034725016693613826136692506498393829675271108557120996931685380527303482350754988309528476210400169793298050967357968354746989104034791774121892330382049754323612497626434175103172849328534233445370679013078509153753329183736276987653495370200860275744148152826220721401617055012312792088831492820327533155066230851811292435894442736134740526324505464249375201046673820007902174416815146135069418879807804228388938957416036263197580701522544717940242064518241704392030187014715554144261382984748614491049195599986895529580525647057639946951898635189206621176633012746062702286988741175390431632285746390555253627142742646489894565761906839020146935293884225151987445941488207233567703087624069447874463600054361915031053850724749551402018231192358670236917450219799086212978971467309518077875759536045800255300999632595180699034536630673004963217522446003002741521057046020566978255970425209539182188785738865051854200386608641024839613919727692034287076527838894879140308240166064996793789489332007122643594082901286280642494537713476352000167322240224118533710373090333254538921267032440009783951565482060306432057745389992985336906003043860306557342106022828292830337677155842016023068344594190602037660090515989918169922275126655128169987337693322748700529062912169486369196050148087989852642219378876264862670748826009237053301283859779128281787784453978752076013086628767876165430296790803374310286152674780676506811067901959290476390172195511309862285608655237226218774482955028586988619380420767938069444385480833283605067043605468214740076297512510359086645618807355960675597951887422533008936274368521595406245006366423375254711192098540477483138766450838061861513941229652115119650677048868251233166585615657574207198519156930783788958190112894003636658806197450993872192556221188082041812914106419485495824233587878217007735454110111654831358699368994511267878009073193682618083902188818116928926557208835058501366206945286143641974903923160079410295481482199536003848686500549573678794212905720303919755710356005984368587958398158444071080473295482788493624201655151345862866938003122174450860128426789196479158376345518339492334532450454904240232135511109341324393843564698611040257417957686035656437211323583479532923827781786393368942008889005885974076969680817809227471619661550437946825494346425528070275763675685636185453621116614915704674987482393024888817536344058130135161611466661092032787618779897196060816976661331005670316883191127190753788091105376769019496314956643104595015818429316062816658092802506084889772909373714683557397519562579596868746026626958094882024502561960183271055283584065454949177601219543862492702787270418077777421191273496916997214570899125399496913636841614278267705702352273164373527215533731552920055089158562988524995862348095847742404644249588214751172786879390078824658362086082807248736129655845784084193055373468964279657759533377237887527849892612417594450029199137783397439105619225552827161001347456892646937554521347293222864789291288926644912698023941153868085923879523539208144716698211260975332017628611038764116392078718957829345650668687933222738150326924648281513802663898724170120891036171779711312005671956429597067587681319602117962646503629188520460818769822076679435707342152778589435737088801810199330153120324347215664089150996176739390856517912761739533582807930121177816349759113611831068249510525035692005009703076191396460785189970326001910971725436136131719757297104854524206832514607438473596866978976628182479994739034194032357227961524405638756530735294793579575199997464096542815151017914752558747269576131931578619960159910607354660634485057659549391119674794193344971597861892995721505519051258296480942941485637965671764534077691527013656704031181679876303630455588942202932066884451700623300902465798335132592425123051039405951824455239349372377523650413716749229991281529065411703345249144742310594133960025074007433077140400596774907173439743196188917034162640334030811720437916068461649206391720038805097697215531176792115707449655585453172349059829233742699652336137715354602784562668941547062971012402897379379536372991309104234692223853025071610920315871184847964890706042750165897896052257169686802607498637421147784647671311476418154705646665702993089411809012743755392140415983766013282637661527685743283082586123462591616069722848401481822563154562427860668754002794075528350886060533057399147485142057807989944310947539599788974287535316814782939017823194168002257862485198873840411958934385588098056487779197552596069956709388181226804829577447577239652650925685582303835972092010084273278208500068549925053391032282071934576915793162684166997546197048032323671953503805557029341448531153636670565135854632739631303422794826855214035757221514597240179038761232661355311759468932782552794778374261387430354288356475606161331643154062006795220678238999664977847041034090505304529565822942281515658626456006714904219017422222714246296255769583403195519335140243257313261064394758187067092916135954023005668326374337355719641752075693407257838923864832588880747702112632243563919886452064732074371630228861969058065762128997380397156194093360523871039005098667419143596086861785197498259814581866511181182692660976488004355885930609700850002499554564769076663543946523960594956548883661929458478171361626031642039264453459177240239426714966943878018027857962151518392416886138032828719925049053872472047955868404245629070512735719654283462753624405430825433818195386917250994541924001782680846922672874133750809710261398547507881462827010441644015197730536638994334546369340523808866618658655342709270494239884200667616595216602455902401320998249077865787980515973900407988025573726050339094285651503201745727914439716252242823625897691639999107895797985175027723578140778985175873796879012419159774447036515425313296341770957414172750773965426717671291815851502202758209944366392134060947210371728052108108157736310070692154617077055497338254774744747141657707904107605950443434349332997314208967581504761992346440944843568563269949832575503918097202323819322263398116777074729294655374246008277989375192219674323729360540609396332701434736751847504503900777979753103839983005694796820216669678877106972286469581823333231362597853976541761353816502174433647379490857338435836091771945846862039868106840363192643619063160118559330467364010070671646568785099274124362499477147487778440943236439324449761509760565592719715862854198640934880977390517863711131249926406998723481781876303717156592052879172451556629741536282948084622081238426926314493210572365907779331026006698755052417094805979022218975175023856133382631740586237074377392339606063537119172230050336395582107476855648519428639196519799940406026563003425378997086119958970607657137837144782511554986192073408821686203232487810663509486516881981254766136534610509872450227153203337857617622693350024935771272074773103522853935157838565371514209537914929439728161743672589854973427870996059459628867267116682106573812850665301785165222134824801501068654371499320473010835649836024842154059065317570305961882624632054628858464148489619495760939872740483807987414585873195628263499419662688789935235425271240709461048225583163979734894890140291818498456483498786070703658788556366673866161040790859942166186516883511576730136328889586523554773174171577161117187764722824012772417072765470860775863551927486195582359497976970947166848046749715382404432451020583607262567507296943988165845068787321266006807502672260607311481469289647919598217163946047407986069186559177585369871700046860865060061649757558295302700321668973599070270094033890815687087303207148965320345880577114168881751009075130872870475716004166017455937206836329184108088212589053248932773024597377281875115385860936124692466877125025568543198061722158831871964222467386610357117024878102156067142010403319437402275602567573477398015286430968483713014004994999837761513009903674380301317154288297134058838374399948126516658191910329515640349671503527137286527875998256006584275158010072626778020430496725687221809860472465317925720103905299159409540421726334392842257000402144437166418851309117997830129178559013054221276526458088816816730335522811513114161393867152808076644625757339922540525683716391986853994565992600731787826459318103211453433070725644077064671126625095618916891207865401858449895010131142237657720280418090969143454904795410206217847590480289055889724028976374027223103244663987002592549170840883713258230377644115452227555432078732112725179222481073817131839466766041969175178804132536330091966383094153443428507195283678957954572659167298243202727014768402892587777914248339737834958184666095551287828812839163313501222158875970514792151652021122826913364407850596808274395432872273668264054658580429842717629835676218228463043259585086883581054146162304306613539335064896054472211706716981271729250624767547817198534033620443934488420842351181051888209739053672668966909042043162991943942465256784179283924124206425303633592069396695509400059753845280741867353430747710774671530374814980514271792878493283228428403694113227449690414998797183495569731250073811246588560364282198183649024980828387675136331679239652951038898841550123077857312338762143047130931495534939558457384102399286171263106190941926823657682370824792301612400648373166947188267570896159252699242888625812816115464788182618706016284442021365396770962679745124153609092565181336176436004741935019674646406464247017399289595341107168060593173850828103474897229927903641091558974453879132897111800190706257574486093642859903124382983449869251160556535600991434342146470493816896292251921287240036306912092699878034468778417757490411263646459308758923189894664545853382185423697022014756520360828249903177511328790807176440538943312986533670606554757316193891574681823002187535043394247290437183917943111698928937452981383629367511701611212191340681332152816582337133207734738004394202257251642172210502544733134674873593163151416119112712288070876094238034641933841089879501361099511944365277806815554197869536480905319295788865604190944705901845484815883375144803244767145485762340613803176931867651616048728849464774439227228057869302335956567032435456905272022504385813964562565266053146501220294513082991511188222669087010701712892198821252709355311003056010598740688105815652787305377818052863423876927471730674088146679051728517001177506992598998595891833377538255908998152749033472153922679418065855340115670949145872124025126486536091662555389028670969880522245185500176076276253442450331568138377615850848362176626446724951926686996023059781606288105826656324904935647571636217283887313631431110701489241983092265781549853557738882486438724638392744149419968935906279327532793323829735689039947837634537969471631229308981221076278404993139551100917481594767122423872114167033792972821051955959299044417598272469601585872209570325249771831378470275619604031938620149604113719156160936456114844289145524562317293217712970861269066130474509356596005262041938917687836111641807266946603095958419611385388945950691190947913918888072368874067818340886863082562352148522009676368404168045373071370224346413015974800577236633722790335919583224268552222514656655115929988594252008891562136965967972071122347786815346293223297585562319116817639149520716836875317320688812841799925735616017030710170043051131768181671247789839138068306301414064461373372907437789386261245894960110321517359405983890444025051814827843693438872265050914748550026113038179612422021626413265046091698826531151251920171032073227868401012847808748782826957403925576553638253484811481971685345708345626038675350531801100764482862457663006451945718369176106901494114275103222226324727566442864116119699496644124982808557567054094763769140719186910010484808429319948134455139093615337240466500673059532802605568021421298883867522678843495987936632007755359329324157695619862120636619269812761677604906473875646949490934062035943882751692246398760182549522573625681572975873866717197633461476946893451195314888278742583241805243970575894366471289268350613469188363087338801674038346031843024025067553534387792357932019125511265472737959976427847267441255727866345086791803405925589434369259989678253705639079143580263984181222960251315824881462486819842625426371798893727637920547191612694566027957601633811225990931049647483609566689333826224961080611102451059833545288450645922987836449535127334352912341450039224224242067276727709175506928727531388743153019321583364266164976829160842995338263538211395106318692919037162688974169268154791967890476632444412077054195599711933769007453363553031002193130348595542945786228580292517635513804252576852714255025358537318001168521708195545110351343622649026927539276807744329239243382462286934090765004991952877439007315505164599640860666081675287023006129053214284106739529807758882611199055177191235689514462486337645748419995100211884753096771703988012738803976127770521634727889547857407853659268488297932404603155056600397998829863376808411729931640444344518509535543134422517624497456776247911178540627989126615916597532918606249371914936519074700325407402761713846846702730619676965925459132187547233611655018149425239580255897541752242067084051738750491966402776235313219177644090861218414667147568562515336274131292826887366317663635143115109201666179756439079011206160093966701133431611969487356453786445874130922906876108964787856263855977744013166912879128922112979179453386197585937334860384307808217838546063084680830093477178857789158564702186201695459659231250334534073799764068910339147652112750648313864305006023110840431807143253088905464080507909163702406651250414672403943457883004887943383562863915359082954581457173580939703474219226783819157335907120368521127280992719050078422783133025622472975247357589213495296663794418438791026789735489711241060080554843272407596693847855820264171935947876035459675018044491141092623127974215804401588866844588245114262238291924510896379333458063382315234059412075627927581912837801165100854626952926172508980530437475310758359528912722844246332219255278983168617483885027571266220862442813412478991092319291157151815003446102930832725098361763379489128463794191233860504530858807299105696603210896701696887050652544464033699960719339380111193294651412148993336432402980373777934802869736026438540024003723828413051322557540233534376768018616519746979229766416446984056068854740712365023072668895319678449238293839044706576650687104735994308260527248625172643676323913321240560084909974431391827251653754260278679437713724879477759706126069758641311974709896713960878615007132679178156518568670052417851126903867525864278340352301641476918401829342789880204407303535535414367576604631734936566931791842133359414061016686247106965372825411698103447202160341923408892463898836269417093766293331888373831323399989667340403853662647926228323948593440697628961611155322661309313355066897612151448517995944228710280503075676483832501419611339915232572404233412816332253451631918633396320128644501067690147358831341084881976788150763711283172550026344588610799157946239130196085867666696559596616870075761431825199069349052542842575771515116818435502243505773797262834039119338348779071894510994204077589187626387914197496557867051507549510647802721422452334125368104599174366832555597173261067399147793994829119503551431111935602831110270344067295001485895203260798269260075516766345963337071965669826401325128550761834223529000888215180289037516780092472634066968909440885999760649313421768747274401508795866195025480460841656134142103638546540205607495730651050266535687347880574439104669901824727325044518411343417004452008937421829209002536711485848529753084905837210874516379932488524870193331635295862613781798935858425582404110808640886966544233904050584756163662125318645826711367092345579374279151781522407426013631214171377392938921863654335945646088741895477027231666578608230479411269622846255367588223075594818150935832231898324770245724709972452825614070195315987037824438979178111759542007668757877061386273287262994644547195624479179412164907685319721044180335840030744677120189553702032624015917973635669705830841857065506562214465000747861205046891376698578038499456262286480359786369725986185942017154578998453704104787746184661366738429707745199888703299079481668777683176496741912124775173588021711888001410326328982001795674348598088486140828942107063409378307967010410150250208988224748018288987941011614683667014070221530021217362019895543156067991911067632677782510480250912842174200250536088979234682724337206566039099967524231023819620627044463688696271118500246302801390875421075171834531073142784116580243674909863014344257830895603099685716406953402344562446311156083909821549127479693262672257564133013358237671460190911117088773341590582704037910980632591469908460435848019832827671368751804012199006032676960166938800448288733833166138670486603240004535993591745681518637143183230990043759386116115385504695970429891310633938607737861873176311274921368828216893683437723960011431694442148071581816796264550199560748205262377247369429408649990828160543586591100058698519602357212629319762100112755983537790509659746100827074438353454990718537415973896581147289998637390894646385386230315183380002208361329762207545867570270949912243351150038564458830666547363279730479763997228441373192254420365348831209282972781596258694036381628142728349550136197287018562793144065304365553646760098212081003984538776972022490130893832626877591257582483094012315817331519851308752843896281563498295690677928767859804326574013369907435572959243040454410523233426516998646221629726936527746232037134664419315298103516884535069840303348513053095265277962576644185063370832327140496133169145107931260382585350371743683716455207158527775349689895395685314587061021651333696337431641810144782338601361983035236307010279355731806519805261409089264749385129518228672279923585291415302403549228699306838291985192769617414177493912375748192020605420319904712661085917642724470269558246199620769741673733336102710821860440766689327376980994319538895762220603190919279062361797706123932888257341466234095716217603216164948864901362466795484613464088253963593095324075895034044888882212571771137561916935423219621524403590780325974275268378459844721394190887916362433844559400357787155882298689491344357693860808348744587077365529874832640483129625118088107101419399714802012492644313052513757511835033817339054485057110378697038942184076204065136510831233492663167484428330889735360161633710834554957278150768477657280042264659020025758127069834410972210116237659176439518724405490345372215723016089376406602504082942577328790357677647792227932757034328974794961886225472039532021229733937866412816132974115716187730968617539555458723361182857200038686956476875487500867964306343426134180620301554820848882834283148946842476339649867677065752765709475666849535666849184391713857530146730066073400350464547592252662805675172555978546946439187107026630111979099186097328574303436007831305672223231807016694242843870212390069340542082829967420397194435975166891288019229981892456443087402478593775171967671264278185748967745055138887413294998263902602029258124026050114615263075861782920337138101689962792965494578319769960659095293834422358810932217023170895071274471731956828874538196397896427605144436619268388432624525531534126643090033100352409083760748887980056338215733961089303654736676541174815993287630990694529697109310144944010556436750275243456569006674230583613661709753013965802163376253458766875476784192414032918074212566477455755783067513096245756779660718629628369221589372395741197903439992741756811755930134922585255685931364685961848648138575958368155594083754671062294378644990161654379914147613861095169985242635338770471846528647770485705510998373661470992945124923022344443156059662881613793857623903807377725086618887259036333617782011324631009682181122784645724856393767449705198566268555800053454125324427938510577579814201491197197209373966964422337687971613418254094223969361281124862674042782942813450103930137630818121635717275076529670670341171256090314273335243108794826958659617851643270513710747825632461294335768587115544161569748912091914350052461773237360279286238188993776004564670407708931380966779874479163386120998553461658052636776535546932414736328847810541294514186506666066097269817245186078987718306255484191669223159436217975932352257672705203556089667590299300653839675007058460437377588715634063642104989860362039078249440848059518143385917255442527936179395545675399578879034493092198996850131109409582886529531778310882231879638146764664586113645121848165143813476376874340419633334765151737961723539016576378534233354538098797311965840018199867119468908591209808007475842428195285199540082553041910612754817029484003181046668299603564543007364297858919281622908390332251784342035872295088882677132278524260269170721787781072172931837343494650146150675476741133447178110573317818539356560088130851609986549551974863036250328331114780573929213726584851470038986399842821351172339452878692208535014406510381982323336992618528021260376218727310541883237668693316807432386993248250072314589225254789422381234598716398443106652794463470178513470353627733073743512691814497209360375150920308715504778750709081913782630424235140821733379518452499530204322112800988466455484071920313171316903628564746560815852425904314265962545900004500783189432703330532449352295189271099946430361867137152905366910131751525490700781581787710635712207157278708677729178632118347001549538198535741389135958479699958293879767703200780961409350437560889430183200019003154240188744294401484787851507044582168272093422972992765558942274711381538288670167167921127988514561710522907639913180327294024828660362482388075120148561525646784944583387673747834962114516673373131137412699115075002171648553325475568042334824207654625600806990541302030809147669015257624228097703511901317818552274154707315794658614963827589819351917853766394752386074873008222731800752620134868178055001230835577340647833420614939913047083200951727837904604933324666966802100943002210561970493384648876688797651860325658456068806047238963134973480507427426125563571230776067445051909571127541552672927374438237173426314171533506416600146724947556893035454416902476710364093386419206785715096144682464331104884834929853357676552791299590190811549130906779143208449309735678037958627113313444796316550199454099740060821150168632086442347480209667642075082127349481025684241534162324425979878111328305925652570111832618545922006597886407130257981649106592937943183787747697258820272830157281697376036488530999040774912755431935419762083858942668491547184089177218802531157363603730787418843370586688047011579324276121508101127729165010972865695911876693947487034251234696200924213154081331209418323154773012166281669611383393323361429946087671231641533129774594398546229307789504172943349088313658902031720306372437443912392652830321760499575561915697786618967801423642662876024496079300079285212630503585448502662120251925193500656261510409816519960745964571709368251374274832054573014449094581500902883073352987572696398299752413595287915775258980507785040734848898718578952666076900550926283702808580209060195848856446709427468304036473396508439655597200463485591787581399253534416068976771479685024399520619513345832361225788715534672413103376157671670740466475656173078659017081100272113076502434083274047218310181165122546986301525950313779095222414475906520272485303646135056353092458774080037754531367433103590330227437858215317989776053665094663353189893427743908577505863287555082289348546510348040253916568114611197028816271994462205644878679730490319513555404467599383426579286091161842439618902718224079079200663772349265701939549283576686983330725337413288731865681959865644131574583748894245049314784124158773286958287636164099816988344190747214342638237324650691397086881928471809503013722844301094573390987340715914542566378933405168168387089246801809883052731852202306457048834743212417891653178386613956511991192755821414218459104770025938108943376560694349991295994646449386032363499342390658346443519157738134751266527714311764423208133525536521936282981037527595167581664131292370866568245982522017903072955341419824380097048973024829712413709693269777857929173073642359562624208318957960253926945923612299373037306651612836090852293118218597702507785799945074593207584888374960493329281005974512921095347167667318686358240084588518260393811555536435089896977696521149015198798926207306474589332995066280493044531385596126553848812126060178474362516083693047624551663017372189367615917438247830761475003881593113974878013257859505411911981142803320181545002959192449100403695597180136341482096694572708056048192296341991208925363133596052495554700915845098673562057516005119860571236504894228238647303303537250597422979023388788346672179446568250408200053723657643756865996337474587873706599243033885915496258587737505777088658504834303588492349730295518422749437695327218146991076952855897074154985458368343266123033403253403906057139043183623116121328114273895409019613719953848347238062063537934074895979857881028499217362455242458759928738407435827354216601374097386944098186157098189903433301160095055011779829312005982964654255074748225744573986182044944273864562216462366773930301836495426532247990586368672363950220496139804122740648344130287413969222458678482972318073520458102062877685003311251528761165905777804071419580762775297498499906907093371832744548499897186557150475495246412243913982348606082650662508844926524838801164889201642954659119040026817866119751692776533507144512667445705970372391204179104676478224894671856629800381302392190927453036610292578598547126098374540005436461543116796622039023267239347124685545355245050219361199481881615726847792167959489185966291582001464820299913716833694738978972493852462025382276485883194237389028375713020686543303128543901735181048019229829473781472888604330097828884451277185735516174475703488107930345472876512686034613069395884233589574303509819766393786213217275109606459589777510910951652956394770117879488049799883936013864596765963823758701475797554045114547913678026761471977473155564970685783246616534739531511188880343247338656812418431285449080642806156490553552153935352146572034636606138539952048714754831237585709343402057370802191630193171653898573590931171485161667553596302182440395809559124017014654590573329213870346137585769228111804332332097422655580027599052885514360953340532610993535892008046901212133009111280537845116132674471532076620827387881452785961830526558587509685370606917755089186194545980926060748550994009278842866600258392743911571841309755993267131951008518719833507535420571481649299687068856188512999314705423751786849813996102616433676257562695311130362836855111458718193733347365842135341738347264931886988636541463313339188640618915550850204285434959288898774309368303901320477419678019131023939209562953754399247726472556555101970670777854231365337093993464672879340382371170497358245474530563574856644680174218854397823230097360235625307921805969822558512769074083903994883944896405793388418055480344241735075674044191317388178323168146628419398156730878499080517445633156833347901679519363023050844540151084496884871409558654974471232411265181641416906739459891052302242506059240074005391949561580454698548551090512626840890958391566347668192609786851536871380073552350363401049829868507968870077298028052215558050783854706066935694656010174720178688432248810553919647193974861974614001998929947616972671051832852126035670333707894696061661802100744259738056786047287161075727886616460908079426619925341298955503457045364226415413201158787363608877512625876956512853477403248746349325441063702103294965787105379931354984673662892241200529167981454387350164176945686243545174728848322741218940188093834947503454191034571560078346474444236029346252538332915163647051224555281624481011227534239675502615475186110686407682246209963830594897010944703691813304350901439962066002456697743268893450217782727424534658582302705104491812379989247048698887671922584778106058351828367893269503439524884927981379140465966643124921916007391581334374560903296823536990755794298029221963791312252139577521527852360000659687072991229534495660033869989042304287263673498068569503049784045144358947234341245780058975882313139220519536250200575879656089783820596756814117134590704777518623845229992739809624073437807625782000999196003065991782515414473607884786984709918471671158152436965696286625560923754310437748064787601861314480181657715196663226677580041823707385265300620831277201339663311729480278885881582682836392494031546167570309183358086317472213200141971574540851311922058006577870084863177356478568829332384995844836779249582332661587842962655946445761935759846947964264986674062260465873652746229938138318670539954233563443453516246843866110539554511439266495014295943282199620463649428895543711001377415776675819673900035098672337301609446048963535126163471883741145504835091060988992327183637490287435860080402098712658467399712627100294472154024381742073781970975446698416871083927897217503876061017108516738164348895469695572814009678236777736912283381817621805853713352513227881040282975091985137820980592593778441158687738969865000529014082451690397492914268864376318873965417332671905372937221540276505040301197212351661283403515969595884648907662676534333474759278452723614939133485453133200970481121944332416711492902614517401619490494490089848533282718193375249023086872275621569644049884317443371356612557843733389353301542921262790194827103625536864018846216840025238579672026386035912692304975084725165129528902081025170237921082041658041619624306789800529434419126187023248057799852904117144775042693861298320974351996946023840152718122161340492834984883835696796370950077784634904807586540959841164723289042651856729461698824084071088249007150545065688491150007332655897467635151281746493618644443708050023433502050803161883105150724766343635101329688942026884638120943181810013769126204752443326951222496353829234532106066587793472725147130507598499254835706302095885774612161748180279816875420981986614131846853319855762822122249690914711531664388230803572352029186279684683379401646002930676702282073089455186179565745427032205637442586299095194512287006922360720043399154950666746106142354746079545720364766778619558760344238447913023453463250572383464458036703449843010690362663872352313874969362524922424661444264538209262766089574583694927362988644589681060795764267128164560503671925406374929907512467830089940554546456837569056195542944011056873959003762219408745585154372674388460116826091177398434841097445740728080971214978110352437144384304099953453165595783361408373598874020088007120313210974484699442689337622358133523702688576166499159304409772419115900763056999960033010100289832186388669096991610996990085605594161814286263377359681448767530695116293176616362655328634180346379280217654216460492663372040472167687917850071823064683779680079833387944418771935991486438966777005997406495578493027108026101973240530629640613254562233859122855407394405792035106808447145311150218222700359751488805313072492232787906211352951493854394036964126056746277050726921763737021943948426583283969303121828296810731934191270441086584797230787098946441188971801520844834537066158357256159407330833410440104454584204297142028330421674867107189963396827727246153377038176388071444646652226096475040354524804067306892039207949825666616201561292477064220108091749923845577955617928870861931710844584160095360257140575393679333285040100288159926597129224286678236809629237216172367323373064614148111444752720031667828535954860397611492218138143134017407063239823046007430946759039348095540607889310696888012780657354994493218027958589863048970094186655929401557961714818186810369946104273241127386257366399971157554249296586556123221820966258559138951648102395966756300687398472900594191662786539899214079742312532353508925942215796496980121216550347748107845732374912254913829730504573069533182435805116905758564424209977120556249171605522386544954960483075785475741561958711801353493573875291859920137835281978601022743747566130914916850264330984924365793675550609657527166713981010640398289797648090310950523675424931802280819021472184493481467875296100922357280659606198005487645886317434908418819750669180165682319895346314116220907693080785449282908921913953476034185637941400000370720589600350994669068755048161196701847550793908321760089443879216164955789617792541954010185199492717557115018574829282735313168802674315831403874803125747549416417675276231812909976759246743695846254765822117767021995771875947844157840597197857182618115579327933378305836759568011757293830784874679325604223056827878785192669475653489116284947855349934593750837398108417593328464329681952440186215325483820691021460892669220187913294855278505978041445025960249216110864353253707019196405134530147700456065880721294703284080323067696218142001719208370015576844776306160402771697806935782154638699608387334183526909540295841609393104769427339316609117736125239274698527251618705032012900113534160596600686061999389505009623701440050054941002116457137596305689627442219213303081498899133216393133558581315548727948812237817335687658662749925018652885264835302911616725604568645782923201576450605914257374299316751878855082894146288531644389685661003398816182070177719103216289661877724546798215511888417192261604822536464805878145258386576544785890252552414535036231111489329819650869145865329085166332938544404493538722434085620683156267314771068069254630201671131832530112370809502728859717943068066023375354200616596198400198450985810584382327854106479410730019328291663251622082429441656391087174054138520422478555983199212728684114724796684314187651031211092361651676795762412806856730711835815772312506389807515323554390865125074892173241272010067639519692238424461129676365942669586219698853900096024286399624227156208014283614120837564297967670266112535296630865105341448551241968192485829061585975917644530069168165542073701916879552881571402445237775345906936749997774043970033631333172910761636439682305603251821360781967776399719459466001420335638204381727757511474592242845983536595336126945102848164594304076883867443607342835647342744215690171613961922320150997662885884457069868221791415232178731442795455521370979171506216141970693252375230057733228077561060477449944156512171695734371426237643464866927662387648485577549870769199773003698605322164895269140323639225332656214025693678924292751262636721905446725948298733376180726056098362744448483250702984344100305589486418431665908707082288706537071178623632021910177586288380357574467076969259546345351882209917711740020464856744561456741626512949679227673538903803847326450294616782007431661339421676891601749830106020081892260654866827020608313297775938676803056364096150784160856894832035696035084811334709545279511520630948852646188395072879495887517092936165951326426881970641096498526317939986667618620669989295045293990938991873413049637213172279402919511119761069239004368223234832757715542327608601218703382471448143892942014887695499057803783669584273139447926543592242773654067900218729542588171400880643354839879535814127470288279313307120817542033923910093915398524110713770719648440961526602331667339330905829926461463927923500463568134818515823451404526730332289615846571459672485968970590433774593737077915446227724823738513233618402389627205073265677987065749779279537225862225685862103648880705109404113314359461768179732426470110804223562138462695328790164229464717939848351151909318943936776593785490932689455498299958591966837989416332530928272214567040513077527670783573433639658517099528773437323778726326939328547444956403268975735569911052532385851283245395085414657049692911551332592139976057204749772367481758435634167380425089528591043805591824159666914161204780342534988004767652223922512130782950187165353425759886124708867802140523397662141399789730955578850734254098339455385174190877347166274310739086868190468066309346217145787654450250294996306402110956919804606393932032905648759789020214745717276179089900884106006157454537966543732859115006588684208857651487639247877161379644042034016118230519317941580875097025986766708815332645061723628527020436945083121469153083312506497163958497666695805630061696240366292209072467671911817544320888154003575762740724060568557651049189943009512751704952378741363761823414895752768822402491379069189664801878514176251901552666492963344579373473263018208239229961519955615819211528939201756083689305444982367902920427165878839742494538687003658136556337296075268737218873974123814583709569894990207389889641200327101789954678345666717063880219059808398341889260633726025250451381244760605270683509901361682820896550044813703658548928060426034383150040068422923026826652009979109367471330533287839880417853455603567046768923409329900107001373865991402252774280161501882985256764868902226405614691693450262796055246772535848210856390355305872158691705541966138823238581813492356182479059352349607506520836703397786536562383923402347164351072062826669050845741603187927154107461591736148169845269252987087353853489065057238445329707282516677609142104259594680472425065832799926769278815305264840703485799496795833111388471453391797115216880743521041871650528134316252713132112261730095935159470370528604532885393904937273807702685883556806597496361190056507381936966600376571913036646020012024544236673992707962987401189354206593427443783285860055740542679082962542424010033819477692492659819762052360514059423744269461672819195771835694860470619064809081936989803774041287057471478301577984725141648187299937216484959513611771375129265181215348814537967110648589448145723039486860740843159056351579862987002553783071337201974238548174982644059525700438764143914722225992405215087860941620316178844324512715580252217782235889183772315720777057457700187252858020695207941625400575381373409934132932595959966253968683815507730286614738015775512281031166944923312407700149260821673126612327669891266768635060529652544147812656227863397310648124414875448948723625071467875776287988195101684564095512415213652325819120272792903988512651989009329312550664750490254926968359204583302705000124389345234501302183607447863437828781637432191975278804852471205589684297879635962624111576460924872613741837623390349189624711492365956026523083324615342692268711450280618384650655552072007735630709938259425685917531016382921099468812747593131412649137727944674892280674389876449432422763526444121588466897043044886272950884019336288922899342159467681536793922407753925125390109543116541307254001842643802861945296742642262459515427169765723275897267581628061222524204768586785706393128259381868776977925493896246267405559658798878014387126569078158015974743494127962961418924984608101687198537176330396183995670101842469942458518466979616366933770579769907031435288089606111108407165507943233223540269671440147914013368071990259086407996151406884814848129775224734692611865817027002606013853020615855388223966374631511300091499799260487371261710118060788151551265662245967773488636794495603926652353651070016227146293873646194607221216256105165298558098563915050318023339839398029195263555286159641095929511628033693570973210868993805566190301933005190076466873169515925296554762505630239802052524104329632454891915987257688442533183400938895541538102564954947655457914201525547792774550796443592692929926673509221999168323937171493231905082956779196841535016072377575923763319309655712558482970251945793296210893657097153214389381227232020285384784599105300675017227122315489118040888257446229510885627517121734020313290327600826576222811303998734063633271814469284345141538880721556389198808866175039866338483589983010341400151835438724314456941885760979207806149393703870710552296829914710069792884654246924846531172773857579733999007528501948419653239291158038101526007899399131753952479672731538158791235848188590396186544907307428803823427572081055714905960622736803971906059479683041044552615787361116260211280205500334790340593142670578987044244144823609387444238687544757124484205029718315477763928638291700828519069749836535772000575975213077623705638019536190692975105034730239195899370810216912189749272943084400972418179156037433461382973592355158239261875705635787374539947159597608725687086185236677991306340943634251893260609962684706984143311869643599364728512610983725192207594966790725033634224466161370810800234288013629673934234611740187591569313190003771835711767703217833107554140955815059234206301024575438994475844998166293729783641847065728757128356158550965622818292492377997121018313992381502864157265690961377151207195732493857675784690323658242846712004430301573001916313145517297288385937413975286434356232567448467562289675753655728293608304215865661739640150214762538162777074258776640559472991787532201383037796078583523770909289134400791090209070743431001240156956274028345819591455080759271053002947848634127295259567443893606336899013980765853765666886187324691029640710841281613417141706381212300223445306703463508503669254605627277154918157775085298643260449221152226784491466059218192262708455019232961852412246724755425688513268565579964204434280045775973400424867066410331188549039224164410247171773663415639425793587920019012991363581401513557893425528907355216664189413668830966918280838026910759388775388880852783503295196851271642337770841026934056790261885788441440342277796117677487038813840556277720631420519520835050165056814140188215769680863853950496774748209828510961838611725966840165134958826281099520296560760299937733296495031656709474009312221497855574496717590680571103193098579795441516180162117503276140213109557827696686862549810864552064353183197849963323273056420258903976079107235843022865631721247580882788476414716821925260692276144436765551218752748321752395698069938522123095629229402200418183299915312011355930403019915530657595659609940862158154877117917655948399553539547634952975131190861907565373686988564441031748695446137729804201271551270792521043494137483987014238098127768510771329381921850234788077993810968784354136000448324181034799077042162532636974709691256143210407258018773253782357299604391980037135865461881594936828575146332941205656253507174305191198501856663591915054146438499598164903410777848131302686954401380086036592059998742990524221229926098432753224648549092768806625974908566034469950944310481797838442040687628952429213535022250620100942029791056822306476106962232377245926799708779624730933115342726734484868024321345351386900998164847968585301680887711318087363218316729924213111437998776989127539162027545648499326615229221762948223790883936850411915807208713557716010705354312353072809805726170802898031945900161115777967752825040418970345698729661152590046406409327629432056602254608968104388139015991325477297334296234421516259209769193772437625612662523921721102590211439536341644930840002499856982077599810696442843789666805807075255734287040024502026641983620895299102240525078430916196256061535461921015179756906430000413989014886028477365482482691740874740061806244480547105376311867742501725105815168976990548616859442922405628024622240140644718148144773523817270848362208626862216551534345385495562267891328830718065829997802809790737687622710093162006631112799765155440944142877003724774577129280658708233569612821224954720834505854379402940148817306886113559560339117641644557692528749462296156797603504431344064044292844874232180398202661398356302416185533266906571520469929430255799729747623753549544319172485710348655284829296800404947009831585884925929408091085578812006186896441370856841409707193477839814997876152400772780917057040257035408662528154459725031223829683476925298269031466889887238706705705577421212418833081459165235886591792236854239017218800681971690861703587636467185461049216974556222381773561433203810046464081901575753782088156308830552250306598652617802618035030869222842518604010555686594651748928618114247466263865217298985606527779176264254342071400353522462839997793564534975885693297372009429056003303169810426187015537358771644896459195169945148994918007644742386491468330160204147501828863152265473815885136203399450594336244080953918267688534470602842797510870261703251764560873253830777793918134017107519615155068867809188856443740192698986476054644519619610439309617995795516120942823564526946412991959473814695039088804887415481148576810211878586813195389904896855243879916706372694816760338576609149780601570706572597283219332798373779497017313687799779751195877828009330296375685855187560044839565419802940478012116255419471323620076819108374615256727521826986596448371647080037004134725576054636955836473191097187209023397582937155416722936160597328826325068184311684653886815276090825816821963349284892390410119081945346510316383151219271211298241315892737805088250744389344926572651482477791558645627342349002304017667667147388336851585925407928297087930045335403445820624803452956325449276190448155655818062360629132488809153617873095629798353888893029825204086724459800430700559205915200128468671344303500493187095827040080931080258748842560246642048150375820805135101521739213558577560994396638149188987043317976970326899730019934380379032275685490212754564248705545452863639352984933856842136435726495642266929604504923565381338249178330586859129773318060906396878770756624924719255295065719958163153770151312028314429771409661119813591740218954079346736665315589031285558592844501062393589462910616942459163083977174452748232042333978144495251637468208945519674967695355326627330891823803287624700337866406340778376576764935145041623369800881483386527068447007231816410036035990931311849249659591159806175010960135535108814443357956404914712361508910170858225771909405441405763549635482920816269149594629738015455349212508383423573319055958452118527420899018547150896222634252067168429989967025288890823134765712910468452035532546317962965199380615727456116579284519171478165395882132791452060259871589816760513825194424159825438850331453921813188143832025664053039420924596556389691804844492308328235424214632875258667569691096463907726284640617351121602861755148351469722564773687758995184519008866815142467158196174007116352197660503576599349177747168951969072159891092530788528470104772667419117773139391972075134447273433651531592336538602936441453885660576788766237657515728377600830456031991431996693208225089178409547217581122867801542024997793798575066588275742070250218351982784691910506095422643674964457201436528756133009468229628404843017585364209521916139560305557895031770495057300310094011639386627385054052343670191203562573454436991713824368371871805657523224143487715357457293524349228425737380678311817031288746865106784975491212610818469027937977289160929716215669091443622621690641935854038442143243426981301427679614393176737903134318035522278702544738830421877135539095994048982602473041187224442122467275162295312013920093307801584775965009057322057635222755519309082657355108451316177651315633939103727042351683522110050001953798337821769910588854005973695534983913508488217459546141137863926152704521878269667326891608419263413539844138873758933618600677880165197598826727892614929097831285204023465950537432472528374757969152814565249679154864459147736997324487985304615046598264988050361498909417678667011568000237488428746711474548855766595263896047517189100794340819372749919978634523119219232542306438498140623518369982910711073915897397001818279406389259776303010380247475381850995919438449784672152569180647065282584646364453740432822356085544544087060240561429029336107993660544843673146711199949658465282598675882168620535155350781470572250168349886984725451164877797500122712040203390379032141388128546666609319010744959744467078279592490045887231226709917365775816568417856651029946721855039291946727312728650068452333606744971169988404719684544761435020195484294939546912592132513948779827787223931149877642953040078520870094676312293113603236988254388545145515760659979358661512077288056867426644616033489333654798742394150712675265123864694766217574477407185855629384943211847421212250510840813947964236823797536459671791754313383281257155727624039612762304875550204212435945981766287661402496258832461509378935485743558203990068462271867065444561862938940605756684794162699113418433139548508806193487198097470816823394073612473019362609401193535761460405906537857248287398130548175486394865584465500152594759281912611113859360164334466611388208621427704936072439193509882013124759556698417324286614598998387835854061618831189618642942558111023655674456691849946065034839711750556793869496101727239964928527941267827084895517074567884824630135024495302673668074681872165509571106332401036531793234352934153554770465089929886974941225738580772433738511619513064567020922799167871571235847678070669367586635352477752280840879004023294717525268095196205941580072276228436119574924694927317180057762866170326956212313580017976420955924305189928752539061420556441989951372804006665637358379139036378324805900220388675036916979000798841353218972584721945153620141556224733556078220931785851391594215827142639731037965262807946793813349290405791332173585742371095206090036303294585064430478734902380983220201277870773985201556270553937556537459036037611787350369517158692292221288503969099537256719587428841239654892625436576494924478546235990301029178726753511580373852065460706002334667445379069648141701320916617612537218877068208319278190200863142297221652196224349274517975716858837007598936299059486462711611937388816848093356901903647702152644322528652940630539136799401977788041785109737761821449414549369943231814160267878276381447812462998549291715293175473876903450380099032420447315171645215371845533682718765914770073201398992491472522009322183308525649862393341310458797600160164073569002860713051567222728888955000841019930017297770298937590247763285696631904278834896958356924458487783510319212411522611939915157754282027891985630412423392168094504668795126167553873960164252297173290239857505808495736093040647588296670729227218606652707763556455372740157581202864389220667239809718130887555740593408295127275021479415819015035826568130913449531777061002612870595402035936492461713805110889411415559331322299794530915941352605209950860870332587074911684191009686010833377825551452429200844427094108746735722241001879963574420277100530447879654265732388721726430086618961544748174010913396130912963116644579964182708463130983234548018665287994002639429272988838739001564620921732549256293122293277745336706318485458035869977284116515040735980998109268714188483063475183318215992422409421956621199437963066253561915310256339947037965043603588825326027456740355327532851565091477693267222247205350297496634730987659182706425502635302775985245873283669033598654230519373241874839029424155393038933164860172709098803731879294635511906477309404182248346088384719815364381493179356322307800894099776468124509668786469636924181976026243910659294742900144247849589642458047221264722384221397382685842132947672039466289580989222642305357732639998788095991476529397511817067364887893716918970608839907465893571901893211373955777081407512570797368273299738057566412839341715158792654098832181066049579967650465650031788663354507971374519030858369873445151481936968776375862451594468497512017609549977999861549546536411874421686624613961048885220114549147432175891499722328509822944673194198671029312255733263299497640077654903036057571518939100289836194099360279900495545254537138636034972604206740307361238675185927423369955517860878933126317510047860483201846314915889159697017609744542639802884083848528623583356645261364815747173317547380855679022075273348173566706724927785585854097497495167881210119067765154166781909105814706488864960065589386822345125636255157871788952793766235753704135543095029056343507993681214490968367091396074082728547832682072465183229724264727695741464662482999046897763854254754673202467242758188956110822777105141826841470987401817948903012605543564223378548570473002228902928108838666298996407462057136573556094514123804859592692667782845405364014315746478298065573383987389933205786841645369797954164970073036239161785881405498157077122346064918247205122478429415734357133661044171582393267671442517725605116115102446368926851426735410587357397666498737222661783374238791280818943784852236523802358638252555678450298434535593210468724676632807790960050356338545767490205503058286512245662975278927999343627105282449670815928663855084025651487677973323897228291648833870425001000104070291996044150830781795530460539833173577226117982706113106752222603059247407472149850204929475921871168286074094312641376602197570721649415624201716281298511988646489234770555382409207259939006618149557731868419836726656258972190544829163446505254875006041413634858342488459995075493161794747679931343625246320211926285441455634531192469079157727707807205734098488261596358533448833866893229872167055876841139264516631981341121714587937820832542500117116733580460351505120029628181491581938479686323816480338348299859314272992214662135644701557770508298755182696415813311696322164092564016519467544116156453894372836492199162047506005760325169046528107574618642249583220092013795120675215153713048448982846219569950866694681281019238044706719056817850410209073879878004375260834743467611531098351112548353752859006865583610168900075883768414656375124026543475910729416493168002889370181513461171705204299468684086640179562668514249948913213372009721590909848560609726800168120443998999527457708364091873729989640179564871567098169441101802811871330367425722661877318694915139221140493127307797218238809767703856252193743604629172513582539799238926508351646067802269353012641697245655664381376274753856610755171398556156487763721460947282706150243874937541020938172729122043689250107363308114614570572819731721721141994428621609751373210287946402845930334202724669452079635337268668829086866937420154900581330538519570496883715567447091404272000224779201720274916252012268808827225575954832457487199056202671155802929618552410870613880497357426094959150146306649476904052321352143983925452741873065850817327541373072615548635729227108075046268670878045247510670335980868711740338666491772462586850176324544545757378067874553999158443202565555005098849133972302953576576598753568505750557631427125806501252027930237763930454784028237958161177776121503384203156445963272510042189487671337033677745768017022796228367436904864763631532689584215785035281958207197309250042962002319332787127338350913498499446794360823015752636990199067500145789564092487786100689152523549053139162555496228131128274026657502810435789831078472155387142742669849516896878808691846691152919676754445186836988863215069065701937492723418269273147498623113654497535184616248752957551798810585218053310930603363284084529664356203897795892560195738914076627733661226523032508964033213576884899070697239698288127167822028581996373133308212387635554626052368315823523917671046031837868395865262235399561459407571514742277305203777631412340263277383678805286359139718296563420184454850966061332013625470176606676497968771771387191413962772571199213322369558129377018324370271003942096412365505556033184593649110263337527055387055622044851187597594342534999102840281785733780900549271343411217991158842053038040912893549372666147162616963297242413718729123812751548036635676956466307183870763112134390309415445969018277439692181673678156828831846100241782048487303043532509803577335396341076721409819179840212115513013764174149407384873127478329713735197260751924629265380207364330431954571472208623600100060362542024290481514511266868235656941352254674873132168054465887267578825068144896411112166115880819082810059626272013713731193805142688747093656582075810262233236282190027242036220387981463081657391892915441834354857080608932129729269686660661530114898412093138843536483071286875825092269743810466368795707392789544772267154765416007314256715126967551327051433505362669330078169778920641828846514423542851355334586394679887411188625140800582220756496937157509431138504328023457880210643057822238248922540464540644582752013645357590699903678849283884737689212844744512460816469921150633273442355154998973548300219386291979397783213121144845979583739872227217537009371678124030998841267099513198817542759269768919308980919395710828958122123597367222772529032539436219317204199638999652638057833430237515792628786063456261335922423198384827250584416232925217348150776612503984372708400785646831920677439779231145706413755705617570028735488171705125987735844460561104857329914239935379430499793113412045195459426760112985844591127426149389894268297438708949611963281269440935482898675115052351414737192767552456000000151470081142129617101435050443161623407962810920678078755242879276475729761547944207307678806473980904408217272590761356477278401036731258032635854556958226183617435484964767834220260029658441398775163491009373817197796159684997743355679319915451358821685803507018300335096601825044195225835612299703532629189284752906587599752720295434807672987213479095434045977207100170506405846711018487438256834192194805806299278479565675249872879526326179931209148976792549832085095089806566157256521303249615515964818456385459608421517946333101848085358150309506569255227108266406255083197178558748639845299687982778815013227475202768762119864433733681367745346116423638409671499721214435394390396669073121760131923485751915376323428087125770410458885933582726785945797685943249356758466919939891792594148668356410993618991699570193764880787466062749495201391769287427545113669059047425078125764623561571338644922961125079512884746572683824230249628477228235304222131719949308388884041161591776900314879399765565779347505403984480072069589734026615742350339255789943428760936608550893462471681748464773358451079697871752692954941065450201203511288812982062977102521273990221157761867706138717074787039418720112403214829677968324698539533391521163846417929287055021564480120136522400168514774800223966996787265691736990723296422635106818969395001824498216306626582073956123852914953353277812431758236361725281835711466677783172181360921580766471835703150829661278921868310311685846789455111022007882361497242184069427828000580983623895064685453382963701600873710329045366303103413648837007719902259102683812983519720178794723041237871962144811545192167247967117614185583995861269620282058711150966178784039920204922600565614457497722917604535636803590008097904265513760839174019367100362927104992483164077019703378584203991174433669927315488533444104747171643068133967001839990088750342676257298552292672161323193235048623803742216252990316641436979843048637261131126229974930225663321965167250833326513452772630364237069983216852491598074323053491092717096224142796023569183088825768058405988300103310976873061205538456940040282884676343738658896294851266283883565300129255351250035289958730164929463240499591131789736836776615258777245518783892083684000499600641266569291482760029479389415497320389813372797520800259119127541529042087831171688954003214148056331935698586179713544913444644707285849442230588245048438107957785120356852735691198124545739527913857040530625110623741652003220181723128521220082558717060074993059251754029088091177446990986061817783164566610602839876021389291526357636823141840279320535343446259407059631726007169160712871120413296162118512226444046454675456675592193736225398343964713370146920730784200757130950156084031768241844687857810621964884951790261547046456906000863075291675344394730991811271527703336253445657001150037353570043412779134613755752376725717935460060650457717572797026915787848483870655135197933186470572945658515465989694268466696206155281489503987881311068686957861980201212324048254869476188972601884830419087859715626054235156772993605857079278164791697070426522106214191007355155265873204072520849545228142318074298563341325485042193425468146407579434880559690343302059400178923682862682647192730052443571032887224737178407578844730279454961369233618681474335784557824252533797523894069570878339589853696490328679455795745794511122832689571685537721739613703685727778552382438139781649976088587318834546674334846053329573471872254380330017574852131632062716164259142276322245619060808148622912920048504655007772477575050801850354004872557924194212074156755723607763651810668019041897473931303300424337459461473765609996218027786875092777273806185081859607124788620885291621956604018600287582237178814849234779970368052975245377478722144836672258218528820295193111015927481934034115522727224044879466888948813739401744199825319596148171996062342373971826373116948139554827075531439384713381117572923441707998251988319006203903752181583217523067580200847561987920254693089881569572654664885583838589840759361879674091838480564025988070422094305841873389326353686517205029390235876830092040672717441940962281667751100621016413415591378029735445179242636155162259087003355618475629024374732139606643550530359490458451136842939702880144823867626381395590790154989609401605156614760951298118916305540734732942219937199902347049040509675426164089152691562682271978155885082413229812476521760380283935771540760732348499368057044763981257616967136578553841539003945434614606279423953236040283350436899561798363842264822658772039356760616611824242082451472513269095063944287172339845930513447448205839374049743915460368896596197161023574303283873698057909476849381879635124679698878785406920877329029809941926479171464471559919681379478806503387322415418468668190544680320144817847757788229116813273081477736201650269875675905739016474510980492723035764365395712600182519316476623070050443415221461438606258333884645520932841197252836189626678786691510763654543649629113330503379520900816778847763697998914506197329021517990276678717022844263266349765914201861856257908309077349617602222024773506490874221185807825689213067387786438449217190606683110389054946818676703230457479312052674007405781992455467662636616581813365072428465860280148377184005310617947390360323386886620070678361342304707380299230958374696186836697067606499053534884596190870039322060844712301057089023770956644338630137425880308114919923842821968225578926092145965225063667917292056140207747690431030621146631397321801308445275562065732548811324191206143700787906025208031357196832100052039647632130456514734527088207315529445776578473185174216568818436407695217706181628695030402986826252130896684382276560605730778742921773521756448714344187398885924119715509065028647153751830949395568106459923359320344192102579943242641167163863181722217837297138788046221520070509829466390588880392482110674125338048062138765171599899177158407958497326081670029439192686178869409607392865223856500819191214456411590785067633096135994073866115203451711265850021736438129894727494689259560543685006188485075067004236885525710943444063145241143027981074732210658006838199704905418239501299240535862986580505768594436790392161002773085734093658386684703180494402414560578921180461886111599704144333592763997411263024586230106888789604421047206956136803289708163943829784452377157755587273719898826277042277871306380545299223121217398231118489948122881788445956045893114921905823228586832504819432874496805313557596175845690792443431058970283584065705443538655947743170892165387809183437988549663285263951496239920662757704657077690563942700641019959089408817776388812858623987152127707889900257985006222538622041502597301263082437614789990745913274403247638209740818226365508668697301769277810215425708474228789498085735547112186930255266666253770001596172988425418045954552764014715162697632762013043873567590971419247586883896751328046140400271559880498876733104698043383392864275505321672696667829475802617502024065443711834799676579412966330764354150217657076136269107685258744858414377961818059828417465569153277602839805590850246032597855739395611450614873286051331551764994511400005590811104954996340752747879925697274301863564740671714417600119048268196951094811810058173371587857273132645153930378435288250101506970462874841733686898622858506372158654403207742149681266323001566581118533482212296128555714894097330028720601186399455731141875580701871436399919636927302656154866119002545187910295925122035112892736286497278411437902646968152228434391593338730928563833237699777081250946947531332288897225171535349713717627844362749847262222770401986760410417509675325644192594464642638779219005794956828481495206318719180377253872058340542061870255181042048425884953596559447648371682890832712947185018498227913912204560780298742770756063395471887242348515700883539194048560077527748801933060679768887272383729124523592301004622031239653907549053700640157328558278510616488736158573740632661913683936357325908332717012551207605782985577533953223076181158156808709813139089081104362075972105625614620961434292477268633951677700445194105256357457672318105403528824355216090262753652754666767036014832715976175066002623970196574697999566573644828762935930237309298817387784405087332469747210851075784230233730663541125974636715443794525470745804531642295640227573420572610293539117795501838514506259223106196480957121814441568604276884342228289138223707749804260917366412706096109338223290364648179455280779867532628035401703889820485351494856504469625767089380000070305568598922585377079188857635434191252005052030839413826590982144054845862785096588862081789105206260252574395429346461485153891475203033885696395294092703396489011422634028988521908140091022115734471431396728105076675211984620267262859089389951390681371293796081846609316107668705898703305618985389303373272173739848311672043271395457465634224528707317613730318081636248560970290477798177912513250517767623051205507091256792131682265454745648143953245518215892188082891000457725378488578260547669368415633021586237557748324327251110007546839167315611717579043554300257571437525797262938239667107918591785441785832297871297330991701041264888913336537085588474861908150152686005227805021659202083180461246721939983207744463145147553456523438127136066798412787892554880056582154799785228402759101086577251364761663108267068383579648572533203547734197992032547834657751887819123466480631410539385267725126896440774968024379669271948053068247680508031098171857521197111365870303977012696566855668754352827356549332225793764521451407158281312859106443226980765046027859951253874006075045763704156757082395840357770708195553840341645613536126015276294411668400185772576052416198937403781442647051389945349505978385416725785415838077746238436203511392062667540699905777077186741114903477890748401125428146292836678406381716055936651568170553185184646555628322006514263571654856263671055264506948699379379864099180802181543719703723029870927806246469462456487033503465697683421054805326897681784556055305993735135869751766889887762136454486344902148611975101349677833528168168031707680396130392674685418436763524690847581163496290536422101898461275670491147445993513413314768708468404910812635886691192622466615693830376917654419488726406993110723197057349972822628165114790683673975909256254621660993282295542239209314117093115587187432608823603332140852710058516722060403727151470491046641385785916813891238116566968517089601095963800647913343599175422480327335845060982594106409736111744693644493693511263263491430394421888647337575677761973862131612657283454567186537046517534400811995346911658298642193676437213785712058750061750136224870977267931159126756008469802774561477476791704072151503638915743772643346294310661792210782607840910060490891820664239169251452381655228593738034325975992144854779734779513041826141366405580580102924400357102395975142461562904240619378722267100867736744518190616401650083388922412936309093085601645763514872428818362654853603198294706587513055500918358362027368993531750816963622950548385027369930439912002326179339198751305106302136580221606483835234120839409755760337131031428316329352723881426581858628796077446352286504483790455022099881193124229611591870225436919520786803068406771312449162755555613605103446931355510097829365163165920824485885088953629569818436615697163544455949246371027556391609678477226303031067571640931961714616999287761608615546850709660657808271205456703698907853787528035303997953887961937156835300585831426120537702672174895905842318887390195635544455926850863751163527389520699660499640220292726309054907725220174868906465021955958139999477415544382247254102449466446688691296099141278496027238401006241000488901261615153573847427770820009144066313029375408638583194448871591092573576214100667537389091532482897011735954896079335873120964956569034243099924871320569918569712157344115766388117962807324901798945251152030844084486460414556338711485612438523408694834014788493280094645002103360314948190615836338963427180106539970860297514543832839053699816327430648243857135340690353312922777991206826401521992115580742297015072151429841689304885325170311929391869418599374203171993256996927186884506593696010388450183749581299542536982387165305519088085405891365385078690497442736384364410152460004765034176384949062122234111167156408144451339033021051850115118897640896240352431917873145082394656323131553693860934640926394653085557226809676555718635788914667999035193749404688097353637406487373468615188837779185124052292071908412319081203589731381924517926286673269017732938381377071629061481301918433384343790747331881708694588437658145269143124223139024518213045482483869369357103952788804310887910219528204211703861269236114419275494087641021285907206372007223947565222283285590068639092608949900246412706315403000746102955920582835781422312472776233590998348179334346152630147426820283191516924154393186614571644102611524333052830610779310375903022083650357811588415808931582364248803501463608577992492865186392416927555174892331389951246763563213642010149537711932848256399231804262877262420701362821833256096409398284897791249173074287699907850698757250676997231865222768152270971103157489230761356917649053766686507671427925261678960589420887181153598592131040109773932388076611784452057462041686799265172270408423335956418998723652886736988998576950592687850927928965258085041645431566229398246155904363126659928142837391875318372088868529647375258233912451974376643788431875419145437052629047668641406507493621593108134890397017524301594237473255476356014847513136429774338669301152811743500584928143414174133129466209963254740117818605724764135552283043935804288604635498781603281593272942646649004711210644361062263029387932535338123948529293562950828332856632089984112221655614054689033699790941070103668765513746275226297065489945261640876007091690487986699198478970898251002264017491809803780539108683064977650390896075879666976986349076357179891599372382180228230545242647939032590029859029954246641076757873323638452823649174181211264047070130319576356259812163463704308106830649550397406060268451432315578745472029890418975558053448179982614615569869467271896644437794294822667108816559196147104089744219542132608343604104025373684047911689666410676095695721327319563633894082908081365822780066553611392985408963673517980502540310030449688012228081626209600476612398487475476177423623796953321071461049735372755472816744907653339906008124220467555822958912982385204196639674633255581308153705746152627987675282219360890913311106802111668270855240079193206315517463897270646865868139935049860096589125751046492416757766234034540535783566195228655870994612931151554880238388274789456550523433000394808034820986250445708852075034043781845537742496143756357428952976948957687319661807837197238362845256275551612162954322302589143533867685071214153309976451045773284594661223518476225894178862339967752351005436835848200613307627539825398902476606090512820408163814239463016803672615166401864180774971024411066222889873461115411362180267087654353304536388598533252247998861296875867637142264432047501540455107931436852091955861015731667794136345017166543784323515430135452039528796992059861220629892003153318580164253601002621783497920459383604905117014958923188779234009999639602155464628403860332776759321650343910211212352102197643611008772068787501049975385630210174157919967235398640650172687458153793016027168250538234697494788167478660005114824169234669280906197357836536617779225095135988463461738810215555188319895504351741160169036084193378778747832122403276478985169105390203076220368022015187160220647459231127653830996589463293810904870315314433719882003509865608354193394678089157172832226090842474825742997760504978843677087467924201928637736722257338946672545155588398433700177070265321927264461915262604660761533200583284295314771146479167226612650634465476115441694360410397576332225481336632297923106407180436352507224815568309645706272889101745481783620494997777969568847743885379296788913245672727936671867713545037642634794602804655371356070968081051568922118798807273433605162418155850958457238441563973664519517368801849621029956594522518760158533527204074562327779671072649821520590621917061153327892654377005679053944910440614851339049066061089911006366785934864289267257598349421817013823933587742532576296410142441575900826673679556931381392034279209062805399150829848347149216164910973527737139029892283937082190058568862000086004727518141712880108902998333582754754585798078581627629552323801690168194671603656604895183009418594969155315201883646103601512722659899572505160342997821570444092171291721337266938951000990956715087604374478204398907600738805853743907691580364108097311134521725719176481003213930013935925338584871183567640677996751498642192864675698440807945626959972193937665049953038855104157674124836765337452987275436535562808916856995317076051454052524315635874315257843910419535759064829155573708356994965206257457105567596541482965106932882298811395835116456310931207805285902046792099300833787072037993440202397336608363761957021827337211654907087680469655484204703644662844472766882564861149312844458562240728401120841474466043748744095952580634521134499226191246642283448127824482453708957111470777916169276125568874124481032564077374377508333697559632800919707100079082071527514111996577956407959818450265405063703301122429396636698758118037318726608218357243276407313084147115251583282340641022907921804874401433913624473640821659628839490901526304598297197889162840725688894207603714822060296901409366012224205652407630609256163660592951907091151433999422140831571679475237757885349536893213394338683368441665983662403109090895710207161607438163872117720110309488068323981518685245334812055661293623637166428177622066612167267062141249508059044510307058092194003388525607339448416985395618581346805122564586050422891245227758305792178882464379110503113111725928644865983684536720014504991277362152368249295257532898096928856526673196483037711933337267071717609858737295459790769015423450969636150973037876614473208977917233128503783068621059041532814328736896461628304868039246237514381681949186526903612540032920190492263980563118334923610338544437253395328595404475008561618125649045835565799150017389230502096583809971350824426590711101028826998173681879719127959686666498245442286337553628046854677510518925647806820912360387174480558470187957972089839279773079094682775337397240366229406769330872575310937904485382124740483826129138684736700098933427914231460281129856578492883548673212770134218801485707380757552924540427142197871575439885047671949340614376568036409082145528748703817373745023802967531237226338810276450821585162319884104369120731151315265358648608155811988697888323166586447223952637513022677833379793197249321686456971962856333114679538334765660236751259439288711451798049849184859451145961589363287035955666781735466717376986857219947430927147210947119206255360560022176975563260655055854570229161057742080193469957529152728054164244063824181348231372296895545467172700583805180980841381960785640490237229540844055045571243086662365036675741744999627203192197173573231043222541624936391260811250624375380602620757459032551246162642861626739456799616356751404998074011532822328506280399842431028522194800774521802359566088722451209030480046921749417498282837363237492131977981873642901074961439213602601899427739823265721640575195259566191579999316745050213424517319245116498875222448673251065611437858318176905565962535414078578081982631907807310627888588178914557259656857997863573952511526222086063238444813673697810684597248678530736707296341273211031587031679441853977041747444311966331578598497365131688253428206464832606734311249823371065476838306414783490922551889510956400784361391712754989454327013277542114056551322572395072467290915095913164349249014640474480337623346421085202895780417377696173535127116008236855012517587147450497589381523721172460444643283081079279045087431251510587048548867158878050530616505494476319359788271857035533675403962357810400996211559551740780163721781030376998696108194284484157536868798472152408044827041367290122527448934624167219803840672783509687058557800339404125675510561810134168144417518321437009019615880391870521615936314690075616435716955425281870942582543690514848442868989405225117759086675287281481177177807234794402610231445955601406792376461045444096727132044162671760041315221506385653421849727338598615540492426462407517263073656334818358928545871216988148150804652473419951226073841014966614571208853569073746141697843164868975762699347272327443050070837917518417587715427503710353346551944074642724161145443639147145560961763979249830562743739732642366945618595929884866336341015940067599440150749303715001280821846200506410414491224158929561844421971158305149100899344457096097074290425532063995103347130189900417624099283174495894017072752753932971112683695682736556458927240281911394735001502630396521401615491950121625279109700563323394575906835429427752680381827348935301057120938773074862272758358057383902439320392528163690554671684299520118924874141360031068404928483115168092173155004880914174335158252612872584060787528815938679883775634374043619062878500512543332214261648165415964470934703742764559211551080020573255073470339654170754947988593769029990441498372733254244645818438375284078037015648146820055773333315017187409701764651462050834504478620946698519637295331405821124526403130354565586961547475148447129422615590466777854772148113977608653170355744952561411067683651804972579497055143685740716827063562611284715021037611488879306227491214827452569582846438469582787847008676158022447535887886944910239449761163121792624833991307009408939546234463501781218609980493050484274557705421104374229908779531717295790549343081115701048901277579020630443830541907552842129088299207649160897209620564728935517784961288745515491534390971425105210884770075060254609804134964979537898115387150609327389305566134404724379544494277965182002857774784819344845051671636630330431552806074071741177178253389339585227802138016827785606781738478629486189748284088238450344080382740866101138127687791481762430056983182650738637679895900130167991125444104893455101641066672819869601028802848871852355440766595732054606959965598542309541392607975829234391955328882760189878135152728763178734034563314658014936291959130274553076925693474243237975982636185380002821350002631575221764383139078578879134826826825179842935705952269851937498118898413425614186203268970756878775355881021433161758790965654092174311372712384985060142602403007291581003959818174362439600409994328067959831872212849822717980855144181236335584161484997565853743503433494754555956507086617779536724847567883714352460809923338222960935717258472438332221699135517570025669576404862378910475370476348400078012597248098814575991151300192566029107150373860287641534448582960198345388644107875466595492612792012587393680936693413035388785319439119639339218536455147953148852158929881789829116449071744880213807313192837698770814031966985871729510812442482505897892026333479988388345484371532914911247760115108906264707160978067160725789304321972814060693071564368513094983322961199007889070953463295149663202936416462020805471831929328004318841823630245498479796486899808830686590971563965241908264413184626730811648145249189027213350922152252549960511751516857367923320503706722847445496006103061950716221496504260884883320142248412939623388579632669743241729020321066848413816928029577053913785367630243615895617646012842923263455695820591525122312135583909708881644666607524576316428446861177886191699505028027993417961725919396090562421447910179108951271197713971549224130866701444569257206527687611794105713570330778524412266971645028286803736080401654354688758780458952156576596828382814927997872448504472666089748958025030022185775414455907544401790677706217272223912814820904476934704100413533955802215185505264584205797686540506502834595180191737670539566469894864445032524257199587646067355153619823501655444953844543335723550112468362767597906150891469653993226785088213920877500203583007858276459587180382638445605811994988563824614277148016893333554096984720923689170862636192642489873869097565614651283103318979994452753103244424039772214144144163909414575991001993725269873758970810721899438711885578770923329297971989429527773574252789172765809168757275149585763002895154891572335242423988050088025822383216956332710915315667303715313480831392182005687878313165332500649606079350014549301401491498198376750163681955605313696834901635090929722321315344730191396010734591359732287995270382119820529510218249573868224291189749922545778783689422057815750228122008397120851587802842890824391084686113792163507082489500355818873502126672231167236415412361426627082454262413049412505166712873477372562921874396439929321333645336626656773421922900723063183558703410883091875514341992576329097246417649677101634371652853911426260528640435837779653026143062781056688427554344244630090834431400003568963983157480140963930098161231625367512761599362580682239979770109664304356494299464083668511433066605807684808319327511936222549656185367141998653158786441584954441649748438083381170372390712373355377150970663223693091430551200852532484096552762822708963653863633700863018667890903428200164022877473802323179973442374107532257875102198401333236849254583792878840429315282862411576691237933293332280212402109058159512497391258875749779565990041677558294474413221477984286679683552931392627978331111360239475490702426620897242791814593335206225007092542971956613618610629915201780107536748910423003277934542285618594848168973704365574734663411728926311218936582517907663385471952994200506841356402048850465761697928400895881240057740949167715088027095698699100255138807294246489277794728641319271343410346364776525529827707888678199648575141073612471546683998493551427755203697401096841597773612371287374182803347335533302530600659560530471377449917442130807968781236774574408921661713943995327153478257981569788863454952983332058263986128055642605663086911681192435921914781671943912727248392119045581519041096595829301545834883067487526840303240603078900020436786076016271258509977981273526879302862553819996884057354666611483563608682105936332039472166582628819347328241282454970123348015931646396672023413940585048408891053563081869939952733752374080917699326869707961768709846403881813796070292960098896670348360366280804430023963387860285231085733665634771940785423001119425337025128977235563036686371275970215270673126012572941034954785829761502294878980192767136038448876939448596597980347902709270834532917334393272401382555335777261405160178055058295078386470459675725575751619786363326007790652601554742115367877052281967537649914454729190608628783511396252067796856091163855979646730088938616328808845213898768238142689832570430139847754041989416665442106454975595225517358779420858342310006039582252261896406716847444968403788104201922659718109044368311913768974154024686380847281053786083203988686279379510275018988470323900750085398776568376221820738319126121920822311961421229219988750388886364096257955317190318185816342647194306965907909139578613558854048777729373120271068425348564066940752490505456259079044664407439630128271793299896681718151452651369084357763645081339463316145711856422136870758232262656930545351296185737926045191656075260064669985651502832205483511484831630852206108986173417205885713049351328204205441378188969602801363433517883952539824897542040937656528975696523932456979931805110754710691141595414854753708480165356333175771494391824384783279495567806162451252066113144658365495918679240434971941864215904704432149628487215265815478920921702488406135147949563796706351849791221367958487854013543755869663205908238741285766166233865627837533192467647895987394491800587792501856809021140111683365603431275522360887035133256760401764885393891535882033978699225563160278017614150094176464231315327626988687944512088853151081354356769983150522408630488544952699109077210900871802185782627015746521633936532341226240953228349393704163401478286870297395221817259655064526847357857747494947981472211299986963695394934571980479913798448197999740096065877886496340730526504116046274891450160830103340168655125456276700008930851879460349426523382006356683808458338748263111627385151997459250055793769706584832762030218675967511206099366262736847256672235377737215250235482898530865851057275452302087140583479192762215121677084270612841664011832285125921260087526168222073708393939552239485383456133978023019566216510166400409728918718497185360873829868714855785830136306763897148890616724350561025710472409594438805216915606353425740016420959903344656125524124080085133874825934601585138078666149901583549351900426293440634611034902946674036237941049774516738721340465614780340244030366925212855619118511472969375591497337698267649762105761135247169667432531468868485482643992117326159425609370255219206278806170793768467296655462678324244430196592036417929552034095716343956627738728709522889605257182273319455673825014017954456150998949528207172153247991076928571099687960411107458687971433574370000980301784071465174610168217856817580122038897812667198508012240266430673001300870870254954260508635417500021421361239061483453267667353903442690691586949434090108246312975499111674958842087546011125085279921345559468830109580117963997981599222202860320177904506970336294799266217211004363556066904088742205946289297535134967235693871310184328943987651869867638018271321689542866406591277364259101458247764545153227747682932683800751947733571196565251225938653475943744547133733450648615824958629529198432001434223166234111071742143741608645831057761186365302626610663219639145741104701273599703964069601241850239121386456371419177600677565521477580626559598745711187252148684515523135496547641788892355408678752034428520418248280197514105746345124932837869605337278816373949432087504287340114900146541880121077872716663519291376845375478131398627194448874977395954848758449055088463358829028385148251038060724194555189215307310358949592690534377411150790099695685243240216987399380465687813202627426366682190304983756142979024493207517326528449575387044261823318381044080135523828946730043514718388675442077343958380812579384618848830144124646158031682275221061434366359726594602942589458527782723471565563108917236398273731996489973767651730058804598470852955146648809920586091042393496258934996637100913823941164838212459666799372274413989306814435019373563376954347485778549649040561433650354222763246563970283268240576562533793800803901754002721463634697525450370006587234615494773906243590405644940180759711522597693788550148648150804046769239420184124641990491911679609181662008056660535501713262581858389218146038125713072296741107068213030405865614587174674274397097147120241891904380666999289382742798373190436691816306672772767537708659599534362642285851071172142544782717814407685732426877771437690333320529960061633430434918011779562545279408537239145535047458666801661105599007258505428513970548452165493139350039685358321323128242909951309695224286807457192658770517984320200639004334289902219057849186452790837497936858265397639057984123734577102918811337973200020836080478165056327954738308387543580690923390473392716068980576623890289999089618942371736243164019004149832683195057832180818854104864090678628864535800628521120242519869906434109556805646295447999589628046332809479572749941990762270548804987960980390088019721902435377001027306355801588615719217502424055518487827913822833817887114358060476083546304651806548196158205703043518023013426986528007089438290518233991933902392754153782641524887421459043799695544506817912812768344980738488978158412907033365676228640163272766986868579457040116988209141778169959973187184741020134433479103479518786635280652964474126345126025935178608612444680236358708666169331149013738690031049397855095282670220917732221519526101146339228694363999522732801140952328875566926626510537768054059866457598443837893205243607393657305742269855631026879543738343984067327806735211244414708099198581271779787905559230821872909286617874968329964365931753050533250154082990959118527073145175009963137263419918136546757386331836051373704357906183835546413082183774679754086263280659541820592574704999604130951337852062281398319732743688803530614489599055136021027655836996912554061392309957179177074976480905602315843385065473555636321087219694309762194210098091451470587845545946291973798059341554584904546743670750442464608439790481108511725444332031744790965458506237214600490433795268044709252849500787294038129030167659637275524243455733480747651062942948879765240896342111333731316411737283795534611672935859032638858711105932819309403102190015806613138597489344090480666614483578645874773846644464919826066711207158174542941829251764375247624135050884661176846350289809746752229681971839521530631839471217598416535951088198595430189976866420087317376145919499469519245373483951366778052345966370937502267335278267584088323041225729353185604721492773872256124990846051406365282420417455711264692710041729252009164208136919238153276433050711715123742183866760907029873824628300493217253290248942980582830844304925150003775583351585565245663086172443755159579117135542421307611949232642038997488003910956981076172718541423916016072110187253529357787882621147450493880897061669235068043856692766308549941322355344808822779052145147227927680937274440391439523508315065057102152040652910491243443911332000731818799948156045276500542844783712688874446298371159431521118875663503426718086303916784494159577156097701226805497666431202746889512442801819715639530464888363225550772882218498487348824896846262379093939906307176190515151758743278751166594711719669321861684694009154400639933879742747732826420472543153523757075816386390056021322092875145026459877177067803663955258773580101011486646868997295397288677626200833933101978422393628410798415930192174421043474569087200595929933666015588628200647091087990917391327756931223801314257980168157661173128027703235253211123511843009299361447161469074918619511059588032949080471128358205343834080687698142003056472123815843685340502340650334454816973693762144712127838621984733997629899391672412814359227804416370657352525212084109756026818163421056293194896628407622761947060557020988780637659034819908141564910212607099344277612704019566913326051006436118850182898229243884944641547460276515663202735271809531354529243810342140940557796989429511979106439656039054233877356727136582465762832945665696524078575615963507178916169733950589081754024097530580961763493827533980847142592778001892542812146950069416621670225366591488895088811484369781776113806973815393290194774514496881170799504187213236529157366373328571570125849809855887517883113029397585279328896892891128878527744498878811554128366920695234787992807371729451297718450168932797104202506075119295680797878056072743717587593488256722864131204698384037842713977050702837485876566063807782781611312898129629762236219550862533938103620393423895956711125200759595181218036526602886864252964035564412936855699109398839349949082407227247769947635821561457640582718192460875096028960550271462009291850882988825671392937932566084982371500049474710545917151639633097750662183506520478361952463060452976849309477225979425638820317228146214396758664342182729633379665913421731520393822416366911406384038865092727559631409682903582990315589533783096991365536740583112438453038851913437784831245779315385678616888587723481327515891901434992387038904521632973686419288609515158680725290538436265546954831541786242689719080266265414718035071746286156655407736951090917874391924147943643997225729912099370740729151582251790939328683506539667971560274298370765180788589621187711563490464876301730368847336128138072015725176010320772685275511575506368148819621787673988820922961955090184263672231389785523384998041277918668190396788267496115012730837722951248003784159743683826989357076382966522286426844880433219240179884440550828564831586765937789436495422547877442947115104832320503375890586080837133315490730362312486603439891872796857190814032182863204588628401330698898354300089132410868052055482077198464498815121925387419885393551273574668855408991479562753420708129637481495414430386819061147719792802206450559801033177773304059461850547689172642087744741561936064549182661620896656097266464941739983617147739574822160582663983096077048364996266706159095835352982324213770411334921497278185779083036539848267860668168560499577726391469568390899837550792815850653218175669444631775042232201624526543502811691807987062297043360101116388254479972777306970727647676679302608345713154311627122546633851142089901394393565232007056520888247079180947162867988245581425498646647677970219715968698178851643488255971718289291807623131146715259607629620704392687780560221759363056904390334556993954094681740154787068969769769782346087462868718342287558076208279363427861734410153006821093150943647856289654640897017756241698393816679652745979072744651248890514150100695665881611703810779418778327398013087635308681789661782074067902795450314913800688350322859684596395794334092312828664474627059648320782261360276930514769166846778438913625984643165689879782263059493739531464284654893654786284989396757164861366827591487396126862483553582917241964049436270326922256069700521417046505980045911842783969531246161544806762600470914369837998580706343836666182312107978365004865948132804237978461035426992511127422013077649546377222529096663629933484957147368417363958617144608277569573529486913966543720274345436918454114461878695035591687337862614571490626359125553797462982627441102716530689790200489512463648357460681116582862830768045115272188053027901380322102224843969365249521128884604138857368657906598232515531495885387467455752630217991973933953914326175726735133605637377177244376459022716654764714250158065374532294786476322892032044684090472347950990541445145991074816016963896926494485099531681432136861529143618104409810053480788561686717477574949153781612805680287271437679646673992757878860968056962469314618708534849011894710882881648038441615712243346627297957606535835364497633356988436286380786531050100213124490133809174530799607099068489586312050210459738781646779683628062256852135600368682285633166799245019302822718463935226411818174772827561715952626355692892492182733474195819868249614118344323258545327577014244367429201451115393081014487231215840942531279710008346113957219369487966054106946247743952805389769783349248746700276836599789979769313478478022934072399953543511064096045796266679155677050710396195447029464759029093447754172996595895143329077699921062158327678235486709833843420367646045383914386551505026168906138488920859542787855871174893411729350621591904004145287551416345763511893675991481492910180809258324004109061615143482263302746033685728606765702703956634110104288758854117694072066655813441741748507683226241798891521761831398702839733897699610331037531474195882983146052952640770132189334091597955014159631314629133979498258551514956509860705154394747077060090512533034385939029533691074406130338799972440865993233435496014493414512031003425186215740475784210154491874221150751616287612561078179780189788043842151654682926479258710709664263058812425307337829948729747380007197784273308649132128766995110708639939352575764975425671411013772258347989300037958603832619012524079104881171690099038863721270579551816179974469393706983339117965423710866649135551345542391589480872999131583308658189596189332189343527028220942001175137883087457080101744396459769859027357384675719244789224610287516240727880694599555175102443643520383232751158497268496330820384014167407498711897831386308868947784451204069274379545336708164676225707295399011883125468880629536748071725844295831985003228096795787050205499466135023826958186527324355253538159985086938235560099385208423476315163347132988438781611833820567978449106927711770724111129757321637458978672303828770389680991159006624288182179401701925624960890716339105987044240410341588323283118030335697128774346738267947080585293375284415406559731850214390728929261172276759967547005568873748890221875117574236583108486128690038670936230285270935387798155941049994452386023232895246602367182936922012720333114060334842937781085012090489221399893646419400585456130273948175888096000304478191412115376496959985641519464499313456023938931698077501312578075943332440821945292562162708725029158479789013367222873344962612906627905057571001888442615873338381143902774443878760423723568615065489123024396000499145972125893019396559907944088006543094464497408198999744450122994034843565928785686552350692405080412423558844747053185374920530202573973817337358460865921396870457783007655225728429504499901277592285625280356450336091111194702399844680354185962707543455273621202104495322281739938710334572124324083305427384909460913512891502763638159989844539150973197453841958978497183456936409528806404201078642295231181543277442810796420091764921469732777042537399680401863817193083167998712815244086537537312414044717807502020717015978103128241131277285142105106717058544106368547936904247259509338948047418169724327351536846548582528688910098528713248335605410461319652450586244131917408757324532370292098675162452916885222416475438584757113588777839851239987838466916964117602231390960118875941472383245137016303640480368322797368167679289922851050853631119719599691756443309240465450334928087502279267374191709903553131385816405457838120199595116821512640089916493649372304226515390076963156626849863061385477387980766214900227890395631604449199973323960181092514024681857955906262207121987267729688765850382117674840732288573989862806610155854256177685449900528105919008339845569553868966856639317336054890088955170901660395076712631303927375940269328998380186850547920655797832275996287751202243706149151276347422274810329993546257544658391350057455821778463904931529305457757288513534691753174837411128883742855086602572445985182474748102940862621561255886561421572580290120819349631494183276659540250477363012837950009522793733329980735557330781440459368528569739221420259477779941893435269339458256312178853498728469616422921118511825342615552063294596169917860434304776305522470962062512066461583527669559914913841182141414796116265781706512624402127034800903910926271196421971808254193833290497085443900343107229167432711957408953400337296656207171545294217547571480576660458088268087647787653521480015658320495436449651428339977552905254090670532623624819131357266799884516915818631712891744458646424470238852788552801528104928543449383968946839853889249773874938154255926839023657606128582074441062820294726686478322313741436209193311637793879725172109331228146092465901897190391691798615772714319054815749131553300116563547980446824308705972740902290997536956625799553954135780262684821765225501022760635575096640149351421245969522452888533725097907346814566587732769387832943977358194057509432505678977092662606550467102084389996688862998087829476891833431603686124987647552484271199336593788869223040526574068671848929638080423226495222862865571879198416614280079174860538689485613622910337451860255577885057566703188165593421683384281249394369211154228197926413082148460053647638678404292688873705530859781615487489298669543101754128393260564258272998667278044092003210380321279637927569805966221777239960931726744736695668500175273340299198559046053686256900735835158983297431495337912820986674307914140235962743696510447186175810507035682724358826320305731455847541011771848367957770096942085118686968676919399484571327580162039382292447013746969583742677456116466291739631262195473111110168468578950074520894757929985710046761921022523974626139754396590581317884215939496340586045173228024390040880819065507251207799379074643279369247968280107513143209710693447545618107211527107713453639101355240298396060534510434672348901892044945113315481754212140882573495333290570674954605586683080358053320989054093343682393176418289010436363251900844352971286975795642744858173656459956094254605017220421679956024089345567065518732403880150268447335044299239186715495086503832888348583710647242212595477771270441207860009118789752039977685446021368062970747246631743204567239095816333743564768623670487431018914534177861725253406503491562630836733979444535526978138317492499376245739385991566283392431323260420004342032175090157812823230824980940766617454728276324700687433022490297723040494885379427721092352644270116530520477057630124551479707490014875279996505002503733211202468554360214738970365637635368242742567477066544644546395577097488866433945870736497208104638679063703944570838066997715127483251381417476602521095699949162795144591795683584038811416264180953933907588511209293929677686547174840723868437155891852660433485095466658997857309547717333413111826333898727916871255578731611172095224570041423583791786880308320492732392085909753452279490151047370177723676297435027530240444367754852838253532255129834903039008770395068946765795515639077901795787594584612931584674841622285458006124346878927886331663735355722206184475556862966584070945185503737364070385224609296964005337158750570223827731690251513611732930501448566369746434712265672749814870484619985887734159730742822907165323931734733490799787439816879011510682664999248542563859977192062662721139096865204559637981586986040562650620631134733301842634102489527514681906825659664660124239856781427329090828960170223113419021738404167894354548950417113690905508396055505364653847906684740533514929637567142887182469755281110940190541692513603812609239176686875100532694293626146416871813869345930696176562806430491575177478274478482590337561479295797586933810099253697557474952122847854718934854206308845325364771239796739527890653898869689248877404138558175409475681777318908100654704457356257113945476877035426388154040626120835434458258671974042180227877180756202428296609947426912790364079845324402139832688961032940208203961491779807872432567427448446536627835300575001869441946630979707769465466758697570329796962596680791175226053870954445763972367185635992725377232704993805810141910928066178063188901967743345040986132322070081340597465799819702516644385408401604997222269702163837643036252136560290607884693054325741292982459067856202923813486874613745406854051269130699068037712386866205923867403041028061658362030924328990671960229848728283813152386297511171777503204185720837184293355806853923512863197053641869251799955670806839794607224488230707243695582094899845544482564555664943605066443103783373843784445187319798571229462425660463516191439068696361993841670234300502979113021752163078264251772746859265675398467676505230367369431122885066151100721552661883422461078640767886147209466566908852414377443819471405437820224263608757330642687334426407342528903252965521988546844824605054879016235747165067099576519832076247672223504314827156470676196232392525510988899361844996819807623933703791610963825149190291880344242921395153216276084348336941924504097732438241419784745166207798441048987236812954517461789146566074597431304510700304601982541326767825692628041186385226460049118200969906703374433784059278432894444866780949136236671249708230245104074014232045858583699569224852669206400507281265787035468479506714288040751912988021899537765780996523809726124403032273900919156651005260895219433191691055148941349991187899044481496535303772531921693794027481766016543004764944518592380610355365295318825207241729467710527520165941043619472579225872629192568881750608516041585753909091481094632136173350653009861024164856767882805904564290686727862531671848726236785611916061180836090215707818645151406231923826701283912705391315498780437050264162567049466939880802552798893417331650614192022304080552469715470383818612393878849678363740665997759210941620476903139469830130893505187601734725573675323125727345872539426935700283260768646777206027181618914888043087752121931729564206653183510901116606128611073953640336623110777630833495759803454248106965177836387540738477582830554284713707924795395339994881959787734523193578922497080287516791783262392440936925633705515089204345355433179369362097753018509029338251594281238416087905395764932176021390837506692683115132561831266315066160685499051720119517394762439272029268965732535579497248185035256309744422276517291922903116206409000413103912195515385566176882467071768825513721881788586098042430693150863758162379475930213468568074981864859583110443676949500669192555455765907122576949660977505022266283058666269186788254874083984614549185748369152870798045191634824752596869402862537123739489758536552938083950654406093830809021021804752964014464741336453427178474805825343769472724711519239471098519776924822365146340563527539470381758562777809407485136063764121658981572649697239058523171169517860687010844742505991075055139610725891897358916552844893327256120877120147841351474248614079107174486513056597014755101564705448853600061380864939800129761609598274745903196805206237862219878718727144708238905895812259585549563569927846669923729756247795648064086703948352651210540860551196817737342350166714839268447010677553120270797058867902989775642613607693482240483353866896188893176431497242883804830956874725440346785598576816287202536864688711157873209958543822718848926697063447145811680293780847702004175542837776994161906685736007843652815529697248202057123202858639098221794295605503228086222751414082644082254461500495750788297883254843241176626362258056660577952526700969469758668201331460899041435130469879708776009219168577665674240977348049675256468422489768428686522076212785642555006176978806559566014965088812162574347033584137462300744099459465563600974306849218241828381645427047259378881165533441955402650089868277814685866598551265267482755009074008845563641097738153087311650743943381517461066019161393961816497005070735218994658362289821326967391214473816762287371406054125142752197574167549269093589780463414152378783574842902075838389894150680468925368311762651105383204201821046106023041200288207040279037842800387384626287370295671366065922231145921071420926308657094265452111992984410085989008601390071009765055244822152359165603544006623744004964851675230885718135829140353471900118513429534393998986627089473947285203065460745807151863536006197645082134263002310497581271737039457848059024811278840191107998133905825221182194023297514464686470429701198384308321997626874552438199383335183510746715626511559333579186538228576706182995335620637876334519414177854933615808736293404954785625642325677876753065104149014997271467192542996952826953801588856665294882333502132524911107699883866656866289168275071301684802846343330578354919643541989277199307827909435289979932228879638932429326521139766702391336644921551623276988454481966541471242975704077192698760358654279305466014371886974198013865409358175969237357729460718314370844190614604644927036851646837291141470790230692342073950562072613377385702199205439384970903176218404723740199088039673394390032043078893489026377091780358728122978185258819058722252216932416852543329279137529997968510403382161489392373471734099440831394398876979000893928215958188139558951946822210045493007062139481189658875117971565008915822062276823587834184946224616294273459264174372597251138125698769693418285086676688967253369405242970462664423815094003210309006743382624343571578928117497455567534776685717804754047604627699204529920474436844689194398952095633187325994016251258934618258887040645287594495203844677045893681074623503245623404618555382741555303037591978894556189028624304124090914867215393607716068248871736538741136549007111268068178028218898941762946646260521488424039100530696299175074104616281343964681049547104733829406641271369103396402122453220536173140205034522190514919847047970704653357226666838952030685777814054588559945966150456078216660683684187922836534592655288298723790010022997773968593346642633084752855764498846610555644121392080608241038607803854076842103204082489468159287639843875533451570125059934270272006177038157740609170219012425869053316981292826149339073493198054025296623442444798336811666867345991731403843898496728627730576187487798082682730617907265587301250261714711158670415231159373805193969412298463999946727099697392418167669823322696751215045015897564594401032680496668969952256752918195427661930386315871798063762593182632318330013884256755241277971576458695153593334477287357525116162585421827893623195871307668974894332548000444228110609153364380929150303242722074740807862917883840918681134965808899711833816922584920055977184418574009751846980880043739858921986619872746601675556911364227408303733703221240598634117695639974886749320640650812710237081583982358497975739008268312119435656299999090094963690888979310817597385960103881384402488161521001472972189909057525399264076266631802199521070416610054369943010836844251203470140013912609755801711342770496339243834800901932850569765409226301312664100321843908125088564206480284833012830723180102648559373091262395888190185269300761110552998472016253202852780536283035981971573972377816790770749622836436278189384878601322532997765651711427553916964348107936355721246074897952741465468942153143549582893481590292072361271992302483017550700631623345674491154632218398966579671436624090840098935790702278219428310980934904993855030062808265623383848050962703881631578419809329922360010919157752528030439701570946143704725445297675402937595521065357482450494305778014571551198617395900547210503980258834207087532085349574617008154905913801798728147801809691449735089092891127017856176529003871634092673871205226090311665615825202190057971949360301490796375207762415053037574500086763904521978928864395424970289687893937019901454881003122196132964309166418401698658532349750437236977666491245275642837903910470285546897338321337610303036926081050603947045270661048738846944691292664032087315002138813500062452591332288176611438476792394322420800261811312655790361691544916905933203379788111726570696507796370501538896437668456731515021719890415824999882663480462313052666557920870200644808539754037205418487098185079686242375406563827634093909704542278014159825184506713382091441015056989771738207334721889123727112765059359165427422053852313634437529787613056045097168894629245161880814998004988936956795275567142041866696439840583222187176710589364266707065187780785133030867316707866115847761955977433996305188761723955341957243793358192463714188058935775224131665646730104908814655518399537755446216481417116567583975989320826279063113957184860433831467792214152227500229505859816718723179206790082707635037435316963424203653069800874211534514035193440091307883209225904674857218471326995143666175615735074652002435670939316783572652192331562984387727807981275688481111646189218708249207039960933630986462856895826034203395713245475679995199389912401235409675485025366166348774486423508657653444096906652687331304869361788517471504517734871913079976323275973633628618743529150918177697749779668949842186839456334525692963036514141102736686224774070292989197620242911072470758375616297119862911340696688079383997944620341096877229586141285557532826910118434462320465590257809702811974161867832980731619067717328458830585546718487519339487439812165823256823724499382162065559215763206233067850365198920190264284426379450972630590641859138253446600370469388746413843280461856881092804595017402722121706510229212225190739505395844682948435253664220900681669055210002882253628198955249586573728614138944474485871644783417491036111620767127954110853094274257948183574512646289074603620636865391630432904451552969693592629588844785706220868546307278602757917302759439577027170881493173603586018395710378667609063205779393087467820025755764448044621382144832622101610655822134012645103671888878240685152626132439958309195877439225227657171699015126070711925825179812398668574686388182769622355390454501636136754708876495961808248271257376467626204208306132730954338268874398716595416432840077235627814448979556915762710875981701617099581001159503706582567468873572217439781903886482556283604839174474802068200901509588760710202551469498848384309325158129069071565072220136631322947706849102819155781649690395386082557959699220912037083004413439084996353395133034236203370581112100409138302532864818476028441258107344652665944299467047061800800235586318147719137820831299040494103971696648168236326858464045822345066393975134240208870535235223290153964325136618681355718108959138099952967517265664594249102196296924855964576526288501270491064292276341162789065772082600108337237186436568547067493657004080030270275711693318351858456949420052588670191191857893643159139418560927294332303243604932883127547823941812273707928755158891820105260956548450482665791671042471176632064891880894957128624677909264984782941585982396790964867273463014777587856316025086778227722527361666497958396378292087267136251872742629387566699297185087326496454517627449967459330211890325648695342800437791476976287981875806785601490550537932996916507029260663662610158017471787403030852406819390420026300217969028978340360683820503317471117882796696910776446871240623785586540082040508220164971900341378045691519833117012347662846518861514623446319566061120405233542513689678382108259501647946875472203801772052475089552304147343576676617290862074192774861569310049416193141889378414634070765813406620552386735282329934296559205907441871022047799975748217128432720868055601872150936788846155649686469336704116812498495830014802005483982970430135084675608671065988091953750592591969574680133824249007269498191829646523384526519869400676981156605853407085576304262064557383400108190773982922312610580642619044870639294452417140093650770141530400457992406539215651436564853173837494712659919161198739610183619406602832362377910890017668630632647833903340898908842697229019594447710571851210002594449047895487777996158531819860777093771873962311219105018821150002424936385914266416421200022223364008110917723077720887335989464511309015413214999593110148089780431789309341278986717520842987475321637932409389360241842733227464737319988135047392836082501986557073590226459487244533405214995725704087922889346504620443388421850546618582720859132040375350390283951807959563075722893642237461562808074998124319705657330077736187267675602641099469384137186575172833177452256531810072520200470708819088166713333943284218553577690432924426550651408409619034777380124433539132408553594277109238881661471857313527211348289195042184375779148986912907334089466104819436800760936199754224103822908345306894236020967465145495889088746740815486242436440841913940707248900740046740518474562327268751488494837846340716880683673616799978318098893986933725668075219757335087759872345627105155514315054448079175072671752110013948085995834262626528344335709910057620551813099965799083114031151492579127180298671273808342011308408791217677765197684997529427636499329711559332001332885904030230921462326562136736182528441474352035368752045166436763620468808914265744950691726137981596191758154432135906384640795170996505863966036322602362565453933226214357631852946428461651958886162442127785967088696986650508818729317990099753850200285837156132513341794685278476166237922877689673613286450977134698408416411121983803527081969241956319200608509656873748457554413598045114321680632332566013612156954530202675147434030553795717517113159457591961420325152705553297784719452274678463968472254438513918843314551354091785624675547395128570289422289288377417598070619368848234238481239780167084628298842997361045163232224834178757356749725785194771295227902272898317686983260673561699052617249359259976926861338916111868725609528977112482914636117318421139626585072661710538080576227847878586174074418301212843689854123359459854255968634314118975802876319102609232286075337560590606480533372414678987457290416434089161406145105459713939882400907019212135596574687176257031928161098658136286685380026146075814667670681755714636084173667528504116828719667440229509116600622411069763978991634295879144178183781048960938292251476562186137553976672893416754659620781968932135432165142682273800975877953008921739834381226076849954219998556461006093848801249517000725790516652126901618151234472522865977026870179054274981036790868236146127777423188249841725012465737459075287339527783556372702622912516952753179426717201741481282050742524692390703589884319939991389851624539782883648561312970670655115907167505706901903381771375228381597507344641648214736238201535099671039862696623197006846262416964177978364997848932442071238946495274232586486844764066176718111397586070824955495640212023832359220710447761435519038889732774197213289859856262978555379894026528616234304533331419406927500094672341094663776317633055258853221489532431681623678946393007541273724545529714081425572490504862293192621101644233271335964255102295795070537661441921884409044814985362200314130423826509386167194403242414130177778848424216024481971342411881507479610198926590804264344203161313874496745308351472222241667969312016161053008967306431334100068009122537106263131302935474305117501678207119306942524995524417559673614738230062433219934124795790882394678545440515032600022052181866476593245472116380304104737481347355444583836850400338278361040400528264058784903700265148255230284950233573434698680698621754641042777580503916935960374594169786260573320618009805229195657149760979808728009256278621002535718529567194619444300967038411857495509919043996880970078608050194919567375402361411581529771528843200679046435299186160844707803450487283111689010111425475174549953774768071127932521028144982991059433462836702001756905910211013465546402168601936025559166405497304074901635619216784866395511156934159752388468258419581852349262039173793533582894110634674836577606321083273947552748138206031760380050181838253097500681753147322207565481932468648682326691563100187999220791694476556640798293080163061363550504486766888424526115454872055817965633253060224135680325019653074262758496150182972169086491487716688797114398492052606090125449260219791569247465433211145026049566897407145954516419356621445863471341113262339158912399832351731296460129609958213860198979013930190771189412881477506866819067766334721391972543239152422385682455251421838904426345446888397984545075961602557219723054455389970603768833368683337106805319995301912156391789770053925419931814681254579745588900147225586565602322496330520963825147729947565108748060022878003012336135560813965990631926762193414628586888009280106544982957798426947429562086467086948369542557610747029905060253198854779404817254979047500822768836599315865803923393862215213373555851250328464114035053310103807383329079755237167946363791601264830986154024183043006953320787834089698184923258158069623073831391340083503858389812511072979417443799989214258400706245543002826848956918420562331939385402170336134574913773411594900862363134600410112335882094197267961335022802053684697940410740021074415992934830985288495853332046245685157698176424090135327637695365924801681035599361180540646762995139043653167241451224132073088396558791125119236891504069079919035306951242276686578568277110743120106192826423971774778770317206234140391123644112121344142658464440306782705106196780751687757247444813282679396087334781563657064985778590704501775236144712762056749213260245170734138631620639012971652884613842139829880281938177666638033589329210330192272733559220174489882924648092513405185658289088887220894578082774080366053249846646347075447191880296081776672783891716236060575602574419083436460313078113015982144016111937960937302445696612947965519983664960766951479010811865813106097824482343363851799907214108723721559792580883204161266586458696620843224442475169289333556695229035350022052207627491021033417916216150798438602303250037707360778764277540913689613094088165476934831032330357212904966667828943114825458004587600581622060417284967944082777978008675959973413098351803662940003824107146370652455489343851589026702295393204363190578068219323886485443801417615284820717940629822137273992963698590042873058732504198392331987171626154650502190697643531180977525619547570549391640523683609693877442173196725433346744139900990566810115408214192258735020377466959704901488048978908773490533998492363980091191829067756930995145034742823235724124760723347929341365450204121918753984454870202535964028006118223161614758241664447272677766251221238829417299419985845652884965425761500762264326277534201931541334645552566255334570087885195954649440162777291058876629871945846130021703173293033424754281324473898989714685197768411803676607217792385227473547395160906785740095319063771678505871414124836104752672161823015912735468939926982572216047910405365643551191593134342497257436315189940962001295172025291563562037891080526696467731543322922600106143728459149422215363167511662778727497778909014507400950934755575325574969315251360034864693576757322923506613059805404686180840549749727937021966974083515168292610343349600988086747922161216207033379302024198078411900623756964479690325138820762469882839018292490312316783516976347227242451133365791981125280764059015274974434804214892733628222606358874850703364393437617136927635657902809429348786524856819271678169411345563872891990540319640073239172045440695309552937926895955479706360128492211889228361611834702933142123147704210180360114297706274398085457873744968892120464677525703864368940266040530405000877443820551990995945580333351100315689752561827079447858444904956772017491738748138139278518067029311812117566570116741881403269806940692960580737384638941746448299753626924031287851552487175501174376545604832244462010548952371718278583641609465942022786086860079046060370950474985112739966052064321279190468818031999137998919477487982811645477731730560563740186797806191292038767881707890838228274711145076662782594300136356406658405154467418950833862331207155150944832439131053142299977550183818983282655009407011419403803094782974774504318343965815419251451084307100300867399236050179691440885023200313352647101324865779141756944706736870644673155827633326151402168306627140029599644701911686712216828406274737317368436967664360017993976417854461578473399904108604456450465937785075230256918822935598055876269324546093804631291872141087610866688503049092649681675860153353643543972353522902753821017672880375005041476921878035479850042003171725489338835231399107582961264587205914770556041075428576041537201963368067989777202465770160779711651199490524359396698293933637384393969591164158428336195372512707744829704782047052609126477751916171748434376112780171915323237694487176579698510533464538544437215824471741868681669631208233172921600898582660249466802995793551058410057748868146394807118286668534972507701877851927120259217240703645569481743826326785775994612987273796234614254926461632197088177180700688203533833789440982539165481635907178504727061495819100217430470626958175003532110851451049966912155295354687721532215380762413083170945480874613122283807343894545759726367749325558897314807625394957942062958712358532906961006740282852344897423432243154533039834578619078557790219543153764237289602253551993073078734716824503294210944170416021436117490519360237432204530086066423621126308063638763676442899620020979502148244922839758493293645801229430498341149552833618092829196428242709952695826236761960405844575176792723631148663833623886018347137646466939235050915146492946672211146290220827579362036542658490529868854055781566932162181822048020204668597477152956015663318758450320782958250030069541661918885994620330158349656194856196677345473074138503670400662497522205926903884604879271238166796712989039078250994386804131110044139556031893178393016566466034466249509944553544846577884517198585112818676937927609187212156453918835349999256620857790632151738289158260985002494660701741141596363689557034843858925404417606105593489713720709721962492840758911720826501069741620450848080425078084648945970438805003853329394787720331721097456236539329263310058114410861916438848640303476703296767137808303638568671966159071695262061104852737521430745046982893232347100924975889942352075911652254111914797350034857684279363806300581330177444129576183598644697702483100514973925513909381753315329414535085632391695384584104734983271069491137895821593066542323090213086949811501637106600160261196162075940929415636821062691415147084888062701362688806100133734888640501798471830128480988268967102789703104069479682593930220391230321129864285871732667810722749687666176492917971489616066805537926696397581023112087097691941141546407699598947515159414247594900025910302654666526905430400867556104383534781829561198405245605987281999026453248221087572122298143800889264086505433087058365679148413647263405261657149250132156694483978850337456419556443186301504938624394197434301221277555497741700646582565472451142438817494641274054263052622477965324558050746442461629442676848206704869349743308925125973327906761334465193870475016530055960115822608333201180588858189337440986094171177821324351035674732148380993318419677107691804815013667175452117803627364323442928502946995843045025660811445400392913666546064258330492405287441024317765974320098987094678346970603393492810405367161807302444429426096227117429413968852321237432255544405320269796335709105136880399715550963613041226343964354484274266256407178056755159150014175566093692292054140599598064899674791856475914692491278705321237120581125411446510095184319539543670133399458741751191597920255137117335321012398876471500106319833579340149570670345117736073363709574789146904827130751106229213876377811574060191039434359885667788203210960839297843112819529627505537297623591533889279307314540755619029909956111210984033621528196849451523873047559655353234078820447605253595041104374687350314760323549251862638624573662068825100418906344353726236800576819742734953328387528341677320171884979011464963685570745095186335536236055527573394657964520411497981404066956213548614569742433439867104906507150770884571511244606586831094557188155863566155856056159713509484412030045192506376042144351602126844401421719596269621034035878869062613128947959345720033897743409198452983631908128525279465904584612668030836120709482638554066799783473989311987448141300420753397842597802891330564146214255610547289712025924093605379697615581709977423391731368043528988922563461369816860965245875788404190849540772057398223383526584216430650341226702423161788476873310886999908455645961858638005788041381482197158677336262960464492468296439500925993645120668060907840019541680388199993972208242982313034848108525297796062592093521300683142435626988829976236409837599488334447695527027319911169783804587427435461284451637780952325648960741271505228043623101881635280309077299060348000370026755061211503712554997692058513427710260016784981276799927903288424221098359530546465177469018132638712429783290400346757864794546120991403565033803794119920047691957664403436715722434621982747390493505158045088423542201712322268834922165782129465827383241141813785184839602960010237162764447709477396011108018894204173257359526212236768941916315634328083345804968078834707138164523581826352099995434502601893607368737166693188251650440185337966620619366469480700837632719116644146759104200886850505439660373669469237167601197877368364586891050145742604824523948955591674754780668459879278691291110254091874395142412854260533369223671223294166684104047604724133509415508716386586943365471046219070082601252387958313991010608635161306360134869850622299276782148115677356976514646459351496068857645377597941878318246259078097950586617736622388703611440113555782471550362834187708822617798161840699243536398100852556792934371600565195594524140954432719483601119693741546857856308065609894990513839445661418494324598823751744343751676363340755789668670526187368783769265263432252351833868997936226200729281469626625819437337781349202578816067581405419098640212415711154605953213099737895337968865612754200890723958648281408242483387524688730611170309659612165988761477252884295296945293780242982942880032958918933456399180717068000873431335368683136795259282876355688904051731309762594972909531265440083832256079641612453597899016312843250667343392234609394116232521343806524577877589477857107284193462503654093401581126350995303183974069277684904225399495835333305624695861993050394305026877067551448914308055632998978028110093107628268280553273024159046248181735705119095801860496303101086893567991457723791972109416105324707302801085965583515607648926978026276520076101947960624601874420174598713317322507008652876180963477571992882760069361265305333207150590540194046715401710099786964351517414014540914081332979794506438508542898853695783209142691995834551790645286137783946763880936244711989210976537950198479134725758938217519381266244220982445734768943988126462104731589468016815633421108326024474776618573081636433709712178722660899404376619738863481917016250845316529468699041430253253575485684023396532654268849517118758371632714033273145827827275534341803712614560801038792919748435695229551270441188959656521215251040065038073223961798638475569874138358230491734380564564910458845411643045328128063800013921429760857781719423086228568765485142662537949244673698909203257217458496699022514268031972068769700600115725140383356439607081090860672233322997429790758159162033019789777830634254949886557357549347227944251902481507188492245562349848901553080027638201486646442426369746595116832111904323778863088750932991890730721796047996019983264710284496048902264390825643617353020307284598674729968621388471356342245204332858174655400821606198472392055367909655722380995047413483389490991081002947417053596141380968163860467705518718379325018595581675047553266256442024020727141890706907272082670773818965215999158852850688850365335284822334435697619730602000858645682730777069134777599669563042493710095729578918170812545815404903654753254847397009320805673424989352579938520801100224905971875373893919125807455599158653198823339833583624817727553191205872002286946417685139273820528128279705137087197780950924717038522675008421377695263760412192992981176655284448716825647193619901008020404191647666043275159297834240246001087809197601964650108962801354716247789756106590423672811763934601282829455736140560022646314457879330029244316694487904913660368944169724575725555236980317309453592180633048793048476336318853950207987592177074098401995074908441303936807627366418679950221437689858208284491062530956029664183984868612660535153441216815772313597249749475356231041937027306915104754807236451444154340453026375510022740287854150135049736688052029774085217558484616850213906224337121652596020497006273353594351688352591591430950142759497853769336222035921109925846650178180720493604641499285087319785798313204809579483769606473198679711456392896260928242773730809611288919263976027103293378435663325084751421996474661395182028892988640459869629040770039532046928536027250875060142744493589583703268686646032870134401015234120170559251941242240025228872574029147771477907395370446394846439100674285057530410397011811432693283788726589692907421265682677317747261444260950114727176080776402788256470357398952426214738949862051221034106137456498289471125133124180461525084174274776414799250287204654769715208258722359989583831418544773399667582306108320500767594666340775231097660467654707457457224785319155221385864827924717344380368433988468200519532260301818808593281610479181891377451990327250930956150580962488457585198386304185037796131430887138063716531101367736694943318202311695830540414818870513374161391977439053385708697647293846119377007993423487399071581059428922944692085944865520756606021816339141496273277310150809319491840449122833783747846345270281739306190730942572862625028086495866008965195550455317804344283309259940025581908334234237953944579168634771378768653552304010425102363713877822059054479017053317345855907390299076259611567042931074124563446032591224622868557712632270782345524979643358115310798385509160273424216317834072402563418326728617017234720653702873593980111321934833172437187242346354237269774011201918323707464021861651419352281320875500302656650641297614975810176930428952154807657685649342577622816576824535372427015012714250557545331809544476265886618687734646708654894457531985823540312949269387140278276695218479938246680728444198063286143587825024037592329490259720801563315999413362771199630833988421341659239648383131561032280898155852542136835037656093837939328926020057180729933358797898246239264379831374023662681913941077828886306008036809012068092004566273283369802787851242676105671744849191133988396449266877464269611258879122676524724353481830513012949856187249643825532112975025437459641939854027795370346017923439196304444726170031377588710841137256430460476735392402211728469944581044595130448089603900873672849073424190654240654817696209108722056310380567286636478758207068607310738143986787918545367660578829128378601489876061149343018353016567527350646064963193231602087263207958601171229261617870403380451285206140132743241371662170506009488374475810679948293681823026154507597962352403337054462869486841716892199202763346977795895785866936702225599337888894697999718888762263311888690486810784888604132293929771575507592561968902416351371919001748624994700693586205846307123012801847462388611632778342837625849259669784500319995499997732357378904641219794903219453587729373017048917590503892284041972605862446719262132201809317820372869914763912237437669129733847796645648315986991915364195338750953660120374504603795197035589314224301850205900220000625255455835235152400125803203605290890912662710701346032328874490689411387908510638920394695184371519881156195211936305057901810803811358801280008553079891253019820231671821818771641016008825367025181106706943689554176948296180880444142004583701363392169442718881749564324239509890214667903307120884992415517031853586809578466088087920062408623450832388233526821930995198700631853117994914610632690672049969201202545262783609642040502643641728392845455558091292912240514562774332901350016684920232753257101139903834424980581484451651255672829521721424095992605805481881464634009443092887030971283949034115037409602339900074655876502402748457058850560243159390344982848048728399951946523863810600601476547172795803372835293965602532946952904603914890785702337237841662643160372623065921460620814999414139357637652603552250570051029017790534171182095634068037766123843590387225424854529833254400242608428138485773582462941144707230212506712484196401558865141806142015606257181546488495097295678370238029505559262481987221289611292319123307516157561637103441984120815414271438339156858649104238634792554660403782865324109462973888376735125090085149081201078995743016283225980697504928080559729009575030633367264219108390909504520026679617613297265777507313480359521661278976453221000627924800257260118634992219082417970575224485987866386309530699731273876517958983818908407393143395538485246727280199331939209383058401397888013835365031257053200372608359520458921293933025010272330407833601255580206721778135142707349201713976630475765792969193929291892533025983090730448079363688550685414149175732575612308753686637775710673786975525103571601737281756123599362598954993493125646441690630815848043655469769965728058659308652307696737360576879688616364608534176958945800902857223579807905085681510855138129836539863931958904823364343561593822384368818881681382455566192577202248147171808971832492146789112590951688926428140791008233409103653724232387891083574945040086610358001405033753179697680681867905121894985258217693297400555872463729168223699548965475677722773510709520677160733674826239104554545449252123490471274606898279162347068004273031134405826922324668577963185852370328170996119289548657564813390076129025406377454355260890657501919304272029625771743578354824860171681905692302009329587551552169303443840647032024160493759887520800340061333879763496204554479212210830688006140197050258389736965846133500677668673861503808002398440253683768957537929665999060392868298442913145486321638018180190953116470593109948868473159949032039695169614917001081901742719704062238602037907017682183678634068097586542365540749918621995045528177660627444939423151920015609253035131808801518225535105104239395056246182062108517129049759571555480422124863280119190367387146471274257702109086699694983251874681997301183207912940292542012882013616378436744417485337863481464755258314405371686611973150902186060900888011337670038933854665246926672750245130515540050237298419134868217758950933305283511503466147464040439253615161021771059093992782594657307288907291339459658042622504535480908923620343814186574517226608912478664960065012132765560349215541964840393792159862476457770203495566476667549778518912068464974877427055792616332948618989965602064950010905903189269568017690090181581380766705280453301084506667271305268759568462218282925454441619815157409062423369644333074260228072242876226551646453742811277079793450961733006700309327520622388209309771662492073798727632182201388274495274302797534542277232614802213947916700033857110984659629442409433620429660996867629594868306248078127411022171446177258860218450207168329539644256289763632257406427283008664289374406264025074049093975328288699247465189220110561081196872174587428194805642284107384635663069595302089111126154102509083761620342659065159734492800390668747943945428467520324658866826202908656299342615858249976027701887631979137795449651866266427687116393161670988594637661342857554652021846030813536111532199141210611616605415359637043567217391963998162958857393332614433804279857840319530451521972563974888221934350027304123151404552285475638477527149928078177398706110830788888908894577650329555471157027936867241538643702613081612407299972782062979354596679908914056292356367822647114898813026960958043592009676015392028869029661644303344876793927814373887518423375984465695706808998545245699461426503568062851994568066781659994632023394918683369538284236815488604425892640567684725569345706117041097565290129903968629291844220963219067286008514881454792960193415561239939634984627315738150746239403654826328815553199076413646444679524657428533700380834495371921155679182955532661181111718529365207921445409553902469513656803652306702581657176334702522079642150376146880803421067764735084093703304222824453539570032049285618073069835660087711525957368889187255927183864987128249548626545789064545149365113676294860047334957180810663877791995761101651376570344607300535868357872274054118172277682248058494263325879495807440473831206801542766277976905144937216482056647058707784638198179132458174294717205549657662115284576890327225108109487811171860396988769576854109906822295746944692634587618927293480538948338126249650393101183672603702492321707630764251732883014057619160103719080403481060344229352068158106048540567419641399871413874790147877728223950077204037874869820388263886797929534334676476619753980272690489013069333897509480624236043136247505520724925011369892477321208954759670636120691252404718925615582268811033227199790450993769955319488868487778535086927937954947141918079401011035288526717300907527729886084680692991278537264673494682819801724114561592349542744394007988005906050434299809487694668050228100403368606858138022049041717118247136058598499163262609123451249491637916325884823444120023776629646327432272248249975330925135907002688194997394876949489161941689398194195145613970631798663306784580095050696913828999319807924043351106085570286157406994622829424862886185284194824831796230312308186831184123088270003117928118979663730936383221871557479669202273762736863718435262489246455455982668729690437670357595252628951553730222829959558940003724688998080485168509465793054010838360789622434077914843855583887815543972566001977378022209779036657903458982037582563356135123593807938856888473964212298599147145420022940398789295667684833785020165182725150069634840361612468633517426109234991741134835981307399601298392879247335593900820277088056487214699744824390780994423860671234221941480657511202344788389175700497578217125084761918817346739455619394742269937349230112328852523335950542275391102807809791241047974858751226857916861082092074828671153345274302484926716186467685116935602474802745867640018350886993662660263593624074323367256432887038107047796742500142304040108133851048243672137337790734057841694106748103903764111321229386130424839045023753174785342612394436133926506802622071606770640806951241332334277591273719637012212466395586252729884662086191243562085495987653122942818181322432838753293707498619099327009084103294898863889667172432872297080611441463312578521539546979465059836335508362683969938307476441260697058331417445860821723181258887147078616591043855042385174157765058047589920871850888466738461757919960149045240261372417654307936409963627237432016392489414503727202460610577347580427294460262467423824338754779315184825388953395090870316170722980929617761465117038147701453604990057614074884173892094458474531450545550546297620494508325509230599920547113769606026826001429702960104004179425270213164170295028247744914217862887603804686879330237326374193415635706082638716465919876568204645420172649674635455102600542470736720174509840758678113985555021062459621361914560116114607296968742773976321702613474658516891889656266458419115361629485285163896118528847288969934298033045073797539783988879628063165402956214122015543510035951923351998616198703418581483883087103507149414832522929021472075404357986373378319510836768695094938087384518344870607936346811403061407940556433540215206760623847305078315441345213967870500709825000058638424511272200933606681410480998418160502767816371507950136589371770746709175538471114582371253159721880749369975102361300309172188866878768393402787952694609487835057432319685738254462879138235494978385961247398650409188928835106671119986467573843763169683647974273942183912674545073451187828510122295381433856972818984164495511430885711173873120013299905597033728329436080047804627582655436491414880653665738949052878108611660295512388715784305072262212572562679527306707917037973092643471221920296964054354051558536578509533977754576289759163699469603374732060776337272502573566324489158745139112471227977341403737412111092013910431806658927629041029396131833368802718058184331388823713054480294644946990174235740763266761587240974817689384847127311287042909047297637356752792345976009333928531757932308551561439860838145208001834647585555672412766489977606275335454139225809900599104053934336871918776678749786108136223093306859870538159750332360810011694406546765381052754136642298214285255260659317987984967314342315774217489166824774336153764560945664766745693305693183150025244162961834198684914018298791556193294888966490042832905200002542761576977699203314944414865150835264863064680837361150881373923897724169218415470564989559824687705917729256033068572685370552492298134507068627504834027738737396339928756963665904158013501661041860746691068733043703281125521366275405951852945412453151299155339960404244944059730968805752352145799206172132713902686905624617457922308757482549818603319866192472798576045149245688090273044986753318528034112391067512812900211169198813943301405349663021312014745529174040034024763242523652411920632047066261715827461083497290633588719607994611102178710646866275596754584117174577868414459528294749369635506420414067250178998507517187242746261800524220888241606236148351606689068561458747222504350113334631552249464606167139340210178149713886000667355165315738239399314984446755378043316393853403766194733590065862086281294125926765667477911401819455558973981617391231156536275722124602040439802812874617261116559603378857155006008004218356400849868582653031856810877402668498764066524457755866734566427079803418015201909833001519405247854147884336801459572754805254632565808398987050833869031977621772864155531610120976633083099080204542363293090298793716244111433867046291530923001085833466479282585569448606137715199441146950933378336882288152029768753157030176771539934664964354700698223366452678008682215275917016453118911502311371820415950327796099468974214732467499738671467722841164987591290806313033034264041983806307216566582865791479059508277212242084091516383809461226962420086812178310319667467706787817376289548990197682306431353242269118077630309812377246839042493181285049082384021340352559300884637592120845352715027413603012483311861486130898609747911568758919760066875353593913327481149219184328762091876728500783713544789636249702250968510615864492502120443806076166403907675811878099085762764460766284207735663544818080534163748328293710379006196415107877282293522989406727698183632519771344856813538000694812633248226363670199339103279718626946647541740388409648976808570368069450904369755645774815343755274418796404711354145506198758850774680592259096758125791778613835618727098397721994005158708930258532379675227818601093246964301183685066064153834715628598413950042340051014201473179010613152359674003682984586597819765342282511220343456961065289602814365470280904696247374180783509521107228325394355305623691970316695511198058589497068567459395049340505030041100616731445193946021565918543169656685205924252984683354689618643981471337281695633725157623085920376236561239265224668770787302191172383414594015395001602157583934264777969694042745319159094288678644969058108219253411004242281017628135918906769088652990717724327049799815707799542732513780120472630028781867056212276269179667181263049730354936896527558935999719773700358968121812606958006926372048766542548888675975691962433316888252748792337314009899677094076880913382069399046942917008799075442346284109695748419064584496428127218205425275834112542733676906512675836919162074886270200121886228390386082908107550968163003261953997016008698990706716966840829152254810220144061045424248289002508958371086485648959034500343636293408849442636613975521772162790157569527105205587505336940838924599254439753042166784296690379977808653481540872798557447743971200548149766966178306103633547702706197798762335399404114103307072806835139745278542003649884636338664173346649436728879284258187819476501621544897765767810407102567420671980196240109353752777534942814544009719673897366319332797483482538131967468415542368055732678949727936477672184861578819890042842899535976345788225845293036316111002306112848692425392686886618274107014384658195867291366921126067832613294098400954340199621962918713006040789596620145435809570728621011950280967212920146549686879160478277314252115781669115371544449949963102224798918648660704523376498976473679637836299438150034747051879773367093240416448219452288612587860657367233626794383271726097181450958213131877238045886501869128913978244064419682938958935307442619371196364991210343748978389120997824196738976420971217036864505102836014986938544334191689570750465794715302734959710134483964579147394583830557581297357742921443062397986384805443885688924039645373891080846103709209668322635995007835876396642531591619018538554862046665389897267903121211150859405343531836886019142277058982668482042654605628730898697227878348787696471078602157206669776409144729548968013412388437831210343938503869408114512321085841850986419088356730328266324024610869818439762524632853096853875121709682697768511645880968837489259175575339342235968014580528588292846640987619095567127270416025644288296759376497577488641349185491624364351389254536562369825629118487692066047826674795638167462366808078046052731208807430683398680296346610969933729034474375011935563624530246904222553883460772449754598191690822944366840023498923015869115858952244890978240963864092921114849057128723749245595100246719164317135967673051908566713600086299236563584331279129896362098054693998730921750971176148608205225876123040637907048606664401534343250897053972676829356492559500247073088344080562310796173184352804049286951750457368508337375870928817227159080158891916489469290067962977066419264089619194517439656102216131195436006417529144411366816067740718677221928968405580249575929379491516600360078009928099348927930513034239982622843832614008933487224082764391115345574491880950085946506399917804807966945967210032998469626646542244355334596193195085847109853628785241711511315580443651695413375811588872828717619977596137829349194314704200173606252980468930228222913345111240081673043774197139124765213981679220119363586253191152692906220392303934508442938203035463965185518779926693693324530303066826512478536199642863316097819320814118859193377693457620470102045071783193946176386029005299648245414715604202333098740033374692050916830203025556642342737659511690887767115882770906627763192340478689261061845374382682094703060952195739674121093017446303844200255148685434929567559970792836252565082530613185186532894061708340670911218889258617497359012726885574426142107709056440759962758048176959967234579543585685466316201418877323018660924377371784916423843484625074116974058480593709967071324639701997507590508630468156409677105727174234207726177243049622488779962144101427488077019507821769897136652993242270731473406874824557080168407203704197482053900287198747368464068867982925643023022709795161096566053865125662607493296354168751475701409861555552253334969370705685833079993957356361092356454747956210425720369777276328575304277054723428149978793147570821009036288061382140111199448354241111380474869010506666461973792298023846495144865451678797671991869850814052365381961439658619228359219829426769117632236096271441694594467938485404467349680883593151346996902749571862927370695506486327772521786479156565509619010485037963620717428459079147142330372689561734166670241461440337996868725341318822729877236398996138287917846228069290819964347575209628022448588494994023911110308058627764013729389923546175996140733606228362889279752935341725807543875814440613696584403729624848328655954036524276187232051312234056721179885524762976330312603277625898080630949938524390710371653892310963764367824757229704093350621376221329932998420454590523737595436615393661172409967979998840376089817444460130633129336856693945841760324936982231305097092000215163939977295915855328352391364383715443532006865471244441630711279386444326271876402229121916616105052757589467675386326276563163251562554565280097086701295099717994185403314481938793784049737954237911295687786734916383323082586343677263286175930730699176895075461558671974765163545692085149866577494604349632095383607836571852910779105645980363196989411121591145626108476909838083411465453093175419907455913615475369757904612850844426479668882067864199950269646786827627061851103827165935160668819025032066996052812482121777724419558078141905484758068806334194054387391111571165729949086053157812478976585555863094391727826174147595307482489095736274278365957404032810172386598988801747682125662771757809867314037182225718177144087750147851006899017005126650137522524773208274646158749770992928106560145309644127528646276130870729091759380410810668148941169428300862766152373229951780832966729823096416565152518264466873323667983027419880168932479583368774926195861835912698496456542894827055380985759186422001996495284063217277810879106461137581846009690928276367095392689583627416046378698590044558876944538887846516985173014529572491365556918684302274694291824115257765696865232128969431926820965526503740577487610865650372684128213488207109338759172665416466592875962278712754579520030879715125449284680330379965826599285162145239455273632711173973843852603047582419559723426438719192392817337312890535527398600760804011654902166530869369779426715318112560683683279074170673823672919812962808930523458479848792609848837021496625093895916251663494045640555532460027547670233810734294085479689553527572922251726605638896393361681822165522809608369817646269978257944672723644055886097345034175041789977470134932957605805777834829458129471004398561406185296082883004962234597374441433395550232162231678647778454955083079335278083028988873409776041063052525561533071015989338400204489997632235827363030398868991537941752554026365146127478527262721018328797473449185174951335721145278242842959429755581622678852755425053526406697137432591465655198928494877479318995326757800820598643942857410493931463248613479170808678820653851932429148870801154538276141787968707303016782087739165652821352691024190068334943415529945957658353509880905140911169361586441423745073611296070228917675770090336888455088488532391890257911031333517503190653072114444575397028430648432635544929716941028479848358680780425239514392380451437326896618657293462548317899255697188149584740618380532473364044417833795880101459067496889076982314332556266473941042484841630938950008066437690037300478243964225426126582683589602878616966216603653313470340813381523710364486184150101661211500184942529776070493793311494340967520746591105108976268245758691390024990777818353335989162275655638972630797358710515562064852571360995905859168142167470297188799217990341480970441278706323762040419803257679945599100527811538118841172618458953020979236253882411361879810227371162980943724604843641158428777147178661127142152408287607495915132313993492226981981148116733455365808471562383150697298006378573935859587950207158317721434824104289089609270075463846656989967654135939233975303488044461864002392301099053974743112047472993318816888073002549346087692059727298874667847357228068336471318891522758856839608284738883867849671439793305287648458613634717017282943491075010094004389248952181158016923062216185623142204973471465139203226936452961206610918697942622263472301628307748036660365800260149547010149002899744769973710116312042700993491069726677815485037322640221844745021645027979212548140516598072791693051458844403627558523705219176729349067951593152808007739864689351384464112786831545597561630678773549715415321582534435350090565712275514445638145358039381550536141575933331236246636788250132171070279796449029132263472877329527528786570071587419496306116689651411179891889070034625607614493135131600954037660880552822341505847574887162112093021828976072997631932523203019571677049118085718803953469547714888198899080306429352527913884441937286580136990981788203868453818939687383978684644306495900021455867988637122113785142866900565398854645477112618989494096153229521577935692143856623513451992979795280052801237271604725597151595434035830395975522001242271584241738967775565404174679281097280228864252719653609340339217414556047306054157036438288382992425966586170798002634645863372996897750763275183227627322478768305533367886447658259121339578445309584598539309366822146040854918493578898480567800538203775645571702221069477345983549405185331597457309623670868388952326621894924815887967956403236288131392031965650895882558097691066083102967404870532934246187458657416066932738694086695331972125812109659895197727161406736371711457137935901472804531500406491772216131643604281192171224166476686513790165724810461896820695809586992774694723234788337927019874587118038834009439734046007406973676035903394547675374349430249448868719182675597006304674684574023315794511999489135002050733346530131197676981742237898982607145789271341748074701975893996519148025275720545799294028265480760477259600030750402857328459927882122820948949549468337467836038471597832316080202243131464980578398230453956595868517100865279512706406298618081623094241022276842161781153528181114298302335388826290138269653634102772833568595990482179114522022192436036806084476565485309614609471596040003038016126144690017835529283173438889385592253574090582288986396260623137176975859720206466720939559871182631679819980898363049797399580812430592122280149205242652178205308976553438200381111137783837227100143669918334696111800844758814366624323062447722070007015536199401871070652217683187194682596174910402840768995033018899527731116044325814605996444355044574999099593832972334510970016366836729974699078449836856816499695148334704371567133090189695476565167418319576103799340561784141178216403452842324550630556258770599927058906869525250922633376389491302503639803448153206774972325326779663448202578752909253244061786708708455244731098608821263880642428878108604709728229293450140484940558361427577137399870710587837632442758557923858652441262146910547378971649088644253863012034050183096965779480046759765933108459438828931475143431648436307493482785135342718830768331709869897525888257337381511059139470424925231876245640679205064346205254791498380019999588721066058400278605686952071006776361811848916486498792226737706293734091830249220992835385108075401826502329999749511540341288846959447885654032620036865725397509113005420774783770241821075095523083957649529524284899859792575678256146068464783814113109689227364319887607970970282918567305852822876514105725289643812538592714913807821824145577978267366051517561977969029192892130286644954365859268628615862407693332850630815860550097082714298007572091628278972703905126741747542504413756659535996328377748086042487702782018253833243374363139202903403161018209911632010648847875976708240704481508016490746464571623180463630895924421295882265273263246721252095253825342695196868171500444684606846802628388343584305282566665424253627504477899664869965091187494830365812776797993605573784672127463410694135407975601868200793797787239512769134762222263653490491776066111729606269477596279685065371447219476343836646426232981415572719198730470905151775286549132748805608530806950280007572690774708060159949261783485590250084822175356712082142795145059446004801061195178843542820115627494105419878583317439417664203734805525239985629710110508041823644304924746674062937573704632882792049955248605882159214789638671289330370718227212493284614109803171959218547094115200147983605460500329349721812492581304607478072627212437483487791879241018104500733642888215548602207584584762880110086435332451185840338292859888246946016508435029799868735359793609187394623635593841578836544701642225510620333249605065360996481693366825285166715184258734499781836203407702211456053677326640155701526715005202629193170346369898934880264331088244046225524713870812705384323472398674756388589552965918205185646646238615862379961863646833414082342427403366663334821939532158548342781644127066984629046259826315154663075840455581946019524609050871582914759783417773464356693900756202807065927738724997293154802928778894094986229344200144695496442205445279602664259304693445253610045935348098040536626208497454418920690033170168831956916161968840026244018188741995609331839548078711215421630827914572675571933176226037348990029180921718649997560795183201165558134563729835622323794029457718391984573670715968708432651162266715432612062683135828140489616966398748887464221082172473385446263367252118103269541235958616972178944752906888557727729369342986671958166112114614698447570941735421623466436026171212230030368515759935373867745252273849345194018914487952326066686857847152856055261102770440691343493485820788678279515304292382949745655491263687980942182146542633470771450781607243118693069125647933047443719854993865035787707668819933600338020656049831253949321058136316418441266595334597155091861232651278473729862799268210623484267020991159277918892010985460048945479939559162399421150441549478290608014838119899324380789413949081787899406150252788285926381241956787160227677326210647699711704081077641186531308456950634886855143371350429080240858654233029039424956101600976799948445200565307342593763852973903342130356837805110514071463066241857375325006091903665708477604113975819274563683748108188965957438684523075929100802261656915612526918092380874202166795030157425947921500057189203448314022329328597139048651134169603119460025841209103674910285471523074542484531847343222487266333305987114008125644335464620601315366227753376201345765741614689907530308639725602803970663337127253540813230145575072140772648135971540870610942215544084598285591659050183948284421040268819048340171213225629378828159880791482735749660040493319186477537598589017367492274531301836780701700792835985050095722692422035303468726725302688087623488478609092404377800864274406555973513954933126049707550571722978335576440318177149777359675579980190494308230586791963567015663098321772391936768536149320154341133545687634705962513722660159384585601164045621083913250975358679527044927518562947887173820549394860060423176775778001334565024500654142243610037561149820357985904268189220009888451271678778976199658708223233818184981350028336553112661925168564765597078853108671764095543456710397464317459561881261522944963208588291116955926020212495854679559763543233338974169649861001310376239326287646279704305107090027840316325875604196437248459213703867147190589592938186449784904252787425761348445089011968530557640558125665992267954372036935798526552785285326343718129158154971494806250924104095011224506533272050169504330136251972038939330900129303827736318268678935176332829601573135440371208044611020271176091866074759107760780359340619242515679289709278716129409948094048624337195716615524600071605339751391934129166121975321223578978102147193530239415204266660168589874814120985255216050372100934979665658106479846346891650431203522105501115888320499413807506554197661009570142160050879544500078316628923443645506496254009929052193220946225093535956505904487044080067973132011769259228730737314068474754839380167724533835167713396582764063957823597506890207788857184839991986029632108162296291221151948307075899128764980100398749532112518342363804467965808171587278482955332624121071103531196467491177552640840355137907271080609236688330641784141668649401082075055558652471027129780627581526694184787746504371495485312571821191061635324803822117530753328404441054490800905848049509099831527046070505237260998683845920374436950303870470298439331369215558274551180628229523646953706616555337918513981741682487929085758414923780053180146251276050886142006800575082707558095673832124459944780943573383303594730643392209981894564613069171160873107507071000534804354834238702887092458380916111282724028610595389944391892606242096302335329657930650364253617249809858485629794135828233039830772904298915933376139569427027396411859898916638687555783985300763918134371699770054674505213439150598632436580595686840614188877547266570114338640804150015911222697548263440010893272223768154944294684271094002891926531779829791729408679872281010048540617489537432914099984283566232575331613087626198979437263182749635826264679633282714150935348419732300519789827540777253863124554898686662024901231768222281951937201889856311578288539540491971578933924823433380503357000299253863988365910256504186316385039146276893576853727604917039552389396701221168682425343349429980115723750112418373489821094961039726098002173264406832268589812198596676698082531600079193824170373414908720769041362243520548817396276019329576492403668352610439007296316487385044884031844174288665265133280736063925657704411699834716406220235998074350053179939949656845758383217484952269465435263834944795446641975328637045231941532576570544388331178988141164135671590386412525977201788205602612703238398361298972655041943646071344111935601384556500539913989762926433605777663600237007767666431647080217149941258301233341222768592347656125267190601681086060152170354346730647486834244919006720286608046735188386740537346827009303303900717622355387747112782364100264773663680123866655583833524545038866387590341861712233133082773715995348820970455481454498062963285167842599753506625697370996837472531184052443417379272519649586598450775706075845803618407551859743507018168920395171858523188775298362417828696556759282407683968511594367976210637115669510169987659980832038015418263441247353334413972000872569381109328103046675283955182108800463162379631274423059928745450180160546153525202773497159770951563179151559850205635494963960531886823946088325286978465683835100443354461120630525691594567714341108906129382863837539655911959816876709163264794680974811943369626371037360192507653315563680060711657031453847702908167583648001456433669403683982694639647601573374061349887817823994521336541831938143498817944785704836047678113684346081553405284052500829836710054264573846537872586091725511097505594718338747430665801024395456389385091169824486709124834094360774079979359461921414569107640082306876806237518968349258839028181717997417456597079120551575757803410832121764492629314678343478530201938504371192027960503123835131092897451889987793493862748079339537957996072072885879712322325791832217741274871775861833783708738194204224667850607886609763641930937799586891871453576610294171952975039912363731803812354963179761995878820801300667939485318854732583287165512279902619838784273997986314253152970529571258408682631414725559737273878185593234018134415694822743316099923137239507372273404002502289304124105875037638368552030927771264219033711503469474438873813734388085871544825928134996265008190685794069903602392678238900631313339516037884539877043038243509188867052579941996806847664592479875939892669847047146026632810134617519451371772021115157774682529614792428561776456254189054716807503092577189296825980004179627078353964488126968748948069641079248461009867479410287940707735762941772077351120633385045577702784419794484235182104486653049738607911387997148337974705759911712843289145368559622291346921402879810822279076827934009782169887175846950673845664737078102444279692684139188179984127522542432706893309144518052348641452200124689654861660882197934298666133244528812280254631086409661196094897837085682086374452394052282126382185554532062385594370378783230337474108394181003325577091199230589253874382602592234451102772958943078433356439663684641476084164454380396854740513836714468167528936889351927479902172892744751347317827018067638064615493508021196762555478496944834093129150712532401977546927681525662119822140689613351766021657651076763609661018156628430245743698084486984717276514854596946965467068198595706723371606915501152341952165998051231697438689886794868517448751526930201267541956052343788382022737860108612293054585725824957945716905679657397143244479983239371467954241151309439827108275676304547022588239401925390284910874603312641010578125403556711883707048739138488295851459946431451944996495018082961147399491335250568616613430150782422289156385423385992469784143417749658603406150811230567000539349644955532168986736931560624129784473210101340358910016028274140470967695778627358937776792660207525457868545605883730003594774530117357539015605993161384977413775604896459939700467428616352671890027359157149608292015908814041033851098493575264791224493998927001970354850855132547361519227679411551498482403972089400948611498521664338323223088313986146725114556061938605108032715051576243286954289482193196678158585923676019560793472183902222950140950273430190474279900136074222529511058096302590873590088819721392927497560000345386758359679255179308732542300519574623466594317314928049598782104695393873374244779870466971597038064953153382613137575125847800580898223004058325151195472830707283264963067999254297457890534269909435461727626907220178288107604573784268392095326779340992498937074810250700439140513166405918157498473585924776669221297652357431643368343826234081666997094735416571388427417601876758734245139812650098969929619149650412554723832766078034369373483677556601542083833809493634472450538474560005032828389288292770703063695844514720274834855732260149698676178276710702061989322598566623035350640133870957390414641009614567339662453306899758429330111843268010071257354335466505423404167473055760465634356250241779140902224237050617481810839935967048667472645539296011244489668472148079484988627809304841795912906258072609884461524068189365620333946599143778106797404524637709261938511900753191700758803656762829569444826011537694200244933077145767054837286158825718367107994832573034192054981152456692188569487610500532094633493178237012073996966812914991038923443886360502030939038069641483133103344181449579029919403199588865712254404967965240557861539842667294656106268175551834025715614181855316921001110010683869003912064804832036539348519133952058223860050523629879811580010172069644171778752829509401286413327720225863426930022813642116535146939101374255427378752284194671068191698201330227095413850161045813653732761523135786991456069982831099673521906275243265900406945721442375127830675158022904758425565518614659871653771116077831612551192141810741268641146511130739139241201854878694577505855018318741644026368215903658179053322385310820190382103504507910601659886599317997576162358744561928847763682805802118556786975581709366657166908597969698520817412798965396201873687370172755522296001462706632686453918884976522179240811287421840063598215865962267726559463745642135461758103378842624977977962929872714097625715326372446873194022652451855803298152139373603676482168447217705476199139522510722019460837969066005650278604988802764357590075975638469129374003218993811803564535073199088609873690588884360726657196419425570089146172347480946230848392552182835500701702980188692161445755658641661575937372581275342406549068366465906797099602168050992970439631231498233117350822621809815867473683467264966771890230417965897832340154313822882129142884836357418931383146230522759525581303500801934405992153521988994029329174714150819748028228021770154980376166207085972614641775267839960096735181936364770501549089660200783308541194027035851124986336098015618926292129683424460479574710503008839154823677971540505056341745652909476473398535131438809490105986324382912403387047087350834971384884583491441320866732917381829372485139116611290130487363297751285715266729967692305942481484681087066114914521393747074774576165778221644685656991470773011377434721619929832356329899531644676446149947154690922631852554697683851870976453320489449815856865131162762690375811390130346096760123888026207677156924959459043459284150344432586906186193303250469131068114307762138359929216294093563976934312557294767015832912241348202924624065394935225569724649690907662413490505774052048870132287507393165515871628919249423413245610769163800555597870503910364264528560719559169755265532119341356174641684063927552948899450901575581332292450359515896214863823984025497287095367441701441181699487367368745471635306344087838751444183547030970094343052829610838338041434765908321853847037532642463946415102268323330082355447147235491288754120874783975950797752661187191661103348277464619901789156158508030754387086628492766410068885271805282462046278458450232642917765288996473839935339175465274997249465784644008686121285057771675464886425282101171006554500719496161215027158937214589431264946701200194822008686895957909211249650569930904599741702394612285773991299407607406170468127670547955211115034777898085586380462411696781030612051391235565179240175123302707794427257189264456223811965006827511894781536147251924109991454558945324966241567698068264912643466184845969799265731518108736170814976007774201882129427937004824728682892324807157866017768141672902289889523634843497588975661595267152785533811926515367323692008885326998895370722290294043397755186006363658480684492487685228287825001572736481928579429699323912978342573602594321359868551361967593314064390514026231458050339118661694032592506285066574725235227025911228151046218052343282903069976114167073667065562711922199003431877261365512634546955543621585015158634442452734352651717960406929280299953337586395680569073888898931407445219847748754624113436971165194299528404355947701850407996942155831561997456912905718437651307637003429613475233497652552976613876819491018885702462932045559370907786350636745464368757993545146854073788338588537526474304100159800614888818279785380365515017212791426016358660520576906301545823143183298973298846590739334242156728345788273132894546289741727230691763840347860850132039294551850382522206734144785578339677209239287807619016718274170472171439343645003340199747979565910240897158294330200283377671525172355358508183058893550319514111540628260652278128648028927876573485920731211315024933921456416466436950605350292037251746866477166965298366146213618997291243215668709877712300605254175896766455865416485956670504266801006350873675963231000032161568814604694253791639981348365670549927906752846003740230041736743738159860056971264707220007904697842714188392225768123951346828333523205582196928619112810954118818205350326465824780213384475639913478204445995254121564050451609456812409913629841925248476206117257820059069564812432015077798604471471446799408823480944830433538860105209307336722218164346964804966656467660472605450887455862079665923640591551053126095156466646655901351510350799215256297276063029639484491217189385693865134913653986992772922585164685309666811377693131759084086982158079013021367042494244244064496050088414426658426217733989452725588237472940515302024232564120387740544555026499885451451479336202852103489423673967578533056540949182898666836781886781582418852510887321171506332092620677414189383659617914479162105119604833037114979408703495668789085153759123333052626097106936123821019844455303872876132466254065126459442251634076578347991605032467300005890764985176064079820984826330017071926961174052253998995133131299916684722369261265798516105643034890658344682814289367641687255049623088144437516090104468818517510326462356303673874000503743465584735316804594040321043382136225620253647521055976254539733911978093429657492765085679321734705882678473906202922077597800721796472531231094617653240561476296524276554006556959201456461357564348303615489988484891112009853421963508168979052903039190560158765473585438588297642443215855452938317070167650455088764781232556803885479541070842530795667772999717325221563897847158385072759188545159749641160560777709892812302380557566125300138736002282119357267904501774400398944754741352176283106758154243827216703098268949748520868691050012087129616881886891121255566276783466831504013211665369561905312217857241066659741261879526979537644995354650246715196602735615281511999059727110095407234939676737416199644113574855318860903960196400621401068741305624014498046625926587031502953020075540489895227448525524922773080382030636397759450751482509136738079715637868831481153599823059506080344573045352829313874177696415557622208719412209366756758364639244771756108695155979393352143807068796880193458394177167057355353855246280971975002965776004474196576541936594693944995954680985999686360768474720966527422080384767980502428742247059028347217251603492639058807427759011166173847392345950622960880536158548318960309751259880576796045837640877258052507153142406890367951040907285880402690959768585810318527096923714197685227413127368884991523753932456003553050868344261012421292969575915343231843760878464193323007077800704435585025824363429721124217366186163498223124157680219484051063145335102141613892561214786077425970941209107019155795701522762540942308814642937887464094948008303013787183964845557035670973233159288953717925906821324323874902348167321561674347081447367221219055275012525705575713462089533892799047304345616212473616519083495442499982871900902411954272993402225017315801594967066031242879768810397007537649480208431980419738419928275677225623535929008488751189704346862121651205130968405977275745565115810612848245729211612742866989566780685552144015669889926002414181808275190040499871288104681365550428191712144392713117955698020888957664680798221903538007896970174278110504309257160209398154476272640560504668901863666323414392891613445922134780700721234740328975920219170893934754551286220056097448874388696459807973448833773712285367819493279951694444780348600399405758206294460062595848471151251227820687457105884462753959664774092138013156046603088113082546980216817566943589811619816447521233506799977752834215438374132410192713466143416138398476388828373397112426096670640262766134266645293233814614251307250706015818368627351433367484147072809706839332744016169390376811619418531906198085573466389391525217316614418415844431406619432126648897974546832463265655342982492783034823942522836863017703431351242064526296438859093400089780477188460111609834804897881023780581413807738075290198750859348931986462989151600031346038948499913815581347573777249277426338279000575622385910485923606351397113791193607328998747684198516107610485418900721769707144574620748906930402451103489202397942846743653680504304595096935885116285768914641832370564427648265632678949565830850417802526541954288511700056948967766787950671474957095155406517400855867193701266490957869526363127506364657206498728709142481468388254804543287008447758344980043455759062883369190643142571694041260213014737583428162468233776873367858229139849294030789825857623453137273768851320744626218114658584414419128180708230993217499020750091058596759756906423321266086912832365525419550005250427536901880841472839651480223088385167096820194973057802473177360761354191056186469647752402450122618035670423977101855846025696411246509906808618644759121193663368506967035943445563086284895497940353543274092742077652538265014201990735677375775838004487492108701336801832524732880527598780841861288056491724466736669333934911792785973427175088808765182931792094140362341819636019125571837877620255627022653296340553594719991357202558403628673298897435565470679507594014495949515500236749491241377082650132177949802900480611371518813952808018114512729383153171958992456050028186132242305524783471390529959030062597837736333231150855050655882515070575606047264773629943076918267942692358535073010284258791919968796671871671884327567254907678981644526223195986614980815838536695023697426751571675502464370785972389472600788703082324729072576934728457894084133986581614962663808812633796977784531033917805014101570895336119812507589221788576821329534376138193746115196924052256557491786238371136667754982845251918184824060476549118323483141396291089100873579260938325736013695101435480229722019696090761644993402012151903823705861851807979072288691740399151440901444461928371847324474149332693377474090857833329656451060347425521839874960343326147608445323059326967168989276594383806390152565587723824553161388293985893024892234572828374219456987855689328493630876991873878649199667765689052739870787961353694754076903046887266805320210797947327249811241135150654238957228603918433005102841824911638939332527757292107501034080901726154932657824748243667539420408900903607209925141701078794065631394628931224849024411796896301749684391422753412684441619055694225378240708618750091461769259188917405976520873621876505679934187385808651981804509822930231383162639088534954057009667173800822471297521433867538842401916511399914353752032732917930922961102988017909932295738016458108617511951733410388164202779431668524200967489907957914283686706527503730430962909622826338847496154851437911593473618067757327075930369689866338785839033114036668683202359359419017149402569417998820987060669586638209824935262651552605258282703840396533359762795198174509969303886894919627226303168991071688032287399542560492342899929899467532731469726634778237599566349205864274557732790147764718211332133526831985496795321637069225326861543527893866709734608402655604040840888735167919429596475324462829370542521668743777982021896287939830690080126679706370076614928290387179647437390780890446109529596843141881047575315186979200622645208551499948148196393235648040980966507405443502110890715117439917712679713239681890057856490909639926007979278161327628630697395557384558046286069890498992712191073687480001820312446550638705880976795742736245902816538375137655302497983403510994359979117203359835444414631383213086209315239914269089819296710461667345150036828729674716730267765321106684716045337501994963804196098887597519717288392824968968270182297224077776297634942459456198056517186583344270850748047791601086665464574277646194351227484727780787519931911069971676581359137720358037387338084608074728715729559900944531152437327019544618471100710214664270460268267432300296489686853889570636660736710393329774003316919681685815385944158697231289578486646497580308558863465018697167568444929854653033494150488236066964754263608083786633088331100952977857743424128351816592234676354235153306465694128871708341115672719997916434265201897717611274752356923070659919587323258361018360201186422244136656302658931532661349416012737339354198751667482684924459610968838540764784333810140819489397799437162174262272860206030648425747122087597300677941138865565111727735941356259700881037822613174572709294049414950067764183122209384195127862539026953755621967526624079962145745000179008788086871379954120669248729058438731753685332494207158400251411440976088742328402632801430119329050572131327859192957632536590972267053239627504612937393346680494828642362463745841376078714941839714902160319922726833174439006067309968602116076966699566543718573994845303982809653467649134611520265197529664412467404832235444687106222456030423768392347026091915484830930149673733221139681250635496936856020861745505389218409054168719880105777008057951466592371476933855500002370335649557238984899902210151291925985540099916353266830441169083728203448866810021676042487995863856309135736597492442215107751950977359995457711231144684270107115317674542184085095652187257868287166922617797663333549589676256016934866976907453884271791414728224008263836404478683177026076250683774333877407233363902239832594186010721346915933985498736601320117035558806539898674418915413316379656796436604326249023508800633671345193141318589914440919778783860158318401689442171885724511839134975698206521346292705319889630332768541563081320909859975900895992760721653435585876857914656762952393434377588562716401460343969551522196910432123278977540055324817161596340784590307804589796692481492018315623978960498934517487832286600973632452234359112038899835102074892547635357241323558960508492199043437234742704788594541435933491101460216064491046805589780349909853255010141943867819802534545472027038044770304154572596797285330587968120597198626624339191438999673638459761984974909376656703024840585384634346682444530280388472033729114243443335345020977507657061499554186547204167614648324858502245093918624092799732888242121462739804511822914223979321281371719714387234233030307850477418076327492274009519793394720015653089717127778476463576423375934396058936106566746651554069623529152216667592024011062087829830525780018511493020622819617291498350565084101714147856133422324698863597134126249745470854297975711236158120844820306838176162145510814473575893350331016318949219188922593232125071219985377722230276936506069263275756183700750451342930967877955172783426501787235498680889176790247491823940846535612502615171837254729352186538734222808919506805856101497487231035296230634841377120138386372398039169354901590758341285865008643885315829952026862365857620367353228392057456492605228615369263135227557621214361592579255119249545514609873826693924884663709512193151294269976415838693019205159457071974347747653687689319724995894929754423743146255554277195147077007739766339460556237092676532082077172707379227518954554144494865765125572539100297613812952556664432354039814487428916257260299934623049283735579863075232097158907095721039556472262154990577022361426158312814366873776918972017543996450021086128066292013988108377726556836767835201424030653450544960834763411416173109773333040999293876312907831805584569515010931700425677426845726929948828419692736215212309828754812554988352299024668564647070652791554660477764234355284406482320970614486502537675237500354521892552231306796543304070799528037045498581634206005033458491338263747435547175438894055799760852412484987035830337456307992173772160306671345342285448092924493641001139035546760022164024288502260582647726047855380856725250700224792564239127254309673855494796995874161388995540041618010837068505828299490218213429492817365054000062926643977357353333190425978472257027959292316955576310062347240865517926852428544258551356318643440967296328790388851830434185448520587803004831131127373211082789579189884518101061146796805940085027569709552290639614298452947150229263602292089283943255377169548650377732567626406322855713246420577471949040298893960580128535304163111384987004019600520805249298600829232289857168809275708530086096506006835299284848289426291511038759862541085633612762165984336931075387908043073300376391062340897353120146330884187308208432817890693103436158366461913515173397937934217936823921779899616023770880240484434009298813129432760449363618282084497124370705312281753796659641435637179941738870763915791720447870368302411607777547768137907512643095202215855601462719339872802388839647166013088252101732519051403934186953637052759393501841366348755551493945961880311237236091431530497324030679403696255291939210177152477003413011328499669791318391236243954248101534884846147636624656167187363412616729782447719575217472493203018011404299412320777741185659483180717595094525802462365542500512795938605571097083346328672207296246476283381116923782705975621365409037810782052661550122854366176355929450426359703590967048210783660282576118200747498257084956817923922201848142751781569676666583336690644490483567436114087388215967373159208913204949120999198931730174629982204965345894947736571718354908170258414713834435585355740305406553521661640868587271031323600178301749514003412701209783056422302203262252958856917454388824364854017346411937126118629069091764153114990694644280276449363663086219953842825153150991348480860739099994648045772573874596604435605350551654772650113879262266184022260421105152445014536627413066934572717368460160322938231307332642650408000638496140223000595599765281297892837476747415783654734277363948499784044269108013584978052991160446332977557334595152380041254787404976435987177669034904752960952961152407852774290582360669051981313170900115538509003461747142554300938252653788846156515292058981455753323773325815680937943590563302646372260191479213678147297830039690785638563940855372309698469248456017631086416457288638081410827440865785855577715024865849026654752814365034912891436462365915859109825627078281333903734496408347997846727941192230857648890815210907047807641665228846977173281155524293288240147456051073012305070486705668617192605364092397162643690811015909800938644749067367849101462937026567611128780436732986971647587696508660576825032842559039700573646602424517963181646623439300529572617279907047789611116348280157255047031781244966047589435968580519261099499013262887848480145035678457185432495099397736354730858419769422172367622961296938599213703750006210187124886376234397508617774183227197225303752137020586692635311934771432904032630852007420171477005035423632321896042763874195767386297028440169924917206379121072209318924056007106369742557573932671172015609521020853235187144319918732819891723013011115353200722643126814529714163471938592212662384534015106152979328897277945287551766154131121526996014805850655458671308979484676280707825867655543386662077868954818885803230719294376459264585092179669204299936135520640728021640983483141556648657045855248274127069248351773910999623081539744151798213427000118748450956444016068154171452256661923323729202163929742083914773560252467489059268786887651191925072965621547313849479943131558426296895616366584988220636148847852811504382713796883775429388812863540610316183119397086153371938299788423108809912490335170087815344793746082362855663906065850186139500633238561755068276314107836121312128011025358687443138266805120266183764970159950380356738480481181268716470243621990015988872112756842906773454696080510056650178965169441813871731197319954439794739966193138644563519204673164703229910415308641276427054920452131381712947962299563304473808636371486940188731798812165199957220046431487024363804940903649158440908416716261119316847923090613178950032312491101262393660097546107874973854114165718964138840675389154748266555070251987900226088553391032234705550653307486454612746977345352086445733268924974269211681595024451165075635934382126294828480087229211313059038657771783392094386224627672725547257426406568505044325023425085487582648720010901274895239052792992252829771316030692382997045524201976246294369116045813860317552456054547953611727310661856281883259098474767340820019179416762629131136312156373810733668209230267356227168363653972171149322274562294789826976516713029746368251870332741629322481006965688733064477591223573449197941875605581564425994222563625439684407347156629228925537215572665110515553857707158272188535477759432526480993614411327918145472084295836298177629083677831959347747723358096717611730706769929612294382692984268061586692316858145490848230585944648386615372321775322547776695196237536563564458112934255848022782673222593548298203003227803197027380802129709912313392175845366030585290017824307665768615782943946907363246129643975848362388857855886010203138761544351944653790738453907084963164463069341851799939132390593304551737834506778093639509928037976969126752603082138687534813758970956318667028399211208233334700805088921870544445279885810360091249249974738678977960345172759838878169354671326075173178859284787902012899639809020362889832135307731304486165835302997443490968338382121373377404947588851505571118821120371921555920150096334062990546393045983903051327615039897343280954059076030764942090511709481140156930504877163555433421092023637830751785476352512185130188206328092645726293961408223259152720132597953048531888749784561307193472902478561055943838788295135988246780255294255594035404277296061140567557091022689859876503438483891838234544211894723728243351336910743606680014883551957331442285328447825593887776199399644128267678144044999994900659536576756392921718077626227837494779940915390673791822233165722059881835710162294224578615572601179600440204651318145774065484105882013177047066609688196603306579743187490013485143294627113319528358102942079675770702800283285781534966203180118364362440430413677421037417973215645672990838624320487045243011674584526424833152337119728677105020628537830433092693792519367918683649378818033861701439991009209788240570088702585483209901860215425310989173345144439000226825870031824915246774636732509415876703940895909728269359851419919160904708442316812256472633719977141514514915149511712002968913978025539244028303589877696897559207148303681039865712909053636820075181521790574189447770108616021064630947656452487219147790394169248648258951281971290392105176816453191490794918912774685682270225026413399511870869996121833106987181691774788683102574572770740293240531076421534368003501969337431330400818855290950456223939991096945027235797068619918680914387706005258597421627098979772176172016721301448747557552825001044114178590618674977588647504056168058736426020948642646439719067625065642089090168154429248392396132997845218366315670516240553662567150099454971286180763444714294721748604630511605950075151221126126680189202115738343994210085850221999338756944161742203612714621571894398940820273055151217540007433537987939391478654290180168907349156215694775272614167519968600859895608493544274322477097667482486016529881757425858368777278651477012602008584136672463460702567769831722958229724710112777838243750879625775976662107974728417361495235008153727865456669830842150300655820065595046900312056493221876412987805295730989986340718112123519707803735639263645806578806749222562179992691183505346129976837214526410277005538474554499825957148898167961409715771063301730860875113141698970124418149885579300864080336150981479576676399830256748823931040474797591890197721267856846436443753423625140297551234785981990158843429498686867349849000548861453945458383206748008899427653455102215041864762068215766209580590753328825414246756949130082878491065377852800970588994078269024986675407628866788519344402513901518938949257832629176485514780916892390078673387418597451092597933032128755755206065832523357600527893296786579828686552507545480091026869744312343553806119630829158292175194375407613596924911810764452361180051185636106063952198360908163976163965090400501552055354411229523352739053336523637339526806326643136977304593151859197098544689096670021264320430125776075407839988850144165577421682149158184559992289084709997932635780939074596653996117474055573303818490745480107940917420366468254103873661551382139302633399706488372699032277948789442293061263739721905554920177167191491311891206387193877890703608963454367415083884742659167859625731018471067447871960144268982858510967142997724317891962340457711423603849235545452260556291301012567373373121079113218090773956357494674739534262471845100135642442983845510162025611878534876506715575288233222642326497029338460549763495071953868928304454194536181908539900260898397672392112996410236109498877020735929440829685595600264620193327568371936482913424176551482908019852481229030974343752369474079331410611321621709555294044350830827186132184028551342970744885876167581606079719421306491315021926683571199237683024203057097863413602079573579868739960184070879068548697845793174952283229458241177587041247902535158926174893600648353009380035696754267341700756500520406372833121566065354284384910343212705870450599129573324849205575896134420007445110088928102224193043280659369627203590952530570194111625711418561812002015639640398802251570400258527984489419443256752957456728343184898175567783448233071646826274675701327208270121478519391067097106586565151555782697500941601621199845561428984191306219908290140794359160378161116437360276256749027130675838434032139470040510107984961826977503543383953817187079140000122052029852442434414238198905408647933436554910266973652363151925579189758967565143868499804230501918370420329711586783896743899471737131877518652589195761241098279678371614630298876280430036080885623027553287216596523960611470086697759367097948320540987901703852130054544746200818610026134229425229340583488152695272820360225752597718885964228559996135639561607483585788083067771124294517868222215198810304268766312583997499321800995349985090405974003926239033828559829283071303066333880778235925469366131756162607855298987582272426171946570121877201418972260499879411425802484458986463036236627492184837993238769853791062843763924717314566069367930647504264607774290099300085658250484735505901533560632736378326496212167130284943034590327055779812434809770434640984055946460866653860809337811320526558104337575540172397229651403522180488468369954534568984955110157435454043359453004710463740318779053619784350256152275927482462565075023029685159232988102103324245223469412610771837390830926331443410275773154185292545818508080119021325651071851776669422196645389903431697015955253384414697845060531559069588684189804674095855603871875696712704264973852293458928568495774512061480168074263020228999758389227336568105302766972390974945931211800711429625511815524807900937847027024821225424986973799574588533483136477816378358883846648324770155389509920501403057608364444585091010196928454896226006048690942703832175137849331369734148891614269289591637451756081725711370857116265086082928115104752369492289223808229567936948099820576327607572667250896428742356215772160510394318708952218750473091671025661526413891740549332446169267180816247156960710662186491257884721411490940105901601921271453123032300651006545933511978673050904297136692992400389490422904674585223693256014392674916267600343382952936170632901366170530698953025823161331930445562680953297672069498637347222958919951387695062648194296088717981049518214215736167443911732688979701040152039458864051709717608809625434471725044836721714536420888644080351113077417595366127753981032972242848158821540694059384938751689359026010092876117955331561742347556958364428174821560422139158975950805510478750452873235009902586256023948177538015587435130254379688519842711578085922287821994176594869179560536018256827773956883907768252179733852993795111577796079876930662084037360317724274649678609456175379119931938728020988834941252620239818683545574815492520290156328302560947229133277098201305518192153856459615066724254821927774871429606750426578944909988601096141304371378981168102233001830598199178805808388565501238114610658085607913507194393016768582791558252709883580403750537309753073852342529598809630638895670134344727508908692882025510345511490119700762429250700753135405311998557321506833719462093649120220699295949992261865813239939478650337382353794141839776441228202359217783176030381531684055551617724539756536437329364672462314366944859856617930763734225501737443269002902211208273436267414346845586729513261433698578837567210418122714130252955024412034513512333570385873368012667407785776295099914806570277196764294509956595657377791617132989149397612944539214219054821642630226682614218378354145181499498456621045228540051515205359023175506880071550694850213596685951608374778800332733457866063640499778989882316865101729120572140333995107787549661797841776585521772339531297561603914824454629901575497764524477774619121453740735709615928967993233700565414506035443015319451232900131199926346976402977783657267895151179085265469441176284059311591301489270559012478910958279797013175735072513864796649188525054413912498715416940060259116048911282581832480613060177145225709310043162536747105336717650367842079747940806026299239213812085335582949720134791020216569614286461781846416435505898802086284123498030934002756439671536621463926172269039099789425711091419542226991243747896287670634677421455552439122615031724607610620602161932733241236820738581313445566551610813895704222662530771350894958169557751414086835898742171119030364655470173090057533245304537040158422798821070102180888772664558917856843060873833007546204204243659647773101154593305195146409279891991583737090244933110222450452755852018956252256915536996424788368537602819644776903815189446650078980899085634021684595048326921768309859996823110468782534799162923811814382455707554718560899519415439549383476450777722845987289655565400561129377451854276235855534984356495290445186900002943127410251053835197182739565063753238596829922134601217205048010943062847531185403860652016355996052366401568978715028022855573047800610626579182181265790661616621551181794639683382811155156828087172367231554454503741896913971537409686005668774001886680335415883162563972035033455522052980704117025704448180505149246656261158509904839163422379253402445504916901493071608020425685773033205051925103850105248252096045070407518500668149199452161245745095349535929775922939994588592585449502760921163484392671339753285342788317419644047009104974491634607863352729259637401406480311684575477985217789127905860893827422504363918297803694159875852725902267306661985840458884495451896177313880835021056189176009620810783438182466193533344078730627133364565010099083872663354696447905853312212422691612067845331953174511524101662794441993771224259027996930683022110199675895011655535185657691721317001493598060368267970421082008017332478952857180943973481283947313896132904827909832057776018917890788871023675939297869953889401806287349236333518299881007033535355087425589933510727173691552944987075980007926282814928005591485022681857482555638488642575539900097999676922971819866865977935705670012832212771762506828826324217248238862325266535497403897382862003644576612734246529051622744113224502822484352596707185349324837233674361122519140919248635245692309017853013566542845964126481812025958814816555840217043949057879618040112213777871725764235946209326824307668543511836551910664345237980217945174212382602324212681883941586139287675967220669578126292150935965194722734805194236924224517582033483623266898089188420244765567507900083321541495723466734320604314218512626225166488619558771331492809993166843633175677951193490447171994556409780038796586939778804127155383663198903233237239455750219539287459944064043271076649145916833706200302456462953966518647928264810861224318544357899819750553614712068555484938808339502792800714454303900073260992685466787554897066114445955696380919035394497339443167863356841578795735179832278288947704560598675963018072249626117249997885833726527957331898910212741810939561094610670112709645265538733587615997657663074855091180935620454250860219242128304960620904167140032691930434899680774470285501822479511431085546485024829746160713903946607528884930009020918036012682859754620751948847659982626454139720489137938713888949275393097469207148269976870549801632174300423829609356075518619028985595345475418619594506480878913755882078107769623340733045388403919395516125845329693318618053975948653075387168847467176359654712697554350904180408482431124693385997194987477796498432980868555347009971713290746645437369328963259976780502408886377730009235750183277841442226495342568723243289816018057310313560446250847670543650449447170571029319665768639976338669296847797801750092602393396161083080723740102018806334920781306571396293864970271365575726014160685233257009808295265291146694038992156773334138441511174639615231237830853186378520322906259152156784287119852838656777973787981536897741719625410358723558315891193603819010327088377117958094915847681757536564302099248235445307829238837406874385431757050095096243989336729850864641862591765127901497335190428452978560019332047230269071551295307183931543633061887049852976972542183914464531220052823115534485723819571437714235703579850306716485588767775613631185391545845591715634768434953018491823665329012704623169172757077069059296202392349116085175016150755037053961301581673176557117340557342191995634106976435811136395992501323274283683688553905013604952114845641621811438737014784265181519204651874817118050021055745779978333317076861204683663939289470296329098386237708814704170931034737380976137469219858135646125891240960531523122823213970069953947020202772643792022180165473799612967930089208793936161712609395947588159780998480161656105570134018362758701433486966931327686333721549345119433033369967042336570364196570680897490293550915859886568139962925239084022458015639592938144864683978107649317228613029237643674707057015584324392759674034863139618089859794300392203380636701323026471802050927109738106447227121359961813944648559137817748349099602213982588665226468819593675170805365137750779367328803378391916015307967804453414925404760775250714008637007857428333974000951704954212214445088434901971397160362997349991050108466300043583801163901315826183515350129354941533336629683094638779074177538210084519324360469238904512071612097755972783560604993491018293075666187234548398009451130060594889710357765273107634162029773887842936844975080114633254230907506776990325128491661495687279382643291864565583759877762177370584469651930990581571269050873166670528532202344285859181401288382565231023281367054691227955653477315391766016671395904449612596557863218532140655603839974375664054648985385319478502103934054675357806637582898525455503550548619275821373353103465394425133551336031298366295457429186663435680915534258981344475980513612426492306212033468800654825835477466608928726192702901757647857340754950358967524734684002075144638362933650730303704990960083376543254198082778759773552463477270585433565186622140831323815304668087291857066008457215700354050141520065448897549585579679622375434176941990507974087730902312827240893586539870236576626578578457496095811871711095505596853114689012072203408680976368549050546752660677060869949748065287103529545065803057587408873347218626192800914955575928276559590609171644151901650400342033132621810006061603047559967448322189927273705375675239467379319494614064282116828345579409480540925567261048556680377511879477436491737045664406459566077054644294429181240898127813881994566711035547229175718358625133949977724504509737039497986417437610093264875924217610579924216280397451677996312189053211012954150010199235335555150895340196609723457102635770682999311063269200580425651225529607061783508943166942177599019459767619861546759746815869287001529085232948834882223808925294765943328451033710688832474888529417537723938213380524548666785966800085920095757918858028271025997815008612119350342508038688927021412872189986777231817018488691221244177915228230679137610029565298552211301200894773236409742917706504492420092040774236407286589732857115563048993210918056836131229667669623441154860529805382935246190124013736554963371935919678422487993989819554036734844290475646727607981875336792104325004998224315205437411926545833270972693708379394011205910885266687729680824407098017817608556006394165464255768969906511550360835223312994994014459785812372504454620777855534304479562722237865343136288852998751841765935050036774591198945268981867095786929818252398578650126979053394155935893637012902886939624132947196834896165223255939961846522318133815910365034964271900702392044942901949373222269988078365776784158545508143183589024873983997672999597302861977063726106521650143826169406623272207690842785397352347595010270143943266932135568224001484649477771668904418381655774251847710997700886778937870552581374868747335188572962475720755041001632061898277190391322990996534448627653952549272334530562750447945722581405371859399038788211635448753980834079556850988555592472585769540233579446098251304740531357936881530323252014095457509071509040639226554780625043146508954385836372866813979271291834649409539805278121942601638277560859495097125104103877690116122264272424419383417608764173219333298706041328128845537113789040971986684146706671153114019024555937040534628310790302780503374007825180039876528832788738234012681111648268103239179301757464518469904122811692098231483179259860445244697628742219367775167126327252796128075855709675896900731012409465251401276133977632744158016265032419656890938307448263057154703395837531768218976325824168470510413895116698366786529648560898862629447865692273418955597215669959279908499656767532824615479117273595525142828501454466604005240487841889904622595147490331678146984576516526639171590340156046538526849668727879420660964660780291152423056071686239741007315783315952741049909492199483387655499075866473174837956846678234592683607285980630484098187114222634693218927695655530459499626791298688013116449758000080845937406595015406463374188221309237791602539308869701782444637748412900830715570332854307354047922941540818830756921108414608348627396624425366352555275899324808991651719606369950330017555441498589768291883596830284706915823991277557284026678344675280745986492819155148517264123584841079481079172980419033775989161376676317793067909260490814508943116553345369683397867807164310176928170161733619573150080639598880862249347096630166199334955730999978641137695013857366490428982713407931663545733683297732510245598715037342334380595106859596238580379928602458170611174117137142939087601988469515273644092182254651726562432121450955609104275410191620515353400595671207379930799163695721886268826739711550915877600404215847879659180507026660137333355271852747884493235231946432486190820117490618476427758131459450204305202124948422339069495764624136184964529934994431611460601836937692776684810700104526717448340443473087585535169399832933779130951350259553454815756921960432174070713730820708602455479505217469991964375673546916820280444034979231661089769766539867387864238026233432673945307420179561881110982806934676224768489815728483564273632571817582006398101238538258997046766001773855978737527081918696569602562677601060443978986257902829849954611450016396322428364640059163093469406401091435445970917255870401477533998436330832552080163259537770286878343521252778296626776512959837341286885014052781089264779402672334630569196585107523215987638085010642853158869246917543129953349700063702050351932684777649791201878490418519738456045269411856595929566719649073071033462988705593086167802573815183065319805447405654847519311861943347503416183691847209615297150574677056724690052811214895695603664729792816362254821189730113696079362193706027597465813324390791828512474336158624416070575922460747522156795716595565598701075441679103847518656029457084972609303474872659627799235019507206242232834800375549683099169031510149207333528160056640241881964546745644321517784780039839242057232998732115545086453453730598358515452116615501756303869055911360713501758032658010308259815288063364178566251676989209607453000162414125040324191081974979048046418353461961905498122897743383715471648472997217640390022693430498678412502198356321706169561753110575371466718894319711540282051584720253735464703056668885975958946012044342882375157962155763662085170528214115788141308974169113875491321821018216845377071918106446082247915549870823229287749944894499434271492328823321399473786735989756659374311463420679379101821409820392344846516568685165675654243958049208506100650275350870036365008610340646899136986578627434119675401591324415358305755012059847315682460929999923346730523006799481315104897205344169972840010035985634812425659498216327283032814213874676387157130762833655263517979933417879839748627970799996503281221150278744020927137605842632962721792571845011685680655542189231086653480051910813580920147410300722174497627940845960541085932885320811302739357263255014771848562812579210262855632905830549952393245855635259260646245262657147733552241802246231097434373019673896356376928436080974049600636230109207416612430866023600756414536052797932457143645540973406447276169263494356537554471258299118365053017918127516908788257936896738100975519614866318366429488664317719826177750182699500970066015679625891414457783083940100052060676912918514776935669373470593500977633106616120201395205971715459143895499286002442184771081800493898873678417565205917494683120762530590422091156362857047572859343636164598073942555697366525728914769968861137100857007227880714944261254505042401471858905242387945841328335338348819923094281260948579051636853854192122444165196959627015664826936888464729617630380620326298737413412889644004233263420413857864314793625999884642643132348918605889648031330880392278131490349006728848099382469064957597096371669482689894703223373146643839281923653777982934811163702953594405115290456979716313280057229065028897090535862141310427086345640824439780060627319081176915149248721938671990447355536859673901845548516574640321212789690228245832779393168596264853657627482206195291658485778487490725674068277451903655703165365099012277186741528396834145202996477402422286619208408592194643217234465951048328026352502022054277816848341997950988990482536151321126766118627723483077691722359345023259469154893543267328186587925406259690938215704018689331563759140974695486306031524740226354247883643296788302080250507216494761492226400562794943253434852042894383493491364995862196114786193459937314279841066814068188988266848107488321518905227959629042223117180853690801869857317240141580916910270791114605915976988644950666634623676863863174763068973727769306628424727383477404030244074973309450841163369423702138393393174132690399617773347521209890523599778010042411133544127265071492893923630751523590902828485500148181463516789219034921435222658511456859888832655663968584486491132466554816113217565043119058986427992583751305649527314578951143444082791233867554550067588451488632510025378985639778156486564958397234743500451237039698692950497485754095068635737551176246311443040833338404734634998402590146272197263727055748900598148252718962747695265867426543571700904477564951728845128997112917100468034682907367389343507863761245661350362626507294983365846497080087087911673840128807113575232051347084556348170871409448466686922978118423387078455862484467572984167128241294543864612214578584759844021428752502316255920870951696438330367179234587504802340050748081641597459154517638766459016097884243025017334226119132448919849739717358296290824015852755324854244992862847469716260309618086458768501976936215887765131981167386577871421013376083327076754642530489603432260864794157657767662042249116506310592323475390658888040514213822711249319352981228160870629930179514463359369639178832391784538267204075718682606982214538200721199960252465304236367974965264922554994807459785641031809630773831485740984725248681814639764061524334652964876750192177038122978229420200975430145246674142662696074720187995339557613444068274177003063175504377341668479584888216678173177495546086846711457756987652921255783442874888922323475798749314339833323362941924094495226647366361704782124149851831997913205536862049930636432343523815695857990185593464776273453613038992174820147432710102898361316374844964981054896830706647228357760680405622111990554866473234537372639800967301810113754408043370153759835402849307781092820547445246185234406361254451777274730374603175598994350868753044903027440761072057706456552573065270114688591598694914813946751292092899157230645015535540113069830918842150805467273022019909624120611209837438212873532213419253750665582263987667119594246212098355580301702910346500584448642364456823555871225447289007989131152954271636868548393980024805767446293246282325470039333001542145342361475672657646791545194120845412062603724310314763171518015477476700719581635610209693960511280157469092950711115520925481867383002859658075196554841338822123164908650417828329832809886706538195963437290078925564844443254310877391215265194437038808403870333391696200009322504641243904658539594804070011883006411199857057881327617970200287394127257908700967090860180752562520388375768902660186762297410469613918845331657583896187025187573597397406716847771481662545737595061048359262862873887464532693235792499430336828371479681919294587842545086757098872797324301550941097074811520345638836997457549606901197878540967986832970360254833104424422335739050054794839642969698807050327592208775416561572932146685270371755943989739460298064248636157524427900051901986164244032111887248395482857328670002024556910285975640860251636114868998235275943529727980184087185032565505411260239293372650190474707831009315253324843023918588354258582320504825016783896386296009273539938082769148848981621859089271469971209249738136649849052646396730659496642713462273972454173742832002141203216868573819758493319622637490537715150849687372786863428974973877799422129913135149243855011005258187425718541076358815689709636141980417771789937574743873040929412861832069867947195576483853400268519347444351392606487614027404287043472652754740578369401300285531941832769047315920406646937300611601039681928571393979226560416681917292737694217136924009934142735360611663145423574582741773332843174374952182930956002014943525783355892317169545002911092861881206503126104930996876428642046927373351911643142312287464603051684162299925500287443298668294061113254972990950352320007701673583370298587971818792414200819473758511638665966729854206939524748417107737969745508142319025458183936584201857577508431540108479679308711293992224385056946007283641685440704146506627158285311069216972630802690265215066213097491829449337184487321183782678370648563833235536676888566525040943261712236749093075078294493348405324688125451966138789579091718470448013177578641231443598917571220145335403008170866577293051227782474429837227972027432339731848823960402805705170382911685627363006013574226892854428952896400988875830004872900312789771056615458328933232762041735157524497711526331662654868027144600536184415716704352656292783689235614014491147454342720905255382502300575382778127755708007627130847350998039291085558109240427226585320601951453326265936731935699596644196575040296781061990277570943888447214087289769630322737107789061883082600880164959289058757243133597367090458302548244033323680734711489621626673902384197221858490890252648115651858847647687615927934444719316821723729863951011361782506523612006578109751411019555025734909498992870181091139136372022160520253223128076234551072509127035186614657534772584287693401464258858094866330507789096785782643645039013073067028041966505419268696432610156329164358723036284413047628663723237083467395292200716227883024275787722132019109706848052377295633847648590998980288033183481175365216141638489198245735930293644050130242561631496468026093151727242663314071440488581230107680449106621796910911021838161409390154900169990379829670923836995834812906643071828960457099029042641680228054170568981462834517653474214998741455861241678522121269272320497808175627692555306658536574037215392101576022731038920844973961074559205540167374920617377730955491623218673636931232030173404231968529217089418413242300767775053957465371360416684509226607661109765860195335746405682506441955233023830622502245548143238979262843408051476980365192431081267985181456360310280000482138713727935034690916797424215098689673803359409003360620857925765396576043172528448164208831523058147186791555484742432981168977097385341392491436040314061217591330538394381793022079761361012229615398101652708522166067983814250236993791058185584256843010139618085346520367523360108180738670010402991847622694353054548056090508878935872760866479503954123648082953114192865999541557360867376645154756263869850256510673695524495686475816610742998555143019779399853969823927643220546258819919617863266249698034508671421419944899445586568173253654029822593120820589913495831419785855281975523617720460447042401835163414319830589599260599954473814764784928922283924914010882552315113414749441956473021163172541645102064889803766166309324294880977186945908395719676128448736731475502155388536031312538308884658811507564323002134960410047358945294888743033710926328122974442028074254003723606290372537847382959606944869581664828455051742839341082164087555319220188658770865375708215767891344751700052790200854701840366409635500647852744979928048446783830726621729312741008495779801409765259384778627293897541320286656663069185881066088335436813310460765136824409585121602412179368154863885530695801320702813253208131557706446612271141207701024136961631333770940041691636609540243358055635783490726383485593874552061335895590473447353759183278388961402807276843266362162735085896789704783124026362265218518857166632781285931815468246650099993317878179880752874976509487834583501394880812840792167659142245840219387618921952992025846481333357425148077433421796064322770574761288696073839982266925211700806476899592321514849430822124239229291583564840940787797967789689931241414521855603066748288679670427672244643730258331102101888414043867250669713348490974669777598379519878108397565175417054187816433648925273859271205153382073639464403264647809414389852034652168189826342869964481536704755282537328322215445535539692367135390810740380401931918794602728935006690071289003160882703170799409653229834718043695926705637258493567318042801302295969133294645524344349450831145151680688637434537518151849450012877948225966769202702440758220731514159006986155252281503592673711840779856568555164785396446949696690684436844507901726067496422056716054070899714933537436518929477928820954431701972656316031288109969275921684935448829150925707979505537952192169468825558366939359784488611153266783660682672774652975482201012869755322029942614806184397494019291033440615463913457077491147462815633491434539843251516405941595577866236490453544241874594873031734218297936077413125507490580476734993833190333301498301189186715975263590955745837164380656986174354297521912752023594988591196663573370587309413673765539585856386481682534013027828008487398887344503630494527613954494040853910372262866217111443621835954046713364780528594535222508095788358575800457545316239419266566792599588832560019712092579466278089665582349076215081648669957061974751197764109722546722675645171989424176131273945381206889185476815694356394508314660794368715449073300047470646992371688195667528961240158944361173145475034873933620925754582836346784900242928843519748658728845053675689338773028884220227870251210583747024775510314458458167799582155065337788992947639032194981105116992672341676499221911260874624575760201051520242319083862740460238713076380564966743797224175210854877861642591034165981138961587121111062917294125504995995140696598466986932046043117016918151224156069179624078880446896980604038188591791722183801151411054812550864984978850827542765741293666457411307501045006627745140035670299115520729277319602173078436786079951899440595955822659157672844300116004534894975048491349449575120729352122114060043503150283906085456855154663068799329996563819332339573657961875972199342597226530950835017923597620766867652370372219284754731269107740070684327845961311057427856589489921092815783491051673965796053612269969419350088123563001637677745828336059765154078528580750620815419622407589250864272593711745018315829283201745619366639520221031769106496310261482067090357794223302215376776878596084300590401570873531391418837553505402551665301137170669550734737692791736361773912628186901211935360010827593993287226881678722087875832337161548607223899178946836559509298758919283380876573839460517004576163418928917287937524665720866683512262830802748346538479776782571660815621492325714019939624376487802290674590911530877648365085678960425260758125231135990063067140012576513459382850026052187900553913747445099648478358383335871862987479093774423979007025131580112774022506201815693917513552397370070524713588812372133552071715105383046906270107662993279155086412437103250152086160901076917188071480696722105274824332096376503782371895830920134752462573532774501507940382589996849804434475997029876593016225828561680672392928223605480569339702804035338493473422702421563732271259867235901294865854163260009212865860231013768360976928420888717500461130377001002995000629350381999820712611196112712031132488767274849004330937483075376116157607363211948769207768497471488787749955300655563321019196791253681994445940549565731747634877464079564446832604761556094979826731770630786825096154872605232506584555147264040411140459409836513207554749075795615429605258602655507489068528839695270785907315067038210523783946478975132748613756497892339188901802693728437451019154170418344913214676910654608150647193070253493971194836289387516500024404348967274942765428435364077412709662985716775480228136580089485472485848734687708831633178817332489494443103601668052651116244722390849321379902425633282623324544659020409992914124096582841731826741874515604073101440220488589249191068923479350430929627601015734612942603125763610653431393947272299413605476979720802297233547191462991153162996298161017367829933412169946871638280138510877022949643562284951079178452438569848040820203197293194810595716973737087843559501643476571429081227398682163834386308239917956687580696553102256762110615385776358399390628977845310280774524327854614015588144029776789594486764387216237845786101681798677081478555349929755231544947874614634343111762988577496579117941228919126738708067342630353920262569357180122911788101918420826988086653513301789102344700077848111308727298711242593438944004521371720411167177812305272430331290139173807085969128749133200293135984056235980070553461604205507576168135138048934244355265517273641039729115504323962272062204440020420433064786923234637778628406913099664453483924780636304964811980891228418779797082341276033719843094012033170917427050194318365645975407673597283188716903307743354121835676181275476313812645457675365985707537625416467672396503653020045258444729884860882779042870496145328438673243296295044260620148408831940430639132413364084459438755764802290498729995481219566715413281905330935422740415598797133670857227730177995144100147112190982107123474251441213788394510904261702630676147628986281411278600498567384990377991474306000786575546105380198196026842568980736925877565984439887434289992796938068929450965109084921808182797489872824610120012670502169177019079236027774743942916283117914108283928455354658676417366925270375690142200905398275489795590998115383455508172200867880407765031988798947954367776113258756217241992911939689844036003814287672116061382050409696263139283544892991688516479854108740481378933880178848059982026759965971387074559525452374327421343996527350555440038371419173994791347209981139947013565560389658502386682324517632484253139024723592417247572004550736859630487054662103088632858250555799207027378890431868458885992108940646234985682314620438396073966541040901841565627199151321772357305751629453120959221639623140189718887554686969298198399641885772645204539729091712005350539513713862670563753119133777206179794612581605966952511041490294001798068610793563925085945200663045774278322915921944565468372865460203161368632529667851492235109849816250972583447895530323819210431448803293367528844878654382337631092734037430688528154891595972343095125589323170787509795532574770665052188896429377275378933389553828935438827938762232868741900587840388635949648207994430177587182174893763865111957450608273385068950744831689208525989308711717082340237262035122967827784868726374052299113549576236948445348660931139312975974318484675911477268231962906749215928129941501803693827666870656944902251758748325381134272947902386395034176764944652477036599629977501390971337635169521824612611067154643050163925828353080169936399667895827968179902906520228790577476967579322823060999351516190112524944513333018223607165617913496781339061736157080680993681652941117434774815466814351563327334978730228933505396114181994278743541185702455574594386593621087992927631278836559729924801949537706434512925956488829559482491585410138544649847035782418337395724678120594898082901573537203138552696534954447231451666719496311054663174434596871571813186183749177882789282200701968133823776853506132746636520970406929360949982262172224011658338166017693491010175245330905030442967635769483344798513420622776845247732625827573433942027551603739370564672259840093976674545104817439421189145361915365262499921336382036129935187841763513535423201252913150956783837795893459935755432234866956015362663543316963067513984691377112477031382837116555709200543787020538245723076551981925574008067247012505069927188571122683618632651959545490162136657961455332212397636257466592871200323661929536776083637327129635890084630894657121799097367365333672021137888669935315208763802337424287053881396672410069913594939184286508476675976315262370237505348037193386434709384909339512421490913628746401702890125044358817157055504090108175853739925996085129248688276401723817908230094085917982245936427869930352453013709505984307754888465338548655628854774510368059899327552865995202936878659641326771070423810007361638107663099635044677944186193590715043227491388913503135275495964170526071054735929445617203961123903632412441378940783828795850316966133413752261015902057532215572703559335449542164484578731429909583073445683453635258717368725366978174469873164955550565703073513121619516994815060336530273394573327577682916550487020897001215419555972286700271258124861945689098254328353200572954636666298480435980948227204776735183397345370935875193859486031723205788344216238656521472074049226440245552880249892418634695366842639056609424770331718923701795121426839429152109120962835423705541188464967404012136267823828465719896128479749102086445932905635365907164788323074321572973386240489891601424096178875921738455441742335449328747966144100094488641195404141799077008172139761821256897994361928144364903121001678880428606972256810835571118019698988092984160614896403575753833628234267899834379497511778884688264513216601930752985074801859863264515603313580281070784974501490458110198291478691335372487659525001159506250967541230996526761847793347327330976591459453170773146229768882332846060870397691653730706565338601881300294175561366736635596191339854946056820164602698733810724592934687650569312055795415301226055502712327384921777770270371197753275755998014890537368109210690616581989865629172693759164405055467208844650248682511070232416569534170515985232759063400878163958298199446048218471416559000565932818770266977271976190993121058138472561146536300127968993684281894811903195405593004471411994974506223700250130711648483335024348765532603614002450965789442741793493891246445611589623097432685766646090557953580284797793894276439741640849539770990079846216888513691246761398891742977711894601404654897405605148533104874623840722970112102840492124565767519424638315786057239513093931144568813520410827990928332912060492870960379176961209416205875227441826056978924727449576070980928099974730066541614517933818591958039330783583803090330668746362497222035910739137039651014273938121677873707457645717698505630969026894790026618461212206645277096820237124963915364708874689583732633430525070664664880227363265988571435472323420013994548605174118708405700245951529052239300485422822177394489280797489177720292417950845605201599645420749485218647459744299838527681966545061328438862493099848817833848878371006793451400019505180956656598686231657780972513261650990861939192634319232197050114094733692360861859771151618733557376209356360814316081709685888523136444810233133448897482535568363468587054154935584440987799931013336414223771663959696505201356703902412937859009765727888790302233047734850036510672904651204234348835959283791248315417316653936693096181511170434936953856591873573896918387568875822955038789277197487627304589759409907338703579649009014700867743994788055958875394388946794920314097830623313305138072548844974866720064852357065196736251474378315277685916830973697843176036098835677050652244530765230203036313295790785142735187985877478157457888121388715575191690243949230011667347361386009406932705706823231907217111652797636182983647233141961758278975653393811506830168309170580458752792612527678794348462295293864733405352831812509958721965718967028766693233722465936015397053764792219527502042544763014897944921710622117657938392784329064908943295529089892299638794055134179205362378919865050932885817250871386805794024611848207092279126471099392319230548079834078839150733355493719700170946310652154505026895446119570846043138631103351113535996892148610038153837828849982931073347292425678599924946059735696928591724066210765473901140794903368950475558029814699715516292020387845721027594664772437434082285015398826365158609969966591994987996504857972019433056122942262096245900260815788751189376014466163665510907019304129029781955891042640652959449836771888294369361922813045239004917936756129877508490835595124498778759146171354065897699385014969181689883894472742045740786235045468242920414400918165785523087811284423616644864308960679690056903259530023216086071095061624510055250329536412298172731784491810150115622651852966405495338804418339575932299559625531612164335394060235120190963655069494517943098330441281515150301311203866372730130515171463580125071060343560136057859159943513554255279430387309700607470105251762729598839576679986698790079664531489696955922598316828284588598005636954809153443552139871302833249417620395281587333963142922843027793065056421831668801404795069086885972459281906294922307064746074617686083577739886888836927949142250226900292292802956614986816589893322248368484733541659838099114132319530335660063849642627745510680073471279391791807481249466815465922522298997325613304612863113496062676739768881964400745408702727160938098218596592559944146541959862451671802255568944903926166947408197983404668683876751382013262395375463967112793245456211860322323411269275732841742323242967879200454500051618811224572997200997242649029083328925787921814465957021002749470970273623477304849863931748563340777766725205208118750732408983930703053831592197566472742447216898037767230919632650439838041597557335826975725458428196541314010723936225912008545696842420906685408289833504914762884187056777537610239857564624007754606923979021054699388992857994048647406919198923813164153512636626488569385233231667563965145645375874734809145983929883802448126069468365867670364292863925078787405463027882814928459479416043637451918214174715792888263265576102948780187633379608794602228768584027384838677957333298159834126334291087114619764464295348062919693756298407140685329212353760620569259336805775411925167593385061015275876028427305514544612643410271569868464253757091208257473694532590357502361886828385925151248570187533207588555497993669427965090445820792634488781766611251520763959295335779290632237655951740661137312351034563292573449476086111427808418298568202704082082535166483192652527335045869350368314152052723421973586319115048996460564074978169428750628861925851018271629776998085006735349426872215539729892880795802338521424652137813372721561557106120274626891760328611990319737845179619168762131903681501456725325414027697817604815687675766243161830522297833831127410250293436943871396295404715343033664725615201086157918625422296001004807517320291768706822963377699542729209628293960278131568220142364108476979664952283891807751372462395153122625637326328789354909889216221041959595135651402633818885702067155035053518961530270458628582348044105526120445151384905777986805561419593492469653133580397337306847692988488776060955334247977906622809838437927939845180968325388505650135667622095170406030352030699202453272116469709419027205426436692162944120035405847326561962118503546211309369536708230356242572764387073308127838350285310102334993406432530828603486436564798341332943930412110343623337119816014688065052559319781037196596047873277601486395243925097450365857558555163094730161315887876690219487991701825232308066974225975597846672832649644983757066589916575897890836259605587140100708512337893568640345899538042924892758375488702343186791824533269039418361407820791392314397750047358809339709776367911116320035977539960740692876620850002099412159062913563285554911486164810424521044939528367353703479917589283721858923985388751726459071874079488798210693250590688922684179415331921981537432956086684376417715158987882181051262892443790399992451861930585124701182190072794968080333983136612556652427052661016755685349311886465875233090648724371238907239024405939530329841892485033410925935440020911495622651020171542418236297114573288550046606633277410073863790811658221460036849439609952896553360658870454216272041729532316447298219005886583259398859381331557928630864980436024396047986849723661167821740567515220374353798357860846363568806541320830622110134839267280727174479340579742467112681764599977034781113819848302524010794793082373016597125814844416359254116411337809584058283952083488802939916818309270526301304694909617377918246985484617134004082073794204528453213020743861122091378979215074168649001894536387364390086626605274300539773702142489712300990415084686088458780638850050187796912721032163085826704707845012008640966273226670808744383068633714361315056976603421302995001318267821975142614963953590772844201582224052011171481087592317997469126030133137450081888095140410669064480526076339188080287691146795711452572026925603816435404150135154095346792759711342211427140942453452920923071090852363486838909041835956107489791552167233701417445529995644676644044162128139359952391377780349358475766679514028838707721691797989352233394703962593295523775348367475051986566796362651531498100121929579167586809485353246046034881729301575948944045857020671811171409484466014421740358346423582973749177566945607181417349565501999917690940580426016135096373964442620272200727693557091643943078536368379176914645041021819065897344591809169302207716297564450247924648051706388912448262749203806832484867190121312042581924352090953340294010002734850275363671018908923137414585337969188547027628782975168103452310807274022015761609890209277855953475742847097688629531835911317768916029798039779860599861726272064016592849141059125364529534180280321992831675779203092302998949626364411467238995822231039723636432865222453757185215152377537249037467996977125285933532968560030871060955322005526676002063215765348108108269951849391761007200451723022893520933184638317601659690943845534554144910039072482030864103683733748940447874778647532941837682757625992325284977122154243239458216570988555486456712706498043113569426499105198070383251069667739328880334574000989791265083035740338076005525026088079391082978236566788356601607328415624963667135174636197899741489547374956869267984548118340489679282235812289926979576597553425845531308020802074009811831325526650594891354886432896974144424161153157441404077640147162669662767820667021608689449128404397490773763830008737562403048639743735684514845755337529636443439051893046815616713208683448533175147349263355045146234988445588996787077109047122098207736355445475788764329633495993116215515762852475191551207044277512404228477930712413645133961555844786030655521811782996048230017262218188209692363811644342246221832306842972533712169932429386046946229713951457815632357882394047770036375142457618191122635463078196109783121335226131105727469787505311491844205279776844016613219427796460896214839523320236459792876014325359318517179401164710214532301940828747913161600092813774526881846748085541923051839620660649874027887791409827515033045602931142952045063521885106624605325469928404091842423957238650133531293903097329041674367761366525674389620663912779141389805123508076843545021195476742743073497902587261624040347109681227946350782112041381636517300867578650204137952839252078968087226824781252257933349453710928538522858799878568570039762033862052268040803134953928574974112164916623976074907807560695564190647705361274481524045723738479987455118117451754557717788328092472791588832083959935234828059810072747763938191219011642705969269419458719592930572802062917293608277932779660644535411949706187338935553587209424669107402068226350501531233523890356441360065628130804067132780911602245585444000349230665972732298656520479689127115108731539136401142398998041656749652863547609339001614055167360729306053440069203613541589435005353603718317267380400369038847660232275751651853342134259076780565669977643762848473493120767291897388741393793957691654188528883339065189620515323522054131777363937673035117757405337151375813507795154497449880723873120044962642494452833706621987863382508702631998846198613867795548534982172237553281489525698303474312169493492970340107162224603129474154209505396301372977182627169369731871558178882911703972751510718270324705368784124108122000794461423186816741070185662745613061028772482687881559896223793021252958621707423819022078572793754178613644321450914068542291167406553680481005368180543990675027626702528841994317158210044431590306669609062656171840116721863890110357171288996229815132363029649991386913919354439770766751603866307874060493850778995568053125594243457255578592039838395275380747038483445060783198507597651685469544795875914044047854313110869960140628782970258316570296571505599097805712356351248877770276475256181667414775794033477155709592776813035157355121598556989453226017475476634567985341798150173589207383843034532260459105552540370683231473873676822950446599755059235974030828457133720746272214790880135050755586003848449165070242240313064429337842099088448260901302434488112787965753483788375753909589956818372402357154955223828001189238264934666658290319604995844689289865662487332482252704367182707393420160207519595885038148589368322033980958380095470575424628967370520402978220277205416035460946652789264226432432832970691071833789854894230810895893408033066435340667268595252585347931628618606647347964869013130434921091414381043953942592977224405518567572790232949862715645220652625412294560660807721765714500541122753311632462814526259735497709444950825302770340845263183960073693197640348262275025512005264976718157841701743910842423628581291636606623215314283317302489464337426599932561273058227366570173671264893388400329912181505259658582011249956125746911391492344145303560966677102842120982748170333883200245257870291620540155073640903347036802188119388188742446056245936484202019671237492323880854039279011696905620094882853404776971430501657388480633412827303634572131337285136368739003871172538129210875742465065124296290632569747740999349584207009874491089599265822927320377209724855241275169527137011197051811543368894902762578896845098937656638894542334666699721044231129260533181836487221130323975076381745664574508462889113880649501692035507826505299281993412671284840012643157944206444987560846082615478991641677303846582558169843968984261232357072877161688032395377912375015688062838798579327591707293576487767568457769787170851207232514178803068913768741483669853275920009412025043049306851030267811836951749440967533076542221049941672825547555716500962521297258744974020340623782176143110322086332649164651278480981080739708831702942399375167370141402660518609999102427755142455357904528550688030226338164256566523710785433578377158633803752885116510111073102959619057945119814645921207399241802766847444497716189138687147444690017276802527826473306192785134467846540393266825931837605027621664879419158902900736059787625925103474176736518253383900167679961085114608549370648482722108053107946441226056549045086768848959463973783259057752675889307946975870711634832088343369476983415653365653956222913109285968447260811134891992250447523367070534620220307107236135693938546344420458440151259490620289993115042543093965770665525790874975919025487249622678420692106966321405436062935712374290311264277718424227716530275072030676566953852406290207186505351332309553849303370603073148747230379446654550857458724326439106210011852496374730057912801076651303849726015460589258573334702144274754151995869996147122212590039596283034877601294969441107565100649555386644325097025479242369862688121741834615215839409295488917138105079892630246283252688778432463530892804998362798997967329452282057113579129945220478730735080751815422287038513008454930124569113556705356825787687855323561842818992740306103495327564669856293760893327104395221518541302350516588903051766013818990987622273344599973070309310300752201807565494710944518489851559343566747368234901836378116517759067654802732578283401510873712273522130103032818108966171683411226156096408559246790891992295314639629812872364066362439546209050704923844885782633595228818176124462147893840568736611338004029845000880629730850756948539816586410177568158705662124679727520613502131448293557026318458960705809283184998861394928899001107873856511236653825482198436644107987234896948629277033639985428483215612217588282284012853042069922666548457987351863468031015021127088150732703232194830173389555236449266266996190518260879949219141966463439612731275235251331058430183319658023249335679300768566802342304955056735833897940593380941537236132196608817445416259357750064713767689949622615725560974900348080968352215036699587932563327350301795901117354166527995243174118922740080953383223686806335024641217071741405264795792753391110974151149483885222310689709026298530380897220619307575511330736181575698943650305284161127130747167360310819467502701593378962159354201363579660505464889984761233269057633400784419997277764252722910354400165209002248826722673709318650897989057337281707863630522631878843934491137535392803615052075446606085505095782953697882475630656205258258203948380953628368377927532665257708990502945698994316291329643760623101388619558550657143644279950779473870281848674074319218737496834722506995761353185895439661219190673933372359150950604650962582594401347244549227941971422097009808683209029899010571681877410487584031314734674967669728891861455347013389988044175711871373105641794667644148636617839419194367638791021581692777141701706995411713482698715131552147241229942606153798783305440601862389616114292754357123979521483930885321096082054434095832353421962192441232251123458744827106251858823485138626515751512160830835590332185485945529069706566357126124712057964374975949862326914172892029763144848017926609559199020275592421224302433658478145198703357950157711126429376625096635614656787007542194036628309650586763098230802162710403650065250540207501480588417701929817524419408558606542205035825421888742166283447740766295668168942506095726585870120320154198029688509285321488094624028811874082965610240037412349295274425442695818856061690694789495921068258286583446300053784374495043685571001597210266525109409102480677123184571630184222349662033300919379297727268171571380252525016120855049248965166738206171445884145362528301399409718942187494527647120608131811372234032020741941445650199627412725541603957475912807531433309680518053163677818849033616894555640865936932387285476827071474402347416219799183331678124343331388942334284196125767511661414547611950069185996023344454203127471184173438112743887068004098139594265981676069260873632821717062729731554332251991170573032788590238550830853268874626693544706966827224221187170245341694968831868617214128149963724433678808326261343672338343621988652383752944300462102789147930963077596391494724966813399265550950164615607498954607418683588653591422588980457655196512400246548988436414746931280403057712031495810440177040398597510978791987602868807463532635397913970620144086215892633996159795041376263128323688495554143018586854710733582523371692838417797164895376083652758422857275080424239641896564138551611265011452708896788303995731869172204642048732695835915418368053563475650009618720835257997769885163457712054349301593515172223874683580564968849683786261787522326023501544763441981633165480305559844739772362329640670659034564320055793340116665780243133722427676853114013205127634159987736487219642041484119934226893046788538883620142352414941847501872055072633011558086062661731638750351269787616462875412447726456954884942852094091878854067193210195105829652289560361886796167504938401074345423933114155682113229398322697824449832337690968890674899083419246178903625517006642665593972867681862078749605801896403195202068467414316928475952072306512127577494189317918298390303479222756305793426507798041078134155402131577359144132761583062080920935564251085062249751915025724164929760468216421160705066717295680493929704384184882019055165535171488182903486036393339680625208274465057093171989158993323690263391031424219033801835741866673523795267568873151420792334829918008145584857783882635119188201187874980781208385664285097575733299265366020397651379711433919517833797207230164834219481576714177777047147919028853473639294109897750770424540431803890490913514789790200668387332280474965017326407491199022371583585830379405214662233878922450440585448224223563720932870799238058647395651891451227908317663502469671676755942628798596839231194268416714775008493642656075920464576159039916153275221403044849491356012581632391278478923714335871643533501750232501657214009322562568409229923875119698413705635170577703276330447129202819209821821844633087244177751528021273433058745846266210027019429455688273912940231335725557496907915565485083798496462444701020235379171319010255964117244911394078588656250894315441990342553665775591596725862231162712213608558353795272544954572481198912636634425150194085872509760232472624965332710337788663216183562973924310266260505041359756176064588993311503551146233462266096912347146156768066067447377481391733125055179935709855536601783348861880782713410021632384610761642374137066855160615539448528244246924335922317224005356127543816574568833263111415092857249137751797608403760061071877053843277311234141088251891188294863187988408148477130203949919491693381139519403702643781387554670900969020210455331827075655619389543727741249625114607389420370053451746831897755917736951268585560172778866167440129853136418965411535185184389723236726603874488526177849297134738391766028529987384588511496435264000850576183543070533354480224750176026389203450637802880064055639913048519276987465944461250226970184131227186508129987048047898860475883541224358596566051037724674916432874016400527789509294745693043854622349527876283140673067112277679069232714351218677098514478025840977994663628194840299635552771035849112843770360567721585739036505977535926959208747481150118815855649981576879824768181222023051000776491022990477281948855018596032513905527795662255065338102775090173354396405233495876301555574754466155260564339640865626249655409469175429775500125595954315687536017674753895448770084254104019609280885079045115944235576358014268182811506259082249626761871359992266367321544646409794832429176031932847595188214876885054503490952484516472124827128133202086456455798591042374959703133412407684764348156616890570744615514258204643338981022845631859185098028984264850810906247870424175928415261608966478488837570938197938387847410703491129054290380496272687823627595449718947473634526351013978508143894991810648406931047307448668636793332473683633425606173772420488692565824060535960133461700772996870371622472076453143586387117620914788318967507728042534237137571746133979449485481555172398262571712979622948429752038832434554073393118992448137111745663966552377829088782146752430730200275073569721898463013388072601143171421204670490683217091960599560199237285197275641575745593860512533596745711187741734817883131510981992750619325012488010679048327847843830840577546871092647948120356802092677273220238809891332746901967255628156388466996131835675890478258384728461769526074329436151458123811593258893616090815398735036160640359929183456202290654501382912014070773175378604605460586228946413520492570163104540049912866764541471029029784976459763001039022861301896470757187551663990461398510842707004745576499930187022901302980104298448451773296550762107292955688438907606407373201168291092450583614744452904780141296216830924198382923385146217137673375896531399935965139989688996114647866410098620336253468363119700687163501308617171835353661289462221510567803781263085147627584390010850930582249142324286403036693202546528887120849184652239048376971841234912007253536184728323019722130810632707998324880114008175771121986860090794515952631236762596674902685504692160763241656210241967482192794582858587190623874750793648589638093798681286077177682843716061689690190685329191998594475557285658128782769153611100991120697226291599349530465335578951619041319800549547792330990622933917412151783462288696466651388715281991774696760406122172215765208458533903243294187399768756879553164850555666905564951105745913750475595644471179146972529097339221806589030570899976189202447248889251335570585653959736881690300174422812123455068993540107927375516333004426013158810553067912427349285266235282231597762007942373834821884387749195579582589902946406879961861257707979768000823813937710781506490051485852506391919740122920362776004923984093297669937644753656055029226381692173404345772242994348965393279057800370520265160384335243225897621143815774945504440520397191989352069117659302413525964866737619213748939526315470298352649286564326543151906883440294126223157223088349168264288932870651771818201014651628796049844559642181324495236720135354294161963705682469504525038489181055965236532218893601085584158112347218765408488336928632676462778506157750376857903432462189323996911607506205389063600928847028860727007797277486706598188386598352125484853124200735695299764365532038773425931083167355771611350737454446254992297597503318645287700863291417821079322488516963011040983910065604495369530667211953164536916268800922484585155380099617057643204499944154364023099161427883224844213678138478720357772016942993569403144889435604145778008366020250213653791652429621199139003229826581754903274143330508070242284148988665845079680509141176344060259675558855792290965702253172853284250586468019882814990871120718769999290039610560607153482344645130712046828815815940460422731858615199866710037888711761240220863341898579354401180418642240800309802012793328909497827703199377301571075684002577333684098715341414648309164242082781220694971946998808773397230706222683550579693930583783756405186786075114547133814861447956689353669400602942574446123267288254261633665394738393958375214996834451983736284148967642847122384504849804825101137623699957211620517324217228069772571567559112722858521815487807910347758349859496669834177097671707471598600606186969688404985070637076596174226314115690499912371465803820100253331998223700998483338987492132834616034701827985018780171158871830529795539610621229351751036043976609080127664474038811695626143406566523894874961196523205123667547168383923732145247366230516459118618569119684797257245506018167062757786788322411848398696174195585599372276793078000873851764663599426247871473901367946102043333149518371694637197330574532444972425174318553494253838408279748971586643031001454633535061989582711926594237873480688287083912027600575667817935440650016944468815510568471456672596587951537711731535688640738317847422076513169283892759492934544450577967230267896740683170377826545441946497337552031076599792823067246566676003499885796627389615991737646774252856719130552940731310383710113828791982319062976048425822828214501994592495520316561672123133152530660417498891583785270025524122924936732953485601107797315201837766626026215908210504763589724549887413533005472488904885184245974082649270832732311499694341336980770221788092591447988948312998211792827699872074028352407041624539002549626109041876146330844045390326344817857543259173492820885436441353058541255418643020236488632696565691929049276516738340678122188255472250297547657466318924845948956997920261827286052403867184283427726175309379215071055819627615101430702518789313535161105247279223662318770106259575284935630380631174971031913603827417253315862540953486295047913649745999506691841564891851298635605391330062785776162774969566886803894787805010384043107624145251086886703770598793337184117012748571981294574472867933945780621550656822519020970517367503984770469821927922806720692052085023374488431891873640288847249361684720804117245019814600399688652225888089260817562194683408385417659758090397330771018335937090880574045505959033454744906688926548557916468643926048243093028234001025082058863903833833937949915210885260263677286486913885854493517776827305560394445846435405094839668257765517980749962439014033206824194557964375347629069080974197212800843454904114344543094428938858259364502364758206630563807596902400995355287608023062646245423541610006871224517377834573870762778358446187324954433903687939808329548048276807978049713352968224707794225906780539465496641711305081031584370966584382566980584371622673316197027656602924347560686831254929885158486045816008757163170387392514714663149977275301532498092923625302689885310587787078495714899935757394854120344914708782904766770243348843623252189529697327082983846015723070139410949675431633094998515697743527052129923730953924943178485292190351367662035760139240089203328633183706177756216421240491760299357408377150894219351899354187432954209648221912155906385283276126302003640338882338165252514710035623892307135121268375432427353658714140957218589353832657584701723256749753386372238031326071113426412881942348216640031305725574010336908467547457459703876041183982766964538761395467028217662590961585003108675619520814515559230702620234131165148744405500162719768278769275281006657875317594484427357034509755782313102316567779428036161540735187657454971116841684555293190614538233893915475702688783773499636655058446072016345088767841050153919716675230796485182951786806028893035499816990149516203129191164475458342916424572125490869004268077226021146590658267051685472531495259237333357976939362923291666355069053153544087358582275213746229845828166460595565719792325138773385442150225999211564504308965886117420195511847804380122974379541546783499905388044636615463906145182230008836948309250120943441590967146187435891376459310316561590699298552043400307848632795256571105892856019003462734476016760226750061784617049022319605982439516247367468833779122431970131210135459585907847165933298790136988711621000615208787517169760285176144973287093642206263155442129756246464981240803422777471624876744332484737881343284148780839627268355192833901167558057199381043693054221574966781173089650592030915140099321747499897901323632802495748064059745280709786934809494651831557890333370936731005065884394733071395733444065428381300417839707075810967097631033994086289435321846376000995202040069283796995734881779352822378565740516774487529183833775089745994833496320412883433736217648274100679801752830244620381762721384022755550108422724512377169382713509673620434217804783417220756407359836987306129556971993017666436948294708342153820579729979415305319801747144674265986042060780525388994899871344312904113007848941680517573194464884945717545456368639646569878318507331419572758475709546167941261524654376895349602786571266984075785241305302230815852893198046697661009883193617819730365889296906506428614318955974168228873501029154461716029899043544196601850213301231667909274699673374818216894444360869012986498406886992219455903093746545203474305065616670150951194033856056891003783017630110391002224134375715604552067263955247563062156342868135367345073979033916130949148584549911860262320989826176363632676430772642621840178979023190306818673508301903126812839494532201526265897622159961988673247310580968049648231933673457565539392307664022233096040912837016739595012081909511169523058060586204668660899477472764939711330714307363199831773921752836938924636996820217969649852849717281393273577788379783820105796895271629965202695381843530113139203420346185238789849364835218156348047111208678326380464648788809837980829813606386552267838075450668537148276767111852097835536566080510504397431452158291841988035478156578526539341144862081850281531090086942374919231001942807762642622586011106118402333334065796652989009451366925936669224189896819990103108956190699926536631227064845568707590787439951130705881108131914407626183534591435462624273594532053580585068525642097432280181634225765957529984592749679922681216816297252343923473110477362303964658612456841215551052733873827730378971107836878109016490560025500621675725956660843948015600085891085413838874848290043614447421727272995252096984851091678615217410439654583220967837881755367703201955032153359037420429740960614987618679231186452205948769428765785867255425821196611022284516820444807744419408907781929347981103511143066879169948402125474835202911241060358127155594357858039591686844558409825122732832191417614715415395279345700424476364725447952525975378129924445187444031303359054753922898218138254266755492070868722747355926452583524744857027299883819495591899711551004412963233979425796780739975739137193678094507711128789127679561919235952914920346360982405759667262018344981888927478326970780057619861711188234247277284323675761895747974473423785159484035151044941761872722760058092194788103145564838094960720051004917899691922298469703364922688353447887991530378008966433907260490368484243563637215010133708486211029274297842409789580302527217323263381713127937972019992346274444470685347113217310199358779936809480760525141192076567730466702012896602196833711892098043481552287259947460909778746858051855386808070165520595234206163894012121404814904800309245939562176900863754923510871924928122200315013110120006572236828203846529886161282760850275634621653730372173745516785729763534454387917374510772883204253285878869389560586546613465671822895615704550204014052966629687214333541818836135739494029331143922270373159721992377992082600018642392999628325368862101274755095059340539040106129927622341188093619658715073655025574784376394095392536995239721528262879774763147410458401452641510092150637112176261209589610786713027111726363115933110675867133105764483953778866092410566127996218354310129115986752690103903579963080870774714008578284004529655875439602433373777747014270163485815644471523154153726156819517845278301093971136020314549889154935186150339669067861454565856326673325085397789864979338863770259900331389531444316129670826907052446869307909017093695330692153532736046114280493400724836367713507347678220888367920970227839149044726483606352837051744491485638518077038953695805268504556440556537268412464939679295203845736442753825826639238155169421994901474439242341462452978286137224339809851787040395211523193654302878684274404138293179517824663075234702846829175553999284624938895029720163075893250152161048921274153626206555716494219186217430976104343543189182559454267561622233345169635595614179347303460443692676078521272407230488644216450051412388184022107784157871422587933488687266288114597912493187602700659298852780847622077836606586983557144358492162201854029454359662349742221016328473469334890382404231110110440549361407989670885639119216946127722815955300141433911554763366200115629450286405635503095290408303944124571330780117742557131716953041915957118881007097566406606317291606120327500791877998875079398614977348445419144004360781852051982046243917969239672526910787383799456066525248801915748398519567359640833759377508659387264611123751380248238686710263467358103090424321952797919822563446981715523167140945649892461041650660758961475867336375025751235927188230148111131576045334773035440011666948879458704198958206367754227610018982126170451127336730242875302036413670688344378618380886555011375356611473524305696401389159317759252305096769809924109425469129771540834233825263869531430943369410297341420845106126771876228092204478162535554137899378448301903553470188365980950853545256446389065765003357527547363385330105708965692783644568099276457506486613144015554774589527363806867513989737552457886996783243183292760871251467288408315079659793972865696802881373666021599610162450848815884438127897678202616086407763547256630159580272382960003910048387976182711177939085920731645301232882856651429664666654379307269090493437779472401923166804699948368789941048356425839203478351846641788934740590431737706260301759119390934431998660244276132255994244608407916823265067946325634012243270439144047474454156194201838056291035974993055518216353082398605779905684103407038905529780199694831973436594961305397439609573995589163902897839034230450683201625161585845106692827818243870914092510808493600589754952744376877870637833558785629728399840658105920143113367228132447858969356900548536244673248743579511348021016281680631402364889791018674322207660546773564960523780105910864812635552143184415250712419269617646732627123275365427370355278554621170998210992716973964291727023226936439610673288211044939109809814466331742288183338358666528297099985659243914151434254752392431081656908456104949175326424080730683266631619119867138007584363592328345981868486026950836964115435491391718265035616670334180432811521617834170528374110358438390691291665473154523641609975458318092661207911867152021569157393197839388022826914006133436504256900674501971288753413800790432761305392020186774026286294868802884085227038094250402813664701720695929528720272327108798358157636777324862901217885362568300382880694250444833521476547156824774546244152852529301376392296634234169182796795366907403815697801581638252687994601132011175862440622134161174802686197552416900608363968171498641026121770172533884755289213655806039290306410214319448177023940106052868503705797616421832673788778969002752509233131596996677389918591820374549541213565923526436431538382561575361798691599989732044068166122772579293919059218298628836798124767091941690826897640111503448016435048125121298789233699172099484812182109383537738919486763132489318555040130834158166481013147419889468674134326744540725035719883869522685901273082844858010905476956837060957011810613849947265955178486271687923763932958793465347004966367207074456578465017375602016128670398389317827030480823820220001833723560637208717207402545027601247037629730598964479441619497800166342496859411658795064113937557563075306796630985934015969664151961502078485315235275918801697400455006851613676125057868949272430188411355889060832224710501117585070886151459979996424703211899626099101991841413977132274558472705175674847148800788855516272320484581402111168926678635371506711002162290440776122931168906716816172112249577488594959304546546803292145651946149073967628830682997413958358573868117215832778166927987692635563746248063582487429456533310272662140930291684225574112245803517966971026782694917794458285003519782810749372830520930907434240634512766066993985372238507399193282458461505528118492226698718554332387704490818275055677323062475504618604419854357444390300688448200290325470819093596204897660087852697491574375777321018011851239293583943901930223911544577493828020847967300773156413263228000484022818626755234282696019009360185442147614149379428894781400154186353773799073308555900278393061303452706547596796145421845739405518165976244287847436868064278298735799375777690585570556142167524430041890850840756177152270662310255139249370714727446089302690282774476850075327572030937896934430937093725035527693663523464786907718848106253529783804395792374921944721013810251049765420462038391755732617790971779975924878006813382916633850978025238467862382058402503757389116762519494348901801018716292612486615135567507963498383882430566419751310029601112720768491816806237098173397893256798863548252788052411635852633322829771974684709335876354181247831611337437927521888888224609752200878795095786735422792941504380932995455365792176631751742020951206822519851911890805547855149849063244481724561448996030027020611100798655405801518234467762849017307279957442572227066828089842816895955625903788091063044697989697107264793820517759362764209670857263381533012126233966133609009127415241830143374214599176383939146439566824050467924354255381291660233374382394970721234086220715536746112944042906005503824534918897154567189598925033590448595854791390460503713135465509773397344007532786957237735860768564464384944370333444554308112313468957345630385107718258078696056325112087643076550562622618388740436809453919541442152152936749125532113029054498813387303662945316197971520099725492307419417911417643704218660294691067628513997323384230595136285692602438226098792949091265689555929516235203006023162223917236607229520024639164583433368765534803999342461188687352720270297523269180578894563991042526923407521644818160588814242686439283444143925775112566447506539626810127096017892663472623581143304440657348723036280696861081345072128844995417383425600313047738153871233805072776192049634443739404435718634029677627366484595710070781003882685040270491675582280806813807350496075671521297772613736382778839916738895487360546636661013018940681534597420124621035623815633138365658169561462142417826771237569618254317274803680953681997581743615531294124199512189483706393371274969084661011128632600231695563464989264967950570172955688544484545408015913730363892929241891538302679491806880499198888793997588864515489115379515590691740493790614300224430879567970867400885893672719094376363181314481827815489615585149505210546010468407390874257044474418666985291483206594424908148873839459712141739451083225783341109647948262091632121631425828714317393247842841670121068691479231022788047646350909066233556413373777548855237475472217750192809547683537898543494212277537744247496558405182690885879549070162783934747749636970882069148473229375133374587072148322259431056694994325793781239314504850481710255531836207743607195716887762841482070635978681490679909883754109258043714744577437243007351042849557138899015888902134304834443280294909191333959425859240020135528703193352788180684303565398106889552120066973109044011846954696192621598613888075255983121000882787666161928390835696396103150602578372742117731847447857478710871322691583284682739488750771227103223120916777096390614977972711180422585357827967934933065281620534074492794296281341620076930922904069568651836062645186621163564345888538263012042926281156115931739154858778373494758947216540573613612602244956855901600838968534579514124485376371960918435751443104276563175153414337174185375298211684090428282450333543516947821488513641220992752205062956765900803478925237864091070654836603064824453686412094663772882529663571657889958506591221128668979263767414343047184610966242565734893010672701238091459759060137632138460152020811337643741707409631271528850382845760132396235831304296225543603056821817527992048450347740384953001362558325955109846767223241108724258402419125670591927245178481684001379940017622828380292865704205965455880295797243211351057977176597810372715683566904081063020571028881356009599520043468182253880257521301859144294484166833553234181661051466375047335180077432703948504368846586884469003246602193448369110149871969724102114983730335981604635365604034728272432611689287690695452024173031987968197969248185946715016738258666469169616872119263260839416136488160045249079818208378463363964502899402179537757822895237998399210280914196183974009721331765283119189531297035569602109364776601876161884680451088633515259092552996698027295389444279487537092258122149765658525818037586864999056254670372107419090905844401135433663501984807229838026746462354152802837548652691479058171143727241251916982391724626894221505715816171530560264145914672951535097404743999402105495386613461463227853159522401415403315171874386589949946344725067907063704496644260464335857784049685815187691576615851572788000235098409834766088976480291318229895709742973173773751516747453853376914856779501865748917691964751348584262313786399550150246841052163605148828466637700737110019603159215861045884629274293967952241599968666525177564729438042358913972385970158436226372857484634412207767327643470336549334461471945587921624292366383097572152753702650091200006173292807595455155485285068034358381927276624030245766349890947221653091786399728174494586847825649167425276698875797042872336680646529736169979188876159559543313107702076376680465276340427979862662882324392952400258695141910362851616350134122536406524467968636807218445237761987384384275269352602221066838041468329011010668510127722110805735442738781516417463536826337511940559788184345930210846836202869261299865572980396501335419995474545089800421518495691952980572972133796515988829934077342385005907800405893504727247557655358630389290284002256842972377179214254599678725823513420936740465521353959867573097880572229269040915783516711109678172517934103341388679904615714876262740052426362068191744166139204733175696445046967068907701696825453399191905206926771123170087454969651804752249150270549484975337306438044879199085336745650308428956091592937483770842401703020886330804532330178635570514637621316757874937177458429654509860633898603270436770271693260001720035969238292397286687665074137504336790767222056283853694107435337767924136431125814135999119201743247507130205401358947939699413871469441164366848403777768628709047635627138679535071709433187460071723733055480009879729983098463533677425897862660618222757187884869865158072314652949542366718814642875709179187177060451967442464744590866696034447790952081837792295912037057805624196005905383606025253436647794524215018879641798615064101122164238226721838082529829984255287496632002666195165085833845614737909477944815448237375352625403681295505115024043787243156515013826630253707757483926198820351081269032394676509773735725844049933022651505660856503146498558023044050346454814213868160754696291081542184421604708546094450979247280262010304589913956170503075774880527565001247921653430832449906111159583503105774563191282698790057527725690993779215928613346513056082554378546065584254210868294779813317238705999309034086783580812672423148585920087104624508735179567184330292171293159873347792976044677958402789615794419431904693290201390369396840347248898765444505817583728194449538681000481166532494456118995224323644573650783999341742516192440335730504509202103845754794847711443002751769197125769242503491044291866363462519673975465640331881914361319417548486833596831873362820146516931602057186441790981835379005191459741016396728650526838984191256286686207334939815489019200752842431966975863596412810606120347200853586286455305484827832745089501807548059529434076556617449378668426956719683861010443515427872196592433404308112867061373727694505546773799123429460210744440601708477564621381899285489890792010359620377910043581667243103280523431506967103346226928864305911956996487587494521667004766264666397251628922495135935788837732408635195669097149837238174496133179577400103284336463997640946944625059328062682639893237273274048413240131151853134482489177644622550029774198367122147100214104530684481606952209673971572504041650661084241892044900895578346941970498615259343282128761576309450195527298518997698467954723816180791987260282995257845868998470759252664080440197127158931688923690536116273978206801549690342784241155454464382485770598731160321374116039350328235985065195177917176258023408023758879543041871086457603225664994600554154633784415516631688569197025752700852254135437358019224120099474489321766756730424350683621359357315463588967264749444591117868467927440444091192773919123944517301524054302037965635941806351487740414491579196442022792314825932662206248507873630705009830804134401614403096849825362721789933294422601884222136658205525216896133308688036057293232115028476824231763859550864369891407620579548798791142448102699931607506187764215919443547325706810855077251586610112025997875568200210042339527811398087893291153426559510815318162533832681546789857267111876384626119927196104682381894902462324965176821424363465835209219191167908062192650689103429861616056656735601205214672658255988923147322995553284593032598534883283504522185411815002368718232904736410327492170690882236462455500788809490851964491000730583260682907763175709152894181049985754173720452849249977340372556132127916122658890533470922616950787702449132937529405092295241056711959670344057796991578703779514010090753997419460532005647201105374702289389175277958505395867591680642367741101668306168755698074708311562663837351649657031296679666902904615898403114786351294286361100117543144805641687144689032859747034799847133476709007442839932649343401047559317111869748078111150538105435400368053276147533053055519389636090421225330324378327821666247022924799455425374881755065128359035432622348799386651236528205318309583342438304282073880988798493815396009008866076537670967319286518192588022405886087856724457058927659455100274409156703522887143871489085020637709501023473301584492071137983867038848226480936823152283901802268129375532784614703825231960770258462017627996632349931664642894465648001497744285946171674506535797581536241184246592625322138725503829195536204035841386865804696139202994625226641680119200080657910815779155279605956720906250227398937682408491031126662657857971819851844590462384158130542772331968689455867690847368018150768463229411810462788020679608723651733250982826355963751426240123970090065463029326996249461926078005826135546171130349930905059179620876004049856224826882148971723950143891399905115416527097080041502662705219293715997379086571523693645937519056545026276455309188164779340154179172675477489447145133989584780751141466411068009051355706653038577415033148830621291372188963699600262144976569747242972873235525153259740215465209602875479442926406252418711385888445498203030104299858157551005643366001775838559753078480690949316897045803840460869861591899221446653193403715900845995292991030572275908272616462570241632433403269447585032962931170530969823222541082734516363592115335768827777049050685781960547109788696482933614827810280276690269040765200187486345097335251771319502054725880514142970117178656658406392420266545809390241413341080071554112739682425067411240965402730716564237212702670561704189456249575137082426580893390502251241167652927787310711438158845166561611904140636162104483584136908496446328718266670011673775624939852635430846394752284485076640417673090067798435082395129294109826789468497926807826844265776308556660066301298931356368181763599273950530400848786802807643979484130727061905018119220673025030268777718060187829883291388936209244421688184696191770763931230486255068816400361370602943287905728834455935863715780716963357717185446983822918004606926107156299343102589163449336584896499649966303490308556862763190336609937289870570171483464569095940751546470214418683791825004965768942372307436662268225538648070110513566654015218368050939036412466548090465518353449171848363578009386934159613234149263904108895088318653324939942268232973920124965513416418833934270960345228242520120386695452139187560238378409066700176979818436858039616310588586533210098029565154855984490799749095563241736120080905138649864826592878829275990221000110355289516057220752483143248714352509636428965905778189229586133814761514259879027382456977103879653176484752507419193200567008529912829515075249301524620658770695789227923330010428315298417697870215062984473623952698993858577850129477109524824454564964327994346254555840048130630052262279545925151458734956528339368171345085652901166567868527912080251639913069716224757889863272374957504314862556980687760263118158682868933658805365572488937694550375712630543015936856223496928983641968699545818700014246888236255114913352102786817799019551348681924071655687521004570975271314172603186309266481156588180575604880225029978631235703057855699390366640095769485087708660155479061992695574313862511468356073591889432576667676337604516941847030913016035674340320553508205605491324488269335394924366653269616605520174441100092471669421800368259771848399046316905253560039214621651336413075874152160915478194706522769472978877075356497911935786052294661561515212495414802643253434928523414947275631422428106267021984688619702482972580600349466650656883078200416519266461819882751950294376817477824693214252322609203795871040841671063563190927060951548389503691152677508802064141438611323063006915208473031493515590652204855318247182331955808531379057557533113669060309768328171901707201732522368544487655029471958685794840993976462177143135548731494162402952188838475117000552195333268861513396011543961356498879882105652534471882539199752857212508606085750707964778015599937608366850306793410986291753294803104551725405676076116010540140664724716354538101522179278677081255153033690929068410744807534815473311760629399863657056933286792229858300514001562872426743821358857271211042166901449568746752336389766634111320454104692148029987032485879813784559898008445006892357812264244819861985430363961257154636786483675776667961909878534090997174909862846647694574630262596847835295930801012458812189014831294500857659718364751262469338022058517450246412946661441137756854733541993559499188441412642461704626801513115128291797490030773467686036787785564038502260603052604932555312071464101967702276353387347155498290328224005914369626030234179914443068231153226149092801188779735761085604882012379175928425272555572047787466693231898682749079098106371921230802395804070361187849135613344872015507186429070709900369462152930249387961640165595579692051519756850639531208043076062603469475145636255617035854632214845355160090771795110815106183510972469929013153481038124475340093623884381700809528272817896833536755269645757655576182199778191328765712593613165418127979000853356391513076971894702833130137744673099425708245070365921688027387322851688752510994772153457282463578163607924184288010508909244601199092285858093247067923443488675670823770049386869824239284326477496352903850193208498353449886826096890675061358757132454129473302101089574405359898266848424447328052990543115762058453395606293218681636322859699999063871712808741511839588639654517444247482854520037654374384479781523972593927522222053802609463913584922696432876396052013174295820150625050928311781856179976665626957903336913547960132103623683781968684167660150359990533877994666408793046818398309692487158747280181886107130803088753435898127412517622331092600895118951285870911390270839632297494323120226709422092827295000716588372772551867930648288327198907522815504144960869107579815046361463803442129203910156173764016709684460874168352221728996125109989622853932441421959611367186672359826481130871614550104171731655231025157312382519354303789133653123510468597007743162377079346058927659071802248604728390626809430455675161977774358058806061797108671621414328133847923186807336238943127850462377449484036554370644375866640136662102105998155325973426173443478504158626834649662764831065225044173001442009260956994677829286825477860335598555388230384411697089460499007496165875752497723038588253146672052162422435510792084385173867966353789093138111803650731077768935158678601206475300486938657559437725703615659059540929339126355102324583174753674571684634942773074452055605690997781996051925693057642419248044270813625468458745130048244240016251238246158342754110601957554878958073250479311599144855973067386909893210965898279775053658770127473697964294552108322259641968142511134085893315598173710802219937873409034674186207248492702353018557248533900344659402468890517772325691945119301424616283493252505651529308573415201591612753133615616877862652666010075290138431471153566284238254592422544339248961434091575646869306158665744068360877112481246567627918859491269493120763814437177794883060464080487750516864534970600937795368662493306517352740641274149204208638957244887954467483379707389882926440181051178616745736733727843186788167535914028761258401910553684415808823707865796838233351261595396078466128495244030178446317950216420766363182822796590760448911623900889602264121579041621468881535428257196615149030236890345705018972872363394329566202776421840099400232520556844329118694351920751169808573698180418958305464010922233079393708062178873301878384408744112448974231953176253017976471947068040974952176118761742640890098426297937171182977129591966002156201717701760899837524305061107085141916961068180752279594176061413819428181453412213300152859641909673177017087044767819524709692480285503844530706073432778365296636446394109353024224486354117571683215802045182742230183875825821413195693952995572758611949052584463059301573393502136626614947042340492613794627066392847232691315869340972125781699496615031009673187252244064930048571850134831048488517714092193152682037860728268383341070176572765171432708058272169637598506698156191508148699876699704169783537703396656570794564220096197665117420165293054618394859376553537165500824321954547310474556491437036463967994461486429488942824101554678495358294172229127940046100689061686977407511558813089562656163293751303483145847844279581642719107627797264999332247344436725067648772820153003736335853090108764823959705082914144642485876713807160773378823691012982132655321188564721510754625404118707605351839435549027339048166787384071287368880782341773566290856009565639949261282083164547203991956065880006470313993583884719739599870692565274737628865157393543235429004461865346832788811425390780086231042875872348030088460850630038114450701165439714194446091706127838311080687652098717364869565733348884707035195897574606531703668368324263100101587651674086003123113970337752431933995267083943699023118111285130523722828483155582850082300502919491903670118241982715805673466631092023109831302693319167107860009961127409893810522222131630060936047251828747200344336898253258356059495898311308919690638153149489791239954392023288720487554939287736896279066268425280535355542574489189723614926888447118506093310620799515837814704894619188664960546448167674520219951277106561849342806790419255542156795005804539084623795067094982939451392709957362939319363224732472684478409745962003424354850295722587889884041263462803389171203987182290331172995889052250827126165848546643033462103973577775057719605627630382073028700820583937668178868264927459485754878009666060888022280796537282393985079175112715502660320692402561550763607978275743502482467549403167096545464346752939676098573543157008319381860425258139808141352820775451745094901418349395796947995541731318350341641183658950882685179249510112729259211882529808537021130635414297543741436292036419926548667741109504689865496856720156990384140691255345707620374786790207082513233854890629691058184321513893087477070857518405208564791749616418439611884308134307662137587240453044326655613919787615488279612569608767553922650591227504273989863247383879350948051935772950118287184457733201334328949892028191555098252915342324663489617885302638455900448829213488157088359230064548193025522449374643040716647025678011855025678247808244588590946904678050607746647973677018968094577095305564775912394203845668111244526064223062523888952411543643688617108461920484029054537076250846763216978406513899909564142284926652220008649764685674778257477206691932618325141724034029790152990588122836962398551552440399819390036092115694547885663210281055585828773218861447283423569874013049041409329280360006722035691146915448262439990277474581733854503728883268866838947631310682823830310794500601726066389873536689311934014740379706860157761184232731964679226012706722531774860907192518460695264366030964582107459950331590805597346338901308118243372620593487247935193413449002159701838527388177404402659957414524420131812542890895444122020582616200931489786511532715824310056194518662851058310780600658979233851209239565918536964259526196555301606877717038290218437433018319525084164336188137762568223632745066315192224100729183846902521240604966715420385694092584162533975932414281812814582638786004817173261402414407781443756124299153732428914313696215571568728462030673388011790826689429146452269431343700592940765544298067927009890497978477284785397906930316788543580604745325900950076051568417827982670996771579698284225243851936945981474803153332910649429779854336086211010556782704468567437561726626005897739447165655051631950458444088235031107070415129643191587395808898181841096220031691899104458458156870173558813553675054168185205955634551852226226728677575802420232492930248288143948026036396610504007897091140196378865030667292328759969001098016758721419310157391451890522564248969031547432185838790569147237118546038273033105824212967633950450590171794518877752444270244745056494734911300387675020142766825675385593574054215672715017635687966443887561201379898290261450305112373822849815879848391372826355778264117202870334837112945732721489553312240337440171430266158844918111878109334051017498459545519421423649385091948159540064697533890340354263343602656009720973741492658165351096509984519835145113920766497011706269392238727443179965276808166599323462500359274727845245907993873746360093280300154540174577813596514314541145631699887180878475608647775985943138139261104099839195193045474744934557610213893434392809970899629325002401655636759184124077109227314172793863588358266743842764425930094948235281784172084090851959883939319733264422072433424285816091669769348730686155137592501491358840028470246312609352029401086078424496240932979091415101648948547467674574442417865750953437703099775283959344720852168456549963555946345574879448677704217775771927353175430901979680211678395453369303709725828944417444774339390607953690333553598001885211074322279722441767663589039835515582752091700198030667629563967284541367738043388500956855950391548931631414921001990565744584176997654902957007720372833895293177410511062070367519751152443731567486988542545113017897824993312027372881385118619985042672120825766244744831317002262465590713812741870004095156043049447027494259339778910327828557787009896892122971669439133925467432062322467731785467422866591173232886630788474176234040922054990912190245340699785469383779667263777943297400866346345944911189283204790399520589362620005336814409664503064540470398459347167452912469231592014709259027303262183807763433456902367230490464213520938075125180964733066178087835903200400571680590625980749716325745337354698562034632487937327885461017600642473372160991678525342276908510337768910753962966431810977290202144361120174548498299174170300100017229095008289590781934518946166850482686097752458374769342616559536954219632675703913893796674427948132967651728528107671181321582208018573860577994644466811537769780131741554359627799767255491634060354146117258440462221337291896271256255614934053235674901909194436437712410218364339131247246763405127584190303202929117409677783302396167119805907029576919477458698505066071662294321564032918754645989177983546442684705274452671220574834188112660608378974773749513167102292742595418381666607046180350926113343799214878751580742658236729475268735800647423497760989249754643402598771328639349005739973962710689490832697424194811924351183767164646182130029920917348878918137718170348669666161141520179077640910099431412848617767918474654877097704507974706612333665568886324591352083788788889014478188886622795684901888164284408901078300362602022866783404002204303263083336911507788647594339752156346535430548822416394020015266236008616389267829165534240718730809527364556494371780429455776898556751178874985786058550938219814178755778882033236718312761055885531230464708349123367841486924032957489070227113120518011070197675536088033859523283200152359724793017634240798436200897235699714600265846742327284410764628965855172957076991451970269088826790684550916704946587261329998621147999596255234676986144153377669775601473489399159535677434220882842960884937711518328527835185795938350252054054819622461279372394769035552061592851580672415607943261177600948909202676536992018697724769161320070857927917709623316941703721724268053245855968015394240578048620364876576240070950700824292444591676736811016615576494874159253514314023541098258405176649625610217370879950524107066319305893092455843702313855721928079986187460227862535748376230150487082255012991299943433198704075447682381427448184855979461320292909230227981976346897867300136359285194087818163966866427098317000029886416404004517153106765748342201937429955018643156975166975675370284098974662835841468066778746853444218589261113785790364293305312219891436267559651272048716914938509062151346297853651831751684599816570154439723776667259906688487339304612811184533494147758322188413730451476954162115192947747501476156732454030521717189418092479057979962263090079660327519188428621910873479518976140958507103529305058412845959571537383588415962905136172366385803747615641941060538541497689689561065942402426753004758549443186577222919971427998655576370921471641241096277240113767609267310376738156907646550533483281143996912458428540155825281995179881289426630242845625594226169016665543375438618775049972259489518682232539590584858413968227169608833756185257632420275417859496639130981344354892548212127342718456962458025954711741773288449429425674848127534611003674508132959633362227746241102079941003259720004071030779403631524547786725187436057435086872312764901865681972666879296629797473141898809666332846293493819017593407949504297377750710721353314009994940449081986813880906847771209299176599502789025246737846740601448073916703339098549552119065439699714612826640912140013310309242675477872463214669802481992026002995213761028011593120804227594548463675785653554897327838804091459213524077471186839930275345937650495335474194305851823711089525759833444838214672345605650035763066993616291673221724288886104659583974276377251116777780090474869614288184409781146211040492139700953783491784390584449904762674093806649859321107658669070497864876182727834394003714498531422694006416814098849939545099574078701053096411932875221002254103617323207305903562409508349741808158033158634483317849568798560283268412575746342015612804910292515699874770504020736012458398434989378930674197183158173232459848362756044135159222672484517433670592227604400523581203379130180752730355451014635051178050564294674632004569846834918292904213819203274991715473681213990339661696282648181467179990726903867939891777305643733492115143290562483870914460683516955946929289782823054425475016924929469397051158622028516957717442014957046261518525941215808914353339706847662466162784783609051196741307749075528390803689550640986823588060073496433603962623989014101707884467539121863636191007794892665191020701299085206760509381054923077306727498436611333569769523560936157344590053655010677454717195108042770161866519207184351534213022041385035118850944867747895061488284633343526003626618786466943967346240679265733631268117969808866394426795572819666966831414620664501465677221891166010895760613577844301006346947262532592665866349839723018642483654333011044317255618084437644020877838573620151115541433913669473475826097300676268376105866203584380198340606700983849627513789646425740983245094185709192577221375763003743330621023621766266826861590064158492700002354735043386004204544589394427949452070323754630449918751958190902578618422191066574584347453785990675723906546481782941599154098546220661567980540216831369436281598654860196813099353338544254647449611918032797271024795839611529437343207969440786830792730124366762998929866635525101720296038473448858413421814256158212969405429428402194429768769059698589452007561410105847119955802196733968221208584512132685747470322680585339698850080995706992447976289216377830525546851633812785023327297929041320663546160038277361054959881775616814061153303031046520667725405652502350474611895819990411885921602837329062793530501286445580134330856640087218567592429415558351815491600432908511777808203379693557054066035285323172874551631846617370907813124205293729608170222807242954115941423678015472346179183930136988556164696259362255795819120729246170027381883119894510970620190506707439030556404603209959747417602181219052401911933261821138594763456062921534726248811917363473407479760966245764438137764763403235493094597590317767672753099341762587517883646921496691769493379579004341771249281850879544627702754423578651839129021831056906879574473677328199330770048048141398346030364322014482567840625335171311993846460204801433263087413230186777380447889819551055576377789764193997373972376806150281180752256579363589034755172641896351990255822903383580456582329018606273135151840071913054857239368042342123010563220273283332294138592359470071409956246818104635326857496559185053778341473588114751270889528929772298620675504722464790150895373307929831469121009632915910082781070059805114191090211931050162857978800123402960696247623878341380485766674725668543417900091861446413136197095319717819692078665730068831332275394168841119975695579438732367631764787789203413627137187387858498931892956354175271854937276489415419689014616614881556817455285867565644787152629604464062366306913072828180778483854323639803461454947817402844271541032953347391985161312858008271125146411360800346937935849337968490832159031461032573450837784482212834314715181319928320587624768093520253815159387940566311675915347154956870421442650914226458291280532580497394027890938245612551661161247600139804466472925630146911047851763496693819666933715473793401752776336756477841781575011455585166147102054733534556257080669142448396218716048484920609118335445029375478421428696591211907762139408597440730262045958859569340109108179011091998452356561395034002043451745618187782229452203446930435950981006423764870498048351769357642358419719385247231913867391306622616950230747174975973298146054403489427606134257680589390490782078274088077829843921915084689803786147222243957543746661392700976768500348415048069468805702844390117270352875451875605211813695102935506072895601368521152007067558034172467041959742150060817323494224731670702228359254624137999015993195279603053746519251347201194387289063926793899736890743606940079699563163455889236511634897023893705849095974079432272397991938771860805857300783801767950201507408727913311554868608555585906252562897737006802605525960507949052566129344711984989350731599934908228875028731814163846619168859440977613584478266051916709653093959751500113677859290122416712921852445786252486174048930282592251336809493434351097034004350798884681017901435846997022829679210667582919305346028848233577662847057649134773425135345189136640645402777296240202622244915039243611866077451907362934433315004775157087563433968780257203098798468491994974840686122605229304178545168683076725585226738399655267748735827408641527436685235375677502889520651459975922070030076126733674536187020223396609367810498346799412427289810112336728137216888033924449358710962768637174024132985108406327005607125188976423578811957170341433222995569212634686676254158562614542244926137365049220579997315069512572086277195091384427001080925797278461478305060389141443935110120628937067852432226460499768500180102949867120493270018208256843338298973180474507526925787396238251521883280357050666659635043538700343717439479148421378550781258777671823239483752113471775658203727104390502471788846770421481849129584485374487077976910491503248791634721216433217863452300934350670145629186854896785722734304501657106123942178321751820703901190262763067609785721426598035984039423201632375460782644601281581867323801153945467919385871736434040432010188190018474448411930651279881053155098567698961336510918095560119857169126048768592834809045734686807610700880921122007410723910009366742252237240326802804201939409042454802129595166538487148438838930090257768151901713985123771244016240857960097890147021677134349826312158021149388807340747051888855931967288470543184158714495229447557011042226329871202813271070564241205670043856137600288703248842779117474625451705438099558445884976701688958816340485347772964795431802768192802089252463650897283110514066343696097704206571090538268356032330109144200840015118457103227938576339112900674567485701791057723790656897654740121924906828712649674714041737292806145538114575022239302454279243516371288692252272983215583950208803837319370149990968058512975572761272299711107837439817524958907078041726017694468549019431789987053840936710904602573072988598085501742348522710080175175874374128467559488806763074614418329208632522910447983191169368616199593042370548203835586542475516777919480442604050043794289412480601174790305429091716106891171993408215465150455180944000213761705757987309975219725714179941377728142786495093056751780717453637298667059002436216405745214413712161654917564170841869804239974622451781570500383873536030322871041395415500343373982153075719977073925704012816617327059754715272993164573935449781617143469781407129290350115921041109048141084253600165848142211641375437239277071922440944884994825643503580787778966363149171050776535831728491294990776765750064210620068169984956971562091083078006200269900728079123387462917681475726739381415429309558153769089009995254329881266081196687798589996947292952516900105307779413745618738545054051680652455618512005570432323251408314135048862059720944303148235008769759562207222965747248415941567768889933788900714774501493487271280093057012939571516461054797820773368999386364658872764888612586221985376721482087213656156545979089651169454444811845936542332247388947779907958528918135990293774182619644035975397596300313391501200236351039227006539812841526461900306012659232244012091590149502454024784017774147862038940948867235353057601739018446730981296283409498366976961923698916988845825903790067209937771476676817483518203390167168038208038572426607563209282620216318141471785585101057240866864710209050802932849290927354958687983687047431948344536759893020127897541372420490383748368941251217299431583851303181903786083927113522686258557406168057913815354264899907510634442566946960278734119749593303243579078843715645967436527374241759440711503916999869031525838319679085013923389948682006119514599036413699112437222886333478910748326878820960275511701054658957634397033909911775363081796102433360547985365170137127425117297889905012462110875910486149837097636802766789945145088295203389661584930154278741798410180397977354497783027927398392089227353712587763504020737504719852043070640891868095527649193876646910255731850280785047303349723997193643069100851538468915689991650613834774889777997014052264358972817422646289293487312568566622927936625433839694782155501485293522205721887865794214118360764500091551179578581859124104585850082575522019088807750205980720889734727855573440091595441765073976546522309535477680598243138169916998598483228680156003516483965977403240648458769090101223886979912936732638127313606161517102381858936224923856206083844582739323850107357186652874924602027168454845723166275471614439258717275920930995095826305874795916564983873540679914374732050292532273954557366351962305491762077902623918733888521478020935016556418098704522438312211861365101523537698249995440752098198392812827977984013656884496584541651253645552655417738021355541833953581104747710402160013490497966247140769739810011336292250250402071851284590273354157078414173388912652523661736122108937246969742198093165453093439478693404452733503392701290860904513431864448838187900269351465969288413376460429029957926263084947656768555142113442161910871564785185604721077869553739583882259584658635341096983842106156451222306473904751008166666253430193295142168290815694746741946526539567857704079607506488378587238808610179139481353542110899909834850418146057208091631756921569849649879328914107552362175528364789266588005507410424595038213458959272971217670589893303598922151905823338542134834759452513070141961135598497684839481777557121581374330221657764454904260203098455660521699668490440268215704412843382219080401818188984688021132883330874382979640658628341302080989323401079239781606350420058407798646923707236883461733512217304790661765729192710423323970190607792937010562710636015782319326884798328145255864524798558842701228634401626019120761477782297758889010905575887818463921356336783250010900964003879437525163333758053862521035995297692955027401106901272258296419063780528582106363042227409489670541981028549502736063919843875173190954425015743883644472629293941920359981602277669805748483904848843031646645016726633864428607158275285260045585393190217780162835187645096607776292640296855881792209777980137086365490316329397350231575979466283849433283026169059469511984416014138053012242414154971901462889858189497411829475071546488509714589254324035156507784135087745085113784468610993657910112258643492296507441389794041324324749881167238386684601365281287698369428433693181880469992848444368436483918715751568449162356736162594746760551767468016911239660387139537845264011059474357219750811262058746269338554858725719523652226282693261911256666593893400567188458381421430111166055582778585640949974573637442026976403482699776094711723746436886984066642427629000396652086985475143052212634410894088451839584671444041404812579701147763205090895036331281038708402833148630526347546890818453374819742133144689338194469584780200574598403212890381475983456958596447796194535036932878694820726348076320032457061924829967637414982138240311821894675335519028776740735683952587457605980883405979928138755646058546040648140398182217713489247195291616786678883851362371435284163627824813600892335774022694506428574482206063539651355772179051463250541263635452080798589549340387490897932631878051081272128361482247390195148911568196114425450196630078342654080802312273001412440582961723261700715216424104487797946423486487783690694521333774116680090524626524127895562625500593620948961670287880470293277088129352048935195582519557708606371768865950055903182546321220374263616730181023289285390748934030048933494677264727773193699634405394296612805934171062109549220193341519406261392826559031862826270734801569980904661634580747635897815214452302687272254512852848278666500760041366621662019710139143852956602032823441332089137078565300108440749132444189391526824503063989259510745783759088620656083024953993994602444677184815938501193842414087349980312461030497954486575062421466044311669644191121633540712317731466049253718452620291745208423665436144770207368632719691675843090315542013681510937699956693119312721714624219306518344833193991992405023596385301006481149403348627726796854324290334348241325141575757195577597955747863310203034586361870519306717968873128964331807341905302691215905778199343490069767722919742441691281537926294638846146693540579357621676059237586527294900021109254559023412964707048597191395900187963043988666735297027693009793848915052218924498588741701677812781578210007464779327927794531287188043177099029427806798428992345712507381982816687895107816972868213663007402805333063696926709059139593582056564890647024399798830873987723742135149528635964193204146792813775816749051178817397157303919080208956179528511290983431106948117401831030814491088780101352767516949258682236789767825764541591727526204606061321452450153335363249260898220995280646799726427682890508795706188089512569071173836004574698854212357123284341945647914647483949279691292812558816513416135538448441326538549645237474385908404017325656799826674905920615102819240853369017216972996979126639853658668882200388505343665447872676150830071993003408874172441525363649426898629010770057284470021941167235783527341500377678715314601316700864746484573054981462767248978322661552582656704865047557880655986779134337465797701183502299658827237853504490739038687850571924797850103397008558168851102706866399518822219253680237118846510148058161998359363341596746946801121148147492180731844960386858847048668942107490856162163887702307275968209603253165583165951405253628714904202616426557747582537708800316793381842125837157863207004720943828922046923966568781458683539906442743019563822262198633140039221303579089366228593928215270495047108895747449030414417752361672495089421172687224897380000969930480276942523033968993534306150804056854233389983086368006655793217939872204030892772145198731762760786236899502588494123884740335816717927296708977516633172859382788036676085184875951611906390550379883767719637295400526557019378950079097822870229935700001065626731990268420947607855839638497666092572620238906549283475876146633715054808559204777278977845352355385898898069951793864399718549403479018497142300860342660329760451157709310374729833499697170762683586053227841617104895374042403042140677507271086753577457277046098961683990984609087704982352982092121070237179524687907273704074143623671347482504355167535741674607469708730471311645983134862786343332875589256786049967007108439541804194603350809698219166970941527551671101959721427029122807278279130159340478398543385543878112141055876388472879421511535407187107641435607659769119706419380891940789380801915097691022761503170737893260265966582280661023264703682830644210379030578908616860340490891296409683487018880081028602873383572890163658708235690024181505319411458146548846557423645757273620371263606866800437680038064170345765525452164085633937948672355382510082605703939900639169372991217382233927381763793908209912857525294403457721602638563176089322872041548088328389303330253647578368465662861307476436660213951818240268900134355881692129727822970906911720890541824950769743104919219260909089662474607195593817215165795344808495655724493616215750964296031565135616865077969428836004815695317833418193900238646448107487826570255870709727509533308894500298172282278760321159436670032988670483672677600365471796206782584293674646587302050398576147158557264119834451481902348861208384393007866243796978550946055222045881188060997791237625928291701267251740971778074719876287993291421497068791545835465494386863499968201956853495546909950094276974787863179433703331015340590520223960889819271223630044551138759789414752799981865633689799264597216615918814521235950729289562216584291385642761039349530524793439179066295734813022588172632046448312473266794354654648241138832924921720749765276151403322004735758103876994502775706416987348466323157831858190751641387291502856174772270544146223814811236850320025076920507988175041837592035205789685507917921707303932354935177903327232707850296723736642564177102693036181123771478156946465292202676797873731622630109031186670255966590657659983201943313368349458776651124630895586105668999783332201505719742363917058950955920401444202096405804814707188309634962454169140498398559827840061184839471084480119305404492523446671242106828658274703237699451665300667011777706437384249533284807940742809340965048277124326144331644293652867154918163766894161829148799932294952354091551892952330385819943461605279940866029068891609532228973095013798004236211704907948688362450660984480007172749076140410802478769962424881185576294054670909271990919051318060295798945492923536085288381474448542204295736142343671940512576107035686914906144661371189924573682647249833840923081466050624248847445274678759967333369107123793679652076707689336777960472972248071060534466505964459459282733115141207341634079784451175201811229856572688699233045610507933918842842689882272785653589576227659153700223408430265288304054950127180369210020956696817436182955245620927470099519245351011763325763074908767817315163264915626462951202115410724918311567736562503433175688479228972434098371955962573265815063571814019399123601368086399855668952734064121118394428962877092147502833907896549853489837255130491184487350830065981151879635111004483713830479667898592776092584960253332034871061643982887168154578192606162681507933381897245004559424229174749305936689019244962675007987591141889414321042407905342717801244209361848288291154029362271883853991434411270649201256926882771343945125169106791776210851571398028616748812958492371514130814964199368342436795688639589794219439514255092576343225967931150080675918639169880591889712747336412938445646205402899280273934980326607334264194672550510379811689084611530224154562216993698476600453847063039586415593509783468756795431665038872720872024791151516873204027344642586993167805246040652282596357031227437147651908521874614528801673434448390985058256867360068957969613781613268991420403389292370269911519591741105054464804149978961401008369362759602602079691340140510012555264808069247486666342888335710092927107819385886108435825186474382884259819573946941261612737950458546783476937098365881890062068672608593556652959352360955494330704987002867912014718955904808730319474138612715215097172756232644421918578449160510165824211470405579666861054286667036107081793846469374086338260898023735062775353616554589946334547134689333627205978670184333502487072416643866711367323309338222380371478319983523411454119361953246241525705263789536666412064779792262791366992493483696930020884833731430000641037736822312064527608097477756126075755623482539582645235282734895870304172539088117989154693107598484206794122605911412316761478449204735651224738775141312280415962004217208979587719656080483304010718759424914713832233025844530770724299213580100510276608535301212226367896192279769533233973782761493192875774215241356869247279743620218238738019910909003173907104850031844772573082381382923436751864388173103690750172404134778638489007149506805783547380868137432051200159514709159205659393085307629135906464693581911108359981045656005813289329268093041730094645999525335964648979317818444114340485906916413249619474325617495684405734493201668847545740093698303919084650348301205930160654624961978358183246403139940195198927170437992385963494168129936524288405487135654211943396525299693915658266121936166955585012082444329670800304812369638760933978826743531028723047704205777684831202010690365928415729105522601233328549067175068483728189255796191630596072336476639462924578665375876209953429199708334220300337802452904981064790802434063018888457350339087968996158123673520652558501255122453103150202150918019113519559911434957274224609065313950397081242918547950939870568575330394281548349961392438861263152065304352206599085855916330957691576500415583590151004226670628891945960755381101710956447483071793108946405162361515534061553807661985162257845809180950708442161093981241040369966913444022810991670750292318865329843155745950390531439847166551044337306128220472368833128310236745226130193247158768024005000071075405015031583042226468506144105869405321340701318375004403255122984574447115937294070806537655698360714542159453067739938233361429340832312975742384201647158495287173212799387086940318836500559629168316253026134894066245304621479755938151465794105817483536750482234443998136742073173171761604259119976245309790466654834785010092381584700654498013086822918127496699304924956947725023582839977582142148165782804421498031398689870166283597275649028924537545252136199696273771326357446961338031988056326901306395243417151997306069157863534418970845766557208115929678442198572270467187828625009320524083773842333895881474389377269241085514703785748958655056827658387752214085076461331979598031817391291235906338580724181764948349576819326384516291611902853126364693501657499239143151757622468381933334736817418549003184997082031655449745723772383721520190520624265382702958947278842064942869323541798268010272011444148406081098047616371038957875066821444451586205824194345800737915002923318651931168256279442921818172479471524278784954553392803767358328811779769639644772843607487065378312214116826783560742721433931319463665458753841899938577290540116800569654389150711332967579715213780836046979953394182430127958246468503195684662760234450266993851727423489429349792123406482846216153848481925367484380914418183108533254307301623232809209305585381721493110171736877755356096919986177080027959036482829414918992527876456465543731146574802778741248006518734320041460924249943440899739827226450800923295920227691126614564115571338146063016006978154182426963864287667097651176780203028255394208927951445162540354027415347053522257010846798529022672397980864500329249239154706966892438959662325428981965602239384215082765291826147533065168320155344658899450536830253179849836061928541223524919048218879726580336166429901312152872828590366238464949121720660500712649982233149316526359303559662019624601306712768683913924376091349508681539557543633076343055083654658077820317727036958916646855925222062547244598027494779551554430172211361328149032547376624069169730876671580443074446399313555726725490190696926626177657490945195878132185991336784491351652964131376326780967245865154863536746255946678820868373775044015238119742276174633782486124342493225919591129262478341397580437832525714894843888604876108217916680441513690373577068718298004019148638316427022880042112524671460646069597191563210760915773176058862037539521819473527185414918447575998886728978127358107610471636144809050035003696073464469967581742544206954548791653393916892452702401209441483565717748334595363969440324639905620747605157821401659441777606502411907121770637350130197078028174312881874055736757440973459187871124262379532173883492317006185529433670562050840513855939297341592848973386605465166714663168258603381974048016052897764356634351680013141484458976525216317811134135761757352818448261090242499436386566660086985126325663527817391250770324031325609963935919107649467155572234085536067976551676200195817443778389735557515264105314603272411047405205953592730592369029398761700322136550131062971727580736093425826971658032344064556874502061637619416054608597471667373694751710794826559221300864863412373126541988645234480974231002721259008920801274387949726663372250815037788406270241949687963193862120106310388700092978353892879365635561076424979843705636742783729962566420059196827870478559018271084989148866930100303552933001164280902894503406619334004738919686575863505554277965860313751218613799537885035779680416374601201673024019010728949016441953593388274390512494981376734764130849541268460306437904966833866415628249425276562973245922203965708265274549796013981008675511265141314192019304145249991350816779194361564066325027989672754473696894903463512588096354630491135039306496893820063611719015887558633984105596016093804885836536452039512713697208839104998603597439596999840111449697411116058555528425597750022908347318150721372577643318358542235315808977943440848221117652684304921643260247132785150214641322892515614111264781122618121674968617794883126682171355140868479722065768508475725166908526994945474002980531345985136080543723265556998698488671700938774916059414480129641209366016151297913135909529769567601471427164969785757949661792983126373558248328117051716805040078106970875977580043120071117672797926242780460177578887768400046106234189743852310832216505311053961406412428019173350298860262072204618977841636890210328313036260640130337319700518362410552834340995787159620517365565643697216561599081063031926281233430846194794821487763837913332478565447936111114383763613967059909920590795289963780592587200975320695357170001064633344608499807729952746895001627134363317355654462250617356348817726479895597042666657112543122558732673775037559200608077597054320916061244894135729637727141348832432936205299800578170373140986078172452654540442662869286561835206313100822102759837221183319986685770127097755601018594784316224449655433158947012780159383414915594170898057367521625079895092751668793179714639340774953157233398659285147983515817372255067637268180883337035107796073944333648648935136756580718240153852980662267564971192647592946762391097767862455510235936401616479745112170562646816970316178888202989587000279611536583924733707581747151234154110881623428300059532748401341391675693748366591390472566439077243668475131975099012680515241481293047754588869565211242928985503665792892347015957736999634388762733225177062692474322878455272846542215644086325632734440651284041222887937213144060496996889444152303479769784182483696916188934392370222492648138776732855711882184698558459560724759841656742768152231773148760804653485894142285804473429780054062540111385482547529061139195787265620769760591924122491162544612399559197409832190811123408167513096257957457212956579557360669626289492141763915269623995334136234170575361871034527419675123907551587842778313295565368085674476280995869352350967135709856405239578055302399308839254327242267791801889687783064050826996082248431147352102248434649045949621625861720087533276979550903306615059271126889174851868352863737429392586166004703989864546028217187547919187954072418858639874038987570771598865248344251399289184803522350890209588992979403204422676579081643837829167494344726643221047375558819455649216408103715899502444021767379550852447787141514163500646167498073444874500193077517819236121900264193718757059865887893217423690998491100522463770299161904151862226521893457698596747796849911665205234596456414405036923457550816753509801276764299486791083560050666619762715901877361369347702773607263298310410294177013804810436505752557937636436623967048725895594792782074241740694166179744327318851450859801233376563151124903131327796003596180568279975347868056277824315700823770302601615058573602941572960508599709747804676235235035195104811298520584542014583096208927635257512859835074278128900811391627751650277316643765157979313680857928665512194821196666644208431143063083083675148026494754658221603557352749926051212085276776477753602899697558170273486291060627324586567433578412345808856738325910154085049458137218377478897546291414067316273035352925954228803532355820016075142046530494360984388249889123265389382167577204087909412789105239868357103771616549099643123692666759899627593008640428236874320026141575337943238264379463909659643583178428489042048005813748357221352161166612150563489069410169867812509831690951043696553379881502304994382415980682325125633794328731150153589475683339450653450388034499374082120807467667741968817425588229370346216704122932412642285134404336749285034378162722493542842108564203080594331453856040262051042858631204013616601085315659879276656079470364175627358066706536676434644273080179677147923531965576859660822327882143018741066011917994524135645660202635022935363490216478237600397959174506686832945693693683772497641082140034393299305431779414788156618116639449809351735879644032593762734195187157368348417046803964011088053713771575054774655301382998507040628802350567116497846997640759133584500117917260395532619494143204597838381418206010524761684919637211443769754316884052861153264957884666559846665760145359544999705946820572988572650991082133567073956238243469506740518221669689520155931806106051123079253303958966384902117540764849204759965023140139082971862788752813350822932114481572697948209008099790580108675876812307547300369674157410348603217705898267263997458805065477058526845642643119540777181946052397021638771015573145285490065672227707496887874593181322955445668407187745888514596741452128365256002624197743170537099545404085121107178564024024048418708591218957104059780984766955482724822258532513434303597918699244436128857330913160674722574966090115765775188137498350503990967571035804023505645180409738785153960515322201746777087422042580203033028299139986079284375493582059021003188167304190953633182682444229842841371552484130552104324552085302637060388157850469540568410583144265016504514557500766094840772691547684444061397067434205715049862516375147484081664000658749201502094870490627516125998781217320151565817848511362801498192520183770380861486182197091022138288566368531480492885162450023223028924503109464244380485700589329562249597583816363143666701019753512735222212449470799839009362442133504969088956166873968611203442407418064908252482432028429508437640115898776611243427714799165157376528174183150578861436944351239019686562724752763814750811065156162096345316402346601207268425697024468645044140971543604096410187724405127581920348801359505078338629685992464342272569814181223480891581351591958778322749850433087345643651123988370129357270404746890251834600405913403412143757557707021245022861590497887203156585037970641064987350884422026419154044344214916632405433022270602304281241625310748429941134591661423602191480701858093328872360931270327283893104601148041144703489398834554919900300914563170583974986503045393780973442058770594345901981465677103229034249273112490296391533993850911372071964303921073415273825413733360006151216854278940459336002110947624508249226904499846061191886955444297777897123075638356626004382825176193007426641705841869472415913499076209691652352878433353018711628331821472823390302171304314518928941765193579862284929530682171233289046640238688265557104798624906553242747465861693832850784684264933318505878538932263797074236253238042443492930613432906691172981459637547338600693448518522991915996250296886047713771041635457086738552972860437354747938940045464184465139107714849416965342236875248595623737860125256089642488462486386798489442283199134593050537593709115584495825995387787367760354088139269295518048098902340944647641723682748927542571737839356751276865850950489135586275248115535563704870462837677633508188686052242620494566517959727096572059568457639322506906738169485643098309056476816275351830399622712751461958957431498769269875469673788760124972444719438462809787071149844855959745196386594118830429199617404882976702868380501062879515641301659852016005839331976172966657156639621405798039631191426494633672472286623645992892214480730082613383977822496862487506688357923731026725018442786273234174975969031443142090327579729589032936834144348640065786718462466014007106534758690291186166167550784383528311173080627697589682640348318978859240087801971150175498447810688845646830976738877945217322844749902134690317855341432349660498504736194281190808168791592395267720197562152195666616526825545421524590467035841759810142321817058912123061628221079756542725806582935454635910486724882117507646189490541928383126596147417499023636341014225867193507627555969398551288438971680181354043792945963254628226199550676134560690759123080434600541388489539984466886873986923161113760472573068588208331820359208961836453196006812375651932278375687102319856439632630479503914331788040880092808085433753813152536961959158074349517152508170080657907051616037961248794837280643917348541133840009074564299167670060672517646186334140516941972911654770085102860852255055562450455553932223847700325581937645239244007211594247631756507601400308494972983191117843635390922837858722630430636636066345443176656736483212391814903766713185532097930301018509141921648211782410949369583949742074839429820767746599601169613413134742344706247734294974558525298675953758295456820155876554381696184900156503157474149488965162518963525621523332008638120304403378425728761808039787361312951763430158504151320366733571322231527166304278860524263405106349333027921503481128044611052256727943582091713533290161451396511486453544132471180605011756258203747561868034323756616636245794217817710631764739782273467975446348158576858154415244366007836228291936734621214483398279781253145638544302149787405713377027891436815682089199827526025127257946596463923797014691142991148735599943547681801523828605450505826174649410081374898908310672059555929396485355056294102216893084110980516158805240471163930469248493312612679569408744768866004898747477286496187375535723809148126345849981187760700078520293063936859165322004854850286313013938361383263125740559871234774525372628430438299887815612637952295331301333779877337110407096202190438795121467537244356437241132737316691267964400477482123205821159054190299614166241541197283583123769417914165161573924881400613110353644578358680296100744339185349722658065874559128300705796934437510839486142369574069079218340422964530988166212293576383321466369417214582767482903944758855223542334448462085170452323200427505092505964366882591006884823750473660301959731584716317286893142162137954641691280071566783087163454245389206884695807160213499013415524491529240394601172822513467534688750430942114082897656078119867090255003678296544510440570809261074096558975532162269181967206924463901201997764850281148116644123246290278991784998358058496861308062646971669722910428646078717759144596022444269713514074199786132262805969134825932109488191458629056400600995867982030547050124952574801435759714983257899612352073087360275815047938236924649108718520475397222451677830179789081370790290414560513242450869805487075851403412030840162748216578401889480843157105799753293682741414690725512623334779975666823026786427069307557917714891464318430224283334196503663006800531700205865294137431247126834938671606216088958317392373096989446304976222143786062404118781948993800272816398442486015919222611171037458684671268040567118720894146342811850932910629378297809951957846904121459124275888378806596291082366814596416164730253232685850531659010977205464456267427384690078177382587799107116794808195838001487941137640365481656934558202669836710372473943739093840527182141061188453335411039572858239397389570009555085976932568488134951267593964296372582684346913731020617237298507547705070091122875925027500944331944936098194472223978995504843030093696051259611136285813501081275185755844795681695190270338873643128815657808166446844085764104894500779604847957044526902673013260823157412663721518456246863353023374899301861331920310275223305845622395662568460298692607327139427848648489129442560827349354920278020464653453038324789197940455781038557984006443071741001896404664303874553950380879396217821718802214256737494165360699474456653219587450194496658424436180607997105450111977653062808587187000011435132601678022802053529582203189607292183124678409954159596899467366614940875533958717741893400044962800091835751069649435705300623589557259823366452554480267565286179352417470552326114312614851916321054684160675942942095281735113034982208771900148591265628101699012796826983643429341776324078887920729402103427616143173698315809738366101056620341083915105123076009168649685518705288777080187351779111262859923332154976233769121211182775256100858698742614698968112518931962672138653628128707788107499671222954414227995818200251029386860331183626991212497491653964098990703618081793243807641223029853702731579912870652659378860964305267399573181858473540017458344592067436226075988046117265333285282185605264027740467195178865753727016980002407453005598556647910349595119849602262380273288252640387031226320843507746146926517009329338730474791544381312594082119201156891433719059931922687150488874504536123755904216332337746716681031210114766907961677502133834993733945070365301767324039757286795393796711414383349206619176394897974289200524348112950007744205792575406867487079630219426979248042088700012277619242972087945944258489072482716344004060010864981965052079924802467403653146247775896659218712077293748555906754284961392131538470275378708816769092435359283537220545770606883608904515173722788493887800505060755207667305148918236615620028515509375969354233036421031740772350153963857406925761084720034606736236924456788713912525746564862682501485848524317687262002495104420740710903625701589928701461254216180928271665024724039727377434527396131218810200757383355410725944243337119089931252626225156710218200750925652206927394328268031589901962745792605200357122518120751044622325897864152940407623412746534856027517527114443924720845435313157714624973046758786651517669475133598240172246511914597534337157862149634276492383181120107671624254947046223665977508470347310502506361318846284039150348258234222200704146509467357751616004639741996973225319107565034979164914626468471877528137359174481409318893909001398243588797649705205457341421832740943424498844067644688254348796646212417791804042123750728819352952564720904281619177468277524101419084203230254273076681191396462478520802675469383284744333336174369592033415584059978296415323177522173094597675941346547084015197452808470261734609716893536685965536148020767977858966407515267138805170975912853122038631223014318321061296907398133863648711877678328766295595863154316097347719528595878539913449016065547717904585308670102861357196426260436422836505618816194482360227505962040249930636573202182545916251920403116374876337686673911637914488050373321324437405257116481146944576401686569471175976382208442255665920922745917480196495861008594542441805913819847543491322320531489163584235156970025278660739978778850055646979393144018851422902960853593935061065899952250221091665729098395718283948509301929671257472921075646231454188025089879488733152918752927864341762986884116559659271246311941539667511653921627776083873120047211656266851781667883757537231102408337414854290310905899002721397047339418286338556813107819964996751818716333728618990014436522705227697321445484236633374782845100983928520157671490313765347685687652425789182912990192121366123937089809490632307141712495787494289834574054430274372259683479276058176458955200466020668721165414225255587560510368603848845255047599399053883505055350577126043020036161748381391483633089387660210009563194190866368728287952068784863849503102978968120300401993136495478488330076077852977457592146490383999632310807706345569235473529291819465832161579747418842533037240847838078834185471000068559740087296281375611372519709362174264122801908536871077451552275394606969364918139071309965053631989961677899677175049679201921058115061662324560814110633812724991178369925700243121501958870248621793365789075081035671764639766040412312097243274210879323262911936640130345208578266993721532113701462396542547663713965525053443059904972100339062311489656848484742895079301868476001981238425619489519538314983703262677159128597797021281182829211044770107171397308801045708833013943321343699732150439321324287879852238909628254595047199782128863968516693306850893832966043247942850366036610211209927161819715438886514666869007364729840174540884900822009559214172455353892066319617885894884343140809363462604360270059033367301020633080091374621492555044640949442396411437596153967335124410571818282313908100472487079531239768294631413732273539269613677841886223092080703905492279689136546757589517239969653780989689764997750869296423343136248472138872388898249620711820657572346103631153478936963032049098020532093559220418212276219998471585093317091006671337820097385275673269384339945112042638489672030974832666604881127413327439201226045252526339206185644480014430359781838100269071595505666568612539632854626168178385921245969072101651486134501098188101092709614982736984790115485850681587750828826919811617063204469184351747371298325345672259189967219248254444952746687982147271820100583868451958460002437974132771381571489514046187246490800105224853244555986310950005211960361679950971818418917289862777851405505127256528266164912010870117259905491777269048346009444753752263466387800697649964153409313803642798317325874273756079005191780449543869910357185957310085394141974851013787927939699119702969116177282869472206033374784305214371845543056508460505905794741716338759374245955214295213898938754054421969454523871658328997349643670713290963953826100708262091128455077858958613365685082300130890255210001453189482383124627299575311689738964370943904249196490893041684390161398249198326217041992529919084301852300665724832196852128147748809236778015010001911301934343810035113019296861550489608550037435668970320448193612554112988691275536291165362449081311950428844538865000052622848404666302284247422036893399975440680445142431144376906627861515744430469096853939720116966546207879661443594014597442699904881978341437170704536703816427716394964361223485774263369561704851536228003454242126354208198874023488020601443481184871082471516485425769621204612112901210432008309858351821153743492115702287757516313537346354386920776138619334194651763284519998424933977621603181184395650237394689026484538691890525969632885503222916218956688941527241385218501035302201412666433163317990874783462076740191524148803728754859870786687796390548457318382836305303670917214121444488996062216107723129188110236580959785308511392978901694145536097856216443680313708285639274385171597577132593860553546900175401163066669849552579846360208996058720067096272437702362629913733522400917219910942098531425212059454021263873671409981161979990128683262536214353545887645213680881166668248805360145042705401054365426444787064220826126496506624624226833428690230436017724340574723182305172816738524527921699184151213858878973902392536038381204767517797146146226568537172042589207998710860598064853325476106890284263556839472864920288848586411950907461871929025333937295628167492333133304113563898472069445194669293159259022842389429115213478752500964819302214154627996305995984024943898225710859681567095994586223008148517201560209147501114371084535733346361780189412044229317436909326869761885636336107299912938535024295145628751624827810809695660087199151448845126237975321806017151119512732670481087722480470983575444937904078700808470886830358007854034431379904558581627796224306732845745075691954756824197359631667583851243172304240259837214278766413829932880828483178597473071216153338829358307555816514948195955866075222985085635274183707613685551642097291547107079350498607860587807945385848248878969713267925428445400713170397019147295959647602175294719683000637870292887847666053681064595311771257984133713037563799732960931573422780698742279049494588303697513192397260497778844033803303981475735766464229421400065243411102147929249458277949006763245446991967104375552505059172630687782567196679647737616977067777920033499460587702370169529521740820919354848115640235532710894028869857414096571023662430318503037257762367904490193713809018433963704745772438162348054330283257476886411284012645283977692805678711553051552667741569131540974041544878879952084318933211732799863185664716392590475004926614541551269485511650741421853754046398649512697440353441875082044962540130537615865460118297206917446613243181465998154608938720004745521749859979077769321155472795194061772387975653437249840711143830555398332660479495990785449102133623904245295205481349530631712432424041095203268876751032113491008942776270668721810303695701237619257396318054987735786416819250869169606215180652369690575801104498833487536094909308836267625908213192601895264225321941755317229266340395814450714688899672167113599638020305435296787479502180545524209607296210944003274529188775975206841594621394376295998035729016303812508315423066543803953392681933083804075982142754838705201524570917628200490116713247367629655065748412097956531954150633713791827480735302292652251595926072599748058048999688059744017078883600568571089017057155548567527376760044222344460798234216741319359313620413505270719763240920873797506956196068199870520056541265839777937031984528669175371382477713035016091306534640631089970473351385166362338912911529344302092869293233407174096874784549222789157847005209250265330266272440030472463223199160072204705624231861142498274967695459605495249635314142847531411982672240296802063278955751510162558178719250237716719281937928066407537495220830567771343947432072492451384413979098795556125426378587519074820689508209441137827817296471165927202611061407099575708878529399093411032506235631039494579628616335018945540039150598609642303963692852471213846035365792110263169148904877164921943222035586720126773411243030721571689797419153135549540888651269042781644777062796600038009140253189314192716497531384062327618811697886583772991631436574623581003641871263571051911971670097800226522810559456526586226717833493264721943923656787527333331934632989711633377232289172766185085392201795657204539746965021626121729530487518897662607756153698324619849456791022850130870153867963624195424576464347161124351440042376735386995812549728116716917045797356539490165782162894106089145768075947335942383405291106502427651841931809424091950116257571911553416047636592166152041271037354126629051010488711199235288883847530895050446519554237873437052125903620579944738532221744742652247968011077059914499060783694228856770087541529087943088120866497870986740079798315398231534374693431560997667754580412939346565290569919813718009751432027799648594079549582618093477012251653005798849126614186227757027198497311994125318121468100071715969572177800007736845880871912755259595066775088035085300453743909078444717395353526509344091279057596580060372470993221407382026940118365019328479787929877453619235692849667391722733622331716922693992954965359739700483099866774376708316095208593618610403733115205143076264169432015315404790597321277268812340982999116745348152776956773151501222527672062574241204220210719377122349216578875982300478073872084066449530433348722304981696576900504074112550991791437508809169560031684775373449681949190288962240668876089243158418925189056963822926992722418940758567690334672992920086478457483461000669499179380812004786231615942409466712090248328964268027693742439585147959879240731665496012128103480735552375768318441673654008485121455182060822381102624595108328445011173603497327950895682752586539388633675560586868631171725917849880619749618518013252947231420276693822991967844002492617729588592900634165074424556204200236680568684949087234259486555110960437490267222273295309167283032739749712152098627740487856973385241025240035098617687397017548770160828519674078498403085746808146908649556578322693292561958387601525847652461731581624318808218727119473999996128302303020438684376445985116303864654097804614464245086988960289899951993514387367640561193101471898753777789218980440495440511990278973967387479544610263282228087026536087766267598931620588533445594230810029866835759494390225175050635534878780517051080670349844241239858709082236599329869743144132742460344827746703680006478903768633190836156423512601926184585748474976441688032506561297776107056290824685886035171100240522787856226513501248888397107823072939089972335282826320226208663532642426460358194422787501914811609591262374654348508474258550212577431620988347832803855976844666058107738638609033693711796083874958213933372403768392329801230283105613741043061127083779308804671525462809124075003075328840643255875989246144673104561027741877074305081105786238259292331187514770578929353673254081765005284485610482612783051465652510859700059936218502963320689532309488116209445764833788098397408457769329573667772636840922697547377540977150399807553917208118034757723733326957320421961195895782684970631077358421235266371270228727541633060387717526441577546588735467500586831343593272904853329283979831776119606593125321067645885057170375310163418735814987035501404279319483004263866224806048141672161943083070688332834646169289633198394992951312230106718065230153557267545777982667624952545008166938122724045868015865179176360248795093384380508451074521150012663224433776811299524442015287824694924187824136171527312981765237647985238944065099460066388147146454535034372298654750828683828625663258072830890485171792413356365290909282311582186424927925611259553746120824915919132526044179000709026938318937476966308932890867240350010086634012919358487016505745692991740870012916564101816032359445210925517782403685168231264089473002759005175743686571047198882954183474854502768652701730335465761080449616934628063039363545946372743194187473739130586018503743494005551590982650882736926322280815228361549110751879504602792493231432051471522860456253986980051810231522316237308742114883246819202897535460003047368538163471288660101185132671911738403786963011080570417651952187838983355276379972141456457042068869724499586270469377525913312704795822083966355392794447424176643321927769593046806495752137878581905255300857585786374179119183917665977526947662872949742459112082740892620235598377311691099260310896717365988471582732858364480985227546404903890717853768551530360737896285318665072774376897393662443416946841795507496116362721066841814677788976278099365249322875722479353772103288196323075257246991866537648832264525118487862808759141012139814858335563997537847091581352929549658313127972412553468442593757882298887914366595219700730031228382336196650261504083744310811291950754656631963925137481583823771589068315910143810387873850513772450788511642947888169835619065413164083209307045613638400583962088315957387283681972576380570466602664668166320876006532579399955636170041890599678545250397713438507013853219931319160291368396803016008398743790405000400951985630531073555589982646174519186118423252160486296612303944097673196169804871530800794346848533657092147985975474555939390882294633076242208546485831114051335293923508318144631656385522645495732159380111328891345414753294848140407006803540542768851960669674723580178392315433773755481946810335271937666997519282197029494807490101998815333851743611436837484156523735975992877596883115342454318776846567627024170951675409614289738098672969082880596777296012056179572511314722509916753223369526140645250267462155143482115421852533298797192321764963008081229424550271650301323650194834856301515124819335787283215127010122358073692595007070984918315844452094906995425685562409346245875050029886723544984197625114665327050100905615616162829037100933226207447696894758451495072312399311612031077106468545973942086427681118393376064347192633244827244178484329063924174775958762030787258252751693810832438988206614603355027208161952910559225273511027504064741012163798246881734327973558025984488924073261419021922937966850851274263445941955161782638625799019107253365099787177601941643739633420950685363979989536739684133381455773802286326711378850238812246349185903921331614191011664148475402628049885774582620136231010828427576852180596504660058078640844625505867775900414881978301363118963516030013596189956820832604509995812003000427658716292496330333805785187304175515610234371203259440280912015802709641635676633493703930640732664621865327489939666205651923815702995044435814306978811391737696417346997592612745594263837766513874605365476429643723602651992252113359017316133107093164853391244906335691062807452575879079708412504606418181868033090072107002439947603223855309551107724494168710494761416804108507642871466973028034009414513848033659919437433516973939819193999822422308509355705152624180168217976393009977959328961399632658274075372718237104314498092974583845281321359854214102771735243334206181656206559542647158924442318305958537684449643274088717114083017130124150636980430679830476263939011518141689818668388396704381373976822831554445815387558212161791429052168471814348758947869421214166894856670557245375538917884054212488575006602716620722060630060354482711956701210364014239580965281239052176108595648402460440801473768354146603793299966450949779966138582880639511043435220164279841149761101843759132605292739036486000937984459977011788203825033508351567742176675072422668606861630757041373267154648359313796291530298993670366608259476181866180721611320450430533800632456732506491657687525767123062331416163734603745621556185703815249356141231894205151950286204777512403589513707047432288381158666561047634768920513858724845635764089258697713171198748565033251096551866300141398100953982753908289721347549837570093017390841899353403398160801207076231726206980999087466832890053888816311790336807050624588863010939787816376208220388413205734131331203523363441925633844717020843911279712876166854589901934542471580378385963863515815076249764490154030849656529610439907917985651637848673791118723023156929309969707124385894302209500267939758528255103353079392152349647477111568375550078958705280347622545461385985820466268374860637972391431269517582805452066960254150259864862217524519955131514836981415325732984776172534576279065749504975827115820973420542107316970511221381314202868502317721501504623357425120802572283541829425615931775408328383936469349661930974483750100355910893118162060612360260570019197562970859471795844051210060207094137393095095070726768371241475076576399417227886314110202993680523803299239055927103768349697337419599657791761357695678520413814900605370478654307373063781702469472529190316928476100602224351165911813255729112041485796161642847389628262590515596907666867772502900926418817599085393723184307812187728604894086521991939021722460129603519136185581350155668639177916996404375806960370177362525058947159590288590898300680076306201689058281173666030933252320701590433039175885282105032652037946078242061648260685661831526821268915602520970164971944536570981930184739929459699657004571429626335090681344163658653723820272859609276867638346872744214264986806657523285398973592421098402014303272559630649349987795742013467643825988505451646560888528943521093071956291354167104519686220343688844532132399415709090101033327169550807173965026416102570685174517997201634931244892670420949386351351072474789804687695962003577506380507200134773522762944813465142563513734438107454967340689624897456658339046148711983232499387937149145104642800056876594430287590494909358002707646110450247317756922725007477842561193647223366699157955851742235625088998411076973809129413532284318955105148342677610209844050253505881924176531063490218089907179676476053436077649090776558439840843786922074266881620832368893850434022501042841168597432327768130338757019925032947551811408793310029606922565665756614794642734808179627682252481578548817351304302211511817428143636508005311152784496484638891656430900567959852130786192829884452465904879209899595134232325848237754182734224884173229372034181422995576338803565896668852385377952155966965197039739745953709255036170738163514371678659682477807363165117487047685299309272602930920881434073711029436146257584070343765827901902585507103893324438873971079850685581108299070771703866003617185935831333962514776139501444350934342327854442516265672736992845256845049672528785746811867746423891838581549570542036859168561159833980744927336445640168287997654830222283742265728210343643396965744700529934719391793234273186532396346773944468955204385412171271418024896361544578712071150769775054707432583222092151538178374363361166607564256847564340476379952801393969865585802048804760324881904372178184338503922113099899067345245578148375354762083341033472726936131183671104896878410178368135592386517256117586297947045141524992652895686949042662919683404247207460054755482019179702679784899899246801596813495612345573088583133613703160103065571278467901654356876278183033591744268307231156388589980797563255390204324394774179203176869178422868864831184683900306006374592801209491636139263945600402288553401526831397671143439914757479208653026334892571379169295637120136163124764597396274923534573455597161306407271309145493791409190539161127511478549324662167877362794466998820076736873846853963824414287399667552616097689276918993268514880128850753779412319520688231341846195373033180754972606658469246944534646909095433171015339474516433786317982574911456554073085914024348169085481175738947685087366540615541318669103454256171033394095210989852420283964369534988212414995417632341258096148051436869601066934278464630644628239282749433681140490427373549042495388789356436265460807785539669568360437817315055902016136321511095818727055522714396851050206643618016809067226924477116909703542062775918163499287148688400019080325321498576170686328255219705296902884457691163325781788160158063410206151464602952646049728379729542803262517971893623772675361101309913241420834813016353291246220261818689687046379011180427710893690962879499205555475615920669277256903002410087173015177405666537647048025132886932536925568443670296064437315694520197535557494786537446940193722596815073622838995501088992786408992559921137141818598998680614691010038659015386555576684249399138570341400366300645045078035645468642202320966535555081535929827346943112661382455451311989484451872314676969636605474746680582054116908622130206859412116508527486912451847988388959386460059315346582290409686994981472917118910617948692937541619592161633064965172356087001192569760967019214189023673832433521834609799592306041912959793717013993203646369502257449961478273958905561041760543002917275811655179915593841628551680825124612534509632001763669327645069117820453978879654687024039144081978864329981266970970063930582078711692735410690818221198042174150972121877774770914437032887328997694422157691597426993281203545810324159752053978172878808910576602076149452665083651216212321492554529219727907163238224423517899250990496507694856796849805217814632280062464147485975864733630520252502044158962497125461566464328781366625640567542248121896334730012803425117853189470193558960913195544708665127064410381248557916707688900963719922358149767747004950293483566110564564031599159275061739723120894482333609876502169246534783713622026650282832882830088156193609415471389861628296600815999291820577042597238736522002660203373223553921189727824703259247530512436446619356445590372012790765401878262210545132443969367894343560215768234150797110544118058942020317766646303427358166914614330864734620071416096495734077174178211239170446754341513468402734436631483082111136160079847595996980379960770357137992678699797286933028825988925654438872983961957118296130545617617184825575440277668549095120107548210112497812965539470856895310333701930569184495537252085758440023327331985148557415937781944072850191364424911226022059142829049719636904703350612289927886105651586642286661335246977057860226968248500488204176885026912189675913580571502887443888546331287849849449521737007031682338607028486419839226730782645292078210562739771768098826763277760405161330038623905355255473230783900130983006009825703038021318046869461322666903645532460939827441833862584371526593264312319633010628631611835583885051396697153829578443532144557033364897068603971757294611934255715893730882664247117610418789909424134520278133861954856359738552085959896190588513180368778491456738132634048266651088887530519868590529247155294676961503930384707077845016168174794368824692900089000790210220524459354324629179877285339530297098450390898699922553564541735767831952224720064704272761928061528621505771369758857334879856401489167149922594571579506567986661568415230902940209588997810940243622401082367070454977900651400690684516107461544398376778336259373112042694192799932496597909740205785055346583490187781943873083464677456472253019923458907652614585074406649544224969150594298497024410208732426663488813762399554681772207477555124877085823394497386441176623207936463208902994217666420361166976697421652615163126316166711113789844509548617532870936212872336137490248657395455627826968269048479490922782902128732265860020140287740705133636736938583497050337426010818163358457072779122285263720870815028800643098581034824912982341980569682442278236721331716771943051967746506841204640579770859191852523055732026636582619905306222890350065116264975487627172549588161625790455403367936245953971530321795528327802046617961165521258038769382452057186491794956017768567041100683860648605994450183031566031070052186807440230595745943518532717008787374328748022007363968824570388024086873111811813017836436074020492451130860956914650172244022494818713757681479902530850586728739635048627362520847753457263104081198457375863942219546220052758092517731329277544071480924273669258801769751769150900997111208222777586335697713162416128684083054249197092242753910481784168884967894787676225981510562535241878012068078516883713853792555876137692424804527430976452427342895946187346025266357307920240260365298237054599670920834961615440406093995452058437008571163286739092483439300280149291295295160858173043064506843163070024244084985556579659017623827295506418802079971438110608770751767250899617180065516177573175990388692526653383793658165466273399921285923651930356688593764570486963867603518255528033397843240927780781532562120851260487154701481507929419936557047518210502356874392268577263419097340835357635780188873222976238062829618328585740169289691484859208274474717505252723626156447492775211983337351740561162066386649020956558988052704544760139558736757383541675663393607032652075495729655513296292045361697941457927403182794670779144011141821751516059174478072995974469876121474061264168252219833777200039508553981304616309666477074262086743529072462380873484014886638398819525083640652244953120826955721652482948068780092684760644933210116817411410814231765344052124350103231622300036605104239737456632934094748226518861819242149002587695044624889013309014881365134144026194324864401225214206959072190501020012353723655038465766863413016315694909481449526963061532732291942045904670026002155563342702786861281159908113818627133246912944021456490520344438734802441346618014635791894317743623472604432248924383106521474300763811833897679480761990041587456474545150766629603282989720629930257454638302328080765351625314106376450472693538671174723444992466963148461087252109528189737013662579671076926658788500110726592740532899689737303559029736749928828956375330063689165100334417109740916651564662686314515747179416807507019814702874378999699010449936411204107921958964547640474479688789942813008655075843856857491922002592341634830669726388868187636721776179222086697046326998941258031855906494337154333762136026157983359048784021322302459203356150118452638931113235685740606717609146936269751392144536020468750068911221648088378567533611681466440226919957811919340998471555589091931277715465816318630635530479527155584714039117125442011994836585692519587524511626356395585609391148962594374185066633992856937906271632268530060936597453197063721984781061735808418942069534357333038925146104271150448628513386715047664923829199675835269566446249920312872684380190040284888695812458183738734294109655265894315904884070589247806740612505455448602481864494125371960971293105256444608618828198344696822925475524920430866030681565789959383478206546998409777186620950195447368177238331617431851216299290999676032736069588817236767075787480155564293417422561358674107117469074113222170907060829889351730130510024943112111490794064755309344785029660879999071010288421723012076048276125365966557139489775313045143626482488469855907196274772486118429146937535125543746436016546455294215211534226979742171268706537064514033452285601035149110052366308364680940379571637233953439244467529874492010463895783415053714195759795924906038108768410710718282446954004094172797785218682692252584994829311935110429684281010943040650830318860118885083132327447998158216573049515159933629281400701757905151935413777686373597063281765823572569999204060668620322157301926232752307081626010258206239098816761555402559758235070307751184223602991264747087101569636884551185732631093985677276338311874042090451849633616163126813128949435919841865158182282648510007983825238289393268324775319691103853653079226597773982366548880107074501616363385264950413486084848499054457256305518614424139598438486077172842379566507742936665595847890906717531154261616509194020961297797540871833216307196531611749631450173507276208861476944773617596350665898768115820340175223350669593728555704082430646008321291258901348643134817430826537416126459688982445596057402832482641538323910593659139456252007758864730718327362612491293300223654941801402217892985963754002598937868953444079486558421381482989892855421015045051593751816747088890664027666838785240155242234128277498936582457935564330236494281136547199042871298998596720082784471736135758059043931212823342311673617025031752969716228409789725861578886451269800245018240901397174223195371067157867031918607850946133242530735650161977654269236689597744276587484972752072910385127129282290160906516575469400330931163771627338013187919728053159942223437435036491303181745743663032248072659632563942069182962580836284426182141897914652108492667119248279709560912891213710116607418266774077419382288686256962050232236039775362209240698861493677646581255094500917102001062754418111497705501267723273425789422508612188058225958147767830614674944610315063409794595434920720109288527991915400719597836003615851601523989240249280566608944536481069194443675001975722370464834006135083519931075593654820997472020021576038552660935614972036439558026275875205106109986796529778717311982418984634373753931403242200552178890275890703213694003527386173836249903326069668246417309056325440707248711895650729571112327755562585560485902980404079584065243782535991305807025655029151830775101307184573555730503523943244121399763276699613416371863770945105612119043489680247597485773460157466784772601055401469365355769470018153068144804271632222385458426695320937317816016476497239944158024071085014833394014279812633852884939945719569621682559775509341227615344002256766039358710141634895254476965182870350847591113967046631201390423057536373411478323466204435769463839180289093857386711475009092099320126838936499290139744023140791310117830114711816745884601870908632554692890470406609745894102443945106678526911566717365697114838115443374372547927310756597787579865036030360167939317154975352524412252213845571933267225533081368989925593065716436157913904430173995822658107211382657940914991079147135695497291131348548205830444544297034739043940970836817432688189637555527273734654014195454590184354602217526946745158189460962669206146935316047748407718659553410214461102492939047484161780628708014728376785772900898432280437706792863233436539388471572700476431545235993328702009873768732036630513252287531716660752988880163626235108827883574611034988759445516050745464294999685117454684982849455666174592360409497310897654502711357015063348580001207268320719083525916589131434645724480956697590351021873639722819321017332077410721390282852368391399742936165432029672853911505548001269548268820053177602717320220503834944083975989443849323268014005752911701594208783237919372920982453035283873752441896140881030654412288802698656494772368084027870148082696534726666322792287330147928223445792859571047849551070259547873318311143943045111373504743442495636122698562803955066950108582323006144044208463195222902303897684601116328004785372784473460751051764660814094583052720155867603099274368850117035351756380462478431524278582033132241305519648465211017205336406803529572673943041527604166802224662527689378556441636473899401687968317677998148341589311889181580481831512673954495674100381522654198370315559875764719947892526276412230726372361923284860324431804401685994654715939987511459743577765808330577567946111653569404197749521901999280252638337287834314822448013422793752879115928310382572505864942949663232061243276499161578379359944881635837647886647249550136608327883891804237941277039803356632501691814397549276255514343299015119486791491081119161165904729782734579596465567756089504722632176011448946677769213984244450826527978176198348695710052134630129654628932031770210663709589617145119496569841038441044523545990647895066882800563957081024614116679188709337970242829094157801348746250977970933563600464519428841757970140412208937908875992781352210287376861275077684763641216875399829560059124022213466742733514682209507860735212842907995324109126239038413264118450612555605192350357741551145254331937951116210063472965048196441256473853989218736288640175877803101864392062445215820143420053307414575094335469810283245786786914292723363358829206652360370688116047703357969933625203362896737384594309990812353620493844409946464512859627542288086481874127905364762171616848721483791580992928871449099083799642511952563492290645081012890250811642760442438093823555072668958595730226723495480205638781488087993490483164650119504636557753069388480321018885441891051037478700568276461879361805221756114772268991785498524147783625367094820198568276554689741973842819925020140940813522538870296491927826280407761827165407298073064441584385694301983291591302540667814532115741324490341602395635368301518721702211283580413909751912491104643983617265138045558698598601906028736336963427205320478928410618723884903391477923519382262331109875278087360409414327111761632660498529178742600189958915246632625034591776667627207446274940659905772023728653810055248540252476134790555205737967308706568478678388605111646173666603867647416224389837363601044332441767152784450151224504070864235399720650813927357638702614562893969722917442332946722376465299645565124980140914469555212196133591095359711437757028869597117683224518160602643832201561308144382211839548429958092519762652639754818404294725706488594434813067648528651612517048451966614505955760709823971363733188647571769641153838821126366575611887009068735597510196710316885740302122098637133639621774213449571469584314945948026753705633008651898298789805529783538462046729427320378232835062332949441366441515014668931196766531869412154078664250609219044593851703547384647062989378031270621090023389677902409260189442342478246301230965319554393574633164641244564275322473667932172027547379319065850797470206808047228500123000698612701124884277050454142650873083336054134536360490222820523182937780572037154082721739888390988799799760990406833409344412466896733812375867364907937008380710843477621587598733773776675511604182721135098248831231415656869669323425404280192892628291097005117744759307849606556964574430459463759698995011887397888480941558102392892518018686955947586881473977410945455352923007205915398094585393949584668075988918374516849778343846805265725911126397603381062810733322589393635746319186833157082330617138513644092590503795253788131617675546867712159666363225477453492736234247426774711346690019831774303293708208130082759313650536899629079271736280378492199960316574860207786316362227325249642430322309268126749013550916659489905318334291845136478669409299934554765697602278107447890350038426049397522816775760911850551055988915881883972781929161230367140800110138373759208326661074858297711166825636907028144139805233778343492045660301170000364180762884245514733293110287713491490234375112278808586974574967125411134154175794348028456714072203530104129581969881080824088922798320527467308427710730489754387930272225553388915312964321484611341193827682045624818038227056494771285953797747066363108696449193332468185324903323741512289336123951684845666507631786857303945344076270782579769459858181282447232485617835058971030126737802889853399574191148439972453578915567911685354058894470993552800794090758004621524682597710972092506226770074806709212291322799004351455885932810759989631632338598789364187770607985034941974579962500815203134840248928348064265940298004324765028110238733394634390323738851180949133104163704850290452303996697898919632153778212006448258218866494615643119555785716924567998777754309110797184261978051599767645639098448380057659736939860344577787072870579147181973255792401015669908745627852785409683873881284639825922822215551356850722471915182526512165487467773073827907803756779412922379415048481888935284741786318150615289668468702838773896564870764738997341273896629147954350060205002218106722772854327151932454549973399380132837210428020270993214100261738022595441256913574266226332761897744375909451763336794785716368621948561471237270529881017967764862851821405899017912186585790061053700212458642223836402862758288352516059260995630093543171022188660115577421686792282889949454979616307006726974927171433941044238957133008801473510867926229430801692101271883273267652658098030028096469929936770335488394356247160991341148726952491489099883414373539416934260217502384600938889289038244965385292455429894782273164385361785649071195499227191598501003980849723175466605662146689219966743881751824239571564660273908876131098726640637626638000865349812802148446709538785848261856362002057721861120940049009372006339128851596998708092830405597641873364172919768356348154189622051605532486865652034230805753754635196189547348319265521314997358586986328176229324921425592900582835252481956561932336880071071662986530370650161295254914833182132276257031611619236132579096516710054638959971420907047286676630673654252742880565807767167908172562593241585777079134830799356809393480907522762632214811597381137042461590808894545509807600549576176057158073201717851048093387680816735516786777230046177706738335505367788020776716146906026807030120725791413798123790874368133558511905504201997975386005363661916816747893181376534614084672765804156667435331593654274933236907481939612918469323453006082811782377644256232159692621469494510881042833998060414422180470150369896596294469279820212087479656894788092198866488029752534266714308759779959272070327606867681341868080991117932735431370504183619940071598234078026939092485658888142751115104652537135593367748330948785998362936633151666423316786550734476991578739223339030755509615626325263224837299089023639049687935520495072391880862971322478261818720071839740173579158010126489693366719308668021664113741779085531724594080004746006045738404579930186873652674918326347048689149866049824547480583854708599549094722245645708482641312065218342313003074245151371292428242055672826594980807033461579069238128392423809496923137008190869216174452578222730389676886167523538426822603790215220251050332424848040076865244742916380680502355610019757561504119926612646067521451230720069888507881990872194620189038780895316945538323360712678655303652370733784379966432803610909915634562856220023288846835375614501165988042854274840492803959979605301631153655684393064889855408933930772928424839269894919330699831990543767218519785500686491954455642924447054804258709897129673550908326156444500050049497260887057100813186133671129229099234244276012267015171893544129933487043555232562595050998142482758457658067231457199109521973305398429790937464705064534691599681612685176483741358128488194169674553902552970887072141784463781779658160194811924559673249748431688129590182252208454694952027950499191865837048553586517192363871287707356960200365874728857691040257605872986250563945773247864946833138594513008146160441719460496074037639558507570084574580670661382340639888538096494475784545068176650605061659483230106819396247309604273566244399541601539011244704729595487470552048631530992394340291275243615731071188232318944933295790904808669271313719875521516330318542033727548758478122553467056532193833118184270945240928813434170728874533966943133045637354572441792695113829124750398633834886804136304503374118438679250427963351610947091818134581720115255205890734439094118996921641513479300952173392213091187149232328894895304354838778100639362469987246715696387413756293858442774146801973791145655889459198896045504768778059481373181567485852216963836516084574434005828040589062397793659813501019721419730372846497134242665164512419227229638309875389260491072373867951180265087589170008425431434394608492717000132589398290926226596927034091039702845488773784947057592231515427144269182984363731270168270221959750483046393409013123306787276860150138820786667974196344179177815501191036700847044317872237961401988725444264380705994250318918696715715160599639084557047520251342344336827926577240474131127772116657508008349954253567120399945085740011054259749115258411485445272285751121179915626681080424761262731531380256027236491185076903374342866753660889710843502617112315820217840746416275005495106618133167753614668845403404586330863785626797194398111098791668506197345432384078832760349844065198676874325485761431494354569116689071884661541251984256872714247025245777954907697328060437919005124090941611976833102100589895312127702768963788148795091353490699982042080398170373196434226095817784741615765367732781091927950640870960961647751296447145853014042301311455417846934697437889665986637135602422710460397399587129847494019570778401024862106620514026877916641260621160728857214988541979792751191296637199906002903194390843750737962198912778169737163771639602997073511554051016004910171460799612348993756564677543709234050658683459639147488209184440270370591795152444400290964508719892982679475567160764853888131138423924294623057498124812615041296131509620551475997231345955338835208784118161471086770514518210946905697405573349131663191439003058481787823849633686972659843867970971677419213637113935080813151072938189900531399015282696367380609602971751348636029824512353905397416787971305676747306134514623704243801728672004208416391100121306816564329107124548456065577448110373416960316862470880973338092769112299127724357173633051977615404931878266409772350974088422355335278287978263552991086349052906486456463971873739204455368834170660938236394852911936231307236300160137873156490139070626043714583474653301631321330096746140566328333171104016275556992913560457361466406170919020067714989720845893738431473890007785267899507786497624046434673159327099955640874717133823010052997612479990653739368246152485440757363506613124531773578162849763711666818757639988269212621732601540031351993250630743905933545399092608061394678045291923094054418723533631306976904135347159227610927732577483736530632396102497358313971691963827269911260965818896244837908627504163381104731509699183223522010754732090606558729812414684966950492683313240999175018388727186007371555408742147536978529996047818783461421521575058449312743030245426811901776829917066879142835990021235531375617033882625021022992958444088805577742788321976878981351076624744644478351270373845339851821226428859300505917310591075873222282800055318658524203576910255613321391967449900156366429799295633867543920960428173986821789416909165495506665529436791933568333396652035628202552096338485021325231641913612613790709679434222608503339958574081900820540107191007255138393803409859066790850318087029554646849082581743885773060869047629262872006425885293968154564597117353883492481211909357115293199401160930015826990990240553376692271286021129130567779915489844392712901343665187149629522703648428718673987687365901661634266022497973470381616209434963442784671960968707073878199352937068065424606367364883657895378076995392905035825730642471462664228306585015189543302480088156568386540093787594514846513925921586536883887432211361367035009634136559725848412362767260786569752150669104843024273138818522771346364243006257772329648488164399987747561037094151091771175367573166728583027673905764529420384259287454968239933720800476633601773458930764206153547125840200184065852654665578202988196826531323605806038351055416587645589297041521384123482551688711791362446666494497981818576033656407234458120144990308045366334230146302796096541180890623019536524135050516225365184120446419186409132961191978445986989478724429370834552972647037055633078834810371124263132676313312366794004664643635379905024350730646968122926198614644878732574914072932145453971966332480864219925842405807979374908646694295649238603945569650173602633004417299936831325245425213554248769143979215743606157182506043856627398375539653195098779355283946273357566243776193353805570675121967915385374546938486865755383151440474728258130548917513089263422710131850648310927389386546262688959946235393269672186503514260193986484222077307662182903503117843178651269998838896125156683522176718889498552934655600720336991819672361598436054549738377792620523040841296301002418851618775998153131790831383386046234184638264507317573151893256939998241919947935175741360803601825364521644889395206970202630064367218731975218391242024438752042288720801472481322111023102416267815707962840093845570610340770598728027317942258446958532592834064492011793377971418580838615663186950184946976313735980748002505704903422302143138396120225138647951519374046500651803823005520205988130444149105375752218340555314012196645007621531276736008134685678138063761231488359193163017476370276877663714165681501696858508849012052446197715086637636305267482596147950780530168209377210208719539334604859474416044714254720967560172558024442977664401568446143676425127337416750168847736488205670602100261387110001797204834140207740069922745834049662349548609273942995290651274884109241145762348114848575027824827549478885668931879482005646893616333262894017307826292429625907270710010388163463097001609698915852279388127417535860197985609112193840982624217354820812539485072694682600539668373996621277242500981476415044918954973369860024460251439559486681956941074541452476581774812337104962139792722712362676145547140174907576880707546522438097301463311113514750908172334651572200512462746178698205559908899186423387915299001894113816433366471156092857130462291034549575369613394705596940338432560238672724780180039398167175389823568772083699760411965196791565105650044696572534405541563098226374516817142415049813649875048758270184604475309723527137424472980583531712400832545068785872865907862748923724608837669881951071848124113762295974964622471091514600642469250113286900414581730913366447677161851043273390073989631726690932058851314633569522393709711474279123874516948558593134749276389027035607704093203568285486799736550030306079881803277875996301706544283854037880739092601215038971172614624606143044484955334714488701021669138189578826919212764513077519706668008792313876474549872005792194976707538949805585031171261879714682461105845612770935687376631972095398913052199944176005588308969052310663308130641560408739656351325718310528181796950575822648519174330786178035029220066310661570236391245165956931047196914332824845974948414836310995985910189326849376214490190982983419664915817072517634271680864729690871306923992773305312053064761492910896022150304554536759374235500412277602549231470856522559556018471373883966992560650631359673219237020933446823306096658916447698387693655287065252424368301958023463564927030908624784250992531294252823015623660401688912445753332036071997946798442578948869621656865205438847788359443111900554937379066859726212707862197864759738164390888550307998500495359069319131387066896385463440963819209888332225074277812797194357937628671982512689107901600499423948753243441018826057482370197776817514534436105463683920066226395109985436514289114570824164557193503429145857419878623530043331331557343446069163419176199866095904302438154247522867764042549196097559426648779594944564989363515445964882649653975367811875481821116921097860620744955766302759803928062800206206459258954953292181989225603503719131475418251722533179005012533056135990559408945729472193848699293344522948717440974268251702694590321650016729967766139225933268780610707824759064779306026645363150207228841080795751956811929485291344658544764878038555113051542132865746634507439424410378638924128702932103746501833659768385649225953103890275867195812365032659263119405463679418577335010547271553538042906245592030811832439077678572431019286945416132511545366531529151575659936600389384329130277374821451955212099662050847156993402389720716483850877540668829832188721107797056098663819021974320469972496856077043477569610741672678373076652891578178449637956180824323499356744335995284319431949670652249437241317800319989702238331370808360375711252537459593327313202063556355555201698758373403128028866091829525288097706721031845565111271313592156232423091930232672540151372252661951831871806098476023714029033648963044588251660490615160066795724553918804251402039237676754886085167430476130485673887734315752066476773107137566742221189160157175907929612852670096824416055563245755033358886488064506117832945145093815368268404785282731060083141966516269356372111124742614786986047082346502988162748444946271903324861187359017311443591124565085127747499544659451638718897040287861542868962848823392681964113347359422985604566577885604596608642486561856627578361388487102918052425734795677163012494535590100393385044739060526632999184730169190760979322609445943408971209113000279880114402247909756128221411199238450774479398860061295557319594063149044894583405489636767850262406265817297240750845632626603103450382906255575183849917484387596382886375778580993393942693350003313649602181271522420000676889660393067628079519929784817980184503586035210289417686338630803057891548380863377148861502270477223648365669523062398143288781174266614290396176901133010852458740672745332691850205425044330896629855587348009140062569477509714373813982214200219176638188761533557333490441454501795844619548801833492909999641537923342507206864320778049499127049295669863477011814889584211146449462319012225997142827853671468265101954207588788247568833001629263306954204047583015026881677492927528711913603091435452846464470133745996249702261415449902886753054395416746883839301438569023370511654060447093922235391172406578419107089758451281112155886766724950642761455873170969379143051395982828088972933564096325243058207127149797500052686405883360956616250696460216128211261108524567747218396931086640888576348894250792088673259957464369913720436576803599828791178672409557373619104667751329640735056790187813756210358626364837292171717950982272934881285627133163526417952957696522791148921145766515065292920529990442684747926712806930764464497603765409679593493058312619919208483987849223412135793522783420023131454198822810342063854243314246063896502854187811620635444692184318089965416693691700964023620350839789941415974947160441994754995598949997595642460450085857027574347488955644677425167957258975994251439414074995711108116094692456139340228465729611293536479151395657541626133467548796427797909522128729940121575470935112922837157398845872533883373354016804421606728849709186397552129786215479912099055548839821175154854156093986391467359205721652298848647314934067834503442517618896892248257615411556154534668810394926775941179426407777077478828271217262861165206035475292670122134887248190211359001812358661810700741217851626937862388152802605555571665520642478888280239756410747780352446352412538052409789166694300547436003653277514264732896420586922515664703823398661891261646570226147752535391995552966766211211455983818175120841420761440957979005379094818423366632697101837508094060447910976399880650811491303868277560807342531383713193208465057373541451408834266182652916177538161001150853392504838120339589839430631389211082735512519901071745239058308393106821025776375947521923098487697355939397750310659305046296474077059028375214295810131541989143975835721207830604148932202388276982673681430443674446008076782535886397910991717588372722380948973714723779799970039831499072694532022746852623263463862647981885191716084911573881442257992591603295381931427013949473683728157083024831258215808680496612994992997546191618839744374499707588859545900951984819053584838820133256009215201799525122982070824708559255690773657819958032779245610392998231997037310488740677051077328362843582024104114298485960405673848310685956297373441438000866662331555668081447657155782063154194566741319252054596438784861993784405746017837389962702399491842947149640255314880969373955763558265084790369870459739555937348556393603724486208970800354678489751905487563815614714388289530485075775279102005712413737172982490369140671041573318668744230298058549240460504803571425337896087598960351512797752666324858655401342667576947488923365677883605328872175203680814785357895965178917520992970918316052143587525656395972206578005187211562063274577691965178376928047223261684055463397017137824270758718775528936091999232783293504895831228723832168410711069636799915285387113124165337866026172770739834473234841224540485380929632236007812587969134917765462901162403380247718523827156477206034964525509785527074361167442941140605219411251535880317346822732119587827847817775142308769321291293101035502008115323313293291759669732786757564504918285562267153093444720080602748555399988216552480965799902866018027646528449815027419059185273012015682204483321480021515887219175820039488517852449203680357477882408255311815710312234924833589458460781955424415437018815871122485198628050575285394522257388228218490144338155967438673355458414352134749295231804710849459157581396291420702208951947544335616112937077409150261472609832534664912970805834720546886029894002768537998449865414767201686107979506704006527264742594262501374016261311004051472730856643441971883306701609906683559829634246366616452455504601413692585723435680932897199367418069509415719637516255870180146879329525201993653667039197631421400567296000618583579559301113134977988304523174133216669257656842372729662193658176267066220613180756789096809970545062826958482064208435137076253263815951643407885392949019557458008960729641786809894283460563485426598390773139983099724965980253491614904360266910070852026630888724391864251767668370944652342671073777238373833369238760965744334555237920713535984260049057996419769886796336814221449054781320979369992855765451616943663110162259543015752981916382681181318192227731920136017171104528857629894773356439223698787299874639747511364910301577784047453699646305888255504922173414017673203170005183244969965621728472623967243902130924348410845669551624495069790578840032262312572985332202528375958827325262567409648577800269754640943275388134043262631412302254290328498092666213289503683036138820293282109724796535984430243894131565300238061442143522909318833104657955254723457466007528597939559695856893649281226194545492083008371938766066208583089068600591530551174723589334383421801785474167659057191423250127813535892025802086060198971141159197301035282997594048450771535661160956421940161560308811317781770076037713640460186363809782450482390478030660886037504460863777811728931020687853456657329618903850663617097117834435529120213707793850659265603800697912439463201965844812819182986822439753448244297786349276258037723747134466379118973313350332790968874002173489018035655227524529958519037975855793437432403532176906642075099220611531668381504056518408626802460442122928836965938168029983783630479232376048711939107469518840814825875704793143532450614939884001816334999828242713200249081200424498583498146099689827883242055742761748201990378257763933490931124679370968852294524287453513297381781764876416990056725514884404410965887225843978476961932906951079272024364719697746402292454787882145604357862159665966085063645330714070207448515084045703157186310890541600856030695853745155027389786284602485825218108623861321993284936507045342886328105393218205631124768359647410974327365380134513929216744598737461313750717646018511269095290209444415061992920677812924376083032336604807187311574190842251587222844492159778299144365611544252296090250438701925691810790688843427560742818381883291403543984852306834179353132807731729333882915926017276877548216739704627356935882509739751688956994879256747118438904894228704475469797800425098265324462175964239402598925106915130929338301918838661888315983496422987325002315166622749157031822526601508530566223982166770383295291306068585349717971366150670079912274356865243307604041032072906701251231779264563267824679974538408471443121108987694071702269206043956538544625658838376451192412843588299276814222695275663953059124541484489738021116781616023690766620981241650968070417540150385611718428883611722484532291709060673086838925193326118232473957713890110698516116343135805628327264302825419075366884722432551942389806624719654701235457796216214588227843225896749264432263134523493460036101820542094014217302560123815114184472616334176708509798594342560408348813967336220273223130518576040517222020945491932700851386061415113617429174086358327699945514611129539802804190338660617118023791828855800034214794648738442403972712741900642471662828401570267803031546218187833961150576140949198293151539803529034580613746861921437427270498133612209067523469230670222446275414652494151983473786100507555724241665570052426195655953677972113505252533513276970500894811912330106941169479059761777061856698652581879847082490428582109095549090603767966807993290433155741530563285133426049998838347014316460957587060797133620276086107159661636217811099582318575962345147917900928733242905080091920732169912925761294758624549099388120818135185019821263957645521902581553346342647997140265150881601783383355181294932558272497080862507889815429665837948303268777166470322035555482785348506997898993304682583005343867519505080072815562898396549061504373672887749603998780775387525763973599751223157239375506091005157841208404175309586324186471506068132959856407253170691726956050978323445352538386066777188720323831730209978140623486223498802116245318933744100849902812980882641333870857216253815324265536525743994082326961312396947514635060381385315008653070401162359220883997480594326385802919445713183809693146081811952335642680028799870487205859373590989089675467825813206387019191511521590524812230307543484307223043415835846064854184095289262410998819629260878649989415429315542858177469847204331738111819536387157677730383588073090353040846620344326986434623325732242426515436331567037924940140958777189734490732722306529683781676698734425493235632945331864243162271522261677298217671630538573719861048705473144950437196555833619514611982343961624458529048743935448052576648113543990025029101542351511321515852046996299258597899909655122403407996244597593594280415613353477781466036903629092589761520173513796650766921798176140288551380237472156282943994567771073341824585975272251459592586335344669449065699618369141109774976974564432555252107256146388831443225737238516019520902532146834458866702135662320786619137273875686024617182406299882840648533924445486371344335262847139539324841748941733559831554931798500707484888242104122612709192854820216752488265293605287792344106393563607940176014052917975553080429085781977980871931903414340796922949431657069108997799584471761614907372037173219040297277619367595078258965662310352945703091391857689869935148017284892532632837296437427884157918974111302363353003441629439884437765416515939805882093742873939665482786690890154897648841477928512925650925249016131544872946322457003491521959541648109773424397614357339159461483734853624329314867440056366995675650830185888190515762673894314483931712979854997135892989159220805691761107151044196313887258876689544159574289013178900902400598528276086266967027450672775843437613054066486412438282146243135912042819019728070722848974186549814929660070645103917702137332819378965896824616816041677001770499789688892591953793310234682362078666805785784399665694502698609001599213589286342686741588074402542835245636845723868075393321057566778646823078811297948863660783490656112744217073486652883251341695854292164950749856215810219838179898392839333549783886108399056209053055724619489767801800391518144700063641384501246568247075815414474289151407953441537201908466678048290867492734289073915633051605081577854061974508408398203401332801141083382687263070364416271701927414735557294447333502833255435737099562977062086572260798163363379226542287078652026807332510663711105126670568178515628957936064499405165117151224629421980676782354551049552531228245243461086250098355055436004650313547192981102936313625108069060419557558165809711327070638750916724683562005655922799874114319219636822257986478896607499049797852061723563056397869110673615722656401588084117850846880919344343624057652064294414072462162616584317897443813012110349621840977535337603549907822054331293473876016107975928305481685225868354692393242908565665283455231168339372333612430662391921731762820952834979878384130872577184627455829514177157808097676545796806452712859157710291492609845954682085257183802895279439707413008154025608866119969307015989105731923026481106679120716290994475356346414173658403067698404777768602184241436442261719310402242833859551234899716987778957945227794381485870789385286480439562257500905102574538402798493555866818501461662298935346286946200355886209763708148127811349728021010699957694758069340549032695283043837024556035184858018585718310454887650932147900733165174443803449767001699454547216744147742232492369662984150662014767625777720308916018707903434991104517206967571711468808683970380825376449481179496077895661116842543896224370007493419441847643558661370678971346251554769195988817853001518096356017249510995377118272132468808708939488307358852597794709216729996625205970394319436998489082403119350303765658094927428350996427638896651201456902339425748987466717250040720046046768776978529886656889541156204834536229982298762599320481690267817179784076332942987564445957707431238304624109253862779837810982321628816013774170736821378649653805272618253816185339997466585109078504629565598724341373470836821606632164700018842077434765959203087111265862349273766223998162773913315941709489884889738511431155546558496294372494090914943465439554664448752656348256786690056257390261902517648302701435950798128754031986917480206700172637758690048073953786233273851390888464847527432344257184817276671640612607008903376209607306218157465882133185837390707799326731646491008094946169392064058758036881720817316315865127679037300296123623514248551298174851998090012969781012911852992009654014432993419260612957265444559508318857767857430444521901303124109338792296897540488422175081855026483779017352632834096081247552084864689114829756197565234578291037710739900957326242441065202117054156547546945022494532859000247064391915249188875592600493196912210538336406260608984152702288217140273126280882850272502770960557908383881600811916071185188247245371022382610096469066235809432717172795600928713148834770876416374349126840622919613477944205338711289334771902822429724876612361513559226130419989119317560742934071389974068682709325229815773627789138002760942247822608401848893856604996090833839715265376613168400282630683768075565654116663996434209239209546378719368440024364978889585735231602352603037871758266161546272083176372435639647976801410079193732916331108534800664813319869693210802644829563228828740828536834040816693770450928643119385811146487411597815333274463013553826003349016511135724549111140256954005097040368317582887122641833869124892455069428006166879735140919372687375050884069924089890016442493479366131637524189909770544366102813503783413115010145281865442996250114009649755796354956839751556477991122075202789349636768735630622090000737073232704949678176861457685843677240862138139182312540461637312898243741420155504337715857295709112133257415114612735983120438353654998119840494122470395449172848633211985077201246399407700674570426839938743321813722670712787560265356333241151165742511081828030664352585729130677400932764536386063050772900050050695871417373760196997966177788199215359888167282396554818589301262096146077334758916856781796452920935558464085449764777356835735608167101717068316906041057959320710763882547423804396642245289149878447316375859018088963889519389398023534466188109477028859181470041426961005827553332148694366289101249933582482648660996975111499689279471901135851807387883616499156308422426322270424204624020706731214083980081240592550373584616367741798810353282914826901637766683102208925484678841252162980809445057537319552894942830336590111304020085720259303701718522034733153980085897536616261207575269686774784580019095350248454089667229423723380168728154413374008542219886585561740526871854484306141741350688187805121378293768183298880757841819788194773196540012929314837705386363080028535972060077098571806979298191976014491805539160844538157112274378986029459854873887584537782506711365724826749579477859505998104797631383052578367224655921840700646811258675541785377149655394614583952213889985820416715252403311868786030447415887252555078961202917980435540125078225025988000876332505955112086665759848911000556230369996931640334782690614877051844224657463401306187962874322794502187566638756811136660983184775248259462009048335561935894758511825938466928453700780441145193611355379382868005559333966014104192842863457054255483360947719450167009976570215327819411997947489949232248190298150565463259335835175873149288452311525469716653380668072642957742188832573887953127505310828451219084632079470180146567458633399124703227287772971969752598992492006572661524418513555719083815044366911934306882519030663497706664333254955812971224165162173186204932792940991118257550300923606067980250555217892546734781193660014449914936537462280384267000386207473008721017659862611120437773712268062625301479146008185598114993769261022433184046326754885590491867364641098812113178195624206572436908820562189492784861236582199046426346341263223444949402586810210362949443869583295689826189488398437054923670188332759748308543550180014052877224910416044500456871164059097776090503152944088429930594324992717272372024057669560448878419171377299818664071105715456886097724117686109464876733833027629164655868075360409916748671785708612833603455776172174178528244316374508845414756705159466026388697315338231423657042944302222425866934648122208937945356902408737455432623636066536533274691288544509421045617322745969741298590854930742156397079719011261070853379717550323769147463166648827026155472037652832327031330107533147772726211342935485448070686846460608655323359860865062979660287552002561108600460257982948688797587207161485580787835704045474155058518200293462554040779039168778125726913692365287483498588091638145973138610010286995628910393203208151354281469552483193712661337345231426727874745754186233741442532680920238298527364499324123071765535124698587749486355187378263017992836696810817557357393918994171389469341849020824772797316657549703939371017271839312163308648708083783703859215065803004066073336633307019745116677894662561953623649251137998279431334416155842590463856334303516207719857735101097019105049010602062566586043920344314975495117848050806519631608101104936461396267653641996603984509887200996112137867821983696676223706669395008955584290593217267255288872828844776680156585022103940878609476347483176380186311273920637061503314339929929942297088752940123120989599453198539042298894486418464381723664979297861653555918336588040267637804225670210791516903447143256884997446769604040949127969551528393565281349510477074581569560333389118347034574008725588590598532135496339677390344788823163804422699416569879096011328665000789965292093159380508967338116549833261987279523890159163342256681706490403749503054282387467898202068332147073208176991941461422017360549292202053161702856601821284057460780589901887852121334569593047638858152831923215247903915014276846455438457865953053094684147105383088107093294498995364656433234707319900387192254583268754765909998341843789231816064858591681875417615605026375287921497093700627013237565636962221176307266852323401921677946292838515652740368451604528447218931303805581897772670457955357985422247150825569232167233707316458219895865056014421053225104921179565550905843127632343355484457344447032751167669229909990730641350534676796028392329790219809374592300812414203584082477957324204756033809517490004949030841987728116861679286934027969115572778416983276217344015626270208289323542671243873334559279296022717715006361744579003237096184707634941507762220113710351924312448558772537008125913135494885916034213479461789391804414978101408540463283948982333870174015127017782760824801406754640828917594384467321729223857028012931936965464999719652799362700615808301131124548329963512561614656155941448208765496691348079977971491368837885558044404519091158528168483900189197587360749569348739325324735699063021199061440864212084558115145965058133952139640861207739758637879384533300390948220619778995921285959047273408646800175495186866298100852516880657362720483316916111911547466350204012014096166556980144846564961499746380815458695367814565851533173317865660881007341521045865581435370389175328659945197412751556098710602477990104663364873868214226397252237066997577151176481185642164373518515111262845023471506654827095727089399815758215173917286877098001871175758792216898780844624051213044462369402442439285449486932677087400259148873675363681041071378820867759580787601175793977949278571382577733802800326728153345274057298164457227482876114140842096816438914658371640502843041940565989337953667306348662928270454291497550612409373742785404268109755869252021211234429654012059853557829261123156721039536092629566788587651702304675460540344314093453243836296668495404258260430665508956913659711358700181237846706201889506621238230994761985851278130240011756981344273964831404866021060934311877603859888225557887166347897378064969685203400378438924837589036149298964379331247029861614080615301336346705705528817258499444316729662847822098828026760326061740908243516437214081472991450507885206000856374807923027421218168663175379107295358112409198072696856743229646463046251073189608910445106923684394409314521036064666437664222775283911862718005971117058214787878432552241328952954466654450621361026910626054177288733070282778803339475634824137526940343120645420079378942213769736873280473937923851260940694082605966515127257603699933531059110697242101201060309512917583615823016550392775707885696628480021112576528734791079062721861362337179398258836675596027840129463951169288173403957821390885668631842042686542290207546599269867287262106161829533208945511131600684963502608240090511616449030660570578838731983167315254062558865156205493068630547317019410818233187275990144991612451407810710670972907024900269752380567345869691441205243712934348847240110551991019267564551951217845206948962663465668060041833545338223208565597618320872098744451563568839174620491432940864952722074156916812492389508173471908349176362715147051732910628653091333228021211735987192585580682461872506112359057692586939812910647508307447500571793783728484790565315023491821883502830572310740791581433905175154098248784236110203520383129560053273192504890801031564263561753495212418177360553877605693419991206513221341635179233905175345364438067435951705011967258803096640105376959021049567701776940562328937782355932596154731113661762262396679728149223622496915442322279095463821861057523863751433729635960300066986088750465282714304148988472779384912962675880668341132656707139181144380037053692014883035876054542176481777524314106783130196199964822671702984414654832577782091759351244047225199008356941924527173495448459821213738809005051431081826736769802209075483211492875620373318306490258971752191904957758333607461412711862045310152163767288271393704794365491297383905235011915673106951449932899193647748113920981282991723654274667254868530645136654818864309012384174272471353863553897598287647398508131905448164808722183491831257423820249330890132977570835915710166459003830145072937636788499350077219347330068036549703164734526328488323172423260458876957448146520690340070431529650443612478387121562075280108601278965893720714279145903369927834509823564511447250023388371545793137535339303520911833727660033755594553079990510372173224676017666636842279908292688738944677242321470710341930931395589674187495978640618008758902255044028344730700783000455330882041428498131156096500024966384744176460725700636379535712294585015352615369099379304934171388806418565365077587563233569334097209451503661841692773818898181814284453311507639116458525841883022375554832646210708996939580016648380267478737705279530878787792654493195836979634210259843587304925980469992536435808272893060023877288827352871288123343372513728754259752467033092668417275577153222982515723631652829084737097474516147610742366471489803097934115545163011244766185851670194371090213478418475272481385148841632731084094965213780967541967959882816089333489819104113659542046520397598311081679140463067316657338040363863626838257167132931609933367739136502173196684211449176124022854492097968310951937685072723549850438328703663324787633925523887393768031434455442038943225875496233168198254951048385114893290396488169643857688128160372908695170134200384246330935898493491585471150663520931023442153614941727794042412638309018997162897646902375924834835624227522598795648170403984386799636213921664970406632446662178271623245181942961154061626054905270305441870344378634784645095069413946446273113213544653306278639437836504448823724495017108649275388468691932014423168228940779686865371261574615851073845446593757842974432253524535415452490359893437395408885201726557872382936344736938018316604514318837717037852580620140884215853771018540638088528688625514405237966681519142884894843828953345885622551004976672216827364497701976689261612737547503285065393961845287946855734057791029106756724410744659543563928243650812464079955245164616590603188427765069176489328487277605496752101283654723080556042342992058072529674422176255286202539997196890022009096567139384189976092537394654159831287861941775391911518499589074435583485575615790912236680175242001308648835917415325014297697027740860396438019775524400840078004104363354070418729356767060531618499213088990501442640562359595374317264126731458511338105379569036834291565695745972674064738741544550500102052262287545881469420598402710456806925185920301747321907991491130346420206882302043723428591622263419380843524055349509845010180895418528199300712537257251063889911085759143281642319353580597868373792768972553467236175569171476283910429859197303067636743660335183598440887651364699425491165364838950717606271565003876141532766199456047627443262468136425394132283371056207981343433416433683889395003157027666535777239514809448332555206759403558489256027785509350481872371160725793434087064050627262661641150893309790563685631797419137150566631393770179193461842932766593452780204515689294002326437639450623679839837832150123389251971861820036950831813841543428917082234162978038933302181609574702187861242949842753726623326505012152112662900747825934811660014530148241108406380963126753582475953576207665226110057288840853117184938264326883794636625732396047662323767628909163301613789555145652377958761779703953635402159863604742046325427105616639427954957063218241763235858073090213275241675023418008437860201992212140519320490995487611799493992286790097759706176713702791378929573080008871273002302586885256674617046807046530263038246590541097757943186858642107790823947792299350496028234958395025049413413023203763202693270349041009304433031938402369946660373423472440521333024729736701278184744950917105897221488454510248360600574533106965912646078966194815238559225645323492069260328666742601318650323087453708386190824887080988409289851658188570444620235031499081441908318384464592999675644335438868104700466956309566873254458074036500139802690647492196206102706461358519313607053713163977633295877689124996647051242059634604258467199208633448214041519147261611392325802350859239762053216127912421091429559849635981906527945901515953039418105169882415277503765116039645955948058389145539582719238397731203452938633626526582172122763800257299285724331798700941675297732365930538722146480199042873210352908818172395977695023683533577362286782013851884293850663996948970675248146396315148471788553124482987127681599067459813968293048899759305537692387257504127718347218078630215908066690179266060621895911592485508443290196025262518324681332862217153683084123966506564987230473279370783476515683457448574875423905880472004196041556206979990774120921748432080739523183357399919624381482909792008818431451486181198868486975849628211361563462026424417458879212877594601401003261854633300298986882340430378632662186636920022240435937226767281281558457820243597114531885442973991533703169921172209329058160591344665448174254265871972268842672347507082012777512086480392301270129651458417184365633648335104061288073287881164936341176882914067575420928675512047351116841100066257636556382705064959721267767265575338860528494398827945788502910820968345498760068405290035232300307108836944048584759527978424148198980413077450948425348510530144607755688945773940372885753301386037795760159576625072804489141388912784253738113721532799358235419176611003250197541851499976726067231643962341326203327064963821292182153855945138956016582853764727902059145631799086597523747598691499649302628502322431011542515722847731829837192866137224682735686323122749103838322138306061804903734259878924357369405061688231178723772125694756468986378861260538337698146504266129116078692456852786347734426982332622104507894648845418344019386260359539925153437447725757554499775433521930037083546169174056141159467352163787700917958455583887744775726433262918241328593151066776475841975149610615858074802340865114830983131684551016232196717509942933458595212175350315142884661567321776928668903090883175323064906565940423006257849366866758291113862710587350965854762968710637606159644331264391041650581834179126857153835795847827265424904181636572916048043984409116026696047719173237013591749340444340278660253372401358739326236289598343233845841028076748073556583867093255726356258984829186236991322860429709488907834074225476941470317044883556981873166782917146249282509807038320946059222434152543651089606505069078608962599090581982355531656447323032784410715085278137602219381769844902544781919990550293765193405402656528543265114659255321061476094622723062497168347236895129018700304539756908141529167510936475944965027639602594703038062651215632180618887860724167454841010567945751854013023490522928273111676288226686410078551583809688652086801692065187788395273012537625926066315671752345497056243298360659320969192548996056914462387944867565993466339918340252155936476217784199740677187748462423218691884608008799155129219580744212570887987195087901487691631282900900830376417699170518442240476559618629891025476306184466888713071057769171250299628767152848624261744447061595076057297446788187663209074572815940675309311819982491173088988181503091696407713529260112425886203579036709061836748909966653576843712908840991995145386506586926547607802801412974524560531430582146853138595460590304721768141590885804201492517583677311119672958251087052690040387875260480951247726675173791248890027576403135014837189704646941721297170904781492304967282106895638948219868355955913501813736836936267019904076463701866693088542603018432297586410126792073260245578212458261973151451494020899901025412236784843150638072425832928734312221966623439279322101734732857046095485066949387072421676012823578437464368682187617885249732400183136133211328120903674231293467896490906453032481059195297261618993787495086641718900083737318449786802711760578352134529238603153491018643348541459278771348185950904866562723429060235203000456029561449222073251777866308737512607423056215489113756642214966299313494181988229621015609183311579501606720381056773244863122447161580688011368235802319029991528422047575440685602582318688967141256189400199530353626369426338119971096199878047144610097407017782079829049123545255782924873060270228903755588547948726647306596285963994573102537293963114638717511261239105052997245805942797394104244001248229190796902711570217621121753186916637541359893256958008009975805571699916577618598166633905177235121694916640713591997074557921628678640340885852463253166783897887069678439637401041459060161258544138246210910526032144787772899691485706819330392449121994245930299750967235765302145626531472001602859940778485904748149628639547350425758940241646100216590731897277600765998080117735376647243660163970693896519276253715914922385909145012286838094550780086999619930313903623278371270735422797270419555490488083968681086339338422985677592153595068289344635389982371660065030222672787151558970086063072837989397470422036512885101351511931615373481880172157086953921114787497775786389753283793792165335874480627267118619084763430384961527614985197664887458195671485826525461420940530950500774714787592618903111473028452331211227630583113694551607003260781145623109428192354780139992014344948587865806674933936060566588137583837748060562463721824268989246184725346259506545755979299102106922255921613867152800025457122436223028463973400940800482082701162774170552440912345053024843196612249517033836071140388178904986515797922104102630862318715056246801468958609128086239785937263222997277680369514788952504310623977927267194614799778326291547976711242437150931556476261445593647738155599465932714769455345555695631191008306925835290172640402441669707734015286734480962232258937637491706930089505874293760918853875313754046374850182550331682635140918286009268994896876559787398385364519357327216908802472578596339768440664461577543056094299941860873525025599050916656245913685846775477493836813199706859866679675193988960326950305555375545243725565207798255815546420383544159801287423491053008080143725606973266292381542480078790320905584255299477171904520821118517696329659701358178719471573697059480842634760289968700035309011542366903451908626543444536049948373101262384335291730383134160973047268859826796899466408316549285172634930221345868599273988132618686590895145349072837589959571401871215980151602573545277626310163321770618249548596107552795637325539758194471064746047232283145980987032540697013804761359067317084047890003248910778568160787717636618773454649209239749900190841455848244127553710782639937299411308350477165419157175094264566622008488344981825170304028210726061749702226429360419521981106741646231090157598681024230022444033504077885649670313286312033857885764071243943826409806142137561007273376809105026229500918481678808576663144711829871505281256622456276085720650561188527358198697101483032380205546480570261959340891095295553019096594911873228253914448323821970576109721740092982076146182061026659690631106304401545472917344123833740546215751194007516489576173738270341633304722110063109400135860190065434310327311010173474734207740610375263201737021816122362480421316828119279505687555989031476796508605891884876716930215334276704944475095830487874243961452822275921762859850933272744303086081576391064799824319994920087947481071315442591529501398535083300026208375522870872372281065176295089407645077776225301305576267595652315335160839586674335699297020460593144948537473598004880905613273470118918696293035154426641591938920252348323720023483396860655593873287870958920703092352764093248198150042770310053784542420887779292508281174094077408833650764456836788415449602649027591802988347014398388457404077807027101418619149418652269516644961047113900765299383674582497149576880589397788273310354105838232868201234866433174352485657712107428678877312868361335838414540626037328636169107389159303156734023673094601358306474845796197563796832225178363890214425842950947127624950153890985756115328465905145661227782308333298532312517107832560252533253395031753056754100426200028242001773501046891991596060980979707620309723104322124633929475687137756246147095835343744643277831119251321657565109320042116988223962889092437460694158223327331424508646982211163468091425453432885968132877538809600314865054958818291136076475801415686845768071477686196458207015779749788030978539066034713434324781805005746672751892558989178484353281014900454100069346892275456533206940629835150054910962253004977951401277602987052942339773419588632152338820056259917686941615718596169994001200302286495002704415348811310262033473903958304580867057228351875187357225089898723422716079087243224692540304130453123431503727584211403630051046436525069820501993349386801689646016876804720533658540873726949176892208070905259601134671158408187015106231408205073306066086331555365864955438720408462610331033614099113205484696600570910118039939898264380842220331267877622835306737871037427118841727826876497255136341396821732873345393217720451246720044349064888914354697800474794500901667075466672762866748317594928766881013276024457125361198135779049952487363593412021801951583634641941739387338241225690502319834089375586328197308354411556610137813339252760166637704515646125817294523148462525166182922420881873509264369901354469371767202473678531837855638835848501953630786069710082832581035358352178632277031528808793193085374304580044366685993378938693337332789766352855723632497574006843870945295997946217441912031062536869154921280899551974201199136995673548600951215853764383640744578098692876478445208716000810639796692908159721392524231235351482408852296525285984452872170060929191940884624333859574014417064974111102973352420103897344498856823531705768207640846632269803216661683612367805760852746382468444566614111382275474579257481559057254011887580137776641960464499014402619582401714797271745806013537915052637348290078204117627396342451020049796615042920819749260237634648822305134022944548036032046014759686004777163056259643669101515287824259243212882698565519918729889931654423176108768373675470139506374328658987436557328403659339376555487127145443329975204761400288221401875358983276622235198910755228847681424513750826805000459278371310042794054681814908205000479903512403865099243246451950731156789830400114679188314216103465485330175858900237457129064782410991727750049617681713334955948959008416863681872086424374684379300339725541533737269434789578851487851505492130122858154381824169932321903044338366881015504476050083450908123422565834450772796268435852782498241195683831250395962064800853077191348665983314444656289815021423988155602721585044977120248990560173649548622118437950415223774534395441283374585033907421501436211903778773996159076717953611888046709882870575457723181137084991387929291483641062189595615536828866277090740396318100331804241982115562065011570859750206457955830561226982283686118513741325971939176699379610064624771034260328799441677812851287652183778655838392685612246484155653869785330816849518880814378844216583491999697140385814042296614549421779306269406050069377753354231529872522453362526033245690367285433701148975742403132668840365373328538466874125622664655048247609859598684731736990189398820403007352866674699187667943081254834125640912687779222968277517722430878697516469931259662779949755649521280334084214120889546952422720471346223690982589722481400398291170416577796256676865954804172369749303757142674858126608022112832542957980233511843037471381197281175986729676779625422187923050442153733871982737426812739780356755178270468494442086588596029534711480869901538703537634566180202007600086955075661798391037899960637044849686312417683255471490199598285401577938085211015434697797645774035327612677752532146060536405046107467068029461542684878433488331975504106304379173581265185885455484215388075075610491756846287090772634753986760435606421624501926873392913600881568041611507455891935751115080429574947291284967735482403519551633671842270049302662200196606843450170474126576195437293377156953480341871467131082198535923193981328053601841424645255941518121571914434107375871672574420606257767166740018657357363884434647340909630049298638987860310240966171689455852819087193678528785669901919632091812375316503663978079092527809078789622530696413677385858617038311544356792300310215093925398011481982526617881731421599615134437389945120074636023515114177308538539932637867688796062539311076380823449961881574802710996458706936107556848389792356675302098972877265207841713267147002834691325773587628530435180976359772780362624247763314347633103850663449230908906458086298227189430246034208818170546371281639008934892170056490039763203718037505745413353560312817006420966451138335711399410532931359824870680973557063140223585966885419354834874838201742843303648480608712838060872429362435204342415271795661032019093425933038353384855757309346756942671070698375006554666046071595199396528132351697147612781832240040170957029899600699316905869385459066316602953793678874902400792269873289765786463679742759888133787820469549938295274401497341646298776071872180421227490410911129452904319851775210538121484819107457602660494442637881203729466207519296687585826164067854911054405815014865427006820257821332499932144208510752283582999649855187220999672455387067112394178844212574303704727599435748657902543952597312776233426599922860478024424506480862934171188780029228725498130316868791130796697448950729295638373565516233228500191164420944546081370111066705125461549792649712750010263500078485518343077053832624549408870466813190998048737816359024069634519112722711464660074474751198432902833056781665707597823019120744804739380468051420091363127828821551716734111111079591133568498005753290370444183680252085123623571653827057331672157350517030825866203615712024113138384454635507002434243748081219506015875593109483497966035055417391299170775615994767712698573363969165608083031368025518470366403403470251065376773684966753827653682129073434491933581950024591787717952061808703511440135891458232938070599807034535283974053804658087748303823428210640755283017842416290900262323962743088439385925513387109100284529269781494912414893389408572102749642050187011287350866825453830174724398978877212601716532069502212216745386394024173175089639561689330741006863097298354720089965821211612661560106989278220711169483673289744386012675196732401869299175505004278281436023996382861499166891837224283733858583407207839959149089086720824495981561262567795143438818547423245838713933587945407151112407169569957452165764152717693199375574739601454598989219338669002448124757888951740471140469427044155131112926565202763056343689751891187875818732012612782349268221855209405230319247008574216959338784010555960342076460416145117837605621709979645840265961619114271986350382637824525901618569932756497890705039236745445120145984708608060538735648409508178293504589903733567040282446648126312975005359941974120030149575642386065259726180584430977515525495146096706667417899327711223114272274774984620293929915888748874497193903927211108017781257192580991308280489860399744109670776783088384158403730079676526990395580803051826985135879793932439258600997968979745910398152734001811853412646874332364723648189801483532969081459321570552537600031782204483991394223285748121520593597917533367416954424879622196671565690933667465839383287899433316384917241885067893280307106010131069318965126828780033298740691457520933349644215112473471571065261699787315924981160384779599384982869111018017952875166026048870376544847752508027718288923501013523748723285211559925754611043359294437284997588001343630850067513704533043101701438575866782472096500623985234909783264470685933104767651269404630469998460510087768831563006210407046067087509752733797726202737796667616587467605460084009250500801267971586803268933690877736167885842194900744633201264231298821979573505720000009608053527790057846342391829454504479907043522300284879349220393469851835790777464602910470210252099561720358928018740817961430281819141058709825137201645668147704313949218351873437831382155482801153245326199738299972605382650406020469128970099054218987830198068540335436340622849125179815959315099703950227869019332733959985898164851743408922229902461306127544880089871753036642647948767790117661721303683185799009129218537467359021234631094024858465667385503121093387356139708499983665104053674823589751822882384105832785363648086522816533923320146987761391422426779825754099064689423434343382213899899337619570055743755830830461735119564329774571728751621814432396166889460324978639710950020606360667369203644611289906946030366907540767429129696178425132348594457910829715035816408815031836391045151732151984603112103066171346363778495973358151769067226630226923654901734529200558939867163025791247058148541718191232928795545686561666474788409179401340733569380996975533321139047813793502615188952368696176624827450686478303651723872728818752584228660824252021858932370449924181914398849068701745060021560751915041501956861657017158466649229149244838880032556329160985166501725058068220203830902078685643416051652918794901398313645003215595075433907083941430852109296149279202212219508471978159586982013109801943606805980047981286630718643002783485630447490265622745003074569161503425003091575642881585181815137480776252788285333852765892286543192216112114410387996539422040896240767703220800503788717225540054039256185780846795286795246110178203355656903739310486413347443471063884869354430708367312656647871234909754614064749118852859337883093766116542171845991051768028394373941002735715897522957003287388901640497939693995356844538174143789487979673579036744691107605412999077423796090535431591877537632236100267497323975458186666073158680986411340618341503509337997550430636512936787188224471776697657547220238323705459653742592400991810301420838821303834588875483313986094512748482046730635638922501019973640611344215663179319480948845261368963906333161284598218618472340391903258575684198523277364602980464793093966435992871372346036674994590911983526633677788084060903609839078926129953221164125128663916752352432356940268662499410950444692096878801108558180542347386156379467329402864609259970273007024804928470763973734429929016794400649187593984088942702650905261784098151741350967059491181299433198628582607573821943242824312586881504493305755854294181410169793891481508658552965599073963189282301161776482502065179988473976408520386610871834996657033372472343694463279435979196494383717881487372095130071283427973277175384634650332805678291991213062508653821760619147738284877730430244713867062890761125219421536237973437882619431783000360279852086839074029129816588860580261843199592100919328192432462536479211881151130193448649788210852314765578805092540561064373147193093146330333768681099784485697243291863944122145181642070237172766040913181361822000844973663269842842321255297986995732229201954391171630504736858323662051295622494708126463731752773917997272920303126446412559942596159542802357688904207644874003700977905579462499101918990309991519174342408947898580830411216880814865408022288715125484608016572493918114450815996687886634900293957206276878897187802943472176174615656232682357145998177703639802166788451838273887528715871786640160021201133498449478072188566910960757834965350250468844922062654448693890477693469017461093504491118165520900355468244538935962735651535615160398052198391095154080641799548008025329783552325420014912518060734624009097850009707259946889371660401516435576544399253409439860256114372936230735270338488439316698847898256420033755226260497685286200136029918912514734422387773584479821529122922958091202788699334590308254424293571480201255718574417363412063968492920794391857838621199682301919265737849353474122617818736744985372784283000626545647392813151694327261586622420047173443507808207999962025882386026957569969810715833719737410181550033003332233230623623848027873142031149825027997347465506390091734453314313727329629771614841182781687416970867111300969042379479767193267165545130908594405147368533010278555844479315386687904423755585123332602958740266079426385543842203938961423095722926065010240776875204737583092270719195442920124271747136763186392341462444979770781487019817288315050693145936079724712121517908384214196347322237316806040235603018375849916686743113821065963216157646517142370254208786167598575592903540162018815967958677653882380475646294334030089239345341795601232816189921066593828770720015601884283322333808397740378394583790035938344428244165913514406577677619604416271272341435943202458798857982076929888416569988873345847805521901993356800573602000766630362902615004200323362659001046001001517320272283746175067066824472686032633982392164884804706447665941121515582548137254771604616961229003739361918564587838005723984748119728269028439339107749062255148232706084990082567357823724692283748096856135838022713630513882626898818867337511012908979374324582731027990805400802058453750348426869693025044189247434835487355560729021233167452405103438359714838875603762748728244027018954315158772400201569611032642032396026641584074805322554570566291488835391632792042587551903737249412719904908423296720590739135462803518631925710789070699020211848488223172324176938295004203090415616511131050327450363691539619988314574701806890086813751049208473901151609732168966138077263623853307587793269906964942591083631322578358759756198578229331040327555592119638021118486011629540141917476531922735186098537335126489340187386245640021590744353462608984362653908341183902930659285528481182145574971773519341831143900220247330067778714849223349679853413532518027275111920380426787365862825217883159236175495141671264863707308153281691498173986649401746716549249804781122175357629802880617300419562036545688516949218301347305431734206999313660732586515437396387803595348328209152116690801564917566543693927206891900674417378203300635768108862094081162426147819573204009502130340385904085122011920813084479141266952583069244245519608906880409374450638472367118194886559410648780076859775496588509915318432606505457242670228202731797781636071186326353959811062004920585214750783679867154367795953301885138621735100544839857380361431329326935294059791333513296833078076331973821648134161094231161026663066286709498660709922860397924018280184325381252805802522677039976355953026272362640755420457318964473397555918653746974327517687117881780294625489733614354668956052842182565794110228412541243713080033315117670108360298265811365066551137617796839365970707929399480424561651756891680974106317040312332402999825284593057236911502831930977575040390495494311676113331351815708025754588692458832828108255439573785654563699066674529239225466650913956780615021676883748586067609071262997602331983793956361202892449505763842248792676702266387943498902189842799299717877370950334630152419514573260760669186930803856989878857131323596824586077567934483836541457269378713846822664477422741469642304496004291572818224361914424214270511049033924802641712314099126366203283105946346618588661742707077417999984997929333558287295489999299470681216761920672450649869900578033568605894124774245061670188037172066974996292860740557487460855454048249022809196534268259897535745134498228269366654262193878539587851829861803646021680882046281881348345805692688765187564622865648653384308859842779417717617122121875882495009630579933704579318742197594535936340112875972587810271193487040146811411651474142558606343294434903026170548433113114494746339371142560903923802860261092757134669647991535843533464608803551544939375584742033060877189354190183133208759302124584110435711049035922745355365086194359298813531452231401606191523798715018910999441799135273570619740425594080905313694766383868268223304795346891413664612178338257837055340773396247190383418425739704178806566313689545851298195776457604646755083204042696350116661354319407813853100005557730917790593499695865355191444635469599157119345706472665255169655607042629905935168808497605906607245695951907873032737267161576847676082579262777176770095243608672772168682868798956293498485827181652192007305262257588316516516789890936116192072842736872852046694246979606980636752697097803602573398580081001706730353074747697224754293125185989326684225598846529165847384894121783477104025149432131893093468691984969874825606791521757502195483362916541535833932597772713638278924749533249124425307744236258751459458738076015812990032415916855955708355185764967035814892675733556428163446542810623421461149602774691894072661790289744131152933022829336053670486371921338202435596613544937838991172804646539941731818896136082404959426562054833815061494704143102276902400842236883794646990474965000861060966406650747120548651719800279590482724516007214571902851120933350593930479042981506502010930959207497452453786315831560216167485318367202115525697591738070151839188323540127400294369979842594397325228377459328959309349083038132248600060038279221690084053807621226895422121164359453039570385155556880336995150813081805543134032066202315895554331950499385497442585468694225114018502384070132414815154842716834531093738801508739608505999221006574215797614960000700930734457400908880652568039754347839592274942120845684489954749172857435650729233301869287939514994359183208929566080608791902628890753710759849837052051252086278113961698990977594059131512084134191930223243889776236918641023845667588154120159663460864091064689340964743340924598998933978358887107070067813048149849906810324439541539372751681832852951331103909150254242648239323767936427597908992043555191157029404547291107390483348174278750993065051783863333460658202109540353985152425037334171845542879181491540753006675581819605281736551075812577355385248327346537374385259161310421631192301284672915715220627763938375400207764399272858627500934387370090363093598620791577877904244448074513272412923106325646111443560439794205441293535122873061764871951839028629867321041405194195874410651021047374378712345581149425843549506744878810711702994188515713453499021398184848005081180415291992011898658436366726803042752889859695621002045819344249494209995770568578435286129510277519636088261424340901045685914268486761523148679783496653603986989309949739606498476918534571062685052437574853167078153604054886281950752727670334434743553073619954324162659811439848837181242400933739845314484479322936206384606896974644180750924275745424771641480717922995837180948706972510078109284927582755221946887674522464293191698189480390393751416031375804651879432971224545481904165259016611249773225764520908524362124941334983472897573752383733395097762985422331757840869227920705056740591672801319059929609780161463664349090134716327571138415950033107386522972496276895329872194116162643782040930743228740100764372434806703998266504596344891231584549622971203023357615848442742315577874378087134053541686493433207856816167662535718308393929570051836455090267588214867169447306222751953249723780104155806408487385561799458690018727261340998839307685251592613589103273892802699549682426385497337568894464745031885775345578381475616370734805318624501545011826874147461292439565063911306781186054647403430670612271519557764164700123566447479559873305122005758590286381492068351522581509639322228532256245811110898935490921636854482434414444258337679897235119453904843911827690154691526385885229501310865934443555309274136721985643169862506331006558142076273842104235409345976233914641850346038835562986489130352060788568675031657343815948222978154123927748793990016722816427924713896052849759589237107525654956698004835235883552772848868329386338743118823012532009126022553909244026826764063207082155672768520208625823799431818863627736490918653667287965196943521051860810823301006706257893921959472939576181706265506229456301405924330799444432248154879841559493393479986313748518481349728302745961710885357787662747144110526996819731467514189259306719838440359582235037735401304829735774022735500480126004747928200907731574749591227631263998194044492799654943714194152479328347651139956752858545053721121113021248236945898009570627698936620878609311060915784725486255440093403759085810157095753080958097997794525861833944676201228141951325299063547162871080843587816839253015117434614180182046442972393907824979757286468689990115504824280089994425313067027414602742852010246936291418229765531499704693826110197962267945696491872516739676774940476818835272336831596875467543866997325833964325482806337365233604901385830363905651050013614765429530643907284680788893934794721027368044730996133697417249445961896636801360484813093019655540329955437868872761464583620197064788463651435451332408882676276444934818540202306608529348029077635610585656575385420771987648715574002084179528580372249866292926862023309286117040297878442714397337341656984128132699747107906708054089971483360521078058985364786659443115217994267918032284735221600141995594178290851613944460362239691346728475332695423901054071384586603475629041337923404281683286768310476171481181880684169093169328475692713895147798729926163683347588105540039211050148253739982516736524258245768582143752693661624368856735990567385709779528556305892408217091162374928135627138979469325049916184633078567454378333499231286819353657407807304020630656175167374168031627475706696675364750663878335563865425991926821217771343958360785813036414646641543812460530770049410289049453803383084201016295815788685623297824791987636685852295721730750780438468373396453824401176261123588877247325870074749317733430845064549435475557042597544651373725474041158063692313006406201852012342873697612170373573086842916713417959673218114796691977522428488722900296877489802852422425611193862638138613426869311018887939767860410426604789470849589678190554786601880539679520495352357015101069401651104952962472277797185746117841269722675017724092690399658836569520281854158137659008771488012400205958411870343064530831626513235313699423141119317897961929246310512749578748128554778632131896130887264914038907739354245518906542821812704096739586066948269065618148468206955279648167201366207859174272017571281835704898973971758560949815428050033356663130762277647549747394579665573709103006933697318259227925712628921607617977159870163960984108879116192141445285407740989542328022953557495875522199427988595917263083344024843694112276778849356547984304077006213046621222861050617841207207027267428515560828362573955875459295626913351736815681435507544212852127552577298988329593618339945906181456046838126805133373989168882932106344322209345602639305556169335116840679811563518575539649975706586375896119010078439414721116101554508215299579690262800226466515626514919644840272005097684275550992446144790883206636313383951885898104868228398697017052609722918344380671177707358362175829606440417547350325359623346769717702439539953229305993248543920073156204544294991001055468527388275693389075610350150425311577606956301912493974070016009551898363495604519404610735939898108548246738582197299820469224913381489374529258319761330168630320531632471191401311878747992671889067434437353933630027951498993724514640749177164059601626301649079491149158508070486975904536875869427769802985730085731363556243099901745447175926856665984178011025378906198904023400228695865285578282081033063037112543127820682613324241918354926353862327718124708655856163414941999320452702405511814777967710086490636505992941322208059806547416311464727018667624732890463995181997169440790476357729288878219899030840521082126748243329616394390594903142322861427648276458356955896847990753874298119608507203370613753343616505899869151314481507509101316293853318840484783798375153554786268177795217482223528261428746244138488903469013352959085889633232641695426372239128681922882337463625642774444606847195912286496837120513451006536852719717795461432749598957141222168206178412245788764759753211769120562440648746909157261036252973067871957120957600566756680978943576968824987395393638069058686367383694638830970861866674742223802754580909332044283698150513645101287025478377248804853153578099444283785611476213170269936099296637034319026624914859534318481455112018625072230102586457727191441029327593363730726829835011826965134954428258421493762308199193239315212051690965869517474033759161254964670941901097861226444323713357420417904613727492143837455667684364892031660795859085507178550441327508026804315430242725457342192506178708992973860640804377443337246684562430050617716912437079880142166544118431496369878068016081770344775807341091479162254632629803940210439720214596614912445135239917044985376822475259448902865893892906073500016966071294475110319191392126863165357577804739013438070051554346135924427763057895408077506899439040051859490851042159635114936311365910762641283592153757634403243159274925700929218887733509901083552307970106376195414365254968726219955460479864531312028259652208854490396844772132160071595129359195370339305522536242861936796374332402723066162754647536330516845038246522597278323909007172703026912919375388716853780919293512554528813789501282780998639629342651269441543978281592958736664062751959377879866427682306355441855571059595473005533507889367500775519013095404042586135617646770334193231932250021718470126320301021771014468704052683088817031195155877360194013653507588593709948665765966685393680266979875651843480005118967153439974175186479809746496965400625050346213141013401380392514740626343864690046675678177012514762196764849772171381208166423418201738699570096984404275272731056853397556887274991779935565537446737906409664078246500096124742499574943971271613624574472459214119400914184979746954624713190904766615694437761304900588445463740784794774802198282245549199178019267610469003771214241419232729418402833230693789836362260249724000821936680839486927166367297295765160187651404927090968778267970449873887085706856984146377585661098302032480200173063423698641874127239731161829826687357944484180502621156821334697789723111810242709390009161516158009133629563905103172188110803289128389245491395835190934548139542035564863791799859920791064379275312148465416445914850054314812560798261342502441554743613725838293523694638502185537591227550931566548049292662168167595670433351321946137863023235005332810021779610205241940713720245732968669812569968540731434448310740806980811061860079723073309197371932142351971771128560917078339507430469115998392282253189340303975667807934012377556959358510850460749413213567231265934527491702365957288714591895485659625997280840172071235828895482642181885507485948432378679742115364814061186335244517875673647435627941071090738705562181554528828113523897199863536083927406911516891975084027094816551808819311535519652880588125603018598920536840582636836168056155248140604819208769765832554011797990737696172143839438223691747398256729277737862457438295854300093609675987496748745653939701483344249878699109480494532424416769419308137685945763558603707835872176671319379345872142826178200538343861759505371641605696946586475029062525272473994155504957829422775718795245014011057677093182826218364467868713870377536981229985902462792241861371812459919935584275841899876281754716363757940146361243184635493644085426305925123260925062809793458346455615499709328946321791611434562105433947860816454029575681599479798480754797388300101147948995250476359095291841587661016594275255552368221686701051803660947179768697698098107518092015268088026455006178800944865834155822717342424355629768595617572548658720133417611351169166367911967393558597650500809801908602089945487800152823339345924047046273940457809524201481071829130587069097328795225421106702871255325660447695730209668028082366208917505879967410846649023170516231005918915962899564845201436382929801281483234791972342962876458473687400345573267157744209115693519270621640305196424885521605079308798914285546831171860220521356331355054721033875255791380160431412030042360571345837032064427964248636363027558193575665523617453656851853402045070062974712400254176570442393657774677622721512229355618642383320010393053111773321067685687404585302111654906656281769112448623678639896478268261899995618155951193513035565340162824018688238344183270690754078136493905435625778458181880276613588882089710134402468758143091491643430224171761603751840743563877273835926887966237850050555631398497040683879636444326530645090825735688485403034360138342296479735290189335044696214231995196341027590926784950549286897026712345635618874454861715337442061977923078342383475758987613853966964447896945639877073379096948801563131975478393122983161137631908835637977968157772754792033479215494425442821675726556003683448828222789923241263643764878499072584290112920415252429359988715736410661722529942153181851290784738759097821224798059110855158225168980295738406328103890553927384314016138738228674755065771782119858180036974062626334947150269978651200993203652024176413272028038210433023724125947653011367810331893142391196418553334441026576024827447288451951046319601096618235822711897197998115282802724055446139177676588698904154745975283024721917468968954263571779253251271910006337164995332061868154345157292978850568815857298892241418662357923759303493165575528767518563025931640905093883440690155552896756771359731287975456657269283040094045792522807352298469504925041768899785876929091992801802654152612606230161523543799845218794082713377640133278046517500113981816368891055669700363145423115357069520245074850051200989283610536704135468683557579722037502423496095758742650290609059947466244439902235126399081952876009047145070632913602575410788904573123638110131206716928976369192304475111605882103637457939334126052918754104164227885034003222625495233741239472314698189669344514239252679734949416347082212840657820287034100991553328560755340369457862865710224365826679211035281895356607708207392194062655123801620412422340012993385437376882052506891263306601296115189143648959503427378307111041816323963387721185505564946729055162687338601966655484978308680728361333664010229487932196532055776122182222474726986733452817552244125001481736423779072200725136342676050487267165007914738657316254269990589126912862933306687784092962833635117555984496887156870169141714213670675997724598663884294936962214201216407494351454973122202298340459819189618228472784918926378674993107975239236913906305438817929430365444979822232279431289882290306515118259790107815651148243592249561652693717732451145326039542284497810438019278790402551835418524902365805541099979149785965588731354407930790988519451646259854280737740863218813378796136390499326604308175605536175264173744731580547252835999034806412442050486686929808185078794460247148433414434096613741178451174802254420125958030378203621578547947165850978814751815444122543879225373097733957324900334924966643604808291662966869439634651397070350428411271533030791623119358169685894315683771516780794411744280923181615744238112093581173490894687935054874984327520476828116266439645860578992549141766747971372823037766380650318000124148111468930924597882066159508340164523030066179796469841366598847509244498863655549725746577787036058530828018854005003164832623400720809406750791326956303415759319433156908941007101525452880748231925574145101551901421494504940855585725007425129326653294115537711017114925218073219843757653186410295607420808027941920656754023067244321309851109842932933060008920814166606445926219854732652360807794106880607364215456248962009127529534094090903232227685911932091785586099236570910483389940525540237758587201274600207479638781374095786615459995786807042798206087984683629152482976895447947330031084463657852026433019211007927727466945902228115728092992049965949550944700584701517859452374507644691879001598268361343617954639574975646553701168096197707114337196858059226274999140577330212920863763545349724323942836606008645581066080271490728925161894014158710474844841904213337546008951245268043441206043732176547412699562224405276178573153012172231093688881460636743187321637545910759297817020181301453654546481352523632450397200440142894224415988287386359785028473492323898313204044582424617512203651366568693032525238951804670240269837815649950642582013572931802618073429270181518785764061618418637785139361885212929813988249034335678542199662331115897838232703135765065335833753970877062459433692775792677573790494059374146503235370042464493095123370428383533742734228602058152700667747859107770067495667139566446646235386322348532611094767302563848303002798061308736998167274834492073438258291932911360380316812141754154655127976587849600815537083579165808593204545285625681571931825712346463922758611987244108120273599428122642605580759671429818186425345966602283234861627661355409779695592945827807645796416452512623362170988693537410798921518679637283292964684395041255819522767277419917635479225663321443919733481656334877870850841341790171875783326156902730782663142113259163172156489743675409781541610515098944496776150680772664490842254202578924868926184872435964029004313963027514443765972983031575869385906516916094355208601949375099446825410249795824473181164891912479080219771655832765552380944799187307805412754641494215078436508028616072130112538390508537563964901216564543546444587931547041753047788447062618134305001831220957047211314572317019273903741759609533611538346735372045125890458498088385444842421995526253146716768981335969845300888327126075751613561140762513061549324231746957833735490849090619630880095099464957959704602606942517360897869855550776707162798467061572749152878162707940051637575011607950748625716593814101466545454187121582314193473074211018234813289912982843499276975094004246400534109315379347651550002537837682079043347153659220373248545550373108009954787701809284505947617977838393045406804478754254862474025178455104730586680489167761399200880204722353521359026996161622893326894607016670010248255499919025100014650718430758561971384996744268205794583834217863010237405443504594807348439022194169802581220605832754519058973473152764716601642329105773790373887648987910773793818190330654983706904590034243262641191172310108868078875430238455115361990398766017311966350516290400779531244287199122252544580864630663951324331164925843367380046594144555107509608158416446920493771273240425954020188958858734886638578893127963215822508091092615818149569754899763390647978021809382396159200513414659195304411539385186845324000784301789711183572275277412277424974169770758202647389217690629705154726623211039002747216047172257325081232327986368751871753801697457346416560543170634900290637711205179032672801243976859263192499229418453866281579186491526310000866788899345231545952833871640795845409315723532381647955220370589566653632016658954599063628381282856406542612596793750518062992766873781412367157333428799942851120666193408591389831024061317805790271919937724449426674697676375058382106178293609783966603330600048413104294988518116485771037095439655347901686655238406898846359595615644287758575933216177457115442054485020279453929264852609424455381736145437917934725791674982375388465432611436154946287328159841585728405358102780564750760716415976019017357201158980547492238558282042611823901601962130959086595576712224845822865398232065158186495368660255160523923321287081095863484904249033875153731379060301733604221881664170465871808135805049899852034290524441051441438943822856075746834847197439791886001603569182177540329172101798867177801876975348066742170758988115290209796959960109410129714267704162788521538884591881021326069034078749375674883574417660583540805759535528292775111869938621570735751199538660249091254478865355391976429639287093092429792940039501672182768608241662212297244025078568791711353467237668386015177489699077228864746283996162936011249931090625023340915121206122741849175162202353195910668073940945857011039680149760860221950940160314486155887439016472938464028364899184396217449438583891982479786995251353232811720064254569998521818197915275705456754362419423015774481049444228457534580462457793318065018693703935165920022365284960915397989094855852784967074761587542356278042279648658877118359123580723016071479185149389922792245986096286429580392287267139890660110297999675209178626608229371942499584438251992993803704067074514959109807653266992349386398272965557872169793238738152478031285845971422085138928961720302133279570511474745332329106451048662671095295130332765172795387278804355333409023326828819211247834166954423551308766536194810597232073382070259411576715444004206142093248383746393841645849505992781525834745868451219176032168350252600809663925456728073462423819449438469338656096607303847287606273838875339880211225364118901444534693424287547511985914950336539060668288398804121613343714973898896756942611550799251844576932302334150145370989120468903980832031956054019892645537931896881921292149359731272318227139616169761382604937936121195947806289929146182225032231527444771748437650782103239815862123939481715319828422222700077323150903727199935748808120056355322618885708128821816040237072161632464070242184013953568159555794156052503676840305290369652149223515489070804784745766120001680155093424104609662242301049477458565409214886604837118872685894249519042403569967688298443288990015673477603045437285106129636387194669149372796150230643309312669582834113288831562091991320425272855528182882685432564935910450530867946419991713760344491312984038961502037102280198856095065302665946437701067247311026473872544558100133181639272478621782378662083979319803263891088145970551684914354803588349743212177591800321686846870680241471567508011425060816064239686019426093771232994058780801380715489791135134560156903337257035949360020394606368997905419492440349873986480856463063027444968194354355335497951342816398553288842609747021186264296923858466604456610926300870092655778101466538772174824748399465531059421440916985998646842392508776849147535627781428461418647921394101553770808541300082080376516520450674434212843886172708649389540554377623776614348196756751589863835611786297726195423511624102917876795566570462010724426852972235536955319921774778205443900224785165994515411471481155198954335807563685198736009883918902464557608264709588362134115689292510355825273729003111947703054116710779381265503496057587219480670278437887974072996356137370971699033615532828612962009738189619206064213809569988470915785558403415274541382298004067524449647253910417881482059120595109949487341577654605175012086337049300613874630226858189028558845207293005754853446412830469849097479481208004955148270446263689426839232519396191006381802949787991289511398827590457127683987309507869821771434447852830492010323578637217383866225278540961558086999642484780392847793804624186012570323682237809641335405178351917151031362729238517101700341611691009467837569519475992425807934392487898539986914332329129880183816532033238678775936668113294381429983356955930241456906376472618695455976790543886143935554332179459064791351391466696449585624358494411108255202448781106630669742459851950626084760835231556161014134436874045017868364412802087705312792758223591709424136330391922773051448545621172866057727569308628009383701331918044571193961843080819251417860766859458649784258960447051292139329813370082742765567778401234416846983587945456671116127923934449912694153492993899392587772810692282852963100559104141030655413640029159728532749098058059870428689816302110390990852258291397448833076542985838989575481510080129744952702561835989080074985360716494077882103570364557061047467850747495973551629566209110004898920000934315544931403238558894500615829007003447672021913820576209265682228506257974545408505049260214219080482807189194279190311815994351888478768970577307883347408746813984156659289699773172740289002593960950387089180028477718934069032461879315109959230927698731660527297300926409150863718580286846082135624793054723048371480831480079208841201993259662785774010108943616766197234393071533461029729055104242879533971204975315989415181620635389339947871642131315979107915069043713047960487056033094493623060131364090037011350506595270721345656565920428584465808444473881061374645012641519905411964696741583513467084924296811618673557131861737478153900399777336655273130753081425335491545077133669874762942296348002930669064257000608942147921706045492054382673762107958826074172393911811119132133584427295685589018469920763701815739271145632245820762933701182902525960642111520601612022147161508260871807457866108558713821039000228229159482957588092205105298935039463127881292901465241726187772431070930558187010273377362116691570342035598119168760766903109226659193738712488930693204481981219586921314937349897095435464041431416019540422801937257302321413986330787728065713872046190979636032468242862210657441903909947702079361814202217022747350926346233147410973638731433464187163630875953235732837206016864256200168853120928872087203345398247034922696325245398904845003285666100097276287303196913709604691437992322622306425863071842665606208815139006131396203633623521411798491066439446076109822752198426105216779923663302226910626416058590159281913334065155311695768313499713566093168093575987694196732477531526608978416026129801620843890972984460501836043574850384775178991821898580453496894218474625892321913458223116301517448791610540578934870795618377893927492212347838084486333958063993772512964193932273657388702377445420629332800381588799620293899070613726924743989399502543992732803486815477670652357159486582203381273629510890652504705359695280247143522721769580488886745532796412881664072264686470363388058675782315702511317952562677711161255051243814013427989818981246556555197081222664397008191712948913781128074501541608118704152508118098806023185496902011542512853346477966703170287035349381427098008976506735557586544956586997385953830381275913193510558681398486260986090167629420601269182090645641254833417621759685263652342812658211221717789192918894034164614746616082606150830961726340465571667279800359473859947148943874981874049715840708475461223939147088730563127563220149251320478098133285299513831426151691801358328567811301937024578436061087036843526194107647926766055850856982678332397997577578045591198271770262694662720198014990524448731775392874669711857069717339843101094269918377164380975398419024472994771953310410889846607850221419040071423515005737151844990212099371266722309573758099643243290738941609669306123923261437581470094509677172790592360853762676986487967768457270436743780773428001402066428974864548919383692458742983656569673222091713878296898657677857666680569572103055332538902845479416387839067716034340879931905330051212635047658463004546390510189512452868717430035406212262321352583069887104975077862477487662372408049533102593957688479996259495306408304818480734968547552511124537326901248637982003091511803738302729646932446488140518953469981986095263242301794502625052925624594634400130969655653482957744064542439778392148194294362788513584913870900561373680018703258611560184660616862779801870583335649875067742641601135058106143429936080212768590656528715528781258526405464111327426039802138029620929455739073455241569304764579109901612921458017806512632976052205637916802822692864413640055800402338787157244655498845069404493947349007165199716107249065663507304411079119602176210880850045996916823178007222650880860717731453778494130661611191433875112236864145603090089504084463619113448774381583253781996431466949781715252347664756270195853003668580229430707881789218020118453650758775800474462879780445394259918410706811698704103991645080853750448609262088879937461896266735288106723928097402858053903256795852628221037720490227328647740197370000295485814133847288224213841980259097494004176911361927486305659790856176460423638252305235980357894466668846713550420635964118855330700587956661986860370140608447776969911786230943019013602840116512607330605874643562113881963918402026279056250164660929001214871031396033086266554060256519922762239247444950901687415915466257178645805937708526695301423659333774982488432845253243191187224534318906036056783065302379820437720415210804631186357895710856825357004778334105462920218795423687209122799927230928081448080597101493221257974255955806662420892486915434488081646096563591428075853166550022255197071256529775742457147380193793270051655158557702027590935197790478614700248251730746840797446926093074564679627022999343609314890347448707818302515704200939776916499491177145974588480096445478868473962902861651954265870521363428863903963219509190423290082714187834182604218863111993705294651696485343654336604158543568926971033762224061482736278742316418241612836381192689034681704585373247188080227023286485201983674383158106080629322837340691223435504797333755554170598233262267614338129646209236026905342419151007868715510459369974151122580788402663767358394918857255821962800939579884581769608928515169765333485496093187603016657965919469148673570477969396883538111804082658315295271715450973751538008721894091151217535889437285681817077280079226518582991687190394873613953203312340646551545979189576037362564704796018625607566804993082317380551797205365719602327508274163117965835080426978857609494034043898246565399760491840409373890900602855879788935063677137451514582635520120287415372842636923709373989723713988156508588356643037980308885808717125132298828522450938121064791719397638476753867205215425882717618815710195428531783427836603514590077362990744071379728050239952902312044606858724671857480085366953067015002633689951172634169205305099400939059918046057714182711224952161563554745880805912847961504762587776277710529264205479886332287442762432363145204374823927251558047756446140490133291206440455626685114103565817845272314334202303317739356943026042939376200723385117897601485942324389170436538923071647560720125381512224747757573470359222561971412902309524702615601917145384785868775331547887721694962163380307282798058325607252457261640439084257158178872808746587059409322277724632399478700689877560454478608367035290214648586469078529127887313704217631625108022663287379872091982723668771047337589320329304399568736959454063299474986327695549409625608555845153024968038087542845404650916999277828323415070998439485289049863518407483061162563887101971820698224637811508790544230146877509834571231578393941578577569192379269586482865027896081723129566510327832588745845959629391958044549901968248193372564611261975209464429551935031438118594650064455403365647649809730072181852400613659630802407011157547237144977498115558792172186324261248259946258408261304556275512363765183934945062126679647224466558091677863296182941489614682275216762588353897224567606597192809620888498047991257564027010822496461826746295714356258250847699958902934863346522950000225057050119696844312776973195204909894927683117521642697611314108306029746818626787242013825885022268305802941932032995893790667067738039434017727065704343172387158189636168070135071456817403529895138609053295922978162275144392584915522938678453846045030321077915735777407334614815262027025275867262295477170174492452593500775051097398782048634231161530229232468655916017153896341678884113473826275061861865979857199788882185960734086559273324230742834371694440733949845083958489276271496546095616448626921212642694722216269148128544985522471496331633129276481180180396544334660288095447872113937530103870557191013241533123125960988403110084372163043473416118163736186397899736676130386515063870010306803060470630386068881387031966486948701458573972813620883436341440490219793473525953130492287240626757939276762998970133607041628424692199396578028204606168094669731417705033372832572860810546349078842018827243470171730066370504877413351402360728751953089466776274113058060394338505255515165336733559208117584257763185839632458116754970161222749849315126283651122781069200197097636119864349684020086664121554361227859043550481929304506224781189517365562937193262829162692072524659913915767792757086030582746059343368047338808953337843127566231244203878773853819734550011562947229205605126832412934194339371485071529901848976722047167198879434361811753699269803051584959488792117821725636195952454128348010130869440091881133203314628003186267314189097985499451101121096019462476930063330363705508393520902951954319028435081308791025554520485146249373585225322101743666303262190007960583811419657950793064680938844322290818499814754971011725354726479035948021906886427121812642339313029384043383918941704872501912944235527921525224520549181739060904616150011700379780883782247220699844090010872349325884996022342016100628781971769238315353155537521919917703791191362575771660655920829941819904617500147769130686566393222658885042387731508507583681960694078557210917907020958877511493770735166346378512351353400725222975403919934392343841286843349014509600385142194213836806578377523918522888827956838377817175527451303913074337021859814313917302395749390529877242609776859999317534718729045263311932735426715847106472132499596228556377432257911416113831717871031622271608918541568951716990249064635167909529121820782718023095610780293111750988697989369295550648658064611805006033299185516448107740827745909535350165397774995010787686010151847390869747355252078971857007945371584124253314651966614216719943359721303067170774530062288226348509097072470199359088265353114578077377765609727833676084638253521836439336305026675615446193935627822049914897022405488478495948250099856537630028937251199931308543466605434162809222859115149891966235902812979299028846884179451827625143117460313905803546581916048012227581182513462492168258939298949373033503248572073467221110278896333979451166282742809905500331259683323316161760440268722796627528344945266903457460911138057356582788672252323660383933776418566154585658225836893977528630181453651107682921982657172355494778000379500519826135920949680499577524393909829243552227334096310019055549766318402926531310924803138689796173371952795623170689054058352178079669224903889507540246928430053021964530290019602970215955317614900599817737697542887222717698741589511114055844691529851120599306346545747858864663209305179954310532538261623051348491662837058398087277753952968365377749166130373854840925668009548344075343893734878542355077035228406657813517477708572535686863916238248549130845621467212566955519096051153841562765942619460887916948237722244913792832220056704377695107099567745632827900728694467030128329627626584227580836463183110935187097804758020545323938296353205080893709935206202396385132253751602198389915959193844335794737128898497156725778066228924080981088879401173038958120199846236901818998149053931199605195160286448070721543618585038769682273305898830404106363716924131941231298970175841890445847787598137882983532538742042463412548619770705514103066811001305467738001084531680048928551194492865860113852480176163922971558087282262514927861351671054375150370385119756242915631524124043793114051547009199609108801643511352384311380454950741931206348666975904514964399052203096780802383753394262117625144330075584973498674389994924108063736796177779750885627117051154226454900488289590202821776896591406829940626538137072782609274277219807866847901128507489107904418552447674759219943566870242444506088858926413665026391508770717916976766629578536284735384745279896407426669271070242975077999312730364369499929890148807636321339128446237727606521114835687103170578294961075228826148560961209295306045288840373895352203545785247125759138346468296667419293765976367326349453622217241257346249601917494382135394511912362233714873498841620375316018548915629248660257775236023675443680381068148188651095734166866280814764665838775198493061870498985668470496667308283577237705290753777950376402544704049302056208460193911914588803676991232479227289576589376355170014013184360678952106010439235416572316763772958460784539360426169200619883395797089266571157018032161559809526752752336327242554230598847032746420332438584625202944264862358718841942710055993855171698417431874244173801432683571559613114560962314790106142323837846260155741171043220645750952164869163790051988113578145356034615553462228734672056902136949973881797019392610733613118925179141139526100094297237468787513808821414905935325126700388785300041388580406860352132596046657144159345728450403859895950150333797315837260513560570558702877463254682970590780468551743057159887416792830931827177984495731903671945457187537911644488887111578030503827884195773371778093514331569958016877209020040824753022507842841962708057692286694739489680726107845323549242144813198818944323471573263943917353677226832604791409058133408544465891213240977211442119140731678439569479375048698829456267955645266099300802198080543042775554689471367963232912678343677804246846876142257265155169287550483187869770527575704152292555451284868111423334402352459590931913963695765678869297421794448147304607048856968454833322021643567669709632165306542933609120694208729378969527826734120028151432896677179353090143068610288161594055892448942569935075368834791319582743217601175504013267720803211297695681842562585961699765300100027679987723491789193836892241151487418391667493010708409479820790193117686808917999392642574348073249478634858459943161615549149754219424217100642641671616554748093291752983915417744384189840948987599613881247819141363948373690968094304610208816475467839519018294878319792879048145867708760284093336389960372180127227564503769249884304518444680976413964329185736757520582458443903190137453536926346819771281578851836106715954689047510413397631957348482417238972686656795321742308904987436396489691969501414852387252947807359123703411032001702832420932250014071669526021336458656039957361247647052748613724645211565239673943328041754176244769928957281084104921004843520521366103167536851395816122715735926822491454685193483089804175877613969577882939541876667805716452184843232142500023579465289026203920598689398113188423885130305137617659563837338463706786825368663870856032467336514557041844813361216422166125242345215414168126240951113122972804578312810712787519423276306883667157947868909126887315112421977106553757362245254252184423524420807925361438439679088197893837533151784311473552277921317912763056606810462869102033280674414658441965335955267349451391262440877196731851419588269627307796863375139924734032376813943929718857810738885324000525926632605563788208381950233891637840068964526587037540321711673644943175796237202377896731457924826039966934706898848723449975613864227671429618471731143924424637642458770630267116260519480852587460278761853338109525261488827460174901034257743758742469960122759764076099806567275058760215776495658885986249767305438254519456133877564653328100183193396595925639435265145131030751138499143100208150399443848090238753924522707714721031645317001904864410660871277261245595452919666028500832278656634045605007662293912619929181343616293512187407337939249885427167592592004533068445017426654366346508015825776051480273219157525049819094605837250301117405795293449398147072526434526399489784324598404004413116698507950719185562934169605668708759168666965277375166861925168576720672887559906905160120111967777531025025692456273867764905354601304660616203630098049855644052671357507796738843784528356061284996984279264079176848258641179846376647428335104925773163911048923995864632166412802087223054138455785699083782099111364196907462933404792399422465726975775340223137403077006964129160470785159287171348923539812948920324688306583984416407389581179021147807331855510766790426120591788062580192813222802850948851660762340553623527569473380593846663986549174244794618696874970565192575767044584805772746730667146771365367833725418306380313336491991710325201666623200483668175735472479907603514513294365486329634749883156012408250988000175115577080320858173498369695168842336703634901354063389842514174084353823139560586184244372328164198075191192871896032456069029159320133095398052939492413686988598465608868098141987411272883348681139343902906997444101503797711367837991905970295326260653796859824144322206206423358888416442334485245407903262992466613941785583184341605620979883772700790519895011686849102578470996325547733412971917858206361994858408286747206354077900173679277094416150948051177606298919449563719674864274193239019189192221220734037185835869171690873431894866575143412694667816692429051662235994813410805091879036488804209152118594750952549658826456787774822703990574427756434570673427591433473497708012137947733680048538574840055286531396991792232910443728597681390252693707880031605925198924848195101569054650176883849817219243163756878984020115497572065028408815930928553813918828271081243445249670237736401107757602003116408770182617959976694209803087340429334226860983789978291499676324108761951062084110688009634005038812336665670049201149932322329373066726098159286417052651191153002119306873263297451715657184417104468162702149638754305726477698699921865668170674464856605520790883584707122669386184013600311304936557098589199599764290557538240157990454406648702734831105954482135805205905466674669909165734472234788069449224349302186233014041461970038745812423364170754661407717534545406739290629361491440178674327700532336034601616390252299319692138458857803320870758367255727270408961260342212012246808873402487640979977587457546379745875223297376200402989780385970180142194379072906666745274657958141425032544178724947579388237130507097918114821048837894102550432836233672291952252452804393340176848053522952137300437613563678645320218704544648329100753624473685999515796371138616955177237250860958583033517347986847734914748105782185173014721560905541119289710285355511257325153635532410277954972049174612253992241714580932047682053058505185744814905244902208026665283616900920182405236591107564994236879122673203378777209933728610604681915618997573745711502680702659987720340242477075498333009012528161878315706104092796869378652899948785834329188514269645078104670928304397873742823565938196869891166740249369613668797243143768656656003320502061111826271006011841659353092395876321739203707044534977247861988864205304439041283171433344405806060600367530794353874965947089684937069668774127824072623864899801169400990603617538996480478252284199112426556953015254479570745301722530550147151924635578281384860706568713107043057171275928059786789067528480398284091218721328641523008425589200174178682717761700575153488307416895154440341800180254492075803018653680131894254789912181055560173356631378401887804065447181479172224245303693160688707944151927884635288099909838729112218264358895285648660336231992062065470331247193117989091925369973016538246770323975629962533089702024535317720550783064989212552216975919776612341203520822794952556163710507047061111518299705197705824907182506192587790464212890663141118812765339133850803690760840463201175690207116016194128936353509376546523645559866743929464450152443222570712073855621500957429825071362379184105808581075489584267397304624234928876526588051062708916794251676741215622328513679447433864761665160251873293553891705374926797774117492304195724174374268409360808085748792800095268616954288122110258011319994327802809928649686252620956795902459514473004384037283649835145137686825958679108784681635363179041224552957350226429883610292265988037236352540982731451915745136811998736101800187393222430706190324963129105587585913963319865089181923249626352487706093878633223479796162847694466979514694007515851727631101249979570569476685418068635422496802577235566172129570044116034446618492099936512701072114326475129853294737622636537305995609637139684426892944797045895515757690330590561120719366187820463750521239999410591807322612282946001895246917831213847486913170135111989089221959011464716612426691706208778032396171282243018082803475279906827643148395691395108557038451773515487777249461140283420128185581934278381136246083702344695398373505014012045909500893228850265188878845594247888810037368124435713334103230046995403933771887252196148320765891181677321497574234858931789273017008709037176446659995584044691529246560266703575870294533672954983633088515162097073078346251347686043050172419212968433274163060033585463649960678869816640464188375193768606536954697202841218274733267521065901006731140594783320654867883073444079316268376616100125233935001751016173924255030335275896827170162694769646453267824250463776944408578376756502679304718385615024110167924240872007444924830388756737550395771882998758845896825469676732794720081319312804938728213732431422687423838522906362383415225163082543148000081002333979951565253737264132975809565891382917023145031584897145506739977208604595642239127902404782706596523267728533233016637605423476277009129567497751768853260079698303761370181001630649368370753582435459921099310297637354540553026885840675510412373857153085445055093903410688964981214522189711651227622815494064637168702369623050298610868377598878513400894833714189860880050668983654539809897911610871722232557786577058712328478812320502568611182424303402163880921304041330503627587668429158051985678591337587398954626698059180823249621449758653109413461675485882356673064455300488901972742456305550769390149607029454093798675611900608760512849845857179045070554651386744972735006561499218136120305522448390921728023041536828253043555976673365782213594095328272940405547969788111180954061168374682330727419946863758832964448793112628057746687903162317322325175088436405680892504026713063774622955364843541020838979286765346049063059104516518808173687547293537096436268306637221007838745921987962238582457309451388177686567663946900527812414860632691581064644663285932495174508799407119075544327626003189196831108876231507873998480492930703471425796860756657196205695143960856931629674315187759928163222685612669882678302631498422259933324655389741793238658783960592709984943559431394092073051627760877041703665806291903131368211617304334665062286075642578596608141917643577771043921480785312157638107677433250496401763814828594697980055614385456940419052226841911234161417174228920180299706622937935095055680752035357137781949942184652778294253451958295062511987486499085087751308497238164597382882199527786887451774829319593205020800961415996535664021041282283740420099606290887491403673219481369981723710745895600667380348407350649056062102109409890041930751398037336250063943753382610289906847798447988250723476171457759453577872427095795253142480307073238900627347002021630672120443260033315211697558884437930735221874843247403657451993758261797592569301107949211267662826187283602581848938776198481115643965889090016014000792717269101543867453440926792623498426943350749093370722376181065235636104096089617574376826882775392070222691314477274980718013466344695502855670232334943010342735133671633372692900414765200260406518273708250634580259824710490422221052108090143132975870177191122961302941238420281604044912806367469034072112576160329016996811705046594219009674192498255626170220712521977728309767010748612448222373691092622071129718673750545383072168459110665862436596493423880190720242005902515067536463519774025596971297114749975142399575094126451757291256232784400229651125664053809238204300764247509000182586279376845907207512693048314345184187447520923234056336577642171626829631545015678325575245770637894538581001648857053622280305713714377014425313609940133904864414110703383510075885827982882671170153703468849064747233147795630877087865532660916789653490467567995566448842473800317024238307174243530373271714263452873805061000787915851842978062188116756209185698848297043815105136362825451516559820001566896817945979595175732187297042586457851871522173977682558823700782164136530859681360594286877285383955029345372541450336328379631903152655668872359404877258239587561496077441540889102251600795095407035088999723822926914214885123422359415559029739560912002686942794140620338860770566833827866440010673985700522196172384272659517398960528262643955957216819925617644638666149041701812182690838687044476065424192951725368586787645194278325976519678776516485139171899386612880603188166875199494159512930203065686408901416044878120633281270812259366163958361089916613917315814208878375727847804570796553382535195116803991370837653744002728293703043301314325933009899586990557052581831249863935981653026295728204786229868626866706464449010261232914349105196079254670493350527042839148578724727261166007412623099273206546803776911994685211029624510021706053103177783182933161899690353421640035858718749580251184182235732100645977184306556193921011403952130156297087556232010582657600304568838358067747363041329519577872877596088445777276344318165542940470084093525601164498448302802216037484085971728407274749211138842099932698048475246146864242299324540399514183674714792640227479565152254114485047988200698752237094294313181704880825049214023221282130980387468403817399106990550847097288893990060270659628228933621833938624129597525016418998038796845987379180161888944938542941417547426521304095931377358618108960698955372713319050056275921246101714107386297066808098139952712700699889264823905762058736761959098181674376115498492022329603310051794965448143409395677850222847282867783561647772026203923919941669271902291373834041239563700007188632970023047280274818093497095218211458954832537999004064218895620705726483612144179573400628734500246049941720601007143951825001682670698802359435169498451827710002323697785854094804113804165296086894381430162564942088184764800357874361075145434489821822488753049008067622817009736831322898357665578964575507378812664446487662977749997676157034963398442607758927723234363977116889034675014279037210840680149777102619292930908182158834326991945874710458406423634413769369241514027005821902856221378092248130242947104471448665595183029985093242049109069276478990492496366054670552234013540040226643311264381379595192006185759653163960075219470226700766307099420642129221200251051679306394932881835609144190025896253937586566868461406317541049958114931211607981334597389654016119156939292292553233138130723686715820647737122929074889986758281509254425232963494817848769935064889897522332207634138357910153772605215652663157467729636580776386898085022749270990221821252369358496252741082193419969501959664984739759660585324211594212597667956044121838148779715679440273235940796704267368450338287448308172876826550415649596126175095580202870218216678991224524038486452846901329482653839893043501964811193827752416120262961848745567915419126444577269285207612681150078408699168940356935155241512334974173023860374532625536443474136529783878689340412892990525126572199524606673333142821111584322562400251660511129920911076040052380120663688421611914991050300260073161780323808734776516267526127035903306686105003382201248743771253370982104480889178242605495987128748839920020669567756372763972766373911599166235901090348707050767158913928532835685707134882653176787000563766755620860985982734614994280104503467812212390697665486241250634548653609273583194417766231000445540216293322675397562412826969780224682626336499762580974825996280122482853109523174938601670726975008196055135029882441057337064763286756695096634717652444882079007777699122797846070026360230558731803108958331642242942153796573451156808696256622239450562028646998054971644141528640366840976864102334084220530375240499026582972370359272101383447598816060038050469802081178378994716068847505019017483948601068428248676622637191416933579056055176448989547449171076643233706455806456736420715563229244256101213564840981963112922070460040296637493374866337631371537196502441324615542260283433501576693020798100689503988865241749336521028985704284625008856177841898001853568869320999637450362120358924217813430596667068385053921780199268709618095845027930081697688730054528041880539954482376922282496941325649189491130511121299880935003035043040280620612707231471495136776742076186591692260027494262183803672413102071666005210040618448770033194431295261510638738421448563956626933890245565589213642365393844549579223609487298413012681115386211506707685422939292829006111477919959922181610895357829752590496288087211607287438650737824484872171371775603009918814038617128530339830474282219095640716871817255880960707957037168005821328645552718198569667135623306581542121446903354597611280521475014208871057386906375448888640763768269168887791790270518677834372846428961279164908760915860563915115405063886858999048559772956446719869468004382952508408187441541653680125324001389569703636610595837272368902652460859968582262411943323238140886850693004469829173731100812987654108232768643982768538901783846277778264286151912594424163131717272582587283531374287747273405119749795895006309066919201471824242111227968167771458172535712862870218263484334669825790218740472758925216278095238100286468665408714918040164262160173533276495457441648647029868157051953553253270217451446848107615525034598923725006122748218066062530965019527702102424315760774862583910139634894010725635459394673480593982792813852089856468192014567304326350920585023432562268587801211336689343382898862625594202364816955320008880912892195133737953834682903984463345145976588059987325031609395236967112656944969529487268922052498166510602012891996672886297160008966056883171725412955365053721841461754928213314170850732298512839706986751492835160745491813277980745068097818071545223686647918704271044472093384491361958322906282212270203097730483039578575472386611729927722669325873197246537987368250474146757117583435384440340002315191484535320380099680834010025482266512359399916950067537737315018642694012289207497628222697989034308424399782923258159236997066464403979409612965944088297895533224307593170562744787604131102159470433958715460422733264289040727475292367615870643568526800053346400816985379782935130276328709917789519138392372008590552491600870663367763717414873644324409001703999295865872165626302452523076721868169928139289657844045448232630248710190423819040877341241972772556496823364909159185603900342442489564766630367577050786369926698504385745700245753721932850003728810730416827218371748544963911246782272007331244899479002098101292300781908196010252814654005182065364709503798458838944272411757718875908237808578150300457208107405975067735453045165852152964278044162156244741872140447773625482540508539719760342386903788347092802627723336899158539051253962694157684489115842292962588282441328232745179317434289082107133424786028808626829611671923894597759024457671378753417184481364174638004898247304716852749242264782026435031223515390367112103654959367030519211760981672907263835643805385863961093523343970511772250051762779336328321549632615096162168075724830568770492016057927489456198035926120639467452036167226889402120888720285479565577755730611320282118456938431776402082557736429200326932711535298010292764439415969952715106091340103662747907233935568623816905247716665474771696902333836722745594451550831046985675444753046231733652153717049947457886152510409472976098050133339970688701271065874020747132922499786661057384248044505132984135208078719318451522427370130509056083650199924331994152398181902077722592698415680981521050544741171744267896016333436195496918248044623596538764219887879799603478489913151250310997761284753422602523384179369320939827898390543586031196734829912206721352397891297982217029676939467474905623717130095182244019618729637419474822847032529901634183153507699327109249979358192627728133673413777408048833140320174270013226673363138240062218610934670172734354010066724199000014286085756219364507756533749226913692313072232001284511094296458182179334847931347508851845492657910941952672278319432172851089064267967650852593738419516228275200537282250547067913386527468431600598074790625413322092183178871527605834779960222911222814500520624172705586978417904128524803764562308169908852346515719116631564683929811996043688982542821784323425906226081095584781176438655259838421867223603917904641750235331002479323113819178076692684494104971052564158691051377452317834739558500619870561739844108930372184070871758742072430958848763413793610405588785261643987993782192651410732253129346386784107333976450434541282216231938386827615371878699214435487309416075538379444619949582828995631262070196553338464633955790686616226728228241897346401164966482579981504567768247414371438907964106683036875675657208524468351635732232860893062041325191224146818455727052086598432900728054706275999607914779648940205325347215396347524086955370345915343953929289588466380124518639625599770642351023924372425161293423554450701663021138206436502575834046700283179054881198238268657571522750905323046387910698558180404958417426134695411388625613338314169054112940006638993654725871880016173772962454385152411395481792811661523626444620932711434347396384301443829524919644421525319561163658603175373903154480777542632713019446571165885993886390421400301290352516178068949497097596866875190015449639561609862141768712379342157030388312978849411663738099676691546749827466775166058732250560311098388222657217845257988800655201895734463908648681091014507437606469373847941799009391331188434367227967960886753868266971506712158411618601363705467268596451618226538242478848784538424042825886644815093011069764692667594268581587991324174492242969283913351530731975309890831550729874087522474780566533607373682970177431712735624556770040397572651680504492894267633042238681553372259129712485686377766591393130972111241175980595011674027512538512956421465877904316182269201606494438345288979637246490118776153075932203173193983254487413687903524005355615504718676793479975001328998000396781852598276173313016059477404342476205255191690814491205423132718990975544930511987415828949544562292027071840952730008232974527128555009009679551381426552519755346813482468782384674726013087784646561203319306360046984817188785159320182733719461710598091596163053676646208161344229863105919788949996066078344013253342391919183920951169497425916765795923779477604913809585492878036728886018523966689105374432184732557733320357460606759713417988676738736145950267185979134536133596171280549111087048540062579317313355708935596127300963890487787213142971030839499256629164804169150949477411674526260819111729163051671566847931650653564991557508709096808382158569875867359192351044469167397465738238159249966640337499840046585306824560408549613409116781884934831434113983541569658306248944435888375837302588310632454873607046986970747615656270076914020877268117430919670126312349959801317218388252014526511034186561437987626895080481293645805341856113345513363366888416435272574218437065492408620561250227270374557015640507297100304203974834624172109273349473551585062794979748469757593041546666701200179276920455443128450996070915014477710397698140552308822367298945195533495339822586086956192650504082057227130020362874617344992688767533778862956444950862639753754529543137222685791769712898207677026221287013230220169675438822363486036450318237466863843930664594180441529888551120183677173503964867818849368842929291422640639422494263521160676034993821157765411153223930496797393108933912344172766247112097005235222033068165792299859223880721717005730441605437398243328328302961940249821922897329997811422247219101127615339315284354672596529781568754049951980486976761676706416709359798219099315367140512473526234794655550889046009928342406127427993485520489842735553410104081189107106939686352006021171586437615197130685512568066802738169831150396196572175878146802399688819890210533700555917919142815168853874645357530996391236061006969642616813013954508576323280723568193034625585990865732958020351166436981373440714466696380705259639599457901024474495866524699765803919658518128687570382111761396267735748100684024931043524428738082856607250990933902284367425878848913971087925127096171442189641180194574843609408620037352056783712696160086430290574303431722995209884898661471124253195132602147137643606936397258439223847334581605374126080169529691573061586434064762244782956935354951821989591290494291743796226901398906423347666083484327495515972908173996007737870165273159392806330220097631144948167502584852688977088853233615424935813945188770535315041651355938328419100926301773382948660799901099264540323811018166100024898518587780288665623603201064919976926021655056114426249991027841512648176997755824305017305894804531885738032601626195420652059171165716056272415286724173116894252563219304310563146003709079684385721259830112472400516862213376498159157677273058253496649067359355756024570695400531043123009813277735435905303208169027235844274110423600541784235374825832473515516755497058642690755525636482320028640589533105890583376672800336471122780846163751834324570647193032456918119033508679382482946911277297997591696935821403408471688232744833053541201730610852193060946029672240745779712907642875862599375957959589540832632916478762161066247097215707473541694771384320492399580040455104049349435974461419639947960698736129403907890094636503615848344333263037129044672426877065667040021116678721978907977869286365770105579540653542777254277259909896437094202622045581833131358927099831032555895752311483867067637391868555020098612077985489930551819533771541819753955632129046396615714859057480716632854450289318386815491806588415221505862238742744807771463559850458396685530709548393576984638115971700130331464595495046950966048162855524621484503000708685706976202647796560129631145768092146100760946050601764300625449845713275105053301817689115307094652348869768755280397936321471090139634536499188067809866245368346863078830887248330780420870056245646690157522765172400173303500511884301586475755946607240787984200606086878654030910929866572552079292938574628974192666108215698465108925355861263273852564444416916684687786142238641973140368383813946900359912142540229560269015771440475873153610136371813026787328138854611779939881206013872288119134788638066610937383264303900311652530768958496655877648099339716531868359488451140654992402265300744752151383013063002315726998169694713068496062902828908681239371290743186605065415927124199611896986372513703478331432534157208982596960702696521108568358182785508936559153446324595727511451465260809747693340003180445893258267496486925856239659241969055468893095711145101035513995257802548556427839634488781248514656265207645251400700266141462640024119893188041003162758580433135611115361257460033280858596690872986616879658763224667861831008092554081041985229904934145328348587973673688321969688894804499483774434017855460717015399532102947835751601792024857390394236339223665740977528372100814520146136901303927220562951190256780161985857071256995037977400334025720808871413005324269835691032080052707637880350893346993657743205943667128126040924006184248992999999861204648130811830818135633764182927434787756997238887238222389912267992850687331349790036417953014087310324772346200780881763459878610410713808098477520738063258145859115519895126106274965866707691303585724600836585559580743461248530648053594557915080493809365345828867139435448818045019481966462520791856603543840719859365382859916604334363333162363452344891260855733046075138642023369783499022989809692120054950145498161311376305900792464896203225407151032881331593845745934070383371284638952595504914616780556281394018847626492199683922425482167187363220390040398518614618997244368191146943334108947228889228914763030623947075490809010061462777541489276995160243215954191215601972811219098423949870747673075297442773275582372660855553947069735671306778195753069515956619553563368183892951540660762609228982925708961493915747151231881979784550332812043665135399938576396309481539709323038463001856946181542662128476145067938386572817810371843290408171280223700571794818241812762046194791465497873272236810513881037324873886554270872862599765721395845608223874278556493671346344156852642122107495340026616135178459181262716721972868887951684732710809333181398940068340471460889100957292264022432500220834611538664118598167800304584108899067853085223258786337654344102790726067794883481123074993926116534534097957671787563971388901699097733871871039343625840713051873124904091826577631045505251924541618053669192221753837239521922962904582391989770784503049894263402354360979097260220062116263271550182807278753437617475530330643835012785130813385500418233207157805478286991989343306811307666684202126416924716989342288468693493074911592564034424535235845798235025533341104029880447904857805827063168547493133816399489038051411760061866234967934334259056806121312250202789693975157818752675488714527983334814668388457075590967531229935584455644198662185516873811343063296988850602630285198663843854128293635347949778664786607964114910968823466646419218644985442911923925308430596135800440792323986335712954568119843329689111739929163844488361061265037798323034756619051568200347125252205736829662114521232502894020146415225900147960942485453245277184881932960892750712708756538188553445377348460109594072516841692117527396295684184240067598255943705601991664317354124807621905150762867908860326389952398615762813482352942850816316210365505346541322530212883827920397857940472301812229694346221315359231672336005029320769122724571468720109234947354228324599071843466876459749872475642020946932995425834550195819907298014798247978565206733025228778636229262043844295307888357209921523679167923693835660370495429890677886105368771850043779431631682333023127071478671415117213536479599236249558293527880103438511475849537662844625480373929191467321334574953992343165078719326445872565327367172205558009775907842298246241601342941907196147877401386161995489141008162706580737874391164700600922341011446414341475448022556997561396544216659742258170271603968337645072453856903830470509974610766327446454648526365235813495476447598250409817534226594512935083784746181009422712288050667972444360738282695148033963260150656622023807758764758901069385733789310953673675414154569896864343974786974648735415690743050157174955460025724197101868775141989808082251637648510884046294564303438066244726368095728853079261004300524489901520402301876521860258910033003324808865199962703275380145591866999421047484654737980103056098113968502289125352702946498949054683286157318293023733425090444523612458749954568884620774434673403943360772212335940559005351663535149845900219711882181493639422925452273824535685723651638518003168949044737667259676124479680282987795243657584727466459003460808653603428778085203815973568715179177073517243837413610552108757389096574837091246658327809660437278532037068994122274854585186015226273841849196395434242810598458332394352596218548803685786970469589554286579940760881935294815360328410681678934280482498904735405081340964845624794230466010204755662478184756794476642908354962713536987049943396964693433706975972165153367007256412423531980271626506191632368016781268981845378678196373836009124692631575694083437467291213984698455619845847052817008189083177366614027207195557964717133657682808755153900792955176828530252654483508178618703745633693738366039060986438935597742641350321274605562295946318914363580036712638033974617682553049270651662221184729756462604431687876316566531202064775645228071000176930155603778877625100511701879622297125055319284967844695227961272019966035920747284124581483396868386127616382909282574313723722174264949822368968850911631877101567061507964083603534598462743721818357745785717921222144870577490175379104467948015260842916956299280766191137955572135461545588464969208368019252940826921219853426019983574862027904202551148485156048548950165049634239696190672131084027008164097571043768678737979196301683635687035876501211065410970480808811045702153938721161084697814362443433797448756711900383394876388337376017886275371916157259204869489688684378552274756380855685868077033805108031773693176998064834409179775207179873950244894642241970262283621746422257973839641786540084163871837426418068773750464814382559917643845805986000399394305267823377149462987187852518907231606818068419962152513223601986140670824168154002599644917880966050572011525229485553101557030875795020605746648832367993990564296870597767262612018263410360048926520439214407364424308647198888225522793693873151861787997435213650934271092521991229680876347109474884975613411786770584551730913978162753800067624062394366110311464217412286852694336203916278779972306921167738554299760247164200425869003941304329606592417997833631678659049059482159518282801655248386532462567108036552553895886627632291976951290879780916972088639285379741914981235112214712961699914969596867586752588828337847865861964579622368558778657444478914124939257205645126682249253140003478131466608507538438171006086105768095391719338068720790235102561773199003793730053229194728922255332554792323406680892627236570607113160824376015347034911808214963818061577913516427358093538993668979942971708123812739627838485899091276201043984734007437029780512045897613746613615542376645680045388286345715774534138708070010975030194452718109164938606867210145875143656605850608929748491278978583144770051998019784143487731932390820815211786532434800048461179192942309818265113401646082759251464018700106311932677170001325844597864606249064700086230537548383676502556364784703001070608334700912698009569441527708562803013153411472811846444960163103916789058873814837324867870265473650830312552898872037935780158618575582616280427116630154019489275037961324012497834672429912078417933658299744210803529006840067093047120660778607917479079000595474247398029344315313924361126418512315025363910332272469083447167365815610107320601575181222567597677611598833236405652292642121887410773102534941909970916125575245579477003735390675274902466622095871304217853684458656105535669083811462055400629741893197612216494332870463304307755928678188705732730951533622445650185023987851119728973073877247395052343845831272610246242200923148374041438546448572699373236344927746825273279568293407748379661913208935291993295191062733426979348195662335488737870991668684028759107449752388449042394490128874958779102962399636578027745468044068730398121935885194926352829875716053842567199674240986555473017092482764108872867665139219245460946025432513764905543337923849023799585827269047632363667360057607330017173838134618656862830389000416594528739911839126402594801553593693364020427026650504971350843175112804868076328709139968956569519183619626355765711267286749335502208415094221154753431342510821785411329820659767981872286299200498172521767156016281581781667180160174547565819777624860552107973320023968777685158828236253746974077427444307093749470678161723700675014476683006724143739576544418095266852790492233062203257888199810675754268204256472364524535123950969710198090377525848943099167543940339864327463618138629585107571002443923227577233707523404151507194737055914455241739118372422859960628063404337094672882899109026789358871746348552908956754817947554043033238758292839413707257815330971416960924033201875167962295359813608226697569758601916123872755143566499295719263046168824307693469141045128386193729061921713292139761092461858203799198708229750593191361914912501419640990809273208798195164591381698067842490788446944672539317195649793584194448616941524715177861580503440293585657187730778903558892842818261219448688304083880202650949183328612819636818496689500576074982656362163039886213475711225744750279255974969558810282011449418057526593765731713168558562498529953081325574011210332032209054721904730655368335049886539475192322985350241196013402118031522641855523614356575255367798778291849672260579982130577240700971880719503168429652959108997560555707115888658013142726629243782291205918804594888720862222081595503021058947088138888327412021147448475344860048058766376505807863443613602310761432055635944518660791576541324986534338049098310425038959689436338472664104700611427540967769773189666664528419518012596649836819639819167619603335980859078260730678752211104534300215290754491961860977044827762343776476459897738501309902534226570342890458990831405790670942234727316753024380875146147958325835240025977842902406750538788518757285636156754318303353758973732564413336250821089740469214145487422765380543449011874481833153380753190272541610831148505197150171285471991001537109607649921241353443231162643117696790689606779421532272196701661988331014477874316691458394722917399807667506530645602901535440333859620172469289569822374768508021735513960983770824728761696344728140263529956312386478874260695211405267084451799683437062834545618408735076263627144250040781258662635016079862948701662426877203700136036820210211786535447883060294687049764426993551743102661741055895589933179496016439436743034033352881855864536774966380875844268824226355720341160795927889317278311048547288166504536235790474283913465445630887250469669052042084301714069613216316782709614850275935592741777064992174823909105035466933992238371387715101849761989911273352199491684547306041339979677036441904827069812732788819780155945089648746532146999739245928710454186750063612003778784918944539838588163436189760190347190563613007936576281174773549588075658860151339087461917662336358626311354179493528918750799247159708380841441552011293081988352868195408477923562145836787989720507951364426819356383035211502532005919151956106618717639417272921240044001158067978391557256845673927476334646300242429442946089391399624282832825462441119745704593553515474342685400025089522856994840117170854182992000807270106880447016133385517595275518978053267901252762165258586853887019692164532503841007549581836499521304038436133880032496551040783303082137285811745852780935079788808862054716137507870330067031492454860686519305774001586967445962542063627431826336146856591111304679674616169208614459791221700618467600730207290976689150124074368356753633084505243484208025799936790787944078003317170877538045474991580971346110369245927056049506796654834807915457115937065410578038357155951822911262062088861339841784740049496963766481015938827716180199914815459721495461911171285347049386611540764572632499477636889780978008701499126736108387936444610113406376034905175250267510078673303587998428911606058351713384730795811839853760896412912282772341169386281917801398808391053421740998912237330330083348423401515723035311124289645111598611001014602824825292524502864387354832694224990034307317305914066435427475989176160187783564573973223411445565568312684807098239811733557512908982659502194989601448781577224514397940540914483278231789215542246621728804183274727814517006018917517052127610042327554084251484155447176477599445030821799475449392788530171546956860217445204884381313761172584457137484583688640182069962498659887554421383236810222191440821553799927039724045090927181880896244173669755105455415706013489952295841592055771575978496482001996348122143632025646933599752756073650122292924279646602319025107813872743568660925053930523774879500912865101681657608388695573982769864895836779388391056251803202605913598859349730244524127495271294919259995901250698379538838847079467764196113720112418614786883163342833335821881540796277312115894947700797472460111513141609345692073854148313800263973637514536577794044811117433367438503929363973563711237678776707610850105709821451365404885368138038210792689616556586019747148752183719436095151433800221340526467374007767039149036659170914534386501047623033956789371622197947034774869343250219587135293961800402706873120290913610071839987622789063103444179315736446896483872759357457960310063574952196556628528804753943063294420891845952601616605492696252699228898015027791891490324066958717075543297865540459460676067804224904558379693906481382305588142067911533791954282174431104279001840423364322424915824486849965909595432142861249235340532776643679450136191227521288119223533544908607119195877638786840138791408455234556917432573779980189322817413760238064398825045663919716120965925440962010437932067161411227544669432796958395683726802014166544528155411135373794607637422927702895620780950816380869666381857304037203726695818106442044185961738542103052444674292213631497461468320095641045082628687919850824835188942645536018329572866024079547991434455084904770818478592259409996468376256044512772606476573586023521763501979169496924390254029180911442978274583311507555765132298686745231536184175489117241980908215234400177196771393408636961648177644559359874702296865293763928159395989580063347513482063760746950911779763739096281043101849761848295708093134114144752659689890719919125169460120927696880836601818655114149073744814011471113742022010378840071938520335655531362130792919963458792851000555981979057688768327206266623711913870671761472321386194457843611160094206929168533849043213993155470181433263633056968000931901335604790733758653589329215564265225114187720841322843802544328375021395907708949981336734120411331108388356124347735904152432111000521368949667543354188251371735500791323472289486226470826664638392072853847876487905852904383967003145988045756045430556160896272149304580690322688430739535355683447261415919779193961326220762584060507093947242619780837904745043644816672194204411403901072370363591018850306993184697514645037678030625327058335582135350273168281765055862974407329170044789600166301033233173780948253931127751196246440494501138849543464516350500175831676374989475042415136909531494569832439140827796749001112758046867881787204191620592892621265255700460333275206442102898357543714802420418206415997508223381488171272965900562675019615307896556532569658927635672852677611907429821639927628062157807865602103970207935291547023277791991221486170023201449111686783192236585483421400026483241386167525330277990411155066740060528076292906767493803689891377708948107670585519704610096772405505159101820131660607297150192101450783792921621987131918886106401199014599719788809045424128030916121196366335134926921308083507139596921975086331694876063662138115974785625084961520909213749387945276092836623140285253603955056172844258798268964862523335190031667196287131171188092975008512918914200212288835104001032654663120604308708916746601269226656348306501763255133014718537984270171855765721358339192313486029747461876311786238134866338124865808741729576951493224019636120781996133045655894463354445510232089926410357104941336707185707013428155416707783907480866245579221516119398515530546222551397394491624871458488943700409414224866483480172682788143213286885172632248119204720848773119382118489728348072107966941121309905275659998677428968203862691602398999813757301650998773150975160294959145126147133166363426969515220203678331655875271800581819739647050883616316701124510283680889151365448834763872347823087422670481957041104067646271263997653389813054573789480097061544377789058544456381077691598386046875309648189559111648600953075938180861091456133390541144827124057651762151946503569029467080269653365781950725740348439679477745954577181235411452408955646012377397901796080523858013742654257623829102549385264356161174118625129225513797384495596632839014145607926159776450171677674847508363978571537462470276196425904678209284793645342135120240008823564193006180350082484967966676649565509178605766722406432887841873909720664455749634427511873339556324706388221748236106814233265850535456289606759053026291491943881130301746122774827093444053766434304519024924538601214156140684790458519279724529557937681491126520939203728326733413708061818823163079552994959953588306682931445958297450665699704669358517889139105800752921924900848326347032210298361400595968122417034527649229838796311259084817358329371292984272157645740605261478873747688839217772049168180552330205271810984050153046548916682022566342719887410973232276596465938425011031552643384939729923147532402857577547493357781365334327746708915912642667742241580900961521706266044072482409964580923572818750435805562513602085510799700330586363609313317477539747032998376713601709382397871036803867292387587103190089672754945167057188895286567455467177732233603858041018718068148957647469260059484134987346898658785425121140773880133146369745749665935407960336760052833982540402301967599109957519405632193949107369182633484790776616865312493208748348183562245028239729674673397853480371452289607014011937979580459652536595250412681146857038849807966269585205442812958025181983473508563233641943318195716228735435129814816208727942264735013970130693398463974217242023748358909995078597230130867758580094731478867466836704659090647805450234143154784690945731731094241284997025531784145371548005535514545937281915115691296845579540211810873718252233860223786867902680837056619756382059967464488722159384834040007110105511533445422662701836859817741284062201621425772154641840181364988975335469385828660525069320711124040413624287174619393172813250799425872760507257003459709359061686454329433419462328949495284019166658023689418110094433621286463452831010918384521753298411939058729865108516321640264428589895273640420500262624906957494977298241056461060736538988517374287565214523054226621444749600932533189262512827615424924862253290906501448276163789606909177147285926491761032959007142983113607861630553410670802447001945734957886334620692288581253321873608363286332891270966560964766886600606281010951236036337702691423556158143182690510073341606240533220831473564196779861770595021191212196920999160569537499231436258757210572128002483986005146099898521202241904712135376928320608163134812957430528387858760471005874814278723569504587519576593631322769381093342733743987240135276097501557973697714247854984235622712361966621458266872418295196131978049759232388677668771640417020866400161661741566815332999195820130957351842388532663791622140658119421278341640747410785992036040810058904121985669325332651910262371043583204588944627680876159146958183477820936480333866742306180591657215381721038989566452490080578733546224066487613909025869169634779348821607609887689365888901854675233003219932230022198108743177428464341838814080731354126159843300485674098189610802340590872555235131047846960142317132826285255495197805344289097930998021692311978347716046505328835979957513345062685666532252360587171691241850595182731031645042397284988164667177059489462670242311328084839642663291617264008300326444910592852542490740937843287533563933166396759677132919374154159808493051732709810127540679600878370776331114759202242915351048905232214158796729803074181089527207905573784417944860090947727286746039816919344450360832074435286705985824595257939520318882420793804456047465013715002606766740717805808343941828844114647335588070748462553575506116978440744028742478971228861989137771915846114705699034841724656044903381203740437945254781097222958793996769045892179438808146611416048664518375517540295164487269680300336568701872048093108965751411635080718269542435685675943754676461760768024092759291036555365658142233146319649137387021815776644512574210067196439577591154044765884767137671822045905162512926726818661905599882875487326564051706214100616020931158216252361996575786589510792501888095787701394991299375614827347496469780703581700054665325783545101730518130990106162127385970653151160459107250312467927491843512057695031142229314314706177504373424408623256442539434842574922956829854720331212169332567695081067954217964136670352918737958177510271133300447727692558711312114372081653294741359561832361486368776718682009782231041178186509700982886471150760168258991477760642583916873382561815201463418861947654134128569338473300988104882560727773311945250618630623722458666154898394873612414288769686902184545193992470027326257421291720066880531687628793867147961183137708135007526491160074949805951324381919088887017859885290245969634521120642023292868596809846100087674882863625631968579412089594099923811496663538513262352734005182466209317161539277932806865905849732552389407733155384840638358358361871373349834266524963207148813106374961086673286178842165567895444169142462610344518970731839756087069899795051903919866908864711106027345618551953944175238000282408134369241519512332420036200346255667301393983950961115231981396564283644625295236496081770838073463679811920621556294694438983418149743226230543469934123885810392059923350022122377926580208917505328282176294230721710001619338973812356029763142116986126766074958454807218881241634914913305039583819788010141929646397170852691594765026695951213209411646849698861599084713401155455475747116648634353253029529422244148673499312871310278178010660138425712891914034639850313511497585566951028563909668179659638583613345449053253965348230666653863432323325665198079776849194195002416465579003340824797917281657571016653752589586150092699622192992881010093425384861916948079649736372383848667448595050542669714629837932756794252774440140695561090257434267844488559092795623973345141844957623837044806717031141032746894522314924504746652568417165363864473181475557254542172936955215110173609435844838117092078159693351988622395980166036335136937270168955589874801622834724272396281989019414025444817996968629410590822348431817178320297868352862018107455225279752096262082624370790671019627802677562983641201777511510453564307440845038688754340227565023873232215817142422689325770926100317064563047947722304740736184054411504738169586529430656209544732687945333824988440896649725559647864257304431384834620973775335630815603253384766859028364375856345640134661142180538165216164968704589886005623180952907723051430699505819833314328838931186779020785552981300747152034152791829131858914528822398711984913164885239563601752276987295363976595432246375219495487422216848866661702531608523369547578859631449715928474850371736190888071863479774257842588323267108448171806424594798985985947976124469485518504770779892640745691252805855293111617731874745005152700453087214340693639941855221469131752780440723393015342524634757557178952313834543906936020844145840575696495757133189368987947314015585473661109411112408834199319611557924316844926033657787985249198627708925090566195933026448512785365063070073760730376854229268037511346951364737777068933297675080918903772011054629887485990431534146139111899295018964889410004550901729279900936080368611661725286178462544940412331519619257641963779718586803540442472712941198227791482649440118332945437262242521028942576393464126875972055984957262368712320323046594705032418501359565070822391164298382265780052317229362760798274935227010331445793506788963299871961323399851403557346112643815446057256150644058495315731122164337539963002616760227988683318807359990335628153938075145955885516030766719676544517629058609707632069775605816447578925093455726891786507858676385253208180723749907979907656981466629973602304932801275464544177672406610371794979287158861809057387223418962159243684254933861663194588631345172513785527352901601844602000271305639373191209252225711106145033258208097541357766511553283026522968147993655631917742125851357992243447994194149276806130338424688949450070261331678236117962739922041408528696408407864700155672400612908349526907045059760066601596727040848717877845634163556944913144232331193882088079220559857477395523036154775765207156308352639912924558495820935624759386744382090614773343991420352156740664492521872469645383873394316505071590959528333381550893509152770882293954758100676821895192063929664118509035421711683156210114197834565066211006820831554820903313585712773167346735325057635767731751644528790648298843812888807573735857915236545017533422404410379116899394269023402311508118484067257887167314819878175635173471645105519226013529705098050989157744326884481708541877570627820430927638083678765389404493746541884799418211823137173868740615048855174305471096436388626487507455473781101271291325712844705073140668589540727455377403245650008418410912254717977241153757389680671226841760731336592263788690687164752990842560891988893814928027229956292821403476871807743866545653134084621513692866266537477306777314865297891250644017154968276749515702027702001707347166405960393080189841112644350563837414745348851998784041556713704453131732983707557733714473477849467305191577971940894590870357101003617287517848833765576088661677852588397729253937652770297375913310348360694438350669143493062951942972227407030822314967239488398172076099446159788591366400565099175642847633946608047200712392248950818655468969502754167465272162564822161788187570234207668097320516777695388495198748206880208664957787906733017905749982422872655288479768722218825448841233285956729172347774246140457811742737521237991953781301657318101899369572977863681225784616385997305903549206457911856102320290151806500580050657643597534228681828827515158884497736543775992339029416629876246999591980101143562719436110824593700513505896396976394385790971713839303345323424214668473324833311229503407477371164778671329912711976312655418407852005725340329010012117995645550499757830490161170874831782548421850336292716264226566828562727281281373316074528685537236691255721941142313798875310939955055766915139676063123159438059656914914243391543100513650389055131847497604168143186150563209918236919352579687810167617501257480883245874297430101610305903907034187141632316591323393698383190746750670221773579517968568005747462387681476584845360139542008467261318054042820850104077035445783077940482274972799001786569520755586286614546521021207323290601891928882263295295396553127408157896630155580108921893065203574842164376311764330475819461025501645053818040930284712976063215751137046655118572381943023063427684144797668858758999206639809922083687552047020025445261764454913674972173822895790082715511565448557574156755419123377729435710411759531647947434925646587514199348558847027694308703860232601816176690709676026917261503967588184479907230025825982545331741057673448625679360425183968336367719984165649491774574440450474104625386883060728827502697289704021692257263884179781363967248261989055790697865995236433507880480001405846586912904820154173147880017984686044507430195535479957098389370883669076748028659692389615249283503288142702451915705762179490205755782389222086222668401980337876606461087892150952272176843295534790167170899093462394298198848673592693824943465423256295802129280470637484421516478772752024885148809152304401679031280803214975741050590625768821552518870617340911487747097445366054406575673372834101286257047980526357125335065581101526777996089372763115738912436167492452867517472086890446203902533323778316180196548656445836623447976464193987773197460664088611701694102154426227763202051162423293111954295922835687597840840956430867484490202837863656128458104014770722903515804347416320082447718581631897409243424078996455872321886400317277546362939296482932058420114164676626248614516953131330592073431461099598318736284474657446847676851880984165716654737503638866295278023749677727324250163040686608611199100360571378576546731180858753463182604300423781353316527670324697779636765232841376076895039750212329909166055448250544577138377415509935839723793919984148728977750749670476963854380104156677157216902104542304391067377115056227702522811530488114409636995275277590368128088231042622528512017708833783883746094367880064977089627195086204847602615982410158245964486757808893904463426081866897107302625507685787103207535261938793697879797413591837217255485060873505074190906528007850420589429261649820795761501562503235556732720534777648451653190678191709834086557346182812757061850251718605893137263396350448301003716778288696835811814710974698864978657806904470249630174823805925345059195947533268015199254481291163837986070874409550520645318409712065785217410450935282836454388621883799848705867448666773693985643455361613309261567903452579277242517229771058372194397274311822645273731542026811227666288822710642067029931486210980684577823840201789938746085444298656566996935599036636779909993746858929973384939510563126834099828903407878339853883529728374051529818952024104661592499167141526964711237731911815100997289642744871706083564742704481688202754063687643918337837173878642290225932613034098594445183370291020128426666422811614216589677398027987753185777152705212460326896691768449677649146632946241955660838454574874221760058834767145167179626244961775163544578731513398636079217979282140426382890387752742133758143601564747391611886188540701474701219381575017903392658077237828842216801898788982269868438832815855758508085206680378450939806867787555798171367653710154299171213091194181564312309814942317577646005637608164337698692667480747156241791539480792435335817474295202179038138795790919191788749029417213236969024091582653370036406415445086067081088230486369734872895934733075668389471981657317745195336352060484869007849594231330358908155232038500438251117022264527560286876421523902202114169511118011430849743320481172931680242449504058655890132455046211922087595368094585806413140219242932305144877994298202324824536938867026632487596931489141889202572335091548768490750647100096999863011981545520534374249107224452739214943657307272986547293911469758467881005055307825085107857742029281751036970811779343452261942169968104325685349232759078826170865440483048937318560609808506824150673114205528158534214093240488130696391951294597868687314429817787861161560018605651187938290426254343511484843754062531837067451973545239729215956965996763900843791312452836521661170056084128824981417641279212093538863960853167438179854116069735169960547486632198378883965973998793552416005194656134286146492375427501163839543354694409500296618313269516607800202555229530079284373531566270183953137413717597184225041032787157509423737800948273090154387888005266784375374655580346249843116398810519949326570647938755245823226147871688403082876733780754624015260319777460724602516347149108277230997327676868358645957194052694254002886948287097126596785156053770872918295800194615598831665768733116341281828302225129955418647437891197474393065672052029358186729569514988603854987774368522699432411949345746616002112654618799771676064090945305790348539603490396559918391206054796477578178040087030882614294515635280684610582082675932641493076643109957584181116347779960373313557889770301355138310483845316770034357615866887352550907658434600737770749316130531419453496380800319039813292114811658449470987608100289506331330389639133609066343255806969332878673395982892693202692465542411522604835678474012936144633978187971693634435556747944494515493670898144164019293132510704279058493946574994582812802414948302599373135665938976787437916878108570219001064389172780675258007877324076161342792799852968572601635937099828476141913520034139006656402311489940937022925547148234325935289985711094308773108952067313915228808263575243663575643227677985698683653347190101755167532970854969364500100192249097443161069871956605663435840990016058612835242976397083874519156717227248224544461827885696984003105382010693566116462603068420428839570209371252237861640158168820804015550628468469888209134731024917366017797376872076504014677830843729370457870400528668659504875805822340404120795830489619306157721158721297298852858738559085459969641585584842588049615438926844775752326896031068677464147892760938008384447638680698089748899613532235512042760854454362698436394942117248237527083617737407432204800489497089418664330853327218394561969010212440809487918538928615848505423299024821707322016271997109450968083475079191091201614998740843128168589060077880283862408425769322951357272648109659125911853463508892443261441032164142497539290439451171309617129975252162151688013469874987287865219219258733500222062246234794527622304891871066733981166778038179804366388527369091227726655792222210311092898040687222594821708222087380411672230013150800280940587480539482465948599640418613736592483205343477790094990987599226750437359341550403387917183370926068474319366491583449918873738566887308293500547369513924349329298218576848505805905146102111002857172591202988538324604918253717677018893303869728164689859183705195765123827659720732155697661002532717806400065791418778516927256684040851723558330358540316704131407804100263587186639560559486977163925837515291709333676586402669620084548634974552106680362392750071636735374588242353026579855211006903490319217063518514687737252010542890510883359243896016292418568117014900009424279862072938608299326380395699428331516624939556137932283034939802790875500887816683480960721270240178301963030029294927590503404368052601465590169961850179120813028130705624035040457491431236099165958562956624267972990264735042120944577946738999332911571517891695805017864397113203574460769719349611245572351784908630205945342684644349799246594885143038625785776285687477141053216339657760964869045184553007752204836333686851929321494044893669756103262859585904025490870616571350437335611402585820603989956403091067252830170413560462855272407011104957314598256858626961195166834698787803081023719534048459909801873289503132478547633035831156253549024950524973278613849853338367423282095058424835916798990844701833236539602434912783952013985426825017431916865843140771165430033500730441057246703237942429280459744014966358425645558566876737088279883970830816871326143875840453279319601674099429538738635286431720647711905464188295457392404534772123947814601584564339205326048897537889175543621122430985813068978431840436317278776122169263722136438726348634792492340392140024353267029252997761306590593757676522175557492626755130266229523390362811364150800576347870182438447446849637706506881406311474737800400902718247130779285643057089811919968751713961101678767106543439387567916481075806422616292790344681786645782012068911215573044866716067251731668436430924786905231314974188887163205463898177743433198803240938041863203350327617364770694488289455247714361280205335380673935539874777959778749056565510711346230897051301971896174087106234419991604727097276141289273873082540366436572237823427840146817586736261353238824092247463502715620191696451687803025144899005140994311496380104060389697265024816404583384361997938725082736586122653548318176091534009683823545826043366687858201133275765677636106812986000357584319218335689301793172729364531278317139747079537745491750805018873284796660719575002030238332453047118695766030100488922948135098601642322422276391796049342198206303934761026444845711228949073751324976867644130836171221903271256757339245552864512405292430685050757108062328491502248681222483362102236101852357116043604979908922218260273785226603969076673598867543939165849990807782028416210899143050488378632612968297778265700555378620232005441280116653499312786221910335373751642559930604903268177167546789771246443687675721870830055212715154763592595302589237120179425953631767330621055830125595838864193415872973551377033222747065609104832838563841013703482285814788546545135388512557874994732533129445910611751632204256264237243453877480232494224194012807477117478496096833197807337090944291025292159495133192318833288898843575387332469466693610288437194562801282850427529656083413527554417956013642955990258756505927774267322107361948848039756792813626816586190499031879597543028080476795098519721372109481918657207927439156630353934210999540429533683614613663364870266397691111822592455185149789162468697573902641321268775458082305114965944915007087193702207475661214031402055944033399694558563558560923264287424587640364693068221798510993973301615039888840746855687925760110839522047044178684074708274067042989858915132069532842595459848223447535113601815434847163013314872861976951544939543865315130169199657595681034187690716638390063122170815540639330773214873033997026502714407849220191022565807135014958667774914643857280534201977271349131415927867879004389375056891952171182065488263557960276014397413630770521389953434489594858048070338980707125318861263905082825450458308676072550778544964531239274316223596349167744143434303150507334915845057089182883322240439534320124341768318434994441593690449431498349269169915444306994260916248792222207849101656481854400590286821627548112196035114500535057167888324107610426279007232682815389822592396207828671480094982505511865957612619183416308096759591980095085079783928406897601341192753643606241346481498904860601881808513722261028141828393795802821882554229902374232374724488524859707279452465710848487939759897330926966391277271271987347425531530030525715848183696058458693773051350478753280440188208332623035505414402734383398289530983671749177949606383030463132441713702925879687378217287399262601500499906062431295292164934735449873507879326746382537473020587971561208341324633580997379533446762899115005173554184330790021314773072263302064965209722057591451699700705605390396743184276061832379553906152688867095008835151225982913161163956240284639724385978445645598500080700428043196896572944196222236105674833508362535014895013061424138392761171152547459963609103633241306769964572149714179212555582222815324469764017718833737056820313188428781841098513080464149621068968531326762222797374995768675725300878122172586019004737695731883227260827142535687057516824261062937065251716946267508808728669589281503129231643706475769903247679366402520737499866305025751189495457959983066596955387584282574146047684136355866628763924205312227885658060490717492151157259083843595586835270232194718081038132095744448542777859500904268748472611097552615954127596977170608566345384186308881190086373689774458364565619666360961829609479405444273137767352790051843948971168802571473969668084634480184672279008062412287940038131359303176024886424068148648094585860699971663955588173850103805516876322279315206598588777271475702887672850807028684259617133476480380604769334372937870310402049840715890767160237966375648488908885833523570556382805460733210609630244343551795475621688230887263214327076894348246489737528211128967319056810303790566547103626693947768465733410485364365712456032906291462342829590264138705900113370019016583130202714555036332923641068639862577524155086537372433473116893149282098438643097326387017148768624853034261237142730103192129522012314486889775851965824986192993316408848006626705375479686624018384402504802971964191985844562329298641838629233577033101978559400568462782363103542132277222041516440042019366509845811454624718814132556946878704077881630314906164537788047074478380492389693213814925814167431178976153351025352951936283968027893817207262109798312614829759339177701129249896628470131852961984333663151562807796622352966087405628824339711361302049655036638157639625334002545999441497112106847837821850438437908178268653818462049722132854320299167248303637058060674610736834965466705031334755425118240354228250950066656222770629135206208028361962196179391395224034354960807451955067805899736852943149224171507819906441695559864223707124246870276241957899070855385984452531571515587144879789889910939614977424568019562953535220681184067526244650493584291604575945995523793331764425624769835905879919204521404687873755970333686426504504389136682336862350775110282625790163020489423912008544928192011697310058598307515520276265806155972754520268208413076373874126964656353410250232168124070309908713642962000642331572875052127684886482719935578484106614238637692873477403258701398170602757483350703703060515054516794800610522745661173134438514858588927481497535071436790119078857644438622698757285735729151841070779113532794936035184079071805751576232559120902254238561363879895442902646422681571762036007827106004251833337839947111063482109721480565544498582886734163493909478523248906182894998050622730142152384718974213222330812877456539447027559996045223204149625223860070938373331826815644506049673791720115109939502186695808358060914581627664352086857556125031840789156781573174478397261756670051221128138859540213042086579138262687363394177954898525995712626997210833946908407019323321193166667941145767340442657744617704904618111554705673994692817585765741306369867737847843131898581847054466456443730314518001602748563798490715465867099021475252559861875333708058564060882113310654830930737221387138926863453138259936577347142243279819125582737778809622263050828405920736759271835088827069647776106164605012386557768323239823224733737657725219672666031426147208261467933023445500348899346945556287638621485908823473038629559756176910530977525489957839375559719825253482404029755151099233517235298925928820822844349126255698780381064518762728453692889839670420585153604061452066898853383597035117333499841097572662406434055128076315653023378196496483055655387968916045252713189995530518999519874750002119351161402310559651266995827327633863392837741860512645250503060815936067952450118173554043348780528645240127984451878534141104564002299745606252792523013472002650682401417032452658415232220611169488764205973010796561937639776269925404047777529214581267186813915858295128299735168315753751241260465936015414632834909272626925321372164100386775633181876295960552321419090246313608302143962393978963132269338010016534092990269768802937880662183450172678722674375580727025414038045564672314231222527022983190182217247665136450960515809966201931747555528763672421996305787586754256385429250044508725677997227593962336756708904525477017795413518367825024835080760739836465076138936216192141793653927513612132786892820011270619289342771758155785243169218871876978670442190968280688508579017774816583461678754392245635585251760708126767695132980447951538213670258173660916143084092980473274531560993711055346411426356714251933051407772100803317561336675330377691720829950715977472081423467820991013495171967081236720524382125218781980392929253269538120091558576796521936186820575771932205286188929959253329724036453619808932102524840136748068630942714772694734963404546105389785359742109313201911904812483654104318939071897265653798722303458937326217416272689580431023581583696056168115088971794954910012845572126456358038735320695896768215721803296955495807930060859230436005179813756190780132193879224804841577066928034840419344431535788433687496354467943194620174385871609291819823114840231864804942435369267555678391554246340198400084008226745715019119845973416142810195442054408650901909517215735949766676799297246474455369876338568562678545722536884704288300821624185359492774893740654332477517983639659961960386315405876640698545415014165147032996972953612484995177092736265834628187234076642620482569729939121257194246606195105191226932447499219568408988474250770716979986621076229398269519693137666972204050836722501539241362177684990525281136749298707629915067933884804091518003382530860217495518573775796205006297928705600006865183768618780234679204540008022768824615086205072912171329343495592863225913244155389006878676597714776460872525257461420529348730431884130399718856780751369071703968109319688514818333909772933055484119625249863814768883827775713456965586326967780869070647226329818970749476020867298298235065912738282756270447848034087650695441202779437343996137457787394784642423603667852658854408327119696977769619184082076404532511355356838441243186420447009442606801246037615044728708967923115752143730065229703443860180746463152768946097375194589270141202220896090332923070377682323672091689307363273320777290700112888615083923720151613761567857214223321533246666799495143528398423227722963007922515197959120523705784428595952202521549766169092830905780227663890139878628332711951045161111029439188145385064835502634624204719104313566723470743695691430568014029027987298865755417949294870249395839235974712634488667227932282226550649505215073402095038227818816078784256758305930185622703087849966669415516383197288171451653631297582959803117409669297108937261475300355027033332776166540339810891594324682980161162196677270651525232304023518977021672687443146974804826325079646720698154778862041517483840359206361112881851208954452815622935476817604865661286112029900217234894843363310774980839270638594572436782414925521243130291030451664713202355978920374955273134377879537246187406318158360071358943088817767079377963601465460841027836665356028037584880868515628390215838125083208219871307443397076015412829986807005992232793299832455359767933646643263520404166073484264286294930650319960607026499090599653311186180282225558633830201223062949567362141799816750201032923602374051138503763182877933430120166495587737189271739333843470932201410480713798822603965396034373468149674221643661471105815643197109919399657651033312582146471877183212175691261487449370336094120340001921007226135257599063349118051944232793251665006129961802208202562541152729289650545909430506969965989620539831632842265758162537379744577159610700585976866112570112736250375452784822695525247624617695492771708047939504641219298783512667551974430031087023190731064438226502730839223728906255901140070254706816247820398578628763739462690973768466770042356838582133290009421198271144255772237619455151542910808599875474492188846298172160497372369409853017060405308873120583290549909612783066915213861621112270858573863409990861546757602165937912076929230528514647749974101653044485991273799336509607567326628288699598466754093252033446444918885432427804929046039616174603754111054372142724675016055307529683533727390750613230570581050420611479804806398491071362158010905079364575553942846380456252841710065925928148175129656849560456738541985279148568757816446833339063045189790912080421312618606039735131717052587619898505289606033895237791451550569253164566270347704507468108248465233943737302456897177082787140262367674365328526741824011498985803592647543815520165176357185551145926655304918695148513262033348402800591674454085860073353627775796876042255698752132846389195522099046542272696717721119886585092603059813522966310501513230958913826448493057114500239545186459109143335990222795707092077041629557469305285901071943112070067464979816538311789285445069738256713696104001398030252546598329704625172492219946883823844979253773835757730571874967823916495668371758697966738982183655074523900116347438788513661315945712222177624375271574329000160580058314767136902281304688726693490161313771857820539876568461795444727720023924980959909715972047661573739542977269442128307192240566559786110734792930261423953226921550340909828696699717775025195871744741607799249964746039540930551995084881357880081231252620112571234996583401482316813083890101131034862352347104342276589742965639513530785946282706053694991188219726045686628043179693452967038119567401435293357109578353629054079019677799120920852442549542281715537258346097364705167925981132142946021027861277161902427654427900668768547502057973285126815346475558812784903798817745613822832368230777821254041173613515296565804004401432782919236708995090019062449803920250516238201169335685721382672091519931921856786490571335788299059029284328060724156648141916543835978136753004078063717721974219578941617386421551071681524432571733047044509588727234739729840086130377840338578717135339029513854815284859026984732305821117185260874566822172849851681530462251949503473043190445978337720761147707851486824581546123830899393208557794405779662829336672162942591972493018787092774377700670508129010800033165533576655820451373487152811870784180699804735846822568721952795903506446525712471026978596629867651023350404246028526239720602489291460596572117530068290799613005878843537331934073852724083093682494163457823319283508745450765015293928648519086527808927501541109010725904111584518073543815903926402713103490667813186990297207545974487754397233593852267253712648217918040499148770342767673617347911773139524460332579293989417876276727261748269617176192813524846180453830562067736584263635216519192929765318147153658660257487741705370799295925131293658539007597431698424019483249743366626476550450879283948874129783508931921800294199414680408434086968582908899900624477985798546017760384999261733589384890491184973214981971484771633519680380676503944231718210560372801068398867167370830761993174817492473762566347299671913773981855647922734312588176887578874962103303714819117176827077956638396869809733720991010151839436028760193781448222447912242838151101294072753618906202746338690301812838706659263713272277548158091413812071713625341156815503678036261033200080233561043428411188165352418480353449159297480330180269030474197955891578834200498427314793537053067273742379659112209849600041302572158322619951490834465446217055334837986128357823312805136086439235152593064585221084554998704822986113044479158439140017433042157383293283862707766764476337028807490981302903427330618059783216063454874950866329773774457522519424184029155645102880500870490627281313112085098127003750011064562655409351453198625347981710366982831382126434854767009977098052962153441050996403292477184255982465607364922630783878578419279917827237609379901985811638981450445274578806855779649075802877649839693249530576959253283962471607090957826864485914547650586816461589311381713185687968452280638117569062615490709943548521738329521901706430020335799170775488377059420557757355532351888705303299271262256894470424164498275981471593953173021810300856815445931138051057469198768985292585502147081308625535888197447902016297697058629480952753910528050770640516690236815221051975854407516408940220236853847807472134745206294890091390780025173115163547471800042147445872022737763378896987393869476294162269575319064457496156024439661004708825093803750364330445365327840992869317263931502830380181277570176735894358941535968976423561317910327713396883748649698494244429404360614382341219710636100025210452380601528973061660619460692882888674170430525293835752486855604345737722140892440652124153724813345151524934166423512566037600824535388508080576596608954229049569814824514100217252018371432032183177432405822671669076759738813418852880745282874498614673146814272776345932201642683398619308490888587033568307246965965041122365786032332463593078525988783694605900533557102461561755280004785864391380615527976610816886129136804497874284608090739240995841509295546762598417496324007249534908380496156291213366815928999780541060451880012938753148445524465260777584345785576464031867494995854358793374363504303333732140122831551989803540584683607505214487058353500111688047946570967277335225743889279576672614973501103060467268238070378795761903477950698409432295475270445766944134596083473340905050547634565692761337970138140521995906007318577794623302012325508322847750666236972099561422495250898175907854140730601257971678978708306631926352839446196425312194817062085649755915864609163736538703961436089957643956280938313995961859991324530980950321542945779226089939547950497297682001950760413244393029611099097562398219468487258296404318128581330284576888976476266042367358888630493961248374182358250204627038985265660299957591373536162508975981781501413329507652599402147025246967190561710035520598612710645708057997886069876979095470119241086186057394484989986612184528972159649225256930837065252397262300543733336627106844567111770322403102502924370693775556467775574181443597762592965128262239995924252514021810827219106915512790000562517075601033808832353178780195170812368086410583879084231302992425053780653493338827027062871090693459620229682523542029088129511944982433265984473616154115737612814885608608095444570341292406397339048677465261854560054358416826920674572812977958731863361279590402896845250119184107441188234193516296084904912185883397805369132523046983745829476709527497992292684039129013625603263548332299377483389686948121445631243364344680738339360102364304618382928016526050388298006258511043417766205443677292451173482788862493134709244964439826521806480636533788230885544303238579474736406482883158806276931052208211434126821865477323711825823779860038419387528208759462506136037924105011700423189613499255565898906539096764446525728886968199654542274730727192102219790896698243022796099291147022585090749101474233798702802958422240642238475505318638414809338460008598537657371997802269755953034876985469939630974040355580484564932967934338949094319134708544750333453244718771424107786922701796610452148376321957126795360815269947613648018738135161012878359689458707028309746701658658716582300626538320262197342901894089720311369345696074518418488803559432854578214619573252301440478242230939915589698492736405918096561320078957830464608765567548751058913415730387709121988407382587209857907703310986313618004025855732523805160293207384214721539199409821826640522986925803708789866578007437432206181006491393199193764627925842205722914494735894224008771441944354137448826914329219897735411110436577513532135778272302748815220954371510595640447751399275538142314911157985854686068648899346656557635242071100197582878052835444383197598448748597168465958248153310160162690048239814937852119274591854865838896116441463407322598678771544866444397968848697590989209858240803657401451960818675482071021795912003689534112359537896011760011816854841274983746018306381849244059337239651299707978876037384318432941246720600099453683062313331506854728647935422799579267815018709857394031497826330441346316966051364555261034835415443335040491124702131489168141564167307557378585840101986370444487265953074864324241158178133875643608582993282286232597556319186827635395894264022323562283945142234089625192160339970237566632223195003904153842994765209943769597961277241007756769568142209233782217630610981380365118441471429488753770077137684589260914686679861970396385635215633248892361761659865699970443572017001282927229893688800625320531910735302832407171766481520249412358801059243445635098930278382414181178440733392501171024640010284017392935307153574796599390101313709853573377584230840272126483945964948527925314872231620571469562996405666760144498498088932461707391089846800889654318205774860181923618245604230779074701152664066955591492352315612606251863671221681826138378652230885500840530131112919548917288687389811135566054654631462636866701372984089991249749854975616201079287057672414092510362882316094594020394644177710824648794832433976940162287156602909506642118198027745569474848880516081476809022978651672542415854945936681560168861012905326512357690801340926198574337010463223002824714514887809748807021844731129923849130567194770257800678371029167203639432345278110422709863066163411410896095737682655702237400093145446078064473145495143180620651184580305249205732190008991561931589463216066957347473993674570606182623679595396526066400965159189675149038300379454679524413609307738350659472627045516574695911337436372087569748119390545429460246149943633582038788041796885051987404230651883240061609398052642169673524008285483336456187074396591152323036432834599926013208623675325912716551662796170322779700900132588090944414888998104264795593745987304976069692713203372247612399341946869130536591680176669703503268117135984751369594810384871743066203971713300065769354124520707324986684952258753410246302268176837495431373637883702220965530764699829505372078797684504359853493722883043188624242070143211656561082833907010230389597446557754151639412284360969391700445415158684420935862120890456145047387194981864937603448200531524535502098260651974324487089982520749677077536284932343458984789135532724639065159907883278853949848580479585340139595833145963942695070739714087462137578356038430484770174247022992588178774498526550171836540267777725275489707664938004791026704212616323358408842593583652386790888579554161456855965065845423391836251756440479705544283298676067564551610936075749635330727392965848915077171169098866695842293090628177013884524581528240123212062111537600798631922744532377994962860451063413115386901180081516889564046421643064891016859346925356349474341372185817425265564754513819345602148619766626453102929925708918427222702131267615253048260851649866727476429103333025303985731680729293247514914258318007213380620237942218877784164106670713493857141407057895697820863574195966143373120506596935742616903459921290028263617877566741399083574629807728166908591555419138916786944365387893807898190949097506447494553830067879578491015973361432085234736389212555089384139406635045326269618979501466609600642951298303224571828569314937412718408387546502546330709939283393031028764410742609943903627743322646081811928556385288340860864538920520935547894622866040360182457903916335925272173028845136003782795838751352935849549667454045418644193591731220204900524371433218228346321292447949403012340660457154584571086039110264180463322831712872067236271312154822261887674756034815348299308981373340979430828281955866901570444191729947249819000508094938000972221755110934061432752187371347071476676296673749436443239253362180654309380506280589707372502237883590586729160882862942192249811757180675492926924034059254604304831110933547601686775858657437684583499440552375763807118999304877737213192160559757103950370258710197370482272085620494022833569929956212439903778656372687532391711150681853846020168994548605674133882658400623597622959524162806805234107148894210802698338155029907853273415529455886634773623367676759504923601662699315732084418043937852221572160920073459061563803879717913732020068459973700410381589278338911253641770315947511994217883578547237405779544079410597085203828401640591116631269392196128203786659133687973555052696078466463677663163670572970254738105249448504889667600373362906408529453056841989203428062786770021308435826159084743513790746394256144858936511848811901006709475095037765013560914874862865673048856021682297141692689230122358292472505848269908240699079771111063127112666197314670333886899939299491831987217717418034351195653771011871740473410698860700545064919765387737607901634802712642561875659231278953237145112924847204437294031907962012555893666980613374025736567653006475307938590305390239977029156767993493449686377499141615851830816291455699750247594228244374087450129781334785368062784312386340303305739440453319961325058197303977135347418859856604071912215722814514927635730370711333246374038268994798952012762458294747011000133478600710389375170603958790043453603640217528353921961237973090570037291550936636290960946408151631308034671589226297893679370751665626554562116394480251282810218102428006940394579799544167838097519527168138808082274572575822279622515962812962279762050424624508135610716379988021241597536206290848615465207223798186329846124079311894400768512739058951448526247785343120485677911873209634520853628272338643709153450221985659467501995456171347039454540641428270453819793622083438262187650650122869147055369981375768002551286788876915213705742526076619746084495146221639956048137142310953724895123998939249478264748782602684475584890911125799975013572434951602064000145886535382790376402991314269178312438728510936193857236487273556530408428335792086002144117387443489541348191200518496131767047704506498636868004083264777039736765092665878407183631169407955186410151226721808409053009666282656778379672593449367772080001734270717009666788361348940530690098059348010957863670586315768504983183724470439597648138231266329612090806024225625709233457157105023971325943444685817674085933457578316586301723403028508404078138589713148511303562959783502335876544273667879253043032286061662178607486927783208988034617140590801820921180545896053505991267190046531625037189741204967386455976144990082648606878754172847794663993084774918783705166376892874709679988961579378274160021063521181887892506310022662709708886302063991184782243096716612788505276196364922021273634127040182528740548975827105056250297438528060086038056892984438026863241852609103037282971013341832010077349784565184313267856325898274058852152226341613542864075234911799537869927473297845302093155912077503044519839865541954780911987520169155315755379012336003081685989544840126005612484364287485385195921216158585938103196549636518454015704345676480910829748797430148529520265175867792112314013486986422008566975614043041735348996092727840999100590331937938686081498488219111842196713731721216919866563937459181090320651038541982644445306587725340640938143355929797436083189589384478378588881242460979479367750057976565671148040314004558182154709164750327534471371872478478100382916147814260617964879190326182446739751679055180008855864664330936720364585756515126099701474674198157696033306319818491548457908966887726916048496561628786077305592315869581953938762133296600144006001902667740328765246071861520268955959415643923560721302510494358153497268584700872236292444529286858070079124349323693111852382560842723983999037919451728492358604538231447370054692711422714893468425665019012855794530853559787096036693751622512047242611235472226147316846201478312813602801750534942918902278898211424814716375529154386013219038644651691289824059911749873883439753887756447479740305239946942012723068935499249165781547083580989151480271683876528570617360345045780453518462228393823417320258121607854647976689087857198674926364837657878149431701821734196071860965809936938509724085529369066724433959159715776366903837282205036344445247162699278815639231413669195851717120309166113923900945476264484461293507362313248219668758527435725334886668628318984883464096425379279819583358817382974873883724459166505537140822857571927299197946604451642773170136651410176294447764942383225638310570117312202985956115506431738474334818261362172588827092483953539346665385058443694304407096998824482842317163413451667728553226591995031669298662500640222464036615201109694870193502671494522317083530371826520210667120455205382864331055315300156122099275781410188568040380210874147358797385507510096510141883044863007413306157963545737975007109727031995109895990112552992552112811940206094306812410892458484419207746107779542172386091434545465519409886212552367199962956472344090227467996420731183382095363940422791827079617260572248415952595343896739958216943429316244350974723034635043656191845357585997855261778386795476458942474900191449662416804600906704320612093650345540402829388310346116004288597342691640816586455395071867749742839823177962427381099752241294089379474573078690520222881810662695732254351484840941350115060134502140718793283449843022805654559617482410081463514538183741400068869852763843797158793579566923854543524851430512898663429496066090314903139204063931492818954745473916292435246111877156626207458910021245885717260785846489211928715264533870110923921100945626597988879781318867885542459927247724085748796431619236264800745317616752310281328027097930061755672041908299639553212662553814382024468396916729652025817777609838513015344619455685577325953901131803915309383663560314848477276483367166912516872901235402381851436307981538454495789046514641888797257514493975679091052113633487695634079202595265809541912579995018722709775137469551339403665460823771213514680682793611864664313293842973527894052457598583964028125906642617083615141299140954094705848374778550864771381118847294701695951103490677578798524614655831025506440057933398551273262255516832076081774654365899066528445433848726810632080786288539605744531393562374850420583222044531070420340937578095487401782753730889621798265702568810905554917827917211482907306913914327365910508025615558454378930202081605718088889010665335753194870727880510395198508008656766112216440229824530665564029343458865141482324626418302241483956120518806267196600681664290526329243136280488894833057427787004203996275087039906806952728236975771182433411978182627466602699597924015984322140373606065372649170985810622674474576102313148666571836169235250716314783835178978839269910577496199397894035384912865894559543910594802553629926747322039211854465213361498371057200117242897375965073610354184503028438959391034426208907509681668145665570517852787583467625287232792082096650988181671058521969459522905071155835280600926794388353597232898770490138449544326964044927425945110265022753281917251999144492657754452114695753302697545380339243301550549781772218898894472141822803963217214736629693960575698046397783672962942113779710218268132939328428019590382387466486397662973404583847031552891297987180743787721291345659778552711578104890964565386967837199775182390543088379038420706559049169904649402208911954697144864450307854948713240432168567065278925755807758362685506011515696485794614275266423374041657396799656819562041959297853764999469506410242548722984589544525023764092298935896172225940019280661371694570570634622231313790929689969195617335597618408673394870901865114590250470600127889231504704200269195247859354718249128392744915775748599273491879642638750929521704640833811359035990882685969701172913212468797068716419766977468578376835973268976978642636799121433226989377637442933523199172325511433689278534937088845338239323251196273047416134434985218605067107657213531025058664935828315595842261766648336504809406875509331751162621169284166191908048533320939889504822186234236864636912299120430506931737625923665898392772054289988778926168094418130360823159755320351276309195863531651528906826559073399257416329713687543001850588564030422652949589042153941756352752978443612719332363005420928839365447029068626256961010933705557497510875209530155971461425360485440229076382800461716954735246638030482592369433489846226579763092403396251941750601148028353792166446508674976166792471381920514546155047074820704810547144673826294925378434960461437716369683216772025513093391297381520928529357757105274285359331222194093526802594859738766396821262170693391239058921290777304666730996987816103125104429178380812553297178782006347689031978034077841383539976310470077033196798607264496283827602359467505943923816171794492588336055974190452174244970720327239690936561635830000990872338436064776803934349968736688859874868737071900597488876930734236785052116412170805170106899583730833364649197404585408445812510600511932421770214415746705360960181028881632672157125712738937796439878145227871145712164594024106081605625377420093055511811415825900249057573402927744836271484669762065505861281021108141732872718349459631311758892902003035436338952011780453970174086714992880916715156046894806947393788583125486119898482481909990691483873681643816154107762175095345229386434742664388822054909773637886230552178134279395932849751825926831741931464190419651083105220723465356874841220969482217106793673713943353063416110254892403986338874341462154068450999270729330771686141847527030874026985410022774297714717073353691469795334654165225800968552255933519932687033937961367743201704071768354170500936379340272329222147870528266370700315183026996688128146020436139062507062537566675048876960673666418453189705592678234310649523320014902293237200521757316264092138744963940162205351881890488689978044210607179201978338371830261223745956849778698658779764298103464057648070671048794083477861480733153333687412730508079884028808104186112788680295701060291578392884536187244426417727277184032262756533037937480537344127857863598442651916464830385344559295269057346676105774646972208250362123684309263901624156534951944672601674394690451572725768038538878618802505931514128747597432665520328529569053773982035291482633724357880857575815244415337792391818379425541913111309220417403371278526881543016529959565244294237240232302729375062164281230998425636827180485490667680462540405707982887998640537916021187699513800845538338075000569453342124624146745809116677898822652207781980235199498545135034389464751931843049170236049152348830249667391163205936307952534351007154484359205793990563682840084597156483102986438046712603972056632080575902006339122187490422963738301633433453060336664719677503133305528709489320436747004907961365566904196336641799405332277179019913057132709815430377099494503366078369584612043696032868798103345306426358166515066235220989675574278599422689029111694375038627721946044281780953323648135814386576828476140915748645480667268728525779325159085504996162367276385144251935247484754394315323500191528167198413254300277761183978755900589697392028619184572613418554633421463725119751528256934754588054744855786787390619740481351611954873661062213952029930455243933027431885603837504295105585189718580234434492078195809017544698048843624670416797959301009118712222675411474648474757613688435180119408351232522122186196424178172820894894385550802965459054928904923539223758525770697745879290255809217961732945363133737534698651463031989254855341533711178761108351860902087121928994136989176622936603720302382184004276663218268501018451544410467636056413540150533830903513122740557149486932131765687853847567977522608571918102850949862739844656880136731822124068436367706139777991437886982506790498095013365921106818156850272462677608078889018564127016953537573167925175550119831582981001143625232536010676747232027778486067059931111019405374197990347769074140470150566475057562985993399972372588957650932393806296071379763163538900722835050638213807843225291308228338436597303782326139146647795198955710659752265769211762933600478403370993010362031412679475636520430303235288043494130034083644810794776953393429283015967259975809239640317762653084840192418975692365495274595481426454648101626151073928107428227818659318861596468491690233456962246589176300998289544638667015991496326256739556754751829207476996305096725975607768201886240837174392238318011886311174572479025381461635890863069880127547680793675427743222000498369951190445985353768745386828481579114497519961502464967555627571237633913650743494524719987448071047118094506302739119976528785358692776782560217592611895073614852537010910220513150114107330824975309381440259951931291138380321151420619176995569960196932114169485572959958144551632883375096244309308365491547071635685869265517938027103885127168655571229984365483539570940731455424318331843611904301329783734150885440662153042581312002025809065392178291193541155795000166757995488699836581964491443060245531921188502592977845130386221148512629772036634606836633119775055493789496814319641599455705416457620359416131771720366124473303386479662952173530432485799571851225905419691295977791253079152358374915772579137399238904970540769238349866301259453312293751483927383879478837566863036277212772066573092537597267340110239776196414953641434545043163748455730587671324151471771229276122459844849916644317831738709878634024185094712478690353040125361798976698313377845540036173060847770937212301546685076051805364272512700812463428747412995117720698600336202671697775375643073305002399853598868202169391633719807200484247727101538365515748771964117831685028681604419796847675205692597068458971191003256813691067665739642098042583094809406733713650318946594978505266412950636483217108666272809825019651607716248220224987319658231323873606804202080973532789991995243203637082048017135440936890970610923474162494676136422674158951001125645375910305946272318233018474150263441016971244100315666594396549358906481816641664171265362482092450805605240575348575469451653918633040892616729954379595443960265018094400905632038328540591400256204918260035701157114573069043504363174119109744907495327816754604009935443429894865101879217239154245345508387559316262513171552563358496488774210187391047512701381201687182070004286465017500260160207501548827281755739873507807383342428916402405564789912071187734755255270145394723082705106834856779804968867547861698330547003798882293126071051898208757235492336982334824443392478506650080442925490902097979530791811844520473026792538476965475956492970281898046763032666260597116331854289825062986746175921379487974071854719532633599155807569723735280805383692546998193279530156519932045016897533604331632614802469737967203023496605935081497392531166421798647008778838340367540833422755819157487812288808882542706751576146193231746027228728261026525902255040758872833453912028013255748120134379876223854109199911886130028453730820281930242067041300020346206059177247822288540919571743180115938715339649200601351365113797599262333850798713241936420368121250801729805573361466938966464757970726946412149255111531152877217558184360043660129890162441629193116527666219247806503100692440530189437368467348050502009957772500809413081075131015535005596599771680539810884484761981106339901112305578081138619999854183739124323669938314314877825714247753486852058173265528912273458040353108726390027434653048812377938930271180573636348513231655099916488669080560552214785465704506866012359011715194631369555203527826235096532400627773123643176220953237628995109655941349852230033822428297840014605638014154913255629521890144178744000960773763974386643152921499676286105147557505320796926805722462133705676185776506984875239137670304050729073017893424731699192277400940710368907119315493120387703099413582773626279225258983275058803978006457726874465993261840582297469375989222752368243691653652736607054175772942637816942902826134085649824159153194031331516989250008035335101377586186762603731204612058564804866467742750417411548609167769125624781648574887448269069381893468061755953825674391658302293978787381139808184818661102985536506381121112025856699356418827468985346177343520039200551545142187675091448440103961957445143645905857530009825565174662994903010091235231519246548943155364530234593866541817909180520307352177172483947071078046591976618854696093031216804295661043186455843038631257548230394302327822219056463798164777159274666502320654889899053681596483837363714297979713677414594862621161927338384116984910678855895696026768567947079819902834201488113735429179615701226239341335038409302802918032787315768307030387662309238774484914427578385179915901077377155492147072841055129881784009363011917149759197700525208372058644350402201388586771117345238028939774973017759198755792231359130931214263452524200816951055603215694932034792700594134656923907474413004479334498462923118671397827551668838842438811382463686438938133076666199492460377142718755961289453512404688747484857246423746163089786416313852570742780119586599170593357431566361994326554681686176625961140514293936670099200120391862833529750479120413416757491429453019950888031891526451475973056640813710494979600715982569903199756184440996148556943647898962739829476269399461489813571665445672234274606676218375344619817241787963539878060211364225740751848307273286409378118877321037943873567152406087068008834385794856040145520965579409571908623063300640517021555810111069685752313797728367046592512014621971033820750027836721211041131883213544632408411715034042493024907280355416790582990834236307000154743212547240909291785508015336868439993467765566308141816063039126109982106388716968504863134837602375101044304898218143254485605592953882462857448169526890265556954206598363536498547293240907238525907531171215008198929638644012358416290715853547769951393294988151510231874986691943317337022209379569411804169196228487657031833866045481965886121958774991837754825280754037061299520714464367093723021665312255693666694690507988717386098556249873768372686779971815921335356948768832684810372415804951125306127738289775420331870407051293578062943497865882226617091506139697510646450515297220360217266515627468884355481531053385883873929601360668257286940460790389136334027981407227614917166507067691866269791387562689707477779667270162401668709974825949275745227181796000969598705262233882543079446640787832033796384055789516770453363233779002169480470205911394028951004185268404686847224819790157405409532226334026336822284757177924638455692708630933627572045719002660949033287627383049434763945066002123096518117586018183848165997009753780226435184061582151947832216578959839891959164918394117089018437606481691995609642921851629184157063987209957825543188228259177545614853949844280617713110921208847482713566647168059176536979336830165673863622825074704299141346118249154247768551761123542585771569870663606649126401394850213448753230403483675123600245183790968769106005548408951674755976538865512959523634386126669513252569798414392690596893601870694476609516920415094989224550074509266035153113984514230840408744388446541960468345028799916080401958696470862402965247777439815778117911455062147150177582773962552225785715458864249603770381897797206117747280017231594164700323038251537750521109998545608140955944907171048646239762019556819133061340918219978648573700730735924498258296324691330283106126647348457586734782217395728276043523253096088872697498616850711104316728362105228009618753079430423069930837417533960614062638551525795669067290236858892866437283478552498226353204634648025699722218484856178404046058570127082571006748613094938037932876428798920964004030728088389815073365460876824496309506075301962855804227215137062691882883219397973811774919229587488269162242999450114406993278722741892577662562303931842446616988273843040232810326217648273463965240441525841939560498503464782885085052149949994101232309781518028628351429923124015472099743735078532439707464375209251469760678035800512256873938719908808708523073516479191015832204648627144987335888757818329322724974198577198756378295273738906333207893890873428635930829705241527271697934418447285759722173945200745802419903707581703703881913242654689697608962717419812932342778653621459951558612583020825679801207545188183927410980601889855896696509296535445813529644314484206435171239206170352371957011989893647454216579483204634700295269900707607703530400903389009763975988809915591802974312324373257306092062300875016005512259106879993170472167410830922609473248159413480096962364183796495808956480639447708932428787191990172232038768383357760459826161989991536854602583228897630450157667314812644783512707114536434099885555332716343217930264019313522998529064311197423612303252521864526690746168966613755818591671336822806521610302856662094170575332208400072797218575256530056729671658833391914622297443929401326129715632126707328606478078281433772779201797460279767727521569029599733993539416078742181018933056411867777577432719550841550676090136086466023350223392932143784165520468402637485243637230620916869740904302133538330294880021261955995434132098745064735747103548322366061363675109785873874444973846205614536603196651226879090917514014314355934645554999006139571361599730896920971696200895350265691820299673644331551902646232599284088080416174922732571686657728462461572333655227559393786361234513329075975846194304824387927198300237155730380404212039496333343332994322502566977036034576744071773861488624697078827598829110327200690976122324321884378646688748894188911001721216951086869211093237765057919014056557255721372612054261606156322852471667462467611321309936162862928548882073136149783607701805293144652499631953067722247849446116766618553372398186639345237889684561739255032280884784608889949781504014811739222943098562262260872105559371705924940378619653025162560389723398680145599463322992859912018906475911924427231860923889301439194408365707663313256256308913261500956579389857121339783440573837455736395766969438704974911908191444436627772809159957802259294737731522951095377623780838824916994406363078135670668071336982096731704847539044619949050082767758753940381770317988882116612046484550045993411529576326392748035117827384637682050437481399647011166837838031292842021351727835825316674869240488495349059931801429489644503664717882211292712636470409622807158617045824447618812108479415900859165094708066091706459073557422060972325377408346555989845533914831539263962768038530075299340378154190408955443208434035443845560325782604503327550958643105109957957389955732160568322952332294697949216043273903235334679206580650277444572523380772084357493281644114376882304983686261606887902647407780420297012495535242805961845557920497781369975506765296688077616554496096074612598773564430839004151151731008969196564774248211156033682001285477293382412199105390684383160513456722325971497557168774251562622440467708022872051762840282820642612425205341830710817529524539645615396388431465272697713518056887111238413504568806483652439732469685530582089293380537398641894137384701357755492171615309691653847658451051704451518056422028394971314633093755431281387931228334234729405671030700369035704565490260171520763276168554617054505963415040765330717240955641816581449992625102368630472765791411510751148654985146620307531745294243132213829495600539341421375215937834008166929846389293053218587341829277492739327355840426522712119541561607632574984208312822823291474696409573595559545474783593452394089342778743647785503303326876405008116106835789204479943541779718338765825400407560107628561528173763910577776832380959752341907077180729095806235412726821195934939273307681145972660203493162393580589944759878378346764618055080914157707276635012048712085352215887852845440818332095215196304464042160376790705289160696084290006169111526869065098478244733418469032499948033678118729810868438005937202358454754987383428703517417025444605183555305496598239795632898710653858228595538904448875916693325607512166310598934306756695864991429752610442120765989525885015628611967358644487289550888271103267710621400402864809144361351347666219121075255454256221500738016588103576006496714972961272153013044726338679696094533249270733493958577275156379292193729447683020661120867056213700210856086462293254794906583068700672929312450300372714666202210824707104508456635571114221605833410326757536373663634692757340107828470970025910744608319222585565701782961522172246646606210088792484960052690918840992501744759538434458339270080118248670029402292640678079719277936134402353972005942776353548010001887321159750645239007532822343315432885958731858381619853883914086387668243407105033733817300798173185240079698985846774219583071061198502831660632025018593064767980948956636950299334155806341724380856525821966327168424078718476075864340092490020373241199212852712472789672252498264756367698495871836963358878030363508601617250123577077805711504536993934911800580393788297091978889167787493636035479504641577216779898812995992677912402855507753733021970887874748295824109062377665719242186228002841322599906732797852279367873373785754185565740499892019598601026062794976856556163595470643726907534689612764870110221300351772847771093157141962933326940150027568352733631259463183176586046248251901973083507082374813778918818153186838160819522711705653807372742503588914749581429879678402155391542049697534806465081384002907213990875497076648895015151761166800378395787266170296351868570612633837946942064867511949522153939248755565924312825296565335345123472257643560462648714115740269620164937804068899178334407417264712356367962743784257633982034602393825706006501080716329390249597073757283244522598224971521976777383970337841177554461508493125920590251683041545069708693308520586869727941025153622791065061997010985375198387799993724705985864103044354811741303560830741075537536124480711241956759298125885850652255182510452025238722570234423388082654255556581159238636419061574266275081386887673480483375733688418704120945610202887960873994247764577732532289207603129681162335031828056127555761383646744158447102373689746325698378834950166317126697781892994496181861595587655537114853201313500283838726771823700155935727350104248348719788425253598056846074576595646856857110246863999310403789245445475909839931366375373266659543098893434180760558488092133284963370253854227641017894615095870954932447691123389356544142246070327969293532724334879294694544681228533774581648704066419554145861783998283013320783072111311300769946291879797097467236033846899103368404879972143783318523016864046704380287234323568368171610434617022173310220215236267364352004027163522765130847863321913742637595411813569783453087849759181840148019895568446717846088575975035812975932784315421529337167315154210346812449321575774086360008635535354735475923206906636546927365182782116162844199833366748331916072303715046094122943647941734880246787792997822362961106331591653508406203318963742347893107019656929557374031159785769329481901992434456987722616336473270725608424862153491320591108893148795680158506219557357208624584023819278947685492185187172097217930309393562937284563788224401793374631084155391169816934274580669937997414728171491528359421277692804267105101557064140059257638473794487290992564282687935474171541341190363005366563325310336929947139653895216118993116397913895386181732315937473925884093833806770378395436288469277509524758419943954159944510128752628831396133605289164877801984753064450066988310707141317017915411406071004200813299215337184303666652672051140517099770822495847319683141149906770616831314967350931379437007838530281594394660294483811823978065294981090908423052586507872546908477436544986424331726741708683851962747915009425477629560829393408781072632997608645251861727984900800067365984799183726170358921984819416385294139726773019509326761098069926354169099573387375441844789818568997817968754536766069856864398178318860538612145493423315457753543593812411117563165331380748969318751942548084467658095490948712162640135376488687508602434783252796484137518086831175221685105005652712238317912913179800286772345053197692665540027672828195005040496590677376264896967947409414096712035602484358980636391633219601523345242231005709288288889918066222232226984451745937923901930817006355422324408768164860388253197561912670603613603943756041067334258822812848628577283777127025732022176020343470532964505270352223453552621197078037198100713694965364988856364628634718553537831726817124090490393401796734544320562953567328871632520643903669905334968860271706446382001284857405682639142322053195962419526746441253434128410381724339484754951613875000394420956617523329869055415226834269117255591914424078919476146562777372979065186396023693151070449349681875454925100354566440010739204868311658527800945188595492343307032462831452481418824823175197363376123702072610419390543300491478796557107998882217166147335891434303829542289131388351002776741144908392945181668594371071490296062964669889758468579370820247197672289535162315002045010129504079500316685413273485476588103854142695009813931313281272971998446570138698155071561242304104021947982484425481722928478145087359265474344071166427799298987794058627797458493248686091795255578265778820084891537879182901611303622181717061948102902710861832254270355412661107146467463149902599389059484854701648908091342725641975648449226135144719191230660874398349553562627899846582704111208043478253380853892124786811129669712685931574264966770385438118241974723305267979515021756161873011554391113397687836061807986258543239944131564253527844908895824727705664746849107699393660449753876008828735746600716814617993798473537285014801193735097519424837381758561515371516603931119035145379718511901682118541020222869136643445586977314196305328292025054683422594912805817089540347637048594204700697221913659783788621438801753655243377152827530330851574289671326429535366332207398750353277353661203151138820148617798422669084088040545718773043129684139615554131367029784920718948501683519591899374486152194200199747104675663065094792032120027697432765415232346991502600071393603584254535509095718017636123681616500275556141142712113788942162913980730923829659761737696477719941472428669509050982421211775254838127617818199902673550842589042216211962192639408840381007902001012932355618604313787361991455758632219023134860745064766795159151855917647921172570051664199852670900679453597480224401362686591206849128197125574762574724302498252578974322356179714904589044251604653763849009134461054365849612443576893177529187953365021317016172498169030799317807524761893868915401151686905353536714438756444992436140717096670072286999268792293279504952790696582474393902191487894352518716058508309616657681855655953195990221135207178798800013505182158663885163831913213563030637427091414860607192986883526097877855177678578208533224146269551166140953499226543250316986340290846002562265394922325295931532605587669098921051744203565864284428645492493490193058632345170689624657240251993402475985000462144319601464105525134500607348312168205724259855494934846309112684945605582820229076837173690750866645471374148591951899234362074484010477631504467017318067114588277395597422710180583980262872369206059058793631347232778731955980805199314257869936206635768446809714844596414159007961040433846464834767498855008933939014598675479619113468374592479454962585793937368570061330720897490153242252050612795511120673446694573594134820619854185423901034011220012353085583836332660950969173760632899200890881098742478871932439541527857505443576287659631317697703406983976457967589157657641691650081333749827811991928971320279488091063731084531111710590545738186760300913033305552960812665474281410097250440968871874071792729332501755070989220581526228216958280192101445920291472381677983603622172018808533693414253021832854696969712031175134385321037757481737440363633616584209228464600065476570755494431951111067931127434787260040969227630318980959258993432932710243490375159789117420125997590964963958974932068148022923752579125376289131950766766823793770167449271300960382251497674232642100324726484684551138710678774051725921585395860279013246721293787135601671724544847852203934048963522165426216674856228127600871528923844913276400857650635997177067054285567737124006387092435616987593905110544358123918114463610493132070552246151128409656111313588234168552424249092139136477725078037177192521829737685161320750982205019728226206607203228321080074315002240383519038709627129602301010051718166659605979649282775009476687789292616443781270607323845025660826866497989727006272381113347633005864125431076686430086778447060639313324695721604286605020398528563641693841608938102856848369045440444170801347857033901618710952625692593164001996498237123271608083868746427927478906291403374137722758403696218431961509059049755910354638706240923659955248741014101881643481524942703549157840360975615039596920183289849874370960587237914258470633462060723441826862182824840853132866672992498753533265609004110166924754367800360598994296825836287004855945465433185863602056624892801249810449250854750473311500587159388799727484781721854338089088185421937179184288060354341179753564099393135199993453467686346246600235185367378512513382240292930394990204694641280693751986279653907371694754468460001800346936642804652125925990405048958463949720253077157632326082200903753266010624517748908281504062164602194186420837722820237908545857992123811519060244623935874747426710230608470176292604142174135037306587445314576404146793335558658929116912795473452492415143925526290265078638022853070228389820945439445494037259213706269000491215118098512458534108814964519250239740194966039309666557221153314285963823773978945890223523003203377453972616388562099339619862977258457698325661501958383431711262513284861274202892278719054525544674713875743699364554716748569502312197555109183075640487235750202448444595227699199078143381711360303137335059450883102834018759044707813828201895405903199486561243744442130054967763355151161604388927999532200686402100428425998139445068914496203617136108174172017004064736793377653262486972242778482414327282671196498094690064194533670077718356031393910539287076360889999476185696392015973663401204634725054552994844021123401499591497980383179943366345530313521072550745535940453635597830823013879000860211885850089001408651419668554943620129111887516133363520372473265420944112538682747262064985896770978172385118880179262839503590812348538993258775217512089055663485483786905922949970601375405745810122003253312015530646024100763735213791948936016218230401254658546797277290507129386881878548022596835961700288642324685147072798982026379540115246167496023153259142733607403830306357082040168223232400136671886155981320738236908647732300657243429087996195843905005447975005273509704015582517840428899796691211452599661583847823885947556142765214123608330025561094855458481279422503854206440483472033017384110634909130297194637683461971190111592213943647359293367670247259299550379394031019662719300895566683678129975947328472172508374146109610744405326233331502053079150253733658710192532754856770848049538135670618754678290704909514153025231607568682013113289522510634522481163987802673327451135834201502124723393408782620826338547753258428584100093859553557121450760854269085731817598445815689552794531002967127078452999558007011065973734616010781425344837226538848788703425117695102102300489806005844268174033866454280058114514408423288965250089409410403891599268588657743552906911602333245596944486315428373663193914173084069262259293127851643047796774222406634405790546721826903989530309713494060515468905422904281804324612217069130375416089723914114233644134315933063872447249185752407523681007649758449378733922660863420348103003360552565956829934390165977034484032700128987233922758686817616627861869045436378795730874544701659247227457054671568560566787736998952289391519949749098264020497189873963888993597945985899617147906271005318479622721933108857848898116010733399399566875157715736411486680317262637572514606633809179065724153346587205948398674327506750078739922983195470439380611093371721808536114770078414610201475396303604724599886736318843707037781801100302372170742798883251314770369067645858634732502401954347846105578717676673835943614693365234264803062656331957954379840964182668259988449602360252951826599684556706093925267721596812645195030896772885372742392234477229633493053867384997114756965395321227729716232892176116042929481884649309595480406384490933585466461331640808536699955496447367457815913657828717644829878416881985000993370719737866863942989299424835991208494095054028580823476888030986993508714817452325678136543969400307335621713686820894611639117678914081504630163978826653174545791562667800548222541716642802649455758541918283470283128164215452722372951178530147477622907118649621799281759792169913336773874437652493424852294171584810367060463799135890809281341245640027305349141971116686726151005772760914257466686137426547203955966763881932280127828591693797700350708112399207141987600146715114274499763155638890072704238922652525360910631278175459652006528041798239053650668076857195494839112685481994532064913182085677382250108725690913855791901960540955548514192745312672526843315650998422791208553973178715915751571898850102001188445997944257079446763295775529940978609854356964113321740790532437211779216212142177682816543355037544168903015207761818723402132957193843151379566456779010685448748849774330111203383737445039584727797822738176140513859757588329204583604025954465327414383574322370033444516140779824903237230144446292116022680202809273101985847908045328400950508645517427116001012265230622083885691785038646828156022560567565828228094892216819708065426258287530796882556337906179706723541139029888602324350444014940747432855590914620280765709264810537320937915670432545173885523452454105825339909087191822359592282767418496976548340386839442467115997069577849429684124383653034041795690409172626524408428594926583047578922020475351876541648567458264809961402743753186710940137329906204165512294055281364946495522766919832496562256110289514930083581758828851646151213890522504450930300980106427630824505838220884578300701064417936051174342640468795531737649442775711845037016745020633042539809805995195488770153629341436575379301352469524132032477950610212678904953519660928903006481866393890201158282781405739448181335673261742968258684585559865625935085355983614861086679126247357359916256811868628362719384155712101429611457805786018167098377458442494134457367760613855165534578201588658267538970186660543139528198654748609878876257042414692114599830505822914349005568988571191148754624202640523034599786988030693168138742688832403142270721907130240400141926091654547737513128828779137319393351125950294355930077086564436390498924216450435257235117210898339094935782876832246901065389935067510842325824233988708931848014280694624719441417514202263289457671919231528200557629831893452717838080129923192758320999005030676876892228635072263854052476881559646678062965531526564376884151562268467813155279843440585822875902964349738433436874536616877183709575651424730513603192048652641729967544275656297807444688644219887953417835101758304920647004589366545454365042926606322595711800895489223352541093537100335776076893101732212940991051179178046595697277385549154119920418107711838578673489605224014220193135165872946734934145325802966981685340769329227854495566352252988768433109161034054339502100930951869908482252121851202820476490973366513919621872486056646287094737045176290151217900085552387474905073340298521114648174646988924992585509562537410819241775457972686601789949960012622354794900317898391877004093337631840593486488660946446128790489603193839303044444299724277173797522422736422494718376752182195732091354261442020055035537599497609629628566108523361455721527041882003534112312418241483679907489290478292859867161386178086773877163420319287193569677008846950209224224829702900822269404088913564348876913767895302640240828335465393830349730024687813075152595112185134938762861585037471160138682594487099618608550856779781190034144751819378494989482244597207489408679562816909221119852884410050891006757340448990965872574035240976029346888381748408482621209964998760197202250002953208785738116430125929246954168266549640082628770549723492047121603492359927594949622780140671779367971361348816830303740821529580586839399708271335564656001897552445713260337849002466342761227461670053507626669640489618027673202760574346963667908816416455409556398846239938521207357121033088945421988835710059629387370266562422424904651989523070264040097908755966068761073280039034655917642058818288847107013566769504625618820270706930478809543551062041089278338450021725722739356864408180697972792365782597521855013717985582657642552299299718891324182521542566247989173376312074980724265033013799370920852890085706564356689442186680815748869473877895652891270087828163280952537713898155550622653273065111246759552346716785334013443145228529498929641450340897478024233357883417667728067156110963533360719002123918019038980769186063939861245094094673619668138430256973076223635005377778850987601470335039572329663134223792264628276544274396075815975607580432416857394868711494647216161889183761285749094076351237586104736115930879120935363221133263842937353306766942303408860469716244574405172052201236454547039383366605434085047914030186333251055071540976681241522808369688950571903775937205218774343628114675015287922760106056562744633047182025755931292127867182080529637855220118045869593012316701439266142563357592543081250358266307159834761913818220448249192404162373801655175086052798934865068346218666188677352832822179019650562177534188055247528769474199570302812230143074619284306092257375496676686647191571209259255883553606391628075268296697756654693888273404683473744862606599547706216482849691686495380182826533182368887021229108990567817079650419546048700596704105872085191300322680335517784520190386535128709238161210125745535750285260961017332692580652194494033633555198156738102781537254667245231390619620102127758911627376581707913830521419405787293795671865029822659058428585542478087804046989691174161974360966764673154584789136155088526911508891809612080280098042017472431843497973065359632442370808658705479471255787866828339803513316942093309692419695269476094516424878143509038229511231446683904759057104811883848559966308481063134308186013794903796018733820721849119744862480422091437548059773264231074484886335147645287813653252924650197227842899394762488309612559041916332327042644741455782898839726480682218890518259021272899500254164554646058271932825710787878101547892674181976388705461716140550963487097061432014655109787182183219055505714816717014129867474306946182935304255168100530892806076681184936226320907343104512072462893963807931569366505871286552988406077578131454695241504212451234437780111649756520599532654609856299386995570931246221463392545444423670615506306551222649972533977818124841842410364912632591304487872574825707435751710026675475798652020678782049102206681331615621959224588267059697370493845188591241984361458476352762855996037597532851730647862269465625117834778313164102426259478155204819533956473792584267305055455361742225413506810849296963661269357389171588182280148353017616888934584886373367804408495877138781383858701673254063783374562185518983517678569914662799509743380444476160256462145650421237029030969873560105657857071049600425385748455287121334955034233090386455695638897956503316990081679321253704400787936018005651407180660639751799410750114092582174525528110583318454918300704947297520696225103666362108741538877244990853974217326272674386475406510274566484119624438223695241175407847858138213549560528346842013635896849471630506406557331364375370704820648319773062158517165667529257886821356253131905114309892734881704367892737832275615192880841051178006438539465609948427739337363586705858237602002144876380902665322661263172178670148958579904094282665042307316993059257426597792598021740369349386921219591538077630017621035657487895346426728887785786692108487165753360482317826763653179498734959024672926240489488586318223862457347653373151005290547324915695816365115364989019871550823182594560374702940111579117347851580394141878304301186759795669233887551235606498877287685570005162234914844388670859873681003876030722021905420960532482742211206785473025271561997309336961436907742742117795367207893196419845292031311968046847800873441754856912893782663334937079028143850660387185018963532555590006981985869290694546356315227441169654290261073393566110167857561289511304354709106928525195803843341459499449976422681631215880820161876296772994547368671050854078376153940513316263606293171158386673881682338837348852675128139193377786027698163446657894885309152540127206142616616828646504366927217675795682281665963979319370343867454443530272843953913211954580249597213149978477338382161500082482088349862597215393949988667678911907108325508712374545807909655680229420265749439761381207592197652229282910833454600305820654852565812292490147984858108410591509915432195484270681654009266713982686540754873324084349077148976658637912823181147632836740049047526529663666728772652674905273221289749283658975883845637341594442118757178056650953803289749435954609595935489539480365926043673912021176087359923182501794132506043945484639365859983767283107616401212421723027001109343838146617089972337523766348947235009649957310578786426539664424574777329737982421030204654990579930138705920279456893379815623158594439531015948672644392611272949772477149844880130035876771970882484940700856667338205704382505375038734610133441260382324604667739942777141325882928276291655193331259511075506579071250022406516286965840214287945505043799434973409661014953246591743340365162980880427085822412542206774314013997070403732075587917319388718240883653875822105879538198505438169956758087598428103221298997507354415085861899351862172320969895381653706919717633323934423393102236203070419109695050380957628930410372600735594392204915681032837735061182538110818873831588304564794177334399224457713960903543782490567119602551576750874524171951347489583174360178168008044299704029638203081542726056615118491042888486595843098935453242644113739029164686793285970588431154636663380833228964072659295977773342576429000873050797026818945593588173491227208178917383684929339375426833494396334692507890143014550722810830379822978822482612456684206200866777687413763931528194777229365240979504743703471110547508603283062618250477161714159460682843529624746848979794671076600856768620642699998721119480209067956758816253630327496026658864451150270276599293880185814534460238162117226825923254730208213904892881920460472050817073243544724430274536176467318173423998302056581266902447761984202778229660586408083532627581645642101691096458527858303856979334933483085780832366218058538517528206120520227143021422438048049252977084916974511428023988558618366540260021370292739498310267459676343137230048496644573849357362459155189851274567487866905255171537420736097878160312288561116108745435866926739989697500708287163370068353448656213913579618260925791615923666156463894272046690874011742357115034091585524504313861999061207754124771588107818621136733247012674575597949381780247005461046485542938406152429995762724609087826632747690676892596450772058879909671680616475264196385946920484915818229547264791635036159697011934257693456204646033511502609257857150233028578423794172738502406396976956922510015939165535667768641888224271971403236621127613373613669041473468184615665379222068092466076879439858957198540261572448383422878569640113177995861085088637844359232142094782632310316692095801238687138063438616697370972597046153297501513538230494100093373627394886211133164356378449768910044692874210118338705844753027687443791800030876191854075400673940726671005882766484910401486825226439521470801207627084751096464127758839644764381552489322037527828777576065947758780813197025488856474927493862553588986181041444838329633566128285444541493820314288678573686762327321946382297574708630648916941286768829016230055410084114659602007323137592660715257074899659753267359354886107876833327092906045387067495523978867297211093213188881583967977946239513562774441593508100000974055023938422916610432301986337199331969361525194442209984453235547229529279354494450833740437965558535265902313026123423916388993299351536894694379621788393905464012631171699478270644476992349436427382996682604741144088643574690787746197516144588551720095829472647787339664662589379263034710771363844214928823662029835625907176857296410918933898791711696155961074538891810432751195082771162121129239959591447931657707502987765474636045668649849494424126109578791791810878929669112653242868186389038530079470858734181207357008530206923925064730580539752570523520593135986013026948163264059096462750137015220334889579923094923708458341678395125783632657669620204827613404812640919006441413733349627377010177271054328220354636567102938113440105298699407947181123985730998534357566911051678974395345591540792201404513307868876005275931770302111842811357960152993428845149221685922622505417655959003118610283951810870322786177357734454115161419893142196956893339605434560660965968970024302837170914158859781792351376886875495950858045628352263254880504820388020467494563257345852847712483439493461397818721311523246624137471395579068170883790462466740130770251013323693774064226142784141761402391008517956935196401363193781285619637554945232698021327432876873890573005058322272977580531179768468099432876961298045860012102642771035405333351441379934360252820067945702338553539863429207147777802902272965169706916449924901724880098106827277996393901228132462270675386520872512268595316541801948675538176466939326830560278168849960264274659808211870500125459504999958668018226020562903519838901747211071834488503536190840604139941181675139091765921922543888724673099438053420578996016891149410424762553056926529558211042454506952788071090320455520701758576779881638908003207657816230238205532692038449766622532948728744914231788868754488038054332849405887418596178319274800934971116247358738795532097751001467519823842754689147276803982181316178859849946664952852961425427152933740217708162166027025199836095930340117592846260212600681970496637105140682063972462956619436802557731387226051484562075902729378973752813520807798353514265140621498128290861005479724575637807495174057692310446638452369044160861871857626342503714090815914473216563348046298385456408302386228885820646810789958559000085194388979074877889561020542050125304069550683903833353931110155265790293364033361454851049490018987170441254647270723965964463976945266146006265703150377680649583102220495914390452181724411864834588422929009917471665952483364281070852531557971752651940433038612551295510929739556142624248575890576540426555584841688052857983888004071856940747928513695788361691096564105745732776840033127280642119377621262247359984107925148644074042196033522968031046368035033016922524781613383850713545218531679533515620353624958911235089000558582078980692918434442209505189749611681584996707569989893815281472457057851611150564734248419906158932674225933651910704983643058353756200534215086088881254420440217416738358598964350304315551955395535918813447952437661758177290104670259249674938295460716639719157460797408639807096343919101110553897275962444629935231731220636490077352396704103934670506258062007571631268120289467691875542358289221429659443673561975346885047950230370659860988458450440347366581558345409316550835730421590873063314110462334449679834993843221698740008784249224929134382375791703940488650579792227251771009093047891069543332077726781586332141622582946645758666491872418001370539338278397428519585284295371469317028451267911820056723168721394922947063606006576186353442426767603689689495201023479938712051489694354618766492441616445046965986339419222977987816554151998846446110343626544806179159015956973798636217805399978193951815844740238722490074164627621506785976964948368633508573080840708688498941688078921663235925442567361569071855929100319786822211829422677875178488693161064712671528490139213983759165625630631990569644132097107197284453286044377124598273638638378529521392801089190439259384376973850004680025437461517093168406425735367864937301428435310668829751475428193682637039353892140141987994228564339260318885027956178952478678990553889703091840956712360814550633186547874741472191006910310520757455405248685096984977239750501262416461148796343495638700428712736116084683897435865174095872361262814780260817771550497967456362637757973094980432630881616145395227591899249290536980781720535151763612681972745494759540710463377630697267005767255232847807813343497167386740490422888183977351591328778862661148067641144267261826114333590274540834279247903419740764872308238726355866034515569652960337811426769076787186674632233837522429044316858601565803355734326117333446311981762726085530557274474102496141905092848303414710021459856483624559811964612528177762648244464154627081992420399244684348074614604278234890769692745423250916372023490182781363528464655271530293267472665992031745596297625395141061547924665166055589008495230452471459109289073623156986703452104940416536976738969024008567708072584428401793317334477581724949440679741306878463005237399120364175023008489759842293949055001990382309344088547288938834666581215067956446697437812035409002258900608867305920509870913945761662010500357485695433635833872333927951588810434631608483796134772685890602752484778561735087135273772960591186367130251824446053947018456740427323387144642979822501015013241205528912556285460891665857624363177124668428426413140969171206261182782201661600655152831327587669722222545766815213438680000941149895444778230786572434627705588432257083230188158559619726080924697379381948311859153601184884895189381387734408302583893669782660331285820352870436585617976486382380794541170312128649080669285517653462645217106224837905160451198566797067671699134403122032205844102417710694774051224833150158508721603238852456043649330236146898852632085949051176500289576621538525261796987608730405029174018734893422500451702702569722559660073903395630567326605753486329513407331285823577554255714129957391535725163643745574965501257507297780277266259920564059314349387798005080527939194847520600167476753302380618588358833443888443686649253429141027910587641845792816259983346922643891515516780837736775415020449688055327514630665474491371500705651855989211494786985225098986508090912751681911080890027343462565009468543259502953440414596130347071923484925278668621848241468096632834301144596379879904959790794726229787463226874471658980656204318767402293746747723599245139997159896210302785224368460504885036957016335036309556689525846105256833496353725407346564839819051666779300647774527401196943084102672511846494438606016146664394134879400145985166648892105973418856166594955585544666876845961917102440715503512467199472670877566816375105804886959560269533353967984755084756395102111161097871626784417446195262818468294351583052357524291274436469257193829331133553663669072317159747698174759309644271229757849199929563542007047357892518801670044817868288796364387978032278216556044719236965435416111059694079685203720507116629199252496653941892105469470421632303229760563206723564966150717021557918133270213373313635167896045544444673216174975363465297354982119290496091898140700272415794886397984701670018058909984612827836390686724396084730960056081105790452213808008222143312292982219793380204496698838620576373978805947028507238876281626677828649976671944458947355905291139925044076183425237578508283498194334135997542421292448848375501548478652307609118651555280123605316092166109122039259311254490731073069029167974191726206688336819865045222723540749232750884418042415072221055302280561198840239641127983818213476923894254793528907502265975039617320710420084362336791127323296019105821693764728905098636888723331952202976534981668043071807792812097532947335700956075679642492589996229348605434238965157510034716359276023670114589545509155418473327744487916431941913093345474352313122859485552141930982728976994936784326525988038725409243894470588592356594599995059717577549230505153194402739571766418851150659995771669573001634531474311271161529358454406844120743367419417923437932892380573394349889347351853936412827811360547262703047916988398124467688113176982879296876772412400414114112648255270082517527417659699610374028190201236750099074143205959306103757133322890195112111548779499972105692991249167900923079523031206677322086186269929651008450375794942054454903716592116355071738234829391875800461434508502832970453760234996014866765377088690698128621835737931968359623629839862733693706557300664081102643585904822481784053198174772978228408457111474121229973773714341545738285012215191296152990502265582438596461528449543829149535248532415112807616860502193911237514585665886604534900622179065361452927310703509790896139254868289091824408237119376993467007991035124455072819257557188104263615423483770392721372660761784752996982830172464196346215389134360472344368093714802444693795479006957682528543760635122740696948723711183185714906524195901944457666282028073563636743450234333638048520410862800484932837115836952765223229873112284781945742258690818219327739248501929826708051559147315307488273999111513051652485060217101453050328601609994500017039991208623412609567496425599381841235161606547133560693410255275332833842650783457865445896423116563251846741500348435215959377865923383308446632036319243714586389888734336291054450072022593565783394725040247488087208586535439342663383933855009586774617802772848344696570119776767715321796419407368421879940951872370071723446847345871706289323116497299155095441680821891593028323786622300270998429559660882429739887163071215798969044569738522909707217779507477016346979147946094571601880956747942645957597122344566792182300680766728563937118292199811169686349154821051346620552353534384438806879480169395879606507767647624485559918741336281676040416369220994345636744852710092683931419383092311225874554753231681279563633579042869788596138055963370177680392308909700635468549460245448713348626154510016825009781755950966195878259135082045308352841983448519879739452393081199574879295399376554867424987765200239016091540727844455535729964664598525245310997390364211684950357517917602805850608895258767630842576131826509564586090470777170217819872573210900073754073734063464808867786452830213995383533343512870529149513166258743272212833073360302486125470188071079300150520719118785686456934697163619363127158079367990496996597651189675734235425606341061582684547191081388081700329062714441375374536457741748345933301808244616613345542307901296529267491556015034919328373042097656565644601225749021583287382367170305565840782771301829763716796927845590469153629711409216544568525619237837927319053938126670264360006553265791803674446856623920095473234258870934944108101913103217074698823968616416067998409236387447998346196443995248192395223843019072374794746737761642641419363275792581802473390846984294361150121553459375790042018892309173159219613043883114486018132032267966072202707726337514615372968802017354035562219920314748959351557219091418342917203819576922038780840340911817237822935221452136600324949754407139834811070073490329636250134744087754119398123512818016819697241885866269984206770838519295488003084065726720321373403475687654983704799191280037564154153849867346844432293164916215456431414836078074848432161285818573180231309965224656348003815660776189491296114005016942988801798194222287655682180272260813395621970314769098447585307719690386533378139041060510214569890363134957304067057813009165243772753115702511844016139477163144824785816964279306519169803937652097203966084301041940607777476526573730016015729999772948187611833631518669962757069643482291136338094303586476940336003557817644988429771476064308198096260623194206496589271315325612397064852119916371199001667618402076827494962243386267424060639830632667995945823803488307549238364198528342005963636632260926798847660062056233586093370258811104494719145843688769467157345610189463792027936672979132531453213252252366118820558812517298452335644636636879618660462387849978366183440857917511951129636886852262674986459692063643161489383248879636817085791570870441567737938125291925471890910290616243557409202328328244132760422545606756917720775107546354494638785959892618167601473471045122112781608553646689897286812314993781998782440165051698179403983907722182182806281145606337771956807807737379990910234794738550416712184344631225315272092892881326625006692374622725196859349967257892763929197401526921547846779475236603088379407848117137017721768055909121935955120035000192305305992770829697190621967291419542343296547472925416155678532849961220683562490996382504234529053281073554295526120892347961627813138967757379307595597335148401194992136523967047678094284232483900526490277385108992328246176381407343206143575562698672110898786859543209542093690523405037575959028120851478284618449339845464531771990114295391860636372933851646842661562056577773514042977906426005950588930404641601777680587889328576716114889481052163494087302575930413044003304747261619976231210859472699344021059785641811935272125340851863382748390782267958826779443631463001958768067088818219859113248384174323785481719925451300895358640104008585946182466355864118941115408034037684497679441463412460173926494548189720695287963572961356112486963525204597595668747037046104375208165394252134418977182429085305614209979446962976220604469100160587962493042368946413588612960350173737275606031772244331948799023580166419412973812073737634578874989620364524867506670878660910809133236108353122541050236860075165571937394715727095958018890987933934160799272828260550536801634123008953723672924866657104777550183965261158847675890931076072702031427900446552047389841255682452177374796436474441749400530707273477695394341931084642423548291148011481844332662695867027051442390045272923425371813089179875597663986642800949512525151893635870260265553947253812558714026380346475981078343623832191990617246507306471192631495774054083939487607448242248522645886878728815402014060117066408871135823570930084042406455807250376872781690246648177112800706020719054461035013967020918912149461782201716513823896044961953400678444239550784087135057781649985868262922401751163484528945915918164996306762982013421571805435611494245583777356257652118778870055625178175206610591647568611839148648313238718973378114607535070453352679234437380407414195969122358932747646436689679655496695764989879928944233461277580271338471907616058298130934304315061580374992085746485928369190929702345174656333428205011183747868573644712744737833624805428941134801405754090805271680303086629717724727759446299741370139804797851062967163002883025071701035601578324420655498333404904220583750201574440508662140732823649991403358543769411617660004659785651167955577818534167051020717667784081314752766909602286416396004165669070231603112987026594091243764370907091219270944210885577620521175785608315159865503295446055019606925142339484486450860349396034151485548860755852738498444715772045978162345018778186152151100499886488254314851313214781444818941361317814090510299355237248699250575472354398966720500057176551364111626075648309676510438208169879439616677823589200033312513248792530741861781317869422923369320629933543810426051503556959650447493117421600873441459575262739937168189374984217888126058838197705129845009761729759861064174799893930052552524408887943501336757165054173772802210434310577095920521131338315730902814002003981902167738454720721949248285479717264151581772433374178330734195080134067033561538765917657579667541230628114102611025938172917487291139895136527008395490398139356920722261808427110111051775556975308791122203969072372494156868121254184758514285914280615450781935181954793908709000656202843275211971876980457816567281337949230968587279569691989241423030557674359342748391862975474389010069051811142308402030162169413672073769414337340440481117925773978912095030398769578053755885466791812901511505993819938072847383704498338390594625022392361270966180382845397330798821878726366559602176982795178298953353829555960764461056126898812397705317953082224799976201222192258779552120415059934683234532175999724729361217775215967986700739265684967664296876019490207945677193912373534425896815915636518588989348715833965048333677231631236278346844419704913243226389729061898501294609507474234848177842287347783492001916145888620396187155920642719333149247710711081979315760957776774946826697913603362156266128656597385392954875615350459491874094660098488986281505025211338371410323860712943997548316663829418205662597564694209447932804973906558488528654728106660316495024814907442089423596113434386186838008539297011612177076378898599039201461436650965831783283504067336875987145810759339586602062964544762730143458842071466755087417336673572175898968947499789040721338430693666816415578097082181425816752758554937693912158250301907789294932530516623729257259745639718019015600084530939981583255385029702936444096573633463799925169612874618696710265010536860146891707364004792480850388786010938087987557862339271963872811178439557486118977156787459175072327046880628398315677999282483168409578991487226868163061567594454844482407159556832321529353527567482014663201219568797432531954282140905324592997703382596210128633483244179163501475074537146489899601752389730628565647904953836581321144083717079694426382076547851342715721853269621909864682857027320515305222246687419409101791172651813071306490011151806238012610804508168195802207749051810658248937209835760158816544769346582158841830107376495818347374311419967577124636005039376156764024521432923463344398880910834669077895909280926318118378895631594421069419409408325542699218204478042255747973128140584071750943794131464276225907148351508159993880180485563950215785394603351371038966411720916794013538805937590422346645016062108680134288432077245376457034455867744700522150329813918190242536690177069785478042304494847543031299247647159754038197882194851113986384660007352233771233927632207273006343345469402264118849806365505940424789450832659966087848942963993861450099401879051250382615315287704686028452864096752223713551364745982245179984621538920067679549758336190725746088929342695283970245426565303768037096828327721152415648587859552799991219616024716111288522569274801379414312290716044873035426912578236395373559711957907008080237527800299385368432094859621295473878790741523907867408165809735428253310990028631075146142995552320003054020181596429450180488581484080693603522316399863249148490316093891937819041739024081118388019443289349432373534324859314877108804608039068558878732397313352985688445040727114136797683160853687818764580423315307441298281964157261044749220953186674314552169788370910742274674691226209767043830702044951772683323344713957287764205652955143078669373833526433988063206144470988946329739210150255770360393583816794053882372891671791268992172159264083788134095104287441933794166017532382543090516580695132145986212536789415476758794776411502748284456141380596694939271324904620165435381146552253508635561523335508965622943570169007976619328971226037095145072971325720351027118964356460187205194685830552493872487016574875628158705093272222279178894332487841039291808785110113142963006826397149327979243972776328243996091266791178555699284695539319354794020461850085891645275125506691069576254481425408445956738536282026894747238374265168635583883569725982232822536577172438005513831815773848384658204365406352437136998180660750931068277652660936002217310073356575916418650853425704192630050355107620095929221262308084951878405788482370330202126624547204181521807154388296465665715658960798773471025295863187433079000891166993553392061360103498780743587150223738893001117961248069636842191618094964483699495642095097620629022787101354442770916887644652197655522718618263371445485304056512353139762495505127281417843937791516442122483863382013780670863837843725120652176150465220137686787874064868068834348285236364655441747782833148740531388984677806259486192932636426816293098103901830666197402152858024850359519112815501527612936164659384492346413335266815373637824958162030581705303844108525071708325392275821562449099890122194224181239116297336499286916846038482004237715643582068198037763508547883219372002310474485495308616112994991966319220445588153888673280715985430429547580120743151782221013083937779757342785370473710425328674528328841350379175017676091080004216143893299398579494745685476264888371773563085428934363574983407547222877135045480558762398454060895989428500538366029914031666522440639958502257393194766348384374266038216776606880388394908513806361026382109083744830216578254066725582161265954500895664652092856171424041850490470177987649564266455564582920613033635288389213197934527598403447815604478943551740172228961463266560823981314051024705776052366032382892242269606279556102165542123548594113417757529729303250135696700015165270826010326586770573636226762237171273106404077675544795770363519814285067660658656349053757546202861089718890369331262812971033283603521439927039890320834165674494706251227924880335195029142909106641008514805036880333737212910361907952471839182164809746452348679504700734654949475759543669416906453758620299187558470621911301474111684743197182399111319065856929719277585134339147302728819014591993950909985548144566970497708694461996798416111366740473470909794077325574248982322299714007932083954417411003980606661193576561837106981209333284781752157364085801490322407988563304165100412985793667106835875183597814079620789533013891811681819536603403658014256879502556881948336516210496719097953633740556963774672978950870045314048065669868138641983674658202287196430272652374239021527861699794976449984990223300613872471380925585073318098879192523760091756358139777495815085670169070256742247844300407195826337919583795906449487987232590825022237284105758792497088836164501386573709353321287242222060941028705264201358649444720836733474097680605672354460108023701266365827738205662146625842150743547888895701649205780707258531551887414446240774249435928546216631137655738923801528148265411526357488645748024636971084967835309703393040763396690191549078521367899006133063660079968129013523726324255900101744688233392225875785672799062332995855045175973207399297891553472780709227025312809952382201151677002296695130246244612246467935392512128880828438359451822178159660236852716241320651957776021004743627769541651392157396622599809635290989977279109021903980515142972925025478758260610956446038062673506141287716303291210330339800824266927885573146750436518548017750495932565329765556403153387270217480433236418988758480802258492269263710485693445795992375136265132075419286053188197614281923688680699149661398043788680391949239333575608383134469038569926104619691830370236804153476903928370796345721413248555487667776040226889090914040747994692072469605369540836375885183817793378516846849247774188608424286026973998526651682191639746744404418357535293488525451340950194790850673603478411999642533885145780317194719622497249720498483472596643073946679510999433053249114346021876548668239203839018082280360309275700478977868054793327569673914583562487431804297543534312093560464358434567687677048709427531416412469836358884228725222809225099888938122514293740260646145863138672399570603292834538292230241269423368584824830957615921491774931860667202486882360090906870228778961222244518599853300247928761032225572624157705546738462223954249543953072609053293995381300649526087557669796460315830615605554433970027302406027022432695918903258435909110393412420489602497971678513125278597224225667896198679748384087120501184152770955461803535057981654785772006031154048242928602551307833264507162084036058550138221564359807355799471745972003383259365987788374715701107962991715044393357742766897437306319039383438688471990802890629835714193007717203691650417296367958189953303609285747436792962568678519475537973433285136761082105948260277213102072967908291461539104352240269163116925905021164737881219061640780666337598902850457347271960501802547169188112288851296878939076448219689334053817268934443508889716758122404821145151738492212691533009768194984292794423657995638565599535414630018637728297299668425724162387689888284293026798884825219001190850264835829560172345852057709886590486243240363920583376117735424178890644591522832759269354350482809844795146566933731055541411873047859358115026467808492199873691967363130864224609514360434099909085983369132438057519155481037348722826879094839802996176349475583898323131040046147731413400402191745113438428079621607784874417029100952229360779701125460149541152954098218304558856745271086409952532333868448197856718646287235758566629616703642615075928315204133188975173375590275811953950851334569743952889711953537315205945592814788215573531774731140481825993245153180399408829795304610563417434813789052918703836066637999129876674702654827833792710012269988437515760767309633065548524661724538055562949718130198668212468489331307493147853697351982013545312949670814650945605993773453073113319670040943859748649851994216538293131903503313516372519568761148073914548522376997587494529188619776391805487805437044478769199005272831131281641059379559161658027884397060074371177481409249467891760537889240580686932630589255804032409941324693130869490697333787159548188983926754593631808957328108384174301316004571610652041135386328747264764602673497901616160900768325466347521645077372158556189634503125157685873982053345601246272466916819221121492777676831531975658144710295477447073421998955937870612568871948633913159966929772168132380110756338312933236174453919042584104581704278645492230713208586752619892765787882257195890290467126175895363741354989562975717892481693569422649081957568591386441715359544109408120954503979282839267943575335740167511889793398801344877663924721855037592601794671570509561528957021288543389944510881443056758197899562029274909432664076844204193224286887294312485482502877343674829318591156718267883665474747614212868432448320228851945077197169078245428778628817787534371922449928931146499858453275893007840368888470114984006206557824158375282644244424900758842522390916205424352509039840975488542029632863650917880145051485525268675428010416418419793924838294208984425070034664572166453484260363834749219645240095165717673275650746933359436580592892305386646846710101474915476705605381075415394238719419148172888876982028735161789139082571621169477850087553508865376026560277978738679613444657420884414025381841291388053809593681314833393305104192462648048140388345009333827640577510833557666438785732316136755445998090444094158272058139455151059736516846567186087664803437574160579813272598593857282183936598196315825030264243260511267852871168304923861049603398526076323049437214509466225040526836328943604831403819648088298092835846436309689416465127848630836713391929343009006460020494318991912919786280638186122215041084048474562654245310637296633764397640501446379779198880829263975677630753851494158798499503515087018302305222167271680941853944869805666344531723297006708869067527746393366566350486337024214761222013311232529717454737087444480984680845760281295868903940623794804103768398864254162014644106125872580298089825135499990295781265730831187973564367449665474872104582996711602559371269696470821955793061401335526421734469428154153725518464239696097015000354725087851893651560647131208596314334058240985998477195845431063068823647501428306674749745911074826054489617184915613113166338478752933646955802590090120790553662145938558224254731614510660730091391514428539224034991991787941674323145620985414168289491584517914514424680047775399984071163482698613257129673595334784568512867190091234116740276620989359604506816167812085635212588825308580115585671582322235946934759483871052668062140477093942559986564201298867252758193206146425710436501786140988722305090536451295102583846637666359489624537299309424566655141176254139522472240049054658985994555667245382266722755326495208160145896860008832009088118525214614717727111020325001617438717976230865665490481250281478086949132902293543797078724796057891639492126800995286377857495917508213288313150299419540911682817662088213053935061534282394271350406628136869918177350854591721178216204846977284894897024571523076338360459837257876295505055295213573123343946517251153639385571054603788413355233078850652219926890095923752241153868459877298851708302453243972575400904275872861808672873780941766604295932818358661682900253489338883114457780070113488364649791131159375146233874959411942331100516703539193436514140850257111951702567759307200873267821374863684834443325916593844174233040234215998869199265719800055404896964851572052333741759291067993159270339340478653233106791522843777882340796970664393207696724651843640804149961260868334387168441125411010425325884325040708249169954177656529831224118725572709882495002175303263957712723672530951316527362528229256177802098029226292280308291986941872363843822570079730659878311925267178296181074864950599047589730431230989577209825862415425387377079658420674958876392791693078331556830124741653344355244727141991302675137940684577069266752637704759413937332006447121047359143805640802610106732990353186868911841221958315162184122593656177108539003278006760749685689670497198323226070352492764810024039911792918142327896567927598889888369969347045357822302139788398915480208295598641159136110691667820371626278058575730008643704240415674360260637962793891767238385093459031662471931619293020439320208725144805769665483464246473458987056137696565145843308578962059170258440843388570748321575817524275708449568256558234335525430355248884753920439033959449842225626334360147748156049079464823871472457156315145522257005110563638153276845855339726533218944699573488918400047839874371921986103628228694048515631308082121541762072559724623354475676286582574344725372015178631421137442208977665701280873269349953402874098196504646249280508132830115476880022930806560870959128991104623124726226670429077763978069504496088034227722262407177950889964864828860457392301890984822847692048531718626842918819989233015829550561263965447247984429671715813479068480595211134440910490927042880021660678508267663997269315595050577233261297015601055585241320043879710988874831984138639795009335913876689997245652426878238308183128008759673776986754452667110193348963343662383464442036194240782165532274708644614743192643653086470530374005326290527440545620085789758259595578978197797788216617137763709481713114298693419882860499485216539134987525990114951648377782602882317383654593953530342986247753011981642661003529457000091443343380807128586136796652431673681519059575492041972530008673998708321816206569498643852265105942839603550003619131801664129016752583732225885642570590599006181970447483437895338225807234184125067159458846344551091426823299220743756788808864300099359949442463217647795538641767611678434143307331923178790719593024194526877601490932690859037345974139530402218421881552939555194465376820894382176084825541220297816450237175932515299617028840936505399684767120075116071765972258522508784683957802654063177440823765194931765926972192410552268075772761831521772589109085035693608480641248929645815182133835433084307051558568030449524376586733732967148062843928793174173747014826175577516540121699644278868869298350518774588564681593437283548371567062566637315671400877918976681714502358963253130416990820333818323417128066003102516603180253789980910166800410579394303680976728884653438023067394477619848428129767621588660258540465225973152223021629178812087043799955091503829524742371176567887190247715262319999152177269582542486784280206736854327524773550353806583289117056152823231325268372676660456327279808184592671459802854809433523899493901922003972365735197883524887511461393768376018540935470655487610084609802063991257782301980453801311385222848307548828415604265008008638034605537213799382414816270311804716226349704865139760636409186234660928591537154090497459574701430585966531983548103390492086467511421330192666317629745925674912888540854479162268261587125248655794044774291925828026048609692793705615993497820461955677736947258092349966296101513017456205889738546963487701874279329599592514157111247485094723919726143574831339127550781594325682771775755152171963841764656137303051108100325772809923546253216801956453234170683414996651870036078570324159596226739663177885152966095323530993021946936094682758903501148476511697003547592684377684332004500713989143218785438344570231860380227996402068329305918483916975963764094208635698041193332911029331421566982587500414851836977106924251059476992090822236479966539670353831615493922111974382572924628681973615978742013605780612047549821164493071493731428223778712738968695313920406312408500165510825545774338571244756175278790089156899861284530971071686028794439792358124909188668873297914302929334927039688048615286732620848497227726452181607819734302818400741220936866809384014355280688840043514518114042131259346929300754591031191948557316614710158239503539574572713504726070213653114167058587944059135289767757980649319116406606060764937477136531919929149749280899867127640185274758555158619381548079674275073544761883269860103150215101696567537678305412798695618170743368810497449069424418236367267432387198899603786631307342042939821513274630348192264716177994459611534976500194594094368596578449464694387425487150220901544115356631094686121790686728192762447009083282086957249883073451086886394874555824068134039219983609389390348135720478871857223500481835166287854194693582222818536017672519032229555980594973423737301136715962892626883360511908532955290380276822258244360611689371773454319537386023103675178890929733774711000688989175589878059139941240168291443513610068074947384150605155740664205340898408524019680847256914744817507048706166777107013739628245289680656193817021471166092725627884415365150114472172316822943993745651226877376789392565730849038955252800251767902869550104598680676443434769211246655659507157517329177615116729103194894302636416823762747095418335592093656661979426878019500185049396137990700274327744518905632916149965278069072431772313674948654164025850452626996301754128368446297912237373445921303674998296627850636395096239843902143320958157198710124718392804099511016173110877745451084452666195293814610052288995043343393619369534192004609005887443299861965714035702669386223485224836295847699447429230228202121641873983826925848502172278593151639389175975533900737813327404966329414185996579463478136952613769392981137647583383677927745643493255042174074214488043260870661022997156492914872603494449724690547012575756041409435267830663941842835329212378560128046495028377374796633775360049749101336213347600896297235258024370176048124450158618451029001518526879008667807329236158039384886071292268752687172400478680082628564867383108825142738102925899483731820482972055868724674664600660208704892199343218051760763376973368805402532455307776152568775842262946032267728330660054200712098616423035011627839726486916293066792050724652634111314759158114623152861712191012146334364847627528711649049426129584034405870560914150506008537875694085797550354272478248882483633202491766567485763055027985836505675820371628599127877308937482240803468572197934513901875865301101688469647566802098146914581507184726072351304921989740511546473024431756887424360848138984578319128324585243730222637929579918345962461280953199314873182233753311391443192673489122978291379396142143298225368785405867815019010729431091909109482223407127213798172580973915306495586847565392870485435752814505120119617094858687774626651194865432775880462472195674916730220023794978459247907847571887489858653099815129949260682896590352367766967050114851414937079431671350085605425152804318329513059368636567129120764528781842681879811035847577010908193522439202722352295919572093577178839124847154904135596532130462701798124197558435046477619901980617686767814729553724882135877482870471254812661297808324136266254577990236192515035440615863445231660440493271934152506186555837340214630059567091372142596147725328019806902536947507889931088277301609796399957417329465243369217747481732250457834124920811918266278815331319844529331790737627668826910652137120860693084498646185046612311806983994112160883847591266067096489397215524267051986487729418181398401659470073390781664956729420130368432794158356289028757983158364007759384984950400495529929953147503152923328214055629625078393220176555784552864412959683880715272390872212277659195229741137593556043908326921630736795146224445861108670693897913170561352983826986964855430064616157352451230385215981867155919631637430337024177291029165539803392671406697813328029637633437240672150060786082495923087623611189457097085046281166303492734319510750655302180891000273131649410769757299040887497076623683316003527945333918324391300747750979546390387094590158327648016237393480592553223595121800737053742820758079438841516975190562239519551576308893253271559237224523741231594902883612238208689120568266699764381615873992278926731875778418370725177639040793125613089128903730813599334387955871566387064383045398891257027521100880878352755774670296566255167581417918231975974266867696118885537179851846375040834158935130317993089049823271789976001514425943142041034041021196803562068996695111703961242691163117286920553044059753156656619427830281316045887955950779374933681977426459425275234187505134202008443708308937078916544103597429343151863177691589163464163015522353163025259100917430368828218153807510525474012583554581232090501210561191482845070268237305568375725355682573404290856811746850459434585580627927607657493843333975618839528496886201554707152524272046752387507199269836263824041549811670690107127640981592114707211672022383032242760547238512245714957591515707531351578857078750102999190633365867377673672921792906470280469504007950168671888340216622817587296384978850080509724770496604633216352675228803319579334962504924375913260107802798272970584496741583878938562258523113096918393434948886785958438396530275238342706675252450475389352216727945278320861900707722765295724506642728469669680505820991562367779751817369619847041921474196853926086838791879994944165724840766620430784390093099396278375458738375193917999125907264439746216084265419385357134508520118553141812592783360677929286553774774751670065898622408511515450103543274558887365362704618996269984311974952464069043051175935365429239119174223248716797251247362440221689837025198829556172240858989909016425667038082654653204479198382148063587275927085107086245142494640710118201986345686019798364414389705807417832463318504739333659543270962695972202007720419897237158041101506656787308971360537110409167408922326343607972900088291438176117576420800956226900557220582026787822224072164578948511995816089675856206960400644925905372598216576017939878841468788734970240004745288815948312087921778479248714870801916005676174465606342496885197443208687246543599290344961905227370294977092844869607286937562840833479720112684184349894716087612983029159031051976690954729673313659550560967337530566576709543899482775839836904582012198103118185716059329974637261178971212082153829948251939191064778319574133244643748318627693264941398874023209655493960420255770430270201118265628495807048906570758415288406743896557466188877101048443364168775547023789246916743227945932997128032847742818582495699534301911216228169333946909593070819603948034567488110165549898056319482297666212850653130584704934104809031380569284302268914968679450747285147657410698996407887501731719801885023221996842486361613945153337427615949375888926579094070115922805911244621277818588069983434662110517412229630086166893097091988808954400942289970146163049578814547463517299162025553789170269305680614169612861066692724945988662243796812917001966011143526669131337301756924993169060742573344701820856294162527439199452372137763563520452429268425998588745975977683635592873936082090744532966476327514064960021254303584103808212565996539850037667616533122278237238909489231372361224186013691865124466132848596279393749751059969809642421906293848649845010148546238952260397681242276673457444171461781877988572569986721792259252036644257296238447904737439771667632128149356797838123886947104136903375516178302812970735389583547714686790759375834447617780608878637801630260058457746371099688330186970131343889518573963079871872778492277970042759925995868937900846320746423229730540128173151907606357877768310585318804154748890603338688241482193611421688207222811236846383280724680554644708406672510447147094210381759418996089797684585430930603896244716707051067894100793980428364024981696817089833592715000008012295589058521387729399405721317157838591471443347698238249748321772688320713170548786712900561792147360722902633331657624895207688737801579224096112453973606149977908097052645914188913871962544072148858786544418360078389071845969227629108848066612325712870050295596857617678002989886288342382456272058822250634849678560980877969631811917672977927399523649477062551586518214606787999148587120444364923855918347100612383575408195767965949810529482888983031670037441062542968250952957526585564911590547153275209251061042207086696351792282188271899645909382183341742705941033658452591009517475690882259430504729511639934381495376608666448754961456272472065584083855337278978863419664383840392176285441927398353466688007883258858621896909989770908696458304287279712056388052253461093667184174691454930327774167952248898517845143369770371210759053900201396841491506591214452555673896807606416964519444227684904586864141977460678627851623522425505811558907152841439576704066887051412494864970344802182962021115814442939100082843602587315124422868198446695441495413780724689347112100056942618750238455553755260857174164626280469867916776618256829301775108049079138058193521844589935957031823679332995419073329988163134118407714894017467789221597582137403802747433994578883825032460201464078640641853321243998282861558052521717480976701352111861428016923693487590847895114834753957109422033769382349308900727664858821841980229342758764612476504301030281928564262356139733960378152251776632184660006867997843073315093106123686404009627098540306116087269469711845775128370397713932648160807026764877731456208644685587386278184043781726143042749197113362784410188476367667539962045469892113582633825202624801649075432927857124126706388802016063630311480365070292244185212989800546968605166706811397857741874824399338216574964347240641650060754888820727144619531620518831546764374828176539040811996031875286380221548164369441868312559242655921918181442725975942933501493647281070813224673088394972099228054092643632531316685134715547095553828511728200778404284485054158089845435863854204439751174618787851580983992934734934907855943794159227332841563640767010477716863369855907162435932144744521061623081118627742902038967214850258898094915109287885964553938985575309528045736486698657111348185999803369665790789014084277953928191765268773528660801825651332369419503936986926787329637983555224576818009780933028886009869909179830560167269173173252636510124579015471539518207684501368539905493806121774233178200182630855313572111484770955928881048994186313926809170124369647340663605396690267653553849354134138574148730697709734064174681608492530210974281294437126577797263419824850753779075033678694510458569416387952901656004298670734060475731263849645054780161178084872199185452664746803028332994712072796060357347657445423394447998703642608473839672599679038618666506318971553345838088397392460918005026320306971478156311013894333493865783169021098219843513580557852688856213545788560385084017297689722133329025449204313728834691774172880790713849595796207775019275776545812931022719241910577018683880055116832664661722923962222802816754753844203205548710356756136078018160906785397206854326482487366620753200942801356278719740314895899187964715478103923355936967914644362852732977737188390390785812955130268975339703724594546602298220531519419743471793036301981173465723021539608044063825467161472054407020065400976934141422105208893855110353483121940738451552419990548400622893833273688644432303216555538325456936226796575669457749754227675307929303084203516368782768586524379640426371155117476213324946780125557502266885945396728022883370382431038500978911611465411270426869845839851978305507521761586804652271345699480692307049445357186149899016566393850489331455345196561861892991839017821423928270921743583523855029012565497671408862509593004187118939892743959963164505068415036973348414504341765858902497468973404987940098090458511908689548946305514725922766169973190851652428616218590109946000899992320903030529718450608763240051446435718597069753400748502916495708321327208536924551283355404554945765213737920953746575884081589358719866488561560650577073629801349253271785270059109406252723272907222796372143128936850190944285960319041261082621371317908803796311109584092459127335547117261236717760021305631663958415073531448898505198441275028265131271069112205755806007968501358095208526132792489662691618428745346042663254645290714113594219486949624180852832232395517066882826497107471028125265577967432303080415775328992789573972323243129203956477271149333842153365104442273321133533395283478890862679878470878347910623178447831973685848832169647068466538876599607902790080879272142738594721744401511129719562788058632603765575360194847988865372364494572587139845243458544636960499110102458535764355451252229841434650892096187999703405511927075409567297174364221789951539845340235067566826276292302220656138368135033824896598216665901940007679181295364371035534479724101798936836226245656178267336273729417746857446965017189302661754555635935984893374130943102214726995533841724501772354299082146428750438050841150867746943580549806564786623953280765222628912543662850346205875295665649467200090146863497738802965259905465705737297924794282050364751522674267195518145040857179662965456231200902889075972496826851740292886771887522809827947413369794567883033399559277935358428756369040223921507055475338177377373321438772368910703103288389896819250595739090663881560270829915879614118930758220505648651067461932776768021174496052482800068866202121884052429665768119535707302464230128255781258678345371825090802279234441216132023659490563606770190667954958303984523825193178050362655683698857766294326995738821258022752686161576353369118368996433311483037595959855070557319876893790831259241512946352658060381742313192348960297407971143106331786991490286099161830416802448922697493369498362210828764929279686847848571995742511547225681441065819232757901072715556685722327536192145529018555164494073072921260160018098773733021383924907814987636542056927264824504907322918694990501000137968779025695466360026927486012917669721884856697986135715192846562200919275599504034739734700219193913507271595536502259911379340424727856755662433741140753194071358977625422400456513817771546134589407401425805438325457169941858767668882129376648136369505903293566295437035020162330287782340136553664055206868867031135932107590329896447922345441691607491686919448226132477002917161690017445142903053811478242626137361921099869439235082292347045137951105271894895676992707655847996966882772233192298011543442387009852270132794144941153104237342059496941814873961656873388376741845750579704494624392270745800712702756759194898166961593316690903656389242381424692714679500143777337783327467222667554020441077503616503028444823655071581794524500153247146868122468763456136047163312926962628131197833917854951842655828506162888873555286668552181451027651677491378459723571932187005016813202093225513265513948630086609533017804759302107017406008504296851632284971256758611728856486475814099128103328876729164750084448577916302245941974498526197129278107396170897219350321490373732056390230530827717779020538743005155641611270568736615674874999984573997933459582364138307632143598850001598423743563284088317194272952116576082082440443927464416136991302648596130231094491380218248191425018746144042564524316276098800579378922842441655882675081995764945481348006172211071363019013709573679419170414714818761504513542355431125279484724231195552473444570993972417223400538639547935992756126504040757162343207640145041908642497723613113218937108982434939153624832608972032278939401895588426271678073730828073262407636055805476493712586653572554243301081367231526315196443905494170415271395366658006649062164047658012778883316053934234171145897739530437202538788477638985957617258883785844326137414797207907700685908364120883024444752377473145695072831271770940465525946575850192679473257801112493081101929336182501009657146386431334148456177833420703299476889602710640560302326798141706607149764567087975369513062618275063733671007007076731729833276944464102753118150010234202054010783644006698276096374190215803965964648134082336174830536300147318575178766206545454834781780148095009640499465511219793960914220225006813456384073221819656321341189195487444179239365644814254572646551029511179454167138476473496746017229021789614495759640144023138596250540457998043358251906511894833593098356696654994394376015771400532881138239645170369486064621390199375316885294971800576427486773654239765224842812114664869988877742918726022564332145678158105082589327771941722780864577848887436728356767738004693995758963970906764065109962976098335881287211596574403622188094005862352340935516627979490833869075377452689981767749287777754998305492238945143593440449560530804436451963012592081951988089628897014638131231200564572011616154147590058082566982280908002950336273653800481829315456552453455860237248959250365783788715720727508637232983209923724889634031315593043592709782887120102779303689271683728497152420061483799264090721013696117438939017652660842357160132248309369554857010495173526437674342701132171130055962118132867071661290828055985787292226016521351547365295904959820756326707777306980248043885935223513047931218928608791717098754838948492520704054256689244056129448980159110336058942287659293780363725075766128415647915610913483325276473991311701759201956933319439195568154191412160616799562649044919663815592256018779552543223994435865599870334724075327652554883481757138336218305663595007034480839474429018588185949118044040174213533932573740742612207523047951393655888223247903944028280151072951417064101409225498235332074705184879717777377806398379690246346671803147208390220284413598397936732537565967690841558484131208967672023302214942643908953788599662802926173958523498900368843717545088890722564087801657319900696870203615654862057014813673712264016321054177169569373906759938273929356432031195616257409865357500186614438584079257428837357776967209552302629805643928504098140031989905522816580387826615793981727028549649588934829278675716435869774715881685038843337546138945456330752636944732344608889943171849394097751576767196704433333302498152569273629840350815422579950086108208069328534449831812763788679118540805967922354493062518141070207796360702232111846053887055999339516592433154845825310434414704809543634415767576775041389821648076703112070548484132662398128481529773220669564914500117956492575562157667438571914042841572195904301481502645635996187224850505268660968742463366190685679232848975796864026187575369308818517019889079742674450754569364518422543761027616537964791551248555853160571377127137394455407611402915838721480507611490096691344351000023533778144220285506905626657093805729987151479268970693847845836906011953817236838385163633524246279448574443715779732121792178783591197951566633290379823609138666560932034315870672804637119936835501519352066580957424317451166696579135746405626642320379978621245708455197784397990486765992573313519565883202107270726914164333837314731069630705436813013562629016855373452836677181907366356123276287520890525565319384182924264254487616342863787069086067592629013456543171850986573959828110822009704878830552737509900720054107568172754777622076200709345057424172977641813453127899485166183334630157026796322547942081364019446218196740917999643412075317543969554443639474938620382912145112209982830954366066207346442911440336929779283091730917702695943251018893923297952695598737572453814249031115535586219873676067851317103583536824147802626014593818507606255260925031487039992809034736588997437777194114365674327307906497782771848378849162562009720339199491838429505604436907360384200129283003160315849362977215967522359183490388856411264260831243627128126076942960265703976552387794033282931744339918373341478038781728110197880338293122698981312803507016146342567204417337600488617428885539662341611699619456113840906115254464517403542412221012339974193998856029136605670030672928132073391267375181134575323105177173822961994978461568037149149957878037601595253626852015526301982972733581792019261556599538170688427642252110847128717605272007720499317515176985734564497475052393756291438282077699202940666078157688052899471606663989064759299581722580966580475162790031257941483405439185242981964124425946441568369583645765889057886780086404883777263520475856421562619958959862302022696319077300412041206765214648257530435882756787559726109173418909078565790445365146555232972044693335730994535918077960014563545033278146460511808517723583280455767869427313539128582897760138672513907080623298450127421012225935833954884051958271981115327036705609436996932380563032854286358924301296187079374953101594847915488918073778572445557520198088243686716152229744157887286462727523510777038180905343682727995894023806301736289953152932311812346422256792225984544734542255867193099262396152876270509337552063755237510640088322851628684592376014863717779523105148937630831345703270451135414853609311312770093745039973753081956089163783037438877728331190702167003695096094792144937322012277065444746218854939752683039631585147961527390921767557763881797617844815894405430097473653991059795464278749148002350873291516628880783388070155890704099423247088923101567204062949157139749323328516850406124147662778772389837702780035698406582976884669275847692594616783129642937032953175254458782415019445992823918822157910723935207010596682301477340116373337066470483655227533825008660134701970560961856459072990270996634891100017992078600824299320970627953352031845713069864047398498452482891971197768630261168381017150693718611034039201889646024530763051812758947880597196843656413628881657404860888560228387675680977399417979761460557132785165624742423961515955246751068247660890100790256212677062771932242630822712376732837944277396498267566771013356502024937971631671756107248745653358371146174062519151078811424344108848512929687024909523858483925258799174410013412920282071325202239200648347526952521205333617473961856683484478486167013126195831604154878489859696999043723598540340935561100306617363500584668056507170214010626780734145464720981547163493458337007621867387861762800138312211419868825947126445171804055198064013566631277652543709057068041249289308356941515283473064735255061102763579372267126990851700052359762283038622927914098279654490241579802084353926712022760208267660641283091882644746709979642561131817744531482787502725293262685619990620631539803798019067278613062078944881109810621031191159637390845214657429020853954275559297245374135712189012681663998286777980751143013888102333081220215342144608697675084023540200260371088307499726096628471948875073535375476798286153619119255986883882394968561138277049571542566190592156775368479188484401259752370083830915011042180437892659851572448654894412338397991970116686315966709244405345909640695249007234587648018536510203621007365554940637170621686684862549688038173054125859591338891510307732078072162850991741334511279774363004149709629159239036282466082088121759918978015385056205620779971639586530285789778149719107313274008441659773578627851039703481474824045295094171426266266366055069424414415455220120006871204891586351272654342665220053174596840050586174228648860601019970085403451590900309291089930941103544255154562018997461758470518556984098246759487175198121444349511295072829418656410413848428255009234316116414635864640163619910771748860052354609065998376300299398815505990863554945920025406230913891051928109998331056266924522567498857158054256326577533118973977713747958809822259577784390365438374802098978902266036830089899592093478654717754373151940320421467379292485503425921405449885118899939585765318042942515525629177905565640916976046213326042334606601335722087509236138362876072694994649856350813350671017836219150794945911172453450373129463516456672504568772932673075499894407628625138976284017939829020590186339636455966907308845869558624095448042040270898919557598929226733603780014262444468012508428186152749809777467791810298145944552768204394574952013803508044105443153368733604654638459277821169532025603299549570624640856165207620251179254808666186063133018586429764954813726841670429893380074871472147264127225455266515988646725130144928871280293516600205946139232964863115716043237220803346868675825085861367137517799659480475815890169422307417044995213753554892317615546544673818013289117152008762245020847776004191719338780272671058927560784475611676438532296850184105449030866082730454800600706736907446572346520310476679308748137104960196993235939337729752140493915697185988125428124159944628616894964702319428138123479882267875837098643761418515517871033374385810970351374377672777275117778307719755466758925677663767578345209365807766131503034387529845839801226811332041998192212620385396112572245310658363871854089449290549355677528912656614186202641342168380195522030556196767569577178688544980026613903892221262633025238431713924664981473256294794621508635061010779562341921267675144595919173997088397320999940965671427880817044044557995686490790075128253010183071670830150351064799624768788972554013224859843042652679677196106087604336912529175016985714570378753479715740726394048979346963271873139240577483161578454654268222910535569633022769268483536960449152229730868973313515471882609551345494805131336278543173954277085113410728839979798771603573837678968290912171896858002537481355728800294692988086999147249913685243498228553651595704340191670713470598770214713003872354829176825515099207087129637183608703579492415643172598906498277591637000164819054011197243569934495088070486229935577826381281477973383276166809303416908671549971492210789044717205118668544313101400894369820868470081363334362631004189138072599148707746746220400464824650462808596176455695050280914313125181777382552132956920131830517348567309891749210171348081584010106011798946258045716567778370208806133662633819203657365952006076990855458788022925777767977745197119639888297733450091617502265409966128920982959729151552747986458471475676125260154263788864290182668263576397602035263008514665240597218006148237978991492153156934634228708395415917494119104074062692586415939902384688953068713851780741257162097192672175664254076685372398272220610518399793990949943350242422396040790855721214851487885408770923361671293485663290796180859047323221048855458406036683646810461571043891243081021435303417804188019379624904832554159389808133165696918562925414585593554799299827348772943236562729925648525039714299043347222774093987963178298519261803518232013825585402281389433922454109536738669332008454683920021010914237398394393792578475625642682865576724970085777207512503940581185747766908103892571043307674581915476222792040713691056141014484476007684343802276201367898852467742593642691302324775339279248233211713535484551029853216831836550487160588142607825048698517547977109935514914956246841934454903042629677712663739089937286833920919920270575565388937822122278595434395541905244188626413794478274479697604490441231362880487189836483644187403292727998904835878991579855397660284600854429495122240971398677619924150065858361445881188243184072000834109445042084305955432135165559387445315274350610015024881098468900304400302161224218498869742966323758646724613115795694788025771932287712900062789291274664831790188205596727539156732250914243308397568756830532253691708873197979293015556463140229370118078951080881276068736130090807541532436388256584617971934382901685983703049849701861222198752612637708005976082237129438397537855610302561340900406135914173203394712052677998077416291372566107918894696695039687367952729232185805789310079307263444274547615168953034270667084638040979157556908700323632258134334835519401160682727562681981134683285870603340120995146323767516055098228928257733399849321949994189077484814030965723705024056016936661209954415166212553221392652282287594045027823982628296802824097415706977549727344027230387368296371251968619154836252096079441004062801706106287183759471390967334868882570415004511770668117894075931344793031451537567878853073017864536738541741549576973234881919738888048233301861881829110582758254907049850982524755503122916524879637317560606744026579310634462494828110766138011037311894233483587490146496259982928486741763050954333723551401653983743053378473702768998217465355301985634774535450401257264711101619185512327187532659735790646462125343984649805829022979978335783245548842515879910339378705907981832973810208958204529277374266875750024022377410649481512531148031980851538936401719537902152211133983830121340357278105447278116396491313356264788631537438236636654592424405780294306792768277034015489009227066473709697826410179577699477808907520908056692982207142135316457548326092028098996277048560569048870694276419451643483374796347202365245061756577338711713128514188798433356346885942286892823866427812010357169856681661152828926884781239187107276594689104473568895721381855744769521809639828620936007010918438017686536970058904667879148710708656417839751155708631133572612121401802930205653574194789505241069553675205785545240081443915162650860098798880158232994225879262760286718389518095763734874711879996203591548377521675355049709805292912294331635146879708670026394847411028367608078018325991938309267719275473504008399319481682446165071072540197126477823089549470959418727929726456187024120796864883343958643623121302165441087261879269082129943002851332445305446039689542385590654665476799252928502413973016332858717152338316447684283029882698237689315405457434488818749437033462863652625265056362578462380066412637966201871711771231246369819316758054046443671414087166700603137617981638467785066703183779575718682962019565795690257378612675965744589084888985200890746014867529790126201140232887094444035206674895806318355462545981168561911224955106409506381269696054277081133871896628448125560540223457932408599187920535588391675710090721700113978591150185484892187408520161765934849786792718609138916583048396010389462385586087759403163690567311883077721882277485973813695044813966298401582983295298998976582051810614006196827002028131082004518324347330002531824177226635356156894184396061365738172579329449433861915730227244507768539267945651208698660602349966552129241315766998752111815220658926961097385236052522275860495224866841468213180508331547368746975021558379903798459805034230311322212865230978959108734946758492675875030168051937898402209570790699336076869383598888524049129252833408393266801735579110407185405889685441577853378402740099843407490298857818858023916917270438756290526232718741986694695126253271681678597607923800495070500995189790098306732228885443399291176939263030055606759404782075080409727642992278863848301636589990128238662112640508384977434251035886361892351889144836271156849997318545954896052072047173671175852964612141055811000459486341040576968741911723208277739333717196577259342788732047190210957109268179539011010034721742815012092350068359611081315541415797219555455945064121157687664657174690908838390147895296441423953741949720287881083627680474804370707747481945791101093783581716704733513476729767471276791737793634969808828229214819737002148279450194488876860032172195783168233476672330905604811276612993345139127846819085007760362088160881179367664265026160029722509180650415831419468841176182809372592531200817752768483693470316752933014495082002871228779036307846187310418711829049760692646669118820498677240357560684297054268444020486294714012236797535081278634492655001766080716396547137161742716047488555787020068151867253147927451992088522664587824650023885380856068456209470648384095636819247364564204728552788426306928438291355370536760631811260184612027099846231457073210681495248980844888147985947800649155474063163993918589824337891169625313710225794755009311400739218785713118197172881054154894086244077167787091480045218438099551095062859539880673067536724894410513926302711963342988431436544531802943326056321724506934213880550145855971526803423128773054761596921081511068202642656420782058862389989595659983408083667022770935278206723064191920098373417862641840488888277195652086425971421700959027375865534486097789886765328768120741021968731305325333816507404639280315276361756321565390228139812310902655370576833777265636300200210350779288064483730002494295990531466476531508190763764320914020523909764929157561941705471245952125402923089751145901946829235909015586883328059006273352510829376585790053554182962793509466962486525818734271035661247563227780795071595052010228367604748944431308298696708228165648176823894488295147086053150019867450195641597130749000934992268116550966423664391727818769605121351328821079695833813923799953872212512545014355407170397329398760354091555349659554663863817216355645414674494222411728448244513629763198420998910755859125015882992183907226030943523589474281453053366293019561397803370334030456127552540900320291832676769482001688931177746857788988457618954245771604252884450180501250851601934762470107304637545905231974028910017731663533761729297925857635935640542137247917942062830912810428895983106326494824450274776451779962225411976704767777117731612311807695944302874232335508194612531978993283813290105608436987360705593219855070661064496574926077732871202674342473327629031495599464425107512772870651891113023846286626377440383329076429825458335312601646378037569933653936239602206915072805973943652966342914517631025293791576067481854107847469902981463564139831439568772372527520490969332830415085497872710850935084600629862592803113728969691750017401732354482233695520406879535403034769670290269099714269091388104392442818401056610234273765602368613741503070280845124639924230998451940486397299435150122388503466384522320294377052106517728528440982137714415846520280219577947390042288643151233410839335697679341640028027382400033594624442183065386613503819986197544138001479173432951633751144663943282495783662832680555044866286521254510806591075752329118608525179188811683868246478874553771081623644677054651380858333027687962773969687457547309686634271710462676513641804717788867481598613785294060799532091058819927701143003740553354323967752368889758444088443550987785082199666227470525098772265542840260776692157238145010725733827947087450251957173670946120435475638141049399587636691481990937431651373326761523811765224183885494271351931212619839800915729432271994679314667046279112887325579086940752144257727229928415323508358664359415976540649125489956639633500540691479220017843167671242897230705253330982740373294937792233971923995301746654160961815550463556616340460730424388537274828961337638740308336503534460457231321255316280926575195517348656578437902513608379755679601559961666668725565623923750369833553382261634457015693782660030442791130305532342728479101080872033167003743726306717067170726358507483100229786001590337661589283593881427058946883275338638098007352858718655283066692853441164776678630953329869654523686017356422448597313133442050908851727199216723590300715988686241862211759991541406363502551925119796264454455546590633447536909480203841809977341800339609041074568748877351170653441149362862005305281664604667986469684481990678920134973150744738138667881831309802448152277874574574164558511646320139803917631390631837431350395280499986509092402992087844996264960541997726432768815988312063519707434052976216071461081036317289996504258989732226070838107460914568503554291039962054330821100347742564960904015880772432124649447971235010643414947168724338198983611470325103691425452206294567764838709496678881228603116622793656835410513974482779231216159348408851975271414519319400584869760882711586894436250104231212638702043629571757407131835128214074102764071404326883279693517272281508658703000882495948868392596815740141746439461766902794900589218067856121476591562068396893232422126140199359580193463639614208128204085582125540069716260737073696002695806817816819428770586929676416352021853497278531498391795387861846723155546697716842865070182991926972240951584525617791806806194556227244877781608464001378297287140794728300016199827425621028032331139716224129875190019799972785005611849452711528245887641962804731150135360854934353167758654139793405556697276552911349375221212823464198607492591840281807507565161023908908102205240215847620408263767630578726431164957469643767795000325464771022646000993849391889861170820850955314718439861351810399928421148620418000442445096068356069309750384524287716651293453541104758516758967463607893266614204268616063556954718384470210000926579107378221270179269025580579375307908860265331649500436085017081417829743591860497336691505183179355555757016179652071675739340880199487631312078564139098805949176849511869737129791616109005479843233255031094009825550261020479054452731818613186218116590504456585131022114637022689762029726554233918559960408405080855641870032850458851188966705463853840386414302258759678265125057410573004427877418971366143510193002521446561805706280059994942524508187839385663448134436650100398543318719607541986949886214102974638121576007176284823313734376416526862763698887216826044380473245552759342795646064930042033715305050085340710101900631083624279876201794200799186171907258536949756839526398695668271922735206059649125728823717457530897940560423609224139961715379512810371315338730944155158825478507837184972584661505903818389892771137768689599157641751525029187422670672306301296908744400277589512036792697332514277621731753229502367844647821633364526074175942285724819393773445519629327489652051424330976167025195142154995799601250970792321920141540761318288852445106545280946275232356037427022838603646780240874237683037874491340468458242877078834514715614736954072799149706441111789759825004185701321259624993944908482478365372409649463823276667011203521882159190779393478128105854119788323304921024185012026597956354216444967962392926656034947478478085180329013189707321265088455621537085575040969392892819601586823533695408214234868637695163435177963603192586699525661147188576084895074736604905383485451316766678235870290325974859558355466759828793515816540231390262717685566197139140323945119257076154369563739777397931712072771622857604240852924991134794315739519642253722189283320296163836438577580914322599377422775735723966672030158774219863148951605280378166398713813728265269723727910688016986949228718578138935685205123933097866072621087616681977912310638532346386006932202610442454997567064469734430312929018471562450436520543225734598528224634020213184359181716222419122624449803748763367943698150636283969473913021975619210796984371081636537569599939421809050645969985457575248858138413510909397047713870859615938757023318285264073138224924710037956498062349702802314587407692237919657386766990430472262053265240468491008156280109537961787922266228540110502340446462419391461625148273283134816759724751786453518219443757648395611321169569885723696371986289089276717145110154649418904747118477960872463562896678995335916750412746229620010045997004902014145483572949365023878145220255401217382774162935540463180802553002706014973645959293780092737964488685031515922230335755281749920540617425219479974779570589900223907928357639251916794267001244018822462332110631583988329439791039347370356956417247647204695766995418392110442114891093823361039388532686522002846884664874869591567062749949038525003915226102640398220618685742016917717388011393704900285188229256757183191182127424051698884409842889538355274549893504710307077004261722339830800808319872253783778009675348856192081724165873481093541174374877314252823677919016066376319425779922383354054849914639806452537108746679177659355347074050752471436203551770562683680395458198677780880634596273524581432728993243967487205956117241317603902623302061315985780292078006802385637420502304043049596803004721401073267883832075087371254794941877255228503573120520764136318765249182555351767160574314381045391336422097945771777977095593251501822554377862973444484106040550223359236060982994571957402292275686514101820084410354630900634322455364608823352163398072124046722125866447689732351425826259635058872657354696229318637717233758255771874921991464945095385811377533816785848799785887486903864475414067570988568394506966459500219694310653367993907478276148378773580526076229855678533499085433869787522750195820406185558077559761045636513827790186613386820707338244006790783103756565925526879506504319478326420288586784089883805610354454707418115953533313672149379665472832080234439193930477301364279645421414938725925157038736059249994876771610486644450429692408408376324004803006424294745230021063315961893157693526244760672086138834106050799551453013415756741604353899641884536231072437661749793670368050528938232831814369205743809879077555217410058684137372330828309294666200497243638041869842431554990190267420498064438701684396549089396849138646759351387067786103172002000715869489299206163315840011043232683307488956213281624488641048293002094722061779755562132129542383123054542955591963918336921693763767450568158448753107318200396987095758585346194473020872036012874033387595613016992521947431529622001080568992394161794438200887667459167186559324917458057471782828395889659496401295366378968968773514882938273696081838128426614325469032752689314222177014794679781849156290066757387885793177919997154134756450100551700149306550143311006637932486029395467141122380655665285688802554962254974622812350654948751888524109166531319799521280293438838553228672893886191605167349909953982756799375273030564663021927496601838967241285859138942536698163083172288910442773447718984410691270984108229021197205754116839490586905845423367795191813853227304954408312607055724927521228448787682236503589560953123953579603923337755047194074591504048088708210788541129341915705634814029232766508937805895218641406840535913056458905578133484456392832567077445358587326713742152377859914141753619367060344647856812439401882474414979493212642489756256189811097579658869628307077680396016007842949542234625035014328907874345596860181405128524124069154554556732095386631073961434059375517326202898622334036067784402593476381540408948130851162507041774440044790523125835859279110069870956731766086758326091959131740968494843831332833182401157812789347753320662351003397892967015143035007645815044331697325376431298529851697085163318029248865230508767900788817452254065790338475592967012716576000959222087467308155666691354948991145168702082358883263678948060808016817485306085663042498410371765036842260447193336030671200403085216221677029190216584403746580685903482972651149764692562551018209166867191291176978008021500467472671815779421459850571618495209222448096722102963142248302390170730315455896642920751074795101957856200769353003580834678039108654819123107947555784330331460234563060049739128567335211131958822494342042462254287984013486153538643018586300679420170182902731306583671701759660656143693927022385980081491223341516790058790310120215962989160616477778364137821946322219707777758045372917368240330831144896989091270273052486703426653423773275011775064303038928585933966868314504449716781697255936091049704882327760328905834123384911912003187336200408932955822033175064511118331815460012085438875536059801110024952642474595578879012272931758858931303324025851752767662431697030741807988826993501101353223241792893270661377357534109393725227857999161999550296569705231442414956257039752800341631748250097940168244642181207392480885137639226526173187144828977759211644116381652520558347844369814016820985482809049907894147064731353485475264115773241734847044561684185841415553342939654941738960857110522265473684379982612851391660118959908644216742337570215418691323394551008580969791919117450479373685697108686937917208693172407454706466683643825809502369608616608347927620966235410426342603370741890736664555229678371958861617801751616401557946305858938236169414010897661062541344441651323968970678988099370499384212710444522371736438251209932439616446621536804568271373811056179583899403494113887543845601612012255833194871346327222624366194648036675263204700423713642726560577286727692986240641818140877382172753347478481328544577925473920499109721813932037558362236022330668935581342607654995807409752525806923433033209748959312160908361299618071732051045872654155730221930702449402488362932092996068692889143203997904862584918511700634867223526837984000584717717379051380710732194283432372342570163438632567269717563983231865217475740953898840392785225686307348542354937218741594528537823653452967191530607136485358987756874261949948379049448101056802240316976896481158248587520573509118464475240089474048834915345304688941250470907386898158566841207253475633408269264134559617820044049278471221819810728316324385815497802281576556037521522999442458350741635543716923939900098365644820648988790657640593542142277497223290467785160120572084600474358060184949229646268940919705773603684046918970272132902429273602890059736324925231570005289825246612644579962651574084908578901947659246389515418072142515189590858289401564424094012487278164280990377797686247395948617169733346783874267127687314442563475896342314736115145823819445092652965153927230306205891306511282548719573844079206905634985616688259859133504565757538066859304733603008988990170663462039349840060326604178493037366806414002156184639666633172207954473178431351598918955001566884194097817921973496702317478129147680396340529061433374641108674575267682738330771743925167176473246341936645441478261546979983860459030521343456348967098327271871162786077318913409263020162388408258879416245580413019348221096643832365711895413417003216345218962210647156715171318857470454753015354003767709601393239770084612604416607177459869111489718977436778554894880694130944528699771178049199559661693157133061860870310877592108503328886839081277465565659162156984101363143336648383385423072206175406789146859501222707106334342538895237981716362499167381797187118186797821103336701560402320545089034004918517478594360946278284112612829199448666124386609920655332020155016866446292512640413311281968248484463218960167565509099112512343767459420187002495825420702275834897879792535642828233491215117373159279727337447268058226654775094467708792193338461930621722690878555802421976052606151517704829671411705583250367023877483868171947474956617208585508068684285403309618769216234043529610812729738159867478337769489773192991539859492324350626629380177258811748281883476443546710508743561680119816798742167882729934807282991841966296669878908712762107492336016369277057499308686167967375418342018876336433828655917521825554274635064091432141456685368315877694328030567610093274433953978239863832953319293955995779240408564739414627078728935714012590014708021010626876125111671679131616890615529071364762614405341505516010460209682965229158443568561755649112330035380998942556192603753307594809116789424626086354337741818793050730747589386811325401700543423376532000539051322330425219960802471262611712432645030621204284921230568598207669413638998892794550015267811936954387242028905862751213122726087418303201126688117616219015180239812800229293085029325808489352672464462237382398899468140152705703443691698231982201514890733488265605206388068767421349369463636604115268721261238781569561718108485534648214210587998611924337947563336645115732720913868865634844896274391118773917701877198597570117234953323340607191091116085236984804238290506282220149021014240150851396236699296720639942468349749088367761383671115610597836581256354278560545061741672066356889117600893170685688480980577335109464742368502477216199252606428251313450438042426320738075648697764589465231808761201161378699840774084372944685683758731308908356848496204689497377478443576967047119677268958299629839827871567933323012884552699943959050897409702551707003540650948649679106576570921802199378445236207645439451802565647278045888978302482108696045117101480261950650806853063530801401064171874434443176789313980882911792262705270444305631022294252141560983266820626410511984511132230476343979235103660420896324120245359154671452796450761511713243224717365870434092403237402970178683044210084895505206228673140863046487446285844575441909875491692476250501763333754884818297641968111116747539826958737913364600920294308995545746190264132412451709807432888445350606834416947282981092768338839542386457244513019771152393034890721566351178544297540048089389427941695160611768602813628924324944783175596310926565121518300080535669722771183363508552380985509022281726970695941514352904525650800880769196839779249040359739195260937322245204250488305771821040426815834588396339252751662943284454753724111707841335341927296868428796272128868086860332965800415383908773332077227144516960839601210458273860895917347796080807598192863784667109190675575047897304747813721832979753019746137638198553911095786245572050193317173682871943317450774385417146441542150051656527954208909302654783590821119351618893589908370640484214666424317820067667088661706569909172136332842269386835381051356489872593184590454872203735720799305972370009401543757667954904266315486533840059555198267100867123659128196793420016366967421806447979455825068198437095907783799638249287585580093775010737061824234210712939277226304562082125426436944916785356209582794025399649232831971602507968311252090591559403834550286234364312252020153504139526723759995620512674053877464752224298851534514434048119484339413370286373451190845575981507306446177724053005045630930698611180625673022494779094564854109126196779323777912219457618460499136351133591979773830954167478583873957889730430078062572665522934845835910943267803270857070337965035003753541668105625824542760778368337276059492803628496216079890217949765071766554078810250483208062822966703393522001609309762950499386143079039131628714045834404178815096617682389466601580434001995498133033039484412141419651733783133609545401108182037905264985117203290061321228910508429672018744152853792742889198600915206830700811689046624978260257247428259896136814802294668665436819512386634748183327976564588777155392577210332781439293360557806241371151755508330325476963407268014833158102089126075904235425571244326562443861650487616732571911416923521712678337297661307003312430114214958000635330512946761951392011758817663367592763215150876596783118392151985002613260837690890917077105402472160920182438522535749687710424803361368593197728262403502306123392600545517857438938742911873787512539212175403883281090260753102239176975092981213031946205437828901189457889969086953705889609780320219119767726308481620944316507961842116627170094973276033831679911806471378283322908813559826360402820326822767156969179910748324044127463098425492083952546150458580394656644242730399305036856942113040681896150109998560499291456595636787769069850417415779224530463754544530084727727372764579287566069261149120035391463713664504810022282033007928706817418385144117183187668351863617126245483777219514420328386046634284490017273316287150571247549282315469679003811265025355063743916186654645417372022599753433533673720747162567154449140819088293602729728932985794995393112757221933113433249730419851850266285446104137738278743866952550741725370557980674095949121828635036487636812979539979237538989988802840583177313886149714560315577154407823127231103815836980070904347738512133396730512452462912905781282476758403749103980132368792828463289759793223754955598753848649012225413145928727909064910310144239988440542587295857264452539448735726646407743740361790462291458300273472313456523077828231715210599582788311179010184264700022423025126188323984853724647547019020585859066864242946130473849117883760607202029226766589739287168213554239278453250454481444016822708941314726783316946121101728146486060693568010784601528504715761419802150847447464634648203370913349527076667928440086312528290935354845158838360420113762914072580982770994391508300070215837733044508720218875895222339268141235751213967887480687641007796488696362530572358203593337452450584804687436149216848909881782646179175205947328273192838743373904589232984315265146287095871154879991972994926703575232444135644239493268915447313268232818321475716189126498860232253189418864805078683872402712093768878211636531959481295413489264255520611050681933289800594641734487423503307491646290153266889536725427420015283361120050754903348061345885355650268417859991843944269076853043815445390950641578742143625632152235441795977391533000761724061331996312189753744686227185735711022480004036672342769903809871866331670278200913481030248253677401225098335811502910112864710200777502090578909367485117362560179870510933212854204606102132200249245803925739627685173214787907954813613000599065634641189228680134013636249964162316081217452678197538433352480282083063486793014412239541288337445518823858374646788852632644964837341520722187285013146325970081893691166511573692395569865012423333606386785741119654805923134209961001949409689325580167927878351554151499506618578929252686891093219322657508707638952971146314503195347506728045949903163240360635421679598713696197781523388559462780380997803191029641488526920086442115399412428599716424253781790885011211945166162127449186610334728658798049398506161886738141652183690429354498382497626304982257092978783081302581480279136647971859731909521990123636587197427441346449398523375530887928991332467132133061457702036529448363813213277878981774165813409302162414493579236142181671532330865726490160674531778277888027060547774934083156402793747390736983270216924109841744671751975281159411946707404156666195740667168703639827569068421535626754501090490845547599545651810556967197732900281708876707184935659168296967980494685944151875452717232503645290814906250913705121469297495011332101505345174864779064583714113010471091933606334838435371180138390425849006524496672342346514827741582859457515863349284140921759931861286965742908605496634280088580884741857444978577580680806431545298302228213248703227236014443829330769970338014441207070572042924743950768567207484472730469586419998113625994273034488535256740275604316392513322488593632578938709036979466898384220752200801109398370687461791213113661531193792951440239350777723023020217068325536896402063489689952949496288340662173936425137951981485428124063140159386272459912886570784812862320265452448352338676847014569125675631026543190992744265663147410008416920159616431554623787304286802476187331533829362815756804808066600287691526656646248508264114486491150652229084152662788602412806371632740351562755557226342712605590807309375183105687631700392117423093057161903194123095927121142713130911862515162991659551698046891900173444372518451243473338954583977325901816364135074349131096138027976213747521996588150421033054569622918590548651583431887690375031654911110220844730343591169006463370280839631858645348387601960246423207622908497176258856136205530461115808638328025315000635032688076968083745060426334565916817126746599128482004184690516619443086453251926228961768848399437763479398933690999995651747708891072248178435867995819312529211422700547915807470288894008465580995071145825503602468097901561702999880872769197409387840818997893355397229819984042052671769072345487716021269581585875410322661812884956101746883275854477244137623576182586020166425245673417611385069254733081419858392708634757345875433369239372116067614316289038459731629730733499428314917689704317234013170387634704856108478606637230780209073645410156517602736652174639956247584814640097602372919012795876849048786511797602005714910146154068982246155386686240636857035999285346614127577907639619890004924229018301844846099378310429953285114703183102897907359018213969769901716883641824266259152288300388575581863214004390060249533514049548280965742310920006754132282326743570063560895789592951738762142840401042146025542395816361043000022381527449882223798471334404925039105823312716215175671599254541647083682220465538826395022765278891775531253824817364631779760981850078181446346263565893708425323758728937196878286508858650527237009017562536998590267338063754031930492245133059385579259606565069413086451309584836078735034406887599390382726133095612143026764898571593704390988273212775002100722339468400845019144618458581927256573959510690574362339303714492222770124371815130551965669301741619243420191038357852605148843900476524753688122980985697424404779636092453115722496776238040466170344671760420763474272477141392630772495794031019024030463291568509116368264097431443476156746694614657246203350244777124829271782490260373792444426380248805155381947741284525389482080036413285851924173287275969311379177669475082845774276844091449693817304981021479408957119753351565980037922393530992934064835906303381975075552643305000754947841029615327671595320391680539483956158470227960477013649237034346513802405180048532392978078987830701688722461357651446088383716236209108328201072980694022933990526102619288676511363337913653442657795711256228594264193972099614953911964953004365293763534751759538826568473103748651789991275929715762127181187842098740382961322097542335339457774355937399046211210235386162735391465994403409461416034164140166760829085014954400249646059460707189358428834345464556598346281373067925099355872134273037108254299801617033083187554647589745678386527570678862812056585498398282249741959831378275914029267206670269130095843589295829198047272899698563564531708367428239834506531018098272588611744474110371486842164899647039645310618075609908235907204022959236852462947351079024657027767709580841315877067763402475193393429658962673884917904488870030036257848529503015882436045142074650336457872833356481500963046186580451249825105886203404881489973165445731825780287898483301771875810696153197100040288215641492738659106881529157214459503163720441069342743467525814474761057137096382893791534061030751736879470930538435062562215582128080398680987570006489587987861695149215834503158990647179871624641318423400856893755047624277649079781782879528493184748980272700971510467371679815035728781284499439252644883656600890232308858936852094331667661327830007141422392258017265776122316422439589351815321857348949666465944570026143973052888767557654504375203920183747308599429010586653562784594873674584941398837637534184085646075935841283859500486209442370641474286525027552241487362434071999277491003227624639873876033201270213799881140875423702401833245768187864662786610254705805483845140788508139973722927822317206449170250961025678656561688325983023506751827244399445746613188785525424443063229050535983265371743214246172839228825042016387526698944326088551150423297821488561700800485109231283788212680867520413900131604632500713145618662744033085090257005111395897070093486342180773162068718677770913637330495409483951167971181295926050474326413830520846915876277928463949839236693254431951970372718705212561953817671165169461022957433065355968716766315068167214200241151455538975169984491072072638074803687253226680458454019980864975064925121472256043285827335533029780950918897075530415035226933333728188034349297195887949066122622275197114915774742327771185727356021034808697105246406929213594109555970030950366099258718441552714513990274707751774798740035324262237302889211164168117095422160389462977735834793143807188258841067835566522353469234712077055805066324498924246457283191270283639460186966794647506521243099845470421538109134681463824470030676052162419674088424088535687437911799202531352782673842161727727895506599446290424982152359253499222165654553505103553938263552869009403859334331731172298768043718122915542414206583319232723700732344231858251726631894237916398757731075996825392100155930774863525678044523194798188902518948711569530320062660628358948198349093512808532205748469853844794217744461235000944379430084150742133100460985080097535222230466186280665435394641850336967433376809396457486462082050448207893454216926927622543429482606716573812808337174888278036784494242281359173053380529727170484102739617844787616427499664110274497743628003035618239216276884291868900125872726155497547005295028494665811543934399922534169209413585305611648096585176806079959723735859888710571340590124223925882612942761490268502731964031438998994086389257093972177039228193397969222486241563251728338223834120204871760786358342398313713547703883869494371549772423933385127901878657117574319065421557849189487820553674350868950368036384776876476865344635501528015181930907344878920801704793992526919909198291268440818259585465994634434245771609448485062637354346615858498747342248627188632389164227773351211819345987157514384296009921733761705564269366769705088875238374369480258324133844690186695998678105017841850497967530163786365580320768651484568432950067677554052627513365323741324276094695561759564039102517246179719268767731978785328547157422339868371962693050682396619649800232879791405371431617664898779038278388377310188537661259488425895896074073820630915034532698544648352808909729772392636418705974784571255385063192808356321754778913934100779814261407825876160426311816439587316502902073558578346177471328199779530881869436156575063582891093613301333004614641134006338061937644933068630403935530799735207527650691948566674870793003176861634431216966442314000625145531333913414219853751765250242279334212200462669211660675576372525818973835773240370993148030872476310555921534840538641307784365722109346911871218914907678914811175692402282482726372170576292199014856146202031879865093285038834794045516968137615360213195888237400785424503679876214507984523779093400074131461405305793732882648382982972349972258073001053868517121546083385234119068175930634705037300398483780145727207172624439139471319619130966215881979290712441288550468206085912256795719408617249150785472247827049783626515424246560240210962909214283022737714897583173310684721841210917612851453855896754361705677701306687456451082804225610331137641883062204297110772766838465250927514603145908726455811427305983436017291134507802350782476212262521009328310408697632914841008805768445502055503892017937677511506665738134424905142271497481903238665468444394847634993021987621863903707110655140666773676566891344379047747279126482150641156946121963048980812232219339542514070368489366595651005156605861241654358705276405010713528341051535885133343080285458660294749777818321285013884681995864501070904238190412652223106469200978764208763199874635125306792515859949752219400308841724835383074545683376910179505665447968342888422198034968466664330710661468293828870443248011333474824683436515827546471285287271495149683600538656141407305651084094952342484805652667444847224626336628796229716921644126332133527656693785825248010347850951635690780946822797162817182351085407604862215258976804732569569631855765554921933092213214590788547586124086963419346514931644640948928153506472620524735681024844055986167225571350383941972486778430949307859409431833110841733373978589856310995080569409457240900658767798056048825943587930712313324917760422566247135827601380188875225096774766927547229502753767686528802575299374041771301494309846196208236126326539988890078018306523590378233507208901804436068346934817056441400508168373798202528459614107249283539122914772523525722326565083575936823793412246606459438432676078948617880372239577206607436258943075266168889743698907045803795725535279574314771401951266098498539641442241327962617404495071829407693830451575699472220954810679180092721888257704960529684623294034486764382800486014378792640341410948548664152493405481828033037507139753799231848626748378678956258768799861851998706649192907031847538517341609740789360650393644738324351262434801339325752435743080952127201602269446369708475351643163415028711371698710982812285775499122838239220972036265258019096186194524348085490301674694513603591924649812042951220822638989685219362967640007522074776067836310107531067351696800311150936519206088964355380622587287191092100722440402845818353431154994549226883452274533908623095973057625283774440655589403966851513458921938017074477983297548587339992529316176176381214426020426316077627073739058900314545599088930160948697104106221987010284530869198290848881247287508735720184597959327725248078387244167309220033975617903968746004583753979178763549333434802735489966448214944569201215459727334997685721747617364117506275244568237721931233461858115956216460445615410217081797416585425153115988604909716648881649780853405141631087332346081870008194234981721982376627125452869409737665806630651767496162408424922656795886820586985233632143249960354591561068938493253951243644210910275771161953956385837823001570184103148783029326208796048818743881371621750450740713676709311913368401402965117340101347040328278343477735984031058464111871035275962074358767585006460665038386889959797535409168977673712347619915921009541257010990622877061694004861370934004288479250940033944095322338365289184712533752565523504430257951774124104961599251278949353396661621362768838000221338048411589999428056736780277033338710571736257406207426305766268745112191972339545845034381135624049936294215400381489421460903710528417821711379893975805322231252108702797442835971925161481734592641991559074155628446794969229088821113439371619739212213902364868314789409618706898350679640598868946333109573363042090591115982804680555868762551069466673864607500008895613018626367186057354768914882156279237217322664567174330472131401942375815966883644933990883166832035147132658816501019674116763269819822040706595739049605574671827815665664045251604642748065386350761492618782437177617919021173189523366254345461877330521551713334455451464927991244167794391540524146794961684491496241302683986611479067240349681728629047313507115041253054343432320053263222557587804801001958470559129940742410165256224268325802762247471379988761800785425855783572880499206080551969406717523699350139716032577099127323143648581932910180752166237606994876512156901184519929107112978468324062102019573158667031982106342154389561260597058155199291155991800547392515159541466012100417366545994904613431470056431385791769232488322424018579585581619889043258376482196493733998759093539035749859435822054083561219603953420081136421773032737363596703345978352839317475250631497278875149461690870795688472991118470484842056598715979951544218433418140021677120900450789732201162297873732893270628252536932099315688612465619082735381985967746122486580310338097496786875914432566326978487912311182153761376204257597031554624534802490126331847677553900766812063241801591089333815186576502107496186168915372819600384371246940505062077713088429912947885377823634858768296484890172841670606175807892755021613986978416037056538416587458928222364691313427962822189034127207189147186168242760412266566948027400723735594248184222029085219495322246422926273202325882086719482043925025155818682188789400876763262328864573283881885553477854922186085357181409123579986079485787157912683450739335639437538272076848979214068591640307780397485827070153659195241406061036198342927387297526348989974820559921502125072621080068212322493856242093840866592889108860975400420640819596870308964877103889309888661221128034673366900392030174276642605102761632874473381124546170055763247830595895143926784901097313140570820808612513927531992361195519095495941642410476195860873928291844134703934525722354179043131474385570686884096786696456576965843536554897536308619114126113002072254907216132087317448900383055062606159715643867054604495520465229419634731825950804949685621418211925491827718823214555881940283044353723627405678623339418434331451689868275155801324651863556977004558035388526660151261670098465260227198995859816218936426011365665248360785632919824639897658805710397934161292238338091493273087543448941572573916113493541934249700137033120912350433285581960027956777814465683346425026863884737944401101291774305464375592652373584615316232559551003538741242951097655132492157352091257525210717401543132456719387279781979972670483713425431288758783271375984836619816855029581871146172222319408834984459750370076929768866655566838194651499905961522070689824101271081174748784141521219109408041368582642636070008426443639667220292745540198418996063678490325814907195499402587911408324468651704715744307187445052699056400346495650510998294806435313608872024660341300739936714534766420046429860245571974285673432833193602808232213398573287326486816296517249283107156594608373442104411467156889159732087148842040515241600660775176696518045414136703271066610791832385798784465359980885352785005551572156355131746937483264129891424660457060522546969208022816617758646119347068186300082752516203843736118497466910170487437585653597866964801648006550703451958129641610835928608412317028166234640456898635591646880689616502535687320944711965284957365788245812694058382899644644414186069565851706677949793058741640995843419086719328998548688862142050896055418203533853646099796969175488564642254686267317812105911862154327668424228599588874486404190001048180805338311152950632930102340561206006237406285039022941854994170258993964298853716417290994469391150348941985956715201517662757147980533014558736314885934910977860361440397776156938301038960649189813929024233156138954247386071794783947147098162877825099713933579664620212666480648782324785095750723987100472155229915130927552944912762940211299057967942972038115413845472780595542663740711994726215930866386817873907985783485218549567539877380412904283656432934684351188917575711310414317412297420967162505810877183035027274305254924031830854657837324612063151290029167149726166855889265099504654322917099991512183163131000162819417826650863562054510952768955268516864846559931550282061626618882343146629211041624383652166824082201519899404528672469505909151775634715704004521171787811092253930138242263207738210027271062779949771052842193964964275505477487478499676372581700411774311102635349634960600665290928841507345977541719419732261585725645988321264044082648368755642681787025090677997764161446524582010037304113313406533165192467761354779999232796992347492869236279713227725483586922786928468622150015754116537139576772811523488716210768251500813368224722744933819825091305542618196479040807615211664380074431710036064018073535504976827228132741468932293652785861145547848690354166772709922344468276847799851299274912801609697517831796278817996701991515771774657441142777316787225987313731694615974198569414928610245795922723280484745860589976294548565017902022320319541379124872078767979937546509046539995240926164894295102867331201373737238147957594960435340386203050003518460346757421281722818277405785849425367340252883215696943415177791050031041477124712121199066691053122194682011464889477217821700366385393739708805585166526418285239003726951646269479942580555546996582630582383978183533344104363108716567540946209760994114523333858947979933908781874276601770785226911321941616188589803853494361391162936924595504376430113063642752023853342325718220117624020257637012605156874453997766137812553012150959980084774736089681560911684031225826166390280131506266623146632288704804891645679655514881615051226926916353141008803385471786347179527088043925806903759979678634056299415154855731909937997229359889713101760767318958136587668192004085674693646666486453757074954346258092311711744348259260733446819542677258646648448391288660647682818129711315430892075108346058859816512587484933981406087061886405189828006632246558256615734435380734793424586639450991092843052965939484412088786201431790511949203072920585712692925764823047063382584166123953131521692911535953046199951337037268893178261532720780182608369433081229326389223726626651152217763838206367137541931806249675858666101338907823068818205659389635155052922695050032752107520440469099016307646662055152213253300017869485081329400180028506273428632831521575610817259457871652177074210160644050983817901189820456539396454838400956903080482851637443790408335008896147761661847887076551589458197677850743656154168814445192332872846892024763082229213312335445269583048970400263429860390885449472515551471131614609275974487718966452308151830193985622665117933006690948307061606096757234841888000836448585019310203379504396265642508340500983143326846291549108465914325220751337681342974961127870900160895141826915201148457364142098221237550303778630027968812271812324263744772461718164056556900754549590884128843706433659181090518253111301052907196660738579189131117026497131065320905833909059744535902526044137424288380414590997434548950757109907122214675723833734668168242048312089222677719097095845627786836185880670582675960572134994883353342160952335279605855128896806320670661652780748077273538313512233600552288905811855599353979083533058597272592183413689542005722087586261550985126073357725265027537045439412651970553407285793719349377374046642344510895518327718412678046917412775935258066323260261751123947033857892507043746859105282637409822078905820313112171254642051922353166446284248650673152754425922710708058998606463826396290664108643380558840384961854621208658529647823504120966108854837277233054327107863921074305229056684357626050002468145529901394451927775010179346690517696694330014558956291589082340936467842524832776311584550896302135071054552956470063138833565385641561628762079019260086246566574669358998676645882750696403741731070969291972716170366848679009645328070403281702261610192672137013225805268082848033362620393081115537125144378061544644554862549634735328723520924604427220568472177849183798801209450688792560428426471824090901758897380986462626420514679090932110654784363956523467101703742786085407560589971488207152679775252219755925932644211414633518504972131866653898792281871061644077182063476258871667712821627941620168253797263983548507374603912141501784104654773991747264475421365526718840514118953976730675025832503480207530230285982195253618719521839657846169366044205549658432602308683559626261917994569038106209371226371229999791102198772079127250271914554002085702568575549242797561930368968029150660224856686337356545007696863793378197949985313624719416006846921487678908734302488435239058841281353021673136826989568137868078100505238547368379628574016061437010769555615226381156916693368572217668181855985107478139363224568357857177160302700341812801270224840563333751833658986675241510347932014537196869956632455611309807758690590590564195416989013477194463384408990614364158932182689737736794419900042155594989928128571430285571278842712388858623702997645927234746000107972349036259915914727012269148689675130080933423154596982373575412103599377528067707032443013211591689600034159790135534396094484120927494940698462843973333492801395377649262631994549210148640306322068133971334743094028873932448923002519932520135748132569799632334190021293794308693493476819627057684778173025546752575713932174874682062015261553933148192694480499710401023716284565521362504022591522853366537156481396900794978480336844456195697015672371759669489812197837149443239520457018064005267452397455327075211328173684852782421632975458977078050385929859512892569198138853931990736762030181443308123750836646594612076240463469649872586531125161500924621492835649172407169001217184280757279351408299723558062067822736681940893802942591156071189035609186602262659760811952261163169834894123040403270653669186077045094131151618297904422847601546743869443179114448654957412597231086619325788561854997368896818552804330759651685329942023721116948038800908113116203858010508731965152817592440259502826543046298088822135561861940898319771108705328056438848736247800432751271830880569175585941233681614055685814790265340172590374379743559108502925865213871713004778510194544795010774431713633704285356198709157480382786713746334299650191563264626930713646756348163344010261367367168342757767651884953749193358556150543515386589766774793454776659383671369916793236368352216737996449596189332842973241568772571448225262693517173735880653461658289272373594796688193673517980557576526654618698060177487950002647202438598011159501083595584672069089918149550165349274853539372799814879115122543494575602084988854695237588219278983394846893386289432901251135009965813846782033645037134699171349209505427873772675877768791372729218675108308534108698207125028683581057750700986051725904579161703726950430516272035277440214513824760226940535153641652652455416046905394840704681009758509232547644774461862808729016007803898391131727503992540205786618912483162067434549654622246255047069925718622628002860682691963055765546751335059582156142144336528284771035450616598798945080494367581853163351191573830031368094565490889273853069703758296228929580326140418012580193462842121326115898681662389996025216176457534199807522716583561625967285098821133806706587077020686238916254399602808909728783616075393346619716825288816294082094673787380835119519051712331227024250390512073479540013508935166643007572461088872788368362394738822907037588180276334715864855657866744035668561211138494815563482754777941205820016179225952840033238042452978770198091161598974766242953093369836590680824851921920129114228583690156314168494346326813021281457542536795512617117060233309053976445733945055908482999459866037113829980105561179971818570523613089282799390153559140023279024843879976455430988553136947872746895990556748878148846564405919482368493387086194191657017872704922930875104951693470969224714240138660089030463833471519851272481457286680159208702678327830071809829670442950101217906196271245594759524547724422727689486823178497618612612515268813919693544678858980507338783270674548254862758773259284154084696042720035869029349706341401523495023942890737356370444397966996037367095822694148965880481375165196209595811140108344540595872788610047388814925526195147085687269830781861772598589357405631307450776038661543405141186258812394953678163787029706302987861915688953571961450067110639059504735934473438902392486603351392400879512097308400299658955940656377593266187773995462353014310039989669974903735321687577506837743103238926096738192091149983493717789013333564144031537500386241543978140374864150866883323106818058643909896377792215813042303538537307846490787534568813120693622610178733308618654962913816633231551278410396102465269755675316033370744863851773943073684797942636700238660008422520052700969114476896961214602228156816963231166659128012481764098989252789904205461846626434099661428557534987553377168778085344108574480277062067603294666978814624717799257500795769337711691752780645302381621451380399981099391416166192500689955414341446998630757405726995855628727684084752048664918519065994422292153676163797439565400537083365717852788913257072485753851656270422961748692766232871106294518223773711384907336714518045631807551174343337366535520557215683596213189518256989427073816790075019054258192676149908057106379837393428700389299104416788633343006823983543034291726455006221157469075165999427539149081670692651389470145780470718076011832383597265527404626739056444467466549463743836548138739549945118810736341510011012562460199022211228942072673689320270190008369175552447433420535066711699418320334484896183557737661129804737315511251721628267074256233550901139207048727848492911975843700551364986647260790172759175273721652988192907103084543839300066484196149176374352363962897581081599995334632444610589187713111514928393442278287700314740727407492007183035375601026304787931251180720811309165881998493035116386204313232627873981676770806787765687662277202035328296049728961164354650826073303712850113673026736624547245805987986606347336690701958198525322169233851999843273967034348774932689480249427427824308392752985921996359481099544326136772498747409514218865033537299848721831321970218826235844114662636202605170774570043173301226915748609252147393198306102827113009578302928344321239110105261269321764705191098886920751374960101567061658145726037000113097445699765716336151565513181636186445401031234406213015113016515251382685059516585259512404476589411994525187462185270909508128429380536278862651768330356228802809474383069604336501610294229840168290569690085923742522972194873161450640525277943279056398708155176372875641156706910698256563164328911795823288550815984520058102531141219443035102982279828728325147293634266392073817509796142111410883483440081851953110716873434939548646632669445288363677334982394455231909901954648950518210737639718125547845569243533054440328912415763888298692936535497427323542145766656365987728006237354557584874181935927298755179511197563930351453184739468589712106818763265708826434828222929940052838886031833954076063911290873906535017084520647610771985922168464416879191855748214627480455111946446659241053567921495281422626263009194396670147635807600741321345098289953975760905204799369081099855062421682677829242003379551556035610155011423929280224099765416423418325002379625824156411275346966635049811055227616242369663814237173303834754588859302653171290221710682151126007198190553799261431488259419632526208114758411443981188028075004816774571565364822058753020605611489311624789435336800808481874936489858792547463831068454787751925976572125449939946150584991748060103209996441630513475604865398364396089778871223061094043679277843495670389581181068513090330923489783227233587262677616044821644100346233321665002361176229750607206750223529875181632991253442203398012527479200559645324900958794704045232381229178151319373254538559499097774173882647686874808112542766002812833297719252371461127558302988711280358154488396371748578273058021130027404144761961186736751857621422104834889463499163979112432350617074151284727157150579897263618468451464675053528456090856102354431606359048566092796493760474262760342357186463986928907553343463269035595242543772963777265582693398683045830773544536580028277780275805045342299382569194369371603719643437950588492957627713363394253137607382342561902683952149867786229802912760604649518917809003377809628698192678806764848401415945297697385228938213244931021041670614755931648709969394751391033732268160509918314612891708990894529567813573664209313877752302170225590792568633887872442139668349600687842711847546463125842386868676946439389587680674531120662990696269592268554505979797275937237122199594451632551856548208705992613433511302036810718176503902608837061927023767306865055684777787870244839800717739523247050149912096618806992636247059155627114297307168782347155726103700120232839543239935078372484009821325877133428456641521908362158646515906990789300260428343039892981582240815746279640408874232543341870717884051642023487581926050654736507834913002624496358334661729766499775935519334621429098400264923556159164988863431344535973778650811553106144388305263798537484020041758667661122105590922029480160545902530069089466218141339199511026706582743251891992074870310165021422069748859376997061995541864689881665932720964467810154458564791822030345271087088485853492863842800629065807539253108657802543050428898504401322444922165879856262944459307948303108789958804038633692402386143675473418725169067364424488136565432931790704567624937423905425458332463094239791194725667271187699585185243308936324723597715058501464827257713671088606723481563766288756732091650093723449858327239598834463117982700630360759132099842210026964004885135935439162576602939725466473148628470345684852295626856218564916839869659572940673526553315828287716734237936291747894316179764281765346875217117312999636296940154657212661147007298134670938909702780494192292791644916281044312513315617784646875233816169060932513667640881159684292417873450521278408238750423178812912566630844023119090869444054732745973359651569850621975051062716140818556891854721658831085038216090763378413550878492699664153933240165310506165535413535217334902446669374214767949766580038001449737380472321400287559310870752906266421296731184726917731277955537517431534891796340768304932868650275649508947311567596101756247470039338817778349280596802896284597314869390324709167994288229488992302383697420461364006003829540289767017319064829127737919823448834454646465783875314749266324974940151272283567820838740788868686171048955317674899496718269753066184091840180597427710835549396944205659744148785842942639398988381148035895976167829756525880750523537043464931867112723582159907583626285708893004186255498312431266893323397753756911936977105857266835865996932154380302431633459542941895044511677896815433900026142584199100936089931354615390082377538130952934957821957535539172613423156837719403102315036743623399532508784591021998841470419903593971471293902261517464713532417107474665742154830575655346144787117450100473690194947130534280986175557746485055548765861157172372884911478349460053164652898075854725104141862338170434103222954634955539139317267404593456819169582185566291100042326655778318052762917369952976219966795349890798898284214398000752166317016625229149857511680602491415436062813138378588652646047807119818686007507031586824893757828161817793242699232875709326393730037702535499413440923514183112762248888429208912963288584641651868906503645870530800875412779317633436485785650869749881164544948517996243723905069884456644204357409594252108045543956900643687153175993719704882783641902817186435255665479881293565971739166817406256954156711804663349502624512010550593001787781704792420469345818952073588520990448514977549320350271240249522836213327089689183825713874191150162819369918881321142278363188817725015561667615084180448611993378433580725815442032799826417217958444873716859476583867234441973456461377522560749291705563368914240694532884270963572115496015273600645933078483638064403802889957852153859722330607297403589838777273117626614374287619089852714975886921210561315978827458493335997608392236588170015182984152904278724747803794726666020113869434670147937926593628111227669483824897550770942026899207320228638324287816380539207055297039967973882719723247607661142652116994733999859370118172803803228274378328502826053065489119119457666417103961845618838724351298212587586077878673021450179295375287851360759315690705940462157563901608890716611847641736939883556007726226599682222055892423857778987824602562575023130684545855073761953874891606169857651280738393500825820559329258196826410718151719785186404852804251587115897824334650280094593353495531902198600356202650032370347049531534557877016722424271636381343567946586033202495575920201195851331218609935152956946587423637868868617694848470955139348500062609882682750607584820137004431348291055071373783127982585318416610140567366738590128158861362321573285246376206058307117164256768546441994334242071625933379824727964772401002369025037739568089068834530044132056534629649353441170024380555654562924893334898482155604552290492824850600265424990472035985036754683952339709602909006574108148023353224956644655681270130478808872387722473253744670131327660984682736496646290431753518822224192099790929056893180242796722776635998192737390050594571766599396789002489149964568593909356495614126621524553933360427245945699842356573206766426796991357000445426629873984084909406291061309931335772199669689985602131883854779499511872809762555920773256645811990377684449203870735526771108292865685079056155062331845071317447556344754699006988200458636164150636162415352962880998813678616671457621743522410032739808983354966771075120095436134927321745506843046892962493914239328968391779602244228103432140327002449647667089116545531206556037244847343228945569737487382590468572146295540024061710828451833031468278921118769624802139575102896925142812696623851702395076104538716632138854209689954816346715317010408947018890605177150770797972808684483512660486114362641435936448164748317950667032722096570878617246019891419449976637748527186636528361818308091693843123577014664789999624613910059697668727133161205149271164234764890019666416988959232649817536646628392782623499208149562448456032594306224148190845593772209005543375026392648707650417422336809637189576124647802333120322881480212894023801915020155263572267346621130183616839637768456720042543663776500067942369750498896545039557331609659652443431336164102883278962720375003702266988737732870654970756310138643092513641648884052659000867700825909686678585106597118973255926422998310756605765560531682532982761186478784875498671389641387255330888223931581345506749100105453981774628145713661432386489425206779218082698798627742983695751358885588807004088843222677672580888744365476159794928210127115650020246610476321642867923592724885571238167453839621552542987261530364801798886808613583457680004570204657371724729679521807435445589644736614447082502942013214010909281233339758493972603088936249828138324122097798934928344428025357867577139720308601207796611963576703274169267466452796249262938930756567713108192929977453302324315745644440014984586462303801607845800691732320351402356813047448248263699936557207185514157349759128682879623664759144910498929732078128114929045677687975813103373670681166776152566449507369420065315576538947770022406297240508292167518554615575796644769221732611066174017646972678655696683559927296397569345060157966904274338560826567068911579150534972699716423309324259790338838265677295199567694278795407269372257478332481686784139646235745359916525381410981853755393057827126153077393263177874680013228738932830637848155232955386590377326906637581177528671544273855848803347814897709908379086044326667444420540148998625912069771193789857324420511836197029532101300527051293241018816860930740639156260088024466470792099814357439389364609859802515250985661376276869706418017334413844223026464673187340240736313220898957996811327683233794059831950193381400912397905021539832192740347114744155197310149237942299028675322162386818261690384150823207347167788810851335355746578923947641573811620017583141000747571025466980103445470792426052511237069589767377851291561436589108817332529987303411473818418189640361189200208799824481083871581154040159124617700348516759161814838750926150602069367137049861373970932429805603391504684000295073045259474983381981667020527598679893231746401937511364548263798617872256095262270672057311423592934329971363232940560009787360245145355995751323653994509065470342948941732143488369361785454504046126507548189499683319383723847593270904884799863974783135234548705381314598596686081575600184091223004059757743205321151628705446540273068418424100650679431708424024021374241835190398871047705873213473675853710302054542946127757176899688105133256645359448529352595141062113692869673681447585386328433403942339037151585136965301438013047802813666314687309584400098087668457654826790949286235475884974303390371177479652922743815929573634701328959288700786836628882812258306741080241150591894051438444696057831373256681722340101783504677525279933581951049472485580071887426639455654010722725717739383427482481738250996262498591512427001385426211271666238789656470558588978989774179672965054053732535447863848588059231149886705602421779133754648591540599990085946898883834570836549708143073348187771411393344898794027465785543340861465145242527596664980759883677313609250239203353139980975065367425933355597471692217563556067495861977136240598792352505918186536958350129994433856828620928114404290382705267591488551480344899523213145792220794587100725222908006655488911464223497140278585858153245222286900499542485320705611695943277089858860917460677401629469285529488539491288307883949069793883858637740526328652747171647439690459862166009256144552007746989895422511862674780567836443205363542535768869463484273775052055322644394940885654703087050486698402162879490943731643967391063445074462116267794152004122262777002796591936800629298455698375527837216894942320562145355250244062525328367434973988628968179432444734016900201379267731292013795464764451897811792972279618983919954281894689522629767591784178929537834108260007601440335967470404789855557196237095055185444354916319306742915158835994602769516792971785519001184287217208380195694047302540051353796588844065574582255954453433918252961086676554162991176584234450123262433259443750890821163134826967214976619707825162373678759219069104269773472777932506675259371894430872153761349790818666168228661386911731259214638792838332439946396162643386356726723684119002226734438264789010143522293780092885864537330359350260140830395141721528795184383675625526690909553451579750783332123187725817066002132143913261443093372416988942520235467495532055462666625843022538128636668277606623814866164047802622359688986436475991766688648585096513655703843440640620418206754620247990242470701980181951825420355325433538595289553462046660758743489796522723343358678287882977334392984082943371039795139558849398895686342243705042550132084201261007630871101865327730459146022377943899758491008152768821755067791518715016207441385736550981261402621699609203331024292181199013241530622000841541339025267533651128939327901707534930074206627071571974432327505861677345015415687899342750201576243058271955724910513651650681655919457079955975386745676000282785128297766811050380873548168874760529478532975943304861445010504503434738531180721607218030488917734012177439539614256815677234680575765086636769338772094316520540824495022062526340719525409197283650967770867962314390968523215695789725905766972896254732858611792723701176949951189596469062287582806433210363063923736606383009137633521829444408709332376008109817905054645280336796746968619989750487619822213379021406523137154737686268178940839801159832104739008036323690345896130647089358022788416775847793461824541596461274610076811757061308763683019606949323088662300447295563749657871689388169243973995634098507164670138565036767328701542447361134039021808086261302538207302429911741190575249757294757004482456932307797338634836355252853034386420045674106363390671600959666784208561767238621421256275392906210484321524571480381983424882874025042717620091738858152043508364377406931381959385625080398629782625172407866343621421743263134500888433235057558182682034528059132889224967572852881856537768662191287026468777774820601831968372822102020829175377508214876773298448844136153682177221973783371990047038080984382121776484439385847558876438810060371032155773724625536605968345926594559616334927986513835182983020006509302028478266684255302259074191611351404548178449760302881597181884131731922179880429690872928952277421481538075462350218212139036636329233764266087215137436544870927806566374089745769321720268400045635864805133725520868092824662777108737372416042677722966159002893645682173402926651812319508350547112356235934038734625203798044023471843635405009784765173237022740426541776114892104286083105042315708863252263596904883414568681317453691727885045002563391296405944935870584375169451760795735203894767660702417859574225101215425697002978733764519744209717394821709488001668288820219570008187667939859982296149903547698585927889276364360334912717857331331608257236296717048422359872755837470295139354547090070876844272320362315829956384619920549033080481775112975395241900471748484308798371099707547528559411797840071448128486402968099373084086701156348715059193017952553109753299373168254298737163072940064874742393217717593899966705959175638867373951894943227972942393249576060028438969219629686914551818423532244759694465045213303391451595676975701051245450778448353986964811845555763725616628829062324702884102995892840187046020182447610079422865748793186220964839717404233566981397340896255413614647456669703310823083512763861295789144459863214959793246482665096247487284628270059999174584731044909673810749612951429200534971533511610365929675884445607093886950842897380936489004657229782165511829187270638655705401847680952283702593923473116053913602905078445419998805917852641689346793771905818081417464221013458146279543228872910264667998513944608519803433540578854702257920232667448499435256967408244458841194780431099075399097926447497568621555813318951499496228196718917648332270190225884327368210650360888789066312015539271291237421879324071291302580723233173792957133355013047975505297061084254606487883234338431141312659082556257827763956687396456278014396048442618348689982998667195112225210930850542551502845261862008532035972703035297160713957078039176615247659743157418142055445354169891928984748680813975343755625414306243224157303325375176623292381754287365636181291638340649135331473724058662790258522000973283162882450284793644308264451485869059495660643091145353894199417921436705286655755068939129447376554943173142191637796224475234787624766909027717306979744711206086085534201720867261108784315519970874743033228693953622653173869131050528277683101352887922361947836894158473995879388360620174682569408868590555410007547909486910916091734684668833228745391271122126941195921259304672343463850522561348069366846741342420812842685687194306734494702952714729928132320858757037290927465159367905787781701764988881257972685828542038439794264378527647547042416934477596826246172549897073429277263441291935005418830423013777389279920147945112195729242052316484953283687703131627100309546872922749719261825117520302995200507437738397042661880592338487714841898327512106285358836278393961710206706818162944606718773253251143804781402454357202606943359386510170395253891084713897612365614931573678154376297364006048162720729964637277558615607674558933711267086766714055797260173566652593320152752739709440089369876118235749118160510541761489656097667270983033623659718148129426333057549666919130115748960068783876076780677488648383699918360813819948687346034251659195452231662966215659449453477610930567179143586231905178854895275480706420288478723162538526123682562827088575671991215719016296156337426333124765241824899539022181341021107957195868982077486019534929071727672660750259464778943702170128923638505975460120375128588784896172444701320563468724587120829954655851973492615702851654866040146471408497548871439155702976740689103111898083852056067851217485126042195030201319481922104195476806776594524889189962226168261804253718752379980090872246118274602500270314175564217162745774981361531223600292284084672168625105116987834027148758042332580485890735319573364771538481487740967752876730247009587947654988965901408819983764373626538945013444077530466963255185557692371001353738418031826517540613186775553218731170175060704787354615688036030864574567752974941173474821921000853398091647454559761742172232873539544224519116761946436037986992673571987286047792059935491130101085975736028701627442126752718263528643296597057471102753020866573887628204124428289716607699007332694335425513130578619246526567035299848353501467328637027851193194388629761614826607578055517374236822126974661111390128678030209205250928703083185000039496959146063609956982826740346389553297521820040705736142635376670290819426106690427609080336167247365328807890278033494276178098906734650918309644674059147036227136921066122757932565291663388228563354226973572281103034144300258404097462153390027943766980425789661192544114492646288006610586045269708370872529300290977111306346835194663349940916700712575034370576890398425928212788624906109357569699638092041695920843937597729496613388881194719115031970044094423910606565966716110500924755193974222949290841422282505595472445958880645513740783143367475101029599646548478584815627016244294642658765862701586042652104494221116597184785438465969635995986120522808772743025141777174291575927578755146996974785880813047258943109064766666477117849623074312192648989377942008785803691388123172760423919142153643203470209065506764560734195250839019867461253351438559113639869504259685940012016930698400784100883233651854267044116543375619284373177504383077459611530410600280709567772522182800942470399539874073967735523650080929484472933829504313298604604743205457503940558034135088913380658341049529734440170178657515459475058886488892593762553808963392096011588084330976025595079682601259787957905534817250132024752524131963565215053894446001288709210936719323777995563294575270586965686366265595887520868101296926580353289295977039391259230095566268881735842999021390671301341805035274862518258836081390702937584294006735502522980142490086743286513731935736529687058347978518669281685278560916826139115500742008123784182261461898365646848468100765890212150544559482638154304647535375025689845910139430815087276186960130568865945967458703266159594870732738680390573573479274158591544619258797697759198272200435705169130866383380872148554342896772382283550059560276829509323460548657566179288564365661640044617730122674237006154988196599618114462224155289631280926257763503685599368647208454184502784832148016645010723137216612252229367599225469601279747505921501631866967927281681872128056687221707782425568917663218114121804316005385057772182267914924392413717969046050685381073699678518116266266677206618338087429270936880976298223132286618915878819970514454332432085075732139780802323922209499240832464438169714622931641700126976052844554911511060083819172313405220096226221047219059177450393250307520437568843198000143631988501718404009452697687425329666979624026269746084477056788892194958253168814998536832998730838520682504455114661334356824771344699327857661755890960267096154189832460630216005101701722020815031868622531240897989274702438383846584415103499139593138401420536991985155982100323391106163651917214990790425636990009086476919866092466063424453482046038800445171788252160441593519627927441762353001437625569110855778638170078143355133097352110116906554255178260333955295917307112069036062665595641840544331902581719259255776094106949730719466051511792163264102205610846923009893817763780601294919977418370810699548354492464905152421950918045748826056856330479701837089916535106082544983701813368275033181202718147170969521216716182045081312159416954027178891181309364904027361725552906769759457394827777598683529976801051328093548641528560959389804343716131279414410477651352667075921097574237085185732830769810827370054301045533353879559175132015517201592541610220352202823972661079578400430484390576332155571350417071394313943926862872104020394078029410590138251188968064679954643512071424185941289155343535005083375244968333594488729181736464299090219934688076133367687711144629116405843653203948805348691397551977912424357777375903629620360631194028943928956911056635674398983680524254247330737773141506284742552538304696996542646866961360212905188561287275756671915764801858078588249953451881288124296950555892708302114139131448131336568566599733562981777432865818983006822561242898054567404715966205874746208333514438715120966903471335650409324975598823806393578907028551724681122823716245184867331898336989358765803697749786457725818531841863723842144642274108319270477221745481106431289130342244335484911666571032255998260757872743488366835902103937851050196896574145890570895817254530380200044287006941876504749118507371665428707096910455058223152251621374311385423743488126044728891115101128313291536237565480750916970105181096910807400654090577209767089945698460804203596520273275437274928955307835566042984644442510326161706218887498251948726636866518151363841135465426855418835802070229698555905842307827627260930164513760167104450139599003907421887327171966991802399092610665760398372111124686963331599044870008381582567184141685147298517166048171215306761113203137995747162959175757512534145670702125854246858692396830422706684241968026182236682077801747674854206523940684865705162523537049724708963326043011899163337011984729441823272386291318589282549435526094749543166153066811676539675629897255126891211157160617023521824211684340800527032864547359670588330729099878312174207959226422251299140902065432708818767312554690383117860437235475884023808151572928342203007882689399865459895099149373987438798316301266611454820025017067656834345666404031913563704472945611011338017723488016318460711517707170185968109245103892847243163210250681018286595060012648217293543492856376698814848071078236029552644061395340318487499117590017985100452822980093114797500613708779907129793295752976632314638809811966682270231728518892653944706755565813965147441332618854018944069154466930625951645521635703961886970120266426731650581397444619273891485450401365848419789109348867545716113752401782405820131596967391389707528171155035785088003312910699497891646398161319950643447758937218564583876175185814353090655263894570625699892963260508255981368836231462634588623411096072596346432840162190744753041553015363243452953627459758695289014374201945589222711308496782035345620827331317550482007019678598069873256148778817306419021043167132001255345231936230696303995912160295670870829948741214681871678393542135711093751994607337398338019432667128193592492647452968095822237476345368643169602604029753973086125011377767469856988865303974044139578871754475595054632816549797521201451330589783701211386762423186760149171905290717760166909064349819862127431121198956181645905761203569074473330401029889213841785466692517949092601230423404510042122002213648814213127494076995692274254474171754761409444338168141183785517414552055558286043294373582688219345503583809435761126152533546854949480860345953581573389895898406528119149749797672664836993868319482421728074890881640335938091429439261235656035688545513156376266125125277517859149230075745831836492559576205627681668612474763211919471655184672853747712179168446800037527030034179228820558870941406249888883263893944253581863714645900528378798564346052231945037312009996363392445739220899123240049129427706784211909632305523872045792753279699768610510739422211474408909645546622248898719295432965221908405136477220265451068661276649521195586504741980406046119547956296558501669348596855597607106944712150255896977621325310841289390273043296089577928520585128864849226222305408301131150959996505426523226136971355970639121942922448906137710175453671726642886379321544877425124447085633183294801565167075837430871912319775409076147759748277688727981202556786986099982374987302694050689135453092904171179812985034467217463270215051290121365780266211392852492320451050691132879048067964198015007820468259451970211445779620995232784579788124039700105947136894995619145861817620617438931864401918517508148839301821641042685482436250406326254915556540889666345270626347300838637408138066534163985683827093344886816575104589236633446332486025218621040975401593750282169044578723263124787897830827192827540386069474764750998520820510488022479131083418164765791280278153051097635804799769331788036578918002523236254840375891595404485670603055381098100424089534753814315750058320947409757327309825752992702675753227351200761769644992454376114304538646219877349701697445379297714323128862471927867166320990305196893178813201908969087173504513108644344940472134018659618632155539567572163616551078388492355402382355465845547820433354533090358790556761053509318159984627146090837386200569720853538039281618442726907861677340909280087650180999250971794301028915323267606002662349978361038122141606190249351348215426918894413283274559655395331994304110210995621050358152660551654241951185003107805223011326358421080206472261168810593702846592017835975056847819630437128215250885501549371434587641636950564695260433007950040441486194092400267394321928379821016821004278382330616489479370660937795252696177491825519454722285741926740736511338186980659516773330144487515817220389536032810239550676764776429090961020213811554994977496497523492500895315258527116356209317107542110067645894869318147125462258771371209868659316341212966856755967893109307479256314468435331684384506872144517172535591100513168598944173480814502646240952647363336850217041663423408857396973090683228981453414409966098901621273610687503438150993653902724227438608668705342325426692908872503529243788939976025539902092860335327369814016755692261252541671880323725145982328831486348895375392201728142884619809420111891987632904289702230240986236271157223151274619046435799923524439799098032592306918397464710788729386796048765489351714299264576492996744264431315714038965293738885555259243131577316935409315681468837930340758630847122513280088708098490920614773134815358988143951622093227914784313594234002009445843083165212743146991114639307035300534444786497328230252478716960164353464416668468994776126740139608352339376299637045734020764761624875600452589391702673599334982389368246307175398555606002194647291736370253928605721831136895109268908931078488722875465134270986602880736063572550238858561527133669559009011572740517177773842531652569653809294851633369385437039012952135036626691548854435351157674040195889038094136298552996275547440859295626218254436063939078350434052948831881390496352817182913449418363593595400313149888045531031284037789264516153980132148957048230817498400355790261570227658902973314172204286764358647082717060326327282498441442920186509700086091628287301616245081953033927427564150108183038280162272728173858269594238216334619474614543765860205065845592656342432303618718092780752329467684521887997122644992623344980459091829045365229147993070750936860237880537311861352700584069709016605540717567341833627573354683455701422847054882411799750082912572107533981955799300753027444755317711315783613922048329485779290129983166706041121638134729700607428924332813105475098864754878130515485111070405527199359336090499257211015900359294783905574518944271603876214016270287427817633652391001274600675091624655977889231035190248649521967802413245863150442615837640922544883104681791198453797478098660519821767446837889681803831756124930248395718190620201076654116060792289439377874010324083682412087106187046757805086330756484919969035595260386392796208739393027928661682509256082907643669843211114406143822949987440260502262565448879584814470061591112792972831969803029247090262009367496967024198187111158299609104474215415200249915980710949170783142832957466447185834249799685931938256590587717589971644912920462585194939415145286875752249964774133677439298250272163462308658136058930803450132649426559747149859838198384420697830141570855949716613517576037725306855804296326032130982008615865403396676239212293371855739037726418385596323021101022779320160019605766064267782876608787877881235282022215795909847047259341169555796682321628172640837454976046192471510317997644021359160621109701172346020010883180142570361245038491872169871040444676450068226628436364593772125041629484680562532689734621369538000147878831728333755352995827446086421675366478685164062070117711593056315490906695850487242847200064209643867509994806582688065348978534541387138611322297407493502651883440698988475958824483048666074460668384981131491868937744014809383797205668884586163778071368330431073267932690028209298631234631454551651220094046163465438455416699151633762860457744883005778579056653083834850436504403211556124739134990445513136822075706860773910259680565575638386509951678692024190915887507928942886547805880248633975596802208075117018061097845733927659273218208795157158643883537411886406144906625369360500266027034236504571510706557568562750897881046962373418453866511684286206494115124694779028692406946430879960258799917692698255987571170238173216439543833383025436660617584092970985720156517370328247618578974696877579303507365373064261659752664553223040952358688376689347798789922191196243787383081005064837246990386847803145983555257566515341084531283572911492360396303069232062394255969164982944181495525613684473772338585101178625468013386097224192014693185460264830241901221500309917979686196766877112050906475802808344974550149975395176842149120696308178583756655978109455947168005852138840979665084829716512071918550967621321008395521345502623453652910784201026553745628117778126705874347641564727928599029821864035525451778043059861654030874713063779836482470548501985539075121465987848795678718723718212297768789243185923337902457749972455112434499616517532800633605774614530901022890467288180085648166553365103149767310276937596499119510039693404859991178552551687809105840204644243505252753028660725376872658664215315232287161511746359907716439040588987444263476804786561131284047028763871204467534329765116514427387772998402672393967372474889133678954516649772360073574072697703543147415967938649951272299388029094570453046060430799590133636538240844410327006673466695994967604403725406366781485554246246816862274772553158573546118540227593918971397221729668700100543858542379528887447043486532983500309669728777591859506505476163113719553265382742454781041626380446998436166815745333817732771574992349943804741932253437529629518024082128263767031455034796356098895827909305976345475933508854637500849008053356512180414634048648363204888243740105953627743218877761441001145133774234193189205389020424917939377944667428753059332909333144936919353148695307293619802927467074872506752801327264764206095001051746205261241976842046664301640649581071347190551588357759192988909688810841147284524729849889620844220478955652765851830209450946725226552161040493835745412459643793539679738862274531407369326027650416184790507859129245429253155133863567623781661188690424026282160352139789524673974834180000430513197580495125965502189269783839173972547648465307692548783975430733396181462913978244486894466912004698429785521054730786615430774524461563034611973220613406291568581503894573829725037301764739751166281430785726955447527046683884414523944931046591358510990151117559357689822744387039163468475498464337910204475022503380448819639980431306833915819381640523717057773528743886671587149122760842009470758160925883189655236241826091799871430250179882326708964274246962583138388387813133904471402791617365782232241881538407011802113885740419811208543139904788139147952876229052677221263198328908773602278653023304462646381960261040466105817655806630724255858125013321806220329888175926861037459265434053988445512206801536661215367371774521681493456305209380622512482906384696920385575468413527574295440784005030184417750699783304195262690719981420404967954855039440042839904338974511318760630851792110769523430825307343547956370995894180624584666489093789500858119369912849704896822434895332350274254704215455554891615817223872912718970088121817700260477466581142423914717418348483861481721734920779438964904014505055509388179257051541079966197998290736924695622220390839564743805723669946083540143194237732580213922901549608840896867358026590065460631474261272600845025100834381046759123402707845775387684707680374271848993224285299919543196717311058727695072662172548818639642297001329147254908106729710571340973647986043019491437089593613688411907295801566367143040819625556488328459649632043850166180588636581948087933197429044043674916774489780235639462157779663730417316909923052239587355597147877691848046737943314599940537461057175982965174480119036357843636423871653486274679092340286961917639950124552363329519715057943821319568746421683811148983731068434958983078382935579488774878966270239921642139041820084558931871995639482523092523123904374194941705890186246063435441078337055586523369951780930455721661830111641142830660170112037533255345331672810190593487692447483281134767073271611702232195162230942665242450118617226417103865246441164196612917902012761340333896176454758698680475397514482473194126062004062516737908364224123447933567744649473451075707451195690462328831924906613086548979525404300738276937368650018258349362433159857117343208561957324717223427534052121056975024881567376462078809023652377158638399070636954775258868801166292644547720695989233051505475207840704358129902706891269634804484376176384596176922854002274896546961453858847342636069453321735780670919117728991466414701934060237335718392334245901623647046180692753927893677272771036669789394510316841711533360899898956293128408106557378601352834593616827531195270001126879773577954881097403278777859645060858197922678137806695543359472383661874697902301056083929004637851632952785630758488411522838591453307392288984799362823893127282756541737307024167234204094532852327608393627458923114841674986837473293004846177299475297685743061606588148327244060794602561178110669380743542389797904307533971279198410518376619500365137651407940783916530315235614028568670985101264961930623871163562158026985945212640569489717341834886255468229993993896126911357802722190182518200060030572191775105465575479860501533043737988228140757938782850676499730795183628909103881378397151344122986138988969866759568751578463308003201057536914853186738294685677659607561144456288072713329109679791017128921041484553419736205470336592367145839167869634085334862820191520172860058279842680307681708902046010077287649151975460014073001480393536471685912089699088064837844469027715514146865457578707338900017971071753572279048577630912825851042044832695482138141109544873288047602440059384664408171509762740257022308873075856473054878769301808708651378639372642872661035992067556549854062765694797603486579386908971124386936995664514599139456047582081633927200448847198025422858877364249251686151808746470612121513817646195607710493646556629906570886055784930325131153489030762891134447254573405713838165258121422529392770456969899159814742760045300941635374814335600013623070250927580011499516555484737957190262267879009495886009798010695243882290655654694602878561293140038439010982055278040219661823631636210166919151317113299468702624710915942971658908873332243247525736514555282052950672818713169319468628873612698921835595319566900072501345507134192762212300264984704203426778165737840562393003306866877519290944269322082222102381371639721229461544427795505425240767383309083232989145301894200923107314578653730941488263293002347076437306938434386318623784683299789384784547667329089518671323474717523866666152347272012470011970935264471372094679627677294929142518645891323288565578619067831129200633791174908969465803288719134617371031942158124150279181133072922921377735281650391449062923489173394259339736010924603852707381559830348812712424692632016197142795332278401571946016919583365636545018081386138142429850591695168790929849333535806116869168126235490742528152540025170882559087259045120646282005036382685491730551107402913007144018160593850183050689500268736484906121935936320255017182127392968493831635006869244462163758958457520197521596316805794383644180024962990337867036348338724005511086684048526507947184876535955016186597783262399061236277629395025240484930861270027170900520772012204686796561039893381192131440748269146555485295230858244264721984991459101208877349584398954101509699868917512736827192888989949467874605720641804820052083281178982547453181004760440799083311783503277036869480637357039153681011746450542496297826128496098188013742368665709530731851833739422054608057498548920367372763578007865038074984520503869155736410331959774210714225191199490926507790044203295369906319955574483931921666924124328024312764930678734631495485441829717815972818036229696711342298333007636100958565567484735310956210480284924666120736986472746405745262455707418186222154244663641635938777766951368727442889182941974609960173718306587334086891374848780921876940791088820696328658326052097134926939334736260543816475609243381376832011152133535443535787937291728792803979529083686055218711252016188989524892911921633816438804769025261104558489546000708945390640964361657829396613965550627265201997353705366428386148539491648623119609493132847608695037841765795803643239060469638335961440196184276270204599549525679934846855359137475517688626667121176890941322214473957232332268853877784759378184079771220038286899596698288812904366526918962814752517753383811107994144518225271098176911607812896337594689418614457891809129710121781254257635578638806495401045869420734912725000460053735191792052347191835077750197709020029489342395990398968696555921438537894072399224631819541425423330776905321858363779715508464154769361237789351054527506164480845873186924686509403551152208639948635878972179881230321335864227434104679362832564272971725067013306434872515078802634719814724958483155289552269767523386025096164403506349717458490026996174010850848257811255768789278517088892703149508612912099839163029065789027900362530673665536817268026992762672934709170712192400507135620610327744086468648957022466318082282478873326386272125894152635293433150913460325207414235259255986246626341037174061124685146690705570728295989184069947263381692543833981653603474747764408297571074942257854813622160979415373146607260213637213570586203338438290278037089130308497433929164620053122620336134799859187822772305302706281933978708833592028282145221703945219852409465012060207124786001184636320698557623771007709558923051624442911875217817401673941725273321786796349633562343097960174844119621325371136109028648344510254257384316635934418693268131325766172180044745353830712351769820001063727342112463118806622911736730436646708546809897600225244403487262366293367882873404279080922252756963470563824550346144942587538759732510474015299879640973343965366376284473062546472284706724340745982573505035273736907982058355627612538591832569112820525970585458753744770351045038651337856891206193536498136784236442974993824112776943582343128612564697517710687110827457979830525113059851250578323559928234166117760014389718843101275438710989566439818802706780481477939990364626193439613194678506967267348980321755547549605355550574734992455988684044709950781870793246469631454356856073543161759036399541279084997018255543740129846481425768335923309170744320667624971491821145248783007235367467363774293932801194111335300682301976748250599884156562407880401231479934418286785773704042183284047041592242909135224934713579812791624430704482824847992389394732290030399310509931869997914787198617389016724010100945865522470570709238804250037900556843888501606617427989133530213851087931565785634079591020294286904942383422352292246431334430859685511170938637665549251598612292318412114493810125605166368508727392103981029123898158489730103716951212361021695383764656670187649465914623017903628802121926357381440371552610272247546880067960110185637926108182770220065707217478996799702427502524526297325259702725344755339301790154189177309903673355761979605847190994066360629750843028320464626209262070076358175706569599273979134163753307457310819206392698509677548550907339827779565895894075438722244739677225520584066259643015790865533316417810700316817090947623621301166557112570578559843603127421842115192669994006265179127058718910084312052052220014889139937422332073256940999905963555292937851370806781626637442771257902804196295906776268670353446370873857517921575964013902686526518391939505638541546151316049760598458466053128432869303800490508001509420919078235189619850651327606070631832359828623467695837963721214245335080629385031300749924986044506171243235054462062609791500167571007890672917605490390814276501174914232765827923968620059725821692795978762874007552465413319713891296582315016915100753211311706548510494231537940467762232158820867208529636136983546638286263239596369495006471372054485092421061467584839963364276022767767724800691607172228186278199874471353629582328113076796636893689887906699669556596027350117740461601806407602125435219139008487335418104011270957222178446988967832615981142026117502601510048503742529550332905753633498119248025679587207983292168752321774018537750581747301596075700013610010146441753986300015307722240425848685266577841539600786519860251297972305755688186859438992028275150105877524383385310317520413907747824406826110040472813340607170921072540284060727030625973212919823964194024624796707950879041072042082938814495140413818585806710828178917695977138699972059207508780119591378020782303905504248036171703410670558983812190782893194452163395457622941571453708134251178188538290378235858778903452888655973750905963479625680008213377336958345537356402089290098613946987335756618643198746413716806982469101554071214461523646682373040071953949005795821509415589538407682581147246101887824248464082075290618809024838159022691106567549608913041018919382856439963771952462979969836180184669931200310700451478920537788034385694084497607478757325054445038471109114527829265300835517950861457406959738969954907666745653079401713190842062522484137083812490538392886713743479625690461865709077311873433834695782556780673164212049070716705649571082520688060459886551934688648978625864129698097458535083170918825935714942893466668519571291785726638520524476055021868457539383886780280046447623863130007137220378316676149336107121556277077305123846402667476685608958590156773391483892996665974570810033858661635658979597809712224148338432979432274391026696141604055241917631528821420385850352485786718406409148059161049677670041416000559778402040703396622223081026151837100958631155309207917597022101019310836579049591738079688115633180687354162191018764853611805072396173834706136622432410699640452016468225303061299194378545572552706546302858583713567615876751513803316515734465684487932690282167829307166681917796295871868122873552472654677742832071235931245919410983648791792744559721167966279562460851195836178563160821569850329049337295824757476412174506153294045926522155030250830169759096902204595862080636573209241091209649386901885514379639264024559747968993030082685184796057990467929642590219818348155937046133420515321969641670083608967730005430714630308751031665189155373096895256289415554651089085259412249715212053830263589998417082757953246801264773242061463987583113259125297834403498196098854030506562941538460121784274769174392355170724171294405857477537016975413034344038306045046564604613069365351748344367051485381336561261621124758071622705108098408569293183907923698500969998470296051601364037045008411641663531850886772807836103855594880015151298815115671428750821168298742175592629086506192207895608407780201801637535146838460475023552782395595991562326960969081577858584375513643212754257928331906762324808116344463568887691764031713164170050329656892827650559957380443213799731984703820827104910011883100424803611770893979527243979352041637435349368862530272424220478355866262755409443088421142874674294452335130644740950833400172916280459876612990858299186260965916495100437017574219852238443496635512948857202088074921897356306644341790726880541114396198099619707561100031478746859241866985534889909080461275894033748606120350768115002993038751352834821287874096399809792953260705128443808169721851668555244226240434398627724112778345489680612707624695748038733282285710830067409083637813509560100443521882462143410738116830775347825634487396607208810699664883036030928068760182724263502444795827259247223944205787928091560873754015121310341796571457681854718644203225640337804159169708209533484925628218449679597832670593463601348414049464479054735552761450668051992263845467202078014028710192888000775840810097443326288233379425459062963519712701843059056716037047394431767030322864530920591102507342279267584239236839690294004605919680112545639131509347079792955313379187770886236766188932046905692502711478197530131014662016197533106796497665269030056090655466004036722342314372011778695635868626819751212435038735136987562077167732850156226333570020686501147009911114684643937987916427136955899627866171350936776746279028050475120104855421089666941874580191987443649976371642992098359154653839865411639861532000374188187450691717461054920448939707605669460711217662761312245932644157649867247419809355079862476669647141628136272291209997217999582625892819379199377541756086668711050327722177567179763113609191391858138927031856980059552813921305729710637264911242081726958710343799540686911368607663712960887817347596804503594782025331408357137880807468251771162901340327685233903935051166693918653704178586694905861534596575632186163815471448884877959666028614607709579884850118130599756090965913072891826149985415734683826273283324020326151469717675589922796368925326151903480918396786735636869520681917211770362381378374835660467667839420694210697870336315346413589268304934175451319127397362154611634003763191959913010398802111324150372212206180778558167174050036627619199232628749384808683593450449329692229069722036763081564769277248063809720056522186250780251331252815678701016027235422379340716238475749956869014675745083116818448686021926698007181282889093146134783418178110649355508114022135793904378829419657224906431032519465435754613032227272219345565010644963101188278986114085365052875262395271284433149456650995431445382938462276592752087897151189702863192228344999032430646459530540422942154072488283898582167635229127736282141516103297100703848142856106623303150299384449275567995507219479386168359093669301414536678454098791733835146623954549417992417169130357008370783781899192687483660275865128422278169993999339530029139969840863415020293085181197982126279242445618715206945430865084115553545930015021989278167339833721667266814072863109899350608618609708894313616654006008056312854653156324094253774350600342070866263869941394705998787862338278251249175122178862018518018320798546299964788653457061217185889123636024702729581336256262995018867416340583706257920631372377699432974755081273429355383183715126680005090864912789568314110423570690099413814751423901423816948498023629174246502869639422919266883078535568075668089992778864478095807094968052245968096496672420907883523498030552629234923872633007881168314267457667475280132543707018533543785827500124408830282877654974698360070820764676064504408303690718190578024090287914724241991541486931420432650246137438262239050279369079786621651108761745754669632585876098347579349646623322051951606543956851026968155021910213392160440952497402152614659544532158959392958584857068785426037473612215612966450819765960645182938715522515535432629107033936310225984812329081223152617589519564836985383709900772275189431414027517341653343407868768277780412219036840986330798737547347436280087624749587046127542457032978426016473164616355378444900108185311423182437125030340999644492415210972887791301593195567175854930434744108106839163293585087281730184456798377720798698409686239751501211322645132652702585682258533068943726132865330489352667037764688495424929284076511132920996471751825945195870660295947400454843782911073163581928131501585401492264163934121474434732041850279424762167996801835416145572120469327414850984112956122409143825482780677873871467152963337270027847627255190382921324637847771236228832334646804358214907334232773769136787162877749839038899099706076590298561063207397002857847523054513253450028040029895920311488467761915392002460502402344251968536476396161186678859025683308853040245538466576397651738922305619545537303857648848579764461827551482840820131113059797174193652204538194605141422688450513626318220277869659256450764079281095341808846684160176018810658074179275243480948594269688241386611483825306254589776982913099267857667547076389790501681112554058520058501322251413117874166423796566292126881262284737314845269401996118439206809914430991868761237383388227142825265671869301254259448689532856945730357373508891974680011203122483225268462193140685601086264034722521419364038817494135632988362046941229087416192778131356113259787712941819979922525612983441682418706358029451662551537181246997234561912779996489091986990081123266865871219333169570328219712113432143965030673806924602992616738736718805911488292098791028096043320361290078000091024289394159671417883271830003227584578038385833700872688340381870035646291251625198834846735136005302835065423986596506310081873442638405214059631080641990490096478705613599488752741771040189027593197928302246264318726641982678487001859675953652767671447848381574319915754003653268967743694243802171559368119449628087241921483546817723944876225116063147158647710031939045110387212936046025652460125692859867916643581388828969547532218914028750189926466317104388367746807165940831493912732508865538232763755126443521814572262974932941209587989189781866131186059270699228844197382073504036984324089917912285068682761935299349786185895371143684841062550083879093453232333682377154558250797275400073929655493939449073564060774244937363514096583827269629282523037297653649056780788678392149219860950491259622760649883780408160124842074446251937452720347382533948054437356639130761993828362935068674288273563930728361417876315990225583549637426074808361141534990536493446649742206303994437111364864216820314555701235319218637264910811038521911316965847878406948624900669207181826850242312708431174426796952251135136105249068913686803851596311535754498692779853943891001401405941740302293979823264276689803168004108273911313521625721282520303907511423582293139337073668538050303900624870734059038018265706652442341250241236714925233326345037236931078001015349891098301342553454995526982959799997769318461242156768310256537307023720372538291419867172653600689218803825405792246344735132448731940220820354298651926739893786630993729572861649818732788294854978407578195587239349145387567204562574081283967621844670215388640717205789065090444009314799192757595140810447382419635093127954714482991234487286288658723791084638012492527672094058679193176900565921251140118642727917432280718150494029839111714220569678788414469496396494715031675726345503556629832298759750559318127990090408877204498026287104689495682539573089226926663435426774445095277858241699340799923501019369799957413809004606010798303661668370646838847183610378821734879401138308820526725440344346562877855267211413853044308613059437327928807834336225328330788940111443449276039799809326413994469051280660922758178568321031835844688891785556630217846778816094617497666533619881476005529964913710971734887453362795785039794868076139695168170820805083479941429044529855422122171172031538429077567775956474528615232112715900950683668613105784983871369239186252038059539103929539915256177356194140950353302586760608222784868637753688160619014817767389644411971200128886281468966352481777869955750461419888765836898969110481524680738729236458420259337206433183230304233013638329837766927747657231894315889685905062771578560614521629517678031122729224494947618897813704037080688967756291843531001242859673171783227436777517678208647986786326316460385766690827955559773409140213852817300291132426716024489963654373731916343793133665609268163808890987950070064068454516841994853902873096991324007607574964667324280073585165081691451800157248004789690778242846084647995159516249000747041921167618203177306085788689076556368566564310734073124211868081281005977362045119582985643235085667831457985933645087986989760407374573108808194627332709044176216865757009831274735208048187608315517311432130687133371188727787511535631017884716621254727301288798819703043843794689761571634442938108044488739174151943404366755686411667323535402090105359566779804336589768176524614403274458628265103499767769440346368561954874033448626410306551522621987171857902684475687284115620578872884552450539525867344444532523256594721198396610185343582844199518148670836312475471895572245092015653201232634050991020049494293139204294415683363350696831652512652585381421914346768018599769892524995089413742691992973238933494570511259811511859294751078113589455985107441627737780641364883882038136059625652747087271872764427891939737306291197279681627373099219290186061153474418453185034090227770104913971985554450008828796386983952469053277975364322529852250516081438024715896692499769017328544323218819121939291062614700134546840083796584614390994299143867644987565861232818435585881943971425371604650077562980540707142405043682462765188002574372300041747880995607063058576735352618356312895080995894110091092363113731890584285699421504614139350976604869006483322453293392378594681990851800618124036152634065889906641903884298142852717515430127497555609615938185032584345274508959722753437367876673555450676820215291530025697130333990341868652695107008873456280025902181362173071470708838241223501485121644787030482907620524971628868964827417422882247094142976754294120084004867192656693991291205164696781099659331773681426248418463761428479142286784589242829310067970907446623200064977704716733976520271011518311371193161882890521222768412527303794537360653433346526990074519248755304738040723125320811856089348903999221785222823152381779228057446729495491943297624015663984507150419804746921948251065561293161303537619898042850646264277843566040258329599119971055732690221816390148615824595754999297361997942161034307902241050446983252914684901164325002671550809904991783341953741048919841291073842172678422901754551350899792424008591223871038642578127921732236739114697409220007823921412225837757205070893538060660975498186392913294123969174839903692131676844791991260090442586662789708824671621800539548846853459735231951818143764275557340303798963597976733705667813571650117828363290102860508024204204622148445531729497634728274333209878681865531231457451137761743925031403151720309786437822577490235853971339044205262619310741842229450437955217933211139719253411241076290191708690740256523771225350888503885431598176768166282053196491833853458942752940584114556395120174500056062757227005500620367068815368792571378150769005587955131491354767330125431563621094698674557843004504086408394679531763476373258137498338020135662997705037581179982206052466961744606794061497474388206980074484322879130533297108391339684147951174551919236950259496172423869734329208378991851811659349246960503670501722729247312684306649349765204508903160938277154017477794825223178847477546030128531883674023215606057788059034020328131454953288068003661120552647436689401611804603605621007419491554712376083129184326421991144624711203251958265049719663249674036971640628505204549778543426955868632601874975258381669008061539304399830339627838771056313944657610024809998727696651802919674853916999922829266495122729690673783306821774981063448441850491404587178586931833710959297790708083139921546648690977757175045137626456934248081190837813499688811244822745749033573465483918976507538332500405368579238275737765938266300749496470551296522360565312574219115706980837574171518418643120993862219158063708340584930021159228739573898164342214530296012498991020519858732726312317060673671703098991318741006829875910851984461717564832633432266395618753252088015795601758645431853173732503428864309877182748721559706922463467785431839177477528094745938206973282447150435894544032472027421874588948813630126716702978483793893966214624016587585402991445404963356029118138077912747406190300770742760267846178076259795696751390957826382724122792406262681268969966332012561978332702206855696157690399255213816230469770445683365306614243425615136812919811430071466696397717273187532226448195372926633405825196276655860940395916028536449629938974185411496973331977531394844257756887549136429437646183873389935809225159257118671805740276645278222986496553796302170902749490699271483699704479730433238065973141464611186322693634810070510301546011219901280509452058723404878627510785398779477799618711617948141388001355930271517349753888242445455668402739898283308589196644204083229804222972894994525803386969986694840370547473048610381236409498859485540231755910775018511167057156700601878736943969042286667690945216393931765731397978798507118024339849409028518734494234898992119675647396270945534674308841334364776696856410947679977485239734006493108571950058054761580432913649180365804511380923779471493245125341758113323643138790386741381265739436630721573711707750165752685424431576765930101556696309036553212595651702841316708234350245339233836920029581831643716808066119401633001147179347963552234458084929403844516544993612060553031788272715156633630173558448971390886427663441264723875357072633206882086878760543582739417270329237058867353943006677969613679202546041542018705097426829434449371037456077938574162295391665421209680808348487240297992460355273030287530118077258325142085323211911497994288270365316480050734364498624581241197907059946340082518850146260199413652801803243160859119936918185599428208488625820528268079459399595508995277120960519340919970437287399557222494127734551628986843948271136247678036873407094201748704440434867795673171905465573197785107697922518267225110999298034550425641666859363008466126854463391628403315583778377912061732971992825572799928969245711456558641215958063077239906942676730755803903349999078754015366124175776396247004205560404245938216503605082197031245099561644586316715718373199031744233940791005930802286079310911576887036661317160886414700559794039631330052948573182700788467206671939059091123749449663248752823684298010274528080937012619019041032814712414591536889388075042363359390169286602025555843280970661576131666389186560845951752704690853630583666606565083156711640936943959555984659993849257111321770516283267707895983226775081373308587268000469009061927898747068693694831759504796327137765308963261819820189525610714460104530456729806454193663331794835923758974649169473975453737500303640330870303259803943694459406925830042322647248502404664374797459119198386711920399497894422677098879955633082928285142553534838418054912533746888469891078832780650647113799687946408570179316112422403362915406506867323630410913990975815297828228208382345357448241870210335918542375674005126429677736669656042203491286867322027599853079193447791690312584518676532380864107240697371818695792366173476055409719073948010051747793668309437154714868128094051222569882660363471467928690492540666848657094381907728026725428625021215864427929370798781561183612095811188668262501866988186096494829307178679145119074411489770359108179725098966234392595328333559437923347089810252746766582056353451904866299478264890817829002417211471792150427366594788201548863684063646154789907624816186379228348015086458368045067558480960268453510955153053025904262835823121489907922051461609768397426792417705265008964191725781279541052830777858904106768321367057013027399319216182578844546245029152125955526683960436984315156033184845083033164671437145162698508152470443138485045673760676009494468083703619363740315452239684893835461400857646268822939698657663724146424822261988816780064036923461257589112628203284457873362924610398314135259332196431665123242359636726892553570112696864539989961469034153323578970022638173827745334348126731113146657412034639841613597566917177854996098590173597294086618460177412603331648032995014078102118805811456723102616174684425081050648166051685053639626025984138856058217656629429060919447799927181369053761111682074591353280915349040291229795667765800204624924954806239866238083088113985432344361391564955955590928331169880512268028436781150403320580823450450260631240707459471569930520768949246098887668344776873214791118003905864420380087735648517561600051030349940299330445374295052314883181821248908082742991160648318810211416929041920997874347333305523830421972734941628128439050294202986607200833991751007791808657062849882105255888027222481564759924518419600058204976229390194284560982712253115844489080120596034874099624376451344860321108083043864631860768584155078519664733517520968768999430846744560589703825037188189792484904530220871709140979612821055407082745351767393337597202033669777763475124144438097001273956519840855197021401568346158736602642960262513407778766765759371540705421442219022905164511122000491121569531128429447310224175568360504251775536013507317850373268763579887772987899795212579426069513782748294225624970417782680552830308641652352893759773425568432114389103356617039710974309994663068280570181800520504173258574530951418476734525130709535601772898423125134515748316048361725495974047561710185749548666869336589267773714468943292440869422856566732554813520470654349827049665252128899027355654671255220122962731966255263832549006206220335819358260198106516515179682234238445152280662894108517617873640534195400878736464659644053650000702780846289069829583544705426425750259227448339355017650288914296861652740515879156996376159652923893394759536803853856669378159145398955688611013736188925453790464794828710937205040633425147123758373878512899811510846517040011447287499221585040121347798375645822191236813585077428040340003793430598455792056786460049967413533349538009661064269806878864726697999946551450055497982750455599043051591578788180339896256899341093525323206395687759479591781267891687446325765895426057838981123268014515382496171586761563495912259868853815467893716625894828305378054734769357081585467159308391561612439270977355927023495024032790783023898561878258629780586964002026292677310368768580379072794756307575218040246427171632222584950994085518863881186264135075095398988384854103950322536909609412476080904184004933033191375717697940919705749935036583861991072809594507070077750419634684062350695415634391807975121274262990181269795894896508898213324994969793883999941963062150062082249169997739268212421427549045274539384140610901443312860529806381970753701535144546537397107093760516698731178140522447220790375590815825774029265509736827000200215723905917135871974943213093520307890218527234571201436668507419737866928455246929719004014065390147185349313900446289994746427784472903944461474756158556236818395975476518983984144870608738176155457219450323007042567995683165720997750035969583981519411459367657732845321152745744418370270008277036901467174473806199797596567981541490208002810500164757145788955368920221250730904738457094723174544198622746598888402516164744407877305859847867791564441998426855250314063406079149311730838712127568638750337874980027795534461417132822646265072712957377084975694864969166747700350274927396952951720239987350781258670096104551125237855530469477610493377469692454547825398615013082497707266327234133903959924616582110056285242273149023624760831459980169386361885886501007765496035212548208442536625337888403087756427579687689913503489492185158700693266010013084238249702745516912123739722627568913420865991891234611343060928293597355864179850592457939297396975396591512598652252071586044447861356618206575366594675177411403116275492314969344609710729072315861817364517931644619329399199661964907818802952912412001121269725083635401838892748041266482757450422841453817590703409414381970078598178544201439505281230964435538492366662929211974368555346510916957133466823458917167990384455842708811049557109022350848842213212738586682217801197175959442555648817740751362594174825183292541221190172803949296831578457377425227766686772791407500101192086836771237782946480567742460191833260053743909701988514788662186573090376447588481174214835299838067468014053747222418039003009471750775517038625210149926889901359205157640906750061366296948606071404383108986711022359746245135306848422111997474727470949387208485191542326324457902617293297573437388102913439604218767248285725275609290104870385075500688628583632371707519845425983769868178779844757476444066187326321180398726661821759841984319985364071129128521402748978335542588673259667247694900441276517215594187447629330195117616822443308832660263505922536350360882141575144239174409460139901512015751073577135020779289415006207752833443889366120725687688218179385905158609923893269582295884265930549332742053949921795527210353433199932068703096405858247928608381894729997705716316253837294051283075768477642506918011982401036784616913844398811202037173246391576207800835617398877235880225431324274216067861123012617484920215870973713939618403632726747542979658610692013572525294305812896740372930825292467254878653869028117492003185846400609834997216007445973009520264058140059945643657352922768752828373760214865372426577953288330374884490801671690942112693349438034724452880935749843127295765581915627352556056263100764517967067545394172811684291897139858765668526314143651983051787427206082327778940824498019105628177453790079343235163326785641754025675249561312523050249261185057609309253542572884554105224872761886628875287848438935959118235414132936540091653276780687644916889892314340095743799131260566770586112952922677131299531989629266592303783862771082292093603619943054359100951104667345745788492637870822157738054538022910900632537067275096102175992360681798005581649009563957948783195431537079653107833784832224857911306336201254031261536757668568632141325600191260918896125430918982606134934629220926776340537359897225958887417489024177996110022335165851331516495977943700831937997682791068278227310300388034363643117264715084520666597969187946967941807906587427731767254553911861292815612864693967410098341003392958067415843145018470335660204207124211858452197834166231388051702174775205001482379173124977673948105909128248529372283226622357718667651178564636382840360253317064941580030663512203159230259092447328022366477310316584026386227128814108592003151379493432338970043008550013712443996075151486336313905831469447858697290493084847713133865868911843853020055878361604729424513028771527936874045044038370002569976637513650669346079721521183595244351213682068626298342296501237116817746593618664207012253781634092183931847118243570752173687195227490880291514927186512402360414203850887203920229310713013696682333651648773536566441370517780091905685391475447801422946013695950889238144857885684336070617880201190254038487529989859984933091758985376119313003529373378152997740211825793042468658035215065448336441573082712051157291180102832217813751557648682935695121068463940136780083965194063335431176237762263692459044245934711593197791215022930790285099067953480228496234008801549955845041828558423773983211875258153090392245858986394645466267207076185108020282711560015939371805870681942926314202469750619089062103962276300341946487811786501927012555220726252686846546166089339911767620928040582472299518550416467349030428998769997375812364662960389884293272312344544051633617822701804132812942629218480738892158014468751059319001356027530144669875411102638888444858940824369480301520397394717434750568988623090972001470637322303552494230743891334038833983685978437936632055093452906275508918876627644023588736653013437282885359792302663757222571017295316397838284886316222270598576329265627875098936326069440099647067663085696709684124727946039660071068269613282947687960204773210895889531706977406158286779391345294015222532723881645120142986423932346080801833184618847352120567056329380184055044273059211781836874274833454520113020894144294736775407256399853660389203055762659952199480875688011706221957767063579057709459036665399066619200582824727922517431959828809851370846560678460446584466526367980073043145532960625273171742443104529022968416929531579108028679174548294594119866875883005751507514370514331481749328135897241724504450225603418867393226121940312885515457420260797399310687362731983337708915839386096287056347451028396099794557221568748646487491795726838605276518588849511628891113925980695490198859320819548360376273343872562972501562896223588569872779949578006304739041708575317513210258071453663439097476296978858170495614576424859568621216398155175721509948117327030241896999248641768254233117245215893182181230624606092050270192080436204914854137530220938383615536949022238210722630811174222582068530553682876828524385105357312398328177815064907976300407528248715036599886691533069451474461651232420246326288518069452951930657247978876742129517399546659217146607782838033104546209904853732349248376776107330775689548937505364019985342330477380551297894660608553681371748820156326104404391430696145005386509856692795818300914800479144473481482231961721076286859987024084458689432926607164915894637223463945683858038039979325624139925821051234238963032474096877690153374518456054289167902465251266062018678988715673344055890934132113637119007665381792878212460693215827369273305040008069833868406639866242563986829227940346988979480251172831372746661099841411479712424311059879953625170086888186314367730419848025253519382590493251147840025288716709153685749716602073793039844185234183319951360012008807066208522498817567277659629460344866991677171815373666004730895900427564763923128956076488970753150212939029076403080224437033558781885286375646613772254947127411958979300372703792061137919865074977931184958679981146548252937860083070565432586877573252911539710967716314839110684811129871660925519956268238143749671593464333473839493523813069048141651057144489044887363207227926643743787276045498088349240488224789398305522693270945361115126649157411290488261780329398138163251253828146127343027804112208270013930534055020623093356145395200674231022529784591558003222897750873000069592885890516905801061634969258648360736332998406231803364967038983968077047897601589188764502767335993176767709880149806087582248945905540506324041933138491062372157821654383646861419746232952298453965211499587392274251726872177413952235260349299371268042733466683896623689986149535017408080700824429261639233960921056882842848472236584331138342196397410672042563148029403005742967103131049856038233854610596619062723549180111564134042358924800203650144011026074029688706978336817766526104288678411829898587595597426239589981202129057397593708357661331651415125300258469935675476146392291026808253349529306323612799735815980575276357931219889510208490522496602144718696815351091128425455911150829207585896100989005787698267185110010579636742867645420086229462568293740661113950976726001482396482020970291503088184645336188659787753182659962952809576693329700056179269111219277287434571389738541193193410645557915120244376299884440981042943167387307224237875413324245172076514335033465779174320318009310739429832336225718176089291730526153551864530935383912923635656000221184945375826902915972658720907227591418545180027387024602285254293580089531110734110750690905615564415702481020650085626925955662584598026508502728220741466263088268412398057058091389591476334250533689522337475874132778424244529682579258345771523385942419238833623431223376374304744908727717784423422768315044224238701630085016453684012257207067569728427681338777176359297923092433346969811974370474211167239291766002647569836788602401058420507788145772470207753049233422230485614986705621501758098051345600985449346632485935117548279507369883739886635783708717841531105930796802371597609691558819855460014470622054891985530209364456308745241581073337152174577938045168921478238803841823736563048548078309709699226157431041633775459595970713857645901124195758547816512755497826334656515203091037962941806037140664567956356907895320694338910853271803353786235640523709284257968527355380483574972009217395130271650123955920793884825096130122799089273617584697285830915359891881976981476002926181615989253990646711577238268803956829902016217570085055554981018642562606929507994030149895114105126407844032255266486605229672616765446701849551394027742436483500266597092456181266514796548666165399421544787992655732375812319458343338341749728669696019359014721853256027683612619192416607441565127407630100752699619495137100028991432147993162316837031910474088287308092668993854797034202445757764716091445699039589288059049974083745216548107833290852753489428842203834092584118352569369783247002877817634796826649309096111633160073374330605560052752820095857280442752918271674339789466469233277562630684732383309056012405829833297014517128614380090365351021592746657916387405884254615024495302061002442709027434591325884226432705565588985956942191403659275422344388613445713341589488184475486585814762506512476881701310581980363398388503218172813099180275597987813452899327187970040815829448885043774548277131347623450570985025530322790003536012324458137431639206643697662413508791837209818616584265757842074421422078504492688515053342695771303158684717583277834238262258244815192515816377745094708940673722024673519126688687335592788176558100927347584885229982350882873157506600268084238237164616555322016838964739395873171913066693963066103427938614298654025959245829763034484562279149279752957896293473386700447703351646906185498855023813754094752099659030215132924124044239987791009160377594939507413456169690511946707614227494855639001738720460154681496062045994093796921501248650603130649351457441463404268727768477521721079749358439857777992327496152290695834553451566196353681409756633355930680208823792962854325475904818555989447068632301285304629294404883710688542802627269004713211334442653672012086501128357873117393211235840653568026388114685735892744909676452924359344634721007365798190117868948078718892194720377856028557582789093529108810256853752723948904013888848316937064466283587954457803971625771750251931398723621200781830902474903960086828017823503588187525785872190671960564398330952611224806757021310019443734496387534306231711828197205034638752083777262294671940966206264740796108275920908759476383059983493996361298764737525512217843745974263101977974557288220863294853915482459634892047610904060097048714523077735222176476384539165308505955814343738458046416386424076755111949310002972614742403929691376543946456087605465143854710400341921491127028607080568419093328538673021682585165298368742184655006923460052213054363382952443449905015671606596610730298203478646062716993212819871646565505200285938105148285011463235908463538368644540037781040675354681268747667569330420877575292655693771017083953714644465580400010593402226048897859127453397417501329445848757417992420038181948937754812224653567361927095258251199797595661131094740415082531816498686271898571980488351518313133279903993833797680202088140441137114370293260263638422776793933932530967347606063019582695872081312636820398725524293028008385542147274030153922730760110833545057823267571778844680279786254640881590258774033571704605141248668883964990976193272462016854645047523529045171802628891149704189304546606556709512681645395768374608803843234429236576239024728193400571981426208536127110374232517484084242981859951575025726121426046893680768163150319771730476868005519253472108405165269223233518731233748039000595179109653166511532114761952887499468376453068584753469087294226831075167971117513465808204386744579371876224869754349678049959944275637327397019804628911529043000485390277948682400109114308576323523889848131235624766202291326369489263719170256972797522362058644972850858041052894363074145901211218050282200033586297073147137444565961941684859731186884102665001150833802728568246817350618476692552199688559224567871968596313914782300683873571841968165549338888181054613477560923327529540340122135842676662208599570635456358591256868990024835910503782164119208421925039677119997286052546929371342072241261254207514041971718935141616651345817464084879971760739232590050951404399487284589134354029388023820004229334627642031616807294007981708985550639856350988245781758551840702712196804057848917739025085100475365469869510872991912931988667497646243645821577092103868890604054040978882259576998439915127194680257626127773879438245396274365963832098142766148721781697736040679063842919438560868344443490329975171392703004009983608906966988251127687466544774699443226368619821458631841223343957280896804370103874608922835800930845352766921289180113453187819042210755131812567712571684646438035899377809506879737218421680695998791266341006270842746055965427544345360830487794255927961430943521490276274315614323853330890300029288632485792255326407059194963732609318847813507702893799954434215157285473821714587818857521852452169561441802408510643093054895937239316597836415442230146323066213018971621461881156122812947897996291257651627477976212596055133194111669800662223963701298906665282990022203951165398767434102959758326021233925683034979788483070556598467631877229248643112930308749301723149710901801740756050696182622790578310736932838472610667655497172806054193065324589883910314175666645358526066089399338567657412273006276623596133359976691397822237573323449744459860168968313322148175833328076898650442760502678122755354144730388060360244741078350541687794967411994848054010184970058072746400904753602310039442388771205137457331285598862297230384483008404246125266042205679279173081678116456296095162214421654406448729568996444833117294055910428886285259664650187600715435810947387147927779412393214979320209659411708906942622964187252175800999234503103423342090553275434716963946892364986562130824626427280631817842197086420538705712077420904628588007767206157539527192566161747788623340853377723082224027750676900261637625170442035594686736321723134859821144232766759078517972277713298264746967628180880957264722426557506983111414455931133621046083416392481670354898936699353345467964695138671685356313619187993012368923944081948700866393548914355469988704240025492073477124370753053770177292238360988929030608998604375487169495052733899246201197843263054685230337499719792576294829534785141938614864496451681624084041747818696445222205409907923185712020529068672293375684074387224598834293075365182166966162284879210859688571109813126286155164353183032106027063991836583507243280547111812705247952867193267823851178936431082428144206153988430850908715607595439083405485364037794310368225898829853738308407813820162402822364013442558711639174577940309817793751107302200598101719719735365838562264982786772621991678290915298610727786371149170825968099963273107496578492214039486430618852832959098107581896378347322855683874561328067923032480122425512326951048477318575442153281891606136907949629703500688908461738422289296644914346175186979365592552692597709000611983235961085983412731239096095830550266208477269307999162278943075026903927092692091668575331701096613074654129729938115996456787333908232833447989026627468602960710225629359831074217050546723104682038504438213433627331133041068001710774481412320895546141924535636987393805038879398194436084298741507723361351273104378671979448973207791630827264351168687038521711850674805554443185360457391707186341779385178528976128594143093405819002318874327147554527489931824527495662074701736272879053839984874922737410368593394376916593682142390264128765832790322218961303481605404429740896597680948703798500084325294507277779972066958680140735984485644221192161035394775472191412462335358282060873762082938661627978133812307054731221819919968883292596672819549992333641918756831241604248437676570690381659672082553725388816221173270631810471763453944275046711362466558422806530423749478764005095277187113515004854712440382176850471592645706273109941999596558025199250285284759233363002753222479118988358522016608209969598892065360033014790572457168495410843455210093053954504699963963972760236309478531390314798122134299962750492452754013555695387971290849772547797818170589920137218948253207146758640228943566546382485564039690349879454440187833913237633269090557884055940419760391556303979395373031571815119808346687855039018946248371862113449748098322241909055381159495952981985121624541333949282419764086119049445088337318465147255550397149189464779283900936660586403635949935395227531052601478315587070281649913996730953750279822055997926230032073667194851880297301034632498993642638246391798245115511094786221491656865147637434303368576879593661138586957599497612657535975417423464406380337488158213450328547543157705361533188537247492059537146553880582332696916874832131742618310822279243205633145893082025933701014029142571638785254159631851127412835808395324757914999693390269337268480749028524889762203123857081882002409948988577146474069316960712870175172993078470941050826422860306615007856908813542815252798686649659955674701169150702559694681714751765980592444237155483018339064409669414082169228812832650960698579928236973012562042425467952991184439486312985295901631142465563911205509578620735875457802018135308772143068409631644374787010809158253821130485493722694220832383016968971662827405182086584753943887308998004504124707264470712227291600898301754831769223978206196414656987852777360058637602188460121793428246139822847581553032885236012588514241316923966584590079427598772243603789231907156314814304357209259269670313227176897216369636553990118297156700726976617250576781720622119168377818554886963218786836611879165941863195958167824457651529273499315879585210433720398658343113275718996243747356636609857787845364222062430681627266733025003427501863638528800015282786615168548806867841903235483519520082751675339165438352617067881655247226684158588836854061443459741369307527125108894884379079913803928363584883342982861739955217208062461319350229365558273876247949928887991325758619069729175087770042098272332346011341284315400739924836968123088351275606688558166877588071955997748901155550872472507135081952546438112841965568013542580971400006039902731069859126045131227134174798539133821856070297024827332949881346739279300197319126981765517809797429386653076424966810411931829088552972395194425524369349623946317960216248511303220169744173396660854679476330301864276511879049219525867641672628558104507655845816326288013937211532663968447174828041630607433441242272024324831814074987606006182243433796488982062887438391450551819190278418296107650147570881117492722500087389096724236761458569803845489083576755063086972334306931348773320877006524131207211840280701030146389935282206535550547225710787038497213254989498663281706992115316282632631568131647841499975132667554216078302181355770175640478526230893398306069098202034433974371680324042097201205170565642924623916196807386226337528142960437292822422404421950372108628697888766376728611399513932928802923746261039157196192651802204002566628249950744120652267006670981595819846079104273978978895238980971721327293311736809858956062427426182845652320741054981240297968712860297006014187184657747786238644119881572908357398752599698731114281948492725377474475046806017864374280923096807019430991094358031836248056209399829451033089681349392208041405216919501778571934914819414334392183686519113246718512814965316996976755058929106456032663293714515164634021922592419843146791024081685034754639087775147058052047713890047569027456419251671537600258681768737276740465123214173290210992160246801473258049114874539252950106434232407353062605033622287386084180029543346920265428311773468010357412211321581315756912582401745096662009801192045824748726022056377864675542790860465541983767605330792964005202683929761269962831591816314777767937452782538928878389011535642330810825219642968020995505854380343482699201273944411218011340741412279365712542090895844881967987953575054470494164130906317491467648955343671712139799144050368977764627368777199808629102492880949583589755367894856196830333906359433993990286564123177579041674603203858356711650782504378362237920639907578861917785074930352301341285662956756491368964522625603414902579241989040328421493734766528784999578146239709645032529595585529510423612066199532303937338137641289432571533392049424536831000066421908123386780004956406834623933319994360094051274133458625717971466259131712579065688939061665998084347038001687150483073640275858491745695043765294651584029926183670975083076906469488583297305667215963649273616608390930461419701265196334002768227055770184363743110414948940390854985755223880733394037839499080868144582854531816575174405227318947005464764901302576804259382907436936053619307635674337258623534763365784584487707604452092597066059774297709599528323254781972050857333898688367248502865575981674107965435545132454201728086699840760261603667625993403069419298782058771778649216424226113015434437862174327115232615740672793073030137376586757456426373791717593089647468969208961459985386112490101410593325848817306471508172554272376309518954070101152326205768860439857990673873909591286689398658031946219177456777356006880292973484763073425566144245280873920224602654908865494716309011987162164700766134752851696473906634693510969829655841541518294231728826490208635325856623357697979928253315039382750801751785183440533623580233678776227210315907469704098972008980764021880577598958451222998389433847442177489919596712835678936892302070226958852014626704622008513416251275636524457577722464180281456111570418897416752685722879118503238109816552704169543608477090888089558266860276893612751341807466803162464364063103537376504188675598686232062394126718514679334025475859468599234326195130492996156998262338785533548837037778054612696146572675177103596865853028355554246929713759452870849703204265328689183158952010867951386110683457436665617997355091003805562393502145982723221305692841916104032362706042889429680765665893719759120933664615797131791228068917092485105163980318707117057193417689209805680540106554837351171061980944640935040232538497765846239868687999252703354055444916443591411973475124952812816442871924661902120188109032170416184591964787693162807912896157585862225978671655984675320111625985300027646924432352109216482696014735139510820237986513057072404702209473146651440877182792030548141347779233764521616024865165065712257738178944315326873152903287197600018972978819850331211014132325893863170263839116335754219754218697750511109246250514699273084429182985860788522022249436009360119352010263975459865941665893762311548325992749961696328292137363923484268657595711776586744750324044276630066829456817093239379729059885293556474058922521991156188963026164911087475121364910139918220388964065309407459484464803305948961422393763291037006932544554687608789190586695677617738660898202674246086477516792039835978744630504520910192651115120067486330634526593772645089502190261239708480860183824951725781807706179683695130629048903177957707865887874980599489953030170416912473815557886204495344015624365585115796074609061930936444663683130673909088791548907839739549374119743527358759127341404630183515257985170313164365050114245278846677327832603700731521961283919468334550320085649197699270956751577814337475036840611135806779187697899083422997904172686829826249202221675942174871938297984099609068148281101173590975522283221536580109378818005255777070525376746751931069649687952486005102798843515755221427318185187466371156659302223220474464562443134010203712575600571591383514728323337897611557112299335899898660798388423169708620703763446212838290245415464818440767742338702420840754008812991070634761713292294532464713094368094493409433903679269875149196673885487632222687002392117024595833130141076845649085400337281524211824081712194689532174143467653409726966109741130142993611492719740358586122023869286924280010354725638332968020623285099133604907170804215516545919861998812745381390140020723052457583190423129572934030110455831711144053948617392006462306552371767544345010606609003099641678432276588454764970212893824713099817489965920321829483701744729933500832586061775011724721050846814638258132886308928656181744252069162884110000386503178649618360486966834030121095609691459778365066863915874674827662429189027900666352902946790361835818339792864030496910226583831601917235819106169185472284456774603338587990642765773826991647209205500064557157346860844291453902644117060143066684919067207676027790854860938517002532950930617839568308281578389165755366851524436402100213403473155909733208507541498013079985519858877232256255434126769101868998052659558702188087692771100463037279322768552605647179615267629255171768244386662045177055864610824445508916176358465807093643042294816804695606843070406746769964615887441886507212620327422564003935347270689907408007648912402151016789852037244210918727522265157960331817866978150452443694268463206074564296950863948412546287843053888129309563643372780329955596442627356461792329764574932982978553970368935594723946003986250826673791510161285434747185927339055957484589524775696632189146974331215414115798763174474929720449135053301476921261871584603787633496228283296586265257028896254128109119766904807905240723399297933955921453234831490294093720890585492404496918421229449682663709953912322187948309713214336914872078538058107531037232642028076735461941646438663660332716461265545584863924316797787392175335314636759403659522578746721007581328075049409114733111622618614480011223913097943488688909861725201481660611031053309597451666866944385955794712984135289163861758626989328170413175055161890209192262815958338078851257956446149130758748562197001770969864655885056594371529684928712319930396566462135545465358827711534180724287152469871616546624947220141491298664895580031879382482040843632433433455481404620147517687895668187741945378216302425019631754341567821274046788518471845957673072571734530281492762548339864554895527382228814931255838605836000661132582756743279212321581028564100333080519411571483412608805427630495059976325296804682864859619902205006018032356451614005912357147330068406122353253111671099546633182145072165512655450893927563688096415635270868220083986815721520631651082430685780757118963670397497027759814451637265141697083957485160431516545358440553550694957481010235694090927935791739787826567462051669306154879562740500687139272390037509499721558915281251346161229939095379987323833525492280833489141429444355430751687233551435134052998097113663103379134618249543223254112677170260003591183132257858187362471582874946409929871102681052375428455605383410304217100438931914064714643142850243246397097521660899691213903322386474425446126281252563227186762082003139253974327116199981921351318659838591783209078502137400743693320572787102406390420606544108137178670885042326058223218903189120963460222446105709920363788879065590979460571146236218275458589897076349186991336673400926628111797823401984599461538586843274799016584102421023258245842827606922910320796767797750847501155392983234786212520868118033390674043388632086303100287663342066904724317866411783909569130666996666431062647837339859408489410371228731694553901943343015921624537751887551155087926059779827753365140110082185050966335407642390902966583420243264079736583661974084757679376323757022760982805375206198799215146686805530667879729373430316987876447932707072240080128454030109118735496116407044691224884795622281387783468135794087739095672313243772428198646022891328908334629330030387194343442631815430622280141221760636548839192192599773105068178198289948761165068333734719396900524446012150121907166744161010935463959045212341528983755351459365814803055223873348477288078689854134891737082693444771897195563221984157507632639360282451505094496216233899122405496196857662766519463069390604257730886318040550495603278655503022708702561417544760038473620579547634147299612005448720678304880571733981399561819930049981373038240378180407469120481290578968456875027339550263696351785133626757021030920603740510422994319600142307102084501045754967569114745032570153564290437169592597262025546788901951930659777497502826976623764221779424911201410413449668694378172793842135763355819574110282753286341193438800911795402534791605985979843415353367721482459112087050316521507158817302471573652424389324350749535895853093186557488966751787038829545156834163059192875192919965855382677794436660013262838846473925019319963299765040018558336909076921206344698984097255851985022968863510380413873584185615111647760760432151427340325426375053702157424541420978105641507773513412234025529053717274576301284706375187583869921522179191825264244436655701260429116173834189291319517139131377480490860068890790847263226305301210493628720824795626095726472586467032470697446538964912121513414690676036205426661578090949033261621951708483234113255854548692715782757778469616274075257957642774344474923647605629880205743501270608772941042199014925938050639993545529536718659160983738315712400381734669808951952347868157202185212379627945340123788165856378131671504197776762602474879509787059446883345073507654683184772464713567256592297989447026816950102917693847307893270380357566961504679365891073387889865910855044886962107456008122908713137265230492514569298933186519479521978276697841591311007795887613043950706841540611365534995871615450329328742366424214125711316328189687927504268686727811919920065641955839574931022425772751378770622337944606634697015838883669459603475724142651173170281758885051505428142442362225383638337031815890909148046778275016703210751757080109782754557392417508316363267928441421492177364779787349599404647163790624123730067916226596455975688816107090536107014033602289685372523827827053514807182360664419031671764430270667824041082300267756146683814650760665034268391465626872379387592276214508533644313094802584344747081387112517998646590683405445140809059021448583942758766547915231640535584408971359175257878034249834500002500234819626723041399046387859662181399500159740889222185566484576711621916951228363782675583198253735216120500197974324244627095068669006190952223244077366260365263496479339307161976153713292569284143758405960951438282190827915413275179382363833498366872436141075583804943251463568190806333319815464782214386238907605107426011655648172686056515192166172342887822830179773157983166171758497501681600239291764132741389504855008927455618579067589513425344263849029019584422140821011790398216303776581046419125034352890206339012318030413812096987722079476518872910077286861389897909093392100399158710929689520163163132496035917140978674840092421131883105871979475781641232060013036613876249874453886342255651525615378110212094270580877323885378108449063480661594016260001736117383968417660201704715328232540926963249810680107123582903326020545719511817405181495818568652077145125479886934117433026586109972105026135635489123500267271968167497814982316971589824536510866993781737310374606149117288480536941333437510414057572947486230249448711364528949331012958634499106042011013347308083490392210740856416641730692248921560142230257760410984269029830249746560958482974549866768714088126884908589153824693353654805884715307631890179700707460571506380169929374316022416519819676008938973729977609987346645783651336044732044802830460189215205631025797805473728445722335306050132856462157195243363135521774712532470964797764880558842911907698762371337069660772715388476090110221519777684419227996501408878074537934063908631055942793552968798797688079953962252712581485666852327370148672043862330217569416423688051483079540547707200381569729161366182035412409594895617768069007602156870689083383243716457365165060374326717167547348058343770679258285187509332932485590164766777114160556088210628479300858698187986887394682179901834212028819507616000619254838829888042270709623904691334815749529345037942617246614401289633704005559269860376217402106288622129473735065984195077614488980335745519382050118545101546154095413841874385096166968368490168415062537032437764030787278271340594109117857856895902488788079735711805158512835393934015587298706401807455424870541312012019950178332389825820471738627435584693925165219979501287876656168946167089842320471582929725293537886867498838023898511221382553280490936261376338586131122500728971681543200261068861496015481262625872158995833207917926060531985812774626647049783499695697489838956280490564612036989321608741087616503889637714891352825478976565939085523607689745617510790599357752888833208929570224645132120787459910583778500835426860565328414413897584100758145878136569640781025364375930139621638797630626905906157284868379141835257164512161575463653896766567446787059717835490372792471338488012424865422919247671251038934983555822381409144691134909316919978804209214112801969478398542905042649860349818766874610064289048268150899911977286818942890620139375074828902743716182474797850167476791918217308069601744855297770119961892665490605619983977358599774242014383296643417215061428336470450851783408719994507568618697616127828298889444990145709754665427649216864802449910718120058476191629630434668033529659833368129513061499500981120008014205059212969262779273291183036813009967577643792637239563964091934560774914711373715507486452252374803142440776621981710411800342635055814476456548838358428626556244534952824907802394969006871458918231231842991351894349543204628521940929336145333083247652146554696811393095655017067383910169695957073884800772860493865481585513913796359863677838741599559460837247140819641103501665440667431517103384148789754220327305644026090678682414406347589991408374169117551840534743392601995978089378969151846774824019370290834315477489715151092096741791103323262992410960516000096612212631158902907372323022954550397946289838751058502195629944653469069988249466888572197623748046492543138882401343463623077049099259082819292682784398685931726669707778113657481266022677010500780727590581932675597800521386750391251602243067645431736391645992490667806649623439837305464103474233051680796049308375675851467287661881168114246483120049852288076169929661582497848983175022017391188345525904477345476771537488764676557857157904915001417634038733764262254762493541298529398840846556557869199685293213137804880614340337241803314173443608180771912664021046494624182400848000078106159625889815100614780737969790269932233874552042484756293118644703042008112886396889261044192339343563275121704136689335106903437081958856134004250678915792366615024442919491886874598595566080857505367220755363544874883192087954858287559551685657637447100145993424902556985329027508025056633085603961734386749087897799272211088774148965811223812822554841089183879980455322514488654919725641279062685242336661453607785679261775325134151339307349878154020643023841300961591902526058447597397304623435509300733968076756903114798118548004734876189439675573243527394705649124057934852635071459780097042655848294898341076862027961137909727497296617672306647070165512335051490625429309723288283070706080210959255905762435863958875871539100642421346171785101014560731856813590385684843074044208373929785613792090466165329089962479889036708189858323509368888615241317328531905716209747218602873819604082088927052176725718561436104500459101301841664395950937580127519900465059441572598086535936794935391007930082283580668296772373875873997124393718815577979351651054821817039601372912878983248148727276758854284009226947501499336471398079355291171245646039895466445080903208701788006110645844023677693260179435526042312808738441799027996974221770253282941078955615967406807897765051391599320839684221351385081506972352967182110257786511484194158754609194461819481152501321066951582311843207366634962013119318715816390981110811766380544286907177957084466928305711258091489870839797455986028365288283193194701057385745356860500000111913163079778932471299946594545978688218529804059042570983458042962433341177589089436928563792783688002646383211843268050007591656499764306995819073313905641660490509486345348292165312536629379892741073396864753104420522810601124471670543359806249725880380623666627142343269913678708312879670394106309779966832862374819455543464466538401788464054319290601277300928622681043593554196763597985622106872423836096844471324788649220743459226941444869323441343959592407170950705560369695204464115641354977364422613507636647096034112889181816889320276772223839384753940839157639923727050590828463160034588072997465954736062384549428084705176990093044803931495894233238872732196375467947155069615482159372684363464436376037306921176596380224140868403168081089956503215936385828437372403830533475697308339865747648082396208650209849111411940294710209257999186932865513606132703053677200065899287161836149513414305402716601641799224191195573697918328724500727174773317401021503523001672831213812400198317992079435269239714134635559534563819036680883002397196884331216529728479300761680713087511725351212831600641285476806814012257167728815677270096735313380548673486647746867742649141599973895552652037398752474303578840948408343982045069290585988885012047692990248796882195344221169787440423518516521728352175235811721287924013701460916181105414473794274354100128380192220092512842018794290276082961371080462105010036120713380851636895151451670070359671524049531047198439721316164913072941644464991039913657544199192498116068800185887115897441728230744892155387293027504197396626371843710043799832530715742186982384141053681450943590165728375491426255496647679099331779350845787911594286626093158360845521880605057698541740386748649398468773653130280370606579010156466953031587253486396501829072781849606450443786478430501020031420473475300682509648498919518732949911293948011645690421541213513224020932120463790485444201166500934567284826598055027154915723391843393391450324434491358871555416228939568820939841195665797508883022171338516122958543701319511709196233441553743139229607562158857011776071367269185665664766563591540176184724296093750006934054817177741906376799432750931363755839447456771365224538594436591150927882885350708475481623083240122683290589679696484548248406871499697046723894442765093028925459539410209780681827692706901119738391599286000881041828772571296991758326937168858474605814792265759754691863307483609462894097981657640074476736579238523871851988541382904332424023458739495216648624857911396771860957655665594788282817891472040693166204120448127530916842976193216202669674513796141496504802770440359309984145177382768377941843488841822567915558511519512222806837915245074474131983033129276258417639365063403271488840940514549206111428314521096607575780451059694167735566671415414011641100459447033022867573705462032832185085388965641420117953813747664918768167930211114271711532146477501940532227384419585807462363489194499079099303503401954603273127766043353428916843251085441710891948424930634550829615252271574470060785365977796269007469549438621422928760808299813243904065607764992863008054635145671609842947498329661079577216641359784800844351299979144691088029308595144617893856697074849241714340080999350881404444464962774351629771684215944178068227230801905305841899153403205019486647028551529429072620487925945194716375434898686565243093060618125486407637432148816350930090156273366746856866797598146882793062624209713360253178218549630220224962183135150367679330182913326577538169239892315266700904949151533934011124255978186233980130758972022267713724044546030022042931376624237088945730484588971066793754720351967053523647825543770675313882750566813064387336103879010060106167095713845563508403530198238211455408586839493065421802609997816170186374635611275029209467061483360443515228184095188797667974367522713613708958977954002693199588374107259387287326624414420837059395303474818438313440992173001496268143713164132677410045947996167648306664381753547545215995406143890130269991165990569349810505644846300596057421130267798558585255522738160183574415525507767580537038559884733183827407570730546452686731036570062246977984791824881737266142760542188145976570479295018862719707664180684488101439466990298364806826869497573909118747984384840521546405503979751343496097125617025491973165817867362329402127086357578279555643745959976617779678572445576912565385927919072503270363761350971681042292553628424420094948226202742858890862686671990839541024890263800085699388644124263008707110196807460752079041525749595471468841331468815839691949295602540755047512851375634478658481375189803478026154034523464016420240213869170079381888492714197908949972712691122274321890169755212762385535893613174350701091101800978138036996282475061921513423826982234299603256812718434384221093924080986196073665611147752997432755914856905151546776000818665310226870007501647740000735901236615059649590470039135174800158227166161229081702628359183504562263836131133623289089664128888494999628255256964207419458869025859056089067283100328966671357373772425460361660315102545811182408439923145658080260834343337968313031258024773242770239147410833512341281166138968823400832579333680569498755864721723730767063676487470945877430387138168393251479454412245347451764366238260875676247572251570135029205846364053749016732969088804074418314102526735666849416664918895442955938475445510028508784061356953028780301188077335427858011378399413149803300805868495983857355287862779215184022017125435141427073052555447194723230569232971383810470507253262540610754579635272025988826226771300762900091375256301629017036668796450384886600079027050602734964660735135038632293184692009514109779271071778893724855420185064007603707071519140585615206622768378836726262508945565714044079715007708318161409269044593456716879006424861818416477079753661781028973030366370181008802575234257275722796287315502068527793073400525157589203181849084040978774115105774174509733940067657087701952323381567817383396454576583789206012771476181609461601153931189073184214049613526653031650710562914662228815297769498721802106513697990053561769576705822881890134420200124740609880286736445046800059684124217146847106364294399412515602733666721410656013396047786017943172440207936000392128539688363625195991786002556668686325434510543852255333713533005237930530575598913411055645007928596162854725616439369043910507153445982003609172709399487204380180292378630383255295493943736833903636029556588459214021153005854133716524445121402426358474781025314663865239130413851356222593095984948307918221425725855275961898485538840763151742641309411569632785957371651643864763463319242557982195468934160658648016812126697746607472294953442533086399209777700242233091756436687537502072554499667988375306233693853035452640671141542780110757623538484033614421935567645749420814228477015178473520735953025682409495687782407149166217863633410903651032429007227331387545697602607557319587938067314663460962089370154192871704868139434514029242245690848144434402836613200521634306974199163038683371148068791890802215979836994895755709332011308336415275305534178964116549251570068591100718576872039170754552824895766277150083767060251637455658559190549387603863321433564128030018830800093260346679499754611815893330105663304655121833787052059911639743288044045497134085517994595232650315562791224422762698033783547745824124161383704093315699573052971736491333388506050223161770766041333067740847195600448538419802384324168758393880035080788832932858472820498842907559376042517560983704986825825445765286063018354889212177650102353724248306856396227967520201271658873570083111459514064757861253783932465730973699817082603723556290624185913579565351414344691919344688850465140639055674920829161675724496892892038934099863258392194529062327667249245290925196734855906954446533749854459125206927223785938699523058508645129547615272692739210237207552832137281549614918137203266442299250975940066621852251871517170693556759881205634670356692111614595098396664190950110046855536063295312572876795426008949665233481754115885476324550960209556550509552323232020037339950382966665027943845361438278807634638634785307620742119379488983982374023274830878352787530027171978020495684968982338563500185993093116228304424598009541799567985538359036722362387359178212369847327559692880606731995196210682500882705391727619673553566422409116725037357947393797106507929326792826439747573213698511424014749952127256007624946768774994384228179433459314090689957320483175176304550867139596142257227987731117585309768467994518383845423108641501828362562847120938685720043965301642561800546931408110316384622418846539540488889927260091541138689751462704214202105632659464801800170969292957060981881401516507210945805633304915824802791492198059112958139407875769436521160963216175515128411652854337890984072544567288540455160485705942622807619089059786216251986011092749107258859623328508653610094307469893902540680251083218009191959977757678785784816039209310816758695567330617908185861619240263848412035129722279145329172890625047379440791132249193437092407495120168601694324443870047539624116473915445224512103287476764138071613795958033534748476973389652836493425588648781123867043412618736538291349485594433146595666539550676799811710361574539617104552809094901770601236927771693391478608074531950466897340540891733894226381853551462751645970714718196338530610953230347154788950040534142428656075604643536451861334602588804836125086855959387869213265842485598873167373443569601289238618763089041763291900406333821530838933193088169996182732282312572569058344638973011966618484032468461573906995357583566202216247326305714282653472269100220996061734201896992113253735025093451445260371331235433468845595026854423269391364384679201015925695784417454110092522747497153732215019293968423310046610801533153854469875919338627701615925098074927403137081669842357219145970217322191859754323099944869948268834389420221215022573894559397557973994743315318631435657374831381191187688307670398264939725741882053332690076814653534505010411197063627696152650405722819414248838716914277788941628212793984115136499044932472791258524440046200176748368470709450239418090205418401835229615526683148498700078468786884532223021422771964163102807580002271414296909686487562594928445276354034994010261160410632330806957549856360272316894557085070798544455142394388649891512761445410726673445214712845556200224832610291051685508926344191786088308265955046551638960461374118199200711863287796625464913892063201094911634099842171609859236892483532866789744001682597046366481649703227357204821331794090895185961575193865813130141658702200605552627045601597881166462222992057210073755104121049312707400254890749479121208783858126870100041607309176165122174676597870472067260581758228252624917016262708282001239217497251923060788580824753867788594914908068908937140090749483634552189151485862566465028701232491596829708549784610104339932101192687599814375250532744984326748347814840966444330258267815822932954835018737123518296239433172688086195920057279191380801492936418265527082167578905194328552056957425983401460618611886106474272993812222094382731906167008279307582882999682439467354621257320043797078780357691921290929538866936832259934946698696613568166842807158663746881339836142191524610297145571172291632278280491503867756601769495670315668151288858382328730393877650420716001145365950219276051219485615981335228512236300699930385251880500074648123992371674870753169780915816065126350963601176224884321990908174186894992280300770704071115989105992795579655436479612720854985394276531011637382701761317009738266248579493318345710572142927088093551029653036366612498824564202361233724816114900061510885495516553707997276151117676852923500295168730248627026060371919164563246649474582690938938463344265464023184311523942189873634574934347240259734126508055305346134781464635006464289152935958918148227092581210524621838261542673631403776073451740145228157132446806258825835851734602110782046078486903748398242324951526777376824415898170825645591268915487103087438510664586530508350119717577828130997729474321680903022474526802168619993143847117391386537781597007454417833055782037620514657472036545103745383558469016083383487377790851031097948996811795760033010384112231673943365175827279923050779835417286186400687560053705613640951452062091125953198841159298580219118877151420542850277702243713873661926158337678411666987204676305833274161434691094711323262043400458613496523044677200304032285289669353459338056651634174476239314741750817653136485502098784225782895464972614693242422540999144000293408598542674341284421011258162752303368367264459455077678815187462268227182039596715024321182015815803390808405146570190811634406359763107879231311698745175987733175813644382378393092736911591902804718275322012688728713906434373671138706554568682882453702681597504829225504364781672690440478464669580474005860635916492127111645371176547763770850396839124920642580667965349484414417490660878610445095380217773814447935429113692056831622607841744979130800965811349717563789916827584932129274928029421773832122376497101558628182191983821675452551227411536422504304374980985811096199863590913296623503048127077935838195126987802386604987502355954095188900418136245298959410028606448713232661653505019680423385255115822152498852725509663582631871522743813545942440173090987749573936027627945437644474827878095201193597220366710387990660090680273960539574677980622093620522294346259058299286559738328881383579649218158815698757275433966050458415125295348867071203837604472097727629128255552705039960489579925259756485053563503228512610803993190179876651081314525612881288983265825253153052483151263817322183267817720953981529079046913463905451123977156103206072384240701180054696441993616723736007753859099557914552781846971255977981041635178665191984460616493098523180769334516808924910935531229595263330631597828521083462703037704848466859666271676269369403260171687488889816180410730212777347263491435419400835365009599686063746824920535458110379535913509524852114107678180881956905431914418600173538480683874502055217561459618032652711160896415728979464046310599768890891471594339999337726840120906040027569775606347076870437931717766452483067257206706500017684754596268097480557729157095466273400343779407375500628485234144611428296886728118730046674105711384598739806535422899937239328508016951572131133258781247019841507119699878986363467947661221511338204788690039998874431016372202204132259140620677632111618702605482440926157996700244681945758731303778464972488883118153499052226803723986600510675544769595195269617580798395602423628928349322667497563776027910162115297773106102477654197237436213298873807446545233719553470307395886468196926939489320432909209382458670197588536193519487031352241779989794680190143627003968986498489333205805034228422556815925293554606409271872136333322134381242927546886353446195575726221630692780721852880035948905118820525867064081255400855793611642136699265001991121059193055444182699995443915700109634640556121286134825958713586132161305612718320408167296466673718737339444000423792798857088754072907923742344208430297496322456914886681844075431081218406428155208230709066262945546087767159991559850617799373784097702327427494391050585430760414032895652410389702113113048854029701744518380211502498754001613231261283295229765168597428054594956694268572485284201586615110014030161370138679041006816959026773180146629536983755303479460515971441726076091877552036114968070197992682049439557213619693455150023423338844948569509807198091620102191007822941769759445753290262631288607299056621357259057678185708313026812141431905502093286663376289536701287087642411455615978054154830203302180953826539775783075847046020574945286272540614387977897201049659773401482569243090594858929045444670094148505065207838440153323781348616938786735033557087146871537957018679602951953495523086389867710057882673070978772382022888253668920952601383818207282091927147447894589095929249109454763193421525531005244570289406359142940729376497608720779967921024991356956341637208552850126739803297356574146614921902807622943981037728331121902297043531143565279951781677197833805270300874359313878463014253485370267470340154249761612352725465082053803762296143731450850657690307841343540731899539671653977012417648013098683321909403784255002797025190370475425380771170261752644375924485310836598884070706185670400432166278191632516477957616026920270177996045674305685970309109789853649621711330091870982598812791898080640863357538283637480727149442344500174591032811655513402700747801759620800821878026380742876824273367971041225991767104855602652942353874659201300513539801221810253306260345439486480906822685664857794931255072946220251823319946247639870382975517338180699261409136446290286018115688415865636751975435771383405534037087816729317316253205587077513895338541363216887814524489436042590193605326658077087435139035041894651899150758780701143283289843147106307672028980014815914334007147155625138054923031759531777678584099139321225861772573221712891535030815338034700045506838484636817675553382289257063665799858675617207764269038866303779923781668040072675860863156738473927976704491851335071547232500294458456530570891570654269539469246345705808426138911100615093272662604651860520220090601172916039056377854438891280014156351959222667509873982815953223635590473217539639864590692791609739119138944265330814381027687147550413918459511632593154835715206701179086279286920470746667305305715680463245874762388005883558075445322499238669527520106104127335447467471859780482263804019192078858771845145778229514952073068424166222718775300026705506513651009439098863369746603070682396545799566878091051194389332550825604809808632875823816630442146671453135297780279059687815326251542713816818643091143531688316901425331745573667871620168438450684346815118151660725544071373886513848186235326818336888104968315210316473773928052865687874871422819277507031370856233196583039956093549197933722943529201515756287162863704317882269227698465823905528413503803806920644011640947912222419697247888810346844584807387525104415275205752622673248883595110326106307557651894466193728312853890548756579595203995310064814043147739440352208625420820069402363548582683769622547985115827057110509270794060468101012576138461552860514838536670865921337849418455881116494755236969166880918088758564782180905653019994239346307023770424694441082118271212180788439120164812670694814985508071399276966176157950105086658388640665346142670237726884577191063518470264985353985721259907504974987976167969298771922643048724766252892102219704555807216889372272077755236212984189924553336661043018039107120058845217722199446981433967935103599044531141897702883108802794470899668089422330164331821732611282669555776968270546754825285099267071518769040327523858511950393097397272189248697334102292655300823475832490592844682348355747033297088659845910778665867635608721182238733214037016510590266708270488523622549263218133907251533437443087240944954767474942083082904854788721739782744343788376385932418099338121315405373475644676409858044013259412180196049844455726049902237472934969045874361792002094287136379921660399962692561474193393223973411263523691294262433231112585462303501050794038005822816469983838804852433764093978566916123574514366295685177212627145672218809908824608873120220184818766867477834015464102718761215225340567485866217007561691325566410816794037755833302563263442206228626569111253488353070739333040096567093784485243591989614168731663807030486732268967251926794485764805115838698156744519647137216672845329108350313213310479520798452334776761227246912702153127967125278821050553333693048909676419904740355024621446872248401589960423576650908226897314605252809889699836002800747425073603419064816853484041815819241308468080728314441310210948787197203837622648597183148448455976303443223862624956683700622507489595031548570287091122574803806254555750225279020081840542342508772054885412020003818367456312794807994383824979347495419459757738745322325846585946727305013095740593763308916675337283359913355171532852616419096031704561112700747618058410562567143271233722855794704156464522611395365889533257124205860502604289938459071684706722458627908270128227125018135501520359462183026745416780390728831786194786309161637514632432313849505341879371104881901504547802772328212649676220329316710495867800316876569673643256051541895969775535482376230216702546382460793897095301484847388903557905691525377665011663415219808251091326652940021899342560757748619813589609661589112871470587406479711073263712270616608119220317157523204853763979005953106750199020994811345078514188409551766775662486691557156445627958907507647133179293896388337059228708792878816437523992790372919511782320211071320842888636667197900866712695739032208844940264731283055212579333413285046790859738606400919963972227588004406937531103327712061136279205746329757996224951032076401936190143548774030363419474492186027955239301436278265056107650638819502041533766712765493383722715108869529825582167169555046490139482724784666400402479181052479227649621979986655574131949254491236772151471653990611436921478956145026593791943438368409981473915917815920752670315997541834701972706452372748134492904546351849235938487629118993566288578375922143222925149182014757399818570629927261898879430299645308009008935102429289040584516377420249859200090224338466487115680654584606760938168305816217609726621012522365258916157336407869044137650031286824720366163288703663254989714890131952714175394256092308837341792309077747106158816456130866889838493164857166575727779978527917584121723629305721875581464226806044721526517874209440250812735625642227375120246017466150395841210917785902680944405753806316799399027084659584728994253972236818197642363671613969831828283815836859267198256408861562978103692539663778030249075072600815029056736872645920357389387354217512450766487343574460327763249177555314612104754390939420183776486753421647680663681496521961587253784264075054934490029764843962488755662257272143140442891268822049049575305677845682046500373299420613849810038301144593761203631846042320465010684738343551863320970899114477039363535982726893766155066458891170615741844740543387667106753659088808842925208865135097111655296622132741658317622668422817806498239260194864281445935547620145094701438172502872239715785313948644973008864271576393324348381174423481451771417248740210731238691073785489449488047168100772820119313880145522539101672309966120814998543773546052240997005072877125512330598498424709950559762741526783048638702448003660014673692938085459649291488688686445194597261551010983924352091083461982290319142080909856836220199963760590817486249109827484328866394906913852339159945693873042419577169929593419625712226848996572201788434884460976764120672152669291833675898376014903425947334271251429580356879669768984750305582646937557980429808686005054966680379594016282109233284321367746489891187863506948853545183358813671531344383791569949484396337685865181301829899153792241259380900270376275897948089757565378191143155422073879481580312820867985626985432622875310146565202762138013286764473219273777932541511864385938540660374363079710061024005331088453868797674841020858145757177725162053769137614177357872637000429127697737260682732203971376110560275273626069205584204999648726474499668370936809837361339779233487254410607490268846274004962296113124597954983776725267803438793182073295525365631988770049997517873219223101513347472962358289127901491893720334246919589735921502065061510051359671076647272707044828229400338637448277390107217025269595873706815186540789014314910414844607896961763008620283423426094964953531663937861227169863701511336579176218321813614537504789916936036443144811506517488600091771069776547001513721006132750440596805592504818737277428039754084425447714281269642969754555705814785895371787527517040637027487496555190198892466072517679554857261454224179750944044735386916153695626701752112176657541436066716637773548105324596165119275361516412591745515360237257180471670574046114231445592724445312737071323249197298961696979097452527868035576823536303115956085546179338282426530645359391416362835354292785342331511518861013758145513109112858475645167331897565595764403379043123301639257521957260939828441568023645163418332483856951469031831199642496759759385417190258472208151074458145229940454071279134464861876600379109694771431133135877826986872507603107473832051637272157385137585767194889811999361018710266467837090727837811034154781800563650799391432407247364935379200167624806119097903915687226481310951846089515321225911788077304369834022049764718161679266450174770766722665283140237370283328283179599904649632274551312799046093170425709803111554266223140727369571650753034956630226576481130589793665755768717525618657288851659392605046413501826679687062878720039395785557349413617861915416577102062960219600347618124695524759556516726748555379442237916117710998124373973926327292230030011428459216787467967089414055423053368862068178325043487049471145633393972855328355141597545291975038092986546475089894680286734086577654698934294809651875329641782328920913831754110098881224064497332930145739458074388807459065293657235897996173994654354810417030557143318375965092414216662689904315589510338275142584509331463413413815859657872453084414736658225206608451276934485616225547532237870324265408833243455451560909559449449990940248297647407381372124415313152605276046708900784486398581518381223207476574588500521509613977124044945276531129036362514638844385800094560479091480941692420424231385638418520615905466454646448420188076617833202530144263889810634902587711759426876234711199882254632505273724169035785309624032659379387297207205133892444294902731740922796387068300770509229186603634501726172548092885201344864311423989342129245805925481007729103138568927476136694879335383157136654561884131581473544510990857375195893680890337025445940026138090916610072203601413601733101113708142025578344614362392450052977291678739456053969776201340100520123496994606885916332495393511652048462686212616796109035846094466474702311446608008539896104061872687286486753853918036284823450127411248009068128874126550915620125675741924722859049446260378727518688491896190832251530204558057959122281171323291984940030053677057301296980858521224378891611204284460114456703326867264103428104760452092083177755031678693612179812728352942571645135504574679080698556841005631410760292134877660277001026569375659884803393832688069933389634068540720185423774365103305969335235793115790702752236631349397043523943560646890618573923371018145822893167649268887995821746611900277314821388039057738811977507636365490130322845348854974302361192707757691396365319834347550953932139828040132231133895703008638159908262222492847501620590919010255803808990146488594514683002820601507025802540309793390116000741706032505527530309293991430401906993766013903633468162627209464152311698302551524838201984754913058685239700280600236870319678334132279878601037362067518785483746659700397621734961375425734904753334432859771208865129631009892429186094582800169690000914805080497429703228778857699712441287739236311022033534202726163937240071136380525531008077915616128963908420736883717218108292830621971358285572328074381829679707216530578620327637332930822213527325391721749764136507441538440187528794645044364879063741744432300616708127522491428113234191304833303406286885772243643734319630518045944236265640023865426294066907656468898991176246519129495716648225638935367865213358989779444863652776497316007190110731418922025565090768694992510530526658507708170261899126083387532160851519023089897547336052817656138568075287906437844537312033194213696258551302402584986908612483573554832273435023104197564635731541015621519077239321524225900196393736934585525769555531688649904818396472178090437018827485609986001972469221906771570123142653938010996792417725195502725804594757415411282690822557351757502632068507071152555651490475752059507484032957691120912284414836987651230596782087592073505740733799987990555136912196919808646269994583509338175779396376672946839074860895138518852605078252749126385945792982220996076144645346097428129955104293582648923230967385369022141522251236527373604367535717364555732945058249562521310720516319410043406791956702082930737983273844131239107382054823536464276888806419767623526210025833351313903945527668249800940115841097332177775187271450085013020022584915780724320749717342235200779182032423969974065552187726456120030345834058754033674168855816074122744633600649228543955254393965237274060864215988925147288039662453867107548769106837729207582071335672685175005081928810506851289427918575872269536511965194517763900242515535466625092827351088528126917891843714097702747711028593825913586310716944913344831975718363031922091453935324667676106647856409897615951091472524223715282121022516638107617281152717765736760052082190468671625654153326641098069193809294848593022965028046036212313441802121691209283338617233966741434786874717925564884683183334903457256621375203997326466471897008593325311216968125126258741414712743346546222684842591600221705590229438573060923115618156531214209772443511245076890888876644033117550612077064063080738608568104656021751905537379489878322274379896330271877548673084818072727908108757489408699316916661630796307931920375157307890979108222228928834409010106554031598330145600911355913321782471400731611657645545734111323143738108039291718331398164118832818074471925430529320261495572258342243718659062008520651802528003755819279214109389451756422428129308661670629618462114136113335552114962617927586761779502065423506871491331009899253031629886383436535441665199940193734192261443360754987507498480805497764115188307475141862295148785852856692232842534565210652159322307146431865883259340990963724570299440965334153008438604481040684554294995108078810668674498340974273761115990475523902553353565640480282964109194471977951373332775845559361391204057279371083225045926314990867981161899253001340487933969594361801848689536133965523571311810216801053564411327304703442127997198711780823203532471005530041717782463934272049628443610610760907098104907109329488539351100311870169358139202845758971090573030698613058262424615758785083221661039846618096945330279459671647430935519939351243264714261972900988915993840751268806697522253831675958461480198326240533907162089133522403059102489978724338548073103912969466140317826652260386262598739760182412877758813270412925184745534386773168908308230835111822860357456765589395939919195746813335838536725753394574165760988466467458052058112196931494613670552790031184498735111127045966147544967490227259928412159715888999700248063974423186745775676411145740595192668242617326924768546522470878897619825379847390409582750221539984266124743915251154517755122381817398642271280700222258776543283130506096459648560830282877181896147865296813267004059138095151083804211507400181380802208744849793039944130871340433303339678153811223555394659434965184303431982730457113406913409943727035147888461716747065250037452883307301134507032000521326692853654858564537202487979783219486506494703527004060122349607388019825895683769404474142988623332304568793787539065293588656092133138002773521180250558233189739627143681146727613239515674934851611732563228926536043806261959111233240465125575880680866300059758615822647098208595631717844932451643856454773522253824481459854202051419718892757632749937137966002590910355696025142819604927551313574237572218764198932658964798748970872390319477736066827544516424761133369161297814550111690421765586539758852272864016685778934395827894781772802128337156321118662411416069593106478915365437932440981344155805055673253077141499973095828834628942311774833130259602516500166433044925336747148483815867009701688741723317961204803888271433509086863136673599005064964929531473166098642458986385925703145349885878747793484181258808740809187938940124319670170615527888989136458558394238839182568627209678219868261062280610510752013194969563279235239213105993789900972400234819072166226190282724598870483682744232342872955206698888581378380349909762421149234606136690283771297520450858147695752376474227456090008304875606901798399294484504923287850719202525633546834184770078636785326484808970132009562543284985783218753624754073765555820809652405652636911019256348190624468889576154057780606467724884868477465392233018400126118214823067733514561976146999201913497472730205350295989953043676519025176602138157957168164901715636820223510941121294751041000755147679617178504685211674697284157162572406560348651862280686381168452657533843330919587706050276528270427299664552161362025249613891641485454267862887161193584628110182807353358880303784011688852537302991445350840469152949478189986932894036185275398459719245273071964015140731991464386160979197040874113714599647183821357682936185831393775418965978463986294820822310830751002948104116018210517703384994037371438435082679064755167757552006952120346696756406920780832610026144403815849017564853110567044693844690804586518416265092800533569570534090128884504057949540756450303580558844686373453402425693150911576913787162518422816087588138234231217311677813440360168820483795696812037390271135082908427333394091323472787273537279707769047644775982349415042364911268288158308588401531100475108428393909807385661227960472615992613712291371642028984999255109838578967897452403211875868109573352689708903699958703002176100013166031261675638774380493045123202064504276022601219160980370693380710367883068180544903165925321978287150282467601263273244772830312225886199148290221870030223221750057355030822960181076018486381274905894109371500574484601373024676181436611329674728478724379976462467972949710460393449326229087245433779231988896255001893728844108507581324894165253804073498849844393084471652235011172509798407038130107936299528472364789674091797233764249510615101148307735409002611543950466256162625658113987318094665879925609101756152231953439792935639747358918138271594864680642018799895338593007106287326895309375344505755373128940661105778175884170244127954314972511589835519305924382637339056552343396268278737757878467042946201996506057998579723648221039369969494734027222038630530432263185805917500490411386950155055184114248195011876623293369431279747883837533714384243301706290391400519034561622005132541834048966246171335991496271903003747422298420090110802865837489490553746834669502619351685286999767565241200742893523756243004430306533236469436156203735449550775561338665933811913139525647916197652177098824581312044722660960731372261154539033271335488727412582991699636913475333910292250553975320848346299480045667709530718415598624863188744763671872011656184982878893957016653850689682978631486036084588525521366437309857576147507917226455171693142688651440771340787962211933272104655085134307873524968570330004337462860717671440689392085271273845171541914785773014092769597472100422757058763751159872423424639147311171429183323972335989786039513464726951315502187205710193020202224360505212553879232873730970309394479777122575024596659485003312794342672300032552078524221310968993106506806163004854087163974894656756644759064178359339911118862954363903134639969478037259159449906764457513239212076665013744220902714413411004685361412962195648567846169969698192733586976348935648092866432296253020305601384884078167814617283059293584395218066068772091011163118641796019477595390094604556785025833713688738703428005291555441561149004892844044169723853427882617646747317271400294202849358360288836566761406844348785323078931778175426510306196578609927588620968572050033209207517766459853791785062071802764497548122431672526205652312688660494499951054167761941208386795244304198943249357398521965347114859622351264810205028429637480698564741722919263033093361819764218440610638680140990986137994808177294322518041805762262259356229306800936413494716890514305908288000066207153573809674719395378653717200069226603231930091577030715180733167262875181219089133027053948834937833919768907811600623484165113964500350994513587215775514450632059486893590820465068200680067401021109797333624645738358397452921059964933961134545349566502139303001369437438570202494975482211070079206173686976275587752484050458802646512203495934659365686628469367615308572206500793859782385608590009737649864188136752540190098927765532650098298088433037974670183676953142707103059465142836037976109570372821245169962771977480813457972968067610357274192755520992698339784612737331157735931734124390867836069893970656328919809707611354588459751399166552987382586270527973222326224833071774634312097301380493168081500851674876616752800769650409017425432977172253826321666379466004697904707805138079252021511045831858400257416696937415688324930516561993980309792837651869831339867200130683859951874945616178877230642079095558056458396311375316522225427369197105922652698736907861154891015467874107811028695104687298482418124112266520759440267747897979546169049177092164264620564782473000011514323077765789338569671614253215965205152443504127661577474716557904674054193980976950331386240500100686554642988900446441289351700934168748927560826815288014059602123040698186185276568791698558293606951237944459242663051609909762349672815771620175267338052941227168581157819406475223654867757937840809237990526674108934227158475815012254231458620050194538141341660768100570049052046481201531706521651652146715664845102962807320168856922147241241446532404905721035744814896782833547144471305574386996211919813585565412635582004966004742907448882891565839016500374377555846994036691914275507972694157101543108527002930124475245421642570964085833657186961770044903817541975785910531926851355580353980038965875574651630018498410754688267539528454860223183699731111865503888751154610830323650525866328707650434169481203825729657817500882033253696948539330579656490477374160420088966265823805850157389550817041369632140517286853561357384522720091509745435141629049257681500880922453127060363385252768847680041417750930066404416678075387788133018288969934448931700827269999799541527456411922068607212527396900926880253510933410368290766559386085529973747957598726462439387586568754122080546049996267904546622980448723638086515637485676184437357201374699722009536940638228922756737746443815241366196650982664300829462638360512980401676462559179560689416192352763099852489539121519826051240940367423493908764205050825669462447943406095891166019272411575674252925359522580950492978085954787854204817386218626461081118033063281588009605139809385084567069632238806341616501498567299140171416332498177778990928498969113248727186032541095042428614864186640982180682513183320406367750238356695028913125175086565816772460527508304046017725637578337908607705486767711844666738087207638091541406671200570608302116219333697595870333662900740491931663896556655619183932927670890459546981205869474800115081819059013101806615636346551308259676463489529202176194073804942270822284106578032003670030920671332696342856804145228734695907852430635395298044182261256497446059719018204777019069694594415871594568343086199212318839952294269554620582161818703532562114118973942314301296755749286079450625129128935984141232512597082665497252931263598954249845437183048244190219654312979613917251144880377661896106376688719754444207318012357460213861118867135555313394565516065460646239111665075222092399159271784180378931890291574632847104228790044643035425158457952749656940632171581748920081734245650577339668089579780197986561558574830868184115717941446405850233296300186596290204545714888558594250317326376721779229867585661807010287887779496450885956624330182746538179559833630838011765814687387154168741597491126184523604968684254101291608647110190534602592887404310919993876829754906163774091386050036211895498328816963068235199119072667543416711946569319107747790420062478309560125837483631897194292409711702361372471770532418297937774613742449519996386157175364195018056444136070433801984282926571176076389833255302015088404527555485017954849025229367809222113929501157052984390224717140244027571572524853294671194934388019168816109524745013667382478080281775064735661270756497072395552383851083677720574823450905848902252092286585737001303313489700219011521579148191262735662406587580555437288177666069379409755223191180046714915862764784426249046606541076070345360257977726632570655934632255087881430363421116096952248774985869160929654083146113912322241368279974519965520028379041908499968274648172514940235390847386776343363853807065501506538369158545687579215154588235787797004395698465569176581089870251947115190204784149824205245546395857108371901806372073650516566654289008034941916138949887586795568397243477907531227271371330152748142906677132005618953461160352335841622233464212448398589357375323354087348454427660577419507615194488980530113226697954453675226867500147394387126180097591568000720330568255912842460912717306740527224509528254201296454157082642078711934966812061044961315491166495789268491627622654135008040608433841862866136572708963465917690712460661687854280913951493000665065391487146265430383616100032624210898936519954909622494719862839717821874319584450386860550293153969833886180025592724897419059789399138077227018959939395889416762778489122291911683312414751442949246941005707655689583374854184130238539731567357685557291961906948365678970426427923100441350601944244070842836827190917859022671623992260011318822398967257635198035496526050678223947031205332899100880352213574605618881126247245780242546888249649298701522795913752390466894341538394514534177286056601920302040831421513751001863302560638481557484116702731977959110886558225493758388057155250650828049331435665793000018380596239899244082055609630217838602563197359744626510293311886090752977810082940788919132146982453905197764605802769796261172409055741036970228665277082976057487314306137067312020185720191835361463977270344222394436155911631717116554906623602641433350448870466342327143123197604074222390086847693846835143742994825817880978250122028210101165374799222124596470382786778132093462526077552085686515457006373088881622865701376514921997670484209504996796358203103254461253397902980985165163917092988502489794174691243866884669526599205351904360187827537752387241204362870125626922762455471171074773426991078935950172492759492376119038667046764075366277048183948007204971698856651502321255621644997722056991774031312211067463050381166926167290347691683307751454663499104681088442708858327048897242968784448259804958833705842070689770714716714410936161493109390942377704228912631205707288808851318651281570070595240640005216019307770564784272019140044462327460387501444953578370582223193764017988417491909693963701123486652716115131539157956932851248208897970732377012132822351190594262931477003797299194394612039732485768123773019486180743545001839451756486084575142336815972960486098614468268558909243975964383913046567512013014296740009272804689939340318489024311903708025552366431882245058355180412464916012570045126056950506489040166399263558789041773743330007890204082263096433032122053500041456175737293098780334562393808086807567435519840992273120101047245772193128602567986592827550478501353448718006446682172536044536055082649477755314605187554325825988503130901997121471612889676850235623031157649247430124325614718158894471916561159261792646338222824492957195813469265221870644119617283161632398480274749362548515014727765279429604346156593212968407636834542444062043968371467145094149384332645224245263442969830865521947003811373167869339982388523086072459677899653511837313182589828845403621680811527704184652233115853782315191109746851313857151994386264282812166703659235233315720239738760292294096697148726850591875454241254403203958662878902910023366661075888551093180264443376171463757326300511480796866912712442045946844240257880533065178882367226707757825401775985953156739143272543588989760609210901789708041883735300729010313201892352738478064589728088507509405965299690443310063987106158412610309627344666499987164793314802515502005897736774670105542950895865313929282152376044805358380969000250902793931407578070159586357570894596603028315177392333831971158675907318062554220430000195990108699724762820511600883669465369472068674626664427636566899933871536813768344557841396012199773235587667394786707112983933026822544938647331196772305794981374829690361289579158825574820664942344350057270554938880414529498554074815463528889988700934506120617202387356739953925419928348954008119927217496976643590132001867501461800077247006230104639665123567428912857986378062885978556227831456223780104046595703278506077819191750566330752760885830566905126453746262245775763356240380323048756814277107376670558124681269162353187247467913179381121755997538584969611529884947571846791422038979065545300783437799098897232407788590665992625074284077749786308050862898623199844604847311690577852288906569312435788268300032816432201113647418784465456196872758514081104832832009048063912562944002569617101636256103998627991302320930463980266191139606205475892887056190322065542746001797743032933296664708723001624640170124213901901687487779894372951590498033640720731954908068201469169297403934829490692689382689261437045669681878205319903458436367660852983452203572322169702670328853589185935644192598828872889505730912422210649457202726461400961806998907351646074573448880706662651906166433763548716266448211471343957919591824671362343927819708970673770051956349813174337347509621953752547203830328979242029609770487382080412179113455949495555835168623105466763806863697543424216609406482510844967343323038420312395435006121385131952868401963369246218810430262408755353552901313098459909725760923112207036414565456426259060853598441360546058516284561993138649150167912309110918756953128110624741854525747375407822977093373339907624124187265425871047815694167305009036164381196659883542625791986795079774335738769414380971050290043350694924251611989390883443091964903463530198444086920947784359448228300700133397174225633685750873537601641192212955032133158408481420286425181970990341002389759744551167886825798764303114804151314596469879146711470576180482941862103717789938743316438332776925662331176937656783931744821057091968799350220930853897562488203634534446436082903300319268393662284700788041821531630674776835660771562229975811678571965355402109953248739974785505830100299850715754160286093215624409085720277745157426353130501766233180965884640334107296982427837560717682733494220152107177954078510365377398245545525002152619520216386421799019469824370689022277249012190586445729525190219946719616633888603492472232438264942858263054435223323372214612355749585472685037130733660648413524851073154657074587650599086681391304605441416060035427905438411851214498770000057233966978745544799411375691615802369545955079432543038477403767793694711828645040227819841561952869047574578361451185318904369942424039191263027556894056282894725798623137464180740735131282139058316692196150162241058929348290538733360027292070090603257354765701792303448338121474543740110821506735508592167545409653076228809055578247135974907914779360426067609940466233411826920787494147981059663682171592664871573942056815779093375661805545338008896636293289095056955349250015522439665177323528331905659438305205485294275723912703591089196904270978145022828645816487589035120810347069469514585100309030402631366473438812356212159740824971007247769375844350466371423099703114107976051550528295743509573888268462997419825905757634214465707188746862993278339166073264665664482473407194556688442119344873672630250033015885857390408252745574254556821430707422976662267461453686390674595971988860012270110400552694290619139100581315214104962552272412418182739545443733322920217774168020847326670660454355151192932807992337841807599667590326022011472042106587114947109640171564112935792059187248806910937498108673424433085746370272830171132735227505650204364821528053145253783012562538558118927618510840253250642334294039737096397201909591495690374727967924117656265926896165650344161880754098172384570250883957071098118991837126038196649017594888754117852390839372115094895900669652989587139696839896377625269789707368691426214154354734325036124455868738354385616235864621085545990923916313382438695847092462819792403932574749031911296965574068628394100261268740431217153986744889300112105369052626343485327399632228330477820807262031043434388867954964836395464559998146651511846805971032681502617414540754522445828814630416949692489493848417086905683835518345751609422275387669410684842791118666360970444101326887429720921262861500245769043933611848358817132116766478323337142751076025421075101872713878619740229603499227320831185231880442592272276256598312549577411978855559070838118161206045688909875165621807729844038986781539621574306015522885106763151253003622497302937560101939579122438000507516189742725094365967787107902541743704840441287807622730386013838953624255180429314373127592622080740192087228165731919061569654186073539855320453825713858535271778504260755272465744117406468583963845714694462578367664271756531633295323939117968830344000123377448096563574239550413356219932000631497000791076231356472974964195932463604504894790354831787328112877468503894892547372174305866380457295825259910567975042917400078521314206128513319964004124180378112199824441237338280789814994945915105487555454272614517655252363681152776458851987049282266011417011443885474139400412891955217997660704016403497576696975813412700885620848749308473159909119021121777314169147921872492738365967703041561619972344152940333687227563797315612737647940116337924422409059985318137075932186169051583803982338730857291424896753378971030464922658334715024516048339982135089689386326449450575796567396898986063619589103319691431993607509234516299119916239443925728086901448569466291651168608910497802582668134459696189333025320108779941940142738288983576578289135872038871349109860107497470095914837636902895743333447224057381759272801421221924166992146247263704149886152092967111838771738376971448093103217543673248187157757676249181028801063255806057712338296693902835685486753880548546968325232300814616578301921585967739706718932338518544908342137111712438984228112298860049330574550939647916762370488647449510858997027277208066423117715712211666217556417416675001141527696674340407803627252494340311899330532758683713933639675994918215043919331119676405267474237043925153899720950293930138587043736369901636476233047834474785012598823813933287490714939493953145107144811683599394690099620976540158221985170605438295015100585969487479203000548591991464956628948288436914787036690820508372210716898164589908497026284387075264398842155856891491673517112567975898386073199031923115784905736653725565056246409104470064919073646238070984991597587618142016202093003208614117308901624654334349893915979113093545127724451333148371404384634832890816241681178099899337033834356596343397234627816317936497698810240576740245482361915601811995333452363157849449411329442466208851388997595179170997500382302625279243465155182110197106514978001295345323427163540412140296306091381021096818467742091844277700394378419003424186793355106923683137943825356044988064526732747169624964314938523689175813850216230420503416124613097799823119446330397920321355835123504852562517250174195795754314798276616976384493991381613002421378098007374934409166799726515073876626416937662658654619355641306575009957704254616793749596013673329809436594095826990350474580590733904072301408036254507662803235920482625842979377829878561270880958908586339290068540106125229259444900007855558082250309378046959356179473347886239774842078703474805378048193025707005242973727380222650297139942373499136270787699821981152420269627692202109248708373724866357330996978555731822993721726046744084967626207176083001255299084138450791397584784554775099018396799787917987638743967557231176030886820421195248660492436213138037079925699948735046114308773295000048687812968706326176284208118637857654606574875819705424353933520062449112528969267573654707748926923731662402816199242693342581669367823132325814036091731800950381875577022710835243224556316897389042459107255829133770793815501990098785123813294725362246929380863647220363050409251389386280408117677257809694616755822775445630549330889321762784235061892900602203244376877634201449736703060696025933713162030469523114725899989817547249074911534765146743026595930059756646509480175055597759901740075882267457492273723967904796522789623426396011323571497162501491849262262102913234209721727642434977535214470445094952003044994561775550850352239774081690136132459493927308281735865894017124309895089275528975104871152349742227378164380975206036673935963819826935132070884451146674618744541307985326088142605811003460942406609517954043943414266574722696828354119974857308341770515418782538680253811172238338516211200252317375672457740602554489995326397494388461273758945551127667906559283491152612463933593825788578737649371983591337580420847235351719247959914616090406053834415947651436318026183113944406104605948430569340904765267659635931421126278335051395196429313114284782811990716495873343051918681266997959961994394531465204628207312702506652114661778898246347763882036860996221393365304523029378461400245375360021448944330379913614210765235014297426325710781922332226689826706986901685259348684704873930575290974680099100201003858661913175071024009055788882091818163428047642820282698135143123432181473118089111884089803694200278890898906709241681451384785192198929221281421413478448167291680004943379485403646272015050935911863442309679673823527975122337541811076245602229638266998185514662453938446990103422467726250252739073992859229012644378926519413225800619173551024348885224475800293830042070745635820150601460108310565151082104257862186864715585381320237990464020638855484045493459524210662303369875326830422242725053466693658125969848164273402413772777470789935527419035112729793451254897396314780206678885606358840652260515375122385475696226563570881482798931954806313856392340481714669266764076989549764946408691664678091154032152342768784407815568743781665850692133716295726979598736763788702330157700772701420638865927983508707538050279562698087014706063201215894661774870748532453720106057122763840808198289118069227490722150561821382126037348552349544231069313862746654972817792333850815848625420881323264366472698103262977931478798414959387629077392779539211973443265655101235029461214493405257301723901808442754815500781437312208691997183513384382997994703146710764694618639332382625560652235988976079019820254941946480626953485687298284268984164438465349967673045939474296429541971443589873786922990244017343703703805693772801930831866811845749490534040050981871726769653059306573018612729139763012033461782039040789808292200117016880468399539910308576657295900679268643129636939068868032269843317824723431650252089991371176314587407878343500565252026588533469179444064874217729439075691547399305819721397836216770947158572666556164947537341319704371332751417688175325714569897541425747822063068999551565573305268545570494380096182454698073993765605398410429580453264342904287239973056885681756546586821348632580802798377374357564353120620594377140919676343406037283658202157177183048716872578481267468621988887890482104962955698886485995558570981205861436552838730074744260719131030466321975226295919052658570817830061252692783493516955715519027341819322919678502368814443625007717534707782497536271632651613106325880663726336911413968527752787767594388476405833421207948876256196881842865576427751224378360660307224034669112004233468429587020464715106795023241047631443493803565417430118928825705935506310358452666207834198109097786536381159812839340493721306700139299696064400195482451853285165769795473858047208807523209974979674031321810820362257996526576836959761198298096845481089665917886283838732769525805059457088113724436991808600310624265605625738997005338901666373881022015060149943493861279620215893635299549123848169285456210122918224320766700781998657945913089662465814166312489421806672098896920676486069524172505521580661917127269522618415854320712427410472095194513126777657744530494617048416458115161440793025404487425168685743267641048545011868474501659608430131697510010129264852315026215856478236756675202019823705706343328833283680287780574717616196856271262874189419947398595153926867800779646139182172924046272880667082955470810645549989462728358772057749250145562598805532178884476350771402718294084804861896052695436643463645637160631815703582536114375844153731583685696047227607270970221100159661606122307612332668647684694759398857874277021488973234220423254010453362679038413595099620478114454833960767770071054322550361539918931645493565265024987293914003141716983272950336499015777002139945195574419554299825226498797277442020878377399692451298803391240150240480529934313641302163881643489847793188754362932547702206506927218828291793413283976218436361338344542621863942315083588544928028272681569767355270232030930881588750569860985509760724557667934863048806407964227608301117839694217639935861658921195303338771231515052840594357837658155153983332486436189804378494151815978291651809615769083110223391133176502088763457134059876719466836480184626022892192563327205992212608750064728574334919453777741501653104923628662535350608741485387285966373392457514583480768194634430524320840601763597083669441640108768426780339688592902786768963501406941468615481500331154588924094058615191303443087127160312260211027150930529336999117551273176745162151423981021859928237469644812235231821567137624904603440302313669917221126432358172933155799619807359565010501864690057661708814727557321668431709147540025606385557196679580534805273063071955378404129245821215959714940830411809686197198823542117096857485002121835001431621029211447764538536413697927739171588410457559563423810381987604670173227200237871047739699677264693452375082473932552244908776740047464218030178531018309758819206819962003909844123802868785472823761068703021602745530774258219693904278264061576705720475545329276900992706168178335287740119770663009783485815169702556642338407056604596930749280719040047674606029993808014566048946276767533089953902614503507559804980450329292264808082208385455311124512332673307913082536373393860907112755668835637307183074434018635458243109504851115196177041694162543119216150806846971265528551421921086741332619817590417829637800253207751316789654535356940518887731367772415571414775793288892345619486098432955693391984380793317285394884599333194953386238119068762220454922086909525831060367673986505838345937493428405415994909300046251189642840903274189751050531050497287661642365892142649137042762901426601948369690124888246170774073612246861269502545804020644649132337121921841939726880564017764891382174250860249993893645191373355214315223082042276760103949384207887193262171523956231120868869160733512159067372350915553039734994252669777570221454865933082335279411888924265164437854876449056484510432056685780085821318805879646511617822132821224708884817623772397093138645477456897088891957255295483466519655186751257564784825867966782391892402980466834978058612819492207366873262666681054452609513227287190857573072547058551158278046476750501065573362516484709659966523164211431526921596737562488285753955860193753714812635146602335635600093821677412119378956442030496350469745767779785585347007631811081271880319703046236827810422939915820098607142416606704097964516409485830792209117844624116260347282656137468750799543348247577651704679936289330862975232770330495843986916266336786924469707782411318911315166276240526752870233658573295329537123569625110122422417607023936794775206608925484065382388792294700864923407813054015102474077083235146479670684162327430773435546503552562432328567917473864896132869734720219325484119090211174988425708464593123272732394320112100197685053781025909686733873329782437098838850318280544249475523914760043297885252865402313170320815490884480616789726280967484930695581836345857689641186718529590968457414343462834274042888491898864498435622601781745926516186789409637476463770486163868612183958523667849420574580385275470267346054766267973483227449293794523514491307608799101149666947971319845094160347300080414799969144257758578830745733778419365940994226194478977043172008134572396271154178348679518448568468249259600210253820440776718241833419236776223689500642046251258868755900036225998679432008050941049998331405413132981215288570197025796544672776908099528887446360231457928742728502286571339478000975876331173949164322444614874470439574344979502972152885400625089616946787946304072535431703094060050944561057217524549405744758607424871094917780017408811461534585770737381552354797364923478507872712786847266197926432036778564151349145672425007061792073807306323991639591334906201711399331741985200467659815638995652235325371405519757867363736749877428341861201734761320476628312513115983014375507419238362054428143035446741031047928944531766485584032605495562292757421252136139527317001530836558387433076767602183239525777507139148480641339115026562420476403168203497038621276183079041864515953131939879889065097603543331469303548048631656785733620662588951349784879013613749292490294952639460617746713618292475019334730706185052062864651521427696855999635995629302576416445617252213934548507352624818995649123799944635940675346621366695567806961363812411661029760027846698142288996878668775130048855788542538448725592828116958501661872610912657612878760537733711147510077921776790852947247339121852051976462612649955789975279157143941163590575779963146950220326659940140050219591877288212038456186916767679319538643652759445871090320556935077386640503233817211181749938355665161122085923006693258799767378878689103778003086038546781161258354439691980692384547468360032190834566551684891191957314566622553998466810926751429679891011297270668518364218789947415183817756725580453382366834959973292980717965266896490419180839206692771886578916579668347908350807459639105227327966138122161045480321406530292472822652689415467197378713025275483345413840674621322894506925027639399485701205286408898827512435699927824301188772415605469336811400093451604513860468818911767213353968089256393490755479186833877517195928924781064263832062419679541271350082968895628051607921596571308255894142752994192160899479362659325912837510653865340703850867528570618030487370566489965188143137591441963109259472044589433557372334909959430072281490612347770751251506917288301477346536404863717649081444797553576063992280366578905934680654500539089035182204567329482802469539091665146878590998676221171593142528745082601983076362403033573729865551951909680252456084167883396300323092750555343066477806032168902126177571255695265239011316907128180254945021983078926281060409393451560830281286205046157742135565684716666822476096840820610383546186430762004959442589453514878381784331195468729468653649306255851874472494295588126249135986890319703397448695766505604419497463892548718822889930605177470659722665484548961248063003182449704460238386607370040105432096936374335638862079357889612020278617545288116864007561672863760335878332375985032257078736520035213709847447997782118519101694255949128963965765089101208761831503466307568894495576529454933901733028479330072725897586507456805923786192103007097269174288975093916619448833498683383831450321880428950876553453231349293968153084706341352828374106447114201976344052572056894980243073086588510551426828407290164905752929564190676471206039627975962566212654194535734985887107716056936336998459841649665481840004776825401249363359073354048905016073404464883855158883034191862578570444171230010822127905073934004883999564159083670448336829899087836495403781814315476572156320918181293419985155916911282928942731043826128203175913757986444194583110259650758760789926100265590336768377777110770103768750800254547296925414857054074678082185985569654525935559873598375355596736549000834823585529716523205734481209831465381864106067178684291043727999360783344554662694824258156546849077282594685050023570495443217111293790803335930161908472856625451001499145955555966634104938210942163671624169931538873132987219520743285329976384004466440904548398635322652523987511806825297203088162943880363407195817854267578379768624042194664398766350331099951761248430795788049586826688180071787225854290914986991661102309606218542026786998593569663842091557602193338496291961919057376905108434671476457619317979904696495933191576456355497168681238635301101073858101611485487474087938928817429775511388389748838532040050106588530443735868667905907882405978205047946136209745424072809555775670763720540014347124128839191765037238957074711239644802517213737449906602313705701548800193410573511114610148853753960815496274545967692704192807688274657712246686886770190871235261728675453576110164022765881471746951166465199459103301660824321323548856067818895063405605750083572241047277300766222023581034617986847455687593840076422257907525006680954318393552291679955570085820734178627488611488510812991296663268750585780720781094971499649764057979759249189192591190844506325098866144714353165657534340573424237226626536032854211375422173368089454651943891158587486856890608978112409039408470332096119279532779132121827163485500440624985572226790144886006169212269290161606448815297672749456237885532445563362180276512951076663885429757066578381954459240842600653689301079317856432862303029677990241945810125589310990697033813445241509556082880821787742936903526898160731529955323830762165830172208372264476334568740050356924991433864533539050602196523219141846179553803208874165403514352092266545037278848370692422589567245428320727858611595038596778063543933657535197492012057333986878962969920429249018111011282443793470568870629552824689870030975333718834513149136826833920737545288464343391982064572288365300640757718521771654816006653147071306293759715541969135635414683988583298792443002302909668585200357879248006572144733244005909435748835169689181217071158465395173312671797719351221711579221825595857202695812837593414110086991310503640801214637600940639603958629454860652683371700750678857157201052675818549896339472740507041097030948191618739839772737581925504358238519262890056927438782065088400819719473575388407458056494106253692916138271695811060071789494030420792284912584944504263082353298428896511697663003252230122057919629978526767252610168373282610728490238661680783350178227224613186327859796824218303164363501380250738786390785344698699237047905384745054981059920000904898788340428325836188973014101300968953932487086040347192525966539236289947042100477683634704150639444503207056094677418688060577668126233869430125288655207134899742278752719921559385114069703282971046066956301061403217229277509701592195720564199212264518011988735660209850196514679391849516844689873899136269578548702497878368642869626659924008148677291975160763664495663155046349686372124379956761331251501022639421419942477369948419972729364506090130338001086716060203653304023137214712427008983196330024385451453851605273787315713583500828150114550239955265698276116516448342564841034806300438005349049242560740338848879678295052392642076673673084661674730461936636135020477803184340465296535368638475999379240427329070406943442132281580536324653688974579020042329593335697776143225859577896600949536421917916268271914883734561118149539797412683685625930672462398076625781724676063306890926335701432420656456061341560293921422133224492041823927523393763751709388785859059354377283441757775297407550066877357033505204628147369726154048676889658964180424387618029047465460935592321544817221755834409630956957690222238810632019954946976646163810185139323714341743619493034861820955849157474903510294559031295888384401678917352294655657961541576056793690016564485740246727518246874529651227181467890445653073730510627391066130006614853095993365659778591061825435493000057726279939866760829390618507420203195290761694772682446381604629978000881986093833928011835188893877704641616236527403709776649440676074871027931686810642051311822103987093828757433645807103454921668168549884883654400511296736513672349866884880355039732361227604488649227663070079277198659946379954419170368784530909581290493843545709299776770846178500706221281853555190806027745574458306814810320433986642907336992485779030778862581869800741732588801560850849732517103084582222771701715687847278420132845808949667667218047375433277171468373828675660490275600665813973765525575062166394772063550258830585584554539341508491188137958797508669452341323324242531436986184512325966786860709519236542530220290682984032817255995800357449684951392601917128508759415082696083796603075119850006648872843376318565836368023870681139662525150790338336478607806615651422785001808063313452084918319767818655119954385922950381368769312259982271984613362356320920403604178956309400188661451281023163133588974482404765145436533973391042464897462614192132865961542013312771873271644425051565078622418771354704024816289697483952339486968173919472188597751361975124692475158461341739486125023885765785094341739982680053790467396800668936577792096075902952121872968385073155377352592342342993703605067603991680628483620967425397705505661715303934659471633243662648631002010674166750470971076445752194060033107062707665128156943268038237061868282443156446117228026991197816304011269731244265131952658475205724221168019617622239396446168306777347337726741679653449890489336541795888974399573329019950361262212302393475378659599084000038673178736094469830317256807042831417004906190431018165121136168318984470041194531759723962094879079284342297266274792625476876360231667703962309637381942530450148111615215440869011440735595412751963686022506813321310399604768627393045807391118604076514754829331610218463119779402103259672963757912111925955192681577618742584003847715336929856329195407060874554413077099084598510749514301207723608791953759901053600325757457034055586421095226382034407521738240245661497054740012452416220312256093354084189226376523262985018633248855957591236185327678117535585614985658315815805767445548652225239988650150021243895225226217662683623400066442033558830697317937089401188926296993255240410222128676558286172139301014143890971887383761607925487109341572778457363997242739646417936556489287779601057421192399347024773956224623228867153205491304441269578050850740192251888969239865778445825427245515833481429712499227420360859359737653854037642826465726007151193999955249823898509952844821492588459488320243822427532784896896683692639181412923895252565075035669157259584700063101604625974404309919643940783921099361109514836318538364696432823626592512711588328134651618470082410803781218847014864209720910070965829322135894544800449134380441744692602917645136113432776803544663018685358352467853211979734519597251848257537807894253712462051338709972181598956774612172320965134169434835728055158942538788497515845314525932916609155128755423754293679103979994145015177631878251118968987138620058772960419329495829880061481841140708482836899359535367386672023134728087447216301609470508607577876030233589282053221997910796570313336840967626354989245433665297149872388049843578239791819397003335663670288169391891786788320568423977307905571148958705493940002350892456841630564138091406943340799255167914544406383100397596588908039961988746042190489528072197973911931703732875068750751226406378597816827938593093808727914957438763469193538886717099607078244046994652454659706377167335230693481506308891688836112880973589485056356692097278627404958096027444024625555166305261131110999768930000104004817609199865841885059603175356499650931029215683881248937377141538843885536988941057643751110296327034355645526269949837502018729895815828880117342721663979164526031508762470964606712619605380059385163688223827354048487588352536535238105530788003989491683165190454203378403364887575790294061780405653969997215751272517897484304952842760052628054462623812607009907732983988619309752580486903127996278012337612959463838834652292018369409647539180871474565830020484378817103061248701060261401123179030581934617969415277858511572742029038676851354287575618843816149451727642096188569477555610500786671875036494603181060250381676798990230740066423507071376533426109503311466569786437245015615078753973530677750810154918935448684427297813294183967733540139150591573789715265561361171717211315890097433650367150974066924197454995766039929686643781363787453505581217184720514312172475923753719916980964536069028440212799998045954854759084029878862812919280794837880800962890054127142594476551055081366846515960224156826271294542186731149970683443350099911881422791436084026349800964322264208099022723391436818765684811607154348868065275825796840285389476110336308503702106165409541829047245302462916100311261545872749298387945672251486592330327566260218120109102969328300049170174802309169131833817783924296138622265469964685718476129481821938804709614169226170260699191325121084967601746462337956798717361965827104604483978479583291110688522852444098301790942376891510170711278143580398923449180121105827452463935429009589303787776829129762296388585122103886992754141064335200327176508260745215440742180675353253709007392338693780256156067777429577124678299641382087186986615402630316276962420580210569412621862510630305201937795161727235971244926034086027769632369695669817334792452261576914694320975092112981166116290212257113698358600824742440293610303060388456938131259299640701307617797701314122421303884668488237559642936042011767188684215015297852623450024626837678016802125530736673592786873101217875083407102218778728339294859350173906444838691562774473672237113753516233565509083362631415122843791952565234032696264846260462959506981154162696748965238609595678416247896882106673335772970652864260627671974054511249471636404710769096297907818395044439940547953422096934830949122803901376048467295105291661905543211000783284792294537702068530928900271333162653002777360774982287342716292198211280145502645500789504520753693383665660319092415840934167381883432369105963251010237198890522485333500074443628026520178841939799167632036772433720409018201378007839363280407227662369687409570087780604514277367161555085033114339621519513058430604700957001631561857433750564282625405624382226886069875548361092976121706303402706542281557275378049711583380824721325663316263043048095356716057699813372265206374516175123470559156901211750616500976848286574703212041036306321477798404713758983589344327858226008924198439390182406842623438848183545121933323563035936313143565361449279033076270908454518301115406139279862268130353328394309320344535428705011208447645667657228313863148349986251345523422789739054631908529585123556048357695228442113930986014259592232437323126720387440931531848629274072731335620460970365321605386696154627607009842868212197906531932235736072283484457185712467518719490255781285986220678864185750609690245197025867166137286030003226488162034061117432621136798435756769733526011186394927000912085291886651545684468916749184839113115755738164078411027500981681264877396305887012786513562047833477163929348710333854387155999322755663303717504008429511332756978935866145572669986323100193108833099613153056026918931103746431844309610594030244153580852524846732545597790835215678164109702434482390879822495952464801989531637912440194226705337275021240977889056863755351334684362852020175357377023092854955244533891812871308843448067179328442323673047473149910099193831661593142678216558572024813121520974232961305516670350854680601287098027818177515120859412951719197266442949731728683076359252485500622068563313073900710717141103128618312126782472800528268987306824780035790845432578461015154008802362189586033911885538639059464706839678576745055704754533104678939275700527636267243312844513298659611708301318627002097285780456972994345951324995080423282782516606808344517628252399369669386032630215072957292081844425527037299994465657581995649369595545114809677048112422313627994688725480720215989016516204241987235653346135088536185529560962710825381285155878605108156750210666697722703152289252618376758033298943560740384687601641037257270703048866520441364480540859067349239579901604663076153654189548448804685175974087359053082953508176952594933878291704627386424772141021259142596464411409344610758173290253012954563711714470749446826407512915395720943686402147134507908135704720817496460795064325897607723420554049368990450367372879450141367694880893835609849178162295302101361741113672923234792926638778665487179862862493717157033535161248093710534788989542363528485725978732206441125561635554859307063446245942890820769114488785237083488356954093224754019086068345164780017043046223687553114525544317125236769358523806212675890676570504224645432155114651748370024358083215880503101572696123928162484241068023986340610360184361168052524436781163721512217861191165203362117406419183296464529106738990208552894664578835176277121922109158912180882720204096535340919342834167477943425069241938942860827460676377576039412964127147888899700851209221469458458526356514314322089984474484789844990181257256631319414755568533931693895268595037892986799008459303853508647159645655120274552429354271994455609681786913897370614471171860697398091755714660034320752303466110927575817778759001443050159679207962393123778581323778710507720835008998863314334132887974756994624112012543244397259218981416268194431165187016766069869943566517362786982935751543655678061270511435533233662759519951386065049296649618852784206089457182679477778184923870604833267589559325887237658573475572940738808323192143346327795951778206235429683180992322292029794352718668066989882583204410584570139387405809022205160118095281839586038039857016906380362654537284740159289881295332736853931360843283806541560849879488707098676987618439409906508111221218948384122996068680292801150659230288466517184150497800504707189375930775421901590809899403927940552633788369529066821364456494162266085834929738604349064334437367406982228430161571268197251095908144332164849085529712836378989786888338217138664158492141093404456693569396559151278148083427757761285585437298870787695185081130101223216575188702693599902070685366701537858891547492412435966244324044266890177483811121961249083005425992700554178893917104921068608219719088152184350849422177027680694748927535058124462315084851182095488344422355682205772306915649395624613380448098262461098887364606656396978462521402622849792937608606676701750771378716352780829310189668327005086382719777968124011816621924982416168380874899673359885466759228957089008246720296525217212964366102881858927892620207279257812443423213746117685225584102562694835815780259077163766888614427086585014160976755324115785747265904465993486836916864150817431896353057187062199192302272477033684849863152921967790933675977441585557786547955576020850607155369949526475145418390232676484813500543309828351638971261870042603449510591124311819269569515936641070476268646755099020834755993419251985719534432330751541583392293993919575526079536552831879274067079547211363496995966987967257284023069369320008011827694779706372258706021479289128109259929741426049971477366926722947019383264800207879719870851848652173012123175204648234109661813124720376254297745490686089111760616497531530317663052871045576710202651082888346369371017679506973432550212618575671668745429214005002958214012165384342807169489485614966474737091110379425425580839946219773390083062307076339443045430440867796547546067348467721895309569862837395623567158885399434330044409984187621554702283401812450601030334645691121531360234019297692362451164119438602451555226052497598352802678459269781140031762754683360690674184731332858745878628804812534147990203121998917426351879674102976235355859257353868847832072397845816694940309089824711574380475046210050664798084116298809714740147163752222618576255441901026146716431709016996714842933497829074376994151902393828172999035511529044014075556458764750746324185819781262572329477770501924551189816758398443778372214794697149950738293363769308856059062012370306647898507931758827814380195447698538630392726302202094195589595186662047397200393526530206946432911199427306494945530533529881198102526872281254572060714988351746166741685076215102931762409445027219760986338664398504198586580075848688692643576080351324723466672926149589075200039599743654503496646242338401050956966199665140701072992658075973552350387978422566578981650851577819767853960513902795337558060908719814386896954877784892714493050495846230633623544795296224301449970765066335105619818481668540610832783637429274402108400078020118506403418938315108596864414676922681457694485247832348175351291250088489207909677980042914753076868196915242120895359072264159614644026798728515213948692950993432000300989919702706451838352599824091509373129419038994292255628287077112629475049757339747996786281773180247126581562273253074372305723810316710984422420900053726149633116924518572153745123266460106155659414535751365202575240007884400056992768377637286938555449782629437264294327128034877344644339270042349350562399609465013120068968902839759071691986565121893390541880080510538046885547816915441635842583205901220877554849769239053718915354406622217720690146188566164480812399829603942102203628668306866328882918755404938323147919133604380483691390548705781692765773354682049202730386970534819782384561173577585758045513204524264948493456710509394849179631920957434789194612155523072375015529898442421488473435072606829207316632470341662936111005898546084195903524940035954100421755212817268732234950944740698644186896338522816693228955618929636725023436112636123623407037643660030077086554689211097979328961447034130845780974714403851798261432768295653507802883090818551152591612596580513070065808034288837353328672468397047369041404670325313461648795836838722702583709725397048896372504537808502483714466891215975678627516351087866628218507382511427273575880616259289737844834522923305463404536393420859836688477583215758855963115583677843723824850513814531390979476822583233437266308862844909690690591161227650647175907504539489705025775128956108027246618524645727462618429561022851056203099671618773751417223648316308793534667388550662352764674355429702719091614044409176435660204234512389742536137286269214520811689563925996238804672391593178939368190740913937968760619312430685079021724284794275761757649226509014321015608239092944888630806545675389066154889025776289401789368433747922517392717980980259881205293155650483070208151217195478766829520472705613652211839688967182793455352516070866789428381218201514240730644066555669449347927836482105283215100146155236962025966455415892439204180738683637938703286160054776988580043006612303735088060161270434523412737511371914533407034721246251028031174879092423684322142507501158821424882534937152947264836415890854351540498261115460336691245757158448472464550368303912312803344905407631978079136411946552188381931387020694575234448085610522249906853523542630170861044887587649851744905960032667586581730336005735526520704789960112117403740106584178104866023855701754483014650937427638342997162739980340696512433191062985258412348794604896462670900537919501162474655358173916430785490530979861395003932420936571731341904331340778400240561981577824738147238222252338676707017035713490181522480767485303175841050616196325111818785732956231057368480900664801539291951649442873721908862689020605873808764854532427376524518361657565819341045964764890934861397835424731662633663198513820952848783368165994693998754249419481942806968900291826831341777201770940435166523793569544647934667237056632456696677409183666447865717807248840810261595289229327555855271999369251061673002344078887605285872689387120106722667233434501585697180735861801495803900136119887264961262097299546475203419664170315096116331825234164354222981366296138871514821091349711965889078913327298462189829702944727547382159742812138493827299152374373464438250987316733529006279583393355232543061502031482262327688845406697888674685568160977658631224997651847828377438458274680387948378423407497888538339836218479101226610571066781113294845505537229064280068959193725932598910144652392686977069418377200298427923452566190069624904797209988805217860903428589601111273986737545357161770650718068901506236819610651178686903858883552269753591130314396783474091952228135791879971224687216065711867283045155150039846653464156342117081114611499966715552218078101597960943415009654483631131512217615264290322845019226029364285221235677716985413824686344838471271317256512732966393256478572362728927904008483004859126197597287528756832734606650392707292586315034960941259551564911021890232367273275769453354833201904009670361604685296116713684979268337159974996250088773686727870381953561297656913219834405906356837411702651160228841665357951071555721551759815317025453364337565429877615445781467084804233851901133029409176431190955743974070325096734279451122420483901672758474820105993444256417217736825697973339257734950724915572219104743650887041506690643441322097899344449706091918704176731620621383733207080711039707027896400797924858694575388773411908510491210053934406920161007505797359154196473517992936472414341419379993620115772270678506589742907155327166458633050551126324826122784930623415795491871429084575757975980398632541418229364902712814428414038971376895399721424248951458609844190663192211076515179147525683748829034083077767947511737638659233815568599967419629703303840624332812166645280495751805213069265898026842147907189711279954215656563355200551966455058063991458260737665110994138051776692050786851952474915998550822656082686031161589842153589857383103019857701692725521723145629910516580500104881716195156181864468388724179331392394586781482878652788655139068115092680107662753251556095928901465914637549132756923481911220069250063425848161740775460211164301775874863796004247160937697482151484253633724235174324123269992773074174396238166802709626084944422126041235627605564112631832367038821824052369720339563888315360266230550666919934450050597261102097572865617717332881360935052654132168770628781760923892975178754472822156906158148225724317494215859342179578337634715767716463677053299240023167192376588224527207657618118778765414523993279500793811742907162537980974251315091751203153734416788450970050623419114801190161300072866752004183080278432166983742910736054100976313105326862636207664608094023672302429386383533723496056406245329926877123955861073252815115711950268434525140859297797915943336295463364681429454444918334243826614819222930736268976966092270582153913752202935663284971484046132212665986928515746613400348940537900785148855565195145798504876880143950051125268002963478512997947029887410094978951788785434713258871430862150672195894247671438352699039952713620963624645908073072901705919948193309368489364815920597709802461912107485465058299913452128796137549937078830794740095534446221236010665398925510750286790195234681749692785797000922901146941003652773847392993410916795145983846184646399645047502054686298972101434694514229191772412603404468902735772183060508045389973276783340253560181429276846349348349278614976177471233837018648507698704952328875479756033898690983674968983010871339912855644232096156880578248774794219938627694634509583144187378095623318854003350594544888113013637394982665543210207120933585517747170900958196021716301104968872302684317855702224704309434495228726092745181590830830538996162344046807416124019560688104628052071552253912761600281579970559786067961406070677316043861770169124990108995534428702553180123470705556436987242731461629434042187256551090766013833453216269783419928113042325009329458225192654630306102894057993325970508454778698396160423819719165136309850243592582484866514596818836729743225007273433027865245658437633849084440547827438468300563160813872486069862453483287782791628134495306734757904337573305142572799205199074868735068737717538658982062467176467914072086994579487746139179549561800209872480881828315017738740054364751360809712180792005220366024004263747418796446050494757443007066610083211162751433452125210937699440691289573303262376811967223789969306850562815902800797563613693094629409654150815097751446465565202175144507494889942416210916158377512936336708655685133931889715073455529113796246736877086758688683547471309682350171703200316799723974099212012962985471235858715297827231804111834226116389981290960919466607321973627282561707063895946418674980410799069384313896513043313200519587959856065678592268938499583412170116213833252675009120011100348863493366702800639147535742459730911693552630455313838306571950020564847086729852619765248892272976961783628575692143168116718262864624596492957880769948671504482034416101979418291400818661235182868072848833399294553220895175825379754600123668220372749911605144930144991056272423231779516795349804534375865610217914325618171321505298771508705540078899682721050555364609608437328058148373589480471621597356038841352743060037681838062581365874271056407012654560203151234239884792314614598730004345412038749607193591460774922035199312474640527246777881931016662038921870165546598873250945201893560554873520869816422878745802216866219288908891370698207806753102134925700797492431609152478230347593955222824278484415157279556355837103062637557317733491945874953542631702478068021788194066468563665632466216633322839136985791141426124594588052339667245503575968869117937846771502048618049942451551545068688281663649526495060178417508837783896344130524948364061756180837075028965544542558676665341360971500476175530883948180391420657935811671789143373388253768797563581708925198203235002127467399116083368321989099123593467811025939486330671122265849147656070630188148030146108800588362768929752039456310672956218626012033589776289462121583145698889500849353043403399545322162421754767138280910946018735907892472939837170303731738013968058897207127342560097961797670428932856526067082387648319288022786505980987578171386678321230040584979656831861176065592679801069194692790533633904479174322151838689726387031127591025448347828902655868943166207573139155855550549169631160002504905611787247262148577724057591686440168491896057112565422996870713816007403160945252223164099394267187844885834837165602863634088032529494372314236567369953661324573136465561011732239578469130283408931329981925949266538752507647097538162267261196576756708288557975855583905023694321990903004701690955215691145153192887366970733138656683193900598338028102944398670203413738245055130374680277557305259973671899692530168370413744506577323792052545985736759234847885556384749124592742340287279856100047649707854933760611538307496015742768526415083505056118111427057637867354999339460635538873126821116150802055648816422930222251923613721579173933839910564298266059232414324747234204200638441486711505231980052175561904227391544775376483582941572658357021959722035172503460906150126133892811390801930238839870372218584570976251409998549916993205115523864705383224808088580595462266410430373338980825670914855481507754525740853573477592044632563836630895735618587059594783028790178631447657188032621613698983645928925845488673544039920154441266400418509361764938080627106857728336078965359826006020125482016983471036012698606848248765339946391510089332920262900659288601817815806284996488035092157187384480797368953881039160191234201132779674822743527000992298854939472878689968515210663615185029944982691128814819053559840812435504138431274393475727594184537610742586911678977499595023013109373974861073773854557065141470602127877540135096212719211496291317028907790810293858246000321926352586552406825898231655857053832260510450999905073476904158944451037009164387438402606020078585936234089027066474138059067403822114361206096015060699908300752525540617137738051327647498015564549043785596086324254152006068743044492164327534399347435625520410557128082362137372963553046326647606378026101049677527230541508452128857444211752746269928720586530770273352787405542785600656429814570256811418727119501785140507842334351567718902628013983007334567630009080822067582267948233634384716408227076449083011618030879370849865307017356236608851966602123447664319067835041594845911703437262042544406590300949059831127549162630621163750282420523095271144643834548256204182416448317451552354026888604363280297412805955096182866227047775519523424270678195681346362761620566367264915187294127553095778399904491568528107963968197572999812402010765130454195536619821906964114181235705183525121596555616079674186782555918729089143735566180885059430300663280496054023062050126326208918206132697623313101244633259021174355085378948431909533149046156095674878358416946332949407597710663380170894194743712450640693500626056877869715430826402589679208135230969362117414381312841758176964395203890237937814856873244837581191335095684352378005534140873684092445514943638404218022394747183718847978947080932374201563839333087931296873571704954614681692117242010447808394089405745791365643970094768921146083863054187902312108198128524741580896919051875498571895797137238472865218534258348640103878212244587241481104441200368928585731188280119571505122525364925307067506994788676124825500475376815594972759044262582994666088885361019577560033933276774872574193749834122780648481795692432083473398338751135976257352893863677923647896548428959372425764164630796959095943692914143982267632811828873212628173287245593732886665071851938001762637877716424606378118304044045352905447851818751891211366149512199424821275112070020105789513489603940493246260478365335225377135396699507291791047895131724641613138532644843641139829416083362198644532093524972340463018223011485325056097249705241512034099560295336604056389167811136493182499635096227238408805452041378729223149699572395161067501786137192948493527396968272658247403521436362464551081973045050199309406019380113264788377330295893848240813046055230376182331587126118554745149011182030862044439503057220430058496171329968964664711794201515694663532155348458883866661196487716481120337648597854234799448588804994477930951366918961377036244268525749148954493392673683815951961529953620848031663609401750261885315236480389712132535687371479459378211551451804146864076418976346582222882104700519658753774006374061096554063575183037627881487244253923039299550166344558493752241744819528408319301195360155137850591998993235829527189711355686627210512985162133120023682654966872827050037302501157322085031775948305836264249748941285003849741788685660138394308461090737127195513771807661433930179014226506834595914559909572216625325321986447622281605036776044418858060106678038311494011272018576269355260708985811018432313051405798520284126900272486223497056488114117302199301227708958565194604269261476193889475591880427901827083145639194041096337805952838507758069211850919263631917641838197268687594305965053745368903413104767925573319682127784046813928801029217556862095432079765005811067980520814597766326653746087438582498973131192040628352040398390512624455623078098555608690596320719574308923988424223883757842026219257168688066839966518998768181700046550327547879194131508476451248915075908814347168451234640766794795666112751042955476094158626398163781745689727220330156604416515573705041432798259543315427099229662409228609243093919896320003263931066728561210409618935591220929776658385639862760393915598652998664173953332081012972495736885625957430816970548410507470488539010746308656363567338445975802361477679737058041262808995883124141148409634823105905841203671777754460175111740476699048373596726009087834809555816778101921203560910878940034160132052253537705827834299004242538586701896022531366461969008445635898071471521691178282792497067848066309395344360555733186467784431765641344882099813475405213717684586068849851662490469621259580896281416402381628674621292854604114542479246342939080909576995620077327826461039712499679935792825098562417326153713201410790944505262343640225532629987060967855154512613861431424147077035403210669352757494480609751181603862113247739827599004535360692439557458299554595430518643741223427707475683599162244680371235321763837767485903779917406656127319834636845214018814459637018112252487887952076361077845155448134249129229924085800832984985301987543580769271117358128571702876601617085319346618076619601044672302606224198840530165602408465727720661547038088561627596613635213045135173139440024656811263169416306702239141661488722404779974159954656822777929551724983816335254865891256832025897861502408976695210579154797184876608142176086961376052480854030654946377017698884200579466873919525053108808299544919975951072809656311261113332813373743790170368520629209924789854137442828356488870515486472881540276469943516865400063597991260475144582359829297201860674579981629665767992819940033362607432460318647853757996407930911161640564976555272428277249474356728366864893596370326306424755455676686883580520339997616471752711596349965946948150705738628332157007835940541205373374047282707423072772059360467026590438914933916662622431995953191538118835264482318346147516532913490278966353446296042930039514095443880592625163155721720224052365305171541984144181943275492967015069877136975802421826590526519230878068417220080242859812046304491260809809454419714500566538326652928041478677949034930892419748704239792161511347176865149110593421786146074756357881063399946924525551096714403022950474750108692315047750182722251845920649679144820156957086933585064532145744301507570367886691899701368847361547411105893365097402288235956062233449099639963420554802657675296375073231679427323031747718012076798961154943150354644934507624152476275333798698656826007327117089168155298266920906908412527955856680483887114051678640987841320883957601812689693418412644858948684231404407836821507378870922979779887385892631843477081108483791738907122848018109516828485625022625230646372940082653525337128504621907683960898280607897582599737537246370425143597658620360692848812640358358602326963437224763958972350348711714295159139826064451521629901858706606592228591492621418054132371255349270507001046483639328149795037767183576235608161004970334545636518506949935503412266213856175322138481241996116116299632013530574140500356626774089093411984362389407619711853597044740926223136518027371755111299101945968849462167886941312728805534111689818039213764943956230701323913214986551136379316476606868593184767689211153447402850900676318105893175515114218862474668537270175184777991496030535470772839742766325930858562755916255808860925093163717018035407009958210666216172147889643603188161954185779658409931606151760424290403983788494877954522127744682402637344552888110611673697169149589992715085408766763386887199591720498397330973499127769742620632481601001475233847640429917631916560785937479857331598376522311012499952469577493843505737427645091992113865633627796716778642559072013126029816364643941076517137663636842634121179205900553796335197681975092179658967510377174647901226255941351444663635254922146137769714553016543317097387117015870573179607590517281584071662944743183943379615956034979373158790639022410266924533643066837211794623618309536253612655626475906752486672402859972351477211869077308451085712642016536636879709006631763555396043565371012948578839581862923675082952072482200805789605216948742228555010436856504876436209606489184712742633093337425215492596007247928784123904655188831565222999574907026588089662872748567339454106280393612896324803651285069394551187306592121922403928695980552459314522108664757950140969298851542547194427296285441144313012929806708445933945991396567382553984594524997363966678409144783168319375579144899149133085430627843422196182667860518575154890461473407218154466899478208654552739729416406599107339373541397674694137443341124986863140731162422806504711245869229161637540171371564093807227717635253341029209925681861036406391163756132803472633952766902721398526608093681292357018436349730676899756169045910869254750925527806709353494367009970975444500349289107582553061249551557472657988621931652391181272591560890885980354333965891018510125163046920726928559548000533533307544735680070649491682695145637419147778947520544553029445945436555028958851442467570106338727411642046759356784175143723296361921590184261534987559000544071514030181250196056921925326479718865648750177505497364442828759305590132184045960246000995584787051215571149137720727919574830965386522286575475885324294544611045792647531933981143711125274751909612012007126834160654862976527802727400518414048691028592710344273364861810914811163847273580335536111048998913159923602029577861791368569270606932959764735091336397850597935108751795058593199805413701118238164936289006066812364140483974893500366399725967767004627856321913419420427783817825853980690753573871659915134109084046933033151840633280262844864933529353710872537612369081918489562465222616308945896400020671171307967194018384397655518428209059405491550020604444534171009129638644965479564253963000076397999001681586209090168565534603981663140666342049987251634984421040571957927897777893116093787495443070097594258534445139621961581213519845050536820977316107910263225157661311305501361216035541803514600288421858194412014103623586126419586906540623686234270241488055952113981192720344342245190921116969780385170299315521285597351923571698060043900940391415954544147681269923110431101067626362042638756686849674406286612420520858155147774668832410381467209203381570971679562772106036646684791820546818989511313859992109318858062700311316371993072423894655791790253208182335431700095021568094754504047195791301479901432496935849850312239806134878062435157539229280583147912960877453118212737745823509681472065945993622731133432840145274142795306389209720538956823890150889865516010641688995405628492354155275648672461338945941795782068875526366166985053175113186803685258535161446325575446384904791623118694578931408431138293040604796291393531543166772399483147240840193939676297535341777519376711047095539923610701764853868124480509315708263734744636089939527155425305330792045392933598429390389537109473569991837236037062709297776319304575483661157043543067153588771645402509542016955898735414012312415092066829956642886997702574329212855276047682616870288895933657410064916619588856349141173832523903843291635818154788313776410431245142071948250129720121150048948135858841699860844618289244571079092334874913263453524702344854948060654660435636690536364796544153710741329045504222929188440757597131082762343686202980338829586769501228967904681220349105722669885993510360160536719591192266921383724781238126173559705856898688512832084769366499812878122522250974447581844259253129382065734950171762725048594696995718527750319447176150056961890828008109938140071350052072702701141468164254337498193760737188371971365327897211680893789623923759603600792711026773600222948007511358921944455203831810685963761370308449173317293935099662064609272175203868831927411142481956149708268570054583066010524389313369861152080402616639548553748853360719722516625202067767211243977923555184016189881837166431452899459404390663801641596491188147053413933709438616537621626767503467788589827538170984996727086796657118318589553942211973075423957047236289411573685910919797184692561290011043291688530410826606611816190216487214445917974211448489273629973211964066415050099088864862590281079618845482008335325633564125998198587638455609347502251665158786345070418201471926742040069190441455772838024326640674451212795197763290646045891577029860978973514875438247831390086352392697001854545841331670627097236316771733927117679689406401585445497891099360245383389862997105319251722334620092358207716070156554336702543634641523753404204927771099462781253612564384848997220275215759181590783977924214356583706900238696225705969408692231707357326784956213149874514248506490264261172174330730909386128479614925292780035808457986321477442894363912806197682809565397674787271739312130518888574490330235869832182684573346560592051516594965776247184167920022903442758432323484682105580618994857460756905801748608742767014673510431610155298658860202410593656383139589800671545344758999399783063001565947503775790171912147512427975825475676888299133950408575577640205676707411318892721755500712037658655074756476422774547179771195806192708352315714620560262706290856629257872555646720500925769032796281247773259834159426313025810682110131401531760301582531485416115819325479574286463434593400031156325875951749066497852604540678795976762621486388447048734205011222827126330238524709880939889181700938012619057515843940711062575984196133143028116488184573690241701679882962508303930989467680369009550091390866138275190162685632547807156479275689156361342749432347852482897883326777018903258982658958092143683398342973486216155391389945062377742284926548093569187312491081067132789042733885989108084157853765101914068794352802859867249520014906073592135181379900103542444283088748580555274353407030501893744551637872843750256673754063738535302186417967818752972864979366758955575055702346033306800112899170020331334042252042237576959030019982202545747902079748728698283489262929277295205019916852669847757567027096537818918961683050570611808821338193104657604752475049282928022767474967622963083525621879597646903839255392680075209359418537255948203731697596478809304758520747617188725448702527328119787613262376307931353519810344638399976097153662113964226842615275660575428606265344625991735843472177765167529520307743409466571768976100447384440538648794696021970814215829545669730131884373988772073603756579700841855015713367991553861655421822441624738514908877614508243518431620284495668506572637429418757175244986963768975829238759050571151172307696685514962382913810953924330188178888708103492642136130921605233000429806418140865222008256564795989964324402473730020995822112437058927308523444853415955823548798556472797175283565358836180232189705412225072027048576098726152655776486690449712696608795810240410610106936221295870116862312879065395211686854474620287017340583179571124766973898020808409260165817199437495022064559677266484897863832417451295590975735785198216610178794896591418837435739656115240307394191115229240086838587398825136014491881016035963756829416036284549564070891181668712333157027252417934267123199278427293846762847723875435990111905020596584645049654494701474584940427727748130059640858195109957285900546153134374571524126293323039645213813981500520026055852454149577217280036806530666372684157162052443160948757331765061561583491005772686100734020069785079137168788614653938112028811273278213493868802642254829962096511794160849716398579108736611390201258863935899681578894796670296134844367495042327167384272446093948757077774650105996862501359668649103454708982089565716411480973499202560654362110718044494233671976280719158097981645382526262332514893336534678546905230760570122431721373077549361501558743791522731552800321522708963119015864876200071847917942632645794693128828879910527641631641572329409785711069146185054977213489480849753751053465844748066526098926239802693620757047862965414767018844047643374003597730184667142390015932530190164944315232611861240696268990099695855967974238351086930362126162019711888453492411235458526581661130094000893920446678263903000810606060277136612919606561038940288873204552256273808379184948151297261076144399880943365116821964422236261466728165172165096672154217251112093992133424729887480787318171453017292827080130128255641153164489489742128555260429047756317088717422723210893480954148392687652519545581332070056626358102686547635110334257159042516703978650078474576075804817574738700556138195034986697685159203283293102492628383185752651678081203932580140146805833042716496865275688756557174676632715872296593484930352846714123375501174573639207069185601852047353293741341954561943530399019020362213821730986504665954049634299847060529113796019095167053526306743767071168756105207689826296471870283142058144465146471085118362191114812333848895363632590112158436032178240246438034281749650082873660793149495939908998590415107249536103687706717598458103555074181625079377486967380350055412617852976883268313708923279514622752140566004676989561412165475379336898984760866281673733906830697392001405133826970943936210414257754804422297892761130893832289527397443615294766797705482117982861638322793734751335246271783391972799946834564448328488286737120687265952136464250574732516494135298103926941441398867517865824181133669388631357020797083286689179355179326580256635946299283325860550108250916337256725584337594741877131026031933243934084859049246554308923494879207319973761202834669525562461484942055773351098582832991754794791759465833692358428721052894639816103020830553072667116646497769343495087019125033772581223417875649126042497132848424386603369878087161649783893651529637578254098534937702707423333460846566320094005249722915095362034817748199205495423744432381129363741423255780225923675652034003408675696317692838102829434822127935954437543754036650627085090997061998107361990915305949945282035182261399146150222146406386043339333689291246309971563536208449767560522821905907854263098726363746794766360644850842265978347506528274467930841612409252392269903094913780058293045679802927821364404266725498747932293766987230475997373193201240655951360228818468365423413760349608005826300703345283370184829260745296757329846996437324631899829962755223655122762411345844668233763672348402881107410283484177056461975781224890792404840826166850008307405454919068284469628371985658220286423822461415091830580598138936107091946801161657031404287492436910237347894290227675257137681040855000070845659912666326735044643538127707771873598540558839314445945930095995021069486020348746171346036831559273699813466588240477483090463216401105650742844446382327665293916888762963256718019123586191314137404605018777405021388086675368353499078268081103842463779364040068239713485347307465557989222708981715130278965230278451481292067331282522629479587478731425536086710977536351287672272077739961263900778909442898903308825128667383416026398130036648562557747681176867926310324306288589202929418418202505603703824749385936507377106842518434048404285304328357577743142852802729278667033087268511804346257783731147183252547954927064593850834007043220266478426912944243345608674191710633556339677133730050727837452689479492579995310875996524605359671889954104801924121641458063860390553666198553948220913887399483032910594348542765532064473299867805637877651412444334229765992038849076898947467884484283361727450758238923422829939252020608685922210096257993229899556544975159341698538491145589007932093634927645666832416618296106169219428306991635579040283734419682220850483194595888341749656267276663306827638367165638153165138871093037000325002616151122683096303894603338221301941936339177263219434045628209477432964238340788991937058499044820682853068094136612871322574549420792048747005701860361830394701171641711667556517899289242933710879787081424381342809847902053304995499656575148537262594092060782640268615397852341742646583461035487222981933172997806442004926366065476910909717372721553001446704341371446721494014658575705205291125326742824725652466773127555099268721581415315547996903610933596655687879895324192692955945922758867744667981813736413248261731218827615571036807056706956589331491709775611535879554586293067096378600490776348105216669491091233431344558902244854670590842912650968679295577604065504769882195769532752968932416145147517854738290435154130626855156713051980747299669434042966317610919573192253974955934529533589055860158971090244513114697423834100774759243739080908553220205070528889875434317536107716451418124949722543693584896822500918954462331467881352178498903845426082346981933059298674616572606850882324771646995973696119522855666461352332343498136776225063697869737928470938765773459151872089983088082304006724158880195837567815772867780235944667191293283791644958432627461104194840052718256693717763260864154828326970290726996437388809593887797424577440243116663576119197414861084024730018195130551097825967971953430612474911174304608078443876261038600449070224420641297588113140865676551564182765238698530837917158898016902546300528603752307349194283228327386195490869260557945543551289654729211664547052072003372479157068227688489029181862251744724639198091933320045559232564298956769102080364933975996325773568652659567729489630392075395440665575246135964090704704641834916699396121474988367837870761451060678452171808047535844549256359910922578176256980465955497306071915931729534731934308445213762354268365487684204168936063616720654265183943969431547976639511837871711440908577849017256855238806040880842249289401166439790691249215757411293413885700186666664965977118451989299662936266280469730074532595041514777451779092229421344001756938172328752454640754572569477755688148923317523364937139378033520414316348808157232488935627265967626362942783712669312057221973206246287303810090429740885750319196395488988170904111696344715532945415459141547698864690297769688653138085655730435838602486337715538980442160258500042501893414880658797371853731683778742516341295809661580354961414302427513697871777110750374246838596540729828364577601347539478273587482425276219440382428529928166961573110984434142794020333861993256925963115961628996144162924178909860327658479453556046501729951704974327095066833936183853729351068787320277154673651511826004643271714434843165272766882179830693678010336024741873822597000828893162247354541880039668245760013050018155579122198276027657814934551602702445243948804753764268418032848511757826354113112607615648611806953656274715243629332525207295526407231913835087370261379294293309982156831269850703470614426205959783296798678872720728165203122479235000855536617137739459018157728163544944978858805255005121521377238243095423594144531666909868860227428026915879587988440327007233144646313561377292626632979162929441819346473201971721073578025718854030217284240331932003045579306276767995955758204468441405523585855927801956610811531858097947911413604413965148608974151582191506905932733664241058560066194875602314646202036636179580588304600760652179737683693421604073115371418415038685040947030912814930774477985381813147463843589229727332705341311494194570041127605408921874660242153180419888218223547629207692658342454838320129615724077823468450123489127678278695029119554482599854546592127528961759655301459620151015991745108538698125423682774316041436732123727685481971985844947321506363723059144987823505775103593463618934509676126986440050225119096864321449793317168399430618627347833364256315757216482040966333349479503343600976146152884592254476623204097939589414020255371323526660479262107299334618326893403342309174551555799059013509471979034588732504531820610029365085687865422065885211420600046676508529206565962385666629031606904239215395317777282581891387354598295301636151839014116494433721507492912668038751113793284315149405501800406045745767400070657811090388548424776158027241680159264255900647032544613561901722030728216409599141728281943962636205503272643443406237696430779775722567996410459213216560252584392917289559118515891694753487298663271382174143056314993910446685319270938423957643749679676753494058845902815661512219239253493453916882827110399029693218167630840985121812002863769245757189592997333683764905205575237706913110280580788200421165891284377045102802489432007320102689780694226771312737233431865139940039153712803622013306583855110772344550232196669701878213560082886606784950595020986878538535542040795916184849337575761954986089197390080187359701605411694000764440164668237192472985339592784193223893935846415953353211958901552182577366553772885084741580914366995177345612146910538491096543472424281728383982482417060236027132857408327897964971393406333057413921400823876713505170143160788168081062246321291352006000794125534614817651334017058458221431967914682769623098978798841696554699780188727951192229752887969650229397226164157423168241225474410341317855145744589042908659291445782027763870625008275843313149478048762868765054061723282273116005143197658114557530149637150402227766513165911499317762986367555070153566940145337575000859898808953921403198733738915146844977172644260984153690824053511336918194685061331611837450989562074938258392737659794172972209319412101706651856685672283047796476120110769398541313024885232721910772008882584280075280445252429762699182102553972331324573256200865174472917902200567530537751047193992258421533829167357752609652235535214104903640780382988533397921286291770922846693178516820063933837132170672516050411687408488364770627190777958553245260185753223979024817137096433299532148132613798290061687257425707886552109757569247546182404051519518947901457457207297936268349279346035740334062518548292936853212632236408162234632209253299219888839661208866071715685015683613498980080784151007950933338261957064880803073632711797464498883649003041901701769455989534269381711800701088049998000786589526257845638336271003026220054360629241202702669195077739357645288882902764732972216061104856585750706407515878147287634162422030666166089877307964477617511093617038285632054999714256399714599520520949590597485646248188250787777814167954662619838114207371014970466217142586547107876898101069374054953710727135570819865349542150748764940215319106148594057274421955877996014261401759609550654890424098352164918203302507344201005661399057336146358054192341616796652604678835439620255989501071777886533247232695521681089636575107679638901253515880604854088832277417419336837876652605725194249228329381941834100061668866411753460846306154598495746769385643774957532571376170816184879659566840341218921016900284153199969685251224504566850831331054037763814675553296727374956244690682477525038133923350615447199605890478322241206021333151170076657233822285836591772243116186585223737735795598221551987179962995863601850927033916391611095414724790476009720754861920097270243570966663734682083582096084957245807913733837199569990456166178960380781332986381235920301474302560591221534050684949999872091191924114253855941629869604094117851600577014694655473633987602616115765165574109483032428851733007265658512651295627379140816883849462792965573114702021926687305848378039804882666906590186435396723015429518507510693424671952489684506597706957303840436604413914315758616214311361485720571852916192086533226477634309015308633718454026121471218743244598284325025684755129773057372575756483724142709974460851663597219434139517417012650282244519171530891236141107884921544324203247244227766835803861707201932627913173563037237308968841497089867986993977883647079802810838252595345606328896348342509333602431641810402559166768296082384326784344089817878406524252407520847152021760558325374582718800995842113926990793850737952569416647215767573214489064589884970354788582493019851932886906405120479844679104401840256105555502283338507650379303616458847506619340687278937162199118763100384583758814379042626421272087579862103269265166607525765664043010579368662693961945381029638424781849484576010910331815152838144883272318396135071277394185850488326126530883531251302175351372483219249796636941275680788469219646518828944112241749290483686142386866034613467618866977842672821540132689769613951633851545960467959713547536341437732846941508278973774703126320991706092806174243618233606763645996495190133203067926750798562272897481759325841360906383048826942403202651859061245766069855578977073830602688747630939755124160814974712329271785860953281721345158791736807812488526745761787822556683808126723252559313390987049800188121527082312206384131082017774045931007599540558905444361532546992619731473080308905805946984229531292919939465488529727150895558058760106775984605220116600737739103313518154764378750222837687227708191329955426682074073725096406742288009694325369738283227944494122183680250930186933785511269920175269955655748753889875695852043992416550063383766584594246938030010321157783703729667465984679916130722771219908432992833602082256332863716323172506086980659284192097628663168973889100340641246291012982564237842197458228899368150334127295648249245024024655825720756499010374005388258488430864690106227850069187322246429681499641606665632630641499841040409231824753543452001248989875384831455333386742592300415200235652731757235242023138416495538188238302202979276570568042377345548180116244227556092045691317640960532405988542289602240227806445898179911107499057689406189866112555460856237097208259850111907144086915941150185116694417617208444391301216242794137030458254519049618477297736210564456766160140924009050887039785262157334564279731334089604486156867179621496733216754836596580543686448733326689175091956385560201269876126963237746152176397743229946774457728018185377061449297469994571034616407966851201575132063449911200510146297712592726842613299466842214033510431081515110237274405947442787364187564576078939322922407048556515405505642710674670512139190931583635869529844035774613746029222724031587716128775930146778145119661959962244817112043261252879916432776107103750081665325597916267056804583269537799053959644572297375019191180691229127336061728246582064210674527919002266926774480207496305921048267303199057778255391106263211242916099061667418885376299247291402190096308798679265615617880622067801255426203794180755588064449750290692023925788453127084297379559345197537375686243167963445179506133927715722729132314892423409509999751093046840390949138589941543239553641446307099348540249298102515684555117788568215966720483980759005229706725715637029485362386012563387444400347405514937663238794698277300091997860281293939326835115560420797499459480961238010165978818375691794983187497211392165322738899492873005071503247514636847850416179463519504955383646628949227927734599352125654013297629642382137003221248405816287722105106308844258269087227444268217361951547882244945726225058021384112477220492523273775554810024998800165145647031147818303751750333801340643062085858085435202490383423684468924840483531134716195101866261475114049604392130806894257925135409340820658952829142253960189726446484337625699080559865349419680402592082176497901779915404643645785958616004470842174081142873717917613242319795574725177480699096325948943829084156133715930387534184406838421233743156038474864165703961591908259983827626235000827795697477477610710975776379697000773794147676212219768153149615944154754951224652610790891348769026187186185243524516087599444822688669136106617788065509441811737559140968613066397995842174468383157960673437506369072491098654255300111649425608677913266462321963888235017358317708833431557731433694378022244320004808973650630046715242472532868343733394006280417250743541376534797362003789803125071625405320297924016332747850075164202699682216431191302953559325801336017200753329994715177882975910724602607963167936023616515525189978012382832062028586799778124621086302208366910033553453340425713852842809969504273866558816783026519615646741926188277820985640561832055490617061716087430631963297986250041471661948463477859117964119469082712607791593596449101708052437728789049625824036055129167263934382570413707748649562035442472375630600349816765024375323075618962882924294210994119985780752416935887797095103173296223569149453298047562396364120897622646391799269561378549622193214496426105419897910305383303840579312335023380706151874193900038630230715918752951444585499577968761846982139435563110528420154184486709368160132344457248812190179421548227470952992830709436321107932232548207822284086505727400925829741041406954883624655177177579959063837059021630739059400871368692596920269708072725768753182817303877515587803059599175289150548319664019564749063101129393595277167117995640427919413763057520346486843970799372168037739558230243763823093078840321138645467330053635732406374089219846179379638096996241954108272565141733762173917717362233353311073982491299515329293717940541827764401787647457278701433023994654238051595338388681739060765637595984569734177416009488211382212925777628059337644457584533975165902741156746579100602978879711695226419995863046802219326355490190059043249684958777948543626969162824299607605099126661819887695721657805447223228719566223199761576338421968919419844938914443595938194241163498617225476444902627070245483830096531502726960225650236110008944798310610389349771349346401974922854866987301336348145827027292781766976597867369805452857125699770094363679473961511063466619650089298546659371255435100903349648397139191869255566982369149560940484896733562694633048423661512927918799627173154009176766028322380256627900724010209681356450536908587224099424628100113951615529622981899420571869231696400199508739772466107259027873223195384035421794837897633416943472090153882375897286342119973924460903258330787480972468914736300856416228012161503038222205743449106473484330299655029597474748374135055042268392662771701573497493615855950148484293994135901465912844963818674056364485492151463978121910362033394760831649210767669674352252052057580284252103366993732278049183711055254185478671720798304510302257338095348131895168766444844575006325915028364937081262315821560343151792516677298139490160699367223553790903286861832697339139903248345757585907799436277651327589390304236362682949302232988865981133259380307327300168961837792653087001172165916358084878504570214911812612761056099746188096849464282342010137914120067281993236967369950502267347556867426362312404043627517447563525704093163019559416083968922093986630280507607988584230651358855274078730395649411161392559970352911869524380548490174191255840951059398889515793019674366174396812782360232608558120125908770086501314890055984837962945952241558061906780763911482285122206783782533002746653196534363206273611119986744973079624859207122885561520512943017194735412133527935828559894415734603298809553236610961144760914899289731123768493688478982865470315887156936370080649088350704601828178106391400646067039257449434948128353152159812952556947585106424578955992051929182779885509648689937529667525885159439309224466880773978390741435004726228549887981495859206040838212109213023681538501577923226294229941970515229735314449936940484898691162419421409616840903080130224392884318874201883176915499680338300371082766153684834648936299773398482911308400688017567625403091345366636752247523917671813415613250993656849959969250294798951942542407230119167258413893761313849376516182254150614112941414016795739794014710424923235505120703694635446871316615220868014824561681380590304801333993455701910381232661121899725337587684440766507913713040829734581448230827406752626587665140162934830085114223842731854048222079737070250865095269738446675062090390721765289101701809546918381364434946209387996942986948780631121963909588552885482943872061533600619060323171817810407057184515148563611846827733466359474843668235238764907003722148527790953008068535093230950099881303203492590740974675158504557100311859743138411615371598064244361690221783405365344029276056060823675368991584519532070730036920528567887694751719487299567380077503418272849375727725643078115255852050354111508060543774122839944090324663191004563879616656410401699101447410833197268486907424431461523974473582105147428248562537587392382810910370685724941275562395854925263901383863087246082404613425164232852950044286148613564447982705097689150654404976531017993762447671164912138152688533522516580382540272397572043870774836588219265827456613910404898060269935313411234676932463783371019394931792691239049823128860774767785215568180371767397894593636866780698458386040030626183920366085614532366299687848197637037306886789106624815676704118726102280344770194692131637929807469846003192696067745373976108932670649945692638840766959054773783562801692631866499737080972037500506792384748242830085674681767970822491878636063100428056429313067678765544179514652897167120562259027166357893344745202493549742502677255938070954610963037060308599608637907245275970491624221208716978675469793881911467375177182023410590552643641816707158757280103513044352094557109673777980612632744939171007309755381494516778586594491039921536241570696220693486336177201846204164011628729073790925799861803361895498041975312858514391006689213859834484443063512830481496072716956198785111866794885029416205358323142908494260980415099030133130697875072585815989570349642296114969744863734410776577838420601373303044627211529592026587659897497927362236357594587803887296636039714244901934120884442944941467146712448680511947242765451849699347994243578275960460158203264183123958580852861296912127125117610160198481082684080866791165093256549723748424225432912617282952621733663400092093734570300960880103866209158498061811278771163114055464509097868139501798952618426499985957409594144573245254506571269028891957283785858345585979331966404630926944716707433444579113598791176194019910335888054017490739129084828875787461367634005447899020019458789006306217631979352484686384408661124117317046136422757007356260070484070914467427882808801404211844903954959392434013631003470199733135343959808169314724748886868508321296928679000126954889745703393381682818690125856478679456715324651669085654882280605585598648034292820392213663281924590598256168845498913862836569593016883951701668939498753108179924309448489781265293700879181132362104946507636591995330143163241896314417291394317399386926293138307660691359950958154701983185129508320770843763943332190938990438011985890585869961592706575668688798381622588831333565995891988966672077050954708201699574539478563127408479459985436821229099308984004549054157931183958705182356951435443830575394539423677412926935081525530002284960301349492666885637363540616086712832809611910091014271908940145737438037270150460916012995805613038668514766471642336270895701894171886358413276105903840547945403029775915729691266892061937555571635970672170059849759215603155277140104918013312410584825803254939799148678049483402762872240894435372374355534845817367453501179267656307910989864555039506317578885414430436942467694980754013289094843451057651100411875367990270491007804599351195300937168198195670695895245078660365527107074146163391351053888110687562764656205499475254275674065775472101088230550447915334046315437248267707118242179520807006627858218320781711338996213035389745873292193146650747602927102924466173247055734174764730308571423188220045912502492826860010248312881166881336808133765463146117239486658811461030406007491640893233897368502341430348644058890934089520043765264574332858439174658224996287288248462496693226862279964229582630535018470269959620380591078155349936072431383034323134686162854141926339261082549039043841923909495078154989664183997493589609248444600353431345027648239053797739466896473164339761331958468232736580204341744486519633968667366711131817953042582316955190958040339220831399172763895118519815285407986338021490191759087637747208408340339356300095154438946744484685541017290864162797063914267237212956469755721431878377716490796498726590663691049870869020910305187550987345828345855068837528873803888774471164576839395877991009790657532902949080577162387646249256237681466708772845640141406683735368192136916134220771257876445454323824143596020828176206851585121025466320156429989694886043456464068003951336109711098978585583025415376782749013685162631673377653488526351627696911119173377991141737927199175396814310674455498817094538725372624210606677859222696363738386612537153134127694519384318675312458628093381092463005191225608566103272981560179274247827920283435573952423571674682885874193766024945404658199827172103256103506313266330209873462057777249158145972839983851211039918420283237269191277737816100230251442929611577627779577987317817446849106941404287729739837845162219241123647718455076729533929545222343644757801833057138534861459141707284266769579266728420105287488268967030434806593413437140941125176452228916760352096288496114780768733814319145732251656857351379366341225978517499843799379543350620491772893306041003992058261915838759367661323219410014533357463815820265826246541390955859762541789511820703500994765409123880285305110907678677551730999815396440599789480614685742720716057020992410274447652366407472701280083707138730731286152561917355431515782274975259395974096688494558693337673382581165686694940262312033257142786477103073059752274251997544964785834640706009440839754480173742044222378410565437423810084248395490299354767145695359442399596665881698572412228887845186792257011399362493236431729641098961230236129563860697894984915964780141480778996259773478648847272378644813166944975094517103187563655207425429531081471423705941781013601285776403147478095772229049435355653793485688233869916966201381742171705036352342969119313187426414242645740120826646497584641968616689652320995329805152376717526846034673501451445985869856679266664991648852341887642324355993625652518925456886609099556285542674570624544875165990709045531311051268732846365271799745377983291587157978811977804260043972541846823355265165414309420228622872733578751800804576083661191742580622815347471773659474036013602653275371750009024580059756003445444587718900177236727954748296732847282742200002525734449966870039736094442443046316538388664172030631178405454052683303854807933187524808899715683511120347387898047679308235316856072373649478602414910396900206431330868153088613655532519518149665695988452864076926146568597559257468652576040912558211647377963108593930868562439143128932200832490543780677854166220464040725783564191834368812657667692781544215786193734904573817296257738006038179570483641474549581909330898909948785073202946704545965599822608134180463442466622474603571684244943424587868268818341133996485082063172246186623811472868689944869668308189537535562675234613564829138667411983044870805866280613375931252909823866183200284501489918072175212583551439722418613365681229838932411819639278059276103961187501345860927129950036923391181873609593303574496698022056845243614643622075304583685384757256600912357586917752191951068880925995407949113097784849616505039793817110394799032110002241151374649925702141568477554022605295720485649163851131177085904233183424807486236085181775271082998409602176832778953659835215925453722975208630360572381646406652759840086437051153814725812984841138100744411853279508783360753539058473634771443868411364667491932998702776220617382547128058519155420946343911424528870160318775810763548609839146336728816826585052219892567479553745578530658438969816192414535853121179638639728815689226204395799805144642547123461956714830667589893644186852423289215368855523957417775442019955883524748593717226975396365779229754184246460538555929131091483774041550067661074422850841032760866327239470590958780816136980150780188151648100016908159308955008155121326639718261643483281031503927667919773283926578014811061966764103204462599781117431304126536499662677743261040951202712054506628854995900555922138261338513422680125205887157784452358395823084358735830737141005164606303529888939788049804523991548902344987577346236104590602692663818904988370769009209654082660165563947491404409806172654146288367815334031745893560101868746103719650760940450479921009098033837795037551788846465214734755409280603130540629676026402836452588919568778480869084982506245995104964527340978333025146371954602559509370823682132386522140663435750392739029675578089631845112818028627518299359801312125909557172374489535795207614544366390436824766171143130152688260004327806074165690480223563141571074547556326205109267138281940181333485822464632779894157336825414808669459324996876348325744141759122107636237125494607040158882494222925211337601657427978961779626609777753453529093809582139128949863792599666804691014534592601864354706418446121292019133615209682819864147167997072067079148195343701953777524714051278789918188512087796667113467435254622432637451536639605896945402047795460112692528774582740543906684269331498033888637366702448691212712958211721184304000199280975419094842059375357504236568555458222647791851839761355435033438744564006618725559263006504981963262213553717864163745138877127811625048199938895584663892341408601847160651609585176268077735622373176963937350321369462408118821308800293614183950612925834831142197665724554663432303196600711181588068383255647792352733028074699566075338212246803149409232432914332478219088178665136418819169264266870436580296257148715239094331087456272033340757331013047357570255362276528325259874413489478679029658089058301968518543405171671349652324478717298719954019320464775355107801227874290664015747381367387189871648505701122795017513357295087619769669617818439651324790973998855296294517582655995079036248329173458135143241864557140662935459488192930329213827834344967917007922495039256271790520000318303242171512872839616406876912747973676449687035509809123243198425574372013081553142081923413856001121180021303849134651557016199796666923116804203523780374809214744325879475061560385064790559150843984422394267520690657425041724114041791484838632449234138350009176789631726682374945716392103845943125409820057409515336646676117354810836846204129402050619339582433801084521739254210167005549700005892586146925783319315107968173922791131563835334213764385981082548648396199552360766985765506235281841468357902788445493947917009764426405489291531924676103203818675269868287088822177977445713772188410688907476896025511563511568805540540129854536729022679587719242461148034857220797303294533273752637739308711732798671811962563334337471166936895029266599054598160668052191309858544834632327979133779016863451201066047747634575883382540533397070575799299867512208923560243458490634260689351096955961078211706611460761378075592644325062642483177913918960648844531722768009259983059719131705713368790437976866264203534567556797990886677625780050777657539650942641368492007084682326932225821509395172402848673638558930306962045321088842435746656400425230057644832841090236020263809381664346314651513118052166531718142341093652578841800331050979249506814887581375629030729460763410245643195976916607695989305302331823056230916970768297435561432060447632546141613492650298875514924203243916059400159813152723594688545408385826578530706065692834748352028575864713151738196125127997256660499525201603488011641614505992853352419903532726821077030632124839327072497022853397607053040051051419005819552083803219300091785528370302413808322046291110548508677810806510399052979039111043124890457929117234465495825677291082448972964075092154374874362242998839636180852243982659388723575898604811810459970240870481127392882705322369409800395784382749509771326232234941090769225833815837432123224225599875556688383808505394824774935681096683397094238200966299821132429489019070285124350598168766560257163619314086339607749960256219452482877845723587071700726052445727644189366791528312305391117324292527250797393379060555240132712673569460265695541597729460116203874056968826723659064134532330700363405711055260779809383355324361236423539961601663186812738146628356053787579620997094791787075246080254400895039440372781959147359166297625222813276887765210333473373171028275735393714804989674416598314757648292217166360646172874622596218752071297145605850659624259622416791697888590601229530432626129973645591234837803953615869817356160578948768380072419681113950784590357007525600062547223464059917852302707974729721184373705382198605298231388384854923406772399345141422530042540628362381548305958241589764144646933866329613956321752412945395999613470659053952732987327893110540935806157581364021780927076610484741771108142741736080047326892875128415222101390964580125102552889676243635143342940632665565558064926545006809793656169897622913322309791199790164886766580479926328079168444337135337348428052172189632666707376465502855627434879260803431499543464554242168980873001467913683332801912688243434518517298016728139273967104335251127335220516617369748027070204948341262426309033384078900167335884395765570158355140007845335308763862335883218998439667247706930108371430590500905377640496548695337164047520517846512622665683171856627274271137300237666720046594710030428752630485144590880425079519591400442293579297098587479279009763717647179284763731215220950097252253574445022719963703107614957326637306066567596501223226724669154482630495295470460695643794903839602059165712094048493245636144618334521492910622186287294988149045789693104854242113430736543133078685283342906065675093060156553350520478698519112009273544727183183335172952508479787515676256332806568420023949954124469820797538130524626017405609048037624772072802791656560136341154559603244255230592564846155979672883628095943635202812193461049926063183642287397352278139946316620567234909436543824326625204297881056665331904135960902892470773042828558934347344841671264247148328773347721698806432733687296751616704765411771258979760286878009997810414739101519958095540598094182754579696257543294522118371012575884359931649535965536489081952269272052732605021225784729981265353459133378070231767645974422462491191663078929878043426534088658482988203908129332868480204509631592008315880006216807381334504161579483275300381121965911435158106317395980979846205007320629726026407202260455996078820445529731477302785680006261019148657516595651907628422662857870029344815036064035361835574410864787060798071379384412233226556393245446437112230591134073335483448481235753677192504142570267249139990562206791189751053147302497511873286537582045433446560725520462734628041669101468433744865225491495446205172198283088686216389120468052590333077160410713051208003801893636259357761675071647026168766640508627840514741297962096781191874286753958913034412092860949829217447186324780859144796004118565688430177896071701379053502209534803147712254456018505320259899987056182780769655504831251085700176065462404438070282975389320263581729527506638092136359272978391165369601420746467386994008279343807057449986886375129563757434039029723667803758666087960364198109528050460930924047370941571571454923678950270044374762221673271795085372294702284138723263675283253963121213331236680848897765266059938012472166214748385711884276188760052985525376592031230741625609965655203911985681639795003138996070544669086495585917487744831523465559203457634001478361392235824212439978758854309366728180234995665067945682133285751200599778170001262665382337887027961016554045501663719659394764714799253011842585103896429115552100206465005497877440085330507386124977711797739450447106422897939222464331507188745610351657628727546878290958465169084385888637136460413855563239154795646006203521195046814820542449079294591713562585095284551461285139165900066278435014228941301310220182489620900040515215745669990707502601614895083536295164632264048272656319206359234335171949345567831874765906269053874987743687386539606785411411358201050256200912363349648354066895427187234564683174357602718304469606987555376641586759233772095001733328514806713642168465620705206425262606377037233904428657598508807992488923067419604418560244847513559952840743515298390847756769611754191202375409311261525539114871999746494695436489638061419676073563844796897044088130629174723061063999777203900536821662108625518747179856776074335067435989777195365874105615970926011983164670730007894873310609806973379528789870795881093205632812075674384520718244909347631746392197196156597523641059138220862855637799218714315761631258922839918327501112258817782167152637614332752322076475665271719495310508858067270806833893630045350698082353331001780992903195863886142403739593638430954005459430344877255272515030882649050096616299198365607339742413862580192856267743940406454603676249627935538118912427315818273707658226019918961866823847738851707495626707964888742908611692103530524626553675971220150232601347923244474708548465094918027711436352090721022196964784412004722534838077970769053484310080844995006886352813253885516332388468363469129722335247461759719451677566694538598074210490908187749257638856565137672343092338235625613520722016232440471104461352569897666916868392970517777756202295317911386767342800847295539941190807378429330174357521375615225320855436996059204198597296532163872485404015869327412832139605538293238324675947874265608680834250263404934065981664593002980128919662974444058679141820691384959203018099491222433967585783276776360525566476945194130175547677138389683037925825857478210359189277931297355222887699977304338360570024865576419255296254334776567502582511505190773998106673587344889856336197322516281430704101558786270136106484395238342587237862708070361214941475026776930285357532203756003443904950322056395980815039643664207163863701311003922382148499829590523037297148785002453641432651208643590363401082550628888894109728706838947889958743512552766792046164033364779563636802327772498851990835703863690184471027027887234564361606847166560313603580940150874168438796399138369543517484652397704937838014878264112141292376116635149126444727159025725134232406973070608039729030337648628388292047754545204911199785000192017650378398002655113517891524282578589649020998946690260154037879633342704192178346964733560338299778982967049029857557519360961348731847163705272579532714839161776499793506242495547208943176755539892390452752501139037649874832505883087799696775954189347543441410930780010378479067611508430607515315529041308923842790498240566236406060742523415214533615318605853507131671325634816775936364418435469840953885666126073419021373444312524469310707666755925101071955140919722145440844724857641978100501652670905242199447162177211099490139327910684748555954113489375925322283441740281238364910582229188866909540786749010398963539568767253752033068305247855192214352574201781138264389682502715440162913332751917631352754164031319098225316533535409953020129131305677466114320008511800831239867745605285106639221093036208499860784078639076559451372560520902582822880668113184568243098896753850539892168696008683249483139165408071060721041563198285435901579028139800447994432356623093592723543571560368022515709650352331745925237665188406052365930579538021544441806079709114045714942753497974918022037238433188093067956159279581055385279209093551190519922828581645128345732570895924261076477026645125093225221567563710307791694649336802025478843181946682419812701214003656054296805396631033102080648375933607575168074140588826751899025626829081796266967715802574450049194310299979834966913556224202214320724151228663788667591943732198365590158218830714975753542998720196826126591955425888643216946326720081393349568182555905882572167842172187952963686671221691551899307458150050102852709011837239182972407730161997893822293469530469926251261625802804746506587841740918566694483063605415715727289872307647796903303676971919034690284601698940775947591614809586422751197471353686298077042544398656372707053631376241661395090075194125186492381552435382827411574529201105793858497793189833214522878546868183505599095951419061237087399890272916214691654009197468502536731691189375802706369297151827677722635242306995528114409229177599947810228451249469107718090124166451482394213718319941441313308414079437409347402967466045116911072165982627743496266805123683855820521197471766039333272509408963058161367468442388000968946213811843977733501465951849903750993949435383432875643790110247725943571099839653236551704176921225871216558507377356846342054085389314049534175401147925482099616311213483290150655198231538778355699693593024452061282015283538819214313935230228490062616618261460286783525186098446893731044989941158830828774926135349157953206407728966277542281650711144133301777854293522830329256991154422156931415931892927114651056521853489746950325671650505175306193190795649369535408424860135985256791892028020625222740347400396564673262253271059663799282043995423574367199569084920491437283178610355632358558546021881095995418985815453245580529971478051250652905585606829041135116648189965979266846017433404063875763281777083744053048418430886670895438045847942463325252480509805637529965107204226748772852184417881386006122550374369785778095028118157897181785223722812829407684996075618257544224617916590371352564057852650569891376808421571912702271991990306006306534826363200470985095007769291247447374893232808222522649436044963823386629344490102048132578384431057588270996600954893478097668653700669615722235305578952135695455596502308333275812052659499023872839417377061114567227576424491902063483368907619456299283663921811825166929345524839175508402490557716180892107717335455910678782875257614029120925333749672989217066692595135234481109164757646073900467190064553056689714989003869812969434318830484036467464085271495133174136722136188956019160491299447223107843317404150375051212763902555294960988282146478014505114260143833779976881789127321593846532963502564842664046361309236391096365256667324386624657808792390802470188493638874706842974198031824797040506704669629514029651264278516905486055479148800353255954441854805018540280467731382855527853829231398813097524729234768434371377756929641340168080272295309864303233263409302713239236811073871790971189035354654693897985419510910017996950812193172299875827135118503030725914719155384624177948582465968545347215555907255368418141562313106051498631057209273924799575737747988740452177136698096204166728746655766517701431952206163069209313233958723880652838369633971706028323629492356438603316380395466321622796452745388154721611822343890202843507205345254638012839195248098681553616470972838898964849525855125435442760881868284045792355454056232580308825585882047828914442557320924193333729459854438381783237234946785513576129518201516845464417313495504610314664962433214943553053239505174559791903561279944384603347871941753138987744245319926850226375304764320999514921897300411170562358915088131740021236523600237234790612276050148016898003755208629622901511270225222837201342653459339518487070520518886729798657037310389058744442197039068105272936209956702040915301689333390560680239495666229221662275131887998173083407106104101960595722164475355226297159491504587559893018676602003840215341700496792481121474954387851389261202824698191066571942197458865420751869044475079098685553630637899281141199073252301385761745478159235343743161123106324707343319226191949371174930335807572278528732448843660155183795646705460039243714843628080421420437223284741433822654091198131582378473153455445057284719050097486034063691399203153999753403197871172336767925886367808558679877963734393062410980920850203101317323742594690847217764111067387388203117264557940023067294087114173001299540195402880131260476244164693300858459190581740911736489451428683451756417195658289527494832364833954653869755908846869591455104111882959174154027573431864027687536385524811749073099477921822187079279343278486296464336788374224463339130360780888787051179948088649685923472089219267966890704432658752816379875116449022034864536972037900209770372785529854253698258523493150439911614584228792950389386628206270189223764439142596831892715888115052990078476930263196646285503986349935936999934840133166847763302022799014385962673769097770217700503273223421882408693237161274742961566385276713130271629457617312098118781324588558994782044760331743710698094158169587838639205666846442748614376337460596689367140328089613846703383099183274841446882132342688626407042765138853774660246728041791948987484171906199237670412687348515518799954525157428766090171015086912310195397229100461795583696385621793970035622518977437156162825322614536737811668098801767611054386724452548668333848789866002997133432636434597427458151001136558449685107680977525301611838473798804417869251033698074205383480302478739214770053478543102530831952026372357461823633342420298047181438191325429998449219702551383370337004036719419899391741130388985669698109938431028689251546588693919405636501267425906432659296385000135384324485981931535124943851009302452919199761388130528976908381199426252290442000156456566294814581886946306135723465197769010468518485232603021277843385962964783111610154467361603439171868959243167914546752664792509198440187854679552788776902087008381553777639798211420164988694822623252957401282091955586874043529773417824322840075945631348154349511601260178165063841797954023506637362220223352858875334932036820124526604264190193381219323424052963480182649381176108479810216669591891607185864154392517874202256912992823209870726130957484986427034686151199708727886303566326207788889425271033717359918143878798476682157603431893507145383879502130859356062572728593262857744344100927033674914279855277135439768864677474463858095681181772269659186984964809263826729866567289391863116312001966168110902682435872701302583617177059803462596353265703483041543977491471971208087813564360068179040909673641551658280008648502771427416081796356816843345380145914754922178489448528528587029448312273164440719406534076594697131417653990376612481669883599898758971891351650048094461883992131097783280163798320386574575140680624839334871494490867433345008291953414374143005832365480174676325394806129574443472481336279249665894618682336801239560257636090410595837871915182036718261112024357485152852116046743602416709556019538401896135499990686258275154366743119138718524012087617415288148030383197752707588520800647733807359544956193715257672307235827912422985120022042624245011187197052638907447809927815260377549031672779365604521277686281413999749124086497927819546036583907696893545794419707435285671233209175686177051847484515974906475148749129490987237407728589357674598181254563701545558139532656565267649459772253441302499823866157092368390008983773910418817680259820679993600359052579650345509573821340884190938757334592288128430540087084662862099014678214502606121351455621083543577088140738408174606840478309995159026590762995739901372338845228959923480606898908663502732092437203046544376806312603489906676322513912634345362469631861062223869426845170810200074490061969369346647602795072146616566780090244539853038132733312771121655114555480549125434151842468064264309861792916745261578623226195697210274120268672934265941429209420930466523567465347773808947151954677283205001168995117377028392716497444238964522366688373336164879305849976218447903293825025107281298786386591514606546030445039367485019503141430389666032241122733330032099173731448468716122309811571096611834428935941571105105127928679205080489270198664089148149083529603111307911543397974094359403866557730190204761916644189915618613027990722970510589501085156631531217636239810994000369120670984641240941940821109430735275522856030365431014009440652150990348980000841572193130427603587368849775464963293461386448169290182496549264845197209367724983739256774999733495533228010895924305981893597585185868208789401873634092125926165002273470292887690338094525516045458361404823760512430752712478151089959683273829828473868919819552930750309157584524501910845006443251987943271324186539610602912372335462478954251359456276766329424372858064798167902371459029829987097146473506704250668844959949443688348975861667871181336146548676662061727774932061735339873568192558662645555492519465280467797267745006128828035875639293911056824425609198635344390494497590391066281991097961927310913835596297797203269807200231323790384511582741631335312193764611797645155355538941984110674001334712039466995754830780519191832738437262706413806676074207882388109887087655041206510328238925012052150473273113324527476446783418062094935113957932649418936147996263827266104137419292981494008840340424509161516234264353347738690679331272458121757957637419481523793654347563500412525019119778796576157991313029188886827737428653869757168784065982627106403454497016635888778520764909489804776755493638440166864590209806824931478679905665407744235327125679751988059806011674979720246326035534096493906397086089882496513510403116399428347228980033446613229929199037940335131042545269525214134855459543994113726794317376983370178123992602328936873282789389792398707656047016027945859819074947368881827920473526405989790156979735402091082062922254673425858912935375716526357237464009901527900457561696673461864190927920843326258262471766428537067517209266591624627704501514485262817610417303487467863380569048120083840839857111957257885334911766355625768739274097133014495762725493429564524186857632525501013495284535598596033042167579252645688908044780334616700142575968203923574089040707466368091834386204123387245677758000796819922464654725247331020498014900638772274878449397416602232980210618260703426593525086324305080661698169375122541851718165838260468286711533736404569312807295478687326964304801096417106154720028716142843498160140897668808412521869609846853644735286119125607419592733509337935198232533830842902347742624423179242210364850714838814469494234793132266344289876773069191526131401630588067601455821623229428369873496350712312962910353381080316998112245509142082618272529598965455603447818580965890432711083775540538964409700753610915388669461526130834291187598510322907452347930808251936655931889887199624419676935087081521772378697273950641807649212703501202782044077322777778042313696925619089747235920010546670567283997427375489883362538495001859823982534697588023576488505692313378351896874842063822566441726311860748789153245355107385222599979490591570837348885905723958737719963502182783053997116463602274708320237855087136668448633880893264595230188264129487746798454304335612858557316563133929474918510718246162277032641947375432851121631967716168482199934573608082697268442485270015705625811330205883874776632596344466041559611597743823445553590912465939308920424380363918012872127389394235247152924878008517629983043833110945938258847217386500739112754933433401906550300743495157117553685495563094445018841321434652525096457877635269746477629089123790684947158430151854017906313862376282652818484924627505818070944003449504053128111755991771523556430350731526851420980561283817485812431348553470305098776516088709733646257640239497754850961906970796891158104173255320503598316832154418462704966639932241942404921509590309172653629419089625341235376373937007280889547921936394590185296873446013614944994456656632171328772840602007607024979738815532526942611955401132289574969568227567783084388855261143627847836793116548753167222819613418641254652570127795800625965876443675629521439429241506248406289093572428863811774347216908600763728433788235968948816746372376156954844821903661800713899149333437160327549198161447052016993458979825207964656767103908495575171078023278259070711099633292327622409159748789491470935159692240408919838269875166980426230909628205445982639967902956477694901353411465707694428860903563467140179407125149370994016373817474432239718793965595925163157894699176405405466451569576376758217419174218145858358163389890678997911914860011725925154988215091499033470179956762162714594514771386026154988060821313526516526215232886153217594847632847456922523665529462424035657063751055236075838844342565270580809532150574772675737070297971157336574617888742555799008590548860445805945238260817608884608847882713481599083180319205728635279729074903228812520295102420095009025589700654624143526330789787204139368761324226835058984846888629770154329030110155174445840400708871781062530934060471188594369840732912543430243612574715285978893159256059825914533560105885353386561275809806878836125438276252502910306922069450181206615790847153048299469306031796513860996037207771914961833526553477892800172695059811082545473116856315786633513854819437734762741195611542901487122200900587188442696324467948911585288300356518282541128390041269359125696661380352869178903974299644310030755656232451753812597327696651246069746506679068519885111043443337366948213100945368035845299925880568481320551649878092221062353680064759751179546550941802229924011501363198733287607015704530243734498240559410702100689980287048426723592640616703654038881765006926446588449513996675450980918329857627672643967231024234275971647490791519385900668350806898211186703071077681955874574721931778825282128865083540099775520241331851936995048942137756431316147262464667222105950918328580168416650217602494316361982328021394994351617441206650053231640336994928793587315780199159228434176208622249703805979931008385818366283867498959280139408379778405162565573552301992445287010420283898767095855118002139443763755311367626861006310485567217616654887790128110658922691752840047109496217707293233713018242522501737507978970575075903294589138277130891005995086643010708193939941590849197438914246323043334682279465312603469001605328198105179908304158544489775607178302548364610218511834468612239768554339642779285561672435305623882992332060549894201278208298615370240602212052748551032451484802732745241549783968444332107124983610569868953263285456549688142832937314763555494320357867342831672067762958907567901351143910710046928781546546335642588971719324677453598305654657816645756857146981978583131939358122040155576678303871261716835918546288614259040187660960044209359797945844417199181137143283748056884976651823747634117086893695429318759936409055255002517907472821722724710757762859805833127530219950889287395898588490207617682152933158757154951576529244271234725799581069113328423159105076499055573255415639312560389745803101442876067593053433350139610893741875435538287660538448473080759705865546166803349161009933910192015034846685899619686705104299060577883372487219711974385102387452324321680358561701954008334067917320762355851271002190333058205595001236266498134116037057135569897875297978481494509038779731764833460474303962176923130986387089973009325384080052197236862394250026096009536715833268849570618894921729715336623554752978201076179686327933173141727517246594076394217505700528210863916718576181652686549653393626888944535316206257768671635963133553329895602932719422977301443037310119411805247721270908804076403722961611277197893508534635704968430212575477617043294473491689175966048078528079593678795588170250929604623007241881683049575196842767849872424253966009599674685535858583644526637407454584018993941836656258059984288701607096485445021300440498788550914852971297393708326325410955606584403506133617207382454796759279915665093346936574338247623156222822043883469564350500802091630743487390978598785618686335598480368184572685475221008474312322682966296286505651795452600093894863616256499120063243001178947833669203937470996126594240346247531442160297721460039809943122694177111912556348596350590761668890124372950987634950920370419557220499301201079432014266298978110843793668346360343283943613868377320356642556704331942444360604732359048542303800901241663670386419818780439072469951497154385077939955674328087194548152498865732641792815042327358222547355862934198173885000424702483416811175554933436380379712414989838173962144268858855608590924861034841238298408928462668813070001575201275195993337318495100360645161309106855711777937705296929074097247254345813956702027432995623147236203871084753845242617799977279267418628087532659690492684859442863720198495807656623589304324225815970940050951415287504403971978833191724677715202023281597005911999461521464692283925289056663128698047548784559913267056657230941634479858420648795866720777097478510369558511922491184588903415235791514462070749108366280273868778932651113538399951957483850785921142794382745795282373128259407427041273019574579303115050850722142751168033831449345721370837779625434775828386234131560422906160808955567923130086909043263737666841564427674942015780939159614781205655869202254687676146168130082518274687500606758978409510070274664968324110847170615078389173979836989677983273716997262185930327607065675906447081865417090402930733406951746783841228383091995040382651267736849650280062740907170041694136103194662755625436104832990295721782468935130637379052839968758430972150730598479186743345496147758346387959295277621302501095836626662508687168929024288008134652713561736446827351426275627111465135138494481665835290324325127308057223319903023401998201671769481709908580572515504513060915015262739011325444920613469858214976969541047023809092250937351536755121432227122512416595594930985339354612402588839788484261366116049985169359413882981247012268221921526689076714995924105123934103990693987090565802801131934577877408379515648595413939756754839414712582788102759998827082800844455260719103573013725389449658624038758893344732866146325543841062824750893147130904127515994325737513697455516966805391834732050269410817462536658671916161156738424067601479318303092466174020457077270867276042700472665062475634599183078116015653278333202640417649111346797465169751451078466099400454390292121436470155635395838855510596608492426964753297911342176647041410417587909553983234318163579601215281739568980894663526221148226064119501984067702901639959905152204547893184254282642009688153345831269994890695082850465224204737666285315036938810800636436132619373060712173931979915864634933353498273158707160528502382683324590501041107367719882332375451257152686688169598371349677171298886127322197146782333628221199959395132774617298225960298616036863799442112060379119601637480148639037513199947132470815012281176065972052302322361257047403488255009908738511503669047361681794384351244045731373453775602014459586321127001575919438709892530694084913406175166879659775927650041358521249107755788901453228461014804569430772404748043309214325367633307107054912106208534048071951364031879691875929533875777192443192019189736944703949360416987351347450994610509142467431807575187402097729573072631992694581400597625470448765457705735132243149060340479542089354509630756184151202761546861836986838615196110058189070807731735305062554374051849084465310737227087763626526168802626103067391995816670996840285053598468623731124055861929527597239676628217697914692143869074956878261268033091536861614925103296196995221972639593744047803400576054306710201125420073134807125162678544921272410349102111569786066549101504661886954735851804358524996893453404859989119252251422175152590012495062145458628516565202895632720559565177877410362132362696395783855426144205244710310962162536467388987755621173583588532480119384195576554360012144755918812294797500222366733667089338255378376971378664375692894288665673264369949549063456500669763655091601624463719033560009565630777922845241311203340287895794061199880796845592472209229037156621440173238532064185600524412285434475192274565956347063424334687706516883684222304903185255304161393154236012954146209225653617291783652235054435305646073095650365724378413034366357130102651342870141756983209980010984474264178169653854277684535102697466290945365958107736157896592503155563143456087579030421966522522801320704705675998384960853575555823114017565288698678936636414208280459324659626659584173740121883383747283963118616675784418375027128094413954045413197068689497139668463872469114123030091649399121741493428855606602200238046107998490886036441510475687986138922510788759381728116511931608296364966898922848345530582864541073697974239631708056282076204390158040341550539129358831481555897147040334236421335529509742856173554393451051139639497808108898774554741815834809136877463706842227677115159611866584535377265183515722525318760604115102754706063137065191972087773065067578632204925184055639303800142810683405346792141854997146712001552072020484647660843567073274571303694634364986144271758190596346644241920945318039211534123289751592269399777789407222979672805761216621632335950410986659552555133444591942434838297591723370922062638416392664181897210357984575160157461429856814665035612159207422764280463906995103047899273224229866148193811853433952524459486322085877097318890128954296333880828529565947688465611996954243747922028292832005097119525369753193509444714769175721522132382494697373362376924097978295040192114064073844287759083083614609698202293210378611614325224227343153954495332142879173320831377825436992328449748122857305855803438909588658703070071138871493185524852344890190288989329359752655307338762875607174188502807788721894149062934020785065439397979346505169881858877424895994256677485951030127718598910765362555070638911366012849019467967063010811269149230237172891994617131935451013933981412652689563748306339931070783203942165829739530364137199784970106343590440472259384952358355701890242535386636542198071084614473297343172485908710467404673092982241569964679033848193250881263825728614439281487210021837876997629396275816416051529017411867408851810251446877580430636213384016064804705784014145179919516477680449429188339240490376026861353678077703122320780591838709928083816892694759303448843359119655319074597053495836137365329383542811056628152430587226899296271715360561148643378821819204049425954936394601521869077638347491958971765340052610450621931723334783839855587737557408945402177600360188898924624754979857431876153059303081133948428097796814892674675942300599088794515404668591998847955330643815119326273254015337577384037946543433366030645143607116251130144611379649013841257597668503697637554435713650120694688986340315410657754696347091143823231432090597062153604971885919362919089843785772758946384203512178021980013427084436118701324309211110763940029984268773858708015451436099642136574204827159449371733928884013739424846473960703538420038073502538536244843256913187751000050875376390221946954866559059822263756970904167967269278657766282771835849003963415848067448927787592190524533347100490959444598805374938128735023140099582862811460196281917258916889206953000695951147686069213882415094541512218123289089697449373168334399844536504141610249925322566201303296445116912160505265142871844679586005484197374576916609152649225397545091370639360337490230463706824170957492379980485057287312973806240072249297244442384718922540541295069439409325319246623640157330109689432059584837296815235346459412514962877409459757616871302549979520026264196313173279077034662191585076061613213556865201327224047279893122646225331830610790821203704136246368557932720057358209541294487956708455498044904165612918798204658909206237051470971373797104277697874123747117924173517030265677149897277984720037482454254198260277616037995424876386735588309942826842132411873027926562613828619368712500362509914500343684965330500829882055555769725549495583642815986582980191677808404733912015139856356944531367609829959010376356482552678435917534738010534318280070751828104415743187155332862695337022218331918508775567640172449434481374384485476196694257949074549252403122258470548942921935404281083168575238202614350133596242163176782873264552215375506133129858064621253117428602291196243328991767948948832667754194568147438878781051483627409463271878588381305927255385686395285863938198673577261534648831662217156625123812924847896902627777951224898043167417708066405405624439961130595422750074947483826383624781121550762697701865638623064833471745788555519017827795470817913500646301937441349976655223336674830126112914949583544724083593065285635696574050216775294564054401464152757683810375994296375107245766457039334893601159321830205211149958776783148379138473541214555623042276579581697862371228861257223522736778005281088451001566693883332370094901883301042592819099503098577176190817490764152876354012309021512362336522774378319419030757664874952829106985266135579385651467014919590054022875820268675103905168237493156550225223291153691992132248519872827678282315624734930042046546390372234686336743064118386107362115890683463288367132040696383192921604895677995655670019849116083019145760122073769218857792655073986309132651300481703236796631273161719710553540458418295012357115245402118477804059665818604499800317063180060702462558569869302685124822173407943946436604482705910605218740208658901804747031825594138533194188446521650657391419765567866273386345850943581364344108547307084509041567444114743868592934214047623806148442716465622802077762267061093526436463070339008690778033725221780119931172925998302932395208654046736879704514361655757325316915428293640328089389528488473764237407915156678291388268342463541239169622804835538987984627122827061183537647115594037930810939187752635466911089348408880206968329447400322121589941005602121073746486517746291683166668607382950378851288831980162516322046580461159901805292914592008641219591346330012401338855922984601576756255741564953268258480517330883027551565950944707802352894108128813564024812066656588084995478816469480734467826093010373281815681582483086505385791838307787313618840535516608006398330062033520753148005013436507961079596120150853371517499752366863868707529060740435047293542277654221166395819811035662092394676178753919700746147152766611019924297758861690575325195247836711208239451782139098768019753440720581880457332210861574034321552068486838648241680699495017981640557444338583140281320205727519518634291687214899778398340658539806106270821538095451654932571702834487566282743874544429033015693887164727090728559699230176813504070290147046248219954575659110218395697757806914148838779706961601006857809164395493715934948240628741096266990178879359671076426324780909083800246932894634071419314581516301683120472011152308000620395888112751583073058834991565507026088811172722029667018552443762560721518110466114106696524997026935366196326059660994072500174399831945773231238811529375278640875850118774979061514804845383478739820764009239661441887661521388310791705855859247830008030793914671231653751576095386983443877926691876276149170200492427817493202073860591034552854492997547195139960591369948767667095133895570069481237388903927437142165172656178495641743122769127699107361145277244981001264344001100917724447956718656660409083535240912582116959183003176843429030373863489981915153363127043320788683301366620692389973641874661638308438697760226667337612557292480801974228047739005115554411856445034271589023080812750671345151235936317584186762864360983741614278354876813727120709363236018647282440123177257905100639446528704854870583143345875321857768359646939042901846544254580974867335179260130044561076806599282447619733871025339182391811308009789727846719664908332739277421225940255888198241192656570122003347394322925988732932084560790746640233231677167002985235641997716137057641709175228383419933175692093757636979522203411771929807270981299526402438434806811278340008497687691853225054698331555899548027068041357748607392268566607485327025048800578628902540276258236878812591595446818731828902109611944421475081187911132631202121058705967118976827148616211528233070518046812867622340205212733377949426259284202944470661164295923311131381536751139421209300776972223312365666290734827475054537745341450041647449232218188192940532929634804619475852143146541100650935810397386959694761575503594249978996029487539910878112794288561467472142517377266382174729050877470760632455704534268362446667109406505594757241250318774119371544644770533750002229496097453967700860203692359945290892599833362148775371633656252827645516427929250147405340256206039975221418407811824013608197854753663202753903571614895034191930279578198892395943088009010741377329909459663754622293077446444329472040365542666055245903074281538906169948014665377879734456030603803707399569442102178647527104389602078786118401983068468289663694883193040319258161593272915967264689968542609396040001078912173887359684103169033029703410508541753871414872507776888503016935261532276302275459071930663594190146644585127620842095258629309560941662594295205618131736153091956065227295197179924573462402317233303828430607362724059280029272245021839293137958997264923876301231607887494761944335710554435120903810021248537465380358960535958510526587896041923105015510368668668900432305452601986206136055735379195746686609808129834921746873317085318702473597096249126836345479710124715270193913975612761151430264986070552990461452026692448972537212555646909940617781062027916089074260867939476073163011175441731720636691995259142351219242571307303524572391176588364186321057235462576299322052509427561058353433977587343101786106457933287348904241178253028005539668198523013553498198856226315786556661819306656605865428821311353012689630042260588753777860336944476160947914712200863222134666774593865570741868310313479990066320340708290589167665967977365846229917485311593754886921894031580174634203702055934128698621051700333614285675990878526987841459845025504033760633419915915388201308265446267619196856380372206139357576421763577993621404919884497362180362897174900122082923855989497083886609461232746510881821352140443600112471077832110336685148675666531176112772907934314342794258589437542896148964374172597570438071149862001181909247848641977454407647730266352013618565910938616958984792254927268780289542416512690963778494553236644786556111081451209984114542317085069830549909443960580729340799508811167268611200671322051418160130611000996176114401759430325886315298475709472428016691485467286291022341607998387835582748538529222842646813649327844215080689334719544929218118999177787008962652135926486947652185570967619657227281503190701069289466509846685405542333339914256250110251446229578964250630584055877501290394911743938977846194007077232465179641542566497455054248836068705650859957530545929224246319550226927472989784595969439444752281979798909961790441936548317800975209768422079374945444797575923059792453617275914894091123397368071262460605023458960336475357071779696276070956224956361805499636061545325326771565782754019148531083997652538304028021935189174937684980733263613141456067064456584643023086866628236771949166087349130181498463488399999602914285335811201800647185009497689987631168795038757248611447273173743860658483931967580592476071666801944886093744541598845330241699017173254715919944077381108300087361317186905099407547081819824276523327682886308702215742108368409261891762518679429912876666693309857783388834065017768213653339510160531696542401959009593699829099086460612027025631042952367124708930898330999457499069551127986755321800048028352638703543380887523923486286089047187275739211051120112277487887158146274866474259060112597458676425919311261251060863816152170573002309687393786222788479519326517978254887493201272055241412960703820391578880044919837870671604068785306216382563045953896513470039310113868622335944915060340453934184135284635862958137633607793933871037190914263413090171485474202030049095885080299828365004371160576757789799238126252101767933934778590217683405162941208294273201958242990806633197040380114177101607614291647623689236575875376619167397746311058604441330584206490814283713123210079067604608940679253745685230617870659958158176099573006358705299742759781074962162205374696834906431462999307180944531049444613459896217460089998563700976344845915430612055054516718046917836646499892385063999078795370600974270621800788535124885638929197768729952420988396370424958677915666561143671994937100555986619575282811992725764004436058696135809947480015968498954346514447161254781870416866009442624434056663499206617694030999761530675592416829658902499474142301080113060924037431166476218075094097668841977628269286594497232713939276983510923189735880478189377887399675839484964455884303838740357263964430589984206052293303500690910499177950824236536724910199515388092559321083473066148190837425554865725782482180456878336315084197697315688581465017272079890551003121415085363667051709138035542475287484877591011457064343722040972058475420221670945703044434477219661426128185799500709327454466970816246927083455417819676285347764201471164223410900308551993462168169005887426991827502350177034958028196692858853070498210466925735604976444716942384137333795000329623482932285469314174157990397249292061057177871323197592033503424642694266122195937377260345500424498717077908017793017597400643030082297052277408849924746216968131129232796646027127216725681522102645203108861213855122974075377975032368393013836160547611891694590716206486186295121312698090915086900791515943005846163006016676676277608173618444561474305114357836653481392242120806875596105668625444981205456558427436222535485669770160624255158469268846634486134630235357967373507504498302268041439609859248601445464148768936184949598624085084224088278070172976618401074121691246382192799232130344464330967835184087782059934702366115693921866027019226844675397857536820022798106567289903106223325766829829130860930211192423220500976775560136899124552976579769228857846905205519653115570979611362187430475089206661670075301050413691199390789182009521857915468746207102653939954060365589439279160087205225542879728188043223814359015786887170872989755188662896922474409512218327434336982970067662014345738619162979787684516720960773676492171941603450812533206859177199356205230896863530277383713203698317909823694985673758671647767974166827481680569537418014238220009642675621203513562359952779285300735378422878927730798127025574197921911288780016861680747451268135133135007572887491195262735477273921430047942020330229501273377563742074815197403210033033977397103534879774298811898746751438881821094648158454255914379617483892430597767674233150830912606210901858866180978395717542014151452922579493512585743730894434276637036020509332793929140155994564531955364272584269051631549961747827688072655692584659439950301216515260670284569848447368352290468446317323307943437947506889121081936559621880895346728072637364783535329271201634827974087442764667404417895290676044994951515615454944935530542168382675341698731589436854261588801509350663220033324506709625572309274105538111081913574047525109403882994474271729261691175862974912747802907655432280798807823949590909923542284489192209490412531444119999093798213798901342900223590854989554257601381016924481399033592455125089428343034144367897241493374890384106880728492105694815207141145713341751474705691375057525717373283485172951024697299290433246100040050503549307620446833062964705574831170563645642112247279709654850590956055146803215287954962816838371630561521008813092484130177256853919010975790512281627627498524059698038343023092666039768388485317163440807146724508403891882884978075559299839954331080107547543092325413488142353561417415957209539937131834163298106682922878832223125365877536566300665150462302884928759127386659018892167213615405528113570480620987550201801998689566612474321676174412884789952497242369478177281252914969750145433621550711048292387580650559971489673137741892142981119555504151563588892188657927936619211058527846074348352410048436407247774109969483358354214343005465443554464232102955591221319217988133929931368263664960753514741745878146830658563888918151345609900066883288491343441845398419320108641491873622772771452795873076963295496391030085183005904084735900801630311055122724080833656184754137879786993342273349739922329970434648532707048442666627292659115667250175882645018410953579267554060314029369812047596747130453798363296978573513422230953016784405069052966175420045564431213306040393870119374589004867751440797472123150231568451197777272704090767190965480168779915363789121283863999486423209083242290789722892190351034765375731003531415091996483387575178645674602586061244983469485844343841565385541823334285845910190159912314066748253182464032188042217573704989773664924122421448772847562556878409691840274566906213947650449730454014071911474145034556062195979578684911454124886306853816205434582905216724673332799477878047470939122041414222810898440190454100463895647539142224851942539821637740931641703792555549906842484631599798623671318313000631301273088936342463407322831056443004894910795415861338173112227351065079170494657958284347298469116923967405708353865524530109791396719855451759641903415989245849348088726828483532843154473726134667319140525864854716429021102062269293130986642178752738475279641078980900440490214409567918590424723290867792854609603147046750503357536440716683311655751412915730569867737212164785338826427939352273872592706534151277761328000267364316389023462037093078683235704702437563801489383072029857579221584091540743434767366724313320270708213550401530298650558895903920799262171252803592298387363497516093396855860022273130622520027038419069774959950817778732640030258628631470955472387609213816102335641070082664234907832171686591067078113013234786250913685819108622004644682046115190397033733125422715530750422266617625148677121573652123894906406821070839610731213407021731761246746773158600416339995561613931209492604452524752886931665512995890776659705323889338247456961499874648519224301868126663066424292472503322517260091680897288601825045082017307230801636923563254267607182155787839172024281609818465135922760722461155238534356431784458645503930336391672779589068625230027138136748032074389304072398697412123384195469794714885202270599896694735023915336289459924707609584543023006235846030328510354586572179466176742586733494000223618979738567767201895809845484614501220939590364131020933341187731964687501288501885427644803206357727442638464466609998049516064935332702102351506322202200295166634479016190923539893830156615329305354749943470610125971273634642278302528802493115846968237507098985562076821442928742858733726797555532570687135110788779447995259935485485470969691337940678760514997578534713726771500363120522415070865158785450540362485196656361169500525411983210824842955484839123052791004190450693700823020054824466202918337466824013328829410421091834089915868337952973844990492443128233201427404663921394213945807632287227701690329240250355153595053453992443373617069869953372374447133750106886893251877388999118913470842756657789998094572872042676284349352004262936469267414419098172713074317802850759384964258864143881335616893420428424393159170469729747603740896106890940626451129441738270231372932680329644417031746432953582018229422623490543494568279867033405264346574925855633442016821922201761941125780888402827671842463632581403264649292679550282146409423308947920029004085726697132829344535116618468453391477444436764997519812191277592081026326974618247894171843389338365392308808436672325840898033173746187464139077801506969176987784994814203672207291295583847839133950853557250799958937858686870857829670798786157936725282505611091610034209423666475423536750623079547657319821758377561290470590655845002992708964319186274827454315943846888347546380735228187094140833553203071947615463848831626507746312941034300085989712239411473602015630596042366675372599769040373331204455045593227383107459256781947850789922705423572116600399273910200746960518111174795843126336078250169661218737502236129573691096889660103868089814168318959645011558315285143567865055308575404273413903278026316652196927532625143059275446050928335944734081942847700267113878968661396113451086618811040123895183342109186548119197168127897143876424556160437700849413953395972931305977053899318150947123044707500609552814912900243681352478519294007805969930272441524896152444327497979063428933484765674569518068706369889980632830308650059449454513440335400881448903752052384347905910782217781207210748570640740985402985449437592194177668453936673426328176938658771066415859348282970493431753848974302524771733190011288990648058609558181568606206818920866843904895862434195731105269528620660595241424896457795966007284349037426507092386353989876273719563766630279556114642579051316525054237432133861771547802334653615910107401001582713905085003328203592335392261368866086760825015438961963493140390192367096368278885379775457060389337060931697501325957637917000630256464400309831035516771068266377861989833055923731746606945845225648537736831418221735090253548259666540561059699246051996216966763964186136502796503510580865172667142863908482422273987389118813366055726312962509944070201003550873651958461247485932780905255885873666739511284257173886139465902979221898286760865507864133056877051013440413443662388268825058268241609344244709455877961211631581529630104080131484195421780521459003492546982058279122344394346339067884575500143732615805877812668522179868381460449323714527173875151818466194897325294912031058478493818171497085059114085053463798767796698174091578604227920721296317741845005032737414036133116949311817447142399452428576827660460731308136818342975483461914762154270039136366453725164731702213887737329019651684647986594811909112515057318536502266802129979160696752852265257500828685767788697211853960320817197402349268664428090613115610658872604872615595686321303020484587175959816003430439094607284684644018798634098769138697921620331433775278922553319778550569103111099900373251888111238476307623251585712325114655704237961838403468794763516640791545284250157831465168679482888683222590009391974941402927486614647435442184225438132694289233070062101576028051886047875302594586425447262913633670809327114641772188364962562437942772991073483209105004927453606842440361447027682305964069739229642868562388714454611430699796466286885322894516260599624038188595013844550021277547697361850929934869438122059355522313219406000349775213092527606051072370641142174391923528036216126627687053638905981844476133143668212981566595382177181609317471869888947514942521993428018123514600701986859741420762786013726773801578666631851930118261822788965409969563817297116011620878091929396241010762598592757793766390840646685404492311830838457915000124917454846351362171478113338540726502180683325150482671312943983470710414210647364404937519270205896217781185044603997451845908148940601126365818015445181904198446072715028368459746844430903652706611713063112571583267994370047694002455918211921041071830259446075353592526523467761427213291230286359643798203454757156897445792456196858904539548724775282295005010907318757032696683765761296539658950048467026280948919197078260043205157049326491813819225292371172813268092201682968213949022044182697094390412572152125449584094024803831985949025615028810212297136666489086871976062484114139025660987832379362341053338941906489378780993577174004452981619147317897866596733004808469866259060538326839689486048573669250865015864090667077891926090780930592358119432256105555670072016829121925355959576943268139467258739843523587404000633326613539168751397922185450355784114635173725520157221462616586343364962208334581191273474776058536740207959090776964206640917172393475451100720600204590528929583931306352396691369217747572429527974570185647226253842650115653176049331529795744984061353073262385025370505028919158810009173716955091299362868840294270167255318666627475452828347817773241197541226871764387786921343109500989499651966936056387330193228328724222048875231652575352170076203975315527516132258015449162186278233809861356544549338414861225977578172632170715490161611984749827303687188209588804872477952948348560346618370391673299699446897876035798549744728438561051573234349858341645980937355234606654934788219785461256605610667560077431111177949538695035312162629403659219377816026519117971019821576121725105679847942390691268985841558039302454863588651279281275028298421045308835390660305271180303559384578314532536934774030475595935098151572194360187634279678980794334564753080476800691984972055823476512668633519942158451544821061931366718854447406659408124178900781470879481577765242765940455137998823959976522414713040276942812728240537971949843179234322096666726834182155584990854595817248273067110492324897504623272169581622355946999718846741827555596974574190441637037763536389807475929661108637315958926032692186050201394830273824495696440487887885888557996051999449620220051025193508092615851480428812511531770061947646638213704760479658507184589445002902311964750488624073828676142237747176054740198905539601480783354582134864964414828022245631439134545558166223870939886532230728876177308916993786691488127403678963353135595135668549946946135995622085971232637071948154703863290163812197380869065478075392873510131632428515497957985901999620582972272672916177223672586455610977807417500865573414110742573201578363448711924688771679720595349393995853639216927402376659572077235645078414570328625928443877549771445669189367171709381202382671118639168219487908324810749035025518637070548069852162065165824406944473674755101548049585736138102076573232977449045584263232884043293438037107282416970144436300656019700980225879527870455159013769657684110989317756320858743777694764975591232069729910283529959367531795945670647648470568791573025768688318085241387140674355602214256817067433476818531404921294147681266179546117127831888273017224295174562513208519008644494313110588849761994498061818419179466846225863955277558292120254132541149097005122033557345559889556737099320988076141447116368820590586327749904497012459377709334091528828009068647953629180436381226555295099645464956676229111463283827398442742256275732696589832289007389442931335982835835018551103619481972362536037480134771160908058623796088033552672983973334166872957453395952054200231505399116586062968255532804070076152184203830164894069964678378904963337622215959385159378218226020507706981090939957082241134349202375526860681197463585920368458011738733307324825473501411517761467298702450905811528253948308766357268167984478237903463211908255891554890806694648836543473344121920817366818685959401313215888632580507452181162194148127107402832873092097859644649837991989379201536337802028440945854271279320084064651353817558996485877303022477758480936112913773870460058255224143981460351905556991578576145535244664749615815574191306891178315266223323254444548634725757058300997730183888168859434797994157734064777928260848177615087365447216451848797703186257013242767249920080734329761803175817826041992515146148858998528448095881714127033911245554955847567090313479308791671738850183755969544097638809340962052577414977452141734227112143247882466293741427541967666459634645506032881881974914215145742728728837136116433903754537086500894256539432611054319677346502378495570808548052347590112232199377789188432648876254467413957981748638258195504023944747215553934898436100930218752576223250212529701779996939328390114395174887732585958302667984854785953902702245835136926543868634246413427148214239069160606351212706800658833306625049513333779415841513556160950435638865246827251502715846943383747307728607359350521578295864715051464092528850943106624383671373499820612777884679056200264408011918605153246687840128545825280550112617495601201734774468261493969594611750704643765834447975215149651800083818068260264170933730544522163478853808611642764924409738852231570769956703943332952123659282013609458445510278627876150159203658514076581375448773986066520144573544680685679283392357625242114947535263954684833986719949497250341780629790001469160003186162434241534446652770613491913054632093187465908631397079919563606681952487508431821226168130512233556233701524529017668000960555133929814481366912635127153736550956162563897875238108451356307115239683199447482064602865977788272467508403726941606092335754110688406329364354461120384215319163751651884384605283316132081426508232730260260702496301713080243539825276349153124435735158447236746473841108273939108770431219863950784712252111747964493621895003326812379656855271980322009300025174781223659799933460549561226330243105764294432655870081551461171261917415877302200784943413012296135330092335161418319842674428054744669211800544891187285475768036958146641036008639164181779386402188363043165723088143709621995580625396448392912345017689204379579530564468223196514467189426963018200793146594638708829558370964298179079867584800808938931990890260521238720318051940239896825600966244110501456265855037879757803193059974905643293343600565526413569955136476433618759432019055432969124956283803023985232545038864849885930428425290869761400919718593001752094342361484525578339781772976131015681077987049648084146723800555517776412213123604464650430728953193818447020317574258146341247427377928922158500091728571850670645262213680319213121436145401829162945197047095474917017532484794054632612992799133920516658460101832954696271749972781977843819220374565931394498427801174738684533494553199542352787744268133892043805474508467908439967809191126246548877381857090735044712872611480596485996783081655182151199762492598446044803719050066829698757267073241799978602450436320553486204465016819768620366978784048890703888650926122384272855389577826325177921120866018301615708681294162001495256001899252721823949547495526073681831108875318954316471268751557849871539318902253777202543402773134999372154246801601693141217535517486483787106412928341066986982428797657949234088194248556990973814171652943714333531470256528818304645368640347096841006094040778151189521180061589783917266465071755432250633621047936655341045130526146182807874630302316557591555325958323623363399989847489889277098760944991418556358415911834636791042089236433372789852502413594082137867954586557083366331384686958434836948100403783097616970955912352007025331852018143536466709414720886394329179652454224205133038303062643838345765835419977925861497712067705167459276278733276465869215942361471333157265078669332509614426809034590720454721245475946405141381430966846501406624224200705913807666445311735964310809617735738178702899091208649875022378911804985113041874717005903654451005600205006162991308435305158876188832462439421934551685582174684942590519682905870757085792285460534675957971098591986402964146014195038104830697449477803658027725920166456325102313660528200258137584797731488610413735734182686137913610530109303829341946856025907494274928164936490836398228141810653615718258720842817232033264659433604784038573172817883373976090772730362083166226751894996657965260553730933167103587925816114012980530323465446709451177655437158662451613887785723398182228450636967131512890561434890214876111330782527120633266698570590865045545233653895358393449500388778369532212164021512282396704927033492002957198134267739016787538431462492238690441675110919509077738033440882647380506590610610997923715292601771561837943148144729598729213597119159782402232737475031354375148687558280918400827153374805497203808562869921658055628258849015043148855193420320098715971322880905583169806375047247265370871501342747889419981424296142363887094694830721605518599317870674673543179577202729982239933646047979044764556394242309742607547959165848749027600889214822354317831566183316195054080371693246142990784672555912292574776712588501938594499250086228779576922374103113698273565791250630645123806172450811434807004943715650144312872275108514689072857024976968329706757158239984860059622910439339280417924345492704336067979349214377311714336419575536197924014218172005659970449997655153178100347654740409975713765291733717701257409741013561187053271990449871590800602022797435932698003201104686044452627467488791073104166034855167648884761569959220286920119304990458661707867535952870211324005193141659926698423384726912007667833322820799248207402245758098890440014417999829721739484155747594566221029818827540541986514620585991453871417030693172576595379669994967014679395899846534144785337928975423775676131890998096865590417437260952198178240494570411280666609894871930190730119464137117602592420275479069808318024083954645032231779159215437781795476943677606517675603769265265500707160955394023734318387881703735692029447042094384840358378092719553315628251756826576846109203200136799396894132013960783118150594765042307155905062329477238763190181592562724635425893929759442789734651486132328092421285501524092671390024016009472965884174171611097122358823277129917782442405727935905685198816023107890676901779575316844514259205729237104302438832164810848154007045886870535050802559595777015053048736242128895212041873969742784160309155091067726741077838326877631611797901711373973681774102322843326874007699372456944292019967159083679655241946202510607032622176866214971568375184829124186593909928311846925319093659727523703051293309962633050743330692436996251332866046430634859216019159317481927960486200377591999942397515645081012260032554891636493812566466163479590939273488691794479490486209547928725370430015410460205111903137675706603604135569954190266520134686461971153847444404003998584767859730889171238877004944789225513294533291560566873894618053307935356646300453722224642182176198374561961976248153550530508341723580705609812240761003172403088929629167409000012631090529201440832178271433676594932239456294612243835757831888393359160397643346866547703932622748227286386931867553925673079024945516250144249392688702962840599080881843217900946033409074304030012552575560511096235064551676705602156435396862854484478897469832098429267642462507004661703346046502220878595728022831566561688974564111203715121901300176178656264099690873487705124369238699945392001769368303027334779425402014896513117988812956389738523629528837369618613436288129174194753411703926748719590048073543484260989255539866399320607545871676557173923277977216623761229868192710924598998798455735972071260443948839720949191890136758486835197450066323300028487698377494887669181016657032744564834510537591016612085423912780985622938433619354021552768565136363166994609596657803954608072470064515922294121809659315160182622883794852957306492595106798723827359418241915575626176728090896304191003527325746629703497391675790077338208643299591150132474541552297738932210641714464181730466093711761239814589015316204963831286366140730124712847625592336611765936336626993208809422803399433215850656488622565312356326278397904350520236322123759585194737572397064208315082271194472542721687982934264018985811311327811505668645252983718411476610722226767142082839860272716503563451311414872953099002205610225589530784167217825778140642725508799417328568210401524923788848240089305532483502219527611795006938063616679594254961629845577633769279192526872767508314516169106097986564135521836341669616281291313149281276802583021951574918449898753512900686714479983753930989627661826530069201274130549475138708393800911497032357844132260468924977166424101776585146043371728134658107680936727532413116400062857826677283667202429576235160918855975560151111866574873485137657126835462467778282211872307045995468898712043411854981566720129667572120213939156987236608900870055372479233610818403188203345431905938293240391363932752337770719605273049453442178462224615815803108580848735467641952697318918254353426159461674347888415225144646019549509084535122811034287728575933050163032905206906544766208926980318799891424856577754262592619039405391712226110513296763764187087552659414171890605571272190568409845164768791302971172524720775206960699208418257648867888996894913408759943598804555252339561068804094872782126036383087781906658396732193073478819717939763202809701731531913769197983310227968394248807416590568047227606808867620648383553562840422537682563782639561977801301142612321819474760280602532686009558727202734225685531496080692047292056779263531687444939529219538776724687317496897636628225908895296075582314662848016273084633815523820491459276368018414893326506329377106961688930091337822928436763906149011794742278117561522553134248291143199811444088717319773156799079118850121497711261089881903816243097643761402138651833016008023630294069804278020089811048573568470071870894773107489422720484606494602337581328185947648236887232599943383230033300506724074287017556969293443848336815872001371811235967532477585989790586899908146390129075369618574634677334242032238397749425897153765397994300238948331450568355560853788842442644303209282797667090098889895755616560238646111653400240108739406858622145500688484130616657184564290131958128551727486015355550942011523474117798357798494712574749828987435450100061348392848113357089001340529394430063712019840966546855235656794310157754865133219909322896623548629303749031703519939200207954659868227419745499462070404232294695563960581641098626563683974163150159777291723704774276869307104806909423325657949700507798641553455874541338136779720876125466942780611545769612729134780620008952996770100289839188451783457431408374391370260150883994422691818277520514278402571953808517500576517773750042577024548897833149298447108064967490499277581864675573920535015333191690630658531804266297545103165964691173706584851352892210198200704278597291767335906212524383334074761305966703439627532855584372671766718612036304824343074144411498901096802031705119256585821046413960378395608139994377686884380613891389051198813259564741502691692858280447094915874019272960406548718412178286880521064373785244882636982514678826935226302278391197458377737707231653773987526838106627290955327763463422384087051918571212722855010128312531503542534372554426744710916085162884662142674901380957419993670833905161517481269090432002153053414725720319833075028533297160363117298389851286276459011644720469049448985982083890078713386460564601540665091112336119758070470386526969302491869246827468084574962690926924174927759858784359017228443990832354212179653896407963492771533761718507047294981077571805954780573958610073288848072185595793895926877377166538020178740255723178213374007856789086402917908888817638860445341540817361326379444732059510384180421111174954883997454507196093983934016411971415337363296170849181474468034620514917538518821438359133006459701818366634162520086819965051851203017412474720445915397584063389511417146560281055572000320004766452641839978016427244783670729448889185767406881344521559376479354137758842838460125179935564822506206861201964777709375389727154537754130851835834118116118009935968623246064026194322620247217447592039924884971693247980656504627572039686857963416698135191675838555187935782770660914138230240978951196434805600568230322838017891358753122598255390524672106525915341157597109599140036564138184200136741478826843251946795939076892827513403429394679705563909558242198869642724380232218002241331864204392000789151575465601365761933019525029851302285517539488862146141371775613005996764167596843917713396122550372387469778145187916533726150463877445388479019053509928856739092058226682761793286312637417253289224766694226660541757218172377648104383362614973923085601372208275322045438248641011543836891423934617579914102811462288341846980723200680895076001142851154461267194797861697767981013818214226090373983530846438304337325895028365495783926800536794377755892164155736215079156674402348394880954097940011361533988775842673581253941280049272048129635194748489056340624014844106760706748547228032720339216188963366183498825026704901334913627434077177827941933291277954600446006610962698420604251817687034214194786238613978192029062185211586792413717620512810056866388149343709356547873214182899512615775090635597272849686638648760488727812494911337799361108260622842178397110801098959686772588432007227158699406760244653804200480311608298180380298147233185969377605181895817464110465272397326759577076908589447003059945518402251016703376576921691321572566595135470241312347515323176703416649125468143548589895273373985658792850566373288037938283300129116176767987595191229259725975958340987184270946468202880150807865253362000935644630252239426808434701641013517362785214255789577482944814148727993556895858710036574145435338688180573603058189286930082132660669996897941279638186158238302138200612510821913242278162010053160911781535281524977065207955999033234399698948699034971989753677583411672911176435407387356758313811251328396683112309793360276070750406414680307639484181431629973816617748406310346157791595771060337389125315124915568464065864289599604404074104184697720334163226716641913605731358457273256786295666367199609471784270910446657359062489036400470107967016165893995586343545412549556777781195982277853855651501967668698423318914936319176676059527420104024625701793189412903435432249023568025708482503904268124201150839261332710430167278383787998462878019405373192523485293355402237637699918476370891044931139286505079606409817304505181178379519704133410730223456781935268118041958972124082162527822407367044518216265865222118522720065491125280566043634839695055093021822806580515090241044647715222836346895181804077588008669645405618168338691912838667215171643815994767250893598590346519467571158437037474563259443852161359562712634978856815850505394848583809739924854996265510704323177224345703409497364482643735696795674822205661128258273660434392121310304988213381835857473000564231195972581449491258982883167160830503508352868630940287695882031525442909229683305620119709783774918380531583153465447668431653273283234989295187122064457273859148595943393700032466348256200914947612113903260748403951219236803040371228194670627864972979342713913850469963603617377688181532059907905881284323906337345075493214863243576805120803438691682718104282819496758836584462037953768262642172165019981570577638213619944941987330912800374118137716097541428282788059043036099438627619929672953805303918343763470433581613834711757026472430179350591558475616305615496036067154593688895564465959459684133204305775657026702894166975349830627211961976542698227863235399226500746837109175424333003954566047731728257301991643122059119474257044894908158244455199946364969859065798067925235546056188098308375724636518412785749590121364233655224192302166317227098552289912593137509271284892490039401809511131891079425492539233056257436506781219646270564231287175561974677009200717783094237108087697485829435906690876331442374663170225969217546194694752364873596547769694596445573242624134639019103407594279008702274447800247681389588341127557999065662572608050541541901436047631838845460441046244490334624815302777505710500944737811362158834497398455049682424441746021917552352085974105622558209142064914768299842992371186037457148724419815506535723950200534696123031238165638416764432646747508150639796575348616477222024259975696531461834967900397479222037694573530902956470839303814462046268745495128879391845933513307979930554923805460376954320223493197940346380148286808267704252181436557081459416076605785269711361339841141045595805914408366229712231701366027156179747737970802860454456732209682372851835588991486061468683914283028685675661986378170508110773900537640866870775443905119817008487232061967732127527721050092114727747600146915824814350760694370329412458286775306929730191721213735318914077459198682500085231582041150623255354443405274647086550132745524011689615223677321747483415635176063162258239725506435174239615219080062095015130704636611602649352521538333954346325298644453491884278853127618231703892767780960641834156157562091613936999172424171382763343367916337663145761471624277421672027842132799059869175797314457348561072024476645999901059725600447250985100216597225605184324748078200999151505495585671217855877605482327000526312774383989773431578701493293283358097405118933921052659728820670609121642467369408253814174431414467134345841103125042260449935858950462398179038347045153986102146559856468805466991497506676725642877171609762259367747069140056444206672318726188375286729903527761355311995383795356233698366480878269765114756592025098604305676513442391739550749210470257953030927400719989448639050024183634528382024228755826516064082379620420868465579091188915930846508995945991877347249238491647889838989702721898142908041815762743412831334784457230610145847867392058034155092462435126538569890261679094904112170240394540561461355858490202059227901645700012582901944500829529518260885829911059397218025395484394562279957315374063749907570552078515636590452905533728780029966810364175601665354679705934346711530498202593633682380585026332848627306063037233265221302184258445248479172502067344436679983633685083818271965719834403831536304216698388577860213956536235268512352260236902712524046298617196850618320780265242878331146393985931503345310753019888939593466488698591299017828757657301283760378671257243640369880398011380630030514894733210291980094152411654639830635336839520980625803136551478355083272593837405664028161960783973486143839977759008669427535935518938048679484936293270056733080092265097260454738734048452344932791859091934658895392660713142981380696023264066040480857059456064712009182346298356257804276534752788651564999633241419590888033197596860938012806214379009041953026373862097209496432938942340436882734733488324845943734423652396858665914430411897297639847207376532138804639970835385457877255655201584596500934786644266755280860194510600894835553776366763520206476268092062981545564525391589548271251021559148052823627922685890220171409218864503023905609093016530867643727466712783064495068852284805381192040041337821562422913409801088661453910216174830869179041175548710002718024000406075058315151923687928692132700882903634646845313106322178088495647049487356991743654943511321539675335368444044333538340429525425285333474236264094918653285229208173799234371407709933245395948485290486932151712717771926447751747956131882049782618902899399610595547045512675697896732560758679101444398812413036998718593918095686761695900848612269064371417019415887226864609127631366535081461971689795193787878949455019488714054997922749826879053572882730252744633529485261647403318931667785157893341921026466383661905112133464332427184367041644827737167420437346826064721251213483450801853525711924500020095735200884325274396224266306303673777407223342992931107967413686106609944028529888755899843825119854745125681853520544154976100657242534203576116922093461091536094826601153960295797646730113346275477952454112814688892707443983605861785360891091552975463740069423228102146680212901434724791824438161812280310345280250767638708862672209395762637755796048112692494351026566224926808870347078504060185806640704250308855750839512305637314478978712726279516891836440037301970469408340757214402216922957017174732768834986778260101789517016558767036015748574493290092210209878563043809243336843666726431246354331732320191038465030585481027603468573634169435143878406422390379292468586037313061612964402848940647412767717155578328440445835014452735248582932748598300656176315634425544506377560768057437950945654866227056694588346981879624016313704598638519704054060587194993191469609695074395479115819310608501235233180813746338415958604222753821844741543132441226177215248039035369940887313335952961610410430869363753999641315532533619293083109293863096343069798555638642040922324607854942080101826831441726896117751675353070321300080355170208303142709884256747647657843271739986268891992286659802109106143303308103433198889462107481027119515260550097536097583538378178594662921818121301399526838971568726970979225582425794134535075203488640773799051434172093980802708506774249343297721640960700374535613775719459906136534011768922163299980551607540069654362357183158233908301262872018441676296930146920331534094841383962365616749804724805916197878124554542800087597009212648166983274596863135521117017615792903595642700141772088601000753107371604309640274894404718284715612644649927161732246584275744958970787046524547478704822764826070156388533328527788667056727119402002972564210718171394888320629941223404663820677639158192572618747484474024552582417927759524435884033004338995962396205470925099775558449022700151250032922737456676280263552002085759864916634765080046794709054761041408760174031770907331068340957448147102672628767622516155380129334786118991294449446146265436208934796932334315944637482110442068203273146252794751027906759407215658233326756404055992608822927421962759175363908438112571345237851024879958422979717517633949582367724500060192331663640831016168624159770746156220524913921257267964336197401191173141110522022327009345810491867267930903516324259386497267603086480446282130246320822174578012055218635418858249020457389096240181694513392040812425386113008398449386198688039234234442116412102552684553657479692737485270930633857003032717903771914012326305926240181874850704767732956769835164490543465337257588754508458643470604503127831400085502621668137976668856739966215580300396652796800206911835185269702922980859354639206871389978339282939385966980361450146032673510720808515922392469279271430382831720990595802301179507057257134129770363109243323618434921502834788957708837579094256652648724273330651084576645246108587030167457848160715167539376744852804173568468626169607236398763097694393032320593668887589916446030119757764720477927237461942140698840273775388737817578914415246799086745855080765008548563777556479033199498506312303360756249066775112110954349955891241371566849571957155211409131683315290042966200336020547467005317328918893131090981228705625953271257727322743954963420767441463936948547341309728237549619759627272795581151748652739310649518678808341059166024078286110423663352184271242698097895544256776762755512111753411048238579378292047189445055120967302822330222653587143974930777747110957964061627114779850515393630884821016357340094823559865993426204999434433563797700084623257279246690128714028027298814875274958370466860771655406010894896253695113929281671078068093619796662605734494818943542616558234568812929000434810045771613926609896075998534498566862506284482817134802859731376389531787999831349975608661387354874658292501923678163163865645222217937397766660997332218614590120746799303523282414594625709972077365154438028405150739373768591257478461104971782553195770715306661148761371783070891155048095083557459863302564485908897227347060147035031883395649750781533777221686906203138686954057118860897331116404009333552803089529868542289359166523969032731419992472646958502647928880450422714198161242332212551940558362764904431898397179375601163815240016999747822189509411255630337697626012921259955068676629727642462243404963235491657475152588725904719473618969554894435920222960774447639636918281328292524558775428539553895703109795125191987606774007915952866798359778349987489128566164231379680167892441276292775995935389485525793035659353064948423520617682960885536913233531237297946401002478258452161634260441249364114966483676274431935043573515927422029265355796546423833496157317411905138590362100714269761007728571991078555084703654763139430188426247117449456886590495698719801373892127566153524868802699049419989284704282943825779674351583051043896985706981667053110959350441749368519023452358429248603291583012007491269780955125641566504036563819232184145947461258196623545056012115488261736445482580239492175662714354757378668330000028768854098786785107868136048465130829408715991726243599784275759833186443417421259445640281436752436029394762012282590665992185329830811985118245714645599722576448191737583630969425238927231370442035681872460702852070288177328656041125560529728096174348556653919162684079977985211228764175604353622143957779100551345171654714638017034297363142863466257488743422435324087466727812180158978683393233763127915911477603644868586021042292992564608709890932095508166674995220785074895386623884058706761265386169538217017238947024032692131822392078820245126595724857978081408142504577613047041144843728736413928813045161404279226523086872083213339494900647848545809844406546700393079268292814932545218262132224724668520100226661658490824785082481147519375178028295782116559410912670911640615609354219933490754469763984020968494707525211590260142400914804560478743901917310190194671782167283660546349627100153742754069310530014841584227992395346454960423859748049791751671505419268203341732230110121666711643760871117489968709526157790908099244198436654393798271260954766060746262422945502797509136561126381080359403056277686912187835746568164366002106793906802167092040851159677679642946660939622455105240349890930930002272043157573357255171730276318454184444798565184387623586105877332130465905775045983832587482585394475852811076760432209983100207594349555294814298913411856304653213066647598441518596957583900432716910894048359274481908007389824153308209008717983712230800224539731303166882993853819137286811216693311633216998434708403536393947078226661198739881853220785644429094375603415098563526779684942968713009588853918962359357319301150881754970174806185306920651736918715060072311410182354827980006623989044618039052641590297191463507894960178791059160906941108515361934199455681666077140739084642318779673600107414191365414208330177335778064066827738725807109045841990577754707243398898163018555406587359955794744067826859891256060118040541473015067437932076478430844010532006544271584725108173206977762276889921724521691317311341878052355154826023605565491532512546361915578204331984703356577451662905144501325955534661880535577992230717812612583871489628561211604643629485484233121794355758274720187731277410330072383963708773740023515132094748500097349203366307851274607545410067168201249107999626875601500497055984491801167413609509504378219234519946754724631848333406937764150824823646774125688520863759006992816608412970008368862455289820777160662458138059155971506613177455705039605058583935089771882297108749077607146921616853676488859094619944207761004606060497596085241639916840040232643378461514147447698831069430003024793351992659912773270385266006954651009240077778004563043634033288003302356772739421639114324394006187139624248315602588423041369989154825607379849316886713706983316686039143564610033154509790606234530826923266939850928277549772015804361946133576791131188000337830609138702523480492509712385928458702109257294406574363701387721040075342011737204210148898606239484428528144623142063318050350809372629398484695210177682860879633329696089014630671936190566860925803778281147593039336047036120517689421231715798518508829659266354489450351095539369930118054954972395404227206118434188258722582301228809342341058685462249589418204741174716568938921648139008875047330653079916493478133567512861908340324593203152089249841932394725687262639134918529457502678495884516644668629839955683759429169428760136676973344553469166505300905844924813760465391454473746574850784990362973205872813421139799985224267832456059536812356238658049216537415016443366100062773190515845986529071501499594593699048082779622129902863225868850745345363461525618321982320708852532655536042646205502682888409653457188354200836421385879947522763697354168668301122258473242278744997047659696580638681480834806576917423656375887139807594793213508189662404925667011174830857273153671390694251003662786340306999720545453268010254120621241385213284885487866378730959949507431266402926496535239582493389733433335330855789395332494996678598232226158036478734901574127417225957979832137583241272488077702457025947742596174651979593892718878962404322501782099711652057134404154116327465082307337824068444987833876415688858289919895562125066010089629060463144930155932831086248152961317104288616442296296555817778542883565130833425417569043137749182617123123628150870562618578307873757175497573274516053543297168772649351991955794915429635679290458383829941635556433242564689985149637226280982526837324471823393144771106025887880707695889300890956494792047897451105283173524996492460052792118197457604205190683758912615389817500881432277464629623927060709289281522309505933542178697761640619485313683159085025093181832367724676410656844508220687510374812932006882135406020011559378674332740244475482121645073419008460567561164089932790883233046750868125447273853422455454202585952757416434147908822416425724546133915622479216269658363910741850314486452233348027207569630070397132390619525001221142139197332170864663188268494690308100422235901407671095380348142768053034807862860935714132282519058437355899156020012591346713307803593020120747897142552836136291072411627246852953524535520523801147949129085033001239376360569523361646710630626506718749578046383671372701209162585658860203218891947865722918878925962531629143833761101492644918552280271110402087504398479188972657227433073053291214089254145822933381842453041345947388188226420420110511876885000425213522652357926707246592044217340036469422212388581385112949036736915093402613825934716815241141064335595361361660585365920401695283870800245399854975688969452712009233342153481644997141511566680698957045319673110801318666918541137899213541624470899111893485603864313086076892667626109101520342600752691681920367689341078804140599666258955683282571219727674310641508680956519556677127610847541969873282486411079418494724532951200261282492907825824957494292485501777997797635531330058383940773223316916126183840828069738836615089368615452237888433392124887037776525449075103498122628592123712697848503497309714814274423277409041625898701748333660708435530034255302340742421705150753802019899807676571090311136987222248575901383693489463714484118261075120904713840816181903120701064753307292793613476145086788921084708193740555036052391815071563896559594606646971676965791215232729548162679490528038973646551238552035457782260179412984011458070354905786151869164388348646519124535528144312532621346192796370254821687651827886851564221301794372364407492577822371041851595038127951363382063662730734638369072762055584129337984010649723389334848647470053028383625451127772139953981068348995801642971210695511039277198956805099123490165918932594225225242181609134075926916988249172771394300343088386680386863723631132972627639718333153853656054208370627395666639994826895724960195775286746166580624730663556432311874666921122599056767253673340822338507511464459627487473286785873676850455950478426987234750542684837194279101850803045320706722694068703732734370970418880274826460575278532788637365929201361331304298535161618605115614314037966968491671116652348695729675425898436431462918515822411194721231508960541777715423647987573822214599489465151108092595450868909146148151750211610378706619861401475748926274977399048559282360543222155130200101592178657047572385992272318214369726925472803308178689439037137947747416561306911069615395573156216681510382866821181723990537369544456107420069598139656721854042272075116961079061823200947880424376019341305296225299690286717017032122055837847879829314494553099822025173587913003426503851011665579287535513997151677498596149375657065450170870840066901709553022335681281078598241622730093399833900232232043880628579768788977470820478443873137710519251777193631080436273571571547265250467822079664187760089704078668260464265556214490501013460446083379711426089473629546497029942945737664605034135940172409358649605131378784072735788245247432683013106212822248555142289337818802665488893923431294025916716117083014425843731928081975005739033327468531731520060502587947988809003589713833351954647455446564413269780461523831665087200015212953075384662490471596196587709000522685804597568078212905020609442227296631424305914944496015152804884242255361911487646642386480238703254806610537877722815758735297247396281041889030915573364215529237039078930994293007128482271796041166349591154028638074679338092233289416942577161628668070093641860743622873684179297814481711229157517846779165614402499688214673413372213009169037486213175043553549647210270662090194735807996223112442614861144305468349700315629434961818419542556790824204627559319748194848621291212812760197392654098430742303678304240701955174863877266873100568926669923636124068810099867013972371666819645444411108631274730148749078898088414603102248785950093715061100146666234386906107602347909812187065307330131275533755457831091777377506356658292700319757609991839315058123334515735376778730028393662906626134524170744385739721423597140224159379927104289664401563565725157981336853820090320729765163443828330285425180538243623606197929605458378555043618038777438646133172148733979146209782908914708045485588582514434933885151175842352441667699639195539433308120699095853369921339885915241066399048466433410121970703647494776587916131413692594526116819595701453435439620337633575430988155888529379061319887209868237550373976726753350595408957119453769396069371648412551178495823812418216114227008069745401950730155249038040228996719021545174179932731905388642911351291485250088825291421093616088010934182221868466654969857007715739540601429772642917824759856408453250667717481910710983783174447982228189868149902000808505947854129836446700320065496498476265503526400967318885679725016453667118855015951746559304171112581893246476933877264661516019762241869108962108156191295099479371672204053185382980066855804531886030381762833834331320532923642918725339785582570272186933971052567657462512453664745250279740962653193336659340741151460442821741429671446559915884528178382475626384266457916075152551762202114459144443151847109514108337043082121736205763654504629611588243813536508683585006395123346471807386123475698083433141896830856170915526503162634321120863040468873872559218536261901234943210199731112076067928847130155857809022864503948256089937235623727815163841821704503878526160685075974293929620956773257731628803263512022039300131915624026082423667112174536785672853932787991999872618597513959149719062037151794165636918371425712824675917796942735763914505866435860679461817212448596992099770228153848100377781012490887006363514682174777883459035411230615600222684926875210705947409538635670750203720664562039442854083724880930743033120408707460363995406298342500561702782063978531814720832501448529445812975545743999863979935743252434194420280214435865363775338143692921238402621726848108918715274885295776413705593878609776679235347228588187609228756207316614163475365367859501181873543873462127245297599059986313619075080213410515035885336852312097025083593194125680899030530719675988503420634870350463791601130198974683543004999181271477275839178134719712482330520600868288925401069624517803663575988105582065707329818632199009887857680719401854783443516221189165385439758870885123802984214905934824109492447525159466168041580926178788391383921365891057211917197272347757748798629275321755251689283232624505056632836322265061827046760546170721764711058998063529133023512636922572016684247365248826959512853819734770282319731182635409882782683020095267599712582270799567776809605882517423127619919962635264943486065863939782069451349271724397563575855971001616042256002486022404262357446406290451764936165583086185130030548991912568922249103744003311552342967542249444864178129145452989958072806314909325315675134208746280592095809481599375639374480912686927441211297684177491804740309208323743490929698876095005712089803839009888839823916751329793788445819045125306360809149332820184957196366048242925338996702185121464572381961442131548852976805933390491345226639496353302861690448266768197563314752979938497532027299581701648153214511766388244055854513332515416756304803764785349076602612706168728614944257462997196139339961378718958593029069647003497810796116045341402221947947002185098052528361597068908660650988886343213086441156949216033527302644419647567633918322561540299590973465239565415551955362831246313444998482149335189299609152241226651910412177023509917358773669109660284677957499552188154973289911966314927481913771784828219872641489179473117048980993302804395778942571928193365570564648786048503471914414659781795148800051570134039274139977746976884455191236595402797531292367364289999856709930256360536767192902093508256899031940646241484704544220145648896929263978386274127527625582305617105683024265709908272135803561967932289993936931067456441464155834391922915795948010803839553244307503264122651924220562269965989111024085769062722766316889135335687243278200838977917714376926002003047528275483531998912011586443258928139569281127280667603611645713286519022987750612009507651970515705703735654913855018047650811405312613671529756081943292810773884175793697905504675564895900100447983411844993835254432158508442521464506314009565355594071281181639150932892836389692175241769748989027661277409711026914457901912938514038305301285831425277098672981925738783467830370571528746662472500701992679079437835714067728059446640286836552525090444691709278022735148494548416468963626443914172215264018534218851207251478255172887401482330047174722959152251604264045906824752376049586362744622712478454128903707832301922063173796769940848988421724749999721615494329635389425993884294697102760180042467285620521368210970129405132114200201827636101028109539029277736267065430119304394944047088940417888513263289864526811620587477803475142024347557595975660449057172883354775422103948624378967078298267872173860992419192457418337549236564217536976512967206265419240826794384380256633166861797834446847863477906834126547930150748492354581022730566198447712437149412358712464404600894207538553596890083847522178428491191786221627359852199781730147268033879081052550469265231152027042976984184910489101479722064109425574222800082008643488739393358113080420533124778161692097615019295401077536188010520639700031443842200504250923936409503225372421226813518022315291405572978900027799885449804215862957487060630381707351194991832282303958448491344987116115730807157863753781616733945722311362026801972025793577031992469364099437598171621534831394562328233088425159726998544891689076922828328701888879403770707638750300440093118750511974261645978589959069070359728984894949687897732725501188195073040365106334750962665689791109411044040761399965594943134519513563479039017759882399229436981052049884626163531784867472134977836311237455588336631614167319014797340180142630460592747058816436807207941238111464171118157117080088430465273403813017038773083562649991619253251877109615491509153201827863829202609950950721941980216702272058988905635961988765616434973969449831568921297603328960639165357794330324968337096928791617969080647431903362794537127772566355191794456658850712683851558383837815270728357719198413583076692473592695981290410660716760837378834479047020971220370411193912212280268813010387535592101305707126568944033570213422846391656670634221016122008250794668359690651762975808932740730424140671518455700368924668493582802034326056003197683450932628692091642631529909234179013412512618040520500844177892425602547089426002092246259772901249313244737992804572877296785831900351048875513386776110722730899275690834257633380498420412447969919870599815714241730795614196534163000790791430590759200344273013770197851979649153088886392537352900527638121308234411073354067987405231917856704525810073895815002360493315587845056121464930021406709915226497021695541943153514668883888263826738384311786141000115028984174407498130876429501355277770562475185681062982218142539948402178477674080388879894445649859623666971073817396389132552144724159372334494791870752704580248259351417986794414364117326667936985656408170259148894477635700667299340901724704595116262192501718005030226661563485500906693560713062739126836490042926887661146305147205904394027450333505274464307117783618727946350248841349896910348449855377123842062789830529835896688172646761893224481986329833208641390014945642931510692245289863105088288307638426871885220483247628444805103618712405737439121276095760665971753918424385350569837507923220777382557804514568721608088609601463698569152118512549926078298373480992122443567324294822845934146847855960749529162878014967611650686657300790303762945321633342902776105216250832138546379059150037962196173905176107616174140053375534018601267815741557188695623589338156806992660846251503859672447617276292296841727693589002359155023090579465094722374847640153055351603480913878049565166500788458749726469862320673370487429040867949695628229435564947333390361457315560336921059192659035920474631755301479520968348926558547270634915799460689692080106551185464635830680597283341456898982539930952902111605836716065822729429294995501162287283715949801484825696753485108083950177198902609168815720097026406918200721500822565861463902887858130206243424807016891676269044384560984079331895158728580241947689522247848276809955554802005260804761653553906643721004320849192902435020466744666179461159640870019865611500602544319206525654034142764398652241711828177681196605944507852707209210608279252089402412194022862637404014603488907028750328791272833194232767142996004985489621678667551478747028820714308740600287907839023394762126311708067295853617148363962627127147560084732465724660318350441818179603765738371849671404676316334710379998660329443546561562388052738668348495827055719715370333080595010086194449227974987188943302172680583615594965735975067326059319029928499056146887653258193907332326685594052525266885512950033157886783699330652808141785733413946179703655647493637471569154003276459715917616954420230548740624948993461011417782736890154756004904251709157597235205746650702927356944766552290373828777312352788540205968432150061917284846604694002994890007169468501248204634031025783093563986135494947400331707810353117580493370446630569271870794740751884546985621897057576951399915050494906109827526596981404748453206476428533434221500423114699541649305039646340529827680535809627050394281344191022193508673054022666755852924810974479144998735617071713206893688530415357192030696579766603365501450076612918810909598814058968736606035625202402727367735601636045806780354261225214071498030228641403549609185903814034849611492212246753458851880516018808467215435427836543009070210161761495739516221843687001132666652223421392381518235434154964008630786153345914767747611712278077196799103205885283434238748024755918186870235635691050251675878366172940282236817055094419570573875322025789166312328474158706316238083420244028523446335701502861635384316486929327969681485217547992156317371640991068809037030546783321362860510654008620531815074005110616388593603121982399530710225185089162352424064075497563491431124620325747071600681368928798834962916942033565742295026769920259212414971959219618362980771691077101397404165163905108932716057798700188249864093134807027674024559374351990255547497391719874851624254622333277242027716891724142571929714689128266251164530259176390895930220816172052474576660958594624570836811864232626149213410155541190822391807753459954129429292418553977343403091736573521515790649398289599502706889691784583496061508131870239775309662863890023953266466863188459597855518027126165188682196697262669675617003466535788306401837722794950847626849307682828678270770391903901846756956641972183968830115147298396811670352928027448214400044983285214608116803874075455434907307524790010539193978251951727477005997259019001758342456937226376757542877961348899784834197240861975064075744573877322351713325873557280588417278524131334029224137492367589186956467666640488554721000799520570992233339894284269703036381921917654710270937452215052239637527876484870242896107798853436654036435148813252939609808447676263862346764857639803324279750794940908037431342975393094324976905944216102562534069202328089874790759681547007450235500176877906514651360989794314314775401826264091829973817018446651270992293147294644958669636700556545349736822134891256032920435933960780807235897774955040527441241372320620955509305064836994598640750607159407992902289249094258376684238316369295159301828436672461833195686512493980019362319327634514554770539296935384680897759000536415024700146718793262423812577923775381615236407901133100939355708133706887438797821236928746799681679697607211761770601124817606785526233228141755366424759613992708434120602666786615819661141911293350023220028383449447088121942675054470818445754678723258592231842332840563672731578099094020133766747516068178117982554914405365927471386558038473320884640238164624233129420555598433328275491422777286084881034701123214792562379612277970867763456655188528985447852011926207758561823102778240769135491116323846350448128021939678938880624652276709378208513544555082869856231419127933874137314809808653835295424874261199075125483352842736103114920794493250987961260039175529603630731471961501966139250300744645484768181755471362473386904657512877371004198151431861173853390669863300011584948732237194609198054266992654880546357591416441267334235786943777068457113112656755330018787248037303622412645711435057572889921803319230738536560542515355797962234710917112530231347771279302070371119438433280376219312460325032423422145910756778235494804252977496355879084861806531193490501420143784386036498464220273513210013305640974417415549840767046500650989833605970222800820909374629692882627860596082735879408734557491633237584340702748065993865853400045449155269353095982488907161868574882487454003096923797628699805156025853527477066314723848401427639275502396977199020842446728052089214299249308600516374928784381051636655743236545616141546697188554243625771297636903591722749969013684207353937562727147819249782203794415351296816206315978443157408370268506032942913321982023408433062218612312534393700486657754445153664007674602772843775545433084198140498828769059207362201193311608886300111089340555783231596931075598426530128551911865448364183149014398922449694895107757549134224391237801189415905652922019280139162976657950204447232422709479589599176055233736924057589490191981046448462061572444944756431830421944919604830846098245380920341382354873122695231219883375743655008393468150002778827196149340411986676564085825715150788051664975636633106019440815894385776919439881294773309378157930518951428661493591464805907196604295540267152212417399202109384928681657520230158631200336811216050576436523962388518206988216817950607998895506244024633833503542386235274220311170327763160453419586990535860114717391264446009877868015885967563868337035662926596163791476704379038213630802809983369683299929988278009416106437241663459999557835543779053456487136811884931875813276291592559113836830439656819639975713210545196297885754759420338411416254642243909829990241114960103321599428549783404009046312241477978028593711436767883049813216339133510991596142927691359425153686069437522837564797126322810107375948569230032671328653696626804767164433392010638556423382290791686477712988116741012079310998872533971966445132228382174607502453290853153783959531035007570516192552041147610998507181361320048490722702647102729502216654312222145467156686899452740310289678548094509553209835935550128175376067523123900330440803730110948503631849522036500478144736129882004274889959857462826134035535496390844015729166273780430518845557961131995677924343709639983055072289136581079615172771616418832706631069006281558055164930779075519010459928027039271110920118054495097965170110857835754292933023896621854539423364473559084748885832492875762266122922866927899401195167558116737652899106481830785349675734336235668664646252593425760187274372411459749276515390947877617318773663046527734256295671236929870303142613709596279368397435800271533238450312240574022799845318963011445102464001007144995744961556516596989829225620926306356953857424180233367071285526144158392101855417826940798646471438491012799777811372463362761424977618826061128669785529308319348956129158571320993351934844959517792791549873874547568398467243963891912811277807949780563072647602754074487730098261489678163514686981772220197429981680138674579384071862814221624160898891629234161753961175581779827552303019327424414408921892768213027611989975876791478518211524616969020533114488885413239145189445919436975515148014935857520664911541252313359504968199627760877598420964534811834612326437152729249586495089602263275023732926567176767422197098587665542861624923236776835691843639864482613187758808890718372342725018775834096060155474611954883354755300245392498299199306415799549846669246776540810729206917599462394847455338687064590714823476795457098314097282340013808635222982896783393730404869505351795611047741258623990982092175964503904648250359584052442622621655439912495966635222686454649827175377536118878467642195154463167230044563506936463144332468341901020658149685457212972072959397830653337962481113436586741031007910584808181413993927428132378586036794695277062422835770367422004773663772420734748864568123187168474558503708928823206505355158860718162727323290747456444614870311154870596526868841714119288792965213188366300308498108678170839517143965068899274005687479131881782396714429238666457026106479336817516297557983336479004917394991638047010333416846274713183040241527035890673408179602972366895785324353478341634990988162170999339176660227763130538817174271630319787844806981662288119183758473644229184403607999418995870654095505377117851555195578883128475753425533385220437355260833262292292329602066498857055823924862037269124624333128889217703564616751537390242952619414769386404581681067760980740674790213172376427646241042271431919570577317251918382176043948669079602739507755453497359748035200746278745961955745845102660378935608744671143511121930269766418168727798164929623413106748425783793631468973595932152062134226386703785116436601548245502114620848580883365477844951060315395161301332252649090161265184913197657515792710561885847968081409903119300512260242638856616013564000299455464178322300235795297137458989122505784494736931497135603837015418226924430374394579447156931498688447638831308942020148957215940384464600682426789876342890346203626811171773911669815941765425776868776821933235749075043089248617879062409219304597293671316599628206448434959184861141507983497880102462776380140180470577696086599159299182555991542988461537857224081160970714017380760431259397405946773824729360868018119592289388408660475486203278887178696568388738661236186084067176040960199497248630638908980627078910385404332649337202855458607287755045700016477831453340986405408290587065885397810545429512008739550686168166053590449859329922602074788851745137583126846608527530408432063085734059089114549426482256976674702172274414416382738540370654087659406735197407787886750831369426683643640281618066774806285182006938075735673006961053687835404692206094991832967899119689462211953268471966120424558891680681513207970956398919118194767479721495013434299022645914847137289277207678481233267277418477405978138668197118608045388789460524086082982436161931286164868562495106729703367750415177464615761740736757364098633099793911651725373572268774943986790893216221739164339008050821323131326948403301733907397032087654208449145667387520592414607430260910093452302302219623546307350792427414537116738551527246231205392429229550414761039249448861971052345154163422935907851817752050369534583356436745564637683401578908808958871552561012007696471403179771696003285980927250918663800918735805713034320372034772919931638074302069574456050616681261232844713401592226740468842741536431145463507394590148345620060716701549504141475698959416648165582739122279402836549708620418238012465587951669530686936633473888948391886511805370737956229559255933037040402210659219058978262101160588130992737395204715704707974657523751301842674972505357670807801953264933349520371195703581117506277727967987060045548457276783328425246522457186259520793375691653864737370255273247551247657254929193761996645608113923587308749960871311787381065361233399730670648088711893649040052188953045398617596566466534642816087744216163884982843382761655801273305084020712926969465017524091689528491816204901852982951721880204339666779236470885212244144616580558443944614876135148984509649483243760104432809247540711690532175189885443676318420360604933111360719247984973312143931241317938267048791621690248728078056916984730445032354428677265737614090093889697294450564664465634749007992246355027456055225876859114464330523513825577269615850390264039467741176367416889431138955062931131512249161413931705952273490727583063625250347155153680544300749748791928417723068467116731000101600105415738216098811711610136919137131901689702106081709692865045104789728304597387198258820328758363299759923926155238162438633373477378004683207194785216347759995507039005588978958118588599872686542552513965640308069113395987449941186696139845652394335577446156171731665821030907109148567220829178035006592127313371428020484630236798901783840050336032967397033244767880380801022310439494521762755166196209549054782183016633816437575604177359521879775471179519109244834092225857893274654147237736002720950981831668518855753407832710105781878457289049769436214412306261650397834992452010258540166949487365206279936618839788407096601656833373136351672671396638570093463401014164537756964153101473578459110473604577508340307087211007458629954063250753307994540038781535051521195988774754237187664459488605773213028119763006973992249972174981610720383725873170084872916741227455641757809884930235094918627499774544172656762998341757760844747703644606520774649611068699174693529982527601290669306567408460429522616138871122724079933755450251440046875233960397607083386255156282022645239874523040809540358811280645640387776002598200578018543656107833700688916872069564219073033509695127596636283297265988060828827043164629698134754759168366082456557402987282366627185881898019120542820017510161178314397724089287111237569542680796535381612094646212676496864404755864613598419778621944024633169168692788279277541474146643376522919352959501597940195974019804965042081029211664493464757504110661351622000541176179889120768232293141876026471154362083412993259115232152269385207860433270868446990034115935831901914609144532798106697411835276370366976881931816496786064281497289823125174954857277895424015418587659937129378880688669236114481232786194517378175851163990026933142470862459911192046135685571296258318484829596032341828433921235799440331200408982138969613680973654957564882555437630771165223807276188567857523896035605993107445635034433610502751697786620887454108191396417926167996347340652881676853689041253543858422155929964962657528970650419640757451107466533422763017287758389404052965149169411993593073089829667581083718438950017828172379489748491638441369451024372804149214949290400843703272035186796305121419447002932126250574506614901510447949153256103405876877937611631050835391896943744591419591610344770684482104167999690285999868897436348680093876012970319282096565744104667376979516150567783328344772758326681692049790413038786792513148254261953175540587911178141370635322265055539847549908078437113793056130623522659990286666175855303693081235030844677094427844388684333825469932172443434274094141018978812288762576224538916943444993430828049210501239603055995901043204538402997635241002866727108963370952195290365506048863875254343941430801549197244288432737452161811329372599223148757844147709984925420088054463274730896759994729943765329124240183722615018866495647790747231503507435717577522780371141011873185358039533126452400867946027114714538374415797595189120190172015720317361436801801514088340148696597919661127473705108428872035343119815689160716077256058276207739466217676445119421547757535577632855044542339091960876429395455852359684868648540760922715361170379711264340690032481673646592434974717325048686082091244276322682747093451420728592409256278303092055215355249107480055014695303320104965026905847366547062660850713402795002547664310914577874831175044985738629678812332569184782864941899925882569254126364660433162442093794013461079150145756148709223300002400379234787594767975878569290142635532559408593224194711023722575632073699719109402519582455714061507526375184279944104367714993783299929084426138774263238901596808490097492690363254237728034001109329148004805396763978179384742638151489304546262137919198713715058648672294140077824363287686629899514773212978065143481676740604087939528442246410285123890880029033597265667559090240825282246000372021529664926466780967871538226072107115472158653641788776235119732531318134315808235952497304496301809212435055430755854319510134376191785495410827174508373333392980829732353783797791147909660089900547200849449087118682129128948707932579733977810177111100808634036466669624250503743976170442895739531253124700573945569159110816697863640312428944280507569296961069965456325658833128762072034383339036976266436699880812871916512652040151081252706664935131281574038859031070078230463579189458064003563552377636896602412299391362135835699433232832496192901294820500494346251107251139181903362431039957375001734981533469543474926261349661486278564667412359022398047766472057553661018144312080016198962872398361976944166515717605029557225436117216176682187085270599502695894983572117132051868590148816666167260829974935893626512889977133417158558074917445946709120614687025363137871359482919905011899862735329662194405464754392084604344904149766184536256337303534246935890120785742153374626712004691661414353499697595375265638182527447323664850525214560266619193609730125630828796182472574203951093674477446261051139128913565597727318938681658885149613303263347091833219993986025356569979962302726251250635414427595135419805256787272096450658806267500104883019118223450204202037028268166089062480819949954397115792655709120981356091738196193117986572246974725396358109463866488507234031457985944368444598642470852300392038302374032289855178140106732516826022891031063713551072987472177347325998067391986794457040932329017746403849001386212209756011474265289322222825780756617838405650355022839771806812358797718994094851272818324159139085148137127549221071971741281857589768607089334061141092967120202303728053113294359471104209395778189414607128274946532792698001467041575434424524858188185393839004626883444175728629226236569207719060973226112434099170356798994936429529068392079361608772144674767739480416722177460610857660073083723981366843459449432186630414963630326550376905379274454494643537158901672509130280347875047633214438167304251097526957587813443364305385773501739335137890619892627500861621405057944865920650323141969988178229911870640704771195993341961314449912876593454888609493341492456889116294394691181655370102271721480754260126461075402876666153153528042773209269438410713506694853547186846848625767578820228484897249593475260589417042489482537794933245430901809247838167290160529442202604195389860015568495772427206418462965780292469476516395151321003978839876228332750994178415267236419716330894282715035139352524863157784185674391383482781269902816596839538653863467646260169633526742763754794643980149746101859708267065571311604242884805038764121999193517732059178867159493826625798503583055901192196777072188806717964117369592084812806799035724065221171212261403857416469416121708396431467542986906565238409816595068365054469875432129421563255105590400790567419838738738536776985387791843850004893323342615735520272772305058663405510353485311011887771738793393183456210081884773425033148188382027849442307967505921160333313587359434424896313129764283637753216850246778609765308404198240458019923203023832542245320083003553401528890671606810572034546286961854652388186757185482338224371211556589174656747243196539110054847197262340236499074129658986689397639020918379225271439864648211319585437568484215139088681041455120637889486959803572742598028507118612637951335328155954853848665586375691015497201143089253348646396318807350545272711779267931246790036937307332921387267807094426944475043237878839675964245289524609795945112206454028514479780542994478590520737731196763059846379935535632033386178141288690222791235181502300386551259629936747102594357326926513475499677541680019612430706530729052082050781486290263306078907413808603342351585986692034799198199996876588413671312828970357619674564158699680883493052662200153427236832445850471932029071147737708704417714532601104142315349784299524878912420491577187345461645390933729282106694372664780507379708316078424521175040725331683174550382212755950132590512217233394414380713378711954434317175228451688776082552160049764192741112312100306078171590960829039209352167038643389561459542441919758601326480560001326149825938233268762041384884068488990499830574878243325424738352263369174709373232979570455486193726302930457761816262076409017188958798088532849020624803355565642888809409930405300625382691838622201233974544757938352989772847394298920632631323390469640531314669255620967297306529554494282285407562376469177998916674149141011440816247895205955624034892801055612593066477388532170566521131340998345413837745947448798291346380055391704493125678094800394723062218245259419592291070141775204326161955839750016966364770952286454998588319891466675537699359703630369585147323301875312547236154800491672573946844918060769138632714572136355256857999282545240660514450961452552456634817135687469069149086553003354236633611842997101692603788688363908457233971074897594044328289034209352515353167383427322864329051004278939240440287126291563885647520344775593113594177062064717987812156675473355365294825708989836673598797790718462983833737302610956705545987267422776369718706231668014031282263854571948693508926755426834825356663934020048595140125438470718847914452998758644592537212156590915880859536794161878587775421060181484516997296965671447559664948106767905062105470452832233553399360519076842029481898420772535312403510869797720177491792426983329483442070764371551027940917237931000656048123869472640322696616939423709210691324142838493193194790679545601937904012640689141448996164747436906793489256537471131100709948176904490363538169569463069038202170375563501267902017835568632949571683369589487722232713834521651607490501325453981948319341114823773332550410515638513459867599541013524782762709538579779096858565765381542481187659337496097927626255115368414195159393590775057923354261092662031185667351821708569025907629608111416470447970800952430517900270774904605855038656443727462353242076629902921097227741638891609458465734876851647948329029741901980360716524223834131975011974520851208477010444949549204273469932118378913903026459055499875959130147284170389708157749073918779416053144197166339967878395880194926735073452335848863684605147534459198825942612023345622256116708324957425870223205672420867384903706136969980854855313840104766675602964601003148907024895672521177278977463012637978304434768133445021702354241840627342876610265765618958458133116079097184809172492087881763953259285330296652628376045784418307576488452156617548644685971549020172205247833990242256885600730011122716471385215066542396317196518042645968486418951028686750953940145630724364971318408866315640555986765352441592755038778776961541524228463508118145540109393704339332095745497612218578073496779290268560027353773908404629046974555605509311901947002821067606074252227376229954514366382983395800092654817826711730257473210143478747905979490292512086050393581549982321962353810249446021394719496309185733738361458431845634127016795889431335416964124605050557122779235880939744295005383891731906612815750999859352174631757156105650165177922111320180773944338903866553278119559936885673075318576785574837688914999562992144906740523676435797944826498581207942561581455273549447771630426619622948796813733280697032828492633374182945249804557869483336318883425468412874569039435791295159655064440266412557005858216095934379209502879087518616752846118967928415650402086326796882081033791047996814212482399225471365711860830344052588516408141163184039503568984280673849484398216312455328323695165666510503023161143508428806062362164704703090222134731696336632504041353208024452862044669029040379859977453739198282311250824550027025060149536552642854920430328616842897552434547297899631575929820249051547748802876032488819154497472126621020034368552013841529501967403972094464305436669071867555751533280726816895468205474435190901070354702729873111600541332273641582289934401732304115197028425753441587603858260981255060971206793160007547119385312992558897221348090953070187295344699448130001165467607058676151200429199610628663560498560099956598351825473694344092228333944703317129157604283972253421960136230813858144453966338486391190048463488695084541316372270767075919047855164798769609496306875907382304175543232050403732009125851887212401179617017632432768339337759648321926908798189638280225451989061791677000860317459845158072569757304854397459547776113388412559008947682128009260762353868645548035031334292356635862087043444729565594676016865105856114006810993479386554154141058072759865527337942795928203133519678320216758512412284935780928875509402813904611365907694517049380730293369425181294857984625342823637211922004687414420719944542785199838279169807262281741244963310723119086306613705738408545927162361472231891558742776750457095786982307607886489042910296426634220358387061146039086932177588047912485494042044536163782079597235987765097567655726914548411509147806199476122959863296893919072429707123681603258796126869904102165792959815685476785901021085075965484470032675382773368236222416456263617770298404992308841337746929781832476534081461922568268353604764205790410916755589527061455346211294584571706007049730043836332954819001780632364606970486902263560953450594739888344106825253783792233579391218942515783933600216819646400886104762531039376300763353552744425185508726565394686955370518485201018525062033272958871573545972130144619989036960926620460909690061690658939558857352427286463527091011252016793706640864364265374941204273399710468468839603108129358559058009417455856343855614431682105413022909880786518120330714586380071132226680994509020060022716259080970883340575130536697374106636228771783412556838659386109532322677909478927345490919536288500773426147635640736319321785655658585632014756094819540345163348427899876002558524569850381296472391313310891116427589696211129104255728373350188952945191597185156879955752721021877430901931110111068796357799775052662874413666186792701401170597397508534605678140520587840634497787527074737228724335348322072932781396261449021623036625775948835447469047196791473504081904710522119848154533152417082521018990626021144936494492397451129389353721274318530131912816608345333890241296654624615819954019721131329347626594901150284844259121558240622311398549319701295589144180805028878769142229926116250907556013041900675671121286091953064613919946806866200524738927112750470649325831021657610185290974760849727852625568768462616880673827495330340301314904804200505348480822554783130436295258049509256377585643481795316919876317543696221919842551800778964912734694216882234415542558919245052958817955750284913445687715426636853951891213477959937929083778651704929991156455681874269709944205687181020829213938949126738675786069428043847841963097949244430894244752073838401019725084754547266303078557846083822660294703618583724119944409445228401750750199152572491498460037347103457223461149548063899435178304994608682377258207590861301168913085103017669032871247648432380200369242747784306959051774794198991735878400966524196526090422210708193216697156863713411434954725691987163272970954483023350995446871397147706832148860087611131304546048195987866354006762290601241569167713444816080650707051285134951743739346541358535119605417063208272876572995084240418360932126063618870596152522107593234211518850479684099784703379128641015590468977065150805697714929339190053863911236529897420858856830142387807583923675593927531507678287588454106582078427796884001965920681550690146892211693818554096034823225406590510479097866182589143704348094505379379151730156868310147563285492012021988482171520872241441110362108274565335422931506720263891697854591367951269260495080161383131356096233877929822447794914852235502764632877504579344867236360096668584920227857141392467577024798215045729618184995424246821729284691710666567977999594299086863007812873155202164422005960131067095758300909958333788522564182722677854364151324497645183985041137029636888997904491291296935995770491312314031541769872075957926752152920140581804361950373133987933971551799535553005130988784576019834562507000283881986659973037354072447701282621054390889620893220636741266805155773583845722245859551147504823095577037333521564979161669729977485616887661353046866267146432586693580982979758575835751092322720419563914282948895615275355632457444408510350251500943784684704942079901177940987016958670231068747455290718446951695744617188705198438283623919016486136811879465792156716873363974443237681548714029850243753982905263764112509069551827154629754782706020794523207575209814769843112059967850906828842231976905683357925166951211130328167105356853175681361876516143478722622653020673983815473342601079433880295232213390485743714796314023573569099465160879100072320581483987754000212899249134807184982037553576623702036210971520861204037212689294380841618500877820328557065327135906671508179525249925261297755446537286687180838776152604545698963357394118436506341168948328461602664803949921665279022991903973698791144936180682059683718231845295206100227175020278516827149177655270251164040112367538984246617336412266145271055171530551482418708440237958193378613448757512510580102191067061765772516578409397424347443151317306409595509005749854141051249856599266326883559349969501505307837067239297296128094489081086908553679605132073407780995737525335633244190205531257275123882406084699460726809266671395372764540775209258170910058568831957799728268965179699750001897473785822264506269491691339736793598571681749899934306844228554757598346230850361339073838856314598752305928292239672271622315843759622757887966749622796658855814608312691717929002435872412364313535831777827207701952508723978863211749758811527029556695163499501876352739277690026422885157010132388439629280695779757474117794703090192519365746063168300783154939721548911521075438462625655371682435928630084866849121148535209283887322208829925438829616922009485659634131855919772555000986064199959831881487478815511962611196156821166042298012270743516057133838086523392760224759067914899363585688601062739657672137470513274705572546349202694615424112427783080138269457033873984541322827365522302589063282030653839348176999675160959435174547710617345494836830952452953405682040149650896617263809788176359928631988545725297795422858437805341305394623391306551994166639847304742087534021402309238510492508054577069208753483776417451434094218934916594490023169184354050009505941881579363041880655877891312457300804822543107037938782568066591593640799739731639780720165678380137062687664591102960628339767849229548991813787505994789150767762054055316473649353844660850042175566524374307799473135950673263281510593259905935394683425193892702513696138864107815765306698469797445568254538682881163534701425201303462646835697877288760158454840849700709446592306519401264731951079995660785048474246705897810277499473466760079738431120924699459092724423278732009251145591630595161490210586090545473681334847571938641134924286463142387201120434507786166021529467724650125706081744449832787005192049195799691790908392599682447034893428684903989480525675117872776416442839536774055618253350399361566380860289380072662691005584529020310031180476579442172356932417193513052714292160026346694485535312920531620593613364313001838827659945746142395510097107791860012456253411163754756191884274044366224060654561627277471835434192633771645491740521354950356610171493711907222344548959350993796564352050355421920782810099319206048807876175939203780459219340628235973049033711177262877718646781090598855141890882692614184993643801679952770089940664380552768363235533322208338025737302921900953852666720697192362375337314348506203655123877970185597297426910579183196759669253175042445388532920595244756426718944486749691646336933926624092765744411988197172109811874138557646792420878147503573027185423059250478478448890716399157667484734837958512408114221029516203067453431084817448926702782868760159421271839085312205557389282546346163052819365418063343681612656296368463788848484500885060973436229337994774153080419162819524055733061223464497454835708053163142758265649703283512129488658570324942906906481968028729429463496286665605714200685653551330842024821078607666775411986563017541752303901107374495855827476056792401453921169452464230786868385130563420464709981841098066823362617232133729308285851060142989955768577001575554802422754045772003372118622745115128030225127337679476228397948214155731388382397824301820065050952044941110485646567007840178806371175164762271533461863150050142749433077975375398806375837636396135995568596826661683581200706982924582350879276081673960769042083623539260028095437090773688560784506719405474971968344026561747393602044744522412008304590424820326240440516785737889235075297318811636705201047868718902336776428187173960001723369948798991262662237948751481181429795502128312669347139572312172783215572185230109641164055415436611485049478314193318671600490305879782670336299714512657167769395021110666660484154824856538532046563847229505535908579067778443132552416199037201050288569944027340400515043998773153464599315829447849341576264031258160766091625070836012621529904461454681522138834954613845039524890003993027626850565975896733835156990016524881758436605330545880343865883438304196054678620705301375721555905654555072162037643516425324755253312924939978497579298260723329367872874113013739611149726361073306762536227482296527525723849825714266939881778924455769694964989463862562513205430047743917826564497823777033543436479218008632606720748210017215973948411302369648901824954109554709864288664157553693138503450376538289958489919720564909347911477109939294377592009040363674135516554071308186853413544126185086179102258747653424621945201720849226596007822032954379825687897927356207731100285495565090235403527164568545930854033085131119748489519593273276260764983925248386154721129578344022725291433804038090035613441826444776435720939629453012581523815702799027672968388224166631027281532274510038486057769413391449022675319494476104181012630672467407523538171516722589867883830165385512915108317565195078472829286586828207514692609450453146867317863833333359048415166386885895843117398440636937111237429093760477650966906448773884201762326410856353048402078660402816128592947211007010847505830156097972114796744891149320643896608689528280735708094058538768823043740719995047115092088341917535405743813116365164028939339938795972390705119000029000428417647199896591806308860051031352346610574141151493773649073396639711400282979403268372837456273700338304591878492238909227218168361288595106561466916238867834305782392356335573785340010602173401732200940997583982672280422950605793051100764779425784521700502377332878002350731831151665584338988242319168368252050222632396957854237073901551620790988270998984961041710948907987239951872109153027412921306290807127331523235388950015601611058790445387816789772641043097614118531004265734083657066089035569316339393264292841908589925382688149075025371230339118257251266789077517003845786371157866079319585127748286046409696765714482505904716671583678784629399011385602265974389124764899932482428101064430237536296648654240747643747528728822670090571001288080019044519491655930834086647701678440070549554018953149998332908492872929812424531560922738287811034272044605976642557661985582957183798348274385242140128702935276010901796894907552195386658476124778234433236548133070432472236940595643152630919283234787295702071534250964028651679240069228701766310786873102836808088585567042465222788821821846515747769558407830901361183047187180310187293556159212011017577557848419469840737762945590158972309391291329070685483891784960061053987939871198584032916896139801544642869914280015622410105005401967648435399915403075864331263424259677130423152796146028582498426022285077563557007722189725798758032093423161368175920560752835443130494799691440062767822580662293830979826497026088662823047325138890370019282287335170724862268062749958996871131616825984471756615820846938996666119560759002450216749301131886409593131865559813213915875859881571252396884376146946799993696344659071607601127924383540725509991308012540839394560110045075576788013605196627607834187934491505952275340519169700053016768463537191750218611482846176834438803367335286021335285575167791216992668325828379534930752896096183921604267163914990788749788565645791084012216708022206631143316585015301717161251499140737412262028533596022129492203673096697341048760695410101641696634792788432451609260602692824745177701704200103477762564293213920886157012354151928451795559193199226916944610968819970686253231098347982758960522313523123918354800123662753049428835451588030999123558868519432821671628258562640046073261786568281178090290945109048153068809503483482280736322259966334516342563476356687887785424402573900395057659081468461430425846736017102131175309339282912834530215172665906210327363679493259770795480871287164004907769304816029845896732152084681607465445970626365752081197070543361488166203749036929152870236907133663298956389231154517925481065194466847951366026531366295384920551331225840318683319531806840608150167089169011008295901436046708537410949420767207321061463527407260998477481187697459713592079941067900199170186267608986009462288400403991005760706726669475720881813627243464905858443381927756844884662153709905886670319387255454341428512431240656562945947974707301388902116589561763108787284935241550896475470336752292460443814845047176337923351951389378689739804700398999709519442988551242479200263032870823509086491346258114588853226501217387537580137105183498667241775413280365741116274706359329555713826886610540194246759456085400442427997924456146876727376188273807168831555331606620569728173560164233255781216136666544696116335549792598625369028290058538206928925153009123628306100385477618874349213184228204171034070772806835045079422860720921051793076707972751738512010133196565887550925385244838896074898409235587322639159336409597803616138539236955882950883524125065671404421087915506455473371519115378769361784640312517758336540698886603331078204077717083401969984954641843863167875548838955552785137708435524978608715644221017377651724140158061117508542698602663196115521670064255479768696086603715678536810450952613373542468983502448827410145662581255435477081724344456446588261783896743505203313252520932165488223011549388292542050094103113921981217112586526561746524966352679445198662010089900829228925919627527297684221318205242229640293461216189262181729134379074205339525308337924370233384175486779217706120406505953996196523578436292220118666018908203758774118388657123872687560683168995311677293198635525374043034534640334542263765088133768535504046050607508562245381723787043783817376068088649743359831214162220851540387610275549753855169352552548952993061513085390164982791729404703451541547215043060049461753625194853853974485751007497664389450617818604122656574613774946626435314722642742729739464608357362027002708143131269792375226261296425025582119111232706477460823154086993181056247855643333351455713364638376959394937717301876428807705914775920571598135351664920544472270876908088874676289581230668794836789977338014091065611805727804860476795790841410393146369206399403997025544838831376041404468811131861558749672224752108081813775583820479558441958254048471180940307080156017668211082434122988832711233139316552182637735221780741987465710070752303001955597022831228460040379615125624100804877641823098846846904622326577931349644268537264950689393164015930720928765064698879954925834198711046867813577617312602132294740699257091065634382347425143298338736352081762102777492043516918351203651809529109438816177918691483158040294537248980860122684111158986080627057313487506214036186747882956157743225421269459117998707213839082207593678794401107590849515002589156956986766349197548960459342611032805075394715220648838618461058770357001267483943642016311922219488518937513186195145023753240739152417110594353948786730918790768992958963654762961796812046771281374556853360093365282517860247650542878650938528274227137468722538837138270489877925372655421485182001668951867498638044882056776961323948238034154419371242231747700507989845368664133776206632436769605685866641069984302398519519929704519429632793857684102231859912010731942265425581744699567940512287567902345852012144325701129531279998507860989574410135491006377356682935586568665966056439416177842591269762181375868959362888352557303068730884391889236943602733403282137926054065335115253170637331178037201772906293504745669271978348490838478297837173732322314863171138866425343786386125012729509990741849565424093665907348876299631352156473394890961859758587997959202868249319252122226632556746468157672637681248922948212192291516003570569133612181136517658286207177987720548541075619531736667340019067492549782458155797532309408546070036483551802122776084923535150159580289643090204458003859189661725815301744299541210380705556671309969884242548715470902068252187854917263952964449605530789555641487374663435881112605615715185716676988607825690278215380240364501198345737343714901592288203172382087303416817418316876523107257516231516481409238197784530615223432033102339571234570380340295353736479273877320066821710032249478831271854978193123528675654595791278282515400618890421168531698571493250944032394839462618167111166697360386497279972409824988277065020992521616742504329102686216790360383514804304336414241709531335341780343868462661857099384663091166853915160404475385842078775051936861034359063947744299729790889093675345288899936277862268026690934516709779044892922249569885972592210176798898863864960380395810191221118245266776190736854222381453241829303340244559215967084387413026836580571172033596445726463477710524208855087029483584760732004399796652412993178385424472825969203876808462160846578938419486768324190937419509354835772673792315396285864513971883218469251411650964471755911044160946552038919452216612489684274405413781110386902221988804151004725133997273611932886406260113560110278458357704897689487317128889715119632222909336968771561830258535917211983560790581994395825020814927382129640707658167100990454777159773919572033397869593283412856563540004635354957867313971819823591778920388031429242866289884080328235709195683712070219779664658795608119035767512475505307724252834150538420634200972459361224359937541191504725614273744043304502379509111938650154106731220469411483744981913477336622334251060951744288484016802621749243403668755985342578261750780199369742665357369463602579269452526551386889294272909146022772734327178685232076094635887317093039323112654102780463809586959717251646899694257365870601067413246838173246769512474901922599407403502534024595217788554599980153743836936937121804588903493855209727533497741457359967377062768589079750454566502019389560068902903358968792469950302726953349312637717175048375879555777168336976151824720519438766752667301169138025569273157014424055614345362786194395705209080166841807329995597797688017357653664827447150929185528207234449509284738900477417025925454923320256667428879122541245166669782625386181020289972354691813761031124965645435316597059000532735364408463006868595734308737328823860375722301739462858832257137345273299329709862486337290242202222377268370790525818065753238573217228911447777533993659073041575831310724909087383628897491135334771520946899522503690835217703322051083755667169799480082318638597131612085680496410795527609177244584953150224061811523968782441078830099197024670049268625512407893055728822228766067123324863337578389089390457905481261626358291960342948680609004229730226802082913019845310531439620981949327951599021267369069406161764996618146420711508569098036076952619087504262178510429961852180139906079831469823495790615545347131797201087067391198701236640688393358082427047884084456447049296624439254349379985136673460871002617214998872290848061474037756263701329923819616692359812057075568353626655570201666199279061428454738374460059172229196472451682436095460194675761351482701370036439043412694733201495803932219611003782858140130674935613949697387390287069104968743398446695011202664516072926634951228554408351637114441969304944733973862649947992241722057731314194541312336318419507170251956932053933647050638951438813581054669725634978979777624555370081761128189945614286754005092834343462913070369917797141596372367611190965974342658455443703840273894042681540704669862920942449447459410180904699310176481449155997411147037045221463713911803382461972395812090513873905936949596306161694602352620286408931874326374685269704492503354424456652239356472132075278390154757313209128060555317167314314678852835315516442552271247617333193161797845180955938394394104406760637221098528938188602652787840600435226035560425306297545202797991510524279868587357626385396286380508156379424147729694201565371692899997235128557804309397260649378206275580171787319451743356290272546862125532158932854034563831231208207908015646008891906403318958268928811114555348015625461943220799186044431444573343000885554232862104246231097507765758689421983313392224365110584410353077161958834335334023156302900507802671263242435198196431837633377385635500636134104635155844707880983582713865901436361599865910975050695835991377049229616612351637397684978918222176239415450994914929007691679664548585069170897004154771881073996992670747343407428321063868528983243317838442120626205024072495259324490700870386193633320119710140326586055549425274340081977269261736608045308170068170035412584106031313935459218648236215498772346314295111337269120364195940832817049516654711823485670141976586760804055318259851738894224025757089450645132163369129136039675688999890784974389799973963343417097457710121080522368198858569441133690075040447819195109064053291472774026101007893818142953179384927933064333934661008076999783589010379642509616816312135188809678086576407067236267019797293826305431016521011231351084232063866809356421549311115615318334541696356261381892209077148102629819473351705265098187584560780644928521314935876369214000171555614626925941040051657670938570753907792943922969135847095642552268460100322821597279555293993276603485711159909924919596030474931632127562030092094087821562558425047866403015694090856061288701710495014971454012302914205291989442470244405594740314591671789421621351778658878648092299559473671703516450310690803289007639796258143885131303928225336935972349596497976566973959702993315142194798128488710136017772584358210543870477909714466851942810150867901108434554700328984550704424138177986175921063496354956989728365528893240204812884660428793607444653127587742840546945697151217171572473178993920313819340343484992462974410421881733884825911326607970048806040959283518971304261423923639857211637670598382872142875667988779440705764044554885015465073251942467522035707979718133061128659738046786921949910230850018862783498628403690786141180981990584385106627554156636926461011949847349567969150853049248083567651170814658471407870965026128270937815151359919714902680958415410588751501570490151380794115934176139766054899666254014577003419620561369217335970518788965387875072993315199849856012614374109875082284315056884746583097540689555263703565911270704942716345875626662852530614865407377825974834995668681162907446451682238489369740595492234277179555609120939163110895383410429357802039421483702418929116149282704370672619984320656186637749896793643702890661039590045019462297942397933556286153418577381002726602013165404853643614984061253989330857877404119306968552979182605477948130618960000904097994303480980693176583271444313266009307322698462796358330365129952248501603706849671415888754460900088203323188059202040854872872654378085112794365574282403673795538283162182260833253725484171376147068864207392342249684358919760407694494078647098331408720138708649633934738112928476672486417878456022148020440809206099305980205980966443201812065078702740851409340323212717008173748342292815314625380042890864151231879085353170620412280635237140627618492903255766977332616632533907641049693871023550703823481241534842951817856151362509071598908234111000855855318159651260596027145952462276002043649288342811913880989579221259766462880357918416076538632164330806553297908061009323143215394871143017201097706403321054023833291333606119904577131473175490485233999981189864231800647992876302239270573018017675691203926474872176466196494013980737896139179123953032633245681608311323954366572849826358936640179716888691789609862083052365266170811202034449449094336975867586655260519786626902080398629720590572377726782899267084437005240085430447074082926204607190012993739053228425678103770128374314976193426106904203856697432310385882983421221938507836815966721437455002986045276120323974551873092400724189784164191769388760078197076515999356130366980914461344235648221220215431632525460839686758017347420038773199828031410085066148825305915787139449111857581234344374843019829252559940465788805567345312159741694576515296170725642801697519054451845054112156153494079449019083830841544160616935840485944967961425931886232636083511127893310363059800141504180984943068347728004857389452144901996605698262176373409712733378456370916036231450813378272384421948876914476809010010217971868434439155602010152736780108746011393687831766505111774921953547444497996956939393863941253477742693052558897479067563016173248197083660190073135469015803518394277782252902305005774581216019978513355583582569963474938560296768727597925167003368517742579137269314032500752765683329842560027753445614017587908349397695705404400669894748500648206493259940696600057398777211448681937525330444006818339378009318860523634906006211466978553855777503978875514020898768176507962758433167463646379381364460003249764838848108411324811699081147760456629844342377024295674763602035716536195257836061707789067081463187288781540054823359042730208660558342578148507837186987340225104221877818333396896853598212468158646821867550756920031250308483743640887948247401294407672117582859546991050441232507454288245459309374823733329166228203294745115319477509943170222552853492261817303403019612863577958496633519577971372331222060857200194520821409631648900129615087064294539596820309319903361858937410011886299947988770815563614922971366345133211094195632780305403222427340012947582159093389894531228925460492919010326138163405236655997395934626733487642741179103285696460212485343550381801155109024157366633929659331011734462452125019379796060227606788292724490468849279587719529574866852092423212136759814727504279940079901893622871027467623737166800138498252882498620117440415458556341039596820946129151555160354272545725296065611232515073854935037383583736936525490255509813026297556837033486795370708095993307502759005493920940288635504781420542436523755830670043685816232559192263306938033340330408228694528905874539424437138503639653912074865374663513630797715037181653420441362668056255374962945929119959813463096772583491712719867404390588523424624997943767213946165438442525773593440964345703092906057024927353600429236870888193181601012616440249468150828893571075973426156761214400454236412696227825450569856970995163861746392430449657603595098539731734833886706143537984532232223905924805307544597345620975111334123978352906903149807000774992993655296642536543807227739041003553028863781696743592317719248549144121084700945250237054691145184154766316089574679916004420710264960330196874454140725962528456682333422799195904700618575218761085335901689071272574210589522470373549510706990330174291824356763107307707083506710925992822163020541900420054947149624187710513829634933262313928011645971077265149153539231701077798330229640488038814201943662170792274021033812140633911972731349675423363361433446687603047829851538057219953228237790696712334426990897915313911147946350780943804913143547817628446058896731671939480704246922406485575174940384133950387366090802922034995031547133177389904263604283590562127092974724195564506917598941016012416656370309806281733051942419185186453908445484971076372938001612218147534826370250281261031928837849078960795368998137280906699350422343875443974531460065733076425759200713134031661038177627469540083812672774804672056679233117783128171711472986244201879757448382369736198683887759813007099259143440992950136876816181012505329896038819967685282118298167556957557040158912134041467403299326927499556992932729355783528956270329564576121444789769122407127917063805933487706098122940199912154911517045510930154195854545352622945080490227805103979323051071088911143880758809603102642785215260557061306715663944752636174814130827774594987030925495196071242766863797206098247999390033200024771565371316451163083646658119526780911330071791856331298814365611692950495190031143863701897549137507719275138561177083744040171418957217410261332973963695175769449225491684979241847255820788311829135176413629767355562236518912166975272636006648162162659096730401247150755162410008116159514227997138471990576994505802664658414464895989002015564047647501561447516495886155212964027645551797854479585105448484653491191730873592429366739854933399518058296490020754019987533322611383355807494775472350939291521799681540059441331238912946085821448331079719524851307780910507145960146400757077884684154103225894106916229844293108287215581398504787234442031429648447455853924356005507818538590933652846615592876779208314766044806659762211951936985530738442286142216645006594964052453819049043488858862994493378529981666848254143963847941812787998106523520646161166842541610276478603381604719792718201236251600964552754272694604371221240302134902335029113061778444585059560784170455162387104566390458201544356221616871032093537707787797630702930879888915080169490041753437597002126853633756770079533406358069846234264983835656569441211703345858224143459737048231127997065108174087097931603779667164419347329087033491042851150659958177995715528129091307813275751050727241969134745968918054938372172921383932778851505418457679154505268566258088685440457140258334889237207630242574950363889415042661971588097411486174768919268077145383740015438296125027427778341452396446079927747961265331308426949724047158225813923981835436958143618315278051236425447962650226454091753501111894973766968803422592896078164690105745515520897957285712533314487035777549784479821578799987463116551892667011614983355540271405987334939009636703575062767942044528780041837396928152949331654717676301458850341902602480943006218255773888666761726329575555217076463890495223314529774306381232388614748169799000407343535235511605455700595758597482338836929870441998811678214689721317381385390059928319426943504703648232289722517834121106976221049135134101665438834433580839502464241975774710458656710489022637215386619382003232411751080988231139048773086274292798331491515806501959726352157300355807014613507569839505637835827078454152899542728855950053383811163313224153777566681858007674238236250349750536123081203529770901077994428518858782998081192040462842869801760993099909503013586481892898162067855833636274089307867832116227032744273729588362669263368077187915671205115129027129561610595268943295550363513799343009347944130539668427554305833351124222389849860347505379292802691178613611021898211378313941236975499127274621495275400721413955577087146760634878052975650559502863412931552379806300774391901306919584867005016215837149987090252786014888038841232982556520309732538790217212724655217012090471216431871633222011085780678511280514101261361669888348793152136341875955126236610183333356678761489655117526859606986608158495918748282468168769306639533189620141833730522871346213105976898505825126348045859267399076363507698692982312079681023381772945026393760855837488264785733512420829314734842403667647831488377624494671231162574571354574758307586704983447512302886051937471457481742790282626773530267624771698644078178032118088482849591301940477563673602088854415484797354474699290384975592286988483033166143713427664094562897905389768885914673398579772689846106360016115419843226627016859429103811023869631639236891489349664194136880171900907335549232739074920727761482608859131706588461214834425955642062685851503917369661522899321365488016653422464083617019079742988326202100901633761936152463543548550362986954116231750182923836070147382088676049500122104778470118104442514307102075986742530642000861201370446576364501072326035786155568554209962329146871032625707534949143630851198820416391632533290971585789973009847288084294999729472669963975437693121598596383381111864079833726848377491383812551550065041858187966311925364587210786447675451421996613740844442003591541239056860741844443036550651645909053611370740857196279830572983683136353349081355973590060786436548593224766760450408753714938626812414641628716411708276241437319908478669659104731118932690713088177012314401428524676766785200837044800988335387128237303033776956293885383185948992797686940522268889168455362649423657516801399381794844925126690956951204002613292794016802820920290670744688952865771420858209652464668235170475285108299120678352473350443650396348258964073175788367313218440452051763406934097464258205180253809582576442563655014214875968189637715037957542653287505222723333232892569356467309096658458938707175142894260971844571813864894196441394015901757325627508150577719268279781683258797810147926226463327465990500979125915737780838020345484885482400385191961492117499045386305654549479047379758954986377059325844944310917509239039609648943475515136063573293494083795034945806819487677436759036645469506720251857790992416686160499507666096385075881571115317163353923646884040672362907535212418118198280382926967841234583325500860523453717073543663802790534377494249902725925472654129663799237812278725106370982822107928256960918679527613859159444737772214584403665691187154329865068567961652572931942902937675463818424937641872177389304606263242138196753100712617060893045567455125364641203204980580470222161518437750037650587586575838400694060547379856628085966953389383848453441080553498512923890244503569270185404071811849331893484768117207950566744647416437133406482876134006708065301872890832633311831134237146389628845840901632424181947142425843305587141503577085457674688559327170778314222419067359842069430433280258211691489925359340467962593850831084675415760525489245962464845629536720327452834044142171991680841011574223711745346224002979248931686009524063955580681950384477096958661419892398294708420551488492542324616006113697561958305198252700025231772664031881930805998149860717672613500472617519196420107536207303703974420603542867346446135866452022361701599569499137510990373079808658077817634933518744227774386539889261851399283336933335203831976995628993512887576730768796540959384517134012456063809471055362108523534343150358544021577164002474034925383275058001505666459775278608038267417799844624750799749753309261669438301848177007909660645210916480885619092572540497563326904267179352351475635592475579838798466424571903368850296876534220315132898548826822504143448143141800786638656082865742206734738941925199875169535266178816632545585252246032538955831298103696393865186584595135707438643783441366191691237520520073344249548881939696639925092957849400221929083055164899702507027865603491844461783116592705926116232178242396796120059646500245202058910897022032090873135187192961523226211097854412862294375687308982755257345196598932235061335370833161706056178572866088971008004769770373895716435830783759251290413532259875789869571156848040757371739503450776503864043249924934311715290428150544004737314225027399251726562643820447771495216057021508201564481775921834114773540113970075992276864414246944542155728957456943427343108995425834579418589939397412912984661843923949457535993528452669436249474985611589444862833332608542995403571647939282980758158275801999631071090250970818044225670414765266188723446378016105507920825773195633630260224145868312975628972905634536118285304276636870419956488507588415488414807957899472718233176341974756617991466469250458067506521382493278358127831004679700636467252959006003138067660833349102322077367658762378339977247871422990013740874865971012594872260085643215467409416440887305032658854369929915147378219725583326245492792332229023845676993644739953561096591752618461426968076224691323685041395529196045813583874711163152626188303168524652709384174202102052080668983004838875204253776157375465384990093301083772193822994377216733271412545397240477631239394386817714736329131580817123391283705201610622379191235064572263611806734005889731851872991319133740673266329433613495091354662228189571627153704224274586558973431562571234275179760613943456791151177811969875877773260743654130446513905419825042520610829699115995228074826144455027632951731867594068331153018067260764423229264686632239435447121393328145714012391393838970986840659591509958713461091145005241118553834804960390791312827177987651805929602280995820728324789138930760751997575525162789816032203085987152325972978931321486492600352118799519140614105979653521047931123380749216322147248182640363710941285921251166214234053496961626781292482416416579430201004860094852280523541106106322341531963058563990011686418842077661031402307741697092324843389432661963464581481764773592926806292344557317395541074131192965639878335356887149870838873808053569245375462288258199844698530066258476834021296008890639435097035448083369068676571438111958965162706945875853334578488188319279679628712686560474049716024279752045661327539813755228823445728493306239016130720042563532326116398279210182110343249487506612555846182776981116049070617032380526802898637752626710442507380176915997406164993703409756835263519661108647012314053844270974237429116187298922375882670252890213510449507436070903918443390439911647692234315757324580689079640605382693709081432115688208674736514669938499583165077033883652491498949907615578719278842609954630483581651985356463907865590639243441560092727009116629330336211152557855347307509617700086361155535239534608320320749329258351846122679067066486640875118561951425562873336976124816859066202596209162752966136153220760077068773049677310221654240575055951512094562276707469046466605922333489775517057808022488184472329402293208994946416093494072237392629613813618787715627227883650587411383686376334937384002105609407572099625128225616570703136893015574088276780582355549071774254404646046018811042715174147542560526749834696428019516704907291216478228558563615086781547457474928993831716525817325332833873210767820586047921512182835560656429296379503269370697832609378035112245464475913850666705732217724748342974545403768275675993717832058456334223774129432757658864962530182856077628543957542009678505258123201361252138637084370018747049033389157620017437304325180945322876113557147558021973388679132557363857746637373339625476709585328754965679792106961484526799100211284100855218937152213973207761022431240983325970700941562286889701025438744492888743388473765971963468168411812932285038889026911761844542848022530992529819359132255044591227459947432155392569714214787300045854435593527216341852054209152059731686130914083601765833495804865233143630758991478271184758454471076809600604254543754589347016541535849753324894088570436015487595494203294373427323320339118428571353766629204838981498532541216277707029656120077335140611949175719657685334450004681386652845435298080251223248630722498125487612928695440491769926501360279014242930107063815175498870764940319273841898954200897228338500940680541766623454809104664803914425603463565371423490163421596992532937120116159220228619871894148049656058903921089062467094756749179346084250545854729248732644276952704590977258085667984396094804697400873924406008986427235977768068985818319108646599149301054386866011689537424407129788881207306221981460753241801218227783683281705647940404334834160767821972891620629963763261114349236050996564650848621476089565571891645889320300765460065198050214688853270827611552229628355783628910205375379271686759512747894733792062898644365659552346053930593788034485535192409700580635219840462307859003647882912203628957787916241385348503799156390384231847656681987633082794468223211685791068035900733649263383345501604207970050159873744767662316084570704201074304174531993913676546155060793395909401102851985458543915310214554086653430769122328411387252535701247009892399592142998877577910632968721556619111815116207458202349514918531356598726857106521434215270807495988676375734123331362686519967659737492514036646128449345114682666221671058146572673746208920848478921755845716829785187629199420062779844758300806255920342419779398224406853981385504383375081629697006883400598326452046753605368574995295687802003913626592046185201346403506415397463189829750282456347549517762993611897910163356912969138792420479485660736672871564404512738209424341872537221109217037519173460515821066422754394778137692141304688268617151029310668496715629399765176489923525873135059701768712342020838171426042158968667191201543184721004247711934729305293187177763082984483482469234610158520300379857568245121680982225744409181109787659692755868305564727340824743406548056128225275752552686673746426639147981887779837331939390326806147941201506114059350698366804549160983777721939893943591695809053599459571412067618960715798124182910957761640028817917320308873893792140604517062649145626428421692729749468962294896399035988941566549602661433589400800939388212907041601221597039565934994894335424436759259307823412242334061122765863565738938303487975390072008120995214522159580233472272821877132425574719668429032461882711498956532556925993806956969143236213531414257010013976516689735591827158071138716511058385090946649158066862908521374922179416121911084336749146882910105742089752714167558816848831514904745323615535849660257343923143334709104161008627958824499182535283228087359595049915919291871465241508017084723994673657394831694875517150951943470103469962782846521261337476578488739241161825450511127493468162578351529127493972047902389995049723922593358200478915380879204955315196548292365638645573749315746628300888528780095317423698196599597885183652376052523339273054415836192164932754954655649526736177007028404229940500016022341561502794517971630009488927345452285743349364621810195882533462967034581333859116524106108840891774040713468094083535145709956160983393524852182126281207932580922827514183133930307940081665692176434571598314609293080486541465288135652838298241107120766692424872231967025362301831107515929984838599331401193633032331427101492876397043983262918951015654691393032585923148071281235842785347256751674853308593640895980391285839581795824771892663710122157879491722199329355061420266132485576616234992748723857441108770992683831742233805260123278591189286480194404279338200551650366812468538690295458015408740975227538362611777737447262589318704840076254267278162572051219182405462922442031126187342860135670614040465049919576263677827356100276706493668595709052961403979763244246106728658847099491162162796773884436158640715889185239900724086703651842985745902385112018003827275021654666000174266203668498759025215520991587177621512259139932985664389513564579456328196452651575202712443158999155610703484754880662580957763991544975244926812011997470545022757280127910725208034005854127955457582687918581752317714921927045707545689677332832943659509188517153533436790376958260577096816416215840241038581576992586123484301900262273270771129792635099190149930118895386251669327817970506092035958381036551395180087030085058787554142014404111532164222282300819942145127254560380077164497189184142241318725562734303150013614843575983844557201981457124697970556659102408380689755096874542198633490489774669711872558231361958084449295083506582665164767905281522369916794167947636126399139897592258283235179186339500638363835167971229460094350288620486522704813492762540150507452279262169379961224180047085873931563718798147693817389180014049235973057412060843501217469062731853645113739482335794267863497709742867143470548767937186057545114426980841444209821278144899880413616047510660753290265046604321079812656220656275498401624316191113345629450494429053394657220218315383254160276255976571300613225862692738207641614616782004259899661172864031608257851679289682438213077276164736631670080317710553054838048427948317889930417911126704825529614206713383672217233898650820083266335202250286652608773349940479076439667021490965534493534974759247666329851798973732889393236398584060707417811410048245522558754623378727000791846386141654386726700138265617313863949513644813946257560160775475263433789900923109795709077240349563815915874813603893337186817457629310971622921945506429747998987471898561323213349404008687901673397719699321313694196182842027171030112416537382120860310164901946217315504175462823365422777881253414285409026797957582732302220742879048757437575128247991812397552897389457595518513058661428967756299136137636906148673346039559000825726527704388512565375612734581319913376072283567704596937777732588842973522299344636077344593456349676022151477257323808647478152100261484305888234911733159578012284586067126536872872965051779426484775616390108915752448181052632686548402940005222195578301326949602596082885539234185913142097980128567065516348342968915164794347072654742714638395714348984397396241807202262224840742202055563865262545362645593592300645346593710001747890757451329736676506465016340425091680744361715855210992314118988343782066311612463744142080619084011700437964154499632113416399167625362699089363497307116028437121273911367850601296280224354598443165928858823048680733618365782726210351137469699407509663483200150214263942317384041854641943889050721118016358959803413232457862880281440523571943051037212620694227949870088735941099284955129706671216066046189269659893380418170498241010382828733367614600616825417954599706352579647611817648033865819901099269984382161360745962870822702852573062292575907330981655264661802295488100695100572961660109748331817028542710642498354839771478708174808034916335725389277248587958936874173011242234813157823909663443271861969312695719557590285548801682804448595140874000245829012605999137297114367007916044145387431057194554522039477806155946042291559999746981747130842403983909771583973701320509314218126025779192568212070802858368191128025461827327666687323126821997802833886345564077639677331152375970870094774532864250630670249004505968175093990475449509293286976346580754145906068100444299541481746689236886172394911043948111031125951414435925150154797340889447773963587588262586662123468300557535822113247977770622465629878999021232193940507425223447820452928549766538032203605944003485188325641275919178532572971913767888719287899553542917846513136144846412733980531129527560586691508183357513376741955092259290636788150115031804268242849592495356831730701627363359095653610326981784118598875783052357655747442414107324674149131672290654180489521559596229033136192923791111338660056536632481711058756294453249888748598439686184479010039801550828570945418619539965005373553939260463738227093621057226910172722509596051950161000027881233525482592825688456057582674323042332206729001090848197204560903404851885538767121447175458932764982205633893116087531602213908708363339150785981889404760408065186468031252420018939752275010863369565214080755834880697731156424562815577545478189649545468732125200708680302806353846768509369426423215753450657032785488409309436917579901139500213097249375672066559963911200268771748654642136825223938623897896851681478198607047571009635387281721476950532508643957567294360544380919191654120022842496759047526368343696911390512472309716564235896532642745672374769979041871870288843198472210417645343513493569580092704774088701758742406146728468804738319113074633797442166181973618686671202769168034709811358525743395455182676003981498714205605325549915118343520941220896843847048975710347886024438215854388451853412339940371949460973572645005669747910974689235818284964262767230447967865027199739487201556163414440907187725341854615977886022942230544349147986402535048226159941197174493495116211585102675067342609464250436665816403556270738663983219689971999267272130549554849824368378853665431930901239941748074230550723788160170050802382559027079833829068024724591595447819226886373036071666071830577522472626258011159462748584567569795722057156112018096096980044111412650235209796877248688491007059426593548865578219282535894151452284215302811805564568661568716713680092291701220358038773930357342129299436197141218330982284714617335994113662663613240543445246043982279794482381382063945683884168530301193949569736195608448335815497932478429031445478961592432407596734996717186655083465054044521802289664214283272699361351197950001517406234673657433453674062681285222300913269767454056932027095868647364588116693660822045164357927484597044031153735903603218213750114733135154087394652389162167682804396615949784683126078293273538515119959694051734992811060183332316172251630147506539199596109936265896225161123715868814307980948459304110745552557589058667493319784735952607570240541454575697171914483936363182742428562833260398289725452002431042662432714942775430833328794258497241408981640256375905093911739474555452273664842564812532840218561935946073989844123841538926608227542217149755885034104947752517372744798533033597946138772833391302755502167014710418513639349283958013725915439544297992215930991572702158790683066649006483272469813992254913526378441416368405136829267800613893812025795713173328572164248515084688346167915688725769853199532862634616310825829381087783326374808439285786953816501242210853734284078883359218227174708815734860475641444019617851521972654159574826531935912123042890307083611666600558597924150573767384688299825718076352710094978368401555384365893371200933326952412109152454444765602549894496581553565350063432539176404741794954752733444931637041408812799021518574589964368820094743912859463583857543931543435877482713107261220399044497278966203063490437286939242858539621086168870200266452482898356381872114192819143258277721362536035166834000029898257035008672911089618103049608156453006239146197004079363099139527801208085752624719592193897709799081085690507860763416539784227259000995449000684408296487263668208153952131681759179296918814539329918535979035361555801877838176753735951837075446067014181252642127317031768467852472485232198167181667976866970270874205622577524207034654737514971298215411232440302770342504549103942929455461990597884444983016728376183600832716831162088841837065279848931985024537408299199776875418232902992108330489321629711340575140374165910634674979243015535485549860163893537647642630358880170192399835258759966241466630801154330181052220247558592850920667433059284909238492521751535528406976186850062883759676475076213576021627072184604993674152535624507579898075189525626797151557206944718736067938045793530847956965909920321420545124882159251872775375803843200503554097540279882797398925999046288457042967815820687409510543985560026620077147730559431228733307268205286084373712398771537570846056947808868807891887125322488734412275399055697273202039251391136843851304594848676045957180516519565544642277594275011971044738032031159104581087073998708737956733316624302419547026618877859665297552431049273094926899126002259565956260520786420564362159693789408471895506734224588756766596593873009088669107483506266021413983435798044629092545559555383009913669760216098909034069153041676382937108615557037291182539074322650200855522011931952501592406359817360559782233583943497033046489202911391589917388658734633555395872207916757731375852794894352491610118038685239885174829560368103954153938572356429493048246931153298086181927876439008972163090545363128280856352157543439607544753717319706775234292984948065628756052432464768999656651525666888658098023582760355322639176442603039155410972793785426233383340956815796290825731915367475562225661061763316491807774427061198320978043955836861625419049724522123665188641630913014530903245832349974104354148673837282803032067110870150429936746406898677982931192816718115160125209465749779531521319017379159130582838992248820281569316678648845957119683258049237878217580315308753474892297436121606665892393251869542186277456354232984451619177356373106738812675600418472711909188416536992275154056758579597503627205700474424160073322535448278228187469513819404364810449051724375374638248806538224188975068813228715570947458428031440792609873305263108094589460052446530210088184469089123074109120928673884389878316474799635843454200527713042864371471405571598430992798192582675669401894164916828365583817620815154116666573815905363504655860255053007242782672612165082322542604501471267729119373387162701184390297466212921573744275185197208960158498176018306817014681746553466546947464857827430439059994654723672355701653872053517678781350817319168721106555653058559234149071938757538902096676087196720107572392453936926495452803980548916526301303981844211576351991714134007907858731929248219849319903181776399023906207880057047930401618233031569355525815549567291227718674929005464395700595316806298632810410039908775856059450876549294521810635699366039140097600827375453780603758558092978070710978738198846356900780978394575969330959363556047091186676857844552296392159414095503430488643894863034939990643082509243474725217087209655900447001083263871283900483816620634826079844237450123378185249095749879127321166826202544031418321765370105997018730500668477682699771210282521609599567175697881211173463336314873328437401002468139826636129200562575431469278414165747063323136137046107439069035823075407217478787050257662608558022518446769181138917587788904812924358627265941885871623227450153363408102855978417621434740253404992131500221584788690726446118726406482591571910439490262201440435705845297406278373672874828559808258230622285429177898750617134849734014243549490267385287910119502641657483325763388847935270845518605519602176622611166030290300024104245134875616768356924719761530659352174313713915282766732927397250508388320451292319395053870808439521128981889109626486378983259157554323977587987260726346334924179661259604956693717116396520258035546172027844182253680354998636765538321389838239541013930432971586847255516880678409998646455445784101531624544844076355803317009819949143750837642228501947161296690365403865523439452699539671342605127536500468677342576857474002459699999030418676789670589493818351553622139235516914149937434334902921573307589918557211938403657663145278046621196549804621279215204694716428672470888700120087457283705146190591910406586143711690706527701804026565365693145055521529162419169137465150063157207644418732653826125332709948526893956601315857063590014088607066138951222008209704344190831869443870989726168237865210511666368071223603060668833517504991885317231993443896048638443122038268571702040130745342653392912745072805036367864876355286159810951859357113144108092276220778355495224462438127106761649254798858188326089400310837433665243266847260287469393610230698563550069379581672000580904516500019944820297371318567642110424088744811752086626812974336154663014622505764259521019792060291562424579267594055463020273711379653894127179100390647432025921461781682376812739754053571906595740496201834603875417174206624913320269435416648264534973100320874983353680581381560339949581772256707496007305116457188127073981770373827568661377091699823998221638706133055848174131071799699644580339827860986856350391271372645140053550885354030783615018205308324199392985447335200635030979548699521445965630177686692493210988575679773552014305490996073698834365987140788221869494915689259540773445159830928857820330034830722422233029119982935335139358940360118504791348378843910816093048867635096856896046930276370411143278463946117725415980218773290445883668627600073536681241004327119073924195923873083694384690294736643186642748381807508504888370651922517467799145391265766203515184221732744724295583094131488905897950052431079249903821987202748445764893171921365146908948568259132811958396251548408696748868151294250840605754513104838737008378092633460783270163098894283520763692497257212434013336939174369910863510155218098988339275982660845446553412381002551301240659518883381518062728236239872539124254482548213548884599197494085458651282604596119917817307827840709024119794828491774808235905812817238369113289558812201951819592470294696050237781317894908292500368429188358203665631771396822136269339734839622932771205609741963826737200570532247599970975456371934098887309723974885500629395079928942965732234767606330736674667232755878490135412800729244312253586187123519537677817911524777120257726509167650300518289898772600405910326064971788980004929135874856559952876208297281719402067906265689035796445321116450141692564477730817383566539382065662373692214256510390673813417289990000179552020458737660025666457784665526987803908999561219885140803751446962629046609117948320697764129485820311209635159269185476513248184392891170683250549918912984927823616122639109550225000200355529938782477058807692166924309343858518335033436403444065088066557993241756004642878096224109645457496878579332083586240993461178792007494959898757527398786871292558561894576482448393037441754926966747019828413030800673143847025796992178248213115528208543716232077206729418952933161339053615569263426978071445110079068587119814730484843267042211430283675140234579172090428844811234237568681325617992452468984492239726848285967467126518098076710912732395147532000170123347257239859997953290496103201558718720004737092071136129316118686287476132746405389398730756899366391243670086795580927568931521613322857818827233945372481300348330447793208099140482571015062131882204704660022195838172542883530771448903786210618346171920341673031410773324937765810758164569819836050064465138150617629084007032877485651226140730185273190782271122992514600371455793034840292605717009394279393840296614568362105421994168273393108416140658276232299178634978607588022753249731938213079951979984030947380199022849851510982813443680011699842284823729446024233095683130007782165228157201377850371186418189069847615470834154485439345110459323634954478083590016516620030020125448329820713566483252743833159692451622057825050179468543180930883868332405307209382716511802052928934655247008567732763102878188650666939391403669306689148116438916181132406726112874711052705924781715402464893849527773179969323255364004664555798695159344426017102393497440664701980681168362346933351596369889225255272542453904135369769936972808410896085675202932234890280315922454279825320059589382801329000915855610708021161385647096618706050489670148493423982872064968527150797584857606039465274078456793172960485377276156288133506660302653368144245735444315425228236640644318875320868224917122667442059766798265592493478008810372865330712522536636728215823269444941671853484268387078711206156383361964835496919924436006594453848393942308233473697982678879173746694356786614267028622079993666770209295149928485151034328768576329704643542858415847646378958628787029247034851627299051359536437871433482834303779943078129572670854711319650442693655918542274621889776953758379255304972833297857314646238560721100508746052689315191223275923843484808213713821892531178611679105005330778150865702633424477201806854921923512222913449627370929166737581437445704226177264355450760102324037464572385965876363832621081982027584444197376209713190490340147193306963138228549329428102508605758891283399436776876950550314634373435539934194248792567092767359195749075346108572255160604966107852928111721279454457224536542870151990887019872716173870865991229851227203897186939898270093210323332486096726694539738067207756911879775206910502422397246263120263539013702039217623962293619582688801011135092821579268476520082611886708236531898489540359532399816499398782347446415665796688530530284662820568608317805681594297388020155629229832229583163589827077297726640453934810344785626294001939911971762243248912942073724441123889749827943477453121474724860284663848514968991297118167348231544647223288104848771127542809885629242978242410403937805679790231347512537137583715751835971432396188020913261021233931775915171370953470429932550806073189843819155494902207754653882007687453738602885095413283210937444543785096555082370019677696334657213657060415774798658266042108970421170200200157765409563756525444675825951003635832582957251709932582860769192658646935198793463644534612176173675135013003642190988875375401588645561540275747810326040893227437618366334595553940865452070920665894016911997878811200480108874190925083610469570648480678220118775288721035272526470436516656839123406683304592410132940168764418211283840074621699587876910159779936317224345318428393867148545016626073638236119696283316243032947601263275269284265607377581609672094320259179050335943081701774617284856963052164301083861803190261490439006173750374844360513789340418498874251743997058682060221953456676699606797834949707960678162181078276442415500802079155997955009235283526841557718585632846651459292970649294104350319971146444961515495434680923663782346994979972809737467173447266127000543199159051565594019384926764016255704404891593863676215686641409282885688503373543528285632632304951010742329034459807255955902431653075231082607866114301245289446550255857239815710178284654044160238194494970378674246522646323230656509576269699305960499552319114173203892002040431980153335921027906292395920199006080802162996918143024486821055076031803749084705961783525455181320776125861275366549695555741560629783109183760896336825953596935907931919216634721595473711350679724954778475811329553650149170048832029019785750014491321542666270925612382500248948376395569953867051751684296733558013073386783316787596153401497747815207724272362177709683418828893411314018215846385062949125180130350725038267074628339321580390501472231472514515222798811398254296994492246661615115612905695326800146605432806930511003702893083315118728242830583359724305712116825754756894273733523199189994044158377727315024186219816400861528376543479231663477725042166306698130153247347315504254133794722397036018277380196698876437608708881919464586641419264219503826765240214009162662952728210648876404165619514344533217568655336515433268332851626471745286448065908167838374012211489944674560811054884306255236812215873877913735876097205746186767093034562165706991569607712644938997648427164495091120078049740459055834175302182641517070491344981400217541822967067896847832771850651259550721587270522607701446327478147565297544544367642712075838275388905767958298730061241120376550005613143400683442944138062308670106096379622080799715220940981342367756446954854192913053737349716743984051383637641764448578354065273424686692411905172301482356885452122830282371437284729338369627892797032276643933111106429556951338877202140178997764178927205193712834035970160783774457271650847963961119321281969603127672685688563033906955728496903798154919801715799053224977122857201272873420595364679564034770314723545491655053149704125117492347593984783535086886392877593296889421861382802427830322907218550956925379426182199322749210291317510983897634304862836974279340158379302649992220531473365596551935624251694319870896905552200442427472530924450256639844336393812276013457368893186211120153320567212607807597857933204251041933191547550633082683622671955037093011933813294029140008811873420872084103137460707137367411559425966976375043910724589850346103825955909469959584345522477257067077593939940608508346773116858535124689070919785318263364131042244735868262187075094643541225117667046249635468208245074251491754513542815381146612926824068772162576429719227373981611094461050878267363877383630415120695223411379269583368772070663889242169563571380011536532364234552955581688160251265127165458456883621152225547868480031347457433206740362208727813745211587126294919636478274835717237314995150315292247291038443472393921009934561409773044077379553577818589075141593411396085813827328063434742108172540746403218209866084149228526119986674220668665977851715798404995767129800825265995873322540713486784664647816720102137247770403672920734148839345556737859006027647020175527472115275348939910766457147900044112381977114497861394856028840137285985814807856721066862110040902484188105727404657160595917117871176594268163846604665745760857638051106022198607543905333101387919728102446572834578590751299313559197272935729439418811923888403332250175880558659048603510702384623594451271621804650883604818071619997733006781150584070551803305617456296386700498931018590015671989200039874785718988445607752481226891653051533844484437442384312451508756925078134092753293827254326671154871077236271303951861298110106124958282839576598780468906078729946176586292119302830817429543219441634857688672152165454031136469219015858007588524345211483396169504762307190437029279979316909626593705993750956809591536775262881852959575031283093018814059082334148527366511700581623251677317574764240526116241311384530687722868543555630151865951535211838150582176101340351057428980155254482523248196079871936160882600972059073124288232545749048786799525041393535535027842394264778193189717522041780833710527355979582217477856797506384347023774169245531138455843537822442637717872087951488395889095560606593525483573009683712174985613564906078751448815278811039941071928124369805961393690844904194939414776065497885764038911392172104849139722101546996733563068003665629837041738169695238637411857837878348088800058408113600394491578378361535641633303437068679073135004521564104394987056153507380636230236798329834174146696439573709400329242333141964557463569099417764809619136934636218990643454305020220903054341435566142892957100428112031785514683762601680650243314188309207771283437169102031478884112638999220162569842810874755274377836965877052625034550839173997118392301970300914841319849129054619749524181277016116827162784608735439896189361821229173500591102109542026066119178363456628565724144169807407575919777227445770527132818001491248926792656987268933952370819821384647980078272521743664465549420158687714898096829034767061149208196034380881884219676888801136071116617765942788019925470242684244801665861537238291847780177602061397563445656991669305928252616810548567821178456409119747794654198308195639694948324217488892186565547491682199826377319620536128046884469803215461763299939199104814662680932083290846317880589914495244906040253321971420713138796715282216427906201063910969926697664874403346766790131441358038987468298465340914796190427455231104842333737477954944138401299275182026805122362678574645761720310812760157792331506389541794840226868717449703056155607101934625233597214578529973710110095696737284027806341068061640022717271735864605107450631856541641494275721749388147597192108453877410648461880890749221354071941000495025027564709213451512905146612035710983095420239840047362945639861230758826889867085404171568634110615070167785842561519549127534581335629826144126964588171416876826021132941473177757596120903661732742814201596264067785404046340526535896560385985610544799797487555129638304321811665010593359184717428780366986680139316618491965529564505573507156704325817490326253748870159660973897784985780635733447138995478666853746333593805093916715994932384150529220445220646906398965906233629537419374418045028909308972144214939479763624405704548791543520612083715383789001588462608190837323777688494298538671477105238304895617864092308208351942950389688408490337601738874957889416263331502866640085562530318770246629689705151047782399267618057046732210069234985547387361900648321565692669958354061158587848835001258279322586223412105152149755810117953845901810907945424979906675235545383282797880441828790072846590777812007385813085379396128795042319358000447787319327748035319915464372475851739920396420897765291500361520142203549174228777857087211486445161662312403867873295261667687198373335334624452291115883820170790800876187325977023162932642157408380454619478324092923895432644118248860353206401063674044725455141868843265685410934741640576041643516283042700969351152194796649294079276294161813471996457274234168180080970514891540137154454132770227056508084121799000424426984407713069688568314657039573790229416049409806711986421157983135547226288579950899011113897277083646098531329883141072304134712439595094886132231490730232531363383496631771896984631258307010365836676905632337564274889080559715760949698600763828961444493897677200620665312042578000143507505956314911376843447349920952419936170626728296688703545058141352575173748807137783094360142306959431164530360083122338947553388779740947832680050619634841315594412383138236208050856761014199902610184613795908646104972267130665946675513197226703507201533035010683123676571543033968587478455313301773729802923732650348852643305324631580008124189279427121083442599636135611889455589167988310003818152575357334334269805331117028759982171743730836845173457647185491325226483748258872770926549882202706852187434419377976196575359146036128758386192025732630213390249024992418239984085598394074139172987482363198042176586956457832018105466024780203999245104145500984922886771907919856672308061778263690912125791938135022185247122466654605918235762610464940168648831673531334556418171045927078894119580655011531308080304845554425797573369726879000444981603203351609475668364136530359376453239307574731974223270870919318025146434349405104099406886545967200818322641740701739148030190121424343627341628059282770703386651829948812448216702680911498052862229918627421996033905163558889683846214339382220137949248610644733781119692407230918916084445098663638511712152938916696767222618698617459219573466003425402632785961793950950790078184926932525424003136687694278962569481612398947465995398541022023094968867825281105044503255384529294896345652376014891222645230431798194269812471863272645135893601595001917226703501845492598714659419592385095672123553246380948177917612240641339799845288989828566892528437580427207199039518065659592752731227781153956144748854466144552807971450954218252746557038969190207405460196959502572743416641093965313822192760162508230085383571483261464690897947276024918613482382490871020179183888544492293964326414135456926815187688489131655365718807342688433267122337370390197580526766298750938734273441830440859477142372796920538593542954493037546383719059940274391523966025513066778598756518984036480703288108322201729509936476224566368289761677502165556294623227686282367971458415473746067968312005186713436837692959407849574687603771690048798406576639585895455032460666456355667780333860750595082064833457372692803302313560436405563116322581278857333705523610740644852574371891591060313779326106634195552742398470846310684488426605102828767722459844953930225961784851800221143038368853215803195780439068369340414458956137076692673736380093292610889526275720858592252161966597453457062216783135431992213744763164171933563796540803149246353398830570207673711349057437925751285463182373243078640987247652869468621695575553060699297986033100343530529926791024650665074817115743066876639791554304717944595411908373327950333858538337645795776249143520374772464199521748301266869639663329563332311666222768782346510689223933164418034838814372193755926940344990359600345974291232941778289953080337667054141768846920246609833661238601842898278059677026225991759062332882468535611681633944895256293745548564475935372764803872898470564258845481544911441265129822122817436944230185647091278163403450194378237454781308273246231502197165099461600789043903582509358458268988961149743663670377617108466423550223716935581973416921851070999292918104731614511785976230952321931785586820128114787866593297248293767862693882972302505450989997763838883597579645792016736464162439859953155913394423890218689444659180710167453375595333415535433156157712622731041919047546321964108581425395317861216453847617573430295272401358714043979433549156869993719705909992833645851636889110679093500442709338619530951813760909590852103838809004527726384929794746369033902387409824741733329215135213181438234309169168007428637036078780254643987832352079929459421963543386749539588043464930865740183766416388385588740820208237322832245110935821895914061010022274255259390454410366659521735768109102424751892184541377975415385145468958743265895928773209803914298199996514324793261843466919045414042917972367069762298544194936445628152159979031517745789358756895150691037010195503195574736226677427175490615891024748774154305537017177234096296432968904293209554441806755404934112441844905035919178909896974103276986708841232099144320448036016202668529442464608325979492715597591524283540592954132311644069149592496190195792367492482176165166401377037653412837126287585483477855317464677965240908183899329093542652079045035659398630645200420125256438899246535413042691358537010100634119568873873528559067698796918500229244592528851655890401778642655400951889370136702686289928653624517856927613809059879282219604216470049736688281099936391208770092094219494612141806610220562886751701547779577021046015644854844039472643954787216261931213147742756844286799011570462343415842473164821765471039646931055564050798596122396629918824377004215461156159258583721149784776275069383801091932517073419889435158961046158407294049169461524755613143360323194698752443048722383854120427019142710859298381880603183639978794321417857839878988266028188584765546108845710429443407567909066234205117288971260179984651511506090920358658604541461053125618849335788169642682658297166535976044448900281897684144619891431166957563838573731947470406113367014685237141045194700798549559172083564384249764181036871992206489683165557977871567639807471871768041500938018890865925145085139769102689719435778130711138712650375168285512033118817800457220544179495286153009513206313136916054916151100817697802560723371223178593469095115442234525595480279991101369389072686465622757780925121818223734512248666323313730595607819195285080323591500481726301421900669115535682369411495689566511858985947776455522209752408938819477758251643908146837407291763536473683853988379812539605134847352254235559397223332531975586988225022754136853725794858228868890968171457775242454795266591865626712046894568548951323183484238893007497215049027480715854042446949398289277616749994433293716234208077801404383776660265362202819030544948729538805706804824228542071106981794416852704805968446937923854198554779380450187133151833668305246036418618981720597302366383743943886627634020811074009612037731828456662404897478896911030041740498537459039335675934054721762624887241752114645069879739022903150890820602337506599199497150395654725268700301277527918531171283024103947508533552319450161011307835031777251508175099217840178920995807644026975889799369969810571753588444680007637949263968682512085627902399063844413160559111798796004255277051597468792457028778470302502693765470263009755485744810298631256969833872507166517643437395104703368951037960565851108905183140726317206693975119432705381454333032223364187195749333324059210365546119679776233624236580461860867787573860673392796519748354950030068169404104327668393226308441974911783277581121805318828253916898282529425515898636543026126970376779888718742084820168098925044801965085530735127760235264082042384063943875983622958731540349395029621972969970809333913472859371339518168891459056395754549728556469647529359248459659542081151331611265103620733948344102872571077940626658251169788748402271777675609334180286122712905635382453405855169341658931640553202488164478726686469770221555187937360356959387371064690013231464997129728847097476594486492846783112825837060945361181318510191944149650540769762997059209050413483812735674585804518511274825076752119390716388024158292367660409439092032881881999297958062398426303844434613261600734687842957053138606105608874207017955567342880999064680462693659193434036075088046393278618971588149610422772161488238764521253075464795686921965746016056790160272765227364729801670838439979823457916900869631876295521071256922149274062073460889691090105553359196198666524852471020207823953925892577162453325650595483373315169872343768691141520264863887506467859245081124978307122182941509783596384812569381078451405993452448612811201043420554633251446974954267013255042218770563352480717674194809975566924640836689945187688787562163699628554176460337299773084944582816287851985478073850399326298325652354870813846853029117805807692942638401459014119046029565884250524636479888504001737548369665842805997416567675916384483093066610964199772947203416081122446627655094178412900293190515434867422415986610701574647234909084878510921398901194421246758568856512395191038179949518872386063087894356680659486889202684096955577902247808574799987854142380744478951183495187060974488863725365026882533304235549278564998490108966417487018972273251325973057322442639359442562835199481819571945210359097051088797924734717671925894099965347182263196236239567063287028415682785136166775962238445056592076084678469721667008936214380951673577360039671292100799459129422741612265963936884713810132891913553626930314382458663900924126469012770414137435292545065610181109234720526977440533226386174217625522593674682249581230072722383858027033712457507132016576517023888423973613178629325230505446923946503574739424430786646631284241608238629421150340285024891489519738312022250513080532414190211708437300651007534984718820153367756397538628197372292292331919022267773314513189876161515233677156639801008571731194852708984448581040272390306226727104724648751193343838371722494930471365491453816935608306635979488781163231599207857559992232134797963375939667738722038285676627890465466474668653652247256603161382269296887638050495866855239717947806125507875883477587164713296470027835619212123266592475108883949060245306016973021049691036712134695983908533843149670711353345253355614427860909998104752689379701453955009357427949661791510883524935114740750181643556973047821279616021523457978068823590882222730544288262364391472765142266733150258284574622635782873478112755805083969320253568597422171599361468252575685484179098672418232587809995886141597097845187401701640291216278554807360571667066141052750681199126289450970002456543585679635990247319857853237889914731050411518399175822235022615120916294612408539806319516221145356378936827880144277144766848809317258579162650677712558778716976932937462510877721966639915532629794172793238540029247761222739965906552392531934191054710766188040929042810864129034139162598369355959802495939257510792307595116097514133955767317166444393330478107580230006948848315141465869814504628606419530159497870266555857065058917390984894436334399163500053936965547335631271876792495203766354181469430258552616989774563166604925289980051424209734652223638370423980837533263115713711986278159437050088405355447600503856395874611592092080267683596034719187588354584273386021364405456274324783794328902580811303102372405101450649166870762768385367937594030673838799317500049820474455439773906953959785207672718683707253834955947613709503491567914709016631312576692829160766473964684311985429374291465121607400936673131047876378146298492853125567274447808737243824077760711290562274996015271734538458258237286699932735265431938919682444409897150365680034611071844779795146399642564635584716293458176546892454073628466214021078425974615536990942796610943353417483362496954609001746984167509967221644931906949295945083098361053898678923888826231170741356243205577767033103790860878160167291094853644369929206983937063829448638139435216184596692305925418391304847018464177976197182584439306863175328404479997024842812333478299170713233697986857418901756825968464089087288656154259868134676761011710993208374786100969458486143136165833967658044164596689841695831002048941674255793734502718916225906099947999504020059779307779754359873787952840216930899144328309252428795228378444013456109058922719868208562864788933551075041572256927252615508340733614833198062348118065222091415030815718422213988826155502244105729347198110579141952749532649561825896279292160474059031236930635656063052798018833560996274641570646573022346638457754833236055346646934626475737642965927485095127595937423253071895629293637271404613905855133750417625223059111590349039252316886899118798089674182284657272026447851954485011594541625877544083910172396329840856441297284196549323789325606872730781863580418108514259301271989599432894304508089656040350559210796990396694287770431766912992209192674602408607693635334667772031712322762212018344479102895188327114305707835609035543854131636557321120435512746401455045120842365582560682776616427911606444130409101040082561708743610831648624189254947687256616012962564402047736081919426827695356535735485372790974748730585306751272846689342042662571392713324971812965940975194638200081967635615006790824512671312831801479948107517410530800204284259197718208079567874750138551722755873007208446779948838948425653257057547358983933593685576274779044939675025870384017410614039166745819117912240908101833135112878531428694142845467755899898453240765526066066698094678590849706875049640512931825080296753310041444154509906189128651260380854007343493588140185323618372204734415384285405894011980857340105268384869982824258952936073352422074194457346489010370482550590180163678316058489368289982788980860929297836163206492894286424429744069061818985280634072615127261503000611859613123366074969104328755179442436455883673795012655358764497093782532747601034411758069573817136639730494003716736589048694636728661644285519034742047694345336173919545162149498138069471202063100257102306307190627195257342961485834057163513453159215039408029022396568224476126368516529546009070638222095210773253728859365097520997562215946020255099051614861644181974729477808128414067752074473297066524329997384925822978302613038261346370826899263671408110219148964210866117615061372466840760875867592438274638949260811330637183291799975051086448952716388447949630616549383140742111648390136741288913897663807493136233990699890937907842915463120551708521015900040443142401751108198753692582931767613955524028889247574051288013929189579519628224874066664669050088679434746497526478917319556451404153078088927889535550724933052286326360267675462940029107745084319067581292016949117666176024871464136745129711108150487736120008441027345726065245689779943138790095471815606993228276041915902722527770073267699820044273579286740572376480656102107145334958135390243238704064049571057044316050834059501162079597228825135059699295613791079653038396642791347453517523430685831119392942940653546972705591278086743780652380301653534004442326631392642007718660906350176797706461204963635068476393925406470758804791700300136085634813573544650959392336482064629313641082358354012438270474045045645556822254975236864401110391184199513071999787939054588039440606653134191266142413827107780667800871749134079803995712016524304731601915896057245522095786358844228733184867364820549196089371924366314276433832476871115366418486596652191505075187933028308986107748981489652723722288500261606752270813142488715708761205627330629011956415666604055153283012347272186733107465323356020113609268016839960093449885191393350748637516239928729904763777912682638833782605179751705747733444275678959503851817084145116984216142453115508700068530184393942629551810005936740380251339382400447548917644538953794464386171768138465977906094236604981745655419710810435601101870244209942865394979998026749241590764071788678444261365458382675762498821210295966348312810149802932446596554543045405860911116229307899544966926735913279498162516995374791758923619677241079859133214512257085283764252539192546011087681141742793087091600726269682488019012923927341960240179690925941294101341017576795459259745408759636868584828536937856281816063545437995549306418556759745300220729592190930685811100505580874027409681323762754463922903581367790624806412921531316228335515405871680807433638332354379393734801339686644553912402478916955933279535409505854027652326627915506192249349607754740451001003637082735909336797614561676987295516267942691604612076216534746366688904847210135926977448558730537682069208114021098409913894819476344370256773179926022880084636144158379023655988483311205261720626168554830737272830016614025738978101905936823827607799771828774442341084120032055853171431366021253530675099759633467062343777501095570511547180044208498083180694859417033897460713066077009492634603068082395096368376266607853749960295555587078300798050055024400991342682806167887834353258621218425750431695265266020952903768352333968434214387793266240747923000149418806234288275182493632074455912558250622232546575171314483093355052431378874157152109188685172091859144527956667199934660569295315993440527990030966412077445273134331903697104208004487589183622550264610928645426660500231633408355092177995361282859586285432776606493830943633426954110771207638658089466766815663624006187515172599211417130350524813058393248436123887019864213597282797065640772871773885888335348093376453105905821210477554742324611450646558923765321721395694742592878898746158049677731815376219087760220156184485899360054854146954006608020318304954267794049590394998809041649320941464430344081267147761708705340910854089121667995785502991842575736556278057377149746868506878134654351191314315860343397757614420270865356184123704375287211881877540213387661779593106543390530589667944774066709070251610124616231133731627428894824122738682447666016603424573680290899309178238401022394608788078001232785492001011188909767690391867115104621064299245591851931361662635719617688784788992054855832338239724641446858944485416071852588076612501951715608989179935811979448683220945171704647876576702752308064269641273993701741997192142513619606872527960824151143511389829651340019331006670066188547780983890603174988473035671786953521778965079349404762308845972901743398774062472871281277616729147143206556286980866708941393537951868010695395628205049591639528025624107001200114834130491253734387920954409351989186344369036425958522012537564165095271388724064118156392871853214276860861104413504453958872006895778970964247460680021492896359635687671253817293958444641949912992108186768804843976873234865008844034900511938023445663850397712292983006622355014209191730518836810516804310321515814473074311293335139664228164490186716375273942761888880236103960779882193661059573333305363948684392969164986209356148729019639260828897902406726061785788269099928526661250883965683051432771805665255928242223570775576242607272923376899403845731213526271515680393236094856569212088852682707824871749088767161395668114735962027812467090801782248676403646990089001721794432100346396846882390905656202302383451131511002541481234782821694286190793314559624632802639089743332923587940274496609928225324909274116142403869602337061954567202745027804523950459745958979364053762428562519116558916792529768706154491068412962020573120332790881148138331912198897820644190329661043956727807108269610699466533525073121189815797355806144086101685238564866357181728276126574859253250517205201306787215225204616583225778815965805045899254652250136392947371300641014627990541693807264603670893297855774893657192430923637792620801448472728261989338331633814123561532079181769694087054304923309452752151769792421406874726209303205905519341890545279170900135541631469037923856090480275593868646583537469538652214665048480439288363956273641072076724994700154771913957033819523955929866656054491824207023941071857796278858439818266456520925122842014109138818695318986704191519162022427733287607735318261181650277356864225122327250308458287314537965488342796287379107454756606008860119424679359384996811733474693209716595172548773098629790427575358864037764397515018687244151715593246350357705252440363761738254035905573986977788775195602639429655280295394545642197599371718909583863619653484795514481966646516259694684514214087247842634989938301552910558871123338980650262996546573753361476711781722461066177032062273957630471678695301665581608932636792148511778073827060792127761728935318232322168957194195976490572731350887593221277471999732437010462917596630188752601580565016389083063902855218760046953621621285161970080772212663929100170610814128730094723599273665944223560333219856103882712015094355004208714595100861728921446433415991082773648341111497480467298431577012877448676781212798529904384538156593061922758536124946065969966738147848820112228679409492591628615079824254321417720256798198554163349806266193254033706477193560915080560642252468904431349622204639695802018697361856948385359391545148558211722600894248742831266717513667363214656917837803368021114120795611910035320809994924107744036771115768460754672755674324861317827137428934212978028628501385796438389290984821864963572513923253266014326640244865338021150513846460766782880455441039344275606908722385902573438563026068832534310115652669571474037881896402673547954853462270814571146114762662776400000004700483084570763225310714924408023303039770506930049904691456997869189875412377653739566886120456177938318785895411322841375783473917715896598263445481952083070435414518671999785704344425991310920109976431691549203523062415444161136193650593660946508436774609767629527231218795486553103011922037521269969726843492031218238728667635979607961541382021442911925134209258001879589852592002981822336812334314683539366563474530512744657096155803833684172076424029844663404148448428523729896075786593083611971931051893474152945206820689384657137635498242780729557383216482459807921553982139567421557225838820685874749586579561983600824411658221675928208309647682175765125319767921995345674725859293352562158381820032834717155679870548964534546303141918661379224910433877728317216396954639176492969520345545380237067496788362569600354236062661535948233356987423603494914399279597001730604449237673245070761638762308721023830189976113397866625314118397885578840718792853054314185057164689486597331469606139387566933264985462866730756261625743707383930673637333050341568065659108830423303867219238416853904799379338524931432705432494531870095552687934801793271388169795802735496868106924701506953670188161470312776679981080887176096296617811928219144078127902061397412003071913363725756284330108496660282616405037383587981442857009569501763356476448011751999604839255133812562078777257866826808462588388124891363865433801334068770037593125466940485271327874282116875977368417930531308116133812727422689945858743066753855684272658461206994631331590998288861507091225915231358219491189189579900758273985594133752118781814113906796146144965633442890855837846001373294740685901096481800210697484852312691379522593388051205911864865153044931360639748780562408888122442999220074502282720909455391756100898633272690036343768839104783737576472000443654152508247819806077626447357340983347531089068290250004090878409826438838344843690420170368078441503834737257677418673173371863220952125904585231052160581394859607986708539232286454992565990925992378232440630537934865697005945620681012339971510249122433710723943012492286114486405494298560867870195160255025148943340880312011961246272016148453751096679215497973028412436907955164363563584245628411525018084046430803512730817362066672940603149248926064775143593633779966804063556454421092380613259174400886976426459481278448456267727796790722342934922489324681383589502396909421445226841642816832370084934061665586443318338670414293455504524277312727517587954773866925358234593841517679116389047288641681649192723419093066279224554538674871795212868644777045820890365593209115970955977030341297901781936518339766774680950695768004137658464858907645928181730378240945870471207378814197771784600796387048734517646670643207210266170023846876661612830508424960303285147073744460678968880402214814751418479677434187216295355609447550185715721774460550358567735006881320752100937280492707009411017119523552569682929281881808972696519878284515063836184185823898466604974228979628006763367048063151761969443680416706670177382073029878934520365650480438383396462148159906845068906686280348825089170502188789363377065188975560634409939680227236735685661305455756737777347774226799313198049549212203726831905249295275315525507121210515521163020031974664849173627710071374483004002290065421242230430898840787449692598301665945343760431584565030389723395998296949474552658667060401399688470440304737157049030575445712618737439156413385799825956115208343674076434719623096619451308027038170061653791154824934952249695189549068241355054043502201694406325464284565260740490025556661113507698912682905746528974560776741151401300900720995694995018320972090290175683090535774480062949701529022033292540387903268959078757185608437265938232711968382819275820430067850654429687369064137950953388984842755529158682487155161484034024773927369319735492290812532261908787369977966780193015110832275277582344453352720407852455316927714541067724674483947325251947477592237810705543701802661414307157879307745684431330052391631867193744216969889036098315133274069004202874191382160276690647784707440906673979556410794247662519778169647076891141740193333792123873696111246170097462661398484527570093174778093297993370163899665639075888639223559183941848241771382452297186669325480507744280811966407210666561519646661318392073355083743196490122842957673867199994676196731682326960350629989325909692977057490002466566249756231557484924271036472375178088341612248603981431051233434310035945415574426299963275432490849082005053040801447114046820369391044670931609312905776918632927895550456831210680067269326091835673775685664898953461292824793619011738900476809141656498984068509387622310827630880735833885720548517611008901969214807899975757378989101477754958188031595640831667326817875156236893383570654569812660235746434892175548662210300139808300552999868073622751787608922520334385193493201005687262935895005498238595933255187189950961727051777840147590308617293843764589709432361310252812822930962175474049829646666080059109448101354757073424064833587924220682547905050657411152720346174946961321459591226521596780542664028453288633315096521457829278656485238048816282778628308624855066546439361447720287990266801254936760258226362368839129149435151201448543332922814133696878114537330920433483600523142225490480651274533284463595987098077451388602296922517238347879323235965052619625237589741742413740421462047953650154385741267664146374306881519412185109511327800474410914579880007954173656587206460235947027851899483230627031475107995139472532666643404142510054965409327702575414190025600327455808510715196898975025362216996211475669523474924386857463547240245883145484857751209354375145627837820870224038330965596255060936867805536571435746377377646065416188841503152944984454928751689116934484700132058659145726402050691737327457648668444096897670507772606833750828635608367455084414988581508368291796051639081015096117123976770864948504081832554067287024906626018352067823902181728771010705477206034436964816043055380506264021210964329733320622102522011348018760547558669071341184970378751750119687261413164516677050460495330188737980648205168161610897635681623465050078569534309133369624285346732930419440219552801742428428373277836653686006867298326872745932451223918326898603954838108546988958924226825580805300308425555288868948795964699683857079613261325901966500508948662905170001728455757295387270363506547962069409142323134962589109643899486023498395405653702865523310138951197031658582496322038243200089609481991211068793780160428956511778565721717388291155804060188352284782366208387221801869104528958481400407274902950970607865304176551293423581107219967588250981014448854854019800097868748545958450732058914647503131525868290940475429524086146836159540573241062460110036608230440403869340267467851240779853966003879119133241800626621374276867143412214161867771925139074909394101911243827274846093633346649941175450241240556877119291330223499394391808121071761414824643843973895199923238345266742279671395778370067816972652096967051098780044036209082797740858642407202544948582223062616901872803811612374737252797717725849974297602400684306750958307358913840480270420719020829935999167089409188573047392984701361108632623907780278431098225157335836933276826746367480171867774358030606905389414311186211004363169773963885483710096627592316753167596646979681554601293423421731048773989618031396246133143190913474162260022606380260097714714690191721743461043060544750935452906931238641930596238593172408957726589688067985012189259718906891202042196000148811868421825919319560697040818791196345876364242077354794405167379825980589160172133221401957984792531121814200581333608511089605149984423273756113523315187749720916932653544831831681408520518937005234660961621025239764319840693245162324410738584153741378664173990330071835767507323499918372337931484338165410908698127549257390413521087859447719480896189778338272288839442169312029959970411674974363107389368414586999844638059629748203892841323197052427100392078774931141326234056806860536943339405886911805755751212923255795785524230500611662445053350948104593658768510051207245065835388533457794644118239049347812100216980822685029964341998152004387468972259213842639898273566903005098917947687085974829252802180524921835308264750172794388733988059339302212041902638637159284394771758314147148742015006160570593858939699278689792575701974530156266929134891144393613082541612546061636437357651920322080134074634102118660989231364549336027026217666775430734045229577011727488274707430214472264271913652383116160273143980302962872241751649486450617661001924017215241559815038582995765363335450849985722806727504595788733383705075662644562010170644291131327383910217113581988645822411550200312947963873910420759626722200484680096530530592812210554819929380077521914010201188581684827034261712903531372333831974221043327106604617195052316027429943334970085878648785205990494690210925115585703956000776883729657559675372253167472878121297923275545664106465307551254655857783242858121044500602245484838755029384923998377357279223722805365973732658094755609440399094284789577979838205741002254968661564236528371497791746898962814214238580015709190463035881252998140496248052246835992350181012226837091726165046284876222033009141854280441361019702233123794900752651937251645142992048660302438741530731386810909560727331311622810561479199585541651589720176022152060741529416748656300789569041065795464695329477487724179326833841823325414684675572234391389287864359695104526126404298253158007318967743633412459290042739303203983014172898791292915691393648489202789638893311095630296937478306610882695060078513816798901725111238772214399728796253441510004842904511783021401056280904625649462326706766869494744618749921224135902576074335547016548646705352132804408705511016587999856780955612946244718383725540481044783935197859503615240859254002515629651375810185774923024984980100779138721138047351000405646289931771312106379224363370550558786208475576071808105503008778889185054416273183096596510919762044813126889043949601482342105884280998574922723794444021870062555068466383584599131384258597739696022190621094399407466212012121801217143729963286161846293936807049309322304251822473301357301173293846594951610702055768190133645486424255143991452477497490804334086247059222053445243376773111802691513895051325797353107009396633563130483201200297330099406470145482627839400926592382283421430897385354965400496801584898267762816007148450980365527188360406205991754156706545050710262605725836602760384521347395569863664183879997322557369392811313274762762035023851707108263506879121573945643674666413847836356007813272412348707462311086931931976738248190940361030251972702442708358830681834158075967004700740505832868152208441297195101222414468975070358342028161749541588164697681332140480563255960866282498614634897779628643491443372203353731415934282920234936563158390290486701317310996284121434434592340519835639282745504076203910532536838301024811061845723510722901344448030478210143415997332869053360771040926666853054166179655100934686779780661409211151620773110779209833330384520883500871659440144154145462921943217598148058744652966826584854212919556574630503610295556309482541318909816736790089788332616866338694176628037594994569184457089142252101604166276108220210553539121130781620465057760339186302160950930085916216985622849954242430596332843486895642359535609776355822338789063732085528128117558740822075206996818768968712528393376246241106469467908500866153381254790802405917590767009937246363726774958068144168053770144315118222132367929111797939376919524703432840478090543529361363544266587052391279392366640687646927036713761654884927946802906836001713198031772189088733550669163417624113743973668799786885289953306123948658027659029192189505563307434840452640664982822846444158353329637643988770001078259854080086666498229696095738617802875420136876655987478750415590844492377907294323036086607818747220493949062811901532185195443338137995505326423895671419641398921212856126788660938743980692601839876888910259535566738420174891870161388918387181039131265027616119034450334303025355358886258517326492329346820536530088923021082879020238718446512208223910587965996069229501554616454053493654222934388050624565314699348453568732261702063784865195189806070864805186815531545824571364820383855011158834075082233432664786525155560668891742297046607306766632562598916524697499377495942645286692111918931163907359810100026349968276843609765259116070918626910757935579498577392247359654090124926825043297384872134221418879023978080782425329962271591684199869702222032850561701794763193738275003085234473759362785437080338974012819893115649980822920863253292791709406953980723372172947668892226414117009435380673243752563564964254929789397030156552846429158954943441120570680294748498310293495229994519584732322539875262799483717653769759035186520903877924967515427420158773146706970700517417845195367980073221711686344279785667458721475626349880156974205173724351399850152426544318940427167174529924143948470980843903499882054410593852275471226483048635036061811902439609325030204756604793488646677195893453287731409151912863878790404439941312970479239503523929255563415901785111246069479085828857564853956847465829465093438250071111873001493664368749334287525003055945788107599015616184400987943276397837147001819899471127030692020363111147839698964191489488816351978543630717041009839277460809357115716113734096378856734693535663179512554941812772202814392479649626387160931648378501893035418676997098806273925097242984083779152762325945584417372941544809031665055764714662289022464558039973654225360557435323682079218157359330763158738811527098907041548754993964735513299041769661455976884854773593570506591023192853877679950212672293484125236810316853883808629241423886666412152104565605699010298064137641579154409491859109823655926755415080474576004063947393725121222000454899180103020348369609486054444583394664389251906754666122505547945364662104737427210602963974613759340550762651091072715187257438311451297177683262254098483444035145424689609148100504462406915099184498661534380461856002611779161356477690013771244286257570411451740222032993551019464306055034091204114634050316050063099700426624679795524139272927478285059694323118231622219629953411246152501751781098973630191580613134253854594198084910690028788505891808217719905703245306524754608452579271967153618210145422776444557943021650991323185374295560452770886857401133377282055476944087857147732481264234559542507407654463065878680806070507384501653263397457833293048856628995522806165208902841502887010284076540129796492562978408418205860909242450998286233948193814885129215781661569660416186343777397952029840338129814616580456841261300412084272353686745990197223899421803008084046781411262567553384255360900600716881726913398773697811951692645061068841404615379297485461013404561133649512926173077704145518230064126002660401381608181600113493598081648547151876343506466135685040831370306305830438357227301484959727785858169255707193127878956320855506740924988154731132182687402346779628568472736175030061225918575045372845474485406872685261918554709600720378048342586471787721357460161332202988878887687496458049302965656088483093321615463733055090662718223278255915706762189360550325586087074200921815191583500114934058710819738976998889659489840070922290834633110804061429882553368794809230013157316871519632170116351263093355513827097695064859752792924317715549137352593772686626276509812055406337356744979456117095333338308192698058971399524167994265512818572123573632234780582214479939847247069360760419640307302337185141825770554838578885945352000957556698692332233921676755030913059181400409100092181925150164536812689692650470198489455772300895833425188563191863955764944614419653993120457881413180298464389575178152461639183345416153057820322278970515804212508219995052579760249741097378166669199207582346257479228055233683151084894976155816512806153875735272112290214708969007461670451972716103137680338735479630478945296405380624133247618958255850205993675626207213704929202549295432550108257862903517350393333640338082484296548441832289565104616117713230799670827580393381770760164041168625466362044104109699698344228781594706252677602300860231452478974102644533312981856726324089655597878738003425411152320486665419768666493429759146376223949862589035116002585034465945619103401868211811756975089562950777650377537475170808849493700537650145358998484041978399494669676719482062417676754486579561438553808213021222900464882692571075892351082597791493610615065561325436816498999692398980549753849279209534252669657729930120490926064278244926882155544247262248076305259792380075392927687257451905823602730869337115154778637926027597721615940452655481084594252896875816802166445217170367635188916754029864523039220988366052014781593251501367559699092818527499743321724536131409513645503395380410428657723516927036178236454936991481404428744941925549687303643847280732064546101018172746687358740183864338060151539194147127446250767689974698946599460907223436620534593281199063583361774822179803576593772220475654053211596739980623276508207777328081778823487582255331625209219215323190832307823542682836910665273000542076355048587787374807879809578939428724987762136368173806659622401551959854955718003929895689981842859631894472914526665233209365080386412154603321042017350621091238530239541231309700612926927718410179763584383691401598120757814511960959861895429367905108865834593403507625558302749779804884015790071000551614523331555416524784915637999700344378524373869247261708583841476171618404775432570669045277830689496537969642805771486386652926478484522555005065801993217451193044204707847743321314197322285886781997269667603929859759120468407274144762784853379852993839254619350848593888428877503542230903021576195876639831078213344481051046375424748313384282393306701744573373692624517279350733938835048259457805359072695244856677125667593205770872007391923738784913591034704757443014528041798922567440289140010481554674793579775753231272497660675677599119574554719219977910360278069875262475717108336039685504935080794016240135872766266255688233705697287159833569750452043665351080089764799767080976075546425422469784851653154872468246520439879283816888944784569137055777392623092814001737878577929533959931659005179690928319177096781134511878025390407584972640075703246285428351608755519681575836740204940780039109811432483795729684694472360075720796162827351453804029759400266081001154210259072808606787841827306673376414347161976572504509820393846301906851339579228318207545258363083417795403081249122770558067684795691952284556849871399613860677928913068764700934381301907630775044919439822305831909002823544688163671176487331321746715698382293457938009879348374153846698397554833320674970093528223210637189311709272415337515937601865887491925366641301282206314867745709232940550525742968266429971808067213893679585141941420319964582762588252457097000747846600827366468260409873639983238468543964600126849215883758485005950351004831502142782479921565714929005423069782799443288723149074797196247554781393037403720777590447480008262770901126053680006874985848215982933385461103899839462309176303881233030275027035485867928121735162666902509104501377444687630915039356357846798946800959053114459540753311059136251322596158309232449145787626677019384308137245966521809085776299246417721344770853231261517991694442913644280311396457954089557500171236670456289120150270757501517787164637685270944642655540152229366279568637429563228497782844073326440214385264142422463711227810427406549772000837155720739318583483450065838283944243105561125706849454444436647707348225224097113201234289572246020622608255130470572684143754814225105150466798459473183707917056272504118352179404174333407711781636169024700075887661644906187904294000967803517296188704925457400702177274028938454464931531778257215155823483355819275204383283750451766615440493839085423029239047163077530330925607696283833138043333602837382309843477572502974367800739060967232409408551267766582112254326128171263388477898809351962567938892772986945823080221355595660544709759591076139970650023218680532963237206658489540682961415392646735013079809140210550394325539884788213965393151740194239376356043640271456276951646318163514433892929935494417589222241185289890844511171062017784472717907613290552696084032445664504493783038092367680180394644808685441843240817241864586434613133604602165065466661655426090013390895998932378317550807238786082102521383651829026272004795915942541476826139244872324708220128326351697539011637101091114719575761955446816381482640638209260247863907920879641766049915288547089548249083520931098546977984677741935639043387027522977947843606295985004504085157716730271070629342884980469745038655664739179144683245816432766729588136536433967641964631619867477501821106849675389070364263544212430516796931649748799838592143874518188585409042067304045141067433188009997471191373999205168667817749588607580820763386535942788681251930220360490236937991402668117446244081295207679272894310473015917230492879993312725137602611498005794437749256671934861412553702955062026473096069864869429789635054006982267498303636837775260703202907857143944390846102497216134948504545436073669304491879001426175408379906746842577816780683502906615551253170972477950570264114332832766371825221499165871646702965130693564121668672474238879985004466695062266976181209789027723542515908698830650407947208094104353433937325139442430438635139508629402040297481998816154325391308217197561389931792832227004055622453547857783553723173908308954980178194033347112194102557347158646961332974266100553841592786967784816753078869205528820270561062023368897418189447374998412086591759690824634125408951736407542148834305354055547610384787841658270810283373893626580132298082275732179495669855136980098365001665813189462427547118345170949031745926751830767185934736383201843177855658453337043321910208554879891980999285351115425770642736746320570374901093973202428901173803530114215214796626510168881527999370500176874192756927028251798170832813851995943423263483725655243611656251858227630015138510044676973941298361432988446730404584627787776638626950693954315955279962928671814862384929835795587877096325903675518387004538486753552427250994003039548057440035048667566915726264297878766102256979583872483302491487905612926206852850127503923926844663057560691238550282634086436700766951575459610509399633131363505971036814830728641290140899315022680418037997342529761027678036292937112692633856166304048695418242241042026446907442527871458502159415381781005694934095405894290624945391204649540998139317851512286796378111733258500009446494896993329792521066669916680885175102336022172714029345432082451685382880098860515256478771701939804086683840284573410006832836654813613728145692292158533506709638281994191754994446302508686970127563191288553318983658244582173961043961223918470891740467222366892101234165680666106451218619325179309322462662672331641365129845182899489873955428113413191821152944200434290077004002429733787895934814003067338760321989666059214015498443386401813740312734124201997093269961382948966209409984951123256739574510571066253288848604495955001573329702353686520370369663280689800034445334762387415539858602845843637648319934789684885925879203557026791133473458957698749072472689955289330025242485686512781479445919919914556812589705170848132610325870551859506407845107298802048518817844295525265791247542294304548614120420661357096847564245123042797055432275507630432944413342413716183161000840951891087143292575100747590618284300627368302788872652833276792015350679441916472541888395307967433358317522753293857910436605210947534123984751709054897445339357788185964598091270429631668701651889842870897596762484003001768783198739075635971239143417425415833982772342277381829561848114430471695161938473347244096017815607613571857781810121079198730112751309646651730856479510031715449678378158204302465752829699705383581892737389252671093161606708095019727710475205602693085414348452095056160689969797364496773574762442112184387375906761676302997593473480715532008745238720584156777734360370625828458328073264233875012163725517448217651301858823869926605991108405182542640205329934032219929368427221838099398255765960567660025942897818828907483157772791643642018723975007871563996591877410131132190217013645739461652345065541032228280701060649587540385620712706824731717236380049039696545020986692702477352084441347467771855857812444967768479659853171777491858898609277800033574115414681692837023716060581044925534639563136387559103068001295559287963224067934990716208009741700273376881991646320883326497816653640008510607361639636945807030596818474982287550829448815402219227280673667858938356646254863276459362314156114426518892161862050620063588933386798019497585238624817730225096688899990421589894412241989941542226495485574194924272067295530886072657736629820452744840766633990264090337929585475540172681226170129294049634485828799676728691713056461503069517759779426360089518570394060022889483695708895500054203086927792956946723034998434358582599239172899827289853562884153183888979390582664981780744833374077957521781538207934786650755040452308190376414108095827334677522282399666720695205816445565408110543721091260751911783189743700936828653648290814934435722676042773827136474063991040409473634833536747697314539125972896911570803056572383879544449073553773032461058144368453429304732538872393601324193438498651459599512365813860097899415204569981780923284236451493603239112613365841719314615886798089772260685542523082494066125054980477699010882171839881304700245375140721605309698939457675194510871285460394531501541063355917965491596989321721410234221967254680307646823170729326076020215284742676515343172348007270170905115603789131584714384531689145064500796957887869260152895560240430581762595724763380115038648701126082538822832759877600652889154650326427092226005224785287590311476021227652225252429872236700073744531110071380092687445972981706977750030739350519437397458318696223275299405139765532144954120762103261649417450214798755730905361764368982172677110466642013925580299862702459405693086926949586548702484552213894299739861458610019816247453747533515721635593854084217611010980955705187392491286578176897840710283004028910935272016369484616820433093329963051202007076050387105913967128406214668987830008879983231967432869046488197779269987946407246134205558570353620716368312010411540537712231799873973115479255712445461114457809571683502589832706214955056438341731078186157161617301502000361115976190352784642170480800275196959475026264291352395891858583497409348011225569707500194472769218222219866928832599255550328215936391734908711869918625076950418782841015798625432596088620434345902186433455775508198227199660347721323392379487654234437170653880540641119087211338892000878858704489295307156090626919047535824864037259806553500630211767270755106152817133268875681149933290902861744673450318431467943628120279054789090935958896166894958930030464651627070724524273421605308151458876883130215872761756705790432117121953363846104630264439237711079318669728909230581328035957437451523004737028254646203824038442370431749509146387109427477843561171924047659113500614727997933339453553166036186929032478020742489148091695932174669837997199698764004526194073928584188100840369875245751884668735461163834699047802011684742705891880527354655988153931426342533004877053873617514171083950354306116788361935441751402107530171590617733045548992349397256944071568139067467383629873378865440120364285356800183268686192337362552870610682407569985961070606302208820037771430241742676911268225632350988739463953888573726122695302912956546312746418901165559557177777157863464406988167919080469072839068328469929733829437331401400908994027488211339709138031016142118882603182905786842175661884426115780003259446596985907966730885465029469162823854860881774902211477480424538178030337271684429787804284367754161274774099537941345258939879562730988867818156087691111261155762173907445223846578885458953231149278502887520565786891787605873526095590793652957896703017899645658486136583573214789059601595365518536093698828971507149318230160498513030157375204767378267312224533108351124185822552676880216120193135492987715769674740909806306124908373300156410748617796846142442429034574024756782344998326656886055985350319247756516687733443888575701896141853043787501868905874778833610269377165739791418263491061947067540609095435100995184938618998939892552230118883003973548474335525982445739138518432935527910553970013521910722974647521680611329647996147328244542990431248038357556653453080865048474893238984283741437350226992441159854249825415577822405137820312627192934772137523073986871111413089150309593216567633775207776764869430791931873086676701220675495362471298786777167350798364021997645438882455182897660736615993583881614361480775152800525860089358733431988059796808170566491751919205399881357783588136368176631776591007136131745236821213585750560261969451606981179037096743209701349388123484890545699812578815681941202287805566501657606259427807637527723402145351652371324284109055316909147681666502867945536337113447780171417238209461380084704847738014352273974804363531676501825184728260728640681359058833398623018935624175597538620296524867902400702908176502067519638566904477932896724752122844453326368565033724964237630368636541149597901706683078027387615459007839737017130372168739740138614053642903698546580233844900471623197299033485001387017179975212069322709052848918402010585619761341554187470088113417985860227668656667100976465326409751736049811583627109171153120146725284667355085112738875805440410344606445339677243655134201018040379882181995706156699064932658415849311567946462836580343588003559297293364873750896910567172063007547521219925127505208078903157660075565576545568453131941671710531840445701985522212456235994366540513911002385136252375413894752148553641787784339820072594512073024273152401884773578347889950623522317310756227176495397589670713624843082288476169459301367327546664952835999775652851923533125886514385889086847564376524861353479312655340077742509703417190439823894858390952415950001630558497980579583912612025349358552842604261371837610731267075647787636023636493612001999587509764068742971146669424810946833719183177329502857351553360272082565411803863143379368209823891810957939667913177621751942393557001748775357383548549243054448099035254819648482231384970231303913413758474562179274242183576213468594986808119895996289333532156324731983944884743027365425961713342646415582317804306350288767121022960382267967876421304627111728788670385146237724070194276709895386565677964039008449759944751917591143897749731972531267001061469679252392328194319351573281822273003205770592440940533380134371592939031028026400448370440818862803255301412752994737969216629117576640747104072107232740879691825876020069929486262274682547908738270186224829097058032958675152839535616471578337756123239021894828977133081102774102143762986748585755399368789728222060501607421745897777127905530548268013242652794522058092692312453578361742934923024362730990814650672427723227800094904040561492568642623656079132768105688150278367069809726004816947865453283730281979482956070618009439926937466825886833095312182916825976632945492534713546849748352456001539267864814868520961766581560515666411195487208730793721057489984255355442934852867964601177653329665121392063220935675532979038784075848242528721128175095472699480864647285415267881049429468575819311209982409857560005135246008317639399228507605339971883038245750131004363178377080976568224051736021740446225019062307515475410809127747180233312304674159300160806699271800845819500648229332319216872380914575231344392491022173315082722824212457904722188441245564420338568998612727030462828254548175125800942740151823885389992818937337698069685797883555088625330730995548844535662154759682701229898912456581115121075272433899206842413168893240118020468999880335180319149839740672257459073839537644949643913182125962760508521661995150776264605575599621892446265627434446281938860982286901352490763087726868556287709550665082038286843936018105350638147264946704056215212818167325017512134817911851677693019650811174657317321377475147788373459082917014798769589827774048390036787218024231634217289848794758282361615663584431369984234556894920816368282616747972901412687314838880462138213314195488297677690938051396012477954092443785248621256326600219940610763104278487700014727242131887385894815244123772650712699480609714346506059128548081021134354266308633053147161385364353391632156764879743573506680605002458269452291885353891094355303927998488637041712966690150936917608461701605380858547726552687322918113864950363561733154441350322613092389090330885382838195431373492828506464257072914403246571494395660627917858022923427551624348170602202692257022956812979579012342082882185050860078866266849769799793782394093913889270629911050269878534494498713942251857906524692807367791106133059730647105464082605638271831116012094991483962374800611265393122787957349149223944782175840115407702356457300674928000442623844436281658036826284651676845105006224956874749242680849152808813594047781350810399513442987677780836037611793532308885158842976014758187099769537797700271737154010626259399680394299579785341653761257374689701896297379116820754099237955758160826095090469921720360193955972706026631251614551082938869774131655526583036683404457904429871192655396199040928176692622212675012523214295496931391164317301089059463598637418312681554620614794342694626588746980163174980164271696487628512781632424583794671064849804342847850579147673605756954262610728902981461404221196647536535210720018343778894449329191077623551662387322697440937423400750812972351031913110874033139383350974245414660485457134580590645317850492428980764542055324817152733589653751953505988018221364772060781090360839665714220205805724115170802722189870019189208063017536160875098547756558227879971999645079660340301843981067707911818877765675848586693813967448906515185706790069832656006552829785178212868015384530729179076984919742766752274109083330656227174091699705326274186701637458523860164286922584159267374316182556563434000969936165101279325218980457955249451053805319634315706551357331271073161824077315502633992091825436510222815290472961227532446290450659288586434950572466111392473696510261507175153544449155477236696729423272094111703145554919148294247248073399948328365259428264923779166133462699029527464190022779691963798943075024903801078738470756732171234699145821481270393522102722831024520366858350939766951297368993469634238139103169929790472340818505164744480100954658368150378141653733960273000276795576965399727589198127207427853795052975861912008954555177530236914516998965384518725967680984892220844795520713244311598135266222846625204136041028995689622331749092510995038751184671027492404081059762944590383913674354780305783530784516066994309444712800540279604859086300927385400706554138568725791948768525158353629426365848251345012067512946214905448141815062408043978709736653150449437854744590159301741638129939106855030686841130313490544714947849536121579277732746886925439786166251817154494929904300110871798380985215023456250914347867382233164265981527027137950983992602593165072151920429030967882326792478895107085544497640395386274504996105230233475561053910911405420200205623163277799457039511352834709892529556185832800821558000365265102275030533507591232364161436902434487820913835412076617627950999146217478306067654801763871780102186033231825325044443106935877053765785301061172249493468047623369897569367749285694244494171836066190133627892827679678707834653552425444386071173604597823907238837135799354921494443774540347990734011470413440294601496025804546512349482430005676519507126446816637977489255736563918841982636594940298749461827608670157775189532523755697295668307185770203332168343855286860770533896632268734048031597533563393157945033916805939383988758093910743707785738041010383649341633271948008527707521725502416118787990945203529509910943264397166262479497391422007111726904697746646901824530550116421946598271141217024853732814529158501006928545817982022687004438396800785209373103076723532287451844981505354655628929715099727967227391858561026615602681778582672061507591074345220092501014432527048785956026836004822499566127529249213282992038018504222294087986375828204218759747800648391453570079467834273207039045180775499770070372355864397186545197928051286659733475370371256364179335341036354363674284911762407415566919899086009131230461932679517505773273647049375556469211863495238811993388338442636260008718576013816299250684618988578401202208309174085472675557750497615146061581311072914908647824696261330534341609048188195005907345202708887761626269211582515298577809460165642547987451676798084790110054897966595081267244564506141303532288805890257329197685368168006250635652167399749887833278779222541206728969978951897802718937614925554188577007306144473041489149653949719776401707530750018841228120977589882648326755064968655577648061613053804410647310889344457935476484147875115763930253501421239077838859044845608244365964381735490544630846401772231477112276284801699335162893884618973775920211184848969875417701782500947973321535439616773414689012103762763773390821822621467166744639119552957135091906903216987786901539781232711924006549467881627384500096255139226265064319163665125290605377949080253893138768447564316559566851615457028784388665634512411259654356419782930162671298991063560829936853529536866565030814313935904226223850318364985221220340401808763576214997464055511007995813666092344191306329058187383382379366472866235867737283608319016932094731553539541531218986014713619709699081107984686764694422009048752791799214439636282187185888167351425230853088750218993849875399720314242694824816971135679863083188494890748825965803360621310691586784199608930144251427441154923534444859925975243878600301330562366767612609446508850382276702523856448650258138161367895980930317851328676708126576146399637666316325062401702986892401700581398687662392905753299543452994346774295761163111582728883191852570921070417516521292187048774971145406959852724383985521595940285632918274073595978096174259890400912484222154650324121292004958643113245246763006573291872565477404464141220531436277433215069156160403426571028658803300981549199031350575047163936707743095571929368316688382262726502924486528589007932095515455460500856301892572132670490970106049481601918820197369526343768163195284261363455355725131816673909289985250289672727690187216844464397450763603508337165718208995457414489437085831002251993433927821021731825311523745527627083405224286835813645367517176443074666296520334871366398702610386110207877904264178231722010800797979699027752702953584837723789318899424210883218891256163395886014662695587308593245454810873186028343122712692360621648155057181391940934770947913353255571186802906605264926701799558644236498353024762023998756485052878811704267057815550260256684090498350235917196549422623330556477494462607927455616229945022343847963392656710126328089316333223891469376872552201230794051766849872696300080747811492814648787505161657460084205977015805246995281160718630074432559885165611380596952624554974698489260730335911812988288775694356168414018713141367491280433089078526559161859267135345315562641073292510480274970095497227538890707430796246122288875888405234054820849563736508693409462167807752245483702894314920463322671715596412326842939005146148177963704251694443712087231663653451391213014390806162710681823450787677793017607626798643029596523297726863663095393622436983435103610322420705161509516124066293210020630779161391547317516328639153591086532766286363110155309706738376336742848909441359371688704584224269346965853125993197981570534908750140473477707611270768959951421529662637213549785445162096041928249203276851012145589027482516625020214854003435797023252490349230222775862077193732780373566133595984652790994416712895368592122863046487951641413790673013370077671909649386976502750026402394969720466348092131841143453503851534789127481944626696006844567347675339663177320723100548522498961655898269678968629675320237348843114360478955930057480832488856924530607184842259981182672289269111401959647749274731104202900807309875815278038379777990077226586649720485605831028052739123125507442890355491438377876859807013065646098428835498359286234357474379784587911404271819592773617377801767982168033962904025406208433772867832021838577978137722519259731849629957408226933172302881747242787876666863734344734226561219473233934212915599054620273216250166902241867774645910935103200653344120878907783422525921547104826381124408613433801370391305999184175629503819475368585092901643781743912028820919845653090894559558122529325874162587880924898000831858858261601260189356205010415696024749009255599944518960517553859864873737740405294276065845663145674750581123194572888819382818852991017521281574432662514247430259740118025295787665300256362738975652433612379819239313603841247833414205064197738453722481910921081041480134196844007260925633227925711314628136492707319656856143649747301815518627067616610615880898953931032637306627743633531144694793422619810765158529858631351441470863556781013491639282753357705752815789690913543762943474010408320644792853961602871876021030741359055668280929023080795143833298722101016924496369975141664427039620228614556779084880066402383871542460540148555133821512997934949122970012021829428698009361470416292286786074487192305309815469631885172797145068441254232494796809184652497224995137329475196315989394238433254224829445835778172623310803943421980869137649596410013749845466143131882376388919694043316483614367641351238781680331481787679968836641322951160756970506426661134512131387694000995137456418771597724792159675053512402581119693159501015646000891368309290257698628459100938638445361133808117859059846644300227461018667458304623123342799723538545562938614946727532299665444658056167235435820572484411624096944464063141860405021754467339262615158028294689645489243689147675877502482596914116603709778268066809821053008687302798751004707527508555030919290838454303690449574671564872323855838923580056383149290672229035536813859713165210673917895921374321674723149264630685999106212280205098970490332040935327857069465282404929873640997190857540521911779588670390036997487173579741831800109702892903194035096145869854636421125334715460492460838766299560848784195770748867697509514074099016465976685586348662283127929885346505106122966634530363615766442982400470506930956376646843283106637768811423248463604413217690457849395787845303151942967922390141590840841572945467071150649259043868528346883979312064085336128099705379421365159952289189627138525378860468871236139386777941287693612239666825210420631337327927637566355959601112481176765616888534339446314197451422624176188289061487310013993084413550952972339479907160166447524039387977746416568325502373371581245366379414567603929998187877324007960582536250793545907130769584326950655167687950141523262352091229368404562412592416285307676072984342654967858912376369793994826385118084818486528895971935677875854473030036860052558141634793115395614055224890662822503092929529043619268081501122998317435601308189047488367485373158321263501369028637460070878736984766500821969791591210114859229031637065422517219893099535349126476194694600820213033049884360474793507052945683712810686100026082084862701629598137629404402378161550581043905832280532863739873587815994767462623334068084004682868866919765084814015364564911900296861808788479137908188645903105228379500708301306924996116492158774423687397305296073186862792157785417549430796431937879387116429134661790756114301131104638089173928775121003443585959137023629238992816125287679588235067490256573673245441204883212617453329135661197879289652431244893662945211515677540713051224973462045204631131562260813762832079302192308482312449500566239908477420087339509304435127144957508195317185155283689977610632786170127497748096966036103217368498475485647917482789771891406535516506900227340024040235292334693434497360754563151727595455646108102726566830430786555856357397940325842640928655130359994718608110091164866535428163511162038642737918157642987696735864388436902535074233975195798845126723681840687952362646693816775761931984892140499382469957723611833381071107286301564940899346582115337435098495312830597350087602491021157273326387447956065951685676798171308978213681830263800936724214170899646849144125066378684543580372034127011404053611123895149496236460177352360220609167161174132514152704342546352404534286616476131648618893698646317685380757283086483065353603420405737802664080072103079529946037387515552911992445601749954336657915818476562413031399791264687083019998219731732333632561671048969108956199377648695899353738286231195418214397517087517128224600762847206560546177708897787420570736460860649602872284897145281615134775050981504534598520549519183560065707959089555064830402177690803852292193817906675855858969343737787235817186487496248124554673029140108670505662246771569812178993411476280992284490557745343997952116434167770334969926252925039994730140584643796278239044235170736940512516779136671476883341198672872269033037206003331017286249120712801031069130667732466891708405226393181726600595901279000981801071933782676421931470312760815252816373335478305045746405550643556183254193704452824710304775627631818743627256219145794767663506401722501695654560723778398413640171904774050063276908267869764572375794281363633031728484041868393360246707233810048214773622036856539717104151379519829394425053443969039134021473578016228937447671865535334377752067093868543829862563475124431540926837692942782598468587227555507712520990939733587510530893225121022392234442837233321811686586780726843044273950545133526080970338225513255728454089490589793004956566976618249637227071266726289201168261951627375935301863060135480610105314480383304120682549977911440125961116062619232031725948821687809503195199541868128691653364095939960362220872653799763737680459108013090775470507849748245805389537930536375148011718435418778757887295022127357868885781291156254141698141952319578701924979893443617045593574718811004562719063429621438212754366594536813893147680127854346638757482563760063251596783405075754056118990717819919186412872205031246988838528244753651407641162350058026034968355882664176419037950501273509531039152175385366073235489307089644845846561090567876169960510655010321572383373297256220683397389022640574411806008669795063184720010386256798402584747652178095470555291883794055417541660498044832522247477581837589860500290861599612157038716654322035821006404769088017793614818686410411417339214916160845594028689557691063753819787026946146065199899579090236165605339443749349458870648644750145801600025206058129702263502756602432931309859890137600075668520274967903732759706932057323631909508784429747054556789812001151877005304930146255322778858353005297207530206617973694212326841747547549978402472470861799999265177286848953060124506536425673984896770895758359789457742335764107610720139486284471024578011072546908695820278100850550539258412075052188700591415338034963432790393462389174383363453404098909046645297999836567245986575328908698768037339779570214589302438690888162019020564619604581898630416126871283878211430059058713979413497726512049616431244931100809343878405141008290649228765356453757637876004139676719970969091511852833471491719939444471242155891829172813205946992678477503804456548762834976630315149920681926701504629566470446863501866329231380240808099535029064316827731148612376944740783036117220480119611654082259362066014765451812225767401277678025846536391655924516090352446968852584010829622638683004669395190010041423334174173139176395176389212748562692794547614180597275949571501542337197113807118903284024068749010913328888200283615081845011345456898974877559850215819972111683104526609412952218181966278938854651957432466672569093326061033442625926010273950794692606534836494991119517726270305081410469309629243727241067304962738203457156825295953823897155524253003521019487562984529424104849346581519529987206597403277396338174293562039988493094626220915807777876974046950188116023030116195145304546785108973025175892715675574573759206524172987267327908172970835806254437529050019212941056278004726610768337331643652573179921340612104982731759246644150882782544444540910215230777647984699333169428199852331386843864990857202133599030833812396303290343243717027111644250536238890063870050881549637275138067852952963815996395785990011742857317639845348804466874379103614324423660852142992654228339412126051856614409703544834338673685618435767200671648189190888120322867747498580837311835579888777796783224403365733779335066464407219984171689944514552821800701695778974312357653039876872981556025889272640931888763147518983608085805877665979533569975264234842590981528955374643296196420116363512111790129292532266199724434100791750505388136273097519608059204569863145273400401663604276830107186561778445646224416653124511649512713138135359084575279372323533963310320679975180764980714206301064328792291641273550667755303011883307275638110443141357900662923441093344838983044739622471108712990410073987297704296777008358258380684040636744202328291829246716007352173092817278339303137802045561794820690204694947442788338384294610477807998612576598622764989167288577811742655144951340270315230775958897594202898119248663516199255342370436374408879524971014300602023925982524044669258003919128148083695327501031387578343339663439474907014980832514020986536399323378575879271318687459677092773931852991485174382520477432137719129773752086071243996444168066440865238546936953650202719644294258439591421808319976975977567765835985948591468029508356829332060604428633322118136200735420972360963317543757385460338969244077600648174485038377455491366991757903503331637030479199250112724806176984071350135754243951568070474463560223467435462973754141733457272108744600328803480343521093210647411612592345205141160416721845020077566441205754680826617237300252388987985652354234182941573797235972469757622939930983475122589384104645217389060954855718672698886758663841152351669921492081427811764068043754511682774292612445114287616996309338224629789548171121031983581708231928505781460196078332740060068732046370153643137780179507757597103381442363641501173694446583430463812214182002806531186546493194394820771191355204646967449661343265660469714717739553942458714269741047033611531936434754884534252439409766787602065098055815657852116583289536812532273355854862214915946371252995822509414029533312852113017282308425711084383561613430389552557317655119213705894638578044795902130253208921299849168092756703249260597196217825069117993318575510400507856329377894503737845355921478772335288027699636627201008092512983801872194723979186074114890044468732281565148929798633681382761967173985388781206893815771606243605456625262884486598951377091051899531300751684420098491391534611579025979461150924487504480593519006090070604284241572891807911466229382034831115187237762489654223316526262590493402214400166330116162875914963157677826343303949527642743285504266377020676315145715702516677578471557148547348397809798409428115059883288219634935441358955654183829670495613437641540682875327639072552885717462629232965078156767793110443146859358413590440810098864701429303702599416468585065625919303762552196757070658490380581615603994540621680929964839207879468040291591355189679437160189473542092180097795432161657551047957044222277473873937939152570499293441827618278296936751713956188965515835994927250644831548981470701964490960587486114090497992607101750535236714464927730235622695470113606126761400297049875314062578623241451700545153679765139703126492551763559640028469498963006185514441820464527997514694765544584459775892717607106122674645940125235446663283435715014260116924148398310463138850385406572477381662798072943660542242187204966743854374336392038829780780741596189827080197874040832588701468805747728861013525037617525167264414222817088171108941839182058819266877119858424670423319958387084896088939031861654568626278260842167643899289284922116218094077516812280911938927598730527859646177276839399510642952512394875277841449096959487516224958913004848636953586425750240207313976920549396994570166359719624621402077169482291385463596282344447258238628894024722385572719517357998815509268184627876408622965187578208845598611605139138608698821368752892948382988556859592364682206503467577894405474115066390359072537283688313480660448559524455938621373463446872788339112739437962709455299214427134913843828271072793378802920829868347512005963127628385162114672204215773198994897462137249330420579210450107843040928771346258633630704752190475098640613275458311601044047026628986545803351423441021546783969785488328055564185749869986196665486766763889346301401173354348156941990879433175199392829755027665169635306298502984796431148691575511693743648757757762700862962919775200523281512654585034963496279420952046851444375994968651761065962651869730620829044847311150209071919258140610615068473234139695101502761363130901249452923907618300149721363534518067362018718123493207898873537529455781693841802484940024219677635870959513632407588566145355686399551230271996875756552985282959084312750747188209914248884767783736821917776328729379820501902364620036480926313391262201242753309957910654700975397468304794413257803336582503891501662861163785366296657550655154971080468578135686611861225892773281780702148955290926684474652901810545581907070594285392985878359675673594959692330855094216117124210709721822583668159620357268654381836884063301965358895167969041515936894497739192164776962766055292398617517031912895171873913304770260183746702507019709497308257418085964928290619022091755680358692891395854519450954718808947537374160713580036983981542636912920859739925179986803759890018616208564005625159501462887160407590688329358740911090190552719242828886685733652350856027093149215039437984710870542293761153579726667568631206549915842578208001619531123424046061221540977944869473998718045491154265012624260401523141826708634167944342210884266522150536968409372321431640189476658257224129658428215298575292670637261140534641065061430081258761286397299295612954989377992834483009603698935370720984475571308596165453479766505543404896388467978900938831102867686361907734747129602171388695742639174009450002807049868450886910725308971416479611821566256446538282351616019583712884603063740101804171530502412843757274210339378478577854200151821157813038326958342301362735790033804747354370431687700055503853934199527473352158211597554238821920517942816729107502597335323696185359316897721782651928323568081621511195611461613320601546301316882745148462119991649484405642848912480639335120532083094281567780729592311424149885229544780474899668002347199143026207097840009732205105174503047655375868544828708033866237563967482265261900098357815415105252903625680924434004639534078641707365063879710416787424084374807210051360598584809404247668045304202203340759150007020792567113824902810353645511344554185014214957407766009731822544690745909226763027564860497643174941417214102042096657656510105623078320678919917437631136357439272233078485879273424409130629720612804231313627019931481407222189385448574459604535264386648612153248212018245532617245802104549843476474327223458458169285391979963829412032889817952242425928662908677375769123462492333165439384621975397630167457609088520830897120380589955337735360354806873626786217624298825181036070848485531457907039836165363694663138587669282357420012003205871795331524801363216927975083006504910875483993171814316834080713882749553124684885406104948343281928664570273973051606882214798021829150824624874245340683581589175211037955978979559978931587923459676169066385215858548344860568324649100339760624220105279422455261963273153931761358529016497667712135216852074937154318296286656986824900714241853215936936623507863831706529278586466900023829858377999378047740884564560955792288521861881580184758998979585365393122227441998925801391459265700372945165861053159487999308761130137169594318415550572098303783913959348090091097483701663092494599772252645940527955025106115316426689103715353801067773400646010373847124999339282126204460828172906155493006210522918026761964621002566462123671501436632341118547342741786226224523273069844815083210112268263901643943940361078989642739738201232729438655463477610070783199418022076756472115942066666204343629918414458882309786416333372529492289226988641293600361371683595714654599646035279117063269555460103218084914452137642934026255476023826340021740087525133156067890505175120571883789144994278614575086237482643379275485173809883770415648312895492207258739835099355656877579174491519246479079687307786232436082350926000676129773650782402692543314213848104281306419001559373175286053405551669357405555842847545147280201151003766740576025915345906776244881602492205967997856098169837239270780605277743555094971038785520883369050458220145004639720296289244400636830267009668514606396704705208908110305487317956755600134127360534483744781624989012121556970393802409010065907436681939349620767255459963067355790252500797432376072178212096302420044358012321637331021476993827630645953121461848783506811703434012510730963370609678528916053589759717316254129304230785377000073744219946719869252107177496739528703453158599456737095813877989279116707385662826547698881475919527722260329986654760991844358223808857463119702396607787287074115512868425896657442618301062357217836098644790105847737377500357260552200738999094108640712961348963378084856158511572425663837781318430835793866577256144586290461262326345154956411489994074927368047920802796252381100025399932483408034429811278881066483007069526998070999591975643614164401920919730431555627218356581984802369756599011375986050958377699104189788775335786349038045408058253943160437552898282092111272857162414682499173295264243083348669585810698565666470817134526063168975702999988230206438348760197292078450399593016501104900387535268592069698681764897306245513275754536295021150923173591172726580457149265610409623941708100386556068082209615458660249034044693300500500686536930575585232004889092658407060198107325001972922472944893622400844929539611513256680638043599145658300120110643941184361519194700379377145900342863773911867936959846144105446400306390218491288981390027582471935501568756650776431394550072648964397083052549888617014468998852032977253422816207083751038238314226659686913832708304564611609675508731519928652010466351253046238338189636950600496635388675152919863670076733572722923299692044943466879502043859098882021098828561235326561959608763598943674490426726139112625991057865264266457014802879284143330349172283191517091039708078385968474603253280418609105989300489224593794394304973841678751933356201038029328688980463425872227586319647686644127504122028247951199590604322580985668977603889576724667571501837616884195520126440864081117245922485805323151110537511884696158483098997748850452860799921282054429542841088678957563291295561654446331897296411758455505088296868499647417465401682347567993478703594535162163396849815759330825018420221074902026623197007769215284065280496475846565391480644121098494261395937623093948296790895067339892998174634702065149579927757421325039346052364064762765540991354765033133816016372036837799983447482670715441346111808486924482033716957641288433090224758591586629122046344778478220192384271432058089249357430027784722275318373056262134044392479553393129620807468883139477925644283943662371988159006520554925563802392364271445971553037165897962684006256542903180251822164961631273192789462911185093820206123442552964053877350927879842255420212236686889909589395387474923687494442424500980042042350460197057696572383621814875030455674640380341839963319384505879778815821278535972789270870641940540102485012766262189459225241502098764663345822810776007535173711139367961871858756904698278223346004029027167821072813646493284872073314231920538023571277823556311609544664714647200576967570213332856829054108014880565528980470215732055992631209384356405038779328279472713833134018563380918078098669455811572879844083517219534775066812382151166828352271996015268214504525893445083387809559122154260963740335860575607883250357062701981431077676588196608333286283165138889276892734249389883478893893923440803625468415718847912074941293252839573158930537367419555684750625487620769954843988728087475508968288231640222045294490514059179945753780886482382270221621591745233386845005813624328459640302764173394219210656354827033950975945430001633389664186294524275818316330430344092715943417000761905101085088005785209158341790881830339161064796339269248515712843645809107709165377484006306745376895104108553918227100647685052842656032120423729514949340153335863718879992225823903214501796500861954801795898103566606965435472640197212415530318545292862100725883914986913893703748797474151784801130472875763604828251906137237495106217843058718639836153432679362322401798681986124092045836705989455506588031461730578166463877800615269984280996451138711553977053139347973203101843294994359611293743715094502693805116660398252165879575364440329778378346868313822731933932506236391467906612492714681344821452737120502461573274165489994111279472354366102836037117102022915199599400208136695404670679238040426870497432473878648969439318669541720043010198432935465172893605895635507815910692860564309029042712003153479588433081096528174354455683483559202461605066518850989381013709162716044217548926408986165196425837332038669385207021788643356969245015422435043972251571680221758063801005539847028890258285594408199275362663209240056689217634335873204910128521332866236963599204142540395936671645484790844961023849689233065837880650316632494032424895795914131233692701366130510373765125237371127218348664519604909040956951557659533299223480608900860736302263202504942730292790202479242882198721799695795041727049904441545782245617492993354068457383986642471236434073574078013416179502770838589091159828211480935962537771933120635382917911048896477816466296145619828741175216290634210538736328781531990567621722313203945003743860616274476471053422790163688945990579636639815025008948998888557126059017552721514894808441842069323560075373968134408767593070870147491024923785233936974578289323183950791968964511867751789772855955734809171165367267389193267552247509673468184333954595085297386212275245734459935166389491402594701102290027130123128611215330444056626883337334273644410049654299757252055441699558303765163509266030813580748020696833551677538964629697124245681138523809722133256948627638896335363178364340863340192289004416828890956934509519623127768180283241662491383890541782538239603644198894255852145858230957130383864610287748345762732334118647591560490505827321081630697301388827284113429768599172490652953231663018862092650730215003052341864991803123491968836750689788620283310749368467616466070458101855351719145563402658418128611851205326671548247159791598301795135497878543433109489687984756281801975999474322422780183555305313332039407430726513517143497500140903989406526997467759717254558913219713496269607321316955784683882311648035477810913451171220363557732329655957780563944057566604623152371377650563099392251677317900172714914254758377098001730984440204112139909742505271832426249757521054669382646077156669624608353636640453262537542958579756553656528303268705592920513421643101142028083016146294351455676737305209563108465384781769382129757039389291991078973001009519023307546357036055004032043468689161415742236185683392943157137112427840655648675918032178774317639098639884858761802895981235499876069007789817816337867300724316978558471444942630542641561586314387834180352707953312466986830948529542923373513739077994385984716920113955789612102707824527895324955362731732111435071999717061439963753898991439057222780759529095187842909462101386642845948347912810721292547650456985852882655258600163381623781725630264885872131599187562573228666401470985121035100803920997262703282302718889231808295711220520373588609642307093493613179642711198106511169040219194202005037056484350986867014500403514936561503352776336483714505641950329128548744379418703435261966860324634218977242254580522583299619941482944082477270688941582842092469780726951043350331686640238332513702534676164677327164227266576778820850275341669878414418417785616921828870784461900828371116046625073725182426540571271239236897111242279170571220475493136501397494616587818430047111227758923362188505895552822497874897162096411937677363274629416538722792373847688925880381737962107090726541518803836795168214223822730930518312120061139671959220457014595189928597767936662099047803171707504788534654363278212482699242851235173242290921524760690847645931595299001501886556001012923676083037561477122995798883166073621573226799007677969078413172446243903981392032925482206442412735093775796109939635492362816824375656603789624861841344223418190841697396030778762274630725162078534625501551516012657554093049353878563885924002751900564119135644089284590242060750400820339397246565120737675396154589418352736865746561646665807608645443820799817727104727951472090766409076949791610591165792085926059207446952237792599815009427008485552701309389633735716176523433574204498162205633223167458033021194295380621620888963437581838995093894798178010777676156109070822631013025500974801434057170254304580261683384635961587827969352882300640213759886964252756210627254578258162921388028288320392975143582637393084209841858284319084609703263873444658408070173650603449277443087921641474326740666739698042750606151161999812556518664597959069824798174820093295189956488822367592540331738126306213404747383246786426117312214644334300067084325832155201300043549283993670576695201145955977880673443604428343780827004618111929860701662560298365388289629742123880590255327859047809617954911193659520126684668848285582772895923353971942054257864854482278244730934093412429433895592912825650575793163280855216983863607878662432341832775979953057857074200259969088719858939561993908557026429272252098875613786149263775949477499358734910198044647292874888560038078754273801625077773224683784225587445868505517801584127296400852769817446835282229787442876469292322026449865290002704945379406336501895817370109307105624188254505787772292234481432724431895905778629953125119851421207313337240824737604628909979633602183190115950238762931387562783899113008520697772174924046640957214537739473212095608099620942958258455898939598426824889907551846072592069639815574165720967638581931637263646959035066855987918331109043552522976860795150120747262599671128468794487472348283209194056123666623021929012306620757698008647703593721861349147297886895051767534588081622234106021269224202716815701348047197675861907295955538135984633880213718376644241535759098176235919612555234423019057082838411972965574361166002011818132098215290379461602507590199772975123948954353582968958427483396671543225684038954776076222861115444972205330462383333069235658876540238084337997355963110362238620188643056651861633357846898175916833067201896151340977758162061245164176346367500903565213889371511006485087839224004430384638413029846243123506719470682388347869903072948594418728357986856026387937801867162158342140151539341635818402464381980033696494754031831428158840790353423625649162773381426580697794952426386392344223630261342971406610287940632205178865343494099774798750112242055647625467212623712249051218858513549653407060664702380603070980633686363397435261123339640929993839327696305072102927095354072222903541403990341117829952458717492088538047260419012900557986126143585836559446659072237252376283056980468287206104510239238481986136446794550297255832836853992434549768544209954296128491870352220200862543880228682940055008013883878660105821950155786472887720184170641953184626014596297919127871384763093241967041388506017467579373101469446977625372317052041223931391321961451895676614499195864058064320994213693841007804965877966937256098131807491319300888053847957561286094374547777637139512591074907188607877700341270147173809328193760407116516485082474223807878566462238647370744801273948172272166548759069101690868560282212588129877449315611290583729915766827248313338923854892948031097585398740196365127617071980570535530992683953297346612472478679532081875207828918449647265103461371998755161655316607365095026067459852123339677783853770132926643089555207552735469939255054681417182812577930779299481371773098009926863458511736202999106723912774199027495076381128084227151810395003482538711275910136248323290598471057099308927208548242092838158850532456498787690010306195037960545981057341269544458167776913190314854634629702659055544762524122049757483888148939771632206993536868220935230648099740735901912724461014184382649829274924837944447256607644377605803594220363588409554542002767525997480880372844945482582327056466986010079472080327717665497209342817710351494066863681035458561501013449457021906465729101475580858575317991432363970766217988960478187730938090322019951080373339204924125495448964515219606917408528757893300907073161406265518290080738353846222116536347354114866403139847362677916341079512836230985288847258874280831733677256438455105048493259889488056305668064717160229765776818978640125112831381046249925258166465628866233187573311957975607452803528595314300125120017096145676392260638418179326013966037861278270021625281628803151992166315532169533558924247063612937815681613736659913234524100396269270394810080507439167580152090005126229493944255936204406582173010377405399151115853023645661465220069431788696559996918351897179469361420680782996121798728573545033804431083570794388320471117554938725337770995394885095455488382724535497073675081888819664784540919397886133943121823258044201238298116471853408918986806460117744771480560040983173332174327846915131066042383580770767067748033771417019401215731004775116892935807748913480010223225027461053591847234749260388352694426991609247179961755949432689901983311039208251825918486811039721978884436859425767044331179930576585811690879124885939322013200256542960569421052271716709926362028743459681054559756877679502800262762332781332756010375188112364996977530582094554005955871222144726133007555819870708257960724500985719161966754152114164463440171168870269978127975002114195868977073763605466771433029393547104245236729030069891755646040403352755789031196096557249204761997882355466168283935440562647239182004681896816108683248999160960329697010500998267502136166418985770112698945595444666455778900933949190162163349733988178447913076094515443420619757962372747518159783191998177881714326210085683144833756615535256917635185061308863358854044688638006685301683878312740159803407146720786902778570926391814143258093978543196790679945470507511368840866752021440200252868511599980101130231920788339228319339669102792592156391351517471527818104712556983249351810064315961889364773663983406297660392830740913571532981750564711604341793965645430624908949548242006141275508771814051663852585438682711316286167290462362020096170268218495064886334165958030040215274365538235360454481692087760794879640608595573126553421858307194227165740048153083124072039099914893610929140959351808190230746365751854193687956620691773429987687191869772392987836376624062055688726099803295474831279641590564242074015465358044100326680715353106562108111916610070555595307117308365499948858461967070212732385377229828652573575307463870380454281856368687233864444341637028023150244482894550338949667432906605932709792783166423313893271142708977157496243043288678960465970595267722405321323856514491890467849705081008570113821970236155082212726633942223563587802753573136786454821373905829591559433532471979832713002119305401477659717495459039804392640242264437433467593128546480433162538111119846881430597706402302115016003831790894883490518013776912123783832638313957992258698214066823597059522750612645751269640884242496646126716947498870703794576213873642200887739009039293954526295986175061892943711958032500643277919236637391111898534313490318962826697684755074290774789252565217661427459673283189692662213800478811644121966192192044933152811321881565902431102627175004885979107312193988387767402420299042435737888674406397678969497379436802964034399456959977705636473688533359937626166810331806955235198768514657212210081337282172341174044284129260626266143951973328319881293301141385338730410969905301244180269636504165616633520811670009907717905826815261105139076061989299597471270133756649968263796569903173808162356124350877875033371949000041409505210374713177076970350626472945076178900763933337482263139139822048015322731915650628631294587578339960539206974124326596022299949055579397156168822336383376776593873268432061172482633460073018873985083189309231136269150715926897083052452640302226892566516429463980462143220054099498883627659373974735366990315523944530197313035509380689974082425927958865569373773999442018367735064369149465158879762239190332446680039544392084768756979053526637735782238332918650853882995250825085343748347518268551974683702599998738740900261018451613393615359558530603946223566437005244603156464481190209561927204553544118294803950596926164581286579188097802457618064023878493973257900587118355009993015011650812919204117234195113947904218224523239696151579173150168014313451222888585270204637187943447187126508629480046635872179401777483923792516297091154016544009179145901418213754890972893679175751028027101698581041678538094018102316147651753049954005245365699679391954239474093062232188847133375033194557335818131910371218926143913709949565094369202846565316985621655898924855895073387153490412789249031619619107052714844049820888253659489419175889661927488583682554194232500376759254413189549973727502283024642610902695798999857989815804450530598642107491359634075883290130023181395162702744137659136409702851903218571463439660711339735211439408082160899663012230699212567073325020998840548938167499361721010408395458223503470357911912012484910101442603437261593143258032781469996114256112695454012902114482485808103864547429780919594584833788851509812410898654584392715769599491232693249234838084658907678873108191683217768487796223399960594693411101390435916792500365968592286281276208972816762134374889614963514707588614112034263375215598243338151300246351828125168049525067898998910066829611052056993188327232620209036254106463896141298037231417300016580523160813308074810021071800607582262494352387010958408735188667643998663141592311419484680942373736117975834644225553471460187601546914938164162040006690166660968177804839996779267817232830449754665463078844579330264141735753553431284697608233543893104687549529921086584005993069683906077232294049497137790373673532290177548742674397897154389168962312872394397314840200390456569391444668556577642002163609635148226475822513356343645462284164840608715930894301089510979939109322885509581923939107191575210066660987531256803958969072331544083294497179132001542121779707077071088590069338293969528303838108651935235927346293168361039947828199094592943624026198115975478009503106127594849796874734246310907080983877299566471267767418952064239297342104230249232626083277420600072330520653089644325538567565848879324289570622041470010749040291607004824772065604792716750730901444030472782977273216382839399097601031260022703273973173931951544343814020234885779744305718513751012236135311467893279076881168141004006399345066731522902085983415815906974806138571652536865666967396718143126678039788090630517990063267147944716695602670953313020261751243323702419600206934915901109775228875320341027701394408763795593805662771340932537185451465392386186010725387405786698405521726781260041450173060935748073725429684642510109468857753365862388439929824319581723071933392866782821508270973523315977889979845740885240266972006526581003460067622612636145136411712638902555667993827914836196056492985537422104382331629398738112682023813982778178392418855733379977192725567486737865817536078222022555128212391764943538511035707018403250398285183692041841220013898987265321246674535619970309205639255788091631414930562212552481760061865384329653265743893532096674901013842757312866634242986377111557062196447151401829386173828454544010655997540958631785024341049766560415041387712884998002404665281740891189012920075089892427152122592525743201015561476572687509408724158146484291710575725459964135053270591771345736350599109540838835709237041299079864993336932169851326155735179252352399472306480524531886880403355178119281077656512432011176415249672310411057158118340083014255979826706282890254664986413696299502274874529578207861599012131599409768724608072810369112218448747516662758013369480744189558800775689619024747602418751304034023048680483858363254500470730103330846471216577296361156599791527875995075082366632810815457330347096503388274618806918236416071432724410244761814515098000437283536757436227687220199665786494031463765868102438472252667378458677757854218812259614922624382956968607310500112927409586423743522378995306627944426427613034200780967124007751133478970467254572615444678195494863540130201358947253176428768842475479078756753834751518254906344748280212142841962135612368412057094097551036387484493998218821919842936783192997534901280233207975380293612152236291044216337757567364462135509440461590160706046109630524068321216989950294688859667341312214363669859307027734396274148701538675919393260081747406770594799900520372912045050779019316682310606430097253236927055906164331370021573113060780204273426389178240325589464718760460067160141728335644631426031314631797127368521082051778856109714478485453967352415722564431762632897276345685105461724248162977092773987969138060956549982601114506075798547951299224543612019656010678835989852898823451337213303489963348557534808216434544539055682249602582371286152576345931966233076870190384973246034838344480571334422106555359733801029384373660944392169982193508525150683595302333523441139680524322948814020795056053584450875167667859600223835690796772526532192779501380229191931602003923908065783202624790158699005296798805761553874559894097376697062996274993812799645752855668830645958268529237491778663144080564398966818566840302440950741661194723802676242775041836240683727297774464620165709259280261172565466854287474093089665793639558170450158931032253328874343779492625055457135234516465829343045118798601356836452015539675272075117882398489376187308000964008657017224739797810796743858838167985070071005438566570465913361421412398425459562143999010625864428339811181892702106125250492726157458155375715810686879306197209163634767615734329502704419040798579249857604806533706551848214827238304044149866482499605037896688495050731304001058460757477493107622888615908831741686344241104669334107681462382330363987544388783638444735392478229161026638419421631538302167889171225011828997415119534942634836859960535581204562717104701140580005367438435342323898676465817577020797363618711925839367980152821592050224906782455528850926284511202924626366972974602169238104140708740975431368655430047944965510093867408574424055895404435371670912661429801233359950641866295245517652568126479100701107697457477455949036464316797838821291927972497143126986957847570428513918695113240198741869976697816739632268270258502237594669327523150102204664804522071960676891152434404838914521619533913679851400390973966789623867847595761319488241154342127539653688743020820342921078192749495870069166510561903911640703711970076646658764705399230562823850251250733969693652856098214428185884997024214185045845898915223403060663857585193823966793493130709851106506186857572459982186765670982786953805801759741861907175211472746657482894714586277947919756308105342732574377876715524423019098091460263858842996532444126375342294937073247315918172088230644533044384802122265384303530543180008606786249160032616878315989576960479680496683004104569456175267682431871728863901064797512384853089837302572051358008477349159247709840963038096983696511507587202731255161895442876195306309795981088253188979120562185969786360367191765186954976687572815112078431076449825441089605327249468794609194180266187053364709956862074262395007527752169401689853769745182628612780925576587006213817566340354023482549236179417341381730714301716375883023678804137482011300202672404624883251819462343916185883011019076942526399311734544859124212024214583615694918289023726537682735816746704849246365363713532074441347884397904430271784661549647925672122644986651700451817665621668707552186340322085634842012564797613321640454678347829287627683250275106454696370733757463953189145285151638918510462608038549870411297535842303305418278210526800185112919408011899702443593092569899444613341722500657625694556622066985647299482404749269042959253256025620571618805795161123741679901831051447781152287223673139008618270474575128609781694478523343508827803021337657088842718145094279525860171027755044953667007943868603742148501190230553573263847863773176139255180019371203152534906019873017273465986079711939374191633965508280272122206300947468545654904113218725792509499380737925307995333667207912527173499958629909316912450997356635519202717123591372534042948893474178707165156252954866637386303081670222145175551744723936586638109465397189876500188728527293829902736725676279372989344399042799526761960380533121925177505539041369255311829616295135772456110664620466983917339866400206737105796861418834885711794179709827563846457864962110373242818092552616205476077600351772295759660451740990328448809811873850589721012129673381978510428413435600068460482784501820537654654850537107995929000947213987959527339414404961377812684219625358182280675666108684536068634944220079225735984740869867775964154311964554674468824389373597324421067710999850171182742500401974978522280640464115585139674117437849071902933422614106319453323437551188706911221196231945670772708042971299230191251468224738392542982991920933412711414290807174033489599964246590748380360623241403863165465246036363974039574580761200149472995025928690852906968274754580357928563589563560220132238258167976891243817118881020276848745913456836919750481754739316405732297409109834559744709445358373880757810308653163278626540205830522522245902996005550333115857333973876622222900485975503919910196693809331598756617872328080429482147467157072347583093830486262880755836115095316911294765691530397671737385261712908894351500341150476845063333642138645284272548525259215032842122221436861508929532265666598248756006420738927434109695458648026131166537658629727599481067047581386747104242957982853569960156384232856535268774259756729359731104721385276537066835652349982233057669668546395129102144548369476814815366593420768667650840745680122620566909318818762678481705376626072356215690250597891612518651305167635406847356730616075130451840155034178848251046641177580019127892671047674339419044049811172068241693607764226904245538175595940689805736134526900653412880635914406134564571419495102946092832498189806490324275437906524613453401066476227126870747217542638176841144783626723022687722017578663257678462575947444858940511911172009610994102115500569538835348738227950684238671774897517773525755488328767823380606707087384713316348194999096986369134949055989681583888947889622092871160427604649532894070488407664207347503190547284894347494123913342132729021300821273702247466704935712452765223067024472404666731736204176615122033345284838605196988164206166562893405487143322665319243079885042213115004328997269001620677822059763513500789874464005902034048344755402898623101714590037281043739046756262979388907714514118790011774633089237751033895273895248233981478313727238260158738993243376712993439323101786546219395553889508943481192192281212033653906997887271714973969502949865911819720579543357539263305326243161168087771404734271644814655778609464849926868881810206197815864937899487089205656531128723885070818836996056944180485142195247912489358713456432964998891082229527446617109723757607583617475448626583197980746756014626235554337676412850101463069873237608051573862360437942034536584620094934781651654885965692616955844506595634343420365683184807997485163270021147291080661482925940044525273091635907092382853057423495658716703132743123147442862033503690407798973136550119998595025168505788987088813243390004431814444936828114024361488667499407671963483587650117615341662810436842393062878457663872087192092318361739815174674957863929482013611355079563008685607255361211021380410039025257188639113440760912497093404907832581022987291364714249523307680006475105814990754044471024521049469573470569115821531537302688079324162401651179396298422654940910087470320103170898620114089305263196152169984292406845932571804296777213939992649941556090472267237082338070113437533941674213046236649352445545594985280543636249845239063070300405391768411437719777532342578172183405782127821585579905179627307691956989196096897621565408170382147709606254755402630020587932093594622725002395564934920864883526848731689521602084108007454759999314918351021264250352382500581329592081568832836673951347864794015087239383371309726092671350393503434918754445911568627797245915267234684740920859144814625995148677138974944206231733063839609740912826805615439931095556953881114001418584126181771210990178519383455976296066694618278380849906851987208498594133436132916959734224082956276102582309128530427813940599389618547605946420362919105359976726823055012512944652293190836136817602456039099158251331569824263983541320133818103481001723252376671891550558410039243097214773637764471938808370082265937631088218466783862384901142371414260023024394771889325087945198732953532958636938844796058225878347310249199112071222823344311443743287157365344270551684864325836833245858836920600559080355673570494658460024351296136118234996446040443802040692361341612155775865418849571095640234299032453998964653898751919846190087555274666570881415684008196053503191938626384804988100398408072362889289817725075349584741784445367287014129798337018202054503102666424492136295708579647603571106346140609053785340589845303823050039143868010873150899081446755816098118384498717486890897059624844864713174383511688127414446912358148139321891732758908176010738915154576879263196952372489426223598586438246014762419102002349416434417658749251255397074240639476328926079670493667900194250945002269663332143676910176086406821143309527405738930964874284340167093686855095307340945949171762826371999006723551987790075893727236569839779776059404964966733255649085338469708862540728714472164058357040295340212400361879055938836778447878642247499176224542376763596044038148246733350602135878517702217507541187870592977477801628883255394336181159552979075918668804085083937877426223649307596883120737003584157467540240941321869563788967641604725576180888316041082654544476872130719283487264216664629557261349726823498485001908098247270590650949063181332478407666429609670099504322362462573220725539572681748175105834376513205321494103594930970879486183937813945770577414432636621055468073300879042756156595775663081894511182973502511223320244791607971563433875450645877822592050800433739751169600160400380616886831955767132628574473099231926619061805835689214307065413148907556438071104800327769578052769260961459782583140486813679904188086141698144325721759588286943955922829601081755735899592055816493334712106421488007044081481272989827635664028781918085712625343035844161071189032523049307809029697029164542140698585681152377838720952876606991183242023837239743565168345960195717227897208246498717313471270507163950754162089012699434827738244632482794430082617578824161999201491056303087500518620599076417218548286290901845393714832164376487494444009663309024689384175953782470841060932312537731489015267004521423030796977225603501337944919512324627155285237658846800310068938719700699299525277382319705070913659100454109028622997789758996323265366532308801579446020986376232901941989044523688154754512706072257063069120361480706303273593770641915595691695414446485047897934489951372914460391090945076465323794866798454158003283811914090335690197916068107662494444398697401038972668288733842392131257694639552089508129409429308629546368366295385837983256445495887349661605305251252446375487828864979361804136412814538021432694201751789895246845852216987792895411258268844467088680927175333707482813957046710495207940667343670296408027190819805346434409300344617927079746668051520730350392643736984584899829194643867203117392887462958414011880691477528924203937334837061892594831351382611852661320757526559493720979777833868668241371674740775003517482462286097498723233916797039598508263500211451916762271356788610841433855219545185779722042020114885702645817854465913714031615486454243569710721243850728032252873412362720236683830720970813507691667202457909580701781092164786857549420670432650805255836331041508392337851537770476769446539042602125718194617644397920299137404834049576518305826870923704002600095667098568432627220324332834757148527514647444291207463895553602708601476904846512075728162687766518599826325162602958878138026114888041031104026553226870934605920010545431621752646550714047927435488445186772003253859795791035808944535952196779395600625929424321299355635591231920715781408590116052086051456054939958506285332900231494995543349434219631467826685441191151661704859123636000299196274982511855366081324750969054404831050289754017917791789282095611592403702642035632063142345161613142163536985947220719609239065329234858068096418502250111101330206280686830559662670712854118652498680346823795824086106912789594775037390624832093369719982511311738449228203338497428832112077002413903073944678908586089773572977092215573518894556008050254815200751797230011628599024937578164040548853536233127854846461613015359321676237937694634108051226386943810557044953515631088559186849157586527539441874981149082383024191330418883309513436459960472952091545017377165659747790230141575657675930464125307452159930980974831492074695416212958364776174479316320164778797547040341604363683613961145484204537003676136279734246027053143908697955658115043038574509135676427693995369109817986995284684751456246331887564448414003934786192422211715625292880082172815531764695002785710671022763644477655393626900013459141360970341437670944882687795518150827159459170637510476915524630253577068506092607390620544540026936517069988123259315070963302569049764080482905913693343645878084670053608589577941409097200917055581087307374239983139513958458174625035873555234942187526472308016611453925646729108903715367708205318017904069230292328019319667844509906392686580098158186372977682429833009991731458593017643471702363590648671071619531936151320753726607114763639495223646861851878896016681755894284034228918307498244191025984464728460451655010235934341723035365693570188358826099875912899454625701027415490740260739204112450085127549555762483507446318375650347370140942257927191304993452302920932446521298119046315128839207201779966793629790866677773454154668435030156233374210508341049088789590401238620530439412899759747693322585807373142653441165272434140921749983943917118802498820137888438762045750313572514348447434655426004475582004168789532570819254041231365372668143451141874475444858798994638599672491815727692223821605607746619478094979629230930266318546000959288304421576069342552844673967153080678723240074988670051067981653046226996898744131556700015474151406161501447063015034621417890318836200016884548189813122256351264488774357996716742357897702342185202870108586878841002907753179792006714416781653403341936086392326930979053513959504532842801096025429599418255218039128369572999141466721030204239533289270908774232286200056971036643256635008062372819006442323646492939541221273072100967854371395998369605898588813187499327433981524472189352831638159202713305033961427947651510869631406266813714079622868007773407914857699696298789638491491620257297211679976966345800369888827731576495866087824529650964625328736764491772879263259748851509212642725329102623567133244421462134210163392621620354720879083765654289985931067259800383875019276211043238319685277203918859792578474042668344569345080704684704204412018267883199748103138918728052655117954656676549010180553203862461963807859635893436461588400667963311508334448738080076744978215058842744738359457006160624072315667567920996720055226777319903124677850839720785065869776503522248582495962950060888509738723852442607320378086103414414104860572662125007076375073319178406250230728036474186514200367694343255447586764856235694116758611460681230054174436383075958608440040764913819783163571843027854180307447904662416014592181530366053513729622918578163069768977964625185544432014469686129672581251102988479405629385643879835327660129947524448616381649625352717987786153733159299166898175473638474117918601127866461773315633927756998290834929662206063560673042068963586224946110321913660360525854797987363399787660524612321508299687693438813014089245451566649572697143429413585285761202057263764173347012308290289388469017425240199521610242624758045376385345117106358381688100785476583222618657665641210871464092880158527788182104531349686235466883500433141603460973065587322001408665048470682482951641944500631607014398832721172162294785044785033732856921430194798545525447967643540526901095867759452234558504770210495237344653155534623484039840575573031308431937858887685537487734493864424818589920237275622656540580838344741578859201774361715508522935352025031841009611689226293631262463714217473216053816519724156400752664860989261154599246621108933490556110771737432517119842191348817684797662734713198944443553235915602792107873349121561753788264982873674259321151540487059011219591171910938103817748800092319597615667131735074426131119099328811067111223646545935731934519115410691725790528558515379538081062428553217709923599375565862465376940350627699246964926617677293682026698414499814315768970256051044861864742930567221414142222643670768711497484293844196169510649317821446805113447042114560420281958742312559397243441413061869729840204463074665765012553967385849899991635542404255416929738625602880003904087030152261396237543349753145088961301388971931358093767077428443584959810232491175813462288026328831421030955724449432862002026021927896984268521039715413084909992200570849670762654169977756488907039696165412466730350083428116188627565369727159577448900084914982838307738180431138677871277685845712879450463562153850214876417147714786911190260554540690927825420124973897617422461080466354199049719767436676654089976554090246076274618765779874911627560086837334154262032900527800077979673321211889540318005702356510136739302007527983686112060113234413298403316734515317025157823071791817082366113874281721438013858495640916295879572193747511156184189215891557198690004361000555636213651298755740149224357625311593268450733382683633704799918414524757855921793932046308947317101865409693188265061675360434429360366019015908569820306224179801537911094467992384919302870471609310456610559774321863368076393615372502725474338375829003724202189552171973353109227608949737566940202215528160482763654782918990170184715693160751954675511089079618251760687427724955194451439907834299285954488491893370395406916425767386627436923102621438903841436287696868054820263712098192264081154422979769878333437954504116987037156593153152047256855449678721476399887249618540567427238235623221631944185855799822074362446935969558654388894059773642932311060431178665952805488389380854321593410810945982507820974125376949264432095002485169523817058577556452500355533214565858915285025286759335885527931972134110568769780090748508133250702060055676105707167166643817063531801409899786996482195986215635166851098368372162544527522734316586538557316644309457925358042535113207683788720559187164831439328446615990157198875290199789292901862511650284564456675108586246120205412333796689442067632948027141599965789069875822526520083000190811273590761038362574751254536696805514791640679223971159048438679911299473170308890955867348010531290267593904730845176339064389261620229091686845283164045267106118829527320050584327672946993929724965973773719408246978851680857792164844140855820854112833603491738454223619564103987044084258674538056236766990329554782599708456253785926683173524569314877856696729751193021542588408148339533902969237062472503611673532357336358414965547704789576693532084541931785755440212304359129775063244363802087250919529121332247470654171832556418288635567060691782218462717944647873877235623643896419288861493545851325866526036658458801261476676976078181637684537863015308389698587485657520519113075659073415589644241911337371472705711748161472304289270493216390994393316430425991095110399082074737198537381567872703642053695655418524472680403788800774279374696609747548913515558949509582900716921553893820251966419150915738921805984371134299660980413932624710134049124475825759479301797088828295108249408039841141493859770573051691954630758334643642268380889134184082604363322303928100601407206858035329489018203377485363309300144130970845949459305937778077174616596395603134543746743584149869342207251389264476536628041484770864202005837544962295381138073990362826631762532345419707336237464884976460403309986357325520144428962996621223845628368387663658809917295460666806024398042899923805112296181051472645505098516958646459953065824250242736231908236239344106603740355926722773442126794999949506294640668759543425362293811562775139494678026129960308462453798256778567073215094777348886295005043619675081948246837827861951680091076913765916699395460980342192735763483868920835101553566981991344754234502486492941005003359630637008210841294419849668092258447226834940525002437845862256670068106747287734089611930058660572948652145348084660310439761706216282609451377711154129967638400354984460508083650047001891392435800860527414991525989340949613258401877046039447668728326005329887985122787899903482951625097055772610857836507599639917920545434092631961244721589106920999954336405818563314260465954059765781241843529886940978645703136666157876148318386131803980522703396981961416088540326506821640313447251287966719949021941436129524983639527468792145343740844081770759669415355794899632474481490839666567669692396018709779735953967015652348010489957173075486350354011184683323825038895104857756374922891526093687409501714044311080791043225035989770025260123103480706694489369770855773590024408467398277754178826253457370847441910394632907232865143200376520193659205430540249356397402389810317085477384160974998320906506603727938124012210349941304629262543232135705014800606613988599889959555643409138417153524342406414084216517384248377226989042079304010251224344502575454353641748993248513446764853865067249069287891576757042839495916596250238293295206793963943310118183276123860740881179233337237554268970126389960979250020376848969349622773169550623612502883070611177472470781588655125823425633127273228129522334826165770351856373411281448347173934167049207951270355707359156424578883730984371953301955352523897447446384280325337549333087477719987369399703612209950785210407457103279935311448372775769324582488757352734639190793987229197284665067016230125116054403369522314650301569314666736256174573737863088944296232941229711539075568045096860238883910435812792506401068314751313752169440544347409066781968881669856947377552369762707842617325749243316260673508172083327670130992822051234587533955902404134539169386729048512976625163857483206849329790650152583377392386265381016255774776572160264779794530861041786219603618559951639937364569538275642557521192011723047593279784173029516942104791802230125499200536155894350828918823282359928544339885753023405320571473126323806261974193085805249910879582076987933370071464485828024025512130062169280594686355693962990179646398521162181838079627535573283047617168916435445050993722269752567677659705389745771467582772983661421623303989684218850926874588634701425296796245369361305852498319338646864015655504906011235357835977212366701905087417248061692403029675709609076174555026828194395717942294389882380698700519491322375338754747137790366940772351052572273348412631954959300951506454742374523280832802784047696598946851189722622409292392844989522725191726362278856807579630373129987225473447857830961913315048398415371993680888203842779852390558498740173417586426697957643766491523751262644025878001391089269839427149096594288630744253903824816906037959975116905761722106954634584967336145595498251492025774093163827391317416005711613307182240751013263067558607960126698097674474175115166569577450364876848563942097172353114978953074041827200443992858196742464203593462131047879400853090730969956396389057357037517780873401979669220714077172567263460664387269681231675666226224616263146818246042686001982455280693268464818715998303419803901017790192029297368356354707280796486207959253642867600075249595482635009234908037615746232051046995186473933839229849995650715137583466536126508787695347453096477666341804252813005344938830436077970826984306837255933960261896997435260306879425494009478255168744282350661433691615216043302525494914315246728763467430872779393649663661591721874778335921711638918033887280267822000245813539739253593795452607896266171234021733571519838798902991392905881416873573360841153684202761178201506028946849401404689177083744431245804783998593307086738513087622571503790642246653831621654756578597149085881142770368281852241418040499229588326997045335143752481583463318310471712909848425323356190534270327252416498544573360879446090571127260356539669821885115120385361724105114519060565224582001531729021752973371552007697618347357521541793078458097724944184677181209996796339055021310062403411966275032142134969563193084876461369972536744542735854780184530628279224026136340301803330947888393948261994514906065629660574011739685206233550698179888353751453419443300362137667668600241993839112659110712149491781729591728794869265049506970399097830043670868986481508884850584203780607503123144373937477549237484609792255270056832236238326167090843797624555468711571743379051511577744741212795479325642282014237267472774809174139820102735028099959606085809650834170604078020901633381890384343194800898159126796013033771957429520132670876995142437439182706834483884567825770531045126479183660204009149532534878748138373512711225953724925018903770354697169546172301499047256483166645520673237061477678260136492172729703412248780707124860981871918042790313512948051770516416016619806678706810203404425570252741012868085974152271674411315488261520683575340036592638610255660149376107731241935853701313090388751330932123098643882861044197958807430873631340260234768154167641892659067745757695284641488392197502204581905315175495150136272396677488929022298883110684796380939262584979109706780961313638415111779921729864817277814205835278532521731233687903919921318185896469785334507781422066899663666341965311454476475818680010190458704903045048561621735708610957004687588765461376669784094411072737050197784213966627725613360071497739813432659967537046853239209741772191334450662686290612723612333175684997018637418359116782994272736190692834657075265733036483608489123228576070354881042223593584975390828681823149633283517886626153989126519733978536969309101616622729501288070593814096105406499591671687502906861038445483492654344188029044414476064321432037364027668467925552292031075203430560561139994479219084448730433826233997998014031823314666230457802330745387430190126327376301987177656717914609147213018525041370413371305921930776712012810585826847407488114111060903572469722164664165687468882805216462158976945448265987112463279704973242098015173781318556764932045616877537806202944242580293359703065237438084622231351235433670730720878776909654676760785638018738519693997666501063032982743653423451517567658352109171643616323787766617407450124137426870004747463191582179189024078152788919933478211007039824848356323994875846795083132696242822636746238862385016147763303164753431654228052803935834798884076664703306563272933952385246566987998045427730701932451546361849759246704239930158387795705588214945895136599515436965821693224861715444174399396800091197977553645684752006491555505406450809718365725406090242581211699032008942873421981723228679528253784606756323164509277104400066035685161205894223943691113894504167401246538929148606219550928275111306252024791696765141165881959586828657115117337902621643245218546309711766502535752625959936501734213189176407250889969712736947002561448791964055520564667824603620596496443634522776517317769093946523132283611645542802290298711148697262298980829060617669777110863055338404834857903101381453746898504503705734764720767418485777829547817899087548583239762979406224051892778764744409169916603812822200121898376069362235216135279982531883248713737106607796829653279810680564952848238947356286775771715403596504744332109085613462779683836908659599621145181786230387969328179849360035203439995144152668646084395801423253364158179558071592149260390288774607082047775036015149893539485048078938820807677562828695223126217935472883168488589999389192307861407185338233144645658227532576919008083178314404139730207332379744834653707290244467783068735602154837348664161976048904282289437353696690660976748447772036329356151636525097825842838835999867167038696559892595693122900532162962745047253400877188412753874699431212208277797117964263348879913163767297640559797990887110683745353759504934677696591660835246848213670656215248192541261935941142710287631440737765884755713681067104952455716222230597667520224507550744287574226472250476875563327646325634366756684659076933411313849403182023938144883189954318142795539288224571787364097187890477555000506858561445243887875906025269480096915344403330839901849074715902578413658319946178573347035387268268254825423361757223920969160113294414262944268385647045286863948186940391013683025996668316220968760003746597456024213804634355017627312777814082476429150576722568971527645113666045460162426897752102642359532137268957613459303515954251226648870061743631750398840845473970071265280638593446643715210503981734252189527016866433114108596864175369002008003805465609429966037217879729864258317558999776198270428370999364298458092689915814888992481633021793822105936401045654839578654815560733670470820337172662675306827838203487647472863224245853443387797934821647846743036003927518536932412587310977007332098332543512068592475765564496447845083499442341383145379649172042063008879784782581765412934827172238283148443222680099244070083344416484953995484116410644104228348465364320809910193170777002943157051486660741850766839715646906724135839425686692009282542398341030443829029273587141776021871372233837120463077303847718948919411109511771472366299501201701659986246470047859780946256597917930818192314767912491159787210803205606860344507747531817171173278665640420237004655313106493085913644445014598643883454503949482960534040968170465155206930774986356249614011530557374891584073581410316270085879559777474675125345280556427129768296307688807555246323406960858615042415861049715645382834651176067142110647586556290159129638830977700604698326331302442889714618490813587437785069113047850905472151452265783353310883734243034450170047869568547129978871067838801708873309572764949946491511268422524239828738409443147675746718689579640749647833877877125197587045913161528015521761782681825280685350348711685902203759392076277319840924917619974596998014336081824834745336227048488660063691211943403030339089439714282774211789757626533028081610085510462944666340972369177992304041919272665360530053405307654936578930431717360450744912954497627393563198847909095364716949120681937507091913725838233946929973197375196848604448176429135270668665053183075013411831092711352215377061928050941703242650678706308929213943224089675694123971335137165080413499078435203211025717168815986582004238262295725424580046872025864241304584609796102941147848546634857053152813947290853415659855553237345390216709819535462168480543225137977159863911897453886572525210130595449361953772757528340886819056570632116908971534945384673287417008493220244827643730332483291476943139565653660061952358444835964080873241603131812310224121642273634952096088981681673166378815956959255646781722395196499065138961514833593093625408927951922167886501466825936496816367733951936635404530199656947680601713719685594231724688484147816540879976847390247655748274602990048407489894588097273419119987085339179580459623486549815746013288412815453974828027832070322379030943157225866832713015387264752099990652913037266228455019589814238231615729805775581243485473439207764641123297239234305113217562486757779335105989096247596488147544294816520382327976281652672598050621994253700643977352994499361199922683979325788892726466393994966619833375411715788881161205582232108105852936390987664539893143519899431483734293962676554763372844321917509391098079408819987441463735302048669049044888573954418033728356350502663753100322653258717826019228192004185419461532484652512071836246484061257247672314773203465768449662531850010747738728910157338366950136818514609169570954461246638030854863032055905155235209564374417155385703514917495851013298226735736005463029023008251657536329921589809039178424560780139401913719284645223521843548310674637377712369677300923418528683002039555056513395746299080546217400420276337219702551945807383086017303343400569931474192626037668566347079464531439564808862309992880346597694518059257641319051006272855721038093826650191444872078917581938542540431030609277357600109031103484499025789301023291036414817395311283878482324580454662538913953227229212097514494287773318210502849431624135957154821675890973699250634978724513296410800090619269264026471455717141452135908452190411223249385810536207969709166320304249848258279919513903859425612110295478377089326463457260121315980859386780501612352266996103285467659095640091304627888571806792598217705796806882083952537753403053744648883340066651938933154082851271399259805194309133800284329855123211455133573592322531400118866385314635763805777499516234392615622089046626137442107066629655590722478442275784989849804873698247469206541638455618335631937340996441340857277052170280197002283655574674830927510260432069296984287640912200595719358689439379015254814635318777045397699528093625961221746346520311778739031204533593446140108766236148409873127538897852126290369764917951604364076991449845908452703394762453834724786798662897873244867912146987255009237058480995746398386042418448069812398068745612848186982252722747977272261766704018243643787226453923086748652542133195015315260047474826793341922828108440452282730759336067320662134792342445010249088163676807163927492484159772911492619419881870865794511517111487238761069904839866079772369613043623596162385842508673609559026176842422381519611620028574199506768842444940201513352923561728680872857206219791981067931556485895292035687572383399135195724997672741478595477555188964303146611621748381382418727141450344354206370489098744936898795893860591679514283425071866640867768196984876449288058697266384575092564893912143055785073170862582194916986658726702145436377828012712269590309577145181482782025679988545685677245493061176652488188335679925576936858800187534805962886017891323529493508843287606065504655093818139826828455522162798822858337911948820487169598889395324280392653866137243095360376580555715694133081342775620283339352139253318655510662001616159558615010278380886409766977398508582659347030680588250916069120231395434617915420164074004626806896682971896383512705252012604563360691898076955578485565963539340211759878272827594383430250819049387316782847900922834553808557702014554335264739421094656305286581669092326882023770094014005658628586631424093983212371908232255446240801868040820604442692827067926444420506657015392263424619144550451146101058248507034332587491772173923921283432535387891903017848831184684365425056928468493081825581132574188401321176193863512847220119189878803317747440686983265854428994782728193788972860099618600885670182474965027664133523351606419237350903842188410834271626684591622748232477684018253919164238680575799165188762638915580255988005411097914127884735086786411357631585050682397500898776970532525531807204140282640603703848395268196852447333590115569852977453025496510543686359044515797452861266100634448714260316223416193312968612279091485156908607382238552855861311706219663744469221424091487563218447132253212202085740032628530015154563288485718353418499298313670069926944014522232220080145764742727222753706021350723736704713951410875842821315125301897720179776794740690928111117002302126742779479917002844507665956940991296592666945262257285373145849921604662205692980756515762204053893068515784707652902835603943376902657819430569157678991765280343086266660978891060622435360733239636368107225378591602476698315049354744970573166607730240710295375027337967779239877903709803164652584065219235938153157762567230914503352173274772431624692340856734592964506042872663468297656730073841721721322286911395556542156394918948692093784540931724942196944429412555839560082769992428612891305004660815203250200710192798123386502910981633453945332461583095077921609139174528750146630670562662486262699953014327832256496572190707902615800081961102629915137734358827030042938961539384429125585234836661339522283072495464862718702036732377480859499332605709542091133585730273365989827377823391180209636462796265550512356888280119955234038865373460941667815570237941273673286588239785186083900951623422899347940108705708854702492989948308763232223679315615509767654078476726047886678571582083926453379074864551990181813625389257414723852417556840158565332118353149860674285442827541875122781005891950547467059122826912361069334374034554038120231314544644725270186321417229673694860195846015982048269522235786073744955068898152014731095746838164189612131588569323189057076208442148968773691425035275802415146592547021806552368350208699625907599086171337206022416949285647592673197987891607202486131055182085602237694121716182152007862287414690084519305129212848699406791701858866291183423851428103645402247726648975395860366762726340791245450725307583779092271363381597666842919394122739989765969400916497612840148720221806702431756853648693500589846602533095670368188099175732205749310923329748597088358185193729814513286555835157656947402447132648702395739457613313976426216956083027600219830831907304884785547758072619316165407794212651544733754161091078930647518761601094322662645266971315289804813840273006843339024609574724008689736027069970236905941476806770720811712514991692017561406840259454995193212504935840972973535619908380447976675628454328282998055351717463620997591583862839965935985530291867948597116331491167060318434545635340602882763888043144331880056050087706461771167357856258638669208857860438399205441542310593532958510421906736318836116732674512617894781130508824856348294817044032249348643946920793727304981575094282270885851356414483812983381194353795732040120516658051020735240075266005357699510505528959744686567600371562551119596454172465652225743679580646813819589220712997046831179751135918794475602429384244975061395971015214125645248748776890569907208263123409413032203040193556119520311684286454096649131550404242536287059382437596548704064980282845040634858749197990098573781611334611983660058889636701322218738541894076077196238208060621792526499554364146395835700940603774698454193530275963127942071306770284695368315230889701196879979306862024687670949494692835816537840011813254857572340547991181300890046681571921281448501508771168782545966658773584309370407865768879924669918421226007162855166561261999501240820391173465822364604377277443386353970295451961371308961946437469800704002501313250924692080462075756629175575521084394742514675871297548510181889738084182998497340082002522724265384559211100085228901825138627439706604099913557678606113866270600622797471857670036696670482084889130155922329583878985662698870610909268943121856923919197959598542057938532785431210815435708432960040495802499594068752816812692403794095992185268341956945436208505280951103400823053551263303348972862756534065911385870839709621580227630416721838280176752119169540993890074146018479461522412720722353722546431835194234632908630526798830696098921763362598682747798889698834636936829002347834685112846721021160484772039928705780548788802915201048152527664314993604977801196736747297995200438647927981444554865722298076852620093678475828632200879038986052704912350387032991580326624366510190811783644436847964642830753747673666894910938931934721669101898245537217920456344281408938126476758671161704049374903841819163022128432369846573299722412653400905533271372590535711610175008145070003545262082079764264761611406547808181404639057252239405706133863567410305947456320861541693223733425515389718340419463041998158679395926722206140800243962681132131439976006051274299416122849329081165935209591333960615915794812519553391362369673448398432368997648984973826843683505706308354838703593559707379901900769585171827449888397596760595126094801286531151075270946739872994809892138007334295916213351410693837360617787319465261011726558154866126853754523054230923718935034057316083946077848223739597301327542051499411414954127670899455015153680624911465065166774464671945828207091930404812089624674937454962715613088663987094891752564338157253183958109532314120825455531238462088354880739220686700490058853220668017921154031251876023581740974384834401149739217013196887556496558481341867676114393788503507452559527892253756189813937380261093358343072392495515581275815608642074646046433010289924282302978646997497926162392015567463215710018059917480666076792986792221050898422068604947760452944180254053670549269743161528495531699443490380467185017528245292015678545315084777133826210013835827533784738628531498070911221680971439328351930028413092728109392250026365493711675702913511713359696251237914158829588979288454161418084789906243417221828108053392736739207707114724719251275718443713081059877207159988420825664452649988080097535550095950264037473820249622847302461858310485736419503247177283880685474974591613721393359766934776772636595401838761065194836205583753717725310667605126348348353687224988699730692254157596216016763723727409723683242033668874294416219192040860120278761713822275452343305535324192366304156146837362662231855190536076864002472750095636925454937436289414782708873246270740856787416710471839716075015218350043024241605359398120124958530608121503717762208387374757148849123530135885425482680971480415454948124141713696132817913427736514682054138571214805081283848356272113304011393073967044532613152492023684213847305926815934333683749236359342091292211601288096871699111083945147992942643238685157799472364578658179172843442404116673402281030672972785730556656784360640621432573318196815371462810434598713751168727917898309678713947134582687135266104325588277415606771403745951513262987999525431329697316010362369954755185634506314793537577910028755778193672211751904719606371227111308930611595335775700107495787166760949709489686600190415147005823878374481391725531435420897090090307801684449499310577578870768445919681677929009530747743364793818024040749217117162724514452095598384780230364644044497748719705721232222383742315515569743332917164057395712255292404075894682227108265208565201095921777010345521192153265368283849469768833037175906948133154637391145894324155857223207336190089071821402459854636328105254837998043235506620821703678358083821747882513731886400315365700192280039660118380409621633010419275003651698719167452325484955075663586770620803739382190490177942451174450337824395533483915562287275341556155580171968550623188881502255537533698241617863418176618685957629367141564061417849658509115430485414751682804250601335417668532453119902224138501502876874448552018717122026935698355035231044041570523126314502958818645418053530542511375361402365169902566188993102244834282958205551490358276714695824744195391331299834358653142985103664499928121784399511327014749762645846814970607627292808201704304777988830424863871983467733005150085731632409331735020609759225307414332241477661633237153202885734483848342336427674332415327625615974782467037651169153176002549890641468556115610391874179408154621481952806710489411934138034147829873812433313666151497346684740353692882704392270510415368224804867733747615375536073349498780229655334441068956408853014243465980181283079175274931720509880841823545208300257834509351006013670515519904332269260837964076183032579229881578225169602618006158848288509700303779240093386765831042868360883845968030942611413359543674319754058786281310281262414810823381721749432436086458492964760089690872760317964228851477361314162629040633618779689959440210295915404024954814005617519767150843896508314538134641640292598705473852471262734319708247215205485243182298910547949433834113836779850742374810140265218583393219051975090038892730110118075666350244428278708539645740174791736853091325166334444825145104318517316980717944526194410934926279718967858164320395329512977894446222662505114328100290103962375443618763073579370816486865450758967427670021423049591558562164084319644238076259299290191882042865103917758622837705476020578708342751051491319951112855160218158462107137079654834692410229765108194798445537237183098786645492794960142643809305869836553313575685263989862763948775069945432248633868768167434068217724881534065194013999401407662336988990718068335127369910920793398470712157568742698994034026937513522409075044696858406210491171703418047508553885560269926923753585796141912601920499751631239514133111442108344643847487253009917912411283372838414478887606868623077657603692252248823803160493230751640324880082354417836032117089406265295333389963081364411987949400258660493778606471101307378784064086980354099652320388627366223963243113494670529692235832159538775044622114876985695471618559644531536605417786949685462775644143484848283568623701407594087641993619415091152442330245118671880748608500477174965061458484761654678437950250929670926373010694095887327154164112939235754683616982552461867263566391586009356506579268377669262210363409588490506908300991392732971054049976980239829513645109947128299222323673767751408789079630476783957621856962631524362836291139125620569154863237514848940897863412287274720523801632245595500555942452066379583543752677167660910896817405184512922853996773389014396671611367656477546002076682196651992910248546777525798695625686211326058994037546983989705156024309972008676566581473616178724792450188117857228814477321417453046922960192688878562782911851884757861329378787061708435959912390735852391622126928689343539067996125417651709539177018388969395799614390637582791487189368935523525322791841498683045180877574936906104221148479347747016727394800403781201820743271545948360763431307350358738546996055933580873362499131685838414252792912925126685716151431347441786816163998328517113634588102097841796425770639774273452535772350931061704808145396955930779878394264114538559405558764864267938268161391308372839639804660234544965309275029960733366599593081159174734510526432546199360718988081137426180266604426708653747476657070882100685448364944755669503291509479368042780028391370244414598324568901531928782269550247865328556771599371606688240390730246983531976649978572437599613625698953807308719498765272671543459784275383230072616527395632076979145639609496206927193517380193329398721777719585590368375407536255527908841285355412431698707428206175881286469396578351867394168598542153059720427795748615121295032314289796539400622763535580377843855836502775014352982080107275085701995196926964001806814144903646649241015064896584766224427963470134724403996430285056522430619565700569970430571745706790691533025386304080884977101896451465164367633734269658284112847728211859717336980531964628345274407816008948814860065094932498425753751904221379162091917177459599868931565441999856931649420406144449729043555582053390219716623390924736049296104858693238879963803318672902533481978714560185579627224027546227923071511559291134111251369007552479145279158819335745316338728303619237600015886430112925324258556988808083318520482632929479322310763056793356920945459221739537140482866830566245339318231243347751198801226128455651421965227540932475716355146546157563310574522648986777659677580632339446648322557850096230104915631034878207251848131394487929144170559701812336126894711914056394070901298014256431142962423137809201474989162636170025072187951587570017453249501465890829057012862705434685038628997194403571166004126789389159059964297694830675042970337396247227105888259113156343516860465962423388470937396680805102434470882997038164550596938753793593170679665272482072014555251477607106776373308176551998365625206111201913309910312250862678575177440995150397576923683627523188015766349245618064544142181539827053778609206576761977608449695529386862807488127526496650460267004852583636493582770362430994495368458607655179096553949905803950866672944212799929478067893506824887844148542269016296294841899766040854931010186991556186389242024899207146184790683994033501278415301716601283676725833213278240267494346110117091509951947373057879939463262040113751069558560054464673994486035868201025212684927873349116265643413318542785190507425413161121116671157448565797739707017629265493470371955097013815757334611879372385815988714931920405292914711249885978339048006271219831522648914390261283699816629372348570427054467841934389095950271212840620841865339307041630473662653489265429407434740148908078738034070475045730970226309603191643449735573577574427707083439910301309921665898248540416413511660307503171235862439907696316038341329248266554129620842566789793922847860297691629839644021965970742829514611091605316985955440586880181489451710994281298813251202463332355072869337350943773226884840101098170961120149456910718954939604118687547985936161761137488976868499761787368667355722838823333474148385801625044943526435010843815619243084330789935706226803108119227417481849696813342653719672981910158691694697592565069311322675397624845543509268730990722566388024624401256877275144398169388982846260298358906725059173581329008019005524196418850302458524635574825832581419864554383348269231162030537639418633300582673994315135750018060858147549051578377068191801564618929041329861352852581489399396765661817627301468760883997671478278004618122863908098821567785227617305588772387119175513619650939687182394406420925722227705778570694505236802700049647234251147075474351777663827835627811651123369006929638401251338172225536751329438339904806831548628066389095140639274112956880232572925277134453274603300167705706072092274149628754876809234793505761733616012774454366980171513411558288384514487925946165817189079612453559296907619302600576736521253745588566456192327005052788246093817343614691251642347120304982439374087903574974215169534812024465970289885140162284297873128775462507166920221231510285441835642878426401831257129494154788854659859106112875026957155306566451320487900634847107226156078152458327221118426306460335333021853828336405086932750539039663344733531858894765089912079618926121012670016940972594820031271452623485345553537995210116093325557541398438916032128597958030814754780756697446710141403896777820702749949266982611958813568534411971865612615775495699529595565822106684942982873401739627799665269865299025179584007654930817493535850258293821023504231833724796016912155280247397528499915921134991867136947447488801129182532955259475515828899259829310641158709522248926757502762722966417253950577268007906163026440690234181726671660234739808486240719446251934101202159728918063410008109707343070410330356893844264900735058039864528715573367022910151933951234553591106254698353985639583972374708813431729651203034276718864088958658684503136428683635716386627045334411984180100122316974555745851226954725315016670978466806753280850615527416495675153722559705814916990713031976048385353544202313408233641534484309941956547940155573801524978725378062184095648257646454114984774049075315107422969836438405737081538695847181753939208945956455627748213103062734335724809896245128432805107512846732288753484658049471447757716842666131144161714198964145821639246373527808771493515919919001562015732283455309203436411699803694717964220438367678185058589016628937657128931611755182005145832551568883944109201206333426517038440988652205548656402609392222243235465037528670790735367794978601036005045921441806645071985206174338138243142827035640106960818074908860107647663497266952843110537179994744636484010905832125143276647874238394771770793669235944329759015540405680619429287673665945599209816233746200754636956708130457343947176146749668961717622342647837155452486959390156543898805762942989029519422627854424479209340910150508098359421484507302606897979466960349088638876685792485511800680620936182472724695319320718785871315011851293023577095381788178088707231973545475527336520131426961356928567502575659332358027018102617327033238966805496045134275766103148192759619296775703102122775745332108917806152422979181478794991281489469922073313423037711022382536039986534256423887864391045639997461338471156932134508062653437917990661713152085977845608561496755019200944051873746513420724470546422480321250126437066359925536010295248640631958673806871399144848601387819952730850807090369261363284238532477685417086247084730404975747097640032105031948669849736963903520979745264943841873631025903827824371187034119909361725568560916491502377895632270486085951068311240715388947427168751908377269916589435682477963667416598768392295727046172071469192126164271344408882629963877493397577917731193720464208417512993515046136658495357696666418663883251717124780564943842187257017949189412864441113785689713351689706927651346500095340352693342427102787358761972570734730482668223709953007379657787747162267937962193195865368505986833877944240660704119110385192619168942705726633061454020274890036299255849040565631568654809531911882307541774723522671965055881129106631079082849882124950545000268109843112266870289378042810361336574709027647452623645431541924183556107082740286119937307878330658901072132239373030138553348327287759866487819863639135850833961843167782225068776164341572146906339132378170008955055507521208681275524262853099327421808248304757884177429656402122250141246925355001173254974654792142097916124158522653539777600833946594216194431772599277484245042126207080551710350684603019375224067661697699371169685018755337217005378260587417395491963077714203303492363150028950862822224782472039321263982447435561219355163820519572411207635197558143160452958094537242020731035478071106744796790466986248842113414750605356672925000829761984753888892933392582199568069019453738726128740562465928425300536126479216633154148092585668030761640638208677603348715320503882263662268190557166942506394794912447808273963307230363058659319862373274947502683459268556708853603889857121311172926407788005047704626655617189880677348677860766398965872613889791430479314979454696660843430668006698121595555520628803308247714435581430662068621776804992837372755209385006704712763965512453224464027613519939604436629057492681807737692278555227195544501710181354464106413914689329016378168366052843807280601401973722792100644495136898395364614644561488630383515405687613870567817904444830176592332277617839077202489342492750058270988418388200280938711004576902711431168778567285659289183199785507766057492322036657515800184081434084464511807002462354703603912460618531235610987181019672293419523911512999939154540908334175604097142769228283071710158415193193592819882628698632274984103488385170795951843629827551953056927480181122284175615612469063076324514088582573462315972848867015967026865579933473272359200463364459915507522883951998961451378032519971008341059300719432822027526677361722949223967999072552213194897915040390562350525883888555998642972584002539976303190842905431798934604497299727334330887182888983924823875566609249656305547804641282545367847677238423827050685177795007817429753535519875498807011535977651877468047258003968109041458249327566536488950078830968623762872622676821242124022921608512657031496241960336642370252668024485184159632527136012419149060959995568296448053674120958723555472748962824732600321261126509552286887257957091904384724281371641022636978502164368704298678326495591248428249225799405680471666406955891154212735508920383579341903039485333108664905082408817431276417581808448973741537513382991178000010432495319570617477092995555454592147964523628421812798923553058933092221505312094957129846068457688250918376139763223434558532647566325874547271675866787141895547636605068429566407101898892775779951314235855451355038858753753258310976498837021817808051078395510912667506880748994207341472677837325393486113088496496921951543176231356822131123082667415717177448897520775224815957750727696529953007662078209880736877135189542080204878235071470072434890766493832385645297015429431756397451547395660660040166294988858856161772246726575505508584722206935486406303864397391648515951443947404961455754125439018849218702104008577690999691605504812423116940023654874034221497184169525696299883306535957138106441619616507558064613376427488240417769242814706221268318899098862640112667532020088739168598736777374541345246355295946400791717364666685529327515910263316723859576120444463051877747051595407526617935088638996724136461229468857877929735920324532563916100370734221238972659282207185663970671670818920711482006996777453833285381632487724135502114604516568156344532240179543227088542628134847243834345598720007651601813076003692445058538646568139783522281765344349978210544878302803048536478203106707574381464833742066569712795612438478840195842132771777986429448063107605389463959010960427673449084633249678389294807842966690299762098425643907278915537482256119120387508662409560063942841100070526233775125815713939031188322526770196149662612876979566485101759087496744540473891751034221941993810035586049382592254963292336147818071623243054474119453214909705575483454563756588431986143891497897223823190335594774866065390753537577347719923909503656890008668288516485214145417747880753099978094415403206366543502285255240523202722478460257705840719751360066948674779077772413727507310598922680893961130837219470503083005648478288874799174534057708731155764316257069518206226186364782918114923151477961537879572043697390252733003828871273059816155529906276023517021425089114891177707874295484760811909205321627953068566514711496182446543464502149392139825693897377247019750655621243234468470574589377189537079803407216491093183499450688594813527993145063256757283795184247870556848749811346703362257095793462680676616830555367347774314115834298004586464050577007210488940967032048766818466199795221367870293561861853948116709088503515077160158711249199510070781739156546510254946779498606356073057419375788810754469036648852177426880543628933578847042223407535910446462658893290131236489645997820424005718227825106369495889925244698982769286433185689459684260164156196255178465704029025670267829849278263672301141309130782774430026591517646559963452630753025787939897419819227677581896324334494124299353594407985868574796440651088397705557882918102974268125939352417229036957271735416752541100309566383904394168743094518288224878938187281238060199865018651551543230381552548393576659594002168868216802005906969858552799207199763876574372018159814641894811239819834078121373415623279705141979533957065604891316792829078546550471082670286844442285460122472863912026608999564847553246405169257724294059329222835010302859966304860303906008943138632636273156642105886921068800647761963162837789434242146910085288215194390841717503966761795264178258485244084516526467045248075552403365830634031101051659268643923279179954332006765950632701986790026745986598882086784298352317761973862984537121799689955314373712245236662098359367604155582406703140972173542267703975456396718629415945220129443880085387742828589266926596203351625136807266940921785834586497217563919695910035088004724143173210833350662332788355956299807233486686082490030374060785745956061661329273235239802177585541320611638821288676933599380831914174556266564001755389078072959424405977331866203182546969167171407817218035386340985983861241212267740266720143280867513667634023599609685064037210864569990944846403298266134553619539025181303070883341821234225543999405440957525081553121790534011649160047114533364049203905537495572133325404493044320189254607841562794264709232036702187035647041876291712157234493522017029497061570144053334983085739730851772417790501343799407913741585312865948565500471682558983084872915593346597266774818313867404419497299260115532976909307818742104676846776779259632918053869639500157260986035888940996815530580087835907014060554681006038220984955177827217575099950929601160699356579536751318297154166043549694289513694723225217823358657131212415391459095387606887117207176253667100102385569046386521165355468328961176784584229263438191111168085919193314316379028440141028876911049107152530317723122166132082281571101931887607172184750376155384399434444728450897649591090849500246824663946786062277387761848579366869247679639827804505679320922183776020201706715002986692450004619030827655143353030697779197770240888560888173579252303089210026730732754111948758383123494820038699298414424342805475654233519535470400369273864306832036589692102625987834413106342808776234270660623940125162878699617582382874635692940297382388161979975009797735125415749420306918949275839768675825670469998746384317899530676392431520250947430051012559937632514965860404820617632742023840162873774006861786853619285151338043046201783206244477275623705478740553964419216567065837476901804814599951212750753303848239110745207710404208716980941584477475349305136157535970245931232026732658339725876901441984772206288249496514167363787341900335757880316430392425330734140675013226818749661688050159455171246499517030960824204393674955859347570165954455152645093674044919031693655270583057410322549101983796713186952714717177097634346831140913008726881742716454293112216425456902903499079666248530618710773810973979132090605156228907873487399842977687179152393866310114438264269887434807169946354819950771227467705765999486679893752775533493729329346860318486442253838259127105409907042819472148205597736949671817726316608114352313476461348695686956715073931839902802719262169962965745359247719133194482164721559539164500707088199054041581342244814679038447282985344720421366688813593644489912211909923104777019240326572102628837438712463633536507869595897671149861478723977293655200440405932872864384550499973289260126488182156956382390233507541613041315757977917787474863725347561652334012517004253893108587363778554843542237656068292574986230590940450372372977089222102881323962488910235195883959997150453460649435170663802687170704425860087500175706685880518679308307290108053899202439961237341563454803830413780625518133156255547581699187174801179176614966443985037999423137251458645796457506635593187149909841527737674410124566526408606366641085804424498211989198862275956761669045712534092804819500175928983121657319034225646317374648438032732583886012139942654852628597774046967171203843591056840017822956928655111914870873442451595488000795484152764627724633382469419135042119068347425111550052209366325042417354192044307645155981155200385800817863447299039205523568368697941168197907343955906478060861851199517059173871077493818015304391943033802730257430272432045860349060972366089027735742747264386764678318046992112992284983365905951252684596579917301545932502090998194920926522634528758252286653703658927461462051444155072316933649815838279169091951645070009410224504543324411584343832251556512127356825542884099142145002838099117779020539313800184191541085666436097807660987236116851729653578746108322777939696531973247104412026435304327173752684207629265490977520817120337975498714327374503086332770612388470268708478203802034901817678957834993277738338024474562213977417375665923801634858092307774866455427329597384884904791497957751650166085793209630758698097185518659130699306389923620968542692781888719992571888290338044739590418251755751934141652812859049848585666679394904325780410458769198650745559781216450443139573061911718778522791885098567557198167239349579964786378088941426208981423030430735274488717397994115570559718400893719833819473353293987099422075304335189252592792768439968183876651628039670922306993703292876853927687243124343066777878988129384851675479421648878903333749984674187617053427215573907867342641597931335504635646406256345140218564849269281506935672967126398529172074853830758872833306529088433153612383328593400479043565236765795725779765556897365091961305026391189052392088067893989448803481381478042554341977418953516344770887923151626184448190912428665839333987907469264444498021601134658743576062222728066842086613553600239424228137447473024911893576328120280612297242834093338934549623458140219537754594864466416045733628246509436779896847674456393118318657318882842428799008802492331447589530461412505450285840275853735954172242781858809737072289146181880666790306951080033666606869615141967237885520219351649774213007490726578006151780324730279341116619777066664729613969834979896494597006865344674899368359654619372275077257450900877085372865401625126744448488593279803890191397378911893545984453152048565871765704449499304580843338312272963571164909037695112092807352449834480123569405736574852155017259820270797667794146869657119282764086374382151981631418349777399857838404551274107782605028063197666696694935565265969527034052800414264128336616127300588141182740720940639322714100615481613005014322993571359529349153572834882010645985362318785801430181455351533211073378966177472397185813418817233289109257054524579318754931510728605888928213804577606575864740063849243092729333028005897195669627761391613568789744167926457449083895400911539995263702897771584177518485715610786352305592359038978686502152858563533902928063377999903878188948707440275728522938900517476824008287646059847375477196642562384787999393814487140583526668089073702000565754132711504533098561250116631707065822083723192144490695017019998877836072932202506515820746817654300419110438644286874677045841065035739971123894403264033791379578392344622873776678676327251332735915886593984324242361918839189434603103736999622098617198095801119621944767419408587663208267396360933830502956510014470515093623205747298565220977475203835867292673222444660080273660586535322286079441455059209654633608974957081799014168845934720718613325532857389775220315836608016334371951911669836237428736953851140178108880512038036152239318347063791788374568639344296862772323285448733764886503664163220630508103321241452400628105101530394943219635780045902737963226270280759777318879344841524331984313128953097577585442895324486412518825774750557789486188839593203235514519951380924051512697572825226035688069006360210580811967305828622210404384584184418066905182468555631511662126704124202980512129597822760672748196765937663308371053706948340880634552719366295295178018498263006899431202638986838013037654556958423784721606031317634939681451248236029579770482380477274913257277070137503981828890979047630795977812580367318787259758506904526125238168860541062296506300878090692411307668193050524362391179591185528259135013847532830225281072456059563101003710494279549775247602646283121229918359922686795741754393306705165473776498834386252114862188445820894950873023143043016674920451828013629850809419337670553930498227567005621295291367193298173362628078875023490502920564833087790227981030957231374414418538500115591109624202624179911583206823275450194002595447341402850703303231522772324308465222911298244085753363438765566267737110802195370409339365384372817908947108571006217114189919553876381617242875381735576080871172149069648250547531071172631196723801953766847936896059568169938757186628690791894099933670001260548337818398679773768959005102046747841003431908240400800064117460739494662949335083393249450932150021110322226598122584337650568377596001889045789757565907827291349755939673639883589882915689056249351390398599839220219235324232404223672509284225581522423488470409009941815911503500073308068061570536534750727378371474361571151352804196788770011890906739610132691564151050505760458568782704697569044651475382114773701750982752232372727054357563753909307864523612778072651462852986147694793006691367919819401415067789713046312074498499800289866693919374011073065641548670171924363257477005314305175685371414369527926995781624750591997035009809669227489414453333607677950617826214281064336101123054576254161064780319988929867491661000865292910061198621719475009218577198381515414335668740855674470650878174916802220939847261927155770822692736172315881314597426674095917752848579357862099642497403908631748380829345180173611480080302855331151440268978663579278224050662753374175261581265073813705421876029715284868694667842129202813367586276675115649272717482824371693154952543488167102853824019951249537971994737881572988979064875420294996740424266264375483029908102652204785309472534903851488154983392767990420633386411427401386321133285443727408274487555030615589427890419755608787006511758430127450163397022012519571324528299007628781373564825597280069625974030516393726620969527604847310290806476179019869026399890216603678684468581259541137368830279175657435315291776762083675971148291567698910324195480555083827572259060758899994748429658963111706885831644433879998411002287970186518822083815106663222920247842157522332608461700383928692448673811118769025737833588034979662275684863372930655503600250206714834350673968995917727803361189804807980442624532829655371107580014285662018114910514971562977453236848257684895380063415308553662734739363015151090274866821408712177380941091315725576831124567632005448929699578501428985328816187637090574493362371846478909884409678559165149354224550431364189177013205278925694888782535783796086524833485912412542900129293133102984924613599688926783689201134786447133633628886767614262522705477492922559236438663536447615510527797606840190974878510056164004492789290533678033757742908323169605807340399732792620284508686942752625467889367100540534943283881895432280282565608756021356655414732858168958986770282240542526965021234775929849004587533311622305990902246082118403694380149502764806197118065405015883828489666323225047376297731286799118807489239527116792104731334147822912170355088679569616797083272467445008034300214929898048191609708188380117137419987358406728710014208201750581364839571634934327989106584198370273469225942404601434551415803195655254851204183440075864897943232932976550698937150059642922345464763588653681701066465749069111021692019672540879396199774730779929153184109507504303709806606039605678959282476694038203306811960378082068180855396872550470260540552779133851852073638721975129657124682289092264944920571476777192824118011140238700808844499574217241844275583100444451968496841873231886094245563008476585160500707983546653186850212317313689062621873622149292596306210415888609824219692841620257363127676471662956323733335964489195811198135674025475384918292877579570617590607450972009556626373004580497558902278121263080330206663048895062769452569419968892910744925000026768589560446539294221202809739688321438509919550148163971095357991372416477032863117934876785262842868715645457428126020447019673617499905568545757559788817523052941580461335989114570658980195810696536064694482916912804813875031389017010307084486136972903998837597245607578532526506140290757872243972446201926202223875974790931788516783663938578875280429200580288199615201949065511320531480880476562816076216107421378535985408667834011762091102959238133091908357263868298944856614458071001290377812820952316670150508804832747855876361534105629125508880183265070317357212203344230923560408712946816239255535732837885903813684053025776586659521372067550534335584436203125594457592267640418489325155658380481632531440095059606506391275834743166043791564945306125902677761949736930360603633266413769854394530015762380503421140770091145673052424905333004612636192325287077046785757773151345388454446738335808009895203830218965792878836979751203961423202710770737529076138125525842326319455676832214936960044552552424645499522572970804155658519528444262444990287168910741183113835281156161874101488947187976638743127189921358769958325401201634682920295420328269705450930643602254998266710899878790161208358977805307567876086011008283933387477697879039023975876031523895202217239642864396664994163694829534541431407083048193177932781037642032003174584747858714233987730969327234965337947858011306277130232997118007636309283790254068075622036794498446174352772620045343283308283567712472752524587649183289939949064476947159284882083769667185354335999966795533881914647033982391240264372273513648622589697236908915640601470366977775373515767052643407657802393172019717852947832958388132136860300359758384883206357697328199299226353821960495002867940535471055229147866905421140771400585435004240648081638604409027899202820144268746403813418453461646725662068981864264628786903345002089753261542908828365914174744683033388376035612730616517680205534190414325323384231589792071028310586578915938624546934190681337814011150683773151290784631580985892809614217323935952863092617191722785210864768090348670187244583847239728209925696754300472207095110491531134985917962540331265415896005577507445583202186890242492325580491820173184333015923571444515609922790967813025555645413319640757401349930282582531335296632169152599776797163689014645516522866978169303207979305432791250307767568418679460379082444235433664822024663134977400243785279223177718615859331397811649705626939490599579132371109158767237315560267423172742491826344955888005590411718487235186130976979904394937918523219992187584449128426539237085739298407479188441202047259326060316211537895282193012472993412239727635627911819083528780471645679188712156340345400836318071243570259757998273137426224391756049944991770514758738314143173939800918226084091989050043797533383589769603301004340668987835594268287971061772540539497453349533709765069766573617233399298750206474006768995990629792101896069812070822926602752232802222055467574223548368543974760896581524599330647221181720265772349810184656614044508493206144072901671865888470461704003293923441241572521194196330386205546381056197921807109691225251034235844957783173998680828632526411960204314241876376769144799014057892769740888507005823836653292802726361930658243711970517212538973344963818315610513667484635116749350912716689565743784853339338848074279152831277956179036506770360045656036689071136432487949721044180643766258195546159947870995537095177033892320057978476494255437147638635844065772654888385863126011375340657029736975964732171022860911803223267595119575529498427136620758839328734432641095918317227995514145356340276934168379129926871586133381375360859893469412487901789475301674825638246738963237410796423757694281227823295511452976119218206801792392978431899686740833265516240523758634776895858641669405278774662246576057897928185225088349799543083440260210986427328729155925075163757116593093605827950010259004989212411947483111919513202289594716146778910116371250893691948221730042023135246576857907794790514359059714746202896108279707281181012614735993014483398904851305072320040438948936592165404238024007285302834125671371662536495072563964573388351164946641200228105721015878950491987298568600832889112267969377654300912632195210044586395412830409854745590753708943916065302646047811969852708511877481043386707615709325572794306372796484215090796739993254377534705797726463501027105400633185842927257828037784503180258494718007049662894223800851781246704053177198449639888535752759283138106632289133875721600098291562625686413078855048099945781068185505170936622136793307753194308500986640172979467532372647336827024510357360216504329224411775380603323495349304374235268262879038798872843201818300865230967242505134682094254209286662641334161995844812900852889756536935654482763519718411008742535341544661205063965999849352275499857206933817629933172267140521777076973854188221800751278415166974082535879571477572857339762208908635221129659314304190939821914148758613556488567098208430295707515698297157449932483551798723166045167568710076930425461889919138688692444654143123018077986002440026336036027059090089138630201569488969021597133729884617732116274309422016104387952824341371466449743097272526481821588706136528432130365458804358433936378160645806581519625805521433751608598175488393002369450928289623092859705739440383146163442167863597852102709166722414881183310031128827740400244276924059476083436774951735648755872433305809856041378840662521344202267290846945476441468440860108518370830709500568944496827783715737312198174474732274351873447317296004569215403315515449678489409194311640863266597547178520352695798346490407195496963070949549124060806822560501801138216262373716085029504336390501639026606554344165484992752496247742996536036596036532678395846394815196620736786324509821153821270836097246523696931948949008369858086412783675995774503797318298589890071128733843537360359538583945829335025739796145776454554050245331419262326164401970617538337977345945816495626147545404757853768904398196667252861049795844449458008364018804525148693631067642371567722212523870049812120709200188347384400043323574236798002550050955283755941359277634765659192990779538270836383516390971670411177065780474644250311558099075246633634997158462622933216813249015681410148782229708783934064607492240839564883463554649261142577966401785728182073953368731548565511347279430408213625708981744791023525052948014790282220571601184347601507133733527359841665889709075354529436600438865188074525105203710387190532230602105616385541986950934764866658980192683019021270606083402447244224091007630565834432164338994980654323739620786691670652362261120953109216083541995045144734833097575552579596653362417303919874222351126982948217293930358921552114966933002816500481601178863377651858172730375242470410611618801854806779910835096247715226208636469727805651700974024929506451388922652338479281131820938531213362514685750009074181932497251801322616538617522134062234062388517544158464758469144749478132480267282648351984013513053727428006390660572586626817705733101445481408400663723768557915190300179452353645854487033837929362763521100558991906601719717927196567757526294442102101799517813156026525459463011022171123502941239677710684286089161585103140464926385978446826690912731121607508699356926809576481738469595176668262163008598223520541476440455399211412835086246080029109751265010974311399222450438731669092770968105472493979845449504277029850603630783879881206768033136926589354233506472442708398179099241051290001362214020487001354112463877017629584665080440825089552565318877846252208771594832248542382739605664204240328161874298700707307344591147644979920037133486033972417560980434984979287857402586055349404333435793143909567725307912362234301331095372813463917455283193036432272647943296354168124584764967611473567809523571984819273582408492124471924863578990521220744169530575022455077461786686776221533320367172981252553341479805644819345723668410328206110193209009506519505101274146002697442505364111771473206865084151358130242813789540319627447482018390369725377305493649622686895184382476980139434634781043137952559139328944656365855059815376012179199952196979260391402801162826371879614756057372819548097315400201896699117707328943735695589666907043612643395297130985661232110326215063795051400575739556208863807723536678676206797501904857618614857196624544700994693748411510493840993295207061006278806247702251004040981693088348505939868624710220052027408416801751585641874767442444581885463179601332338344800705431877477486101014787946145182681532352160635175084085503514117174546398415459304308466713426161600823718938971794440416655767598498007242640477258439624666351292423903289215717767710472334742575581360098355200066011951454522141291024783254713532522708394599325108477429588593075423341168685450340220208827207888151530708076293004454693490009160000345512122353445952321702167358105863618395959170338051907770931430944047862089740753203006170212625901840765317827043553276158099336145839609091797787169405502073600730056080415218855196057861683039761848627114295142991402060506310703961724742137457639127380559581898715306897576683819370793439697743508157526921124742165177944419179555954791505293606942981980379881976021810322070553142964083272078707359809941889794524428710314197238313851023070242855476687272794936578423972625058201288399050619854242919934093623655377179174497119511004821872750599921106829263270293601649042918639269356288138216619860995885930774693780952558188579051593665031922280339985747908287623893489002091800458918765325488787551759206603538092538506780533732386782823831950780146249776009702907075062161265697571379675272772285339439717697598264866605267485405563522965614612669540125070113512458094497752519805834205878074028026510387767505808896209076068114322820111102772747094248072235651102555568651995888203430825567803072193985880376374035785301945648539223306487337451375437218965903713294516871697456712538563273658213372275822399126488137628916884571082151251672933282178403843518834189521931470726586243292356553606781841980966389739423065324446263527342796929124101951706828744002894668874636806527469897763272882688666778151928066205842214643777550933849511959363643187347446739323305188686635830059536349068429169009403250156093960514797261374295023313585820976090266278115410908109528268395158730350364840436021222613298686553753282544003572240911234488711330526259248259353303891393965285939794606484513413180324933324539902494118319424996188955512687509447952590517498716518809474925514492830046979609766276669118817022603192296892876678258409856173964350271169970086505536047575510088935256894947716782878101818951683149822741557410477270426848774690975799985949182943562439875995536442079209301970737719703711421942859625312674627006441944309072282679403683373591451812843584727284612465544906724886432838041105536264550966477535046960552689849208838225926385610989570872877477840990841952251110803874826861249905067975453939775709327629597671050678983125983980394080954485012524893663329370564770259701327028973049556555196858438488470102182760842872604990316795589046746119250375153857310348200243526328562819160216032664103089729906246583822830755724945269713908086131410998288964273338755657345398780815555997253320274013669684956852461582444158205263540429460372547530941702512691709810761297305907955360548191327703713793350629793595165119832071201182698792619163688956706490452853934574388456432430459105936119667107937534233897941576798335601511382963534009035464726523564292097185784287415125452033295246637942507407706976270792691530167943495272403543423581819703509328351944913911190978450739132192153811775017981959597294157330087736733580865015117637926274071926480739526668897729838087484927149027485451151360718653740000890962169384485798660655995667217645800246765998954615147587077367309353223395161135921937249833895819108394544568979122705131156883024338120255377555904250927527744156123050155170511816453473693799926101501259972109678691731742272713124276601167760552221476266959673242028154848532636869748143446097221898976856790071898115498434789725864892948017793532702819731333436010572271198856154556693990453841415307025232202330346006087053028736272337266489050129752910665721637236555209194963594672733455652727495185891235584666164120688540663536645299591806426732849059245725798433838305786925308027517313185422868044488929330140628150505101656813536086212842513438194218248254128262000113535042897416323382098745753264280628773008234191532140608207050818523219856059009684748374293016422338139549210595060168202408215612760941005910334818058415111904764057739460862700072572481940298032177315058419812190889094565353987075288294543302063250916879327726088791530368331855640628694767212276535611616981098150578729131443369123501890848396213315058748302867872937180390365390617086067054506654948116220970747606924623017905061063857729509982284146655773046232417105813401755312417791466720715235265886927268972682921113685532507942734400731043981165194495383595023510987558539315096495822739515673714646358157373905627526579073474863956768524973264152385840064336658897477028517909496269389417004009536180899432963991336753075373039603219909903607764619464509662717031439974198149327327756909747426251080106436213997161835658841629585972563610972908820433323430729430520394616073611374383256342999912931636224034393780763899561705534677737883881230755854878924609500156792042897878441661643039552193791200906324951459100819779048651285868492060969355918471304921508146671678990134588950354956251102275930784369783774806667330853618023544002643237922091674603044833511969198763970577018101187827536484112905373639208949246053208245462536660722247162500561484866501691817730949119257840571199240956708249239861568845325920893339376845368965263741959641971562152636712675322494004278894849225951731227118756815568592455045052025228128724550687747018503912558979684545602180208620036661358405986015649592110630447602882757386290365802843288345455642374597358518318645496644276318117382780990943826484813959180096921704182484369371101853047622767940998110165638810266881902163675820271800863842621456366822777339721426875073129875134302416445118722988459448145991853465813041866220587679995981044803779397395707972804053047959380268438039158217290800553532491185202031173853506299303787911061373006003839527790008706647587835427611441806482542664004664277683953919459046668166189194689544347004655562590457506599111005913070104804335157765052276472723414331232942435588718322427369764677331709019099326324086773477735578184171692046702964374283224785618414184632032823718348429077555122307618597050886006969963319797667721542668915974722475371561547139069419815535515217031178120969319686057856811801655602188786162778414602292016470937173770619614626535271242122043785135148287112797971202523573185322437635770648412242773958560053142322300330704742980657067436809247514051216674167361226414080313677793160650737189817229066854711664053890556589268977568899110820196053926233502105118070164469134938029175094023874366109900507136091912319597551461357818341808401069345498091477557639475223575886718559927921552776543353624009606645641963644445669586999358943110807219271817121029276801725593711032039067568294250287759783941741405259812410566929815189988485652613616445329699596450767321691114471619569324439166593329146562416865219982198697324438567943922366258218680987486793874057099499115457261078785643293077618855933138955852582690382887185319798033092696113163731377990054079183496573417689293800771103172643861424417755352911863969476492353824939217427790676083285411288082046340936384953332410651732142182215122066939012742435452265511703008356428206951917881513703976095594118041715252018762933510282939453833532599599826018614819643395629802403580967537303998007390125794930155439908041164422328909629752597033603321168139781665579505416439163503921541216333320047107684904052511201892840932958267477679207502257314017067247877958356343297453622788272413093370592433227912614611853417965137262725274583929989261380222923026122581487247133363871951371625227627519116562578204314667836233441444058293182218758895366503138096830214187040297900798649961941178691320217548704946743715616502896451872942242717975718377219104350125022246720265788584180856326914749695232096132646686365078146472636238768198290372100468701505995439216350297897803510442720213425941561437087154573775825317909220111590123918561529823754677925638205291341374447535694919199565046868818296927497675746746793098964981444420418114368363489625644457125036835554902701369569862549449541150309512383160711071631485469826464397184468412296853575951777209939496195411197068201681470974660803501261465118123069206272930077749437764801917680629212405995985234788956804644355095162014875369890315786551759136622224462216348952441872480435219198180914014176784498017659492259056366688140856889337554207336794090921933480802714976475646740562404019936627413904005678590947763697141058025555323317923481909782712693711709516018448229013016653711430424505418367723316173178890219670317116638853388373217332964461086489612015646356426488416612423991723955148603658944532640116861532707011670519273086702926420694454589304632747124328109933066990916916484176187508234485333846748770479257296790001893382009660368760850531597965785942292968495919383870333001182508008182583693741471478608619890266466667520876800706484550229515551094206761264884983189790058223942136332865626179065111428279092654433229177972660828253933632097656330940280800990604707087019678082008286688512944566666689030334387832156208932872015631997971561368508692818295817444864416170274366653596088486589711750109967368536078004270783246103213307077152355754002506007595847211544994499870652453716895822039233820667185630118173125745865483659451001645285438594789920531114631164173157492519522031290077476023232645335688922966123831887637222596968454828661529150462751363637936194464977502541420430140171268446942964931301871833150447707367238380537158110507378877903210123490779100354433922107964387724888582584965258846046517505764020660697449832738844789370377756277740812389395663164029388004640418865436648139479831489942549955043903813651702713300907982656840911123919592956679210430774926194092513894013797884732481396005439098657226903676964167456804301898227075044370912182344734144650830234674430599450469656353338807683444523563191704014390455375307082799028871201401629512775654219578565004347175183417878661135471976570640736272854719196044688929161587300120592996814845296616261035911411342715889820061963432706668258541243542746995780858258073592297811361451642743071514290610245662899129893872202367638310648842074614610444866169117213627400325514667412529973879524810531473775580689047912993795552336616212472248224866475522813383151001141926444478078165562582876194373924421034634087228841165254385853946580635844445053155425587756106445154683109269813859459309775307381770780007384588513542294538972774612584749842592572803125844598920753326571056397271891156969896569706845950000288343473664828391469191576670780676833365736990531361575751557362827058097422542939474064813459907956052743837128595089972247082348969271902268052528971374857325114553755233158053234086362503710606655377953580338188735601555281787244345022263740585459549104614870380948122285101291343772925880229745857395071221581525444208512069049393682743077902829763648659587626991449545872719618555228470151505224127147803803990935501692360037659902357888369170544098916197059408674198439063364350101734152612465138594463538823416667853668576615906370656368269287673488490707221028430158727859607140830626825118344798632079270783222191335627712450895977689469215017130116522540490945620736328490404474234371242944906255480037647340391956958412870434258561447452513897720774810578231443309063511490078089075809168962373295582397670666904883705540902575682365613101297559079551451198519220808191175946898723450564958263492513657769625447981342379090832547194101292828416857456691545611525200647480938926202705298258690968732315113228161327363196593001979545462752579476048865449766773537128839306180614978053792065297823932771161709384075115735875686717270477337371386455945103570904622582490712928564735753551978133050704212519912942558955782651563113212701011355965107277332436953555560084342823544513211150053941723508471040991839380661801153286147712370337427447572737261455805750852111210005029358355699722333413585301090884709650764716761651604094959829125027279185182991253831168026186822352414684398363136411847716237505621135361298034692308537011324862266353419335115669678575104253988627002438981852336967803521483939805587265171943441795334294485767646307596737647548915800193301698647944641082937060043414574762088770557219280635897733076036403855922099510077105346989757356903259242391669038605840320113422945069302814178262011604745279805384509836541469315098271129759589441776923124838337541639216725080543115878623132126786430112565254295688543380138441490553844274389252012763399062057064342112484061597393824077953838427980323862542076706480658753152379236123882510865043035957572931988736119301495726741054335389358136091564102282034219036949865698623457962684795612409266655377660790541787712232512150370620183613193143961203042849141704517899431073081995593840543019723604568117816758474084458759198592579824355905035216984011446653809463010019332165117446824806950833349401078352192245175910241240475110118633395339719804296933361953938518953408252490086221983945926107813877164778520791803987278051361598740786920148674989032635452816771993458860347260734114256677514084436328207707871359176273250983399244379299931972582560634770182273777578899827171724414319837147447944972109155439066560482446513676870250267345021662630411232997363601374898503058543974649351461664393569196073397338970668466592442703582053952546758171225111133624228461706190392434146826903534659429794830904707272857415156659171207455502380035082418625866858875908233151958524788509084473856392596658510358694008807825694500953703036516158464247110447550431511134047992954931405672352339156756855815579910523385359797657377553257224228495142654702010635827206469910322074342486542935047352240612430703420487522787991046955493645581787521882960050292417253017430952056731453685398991457763977949054942849361457987371084678093774887826398724106933500615473357631105037713684605646435900088968119620661600990767260768923155414981759576362523207888968464156405152092516491470790026785744232909987547399027824737693422455014755113270408430175271196686634564421470564936682018170424182635095487121393285984782846455638571813507136786923294653437160120169051672678488001116746195810254900683389885307851199656384479238397825492459565491690305705805003501654081500040836503721100261829497017548671408188495706157811117987807625400356822145700969048811945710550030458752535765092574962404367355759001902281645691187414693896564509635836836084695612263726712359514168031425530494492061226338742085202384404751304968514084442224610720208467109343241571164435508334934914210064626840350407931629008485699998809730077434645553555023090235953371453684438805599738460051109044800857182612501754514645263312514709231093850392941859118434488493869539037951846947908113734911488618570563663956095392293962728441890161087178515706238505091890713728863539815165963251813366824568150321635834888360500415414867534480753201597890287006419092195408897261024992072416549974012793619024055106543793506003455594069133510427255477196921978694708332956842691487492728433021192926387502195293708551408725408253462951517566506749399628691309111211879027351525567729661701251515992523220783969685823412331366352702420050044680642551311020415064554461047402624054551437146154078269424952219920280568272886392238150946226776878191565472688441443192011167609802328899431779361424674387395062321685467677936176015012216521029797301734689659327474545177751554322808640977053414066888408432623004245824811868040512090434544333944031851828492261660463416349939364803672636956083565413363224459131150682672535036662203146235243792415454037502287672272614044433380405184626131770096086991294654151955553033081504267910713543357383267904950257036358881778129070500414583268627802609893463921029223173881773979081135065178177503985527354024733287615875356652739412371061213417808356675247394401138174715128869263981044225675920429810964897753317627184416496452262734724261178500885007552001873831376686397289833123565903875444185732642072497171472648231429337480788289249571362296047393904680661763661633321158599705567657370384180912497729056882958240720826833201502541064893326367988235813972928371014285440397616606828205221692134352508786676658750658858081151461806090855096576836193317257214745987155160552284159905202014814870002113314517863577132617953874053898814631156867265879149255723505018515556671052567411913749177092196399667784957770181473762305249177500262755171752007532431639103086373498019958467245607174936085505295727571752033578080624728182319776727739365112180243755596404700452285050191777198837722350358546024121616201005179607571297284624130323527580740681915788419534922482898778786525528572275549252208598579505759214195109084169544170513081704353828007349739467995636343087273917573805547027051576553675740594890387135225140893253917018314087748455369615660659007791519932603321581817964602785652034140038343182506988828445639358875974473699411525343829269377674373635239277152843951181168708889798641200585438033965633162632896146027416212700235576683685340173567265018160148700112512470375139365145943697054561664770666856668517277535358621827104900459255166533849970891316401279776254229275634849601103482116588581066430214239973303982173175443167903722842879661074547198639100329443890848712780374011044810270122610924279500541201291830851799706111308785898528018565230962929965001883336138313071731508874662996311920173308582270100377798915761328543782118833048497080880935324043858113112370461447540038975424158740425434901976793991449832713761283620710846109262515361019635150519881781325057355770212737756854022354200112361759417391672402184711343901119829681545956643247230789416723567840599890474869871346003866497714032321678759739907392884378613852485353535164347641867222669533540166793197694672755160566312434146107442846547317104977015771978104289538724102991398366187492750432646942961121511322523645792076166737510542115655600622032965230911918858513033376178788635310956668378768340561248937935805270009075955927317034568834951611236140927567505413186610393200811703966793025702631240098718800397510712807521481070466816294726906486226118367444024266470442656205000007429956551941323645825369769704138372646602120947626791507214240905697559410169664434072421519287825674653588396897152275207409643995555792553775569457146425671625168879969724908441440045745765386481342953498388368291239282936310793510007751009879062090401622618855877761914375268014620887909570281025266502950279347494723518774243243624259215906458883820729986395636290895108813847192181812638695400577618579378953711795800755978287489228721693136939873634762693338063052801308701748475179668999092320613107886249797008857949208618677279842209619372600415644759618109366055128271296408617952471107032161421040388977701281835450961500551728678604393110278827057320271808954944290618674512568458949320865091014426181418524553474213648502126346634902433937338264678977557062706050044675267278279338772703254618429673266474008138338909657339964316544164387847500041483560968586717806679278325017403287104917320055213909594316656608637141969094081237693805040047771627282614571372351023205829692960358950233915593916235215055927259444740073050442100880184018592064861671542651266093871616946023715413443800806256962449834174852271516926726443132542966570945181110451480532792025518015508964910391268810955115892686865606644815641520954334664703722621942116930461437872603840393928486269056668642065796166642950554288653538562439765479463854128874912643040330255778772707552028213030559610542092942192184686495398100383331268396125186468612008362205937983898129163970140979530820064549958879032472803668182073812637424453191407996605946128955197962765757844322288304656304580665590267173514085326918449476328341629175393040874009955925610767905211046697381065522880045468333539702047761847011469184006104201056610492833737322980276503829174463954467393220712271603848164368272496514016831532815933450107965478736201688519678024885456602925568249750633348420317237198119586466565033636058483253736184857664350017868515872726506985283297999613338101006405254266793894787192379229399118713781210976842602018985106093128102657944677953257433448744870176861361131375604465980691993328791685765228894731263569244402925139102794766212880883126785779910265843556891090373971975672500578680265736343019206800098118799777494471483845184401450777669348476403178546500070300609640269622191063514114967773308339321854327670859881181147631296686816653130116577643716063046186256510868738228577411293072453932257977384294410545918839579239335274575615072283500593866338133137739562096007166458194776936062136130761484650861417733275157195587435474241703917912924102710869546439726063585202766735185113854343277603142044059283649000630073800664509666032401597978330413641774376601443611980791558769788141661799259988561057929797211856665046788619428461858650272991270861669143758266624745856230205305339954376018503229909761759724725247295288922391073423443358302432244647826817212794809954159222197756597318519703887360805552666919827549692967346422059569163749121628030077513897281236617000962254955158153802507611827178828512495879549748675665627921872182505854963247265838658665791194340094670502693411173834410892844956544505464153988265097598420961326376068382058124170762119032749237382626041364950997244934511364566235829523144223936993240404716391714151066044427713070133661557403489540426598591641153281799101138296251579677449631216158322615902332214526957156451297578561033973436181233773919165107661298755501189057610081175179147632832238215538893849659265116568110250347580156601961879364795331810008718086331358240647668894439335372654199209132645519348012132623430788399441549418934533573001228055478360874194930118979681088312256821274791925858754056825309873357938266535239860512868494674670803053349184429174172276337742563883640644141631914886938925825987393275874583459421909673286983498289954612018862396087945769045180644547438289416829521281374646825975821693253674957489050301528990187344647199998785507937222287323602732583164743129115609156213525520932022629894476762477596289522209907312101196477352486384051008547015682218837617680921782160548164623620870805060134153381427267562902907358102003164682648834072127367374275674879066512096701047104231498480199082891334602855350057310842493365870719016264490629227836038835207062623104636639348364039375239043904476871280602859087544437583592028255315834722614104108660936389867837017297683323640955749354540567705772707664353754088023413865145768449234131429169197176782410418680621779577843559897052150935001243879024311983471313572774660185486733186484602174507876132055510633621605573856128422853272706551984555157075157523627696607939677891388919301292960559953483286404828943306606607555597281567378137006009014269201499841077768464858880571718257973958701546511335261914679350244032614846481304693292233749513350027768929467929417089090106278866566631022877420746761538508568473800526084362814790481547292292917920038156868295123748786562218314498640321480871784661661633682876041070918862036228027432969583524611501805455671642016855537896285854071455962808332197778046849541212460029633654138659072176199806131184800862024437413261448825443125409117170355594347300351218298069756844205130988862656200806870033567744318843369836135993540730863812869293201956282523383092275564446492174793520064862155938473402767405883465073802760771048766815292857181348812132873740742873591985215830722424913060397364172194870042205047926437201008640633399253404666250830098681130771185588823474456047895834150667049768994250643979541309999869950724260706302721325071410961398516915767352660567710446192883038284307413320538390625068577435154717534470440303847820108853412743171937285214252184709270039508314238226490449051806718759522584146424503069129481267015722992300837887872457437304662472602470028506837360647043069528869414858942974487912489287041761200894065585174290772174438511920111614734574052286499855944359705833770328058759822986929624011847204285025959625041830720358378792163591113928639475357185279837943991400694467851960080909943497175245804597207340643490466851545006557669729688415652668244053520032577248509795126490362134366173519602971501291636426316706878566844768797780163639933616551578673212540068855549175809001445208683141657785040799313286793824634791237771400079333901226593034815502075465020442760150703402054726558189878247354219154637017670721398555962333480653343087434794325448170534215699595294987164532739850673468433934902361977939132163656237787248377632790666897342153689031072600299365087387880045187446234070736632022276509728454856104014459562613258410191875680440100593101148381214098636591403502859564203584322603966427703450750836873197264278563842607371676599940976980565611585142074544608963243426240214384614071932805242456344755563205503141943490335419006087701536729721610505624843336974042859846855880600987233473047371142206267070481698580453715053370625439453539984031049721068933656323106076099686318107540253290180730410156694008150362478481795287839949780088749747592837012307759006220196191329428546115861385899018456872700033190594913955240437236987247665313749615544663819040499997108194268189575671143561002097377892398980928214895511525062638022314181657440151541905086859883405968150278772557722959007331071034549049863891408484050121119795798348355204096129255598418622726422746404032399634003733231958305197521890537016609877184172461811189024241259823378620098346325145260068807973337410880514073590789022993567000899972396393169927004391486796680652159319954666053567471550933075349165775235183811445912534480212273001961768039975428549458297188488686500841390241221752919182154484048797366932656964166062737022181520691532076722187219262542639278354335004856832506663068369055309493026793031768272510452001525770719206003435759721704057236865304507745208801947982043644942804265325075580559928970083090675174559047855075709932271354142173171410220078514584716362063892638930663886562691327964460920738209427386970766500771276997520253494619230643484293027131942510626585065085646449969809513611853428334201826221747964861730111875120209495344163896269003575310985281393124282900167277778739981224120185981743519546308946134475499360928723179551691549847433052203753132932375784132125094539661308109286183307584067236924733978205583543286514968221858825114679114099242890801470480171041892337605451593592094679905746444940101962285280403859264970674266613394795696627831644969456170822836716600907118910590997107212390582318751079931905623581304276384929460656280841617084191333488029332088899032162401169163899820573950485338677148947705258445903603032295523669440883699254377786737082309610072471515018953120837349069763189634039355946575915727838834542348815042645659140845978004509928667016203536104035393231855942121425483345810669263536225950480976580124700249067064749302100369809589172147436590319979643757433690422880405995666928740551505716793817848707897338597305551635697697818091447617138156207678451417906020192922226812189172114908950644272881580012632638854287001357133311520878574292051565209458633699250203313627766899033770421799729585751199777889156575034771760871633464576528273458143330422858426687200927511017674036040955578539053903980876442169401181600192853074130348490683766918731562833056974033929280117833809032906251110385985525097751217983816131587315962104069342889776828707310522807983380414472158219677847224710877836013104371405519612446543896192922907537987126113765619000166796718759818604008034524982272090653069569341701171929892998232145935863561127480097916407518924001509496316539175246218217169054372992000063377079716707685117606011951097943428779482972813467472861921616989797505983399409358932172695317845746223662208797672032091260648566351269630143323611366514467443272825066860473435588333519689057260479922463643929968358311104646273845906298078114703636223816553079974426121611621721515779994315090782581577487352837229267741924191923484540773607319709903281286396029710690930315005616378932956093942136865151707642556348549781133391259230507113249010165666086388320426271683418742187149410493249704466945090773149539634924659943513445894742916849113879566983286100578106547565803092723960987389801170950171236613260578473663519439277547866511157267698574620493225924608536316666673746679109424702649640689435121967948585183768548719686809332373425287954311062356479427061270815055264993311637319627025050616986793150168933955875916516903143996816519398707921475151579241053352559251800496773165787089240966986503143320025658849898706849950388659552898089309249892489818238386773014741143941944854488581680797785546442878501234859826036217191698620135558278180257728633634929309325568030370840138056240919576890540939129326304942380141366150766304994956028209672027532193203006424346817234729793812301141334286346164435123403809486870233432542442184341063026522537198279281461354067761658596962162149577755377493637963864829510264946394125719464510266698621830737880450807737401154573752327089539819030547851818764142974027770243538055555371734772216284816632160346226137190291023664731432342592128009469897066003747923455695950681730935422640196149643101568431188798144203379663061864738474619921747621239859215231051338174028806627861151918055618730884679705573735453171171905537752545787934837433766454626068348657648239252715175281635732435157789817469958210122933782905093212870167303315904615075329629051932829564710557392856123067856004422338977902656242858868019302435978574620542559475616340538766050703861022533702490921462829898809383932622361847986248063764369664019895425931076280833148227941443110262840792312846180724039268646376251582954931072333859111438046184196669874956550701632613907880712494417826586962626854812954785199099639053815355403652811281286644347026938022366203909358278516534642461843113949815597533535755733356359585388978518290197771735267232386234316443131941343743419131927765347834461490694249813880396353601824053843236471460926057958373242306046745232899411888434560899135429215143602658919164045534013217113495260127548098371755550375410484932881315979846214572237868528855930004371708996965805771796733756132813475915961301375582758899167855581231879043307731377798487285712830443548755676704461931781406816843332960577828535927189140193395937488456687087921544852006365967393475673912576000042996023711772579715529681135436218667187683248635317239464432412725057299603689355511511166922057474873795552468104888985301872894819684288574013941058304171094746201079838900319643845397595672545172287494276982028906391241803703243552543986325489416646911932697285164051902466848238604282407742210804165581286929677891272308226494914921051222631190793300965685260446562366245167073019248862290279620581409187440443209101873926318252129811449527778849846029718177246866669468325188108070647099984437750489186473919526052836846873906258549124035613489368024025421765617682968378558897630512704946659834731835017613907587945288159906104502079789292739857859548942789946746873129121092809773129611106201919750262051432610591191550106102933533798404570085154606280969499742391538507373704665376889371178919796276856619836729954087686961254663412437349550517258177326476272318939155590444163854789178961605090232307412817434579487590190537318083014185008893676708718882665413349000606363746932796767102327018675196435190135174833526073880287149601891654241223383458847180177686648216895181601243518634191154609080179698765309987296641593769337916280527813623846117083552127467947826209240066055634479604401089699713322063079868928540787171814752218632497177134263375619973698537665093623007667276645663408894653225490142157732879820358358188442868188074390091978475951354730418530720048724199183295525470710997376916809151824145920585952342674242597144888070255507106984018606410771514834716939763178321099989699381525562901068032864296304693710734336897819655109683057937132276338599991944474685747333670606599019998993366296352550595318903321761000531970137928287562536439110803363283896894220882291748268172783464640294151608868760466946836425986705558430406315455658996615453259756622134012766362946715079585448510545143390467287496271750351416112330943245459127420916477939445758573380517101167352653845253989392905383894086548336703165491237119302005837598087251324614710961680971241928450140240444724058790581273409690223736295116648479135914344706581874685206911960599120311667173411374553569195834853627762156837843575930284784058551340513579090391733504750286062837067590539572192124980275340103176567669386069701875796566162733248175959260826853279772037853985597758289660581318750526887809984328188525817266737602375306398323415010007774693622355679886368461637052484686976678924710027852390522384473943971823932211127935700302941780496074599872646657747464068744467072889760786656955879532815673137146532697323615213215293773074696196150814959069147063190311812254804336908743526187987050089408434372619300874234106221443516900268359423714533020905082919588928978539147374232798274953553098360187083075162079216863093893257180414820237815066711296680895841724164507502737003811771978548059067336552555675487788687395334530825605722021864481177258448657200743072852725391877012961756736615273672048343285462659542416319214388863842921418163333632700294922467815051076220431221140984548375987489298017062580607660706072368547378421604246850708958377442915321415636392670835254632898696133734657312078171761457527955803807708202912104890728232722565358832050035565756339717527617084266195415847822703401959243760210611672265094975564262474344760116769486461852365411449630042303963908326788986435238236842311331890719226026039164886826884099440046375052653044070343391868872327079940408247230868533078662282575782709366815985646093958347331084369392014195056585897060568816919951769567702307135502223516531673640900264343504575247495291543122480498712981904508830574804222563248275635472010013307111500905992173297507877618128630600945912183206221588581936023281434539343613228739690428143380489868398450565239315902453521411487566718125218860342507627883162758088548473894454744246250868598144473907739429667071776689417381380930648887532158899830231511455094122532963530374419278910770129482223543283831870354867498367768359197458403823895961790408313267063319833289801005736704988110202977597059016662929870476772206372902158005803323495543591599389958509162811150491054460955419932508173431522881673423883219858730741326620293515409911966630710305699874774465551207552169289627120500758813508192063603810949495594978329542408845481867440724076214411847996698474760439721006829644870710131249731838866887241587901775834296379860469864227842539561843652804606543119130962257954007213989115452671149758127618252096930533318141686691262587322586713866685344807169016699098419569073126892533257040882685804679363997043685112776386692604688151227455058685094037840829576769829387934552123112818006564878886436613721189338126590301217648394804869041457522976058912656379201130932704503467900609924617380932189664567110229779238197190953379517152102628890001162118123960956493497905658436251297291814202433687825542441917204644627002371514285078984382367548401759734051321118978538182601930489352669531417597964657392547600953747875771853750574762050515682469207028495353188488278591013507302420459430837306333213524011112191822461503154243038348894829074620879070194894856161423754172781933948919951935358485384555745241449818725986351801306944221039754109170597375846809048599765947927187105594527203088603848536767702614856965352337926394101962522821878906529227668979741003603599403556242959865141323195813531146206994359707292713882524884442232728376884254972911101337747660699299606542519284205714417663766985359153125117435350344645522533816838364692867327146935492851773663844459454886869689682322722921468669515103241132260132417877292826092347351044751847483614279744136546155447884042946423831151381157134754118291911359018854987900823541314886944081074697462219253803039796161229025410483836248101049860274718675258800774683047396645643861410650911756130270864106386136928956432293280536155278066402894909375423712771956936551692625562308446862027571073952352920924041647192319746081026494581458054928687106865060736539438179703770048239569126548318838766093784848717780428151071975050092923380198446305610429729611356744665926758250327167120429007601210642553508451225529738191820504361596695358909871618518234731443754737087079986073929823089109649691571753470002501739321247597949267077936594362236524628751375401869265838536953065462803833161863469149073561055471050403328666940282499116886674714347196617390628662354318431649871266149567537244853204624128417959715785311179009094570406798881761255399714571450661551860433838831679499886357398244488421465417077444918880727335690431997269910918578380091161245653785534279698820592545239744241276378560298794241465689396099151608450265217169159373451590066344385049350879805932722138461449608720315667555099605764239285388596292455534577394759928198071334512155365311813707599367809937487963903271924972904224173169785935905457572374403569709962832646856855264159342475730720943016022167841221696659702132933291282470406765585664776931378204591330082087313761867256866525778038179206322679892460059782527680269513463809547577847801851790045262263042390507968459075449943439429622781007835166050890009164262801752950477292162403200085144789750627441518513828787057431215218120467336597026205084945794144021607052042649192365578879437417590447453735658829970878928032924804845239043102793841214936778369314748826671444597623051629059492112528284184282169932533723046388760581437349937584498127677876405184596355790644131166578209507818594836974095044133231193879179377492729350133518169433543265986924568702811568671525055880846616150583817372492283118135241901230754889700633445848894699167265800553350952753112351194333704959290468027992063042533558524628357766776063463229326407246505207914630844337506125597565006188787054436230954862640854635871942100163372555305726643114932879573469316661654241551727994204574384790910146353032481733426075686256587696388975572755375413670492115248282169537746256017251460571053967597016232134140330215564932450827594796710741156930837956454832028911060878504266185105655049960324449169064517838803881883714710269973800855334946789461193924859846614793202577327265811971813938532588289129419110583681288930604158093171512100681678782017895002511962664419568243462267927586313681730316954909166749241307181389111070418037861427400015882234935240312772401360033624960811415452577419627545381337651253273043415243231998339545975176973676509618555042048224660587376740735364656119426544466858385092734367048941505755635270557863465682967179414472287281117405924417803431376751901670577108387141874048377626012222158472911773100511297361738812517051099113880070236348853081611384578719837824341738928379175940978016819313467211103440360239598672344797961745846150113157237231664412659553582986779774942030502321011052675112178121369261762306747268200432227261308433313239051547011374065076513989247118393677394874437965131901287969970849021181687925900635790751089815026564698105585713795529896791321605434779639477094972550721376916411882325537034254766215107499754978887399644507902067623894007756078553728340467930978718349267357868937143511715928572228989397110656520680469348679434368525576788871353784804295331406960128742425806595376806154866301956162897389748322606293723152514891593617465273203353912118502847581513972542439204010800357064295151003148286192868139284845112160107037531900179085477318007431977131703567555744365100179909455828695142573036178686205220188745440259891971623914090612096435619109540808953299052128584334606594938956045460040559456935874166578448480885126100191129100604902794671741332671835456007520942471606562298182351003907159549093887890908651944895328602483126716121681127542509323250004262418487458737312358437045498728451142614477632351559437339206561908522356045365117965866781371413930195237454166339072938636220339276995304375577856617799048317600081945554654994069856502915205362704511573818961017330938741288224312166983184337880223179204330774257466646288777026285100370552316304639295968144860732516265096430332543074511158056097125070168936571842357651017450655735775010440059954074083649302245061166398679911493311348175381291532705577550981849476100276812400805157030728406796444662978160573714584133116511451455993995013409940664228575795343266321780120638487433773209129320189519341973394672198211139347388739199661224072712718333317227116037542809624982441149285494113756699338907204500823349867704658172624261406226202211560334771242073769499038196117907679214289486851670572255739423478110915599011541177179938294106259445692484227145934338336967897817561610883494745818078609603937172201979951831862530651490463227565101621216593291184482051355993410647460794283559326968184133688103987589528637247505737857355728221919277244866103777482147205148997321809049955158830080854905172786110274590686803870012439635380319973073600529791643026365616869366282442921014591572507948567618967817009064297909142191460465457559663318595655262606351566839696493215674686975673201950547461274677687990421385611259420290606692830020520763763882404907285659281816300759829012522928886747073515543191213141965804463980420802749209206282573159475119789763842528914192203278164227680417478878247683005681987871340853916573807307288581844130121923189046171068108843518735730519724180800375732523534150312700775672054675690124032031773717457943994754204145317136798860181357484029481822046851751455958573489390507209645186938181084330559872607692202497954748985319763899570788364788378710546188231775030020314653243358464246614448164574655964768550201331483236364590216790706849778901819781315071392556289515699784800368793662218450471267896060885139780283949121828376299840727782129635264122544842696729010433896731618963730823862387571073329721715444140444475611525810150431050416768916666121962945381006210323084336610104226317381667123868473156987749306714316763666722462198165962014118176485274173138157940992138755429762509350921733004660423974027915656634279737345174389647618193085541939562440476710544246901221443834850485524252804656704846688777742061396161261384859850218714130911598249769685767594427920229438778290943396106972641341824120044757664709486170211717233545294895449725852594436200538337047035734063649716194804079375163414485480153788745268867793875587891786237264139028601356508368042437752657151944679953969780487809434670544651167545234115084011117961125322238421826556176246249180194833021806645958233666601729023069193792336835769833421878091334506374239882947853855294374877772171359428447072059419838051177768808296016249767257265033313235617110105494003764685950649643298832112595717896372064175202802415134570130747849714328412650305544198296092606096537100822845316132143007419048684114812403882956428904998202370237015559963568019175493237023963977432492982103653347740272241651174488100752388901144783352376361614521673790898042348464567510936595176179684444083999689710597582938515345936487839046437135731835610829648609326457962076401655113082232305420093908104618810064709148427247175248760053018115555691911390814298014002446766041784542535302610708606174666727452932117742090727997414181591757392036027778958282798990976402713979744267674331298033689320907293597425199913547403411481346511511015551962178113033970932227462434944795304439014642174541159056661376153945120137909008289377414466341723546140062116553827514621811222118802049116076412873341511089881397695788604210035584231313282800104610327143014909575971877031308364651314912879471769503938571404246872377211951407342720857889124834787410416447045976526264187164600941466989680973393146645346193168098503442361644105037615688137175846991018467407337046293428706789499691523803153394293435037558445685953725281972678846920322154406113543001828195291419460542419873492018061731659903694692638154025822853775138197208588184406122120160516086865721852591708268571575001782585972269713090447438648342245052359664943835888380593043489665102363713915740279359163356507414252272153320841230808911153124133902079687214757753148206876873456616741964233435666166138789281554124220656158470767549687756394881607363817448786208759367371679963204056582492707027256298842121195195432962889870970197791504574781805322956186749309658467100647579155460467048993463101234355726828119747337036183978164180902076956074385308156903793620741092509165963151456657790816499212192296609892713166367217202929469806052562320128150928201386806129796782777083609332454777767716934717693268571163039110738452313295607149045376632043202540575616152586033227371547889691808668940493358950684948052326110558587906602015450615246970561030928796093470251883186267721503223970508066699737841681308599494558250197879831339845614828727913668650256152566703002767913750863114604897630789147307976437515688544422850220765580467928061386375378171993689242429855021787303369294226106960973162221701614501549177932238188531938126104722079829694312995940711183013522440463018722772562666836302541497535979795073273975286535977303797085758065874129326753031860317112740002513988810335543845963671329394276608904782641445271445677370585235677332698618666498595773733756574614577350724883310280254767415081982596875203150011280579412917701057220380624261025996327557209766506879510790873315128838052260981329266883887499725397923067230527812485687863643736923965327277466457807927890610022458736705893633769827869854409390144998224248379020124022194565078805604518551922054547191294464291411042985772861286302897062712668866605219401631056467166616129487187607038237453705551279862966615311840482416822729585082820451556606870569265424964849309527600656422249046630875634938381679017582383871486131193099864559785928856629068148840228995846512959421607757197198415389118072170394176040812042592059307660301682614165853870142930136932376574410653610822207149008244266085520984238377468339382966575338241398845556534664033130543488438127084267985679513675755440272648779628863566831353361241340387168473632193923269161393623923277501590171151702487401220164240700645007162657269726644153163030405397059710920367559937565293698009937890397404026032792358322838219090162023881581708966841865464794418406451529800775515638006713029577717145880626968801573581268863619431858498315720120972077678731576003233795237576944807244506513791734245986572242997580596098560823184882114935663289081641167586587367770729320662737216520014308703390061947584627043291786341032118418687593284339899179462401455000604112088584980879427164835903572694057701943567001809320881977921947888421665608496314832153304492023382146606865749577994595354550794106448909251326819868666586925045650169211965588800217179753155923665466487343969336321581634386995757002130253260754250449162769065606691457045387692108213184017115775407154598582240274545392661950965305786491162163598792764713778861616942630878569300337379343134416157389068558354469303318321732149576709431042943413392609142388780665476010776981039721226073997290061556661032860836545286206255317786499531004681019909015306054626035096075600649376407184577056577461804848766743601436674668380052600071365455966023913695149219245533829102852138188332688222774742017623715400892014404363188397521572515577451947204865091818123067353393351955963950460952009073857549188187145697460853686378845534370592992958325549399201598922062167915806518874727595380858100316819733513837926987938368659220598164905005800995293925860772877402891704642959843609747304645498991689696663435977998922693718253383873041327566697315715863605926020030903197079719382470524858374409209617320846092371497927819805952199990039704938220345265729088253487439502071633198140902515174953014308386484981304759679382610019951614869716374818092655410910213052852993362310967343173867902272866831196225312983899149399572570166883428587447743606119969494529777922720766311779815029699370839372357311583876458922250448148122073158766121576252729232022017480415380626273137956289332551006585308043681610253483983221119754690375692550342997388743404523748628053846480558067102463906215506985572928312920992102440859223671964134913223208599070949804728040997884271869221171679856628898366362524080887018777891836228905063207310726361431584801472400547480151161031976809037604284842872448105325271494561653578832793640564419203552635783868888689169446356312542474877644940837590068694745049968352925195430379475185337517211475573760889000164971614625045473649156369742234679957769348447666732387204979685626766537061923589203733373135784311301340935301128962349134182455369649365155824891776354209846521582826173486226015698945129837174643036242595580313579384838176935140199464754587541905934623343112087198773898017637299659489362981148854481881667705979820818726386500392608046295218660961726879227462009396667415653112142974740421506663126341180839441819620183339891768468754463402262452555254412081982080802792690049075990786402765640059873256443644966406634838511628527649208615648205331681790060034711808840660009514965309315160479366642168844741268244776864402461156089367106645225446079944067965028146657302546993043192806651628379662058673880926041132260569343767429184699832955115633121677950600377543321727352643990599245025917679352361079112891717841316709075292434030047595545552846267676875309129431028653270744347078988671177321394475841464941429827193742522487770643622097066059055327198963149611740579347331229679209692777278543322532993706664387971018575035413111630859387740386479671278693104367136205119956557820291124101431209621137611229431724920742350407622384648233543783287755071530976846984393542205861020730580918229221001777302661271055049310340527971785717675920675156983413393145647001172974491716364011111833800746538306206006796310281282180581139231278435472800183987534905774488568693176389906263431443292482571325692795102244134200104980253066543659497512181989809817545239579324730186801233980782521305467156227593664850867574663297633631913860077633603118198426638266500032541650826426418106528283071348763848943693600197714585333961834586228795350731233047242234463433659730189040421686988343153206817367426034767571907618237176771516370663846120206309241938586442207826254094768500084730954295744143903859918169595246922032606898850179723167869514871829753916430637165404872866700911146022188176905008227875253993848247167138658677624945430947962304984121108842546755059151282221918947928768702201360423786833442455979991114087161838999137801917347553490034657441032662435672188264364226899100094902278382973570864331846529700949691844030560051449837526226874178440695158621106733390754458717646017242270620284280323098913932897052189246460406940662650072551073233538183556235910717512586627488123544678904549525611520877259383515465817733747961834901507728618136833975316837548219676801414892825556991361296252460656339004337782045748043349006321254266902651919991257542118924347874954076652756467637724840754155080319953021124825942022653024633870745524433733219654065984685307595557512986679318550563103493490055766815309209243839748821694950409918671525444251288839702225152317542765721161318895119079274672793968665780955397764533172259576289431575966779930072464264693612411530462187886267893643303900972886488627873731681595924367235688410699326554791932188685666579381846541981313817185587171320123536989845361072737262458662513332467454052172406964643696593774131803821512750624775464764426226141082498499002455776881235054422723638011358777292134648906456057206478718403344428355271668610337271866886980423872898086618665857081224993845538376487037007335502827734582358258267657287859260694276548390429631434863722511292447072294884455549497120824057040311008283393465432272437149680901518712002468532720400568045568704933209626448116250080889152761008780976212397476886908861109762748752424821755279618601648927861478689350910456910021228105004252308843347960093424368004714047303178063055947252484067266430486537380785565667017528583358099129827916621278955498052442619582378156913678756721905475990782460965073209455135546713115019338452123416332912669383779386248721235901633864229990054292295265390722591686704474157712586677612484050782700821606671181922081900070318179234736567062933509744445368921182538622866973599368914280084721332642405757254832420084344955790815536702455053134874621181195769672480434911567702839556605130189766261771093582236781910281156482207596492119182738462466161379114942532118971318847005068329167822508270040317686078483418986384563906913160238473127477154620269054739733999038347580740916830764657974007195425738794232785139387143986766610512288499587378118905109415283656642670661079555533388588704690186361094018932544921188614064644845450179029807484207090998593906851261438158927761258069982827985444325913293474194331846113082674753173738120025710039782343852368772094259865247259156479668501348146169397432917863409005026795808535842745507847309026335735457808269218320203072976324944093993227903412957887807332210221781507104042722346530867020965579515102475715686437235551380053896268733730936406388904312734415031889896795722237176263170806357798214834746247858659293159573491511366397426304061471402405697347227308524495102958101456329845313526326405882283255054904758157311507674963862432410505594572169828392686576011908649608067693798509067771283645345832098118432918301727305840332973195570023282828248549568339958138228953287612068671625051472504883844153961176029094611801854620283594876211116796109001393944202586963974676614667797102394765620436953154367778129929936774300727383860456975857897665654607329020718097781611067361807983166025225692668853537025937537697269856772345004403345368521689136523574010287809945530725307169994840516124533416942407974344578040931446001567953345494669592722705144649821704598424708819429245150351021885566685037071798675980182354714972265139254088821432803265132715155993751394219470556948363595017939954275165127331816967080265011261480429327531524063933603245845132322095044506298983102032729441336429848960510368775860947260013932072690949888411789196852631053055962929106008122332433678049084866682509654657574689561651215435550511534723447194682442132293340598479981785184476798836071587818835513592649590775475246572098785312041322603781011220617238277953109941038965113433205820613721614841190758849059282129735271360468891493617616558866283731717706025152852645681977952579712331978180756122126084618423061739755748855070144321845356979081582090191490190494308983343107025781086713301348971615397089185084937620418237358782905974027341860953178432831744170874693948662320120207085289899290537170610782197270976140327075643109735505226705602855815405150146852964105743177679891199644170245262329471353157948762881045354241918039394378742125273580359642865117941065188096337388644742666252233362973994048112845059643104095732242760503197895542410699196726731181802485832157567194480490570401502631672385140299181830088114512122825202871917301556937929790173936440734655661243874904471771063843654963903367539417680419574875960042359202423559396950174266443324863293159571180178180809140086726145566257989779642040352941078632718301774653887474868159503802980656624484400087858250597120956456483848666427388735560761851496582099344409935496718440439373186630643315429225569122952676537607436146866890449798569910275104689644692883485097173499155606182609268648707825315476968319942448458436364076527914498163221400788639182315386069920536981785188952275248394439373153085643730284390873343893679356840795728470681150509992559911969892827875396602269465226286091638917123467025964840671811266117307291388378053534421718430886116137655574230689647496062060688134819277230232092762650915462195551711824683389296586326567310098016115675935640519733670901617004303225059842805683276063178969238968843885615745847215391033707019225947349729781514363038723670558890686303079743087248126011091280449437995012153112813976417471391594698289020422834584496116030637576457636024389601368616713314960594453110910445936506098161807763780097580598851924015992323336233804357736461068598568526275942658025542627190816209389862280406015835404007678700251163438379377352882703168270354428560120741489318253508666336170741274082628787972937319693190912481528647894966568951527964315972839283075759481478870409357298794439580123096618391689289074829670528706642507630040017478588970277117705469169999152850034663248248110202060837834509113787511198711953701725956408211345622539706073874298302342540533985538577286933480603338866427241710360494827134562112162351738102010784342960595058525261677604456703486630866667217344149290384879502881744576477237026965430871321437336932889857300506128599124448011827849838120642804209679817404297152021421141896037269049396932957916484937311496646023520852230615912783171049988081442348233409769054014957711058108723852450665490148533228334625557362380713941000514228978925953922471585533934545249814916477862939201119723307033898977830495014171755897931601888637625708847754670969130549926912748403619860086925101325972446341915643044581276335408043093158095681294435600515059570485582411836525689439096551008316889196457933436559232097133630364896665178295346672403056085227458831132506551779522999713307115557722234334871763575462893857235053621259451309942168621519685501656734106944644874627722217609665583680516346817411286724186252054163847378350158912243112824107744355588682222979591307178487439187574850724227142315631942735429994761429327756391185337733895146118237287367102157402493747796414721284730926440738608077238312719800625506337426026844984576357752904967424674952514198667457898536483090509512732640636967347587682328469111574034468245765580679129529379643832555179229387235493288666516275688362411229508554611963877989867847390326421862001122354503269831984255880466837593674091696257511032743557587108766334176061767685471319867667636394684719391412722058749438300902774905294160706278764008025286196044341996455185503176269855293624953821857448267797208960278252947503569830667805912296842188952801962498591366922961763962177309191102232907589941765359936968381914461014443058059029033879438904088497498856986883927857965558418056413702462551892326848989102353700065297403117255229499509460339987332712843572151301099168403163708421824114028691706051275255787765851841064196406462876828428976466118542313701254266132211029357208144174009105395046363442578931790202520625382317526720886863887946429103084789789000504420077442950103376979496841494863900833999659788533845694087841089333688675755668292404957854666793774045439682120060552134886127710161759374414975601903011360996454919052763658139188551580077814851663875164580139708702639521218390905094454184876032375679141012660852734238141681661565765556546079575030248418349774478415567082437199934408217939192502741942070039982953026731729495414510359475159195206443171855041481783395153197192947108550811390306570284034285609742147244075467781514893957842254150830610231228737902804257806952789187743029470535825981249597459690292684539588888091253050898342427615698577280938411615870891926631965346676934011028028455670787369691492969182887411618336377364887193307009125885068619678435828216609037364193992962710129269562567417586544230289792512999372803039820501115797557197935411834133897738186114920308327423303519444275387349512511083710173935763033895513114269189535071628946146205598180518050882346733421090576979943772237127942487139025614590157476096198025785499167715917230079481980887100867632757636936051177407367400010002116372862671985261862180097226066619342700171313609913781866515288545889387689229821767874334766535044054224635162482588453578644961589423002312813117016194850417766583849996398078617421328738631346675945615774742490920087450903244033593775044083479420648618628230709911161776353490463481377622464210413974243986631036186780940701937407392630206202989413996788037484067504818909674619300173449011871658070188064848372506154414720925711463147894469750722306475276371791220829737017586450677169256294619750180229824892295404564218815462925363420370085284095719591524297610473284454558525929681152757808413142834362348531368475416641030681431874620956147631260765623610304122108790523781934623675454990478443816978287190454967513462251524224970828853494678108902121164412079575067160103404638253801787112366721259714622048026173995345533258277320613160784337963901201641716847957438747458672621511849847518299189693531695622575188458411551681214820191908496709325353709778651203104833993006399757511426001681083326261535386999808537245432352413933342661308056355695177662579516112932563329512566769420301738691057181414228125511414287057818071276349152971160748134880922429162984233899792274473983593502537809875954371045845741514838117841252928905433789903757136252358477591508351115422752196312850603034927226711616886647834420282718816343717585968710427184958028625193469110903462825124029354234655936584211106308626539997792465663731993223940996727298770519690530443451168250253141666223480655872635667372152767869593153685486234969826418820978254352204861514635467330815466700276812077354976900778982560660546739729603557082482163233108688980346158697220418319330172464108600836911185299733325510409397546714033860371951172876876641617318155252145547558553473469950183311743259562207194453172394454468592302250397060864139133211681179316942255110706259250663068680868767863359254588413037353039007181889277727867437072988083823090092651278827100890056072818449060751489725653268891143760407289107067269666556869139560400112997226696236850351950046644861207677270547819976039561709358397421062524450755446545409667461382347706823860741967170691988464423335398256786344808016852024330322564346162991381764888674261372449815374046697119880921608254713925535548537365065768841777997168469261200805781937869493793956732869063637024014110736084730402066162025639430550485684263375833002109620647183366285138432245090381097446034653667292266783743533030058523256152597988555596353525707218682182256208722837423057793794516286340410465793364725103238230531064442464290076455222721510088110645978620773977882593769548380678495860378699098003392818925572294277046530277557144399912739120917764292051812261794402607354449363662273890700033398788874715272470493619941199391157987119580441924963257165628205951339966082465158345411268766602321556745730480083407867121656339330789551192212001257130807598799697301765445265091412749822094653890394744201626088848982193017151851147506240168848972248470293959099171743634122698258939234232393438310491408122520650270396806090287255223291107047396773332640174456836428326907231287029524132834592949139293703314682443373145823857169663198409371940709265509957563776375290268328536128143546056063905668848655004731530683892046625260889330651949645246355323487131180563190672801699637933808897763215849519065169400151201505690987135280245582010652968943464773785977589160876787463558845599210733806076677769344601954973196682368464103155132521906090556633031974685301969858971997913748007488526102310444091458298360637977993226169428073340575493645838152047820955232791196406013841360455109408150300443801098296144519876879315815608672588070284185709853992403597244700289172156452272845740649812348891345403766580646518019234907159736667442520892675236041949797521709382732233500277467789548362895985952729314470298180698532742973590253069525118305593749775428381965905356441056987965175685341308941320619490707053500172220855717633843137282957345470271926515084613955847244317016700638782371311608717090007705689705557187425547490359719215142221476905492547601306598226026039962178421459450217431628374992719977999142012259794905922503691199095647633753511550372512095034163394626502523149436023666054047735821167858966426201200732419255601906362074159963980983700699443782887506059648232480786981550978723015965808131760502933827234330623483813621009208615301274721839559630619711302757869896716377676047141783261267630354488397693281663437772984126384892698793623257069008262267987300070862179655291938782991609103476346636500371116574508934543924698526730246534808244758502347893009322212572223444719008514056778850961081295985872375434263014605745138909528652814823420726685037881079901598156667937113336622839291622007750373791854850242094206695277408103928358861247048188007711102978642794410576112748878452004808758737820457072561876952189386702090864326083466874813874496816765328729348110009372958429199708915331466713554337102890519432028067970171567920623097451529466724163359053553026298318927297865561143402740152412248402291003029994622739278223797156939916164386285309369395736313973718225651503023091020653379230084202861013486615628128835684565287406266301211093990900085836909519434171701008277158475670400214445650222266076669648834306787379336489894650088707294602372964235100346321814361135554630087854249883635608043545337408116897299045765317528848932353324255612438710176346596973633368581668028180450798484328022356127131010635194733983691333596702145153065536410187727887794008141919596887620310919257093107585027606157380696644178260374330548976262647625699458552900977304692219939474697950559080123416623186904161766121945268760987667287220405927203868643625547210293304487325541365298213541527949484617895749718301332286317079109216631630538026300437181744496649894262821077273298944755509020272682573714672162946774886829772849220547083398593770366671195441906818197695186505631206705676065982529364981328928291933421333472609085968579463158578908492311122225691000063557426218136748165594111699740169373870588445478255665471900236565072539428306307187419382003130956711577243845602625887356016769111116085288779783784303466963434428327045118147286634860094418256566436037000092704481576524954076668808261132253057158899284158870920500813484191136555679473459861626301282411233504323929377652492025029639784447441461072762326379814598219859730241719947793984349167371542801801112395504461378809241063643771028746873630152871919976214319254125562731264606462822608347513606677960893727397806554519884751395782156137827418580421122284494783345998793511651357381606964095199107084348945295157753775302635101477429431880418276411786051121626600752839531056472283380603706119140409527464580870984278875529672578210298036543729941974054918340704805423843897982898643683942588911493354032583138431153726908775142483303109924837865900161941796306478926092842299468107199783337048407926699874228351673366033855714671910850913458088701745902820750043133444197584920445408494899284667952099803546617552346361308401998487204685294060338438801695138657521065514227381465956097679083977204016366640675377871762000143709769847504902880463548623142745935150597695697373074665967484830879831065961084994843434867937176679765576466037681289447638766344757509781766529986218025701127413703573178824850786122094227710290288859643450400071290743765285638870208677906969405087955426222930848497342986183742266649993865421499487425269409621018830854614240562056537924771489996984034887503205286775277355764918889814857005670910703970839159811336869600554142097046160982404335781728201551205584986146622579092197652987189551791677863000287403676334609014725208398832178786293120908950675237194362862452424721772139819460302489017936687637237888887049441971548783008750130264815189407043847053857872069524827809713923880695185709630199538026546512305458444324025149709607703677909774662212830057144732109041720940096464304421210377995120467713090329400433224670901769281676224291219632425496064256494906942983815435979277008861761286492057735466532387315000421534857888548907532197312652603058940999780667291334378681687596552901732306538917301750645802484706186176561063569372231964861218486490950365899920951121653229811223023651018521431439382638960704365027031820521255997710523778481198509393188633383179154587334507535311873539787081437671357897570680939214397971564405852659395244713231306933836699021596516790181522304879601469806762221736943040912765348256875990691491686940882821525365387811424211691030020744252522387779867945269504775268119060640269363365950621203840557209307944439434279750212597552075747661126448417807123708457121821926703045580078884893905470605238391039715095003255291719305439521979366493442737822540296975381466333001718740829619797234004087481708854350317090815525177489866518026591154853501299212294765924093681199966866338498419604435356521649511274163926777143776629456370505306859992495167279933564319873784995187371095865123437336221427890385261111700913655159004793255131181849923904362393284335729463716813834741609851036723694253865712002556939820572050923765540536511736261637879579176659123041668856462845435053295020678542715514927932208001080427003642394982248493438181636365718467738653491827838705471555859950789482281639642055760083783225437883547653435315565638862542558407597985738439305472928248696724690762432795874367887682530712049294581911390387801766343349676182507055073111826248271907545109823633480431379732321585912253754704140582173390400596546059635758048963619220664606287586540400708625575584536026471843595113556444780868109381978848647562964576410126811983108702954889069361930040317217419983067863492331646000348796282726450867864698673823691627713821443451993802237590457094791882515479710217422309856331462404691473402011261657872552298715903325700633733796796811706304685300023359005665545292098613559897248978540232266111322560786078443741872171709496708614249044780241703933390956963471337202889565867846442884113513177825154768823416957777956346016034229762745346984053580686897075956727657256047162661516519978019632471716170304529229866893075636576438102333021775677774017351489977583624803331580208142363708460898245398881895455876476056072334444446489276372663339686736931205079918836199990856513170379768675322810668649429240775901480064777235925459613770386615819611976540423261925044784690953497183986822433779092898802661358282678500370191243931011264885400633050863507698408535652707424138425768655905601713316278055534261513635234024878216714625559177617154347570577514258666966551143365021995066633006281907924582710341623781155627631325897652414127534449995981503130261489016420091018855844517706474893648130454631919064126217422304037675815259407262699316276165312163545828297128743304607196584409923397776987357847120716595083283613315043717064172431356028091060842555741650190383451857197072500185941142761476639619395644111622469849761313792580956679459247027533544490175702633452203216567913817205784242205367300704540174337844127355485606372827612881164804229841774143899155588039380342231558916831389310615175420060577280565309457500069061163846129541153406663821003067798797678578926562642084483949998175871375778062490778755527516636351752748218962487918532339957632664437360243403870422673161137795325553529082953607033533694820955428746179288887677718873451115865993871015945001191410907438921724397212662676202613024249157857942775537301241984106402798782810008114477079375254551944792692055634067353639402841001251640870647709570223061901219079556321558435908582744971082601316442684422025570931778873452218896786617235442751022910392057733577921244709419871473106571040468671947579572818517443725879320801909074382592234093930809451359326761034627008391988694878528719332112162574072406854909427773547051503388653540209788188209298831355624493003904738545592828070814604514955421208693222166335306174018886566275014327821352215755764971523239275390558995949227065181336221239774603045375283368144945788798374907799976002378427496950792996805900671576798577781895517355915373203504160343396401992771501157669543322772606541678649601879162555678724186514366019941489319758604072602307851768589051871109406004069833626532997131622034638560140178855813529105750954022458967294150445322078452059767620339464398708820321736767725727949298706318134974809994768596799737896254431331505477138017722814383044222326548931235462859899531895352600021984761241497663646180194657186708906282093046650415404484397094192917678010034364315747314387211954460337588716467065976952463605297144348631565474526570784643808183491420761493323161120172202975953372098790016647054531188132208702697423295622647628737823697420927616235469080046031189998524775549058099129115525802657356043005470025644878759792539853724891238064768795428374056873377739380810389205946820061570288015114533407244275273851549158932988210914387820543287645305194874131461077783669263749514513378823198304392570102843072741877201503683381310061500040142557210194402269822008035407102086031686856706524163809763827221790585171590629676962413817499764283867261458889485397352965815814207043130339421969057113238293372203166141259460326186832064834181446354018613891325518276568670754822333065671014099900382687852692894397100528078255444535618361734486692715677488060940987324984818604797495912345619008973101340104003957301676374513902905884131549012926425657864552041978113552923199896810447332585102322406166646037839529600357155545435142122097520525055425772319358813647866655426629050705363362816833408529603997788265888789852986022224924246116451173277905735162715364171491160797870727038593222806624568003647450991120694352079327889349508273830290288246151230758133575321217916705132767027473793866193205661868170202942936684185390390259485706294776944118588231926889755711760540829758958962898324210745709926014916087193785126677532404666818356988720244051895813274386564671427530082470569075007003565818683022454290712823589829390709934872563490829736920995319061401618940873192954996984573550220073770987340137404282925763942840688446851054562458264444304808112283805621169433066963143951795142099729612864893842098730988025614852191730301356876628184212536715668426375143552563862569709730374906573433364022129976468242625097294386163282254234058446191368736884368596498240782052175844750758267547617333489114283625916213506799953187748448568352298630306806834497561122907871323526163555488937631543486904988259778090509382514940408982228356831945455189207366259168646047752354911130132152669141388185560734820382829473177687458461845294668640504537815151699390647904583548239435721139358455810093272394533284030479480067943179783738391265959145744239571407433074610206751845684169037100995078373932611134711552346747367308023385951380737156064832609671524332341467400972572038659727078660597360238463463902810983381554403223931347856059590741199533214449282823051828605298280521006922932867511305630009132957160751704230573506337782571534782271879294513133523459830492764657007560724287026838944164794882677790357833447579571067725370358910872446661441598508010906402813508417857097174207162738208373932579486883069797480450828745438282130600305782904414674386137013164825474973130482606426144153452931310459130592388712821705509290608732402343070062123427103564832879316618899855393317893594533836081421079906980913033416157292809176409385200847735612401375223528949665703289888498972633873850097380718054965326072228829010850123707331661916613368112161477138166978321732420823218436107057084263510298340982844747219237819090691654930830833772060997904523719001981254269718795171673762627092510780380290119803144841795250529087622984257160565091268527858989768682330931977179308290231501667643626564246215454703651229839892646409251252904548948947152932483880823732020919681058845197453852134553910002432980581331932892802480225595506884489502993364375502113432238754721270165859537891557329066861082790293963702780204236928372751421683982049189149949354008741485862113089712543811345771942816326237476478107552008882907345079197663205215423870896046980922720502579149401197168308830343447011184477164472705944595095508381502904715283916580073418941631061588192394460727405221931018828937707494325600708971299124068876996837227632966315361695149369129562811797956544330415559384208203149592994314616163327870309993130609318483648404162058142004435637196251075742393396851727313822831501254671725780277708228965452241129955931087440580522604026939830955832643134115778737579923167096661888519922886983761599318941268602653156820341673048225412462618237240785392628728463976996073000393583283345010051339410074287086791054790877402317434410748626334199763860149162348796550823165686322692107263436212193595782199873549677157928974355722828492393526690684593603659223954160851992456750989716840568776316840123582607593349475114508656340692991442253958674983234617146094656737528861167522400964652596274752719670973956954402962470761059725199776539265592474354761714022812888013411918912143066811580195885505489462391369990755425332139473615313044062633947811016908622371123721470191250969972635890100142865128930676673746848278251121695789099412282679017063216901905329308806621395020480802351991325372622891069058191972293063375671434940192075230629172905394516214853164973304777724924733618669731462928168494380394807553170481122100516755829722238104052545394774758453319352858699544010163098263024804516002755400594404614429535369867374945552495020755744591475720745689879270387171167547579629425281730964236931916227274956815601667831987965290252286322925191289480921141312420785538012969122344180292207325037975328901661936273738676678160327904475456613618181417980155502260207882709279310963753182885620427180186657981207459066645462341534772499580178795430125427463766427476729175256544892744562188869321656509855003143277271906889314152908402317252997724826873038791397291346142755332360886924957169117270033977340561933222580717439355238695779811051766652366548404485906886440319473804416117987978501438165093622255209184307609480893794851462465488656967816538400167023359319948255433089825114088680631823604383793121253636657005881111335396612679035246199267840741563680855758348492381782416455023339660890469939861830278121908116608996997363786712885216393012258897106163932618346520825813480662150748547521722403063921172649762149358378221941255304201206690148158351524180896978770133355826483646796335896864006552454573376974177905339997488428569278824353887705124864256728153065464320501483398888115219762500092693849454713793112144839158781492702384629018043511203884203234952088721104481177424150476052192633900384866663486036138976096993884655324639807279969978876240114816490218781833035868011620261611414053234573579587328333950131482441743710606561244363626416444620658082841640212048301674812748790831759366018562532230454576645939528557656342878188171025825693582886394845040085202184578750124901101838476968538739015926536632060217001727658090595185099999839820914592821084512981109247881502405604106574604760941781237070917759330241128104641281764850099778793840637688150193171768059678748187946195868497695970388093922796076327981002208199241984029584401786238747791913763774813529571712618902521069043504550620228027175738202370805972250767373215503449315124001055282496159770292111226523174201514594631639859433280671759193669508013949600934000073854107691583198314226229921004662835573891816388177182835043432682348558964804243996082270130942851592799535403118490279310085291001811514028602670253089708791382397453965720134150220410407894241856160655501961885005156049987593332673754517206653355320485648354106304177153788214374297187102137368478801165093107063707709695152151841405433084871170167378980780299123348041993563978463057086856860232106404000928564810171799061680699425697017033819882903713059304207087819590007285930806832019943789766986993214532581604845323681715150543236276887354359159081601299806990715425605337175269294765262187488219730085147993762069664275455659586381988115547721677038571914918641627222878841581735669514613699623840603081924918645194765863927222300084611561461508475772732598456867463134322220914872221588013503853469562930400421559256961896848924213511843158657938337380300465713368494990324636075984680899882506347834080192541449473473546192443347656301326192779274236685402015297908971147069422257779202668514883505710312548730063382557762072452222454195160635975317108343034635670750760044068566709134011251336407817566001823559064602356537994119236914748199550808788385223519101383957926916945773522078898914898562766468858280535685271889430593026425834382055752149144828932404805653960628534903382977675252811121982113327402255707627523422670807252156858249368986951015682399861792320321397128830480923112740276385706851515081144338928242905028561692382352744893075813001217908821723300015350152726527296014125566969957891296509854063613077526166322817764427151967131973458217479370850878836763304670013055611375159523227033186664325389756865904773919095545341820685061423783216807888865217083558126519284558622776949046725293290527682742492995432982419838897548567360203289307373550955584586862525244938383646872244787010400828245493775299555005508120273999382929164411657332207125378081507219131737626137960491948345987747815794287191237224698000576122629735225774472744368955185559284112148519088333581402158103606238188790159498778924050305750901240481282752946012304981687721613196414559482381569798117975412712642101624876909812686968388924859725635378212823114811601741302551260085043293346609189068371059632780068450912104118960147778172660308689339446769118742792451513368297444035418905221425825690921986709583213156792781985871481576781234771502088810288267028233796210234157214060642848755742378359356540444622505024924771043013133382884640357134691319206778826938518175438857427238606743691928670728665517360186688564413325955934662515624858604943853066150244008327953369499132017211370234041021744555397978802176411244023747518055295863912262742689256496089325375717694568858998764077739964090812514826939180171146497457725956454458883447792865595194548739593578961787591410559235612065891146312436833555088931979393655655644571868505941467686956860880239957820377979146347177257727912132722231119045891696822523196340592148525272572581146493830160616135922968726379339776956878665005114494730778659996080972017232005973888470506870397637317418050512342201757565092159140952275959449898862399510423014887326534471611410457080691463189130249885280432524687627273759785414049155072041014496513478685326178657781983686498305911452752284056308070386976603406921087541068915271156236783015235577157307620329147031325260088430938513322210325893565117259503961469159970737107887294213299690480770689225623053628234497205472223201593885574555575817556835061341151819859815712683714488394863250328611807986251491955891690760615888282927191959476058101299284130809043896058800020549105741779792144929108043633107303608259168630156417986997476759408485827438504999329249554348549794836588562109098440546629714457353254560590822137832704823511711596377086511308381540876066964793646947548492659133139306714321971030106106308869435044540475913142952033781706708448865378033170933170889927578874945515679990306867748588192825161026248648632778684114509587859353907971638251904317361515809136172141757797296263381246723155278091625873292826662215249820917921507415774531438886850051406761241286196791886184315695683729165607256968720725786604565488971226388681537274002685650823181951217822052416235532959936391376473434708809187207815485342331851704513595912295733498961258302938432356570594853776016011486101522965777056378449135263931799346688433159477230482972506837530135443686544532700510250827484123169515954697888955525434495857835228886842316489089114416809028221474069804949243741895668580874731505284770417167218087659443304799602464804997282866885827917253250496540193903942188509335029074186009079813199246687098448192309330620031363027244327123443675038964043082864872296057321995461197052611390959013354194591355309669363229449560659786401247916609205194040308821922115351552021848962595877161664066372966497251126823624839014157244713931937051829238454947964572701435790787368701889294741888886015913701214617586365113065445341960843694483663611022080737977147915367912602331594992138400248442684068945015157511715019252836883844680511215392518868726628704442337854961255945400203602832670822930716828542907727806232393636784612902888538273969919817360998801402518109492523163888851325735519290433187830050705816055634750456625096351263372016416743221691702488666037496803471683681729137395294680229177367523604350222738334937800200775485840153510939649504737957362522704011099376780644913093331621189516857695348535283508371077859106015860824338142203343907067068063375265610812535681402537618972115258650245538401806164818164709197894133654586010379810057245112347888777049255037372006505938140821557133166338491424808734319691200286735811318135386143587746675708365854831183872193491900745921428272908491668920296394971621273495380372177116920531268836678460471005883137015578433091867403246904509092825427079374373750435737428984623981659545254902303069670886636944415445631685725913591244263282285333205123416763775106481392151985429781441179875258503059788661881448935758026670789385673681155275810794410806783862988324521239663361089420636283870845184614032124392376836541345924921020719726567501399195216133525896305505015986305846050185858153694846803989270441246251348081023390319172937519376286700832826033130854882823346019447491443374929695757314187856211492037158929532028604378821660271414239220883333879994068260557429789690147360196680413604470726825074949612793421666204734094771176820059626080217214056039234406609679167830608723174485228902662823578710874210764096493314397985155644597942121949371745376122462331334560587151430682082584132538236661553909911036460672491061922592432793577696983420824696214147893711532869618122219109569745585325019853727102059590660284638558336864953128639402639195993132013249976244621287645576202218055536019595761486112634469400276180190751320401325534389914934824017688776463592158952858228485025175022076216476149930414849371068767885017492560218503274048128931399190087594492936576879338616628484340194824382551435315282295420622918224452234040750835114057082371332241278302619176852749432835024387106803461493804973999833844046426816644735805838554545642403926034086767488334527345856546369155401579888606786717602067471559860066015007317679823138084073923517120276121834471915164974808148148651701855488367036689830916019725317088227312140028039631161171326330335431898773938263410232950768740534754056762399994427743841941565712789241087502471039285841088293460318150539272916310859052725832746913204930019529672844189876976607677004732909010394438495745242946044200399777510319994165314954064378389259184963950972492732777536657428692749107287944844892918678172955966134109886999238790192799224560155414090433001749671136373347497359585227535393158973299296718664819545404844092753332563471659262646123047333604223657921587782462467899317288952662558490579140162840857614689131297541028063669729692150553265674113882873222900112764077497366220385923608602112196156774410103126507222304078091965792105775282082715310557637855452904455942445400830238727523092491629098579867189486887909597196324397421166830722299749842493771212495727179999459413728121788160235733897499674032190761918453999815467985312614389193461017897066720597023778826860870389074581702647741276554403942358703804191330231041017536449004310244779604260438811715275126541790328234827196663471111671708998518220300567678247246911226503623907751241295683612585689688670776463448502922629934626217094665180617946863190209829062969401890223206412477585439628654757402470908591275045340716897947419193732287449545267757984407426580340228488414568846476119500346840595514232463736329354105909223754461492509065333940146328894104122872389357319293236598726195541190771062767896098580287080767129749438302242868734715631711937139103463593088160261123701771783302517932255953286540614768908094941051491427161466674591008007412273514564313020285135026901436247559931157883328487464617879177237137049638251450471240622773005207325195636944379464191518291466969310660240210574363917079731389101327520715831958369467590845786605944709810567914273393057492049095765803481606544588539733614490119503018319424094366134477065432130092984558018239827816585213360988878687747305161977876923381502928850347693073316749183202337447725067946528214237977171859648300996606222709749438689756846778472722083530986901213841552689603152775142552276274572605958225027996497668745495856347287754098616768544771229201581648298041754987968030913308830553653228432868742872510417324944667189370446404287770951555418207347313205648658825410529169671270825668869328381106570057084752111179152069407471319925435152017969647881508324389699529909945464534306528779851323888762039992708991945552851449467419679674854451025396687679915715067512545524934508798406425261767649844894916430340571849144204506335025238817740384461531359328764733087764453249301736335012533412487709830841978793621768057159046907823216668490471107691926752460084559926368175347617547730705759583659009507675062777590802078150973421576362141889592669109041436946973228272298398935669836012819656715402404420598823501211173895110890490574099606232954245381061197852012525264255597806975375649395081824989077457258240038250156350037302739284339630193356780696550712385550053239148257398199054809748819009742089088756604059031672976125044685387344327221643927817120700775651258333192450547823623266089410040733284293835720601932656672236796391398655997448020165481400074547232092128970380885680777747218783681857706026364006741454947474353812135600627997279046291699826784700149104927482832093279678998749692128263494693742660890375943559594771589090767416877085652247163015437728983703481839579383770787154965369598130770966222190555605323392514873115496922132644697873614394645020225161442626942226195323782033283555732552260847073882285573211845909683162310335366555618658055105363272817701589314537422763320743259137813793627387684556250613274259748918152606287391840963814137623268816192746246942059410724027343300106985981847086698384789129473158057359134737314469631412651289887985747635259596097638941576508728435989978605897292969470590059545527987494087020981286379884491664229677125259345488043853149433479337204154146711978089357080046155589002275496360106744192310087288067702038898024037095630894142977394961426597268661672950903157360677683749753606275817231789973899648051843351189733267679906364102265973660716863702567508473407383885897531871268982114473769791273823209534116409735689005571658537334312326152983947786171434866819836417523906437951162365685815825285460081578275519726439394244291454084968424931990759817760743092396673323294433234978990947342047085377174686530893294474662063538731376205322605113009899058903749926569960299349824563227944523033225055798269664783058868488457645317995190533393340194787035395908105794513642961873595088562305757087749076517610764171500940805054711056565825816491766625728336719926320723680532610497460390417990396927990848132259497282643808684764412896354188395332405767260865942526338102957562737147165115276711240573873179876347226804313967379205878376200653538858321359277768427558671172246069568847542425043899189369575741525114173463144019955082841892406546130678187275440261887204982638781783119108897867437759700526346206188841425844180890679013931797215581351811721361688989080086863765726335375217959295709493613820659025354810128676326315085961779564624335877347981947840807972432987854982990927122500070833724861430603264036262030500519406255479395281007889206437002951847583369238829038500525245756699198620153501142574282210256596154156970303701616108899148805678378878573841915777474317047325201648321860212152936561804825969272530912793306224934571076522000912891437305356027072646685068626607589155588528398144894907337633601989515202777387598143366383070438268309433029909505567950751723941434032299754619640337965417240531912977010471903143754330811922031534072840760669137234150227482939481613986383386853949360339153806472563387199893047989696557753148509842357373744682772946679350229087659168586335879496734926953220355937154005719358960339452600262701778618344275448134193676848865285678118492656377053562314842706037890135226681134926375176391716208711276069609261066988141450686670269171315929882861554191215322771686897977570565111352888266345241084074633273297660168385877088458824288235001960002821445199527254419377873785085702672385104661537849777684326632842711822484751381376868124824159591136518472547169520931511760485536087095909198076255821137336774000867891032460078010269683046175087961568495636592685051117229592487271990300442428911262902906226122037094408022040736160505338035157471547923966617760972106237231437781105569571403841981320879384247375026255663949723919716537976713589674390051978633253884232402569874278144442829332203643292686180679618714862955826349688065300465505013553059233657730478292473396437462985318126453639463645954434856469935019974427910534418914703894866265772347659632864309369994661351248791084982017478639317461434505997009484470616738102788572182460478105937718604138988307869710822810631515978607281996849571420838551771571757967634238657103135521783555486240966806048192991937488300068372229402012699366416028159501469579096757605647389235319722247712302179055298577251331666237177094315404996110766304900717181692135711720638707328139180887542577440060663681041383353633281992333417711278929422548049735609314229534281111429109620694308393582899493232957154932643954693289534031320590218374448814203093855420183920788154094171038557810884108877987280755515231241712697041033453108465244872914949611382638463355866706210522889687922984659199947516071938764284555915102809994148442896459969654186944322415719206537175637481100360278769151301405739009802820231571080534183670280794863850237182399956005819048777880047464051117485001849457441295643337323538943571757506956417599768950789338721114476004378401578786299494527514741827595699276739593532685588130674752601023448059290418089889000777584913866283773307544866199369453019641816884936047768539231830640656206079637717493449380134268629803560303843863666739475291373251118109010994388821144392366566629266912112066864221813477450870404531435173505480687736598167464495286569205152846525931856252185585970325249207333452702647739653916729458285158911823950669055715220499452428630419354057573830830769954934922490086876832547436725059574960098549210425992339686645037019680454572509594555911782884654693529602972167419811874269174463369926089485243506373602772785955712830961077389550746943976015179670593806574840488828304622038514864171286854181825916072458068563145816430892731468385892746350316966206354524100174439269745755793643282850430236822109735033811563327890326281803559174206364862945347315161106101265637497267770056524449866485655484889901421178109392254248731066349678786488501362590693442996824898544702723865241155846395610967974495661488079949113752079186980704093893704513896987529527832589395459038748434176004018824141647603774665681796088706464655786722958470889909469433535782178078769505797646725374240127168600577044037816192965689841052678669984718100996817550616876281076755156088128422785037359192672008379807164829968198219804787136450773094439740880272575232140274122585511609144537663498009004080163198490565983397737531702530534806443108957783886333795307731048080120458560786163387175930388446115847221220973827670525454102359752598749531965455446994651701359684534932450520634533303686193232186811016984115600840038556119157907309590633277264233907151416717980089651018623126134611215956981973129115339095955259557700134113642936381512217386234186250199318863377535194949839182992903694067528315074482854738861940521778638578822662605499884011804832715382254740188960452621755449775317317756858061252726826573608542777975769689908430441677480476100762139499896896961985368268816845594338247583716046903864456647080210744621819979611934899701145516889336600502185672267112081325072057782583192647246837548363296097235287344291163700853066418688813708533394665151424328994573760152465325583004032554492464526355961023303251204775979109730694869339069132780753276167256463027600377547564023175948216754093717716395673551930160287869623727583078075578380497936765330968485700541594255811241711981384713315973773555304812064823290641515518579573097507767333359827548873948788366840394637464343844773297425148134901448762060302338646471473998270070943537534763224407425671742616333238290380231920575528207588630464691215935707104325444673889127167905148807072891244916816005539691664804731909001880571839455519606932272362879774435015447395408712329898672055435445067527709673564513420346181053681391733917170000632564084675594123375197797923121143172761448764273476512987047359312265002004111123679216770992563600629707783641035040281395289201481469080689186890432046438363862660418167563803399346559930443697549301558785527992604770702016863393197816791815424236326059737397083807111181126668544573211241096714498326813173938990374028246448235839053734155182550807155987758225421913284920423461625376443806568586837709066586973881949785683641846651631674930655679296737596298888523285871433017693227499154449529102469143377538875948315107528848867412257202615063972554960608840158045124419984791798765342580484115080082003257001490683577930864344480920160165943757708316655656733092549222440359840220202206230631309302761879125808300690493750021906568555075541043707161388716946416516527871710645960038545899000552950513972465352188224755207339383077210435990721018576862054751340280661736685301972397695830132593536820938006057500709280248077798143440405386431770039133136323675394623646536042122367818477943102398207185998692703713773605498877934643801037452405590012182737517669524675484507110807882782949487166620381353136147623458311375693442508430449445798750494027174812074891791866266268061653720929539560447713250233011949879925738817157809541043824931376588540322227509564207279077516814724546098638650984252580993921498919097198046934270963513179774369680743193713906701989809911803893748862513669408281428105405282393020317973513488548399058547817033057291878416845290190558001303386362235352761759944929850044692658682257977111834681001736036623088003492801855207891222195289616747262860316993535537236276744447545384589448090007663173505363713173948394557580737227771143073888091825284674511436625589977429700259648708077419557355208511124668393717588864430587250210855051818852627995398550441714881223267835863077820826310195139856168678443756440402007751043733419696701595538569903266554010633097564181817772601315253262924004647861550093831020258087674358473633918124867986183135421305390545112843128793762522615920390289485909826097497594564868675203830056227338415885439094347698516512836812197461583400536397940601231167193136754131372337609258099470808761581407813112023504045329284041860156497130778691023215662998264027713357771702952367336980094451100028238415647304509525917787535731634455438359691350977542137692832888431965549095928851152481040800815803332336116266763449885363640023381884874515661705350539729772920078992964520886422942113022898722962416579954810127959135364800409045527584260149497500784938762345022964526792912530856205645577757546208352753060612694316510513425417947658899845634923632462825206535494361020731207886703797296112947048072244692885123322453771054200842521667076480377907783456242466732742704715897312613045557436559059940160931446215270600986537068190220980822350559271125207890483866304635422185962500296051738008913715185128595165592342637982379667374840250823873834349982575265265679457701439082831631970475136245697373523562057365516405072889443648836784880870918648132303468561927052863657241397625312709344079072400374555061266042798681493456930617470474163184631270429062594570466987295301366343323606440003665207706610394276464830070641147372540988452620359910444831455398207099190109987922039340103445103535574376125459841130440070436603396046162527208555934646439602230407707225543571103474612680798857708600717348957928444684837404230728253413664349912203500032623291875234870236496952087216817695197166780541135044037076530425378837311688464468836498968298075746939946746669695566546527505601559056795802693750928747945966984227149952325046078336781879837813598689501735661087817280251535734506642531465152066228683616524768957582609765881692272398239621016777105584437189064926707781849663200555707140257764620338571131982174724150651110814453403667479996999803845245650279917193864315032097805678244139242519029320484605931196704670478505327142507957259591526996541468671768870387712378448834248750731994217793163863900782485671361631603866355443982331573843796529584677142934216299291371959935239901066902700112457385713113186424329799040418584319719676776080110264801341304037144286044757417969804531377264759690566007960375512421581596805607795226072868415640170002693082893711957917653654094717942178248789926543911858249749131598895142454554623825831705147841936683728380251605787540073882039279058657953682358788677246292037960655853698992187344145614767705476516780611083325662695497582872550455042104863553579610189012896549324175576194347446188492685127173553068316848899707897801189577378627538772864285394086021459112499363497998925464988802476598911823821314593339176654630399786652379726458187364962436067314756218564719819330870590639169548180058588790715679485895095425386248382958898470663936653433479901079006093679600500216402424445591744780224330432045154514714018969532087880072284537300788955517817661928406929092867629486270811672700306657868884533442951747714514176295820327243869173222605675125631143263029797197134750013031177283832484705650600669354847513836289440100399045310999104876255108064033248017490646279929694494224169276018119352542973875536016247993740032985470112604087566189186544625649979750931783166087266773829694162629373074622402565262527941037328896877283747331324180904005458475777011251549763547510109041555686610872837403022784484032430038333581608785677668130380696065329511393003043168679502977770887940680231869052544352158080034208631526414497806783669599466014305860803526434235485030507681846931752300671110898286212961059454425878531716040239627740976960710652734785708001309769871810407811839416001992004235472583725827851109728884314076653101152213693094875225691195055106477808987475993156250710103144518246562574656396656752147166612001949163260951392501784402619701042530607651152929069619809851937962729027717584798033143264586200079491559947816019745335516885642494633031662741316688071748575518239111841174323627784140894918278965734937369181636826091525344948656520277930514182961447332836661845875982609136256724235341011097640514097835650862832512508126965179298197650350011084393292911469974027757055999778212924341312138097638294406972121031641340495482054725542419606405026393336134379911280583807985586058459176954658897204627001830771656086437368738867292154665880524805970510013414065647113012080794958452776277131692208981571298805592448092811038891164025892970528476068468389416102186104280113974661862033044871775293180377779018678621415505421253648552199241117791562720815842953428441183474286953635086965620758493582216789080697881780078414293367516734888292940002320184908250675694339897477156752235653352745036368924828809974235249769216179246442665588723041615824556645650929235296109867287482677717271617535347443230144324473576136664997712904800019869585771609918119018495014979735940068065065208239417703762967821417201085515984542657111616744156189807405079012493919095482278809018139998406262682954085809965769810697096106992479278337039148108906617355668955705656692058951436506005215153377078307168024751396834570777556731886927781975611372189034729675384624261127158650983293590954501788616154002958481988478488436450843003112658077046876565840308749229351070600888392630975877614018092414544372244873935434724734662898377829092078211791461732176675135105857293622011112644714744141889422435065843195485256668936287850376015045551552794671314640129133814999875975177813427363570033337574277134488207896792319422024555071289475478768869349086905423046385972977975327552933032132390260081457651910699447525154592888296451519654158340963208777784939100204878697133398569860716295341134650627517049986584694087377569940661066784642693026930166729165434281708285041981506989752047043353517503228671964585757500089217147811185080980710148923166706215169201172370653540565766075292405992730448996548018015102481177367821021060728109679793099185584682995591753445523869016555239970112878100426165079631390061806464179049754404938726711169590065863260292032119729264152455496054518719561473000188206618054311975566982012028606688156881050824186457035186257573879733016189401005056783405823455388073525421853874491081829926342954039522147517304088152961995255009477806172128562734643116977971942463220997250357804365968787378121742233219236844123691738793801921083118551568543612581089515792115423163803100356480523681082114569138375727934947561003833987164633354795602352358097217155642963663282153148284129238244896069647687025475335132509126015195605451839583837706375456066319581920482719712855023387832866018109758604577204233918379329456112417169924723163513745359446021594904396346929882485509784257472218735056021902001824176939377001008556351579274592715825887100869049309412259585077338623185285891150247379518795041436319828254813997885546095773090407771545655552909073945544570356611269897406094017294581795180784991831850640530508940373148529602785509549832765519269238933159186386429704324625986014575413054774802835159796151016883326550046557336566261635020110194303871257444463358715512702513318234275764972698058077233316279585184204938716975064617271712317722723464716936844179253728183223681404630582757945529855474848586955871027783037427507434870627391126464405970286759302404909685756583964470315267243127841910714677058923647407441039771501871204143148754682217736667936832158801028018146752642346059188875887590049562010364168882307162392762307868982013079086629596609460420420594118584340592321340349031238067450544641705858491584844257651312869677244029863453413917173137524084799125299762776343800702919966183588267626408090629444404002083781818486736157680642836510165046060039296597571480033999238578162088824957196393346556413293332322311203394890493137507315016978536547401193482790824267058600589981589194154395628565503972975426087125994169177654900140258542438977652609735569570575751010506054318099245957131207101718231354806853477331946274248766462699185998671508748930813410453722447170287340443576553834255517751806657912947225594586401303474552140122364378782675003626818150314032355970763009078554075381551179542966533339718714549646716336844016356784322332412645857423983290635982986634131343685525237475791636713522361263106541528560943463479808917015589472215447093580967645733645229158703223954642788283857713749408757588950404515640791226869948332173009699530042133730068700880640568882432852849745384452223354376393870528448076232928609754143233660692539673800161840660835589942742603875988408235536977671525815891363527737614363000745751943500902316323108888851544866593331355187793305766709376667609684436116041068943435485751522805174103522600798430165975421350935293500389249364888090705759670358393526276087524576657213416572705443072755386446738963599172843844178327648839934126023955012095404238725464200070939732202480997525979686390272306828046262064786729822620473898747997584293606065923226595445549390251218634015042260882549703254040158289226058777529066485444074085938374089949454931374346180569652506487056904724317894309216204556981505853158747391613159644011660333841615966518368700768829382952823813691418149611636694312121023420466313735562480016345495761922486370508673798508503883262135706463250560481286970443357557645516671172314971881029538502145953487254254695359423668684000023170004533327824985791994167243109881783191201987972756585894080820731978394991520142973023906036083762692972460379110182169879453181507966477872211975275858844136678448411476221873909969811668523497353655321640456910883801998984532020889750039166036987245216306480937837791013143466822048430584786202939374052192583529430648129259501706531233157861548887718022406654245867317959622520522049795644155257254593310071188991093596234418542878803418061138234960102760596160076203938909612698219895528246282878404746849532337061039519123299702959788216474314244478863415145244406079121261084971894861464790999414769379847752211930375606314776779769317130530916119332432822417630371881271974971476022230736148036758064938571550068813583841286636664303828063599421237308384606418202602221119488189991903314721778877518659018143076145548706563231016682933450840924200278422171538622673354066756089773605747140770023749382570636630496221655733447670484970417168415381443165159004402855306305222824889591495851753974021384593377458946357267611762038031769008927093586667219253581013969306763461147081523942756583964437386008980544113086014296617831474024864010652062086983371617714490491388579537136384588290752638625704636718251517854174522708129425589019157371558251680365318297300831591150856712579170981902510575107778111921566475803404056543510529727213107541297349268953075629514064802324486125481469676196029157044585937157518936727183066315130904370574306185487205602074043535429172946493929015775930787483881767001533558955886585233875930350273579355675522668163621814216361287887251027049095536567443432402037716715940625142333803341355018555375113359483748354482019371922540911596935891755527886315895219586226070694535375429590910786870506668439850653743036945716434045031672485112961167391090861410481162499282539835781286614147954316023394550234629699477323465871566312074883741414990766163539500612996113218647611219634098685757088408171168341338858710952213370811184923433944327505189145098525214799141169790779450312471948052976933246240439278170652368937855585970532727570778742631707370546316326593478096406300003393627780338026042842332470560688425728332190752412170234629507516686886327996961988929106255813524107139126981003277228519253153602735951465891017473033859401078555662635817001997166534656973141316392029409904000762342304666766063000037789699324689729468908875800137362098801124589344436034191687299945213730834258803053577142035894991380599954008396844633133179523462875896091487871040621660262844779335485728699830840803401411579457471772532188178529350009283649060714879924645304393969801988437899674125170308560867913969207587350658873264490971344322278579370149847000631027864956002608297746210884143637478695502228327579783918610599984588123677312561492767399773946045584890290248086596489997713557392045489855288707811029898729445012545167625523947712358783930968497650662342098731576784220276641479358556903608280080852247746253340648361703762654198284387302631815547636117725820988368634359170950574478562981446631185199281182989354576531355033527924688644270759388691644207744876075018943631414352770015924358384171770094231062703408667118144751064786257660371194115476045909789197925524465568574528116404945395081539288589949171082824147838780378321620997255088696060528090067416783275223605928188463455168946061563749549157119366614598511648248137115626278128626644703888348683169522090861138474201479172156816035377097264987343624656387286197859893661889250969556699818054529755223456161302654842797601603275531599674206642533295204677354823367523455533676573710836328444429543408697458325958486836312742190824045799928270375465020923933522485494524169054002471240061499512100056240978620163466854600782978389601836600970770255940140352547828569840671117422312613777991847072860979748701235413306898525860580610675574547437001721733238859576926418082939100789889178680563274526297323225859402963902169893533874332113976810069611671341104209299126942242848140282666283165799012795043609142784025204857400004087471625471077147513698280458127955478629034099235692708990428171784142699992784091238697809534282506592421570021776744582813423879954625442972120750107654617171700319846590295117435975370584442209454870603013146351769156013190943898457316133322549161164999318457882393691205299929838990016171269296372025477106108507981099279522544126895293994786073308221779906507826767110903564013125852542380868291387576349975102706508649796088224499642751831729417722308598921804184226517917537717137799656686872524151151569244410912910443413971994250530331842528422768897755896815203916380120517380188964458588630393130473437898881648605673571656276485622930665939749529596525962386022497944664503212968375961141413870361928347963398666291872735497133109105219370970101243024364930022899183651795466649215313100857302036781675293276837086357384552583525013709748120375514524509921757230099547204250738472742513051225878647252300903990472939037091070938102529313577500196332419451000159520563223356437919966211515556728026672372860706910165199418323571173629074298518063314140813624660461602627057026065941923027758020889426280674092492242826162907940330784991934062659598445348647170319168920303447416685133682972129808366019883719667419964568290630769247320151144324795013688426293602001596248554501700817875307343825238154771141310991597213907738062613113273675036606087825448858525133791433297463551252180674548195616907574296812685920518631798450221383599723440427114610092065305396142300246776599948600294107199654986445144829365489837453193665686941685164834647250853908988793614326747687396261311462056322933311349014547633246211868759531085997146063277738357639112232765139441638212435440875661815737153881427705139537762380285183219942558470044650049910765203565277969041616709560042723504730532837118136721998506798182835204573010172897357851339355017416976450329487230335665510101899064879600528285028555032056901177427532756192811404243627332975095362946236988257045261577904220722969164945611625222622748398747480548170362837223302834275247951176531818907800945203169766770726978308510929111611366391822075247561016651423363761389836101515961580404861131644735551893903105442578680805064929196268583998669533741285546544695458754673364569456339029084012176297798230976410484728720610243997353507688171542423406224977532233234180077093650603983437986588847103270873199956439453558181652568652109443851924921006762301772951268795624587425455776530535495414782539874665769337701433037292832095630528894069217537422288732314255239016188535389910954852724498526311861640878471800773289963588624556469564371114893368918621789349527371473732235712952027492046092067264872393318822192026736024808325467942271733425469580623127235032683731906213999698640652688596361925549691344468908750772417719420589264229071271768481998839422090771215339251326834794375405308428630282939813023187616527728734934436910821097956639905613979715501309180634274670445937638507529895408222364645766379601551635687570877684609437633819754163111714458050065407164873764190464159383732349972143094407274943246911190232724254193174178098403936674579737946457074788779305697097261834240490903268015173864939466246952175131856793134892290164785975324541177771881988448732274750853816672756724266942710422287618379288603715534506739349767506233856677712926821378261803174744662106310780995814566393693542180882453227552012831817130330222007988015288907598929114995351757834339037340951273574729988025178413971836310922937657920361022477768355237011120671885246189116883291000668948190876088160611404195939627596219136834085859878043762300745228165546780525710986471676216312516907310195136614381279333010624469327316204214651686179936814519504935591772954496857274206629499737314658706220343220354263714463490116342867777390435644226910296249529608849285915833915580301940635096081401378314429304094197031205251096520673695223598357311679755310232867977135092275928282183274415736158060147109459145493134880202269479544721724049546819107719711929141203751064626764100115724717800633996397022508625791645190045019004023795896383862500955052951492196622716328294560780759135181693326712278333615806600424983911215757902391904548459893114615892385996538287898573179741734103870484946446215330435179869726093403679667857558440616899418973624437441066314655947693831345346379708757965104849747685668107213804632553437735318557130148075767437490781870888082774440700004432228853188903632431315321623383881286956532152565239008886574034787032052582111575212034434104142096901773968286973077366114898180588901604761159187463998727282759147601140403697463885610622080475929325102985621800347955779166919689719677095953637678358566096147725289245762690256879366167573618449956873553617533555210179166424879972375808744544203663591321091429363934868765481466609507167444454093481755333235418476413314146832216095972837487243037987270109244276676295777545005920991278503455471015828277304208745032859171099060399720307999832146815071977400157316652473695015336576996375959445378618462812476594708953764026307919719951199447957346261935600301200113090884413803229162611931138557486206521838239452845484012315085198128529796996030208814058366058133451871797240192430683084000540071791708658537710736329626912647673203029033138201200684306000818362711979969198166192488345444703626197320144869174210116129587224335169576170231878760490833998170268508204550374253420621057800415244056381111577510530534328060068052194411822997360260200521674611114568186185717266406288602291167898241546461717232915298577999755946753009291239358445425079331661569576631509098939777260807791348657715723862003854515368798127480360627579362768605111465608012595480038768946986695463835315520034472468462222988872514950567073831878739743269497996518540252849661254268479799697477060826168739465228426666688256718565809694504598700419296908788346654610854715751165795262301312304708476094055673584779816803115383250491629799674240938967092674661666972428556459784571712503591409444527070459178888016049595976573844332621055831078674149718373613913888083928534745186774854171241391332187906553710209097222755981586030534845126392095689498892172946645979832824790493649561833791523296034588969644228894594630350967238854413467283406928105413775537850782616982714719397491246748968969089180495882853495929175500920618910681649908215631885626960408677863781993023332978433108057012836644655733102551465717071175829731705204164011429404499737803832791477062634316741890102420041208419494071253945583164505770787164164142136904330760014603687368079413830147990936946796003443964941322777717003845273256080325548053866072481488507204728713298193008509494180782012460281643947019902383235495364324673198769051692622108205485514686114577124988390387171924039218906231860794004337728999388344052506821105817194155621627183969527382683653545085032977448254277414186242930861514139713491591434527214807817576803678731890989224326904610109192490053933582287020958188603510615623208493724887518877416066071717454870837419672684439433920507691009515859003269570842689373090953197353417942282938202785401179576027342575919871340857638048531155665504881917353234577129930208645148544421034451537723281353107421912294907132173312812403240951277364584886512786091820940622393635973444626108037594788152607161646164656118907252796717572293163945392153684510297571133911913139586853817924179440028373606095853246921420836037909795194646649544922653709287761395782817677401862817159231141982755850783563894053068119670226373762006808895235627874138398981169181248747084166268016898453909763545876487022414590585112510562595769984200475805863528056015106977755114913238486162403634321472625399863113444846115981136304384255226374043201655547497896915616895109034398712106524504031778952665304411824723833573904345312213848665028817129989698362374042788178274589699448296961159280359483049287257454267103926940993583127101304104077533250228535063992146184257317774705071389101349176190377188616711252337004237068571018311671015530943436012733255204623117194502401428622272820264415302938333170859222932406158429159448581224135761642542437083489431933151205846136604769014118834928319909676210710480438767968931839574189951764373559696681641758478265807054693310131983391373749917351088889736881594939112588948557989536897548849227678089603023659581950868848576619223698756858670977441946728523140895803753786897270582781358850267885395970270959586526670102230073113251195562750468884611348897930355256739965587908056615107434012166702759337082784787573822703560737455511134067328400641007086924293869826063579997510411278707751598928722552715697040330306306467994334456934271012704044743465980212114181395063976272858053760713270682435217803461594920367726185705743110016710057231428203360990507045780238906653226321570277371544642560927232429194979194079614192133295025286198349081697483322199384205401837164841258742181677501150133938872961972851028882391746340609357361091534702081768974806295508692491815326045419631224290151591357770835030352488900112515170651132549609905029534635834483058147029784143234945833941485643776527851978854686507002920619107619236541107599754106154644521958698384193177221701114979557596706541385162318750607176868745310611658471519332665767060746622125149125344861906701390114154046694450083496784884675926815379484622909577706301144978525858262120321249683930998150900985135105867391302885336063202107128002322020717847190424520646355858682667872160532528633429817387005093491752960130622415939665970991861249497927157963939728894228763745352614962184947634976536769305655733041538987775858243594478328333176368880024298883631366331245423977803185645689746333571220350798813666622258276769771098609941248081196284717987102370464402355418901739867340256016280736032109417900254531486830190952505987793427027745308120474920753336862988493547686260009693747341937471490334141815173030601320658286811581595321037626840408161642948057384177740777633170150155511284541412129054834395704059480343642551587500396210785737536068246599886705081616756083495770849770250149914229702229260290099409617589602801389875604531217813833031203340193285941494336089842034437981077890550061564344814221260756776619222446807789437291492960569484722423990682900903389210045624112545028512211392070809188148723929328626671339504564218762949328184650107109249183767138855018035053189295210859778282452720914688866544902007065537313581296104200405350008287741376822118247473604402326652630630007446249754183580286253707613941759478335755858893262758328881160016057321746806149143670129424307968079547110064686242671156053468978822460824844713651354692742860989820375372637428567087196437887164570392392976576543865417121099988859826771295408609295536419616040067201855444402229552363130013772552074946741801540725677222935953763929701987809571576208505957615678271723282313476633249114647217482625108115892548249010967530888238191389130314028135835681671103390907039323322137756964412859570413958408452615267861153744668638738459195920106977055487566811480862704897767378824235061298098555981615144226664942845072475271108986427202471683804146673643468576877790419499931262712830896831470104363806762286094456503933523559250446643339559081351135650606723175797931732839589074982154787574305850954695530965507170021462347126027816350301254998537848859377334856144819468253483347580475175066023650184332095866517024303465328688390207820806582793787318654307059987363514554941156913294542712153744240557343672743160370174961285313315093308535779816863021352472160673291727260169221307126084512062449404411711165754165264516868288630629268685180330458682730655417333753359783016980462560698849997402821970451272907167528517846977564699785989191564400881365210789659216889506947216434933960711248723006053360892851708859773746415180612267838135498107192091403477832735608138587898493485607391707441839774673713549662694056006154698830995675408179857205678808080720558445757846163788586455357549158555936688367677959855370717106958520983076943228445480308075164138523313259864299934665487387410181187784045679151752279664612660172862319465361259685755784303220581687514800484240489906310806898748906859329057594236063352650895596522667201246944866844370126681544199333979633127415908747098870782256492772313424886525494077230268211189346259102252932055232903194689522539529665743101147329327662408053060202719295473055542601968057832256559536274441665556550181308435826936311802002998452273023911339440221336032084501893874591688248634761248484282239211402025162083713503031414703941317761853786642686513332116347974029573472917149649181459956262657350070725190467939050680544034027477288704842467991747585639580274923956331659730121993524916022871723201926449277787366234561597579814276034460939193279261838410155027510509305254888329100561939874906252802285082658850894279883670760017544463348127835837692542460605179384888696263983622467536630717707396464416413935279141967153213022089277508540197134052580635254062899229314443989229835250497676802765718814016744837128706908944479454040550577404248346388235057033211868416021288880322903426213632582088586566272131358769724984539767398033720223475333996209773247501454615302164895021479988618637595355285425647120315889653776513032807544518302873118880562851724705739941232031389348748476104410362419748491994181677790011961872119957030199030871021748128120826265563325172239823071872522560529642585579040057740267322225354217512221482049661471627931185847994772900724784253289212424858033120978552938404196716022091036328231475756268232529108213099646500794433475707674110972554393325370790983612440812771227866398569437593821653070396275356986780504072432658520971598812436843704621768270386252327519136195714537593514325188400647879288715568525539948470205541172282171444559185849852324879720869975960055832433760535158945463517022155646603026656102098384592085574550460202990987514420739004314011621077634663017929672850805974113124919275849133718783933184970077985126904461999772788470368230918710287730621786237440003170392238239149665708558978763678645750123641173996803822737476881048039590004057659659602114517642302139138239889741192840460766444536021753406749809266964427730301813191758850395210609359864782555823919177604363550243369689565157994411884791499486025950583697239156942810466998354430150515755182584242237835561972744106507322577526771124446154678440335040672552821352579383719513157796563790112887286623218199069314329532064029103631753194785075873508306739296478196556119387742746773814202283548356208487427941610987521739885407618667882535072125848203624048952183180300438329228382865821588164557852003726381182806245661525253433603307340491331285516189716229577673189864104241197329863093771645769486204716765707667058052816743880314497580175714961593592280773343489278991635117264753317836233771629796413019659344404527116261705184549343369522495496203614640851079949973587938533510463648319455465415630494169000282482960331493405341508133546228406731268613351414824463513742758687393489591954982200158160480753878533678467159520019754485186851999443849657330942039460783687766213069503519930699640654519291778418107055172560792897984888513162495923694104399332815419811329357014437379730476889295510450295905176915110084355977220455025844961466724381912916338061495508234858109216024276637116803935758415803189331713162857816945426901368506196138207785833779370829098118739240737919860816642858188399137351633719448624733745064866381553155657543396596562899237091577162491105528695067561505936840160196975954420263725000988848571221961792039816279652975388444209832303663254129185024294310582570262670464302890346527902050078659972436192358414254269516246505773693171921677791977002320634686543658011344509248907675250587666146959310188503094692433157262652322549090158286153164937930935711569180838424580010191666771375051866088129077800299185024888469243362747108432931976434817184371374669916721979785256484674781397482458495385545237068272409316830251715317514851153788587783831167469336672811267741473028062157386992769112177833189615229655276659000009168374249002456461685948938812341077777086486053789763951433566531748269875293487347051736980514162971080407743875552419240762669542716643989313419292420311584380015757229990454734452985005227862429732170823017594332541701891868793687919517561005320446495425151744942046517665877871222460187713278351030909686505952208493059907247683989008781639666065077223151162820256211063235665205032417901076004239470518581695255114246797909538072550062552124251821967950672098469902339373245238521046044145268264287729422321242158139360479345672648551728316186501962667586517335020800118976937696880286550666307541470510233540574516298991437446670834675725590145904390836779055435975868871608838495960700902359331526784823748413024124127808040670326241334029614447504813552719573486487754358808753779511285847600142749820670187500451611965602596444511443797418402424215473815293346730134052617575004116844301026636935561742383049055413978016101704048509205454113277852022181057477417674134019903932568942005836852329737837656691075268125563753707021578858933117961575436258890310796387442868978909341003245183108509744404467162859558750008146676182467692021684342046682876087045144531132116915613982324259924812230857121027680028737331013722187984291233959937364942635419914978703361230954813344855135326509416531563581360571545154200198454128998096990376940443447916169448394321915843001120714757165145360135296765741917766361500635461795978963081110389417028741092782557038392460166692309210196246271564638529967712220444959754938089125095419217605164296684942100832830155907316811685946791020125517410114303664423611185057214066678068885283314545530762487564464298430432137112169231966363317874561162951410681195297620043022263331602718869582234533783591876181035606257269350382171349665477872984040272486734498317988032801692190229471770414424315368609610389788062670253927110203474776795674235638497987222936058195579497386008386281063552299007602730032610042182570261244265594876076417668773399319767061268347825310984436646141081559687810773071654309813358793866326130262248852222169574493345915665506356257556784695212272994148982005676583827826228711300287388060466483446333564594268974132730554467312642622715968996066003701301808751420773766205510995868450690126423464636267243476186101950097731412807600766771721604021601015564092142023689171416051246373219421939170906365790215984884363966195078700739013740385890547447865467894256060902401787888903936962676899607142804308337533956620942103873884186489242972143506064556405518616181342940352334367003596302681162894090172847796639225015927508237524988886769839734593389427161861127643766965366863420444056063014227406205423232583688171311842332183666975446266753135107509813712303926763043666053460312697285981411415595572915961920488119614754270634498966801366454116982951449898395428465238030914449660828920707657922472963737779175368231901468497298413466524479810527056744481851073729584700575635770406597076069893906869916107122407353554648571472441088238623946047409626538577642079968510457429433025946816531456743617557015821408827324043117537841195588924494764978877647012367914962903702487864711116392951096585487554517426867365397874640837315322288406600054163308320566107492342888814465963433442206843335958345822210068838624123784229223739645012042180423530328586992551675129090999015896171736972139579081426693583212522329024613455473258062170723977122092377247860784643143407312683418280866558112366980254807619006867070550016902309238321280876486319491149259457143238615562136867301490922963870966577618968230825398232969185008403883773186413395769978135260854975581102631933859079920511102671838742478297446926303759055006373056294957128844034109840307277265904175099177732675543418254801801429465806795154598855170377548472477997058060914629788660967027246734065533770991060037420813804859525872639811981799223047380648037246550025831185436572723585025691561591064302398950921755947607416610056480361183182173788804067600022757682813884936582677693959258806658798255956652118781776943498969195223807833335566017385918435413735923637889084751841088052162250280320679277223236807913231495734608716797052355416573151207615323509570645182644393381444964313365497898143315565737738398766802850787270333280553011137314668556879520031056330737315203570486951993888429744430379279728442373137883720715290954507975984321661927620383993110927154229686179600323529494180266081829528572792130652792372799766696108240902575925233302945736901853830808079027170984908431804058475311723081536193820971460883765459060266361483576087267344031406167800765006416738979702162808814394293035068985882860790764785603580093240325076915504468729370726335117437282233654825446689663675154115644281118509461313245059867907632407904763872247830880686225396431457808231029532280350383181286344981474560178068913635925893918506459797030392587000946143712607385766932571773215484561352293879313751602254671905091724966463162416164352703699883107944616019250621087272670258894236001781084344611519250664454272578684729331615755792620787371088557171274873363896753642632789374145372216890633354672773449753565634874068932917054447967999581121224714866771507648142837871798376941157304363376805715020947228392940738318269861771933156112492659316063195544216404877497205260100544406756732472791887448176887176343276122278926615456979760745785526581924487383909167777067009334841498918297400442059664690468494398951021870393457371004412054895473495912434490811997667672347112644891070634040854449636645805426541676590463398031862663516970938501327996293361594831765160184231782577814434250954144885713565962360744716617983332722514532963590197765824898484607735738764609373797706891423374045368921697644242852402212197999673485605294875815748029567831132624280630761270507567347238102982228084482335556535444797465833040030972424809441031736712835241839555355269948496196369445997254215164389219186356914845283661045940106320013393033687725122463737322243951381157104785107311422564233407290800214079860176747185277317712061875321790563557796225347046526670491562030427625417899090968093231380214572663293320984840250945525766140543989004607849848843809413359474423628180489172889772629253781844567971341883964612306077213380666046253000211972521842003382345852023527322614654853159549848354623131952306695077786083285008682367753358014940877454157896738423106777887274293546319758238833365686847163842775747452610964054776558271230629669212068709221354976872883752030130839953497278030682514740414893284096726657424002465040530020374330577980476272924580211597433894269726818013343407366164955986612127746211126307568834001924407812003216818262782439463469440084310105941255077680018530161173597544685414098414552497085024029550484075019693686891909707732435743133209045440306602517832350741154076750326453473096538915165251267679398569816139180505430322248734702109243631185180153049082426572587838572122181846812967948244482143992088519536661138286604150414565890058107234001800219919430239636266833819696511420358316564525328753849329372582187480072848604268857889692658452285173604290641566608868169535294722698810489548853210705574355947489887293909259414131353513289497973545338488437897746979342324678935727346234279495820060503618622847014845879847633072403870796619283984200307753892503037014213590832012093496660571816094242796411506328883746277875873191737284313541644867299668931815377188394138310956981649997392789852263375506196605980919209840922330997035996018562720104342421884576842634548362608457567494235291974821838638762665301480742450797531421791363398055591917769945956065760805925661609781531541542375216261908802159914292066437093154768943851556268185208264386753991917835128951850270948527572898171973381348543691561982732270431228726754906934783511927479668074918644274069700880106213288687364082876382293504021926759129096556648217373271972712432418216870559781383659227125599346152115363554786007962078070903380047025061973069490794667930296192251027741865946783721078135438094359287216004292988227189355842900199793607079041034306249033215515476525072764703973583371728549499863287615402482381388293783876806803111858944603074963154627260965273920783933978814327032873355233029631331107324351119087078040848310717830041611637372617027278763655111707955702815828657395377367789196872315430538129010312085876663054729536620082381913773640013506466084674424081326219746461586695978448851197210556492603703883412275582558670509141790708935744466769500365745417041713811859889481886197027152099264455326796344441025918959018463670439713728658587618283317378191703465208300736892689920977540771836168266892466343608997425981480513179625655143339693812698140960090557115779784333291662789398717527886191430333271209306168642769951269410257281303324936844523488185593373334327567450669018059875260389144054239292332217745697819203261836007321213680463442299526179729535858424652158298326714098230387576167228987874563093061882907202542860294252524952028503843617778778512255566049271634972150522680389707953686386214252349856981080733951206215839337214712304494657747995764843936401966541533255144961676193696785217451306240344691406540104348831366915540497648276146465860108528734839740350886243998836860474709454750442183115910929144078271601180665449234749460933901874792272762170705915709287167772818093025740300622804346204395242225078504456623652665895119976775365013902797280855301399238959422020420679084042208760542315770167739588651238841849450845021174568609411728652017552841942264159912316722836823742752028887569615019895472314324219286263790793709471066556285321591069618278957567983868148845236540226359972961104908556841494042410122183071967726063568088235596609567369604798925874107156166019751201011101597090895492454568477931099673868057028811244115275575173655130050228052312991001725386430013192539004125832176528764910159191808334447274003871410839293267603546647089596855827200521720501148529298244823059217116275262585204028733620617153101317908882765370794965508157464219391970051213903258332774811872281721139051651924857444897146247217093598731283317899501043334259706962293898970117639400999436759520080430550255219752924504161577727899730669719594231407423522367561406465244299053746712586165222926867216378035635061215868920385855579784329043234764053605345499613538163324434428540243005314691800424744697272924012662094991797372309273162816610876400066985060695394221566921982310077656068433156799032116207279623198079320140408313344344776375682700227572619588667690500909709648335219862966134463021515894395376115890172497074224563835970061455453584787492693582142472296102287415627036467681759030762257255524301034612127846196605285581579164672797211052843924877274900097677110878261078533580386624853781532698185490639937249465856271055693596175234020148613743061857505580216517501807219026074614541240880749906136970332882044648008787144139034879013465933296697482110724761785266479091034937829475595297653989234799879656221251640745000858855255903063521526888851775230125131662713863067512629984560387816532034313794191051092586757905409649524477873621817829827985916586208702466757484783454136426817285334093027863851101611552696273055137557756724797997133871541582561493524109215728962220354159921980088657829061657358198703729328276556403752292072008160348387137983180680474542360474745075802768258965059509853271137733635840119826191320847036366148700531623539378580932546814367674282143121034450802936942928950438993248509352076943038723310040548888388805581063305995021837055509745664218890253518923571581376858935207019541457047829569950985957780445421621985421446562057449013330719258611586263733108044302671509814532344329119022191689470310329756651542807310232144424717322324178481485086048357492298069570618524224494788673496206173990384729080643975399382105391404394529643681762254154566598648625348037140375645500566533800086332138676499384363016519061893270434026251829805572716438628692705103111695177951442845784840020114079392842881745422751125532746121275467601743844174122928536548753181882277730316966997176098726643037151867139031719168538971598622324122313418313324908488640802139608074447518020468353492231709074008248684304539935520588447737037494522058555898998217866086055732364860840290485171789495425442426385665025529345222846525901440734008598365023358521767320854809818054294180943209297014167537763341479552494625810614021142091054308150175703949955417663126857121023173092545097756194794173162923730726812779959766911422615378322410488320701224454714075025029518703071630373639810437754602049775125300929966117701460068311304678698789947216895672965637370804297455047465129363283183745313030489957574493699725792088240789624158965288238648911086920857271478866396274132645968641347365177017078736851080440932845809374422518698702517415415768458964118144336798074010027803015653843534057670676980033365454658436520596999143749733788561948727707442609956571463878728253344182541138277171430172490667660032706064350220333754794909955109881541333096631114627025002252653186293777776253589473781193137965798720999726331825118863709379702277578231148655775303848391704414852556303050638811623245134854502016631125394367643942224997304914464956735122375392169722839387468493074822130158384835857416877120693990359224227846608697111173291324646879929798808182635236662652436111835506413764146667646519477166002254755870931810584606880287280416452339492207860377147081667792020216943597573140621753760824426925602068429778767095121696554012919167829978514935802917406407938482492966471148889109776789090968394925592865824669662149398593323157722444571499437129637033235919942696000740072226251179194106712506780128577891101266323724814861887721664261377007005512387631836792121854875937955145282368282110434212527703951514698183690887220382354764775912606025852450904825827706054888970525064422740747521948945521673359382519466077356069864751686936019811945003692346846271823726723260351055271139665533378707739195109079234117358584831101093480533618191248979955505710368114811416246077625845860310360514127591758688120392821622133333652963078649610762280064069836498627882477100579856922357090284172332721370936499131962193548698991064431528066524099399581417760410556393173025527994879917592171685687438734333490832728815756797058490022599366222679234824094879545784339810403791482079223217616323393739696110996214606846970598372814303188098639045663953476724958917695268507422435028567285219189793820408977375115948155026545481721016277753980727525192243911951947837970574826517396640528132139243205598845831014712424425058645421213789733253627877335317381956088874927486574658148486066321910920213626243540175213065952581815285810510400723297344866555730447007929015547504459354964377673836414481886800240634895189689208395997296036570476990822946574733711552982034519073327383776519085425252678165289670913587687497317180798041608579011668581115042378294488230697002933758360664464587886493027688644462107473851416704640463808456658108613098049939871332506287502512907984550128107134713863908299322444396578867318333919883071907670796360253940872295593284587245433656725379356137390046432143782303180185816708623768055267106303557997012518681118673711602830661459006912727658594713655508102136795992365448860149195682593919295934386955611631294978005385588602400111805716347489071772839435584046351970009708003042516914974401906049262335303196899787550163681648840188686626450848897229759179410149347610482797247289850639945450629643910726924264844194629161898842925265027291086594170352533876980809311982604054280024112531806873769111515462698599660655124942187020865521904934359792572235378065671514571691279445017942353362125229205669325535373717526608243041745421336417638171992219029911834609907649087949108865484776785179717517895979624487499727885147228203210841641957464804652478642624531869385042145219923405302922339582312422092974342993622873924436114539767217939782140132962421187273366949604145717830165098186752283675528683373505770214211657192832318369726656215256227447505271386556527912665954807315540695547482926637848483324222267785912918897799034875128082513180166282061397813459204317155052135544707297433581052213854426976112304987864029995710627228863195284839319219871167724406068100374049800660853993423676907853375607762439610408407366929052508421854392516000733867853680508218605964267615119374283361506409445279033704087453151975340074035631095615689516227952204504146797292788521947857631661366098737745708072523347464662920261117419407347808254595987120204402515511106803337588940580992763930098254236302485968902108632184625624716968633427226825053089924232474438208837075832456575240613408440745389741245259932222289544218537276326691721880602708417652810102129668310254814749454505078173149705333580640311099490836308348490771975708530596930870822545903628986001830065364799263493942637294974139378124378045815805602215602249406840463792589524465346245898463609073652725787484977953158469314066331519747970241267891614456489470016265513904328714562471264317701271107360289942959530045215044634094206087986558840786656795433809910067637884480734325830246014020131817647927818110334117703196508090085557190823058900080445727684040913298706498482948219719639742713318964016075917770531386685271326892294874914075266953563198397604900889123531368442682613522979960326537672283264154339969627193306301231189570081254983485420744757092205595753489267320736128231129043346289422156032298497134469488736642123615931690633694281368059216513505597515205688738915150791447083851993821147526736171548833271891855826004018660858616529817955603443281504977900418336923231292643187653310671607595980208015851219185006254128963593507365176139997325747904312578664741466918677811110855478021836008829159022991525454414669641547017128284715139974227926535576273035968566384902280213931640056837525603864143624677485417410804011608091124076090774897796551196139868622349989630305796999289506348800303795413340796031156234390199384443567799547320837725345974126912513578778635369797085985461437129897013861374506548015986657919119592215766985296938668319363891214807980908605511434326780836738483661251051532201275295464907018379104965490690441114880810871902050286049320891059605893959242895998191215259331705295856583130245921016520101030896467856025771596634027140638028924394738908155679561019941835721701603800147456621354124477070443695831243237919871380633918193084010932036466980033892546230034832481629074822629794942825822384918266500584655534587216863400075690587377736245928494110853553029215600070876119169726823179899208308725029307200997390496911773054738905466549583515750053469569362981597753937591395067632134133303700034222344882645245483684123792854261542852353296735537257050072557272634472176873358783742256698895170941301387320761983448844733352674773659664748744570524461474317656925079253771469597004031433816891797882254288506147063208466956305097646225648829576573687500824064273414099817700522042102155383319699851140878001053474443640487927232685348869099457987766661863172831741292003860322698458287907412820158813310818611357367738762687118128593109437256324330849235189413655170570558848971258735558380702311624391506115411000399251187590525331105661498846566752571050772511919924694857255368491729270323455751790286530677803425579427905397574937102201508851279606123177872889778424949800777962245556731805589754829825669180648459258154398989088233354360804247561882501747314771535005038106180192005121706394789946693119439558286870864964689915638956196511610430321726257969674166862616999378654884542551302677826275565788599914668823237530494519173273065909879638930706086126573845026748674248561821444482664423225982721550490296447577402502293036206947346291819357464583670097540076043596911335832855045829484371927796212977093170417179985368972527452708469005489573628749391958131845368914968387932912868804033249585717505157170878175304138742742651581479642097677079848449113993814047344318869400651586087816109769758583692340326733098247468766383451421189095643510475751895025360953963387136643663853692877311098307796565641842581302261842878278829998719927527451213745665620780040233294529852771118660158637622726595398882557527502035787414163996405370109169859213143140821076469868457508706087206369431430413327320535540302305443457408816299127347662593773180731948365596493188387768283427220671360356906142391020974657057049151397838803631234743702978618261955774449447996460584291906910974605955612436783012015033691172871749426624649652304746681716012095179860757817825616263177887317130265392207514477666800080308630599796234408329154986106620143616514137883802184243282712486277150898896441029459596631452889913319780272187186044057707503906940543825858700808628203281830112270493816962853536273384066026511509873247482799702156760786745318142627985480607237078711338573637280856919866448199692086270653457228303356931290625183857760228828578633805790025610421019847240732039605514841469894130917193968790151618375668464856420568766233150896378635792247869669474844299993787004979068758748514310850867965244888417281439541762823815931031908444561077321057687380850592883757807934849326566771885976009731937886628297056100618781618098440172218377187468147228982141967094700304992412355475415975763950627828647503215546463764115022167908854097994150767169024440396338204328703783941875537760759105025991614293821853486977922881830993601252922399178627729726667511421954281871363374308463322593297456276378497672535263101552824712511516647954099433658269145974206201359643406340622140687706695607333304300394370285618295946802701939477833348803270928534948896701919112499353557764835099742622914513454487360029617917318248717520054432544339316812039722251564920514551951041528008893355203728131749595908266149745485140235069100228455258653783695523013745080392959723742959009920393021547966268658847850833337602316138844505805094923510386149701862400520954820636864646641647944634805596181167052405411021651968703207292112598691978673403400390963961035740366369564028433592831094514390594434885605365943859045277749798030022192695104021172658413462846761996604148463265249971167396427629320830775994200005933551961265037447430898606150354873611604809256228275542430690319353954818172427854495931204433917728762394261437491612926683630770962439442938952991411876158128572300590485629131426372682243497307030500371721322508944100956072710649249093997244683722024355064025691616494767300614198009326367816379509854755221515993680835677300305384702421417970374385231802218831701692788026928079011528868638871220617173820703445358767444858768784678455210554255625512748331040736557308301727915280235764090245269668786620603265684890690231430126358749185005216830519255466636130940599865882033724103901020362973502571459535667851485899759809695945280264939186468212082155034050763875525551189603105172685825321415533405616414356732866623103004183318805627980688636782217430015578085609723862539111712687426055620490072833958645757840958013400324031966043294208579978488107062728072680141117582657620631590829712062507693724529108005552684932393824494194962505412452820464555042175543484030371505780171837859650640266508022756875839060604944792083590154536817400109272274847839465392237000026024392790087960710553732055759220575050416772100260097380766536553011095578626593131375938381998261689392442759694856464329451081571598398978064600053235851310453624790212399701596306059621700866346417092660017339023681116734749922565816235194569113201757766655537620909972918166779565107469504719557906476460723846249044004274759952328641503367826522653684110841695018559978078409631868657928458946949559948235334138691411984107729050205666209303065157561078007113177151755280174585325469619371205893527750615156010908869726373899168687484380928907833104191547851915258151468355435546624825069611935719919686055183932355971559128541854118666382256515436440672900006387620270483427898384915617903454004722403010531113426695033783828944585990274048137583921052603392083109107085379165990276933786872616430057068458475780769893572837165052465331335985355724115350293501749051067686153949568526436278833235408415254521133751969923656361276873532107400192615231081578212432643105403202762515488036452373568434450634761329774372635523800854928786098323905836471419395723580284832635894447112624151609714567886458740087717864722594337131358644711513726450558011939368305024435090077069904655470773414241871221628040446564404304815939612173287195036469161307634691076523510372603274990746856680416125105922396044763724622328536913427873461061667541152763136417106640622001236234119259966134004028819129901777236483971161328964381740691404853601581870904019738262302590100253826489245732846082429402404585396548628065114750744605433560557442603326787125354963807169221727858262482974237673532305734177266366781586112800706776735303546274970920563703487027618684910529257124128453909232706618321744072605617882313142795237417596545288192081479624852845173813953800624745278507251203779527313870022815899716227409986347440094961352883094278111208600582202337636950492189200037133107008427295857935666632668162047811463853864712445285820282426790593989525914553973683394757338115978420480829552985143800864998718784700481118257340040060077189224402685390739444651980871413226269049078431751257919760927997136363407445162903493432070226812151774932972701078527881601566212550111700833192109603688119199598474772685255798759990399902199165230226783845615299340428972225466401939269498350970222061509235444666761922790251157099399441610344692336293741129724749008622808468718008636515603083853715787678373960349253067254374632949231364723165465108012182388800684605600390076687786180402215703296720528947219368456672958817022326069273242983528609602942283864155003591404813351892838053720128354076145168622081323481742053286647901764330310267356895193347946391468355614262950058694098903248413131506026899216564593517369806761170450297944585360498564903137344191244219437745864289148782817666461399220019356221938172162947299104805061604607348113936566802996333448182287025105828884023725683385051738670094164187613513314618051082066521111166028008256792249565704243122922237303574597800209844861877976773445812174345276659807926760537514161714475884244237793884211343338688041197738219955361047096113822121020338964727273872605922474119427519583536451769762304847635492529061693197170156917401801033711304297029100255302331235969679536560418434358784654978644345426439902278622409231092635736227118034139769639219068838704630067451048611735982061298643445162368454559225802772221834691560533778786896331753900846201554588422627265061635116511823464055466959327746172724601797924215887560056497363486158713624879311405357681934739959535213946051332961545835904026428955108681230610991943358598481732444996519702795289035519480349486599435620974510573974819893704939929887439839015781469708445075005496315041534593944452650583791113840224470592183299423507796579320013098067281488190689480130842722986915381711391768856439730359159658653717938360598177208607089278485628213236247675667579481413017469530532229951407025579568918203789664269654549116393655604482421239934481211061534562939757620240676426246008500999134367069179674336542257251470457851855744784338759249350620158076179594224284460756176267211805801484927010921403237721548774588436464460945296305117151362617533693899394808357633436969536557437287319863975402523819328916953624832475396594616146585425403373732773285232078267159307681994892994363328727764815403808506643673110081106503294268366945981473457889453883131860901657907350002619217365213763451886739485439361929839335068432033270627704708021443068332607692329016916944607686501030661422991869328648177454669497401500944484518377072913986951953832482157064422725930742069514422367340668128446336202328521009671425262042170432954797401421436292968547190627577158854731556968547750988047947164634411112463261423380329091168770497742660258721819243540384432559477871507931911074720744942226038859170877903039453474786813490388281837502460847300406684675075187725228121761562699361087865540201482685298104834120913122424407810837498676668101114982826088711223721790118316685396653271369527918538596360492318049978073579804327386290521467421569995126270781034058680403659056487810548677557294518994615516985453298772085791117355452185329556615182532574731969653577051507470412714378631123212563211194210925447751228456265761973997635538230329018732989042599629855712388137046810701457131308662850334719737388712506411869687439856081992512625949444045847510487877970078993704690149299656324889994627669405175485887142559056627819680983903522016174034766582710834244977794192289000540382778948846732875076268453270481137304230900308273247842492508911331763623084720466250139005449398441815919681068986199123000422421140001995333479370360175312221087204904796558334201671572016576523984360196950563214005756641047021071658592342075707204364316601845056428961913392730318005428508648633148254412101723926323895693461606237671536236559632664523521155400104914597687373453938829111968108904173415365440492183923711721367677461811226166069413076206189329014014747346476340084839735856933932006340712171651747537929821957181574200289757165744229993221954932835359479186024398971802930988949605809746985117662466087457886234205515449482183971154145769650355757634441005786934353222429810219983026380216409257786920132943956932592930360136514681514427475286167629371132559025778578564611726976861478195083421140588668192743481939133688403329652522303084169600467348172696964922464473430559129002091196030966159313611011154972017650877152990636827819509225904681194425778659805124587941947452919541197317952296974877940526204318364051008697449238615767023674300563280864005974697149638551206918219844634094137750243617007475349488555478450199919410572759270942198931614591126469548683851923511357156078642896773550005213084496829377809615782087371374870892613220167941825761553623134095493298417637227391792869149809303084966060767330016844547395333957691172420156023527001526672983190922611415762540625909467259846646868386749904966426365627813553334937505219011307262730142562676051294408109548674653310530653865978375934443735663853784085327387186136971633982081463925027524226327358860438595368909239124178857370767621945377645845460533185377239112289729573061689609425531597693224285492089057696647042829824007387516273457861945809323175363781468123198768728752353856600278805681350694554175054088474725980051038872382890023248194180073909385908151713488280573333253444709079103581809009516394673091490330647156868190723719901815419150291763656105723439022597754153581226410100693231965377630144037083127678947025132185063994689098052175117745644356589792010917346148701164901823425515004845398494968405239600811582848762520749271975685428231145649241115990165062241136895556307762253910866608702293568681512386458769435542419185703416297475892344205494076427054233981354516330868325756689910153916641326853421862564677038795350825118527612605990555788807839744965103511964625025158376044288932746208607651385855632993660505362279030589974859289646487270067705674144963433778633889343461178586953234957457089632387829485394989623473881332818233970583358087291864733547883862941534357538062628757552165136071251141348676729331309990458646046445259423515031444233132800899621079505933205106344629910372643769796976409186486979459229485494536273824700903715398995493977793134331790690592258565529128536324095531243743694366859635204767607995719095152088113611841974138054727773899486253540242252296662829043234783935226490030588087765730624007827375163854144400830643678619165845552257682920545655381685106507494876494653779422276952603365981466638438757900597213208056312365261436074677194200803268441492966877185034909301932460299880510751799016768254434544843683013346323353130271313230449022104925359059106570916927443487338923313966280911475358975940815907519343154648178025468172997158202570005356337221206420535731312971351758252560755316267086850394681857441317134483036624605495541096203476796721198906174624742509443196553345873584887545094327071863358103718029568420965515322965787635599059093405236026271915822725985067493481750101122346385032164226201442536256570620285979740864617764971195841179950999741631028849201872050779499515007852034526721973131974965483286586236177507507819440273899833009002138638961172176259322989278666522511627330975603168998194670946446410478767663754160343987777543199312009830892348886869683769614152875656341445507852790477358253383885046347085437746538236798018569687920496635642094250879168023458352123778894696539050730903818906609095713640720548804140582402694704758579945875730992862624371008467720268986785545424039453699753012957731767070214400009253111524846685812330977358624166563871890982765101718183900240412618040137504369802489525787356273374922674867596684707261786906652078142629132063989592906696270325009664456314783668586080045439078824162467166247209093163717595069235715407238491182983749927044658596896265160287434482749638832310763286677777090440808168442494367491984586657916175118756712321699839636000555186357922697952949449032791040720017268531276035963355734449777137284700546863292840102684261944627124096086115543557204119398882661544057887300006670608858229597978803053205830608282238757765548833729584405735565488517535928965312995424940762285434306983167547856133495555531906413945268097364468307852517146701948455627777455988143496552771593579543771329223839481992613387660994837666917203618584946970574833794480411721791989652294810124561682757496591692561746281384720342169784898569498207091336267962113824731688813240414923000200421139356064060588227085420861355175751443755396603347562835137007745356520469569260426030443342312119164608728459154384282755376655814305148900803892662565457553749806007156151937332355418982371158518551364212648754560542856116893512394648652537169285484014379819712704014964486133900006080635828844327723076626154627950461232127522562632823444502260408442816472989787818553600805602991596607919433695081818718580344896206815703258995456398178175874697855553693230510529302823899194264892503475065328129347468421906255081652404316916834029730239812086509972698026230250122342744076929002845738687056795798965408884842713393887857510964186836187611613829460708947297820587361862372721359586971595260201214465635527253675728631539513607690940536654821326998516392436697285396871705197736648435162337436948702474564482453917418184561370807099942394574691933310870914066232125025258288126315518110946384271814505658581112216499317463311061623794853571097542128048043733390886787611377268245766918308993695302974834175810792051955951989029250863276360466860360590035713373100224403205483670840158025767887739977401937269309325051184767407451025357646553392207145202630785143393396005345796744253202344616307040605208996639616536406835888332508510590581574368254761403282101452174895333639994880668819054252997872853255058506691173870194084566057395971860805686983078383933362004228927577409163098573402124924333637954624535052149324570474864486706282519223600674473445412754423382373167142776085404460104731178355102987485413133797318529283009436537537735664661240504144587991282779414435065975733929784190710061692868044278248701580844322673961115379818328374692346660322500305088250083356288440861309148226574849929035335050814325836720320778470140776963890957453586806602542076787604841921972092396485069587534934301014234752087611433941248804815913075296586241103579224651177487347533185580308429429930374746203794867716555136221967619964564163940428514954963722398213449932984603221063042378115492451141064265702150424371121155643795168105672428022210741530238594945825112660458805595334911315014523191386218450957650721228840071157377176453353616540867227247321582773373864466326915508925340832713779594959478317203172454546347742357738423157407001238743225325515843667023448678537344251029336720035320227249144120008800507081720361629155292159369764944986578851125894352817911475723991097582749413467901040499920411762937235945659673312974259617781868525363749939216684177562679429100868097916556056887283244032898598650349253788791081057589642082246709616802263972757757624834975425393632739774827669498958581663940158067164927609964056597516469549572374373509482108166817236544021306018400498319911524910648149054158252132820580746146461732278306772514688317379723034968981851268548139926709708872128822336533165538857838968610246387740643499002217000749200064259688810238954597118390887762251672790953280419935351300453235100928594056093367617604582366060307051246794839975414588656284943857157237543198411630298028493004228235905706870728200998893308022230346012499034282528176242442067969298165720635397240623733093819717074975133677398190194264868274444670165364582463426086196529275433746130533945999247018378216354362274374448439648691980675356761480535648450435127098035678009842006921337837113622196018559751707758529470948599336253211930248027859820931674406786579983240130919061169522303627771507716828825780945527323249070512861385039123413937023777349581010856613007005140132669540370276801058307324148045975327096280070579994121826837829884353562061914170493547027998230234199610582513690091937593508325845482743408763294960300811230877028036269504194970858244147803951873361090399952259826962170095534500531625324857132017687353313921502620592374892711380097053426203162810295836251561913351591702296827809040992006988582896917734876036266819006039148774164361484964994588550451319111916019330242712275375437826923012275675162748606383587436044142061129301211445124154258143148709682153994975030448955602231345692150839158518541310280809022023636126058756041497832465794086217376708583027576844090236236180817476196248255086095822801597655022930990383317926673163755153184908172303507533193801488514467725710886476641262289814964659724365323380396515746071965799342589071976887340959702264060335210048225039304048598609248775437277728358686164324994296039391650999515683341446642887706647075862968670847364654995373186421218172097851858552346875702578069985615197652667307864104675280426845822974124412816377647203368208562534528500537669489380346795096359632462265219654546253216096304795158985668785181425946139627660100920641962120969741281971832898264943788599634673341864359248365850011200612322609872451369073623571967309603503643339076731855377214466006924878650521284224214005917352198456295346681475826441541787800327619803439822201277760316095633207388574177435342211087998062824284418047500147272727437908288275816029818938837220391307571342561975961440418544114000929682367933339016886380702703828441459788112627501606373484054798628793166216852411866006806953382863578615909399215766211909143505244623059695298396831829771298877585095416158316678424944024300862522238005713124707717388600950586386835850256749030472750496881856032694596540829536318643419030303044513206969467405590195951698469432529180238021439801300313735448121641847917877972756714595885401023062924625657323808382476265163735824379138069129534661773620531325974093363455746718139941696225626470014493303085237968876969121076011199456450848479585738997251152968685662307030563687735815821497382377926808699457249721078638959641012910817853400692937692020222908519618481527682158539270082031849312024953109927346189052313150343090882716438161756371724109938778090407854701882397465803166021828784034245131971776337056536923637219025734232528569802382838332570524825741972886433683705323356058964255375176468919891123594973358302034107963377687836724092355739788890975653561273168517479037900045102559723989586996673760371524338240181626203819110581851635108418092602934924614953234353914613700151934197943353796700085730228988679730776971277301663924029009207460276465762924780272213582791662400011069990186260174584301802632476679486736191634957049743180395158697568518210128408554521625797837413432438563695425865396431994504166170558102584461525456977247992692170541072593018554578448245091517950054842311201759921049858980388957633097821042339421770330182128034358775249645745785553299511660921459245596025266184218135435628089749221956404600734784930707534377527185039416601877630682685132773673287880596971123562841112031211312781958813113449693185435009405169417736841636301619554346290266954218196949564810760087066797370402285772113702076238044442072247231046707086059340789996599803902784395439433707748406321429907138209405876123285603050947536470903888569710323596975605372021128154649131483933319369321132341065711477312049527051249508132226148807624056353862983173325460424886383498892636880209386192772969041510935702863827597463420135379901120832478691022236960703232069653564668982454263782372087416273229242699724834917816325459812967448117265116595338786807673207416100009419266494986555009791493139623986927858017982500147193311991485051685282378820016152358808438577839194262696958778565177432011511720458426763386881300335932023371947022741146868610487239216993647667619542182513295142224422453649385903099776051144284930276178054381037591522617682010994767408742324677246133851539314360128228534597024049702095399908777805101201749699529819810833686856248740641203783837891839833040215663215008639715214858356551760336801969402673862636454949652481520380937936688523739543374481142421620498787155146902766851640817186993295445935839815786348672204085308608539508955593214372343697392859822502148072425575058688774789242215590085797500370735204339584187437469777387139485123268050654881807535305547041417914976607170359643597901784302795930070842099737323484259844207519716103097024514615081072948221871659708550967602310192746507251113737767821382603555213917567941437028959898765570652305271925999817547787413613226341236337772422126916544340948738338442476607019946296281773224451982689584815255060120922925152397118664388266366422377807812570569075053826084205228851099065547888177353687703685457666018133308503502973063016463147422313227342345863202845666665150256888373102594470330313154431795989973308626163362677778140888606312852948950777409295881612122038531284455096544199212401344383137569854448500154690780304627434943109243207771592327501865533761438419065601021811665770667939162721947731406139748828476384129777552125056751019641177762208864521545316065105179568742188180545054076243718532301087881216558691947237356810506980618750639518953030009821293029338980641706990537704704353566012502013395446478270112107742755094956782274386404926620831686353350789031132582104374094152339163332404314964259579995847277632447484531111346725076534130209901092744131754309147485547113241483089678133806956093490116749429715298505466354077664796416100479646510035116637528574136375385728254004982012328498188848006085208896984505321580830578040526169676283205660998364332681846461811544864959576087603015170513470943469290282220585358682539585429299300306322603351086836280194395721135644837684421387644671086778849003047204932868231073605408860907090814441730451769462751226210095386506379956357674978928294776196647816552298667528288868639867685192350213864970543279247892316419048659675467364613095574386011829216681217689108722190939226825753436164672272984157123929419504977454241397420771117602206906033113886422471681452896056896054279343539351428710933153976398136180790194624521874258089727413418469714188874858561633598962238894419698936250504585216708188281179510428715694309240825819007151124408925720863880796257547665617212955097963311783410282107135038450480949013641690915351127651926973057205469469838769366797969829614543335177387950634806997652876045929994813042074904513548682921079841553607867863099765743850037875567932899271675325440800440485315204855960060093682858262971275908569985024877588910021757937395102716948212158389098282395432876016611887527148952055278802739749054379613686491581608503496140271958498542848958571204288748524836631919806612936072123950524117352604659598683562897849592628155181732909213744420136708357383388615871915224367005363030719483641327411411635498642648627170183516589071305622140047798816499898150461738014815642139865410461097055799779599624923257785383320578698205032649767892951294907923386193541229419125196779019264032536067046329008128086972820404442418090813702254205284864228664026508266294205636974026565572435087345798150388948862839294264942055295996233789725528151130766331236385381424358926447163467347314963884809492910047887212167692132583580855169477363007326818548131508910801175519670291810791387224050574656317462272637299907498499314077806252169974236667070763749412129645402156243342927661593365556408623738147881305640964955699978525397699442150047360916521983481976172952872698231248508971419293602267315504982096864885163119271153346339840629900583601091884783411076289061194024265902247750019099440512303410683004126065638228772246014355356446848151891941084020626728773807409622580393181243862555558704569688126545500794888179500078169396726953894341766800263239056093584672054688261724560732862061439229079568607103410906945624125909676772362921383350433751680485075493169144077864781629908543361890402182371307350693791924559932542438174935490933421635748598024775159993777565496008029165627318923517834916660648725613062637049732404610745780427992467643060489574714226221520153852964127163679328758858609738763134090220142592807726644273626561636745849783492644314616593240448247685427150585491435519202082537428916519984768336628894615655572190822969912890218001737841994031782293794683464040425554532244437942586786844451657899789653615194561405735420078733490441535244572346841491246472752762790103822929321699721721606392501475028028486581493760272610932787640886204939294704734929813424599865339270950269817256799227990262117407821264168504159173919707584839453923103697556333605956806737561851691146806229483728507997779038566076611313433190722943182667928390518615302509322512212026191621086399651657404170438993594633791635792872026718518848519788076488678185929108320142433442231001820873140633144882695545000128763322562287506548006725432593232439008096488794131519144279410427814749801165121330332480405485567399774621211861541252490901504869342599528840737060778468272227109602364715418950802201610225506040237811054917764885771271826979015147282962369206481831198307836490619960487398887375552496682840192391007269070199375365782865118663386914251069907641572109983600028471433598900149744432295738232362399337021471876403996493293208436260175184241029414517560053087341811732950682202610153951070855172418945812826144682699785748362867287879143603378740880300658336749537427130178936001692339018038308236618228273256698579145226672665475733257213016905739440465858055478871934467004516121233218117234869345627050444428998866905898748353857002904416353806470063760517285237077710616845137528234497371199678460544077071298332217760266129556468037907709820898573643926094983037810746008589922167946616001211404741321499099980827599212104829712031618659579293155868600513818391160304960799052974934529526877680791299498077323436624912557034773633306524922332746762148090720575469664280448320445062021535369314702788994222352184124635183767879103295255159264448929117786465228444425058204867856037724280424437302481939300149715068329757745823263812471566969016143868861534273865515391718404047585707631037388080025500019660830535848229573969965813160017938457034648578636923985440655330286978267300054420088220024361591832130111591488653423774325826276119199263178550273071337975216894792815910806079226158604090359986489025489029357393498762405659142453498085798076759886392016247827815224279420329583933719254006394768296358162522805298006896349388017758201082151347338769817068177290452025610738747305597659338408333191455301419583137004557673590349591461345373611613153073012585253887457490616164419820361990068670944939367093600631266340830467500462515044420056406322936884073606553635756919729345750557125282426947994787627153633946016934056826675118852800952004929122030929379667807750382396193198461943807440167096885654123661112856752233447869215232345099297075227461341033974259616725834888008457172826232830116424856497590478432916155524757903598406677031153612698246431244392455109037212335227969762135368316272802669143158429935736431336515615343647793924049222552374855770838627087915882336305127824216803949806769677103337648133943624034864657448849017729261582355009412883321385233824693972473175803322722968952390319659142702357352417144658058128657236330749964514585934115758153591604569734913885434427085937058336530617081429745493942255301800883469019831577295024948880708475441987842352899614742626189867824832781730041431435954912979420151133123987757726166688914427650664786542269835385413487694089680954751828856484167732627562259207770137518335680286622533177927944241341301172522139479319143275838522801327421128761645102419012413020919831731812100349439872943113356488404665399825863725119164006464461266871699478764226847095963380858224082763704699610919813122477254705295807891734388649207453687381523014995298793637565043078489230686509994922535969446925505222662667534982628008642361796666022243928354015551470968685744668275805502120184507927440591307582054911014706930459699592671811871663717756972232158141991083833525661068470642441656618411553186295306737303014288758095113499082533002562062779137159125540088703834848122369427993249938974017403567564889781776860135111859914448360282584600380383446558883546340530793637530735896528487187191362184784805876126305729593115981853503601480047646993512369216726003689112565050582297442250526354452105049313462637784808386410303004343165262924928659741034643410050316214110221828404115865114618095333112440278230482471274608111773728978306890436653312964290534469619038662254783755701426518230432680703127545906813051048553704286655823078416786229045766245114600196117095879277558387233535748977735894706136336672767636185212704144290296267327223462695901980331512775432122070266164904230152254879153947313497661482472244403519787652744016738408541925427477122730108471899580519141625938781368064888903087194793363863818764390269742561509180791676450081633124424814129028672698805051055713033313702148507583509600033496446963862344936965392945679571485067146464694039843395533765631373042523493766305214061574738475514163286568612142991086099898199368081763819950340790430228387127279954062584548824991255119406888012567813823507672260833877246815563467100025471970246768687992027950520365792770913757020028833697887789510411534096970485908842419489387305268507443494227713419069626546960562044585309654143188112889865803389795844036065429142624810413308145061688866332754852833954708900942584435402185485230532728227405598264534806368864358761507698006558427540259664069703592833721040424504665579233054369211058220799699161720409059863489989903638456304496019934991963380066514737499245728900894654759624483476252568786244226067661689439635704401358592277652541250517154590456616958905454194938370639801733016471700519942204398894061481354359641585561837904707242446166338440838218696494147656085708921067618658343056785293388698994739658152619702699041413448896129024287293545191183405274442106682262583817090142064869465259340644974801735594271862961841348754912632693277388648371056852411228361269940031382053858588614367661648011856663995861260826598473400754881816968399272732261974135072911400570341015554283749566843148361979063168254509460882905173591891912094574942794955784037159361843652461317132617659351280383024096838092043874440402076408612581700234202546181309669470333872276088492824570824132955490604236010565315643161435841879794665569937528975572625312075068547019423011902485832460618483221596813040371601683318841542200718070503206346198517314610484537386363348922012080452942195810833329678001427324999282816300204659736972707877419317790642313777349649038528845280532803133255731959852463325345542129698623543339288035885139787395532679055313993987466101747680380070804566913933945863421076469300240742683396343202788867882199455454018086743923687460622221903956916576520049556257232975453485856693237217196657629998838507797026872504883332026958124011055045003387620927384095203206891728195482403975246299774161677115835165605539716393923669065086482457104784802173574982558066416105351592823157339526233789344591816002330882300202936413387322311871638913947303375174574408871903583247758007316404950288334670199250308905415663985836013966402237138816354693016526109184685342493127858021592519048221818263899485296186653684642071502268737848304494254368516886189583196326041787423227209574369883488102956175113380966197988903751178663119637386821873846648725427205769251561449190991056578723002488116475641550676493392054626055990843890177311471785961368941358224513401245054952801382576081329669876353173033104570891028763649768281752118699029929766879867186797439190238744376134670793783794301720631734817294811398921238451916941972468039304945852449141802640091343433971037907395803634383541316599314555034461808958473323451871125241607800198733598562120147185899580294166711875048777941606833012265192139794531704525686373694066817245717050182479420343423240509240827817726571197405258584018123932962590473593946189684241028705983618008693665937156954238128563476445280463904904930632253029332917097330001792789837341647660101793132829742805500857550553034375321410066568942506058832239342735806724501068930229585339506023191529661392289262864903978655244789026226309862799044006166525539168546464905879345805836622152367885668913955772247749633118560719699412389405081650496339770324921735456325683461378599857555468649654930291521211394181109471190487840369187526831370172397392823126060834118595794196640351127335353665487176817748352890517309304330936089673428497836233021130690959397570408594659363769563670636768413412323753756322314305886667295017092275170018978537259414654820828067368261611039923588476239218438895341753283754884453321903246699287715965043178620033642394447299551313568226029383844947339888084962158108937153795563509553579730044910395239601237291687498658956385176210099350575457968814618473478292505112274892403522153753658957487045974993604058264279185034700357565066716912408049329006011040397181710834426714171294629648107919723298686148294570649194666755599593995411309539460860530039027173996561957676389179421802739919809378902480637802525400697480423928501427511605685880500402167741097136486987123326374066401642793557655522216848875689541873596781239924122074581206336594973314435398714956959974415142631034224794054907905187327488381001815491304074861418235246123704495301877418129629557469075193457449189665928139956361256686478158171855598899014326299318814950318784213554500220884064964252440618336316419036295086652070026467704938828773203337654700503366692521722848114381711043296871496845419193873902136988291114621300571336218430860799760254280965812655655549294442056640636301658458022225232375869882892201563902301275844783946999873440706746734627570941294207267296973705533500218755434211289892446317927798247350731041099749303142988962322915423732656234465962294222630321261065735193270035861204704057881681389391354830079847455874130747132141709420762636495555214212397707000550888462923557140578740083153947254149206455311610791869295077765514537391944498937330211249599705372389028431880878830691264309771107365269850687811658276012232828436900628863755444642275561507878145258853811022647582871543934447621633897837872790591131258883373515439802979819821957896424459579035979241676539790999822894386542689656784370066415889606681439183964501805480462243360296919156686555930967610920484634478708561310163502600454681538836344789511539908715979489704854481762975021685912035985100268720611343951305592601644113260536163203833332352054400247325420781323006238128560518389537214515380942441955462138258817125225418432579807795660604344008783882651769699069469592652768781870917506457772836624020561636353901327860091433520731935358757683280472318950623553231236257116520824879174963589500461037816667336426758170196681973631499151942260995910160435755801072068523965189446253735050268650015977100268605557753741038637255330553000163603610656732992405839946896998351270472680117567096150077865804618462264821127230854979501794316931864750686805116166865823902460296954542891213815750482643569367344655108906728918250523864219204462191928135438349318923757913368691394988281050183280546966888069735334235360312300764357552999520177523803477764953389296693142255019704581771185696389046722992239753216742633331158644171190092877852092065714241465170753077261187987684075492002186413315108598646968612552333141954190801573632316577566099468977530673044915803830158219102897322874607613336977617486204067279998165495734829230315096009165844376887620824452057514821213972951810665479312193387559863194608683209920006636023039718462618552804865968214991790817737391970210737061111303785985139124267841804531881368094444460042394623436376671291736728200169564314951952568231580920216165636405836234495382597162595295296034863339591709897450692383078161666890890265097609183990089788901188512056190089325954164800665253995218894907418494042190060008606998727320098168350044266429355428937596365091769279287106775186712137762288895571027744270631127454801451168386743641171985617226846310452028391330684659926736298371899033747108948450975037187018420088321073211777204771858580082795291347373357748685590832832860298803304398987356531636286133369826579331888985026993915074490408945972116287225071972766079687836717326066203401066654038064375651494705478672529186084910415328160967040145723209416935506378604924628692229825565373093927705907649938189364952352687462821486801308637857188556389848901041837182454403615637110888918556243872187406060415118119215813625018790012555634634416554270282740176938529110258737091205599317580039853484477402081182656046589374328297029466541820185916012083304532070488573320089341871564940926625241003527243488774694579010882301528867235819065994440505676711544273690023126165193445988651814753736293081185599152259419200002922078553171993476134627660237760965371275270482810659761055458155899607840643463297169469858977176489436008605119354519003478167819150315491507275944941369485758602253339166959396525720525188132549088942665137456275469129648201498663645990606690973737763192670104928369612620582188045622033622127284188300809015755903666954065631219598392361233998482571098609711791156433380776704929394945862181303334339042264920876544884497334501398127415096827380858653711304421635097280850206469195952606020011680171304842837499707216858402979993365505830443909034448164334431486630825103035771601885458944234944265035320941940599828579346984873281747096772397725296348685959343775763218112805487034420859659884781369062952404989928289710925533831272497113911462073955502939228125240032659190627718991801229112724607711240512832237785597662959007276446201563760711387736276625308243507879047320554379568161940171958575168677952767765321037523705736835617508407651391911877079635414270107433291668030135452678166793531494150859550911005824082111447370440766796311221711208429352954660044353029320603952410493621424529441959360876447648924680913911255228421944404432934207043836042778642132380674950450297768718995333916923829056787938248280872296048480137920051352162316125379298454603935769050614242808075364080707238817397392069510667268010578508777347508870529236533106583270920332485628869942044041410084407166504725265958163367412061533029727074679732066653204869111688546016072636683766590913417492819067658009504413467505255346443215157671718143793360554810013145510033897745499946970492745390444856066294827920290652052166088845135657932850290380089050681734160896121706968731498073516637376289429687383126822799309877755920981076000849639796833257855844320157017283768780871007863839164461135819313253878643797496411499288263472852339883225580316242510622050385215128978849697478744933873502796276841115242497124442025143672613941592821078188647957287105309966646825184835361635274990594996589825850727493738423233649810920934920802732877928195134204792831903270267848180984816910979038396925569791457670458069240312477397446829771850378701044116751491636319119168269759108348028882201711310756741431688694956409738852357151819020752409753912001969420304747762372452995019536069749621961171490770212660605328785394619575581252196861713046817821945393476352372605261271033658786999504678935059806722881255690231063545609878186349289559290764111689560257213603256295279487478886948499128319610244451847771816825192621540149363408997003810169278659953963390117978449406156301273701003819427916864328769578994454315426177541388165367453632333762012224510361959696092078403190354190079439673547429661473034100268368111410235788907655673237559704849385326332849515977560117761240154313519053054481751877899359744092735682421354243068815223716187903088197711124482265035760546160166779540618531474207353631675563002185699997502829725747616100124218517595790834291624069049739507606092818646633128434237774798352258704820973477608810608930640865318680848078427218435486704995336934116601809246624373267617320337972016449874412087958698760679216283540567208510676896702365603479243467181229884939848169024973427358453333292018915974504615141660151206589355774360723037063337309329421342967255179045296376398482099165809323367113371240091854604162409900040827341513331524107175901697229540198301068051750929858699738252487845272966223426631533416434820049599061589330417680199787753229396954485278693383495220907913750909951236008128734131884348002888861037582602417922883199465796892329467971021555989191879583846206469554525722197161944008561286083519234831365324643276625482703845843553288007275314415135024028332822601971926971370855428226456037864143181513082500466686702103845614157891874767089631483123527943034200299028298398218663920051371309354028347440512133770902960903817964630034381433777984759261893710174174771541096774501154666588088505703621891905471931659329183077327096836700488313269965573158942195671584096951118851374423785641794216358538682172173311351732595920150662746521499116333312649958334123667769702320521639756252186376574948764458814178319992993290697408381564470472547523847140180608326497467309474215237323576331834066962709385889201772219287028652943300517425943034128571269120932186802243591653801732341542921597694292668862046393473341671539507745680056949055294362698508775579458336764258734580388519681517154367401086708457485654142506212341238956907804712577778404784756761442488607752823761401070383473686938594880360803874546690023254090536950412275910010004367535826934030422959660087572455202723446679767436150537008577905439686701452212714914230103014995436611948761100614510943898691449226483130924336936888773888526237490542843767466660388772186949437524964860740086256361716646166017243941050674526960966413819758487878487216400441937494791645501828796578961711291416803024721860796204895132682788377661906607499187903619453649778040253143780797931937217007944041841171995413521463097420065833997700897138030772013907305971719753259142812568185834092041354093617038490010509865057507093292590096739999009748282795484383830248424962814445418642218520828045254733491071078974343972207308112701902467213850517078120195669537218306719212185851687485830081196874914022006233818885890816997487953837448655189024300105888918967244949528821077894929159711513827197777810647128939690129096521280322423461283328177486823203148279816555043097396881713720781307314249065889816635099715373965497176681493555829693709670885087183043274184107592737575493067814901378787295217392288517277662816256887269715972330276374877700219575882063446198035257846575727033865698781569763369847928126906431088402177295232174887493919793913972893062067060103468576991399565081060500078044978670210891219193935155709360533885345577948690602201801050162206376089949584482128467054507446897566317635296896499046315342815867921899452476802216307755399586259475165913170241890117133166505046960287013537120491373413848478566325077087629879474697564895316878759857099584409453778643578273371553339426842103027223728417833872607652300855509312116289944181461076242365800875054408568089210481045746082911193104330383784075902340875889331732908741507197394321877104768144141600778727807923175150684618892837294354597015877468308691487751344324567863837712766816545505792558020195479212792059478674862645417555578101874325561170817926423613786832639093097136156615619676780726564598214301075191499465642439900835064208666756844235700724023912060851213899907425966130225941367840303091848272395865662465226559584973852269673221709120498742535303527506425656623094701728250171902746369541937221948499755392542311573272386959621622941782365635206176091836225883908052680223797459804483373019523294219909745249131878500655882267615907268864015171495468465544851202460342490496029565297571814910604864361008879662040712982225628046395288890641272990903436128545209938941705876733901391862493104477324658751371556282599614780346201229130691063320168522322258358981962154392359000357214246395200653228889582758840558568370586189294099847891399290307987858277829394920102437647762311970749164932226914262868020875077432111652103704299165096891138483366091181309710690667209676678608514867220551271456489918633691705101072733032294941297016737948956140601161913744322731788737001634824797339338912508080175597979526124578461117578421531842492011673675676049000710994563800205214324048355239434344167590452616758004007235543997993775369546184089999036675235235409554489803592586403442921319859454213471660221562704306519836023778186140868352298477989018462509551993096927171701586630633488917174926475600098722268963592829775762248844490172847660134567349571987623075814604081936511024986651873799162697413539383020566796471966055195518592614986962008966371776202469565636263209066512015556454172800329765896237019227950206397970536187041626796608565652389819967430709489805058774960959384160938496685031429588754048991425925533708845619557254562980923225097425005720187101202459578794929924018116786904510178136884450417807011232708215797455604015987021754307108884004286648757894964953918367603464666401522308082295425555393724315689610830609697346428479889913478407180704288287840769490095424474471174432110939959209492318101949767339804977539717648116286478969573052355355530145861772204777871962910170239106325966594488685939703556861840793974307257358142766081737944324956300690434438251846955929437442859841200720165106555971539931168651578567714167316131808095490968524018612777779167706393700767865019693534643706343348992849183528096915672936720120379887038815297546385542114705445821703388318485335735990115271165487602110414844452445275718469446026043724757866733471470426950637616832635029159852877244024852192919618321454757781098588905994105607677938131064570496628129171066587625375476535884591073468507918797299377999511860532606648778984144101715366659797751365857959229579755091779362495650030718606111024256423593434675297762413366480016864009823472491831697275363147389881827088824646529147180513798797675471844177649134681038367260271696534076683263711110610323289144198033283750430882327248950084199656634008552090943558360920553525646649404046180291006883543381772008081396979027888026622354044058708316636095948574196206367674047546228865376000669095643392849786396876981798356448947347097736377747795977522341253272148560350628892302901682908496783211473837821665449456180050064976215930834700996551996571278472336210159229383745302733412872494887726598663566070908890279704260686482372912261718740472870391518913371166076457586263056537860357740295986841755218974776155235332397554293822365226878294699292607656620094763144011814830942335244109503615345720546304150115470463837633322927498722232939734795984736038337079034292056634172105560759804933253697374136762360886803032432776543495390353987018442470080146635964845045087610144211377747886428566319637770726527481294053284910364319713559931558939204490716344364053940230779500538844281800356141020121174646347941163976392184594651274145538625919394992250797124380309473952183263342707833241299970315210444655419111393404964671612022359901311050861802152081536185442634773084893166791901338072737219710177945331890997286247947484713490948980552625797292324400741383258467563249813815247854778898478240871589632502725051852671870045968628006823865566188432214742244314465001621097674296053381850806790896954600115432617652400013346826145439224611331711356730058614825154576679300558564862248105858587435994675124187273966393554007671218129020558676716830889352512160341468676616805250315724548429015801424962324853175078079667983086016610413190306680585088525258105788872739025932779725465086234021233429394594218439815108312495272931827481247588468151377868252298602281348996390061372910570721015992574031557495373570978657776419823573182699890611410580938556994871062734983981642261201307979128146242817796290208654317468472029125164619646819004277538715118486688150355491509671826658695806854068389027999495414343731733479915111406898128068811706854647119926566371256043643950221546084461362886545465149613452251251074454053813852481514251111940373451245594234547102651929186522057080999859136379496166335575913492957542315770001355798425143167827080768291200705758687662546240351719706136507974892724153386286523269978525955476301542669077820152744839846681733793327001777181370841773110271824915914317357511640248957767136646301638165274914296473176100205433685120145971875093577956171179502588118432789497823927364169735134069678373998197174550867449386053737658181818735097003900627166448452786427756496127167540680241878170887784219149965193263879244542971492756691061280396272044792290383558198721005748803335777247667499859367345845308294051595175096572777593639191462533296726877579220421281089652846392070601022604459293816064919541835036937303641776035839999474865227768427623316396667736356928152339833749332925013475060773403606629810281512397535489048105947430457166359629893073998634476653020026946297848032809480747323026023393620443766762183852732473341585087323377125263224225836654410844546708935669659645733039593914894571666968784684711620035541755703671004585144876899457028606316448266034781741554799770115155115037185400325457943614421212968086078403328870290477850678715641724020753674672412191455505476318432908574892540982373441008845560796857997570926463293155399186274753872538255797718474566604371045035879969292980565443680445764721319757263314467586463234561718345499576382807990204469648762099198632439347256584780072875794265424537082298588716536052576328954068098739554137842738257245536074635236436987056425399320151348591216658683988317420208240058156827101797220177042281753633225145550001787250653850828476604734653556096269332967799038098112076765207913400349961906580505486402728824603283260956262289523184150491885777470397998721208707432796615237313338384462175702790915580579740312330877937309188583607029332773700537986361193170474039476717027409549679461507732357340945032613932935270010373652966694820082458058235655398247963032990323723263316143248136815847575701337518911501675006355498803117554655259257411318549498654735932033222893924489569474778416327326018557576189423281226978724091222791622434500716613347500511158349240583175269597998930913013117082916026636687972249775211514392550376797195762342087507518097294884474577749250206555086270828458795586051955703131395035779457432601271922153645171826134860115302911056487638998949780460087908056304729589873106790149869491815557952793015902272682676024652136356041996726469153421114248790924641383275921538695387236543533864345044292492900067270284233925223526580699878087222560332274365184085648190884958412264155144150680028828645225844737831646147721284954094378065700421786296096816449076210327717995108260200563715925993060507843418878993717259602436627381329913681209582560472201662309998802972912078255395884365665185620558557271129350110258276654914588336752097624927836303382731664810698363600882455698435980533451605211230596739662826388114863924689894257315478205044105547734822702356388007232686222047148869219706531999928838836559423604196473254066395190733709647332393345963064492970394483724021427705013810501226969344444818358798717365105721468605598482102417994003965798440884336309225828523256601952535754989424815656620827380478894367151646715683431230517158388557811062790423266477071248812716422465328550261954307279958430202860779985020991752294269056311028903267268023941467612528990133460526053534009150667985118607699029008861457819328614724172508735417179929117340972117052184282276314002954052555858189648471260634662357454297945975518738101704405655003702887278983881050367777326171417756640868254463130366679168333875357581301961337984986284671235186909327045223829372443095801018213866270285736649771152311363651742465463448942572853871803984278379894829703279018799955074924223568295449901264695361809776448432699472862115991551256858901752111506136054762460310696117446194302024069907273005311302329639982995719826017341693026006940506757399281165769749887212117570163952179387943761542171424795299338143449391599896756352569899496704808576040525435853350408767683814833114153233267271905148059661459307884401394394575496309945098191257270468295461964315792892003551519953819063511829309970434100869697656262905794974858483726227276712909060167314708753723598820505479951509317950609345116602030812015066038320406046093862093722435107602975340563269654202325700434172419655665832747563770203385809831911958728195945047831395842976705172956080696870475219767463469747530060463805074045407574427499501716506486760377372352695019427886784484669847071682162205278219741226728815406111330877826679771958254792147315199802435819108702381625724958766416195252006529025085060185264516582190625924065249279828467088435283949298713204156054165926878525024645715414362893499790352633142529552768293863393328360386696970221213628696541277247323645329108664835519836870192387172432892074882329529081533867699490051896468875166586697111657297209683036344558889275113962726535913450020873216065868298748387138133234121872603989993790421520046026795704454773355899377235978747342849303166542059574662989795655319120462972564461870042936599971371466256281137943745269428319493101937390828150160287037132997675600077104026779591100937635099546720384236353156244224462150598682225919402646845552511744349452187101514033191977101468217285682093184400417573099594975587534397562239158995799107400815591718769966749620618340516036280644435469569602768531375396988054028264611627180382136813040981140109359504233910517041445014474805984988663808436375299201666365129562617566932161017489743899536941649203550838177008220459326402750124758564631748570403618718846206951343611657884964818040046831466373238403336714802527218685558789676490459897794936872027449363603606649968700858605745340837628768109070738926840206614193926978162786616813837372100217297443221582031565704869739833474844519374384383552173888373736160461140719367443177511756256933788296517807518067464363427280071688374852276711075935043269315871220611309012129026867107166355770092162930713391035890130405579206590674159553237004168000711303323645250391094326038514395944674622058761813901980284121782128303590262326133633301786419503765164255197194321272445230015926626715985233939335136183926797549527841019394885127139091893090980701816427930019803978308332536132937820275912838545438078818811968741455712697415855572454711531890270982357877322142696780929635349926674405953120640201733070841155755940589046895401080093191151468381478907013735394384780130816566649367026262776141041525446300711511568133252897028988880798424213809406627355567072141938543375247768728689389610639528646965475396029298147554376557657171947245960991325610853554705160579055970288574262007131147469239176084174376390744015874719126275334561779668020695700685264957748339879405839155464697002543861642614192093428895173950752146667843466603860463329292681557037682142047286328383038282552487562672428922967089616628123095170930351967565195342750713128553963024068607699520687274601658630825888228887876957139460930987519129229739169066786757006423951419184185587151595783843762919993789108740469210200594810632855043807937588717077500541345881748985552452950031476958455819818267527997026261339278781540814172926156813382604206044813077627535932535492992098799746624051747113433861649994394518444620370237727789883807935247078698459527133805270287769264545023860849537461929627761226419467320583222000216168901966541270298098420198081358736419597570410688390958131090202061265184715186382054036939096536663368119429762653454055028901785901029696431410812354392397704499323071862175308697505251270122692307596133499941037458567230803196704737978389689673941093570746187143745881323415922677735397953975472121292670735755165134567952101478688872780355789298111299072206548039544288155332448449879837754202293854037019797732268342095042892457267970701121963984089402088267234237850532175649332745226159217903446220016928633454491362158204392085785961300012402206070349291230296786636216835383400299039536045671749133045035959834221487566576178163333843545897130505672628989768925383018199358536522351043025556720607418912681859288999714511879605670318652541345790909945053938977910488095376855420594234620035295783004883558394369056035441530788548773938473816228977319062932127307679536722568954900649521221266786309398396208140565431847976647583362811068197062023544987431874879377850572396322960325182800352865564386317852976578903920883895674210241043987488074795689226621137546224556113059983865834375859417662600728288598840685264216819815174598796106822078377640571273348175551558718380071642851537320123546651209128544641414431333289273879390307608448781882981367444030766324247213065326141332641391367908118365464389449240787005651928283969274424231007632243154488001302553259043504009207605235675532520578122434269108902973418878325630456194041018165857278173350771851333957615437227130192305984777997904016679911711394145923659541222552835484033113288506956580202627265448483148453825476724366106975748069943429383599863508382163937110837945636658430212618648729462806041451799039608361381004547253806987491490782714834890843730231217780312406616551060034242396397002623449021948556084435336154236647953352652094941821134102553887613969059628645319774074294315600607912439311267065440677860104987341725200974775094663840040858255515697985469659839452228311380661976489447808885391340721935673685574398175659343270092286158832666745566603147428954609527163514909390093652129884185678596647320182396395052083876911469022546320805039477552065332037322185200836195849756966383141398442153935426943781524182950313579087335024286534042104987044678148124090217667672471784555371202670155734639325478984894024814145282192843564808091312498126285696483726793456532836462723400549183914708258870344163964231278349369428381438983508730933777940101763639731886165355687502713909035704312248638525219223018018307736550407686695667893558428373564588501821066376313277040550649977034875671895299045959459865539553010114950509927263169099072828079142771349577423848710864885024449292367430825100848995928154855612493049509999982036037507095977950187378022397156654287319756378822724188254857543844462476094687645450185451288675170315054788201731808243089279549048024620533542413363590737587564091993842017117987831856442036842404417034190741314963025253877395851938623981335004490087126072534280812783937017983564892326953112565779623663497285060028276731894554049163634666670292937155932222983091667621732395822975326385046445756282341309837190380315208860066270363878848641642108787641900310433302476276946605957925127630897771427386163139946404612300947686036518729944628862677090996925251951344667862206873124169537832849542138546077252741632932808014544027723370978794984233781117969107060287127287722017151450410245712519427240877925313999372912606761845467049169400853812607726236185370769571746380648390289142864317957072214221337212210399941059205869275977263739670871059426655474019952261338903061709457430122769569331216114738561213397151976876726689500897021896777204931200642118805091978859199201255062176149884223625787214491453098004904106198372675893981450411183547734140337026804926516494742469879640006084281209011092272753943642906258594282749308397548226050698894626731776536684619477978582608112053790259157471180604721294990423307985558409717303251459211951896059510365757212794506523416202790922669631470906642113892853664108083195069113908565201819387879472930613260070516736582689562792919465668413471383990405309114759078006297562317305920476862773516723374891644814306441458593601715636900625645700849383117408354877299878991739240015562359100288038331819819418718770164068719411893764584949035659305509091080044370760107785627779990658798144495062810065941600793869433025147523514213337720633841450166612474345308456814135965778283371520195979631419425037598847282476733593759434094171488556190658457140518469006823659514659925557639666246422338676571880366626701078463238096645336574042963666066399187359097277150163580003109149990417522078595095283488426318543472569871538589183978892207327790131737448192635685038734846867173423900164831717787238865903099468859905226327391084823164601828726300533029109700954986244272371687793482290443344562416928541945105653069861537545341275519548413225975375616362071652799627075453831658965156901685961715692680605440726659317340411474258580587879732487510800431989592979746042979860402603438089446641552568655170051664082105413871815030122777413342383365507175351668631872944284417502106239868808486128358541052340775716620139068956297892378915384519537537269722977498742963098607685915067073574974581602089961983826809233471194250532207233896217159559501888091941091014296570342076340304832829517891862043765442850257592166612225674780884797993788077890611619952342284784550464802487516533996518744385305263316874156465474654767255801233397837836944152158896506812578038737694037014389474433366132875774918676743618490951851899429334302749815854030412107978039834865304435234642792790215267338987245842511890557391845188073110798600954896061913777941369523059555305938190500776661068006266787447233076804424451644063308261185821581303040200861971021468416975932693676191309482989516382459845807130975614097384616128968707237206299307107274336829735487626489114855054892436254293523057434614318684672109973860503194054797628455075892339756061844482605463413371536777831272614009726252264373516627536371857212212087582272583417046210794411308124444916187788217236619695684192571178173580205138920099815801633061610000731093007119355680905839680115742547364055092119543402228961175239083778594664296919509177992382817530527802332275209038968635307677213830582067286796315965272079312067208753172465104934363566399014365149778812353260713474490862771971683552823739570151941500036060578885036900515658879129717034747474917531967581250575709011385612708484419684634882079696012100152572883907341095073025339889865239762516634775934247175722591515905012534683733171017186891499177605794421289575619978030732279943914752866417828809577711803352616155753044061657047004682158233106547194749013415561822806089881915551339752862279042138198527590690410650983243677560451547438161582125616049829020939872014754056747376824114709587679561470591660326633868161157021936819745626161574855595947633136292306970349415375088146896861763289375240523716847176762422306382413414190215734124961167888027117622885410983184529060743579339333930091391438332009779861339246829893211951807695019256728936063714478598498650207809228677677667006679335578855620757304289543255767841819001418508910056629667563322294000258114932155759019063011382743424213417010174487382589920677940156315079889200495215311939723388780814639660702437408968580737269087688422344964473151756651916426229739747452374761456049296299861444430014700017515582459398463459775548148666784367098540434623851263414000622907231225645190894640027432442676699329376424685860061149959584428102775684581806386460926844672691501227583556530653248937635053205972179095986803199623399184366447644694849522081068158299819039172608430419313932991133593196719125048062537426141540640866409861521675377706961062500311430630280267855720375513594295423415465251949968426213134338551985703176246980408669017832574289699608472393348805598448668716302414196925727315528526656491078555815942701291269697300032765859675042489286194917472131659706551748157204519753691883441225239256676222229747860016111494754835636843447439539039777190923643300346331746496647245189939929609140341290929504046113051034985782144934455190280798182998444368753749513257479524282563588737025038419432318893018772171219102687020509536204935012639524369702605890948059602824921701584055218902310147696165639464789978104365224368474988413087998181316625277626048512727498524708153658631580381919890330935448712846653388061292195041885915422340147469147146360939143470749213184436693190100916429529868106318745676602930518323931079759185376498229208993792474937911915396409340043191604804176078286176120516212621766713606085868163158014035874021735281242707029954921480448118255248553876252300297152162446508360019962517318041931409947742296922880898533402263841289602121964290753366198738083874774572806245460681509770038305279604235832850845509898694465346993552797854648890630689011113321767291279682514338305903895558586327051094420811258271737625181873567917178683015583779620772627523213942506545109720843943972513920988783482454744610482782535165567178108668388294565315762710381938797926242756907181861190485229895570770121078975258698325447051687617688516160043057214110425461028552368434916650322208138510704856301797770831436584728316435771388271062991619615477119996948475536070068595371046258611707986625684455805115749730265004185266165467461214978235687729083352117871712080025544984831027764259748474344383719805126339195215595228621889969292652964049914597674498250193984428062907671144440876140102598553403908102166823060217414281755744731307446411513863389570936140037802389412659369515676445476640609911517200839680073343589534795728868222759070894223311188195856840127636369590542814347196255057517785758993703058626823743438528533844394678280625478975290152597899899255404840774677275929334240289063610735879743266666924141074907938934451570108461541866563920284561481616292814887259874483444385266281370804380211024774919290094167205181957814153291772687435970136608294930994344977588920009869177204921046685547994395578080612346526966985058427647080588643077960720012890725107936587396010455366157092170660248937429031247152119451630221478803063974878208920944871871592332991537210188769001202296463272812367317588543253342151636530305596058437303346711413272948028090515634014236914049655332883449582432899873663026850231318499002650772589252384906428652223313371502203335325907654244071949835703644131707916083915013669792873064025144323787175887373258443866467682897766445719289664057011832119522961830352458307592852435457407816033696372809779757813346265549292195349329939441299904249550153305183388926785260160809352062190617114170217764443388930796572429149336230308807569585919592550194809521287100542937265207967713171586365176502470848099590915543854456099336472157155079097561168170726818315754981795015758980928942517231464344438281750421585752329754000868151253143785451793052709463933842098382480698094373651028859782349066956507407758148256923790526184942105698190914739555956472092190991276615019883871757994292438709591910493180076551144810473751946187035192765882123039327767183264932712431098881131307850390189998798858151445047058476411939541932922699210467810299298659851009538552788845022901837102043364002239474655277371054277707310799802076672829564057292215471647472849482792307541518514493823864568131576593710364499619880647160861440014967005234380769846558378675695402296612929139349731788282949347562374034591836550783121695607555767334433217596946234084686646510695257320260845183061835093091987520673890933998654417924538373133851235889931230573244839744931360840878264888557754187463324905385095260918568030621035719255011733937559582346021903633655302282322025698077604831568063601994651226418942632470726374952349204073653830119902943211733733668654052281453683634954078747360000158758424540421010473316895553300106765470231843938045833732107296052870981048691395352029602904591852393473693607021525469626232728342062685879856117545281935249572618041340739805111760211963262078861736876844026794694931298028334516585289970661226451744311759204196726724475668973114723426314451898862218585811081990475563258097552724858970939063168243165630006540558104054342105143006345745595946303069185931246384310651991674011627780239743515314018674337423309651896668613672341754641065190703661237726479682224616429549272834406641032764984678299640470931715121730608941844822972831860183298795085109230532317719275803958687096409361589516248114574248526263835951785624158666632159542934557605618681543840324732504712800689891469064721630704005728905832503368774865369394632795323742587283244976813450561272527619574676577163650666492879812079809613776919725905445899673674956600288690548658319137025165510637710929891367470411199886098398221352467901219708487226020484094016075037675254193135800785135293599378029027177901095859051304387633958756646752300786092666379842030537243232847167873165603832524649890280955057860193120050722875628082526317111079227649883039527039399826699532627117371260749041109145145723326589340287833059376984421550441033908145483016683761883050570322170866067794165974068605093233563584145737463099423679170384560110266786315449324650893688646088487628545067281991881234286896526945376023405897230951830764792627204861807074051997768580959473559218979257100921804591577465383495791255602994607586081041750663331520982333000412412386260850071718792947812326282972752544133000424477863875516878062539226339500209381909625520601838670169942489767484580845524348925482031155372139340445989788383122986575269060343252311338888698497158098123542135124190157012633340149817637422531681895177484060036673958881166757010997367782733761286621628212620764565213401186236656912929070812442464581734942716147939056836878744287814850694507849196103370765383106257227307726973710465397282572965209381830432896208636765737800394987503903736000410762495711406831267100991635729942140514376152666555237395531040490182337081530834425618439780819587716082471451694376431434505259755165761889992475846194617906003773327860080436995565550658904792518696554062829048344443964485877632046740993726447090438617852503578469182109326480211443450135787939561469885643624435289571006189677243116455364051505734470161666469604160090159903973188462633568489410174867243981539809795409459794009337279007030133708257775634436323223051008538748717988028253874750622031831222565220196478163396889211480981740626363573350076834740957266207226193203433961350034912764344046202191068521701681562731571715774009909401450077318241126115631006282235969933864969588582564045374129470082060748467568219416456616618689698339940147957593683102699175477670405017511376418594399732815156443455116538619140221751565195622162281322191801398989428386734509972210131844540752758082756986178285595114828676916749350069424154067778184278633633600061731510537977743841621325513336854766162440982888751601576083121883220536577005903623571583541308454148043325179416236235676278673611582124484681786233763682846923748500126618189838943852657309788063224995534992732257833282417909697951914417477629560919616403819590343001265657627163411334524868398410627472931437891154738355586002984074959934083946216042706003218379761641741311275047013249425459482191635982912669283560964470547254537960771497112298596394585151848770118289858585040775539473851932256105895881931532090063820305074242723919571602696667160409844762899837773141396292839114399948893509032843240804631866428254921038956801298774196204891121350371470075632792755781072029661960928620680870052582516448178065143361060414583793103007948076019916545549076337163258634612355329628449801280118679175437260439754807591205114751416588408314810761820087119923558187915225870538507900645936524895687224062885848382443750045238414663586312189128717315104099289181097513636080083596213018428514424076609263570067625865464494391327685136891403797979385528408552688625470613537275923538026349711206112316478875635490694409372528519262766116836997274279599347645546287895679227503524714268968688422365641649562626299289857839481263314639322908385184251413989615986546491126390254333581415254664800950847475947107598421485109250691347361271919742602909991313948450280941759273275889093519921700834436306263615360783005025272807450043339153081189016376278138460157226890121631764889364887095568933979698527054831324886554160515463778427542897437458938345206787052114363393247603961189201546431526506693717062425603588711351225614961592769391222380599490652025999093473634818054172668405629289610563529547910995885883634300956168901299738207249952670880479609913358078775338805069081740487848833073431350543110499136368308930663248096358962309628739915062232374795896975671647239633558614415997778930411055650318908763095507384274050722591793266491151568684078698333024245702896338356894058166932359026616110928874326754963995480774118991847982557582610728196576675951762799968228538890471604504321445988288573343842801588676344834637200751823117270633963134065374475758238592173055698989986406278576956020423040266274399700310689338158654742965450841864578652655647672518187550720475104677576433953720016152459636332842705750523572851583943332707241397717406696760390324190355363458195526618730376342106807338591526174514115250418723951326765104802383804298200552769718336528910785422311002137840769098580043382781083898496400184967950384088606146667447950064439479913187371366136040922720498465029091306936290788708203529974765206170421575595233308715896930380892936564555805989941107881228102471609650290862598494206101133355653550003461766920191404625582614482368726268314350124380567583696948769652438461718924577594297980136841468233706807996767758179861415463763250279182089603157379030250798925875070808707181261542274893793234059500406426741064421842274080406655409666848510736761797711135072118163345996604023936883515416740278356991384583224187781989048911972612476231107808989746000135199943846722955054405736888121838973736523472853940463297842485300511038007213900952527347235152592902405652228110585549522650983679234039007727775001544131873098654162701803860876531012825464072558122206569535714352219273888118960673181479346440515688018826298109996777743322476164772175197464828993734807941646856113928946826949785398445446076020724598662097950743025147270098131580240407715475181332735749578588604011390540506272190766194045054248236102938225599921752668325470818998990566302894099809974822360293649264346399790609073665456427892977965241265883117965800987891399478655949983638669251311935250947363994699406617622986179183169798156158459175567120273082218249057084385108091269381758621527097205730216796741037586586352676493550578012416875505444881963869551973073194281139182463162700685885375416330312227004320834193442858606165726388395084575733636613479042389248858234005329256239827764421865054929764196086577405722956412012279257273773999186941172446539801074666357417883777326524754659779264647011708539107901870549915305578595967604145403094759828218890825988742013750431507185405594926476608983661505610142669666449684927429110686199725789178204953699101313571948250514428339041515635388552498585368462545034882004229916708888799631783221011005459076370335524290619242104764870745182695159501354531339557237605641927890593904340970953773666369543706201952328155138308780375769979121080657028358462269234413786863318711176187830888255692331117475009370140976259720333602300992786056753981047712074735392058214362562207316403080491522704244979171046222783633346075125595160067186520001181183692762885409405343356760483888526553694967136834112323794152016721884548034686884765655494583219536503428655800851191817283956237913545260736947115120671912678795309100870451266877130485807488530796879646768953150779623996592679517370106807685087188453860431298080735570504936288496969991575289650865059484915413703839894097605984559374114818612807078605593240750833770686367394185955115880329906998998957635220648680714907322926107274709393001276145999411026222624576481022860489545932253818408391092420898341597134181961228234528324959801158497650116221538422558701993475678125276062956204105439249184595952617396833904631809901410775699439801663915928288505669916425178961862518693722762821821215249717292942916614763386429386882138656004032900818076775559438030477245709537106562295640148652020562406944692040018760745344390336340858526379047034016497174165564764275550115506895516613133395866236596120523846798532444741503815716446552759344531416397931868582808806761863078703225781613965262793465938785105558933369580456287991451064429579243086057257039560903343710637745328609450429325465976511677233493076271992296404144621873676876657391420397319294768429751761268643380698348748622102483358514652895910992379520176537582426582464134825252648903588858500355170878078280986919331483045324658875636827936335862073164593640509363946331362984727601062170234503565570224808691697568958674534199269573675433469007330954393914496905120645997463957472663426845912444659507840336462568061120255672320669127598538748618025768764748461407266097577541913323586044319078874747426232460472229483121711417762345875453558944065235051137532212342884707534095162965092768838394004120982425430785434664992061224056796272772530129222795532431019896801794689307883075337251825793392726147462886718956664053329746534862720185516949814664621025100618033200646825246254594744675997019430911950191268031317413668440577539716872226331968416337953664508618694920998306434933347309543109838744056711657547711883221308041977464541334438792601308119476130885176363622258895183991050142095631835686886145436691505212715521381957491834181897960948343163560292666186087556691945359196237762474407559622123069291899842295911144628394404635899095333642927433695140094363532321165300206895736863493451189505789837428405751290260773980856768097828313624652249895508833975971269223359714003005621737901456637899867580761284379236400375858804223137587165047461127424858600973725271086555733604847126529022805295119219691237893712958658590660345240894323243157645517067276401516622895781369963916192795427767713546776568461876365086867836481417302627412377287248684677834529426215590693211442327710240201720137057922548899413376792739896114022181557938946515912831630274846703739694632765631810224745330205642187541281071978632881994826429719164615415783635677903689580039818093668591320833251376215201931120846667868247172487794408956915413292484223454665584019714823673063046553418048694984198474889039465112083527168882473358058905962571647797927556341947113982169450554048206827589382052819654942823191603384872052556506623201246387168772443149446528880589598240607187273054541179119935156612100248816819183970980793800116960954477989223623434656168382218998228106661599244230441689154665165586377861699242889339377889878032368853063168797227807949540819075508252516906236723253571728845471238160214278146118906175153089853378834185697198760271121934662202376483440096823270277091196684227835984938610990703356504116885423512501182007517007924600001516419318072755221170898930601570983144042142187545821482240175461600984392556675710721834365020948673463060246174334035155331954538330722536337461285559714340883512090866040107717069437571250648878396449689011063589048278747855264713831759202366992167931112308692681221780727244023113980466433882568679746378087973591267034584629201785035342622525350799971079521586415793793345627533066829695342878097611416540411210199659330128320800692033079560562717118857079390127744668486330250961764213056576005014063601529672838374267207357276157770853118643570543606278437432904365606199507722634500671488503382728480845637963360135010914813754809602667538850339656857050701538487962898451207319008144056548192529811647366508912943764099185228922858384547953841340910708570718467799756067001346638353019018113669533308487206434468819568112639150284367389919018596547015958369439372310636016115049274103842614362578334701932981158220868068436034666472779480525040903519531048587250224776977818445130979175543895669418870142974534651976866658318464361246676261829723656649306818443628845641871802325957447334871600171116352721744893976513833263819085824763122917455643141711393000083568000838496106343284529249074442455619828823787002806030994288467358945398733427292420033586320953840181512005362867048344928273295290302385547968940013861322848530888089060983746160097559850608991153553192203549512636152916632497184914593002022479438545171255332678740197109273572792273199495430254314176166386438703184363646660183300525771108570526092015910072756959488451841442414280883742146216908078874963593714644678569538455274109359770157699269440249088664490630404274756234057108631305884791852059287299575186424189886389847061288031057486436617847334434317487173519209244912356093515816185744587143621206433222327817409998634948723409735079052959572528840131096674980386202739805954060729789938900707034048822472115178902449293403645898165151797902722885471408521905804552433774380882659445183757729907447363016308699069184361568507845592989920442113578299898824608775685289286677156913334027516662254309159917541023390812780479259555827170317751065872040383606727546128593548771628404194301662561049637444966481380187470872106754583778779272321697634025754865553876401610771114163231926785054111564586656409951722777087912258316102873262156461509997061756848425817321070887322791529568299337852158808443076372622348006927142346221649834584205011251370529852399895570469947112231581319080679618445075846776973341968919301491372687959204024494701529125601852910162290940785241217351101775405693217385656188983560474893326798353999335408146276063744713808185347943533815051859697435079761632953281276908731605352394818283927381928010652424167126202689786003459581240754199602921633649105021734338535320334557883711340173906532855914571160113701196822415639285578708032723160666790848508573611616978428820736306861528044956706283924895986678771365892666512158092632516218127718966491305082278121616072219707709472500165216685295627736109919599243733247135133255961187477790869980816706039480247414746823778789569858533805238003999957368474543770293314139765364872972939687148607334728637633290308133914560639150439938060144919714725020698108937284316294885882465580167637763207340358304963359289426416836755882160470626864196097751953828223405807398231384107229301869741441991286505472857898525653736092980583834542656635788291759323050516658367545290607169382436033611610282681900754711020012813396339186769889044471663157321092221218026514725295802723222380887589720108979025474012899061631724266267602148198425708223981470396310586162848971797521535718733497586439519398864069895798549155471976132414765598436707627857633543789427067954621152861093812825961317951706459501971291625077233504311866001724470733105046169142907980049693705941535193075507162846205680460749503482150336877591067517697569056935617942349659515368218994800848723006861266723631641027284380677836060344035914993648768081991346603560697321118954926229745444010770785328673908728376918592354625560346089419957921119678284067675387702647525971684976779700290420121562703300914884243266465444811093327154707209686478155976418817275032116922150092075080978473865278962616086883764305387437207808414030892208200140026773947763518804512608153951246291950078645619993010808222936063087953999496680989014432523895296568102438645222583748533609408747383982837833896415384051129927360892009029470255626100959175130685587293702307198043351124145654755408549246427588171747392477778623290124585509505849718749276648030272610168897372871384493744361119424344131751662786139676421730744732893076633712809678009766466882570534937745347120063313925391237186110761105790573619178979634333182087057287889753074583919986050505094896990241100262914413733699655879267252080207612870058970853531378293353579958480013512746723605892526496926039884478478096407163165836816874516641610551657453941387276813929669962760712993370582930203166799310071164749884566538456558905947472286272532150288231551089427157315225998942525644316496716357060647772107391963040527003311686024085905494268651705569430160815919482554554283146331542445289576777987042841265882955071090433236076554521706764748727086708423513006940951121890951422525925862003512562344119739509361408920871182436552455649685841371859491843869678699827906343853721462524542629465326774427876106564113031908245968183869494554324292926079522542891355692894958489447430665960352342504923600298371728473002762850956807088824048731284832521792300176943155516323448046675812372684740881689894413330779763288434512566863618436632760382595684400735641597845186305780998523478782340848496670520870481459049694075849418258275597056966895726205063454048575435569957365749441292537355633984316424180407461662395303006015360148912063785572642313105152303673291254346451611714269652006527701698911992031250108673225841919544560809698906304700437924627050754432055128054341726153236940993596956056196385447627004647712723080412180631027053863870138629364831651069030693371182350821321572429307567092629309690017789354963840010515931904094627192738245153621287525458932533534343613712678349786190877986758723219208105763385182711672218362546782569608039339555424286943392820867651200965571949401469284760570365775201476912498538697901142766028599421526015779855882083146144322821621382497840279182864389909011910832007595482054148290410146615342834472831934970027065332663014526083261658148753883273019263962611772679344361076233168970912189605276806241384543624539428102353353948165958838047043964456057423395645013277559978987373447673656148162524510203697775386692134028186755336616514508904766225538870223057436365113552527206791939387364303413341262398445027804664552636725076518145466453090348649052978233353212241013903756814673086550600426894797932478812398622900148150251008465225003028626377538174750394230243037062468530475787363721695625123224525179786430949427026091783612538842711686196701813901805820256201880402998382253673248447120866144599905286569896572429078384239355611807672139662924330779994581752916098112501852282245610685367729480229784283897101145670108313977220583501665263321217396878497923456477208297238022082481459440240849082545290578593462494186335747857829114531955032487585143643943820632608336177045264956715177090252007920457724657920570221703159683778357261378894149116996264268125654487153440029946127441070603861128468502106619769172766435640785673342606882585364865597746067789021024000348739220442325934564330166692916229591215298983637804033859905225872413178595974138982684541553546575332940053543560555332584211633821554251052544960110669763578118094372900620488685263885276002444822552143698359170177199185472620409856166440075320644735195862843605313313576320377541350393519963495733129883157834900737481044027886852923481707947590172364409137516896387557633168212047425325728007971380785760436619001194773994722668202996462357705329504068462165931844487756457316194287259857949718233289082214185910847487165008370220359511467090437845517066892878636773407636588067615531331827199564090641198422253960189405690844267844750495898995478795480506489004631177884481707702430684440704591240462751529101468868545060403495588289500271735738009150284471668761950131246714536261854600251795140393751447231905963728270291400396464300753012178232803956719238701182655616561745279299231393578958837476028488062043110682021912477017569960351713830190840859841182978683861358081848279225534941166267372849439269836674562129838484977763756848222027061874429097830288508929917044201056239238018675235905386875443027481137644066860577634654560426217100991045271978819083166227872224713245909003341831123137186560172859636869363291993887372158228526947396216966986753223870453366631317765934569635187472538620047044704089997332607559565001633411274161924602437823975759015348951546236348333247384015033708245954201803080268107807583988687379428827718173207433684710073553718777571438419737540715369086570884472391147174568482230955039642566975977493114948562534290804445837997821027417437071706162869204103508184577694468591602861644613729564107129065204818634458738685260695749347083781857086615305472726684671251420189608861913352915273603781563386634783026236031748087011349878248000101391849841536218951398437798798440640419280330378002485210587963584898714796762841815740082075929255143817789484369750548972951600465019938990024411964809628177322863429300539123045365364331697288411017420109815254286290407896568059327304619600415786237656864622091093368222660835813757495817261028473240940843726986853144452918099165948780699941478062067644711858869029552174692176843314631918705315323397829215021231298011063299376996506899983329220581915470559413340420088976163200882244450561878129799678974451491454466958423491091157495326530506802965915172336036428085249801904848852658837059718090236598462205894853569944431440875476186143903957988746540029367715441907011847420434116021697163016072833103014656310401143958793791480718411859290368644508317321791044649540802214248568036628988208284770484489793228802894011110699886478464227405349233973186184411801373237182640638349110250735038883355489258403334566013759559294988082491195386549411094002096022055548745119145243568264048565264950066111950904701470793721622898046838558500911655476455850499910120729938350271817155889087343139220615197810431327172550720130524820064430107729577123732468103696330234132114568840284463434260627087595627612840011454631100392357807309746092061481148092208788055342208644717648612148923978711571845814510978668498511458267329967846080475994774633130118770484346326102565459832575452065132230598328731838122363063251082904819324498509206571347496538565033197460864740277650495345659509380664357590978281603078133996587043469268164497268919115953048774688988584125444930564513970851921299628353550488543189486891083153701976752459569098660349704163373952896403718981875223665090594184414332091065431624127295437553867141390134876387441420366305348201417635074348264923361730692696198506505422865275492550911740711335984327752804700243021561526412713287755325097423468284302748876160067766511157706561508964493612206329617414623364144881892397916952462479389596418704245387827952747095290867696826867810866980052776894149022371897973671759983141119004872802740550582022657652539456749459434675828816727738103575695218891233378913565894151499398970129557696367627132220758104217111100998691736821696781766548695042494171080807561202853126115613539348708815092032873670839232252621942197214994804857717707226284638045483471816427399977041922262154848540170583954907640486780908824194941619628890325542423446376732265704057221024733270849743269677609033240128289633581881760046575967564120992341390904632725204572294998510856656498452418189141622006547214654691807256201824192776332343799685027805562192760386695998317184892806202818587845847493355160042024054722953491193614656930957296122832203165217523663294846043582304972137925446812844134851079401516321185790930552854682586903047294982252008871555302856122936636829361909445437234623665461296291030965754339191590651752475298150195235753390923451186394602525437252743740886636835093031587034649545018897940928957036596253198500741415234805436791120263806841858908367791925640723128961539693376697999801149573063884498769054544431354725926515910184885825431599683075616447960896118568571399606437159553536874572027992743412717541793466139300014507955180590443605666597462379745999869389961374021701652405300491809088698440878800635972024686360189839077551641671904767901375047137298840051510230047591889050281062058323266525900425111929365933810926222876620347501435512658924783267160501255395263765732498583230054054350766213873053527638066409131168343904756447088097701645817047558783813829106732400410846502889292484028079579262961252795376576403027618881575384433288788537226296628719712291322611312748277381410653297812711491117471953359188996075211595880291234725716934972971176099549868949131482384151470851086040321294673476926184631384412788834437103179113043759283732933822050411099798168844160767681894684357561182449109328299764752357395985211839319572229625860281676567697910417698853076726444247717131730628139196509398149556559520460436306702571067974929851416421573544887233462431635247023443312599167444887474987767670500115984147386405347552960253639589682046775030194034729537614140010460358097421628108800298032886262570629767932060246789596498277919588039037320436825479818044209784342418614974700927757581127466592416110817230150029242730507835067725295681095338089587806227562591457411313213451690790569061900354577449784121953243657312136157669421912558920489768358150285445145626247132594077571202549411588768178247889436611272145610904280933643443967296735598308461505416898896248345726197548881935614914295092173668385188864128849248197526527221953167328645946740309690356724514558819237700478873921058819743098480047865438928409270190963351659230815659777659257490642703967733894630599653431343806733819636982679314094930519045823069054779825673567588396370893464593204076495677452562095204213356526212346802026360219596802441167994648387807597558568759275954668782471889370672433516953369182942671948843589511380552780944379381426560393500049858062464880865768060429998409703209125718127641788747655807421254692899886905495842674523484534240730056926122947634211384390348260314285997148549454167539735444872328242484546229643144398339842134001067772427213974831756885642648685305963758558732439679687502037215078097836653516541749454618028546610867066299006977679288571733053521087131879536298989318703990377686395677827226235870441118541622635225307918311811829529187798125675006028508602451256952538056226442085099118937318556392234075426304152868209673894052753586545910268804494318301953443813619253230059122131989209951191974655994099426200315923649049172743528556359847507471281071864179985628383455318676133723657856516359473372533827633394125631417451923987721153753005930047076872794388165272277404786061848219434573592110409502914231786478562470017588630361133625895801648522479144186848667723707283412506581778250039959331127576528300252085712643780148345826109431995664362048173827813801420391364938253800162497957445398187675085699719940343998509566805117256903444325993326701929803419317132741271559390025822934345018147264643351700796742786504534112631939862132436782986177567571540842569300714008564002317147213650290285201897376750930128698374390394593142060298356771340601655915823227961055566477936659109120545926655737869990048077353832792324201541281380224563524004948759645459236545707469944343315407095887299628455623481716749132636121419662937159123328466413120550986115620299477660553145545980438703520207081740563532978273220145343645291544446331811370026484728279391129335312908333517446019637890573531485967206743314195122561305500304341366834108440767684627013441377530313705720742886812597574189991861344926050046862739928307401994574592024257107959699098779121398973598181843232886327317666148500294510966308558315370450399007869838790776432655499787768024462581594277514415039981672461612417234607269957487498334699985384445828682459950007435200301187234245584905072227418108394548467412541976063095526779083726738257311364665362948206150782142844712311018451687224803835434462491326980132532052243232302546843687044803800467587482490245359493150526662268917695564822794046341828962489607406840263235588210579873716282981307185003235165642957796703064899391417457683863181816618506476468473920809498040772078394876367787515837483074551108114954295272410472758996635219014072067210814622953032447501653354812018006438115308136703957240960255340139426967117374767815608479774600160973533709449155993552737511975972932650383655095121316377782012907099037741493805133123393516176842554807599647587801487937315851743334905608313402096649211394992224376108149846360364930937945902788689041135952188982868147242703657627235132632605398708029871960914222805479413531179570153503053920124294359888350686661817526949007522289415893360426034690596831851620986046440487957094806217992182493137073710683220918281470919137059326074367270074523785109695304784632675246165865670328683859499419383059017567050918818822054009629113781802593657395205599395030906485810079229631807026055867793276189735316333918090246993980522810486964820741697058875524206174836453562831307298099012552206475520998179170124470394763327448374382187278438169543390825518400863342975207850774268198536158253336123357640293960545774943286050686557089778968587911945179998907777515312226685876392850382401229319652191537562251901608491007141437713402135638156389048442054738338220267299758858596186933959593739862315201604287093406732630462108958386057144521382568167871475028232779902764934579153912894099366626961755184424734442272143444258482984853912221612728379408138207636871159415667349722183755202801140936601037407549531746645176411474736558879511440678594204273673129825261999120904516533800951524181585666453712028576517390954847560504794596852800492074549802439793032001542261463361928445746584712258480885471152975248636433026432420963019841989565249301985485863999533463729584807307193153681356716108778100094115080564887355946282462735825316743205013631433408890387980159634776738646550656314600454257540802238507960972956929166817549118891958117677070818528118075787045536108024715200684220382222430580354930076712211247370625413448795243957902114784426618819037058730292441462744968446813864890760535921951336886449834866399637561972480833934847754975756327959039137491557010357874391801976077585083176552144603615365132352833387368073806223860694085558051532045232573223408765064105337907663345378176203936862291470089384529642693638607115025802570119410147260283396103910098920876655348322497107653125055024061177201858999996537813401209090263232115657830299121078003241463556363283674063204413066545088247844890127435580465501619207267491400568619476598159854112966188667255095393167373011553647933680250290946526319894240658022774392247635841692575508231931145603414413012872786572853520554795244874313632935804279695244109095363504474635609299003890989292902744891332456745696841179040808267060563492809853058878101733440545087997243712754885561492760454806192642668152638882890132170033745474627407895355537262771054212282625388661730334862537857028749351336395554754501696215167204011796588821123095090020743642117960162661381801545242148362698851187019261587633294419134998061444833963470180041936487378403878985163550794195070596690729888847353242743709519150764752698137597846228243732903202271060895552652200595694752298719870677967222688130637102045185368483428950176344750908004759712422856756282270850537644211821026636095924834659314666888048613279329763426067200580942696329593856770185322088247715313603327709535548331188577806332467947492289363412888767843594155949806450958644420624828157243063702167953707558269336299606294699030646781966205005656469639202637146685768560471311762283337734999485322274931784390574077522304565381859431285792329210852169922661640715871602511681167264078355871469945766775445492783509516183001593219086686452320908605136179548146990781767324330574620929295003996728719669041092864303736777643453621968413999598209239795407713089330052393329566296105229435006733311773410073077003113191654696831229734466161192975319843088113136339412542420218491783380539601111676625268998016505075168561612048953750320727085928230627728549446202356100923092917763397289393644630439308591456028118579607889564055687957904792915998617140689547444421296944311256796081133932597803447534210325539294200736721117688646141196607029846117029286723985927496657965807306314920970646517327666109472807806850119736205833590221012399290326818050125715008972523412827610582151093680545296978229890833324463228504137631382967729243136501954636732157620772154936019231295245641150800435808046945073726820556937839064033215205704116222662568883568835898794837846042079048157772193699102011332338781950352841704077293460372716414590855477939120596067274685021546139011773504755869410833283206732029057885361725815396167768400572589518392552213597020860383737144723621832834562697289235652691366296792176001221101568947757290224604166507017677901738657244895920926697033361900520602890871417190727952280611698826951809760035057350572800984498591092459356307899886514439503558442213287387126819538580410221229466927590068723756470795664745952383735285704086670878142477910275812389794802706864964332507635256805439128550907177629486293559006481579870343928458231527345451548125110456605733928713594880270545488587907710931418617237775105061362552723480737099342460584522774425387888751571064783935708067673579499765536135320554277145895588076317670445558090507196207486509826326624156709486266415233507201027906784182682542333845819237483360230904017310110105336363986979999622326563943864116876187312585405026545110864171655061998717211462451494698409306017267559618995692672933067162283132246259663000897885502937962851035262973984914338856910496353388086634153988183035515317724472005799364675773777448177743214298656682702885965480813680115121418797679887824671920029558655513501770950620784336899618755381456633167107305697386729794981953333227985859198928586938452020389585951693266196103982604608433696397000000182268148986405003485134189034814214248681396687711371453148482632326564994094131416207162297240408968696398171910143893204687465775542781047735279173440632124517794980469847033369937684778092743658383584590771058054732745358024729365231786642654301009664077189073607915517955233591166939845898361756352029061102605637347732979980586216970941968289049922058974356236305145242073336301069970241681180679102190675106590028173256857248392424339841838181301017776388365753842953039687441662625044581105833172836601983255459520594767609195874146166870468171711582951492327202071894555602963527622173828786502029140027969619510342453468021543126759667984841374929498575051679621300549839042477438056075915745729253945783291781652945217576540017103067600844829590844901404981440744687143064187732256066732232194531634788633728726005972676531187385099013688879549058288104718954421627522939554787304351816293733891997550042730496818938767644122963342876343113621027818918633152809482045352249117802516946350862135887969315892771748269652235182739837657162433932424414840410115936640070987050227591407922440848172409689942879674971635600079783237304073167041054138255314491705389961399257482699011710318791958845590347921869107924246511944015170298430544055656526762492294024467549387100894060144202543444634378737002239142459352950219127148187421153960741716589868953471711240274409539942251514321038536445981409435860244981679087134101156312658251960306376532633446858506289505327971763079797257043990575178027527606912254674309927463209941012346492198440481199193759736712821962982026518608341412973588797236199533759540811017119038456016136161489757577454807705979956941019422318452385775484035203067163113454411649319861939319081407008987032734615626470791577469042754196258625989309551522370251318730192271255516825757041013176458859039936626141429013642119565699629538459295083121548931528509512036588354491746605916978335845861172679172916616925186846057207825818314810446683264366811498016284618162581853923976441089500648567975399220960259479437627757274899769195780604493986673192112003920981448124629350614442247677075841630431420803158937547568577558763109933430391069735807495444777769437558396106945674409686653477878945368900853102884070106648883607844608767342604300861764364216067753900631694045142319556074327130144070017827019745253878191402601718692781731065252968442876586892877120081023288907527806776730535588603063771011212321495791712100290468356832898156758211821235994853627336978436871661837010201180166368197287491662057341144847335347889804755996901694869693291443322796612724023567057008407685819032077831914581505964025786477649714764301683188667327746254866099677636153335827548666450009793385814813513436122247532151168030964645004189254071021375330185619572198212484432987995155412968274918260681107623722660382269229694831451783692736678616124300097927426111993206843031813331644342416034609404565756078571941810814640082612488565648561646938021245388928506434208531038698856881397620145013299892230098895339330641214293042134986168426315795816656205480029373647236451311638113187302183170807783007258867960395406612996120508949402403902733178902542192380170403766327147298273814056594221785737811309617098186412149865278167802426619498778466523374132790433694596402512761184954734717679004612119550036322381128814659635084854679790888959611379927438533945150457400615925187943501264779325113131120224750016262493586044516620475179139340122210910701367221429595893187680841767962415663826172043122732588350435012632479295304796067820670905407980458420739133391237407099656984336585934729864487269481157470427573836256446953186650071709842406379162731882476642105645376104510824123002467738428614553749180260871084021458758791675694453402527246548807675140786682513565254467799557236535565592516991807070216726100288986318355168979355491837377487941103380015608562644469104239458899730306649883103324556445767559103460629733023727705706087613588207741185804874300514293825779413144583345311755509746088160168670519020538501267364283313142366910994286389606952441863804569481079720606181145493055960679508855020512233680350555507637905881974528094865103046127849523434144857676809011880636223924416766174895109289943196398906217534641743366372403561103685620671130462050482345142624849705464190356650488946893482204743196340663712146591671590633347234596563248767949330450767102707574959294287650676031444027188489864357233802045097047072411527008666477206259745849563296892388423510242241467508000612875707034878133903661002739548787958341351632047996254452037572204623892501217215128046529728009272552610287709497942997904422377762909424580084897360172242133727807496903579066556197501692303449165637292080821795687033847693138051886924384945486479915422242982761392064629080419091446306342784413080233250939200784177642442548503763783731383406102752608656221640725782189296452707454465553640256897103847716477767233288864340774705568842461033459493992730586004713500209967802356674015865869729080165133260968950386489202691420076720439062435220961964106837705190139030771019459080053801173822452404721369101390061428247159861137420183272830551241618004166774258583612898060026195702008605208762071192366843677203204969675947982968237608522036879624585158874646361829925591194675713606434604114673306207347938786708272653912294939331393970186351398235214480323772692931396779565486749487641354442998744085506306185501253522564998234662809026981953354838596453764230599097294185896417465635573126146583958090833148773557378891893037705352014430971121710028934154020655747882677011947369379973326836058952934615026641096330832261603845344146047359632774040983245956472210318644628905095589753552089852695690819751089249211357031116491325526240001586699930717201955547372911083065441190931188495064613308508752804208717145974391979823531963668494759115947052877543153058894030461637676270891623196101987904218620628580213030647189587169872649616871995360727026430471337696956544344524991839303137191097698158360808766392259093001116856582591650858135241428682047418580915300614957274118218397860774165570175925446453080418041763165917424288213400255212262952802675424875372579934704374012633812884298179687086606491602664630644253653972091127059392457605218620023590712888626883380954704163608236044977049283302518875515094579626127980742832189009345285146207340255487686792064272372568379907454013064404823529175230409807365638727076284912810536328912185107104827063011002569299854841270677129667024604787821137066962922205194647035210670928987033338665878344144605118038167258823496528743018102941767506342500162566959216649513452657683870586060794420776306498279512705901975191148603890380224781074355499924691540696422271044579964194543707406074177561062294938997399700431425016729946572071579037183450558911711852809227512336843965244237606101398310685464169301026096712838130685882127716973382519559444704663138816593456607336366286779281449491118327538086249171655498428323720756164631628466255577865422646933224853610236369287605674534520147548904475417898580801160069003025207729676974313784923633689986344063046258952211367633292933215561490277039045179178044087953618815207975161350625737844881620488232854475128682068306048474287518862335240565531712447984393991510340642010541691349947597949469942862251003381572562548189592097168993566316444070539521549348100581901154207867492385517278674573020663425237340492707231593395613266725981548857158348352979423911562203049518222870775779190927392428785750755700838550187509846756512692834649435354510697708901280220362053075558274198625263063236344987633113490581840259024428395219178345548802774313537668222254606610659692852058861016986869570552447191845247060752338029433026152518824314303039124118331208322541452089545677765477730048878396009887855866067435126974749770437835364553370745324279736303367220816874457780412788067084949513279949665039746088218084680457110886180058873776959328673995706995700143978907288246054491746342433144192017632685496152917700013236215528304472910484952596169142187931725129029029224254072443253204248532094293697388165516323216146156470353859462834230368969838504729619105587547851634794701819107425741113751799362685545505763000248746825547924829438718096278720987024390858994580608983668858550326473767764749915142008864177794938459448885610132614059945065393545628012182531992293566400246336164156057724359850017416969977118267993707711475476137539140863979508242734533300457978130372427131935151974915963392803320929517866154557664779434089669067448953002651565102456880057491051203171599806270035145569861107390596209756410850081112274201232262160421755789644331759454366271659482628229175143000166956250517648004569885930039136287604423860077318359118459217964946094095471693751238859129826940633545851366896840662287484069733132613380381756947930186016194703689413221559225868999006146878719893615012255545389366393863635338792201019368198986096416223216622039540383043487897337600279513370277643614703961034416778884481607689285360145680865422795857403769161287534826171954811584876380981811156001739979228192559078812272127719581119306734525294849961904686787593555558017984904982010444051907748316737571880947487559069451537281302905747695124065790099991546559673520204191927414535863446782387542422593286253281722765627560385330792265733464357216963126679403670648720651299429027396920941165445528988040959079175383172610264268066617458818877557631085475925447023886986508932926693185268018328648800838104406599907185767911170683633194434031665591412848134325301782522403173002574312555797211103097443000505587694632988465476648959174358985340675398196009651624243423629494016899043759023476989234019260794293769930119721362865205264167217942188262683453881235442293646564401857835477808025290950844417305442395628652726067279540706465965042279788655970206980429290166783852847831240378448181219579027913348285423250941509306638681019024892141995299667535447748949867333486775788666214709809951299790480799451349383530517008423948448264010183789497476359913499073610069881320988140524163846343567973344922571718215054817797108059101902381650666181844984247183461916971802971015580175692085149314469663283867192579892953659941872785055726013141866131240143413724140637450259785414417322621742137457087068971335231031778152993834620663831239648073393392846096247318932071536506354937272146792234743834156079754247680458110811991244098719105185688731759450138136718336904137844553095170380717034744475382896090788617620400775745561436106709385648820311328992872691942913262127123818356207272700932776392584559351197539801132635013008098479976570271780668920417123307304865023106866804612775070414828250799483225319454892862252986430194277536221508443423469860783195026548214469891814671243903318443611872848584119879196292360954652781272507010260028862678662286180078564435852923684610667305774887800655573766610751734123198851601797456040135456943408733939584044344435257437783756025494543470120695210982749112756454868092745869990489048382602418421686434497746929865271742069178107311466668394213894414600078371833411456482059588219444573492164400594002093743659928404964436374901520388611626138077434390580394055533325532911679130863276742485119291700201876856109681369567512910133586256252574891416826805893398259759831932488629363879652066156869124495266532952271660259996361117416140346011968836211889564024774609779600973652183952383607324725835854393254047494753138864721468753216694225460811250181703245033044324380649947796303992887896165994046888152071355106072827374082654704076991984597905476635315063905041543547483961877095380856310118764766642228389482809340044165548724627573421837274663306541832934525379995034501566662006014306056035512084183886447460366175031755414709924406393340834635982670276305453371749545780720904885956783723046075264820689550020658215699139770232746286984964310127472591363913945777278502564528384567101425681007107746271506088022839048328137400457269177785900467333504384654144482053789716693643249507759376893715409751550601146233179179131033931685446438023606433900201811479416698780034098048125558775613737553989992466904128364337538011961914711487547329056922266340460957405772527014249016116109420407888635714222646756106151424704254619306216276313539818169062645520212719336060091890607195356936820115454130592885571892477775192705346886681784215106255375125905979524923762129293150351634457825015283678180657309679825398807665830860605769767119921334034429549319271314677593576424856323686803726681993460263504345360126060979931209237350771657708083527805345451762135385152120117912923995924914444737523078570337129233563312273034411492870965832429973253239055987817126336988446378846916508193358854544803593455548059263221318056243618292258755738052282281063445068889164744114438210590092535614285319891925774965079560379428553106592203123676792790953898703617143878678388399386994158356285623065210891866243065869746892847416496478942004042618245597755451567318918416008290563233447667178188166703205982441264641824614018408965569992816727385437603276897682009632195170200752248004987911817080738532437802434503473195131954246878466952111597209209081710339232799150962590463476539278315777579884075920250427591581561822543561438002384532989636240228977666583330072816874694733930583267752476634098704354560948024328699425327889124820688174177286201605859224681520346684864399793741073939758290179487289168469959035016835337627979189374491456561903862441857086319171157520021153342479886082369806482854484927232804887975659247070798762266557180316671104345002780034515272403447374651231960416418492924181786613747472699566537700966359605642095866423648968995694149257251300874479526529360961130333703805124093643558724876125906597726412699809864947832559924625480971013727173564795451667561886913965610095168212985878469572471736562026171316827679036143643300081845702261484716436914975451858138540592609003969627502887758987542055281787879857755966046407754401469912991182007721000933793393786644948470407858438381690743534441923841576399167608680280708534295762976265606085470735031029142280721503333091670942486620652328067253668938978751577642734520484894643654730202814432477802093292552929521279732109793681627827734451049890944474994883928697629906531766991453734901268051531391096390018981716350309536070598747641025464635013941396832404161150682560888225952864044727831362816118388472737753227724653674524174515127416372805062558225124655649521791293267909766866127148076980719660911170211491586750511238516924088332474797857541066984317353280391254263982886469836818856052809330795361184173656099259057815063260953468846449999514671311447235712105950381954049262056578963364248120770701703803426165531098356379584382520347651162980651971058695413990090768560203148568859298192403948566430307405944950391164296031815708963354700916118781462049672200006131071156481226732142734734334592788702593920526860383661881645224924616613378073713003638607844151655102593411762898130881902792352545588120708592574100030721628883627299323882730839159214151772424280008681039350113880433912085675540911083623711485252629046566741627893657402341364966171467156341234601003613674831315963188357045511230912172633637610919299477028843836569072095331968574872005202052431958631691582131743742429089728294418659065743929057171156641800261529666259131353806745557817678741363634788612462004678649675042082062557484392433803392276709552058855076395009506756241650388379069243361773862307985007840167221028019669929916039213913687564307236090195397116889971443871289964947163815824103095043454602807618790499748725779626881509823848319832356989713931520160916883093335056618671499796519930046259820350518161197123938076115071360487577882847249025119390021048362024139507053827995045060389789956616501395053652793472178808136679800598099555259772959837953490136781269779395167130927172616266940890718346586698660505044368879260752280888312869229173777404444219207532222209275193572466560918900037625078196603723985053867190151428800144756542125234842139311037050731348876577142850911516397711554740028873267055576741397213682011492325851866131673218191979823029923049258952390299988433790983365614696114251663716029595308942110980406365944335601229166307535825407885800420498781770230341644697243907393350312496006513527946822495058860773166348486203464660094322076232686809034612736478010157415851865305338619628265448168476879737886862002550801347925238521452432065769630443936365602714422900678701782906897160570152243121462451000278675919275176868411149919060067601947717685908334935721681724390334777513121673332672143187056652463755627258910209410080861376303636810293293620260010415011658424933827711441915781588807140206356337967245834442469488368714906192925312668974078809440322886511566617617916820648017241307918756836733761408481339832814704177350324417523362762009579973786707708412804749933977975341960337687487046295000307613629807972207130809168949732832719086754502675196388463486258019139251660033566517194043378916333039837532120418720574454219980208490021553486187604134139176888957336943030277336472697333852509815541421011979949601692467465238618813581798184425725513143134818844113340988169391566911691279287083591815875022764276413355039783493179171768534989249227126779584143113818106495756288326728191855339646506357489152071846602650763532151326368663905795362358534104646524317949690811476404265425564352665176159199261998699418259877609472358918901009742151433787246696834225078031588192030506129288972940346902650587996364375643704973162816507392244695520449951252318036718079681840167052324022296728858490062672445300832356590287170629202156458095633012627336569968315626065619012389724533903523215582963608397711487461516689795999233099448355435301394414853480319119146594117542324956471701537407478747125879174588201381285487899870614290551049712175109276289354562235399361037170850790604773052063625279850159580849646054379351107922088876184800602947605471072910326557175977720149816205837636499474244544120836366996606874871121871097634166832676277399677645107332001464318054866439303979508123035935785152337965774506050170764935325075022629541540881004229633898191526235591989199456766112025048164701485790409757143557475205260508962011958799084566512848129612003120945265953904815116711754915309119755871146830395239877533936316361172221398077195153588981894824144370582403328511539917753437028669846548388692229983893283564190407392456570202823504721366570610978372221337901625041529566426272931778027782759769754381005901355976627842056708797832315236193755255533322737930395764886992898041595893723958802064584306240917274658045859345939472062882643432849709929276074557465842695147669858913070814762420063121517253246397940966725278866802881528663213644581615678571599027552669083644133543392881605046186701889198392454085973271912182420861362940318730442684952197229390344193364234231469753837150591727309373669175820841430023653635092307102328343979521746147961118377920626755054656778846187420481108038302455772282562705667931601342465799245878901545965045914648126276526060208384721789895396604685866141563858211966858679577324154528077720884862506893857401925717800993009661757537893000943800767802315145355246507007483254530152380352255765608958810706493511273158902178400039521176244075266014575454438359522837952047022294136305850973388174454620855213172948136927768061738236657545384286848090349385567612375213999302375889460544671867858414253778801953044888303578816613856213138407676736608728969944691812600830156448454322873229942415410375407463131885260222352893374566705893740645747636296211211958365907477365305151780467248422801597807342731894796546328932778970593599691166801787220493356686849505287596808681082499655971092328499328369679199485623476891112062253236104653557920415908831495616125122722081726111571924541445010971239189530666788155262912995933345699896243235873325889486103086611870418736084058576222231129034507798735796611667056104329863946748200444610911769160985011845389581761083053291683106680317531868675582682809506796874656206529217781901331927885185896785651827026716173661564626139029157533743779528182255814858751914331088453947570172928521828381429361579814464424590199955878684588611091122728429679925024254909746547184630222085975632448534612209342216881325732668518185623263581943488778022498648047348066763819447663653223545988837126612090727947390816498855352183666426332697219382604893215985762903897794856341043098512444543991801079014126207181951718053605476669607183734320884976148071751836669157174382051694077879330732335463748698803937139734700351435659992603337464382648464390006264267932095184141220423074490637906274144235883137706329474542882162929024871949388237416446229144769528647050048052894453254665664006783802231444225879736667311633662338737504745247206157175920742208555517832809224895078486298452877052272497251769171201969190209219747398648068185120669292321401332570896579836165753856118590304690042704796117637942331716872399267034641455473677357439691302600274425327158083359107042328142359788238946976374905380843686548847609619700690839148812761511230247890231927700918260064655786188585831052768613819803256494945313612074249271084784927394929716809486647730949699373003584426339852285737479125749514655873589914932830113792914355911827391329572533977374672229857468878540576358189207439631672726460033647314047589927028618676952267325222120925766655566443266478100205291429612393936039183469650372796525124034008515405272993631160089348409990774084058491846918112945995879047058858569914956539344565276804486537805269514873245655607886651225149069217798194976455776985434269693558667764682521235909218082414593834929665928866026438275852065969974027315475776965780578270935145747535518400652138146943553936932057843760097093053818913316790124254962073810828657941803025655792171669756911200360403103572573355954008536245354727194988827724902377757420923409860775933902289918426137495411117787566427173262413728131009677210513713839925664324555593179769314260977794028743118406695775791700960447408699711819199688714013445418280038506907162901963828554228349127278574118075738813467634652656523830804632559291943766227330185118249764879732969748693630215094995196068381114195087367298625385585263812075899104617331143666870183675086193485548293675305447753379899560400232001056851524729212169558048092677725591925915459469188738288281402210279981006097277213140521989710819712855267571526598997657139275869257593771366418790137194876975232514672116804628706127478805705917131660254575079437746290622392626529206066509521899588477118459354997915748403443327578739809876211393886991350549435368290582701220020072669341888493881769643033061796331744228462466527928837976708206866238426997822786956247384673180425764735359651141389240193595149554598951058090473434230481366683731353078397391450223107737794674321778605971851731260903640580021875994820565486825365033690572058273170552832247299504064352064699532143862028622739470383799508357975257681268330977130934939652905902758242729777935874249007660084645004274303917913716533941854326160718997603764844190337465211963086566748424768744749868204079445983997879816600829580327985073777671860715745629574902677473514612233114151975302048128041333158544185428252285558803420223619378476023029591584908529239718621648700553103903422868446261523152329050880370239914555762663597151811536776666100013191974644885995180415218592362502829463073443292026763998427878286977934653131315281323829294158741298533174873655017560374814772077742375866164368005069722353554184537473883251338154511023432766816680173763346030194514886066820103721966513386338526980633738101515677090777068576796235402370070642440645044415721346276717562348534253605337014051983463240188321563266623818264348615983979377943367005605212504113413732703283713579336224421097253391353530851959215568940220011201975488349004051134819692835925210479553778463781453773142565382255897398910376139821599397102610879083248807830890617068327404729465602507522005480823434141201399465564234763367789216558559566262203322765121475382997259893349025954533679580307575621341517535574011029103870724297007088333989875277732401326856110897635278107779724648087991315241673955088864702884307824018989716085314007315757742185900346123255612838075321488866710051843506559637568269612978791200641664677234968126451387616879069171843833810370486909349510673131130836237041074615358941256370905316599096504549807449728704772235640762972791959512625522924445457623285088417784928349248142944180234576881896571223562687546488403690096226501270310005928569697997504443915347538461275307607375143384528303165884163375474512036206051140104374499283227749265328605771437837413018242552793585479931841797552649232901681048486923635776573636128143189560411178751454618859124243022533869133832834638118681695553510348406009440015969148562086431697757670664412824519203731244509660048977609701431459340703030814925348816387940995997944904161680992860824249423387469600935968167603145694648446204047730979143519271431738298508426702200055518059272881631202335624748492915686520968347945439038679237949573944339082983268847207293723541712977552064860898729884659261090952988724335735496809864148353332909501038291647067957536200959649494208251174637661496987111466793741811072561077641626354875934057656978355279961222542998209718510841278356938717738950791469209402865171542964559730012853108046655138119132917552006671049769208572467025196378024254193618237214508379792897460057084685747938765329412231744545405625013359513973162450952272522882529393061870022513019600269328322248784990934981799274821064695065096773984127291483500722219863184952147677348667837538282130879283029805574951034858394061186739870459838978861706520054201858518455143768694060562442148406396517602381350760322361491760776213367758682223477701586067608017034961192522242333380185230595513645401127326853222146906511636287113404895560335409515477230898474189352612061411958372076368413357133846375014021203841441802981553133269961075916439458612598213554635819760083468419354493760193492356959021979376023266829328275014653519858227034984086274318328846175887679818271163549428203400148372192317785088514835080153194553889744577749708393056427942702588110248608380070240584607094635066551481917681593885630100107332271988026112821050336130346152916755086750004217119728454686694245110844922822180250501005605676068560761480796356989165426285892803000308282523745324580441939067952901021795239612317424277157781514249248227450237808800175670828171031427050040773426281477551098572165012480143106464141515116844477850391203031029685362626565702267227627623127377034950913521817122014423343595971768074936744862012178653807390230852358271580425105719437963446882488320096650613986768815544493588251110353666261483652566211577773743067020292156275804354650385907252642360899739455618085320167007696678058934999260717281866354553997136033508033395765810164496184948975186593638508295163585649330298930658518790108203486751532566141372323059293951541037359707770016286564689305876557677770947051818962177442717714119298201046004868231710617802270861666226325372182019092382624586274553220827738064686835810230696331744666233474745696592457432966655818494136492997665315902897535983934159869236027880989012870154730038500702204512695687286759732559979289838331561257272940085453241155630950936760258340778977212611040555179663990270281177124743711760441015584272357208960115443560064302408196142221632844470707024414979353036355120371919614383226297036580108470877488674315191367006471041812839599611200748295412457282481907973678013344678840310505270268373815278891198960738551055838989338231944538079910683614849287664655880264354615884682969526659745647628357589792128517801810264293983461399288822788605546319598026414211512190459800172297956243568240466387505821148374063318166491773259630767604733190169838499858017370497513217583262286794159153961356814638892296392300263887569913448246649065855229201462476039425493446644579316266398693353933904916087256032205428537168023143946776079160282099270948584222029570336811149737298423881632309940234890040651063291292462433818203612629893873733941676944720800898193840901661345979926097902349732451783751491529886700640996301328754225031446556106116382154395067891694976014450926900593673725249228702137946111043323198724909484663357588676408471803296497448857979546932259174943326227933679358868114801228472876593812889735033797896270097918582980805534584504270114431452614691375325190375771752334900685396874096707363787788105388707102646062482440863324519917004550998097693441724171835076135930290281255131729809524961243919033697426600014098805272395605447562056689623393560983867850997009921538601417995237261076783419567171439075786846393656453257679087513123353040375610954124066450637413134852644371676309589400611200512962106948860952743007633871876947295845634335927995749012863743901908274083015087645802586132702414485733031924824036864536892423332958624723020046467580480985312915698089236109275084093276963023701154235788903612426048657257778715349464193197154470618338500617374980862682247047032767458401450729983172671308952075060925843505888353074487783492504587707608687904295112577039401409962842364186014156659460609909552109174340762843903175164222380198219003238091468026739212444050700798861416643926291173483506279388274442951971794903499834808483023124189795646436200440830692650585730320005629326840240720417452715112517746158179035295314479685993268514012153294772394720906750458737458899992748375054730511417028387420451944885288132174958580486546368953218766264384673988714909322675794893052892855599833749767049652864874320852257842197337226421501217082417149497774962799206276092664141601465749864910575725116464889480393080144234047592455728998409497904307186714981932539717835130472859114685013780491675808323668706841870691169329066078285079756271553682956772816690517292520439543678762086832100487084328385811466506463746207027576643840799160439158294328135943572972411143942820761235598765274554777244537762913932858784277016492770652822781442501511040005633903133663566575922224077032863450676603149279174003152609971542202820921553404675241724241602781886818939183640312632886410145295606754451447856755569224400915403620752974504204891327334220943210737278627241939150630382749830113591005797964951904949770636046547296028623605404407999216109849257311751090420270880739288253818094643258478827790954110133761554367099999977338933077472313421151735860749017410023332966655571820195070471808545661029522054351131257225491394055990649785242618843420766962184807701926514650662339031402056800142718822446074299718699507529554735873311330637786129671908843512622309737033728020092896678337972204800468905672461705645725061024794300920453941030906713712001266208064634858459578676611185449587764910679303093030005932764551230432552307529687742978173510270000657431737251187844372181314798216244414453978404284312751613609990393643950199346708510892418195974318003712799702367419498519971320327320071935920830465922882343551085876208763265844938413532920195052541290113239773040325402227916726800283928706246270240840486812197852339674200071553595428190891577450187649744746549030205755475314682428837649494487837431166285865261946047052809201988234313155575383643569150462692080466187884178678673569730901279295183742218104982180456337562408086332023144874084191680806022448750655558585889122992707367916536965827253590815639052792446725233323286791749348782204906905945119406478110226661494394847395803226329420707832285286457349120337180628583213366826614941573011132604578591194988390571274896437522515004915727521557301489197032023620106197699568008179898512276975848863699504828170151355657554875258248214301079515159095881341556595796529331827297015763384672574040856148684561509538845906420104054002435925850520378157206548053399223398126483549110870967223166221890238835643527864756068012795730780690399753811107314577412727098736954006256225529178705719565352948101740015626511200631448260679240402031969381019909887456557668732290924677620508462811849312140203328509423599761107599918932755961266758748377201695665979379742108452931131921484468377114577353356528177299521121033087970581477783355209528526682330530526961529956697638463782388772176606413960757443166476165190945297048739956202314513415063010624380356825727646733892449015148162485493096522029580793153339336743059717899548797965929424335273542927961399744046104232940845544045622404633613598816145002960507411840792728536213884867484848865515427592836389976228186848884186765699765765568985564631304157966304380936473039948061570075001519985856992429121259829621565043304799927269895880480638831226296288223601298890749395937949182702702985356799448787782393488648102867204786962518899249468826540751648481071044751062221187704984157999907270176378460207736852786596434386863139592183463296489843350769305525517104135552974213347275015479701312416077604642291226938945574309420830388426412175756588784563429359303925028312657296357610052556394695274106572879352234910847822845281310736717795058077534256160633396768774682180155130342257045260864602246049701750731286469437147430799988613236817913649865038955307117884266807312831270374746458236516926923618159599423718057942785128339233126265003318184605216333717732848306607203399972443376547103944780956929167543898530882567243537600560400366948763117799797641488151204891141013344950167536891505898161536886667716972638796608988138843220768200589847438618256906410889265378775337581521252623561126560998668254800859401511892982733506312828326355010643708508391384228945386327757673500708885278748139632799249313622915975704563557161323537257902150224553716438820132843995888245043099697741171472413604752939657997671764075431174809546918751364252998471151189684566259278365716679226059621596604555062581659841273823517675025355479099316774366406825828279097512588697656961749672510255490283035133810293916346402223492227702743725271897901560951128953495820039064014817410702665961934903794891666401777003282380848064298196448057082081609180688436427598174683564502849631608583912649036233353210235562828741693352897497075250527031148591096643251922555226986349880705270132047504943185193525185188906476882825332412560869082147076139013603210289699619596752420416108141981231298044183068316318082487116169383278574240575018875303496188860298985820335734185097585699986883796511236372443206355577460612681127736197033461820307719408460531563240958306937650399009769876504025114732121845063798305673366025623593901613711832533049115156536644220233924026168281264117595231873993025550078514901506000448608556121119197152934294844169005763728571718919278986575656118737268720059412969726131518554329081007040198034778877525205782225401145517038752319710683658777546761778126062902501971415874539302115964975395205893143756102181232474716280222826234173360899866002335713170003740092112134749910909212198698117018099260700453280691879027820638308142606328136246891615325724606653763630617861449606327118795564246914779931928913011821652651809846252018607669338378545033601344067707872857100113986414487255330838039928270503648200077241346439923521334220680256579368418486169463741492700828013996579998339137804759960494449300727773866763758103690322727643757141989618150472480181422613742902504301139785906515461314358492717052760787347105211318326079504864171612022767217076071660603051523739032154130782167510808574983736919552343330149468704584975081673002507813045346234080636290385230101056747689820496794890862767263946671338145411968721486489076421143813844642921089921110337293662928077079969582730688814285583582772279352524381240230623220010624833163240616038167645479236617991362221532579127343664123932985794324661332920974859737443438492424398500683594020753894330841284592271482274499316157795059363657441650415449488119647023739980821618003763343126353505051318812314993740081862151692513115276035200071615421982657200128996300854652406207866655142665040816012689187796802076398234659024243571299330103486657832564498570294036224804627103771247357627468207149542753093131852989564711499057194029252803641511515913320303896283332074910175724051677374035950046417741883214747818822882560309332398258241945795407272256703744994494431982227503284693615737732780727475529335351726711113614563083084741136040511000541776721435139782100338930892487407437107787734724618234063255210581060685708644909750861167076211011560622530316733990472423150399294770112075040102359954178911621510148914268107071384223665735571210698088579378869623194078768071150207113858410321995965322483068113552875440413170194248358869415133450942984639183369209134645506675675812044641618201204712047141091238999707656407502878593129989352650035394893981886294753924565546297041680312599290970157325984136504417992198856838697938697826020822392090152484319018576158999313620520390810039370868042230517625250427502476781151193167163282515448002086018378612397638617032974532271162426170987204703721522142957763401661936417211070944107051817057168408532146384603821187027129943929158360708541656589381783759958908667168192572056534155767578600788066083483082855707543405487142628707241135260677021361892762558402944019034649444714107459707324804551573364295226811463832361444439777127806893381284620917678163442022035377598948421600933734764762333114350356592911579620557600884756593360981963092950475252539241512710538484811616172629810355138418231288670243648336248939520065106659285868649763338492542802322190926306995187870424807659265061502602306036560256374959286319903213545461819889906718728635690283975546434486041902186766688308443581859086005638072657427946610104479487467958763696963918915280284378298636502975474711490420315191288401897663848857255501042800740123272887234330496402689228452601459430361917323950975774844472420539378247813964756519908121354018295513792404278914604974293985559658417813304962659210614469312885041608550849552278256997003593132394765507317781433300329502985553321850987796550183901632398067576237724070602023344290632179926069773637913346674378986374522279815804677628533428647816113855485409337072509972290625480967165316375953608062262372443888470803764596048267867709347374891450578085886589457257022491186133716939871769951647870920086862202950322871624648159115125437178970804780345988266264947386598233949903231527183396723346288014924521228399828110046092791750196137373711021897501459893912478262261443797144842721605462933767366603846867911183891831996390678167889486821247926006447041803731069384068912023691511695633795881021003413210337118875228296619845783978288399843306892835164548436453345894941872783167438045072680603358891086966621684637946055310893288418285650024131260626108261495452881645341551119032088297344312655429871909567144276225509624438332612336299380427738641315697083651844866795583606708321183259886050266636955064210226352648838159715610839604590044866358415627723700458909554955567362659174167393752644803561048358355254801770617253230154152904345266763240618813004335916599799930275569424740178846381410604401669654353978771599815263082017422662770875886516927621019627423333906728437772495653415091694950803718934972514493648930344557808565781619932185732931708352107877599202679689966908796459851747927354437644683994429314499911595313826489229099773795151106231010992434447826145199624536260077298598602752450339998775908524239085862639503623037839491814238846883269187282721139373603890980958016695280143959038672937753682580690604527516246667027415018156944205216954942971146576947063823627310050972396614120838863778151478067516412053883247718481704744375134501858573775676284475586292218766239724986093840712687222548329617927119833075841399142461543445878791465158112566830495875415250367201307988383713583142541795969989144750004671178958427330886794881245399629065782796914861679766377084947634161869273148540324334808041496549390462813356819974017634920843485128108927512107437772471737284746482783415761116696460560494631870000041977530446344662954869384447546550047866955516132311096180167413516345852965481883995078521359951652175562500397953232298829508909016729278656083702574802104079519516009285652520783673464241218981852295850509948770250567516971040578855363197331808525376499635439913669021833302489161511022793342046610245710357903596535446269121399693428649299468604724589610980551191973910423046542610215516289169096409085635700149510396247414978003470434227627353604532976110707516913744371183993941327985095755629582922246785748276751991043502955838523492922093815023333210006131665283706244515507078156338442824648774289161898306183977291192930041588743926233905004619949109028186862768492364429483109487397823898418100595962171145129133492676588048392485276307206118279213995736029779140806045842576288538685028300970332779616940761364440237072089146455520160081001429834995927955080867582122098849238625398340987409622477997234083748412222658035988870615901480776873213209465781418462758504002548684061728526585662863733968522071679386868587268617861066161153056380492968768715653109089074176839871022205839739524951422651663633943589763930308529225689665223422100669813774155589859953577761838340264612258091083399873728104183044722976841191963727445973673341117526041175720409946933133965210816696788402857220333386124274677877342151989327506673285825811302323973698169882418775706391524155594804016602737961546275857054871413241744706166953020723606900979813396616084250111251847708166884823968492197853976629614017403082342741402838353278448466430653614790182393418358515598146278027524065457651886451106025186260702118394480127951173597230592301417020924695017467142619203528026481107391029279493632664817852470857861233093146449213445986767784605337598129141423064476316687767356788873973578151679104917543849820443761316916098115972622983303348044424604973133844433297852472108070962419644397114091217865006910457853271297941685689897814011782518358921598179711285597327104825050864979808032071446531792722376444001468794252234837335847492985207334920263567772336107448582926600356461742983685925492508268927446053442843911324600295081782312525925168106594323657185833398491916944587292333590281823877163060244777790621885978751293071865010012800612173470256751190924686719225179175456630103469794999192833415375822641815201581982526625292192475083227554213871082653840132966150469988234874020132192423680237136770128184642678762379572290076147248977554322885447025679751017041491355067378409381663482115576235543593525692528073375671190382734854544453505178338112139902206978313739680961446732594232435968307737171859499926412618303762799952522471943115558656482566589805408048817132334091661431688836960822134701978549457363789701527833790407327346209047920846917353956764861296429338545821009115145077071433329207778069688050458570957482111090720533827358629640654767667113112800599213083810424704424772277735036670542256846436005413968016340036131561016713287365057592286098402348866672528569650434149796741108142326107203842871763992499215096530218749082764934735304792616283518102571311837372509898202976554623900252835493542857076887382835340012378177495897617820608021082997379210205177389831867606914521931375055441048592458960724036099563657319382161737316746532525111638609944473371876956306316727073989226827855761824668083259045641423901040477135010475672504443367911953412881203400571067038787836572264857556266216934121914224524811891033749477131944824280186474456753437195239979846334289352465745380501274071265673064396968252517310089414072710228546180561972988710100993218686159380173729099930990558127155485563574553064353347752562589839348473506453561893655167326190645209939830348939151688716379916297986861247977491571072921033607101036809399004361846334060615520700286581139012942700927655562950168842055644313473422104064769912607232447995743582208671909779642200794589587595794509771058277289297870088933083938263227519043206115452490014733457140857862834585585435289351764797064954975168989536103848521480146873191000231249448946046686225007405347368444848866781306994107805211973186242421788978514019687544297053659682012240732461554756489309902924726173604906474365774661211438850304449532771226428149844361082273806805073558227774210153508039356553475012705680661312234786501549816483891872182898142356191582846440073547708985909961443027855179110103235873179970118534509080045506492263882365597346109348391131145900607476267263644778276230196104352572159069808338335775771818883272466870172548885866729252514380213050057212151883151304337124056775979894776438769368424012262974093471348766611942077162007485361843775766099190275264563945205540194510488794699961658301751177942373219887522629135074928874759608823054373081594501427913156663954149503896925412155147922783104484224415822504244576790159043374301091754803368656135924013519825824832377612310819324939282794032795171203442709006830021924342963884399689075960507792142632732559180814325884852998313367065421975871558617581816877446451959988737785137893977658398864039673707161142621526307804664009048070536069762502146725036760789985493995425696226495856721259791422573392706576725794836435147678529695992809055523541095215156389791705213157478813714920946894333415366250383086702474590460090459447788713765581353168749609425746289528755484513782392083181103045120820318349494786996800152661223016647925400933559897735767778763759456978242938724618874687656066400528196771793621984059320103840987423959830124787240522786878233941405211287274042362925854184667112317318063405167483671014134878956572408399294389561038945584402619121453472906318399062791052474523298012372223131783056888063694205697134355372626367057515167918525571880516693359891333145556445943647311619419714994778200626870785242316739658353793103498368581888417905508004412449023484496530957325660613687374627709154010475126592243540496605105995152592282518258540502870776062272349189100849741657568854521972752309621115831625425590235606860177919466718257783978221360999192532833486300772478763830148340886591966046492864094252617633358918667288897257430383057163855412933248809312607315854550930805560147415969101289756075295685317012687012811798350864862543959268795914649745959125439179691615298068156365303302489317928406714306749102203113651712095334870938662265533981665068878594967901222322982723432492770890780129650552864224239920124331236855747692107072528678618745566457885710210162628109491999796610701255073483845671716234668482328633587473264693914884923768354357227572077905216985754772663989306360754647951546597223664043415190823110496750707403766825601312879555048821353398059503790426980819184179636565237336802367315716450663012638272360212520659810251713136645770366233197064285752405577303413698908235274249548400436097112229153449996365636799667991742214680871573868944072043917132499002626328308397300044021191991878286238871672690200037668289720408781524546669193687697377102978997800985756282394390558426605066279631502337152871819953471939431052728498367723012279190067570259051175771702620384301612589931528313437280391363646461982263836773070310018660093978766783062905827866195521040876755529302184569360034113224488321339999020290068315820068994896179556093905063834193081437433490582900854575295013355252768360008836443955783088439392284293726726473661465995283777965578583423719878367590540324710614737329715601166419034331957049600229072466396711188243437607158225292473542363976094625048439097738303158762629595184435212125969474213947917161545676089166381707849159960492649769705218484103117284901930130915934308482497941641599931760938788735608367461399949493326746927028602836658128805580767774401330923958221153526467576429955680898290424766066035637255526784255838847836620190229516408869766335269371388660230728094821661964594094932165069676012423224190702396456213290823872454956219136018973938746743805570160965557159299152927475310764951810984644462810702457450360295517083040662075477046665652054467126105432413709190632276348221153263148840095998457683748918136374692426761699437001302260228477451430566714737763404334741703576133474998495876172097848632217034109922033574088539424591373817335034128112879320845558333045158610188133050439547539899935260567350005089349895700819031822032245482146360737195570697769680205476937765880819369909578313902482766359333985862887277159145133634176017638129141267126682631087703399934310022403269049012721311777278051142154107218543049558395444923602503770656608927503698152044196301425453418922810899432867433201203668530359520110680952438550913594965700132019319088700837023453985479191142589354285374644699547887422129802995122222736147999243609360178034540284219102660972323354779061164508535373841564192679739750970327510829634339560023289308327491858796419791587455114040155601080626902058448268831941331351951335207691573349099076934195146110898522007975165460886357621817942890902575765133955209666832729939464630130076687399444271757629578744936746500335786129889104014709805397284403151102862742262292456119258073794761013342857282292627100859240052271742822847341829235297186856431547649297050759808894731921792633733187703596442994749007519003404366832859499486713546724197100393668217512194617519166248365574863321662486847136162010067483343433818530623208032848705973111436019452294430223434343980374921213814081749905474351463741105429134227670626009120047947525119384224993270440770904228068545635682563103592147964122843689607216184177499383506183863625227250687351716760450570031459875181947139856629973348873512355209658822882689225243670959299451185929265222810217751260241507377641810447181484408615207718745866680982060165043891425196316857700913466323211082395720503761060641425341243927616669904310035885501573742977580924331321258812499045153854145190733198828924480043718788858190629002386562107724924478692665312705873239438436204810099869927568226704826228834856871207180571229502069825446180118050587198373078351152416033706776287944179833999437902028006985159120926994242094207168533062211579586832573994801704854574850437115341519753815880947832541453595822863216655715760870350325545085914288180464307586054982001558074219139696536825729194622481528172669855446598776492119692599095762881567726689391040248958720841917887010606232174031532182437962358321557285934491965887462971637991196482466802873411823581909396918827115364465230239908703078196671070523992391628251098597187006813028084977552155726060000429580518132133096699441089846916454404989125929291889586367294188557713156144265656075325979064881190100398879335082767371727074111097443728421830487526399442379785456893651013824862174669957823380469076896978031305862031611517142522788699269467326313361968903438937123927995619888519773163255583606936945111773914004990085952295172740622740000315670404539344208929887203542655232772137740896464122752499653385564733881657663964733874045247112357453127293090331046168895107705148056839736073611894454969246313166674680775460266012704488631908296614490239628819612989354008125749528469385267339401758022575759639566691823071372347878142987087955320554927501110331458907137400722281094736160000556485560152188471762446971398197846483098667067612159825891455863787228526944105061815172538043010560486711881247850402635054630900501287000446874485857297838696149682737912205488719531485731469131624447466889256726780970453879021393062929303559367434618413767526642418397607318149179793196606180398719136778908429772423896337836423417876417299265943021524987307160873699220674064190913518622047193579837780450694947541389978459689559163176728769362084343695059113723001492738107785048616964925930186116390003772350720829123354834713000614423197146133531482472442651635227358888052326391030378774223609030875809914806555434210541074515687600385549185984786224810803189148119261325482308664369508790424533194531361783120468697409719254679180589299134117373385796519097702749141001087428634269055308440365255191668182015624784654625176874768785819268930084062093932092725697945906062168861075505754728644076580563944840762100116452235861976688520105634255731462382129682584671618756765388633025053393746659708693915468699428797919427231031647432726028154606174086439762417775119413857555005817035254149120789577049514994161293015532863712621284204881675285864947893018206893704175023031229239886367254749658199549072252423758552387922328613411966083227001672997896053791565297699211812876967494512014004279567607223297436064573809677823237622716455133758168438496351084401380954583493346330945824643147729545875308605065416131737035621506549134244625251286013353414597660816851105368215826125901203808336265870407102350181092504269790779508191112330497088212398121464239200235540194769731000994397964218696362132049905981986986216592884159501488362302623916727955776748264791364187998367684205431117070085255681869009898090663877986917907467597895202353794070101444049871353403626710136288627675691706700947036562205635705186069909066114936648833927766087628050728381381190816799493210455717565286741318483947908860121446293235206603705697632892540063571886791100670437484009180592137442803551549193706014095612351610678428121718081519932947243358131336318755842915305257280253079474283628188828030685742573602294508287750836981441340754553286104882995090189437372518174803332742915188744471889860848545905561778476325661878150885027739788193414509926640103438345219221003334813440343617099997630970856276644514055271936857276566572534123322935630906150873679030788190916966500366928796073609111372463034967037035373376745240000955244959158792396803400584036648240334626157458063309962132302925389033915822265747832532506278475931997416773142635291040091615044817647385077438233111626860196637350404054917577235416874527517619474357192660883258140897193256538073241502739383940655205319920442243279471812428509394016173927834655547269088889168043847646984566940934896335042964057644695234010580174183910772259319450738025323463849280635575106569094667425134543534874351893572150033031423915451543405015787795709277765440476272052675035317983271729616536149177631110512962391779169780789371252055330824565591605462790316752669209116787154919579527154587377013358548904867780319780624508575411666989713086983147438368368354721741092800254049331533952630053767723246766424746333557229675611051732680124173524722647517013243312288290314882299957275912566082477120219472472885773732507154592749928198382739019497196759823475430056828851961835162428416862529160886754833581155400326641522641784314760870473386192996549693721168656668273568321628549342910685285131742977492780918672470658625087596704013308764842037942799828406089248033713252854160904784972890692342746709174431478073395477910549960013620876309446944918550338548625067967615761732883542880277507394234329171757316432862726219392688461396565571081468545437701468501836186284000725689264136504082483585069649294593493349968299224369710679515093296842412020262908435281647109427026761625813458060865328747520433943091362124976462489692862638191245846557352050945326391234924201971910432242293410386266631545753474460458217529580958673928789661671593879552061948830762180632850900178579304111039671123295624532605961700478319414963723367009709314068994548279093704134439710000798283674751382181838475054597305385900759877095158964681980428032229226947907409730446643864138676751998758591280527722426458886906944356667560208274448946684607091751602904633888337995663168464962598390679414708269536915259306294251393714431436117671027991706171795483621629124245741049160223157422246688059017522200686161487925167692825630886339861786380461361929315220967865938245313410531324687746519312333447667134883702568343590666492555985388334058111941454924023820732852881560975443056454578813004620475405107499243339263858933731556776107401414340299368511558283183211269497055978069822436988917115332970032583989409987383373643209086102101192281012895800712843102236139200406134390765071519755282867138293526315774768185958053130025348316593419227849566570145464223757327774617767028554077251619731383906137003003480142260678411984742585001336486634773361325795902025461765098097961025886016456878399972710293198481885324063896347312028568947496616059686665973103877338292938599864419073868722273386635567712966826716295811018656309291420054882890724300010866293947150907072355227895620221012317578239307367658037018292711830511848865000027329684073076629427969153942513755279203186965148089771796937307027941264146865721429772918103704660380905057125184556846026532502163319367795002307260840145068849523553254941874521658092076852965345380435395205286648869420078884461878796797056120666900193762697752674115848694050794028970918931137670690724474697898304137539044529747475255699719268780722260410335641927553808896631499671632185001723410272399866695068858101826292289637896974886140146719970089872921809186505799907052062974456130125859948271424329032528552598984112932457913162722701808843426542565496994726530351336532170234725854442839001520081587369140162943126173472318983227139006044571161979013300999620794590775545954219555483150018141406412125379112598155312579761817164662290230810025947675014997912101028929060723929353829150148769725432550416834321116164005192298282516597245352975045716167827546189286515851022734421370260567865287367003625268903620625022506301400953000683632359626895421696027681568564451998336080236267343033291319499282662387054338643419975811334054299127180437584527430450178735706563126023092658639353745856730457018763110934819054495234361711008849908689386300515281642076611631543346642130768975764694839881055703943215830067169791674915554046587476237661325270236272991736298547402087771871534943413470236917161550812959439595875878552941244085575070496317400832521434815158136202228666649205985950971092642783337157583028943163927439245040973901467017534775165018341800006111066243014098897484020451209362883515367301834276130620669302921023367675585924377858458622252717484377419571089107914989624256366956156167354397792342999412116960362293800969487039222608306270067982325179616819741305933091380374025788809636723506107738006665564970589647128570428949073878288181526157115045605660978164440451681592671568296450584272700830177219687969964356921828296288409356970058781496979525176650292977614184078928667775620917906266823462819470183989808203039352734340367624292316569593135068544639047496437475967714714835199414514353914736629280510315962743200937549075992984742608207050172065040386733781512167828871765357266480447437418790325483121807941538442462554055256795700238314179178146941893396371404802615388016417288955108013949302148834583392973841149999698759883082312834842313433797037639811638040840500360741381203970652916366927110905565379498191589112188392895279617059045673622881958439483269782151478080197267225234037510076737441530834092567962341817820882762683838070259118822232195601709456272652969086235370104815939651545041423099381368346905186214605647345089159289463976745941796208499224000187365749465093500118001282636109973112294038172669379996545744630458450065437335625464432972332092020656185964359658639759678156493356795521387038319426310406540724885019968679085789715339842124328370626359700795757934880478363440904907128181604281115078261126953042590528683468555288484479492872554442376830248761311882521751532474263935190277834827379859109119270624549173916548531868419913250942644159098010361948449040748922656568136283422394117172823866507561044750906631169247163981586317356045142451079080844726191193320688285564916847640556771786952799684996617115613058919025411366916300999963480558070967918497428944332673237090159544714413345198231104793089594085443480541043665938187689669810076038493204864593949287857007325975079123306096896016757001613595848630228569418593180593428864915527771687233020425670604216442949722882656988110388799963619844087609378672766767894196586361750593655277582332534965173606215940566998213266324262086653130200966930685075427879114492458779941947697391748546866889242203514121603945237845691835886027764716887348697845272103871426070233470095244159003221316908597375953092118247894078913798358070126886331306179359755618477406291027469962129049299668540588848325181964157590900913483503337449603277802781714195397727043706892220555133346641014160106759702986068723480056803939972264523328695508047449882017431270817193564018596577787199131880994107237783699264080132724595864458079976902179015141456966130756474151491192949022716163175181199593246691419615597636004302368773449663678047321407765808518388827082138015691369844600321344545166640029815351845957170012038410221939370726603023566815216438815573393844443540373137488515500054727315369681943767928459029483347917119849492048042475332163372060624857239963402822531048912922446614276630388999598317624902065720883505611012194223030669331258446338032996279825724947078717734869059072137658992182708683384201907060165252903202842287933061281153563042309907630391190003496674541569761576466912569350861264927733870913947785178655318834266900764341217090478251825017242025257194797295957795837963441999588037176663233064108529367759961987120609856262585391798733181648063173641896032112593056600129684759983551187126920580084489312611730278366856433919075237118060222554908947391522845818024047797334597170085739604835331679013667810720473612328986259737078917106723653847091186468198800988286991178392134445306830224549786297617172487789104203978040145434050594361854561115900331798249310836752518951748376968123676880046239782439499038414205699667092204792791572295246842237996521131160845872716722973240819307656611547818830718360641814602303869810700731275086798759501194888202805208353819897821619799147693617884735556822239416870274447092673041195393553336663415209055433818879721372313781867410214432852678193558219102545091687678994231405654344200570896595410805552451727205621816736686416400645001538161160001931340938356725108507581527727271419625462855661197561607049968057562825333310337358873537836986155861321724474726002805425788667987507600140853410073299285983401095389917380043035173584625914373118164604454034975470491819039719746827750586532282304627002518705802130603837693807241228537947040896850486008315758604734181547511985066522998111318614774110039587749273860613323681579843195338195612321673022273524865020650966857568104821688816320708704826340786188782545121353429587566422276777057226831581060239481935888777394876649052425356107024786766801947543963313191193436680198442243251121074589453700347107236450559881733680285162985993057932587559146345279361765687351673608977151072616133268873743643173134532360845921847152203315605277410574913263386676310882562148240335617282519808991121502829246599325840255358363534583073204236874861853398991958909017939996760527704798999486806027887570803458296721785963380200602357231092546339432149915403518400175656981905786989051275166577335440233660355618476204760384508509171631058706889460983524260565909608405155269829502209006403180797155619500680747247275687557351284470482663254861252993046420594135082373362080251071441872920739197120942432951660881098007284302226622370514583676532684369284861899405532099999389200038799166881260666184594716653778019049774890905435172733230241541953646711275860559882211843235156195514657828887590200854468859441464633646844457544502020436025722442180712290692361418387582534783800149924644084917702480625616763279650853483428064728954575469303349785714211946947256877819570147862679237062896516661948762932989850620872859372381686788283431276167892308572094269631859713495109748165761641423481179464468916380974694022847254824760605440483561115555361916180651478067216888151414147048713837551991924384685662639593343724585876105306256391082445748289738600711232521609907636888665239779887993742945917500109120443737936599031984792902637009135461569496236845721102818089463699708974881931964079433705095980941940299215431278653266813949685296237668987460712853864005653487190666304564030811774803548530544877654714318774261091153143774700456339996024916549522693186400355107302095358970483989055454080229551710177848891541618757159158789094653552345696340516177820762441946211751085617019112475557662318774922307598628607073812472790025455412097403453273813566095365692676228301350907848011777353883896956092938998703231287265171628071135189885031768365295986708772799266646361761424750530479405573409454137159753590084043030383080089463962915098798040100722051446051162894698966393462550886426242819129769416699701861978888302598407482748029067533911186693307052525042633846738316972182308899451995888022599037802858861791784228847225848047571296894737714398283278391843169575341075469278501344657666450966274905831614892954846256641893112257333270990287563678285033804753874280753695677122641630858781435382937531209620278687416587592278939299150694283428416829517358218739476360359385931705280332009473918098098814477540441944652432018291169307803436320094830417913796099298655488613070501496422522350571074393331708122031236716615051578429739318347889605253018295745759300246071189840497687608794911044821847555757224246071238429369022516301820924953336573738294235525312249937854654809418082270773547889424297256206030752805367065041134501499314172033975741989552003171209099276378039318125264032929084372167296230683802214900134791072714447962995988414789996251314992503326517943771798420906719779934897966019288902560365125413492535598821150490917525391110272360077858469697288680521839002715924517024294955371852494456452498421978834243274867866115666974360094354086615709529115858468121430092512519200977793043408580156357963588502934229124647824106622898361026071290587893763481289235436163767209472610047609734715330649977647132816815078013912392738912971776673996315957916027936016761622881063291923262996977917086644233247178373191918130402840016087971327883159709206366550946734351953612440158172754016713270118412990357708749999215397205281221848614796792001331437741855479508895926677689513217566801091601610719997817770804553987743219126130442867416148542139196647522805083015565533969710910503744088766543303765490714220447502837870357136473265472249573883793033014247437589091248238314767771470809566727234799137503730980950649147262782563102617489151089382052423245876258685016676377446722013934384980761342850995422483934487046174188804981394787294302782623330172126336745075074654304074676904932842892345526986992037039692669604346284640812255000155112389776394340283789005245200477404891746033465477826720424923755790092932116345664197161081476986828497883352297585109855775144262369153886983338964071158644769671802713710258113780713277967929796946373745392164937682061732353214170769004212351307814285354683387982175625039959216443018320693167043379129402464219268969864714800525177286681730437185345185448872857668750455801754147382775541422005426706910800348805591519320428871859476709439253732047768180337555004829912949128063437088638982083359990231163008360259896360641258124529627198164562113889854568641855583522056217481805720130860802117637877076718864090624099364416315545463496585360391618350274735514080361027238966791095777891360306496832430458390645125796920072829432289558012073214030589569033135830551866507234436447390026434426693022360309474364814424112821847915287488765802068233273109565926363776594656583464090908816359887455118542752917410922276556957791752375123323205237950081094472514832221050545960588073562623916546903057683897127890828266098545670618146347084633826706822451663479473261713432214177156075402216350999237926310142845197213077163459095506714356221282168870992121998041553074912208685144285086487972553965965831721634231965781959740267517412487520347400716103501247072584612631146940746098867716071318282884016807303513678462186713106586651969855747217452587835659488961482806725357950121495869212513493202557407184780987703142030722608272985479274617472990005422846769322768985469145220387580440806189798322122523014173230433202010483381833414071329015321496514071649489457354032442619330820728722882834533752560566808732027152613493985884569061887802818607598970804645503745767807590813074293566720351061327780252082169565949887832403478627074727471122248777967027128170762182011735146086973759012357018645279332063903100519754479822691936815542543946903739398802275039928396915325970107101385307672586264662119146074807645003863308444207681012634846504947133091664157699538001173862473250400859216507395010438951670031484143102420654251635092180810806591109830634903179720434510504372530813517820173494099270962548587173736656714863226939632753207846367142330093655003843654690094680601602521891073622839931668840085847472742766565124498191752335974302445818317096824425683625917487587531190026437825335108240796186361515895285114142919614229342091766330174216930267801330058011949468820574407398203618466392868758389554533043624923199925834384344590154334839198329438120879950570496619022235169289436988523054763630177130921418044680728401688763477146509209545275798605554795927743956225659318534451148659149857622387446729625607263721823402222712322054938866914045367028340082436570753499696986394395805020651306404278070218980631628007478430438409345140093982651750898479320920947409861430033286209187915482920286465197314560775163480214647025719613750616822590166502552177528818693539305285153339806743023826433339282049536427462563093763930348029841749367279163939188177408039546738683719653365134430359907768076274434661379787911020736766897104911617619859933723623550083301772483112276104144797414952330964482159359400024252688439618550022537055732758593400573724656904808765250904879766222340094454622688726639701616463859106111509136723513918567655032445364306662975845695153029160772671522152710583599187847534343452562315587328406865576941426950144355196273985986524272852718856410858458270140867705437398802416426347696070192295203999566696414553929479165085882289349214363402588269949176265488048741696388620121494417473371502442691784594811772894066119919196147675234694082676308128933551469362894000005498222351361318861381044400555666244362237481853782186080716788542965831898817484474766638492617950164965108549704214051398336050350250477163565410086060586667879769795100385488822681724582870683516499460919444698386986705661123804444422840784554617092475069980809260263936605736274583820721413757410981950822045613364153549314188737619380570147441385441891310564448173669727838181711203265644297447011752356883533391672882414876549566533908984894443494808734342640264225086854835222302735959855511926666449187967944062215770617931195130242786540234514650812521376762459063340761192688258153552410856838750512473816691908616426098778476351614127118397665375087683651905515448597112969319979772824147785779958767911659103838230976027590252937810100430399486698175307319122128860401863982886894103381927744599742458377947508680895853701778093903219134461517618111942133188065114602804322034334634221775523194328497929926809403567764186434060097086373528375676119112107343347595269108791442652414782582587658235677644593273720330447660729345222039777796812118629629461535264784553288299470563528836837997290177413737717653804283758217927794709801280655083158117343933808090291040340589864336901455796769490474218505556741531926510662596462403742786868783253736215252393691223975245849250372899452944698318176373476752640945629903663961624046536097819122091396178604724709549704770897966372809451252894014516785340462597124213133566538721870719722589759432258312154831404615010495901578345198289986426142993516466772846453821329515819761160608265144758353078512007670357728830104016335926658330625359111156321468054111046394333493949179620490006092272981197084716940955695302456680582886186275460907560155079273591700308515577752353735221932899816615400259237749663892444348538636153535726944588632588355088929164779014381559044372505460981640929942906995211912994752423157842639068421224829769907556572581682507712681399250909498539398934367498232648491099189691052970542063569702707750297019717295803150093769686234509278066248799146702720284121547269695729892255256670718854809540135804290915419839271934871041639996938764741211418715186846679979677838249734058419309983795750965367184685310667166371935118981660540109167921175185266255285335797983129581643855756826575694107704896717256314823325154880671453351455154201580578000833397285437366641951206379655680722528979911123335948701793202727693366473696035049252175314898500944112541492326813869044622725885925205660902962797228935139488779558162102856548632792704406036347128346570311684796599886018278920723498868941985156815593655133882925535952727774843778476924699314345320616524670013614043381032908735354315361689757700270601983465743424035853597878829625762371057082968612223592072458745417652692583702519644617795919486330294517918021729580813360048580785871983031203449748115544992133814482908295119605293137943129603158673507988114423048403686888801073685013464349810055712635433814837157340771521955396200696445245652093412889772606118355111343398197481904015130245423796453090767978015761716304128896381372870290330245328844566255321871608960551148055354037819187689850066222633128806275681962607071295349091444864598880623559470314290073270113787358882278485741333574776373934314229535537347242567238469613384969706670531426441182146273401680750874582745658623530561085489790810990308241637961036978567713761781860875719498467627127118152134298383421145260568872490990714071723447041168346053381380292476168844085620966246348013499171528653409416424543360941239111217792029903183596504963692924022458873678406380378022808614453369847538027361463158198588336270387462537581303961959742467713228696408548621243858906732871623156674679606156733662518898407854969670398495646136612511702508546664886757574800057438742210581917130353064176758511429939410783183693415122647216045631342859281571071457257822898785149016241616336876983571456256007190585799726536244288644695127262871261182861460106853787506723942101726998316406697047555461233173601415597889664500256261362666397199364618069729971901454885833565447033010576417551854294387551648107080633214053578929712087140233326530592610047750073357330766665627096432588955891480650022921774609955976200036315332792796553656236269873714329502115218201504145868046879356113742475702558442501939004599793022812875919344858249437064287441963364107062007192140905730067362966930247843778950897636224586463679281783489548804707350119935269162872266061077640467298863211218118052283940050993590170773468688098218849324711623845546577074192858595204638428252593384511415096758176199928552789442145284048324074990214922192627123389460478844655469921581594515749790555063265735273329235757339457226503389327911908406458881798378803110415062068581306096783364517196631062896123210121106118296518593231789025181346592036712052596191068782880874021036301467082923984497067927373006451613276041581124575653187500273483011563883297405784117421859314026019625517795251940027874225737844055351663179666398922267771381649820245926304434228721009617136789330069259669510892682425162319127546696310679911069956336402021625872954075438541156043471894525635533329188032383109015472368555738291120903917373462101536564556066544993701398820758962434717278642309465619573312036080555707997914110111800104682870365410313053869982443303643458027399607638058872838466668136584129026118960767356906257031435895321508491741111778570804997526007700187065180199828687450078517180951322138944381491774283076913182439059432363002628335026529536339261835557611544537608692886927355075907454801080814794822015615575861792832193500325215950747392963234665735916557375305407605406014454486200193333462334944647827592981637942746015183205196092463561898433325267804396335366483666768164390211289196643451963111759531629810726235925504064872942621561653833747021959786394940613221906050879453676315546574657121859816002470369745576530865643345437414167714551327938554797322584144443249164086108535316166488544945927373901589408934702995289812836150586646284727702174447910900932177795810791299234467706436844053889730219133606303343579176936276610855829976949645381556102324590062683908240279098161656800625186059260920573953539543801426817502025443117753288502767261489635391736808807516542667088536956055741761754254233855526703698495161493552815982249530175471674865724673844607839201224986570425360107715435307071900458029583868532218988696821316513329695742059909392183981728859287361988071515789356386818951584955960136605422930035010916616463878114634101776955232681428712305827015924994993250657527871918388141620926504037505899171169250619021444536700410248373788029277881448036158974089854523449590817286900672968142595601456257079356572639991331991360746857663930063432600991683598830453398312754848389845039507029598190385375215183215409329397680524519485474694769750470402704657257304788981192653551574061459649265498111435474197980342734057240948717306631761131342218150541005493756840638400400052382103570009230435692082493133450665155897888909595510052990812274496905604472730943153421991905034643126298605790095506831647072057100795402632785821003255371726721549330338296072693747717397421634189968211699206092689567476251486753742917655356572467074291723039143781060963715313547772164390051874527224738079529575441555721791262242876315027616434911032713228703898425397493719308639482022955554081840957618077438296785664261248488317377594797799457334745115547287098520074848090703058175525830712410833615804052527062850820472434419043522801799392278381574314023571105533880200928256094665605776595141373160651698085798526646572344622892756094196992767369082792501832298994374035952192341426587485301696542609832575008378096220717201992979895937546728893329350594263652048276172925311753762068210091619318923617005005570478573415406661070488997963405264820282721906853776728528736411791886605307056036959102599431101239062330441342574946796854899054706720519272963078467693109924032985638711466992955403934692473385691468458989295685375234583665432208526292939263260603875190577483455357394329303775551325849737365076879855936462016992933584025121266572113126327449779727405695750477708919451639646103770078363733306454098526812815993513193062483209873307534158734593993364824143030606679938449170080185660613917790859843933009250851041442086207104658577514288084801339322831473872753129815972016462645537624283544461787370436229030402004335957749209897730261407982197844265008002083978761402686663322794874845006579266303445418786644002652258491853012642780910559422851202940102202978313141791389003933637127244782679055920663066184005249371383513017517648466236334507188779782898712800947198452307373500555640352301077398812106447570493542321451486489199662546686333194994902800076709072919695099244635817951207055467869012038731048727441181571745433708837995788499637892500321387836322098091705327510052623487458860239564637734296215288211886547572233745426805091346971679583264309522335026411426237668854332372566812761537125677551540192520144901542307376564621432405356477170453415268936487701716110947048971252476061732259983058649117793898141193672752958509997864503602918822032620582223709942402551979427602370199950948305232978443198923933790969604287589464211565343456989172745653811575074538494310544444893223360703304646964630163427900480325513741729041982315873173694792482502559763267546846080638439931152166414190827139193400069316467786849782058616619841277978400550236004983395622101272929636917232384124150172078419586166491616249898734567853008630452404137675138620186642391542035633468851764803380565127484244640793968900459647698506767835531328900133966228481398396251119646558981290710829650599847532537850287523245050698945430844462314356225661304151032701359466979116796702265592125119177704655389437355591449738682230004303995418686567602739785740576751430334128461239349090408525093395235008872391266518727571019790511237073902310472215663706334249706097797018293987096833163752130142800670042097248312787564464908004816561274984650009688325731792247738443228977167915078042302824128492740360607683001754740341851928698306355178887823600867708041414920283078271298701783266311939827549255702040050835664925041653693896288391271969922156259069196688683541576714691240344788234715526839481514594477040756176108800807063193861080317789377676491255199300743166652448026828760492436953195381692179260990441745350861388109328221693073816453146390737919827486143380348511827453527165180990735816154169456930282800836521192574065188949688670102696895572730373200527247082183158621219614190434775610160334432513385102450481417528377289901786382753286329088887006564566701883963938386668358346611602927940620850864964643429623723090233457683470656749863848278778125834530331977033214647661133957303486871684333742556712691828641703356308449903882431302862914913782087822546155132451092666094852701901386792733400394457866922906624200682915594344508501941667710243284051948727869415257221069284802239011331607181978965077284790592500638559271955205050623621918026171852659136820281649342134568543152474369167466627871504132418540941009641375283087944468950216203432897211931555580443781662130191702341962455751658901702817394371298515216752311403236613539962025874571177370716417265267396688819457253790155494685085136667050661886422675185426925075338109120279804077055937408149462386853674061205374782368555044664608675940074659873527325745335296755023853548855564004040412600509566525879858687248150604128457837051018576502614955034944055879877854107982603172945058973470331619329942426823802205712067671486798050152637047945254707949128083630593881993849784475947220859886384974007519803522665301544571704706442702095749414517536055060921773974700606674051146127842925000358086585796823726441951855432364436583992635017261432443216080683482202357514167241537842511408357120834439213692562085566454442360923451060046746248038582821505963282537473147145084974354921940904765004037515690852964124823970872820677018518995198065106885281740962768040188317152986314055322896558963463493505002118466302160050208771213057207876459988327616420511309744482959068852245012382070524197619169090116342666382191357883990306568945677200983563568791860583772096163910995934991574407731884429459346630695523174836618295112813895682458202306767093058845520772722123837488782363683791744695913291157356674220305006256159300369111748495523459647820588551194307796665107594926487276708566565069495210287671966221508613212594013849853851625821297662050220225789590212662010958411063219855818690289772199046565750680482277443936131938259658283571550550467944313484992199779581052700246726851750920998062395126159033793341911341855377816234360699609637276020393877532604730973138825267897343049841583433867002656761148127497767842145982983668534730812316110933895447176862649679667257422927319611259259686830256965602915021793060425616420509604849509091092067461519041741182250117906421524930926689756108668025949082327796061782754208692198262448935564090937425545869292625336948738110820673058512044662948543418478584586080316769274479627139256309026228717638310159249805588537632036295337659533240249789692982597681357276652017811486994028758564973847876766484779947131022961535611805830591613554568093282230967953635427044856180777498517173927640929239496119358871167750614038918901300236269584770360797464383865965863278217138335772900981873051956806622617396079997149596876598761342753620814869304698409747141500886404577189134755094913584352129713717547176649602827194156316885342099032840931456112606648888631900037648671730731463437148848707775441548867707062012837515299768671920393909353504856732345395472752716439550999173977820420922437461277949873517942307071052058298810485226907147574590596140689445024248666520527905832491043853332640062948992311926665758897252782374149999187100124377646201544369524406096214699273682057706107697772203499095743399302105926534278302248253432459106083229537877596727038860729230668662187710053420392925134230742202895928426121397356574712498820360919858102494235130142547657091752179273747547531924238093048766456457208279903249412988202726522723537173568171677920228000539087001164810982190440936309791532526752102280343358215863809881158706428655446436739464605552035940745201111267794255507877560264818879722646365796947177718747342429240828174760135836053973916856970631044850564565565515705785179629744076337080143604608150414382383752672269893817047838724318364587801570431732814672235818827227049803979345527070785055649609510300165833596857759432437566782462156626340551059606043942226690236107752939987308573679992882949325108860114113126439288837698317612438691230300927148976908450792806401041721381848617348270346022407470334900387207112045730965198128131707381251617687702310267688893052838457196251501596297345533457503786384364248096670344745064107469774061118087035506200950562531624624537852006167272484298963920516376254305682469389692605226452772707973579487262949755247231411929757413214029908785316638483509432950212313351534606170769230091258864142476859207235222736481057567204348335520291095826851942222557789786443312765554175273233991231923715062835637251237308287479084106591291175662191487050713427841353162849995366456154546475321549646251045479908577400540167519230704670838130617190952147188494707284319732111002057099863705843219460424954843799823996685929343997420096769382196497393127392457827349556258341790792631922586918203690774556339686164463959863400850623823889502420138266108773260763368147001484348483683057447338009151641536851402718801847066798557929420440169146687969959373368969633641505643027501804239072672049213031828261523176058289550489972781483157540589960278330188653123321360308540823971557939059772081248935492125486075605360947973536975077020088785303374685014254245105996838300832292401552210748208029086798015170421042052248739758436644784029363762095548627697437059000126593964482433613775395795785732172433943088085264546837728303675970455394233171289394745443039120895437043452007638825440142593302727116860865783245679083988171700769467401265141819869340521082360494176672333742856482614611615988885313768131762975108455774542005945719246650493552055480920082206572022568933183313846604657806814650316461062918140104453008844611838819311645029519934448574325192128404352515129490986357512201749561388670482788169916087888769982761462160179206228934934409448977713287855292130391391092147829545126305679397061807209804167809662808852998707443699599803400113317577818394774568204988298621181299926829036257761797472003155546193614485948050237409548636699654515297133884468039931244861717432504560308041244395338394150207908115717353024648553134933831650344039377900732897325700812337227254963193742266180363545931054192354292850625834665648094830129184056810975119831410424984798463649598779400964768970356472821233537425205966503088087419786845206444121712863879956826250711170414485832794222663151639952526843627732434800281674765546317459040473871951066713953550758218764325863927765662917642471388734843657550985681384206099559335250466745625263320899333337666777378709219001244007052929631063546682974018389427081995205128744530666095013080841736270110244974639500210734066909460796998757665723467802970553094820215217023683948636552093262507664405265069235130142464644086330431728077037120901035687998296251775989841742600067916510818305115348383400194955246740639790089161422461603218040097321198311939516188446506427640255081654489067547122518889274923490280431387594851555783302039068322473817028600148649629796014338569365909946336423632083557661043450017158645845428835667168013498179670136731206216044999247700605206957545400998616470364968884974857532877490348028223137931223444158190595693133800207919543672445142437887328622275069792423528285135756862574969631240062681847630164184678431203864113853066468207084920771202423470216253195751617427240466633812023925398189081215013795045265664830046722098545238171388850346151129259880393936782348830826887022979952572784829046777325484555232097151114591309508051682814038591248772866115823068209444847390967062767496074889531387070695886040367708842569855807658707707902048275349299062663955212510123869628159968059609065174198089381388909551593091537815620067221218192263535665079919383416111631623796619571409160525791666255159436234751717968052472234603617207435774223644701661260341747222314303660011602362669385119407564852384410732025053074123342407957802968930332712185655841781890397188869082168763815827064726765032985057807806546805970192988324571658994504394246016701233204869835061574933963422589237494200585739626113144381370128302433033383336042696136470488897152926372076623876443612511029243439919994754348390737207794067246636096405009656801950723682054601261619664874000184693917108987023836858745009712470069540716253533550374900993686604273259785555973034861268437142817339159953781219852862743266672837284875673839240406143852213677135482147066270828904580668864203857366432903923735941148873457845076913357330367388213083420122052956983335509629723314698629674703102182014716217486664570199683750501756119987709115516368592686374312698386404867254737111547061491123626707117064962172719821174158191768935534090459986196976831180611775048186238284263016048414179325831778779825526953842684174079557490104169042463505317772258692129233943379191004514177471885477527024842639596851286119667947058258388032866743908814307441751756871091158789165000356338754979850496555675604582681615499709274201124093614085843561621887768948935228866821588563855508192936678194573444554921430358037682081761932996097962293973448471137796998281433227644409031457001653594048927843462789050197935853923615986620543541345594908455251505542627012886102195576513133423421706379052674058916426103189465017284360890868596964238105893594112288886922606880784470432451184419715924395428665712488638246286533158334149387372097194784400605946814057807183474460479529239393799019083718024819900963124610369036426065430602813999960791335597149987733861805227057126473723101844130385686815851498953067111296809537150722477400028167746620270679020964824597447391082314705967910791386686906912166937130344883166994737484573887138527833288254418910877194415679974178226622700579038032340307823314734902272693831139796960466795538887051854732566539506413554851101102749953749644078472263815424738737173266530488979312001208756530754972441786808469032817851285757127390157640562251190238659845411727031051613996471699690005421173601311918227094883677260409779414248506311529332121207115218897532006673387573965589277356442763627795325912663352939512695463349538367068745866788043126199815636891975377965993315826660445867442210861137577196629869468909002364275589539561057954272061386078853448954705181931455346205125042900173396541490057758054221294014847460595187980112062868673466202775623126527601895426130659852118662455831953502666916460594380134322220603034509623101247501159447007295506827252793980764756074379178775439388978976564570233099892881183122035930829533368322074593537702701866531552584696397055223326656855012300220880586245984555197413997788266087587257795496550814265830315159886947186255398566303441719480660863303848610981572668414119110175733538661235827512209454070019883558708904966548346551465206618649705581565614276077878866314486556438667236545572896768137187895926470506403749630693776019373445084786312734185024273978516758405329291371411053675992992067187121868998508501204671033713615580034999063207812163274789253474215598557596101500210809326804403823098633586101493318450213962497052256313797019722307755278438054514482947276271151868566037081482560569198200218446642421535386693201320922880118978416852940489893697727511571919704275264308734837580470075293321503219158393451128117925487969336882029543216945251422327520698847979027524739764211912271661810700144679535170066346347142911645629604394122423774191246177268261593678285698494303949207249453392905471184469142323352098857806584664719843270214626292463547910258147798100287672802316681997937190303920257763226723045744540704332672095722593673689379494051366937553098843121979257370992846732517215459860663433135465095134858491781115081364515096105018226232880754713090411996764302665104812920448511645174738862492826014529586596611238623894858878710771427738977410315691118794258176748050103918867889523648044489189814225675063452960398992716548448804140021626686169718852022858030012516338821427779013432443891378164380336701362344063848870782237003007311897574930176206129332209037857590455586397543074759985958391943435134039994301458081016074577579108012608066512273969813322168873011029696057146309929149773358220431587578882469260315005318278183403537225912170178551630433174424251793013590478652444881780876064397960835818285157353683422228280682755606001524667695831980668935886319144030044625641185439075649848137734711813575334157099416577963691948934811098289066250383180415895445746960402296703152442825318825982370519718988634828859085212770319869104354592314852385093298000370209436691933774106470236038950975725308395505893094691556288506923903710208704022157474578349477307266775541626253787663516348370341043432106395529716371237400208075470215894920149453782568189906111359499484093483577307270841604663663510802698315514958893805378946655431987400456328159610368559926855501464055354290223319556886558692138470635588929226073424973673378265006742068106668710182075879746994187281827646890135339632454897123683153527821287648101298597462951532078853076224927662378965075263105327969336239384397447001142003593044450530973633325751828109361364740104555264275512195947401486537119536382593807001762168834260256981624853954899458326359072426699733777821746276475093774599026720075863294965132484937154931826859569510123075975453840942562480501204231457277489505399422361259162685095232444071755213111215254205238925094660451016797307402929028118627192930414325933685150784468964202108160149285995217260005453544968188979866125129985955251224032143784955789202066184501494332246479561478916961451492489952951983813252646384683246650467194075987797861011358653817105527033478753106298294743473337767921278607282457383052160522258983563949622186565190085625787787514603953161385248460196780881543281963613329793054110418429541542489966447932896953811730770525430450010419653915568745402724644437974333702598501922609988090485778461545280176247356518981013919352598161933756645707631103863540604763372006689594382060185602487080431241966898575594297253412387780618713180579075552459880608591707699621976982961562704920864485737260513258006851494570319760079228762204601731955900592838610827226235640437160818591320302172309091743220834102923202537866649757233682983713370426898580150294766519050266687480595286052331188658639190504840193957074172662887753265461884574174043618866225228918289987085115060011284460232541678554344496394064315337661843769739234825062619227076951382569703249577616178476585562803738581351734611688831664945646298257469852200324364171231489027819402731567792443702111655790903864873203727737610163487318053965781968882931584324852783408237883519848908553560516342605368637979798175967131137824738779383994709916450007707029249701349960273716289390238414696365643526022865032042794400354099099466466384811644228558734460360495497029371895363635594498090099902948119905888595385266443420657817978954788742653784182914371693265191061914228157547956957448784984503065638962113599796320527432701380167334518131973777048924710251582130148977505731863573022576070458714280911353415519747561105060308871245510957928683054242178410678166184926527487733712088461671067336248647779688582116002690150021347320386473362577243326350069262355870555944794358277047895128064137538161015921949480817376646455600082598880616386434960862585824128941520890063328715891251700193680027494044711494481133772398049433769618590210635301707599877316862286124613958426460026372013507879523412697021304755285515439874738235445022505582041106991407828342994608194459532056109555552686630868997402090783625797052112447535923298031711256498746401960157893791006739693299349227321568241083807723067522691147358044086000825989111278728877242324920533513922607193043633470932119057319744125947664847138853298066831513028059059350876236311335473950864353565720101820488915733667018033723046401122920228400336620655600359961172063991732769474024758014377968807534349745690339018890992889324345728138227546517111378329875880104653760609927083527091765100614105185232046226631680247394413539402286525302237477692025057018710625482773023535738322545121256749151268826285272814682621383960837217211608117253753071597421152148174613049056591651255729536959184088470871352514070807224389596728750420735249745028092862206092892312352782490655479940329206375021863758164565447939397147687785008631973130960536639227376745178790003341111838758692703863032451962640405545217998790777192179847557250843142765396289631969159842123610259280561813188517406449483717269923411563154166298832670129004814424611879589366470050747748695811568011059285551294728942650122379980778474332426903235994954465465171412944518368754763662242601819747544795342116184839750576486278064547586219100362602054162054220092688545475828794884013658920952039412021832913611637545725269924422222621074129790803910168844654900397340521413050373419137981277096006242034308011135799352970708054459047203034558049376774908960213191850088261177228088053125181240127978348532893105685381346096543736159770910502725873468247975975792654022927562036004152234395285282788442952687681599329965451254935271508416368040150451667086326305487154269411786614776193769289566855695917775150940343074467882270377923473056101939103264540235925281014994759389524872861855888759770008848163752410219135404337886641342469689268776493614502380519960765968393789223813691050263521078892348804887915134417685138521569189810536742067033553881509912081263836345098457450906212028635673674749876626981254880177810527471992883033235924169058429913355456886280625139886934991851215917565838260823931195270442369590266214986661365352713468452827386080430741622423008649260805818174949596451333521620311167899126902745382590239512362523427119850615802784774252495161542524711265400792375561414904907038637324401254229196411282104320209042698873755534311404533338487495120390281189790622907494489711627774705276148925997166901876681460991436868408413298035229978161439239009034357999680194925395198987158152922347241633267514829580337594638564153364352955476650476194845523808010781176006701369115606937258788621728628165585253827868641905974943807910088821804156455588866790121813943240239500564923903579787986418563066316408433237573616492482068014024866088631349299777045572544878190603870294044645054913705589038650473942710621956728323906856384215233915306407808176890700105156582988242241169906266163946888011692920521515240749245719084322873992912101936694619660490245247914634649000987216241286025797280332764478999253206743371393206001422935556337517254823586930331988265916319503041108895480273173430091419883706029018910094033210044110897505098409632116120795352621350898534006503790578333598578250443009157006687673048033874501688631422248505738599370853510950571308062090655658358630549693987920631461469456644251186127514424900676298488912442179829891074201200781627748031828188357949117805277837286764484842766447001249321169414350588179479497925089321356085673736412763177637600290182652480219876813655269142493888054653317646910858935953498385199634919965103771188937857246648832501924357852113166424119580207865931484127521461691216117529199705198387615791382453720284958960205916006544195979417989082598122665223013958408896978157101045782725788559282783130936518742813480578966866943474919147818840785340194791916299688282730886761874003717528426498568389387968284324610761891215885670471661070745000601716269358149484975184761567906647179152002370088599884261571953889432143899996011816697005719966362923120392848239399270357244293032873850533651860120188514681289243848738310365638579922585135222846530050156200113105451807292921917327523011202093760787828567194152597289134993401773276042246559021106616854542002874636638959523926525669806225411305827106503525127492503295471852604671842175190805328185957677755020935303105022822773353782338039800714158953084627635147628792432954873379683940813090665168092972610369477360441183730912089541590371756499747587168898966824493579747819746290682942489257170399042850193607491179037364290295796135257263232378628248996127027007637014286501267779467032220233826711917679637928680443780944985909175567282899069738101106960691008772180900362397685018897004634155290395900178471424936880291761454886255152204147536669061711192308878977446068554445044751191379080116554031482978624965127158545710065460756182634659836817659003562281481048110387058575811453203562300508533221750126198969927509930543323610113475906325352608298970330107083469727389608930914698526934099686786120701989341732318197718867365794816816712427871424392683970107193625603916803933491596813545466267815026016417303312153576854817544241258188965481393258627354655478648669084375981111991211331951617340590364128479569827510595836569755307559865807938222256913241458946207233922410421305473675267183729050649916126908522790309140130447754367380973550785957721124830068346383516069102481128407778000978306195340149320053650242661880930267000370667438994845007111542954130312205462519789514367165145132799764818902791853714279389926754203649055793263541351342832786398344548505107820726110061310266839678694072290664589800839022579650100382990337456560580353256463081027267056530932732005940288420109179670842789675139998647126141017432430713288272264405985587742397544181598533483574453983003564324016146841537896498814535592903817490393735423510202959526594303751595162038401577362765209174644108485857359765020934493475583327639484486780767921533007676135513215981924131560786801332211896717997686854896976742555080967607864564880165930678304134502170579941580571030571242106795685785355063250281641181912559672703215651364875674503940059500983849940649791625213761431090350491047640191468371218705225884185807334969669781318121137913268282912706348482552357707990528667705928103368923659690234603940410113583539481406178440228740523884132760975896062707459931901445762185177372420684226429819894316377073933635329020526810861311546547148230143922527583160804058918377327482064534291609237616784666572019728265452431100262438046784895750104854702860136394447967812582927520027175208044636251920963101073128813202827537055420833440722441838656630168291710682327781986447080155972493090730139551382324939514472215257731410035943578545246806526733814991312262069886943830139773457455025340362579980023923431583498659906540364977927067707329114983460369574697230327097976943564236785434362686665058643871535324607252011576504691462180902946264319492567108897579560458333506400211206797033791628729530094791116108547264658458973282409044697066056822446148441213350398475932980201939559628066947624295878073286198940016583061058122386274119619361924268232708488255119044079734498632773733183991443662181812156843069598067093689379379020754979651840165195737642124587507477084089520629306855456068015337438856174426026614986939470870840524005542760334659006356289161860010007632658854049447894899849390555257250873050481313683844766144509697179528394443307731240891564245199503569078767138989838383143039559648701961794256192376982683410128321896203188115778773568660326096667299274056597324958270089700684160353516813078244593410763236083979361418463030333132532062209234001633611568316288077289155347611756568427076868477559451995557924577137200871459895631459329051275287038947698614639278446923422037536041013997397792606989888203824810958159649388080865283887201980266885646232428526581691683123491878869143902432366142953745675437154161356907212920726519691024483878342979386503569872887805604185552327325779743037259829338273638842448926595895079306493146567773040084264171693702028175059844201873959734923425868038903890800923755393794465214738249400813808514483749354438691557407622522363920314794779044222567392253943750823978073451834096849875736203463333716510302221392007202091356882950739435645061085427763763377795432597122344554044997642553758144820820449621533982673159306197270595017364731916269431883249770313808261809891391219363060634472834100433963501576198150061488560873871526959196516803478770356848014919348946284345201733093477251366779491716588086022185275860489812411499326535251269451322063768084753488714499243715285392461149795590706639734256570996199261731623983226783680138588893379718651571284821939959777453167718497939477821811590882286134685246088517846807353553718489013506249864422729371624662753598592980619417151806596608209381571821836718261689000870763468496247166998578799025462167329651201102725931021534213930291553356469726215776085756333701071012633899553307055779656024334740022072639685407649261129449869417642166842089146124827588849360243566125868228839245402502383715968422399812157757183796358505158285150935020088346472255258923123427090897080214171856501576313742160979101717966760404089358961123860233629697411477230784989722889757227705997040237875411525084450185640366387074497111475215476378703434289889567649275734627670271028145617311355468526097857278945942880870330408319723881137360770935858747959545795670478974222616914034601820960912103898147214069697422807718461502208982863240780621295586707182343994845808308135488581618814866298593340677049578609404308620961341348325375270115615742233655526871549375323815880247998796258525074407121487176447442914541318442503833570805259997554975067540487330784586780464207086984876704639038862571453598744736972121143801388584775252258325924055949309749510987209735822767076025566440506135440315603765347715793720508411716497952668141253449021899556951214114381206875024472104885887475363212214930660641416817217467508426493406591355933370229112186942671824351146371944381618502528136646649018856411113006878018046587495977584667974726658981744869814150573218979333599517577534464037382316620544214864383793255738809757595128824450118809466968975584817318928436090646021621437039999312152129258060727072014873790209370001868551529628048963687396007621731969388666203361347605263788601529021687176824422408589159811866061712830033678632552677661431288289559265383828521762270789526952170175072089550991883246720943537912040729849171772783702481688804317312774158924512215867703416299792036677165688853518690243871763770466731628490912632886069145257393336370885833321764568945797951124757040309621949988857899883139085200262765434146297627889506035743207952139192728595559296712842910107144627951488912127716965122118034300691558054005933972002277012051010866393649199395989140507130579683093963673934201896392256460830588546494925315649186478047115430605514003871925648971478722216747880664939195786635184909672116660906828965618290265811580781857649044717623974481647192696334390483609159748135726792155524196512793283159516994582396413968989051058118401045096908617685651782921778115071344617553785664121607819431048636769764758298068427579324009642188897711739191198666360055552200993951031673909752986874998154886326464843281038700392880824697440137634354266161604978738814437567504589606304884488734649013523903305362219933324979358370601708447468197788136751608896317917157807007628545091198670161452591346265352697977034229508390061775240570259924066792699202967891357505357744790032005646748541006250013559003627043799790195066963325677254340754551415509411916120692995911488038920391923966460160479459814734488435179694979198993165535213503255587944383880868093551669226486128368507110354166772295048347802967253124565039783049055449287840678199324904084221913439169821164666166629604456775945965765760933227093988085428904970869685676480374612847607836243475198450667786851846934993179784559389519820955871630140351953646255285385135364914866151649872360648842683647325049509182343610251472705593945476186645305537346090208892651472380232620850053381480366966867818817612525523565294988782305350032705920816243388589739476793278232650954624830963951602125844210754542763998058622090821665931195688496165300569487213393202039889552943176004239861319261622002962118171611767496452124329011732345293352483887153595052192133606679351681924309048734484852252186753523172381643708089333137501265520622963599954531944739142583766022954699738843485676845444846056796831510438412762583524063556169768603323587931817056338266241600078101779601591346217766395140967802453757774756900258578439901298131819563479464275388802066108801254439653817187549659359428192832080030339105489816160111299059238118496981576760177130448848048686420553070619444750066935752710816505776093842792121940674174102529228249982739683312259706842524001164809015104798316207248286667606289435696633104258280388816086940325998001011335202494888744401781917079346707417206024667854906988840151601615475522101704904679631944184007456041289640736587157323574247768828142450667105887170178298998979274872366272695020749892334664659931234605231383561616992141171279739886631133332773860983676443198359761823244125504266854877673612018369059727266895151781530881816209574776453706240139751553555858843039204287825826462624542800097222424604758537365952588628275248638027059133031948282479593787909753167532126494045510089108370916495303965237150323592048429867172035384015248181256044301791440813862151077301509565608016041294424906469892147721888758543475664539099295253957931558481995194533199330730907067154364120389352004590924333382053429621011829412877278989177901424539003485869764745357785335091252036265694700920064447613540245958705062762057073111257889203951577100291307807354654901580164014878575539509819005943619637941485642233807564857268690273724893279071310216683471405217031673447789388547026067510940132408106756127865616616794516345312951722544577024044976957259112597411213830156931412777350004619919065730319696770730835831272627863869469274191051729350741039671422250297890675424772848676221410389456885725048531223356894179802465149373614842786277547585029073490801169521113559406874018939559857096254595734011863843786461962315812474512971004363132516183120654034203386653192870329694978109017192322118498199933249335931077123716093521599285485294711167395758183306767756649705171758017830817385371242929478743118855658004953150540638658147094417635025103553852395759454223970141990502882655170174352173891995492628528015488133366424787181153680234429740383407438120348572198034670093239032835898214783685809488852604487814269687200963237380620686566951235856107944561683277101718716181452149647730187269021270466196659240363658734982648572127314408526982759091256817986702433412353718464340971216401301299093492035072151533720781588256500155331445715564209481449992001859465359561630698723460159960664371801160854064468034483133903169110063161945209251479424213960999900896622431862285819833445076318159487146372602278580587193264448497540051719482061304325721576649876313894193330463792844402655836381633590673869193143505933130263303962926830120965630215451355465981436660155339508985670966966835515896549353241273855714698865286924188518723004819728064894651617322028968536841780630685234628324398321944233485746930542068741262433703368147833498287026672368064206969715167671213453418418644578980915950327737416747447545325319032972989195082265526387971313601805853556995613954116192970110664302189285404636457457912788043932940834403260110763955636604250233671304858933806848579984485010475578869978707499051695125295014579366692066475569237592937528124123902872147413828798043254929038631295269671080715969675997127830790773666422272290274153250001159029695398215386590839614276445002389908598195525309181713257895941060495582585679102634137439168817079057099425374729941547336591088613602333165344390931487685654158685933387886634459273617995834551067084772040038633380018223557307042591986135553411556821187351359404541565116990137540879993030438159705874473272693587005705838918668623721517744688042583308060108228852943898686279082734755211332661230520688188469943465760885373789616208958495914144578917588123049764392089031279941724244147799455701242852337329415987660787979194699544601927571681550048476344148562558486010726786816372553424400331980398365471916633650885980656467272415404880934958019280400802714849764666767603868322208449111107617766273631332885899439419543665852742078644072756608634810964678618131781754002354475217825167661184133158157422133038934537154968448967774885514588697186209860880971824254851697766126287183494819332731315820327714148685908831147694188034286961408681864063750277782084961459878328519789204955525567039104061367977784298051011610035606953271094912309400829127511417420130626810097649701486468874948326710759712604550176481358283836054603348940145269183875941898683910742485195869050945686946652456540159040835908402737968767325796329273042160696340404013583124199992093932272785007589383662680492665510897281097632666461190906985070412282168891455685204269741931317577880463041704632077570104420074241459193040253256254682117846165365424066203376912217658248563436972880972097847780951044576242672130366000521356812059300162026142829877481438329552059165015543249048274621025272547182876008221594174415251345111707391505499381500470537208204311705837444470918873217276315624264334139079715848563266424322326959812306275790592281282935887766767529019914963052122766565382129903266457447687218836218294982531134801105547850717286459871612654564724510007392785818531588192077885644033213086878625968762161316367156292688934878829980063738532670618906794210781884671747742488818851999806637946794817779400760881899952404249759066800071037957709314965505067701531389112187674567220172777593555755689112825000563003895989223875397001608051431235057569496317759349326560733172534771392331217772184301712125992844796366418606736363004826513377418130598778839317884203892102591868045944256171276148015226592867109925717373662026861272169298979535147462307642270174224789744917287630791942994019591825638250492519276717333284665677133667818380979766670103589776819484355278879878274452577175816257113749799659796934238829339332369941044888916052376539611203367909846214378145635962305934827933937069513133442261719315701580454080450902584322160080869757397886067696316709441222734445504461861882686243802864863085774596111592246111320133742408412003897070306235084763255551442662366403562523365689141686255347637101265463242907306234819903352925231355734291610254953699484806411070028763571548988372058414425497518132448074112135032747004587622825771697502714894598753897834155898451509958366046180246358392384199527501829764194018655432764353744777399190795323027028714853400101614252944771391633498106337770392634791918212128591973399101247587405133331979791039250516609638551008129004719146173523541960682336405807246918718458210468773753849312727299060725011345489232298190089209032016955327875790848479437622805836996527510957271968255101573908981773196161977528900717537241391765835612047927612878442070883837535077165614730114219793704994729651246657115797553331284402339207032467808141261377929417141307630930658666451357827386992319320853488711515282830813428268582929954243283834339927865136243674485079137392644685077838791032340351506614330061741818175731425357386069504814069946373077797853979363185689273467920207917388059510175375153600106712082846354669270204022670710409846916470069324561520057339988104642576306233336961456622879171978364644341000338271499873586059622347859425165825307563165986802208585003784942146071829085405561691387445037529675852470669603409507455912373939948249174306903926328465082825469365597418818484554565731461133162081628575825995198558625988730832122400748668371618085788718339810411494204351121586146569436363428287695123824384896654762541234078718956951149397040478250922398091842840230701235614247736597719735131839029605367882076794726445454396730509996753497258319758044310090483958458092823206081283152496401919778217301715072109964858320466383989551410203898761184353858667429289223456682626397902932784828238365603424606696383129023276825280897485354518309148976247489382178805349513858732429448448040514083551807003109040443125259775259915810385098052950598896886241623477741334439984725897032972968412770289503901399609225611101839156977650190014261356038598163798292844383475061455917876689855272602536054191694139753964238157811550583120832869881014590807405168044747891088114723423608219786819292250898081422523297850905013316879098370105377624501131710445356109246705777960011474468697315365862904677200404021818197869734363381176854577240927704700749510492594737908380718441543428905587223218755847130397294016757514442113142645872290685845273768108657751193278396162797225452431111668617863334785751047754121637915600009635918975673862074850348914517675596338842934520395903316138648647378102560119647608076710977169506281871044496608900584393717292613483905189688703933108755694403677296487528060017065572828990331163942233620792296435183999363048847484644950565277733978500180552278287540820297823345250325640002933540529751034304537035826552159601339603551068392309735447207076763473052259226546208864089389253744399431266780691209540333705640032784887931668257502941752784565093794060182752369593441660082513539521848394948243583372388460785857402078750953950867710064506863958899016150767912120157789932086235428050338756232637674823500510625610534781645658760104881976351031786444813948370463339346332432946266008474116110285501799775879046929341178332892217832451065738931932483001611559030238873983773505568347335787632058430303875603306191502629600928617216909252679581966101584815235631961082829971991672993316374942463041963105612426105981377814673273414548177754415017135220105120567085040833794162838984232753608710529810773204719201058489380478043793843317506027307769892271912613595414674301484532247596003122941500719195299160132908620585021678386644096776051379513272318315065305775182562685512259981128006228189222019453498822470632963151961456239889876497652029383703144742136202603568897157245709898042482721536646220417767022145672703481368625802141485440671187002195249760226347098011156928567446304774045550349265005671354861172144514490606210632623945642171407435928523951272458052463272886732497958049060184879191547985041839509155044743996780316874895939583633774474102238364247087163989036534871912879158124909661977523660789401503892457166692906953544241102632759941375148264897387750569985511089948641288576447302660909386521648454776496113997610162809216348649516687090171427776217923468162915360594389752988235940861007559191884676589843976261018581841137504739460929180613324625080416031515812330596264761930935522466937253858578749530989074153426617019782183354512983651731242192021679636766476758369554209190000852044876959383808658364580002967715976086114405218437054139298714397507870828080522912692435344871836678855629282116730173534881934453487567274867569448569322442780031286343480032821502364272522023971843829765504658273193566898888767112850702630408736791409360335968418113490865491482918053073011547658963988260550750695218253439262462672775430611804631140842562251500421496990263823207815741394965442736913908853193307721978340252191464746033205854015153244688173069937472177201100766395357172839736128639727136368796974468797154311559029370632828524093924021837575898696881779691824721876540496247771351931602789886062400322657729227264948909532183993762198331790267500670628596783326226249490656097776146473905514352584349659427025524841827410116888022341748381355135492397944347236935777380315817816045059446770562413496327305781795184560306702450396283711155031294223018202206543758056485800308321486058681937078467382649971566183483629247163943775800189429930223333730088275281174148122141076674745634694451758894607466123364170011060971154286773139087021668013681802180239875304393814045916071202399610450405823254344270773265011184014283455372521521190812042069478350742812194543789144903737722469712352642793744432207836753028651903273971282527007023029040641312645969845271490906879597426764545244635955989279100984410371386872441714942631194038748613554881863910892659478985128723971966998065577004552355961173995613405347291193403580699065147472908604351596062261374895180733776131249682278344240361558782855660697590090856892963692480630527906703063685412748737734164864032057764850121618517782287705366556327154498026845266717111158399002249237426356393408723315548315888783652581297920723360936908260456232308016639199426468696356620453563779230192219935038773141223216149895127567983130388083461601465212140346899123039847311701078465207536776678575880928662020537186346064812212954279540304486938616319824316600563668463834580194797421442129635055047407644528640843974620031755399793140901080532758836207293177351178969971507584766944529424640703463321342300399338678780449475904133746682090449016705769851580362875398022434862134107428379965475537294622283096626419408077230468949737388087627948331663603073910379965591711632737866710524685294330277295220547431362328550631569933053694599754806979293401627597358618885164239040423356248534599548841545845314756804524015188794189488739758050060689761465401981010404577155644542700181096535000496472474084296100970669272578488654657007400376586389475058045346043778429363348182883219249289336846196185074948465657949786058359292163221967234537078809252475382758168287170242723185346854305856708893662981499896692192936484309124434044628604467427451642225062009217648344190332386510514236226995173808115045937070656107000478730200587864665627848297445728524587895287178997186654857073337790054046224202058093785514476407509775403758396242509827623179625567896911295052031964111552491301994261163345993108242315276848341714854921426807052986794787938584658591147698985130679608267260386473463077144727482837572510606070280157679468952496986948219802988523652980049434775829516664671634523130628833391175638232143237512071648253174003054776570011548631616174402228327275370595243224857504289171514347069552827880496597838765406094796060640893915675971277664613478439068470263026923458271549019550351001114331709526607151792306421593064915127553060237205668045550357175806179098343611016728702591899692580693050738926861125269202315058510640247221129984597644020955599343986439955541046957416804056674684306361778480419403975894782254496559716958849343225300803622421217043806861191758717747039787278795929324883277644073167881468759914940228329132489683371489388266242979734042952294572234160420134794532922688598888558803930962923419967513282482316610314425876894487590134758091738565043287445843450791387083923527706528797740305416883933688495079592454618851611413028752900155324811042678677664504414957102125679014196887483928348123537451033904564983521859714578494124325571561400487991423920630253581106098855588422050506562908426199812737942452685670157453511964299315296188088158935449530919911695654551417963177230323893916090754741133739129979731705171514516975534315759259886922820152265681836390724513848676693153545492347736521390273961339101887826796269379445421960380414994995938027409176259031499287445933093712885727241721462973360123745366995536721057932861742061186388711475480448598296650673286086065102865520511343486871735394962210843490101592871948823075720403115110528074346217599015515498161073028873055891423329129338023705461499369317380612401063937356190239432390732621877492704821763194327637642074040174969152055773091356259613269647157480749674821769719428354038699354835300628202916023064212081978603937876419265793996782020035555824878970690327231114738644373558357037168261918457992651474402869320525580551699123553487530938036426385864682472175541317201130348436514638980737409396230209347465114787348218246432948628144414498471254523766962908839556283925443262348711050476037880937907318503197995637439749780646619618388721647725944394977308851179420303337113157295783707582391093656216061596043337265655825577737257950569999570771221769133711658737899222262202616993147242950321366449236093210164358423672875975261140255787385191190450746839198179868134495060363972362991957777182849559853179220225262704848458737742970351457554238491901011780660805607673445943957137703644358600727373917260472166844689561844612399180072032291408567799081988457566888325980976388405420848648475737312412059639492933155153898906899393643477997131168102111873033558559947181624816925638335286399740305676771874922063967147259249010824183615383064819725913139425746508217644665676666860063587076373224383660522748067428905176410041110715605132562703076651022561418173053200143054146171398536540682219665844139760956046005594247601758109490775580085133507837340548895314059610300671589572796177859635280454091057315836216247321232296047355536254620613451008053614596148950400389923145559931754772757964430927719129348688278681415329249869272057502933336414305101437353664872737370695083757577969931283967206338440725789537660932050458015372084304136209375053084180145124958081660650113909926348749684668685907534213933435287750158355575470469311733970320582329056791150068240439117030587041976844317638002504725574846010142908320104887917215081223770726807751524321581355041149056995250789289226919897008280755854455521795554067436058333423535365272820593503814045035897510263901850954803901875875186804852544369214742183485306269094851565270960834182632557011610892524832088175694333944979290941179970606090577504164297085216908562921230128115274476856818546466702288223644794188074826052346987684738268733105742222561320576363422663270853032598058034550407986624378840200949249234764020436589960116705578269302482993832571698234571837991906100026128696602724248451680566292368183251286569494356749112021262508563956691417325321791632430362964866371561379335716794243665267992906029200865345942487221781636605845992591607533006409982071148318819080454132178056337751068165998271425320164327967284315954994112193180016908771534389158681559788343315638913363876935030409976286218198354999631049228117329427403077641117659527166412887515641517776710034611067096086735773397350202427451185631198869934214465296085380077695538674056272047628472395726168518973439908378317819332948247902247368370857266021877018636576303615668679588522350501447166789430527087756031258743663593362241078973338948206626614124715652105069433718339625434533306358560330481662225648756725607495494788946319824080662009938002529693905250156358148083528898101176869751289853537172858204610190111563117424737950324556696726619434477659825442990102528001092524967400754255810392928007033055859403407298874155850397647931661928782437070576876536138428111445440109201236393812376656700726696751766575314863956321773887006175687791376253838447566070499696237104725548995920423065562015972623906492649511289988180119011162792732343681365325213208348691283542044354247389029612157028999025652935385037864199835029500303379579612911413663744937147393339536706650279810196212383921084623546487709474594529879305744502473299930526325313297762166379672290364179499770326307354375727372317894074183730009515984408035049589027933438048756353908981972358035629474589241123673241073790675057065891534532554104118984878708483213051401591056042382267771764495215460022015713407668535772489809841807463371093533379184878394837094293004789387519936216317103604879556913929108057641904888708049691940042155064078252752069085914984544980509087652771802890022297674709657313758649554225096900237705157103792630650613788307775084570974164045603278337678071483858871411426582373085056176039626651887394552404512523634334047887703284930687733270255107473122281895086455881556644648889175937161348654168947382543671868908134473730482373926252841454229646932273843526261478635815980620280857782205919712195130933091534640079600315197363417741400566551373205750987787413346146974732013675325516338340749558184571884601219378197624780328502612332111855522630097312088132586074728495865747757188233799932298327919569859445942721037475808910462293723232415892011900635999761280180208729271455193290396296873332051278939992170294353558552638899489319019206338401651964367657052067837596325485191478702745048718326407759949375491694452130535219855574627123425142028880430542117325967266322284191292272388836801581289902597426024689976716044600369547823269810213126892531528397902038520815891972091316633092324205649781268809519880353118450434114212183291021275150201691084080845143097476489233115746944621277674441546995096388799931554415603725155824252682698589225522904691681703370149700802852987928322503369086727452046111923712442455522821184082394178257839787884816927904279565566888120541489863878578895801405032992020655659948698780647522819706615671745016589202214335079458718524403417800538149156880373244993659984462106644262263860783122005431112110424744317578120202368190945653933376115553090281802899723373617416124983846921376303479345562179964049667023062321807569601511718567362358421663548188799496655917355089050060114582519778289154672808862839906057928987765987452146874774481777696156041608231659514927674517135570849904778763688188715080524335246032737650052637510717993700452820009574194396512858307629133428780581672415893851468800751813316070598585873116098326881153208163029544163439520866565616612435654262000867101145586675031363210608216563496930908285493070034863305666907833576155980030635707029058079313619811381207281981349451104196363203112354556488055638981614433168572857913202606071129797546887169869585706216722261274095664853481236485041597810106516692666864397472738887009004778367264875795310363931950198816489510141789912395376639679481125126150860236677203985790973043773167088024987861900074246677703322049935373861397820424318757453464813766260877514329679131278035562841020109764482238384219231729260944241393721310162464912744691287782665688901276908476828237086108794052297380985462988648130484672609285989630710318009594155059227042790825935556045538433308345437968826789116810924366663876159964886862188816208529597465679582222781447085563841614515600750401085186492080639713699034754200870242824165192257645439134066252112805431679004654001590682003480604079368881619176729851635729871811869348151279372087971948559987034330738590936553598607433741987796966436167468917537658413551192178831328775479150289580579201215497177846946962332847886222516954087669003151167802105982583320795703609220579736234908332418629714812041882974306517921206100791502352730960093885753772731021314095223148315423594770531901198451502158454511533800004063621313850957901567500344169402648019422657498312536046220929688829674024740395899131803740713281565544533549367793333431584649554633338586596459663496984402791363845407430998124385513413651632093016861154457334201132623854558234795978720074994564396998706774784027774361234866937105270668562679095403299222435772247221964170355696120672771785765841570430020370774937439286163728550496516897168523801426247700586267172240900512966476217392898224320397828270644844240938818637375602568173454069958450832577787764306392490647251479581079586044372166546500022335404683018412147077649762952072926396393073608892017775775273328967084748457339675526595482944544528178345013133835863529111585910181492164512350484005787561300114994123074323451216099807327737916316187226496747936002805246120288526375368795256697433019086282066916247961434341548216910795809715897777669096955416271442924203125009109209229603924622429074507107222987882672824705429533159200321514741895080963506645264825359370140460205910097844874926299847382929070814343343475529954130883912730901538160103236849635425594958946148070992736559692263483723440375738718554825932803892324238079761940191133573625074765131444908498907966050492964948344315101702590467732845994054244896064883786099470151040889451041881512650292879475478827942178380789363270018982658507583141919477506453328636905912308439384791632568599689420974347042404996050650091274963921850049660601435714932391195667785112330774905687729304138316812516606709834420368803424053621216728226674242380034825549694471118862843812838829118336767072057684859997866657723809668850494323109513903595172907785303767957899446442004142818285638753454722207210472335493454416015889353533143389217191385514538378381082774172419216172930127961248402239246157495052839235630290607490897605064483521335683935023859232145081948682139312006785599938617005259231680059154099049265226255204447584616406614912049285642093405747986149081492115708160909580133448889973123089668799983521737297115814604875021119847351019199229087033177561316889725371538113356924228466228299705386089473418420801803083380260010460628179954439204595442978883614059445726120657368804173121007482520779262563004269731306704941801730375357731509489733588308328583635729889666421409961007619179042565486448003421655694040270262451161494491396310590383427143658212502521259498970700471844343307250082085334546563095819459529482073834059352518568793151967003780306330800671750261978603249541543996687967693336037912269495440786877136741580102487580325528599508249710569240478932260529535375096538183627743592489986696459906764744975514893215664535356311686313761720571562983733950672432814557820327896289371437054758598393352598882860254443396523403571322685648617297072052145810252800102400077771748575566217442442317365632585033349052793042988685303292063071710013271434331721293949838971694159656423149621589688002313953661286882305612948411300223840129050291923362057038633886402643104993756243539263092518827442688028458857777910006460725722134575030896721811844272908936808519024000755997915841600507636409684698137354455082625726488075831164363509228093769774383843238359692245232438326179733107479788002487310187580086216553184538971267982830998623735706173102543271742845610617711482704214617179375732855964970978072437041828741040289495830776701727564315573074163244823515545035626025079223030065633444310216271612811883645167197673193040816939506684725249833416416579790694921970119587046669505176751105164207464523100706197171350313560962098581780638760090555797559827069428468597081107240064890875193952993521539680357775404801060087876675841065849127866583967217200616663941121624884379206393643834321950877014022348235178200288665307569784725581360254683568130047849669841127309910581368829301845550386184538711511492646651591064370988795814947949062181549666793290892098064299141383209231261416809022497631641696857288635398911425897436359723557980097128198258678772715453798526004110136653451133202852012246044805467324383367410925356814498732679471194697432733538201800184337835412000880998416860065969444532889100812372972404191197610772963398781450116615312614210745159356796147843494598890959623495373063753984077909488088864141026515925396117094865304957888879190835039759991969580150415885019442167891095615608159217553924049833075512942645217982215227244064439556520830130922682126876529035894997251448277227613127132347826249578063557495934576229903065681589695825081963062323860606561519154609358964028334511536975983832016437362933821316150279241252637124166818962320279179990989317822493999275080429623744093019559684176126467460380328941855545667095372987509125385559625184843255773089286549902701903663004982521767795279658037293341527541961134757345219902317057381919138727462480371615312726521275815560072165427064122885232130418355075972223975122301146599185757932059325866491446610857805585691457263528958447310616332228315054571933827732233610730779374685031584572812586669110846062289000270446023478797394653342402140288381790462034376792437958462387430193748027491509873916386213137617109630124440520063249245777509326630726189236936106573859074083486962972662161616514045077815920256331829529328869851005152442742167412225563312438225445173614323012013497281213335812725663256042994623572143253611033733627684813638144000929163606392464808062989498611064459438882028474695558213603053600106653490257810026769479441862301686523472586027105628558040774002929579405998315198930769361152964950058593440252359566563742752930343207634458376556015432071236379327830400901289715918032356061634143430277924166983544534326320020636321075139428882887666316018782130898699150334240072114229488236203158888064657027430326810331379383839552186888573288103089858462238631930479446262091765751531853175498828622219724037106472856977061726594931741530944519345558925125936933037537762767818363524935618026379014741630066353156370849340841277353079967976837414740081411742025878927350025631528070665577118951221700818426016931548973495305062287559111880566320704780708027040399651528936671751675783132785659451243301130779534310147339963003091193461018400735060340966217847453575389183555501596134820290746297520554410935829919542980333947271294677861821222126468771030369786680123205689370926638780070550192607811760251318765651371336641470256834246228668599376996304303703912490009269561316956741465625441195641594446768682952231687113833287135674365326622643367017711962942934338299853466280600312775226644458043999813176781351924141495800446037015323614739944135075628958817052957972526489140368282820578806926629902306164618625829693077457156690631808969273222534748932599277896706787430545025910401410996856462098624270823458842408401717186150550217014150658546616033179015790727978372702052521732161157907238826481071641788634115991418209800108204158795799297287553401377970300224648380388533656558068216232886192105865209912145499497065837721755954917587832088813401723277656952797466994165578959539950803994979772245648057502231318024888925235590751038061128851478286338459212831423506837803832939776502028799794643988934882404495067907264081443337493382217450308037439554632099108712255273602868208130436740289575274279515803931959447818607116274836813470006170939920320421702445165019455563843306328324284941412948588456171336709731495058676548932170064492911307092824295510028582865072058639086235397743108499160478210181133002906123229463273839878333409579411294256850734165289722465593219716914690827664177872298420469301116203216198058658747834795350828308058390269679694147969034272801358997909442064634765107461310915439058818086623214438974744600787416044960032808213885794524475820605549051144522561265208432580269868311054898873545340868960827989299658597534759674592260270810207145279999310973777845783005084500097004677253302898971058657256928338967550365006084388778914259845367268301880253370152694744788654455517203078065206245622277968200528924030673805568229505397926041060501453387894817318793756297278693813759664757982616576359376296687096271452747395301106763091518238653694973031750723874132510562531412093891799746256002942822180393862451931292916540462702424886906525282800844446975462581393030688792633832009740964832754045390788182613456989851316933005396388824813651172984376342094117841971893494331635806031052616999369760178734041595999656235838658900895416703052260801295052463800795741933518891122365012425514638273424867364365817730198200140667670792397832668964976536083675568070164710247083446410520224713500410000488864536219664657379620422148507202481557528590473329849864997053335493063606510337516512537670895345045544304918167008261059637278860616521938675754010943169756096018262923515222276667295905113211626494155288331201516330857125995278035860628015234672011720188010180348819087929320282428219193208229221951279544744716631610547996913596116819004799884772616536320959082804612141777752489174438818073167964400992770913729886284814919242134273919533167585000909806260243507343583311934506458441934852002150869573715145343305494317753224195425288447552698981758130001004429803795369245774378276346428907523767100549537094179766166572770171169434370459469594633278774324978075956197455832670365485577833551662707656760920455129624548562483914216634133081698764488963795521737232169877736813293470242157437635897344261456780648273720779792772886467907986048964218648733821543695141884471895821859505539311556098443959272633488386330395581489986434198865128119031612179502064862199879492591354132635402776950572321972049243144740659781412851224738659976354584531245574397311000996824763392709115451105179476991100155500747657852336992875054797827390921186499024217887106250364097598633345404149324567836903449260305282013868991051487021532261833795260989522615098380802207672067301198531591784273296833384888380196073994181999792753720538651623533085362679980857316124141096690188854750737157817988087963569007143112640285937928935046400355067342465679111301550171797389744885826392228141439150970032472431082718324924374021766040177197667089985942987965163826749763007924085147506826780468850104234543162436496274832446543206150587330651596882395451761659721273297544486613007786938871532943848470110956385083831496065947172761371521219600932198819373483643528616019322567623748322325293157262301605082669806032278838722539810457924189061633471355027664867226907361738152800071171280464513510822923196829783351660784512533183550570189874837508548653175678871060759846044236646401965213643481305997175497754530942746320679560215082370902462132372895346247287003381652639242228760992472486889741986706348471527745325521199747403755811027588624867352088080513604715568499073841303431364611477894615787586957168741673471373433590756565244463907729730501710892594477390334942451526631645210101246315600503324551747647919387817465152352235913365357508195053925746767368744370995467412073774189176950422317067624927073277351013483773536190043554651903316525035926978381510086990371070275062802301277194384493865953171398405114763547343661857582762410144226559164904253692641922800381038927614229063953432285198178954069124912428824324874321636573177824411570961237079997833040610866362421347619892877613030109024943867376047871137188686206773482501657401977827597399267465622633032326365774868528176278885894706084652727065171922458371352313608079949341579607793337098620066003352533332065104742855222265309183653391638849655882686500327986357627499889291429893097773425013014759712070809908213036255237239179818523770700628733984278042738055582907207438098806819573737277359633364090518398967750450148871581670905824472984267892302056067940910605482540086510828818396964644038200656559087622012999780326176875113438793671582970730176032267787920491765943227217610094730329845714249017327479302083309124025262145088254780485368654871381518118755812283446300426109334008634483709193798759683175748881988383257533802076422189385975396164603082834149971397421597112160236993701096262503278539526697710993001918157937117928281670948812687852210096996098514296683535585972073503627832438707114858973896318845563342574777934425052780060464512833928291658072897594251002724212935850572062675467865674239997898838205645894258419133239165976417741658297109996941111090565714437922523277522874831719706147537068638020484333951956619248316717814391054407770001904766183674587107061458836037471625661905537668639670974316245249441911800956842092956904729853955271347039834536867280037992459803570021249428515629825659744897672030228419836814007241359762136759813457721620191883035440393304405508477887167202236617359696230294184326435415084221253434858079868234951278275120488063192377937149033244806246839334321606448253792610410086421739862121762739601556470013297896409380636217457599482012156181248184129496698851939991818032377880817087402468276300982602440611744224476813036973637497613315977175749541975796212332906653404996752509404936413774753447852043450470307649793747313331626786530650363436228007001628736404712173504601554162993021458280631934656304983430925825697435999752134612401681263988689265999353618456396237736585065629023044300293868704058398253663870625290433664610438731912167673208505752100238109078941141287691542251519625955021611928214947830519287811249935015772364822326407515244085935912069729716161587207038889567672392905370977699536129927045908705123919402899915300855865676000492727104699992562879864409924561086705893753245751647342501756865541235711405692977989097784533660017645430297675391711560468112869239869778211609845282810976044495702849141849346965739834262562086652169253824879003407876752254026129176998801140579505467968667346498497589772906137401679929161554012300976790362162637111864001970956524409015456048721131837504026630885032152816766459187695638188727756167534724959480777690237728117233474574543354159765038464738448586993404309959645741879126627257167848757172321327907248643213492297924244682983835660849931927731113909529735115700639789712810821917539058967919693858251231672254861955149258456538209189332260706311125543094086952626450913374855456394166409601596861476426942271902897483867043865138222349578127403164870898184328122898886545508877276552077520460542456514631488373296992964554027137413764043469033312081318897786044165753173050563027569622786009531434626286113672370495377317192505458336703294373510318464018248612424428548472673784766225196246958816360501362427230904925725753388739529803577819368012910805368284854972752850375284500952389218264525759873670549699032209127887727907050991204425399585074094759154826960974061014619588909134230186368805701903836367692333815498008292869002758154724720388242395776081135937029626462870777642973269982318214660932020145624137107740167496856345643628679786079006490441603149661299451916282132394114677629871071743191111943226380304283563225663645585380196462311110572873510163744941438837713030843203850600734132593265035342097325995557651441441639355625774491743103955521987125390964655493488631928305534896080970575624842330089905313181647251878663567968495368514513390893853525563434671016972891816936118183733754647556540914360236603565334777116410539098199960392366459479126103388918766534901522139576998684637605677096684538686799023926698102577865320940788694528874909698956122056465741708447894849435659375701236485009694696539899726446997541374844072044485818173403368743355275890777475437701498330559303422405984054780166608314036205178030002328387388489217112880281487862058090770807979279918603405520510575492728622366160593565832997336566198569281848167964370539939641463826382311715895980481463075970494841962637169035858974777170566833463896106449052629260875753341072425221585345962346005845115398081531462168390137287320070175351947531267941362351301924344449520349486144559621586048588536634673978634973514312411185666903989708091926977304214879081063521478098358506728133135964619821432516538022881626537399370372744394102964057124784795580542505656004093872132240969645171267810924254756549976746457941998857035520508760767229753676057753768607199614931755200041085058098375571979938985330062001888585936477239053401631805798813095672777531798839278975221109829115035814880461877249419253416282224765364756813404843936933121922212584408937372196370090280071697355661698013269206587236808218869319137985409095379852028344695674224665771591021513862491701276866124367396093336222867047195782495450679278929179606952874668411417776519032822737632678518083905301287822391938163324334648553594648210978237197736330649992203824261051180994200570611360726739538164260921691729446036537384221798161553547536897210715128466084836036871057275734655449517265566022827812881400841226420441774478909737016532784765953973275219931130801219878028877075700241340080942726085214671429297848597335799643067026671883932289096559227415702426131136786473928170034418416653374157502614003866880689753307619401159182472474093229773632195154939534702656816096469386532600184865088341080322521308264246201725847709806263774570444541586558662212210202378756318376758039569617422289649429622325947018557157706675326110074763118855906929864299382588729000343140801645298605628776318202098429252678760423134302272639992572235341452376100325360871145439386446761751758903877381154098603980241188361504545869806136085368320954338855946962400127108612577508672143224178691424972408314702218795290554696594232869772229046394337949226003942469617981726195089102135556185392243172296472883786887322526837906258926149055719279773764871616582629487012236847333209666678121869994195636496180424277566250428434065199448974266535284589546097504721047364998485468799092044235065862357215271322013031412282731648787988128154475698111748406518371335890816436513820276558636083842326078623966620262210867976395646444027013352129447049757152352107196734466755277259297252231605925397335653380691244791789152323382942149397722799897658921492888539738990506219068148348644805037597292003330838467464551741566418585431402429982158685231352701909959940735930778922043098572065449102659696008053546089619473601481315940420173801182691851982055958931411485849225425291444010142839500653425268264490147472731494214100299874056722629139142296025748080396046934930554905935245002506956748682201135176283000685717690734156506464949768628897572040876347930726855895508173260394030246203078797538072289658815136980795861172627864269545133070075559860359010675985488178441145030328174556133017878464898348572207235157723423052363388342000554797207411515651993085809549412723114225270369804823584340079852349111143561217842166549716480988262477415590030967772684470554314357593762113245587058934151289230313347859813185090912286499041973516668107273341807053753712913231915125332939747626430318220578814864900764071732410419177307007844293945984977419515836774745402454788268282815419802074038224718306552645707156499366053043338500876002371349695646051440752981278836248814019629511188447376955262818194780719579161872305535387972500046302627408100140991300353900242399162029867550604432973193603054387379869703312245254561188567473795195104925772759873800754525884286455391023173607367851757138698081514565017216912019011556370819118889125916487002261598325568475720137699753569720479761560536167156210770523254033195386719234533576425818412404568002538064846542990993742824568754123131945287986017797050278976385662555865035418817525502587819803960023765526692218441646088918646631118000513998352463783507186900620689895113316344514719510029466954100570444343764862776840293438793720665905932696871984460247005251213472532129335490177205113595039690692088916617356309683377426062226859539790592898225421817013082167518401250641840260378033992130876254157578078771600159284983744228237383758583384420778989582283789370711841524726955284430889483788037573676560671319587586402677905647991633626533457348756206569131206029014550060591572329269689918963653829755516796214004237328721611602172223806163242491995645191678103263324297332957765998873770208093177596467720656269062435043088906647102257333340691995914112414648823841309457590145173555633997203688259510355268138805663657887839077353346304090732601783250130712058829133249208868326704855694212921906379322733936349643709227294441498088265819416867466383772689533459965895742573075378956269891440347826504635020981343388539736981221173937062203480671019326362186558721313383866025279871720375191603524306452984432466682681579526672345648882133037748322592894678988583930736178999446245237774913461867679162053276063694276727616055302369669713764336139462053917136987445433929754814144426200664773415040198593390150319193781277409315306956979664037643146077201455994877032697112773806137382407087294166655030913155294091098008211036469365553771634998901523783710832042684522988695709277642150679690116209420886387958118534270164534990681303808835968529143306970469360673152486853267122830384871936520895576505506405791155360139832156209100890401728006513422633962999559429721892209493064500176702176200708068459432113201005506692008529306175285147776391271841627936456400300285376372729925893120011811315286481993504361321869173052662716626591314307848054301959962638921641680805370133149836089341199244958486096316996988339135252197923035313060222723043372301976967698464151194472739344951177575457891403881046154894174643183444667492408592960025412582917567985778975927083157689050273642442038175193298630280437699179809056766406868173326845217408588700448684497905212979189474167095574768972138575857241087206597075281557150274019466382232142906120579091707909273349046050062645700360272696989413689482744482044030298075250261413074635450229398402969084795456693270404849893576556729118728738460324981375915974567106560604803757977169238028266184623057119118153765153957701809660516586020457330196239368092084323918173754605565571766415519502443852996069542501330418078802646044245119304449054352909443819845645549660884949849583208207326425020170310819900160150326044273457626695891188162830494926838377218955025246607537402683839394282170996534627276685807938152139606271389634106150712405316281564124426026039187585807927616914569854893011079122979592886525102886879293489366443538714119641955869492747523955107970782957557938516793464679778612073684849449656116244348034727580494776748617353997360096101541075687193097043274562774297018142427396919395556272115610227785152149824210498906493227844169771278940391470120883863845108001332092394486164319734280572878278285212373252755052873385135310387951528000069982893602377766225410513185407271714816464606166372392931128250291237133135875987361148568486247656906389890546555295019959245929623369974120195664226994917785875253244408042610783235851158069535282338131112145195296086571759668000897328605858600182586095300802400236631910935427431896283089741857446243199429096181991655461607867641435358686578294763095351700537860967064359583649274279321429117612905149046738240465738642235474813741647826891785972031567440676446731590463574284103582498506792558497275339803775376298855643661207865313617005313516198582178126870425842227798285431900956890678144278267280261300961034775813339492723627114937403385070453625648657594083738078509160270305615982373019237720509123346652156462256407907409926951669383778477543719911633581194861566270013125603629666953174210385349249599745260498440211658394613594461104445890054034414974420075116852316631969821732025439827731768272726454984455740727864731581084210401136610424505223024120870288637578727751339235739974425973887426597079178306977594895470156204303638990103861725636149607503309060924521732684771306804515827841000640009899350146326037751129759477710670000385071460395927520626553695777054590094491850980531868187442138983898757846692480568446000364516253628929998924446656475575243273442160570161929617896784469092616504101730987972567735016411310376295654165318659821730666504061322058795305580254384994351335085389780445751055113367017181210577913434181302933642569024819069147598762710804700756310524586245946669722606627339701360541977837749901876680872492701152363773400635974050487191688413906446660336476252231626657065198969558080074756236059140056265102434913926709121894452454658975878555147749925943234787767070766194063016465049744978338158666177050359847707512416133007989487253109306684677853964264141901052490021906745124169100327742606310238373138036862658418827822468102548233078824063845759926216526954157259564938397845258325633562140108902139053951222824688469938615920650269386474841138258176273360700537235523391970864297834079212897458319289004325440073758715252554915949700487247803402648987175984986019331459454219409225490428882235826962645022042591192663325480661823336008728096522369245765087620052017421674564942739582117737581419747446617582406942800241117458948636584542829967862038814709800251968721204369888584262990722552534177778051879317725460618908006696389566441068047745250807223485278417305490468379282425357812677956132576315295618589163037986039075998478264534671155980800674558405034459667394034766433208575313217562026301377873176895739925528701460937223263345159056928572666369494988361173755943762866703852025290550654452769774347525697056407545896912658634982909874259905280782907155464656546916736257992967215850906092902576851220652383135296404883741208314140067478806633247985916865913482186440554718697907790021009479677238303917488817691779604826632102315763200485408711727721540714224345745855293033320571041121318328934408497739502933539392716509637055490312747951270836406909031408880927890731220805840495153716722111220501881585041395233060778733307939238507047180929198407240613375851834511807123868835382906325840373315946189497849805959783283083673258148020093023962424410958471354103975890368059283667884987283991420430594158857228075512672000883639347428924596311070689721312103538569292681385407850743522016995993250138380780265645700658681160915167628496108843599596791069993034908411014870235889258387849306310310313063536280240382007922597622111509747763982700835880808412968306390650183793365456086757430967985773685383605160670051115926682288012182029510580297096196907323549379550262214473185384953157644290043513668326833634197064351702364307327254562935675172825746438075882745989789790754311783255849714972527034485819550332033216911894085202005294412474125673266384944600762533113899356109546660515212444599779292199325639675787934991845109507171130305228830086810331522943527752256661583955964830621225650607164990005366087153019741747260250553063242084448126119303750311205479292953322608698633870624956801747393622953735232529656182863210919624606334549738397184983284901016155818050902630576186885831348845049368773499390775736294796738886507640220478573976739121523899436910850418329453905539448241551092308972411944107428677516329681398294802552789260951984629746157978246482772815408033537344742923917889493114363309740896928584237432636309917281022236707309970928121161293831638337162554351960486801295102535176422177376184443239141490296339975069525446617428999129087490528929710468423737885383825773622925130257713998728457615513083768837161614973864745672974643900070880584496409480486069587616495196467398923355426260670971661990464543121060463946860797900535420190311224196342743030571348264435149153545443563860933013497920991364993465051184305557817771366199255638563210835842045653234511332144861465228275498329631500075956186187182654357201850159868604737726802364668945697092691056205090630853837888587153009988030756349532388939195311959828638898019604935964794942940946663480562665391428909856626467435169367206933775896109940223744578248739696509329082105674756474284717162825212597763360524986004318985455212847268912734134886008404152029281358945560591528974916829318318568152920379484694110471983217180388945225791769793844007503740499752561864362995119220889723683077337244618043268980076790754695744744859592246638240723124685578298009915345544111653643954122304305827186253762784958133642510949325442879064494088519484945007762514155354640861895320397234946841859958392095996994700806263435135842570970370236140136379212116350565644323356241705782990457761227031358370189696407364799979483870274482629650193485708538943976571943458401590080179721133711464488628732012864202741115720658016314791705599749158585549904947227216022123185436844332647695891845091218084105768421954906321312635900197177354317265841013072054168080196937808729781317630146352109108323201230179523840464026691244595086522051940226201337797899138627237929693642584447202479344103192484672868033732797775951630229102336430772854179410271733933315635529023297265659351751004508046807476184724146968730751477280903981079922927733578495153993923580664773068012127219536649368591481613252244763277927168462111357302854163086910684501927501506857952452506915336989871756420864070326001599427685389160221362797811911101988308099510457003412395831970461225140973040144659082822943368122874596160380584145728182902113454225837852783902169716769355902692583451085049059134281787294541394018751146365981249403592748150147517167196991699744817736586311775143719189613736958570261161057917586977161525286134633938272740022957721584844455008668724965621834554126869557676692056316923912343051389916510279450484193009501999637819442445348802410983348055450438898669875457700052537045728234612329293210669698452433732581725394774839469844646499428304065897895385402584499501041056224443442099799395670359724503820550168366354595794883980197575764101243490032587665528180486151720400961463776581137729408653003146442401558758805597638164635441909800516552280465260093915211208830051267839252384755002831923256002212697036806387577420495396410401516506851283207475727999947075701936912084284044813470623338533243663924745564040228702282609601342675174826367952798604768650163611147730492169910813033592132061995945492300207896348761831201865441012509306032742634336296845133447365295565252922489122837601836188668915812972520601981380368742765101731409585418158470292280727916516105531311951742117447950881082800072360471973944321268052975219302457469343645544848405382551339902458836623794222475156055079087793347880018692477946318377933303420109946320709111293588348741914076663561974437873433802146225539809664335826030440061902601802808792247694040154203543226283865772747652865621932142739645350487354984385388800464309774533764884132143149838333448952405799474517925713759496581544426309935400978886740296356846149305573062881182042314156184523658142534017145133742171707556612433190038695206427232710968121706142897380699250251865884508553986919028585029478876878611015019582939727410972138493790037133724750161185132746596993240169294971059088909366864182755003159862277442426466636045213717031087918717667332763208364887610223954304462804876991157648030778023832775543211753983922140835577366698748900806374008642033791358383636987807127396471092457320283130867292845592577115572368017691654426802006720298429384986195904795052145436557307392339367851013358996196764320780282633174293291439830988541345584109356419589065981026701378814277631762678903444980518304498729123357944699915196389270725102761727372803927113591882575890842141289143750524338106233845818174613189166522857444467430250045001928664888167979582057562724634267714416709024669125011127342971707232403157699650090603982292939224985643392323991191384282828183084738707498458861800413694028467733187079716473891593944806833184333169970648697928792083200331639435276287639211808906374760220303858100202139090883443281015831814990484814890309747750361802397112183881231437472982015637086512184737852866982699065739946938949669947566530155049412843457407955390067410997753781213506702864337611144888395317891300766469869945894132283503921041477570980989239902231329211951775923048547991780756935594217733539409427829440411418158839441276122181211801731274935311366693825591343172189052005476714309663626651297678781685965096146656067580533793268977393341828091682577520624065734110682341874110873751031002207538021635103287841587272537685855474409934624707498289052703008628954263553433631423322451010440581367115913906854569202246602778794267438796632726195082770993086992356799386123977216400174262043685263730440667633875797493804128563303912322701421944325838925522571153635484851805589729263834625408017628561864758891779823457391920371644759878923124153692768993024680319403428026980731664404591937776952739645603267156341867133821975611589405644686793550308694278200731981083354689873038980787193782585604010048841911446622732947250799374242460981186697353488825334502895581449583308357883682560221923524759230759760246712481664237050563625730349984524570849434536125306539639042345688214152308917146108052949520174150104735255489392243156353975704198054130298887225659297795922966445727877483546150934365675852811147883542937196385457958036480733733553594950715600581000000009014071404539848470410752361793522371240881363895699737484667014602264991610514294474233159686225789459130130146508091266515565656607931416464329828089518312738891300561964541063941560470012085284114938764442990245628165429135088391692556454455680177661883968681356284427925042676380887167708318062401123051564570394831374310556326187629405045840863698076914670510616674408321954336649000021659835731923209095304319127457891927203959118152807715297514812072512109927312381120424172173358101799262011119621063013900566694983700791930727495315536719978392375854840789584810515178993687568268823937162335638009605852091322537246311272702179288162008157308578996394585962354037201394581375033796782927732665670151387515843827166576111097230172381589350189147044545002041159447655610496763245874302278538564266518398701564323705543541303891051990840860508873515773705048367854149121047924838636491848487377745168727138978333105770088478898759976536340163458140739901352017779793648794063953189334493481301416276948775729229501038512834905709705421963139786214998968033023658392150822478415941209492858780452787052704463380794032039370797484368808612830461671162846330085958304787265832720491935212091291015070514597496886157092502649072337147360012386142570455668318728356926633666893240941475626625791381036976225715390704422404159514063187351844385943449188197578929519180332599224366240508749222904160281631622429692451903547958187206054309098704059690745269051640216679435666636904696214842134614469460657387983782375874504846226873641518504961866398541578929700737150832764369538690822361339589347123589349647402355545689855146763885915964697241850298235601071457292560760238977477308704139668200017595179164088928408876974102366928214933982768078895935672136105621429490482188042139374921085533317588339584893909322064313617515644229304506400689709440622791591531163375618950698456875913606609453213701898281142119445569909972878117753868659596380850696530920703485101429564373825103106693207152857646542336004315887445261267362879555791834363904524577419473932172095567625597891633378283563846047518340300191340669085229295744125567044090059106776880817088540576647154377980502941092085938712672994221013212745493185218594902822747667023933212253575272703063446447342758936136318647876288320112408808401209225096914265286686058324671936830058801429901798673856354977529904949236542273416800068062891545442688346132255664520988034502322807294120963719887794992459812110969015326990967024477568969515527232754985685253987524344642260731394294065353885733875862044433092681060357266056703064494573004033563465152983514057819430989954515349330290916232267381378733291363236228380725083224273858135862433870648138353058601343449076610002079280432692082262514252172569554299960702632832455227477172388207297359787698212846815968556219273317198152564136460918277001902874955655669912677992106211913576617491153729079050164590348368709445886173071045747164110045800815175614809523296885911877393485991821721393004896794553130830252515191334352149071583763522852076139979361092482608626720746383939030909585665506613211363675848180743654665568717532509955220847409159693720027042334921612973291367517708108772732207596578433633820539995398201058331221246391994704041874088717537516330439604160818709461229251733293580945242002673379342526526821303809532234500050471213075684561823469762475717218676383839117140102889533937561752326680914606772964442617522808063386056418551229062563451534922506594678278062901559148176339978744336658600885743294513511551257117308841358598123548463319726997460434091802391200845112723751680662342248255599165335303156500785868390369261048203280052745151221236322405913225291494755468969204806425280088514201155061877134294585844532082292225581024248713494404070826604296267962266473332137441828839670275677792239719352461270337480071459513453354703776240305820691597097475698307226295331708778866574928126012460347183153512943753693674422618232921800117358569469431718853271602770066014486706201487519077514474086469423936560137794368746813639750548453045153966872392076063871972912874625735091673012136959862246578989361175772386953291266898590089328462231120097902215262063866485632370137891338376454932358892646283143257129613907544005967702687773351429219561941217661760988014005349626663523952656899237070490558649806329453564984182849151984463808540975652445190752586685699306387934062156029604907220625120603632920676814678313291433576299586179451223952219502245877227070934825588342731195503547900971955289764124043813751097570999406102604483152753721499415916402159216294368310931606578384127136790286252554298664644722461321093465297170503373813999917565279244312466689186542530687961488783196933181713246679095586474997859391530553855444191470177348108997923662806159752691051992246405528433560579854239788767616247562789775285969829873766709893773924954343477468799569673185375729116273203989596222883402658714221789772689907562690049011254390190960795274637312973857660714444414610611547939897330366364135941804768271194436584027787640366337915019531007168097543136250745029172832531633956417806815947616823800657678712144433109547418061235429084260706091284182008730132976317277651331492136967142195565119862086485764296408414759078005777205366584897275559240300398427250892085447291399315589202320577512342801563971184315229479131497728056127827859624586786053622913848479594542463954697468119184001693760753892401185003015624421365654899929950512732075555390629374369862143698106086354736426394777093611871436089303055361470574249628876638194539898558356583908585594850950269521515447331960017804969582871618863909306895942829804977223076310464554487505377661835247900813914035322559282952022418666226877156708861926146221625743901817314505171151157568206305096304656270107023993268271447531901792724194352328208263735867051956483301886088269878473583603703877876519014807232535212708177391998802987850602286025649501224538384359729216451232622850290476478384296642814949254128135112422456060187787248245164395261847422345779569961199340476562705769854015062065188995441036080204189328503266427800022537218493430595257430071053536589116626393982708044943578548818400919896726747055047052514092402259244815328620827205640394274898734822172766446086102905565586327669545371407619629939687570812900965403279620106659938478262098143750053392467747543246706525367696082908481020995036409534775138216624541875298363795905538822214460013528684050827760072135504916580702201215981984688822343004527874044305993290695613168432814689754053348997237066837295818652038069293406461777514620109970241890185866054314377483143266240512266717349548238336001019329678919306250146112158822486597897369875443237934718623508099863953457921523793210196164066307661612911873710016815491970434584889531625633442517799381631856533529611613533668089150933743441793455578666437222581707731059053073708781511578315307071838827659365112551809955648511009149066578222965784862644383375606200918847245556077972048247335660826770575682084728770113948267859645172962602594641667058930454366309436512195765767631935953068062008041062674591168470557205656435349260468088556812693630659880861516032274008576453849568662397538445982396905477684623321014601290005778364363682538027421272008844958252984503613121244174367021243576886132076425237688082225988436101457599741855734858617042262215306004665524814437586461806245498030785640638955370467805389363809899818944257725799390400283807566553980776305110734761647245932939336638131459155101477335147086166689410403001244862983702601961357247833531814362579233388295846184857239302892641004404056230708058534911411201086604716306754762808517735867649200750327595560904189739970123699831989316290165342154084969950593999686529669781491674755644168196692967928909531798266911735638425857791511447428913112219255288376825494752459023584612601106617940476661156446874005864358007412300496320415810678025092066483378032966960772681050987738828857959625982333074957834502175468742128879269738113557432788157162751560323161025284009631075331701365962425077083378461935202301395669246016190021358628584005659037358235841385030531681497375932432421756025818414013963171817447920240884404227482222654147802880010649569006986483190694683940970811489797943434173691660299468034802188965319719576837457884282034015884576321531401252034162813536265163886591191260247478276453407075262583340578474886589788838575280178388662803295281179658392149839203176439336080784267183808722937331725491398517376654165004119153936703127438196912553377802770911248481694064791967979420285079091589863923451598000857701597251256341330363965335672863143269348486449773815921004784962576137011416398720877969333359096051297240349672559574051192104756128717134954271983923302545038577164682802116293272491471359962776602424554008869774625220444747203437342246268528139109520072621886663498361049674598827293956559273698391293767394633577995627772667309539562866990052959883445170854840796084589792856236708676433414831816813739014259706323357358376899974871089854385437310324074558617778730578844021991125842079070312451811338434873981743401863017178750496115444340432134946214885599790634392571335070468130022657459127733125978747807182171632622199336300638520000451463494519182592057006189958385682655419120038431966830058558515222919021448206829179947590500702045481291135058974852782503026483203527157799814183510697238084532366712406404201571876105772224514070561652593340718900598951766240544219904720990437065142141793032604226338105289301148031202766008443017033717416024144742066408857666482640806767601883528201499764795759539074807635631352201540347412464250285593439531661596301994500091191209857015104892542932176962849999247430489568006141997429821151375053235972025745849216495953670104031770644450996431965484668859516029603754503082965903550708718824253756405177523904787142915047722824479132348137193875945011886797701571351385655923946111089441011869013254549057154001747034259831794433618280798113215985501255502297941497758876784735108502622220161748071386382557986745598188152718919155445528809171020023594073941002718990463027074655702507543433892132420524553034480033641524929129130200887723001987375133454059088300330869134492608484143960686072648769589213141943971607952696310635029881929920391628948507524375806986954127643422590600280101913206958948946380986402329211652123430105611600946860170346588204260875202772896282926097640300427787173821063944325749665699383842423277955461640281379348464108109483290751866146598751693674654858294385747559789045483787951733605061444503306569408213655592475417819478740205986271214560500760075846342165767250660440978821801052856459661200764893048696379869894335598214526575169138491285647632525058537708637322281982235686163546966476480458098029455170817196905118236271227100349909275979319539028292354181430980316739439981181257511765259454707127546606632305349115057039066766776060858150930728797428919277198078605524502791085720811866265312010633111415126361629600304393401291135867450032255097657931362025824424892905979310948605015589063496728384303004540644369242260282402661183612286872018685932357001210264746731914756264626236450453336717387281245210830227739246198260634858933408423505147476325596442715985504784805725519011816273569946205523629257399471744281404685826913423115631230005624980233748164287368539024587484080784946822396224354982918295213459357334850243585446701793526804726963245708577028943253800333805804799210579323524855613990055623821131132740747918208136701242336822794038007342279574220011137264078628835753244436132473654703432414768618228995600008073986711705195400465456567038529964946697180553850753417499365196784797830809358821146621913849541351368994957548450928408010333978812063312336753833647775143814684981209752493853769991162827687295891247484327764911197562013239697223732573251122946932986481053393260261847591775667324268030850705049234952398010886012187462621152251456615849959895565578261812911632986940856152014542443774716857313538703380083030638115059814412010424243968340317489854831066323390664205739669727546908968202355634969867562596886096701686782620572430446470413823054888197028588854013423095960097001668679187619331084147099200956018957597653548657355673807317017539209770131115874683967543661160355606816274716016542291334864217529581834334918164227709824316679067076899429129783065431653567317399118170547746010253797670223825592091457020708336999793635136635226683780504838294700545931031852004183039140010722114710455260472889764727048944996574082516802152849241615054820342200360956951277201894181285550746661238072513713280122831414020512858308261063917691290939297324107212872847217886429761694573323763475507770175075798320635974275471786768424217636909603115371763239105322319667941811264326979854375931552471169817876738533221389969578499036894142255149684406252181654603571538548647101393652124835933110419074176165382302793212969119428012133565560770582449345651993126020644835149364381586165780669652803181846285277847073941404358090031940741034898576304433265414007259502477528268521112601757874507863538748891716295810919666031581204854865282564402254139810779214837334874568260337369616116023769345926972999134245260832017094562998828559560171539393909861787610505913783889479091074567284508696069388613091633136519695430436961154875123434799038961907136369603916787566928207067491618573047907446316871512315086343532341623871375165246090368306572265117119376077297298872829310383363330609125390696900623354753591045464459938339218107263651489703752762892996717868817034018228164348744140219681072560099361590406235138081611040414231750788146365151041714240361569173316451892175767935257166058560388933495021767375217907958649254603758862104989535610612335673551351888771467287788941148089877519361423672345251034733736803183448489800378591044791704804797132251362306901537289804734487180637790658739201182431877814374914628565211211271423646102294359272389839352255710125439170449479832669298733585581340840587217012017186810217148962667321998790292355802809833065836188197460153692055610645450594960299984628878733745462541455891294594925273040348806358196468013347006984478501895741306630439956968071946481174631235782947662614563710637408444003972487422471323138053610332876542123272923841120984847410657894681240285103594861416581090013157301779887212188958862488697421917369961401384471300571188591882450230150753919561969000014581048292943965013881482066130123194762794826491874768286223248835138475600719463536660064833404731234530606152603344637811754012690039833305615516222634641505873358336037196764846125420240641011034144724391976108993625729504024666779442348679638661759597465908607788618835904034519862746321495248158826543777205775041637180889077470136242182686314817870726505885830231979138813790401735372445778520329026919954319816778277153277048559776294339981101800067385233979713172158242744817885439587029155140455392958980327205324916493449043694350329369048885842064367399029564041563523592452908797341077584475195098669512068909488054847917934188116801792177978240235155112870764766110998724893071788594217454187585872483326046819862461227920140560118947550483537489144728060048892682685427411104336520448720924789628002592437484334137004666775675924352812889993859593983760275478375597479903251264307158121797083895391789386766582633556293862515337363713410676124536436107244068323942446620562960804149047609972969619839657352063828530825377168662396821976837173326365020107023519321816039043943089998798114741824832821887859304034457291700141253153118606618826100808228468134917396019300283944792748762146503200943176334704873081177402387639860800520399020906289910052178414612467009383359105794558667141583535050616142653168553856980268565355988980600176564635948660269709178115453630657413724578902366318409526542664756497651158322369001842430901769729310149259853534074586445768103279053543536802932189768808735023990053884071804554239121701678069631566085596452522633543718917674021287371361802795534708475864953819939669716768104381053242775109172523435018451993686060224167686001131909904337381184016419294346901851503925838340281150542635504180105968533163253697123428594216473686902310857854856455193287659224583129029587690766740923228637975220791017731587414974405934608079971347320724776929152200460773392557775283377035898346905223953586308879808080731176622447587792239652446311761195175081099047293682548184660894094702486099382471210522738542835795006303822738679592874393727905871343771110751356627136240052457039465379897435426573210037092036622179534092920222273302247768458394934001906541378924622139473512257031517849342248899378178954376447781613537924862549899634283145686577727871466029992417629115691520419737211372448028170716671424078184783068105174637853945430117491737389234604532125665280514926052605920803109999515154904420848537284472303216239793684180561096411164137501658841899065155911908694064810199730392049521972869826180283919770963296921965393130938144274832896481958522425579761148139169223970928596137963342080522898272593383505728905594141925544065744454273957700741984148098909956544143839727640098463099661777211073573441044655339663101056123114852769062065522881026414244959427427570346939084244127814114651389412275531521384419594261955454640266956861164296597108938465345443264834973675424337161066713952573179044877823425467311951229255281379043512815279316231471783083335220810758260295639849464893409830191990486195979152208024560556030150705171365769805608168005051033451134504666831480991005228029136063970645807964391026676880371922698735667913370067222907737105063594395288134457318534345287906440453185275530007035085040216902633226995185824208494174917943800968414354644151492102184753381995412576185370960219900557805902167211020147285705333288786227524495816060522275491742701530328114376621544652581667747454958223546084229063119006618329915281353259745794340555222485648928759375025944816718365452416975379110349054058964827469042766691637790087274425605925460942605340773495131047887647484300103599143726439415229821864125690753241273030730646225577095607939416724723755574199542883164552545638930192092643079075535324266267553791037253939888485524261515941068287262418422206580968532353281123351909191904355353808855968495876701882810438450535596296709116860520202670735575207668388763429235324790279320946090463191858697071379888021184846539350429303004212177319741675614331944684735667053731649835007666170936326454193052524958494946181407535332779188851356843670424042812970474006691007786932710635848950462280497003621376406122874922985533037309204248876541612038279220621200363350138889312094998699832831865033363704610070637992640785298719399556215631858904787011149708555507159442969692214252123850860186734469986876606338277399059911469648666216923919602736941215888374630886115598913704578541053301506094132572425107560131296123638736534322910252493094255916554345355055829338510969680100697207712199235003377254367918183681074119617868385541236253688721653697827501539297379849913219564718588227807512765016811986982568492809707121225217370628907176762192571071900765470274260260659005596606670793245729441074057875374120150192668414264367514050336304635301725660889899059967932386659175121355883725107384203116736330130760912357691758344892354250152995790645418079160772289028475176629397974630376453483798935728312111693585442536404663453303190379280588080546930602723748053894212310509739828245135566615777086549373331178828350116824888791830425951582511151553088868669942116824031390495823785397768755924501470143265683640936170890254609659015096975816610886915263740611967882605005988201466899745816065409223541490452774358021452408548660124564607755302441326207689170317055484816830542347310892977945271510053684291308557289438951075544187690908975856985155361324098417465169751272608582123468069537822586005159164599273510478458814210862039944008914702124763466178315410654815434045622493335312389774874906066140329461768260539237500206887006969840184157031866171338161555204863134960196033150432656900002047192490879321260214233963893257039333427954986314593294248181017745280406778561581353466831420002838787152273875015419421083495521619533065789784752568987134967354961189549014193850583953861353125846041687619625609834810956032499161323049356142329226643039901784929232324852228945215057664755990870295837638180127893826262188793687001742649968265857415388358426425496279902671873183674595166956286091082424633717154983784046037520253348340270961309958989044534878012092449738784338496489233381882733342806151820999014516831046839705336697818715486175842804460153682142918834389355760751362167439111563107911262771014777200710338133588223272921220805652117902114218853319353793425974946045444861827241711046715627326199817938232375738226027459022540825005338553661258123160868171837993742128291076439299707450108814310842565448572681008517380600363675148201952424790002717166593157011743118130657396422201911295350230487256568571531628612632280967411315300345076943188170237758330560819680493915197968284276939980587397999576253872302996638570252085581276227312249375305754836044988714088381165155316529406894901314187820411974510484889980278936953439754396250788148032961317926471675714545150072123119901378559022322171746137080854382886754326007223528258083399858993556987770415383852523540894943776386654006030807198585994834355495557925152987722242246280156395455465582472339546333126511786308529984866958885308598684454967240592118051030361707090215714211493669067282297183858134678523254018491312148125154134998008857713211561306475784442169459298522013603494256380251609210438464195657235001352595929561834215160717722018836683540664879780490833648306411560116372522815551920443987031672723034081038916979644971470602291579916968685470255424834500855234968416613187707447043001753812929989370885713855880321862405000692539953764577558622706732058267115570563482837706985480124823250844840544625755718352821647784949790722180418528811488077570275256850254669669299447794065280089528419355467146539478626437613745693139223963360735603641411852394561574581863777592141179884513198881061598438257914319584709697118126686209291382072516315079607778969800630521484599880083804984125269961092358232438843402743559496673255758075073102921037230659022701385052186496027541237227345835206968495173618885705230054328854568967795271629651830565194812704428712707614750498478073672410082072218452891030326979302832466073595003817132631932882370942497782285889635872884458850978856643492555009776896042947883751663449684641401052187154315220077679563980243234615863017779668613561670066247329377562886471541248884902130385242590351656980907480592493786425050153972328280248401041075314158060183311366306215937570523089103204210485634474925263604997895095950585203853932481269358396525594569208331047009689196647042341848068041591040471631005976882840396929701435309420881333083840851824323655662187676601812952078167850280315951601298613120171249082606066339770653640454240873879547278159426126212684497214169814290625459850128385820501786530310620549104924143755706212133692481537276167276418990554821348527449202641335698407034643585714041490929949123995144278713379737357321954549709807912443415802137212108783223477650581394133536742409315646167431575082987182391607721264601597363292672992644035708724687113940894333709837075534770280095511079803620245653600604260872862549853059973505434849145423963445701359230580832075257254854347478617731560304320245107062419225823653952446017059013469891421124921881130381670141600852058722557991707143262157321033097211085004127959630559298882632601992610720819740769309042288284128914243498673284930033306336493720901572777246885501787825980297084984822380707454092543694204822743066491778010694251324201168264169781051048676715047085971847803868554884025833926792206926733895734853156185396661650072749752802092553079403805706904649975314581383086780475419207634301930503324413547008828970519465136228437553140855447562069756404075346593996164632565838608631682125927553382724304960106067312558946712913678742343604757493207445934429940308195564858694552293271879720904750605308527366985096208676009839082077365129726868602817824123881094532159432621269699325555747433068936184044540399669686291437328249494881563995932140655654847745227137850230902457637632256073427027353550280116560535032008865239814877359865562950239445214587731564950721486622867139097830684071055527157727865479966999161360159834035328906397417531773800249718842539926018534448501684437787247379813713937916971873985055886038734817781765828945408289191790293599805851383646860459471318253280987164958262386756686288921356996640028641118827295284309935643831186719128394509403190019836626584424443133534330398135511029007729012721506230603875813507569484858741622496986907393383939542738312993755382330824135826659617619662672405259403359152850895670545093840709256029034439172052497761138167192769128402891641162447551779967548655364765611164258551068118669000647543192891287954082622607569697494987811140189462406813149049118358099782057655632006602617116425011930998122032143008799598108385985649066371896683313484075250661301723164889437614802306288135001906963375450799339968715465055652434564389023029265713816157054920254322158609711092728375773542509131259136558636152779628986705758754814967973171229632370352822871930932483562627748762250543385479556303398204548214464679619670498318797530416969113049687949748913719385853696440006342914914409324711927514735919762630749930910368257238078995348326496013134731270722832227541946230655190140724230424920216913225881762155923574392649430429629874857399008423111592409173622173555669818561639238479386641112941171293944637819884539783384801807306212309143954821102664217028749862134725005283276323891681498742844909635401811910050144868822988958025809014100643252714705268868960277927157640830735588882899770268063825566477560264265522396121754370574916747739688457578646589893251352500174412636477835868020948648745329604513059292760755351064849145826200941851615771565125352471000642318561365505631814755913407189439765326470708795414257872386018588731957851106460097107580137420981753822109916746319251290237603180574250467964035767429602245913214123127326334346318302295925757328317270489711826890455996257850384277090604556244054679457359779104307277409454621310633580566141328825770597900023426473331839841852974340022013067299455993016390917202358090749553316281898776439175371112370961935528951717990472806791774883201960614121539686512065761354995761840357308159697870887867564323895872601885261311960016824891375092670517819749554076999878220250252971159923544041619441523186213634839241380468968023640751521346627713797818999442885752142481462444892171462038671805885043357334164731503266454144124943051018494777502340043515266777080860334859927211336070168159124241913848777195878062903414421275330355130704726229017772757637124091460374011791813632280357787889757629121867152452970933278837109588387151795170189667920958254690071347224957922043088794321550119220322677283316644475306370406636663853022682910291357162650182585509509003697640046868729934346255518368155021984381565272534191719493851554173214192864751188172585932035461996956898107417859482217142738856138044620787200473266029711247457935514672919470089859811649937754962745299944030802921960876619502933044592127199545175855514711531886594924332082773096081058054647688265458886309941734087884868723435049883972237455817342502354943466419903225639242935832304624748353674876662683100944490648650799265485732527069539750322748925970333579071377555880311012020761465977997927308347789942555588609406201875036964504691389334105968359056478910307344351916756525489074805123853930402247311587855879563229583174635799000589853061129322791314493915130414014514729072929836053990377336546986479566099337677177684971872846190378868274244972176656935712668677875025185262649436683043052163455911942444651076302043656075524858962935478070078697811446599318059134524274546277520926058649300086856511408826370642995617087986089228606152278247910863907185302481607002108298754510918047256544025520476137893916140552206545192902498607558252018981259921846853491373446194992644101357467002649703964623650358001617585801841631474082716304394033097855372448039938099978843799161355513130776920252320171980278750293363504328012919151334989933742042209240140014949295934799663604364116795855455812000880826693186218710892276417568724114844340935306845336313583557063168618533797420739433384143430420125392151140968702420947262344998847648608215125198585187140339950706236560817505977146001960120548845788230047741814642650539840774537059515232178485898191677751683414697222475404944848484660377073822556308272390046372072970422873159668662761767920084829231086015319375482939222274572120878370802296182977391014173166472520409566226010824239372610452644958276462646646073701920493340168539799728668749941120416587565610121791745022906069199623129335686626146348937926603898838134410516761747414762744051349027184655431583193357843576416690904887125827669723167165086858789624739916951612412494525863310063403879020083172537697297911640316434918347206290285477673656014590233180736363079794927908416526300008682838074058834130539737034159378378244389430143416341750366498464692959377241975368271464679437379850879928416935804424304640884913898709749373582699480600784520766706125001514877242468707749938730039092384915058364287050294705388204875666994711312149952151500314597743207813268251114224621687184929967798376751674251206598126229425076219515101298296144861603145867006839305465983371021936742319113873791318491210232975720276021398325613789516113416907204005018626509863697997822144155927938922947840100783659888551255375921387293465419225342726838821554404214943666590496610725207787694489398084073534404623991800669764438721455768814025296180919272509514803218000327911730378797867713450808302135049772616363925388466269192834991836085074128857464177250319122748573473956772525349464402473443633393650333195482997884689627493236370734621161307301145910955204100648469804266024268905803694084780230734881090095048147248440308458726884221854310748262244556095051076332196804324294172130631662200028153867590343885101221496633371677737842493282247007246259316551863438089814770352589867610017474472491471237626189590597668835453983736465078534549774761710211216863293963724818945897849333751454564579706275085426354825791436994944637027526534843679784649795550759780519629364484251042935442920532408697993452040064481567308994459838331574328963951068186739193264169617010532071663404575875800920629345549155580922630729022893641035146357418000755580522371831643342640622617244237753880680156490119359497658479026065179376636701951232882044363165578025468950376759988527170988814566336515332557527333424649811424410413250168864915714270232574841421188814736051389088403907710502983022369038175347388418661704095316071707421233343802375199671335983376030258804894602667983560081822179541311083262701476626857177054503534978565290608831558719354149279983932377609029949038432484886363493996835486085938105750693444866324656091271669936186834227172020543201731299325930416049596922375574951933948717288170359576853685027322224968767514639455524708914129714437648541075578745763537711528786178156212488145400138706891341954915077544410217590569822661076698865001309796949553269979408575485741058822628426304380292869819699789346636029602905755054748569657970834301475073426773623852539439407582285435187407004737771876997188861250496352062696713010470055327788393101442828033462592284978514125057909386577362755162142013702775231552955093305895162211761791309052375435042902919024211462935763824309787011834066179843103220965404214676165953403069809720466999192293550956944329055156956977454483764554695177037777664796222753287633918377932793712855422268403667704472080986372079588052404112503827321291745987943480145642241944754840826679700182115945726243105089823768031941747607725428323648518745786199264037318264829178360020525495637219791341283093572092015987209582763040561799722277252217882570517437693159394857390831228361208197032682738550047596055073685409598304338702008460657905878525642086705843797550883744598353539884511017489918992443591458640525974036154613536869255503525864674163525942989869495233197341818487437960164247495867891096066047891943439906265391264941727942217285122703365924680045670020851764632587429525936167443011259823841863969103451155759755978045661043188601281634877067901315154153813455004079578819303030497382524795913568998507542918462412987630762567903779708043871341939266746539206763013401994797133469378928754560868659462044923025155482041335327263769477783726762110656982205375963190480038076344842239105617544867471690831802337628309468000442947392336429400037177716757428543294092035653129226355574876769444943222165591090064836222324601353489486497195113547662684713001100107553589534507706180553279729441802981913961285882480081922216074670446220865893368209960355863817603748220238221759930937482911020920673078626821195765692015888736513214137723564433176581653910039561778434271261839013338036949609219794470333534888043314216806516250629866522717679428476494611893554931097238173775054040559658437529960986421203771485296054770817752315305080920452601953117100359124278424962449668452314209258432544174445511330064387784059278691234259015011500692919243456278340864907108672863385402511946099575584584836599372173891067767174188960158509616013097837657133125781692108486124281880083263433484233411694291481448684816658166423780633731742639980007160682453308987521753693274818381294754360240914668108784052191349257955307920955573195325227333286426978214875109208565500925305847010593448119368730642572699845254048290084426385158057790120772641356145512926796014721367963729714063071511201760273333398413633088096392936108468016658096728387501999273780598229472284520379227822098926295968925650443171604910997054407378508509269555219433916459273243400082824993397884922572917083367462070547829444568160625407285203225761692304799513232230400945806241462146845919060466114149803064015204480583751719944344987759788180804288364126398692227556434128725397236007460275881654974237966432101998938276971235516310973984573017702884657411636891209906714114109214566146544461753392990206383053837166284435567270475055552535608347726784872686873932456005439470367166152418347832063041777308536422177251800497507056003562987098713662721408686175536536234923705037687724449640448604675629989836247964777550441821138220090192723489153196709648433540077341515848689434197121746213972955911083506817842309294665188184282825586416909779219310485207004742676295807085365262286135020585480287975760093695362508640290874058112011000547355817027224337783266303554342042120644412047391122075216683454057586781152807828624441953398644068849158795096132260939583842446084377901855843297386760910031776769165990239279438451848170425603488539962802526502415485340533341573980909773567104371980320099878484249855185233068919759554299869297976941127761598492994808477892814468822416135420954057478299493432554209801424463535422606217985012498675838660218970090807365810200945594576384954968495902076490182845030302269763285076577716569606227540094037264710556538492524227853923637731406992779507190588022161647549851916840200350617924672646764587522463814302770114833330077673804891682960440134568682655741942071580903392944086047997030103052634875574440792490969439224790590901599603990989416692151438799583917796107701211276617754301797026530129411521332223116070180597817704967768636018962440339339632374059389573187003907298488154842060795028118201352927458711238658665596756137731728902794753069969981240029633310621118423536593468507455586055850951499229083946786920751251121932225022041213716915759594424399018853616123805556804137691641166554637947799188482062627887436076386966862932075367363787293528007659365968019426720999063665589676220348905126987921840815356301096878192800975538615229771547990209717464258716061318913739320674161119879481891936657254678266526098744381302544411331227983013146239507442006057662547584099566523337872475701502712006759460617649130666551774009857981723061280510541942358414205263408585817891166937862773257782385075823054443293104039253604567706060731116289138729506932992041698281020041941687487765107717012537434973022566986512775495671917224646778830093813025791416012567488576978620166578441210458769727323537829451076499562763866072380605006694481510574915425514100521307100647955023185340594720958752880052937002969147317150131110774802435361132950384547898334996192995686166834467129935449655922731583938686756786670508521331130358144784935540667991161285304934540862149441399819117939394437747365743601376500176843075991474969033892197427994509041548312321405833224212317008266632849708440033286940039010176223443286327392780239279273980292599362094667327873993512775247642345341924631364026045985009801821925408071955494798795658768018304154393868681364527743168462375859943234359683351385810476457068472324969240210853238370473093391625799341430531991399673771623757937155338820525553876890633237767334692743065816629015737949554000384050701133467811002146859337681567394877799246091371259134656409147494013703904640842234384306132509700604178964854126358370807334234990427418820731988929671453322947234953281182359883922766409801316908973901177268002769547657433002908846142646499918794627946573443521572865693906117309478665517341665437127278705990429389678951200360852602523314333148343518738043581432103747687049376971323684896034054564187041107571127555729305851574828344311221495826743888542954798419900018370309489685017422543597738298166689808058131921994558663347433956462164261437023931882522533651239313776328017586240697844922378079928877413192379621107092780374647349500354961756385497861849698495691295944489184773033724400521747048947673618504174745146162272337843123398831827272190662373439732815917165321543462189686014242786007239345007409047274985287614432390322515729503646286025880411140414953299410965999272472044757234669965981787925806909239616634737733772927911256799908660891178432059155033698433739547733943553207766954819627382856674267484613567509952867561391734092578594402995285672215335877617276436455261905211127079864068374662127863453421859332908101762170099873870691196270309588252798860598547811598398153398647845224179494957600295621751565586873650955099490803400512595537048314548982137323343477571658596739685823384591758495534684577055050427009360288673409320372002094210573532807761019027636147792645659068162723575717316768978475813392554061607314141257228874632203435819896247834334459122070809840427784979467574721165786999617588426334271807262426383272806872276704221468079410658351035351291259480415796119983066100961454362471653785149342461376627196294021390423521285817910705598167992561785773865035202404811269676071283628622546355360791241413508159223160308231667799214146289132965702025360641101925496833714929312655752187720768961586050143343036590058487127104296523032824898926479295312769403396748186651202866977917379456293120705781185330616504972372426078477374926348921124668357722289278956480540838407909116076946418711080241665500334670315420589132682015213678892192065212989863432416971920679832354824478601023284678972146946152048768623085963822068633819629184774132248946831810851520870368468434821687166752186187246589896630213899796588812300346183075384971273651611127881305847526218933494880539567450096923564269407570936563361113321415891184218453496165174505389581397120570633380461397902153516083681606155246132536832263058455273052867320979298054296038182296075887523246179603090073198377849379557924523008004078191690508560958998525674177835212445709654307168607508888582308259446335693606981534341580237887872098306126982662341282792560802897432116460980674342252313286985292564080061616919444577349211086445115022692351173452651018751849539656638138856383325311032469731319388890611910369582974168995111146252631106173454202739365563973676655804966556195335813577774585359678913714155938081950524100902566923073111669139245598628413728644491191777573213039473896966157954427867970692054000082632513734038056949497978233684673818769181487787182544040980950050640039793516938103452961193142001943349577951869181876198516304085799291622259236678346017747578448651918394146110452976086097180492574026753776714315004541047812542276888430821995234124841393951042261927906454926948906114820730786363872694534875737462661867614446896344693196537163969995012865139995903675542365169839095531551405437162781661185634505478114487935537352150357278587026961651812472087990963489491794803328106166399997713967281209678878086662424847458901833430513284196566489848182294606752220620511110889956901966795111718639041178519800569871266827536678415380976268960852594123814295417862871544723002802634938683258788505474880228992349521550733571863306763857130004214496362157381601733950003004429680688613459408827090714496201487316902459455531697907858753878112472296386648825678578899655049606670734593649941200964571021536715791562906532239781735829010768689026505919340730019702287073694212072750093198319577399939318634542869685141535977502753258642727181957210954522270810691729619449368707507383933616569063092722139690855782379215840372695473927799575354935506546073697085045124712842324570255947610707165010042781542739866738796984940935242926119745980172609720799068874968619704072156808099789177195867605547724103717149575767331391775745191971724351321669078784951203400385118825977297761555560258408880340784333896036882910556338790250748301684232777885328151164081601208049051917537230373427088919025326682942223024699822028988142547890991610262150970631136741010433816343076903409391262693238931412729256099807375441417874945557512450663261384191424584109012336409276499326945993835090268922041815407701500924377455076775655566266602635060642618375601014696555802265369118024150109243458028909706443150367544715622765104795466797453325458640780760276261721544329594998980868320350818076358769073663642194906168975199258050460826465550480231035801508559079742463305218262893575512958884253251296700961001498976973782096623119890121890523891343985227944379711165988509236608086492055272190983097468761926454939841570078953826405636495500092618835260458501949190443174419607266369785899144335500864836185971158731223233477747143864496751439454851248174652758337415206880316475658015594453676934457991939509790237598967132626212069833828265460264474355223581003557284615214210376938553767095881836995854177957307681135636621186820565910266565300332355722233247990697613221193196278169286095482366903384206119103610731839943304149810605438421164418430507842947311920570297075245644287078926708891283613816223910702604884337111790798718985338161420952494975778179188187164921673105071363374119291805823294244802278667861593923203106769272359245390988197422175061299283390926628137271946217597479087251958369207049564112850553873558442277589462552448161064981745326504196518006327663699943123823656694758214428697239070399080670495410644409915593951365282409043405428939949772135626265957006152984755224941467470571290881668305543748558170375243563681053022983975014647376051721562656971278021320288526079990480064781065847205144003433934262712568042823449409338832465028367237620357363302274748184888328242816530309562770610424697579688546834983251168929129460335164873043603369384208311528998994500831357150427385102117250676284535936223267079860980535893372596100507295158641254131743660188864651934980563893881821094767131925785649903527436691055158429092985973364658893243198019756913222608448959593828558133870459276002406725782386874059509429895096109400510817162877836067979727201581377887649293943902772658304573364040580318235565651373655919587567948978205526588151582922978927974370120708311367560609651658799474383846213435396288038897290091300741910266097921931459313345865401413901246550711977419122898227616158681731463087691302103196544585972136012843638116390284611167424621038400748403752384137199896211460300694028758717759248897149846698480059262478985235902908847547877680516934049021924816506231089736818554563390611027041104167531867462420312174819736022432047417491435668109138419278463134670611474442974945444635007588714939186119123626687736206681459166234292298144514125108049225509568259476015291039643291529296712577184519224249670821560050783383782445616270237041593901195216023168347280255202810633108884795159960861919527012285363678364100024927644130235519799355929055898545993976413092283529791236677253097376072958434872206390013878555847602811988911073847108164626953996042451356139109397519930258058211997418200396426815068546178283104838250187484645525863617621962368696751190663871466900322170714770357922164817031565936971906814751442527098728931711831681616780281888584580338924342811243092014859023641161305657322975692082737345174198454519513904893248270824698750673932035825847642998288114878480460137407431582401692126359912098221284933036211372529958988378822920525479908944212156944964799665231249529999690222376639499220331612378376280573392448798955654421822059435658338087418641938269409830630664134915297089458473089225720850571132773912868631945820875541569683945879136316940239897820272975760233109541752814937844314828237333138572546191372873520645513238427695759049695314156143563889439026038831026334044473818338231532949143907854078727311556920201197067835432601859702224887715060246503947844216142723473883958467561991715944777053647395253959946256227262722428409683972252737222763293996433445347087670215542724311460472307741636161126914665601804633281944219713625976293519752732005113527744844425255718911520283395937259839316476383001714735066472537382971137348380731543059767612059628943000494102168590489529338629361437207926735960924780782542385061995306308103327807906248258206072020966933095789391909087889163293204671871326580229197049737766965976150547370602576785501971444766808337331003403613377554252791741649393422919729514765167642760589053699253484310289279500994187650132799378256886988928316759471172527669965017209037371323329503730383797489511530598914885690770508096868247824937249329973230519104692796730954579858686826124724081500757947991630834470816675317538429645224924701774481350147201190631524000925735070510422659725555019183937241353661653896219043592394475717748051132452685986001252397542704784050503727736572170832959687562171396324578645995879389947703301575272881787075570853547305681056071341629243966488508094462781193887913265365361973834893803188318853066122140899425283757900307969834427543760820331914962450452877870148002148004148318051003353303950936873046391415291381311236670888234920015645430714599313855799295020507657363155279415269191565678742002072549916041183942011432637825459642347505865359588272597328868865863029266545367119479622334906375803476178366380900883518786192403794183607752461423874624853296264921481090337585556769098629780845639970943771752919517979574623614296323069361535114825448386080197589654877756543358970833689833644835094386739290141131426363863303130588766438982876575896359995934813364865264852651948864482081393493921023357131823847286216565801804362685540352792997692511307914581151439106210294270489355779417217648347978973456281749340632614949720927688023257487395136191573435526583260890605289310271817742445158520442455738975024040809857248404488173711434966139817617526000944867361920380168470356849578763492656202169485993763098167287635297454930352576115583323724513469618013380401889161179872502275335976746231226041158951055453782925746942756314109196290861771865528588889988946743305302246897674800900666427749495573036399588757769896477110278256618718555288643607980691498147815945453904664899068764210084181004857416130240705152981725689761729754993308968630082642669478892124038922363911593811750433030587654792417471996875996418059119227871697184956096051383508574734462212284810296693351496208711227283397775009565849019440172602976423029308331119125628556063171197035484619573751995130037083169830914560560874317043861340693213156324145375022145529596375402091956618134354399074071406959542683724846125199350433696131610791854926231901973056313165376376382681341142794701229985328569324007006179226122440664990439816772016266750589451922722174402539304578600751313094007440526277370178200444260406649712658936883824513500526884994040293726358162559385339763155395114270296647653159050014416648427100267864888991416955192874353111830083997026209158971003826145417113595317247233310153289089468075692867871457156924567828754705535215892363995198711956876463485674628855961216994369095071358924364204450700768765796594895410459154696274193406727665870810759612924513198656173513941957656069964549568273354207074566512203833612078995697777913504644081746279229006070356159039532353893023528800092183522106082471547341790320457059150262083276318690285048793762707284861403804736565500900707134577429694673182966103443092629890054636601321007508605964140737837408817360201144610034887151044804941628566955076393518108214668430332006753442944112709170240639450120720607861871504404527306750395556927034813535911714227784745439707096607945375272849422241789565218445705737343290231976363304658644007407764891139892286395870010541080023406764880633854765643832892348230647940794363201532804445460620871633093704617503879764440742150516990879526883146073864663769571914374687808935107423235032405550981081207355602979700917697566096970050431911517234458824616590695385685657777690674170654181995352752544194749788697251480325813571725331724298793378804178987076345811579699472564512170895770556130917285639918265067933771473486949021349069082865835207782288398675134371325572527697761635107497276282956803181681186826730432163316200198341840033902543477916536506050078633706999535069571906120910305731152777159866468158900787981289336577081701847301125351586774322058076126343734178003250227888127353523994260998632526987966838970480047465306601615053648970198476931526935627211426814948829858616661395654377054591343626331495644088816625692846707162682340919529792249218177954091691575525135637124195446182930113408764640167111052061757569552544204396330972668374245600441692916859684155355360250034115554427037633243156131746150133158981949759349659061641939387222781806913224079650919008290153116538406090265043686666017891898044962916273516400381720620471931681631746348382684846740152052409584221536082647138827683759481676276681579614500121849899712646472991110315147903323968402449939814561450312634062253395493892357644078244723700255974397505693043338354122841411317150895696151211960835536489837943720380752267870699406887810926959163068511554706708934857623727855449967503465797449918070885543251356927568407697255662280625908558311183074412781401915076628459333432370794565124109048807652579458107548688546380283811425269514627821445788640305910287100068104983841065034809469723012543404516630455183749599826514019230040421695164469593699865639226730792746380091586917795503419316123779020887710618753467100405802328586256490115611326244852523545590541764359888677876068859697543654777346675174830560966303910355186895223317036976852187034143521465283077291538030058723573091038309337736934315899645782424222653120866970309884766691739784574668120428005824164437648700531492953165254129603985707376807650811039974116044464854870532543697065278241067325901947656250345529284392529743941054597306562435742143919010544202994273111599160504899075160569937093035772177439723357867740039624643503587370686534618177592718510160447149911937447875069918891203719189346354292168395477638304254163180120103594024859906121087309078070258039466333086000285104413345035491071631006457051484853795638629766007756437868167865170816558837138736091029305035369062757836847790902337925413666156338565446904497004313515817842299154044359237767923644878322819415945494265763224327849723050935351877616301439166394582670645274595902128677755807146699872070628178401833381101158216436896422864584384865820073724525236118655953670499143351761497471922856033372979542310847730838438530338830015052367665467500409876576197639951966635770151016678827754629217000648346520190147941121012285345885593941161142764221899503287000645347807034993065758054277413214442055164814711601613912691983252634903820144078831015818039252505417179764693959837240722135776782929418389397734801527237973490596496726720372643924433515617971837592779782282788609882070668725025379739452217714490393366798912508819277749815765375222699919013756325777183349826710793912293400308068320261048798301482730918082115200509124330700254858849674270296656219800031508790747278177356759737867836298682983557915504394087255191894009587855882796549685060637171708920869390616980516585844391686154063968872078604199700315060150240998059191198341475263610991307240074849741113400767821656357929862540418566602870246715538794415963408329450810586772170018474821961406121577406385518734919913101568060359976786431099471743831732167135672420035023984588605367918091252255263989768732208204053400552709565397617142383971060918379252439910127785635151480423260996592270489019922436953603516990482787477472464152063062741787812660423800452284620545284241904476209822107257899015060138014379057145259932195102159504862273173183142300279749486744503436963305086956781221853900745332435165718882241783720813625742356633882923239310950448752174961044161196972377985698595035865194656430438852233531578595379122187252088536042517891858122196181907365662128021903746173681163456106716830698410773645179790562503872860198063018693391160568592710941385638938236485381358342320088121904554441789971365251734475347559597541667619996376594891787253831979486563962228592952353725428242450081688817045802259540984938632472289718208354725252531536986657023564994075574688655621603583252565564391780183301698926636097485112484672126691296982320347834026966401055218224181723640946744193086979406058702166401173848668035622142776008488607865141127367318778592280969764535549694430496488580761033479893485896558850892229794069258109972115689617798917886741042912803565366860003538462224535151814389467200282018367270697170503437155950343164653612054388543708673451832109466815427990797266183470514438097791941863348232515008797659817577750581457611229483465075206158090211312519422724478136453950752857416921571439982876190464689357903892353339638654601725697698829135317259079507669622576225695548919199085615672308214357767661117231605581091431477886827709429805834472895303368921372349344875807095151430716256745444342161627202191954831638730750322588989627376001435855048938678632321593506234810990098972724874606635007879400367882390125502198506570917655396621350746006303853450307919433424510219670245618002675211389461903499883731791131318485536408302356895541059845689962142251151004072279572393282641189612295605437738779520280825877193636787375360923030198493611827777334345976987023724762927351062493401420607087075945549465661878351857095888649126701096000012291761267042124956653533671788476466222012502923262201259028347841764525554506775084260619692550045280995552717063287387924333051371504309233117919483917953502111859669417478946804972792860021249877994669281856777587961270042126095172745245264632232681844615648531457557108057041729476762033869630101764670577711160230660771479925795110631809439059219029955626894267842064871345868855686361586502850804753927545458604109795465898607064534267382499723295343440489280146882609237515793782350627778102325604637860168795007136662978857642895633091830907085621314327964454754922185728053175015891528684974763439371675547009347930400751795555006631418489568653889381664322002753790369548870179370781303801660350122705361214663386979623178742410387575928340239713995255588411264716919799274649153868610041152323201479383551280591941295580287920489475255251541026447546441703418755180561163787362997801333965435632201340108113909235607761252896000824677486600675307290206429661864149570715139193975403410126983835479251219737566531217503887532192544996183028382861035216489466878008492025291992301348680396686942265903724927135560415235677863899888516265688557250848572030171236828096576884699922758709788801523976816870313310110023985703723675906953745787788634158168696531804319746997245352575612752271091004121518500638828924762515570750958473823584751002112441908809680892730551384275617115387984927848259578467688711494992536397725870817185980801039685412522411356981270976708000678251235141061954890001065943765063487158420951464340517014891644835745217637280622999621269449957412569306138252861165835900671893952316411932786216461326399907130318267553651413578176052295901201278565604959734209133399068466934470287659283333556804454106022284191934919873170254154026830469285855504351252727969860502575036742721452510326704416366177982172773026836041308279115122816036592122003439915028802793188057926501761130871350284257693113235789364624216151167467829480996567733885984837844243224885329925730255133514623651994281860742998726219652362206596586674847227452582863039765738557547306314164734002279457652787089406919372111490512659562800462626790576142237728504107538887067589866514295032372598530424392366326759101574027489557173354687258464944111779982787836331934629785153224961589709412732533705174076454954490280106566046584338972844596135400651699613120386313346847908790848342188957196754128727175038513457329939491073613811584725621487201855965531350553463286318720776251694362402798959552149943883125694567223378460258922072683060042140214107955392949927078917290448697825943518873785038342515604125827984430577609083296929421135160588327475109048403535507022457110795783495095862068794615373741903569390515172768186404601077027321477697760234093764371831243923786729044085262160148673602237332697740322270769831169677315289170598229726816119049520074830126900042717405121715959108449946318881706181591378148924889738387723365098384160031618687077324004385342207386521803080156460995972092742075441083324376374598755135150320476038024886952691129394383985260739279458037446967418038100664102960071134161799854569960334034540036860883208859428163234842536858547183720992959568649098686525249817115185372560401457845277002161477205816418757218988354156988185357056174602403261803380224512023369927224342492420229546335427724386644715389386120584444366051029575953353015674462951208193923289800931287881741660993565143098146656756986643930193346160388367386647282573716523801828115935226307111007078513159611411119476227735045526229571429365113706376386805721898461289313091627900594202838177849934061825971777588833977690365103732418219086723434715488204168597508656303939245513512918409324790837282837591746938488910922117613272675942453413095730513683756361539993522873185180069040574805057472866799817571387159035802229195757998981687903895534826268965495496093703547956833044375718980605990001034289763981549241681981166256163376259228033754343633922101724318512053184433900193514648839540413176195642283471208638755224177029471297950635817834411960838348577725543190193668721733718421162965052374568684178500804864682204154423935954393662714750571743362681420540047495189602759580283339095032010361623971715603923581198605239303703698618245662611137864782916272078602239063348674283240909212845770714555907241181284179672367852798979496330439584610334799699396407036756705624676153534090753322925739042046422830741759713117509171776690089114491080322042905208602027908656539400521950082304369598824153994554721982404054630279301039329113748757333592309513245039805923471366078942841378877345082746134680177437517241275945537666181168937484926076087485603624551101021456120618682387612117262736386083620097661421459757533389792250364241320232609881789353945343282569874393082067989865719458285739803130556948840586844460200827847021332387677794357896085776453089012235011094868745150736853969534903231818894307047042973754913571734731811115582290170369689854274150152624401092112756094718112188179673288024757515900076887970762941235948486362182687071136392009913729513462743695667373688261604961454460655563005198937844639509634138036508427040699398460384643982920301752439749979026164293381249570327952804422492570326148081276933582771938877628409156522087284992650432482272227633388878075855017177258311510671015431175176517816925980208523840072632052994374238728026710362730612795351474010291456612043689637146511777587954541247127643774696837192229559514844779966467612553790176028830579280612996275108974644379856790637656236169433637973478171518188458903978419288296491175821077350102696407784230704235057974516885772903355500543233684843325890112369379527799287644019908075731641924351613601898167265060650746744414619928428857101921645607827899097788116683456933103570827476300711284654569579380754321812075632234569741226562960380240001075607882527168793751244578180439674625504812916141067537010082601787825742294909605288051026738575798209827813812223210406510934541446301607913233631949928829355699847851253789528711361113808863486612522232377305745847986590685462549097984710390735427268581720779775939650157932497628865487197667082129830728949025670216128947499693258890483255129064302850134162466110053310119029412470027408529306594479072542759440563855325094088840932716017629597784050076300478996770780209829384796263472003683618902646025419391163479930396331741658986477272330053770776068686451619763730426660601408986911249708094912278183129636418305957769878346435823780982113947421960058326613384201068784286680411350861709633892003907121095332809171114704356462937821699574757070337357162236636404326546739698666044453520638185342622467981245584715355639598659548658167748305978483076439418278029395282671721389245799119065627719050955351524591950701450734131804001258945738651359821936756384532056203551651618404102072901427137888328609340370627763095496651916959748707541133797111129713726120396551755617217899104646890592238112016547278264763290082154274267605397515624357121075359755573701329792651250416035963231883745522985414042419674501027879014363674980767821230870098409188633083860757369101907538592136798721182459981548237036629209283510733923760898803295830522210170074545448387104225739201321364196754111657909858352876006656415927557872655964856787902080427848935729892185437964356373392090964759126101908350670381099481500383122865681126215817538094015175109246852669454732503152982740928969496960788959647017508151260858132899999744797705905714519320403157266771917842301735665649025416920739869596029867433678470624617932715543545456669464669933695378528531239587752428241403435989629168547869834721776416956531694726322593405799453120159972557136438601867048503150434259541455863832256128209667138023776196000977009279936783449836791322715559241002872014869809466799047071998732542485659160482687248082718555816638879052400567110074388472475415062499945735659234684245778020454316687327424680676062948836770656654660046773484253827871220549303886254816085579362262140118012453112768545685069558647094523237290222841993749768677892427272959432212615408801301625188431371176525099612662213357041436054909721834119801159385944916707663463955500191852383304528910791788407801142413912907042218667546189638348926172233575439927657648478064819124586422046366590408028734053083123993263171807539960036047287342804121758574222116778148249744127458623272590628525941196003137902758601520887740270497036299241444227850100133842660042890684292927163875868124236435957264692835481697413866462574781095427442863219131977081045338527847373449142788057343616444635250636069851844508462897718414443198880061502826284180005162682732447494257228822731083978736336235131781937514253908301227249662469914692310148709033064682356243128742436088197549748291611404794711884161479551550660740412625941159574148817573000604306745528965161340874741211125939111352351502167074406445522552985149743032270274605415931948139221147200820892561316720156260957402032496811294504663055919310937238970105910219304415171230731167977469018955283430210450955932122597503664263317782477935966168948978910548116919009882400724596766108203894378486978883829347804533488179636718546975092458540665414438150096135176906507518906418499604364444620133527201191558332106414155105379976387568451771916378134446862229814579361872424513764489188257839891007931933064980185810171171582978746038585170595316193983459320342337718515158552691088251592883639892187820788663971008458343014468388215316030286499412662374474043859982883727739834629675721237379535335584962278276992708510494723808083149973259269366371682080005370300124034683748448393948116733885811850243430517155961377208890186119834073018628427619980352382655915517934303595986763591329413165723861736476537216013353791379077623690407784128574173733781301705474371697614383729766114453384755989728294912342041478184858957330822865844042403153896051933562234034322945534796675877406477020775962025210120277533732806210991297774935092537060097484577385037379248759137438605222146814933732014095997176798168667808248960832654287572080975087487179158683130283294274285930057456487509760287256058847782182381513415673023132414318638809958758068073897849399617590417438073077364442424518546654859345849890310907014132028947680374343325702921079158015084044312009973686388357432830458179635921787614410790170060123726865023562595199846735969986776175122154425884193066064999697661282875522637587595939791133371659860276314608206011584327010759575965002867998645719613146778882948774096214324133745520228315865619225242700848189827539851764430548047066857655740302410887977364174465481730418709793260223280702341943397794081852071170264689114101692488096082202237796010007393571010840133750735681548001108449609380244447580429526155503547655287698356357772669295425549375741313503789749388767134595560684425111394300802694663152078840631642167845559234320336973660788802480083897874579610032653503871877385677355426863654044844005445207173134051683057943330466596649527163110002186354271406153062405729748386675114949989130837960308453785513283579090075613357309749665778946872224800022353255372922903252042380565646846955963474825804286309815093114251069389335102448746493527826030030709434325294299117271777744512923047670980036474838338686654948671172133108463260428548837439792961967095406103623531713637439081760893439278993778321195706911762665994839130901096255144354899755021371627966858430410073750717069334452347590299415899558478293052694468997681809860733169217288098238194603769428896361551620248810909041551456557755061160858177830379282377323379024482180799841376503791245391335828716167043738620456213202371378937343424901389145975629921115626519815061709359051656206321880096486722289408608375323218902233665034007588732579419178733629573693641285078444414672178996288945903274155271582495465757013340495083906760839222445538699093545112184934991120842219665720373631363500465132139280957755703391342618970344455866011684699156651028855619588486616798314388899770227737125752423071288365430776294339928588871062463632832014042941641847933092773334485114879817679845551952219919210425427136406118129063236391572010906557057373563744150275231090868101162505140891689386550694722654568810084007468704028779450791246256199286388005486348266662414595498164730536754800904485820893380443471125149016788362325600279093249381831141505223081625932989772206220001289788925587949712114134194876056830172680286260538793540923952414407498506088560366345414944445539608910812514713589252950145464345192143439053572199773521896558349080799331574872366057756424203943547501180844923980692198661151718383657568912946603590154215171265266627280107594525123599024982288697921592584177473486699527555025794622314592353066662253016036983623352842191007052461961213716681095748161212812908593698033156954719945005653032530071078172034139633015669698804069192161614179758760326119624417191053038199074237105230058789422190402090409367571086658968262734744670295915878990740274138276404022178182774440126176579665292559430162488273249055700847934343797693697599861797173326497345653799206859182511474195463110687544956526790727232148506643154932634727811495093752968297347848345511144819192300443402702951423768636548696789486159932771769352534046556476070064498666255071315824430967575786250934065941154844568172787919448970505725477512379073458004113166036163065675166966313576364513298010056361643006558790680521957744868656231181811968491445703994099938089129071589621025140746225258702461390059467489287777178290821886999416949923839809757553905657756936441893492072735533727210872153509762301954641577464696551012787330922730971910800290024516515344516605088902127628129570706536209387090931710787576215996688266101202088368551729872316297480019428513690263576655766099597345147729140317093246603921767149473647875742925592277191846199954406315004950451804096894167179162616338173109264923548718571094455035746811928926930417932147891151449149406116287592386985614903441464374079701047375059372919287003978057729734389532762869316151672199960604201514518381948058525469364021470298372355652988794817953026766382635177109234858272259681015274484535095695788875593810335640278516434618352855308675296091931820280116039131811428217134091107129554832401729088377867137623512176604570144874410639168562111578246911066354690974652202457759793030003825333839568786434701830433038770028614541612344279962730644710114796314851259683200452084254548403054575095977725204233714390315788231702056980381545652748592391632408288168400549822165217685001874419822141976566087829021114976609451099483014599976292336992193879893521239947168717457558015702622978110671635161828955864141733139051172333550706601591007868953661427067498733279133373652396130797940454923641287583753715825276701825369198476096841394133681934766435208262366540172947197783162882738137308492531968551966840204800630377157835572828660449604757039545139947433887589072517195226165720465682629138784700705474361135102088498880274004947779072801990370190214793670165093695547437762377725761151551579221806936006933590337608714289269033226840764824876004739264923963232922392664657988941712474901860506323564091099211401497518097626496961619060590318439810584843963020840655106611500808953226876088972984136871780621991698586492378947141354772833491714174673217046235463714241237712708517067215772414013364451176500136625144584940255329193445556681424492207587463701702422800196701879190566394109472317297709391239807024184890976665902042584753908740353556826338077119337349317584603079117212848456634629356518660646672398396225518320136304619597147530134050823467200860805543914396238253374619761968909970621222269513930401839439726400598997542014892414381774352063431339762968975961563045845978936789651331530719344371801466609855997323359461144985176124005672506260932278275312141167824332891998660336300191330444468099069517550854365707445889718851325939665310240426581575935575650977954571554171187668945474495260845827569034947531451225113831587833595237934695799541403794624435885967004666782284134669900244527122195416863636709621101547852940202213756404187502980392059691082284785168106369427344540404159340830320393208038314781744704452101138189989108217754357949009651992571469305841863180619395130237684481407095621714710736396555717648970003171383272291373596332313252044309948502585013196692736698841302293635173456970495007051499544856205753055187907163521541767031510414124647169417816092600265756402088816761186084792493010250371707695039069665750494871509851751933968295540620043390842313229801991782107939820017385446835914447584399806574288454581084881503447691195184190239123365265616300861923672344198497384487050075158238753323238746525116505360187237635550256928172902182747160766066793201381425458152620634477191572009424329654230162148057373579395215027645372091118034144448187061905761408519156052310033171317119861028273986766186700981436666214182527319681876621865858091609838771661514749551990465700252448945220071327459514870348737989386436499430253613881477600941861501878760754477488976840444346609941773648951509873637827546067857335316889691709458432164171599723377678210977251401021874403614316251294414701514028113454039636584841165864253082233488035906457346387984259297709881236555102647837564681804185800626916776851650100364591568002543467618734355438379038894136617653386799074706451664503926763829145269452133727382393545193064098104292785365294669991144084081491542953141847678616899213997483854367282445227499956756718598630348977536102055480627749166813671180174174031964672036603856688558559324804037336000989776700771874598657748598313448590325399797751888343688220980201171080485859519120862475820421399092891082201515543800389609967687803333406747061713800683144925843828072891364226381234518501301918004690867643737996745027571748728781290912646846872967143153726699608671477365633137017449882067745577722867411469935145097036358893885673171330625645392855486179077527198131251336731291736761859508984410783953386671482301904505991434574292429405928681126113667103445854776585977732866485680370692392318506147857588265278555474100708566690847380263408417947172314196199401384907855738890614033009872061020118844295446226308085630042471794205119883831747873275214783502790723063575562976456543105308881838696820224986170388909526518399280155435220684333355382449091952016388965778942966710198540973948968380111107967554426890807927848710962756648235912361344022748822507561561821289551138365070571456123128265290939051550402582034142956964436310849779712032265977138438721884038352762327841871742072114181431350946939387082337972391435962472068624659936944267983084016607923024432877063207028657176981828621780650999073550120249824946896243876969072654221362269428289257524219438296672366855766499959223925812387494440536126808062092349725957754594441150603961799571516886676622373429369673815262804976634277009076944830233828855790655133669828887111371024500796825786388600825250364243810285034684428559453557988902231643538902797687953523204853396855931296264285088943476901088094197408809846347322954377653459463770816862072585652524763841803141865385904967268419957524362068535092428711522121948947357334003364975403753140724302501204137263283061104702195395115051506638812157241458341924841615880309032874995160504046162830603366882243971195429478859028291999139830232786096328760728104461183926882243578596397714720820460573691298243428933588117303518583551906832621207362016700779888975326310866498431639642524842522738799500131981099886724217829191673417263843350743146769455798047357492327237583324312369797798346921244242468248293503773354381311355387375476242122003090059056237257068471481091006301526022340602867599457485424004789603353148692276808211773232173193924780728602498603535002498863173518924558848373489359336684206973809696031947866401860648546337232562932653994677212715839804459707464464863300156993508983733821405928451039694611678193249888201656049832174784892418545895795533727620615626292257493958706883730504345059241040624697998215229434179462146627483310738030241393817430369453381113852956332204094119588577984286619427675267887022174727481062307940997959409933848187447345175682692964621074116176100494597522293509655557312355829123329475516400323452283774813957005606134703672544834731288095793852056926692566235530657463816369462024607917889298695382930624237531829963106396922588586486442200862107565877063227416601494285706978651252674603949079377899549961125005263769821333100721352735385486269311438122758357073553696290343500177132099862021647942011946446458970800893359879637978369507174316229632876180619873103638771454377910877860405278466536223874130555256947117432509574306997680552272389074779345275178951415554348110691222040540682663604476115890609586673125248673925753564327354793221845153503457395796128195550323332909559234147891083004002673270690243879895116258075971676775868320320434174287898508982677321958566543199677321492446305216757375595822522065556519834030654686413755838725148594589730094823557348656948262006815808009058831545043809973778071935409772822891456553773497357988955703494082789912705364828838670394693890796645451727988561592661815074743029411867544852660852599355880757000110016561543728765453391001385109337847265183647802903429728683461616950792685995606978365634203821288557033869557313428644626138218090251329025211021302764474058655463149819122042696117196948026880879098932585196926818417987552469682130623966524555427714872461567220526994431605940621742763532072639695878603886905992961277064729928783444029405731203064728865161533794552480190783172527472225711668879333087544956230253288909934184222572994298026842072262006525006777746611378341438604207989218892255766721177210804414856888591369998100226361829147907285258116448942303085436319297626381234503862571161822935635286832275029030168977350248217605375220024653729205872921500692233459282120666171049635413249186927332068070158614094530609725396155788948724630492353999374100374012314338297753628282396440584909584340951234460138243970666973789197662898669383011576692301386028755555360749213839077498396193738950275743879706532910902035886706963401984632638853549364943715598083794172488179684891846087744481930466873368791758072477546282315418716554532420949251238081508280481526254610962894862420171979131604225527312241303707444665133920812524752820166173577100278826089897778812174310276687105046203731544896715657743405302955338277353238841177465150397452802720644724197215358480993714401369327199151983939775722224785332253218174956244883562882674622499201033636508732715908085687521086950967875917820099191119942560107135715375333381051832551340577249439077539787689592510434288190581916911123593678143771722682633732308568472468806002154059566489843817515635036566263977420539537924067954133848330898122903815295358104077960986149786133623300840205977600935517604951797202701082983499356776042829323723833789037248711717388851435155456461761721110394565125444188539282139259938383429294936701950202744801349865991952331078599668136296228173908962765203886699017598769112652149186977026863069203088055834238160576261727805728577767973504388590932612640247413001893863327130167380288707425965464910253722530740182038697646404251827974388337063879946370169787942460962673899437528864818214493031218281464646954661293850197443037932843825774700200842243139181951795865314732377938170861280461202295694580449113916035412782081296838533740645651768323755672328545849420962255849034256448379939658145881333587398962701599948213413609989281628353695603275110171042482177523382323041743973587646012998864136066195547891335902410121532793957062337935730810549958484828671072201181319484719442961893603874380475562581270448835163908906307303635159885616434772291089076103711120238228341283073669387729790215947037409113140776593107878065957473943282389277382326919938572360126240224817581087802036327773585061653372195880110382409320431150814064275540162518504775764446836699740980808208535836987187915591569789151196397357871743523819828057568367848854320169972217316760237336125813087822264957079326222143125308897017706250217981202577181925996098696646545525352120664597011261512149112477605152862488819821859766195559856546737461646235676807693742314293901000972778603256791228805302923618707230490767573036193655470115642312556119768537358252042125528971089274833792746035662215953459184615123990472714405151235089081604264935914829978672666228139762374214433313349683533251915013275193916610405348007444861705990069502004932490486293586145002458536201677637343759253841750102616147968465308011053930803653386571725569845607447279105315729499480545518959425385921103424980253237609381845741019656312254276914230723467767698619187810736913452385966108055501708201756368968724649800946870049161945259332570554525833005094034443705622304845597236207689648483045457434266015400843178910141501561126765817367744327297544687017322742100844915763141934460086975837625230102198348277908631027325098474374585804803916723664391050046227797940731760694412231586042724337676657483875155285283577121698238944139969109534202139523374054298193748037421601068209233335072299410413768005471127656754527148369963055672848762571111631697483869514761634512669162109282761316994650123357453078724643241991100864512950494460594312352132753018182343757526124692908629872629545623700277477694496735906188648360958377784474989609570755776578812924426725016046656298800611342146065862308254365198519167491031423229065550233639288729873064495455059077350253271275647921845595643250740896517107399174473376785184200789976394649259345835738967428675321598071482165334934093292325011580464324187379741945250516250175462123273377963600504473413396083559000095950116992451975550575940116957415431073815140885402321347611326214257852322204346079046954555962469490512756354101511973220266847452302654110610388978211757572434918026743468014893574806005931140466860403434623510479560147522927508525483500544142680117895327469867189737082067409324577340661204150756918418808854606261101961180197818657287605913434289221537860979975482531322499887659520164756744864732079963796376957626377538516997096065918234928238271548722619540959965773930589513934836127689432240395926772795009403806155532578959338350308099773590825419715024457393122120082407953419541430559347211540728820363421358613817786806363176792440639809864361634150628941883057185336055166866400827561657458375276380347048585737917364828117450161964693508004815318607389477759281022576219302976009347750204870322027817971738034152353062973158730643270085273640211686301594050295526063320585728279425748852809160524930256513844276433984367077750652347031126787911861894919965524355231521072339721302279759574628351010307087423069800478408721816178188905953411611509569843062280617747398883775423003758913163761472012365034374351938836276053246054566727210696399583720498770011765414428681864255872139863303136398053311112229620018459481582456925789670113327915503756034101266987276737428595464660044918675346994239884707580846107851380781823465211020304456853366097693420053546486273070836935396438735324334978029755823410823765272028698353600888931980027043002780388348355389423772797558435981558378628898706320207250430928854732770269930574182208475107214095103907115330131896173944399810504156124118948750212434760736057489235455605699375113033072959188250072954127882878756374600288017400973592045783146262883157233650360118380079725553500812799566613099214551648908320667390730509230601323968813063915897333329145443542838089447818552554805450212190031199530169544582998396207223190753613400536525817744053216121102972125190610978563201259465970483788389996205933176042497039878642774787088420158129988106160969628965955922950747932904674709882654612665979162842114237302516623037297209121568413486485557419753397307468429641073964550744026113310880744017822833152729346831125193466802739879531482095313143073145872499752991701757468585424690825933567719851310806518302352690657285038342606133673392990168912240698390621466374992376703189269750453892302221759755980372301765974824199307920904303417252804067035841030218039795787889005447638989067867842683409775118360567733025619955286112393642661812213912147482874826702103700942528879751722559390849477772279614094266740334744152913067735055727234001303803871643135683921066358071743181601704278050438256493044120415776795221371715434863810106814348451606234636112702709028327085738884146869634089670063525332347823130576052540543623750264024206538420002064607639332799873324089299677129768328133314865890011157961710093561893210365059205590975231166626317114819675242920033716783332190918710160684752673845201335419362080639553975062405537186575341889989245621265835312613294608005304918032188241218798312218191137751802885549820023008765914442728083552494889758479397949064198900415440043380394420984234061066444288866968082517585966092481080702050335212265940734070954933558067992868138225086606318118673423251678179334171195337067474649728778477854332460230624326930524240772179114128541372461550868872878446354837313380423235963502974616109871938466590101582810226530591315726059003911105054168572393854786994234003299798792572403584482744972662834911891100353832140583594216348043610754870771007784486906062964227388755672414865827552406833024090948520573000207076321231134031902136641496315464355240721094068481309730439235111113533519551940600371328898202361216190086369036133663983023292208253600035156736587065599735496974472817734165411875124246570962097046636151671991487437537430978304537565102706717661348961915442329910529531086348748846860165962514307152892053323991541837488590432166416871448329690749117204740802741452901938674197228822455942784610766957408282428503894233111016593341994897350628702336582884845549534294780187709671186606924305960597437827790726014896435088379772332977506363352378060911167686055681173587550764194427168095548506294881351955490306103470884259936709742469932540597797553565442477728743650759857958282559070175207419486452393817925458736018733417080588611886458859173547710935909706372372611027772216269736589844349284120541851812555674618436938600777517031765417982696283746615580109869041092136187684804597536887902826103472038121652145933543432391770743787509060547015000787558610442461796070268747190171272871427994260191190902350926588617998364209931878154796674955985242236934758074412819775614049838777309436655928981216670587275833479471151424072007600699903341827485768777948288528149833741134512462065388837604129164267374299537913901426491606044764222425394121806945497874871561804370065648484291480972426091796750763125448250538888525514374021672094552630211723207260919365534920227135254226261133459954046684343453890267593196125596569754557571960455426467145931374660370545938378948752941662641209933562468612463384632730125482017920228757180941872761314518674041515337946557504146678949628802514816982381879150623437335123936201178165318062271829140131746310643427931636257973712484266375155603839463578371621164889937838878936973574676974327889806493498347779161302689238658132129442665415829285115619304639074600533779315135010159636488195219718479311507355108480678808715304178939131489600649383959396169743990604772669002016836427315530189708302041163551932025886136622253857230053491018736995422498446549648332440932426660002555587499270129051721834695394442711166793021978809358225865011492415752614011293635040277598762158948239156670996620467991331683092892054524447600711063574818531628826946910832460287232221741122240418836207102323435582574433057040080890817147193531800991315041363572206209678236559650319464964649450573520595724223694925107353893531545548142192562118057399392231326667435026562655526010308052468378422785250650510997002171309693934466520986482875810330192975544177442908204133360639769547689717014083488238565394806988528047315217794925503747561893453276827014417945024226168679063024619909878378969106333112456157836011953775211527072622871754834368464938004183873551518000730402086404313687123111322913906734542242509897456839646221376754341061448071524546193968549633142862087500737916838741962452139043888904307806935454846676986799513737080540083655688395541854420591512977569413223777648670295338462001798277250862019341898454867139859045105687964896454434980284162847014298220611414214718533050220837250765980836932257651140253168714860786797626365303050609150506605128737900658806405682496123325854834533989939575717699559597857962561479129736161431148881100232473879995868597328437096199456662752522040912493014777975650939611560267743651222975287571937092322375917914009264492127394986380216466329168793009076107252202388139899825590356346349419251440364666703722693780389115309703099765785888978156420657085438809892475833927722265297156166426370020455260160438977327837909927869565657207617683250793868333289130161146731109376916964191104188050160866477010170196671086758648319195979690793586997327954003646122238930477601896871344429997700358599301532291356315434997922844644470116554854472158061063418428465073676369477444988632244009683922998054723831295499482920296938653030761622935681772316446116633785089453734654221106453471740389428369345647102649676001017441121008425008337602260938888402397284307186783668395844709168735834919701667729815821776638128474345220213255430362890729463831436232676321704813444371998270915997839834240390938858128410562817016480189947286522836770772723638386309942841881545222425647538938010076808085600355634104888755266812818417897630225606483008362050756087855978554655745708759860284955998224809691023228029133065419375024589843494542561215551609561782368503219000007444168662119377309811764869882325093343181334816732674175468031816938634398524599205134127505419336719583728922216892644797219546874267630221407701012350613426601597511563080353635386423951390811195792698469202378264272020524038100913894651360166459353603477537057645958455496559510930452480565455548762534061630890862406687551584109406946767597226346656784823459603721725274450100443883475463806018725553876780691096490359454162993265368361862066197789122181109701571987732638726516290944793513314212197474667832764063237725284647731580238684359054657170466382233073768449122705378173734269832135021235187073020406009390484306587478438199431342774935194376931324989623579361133785727889455697267814625030497723154587532385156538353440274559430656054605652116407654631918367414957769578442931124350007282990318799663608222412187096490776836037012296785309239012444443456457104521726979291668688796301307905582486058430863719813843129542434804567986863732603846974072365899116388200602909224520132804275935656107914841998154440699127003125959357634119497094212328740074272359141320759362963800779783788565203764630081120435479502296366044855709331088736207260075151358421483466910439940784167176474230252209836081788473061256890426349008874729987658717448597396551786369276051293080826626259262912723646329132483756333352881967198976782316076832297080610935985860958961990680643628316553180758301307701827998677293937865821064633788788456690447348905982891663529466142091183129035493625695585204263549864907934196197642884699048690705671294740951825092176184398149872084375998022783737796677352727882867504280484898962266596819889232690865650019013662775373424408420469075329381124094072649141490834865062682038930232907677026081865315611189372400105921525022360615302064575113590228608146828680309331419254455287678614302219293103030275014708621217337542333702104354930150759780959912902429816076932976177466884843506598173512251839441063941156146557953019230623871378280812249924991329080011362057957666928184155702289346006021307220484444725305892206451981866373513212797570543020975349551388406789985462627122616530028380876099037851972389700011479119940178071020484807706821142449179857667665764538390708740597485788810242962129770508482880289323433130002883847256209550367022367465873241754230473522112142124880238588458356446482617466386977896739535197159263115423925152852098046574958870590203176837730481974088634336045634822514361275921002932918336671018143396654423488375516767042025695204524061463228228639445046789577784060795433582539134569973412550564639646736544646753894174078291492982121933863643973970150158327308760584880573741416926197023710834732475484246727895978095842454057884371332981977019926870655433705361841574204983359601513364041025593873307501088371225207511356491107683800673035460320130439532173650758599099863230214361226800730774251064647888088913178028172168111844401704363868709164794859212598747749687414785512132210313417838386808333648645023006224481842623026303301368781944858311546094083130100266642597034938987613379879956636001701500506864540501526870841049940837325334298610331009920450022915304793796361155189781407899294316478300954855704475789739850156990656604966553367697913602936507433354926140865318360916897857243821226934219900740662163802083384213207825933868962093574240706372686642690443901911093371574099973559769304213730623909774898503356033271263695120092386811691383136023420989725027396073524782190272632845707056065414032376331810572601089765304425821168635553790721907841409247437614208647986987807711512899285089766972793514518109843521657371314287501712643584862814991048162886461686686688928501212500064889557403882927752907547784838440447770965174286059577270296907814104994783127391661136056756272882869227848111265853657542575811112586891336587782023979719136399195649196561667669568293855125730778199362351925058917453150406414047894465763133549370189105570980589736317472404830783663869052260389673807709974688513177417122283683567277738527722889346330344823797044320152531529014305700505581636197193981333610295910940699711531113337076100185506588253871796343770144723926437165334276204232108829306110936883547550096555453031035236098288735527000038032026232996493953032226278653925617254553851887014013227810558982053222896321913045804379146783682168866555980493211147406735930651119152997340861917255099144500703788929829721831531533491327417555471529833057498368572837844463084601867927775395204316379985675140381219930511467589212101864931440981731145108789605688078910601245253392641658692620812418586700470846414329883272635272615206613647175457409685122280222435160987081265410868495729916696072402243909520834970528955525847321547766232765937229067118592811913102075382519610197871170830582506081790928037310718500665620499179546992654218600336437219932335474014237728248469768008532017458179474039205809125040515591763241831862402155971151872243698222910809586397275903947731645038895494893733909479696355980700960905514466457789627179458799891364008284689250630306896613483407749848226814885917845381888776846672513741928276989712380773279732615938269098936745574166180092426689877132603800589575991489429547761533903342987595160482749767327206518259098928925519295035630383947506998448086443603691090632330370273391000523154018907526960832676923870008870615977560740682600221149312885340204439959874758891664934457148375414118916228708891344907606070226082028046259004927805319407633086693174158261631044136888965421574782327066615165542679819446051696090129613870189281383819452573154542460942722081608826822389392819378517671931275862416651333168086155875398221576180347484630400825125003872720272525029893709847491086862186854197665199481060652905915224964923203770717975283388939572319115965817816086095006576271388990197707307994703315673294967821572492765264604731837091762632452826145419327838104115731922400663293480410374216202183427510954524507717291525392689474861167335829995570072984207069623755822497600331424622568689120695108628571841684494665725786352101901642108571158375077004637963641403591281594357368344166136101950332075553342258676528935999064713420488911034702923886984569684852304245677964661383278789289480694036165048008070861510947398166486143133631246577963883625705000653688768950124026467193467864500407711284006546634487253999291310989121263186960474734908245388797358269969715365744729770990951874514022363628311400364057114746535467293515747601999758974129827277696671143656697222830004190055288200917244799948160768282050568221194257376527482063959954603661166209620409522095219454952068863598143929785305620624794880770387817762909332888557813081071196385058131839785954415210373977812207163296369489292103064714807540913041677873340149824209795567872456295011194892984658033873126648250623924796700623981877932016952597236357064394293612491557447697769970788935775563719757270960766698836233369800968501367984508238478867764109553196227081932380788809826591164749046246840623599147161587873238876232947607752751605788576056151981137046837494579568574068534912516893781408051495780276522203228171950629545152954692061981956558375735691822183903625704993929126011565991181405032335245065674117246668347039195246493693462222460630280537425715583052767658267361828715345094363280973647833856350547172200863660718119587843645679192316911033617710657176125289898708718436923965566357343357013284270378741865675774946380354449828596239147057837278480205500396024378032445311842253195180855703431553956419920818099033691032622028504950141397667353811733036439221378155684839703182374607366701423807853053556118731209307883114424696294367937347847088715216017211425350289641329576778485777030985063726354816081173185149883492753407346406100994878467424079370439625083770664954853287220816245420696378880323215851835376772549959732556632068357260651647507168036514485216960325997023859065666334785543704764060819237561905252133885877291853454822745989676918108466686825582671731465688528816540021551438751632188697818511530665657986704964778602798365186195569807118120039285193156359226228951857678322761311340017683168408248588619653920134262849541066717474880694157271730446288415443742029975320165890467027601666968332622765077000678887517586757316774712661482461498255209806516808105175135071850420974356248309735747424529979534557476606201813989050561552594082232662470312370551347111893014252277771244982059268040855934814766365476632327028771329290634058515806538777753684645254067020696899988273086476301289376715142825668835561024602859183371576825954856601382636078066106032900261444278763318795699410646183216675079008952240587591700007266616118080593360022360708641480429596764937908808723906969437265014608052557268443881472680570276897836282003423672520846910893404242855953050664848644274435902132709483223621113214928095862566012683560251307145488019586607183671660625161477803067071721655046195900406537218667178054846870375020006467147840999371823048635058645403919649972375219655775861039198553619884462429057975576394868887381567351756784875990925865164583098097859193603426507759929005369916198481286784186370036409738364065659758348774987227379444957336765426987019448496587015690637315501970634312517173106985333024317662473285395330276017170961780435433175654525459931226541171398164225649923438664161541106214487922053382490884054740005450783812385898307765090359179345520316454435302542504932398951565830180228503405027851428411750674548055668782299751255494222046866439677222363285267392455988873463760460436267651612062128165853245676024581714197758939569101187673004349233929061285149477995240484122100595635049515418924842078800882109195618985048601365646512141118270857605725798450850860513209376747500561829719968244546132023400686350418250887465648744307744089659014018697834249307562247365848801495326397646459183353908273889655450464077614844976337536455277401968069897509080183441698453070105154100868273951609991386000764030758242677841856194897976505082255364138356336348388981754545174357406792869271014179017036595785717389621554361772383032530267015483867181309512276559425672070646771573802075289005380141718994711816390503218797918412678833508324169887464234077257823346639000216554300825819670116996793859781838955519120881335887458015538453725566471974642844771866261624554654610119597119799709994731493213872356600799752711732118643592501528215173899950729053506530246738860910982075175265365336323407754549418730058240760970763430041104918379699935908273333523325564610100177817951121680749856915556795168510457981608181561013297898789857134450802434548116655711147783602816841049140343091332990782502697786102949294732688557478373517826746603454052159367780698669934356144199359286216598871565243742056884005168760888520382970917036161462948810085325715406731015416042607688038658209460627536214644206299749710499644361408121053341563158357993643402861657844412251923224445924939122825790278601376622268396090412569200117997884099399454201385337402237443769604281197358468891213752364627760433155091118586431764917536260754742355798587975095086877327173108111634100909411515307934788911570675437185365148655640762892276233312875323525570603818802821420333880510106782972622374478680135640436353544965019491909791307878211787679830329834868877685821447364147239232424615621883069024172348777789629752908544202417174517867315726493200608242679296360507887878228999517661593815870835234381105116723910164263454529727216832619135802573515958434083761440061055213888343674358116824357677010409579593510903067929302700908589378201087422252625378901128728770691904004791347299634209048441879007793470361825760218747973874405703673083067870277436029489768495839927520697047807606252867665742972243253802333729317207386343150578780329667507437246947625127920450692628431197055064446825964415104609237599946074488436351424190308286518592288033180671694809442842936432678374967174398111238055742247199283960922014491498333888184701563001498803239076804098019553178333144654626099562454028319319924848626742872565822530665210532264837603898871468159082517257298044378626614579694301885533651937565094366185049336138513726284475636691918997930423409773767713399834967621067390438624492546743425155602815555263260379265577886913839146975803426848189418098460776654913705588703739718492556276621712745673107424339400392197244284069040551313797690212217764432091880535478755068056466344528738956248017679994942649129270197404426650674451340048077697804782863444300805388838362776775646751166104001572487522121322485030953596783536245231931097659956473829121238113953403484763597085127065936960580384210220642245758481496026575051236408402738506061704032083108004456998535545412680324696495924916080849222997177720462374321184857880224919266608143616581898483833972230116215272288260835303435585830726286732457062601058856665162589619524417528356633090793992938070196202451674883642849064375310951432198014775669162245688315733671596407338098975827432580976612866849599435886497893552127978944329873882216823337731818760608162348956580422663806866742890043055191005186931103333992561941292567644590828485513930823096832160840705124867519351962952735441453147336090372908599619386708669902609413548623131792022990470810757516369182981199850388204369829693915461486025202000606252334411114571507691577504163420686299340861149857433336982594528213111522308831045882528659269177794042716699590917151778451582146049399542234025951275444320460659000520712867987538417245327536400033209887799645495981248127919150112019919295344510624504784236053935929152098413512248445711334616017357013904257963584322099689138943264474439101904601847196518702256346156779013756818658642544649271060424391352092504955420171925912875887894881350752980223255279171153084846291201182731598824179969414684438370418413605977871637202064650656055515059475910380271326811597077546054333260057446548872307625004744893138641684318870083720987829873960436987981615082823741696684620071082673537961529193813723255172198076833835242933455301606974923819622882195786615164940632931141003871299878836994623044120622257452148936276982452211047170586878104419092374793217598815027326252449119372809257317870179840426730767547588480082065247032574892182376073870049344313175648128546682642586012748554310254049151264924443406824414154495419117998999716781547016459463884142054575826142465885268892432330162020783916775362681602602314343764731439991957098101813079683377456694839493544110670705252409870390664490195441971666201159287239440978260703063363275258491418486771714363874501471710276544456577214733076336217887661477054211131389335784686863363040178873075921110988334884798126775943526952536153967639202020723027701860350045640897602528003470096369208425314953309796019060766005594575018246000542316934867027097859562865248214291102241460229944060227785406931373317241883443757621641359074486046542478551809844873703472737505848254150343102377343651887118361451917295317328906536741872500565731431764817403358572717320332919904311981862988507719961535013035303297309936443077077989657537779624665188157778598870432161942923641350330438070077255107984400438526259127230217638861157444932671440400689827800677139405773849539756330255325754923651347035316799622850759618515765439115222789143459947471961009752658326254187194956223666288362171604682289545926862150815301586069432034391825126174495232385871474433985902836039128884473584539215933945944065369733107840000420062282003148689543625282762224547108456751615793850071607366958186872152548895912161148378490937664391146017353652587718785651928272354628939186995665587317765738500364378779212883288198030076750050115160717393577710982509738884374368543658617683449241178341476320343545280062313921231596936711534019589491684049065201107103601230513060029113198702051864614901843782047761345476853369461829083234605687190692247277065168822601664300130635773567004598529168996540638753550778111859035331975576210257647028520755011922904892832183235627310780385214493084436892473601834113480311855912534427505130251608520017139474242996323261434978816544545809281129947976997913388440290905966761202958330451070439401622677853155444440575867343162337302139648706912716634264128616216876129239090957314258104946821609043434139830577799842105788568942776230190393776679670634186846099239264709800312852100149542578035641427888406670696923982438078229516490598362511874311682187432437442771550114618350873344415581264108282809720889406108687423904534667745099675330865754683808339746741285030514885277305025736025553869609182319414980449616883900144707371573638431108566576466399738253880194658367728520587537438380122967806724922534548890084289007837463599690763637471331966214015678000832679958173977248883994112321986456201295150903053008819753457869434678474942274271081132294810931725303464916990988925848293879834646968224459180479974445202674289256958178787210120664124250655051363538651973538963657785658534508157168525581607335844279857116819709113521690460013295231648005024328891503135621291862199244768884982554088794587581237944203360159087336556324543433206402296805641422825398100721697185280858163154957024788589512690128029106333456628303343271609141269424745975416570061105161948752800691246320516381992661590681073460048229957317158141424513269227805749408401643781350175299333694699020878689984293853303273479684375206997887624437296430047600267655469496145878701267372279458991917450154786323353051673544448407894935510901352813682551753249322247267249192770203110064247549688235301804707534966734460922261041055306345641487499721581591705284131414631935230207208897569479040623481334816918367534461087599266070787381548008565631715281202495203994322562042332402083873337261653959993780041310355881605538405185344079151329629682634494257290047519529931073918627526477185510542860157219806878497763869005680995492776990889760183480356024830618798479124056092075731277022917927754513137625905746740300721837861523939789613009767915854385992834007197749528909270348400766604996352934417424035570536085859990496145253895080862177946368175148689965282965056243638124193526949307622507702085231323364643041647238408320963545593620105608806594099371869045134374709086550983639687655608723444416606339617668860664486701297725984672380936484782211134179515097445034994982607959814807186266815518204298625215050444488261230626750056712462984403563801477072083196224735549945212460515316835218031866853169686225495486687886835009952445405878461842252696642055446585460913898742811972499321034807991617981634088854012551639066346460227841523716171873223818951469598509716793289901676063166525167087092408497626300637288788222833964168281374789263713430094212183499827803643619873125073215969640095115496265346788924223368731739219772555845395905597060845424400460088361394352709900211226628164906418349941008716871724042906579894593722112878944420164750465562940586461441093059737302489277274761633832486697675044007012583371220198057531179611772745443619069957940425851448797171080671655960357282437495989762910742373737686404377873685630421762672667196957696648905422952437506627052763666027279749257917331227360124656123037255586597342488278159745076879176343070490135239924588955010306754109651229447365129342238676747771760121597001620068832051377852486769287549744272287584373797093392691033715242321334524169742133399098796645845923998906644737715794444972679786626751961722264048781487785255856231806275682213268936496958411589263252832067927921541602221000360597247318519118797161105401179513296515882144705810435187226452885432332408244584403879772040503605745770302491415364231775660900022184286917078845276435837216481029260120074651715233381811455754182308787742614701107146478184858171250249429069057476419930420803101261803846854922413693226687858257354556427501018824480907616497572815520190087560060205299792514582925244535962080186676055470382163831330791541708167762109387075918747226526042139005434769658585553271110254311088672685761111066407128108629387083065951370782435406639166292656792642296494289675879253584996597373154151588881616749455488007697702051882319613989122579266279072532747962251726613942405067080296424920077730553652252924873299183518746067769782930562379155631274615494013935279388096591421310182517016693991535464210856086584528103150665048052518961617662036841329826350450533876506337214111475737887527091351769501017276243208280469056243030518510056606138065638677635508936140654765746714187543654077108625694644618205429807868854143241925102285926830902840853837191053412951457406747311113030601371640692079942872776370215673139267159915060104721485163533303989947060698828935950573005777701527182704818526657903184070261015222086752147344787600092459747069169066124739089653049298547694141181777321280140018182831109527297382466386788501824187491379901668087809979238515824581146411217549975957053214057232621658730983987886514930009005995072719596415644323157149780492958716117530834706402930512708569755739164856101417843677756766674821149287922134015799467714525644446491031314993315024671752237351627013798440031537756894010654341790881564575492798007136391668839203684831225547106389394258860424151691849835344874153278818648051523514456815951118934114362791105637688280788014578916609626785705512169178464002144240561498925107082148506876163113133116549265310385185766542366823053598120406181636463932329123384779035162093090602963737767851623173567265831565702767492072118972851053622952757904254745546765788903578339772323369486563445561096211170675328055563203870419447888980422298801108245609348227255484010753789236084902463421597201044033789406167202865356699693097903796784325461333772138936158224937103773204483931028706990645115890580458533222070560910495265200583021184581744520067302067027665467237167961030880142355229112636163039839808385214571012419875848200153472233173790526613004018311317474512217812754958532923005464624426714186191496201164113795767742464427363018154233537641473586776167787962620223357255396713781638349796131968457650778920059368841330527596955721777240424237548983069277954909516202294763498117074790705861343563247738118080922956304278604681868909852356342106249377017125226610032899660171075989233377673786189572694172930769699574961741585125525033670265528189646017740688211438824480018691953449236867846119415170913579119517450066947580320683257340288725572621452029629046946702428536042403375149908085609502180896157650673352304523134817987331858023209976339400527084211024816494395005386989610710503222171230081280083828039214496037254172274944436059412285015368852617690176562540509837233324962390690952852182148500287412020904977158319711801568888523602567827563556478745232262745080607319078333741115178777820428948860115318706103712804931467713910769318044229413598020988749892872032186748948960493977825768941075647449163711893894357595609950054574078078741905109128601587314503614765469271364601918859324689033008869235818248807215319021253962805934761260417244122338720107203499431521214891864036759493985915015555309177071476158585279194390332019536569753395841278975527440658464012228697040275322558833858302340027892107734888031113537171982937607315698819389235507099171982683658525845494911915054918811104588268102307465108204822059713943985876964106055873308077993484585020931016089649786755846049799101645359409305799616455768527100862898507062003448443760719984923485139778296966441187406070962992572847342765295494314985978791702179848236177276688327414403005136263798724314573067860535306353259804897790222579604741342929660918788719379074474467161742226313040243568034284772424945928313228236897190142877400658787165778964280731071929550047483844779831357891895092082577403948049334511769119976359628182591025501363551949007351258068694955937820057609338789613199161031386845130569031611201104988224459267879409614104054141939365266791585572177494942100955978218776007251127235480312145989303382392292959504255472621381827653112246026079779495661040206344897537676200426607329437831723812981842720292325141391265259975639624870699599446974294105260690581664363651381164374375893318321470781174616805553787712502377464047059849240411408576507395873863186599594124077973917741605332044367498907212345727387430437631450666975063537736186413687931949950279676100441478323077955738057383397434174012679551474105838920268652125690578288698519723746572771799632501301066266432162657843807643202901693773699583628525454962379334043182005640794999987477933895673507678785038153718676451994782644533107856460416016687474821059063901649619970017337096008473489142717480189997501408915654933382368945245983364598829365800458757774497038367340261271956257428710761707286933593896387536723313486107122337956307556062316928960330551479205281645137688854599303201126786915007734735607558026575085794032072558936588712385691148044005400929767370320971640176026467093111210665797118063736313528883441522360148128929190886508928993234475578683639734697051429943570508714906588234055162698247825000963106601170987993984430027959463371166535425105590672484190950484889856725849141523663907039176985519716674100574148811766365187591232412047547033838956838489053756193717962067267227465037715041685894689982142722477835675173916877547293406068000039967707442382228989195065459019834416204073486844433564298978641286710683414816423976379710809485869851783353776160435232079102756028830143496370466397076041023558719332130920314147091205766643535260291065398350402440632558520905405445572784465831996256263696552500365645444170705025705299531060614344336017450224033809609635235424035702419822751433258040825986335147076978030866714499987138672497112020027499364608989632383526265265233419709463920906950706384217234858043547467065471989324916659556396381032674084344508798898362180968032085859166926763808653074032952089592792208445358362611454530840487834983301120979149689487846569866564609308306944340637815094906251346234361410133779722042497659654968755631593368129000062986088472839551694978435241958195078265750431845745246519932869680609359716904506120419598112686864282925927946057928594090659551728732689032956129001206323282113426238157819400959199142210324465038226513078711877863857984411241337372626026665935347627060618793423147757300874261063843281128907367018753650948266719464687529771769024223790269258708506364164630198770516233404296717259737755498849290867577221695170815877769869701105681580957409558992275728816131601581296732863332828975198922547203348435409870806862266270398128100001338857630084149190421678068660025951257383365645959559039163745965336899207742890017704705414409045992100735199853020621510979895317892076388092135464257455311046987163139054416648348276770297368153804851679003372262402112504771977585931810037956746013720305658937342998163701505153504013478429650975731196731282025796644334589641922837287148037139821253581003377377264790857563864044592372471885275184517402593163607610628765463952510757273786989384073656820078507938894486199502652187512978181390784279497235536299952209126431849834025375903848940329624088575738500568504828885696164306294042925910718579833883546212405561141784800695735956850019337933249641940832761066228869940781689318249011336856458059182291511929457264102996435096935856285392618914960461563151839219570869684724929731154726994967730980060949612874311884570468394894169501190117075776830577212103761128534592884149634751447335768366707847208020467863638364110370531086388533693795694245562239369828479546172898190183728141831028523867450484379389157673053722848984245199354030407412943517487347173443543746468448128706541182898968117352929233187813169610847510690300852557139326724261396683346394892307228597433860479038418742262626305109412315115957674334393277406991318417630624764865742132123580940712859402002810046792539606701985138908788359933909545528126821861441194888502479047913719403306647972186694790547676278205981561875308267439371923742358993976410134332321754587136517280706380147363069199680739041436764133663216014189824931956612261254778961475474565439772272997854073243270881732001955855228723546290600681021522210920418646934201280811317332085580317959983970828955579163065452269893748045587299251079996801579861155114655998779896714563675076058205003317788453475511338537436903683540794138662515570568501281285995467690299739177318353743486528721554227210265474469172275186085772295029469317343557069275682512425567994562149958833284450115762858588458426117023948825047055818276947196072694839147459799930354224257643502481955519182186720362029769103510830042623074810451395061107708265308622074293580779903048177766146744349560907848900990064484660304631046535993493584043401785392769901390121371163053331973341962228536357100624177725649545716593183243592196244941295617264458579261022727052728832587564305551359993216555808271670585504560882136523740490561311772630140544756275794485456577338859344401892015108234352516625574854520132004428974021207444858881485062605026481825334711132657395142020993691256590191438708261884020608769069050847828678244653371343364210545861658603295195655083409446279572934192472072256664709201919109499674106291555233072725740578641009112225620282446485406046379460948270388482545232519211943221120299921090567053320464373352841018632834297462283599634012489888757171032528167462524876416548387133825986812463798231600223050554240612748813349339142806243218006012523881993237012651872189408269405666089830882946516358318516691015223502414172318734750417420776903825814294520444450513816057199404758112800804818864525599169974314110670876705891616806321659871888800751502278462768203046238010046062888862872129577815659804717850335950095936174242422659129094911499783705167680336516217949073106318477040749993689839898718958761955768422856095224257838656557483347820969322546052248918996314426619818453671080678976698854693750762086308602214869974653009998656963879319077740067370789000228780119751429432671512327996306343628451959098955257281821847625375194067171646391833344542857465219887199724013424893207572953527154015706821741252179108039553868638027365811728359215585657161452714233887205807541468175153872415364946261260006048295492843756704453536445219857880844922212553547073565260233727579904703647010871328733655230744589234283136012634817332753046758626629067862660226666818019468600060356388139451413798833655307532355600879988020759970385230866107500826202459742955567056028348971031914616602580215409058854465898524748601348864393638095424347017904018964464176280562283539184925141105150052455393181297295704630524703206685693773865624248584172999348267282208676422946825347027960905359329810242501024086149408882810180050913874815270690032534217903339999316824473319314250069636845281792085800114227779187350454281932601421323979027257336443463671724702169338803001276389163444275436830780426508838324605227179313813881788348758584621403082146189012489056918756608546319718609017512742425866307551010129641546093898210074090655352565740509219015274482805132131810186370483579053755178885440975891522791763484658225047811993869284118080256649977994065751251580133181722068025407525743014960566727525358892307461569698132243545725098980605167406057942157447633333073868852843880868981823122807598181453431674281763844337070859072174852173297422213281948831868753654159096837120732418696098971527752648492407488889883294691865219862487030003415154831999437255238802671926390824917218261336184532675230455478751459299075033537702290333709308268585346935319407021882907202154964060800630660691523028210492574540524676725715147821194043646143578059441521102619980318050251587469235587588289905055235125510066384035153946456371921345762667251738322026266520772738177426258809302240256223202132218109376941246930159257244002529233244310805668725575364955950849220226289406039731387662882453829935736049487416014926787641569462956460843366653180510015836278128654999349999271318738074804657998621868466310381128664052344986678329069624642317568050455093235962250607188583382277817791876317648121019664675884197152807091772144250155299745689893213990749414504770088920164925374105175164762707499853905790769361043005496502178430920444074119094739112035607665765257845841214489232414895661678283346253000671244852223368198439968317433029469649586622081858510200259302856621981718427184006448052612202332171118479344537812929010595819287055227223052714616445868849809164071847799900716829170539351752203710146661704340501576529154135588638996105155301187339798879043274094235720909133685096807206709437174091406626015524836179396352428085690313112256330064414084867365129633794026787379533343167851022934759754190991179232919247755967968304678469101292295341173756411406047507585329804938727081329693792887940512882688465643084417539665639968757627022533040115627024642729755287344716661655036837910383338539288685107453241567688310441159953911367017273683867371332068561360369135528926238625286324952476343231992764070368138294815300817829177822312919825301767404940539762263066411337275793926030858964851122273150923242387741706124526711475762425362876112382935923374716361356539495499715337440728636614786707295390428527544889699058017646790404293825069083651378323102537560561386716703712494919833881419198198947960051932554296660162191718940717167863509173716653672969263926786264774790293303591843038068575944687348260650766532907908344768186341259240688720221599579083417576684450533486305433525942695341323091168643895774189924288350821231153616127073955136578661079244255471131836466361003857487159838899438965611210404542985923112453793860932554982485287335759781740732336225204899042950786205435381537522018040019154528056762948451455727429209768871908012416326073851726872498057553362813807814897108185032859611875205446898649733840475108243966285208720385177482397954473879692180109440270254247418049876384508724520730925673740625632868955309640852206509921203523835524764578127822137404134448156982248633513568139367761312898504154629065628955981550673188311802229825243191907040652937717064714045225974991084076500858983230400738067626014082565732167996979309526056497579229055820536976585369149442694894664248285229697404462665332821122986856965641419621506735781244602645388290381545874881167651656458762221009983817343715828291147212377443716237388189607999387204382463259024453401741333578783992639063008566847411319220483569264475609409280069239258165497103231422310902726602340536769397735366705399203565818295516576356783659185769633962786032307863744192050642127305081226258973972691942564682119645075596374081994855396211013663967441649410207243551864213254794476133568134154241969886071144524293535394055409568148871706412192075022078232851110613587581826649592171280831110918377477877218431880381456987701857248240219305626403318905663536343835866584556902268172075548287968247408704342197948434816866030220790702919377504268922955089837379484084510958829662220811873694466604689276890640668174999357977210410996534296108293526137219783146350555840490495621755462720354457133333763418766488960813237067589865582664080025474155346348124884435784258849665081358874642382067572367813095756384328623374339749532840403161665765929779571297839724111093185887061833221097831140545756067671379527319534591176643987631810717604113390957776403858144495542854393563090579813812991277725790247068152074396343168805485733496942206151326888600572532356766038869985409991117122397415957257507030870171341038023005653167215169535544713415342423951689124098661073335241293360767372953728352868474579740954823844937287967950672935769182411727492021036588705075128234634578517683881223576090351579451645598613822884018645166613494035502796595073754046780833514547325854688942876840529571134265483399484739223415251024556865070186713611868013233968610585317139193428860176478551498669324157230297216971446714166622583373200401569376215072349411359258931789293388571420142351966671221648274303838979323226648314404870793651413639438224795855872488969190514278795814808537227145175272595037119445641298837214729002101275542981511461569549371384004465012676911475096636766903491944033191508972749367920494202934525568814175520268479750255005199585575263188370144680927663071906024584975578505019996756682707939646290582130125703650835397275830584255102130246601174839763453409695838031207884374064609363150787208432552357277258948359675606571611348341766247642160092104663987260736447877900853451416773205745600701963938322798710500105429134907624262252757374257913018299891105303707983997809891444772034868720971203421813350677557729260906052982008106824548084233209507302825737831351230638754179581596290607342911224680449873605754307270502454660893790215027798769844817034166949154918138897878954362123320837076457517707356962631648085123655326530102713306255985991658629752920150724443274791460166617398548592223606121219012145171171314606445085422477297929558821293671418002262556545955992921843941608840976767696992816283281737416995176903184970345620274895466100892018710289438151991953693244627757632933115443650513316723646589609282213706831612886965251904559462052120739796326048960546923052646796073888907645717417084346598907676984133966459459818369770372119344327396956595631827994072414314895435789532298149140681453822029604202803666527510371416406504750687570170294789559820856172384730158830191286099318597988695236743086061851310357988586950366256960408868202451128040720053469682820287693964685173239673676142800243941037378605882305736494350637231299852659707030358696460656778834472571043815707432208882150758865360157229801450948819482802957173767022020829600063171822205964908840039370484962647597384122318576891764687888323928804688980362263435319846142425944941869254498704029324955838592329074813502155810482790770540570206627852478752600185708844089527400176871509904365619896843886996061459949155908002207108208894045281406133677303947211867996929247406293566890082974878881695205610918988662411470333901656835287576254277189725901124062937423336276895452492332824145092593837048739631499673697072613136206191660704530660238348258907037734541624566019197501013993964853978504140449006950859539702407885510890390674682684899089563098405047929180221299410952196634394561395883536478126925415955854376433558753055009354998205188079495912310355191283764090004223271901551486417460820026111621294114440886911044277034958357545297780957844573108107693343835551302125140831218553236670808167832156073155863060211798462930168143618716459958626344619757539355615752377718007819964736098421486251370611985203143740893923088601982823466536599373537308906145046745027042391605353197084223778633535640328856235534856651387362490075683594671064019840843088095668968111413467634301563858685873081389414869644122558929863192589772855940840707378279905361417899231597221352696985745674162632385124472699230268899297233265481353238125759654313106091841600744013979427538017619826455984914476643081474255975553591155173517322016249058632931185835349899943219918966614659749947965388921718254500042247052104998205791636653345589895900967454085310487163734659563842179989454870468081242577598708329286287517155406257414442275849185034256424717569408144613202398657432336589638594040023707226865581017578643123120219156753117235353521161274637458332894696021671259301362320130024871720672870784322344373630245912135856527256702684954592137274526810104176655556596536258317070946275612730511290622752313655525111674980072261434207514490171688265220715745858578426558010516147617139680315658426198344990820778416934215353106153149565892974215045662545407336952005806538463175044401016517664969727511735582679967345239084267940872485566836421177114776362967594835806475433354283856158525717420122260948152985664054002061706008997503626400921984878980256478986831260227538249063506128647294150803340950913260363230900109792999131918459053859171874570753590387535868271969456246933390093145768899652801947759519991277513042283836770196724281324444112381201947328089139664280607105303578184338872152056240838869397344793575222224186975213304478941896051942532377460457584947843615908968025585385172973883341949333421267740385663602973138300731613879604185533922144165790753948057255229849888542045478155776883200423960803509315013993254884267397524671155043361369796029502363249934826894911386206777704011642018979445901956616032889241514272379150297511994482809572303881198178002778994283734683244622429532471920132369692616363492977606451427624545589211538396329503487395821337218430737099162061712592462829486933491395536830553054044578351129520709154493142730686792027381590005657265664798840551894369571618484342628439125884438881406441909116013075147073067259082198478814698127790571567043737074307034668483479945538041930409153550716411731923335810572012749554130637854349225194797491067485566455582650925564067048778339530190342460963352378734357075132098594536976273594008756550802683297980778457797437276230567788789223294689252962466024822303456598920989015933349061211226343682086941667585711767007627303119167314627114376829755664506149770347526497465894574871636850648000005262774560018779285733792008503503547038314412644694591323494364325591168395057952493515250858601345254571735116976639494749743420932850953766138018897885882409333168769786710035049215162937082629833987889265367369119444286880171694725679256972566494458096103550398047610062385059216937425980930199652149061756702813258044682539153657720137500279817787150868480131170703370079469111963317010304960537396844749541741410469043916838911349915595421634975257939499064981467320382563086956614083370684591964634954377713334913676847070295011035474980044532591694720618646485229313150281615525987674204443996386486348846242890611607222763281265668786434462207584108211508445928676896342523779198069785993428119160178051279855008657264017436505235866955021693036854555428617358881658266537955687389767750696218433582774825181847093188384274427742839198714336415496198451321745768985414590911746839816428726820169508833220714893213079352990661070953797056453713104149298640917854553363623793162148491575184737788807019320044223396591865039786781959425820227190926719586699167493893040934594376488011126850812089941071388449627705227293333608470581644172624131817790039133262741053749345518028100620701072543890382978024660519570507808745099007059799578618557898255518636450967153421568894404234986382424080914675768498462558543419339626573325588967156461176406449615836083911384790182949238967032532327780433613666867718243030580820478172717233300950655575260328430307739410924397303462265894387675993898808222423700347903506962773248957595396818108522742971479000060935696652708921830089206349734808197097784893719973363477623729555700512067905218169230736266670176401021921394495936450543869678398288707461613822659653658267559533340957459226027212839144842008998598789135085049324494704024439895080553404527281921565038082952533945177642751353580838949447264975895381779236850760373943055953945616901220928252431748481896073749835148698136689346226887167180393466128687105254600749563075063794289526027251575522155677773279307361106472851668214974565736965796981489656061014382783309395245502053858995289595719102405807920715061356578468207670802279308606343974243074370391415287210282385649131896180330001840763789039573208355912986338967756453712834886118837234455027636036275718797679922847380465483644470629472140832584537302807311465362999179251616184639254308455725238091507355465521109408552835613135575748491923620034277498201232389093752105931217914821897648348242977977033120320440932581946698287988719564169670123592769379170462908346747542557536063408850377974158413412358443233726392850630238859718870336680005524192040206599400504608448567156698465174086138521623258260489066442967387706506621879477135016752533392195862239094908620264214600747992091260909276197769239129662192256751708911634925173391024869820778685977940192671142817617194079510594681668930176694334791561164142827330292313889318349133112031132883426839812956559081884225119318457067115024049719892609262865147561318764154339758410669745272243006571354633211215017857411412834540991340062347490971190792283430210861114714908355059374827924327342761074628399405655384617896330214704333114988590525958033557442278932566940631261480423334535886693383762765165819494433590632535264451720255992493483454977512621354249560850514357623021028543135748418376197046124267578416369045809287053317131304914852285019713448782492958518290816996999129743562097132481172902479566154911073374483203663629116436599872756454126322449919626797879986973419310688699881527098072071440656139081272679552786397478535697027653159551566164097595061567088864112903292041705092824539385090306011140502564415736985934537503356460219360473175022143080121886304109488930247029976696205480265823823114509694742927556280327884815000758527668178793878065327767496397503717493886464666211664097839221960260197955912282753850174605782039115502549575466664885481483352270707709806124347012920479011635826405591575620821967740448728635942258558274400015659511037297852163303108583403355629714288532630305751998029767193070898262987487826854424279574860662438078186901921083065323322639283145217260330159628556793613568905967338222505895761731821716406697610493964683807708631302609127573856434520765058333509004006191756483199816689028790184846833831260068533643406080962244780774534350543628044398643044025008277242590350629969056857811184086961740459272094857872617078544199295812931910937207234867082545279870131175614504941701973559142740025080849688578789886800113507010273930611722206696872342885244734331886379253340698064090013521902655739707778441219349765775884407498675815343138235582506335018754217564597026314332464205707125842832550205324619082116848855300442593136844813314468243350837985223419197203757269431690992183809995658658615285785880062892165371684279804102416521973285673912124443420920095329813499526064779859530601295990354564350764712222278227470383347462744421177956179827103467491016388598594438256737907480538234717725120696443527954174611269639571751125037103581739227848110366015772430208134784341464609243661016561012225731330588024036838781619522190752424344555826076366275529257392623374886261666384658950246953639458855683828301696958557567404078955351246276880735997132253831607756581815647040055500055366433349465265712245436114666305234184104581718615138985763822378259347831437978307347475072015668267426401609306119697646774876144377414881521652985279714566419747877907987210025708522106956329793648155728716928858794612329785171447986795802664249635561499103601997162547195385852136931462175664846319813816696882172331140573150413655202780900513797502396308100063743987198516510250759425820241898677453459047902580036318135543549231113225083903363166119770869238925015901556052408935250996761134321173514402943529623368954287347095567471604746702146673855117790314125797914592648311001500429606505678624146319039643746356072991485611795569784730417530179641168965412093694825702487010519286124980951370165934785338666816966045109427502320068327208988181101987397871669969558019560610315818233067790296753921020906481440794573618380044106910985437011287040116268763328999450448370595112095578691652984332032447547263679542487468258037490446200556072608861202114763745423376778986319706391091544051943223692678102222035551797512727166588676626954431864683669997836446625593142439951026177986814545082507173495450551665059146742586566806577728562302130367693424190169257232389092385125378229237875320191210564067361911229774553140155304749618798523424441936910601627330898487310839564406375135790377541141734309298075408091393060424757274186484948431209849324333886351363435432995405729176762727405265761130975571530214929314774378320349844530783682132585094217673389239769677192306551111488210369870782552957586334402074304565392280387140136989866407561105013866579623432907242625586392741670402611748325637916043617941362560769191720166875922858273803289120468305037307880122449536205454068897052680494868411695134458184346864129847006032749907651988672760783835702248843209802113962713857579158756637546230867823454415230047850728313927951014764483069546354708888091850294151043662672256109948078874961186344660685376357826917269037879485734683410684384726257609863646723462181849091205047138115784380651266884211107044809832729444807651614087563962158579189154629014915096121867977310388794014699092423593954174596449991601034912251426941377479096051617737448324068310592023646547066418473812382276477452663059490186871090880797591579631694949970707370137020195538061860127350133723334623893397568500499232046676144936260260699339869269291849140178138081988425031606302678178977117954447039378917571996265525580356333177133992710602181664408594130612636408111141052875650218175678343150273444926902706470964147159661275061720282425037049085306364720760432132874211522375484819977166635526819806879218380920658067872801674918459076133143001454140693271436439923343561033807623252826557912504414164506648346971819068694627417093831325312425551932523442313044936153813974736465215185779210803217734985438591338271690870241504338691677597444672725668823335606614606483968392665412967630662577457131873732992454751426299367575031513198114663874068131531485988867398087379318648898141556076906162719372448535050783914865055324708058670009755423650157226306180911657942199037827142975639439127351506379331418956034634444385812166769878223140122230441388728662435149399321678018239760564448793461098006970634024740239910997328361563152400930762539345459456019313887189481615041211100444387509251813801602583964294967536095348505609224618509693179657969342631929124082714607886008028474111300269194507300150029958937484226900840003819574990118407163489256657729430798549571264907438522491470338239151134978390504889645281444181926565291341822289209809037925900060154717522551247524771981406650077558653665670377212230169671380680866576986711140402283052179411056874699975599593073039314271123543557010386953082888745319309001319826123044640280360262920445546982355775684155630283752889714626739623800102012081669113820054487619888316871815127506521227338933584719254650455429350020553247569485315545229560375382874499932921266158999120990147377863954127563486865879086361986633323448923293852325426880424511085506835328205358462066647097913279436069397690540852832795491841027829905763635568320815698488352550338377571145365883139269502120391931022472835855780587374585245840862327172151101645753939084898847040176731390533622119360589900616713159734457898383548782009075562196448692731633371076814241552489193156071705101920726738215429906857793028796400423174921498938922316544278648537270085180573314139050839630032663260280642625840180614844925709067999852618382669156338963992321112105647256517430743923836896377815791829617418041820762540156996600551704948350591934892015142240711925410538741748421066076452125719536073211314190071928066944581476324340703554270927290318855530045039895901063781266601299757392102450573056449775975719985469731016261871489097400739644159575970238456449472221947291651810222672569002589576116394942826874970249744378688622739956993552240640623451018225400767116533750992871875971252224778487398648703249923924070608369714736112032632942659942205440487187784640595532593589190605783247668128374272908984764044470081771196069180627048848871266777455464976327951111722943559889821241388330192130730875363770638479035969977430114194070386581232756723489777084682002428363407284169542225715042024029397945718299957513540735607661089531750776443625498315925825853774516517304988677998245040907642739478601006849087112534323403484459659294359333049042337153353122477719131328854178367893960684054894149322937223560651616984725196830006819127814774817817808475929507387690736671028428076868264045823878888438216130121828677229209476622363948076169639617647969999926894441985034797376613679637263609774182016320664160056873503181637192092021298558309280776786072672831378532472075461471137864522942186795787235301124990807667043923791874804961379842088785347794871696024051845741026489574864184876981233834329075632163827690517502376552304674682023565070656521433796754541728373711897183316443467924009198979631357435048430036735926167439279261691290865856435859258821485772187302913311831801580601253877764673766366899035516490897435826314553547907298171259058244793713660629598972518968047284278281238354527134371018594449279903665072254267829504539771867465269166739670679452725483619025186967398273762822927342135389628008564484280450557246871921498731399191433611238967400027273749028209093571099370062008129844398058082974841072774122486710703332985712762242719349654467190131564167633241684297282617879544838283748749312072460447571587146118780819283704383255884456239186491647737833023708497485374044632459076519495026773920447409585994142124515129113864730755877683771547886011768260788055596764056736115837093506193224506801073627252916738141924406961610067748948516997878438331649113636803288882057763304286185855156855725268282968675666157096478366907675978985531408227386022765057329219656164553785947803725205160842738949713991766457845152261388263001151200787506663169544275001192725073236935041128088285148367765866183744693808747800863393165731634937096868064933758642252649817862361681495781199630393692172039191820997255156899160830900693519729654097517285416911449138698510285985089641155333501821733410905152193426962935444947390346768126349261222165099584614825716268910993247204445004044740806985109169358757484017336469362979343628006668779756595791580817203313115787923357979444788672090767669566592708258063287154407421412651223197220494042081852275136059140699621995747849903068495590087953842842289309894949521943342722701031020012946156873720820003493786240589728633660710917407110040434903822250900646920312568288806050908047347481544305060738282315588813316643565171610468452630961278998565402881323136311913708617068505347775492139770959294124205862825104946397820211100095725192193042526093485328756025842964805253349545690503861041678672461255343935976128646511822093091149025754121592014259341967905415639260658624189401216503726203785097093396871679777632329096909987206280240853395328024581813225504741200521880419956508512536042656808106604709718903876224056013097578702379610681607114578716034275159501542846986470042862782621747048437708650400809106689244906718003879768169443653363232442653998293885864171435219983865661627599554527047006293466678205702637641794347214004137745481951800991927928593289108803057774907015664834269774513508270695823714745859052174804033239982055725231454807896724586160536495298586338562343123951232585008394938934105548057953691334702634723503627955007173135947803344569344678887531873502041820617279686326379145750415912833649678841812207769316821578603948228877083238515994356479468909471791924402617755019558487157334569017257743124649289680136739525624635772472934169080951662626752948258078181681993120336043811798592632810074129080635418975912870846491309500245582594226126602521292663996586677375586247025417817415546445218964069222601419374426201066580274310490127568231374234896780114352165025309706044680151654186338541727018519691453160160896131457302321447095020628869502396893419634724617457958990101655737115267950290730579002476579145933771034652285792351449222332925837044514560895286746957832419757909219671911741785066210491144773695813451299313762287349738531537563933750536403523397825167862954861474528184849246753653444501920541873215839328247852802813964743547630115661801142302731585083446802038994380337395086575674061913294122854380943050599262817196041276278516794125812635060179482665354051538825959458918293201735425508838111023384017856758296648213588907277654288810209991723452373883813962030094036785917859680667618318589233253862965507665019949287311588013348312660073930593756426023998263006509615896739682462502119892180542715873558705587641984274959488694038193168701353737170085382550367140776107559387022175422856941115529652101071935804690230156302276578842884401932908382564793082405547487368266296184451325632198811761952958319931188837630223253891409473148230017301370194842740289281818923783750424862204862760415277303124372095514558278947073187125256904611209247932326076531291854598622469656725150646658599849762373881007490989962976109692429838881070456835781173705270450219878734209419029388177193014870222718646480830176149771248722504617417438813144220857001057007459337863938882098680680178885356134352816370339453279300679863182206186667499036545236077379652119756167323649566450657136421206240590655935898721305095584685359356769091288877205233084648609492547976693887552158169014246091224830544346431932289393943473358612407498846702776077210925845525044648404608224051947150513786453916966753124128004601271131967597215879820691173094502189833727454850025739739337766677064731834292784262677062085497316480400998563631106434101915150193085418644136043541180375200359980990363367875006718881952419585727894783072981451897763466956542286610884550365176137279376204624498271764063093821757087328984005058952305836701454467588366847858482682673200573769260432021505252874857597924350958871383220609648576820316794663588829053022001349536185874382512585597440317648818947558333962987225164380989320682376291724113210038664696499422271327021067427001502419993175704238547246310173393507325228248159278207105735364415036604841882315382985772913652946266420256266181316761150784019346475939910632729107025834480394506841133474788249159743961218974502608916771193288484505717546928506806162913982065704508491911207607968970077257641915120903885114683987903004487403279868650963974568062772677781023518351165639245022934025465534732539267914755300230366067298333870784466787286696706465472248053089646080618534287103956081689730543420762250957100967400021851944160201023918013050860846342716706872010047273651523330908254308824658622069050382538850814923348556320286900482076377590517871210586770774074106399605206170554312142207532047951180019326803296788336007746050604231894655168270546027531238399510808750843248960947261773521102642761123340629497719864675604312909782300244929350044918878651319727407931162365434176066899941725379373605402297133475788418008015909602705081872508891727917627703810936111200121388357061713867614940872078169350660801266266116486834823804579050879888369340040509672397969123128977635980792157815959478047204119784240385027002551308573825150053269284033951201682644004975514179823300527575781535163187075288781396610675034510247072474577029801369800978590645245287707620285907509561363800789139069064798320413765571680282418654698029059296612576547866299495034861374532745155793511268736094806555928563387032099638004278239571041938488772003811304948669147254559329687127850263105418983607872284533403348839258076723183798224139297743752660207520098403516047810395147498026094416563876904303260642551628455430748331667673304732345077126848626574283745954321144968382697167951209492626178407087381498233285288197023519620375436214189014692955425690954504291169991438347319867039974559575003865103416579514406913446896898280217531984249575560244655562193322462495982359011968020980938017915277261994118968739680584955591664765464357300736176725396541868980022756693425066275845157366769345218723090302880612542223220038798212098640474943139411189356495491744090715438065180991568235849267824620043932247998052084632323275533941207112603578978627544105082155576698958994398919852919251933125458870269307800921785316356331455832576972450422002368266377734278789351395956270399194358896414360515190923504959739758121865462032269739624674968651308879109803168992314414049015984162241933637237456935886344440516902260548294792039132973512205520991534183661133908893004521887824855093654475097838275911726784653171939247663469786233372722279514723615708574254521533813186177743809925700053677657936724978513108500653461268240929870480255606593477512349047322148072742381988331291563113350936858856570647995700152838385122148185664055850728533192124140447728173040485885186629526565829059333401056015244201993778943801380433990151396705274761344329030886175774360236014557645498868932076563357506858484878342140056337802179045788481085723355907660087208548903058572603926412776698881144552818087645179644105023761465585529943857432144775083544433545421016153175004388498363614069688109875928285813287140977031270625935940953087258457602459986369928130610863515349421708300579757791805163658880842998213961736012491843677128658451077764797572945605404014036411214965998273406191861285704344890944410535572090595339366759914115452895998827991955610871332903212911769756342792878203193860030326375737163673941459127187928737785308991905755607170605899259995088433049275999446793212738643353363185294861138109885640963223303606632863580116059134736803114713182973903340053760531504475649029209867073654569533753722086394326049063437398535228552205969097720150464047506543967669849287646864767204582521750638460582031092760641783133641752238250647657731149839155054542274947384535347518233158777017981797822862499342661316257030275874992076075107134776789851245780506527944159441698538834119349034028160082979749730109036101352102494851801280670225526620914131065420165889539840710101794706006363565420714069685318595587097528521907734433426733968337619138467764452957315565980264848078755748275253047182281484051735665787109730623370101424407872670689261238459282228677232020294332570883989308151256044979604903115678463579733947847992975348945372426478628053925208758202011461854399468091269564160905032662442591678130634953742559788790704750024777333692410163246556719682263675086354792565546805486604349998671983609167349012113550816539338165206837755703622885740911567251198939309291752867512458368561868459379920086050381840353737867240817320323499391784703811469454929126096897684756876133460561496044293969115305591995251095471111534362970671691776853709631081188266734653793961769818116988617809525322634705527151360166982108385284501876939858136049920031322107239946830524763282597532926644921369907856163796214906103257018851941911993414482306998784853954524583589588073090423753994224409672481336155554807154866123079342093441656049852957403302679688412132970023096611588175427833391264499770312593163803064516593819950831429420551158817054009687666341496192152110089965424601473652043730866659535224212648053922218809421134761611640376274018838300409254380154265591234234934468624775820893261482608520574267865437953304391374318248388873984329273384013098391318107075198698382914481396334105140676823958044508767305366010616412861905239114796000488564395909542738831946561585007880055479565810174966876025182012987579041446864804371118877349613667315482579478243282588193328765144121804131840870016029727255027110616365999184007637393487842435341729570545919959553943176044343765639716859583199124415000592691788425517750031014752978892141200838742667600714397373483739249984356409023116478983041037426736017256045783656347558614270860596172399357714407145713412578335120195980122109051944369858898379932834737059907261264340173679631302476695078791867725937760215581187420210480883882921568734594919943002206560590078345157503784060716912705965400276538400520972548662648174504629150365518393590228447274642932113156776997683579218752797889338670149529344647657044857627960385502232302133526984622436144267246811413044025347613709883737338476503696769078061853644344762037170778105449781333331295279983445563190090847792401099290338957607295879588309345913591175917176663923789191349389979212973213193487153495129181312806636456073797069551079715245352029516315315018182155547133942281835077949874728397625067244803665923771534345118540929518781806992260394526573546703393455804374926571826326722512036991899048645990997014445854070074513185490029371251662892359330110130116396838323317974363202019444903747026173978783779022073032495821739078386971899190087340320303503323809523510089755071729290906269529426769792323255532099544828045712665506079205698565079531350977567280235391414838405649297368030600329632999941639285090164855983791205318933342836058014194258294805910315449239560650451862694746477150470800594145246229949389765224118837404929788171231276908005045910062225592441052470011080189253460971894593240497375748786813812891032584826355121336719700910468232723734367022722443109473126692137169184181064050589226736751782223207904650194519145435624556787219482383156207597140661890557525067936831039381350790440543557616298845816783090177703855747786296686701300597271414441718396653684132722889520994553418400229703873804350307639213075334068655278892897960391991134640533973650927565520809416426749672938958033717048894158568800656837947080463548570383912057285016603601782100365847850226977230283270019648116685034461196180102054010277233450930065302477748672323199295048407193026813283986757622571917634262395555955307594072473475958253448240898442726264766864669134418710403616918748824035649849732434770596723860933976704789899926664371510288208418682792522960005354161115110807285024319883222343700992136484321499440135421618904272204212699059035523306901694553106694749067122507936935453793266850390610924178381757417173695299392401560954099221260658490801456942786456605994318498010140753799303373404420712042632167439594207054771299288020719400844195799364186838089428400616383067575531749553158035759037672910570883684734249577971075790013545474887032811076735927877394214638141946495807195695122208439792121599103059516260319728846269043193114907569951170996888617545447369460141002593801841353254161352626589648714342381586777297549936913599572185039430530949935484576896921386811044900352276391306237309087385379530396337511529974204247630419393748288937373030167168934198512262427147937136019018850321628259214622230367803841557132210699045699286071987298116612659115193800915157486071464499785176209722826254708093138391528920473520388899850284309591633023898379308312775543112174183196682067288520355949271798046516624252049916668409165158873577086908407058930823768931015541778904619608431943705132195246114781972518696503277288645713615438709878299778902538298158346242925590063158019883545988058059344756664641415902962384974338435554037653162882626207469362827680246114848034096326109528510881193569226203946580675048297859463682935472836801005435258842115387892785198970684429354658657812274963005712769142087352884498879929642027707675327343122484884089022963883442088851749032595369301347014413291667278036663495033317179240871173505169938835076491793610158579222100069974769119703683519071326863400113922615523008791497807954770176108560220140348751878901470972490670388834078393739855694293033562884955503207066854159926950176145663368953790244389428591094213610754982816931188918979625228694553835785030927096853947960517251025819523669154653043238552551205367381940144491009620382592491309660462972594781265959236160654051135710498502214450693800726331294651547603190625094077679167064001144637002359627838155361241400929951179954346607602911636022841344102669521008534580256137950551390286399749179268488558374603688867559474936885323466140556577618955940791551737124217088300078521288025807473766407651942031840125500047849966943756036853261464862412276564842081770298542113627557854253325550319990523181801780798410526409151372041309988892079653433458947153993500683971504165320535278118968022270189414004300765542904268101757438326851615441046610423121470964787311156542447465226257782276878831903511271086406281754750345575562022484018220704020915921094787852728826259762720610966708100676011520203094535365805783256373880383073046369063473925410850027919558101845419632342256798714494310629192714860311047940532301525571778421306293269610361961143975827813909595322473340342941906978387798037430501241033554770824894474391648464942141806629662733530881251757121456979067468960551393762455089587786704445708223026117826283375537882538929680747463556798038025155483991503247831865320343466652956026505917825557546678625530060661849770593997424327215822295653108256453669360277105742408100117274166177566186010985956860228918863658161451336281743183636811879377530553062518078356734550587496709406982430671129699832199186526066808755198504576968354138037284147914182089883655017589298705148971962102573085777512874290549590530052070149052935401091041042418010618623692828837703101452306259283796096759319978960876499173462458144782331815751997168982250258064623970850010195053412743924374366896197327462196248393243152170276732420228006677245618101197993138535099619518653982701966455659433192099948332039998237776323478922182813861801688965919141298027387738368248700565271190114136465509165761881766806776603890692842425314387157731158942825586755025648061339963225565171614338402921241053557118152330193602099952251997798026757183526339063122724849730057692321335438977897059315474122672044482702796571773638696801371999043255083092689788790418998720379145676567051395682519179065669402790858549850055723686601382401296400193422413942703864693407168396294155424967499993623805781186472488388986192724966572471732612722455196157715053888541371559905130492057172237090436779170567431357847514886452332614858388155925601555673767174681340360110591926848729253440518696016268217098594892032811990799545574851970274410915774858014468873459114781005133301192933657072551591198839730461023320197274537762672014144550119873857634910811355824451879635458415164587424808047016367484077522373529853722499269068706818391630550886218941379311311339520765120050954744651284246259752941713770630554961302617823720013969505439749100676549041876636270533280208056465403255582194648755188488650996174022499788455344614566088461036317669983575707940872429073868152748897434425442570621779941491256001453366069378500423940281292674092157675718987666896130576516851442695434311377080260514256919460672545958249952733499279483677383504605962763987644232192391928481084143306658144828864907086407637546996887789335240782335639622535465514509269603915072123105691468429244335817439590448392134993177354439300453743121079184756285789355191302197483332276561107918667892310917982528449371033651159699646661119301917238787297492641632487645484688476145810875724576294078727362289001061629810540001057598079830490168602907612304234250653044103029269474207813533704241721885181467258525722613004444575778882486683405645874069701955930060177578909297865959655006013648424078963083110559799109096850487124836224536542042269264164899233687886280099982059840946991361650031395151268997206455227868609696509335202193176003919976346110326253732481893134428003896499683228458298705611869895460985310817139815129852108640310059795260818603857951169558010107986717836153282887456399550044575583072791557518801884315789607962606816086726724765880759411731042092324657541981648896419280514120822359198038856560776521644803799375418663768540419463101888473123769101192221420933650771076929077274534129648446031536520033284987016459579870045676046468571337772896235241495704352934490386182182996636979520203459768701903722209986466993364495023789216956504802114290274987425822483173941731755662382796872671224873821994293552791410505073174152479944237111054359198242242777863996556296122232450178771723449683648053049110540239865521062855167577193603996101922992968088664223385725073491603299422973491450772893136300793780682142364653572977092593316688834927483654391542819459638356341535715415762380462487940196546579493830783909476569820635861531168164920102400892080595363347983734158926541346276755720892736748177088138026728806127341419110655135003537951278193852884738408263121480509663372418409514097167853295209121031640953889679652761612191692897623298582982439941253793656008913173941482961418451168022044050735061637283741525147006065709859892312228026652482388720274733862550965416285540539600108433041016490899947684093420631005377485550298451438593839493965144955871121046321844241849553092092293234846981329360737358643516626252666639937035614385115842549549111708616302868870348259657057487846439544096074893976163587184155690787575185270851234059755914284244977348996298459783638001374140340923585265870780806610568562264225272952259006278741242834800541506663648495387567355475780463309040192038020488290514655125543010815595988745672414285804633316976221671017327375250495664272501017789499421119357951669656904532638605937616906620485074304496688006357221588426042106852778807048837223381667920762294152090512330711745081583467798559012861645974791020927818043382069617608797073110771822037748545676294036292458918372409011451858432596127748452331806449078739740842952505036977000517673714914459957748648629321939759829784796415339351789034935061357540049398674931479187809119385187987813048179469269494245146840955760547050373375292611932296959013592056261553431370652348653476399995423474412975871655787146782754099353742674388692482004649913584170197853237787922995702413469415225507567984616016688563627078384791795842846052354181685215498585912549248141398880213714738737646007252712553017482050958715884084549430401497911723542100270740728223229584580318273893077311350282585270995813992294781340687035344985015855303194866232502845175371598627398163165764376663577406880407833191577786374595395902535357105123251820000507335010447841258744741824371349793880356034692585164705301192695144045070917944639054390008753503156088288344062428618806910221318400734480484185377642426953785669837127669876305478901768624905477656144853971174363064989277218494064079229606886910367214150889723847092659498299162103649255999472241238885607530849628448724653649178394414739247932950048209680385694834033879289201720489186053381339744754458075225500789074257102328542426115275871682668926822438709231721892113528358389642285206090518994915730157802533682470780055615112124182427170145419649821382928895395064230349969954680139516293277235552422798735094432607492198446749068094463959173995219938327764388406678767908659278288716320381919176661824952488807898832406250413689420695117899626530766303205212972611808586888699067028565371046752964504354183486256548335126443419899380483157930489559160150026508029217394426601850567979690757873274609701679622724108131868003910875315512541888270968012010893589873977182178704666221778940721892413294395732737404482712616859718842801113396599759403329256129414790215390655693557458118625920539858558633358756065469808567356557075375662519791178323716287976677048606046082333894565316955036597395484975300495897815761450495830923447546953108759138381059476371638610677813788376393916617028860620078271027201213436072252230093670768662769009702978686692586319437994762110347777820868182815335743707779531188950017505247386861105270920571282129468518880883696929923679091889837458762931404701329445798357996346685842419569382708499319936955727622754176123079130271675613017732888090501547771451331695329591912298052260206296124652713463609156941316258947976205763700488061600159897872862730011588789202027848346651182955043022195116250370787612928882097745928195622823417699150101215838919130236227931743251459686628249142295248353249174038736908708844652234840625497252738433024621882541323592845108678520879783806189268072542353653582657806491016253179858352316737596471991894790264738742336512419724082886177248804113940579994064408972493693671460357572691715432924598234371833909154436510908084152864263368799060290831221899292456630042405405125567426410009580411626463251484078891356238527079496693608626625256398011750717031064438325406430871033937416460135741447280787620897926387374310501515046686925583929715413906481200920851007592237761649259769645485596595349519632703130848498625175949786728256026846706136702530384810319940477970053087294492094369194876964705259764237983978710287017168500150930637468980899947272436779105993729680649362583281551409689642617794453548402798846332416368741123875166455837591147366352718963431834826281840467251488745067628499841026045551345685855207098779970511316103137321354702224444641425649772079817277597957163559588797037361798878718816882639701061756862438145431217299432336594343506989318141414439951743938408875947188822632635113695537989153095794541661260011923916881428899064724533935697972733101153621637913625398682514103911219772646167220021767087926986985929151561420323507817431114771188576402964139384373769663539066823778723664935960759547170801711771964948980179550067708677405792242993539705350518372202407597273617217261725875971328739445959414175600869333878215299811077415981918670822239998405544052840660644346205715511094382588129679523633327482255182444920921924985332907680647748250093551889276010612146432980007122239345386962561093252383294093749311214452609263390859938228382948474086511120512395702890647397603670322869816673873117775865503364513031340349020157110720041436132114633861145242146170281139341818612449160773878634035357628475508059692737837767193089049310497684112696509680770013603182567125817099812489506347518861791279492864437677919697836032590604654553401822377789052860640067938891443750719252261705497298242677755233983289754592466002080846711517046383630350220269038664019232242216855469529999665870449235635678448832531754306415081348086624689847545571822276303020698507501746089793410833055134795283086316670876084831110925425894457407236608649004976169262639484727216559122988320515513311922101496194182411743806122849295988949346436749546369892826461409751304117296467405407909707836975523933469870100102845859099703305033864074825505088550466042851679932927112332270727203897214252830209482157918598980733166382140662564811671566212916829109639133644414137371693467833507555416234642532264170598578518142569190067653702158730929609162690029835577383069951642913305158910538434801040944836926015315222154717305520045683868715601234807523307690511949087610556364952458250703953687848692717218956319610401485917930205739519159401436866294789833055100460329208244743864136201979616571715821464741874922328622739091524484769041342717521383776726202214997569182102513244626314340586736234796611869386679133160068835407727942109513100876145568057438280961828699989093249134114262883963631524003944761440932010172662202532550858212160764737160772611757295749087110898136074433677320849917981390683801373793694632927169967529313122961062223729250921686165661642315145125637262836960211263771898070136500384906665666280449375916992933955119171642994049112153553676427416692473810825663229935853574652830028444952112417831408279152522177524918075212545557321985117188250041763354464773587394897644172841220263027403585905647346965978803341757539929780133761904579285009688062001942274872548288379120535473575081422658021826676277657384494075851052268169638406156781639572946397875694266197671988184048354204140273321039150520512644191665834878615166879051987996259720035831973621932405603861020667412874513805507247576561037862943860677144863477367928163423589729737093808550829798702565752945087853782010857073781637259877161377979553878374680884296205537873980268486998649494233551926855212384967655618519862742772047110083720455550008971894435673400811179121398132930357707504816550447481310624873818176504116536389029591249267943255808012992317252329627790823595384441871415961481829625165246853292456191976322530582089823427863037032309671116706846147408538029631347013636372352306315404374158240973483127004711682241315120387933032082265104572343491164313452940318650320872783049231551103901318746819847903143873024735698211765692576541791916302270697104346146745530218234362956066798423620214017418634298090872528910398344709551310332950776203343163914553891228500184207949721026789737085658144175064234911609804022056099843011743688716102518045566793589124607196395495490730553192136384212228749059029194242520955647498208883911621036512875607563162470421585234241782878091591373675952396107538253364933061264876935379649764369014003330326674937758064999450910167733026420742838454986379177951546271454871850283666404342889423430726238623748315647452879079409676617515941340872821007465474443120641094976110887017648512085128916274154278170505030696735750831767623127337165617311941273096634156196288241291465098389426147382124082847309028293924484519577498544520434750721899965976929520803428561727289748042823495389383181093706702551582254753047628267076926600754467856708421338982329328899747977451705826189154697719645175108167086416878984726912958735395696555648768511760556433371576426338731788215325583393573936076302082150504385965634273586530070806388680371738538140670740898709759996314792246157976273403240969358545126288412563355257693119839651022410235817443922839444403327480565498582893376889896026162323317833843417756091485808720651807297682708416364717635808265159731488945721454795248031469846656998927625815465111385242764921693903220773627340503694146727126634600324717356773813906888602169348589895144560089437633143614510631541855341147523402630695307888177460156228210182320426217039328745995626907354319133481852950023768605374149680428689244812626982566791467425921302782271011915291109611810199013247780081853291008741439175007411931370437016546060948775401892580073453423474486444942063712206248303076990646077614761882448078476319366964068493960849006387787981578057851459767627947135047558258465998720487354981926924198057522290522297563278679097790631739566387530183045914255448137456786490938579025516525345161186387030875511457670487568706225711793658870620167485050606190389045562307760116962496596769401033810924061081960037029243618694956157201824938501109740715700644943745013673477357488818331379459666944532030641090239851620013971528745221290447167378876354830753336702764051061039882390835970770175215249917833297335426387823872162237751650040814123911885956017603445258391930718507051497903655561840939927505969475757256381736960255889410524735023045175069770480077362449435507014188259130932350143550145365395569782899113425329579764568858422020087653224312137507927899530013434722191582162568283252079682705816769702591469395207288748390322131548172447342404108459681072850903015639768933097091460151822209410378286477973978785129206381236340540603209084684637191855854924618369847415740330696416436782630456726751759532031094144276016728576698075995839118819606581876805531757055914090055275540341960319395686475529918994977511424318393231413784676131135767845089328124588996208798501975923344945533302783832832648857394888348022818611888566304146998325845753068713148918475799455832094004633141070564510227113756555208689737938673634572598807952881930077066438178142947852492797149400869260264619346174276604583732174131635180825284142954408094958939688842047781240020945680134620515301247455234270711259206471166485332977605896298931888886486772538893740144732377992046341173425127084884996141049849337325278764197669897327081345548483254016904195945981165842209555889170373596411091034884861793405815658635641832593147578408224330884005384027306753010915128086887314609764514576160720252912586935046317972404881524322865847000440177813359072614285221555207439390180898608854950382661733494403854835613379112528850418826056890452256234077550202097102313177054865090790146905732967005663046881379476718572956903989059084144601882214895725658093718835349349075092739833895177526804279881365007094974327301037008743402796847799111178680797672024276572131317305282959235974631630586358709275848875603279557033923478605876764842746259899323522832691964875783937982821653603204340878092722031627455785744385756904850311234605229003053632027146867285765459240421670135115812687266910103220098167245016325397685420151983265794151475467196589626559431319201843039762123102526562120366574275740661095338640682026637044812464716727404536242286822265892506185920771488624942454538592097442584666623068216365581296988907684038169386893629470642452770094042879011360503325627329026103288393036218939835194006045952996988719221301639917295146954705629642699133968507941767565322637936979395516257675088631692521385705654264278062208208291974365491287821516100057247952862099997440591370827290136628406431691660242456386628012121438852994205562016850086857236692964641132193737269236017879739237504455978132304207214739106988497612080607777845161556397435094429377579540195955941698940353639307744838521116027739449898921968740331853159630311525786580081732073000783075853500627505826553034236814025693747750981806573930606757574131486182883026588721298812569474710393233795276098610136952656143400626052476512532123167377045645561076919211111367573849393684645649193780020956427466891837470129272639956629899685419936173667543645340945934087296800008992285771894116201076261096635166064401343172687717972675752304479031725647157752083659883393344686752304920099133050425825713619627210043413959472902093080752328922446522694487789312196779754821951603586340691406933726871105666120727378773413593821881090322376837185886263127510073270964970281868342441138091241565515864483631239572167126298729720331297229552644263089239464085217157933704521086362572918265218775306392598266137349408020743549067383953938361907724109257062467611241207214751351586553862153688095926151220025811655817586609802988865602674742011859987997625852752891703619648014488872302111758863443098970904632528290410867970888839231130044925764928163519671536109551185561445635086573791937534334890842206035528884109994769158233921607438481149150407353828077681875481949578066763815965033819101391564981673892351456634329956204418189349916837669512296615824917536357572739189361359143866527641965671577569734611439125706665427034224300982485079986758013179138224740364774684471767831304338450264045011145958171210178032134186948415887933784985397347527804010147406697088221998748432134590143651906407180507335170135086866421802046146565380279037371905378352696051354880303912519884289850774659255916068335760655764461470829181890817022332630372137320568608392082460013997536465208842373279982152890036889877339099605255891489937578461856694952901977665366379999921466069450741869723038723766729501518599490052840774509321944523082283365720008892326351434746335603270719056417033328233396674593185233297404541410977019156102971326180503090286932196594610646668471949386711744588466522797709610658460525240291298359153746178080510437680060378636203916938907270565795909081429387370758332411294518646876943897964530887328816246290730138198721818818634426020947356106540246175421442140148789037968693417302804506263606821938946197951542412422414899016334342640208523818519974186286649173706661906804391596258917669853588824122815181503088670588891541853379680672742629817751317294765095972263059237849750198255708668369355350510213171109282622746527806235646526785068796357032387901087922555888587315007054395995204824529634703505151572107779097854062514584715187108165536664317778907520265127693401938526517494938535425846120114527693744876941572591164203970748609790409854165031972254886831125873757358292401766432547063866315297921332807935059595705793892883828680905757811399395280354009619369366806073233933448727422251273571997181028584295277340778893814473369415342045934164086516586205106222518435360497052647620779264816603053818625321811551018456275872813361913278097625992627700412538524574591180853135548995225217478423097607524907705843103419446580973577615082387639059317960282570169627306189172030290687931643846609525601753042483454516901555216670890925368255601311394554221298873994990915671703241455893598591253154879293309977642480315429579585446994121876747075700013565677185202798972858197400973318006327034868420164519236635624928633733694224285276011352929260293866066538190743376945032299874741704343433899283912567678779116784105678353496206801417010134729799730641825554173862593368423198047897251712824931394117620271036317524747632195420012868352204191933972089702219835160303989338549752385533010922170714592512544655022150503272078137005398687703795365159704998149152968070993111913553096268814351266392441702473086863744770774726093248003783665136871832279720034109035286786391074113406009182264496650429824079159742494710141433839216324606661583494726137836734948395926695336299305990605537304858905388383747968817397826506737140603264661118957487673704518608143191527821779881274454847530202045703874301421779590673112321521714408424775993881228046106595712152314501024638654376428304936513588402035562963543867299272628962503392666828938596154586277733478417494736363446613122496695777498201093246410219326402906047376673337540026478679840724846965172701788211442848048326238379592661798761685873586446817057864715992234438032166104266528092811092932245556404437804195276986986544565345386830562850507696414834172305481545440626852616099726363301073162617829963276924373201616256340369958005964364991617687656808879184148621995677962773007378047544831115418061531849654145940616796945121869845869450703012608200700368913252865329260402408491448746607280344249040644022509420507946216395284209528785349510346050492952627848084199355107076195456834485288786166374016314686235703007084978308397999585637456220276513772763970288618350365666950899313057428865947118302618018299355952986167792498297005426094654672343966721351531682442817048445925022982617341075982711539185166109491837490187711567653082092927391928995118714783467213155207036691455279487251439718807957556206545367106065153241113721112459185203261829460409717100494115103623962107905376722510057877230207247089357513060976384810166520185951910857624906276592523934270986908425768378333109146669003268501466526480440351244038622806839941276346551531147405910208914097525155234853576148137004095740264037777892252663201856059764248152643816393757236969313253752584166290611673098113048541273713744723028989669406457675237447658009189277782445642658020991159900378279040591150827454809278578475840042844600570259869931964331835676457788127747240978639761103167494980095874920189804928271985908227241142405043672169693922369946601870149087026203497599012042337136276924917067423614951399944168806687330649838766091303075734733550442686679137168427700460018097290762849737170844454067617823010329674468530998052086188912619475509230526915424048262802584588817325713492956694406489837817527901321005896448469409440992618431388235743288468954336498113366984146174194336735382448590281846645318417455756589368400661232636941450630647894379023220442916287578936798155509835531497526196840278068997982107686591373532751609310821913759900134082260926309991818588324577174115706546379172576010245976940798569247847520328152464804611511096265725415571315523109246529795764253281926214428806876022500160990880514854575976018247211050692441251539523289197710506007400250398815185235136971846902605900499861437209456680541246830664393185274018268722400301091233000163359442553196665570245842760064927751608604473415622469204564120795379455695072071228807978407993503359288815735906241054783092939776325289820664795600990264270952986911460913223183630273463675709910524134554556394703455810540373177769530052408811078698020425229875803317142820305449236471746275432133498248554884939419573809668611952235013297010044202125804117236927999381963315722503689449659879424609724053842071638691289698803392976712613467674351991529972700781317746040134681596705868116360904402880943258465920334101371013427771041855556170968984513278277591965528255773256576980673540739799251000010925885671680115888139920552364302731235282093368614024602641146143141304864438456694098125631509871226187129680911943601250365847295369909680884075898845740190333374319448968350510343604618601354388412569454691455305752424427079535457625014994024592398108358249976255938025353913766665977803305889216470070613479031078254344963546411265021993287116363813998165007361807207977641824710790351774771576862449292561340502268958857876281567239481724355069941156679753173468228317129780561435100498318234186456698552342641521853191545233007277449741344781846323668220074991117888854028192290272363160618840866351912759444004268599172798034514470857349032216052271173437764044932778333120030082296316121908658920843305562869753355440371791019300275588891685825134998838000703043427583161947100592077348111762039014655354679863240250100780418524263775703761020638845557324590088932228876397442564877246903602968627800501483454167465863251089545945513840600177132158749189466414829318580829350091471817472653494871508126237825028602413994893203823589270481036354935195418923192419165035884235236431316015419669724240377980085874057882280663750047546844152577333372956671795410974063115092816754092901158770600910853224025885620120459846143651812188716632037975628267140563000826091569600265751936119433261659231987970315205976968525568439653900867584709199163502402806633675609609104990861282582492772148984699473600299305509034434699643346523547542444761196320797043803794196015645765474436587687586672930889237059152720193863503086913834948456194637534737436643479555171111687146778423208246898760911061406715044322691982015176963018965241866171526239335773533255645506653203858934430297127302469409935927795017830653078094518156825142909539375416689641048000600419543182150297767687849826238956134767894145882755942606914332090374401429656177654940778597348684902321506252424075587155435438980476710715731913073413492049214366010802590617804453959450220673951120849757851416174831776588288277605542414202866890752209217017321868932893696516017094159759953612541891840951911449421555235498832709980329926723997925082355922043434011340654702587859764244870163463743451460569900024315189990184268937397665635946997474288398311419257500666904247767556057946628462600842724594446089408143006504707718305358853081253664026439009932883610725510270042693898618704853947429235038314817521422845081048535911711597086010420395215899350091588005502737635536887637735007243668927574798268692055110222486632303377775493454016249919862207970575728166862241880944890706989934087952870057356689829960381969145964010885468623031968086309654045843381067153372421704653469141921704175289816806791336775508842623845888016533857457390211841373494331371189104228359788358479165132984238161637531252680136873211863502829498950387589001304450770468827748738653554224511909935392986530709331772367007446712686736004872006108429171141109526005156989532556461976367694596579485794507032409113625012373359199466666226730978862430016577049295206161499031721100321276608689387078893062157722030776114710490598538998836459076624832625540314163053182107380341971880315103106474760810155068990325307240048732774775854456016380706582316695759923728305392840655797393303445366341506214795491167008193201788151621496714246402102125291734135064710327288191525394864730966384589518283815917983293812625301028339268144929410824581519337066112475033178177267033691501816832639806070665055884645783880081908493452858035558272197263867070103633458012018443719077064782561042260173307767337471332205627533996279630150990359345867011910443987600353299730409392453609912166835275560493618181158679258029459137784379301990713219365280037635824248369173714899667680965628329801285920069571888759912869796698475442466921526199891179076638826926942572873416552579350636792551062619938575148401182957233328293215636320368626589832711480438624345247136303921378532131655182132568010641396544541956564897927572796228521339875432614170836890282888739143318258468824896713095090144152520045027224879014970364022770904082781436222493159579232922907939864026144200570424106200153513891575096972975980064428013200646863867261620395246309176500793127378466539904519172765523886037914064142032867176748849575756634722233987988997925513622512074613635043349230614398641306787862808573873556941586942141442247293768226276248725395714483997004532641405735693123733220864698024346153774877115532119937042636322954648230030074895129095726846076841507635128871000189371223936469099408089025907526480361231080186118627590845556713071199735488272558283209204576094689106544607740873943257914675880303428604414435362662629636297365024719098740835064065740901671966897054652309462929090449698428359116906586397120169086187605236229228142004310315042776596883100593371303542806901634520466662578175653928396701363182587405523699487500094011354142337629771942113872863206101994671689203442521446498519798262219812418872032567360283337764786115766015364218073946291128641453998256575062277113265531283402371315132992791201232998455217681912864804139669964673756275991076743197116773835981394484635749309613707029776269366060633515265280279486950626838329794915312457712987677025237951762593355675349302634367855590907258574236661752497565472619252034233843017827519852761974325900928828015436420070035638094108749738206776664531014233943419997863330073180353421187282883219450157252971093351775543808778979006773284869102787851205972492720686891805322379097789055191624642136458083087555223860350453101466571742898751669688753692963168880255122904343656334435338217078702477463335255192395853550636083420538161653773391263660022807601427449855512358188396520392787290580565499499798435074265393788511216902573985700840635872776994718929743832785810101368600852606186986966795029275718044208268055912778427669649359856906602884410433295965278261088991319782597747070891268175623315422194266443149857552222044163538959204707290456764664504787425702516068413412475910335138861654054641788995015382715786888015877140972080537030068209571661694926465208255672013491834298921843110739199803041813195383949172156613012449677452242957487514914622668595071819056565060291562909460991855733630987237848948357028389414236789419242104751965255218974285294503152247806067546321680863552855051483178328780809741232378553734757102069114325454695441339651825769726578099695159372313882199651139329555722979763965487654761551823403791617408523439149581047403536758724833149396668210761239088441762647813902662270123385621839715649663581173918855833190323286335528216308645044672183576815918800265246641225556319073197754554449950674984137660588416057275378907596194074019281024996138321748577128069350014420065341610605090508204899956430446678638819665714977013274489327368992395040017307576202217886381852938270756164414344786621573141731434596241562029879074231179631545025460464267346906987687597743092176369062971574154921208453533218504321092650045586372859611649241140647097636285009051161822274640361475911135749140768033041401436685706425382645106112426074637759484262416986038804874343406666210476031550449641198729202553557470242666967003127753945159945671875587487622882052456234396250316500544855621205547095690295263481966313306318058270068679490304763959877717965417939394315833136843122517296556529238349799658985506272869605875224300552299297786186631896594619639001750143681813365763044802334786959826443641027083876013078738037150318901294047449754538039843018464433402345307581401652732123556000005169391202430940938583567293859767758639822327516498090733672986106315346662996838503297805557307292449866176693742294152404438857293579963537285077781093842688716329120889516987070575663372576404736932041453431969577771077831292949856564683659133042637950498761455358146289338724320499543135953608549927652059689015332616112726842002298752501008590190086480453623096710982899453949115685574205064629687813046864931093183904658662366656926594120348612013733659705738917913863750550113915640855190285424020531189628562850178318040597180037373339571629140835679536552015694011207769698243728401795454836232736579456838078191922546129393203876348440384150760514540612308525157824799155652914735409888077314475563158658179417619238326937738837648315461434679260768150851526805746164552767616670227648062733910641168275281715876635916348469992192518015154319896538211532261425693670300409869705467337353274134372088177287249021461138313672906894758105500627099624335773116476318277522595173062004065649949919964246541994576869861826796656824858736503944865324601497514393163115795138440228516077453949834976051065222306396183278194153886958099568341130457504748552201867849144135822911189734165437757270806879075105100783132705952818715403105809511676931206786656065973434145565996123706022066874488389324730172959238321836294171069187425883372509237794423227520782477200988176310834010846975811046406899096445108230387642838018298479242060820141435532100196349840741142632246567630950514962855483956215696798146604411846927389380065904296219218543565448935297844292805782624925620013258969672940131908351303028639369956511260550898879773810092318340640884065184826244633684869076883164243355190348397187552031429081332830776761930825690842640954280639294707211225508283575791600583599993730764237231269506736733546686021512159144598806919909775642812356070841454646539610071218058345785217402217628171492331056213438930926998399438469355070462479031304808332645352814157707337396278659636677134445941341040400152671639868120531345348708532530370885233592628839779122954450244443927712024550509177455897978011218676060579902555640640520295570242232663944694575073364155723325267379894030691311301518406661176631797704021704513684928249245617405239103082020901654697284740346380495029087252899029429076028487772618325883426014559849585133149624316415457535690684331339152403036169173115899454750382688449530108290518045914886962417171710404550507441644117756294995348441915960638137911233428153089395872010101999245532692571771462132819481247196411994152346637411155870139871524736107151459299988913392306450447931263403246947764371868247900164901392657529037405640456450308415237681112193522189629800962512779550737721954174771723980486082553157682658633608401697469236032280339972954384522918881675783804671174921770126989781717401033117344086522012821191441391199320622383772243727727968140634712892921712609349678578988281141325279433028357171795951901893099525744970732768413675342877867864619679037149082385478876327980110622030423921097768393341101691517398130704537556510829558462553024476274901972468827146624832463277227810056103275297543196311608722177961601267361168880711822698075829254597958787248786606447869069806664553001583515399427112923376574958946611994830562212284869647518914359946254019576188039761050753381998691116416860609714806961297015982734604217618805991343897993653816615261688350108129754443544518328702396112541522536704424870955071323600394484643034129832550971398293104792403925616220067822288001555054168716942320009861664106093061338200783967944453010803685359825639710271730606603195237716827202610288788992156991470327804316199983328690613971623578076289710175208214726674761064141429581005174193191220037035249938933184218017493075645223451987086118384659215245478315035875481746458027107988422865666221649777491219588332342846788438617807389618829595774316469977109016877686905731803462995388844206958424562702243408169853384704360088415262173427784589249583852704285453064793091956441695622836801131325155858288581946834571638831128502250945710473446521815481651617030360644038404504293604716935517693206998484839440753409170848569022743926253880615178141816844077853640031331894786860023694897604061069488805677823042473857458259067360715215718212623543386447241568000060020455090706990314406703429558201578516755714241341245472422141794616472254644572861949226597120413692086582130614716289538487041916138997309740573089894404296508022665836376739375800178217679315576012043708772914029850657974210691766207506030141275546539049020685867032664496950988304255183752321742702524898457936766809890106558946344524889563627072672665509921840090451705042313961460279011831793464689087829848435272226104000937198015357489236722694594836409157255539782467385530989545476294050232353758937069537033824837075462406496870891374324173158870172354542968382701061169548105138561981081208985552263013119634242873489227535892296276663889205400100922577739682314755554285984288578913657735575847876869955562240265133306649173599691541085654476086080051316608578533209206916574888542344729028284554267820343998768676632194658765072399273056158836937626814921877553668747312171397428953082140784191958677502861052857514013757106233535203869744766302880462066424670152133554935990986321839583806113377101914447569804384867519297138041491175482302018816234980114752745028998912972504670739455659452756340078096576371381551979348377270721428969612540916151955416202794568344753096780892663410838471424105995087975618605764194020605568739705033987217876555279907119779703912591716045507646169032900732651431968646328478482205228122744198951809475866891567369658613324470311016583665495152334579981075842057901786337847996805020557590089263989415721777434759178177920956258254857735611511118547553262539064403687414087024438819924678405922970239377098363429343671473241309153020718390426794795887638535645933184536997655333330735572591848225891599161815932623832276240239728101720174165469271307759433484851981578498662550079056176031497335694335861097203808044384296983949368496624765986265940993530058937126921014139109071057348058959201703026455384219875940202210699045401935262720657344712743061052204174112574355863847434541239471498649164458613792906751967277141611430141309261108197190131591046767032452999265154041339876397422529139216958462489976420448038244020929501974231270925117482517133707349691773963642376689470475240918320862710882125674972253562598254464433447090047980403865992977742077584350369228918940341966306329881284481840935306610958800609282978452755022673402365367130846643908859528534013031154784755072595769225937258893943302466791599973223012963815794126685585759853458746214293724192851749766710370684667461791653634537298978465059988727920637136914842336742167739528400193548567277197672440625555784409569116851925798896625622750037952751755763260735688590595957819266297086961646004547575848198651889412677516922253169462739837430541431165176167848385485354954940065780237567573021631113208288354676283724090185272448041346731364005199630400933719962963121710884878064509156172176937335314315892799217776176608454065861516464520228931992873946079127135276890350066584032790270310232221672219310852328382453096434616920580272297258768138059346458149277923668117228393730250532131108132905016980472183593998701130987983350779462289220580602915886598315382963498164227274450701709624349514178307731580636671908542797179508846383825705441154882487799810433873264566477195391387192970257064929741689709145492840665804046266008659554863104402293083029473819277716175851531148491706748125851331810629132735645697545910916944559376371190788697682261120461933585604700403662631316771720650502716858708063443150238418511607147619913846220607675000160253941044394051762350974716703873167026190208314324292340931424397773110700924173627869281300635865336947135823241075077011999256482006055447558605012018497394581862866643554579715670741709018053231271915492383523043635903548263085272764275098063434949466045374339478329745338713167862311907254118653635991412781459605623140016131629467616838132345789471758711028704617099940592519667066379872902820659119561962543872897044854832193604061736213455845634650058788764472107073952987478436936519179037543215369362664388254348198122709098562359788185119574977206669091806855136206742913273422010581417338306238473640840604355759976150537294928236350751637427486566396819477223885107165374930961621455890182819841670332089124962296926433174948298948771394800972944478925783243008248400730810183420322644170697996158262707907069570678398794623542034465053273351723174141999289984559232946014583228318075757554327501580091543822900366246264840372484752425196893680005986870069478359994983975981653038775885973484137530066997318351289509807837278000507201872607220359329100805534350837319878797355001009812187868756863085963749952551345621778111198782215364567155954660842451221732455421679732048026797460219214388638016904300381842316291910963275283126524530991159890149462043981354669132720350956953484347453775207926994515331754389333072024749028874001940629251917233042626145344068012744600012938469833451131605477904473100554804974991841946702158811124251621837862115267521100284143954615602026409437469381442360515591401380657736407895583313647648581206757855969560097743770731043158602525606629434854737949192099749417777043032942841775155042123399236281960413818389187917787081374847467248283226907386822076555629160797352381600957723629317573844155710895207346766322333218080192864718961664523542842476299687539642063547087762317228179647239890135795264743025526029089774440562636205514825434584268034875319041528154568378052263745670190168906931692581615497916347890076610309353872099684790658141206983379470254660356531421532674996336646346638824208335719424288275610072342864328477055833553439620296852335466781786316154449017644494363395232982373764203734239656781541596533000778311727337526942796519732841859389923294381174261986864335976308618498115876257330081606241661430363153698995700190564574175715834824024599422286342181249192454322501062191044041415778262893360850629090379986622235532451720904819420236671062824186362537830729070219660307203284478704312098882824808977102612605198214712956041141521907478304630303562927929880638995903932296425401464661469431024289896639673732727474928089048108859272648158384194896434193420177936798262559604227352093031491319264913780862575799802157478862016108560512954405629176422469161370472162164605709419276115585678917829014023778804017625544282848304757150918362328118251712065461109529692523549550733953894151651497615067603330660793648489471257045907219181592561256606210141630092613314536125870076233572742414714671082410518465244986074457856265945058410834796664367051911918646039064194574014755830746787374539734906043360182386553621385441508200801016332384796732370943885990614651835625658350539982950341774213607632879332219105902395627774262166152196079189238517718416062087913080778585314422453211276907453817945565857867470323637157937174635317823155958505781712444958892963037646142289993484479285620721693264434469733824694951553863178060536453308582660677452408156684963711353400184885003040212254024728773741342402552986802680908265651764851369376929199456366119377850951314361626945432821354631734677458741655764508776236939606066021558337754868596291731388259250396927173204207995974010009275958278496899083804670653360733170893522941221451713618137751225371399249573774569897580042340903901334022260687531991359143622027068147033389372928460089196781713997025842336310299861383708613240214140560369500466024335648003817605607895171230398419229275647401035192915203553294938421490411284479039241599653993963489382021331857009226585963061502910468777899504461309500809969124605661062505161643698499231256096869055991306656827902232274035737232860536235923836938661308777545159536401033493053154454699728610403418668119849131019669022377756813109954028518995885638370031146148866341964220432469387731255230717720699470386597469988634286635821390840961437865502373253415394238023627798217957774902388567986601209561841399372253275106415362534534892404496374790901879870039271677051715877297467931689255470809098070005228550218521542671289537164326114293960982279768811123833052928513972794238630908007513328068801890571069038395386983770832646984579951843652803129921614183898825877049820334833870462217581365336080785662592060907698255448566234519412015385473307279273344151351935404451868073190740536286635053281085545762937465840335183201209857966284328875060505001792428035453898414128841009642698285503664958961228293031772601628645201613623078732080033837104524067830419869506882695563537291171622883909828736040741478151342335331860102725598776600853622287225709487730096204299143277414071003744041932753178383144810709297011634110280507724624589023088077487358691623604177940510027770140184046903159885735460867970745125462784982019427952526473260025358775241239026764806671769804550063650694558285714099118361126287459767814875820826216068649931882606645499894243392653492321441958751388801136976256127117252837342675185030441692566893698916981760627780553373308712991024777046262615663806177007179922690995132066632773716713536295406609178948732322635034468060196258340140658251288624653708238518085540546306730902119775510159725369011408723031166259727803780832875303730906803747688169218845038157228281861008878333657525341483809182822629509190994097151095128488207453936892132864086701281535140938143568200149965402661032932793377720818539820788833144973484914817811445589863004837568057953680638507058469572829448805012332806744790943231625602873739731112832738384417358936361968590467602395130958520806905562538788580992347550183184388398716434534278846500682604052037933588518482296955353877231596369762201090999387491749374890470571468187041913152675130810856397853473648750924786302026507338445096115002490325548103303779565918796423560174223566154280045784999283781450984081120148421520563658560932412118219753876393183980166201780436384373762004696931301304969075165529647297281335028591209746475452025525307018273386739162143020349640457858336331325735306542971565811850255792259737318085859193989882031246225278400853992936517740855434869046593250002626758598507432977758662103054592054673582970269994857587590576990333886806615795880307724155735975201632319927606220294820011470369930093451617986376490404801104903981236812774776660597627864230887633012357852442341252688084790183088291454969774367399646006835518038598970082283940672483907931386715783774893468481669058580413472915647261378511849353504022443578982564801839082370714343021133989083688004307153244230496919709845171705939176588397618020995326216108799753368896961316525092449077020204977911413216825686197885902474182982984813769461686923094853306228066972468641466214457133199729342935130673877726589586698886044857784610459179433859757549254493478220428170333142010421878302878898224372302211806375708467617364142865924168869675161203350622989708323686586743762065694888560512699716831144915676642449261573496044570370754591601943674048306773996139969944441839887585356109987517126549895994959019130822157984824738521629312607412123036614219763887909071994543316262178103662314126718899365754552834016503783099449534265121722624290417355911105390851875465110941089304404438850026261246988515187190535304964639286542066584005196965410775962493400640458440202617166481624845655221553810448033861576247105627664417632929579244760830987236923389867773120224553190394094233486719425617850161931174228195203225732016434711882159046001337213401647824795268173781196804312486015468084810005114391305442680207778150894486182250597638636987419222542139804998342946966641000792262473820956887484708905878085508415355230830891661260305825505301530527438255434556712951964459288614586346373041111207980738628985960260913258182702069200960343238019298626996566675099446347663383852363075587803823182950556428626424133244944753055112585064092667273200122841571629945372890758476355500981000066529466655945856169182046287316779516683492344519181741077065705037746342674308238131895793436060300331974494307450416459885303340649562103016493186029288945772170316015716195480237718493912035277434112697178098676981031861902660946963991475454556037360566337972784957022346822242310001600870507852168255726300920669719300033913878443247353966463056509949903026048331752027736363481709098145639218451209071980445886578720756744009580745634027073483787862506334762767241699958964081088275942644017320340069045769730271787048939881949276350024016849088341690782288368112126781788100269937175383610301777781132476706512007511606800922019240422101530918276012982021743163714071995819059438616723561378484120148063226386106629195883812290871759352477065788939142966961485268217686736233905997504156922249704368205181640526606445676320513095292504343716212075495565504774182971872850738503445420801353708979322966798377954919395323095993113972502562699989616787487016111117762906414509317246414599314496873212551942376489019779990382731260587222102853135820603512540930976158592086174085214512803289016015267891605528415881104708772858813212129813459941151908679350717955463137713228674101821617526375807939786146769485431228698035259825033799463238532409286567707245827043833722226515622759393363072262443068903748517732841431665297787969972970017711314228200349033922558421688239593615958349227883908381997038588436329412578409114015551084055302554583899660631892920254320563512518042941481553066927317927122414877647799590558111659674239233841097430802046962492821576060688315331959816665038355291559699552680436520839300688977294348186595099928550101938462500643174471696217211206480286777934007147116478211948705171520243307244111962774106524850932367385264697612872542575883213948265848472508942595344653471662874032607721762929688016063166816851590191149403227704266109042939958621807605554697284769815890449064028114198975357252957762759494041961282375360258290507434890430696487340218988279624847031473618006603183007996677917170771032566745297160047054076365077849108598239119651753514419340634512348603676799196030865499720395415076588707556092057978012993184696581337698317128303703158728797350217173531626494092918820686081154881468030834974897679049240534391811445946966872572406847294815893844252481909444885311351301087419809282703176368227453657951195368567378638677774330104816117593029976113193289937075606980125104488866033051648709312669485216212714560371955350834700988041742599144657561113693101557302951500857719852147435430004723807259554154901348060207860812703797862289639577925087469199691234927454912898645891309938368247029784820078386158297714396022519708471371121767291909485678926434989235296430763554245685907228792551623859118402715725178009920421907117899785615309278163997532615002643451952215385834257622043978683615307999622897104691811729485468433581945983459819940381169208854225042978060737701298920318226351676890137020443192578777436178685049173866874151403009765293853588706200840740229188654715747311120224016788479592730941584076355318600249296513045892937610489786983361808824996682175787167829807243270766451263273744148525222539661643603376018119470350540101171029010900890445801007812123188944047951013208142008627833224509105853330236231102646376039195177519432794258397254502546043016360250839834349684410928828631450771989945311168524393269503002795910256977663071838414101403805933182826274678504379812441217900408488250766659548599540389123713067274367206721002944375029874636289161534970218167379419959579470947014597883646996640632312634433903521881732062568516951765387837396246185749292652651345870615649008561653665730053762873132034281582032915447824377645391957866406906733955284411067980137592240452373043912034507940594422765743877600323253879329128661976334850137680038465950320384350473263802472807794245901701314983458105788906083540948383302785505352592990864582096859220619681247644931849389547007300416880710779415003362335783775761016811340336907280057455654880973640345672820498158910562622761221280490267708727116693270170810815298966221130026319114241778592943853850420758171683307604533312405952166084905439815409254732486256142721108236675065877443496153633308599959514025095162470337000508397614332594956081188544937507771617855933208615004824101552813711686903083127466304712869987224609034896882902991893847308080712334628419611989948087142772819593811947433243311598686802551523343432690857701473246599086014609470486922910247830053147374670401907334370513452102735338878233994261325631927629327689938724652561284482693288535803241473575481668837824777244899308019943297741907740664357176114587601459349728312050566691457258680496920676696852629657622425820651826431544774351244339015941993260812782048108896158880991612486652787002962559952038305256291963579000487613631664437878797417169669658988413776892104937270313299936139365004820785757952188938998555160137160991807593328595894536778959539229427869676444470096610790101255823478524130542660174722192388169341038751259374438268830200526304409465041408914588198854058725150323030628401821891190880792310568734056348372255241755150652326903056730127463215975460023959616018223646301427634238126025279858679672063207599440215375338469167639475831865833350086530574676149105600764813584373130958006981191340073070321138982415405248966651203741822368825859945891468322648377158500990519846240639363657287497254505320820510907389298153118920972419027634860877525847878775127974785712498796598988711676643947724580550979913673469113929385638238343931495786208074003384170534675978733458620019110468917641206194330425896694180376252134016198087539054542700298590883981033719290622729207730642226958916475619634845208485794135297667978292137630965765611292177778212671477789164590704673906333125011917793528679375887247633868028089163879662851783410252775324994472705496473173785767352491016189615597672777521634987230615105678793010895383097184276283323833930265847224762302596247196891008880098436664643474837254274316008107494113608119966591530839402882272401068017462182795048383809864363729158701609584692745372955897046357948279707475620021114787981056016847242987512629927615240665397457605522264565583510712952650856049482451885536720173772509221964640581777159832951105854942009957607020102111248835325175838931153028319285581047442674528921845274614739014487379571254931370175917669289556815978104336012608593116273081777101457935693830763966444269497745667815198319403587096945996954619435772196823179506772460583753529622370653978286855036687733238166365574099174252361690904560399944087626853162423717942832020619133005476881058828032070195823576014258281918388512662803580626032011228827303828267195280203323715974162972007179121014275663309829599864062175045576255183766661633475149829422887333261945641366482520248915087244110027644615591216384912999911469528674225466319495519726535548881722946184973667101221033654363527166347528076464018513617074954752217816609035474668420518077495032999492376292494605438842660865101064097932432353215935444361987816162687096946416929224355490233565076284095273969311700907026252582923957284144875277187750467771401322694489462555276452489063753137321988840060295046190773463598632708330117205761157240909727239338478487564821750248995501113197063972654890268706297632217939070667752442218166670987625095652315447828245162304138448606146890797269672306449719684513874559569996273482405810547966579507094154132152262327948815276649569041003298094978607979755045162105043729200365004022367673661574384692433622776063049149043052712371196500957140807726113756038605187831192750010693303587495564502803385317072652893517914035764910451546779282897226310703095242005390696048158319586517155025762578206547748768767808077594226106498138553668618045063981012476750745656680738789687550079528122687424665445206401747079833934670951133963010543012855223799283856396780666240870615718054970220572453578450432598045639864299638221917206596214418002796845151587005452392087181258382902176542078367470269506691160521426772725531246325329093938623022893096822132561318735872015562274452756054833381949642095944067902217674544573797738718912559054692242190389069728417651365587927846469482909807650287597555478639518932545352874633663053158153367864321495556878042414315132842791068525974125935497845380821660524069307283888314771518606386574275812076503955303412938610521795386045116133624918371499764922064901825367879459409219993198474496499700583474106715294545761453090670214360585181510238181017971040079901258682228414340431189719422524214160812984053478124023765335141319843010283420875939651749048331850437799422492602794904331681708658031152729178674768590610809553066578883332851423392654178618062573115524908972553078452854571763164660929825892310223943957955042238920778607050690138190342075333953782554796620035680316247225623427376227743754739250398144272171428786678558312539198138521685786247299628651628784138525737902242569272130228415103325282865007977528909622312674743284195180866691106062546863698713079655012260046551825221530749210942228044572555364851714422160406564086587417812193876835643811876990268798165941190055049767159192862077921094045657316163068127299521449292184529300485263954423484217576000918402247675568533776908283779551253804415628942017090580734468309891324962942130328745946774513997524751518690569648626633223903081649416692131559229139542030982677463077615325853469592932970902994714577185008245762467978069652733332140960161866628864863702729971096620247384782332592603230038384574356137164128039095299612270570405323355912826980236861611521675628551410981493335741106519211967618434788169865168437102220647384768342036385166741937807308395457606938502615037003644200832374293794420761956238997384825635700841069201081320143431838293297684101863614206608896030103646628487831174783330124331660845294236716584976351647885220526528005962556295068795386536268817212457278076944720342419440659707690144650281180595331588982106191346213522740041989590451995744469446692540925392831154609998995392751443920399265766618145036936303659987316441764631470040267149910239256129227512985842407947448641698974959648567820279024959741585349145274044185466355636649996520984124866830558314593818029890390356367803324434573579847165538194898006114575102628750364116741166205012414858426099532483917951069310948875072529046560416681239073473071677343631136473600450736989163128057016431223586186375603533019987110490023602094686192952799947373840011946142754078806381032151247089621406933440480032427881060522333299406030943579621693693021277096741709856145017641860985464532425524867640113948987159692144291659081085529601844811319566546135394709854251812471449792123877965743803066471620400385660761806943830905582789479598236605050206819182890899762504893610405000954442842463860853692311604370344046486832855618578760742875080324763995602172217790096262036811450895482332914625940403898441933841245673518835656486626241927723185208979204553224300098344703843759952509737021755154469126436096510408865604514752214236441041600483494047623791115897049125530355579160222600652157004325738020641453483895135760180185961720422908612503822981804451844614297081687609704112217404668224811408522549542384321370647651195840149019926100669066158524025904286026493998663989150158346444401670367561981138443334339083773815885094612163079871396477799081779767364245028009221221439435573609464553503720950243830614588651836299773716794598987860299878958102244567832435284385130645921269302777285106409974001956178207890026092197405286848346210376544683803313516567781649075517923158842936389142127683851238047351309823392487651618823542045791746606647574264052469409679029001221013866550817914427054261032487500211438399782716529063290693838126835136835465724777432556987239414277599068626126506434312387012776436837228011441565078396397703928395673069187357203518605260418171128778101329435944957573157323319450206122546392784305845604751153919784831280854585718178906001528360450415688813267133068967775901722311131642056306601613120489003502749533402876180426948449043401892540226757361902518011909796298626476835160992494898926031280803358613703927440427419988968727075311926546721349772527554815798732758358110690072175324779190748934797544315712679792752726703156995696015980100049327571713241971237480528578335886338512626617519831818518309187399381588219711255338802358931880887191916737268740404365848555491674355223355266534039607623658300774976239757022046486569589791661379397117175992188382975699676614008409944725270170025296813412917755448807985176459696011408699610480885052920625224883026246440347551754282357271887443649115508482599143968803019773555506887748367675376535060815638417249136175400370802264722010180068395717700133981558190375524597183808736328432740727994046171449056540826705361269496706674428645084623288071702148917690212639097420447654143386757707587452343547765983376589317045639932149809063701286624307245851143909569690442194360097303452087498958937178168117319877131292451512404764156512702737155559244121906684104827875902013533313649121338265880596634384070985097704300323360733158619101364675420638349418485094774765303450674928854165744316258920065147697341154763128198906033067492237614285640526862151229973400470994631224733655743783830589003022461815653889115315861628755774013587444123125041563921101967024804197665358726469742547865042886390046622512353474439317033711600216539370008544710998253342105133771607435785883339219891110177862940075833372121388864759681471541591446690350003184347958167725563640442736840890233566201390227178537916716673803136355199686926275520167867902623619891001344474652054975491057954018405579327395477443238098363244989839897489409156548445948542832453212826120288764639338752599649197284005075963680930457044509689182915294860257845480221190702681670903302908242749063023713197926772682367749110078602950098939978084978409514416755086276486083746952743216534376090240498242886662650195801251521275418799112812185441067865469848583804614886499179543417649742649660830814275816264221555233960041205431261793309683527427120292660480160228573930288993344622382358784232293478914571384592225681088526429805589068679747100332808058659083735972276320294195014261130402881734571614914070339374153411002557940975535671414309308114116960141254366573143373666234198784281518740382240678502611330878815471214684921231854045553718509334367130580246267107067226323262673052267800654096839675437891366780058827097741152170405493152207081898504285814062235590022645784385335247508507477546338459853100648243278087475239124709176966529267148265954088212258751708285935315856141888611324646046636755478952624702352403430790445685013738678404362618692184437794161662181573852103574502744207536015151006907405637936589442287758968056810109029420678521337443729666410622546551715246955152884818609493347316821444269450257248987734386298211182060293749522047573290435792419031846093721141246139207649927869187706279125018314950691601155575999651716130359785443663036106183697849671060199950872678602586816985627052807495350637412469038397880808205064122368905469150460816760913588951107487846924633189045598264911309177200685935598219251652046249824829246419060393006598511218147914512424854814689579641028919064038230383493386613103093080464561856903056013460325738864033103915993439776472189488575556520222079910904056583265116132300542384943795718093675127261277784854919479084830350675572654896160100301993143812279534475646147090646222905824956872031643396738876190427592682190545563076143002989524601736509725601828076486674539320063179682989432061520607027132645849646046557428215589063000829769186576260266770176649250329932619570509084288242297489526182749009620235125449265479279940732083132618966600359711959488994960340874286369340158970229725428051623589251175512093447684487423596116400441897251619571906983322781109587712997131855629195884612407958745740548796282061457429610242802511070336995779254796312618285863681417808452599772611711345180242288330184271241354155320469046440985426228172643024614035578503187913725096708600112943239070391783013771721343142540722491011987560817344107827655854559615615307338404455732103534569705307617323800453870624866982449321293776392500662397979868077431565416517474861070386851066576128649208482417302332941592022674498085213769946116378255037537765784143192236085006685808278926648812262918457715656094038837066388242204903433429403193078727825639000373086426732982796717891712010658363943166556932611964589347850320554756910467309718368776324167781154182252803605473576706692349161864737838078229772799827893659396026524481118195376835462191541802972037328917391779599948111604484707285966858855465952253796456480822112505356315051782389437639267940956106849063106052737353963283475383127395603837636118781417590728418016318320775379167843899311604040096759365095069916097988890655575477578627142594830211049172299987390909599012784202248746791672877804238864349024008052727668772209321007500152794384121864979432699940491038770060424753386826940477640090025445302532759305278078632292964806904997938811323896234753827500537645504711275513161335316677089966047148896123891053639484871304038557497464747456589168688843582764358566706978992280785584344770642624233796113133890130563733208744837713822898242670600145008565203405235833733756547516821927899533709232312910988151749693513986655834174489331049793707862456426519783315828595292526878312294184361151425974852832890007774278187291499183678119827847903783089997843942362804020514447661786597558529847100000729806954234037150405828230559206373308600400578396345155143671987595018968043758062738311265079141617834737998801347254017996928413757462114994367127841522386561556402170134275237029263420802930613778677767787166239028821839409734628306653253928977892502583817233114000884635899826490377132835581024866325471277664914669147130054373527757546983014470529645910604042065365837046439640224688171385311499036719452511510188591529607985911714190607152523376188056551217751708979016236412402901689293694906506631214742422937803499069418630977248141087176977081081261570472835338341681774596584789372134160359030771366939005702844879231631188691676304690999697727445943471181279018013728697782454693062730291167027259945340628814534305417534689490695274106889745473111966487397504679774023955419339666466803349359268571872080710539778105038142356554518191940609423129173836356553846698473042702297307313218656093539426902549438888516425837266955601866986397620276333654687878528151286839299537637568206313380469143221161580639537307814002026744778475238448803879162311684959647717549372861801333664673850286121552333266025268576971376626449345414134527663782284822485604766719820208509457741651787650820039672891619409640873519669678237525202551045213043270614664054723669753884653940921641942689295759751558054043254375505803852507571012492119550102375321454686453229989538769065220940197033024731505547113619745025893524115229811676636886985075062635297297956389436217848558772018553206819559256165054127649852079980806896153619415695914030841943187008438289083353858463410474289590726187997693942567159195127724788168806999860506419569894442633469968376254155295551724546315148435108071923815796520250934147753335009672082240366612679005597645089796397970333514072114145801986690017276031816775611202727698406594950875424539098628166057357316609849692399557824964493638789710528979858753956439119940740778594011310964978748126872559876028748714624992635632957478019642101610364362312968836286064937911292156185318364019251230112131482595762186870932008763125115448159261287933281316536095692969676598080459846358336075881905513295457067430026386389704200482221687405511362537996647598115691123385420986357886464951451298808368261697541102221157658754155031270788068542931253071043395043739245561965621928596646842574347139551967161591417456936943404926388437047861299490905119423298046802143680802695540238221957066442408785462583194786137446413108496199126163384253374470650124099820675672401050194203577119108727303645355361002048653948456602459259668553330604748612619298674685178111990583726633577050176512838485166585277671287604259195640903297215879730686479082479457314711931250941948684940669931554001678600166026370395194204595152522273717778862646876242051002628165897822343316722458416469463428339492562534426575282337893684829526663644489778425867221762345639610959663576037143889839822863295169222642220262454163011646257251214829580373978793744426619077946756640284888170434142136749043841841961586442285237655296064697317071225062941760658726590530667332768357961107081658639585186046877122046394636416475341132196949317655610331429623587266731033906614349906818032785941555175861932996982675106874559701225762359637015861838606331843105642829312639116158840333976770971486376930887574536912916923687137928780667670332860432190882572530827410151202158618314057594888563864929513997736355736014711766051084648061471406498169348874502197986358107688839940436838175819004499132206797500615366247118892846664288358573851320569152404633870317524048758972712857439860312849672975002612375591228727595569576684348290338635827611346064895371283075051880511092926235220634414996791617362910796975068198688691415217131504302757696435855719017407628951783587582763078790504631918088072818923846040923654288339937051718857519548517227880087253361359812746830939129518962927312701469362529053540365305698655073228616609069390538401012751288819819489882606819006789808134834360652499452753788793754250183700447941785139491309186912112854809186833941108147256131013672431159214990100494586191549394540922321811580403138449400722177040119860667251995380860332409264487278059475869637753289109442634273641067822849712142532561618056495590565816546326258428090098338779849828842610432726327741881454044713685044551810970094568786047862911459758285677026191664472296918218882470928851622822986832220765270972910487658865565157619208711543038392999688370902802668584785763880116436589857946538341134385673750404922113875735249669199401993758422925018995698379270005201613181250541931462527643783419161396121604979469125706268806210109062043444808174904965406906595204177897922461063407215490977299167612846464344190295580278425212742137084209426813432922907941141961062647575604776068817221421728016074559594767636586839989295767931866474525546591043108913144623124140689029781964221434400073803781512083179303041777022532144523649888372963231506050744412223255027201626017507764928923776128368381160573839731643999624333317772964869686820540426901337437201784955560157599950861535420992026237997229048416338252900381389673030801678955228680897989364776945216946689821143223145156521149608634853790132405312057020969434145464355618706212452930356861115842147917460607015820263621598833759886264198850706750264129982666688849752932165905032695818760688746436119767959483562469816198506937469702671419899785153982341569576862474779316039804541750159761624451209746204041305777957559885641122300461623854445944827187775094040842374102407696348373907562518917079948018487797111844859634559892752769408518697984936948277349519514052883344595961567587908875719289625135769852776125938838980731112173552789337949532859266606580445070947874596944720064690478450566209401883296076752169656767922159073932976374030187776320081734315756559866214988529369019175591016565364245727464759378918705495326004546628119516817848607596948922932183023773341869238122147286595162688677340887921679702659483344238731377515549706684268125077042918437199624088862163938583460272531538155277661949640296184572105567632245914371936610269972266810677253724562703888096040743456403152776495757752382626557995632299576221442937868860263991740274240618198326762947607523291349339921836848326442343247587808373105807854902732839626026981870583013074849330333062975792921562985941544310757218330790786741285710843815506992429571315072985950502943066433705883717147835898163671822671040143193400378241437768503686006515867165054385381520506815286331861245713077870037992996644367179167911869840667815907317347244785429408366166859759453633449512754035658428898794679778613263748911666468346757648890303162783914001156482396865649845735123920839974312453945841887528474903044279679453827820776084269208850837520598644982019985835046378547505787286772889014011768484896903418730483792904835373727463982320271368856131739850534138581219471563996015053723696628207198771689242411880713305146059924092500337806389645629728187031519891517915121940211150869144275100007989924490271915344675944107052329154159516871386489991224460717073474527613798394770318382297962329342233107927153427320795710627194825092977567899823155533394749844205252789998463431285595103290918739359281673343176889650278144629304584833784757648772324914968576351717538070049151097843464759916572966472695138162884295988411176917894148097056292717258243870014099282538989067886771227827670754255018392575732364878929801478075083881294420638781757602200750235398513773698266830857559201424948226105832920109752394729877689434137998572734752948827207658923775164187796359889363782874990394343554146606568692173643839934105472610925282077898031386653315023346994816928922684660044689966090275502705905750308720304795735871751127411923102604398230013135769176773673368814370599421780648813891995935970055100128734669035060775470959071220661081593971895946713739035304186774806879707659409570316953324543923289551037942094670043715800489967774816821593821577724144099645923898138489581995494607780516009305070106062694913723788863830250802218243395719877828316728023737813412661953399596407289073122332252616344094648934871851808675211925750506923302493732404448681208170340284098659891500371354059899707463231030072974632367274209962003823095258048013127219238609552123303095193269237327585418740915214203342576691541574427686876454725837868238258390912459721761780978030563355135339127411881200075175399094494906964479922541936757334218964178563618727676919973128570066652785644688621480423076248078908046878784526162574140795733495494242916436280097662734305644073334153644163520935547168081852050584543494176295052041316547466617842404930340180114422355853128978663524095648052171924474791746868065201231965323682713780708384893755017322063911300699724852737236334044846155557256470800092897377383703206687454560886190865457845431239274879525121918990084037988753545368870538503595140585812291905725949114493225690900714324668077619878204469477032674606330923832195284662328688825744031768637534932843408722054086870112967634159678946862094377081446561846611545827600119879992480729578832982038887526066339954527047398930202637175520889665953197025152018682961078182995081185314874765266648005086857644710658052161908481679421808870901022468242955190116542854081084877554490613209313820821346606677525243708398886861536126609996528203560811381081606773900116456389052640815646040187824442000198644653500255570083156016453836408569812293013166466570977680242721690725032869897781557771499899988854146233512097006416512208500264110790164644754527594276092307076650999665301929799359900275523080254451341830303551401992499410796643168212556797675207179410395323469863503266790950043893322035655361776009014860601530288367329296084081659480977238020464285801429969588273848409556347472700587650227854267012517847801216814377733024249256279912295880912223233890318464286050778019902543624536011709583529807889853069432919142939156764187409585204956962149117535128128691981476600866605308283470536224522975810766159228603955556735291065452764416460906757379141519404866610026196105105585074260012052442856674816677165215323552422759611488778948487459840732973713480819768447182904098907484263468146873937398534649786341167072777781828905241493504625041646982469428361015790764061620984047405716117925693044867371217759344194283193859547096531256357498063606913821885967020145260060754780188491464327579937261976850500738764162614557723726525060908702335646149187927681160940809338365953211559186658250001200855340488447880094936579771683948251043792602098088246387030299574001417700565066628236951659465360321762278066199294353434812777272963003452374370294162656866320739378197804747020713547409491560848363090353493344725469074771974380439919250063446481002341887411411601811723499479341200317322905247143533949565694134953014546803336616586016385797093812296238660715026363607905608317329610530888856624776486993161699127703327858278425374858091522612981307563012485077001520176093751939586243009466355118224103650241686514009958163971684444293127737092339527136983138463589487448560698014934006257105688731724993422253371692852179325611856470550589725374495408172449318488951613574867947793215313846238864058246414887678680384340416579278401390783245937766251897809875875378589652849652546698130457876020301177393493014493524806913831822020917714676237645116174036566471150055325667879769796704877775605373462936464984748544764887594388847678285242023716512509172153340113073488412918123653583254717904873026396838227881189926899319173359224863551403794322156310496160312860175950867107170026235153746239746358181973027098321139469746743378237252844305245845325301514526377847980920220667198615312065133998305565732032802670667127672960601695953509340225795449658496006642595159277615620302624246823888998264648765708693223569817591875021030829322563752318324142278328802273739809798916372537278291407077875838839160709229564995345778789583404902356043947279547609791316653038189950135581622475557124288043740983586406123886973620285085856453603839566908343970079955120490854344755570493722992104898386348317830893161269267486492395104142699419420222795738785287940887241905730047213246506055307951612230886756657148676975321202397391616938194855873269635889135516940478474391972521453435202796050574732621930316035707743031096383546802865125040159249924433983028415274039364443735241559555406198896317052768194182443334114637698312682320368214783612302145110597098516091018170205027603333788249423491199655294367089456257182333138456893014620304473715648602669869042672353826715231146191520113409829027217031126918666761201811415888575745366874311160968980260814517647179273529737602353108830468368589957939045030293283098229937799621427843314918763912600058239119264573073305616812788448706521660778922488864941919468046479094971149914381790761581361357975585151044441726324814816538178357190361000523121788522072046398718603189406237070962681914488782430271356771077175851255376668056305073087170108414993468662165100819783089518130491758752020759556931021160229095445285065381802282451780223792119698493452031976737814554100538728100147272591539257647515095958700195191742743629656043033680436746163965756941997621066554031294219506996017844723768325065132743035932548855617439792167206622488782840658305538305417881455558036171483409439037418151411642265300564112342968256262709179291271267862588557218003560513153468894834444933309528819134301811844733804552665020919390341216454624124057344872293546516638070249304849458078974419389539687498714727725598954651358701247646384263168357014639618475041222457302281816652143553968937354543354350555677041843953783087162645024448023858844442751885205946355566813204625198866477817937080145470992474886124681765966631257018496404951690520412053384061805956171872910592078562616358130420829444409569865069444537600551398389200283674385728461443805473092159479163569415853763191898842760110756715850234900244172762848177921940090289059870713687672205785503755480772409544632616922926224726434727287118590311577031643997402017089508788393270598848040056555212854144264121048539156107316911632338764488149192951709904544587435609522224167847220112921316857970073701857069262868883176289272409122669252100834799111623062204079026916581760718104177382458435143706876120665854557659040068068068142494676236070779222124477964637285321417133390263863447274226784873247420849549523731522559365536619820318093030543692221423964610016476285683075743037111349518534249540014531018796463024794254741823640609104897706213273121728332708694385051382327900800365901207631970734594000434468897797900139136843090786988477688933526684090274053141532034837049797089780056676752727201185855465741923071195748048051207271204669350194667128489307666668014256001179925790456988055483643438082617067857109755462304856787511302427107310655854957998554185648199910099619435420298947820327271318391877738861537095702667735210807105055471110016289894400955927976457420154216935527296329024461847747183605463347735213406177138719307246874739534904276381750867157937650425013204006177786114348615206446791450829433370406751714321289230807191881147015069221634152832068617295252522585408855257096240016396948003229394326533592158606214556632520136968329773089111462970340668575886522067179296758789626179215557337515888347677215638308933873828698692262523827722130875177817953549354289690484058093927345945906810404685244135103302983893261198177087355745352677254430127486135719103674096975377015099610545871110699505077019952614176200339711241929775667781758850764365330458108520968866651472072015520361458598438894865102803929266349244110716897438004999277358316232817702111112209587862124226485801947743492862907027488732814798803809064941157565423676077549407867596522833890910264212184077678220251922885973660596080555874311152843322432575667194276389936731996406230814678117665822389744893836419939387454628292565750635836512653259724245415112532712096718364192110987088548887247549388416252855242703645662270221236670681148135459946201304125520107041265005978372157910987480090602837585375832638922552622907206735575047683753783399911061037378900699403407625544979661240397683225788321853945177933798191099040132296019293094727104245780188225727692793599053422656558846210362471453950912418393548635897325391440823368238681455347759142526894600126514681450968547999531994951831880686283758857681139741585805706666040540650850925923811015900930511274560915896632730050933926231508854148843622140631615268141344547859970952170093672420504015928358473121524615040115873362986390016920121102431280938224323264290146000305072039465388915058904395837476061077053022300257857358036507601063798438986258312175563560990142388495499550447676141897645831173765810761846177505042044577423808261949607400637141895031375684719536169689569137297837318107095878847197570431161253087622294260402784819820544760531179911378797125014132778721922878587063082797284185267964279734087564746577629021533300136036074252826361544707821826894686061867507774902014104331992335439703862033715203240540344372519869548530926506871029156300338303861546493403810544595205234081333536235911558496747522117656010339273437819743457514381155417899329757183602633246780537399969382038339495228742121431689265071081849707913629633853682487099300760103544601512986791928831452405554266149366552974461830482836212937756603819982296625655541947114670543229166999478878830111041042176413998534983125705051222928719470669031617027013179815053388130229715910723960188705212488109698905331728554597743438832230159246878778746411231118866954134407800117188532726896618995264764567829096224888938212735139227466681695482782044915277284594945341172967630519592142916139580504265692766611177499022611596178542864892162798637666484457392552651293513027127593017220579811724647240818327306084996132654296224824800096500862853122955607213693934646572230175051867131321385316518744263905589350234407496533947239743626086058877458995193370464544272491122125501336532061692509618141674951315219947050038694066336465477360577663165719930450646212134352018582742969771374155879227661161005333122620639913348354665826400619142616138028709701043283625291235678333466570285844174974270578896565578615334975985028812700951480551620898154237042444064153468956729046980625509807580145385630551105844283061189064249214684440183041568521675581165427038607809693275473237902610046274895723136509291859490426727499128391354169396486021748552942670511988718587845548712689432167217671470460743408795803280875024573800342072549952973032672898372724561056673086169140260240999857859664760044230284715115131184167045781563299619004747312142201003878787401277200343064050851950730289005485902720755419402413969871857139322813440085023457958844821877037306668601899714335791992872290997041978746766007106537055988831751928049421217022663455925937394511335371273178042551948008181972962068984752460551577030453707844582703584396030988775340858902560294417736739720094944358678356823577063273095508438164513502848911113807309459215199355263500288962494471867329790850832629396342215431818342558179745013942153970374784219105431009227988758085735271323043575762669609424067731424602631335539710059331501095950050789826176838359904470870232360750722009310717842286105088587319115926303505947107097246516123382887721920333121997078923115880000400592779118041855839652169125066053536874984885674041747284331141517838737992320040214041426385403202741294631680397710158573247987821751105342245737605116126462351426394655056234724156816801300177573069156416731497784913350848963609677372673700744342698350114616536966352885704682471941663863437999592492098021809524929132086781056483225292152349281601682414339837478242994429288346636484228232301298186230364496195741123197826427257775680853372124708039825801477639956236400528101702586187668749126753580143457179747508892610041508358926166547532928614376165542083684957307848065091809695921866490435021370378948813409098579689686051223061081432470656199438754781685911248410303762683608475019113573498635000671594562476417577416999964285391811898671580033548241093798649763864894967743692567828454392300697830623236972375424562541425409219080690800588297673024197865026241843852822241622016314215728257819895281688855728501656584622995070560969661087559532602818601810671630544204526535617543252783804870412016244898097386430461596258596690814330492300616471749022831071811946260517333345427107024590100988042123817582417626244002643570548392406532175807059090153729378416934204273405223436243209805138445131590496897379071021143094922079968474299950669486732663823908363727584939259360425334772808642309426880116112099222309501371820528301666100552505762415363881038660259932219047129319908364140399005692648608264678569844670275111182536633134435891254591164567614870108640345787570170529987296930077528103388551513878766836281462337212271347196296011816878685696529587456778599768475613018921196148158094394614397400944701893096352501286135313393350549256341163132465307550059838542880874349669777052991779289673825004440891331479434188224737977058135864755142649255287882558839334831054388366809569276464867690689876332220451466979012753421242026656051659747206581905928322755873837936223447431721397102859665372066645401084491109147260697977953828007514071281836323029434854271906362161217753500992281048905785911323515955676162318051491692724032017244468187997704131439601025879613583679002208459338479808492353324850408884692535649198235485544617894382321260104824864693387417296911739522345253815540028368403462757549947059771635532034432613155215952360952523305681342576382054921534390816139249904180159992344879538135832508839363821813563653882693964765254490275164419787037397977928689543540797501236001237216317248294929454224918083840291799482142007179620020039211285503048930834896524096975833939760364822935538400664740672862753342610955649413801850444930741424509156733309839591691080288438429079736698739677063181708476066011821034771194831706082909218258428951809383979601617188381643005901755141819390191191322679690426326640297095854006455060071730975581796961366783683626660583862091231673445138467744863602521593755012677765708111867713271560312984712648280960033073524720397971074536143684586359152041647756069907527153232252990557440004882118580250696717751513184539679150333409663736476343553055945952926644837801700760593903059632923466160397286053878549455016686140542125347616932357523570116591517967746929184889765277905467479470163715467380887091766907440609184776379113002508196124599182876873424663770145639187629039575723172672948375096672385866531539127345444567224996915105514660634349054689384027531481553247681934670288168456854996432481766591446874588066214228087489723993478982179163635333813479616447691556388483037018970145355378679832000268079761650774636143956492241219454973816796621561093916660305473155259705114880379987678973649220611743531366260727053045247391343582966475199879447181894581012570601582553382820268429027012931562635828186903184248534434388479814917532449400538204856230359226464966129400990197684279496383438535307747488148771765233415549308066647607974259881158800394288088059201129425276696385264361165334774549832124237681701720263244176675044589864855822862168290961393414805229267011787148193987489286001618184505996018356840811743331947582802748241780879230605101999040011447007043898485298813700262028316613024985214981721199827963832216224951950498251546219807762421538797908177536785728786927988917618823009542288363090271763346878779273452234349947441668974088055220033501383727477679445951377477545581374203263639807566574043959677444126307766681219411874875070608951949753633798554395100384610286668834484177626013198826114209031057858187983326858179034579510989662471906085161818068911225759807257861399942107335238639938447806797938399141560139490612626960460187207208681164693626679326535664160473151765785221824815661579128280647218837822855723078254719252684264767753678467861585054525829170772663323398983263887690134856369730429104105324277824812772878163656626617837202181196518508059142744973107204313424926726167899555954999804221817544510264655655949769833278564703648542173535164492661072328456775326363580672557749750660130692652261217112741810023053182119510718400338120537655143925409936286467443594193968431546399869944027548357289850455317231406898767658763847584647188192804031058347588468720693244445780130305746854114867312804581985032061977061148867558192130540163028013936185758641743925835559268041321636695167162145387563165612566035984832381749932638204766874437298576431141617274124588482703039171430555236185725786646565760801466328568440742871781224556996856327810430349114523803770657233763035191990779803314526865413685555830391158096278974564584206574146643315536565159791956131126134159107327519029444039140479197644064688301303960230923553476887664812780350041330024802365632218192596403940602943366440509467428082617417784990751828261634845237268455109861420287187144504548211316359842475921972092145313320386077510959619633559275901187882582043058958177891819649607832627375815725784316811420024061967164610586182092053403030648362304527843523706434715049335982038206776012354071805247825455483320468631344145840325068248285427170491510821087979057980050897058409515632173576160614537072796888762117055890511694681010313666383851180735628671410934427131477135891238070218756937245288205748461351838857670517461619640605694297024336868436743685793072055079116002909104731987640042650203221986398691611899616057059700759620084339809013012706118754276004543164358988024792012708219879324422442292499314037060096607523624988924929712769290238771872880787868538944666697956406886183276930775689539779208927129273391290041678689669377832381216285677445272194725060998365067394966275029864421334286516220615341340726922659617476027462389399774686627340542871315768280014215935837653940325709335353412219017832581649953443384479828951269136988292305482755242303552945914380253146960462722396970462525786536206995414542745952540046301998250601375492738065080467027408330184090931737145010400054744933971700394828714135616882884687096877697463576752523015048220925926256688952930866069332677510074695892098720107060933677982555239347420641111256292557190604841395592608628379203133626810462770390792260734134262568548473594940117944603528524394977634982509409199186814078350673342456776874301690229688249940007197619681943671086208567561018159013705304399330630629415658143324525866951017591665735066252580579073706832504841138800017909082266240456734213822953681525064929365580938188075921562160258602476127106989929184747385896031814829782736836661424176234276381046711788782292115824430980784623354191477177309708639029610561238937933070299019380580603662421308612126702467334532688254012709512373379370622487418210141488111926210599472820348985909198288792629932420294857743031468435029666890526299494520166586014754419145978666453073095875020904231652306633343789237128980234762990201899140636047717785495526119587764463096936722530695545829994189957602217174531000502696906614515834847517497557148220487103841163038281719884012919787921130563072825538686838683018652130559398309710010185089495330373116523486058955556545473012536300867020751776674948287801189191987047738269795761700636786631115999184775014266221320959059794299240406842282227954867569977547543450699925426843645001247672186233341335396124647542185893751613839264553156026736234942742261055582616436739468903735791907837848853047300113715789292301799834086504410949244509171177860476871880418195835039498967592849189288512784594902147030754975238930956851262695386984209834735843670385457648461812442608593925854833037236411107080409124432097264729820304369694311879556423383783932232275537778626083226265755861094621123500145592938745090178523143338609228923718396586062899860525478266250540276232387318614885375694698539069828081506210560101820438403024888186871993829349869877815055338421239231211766746635289626506301373165772588966251481681538191766520008847002455854829050088511926160745122718748704824547644843323624597110382555125218395334509353407489929205606931191536804754639974548213289171538996057136786578920622357969126368241139366335013989576275306004802936120885134909167585282337262872593877230206796499650852272096297788212458956816518401025747986228586930928979813529864425969213097004457805632091244092750330477405255901296393941949968942419278509259047922047307746148405803456702559553028610891353705458384856292634845344262880219897692404251251363346498657616716852513242190274991312391614341566635456185430835084945024612990581125883994649867959876436657279142654533058720352422640924685443492049002747714455349396330236585208784064824939722708805170987005138108114318400685024346416417319160953934232211758380842141173704137258682877802921653608789456693117156958626274237501991195295686489623692481071622545001627186273818848078258888607009675345134757065822456265499405077552955910730360533439023948584975176147792572658566184693301708462920900773511992357701995037061387382126595994018697511468579861783396972197701750030803378293736256344689938256664765496550730724343743491565942476298103080967388252329476142547425374640854303720151534114466676273577818610422206994313126996095645739168374354162788703605024023918401545876115319641557343128060401957731363748519054810399606580580440817907738626168271925707200957734997441811742235384474950835762228816232800641727187680656985170783624769367678953801538287586440305969794340801701492601698502482274300689834369959328783228377994675662130176092897010493348345519495768619975363614683810406515684701767956939874663485318548667167507705898282487678577376438768759785473499575087660663546951151945232337876085081266312278091012098252968770079926552281482263032327678244971172186124111521104013740823898256679437436396576710811987687555459554098969002186544264885908345751774833678570661884069936122430978859426886061145312006388556427017827366331106380552945055919487608475964194915846841525152248202976206640474398633114819723958052671454191994567000947551860946902875794465577807672197765016728446762747912595945097314328442803312930030718009270694082372438714121829852474137025888629748614748948177613220048098620429921894018647297425085558166141269473241015413099843057532608670688331502181342268665481464312481593560394099193170631084887812537504389840432708941604596049588467319204230166780117102325565024363323880306448587660174442786348575521752511162607006340625996218744636943018061713857206325687124254433519284584775275646856202990221241809635829303429678643794799050210199766187706945378444290486446433318736074134576629884791167666941570936375630293435260600687307882939319707046682383414130929463038527104065997663416199881168872505742910585150132774093194771690628351592371819145454319255805965450297396373031051943544116244567103325440047925854332528555459020897134415614262716636325366291147334478992982335128434451634132721541775158266213890800169319191569372332688600918350133248266189665261273315078725725619537760196974021305823532110759938370572032841910893676402888638149965909595326418005992553285197257392961669263102175109464091353306073946717691666663539124154491285421722937142914395640279212647409806187292533944651360028479203501138840955779131345332815500617853327111072717609283387035649660783523488985605250487540497858937916354156777646841462414659654415176997876325198168982049441265066111844462408356004388957189705976469744187588593076602470374999308760747309869994349153431167988085583168807221535406725095179276058203269968889240002867413162736439184451108161307529985094288249355892029595182546024801501817018493155045840172143907494103903992524345054597648464703881303519275460113079578120038956700980955277359646558500864069860417152803492532775455145715299197300537546718797155624797928325130828377505043404610180421936217910270384737740974349313243140707301030529702308221112245145507909915347676247921993525797279957260100977752756437950421495909356208131137924832131222250447799586778346007991877080316703520480796202916843350955249684419043098967022489648160071661485989350163267898873517260137827441678591856165863815311936183450861788826704423532760340665073949632086013779456445961446253964867679002456985455136021054992841303086067946556294284285942046623827016907081038249185827476552560627508140576572418437386245783495608480363661485981702329469080442521358312940156002597937499961206536587711435324054546092386434003692522815639321125051418925059246400699501426091415273233973575113991417821493721845923763812125481865005122976957276957098988585960167833193571941849705719025724449325710928354181942726305833822989493285908611751446733745266506000641099764908138792242841298417501676123504154445366886658003377242075252551610040228023532119334717313594270251563053411904076971742388827449747906185976950599253199177163527441179045548069157679471116262776266537324281640858817676034290774512549251678444562627237841014174671076686601265700229363771926727690494691320754080412132487501743909889774330867280219579007010269925058600672794356919636294661935362277250324838157870732097025108303490746941420832711543416227302206308884978446497445479406742446444289665224619815889725563261952467415821184705053345840032600566403010244536646001495301573363004911688508371451554462060383639507410130232385793487613107311688774301952123405297278527457436157545969682508041375564727879733536102477580014950004140024902135774376451751054084459831785629215175686638998834473258974603510746670840922131130914483028287799055739831983147256563667694933302458968989067930228620699321257674406553835687350831886458785888379995354555734761222063152939777964245113456192532529916326503667454354379581374328183995234006375929571624302352649797260867843646100898521137637557225432973989059339972432245592063405123224773540586815107137454654007302293940208192612723227620095285182512314218369444301122728448473856474608061317457261167511366286532567687856964761540493863521667318945068895150729122468770095218005792553420023953125289385900216789672953114047560075373673913801522521000481492259347227011883586792467690812754735982170807659135534296579212597806508299688131297899000644296326434076057326134286590427570296568697814159390980704462909604699945923318764460993458482390603170362392613348351445910951924383201369545636133423518073237246174406826468539796110222113822084576613966959682151133668620645775423826058971925760220351678361737687360285702935026867358603680685806413367780351990787184164580187088817024875527563553624746114602872698067259779558129617541958840951925413170485574003861511155682898106460892462284758228040461519120875739005880206232113365183911883474619121152719407945748914208758797636376241691881905490134002698353639357172190963925677527543208130328354377131675495660835998600673708384959040594356886925216713291944255709632744711684614938982107568649644465315131042957174680875030390245909956667828998412559306879140867314765879935557574282318771360090485171216142007903703032663211215822834462647889092693969567677270964130747295769701828789933889590582670062375185389719789750620507147522425263937679953331597159898687906848350194259817402835780708752353280836909057692883987219971206338845327276765896716331625250247579027682800607639588840843076986672269309846346306130436012851056473164088840291612277302956451228351768018990436886610710058632866582619014078037373670083052190387714566677472386355790999620157653002156533526188575504764507621209392533634973885305375592046085121928473886557362572305238861477035399296141326912051473243117296593302912245508086352940060137777096260177442474040862277886418210009410804686664892784481828260441915391365824083242713494159946087379295303686653299878487304451279571173892270866639559561497128385720128277421219150413450066977909506822649770885374139028285148144057126698962004453258733179427913647018501820058595997938735978349727819864659408582844821625716457125267094342007889013532073947823884387802750423797578756085300569932098999578384542016091668355257165729678098562110665869674697243671019759367372661744160986050511367356485708579665510512728651684371364569414877927948506896245448372454642547172278967053301970815668552344910904376464089978279324065859905089105266107355625034705673458178041948921800456058625920615458666217990090579986964109902067631846689363698272313106681688018551852987954059018752939889534995068280710445138788974868464085689986999303932188153898235284530265400697433836042360874002477586563976996048757377362381714911874703153830494908552099432293075334670291584706838520214462868328776719361973078942925761098261664374769389276693201094236063275828114562405492440344768052908530779239196105856508004334497481762718983985251381056299737014322539375778896229023095047575106415879797323940016900934414656589415175001416460494947550406566015928688538254631332097988172940384040019201837595220504995924285657536700858557492241991990125522396534876509462221779922717153348717143236033440195800196955979334619094439343663172948708328266895557904318969050654900837171292717696875207137075637287456547802405178045121167272216033253927697758896957297895278936979659356483750291858745538532671076947815458363548287911517141360273354582912170951782283868176272386790040269648205414468811932585610873642419412159031611461443559316545551490313728582416668238434371571227737333367353310764038701572931615482959907630945368394545881090916369267863173702721334706162577944544951940876336523292533473969800315397678170003897383147857606526984945040733157915725557086661915705461302254290601027716240966229583860349224626722244021095401278027981747416469144614122068319270708474502270605688539162927756431300567422585454621113859068977622973427459772819000700307858943810583548794028265862894448650559465607575003096993906164993252867160780704670191285341912464549590300676982060413341413747438621801694407485694459083190336235433319847112004709941564071075118571317861169188263217423007224904320194097080194341711526233088666945663946050016985950232912830196563348339475276399051973092682922813948622789500635362470202563804860289896438073706568660980797119657371992054232806946047568237928070994135855228592494258547724514810832530006774509102348441197520401834852801908089983575144021752697010103019668778150217969348893043380940498704202742452740900948038271712645879417739305219949016547262791775294519471030058804454395285750593137751265433172712610144998808666980695827709228371444088710564321724273581199112275685252907558464083825642912567824306973516909111320356686411540035932785809947574272608838549719385803159832198047189700303227138917464505306128790684880566662301326425378418444580772020432664548546634135478780615917893480971414859892854367668695905601164384915493575847980498947801824220537940260421044716789869467705116183821331498196104451097591532930134291624343923286727006872180348338297408540129538870552146723237332893857769088250340679034941038031696286112636558778744519231552090058159068577456755008919016406248655343896342675955585035611637731260035312947804784711021168795224098552971799670497489726883734439840353668755773765166570837838406510178637406176468687406333023785746729169678645158894812865664797478301813250174490241701766182741891825409100473331940092595297166134905053058338824394472328108700196654001495798706193859539748603975766410105408095973481087519147591929847034404722846426728243902598502650626926791507334311004795490268128996740855747469951976142045297717357828023670026400941670124043346089279914191675430764501368819411224897144220120153419118341728339583321629241292587233853826486026654269163541040715432969795486349903118807933152677261036992012967284135129902662330118898858945195963454190013028900073527930187333370883588683693808047555946154895141622456460245146672580278529343484274051567452955322238793606189840896479347344988077942608532705274568270957056508473056834166864665435970279587488322637797885806336503303780379950338838238410937525102250125298725641943131034437248306811827931899428425212200354958161541999134761659679412669254416949982097302864305535227660712241582145667739965286361848326517683907954064862896699513526708467001168850923607298740457785493306595969050522549749367084389353589012266388388213872768248404111595185314630496508412543618646048347665342584270896484158438435039031274193501347622847293040416702267081088507737461995316538978061760091358112531624709542286084784380559437618215697190597276769914564084798220905726326936509031856914920557811460092828043080008888573175217042200359874467339754495213619248031354738657970048815090255409134224201721418097222930203153224826033350595581666389629465208416613615528396805673120810830845567600484954945446413894443955679278959681050762584893074652354894717372056021848707211049895210397347014485089821282314808074211332303271171049540344694473895258935894715305472411210184909640264787255556331062344941347574972538201679763718306646292465634593835532688023055380331698380258782024455641807046802855744091752957993239858410478853508206215559444027390433163702116490994521988898336371733930549129032734370418711817201119248421105552104801070239167825565483652425217655872900782111481797188241919955433973871912421179753043256240886383979766442723030724870607317239866333563306816249137550072675349321866798637162090531133716451809307330037559752211417435286558158742710822966682287550774556765746848109230658686932106870020282386152516724333528439265284265322282540287138900552832339158913656724849994423479446223736686978368173697628419040494168059841353387662759512767871326386049924631898099497900661046235119501563885060235157078039077898030215904718105705000099107100451733847531982587484774215471920820479806041573396402938744507439221155677820745201920949857947580952289195701401380264294354084432266865068428469517988488455078565714736323586797467497410680052917029596065073524456131865594964714444178340459390288687268931951199296779243685362050930685027851544079607620662161599076084973437280400545380241164053108343532193229316692249498051916288169114935668328083543822644091373141556056982334592200945913031824178607023542023677195903135281235740496685921477065114344326355131209669342897585260545955182408938190436536330565331861989249018053814426123477363633855649735772989091329593018203494945930177311091616790010725606136872313541431462346269084399168228554517876959327746756273462740517371081888919834827207078547975086948584535666515941785836625340722529615046459084387664414168972571364314215729210072675011425628875846769669299836844434711597028704720377337025543186942740395731840251731557346282025373500304598145567262088104888347658929396876775669455446951503573378359642384008330953599418487574744032568243218653285460346840675766953814386707006717783085334589763016903588207468127983330876826930494557002745402271947222275848673427067969625479791752376192829513588470907173607237410960058492249759826873114337464278975050797564088383474142483315358122669505466258478470300302202871360095958168470649283059788092950376737149318891827890822290917121331921671611760731596978355675473141896871183358009793996745283352995662979215434254015544799327164129448143543923703430349508891845390513795153339622016019848872669065230616933205583895830954984890045273707311910992730396733893677761122268453403686164597637380507184627689971522008426538204229884456085592527260661103731922449603583026895545278779544481318031289579032892329646472038904456386950493132829428421410551499700383861267177225295365489516338640896441164472026549390232109088100517878322603054741769740119782809902929026748491536214437119434725688017099751896837469526873923514154640282493892700077400197424291550571693669856563499466355613448967764889991742421304055243338758126361459798879594075023068625484890710477528703122848520234778557204510512577073888158675615239880522235511041983624525747890275210719711764404894015910791325815902871806557604590947492313045815221265137448744041490974756563851993665176441401994823122024109427941279603081588258413594266964537589294843819598034499188794357848599161708343609883088130840868573620396126808645114095361975705029864947128142001221304637944787352460728266419786547319076875431496533710958605335741480555634836693718888333115334885553734659943434841270043955687176262485310198844996239859296727116778700448982145857588973769325325401756558815647143655631293915375720917824198868415604914552132724128057611626787271736970863534717115616083250964992702755328666422932783740464969689521777557257226186903854258276913841710448605553363564016117831393536289337986343965573905347268497169314709102338383057436312436620537586664261679932790917366949048164451210312561129417550951930216817572890253512832978189230025631208443971858540527666294579122568774569654310052094813082285711680045085340049188370696922259614625761679528387899152775491513075088225294173404246015091785285080444272949229105920192231386994514846492836386441916668652331842592190960975132835412111257945180761527869664607137690428209388205411659803608076527932410721789783330538701496836177785436939682858185985307500196359008302122512254999780191256694251727769365404187145955985624837364815693535361949519791213590390297425352336531698140363529991808327399586872948423989525902430986431618669484462290501435700855156959435992280812015157443505271846481573720747142314894200178726328121148846328384773125352902981505251614056554813202903445981924862881175304892462116829433129603403993271569523780149183549686124458242575289192974904644494258331015239037947231130475973239264959660439580660208882242144491457971612153406627197670769710994746942135587647406875054042290387027925079583570539367805587258452427048540900637992980367056283575977711943254643362379044587757763727758325848817292153701604309936874837111897158322393707143644427836935335805969223857882088760768897949322659696178987074075957379702063331729314228516910910276517710936860284514126580210637832570373830843617075845898350958605290857112784294946588228990366730173846354136614197785474218161128784439475709262336520238659625530943833169129453860601973166351500381926523958697182587528220319660073858398037929377129400615362023624410895146224502112551219094731422967651481401222008571607804485274835957658373960080320222569056677724127002069292814899166784764290325425705283883719958064519891543781639332028096749076218196633639725545466804296351252710390556428056881050539284410809226919341283244910948298418585440308037980867597964014878820527789353938009922973889446822404741949043533741731582870552528030879699791679530953466856818951053746084254921053969560932992238581220945717155888598645552286346974298980208098752870279937641460186911491635436720172313771726609489433250708027377257852480158391253834679642154694640368158966168661928936598372508247541057253086314379947494524135826327955016735315635406882722005257353297466602559134048900787792541130350837015943106019833332281801513034630442999068601116061017625039724300363637071287337499592725634653497237387802767872488933580182420557544550251720286294550553551821327725064690544948450816550852601113562905435254770767864590918477718848200869179018543542689035993267928273578153130312858387299054362352859597492931398408485553450663551341253512671270761499323819551169375172379370197098063290196695408702038245505285131412241530734648506582894305632960492570837932544054728673511226224152792071374505962281665907017426362671108585616605726993554192205981734373457792505938487866703641790483229617228747241922151114433686126967397262492321060466711683264419887549169227858103970243885942949070680145247702608782406510149053164602931458567587452339456632597318887255626428830570310680423633536815028587401026020816047912589718236252437944758614069657403210590187514921313006035337705253133929045075656702106266131940517202527585135913688236658339018116151979070981324223725115296348298593347910766771216633514416556277265481484767989147085199375400852036459434976629029246245884604344432508078566946057786789019809453725233520752046194931138077331424662003418421708393801476103752362126087680463726412760237179335835102892431686321565724170478595957009452566705642495894221789202218261555390596660573603501697753061841103753531987722193233857644770772773364165264398225904535047146389030419136397740621296438079100931104189978187492855957216051122714023063392329815887667397460623583761019297956133995184077235895817886482598776132877214189346219307016556313742217754630799551703080126613117878143902161686863767847096811486796763360601591191016586245945953198858645966419707963301324191695263410530732251500176675690060296394708657514148013240379379145012094817161360566925969404086998510862033849130722751933097133865504158808635611825272220026801735251344703395958284622311134760115812532321634666364894866251121147297108835810259092475023930578798682571625920169862527517860045580180553024312604691967771001610158764410630100012422708460233834678945448172442462304357810230804217852166185626251362365190662899818965009264271679149426694057524735734487568052061317610544291569215693623296270440375462212076155774817730196363296559675951657813380143719393124359695698073720330453005599580853702323302877825674222341536734304805328882632501136149312615785175659269051983574457427890604545710445147646025990338789158236687558106536761180828206184101317432672247403139908226153785610262874803741327242435661736646579391726372763693775740480841706984989974375109450310787987373477777527854162837485095969021079934090961790405899574880262747642168052773936966206400893391782647486140909840146091815493742573913043381847993001183969074122385442893950789464471284705569467503644646107184064749562636063547654047590416499344921644812172740142051077627376233381883707698162608840162636599753851035868221968333394690521716659368015908628073095459182253142469367620400490094384993930261349882114223225997834213898674839348709106050161242378509935707099231655246538173447709756051731471636819292292155610937411530721556019012055065011708390261893894548333294440804258286089294809682524161668224090620081354673004243892066959712971555213035802801219911468526977106368481382671432497844227017547023815624842492591901875355600840512079567601880903793706326633616951195627623438958624626305280887093444946925880799226377037427334670764340065719025729162032036514459801250542705422454560905303222848346262627476341433841527442646066339865795389959274280341068840094712710668065350646825366234098897194256556547292628072624976033848069358562508360573274367767988871028792855224602016341402050483800566868212905576485730398283988475807270561776628770936369483461503156308159616473461838276486694294249839910974728203618842887016293760051548803537783593420349546656107057730694162192458573022482504316227317472578335132026450813036955951967375755742340941365576160043156724652263845773989717905744127577205815096180953686143405164276600680297894504917805546111778544481379241895255552851513141008794804458092405040840871891493336399577812754305278358826933507436944327885305191397834877491985855642660657475916544338219614197413930012540664567010187125184085301615738497917312451153072574955999784632136187271199849523516949007065434638773404758631001292471470403036364718530182599685978938801366741060219700950075807900335555321818164499149306945540574776384140977855190400940304065220554666393477864065716640608197780849158675255938278715752639838401709322371448970091458658328956849494823730444628723573063658407623352643166228769182447790135754188843893500247817240857846763667842273767176773343403244958924019840283011943091427658099016111417845441544881496132378491308374478400495243881796928175080950997782095237807673343222015654161610380162938994034760984322939389047145668130612002064104477100284305238085743091928221301671815489823612664234033348324656648257359354260284561229303786204489749020837665792135050487511299633773190817088098197598519050328773086034888224683834060892819549009598237951514820403305971013987715918418492899636089221519491636756029419480524001975421993771111970683803254797515164942201222228204790689218601749012285774523830763440536526586515993709472158425493447588603077911216171660140396568931547881960903241563120153316684503994131081879407238447802905039040316249339259247223992499216615169308519390031560941398787629834906597462429286237556327960864451101026446358250572249114507248181842792525469002226662221349712482848046239769442289213740923443225629682684153154438722958336372809470431920976750123638657448276128073875045269650802595730583486716165873311128513511759540511559871759713031369246040559130756697345268056869901332551644697520245775572294835094564468916667654026013501523044425904321281808096961913995365974951666804974979589035138544671627103672636325477932686637696280640182627667547992552395839073960612028965986032169535103014887436302865482328241551062001069912221200901754126440135969339770525313823466610604234030991363393660250322107658995564348490303751131969943759509824705450718346422483436983063586625447590376614154817517280201789287988532934001278826428652658592671207221420451446977697444735006005404558980541590781193773711449460391285287036521172838035771604676554710973569013280330232218468579708470735163518233015878155616069318455083089836580141251854176706971206865490694414444693973532304800717199170133532028560558801374332593556536474940853240452102135183512416008513229688356082704898335647314841310910911814545698930305703576005697509884931222826843718813906126482794279195536095424015546091475838941918573569900026990238514569211460979197078680363060820936078011131976451347651388998394529655411780715167355474381363548477494557218744382926985978484392835231506785450210714763289190709355763473033528894633072337559054943118021079070483439561839586073438859091799544452474806483216939915490856899829002000408524593594840794233988795509255321930040507361081190862777121937979297908082563210284410817720216454724154048553367511421196732248512450273944811063987192322315105570041400719704785890679308612112631974636390716421500697026619303370338418581055303355215934050983284070128428588410600608839110418359867915327383342226654799093397756034311881951687555435441294219959806035480769509352917829834890727092476458093999261390397510549660227777568688407885358452261943468696682050203747824672695670686114736855086526801757070968527133864381552546781571347772944247928213742727716027282265974101769122418540599011401194333642379039030544036705136452360052448521966463730372719805092314235072459099917719316343063999828008905588805895690881748788754287343450693072852105083239514161731405688433404068150276297230514842338837024359073275256710131088499681341772474328816762587777092186457631160099398179752620396157928917579479488137507532224162916928727566147642512224116564936646044993661882107037261532285577879562762432959124337844566494291198242095387067307569723388230380040350782963267343333538309066171159182114748458755524883749995230541042865841714196354147530446292862508367605177219324304146247570893841068158451929813510267909768048341362762880733330180790112487312718412710620910689634653769318220674918498957285502351019132129680424951445880461789835454295350890439466337317805105562181818427493404720623561270468316096502726649868172391977850438411032628120011950035783611053301524698144687158877803125769130347633649475630393981329586682950822121342841827966888918422588618717067599013956387491679745484706426182086849123044106653525542836843215646667431138525270678579611258896741412034970565793868546967945137631085591999812146265511563109880644379403935465558493758011727472592841467732157598279710103582876919155878739315260385309055926830735439158644111352710160449555722078968169233759478537070393356889119115701796957706503685233336379369178513187522451323173369255946106946595625043807712784958877017052577624959174311499674483777922538488962452094338151150313609713757448522364297663533960301296546883311338394912275490537817231574894469191830296873164656061078511616651507049227103025176676569563244808150567454371413493463662072720935129138253147555802992827145596457576356082966146280902362038425602622141343602448767667465168294155213550738444761185129238613925787187460327123021963129018475968361760236895626084437986918215426534368222882394021800633263507104135531190651207955609141160321017232774458343260594909625934179115832761025605377058733528683470910086071498107091913966954037197331332713307229340843081368876408928553701326821591475361413937787693245069582153989012202703147345963471125258744189161752112907364214498134160777244456390174398714100571487930267052116469500890179445549206260541650847370093728183607365529100657105270165635189768028735880430954287425788785969133564799281051622474586431393530245969363097241759442256042145105724239141827948236444902814030687959355249693870441273859425661425495998453071894979411441130159620934204107812750521367143135400067159599785658165460641355703487282598126972415524365136620674534558581970494255813709421212162475754807627079553647759345851055201916615798850290476768287797676198207374586815868020486393512781523916378264725077487841410826307475046529007787511843233537715529853377814866188763618549844989798765878907806237529275322994729464359806885310670217715649353759716348868972120165445026873146273863153082863660336606891720645585608886077886145359533149941014816296664415868660547195756775985893852759875996600774274079123585231278860857017308800463788308252976606982622797538993061729629242154910691222362796758384051987629234865546756011989966575966972462838590445408762057318405956172013118625227770494476860326161871279454310301684210445693512209838007845770350090926767375868002798673494837586866017318783315697303945663103265087870550400395879806992604758904760162808593522268852634881379647874499180858159715543393862748994554834908984239182626833709691014150741955531955346146285928843448935009879990607538852265546946006313174659518255730342046897140695176349694594995574277097382703538394903024462881079031095804545228644774007327248276406097690977109282352807588546213411705669321055904583093451142598948962298609080918967092842627149994381656295548238470133422994010971549554578234171425229438523712599845742061385895092373628652931738211043122482234220992906540865386253954411868469029403869006894891279759735536912129409313991747747612747538509206942941010789673397862954178161477794057171243401905417878188417690215236220759202921162641979946217188217590613409441857688545366680718492704395155246141388949005594192574810778416162027527244514784390211154731362633459456026452846525135076081078333662988179213284705350641717916309927164778189738517989158083070336786308336242231529814630976111060758321405333359582102308084837841825610397814663074541993464694628150387737894380297943667457170157411577260575047345808812469597318349496302339530775985304413045225710247629541739597845721800826672683820600471073867607253623992579600620225655106354412256596465715811902868721317622040308416158148918808516886164405489162309034423786203785263099854737028368516907331784275009594554108720944559174730703604502183529663072137723050299217084701645853820056544667515593159027078990236018762488660073482840926147804809569901040762945689902146571860232760505130165465092344729100476192025868656653105996463682782424859778479931027147438632979548900438749282899984060374523917786537920244478297133746434859867110595497316267890197160456222851402296486897992262984417989549219263017393375582771069883593302518971086737137452481321247342941161333264632910273297804882388921036849291292259156889754006515929849972896488439556331040072519561262444046211425407099581537572002394954057120884677287923161854583014882006876186789309124168975257570196511866410268967943506465518226034378098978091547607354881347928524367805100062087536049054600506171377783697591129146553910701367177480555529558321046952049386187877157050952840509110891157000794866163518415809757337326330686500352769765286517988541797872106462437079969462324318886733203832718858101131323344152536380921566732446065585281579583152030624329218662725494523701567917676862162810706008946665352670780754361214448664723016280133677872977488913283835718312311005648170056762419782646104758195116857072773003072069341413724061462183375553889065887193963331780285225314607155008433176900195549861325841322402679275331821512924339332221044731025945450563799868115950271255521661957394254151879013695554835910676094145041179883036664988676673185546721207353496805221724719731998375940540186474629151116571917272619146680264587348679869778260546105112434020847073263184335769139848841861387564545022974806514291388062107175467869817142312582782893494454256352474562184668567347883809567840083556454422340858976418498427510440729696145980093122475644336448373003448167122351050285719152307063680553321095612194731286402000430668049345403477876268410510455425045002147099696887009425499738365214202372904261297916390412599193294184833759068910571599230247063692041900412186698383544196540410588843342164873220264227068147369502022318378899083595762636689947606769473390777586082515900083177245540292488408375304793458174757757648450216270071981609307761891330839415829602865059453208816893003155654318624097179599162024706977627532519073679766389270262115369228362311102678154629602038560941312107663524379085996504858032643174828260822746974559985834082774865827659697089531685926800894360712055870960941579926934243851188802392301154771796439295680096257399812211201605818716710268444077599866226256196105659382199749613822426377614614545745106989828784177261771120094031532340911453253359658231104718870714592118474425511694342995475731056328964647823261914324535147634035231024041713308440958680057316409290955120756450908040612405834485571355676580770357263971543276548915087788996523361624526981733239146780633155323056048553893233136232682963161187878995583823763008641554151844338686677379280317384790385491717567926854316954924637554470493810128740294889686295886846560745497776046849929826339267742268495552089331239327079969386977715184921716490587161837802889244021763156600472714104287465199249003009071632669717369759845384264813155442869989719924698979648651601611924773954608279795236537850129461017755770990881187963244094090323761278171473631901331740939466729172596073954363426145668783953912721366344759652706752814954100560226977560073688008246361067063233482364860456998683830747026565372964758859448958124890922789365327725461705127326803809757230357114487698971802662735950171174838129942356130950916186263555503728651180085091226437964370324283934648546428944750527528688387163706465946908453037814159075899043741090573146286990315148991786242760560672181599460990693446817607595445674607883737530732275441704033438989120876709346381089996624024943546485498261883620592449561059145034829460123672317948779209318531505503894657525095843299598760051220309218611925054702430612016979876027775490482220559483112062591581820487918821770866672422538021825309236752142110972195331819842138361439981753014820215251603909755965790040568471069787505084818465982700981855765859190362300424815320219863575833844909312352717549983587681293955523388477123847764480564394523336729639019618850885373102431751495110384933420552958671814522297264924162938333474057817216341202700130581001644554504679467945865802239484056450210800035983223983209981847005298014658638146076832422266809571673403153612924289505462658429131388875422227078165053520251270235954203480799280904693408709171551553335481948439250402403802514495274190571065639751163711781792614216570892946755028145443405006400290903003666548298839373267709711860432167843677435599900054112101518079790211256106960729842259248706881412567796436698470962194869307934631947695001159940667879828619941483452384621755311323318620408554702855472129788432685576914357298536374776298578769750157755570993267291288543642255441330256209548228030191428895913269325145453469050865947882737135729221867573188654551157570459832119380887036092559852059533798933272521405317938135236837152477525251218224219539724906599272967648155388374518224836807008096999877055520517100311104985246560022014475682598794223050664576377634174220455420120847885409189216424801048822698669587897475835910636726365084408602286221101910265930276618545830178558056768972661018347053999852254593248013467524061194052848877834187822791969472529865696654981016167237016885730118326919881462421267778627552222710912821342351884275824839609321274657419723392665638925870577974853749074428831037811812320818891113938818525051915322932238769219806566553858622740196663576358326642335304696516206490557665018337527477831372335283727638779882080774057099502467594459394232734383283948380536349619708752819796365270787785593547940345738430848752496961861154875401680144826616722441234884876813319844531905486234271779532708998399240720582559386458044541130469737850781814861682009965544035545054888171201109018620796619478827381236479536258428753177681512689916444373399544822065411118761915347504740717225403535390290285956150476774462696232714333681595886496618633813741502099252215688526376759173364432822062670882944108803728883143850747143036490030285805475266773088931356601269325561751792648783068674349169312245438575350740868839477971637506961792054539048860241559228310636347143501803013815788556995315155370321909216577483326724184440522144682473389086236570278087315921924521069495281785222346598962349081634992837148037529950993016369221368048213768266673964706437485838974704711348679980642755740753993041634452398701853788517883889237069451767949984444729486272288807635298764237880556669136802561541029733138421324855947140482270008696552266966020451158794308521336498147239251996283336350523682090129704045688634244832944093612164508422516636541469938300679450375207206153952535789525480735858579732749283943058963234489537281636720208196632152012490685344952391738747311735909625085494095569340172127397753902808824674073015668053829061151207609757932665346377298203683973982948112556969835012672369504176646241293237826148724172514709089027869001764430702713812286875108165984123742997893382290297728996030072938846986140598202269182998184405271743014921535851765667654619945473314613707491486187472042213746884506127060885211607751127876167995624666125923975682371345028047703015857668258091411606753490185800831072280031175324627375170080174536327069323472180286099548990512906816826982546626144247946343667926345499345141631204235308774909888908557785579484964656188453522199942629804287785778670313713041867058814833303674226187073075665799537538187848695968001082403400086013889882716337898667472029015398886207134313573673454232742248528138814290418044530764052494295963626042489208789201724107819696674388339007739896246444060450257357999704561225389403269016940477499227514988486628811174311595993565736336602966196655330383877478911062216598745566521993429137344034639469782411605127734934143263345518321074443197112005864792299831111793903071268386649049248816946787857571513436523777894311149524529003505164040241781873638249232163652214347443149636016333192623780012977961604143816413636252374361638624397619337393681267217023241467962406712399260137833072238050797435358803363114235215366694700818030239488704139190614323991930403546427050619848850561144336553603306006273263107283669670365665334150392555618344887120508814882818997026576051038599443881861759492183822057445355761955505787508261047657093774325406110239125912107445519721023366819476573217540915176476601451088007656854424030014969916589323122113024466700131033057799950208599108539038236689683403266824442805835175125339487025342912430016267548312759641256470634526185315148322253929596969164785581027819170841808172154162347421717773380135814691651571134701361460360512824507254430728827433702670375221975409656081558636901725131539651844722648493926307705860136474024565350292722308632698841992129592380774992005436431598458576513536127017602055641269226053677949665483382385474998606432089582496565970607917713386156706639076613245997637544685877507594513284290135086387669843038062187001464210944795174496599084739724467034900742203573011240293206856929370011962897027232286465765252196903044171061749304060971376006624403953304077093971818404557128680302921312196011887252961083405351027517041324306516951249915902615579966476834380186161498062171582329031400554820500311907086140332059931241918694244216533825985601444276389683981929731861278633470870707321421998372134662327487022384424820772036415064095645353175649305440570843173662107651701243713945977869257735910606817061379283719812938628325507414271210368268801484347829242450618263804778963922605862352120642257788838979259686871273691073034455772200413077997789533261350973564771627722835104004340738064640051608028498584947257107750901455522648367659260603109789264001565262614948142905361155600764617969472095809783222583099975675685199350883986801023425544845504414345997752315050270904557399140998103452805412252170230891041251317357005699761893855368784957738564794297402929508332325187992714670739991122475819691073148158376616304926083086847744083689401570019757257438818852679952566558184415467846829718990491511710764798754930358361516047546116295530355069304791679413456499869784237924372374402199889392356389536576322016648794318006133922414486057548214970572298121267056175712607508905351283347188689416040150891053308659287847956136498211230644996270308081150065061334713118666686523902072420583841539437975455926915932972978075798805528274187881640723472670661183987420485732237374149882895528464484835002441869823184836418539538646357450616389544719145744705012864663738551734538391106705944876130629521824079072289630117996690918312256170195805397519161148693146303984787511488386796734019023342863140943535813641389823449241441842132802543568655917065621681362513815858602137446517491237061640272417531058509596052272856068967798450194666069521966309902355408027707227680565821778404344357782762115801667888618256818203703470517039761482981504949412501900409963591344717890551636897459588620853734356118803781228392612885407742137743011704109034485354848152981910968735780153376617435505531848499026304723426311363898980268337145158098748394319520381429148339201184133278375611376724911535864442960782089770827438703466185081111342052047967973836343240719866612102137969607438753920500453443213997305381069019234293027129313014232914852240778702298970955578313667782631144738601604302071205910837016322145766865949508225121496419184487363666716999163122997977839083411970798605420714609014878561271524632348953838089707871335745843881235639333848269153356414771636296641632020863081060348444108997592753072188874161408968496486379260926363354155840661195685171264968853177023044492511746936917749303134748873024948247911447361125385583096414994524300669366698963663155643549807248204689974787848286837093772655195357919884637391101236682526961001278471355932526921368689704594485312890579355838017230351906326046191060534088579312046913962428242467525383344000892296929929730831564377818870454563211205563544432637710830449557942818537351095481697617098100407069637094336392764157077443233915862021431275130552330843375834782868321762915666718879110472700852318758990170951684520225325555632233037599816742356035498353511915311597789925599643452094488499054159612638928379712930466441665769356143535787087851229905428088700243197233549498958655190847442739810053168633972394122502983270293968586858777062109326246693868796845007918961021884423725430716130882507024523138929702500903734164098419180810120618340088136023254697948943896471915180212526018875345088032280448187168294306975888754340832307256476801889591495190649959602308415242769726199477742930973884752058890017353438159012312439822453109000942506827380841337192452809957793741515725156941336218689124332734515654542420885435088163034578138584272080759043769669478859761408935463118332561418767349542405646964454381735766782517937218969134543252037510071918451779230476589438898998522132095708650146685292967483113936388754352440220291760471867194040513538515074317307994290215626632950680615720065458457368885642995324620481698598304959729254879939012106230175897596472893521662689192944578614394630343583842822485570256247559534269036947198557894823276104655569869952363892770725672084369218788093437952630730473050514679528755557156108152204936141499919512910667921934592325000317991560412827564115488146930902085170614818362250406150610658851246992245983517664379883089192080336878665695206592645014032447600389548049714838430920273458281025033322254508672156310321254392300037371170507836728529022556157906166144873759154672644035957850203711776352938979321676161235394230200651011176152869356013483162084308799693865029784611651292673036480496873165241286129974172577889841002603906257171302255933246746147631391289308553939829975986046926978188786996663682311282674761825023441136127226857940331108942985901823065210071926133279851232076906804471471802660273404025078052193478100132831479891385058688390894023660068564387743431809299963010326037186685682754096615793654978633253245297082624502243158070610030976767301772137460916251787457675850611189011912998806140088983300070953094193354864065780000175712337927385069319074183987903490789483844289204742579898320001799473976034998894046327993776409961358018212801822920134234859071636941150685620205244738932784051516460033217929074274886029321167794629957338316780671739091585632531226112008069741655644328965905233038238003127080890063184483365783465411313829711133839261618113821334946787388895778721862622868712358071379135312843749282610132799386561741469513986754428513701754007816604728315941670712410768862267602486230202022674964906091890119895494588006829477587156096172381687935497892914371546670847463937220169523851662140028590293809387990246922424338827745264637790700199013594576634551547747196007603783186282075627051298625534332147070130493103786072150167855047361287921727613347367614564471199690005750693438216269513888796610828634966744852567366737867474515929819445374944149598913671237561692357097383795392270917088356052558139812632319476117429503039760846704098075672910942692386149145825125946722416890124972636130380143960901525477969659796476563895373242939532554403997674726118183410934890459903517226385884895284218644890410770903205805521070140993010319522585768496952117182709718197569048454878269429780826606190473034197095275491197399626735899658999941184839166080966984333413705248547266545620327613433135621858121180212388076559739638653326468051285938017370303279744894903743763940740842921818944523960517662646197181395802100365561063349766641642941595441593530009955810573790673364004710263974986190873822183879867089464117352300079032598178478416689605905213951707360245418170390498530782244844780753440856708620797286138298915407809425367439833601168513570258750328908535352904385603022410781821543897804722737070784963953330649748376995553720401838167858957585411454657185152648678358239527895986669490200184513248198071598945842108052380394348226929546982469434720766345588886154487983624524095588838217677270679779398350174069870422463318677185965845389977183254899172301793190152322807404421138972830279555814133913639892543244104802813564440554708782694988762671158569085566703036911194817590556500025239418788946517938758540305188429155720272722493472617576188207668722676783498886299774698520600456896798460857709746412430273340781254726153178463533634998807420088426894927675990585837231270028515482693015772407153723277631208492715473003188542132138520202595295479419489439850631735042832686553640708865279615777158242503477388941800519364516744482689152618272749268264034350479788109184550471458870053179064883626469688550156852108145755838409315169032623349740057949415603247212456610884509227048924766074673427829112576676981177811308013375750967554718715481305288505305573080688809148853205085412469075942138941855974451573788157682313969475754260555287900138918222988728628826311310134862373216504735515274681005250838222132655932893700092605601235950567655197723083479510004218715335622773104407926780548186304438464772979075142355652269014804896288276761402801963561831362593397380433930187086138652427292956755355712733668743537113678858856626718735949689573241954842242449566934091751022149859828555717517299907510017106010763220158267056347579266271872132504668370088242489338291543530192423261505338055917841652655456767582887755039322134800866497093809288860907748824201208349735824009420765687165475075932407446211039291388196003372278447441812630740545259334484624700909906462566749972106855943490372409477747744369647218879117665995397660084886707473923952304188457896176632357754905658944368055312883512464994603429465372555219100939143021883937673741257684132450362863479673142144469356117531203501176159061872927138336692538854676544902941545997483834599979438745743270937011992615268250581471699060821225536945172736035181399776066741042138272837258992892223550098837189239275442313802828770358967261677652085666933724262567536963402116495017035316266788334713888670211051846405386273751157274214774131017015869313121059949968247240765026353986814962170482245704677076204381806616154365868783859201310957395559007608948025224475995750300433001468108776190047043584964837553557549372202077524952222633468545743731841939086634865912552986358018063289224287460066698258837524843551662259791050010914319731034549492550942641227843205988943235422712686082870730340932255727869222028288110111265640274780505298129841991622156946818308344077291692828676160884886509245606918780331573467186546732772637498367493752413166887520292979414640986233979313262248002532563392558107178539303092889405565781209126218179167366834120707033100922181666762576471378216304682967411792122414067596807880814067476123388141997807136999213233408663831243070376922192949145851565959888698445008899154164099752378682996813040694125137503872614453737945809699803363733716232662945422830152447232996067706360374336717515348471822046482328442193542326579422087104148705340293256449395159123354759551191742249999816928615751089787496451284086233608557681708514050931087380914774427803701522972926794903195614187773853803152475247439291225375577154155075663507747043346234917081903367880152628624246042941818960955104150751600846301074488951901730636679026306636136857324865327695467997022711852476202750438201150331616900002135675890559357292896093237194082093985506703031997200564855511658151258339385027602988486989732003616527289620521356818679971131323380208923500979924177000073315601892235568937775560409757460846045939400528971864025661042606613698417201461953523993951494553508694286882711734042873650954121347003802285583369364003556836644571374854170954167408475741885685370760480905111010759696110916528579570876411501456544667576062917019600821084161213901492328183499524497456694092844267615086209392768981030766746651037199185320265113217856175903126573248603806413754915891282243909696922589321811460659506591911725471733109124258795793697707679658123735923897099687312345467485217494907903613989103045163636134748408133580011231160102877868545268801802359029899159097642874377229013875353496750938714626665368907323182154186501251177380583486930505734696035868313260872297595343689086080986693213517690264747241200055394308612721222268298413728819735935477733887716893510100120759419690121013131339275434553608762977521168208821388255169128113036186018748780368092389545559931344979826725175246987038347054121160788372729562868619393164797925950536243585036919115760407990430577257870612459475750676998669243123351538037883017091119401725886164875479609045358779406999336493188501354127457377731575898635057258440177663006867849757930367190066749018574651379743362448030901212109373562295027698914847394027631575167212266835026235862728976592634301315840413141110740996139775201962534412127150796805604353376895380904698893765578688247525328453694147836544562726575148380999181631360797282619369714579385216877132338072179506241461196819644478995497511317867741025313867774557929788917024059168352469727218644946248543476151475547222304313959258086498398136957239133584730500670326554829508310762873271672148939561794982401333660528369929764453923423830377748444398815693674652761573657800989549447106109163208854037749073546326481752638489304445032271136375820963456335819142189321535609931907699617833010666858340279444514495273914733430954876739069572396988355465762451390405814769964068223101207615812133735006073008696616248326196620892140261841945916274736335945462712652200985682509167301938311447593284624442529431299217156921481215106592574726734738007374767199314893512551754356421723644302696319952912967012385146117741306196654757631213481386539733071165269620612017144071474139967235742765338609010384509054443797065876905921091492985953627807181113070986575652910543069715181113656852812735219334000307897089641247369119556230479390439109577748170038122871169365266935686955396580494606503646125812278011934847509027467868756631843329360064418603587982937456202107034892740846651609554387430642944573815975856785397959404717836497518191216581720813531026817838208284997587697536694950184270005437653910464955716764830856955887745780320929520237039250168872227494535538162621026945284511505508688221388580596338227025362721020236149312331722594591601432417147069951273392672638099086590671369828595499115932474212990506500249112626526849361097439457910712188262999857816183258030919697903989686621034713171605237787586112661032198631703337015098612565275817810757535916749600859586342761719686564353328321505351310676799703606689582875235289145874774262591924316334380312774123134320123236195652486349210550704813102671883081989046454098197604747301695022681140168780845847588665861912924238918304044253766078229862538367068325921450232109987427632510561625011862682900603422339369916481701519422505058816929976467292246950077555697804757024740180862738537185764747924848277991640473377111745522892271118280268438804297404614277651234968944833499483428136881706200730791295456448290683196371780655224524437560743636974525203268699372904049161895838779645658498959548673121678426184847610584654645271538741623951136396621896412683798521246496885573641880006787152855477423334590672504279892759576283984750920566691856101710072842150817345679627452904925864943921393134056955845587740128550307480369989132575739533849863852891260360902761372016431419919478403289899826779747259476451384190609243672814488975979310735591236004403494489477655356949529615849149835719266260839143232188321912016556342970762620912812172968054093806734497061452953977897287032965255803423873470068910347566983475361386944830371432905920855088636373532159530604320767277677779706999784419217990238136534850917648872303595869905270225652027199895224130765292973931324447050296985000272179913833471501719460253736541017955214296761447628933140831346775704611105519870117894922910336924044434350040370856328877608475672247547615536615256443821258945136032552702983368127119594463667396736473456758505169835214126910348244088656637514904718863944026529482924976184784361293148040800909261481386478704719957315283691163701206843380251002459239966403281299065511626136799277908659846375394790154709473556231093739457293231605326839773268842380847773993429932709345873446387522132507331009676196206478934864276427502534962134387764029745880626598110010976706709810673693546745769797200108406472601956469627917300819909556712434746170950618196408730517397065354689121148171687321052959675307277538231945147530383476933264741090631035251788072638822336178279041827889265286770865651209244050779084702080118226630381133437540056430705474241002695568363513243033528931910078576596219513806202996004364915469734351566690750456258734995924023081079361566202499499982663443547437096569793035259832561889308390683807199976586592886297734291393516778143899358200752224201554929974220441318328929322571138179550740534986071013749206230428125335702334824097166271165530072678840914984065714999725361711293423771877521481764101071030056528073508471480885025183768394019152298464084902819940345809613713592302523160039303708592306579999036345001485153409937537327547005224489231425685522215241132373761547074009829457235915753259617232517531408822618549457549854777686196700525367892884349609317054293373238754407647385473620603890179000054997502335589537109705319760089404487329375663678992844507394712124720846100915448039353500924556930354031510912375490408057714316079749399256462835324598861160008620724982020872212847866693525212869115854074730783966538081042167693157727261327560617874147886907666270647715315708158403605722710517935002653178677951252156802847040976199364447086544625096650146258211619076260682675946535950045578870865661496670671486102505300136653988548657121376972749762374117512837556574422812056190275582651744298961298847354444106562538091028273815761809159383651804308897029908829027691712608731994459730397626012645713876703814807791541759412061122202627421682576415009242541671995386953018226673981412857440281466557707893929326316115245189792081642460084899146564252073672656098991495603236331294485853724566351042595890337044078096790658502894202617927437170587217739922297817841562147481002885760649831562362457302662288908175285194121938390666841363314167351758397761276826714066086627186857161387313173035795966927938734266196256628484666454944947391872752891826050422665717039488554739454524636666521639252013512854095881139888987207670293454039605769575712830053322587673335902814194106200739667400339334084811042361966076312981526593344606424798616940877509618094685959507407541354859965351131645442476468231862804360519867131211427355392998563613126713877166809931240114250484475892164881717032437201521597476574771824016893564227701103662633570936198704032136628157563122934720227711464877725734496666841782320990543021695596534074749206199055196452790035226651571642095225689203675180613927529039498418318370117768805114462102750446958679803820821365725529808064365440214263366449257089269361792195510755007731304219373294435027478979762483324053731304764168593983707557651480575390471885976463446079443326629880345500850682181690571133650062258827762690923475139224219671999932102714918725177633596893787216158113453117642739992780896909555015697490081307032098228011714732866973140226499188125775348605950873340316087691708083200967420065457404150143569175400606632115254975406233340396126711566749856648942035832726732398046857208878557927071395608961844473846883405144048776974832454793601078259094543958395691048446473281077476432127698818972300813365240800457598966482588485810690371896081166420850175234387531801124591912448521742198852084083505976810926739226380693904032457633187843587256025359774363054079285619092039387611086965927014302381045462668130683635901555469680597103450779027699787208672132576086400878305675147206130813902868863409211119140464109605870817886152706158697346600408824108086701950743941272298350617984712484432154725404350346747947265277782315531162900866635483049447116278164766160876800740896535476607865005093778023153680577153422068105916872808830633405651696479654884211425994308055750186966712505244334355674985887938287005007280064765742083327296590067489912488168481571817269622407991418285533348155262096932121384946898977306598656611545914376283289592750745638870150394051943674667330657646346508090160411279010418524210635461767890846528883018165962493364374703835592747401004823890107441709590832531143892648851233919098405751215239461617949207545501137746323313844801907141396236879862203311088536823466699625851134828013566288340600021591537582278798143656837002704371195332562464607831123838315752981350172472488795068734525776538259506159539149201546399456700542248656636780758548449352213458637455941834942799754588541787238940439633439393492304205229305158105811665012583892804619628280997176048981108087540830887792572072490997823618357068154376229292859827409123905131479372860211348635146914644486485050355675646946336991547358007947654047640502087781722016538972777812206619465641429012524323778013418544784042461931795398103789111442434618895085346732709454420208483760514519908451348163058682880073359300113828299337504416399213913255738880270726281000027367855139084292104088619153493399345174940013269449190975672388856358278746251954594729142806932509787102453178319034260968333115209678338370137528821057559900253730711481216692135619192470531841840181519809243070257327205311879034227715575454913650674709808443993789208225334437643527751153308570262783858792971988006362615015249854316086451132048337728802972064193630224921594227604425245896805327410308226582624851946039179859335825445966429221808856153738474142804868071353807097464505406310761141428080497441186991435139342012329814654417466823085346435921250078477712279387203022919782945013261953525422903476800164177268018419805569544336832025824870268708446311336254436216175079323222428169051152235177344705263214501968136470921045272594410306440764790008298457491564201744486108969729269829760738399351944516027717568646366567549897949335047665327313659945743606927809128123255365744934598097408147671303875403318411775118139578689279013650558887731942450681585497907432508371301105682789458144018153881419165342245475846449918118755676872695120962537959085434574770704083882364429712507245879802298425084667412297302564264445312764895811696345676444487530979563516285530820329925882041760872941713061801171522322023454252011003938756299029884480914635094461775501515585071978876835708954265765649516554193577702278516963494294210708654878186913272788342923857747464693575986293644280627203178085371292237287577789619660441464846693677402979731514112379724618994130235613950020735781460515153416507492652723537059882642601923811399504942822195613876106510395300328537849133866424432546833404603632357100601217712545377484810683509750494271376713392177800004210838736900498710017461477769060977542520831222330851470685067811140382937889544307663538511149813367989551736373368574045260331552738170107728335742343979307034459962592645197795073061904074786149248023803084025351627870412062452559022611823393847130961323182412266043525832032054319587127838091776519848509075427730222307085976910003242130227925506060463211715168830627882274443940628263750546092943172469709150620856070989349406338352894066045845956951021189065558272255219364361977278847500367844210231335052111296203597742348340216309703728243012087759166159847314594647289588285298112888447142195764698965745960542679951376700008376925996910624144907655603305485300115955068168977858746196340342790436090672557875696722567385662085577304594518462212742894778610639095160179223805710584636347720401514316149834329769454836299817751518005159866705975261473244347645187953754656657781815499224025249559417269523295880249347096168748843227797197947161277677923004107071386587559446216535815795377100750261867385832747303917915136558349188559413977574696096138473628873914106389325541738005913709576429304797646454064987601316635934712179438692047512293700747392444961429690728354159720089938696810759259358550771187503230454394374441200514469145126450758419295716710052629998356257670958788672690378746206854614596136775946076113366228713670242542156334746346625726264615581401156034143635806814042068545661758785008123477122384846933498524829528254333961396282842165628818432407987344238729989675638555230065393200588220896712495925953577349244110035476940632230229882527469816139036516663338966219272994143092774826632699639233566304095018641614738963059376308304244616006942359718425385485905995870210957651605960179863367322797813134162147894393228752958428059550695150173295663083992174204476062856098674708874091492056868664529398680278585591044239942248450005192368734675141905758597381414506853088538428678979294260321603579378869459276845503391823742958592919853791227583104270676858224318488585947590292747435189677512735799544135431436372355415918244073217174331874590140194612361537278155435522219239167281598920342221979560213352961517683618934217490382575213934168502526700210368579164307392964806810393932309782655930427788902290512401524920634336205032697411062364237882236709620105665944068608809876707837773705470380061328772867130226345198032695941154835878708194263118221549606674024217140937537167105461628228319424618384492570229254730176310458202532284802326839150690609813152876818194520287803129141685120719156549869744868761954861984376240032084649308177111168881865018999098530137374026992496517792675427739812989701362381249049627820993140268419173026119058686244886703819938141919079860099414001381179130174912445633107003712639940723678366947975907929969111177734029567252100890913185746597789856015699778890884052986051389954635260097980829149680405160312247224214677109643842682617879603096065893458425240036584370776651479484277732667775228947630376567936770482838869374006389308114028759757607114681444856830521560527331776576482505091467339313296023023927338119931613144377783664233499713594311454371570277727839972446608548182886951541164723687651661203987841818688354379825958557394551788285293110425048512391679002544803927222914028318838269275743574077380424921630418891154139305712662165217899887895362290471740754301070038030385884622589044748068138476835603090864281558033313482446990880976591796710798099635677347068840519941610103947630066300116621201437641419996693733322305284059476440022721748725100588630893335776726199372477659498979588072391918365355809229705985868619532936803451241031084176022902281027605054967488202040356691721247071131070077838211838611206619023693212482396852883887422268255930045427198341074623512562327528441049388279878070084498505147370587390111095878485765305365757154477213437967864557393176248114805115150469169116116931183926806655535649081415207807524899761361829891818115376064537506568374194992146792520842475651446745018388216356356473202421956017029390152945331437618997731045844509030710896649814749489623975194938319991788797833417424420923608223638372619542227722894596053645838865084589863537844647873962219724661975536200328723183068969456329400942777339324662925204264509653399724508524690818941978316053737012545018410232294726602140297409269835680941901452735877153388845923246334133920509893074490012805228794948278686879181000629073843484419504148108471976961852770590532264832078887240430981461332194569409281543560037710445376542486295558766027974862853652581513830235538591683915163939401853342294888538038981407129827409441478755396853315386163997211713353295745201416199725261045059243675702412877982077754807953611443990357824369168891264400465177822775581298931553705869245789727571042442724142551946710835036245161512700591452933435742098892655527132831356182534271140749482435924837815035851093901409591022412623151031877877492572548847844233109898857085550088983337710175083690622594407262292757619822692070676569512285012716977655733182111607461321446905682393814788745801311083950288044276285670143469005388920270808131912544486233670972842829855482000024949267070891137765338587745585843770862804485409289805991591238801555538750042170883271592936480049759698178991065025593198690278343582248430613198439166708052494393419169761067899386588714669741530220646988374897518712035317563020537339769216628412764290884668454029070350326246457319637845038801547834076242211201463304499788575262341112698248408581919318340272205387778822266416430525087992376494595098093450517805290619303952908008741586623549906944385537535703930949941294867312800770404512019095702145796810500768112635622554294151969401085167533851720759169212363387988250286842427452456431868188537172022913545523368138752801027742185864488759432023293458342726395582456368010358015010259550983240887667940538477194534161705651618954426886244096263707820855739465929347297123867941820825156642167200327508099610281071958299392756327302235334204663568817875534012898344041872539290544646334619232800670963522301669166563330867969064509078219367846535856000194262553927316180628290367519381080227655596577027397048296889691613537132779569997341628637058141977944654229475435496677012198734131037654980288849727076942012559428308316240656349197385004380441200743994062347165061809900996605009225223586924387034191799009204803380625590881119641664442042308803745208861768356830184712184502961998777328776931010310080845411942573518859523048966782728024206235139005994504149600466045716153082548092268232130783883840284302723661599553207410973038704698016883415547707997370170667858513765097299287148334590493858660574934252636261068667311707916704460674027728641268087390871379302126725202548566413950431962918086726909519472587501757205993276964350638662548439732561247557036666547448454269558175635701899417477396554626616298615138902257951201815879516743248372972249035300489835755292932117046963366513067108691819139112430412536049752348075205789772522976988865481606799510372156112754203244409497405293365332419130743605875380326889315378227175866955254369557721643533318525525056280033441269504004516961738212755345534522378880307598914217975287165938369995851572287201900486468414671212662403051959803292866792328276822949505484756355902867984819149570080460749279836792392032494527600808012203140516746289108286703092659177769700314368107197071020553664898220097035555327532700847897592806510756412269213176755205648549440606140552515077945723626270365268293143759867875247362038455051284406440109508880132342238372862621011036669181858490527107135142479908047016192694123107881306099868206905454514341867201483085070121630989919389972731413524735729970312477314323521987435826053498682789416648190063216469502608944130420313457068881179900490952787664640478684169059334223465693412207978178304344673784271567461520336598718394266859719885177472921038128586260843997355163601558052974617516511125930192232339325422019205132624963676122457913049017170845496448998628496734812872306572763525693133258759070147495404229648248843736860421099626716392512875447203591340271562281356807595913948636917687218505396850511420447545530208851058186425358587009120348429928316404477062756438349503799212703859734929512565177818288236829643658138676006185750032292103393097830869364575230855810927637548239215208336529741158941218249106285293851712592560228605142523223644453530941928870389062038349178722513098301733651991851310255019212888830406717926808315378083036808544853928182086045925750825109129043420282055135399664291640756242862378383817152572617021743291849361421923161890488367014226084905819233785170817780708428569782056040157895451288826362228171782239484217157926101472816597247940605787875027969130429994407726475429346548621372987042582840839253845543526934886092606240470142228218145827864975923543497745267265797406016753717056293186074122910035069374865257364626474872955875372171829793902658040531460186097138018081895446921412257515858750097665314490891701217282967942063040232915818318118804933871098952449908267319591346179836275776134274104015351353410648622635756874782068016185695939835980927839704535786033280824504254395181522024443477554165880569338847047485124155280126089822843952009890284092909848976698123143784442768432569601218808752020116427216065438091796347599764912751625148984039762247123430901694474915171251288090105305950298144179083395977836002050431115591218550721209567874084447107675383406694170465068879567122847965999643183552963216546800248590031845510687909956344788279930089179410071681556910307500324067530634665052297529448658704037935176677733532114034484904336429789278572386544871650350499103947473033839404358797631832304237209647295644092497659829510919301931712640319386307440099068007420361638265274757881150980067363591340357046338533577796027722029478215145516728315554249221453940984002938235152624640209427644620171439589194665214801966615339487001031517105997273955009727654117088947520627443355102204503235383000814649312995692504219387984674764705383755923557849740154444604728244500625934143150000124726843815904846005867089953393813959068441804018307320607590896460305412162857357994735046807956280419343220695281762868156790972438867857365988043368790270953814581651075824763770739169570023278232786498992159616718834785291899612303403698501278775307698893825879317317163633857335453844501035760999852968118971521164844540893600627404554078644401897882307508320405544638614561308211713812417954354219874277040561091907625316804944137000070392988033239831760006582053253206522274029427952486285974143696351757256494079682960282851513207894935553677529351034745374432017296679598878626394867071082329389309165544504552755352759440160337549760118629194218164932311339595685030661083245306588319882873623158672110111576550082476127082335531290597396148505557549941675924318776987922189151215141151112246634312261149983562180944493682987801896713967036710152549311853419029090939875664332174841511247767047854792902386667971626805748285234749101669218881930130957293700798670716473625496851736613588882524764520374213825733649928566193909445242816306108760825042230526850777755428047666595435470578446023225477122677987962596870363582148309533025912103005221726968796499368625149766878984704589871798588426646089822185015469270467909602885076786787752857018726733794798769464383575748155506479185646653649731536810441672532179422432763907479798732021293900859054480007679205596461344458194018408175164922715827285291544851606696459784191992413090269480983336268099120328461834764335953885088343443991820496426536946953432551734807908318323786525082038909193738390152397490301556922574446451874791178650783220074774860951186949423676609233610940254801735123398332527908318720981458526581997498507752521864669420676507693145872593318454882597233926766535543014581303203412223015181531169952374070537182871093121407675248391881192913236751443256362528175740248252406385025384413494898584857051225117337571533739401299867415244497336837967442548802348814589607019578190110242714863368201589969378274087349610472334938751352179204448167154107683988072974058794209774993021347113439107499401114528786018954715318900631550519373450185096961590369759709842018641191040869571208148607598825926811252755050155724765133177754300075706909280295989130053755791424906805483560061203634083578154209866665870947857793120062209175807770135559649475327747470216291431650719476176570014884189602119232344775276736045374079657266498988552924723830338184434972555878660417962026366942770822283477692742415762076139705941756953412785520145974477539125862164186137125500083260255108948258536960843142658535537985145542784442646193649263342167379147727174860988230243011594633542590623688740785578476817567680278235101079937144967379411700349718611025978238341998433954935803626184375696222790793452042462120615284113937397863557653908717186504633062433147442372627809341510927328275543243412884808752505165212365752860011744989495186140321245794930960623896945671052512218725928366946238768230112656140931344276570826939603694939366452035172558904543794166895823880335488684780259502960461803525688900492180333690273561401950598914750849935253485914769100879914153167110762885273216263375205410204332429883551092710971031803191447236709830480844449121850841341619542442555679780082226802891752302641842246659943701625091702571372528136238008053735906668035610520940371481335197174976243145010291308813361633040895047379532679828002354003479852002882275854887904985770223463342013801774815255803460797155333871532259537753411555853884553530757348080321009562854045286381521899402542069491206017306442692902208993064093305560375879452067113609429100547830825149973574579874439252909277689015975449664896291464173342210063441281311066094049984626061842048580494004329529942702642919629239256200252064059460041055097743351291813318010166926108914464764715375877063977692135601823567215298596951385364125466201407682824293254866866534256420329929218628885383514105322406645305781966942555511873521055077079378213413413946599492853490364002258788343384839993590651555088125198559943714588485283399997276423248609072054611931091268075943736157032978834351948795340482796453375017951607293053421385742405746085020622293461609229927123743286683182439918867937410575064642144165414712765097223199783525395217897393026821984076762187509794540416863573404201274147565847757242383003024912293440820999730062925830143846375700346181042954452365557097693018685518009955223678109488679682132729526435974959086697070896013573729888373949986794711681201757004430192253765834720637536883907703933852839710997982114791404255430710957234437163747307938659325578969394652940593287465919665604768029398032743163205608046141677753918686007957430920212804802144141643978731185283930161914853471522348812700679444007107727607630961176888413006677208422460580764376729455323092753055419925738096249795825185759478926349948099793595087680039664979329410240213434048393385967746812331851841583959119534580669680717767585832116496103450473953848070438650157465207685705016922047362204704711845444748586703924050214990452012657784658223132968796910087845760558684578370709394767654983466046876537243412087353633858446474464401343520382610294738125510945517347466558606710986331942363755914963435071598920754990977523737621251339370554043107210993609250470950834580211606460421022201555848422283832027675002985615291955477162748155331022545103981357983217150129057799727332001680033679602048178183937613852456351272296813323295062864643666213964430280285613243275366241922102023264515754989933839317845638973352225844816241571363733754358204342751107019060977198500202144818967819425048813058570329529486796764906107339741224709485656775078775248420938170929065339997605656168565381875759462184604544771303257140231312089663401062434303149259573249330557839379812395733949079137125684159238611590745760083761179953720516400909471195715840087288724984881304172551604214413414076988586490166269735213750673996000442920955193971241432225500408127214413897681211333374784584676845280144046012400182033756514739418900751397526478472168326299926628980674928977725387688958804063350509843814980133863764462301191718956175867436917400490167807082695069791989527564385990867284145447447212450388711322198641294311296155599372382839172650111235295467742398777054849592015392351647502337408657554656517010087833534067340800986530921026918984840332641668087488847547572855709320155235353206796652533368471647140562296396016553434382735558154127297162085484708079921648834444547167799029583271016371861801974928789904766352078484188183658230081665122135140268453562091521127695173808104989972808648137884031908593093409174266396003865660404591147681831175196851995745509919993416825611779818745848673718983126833812610400487928201001967369070930920546248523090097519819006579567616601003857891067032144516958690202586291946193176110112575136824154203656714506866868641888745488450991616591861845994464244531613014231054683523247681207224386837974374697736305893891091254195183147135021847271271805366102937380480334913938892259152400257458291100616749806041580940459276971693382229245935737658542452944362291571680947433455549490671558206684849581308302832793472194354841686561131454643784392104799194159239569524283579482548252237617710096928227265250070272243034967771736763525985589248735525623603141670538178509866577734039649508867476625077613454397504494494157984834239125888659774751242878050768088598633933664559127773511099587027198406931634002436423501861708301000821500957037238283864479825409843597893738312641352869804658725159643033717714839509969085154348963662695341560319126069202713109173501804933116153587544248522532112178901057223191997917482365026813038314434271408207713902927492103406894788494546176423644294593608013770040993214777746762543123269464480227635645323206469524233374315258063259210662605586796121452530605267446110851472638687241330277824074608398438238574314592777489227420339157124501988132850939639063723520445035116388439327289748107699588265466398981613798475521200068090789387870732702339796277148583805053082035749524360623582728405028726139484615228782736691218518420688774643814621250000805571972400863097818940586269994123727052757791331687096609382575842080396187901559556378932637963845888273200397402806026988769124622161382904768026684726685396615658053295054498893926250117472388185863865939391822445250708542170295302065011611870544085912344824976445955738281922192313566745144721349609285297624050664982811335291010786513501074567561601919039064304730490830530226389575784813909940850973106246198398780618369135603297781993375136689094376157519998557707183949157499653964411221641365255549365332241971765263416043385304135592119164833615034626934193134696914215857737576564446728002149891037992853914688004273202428027976154550180307397451414924209402850235182037865061322703004333729671406275716025489945653739896372868636507529088631410207463464760373699278780781144181911661357620903249334962617012234185529466004331429002523118858108407403293998028203681067908902487552041336842237446915040452839724471365001515422004468187830115527157473618393027888117944530499433880202956505978381294704627459571240951067334317995069331823003763402782519842705914880328588129771613874418966101220001774106649973668118570058560694466409760952822284542621848565239451225715288590481883338350908904618809396139093591703055461753035032560634554277780633029649253221471727317557154598971080563497700253385236768589247791233478595833836062144055317176372267964275781783531169604940746340174896222724550397606672577791038006731121762272506593776102103867443006502107169399721317164714184496763866584555714244973441773558529517960389231075059540406798869906234842139452555008441402148887920971038338320177549641457999909871275969910388904207869845767678392451680330915708605535723063203885699437119406703000032884330829559468279507087784758620748848042802791239004818720838265334281668759762017966681067270427031366316037953795021354854159025775313123466038522661052489649983248914615073215438897116372486269974193323956228625682307088679528615942392419326510337668633498788584538402635478290832558961712019260229844812292825210221710955854145441198171759716288989550038166406900938493071056537968010756834567738821857686387146939337749723344620626328052947664939889104708531430909787210654498627049383588732719591091589009288691649651705691733682935364728034926429850825391828288657626631064480758868336238110941357177620665601469771482029348072544811666147729758279651907297585354515647381330999213877866245477909045241870510967070446059287570855849104108943323378950079920298559365871040817408228220049859392123824210626985559672963236851695609602618944547462783262261616591210773026986788594591523385912231711526887376667737843821739523525674708942600569624348198391629255267531628451824764946143688074658678803199464794679844205826182502433192483289106560559563663596664332175665934100209607055805675866080113371062533885437195599235419646397141220045363965928409751982783421514515306224016797861906134997720008361606967374794647667298254726258780599141156390297689742593527459016847667987227535915424489353349071745810770803475163317901871541140320048258988074028243492157713436177816773176575401754431264601453250213759160109314671292667453166574074160853987735640772604364946422992044485137764113094784150798034386022850677797375272007068858255422513864259780296119212421754564572532696111721182224258178231079040447200475141500814010219038311509587799765140046500681633486651447236525657148766771925954127726431943332722004943076424402282929429421264718109189161723709811719224616708056125470523344139212953768542121980946994597708570408439752295824474545746995333405901207018878934496244745867471421208310103000765375979235095050188126353626411474602686515480516952445157190935321737304132313568090810876647760649542816923656934240079580502248906715804378716163245074468360124358347574038317095369755746721575699089748252027096043756118998179024461878487840068224066747624034907150388037256316347075225832349251605995945749209833060972955019657545296852391809859955974668740453877211184916313043076587338578958854903687756350379110856286544843517785875960535991902052193108360272866811706995950480757214531860138321556926440441618134378420888573401498075958968311571689172639708009180381096029513320118325987731386969322600607790908813205429798926987147723810413662952279492867049691535087410582993322420644288095990926405654200423380359166928780017715713891219104510096518125396566036597892811664803755732831652542506855630816581382744079954973092769917573253077012874243693709345973446716176072416532460308445539029974356353055295391250270691832163249751023342521382726733234440773965281551685460770629118298624314537562681640025869332068109304989882098147674633420520152790523973503868822387994862182402652807877303079765972129195853908956446765623677613414371354446687907999572796678389656053965409386154167764308691243876321272776616220615356293111338734325624719673467696076823981007471910523395943818648863961011157996418850986810117421379959748532242689557986483168766041860738777552365176094253785299299754935030966955910821655871254610687709150100052824875999982944631985876018980890514525208479978966336140591537602930538399629880868416580444332455864299407875259718798500667375195698317677077434382884497203385439562347775338260118878155516200915485630706946549399326357049014881591612682815567939072923404114256182089343370797959057242994164304167783419183043133199780616737842675061324634218275834861978121534671194391819433867657441319684850456008391179794793434078490650962868471173999216450547643122855727917286303335132640255391091729067622502349842457259030989405461412186444559401799463020339705301738588833340994116978011334192052180579758540943387688275667381205776058691540680034163201962888160695122027776177190743458524615647731645704802614664037981107261516377226189826219395998243997864625640148043457093625907199159560751635291887095987669833911111827978893756870332523650955516475104059544515611451120829892609180472455524431086381281794517225438336539585398945506775773836807178988765797601997648454599100528819829008278278562744277575940535189568848006571659132749829389828694151425464765368302103901431080905915848463413012732225812350772553125176103272912953907230446963538222659805794974895587330557405319299306963467527993386621498973302995179333551520902649458483872665305901923013164250966851085770866701711221072512421172106880158165405724979710232787524501966857778239408958796945992517209210174807668800954262543412219066819099151542310931799873360294080841530014788408511230664436637544340609976390256826042921972020302249937417009304857861314548431898075300517320608531087315592331159114472360925398727617684215944591743133578271430543506916302145001779088429600789974007261137794429952768703686238372522253954085391700452596839601555240830415796751974701730293279194173121906823526114160621995879477305242093190186830365230929997039966800169900043812343691484688418847980187047963426778536233108434810870085158942491467503105833063243327880227389797547744156270349006456152422301004951675128657647498341132804961577024780458492560642770825392322000729042569663976242911253727737582196118025478641115999002179488651879334429781696316291638273564693605579410367960203768741042820932583589663623026865763010985102158301278533862771684585932183770029130409569139550423501425388606574041493605997672607734568193203221007779854540701444033573956039779418884892903400085777487518215122024634829468314070030973464490794999294065655190501493472581058709820221307133688277985323528585837816470736421257159660494515835628178478307479428238865014255036600781381535298528747540743948709700529545263274003571103460777845147140957314891315742876319613721852374930144678286780498645821425398863328318997902742978159317134103476693731391900199815275242325677095365176526604587520823627304868316025804737883693030671091446400585515995225749771342293094241130198766874812548323698350777821203103820955879987931238053412857399603259622732755437388641589198552291711112889319323450152563971790889305901965166588229914302858107439283741761270271463246947305010156221452370594873540741502726637552474828930245667731776507473255258112386085437073345261051778731906010196120787571362230992337342369344627654392369305041063381261207495419322671808112462442641309665293395195274581523062996924386172170256060969055594467406880481718853142370539353176665472280498267539007045556644996709461757340545555454750174666178569192268579930761400642294341527175291768427536421854256342593284732477229401571071862384115957372475314899338884757612089115486827861309099520669689141100063649087310285749276508794116792284617431320353099059487953993022742078720231234988668634143278837000506026589819358939590302724976906486788384716083296776105983256048718994520373495625726021649534890122296544875550508712909469977574553698610410691547396231373337548609797325365234326763218267764222935732360105547327159923537506941081485020562367587036713236240548493354805835438389347178014359290425201233889285709857936021821718727271925900839631267587956723489625865692635012759148041492475528557703872610704093892319045729278926881295875215236726599525317410798124788939103238263222234785534594975899127484002666587959937296695046491879149039989811152861353038535299813519273013797379317985270687824946680081337064981024238347227462520138149598796850920234378570703950520613875463464219907076787540225359744977301530049462047175433940408359999501366703514499607591299422880438027806001243812159075429179545441143834871884533001989009729527881474113302873414998256460279464856515344971963306847124422797515453396140473501046183503031346823628180312186340766360232109600115478652581884750522135716936609430995722601754140939817482325903920482659241602497668774819651470838755712046021536057023735213240716877278697955202438060797875367680575027332536420795774468739184272511913056418345650930688489606369699418190689672772546541721399793789054897828006104867584981193672269010351323488279335662421563268770374053961637850279695473442992118575362233475867421563076249466434006152068582436608246098638723833067469119379929634716910559496417559689127231003981889072258795963024503426484093547408952793669758503901426887009704484425776319908014541451441252873386147164453753466838923450817478072675621059674592321728780805107004031009185281538528208429609965668797705064474088557825326737016083074294072099597898208748923287636866722840810506587345393770978349367663860874826282182989777962449595274225826617828663382416558263727574597410752165765482763933453838431905370252412645969821836987458460004187101632934077252482897802315186094593266617421904839113929972147046136633583382267661467210953144848522182501032793197012628639614203599629734816953917553861900967219125349302445788567097639047620230245986718373929373353334151915404483840332133479094833262453187199868542069654015382191135903335331000433923829304645985762349313005945819623623234414320263847057290912750121359625911887193239683724643697549362304050300247746476863941350306976701485605918886167038042902468642121054646183519375542224988911652034970356773527641189268501729962075732946873032043479921341800915623681999973658173060034499380785117881894288252152937764598780724235787804950740267432931240124142380124889795739742733517946534181428876528056785602726763684286664510027315504434381414401264707834378787421549541477260398285424924550035396769027632875849176093460257864112931682385162855600726199014458730789904227418639416325077202546925612218223320083775057613783333697304590245179274224674342253084989257947405373965681772289737723938739527850284894070467284017782767460391231293757813703624322767269129433589875052609190353493933836106815176550658462077635086573263178434566005053352407255364296739309893707136320207695885349643588839311703579886591732835077478513863141963354843038648794416947504263861875457100137744960659662329088418906618350096200230063573847989746505466682898128696248890997139007785229298769388305874801864490897357245922898412045561117526717585965639514381134326420748599782635536752352277963069355181121603729298255241825736797941850558680206511640375584138159046380990258123063067442426203973293637379568525326549408346742166828132180720510719356646063044951873322890546524909756863421542624691282264736860742364098271902270228364306371134592600303660244349738988164547538136458170722560368650301098742155018527738377102567012581775331537568346378261644521431809359068465264759779853935344115063642064565902820086406625778002727153692605736611185014713992610357166018909761045333004055154029859963833990244005948534431758517349524721343769878264799416689343374094678230239210270904476979343461668816688098151568623345316052564032125146509225109351851069524197138495534456212055649532115793058103576035859827762706625570583651473681643284406948692120854978770732387745705044388415626922083962612746975268528157598254909510163175620431700541128547872204161562227144130051822910841733983910347235357160448563954996272972682190622424396259773291163060988187173905218439894444244857111847750721506871254511617982731383148989457755098198407722590039769122825469506176883078743603578960475622235113599373364571929583559402482763057622628492935482969184590550008560883385515327482753210910341511214028112255236265343628655133109577828723531546761334491515708060491455800535917843598935890197967317156249769804251778951480304814071560613540488861212307232052860563060620058227117579605853595954748918275280800051566364613050088274661633030991350275586410781501540541684981829487747479154855383567163269507501681148371784509914172332230337440512400499441123109168035440845429420466961695129844287147142175686186298808863109230653826281733204160583008619902856333460756485792795560837397587014367363339572222797408697656255390304476154875564264131639932843186736881243598292164664429463448497082188405913236852554199115067599734890437757165394223808874109867054844392596209835740180556643620041548026460702805832344848343457949660027688225439087452813533783789475738006113727833274029030200930212603015389033254507745851768221528085264449027151388233057775258790469319176875883343494702590933453249436338679598902505901567569744794640197099902013415711597936972951851505541240806289872398217346558801094912238607157631696061807262754467755774485379768460578865395668735631327952291425769956203461464371093850533674260203764531497186558086761587998231790243333366531881113873290556453500333848591645185433492334361030873805033979630774938509387580991286818352597262336725607822389003020610593539718565057921487994163382009834243811297639990720016058339163941799325519588819284580570747226247465820814818661823320538913880559401616473154659082305213735770715183407901237570313620026411084483530924758598365496709846519627770067785291800486480789557502014868425518885100686745910767479968330739116182260023516381036891979533696752687388500302258415992780227581184190617503600254166766464412761091975887698842849902611790222900830651272879203492902339838023438479268869673272613583530412887719428859475668602304664708340080620976590488837140339898593428242212761174426299248562681973001675068142576085063276290634864351891633860864078594741636151945434712608705848995435909009959989217921162969480931490083129846611712835839589088475931490348135882868067302510939016576434499242970692038486391810432935665474340526903457471930585110895855497686175793672410670401424860822438305073507807109095091963902284482784378753918763572186874033782217692043594718449785848887290794391991372636831780687472109373833535179219564900913767385487082424332344859294166877199129704274058277391084612071736178499297542300072679860302676675744160548275414668386739306371177329561801842452023319103454037520713761258641049882710798657241712756699842335811237170472151430007788256539881372399420531966842590098854408145314067113112956431762371301498047575618384769965062913821611291807829837123794874793099654990906062551410216244499100419526276956911286822866139596909895142037766996087277425441320791546033274247410856743248162386291530277324200306674084043325707791445384059965547522106540393291876503254447784213352795269117286995370369678422684015083980049587457807816319309799263683835785221022506570905530518222456775367667350546766063373831708114575325460522664789966478519384010790611857568415047147490013928772310985949929315833678797098125477260726571100138081075782825685541789795783675534417909561658290814553909253980188121932170727377612713117536571362131401223718369937427535732909152536488535109502956465527688635100974303244114452437718707396864406597966919513082725316852077274318584669713131287273070358590984844305679973644088418962431789353758263176415547369916659279806244807963060376378831454965831337477743115299763680704487971185279912366844539698217903594814930479618967731266059965335738163684847818294101781741882614316264851745112188669217029039319395599218226602682802096650757639141313430775434776274276880271198211263481870128759142286438115453024357717132367381549639164187293479521508844593225565588247779090277103004855272232887271185258199930056310313943494682155211869997502485627612869379103130292967659366952783736489319947329851115366164464120640192282599510423434356923713396634379400468133066432266022181445186012907832596411301521107325587639875198280824447606441495193004000196961201394594347367967521196046365422850056462223759421222132321578374086856696334840019731666750669141856729435301686966487361789668280827559649820283238319787360788467485595194918484717706879787481204242915116984642088416339259313663863981788112275050604749511962445067645577462434382762703023639528867753726962653191106582246996744584783842782766341522997735881669158007098785870989499955480645457683650587121565986974013640460604729659047364138983087172781499595184011950172080543564091931880995647529839318357662533984411934525742233846123698693208844845010645936699028204690806413410826890174804287603548233697122130648068464932741320407718343450478857003451206508352500694445738173929425200146943055385879754652765756945396841915152067148224648038593430675159479730904841749890121998597391612882856088766899894053724562976893490699398367674654475624352131465349643705630732658428656883385629671062904833917770571277644949585200530758900417891235882311378394160621598979332498373997625319249750570511283338588098713858266598615046317505908810200801566936795777185127519658346645946351499600746042722934602282194702572425764572824155300781852543444228483626487155389677468479625740863320516471789088778432062275033117022980887337379214818858311351353159178074368338431933795912888574099884891499883439517749034838372190592015655949410016587566453538248802466924608036960293967685654652362566374756325054393353700661276573116156104359354768011787854757661590520890698099884535719233389144271769392753302940172530595536352111001866863307207321392340976138435501209071434830885590492923642745821592482220824157103407930465932662731380556725823390949470232721096610789466394138626553802932101781968479215591498260040750005319588920097019672636599140488847694942867316319456363174766210729526726545911425969785470278906152038573716126117945403055363303086710725645428720324370419467997116516363071277404940549861880573766345391085073229870853416365965193658399653174056769597387458889003769085507645459744146003023114618799747252978604840561525991526444741183767606040757052801372880630337753892637839687285248021135434801802667610939485084676296260218123761557450298687313582893884062599977697686566144821117795407227917618020840359541274096012415159522841700489193344617584239700480264695935182658953351102942734410026723395626663943942695765817662939044425834977093308938621236895833752214666694124302368055512957245538931130165001219882701528439746249181351910844137811188869811146953255637392908335894566578801540609711322258184367210033797513183588112742424363606559561949913339220316537090244447409360345767517137719746559104506670732060966245332406502306602901434282496257247984802915240153510716168324456972195153550644179906921289038022739113024860671990968494021338804716350492815754118859711354759829054612122798973797411435196464216091681128743141095627182383199692636803014754737487557654320027261395800589019914470982445065779300136514713847722406237649258183728078147814344807550649403413775972108162322411811383707546203044114732682156904886889951430134316088418744222703586734738531679830683019023466947725573667627294329465375643988313126755962498668845413367691749877383748208382503469003876239270474133156258027567954548121133130970895930201924343595914332291530519851862836591865315604556360787614938947461827852963800591716449881363688042378307949798936601756546937850466488490589743616170493109591754100245723501652317750251322264642932270496790539578220574455996902775398172857332043351477991393587107814685159299540718918739969444916005724387431819974979115378182150688034414240034309347400435129189462393766828005540744014914333020826588025505497046405595362533164025803008749690987849980811283465064009477332143721919469470259003829450088127983480524610873976417347420877155801694429837883495937541733914098894256471067647232162546067582633700530138482402715028343321218964856817581109830931163144889272664203154608129191066737273996736676069330336684222364352123039109363277922848218421938016909953704046985896420804015105703853553166087447851276632847254664579490137046493760678334816441522100427318618822547066947476644863180986972928869236449619795639712884788986558144158515467814664481563256813597464594829499571776370352104191288208729982245628056985131243278220307393746288542559860192416940742037069736128933072970599769809502424495116346544278682628826617803597200891311202702216327331518550478045549320043084539320109332691578975251943371427155871032985218589165884497782147524733269530475988948661994913556661611013574583002648285230927261432621379836871411304677181029239573715614011410731969634155675034505600491326819940430314499394718720268561431950572655280987050074248159763762579903606912440171311995928413876370131844897210837553596574502638355419673255815521413316415584629830148622496087316347716818279952076348567600396796739038034754996562337038458977938022682886566734125220659135668676445935053334421236789630725079776428744499228679187157479191876061682857133338433555024016419704926369396571154178156829242297779913784520944036001903395129505195020914963559267078445727467491521608407591581477244724537815209396521053895655829477446743855659843842163974296928570268171198418599321998761806225992427295919101371873252833832318137202389282303872445645780293825709145633787516975773604314243909210512154330958095362310799330754452546493273161681422691336058607756523391748468684549822087170087564314706246583076231953711630628091983575720737286373464851471676763175361205427054596862062600171861081403378402954606760731098827145933822263861435070904130611680819489586777351203837728996001049284652340928430712120078781121845854121971178277585242944393389565576684078940414945983163940768801616397172056575104035874250485998957803049104728935497764424725044925942595750482167190669124932263874266526134177753830299418892910162948863478468959252005217467077365564063132353683091786830573145304414913063472847129480880028361889608393902138307592078705386900346392407720219736278862170631607052717387678096218486302818214420344758622255529585460223230074749793535449109416478302610428618626190424738165816853015811232907668179796503447071558946863969250952022783802662532487286966210287398476498402050567982126421733805513054339662379889814471982231886034011034218661071019866388973963535807723916744087637609396171287268810661449727128582370363516499199834717922512751042092325286344947940934283879516321077360926434596403202110774976894375672603420862232659734817049114811896957024392757628969010268290944244556582681358170507395178981289827684232408268862069552391085669185006011679893019633272932441433791762997039979509671785218915786448829074782703610443161576914656591687206118757738824636447046696553842636948802457111327987979134790115503146052095902789214589389469862010955715891220069371228490787690759229537561761079925455247049733671033500116853988466132609002694798209413128858525482217551775331433230470525198142810768156899548117953436653460902523644454499301883828296822340444193869101890042104607022161388768293633805150967469518917111593877153600422034572287586812649580552055770779249279497194161517176798279018085236430942642712398124693867113435661851475565053633204026612774031165209449847557590582337922525132423272072778462477155849783948579942193482655159919563884237240578299458815641193131397411433658879588212665421503392260529422810409547611864961964975294420701359608846687991651925985781637205590913417919769647668515209849587127162256761979689791750681193001138688754604146310649704755909237686940427627705445803685053773504969545758307864007416336080847514705112863843299643739962188584012997095294116688145620061929924665531449233054528032886692873621527287309009429871058997051427016460440513597417782856767521015449732867950881346894999203638230075408404509767350799402964392597942578738274780674795753385267056585880984097771366944749995026558254563770132640488651244071546443183189810646078323833823788642684660967258576927503471778088399000599641862200250698637325918086131629454129889273944381460103987416735339258087785326420077229150983265020914057631560641364694579382705012286651550529729150280687855898976240416067371658477302001144317151066657609260342685106273649159443399118660630574257328067684567732994657724000903527989706078251426344538415278373965458487679707383692110919892756768158271571098400331515202242494145684685478328133610711647660185660212504258321629296800881370688390085749483692168102448218316875279820962354308448187483490795773703898769581019524950669133153033236543253919535645281498066653186119458940394789427478901930656814574619986722053129144678216371550701377089969610987407498925124024899258214062592578616457505410441147444895096084681931264370411289101111596944374847822323224735475106662401164481496817302404497850491948815130542120580549312469949275411637159204606090518804252360294421625928490745571306462766758299709272370794742356168800571070390919946981217424672869254196439901892243479318075491520405835741563579846957138704021387777028917495648309584230754032356695703493533760005707623201092404614811399255992781227708071877050264031439427971775633781641590707244788793791955384043350203887064712008572948690899237096599603182509498633990197258065343846196851516265477784777199968027147514544030941791259320516974432506246881756561439712855919234256546167856811109345872862539466274328639528752195859876683273808356222061369587849149178443382192009453682285316864413885459502593600047108295869034830410800728312990312878947074048384847410672124736636911974540818892864291729287879557221501674611538823934732261055041904575084765059999583850003262429119793943167148620164006694509831478316029904685086253715631820868974022141676932458167819235139543307147655738104191843286698164544681420485194511660388117012002368072574802222469863966772144704724952927426530143823473523110184587568776263555993316881244942570085081372621348034461467826591059608806640867917177200132753607957027697058888433798943220138370825647234926095134122615256591668606135194552970335710744191682271579031997242491691766524475424955256633289199625896168028650062430473315067225194872787634108764938475834584076279403452954346670045950440061458823375268918332992721424435332746422858898488672728508683637092436934400689562822936887628428401864507636473412294152908512996778614816924216282657151756930868338780287438175519925905457044359823121089848570123796343942666980845407454643502686375696024678315334914334932749891271170704844757002944454894564515928576520284283765651477271751564502200519092013684914996503008423498413809330385680299870788954048651414951339839102305594996851231529957872442297695928545027243699944265014068094752381070020662899852804506918568492085429246457063576387705357260073892027286143755045308268691851287410897141152794372617249101076919282028801407278474852221861278396480212123343655479571554064044141135742084287449614377732392649613233403638487684837871689409643375789723560404289847899898184678953456757499397173180523120558432721072114304562987659913183344539886460275437524586193371052207558458739108015681484549222176438702471872910459240044667224348682329751248127993085614970406087965795384839244209465574324932009499843679761023835151776839204022916381792419174740371890127604972177164112171939783252381812080413798306339130719872275005380002021061068693711273669183024467508849203025113425644834060641204199838139043161004442884721364974247255992044175284900137718079289267154267059905847042539157124765686557235679011925131049396681199905815346607867377695240282974231735253311988016187334978839328215558791535657589475576959597191709892156320775037630194480847326841231997038876465146190917590059125084180991014682401933289080580066904034290677879851115897892155119574773753521307740414687066786665041527755076640238583649945520537217060845251334128389215573622328617400077260142706554309034609122361676708802717555479890735641474693646475129700982739948588027146033571228826329628098892345012106993932130828904403830078256086205061479615400437357006953439765253094047990064901097104801772941424872174723892197423575675155382894387414401253560171949064004781205868361242254614220283692376345709558265902060619161806118638440121959502298870904715254435169660496117220370267720743610427357178304406439624689928375518116685480597800747427444790118618959686693615337278235554663877973694172413015610440201888899499973038056573734347834698699363689988137707000003939424426067873822582793156819518348167708923809882667814922664264848803127142811787193341249579409333497920130363155489962474079922376694254984895444452007125749927139798548077356625128816048987306047363316215367805585699965646560652027213497453881451325396354666593063788050939760379507031060751699303541928457464141515368705356284137835057813477126990874537896355044844967632674348474203420960823892536195712565026748234200907754776294221527213859568082648618416589606684888184372867400497147780677100706103285016489817877668105326012082793329452983934607927982923245734716717204702632621715608547406808919904851051970777323512543972433229258362861600889523316400357726729176010485103854189501466761174888649289983498732115681177833812632529310474288714085699300639645215853101107905973819921671411200793096698731807257296335698608168388756058918124900604487036093293131779278984016982068798673027141303233174691319727884571820770078373547731747118163633038287763437330771303284990991024016090505783696458635641031183398108506509344635876542073137278100382786057165745493736380904411612078004476694417430751762845727611436265772700138051912688828745593975801755156131550044191393941087411829276866705804486613327586301530579793809466619655654162536084161762406929973009267007769249281144066189210442576849488799064896707940360873350275865051847115545715040601888864280396929789117243654094057767416388541085816846151121657042451143620008713635372635996151792232261410739269093276637432279557422842122663841778248903705696071059450526700825885057926540295928666349737159460827470818770983983447195950908043030303700286096450525922110267677447505878432191098333094030125434683260899339345792286657705790089756079110200983598309015969940220648888053675052744867619420996963077004113678460434290764632133506668310173780583661126778813708300599654297937502889827515334512693751734054105268505449973497302723431930864216357994798057939786941388125337187954602377901035883772273144395775408022152211919114598338365900443432638079802128184259108656239159618558887420850496147969048634031428821872457101598340721405316828939236085437838792874005095674347424955196682025342975710077621858145013577533850368458970633826159437412786704055496452883338220744775048294002908642877322509438729771449878336148557897006850966290446481501188416052871043150637293471496556140594925343450090555432057824576769001917145784183411573232922211536581664051338667209420840009881117813392607844767152054227207689850010192997670085060308645579126964049414579596466174649862953954739251926039793670695914358379100339322990719124779472073068729185260414111704974187936139639428757271229128586086345641058325222231943547511772266778179186085592050757946671982779668565140279547969223309685323987921095225322268322347980639940104026831130076841676676595191123960482389834183065175601202291167947186923165818986569931589281073469518093442497822399595130132383140812879731676732581861936439536480243221636454427863437064739397143921410156797405859357679792677997469550950661834826694826097322052889495959350944438427578051604822348820240394298993098672274444346520274154257898136519359675088112539761759804240087776777840694783292970420705493687092988828834291075014999612968951276489634329255739168501038419895677689607908280155165075139768249936841183895080845030208380892256727110415873632118106318231799973120986391891828339578185134817877637851103898023663787288145397414264233402081928660719302710230673649232443524228692481843744056374573430768275603930653458562286810111319105166965861412843355025318318976741575619079673132795060167027730324731508341889886385721800074532213634898974182145846788614314062940844402543727569898296695624160829001673307099703268700400065674967686813571333985354965624236910079411566451880952666558578757764875079040727726417650027599069603295493863976941163909288561141700790056919623594670717734698049198614226739485537221823720281793339329593022627087001762453803092099455303189746829423633170169544145574957079989704330904149417412618371460425406847496384791778777623416198557841917278093788054629876793176387279023062005658598587956348210405467634108333488357982049552550246010045400269241130159427556887450998464486823570729939097128283937459764320752534462854579553713176087958314316378027295415675789816914666072804658993023026073468137515835528592912200789809833569448095014783199906201134692820458747265942973728032636644547603105989962484652589286101873983188193220605346057758325272552219234711765439007630270791594719061367862548360300369498495864562475286871324529568718386571655385639965602574857162559064255336732791510714242791313646138707204944807987234599946551898603924378671500431069958311278541413315857250774119656328088374601093314744564035802792526692787721942653954691891690734337477289917437168442181329032323036120041796887967480894310497958781285618601530388467589412724490615435421493879938956405275692969414903797148950123091410416583505991223673545455502104262125693677524154516628466065675790522061268398117256358487276593812014836680214697775000654354552168401275316015596145948562680759334330896596506954233354913730815163030394618226793416825988256245496125361429322022687832125600532148170201866264641549949716097212577934160731201937573043728099317699102328779908699808344604249077828857100190882136782004534070694220578695053699738047697200567946857530299949842691440509904180384226726950294173042048913312958752967533391117459659350923388276635887805258484507953902047625386704127310459452896886555694605094757097762054041859609879468151205174184832876813308111489624104145368160334244186513494666646133877475034404973772036811296340834830921620211943166146946722166615372472468588004922005012335054305613498505211017975486105101191569424122145055824583135411794544936934025857076880375559425961935805892629175170500482341196592245768040677514404712974343011809407580901624765061706988016119772080018667419550639163836593715334021335779831296156715559066512220319755114591007408105305389982774756114382379961882193907281221007747206873068685564185456042949378504242904854887454915787364555795055170324531891761533334284914850813949879613663587570139916555948515880914294702957632282306811714428756178173871134073134594507472868567190303114919631656601825267164021253256904719092375972208143596277807199524063726148330600618446724753042475234811165521946974453739135084693377162953573710500033323332739356733633247907970697872922286643325918622033727791373687818160972052373531639051050855555718386093949994911049957689417659091911072495159372361237594574346133065065028020300575976671715560358750619178225642460678438611901340221391754654984410407042987238342652818415159082480759801055781045658710681756675419832390123105397939032935607076344380915380691156000480855566138851345098827025376247858794306279694083029474284866297020979112361781671561438825324931991057502380353012266247950709498346639494450444275898326455179475457666443976098201094653161476002856730691046550685916200753679200071639136547024617960243536684812484749254033783310365905080316150331307898463643572456908410267801052539225964752469175828782099575736517969362488511080185111334327898774500231258504735922058339184845912641964067807660161396768517827859601613817165009600130133400680676379343613110268395963983230973966846712139600604903333797455883115348952710865983675923652368885792238564419622127956268928596194622462134435918891664109897243880875755103187184913571812852597862929367297615406874579664066252559941066192669116003343610112221034513833171437331140995737693685356585675215647068676333309089151758340279360740386103849692691666968270547985643385692658513678611593925837007191442897574139281254857337368172487506126410708378529390954199072396694291434701979846708028579189626302431476790015773114468082052248234829403617752711695281587477626491946491493308578074705354664911899122856708390321014699229660021521204120018403132154246363941847587180595469676011454873305957901307394838034272642529116860509752238720551909984689348378058191131340314745343482913668428836164647346344181646838328570332974339529874652210596071656262566597016077719870754048648611305687146131911565155146090696115656851032350526570045104127569496616100016380586963802082941607029326718362809669169797298104533714836185757127255743329136446162383007742353187982995318814258754251267341648182337413730192210948679087552231665739464410416767863537343609411298397664094242616140549566184402371894646026419158644791283947737815675916919041041045522571597827747375926131703967987292826566893890743047642365149343989608320987854675785414193083707043761571784306984908090591864291614023830937186835095483287935593142565655197658925495559392465794394868299258125288087456443627126831263396351015457628832106882279494996095015286313651638341912322236010046984795078446592678037177342876741627344626900468136966768826705119425052203743808000344942637807984312192021543647066446026109328968728462006002605772185022262632033949481913588704056191064277513670060051429946038256214298576481862307223264838157593923015961943942360492491566149542616569003352554594797063722877610656299010677022484113538534618381956290568774528691637465929623329285100976075798759837769768649640902324357959845043097106917185464895568716605912804758507669215390605667661546505574733919509897489013517438830396569174730795934408174931559693598259122349840254431455440991235432816171270252991705010486156667610635105892466670486872950121571520314268080345548587566166298899100525056486387434781326741364913636973155159665074222984964747875819325177411604617307236886288841735137407154055852354250738948410399898683739134539491087289431839889669817599443464252453780424700965671038664312581337680524771466491923358069336251201252074825038725314981703360154806316350745936245672052596225146286089435396805059306117899253420731785312404145037365839763114525203482911649701646812821401612459855273122234994096844968280044146860306717552976097836538136876789917563074065528059472205294008210542278402083341705242611119576679356337438270331747550300377322664055445542285999896980114130756908837882442436157780698735426504915266833396788793771368326701461364091645170960206730082924546655293578114049322866317701222750726718820091219140790461339610574319438225474712686766206767938283369706210083823441062535196142036891022585963322659276209805604579911378198494416241952764119815082830949627972786904106007982581827111412531456238277055674066914988755185171498924939547848400446934494580839643196680118333242427502847462333847830058736796361169369153195911957621106376436287587705417869522011690519961356186762998150833131438319517358669070465178077111961231666489012343425760714655315961423835901772559517975431928984829942074227284398573537456310494203027167082984421535748314597185281625009619657652971099674378176186988880929520252031593373875278780178643330038936757694076820876229570786259840152875421456285318043569429729532714916199676482546380555303221488696166468254538584650997901660931222272059619980782263869024400607311287206833201322100563559395698840855155156927949877447235987806150891115777595357408828587170928143801333549035569140125259619627246453451299395913832307671942216608832253035804071911612505712630114207492676332921812265247453694812834932457424276498879949563614364926784106310391557455683372282487350198078782976862283344125017455372212863314475019351374796114282376886346530778175252775390949381256448862729235456894559181373525724077803631652417895151898511072654067643299501042012101519665847252996904612828131005235121723684542489505787689186341900985662020852086140982745808432840950217588542531287171374260652448791375773826669619353922718465619031720875245964507404004366281471805362863750044806609057355235563386477092792784388554765309783014468122067989515227980791231528238828484202678393721600183833589293898695718410925340476664199397837486056337093486422754471010634175782842582382029639397632398587620481544648098303073083542522730581930379495421510682840072897238011913095749224713236731470252803831950842037900237014091826717957140093398682011199485613419360575105913708463103449545120470887891666533373783357664527488640887976156871108569473301855645703799241279376014351939302240241640901134186414301896105835565987999102020724630743363237137048575522904827680546133893758759538426911671783045742021111882866996907905227772814677055782834590623532219457259675158585797600414609867186015251795553997623375030141671700758244485540613447328007975130650633828204762609212081655338105488618892934310633220917463135632900389807543315772637905366217710396149555157840959923910877717281306807307800176780651331061382327343354965653332060896282676762773689675114238049291787592114655130373552839306181842252609975745981154080612154388863159762893795089535135089637797368494587974520636992345546582006634628003306500414325662512000967234290438488380124644245683487255179396747969863500230784810044826256063680181373885694859780715769274949333343489300070967354748282870864243649009877727771324450450090570698720689564111742263355429378163990838478672410123616653562260486555537769090572080295833569684282892855502391975618074368321055870473834403201448468769481935797154303282586602455269704415799823609911203710940967059422468097033514497822451223466773915153280534562378235108930280657103918721337586490935903014069064953805887208375162694508560122684229571553563904780837136910170340667315265153976846961466182588866725445579221020527726685055683941844148219247870561604660433316990163526376273182633535211899430619334436067416888331671509094431763596204615927941474485178230638780540615428101201637053266323180017588960202195145820990629140710306710507524742747448796128676836383213804414519231860857563986588912515546010309842203692793459599595432736697821778966453437906659266374579574463901430343773178885860566094537012987869119770152225890911787901672181640962291184099245701819587641724475183358839900705983685566195910776971627642242681472016869255095332813128782324253364834635998856838494879918199430436753791779492605922158671561911837658455369322375547943475756889585801069346273600121277470969895294741423072350598711021246242493774857737731439738545031754644784484071181700612613830775890259535908340632875386684977606225107991194609365671675546922474033207041527315749462550450472609591794816960533499875051755527907213868461493487931111183592201962679722397931803037183893835677598766783656316278961603288588590571299282886635085216201038027947451855139556775325046251090457145017222732140771921719885563520328014152417033692813807841281886834961904003928935673350215524311978052724998573561396775211426403611094142678795468526955655346079513535313738202592658194291078481532060599370675329971532736773361345744452472559465188290876274443638678097139258036771454852763165344936283912335362314596777342414125011071337733370932674024539243038911883984529072928806625758324077755739260377237125445629699501336441206940565270733889714961036478512526659549974270712323477752332587990331643445711512735990304758487145149188774864625242271140180670318726960783857012674162810743236755073918561071940995851639495062424500621895642543349455860802092546485389451739623146073445275934992952290930055577959432092793296313997542973150338376079452465326580047434329740863070193106077185895232355995594914349903569963439318542245091455737575131953471000260521922869815095461913904019780562874368055813254499279495459009101899450627750471910922527402723268761516284573930587633407893762314098138025790229143461401284024212021861267267391029632921810868018198263487087934359550542153948632582872054755553245744471426934711555147099859476419750245875879491121854135566496304015781473072515347850104316998073183277290524476939260736322274581877006311903359566909471467792376146726052613477904658339009276176476562197901605809489171839313252085132120328781658343267373300420996297352912045412207941013263842848342967642967189513664305337631947950967467742287232575804229526312501952152241829990606208209305895753954304806723973270195453717229525187120328156741044420411206988769806409929996125917314048077188197488250625466811273677135989089355990249813351031913835021371194634582612645220390035983686100608741143767220006500743844275352736591502805934583395062436105644058720818281336825738664569107663078505458729222981293609587374277199182969098135106886990663477114993893764436693936032720081536378241657388827076486140670655002007620438752349626202518522596863626329488655626203962060367086386806388752332103996816512894697198672693497060265442160736819682989900917390137385596125712327987111589103372989800745381362590865807464985307767726794291469351339172534387986818420546439742651196257345320410398423470451849837033940623733366798548795010903471773581729068838302977244906452513966779351535543838569365501659245760333324913722922796636061961998056380570702685011196378327129804112007735931175554941316422178150891930126156055596644832177523462785980186617845716101943735897769461989200338071271533398807076690958029634344611650268027434023317193379218127398214384857992350741372387116522270359586874676037065647620297660024527901505220867515354277233766494777909376797454613976767380102920563547048827971823460986165228010872681294536035145251099843206287538863926749069496779354133188224682392955834288171099606363839970946471514733182879781861617976499738203363918804907500464542500888143694885720931489971019744374044935623343922449587527006309552184144273829650077809385312501979179539291808209804214629369694833381654225329643118448696602004154366699193692148101957606502078888988261828247519826957709241017276987378801218607286680946797746393408388723651053809450708020941379721607485894250659406258670747714002439541415994599722109789725959144774578390489328402351959785484358286368338867708540407394817935034046986557606749454951687017097033800586054124344904835913595054796437551524823827199178680297574245895251127655247749405094447035412937867742653401776163362837497725817459603822558629392075647248870808341621069588637146434365231743254536130951513680228735736387230555115097171282455519881637824936309152776663610239778718038035419976290933402095321347350487592782453162518562257473534755205630283947735119735938404860641508637526915798950653073396565722020270850858180763802341982281600635012824130015036330056284419599288360316450898094077474426120379444261454646012375029981262362773061975624534372904737058480988852012025740571513051739336845975417464073954280766867625678424031279135599782958581763756236542325616512123841967314687064913783739776883126713499863288582055269755394264812174087033348222403933527723475242119838300513574747538272159830540931995505946322950157865065826427196368717153529871100333205649835824166161031281439409045768038006398229841233289554107513749259182383868930625159845846192193195570052075467466131483402156971780494256107129932032084076364901809047988050480918832938628800600384685732162420763128718239504736274908159619832674256811572455125531997802404458935272574213190719207079768408541427200686334345742012262999027980574170908452368021033982968240450056743217517270861813597029857564232013896824046586172484756898316438094705942249332626759308224369018921718960033486944237202425540253279897965496839369488825242822897695167274201956021607269582083684626788255862914796468957623933974968955074926069278426445789613472752547819185732430506959716514564824162579546524254789888625028649742883359264481586656425917202734872905321063103210553311928652090497763254391894892332780553812376681170712406915001546912581441723047348336679830309151243274294295244449246396265255119140712914424059488165832342427537343014453514182938285441409786799555741888097642881139456036753788884385273983323327403809538762188492672661835963303586785275915284801434847961018194137936233484484065516125448863892790547175695373142148832617586611667124341199265090162523168310779262970021366579749932123654824237109138618538048065101756021592196156444718871633573419022562396002262563342833751126950076940031208156110342165703244192451482049775455988542487863127745691030606815242389934874758486550509501693727029822150561920093770660118593692953358914788574341405243957923011466075519160209358767231765600308617024954496390523841487605833299728992002807281389657346773167421149246233168346591162596867172501689359377621643726271333229461496304112161234698629744120149881394142262100928075778887691565786106388708488007406685268752819042778345503222477682097562468580593379464300411325465987297274220578026604426392306641801526109931453168403134033842504919694302096427262377054393077686612763060270827567800127537875173556631375885238599687299434064046223125582296778007891821698135453161522654446265431016461484415724750083154714911667339170839912034154114876920643400613158588667102322047257915638028094663862240485733865017799246001113484018745973241223411666083168636654829506264309301738057324531660742852620815570197207334955361217020361585653581967249115858010317398754241437997681758886025491858030007349180833404200229430089577516747954485851960365731781985759456789998473053359758119079182641840665457638989829768860626282047057558076396542138987210540505815312070616847167428046987731992775130651037729902680043851535830040125646337889704738946336232874258974545529693309544531539297489928428877951866240223361741337879122950992646855848369386058905841822005968370998979325514947617268429647845315129035433566441456371918295159804936592199076860655994353684576368796274655592752730621501056049773717123002478141290194330528576626584749862471611695687700904635190491648851761555057240318361746571229008540329510942343384051769954791016226059935306445191459902659308343792938097122657332162147454516271805079875955012790207528546382148812813469017191443833809833202677881058427929787120542647909212512686124161621073056782003852055292151036029457727564767309743772350605290548957845777086104358920893022460164950069145810953182970274491920941384748531306213954864605050754006686925234303141741107701962270374490619091685456681486436087733353844874977415356099135980098871048553903299196385635197424614330306665098449144863376197094640642048929829159275877156929521621804265627423353840751926202734609615829292505788183479844616721833075516401180719076201212185568040641326858060984495932173434047685885759757426368941880464650703755181163888551887772674064173751918071557411774840105448894977363686725180034606424815808676111647622511459941503117930560911512233682430106413923153037444460710009758571033098500253981390000270652747959778584072645480269635101369490973231030769809599344924649002020575523635716243597111660617458281329203411227225030275889330510739193045227416549385496242998015870216064681264315846278683033652162081372070114177946113613911477415059871819520676630780660732099168721604448014576741395134026375628744550470621743297220232666857714696113197876904075196756778176920697600470731077311835104454162431216605562064088588840569904759695236936464425853554109037949637895267317644565492383438556940081047490310638849194080427886918138089746607706428444227044730524108502596146169967608094363028041743189936991724157414068440911807567244555534100338377301092228660696016301512004833484860471194550016977068464666807905719043040179072850100904349099866264085103278805318236550359587170185853193661111157983943531402419462423850559277900669425375968394443585065527622830270366407669626612527839188243362141937919086852879677065014896935015755360622065100931989712352735504844177174723749750846421561922290961321353396261830739071952671993640036133787812511428827277635013364319475969124949591562078047274964791459846559943960019481511648998781683185379727967295896844264847015170824179006321141997833574755157314538227519005679621085072816260558885055079839987491319039013048828357671459322135274144458065401948064468594994607927120650624511902837089044382239409164137250833079041841818257857112884390364438716917296553448662125700051045256505238979380832757342366821863026333150520219742312341871624819315955457199019057577368831635224148797262503129139381972299560544579055958816236778406739319851298577896990590217632157900472189064770425461366766106170408178423126821327149968943167240497313246176255960385973179863450281655875220638353081302750554917163956265812483430716103966483495597559687091706828344475542049338408604084178960275145388003694904493478028012414266919567063203290707024386339005875514513995282213468935682170616067648268168046841489577060429072266899695928481466142358527398007029496815615820228971836619119195550011109673411701319594880173731106653588824597329908734345014202332290627134400166932949596275941211302030526197082157902399858722876128788069551607787496402723757924471227228765470559249792275150268930858315414664732466455382195269588405284671525319194210051259797582060665787430650780017047701394472833036348858472345482938934957824156971634927141683970283255368910411284246157741972243408575359544950417746328508234753240896952405240910008015919117945455546144914776303072634631909904105978856832298694046758983334758207057693902423236993690324023861669639281260918722055284756592775590042644807977880674617216089703984932995296702353241790640137890421134969893585929283767681286241357631459817055968263234689275497317780294090535577184225960090251273076142504571014573953869428966296581860625051987585619833317211565453408392201017372696607719356950784699569503470674169629357774302860935039885830853247962061220144337807003914074067390258740577735145363869579137271063108313340615975632054416323571602094778112766587674245575059806239341725882931620173492006841442636830956459813218263323819294973955280988674880125881435926078290808415249062028102787744363230250295194361178187072474551971759042957429872733824741957783137270168732436729739742340927669449079732693812463830288127146120727802649405971117881790236545972694993574957819299428929170329042550416527019468852751172346574773445207732490903955375994102676367807407258004221155156981176476200276698231280929505786882748679249500812613493712263494391204921671594006767009334957933779822099035364094000014488548522456147558039706561218150170744932388147849807554093776099347669752258634205492838703663772655992047538166607721250795302666210214385816723818947853584841027829132877470608772373546603506685319607700006689228091012763175333136260820906668848038536220583175847445835143486328729479497370149631681918755225896265935432843936441933009010300225714242132237132959624546998310454181159168676131351663544139329176482367306503300223130065367299142015561439199666597288066517798336580421083043041991746046080895605813695524918777350933306412310536257034218443658584010040563625009467782356965876255533988375814308467360067865453466516661816706794288646062638825496095615125201253168352805098711946429842651553186597073797867962457433066876904565598406260367934421649127908361671713933942879517685868350899016800653346035269671490226755179282994794063913669196832756170967716945192449708729223163682372782615580726847677028829062500699891233375755111678148735171418193420826306354401317628120513454002952707322178144289604668736026074685909720572508638154741394499956689572681179511480827050093057770276889599214774169424062613936295302654545397308316423239953033073397881609102650823400365296651395564784107542606639467286518279788599625799595275256147919351147451629593895721703583497669612914131891954561086849888115760905473726574837625849411311689838164278445125538720376662368541981979133666020936117689170426906877550690081187841856300309606593355153434957351847515923675024422629804691162582340572276803594352105942013560460429377957224119700459468191856254964017950320274961140685807348555192585545874808423877939085556164360322608464747845537541067608825528191293254929210538029546162921645256477375820196256399945496603093835800725908792003229347071019989719821588174098385991326045729531829000279298434560249507929872293866379667393379784881741005080711672059902398132119379420112394948145972598726794443229130030445015166088285089126632710351514848560440186212357138596661725316583969995637220509486037045775424113640622054550690643001360109169173130439453887994782423371486339621181542463070379883447429550091725090993119367341605718683572267102712408738000727376960534291031389526767208891055724064316042506582310184196955836689587581254696135716893848391680690832912570442150469305399133336916684319084161345825636760829256922547169921955478998825345961422648563384899523801509464498937546804377472045441776891934602834236896259168748080692306481553107276946172484403591663293105563654407380944601115555393876739950572379663041711766614508333633693111807583860344133531351920214432568563393933013906036400725767549835312567026905148911055218017691958223469694806216446938683214725661514829652883564399468607518182902235248264788321968127394588975174402530032031529239255681842615024247981155937348761898978706015834171740202133066775017241992975117656918972718082019626350140895211436714612650462363647302919625082907975625864157759236492882171744825936588061559008620082284472808028635370325515734621136598731866327346498395009863551912732602483239165049173248278111349783173643911562587668907250735857907976984035053736013429106040056280402988865485810287782040348865428574049268675104877050522509663803656602597951583476926033295242352635304196752420523207540543466885340396853461102219532671255474619993722834068257287976927204829838218574848750224612822146468379313591178285107127077301536394180247449365361963043634277643962490756222012853687249211596248324611538441300540615860270220452469608456471938529874452404284984904856902186011604832577021143369652252937536968881547426710054811749797596296589175184035651036644289401179463095395435674983862391097363691845371116297438424464658888631936818120742903462108363859277613631135815708722209004396691168664376642349256726034578982990483275054670257095157203838894285225384886292842230382931845988792356426426093092156702307789363476818802010162749453403436285139445539980987450016328748269103851289589192093023791273838485188590102886041816313344281336375546889083083668719424889091908900796957522609972667100343048638635527849533007208291995961359843885997978270235972837375980876311562943436553418669201459662049337468042986376007760181483718680291140640150451182237061252865825734979500528105369161499816342964407591841684316858967354292775494675176528195474481945311333848312154640628824977446699081623618506839972376074005464081204157123227677882858241908962441567559402186435756303610409195975560516712649966956004429906667546162494615022279227184126461235097565489715743192154159496909924770159455811641695031554810376032649247175793145577066551527000157856573158207295006255101114486247501956774138289055589431472210405302510251728770421034302444616104024854454176564335756548779036995060683451574423774097428410861154530997403541039695614540372670526565602533539947711780513258489462674655898715745451991474869165310202414881772913292039366595450855967609111354494266368769201021270230293276520664154235227187114603658248056508908149405366738175703406872944123928414723392035741742549387757030234192073454131106601372557871810080374553223277417509611365760395877762800727939431519252749430283307064945599597303916190701024346108357279886552957168995825709052647398118090216773333676521096512128131274847646981159581231699633142948978758237888624826584992499894335271010642804899701122168422750318648399987555388249234133773405356325362865039133907696812342401021090213394479665150080411233592692371834184701852928866902622738263154105726550728224353560301505403542911095658868578130776028202388418310761774311751680147396047350701494184737715245109879960131492376200262938092634351550720910032054869067865389183372647818738397063955514779978952821385357916938040443175749727724830384443503647577072505158876346396012549699765679632305747474319974791225456226744103573277307453706198500178194621496220004367130107954588962132766798456734257237084530671366863239328663678543833686189043109670751238135456429115276706046508963128907159921281227503403300964955658891718349475740631072599565681670794011561440197059730889636053015134369135746423918750173774197983277556752233007450091559411568910122282099370084543867467879130029753866914416275363147862051471807791924314397714552378617075751972008339806847705285366310901195691167254255236445454983971563277725459534643938952826696990598574281184083533248449081382169347540107171679551827803281043242987474444017268181228647351278428820742940557359211535368888894116892651254912005266075152509203397896984725635194957387552823257821831518914941035553346144933924707476484147494499834047547222784654368266330909486586726758787400078319424210445954330421112631963105349219775795682353498686433346771288509553505311363467700654146976589915280959109456406078388229415415197436425862347881998712052236260780269041005445375434097388123026036417493700162686723015014944065834954021262521060073684237239840894040751274109590651961017897327879035788262742646372013495104564798763093487814608606150589050565904003397504964388009073592738402882814002875636981029765065001613707998647743296860314922695677414252756782351880011473273000300150606997053319719190106291646395319777941937822312687833606565675985818833623030029665464033935983097740660010415217505134294829849435125604757519541320046483795218785104086697935510888042376940183611077796030267752125651191594127412422685844076027289875211393517631187759213692543365111510680593498624026425514253410826620749777385839617527403731774701873168585301240182650942980251400691121076117562477913594715901858510994184672418012276808507959367931755669287922610585555481157646914403226351609024699744688501147156943468705499770819509974788818132188958824782302128683041856961984084714669000381318927424487415099903519380741841459081638901756020423908284901883351771595745373596826483952462843357093657867038438000820993913872063370662638469551938542701321287665564779073484977179487478732032036792526168183533378733678831607029752198247992737218881825889228441409457313245492695698684872745055938564907656346568920455165409013481343548784510406666963152709597122264083375115139300528878834211511580037335825080666040992079266626832889138739451262540500936979901305650227163886501651757126138522312991037119535205456380152403818775469098068152633669645264986545818188457332380547824039728677607012722386307924890089189890523901571499251622986212740068437563422638687094524334600355131976464753216412770158259124467411751273037260976726559554926662512512699000175350097519393178681349030500062485799209102980497908500378246216645557282581283479812353274495408957321608457244013326176223100974432789611972722539913448744155227104418205318591948654279775132800014966451503493029306127459058851615009959807452096260774765140855017289292101583063034097431491440079473768397530207080732999518858154590750664376093031272191335365205897141557110188845407466891868356447989147743121367435944084733004021943043465129716407653129572120795848016665851830436035065678609699552408713026285423647576155522435279272821883325716605126039321633323980761198576255246017507033577997772357910734965949837334326736883284738408942260061539412136231210275697295347301541769406051671876409047895070407621392350706754510883270036634073703823807012639120887660787922772095376050002619309963967047597692985287350171564885329351353237350807912280630199010750180279175770236105720058039358258003405054537787011248013549861624877965746644766939566040502696301307981709847534784754555935994582716573329752280964270142274406108664082030214446263397654599459853313423237521079777921472114301970779617828575822232498267887634935557735449352550869660334255321182401689095987170641475487496074692535171458153958475324448326159178367183616950832303011584478367629772192897833557209905276159584922327414828370733067970671034977337968616893488275020042036329521222724593222512008896178928476330905581207768037877698233577370010450312062536258432775596365909633981171125322236426733523014468400367780126842698835892741519178915642048815478916667085333536187771419103314910988467710533821210197574400090571484289386632288964684844406300252160165145058190030476680997324050745254137538000053042646852402595471937364124472304072631365853769275224150772536580478627616892791382082592212770075065615489687351420117562627712688472504642643866121182652755009118375772520582435150781565776494675856948544959425185492277349659378365303911910867571175721484480361861395019627663467314005930639078921065404135728820752967475219194341826002561626552585947814148395921865761033481611651126339820844820586570956609522676630262651174781391690481960496304137180792506200671159773979577681414258457706653586609685038840751638927701712198110444214710851764007316258997104565227331610921517712198541070005268573338658112339878123581089689076836519511954739332369920251642301984677342771329157141538612221658806855987093195427627977275231180883701783072618882706770932666158894925961112187403577487212131012220765014068808146293538738723970775021410606982299727842160857586651711986019714811982664878516773298030815765590370685755952624639901300961708645385176141545427449022985229087469690349851217880277603080396685989384149294548209182060747301539406763474947131782085307673686958600697661860001148294357452830706582875448236712930556260473178272671862532152933906067055889654548995358847177904730082344720722724126129228783498123818016730635536406390132292713090999758549678496596615053112259111286646714247227254609353612344531371043438447188650391793334678400774412161794166108070458396776361281902975167968312507512598211830150123912544822546900583061212369746044510679687732012136911931111250457053311655165824795096166448843690278024922464085239834412762487663955632137512264662616187792707390610960155620594005415923343488159676661884454538184411769296440540804935087315710836792830504207771951325599216018026088286418037491101626514332460889863152669278138920118724250383530134467530361990762314668039205553238391233348583728108502376569132690155935392704861280851299332996557474612091164719988519728298209763067487503916868607438047302378537230876272467863000000317257452100887057420612370485654726528165175539887175194134222083977728429904602581915608378457332143780872641666911599893535934486858188627185820269092963962494272455665699287992489960260703374611322511789453557445013188305358290743451862149408222474321818672613259171174796763197050663361923479556077543714656613712739845656193790631914294219553142992886215801976789744622990605224831812439420976852371083014433678904589726337346025747875613598337248799789690817184893293090683358350487332029361298128013149158623123132816474212415989545774352124846931306225437175141013498886502953824601630200923848544606775925359160988900484615765524610901539653746142556889106031808237280139777006658862235122271257507577330472092562171371584499577771145043671490283580765878593130656169475217432361912505636989801207013302780855585139523427374374603466552665828546290021845211380914491532638166410592443816520579896864765598609106606134471607516778276965324251604385425039796932465914159170620576487145190238886140197546574785746193162699194445672793430559332646272948591237416340569020488249868488251248596934224394359869329403136912347366319382114700907493017933241372118642245234947860774162325527800321900688004330449529272675731217237809646161517923745943891984161540217695648286177831499683003283397145516169648182035871117520862216750449198668013652207874103021477190183074740115044965336430746514359396576994652809973283450340064109610492004848468204738846396230543334498728750148010699444228162001403932539744928842505528654569641409565273206402438880133485049554341374407782471571522377383588815172146252048823323344666232416594497399407585805670724842636464338288631453620593614906917815551228746024522147795111498072844157788884358577202213474861036207292013274230419295361674734015817602329362906195581815354075529155783886990122888963095889082484611149395549004359900422514745393862049402899009750008693634295197714963267656280091339477929901262167103118999260562417788015634311913254123854062096031568145192084038148758373535211222064457066110366048682605814458216504097643970990948584822150063638844140704532262858911114452529462950484793850114271709471441129101151294937269478330054502899137620471859591989046242510944660218967758942063168742831238734009662280958998231166512469438126316194410669323852541181459900121344636910958056565849650917125047827841332848070652440477341959853324193639866639113887600789928022127063346774272222469245899072525824773191291932709889861556629689465197431140738157256435615932204671539094667151362974533941240458604678527692261578639456630658357035726912150519188265223264150448647014772801963971041215522280052218153406927547499721783200250832756817255855657826540090585305583808407695421337401374375823335443834492230086199647682156327914508665526336816193894351728198869831153148236858135456160607497764868019643905866587576819978801166661543996731714013786066601792189159506029174658387184035551072092179816448536277362121681689257732654801901118357608948742547564936319488486033617198280796092935532248001115560463691100940282102252354414841090790604468630628820443394124657302927125678312993592543845953965703998366378466602330544733188585666348775966780319078212810342480304188827032296012611491232651354603685323977374882264119576916965112767273275350703004107211118785460347405377946805784156522285450860747748549485769165531632221981922532840260311142857708629369303837547935055688154102222276757554261332492171869850397243983673456198969684662252907764856046661479290046899937172685914879891757418042268973625451799936558026264709749627912044761035926864510724023079834780555346360779363435130116975650163624784625454981514069689766637535003501670934775060600816556708990271788999904384843338245621761701661931981753217530849399119102383855811971909536581879088182280306236498468227389478620752775945214309088035996835648233237825197161626187573930037805498391497775888709223574954043110594493894854767722344718704750203672313697572603045474452058227274769351271826202275434624919647548251374246477224039149640098317529470659320838705929855205021098401808358034860905865876054126219306498031733573793217971066605253155870165958167244528539196754188864255657414601656889426793609752258642319894839356727021436190430903865557516103644323995175751065544463664313003013375878933621495080658061077695524039142508728751719095554578892071900038476686920232919333562530835444998280184016752095722955284432077157962980431253012380493641124556619898031393887564862115771842890942212142142067423228427610322188135366474803035105188793497994005325644353684430163610878855387267864135090410236904246231692334292845104640063204107803708549531323470613701389074129966337852365960067326266055799494713409413870955532674379265625091360934076667561776482210916005108411444366129431791732165561913012267988630873720089708071829840506440665613413536949164877955490377866412650141934848067097745547301885681336229966521587784863034131608956789277646533842993141468256599756607848425422020768942728667847487134276423123525259571237420815358734257014183781477874440225305198684412926273299994345992304834900157663775661616504638523242851620642123171760187096179669149006424015000951707729356396850357312138414203395725551133604823506201505144885716510868035547950794802566008454815050007964911058392873544983138698626701020220890354949984467156980133010532589806316836793039487079974846527169379409722522167662472783465335681269276711373784893284798458104484210332707990499484958021222775361399815784446090775042457137137898799788752218060067063048222534789981277624170010033249900956869722418895854244237316272577546166586638126944383579492337461899552527276183457635162050019508232748127214143333227032475274609007787657416996521431261275591589534033828496165112725209025668072310732205808131879466595879548181849202555095580887024402793315034642249539683301891158309807950016644504169517905017640883664957720781796646297349116263663548969974261371969556309216794708523575336740501034231618195729281337386321202382020637065812462309211504291831485541724897321276277351386677578784575468649404948025354797069296997899241099047846563300345897195680943096178543770193939961917978197181215847625161308108582020906233140359252934273325720125826559579704666679839958881974958270918190054129936163694794025249432830993925353967443938094177099886537512446432963000451251438075053502408856439531549426902103345546557982538519675316796844413263250609054002653055660206058485340435710206997657212606731624268098429259229566765436178142666071828793330523483960284189608510497381950653749537493787063931956795064459259996446304580682689593454784875468848402223639462486987789050394988996908952733424150929293007372672057218610232976922617040008884050699045580027374134786049961761078345780853329173628478660597050883596941432168723096377012984189128036038374856267606508758877707959308931130020002848921663247896628217032224982810376741594526427749345528367603207615240924080426100626405377255249408982669346981103320727000010476724273995261745808652950188049327521579695438685571820568790885110028384797623080263814440662116693214211154645015346534446075888051194488353132287626358270365008231760205580895423274342443321741759167324889109090372804684747527980073446903408349752953790404278798163036997029163325582987634726057479004324632614470603411767143715446771762067539666261103888800070552170927200144663146893850056697739412998193497049159938723934282049518549103219512980077146606386729960375507294277589985784832331661609951369128689969760271069629121949781453976474184971743012072651100553071147135672813053297946572311190447960025572128587545213771859783595500891140381739795304694045274222042401525365236775292015902306245468768334420917472197877553869892575269065039276462469920134590934183064772551795298868199752537338765445106181546833086626764963557247947187391163518806832849853572816836426908588703988577956959878009011037811793100037059247168779312516798256781541450417402953539864574820662642538848415902731513684491261267898147096675749633010831421684399298428174841433756178713744582766643061747757857418606087791420338891272363485159811688074890609641315413978328084824150241473615454669695372496384103091287550300989256413841077194343302819757721232269578180149316004979884909428825355723637448993047126637086943863066217197887197586952464562326198716759624880519879879769868140911804311741942837955095666985098990975858696398651762017312989973658327083963371505421124963079413922874577421453296400207785920547206377019464483215991463613471581671260729948263824397106688788021344197496794363621189673175390696588522868521214047588794590700362969674004713929121308664779426334470462891860689580398716191021069772604962071275364837160458008229771669874317169829154246759124960264686245992067507056331207539414023095676716141971117480571843648413786070792418572662570453137284076310761902374252201078972323338648501295156874352708344700870274220704864167168544671978043697067857274357473916076046860145362627719438523349073877838891769501571591464785855780063740406873888380598988999526562635016673743767077251929058211608533492950479675454062838899906315913520618360401093005734942761061347282645744808865629074687771898981468190466719559982052388230741266134448693271964166323677746219355592083888909907982540936844906724836657632204780696120513372008267227536425865276084438692465862024041384754703559027348978634821836563443443279215736281322339619017275879507242583384342305815463349385737933898940069984430706001554873046256925277787538389558839459874478471971686294452506900173352463553118664817625599710216168763016092986390652669479707287302893858375851157099900970627183918486558206640488677200888393541429235414247535164919504520888960924791147366624380399409505425441083264503347260471890226916880821233152493026189142296947682604776975517937691947385822128303222462242533662573889312972444607782510771397776182183956801225714901446691238828639384142811743422552909463222141635785513946582887419510191289258278334457646105330776238238315714859098243775264199058488605564768752683627701809939240955607423326787933505016222958317043834022384674627164085270656435991900434442614702786066419391835060160333345233746451062034886318702338255958962871951191208762616243299271261909545427078720224588942691360513934282786081431257466848976753937704758505633824247050919852826773018008766322938730410222965827782177362249186619022262184189258011865863830824766965730983091176017232027135622699119430159132882532918126211634702994904784770402566496255315566615065037521107577720635902246191698251441621309355257199170504004695842200976382389605265905829720184921112350766390013306824670606424726207444390921436831323665581532288120511977630929574463306897579514152662365298188003256095771803068592490132057380462281332075181838684848647110477378599109577295633136316902933842147560628192712961899357676641439370586701149533597547403740744939842092599883074327067629150727359421438347063720074186714090036863196645266007146102374328820911787199087773738026810433456948545573793492684169106653295981512576552715380813178218720613678110263527687158764397336942549478487170539725402230695060304796764967841688949535033322294489292006952971021888674342101204866786731446701180513661124299391346806103137475870584181415504014013581616129642469858608521866612283115344283498960460522862300243081891463363817108803073936499915248177784105370946228052742634920472180919701289905276997315194843460903185164938118695405107891931272954951460145846930004588167329497114446073975353863710605859493142793852299202311427289309152431876232656991697978863445120280276661011112904028690941483646480040074728955049735339118808822758477703161833643348703053878408326779697615317548173584650557926031593968324205142906479872523676469488122940714142035698376167464995125497470996867295230680468938079019015204704133799581375446367785401285329662559547610683005316513121372152719488943902647571882818112845208140755219198185418114176397772065934961880020802766885526222456317847698663853563665355803452654384353265758061190332674105409833158023194850986611959172058284914080347144934896226800371252657975864952223652804757150103585095481313003296530014558892831462250157145252163226806972998177754451551427121888014907085094288229372642369392403417020772467732586916869729001733252182232040165273429661836400480615818364062511232085050955921190544082043093769698910721082081066396869697723644127629331095624232914262247443655256018973730359101056813669357215759732985135393054287479278481030876508601979236358094392157697770032463861102746968452692857910778456102054658016742025403353909196066104304289278146844370306419953664642412533332197660219368437731508673691218689960634338511494721203095533262599807681090653536508794321378393699337913661956395298046795743129765524356223479543996338016203578276456076286349096956677211249376101513490024583416268390818583559149310606668549963616079402563665209843956838660142413937234063369238343400677947781602019228875527134494039824182261329129098822316900505591115560830186895814116594455319122863352399451720534086351392484402870760572670091021891707662371699917812992556273097675100906278144849517433279688911354523796688623228003310323178683987459467277948287525954960611474848287628507630662478367596734544690821783476539264432542622684795816685517776424759461337392856315110899681761978296532420231644362905376923197828912961168152186783730415430036342324841184019226945967687078413909093677013906952600495508152447451597101285864030874915851084333729380711045376325667329139867220465067971275752466051285649086508652375795168197413456265970059221023492894080279521968327395133877610535554451515627087833898624781544486678202864871195456737723055277971648228793752674126633808758100346004920724278421808763829843561928680213701447349264632894923642738868406815878922452078054101180574110273148220284354689496749595786395738017434641497735362573631659755440068839658077014329316998402255443350312629952795229902973482492804191747362571825604708553414324990089291820431049815753069808727384698266493454041346952164417493075799918605504956350447562361408638924407735369405817404461586775234686558412717987492528732180730979398790794341376936937916108605562131192960339500084091691502683643289345208937982243379303487209548921977762590395448475772480641541230308097776615615288478707159787875555416618822685070244806916073849405274488589539004137605472864104734744962458815202855808514678478030557545477980618278041121085110298027027230197406760858046864924344191809206009804192687820032827762671741189532722945493828929597683279031481058113118051632545230298007925479735472286514092028434094404565832449492730699183474690383758760867657009484037125367339688508867769295233443517306438889149543667812409242210122560848094455888232676472260453563145710565651755332705858036265008786293900806972449856303718436446386508091172352226461877251079498078225581227883162527120130165950615454463282200077823423617857069042567083437071097211965443902502196637069969486443270697800012899112639290793846038587788687768262444072742586841504808677684785263174302002761116416478546326002855461111231922556594299562916810395945586829590095435249178321072159829903709547982519444399090647946535953248795368838617665690293557255711512082020393547831981358050000794080306482997098309498334828650176359180503292435089673115199036064398194832446088173159718210502242004194183696649402837816018367995439428390341289549950860157281319487351735109918897338220257369434769688630286947316509240880272277762150918365290202990854805952427638564543611976594642821907802727385300060188564705904463426286437377121399411428940307575224381573759749110564717235217394863701204177859828966112606658039760405702408372092960081710042571141617550694519375906504198420673965550119285936220135548855440780386513697969618113835306112474676123674707136963948103297615990028543173420358613645457398056597307192642554192570391959890408778600543848132817108828082097079761105224080158758477695797713138795925386194424500159953389213379456544071636906421816310911892091163032510549691844735340013954399260008281206475587894679625336588770662281040383718817487302641672708424521513946448320695037119660650175602905617424681752383571648470688286563464066276182194085346846968983826252013359844886467713477579548825837437077658767170698484514613310395151719849839357051062007570550618628956097901350028688969546644128800255278937088931320261163403521954956650134621119356824609876260846894358567309381574407667421423542314801325319325688922005371130348343414284763768194187003150513937057462884855792997136807360557308128338977355637499293809983013803092585332351252258493731721622797749028462558214222440471307849785368912519474164873058869537590046133416517815051301806310362066860035833226909910573707521612154923804881419497835500762452190452829912518116348611376884972087616937292449488610843894830132284042797662140083601125771348963505748308293845359247143738502564448384523653816106666405598468100624051225503729020876956724887847033179796237645346987985639879020525553017795419188513894487435323887676717625992694734848974006181150511699824101535602090969156382000648372984142859881083427257272180794342766060819839727447025787084816414163805887512019264750576669631077368447279107801195529229941871613871745799725517026630468724783827350317882873836540464272966349051641737869692434400962588073976186996114814886476641802392555863201078141491961048345378807747395146648355204072062142316088634398202648850730207434756166971618354354842535608654799954134327783861714041210559525923510858198182367711235697453043256811796810421887912350262380168553801657396802642908651882969840404575075771731059156542697604750447269607687421071193523226978997212778541121904112787596665659955181634786339397328574204063038881594723943614584996168887024107953002717242234525641854149753572951718753889365949097595687208589710434624081820624846273608263942075944401537736668446152154548994263221869608126861298499997080715117499422671735473596726298233784237906968176929470732671463609363728314019325107494164092034990543731481525172260948447683634322158979408685294832658744155667951549999479840221305453494420658360992296552391519216041723614146612075322692281042183955363012247769925570712484063780946328219494572609831287919554321147906561639145835770537507192449540127704516506157141934984703044183240864801234251673839563845268226054630292741588465347970078467538748121045993006413936845116715601857709616462643980251330806493319671989318090369286094532412252695651600287745608191206779593552822302358339921596111994679527080487337719327774468193455751464415112534921225767431168347454134534555808576315175256292948669665254824940520067273458743909383092792425046545229596513533774793517453015851160633199541014106114359891524463911607386018062957613711646163703333601717897894106426362069103007829277915051952385518549004365642973855822930085309972515360215113331879943971601359649061267051194984326160005833556798640449467075045239626085972218321522235118704307197690499607552032473551829829854092771341980924695322344930242561371145897072325081319452475873956801383599310406987626311914478770387319179779619418031543836331048522770817627186026033291555244959247567449104093399486841694916392535985735634693630669572346493885057585801144524435866797006312376052960007028869774478793088080391687196222421525916184072284270040864406699008796016854359076802783987602016980692159453569652064658698820032336771705751570266971349996188976956949132922137992829918708184282968819551424935648167738615775582984470959658165199174254145093768063323669275323052037683623780965113759971916578462105833490293769249536155406016020611631103983440021160002813380700813187821974244972860065509225935386828526632138905277219390913888067952562354854511802808850077778698558221631155082331911883335441478179903714983516760733545190489936583144501988089783325149506213300945841885787013553906431102518634603634898569841309131544510904848189044670409323863198554735879731949381735659427889877237620729920917008573709002102214780606717881603831313559510892899807804485599089854324631771885851093192715065289313765603137386668843198643307050294598996072226018091735864193134052779251170772462447373940520484336126364171936540136378591382395442588434184874301134406934545018487363935453601306827742653267070837308353428604486605504208064942586758949991808321604949037971646762550696865705103602735078851288392384047523070898567337672272106216164918321669875071376300061112145890559911367823203678682761442800299641902463574432746530945118457090097784530344024601070346367719587425641867284824787119223277492903193190773521030533017327787646448936101562406725921231823675633822646550248197092552425338782120404490989748526933761658829824087764907064166781149591358756004455261107786519948127692478496832327134966669046569166061133913600369891181994505920112506178330200590531064108190870278000824072553313837054765927744059007004099170187720738328620887625605663694744383970394300998076223296278081991751534024556912991173022400608620969582996398890109680309327735523310039044454144980524022952442176033485834459301663185921126063131616789605419594698886185810215377582732076031333892653865511698165865992109037764366567152745342725514688379961123679849113233465302866437626379320644914023494148595807767976243500731664041252714174490518871559938769658918754320013145707312953526609141983669363891783028916799424112513091216249805724050559051510450707731004806177502952674558265659566762011207816444674650483617639209269530873638137967090838763570988443106074855422495001209633864014401430837020394247123195736770756065218868922261660787827813345201566807392572293981621274044325287897079289992016203301025129663749416711265541858499911979251585145307451779986504043742745593478122456522778245209884979110156466333934548636410201460189819735121499723498532757666981525199860042611456950526860582446810628271339420734820256530272726431291294432613497233088742962949362066212931488075209568476502293321996476137841446134628213874543628771845599679346493023367774357098900591926578183251506444708116395688675014722872731718471658566163495463890947992584334769012238468874642444135707221152439009119479384125448741263125691931292354755538350763160362446852277297336860669368123538950421264553884909986465011124246498614192651514537800461294326003597831612804976406678147623172574672525265334573915693616246065221943081248504658240980345082391382435504304540645865278629701877593165023070110765159361221949050582351642592767509457189482398332656612654142025599076685345086664871793221098933077255172572666109712973087104154202287157263357394512639807917605307645015696705846930007751606547687837575876121061102819829248555270650500857571895042533757066880531518528228915275666586104814408036427235697374466194397524049021488543077766548863430401626462205937639887451178121265126782228472317142090943786729391066875995088128321156342205732748286875358182631506797855429618561376103696585213647550922074339353474628189480473382904430857062375511513388738647321481023236584402523559194948932015837894356777848746747178698399793380798563338955223504906458059746704679282030179872739779046028705410922255297161799600322201874729925465409982321870591531125795297280154409033011884385713128020920066239681655061545171788002282504280452296556586543416320536852532662748986478790655549354359582147270910487760599704463155760815896005331724997687776540195507688083470137751232889973803784597063697378005224049234440537504456477744463277979208365377485196203743464386704568644769701775599304007569462132369684440571147824469650053087475792382067132031307220129492491778698192830049511234476186541576858260990445722515250807951920662066187437200153561903196904947445414948829021577607527696973255967374297390985452497599315196493162426581998618146819667041216184333532283559356445323698135703221406343983279856135984416090120008412158851706041243965039638335539753113543916384070393802214106576143058910196298864061556579993336765298813162830547467759783220498748331357899878380189501786406661920196358564656226633455476724536485791824883730622492188305269819368357476055863402166413581759591662189973917534195454741584173774937211901274625944437568384545611184162727515065897401515772875349541099036155600217691066628337851433014381819004580531794262999112447665295194068756680094638780301632495177401306474686399295325954048801665160719940385084773117282368516854989078802821635099265239954271747022494819520559882703252885759795650465276146978551602974740219107996444547815599042454531404603981864782690480244703317893195137617497651583609201029319557394392889246291505526555717447108551813402044005478664793369866441906685614283642460434770373537744290262820604057369234759050911843269995962601021520279354402782617520134762198471228032110942309445165293639799596744553290143401783729379498776273822285862727438238888347355450747314464348851105960098806153296108610058662671525712783509677356231899720148041155641531862260835798281356328936338668544240439283563836305356408121305285306909119918933004127565197087391464025065187633499300563854975213202296237163422433610847508657296958105424443507255898926246072399779997537049643941577176029930611330148993994489631019157601393132365471498626266073781304003646523921007428790969741098598651743436166645620927834265556699402990418446570650123871043471548645619762052375902344983302047947434316664879621453106780584852829705104793479065319297249240104277936340356681722680309723429755624742057498651798396705760267640802528207772666634279219118360754838947259063712786021329665405522917464366490940117153258325291927042905638622735285453878915095085948454792302827710937294845403073613800125873158552094732136741198911251265107911007002022687728408636665238133880180043782611889342260526686042207663877983958883756204686704840979862469912223309247600116634222108738738229002276097718465544236644413518982258810688073148215777117019671168701215021757688313166033711938474155464065474491923473630775858002971782610286128090049650324371527442887398168418624234880983313254932877082216952619026953494511251767976893704937107379683696244760937066645573084330397988298513620460191231564947708307937514962255786875027673580106713866997454635081480985696963790913367859922115682274482525153483689599374637966199736491623448764175520597083833766779543701926800625815934418615838967316668848933921005528486019653333710983332835791821414833415506492612948130608984681950320796130150485149049291493379381519045420412138058639527890135214111345969228755262162563859361385726544248606121535588567160695435124802376429729498289025532430129921394748906761685900991486785529147712829922576164919989002045576678710413897268595774047621053993155829984779266829091640452590764180900894545010577870316991153779124365363018674188877471385742806042214694752587507223135739864269279183694960199318207440788837876664830261893053059667817348345811834729876890007269442546193415802946450366630995913015058225503501664667528970107856729198793448268503939587629940434501422554656366658009525344718343001425832472745817650387544678373118294875656105759405344445965504164676582868205784590941922211409398922188782031203642359478926614790243480692485878453109586187206135929162083816376208473184271006319294224257122841062042699460645626770035996903769365195307149461971443201576498012010931805943918289738775808373132185579266894208981679084935587150649141472415033710205724511526648034496164668431100654987578624593311892173355912313184451416878471668952197692613082545590130479349187257977638968826812587858170878584409287630046336858208262552602359299872675682048574221368201760379191074550717107426357767933686766843489687777213467947453348270193092777688367272534373299402718568211273469551599490389841598398720848923611019863419030554789114521860524356225704542368100393937828112251994230564699919461486594032985675936216996997281749649793364950972463765971987041357583367644176747827621406588888339777322989208673304112437045459824855429790377132137472368957707124102407064820470291237695089728727828019054719702059603682256225954081164409802468888879459487636306247522894333361094711006546079994987447627796604454587630700486159396327609945085171418765316415624620968525519953532205090643500215566784354826184036138089592637684468012546325513487131453438351612974004629342698415184400184223240873156197986556329397336548453271181276458215016252113440280281252059879928463415396087065833064660650053021719856116248160672811803383937059466991540165442095008867711679010111560710404659657345467475113671185184143867763196529786352907472771665699301759568030256133699133429468840907218012639955787253339782030496367562065576779508284490929352062864813803900547236743170842944979819865965864682008060350458541971189422611421004377733602828905314234394465701765063594444715856020173513015214522665533161527528575335939462688581744052500874077104300266023980192173703914037346467266903096850556646182366052889229260093998312115368813303859640370394297027802829027011651150677014352995646667404428603826702006395604797374364625017508423426694561302084765805636988857357350610398326065041212206973812506773994913079272191090041661081194349602842712870060504128817388511755853472336434255847435279502471064227528765532935203168160226581921313250383964747768989532260556301766992126031564392466541402837053263727863723447570089237323762117664021270089556206273915140060923364197808698083683036845094588570850104253974261809142296878641448781073744048619700077818729231966522826710830710367295543688242326712133528252537433365378872883791931117202271784281064139688422856386841815696385420219963680374308719215685170805785780222279078444867057602331121546475369774282755708387631429488327690170072279646934788961081591505060650941398879116490524028105497063250043536370922981657320601484470402628542505111714232434101308944707276267051186866297755645960761603121594181325996014621113410133931215644488933541575725087274340314109442264412113929763672642356313617765465061172999839708220406438405852603560706137171263898863308509194384992661173943332127598940104595891411583367818147187175705329949263390311487567365491901996176276794440141890260269923612403133879859276620217531734370698733611070286032425861820761407438988400208426373817020854874614704541135803451598212701288117218020435672774429796322924810995803672585767799903371896719402337950627510541934506444795736131762913128203392923847557057074304758836840842177203462147270502557459371011510706514971219673058971677670343774997920232863168740498900169569378818432387866835050120626219936321398341108196556464754617664174106387602268476347456060805277551101916545143707911762240849380418823539312076533644466362949195699002421947897918116386051394747809890737471020685608803619136597126978000396468241787384914397640831482486241977385903888424294476157375221010642741126598310337890877778358890935825162057055340382302473912349093230798097632676070785336912769493020797604900635991347853756981602098611880749904968219901318830189919216938043146104468968885929295032530441281623452553385599751051373299242492346192062939089825634862593455357504387539536050964449688586705292951577207094199887230814449044776759357959616721195541786309424376742374310058115825942688948257514594947466003728323942399574293532085798488353256445635323457315453488030413926593867936310754157659778145805623952771254682749321368024297252324973145520390930191138206800824843013316624364284981045451410933607512899768296459169763119312408310769820146255869797656026193551937444196422968137827306939715858896390385363801826396262372578783737055792228672135636609657630740139875346528529043257375872292669742888168801053397465065953595596080457192337145225077988553873230172860938912715606397842156241628971855528142878613980630703751588779957518685113694208840442647437458305635790751253226063419444921098306495418577851361326871812313853199097842653524491928383600747239264633427026087370896419440807528906739231673147550481240713974749797865939605701283253620290198945423572827195621430673467014108516127575445946392282056351516665848585544984303841632148671775024288665952263102014178386828105398470699277963022933095813271279846694951378645425944524510256815260670724150597942001543581130565559450930031373131916206872723106572608505204776811397706539034211829888822050104114229781159256459294129535756657292789876016984160087603426994178402356796973502183165316514104362587462782023015228865864764425439119123297242748184163839161474356595474092555506418301075492269176917343702072633762405506367008047167884302271231525061810659928583150799711651568560963080332812536148027634042664984784889635659824222309364080616111909669670634799382305407677515083655541466970506599382519456546113623145483655054082977976732324129186552093944651245502926206019096417888367764434635982481237036975642192610969651537200278445482075873746153944708199397591905117580180989805548164054978695534080399207349756262842138056767146812025493364348517186932288521335998210426418974318001484815660541494945327657094005944200139990801196544718931838399136659344898081465032190965749862793462920988470756212412854613034440622558773790371032803517763678325629004858041183942483512317664398154449653717595461266608718274796939915859019687600441943613536959113073908574331797011424006650013720391667989877370637350841463304247703678282065794793523763420428829488795489446620798508105712738035708040745941277827611691821098205041804024177918186857648598112691530328897549174096764475618075185258755550687495577785051740168829350574699570613308257409837784916754017643009789516423820597256613022259711146522018064125325601593243215403973548979463984774376797068286913937701782708195205028812629568255560142716795100872580383449773351984415801741394888636048266740869123155675865297512505040383114686978352899253690404765344388539983124707108985198234698411524465184040032375049588303689262585671548928921475659726642987897923158200941245690191477379306008995042029172612353787794202351147032234328377818691665734633072910781856495411185683440872751136830276392503741729381559305980328005355127831994342768759273165761968049705829929507027137079259745108799296730387586687942998343795356809987863599113925478292812485951941498362025302830005951985225098622306441429047926747617092194652862372288086088193519040746540406190267060292836412524605418197760998751689951574895515698233107333544512937702922200971896045914791226800073302948930698196948339091858981231880084096524897077274443367388287711926848374194732373759521389543297775093023129982266759393757851408762868240194047177720731825202750968499299925991803080843331472964526154233265638151433762806445588586312227649607124005295253468096335208828708151986308585517487091192198515478521832030600244606207440136821173364830081069000081234557874184665479409312051027565559957617128795290398286642921889415867312196689926043590852055051272874330320957037599712081214623209941570464744649829009273851247116133140700998202029823916005085501648685403286855391838791511513471178102433491554176351034794625007589162413991389685794244071388337527967493823031881590301868125913097740009602394492868255216902493971464037211180357632624206390538324369054470542556719849287886522239037539775783553684303463650971523096379278021500856720813114972125837891495232514529612001170424240099272601711093024560188821457781733812204959065988324195246486107403595868360755925826479229286659074319014260945721208913258907717887668083541666408650554196286911351189419407195199306977975166935865963879162428862661726060648325409525331625665200655772799063118941401609387946290459491500661020659639827317630589872597520114479502236373188533506804217789441883109932625125781971479616241633853205757596940994368309255812027807940386366303105122351538948517203760494056124822656594350239704737573268996487564644544341374628754797414901565590544211993129505527389331150445874377553768768822158753743140014834180057059277868583462927417712131898257864112265185044221775107424137569477253512060549446617325962988719289541429996833913436745976131242589055790421087440604748840410707347315583486341392254567039171456425953852665491263728965403345151789255574666338840594910074677082949258348433139567371226299990231419649663489192882712405446360957870780064920483603070227370900691696366938662482285504734170489282104150822619739998780325754920953227907597520049816871979134186800251673855189728989942504132044535280979025482742933188962583396345063502496600411361596956547175896845455545625293423460131923102196246198915238284024832742991547953044054655651311737738181822827322551886105011717892433283194109051909298828402518275238989003007139792921509686184317847207410071102058565205266381391851323291783204344888674091719365525238934631961206748876678166888601914970781745545547781694634919631297215524669819297804353625429692651030550956884325243033362887507442866504678612390900208009418313703930475682484345950484498558937372680367686451037072391547515027305782431782161582513179269974096091513090349154659076005986274238294819223697909788138937265914805489469000433554946625291086725086392011310544777105958865352912950127104327387132515141583008237573391355446407877597830492311387338582658645741622600758112049146608872647507046647174303912498110093610650765462422861875911128404530351052338990011166489695745108659403561467821200221985942125648058033947462314969948515774169020743001474848351262370780252882769255234683536038698525465137321123924727399016955362422817296420683521805570358346852634367782029370837409198771921135716518601143720538546752610919204414529353693997945200493350388851724129627149163712486096349977796270906767035432978053241327165711192704948061140005273926501693071480102806784678969903251296082725616112064159709282669919227408049282233905632220660859746350900702763444375463139636681503463675456229881754908696998064429535676697879771159733968843144199121883983267027235818846208918224615866628202479066487939408327155249135218572902837974110747607030536588886696319350333089475483158684775628448341619397338218876938028505505283028759594316529515690044916215715549521288773479507067008175314833284768537540712413259677808421299113833233611151329719363301369317770860340000292576981438000616705984681775717434722332874758994753704543303980405317614665696854901624194420488198200710795555566613307898412918135631338731161039656005490693453426938655386699041564403825598491865678475867702578619639268894293819355874668173092357638759835124907571535439635191028078804674960922623538151954387272243098904523015310233232722627331023097182896158299272454355743173069905166014440936030664857516680832791910746303206594073470051786042713030462523980645731497282169472457566670753382993998928421987228605684553691181211333370422078262349995783206749048218465520140020566276628608972843237130013397890670817621401856230947350645931555752334282934813818062769259473609802496281901744854888440252850867222451044984189334841860216721956545566146098941057561755789575833170667839685301390707563430368342942996216964854599391754680980386390826187463684726378029772386606242186658237118768009525757567282464086870078895951064032957874049624911830585299859943168180299897120269044915700454020665253713026890385210094735418582901338790813310741810222705363060231295871901487417825967563215624243003145824890084520552885608394504158601032779850247969939514521305704719825284590393012852739548588465362625280796233586640426820123964715278956694702844672022596647319603428506735881717418449743076985255250117062185633210778264033145555983150201382530809171041979052183560637164762715204368486103404545589019012027323904164203249440337626760018725586038306123698949446208085739631444917714336894707668819615384878688662786624182210910246844601754397330770713455524181701445747999185087549518079636998528136466838706525651415450893830025619035885926290466908679917570016415504998672663261325201608289257363748263290129281057864688660999408116243396855283364897810904696936830991169685091699566831350287215958178969576793563290430599168622551397644621266120144209071176100225418271286019728718776250117514126970648478997361775601262572729228423728912027291243538516494444378447785193625708522450440623936788362332728754761604974540894309834556651813738945842317861545391355728543788787643762784279694024075626800661879607379680442471355442845464150613683391053353518161915412788099215282942048133549995995997518816508587213166467946765339200643125527093908719502938796605434447148232538349284177262371618872664813057855173499766807555503013827705422683882828900471039532067903825668029195426489670301721664487339618335616140474631815272785184343761949474869269555450179037384926652208820923177874031490497227258125425681627428998826765106364190504488426537115472531081980724646944903877349997978681535375159950839880204036463560831439867836341594732730733561296371175100208070020512083413677434110916703375128408362755900834097503277307536290900378252176432072241004395852585126345065983818024400059806070747454385933410606999108261615038026850874714810020036844490166868583089384672177276255294532438892218153125837112194604982457137918487219646999522039159197119107464693419711411930536557077608049938676465346714448333909610093697912510128485102982038544432570235171879448080244711116307087151509823402443272703511726209890962170877580245037802002745754712073338908446230396799181204085283612840061144619288786596116357982305289511319263940475848724113107174939920388025385758836902281351809641186943655012262109954060573340742763956577868755778800710208501408464102050128782387766164755938873309333599213136973221003794284508607263724793749075579658427352860691528333837191455241243416505604081944195500781151359896166577694042760891721668508565465068119624177933374362057241220873528403118726432214774876001225367781977042857003340318935715484973769811994871092979868533911771720852521987351092119193977409637897277062179713863673597903208167828277566530557272767658488576100640539479090818799152468929811693419873152648643104981402023150275104482457134410778946379264533000186466321922250166201244963805881454018225904311507810670879180919722871889182242440365699516203385241376590219286450403288556720095465893680179196310169030002796269650474906463546055049269103493465560826970447133806221449442715385065523363078273978771906468615448625425762756974541799723052559691894894445448873865053998781500703878035717928730277096738430909248193843023492276330319551740374748938507684766411019363663959213600921730185684720302927428674479145472948573585072089598766613140384019587867583612603328776054164315650886965337365296093437705932083201796386071244823535747898142390681437604441891531731162132871231593063817027483262317842014023765239310402220251956152884901036580629840054457153723653559397128194954225206215880850093532101323130513417985984462183332085642852595938904590308036146947504971672950052737172649528816108826376676353198339917090289695518824440234800740360202929599411201962500322014551715742108520714326069721675068305471290746922435763973658649830682258984456488590595252930979829210714020394526600401094312750441600589887821566677801638998824510848897464071293917881431740799595811913154608038311492295362113140152422535879010278323108320830553178844295573141917361909336363719900486061831251135432378589165457560614647811494908178391260743663743547111917016815505577916899116992455621862439404298856260198195552315260232648566323024064562993417431218146771468478357045074800686013376235176554041191052831047719260608969229363123681023837740438583390745012219271820665860494075174992269054846538261137577211026993156497441544741978736103143180980110617368559435817074995553822532172891312376712203458430190946931394328036797976182732030761536655986747400453335781647167726138567313826650793615645557857209762988510608918525642166423142768631541354217403286876445525227674245105675381970566134546456519808327449094598102299476199069168239105418660076364513095740131504214330154396611830720297103836912597121961874910844505964969176693983097158047015085600372785870453725064458419691503386284077395470147739536805177117055373535385947418397026925451025619899308854813471480121516978451792876245398056299244886153436699567435723846608426402555029486582485987809329900927422566809327256981411469570538972881373209672228356145146486361571006619527823772787705668720935491749920190772818101218054971264111681477985377458408727882458425205381048370834964400278318072831913639376800723678253805484121646514463355226364930570412453570885429577525353508624017784561018628321758851748729909203217870873275057378389039782044742330895921112666368259252909334425344660782312544160638764497656063616430902258762850547699530343062988206903413527419165677433789384706235770049718255504505176481631012204758364958766372964401738390866894949923709260636996704392238779601520744907553286145104254894010385732322970884814564738971706965201339774013778989573797344166579268060643689620682764040538009937020324327806544917863752273865839303748729974649668215073455241699635432218524936759134835313020426238780580374316006051502339309793585468292970726232814462152158748745663845900468054344148301855545330368663897853343705042272951442645073006245805503316053165344872035332421874869470240365276602422287185703023897633342946668228923383676577590913605052759848778707589803959489164361975557887581528003706349230927826925445433080882933105520610597837824374196466539987814204208834115805898717044186896254231322413295114667052979145933322522890954822939580913261399703090774263240105392450695061293230753827772695195667937423247526482097981049997192744169467421079118279927665735310681629548148179784218053625000296274150916697924178740873326151973327409426515958069568992455299744010491429029169130036586777844041994102082168191572263484933269150431558892926893277133914133238048234364270312959568170481724685975081369579297976462282347624436448643988627792765495338281838292379024492914355890208788799114127307022642622863603243356711724536075010686936302337781548196181138917444210469389315780122944342300446092784398189995996996715837052641228348831089208017336783770317967250748259723120064922532433181134267549246756124046880825141590956804528035411158562035251879443791365988421632944938188717723400777521070102259119211326820558198899836514574198523942896841091693553042755225202311838957253255246663056815117344811079371295679252372775244208861273574989765455400112459241820677761136542862704322247476724017746812308402069130819585735644226168464342236774612449450010728158344428542139698619371614951133192445620561514604544172554493997947303667514570114182852290165670292395185230479378770099641821625067086335815411523207371256634756521418724064290304082617738017373082745909554316166662978531993917489609183586892494716061778036508621326993260554799103558581749385820402466582806980609086512198395450183541398017909363210035046280307296470076109604356336450617168540726298738859636778752778026736854856078028708702648831865680024008457478088322628120312341906876885315348378561745736753518711543335790237077104051823263568934579902559804726498243443765503415302164812249199880855365773126066161313077239479255293149960693287204480779073291297327137978596062504256182557753278084032716340908735354351885835418951780030064910907307962476677253640997914163866374672181711016297567628724298982249374055682919701315871272347549605141310686319098581863994607684747805167960628684971676808801540921381210244980757578931194003368232614152091073656258984553467528232490520638121863597785550178226941151238205613753416750132806463986609413413790871130909474368747673227595309241482629505523315601623854023476679638575357537752322783310959146365642336096569408538646411813420912475939970883658312173060491084170303400459127087116576488736828102192801094156292446824232651998631115342180993974778417984929721097093130426629107673327715513121042744146513930958910392550141247597956899037261784331925084669854546155685099096818214819635706279397124100719649329891092442376649157797196454574694174549640424825839589622089996001291535931630855251099896744769370334046113469067852549815775316688467684840738908037177992016332631798900419182315200258347319230235515438878463358015137553839139757987024450649247928650348839751350375487704752907778274941851485443341286342679487323750409940020375176022947155350784493645781545790374868049029931563418400219265443729050837079337196427655543148194147800546792391275196516220978276534970088889975751098767377514968837922853266308513120394464941284807276124267392290150704245426787404027334861277831237906031550067912999971525211522206071922462625395733916951993724482793629583793341840915671183334910005453117402798689687225161093676064204805310522743193513062208447099954697098068186473550995460536622382393230059677281874101430088309493359134352518442241663308666732371607783054584023947476975697392677614899102643135917920468426192737709463448532173423952258761691405255745582299469479338726443811645158533571093808657233672910389405114799286194592326417471723832152976023141258001099414287523490849514682472100306350063591950467289703092725913258119405097025517897800385554691424073747797120587051666981981994102033823812879976066300008392372309041569421905659623282599049793975338010448123205443288669911355869100714988843090926498133405228277681608294386581462992821181838773220341013206069676740753950657469360428132880021818503102759697032625171731406191288882024955144999772686426353156629203289218243361738962353782040360556096371659596066322007303696417550507583867295329236952921967803761740715816382496035774560112528063821753459667288796498785949055977986553160700535229138827356556128874631668063719618701184095825562568047857906758444176358320703035592915476018382079361811681643732517936327229060927797804854963457617417514076385923054184779347878094472767650968867868079577159109823153881186226983479681719333115268801049283022779260627657576706162114610165258771540861505297546091634069568443975581845018932422312038135111272064231553551666050742359454296514853570447667582877293226905576722948688650456496857751097203874743388648478330097480123723322936667031958750714010778024775088273392473309956278180165876956771636974512966412679378023056979398418065893023303441009108021236518512891678224702710589354488913355787328021660846153943729984081292664051818593887848045326593823645013114472594203042765184818325795387735015804088877380705778855840180048195296716734995435028019007644948979128574656300689426720447466104096135736017243510434322854130050320662328133406405058957929959795891796255401512600041700235864694100785982705556119750658425071732142882015709236451452983834151679628219573241091767945613841772285511682757247008916189442143519775814192538238489013672554244632908911365376432728453148293951692186630191954328189470001565290528059915809397801400425452332634482868396523283495629845442504506282438245027102517087781727573425886436230516014467789251714412486926861121928556336646517595275182625124930389956770042794028682925097321675060108713613584459054759601073242155306486873215526192909741283252867582373907030568807283127832251659322219760482800767797440572196845664693238286139337138953378156435813342119204432668985552580855667023276901600762431080412791929273310426669354227407316845604588732721895688375694083686177807314211754848644370756272512106013242449623533588918785447862934638507838696913248598381420039029585043634334559589587100729769735830046546397750428402056459958955434265438229818203779584021765638392220065716195045207442113727495778440009839365638462300097014831476119751160961525009966304895515931001994504389113317805011160003615832409958709870565137261244064670220799580133364602221349953914842125400853476355757562373121850022386866729773902848250432955839821220543361309419041959217763950168978716708291521215154699600729129667308168062305290322512150037531527839119352073979591441892490360066314563199130479255876130542329218267933247168941279991272738877391789469709350321274625851920797942444277305207849926880199698177275462862781776557815843911620053104214215539957811098771356964358149453762658195750612014468912665945479051642877729732004239865095820272846194067657414739894647454107312257291472655982658471606286979590297032058789895977206478943871405762412299879593306178262986890531656948678034789315041605582686480519045006730024590336919857435964395589761834449770208596596235052004793488835960811199281203035147060160899646302886803966795538899390222523649947033892084503945600649401803539945434974299051394984476901759960931353915973293374310567511081340052365038640711114690060224861004688501908968246459853811047784787393579408091592735817290997476246413329658231461217950645470783254478141462058285228341394991191706161732045761629260456328662781597796129445926419428321166495581838993573456450293001437359724722598761185884587353191339969545303476159231726471206318789252572345644865801376075574534387166674376553615914448127752997819660405058463585222574686731022294280020333083489296164882544247801554650464061197087932248316948272550608704746532960216508844282399255316330617002949430098111195071728405201682006155203070203307011767682860728703418013915294716333097436633684453970549693738381657007469225264533577192661063096016748757730834648090259305552738241296076856588453788272367289671294557014081308987922289901585246034218467131724016205365261147268240701800633350606305427061461207379865665183645852677895234611836096831174719834957890782385546331355105246982858512041676583713784164041725151843896311745796327287414203514154888251639378606335224047877938596611791684379327805396444184866512674668613501540951888402304026722433642912182906885066958354207487557288384937242247973403480243715840781586743792096891093300077441783279729027551505067390216660715786013267752016311505130284787117788128532902646556046123246772391306076439671034859170267688059898130017030575775578216108297026799503464524819153957009722996684714195735426757141523397426389917391695681715551385709721217448369469916710991321166935890943679746534594634276300785474978426088976827793172301113101854104070996228469013019466729355297952751625190578554151803575896388503662575508037066374677859430804793206737871153496549927042716050918840172936221981407057488578325002339841118597944641414192903417776987551151977773718620963503451515010098730778977852495806891765518098040035617612835213082243374701658395926621704830125070374767712740898308739032255718754100573213814462613234772595084121941829476579325964957704031211161118185406162810616460599246599150504978320044149583635067183285312148242631613907990612776417807301679432613845185900882063015008183381132367596341949045189247778013378078460846989666011851058660317787747718073578592517948177907065118798759399060128583539790080281237435977892535770429566398462495312519125292070435838775820009677406951802111886354685591976113631114376816943171814188745174665670345954658518655111795968701325272313424145138705766255520334414623547986702903231989347628866659941531331337236623787821172030471368002242563177044387766018021834926915077072047848096870655892479866479545401925755904248956635077055870522498433634838355405434602563367273854453286179868908820641321926538244230648997909597262343918852118673123064953357846685283147431632798095606388788257401075727777068468366061488724122284856624566264796190412582169027173467687587661800811974081446660194406897175767881597566673154558662935714427265192183854870685879810886500970992687490006168869864429223654435784388944774694583731962326567761132060928827271738280493734431050288568427348097299347396096752557305802695232069367714221684742497256027082051004621870814152937767584627378750289747110828887987783340869492902258494993369830916209459120447265311367845240330567213393404849602131737300018138505304328624323772895657822139568178878674325860227192765831366883525037308033692576670441151346757139027263378395108862928192240290209176570562972579457668506150968271742567300905304852909966661826391668442586861439313233051221273890601445466980998997879447270380474328017712182491091573895033702497204109341701228068863180547368306471789411298433794212947820971809210959524541769406212986039504498249452478107538710905446576763028785989308632868866131986365718008438145059017255579976649926153732434108021268105384989935064562349721547806993908304320133982842025691628863499498020732523149428249948959177994661917533153665340799548471879507322789562706634483320899553723647594462843487782975882234184023650816092778251046320930587609195672022688201563587727530013959802511728393014780358326153282858855054689394176956621567210409989715810893298393520962045783775190978521673256228209252202618834552863520751046784314187097508552722251661503538773012858175011864394737142132551978814691776959556902986668999910978826395449293719773655852176282300361069616000661824103894514096446268141582800856306362084204530201331797008502939018931175469250947256178402740869340742549210089205497118403595807854268572242658313126189156950495595873199360049541929694390871051344291999575771772567271002339883513736003062608231118770447971008365654680712892744803398693839938964561182648505927846970277659940283370803991254690651559601719731005874454912277799870111665960144789645861029977121300705580851788708004716292160490544548434000901206097948115695530864443005705397202271648522004967022320805671833426998959891394556955408772973367177538192411200108779416810811412945427096927468486737702652874642299755614930616685883755984225751447909042577687525469221559708749430031251975381416297294669201056847315916676489271225721819027852034348053693213260561441182155453242295337262948254829386124257910101832213840314537181347456523261272442316961127632310450643250727554290807774882497791162767532969247502461147469642257327022067610956865185175621117370688516047612458193631485935491995606515162998535423224801059294080289634730812856672249108913708277060764576226821981827016442924852793892470245598858232857601351637629821985513560278012746883344834098499679175784609606574819961413619508455516922243081502327218323701528304617530549338548869050158667654338326367810945259341073772270917461649505631019052919821743576487405288801209471165747375564470764628700044352792052992060202117235619370706299068092061282587318976850495417831877075975892674192850509868548467606096490998998159373485558560002568814194097840482792748054315349801644107956808804940607687842934943033404749612823641152202108702739750304023620500333897990874355002457469836392548605046092117847503670668638426460538694830340901528599264736510390174795216758853729674155496395184543312144376262149412790686788589150259640576688927010774353254110040157337275251862667646516994320941568332262934131992947606928462098210868818399444077878994893487889916360943326439941033718361222649021170393663867385636802715810213366012251287203925431931896236703793799056718188765946015428901312370950257351048327864532313684530614215886128122560807346845538221678784631128281078930967546873163545953357454916362481430572933358941065334811327007293106846861023727213536181749683774106910558772152986135846525246367658615752479229108693290736743272237620019862897972125927638840707343333812919822984522980582442846930403898484795980376728880579843520467057966204133929057930733743134931864952635690374721428050623372887901713037103017796862538270649137211026927997898209491130579981646380330599822107603989622386060348883721933403702507972812194543685237109758375158945346376830211798295954979265843943205745750728283287736945888661220108002142699964828154234326794273936202867687572802738200039248128118262587622056613332937035529137166510683404329853651997185057114746101578346282860732227580822281531837816087836709676184899704175769155621422856019787246642379712001107420541702647589794453899810822650461811608613634859414150021141654391551029533253120699866367626390272327332325954482283310862423983266050226206126966579643461919264527932281964432929994722519217033410534732134559715377345010407052152451627791311447300018043593870224687560946132090883511360970959397688126359087112160478613086919498838600519030790717077839810504713363866297365724800814427280833168618724710637617794841499559317879607160621831942762556350955079170036100401571422796178755976887341319110786510164754122271456092920623118921673869539638997708755261902382893456031391503785242030583948728748499245013489206466079872247452115635178288333227791146056182260343047346078682665457869577319507587310007612111771793711641193673307718641366867044411069807993127144236217328542168746338972504158993848531092436090333335440882211942573678477756724319128253889208361827186711988758075133115888016297075448139607574584892749756692837221554105287828499916938952940533153950197690045994120199910276995398157236655298384539916045145758802232661967527851808143476154123740504459082932577455690910766520600975217099744756362440687390853164384564817165139871056762113279458808605866708222565556704627967770222334065526884529701995714089432411432147601555495693903543446314541925713447640437531041279841281076867557304386048493373447308674535580396339047436312149457646263676616313502338191979927776815509922376356629941971941334941882305632860155731898662312023977899522802104398525176298142760313956362933955564477068208859189318811607764850671667124122700635371047511899054424788701826044100605658259475223551843528297205234537042346006665438105800034456529048706812987831971517282190785410448872671879288377675017420393586335029699445813587930104203274041955444837786950426952432219343186434360560126480461794712904542165697929082348759925985529933980566764786455046098460400573794581692209412026444348280520814923205941446862509521140392175804946706695062939352406004686688457432046057958005564954481791231189528022528040111745675230063817319858415034978417479402084711565711177444614066485769285383837513406239412266071784524125894411029178262520813011808423809592782046007121367732057246941783182606631155505800980616401517193909144825011860079360850680100214597921358500475742850351106539981988991736523377280116279879179268127750060045465551310230970061099846020403894310447759286910928077732852201293167541206651489973152880453406951845607194069723695257657276643108646576192984639740768915322648683424275491760227524209590082420060342727538044963279590317134860745373470179443588013785234836354343538875145967345415576965593944869548529692571388862873664676429357690988306089912998537755441145796334601473914988624919905791347209072206223003194372230637768815798750474322072960303516856579906204528452856542306885607372431810595089176616938386795475268296041707693140412752320066397671282348974879506459257132366228720795356404006377293802599057217262507332950509101835377312560951937360508607407709165166015267375652475711000902667479171274274221025569940674924167321960707644192549890386075642178292345460018067884252074287490511352810732550215011468721600508439997792534450263026684656308092385641872371413883148531634550968384752836925858467570563419230075730362078982130769617153811893633964439491301777854809159623347722448321003455089734819367268146042368122404161098800022076260044828673190163878804841448440910427186011677952214863144683590603111344449268497408940522601045392904368415853798378650510792949614865553043786703838476985096387436064002331699317510984864953391131361440439008473582772708275060637701959961469869721660304091956386178109692179365765778360970025057504160067055561681571848866449280847910973330346603644133965198637526498880314998118984036360799491177187952968819683588969757390553873850973759478050776485402206214841368726896032169725250557951823859653234393871535443510483654852802215427636372904217732042417443631641311675568892811424778206419734180677396397060906234934040713004189316927020979568939956492376888936120279862778788045068403605415970288962687570191140673354679058192389040196673899020755144324877432870231388085310729337518289478170372906637958080176591439078877922862412251118528626919122923322588981959986398053169716883981687324070816783156702815329831012876838479279353714254815529258347070595565828916453657977026294286881323808060248954831427572568383245076697791220396403669722064351344229184472039900778334060176556389777906809189298419811703619114509709781603122748358879543894653976549138382904324888804617123566225220286269747007622371740067994118078961451609332375367186709566004728555346210125568488836799982489604761333102031250898975463687935571445790669810286616315678351712412111032275071984497467728177627989946253538967627236739198873937648137125689083690949790273414962970122649892304172579528874409248135249362861264113817003939549535520137919526742068259084094456094105117732674450741319760244278856985231681332894482041630051908992406870869829637771931821497769830413027820930490750573770317788692614671439020027199895456497271666958263690379294994152618190200479460890023070320231256900788347202072451607819965412805208173112790328388623397002635147532839656802738519103531051050518536102142067870617634041383157349710361718604122910903218832229557494327280256155319565055510514041105381388195482998028889514791152994566648701358742104024023893966581193152826302907535096362661554981094377328527932213417443898405512340235177302726810108800250488979150398088644947797811264913565989064898763470941686755444120968472037157360069290169188694573823016842369914254359647673900600499502111536853024014171032252505720029035984999294319259373498297561890036168866184235768282108928067589450339176426076204870905670430207516500560389768677569950726056349902387704114815361369455734128676145381152036087519726383256580174963061918079786195505400400441698299679805268561765244731324915174867831030635143105556688708575088086540967793975629878368526054694782708036599808939442141670542834311946670865068782408754024474764153999370902393712498485714264491133458265270436181146112355258586155337355256472108767287666682590412902044793290906817679957891544936016296582867168478779362557222175415824524431669709361202877171241235877187085340553911738151111060090351318605693050403188616437110673955803368954719504756423459728666184734822681448952250115071190899732361316224827834894914616624957336341020244242348911803919031776599906760084149514297644621866767232898278489553311157418516972583607029525436741772188669804564488987058335622292099827049774479267548561293095640036632575208019128815619151300749484253697755312487677200028270964951171373597192046984317437251598105320564515052864740812002844491508184368934506823386401232528724136330046799982058632314274967711183938695499272699330669015823940564097741352340696435764267120657777800564156821107393401896763728661472709141650251721597489923074596202768992341390982592254848048047812127156270929467070701851510863323583223407668777569155113823199412154502214036464393047386340215051795634147710255742271861006915773671555028394862502066489938955031095874221670973215497444952947288126259515238221425511495521781542238346359684151319773349766542658534521609312492204919212472655949677690577983319052658228620374494493637370428299560697610424387745190768109101741174485880442551164634103587434298722033818721602559866825531415116467010496944157012746298116285115280737612349286783496253837399900914533820945921787655535368893565331138941374556759589612404429574669805798234274399486967595072928828643029440422840507116692488974247019550162162568195316220108192685100582593984750771660097868851003183729383817275402647486308311373418237833271227395371726869926972182724258856874299215433384734942260306155608241064105292819587355283586193118965320956894263972152702132334711364530546505808043136325176379581644695402306408684057723227865986154117727969804341471512028653938345252527489967904734796811070091552902215127660365651024746712011135604952412570655667061354972574147223564671251053443077905164531978245470064231550729050983320292606866928326149787453637643599486745049760783359224852639385368545053927341227234200669127950368865969828031674974435931455342183627483915351700409220328435370612536929270373716653529513508952773912789892345392290489874280035010314408410648190586341431278017157638354883667511865982920701451386077784679698307486568305204097583262131481638374817252919909975948078029606762435982722039814553515134865663194768613159686812686085050520211178642624676341107322098357709533920277523641688264904412221995787676556027435560787029008682953903798354556437897150977108568125291857483112869198501086067242004107488063414547779680514340788671610386113591431795383763360270414830001364360360616577192986785835653400214238829873332672535957778251258198770991098594780955174524463503307239840323148905114607523789559664041588562944203703244887842051987761715405231334741502658202085871726105260373063891887989752800699940947303438193163755621470062009934761165646294974601590181661215594983375062143424348525018876918337966662842610571106445262558533255809063215700116145663196877953760812719690760370064847233715999358919790017969919127780830034960043351289828128638704662568397471969564182873760874882226037288153169374505797140806766925206648451309113545906163723962347913017972425316155935057537775295291947735961996128697241680856738401599117042097340337544789990077362621576782528618692532838819091667747831665359200353162872235516463447213292671647671930033979904991854661219032006051674848460245571708348646074486255556629766071643045109660141637907317235184120064287242511799618780387603613917533706772409215426677452708029057558816820401437946947322390862894232820310967833258102675824718582983780882087325608113057119923092037541882869462284727110453738707975225934026869493738115186630329973773645164803242757037995074092348828779802706047765627256643033440661541338168783446290523426346072837618997708465140388889766883130724660687684437600894243315691961657807399074123529671252386270901598428129298441426474303174613128717666154978206145743643958447521743227095669210216741425342899748961919317312047550017968642774648081735136831732369631494436910530960181751075717809621652613064682285295174372294702377196139593435139836899662537688684115477088811274050389786661524846409343456088997848622103614209220721979797788360533389543911865220096440870616762953694858659007978139553923110661840625557345205141523398007965449100107699070026378085849547314418211604068062082716662726224553532476302614976484493132360813707068344612759128519745168426863425442936828665384913052325073281213708237833012525426725937328561767531947975139319922786968422061765557987045922175464155847580239577389973658981679091643979211335930272214459214945325406369698308833721111638555592916264808476412288377008600422492532195310754693132473907476597293920898650223158609392171669842391535415317353270445343389114139117061480826047263605081245046390936456488738714618277753803392783528265802009878326213228953874541131294334648582463197735400712261877291838045959589151099981223567450024747577978871597800455269685251199020565670578697164085994602496495776567740379069226264232226186355217642052268872645776368577006591134651130196160200023541232480867502123641048619385849666349941554621913462805221083399534523480886491059572787931613116914881620462473409269799203027786655581482400580344256221639699776844092921340562923565410754290909665819815470868804373049406181287758962520210775119114739844079868048586521243869265424109988826175505774220598556079623776584841774420253639283777550818924434538479303575522806745773795592297919140842280372908566862402687260894939478483210295763280766676299237828152712486807807751635004896302209821030013806200063828730377407303184153582077928654820749886941464363744480094176778587895821803602617701754430276847889146057477328251483106450780957963129660872728942036725641248564384828709542237688914490897289215312787159629072780800626486842611889898645510960453008065873286404823000520343551374240157896044393453286004852941195784960703981330928430970811300730091267627989955841443391274371639220536643664553808426385130527140239113129739346505718738930268959002018639040263419312526621050315651757516075818688576220325230058074609448704083335496669264845750429100362789247235318771996582004312524614101058554380785044967990601514355470086606066547455298614278747271361497727420107443280338526238800565226466117122368325983168170465405895148674835582338353825373444709568129128640354684079419637354651874591190361590311449134976781369665496406182622945274801572218660577338977732652750007304082678057409105615394475608344567719562121203515869295065997461288000001476474973612170016233421465465262809634370602007087233323953579375328756687456312549177401846616536456176042355758387046217294671650679610907412044322267049301508241764649479567471471492325821748427354248052599959280477471481530839892991051926128961756672407082138258779961229216896703916844238424387803891811781067127361826156287477212750802760598816325461548450826623576090334762041063984131913016421930229167597936318572563245832801044174395165321428722312501597806338371828467686467520465555007988471929524813227905793938515004413118300464537117841695578514927836596791136505442548266311648575506886325112030964145758190326197900069723379571139221150348016519691242295000525778153424364853690286045931661177293547345807673710642090868954454860114337651256384247266688974329663795725421923347768071970633899011519661294994451288429158897482396666298768088011699384864957253631669440541598570351980995777051222536681463460598779080141654745541535781598761757123959991318796135321883250064213084067530797267094511855755297520078518079260071668916540650535038542736600892298440150112035260462348593947311030750952534916357869489642691003526866478331123926609006308520256436477848649959671028976080461042359731639861384774255120256710225863273235251598997443658062902405903235827794764016557003220366801398479219597628453153554730780681119241944462126667165684607575325634140402542117919604535573683110775455609170938053980836512253964167081983339841011037545318345287063744974172252795165194090321015841997466488415998680539336560582961351509161384439318669241249327128650032668615971050026441037239109017876688007190329730661237292225825700469326969807789231350495150207054934268065529195413573512221984132918082177781072970643017888609293443302990954833025049777668063266003255397772075426241432202799699883286057611107869919417686891304822792601111691896018496200447330647902567893890860076990460300948439523438030333540179563532231803105874312430374355820432763859560434919270035103938138937114962133089468527088617439837233717607745685164023620814008484370416197396950150549010109975330810051692197686685686780150609913397537237778793772611427398112100131412762678579594951695705898638419567567424647676700970438361364853474056876214495447497488393021331988831754553171050093818729513000276318501297320196968911481412309846431951210187363497267043971724258837540474433282525297333521810100767321154656772633320575950604334980039244680136905271328453484577791659279148286147628254504754492740530533081612891984504424322580627085867041002589790519715319950884701193594808909166160224712699754521070326491989708426205789488595321644659214296476665864323653688004322889817260998291193819287984853733360937102946221382422655676493300829405767670274743695015775691851518068508730378774434572756685177529426464576080459519055307875667376956393361636872583972169390597986148715744804090607697379528261938482640860526245943336847493880158541470463548680748366886472364360025823760206424436392620795873778318060525154657158848251290346717971660852957937628199580744993276850940899490978387134205650175521872126860482551431314433250134562392843615750662361247564707302174291804626927915911011455919874639836470126501571302248636309315067837692994596472503564202740973274951209675229461392269309170720484535472706530605183069396959472036914908435162210521634888797460505219070036924591867494754319643429213359070797049359508682473660153298090073507057430094214683755411557831462975474770649131847029284822639587940100909797539134686060151444119242045012668394288785397189259378982174041564479456300703827908072980916655979671158470390887358668707111349819498559533106014167507049637974254152745555836205886797748795019942746554512720579329711981889576573598461240923823079111159807844118338502350567363038075976178810091884589547713862739160710079897635701377475614289689184419208343493673984522282737743805571493941021548919783214727596072039732035229343575914867227681202699032392749881700978742594966783172431416613468606287022377710449363298114708905015147273131106534064017432700526012206421969642374204635416218464470989985551594031675082838036604991168784122181009528620093622326443083741504733826073301982848867417438439011273246375436246483622567222137391671105510757167506708694384163295561585934346866601780521894040716227285543419547088728118496957718476940381682237623343766246422888133926903341250534637988512660202045277028254384304345165822540058111393732080128025710497668831362672322672129973221603887349735350048233917928468427203511863766180504437553782432924558806179479423895785971832349974296038429884151731574393359037104032548226020569113501558732666127145904101361823532145668621661097084415207731702290280606614599389925062932252332264593352260023568384404328614956612651531454541864359313566776945889224602258012250052317565942834419323173029340926202691572759855528923013885189350980458930920993303916896517418368044496745228536501131250397756225373281281545302928369259030491900184795068059909924188700939106293601538240897012687962018090547329434143539665847959089516170640137955831684373815975539029793773505953400803843884270811490585553915788748406420270290433618984388777470437306884437495072153965822401953343921188273330915046805436143029597306200034219229363124158913763939136833675725689606840848118182260554862627313541593285212451396047800468191805162347854790078370836036266740758402544247325771815889902959597280227464925946467694391464705040990407240439877421371197387305848090781921202048775249257591708666786535646179004660467479412248236047706002228938972243690760709820261961174171455258596119568679095197887101910393300084092378228324075963488579377530647098981403902276362295259451069459533921973441537751065389066060183426286128417536868470548429407838906257132329691024319565234078534274133815377445881587465137934758749913664705257366016870745410018317990666588000527671587805728214789883381551799982630519140888571382604961506584664106071901663296961902579529768056350543217352229185376280386619193227183623024982988998979749988607587879466586884082128982060057619262715493070683475088570041030968674889318536148384828642983100440856081381390802485699109840528440039552261453641456325756317301135129992165027963007826301390449992401529236550975424363664988092798904241349464702539213596983357273062949191516219387553427229385152667822362467012340712483071770551256544538167945131924803559577663926036806348975692700771648742213035285298011328748567458955789099703095548877915029736141110853221100380634551463147698289130717154953065893868395423215808751265852794975239520160153206899959346287036271165508367901019189328817447661632744462668335266268129087949606514060018288507024420577169946940232469528729715084523049209430922264140033602778727002952852319747943660803611981386191667087917088389670146874356519657256450553757659146357839317129590838087101773552877912595141690471452543859863818981801830823924134015844306542761793042863559055613310021179297282855709243697854363767885956494720843397678110017248445070407647920114501607457496890213066696113817468811406934208738440198992858148058144603785355017519739859877767749438903866875529025320695471207234613388175032961942767557457101580270225843195540411916666084586817564105351514195676862269969436387682047408017611784793696243412899739368133762542184155141627043374253081933199871927958820270015092469467199010234860042984487996227149756526817953200517455199803091206205636657191147959552843031583995137175048954454849394734086789854276089526789761165855826239217906497628730122141030759661715253384549340681307624103874305268936666144751517691540217294815681660453122240584253568636292113453780379792293302508906011269845522402440290362358698974954605789191333516218240600758247275366434896118159756748111184411253629687311048752309695076897507045119080619621152351262458007662739958548918597655099252605894924211605531501434836141729821339517901261099814924739915736456969378134978049788472820927619846865565331890435310123748263502421150366616824308689156143680939730735404022704633220205791165870112467347873612896939969634343449163359487838371390798340592419171427924069858480191350923650996536471645311720537093121195068814069033050007276939321349394899524534501839009115863046326753380854993014190273438564708172871161682546980980088936799937304448309532113334715977369740651648196637584370898819636784032900989002651772188901910700018179444333359912819757790655450279986809898334884689604932269344028629156428857300437693608599270466939682351489255858867014967445893003642227798320863872814207743478148288762981049577205646277366914946077210857001483175354132616174828192653276116778100717932418553794207215440891461692567771187044467489146991477044567434921015891356704416760550953018362912453080602903889705786907953032535565218949238497539075132033772944094734038598128850325553299105513083753164355602502356908007414544800706749393813748553547385329176394534678953593802336145758523990801131835216128347771249832650494430840097206591757808010651278145772961649599789603866210415196696262198664057952261651923345003148609015245752262961355960733151537021793217961272755766942769825681301120982534552284798650876186274351145381984750364859039039492409244716423459841893307132729169801740398388961407341847208409906790866291232262123196299485003848099097942713479521228641806449068687618360099270039566772138295628823458458170145820991944237394606524472713964933315042786945860705964214250650797383741680647040926112359015906494801092071637760825449207738387699351074867754044458274197772182667463230107682261471926586588440533199177346990510397535110758177187234825012396585820398176448645221638084988348028553107095875466416535506082442349044322870052359712463886431809213175225681056899601988275221078487731861136424736275010546208654629359410665234587400620817320645461250513165830320674841990340042957179256880028048455022260022664215281737542628864560365258665669518587461462451214974070838580502412892446478587054897800104846383735292985394592014429021913893934229721314142311259545834340699444534228489331791069628442900839567430040973388988382764201325329743048542475069430887779403955193937941569767239136302399319189046400950141178783121664516988322822530159441315813667241144209904525262787592133743059880201011740543796602798173002022617947229866771428555321018926224532128415588455378055010187741035083268551884537602770589358086238103844699248750199778391893409619100640094945294611791608762912939574057221341298733125598397991539023319602022072084519797722707109815412445440056276699240353303072373769844156388692309220469737191956613577321026106184822259327566992630177491623920943511443411619302226628734492445667474475306150447090638150204438902063834520119171629033610804636592167076521090056117260554089747472606498725796646509247647981307793074156910695200028069056284965564662685095672809777015605770950729241266396958193163017453929819090528545705712300679041723704337120879369199521717628357349604583792045537568844269701359553670985218205948110015552596550180209397397737124925870015740110942117616664220709285147374781675102994515460667168313319767875459150880634923398950249012048722943966238591807089129432909915141596776882757998220464486475627942655012409526386017463846871625164616401011038751671871948275118534833988940925609742187447586953586875405459112546850210588700875678286041166512525805896305680544872444585566937665796197690727173133504582546108209891064650368895191546921765104551006765469563088593205911779547802514531647830864188624312479145550023640007857268522450274103295185524897327594547449181630582748158173843261942686573525075668675875538200021017165615880740423147014402177972215522559338954521572110976214985369466638279907718279903386506414518129519806108344410031253541745140451795490017842617781412359850890464673547776428008243218145524554658123472832482084528401761106525670386503277031203151392787599779116166183173735313137989681474409173512838846632071036221486989603307634824367201465543634691551062748533013254174785156782110567213246136881300245633598794527553915354374678144194403260208979961314711734439652245539505664444003964554522373464834442813441658090731176184991021461279166733485946447803068166674628312181063719361820654950074562770569417075232812915135974285384633240620602998067331042274475773787880268058142572484919168704955044043833806069907012526914968904712983901258850216179689604418130814634232026392391819166927245831562459641079790041486765718780646783466961150769837411048686417798132399137757954244507146432265461391714255754579542330018286581510356055066664894505158426602895116170312137672075161497833667781583853670580870712513313111689406268732542491261822038475398900449809719954098959033636660182551454224467018524463065776594516517576290273288018602919837364646528400410132982754755880842638461152286233520831242185891827869835659211211991864451638174523221129703717403138437912408464051067661213131158242329950841082796181488062074376572590806960138760399088060669296191311886110609546180814526794274943434804675443936772117743726701475224773707491444679249565075590790824093114945155083196569926224343932587484546116882643577156520646695847764862246693387149660097435588438233632725123110289559594384749592118479044251874728972598067259204659171205106205411388035156101069055029505813913382643862289102236199902397108818269672814184113360124700451350804593526487912916023866447712177490935629841320065798408086279239567856401816566858814684331093440350824077598863638731250518167690162016449379114917505517293768333918891287988769735677351002905891927790977460156302665933364374531040995710149403744247046161131837018522449397285921927707868499620945102946501027377209997245746655721310191248228576417555095207148713157561725793052258148863403859082831319377293786498527231323421356990909923451499650893961942484732639339634449688504613344847539857085365227227243862193420313298855147946070225688568555810060210031661652150138755455475796302088021567259992163556843025188648747308723790202725018545333130975831359142758838015243624158009125803259461169171653310238123090777082110957301574630948225472784864317170912503990231055500281496892041696712308855561835685705446533770303412120968060106177086152552310896351486188910100000591983053615659532331684795069332000755419973729174005575605403849876796051282164879066283050123466758838648107768539470309367290442081962748970102796946880345032360112662280825765854272871661755073357887734969601358459110292962866391252881825182450956539241475474565487706088293971533521443426553130697194604672302152467831744734474530301384125006200540691344018041166502853952327719708508117704382374508542539278903264496264472888103736171386288655305150147756576780376708739442536641961245022864350437192180396983777042616402988172712689156575306138315031463222229776658612707173541143498079137309940350746663074271874696237620719621283348047943523224051447586097677690033202926709075063549875641072518524181564334334503461752327673827397142751894062711643022345587184264853800400496507506871687498786035360317737079716236564252260655986307983345179233413755672686613787691593000330722476923719147255556725553910369473779430778919457639682220510630894172368933063721253345670985656902650084868009107105400850515986722691361421957145354437407427898306721928472437554168934368237287608125062776920653556604176849935944922709296158030409376146908251607894809220121602151450858907763335611399237883909805091291638524278458844457221404726304737072675981680848731020268988795411018940035023830739040693409063914464300134948044722532584227458626159764937872427149573308748013750474205210973752974141337305921743242641844883294234452158250426323838228762261543043165978851742182259912949449855095243381434799023474212319415029928794447943882394378257636991919952367902530153196017425444251770591268024638452454837751386326783863333807486973826746598391960512480050815769146893372349497676294378579853091791136013854418792456485812848612909150155729887396836484124089135011453306133327039082090258778333757872914807877677176083846377639844873434202710627063937179682515455307391012893656969506874970055729478758587899178069711956217059483545682189450281879336770439695865477218416268594297181178189082592391523800868036089313196724362099426479227009037214835039498259070633778002363254813475586929313553945922995263672267598186063826996611572289274828330178542294622358462218038643298757543222882179089869573663976672589517158896313212888740566413876773569809097709362714467847151380891704355536097004074095221252895198812118207639090671009802990606950781068334746472557228886317418139385231370365195781008457585803874794868441083037558541201617612910497380190500035989501514177911295218625321679291830638388140146065429438258691557679716875180483873220167504222768237758914118441626281329482244709998964406233116302780179305568245498536682354658183688308602620284751169479967222064683271825699114748969345757987198614596303985923623207267668725655721983481625000513605362182759669097625067261651184002374682279659523649515085994985010577437383432609376366030186239403574755802512318966217735020133162473584000428897757513624728418120001845888826936933087427553239823994893604158054685723911226395471724456405866960453808850582736369593358387160437797269980865002533858486927122827712372081873936038612455363987980437616661735438289888822407823198937211174494072436028515633333574253348435781922603866565519198213053912661870571543017990560504799698557975117342838099596191375668321921296178552839603610331668487403226678795201065780543374027351977513967848461776037875972441012033467520229052993565816710985508621755162829725201348835297479513070236369804802508000077533153038645583535921306289229574870431162828509254115295932019148916770203879218956836188310599259846172628370886504850958559047978060704289595897541933533470691483582451821901237888981193740998611100228321762561125554213395574380679728607303581692771706463277769248747924052693093383761152931426339307486079870615065112309968477978346672394634141917711607029806281475050033856253183538782510745943424069727747745030657845016797772965995650086791303442650822615686456048336172148694271118169448542045791262335248930137537149952539296222176759423740970233091567011615785260300900413257941138391258935434965366720273306228137442090779969773098116093249504400777766951421737423252534395403624530755595030236958514672261025286780516013010359488683761905197840129349779129701871612628572289349964894800020350253453192709356161153457455250473226795856796601691690923151662470703724086052590077196774841436801620442193840603393298812176100170802095546529758900862678680892605709009510056300459285538092418349513865070502287242091686003216970817482134229343944474515218938779766818861647170147710764714331633090259112306518454949493459902145936139156080904763006478373993101189743807558460636976271660156549730091074596964836699224390720225279935425506285191238188504506299200834420920183799062541295128302660018758919784458387606843180603898489541953055886294145656120094458665872232813227145359591934492201873656875904447645733844114088473510305738235664367363027792671505408898856820486643993821708584460237643523777683474527136290232195808701115999262714602855017774174344154230330187848664849622483243691424563623886883056472142773508093729395172149823080667890015696117741907171640261321117764585710860192497534538030796352163804436451582507879461613407989479077799762100743673252182227218737364454233399760791586063294505651118043970417970182366601431891065441516297371749932530089094933308617035746575294335504744060518979692817865641046576789079325142750286201867297873075959814133001186608866659732310697515566890963792171290399612828173074816002517947122910267473058398605099386252732846725572436231537348603256639026296415270477149642832640086402564188121849351958804548227981771823823213334305279597135691292002492741629081614723971797896112094620034114976943140649261340530973914290257526060669953954490323423638934284825605419764955724035947732452290297485426011987382682260180449312040372146133032671457141454589583021416390652900966517374478048566069219116820233716657324483574305100683190515922342449742666817818832760712155640644557581782086977387638082041037913590085296998455829278518172512816777076275329473418055501990182615188457801652799641269183904563608674477815143814722294391591184122501541890014867902566361968856027889553253841587953256695297801778142532404136094155416550874889620008841335320380808851151711201089521832299137425117773547805008544502536006482321935568506535098893525428485975915171111938537365507683175833301228068268065473985991125624223862866933368470839569933795462916136069883369158697068237582469923991360497725257810978245663656832186988445281900272455863602359004150592429657147609083179414191605203018097395198790559336206119281960798212149986194848286886588729630656351263934853861252740625727126930244918535437558839984998062007075699118167914433277560444148080761424280965698702239908024140310017292675800245066353459209622603406288944727889822611370190759450172873123167124143501779419726981896638433183577759233818773566564329677009068204506274663678930478893124521498372732103265306836235501410123012162744321449026075369217380343320649578823990215296613946668720653863564093947730255948558355051577307465099155056825365696285306147202765941456175745991593838468569822727073151840527357152583144462875293608389768750258954346978928327468787554015180563814598044982992909661140720925955280607774732480619629881909311918438061146585841121515251694636227484230888325060652469246706719802903643776472382683871436089027537797173843555892294124505185520814265268375571275121423669246413216208757098824101877405134706996215943666206723941452539119685731449839179627504760065550504441703931305577620928056177695313452994369974591513523304117166561974090763268768059047546156143205155871073541787738205143435178469750154055729842634739864615566904987728255563111510191504588787501613720221663857681834236297820496884777528219175735717512313114057180193500027132101451768368477504972009082312418280695795053175125462327543834418848315595689486281457365330800309871403382948200393933220807383082691845503845287830407319622339821409406547650864253061275842638266581254223598830711726288446193859293796945369512830132465798464233975037557125401211961511413109095309075323947792727206726330468838287497180329705647423857527011037956739673406615444681011888219558653632145315557946380520025993912531453369681705856683250200668180573074332427765843192910671466973206590673285831520672385054860904374637147716920166052348269480996207231010007984220811047588250654595501895845896135385637125074562355938181682191020746266338831758759852933338223612289222807601430144759820656183158614455139308917190861477347361338905950688491015966552422217040427437944505009615437601252180428744286913103513601946210307635472239660081399798317422396676942327956856914818924053656747354858029076840062321187542931328594586727150843821689900428768262915395616952287432840313661656778271491189465660314574602036347248848889244078292415430232541948816302767731928121114674798957497745151306285416287417153687152666273382389066374093601300595566059768294349199935570862004569966627833879634869321493759503146025488731014462025558797635069405373585529166586869539058034956233476434478670574846994711878568038741454734822325820440744556079676857851690087944789973661958851892326496289822524508984045771377366539254964979732937557981493757380909293621082039811500511046525606242734338896300561380637661930858451544271835342875297658352417401836751500191390420764668847014193486676377717458030009562675920957171043698824145987963872342062856242893590440951682173653029425931036459642657513219324785670604466953270958604374689320472292884456057227417854781860783802657024893968314926401517428857730516749608270447067424097354279752182689703414857607042093012818109741286771758629593843431974065316037752223859453912460811021911435097626395368980817644213988963333094579161546504545993985512343170853076378714193137168819420469112698393980100685270789362266517058595955103024303777936439469230141330300214393764932779905104932113600128895031826316150501190778608591057654282726985663690811172323441547806410217750180846139345926803179542879102976019724035873286064761967468228115547499220769932091943352088908496080904795079901444463450390701802409624538332109656953583125324483385427887350453286132169203038607261320644352117348650531335927667614183914630688264026805592457488313236158134792740105231040333555541974737200808553883688795022144492982869042203159589268888880969224928633023613255236214979640445873572555965915704124579759950632669710547979981555377398679321169095498577122546041541720005632166892468516685146373218539795800488810484942134342493014127658499280777573207557706134138588179934600564686616608450550023754896404373246976602409803870715997130152379839642040673539200022933030817365137867344643556465394984247868240039159724043508519465964686694502698412594684908996898202454148051990207244651482822348027653572997191738998894622664503669984694772327096647234379334657463841780812028719840192619549898575101680309236782877557030115447673232858615891981107864139945901359328845246218454930879968824672586091085001592388199058089345501524009927638602945192398426584816064895724635326564217172157303155754251143525255795571560594363394603241736347623333269612526375699942563413306050839088589195337204689299570037023688439637999221082337852379964110336474102386421695956406946107590047611746327979182449983761901353106592521894106394166590379960791848562861257057643137735640412232436066554115465833620962811527405463834968717427580605196999961362291544593431025040845171355021526129279931029425784894073781241032531051770927356106496680677105843988781852380429896037802394728127237533956954173408766539308288959326210281199709411032129016667481528240373016527066333549436893157304666690883157913023193476912539252341856387158395069350164561749540103653450772004886406211074888537562138897836827350445366567753435658930480118006992391123026926149650675020850337047626820215560665984108021069952490637763553617667710314111926740831577037825884478465717242940892407881424549027434237474642142182041435370619258230006941351000487815255923608603461911139908864290367075448695154700894802666612460885412000147236323052250823108550616612259468529165219606744665581190305760466623169609759114534250776883360264325159305277677455796049364342588323331046902405135826244763961482378120475953002032797730655188085766522131188746722864468117240284805211334621355944193276768271145114094261254385457389076751663476309554281594262906511626014401777406213584854026122504705725249430663417770906890501948509078329188062935351669961435335554116636644203938297291504959319096707720957378375046992454293758691562562678865269068854486680508625482486482564578050628259813816110800044567996016083335373923971834399989499435160635235930493183134285476435191661962639216255147301827289100999798711076906514578563886244754999116937807190790477249503739692027267691692689765919010565069364950159451783746991467736413723368750860236055702395120206600962867330478391519722957498087761908794659499580161922982211600926038297516389693454138832114241320176148071754224978878908352924122386014525413275936811633338555655990273951235771506011873306085472856291326416409401161355912430638902688328035542443903054374764464449194002923375959210658606760952648118091650395630352169306494181375274209604139866182875029220096761330338505173776743654798664883687958530577586885765470166081441963610440087470609998586117314596272804149894206434679919532924812470705376129461303029068336444533998855550947009447438054809254587538297378146751780133641811260129171515999789785804323421371997779331388296670895363024540516790116573293065616378542402648844270763986350545344220493237645264832729774567062451912963868361863847534143739164619942712530943177908198317504926613991430330453096606788780518698647376980043347444064061327932772728520301750291373419298184233902822090361508858488125530952625877407130218876879202154996162083378339064824686382793536912016013336273997905155314995268641987462520713514876285038051632389005646512108125479756303911983533184239004762853728899629747527531824265031558942591168114011555872099229195086286093238663754990873681368830053399538511119573607350231071313621602795646922482973739669896886697462123633842784533615006849774165499185839952773872625192061005446207001616782413720920353358058089459341140777563687077169005721087996223702648735127368433387991806748252854160243534248112669166699556565883937925975054654969990787825495549651931305336153690461331021128632729884234305060140477837637847195099115551795692970733678355282122009366616492441255807700408926311432652770841786322384755122289857020651441371165683529090240704138792004783329562458328828603400994383685456228906196556280756680022341897410173191165417124718231777530635114302009178220350689785059158130374083869019549925869592039973263057676985447303624074739565037308028340938665667701146423727092022315640841802876148535258693059607228153191718898834320202604170645710732449720014692655219547092354564009975234381665329145498822371802657270343175283884256923840100445052016338455127724238753850046923906055342667489747950646466980927780770393534824907471458445266866848805421808487910847812624268855702705431587007421745221292541983678319765245429776700133737171771857029646118962517171962526768634471535348388626484195791601049792465662575298395574831027167570333168164343104384718620104634302856241040668859764792653843450018936542091241515567142395203319479012719439308086636232287208330914227008036082649067700815233003824069151202519170131531759403319579509089893538583144561746007679964852422476727177673707812237122664835248588672236661915021483245367717287827533356549600867818815591375943828467906218297432027523568548267931125766322628635653235881771554869851974832336535554367502954440189851463309911958397059993895231127925426773867008340336563276602999387247932658000903723715168321425082179007449190224990401787977609477025222857229778683103516390709880621420885664895501552381294065826789024183178401196647543575304592180254352382295599980864594958606468383179848096218677412751589050256988369232145282184623289278655055223639901282955803542537569287207725612686311574255607170667311071325047216022966032378024867770667035048761099328541232399908902344248053525508240784140088725698357328119800070852167368753456078688932960256631868355234147053293848136376382035407402275374765681506472001259072127642312575599319030320221033906163024363258316099118198588259640149908729392839891899011806018467955111041464441578005303610358083399421690278368744449985737933830696506814259896227441270606959043288809891207874944553139159667818571121104213257461457452686003313726701564742860962766876464660887647273075565708205743076015029838315124105834872214918270985266785250116318465144045952382508232652031722507889715131500097672389351758340246044249518398688811178500481992416066244037189718382406536042954932355910577822271968018254160743599344892969071484613943125046502817853784954286957738879720727082543497472079933477199788255476652297453142990654837022075876086918243500479962638094472217767570798120811093725494722863938195610233826929219656575170359298935582569797929113474964183597730194153640990490201088522773965090275203804900754485901694391885817037022247083282903940806785262810519877746888002192351938175228224096031836135720050213561365742428843044254573980898964239665624823276930636219197286680489095264633583068973892868462605964348781532334264671846501934740037032124199952616707135042850484676752787894936250242133856515863077215347540185487349258663012186719124541798657037662577058194554539170824812852019239652097399253985865577226528864107454904616427275162397956768819578586040716834229081463690842607585668469803325639276355175423453678528994241133102549010719322712952665000934766477457927815189425779016637940078466768329760969256732327430329850232131304620583413670944528747913926380015024364065020862867411210308460825692666514905594703855568548847196158608844997415273244553253936486224369690616177427896944867398297301504649890044662150997837073302548018476699491137373987377405649417499763220897622152128217039039122690248596054432115771544308039738662629553052491531892294795290391365204974100648529022922415395494489175860343061788884985855153490596941272646458843836009188153170634560631363082661634248539916423345440087135665841937315080793759207705244659247272939256871056482556232421625336605017347631345603046944705663897031792565508122288276918005194992621047534624001569848950059340669243190863785119273708928895941380007325238348842896378594002846548017487125756209660094386046934435255209083080307227991621576632776843840064713544820941987526543159891492120048562690267374518312582844697208674521211329821283463152582282406369906162283203040475146702282675460267748028665360806896098748211094244645254444892247178572597066551833735512020351072938345730553724218387551511995442651100962484983328810640570165186641460153180879565829974286683048616280895676751479950017922161327633613609778418401532953602063343588175205380610559560407467442379981843280427722702904652797679921489534385997445959120067113317469156358443752304334076884697424624980525050386393479369631511627003223281337387607066154134962101073338377577875198167563943222300080594296119059691167161185872808319703370370673515857989273527763934818821961233619214526347958673040396174779505578059166620568650902807331848793239032660070650986799271572844667528271242792476438044298083655352898034119442588774572819544606534326800485119289558533074577588255468199896652352179661726357499597379333470913444221315293052975048362390452466683671602506484580032513231852199307277189170179455401731749443142335946077285881119248121439610215548670636920474766670071277595223423546993951014276466728749098125277615170982916592094913651656202699575287675428626807521070012132341877036633079699644831326717414734482920377623648671872102761315471050289613156773495710624725558474623084312527630892152864127107093446048508274394758590959807369273489301244068215367149417116755427532008483281048723532215726570446306315930737809449030461214468143181764413231904335124666952268890776023330143945743678945164853369007450688929408099224686522723968328904304008638115828071076444852502824377221407666778752703999518002664072862565628680430255087609277673841107406246528093236055720578078111699626941181432442812839694354232605777297118181277987904795187794880749620381314110042171547262064610115387828483426567178694875478714375169102970797108579664041550179506445554005828925904910534021761832038001541549379442274199522158681192830472489609904798923572601658245963590602656928146932697066279677745290182370331199261380147748703278945086880813533906155456842228723708815394377523105922106072594640648636094677708327632732307126661572516074766907353802102854183746150519280587522992051911229939808524456965649873594475436149486635650542651551692146550981801968731320900504841684402189833591684904148361018509335970723280849819335723515764515562896519036189886106678179664632946208677232714327745478262082662312439894069558281226749236656225651706199798312073174534666116490725485056113648322401707470292238034428030163534982979629018373113369108395185260830820478159511969833559869110756581172711091450328916253082373440127370349720680009945946243990939051432156830521755074226709904506467806255310266033322125638501808085683105864289317043776908354207909513473564987774553099767971409826146983313132135613809306373791729983315018369751565944428249623857817367800626998853026013091242024976283567332454672657274355429757289116641330986345100046736640297045099963250908807892671485215393236314957226791248253773999039781004214895600584792087505187039073390165149790195151703270073182165052636684524965558782687055082401925630723259152475681632198203045397659778292258990596334772771818408685471431366168592040638021983219246746371696177541103068263215896620224752002770123925820957938586505549461675845119131241698479798443619313185179003307171753932307840029704364199069647429038684159911512679591263464837281323363311310548723567357436435649796917563218089271004285649761184946581428379369254097195470182071231319850941998492100997976455000055196485217262725528706374345614625177526818832842684762034154449593551770529981130151159847653351916294365248173636253917660926490333274014468607581073106399516016348571587050949405269781064822264997222288812410296862400654714499084983281112534057701557702702449296249227452226865041657448356899851272727700318046875917063109282427950478642136949286613421417739954017614254713920940549570907865545843814499061068188252905561458503700279195545711916751662018783585684620656700490113526884062479156276069393984864121897439921527314692046388747926702133572736571424009973974610128738151689099014500884539160130269605077414881772064253941287058591787108103197876413574066074655652051730834556860815293791229052544205877225620094854842996302072019688219877411127367165446619005382683516686452355425774229545947142460727240347733830860216652479177764489614349106182481153077506542840274299097638889504176849707812637492340883210902804540702141789539671462373505140135289822677676822932762369336373940669395021045325902812276803619487256285731614172426191563942912247311749717754751231380640539484141351786981883806235938574870462535704663202789884973503863501589922344690041581103633755708620156167155499115698307054767475518509824377862508752815164763129289193185214612861549343484158448976730646144633866807409129151302748642429591241958849142222509591965137594674461720152232819765870571601754728798796755909725362005297107363081797159970259836291451551681152822150720203338235731700804275257746011722209467006795754809551385002512313311802335601793326076119869088877036033716098080716757052745646373552522130564858467134155253677676329612335114167793080650785079007441533697790242663094600496658045341733276223292824711897796873821828463862994616420647544994860835006439216870491062441871317924844419608898390829709493260594074013098127344783985045185896148175478348431558407460206112930802812721317967875592043480597067920095397937035377605119717302194984237230152416775925120807389126289511396485285753617655636253008697689249757896694737879588064255524455164166732819817439266536637652163353469263097370120077732634767649341462897491484827156869489793196013460587269837228072533272740896198551422080540071027561462031201312261553585806444803907648196428038220912257011193821193565400970853788539559783279112081297277611941376427325926688397469891217027448012991895135799413882194153666486171633577931885941135968213014484024315139601414511334268182433668250202502824359995566675081594944368119604322578637660608776373593917174073991950994552865660919052896928807124071985738578715506372034855307500859891646557950763439155482320883223751939337499687549118042615065622134565243840058497070279653882865296959245521108546973664468976998019137251996389899761160948096171302668654618570528080014908742729113261441581109870621361101733564534305983571455593878309026229581045389552959870285220028235677226324407861059424152452619998380581349620176670392597561495541324163392117492053424799635630323765342326092222607217451503365948938780057420342568889183016326279412398404178609060789615212720732026818060814624233192536438660414786587962827921315964132886111527737542941501175246408989113159446030855029496053366167811008756302776683812703678039220127755370744010733939106584247350033016393911609485713942808184372396760029188125705900485650307268891680246757884239693271240130164354076457058781883765882824158109647413551215007534946784581565650969464725694665005467717185450410389791454443109191844527115979742896313547251624792826242528038788200490544965179734062694494181094875073276144435009336556711310223664974096177063945243740681396125422913481821838694465934209484754416102393282189103368393647916327063360493608790944217250197314724018276981616681022040243961808715166814009296817667360584656617685047139244306870582954938607998667960273944028573876143549323866361866355015871050204545785347186201990684221053919676101082088190656460604349476770770665948300700481205548294002496014490986772666172458994508620293028136333399071353056259124271570837765780412487048905452116027386353516585091533548883815736430485171865923137311990531357651928917946530608978279461552980753788404050218558569700734390470189063215069063431086199780837666047647861910140761864601328359762452147294637543961276583487185757246971868466984649385170299167444036646758241994346744914390853251317342691400960386501992502396031937574487269840323960656373624377425245314274057647486228966226428231818726306628023614323595949978433340439469623889532061299947208574005149760881444600643509508010045532658078733014819978592958067302101502863735863395618085606411515331385409483392721257818227048219380651735070001956609936082490251172075999665892495392434594600212676349358535906034575990587383348380719890845088063108572641369047153494499857310046459460840186174666542701320128125416102477558048733935850922753039438593162971660034440693170550972660267239610084902000807474507997201935089606434310570874543993211354036342666642074099297300081623872478632436981962383836966376962332249211991098511402135927219059540830316552043237153472273804674678323995602893212004310074820600237776775380016990363494166647637318916369203705186180381896707299507218991391379014924614360809732133940040437364865203095378966877875935530149782206922185339957813306513699808838471016799420685985618550124526693255907137076854927756990301430475491496107651051849166632368763436808868966034813136127518220019272489253353272636047675237503421047112658500245576210669212131059034812519792094855557470203264065694022478374365451676220401198428572597303885124992232603309386047355376236016706526476384973746881152380169186680616516024312688312966610966493880053743946742909886414222533939763130114291147563391695931390474003923523549158839449285879911161811445345984630599510620784383530997146429288366595190892794482741759201860893444269930188887543852179688424365897555217416024622589494414755447720342360838450323972331129293605536123089991099935351810693573357145880319328619379883750678863802364970846553789305082195418900404078117056039923852625549064452162889491224988693665017251509449382163375964700166921116015036721542144286924522480109028190655605591892982906328602699708773704893623396876078460076444270421356700059869562137306938749560048624459044231508785214002988019399695486114411311327383491706975797275644477028809781589128683979771641158040695541989047138255694843603907126988113273367768665824145161395762097078434001934430043930132239889678300367966129444080361430058604352513236358224594003748962112560746665702084012134041881590245155540727347242540541254915419389247996633879980225730021494641851401759445410119337796143475109860465796728237417119150379868787223433961949517790543060161083887844863465390572746439608943312361609987165577287715334908604337304186631878044978359428406500651636314519927145700300418029953955847725580186143720626570541544959914935704252604698132813008203667851446184842172107085742741403230213855410363126900025861868329717958081729069421997711494585172901127231544354054867603738124551888122105447425342616222134761210194100171314582478810235284457245573780319639146082118171732872978275323661024691808986935728677428920558612271204673104300543100244773118311717867777216530187848529941189163566891379998193454213968755302824903476799529768983878819973591590459600963291686462152207159281444622876744284018814174324562117464579503260777718592811064488076885097734603947708811816899788228397177531343552964441905597280383454930673977628126244138749131683942525447310240724157076291749896854908782054782590029346141422120118336004499708332133500956164323238077633020989905158896723820444029682553203622335485489876412150297706566848457821555219474078455808203455197906697022857588027940682786759684170025678876793634085126850613816795473743208307096517242858822558078110013396158828966279621648908350708364282543866830308935194049588434918939300229565219049221468976586520832954964120988393291875070236954724371229684020450755861066497792592320402149721811445112956390537702692909507029537460400657174574968304921598254419325809864480142640225443735891685905780240613578792696615436909908765665140241560253843764829944886023051803221215683038428092499486602116669326093609404481260338150774623581829429323570059131647909284799100527144206415068469073910659696046782108938422754989695728082340187268217529803775662967197010614705325003679290146191037412726226206336909439237260982850774104107378661163723376926833234492064924661336148729460192881804376290566154595105447660334620590055710586210465565250351965834181680965689616328413255372934006699187627663911100196088941952588701104073860672533317839263344348607111981194614470075620853974651306268545557196593566511012351836482006434054790691634559687476358861074954099424085819996369896594792552509452826737237403929686811164465534964951123204118835612125187050620211532312337529480139397441029451738190933444454516960468281421265698496617613369310361864171355994758294711736379602925027479848285235485288122636321801575833067119127006084423377841800391332799673561433036781599296886402983392076501459935517058679342300894673777860701148373310495971457279201975345363550934385453638015452559645521780583571660819680949538668858155459435721045104341598770440648248653493259088738051614324002853224294661018223201705236433675890133240168394039025507433267591376872051726825939297799870122466595445484447776282785084298654661179056568396750728285123734431053157501061483480605106682476223082427332777365308555454698203744166096952478997066575267482212425608854155073116522559991721417302832014789842328286072127425167107816310446977704368149976318283385617676382893567497637088624233646741221746801241262827696837481567676373796569621749322069742746866534764770570479345964385954044537569037617511342964274654408294118800139182225598488232592143531626994020942749021813229944634814981243321442627870177895752450144916337243959159050982006636169321188457527498436332293316051980704451309649454167094380276616193946687703828609464031188746978431730757190487929984288105586009870903944541922425597643250804455430010258371583005397041012372507361687467715403539593921047197603168027795871872703843210492606433219150646633771085252119831866177146031464649994195419892385949292208010380742250617117494576324315590363652075268591658971187822783199128445416851039987047435737279077534973620032240615313997709209930215273647114648818691205704641448977180886245563141789276149203329268458885830647873587181458063185420417341172787805902305169446336999992367305033641676143999118102860231224646350817034389127432018088248461991753361938444227950297406143542678237812955167203599207891305854176072804387550840824382726713063880292848002233141687087043393960335784680320044401487780267132106187286049030775867745434175838997288221948009156949558523001451263625866251532906599752114023355451818736215152423075025330439713483054679009479440023305428229321744405870948371613324217220737210829332314870461480518366772812540226904771624563816233656141803435666472230028389628212644578499708578928942695044816070726544833835532936864318521255998514141204494877283400513358884232040385429332351557572308650663766822131366486469492538402031165208201357980136360230055855611896061311119194498006625124314274363011623744073604314508878023914544182097281843188434345559764151413461910795508336798268244663208498433050054423372972534565411917374752384199382465093995907468831560586343803677345195828428780950121533336567815743325035032496683606822194432587642919579973805287242816394937138448283330849031781867562812156314313217425940117793227971889463209140421481772873375420149572465654361127895363576648974709390993840870312117651936382720322996059801019244557070150615686423226763171814419447259277776230091716674376422857182523813499650747934449813388514049945479206511336992469116249162814715237011108498959332667913702275452564030461659246718736518562903525567389968575163209843424120811018268625820525963642829943611725314765998825846311897935834312697866035878495957198996918525384752162703162010075144751608213577029339133926571317335985802527313989523580970815076554700278451718635163266518535508108825045188615543137415285488509409532474344960130689922540907905877567227664518559698062130201944082496252648790980671191346898128935789683376384271557698430062414322377066480234831711200669472695883544277266329549393684230707648732376668859150351819431261685874997876508429004133383838829087927313848642331515131758920810077667697604524685033874544841782779822202950795443584428685016224657332825709065601248800936353368029859263116382675541416621034783551965145409010679510323587869914084596507933643905930085361513223387112207522751514807465113037052790706275386470384701989282083030460341704655390283463913884648795895790800156695489182820253070350835972522505137791190193811090258438336905462770806558301425169970661452386479033964948144553859221489476605571426695557967697116567226562972893457400374427132267278034139087600515682708428258705540780311363939418427655865183511337594275703663349103715688833049303452409203857864876922433378253437621366391673708434286768441922410299462075163882531493227083805879386340918823177478178937288936797322374494070137265109753649051433196857694809985533361512922354912061239084319695697823802384652648223514375675989660382245616896344546429399409016950046883539080996575371153327126404380430890827760694491688579911228467427550426539862451296728381788236227876109654675687411360564574941571237667162958133372891819093830298770736249854647377164292753441174109717656959145698947708641312059833249972757861128642807063136642926855977184463691194360573284076963571039356761552302497460777868951264157373528415080397948253477482331296697361076950288974667971129071611966108009274205911883056809510685271852009580055939829992170675711311659230784859875634665739059946550374351043723670530788026183419892105917943208500865586647598232916734871010265468484051934193904372712445117739604619395155526352886230094849680914147978857996558076912618054062088940967935807575817458207597711631933389346429317448068072127627530775903693460387073353965181058357295699997838110160686951904402785188270745188464219517755959501351204750315738067643099009740189161232220115869994659866662782289267881314952334702063285099499913829891405737806968483829831804154973453561896641812248163732479698993026140015079790296568613499365903123159062542454524666854182771144582372665351300621262466236946315233998064240692048475155183129145021816993468394215063248631563566435015558696007250234243871246822354145046382082318054732839471680794551130627507814201064513988099268428942580976985421687683342875822745606933111127940749858345157325609841979564733013218115992887717374047091228742176297639606698200355208675148886123097689029397802487477690047648490176807290905168813317118627534079472587327851425122598004337672248475634211217596057577582127074501571251286215206724426587951932888578722954347612150123953833282945804705333912358266162265992619173631442041426869019410403461019008724965183813591136027956406412648878694143050780183158768295898180485327530480124270352604826109861716421872660290029668684272333891422410543025773795590887789671371726616121341143233981003129709696759409024010929180774886699372339274765520724842251651044827707947000371084804344720115457010074167276921681959371756056969368032889483446788337460218019743702984317729338200165913739589555763916615973646584392849121929229594590892349344337453955812105944909284991289702279149155045125978440248238829968947035124801738047947047213860500539919687696905673469270062225864645628704013894817181436723634123508706489992659375236434840901717802086420666451998720176877307396437797220268761568336306756124452859772976785272058994563702367022002519703558471144355366044572846828740554337454870956797176382137168506217707625287653919204114599418128400815800523919161495956029563113951068816741901916241347309422496571379987100915847661129196439337541828623022969305590812782299677241700299678687214551380235589498594722453704535837233718389368408221682601103158218937861515082104237604467627423792595779294939755669606646722801753306478965472985989594265765847331245861288475468496422788595916059281232732103951650159030922122213455398010089274974793881758926714009601870453757078840083500704518800968636730364337670992566364877413812090055181531796466363551435970441879696735660271606074554494038256396721623325381129498189534846428492270851226974277225465859819317322957942441881376619411113040676033055562556122017097459006016208454691041320236773349829900166227302216311820909628379372308836091222802938404557804576699661513193278836067569944088397373857277094186252376058874603378770934900098900106701143553722187660702442358465413521577845227392575993302017351432915450131447400142999167405278719139440395626306650923882627105940057252939538831997151595378567722354730209536724439188909312127972711918520213009101095812826027662713727027357428473680122204546308517849481693651142191168971107671266819060365560430871043982087527519235490137621810386932897347158179917792847249443020802296158175941427468360173221228320367419509370726421537862765435210996296942277256286986355039200565625997599281102877918437724206339859785381614658606254747899971086497945358736113596284839984179005034710327417839663243858180637306275176060229326441201155201105550458614767370867168969635041594966935084464612447520666430888453624032550260943362584014084699465916161840208133144572755839144131894996696196731842590101238779739969143846053798330762909635155424868684390575384680869785750804406523515382662772187645986528105630740132393962449786991464858884370650405576773180244937000302958574493207394275224472178692168952337026697788054612468618783566553866502893987046658671128607066904805685055083576208976393531647285631900174137754598637165529288820196377875811810220019283307674111625422597842379153013162741112211299415516577886894714018308729977667954757125166928316705020381633456788057865473332914150608334066534836639259897486244020203836392173557043705724829857334375241699902451027347811843440064332107482645048265600705764341380816040678244639369830779299933008103007833164381213608424061539003309331550921666443011646993727054468953606248768801032658488668217009978562021300196387104182263151602210549869468342464216758277854267167330307058426785273127416288745703094252422461450358335536386308963271983621244543050377269889277756958922322738309323535554124995243618373788782791453407677817955515646569805442115896214346757395210635723032990151365764007988803407966534672499727604967111354594674807747188094885987605341714075306288152662453851077041457470721539242842383022630496729282068657316599844646434862714953753294367303780957166234578640557801053400986396653711618249361141811504182557944801009475134256789661936326256363251454394467335688006865174086273851154466013689347712491811081121825490614922134925306557363267344785364734204753047613525894486219764824399949964025374444936001867815690579389522007600075027594829603650251846797265297906504492878505977407446512395536702425702151469630054532748927904040185107399127892618321955232998897351942169668448974890938485272836909695939493721727662565554036357622432077342549015008057122255994258290862157704631900410921042088634190308058389698199794083232315092552363910486110089498874999389854504675691763528238273077240027809915473725881304197695951994181254201554458747778600082934675245690983111715717857912136694346379393713512435711538936624558854683529503232333430471941195050303474806868144594739658057565428225784890518364305027075268417698374691098502364158740983405529376422035599106418077832593604890590267569237286527893780134201359479553718581527835792251690589374000854398790831172875688087503644118857235122287065308899276472832851826566347003584184304041392547358068997550440360171656339533854251180871010518883005283824868078996772091893309245905148000762283942369471201247276854208468130990349610636806931508017304243969535404033994429214505224580113159333541428041137862370589917256282105409247382697642696720038802244677414316128066813097911100061976398778008991003756494953329732588705422762415971487499976873636115976242103764321470122337064697646425054959188082374841984715283904364733275468213900794696267992696805617441474013681281411582756836281554731865562233982850478163927124221147797605872071530656533015205467211720797086573144907456709840527757521090826686686471234442278409358561921287520078934499013790279469665274421062644367713683828983513209656565354498934908604264930538749198348882290967079924325683080491987750953904156062128923219670957985307142701500406703492998042152556763919302825731310378398003946657565912419906125819495275657233454195929229996340631157736679715233366899079165940697591868965015094448965920485015844711208031652045915966440052965328220625406504306297582336853466213310135689560655174287767577643348744974161053592805545797574618736756670269156830450655234503358245017581351322035513837455407803787819717450351930807155412554244750004091038027152741300655856744379410225028157274915167618371389414159721140400980753538542505842986927512500421878354129392577545271920255412577427591769246805749802177822236524358716350219042868392908165609780774153568678163235362144441654803928150470859193465280888982011599472261671647100338591039158768048682806328577617297293791594633324603776665273447592685559928728703287335880970911262715978475074810205961481799115293242435201059093830924147327485307024193037541254682659117350188665586003314337178909448271294278043651907959986394268968675954024302888384851469647990926711694695702269990305023641305695203439889916656239146171810194820152916982202268098396688944686271230863328654667668351355481641612371653377801456512493132637872259102877202526750793364596530495202953171492251001671992152566531944861441608754526124316575650513575496171188792795685808955342823208364390032070618394212107127264107227763100784261074865002014594525529888258555165853715557587770921688652349105131610681727013005202935263290804167538876183791738358920316899915855750567743809493923907687001628681929748301186285972331175044410851854150195401088245990346347386610577668898288713728988962403479974267342607037231708430288922461256771040688927444476646928113399045721096318457886259108244285021908876374671736021168578407700911992814853444111736213029926011041153598913026917842791879861618920774800019897172157060340058265383603997964389160090621031734295187667413569394261870314846868622696693762106244112735335353064020371595058055103331198354033039524034992686042654785185654343847287251605260910596751281671076559751152616231347133329076611571848230987440137809599326612671966128756798535181929578604296233057175664385572930546128753113766277282195304771811225641307144840886202924951648281510692116299553790507474838328844323302763487057818194706096543230792547663397079919395049878107069308332944488540944205122709079508460942550403564511883105464237869011049690251727319907959184773810699841145066782925966053777480853071956088469767540271028052113131811128664649164129596675635214859843707943747746461532028399323174908762999877734818395589904981666324752154927747129814592416023084287654921097858044438738032983754204298624638909529165857729591507674905577718381342145130778781371848700437476936707452434120374968826621398764148030340530939225181132056461078753387986864832881339117465503111586460337574638244532686640275672874876231499874932582923785286053008945124136923208479549292742986322276292101655445985349564545935812862783365815478099357501487361820556733644621038901787492740456819674423039539821711946148459788663613437563999752630577684980540536209214826910139626774564228386972375455633009237342164465934464035157160429690131982142763119134456986021350552658928739617745543507956253023124016512706675134338408946655644106757842397803070254297710357844940313698570888831183404920704203257101666065310418739051270424796851907800015666953436143377965568337058426553755052395435089996215138859395933755352977761287098860291994909214316237622543715198089361208420483842436602254958454185818434487589996894267516535495781955313333172149689168314404162070117325209798994751018647367049853520963467929712811526925318243976888014745868516598485935072151654512057011395434206378940307128729740954743334381109213237630292547208669790200603533832768086338872473987455971674469301045429431058697283459918230093802251177605931492373070298418542783570658779854248039441673006223306403161388967859529276867537036580652268191060603335036128817550073826470825495789718907578944598793474152623556305011880152135375257412146484695499178305877318069605243493998864816210938572925215983532663289570706815900652789650724963808176461610428762040016538948198743178003913541660418615872717324714042801494929296112599770862937836878443630213895590171664581453143992315768576750171004485693635119147061738884131881525216631037657901459787719275904037611368028516258671786306134639882165446155508471727370926694336642220299126069443980362510925561095539198833005904572416900959115788362544454394942803147426954266999371111338339266627615797366875651028382489919655705276152552869926503266677002210324737448220335564998585370950457950638725028385413838276668402274246845489198701747818906176400272941624248764318152163617747524942360289905194413304402200647805409992818635768663449001240470473241330036252278538928406311976056814351440105159041852012026829173677670892789335692547297808762980720500197805756727787510468434184158543605737792458604721142606223649531059815160983055388883208245682345768089675947736737795770565649540662182509032666819115976739893463553111518062808288855943339155731125623853741720878024916034820183535675885125933918589231406123613857943492406338164859345768692758330571238137595608802592414679102473129292737208193459971620815054010946586295650353491183073045807627855062276018312226906954841761519361302337819553599081518607055404916696399523331315993275957529677488397173323989842875019638407551116839320834196319734056651210371854868718875691632042031138435371690654774741697152132274470817347002230088451213977545492971552952211677355758291336652962717144743890593689961741300458290837173710123356601958151423576850079756546203919624578878000944457539805758828442627860206433329642411518755983007028083746450142816994136502396406170426546245880725828975699663607143304983358552337966582426915413814305291751182235359669127275672639025844787271464737175586108817066812460559132598283698902791005613659844961106179814838954572409459989936136916411144270715866121447494069251108105343864748946362007419113409730163237414077023428376813595775632375693439109998838255279431245433127030126354282474561034856110710366628027537637793844743669390000360231860797743573898141958902186532362700794068341401138567743041300114105935541595350136828452719724390647499679425744218635565860242718572185041020957194379063107953695134581957472421846253786600942015216902597645348626018699620105924463681985938344382338870909752627559107572927789576820122604770025533241252645511611969326606903138179815746029364397424049192063943469343670277863726650991858641751833763306249664440760440056761379292055733924661162379458407800582258650010729039688485493728178966902413885911397176745958796946184364406798518204610732442283719496834933283664237638163975499663944159613577097054935715974709196625114045711038741174852375881212942658430938488931143022579553845543918967228094635817566732667182903718207487463832970746605648717960244680661629349374270027298531515778308046534737403478324857002999658463966737070231845315009510587072048843159668771165036847028463699549474117463188713144303717045435049199704105992299256126624426155465114814165603906236966622317450470929032949556502111166007745034135532204733570147497208633121954116783151549038131626323285103458143299632232402378411274115978516625078209545404860172356872463845594637463980539558206496414624133091415915774125014362714469468848621164006669284306093732541315200523385764636202669052137217883157112062622931150715427211719105951639688162176722439691943526511384828032433792930616865096059820122759209789363656765243440281760133400932513989681251807939908211360834641961233716893124717585046541079905992475359440722251645132126103929252783020022702428880319482353910671389080036313879282579494233498026497502157642047183972559349122779495758278417224592161959294997608092217402429352994202262674412167200120563892095086398283213834728581324043236658494664240180212964150301355340918276882408310446813781190036993621678368122073401405930923484485514267685913610152065295874312852430122826850594464375970680670327061460335544741572577104039433203105832649972813101712847936785003644293492749185517982742808415750741118074157855388970872647650199241918111504001094759411977347938574486289485154106573006004267291945777022038419461839274671837125158694326828162757715624268691087958797763725058557143281291610042251405472984434044689418784725840039927587315909416572396937010670639304561027774704749642277862026631667193849455154159345570160005509190150172949858723687783201611194705089611199077288214106129279859208413491045899048367969095650949769705598642663582466107956834002577708723745118367659109016919894112347873813120580827771235846038672176537288927225616203112376508746063253302612193654726252437220234148774575810609684382142181875528124525257300437209487384852638799299714470839674628618606041344791860741489590022037186235488661263508370810641581953418786845983825514846128474545771433341306583050213579044592066884492301551060166100780337088108775249375504474724915065284377911240744087919715050068485403279299143748326571369392930470071839024188702466581314784223847693581623865342812343525745395279877767318920253575493749599567297909507725254360706057033522915390869916545198902036964093340034271771916177128493146847854282776045468132569062243164190163695182506745324213807340374818670691521777564784375644736178150700109946189894721343645119387661249699780201088781395469127666895529478051124718497920797534352110860027983719080609588716382461646470190696165206319169959986611191846594584700250244354956921849643045687497209758887948486354273263596519839795501630807068297700068522642411357454899152816789227180103260682917752112713876620212709218087120506720287009309106310491443782473016907477614746732860543200194295698301657339576412553685524709117246426227814988940136776526705174949397772321527536288886509578777602267039226584196782335646902008903831828088051954093626808394418056438113074204621048721695123152645381504191541298959171485779145550695363088917492882460524576896345705231316611837559325349375039368827850897248764894325039237160363260521288306289619308585393592500805992398147924125179282551429862767179433692832539687616918676448376088763945878357193951023525157758278847080687683116327471614354905403140927751178113742650377663126228764254126913111902956224144036981040516075587489432666817114562850676084535991207900645301178618847540853381782111634976494558884629575438527442732929469301903865264562569833033271272377184994161621559086928497433497600397173955712392272543761888859044206081793512763240212565331733787101667531134598702470669400213725417830205821608368752096238452656646928578842148022465291445037446002720536409665809003750098295258562319479317118251017143869810497276282594359187738453546943744917733960096267686189786621249816222503079880654094244288585268983415491970119117447285387659423258286532245568009151097013226441209901197524317364818535473752065031455748228290032374538782025784587250637351183891650016335145020896624447376397024467032430177172285583353426862330318061479093772288103115874791079116294848046634735016095063023959700997600862649912200349302482453122023975329580881807633257691814260231901964795722390416692321579222279727701961075848440428185330884143419014416577088141118613158638830675736215705622686062710982101755103646200865809267912469802002969664175679933893932224468054376260369622443053141535932390106488923281797592082121676015644790842911571409674285555239191552006341570292452265858204096012016294102999182412700487095644179219209243465032121141132212156912070823677419790261162941159724316828449994835040148779251876859402402829436872017141065530538904317660278790039625919956311574016103968063319230190728715797678385004065166754020337567431448751257324278913828399098686925554908024113752074822688042629490608020728335340161087366323715276423363877092668548283695246159862288677016345504568497184931005493315875973494514828800523831529039393603873261179607625676128132177856911059247108556853962009444734669643193927090166196664888085885357987241215160957174755222924023274703764738217810840940875789780566389260516401613035133478727762510005655970317615846270241522832741985127568812253213155669036164434001461717328067193151684524039161861495698220154217823408109228498144266471171056016116121804870849285493140377103350028883635844847295181078832222867317128820260776501313123587727565656301230863245457345339634143990449762845624494637032167024745958189995236739839733328608579737205380373464805577649414562516852503889960100527675048373458681733916837243789758751923298456521877425258214916805528871680819481220669539923298734024300044943271634101143336987269160492542584779514752412064369937109104508766833732222293422673163975750953355124434506373569042234670209405644142581481525485451546550907048076125650804067811734188650155429460422382347584300900458640491559629543244647628691424399508137488729290288588322159097378398326086795201708584802603858490910550626559222423113030005956301998479409349896125761118756781291251465374875855442671239501386242241750157205610851706054623078699834814167209716397455113237559414421567359136726056983336516356831898456250432275484828376736776568406701376479379564419529229038480280133814269459059430252758384647909734201904152556752859055495278496532107516877983126614713444906255095684746087387294382848116273086494595956035525680186859780018885686765796071587422246827490529510482505169839918900394639820012982072184573159014413101060777406977557766742364961443494606308448072036700620300120944641282052543611889646880440401210020170321244865051107259958674870308820625601480346908663228942205980016742660542842080804393953315156293875000865063047849899849446099725913544313326796429044261231971685060938432758232194527697387843382754351408731500722821704589929450229327361741138570492276777748838559827709901819177534617794943129263184712666252858879899447722608821687227957972075575024313837280998041821149689587061915297338721404797951966608937430664848755681260087260794808879227044178782587633169688166911148106705645677777387051188141258225320043081904687726719902994081124233413400436093716202695285635059205184941130483128040135327298198385360023457947846041513531424389906576277011924547276399067938090264116428486330527991743029406458197334174910626061937486355618913220215616313773331889849547896608695934378106576502238794177808258666037419857703244519328548431260526683346906900964691234614674693608257957373891604077622835967707742982403208282991535776089081945425040148229527900508058302546755658631338469754773651385739324958426982909626396037475434362646785989953486481263677887276864967052510658235106220703542123636288527344867355414346462771801616401972663342475364558233286089552445656581209299772362813721471992425321208965821806871809898169589357068859553450541514507619966974157624930628913997444804718442062746359146782496130203632937283806243440322655655444565172800434588157349672848494782633759516393995636474655839108094206241657564056946238090872412092000323022869201044453056056672556416196796233715408230536211775199586793179949571145771100948643732840211546383515249429066876751431306344431760704997751002059031997077409486583032582032837139257596127345984473631577712095044406479659397002120619448186392394327921311565638815224685516953500493192993182775010851751965181866086290289137767948032577361406040473435806974904301332888064062112063507109463003828485171619892298157212227537050682317776967196668554197157465327759314393630713776744782266748064812740427476832477165306829162360239985747371896405162376856412709567985122269857450061310588887630514749158731785535789162969279678316861479446660768811654316968436283867648720623064964871658711451391522760512890132429218908566110643507746483932572027797442398034001235003040783265716984756727001931063296643040113100159984040340436132165479700364279869793082698546899325108764868698046079058490712608119706921859090404775966021202431691689305607386254249108160244215090024325256720415903037474902282666859793476475305017082786625140752058895866986008702049794197980374682355710244276917160207170829734169972701635681956158526536784280427851095513729591279553462690496069874362304828756055294905435619875649585836179259317661632098379238069300369513728267831326043216535851061565816007021462546956363399088311388594593487530271442772269054217505456370609756421926241480007277002844839628287444895701181961360085870028953391746176435570168361945667230876415934175719362882863676246085611121702700945478254583306377442471386636586832105330250418554112436243615699685593219015766275537790792296140095788795512719076256566886459679812618016455946179195625053819961617480861648095098444718836552804500775211179815557035662126283819461552918572707728703170117611141999310723945926095048205357459891068820416875387287906099647190320612008332067985512088694736722959409832732803424359168035926710268645984365050574219333676263846181717411014258073151430502931338957350173432497934089558536900443736155728253944525043204086720998013757088063052524861294972163885492860085685940700892034795082178385625100228895340006785914867195920211393559842555237258245233234141315304972970668551238527339742684764355612584113691427751477992599035158582223981602748473627863016700034214914954807800691042873446216856748238374416765313196924450148954623428777121968591246280573667720763845619067465949124540652853119375518560641133955795547666463744468604621922137359617609608124145673157044280031183275308547987863493278505883979150964673653206941002605550824187874513100447852604067688622386855771253709527554907121085472460174664323134060237221485081404173046650882467221040009215081747157042336866150861970395237207732215295729028790815492689538732731890785869356164281685522061397453981688213384599380453686739004187001014593211135568555847211359472581679274091566803154969294689047986609343548003184906699257457105187922893135516396768548756726266385055746994817192673191280736654859699354482496533336510923034660747171071021132564518084611226369213861542512109068152160619522826468252514171895408404423783943788007361294745820739135180319948262356755910169007099366105063570700866006853678361406223136201903533248767624425571805531030203329574373475938547145065329067160414352270577667337236352111247455756227520062217996785532075918009142251414560668306701142028216391105744401522793890203471414482802098936300573208372041825170959398717364689142586946929347718426501514015947280771491984678231163470386272884460145206181318244511891539517690487141432836621960491853240511350838848035526964819768234671201789865330171526192482850385345719860910661456663180221950009696378528370236458017116969433528257074775860382440847494940342285560786040134728171363944296584766338183148078238796313059561864756963341296517818824083425387040195557062384971312930768792712935331000607506666255608474829201014162201674115219380212006255698389695803453524994966461480473649342037742428133467051002070851044677845595425714364556675150333223319952751243742981396550511915714329800912713700029777798042535728963013889591684979669090642195483978549393767317454747984859595429625251351529475735711221739962765808479665750267751783615284856354024316943026033699154686746396945396539919925715005462659940013071970132986526258972570218321123334518833894050842434936541629207446486041354564510647453250323706253500132822294447529384398124122336797535709840638096439596648674686108577350176224275978931609146615971431189300797896479317239624754634427628134643791764889981891126313008330712472660978002690634372499949426286461908243395512061300430289956977162075256876282017573751688430098626722928291047828240659176082917525116514965869914890332984980813050140323521188129823372525205704847204778155661036756783540356071087516925063732976694614741142713621667652764445869689216155202238322271852572141265931877751225812150577280332791510559451736061518119406336673817616157792136275113588532023260898276027876163068088228042692551618860790058174248162374440231147086484018523869049420770356159056492562504420597079684019407822578877052324773795397742072011892240692901756815834454307295839838895030169046179591837072321589924147511477181349567422942523679660253717621049848379771368007623552664242542510484927466456146526784952711404783661771469244101348032918305058451242222883276246106788272892253274336672181463163808428191292531057790150329605359529210069177171491882247090766701389839934032877868834974007574228328348004571546281052449526116972812684928746851273287718086305160379569131514027447167418935736046367088207699185118742131856519096413740752401243371409992256069377273914949605618116699585986903460603864620466575907617577069225700350066115592517619480523563037973571044703269466543452722191251830701107886507327187123029416703783928009845930068808178908890449324372179071664492703315584603678624272337630017548226859554136126845050031673741986757854324174907898453900733177388330640323511609954866664386572223631648753234936018641044817116940881646057963037135459451666343406414705418749408118434187044628711676648293094112849682814775181945233198549547476395616655906535592972547782025140652152358056008339517997248469572272707025102802729829079362457170736386774309364121084816299961161863915495253203083111780807764131831398371448966741394060348366978530168992060037693581596291221316481433597710719146210660823261741069865428505032509040438194016840394994974049233083586068103651601809736343617448702337761763562647684344951447891598680103559176963718256092765656402108458601476960158668098342391505866030068021316760884653685251848900327751796833469089428839151061805814869284608529794818787952729368927056668185031641133297216274206796656629661547238602718976885639123529723621171703291130348781435343297187031098554509112074715719650014398194789840316629260115862719957472906267872510942584147552418937380477281673716458760251368270610398906424787782273786096036732716691816764203494921323025425314266345380400030351329963995901563494224109286560446615862360964130677979974654686436843315359760952012197332527092968046559215694988919539873443870651660830566853169301476066293939512832330219396486833625163889180155176604237878552549742297772823631876157863237457990224360849639358040857224136847999829486287036024561294470907102026190198780699899483058888428659716297254695810435620207467079398872991305066110362327601488758806771824037459567861570226216749217026312421887395176053651246275411119711760938703862047550343706189737183134605833765155095315665426467548173324527525600197526180086339221464859696912192849138309785913678360366544719126837918250651769009418780682081839946214875734014177540614752761273548894126924677783050192923630993317842822421349145327220298192616871125190565665248533675429027158464425367593993742374761876276820853411197524992504755718391119380467964200265213151471047436687267202821894566104057573138634593352827658481108006845743787000067831884513953469505856601059687977949409208152777941792684035977123387435381606236432341244738648519568355984600440011629646238686770190015183449511479014385996584149038017832290482560740819801982429775028557676444718824814769766347754755243085077636383869149214208198305043259877225315333889425049914649471190455149089963858035872618956095815912315532293681215116417199165069328420350520232360985311313446047370096559541428641167283330154517022440490061961977031626670853770489456703730217752906816263490911765696937939755211356495235084734865739468416116481791396336823380708244291970888073944135649102684515506185690493317961659318278071483153433595763301456498846046210589238467492261652715550350782947820849714321984547198444924835034093755155671476715434890060791679140311884728319042015605726535997785813712322277988487204026404843816314861431768751019485489738731017219503210487994863915031826845959061701405394635086826472112131223120103882288202839524306458497981432756591475145587348789872777006823424530718285352452971860815383068789588882427709742142089684524603193027904476195570509096799915831200695288581048195337700008491376360466849070599151297043300909838711227852721752763146603057946786786644181927868806721810755882214851417398089641550878311570103098701896806829663511224288511341264445272473998456465169001873267202643816887919264905202013103628982849442002426227869714796047780016142446352639271982856460386517812820431791796653832844025656660974741468978597978188415961542926165929945868601375595438214859665810096389403344928343162086904581273933699117343162143662882192162401411842953388414236190089862896211364360782663863874042288012763590368181081316246826466055435315136921952932730572794747094419476200409978428547654874836606394002747052673205172738370629416784346692131754339103984906934983793045976690527101802919685860415432831231884277701756437658619917318146197906214300831491596608407593533339112275118947642552717662063576088866560175628283158186736216978221537957798514104786116525402151905085692452421027391565837975392720888223479130601126888146825280617386146923555074055500864130868931884292697646861033001384368513625308606822578112193331259406374190286800494418834874089998723793831148355376845508084378591903708711850871978099684150850033772245537564327493650619452192653553126689585242180174219699127763889218061758488315595589426489220476975098672165586906921191168075236495546390901165223993227589186442159609173309955529082869285636023403750751140159703515923806307916340427050165354331706511924079048874658101287186853444790458566669760641316956129780287971700582837414326870126380673420064826732378326112160397409735649338685381404584047311918467660838369766590501628648241900777077020538720594175092607675632213178420514044844367447038321216064739139760243205452052219683156789154412152279317562585343135139552330599308421244579358881134856738714620450964969471507768791201335761157288862652459997984628227139287630319519540204257002807313688624300169525663609447252167414873991308979119450463513099601419752997894975106257769548653049261651575112777455082503286626701214852630825305761387344405304937911382912149669542618997616512899890453335328723861784661140686063882431829706140367609272806040000086229962700972746119125913167175179715496043288083905709355065529147162195865606188902965930655054442060008714053953100003066823855599254866596468891801610651412113325544123507836833212643189978051397387467591713368692361500890413283019449915048613757347355913842225261047011329834334226443311953162280443706660714530398252511342869749525168923329332977872600026669414594844151768337322820946460917354036921244583039762127974175425187872381384252535078896634486461440403932351832157564161159506046414358299592312891624005638895417760887005493145841009182002706716884008938095423542140611352559129081619956406108296691388551439874510890570834729147309036686345288175598283839921083622970714066460152711331287950763707562989705441314035302177342642186197784072134080858799837114354421081305735418556985950684664420164339868392419966353465720695437118087126388232562809455658374178418483417327264682513037357233500681542345976233749151880479994907339205921988392995541558509106428770129987527347907696580119218236738094227037166932117718462960188924966840208472735301857158252052579108846335937023183999929348105728805490221646306447359674862849050257075950224309371627492488421113625296581320159964169057727512986034158079902863488765958799936785907769178835550615124454099825645017750772406141259091300832804264014827383290427863121769469826626347481580900449517268483871902005402861070462316372047389626335938618860387184450216752191254800946055064732479486766569431704093511209181916006638431106617452672870712362014979726294283154228779341722721382535430539284642896782576551175221893641184359052284851198063517946211233928929963151598506154229798105708564311446610960298630034059633217412982637081836725901684313563789569412015908874788368494714693318408861881588472363007603573228459060762816131597827434443888459974610145438564225868975758367036552910993524659740881835677678089845153629840836384704826438178552089160912684072865906946887743173216858034261692886045248584731452588592892219097807377971669893443703539792565641212808242616041477512026196992733629528715341656000259800618712635881875382817738161951659749536506296428110411656595887942775386405574124922382781958266128411097218017848738168230621721500198130198305738532586398822783468666030254301714976593278499739037963270368192868205356854409919129218464183006011023885175232693939814725294447209862316232063335473929923427390192785423910271948797069244983874083228444206783951068134209756306623931692619592028221817557620556865423583532394200184732927887458875831193051435676131250158264564855778135811048570407405035258155591605992835310347525855022889131595207656668144304140175627944191428841155299196522535530791933642690442168684945227463889885168941075842117636016396241177798513324402993309524988049175143328708505638615761145824787764604249733462102185309974744174236310967093387537182168374554139454742322608282533911216490873758839577140986784843493843147769322719105064311912312291594383631818597515947516778426627386356442145554372011449575056769144096909523583205049704096494532276290181790813365039497434334083227366204155439404506877442563617413267508826946039637780364368354783541191771366175285533231301588063069852812602421397172142438695598809814224959684265407266613570130765355526860357646956595925348728609064625235542700686438863613612553204486287801568525429147646516338626343438287214380569286709838825938536873098989036844905876181489933168062475295529434321623455236950865305831613622669229567111630385803003072592786850726738715526513476441811126253154159762724008503982527250140125934880581529515716184483634225861033463138684666484209653908917071090527656440705841765045952300012579132411656740961628043102132537580447222212031949677959780385202645984350105566027575797343426540949011324250946485312138573137687926770604155751746437494757786851063293271420615597712914864483433760700775625793606746356530493022164623717421348246761927684708713655352586880514271216926572019987664449325816817388103585961674680340037990272303441395724651089635152511229524035628206604919317372193258186471765183604189265594090045267104096476012298131303031201333420280924470133350606680556456483483223204027308146453308740930826374968158421360799266154944969875537598812984388295096408940867818674945356839548046296128762684502191028943647415375026636914631308085972509959276464129458188971852013657849418147695372370124859166765831164803667273791207615783239211147492898300315182878790120351525777730132489802230308012402526894414872914618104902090959064826544793296945980090225461785087588794056977157743808642702758558960667442939852758902982251055482604096195867947836222725237734977492729552781028102885524769716494664552304120476069217950709335890266070172639263322279797207146366524513010762694213605438175635759788784159863803601049377027213281949097516044391151617793846770222373626584602144177810215696724039409025286796952741756078993284708048531193853579079213390325791142252288540147910690449056680936970594137603762372167997197645810796435649101623019806156389310584857185146120694222557230346883430514829032022405659354574874475102232945917493116865331256629104799992046791069496467259616874494077470013958459863184304618028676848089902137619853483045317939341088191727046046283634315096944079065971794963211541466510511459522255015193538556540982467791262150404165621807837453626725225478162950424412912127239577778201292038935307599644583447860010263018422670040372532716981864866688866033478233886957150623420068356799370762565625066547408571820683982300266017749580310152160321479319675308970810010931854654145842686486117974162100548078083796006934675741776546048931246604374389341267979322200317485087949157984199383297232977955339129259986021768062200760900377344772081424910531955926968434589121542999837921221265873628483077145844765636462641970538288016577992485985692300671502801473214920351466394354878962331575361075995108415917678603923092601046666163922677885565877924503285653732201599655687137656230849184685370751944418252391999934926752390956426937903585413204835526486701769805391597138242069247822270177611151123499668699380798668769813594401492430983604682495872282203481364071953620798237605415486493694524062487120402386486664357634138963448794347230929145268127377048684964628622556131564436926012447935010720423629147923623486655174145225205262012733470440403101763209466573346708673287625643048791478688030181984740244675688820433159874202473038051858114544206452549149100831174680671663661592424325333241540821788931073591317522921797273659943451857037628204164746405090296162630402908631519287404658703440489601207829871202793959505457159473147031917395775196009169009127033092218046064737162242107969734463951572598963394882311693246487597924323744549624608178459960108533877373760739596391440006193873339314105331458555918437131866780353018966789982028775528965212368508276065985963302024454580265053210354035026586537656291089114789680829160585269318255724951460077172075070792734151685533569263162380384188956682239473055864338505049014347941307119406933014061498471253676145485748429012217725114438877720376619407666664474486392699024096344140330663179073478552037569511987242831437815261770135283470548045342912241616458427763987370305264191512895452349919360746663648359069908349198770144893633355962305945805749687340651968392082589055470896713155423203139631242162717057066087414889910597026280682987589336356637412546218729838588825699265894192528117481863907052769687290169299995306428476358381947016162117624819499859938910475123633266937146010398251429886767965476875995499905550307152438094069823566808718796632871957093119769299584437471567790366150354218056806041871130517118407483365845737583996520049289970977664361806405697687527677767747517740897368395179834831633722002478148922996386188055017441980176403148094516628771966592154256143215971281203797153792281967621041564450863177168887031901650057682304995635176701459078045292452178538506340468497761657809830594087213063281843894579765162996597711207117819520911374418948955715236091638563419477853905062758920408306492569421277991189401421264600161948914511922801291677145098001424395020131727786467675161111552966149701574762528887602772940407774329001540135174995837407452410335865597859032326192063095153112018870631551154048893433011164578791297779230579140907646996623473439999249339395710613926489119578409837279336806535387906462662454057640296489630744413060529280208812593468864701445595058227625631123599415064109034450330348249510477843384081587218082396405368895987147779800136550820679163615542283354373125833540328837353923479714899893265879319426075450077247857318410368099965422499099183863591512525690887766762994412929153932638483479155540040763578490108377811667562404222247098282338026606297758749348255306684490112853471362423883879408773857863551038347383808897429967523047733768263695885150474430842084569209990606266203366926398971901904738445501292043216809628790072641514335409556240565953791551082655689577604208810856601713260318525285762398166737957168607307113536062558218079668172889904219612941181316979875413980341738094682422297196848795998198923359020518580413761994790826704551165926684286623188346892871242729825034971480032225882969574453195007612871474840610715191247258489641898881095414243789254185601661417497963725773410278381285915299346450516208905375978878082360368859532178382938865131022264527704300412748793628276299348435129747547143811294850212594544500315816110913542671699663377418648438398296836874922570306989470611459236883451258816290782666433858078413205052542959473583482183323914919014310878275504841157062000009436449678618576896003704453539457414186253307099717371116841726954842115703213540257450750188839512145119477150110276405755784444114016840676849041938096632708268222915836454973302825717370156845235208765595406665705734661907415166158904526823714038400286516224077427999033929349527219765218455168094666883150227742054069210962830484806615243385387141367139654669340742277459420015961676577671430708887051407560424375053368706093375702857583188982301990452953159466185373165649749362180934465706564204026733761966934518707350868638266286007633170794968717490153940073282083907800887350309460975086214728506482265843151837803594676308369130493778447997021556934251986431912159203081899056040931265307193743778391377772848287810385896463434929788777136752015258935394608542932519701277679466286138159627673926084951326938092314113114820092351140123021194231508332981139382863078344697278422405396895390521907086696699744710885253324366374125430310918410377585138741398712806655963962043485671705834003481342125351934381625065682775982399432956266840308861542487616286178870068937590397520483779282897461077239375270503352769415376008259522556171511809885572857021684483471456283205533930927738834382015684786227098928121361607949256412781556687016782421328966933825470963635466369738457402065112727805289343744328202935946970750206833480637397710742979994730871409349124906837375517284200477406152286501810409389567689557216599459868883032692863284397505374434457147006455231980288662015735629696634900382194834888960135322207797570694210433984605848919297881815789855163686277860595060076250801913814769523086237151235162805708933346327844454683476685506828372099639908842552688263932272000350060665990823769546001349174003900273573955959083343569551562197272317452515151695105625537841231664089614601787806081725363956455838333712575652890951702795776187253381093181645443855880464479958560974470138180735204406717036857328867736388731663002879598188923585200381554606093801858772786599459963019626613532121145530737021212775794988150363595808124694904374243379139530458233075718269814669205995410983446065952241139201340536533911930297454665671161422197245964208273203324352260125549467518480170154831532553066621801920638830809996774001558361737661571524086677732527034458342231538569164449300102232683714656283904564497111192702018231217851301677503795925649109522365745257818028363459223749188553541036724149978183625060813891576256353792917128331880601288483466827409596089197106952370680849831981688935325888758549369797499194474904973165034743310135189882417516699433607356290206609270330835115226321045541573829232781076037463811987363272707021286858206296007165545670092131423159171653258784917202006949372141114268956915763336716811061929915423031563257764199281925574920861192827102695276634896482361775824644271464936440537222791281880838261753122758821420156940795087095408488190776728236673544254073254560089140378630554791491717285163804566666899006082572707668937976042369190088619429068051509854808378151166833106481964913050437282397489776380243982175667871056691257624507732053138876799913719151338524532432372714959426192732602404967230011058825847788786161539944668483615985134854725682310242904489720437839338935809039774582043857478939783188416298103273924259056675471619506314583185020469354995486132514300496469081887342515351404719892189914618826508488359380716810502311731158953140224079741958746538778424851708191721630045140892130244950296501186585230515360292574716685571186434094216329884097000448898267186422629190657874309928272933173382253124315512527100707439828276816123224505046817081065472440342051693507609992091629702269491567466807654312009230826308200636070026578840024370907714069948007516142364218500765521804561900118755606228342633729067953659638736172172149741737088438323628587930952271440779969104566276025691335490346692094238073534125524800757732390089911578002861152913240036988676829725367195798041722228074316623148672108598346850833559064826351781423786329126991672773916344022672883450478432448445685514190122499759888899383695729756043469672122954104092596386140325966989973598069971227646037349498349928658818145766585685972852708881850446689768655309665125360080889605492828812075368076305691200812172942073195767697141400176987506319852781063148855657154510815122672593900231250163896689195175935381258874708958242140615369379443875004302240754556217649043777662338484367946676139382156467451162450751614769807720786172455364039104831079506046331429981340149501908563250360810720651830352320999410957438737328906216223497503684794603914702697453996145330686548221945876825687686816988665883261971903617277295123073654218083540387773826364009648417623297947426899692783100821903022314983701708980402811826521015792034392061002608905794459381930146496054199030886694117894410888935357130810670504671559272469087498254296988880533363817009382897254494017873814926816432365495411794291036105241148967493529976156783879461186628883630680281824657840966134753681380969729175437011966878111112550652039514062835050748785372083409274512638161049922130134337280658546138956931643252559140137865800697405333005326513149373480792451001658985789457761169858272571543386966054498769184859335803266086199989851458057723394677055653475943203830488743673415308026322729100670328366828446594484186581163036420747513513444054792156135428252560392751249579352035538540294368987150086094563514815213440035529849695475426644503847012792236202244908961317342517840899189629341667556784629711531173984755092422082119807898091735412054283358364809349351193691201560280227557564558994875016221374256115774805893862233565304928003975689311218560250851196150958206659370578850525706273943521141697563080192060661723013487700978148243838976964873363851230804836650287971270078492340668431584400315755627557685493807220487774304722849213185580141552974335791307545071072770160391704837101329914606679389065232420445887044247087484853076733833468920114483758970409834651562083762596227341421061270757002246650271611543494965059651155847836615300882772756313905884849326471217250649320587070578743514492077084509915441276418979958490625309832987405620498245893084973012122217423639312613487141640150757842296049650862952443822891602868642833721845655326186054214354440316047748385538501144174347937565910692496599379294054274557459400492899881612202118143174416565836217132625700999335291489302449814702350370642557904387814596317386847148679301788082718029277098950945093280612146872864755844438845757995376989367015468622756980088626602394354107794811882204898534199017566385537222887229627186610948171494145435242161413326267219738224710752347884998214727519282637883974386068960227860252203128012343686587371889625481562874737702186145152133599512656613979221361794059176913721237949593104854660429425691787159202944770611579365725690822018499142430828795007352889806511952582817625249934618340259821436626263276450320517936978534130756869348554238905049483509481564809932957662790904607357591649492477997027309782893719115240361488271738031290055691084504388838457434778495841149285050947087358087910781917733735540905284109399423126015287724632843763080259308621472445492120347433395286960983829435218192778566005817499490682176544424077170828933880018714196801154911053674611619291641813810293882849689392768299020420740922326017827988221280686403152332293552585274997823864509196353471723126593909757061752053798277529290017534750111231793508324971010684199524835506586997433404975368424809930385870771286143540498134817610446809274015158545123958199689533921352486399010805636018244426100390095659590625242217408414963922835742337622020100202598463692053185383217764230640585914409957097150931499822340243114834601215706170599128562737954491699242308277372629677162606087332233300289874619905358607115050632985530470831506496265491689807102249580831839255789196024998484043661507400938603315912108320099766356515798702806991642607789674970802773569130674728212507694706469126581244954531579799490438311306632069603101743534991105862181135393088409780325354516479739895925472471374413254731321884663219249501563155780850523934415932363282738619186953675197261930255223208678495490065198896654450316060945057370918028192746128938836845793956053380903133817724014603914689408065181149693481773411812234328205747241287685321142531670188039275262064278412680784905744620108599664402955337852429839242270004836488726006159646888033595571576250055280854725459399985544441288059298742740717029069051227072375482934264398336289759770208712678455367988523692720356887562275884165263205187543869725091761265895618801165461602278874021357208626736224153575583334920029156088050168841090822787106263982226888058496666803928157458934946756340700115258333618674022159915636955519667867022089908035767071945203600982994309516911109138706972685327786998783036201672372134416839631631671219480797440888722306402112210966873041502141897397293908853999386791227983673775032063041637861814834985620317735829575132681467581654248019260662148346387839146038601700128838432545478452281240531565640855183522325886491691368320365290657479007820311002467071909726568046605853325358870473212141140603289972218153966877665534621962249085954529651594719622917478994562783895483680332867015460762880378230813082453570762774305752605666641088905587534824492201281281131707616467475457225230019322476677746505304675483296837212486705142326198838511431444278741180424066712560299156659230913977803102707683137846448715341704127187136196604492421580462726654131516702089350467885799497478238789963954394727064732021261468946391052823501212856728762630934150461687943080241989399658549031856422901830474908680209084457305101781029745509993576693689098128955966964758988739318620968699526426503092855755560344859181154803745858428302792712093000725922979581022556488312185403167729045156747845586033815900291262328448135586790202568184113499028437151500394900534640150394995314912656126961750570220024796324217079064451019003987899365887847919509010444479457976814759725604342104379854429437794777340548594100510906514104179692517308310723284343935625663313862316869471294567842118144126687264821235586525064501404202008954984548619846009341029789034418593407531691161075187934285661662210104907578472706975136719842945414696883227046718713688146565650851940372439731634071360820259466401756288191568591440533124798719372406909792769598759897739616821757454254080743322604676031713316880563194485220143897533546273423176171126750665204622618958411395883973400986857752460783273780958816236684754237209872428528524469400039626104499669110494134887515139153083509923577176783855040665477313251974976077337822927286362066254912303754800302282835932139486835011828630704337635246648038018284194273275424580310437192528089964090916511440004237438070015837368052139557581312560805362486267147232575032681687941298839078852493889403920568606987846090507106304116631151095455806625501356558862667522027326491036878078301825098476370554829134162557460707410300301822939422637082295395402536544051823562836959265327043301867489806613801938575091310391438546200973866614628024925291744118388003748169407946578885792548815018783940213284140582517950305346261482952443573911614357322060542995613463175207288060496008060651966185266286533405068901260912314899175646912547552602618356854731461294488683958137519566421670767258256831634400650221180151276597133138919954516365013447869530177869464992529820617104312212934382267005998237094745612672898944041442803123479356631371767649020003018365779827687358727975583207761946874133420617699981776144112760942908585402096783591267203954732143779317177992243120096118863846595350760906745157863425052381659036412795802042444912735393914987991975696991641146501305208945144296476746622671150017570537557955147585998130783074989929653791460432075723073447284330491651208776859361054493358137944391103268340751963517301434172878243502885507038108499410514925303019749748762955434775787193424744501135907155266267641523301338495474699967464723811411745743856650540514587171834205924886747144446905030697679903932571787402607781322684794617627732482724862873474528643723765896016969453403816043931000742739625262609811707691293230922447709806333153373319638918120346549659913898403519618150494240015648797552736006614885605993360271757875277117963577004847010093801983911128569739002683294868601290547468484927644545569706220372505202286229381297459258342330004910136093738979011965164729947496856134032417053255200245612666655909846035304873921439337858064512505654870438953288496632951799249547805735096258405740339431336832849406840559963953445805652728992720219621124073512716948825596097320839721767002278664086979700404083712401260318291419794147115541506146911385579510732492134690020751249743752203418206354794490382457797803260228705785849639289694036108574252566802661113737171632928761272144944526142476671738039961338512589664163776614357897719580353573031084983895218127098391824468446446397525036616197938354319639114768638541551479917913125905991574609421275553299722667557254627242491094679758220572624030440752494977931687174870820599579866515352058486146440858027031342004937801143675218390102301561349619409404162091088151435578190848311116285883939827395703680375808355058405206804842010226800114306347663595811125009707080310557398224837226861462524000291830198231666533012868237607334444257423484571857860745549264692383522157364563156502280386998325540442497172141065393209365212728376125960938297863251746525391026620122840504960124005576620432266147485334759339548960395511668273875229261437228005666498754815212202200408162613220041749645521355870876857202195043875993098892289163802824816477936602777754357848205672840925593272917483968218974546044457473440835157882342562690591994696739999022050954762264327976379385544371947528452683463208126369280846920959078247053153244687632579162328747628820364035824207827021242272730838210513081007657456244903980941691479141360549324272088443077563904604157301888413757456109705776901216606970552277973121381429403208171781151828563622196103159681744842007716415334443666647719802051394524436005364810723382014064538508145593198262346657826652745074117796512279534392018751768585407963521657326594832055738324347067854998484581192058424086624428584526111926962941137566879448123160971014997432615688493507405402841057734093555422768517576393390888970053742950243085187138175050011581766919822610946958995198280982429887392788536415931529442662453010108567579132470078051090789794353073671465046046546022423091356067291187551784255861990578373395747617274253236717769720597534080636078573520156522288919781457486884094262597377744015744294017180531749624570109038891752567861162910433639506372390542103725341038170436788389577486462804143252632052634038700701552899314476842254502305018165276707348948713266275859959455334753654609023921989172464469906372176233137652379077408363425962222137976640824320353403151790884585208038096609576456358991601138944079626796138360615026154246274475333442099107905568488534508212034500098644087999022644511520783977334261630607738979592432991012929618520589303275343854855611930925726538367476359062297785855563826906273093874692187129514764126710903473591546286710051431995640711121128042204390640559835483496251947664001790047943846657253217161762831457789713941272283475995618967676951378923652024399615817590271478019503830084739384987529352711282689154356861320554024820344256074907712126086440127115140405092591277525149705093745694580422622213323257436886365887652025775983916162398516557520231210138039060113077111439287691968054505552527105103793706701404417255510180042384270918966300749044143809020838854400787703390904756227695580187181721258064660036622658596586201604216469357360323085834001499355484114935918132699812473735966212048559583391905287380502575913657322756743265272948643397200542789504772588872948509970701526170733547026483404872905240244431175177559401914787926225951577097378131415833906406188653810363267012802374269612854371085491308844452920419675054656868972056617515457670252519947270798997788955404993835929583052560684467738949546883567130616444787069294082534238708139186871076561445161667675580840687272225595545816301913298247053000788170807226702633187551764413740427342847319675021149513540126056484896817808887636522941072601894114444725445660710218980693292768105463484234731556428158417931962195772468249017496299970170454805378615780258655909722862777814032278584201936199538543941209313536948536020452352969515905481928958487885720425536933351294387192966695190897440578343938129606643535347486269154087734164222585897534974225394921871486479249739506284331595789886044327601088195590463872063059866288926531998794700780950353664872699235833064866683396661709157830386057403259739166036384835671945937503001717712734816221345342387755032789380234031662706539664714634819824314220293319375167749251802326397414623957709831265873441473090445609796331055261894094812319020868059287890769606562456113054828255548485455336640490600104308859567522463743869784489437262742093803251674572948914825969791622938618902982233002751108840041037568854361207544640690739101170966378645972637394166420398351825621551401124962550097297903012218571951038492969900603843295867627728244863362100439019170649157909923032665062620815648514251891364764548829117789817853958749965541689941697165691543169756142366060127461844935637525375568599855858973884066620316650680459908997100798755853079105462532784971002464518799062721730817799540216452057063155496739822844515634591759669914601645360767000333712852699318717655175749647961320037012425780309250144778216718421447523286682121280939885462667136696752476770653132623470954796525242772910095902308983924850546710067068671283326249880144742963755366819313529262343777754856815831537276469270011838817840908618699906270883018433631079254141975999647158412532277380631163402069683605400123249704343119424846751653441238220193127245066410816421036263701717620209657008594267371558914264764447231036131700002537032168867345778929307726067058207688442130524132817678419851394026403409246358533992299263749468261808099615931131119402266928547280580195587967449347712777831721112266973184710291062925239731488094133066357461805129459733020125268165362726217078542633469381278283336178925207186637171775597143476890400731636762108117884290385889765569256485663669843523190608350961745232122747756757155629291479242509906013742435860888470065559476785268648054202907783598062840803853219641316397159680041982291355624096094134369751848061242818163346750568292696126438472446170827325470966922457708103256035578978518901128397433307824525695423165833820409329265482148385962440861735465697773012576971710825357688232486161377125223693951697664850843918547851063215350832544693950921693902000437908119514782732858118657346976703994370279914499230730393855011718011884221667072791062081260636974018195346763817526534365733821583666569863192003372496288559280884400285927535629569071788801261410402437495212529048226961876781934762803987985916502966422869413900556763345146351618200108053256935864226375741348297022591373591438133533799165052007771077814657977736730503941174438133432787167327774407930774946929563882848728408556689860803732607184896408054484838507647186431515864898053326316698544949310911652129471222981266993041464744847344690742448192700348845079232721379623688143208141446391711043395722063895322188846999363504445443266692158770494430315366771704990006456020340940945307777007036873521652143142538292099031624136030341150338865744660967261385455962161852591204601431014049244347735455330474746197724146325591721020476688440774991396986171924382179515894475205424124704364412605165708076410877877362988081044733329697374930731714653727498749530108581305440608745976347360620820431657623366739292253364359008254885167633060114377157059567080538346762805016165680413704985760947533102564564489886317817184471798013635086559959679935196023992831047969381368259310177942258597336486604051920629184329021395394391534862025617636247745955067568451310582206742854851518505449658477634134567734240027559152121712758095691313191815992839966523005843509784045336041222474326486417874053100631683934894214254676703581031367650817965510754036977432713598594126322198548770449917752620558717486585244251709473637272002930236315690383501770343706264557049615418843901600162945448392694245529173878217723725025713213423559210170170854582312043832633382304245164393108075982751386589583557520004256767598426294409815291897114674766613494110018495332601815193084104614001977269906350937864500248697212755711210496472339614261616302395746090365365138013342317484520849468065689915720161538572180763073258205992693841210838469410012830362593576781293818528140776373117734766342146332111311257270480169152440986988334968965052177725187621005031269552385422680420013630617796443506268466592466351968858076722697319836820992394702720985716453341773430182542469704997716215420125191897996527062994277072614587133289618503662818783842300804854528173854318714655568184557208244664157536232940563360530428783800537993807763913070945279064800634793568655732377580538698665469386804186813215090406816563103876721467258006666435656467495224848602226884834997274601896821828468920951027858433660046706419783612112451372240443849647743449544298945695861336464320211722021635898435111821082627717509049990093512500521233694533253212769267248709764368758860436077886066037879612860407289995089084622181067717796604685085118042794390207260976695826981274929375240834385555425253583480350920064594951806763699202052218185207404183065257377764488011477382718144070758936373969190950950546966637890391063613198498826397812810407294606865074085110002257116934243742743871401772113684649641087577038549087835380607724596484905432340485516096677822683737722988299713788468564385575336401412683371826607621406883137776492030769819690239097063946758827016173322266378965774920701683793305756308502647542411195516048437325941508660684033430569821737174380362406576428005388527103160946540979886708469042108104626622916104785968438793407441464053722213223779847829654515910321515462786199973797027668996147429420691888524623192939124849089348199190531360544336020721665574397354362525990785385516169009736886906986645311475169246712043963557487107174402988288402450683948509427928873459888195498185534818103897120573527106359710257442848617867746360654941933875753323320532787793782328971284050154475003728351053180847850578978684577746430558939675769049136504525074801807550109304465822489884660576749586829423271786028667078735034553801962903483769967347899617280753270308009649700887131177469706074922489618551720775354686916928016609099839790930558453857557757744896589216539135010324918775710241718988763353337178200887387861962542271091079328940008694884181237848595748565333881962890107458474441847748487566235226670455163330893708700177356722701726990135725019416169084561676824278885613473390636352615685164066870037355559533108635404882950692640503735550023013757891044202758396286522154004356269063718142369136366838594352567860020936938543510338814038515430775934019983335983062368220052842701707849487093180580831731098388384786566764307864724449697318153939151016055955353605352408778113797317591951404966919029504262489544282590500328477378302902561743912029543934180047306116466185014414089353679911469994075152184965691197696236803082126756587522127357380712336681714937779194907948026402383251510768910528178121064942048590465603944350341339442040577790272792258472066094996950267281170820850508682982690397784534106394283048118441761803134388717284757229819828131375812076337564648677937569183285480546088411094084533690693921105727813466407397199476543395011555770336378199009701585137629098015840123422631431177131798580908672598456594318179420101765813702355943238405271395015592790235750475794118945320124203382922872655425305453060516340212705075423972890582910927142208581300041303976591525305014091718184418557208342055467869855446482634039832027954237379241824701585139990886749403720381587455752637522544838994660139628373328952357400130862845227038178482344154374812858522330271412811505177945116504172254447603142507022135470966749726803823304818774708945151981790862067886315827817255567546114848501124418747800637517534116766972374714565195183169912166948006509338162490999466231019977661622845343479921734698269869636937197203120179962782275911471595364130232133334912327411512060118015023595458056799139463498552627190808421453751549840522319675951398283337256648756283307384806214277291715684231489893835925350720876174455593141169421551325382881757219645703323517732160525090611562048990765619071754722350337470420128501670841066884086585005868499915087379900393817002549677876183072630054226581692876864364517330065576281719449683618032996273518141424857019843006889342580434181096575483897045434006521886694292560591187844404795038937969465830951453442764699434445863872957444055203130667652481441358554154353553302193505969429159823970367375156060475599323675318566717465966882340206034101384812086113184827148868297205868653260423302885701293762383694353731516964526030464906209404416247489261661059381147212204186935238692758028418034781975803285676481409268890348708180200630279115674637009401115371494445858908912711456556475671511864181105589728081763977319178257528068558782028414671548766351752041285241686213488824137446676086362789064059247922903683309601346925161956264363805832289007652682474741094602580357747242999429578593330585944950846214303112211096378129057266549667937209857090746033466843282502295895459665881487141882258833928259437351183549621578692354667741801583779929967133411140981021816234821091047657247683952607266878089496418736419622226784654034137979525613768339719706119827207435016115271972696604539118966287950685693481281664251303889593466391515998992516654498413428444714322019076047794046372393980170442476069342804579551542216368504663192482100827528449181340209906803678721974436476925294358993090582039518961401024795884725720326394796006886069799382235076297085224328548925599354747922084536296121495518907827906479886331342785447072439072453263329513442030638115081722809439318409259764260550842130606414906969642312881582494284199224810016423584659596733812358469262582612069654741614889820585748653519712382043736182899008428471594694691882360916944398280671709614698318529645624429862127847618915284591296784701336325684666562376428624317650499407887425240529863738212557675370603485295498813780006063976882571686440876591257758824185712541286002853682843727457646854730917044740547980789521963113512638706933592762981020516123082222198654838771655947001422910443848378119450805815304555539031840389662156572628635397697434510811937858619753365391280281906912235369543948457324649675190070169144416683379354849165888381371008267658192940528737097241515178797325501924243085563355547265587116920163328779417086668459481910330426944963307304401706480656416531494242262729693949178690642161545802684605955332438650634955238653704471963383835607191690834020672101999072856145862731258584875305149931883724193542425655504444704910484233780762867265008355523339981408795250526945350670461590719461457323739387349655733142205643310353157198374651384693845089316222923290793305333334828598887223223094931088768387849400815324684729264906726862210775254314409428406745678686786283741496501789356257248003533273874104087573557307315487367645209851637227763716789429367037306455222326852508410618345385009988425583495663781386097652135623314767676144551794689801097991679782228621549917083346137114983153917619413513488071913286886322051221512001805942730003899507257318319189540127969628741760063228698494826980793220154978428322547619807639601877092340925640542447341820754353131878088537650953572457747168060654940524742878736236221171508338247730220967096206060067958083036620472751381716498582849856398352224969723227720055784865544957077650491924426389742188999878710893975308181092729842393848655036669408594574764573735672684446917553337395024473067393386832946409004638215234950277348465529346864768073223170062597902524559170644067381272139514855921534942741640142641452128512029248584992754408997821626866285106393852338153738600645986051869916015656551924159012271944201173795786362708543626069831670223285550073908498459233709550928185706211707105494764853717358553977945488930342432961449715151032709181058176058065959182674506938578276980527522598066957988120637751760396744320267818224729217615266040295570296437277037032688005470340131873665323795397396280392371311727234273294267633599502268709654067878725479546618520784807984452765334941612976304958030103075228085664929197215155585243078012703298456688916079039393588158784142074150171481511932166898759155625041119641617511140518241333707837422162015805502325647682409624160699269143460251021966697473360749293782469209259630635492060484883895140225679995004389341771635657106663872054166401982106036847301880248365441998914410200011928553163371852354419213588679262638302475427092005275190174308991284944622025431810353585600097016160642178710554543484058266411131994215669625555731453238394896726549765964582343300885481601436770106067093255933028696679831122445210052903857349395895383136270740431265716208991091303513809083817155842359102166861556049109577773845134162825151250194235278036985199360527858528294545078747972757196757463480878527379271248669896407839348277670315050228882787958471235974306693682631565904881943342492093914752446107535524544810731971878712861090496302581170290530598846537449805155013925420802372221227580537056798362934389842824203682625673809187947245016766648022952404332675082809091625343961413686301016733690659409992272507149158594093529355141079472206664418571541606588732184256928582118852326296106775701088654550776993513740593039048679726423298671479464601765986555711355702306166154612478709021355544181888069588071394175195404902782880407800261301367692194890345249673947184061074686183759500479519573214724957215260310513058471770107118591320908114018217973662912150222360075114261473599920872876587869169549227331136327809519988966414245380115151521790942949970450543933979180390916238304293005454637135613181382552383590472391160355183334319227112329018935296064962721140886020609236231535618259851619427991654021630431488065576333063392232519382185101806609967121640498425759205565889804733905316993054298407578636798598948148193922680430911316955876210433374203692577233829616488228494817093020315964912658176502877728270769380855949982146203650833605825892901260930003991219283108335627095453132011572483116170522217859090351339953563506810809337965027074163048268440672492293207332358368212640879673226866006883805251614313397621047278207361806697762810139948698213767225127673400148440836119757840280805233708958521827982751678667422349564575813723586280656408032520733233828528884031377826289119389952830827530939254554454034546450894404687602699739970281003031260698928823986365114052688978325490181894538787889880663837636816369128765306702962921407935074179346516239548972083646372538713948381280333951470788365345573883641440227787494481851642226497378125158645477679341812062269528782550121421895185424436452671839841663952660881665775829196958394301585894757966866976451171852564019405771102984211746677169722233942263039658371814450125124222316398086271447090425045097494262567001179396275396340063056193449281824663984155479092022474601274835639707841532916669234039061967072141362415823869342758129061633420010367802197007390452861090364634886471412280120520538976018857762178337037267745628395291807875675145383972809273378422905868856769629035106936967619233697266894556614434305682570824271035905907321968368015688371155810534162710514059892398844968108367454589989193802741225033329335759332024381998921569281614907787790126019963232485219528678264024287690751812609214991631530297676397336683966301292419759703837137736476036652053863324143906014370194405385612709213231458009535999295118505711444478002337192158873138983346730954968068444150123198248217452397614862610738149323032972620677163133433258697776390234318859514823375629838549870620246825843028826301749524649429720714406576605721023647051025086867225562301423419316626794953359566874228422061612802190436527333617882845094069136798702453419402689415439364169118655424729247181568958457587623551964225064891822007985792214764108616087845242252301073259637925000791819217894880464584875035556925661505563699394330228000585459129820416612650883475493807627901635562681202062500982627369791783299538212870169553502563931062250308210968387176628336231806641429750618559711169863156199866221878857863635976980649499122649842363176672672997689870473755773320010036538302469718018335972802974727460788515051596790260998978773165294506402075166883411788800889663706355510401518427103275845499266786626888395051976724486431978724040727913142527175459770834099454546699061460898603684979166811948358285501621287048293701832420356145426837354846543024336358838168896092721707453985485907036045332711606858921868301216299573540308407134731004832634293985219828736529220738981326368152873077756484274735705358231632124405005660127017234631562479450186226539528319771895830509590102707485574956667091714973719812904065925679251068240708516750787604032431907794654613424513846139464236955606421203064564372322721875847493926518287267536031083215949992199986297619377969313435018074162406240618456109217468859082814371346996414515707891860312925899037173304195784412529849447056259487313768772609019726550366149642070147310276989332255297189238192208598496341833392998344186050521594674293695356494491615638411079141816743371974064294307036204656003642404269022456131430225425031754930988139528130716459388732329932236133348396719107826636005845048506812463035984810909874430588776093660067957814548124432347165931424189065600890443669517643860203494895135923685420216509948719258143384858858984495690252699200334131731760851603681739518113094436638544645710589834298064192858023118340766169698175321233964443713054642061824800763193880951533592053776196584748178553845626194893713272313669890703534898346334238409510323514718676415519363109393675975049229126033267978717553110543540151834686529790026518887750055024135373603108482535178352885859462825097705121116901495849869635081764809973893880713397188455068723799414796570071702319534181637563775977571860887090783669544121031152463037048048473005974477492039152286874333150498227781613001039413908714936752229139241299173477531599292219788739872084189810781088991617767025553552726212621014440075806614272580863463061882493060138100772530389840295855901438373422796483298235489855942988495013431337917776788161164730066008106819860280933930601920162282966554673077638920625322857480791921923849363844980482821914280739381173804059126249738162007080135404037430711432860830141007195032072312561171346260188415149724627630843800875024774173254490470474192581815558443555730291396270778629555046903096683834672824715983321514549429040540785229076163866383033460889099884605303179857379114306258545724040743977657023551152707464692701820424532419693453182226683305190439721037950056878493896746727845501320310864431263711669821735971593082958171137235006532370007186401870062362296527225325082551606786827794773720720931471718730362099523261430582451605438120674030784275729626778812863528602628856843025572604582371336736081104232654237350537745895392965435189364537141259908906420438586337960021788667182792607142649949796036968096201113416412223223845899561625983762842053253641040308798108965021553847295611402268788093969350528838211896050572134647398999961502803222141911439046216807023409918617087278032085633356771861171532770445761955671486661017442064273094379779917567507205258463065816136458652800475731036935343734425290761932849267631152204104245442673773984118065708738375777991160124708454002288068019496420182873983875508705771370259520485487776479319485343885483289057212434003811267521047710502237148814704376801131831809214621213990804708250350952209256258289467413772201756976800580778493588739880895921624975416395893769847744314706043102435182839440998298714021835282631471562377792265052342197665233436348510151017168068591775110226101582746592302737751712037304377304734854062683892776449213375417685473457863224127756866538522696893334984268246692052538025713699940090966293073626483556114253142190005800376291876190833725452594169583973757266508247374237279545720887992952181063269663237931925819553990190031242825081316375792418984486860957695869157153710722793069925468665681095624227345760071020587314092486548888724632746577404188410957481780191498923025972237885884129447269293913979686835051352619695431357444029406107687288845380243885834031962090723571243860407557887563933393465746590329429155920729925100136509452481646450670495043020116840043385034158387458778416086308615547349264808865898788527183692168313241110365149044492157602518070862073588470311734751993178553559730033482346746011807428941451234136520915156746637122295431484687230146132559603556017811607383267523337985511346231902308276973756047887923153497661737958073420242975439804839406959268534162771082038965810973667207347795540773239658226851327377727480678584204872588919308219910474281971983630284343905205303888596552436526142654887210117638038682942847659172269745860789261703708816142627899933415110758606236149908724857271696877907102434385243628672645279306261572163898292824951715829994177332498816983359112490772814397211894009619843191244690961556377677828197986097076890946850413679325094082182434070866492295619842526178935666518165097031064127959994435773623527331076707243497760458352370985719837558708284109410103773883107994771226012184119998860977957066157823684290849910372408795559317494690456264806361596341458917392694232446626900550932920716317498862298450260578259292546298057909774511471629892651966372004463946144149461978946151591209973785139311077882986407111785874317275104912130157349861279940609362803167213150798449894549946756312573998353585607205436911863957307163946929798767154272776630104998456340794999434782514061021437626439176212681563679577956432038061351500511046315664889709778797289837372380571076977845808472315081422351908923322711747660085208573325886299456016142060419677984246079239852208972269655546897509676413726615679214788164311801971693464448430253936064117329079394137818640433074530374606467646467483123599360785988873019931949085199698214945155092204344213726788062970213750574914104703629478187865120066135496115130060326662852657618793699187082661745046898759337961284198755813241751400511376617098986486694607959640896630000635288382358268208542965378136296688127837766929513353342477804314304408626800162307543961295586291434505896096860647633690826355238169887249274351792465466509044780460656573846668322251035814806857147234536971369503717419653328884548411561913514777571721878087373658670279110018890925741654808974443255341642808649035166860663409765182022868615198256923034904364029182481816688684682864315051733627239861841176451898903656131507239577181012791224221515230547326819484397698968889592953205135628251741219170969220012522364259479744319445680087542291672764916075278234142850610735506592374704395927327836531127904482347547886932829212441397200151107293991315346535605228464636672856266685596715669828227499506199560587007268289068473848810723913894696165741851856414035367087799741854935631849998342554434600141927291423891517732914611934435557695509538095470649645648721288611550402134893546459461809646950797281715123155061685156656702173515120812516291742245212354931804137432221368402965459412169009877086161166148160713191595752986425733239820119597317350636254116825486437908843723329632789589531623286649482234566893578394923021368571119414003883330395818239731579670222430618959647031804143355547288203295844099103384213170736425893613262570198334046459431360576324829597077648624208351686092652313903990001926674326829110469251298808159923001639892195523730113285169794848959778964929506197916786989506432211035465637288123736532848997591853141195682119819137173838106976426094956795391166150072071546328594176530179706091603674567581343733558398708597520139156556206722479368230175499678356820529261758695449505486048608364260806293686149831615167089802807813417940971480932829013867218953182037825383837513362061109458741568545108218867806480610313468447039480452970809502874849770680312324711868478520792944203002847446774708362818370766993237422504394532944271278111328342971217181792146953101202436860525696289511497584304249910098695556304724462669012416359031919277744753263909758758780731034637987470597423622903037000382863144169918023854550240568031553820351706301580340145731734552003544255791528547342605204560657107810251860669375244179798660705535048758345116333479091062913369618197044947620323683252448129031919490302923249596919856238009882964722638671948929428734894400245741479090297028262789574464111605993304284087474165522415745454918738671774569355995031429719377138714109163159973973213019080823768963874382926714771681558812091011061045905517338238813286715076150763298642696472582282603892666381263969685340078990205222459039312267392463955005297384225019248258137035849775971299551443584961299495245449600161492157757031860769942106787295956688538122588620141318277453548904145738585895492533592332173659674170207302537730702987600512607911734570904743539296622748834489665221585653179339891965759802832098715228768543440238803929508587645106748151028842147024369483443041988418701086473340018758828864715772627910346615856947370172676374147695307570036042629732893985311566412114302040320042066791320711284083381150155632784275692765217575864435477172835401667376189287441406440557271827417104493240176990922910228286367952603305549807085718299173075704798624438193307383407047976346289362049361160839012430853636325406480246870982385823487818469499501906389626064450906856539492936397728358857813404047105910397904843530459142451018084649969439452304421441617660513753049980347665258057327869790256483119045828657122783704902571898664360536261642566392971785522089251381320244242119197141718032172449074369698860880269425449668960261740504254598367514289421403350959402132735259845610455001588729291610046301468346784476935705562842589273354843222466454669017271428252522169640421419832640972164465389273596692572092717250844262048650867133224034669271872623255535895480528802258162360681839871484971896891736402049520169216888004132546612476030317231713799897733484565866909923744868890877696132133252835547105115954531143936878673563802552287073475444409775894733866745937881542982236105496032393263377382814267744953750418766170781786125859428636977677738889470595882087070384947534129261904332148699546675834506474092115211470727469711372542220726634088939372818444639410862216475541536715259232759449780084629949119285314225632646441734590800552560505208895260746640097665178540087363008001496933332415456863922070255170780032359164976336218224543354352673509777569415123018454880416870559501277813764562868443069588001136891540651299627879949274019771829639980114273701250823096567082156705980889402346603679721741305916769810639491101649524644014195470741444799897071178669725145490801646057647363316030318450894102125218772000344056933345189289350666636720056882161750197376078031919505114006058740673166783538190597033803849122530797265467165105597711831900553316071093705566449201329993241288392414439704741108861963625821274644310092370160434181619492205312264067303343823563511650914901320328580703285950177134958393045476107877857461065689322205035878205289590937963915867607832508567995666839918646367331014668270508919391183367756352225833394433590807850871830975017143054231394763992541154825534857509672316094576538231737465552936660953690345099298587346109250623513853824984883112280916234327096796817169526103822113921116084176915898567598579216813180975023026222551761610509292522900934563196616225939637695549303792679940626873086162956309647743442838355604870546267324435689567274621207012461268253442789575428233839341568114989299660148778720688921139562358339040562969379136908707319345945956085685260005269740750271648488101076075134745173917463401267015345693386148933432675534924259637286086882874497671453779924547362481298590343014934125779284788840537719572963265550284321117713443663499296958505647202489089881291083059109928076452430111395131773339124736847900622837618759547405929173858149512627676262460725435260099773389803826939014113550693735590442926748097813225374672933355061359699998236694637451434803836064768059950182230125562937295601693366480515985698349387299126105096025590445364765950358719465011555206142644639444701566449071239445433530451911101262008432338357199386341929497905312999610456585677541738197397139590036774868660704878565464984459122079974862944212335183710109806756610781434463017821401111387893421933171534069620116256633653123675143222587015263707575029048198475928611913442413104248641102244563229471092232478220767891870055229155335188988136439993838379122826621701962879745431940786266937530050617718301281941861335639776514199252195378886345518012676863213733426655300049298006057752616521151719871082875466101623424368038156710573230057653496518528657666873939639131345569830374117748174268887523021795589540661639986143113457316507148943662414366519546367180912562837011398465845560547171912712966235576222386035562998844748033831660677858889478329286227126629711461744790186790506138309568174367510172056885710168921858963735606954875226721120190354419380691527020073081523803620973313856882659024204280879667031936188007006077552281112754338557777227108203946904022629353999164591539376023139867282838739410934835603873766701243691713533960831420427582174058033165678960712991115220486920503202549713475002368606351691412557176901547134911136879293681231515857887527804789177693790670111439422528556426507737207994162321657655225070968815071549753964978165413337488483634883946851552184819891511808808949696043723247245143292996720066329831425710033545664958333143622415882396734956220131284594923082815994944540766437162223922097489427848177353815233084500200225030552687513309870728625335796484393447457904831156722382172478230393597712258040854293864153806701721169442022255141216001833636055557061945691008178848642987939513398843971080647020507741699589580021194900202887614246682304237566426256740468989877642887741327500806986534715676644015290579714731909412893054425297706791794785559935676871574196529810402033400765827006856105497967921392401959459309027179650845847927003865715040378196963412523303524668750811163415906672320276984815207851818027421037133099519611384872567934856848080089809589300315904575536688601443009722262519403921201494035155780258315499531340026897894616168465329582641479080372877104255475333167572507346276274436442558986685897816182164985164880379799392643510313452993224828125478770462138441294140996585586408080422173579488469735251502470683629386686705524528759126314075501682427327710122598793258583839216548265668963420368299006708541946179675040571656711061175136730665372601096516381068444850685610866075998931513974506856736664233790425173520082439530833966118843508796409178316529555659845765793258769567529178759570726054313692362522375863874303083698053822956051280716912325867565776026369821806594100613056424178899622420127764295057999689949206427347814026190300556453866708436427362857810807124388711224504890010455666623183133004141062951582881610049113525861005370305795836420166291695331534816934849282278264357079994993478545146300328953657215409045664019284251989667767797367716468353491537022436220177328090681835073013314312071213997789130207198565538985652904476122123657485889833310127307661700323658816466853129148247219600594331873389530357239261200722782685212062781805444573543769509699542529940438804665231479965918792330339395241041249966854603598908566749425953495297006424916428592098309340577891237009692341167125592667696967640244516848034053157778790723367146608785888974808261872551906488782884875225487088577037962323400208098180422849070396761283626182486396805010376043091707398010203150031974581374459953748434508638345359856756821705942821757623691327700905485154758113093793039135666317040928076377611641917673544142182655675322549836073511007562732606700316018449191954604298110778443205818309741427055602104873013817528214586431787156925485192771445303216492752004577755610008486269949815948386829397218548826430731013429058781869847090847287372026529307857918440592447122198954926039414544388845858980354364904616418376495372738505530602097335224053050385369677731886093509469100276394786063663900741248056140872018086058380319831336326301201936586076854720112320844553738479488563509684007617590670703654421375813349218073196835943551398572802781141196666770279615957667550732355820632158691539276967247757886037188724666509277199663119192709817147631031305323742981490098440331591273997072660286943510518700442236449124753824949953460968659586320969208243777797419502433863829906887595937627581710681926871607254625719873231369906369941589786705990229685456264061731822683432009835975991364283744984645916106345068899426495608435017760942374357092804954321985501779186332385924647692683728834588677270261980104329936618076426699497154675022900626442001071562349006315319993981729008265558672095193098245530239414741854652403211265960929737150209642454680395247932286469299447074335806404538997724583566286048121325717063316508998527064832334043062931492861109043930430830998754265949630367452597191355435614906277531361162292911884346904797988946229493393916172855653858971626573617325098965969360670524016766047334151067224017349334377737567080906649578351833504396124495424991374419207429831843348022994474995662715096038611768383309487913243640270091371174658097069213931158997020373471405750475885142367742842370806714948064405262411127986042375503418287585665317516951455437830333445001732522093163282728973599268394885049223555680975515118439617018001937037686667015821601397059799492183937819316352764172607388471581523038790220470100661825714121879068501297183211974651042527996991343037092102027178741562417548834261684387666756925101692203550127556566539876514124750012912596734995904251513895514231036819524301291309212033053791483337432718046889960829647004840813953438615925368556481856535092588127255191941602412730249207385730874882863354486691017183993784614938972829875766360253507505800433122764743932974923671909276315664667963936056767415619560495951044958444816728488022549638266318275760579725787778298458601955489740723212803672472624001284221468973666421010694645497962729484518347658142798632793818461304759804551285008242267075239391113277918171629164996064310178733626803181377130337035939554922299228008807455014057286230633482950471895724015986732002529610325774418021096707252127906702088136238190399180468129617959616010723426057527808312002256497813985916988024588893141723670050195901552188622448398695591994635014140753943086883544342658123170856086232219638343626472054964377492535653800138506836573070903538259566719996836288972541739144384065538941851936018501959179425178470667906447312683003251420652368347273865940196231627547876731383883738679635963018005065687713189626271196295775631672119940855680332158018911950524368223755050470711872833890055621298752736114630687245313527734688359642323244078786625794337260632608758977700808229150816404933359956525139691652929979943244080025020268164777466956324924039271611625958148019254866296967756741768779945457544021228021780783588966182692346173843443163218999675084998856799836466369844986298333355792643972534304594533363338520845238066449838776677460474673069035579540065065208746565355203451307794363614035138359180939039310276135925693596236298962657430778101987688718510333830673444962657773156268060778484372428342526884490192899450363183901448975670934627627787876485338946702742681290378153663697303968469419263153735711729600703401582800899902916317892348479045524286409314625315133749393665096266411052581677764844965905255987160911635477577498459838433528236240750172770930410407939255845781715791930330594086495914777761596527729149063542432679514123219455178385073336553162921449199391005322536121148264443455932008171305010353281732346669123515899044310368400886794549537702660855078753644660658855156458730766779743898149525842765200804401281738159860189518215874623660547042084580855986705596467580600405268919806003392803081489756883627567560397254059525687801518412517665620244896964427748848447154796964982811152481737800823036497626133137009618591429521889023109432551664068663454122529211754609342297768103014707872024708808566438758944866210463541397081790251657303976795902660611882084098139100499376796418632876909524185192530226649413707879411374782035217004388571872066850472439406207413463300492784790880002958934818353863974174747768059647681091424386119382667412753610955471192399124231539823718228844464487117890674102983293141339300673209850605261277745144811617883906170504867825761484777723963901312335769351674879477053601931274405088188815753404192107756377983848556940494599515191175062677135471462022344902996649048771563891353968787347528796931172758788689130309638866232058665252015939315825911628399328815172269263084133557688335896152403563803116976762637377021511401856594355321854273900610832576829241492414129280969304893815460604770195803399550569514715328351608732538434039677050318458556861553234954786120663749920381108285859497608881472574372318265264390262699419179203193075025469330804438457651947169428070326743376508744028391611029561723727996024860068541214023523428906602414345162184503360663980725792309187718100278934063195478463222776102899470403215612569642775870588058640122560789349895559997398248151070250349962892790612522302274412611921747505971873658195792850127401527587864789451693197390906699396684212416312086981594004621434158793766630250144481628508842930159302400520614889451845360000418518463574480379187541027203803820567468219885282258447828213284357453918394582522403781258624402217008773031936581224321335140445367097348237952783035182318913010657207420089438132248214134333459874839964157169022783392079450508585687060447426624062316716831828091346383565597747646787879204523336543513757776135305446943895780177787451005236954054490013784509332553234327126752303609290015784958590005602299073430558579512610633154073520555767351598574045888812351348922577563515162061595781070481438097753392326745954425488322518419783303253831188721088674281476042168024623584559518883646734208096032872378816734149314667209457470840514213732599905984126928084603056438337327461578188029907683967894029499009589853928813852300419071163149296651061655403155086323705080689876981824461480322331636199614221966645283924247087494378857391946828851660562408412312177909121669485910066766364414916323572040789401405921635532225756451048944180712311928842638508020496977778941427628836916923755517754376825456299553603085145293791223089397096530903610525541587751718482260556872955710337418170503708859028642747708719565105320875010593443712212369839947491767198520993993902251677595390466065373774391722956428649456148805069364412664241731210412894194818256039516416165581972373638328829999544788680106805751787529289364519783012236536596554296915993024585821332382847985667785537960180030486830511749920161232314622964506122117276363768200399328839234911720796067010630506268125370252175057973521992771071529143393931170752446462491057987936084374039562494046239520189230961183454507012575851219515515352633824544570608817345543980970331569569853437056075286570805625870959654247281274442193863516852732208332221576261569069127682150364216117323088011077169111721995193825017350362313755118276451500771584767927237536146508764878207646843030570005716253742334628736344579005937918459497603397407103993843186567858711850331006853919582180662537460872543931963342929006717377579373128408830419339650798220005491679708733542070497689998442134160015740804048660040087467355389578366818188620787749458779973918473543826005195909658755556215515470022034267807504742476193901539883645058263546898666755121312944775962435661180790206796758712766685596615779773083983828086443205348350475316389227082746307924717824498316696049118550656746576475130732924402678944765786042202993171149481899580759198857913432415083259318899022426461683902885012845984953592788079848741100464348935072744911415253029968187610163090979834310810050601166535191981295432635406312240633030625561164931945338637844965651907971190292536405906001950294187618411737732837127040263043215294286482189691741064072409175194662383489875611413607113558333517101308665650479994398340858741459680487318636381561141838008135213510374881106152765555100389619579831423573003932617842705167097803060571602782094395894043179781404021137948527534312580860327183165391234660421099033046269116326508278953907245830647568687249225552230063723480106290085296174444755592497161500567538873078236384550820048606857235016651015411846018657298154943139747784570599265502869702859038375423304700762387468549801565348366057871638243626732813876123414942709190101282358133512232056656154157847402730256217145013407339171107650018467849731072540299825660200620796876709102771594890448111177798145177787751994397252287318910400640246440715313508804471037300850164049531857037037661776943208148804590866775702381639452146140389796686554559787984260779905109748375316306762129338788659361510641496313253849749018485712661759051907104877921775268766967517974589685219463806155297168149191787235930574709558662139095938221272417184615850552241341532914402464329118040840169668069470916747212088863139291466816630766502961290702755735317982137570757267914412250326326610435626711592662960096444333760790461365017176100953977901959870343888863534149674052132944894526816324003619583801637755552207939701511801054252210159404740603575263074274881114855788494576966936205525403331089490718596941469015901254764338509086542285646689229184596059623435665349710939401653811873691159432162258340247501504251383698945726468411456597986314846101662740132625006475460686217521012224072922591245075558426898016216022959646757298596994596826577174314959896784028097299099542839470690198535469972136349683276278288715299816952639351307013172241167758070134405142678766548072489187916217218774083629165141230944535503136295491899396602868338080323556078902117091746539240515095201795394591900420029625164725001340137164364759696853790995004522243647944954917012508466799810097961713522035029505696886280105974475002039492696166748367319579130414184997674950957139258905212466210217379867328617770093818707470883157942757623985293278549466620373562601119317871283991626179529788063276939385589942676946940725722789246653772029032501105727105306605074174293719927186185370519606335543856111788835258654289437508728967774905011576774697605476660350012071326184441702977140003578349519501187859597788081692999187205903473829748535613870572386575013125445057572274704421230199786423056540743637653667715921066472696663094863337485432626810441022574738060304861922668515285542971406039774935541456996108114288396095948462558616256031714709044609292385586159311486818428274029607718015164002063056652244557664531631410728921606340165864868593307989951324747092329329094407847649219348288349566667916754172967315876419638521726366473496338307697528717314235472403289317950753725387721313649652293396789003289389578229165366004497160619260999747005954665809960120560767395481962018565339357950660833991421136698256915211106717852408051092680209417812126578241767672150786650030670214708810700357358150886434312385388540079797299433862388619389122995203290378457036572269845269143767222618601467213443212755040115815683201509158426492069812043019725546320091150624755130461685655542728692229773298242558211727236970356946577294807094127382513780418189434803704431437285418968647145418175351749673014586981641601129084755719157291085754611277017537534580951345362237957767673224952628180444356093566180594324038496617282023863826851541802646686560608867579358641647417291019683266649800331950019985345359961082752981036806219027992148092410068625227392948176422181163741571172994562877417974048197203385770121717197420389772687980711275631180426487312178109894063546995882887065062135772515994965474728422183167929188514581904887400939043147387738204962137378280121369349944694176073307397983254848029634850937812702351045026296430000533354069570177950210457711924570057112956857870683670285730782274372302044548603724748817542556085843182019845361808317044437918256878863457324936855650251518062181490170382578976169568230802930178549967941259841661155469054394963499484223445417726634448294007675211815542070680214256192158373032211140254343390320142136410275235694013825842950803844999518996019505575864574300492495791163824069207223030236259186093991466237676891667970914835580987382421381884389267027472674219789552497282333545577054991389818243392114984767055507712955026818666354872425748457264686185324939678909984615539738887070909534583229250318843456410930763507453983947736253880193191506783305785296437061490041058768899310511313912876296823836854173647151384598527570092532896959205082989547913828166648478406015371890058179124128237083186814410606529971901745935041649779143338838921466416163891677206427982867829666134581421557021938339673108552452221185052538607035218956016574852841609549576377011163135211281708396520605837572265800775329964437135915702502957890102881030979980402749994710205157314516588758031937214348617729951379622312823059318849881974862138966953038201906375642782851148323085833589084441494980149669438162520901452907003999888942507631884250998974425852156089350698423989963776393290992010570647005609035900375000778426137083769002475821078997706028468545098051107271102774115170652004846255539261403902112683378352692681559918655301131495411000113353733350889417143204674932125366030950659486267180392639303745724991321188530030581429634586828445507159447456691227480731681558191395707065827722668521006799051541297304245206885261805933957462709615562089170732462128569303545443650195328820089646122790791881995189595834373780352478575666279428299007970393143916577469695050749603042057030891599737146681078521481060010650879533087046304536612634996182489644540107559954910672286533084269757402137826790849952693877306256715513680483015526131774423773669861164389504294203506497242803997736397864004246418886025559312055566679689774634291487499440102738625099557351036178145483331489986060434659088149949893103993150187562730953114709327789219711936464678713633495961895449836708497121694174612716210925457947633192755059028650889259600449661960345545575340176385857428757229331478492465559088296970161013239400602996338905667254104605979511588281573032659042901901360295565421700270432907101662754352534898285305818562520266150723908668889545720181928880077024982903076184799110199405351807996896964412222717976419097902754237947569926546156902994822273249491731156187793755454358909211359892886458446218936021132869937346725512892155186431357784159445325591432055654878481723346775708297824133485819209166612431565996702953824281208137322614835693108026325648734256165622093289724991322795278884114429468866995445683466103687209793319527334254747573292497852760086296634878808242637040109841870342829690129231930207177871234839006323202320085495061849509200151382898363018613237469591698474489630089083181046477249261934684474920807973030142503721650661143139989763148670289464496692516939229722033713346371297956918029752901427484114014228026022348695860915741280845702778837610871755502603108530127612502739723234754020378873259712897531414258558266615396654070434544172827070759395448365319153508342263331477967929192851078046232307330289779796844451970556357010584618450664478463260351100897575450115413558249130483851094945057445283159549798227732104005618407650344131873870877676142551624714684762625728253755762344608990969500651705579313633034552337740840620744304658868542069075875609468061357906156433495993202876734681492015857177365030185711183169312838349974932237764560380283376165841377416943437795799762888758827107408956165640668352556900926459931031889371249264263441497654434387299145061445165906332477466904983223321132657338360975200191406500332853026206866330827714216573552419161045296402104742029680248686452751172474700638998526995082457282204862579975769627329576674696846755626611891351648293985770316482856727093877366277128866356316142635337866813598006169125030700344723082930086702438333552892984617589076322850826818768585289592227894329895832023992293392612785117353566667853626361543469123332114187924782203372038781447283448823370279020452984536323545553582981222496588718419284145649973104454746705806505424069576721894180410892550718032248562565726318218771377997311964195957996679618144709319918767356655629604128903554560823913008097937395644941758209003325520237583381706491256252406758578850489877336292330211080884274213332522204224553348958654422334733249934147272201690727726780419712114770582686809727702438998347835402461407461382061361920512599863159350217315252087969026403033031204715892989411179327493265259788569713705079321615830710362671928001572794640010889687692628044334341857179278330308911235075496116251309817342046717287392175539468264405325190805029661957860961758946336687876004659236933382492085203061301219733172648811773082255783311553812253570990904265074797467349794342876158750145492397916649612021092991387743564603608524011081607419258959222050357342695290443430997573903933243851538418833743171845470134369840420373832447777620883867313230789839847684431832633765280433999176737353716992777320853836308463262991189990089568320057600294183466350227602234672666979161169185973772306829049497549822486980761229425615289771272197017025050845039850671358154897639000808016646807430281381977545748721325052423936847608885165253128073516170836376658247999139016177505103092055957178011885003972149380975021315131608466966661118540210950169021622762096009639880719314500171501725864343384053399177232173129365291957869646829254701566342820691166635164510451071137829091007414629083146353999870101350739632111065925802308260465053066556616459849490549073370795403523803442011057198340431747819047493299497247621808390720188081874388905279254554876633132423955194082277327681565315981445614085876796786411452233000728598746278553456304457873817326951366722632100446371142955588312679821730758476944379897676605652012569272222687989781291202425518848541244960543144473332537286111081796136512971109128975534010761146575390749011031673105908303775764242157967709767740661719012974235805235017264062977870527003085712438582658609763971480061702627193879877280158083327567396847576529500937390725026986537179242403629684481824076277924219126490224227855319917155335368427140527372413705476564665799351434340340864931141478442399614889782268619558804747838020227293080882809779052617193023293184020670707417760365286306962923901308806286756322364610878398251079096833342771858727694955422159401058319254315520148816482651727936944491181317493288433895698113999756471037002581553301390215060256018063090942714654205430883983848879792394425765798941624534514386607218895986805827084161171939538862868060810319795973863896540233707576994255819922862685095625284114741722920598191165405876866654104446510227598888084243702938561084039512068460106399582430812550189049099633125925762063730384153232348079977982413612528933063675639926729832806939894928046450950736569292665988937378242068658900478359885960878979235695605526865151571290962367568838164387012382038144680031050689680203086849886423627805489790038036356290872593973200197618644823083674152931437963327226629183049684627457758519709017189051990965661998501618197848412750172209483611246191177972492802771997695536373438886529950839463629686064424545986351389267753383984002317469146816984105422483624706005441575611134379861620389341424211742858097271180250717464803232203154518757684555374292934685185134904745100424392311853964798484244290979970385324584591780002843899998956466820699242235024823245703463366835953636721506866928252451486399083332269905345226059707880714597049224728979249071541039028139837969533413876393286527587075969683437783978415139872244342527207845654604918098386808958956116814029652477357002256812621919507029817265680220904565470995548783118454375697239105723212469038761839792735828382665582651135299189322440162250278453893213578866139164291873348437491010300560908597773157747105406408466561922154757464261337816560110911101313318942067963578138860561963102632445592871355545094045072706929176428972586215035855831014086922657128289149871478181068474524906706883775022639602006486179088432142620098760227424797956293492160502918847965150796973577308119282262494902556728047415433848110424663654850989944125353977154946458828090731141762131931680609953775374805979155040671319031742849044564257688260604285046475179271004115065710726089523330684551728310725745729460769486713477533592534081578226279797004761095513543473849718664226566295907673692434174168863955497032196621492327355743575900035067578873186314782757758083605959611389678874814167690495692478388926752896732369443790914544926991076734077404089657902445639101515888086489875848388136988025519009569972905086832060907259945850324730070221314258032891692719706880560075108513623965085190690096951444040954595564471917018952130959546559786977170200467937634085846905741051366267402190198930356245691586082814064887276805880115350624543499985476724608687263505372478570315930110046886553397877230774078491986245379714854725988058684933949260087871904699595292014733955208281868201306998703938425308037413072625460938847710583554744104625833937820155543341013799624103122148198620745839687763383948268385832472154010819021397234590805730776455529623125545791262002026980281862818080005852766235391741931004029156485434567330193662312362829037593794970030985545681483124421057091170139279639890492593462201731225198255776933529088481492541543145086885567415205865793181913985984555873079859877328418595240595904640643377990839726885801360336581226491795838608692018305309267019988150685022067405279633534217546652910406323901772663472194722287182665325045741020170528739467808346132320555913372607751038807570552043066047798581323876544849311499235212942319521876630835840487752068379415966899817846820114664102228146564935888523603072298853344681196145612328674963137840977296289232519409436133159356815303223973074254203029714882262409301029307851763321138517875534147142626347910549875625862762099980664845039657920463798051503126337645469300613028356802044429752979330272227724632536936163260129698207011896704851546899145074139336675437800423659497118210085289606496948125344075233469850513472558103199979866290782849438737130245775257897389208796056829971868174640202488806491809132340523070008663362832341017660447992848432629459535028564977282828700645566724082444447005051869937378797638781769291051357190701267657718489651176626902057832182169578401176872365331291416472205573833806995827711239171200375549840915309254903654661371477130707646789563506720767560980443601757700335274501383573178333213283793559984541132566208694122311461694423444291418311089514051640497071077515704384626694349033445029721944704531230126535133918825915471673565001722015334571027277847821084658736849612989475951834913780275930420899571467285024864500168650442506805659160807765734839041395325182240083298677210744931657076460329203875053012135323335534240416733578741629220301147206057395206086870863838790186454668145701181310389000501644034528627271654774971025389243170141266773318598764156700717164779073068709248864698372107978078262221245328816598958580439087966890288228853089952285550348473605958170831632049422881523315765955683261137709006496340834568053257163625042079782413645412603207951433035246228565525383775833309540991199091217940887561285521358490806385194616818447204272234982474694096741989936349775500229152730483795415650314075335255778826620184960384748938915899108023387574911510691081854556853108553077154707020766363821394667320586840729212055590382833014164231530503503021651744898897884937624407834428922585202580977377456291119081183284240638136810993166859342212599835196114397881113791002628831991405057846177331090481608445270761158026789461246680064509959840850550830459007598295128688232909266650103442053133910224190940976063250938839596853135363061060344955292473385046534070842297113302459974933551170596635742063324874352142281996703104749597341448534340437276362758272853097177345780671394025091429883401944763334747878918794662053994749598886666820916489238110994279953306484138125462798326816893770060989076939772817288345450445043956609014995501518809913552501266438418678292447749912106126181832605454051048481120243164786037968966900344630695143201149926468489913486289989038120350823054548291320499946357110923079481438696131689661938076845683134666733438847201657413588727915141093288308536726175901534730807397754565866790131764047464662052240472810421122451715110251184933293152703158138937759511772182844711160165193427793632142197950175122356045394078366211988389764074047824278549368144012261644268902794030882480903448289866707088803519159548725718941321079068259109122606271943978613359018774382438779024221565847901621957688155308940653898475708965198145959895846832127959096250968171981357157574810543248482178478233919469053665683657568356386933900094131177216748371299707387073067601178471182467131975576443998855737840135683066605249647453287553010611710148547067446054426409773898531020275827014694586718167108145927713577264050648355217282279397274315897983679163257578023970190358027802837626829568474605347488738289578403303200712854090808530564939280793481686377041110672205587764089972941335170246222037928016505141668121683695094779186088411120457575351086264498627135405526524632629030792046693566937715079531884111028114422866583890504125115906482516381887599527395242668654856517713379820134792062683304443638771193269613366424942178315344107675735654639950248955142172508446209778069415012944532150222440238505075094251962762239629386088488574086193088011497463810749338983887574615406417522881980038395914502476571605576945127128174905608306611135192235386272326858191805898558275865900196665141182897069287805367066329886878703423619981182864902381762496860388465938771942222202025695957033918109655947652486033382748741286447764325786077379573817173844643465942815199525077613580265127028907288256232903808912269905878199842870516326916797788192970021837127575788407152465240414071434394521008867009988345875266155877001148490484597060656138281895341718864363106534166382660457622647294919690646833654853083078474258688712715776088820528997625827028060175538596833249949713925559268678283561386674348831843870212920617944999263887508812765198232827982498492384846173101753307418845333832228549647480168716036359274531476479988440694332006535370532756978661605238521198535347860818865480009869750398579924962854773138724875131086084576484850938678418940028547800219366257834757869350006168982086676429260503060845767624176967065258699726791649914049483915864058851015534395764398831879435305484584694472514221043245219785049509085946562641346501470095278513104596784624878091487451001062389220348002734167715024736712683656116965765942376078914861979468953470151669206708569800487002192952232633670944135459318945241812230247038990034909890569413245086280729115094029918927490960842747323513891435825533122199263148015278067003089785028054680591806160573527347245970004346189539398861697167952395995131455013474040822657507347493092530682393488177642733240316487329703547124728107550557032403852332537306400716769710380981215930484503132023721841711682783055262596464631761191148613983642505023794520100394116510822781616819777892817985788496736199199444918197182369781470577910148112796205435964435449944631774730761230138183053404684702153576504726071988981877495785505310329766620816035537814616280257642096817783913674839578767387668496341099966842318751421180838311263431605466957501308010829659342003073733621276195020536540882687667656982825205900088542241057518474886472214413015293487639048725445757886851476442065436469879471296401076175807663810605519829987183305151284156057262214287441029748497157599378712665657446594037292552566850095754709856433945991136983492621475331129149772242176150032671082826553024184170446006633174097834862603775157963900155996220247868830778847429247120832087728994168535468481429261960050474846757697538124657380684822238991464254286123702075556498756582219421228188285546473901283853296827051070071465582760881377518220202135674040831500325554942514526286888196298694938414627740177434787193776916039892936722165542778328229205846746799008679622432772254682155629512562398928131725437570645930485331005238152458903525293779952140481878596506916584430388661377214114460782276147518572491375840592363745062305181806933773180399822074050197822442583717874104382191320878496732484287445453194717412926136456381099529499457110749562145448726780071501793014439648633836298592086115662290017147650446598320513776577780933719320141813755701988514967781868188240565854719970031065438917440928759602538082580312834818971359772841918319915241615529637145124203599603078296819358756724353697477365524892060220947362033015533555878100674601491049996015934930662794582240966843848947529567526350861753523450456394095493129765614569264208952707739389113151373110192086452256488094724974454751919089480839676742297463080291752181029001116601177094592846413813475341685145716489012911987540640884516589908100715363530557943633117000554839894249908037743098161764952668602047478736595663239413225100643734710183689652139568345341247715749154921607559795638674354780083771091906310105921857463102854237468860896914474109893799623665369198179270742588330701681459092798112624049408301133187125949377906623754065872867969834101408354782390891155302468727824794701307168646417516714594413290315256579785737952996529624917258293996942979253640309554861981696870242894442457398760394294325876289474229084304116093445230433236462818956607382332395833885107827676166998119403961875790847686525378803046619271311967276861421267795232589518809429821141919917353482050569889429619385157868555219588273321800974086673080160307122871026962892284105706469582337279723614935963039878031889436004591742515713070586637340440649313961680930235911108682504956615869168669037172074426863840437014229755888991540850359075317894628552106464055272120679749152223674025954841370452503315379483605984918689724567893168492354630998781980768687450379926415499058975507018383251831460647590131039916809735731890013747760659064637039338963046662389664679035885216660411885346913989278327865179149986742868025000816518494278504948800946299890657440821178030227783986563768541321434753580453073347499051335823257965426355464137521313259523179564635459671021672701594484483095919861209997888732264990932101948233983461668249041411154418902584726077647162160093200861613284009414265730136194288014491520253189025717670470739976017778648234647698789773276662240874884272156572810833043772549741687057413232317431969008059050752515334975419442354447042382478658684367144677456445423204814045394855937312484187269834245127987897393377896992891764639841936465548562522929116653308482889683817754616362928301037340833860890520170828165070416068032515724271324917636637619475356497174004253615897421616325799813073880464813639388128705261891510778905979053367208615270372578981111103243921970830290789068754038654724257575244105542180735832085274016689537479543755336368206166690361263984181959506263440784004400845348666498493877040717454019744072762495204296479708529103875541244790753387785671679594455875142288834554490200173489489652986508936442921438028921754822456826662574556485056965777442180311063864792901794204667056025731536347905296111719473444202963394851237665788957860503552843096028247990164038566515896985476586514450629313917655477789256646807392764867797453433633140091556274659134654753288666802663315386750187158289966003322555110785355150293699230806644371140127696800758407251086092152571395680653584238400621071576602751504298251756354613855721663467359387918046165797565830556536288014277449121868596655439024438825187504262263948326294228175283524785520820184748346358670505438059124688121797112782244240781443546553461824084472982171054166763624349997620390732618527894106229484319953852337723912247277062476288919104089149758426773099200304553920723010379275975651541450730121714024499480769548863913750078316311918367537957430302643367745163564299072369675045291427190114052550887833892730077422564254713665619406130000274395037123985417286649571188923974091111452407688143623798700826866990554053930876462001145583453724588186213311035638376146804897954851255344889330992239268807474146157121270296036628322570183293131136240452162243582415764669475935049298972562848344704532112570832761774971123073368365808674161641889558638556715272323419736003909161415527319181672960997086401590931867236652003532286718481343398671079069164912118612151622071634936569174236368740477519332173268291243464449982854935214545254995489828652498340917300173806095232713163116618466668149420174932449847368332944256340056847726488350205185594987360204861776867006190639482885639614746632631475075561005324479143540314626728453118275333377241572499504328645776768777743982890259636898172924213976085800848993454001168958302965406038208823165507477066752609030589582727491616013096617475822521115550785377314830181669737872878595175900458799568427893548716524631932504691934997472381501054358122069221560788062131912700526161635454304591549123343142314918398610954623199228825956160529542967909786399279079187667807559856423289673460552196136869679516348761183692588707343659083862404772892626701808710729512800810731818784157509223099288647019669837721776559716030783662575339689099500142035413298680515210478905332061550789507398991518281408202138652531282562326828557905565451760392737750637257242061046640473681237271424238987404216263547147320835245616159077429153202689616294107133320275214963234203189617734229779869802037595003462316483875601315393004975021258685174110839817868750943987934649241168903829859726953350990631090332902279407177668402127284251419217095257895699829677755547693795567277876692191213915589641003457566081233219153584844876607028859002687915425753276847718144284667172339038199452527078846808837332223708117046818011107521700889141561807260864710007983731154742604492230971300968799980814032312251394633354591659783609024010273287179238850089197234037052474458058097936232174490764215422253029140528746717363416498037093792926956239600308549794987474021842841985031563250122290823428086347730585147843519879352417569341255184804869363123665736084347503330374836240770114861468032984154014068731031604921949290188195721878375542771393143873736777823408407511338836297128144469272862762828045566981819832343194706134028508351557263876295005638998981488457310247577374711283301016723474469328120203582103534258420329369716304871159060775238186465583296350183628250502669628705417567738749471478130557826634369393828470209608372559247154382242605019125320365938819682062937590395515231244621274205079822673720754944679290457654034896083399342942809364995511466738765523698292845758242291849230307293786530873770202837465048533068265442695909626885786824203091993852364585135847040844654491429297602960775654635056074938442599249454398908930752031702754321696929694299961713490730449139166889919844001218824484612634154650847712666118586471438615317424216817032049840157322904762000963173371083607485006590581694363022831148544013350640483645641236605571235435322189392938613650634084329004130762171720280426673004189318040893333966953074174878076547144265827318764381604932641274936401035609033170775807380809284730647131745998602556082478786264688351387945792001373466014484190137368671565172171920421529071792874802757625977415225493820997833843582101744555490623570158266873233349399311520349286298832235457254684578013960062455224803973608798560390145865038536656885118091035945738814830738401372986646560412800253245444828745051251235417363365833969091837272356306410311846152741421780300054951850292527254038283613070194160978559890074100270808722660842541160953172387355267914612154240428692716673104693883006915680856586241726622212005939353628024159539157990824466391591173164633920647890852331975140137527893207771223446453921488166916635703728036200734756249291082503166673673996161081476320227280046154294884035114473715824634242897334586482208558345413190645422248987577666735940165022601873278996402650750860181496493247379137221245682667815888152612413183635501517060556974151232337044160377274424073156612917868330088945787055727996428563505568962035062756648625477696582959986444128996455330159844265373943930282628241364746898839664437215363867097797403242448724729933990280779333642616542390917499887748764251100309260741179958947967328778748504382874542413737742005213305971595982006942697168128292003678159669621227224921034616851903828342436832312427578402565595101184784621065633739472797762126899934894942250850514256405564889442706195607907551440134172894357164803497059311300699480056232451982509460996749421915558409995943260421166545087634160529787067998250097291439697258547393890699935544433694169492324106402734256117764940228844919453296457963968240332988780247926810354193242728095449579485912196651403114206584287970022956985578919528650073225445068585157688896175890660814039290635054496988617163944779283974957704206907081962843663580608398583025972418851834900955616025759579644178103869821574836019880450659583870556463473776308832851196599947880096998539967870938770462323337833172148215009321475560865255547245297064527656010575018630416737484739921192671892483352550823389310990331058605376422889863928349116154076535530399474303047848981334715127062913225270215944776150139536863002970516164706381300491843189122286695976156553232297814936960366918897328306748875831043757246411379956481343301672579178045528234437467114669013766626656524874356968450876356663838701456456203156451555087476677070852772669190219766551974607301108639832534135402991847254408306049746132968642873572875271149697937674831320637685608093976984362499002609831023460493233187262874517730089758708331541987737413881993428719920579062930472947293036877491234902636303578168815104718658248659560150331159589219022477581536119163166251965259155196364781891482257653096287886315607081860469302005341146402602343452231381600867886683352514102881533840863847412862061933813797280892861760287051481536108248879902427373713695278229408491384450606488789264244387016953944647677008163119156100620155665772193017114382843409061312283488856236968213294699128179620040388749379442922591630782741684376805333106668807357427046292805457715039010426004386841186278869293810111553763124338844021761104014732506234085177971074304667759966957409204417009974806084325984125548660487358153345041277104841754220028136783021060568354356889533655113482523284119370309428761067417122390122214713459820424859905531573008866973534766394261545651953755216747966730751541775104246830327254306213115142065836771609187799085321219531710266894342516048794131403220778994451230242563869939438771352595966282883432153944484258023275956453844560931348602911578122999352477621331737214484272316228550097009809052556257592716453238379206478788153164317141428763891802719609112314673049796296505570379217412875483137019803116258657822864653301275250372417355445881487820024031454694217708930506070783800633730733929357442802545806592838627561467399868323080529432451792105177288143269803315539036176425186467274156322197770284864581632167275108581171836917880934350215329561275742174129011130875531827217908888736292101245109421591199835915912678156225943645594132386060025434302378152844851370727553305988090266432113853092085354987851714123956889825256371540009945670003306890674842167231722512272417451807636223686441436242156302337909184327139525236466309950631327638735811481843968279462959514261132609387262016104018238325402723785402329722046831983163502822846742160706154742825209106997023836300613050348583535595406023028396181352158734409981191670517037391322945838183984416128490002443573314455752427376720842702026529883895619701492399524572254698031396052268282814149441478738873771055485362263324344700669769339986979895673750762988940096693238618243284496414133558717956476989088016570332211257373139131022680606160287380877996142056750819446972935176503779114630806532204837345175483348268632012391548482584380471379027865937305498168376542825199594278748052011402207259992022876142773458779543364455133238164909088103191309707054631864546858116418262216678255707656539705070927211182572962372264047904403823049031347600505833968662380652337994848027198201908336884443517315869084252701207498574503771401086277537037662189848426958088808046526895127261645833947091065687968520291247954167079126317284274732151470793672444322320871940660460513041249703870560275729263456143332934510143546753016382510658785157955748143369456281203255967118850746325749218728317725160268423070113040635304592235690538556018482022136617361088067759881293205181058744753895973849856115662893169643364762251180226188796080523930450438461245069621686779506850373128700509150049003016583388211081492175822716115321039882172753497951680950281348870372621900161380929343208525682465974119989015837278518503888973330098172786798945012325371246641700903266861732722520698406063976851944077129065199134409556652783146079396759743763647280698938516255698814401371003874937881400944241701970475451909390782603518993979370331432384067395237517535406927612739417136529700601142303535289007041140119926315832753722189726887450631243625801707600308859176522121132969960703059111280160447115817414288220301617769518055141031492588999208392702859967831268389936992581904930267240967102541683928946792581069518732124777826974176708436293389999523199214848220938109014332315209940962830337904877789988082282607582467488735026734605459671304052155559610128113609711837980467389140707366557442680793379144360303733824971702984481636926518305378269059810049325194283813811615773012124765125141864478835682452431696902887013171934058960525173613662323528640759440040750224699912045836575858937324508562540394644069127245649242274561878369185059084740332762986472342537904743537297429476101010215495265891759236624648774261486853134452564756734022245458009119512312513876816701258961961858039749828536176324112402334515751494441401543643541775683634452323628782218091631411658288124019895756533349460706895563132916246898157255389746532683111732687454910302306360879390167373698169617407413832876750276008987157477270574430914077253354887031157130089769721757543076829000349908115862124733386448625520217506048333787723650553700294903288566565694760827745600301274495568676175024213129983473310721459482009154007631936942533662775732266228552715794511409877182001096646245723504661837180738271200135842882738851960377709055360671730074135302865441092377183163820068925768192377472593923277046877639631238855706328083425335397232536335089089678017554745931812541819962333202111997812721591772986714024271179874074288572702538298551092998607596856663006735336387079828869041241568048018132414992644643831901140857015114941607342948147982835021420124544551007357672410068929405032299284610859591751548833798631790526608243981885567645405365630405174028593621615507767171236430016219342275118537172073271668467570477342920574316229853762333616220783162309771371668594612208729943922141567797054386728441555385289623369142688380612423436988417250186453031798295916863381809301261719541473873190535727571362429870241000393245117400385352317449134261156530870221847040148682021391023085445108391444166968478375557016789896639150132828919278677951685101629815386362279349977718900482776136771724692866441516293967197818938701141026104545001178826535255446287373665723293055269587874653906917502548295766476689643382189689425054134474580165327621134135477096277357110277460625148697678385870516081104696516272896856992710009900528471077076975432420841973048846044134534616305616210204322128931909683951135483514808825466460976938713191203018666978157896931616777845052743061182661272928364512847422530229668080796796937927233523174575667724765079977750506282976743818205999441748664248486687385884184992481732032232878652439106450960959767109455862373553656865961589681371109515672887256440428946055197709352504813484656555098081513977284945318633796437586008839698357090339467039937821403577412256220978968143263370301478392082495559034722900790436794544524299307147102035475074605752338568338002914630105412941396586171165555825361373925194200107235661118181668485276830145527594119427019641459838493984802584919402929807417930776994957343515740577506845648917632812801734565914376309790162211800447593263797269644040898896605074594186845711331868488517725912964996809048578166629395939449767088427157534698171581174291166259186686322267440885594226713191595769544459783101718968277628958319526354018860781525503703250859990824205594156831734408864030077591441899759365889012069533315953996465739345633904536556383505857878693164741423867076171411932895709308849961096598246043118687788622623378789036856469492406996505944632095456166739950648283300117301678919257566052092858390494738214260473088587684349679465756907713449776542188765320170607993307625271898441527118609160431566863602091365817014956290487958934940327001777185907462771538174044970754986668034456588969396796856687847202498665275718408908649440424624717527641421500732784571177164718036892421652420084038164781253031927498024454752098148482576624664070293425889857679964521780765816352231534513989362951624400226392171459375047822108482534663564468893044820350599644835459394404144484819980851517943088596367566850783685076270588751511262048455296402148559177003512957510068939221582063149828309035217459790390306520991159612129726705156615599713929199638382801561270652186282689429254176136080257658182305663102207627890331476013658642796461091065902561687137111528195075269127051829878297173078911672867740628023072297808607730548625982575040760360592953034960595503532331314032365474008348669438108818073696507182541629343396998591374859587289684927935341273210752225620769287011167152899927439068594782358332104530136084777103188683061792449516983679199084373671586668920461128036946736564037342947693522700101952124430254478084140543372356763308820147774329864225395448207162963547089614625808450775061093240839355516264564697317147980978800183176365103673709655936480573136278297295250083316360774707777121829641427739007645122023775220718385277866445862182252016385459701400199384092900930656756429493247019018717931338802250990861483818590806970162428644423783246238578860002652855806231240804374784422209114593504369222832561481568447160629296777769924305010189993710514529681514184013633047690785143893101795237298541860484327122425051438634872050570056189983052596147014749757064380058757609641171184506347233987533787443784515612533651105080746978225566899289970795949975412994909969557076433490612719651219394343323042444839959630548504512379565207945441794933795697655137866308538200824193631381174511082518545896603609252618974815660236509262330865222688906874449557948950527364553382549073371584588743184069387788946155725892801698777755696313425393516827437665605936735738178461253121328794399112554728049361088052974106492615275291441711364628374056160579761873894692439987889775263470391769126852775780919937500047170105184175359041327818315207254352204042888431135993824306461394981717907344521372132255186041770780875672739655752705167127455268970399006878808836826089429348640807500357244580503419767453133937580085872067337970269465772277295415119840399068577921937663371227118483445676066345422471412713303857712423117891474386266947416159684666235590248860609481869039042850979475384357506046731675153847166681725070475780235384262421733867181741274072760575276570775492649910333574834637474315104811873157893451512071652065327954461086945374187311822193551568398060834164888601414708313033680344852805364788383104787546805770856154698527433837119490280663190211402200216403978329506547633048630570927038348575959065209842089690638757646477763398122064943234444541377022246074361926159028091010418550947813899385670227414383055179195193902936093295888738883511028036424236754568819759741088757023764206233657979886176558987187443993694306956906968352430991251869705475465596241588535358343696290073472008038947965951558727477030987862811813395548617260011375028066217182782660538937303496346666381887458964420671896506855407954957281327128217845324756484164422394591705951426452256435602234284440957007950793867783886683950213349240489309945423338326551189642711125683783982761597523046203539816821295926461682973835045590388486547100255327621061766777896317094102267897399089158258378422259735147567601178278279586441832152188971336836474958519608003019396809612088006318993600564118923841525392699729625367243616785143341917112555888568658948163753748883104342982090959490336427106110791687608912021653038793416133341686872422439291024725656530255383349458138591729879034688896355181229349242799577783128013486950035850490524562864266329919432800197498656005309144864451288763611140326566952688810094797023040375248709448300393344987219780555748361847259023195682504932319095287014155997006465854592358070976775643969273569815222703879411171153323676981864631233006855333430765974638534928250576326720362851859310126296215356649058286797357246886669222906269377048418427568460278130216147615195992707493819490386899133957460773442819058078198323878999126063549344003130940395501603467894442505907471579879702416823955673924281044481574440645368664066326013288824631290844929282991499655213733300877736151783896215627255143236929544885731336640074552851604902316251285230123303824930894095298222435667002966170519630271010625926038182879701430602856149649831038271839365342134413340549111435419490681392122067219657125220443475917514737680694447917402901795535230052438547543875234691397955411227713463739588992024058974370790192085698902952035842227076593375364844187554780097721988900328792822652174859428916522635182010418285435892995991948069066492213637467118054948427975225266767246578265700260223646371194010748932270681794275987152045215417804862051638746559300664064429962435437944375867863797713878516190349711028307251356824021547999162334878625621414753546739169847530142348818619705710563719306534417006946733702025959898214799303089942232867451384995027937130241783680540761206463609242107468675013797611331401903687361607189809637028884559312967509304683011672083100613392753097461108051252349788131031378974382495052328690051372142268566199955899486199645430583554092526026049623880883271285911498303585102107689641465367609970100894317302716158334340985231460964913095262925031522380446623946949380571642727421967829305036988766072868093286161377781956344533043320154795304905658391423969276807455270331255363739283879961371491789041358421851907113412646147758755841505855398845041948409120267799103621343797634949971986904268991179833471799176655653982021961043772663589840718298494437831004304434402081192881513994236615676883407466707399673731157634380786045906111849430910598353949617053038892628318704285088164397998054033295555762464415312301939544978910901455724473508880324899927926384257172655969484174348237299606768520191040956791421504852494764622557830311802499572389447513739161176340438460966722615039222453096870215619276232074989194051538744879400088056843099273134055913177010541351253736002826999433162348698429491013200008618237364581009614814882685838310427042820140938146946681668262683809245203711195887391588624998272417988519314131688190773755819820081158929677138611177131769222574169148992308174601604395601469499195267478970321888686094569566827005107200629028263911726345935249074315813750101201972638977265630327178845462593792252787664767250578332337982834630288102424822543569463663870014376898648975307687037153814164493513897969649998562137851285665555238950385542832409546509666464187139680246378312207188155205508349166717637602875226386618153963110007108555066538998584360271679816182865716275836826802738222518224799668206310690100092653538185729620351954330424651771815567316290762703015201618905124392511520679687459675103812698199591610267908438238252128918618230795918322378577639867458982952327095703674954421898195624533137198425809880985519469498461497869694308125105035136316204107170245404568016667005071753971001567290472201912063755189786377832594844996263679006081892769492042568519726476075706231678748975036163516721011558311237015704480077451972492500167100253588812425256733322159168316542040572263292969562794761687909902973471501045115102498569220218394906688807904868409495119953052678037559249134630934144624455435805614023866455365677176775165353569131572703164880463293323238856718257019275513045382410354400900302388541132426113012634917806104148535220070399016795960583248795423991052540043828708614196644566487414355841695245431725325887435629630977364836919236105493817018491484098693282628141473257531911002659295930626125749985984205658521442090156971861242115304364081092261047643333712465992963807694921305469535353039745329691548261129688284994000834656697686128430246243753074023970228924341334545665548968188867179476758733291967263008070373265521450949119797531430014576965409806927323595815927417061373607078828056337563684910378887888632579162022351337028223381590168838616986719882870798061123885546716223847357459516007826385718935305442589178632405811290566974365664375118084742556931427552794498115954457802432148788746232917726211531945520844368169435735204966515338391129556709310490435262167820740269996337214485551766618913653630010498797093516751240617366793017368956762830836125929972050201446346425534200176304359440237053487771581266198484730622889671054959305199740105352263664980567172647097716817611412020320457758091471351945565606381527295574705060586273507371835688293631284377276091032924642898010397727528429897199042741130973582014524438978849300784234606817337897984521742930107723897259087313876777503544057026374811860813131066943001832495582098654177159646497124023843499860374152510080216356005368450952301875299465987802304400536714986917926939250336064628659188569569175922539268675903588424154032459340815875453361338844153039828462559168772099943373887591398065035296905271359974687017223493759815736072068233959120067895885310477251133217664145699217990639159225688317990616946326823063890873992364537861861011121421562926384660931774437795480804071001469935125948370040835005207091776226552484973797743526195083572717953786279236985399640245324229987541483206487167794450922619832637695245652318038471334415095380476714387433837077256403621067643502572141990606977929835086040966566376693897837227383809188798030923737482803011822419502596740599475929160129874351721076108157137679378448062367437687012018885602042334363626718698359512592352912995234890212169791320140691214858555372061396253858992562221229267941571222578998359645371279786010302728797909441234922647161586652903856924897025001054928309791955577421374263818463199330200428477299087334471181648488490480113097197366408981665746359378805247003237441336588195805101939581865610274888762097247965116572971733081507094530075036048421469140704909837893067371145334590112208909055036819428622739476014777580697251026162745670833726726366367136969041294022660287452394998213171669651373895285922945028727215529079013068726137777012857214694032364332565817108254399920468016265125876378639258436481662561588646784504697740722283444918542610961567132980628854062070824728552265391227697851985383506656020252935587214406948022814333512551948921016655184012866372119102917377730241710201264479520583741681090999849652053709084958465489487350238712742851243094824546677157608756012784918977714617311621440615498021523449956356237135562981574620296975905694168570049344569251009925061596620439773562911300804678879921070754727661982864983055905002678510365415792763696628862239670101839966129978451953233975218192710566356013995601799709694444880996623863229304187636744850738653487268758546038984207871644347554309870693856754438614402746439117953607808301860719700835492281016597501895234846879154554887800782684399533985358204939914526438469805789452258261041427155999184583909976234366920857609431010064435003540588754687399951884787567136983934982040407863477054831699762073954063734666111887397965696130930020385960950158839973856713783729156554939002126037053455033654783328774405851648325395216845272417919553627320376710660051115660024383672587012338123137765078766084114825110231202872568607292261794468639034127707099552419654823174353119983193714525055951357378934131252699843213367505737588292309523163611400601232961490694711743458817269773485086286938333119058941780828543613115321219833808211969231386983254942678227123576569171650203292734692164561960339763169712085552843550499371419292704755479209614116179448553889131566724418065238347032284863122097980773517551874854373020727409368838328378675229906226622792753399327636237981914710653039431462873094495449797719077205583714390243572758407965915634391809475367494837725519272249412858022913279237170848279996156588611265996631602040975665773508817772302980182323629547690040287648220100782344852052209040330671028202685756298309469770191996161335409049711563718027038552394177594418241800372738905172075031565613086184520697271278458376849015517105598166734376817767503319940852493639327916276326684401513574693302520316725811251102239010150190285202806451180238927725151165723144696326442617922305662949919632911942782021159531228201948272354298360556298471463521893803214208885387389094529795179339072262295438579557081688933258506447602897411505808930585363952960850639134156789431319132116596122427680576256810538721930977021938296971762045516651225684023991372765094587655662021152173676305961585795393003172247677918479291970073404640298763441050056957972386259969069938884406767583125292000570564560828563950306979607244119377859591265335447122379452326862447741100842295584484011769469224520027800720748842350089453973546270358686690545388724965789777410389002378282209624991967945929641236359865888921845005474595756457495275834184738646959980363809138814665794275415298217568266798941940323226547953359036097080557204776035938189100183485235285948166910739460747407628033393893751127368886311333771453713406934205213890572115929700195345788092038561767105755463428647570427128090639702876334335475341498330145009715061591864851484024381115396504909443217074985111200360369544099324224314259445038652715658419584129105687187724620529615195957095321993655805984618478236785259167678172302006152111552746484586562095864575166517716703367384310023935916802764761279874701397998091956260832163718424318433740609878369083888544016337121219174507426080767837231315965552233319360840680622841335838649893143785635325101430873742389632660542894835445097985320882980030355035191831905447502276999763909427646758076583325437299364222874354656494576675585059486862485398632044276179288212936113974115555445413938950972409925914673957604409093102542526372527053268586142033857656556813464626730734254237012569045525512138979557987886720961913150218111611212483466231734191218416452706970482685209610411305582375046287264728665670492384958515004270285562937994997995814827171170068009095965577576303361260080199535218763408289510251795017570368774218386763979219524541800373014433916733352004666381375038505132333756804945405373815064737900826626068247178810840584592945737257482273695695403701521156518191622962990414645780076740336220117907260114940719009731164791749647892948166920850142551276681130833186068343818100736912574734202682575257740105755482629722711025743658979970005880186493526482384470058253132782754213706822647323511633049854240138499472588839069731999838103354275120754891796836110670247190598103682568947185119552416320739157150768307853061245176638235947879141109820049179576563716998142589523333087989464496583972772700741501703023768295269081268424583105713046352556527073957174475778511972041995406898538839491678364821728780110894532540699135866213945654528780223461397031940383787661637462670071301168408461120894158752109016887271504766157006718802816065108312208268954035505398922003210815510497292589466413796731514792127599430231697791915130615139145728379536222678765954073323839084324212549328050365238945484406509183821855312177188749323251954244681815316392353418395444828322084917599077159550696461743565323703196802063630405956233178833133657824428197005096819219502337012575344622443832253496866327792883179600473993423444135790896232568748154046190245743612573046228130873988038798192525923609020754985725890260175524957047253877252707723292929264274906808570712641279927496501757436321084954923377094512557615731538092434724051594324665753574243389121766791668723074802381149575902083930712952497204311267653457275271249940638826188381370317643803872071016806575485426038376361275667177850144910348937002122428864061466665877232202097743549915240201060581339630001435480358835776610183861683727416363516122693441758771538716143515054453991103535610071556891493298523179533287154030717826953941539256616307355430204735977459884127761469961221423135053331944993166892200753157301785992507652967203066256266090039093283931298312426593264603877131475520214592425109843776522971572617782772392536130131383802869154694206191875795643262759001600360418944736023462039657958702521979997669754462823188612051993926908602175876181128401841211400248482710441346078639046415357003883934523492182788059124064686110705203773227809736255491206955277852949729469200153782707783745372821012499007606719842640590164758151011781796345614705972436617179365767269891770630507485813813459131183937114420460103653657493455078489526393070826042615459043498342916823597098542884551720331703095687147039306836580863505344043225601252480998115935848373704334183328499694515480471743589492650314052649368448509557970467540305712560436315549607270228728576793607922623289413744559180783905715506573918817642132223433293390591935031441180444850622734649024836976128272148610846689297270157797460875246962196327224367348264888657307256838433292022938179028487096432275668543221454560377642162261917568934741590138767861037277249447654857589811400929810258447921382871858528536753814032600100516104295047899627372333045573652606985641695357725359419566467285172133012483421590159685168106985902525641159906824118311552620607896800756167340441493363254722829055447547079461490178447622555383641625124879924117292239982491886108433639262515267957438706563790847902042482596444715037303911685292228041839081761692153450939078028988783366889893568492920495276288323296821049836800608420446251163928009329447403745312962205398099701326463209496885777859401714737188955337598827496362451464639226934726709173955360253351771901268412273778074731874332002057477532704326854820194866356170749514689989554067085728355196172775319276458915576900305467194802565343406240089056113142283113928044392252079145018623214754948777822221174580973921833245589557430577907201633595819639603892014020653427987783789958868737665344469284043533059504515120735242723398549831701050766068855719580714599696577542457395876376008632560938587572462832009490671289273027021340836532083367588470052497660365701449836940437413923763105869372818805414356474965209435172870080576463374819501177358040236889283651567226151270873144281976560876863127567803760145194597370827276605345450270184335487831227484167254716414682365007922475892186717774130272228430443031452613257179390693584287951477829634633584673961852369379140962360386659607422369788347428134249744623603843115533824430485062074456655173167480606657098251474361867405932014655647204652058239848558111711667468330127719157596113798594249937417995693123466746522715612666645687710595315046137747220451461143550020208482436391390075582926519963737753725782265517403186167017076326049150175219251525940811145153953382038215132408673297239961603715712787798071171143666661486422970202287845980338001967578732005635806742856161504281549931805831375620018855018691698999720522805806269926255991103784155672366714791789309187167963300189685746046538979122916645398920232558064928663684684687044259057147667906053362272846834747601080514985671789161903133849539327945275392900359755206894851203602861397347455933303301566249948550678807428065688994790602704387285418005709034704940793901796740184349521298629439214139540376482139422804331679815248769588248419108851311934244030442771058833765044673988894169083597298463024413185706605368049554156110652233382279664406797543249110031326469267967378737160593365237948854314327486053517025712519272788187462737870979698919848166137535124245867830796682585259016342302282419546804027160936701219534105495478970954795772812982772505520737931868603953414692114133014554369087949497125486647026879463282340716310531616050684257366545287969581468448201800463254073667561988267531998006182958053713740179731517087245251451611833694705855175140197779907292849938673185368851575235395711308608534540231105389469210323929962553049929667402392944342288937396391589747799383817875878875716556113702855747921841944371702156451647432989132958373910025206750744635343451631665631401818823416000573547127558927448803635557105051761273535893059057032568821950422778327595222231743967466845191618610340597469975926632623970419181633837894049995711334093336711898897246749150661314426283693194848101053532527658134151902743874996343037083579426365632573107421980648152676771397828267807278840854285282833076558850053936176196101516173996702196225197442973348018722822010114475129836297540937063214619585768428953788849977132407853466214616328405401947432906267192419842318779161580875549035520003993995660176779756283683241974112299319198089080243784548409129324445035254704331655787045162565960229612625617302611674131458854053637407112764682674270262695723667332557096708766312432754253304068783980427062201445151225055826119312873552725937734758236345772633527109215312679832551378677938099472553846265094752569012218107007089833217702256393293366378637680020948052439390273973685589271956149416096361429271725849523994761926688711628095870888216834853626212441875911487258597222699453075256797949818206440248026839896212910470390316423008418909988694057049880724321323112493062399230081087758551956307100919670872167464735164504698619224807221987079491022241587617323841199267940576524330985103529421817356174434689504130244392337447647527822645923175308161056534288471864665285191967453671745822750392478777133226739487023315200273142336554783924548214044005674652707278986056432814789079970902051253707135587721955868105013361963594821828109188714627762341812710633988817627260526794270070624332290656592868260502473968838746110052749356430162940268613178378388076433419639320540560746884260627071712136454976194285781741172344755157504384722885174986081883980870292521848402412268943383263141215835641937591529254734874238375572922096704157054199147301788735050943402265968792283540592505449945051379390956986935782966821935135099970034259983958113864125601992207739230800033111388514476413678738614777838872262761016288523545525924977854998997567672216301168915721733347340259451383083533126600584881767658597022347798008560861564209885951458700100802343322708911318415204078383096766297376611748114413066778881753667930692943261044163976027277975745422512920367539569403411138969448289434665142563158167780197051184084555557643702401910605495726714755247163523221806224740565060978908211662864021418363536372827832659085356344678667978180438204318343925262495439955978746414801423867945818505564018078809351736471521659434186103093023321570213648865913783852609504015398644931834296649046624841269649143560543890891232246013730457689899470054456827329055819616971947031341734670328556221195051387509512468593732128587031653803230053736661786006153484899115536914388255793522595590191726826160589809698161990869629087308974270708543859228496437143788709351826554662871381200040371020694559286550860307350407805876519069231559162057094611026892769709227597216747232281015646405123414965937187168588498279736566997195954771058861904636062858476514961710865234779875213056706973630787973708980019601291277485858822421471459133782289916698274820776012309078913411241617213403251268222331370236469572450159842489905234398493083451704142787663349307406201367131887030632762952989229822247169963860360416968605036679983238006144257189462946260711001458316207668755340641505213011941143742986573981171721777146076062608018695264025550112207692308567432463144691514406725593148645106569705082812402423130582921645927189690431488292050859585703877093223100048689069474371178374333265720087273114873368842006878353497882940635526882289471025512376859708940860177783726662737959973743176069438618636876712070238763983382648362979994784103870021349382999475180652460283403827309752259275945069853955585593554208765762780010457080732830295886447874362977964632935718579587785043713191646678802690172204115993599579741104105781426426801821995610013115553677992666521125341201020515508027475153845338680982578757004400203664424039039241730048296895606620992866702256383838801341667505401596084171814698336598831590382127274068165795434723094081431422106897218657172245720581552393633122894621953399734065607866979672569139693593019522692780536138939941002752269526727663614519639161435455638213155587324521948119317281934534866123369365900142223733144732621080832878537721047584701266323160194113612217954141242770650312702233370381075802411266858189593965328013066509846431107409091564462946377584381488697110472187717378847289272409944038646366597352199518564416060754067392621637546515487558992279400537257194599512855104814079297454484341893901252256973773478697172127108835962743072244455285315432203066126421291742189461792854068913465409309012297507116439687491933489045730027587301795101247107750125360631968186976297666693413009953555597772763880000997220362782463816851672729168816997124403114831880169443640087052574597423510792365018078901155076473168821590236406820660078798321813330720416307260368708740606120278650536623402446419666549996983540101798257478605106708784751836690124932331363191035970269710268283815420345783633381202111886604854033073062277362448204044182329067952506171632932420282633573249451385507324249373938894292333895626769782538986251465678867360726830007070584498228301151660011188361140064465701040237120212594458146015247464473129836554687764434515762204476656674590762343785562111388735241450803056447705139400836524944392293332258288176307990635983081750486820635863202178186956416368663489336446666293122692083458190249471410542022504328218768590467036820123560162998701349739280623614852176321207303018866936095146821022267307240817912990334114798079207132714883687099358091678755015131435586091724352600312823349551966425954859644461911297018125499005847960770001036556016075311852352337916641887482753780716995364835794174595850842470122424755063236967883482964737264321733366260006510013007230045170613882886006477164936301786792416768933293587764411266626390107646633473625065857846092494426764539365705680392793162615184730234569956629810187032991214818756719765201952683916457799437679782365880216776369450934442632430559507551115130537176002313493251325555314036547077021252121019079576493492606303490434341601742999641334664107753832595078608392767395595198944458606644102169856893373851856142322752379411406063722049024640318593143519491281320664568009863394043756072450313746963996177461510867781416910945930872814419005607217283579529974240136510724567237730032762951769567600569758051794534146830603110420583883616937194565730103547489299926856953386209153955460082431165500080341866496213955137522677106875859221407274825747120675872802242554668463721709866575991545750739019051441420845978431461842389209090661641408291412417625925489592009939284960333582630831033164077688609814223828507876014040730938165470061756001958912554116365207588935378715979920295043533428539528258511497424779873958804038326415684760664134629100035025715087331071312526374906553458227347345460357298651019090841339276585426264819810371441618310676134169004181915746288990487099010767002020178842073629469332833627572244356352088920600565934880380044198866023812638312328128980690476747395869845010022216618592713789460628281712993370104407978947295584702362535392268382665070332898381037643345743836074873486017143597405629403295124193463460698897751727308658183926350548556716111457556928762769123291100271249450981840194584457529119717491769827774222310838404163902000474238511927892728905602823137940221169127782131464555889378224110523916635621483795977243297328733107693858046948387025554678262153667356832885866726372827985498551943506510218271889771505554245958281172924562761710185001043007647255873542398608372146618055908717076114066276172671591236441716627622452598316974902222500082090605469896928116921292670834846167941927544159211773238808819234579600797839098488224903670428254410380315847692374267932056699879739473451655769911344043974826919149761762778419575730661589610988269321626749238258169133552838551063759801649297857222041671354071423771945229963757932805926404413821609306957305333367019354743558353720908898672976222030770970172261748515941978666483643379379769317827435578960118207911300055592584103624479491113935247711178663385946341946659019694772834386012150827879317904854621804172763566332322639918797869318312868202719118712625864627536966209418980396254462278533412266751824465713401442442293704214596271033800817299238481907192315435065671446075089170104750515599206721904962965675707736306839745679613966968361139048138073892648461590351276497589207771724816746475488942643709535837671043764294347093295140917535947306172462553799841153737035329989202641873053382080984167012607345643467904489435960859938480661075342210954597576967449234126238960369931688713396313039071267521952889364821584825968126294233278395941720129054878400624413303153843716060297105327116075265926720250199600498413508786575118404098311084600481383922822811931718074716791549634524949094646295816412734405622430057534296250269037719255175879512569230500646164743092879023952891576920804586349610222993256789514256305892220621023508333341906188358737536978456081729472249603716406095565291916087690091316495225569433791783163914223477252911903300626304776666722176518880368328203659189025930486950434908068308554880868079877091558673869680806035486096528690559659705304172196105862814771388983344750127105977172813979769072066228187759571843093715364198257141085836579253314729321844640094229551979258407379649343859390846403437897383744769187513873868992630710028673513300823287917208454215384799579939619061954192629216636276589358528753755576295722048142758628976467967183475270302342396692687027957196267541176165139820818343110278759832951352448402300732185739855447661372904632655281793076385903366009836858981742427516197438652475088520369381996119059715267023563015490515096836084694821437866697252226588299829006718818808437619470098121278150331956734249571185898137760091299548412857431576806836313972374721456999301928071851858199245224589461711541733695226235630978943973824061129351114716947975351690367667838239429177461745386866907772140048739967270330833191274600434149687502633945517355818026941263463829770032074174836502052899692918002230398778488919233926938359254507005318283466181602928838464522576168160945666357017657440328811153879781843000573758375221409539485630903478412313580185509156715367398359647592491152583718541181389743140305555687785288247595487288996418583001239741845980032733955290085267681898100301762018287669533369433660148636260517088616056738832421680091213755148017826177808526285332066769475753082672459733125349031441042357115081878742992317140492668814919851507641511921617256414057728516405270824286351392770884585564055681159188813590578737415618213225762330455331940124726275681772826297186837069734650402532423634446789750745776662923631758545468649947545337335970780097094159377661436535551761928449145359282438731716399918110150332177902091262938059473149392151463186029870064767946982082311514016211699551549764237742668257341619746334402246585652700153748379107633265899312964564125543306802042104835974301900298511223028093011585215332719642609181193644482616488837953788644201471064519302543807573946674832770500533903966903129013837467821779468882936240315414317884606825066712563272045239042622517563851109255461224643074786947345420079709379085774384487135129933607403001603023102526157324132002869760473718747561110759810182970845174983055024240083737756852378021275744885538670259440402302484238899140243425722952044788187364043471718678177566116597227811407206011225696377832916720855052505388488531797241753663080183925537349055338694218588553453877891126486142260198066149994195168665992507448372906139299830205865246374499181536060264262602052148688974802115311935938534932029838776827884399724469778594698445106723130970669855434639757347644951411218507870497083213311792379091997355537158788521791073339628098049181024123234837643993757205297208762504364758179781843216115292900910886813260431073260555534906193405630845173114805443488421107130037658605222340553826935473085760080647343372920115298078332515600150047819147079520991046081422333123762016388260008740126255456969504188698265581990255402425653178739005571119357457517287500915825995506142998933921460644621545315829252923937416711488042107812597699685037891944537894655178066394648624905910821508926540830071622556876513177011310549133606554428580049951118959451868957515029775825451274015562240490362355610642372799452755968835968738909062475587705523665649861379994775462531522001753076694706830945732030880749422071678322300243296509569191814444899288660884120740877635521957380033029092371393512533529888098590708772500739267520724976029359953996724945457945145843368349578058871122789756616731557589934880844996545313298045716274030104765028144792427253319903634986206555327655157151717616581242123404821140270168108650222202365912772746275710906885706064819823438146039611251299419333392477717518218492650801487220053230289261113736839510066406703997281871115766741330249896714300859855778758602307828698368568036281794515869458620280340977803275897875776865929539166730209228482877284136353177227831211286196174598848387673510990497599524348023037650725928982456896817622271197885643532171850479438074218181222995805473120219193323361698055728779376635244630933080184289946144382026793230460219869148941193153654648211298841019326613654430969278906495254835597303730561701654383916662537292248376287088767899353453993879480185376637334008783113934177513872329145145117955859611227898526444497108058280114314181935913097285396534172999075013545617772747299203088467165366718787768877370644120239878070759814539577074790185923846853650658029849802988951587005599948959035760967933395848922122245048187024881941754881024235036910181398505130913122705175911482052006513261942282935295554793101978305558291074419273431991627684312174579161279986543380108977917088025213584144759214848283308057781251651946548940431737728226247612507451783449008425225592563641960888257876790197022447370514246182445527460026484872297793019735824318919228918850712146081015638216883644862714298488262557160475562923376713544644785806382715202510003884004409442285373137572632193018443204252044031323352853776798612292302922377114109325415429191777694283837215859718587131396173682337674586753967139633634547294152424004183331339810203297460781132258325210165370359522328793762178696817730310092189118796873946052227412363818656355804461113481665430021245714197635098664717472804148728183068678892624235614158326392966950639960572966749870984702032592830161905217216311816918712973811191071876155848804941792615193514439541016026171103497844206298760833098473562935130579876807527747882313886365217690627519730595038360233838904320857908547702547582952260959241585884156209463336361974237200975084493585201602910222408643830901813074305802179332620796652518626785086619625929939181990362453349022161363021798041041533526230220243021720412595626672240034782661248109223244127992071900041118587010387147890942755213204560908085727401684939543688589126321652100368466690597963961089354837781198313994286778266240544112760312243012084358416477183167539557056732301894527044472052405755508679021730459241391614706179302753350765977646765318929690935443325354777303912313826481185086464012034204912987375377039393485706756026785501256382717433499234555046999685257555337244816082923449483669064855107954094855329028810746286485951289242384884260623856871747861122169839732470905808995710259356782313361907656054620194988090311041381173856571894971822495221266190734960269057460089428457012994954064934962509057287922831911632210294127223085815463119135789308715239403040378635846095013113671676170900767119354505489260911560607940380565443036705794714226562197218144321763513980933445197057289164276452994872289305207396097222764975512811571189529817894275762494382566871113377815232317310886966240422894945037660426419872485383667004940333462895169620546092011096016256226024293251056666215378151618373676136610446673803123918388277806023847900196159309315027004856816398883453202757813595661533350085743571160124180914884034911811918089093911245179572339243819210307383157052955321120284042235832623569152849288755625735604271350413791930322777832642078991583242866776333117836420869326243803815935358089985257089325320164210853490704733960262844664894429219980554096618953353956490400284266760928131350745387042067217343298978559802807811782996347066744160408808463907799775573225962960601038728736117269005810337237161151537010881577139017906398693535953113105056801420354335570330361133029350451224666401709233290774232310088916327359020366338441017043520315542140582075768527855653424559796572742402505194911623106417438564806210458315294174696362337762814916398120582094720848168514612163746922165765591050191171061326561115428851438300508872451950459975050212327550090195529911096486957482020478111239784647430055896640045297842330523382296104920684232681530168129133985673565907859844144264886765647120633201259305406246678617972971510525342383470178004486403151562956613216873776551094013345573029084923726706533173051588886122137431959350565125021259678714592117424906474902209180909202834173400095105629449186757010212760446176177454280821517788111611852662847253916727934225076352833810654688728556013911390513247012020626469460634891800038000362113413200939749955992367798751402309510697230471525256752643592682037884291712543536422132896528520933010912923688059634723091298071428536022168986818773733179712872911267377370482415328952710436403117158791748529491691397799733729786712423291683476444502938388767526637986985493849907292218940293626715729872003034614110645813499198267890783295718888556232366255589225809419232469881750136834329831165784187899194524181847276174768113644632655032761750909465579904646365766219410900063178960707010525691839150590629373808180697419550880791817555581687482556735219596328288178187297114447678279266782766666076431956055239501205938618091024409870274403198169059375899706974133851905776635890297031017900284715302767060802231934825258516002529489759004561437640116254067601078064704679181108557130581056539777753516453359132352496671603577219401594575011318644366268266257260454764590391765651755422160405627162035110448245881086647601564558085351170548249006322760300454763471885841772882564777778586024217406757246911192193161068005761503372688251755077462595431194871599744265379358174259283258091840818930420914232456654245635963846568866648545275838995232218503036811677007166552374301595988014640343343457690144093569357903076902976566102247936332785680143648199307805570650636713045488854652005205334523194206903973237407365097516049671899204700795919689356558923244038360591768894720555378253894225177320882284047636534624991516476784877207403085269999477093287232185689834709681982841014206047061272965156638543193604976508067301872900063048823765870458547627947245447741051493898593624404024387654009948572763820555301869334645285575638521304463851258325135912476597258450403509520439348780146508374583941516342295731626370990711080792497413486695134620300655763007150897903796668743295146514210975513985849571012184150960242441877587289941843113272451371064513935494759275153435879547588139903758580749004659551720424656315539063265665507962718873397181566523744030077334089606521864217061314030841738645091203773538418388804349685433400000754617430366721389620325532907338317205111875273524447075582237438668453102474222544078289751685531086862895914333330960751361799093599488351832281129411063369574526765714992957522091695701151413095897622045280271625094409919362619168287143600954035766164004004293653264835999194189581818052545530773365058629873763265735769939246955614937953290151429819000526070324591169824824446810397903927682590604248398747912830879732530391652149722415505893510093685869550923087050149470234574449446506365540680281392694842251543974759308096079281252619254574513458075815166307839235904007221957490990862296460327385663691435875655582256268535773280038320451681142088858582852073870079080557636131136104508586436326504662622973523283833747604803867112959684218370697068922049944962470711026558811795065585383275093992431343999129686393098062566317285028016565619707785486166076518528117429383673752546850430530232120966816986865054868906815721505020294015780297671850742929209529803994204800329340637799643054352952404858280478578683964934855352852151120183961053351866195968719878688077305489841978483270338765157178931384921535271818370399974364598870559566884752976147169655304543534420077367926761049572657443705554797890634593933929148317261346966032026656070922089780162512221865765092243376489993488632567840030387106688588587213621867401349222000044634542241026136466606586434970752293523639414516825989319507339539717685744278953289037341573414829281206548941095932757517323206074322299856240224091311948091419209469115636981218351201110159027787386482886971720363854966858529447954340172011355370442646142802658425815466616615033883176781102132230050663383780788237416534920951545956801632780453608255454219306969914506146798400653475746404196842056401129450753432994414882710946369566891418686790838968386682772975992055253179889679272317051057728363042070109285209743602387804283605501117165306250979709299006113623772975690286976140370137955681249753123260719165427409893762161918341800496618169031500961031522175212391808688731449354461626245421029801409039742909711668964564143661741446364904742516277628673766309029269016212701374110930682280539740656261631030375676818425537069129264596997985478016198966613935931533598866201236544816172055567645502254351522730003104131502758765887555647765142893292492596281709821269204431040690956419353862819240609343009680247818185630794486091612560138643547655375662636725103280382028658050378025185476415621943373779103395475616567561410630140670793929200838651830858791779068626695451636846703755517757787761532954700490665927002416586511760848428937824853031418006545205123429453057197518842961441745540021135580290462583646299748956169590823382443886842467263343699244053351951372310968405263240637458626141835886527049121622925340290003758877586428483014909135722589917958000177195871664539708495964140829316403820220107277348303844382835076394949973240285540504345429289263926319901671971536113729088023323256779743210500211463943078468705394823017969444273368167464263976119239157409224791788155067225546539613709240840461579777664841113707717050574900588600930370845438728602925121050265726356460067836946007127727343674942722294288302659695482886912380451770022266351574373419016660149080500769232158622398587624107026537046911220087533077566659192743768770972229225969378162878160157606357546216155534982139326288363657219756140778877814968457455621237412322727957489134379387733524536441153393926588664995101323553438047317966946355316140623764099095241954101469955763771095409456283505034250314268886572893185059155974627857110422767394760735963046939810831570887584756539482707386516127023537481923156307139128399832909204091699830305421488717027395482617900414241906476711815962508719302444877198400573813162776013799594904072979783250592354314269686031728628752964703228883024633511915026644252532375546266507681887332751581006727324384992828683118711604291600047379504770963582863121345643730970027085357831945040327330477111605763287468179297959982573392667589824882234935078737046081137930621390644128218078179421555295534807372166404890586388945181164492313893576766293059399020507759335528574640837971231647675169142183959701632054172936545147385156240490906055194017279335392425462968345877427279883248534529344486117187891340157736991429134046841584020247381648130010001077404930872776203906788941364045919802119075088261574718105410453741356579114708007895026173297728352266295548275158826603555586604751859667707345008650891506233329261313964677743551948071595186212212646768860145805622303664522525343453658655246255028107843833353940776306191990783462685398070441598814799703137127833867984746047089258847027550748866174063164073315051780350975138822961418224534266206329996940513286360865488665110087982285843287259549608315673872025301966581016765563102098330975418543196110796095831502119975605024456917747169641302306630409069783542805650195340777823662724477343507890140084877343905341643382940172473997332313956508139464731159329905424871574777523570255115100355662069544554227769797154812330717310470979977890176559570937462031499869208211244313347518327443054015169870630004470967549289250489991995277308469110220753265640048182302416398974113476060937878486751823059491680746027535987360146172138460340906570401991381714915863193983294230442052285851811245554399223784716237737127998175956859219329698188197825886276393579972817257356022034000726384665695149973952700055256478187832244880869871202522662238095471640396360677189101186045498527224259736976868989014508638415738549319107555267353230444548036712368372755865484080552346918849444368136685559046075022338545849059296577904016511639948752135987715563846070500035171501257379045700979976897979050758570998281943102745004834734098005134626043432781528241584656913138399912016947472833485790566663389765266547038762982797282347517268357549952899422971746973242646860034907073892047416654205308362384015303299107277279738837767556803712700008964134005426930135527787741162839734614831604561837490691161022240894277740019118769546062300655864044443379660886414358251109131230510919511802978092073407869614935914853131472709107892111942389335647047048733846438464417788931058668251961470235548780242383596594799289502872920624028962519956462596190017543682735043413833146580716258791600131411531603632147497809507285472663117641247965170496342470449973023152987681096467503319731867944755218617815360715516481425722527253308392234293851075992450193900791932338497491393424799768237486888226533608867817552543580622295960351327315491916981537305912391343566378834031220640172645555493029210342567543985617986533756543658130911501696782140091245637836909671656114074677658552448037361442095412163290313522272546130083826063597548370344785657681972936687822962385360721004436058572064544011769524327524696662767721211144097358144832780464614811623060797577996464180766047702748066051277261255499354968713925950838732337774813125885815614219963798935774507793114188250560945277575298313043384749191211298465209453226690815133564916735931205780999824253180001869130282017826264390716279417180012078575293394731869311842945292965136144176125649227827683982310408187075191591653689009001317554492493162079362037996356567141845715534138427311273025955272966291109130651840834492665096422122331309382998067284200187740919628145551626441912013452720887471482510681083007518672358769268723061755303446504466460245188088040397975395331224816076587227809505779436806817798281484616934361741290185662497950777021426194957514025712787893819033584176589309950215999417577071806134012523084524088416737611179652365853484340141906228437627526891324158208907369138779588783792247811514044122924988454766764315787275451220974558221016580568919101568654413373593927708569630881496509153712082943673417725559050033637526665499646679668430981798503696227230103029431671351695940623568843858863775846501542998128838992922245033221979053576330631758703062200414860548290579790866277667831280689173921365504449779513135514405484281850535261361521756520494887544823672532499324123326799152687881411502395565655675907207149555311585366284688313946748345124644423492333891894069798682044358741913706496868571339889639588226005374599502161786124708856299109512820123119051303750952118350212885038767122505330628818163678690358117081756850410563071237342028194208678055157510421323599657703117603048546190328613134529223819601506842117030116967214126083357223953824838050002480046289344322231641895811112227031488936137288616359029393333885757139513560447235850984881426041120414447841306966659290216224365177645503949506077991622170426513167169776688105921048895012826281007675668252684151150155551946190178383621928115553427290337022303992209973573018411307530649432660860198286149116974688667536590218648410340511741792458794104357323244726201004098978747855172488886213305873965333227772712334541674761421995251449904691060721837020665354851804628719499535924089991969377226372668713737392122003552781310758293046223450576892206939332594385660114504929961203544224230329792937566004555701040769040484649806834618362409920882944276379496025111467660788667973049824438841101315302839456144628445751049442107069435390133263067718536333448642385780217441389570658109892493256333165612803525559675536225744079353127592717990549906631320673660684792582220418583065191401932818173073252064691180323331487398638884148867913892875817412948033669060222376090568525102484592512592583901938250017889910760450223731901550910498131890566062067284216578826772769452911771229491855820825188820006132568641332125348488209843694573207785195876627632248463941823880940093683659011565816554888563162951076040171068932464106337047777582659415689484772604915121763131899742198890344390418460389145536328578431421262327691350390280364169603977978894448319917013295216811758487090999914298493793773662682104654927691862626818513405796153655022361091020078897847373178386670906468945963245799289562791033780036679294722459008335546955628008230854123071859839970407223923885164226905502653558571790372630463477323698305816908329072818925083404641684511465054359735354068648698338870116827617408783961435724339656128194377838374944572466176049138281266318798980814534560948195637989430196080511247185519009640761465526935559230960155776111698329555211236298590107457104505797124528339310995859042930609204240042268836708722033473991043612548900839269974839387484758633166187741009684837475784989282420216328141119338402774411207173069667913521566545432073290270132658085405805983133063848623807157501398334493093117961772522268904673897379953146615228665590575901363465338113731208303829249305618202656181647052518928099335941589099161653219457920083826274890509099286897959095920423781584305266195115335245629797718425305538000499797375876059742137006006939759412083374199390289349397651880966745094166123055304673962967002391928988990816746300675656303546878342924101101992395812992482368813267680961311981995519000978232821254127590877133124820716676640980513344734915744360717891328291279712089917398432289532677478798088127932743248252004353175143926019073825869297645871906936784791540528872363306070961098797173348722281527266924769852302595298620446946150740570776995553340140601098537328845870164922354586235666751602094489164085112257746998667696562208848782454261472194910308226675679526716789770599810748278528319132987959179473907189694980561017876492045756178441206014193503760721797435819988175889987933340856104550320147983988252410463144180309535777335573109849172656210433641161271372474518119365687110311822649079239323358327490174195049784705277449796705214780340282786946678731439296334219081460274680912762671037858245574098828226662214065972805228360110473886027562960890293022706125658712598042396894215130676859620803785555083414574758550109625008553960400779405140783699277085522470052154935064079893926534239871573823101831617162287845930282666637224902713031953183749115818418684664971117077101408726681682568612698096456949177988417700454006339961161267160783693555169342816361282542293515533486493959921226070842798526615860891972687077119099973125269979736473615405307197886990832516004789710580988000349159251423505129871107943115396251579501795087603801278492627677318560503324566000154607563175016420721838356921510882521804617025530360963969233930224440140023837779240746235662146142423434405453928695219899884004349013531748988382652284563547848036328619616739371107677166668928890228898853411808152293433028002784594432390193312827687057243493752026269515889742311321078364274318308210278598004396340927057901627399634866017819648098231480582939723875596029188598520955402810250476860023923940317067453493853014143154102324566596129007417091419965256225386222819661624372900439485466025724851629305909030048678140263783030593565690156057541601027828837299052863154945561654474572425743685761258249098661350954494642851841368954244132628266775932626323486401280212563612743768931368175585712792256873575039552453046688248040200527827492119402312737439009687293068930761729657591672757581008765499542326381772701589589037161966378736550510060106275015291803093928663701963765982514897374365360278825470750395586364275392273901110996871893968421743884786393482657839642356745706774952420409515984465749110650425799326115718997055299243299570417810938877370241143091780626439028527594923687693006465853048199509652321744566327840194203004125403552145389479045069535972491599437537406719762293705931028334056183028827823759836175368391910614651933887908556771586218878919171129761824079233327546567559070611132499304021667970747782895864753478786507136792650159278086914869455655185775246031962339535968967586190313342389555410097468567036310300612694484408750617101043812215683269886379668686999009215192588897851665974644433660080335882799012028392865740184345948626398170933875261738161251897553337180247127142461491795578390862563659983686595280331761226267794696840377644745293971533374396168210086013431320804452747459886181918515338776826054118211846781651210672355298267089162483774627846185826191079773930289091277659869029359432780320085786949163475287650414283186998156175447466560646750671503842108084745750225313511336425095460514268512086120907372199283765625545075738477086592992502055254160375331895333391422410979373454980296021156918183069049086207491866055556174755512850269355299122195597292247621727753915194553685092505500810875339291320680419127340163550365245468595616154297283295805632654075248552665155720193029115192016065869803464385978811166695810707894006418578280408751189288100334354013709280092865914212142725971275389778221928257912549637617169621701737393910059853020821685611210363108348189149666741847046393892169383468438304106694609280439063932554023756424596562218312997500843680613556813391377455930665258352446998803748886049804458381727419392457225419997666972400958664167539720800474805802524198366134593590108771391383424125411271890272662217023229706671067018522826535490028132444845593011765182182317488997698284281142334435636110048088903796691376200504666203232696077312026234361032025759708448194917624427943430991545998480791762235051648505794733549055973698852440282187591387564828823031543464887702638213642786152968914026102839187506254396658966490192268202914064412440292855024924907980751243499394685810139124576039757241109946651367737742942407900014101854739723696311711634176525753766988568467917333908856391102886029033803215203575606700225855463562014684196925113188782405339894467720209451296127812665859649086577803832465841844022869240990151924498247302871009662322303341548534547786323072822665630212932033328531879105403455814855168661639330105364739533326695338478064660978291530118396630503615102507100299298843217381907304121101822318250405839075404838650692148169678890720982476382405928494852594926056434515955015196197953872441247095392313895474106777089932773936399848252249534835172116951689827713248793651840575082514581660294656022903173012370396781864596185333412582734874041169825803344116293792565177105973593936729018095524662072735789819512785727369593314156938937807983601279096788413337099156963550019398070974048347712811936563108833745495316517528230704470366254046608924434595898606488851882139977819563253842253226524138627487317529909580496153154044542558274736778142215509454274324904834224416739012234948754823952372307156678517633637338126221500052550801507641456123630710538588723871122050389542890436989005002799326744109426043025690217183313822693276974213049621127149479401673384228704116760611595150798078553238655318894831950675788970875633411015248240671969339074658886556303637448086499733687880343348173106237838032303347498875055588478650765168778185737063741799444699673050373039523186482510671955634123760273871469577347862849399827154551078811714326838622601905107444234609089951993926597374860435302038374100719454457946551541351037765936401324793238441795165260420104126482384716196466612911989251484118162868366367794976014582180778484668255184149149790926560825200463285232883902936111369682380538266092625930330794819901809638404352397981083306146543866132499158653859401539403858374027441247614231808506435110795813693440036690883156925297871566726251736597284341480188461507031819183397859481476517476495948147565560180581127276478765510823385503856964700617523929987406754255441334880604761743224063581909409558243463899765531247840467635905734808543611667106373597973359219646991725517040257078599561132187011254118708837612413636934684577429237917895486971254433034052312145187830653729443059803604368871810384328225028029277175340694102909127973585043931770093122118541029238395419845948749871783015115945771282125400374279711238341393336911430647354138930490633818003110754726652768936142741004313170121323033628325661895124432452334343586844864252091326043547040522789210561438187395583239998923904785209837381309270172090132882647816408719338704502304913500282293990584084972530615894939267747659939186865615708401005199182291438285540782569107745028758477981076290357382182499518876436379088190893914557324474603622522530934195685867262084038945789939061603792775240425779400707449760617744899057660072171463599081059730735940851740253337803175130603763716016450317762122432649831142764768885618822296713188925769599736869112190625312363774580882551601334799471233555474606153564950960587462061482529267754881744113931059830322783560563890032509405538877026270515299633277180294141691826610837618315857736913840753888349633623248400596138821004194275331234711717310236341842084181717202727516451675767285856375781517582250513902457224486760269624708189604293531458987383304538380027872995539387763135771959719787841076535110417556645662309715339529215194501463525506259477155135763347660608989314039970244886897526071012444812474426632599716660201353817204792978701328755753581437231633470506736080766361246040580541511206740425823506140754190627413600382787900712261634330160665050022710068627918286937763125602831221363000281870740492838711051519209473829012549645894391780987528687848544277262118429017767585630718630485421861149443221444211560592183315471732502967885917493033347979967465831908847616093358827168058398984680968652301768476785609178600052563289794276838664812698631850921998490007499356470689927811837751480410091959787884737639071315632993808179939608396881555681425854257909073084159948187317899608430460119429654236552693367420875920506451041901999597539915252200866003369497309403556196195880188519904026512470960137839838349052320588882352445314823342435958079013889614375936827278919618852858310304834868924050326983754463882812002036133967831961656647541863922063421976063118533634164474754452257597858288124864118862205911680301602102949102360950850587478745924838350889593770851771710873983627572560598100550381775016793445301535104689590179628527394120535621660264850085960969567328409540431641646704571750993396865452211318319294420224756073735403027715461531162850561002207272769943843473577682293021067743522843750897753260678646389634980618064418673146336195210073431262282005861459698331111898206070967453410931886369911221753724404194220433364058669657588808417872045234774103050361793022627061074554222747284544577880998958143698758276327707328729395240614522660212716008114951022687760231928215618567112558612188466846591161765789507495745895782269741187258663488795016401031892971156655909837252048652102004144670039639591490454351376071598950858220246441613731003344697252233113446514554957953038136162133011057843488143339755470931286041347967133476019433602152728117814640704215660581024756255046795800208167277260961911488554974759344603699368093011139427310876224434378868557140009595614484363498267607089565510404509901044267300038478432752123961286972814498761799801113952725804554298968029733916497004494198996241719163340258609910606036814198170979567411840172133280287424562610466910225437037282449974102397080190347096714062702207836835876686636125650089877923454808034966243154636025136677824281040039092202770873634585433406703867974088437572534560712263709468465703690476650651258142285379659797109590034948016374711373365518312222766427701744424472186727127733906948136118244424685478879352869475941845040393535943344135486163888264014608394461453960281824887701436602150309214138894066761669341217056400959928457676471068290358064564832003558385813529103974199386703387253806259015902908765753890333130354102226482532841335703107196470912764391478150919425097832869489544097786562130408131261300320670459077603383411891398788485055059059615783274185342398870048001586828503472305778129981218620539808136946982238497100717898736629569400290105932186426964634138448639899715752620089296426494894101350865175837935571517341707701480424047426641750459998407410304606785519925422473936669143805450317254453870699773002346420519480462625456067624970996736153102933940406329425431572624931253400498328918929862786128101170449858851547795308148114591920437977015929515304901846555449653124012137291469016629039263750745703132090921051689414006229943154995762012138866682046649047771429778689858876946118126655567724868753048511368216836082144124585515610056682805310449408558188523429885286461817203682740761667495809993656076500478162248067595946599341837865958439785814150164044422348662114931997999892874577320879180642799120837821508834552713118504490840788963423514624630809037469708844755815243684128109847688233463928987103081635546975518344527477332402108334918920412003331308992609533992577285888645570694374367657879884564927545070046482577105257669810460339076800374274049270459209199814587069032637912028000939785020830042723415482757924301063499438265300396849511824863335626723871789842723570719974285418189693418857760157277546926370012137375793358447034732818332277133388785313824720905420557448365933924580207025627639955459559240421683955519319461629511814553318141784566495526130667082194002129616156756951920613058999727417545486171526290481349673471376318202479100597334804656365345276915000521217650221675503212013843677922724409101524111255104851463703123335366943440046903156640860528675706924527016011315575998520192251300533450565876374853033609510709795466017280646537890114535441627537393996009372654083498184040706556287679543646587998696648238141560476947438297711345611143154037397477706305328900156885789954307861750275062133577026622970960479181002752567296282566061815713524298316756282024278052838757382461635487736452195424171564124521456117416408333570200913885486043667700349454835029613549640230820838440037660697349646864669588059075641601112232518266333181540417132020675783008616902453937893640098464441080384143397594032212936135555658245200574147361647063481466344123491629963737789609141303436214312517328617419529639577624330950137849134266304008484547580995712003020956943239997861977725439600281924444049933366699290176055758943420948066551480837996259674329711034863745930668556793541024752734582418891378083766595341236714892665221623719070321538269671733501395643871383780926402018418880705110994878625533938815329650691406786888342102260079173305948511657066397899586385483398064241335148246575582669110442592790604162596238769656382062308619767234124113437647013700220581315604718025114393093859639278767063343500896375507950235978585235330324056095576571827335689339349744979400782999764222992428096642328593371792714174505802312136998674493393122001159763230172253319642962569839088691934949677264261085672991765113090401639834538423711311730148728803420438536399917131774431981755579230509028646085515547575231267158936798818246151164269397811622556774794264440950011054481655462256904471505862051902512269489829133871231151539724215580150461565820989990827571031507234188468794244651328240159268208573608874203751714995251277679159699340930515053796521691269190218362198766001807605593697079097656978806839572862441225659093276639346069190557342033152132341233042673751316953632449853520265335929576896439192740370981653198110040870023659855070892201947307447235810618267339471721893367615375835175649147189195847423542104671648363396405911407692464951406604724917160750699808812475439061550035858794406013411783248889799036524321301298856216739904493514894087441624597875593619827153316513044579988862078885915674431694744616407401257725966048477450839247566594482559171864626718441123295511264561603090310148629399889517991756669268256359500172153887990916646835141586741211395432646573326583821974548015758557303747473599605426358802953706158758008033705891807160074632187017595534666256470951254994659810275966655575797666833391655576428471416389705010812002632353080455253614457731077522718414728322653152999790894847315139015977719899485773627733699104537266020673314310051558715201831605708944976977511897405686494127434133057766439739838515087548973974124092494572046935681145458612883843819419354720638236907770891449848604535311800050662583345448406564496023730316522016162799219811743992400157294466281123778756600242669300479287082875948598878108429353517399513244076708512037055769431098899551901906528241186061044965582924706988983504702658982142006584804258409783745305607195543728912029862987358980418632095593645662262202446250768667333383306086252061893847001027998679842135043969228037567307849030607203688444621364235771111270650939590764717090139220629887071033374962170268382547218493725223273055258155800003435299893529978822930898986370989241031277562001758416580789516639566417145367489532720097201087087272275337655065996953306098542635374968843628121449873691719379429493240276951281711159178153139441283938734402652937702299977335814839340892109565961029677709971891423098146454475951418538158685734125361148436735881214893409649439496065656436070690260116131186675118259972125016295380625041215736482423318026802271459190662101598655960054071207430441809644587537097734603743995513755532921595636949371324826926539057371986551271243341384429679855124555193932505445053177080383416299913249886066905869083095089062915697849234158947720044090150934301557795194844003513574059578415093536834509391725678199863332663559246445098410898137251461488484540111734418966724577033979659865445724995203023851963313772799010148914173666177109954205555371064021065230275797835916152630269933449033831107536374579425154291966134094049039579241940759338823679585775508023078067813456098543906303640954928751808041975898782817700298421020806903335605855813032048201190609310385809438926083063305462674202547890998403547016760021464602573180648697717860285565514417798162555065206333910736975055921521826719610362912395356961785185423825470988872453650757263108472312954869071010559437271344446826955385157421962834070057756250575876874394150293214338077632922702584283426706924245979108371699124542057078143236723710971368263406546136539810052889191382191180927351014702537454341251017720586161675089829936521976843180653530768174674969120874338135469890024002053648125388542550222147164822746058647710682390729068478685659499122935682097617280491150163896866196102228547246561595107339378352150312774142741029865167687364086263174949099441951764875721118411670044957919042042306397423218831313041156928064695973246741287338991099654827068927303409196332521241828618163054894195128812567558524681946624934509466699259308626265285982471052083434651532724875837831070659948204391322239078461673441801104384640027163322687959071980719466807392227045206572474048965180931387463259433127834797092754102628156715677637435149974701601869427976298505677895467410326319412971262769644941751730285100455219295445010181104890500510279208517365950104869381052403918041359253832617994045757015032110677113218700294986976171004804389941741592405551293561568226803750348736099983528504448643051343852459549136865012884404371393597302702608804272280773399093709950828245247668804256653084790889750325183725447101739060447454709825290816431536398977267085610831848749355539181503357204021421646479892905766842704087229493216611433096057457810887169725889144149465809621898622712867314370594412947456371429270885182857454357646482275191823065593691514021923025750035241930932769995848268056835523394539752772214513090580798798309217881211250635751885921109791575830044718133251246152148484196130265560978238316305648808270822150095296492248112958074237027353263316897803136572491470548508985730434301428453929363763855335765971442267696924497807193278876252443301605646601287577060794038588611750234421477755314698194286607780014583960232940985889311123640813646061355432343152299272128818110760708709282713621386211267563880081148974861013247490870736321436277110666268848053840382693154805919435311541445246621244276889749355073380800312939525163382035847915537328027872012232146209041226890422993022762130715929640431104010661397405707107232621193086185158272670325845019698351191310952422976795208825138278466846651711599171436041626068513654572377248278895885800560579908143218153616672365820387002352975373252018610019279533937011925312620133234510328401957173122561339144583706181402231422411416758920845894415932944773204768334051466436081130989039372963558259369571097605780135161241507264646594431529535057755802759324882255321175022548875517165880740216340276958381506627965268752149670779327031615463384912845941341378870668680694854817562224449071383945361092356851655575293032446381500966975012108617549740300106570869991559090188717655882717710909253259346714080303941635357607606306553988603971032188815710482533680009353429684508996219855603153318728202601316761451125728353099573115296219920236541095779567368567490244078262650453676787925813471290026780778688653138207134066210165881128366687196303300991593128903120202092140689444700289938896236040227478178483729671943696962229483926347689685957669340932896879825573900612785020972258646244389987704655457428367427678674997428636091029599127494806610989309744136416970531271287931317192528633067178995408050558645332554735022875017759782079203865149733365162009672285391988169300713315050174236946895803814224059336716359298341054110650404437376689623494500511875184600387288902815318612691668733014418457562256996273680772867584134093401428082783669153588632110624917248584546596831010789648552311428420178740397573596490987045202384253599321055038105379992255624421707545488349930915820788919256346283717900947329838211549233528474417725130002350656782446127984631742125453522580814138417738615112981439902715036855759254981485189795584774056472345191306407760364117398347012682518686175096425671998668318294787682747106480187921965802050932477151800590734478676461462272900545043907783793226654123634865627214589983475998171922673310792454589802424480192128775822042343648081671194978228164344297514353322540346561810697353687045181572241055676757315181278924504893280723580513065607273791523364026309297085680450467377891076379134761352575754032281012183069245305883947442506632571907102800216676081297451571862268670863856142208850012005804576571967708414162813670307322379617992828118851893029119960410675724924628049631607138304258995247973022219026599984056606314379140620663094483601096596998303982933484494928148381654542208197285402754100690668381472415533418680716760215072003840864929375722565711302247699479864301232276735075148279267920540247392992647335952759950424665173117873114515299412849264191455859971574297285432857054235993052431734564594091903019298041740166013640631007115527957661638030673690973003268414116289785202572026043558141366000883477800769770686139944376424800619990317827855997194499691955259801573693299393971097191260475499674439583470726768557489647187605398373103829116428911907086496760440726706712918499462690206985926042873733972709869885742315397200195275156188224546291323274158754624028161452439949720383826448195110346532830624277046028028410762757742518856389471998591032256710641543133450845604301620219618438274093352212814993555839143414897316514569366610424304912996128750910538589442727399913347842886235830098940574274681322929976379125752219079258651892208442528584450403319643954244605988562390985588650400407758421881702423183064124646413465406297864676590842813890583435534315772890158387729127055195666239202045721375154149119179439117147862957676589511925544971694683852515049560483773404448860947935598467792198772694691987164647547703498227689858937455189272868942245286462471976689105035405723868157371173246926600425812168446666817448279931023369310599675513803891916110848314876543755609240091702874168103158109249814881404325970929000499154712349902369836898021591121010168688619642255786635235841187442941889950798730881917919006039440039270392422874989946575972926082521233805091366564046600170509984516236726167585710998523951861867063435282700272654376716348923974473786210346364875275831488916718300445715620690294736225071451591091848788854899061142779518073265750771806129145034576554401145448480320674620487115890250398131177373592155312757046871948843355597698079280723261767008049758850884294654910196480315726602498147992770276351034828566308118593502022125533504986200211721609024694569871888615236624202431545415662239256047696826273752284459613288326242714297231304023964523234988885589110085130939479625261828077007372971308288214057378626282829467828926440215702383394857197977027515363083140239711039902493111570731562201555230535643841447936912172239539871951038913666863095474170281827906990019769671491034585687383329720012947579473283051817978674160926574185079842047495954145133732551792388967512196749084163768678210704596574996046754516158485846446515102709343758715377701695571014375723133898927780451633375197898924104043166325493928423176842782075527861520174047337938870155554403297864746801517181919825019201104497574100476895118622244478237458989454825739758008031809781991762366468661577690381734459777697520041708998266752916080988518015799870148844887464235257411593442438432569353317091345813394037448194872956460429475333896093416616427334296431570629732387368447902090266081046080239636145564238617353901500338181347465688859955571120271073059340097096858174739231592701621018965020645397221197364869438765065486318234930630919244566358562941663486673890368598107473135531566489967038638759556422491047903858855758233839201332255833387354334917461045985689139244860123909955896791690437203943858487863106513340623786438602216025739276090349903500670339562616713942705870055707433165255620666149561891704113284778095266387119040362081709858509566800668409879078784599619751425471874427549454854365913686445541216253390482457726850088442210741363929999220140171105120780158781724122177469709093445687442352457563188911500073851643498648853372819380151646697861319924150226642006221849250808247657694523708686820526047371382289587349292572756109439439341072203991750847586584498575058659186563957061527060853268658795528882409360088579594500900460920611806387922992787405075340258450622533324260194826403349630851104877212320431870166786233717306398685545418466858025410640035582103382612854200525466151470357343313657728934181372992358212634191006379067400280564952623077754429053861174832732997181383554477789827916942654993707436167006649831500650440738147593145325821648525289535306027579570677597333795732456897610519467035097661781879765609762119130882161052260303966443206159499785495126996357841509904817687420893688937323206253280090774001399952457330336370216256511855064950095631336825006125540112284847300768090124096159545373697384339774668841605715499520282020527297016670700942708545500230496020627634664327714715419578578817663506322539768894194715710346988580549524579961308992151078541234815457614094382561065312914943414898746615317612445136292288134251910481020246354848915392374208899950375218400371356029992310167638095754830577640162319188729792253705015479586373465745036722180914116432977759401701585400513811346405403708692325998729807850216180827179245690254595699249491626704989755331677670282204653742949043499092857347370143430554304947044985937382911852185487562920438397266937390563327508886714588998489159450372792891983202196967464921739368827278436827486927177391265063714800076634009984244485633568444836429520799139573507147695304656423988126798765537609298081093514032097603747436103603332107268619591745649382906218244516509232438318797850577331545350149715299588995336008168780517324796536108765614946252648407188023932067214955282496411839109014184958813945210391032433789502215981108839895227230416996254480839604722612673952047779816616008586787618963634559251635434155781896591665466054149962025279488524582866525055879262540447795275559167846620634782797216176358230109202271781980386392146813221729060097925483831213131436538162424909650146057085354916023713625460111386098707009484126521575397385293255992036057978819332826992999191109546031668668765923292795771350147655077101844916138515257125205637770885728101645316181906179859801070084252475823034508861453411046644371130404723641273652244868902716234207595970080434088920461328212222260261794127538470262232709873696325765237973632422386003984923628591754186134402032231527718756754507854945221931732109147148145101315851773188674018884116752713930501812903455547983562388349804683845337255066765167420266411938733561612709583656371491398992369427148083858748716392094429532214164975812584484563409140201736345764064600378650892408919420831227264542527560243167305492927353172564691371863870097994490765982374797109061798410034510376434200100093812881177002353274862460877638487058995414155950966260474086189021424744260826602203665585182488044410050926767713604301057653159331431024339848428570296181313034569242187798455485954823233583391651730812880581537835933789797716656768803156976951833406428904640680341354416996804075101461700486921065496053983762797563870109763560909009030511190266779853083565438429769618088191117459000201928322521724442348346607863100651594352844829650612588238410009647431106457565666525064640122707926261362833231671182070812547926808049911346347003343938216615128806943933506148553654736554463893235267990113689534409584320690631703096516598528334018483280896913608957737426904251160878042158535643524265405451836311807312001193246753627116886442244093820303499352915282550303077222431666498506418525996789134246504737632981492824204583748226528260218718754380129038799559477827983889998428246697297646287148420782010429746736354453483006461528080736015039720358871395340465453822341118087925568642109830693522824588714525359746511137790815677188218947644019742220143947235956015793379100802029506621875258472203358215643953862015946799681731314039716031195571705372456421360729763483128114426703422829113136621439175706721472623324791495946840884462965188620778433008227555365990499650715305192041607150421377864349981992409404656233577116718760523413823001967568189885396903015256601037258934494553510670334923732764547519147513697550138685333211040170255763682917959240796701113108835787622957207162021800780443863169315426218918778546360573856894199361679343910193639603634592852592973086366235821003274282232375339012083306376294411873624546370685724419821062925680365959298969726536886879564689725308280589580333996585747062510380350419010485837041586392646766254851358132287446956892105555087322665381226105591572825283814439554538829446951031061427118260317724330601754727284350644802010359617991134530704849069036099694325513895580154474952623254246496766485122485423806750687602619229440225910956296827889779736797857967455523683076432559464607585766057188278450877041931169801606392736721763763678534169193425350894772921498929700222358566834893438494126865020787119154471432742142025827260090909220094073654243007330413499587080628617209590026813283012485693957748155951696535863850146224496494247241740102846727865861254020257289499570089439114487559736924838912943332916359187927771284779734891558203251522644951559743376521702236259431748903421761591590429658044636379077944331616571921028920421089580462561814739547253577806796545225055609216744340140561689633979712519538722973522607331689937889932346316086092965517208846811145554660415492902401890502765259230887774680352646052769606540867037667101297776354006399323623914821678831732080800544944906815140988576964455891407590340778335982432078878967599430899343636911350970220129925973357186465833302304186658545818776672661520321769154485388003759387014693934600550820741692537462978210365928920739108471674296275527685135062355591952260441014172896847062710950230937853803115673092130143691451103699499429616807468760800127835491731253366815927978267901496168692891404726121800027446587282364096186203300705860524903360454719078951029817678121381197129036830249988790356374923455172111431051281867540055354794131697699906664917977183257032806181559179295796447815722244761359742141836969693964626858327224248344378408273685923021449925836541307373877863857718126271074897203584462364973099893860233686613866148075949853203844031479878314016472784181337925967604463325098973791517977508066049368474250356162488087500358315957434754502259060141372040363814454481702775679540335972383663583687599942247994257832474779163910551630454902149005687191546856312409122227658773225180340741204376771591020366324459676203825645090499725925719544950811670172031341617929002326311655004102536258140795176315075189003341316149383894161214370326373244179168949560778282681818152263048284735076937082566803633499252180336631655809387446338510935593728467015540917260742482825739726618055431366703850282942679586163078236065832900912499054961629554948905567763519510355418438944881790771464206308849589699235919169171477095148169300766144139391069302632741901087930509020372985276596821801145473639360116797321171838700653565017735629800662963820031130825888954724259094822128333231573715236625151164825137889377122860224813732754390379419945939852474941153146136345737316888398661599233746899167947312852128376151286232738713512413143347886545941614420685231966336632054626192012171495537051519861313936407036417505095132178329110045161054077336301969580894918130412213148666167341658687331658091592392600648541260527997808119448992342865923108470000864385891162643563349356868615792509343601182652761796532035490721337955362670248504343555123902334584877407422381507957401042030351499414526727212436436841424615184060984168005822592248246796272294986343722696125364902915462633939577100540079414474684298125031556155756318549887339948809425373668832987837646402258704683595261290592043686463985963523902151910918509385021444575816013147782878518296637478581654443459405975420505388646730904258769227912724560981112856820278084729659535298451775468886529938164236223092986766411761541807826428218489421876332224093247900211251367686352149537046213946141035249092167924154599967860648199320860770474096539402401027765267960068371374225198517529041032345177005188227732592994153653336751879341848549542285609882076125968875597647363592639435147469691655523834339101852729683066010808040656181872275191295144535012630130523421399823310670283159963679087485096315572212455216494232315893697352352155577131323967466142314004722320056340349425677987878719616749874011032347005708509093834355437389105731255459415732811108015765917589172939256797716913314027733356505482100394751889221996792722312747691861877442236428339798049408978443388589484745240031270826513948231397707682063765256466530841060262971752701285253919992048927733803666464920690567268012564889859534276635277360152609234453375015282151682436011984566460030721433760075174348971952539563817847301531339547592754964388126363218879897431352164707526846646228134360931701663695194259814008834253517252641796952746027542892891501135878525120648031688618016431424313560849520796720878815290875516825233827901014336717246022606783515669332324971733925228868312768250547658417498649630555458736924869148517461176678159262118187235017954851215282955048027173061172377126910257169338026604071995552604621677515308165820005460042691998424155694926903346966590039088200262698754735303704507988214374754312100722527529277140844260394102719273464314448614230890401202000135621985055632604365269711556435677121995226618737725577641222969237859484358734044142706623265117769058944254801710749843426963839411775785182466363221569817961472043261953942681158059447357254013852648277052476904000434801771738610984552235675733464287066039595475389988989917321914469956874610993096485281349059916479763053338312217851527053476035012191058478842705455581699072195962328355098208100565111913432136257983112156772672581772467793046022165122627995902460400424080899569535513472869789608682542521673989793884080725548762423478089333854244233767934821989366403558064505427669624354879631470885316061769162138427567943923124735988680209148822452637315128941008051830189421589869846775931426063789809419332139175926532171427637400861883227307127745751476144142954801518802047428533302592045171742477449567402853881446139360925301760191256987509160070671576980746328475551919210994341960411252911879024003892223244312572193526849709265335411454892851409405775128896678209214194698647154312087481797891834378413006654209643351228596442052718673058642783800094832136157518787753183474243538108179260410644233980111515996815373682547384138296776332157888355557408505375048216399282804808415629304417259233118394545957955389999817512018789758724661786723023203530623626450055003252219633342920806278975065270196116572579131809633562247053208960366822914217909740651098906945245196033109721450532821293565542358052332383876297974302270187904882850847378746694678308352579585399715716503707026072971138528265850494754072368460509964575774899202082057561326338866121049639225191684484848357156806423624373600842048347479815889369920511661138616847472280404005325561186832618215270645553351702215627652586077244713711507518204764220698920715245485695925068096294670294564995615474660826179082365576839161046166309517363978008869752177642309125315138944022107862450233964976144093463931735246163419084470032263730389946167441358545578498384606114254925638618038265345397006418922404910913446562763723920271290378582854064408189395593478578146400603441189492706519211876827456402937535068052630554927379512859896563848022445511363087551929676345541506036665137505481144458258512698364168866826411731763932843686679332252775653744541659355966822106632370535525977422936141021183062642908192867030891089218225629659947999344976690152911286544971285292326166494661532330083810218044541173208265907926728112870348119017659633785525297672843976359850107114623474067375817404713191726270878635142704188262093907194603376740798450057191603435745880707764116664015797921297709398665761457484517373158041064468756064357924764155618341699805725647678561377299814161506531619698914373563015914750720511166104324829193862763880593734351942009722434317628797479339593986794883249200507152491812485088566481433768335912069719057847207089966275879456166622481406795944917625170617782413226192667696636314510645086570907526226694185002670347646758147769722910991104355705837886542542172999699060396030461272855691115734272870091586190369601196111337457406862119286359477877451839536521664800128849946994400132687179913020137030545081879554700088389771764699678565938826407543624447778169342555067941304643352369918545645679390606297633171483692517039721936639843691363917488580411784582709019129590070536666400221757671723094840113449893219808970954460936016151908980873796375162162775793540758324840311134283109759667948572802286441136457327397889052333680294019085651395914966151302465890968962910565522835342753978350976787193404767085316801365981319108458634993882518473895964870377517654569894220825418427955524722941221729563916040949419449286640648814159953427662333666532358897358140485654558673787108591726053280620339129822438557093581351683377580975212576704778751677608500688497427921140976373389056600438907034407737380058586468513599216973771808413702686568034956269536085767795193068778123624898731629327718651759211402883060964293864814357558520827103103911053374474870554706016421576444888409970703049701743161922284625176875906753020476807760597360543647570742590351499944382384344839467612827407151719687744934153551596872745625696629502099836872143154339707570011836649716477696489496284867726551225015908885184857375378905106500421351332970629238039969358257588898922288997169836767603020761439141791112845308796546368593705872852472770786573814820286279107917010409773788185151399677671998451847173757883361851892489450729995956780302225739015965855266886072627758538752077824263174613972827340994710163448564335322180107921843148629431188297418376694035232090124239694670644537247407674218460877497112172316273180741420006540498921963589511943161240971195014302682950239644027466228484129982737904820205951322748729004831890831322354795664476292183493530992775588183459313969827942511841816160382560075501516870803065935288173307476473683095136006097987223545254204441486874835755987892069632777299771726578750068379751058384525985835472119960433308756737651911042860854546078712673877060369515062577730771103171437983440937073004009658174669853881327778266396720158826717219456397636956669916428327703821210912500906716840411326807785565650653298595618496098070065769418036385128581091864910457027119742735093171637434773232701598854743164776928492101267435518331978487299667958564319755684610629926525693169167692045160086764967285379071536796236553560652301051475611175198957936604140775996960735512613509011669778869359392104438469040250043814500567005046667419473976384422976917420846679746366508315325810337863979133756768313819587947817106036542011911669877379851373410181078280222140563766724868042307601687812511819462605154489254802061191121579366420158545285736006152037353981461969683866457610439637924628183069458865327029301538402987692537928474566221671462834373733411448251880275986510769041134408922106574581573776228421681672405866690744601294806221782177115404702917572423655536602542853282444575649175883706316702418193145141038666913513275965117529940525973995199460574885629185436571277915407438563983302335123345653282402913217481820584540125594862742364672798059617468589147847711229931601196877508382229810826574278812506393164582725823852575272069590750589905324767189786351796216505825839941818503483892798274340149991079486089049941949817159095921570875847314922579856273625751228855409717142367166106486964959918890172880912613951651281716185332249944147860373000446333645719346423265145695818713194348572223950997963038481166120874579140899461952241880947696762712939815102758394513210867460944466140292861036318566952787987841739406332869921708245386402830848443245915399730661113339672663091619385082990397774122028341840898966790902310880836382295949371272718622962750632502478879398007815159691163565142876131802761070761767823278843763315935370728020673562032869355205734961100954367956462148324414196974107363355121030492030566634161800982928491097739283222326728168712251943700968975207439579567183112775631932557705185571421199419744451848975778682125689863706791096692811523266561900781180114216639960108765315753942582376104839944893587314260409762600389700355347966628931976048820224480131363849403690527447236534429883444273297847487109986266037904447784205176527692000389387462024363770104729654473218666298785996431695363436629067911455483909743394489098283676106228232657751649742942902582679166843436444143843559418960513309746729582875105867898559594420395742003223151371858920869207256097345809544431177593150075243306543931806401577803883584876622212212562143918166076827028079440790381299335752526056802670541216199335815315070755953425314418605600133964050376593768614241332695174532952251700143543081902669574394223616507000703381684883516572827700736831647460616823293928415293728805643962386728419522556761381441824278045444321672075691648347714434696929257196400870869991751628259675088941936823270925796745617282089859214221050080805826818759112305313780203542220257359286628067926603806796511493371966567634905058573601805966023732114851345241500225942091970696677959373192784886219950871647967034042447996977799057999003003591054702122757912436372044454606005701931448580599490488936717654823214798658738690367716276049143163772851417187419118088199554451203062358830833606564625314623063179151953738451510584665968726714068829896459964043938259859722949854519707438169156199224186690893196910150407638413900188372106493643100432311728697919410381926728837135108023332128598767845168757073481504505093175385490050154366654398198755430489622216528034134261837773816518060354999899078931851086343186527031601129691182185918570349823220363558061747600567676702417424958382682077908894019598784686329114179779304210834645742909372866798601679966890734578091919201138591928751947820242980927628306897048921934718755615097163567794918171876612464372358370015975818836308800397941319264586438030479601935079218554238034389728302487530332413825895803818548553063286264135814511397698791089589949316517176873107789697528282135611832125019504673688272504666664649888706026275426077399294204460944386564108962915622837963261478242506408811121542064002179957403755996519553217616248772527947503688644419975239780853692442520491565767942872351795243283217143886803907740827028823839970782533552882764000097142074990282230577385527901310205140584359127582452750851116043018415975187572996961422647149196884362671536548072911143862192481593845481082710449406920320023822440794211469307136058402086787268480056771423212929449991373517966908220097514375939229383867527409194958044478678702659767955306057258123921452532291338377985945761171755262040101635197928491073674453595889883002252758150136613994773526882453276974167569797804735473044259258444350317205768306810072542607774951614430954451521713842361970317552483413564959715727352093003801917696810460613758686956408810096401634258672051344843840382555043862408981923363495969037993908936804403287541482596749978404688556733803526502582223861035698039961666129386203937716550977268945969703537942012935003611864404084115839299016632476042203258309528226620719344633791071111960793022803844980529120000858256049912585797929713164511431111820377438426652735139250630551216296167196204656719754559142599460727200039977421750924426939812481875513075641504013328521230616534301834223775172619103915622160687823951467313381952790895138322921637298930683011819285127640227177308813487889995906760913555178945312652366301068733644678192218471026232439978894121719651102544200769730014779254480619315450608769394899304954784171938705180732340494742180378264102724637268045384054905413777755061720759255044467464863773090764811178209746117084398693545298953399637143311138017995643216198009873629978807995159087603071936059148580578233321976330085629408822716423105843847382438447847491484682159209889290420806997628359325859708843974718198211362540789189174607633144538771150453481596604471393559830421034936924891880655176217554767810928505178370662302929138950420272033596399818404982565270810225228815983300877452756553000405829868078548453822221861051352237640733234371467551685623319674111325329643637124905175226973548185231515470101637718675755459519983818121934919682108847072528845108919868186970210627005850885236349492414000546886367893409229216128885868828291622158334323575241394758380115867069023671654010056620884029426291400466509583288803191300790193295215976455800741421786819710882229617010413596511443663277552914232758331437318748320546297912503122974163691940782658689884423704489733402932673969272063146266613234388965959782777022166355919391902819700751397480878456192895668606563551416186246368695358816746704959559227892453675575995587463508393296426082345586756315669726229497799700348007577104320142088561799811778276525178136891386774026692895846144692873021926492302225286379360081331929219403555250262270709068513997392022319714023727999454469114657746450180259981628096294204607278386828329213494758615445974467134613056875920808448955989279270460422897414401849552127584039035715552948943716876617882603210375919594292980856083943138151916667384287279706936182253311827887409071584438874104609985166566808048631413146104887786216337094636861804829922045740804771414565449185004088909080634706892528652994540039644185307540845530906769962923761667434930213808231996162818725938861465121073076167494279571514121886803464575079753263217550531775396515443292563542486031042348590032469339830546299573976414334948771988687126916025802557311778239316477399920168132648453636604140528913008546149084515746663882598528352554207182903855412460728451972323356014089367346299488972978858677518988618028565635304672529762051795492456452142803935332262952607989560226802041953795723524022292041237287023171690324464875610314316139502998969329628135120565871936791726444899902902484848790756399194401044307079509354348748481678883930279226512780598124120736028180725007450962098289591181488855892319405352026984416356177110427881944599190788284400768585359000675369644453523068339478215303454365417625875939863688917642714055681110952549274333212163875063690476621521145972513833534659017397165362820202080456561644322477038196448198286032674994216186967392949247240215499113748244745392283778340511630646733385769523564309368716578774060709003535409785610395147707270918794900550730232100391751178299872557983445097962964652131456789202354188009529679861544603574466641606737028757921958894523544957996170090719570766450195295750505498865336331424072258763589726012148180111542747640205917088288817277706313770559221222191329935215098383803537761782293145786515726915326667055824255917148043462234170018551726412517950201661951068189236816074937633199784303566906556218410286257564922630499055064583423451221634443585408546026839087207047786144501329176267561206381851733479239935156313977245829192122783056657410099607750749320871879694600493256883156551767168513643649829081863896623826220319737969449944422360287244679537927364937278878085033595718997698292537162771046006027762427941843334766368585094538462373650098036858439680564363998669576122221765479943602210910118894996066821729998302095037156918035769719205635712230867453651553077685638793877364855130651232344468097765051488775838632161079640925227398779320084384777194447417361496788546785017340278921250528495379541326991334444143502892315296653469344327788449744688756077888885768419662956908682900144270291520363041182826781195630980444583737520620965109677846316371042399891868432064482274117786909509447417826263656663898855518358801415898585941131437222060849136129656899180094969149121716231974000867887401689104171059146158954942850510330721894560504935145322056458674793299452607064570776902034266739697278296539412224564786427652305717345421521565074468057275368180631126385601489155673243071857780745489940170962275042455339505845643489853357382127567215890848738290682128888396033120580847472589699858448478716620447267530458913369635880939238472452741792600572340645219967627567491560737811073819876637041162569862474273558321010423891777294772056316569787195661464933744775788855225952655758508074220130739504199422395892034674210055646756353288463326375578974124001941694001788306915612960868872874870713274998083569415921920547480168397665724500164114455851530630920819521936880856314305816722705257926384305758309643906163506853379089531054782763023136309900732486895746702680681079674304525986861358862218334053715842790266222627568241836542357829039983342046805226484627047989361337407808061940400036118191646955105728504260488537969380001310768696186871866457782166205537942310477728355993796944819751640483890372001362634091845177080343074862818193873599449028801367008201736922740149297960986354972579824668547538613444377248416255843676018263754721542642123501529645395443412644527584082070175357727257470372657275629887195530406705646706035583026748043467809079138062625533166228992557647106132400184937572342516390039434293016810653248940795748194295275750625837316099922345310609832338240555774525142991993871745675538524054943880343707104837749104704914838902009820936281116203590426894790869501949215870758219706716241724390404228967869662999626806566258583748548006774488797488904070473864087032156974393316115020616475957859779473473973860024194256956442836851164673301683720814797789634896825435805614713474963449991472247575165724393681251569548407325398811707526905341906125841713272295186645768519920131483682951984872346896944232280495089925191876798782248746230551634665359092867408898208088009560290245669846435355326523650484506343913125081341092209651727173699637669430155906221933032469022830625986981546409031799128997936746331420412119028530958907381772511827159088785479726240621833599950808716046953051175043802908986539880139657304008065406566459145480921223463702421263302150118309424734774139088338481821505019239583669460542113980518142585843604695039305307801104233549625489215602340221331986691788465713762933682850556259519055408757473755454026329455475907825754740922015339919356304188526709588445885151035117158919709250890961425071015230687804535227106515844918314126616989792437187997544936041207307507915447596065053212514641462379471635119932434265873779481308040016811203278374524124266583556850851817254492623719302182418085358840799006659704056218532339331435671964822578878479259063133960011102652298499956076479596501158407057964042340293310901875879566597834628076256122228025102229072405896054594669844963709507457952600759090419312889392529700195318660943507881443134647470991216262735698249673263940523201107721107004572799719407688083289283984792734616686158092209519420377414073537310110186786753869294664289769876760083252071829441865471188409486226369782990528767314640596615192694509842615982617576052235014678703121152074487182710725754212641444781920567976909466161932557009803853042675065095631854570214249352189947873829285279974883348259645044416787983382731957630221983338282320020219249372268078971941536079144374107973509580753737312347946753804266089082451666317553083495253315737902663693214854249081210197757666851369766019203334818966674318650858644805622490703962168786097475010686276872787976213952984175878122061462275522406174181687224913833726021674217229569529662864517293792773905829604539098070959768731864969475678936928178271803658914119102734870828885803991624315878290533788416745612940706613975267493893654004981293090522542447170842404011632157907205966253756723366077522189774006707188875045277050023442433084129298738424936055063918562983014827327432766950324666853545770770591991668101837205652255607685901981351685975773407175742880777526450491095631675114917837844865574543328886431227100266578356554006631566746899987116403653832242144693624878525765192804300523365084246008286749984302849891025530428447752430722517905800662163570706432941664362793410494187847961834445953619601521553454442555946468584475133924665154134747135806215804001052897939030891140241063842120602428113621234276341388290939157085216259140276042374342901133707433962519591961698586156765264037766570801959404351553434763957108146885731010401063471008803283150474385384094650606551296696321835485465762439127430940960912721389435763939841986707171665721873434639914358362110203332702465304965359025194170445801742022020759527065839715651506237017714176133552246115178484795378039510845589585072456441179948968925466403924531752408349004262341346595192675677164338183604019720188565422180070291916118347380564674009526370553993031378179691536144623057123664510020432040122406456980170169047773977210078144772008446432603383750264909017933136859389375220221418798134434150307817151962744839040114071329384169858241169648488093914130710786408469473630660922792324463593796349757901707762464384577474753904064221414733959285502239619562099959454108398767602670963758838550323765045555398741792658000893157579808520394892257117819408492792308653948313054815948835027576905744760182432479043784495723561238496005857438488384368235484280014360840058612454008111780497523037437165946608200855939485418537885620496385272145996592092620712010816845708786342520309608971242091196393236224332143349325780006266994690568647047463996582053444334418076290024168311972555867358755460109253055884170269093344050955860706674456154243600497342689389072187576696033548043021721363006313529506968174349419176213340995380071294927067399121575150531348920864986820749853380573105253957228644562084397647816724941344407444095129416651512593095950924771870617118967036561083350890904148038178182195204193778218333359504827229349871308585799415638655425334913188055981094444052955444041328216719308332373575331424114882753673043294023203280726990647661106159427685716563548716707762762017490361034224468795388331375095417719461210878337706420868963593625487845366944485141510223344051856225943851837817700735182907505759882436783909318966353183760213342755695509531022656928724601766895296870527706722021388833443724759371210439073990399861884361451112498206104310672441668027913694413570075633396902768967881381280464991057626576541069397522298900619181755248266741173057741286525454594914329856769276472752946308588937873647586173602182544343175865049411200349174081943582040302260396385954605395756797060691049262695979568688566774173142123089311267740834965307324865762262509909254623768857566841449339724088607389090952206312214130195677342797865777464142559992578494695326507119635276911061264823864539162897239096419514924655046255573392171859404294312334762328428165459613773843440281410811644253343357546536474079904210064252748910209220502200516194733697316513829244071508834002794209020954468029516174970465501517250126807734214604901903884224190405615136126511453560039837008372398715625649241166974067078585459138678918737871921983509188163215662461118037253270865078911595567805296427941167560407184485664799130727529639755579835573936339947088590522689967429117496221823373667344289547554167183641469230944822180091629897508718697373953892041587903766117703481082614084891450820061200283585392630996869567394946495326267096785695586268929718571794466909335605836164742251908191645325398003302337570062419451358558239752653877432302611265477787332924856499742509609059611140877380331130690432592324651622519253045443548170295510959154618328743597423207126921525152399431158826607392659688955938488894185357502428427135104633181389860695822976470457900701817790546083153651897145116175166109347798690945980433051346616801013675320776671340819147371822509380230613586073418602402465997906166658132602256758230378076990785800690759977923792922368754904410044896552639433965831840497520991693781497963864622019385841265167671377258360025441834495024336353728363071642475296781910225593991532015923178862238956509861014691282688564252075016522827307839851205611743120128718536763098676383319662365259175464936562283746481284023062542270428230000433512805598970875575273307126536220906183443793194747248272128296175129837134100849714228258233750408159569342925937843912554752801775852499136561581878522494580750015782714985633934626257134035917822312905169693405126980407671890075855050228585239898790766576115289950974146008723668948261715703612174899671474017737708789423595552297882739067908785362745714003212219643197400222888658331300674031334450869948962801673209189289569079996703462315992920412603998609064114610283792854320238166352070370554997114953168026703190210925277688524369905331273370570879619815418630466226742598241433774233101711935599505497494053520029857211514892960924752625918921746294846467067147703186516260332542136328286634845351720243201943733130347014793030538215333024754524672300417872584593716984015915811021005369666667374004175504821503519892789282864049958430112848848174707426530172803891449951534613771610434083150764637350138920475386935769936505287920758338573804483144155138697703586752365079895059391358979526382055680283959241357887527315521760315848589288548884145584112822440481041514808504660627091336309730457691427612732141897224119019907128028554330303088770979718661009455843218521577928385017234761841740301182086586042542086823192144907309675198829186973247390558690461562368169987585006048802354324658725124349564524899038465773179060823142548063316741044411764551262419133797492149913274351488213761914942769204017359701529196888876134353287944328806363478232955814669068700681292291801400797934352038764237568410222372949765172320873363745697608039248787654384691623180365517801862620820838126980403733391604726712363066166175961261482259194927384816175950513977963066905081397282669467880489073578919954309844931971958929510623989539143681808207884254772851524751585050102281898865542651354747948481919078353694948872482506372846969100186577626954898370690853077067844483686603848111426511292312936062830757397172005410493397926684242862144838173402068581297795441547624092879361932900049799772905721211267852803700578677295621948726944729704434547496560275060240161650525684082508610263961462405769168526389567287107716265242024837000858207167663395694388464659151380436239582310468568976305521503932890892668598377221477014494411441959291826461248108778971151067490756184553644884764048701382240812039050633068693441287536347257783164169866448518110929366957396499253035376936816423805217285882431927684603027824785666101373197135951745066926215201614902122811359253929873603412172212400869937628702762289697564448840078112087681175010015442506688555286537239781842132940939429398968208901667855584610646992398790247162018284159481453551155507457692520611461368019661466250025567371244485163243765499088956444501770421481032544102909291478464398147542167966818844146005275754000752328997816062473714526947222508248639470004596928580101308337688807880593052735074613372416994995223295724140566679023929361165646447630969899507893054352148319134265805226083354158679345361241458638815217075165759416995062490901647645624228116366091650505778945877854609943416048072224199255320741230632791164584969288582909259184302514557605899668327530696732995594403173566914208737191293883460700111551693829213224762873521177027447616856423029905076934178263005604320359976093025360109522183999396635647317260664120771079907576277194054149388566364484552354079697573752947784227683979372129563572260089905204757269443335098038113559064734995020311550174336521713113084357413042981944235155199900522416788348150440800194630788052268578610897304202082744335386986752222883938823250395833465560352459564594344743848067267292601640146622663651373314693924421773123707224688848183345767195465743339967689549408360241274400930328037987944945713516371928352858923842217148721530492920137135687323062238747536976060620760624461958235515607643951217834570360811943634891430149374365050322087399923106541350786891574056798670133558437934522024284078101458491919061138473589200962271270667937052289746443381309101186288138773177971448834556462320681625026813994806131001205273412510575532188968614173585668524955339991048260632873189952169418817227369742105439547120878614909099133392394687467849533109188654626432645235423560463421070849367297137270085743214692863007772254959599989086941968004618607026232420236512371401923996705577238234564555428286454225011856052332949273488064071403492147082204953146655955022441610986664236255422400454411398562497807845865643446559413267846132764855872415296532166157836225443260900451760730528582664965661539750190014829175326662481565255653008022619527841752850450254937151250236237248187069207845570451375895361971365671205620137419778604281825096897418289856430354412749327753529636630527737900562368583684213043082268400221743389282618804223433405058534730744797237327698105290831663985026291872204409736812762587110444791575175143668737033562743403579520599563622972533664197591355377404151161343396751100288173275663616264875757990470368408737474246254806261503341956778799743436265746553027406777166814792653557464861560710689449393041942430442062719254128937310488990186417214583363775049485066588000921983862828191593416457529526547735821180832789794312089270909247549414211322370536384643719186213244748271953263529744056824292931388725650056664968281423134531472166098926040913181242814654879443686283323047897268644318726491614752275082764488399032199049995475973033211649791089019514027462475649197094874678666724099953357694498268524680645190014769975591141815122440375651417939829674364152578202760454032341331709253060919396074240976972647914278029866883400173368911912857022899431780820665625021379177234967179707804879876655459617162675014758628291541216880862548076719831274069841572493162485766512825954851920635416611933017679555573033994283774260710400700937115910499947488678734211007706563385967666043128012868767403731617192851408487773958000209244900825663373054501575268884809816691681054004422610667172131914800723743683943819306699716405283703186968059859901391609623164020238220739934179888561429863123934503630081103453446042722858305914203715949004859219747331304984880031801575808057040810153754735847289485951869929858309423677703261304647564035487468227488367148925994638261333207123000111873830271049014013335353027836605305209737624528090002963747533129985601201881007637899762108790355973674598966552909329114543978163465328718438125569962480055662200445843226183023891422341433082213601560868727226691195501683192794788593441447662198292717571197973779815840836946770199075839629193875852327864180964805294791588302805535432913705549887673549764312835852107550969122348297291782310185131551576458495619543683444856247871852413126650474876832874538954274428910675334881998913150268134698818374839844718013019046830698071375421023962437398006844997860795692553683771149188273282842227933443230294956630938550321150509966142614129022991712232075950916049713736065569450160469575598384182335999812291513944107780279390812903965664115440318557117668343582777064783110777910668517379596560996268871357201778705873929811693425699209341627378745773237366315337796463111209055109590187353936157705163988141063730991097640154716614953415286877939023191660043834969724705868593536115441030674684346960814643315215233528766251616112961638872858228024242022418097953442842093439920458994510361117032542819203420823369444032803264752494597229284407509848833096507434905353407467107666781851667509718427594836143704181276994812666801095161788067204758477205652085081136854465209602085599036701402438486387129254606357314952478978105625450451934743354272236951854598051057237123628713037278549730268169813713657446720329193338971635322704787359305255127033019340292530790252501460489854707327575625554445316600914660823239558177457319896892002014150295264879866297434981267566190696920465474123992427049384607161830015153182878276152402318564816840651944226771395132990051729991610835763755518129058408218864603568102945839654633838506296294095184925910733058519319009760206968593832372932313563075387897377257036477170226398241101066508775755779282575777774071431476609875545924278584980954641515937569778938599296839466540344042516023300415832346519907611636105645979042598256967545619100660353216243483530022662650400939752916080051941080358230535400867110297658118289364473300347346879446984403990965380751542620033172661034181608289675340448973947480140338285569640269093666122435515808335074132026898717650151072361440672618388113144771445500774810512018929708945268435438707052344137114673773346866599767201220623059254830138901416700153261516127789568104807489362614941318631121263908622502011709318169786025788725653345343423407435875477713398979619150202927852379413482850253621837614822341880048651896446046787039092423474713426383706890516284982888382841332338481599141652034159217782766011304863588399854469871461368668440028638820770825260427723445262227188867581302750242394849743200948595333102635235902712776519908143174096762313032594525793708864941977933950550050392934175682479213414134926382276506621993182390921382378892895255238762643388007988068371427580186510791980497254343760481317386927957881054904887695115554710317433017131277429379867903657973837781681678778981540607721903909141826927190477760535283957187454656315376453842850305561016175169615622853797710109762253406036809470964929344356405776217854513346980516509492663386583207751608038771849531857959323227823693222408979014252344464422752846027162920315710726066374616473575145329724509191383921549166313009118601362809471142328830756933432021224659940360611552039628379265061534025956997741332225156983100799784626165345090492368003199748643044832601540774666524652639859060701535185831989688606900658831983474358403695453505940924345486352714036532618438230006393032624000141592214475341842686970867452747256045124388103029754649361391283710287398761374494221561088222793097441247682305352596927410588669213262436977606404845072798598605209790982000763895307519243825534181452131756162639073925136840347809099285257527578469255291521240134919013075042718550240423678244232908781448844992757613933341238762169881726444754745859981325950597353321880639821568132877826978137047776061872235750612716366557752742995517328897907488614026795620184741231875972524762336631417522166406076082978803122977423267727979342430632198673298043086585764567025659893505750379282793349108167451856693052804358358896558818461342406875284594818684755671065202469387876812874603975072677540323275901303797835065634535900797526897936662293773772930368759722739219982608248677494702936276020285531004927483553219305339030494221938794387422909489125517867977521404770343273979153172668670502299474528301345350625259904252339974211769536259415902074151159874505060104852571588052723423908899774053900972334921459986916486776275191221043556192373907024085013536230532419724949314264274709030612649425940810696290604840822161818505193619729193846589543600432675875111274332969511844449816009842388474783083857647033043607368263550838978989533959314201859081611321411860947368029865513529856940489957833325716995586129018146836026731637803959245946041923055803419563590066131962472896126383276161104680346745087581720674087283683731606150445988106607863912686052730189725845329895599856216327682739130246211653207781739668029796138768876343250222952583124785824808737345768092759446215672475119710721429194186029682914312190243448656484459487712850494758945097767177121387873619683213335634196407086483365281969727212736136701734870840415474413313260361634047167347392985486039415918480716227042265395775977797414313637572965563113924735537285609509079565459399325578254211448669378594062466727298774196286207372847133124383256025824786702190080747469835159428489481367028452743354705529479621276918143796345020803240990428409001991515142299543202685142345216645820146602436361455924803744407470776299941256039136322529996549958709055591228117017306857791205415951127991086465759990207916413468819512071796772933918224381898699552449211522868368740040616975692206347973529795458543642648157874891625976978597540200666228107037840678586176400970391002124453680016058866659093830174622937745214823469569947457410326902806095629862312619413257424316980590651351797187473570630213713124329365315303385264196228418981608260323374878839341889553979858666248442001798303161094650922785115002242463454560912736731572826435541846167160082264623770868811695046494647235761385063244848291176468104114169734361321305986774313809050728211349537195015527851494849865685304327904301639828731085097631449969739953389266437650480898815702564806681887495167890425890945329997926564869238202166290592515604558885823378071181360137441864069247375363753908858267385811879303985823333060556722774885196398641701500125598257585383718874136153759573215937739264905607798851311269829021223229136178439511343485422177221184590153552333662718698839174345959059495585134725324827995412035727655007050312809876416903127282893627971999802073666740202849099669896881927143509854041364769145912432252328326520641089263429682254905927112638282294482564851099677336558844086219946376209229363682790372058061428152376232828287316613190263427341913632156837868615427616621350880203675264615882933752548404534037534201961496015790852718631758613373277033392644063056875236407818717442903464631202772315051327116213660641546483175516736502150743697346526119712910837463013740912557648666218644115899190651224900422944101657977831093383461840390631509580206132014640238096054042101344380098708277015324372774810182636489641989643000928262021634284561708240300731213963415152800141239783928064476523863102060288820039916743459807198814346588595094342047307786459585679094234273960785967576009814886809529756482575205090012381917065432484249858776237440977124566448116227249353490416816090325378529879640490638345335096445346267083163330120444025579480595396417695380922650517958829256315004023120879784839589413129172459481731413460574409633086792070557407608738915947944513779111195832256847396780721739380700818987819699400755412241922701851755727592143928563911597977526919036547461682331936068280356661423902659049757479780221173963590539410067043562985697457181669409064594300315706310791349918048558857913857584579775292986752804255746144303571790792809563618687182748025021690910971286627839435829990345698443592705852403941804531354137903241588252192022945932843367284297452274958383987962862299794594039122882026337775938137548876166200410502314260630705590244697905988956221550748969188902314970551079916483579348623279841419908292588835519503346120715592838794626989354625087991314616667678814014726149711509173534754166868542815136296209066487006745173294373303800111886505925244649047421194994844682068092206762136028669712965035942207642743380059130017594424551901094433085565232186751486235641200869472279906120300522185288578124126701789207432289516029027751582861487821013193489504312911360244228622001129849382540335722606127465256749005933191515300045020244799302408424046000849823584749902001238473831377450861171843717818300900737064775207603540387612234461267398277826334585005980569156148796351295911420724994600362075930198102656561648298529743560850497895021389264790314602928758703462048939178065632111780345750150320623888146535278485258036428165918461673680477362566833450645129122575062325602401237529163217448107549245767604650183600513413894042316656749467746807332766126694366899473125800430156274263919983179771379729818847199032303790867012534825107243229437165303404531066349393955870587846834681865614777056165764328907036851090892891378576252191114492008096206982922484655556063819808093607247683519869784175973326427409689606432230830108589142253463878229995068601387783894776730269085717824257551800112993230528825299656859574184849245019636588261874179467032066752807159090334507989821902640298859203791555444246579720825889875779046823819472764295018724487366766692518111843503958622328684287648919299111430478884168123599698368521953904330105274377231569259889123948331773612425835090321753827355903787579292203545941930061575910933935497891392783587977371657785682534573467553999547279615633343947870814736932646946313393481225842291366885570757839580406574228581028674430300450730786250970527326362155096661486808644935034541961608832741623070185607173994596172326577931734740204662640383627247193719579494131851181035960348166951482059285300633853114852491564564478401684305674898832738121143160853399679142040416771350495698739916977158439536005614843670047805930142832595267103770878508664534352444939136559174654162731179307136750565404724341067305721181717406140323693208907195979091615115725061872848094535566944892131149303847098371031116799014591194169979098501818486905373458801814199561204777641560251533651606415628090651793894634320806651824302122459101756668713793794019755629602424193768398415064358279219738848191161173133468185850969332314844044020010810503875075541319901149970547543002166781800973643268954375125849316960047680818404322246835661084485914025500937063013639342221923459938388335620628834224561459467694979651747601906145128755964003746091608157948968538446646994776582556406366483470673998824953698582345056471576299266449020201175029147207775073392437304275387460578219207975142180705335497369047770559155476148097143874265881554330185162019211163912688620618764327504038725192283315864119346505307884630145293995689302683077975039808475997151014039715146966184213890651161776567025229981237334397250430562148585104866082477883935754873215016398247540775798338669594812709445308384570076500126840921787453748685337247275200469803211963051377918219228919198573979507906810635405762628808100075192955331664330885413088554089482281759011957807400130209841617483917250116969810797522996722816139571011160094282300261001063455636434990970640956614198753770843179619575327649067850070612013330357235711928520187421442502253852888922562013263237166515943361097085396089746041471315804067744454893730072422959674981506708356084600815464369995772718545725553269932812020959071206544597562306534945271719673898885412630376134544622642241137891577061039055941662426691617297976862798089207947882778864139536321299038171673263957635352086306027129651699884167045589462363925951985402596789747285305901593740472478854761550088210951759954462640588991477549839736456814252865760607845498677472750983436615386916575668928518833060944428466897240135001523119377663281970182826335971743391642218070014452855834718482282154206642711470323841372056361220770479745554084934377455282309151494210206789031152203112009613028542658381483394138983513657964942569081380904858092716455708297909353348006662698069139076296925273008725822846985492152052783574421267401427450900662231547590041355729443422368941593331211660777947395465928597315623125579336337339812453675142171957753109545612660554032683918555283513426008933645284401291543875485028762754011292131944095162137805950945848089750095923840334917714838849653622680238717143077697315291959723458744229066707776330572546774297625055292404835061382273277180392613558443894705871674386187022577309792135857874646277725450469107518561896688804744994523027514724118613448482754845658530252719514699387834581141669007653186214346699805052607204679162849390632695067804381618101444190855307540300411317276575011238782091087196207592161879759762070506466651007305299202890394627330812471488820338666162465161439370433483035184311531976183121898434216551417529026630192181480008930805901575426495533707338622848266227538220131371306832042998300379352336058774366624698880072662083677761587259614939302725875333060995505427063460964879835766342698441966467794556695595966194486864497492167713938076455332693730598564970637679509236611892693533209675154802744879157524432548876442532604586133352596551954249376482296441201830521095385324048985780968573011080794085555819091565064509567116027604403986108703880918244611915689748594073286266688871593793772098249657501368112233678882771711708804043430794209108465455447566792949619785562598442039251282102563401246381953235579369747703318111928198603780747677410765577644238949476910981342253226135059057056438432576108092047885722394526646996974640349420498768213980901318445421459110392513792992805544463546914782346993949293670455814521485153242374566814536440084843800127931204358855665421116582505193725927605168697522201107245757014924509266335737492167091386495661211829916856473223048989138523179482488867365964077454504330673820874463436520402511943539860268870321299035198639680214909661590021993666375352276321332436933169091101944380503863399424165882201228249646674939548521811580348830878946133170256163364150035753733984427623363848865400950010540736945921935170307219150625310882607932455766998984358562198122692901241084422251833109083824636399951476560660741520088322793195715948272088420487941559498131555690015544127353866082986179970323219983774042980113664704204277442784454854796579568403864320200329631358178482031435334000826698280483424446273848885521068091315048475292374320704431300653600767143792266477594329815716739034252127004436523590577666748017245264832343010228600983750550762969415819173079142221991119636663412296698326249002272338113301421739621647276768873079174476754965216254937900720462624086555079174563369246661892461405696863528076000870289186876060424486211801268479684581665374242408207550497793193844516936370069907344064178524167583748050593192268171471583133790205945396345221545918279282918057102833809242800543851109523147263510522481381970700476036363851779094652926381236943022378604070592552614593236536873737895334122225254460544027494003670983432132972133440108531572061122878663903859479402676307280961791996490298547449370316739946234942428248991271150418856172322758108452280360237910179469948116413487540014884347473146128437485870592078975852393005370411254885807037794834993034540368906801533667543686537532514200986538941296841250478981840058706490667905004491739179005822197943261982389420632870172493538945158248728150001646494185644360631633894824627765765394691907457898853003407965342800892009395890197796814533609961731874762535964650306639377869867854832647885600891891223963995408072598927441361992368018711289111455756364911749995346385045576268763104201362021901058562773420707560834806140882301848856562230080094027650133061773003189708618421637063846004545042114731386050034013448358566938160515179420605379557626280652961841535605441016461978248147665823698637081251381478501578977665410519838455845976365821941916324937017538407383513912387371681801054400440082706950308782870202867994914161990384660619408530211424567792239302677391677844971893265090788798339620363520832829123517870191917618315208262917426832560383462516571567616953536551312833807967628837072520096263066954033660704413438550715184619477484835440885216026673824414705614159244393847270134978272694134920629628065304000797183635958245921132501906539368579129309264650766843459789021184169070321913933142947401995468021386049654414999609392218905495548018979993111149946137000028215120248157784762179055264822308227496616116083761725757787223745405258951067227844544490708525919901123945849963127092031521843360031395192494786625049134013841332724129931996834327756259171566421777538735747776257907616945608132573419023076234663130807275386515231305470754244279718320604970294328264925684109777576936207024750991015747923576716886873380341351252929955734135092984096548853809473073024456181264903066028618357389367848135410954783411890720952555997902658187381865036418630138249756538896153905079175905069907482329251971428125678669522612363501265165440622589471070712073151312042758510801911696141870200768451546484918979699704144939186814472729455071904348329474523145073936887686992426199086301863498438691446543322385067664536731625864882594083258359680215687720060483608422790012224742263992344718975144932583594921841598190304098520927386057462753745243683740820151819763306723912965281009938658702963620869883403775881244897615790576561824202008189853323502522934512489745789145099417946240554167587633117832982171916711824582156352223040169678187186754043314490913509523011337854685112096516533079644135295928143362799968018121334577464291438436701407027371008109065186223308363472868699626509013626771898816290944838282603329982777757943504874063907256058072227489068360279666534613378379184797670310198518987312822337783648996881243871929749337607241685955032973561726711051237782727422084070589567496015906800611679902170797454840267470012721023424082230491543242653953485447419280437977315648296115594122379841394755844077648087970714523382592776194078954471833122000652030913652125486361129925458096518310523703334926665714428620810994250615431407331385212135659158385899310797994599335636724317384371634658432669864925688100781125409212648781523264822557542566291131096707187778528785137854723812413708446085922621712826550411332110692333438197054991960832835291249136474421158687129804509916054077171657680400353419311856513620673444967131692882304005485184150238855263987542479389440283000002515011708036629215185858381062887318318369717407677970824242820371942092777448772226778093644265804880705081787921249529313695714491683516420332519940845870851940631219804779285160791232821604485249089590595070423912943366885675496316561116924326093818873608172582984045376517857328664912084813974327815093635177453856306716113272670542545689350248919679368817708590474613988913355876078707873454158426262687737336554243035365964977332541202626199470421253480541608909887035730775236969951179065593233921158340462327120181790228581315701311393339945959730972263834535141212644393550112049368565651720573083177400617434394880447389022222746403215576011403661203262920873641829940327917280756327256945792885885962352698101541513724159985662562637251193872029870809452944200675659588371597371148330998985688827935571822538404727229563047195221243809686560752177969482040888161386574893001713361756651593866476084324672036425919453643383004087082263634288292599039324488738217562245954158180454989915520203479480078642812541752829539201087181766998621261182681946999762265480845878770138722459032674889590755966879756857867677295071172911350973535373182772455065815624357172434506779019711861660039826321374620717775568552721932197682118174019900395520643514517607390777418619126082491618627571748308381027670600199093713718929166219622307778706620866608465435201217186832116834852051724658677556463889503416688862622089117768183879842230550529961585794578665801065747591378096223351094327004993939314666377635432127179552667369328542613998607800023345582104063388244605767677154497103585818312831694899883917270565421177426559833784811232517424111472241186773688695958688655423023223383060496844020466514111230340852598555501102600375231530659782004229181656424199824271685948796209445990421124462062597596338974192814237493214514580983760369868914462897989535778823202736061375739001932443494539736321874874610085330844532301471191366469114407514487863567620030252931411977547499139739324542357107454760450290261433387970403167442535425742090018956953170540135060437437161554096019956113461436554048756783579179988686826151874923318609326260159252235921535711742048014215091980707066424564419573560782900986683454385101857519159293103367325945141231495973000355563646272296181095727972257592755013587286145124773870698435780799357819722676926454677699680864646955005065087239376240721487380391156094353835049185595317712637618017989842611828815106963579005299785188474215832013924782934343141304610375849664611830842581929770804630577059226718039248535316648001821277921144739318337476637488824291266451834718571271176016621913274378552548334025038979508686216054531863088424364945031984571231647754461022427894413861356940355354212995023762249659295647666483536873718952295353799515461272697440069035327787497691127544182993758910084591556726142753398116855801314701540459323241492593350304075304863559375918337233837031533219837910148344560182765539205532908796052376289327029697724872957901758545948762250718442887673284378327287363872634881237224769424643320933903904038131632496381540396780762080672407572122220257912916549249696225955086575023468369745827427755308868658650898675128897396530567024162452905859402622620383009987544047879640296917531872635296027402407460393673411207759042952099028363203408399096813555484328314307847501482177566821838579108015922209972697015474027778880476622729189519619557760469468684143941849135462241403402201243063185926107087657146208884714730244771280892056615567158165667739414918921831651371829676070228436474617127335929695435518233271556101034853866694939651165135427694031914610086760796042364042309401151735352778318606410921840586871551396314099669907949560169137865025331105679567642556261278950246552296127967429928159127168766643517070487180808145122168657685827749649211467044618548250427438188612606409528181716850386151065010617994924543942614188277919917752554083869957583069458550040879192771098630862908943511447696483294912058642737292265739925608589587845942139618403877451651317037629945359921162631096006545923367089202308316318794605890026122810472751378122286014394907902874964421643735166524461842925365324594259769798813868911615887893389400201876851904390926323473655979853702756791606631442225830821525823717591052304686852118880372870431923917347404842007681270900823936063230926043838699129469620480498848895436006495246569633002345508096968138181343938723138946227411768750523696610188448362493574460513594150583085306585079773250636765362647689293987443249770036239068918878401444212949814474934700155148116689657157301203584983247821775237685417317891156490485115414397875234121095321795206275533695903449622297596460151650121092123174067394011515752433237094904776662270198314350425437633630444160822390681639712203315663846977788465361163111764926876256232087596903458744897969538537412420331912640890120253203483488855385857253855256194327039883006638465834065759289376723866519285907572319554943452504529462225485763203082011829647773199614784863389011334329743068086303050076382107419296167251434689925535870857298313985145998897210338716923595872375352419039490926839155816960443891855269482095854781913890835631026360817936646252716795893636277304458065520389932595976234319421513933260147830125029337481943401069207291022866322308785624839794916090511284873967003704292365360724348051854685926474052787464257119049060579627760596213688292205195670511948191753336846170816662280371435617563649775129898733223976372138934212586487886259382542790078433832643717308848172643532744773045378074604152462034464432399258160054876971375245333511560171229792169376175384962966117226480543262872234349420886897271442873870157781435469454222020028454931797027002142589225765618302084068568618411193052031654787070461561034051141260122008201231161678402761366724095289819287400201007859307504349108780847439625528440676952296591385548774533527538428994702473650901919493275752730742600628383373429963382075224176722842748344463017380995252800917293350786548491517645504325944492530432766219485598360679986941775505777547110470714420394941136604069320843999029361810145813082397814137769625390974123845797646407711546178551992528226309488347064750845825975704548721446228399940080872576643664952254348114288990199634494692583052291955736590082968312925797933938297863382622984271824316220153611512848552285552200774618661233756485560878479302324189582725054489431472640139450109879732130557219238482093567902715784613289428075404675348729040864410233011156354929173808895416971671431664540211921521506696222057361690211006936012235804074060412693123281900478320169798119433693019458058064411232058476839433894460316532437241071915876889450552145221440973929270358511687372913724974708000799621060303512826042930964278212139638945020216570239602960531075041497357193122883163621599739784709950124222054460340550927578746853301568850650157359803954199144118541592793574784295113719158593793098323671336626814163825893498124031297121825893054020196247093857310759454452603078127192280137540164988584327186694854411807938425755380382121904036634730721848779914899863601361292527676022557345608606908732460817420851184685126871440865606925372850814031167538712704198022888429642749634294189229419957106953653945225781891618174920763580938318396353599511766999964457121977986216245588344562308034744884887489909931325190081274361608656231767929888223072261127187669691206046766579735544621080451031861855157790048866202916589953814291797883041732381721560587029657303979748932389801827124775628533410443836719673484821636463402223460401680872522687353738110357991437030319016269091477690772873900188051094899901790768624384657415579445710324581053797859960610362726462055805254772626823415918545396862643576677258115098775814245449393678076325779436527392750028683119606807278080171299993119996500626868081220111908376810128579885332588676916856991746314053852282045215992838753546967910235869805530827051597198786708883572835813807081671648981345779364121543710815320372925635053269657406582269974880578466479478532877513570903126137633141988873023665353267334248137453989867225056477946925696332219657279737261534885464013689842548772744901345528673996778810472918367901065622420307923533615137365472897014643265390974466095103238715164165296706773255878768351277481620433773112666266592595205320824753031425260202580125983953429932274027479078341621437736149954478007977818478057733153063158301760008303035779299496585416912810687720896025253572851761632563826259372977393936568951856545633022748383625229796518394601629815163166074820758896819851759177087770478211460958060140354145354747862583167624969474866054749819948841647225425437668102643197035552640893358457681188569827894710392778757269927754377863513081061706562169762407267338153666581809664136651131629883228152430439720907390172846226270530434020309991313850580452890689141694256942138708818073706882726224504348658965560066362496404061562586892537180335304699957503016114751929032205269017370561943784363838412592156286937645154488474899655951755261887413166747075768342729556067780790463987562724377695652601012815492320924948792339231572779608456910324720611287765941657407922278503798253066781445197865806077438376767510391605303873046703039697588392429042009051844248699159252330129521701454220402290687122154775130330174436910405892896563336286823091656924215508171979533651473311110347871092984992706017424779639282364517545894574238265795414320325543916017221251321121648541220968961237265084507445030678444043752449395891008141309974148809116963508221906549238045502076295055189300998810255466552928552958282334491693609019148016180150084879854850389291454748170520041122440794237310613251647145191552476320042596099642672464373959801779975894953409843041393313451790413496809423362418594969830654847758156874639111038043603873284598388433960573786242791797740191400178563695706725083974446724677030056926584859868826505188168272435740990288808832591874847768212917975526625600612231022723568255068446275892528001813165360986786606315987044643039594220530341901979185365625173763230875245772698719904816126434002054160859454875848286871738266346216028824401996088116328084774504494971254052391024226032030076433767052935173288260515375593738218723269601079516641515496814200422161083353510078046245740108962677317402293108459231475836200447285259366769876167201339816003238348076553657570168165063510658946007418955642861837741654916423285201805721232134691237526366817201406995639960876871479571163130009174079060290719037205673856593957127064704317866943455486115963569686396432643269716553008202766705855836325641647673928728266869761052886949267635059741099338531202839200166159583999172073362357397734563130780409688084793613994834456223511043207072596473396451510065161818033677578263804208504200640046978947382739446393250605967411803070355597214923813401196999495870632943442499677640948350239610303351241390355595798628778001080243022273672782482924369925094337631344464461317979306124182918436539503008398752960780545519530682474057776908416332963961406058793839496855491283173319439531215208098639910493623624036192919796875531889663391519151515886137127453032635762951785005491296771160265052568169308913375050159223671112382763508704012963532376677298417335668151391779017589895920768712490885009601903760843884378476875151267022244994710158597133854783505347628286696931003688387902096402322934498925743779720956162294314210039703333162359168603641647430760216841974032793101609439284137256677854393310773342525432701208330903178178482918115622246206364051299139310120588614042510002670504275581802891062365441131312344492163744070281020992131134815721615580274904698476323571479459149422527834790653734618793018299736825425905036759030845673880633709880801568451771317311408894581400121271756960244135492820308739483105153558555909876449486159176431970717118778982715909888630033277901240566916244911168781613473250329787924974447802238427225745100756103211662215008999921666358879689038088711821268873276533370969340890382320344009810707636083978551186574077401533409681189830058654817001018737513672099751795427783983638418294730171353296092151235304228675403402758595844064583478452970311695546003729903223996708750135515770328446202153822406287351444575406504578241902727264886567217777062107176905694475985505941925258531216219556418830728703881567261763988150033036257049019132756659142160773704576928443540483407154840630760923848458157395890101107575397372958225137507618250379234724466629919063446314568006751811495713020615645290870319635412514707641181022042579602401069324727051475668547763085188100200494404063418177485510908928170563458884298308224759280377160729258642572218624802924244950516727797857224156759401434811199267906441336323631342873266345352293630198813059192805432242149551919973679507252718432610956943626327529786341400595396805736533229424771874818171964488294825227651342810997130626685982175569074025085783553386253198615325931051516968254693226883635661010800241892820217315385051953107592606452870360811090674620944172679478922537507252513956942435026196734347857885354240387717098759226553375735836690836597422015110710780287434073407151554289823893679297096419541634174792852579598787857869011461285610382666391763102138527550417479569760771207275237563552099981326395033542665879731018867173214172919066024266810603911444963825877477551268767534205350800935894781652265607734865923189484981220477023697763167029149848966940405789438884234783422105539178579899920934656383210167215008525541545328664554826664404278696316982019670751527951379495161768535760327861315581371637874479452161535960948023071861817306011374608037815738769610669503672627400327276298117902857736188231838649347097690124482280889358360035495823312076069908062011724820006695000875851974941007427241599342267958834014453284471363168494530580184429312606670479045619473587460452008702391263592215573629999266748404088559499012328192255446197272487050713044966302642159373739785589547980508345479337004376245990018799363497044034377549404634736809427065537245646219654925705465105881445012031403053454564727830243755778239008727933691200524557623480359309831870685550834688908606994668507165576190739132787976272453415975448836533227794011094843543469690882634795181014080857537217454451097395943544138953836289747510176579741637937572593274688287297443269534685240887866048154031624418563265137839059194042756849705045506032057151696860169331269672407451360902313998921948825595445882842288996731675570046362558849732597136194690065516769803946681826899338468267863291502901844139165054584061146814081156638813969139225706428156911445803603340361054397444607780274595594108542713161154716702837743667288008076003806823919611623266769430858688263295579352543506498244989400493069209156904825513506407899841895287213349366110848092115815754390993822805429200780752737562207529173916043765437995638780723877059183030490022987402608356183529311731870375988917166850884228562818484851186522007387267340477083074003219798728765963090784746151981133633884494758585493857130769729012809698880457002719992417425797144142481998477864015524076903147348967538014063778119935051516832328182647173486815354205039898382295386991503076446750972303644549601113541648098277088623150134197448118699197255325618326265968778859573163277498750886411338661195240482937211360345469567451975948873469167066892475295568858804967589927130090403816971944389265307819232459266980427986333738129661966774220482495544360663143443304996387439568590088820440230262891609562641355310758848368964329720317481228952672369750954394343396330502953909121480687954923412824325531047556993149510764587649348141456881203987409121763661226444587824112966237114743652983920044619458782688157161310916359184890727935920766594122771008051642106135805144422448381754421322433093498582870568457465996073949236028498496869433552286604586827633553551984583084450652699476579154871162150088336304345260963803073533843178575854393651453317894216140980392697415404948025246771155683538284284032069948333371691163639878900240844702539498489819364385406528963951026761616464578923368225907278018149334311145879985574597390896220003253612846057270181054665468721282751742032135689399245698658718973142271129044125525869605373035194385059032061477390106250100437093682317942511966179218085534787235298259271055121580549847953211809920375291020175750164282738806365745233579788843485929053342252063942516723862861739915737553250590628967330974606204717180546307099301515949171177589159517595278791124762379010788553238808198787620317209663967088486615560149685391345932824047811688455324366908896732285236175596186515171207890587724682285942192890581276156280196543627026552874630702870256934971808137804200879997209163546460627543209199982372296461220123597400585010788486124557531016703106837578650188178640573252261336299010048609898984584003085122435915073877627690483809802918089529897562024540373923906265228908680074241669157205565212659955402977972383233260253914862983708188124608420915389360147501340874228745708864626711493817065786835827033259869892473501117931130431878116147709329478744635720921445404938562350137642028588229929479147454151185660060162077451686256733354377793558550648526429792438210478622090650906230349703265627770632304854419219391967069584540705180658411548833033798888629544095895455135705930692001759802343331861724581180857269476505892679962508076408852134134694440461497928855820618228986014173548416008060324323832379717253085619986486832491450858044482323761951478187976285360162637129352617804099752352863726828427564265967555947774718847201438576997892707546052536893207641364730760718414100642409766253196812695571742535999408915745503034655363117440871038938406146286707400988598084665060789223631588416573484972316418014612005121828142064381078287179460818105025773005645048688612510061013576081196108389802218898476763217773524090632284622741826426099492799778582596079549366200886407546624245548651492601681579071004305454450411303523864020845890072129867003128374544324757267063955158103328206919831299090895536991830795067737192886762993911725373004235298475832284475372916217483457675634179411973805367765939841007608819544055418427558477546092162696720753076650353402182593099827987844324096927173653967093757453855068515156155613769622895810095183010883088304950379506144095248782199154192260801752719679947802464782557099015113210192003108834159446674909230279212046638991023013415450438260203010530549802424527073427173790905800306299211770856156429795369154792025494744933788751479093693561380038403093434054829778083095399957086562489949360727721805636070407767192715137044921125642967406738975655479660134899033221947080004930618297716159718548395900445029840312154793016363855275733954667296539213228398054526299325033187717471319295866523090071738824322924797212034927042685295643803290069425295992609873927989704713723928820088695108112493295312534429678248204177888594452318334588270360596254324755577534142499468124551688905014439396100703742820884642645300445115254279628120342132354502474957866316009812516761032396774337352745116496272792513361950798390893576084250097314227340449709376173323978493428167616628222234387580353383688613546614875375549367632390610063334134953352495562849003599819931093555779895975065569472752693651498670048188032919618025142245431256361666748454052533346375154074817708645793826118342089724029345622769791846665620384054838823207813348238767726901697899816160321740059849479095286303095854824573959921177459550035516218150288030768882299557465674896363611913551365204744217399438981453073535118647235729982831186189775962607889278296490822342018741204637567194121391766157497659378198828941392656053700218087922647819147062015181315041061004413819999945551440999999928412129512797636118473288634020817562333223040925168352782914447784200912259322692703185659882614849920912448710224078061039416580344071899963542717704499117115959602393835183058870699310970425243797343765646396011165274817792885103423520686678004498547482633485162810651375622019539618828586781863757921421449646002474458491083119171462153355006744824962978729290007572330401144721485802779817058998821390529656669508708520813252582799746156805993988695921517638974425905918503729861993961630710221069235372876283417807184462833029236694130630620545812942339760585119396366303073662513721749766963356146333072108232818022192174607914497058967115582705045894174691651254561106932680564749385224087632424324593978795612348254356193420304564707330031925325013912628953018338158825187016438649163951162740527518450553998317447742650989451406603628590927762554662035961646309523061293577391777810365961608779374170925504268930065943976568135895007887312673249999933348240930764764648630807248099335062612031685434863188684274848309143136432415420896423255668279614580370364962884705078975143494024230001910374140448087763795676271234406506806916485657652792081812928050293279578243172020979514538892538806271533246427873900356511852907953775218466989413250659660126906156367377067079580262744097607827082378608014124866001496392130512420358641991263156915418173874189836929645572046448955075688512079217673951845175845124519219943494060720887667957750704323835013666591421732449998178815880925560829872088586283119566957468829516999896167516520070938701394130510881048520975579617299204576874634132904142009298144200410993784486605199236583497975055955861626849341909512500302040300716739727540769515683229961560953519684538345034414769437437252191075568515059205653728695525054473572399435343407813232469326698213550096041673263095343689711802648833366723602461598906861748193361641422538287206725145199064169009997192798782357272291052852468538125636057529125111672013251334487979556984618449539184541883288914669549399367485194228722658063718460677875263337251459430845498746350036432486966741778000241659825004788971620127488750135370202434301161882492971279398296781935957261724442460681988580620023251364633540225175784634925376612376403611273156788927355778823252739642235391883871426584402061322153527715677213871845215532889242156012920972302196798544017117013765047333999141265889775649522066770580828757921285163747223634645548556895667490412358162137183077178002325413274900803106307968548610182572241261880314648842179168315904477343077186872875477700081352670764152919907388612496825969153827141056317323481793630751101902597699367804629438685251841688890685609521778622235100661534423941530967572851668254491615714127588170817261955869167114644406437508783384935607763903225340315388386640203477480968129786129340825505913002319459970994768894928561481985783869077385479872911045367025934748313539267295189122521770028147411017670792191299076391973197109589844497741983352018893644895091901125837060625109565215808696059077152246240295960856197887718065401156253740949586575129577092219639498239840858139736266548843122183987060400033475813237225786377571377480611600195749336716973618572668876023084232614949069168555007179674168339377002813937455494980410243998643924097080927471518472765494072196995074057146449019191274340158556441810495201139108063995530780466187199191057319842240204577941715055302451075956265044992253242556574794546104180193708440446762359000044093539574085541395990295978446565336183715578736444148485241404374753707988834807997338632888695456506530654091523495717109504639625902407362928246258398981638476136177869831591637370516925984174030402854496435512090280642040321389948211014256090829064572588245877120880820885419252126133616766813275755456646496994821350373961252087428805686786328127551821105325609105665210809728187801724206503724424998853210517588113595579589426142548133627154313088838156747009295514241323740199386592687292818597371573526582585568953538372607908026377939432947807757782787909233042911723635556274346924254563366408429001149620107202666622539338042747540474501838673657437209466230302460252978684624376357105694678313223400752709135397475308941757329969558552749014085971223766209176698889621732839768391381701526230347737302554400997798016484235890217987104227148278354623827066986477954973179532779003660954838836386034828678790999996576954948487568856274076602963152522356112052000276924805782824252691579656459059023105331705540300744611051570029205000297613911048629376939487735341060353376080294585130015516699966447570482707034084344398944427979656700775459528962687436424747794878724734990696898504544880400765715217831436044837448031311883207486556374185565585775849270548171661719909966234178544599290564612572804756105459921804185981986047223839277787527793261139399162994558067648039723255331206619154274654752036921931498079956024377553922962243581129774639699160523752370256500314849632484040719089923092125248199671735649030663568676280842929759035823701256745614794587097569759606927166781268430238558582901785460030508946064492826424967119637629410570520552126352287286754368990194858693007559477269832053826148182739881901928444487238313049733091271446735338015832089314090773106453816469986887546627744111610490601575536466867833426612804039586682589740923917238524266542941143397747524141825993581117765922336166821393985180946108612126631268759292731207792439609694114460750580646800938305318401731066111372179017181209391349223269730249763872160562857835617339081874446990620756121131958020049574086373397964869544423544888383984346190909788329841879878852878567851838823084537181563917160281696671578205168547471389987950470696731967634960738470301485604155305955151149279974709507781896350321910206245595134061314125589978583535364435195416032285598071201964852861762031170588744683676140913158349437619517112272163486027261910225274380052831077866670699872928971772551345049629332424179882817033214086946310242327318500619201940573828309900453100250374591000748707287738839422285498981992429596148659157565959943197411330143799784594447512463953868206274244660413811617942122845954934209605379955636731532248568462485735848739082924959221093542145789166739914735577294884545385433747465255660016226600895937809291801222124277612186782225457263600527125592136913458689584949948047365613449710559696142181780214863858282259012174216809617584815449067107205382678930852588737671449751978603455869571534442999704979981857473443058614534580063712562903057553399448568338595810443649789626388080100875178129153709002448038214795946834558497983897213545405124011863236900488611410066291881967717338372877315850941173416462714090107197654989829153535681533525720403643524486686142399861554530543608724855902894296773286573258178912039087131329285711686873326080310732995372589464407349548821084298284901924783329103504255339251913440613713533132473752213353509335576670167426538527887928743262502060804334108301210064571074550019184454577719292988669124595948786187692524649345307817472367107559062161761805580301818156945130932746697944447249359019053460356161396450282642115869005528399282834693156621847584866089072052597163696376445216429033478125517240231051578213758323873410271979731354083380753073526311523860733346478317586081714621898003952583604642934043957988361310805892511034717408856498644203877351787846545995806365020304039079976039501743406191782905467465579278052084891048443132598726727307368800749115981112354049289135085531743449503629278514430994689928158289567575041598711120171600564004657343073597095173517842535743592862303151222086539365038852121998275627621584052393738693064874595676874697895808226193406500405198040313042418167757296877230804286291269380799399004835709595675911785958659004500811159683720720744204962433513464965344427779102519342627905689507904940511404448252495760240402735920152680514695833855941390691084206620791007773965094461136244031151860096182458748294423685952250309452631528206867709295449341541378751672819690970160881566535237736947253715305954102607603118037847795191949364091893787945368689495269353472699635860252064553321171124608834921779800912706835333489102204337996666525990171955439562023218498701565987037186657283509335089808669521758173597855904694493244609045695319399940338658409238924721109095006408027797336797770532892462321558926039982799527311525812792170026370908795628841252759611705265332218558068314484667901591209523131155980082913181539794147288851277367367055272641842237569518044799442976086661945612314626980654095815070470265744329778578736941500336698571228340141098301008197564440889880531990261028465770582063240929898557163113489966218365270379556715936360975085821823997858552633639272620534535322148867109053766345248513842487370979898139840501533859793401585165325844501829828098939216751087707802369099787257680446776766197278003559238752739831034983287127093758963734621778090373817496729914634571234366329742246557908474292357594811979074852221119622132948177083767794049143189111530449722379564731986367822527626726505770665256859068915081153458195042535665966302065520039550450466524719648041352558752695581777381277711537105783759503409988202679027473223079037483644257729681329046950877362172014624229811086432029672089194134433376387888966900334077906703726652954119753515833947034942742821501412638806783673669672240962304343497364988834019099578041220137959856898362482451531619044072080360707350550100419251906287883515297208674678562194808862284528472529480751119467955803149907592834930693152327154974370412728859215243337115453550339438312739238282371934392461490590133097710109345637944074778504343113571016322140518819815108637309711400130168822592520909858262174957465586404190289229018347526883716278882519639289888997604232409551175778649316505016418879028445172562694666475700905849015384761576973689201996743048425502979188319438748896217653536560018952729433564572077403904817824140075577108379912342074998027268783629135653553373839750634260150760317555356325244241069206897464475909766286668828671398427520530683680479527402927418858266718983539330910144658530730317662700463468357394666324186306801920379610405134937234126299525326943241724515069996689511971916543910008509897417022887304948927754970526811303762412934186200668994979244328214581432818108141224328141702960119408308178681148164252624553086783385823628275392246707976599281599311843658141142264901152272057349666689982756870081870291675967957369229851955144016577212137755040500136265741955542170137677508353403442258908562206155920059502134945341699764679505312292949385692510373292200134094174863936872265328100588443081901059276736436024529155907188115402674957620857261885567043359240944454252089112769920080718919952321605333723576495907588301826160466349827599731387045102175835038574163386110452101584281765892576385622679867554991072488809906644855203890879014436600563141444443016512717187618690114500973019460182486468596149024495568954694242728585755454132393650215309686932408083574601229952203977044652791897609976917552003419120574709231997524123514160645011737096353277953709430292625927751468218467512059722076921074405209509939428272785604139531789618663758999419410192546885792237071285320931327114643467310884086821570797283508317501727870650863031121998871608754521352247542863851784644247980724922780950277988676515574606283579729681300003276768549429607036158576869736170143590528804615444049850116452788396343721719862212053486298506040659098963281554727721344173777049860955542979913925828032293666364835151300164732361558065279048026912457468420082254463539161666798629809539864061958068676196031096395780662371916771058732399132966373895749496920735320496116919655211896687419395742694512553505363710245102608774885062461963269312113420466044406786487873116341161272423850549848807563479726290625940079396842414428445901102485401798148939252351464776464277637564410733861689428671770878093978390593108972678823147821300362174136623211724719646865652163847378075165862589407448030459557513369961969175153334773554508679129121969739172651267891715698252476473271526839932883488579792995700768601824252272054502394938081658310036273231258838772090462621885718929987894304205402048366782048351206783940285010569513249999665575116769392209718321988053627989408153647815174649549750118687670900327198974531691204401809767023824399010330977634058195968762652039842748273410086683331264011001608454398568753145877801671241218247618453808548657799340363316556790805601903170374553154941776219386520428055524821270997833628052034073800503505405960754439881784008636244562583317740639888373908325424952469075651100310350114912644547288680755558593028503286056476831304707576096599710657554136235330990409612096762650764756296961934518491796825522111822245442451129188954302713432861957552870346947449698847427737908588632413665022938089129324559318679912965538303588059712411440083370473413642399579296626925183264106571933219559580574938360674079266174816875397575770868614897130146838661887669963776656297423814803976854735102385457330118947157653816198213669353507169054924191484020876603215761677513495837798516800267551421410306999882380418696475546538754005600348873965629261573409114602755577545881415630379208822243413435851626410194925888043383654283858931896265220875244428494889305869163483352315895928197815981821489903336923613379293575763099902056685845205073045702111190083011871330626973343783310607361098221278772936903549359066131720918212670642333644406583068015497595843675912957644375093692407426217782668177727509429052218558280167565372647550053952453606931908412628888788508159799817064232487794415305880630959376455336678945877826294481498008094380312719175733520318743864861558803652711411229928855032645126854691819761430161810934789343725901039041572799161792936433612722569645411214491638134797080323195286856674422269817119240719487814216637458811218533723954497512278483286355836870157052160719992684741196820216032197283795136245428383426327379711738663988463286981512033792736070067733967028027779608335627753780976406989225926849515734855162716853202695620328525047038480066395670390815969456146867669572141577483816260092919246769524918584633263007961137370328694663711165725484463332459919217196744831406635788322840509886110529305504449057440554318245507466997698609272320965024319417676179525646683181344122206157172321152152672344302730327499696311499644798892927027361249864528897785827622972202573051457657036930665284295023376014744904037958847227705087366082996631116260073520458303734508665723617748335240671737172511729354127581671257705523140977183700722694318971353645041754994458091684785821422263087880836764790475085402384962738252483238064591522817041202116617811691544024545154697691915479912512690742762531673273715879511675757639998304317599371063423536652054442976242547460342709859656262072636147818204414531294436672480109979248175619639732303256113665085577554331315380500282522533224783617342094491957467241311825222775919577633600736195929618821488341427905028153155994337413018063747592751286086552333335091413372683340490188787872684114817925432959708337643323301059307703130777399867563684794563244726033420149503123060819828426232481756126258724498461283670629462022302256308142990939961383822930024699099374836521201907925075550730901613523643326432638546929026091222076057431028271931950178769018336801420100681951511901959225423645475789681614680577492427422547016606926531747046873873179531612314760527551849590925697776180095257027631892467922346198633962106990006635980005498310813344127134975079046555617918747370986477642680084884923003166371660223575281682367538924448741790499318930061262217282154394372976032248276892807299869233273897213653529153988725660342932769790968405159133712549067110602669044918454098885699601936821414605440844038350211323755299847061418584447061871010532005897286269913649098837993698034024858240336527931333884664444006424270511178983432160395729779557355458944771340882153889388109849392942202200750529628808175332490944800295731959561022889176038235883722561854337807278454067781758731727428751178480084968086015917193061568373766955899735150288520216291015566169746273550671179943857185075241592951487975017258219094123647880532381617331996710575184959184672481571981453597222746356727324999460335683585503379707239034631840117644168135407897210525450498893855863681822545739799970167365720291776972401135148205397506000793110938409282676672648759730807616874584833235867181758893535499810281214111260940251882221586378048627024875766100623987325789111825486204343850774913115854089787650832699260904741944068402743521614986164317354701263584872670331400940699197463735437512190601648884319400125142372228553040617779120983905064974569202968573685492732549951872696711796212804774379401841097885391885620945925346043257769719869298438971252607227845564083075851370485273107146037055654219100345685027208755109126362199247021058068125546743380603102141004551989334479834118502147412398174586439665363405624375523094699770715420966960225696679923315696865129537638763227137153547600545595012651852355504272303299891766598579512681184322693294313376519394287078023075623971159548904593553943175238686270754490250267943403161542777850123267794408330628149975275349063520501313226716874222148066400757341532211718019944325926474206583946061976567837530801502784252982420756889422086714292683270044270806159735448498173538447048541649496822038094464473864423212670510981950652459027960814334788420140870953852918523094306419438910659546335737772522770971057402058199828664983797967447033720788395605014087637004797172436384530785230915093276163805934992800680718153171880992267726818827000310070424409475603494015969699445182679956940055378296394544663133967066574997861287849557043160009605610515801602430494159451607172416945485708044350373300669857477021276235913328024879522798921009049707254862515701462248502475908717092560723672913958082758990908857442010445273999721784804209662276319619883481972695903749996989117265045345625102709514891290541127100344196844796281400599431405645994434212224905518886145224644951718450564327335541821876942225922643845769850885153223147535040933485810843411008737705791403566243386655397693898895133047112888620835814460343213490479622678149908133684798575369818191880113119714450035295383257400460196175156820068671966234117469665561410947762944805178055740309827386722534604090212271400390085601279437024474146439165050363376328515926199005487750317331684463413611390255996281329967588225595658582657708955894919238200659022836897077275343998693968807096393012384236741613706256795135524304277792781685067849828327009845991523917415372335829610607173784538319605975035537161012527798343764807714623348760420349960152072822945186253031946820807137298336976881139227831310516620052643505988677193335845487605403038310632033639880726270398386988943992507779872054495962726991435830782793436831471442900348602221195622265590541872852836802705406819419309127142138190528739591766873199598981925736301283241865945224792943968633498302984339992177792239654167908885646586246899801608177873516107977162162522121734497967124909685087600072235560590758859202428918886362798878582192518740923132910338910629171250878914996772487202685022208821536221090652323132565974456218077149655818146558400851118770878186285228128501451288418720025900149482029066291753511399721721623610863316619225555330330790340115466688728339430517462284264467962257874342278248337347092329044586589392342665564683538592585053285364742156332983780552644395158330760070095668534284740758867303317728205615656304723748359093751012824260672412068406198172156717106859172258080647019207651449121009642894093933494633817487626811859064500701078313764157534348474472158347805218966117932784247891684747233132033137028840757080218382507493801340072540665391644526684061081420655659243314897108380948513572201902768609143492526546507812438816665589656842256657755156704051937890531233427592981322953602854630113940082634594396712777838122726790850734464824581952315407269852652409004312224012294926669275827569910486953206185388905260765526089775444342174760067612071671273723079650212425995434985211343976729840357157187859788530568834980102021514370695367861829428781290515391109133856290958196088575554844126494755170193664237686424459561895329825184034604749812864067597458623297502211057473765618828753002815729768818518567226895940290310070995233131914882388900530992536558766530181954947632528917026544398749222049968508960242751106629263648934361166979351372366822339855744846154210066997780482962302910795622264364677311980132808360019393893100934047526347503927701649175433389237328433053690801472340861070340203195191449885978349676120861496278299569537740833613518692167222213585017040620359656895853055540660850894188669641756923609764928702847781709714904201196135184386844949815884771386905582292483660219166518118740425811466788570741246204795442915140538152140731086894191691197791869437355748068078697477207149477496111114911457463249594660100795267990362178312533113318513751582711051600992911162990144651478928535549870709386889382570546403154942720283215001172752830624584247545811965149358441107263886377622482810838166402029911572015809274573474894724345623739006581433481317040852189352892255292016105325882735293206913453223136229969504343928954827595822694876814550965486659929893034368412706857263847376650655937204184950273411914568847953219279154510710930673390493764507615741132944026853069932519624028688294481713897689812204470881980054824422012117445137357506549175743920720249584909566064519455244092306905986600636838922891844293891131886308044410951034376801290173493112296710804433328936417342032178007459159748031230152340022557291325217762462083216643952719753296140050449809991038976899448856865693640911750378438522252369771334119152475686505743891108881660476596111244495705689680071405645812083132794257699653007410689164087221263322062410600589808588290674004732428204301590607120601150209342463051586847750675993618787368576224636468291140071683597523498333315805284885841198595039138559414496613254838775282769721867830925675034385453901492038878511304835093501156449577665791152731772164397676247891362271739035352864422900835009171297416278882370666387995442655978325774853669145454689844859263170450417691988992023379373730244828220565021653627148030481186609636476779101855451729539177478604569515766913283506309105105209978234387997563088415457974726718318373643437223637314832995317626657816293661322966573800128726313240613709111969269640353384935382984218001089846041160781480193439221465876964108708689086775009946407871677816998319628746624595739844168680114326844212941851517914297656505392283263454654207328832087377734811037840442197964911195166338150417456871250883840957238079507827436308762599874779608073430068446614887005693471990328110835108220631226729100069327943433094280941751668417970027878823120936693417191066551940975148115752796041703625528218781253429139650943356337746422482716495039596485012375512619189144681495335512981791433082566798318499290360768922728561213586703291169171995200855462933593276020828458196778136121879784323553226111230419817580366607960653051719497502034051905030664502146446619075608777097707356029217607212862778601315425905502569781075972300852699897068010667457402475736335806124389484510182014381186169054010949589397839069876381797575913689909858273996256488081681736192316907992662252355113178707680107665506142694202821661275962228394541200406339722843968718931764416819945142981913850220841308766259364641663234623567130438800640304535424824723830368282521392839607661131242837629890584684654902574517511581818796872130836098947891640548620806890268401457806066201773316754821973822350904388635995045677619049263257772758983236237983191558886699604733955936392664808158542198142595484531309027844029832657189551331376057257367336446498550590629934374663069649447459499114570883879568804651354563728643085069834548280678097462623808089291509855324952732515835550100535824526299587058328857563124412182070026978417585388104621043906575540764497629283694234406468515334665683218763760166364454497844484613101074536970438196225407346623926853011822133090228587795286351553618409163181635728989903729703558192999998506623072615951101206258234402732543316957998132297389848616819397347434314403952588976234196421555406812480608031842702387644847836757637075699405630492283311271791685493444601523169710866653362871389130511313719599996486724994228157275163661623654332471788160633911041973490875496035994913816599253518964131688882811400320827513750886207909394967572268805664430419760261588486485951753036623608407815776065167884015301240911432956539512387730536384915671620178657104716934175815516940702682762672273388123492301342147755585661766386978500251207540870176413873663999836259921020975697846975813275603824011786894892831969911961781235448799027539474607400754465466703063799426476529254482988786731616985546496554245471427178321851699341641181120257486236595973816542318719278996573316001481288160845854921217262863830914240920364576280090438006476653089119105902261977490408182710973910911962911170103401068421972193103828762833148079162248072105566043283090963707533484167232230612853358117196359296519648721939060495101415114545724456695755877278337412758502291009446326950051961056162227782203492901690085908728073013534376910889157883822688954974038524727419532284638928274737397119630550930131307298658252470841342548219013898907114559220270405893194518274383342092482338823827591735978800888634252709917020270035399821889024490781499306524475898186481762382955465675006438312469275828416934142022066657381048474459231943715391404853233845700475860252513207749227190341257280447222465332920880299965230890305848584767003154570470645623942471559877095305004241592871172110271510104531772294109851926182333807992371127848756078649753593485608794102431527359548427723095036925350261899811152111619201004440240730828677563433767485053271696053110373243682424083551891057424420965676567262888362658931321882790534021157982169573048291347196396105110957096544677313091034848184981719705954642345847481094331569156753586449441359191531670420560372307530350950062856573804914004071202416255270183648863635663689441836851339354903669957366929785616950107175867003060983501897342589973590369388293719160402617975406652631839892264140759274312119735828418152417802585833183649036703795916069925989899242485382974948188842737568080583396012771546406969503096335699237271886171919634293658061791771202875872684992717707722713080898783602341371216559890040522493964371610473965794413323898629128594949002178991595947578554046096084985705861199387185363464937372385214145848924400424975951338183205146376096803205535300057046662048078635043527003456166995014124151780095883798231945181460763897529938349472667771921458695145014070800354165049462213811238678858627044959535877850505565198903566722151367526028938449814411967694405123018844616515346896374644360619787392930589725558492459835096777925339812037320603009976470183821280980557763949954670841609307670157102046501983666216050293692201477725084182324814139482346257264247431043587280704874650454602875114067660019129659097234823648452843976201231346680789971302762301489469272808110377026894693426310650758054368044520390600768618456093213360839972762146662360114009042182562272835671514267412130848942578710012256145848517612240875599679849413727325677118799627419831386672470216700553564140618196225769146546111898119503655954017298258802208555687466680567606852501422786408431616706919273643404562978856668484920252869873034574684226825573628334843024748549617580311608924938686158888313705467778480111554392635917711577091618919063202160725231208646763525672713064105083895662985696146519578142997746140503801223483638400470525634236578800959278096613028295750161508732477632802335406775697163033204963830774914327152707887453192602925498205836116047698203597629920356132427563388229991115987568373684269824154234527910251395087268080997956734661666803961392049005655218505271037811472316976456555079500897058031586842443153449147770517844856057505544329792623268385346254405022261693611310359903230062441469651867102189059529190257693925191590982976331612423012868712870522041588039393710674280830368858407953113918023484120768575997638540193436379657019609836783133914370046384647929115176404056323481081614676108444739379356687126727987515352271884402897507953180153710280451598594450971403461241457573958567582941775617726833812413621194966980108889205026898939540605802835343567234455042426109566927379888047061657423934301416121271362606127991980714632731577937728031108161148930500576236911698230045200277729106072626326872317791734082161075977440035863557406692755545228181878959207110245143055307224132175153931538847186076968903736691257771803734496354432503495778269306245690551489566202605213214652122285640834550651623378235163645813388296607768987313432068530396617202144285030684084435496765213284370130185990357450333395555857901999104787685014815078405823870530818892659299016250501622371679704520298725129221917415391446907075061868885363645913896363534405006945930299478413756350803917361336463871828561678130651250179675026299427447519647032426886666326275651894356258251961198544502782075913946144510872032454711346079160414685344778948770205681112711041256090067419948163515278346102366467356140205127820700542538966429958001359077620941999171297906846604254771624892717185000216767715036396217215573803432155315531919180828644029428126987355975866693591318524226055356630643459120448127931457707150624369738425540816389249269582465123346199541383017873933991311920438664714010468382450869415274532884112614649649739942196170281300485180455190605500100400983954404076507020190961247549515298504444268641781517242595645331635242943882910730370996019665483540723878797313553957450724350814940899654881403908414194246049274354564027022256952735113993400799201844363623505213897366515382785677976200299544846120748542872950094044139172778764409734289414275036240553630446400617798160829598029431070538740845238081877621886975517861785374262255889434785786611498053673780398495962474989797489547172298564846948427049948457869388420555102438221752523168457888562378247661407028864100099556099331353242122059686819590953087196985865192493785308784042200345674937990229464091942660828641675172248090351968859651972864025611979718142721267045206949145569653978225246055727952784981431906451773044724599822950013589143708670099397740438394280180389046823632579606717615021973881566068231977812800931131159116273747045080538686786322984192783151116170639159190657380384841174380673715924412709561006203251888883564181422766979247923469972066143119287007454486839910742805304106690051790823804910593729864944476465244663039522166159282541002908844574852857653672881873041213997229479177757040738613228222705591976656042385601852042530063613360487520012915924582745980201738640370348240853589172374520853459538907737969147144813136865440981787549842836748184865062300369881566680170967079464322903483712454483340890334787069070391776347560369564041296351384692357917565672633945334379707033983736046908976341832686551612959974584562514726462836591306264419886424764572295803188425528449815221803868768726105363308993705221233222658009139836568910560977818341442438244255690340334903320393900668599219532934174173726708164553362436544894846110407418623898173637432895399049819238887311580748629247457285221773260653499905176149566808521607339311572364263790785115638247220180163635888632061311064894517693001895355323594568034685811873342599633263100032186532103998978820714213353810617086083653471687711498437822973178225950715413845316591596124841425501200518982251512664837799205146355590986328113672670229153362340938617945292446843788115576007841868882826476154467165702393670349907278725252517760690470223815741670919486724635410009356638173774566734997945895295679196015469670039872576614971595029517598526134440061075113620086769568249120579039066808072160524982099109097567209995442675184138636600320019837957906768249033318407227233586990173841234622413972441080642977399602045572321566933706063303589343375721135570184562660341272240562757076727387711137985427829653161533101772104704169043104757733830796792527100253745520825403187050301067883395196779179040643793603049179013470800210387497458734286747503863509946888930615931617909898938616912683711356262851537384870460008479156828981164787693630733999533203358364441406869948117357393592975361076355569730473364812351010114835863029659147474455264453829033001283738116644022720021425714269944873831733279948941180330842998121960169115303137634297016432448880438695784970233085637744446474725007494793271680201387159114677312400976446162504030992449855016807573255903698947044850563306095184128943393722885913194628787084406380952586387675112575904440781069293488226215040169440739453437384119604373550400870654518399445082971331186113765087047055100181902357556715616023325153567643656147928538492401595352733076863139262237690229261776825218111819437809187640761824401654669721598993049092561642787361773799156894889062614727060098856395819052413273458998442738603616096968429208176971551334442406261192149991305242339118871317164141423759047764559373986636447919335075347536463688567766615424727886038236321923473308176817202121482737890968706879256892076498792326526604108405020292223373027948101406833696817302553051734182499501541167923673572599053661094372737009567440116386913083511915147980263077723272460961694318652967305282939722133400082483608346245992032111994864684055879136023957281478887265541458079294708829372869165248491539126400089703442654611725216740994915533599000755798603684370911581564602511665617865218798801568640369288276163060190276982124185643074966064415560692960863267928666204092087175032673792378339269722162027769928196611092394789758218420176590614022843218325400416878075436535101952038641803878361300288714828794865956213655048942846040367895473195383545455680951679441407175743696337975434509613473862529970435591230686327154199333172469505201574857266679925827624253371813877128360492069003830791800365784495863217562830351143799460950450170011876456079298895589927886243426958843395237461301996280366920940279093534855260386035261476291959711442231249520472528468545138339755342199029923095846902057850972634535538806611059718225090910888102007971395475570857730530088404510297030077993794490418386720541153750905210046200898368765679373082523114109654654036000506057406062792571105526286150918488531245222476463690384038378310032514949374848734761766794326868913187032780318127828186195399974104260566927887888860046239575639018068490216920966688082697866628073165701000938146892606808315115345473820812518376905021421505647371378599958826739721403911367383174335176606532804043777037488765643686222719406399898552851717277793398306203310272122764272344188444180187534726606896865911886090465769135633027676874000943329367193180631082466229922605714382768928448621913993125395157706687687174335715722718292609829466104106359227855165582652662907554951002287806639848740961567713897956375254307090537905180425868702252086039026645275340889365615118394839263209837817575278064682812070179076465109177229290939369608287608793355507696520823940870965293641213041230559879171577801466188911710083799771783074730678087695942700964857052970575678165732583280719698289346874142875509650138038678969164545026827000651971119474006959611678489340514773457803591430920689821202841506623041670054740933598109378418209500198618303334278168506030361989099717788964750506858699033300316790465237920576546658328243806750546508602371988105399137085189307023142368316301507522427540497247341482306367038511686451783165150737463771831560129694994242773304006623383934220290334011765979605144303334510060044344903733522279920344547359754143255819178532585483070750684690904381439834521443459006559410314709528032777476874445327830787975608931368827040571441204733087410822695979417779476777023725052652419486185794674276430464473767743810625196998197514944559837959635516040946960745782521782125571935151625599892419868772590278009083720532523932916059040560675970086560605524135346466649827508208557766536753789353407483353207241101982186600565035979028367929593897543778607545428468606223082024000996015689568700117784005412211633659728969459015439825919751488671417816013477609182041656248368461105421822088250787049572168270569444716663530469444158527748458618496400399629157710479779591473635203725907038464226693035587210694052451504220961095185463771582486447210156787004969907353610188126705459918604547728042319728937179491930816587705126423246677913715828602841353949829541071487530257127288231148264064492382435219412772946242959103521219444646021754755246601509468752215726712389593122100207131405841214610255701990083938320374291230519095070137629840019268407314421696597284202158295181870009319115454656617439217119574321820068608938724647750591266534173365978152556587417439116279256115143837223133395264745155205158277370190795955517225244778996402049599003149420615477251261016925147624303601032202749435143297793811284696730135292056739273329662683840811868383271204597379854771491199928065620796750646741879713780201617402975973796830725570394071421146091374442876915814826235957414351307040431264338474244726636992994076133657297865072608722258821016139746515367809030786702237627725546037073714438232899384113189930211674776696343682212801712542133445518540260523943169105631320972061979655690464997396916487961385925394264028837236794604369333067725261634774217857932873994224615564568263099440530439121648409672689967149097503353258048361933616090060864955587249013761794047691453413492475181643819917194269048715988753702350963735915024180998394676688811087395204752246410784203384376638683510783321900905587976082295903452491637878204569773421363768741399265194680932347975746587519892272463830764760768734979968416748807976397294962014415791573427031007913497408926892697796577580106935836108341043497776010241238327494333128701870042853871392257502047030947332519988957558690340360112146726646790424716499543196094779160207469298496023784985017081170743690462749973163336496517225508936221406903945676290177174716998918134194371191608223596844507897704682282713570835290237933443846328684202669308759124435232331147389522312649627284258951161586467492253855467071910712183769018303347257490993697685274492208692876559673625100879281545348887460283183398185546331982364675138920293398235767434080896263582027073623670072572774111780197179151463605347317525923393465026149053982618573313997869526603620941653389590895587865900005450722240635297952575425783034827666420426942960263753374038677167505981502980882733561877463559357541280745951318950804090331895327579668989496940298808055692035059878991017605232505910670212100379126471929108102246593515005252202661218671013623818082884363451675023495831138990688546434386993956352437128282513465583437241294600789100946564398214779808122979210456422472118468642624382759893802672258755929650871337380681857009840353010581131038531426427123372491460021871078288121146745767786525989071202982332624857967441681223706063255616068976107479384820467839517635360307640985472760028522368491371283712529319076949977256757497966506843281777927986041454770936611827876027792124544943622729687142736138649765252413381875023196668533428617971086804750319055482868737206825725893807280813712233524747869819631431436715395047902444667131323080930423794134994133389024101301374174946253679723029907618612306886494456425341495498141026931437148303255927992494713828036254666836117638008816786102990967794722692120641560731032349621799072167485227529580605758675875440722776818053858501294823339596662419219518921514298924261375244022335950043210802665752797781557808539280599381019390037280020639527729435308425006703657509576281746103262152598772614655287747979489150644985102547510417549297122701359907532364378699628774079991896344001970651583237510282010578468087087130637335705113106591918094916709932337400254606157568806095467652446990210970601283869122180073510353843523522535685319551094731948305199759002835088218297650884835275567029162108266239689874227242534687168364836734492885794605898980084787137057803122983255326421906968153321853766144271707323220223888021552600600723604304821632674165380421458120582930182392941826734986971083561029478565624134279467265810620934233390054050102412084093707131581759845400086623622699233276698648211370176218100862173264470228250954920082250556766376011140499170281063704749788681369631617803993214185943764209186096829897918774409294790661306000980473545639725188482309546803865266087955265073667182309866967382528055700863061277036533245025503674898789167161685317081700373432340011240293983341718872792099430930314481961149322295393184710995666817527278793919413279462728718254706597096853115695250367837511166116027571145417673454218353306475623868623592475323508443511564169252431171975517372459390237933471493834165604016481160650088988586479562092138238622373405832098300906367363136532918785399761976987947810188430047439774341210703885679732786990248553693649497830999320117794475688105805252570818868133856811366583274013873232099386787973380579657369961550326287756038252728483790790867816977885701868527696092049974106539107106373421827723792430990665216284459873962806433243838118136729843174685726052604949832133103482471927630702050248611185120306550821079636171640135198642418781500086928165549481348661035381047398985084137328419128842755494826839286972961855072021570735354358528557982159219385574379346532738584538221905250147638475459965329485620547983789934424791059144720605575114570805691308034842209331435460572141701510796718054957839135341921605644084969730687789450889431374385328935614257714599494704485294079503189659724316734970470031691140114846041720825398996541286723034774459693273556577720374330148873339648557734259204733664599871690168432984749051258376307405569881735972247161654424403014265449780647857764220524306964953337904177579869480370496867473795790297984998082036202301235081994661191753172241387569196797638750336913830987256584634935529509613846710499841788185957635106236828028678816795028979458914906645673200397746967139985713601965146218782837706683277633104094143166113463370301554449834369577780850672942324479929577403067316829553416174655664557954252479542093292667871496580076325692919820479023197950721263138410902188734892571176233557197154624922200173020267162122877197579644809696237865155939155544481340832781124010008748987408789587766775746021576526552543260340777146394190516289053109098752574225478543793772622624153105882735800169456081879788586937886046436608097118712565117640666539349877839604099817421409780883830025671484086033308090328759022396915860029851182570195595093846918518305722300692899413341815509644085066650757838715833548491601219775006265311126011305293844624399659276899575596027457833591540889491466675523125265109595858160542897138545036406007962933834266397192865320823314782345445986270264961319273352150927336173017770609582659573982170743705438361153057706184518650512585315217947760756178799260622924842994132073334300003148342581636504461742414679861017652259667085749403503629986761728047714390765603357528878649109651503836342414694017074967881754804208295742869996682222288471618831478599183428494368558575929446712949689833197749794966811926929772432271747803445338002508125888278580120710530879703652820130882066837151382150261251093452041241585090185351883173556952129621847745836288732716163545337766827880398847079883960288994330147198583618273856351827560620365476226870941098904599444610785570133902838789791341963406810245057626985529501803486590653016988283565763174949149547548564114337977535832066271445917607428369119317661602098802874341048280313547487754823350055624230383014117534230150985397050504423406905689586006624621984145408771157911538558153930355210912929755363676419137375585342686288581964017146305833771296172849976138326986860652393794781615252456326589441012908287046695658428080244212084125375754133495339579622712058697734448076478787556770313714866918902167993206557697895108235629076319746679769409805022726154056197176817282795457251872491426112709978096959437447840026657657516302477128873744696463133276847565681665858134111846807090209252059622976053891919124258169271911065219013962630699451468046259895350609761222180605504628468120657257415822044829623360789837806636373584298851333930617673054878800587037038592651438543025133119289297727672877110732412664617330770914143876504175432887683155034390288684117112319954429002944568306793697988538593943017487200684619544124560191159150477978271002130204268670148259338551044715640601802694850251982184183755222977724235071365590978036928645986475460118743674783880840132647298250311044831356967787319483779502577033234898273237726586254569214715878202851927536102033203457688816727500590495076486105641540935821214217734205996746409868129221607053897014346646673140919936139316857307941862535075116703045904443721099817070976533450266422760835991210297164192073200644631288374348368572049027159084016135066423985844279292025947826361180781638639656719059462125179571375411926768610305121483294280004471618240226807336002898989115066107807672111178707808841930058187471169812730571942608062387121132769936548467802735585474398400190742939208798334516765003895212942028253432976064463973258774504370910228919493688622900149355856092645111482082214508775711607557307386733418217918787793965161940395151794436603474017211835612820735113114594610333781248941358332485654665537460637804225292835289574727317042019621796593233298962954452551359888468069653043363399048706736792778575351094402673018149089303312772231461879083024547922858747450521690455575674327623279048697475937786707699973171885033679842299016824010719664619897010552132853390659108945878862935270978674627616080671214839191670636927227355764705423624089170712177896668651196407807578259639484956953039575861009877239353213004689892112279435566549406242530836488524529860743929576192650452646986121193244646002403798713771874712317221697544998422275040819780444767504109678721306149662189027208552497737521385179500788949821096759763970345235709947758647772592270361213730490985374236728671540472854376812072140643775851890118299570409003397623284824544149860073063752324505400023162949460343783775165399532252386253905228379608351383612582403143252196998205644834026439666874667226774544914070977426308353634435838980024888058974982527379448960328790828816444676452481579433393366134676001234585826719398856004437126526500130506354934205646206405216895715669344384172725008388120155670767649443448028678703944491921298801738974284317530270721151391854533824634459754543944689889491786315968088355575279018552539992775560285341785462909373670284754637594345295190797127205761805465810797598713796491275525957279038575262212719917412814193238147005104258508279188336843379790698163293284753451421426679154142583186854188190945907568850952529190550637746270447909646849306134368371779775658631728794335073962241491763862013226108721845247023822477265002725544544977760002509696026784738746498739513175977546135164506243389855917594106159483518795997547325134946406451365374532845010747907339079560230082241895457128219415386958498603241350502213462782468828472305358204183808941833862460671759723680272630956896346896110475481708082937666214665013582363066151813231925229952796854749361572323663265986378148939467549359566494829030755681713190587272219730247544456524345941178228556136639471849117977913689393838816551022861457901357689844952443340415869851778003915310211350194327159078464103588423949345245167724673196972150363951112117286841499054624479929435078843881927340090161010086361700967104650506925955489202973379824812889512435244728904943122886105138131986778715052615936918286662580889947398752492494814573534270355268022349413444326539178302168120361818363940046083493987856236200262993493865711588410786772843167350570916610517794935725401001984943956271659579147473747724156764494677678605126401012399505130645891617045266826701726504592227012791558473803119015149240224086922562921266952711092666425480175753017029257637789758851003329305554888010037421477672543705855415159338934218352072755598753815693890924172602426360390072102105849553629333456576780400161336959161849031521082416833836226530581170847171991018914689704108164871569335100171981940549710649999116040699861045886438744281202096239878853515095790747467141811233543786078733367524023480266896521747890420218050754345970533048050212839887203400911312435031956539955546320745116572511071823007532009942693748085789621364475264852631025046029839970340423674807309269853211036777379156686396063200765287205974380595858792811930252815033685801822240598389469084306823176897361269592107265102189893451758983874323748916132594420901341867420835875202336707106709276492196928215156824210757755818174382684989701341692155193971847112834040220030786499955145500118589388081182721082148546628269148850645858386285384714358265589912488031773281995742170335404344470581884139313775189950751331671300191231870771127938530855633744701662753547722934764107191473325161915666313329023825571691158000256403018710652847086559910122210681589550887898991901975617283947657550602530327232534903482539635436445443788736281000648670138668916268863022165585492252422712834532988294218706814699814922296882751820700040402944892652592413845661240126261973284696022730891674480702377730692009609759118489650721734063883949797314246993566079711164000841690647854037523729819420548697157526973588579700664972605572598305608607179708180994301291113830242657739916206613001644786637015858668911350591284178670804401461450659309040632709417761523461695300975474901313046654867052573225901010943796316387592817695641388342934740093516182626484554824672059026688915825455554814750578399267034468832455491407963019265597020081218798093301007033249493168555145208395626753514523851778297237032618963130725059550252247542869062023976762893130598066588698090577468566297259629209426554482216251055897581567185595665314079740946648769152307680311361321909172248371683033477180449631760007923103591981885036577772764278735635508892424353656992591077907254764404780936240569740371616129960401448072151417683780256366604679297130307713186957747742751856500785794555411971679428346480838794561063222864671243175589933592236150284618183791124670901139691307344463753095110790826563840852039199968186037690603366770458660431849188045982456467385691221366280304062936881018583118347482689850272309906062540136877748582490186803697804345833002215932908478331237703838242860468002589539580370892083557165455246301094140530057947967507778089533596484509779188530610673540203783870510186279919717969768721918910353288048481577985749792195929436291816470207665313857663334998295238070714780249338977726786911587192643855927893874382094494694028695980258126922050969682352355044037571096964933468819759450520472229280897782053232763431171518202929902799927401188970939487848871853815615409048090502330456347514673397138595859324719742837992046598441382199446736216674601335976245670771518246164413905812017494317478075888361213597969820227977154347758214542090756317504665028129182976303477463969601181278458318971749876347378179002668456830860023609351823530750114324892658579864176682074687568970021289919181968341629316332887378315649483813577140861506421736732832274542856799877377825225723137428193659164791296524490609044212866995071765937676844884396768732659552928682809687943881046861305190121723215099983643551888198527661886573056079076506203697738103895915784519146019576933580602689304767172957421883951181108508278509371200378439677061324509894310322732471464739156424933993397077287239604121468127981504800893988523397247506316255827874066991104735113943767550094367677642684091142463674328074774145984236354994108709619816019247447525159381448979138510294350532417048356209438132732798456842969884278528912095394105078317716515738255275685294889125202528011515413367836269279973057235064966547239822275733796720439133735395018722447247302429243530542598253914532514828613232049901766383548895166956254891653656572553377181583685490882493663614284115982999813613348687719316319389773427821752522958872923662567942067096573009466127784084451991037194699055757626909308826628108583664990769924219112634137577011729637138232188510155193040395977589342298868956355772892002335915740679223560677281664217091665709069292826710800069235110670000409930288822169615107655588114973296427716925025836250581075131363111548163731301918443454459091545919118726350490158871454622956906063016768159472446600213047450368997776046825981878017706942116777134044945152048455525573074017241909594025762539895631404828211297269446894020617788133210615400961466243371409370339873366360536445735509644189082762961875610000643480355765418836716854405938014919510217109902484179490752818380853108095107071937908484424942506330086000306357430554709603164066698926809585348588361394294820016759744394358114793512780946397161703994682870867482531751681326576252521021048038916926630092600204839769692987594928998387046363139922844296462103458724773392582077457311843216027268199496381479351825087705703744789322680230729503419960786345807223641518792668232663632725879916616167271802964803659920621936383857528642878636110630577182570517384799987326394157572126643902737396695816555729587622193569220232597799417884960189399525292172146924454259898215312478925258347536185679734393212919515300800336566454717472165596952381103029792287212816408416387589145980621474413510743457430022145483083321496542852406276253481686344657120465819877775614473078570581320950847016483757162453886721776238593911087165765594654838931829827286066375700471186816584747677473263780581322375423891113300482045214513521448577506555794897357612596440893108042879538508496979056949796224117481915374804184788512467714535746382291648595578754215300018119009213736774547282043225406196797893224638806710352266715773932823509231856551723117681492472675697599416766485881377667561789544098900169357320801386127330969243150115398205831455914207322389028047104973895343147490493630300607742111330208250853542362156881791600696077070715949578961211457842273516939744570122290298818996170635236670670438719039284496454108521057300269790980250134997531258451056274713631917398009055750131554555005830220655942263108403121275393176722133087491359754010279194023550711688754058474791722689902354545382298560182125436615832060893832143882478127543540350414225510879944979650798574113983323792372931790833073566151460406984592652170261813708077233456236986605598461750118433967576853416409877275702698746863833803406535523897132074087237150383484316038462617929532405088814834075839023940239690284942957179205056139295667350519096676108324956697662842127240007168963119880226054882570860886382953202694751391627349458826093260029253057680516587320665337832566800140610024368067976826174171168526094415327387938801348463445644962677387113244640169320482785845508543382440027852716302245295334724940701507468778381159694089145105382129376029637887816245738798744739010008084173093694944017410075836032908144427390507412050790303711840907350533214130148224116649118473510750660261103644571122183735171070279596311964394575955312200452123798838636731011111077241933158112191601307159866248581053676093696806517044350374779845208998745787689491232934416286081628321893323213405296305250816549226818266049952793256030136963201106190153055912501407340692948242770628668089778498002909066731206829687899115591840364610022439750191810099005878529462610637620884719714160123630145030284812173795916407914836443028564344485834486932478189995591683078404592670038212355710614035290792720597834354869211392831557285392846322873450934109115544131647349212099158967131431926361768963308509336301872730565410818360807221560503797992237566099503479094364895062843132146743315447908941590533268161134807762814153439778756467877928432916600883294447645923710061364379810525906653002985493148793948073792420123170253663899617475231284145616242976163195640654229489669959453254282572317306143804199271552792316910595389763853718900479246526848472961081800557253864150966597297408193547885430209532843172589488673460774327444434983664662445441531796120721554287909536674541882376078615685264557467581150312034701326803947744935339732910971585516553495551130780784715151785603620578458725793932902484753585471720417688852174751951076490348263001106055353950654895343544240489465480678786166146613238352724960795105060945033105496062653988230126120627773924397012659312897105587443792326746918974300350040803207687966931746239233253979206091188751043532984592613411968458590945518454792285126432068415023109866598879805542965983714308441191262339742916768035612702365125085956409713790077859055121985669210366690449019051030497809033217528723138410523313981837729222187818825777431448508658071187120365304381711939454443639264892559783984852555650085020733720684884930575207054397179912577233601866362854797724781023185604083667081659438322387824185141211406978132476337339502698556007364678351756661190798943664171198756251064251049057579893142585857297780425862124097928175772399386126302264588853084709616256559037830631874283294623598034607256972462049153929374239810180775871438959700643864412039992034668719228563961000111687643792992448932482977306499285284362143712926069465720208333539317315090356131553260927467049114283502062457377385266716070351861634435254244775110222591751356772578533413357413656253313382648034053022279337159827294023517343853835660465608400026146040785524415138376099775600319070226868008818093064540738310703431702113433773525414478816947038279802340807733898745338996896588994574556213020241569780737809581825760444536447531994900979272481872845771970757687016495401504844970186967378745465707365734931455824825280762113932271623194927970708850749199324815162719262969277304337876382286732356220310345055068394329127741038659794789638835150563501723256220688084846077770005452435196657263910468849546866272467263828302691480318324622726786441063503884029181492920503592056847692768938723420431940476327758759251496468373604068339613297029757953308505012228452977836799928736829652109965661817134629575044583529628842000473841468200646082524490340602256625367950813871436477284781861616440395857328838680077364760008430038679896295803571950196679463580136984219564243640832407382091467870476289879672417186642133661575800136308323426247238676523636832480240368576557626337046187830757184812692516163598336509752696746038718646386832837842852380912859054776944897508276997761383363530183985121339908469619697364356957516465235084460160192143312107404272999955995687483179396277506215592875931139777420799692967238469397670470081901857739421950980510531108835652799324143373981784260916311288588519882617387345463521219923857035419010516308466883451753794879322457005594384687522055378753492955501917918474698692125176243985861975004043903427753396503611667798340888382415174489070647625720458349168829697090931941760242383878546848083383598193868732244498124313019081464309174859712045764790582920785136047587830011002085606308342170334608598687901012128131335121931550078032411541475180069968182940603492439657467363928770934297042413833287511229302350472079990519024342167553476413635973994173914354867038884376852648308383593509913373863706982863959364650843434871564184841973493234902844632618316764921548298594444053168860729848143967806020884279744061941322191182206507336205158089684993231315203970846335597765356956952197425314927123074475843849754654395119969357889101563364466446791555062253529230084490008569987761844444098839443144650962209804973449596600243021857090001918691420700239186557291043254417753427844685910161198103736176716949338088257218499492979933775090147801541972176573626196916208219101715405353653263249734801096434002296219209299482501219308379156371645245111959905553181197835790730008165601129126961269327959257162564396728443367131509963140820906487724803252973118930909738529485248212782084940891624857539573487319202035209558219051341286706898927406920361944327097454488866529372041186035750301701887040041067234645804435797179659038302290384341262651778353486452712195145735461118478590911971027913868503236698040334325577975559910765011348459662997592361102120180224571634418470344185037934322694639712350046597663729092456593170935464875425479201681237415150933510807537079816175535466349626181702743688738731246482983372544382226078520591654477287231373038974161496759232275819289081239104878120933021607043253463556399163445522133289495200062909247039404850917151092647521717229566480855751282377231914542263345326419354495998559208033346337430970738137773163605598086803670861594390861220217193915182681406896499588609048645167741893308939462894451241758430134191819412503569830918462888940514715700744353122043066287990555664044847332426748836682971833023935323804943823108891767936509194650238271946845424300252072977336495735794720616875886964022627733548898126342352271259156436088138078521927695861876847615887161504117162045893996530035000124587846670662095398133672981476766035281932064979878079074102998111454143449931669839536343687720618129155397913858369361936343206379367407277105897013093017170856556042004237881539137369140110362690753564224077634716419797926313275566461804836641890566621780624281401632795581891546179641692010341363861877456847233371251378089546350828201067232021402314227177508726487200203172940773302576532119477823395403448455473107529415541009676048403177262718478805816358536035397723133739787121779833128105146122235669603834469100585945122774220991439686729609718302906509928847665984384613402938694243196477569972488276395310370087134028461895313381823725439966059004259746304683356930450120365642525644627865728265496152952085490780340536330494634712866006771692893485278624295015721330924164624507624491124702150187065032173163732173512554029164860200587727598813849815233163158889231640995582572263760814959484653344661235080968414061665496775682130090835428663855590389377747715624453708268128711201495612419697725603702936853605739454112017705602524303008384332017558897916760549598180791202342560995455391870222016855605851290123635178327679056923243932430201132978604694948377703953143129487022192669252830276894259651019984785216742863073173319637620762996510593662867075239383550272337435950474517783354390519534152446845370939272595499036756316245832995861329043320475265201383409218512475674741287222909713724908665252285885063984107354272422026678620627222297101036843217745637594441121236742028575345329629004194710325347844761960804689031219216315365526809215478161100879745048559092713861037849863407260099937596163972541627586107690363542783796620821892142108840301277677337355365198515478940857523870381248955325264716166081739233456190170366923830867063010790294737110377913698116077986290421035151752242353932582730264650436512046442086846330224421385316990110306241306494962048781774586442228130783514411647480926279148916675941596735090767348667482509251172437743051272886952534255992840089172607120980043694450153858411008930271546003070182581837064217711615446088926551038996002090864281605944931272257437242375634526478907040790248123223345773695091377425519203653986786795420690804536555329554380657517812802868940661914671856859648732331894551714316262944256358280985308898358017871456387018764266853148855723659281126814269567212796749076284254137930419253797794116435424260365550209750930310250743091103204566800474955680128254363663568024447427443607813924047252153215272579920758310739201320990696444286494214287000753056017377575027621451967825678324316829010999907138661332919185961464463305057659826101424480263912106349658740891504931035592673105467312303942146406379735296365655819508461146307798170340187860388931654686841149209306431762222169625048688826734020031747021357448328066271171230724532601784815091895264048198021227856115472905707511415350355999055386923802292833494795346342526873148420207919963337072266926931941132008775278435903238552889206541337175837283642960054227201911482295462406350084004202445686598777122706657828251575799677390178572085766101051388254831113323110428846373861006626813431852602423942963881808175704346316548683931985143200220918856239167669868121541969593437169386748974827101699231111265664407472434699084337689005584577868394761695173345274689508166949310726031969413688289877639024289507319482674889466420449776324963291441079639868874040763686309280292620702519417541315170550551374951664405281369021280511435356033782200633858958852571326527673491687030684696882337578323096147988205390989770391277050455960518295130440450452737729344292073877563526623847749602642585634048768931294945147055530616536518263906711855705509347618095781717177801675840322312139319700675682414932719266056724092922576146972562785749643857458596984291874035870463047501069349706881298322353567675986457680114285212916310745011579470664598584836304422359231265695975954174790153303458907576794088965102054704877201095853595177786855947517877384733407431304629190565602653654833989798243192635011144185824172034408395919518548059205438640691219081605107655390612987822591826215244803126419217709970788796180675409616443432478818352363446184756223866449498544039981688249407922158223686821229517576497254218620104189021298026202505538244828720925363481473703106986040912519958717833705814032379257065266256447168476935049542341023237757155560013897805547345932463190316256026513114111834423313950305551309938766063182601526362781687577869252328929889160513166078702540129148369226244162308522200639953202111915111046834541615374211436899454100841818751812840317982022759842805094412347610527527651777756351275754236956025085972775511113039560346467474948317975475950063876833399066973044206419420050362999511982091125769580614779181695063177768361704250464954824782153714045336998439289004426073415969854862306595902410440820373034121289172135771694343378247631597458649981948417562235313035474347479312539289312366982047126030903854920330386775967063758008403904675463159706221672777453591726980682818529391651035332391818269971281692716221118022383080969832029570410915361333945188174072455564402748702492029167526368370098872628460946077368187575761933312822245913555896581252119389652576191961838625905041006104489933059014061234789112512572711524981815008347517198831869034308518177199620304683297725154716614483852560249597504967657025566144021345847009919555510526364614475798415312663058904554056330894190667900877557388721926767454750059319193572733301095660527304522733666369518578305150321542342501393735248062788492851257813504213019841126576090412746162802933974066265021968297727392108940815949969298497641610974568483998223092417383664402143985203103865278615684104967157661602330954713700107978238107209364689724606280939028680846727855921785520248406988969562602828268197994365924687168608819731008300031258841445122853583160529743617064662810968755500032548006074008699487097824650228114556535961870954651639823958918898565554772285509788620944228278213447119756538972430347698791343431598459526632352748953021720986958042256627372306804377646899082168142915951320355277271456187041350412560835643335762976509254476540318183456768931830470827097666035724681852716035242917789105881823881548321897866776723849793368378029974039458305796522884686768331890458685259360813929962675229981183091612789651162706950623660705117714916135574007302541545047280638834212492621460387624221826439105114501550187232918416907372020517060419378736310842552359063278169388543310215600894101477257184376267425199598244168122220084981626177554094170295302442769672937238159721113025326267601070829749949051571457809880182511582063201521633296798475767130824411150199517923604925444004305103554048033811280257683914276258281695591867435581792322928618809237279293812521780247828905167137314650595528169493100349149649713992418529443651436853300397938006853440874388140279683804612235582467480080038337279839263665439361791597402008142908760887060199456363537239872956599356604198555365283192139899817956457923423506480116826139393869092428808342019531148359032400345625358424576249376638071003438784889869414342914057059411365372634406212094966097527224816621333192260233032555019915930150860626141715124699193050699500182601796971823980644821028177984097291584677789080757378432535988519899629892592133134439678415147821415717657559800433919476288624563119185119453722830134210128359306146034382660372727076965150933264094496651891756109822465370582914659416629689396068959785331728315556379713427995697208718864422269096000479064941349867960940405391159739267513504093686643938812438182949220689041733563554097714267743242485261929369576374373899105831024307160078311370992517853982847702635153759764942412838307036113047503913450750797143149932225190790930576894737174073158430875764749590891633592209722848764484162562246969340560960798503070835690347032792762157262195510516525072872638621782110750289472454328638220469691484646823798715204073599731814036276453642832484997176355243279831126904896540322885597643096655790726162525227130468853678898927625081983800586944585835615460616745707957740594765624717115875711144708771902183344419514269790003561091037371880486028607071719708583359209820192458969159687788081870205905415713093233603872859726473451798142528041674256243217408783408331217597154186706286719591160180790065675642294654383041796751085779463943028402368299940174518560933171042948199009241884695765292853059459000174261400583106603155155269574326090497146165767311728766894521880347802615608607234925091157781513442459430475049495445290595192751585079832578534289533483940595436402673452969472440789674279040310399945361170415735841254791850842925162401111766793621912667221879709961378396926658803767643547061215163214304032267272828989067906337086249265983463418308824481944585992290902948156432123264604966424455631368829970038076927843837153946331964773471723401814378915350664091659484685672665129262235732018828797285999929755946594631876858323247816511922292309557189372882650439465521299587481509279482499622382961594193612147329567475717959891677418388252718703210187055589056075459993359046687162845386985765773831215544598793870873789771121000745305012172549130922278233072849568368848100943904901782787931818593314935065550188993945524718897278281981766802307396531601268658005437886222634889496430733586669044286640453639010699107309908212616303872968013214443884222775270211675628260647518011459241504262661672398760760182662414270081030945874825905067085768073324478515205417497116494105557868825560761904008034697744182054184762417543172570354742609585495151030040867672027609892105300219831997090571214408791978701583546102623674981994839945080395786473406374152450884681260772498321831890025265620931519344566956795279763996168700669303727849930238783005542775121884107334107870580248868830106117047058414573919199565396290797393887437084829405221435323894994352124415520209628664247910600679472048922720399697841354943873223664033237215478280597504968229797520170242690963546682627251980968712189908517837003071307200598834148944889414267779963109868300584975018553915323462446124960267940686066653381647592292625139379960181862175784393932236386760424240072262038381981040606152385340782494112723824826062968810104350523009023076140224531720996672274686044950539040025187471848507102410478978846539435919406171342831700305990865265466963850032783713462693166916229261652414017736973555236071566823414468212674556503285890664046747837610912276058680891972882867112699572462844415303872617746047640530790952819517722611604821676678852284991732161586014746348255808822157460422108656818892241388722089118400711874000360606579316702134348765584803072803999952588257420727468546870059058441316281698193173842973419640586676559875624916827938647374884147041547881399038699472381414124829278970045034367172561407649283362614958904012860287672992249075505307873324662741195490803018574430113536223230105798605576721979034571887116372429922781635148008703781277925108756313139089615725179713040534760933011627714016553794352632648809626090533284918525554839289643380173684446693424771050948560526405855260967283839790502827342909104930076807871461015341298086457219784703425069664870779624043758216807959769920142084860143639819078966616563297273769882055281612805010080615947563673488858053433474300122476954290869236065895456588603853371278642955684910562720737723822080985582686107995485593028250383174596796950903758820848362479396313225381242506660409857249014987415033117728769698737126775943048101596201076187456046643832172023747116864267568335602957762855279728609925850256928181385812377503369127735541733923125933105796435081731403517845578558642035210336918088448341363341639227137021293171077200695008429326533218085878267398173354060645694822330413524380591202473147240688425301943591431030832935262686525617910245848294807780253024841769439496133988593849244203973709616198110913923479017741867029465985335464151467492920062459361280525382571760275449815998915851352373896901081203749289790550433214134520762679637504809387861061812908509125187481221534022782018882930011334577344206558038060839552719008081513108177843415077472620459753132676471057630193855815701317194688968111611020401437820528215267817565698692130537486694614828889397245090226091055120660666715078854902102186845778178909205824931955974802753283608749554798257724587672282291856242242844905737187047682036863168865965534497578521721081799424525027211611411919151898540008025930155124520116360803208425633504718018018291650675261221588201785353436516562005081289058307416366433306609817700447238352949651531905345371925815094504825853850410564662825886512915663106481837925513880098531919627081599884807073880891206933708567816262681076865130687400533761254792918962387970784915458446344456276964334498923589496597582717233984689460874479026107540653975870491289247209295048314561198040789424592313658330975822928480037413212918857040893521843495016289754554519140250462495684756642225768528961405728139608866676425212897944935016434827320759681950316706016973859262201996841478524012715672547493283721293872277592548585499534366430836132419954622238768017648803093282574315907433681851870268931785555521702971390478686859155166532239539412207550649521284917177276093895350408373078585543263969303337240239207228725622954342886077135864124665784221231637222516440891390910039504133811005612508034957445360562158204574573951441582646322498806795730099437147586086170970613410537803649819085017908464893407339108776056473110526858970683059417147450755843368171902106424522798204854564051476928635608780643966670392967745451644514208408108204654673265079418527028142162551497924581451152424434400970773069583090977521350364715713894792994332783011672305794804645601693634013406719090487763165383609219232569968547526114255282086151056103651350819217413386629796676491122202674931492825371768075157126903933213161440072525997527653351882105664814086434176772700804337843037027065718914999400933733675011444317594425979920620891482165597648769559016938596554060462268380085562258021008855346215008829627025022401573584521783659747801759264763104476906031979456252937003434972837959820420677773487702733222960411863911345984824221415982661995404980472899906086387885363561871826548804764443617857870931013598829946847128303770427252222147506252289001029042938415642881403680557573592933109033675025488522295028855876678794892919450158238092349248035102531308804407712239097591872673861356871982077848996122827334415145552513281920121330177974544648300259244204781537747685351325852863343438851497387710626284156538297388129654759527854517883782675753294726463778309029443024466843935377506191657410052255175727394857333801774984850390059784875299127861975343104107538167600173883579237410843201864508624103698627468929710454496815877055656179901781574501384177108550850527239321567310002878080037973780770766017687406188887799386260568576363996957162383916139353169122313335090645069491584347478429745334885558906267129840295768966193222519073829142428554135725732100953345474769960455235407668526541361686837076900863251201779684182271543288789897033237971719528904926125615567275008896702987754012168981801664722646089827064767629963984767454506273719330025324821243591350646604808287323511937739337873359514367913299483891875822267308124325518488703372927591247860430398661463727194241899034768826655738317911738633412491347023588706639088515584013932278898646802005614983016686749823194767016119891590656034348845326927812672742033724122546184087080565094790524763903913758586953556155659064260303583849794504416692659740324949368571155615464643605394162428681805761012677066492831866183252172101591844739126078345301753284178993475763172391524010737689153811847735811134741286137929085540861831109274118015064599525155083782501526796476729858128186772619281038744783844880541467622778936114440455100626086434656077216872644425454855741630376909705157437797360205352999331046889056326581534982799392722210324347855965350618339989576189314643695543370227041189688301989654333294683980528545364794758849885587465031424559158828287606294401254584381377916905384086254407919703361219330509660371577618801472750615093756942477633234966094970167516599388384282612582385766626973271077012182700418476513601732438711770328523712369523748788448167133214570153262060951417718543038594004376238574585840734573292700270484711590996246348512928325840354185817579452824631477096087423031714267212690468264804191465659944876315155347947347445065050874833368235271852072782800628068553143420820521700299785830048405755670739643049488977021317527068173138250947839895846485404752452403041225333858152050876341364739570610547692629073065024723012100178142401815102546997669712092690598445717859895662303219081689763968998171522622414989119795440735640219076979056115052713537932299427662840632557488701423821235346268535380132526210363012381489544081035619487178097916311245261145061284075279407271852570389376019130974764541354695748564012838185261555625481238668464564368657502651764675701557730385433823894873915333993875379249311600929101530030566324351515999409787132006571750453783381223477507496996256778596043084821397430169457743345721338715742821350238281486679686009715886423349308926739229198287341947737699334108109878329028418347622744170495406646934205544567189467467001539003869890088767044086145816133389907784957107012536105656286355311482182601128281148751032560912230492455346073134097297215239967840910376126231611240261735975852091433050109383757384643663951513803323333249644891356601274679827053033729962411425232019867746388072534170328783615539966637668383837906337132900525114231142315857498911293369982288460307552634598846071296088308251477343994692603485259706642314459424813764420174801970157373036522083738887820615248264029369418104115413803485751394297031742609446866021723812068255266249324827239744729811493666134826456592424497957267740985136135086820436715304875281242813644295454568730151571712978159829841096025259297130131904239110899047702434102536910007483973449169110459426047473243997075343530133242664403081971744424096732754944178969443545682582378675741424234407765552769181812290699540555340194067014988003199687515121501693013693064692042326447325535566619571988650713033962905054956080462278696187135432576166457058370230920988468966592418440411030626033949824515117461300114730534041772336154962677335221915031454219264344795561749826922233200924023396520256104735253337765179249226395337816597141032455932942666365395068321182866080909230214827585390648454151571786128844068506840723570796881227028012433730075816316201736431152227558650231752237994881641679806954255447375614648912248226740639119513045360769288911493779306971786454962253753196214367180414359520900135478842568392938085828156832636759204082306876312741428454370964895588838124429218430347993643500596285512110173261440574418306831944428583339959735053577642342330336501739552336883827376858709863649433401136612941739830916594780903818434113734656958377571730096685212543430633864668589432736233880623548754336238551109773530263234318038470203419598304201454030306862170553579952361128807114379122985866746630118312839856667751714019945791882540258730929814161587826835525227775702937403535322708502728789051398604075854642366593376547225039760551603097423120441213944167535890559324124830025016933365715939255526080158486921878993772432392886060800254181977484775073355976645817429931191880092929733428979874708889117025042803357416523342241633162099935020465922344309784025130966248263826462396786762594966455426873495969298175212534686547788045262251300233084764687398728271381973436194433302704445063430744471393887641603486939704128151583626732397854872287033350604347890702975543384744768896164804126404743437660598072415699228143208727234463123112921122287334432553102652726141285898846559183020640778457238482305020943753625173244769270491321932695891487950446917095591176668610042988866282640314457216554977778689016121143016213386256975384129314012939357912877129185564329647905328666513244049417598230939285411058926057193941418421584644391320842186053266329146601772041573346316347232204139367089891857708983312291083120032376821547707892452231258729975486076220393124257704454171390888645764376690144288758684294675119825603892559756725057497287013831938922349572027467826302524921861432862453153899591635933214088424038699711748674195764988353460149306041462406300293658826233850336978384171479493667928028776079124206961451594860302421118487727834115538509737450687601954711570708706565913472797647238683514706712112402541716605104085657926039052288220032427383294343320321672602584496621528115823524742558484518744646281602461303975612581118336709394427694439629638639980420961533469381834774150224305315288033892905872772382233893542020473180079932207813883190208507246441579456396912527209464797108401859071462690422500150575060317564315140782864874444765376323120555647569210259944018755614772676451061404058330737156171583527734034636391421049407359585051160074274436117198109081282895930553211833276793729644863128603165776611380030691622142755785331266812450293900181512703389785504808808534023273700198159639474461398457764806309826806027017512982712561499135877847063518345042318135735840478244428820100712893921742422313548251316960981631322603814985736702835297648577328197614963592218964466580803130328400459347585095032593386857947543412585971864286188739819277069522589042988095310236247015659318572488602211797356555970299317918033624672692529429254315837213497864233686098494080988944047407635524811911165245907274155948276480047282344362571945280053864915290793092813819971459944459889958781998831345476440003531024445520322247003903559388184992627711632626133866474929970908226422143215997156318266612301971173135869486546805789802542849225811818734872800396154567798102366836289757396166063165223741306975037018016465910976219516041714905010073505974788819130062391851136349675033904755301748618501138330848712488468472152240469766644006383909811442582809329721927833129000452171232522429190165207615495466084935130947160054600703037675987198751595720470066933346774452727550627711939306924914150279686282462117119088338085809114960487301784735577880263879971439298347154998741524887046092405475032149376921050540418867275294674467395573888386820680125285391651596382789262252696463929958182278380666717426852554728223646805830889423631651349945030140693815312658302111013473272091459248261940828639906880347067985479496661369609226834597738082044808478670273527358355240959548003809345622610211339414313983493829647831797078594738078169821970713637615021709267884020583265801740081593648116166787743584922431354958155837132617003742257902141398167373620373894519926484752815055195959650064115776968003700166642568825030229173143400293561763348233518965610541430968523602135625861690141203309664280650170172037533318894886813256809070607275221830060950557475946797540844198229920293822503703728004151015284183094420378916589057916860934626810875109887387602297578726658798021162202072315771088794698800189721095741364841898199080248042325025212135870875700990995130945257124897332194889313751633886545940050764266061109099224383107813379684766930251150114032544419287039420556332637316666208736331220352027519179850309329564447970241489724745036252457160332718344803221143471771313952527347947033655336560829652549748800306401521960503681418520586381712361343514670541075179941953344561375830579028741977853760314747171915171210855809095719160618731480389704913444405920146627084768055070670391876940222322357556745807553788601409315966111745376527428255732555023365770374843215969744248435192932747769037173608778314426345972254505596434490120703572518352895023578275081489226469863356264143446197325632939818214339272504479684120408793916783689330148327834562186915492569624621152731861515485488766425958860850382905436157184220094027314785889287970157301382780061754117163319368221970397330581698921962404234221743582990853491826018599996027791776858588605131885440940852642931920790097793925526997869014242279771227691200030686579780334568728362660576389381369995639882101980017421771083872006321270728804977345973150140721683865950698416489315103533265912965260494014314481695723495297030928702883454468703841559011313464058818384826994031655872956809957655180361724403949873875325349397746602397043030205662964172304256237073841495821910258450915228305329830097675775801207261767716006263686957159857013599090985599513744570378967237163637959231523245152007759876355900200870852840937983457876108712739185602003681162207066457614967590888436909101064862834075445300796399639735689255250506432264207279346968171484444451763562619668109033258850825716958458232773135308142238764135834754488626193027889842483347753819038100788719283937189843790951906974999427266875989457390085825135939133455846500512550454281636285829554666378359423709818767445252429300905137251592707650747546200889678033026148682171497633319383557639592579866300839000821633642544387940458057397512267311112298585261870528688791423176584761322475811166804651723576844485776641361216814645711119629919320430103975723797174799502662947601731479900056703275640427006865081673143389165831198953968029620978209381834440322081916703049231011788949207410123707187069294425620969203907687350381425362899832686245484451468534032659484896265242619476839075091109111893383411108050733902226802081829135653493387395845515937235737792841690987902916517642443179723238510313737361432236552662465379331582618047841712065397198906786430511769226678812506229160919432975710619253290349997005469906712870592025874254380128772981907069479827762673976781760254300743192973708208910803450278401033417618929509211769710172656629502384921505958900947566255920459285568906917705567048218305514611071743210291160339353004645373747556358188136973421104797840401815427734175560657287130295912327502470084793966734488932372787788819620467653144219231039293551237492812456359658017360503148702665793099673973255592388718142000973468880438876979779004898161466391903251925409954282700276917571173869588473082770781064393204789248645558618857108790374072356963050449929371949255260857135080906695876366457980602962267322561029634007587811515948594111292854346711648390983625934052486225760217223523113782330187284835901261287571759566778857868474060345787039499488898637559526620761260501225623450360688930667720845349083676561925925716151239098677125675820918347944962127513430702331164944688512386999521449297037692355384988518080533958153635434266814144027773538432027731062423425333932333694752756126323496294886467196347130886550750491632769333892700572450940837306372198804268448564685105542946291810449604578590313122624734786009672525993912572258977273682535880459189123627838195259339360145920412109387541374863840482476615686310782648934303111959519607589447201445830945426202737948230090700036689925791757545061520593950639860651486948107951442455484617662593966801441983213979453730670445223006032258946201048737373700455862469224361464072680447861545855969042467884354005679269328199151204259277343234841764594919735976113746910020296640472522669988316735714673004270083192712008469995917320702394864540821141476624936765092159707214116160210092600675881257908288707561940872315619988497413779182529035084727300488379094259311339102945892299762327828498960613072809954266863861472218140734944142472901658738158674591658468603537564499191241578388965341344118756579710594889721646706055308360318701577898338352807313233836576428176404028821520027045197385963323290970330843512732402532063243478418414690378056269022355170621466188593161527385513211069832847425524574847249181343081934206359360855983643475762591951122601073909861001855936280618312179872947802820818962166256244678224392124686458953864845634638527266774217708375629575371931169098660380160712224219086575475708573894118252919661430691437900763737048897073065673723054162757102524579798431467881258194305615819516976887474094110076380572524465474578994650531956144114008003190776800956589613154708079662027699621745226888800978479129856305776238374087206465076227877379800212825298313465025574011766261426596345141185754735822704171081446201642756256888661706153159230309312211697404418194943253852234941918529191152409455608879744268751288308751438402444213672332245095801056346963601692556217357649291226146145385884467863022506213766057756336875509900655133848511932027486161212946275362692316918941217275927710879471946501736687965956821180502609218556314475877521103785081736937549938444016713609564573134332504984115104577487207439345077557363014512636422487156359787207603861241869429003552841421614230757231744024991114889987082619048843445413561175635115678144682380421839265463192187998296955273377252568145967575743447500193022593912424734881201074796543365343866024353247383266118716258088911156179923352571869328063352909868103356269900724686269148078529475327573086188380017908520511470157544839362818732165648113869013074763828783923752656544611261686127088004881614053448589254297236490929354400265171296961862566849169418294243532855404587435276831627252299996216126059301087378366109325535382526745879670547271057009469242203086170485528181709682456424469112490714331777921972325705101142680179129543906392494947239817088207428104627736077542674105076731516501058635702129984888382026424353109008690231910997756678572394872772290409110193390670176018619067536448895354696098211095321286368717339276670115036926126373708044716155685273950114843346548019376737655745932224537750150934800296909587605126352559589420354108770705195263912223265916999920539310833293846142319354280289629401779266540912246652440357847040067479893307442872289892377054636184316458852932129337742204139020836593677986284585123087941830127361898576652978919551673054049435945802226806252798171798244158467767545492918302741123710340183904258839138183085994482718571502569271614900073154130846800507195376737913670332369090289779100548988388876498443164293018907247111290372619916457515876974922422670025868211185764333535708161579548521292422015347710826846049944770299868456804012225110408945370852969443348045457455082742065182197868002824389235518820626542827589147337454424657777590797932788758272123773648660744128583901332674954820190832208376626363238708458256198086086579076471635540369214814744613986984578716658764711717576672360730051220867361229690617029775168689402931892240691929651779258380586443939446313402421382447700622067534580613586374808740468490196807248831971588865200178521413680657337309297728646087739353183108341780762405322413633705876396056610441730791643367663542172363954413410174852001750662341136753740018671610230260766145981584969992920190966723096509257853067717516101217017711568962859742975941766273962193919077291100786100964930501732882345328764555380454036936971788528743681973916582787966493219842321616599722121626043678973274879964370126089221651934535881242080548886116376182547349401141483411428547293949206866487055766424074365092064311287724338324524657456099484559517080065838324265098021569377983919453327039971247108120551267223174888051312982218411001907936138632944152484680229661196014572671940676077750878090869434792188325350778765996049455928186362363042492984282293657465824868279946104731629764860647070124819873606555633075560695797804270074686578515746941538458322617197565739214497763373065269836135589339125388409767892666077112335502477225943280251909915420429855082803885287237712261467791899525046859009411520318725558324938631093708299635965664854081479430780506160874270911124157730082748887845760457885150221510855850790878569973343848807010412436686278404098282998551136623868230167118153455646966199208278487724828229479441776690497458549116163408616388061362792903645425005047941828293819141518892178852062860243046822311376662457767299479282147921504543542667439379503060470452044565407918057218259699696652024429852646572430684831968482276167725417503287068108798060329675367264891881206230607688335585270466256152883577179393098181615460948794160922325307606159901526672143945530356001163527948366827969579792688493649590067728862684181219037465395285993861729264699842114711086855192910066124308885889996223228563585410801199145759795904521009657258614708834513061530984158903213338952985346150213645667526823235789780809254490402724323408386544416672384034993089940816739782121526645650380412486285155647882567224816580344929005238196012306832373195814732181803053337553860070706973789391810525507359696509780274229754333884994082163107396003792960082995948305040876111450875698550003829392561847040385770962757624070149019769736010043865991322208612528549160441552059142815115884690572039446080403644116443543286017736888236222500923472959231692507520292781760203448766036177139426173917682967551448488903539378806175567950186609155830014126499769128879183816524453718632552432959293278408781516559723552689419759839194045418516438699940306897875780113366382511572791626982008276165771803252122968436878091540328248037526444319453151353997853431083515870868532884751168662050944650506915749472673858614778371951044580528489172567104126304411193667901300037360853982605414221426921169675454727831490432432555507362706459338904076584281385911687248316094178595620691514402326195950242307163429221929687127458367946416760310802232513065878667299366322507408721174766189755980329972893760691068632509694425305206550961320982551213072724706619360805121431145144542736036733126431924223748310498912579096912361122917233485826347193655214202002981785128124616090038848290494403903525901310606833164396689234256473310319661044738965786599939272308841517350276923591935831141713155928061700520461365483998690764780690425810695068209939586085747675125690515149158546007418355431568178009304977756859302615166657598270659233006166822668005403202952970706448890389626838233883798338621259357375404473991144128057028481921015146579781324378412509556805999864664883608390681578807445437919729809182273383235258421110471594561837638813015161524100631183644405424498376900455107759796455595282866640841315968737066728495318666164494149523248002874881396052876498694579323683644040347526319798163402345067170162024508650751746308608480534551177234459490927001950321447733422994228519943591793040853896177875401599823133300153495669729812045964198491219884628115501933426828945970571819784862865226775839550999042444851794651857169048760627297081468601701958344780572199178880953923283371221901957832297584132715720318149457991776196081659481839607482479393196186463556246225840125762146258331256046642340682409127223656418240709093610065369276057658435939427756329771758888162527956168037221020778908527656401149440675195841697087065650612105023896844709831871107960330095654087822409818272762467872220647427563833991819372977170214223497800172016503880013361636672594341899273224373599454395631151486175278148742795799298765549057588751136777508063698894167712358778256353453671062083691760445402507442941578380024371494609673910527225657400989804732151006180891042416965254795557497843221292630271870565114118394281446582132552734834887924998758451453845803590533915848265183890733072850559928064138615150172659367562307181967183055149069910372323656532983216234414709313931606712571145494134305705160394428726486320501369414199319918960121751196885969762922379407968767215205014674454383174005370114469636167205575977287438108960327303787541271278251876272955321076728381102924161691799060343798544260396206614915966138667632936469096554083922676672540964748980608576878880275729023310484541734540625082472279635469462721887479044494303865126040888341857072889441964722221054019813148864061299635126787092001995592569578765268858519967773078632294025317785893040068276846294526063884918049825376281553562277438520693661232571552948264764747007836586168093524682173398106761845820882112309151942481139555208113242668475351938474083308354987202825894494872149453206563578432655806896703657252366414610512310327406369806799454656577666936936896007400282775282633606307908077355168225726055800177932913982765155760346411985750643352756044880648877499345992281488418790317304805612667562271078449409019672404735596550244213870710780247225695950795032033358741178208020640168493520820441406321725481438413457354366644315653183202598854994599443352402556900568886066453545595153911506235729211190048372987018065648282821000777276994798039572075734896116968269627321718122238703457035860652842493703174802274589213126788796516247018379433174770088702229583852445288437867318185760249079613636676944368381348221442308016243882478411550985086723864737988008207161128290762845584399706404402468415901496157034247756553848059488434893983441379049770765267622522039545540634187961690717907512918014600465594986929523727439154518003528018213007782967590831825624587308901438998221300378325573367370556669025689166151232011005734903498155606455823256949258853707687520938460191798491167315449970882356180734098024790781223963502092369178019054061314851729251685001526444624589808951545803919261847295649499579537806682678236994277331804304076917520736478413234682377919442784831833086146188106012640872538683720052165361558197114972329410701227333570532782032608594600820911664506812400439866231919127533308746218712574332584709359500534112712229255717144227852094989141337093644000075418372139424889365406585098787359781446376727118874364263192357925429767908639633507853261315023720234668824544125709252428386029285101551669192143425936904256125851258930974319558846230970486034394342194796977705991584707426535425044085615917104096483792583549769260933647074197898850158992221248824687730304370582065186501109171379949547937458593857536770522605447156359780949866410741335595564685019970102592387282503648492504153980109360537591120355789960038957274003219587382206253178210311992671189132335747101932827640830870499067813526246634231016062515410593778956436840876995987023678163325274475559975289302550826577058096960012377246917967554402943767554806769086583706759621408623233177676751798273031642317478370208052911080030460701231423679392511444887813454745892597199884136482480245418591446606682015299116506475868882769512456915801053180576855053494319087746613261071882743099705218502189884397412298598588178902847857335092555312509791692735320888676628515532544573110213549015916360733683152253092084353830181195716747218716600044327130337245046986751385276858554027571572849308764605488449702970054438570261137382994339201534623227683913474138914909815750461295474291170917796683154695916132744259255880436167311143739300008850462991251897849661550273840343762151822094796143368972838804058789030308623095411662821623790018563481480190089449123477640163120895902203188557853296076158874367206079838661088332111982363876555703751402757227157818579873017280991864605997750709113796965906370115086939362657582242481302317271907732334376864735211737906644483358568775978221921481237779349920251796821889500242840484253943477360251332818361832087255272602098563244647005873603527309128853196149147809895478799999824765751959426133470093587472308346606906561257371673445596666408517255470614242171334047076826345151899780499365949039380032313038894977694394119408698950366997401717482675476301155267733047625229841615494337153063636311579766719354544902700463561405062618919105588948384478360377885818979783387561108575833718389638202826355395963006807818039260258521331169158415341988052220793619870285149309735044114374230127134945583634868899313268928987448175586330374697880612771402136925108829496109241180136305437918536264977056946493977812915872165996293386314510899775821530505676514075384215238978539330882123757822075519016507784096279527225721660868606164526274090388052452731939645518609455783324938510872911949727696137723991819640540521225238961932546203131218368023965252648563345682973533028214456760841169410012577494567728007673869467399889989997352298596099218936899921307920150185219505856571967976692639903867753872423049762896713333875749025805650326883691242888247645008977914686460875679539098420484023463372907381904805244821823257210124128749448513518349678768643383195236249450606661641443178596153856152986689353814592013963606881816025539691025220188037127550779113501612522293596613965431760911198264103126444643565188065354276499937430028572773560251837396698915095227720267708081182654018452637383195376766515197633969755624415964626005034772956065376456717642134614208025932514911585535588500106240029823209212956700196994115166555902154018743820268501729505619844497906412381140333308662974514170873737025006591177652679144828814468414554335764545532370086032458808434086549941818059507046022769405198980974721438482645304358068028657374143511476045299898182799932770514493059792476360577754635734628370713653397312450028640207596838838717698013910947555110995110279806092715029131885328039747771866590371226171484067783134468035001729861826722805141276033939659422950005537052911569228454342164907466005817827289998322315133246712459392241643870333103936873865052597354541228185734205694631753685567182488418993227420617103751811585820704395365015054970372583103091812744978178055117190658397066963444930562333960017263249782955408945410986292841151412126560044082340692282347195128900943422929933036129266396581660050811882247005443903454975429153957040030136849652222233222642456961507259120572648636593968933216200378852100938163896691231969209041633248328806424186865232981321662008243191310028620657070190078515347713950970771216148368806485451671639250035930128372141401813852448553808194499533120755624546419218988374497473921748014652264228046528220671438092972723358702271474016456426180277404938408191218188648445185147935579379663240810268805744568573606294505218621784427393228061647399885501212671976489952018108805838687096373704573689131221889471660041642535060037907413652463037830897144806210220053055049206983442174878620268954865926898671315517146765826744171697144970554939847989147825933489276180057512384014699676969483143360594010239005355159607088085539686060516783047505571403795495842657869213494986115461721338586612459632401696208437859662727986483520205990696057746836087791050984610309721934899632215905468149267519978073382564940206293680195846560644395036915604044375723039430378067041700691467939507282930821013679823935398602827896257454553102403226790682954893424230372540508003751635461432535414447569292389536364493867032903539410414886107980213382808078565434967681693282075067964483820266445622702753917816043220485602631167207491695198412565236315311888142752933731607548218983173089491862518661054230682388246638323394044893976858231294738740515526391253000680813834757514777311114552662402480166208986276382455411046930345839868603848143038238692299790841964103294256910279855924151406424714069990250598936362829184831996334065911580427206780387253231255901645562607527034758747515321271770284969335239304763356451658729911570370149779291538892426454949669257692581436109599683113297745630510781204236726388961563725327211547407502136398783263094971661536897482715077636945068175953274182231701085613742878046126614999554185092750484899787200010344393803092308091784374109010829509979826640016988752971271951222538137285836348998279226588860914784324557427768548196643400448120489120373925966413447948568799782977674275189466632164755433254620208224273477166780717327559781777525231575293342508692942524794631129034426295578100021772424400317265755028746377957946011988231076550410346839395646856422470040836051742027527948225461809279524696978616536626889393694236064519508131448887466507941563118343004765938895108897244845611471201986393453548861039802832795812356858337372948678376602374406969488216112019638092702316977965610221779352671432782980646318515839750160207789627270522365071018076992204929933024000992704890160087192668682429320959645277391547508998937085536295690855680188305094393087169114632835799835407772750634560025478855767021279520939133832734359339565285541094998338828025364093056096684998056015574152351278786321492118595140877585647613007713646380122586442955025752935711903688016914383463238050436235660606316438364487102419821144248706078386518419363585267086085159979574159977330810523469177000113284600660889190557286359289342922907011007356284881916378763430227446549808352246512916109871740416056944584565867598972118784488391754745067702298653851905855194735651279965727703992111610048263967492637513365942296345893250452795396340425599830791336263122649609837829564465915869897400168759717131911915292070618103355305835441231808980466685809445249703770799473198103114527076875928975659598366038756803282648218818878722309516585742180486057524549028311690955465636095156768319813792221786319086174214749310484454362004265906819536256550945546512666063063668294958105800418029520904066423751789926723960036288835488375623562247283915666763742969111454502357107675189757452356651374494412728220340123797053888899382538739307498498244351467787813959056656401979539096057578484457576146326425658867962855764874843592407252440870072723107281008540621305028814287134478486695905485610633198886014970672320191204558346526023894217157193224622993596987895682328085764730818735202971510593329812401967579825956807896160414102913073260285580259549690871492365026239605684591061549761525305211156451717802344509242135908422176291500687549382998203417896736786759094341992975711395560919920588396585565563474909926727961580633448510430756643175033979949478831005653444492244864521563391863830142732763551922495384343999561109815808607944585768581951094911077010997787641334465892617735060004310806264544760024211719299223232133397650150753421203196851097334230415660171435919050993132722709963926996888216893187294836748041694470589269259493014839288861705012908791058281887911176512609284830988093835436780100042746536052064452885121679965625893146984695123088951302014254681431198210747268750178306160612346353001387449719561609074339511957697349844004583486915992937775657160919563533288243740089087220588402290248426402278636456939462236092276062477021909977765331848994433812283685625055431247988015725423959539206837151452253213237017555762232595817612204913626449109194323895222908836400162709986040277566935239111953949507426819381724555349121307857219960309266935974160788323893931663976917558814098683430039463997650846533649888756550015035450541235687410788146598761654317982643633035322818909040523284688610328490297937792744895289520618736282459644795861810667244033221428828881130817271264661373968201836489456493035473151224791908948323668048806471725781145762352231530818522564290153622766840413036489099860416134910336489824763442950942006586135686129477161044470652708389938626612982521415848196254233725618010847335244962844575227839624108630254907712170335381034643333031256019736009407386313941503960825759319021432330991959961863731481709466454920729153163908630930476106824997260392609001382375013885494866128752211901314323676116085296291456343187879905623242097358711563198216946750702730365079704283053644940598394352959551113617875049623590554917339663321998086014396278223441476084208526971950345893248355488482109166258511592726915255854285775439825889418916360183043048199646255114912650060843314314612432506452561387617881376631965519696938797527418714432101386863319353050724870680485481662431532264340657544160970295994105061507294454600618183692260673782004818058927087966342591141439821592781940499927320421841111580259741989592543399752695156105776801021236004159608792062744139747124332375749324657517069666377017249564491987955204214354556770228900289051897190992602643284440090583636191957593008198366660942685109545229003205580533679805982969457078311802808136762278308892790737228306479463980647270723072291906666671492284091505619501909823516147060261166842880073476403778244501571207892224298486427046224371375687324957491624065464645277714630805044378574959972143734395399784843160422356369267262965138426826149844814337804309007694991111999668911710828215378033583422048219852598017122524113574844365284188712564668711107316342578275889048962767630591016962454925612773430214900214656934970405266509780168585868491894237408532236718503811627032985045756249311669869318320442371293619740082532517072167382150406832736001517877700054571296708924345290949128930728750038508207063302477092087239661472297976927406249279779029209806499177753392120666832804940495385480522025283365845979888903660912292791930890627554636584896183302271052221382140975101988317720844684227159417060070435659101292412724366144726458622212917617462436419674336115220918309669281107388408202846138861262457956213807030487622745769421403885400619458693323335581984995237501017355609650363998248447889797590483397940574265794727416206173611251799824975022313291532593155072074293165305413510309708466330529160702718760344597173663989226363451951755566786575139142926230884723128393918634420488588644987791041140171041826115651661762525033919678457539454712757722700770047378152010562005466296250233009921910741438123052987731015354006168198460827429916142584036594428378341202364634247723052632168958480721932641044937691196044518764864377101712633722678556081897505979506435549334432997499316050057739572507072362730563776201803744565427065812567169840641552916085907303425092768215567158122316341913218759551328177291533021498728002907126404145107111269349776688941562025333036954893989861527083919038186358000645449295424601528731787296983512544063656710558205544758584422958841844254068620768834948641650679277685757588830829466980513357557135034287138673139810377112257782338707185800681377608101823877536042672363067056420945420034726658493066732022667721681358829893978173369301065873776008799481328027374760674325991753841915565121391824513538539883107974542506685699829528946082437731142736303324670340403413469192982679743613534565532756679079161093066299324254811108088682289925459642658710779449829316076466336821507314103383949333515241808746175579223435691273012241582481775550998125476073063590523367819533015097412686535644135427258916216669852722605472657502583020195157288730733157959173917107575156327201799932540111456192575634679581248164059104462987457331735867319881756714772275836478076275693613621734687087215114398348329525212675050565763914710576286273399631106287232373834609079611280147981993002977343456240352161711994115973797233735282649425434891380886841295749482357578126882151739622290913907254494654958581069513321787617366983997341059313961569687764481171613580129442947211573153590301773575082108348005920297841969925811202826986759220574334131948260014981534014940071537734813843799999918680093295542689916652386312734003981657816968388742218159524403302268461394620464591981718844950499289825157477984314357017790337876723411903925139995352364660718902641648078716911235723517460094142284893067644279805821540806725631525910799846395136124210613707675986540485770552897065538573669458616972774935111372834408829672626728888433816440550733801758644938700971937984491588954506280831693123083237124218379991496143953395295359719334320712226977454519651366611305585881876147481849393581517489885223204136690792018159218622349335473294016057426466538184271505088420238035265492340891870091770443847844392839807664219313221169348983561453565139970449736769595300814978825801486487400773194971409254426222051399327199469455934023488396638742260339538145030039423146982556381763804478657873414631076981453193186211268214655707817164177262838449959046536416026049507317189855840586652458385324291481513658036858393611605069398987328447920567934285396230793209287872763698179610570579229462766505129299620349812948776692357525577385930909681669586125227955427876753669860931207194183220433501880014293524249976443450193531184192535725050341503726836277911181512202614171770283729418239709184437398536986394777495369521242490988149201471393852982594296553763650220146543428197838911604024355318552661260274141638436988814024342092508340900258612456814813226743852695004498977612664211555880599296445971165744879981669089944639191287340531483230890647891119412226017207662994932057840783987312563291749828026836089623101128506572851347758189580953350144708739132537285700668261087645309621189000236577616702134846010862985516425658753814445439286478870912750525956091087357957610881115260982645949777799709467580943165442589970418062848331294559538646594136637370258064898664925877433930014892857941769864160784409317799083989096691305729294588939654758757012173487205501937103832409003919159002965796681170586931549524257164863947991731327895318807840858848922415865813396476140010754077464417845316496045772223137142708910763095248881689708191701309022107726629781472786416188385611840792422451926988890056296987440308639910259889162402646149804021657070128263191347047952522396549510061955383886346206267114466723650454086160597217480411781487459414959743568581395216292169916945876061285582555512333057297053086281011873620044377399022166720230838055833614196218292279470682272854568148467471002927048144024212042180470302803612598953637698825801261521387995542159858945794883231036688528371530911166105744731570631470491819569856295614175140148934424143741049085929517708836563462402431163159848371243144361955824343526187780111626199410857340413749800684695233753187119539746318448828532710241288849974077850765495415274222307743325370161014974171341364127676736030691164770807250422349069197681483070799830674012828913065618122463607123234307189378402424116239194887698193048470759194975937620185664401861213466592766892482385624081084719212637036171201023569105893753245502750316067527005038137668616142889856393725052391286447782946189040601190944985519252047715107720437136025531794311390761944987855895087894302991646168515346235574185898773122795760290648233138241539377764730555745868560560884385289428420548481445453441827072484919387914755335572867262991580106078613328475853487168364658611355221285915143298096613854603929225203538042573881849806947050080247635408999245070675764373434480604942098747637182615505328755410964574803992422536097957661353653729543927297967218133125813568204156671157550599494376889303097599186438924336855808537344954246039228271266830115623052850652261556904025106698562701277331236733789265658566294926853303888930861066018837313508905063404424663415315345691753659304059583674273005095193992810223021023585819878031704393297588724284879483610396743252993676407191606578643478157842912854499275640190404260451938260181301007132134333505490276105908581410814876129634905716979466580338875152550279491742810953544459078024659964991713431993214115326547327052380960287793955614126900205370384513638308972334832055694975531727220002569341450530877457248965957261970704706485307998215459941346978391175175884868420349934841751134264853225901311625581531983540321888031782483368870733821954185817522113153986249891798437892579678933581889176834424226132287939670855318474425866795993851362677827064864680665281730807447571587132769128957856596933533209115052360943059928301807639129017811801488410977110482505590900533816377855502084438380503894196649294158074988556429170000790755933726633005124287831043977070963355886260988390404496108704855173293720435260655042175867457628416208292104768270726112048873322366027122291986765008329492655388258018967601590497976516847585444417411625419742944798187220791472727159673567382716485198091214217527440483144309121405669290005525630074166506390936879079385195610444967561653744356052085715816800029654937836011537433250857294995811968571222780830613089811295099649250195948142330294539703925951950871868709597637431287461441010234748339739050946941944245321727602766323688132251271261997140293142221547342356689885652021457310366536169759942161130004423773728139076374148264369330166886316389026529748350553189702911482439536424919677076242687847738882301745338154709758425912468749375030007021051198020222214815477425788641165754636361671869746022988608970994023758072603906095738563693070666538877481187084734406774048520924601282528447903319429693287508830739464490253703243426945021413857347571071040198517373432612864837326551589370037891363462273358632187853189843617800557694797448622432925113479777492183210873322702237749018475671181829738049573595406930763071475296568909280696181745807395177385740240587924657256456784469829986376048370601876584334598183351417814831093400343210525048699585164733701890519460497022201089439473148026029936062436870688968061095522097466115562661762647750876131147132362838457624881544148403723566679632401003703296858503991965058507600256025328054923479864947276906554650416443900617991038336840604143951927366960770608152919546348816069617940234394894204286899940426392813606198385079502535943575552492216355117292219124952890209756581736580163581956298501820562427051689307022051012529540625294441876284066406342140483626156350371441496030633106652732738031439629667706012909018974910102288416953207895396117959057349739893548257958451457285154527580644379302306410468216702776346671449620360464870494205180935642082697321831541376337108827587278835896760093934894196375812323335252983314398706265975719593791087886927459928701381852372662715577992813520926266915433163025390484606828895379866038451739546828170169656309581611501101336124088173442919413299042810416353429716994291431813799700896058786186632701529726557453940583486716831107504009733727714237529320073715745628224536909603294287947174737638183100809923280341362330148619823585168369389746787415027901606958409699258045920395201319901201356695979508261000839007350917973944446222150485697960100290108228655914256804107161140603219538936305843883727864095770093484076558376908410382383379906074019699270834284702701874257708298124526290958870274868446518699380587154532706806166516606741329166268494470804594649843357808373523343818478461492160647415393925935751297288306135433175285622491042785058237089996741283411093833339637369527412535505991764309952118658243068980480482819504918508458385897992599592500360340787367530124094839051750292813821602189013547658444843582128139053933062770594222978424668765103018223517907209868873800895985462359876262743803245577751935202337420310817121563146485348239154547862939544736639578711700730992483990242264519339343964286264861253856231992495448382682969887671410962555534276723195539545120822873463287149790100730188383753303048512974572402005320626210483393238110241518352910388866088503513419016104776150427152759490590602533299316504857343452659748092526017260107233855892289085914729016099407226241107991045507351231073951162984348971658872391458214490600225956988642570961959239262824695304951363480840468166296892469664490455061441404613524909632181229047113774640568604201207160774618882669815887776615474726478402268752029972135321682602949635229587015211241072198799042898345760822331722392215317409044927064272918931661591121102770680105544140523923660743190848383074236948357796788000441642493888116435616694330085357053360369066240176341843998396339139704329874698117113936008157690241202820309559679210222725096153936628938025111654523987626899637906116828570878072871428184991536450027700136100698080492942644092358726544044607637904455445294539952607370956025988105003587558134830435529498155487031654520819279066728100641409593048540498090960920591648397432263734432313102189322044731196630730579824365237337500836979837334761279328737919629136361576908435181983908634444760496060019753670457468044341235048084834389388559834186239326429287794326742367518434206532030741347550813146689243000419484025628012834387747411611273005267127801269461386624566298752605526172346797440180816492789220721178769067737933309982739423185778728573447094224832625395382262665618317951190282955116000719115776739006197400363947312876829720887524592693477493567380787861473136357055708611301299007010036413233432141829893997445029135242864390423810827509928421096713529205117166336879969769085008080451344957342254137719437201143026925099996449412019909962368266706340269827429487055955788786522664605425294662725677177842086249713530109496553074297266214248568804657137863406406702919816468782848071348279761540109422875856995516711644870398596858600173910326724493915081319341537972632068170375559186495146728955734963629234241733487418313923037634626312514467506474873467819120260541894376828775818924394806672506197042126394161388695250454892972979802557926917863959386798786439548024415603957247128083187512373097722424512323508041899943723191302169863408751925404564182106677446015080860371497691035417669038099818044346792440501647327230272351070761206781882575309782960308052809802321908942199666493277426159781067250008386232464291885316023130437599799321875773006521479634963777324747649817811765929925934178818568242270011699292597620995160614597877760791297396410809923068238632414911657765057181960061833585874927849313947181678694969641000193363706716924778579831615394479348079062934238986193249558236162145886698874068391467947111837138393254381106229626825945230058710672526112649684310839580348272243778808473388530399326290375070919792414721078866057551902549205427924027625050536961376806221303199751813832515199940164912031267602386888947446063630598734051305245007152266060080876470029195153857211356316734978411083684160097263330670523132152050745130663124221059093129093886104385832275657440470052846431842530757592096766656007997858542496889986776004469364847111952793832382478678369268869810827969402628417465568024367763644480553045547742745962414598849065982618217681906316026668647603160157699711686137582691002268037585543201423622773132488279854013387400220644454611001763108046177209203101378514354287966560385739206444730359561698976483957318984932191689524675524643498954124673674043711455161295434390043534520393141664709560438728775621111796402133089689454459190687540987927239082728048222868476547089892398815687404856736523062059380659944252015680962395843105040719192505548211806401047496356591839701533159757688294001805629744221130557176017231579108299307725700612591249862881320206471612527191385239955777977929487127574411118034199048283608681026490247708355256816541075773649797325212318444642713964613296651675318491938594453419086772340963875764178275378545560751335571637511037629721249875714281486244617514840101960943732507965195669257509525088803849352419518630490321642173478505840851611689512807977782700550729878950583740172783952772817581058135324483334420808091813937850256384280675497931212359187841824366722356156962095933546273778822537388034682148579276631062741740322513360256569202949682797039447951439942553820364220326423717596757740500768594538007048610878752478110633096606830106667656697067178207275810879852418275895913163780946267401759698729135947814393633858415834783253112792563702623414572033281984312732467761390153381334715132536868795864167488778967620524985046125112104541453091003424341387143664268750935721022752615333619660373773555963823519592989294609089909426791657243031123653140021579874610233231829547500875090276406335690367440420601526656880201736759345642397989215640578427550259286937855085036583880756003812424880306076974509360011933293797361667891528218007381441249117360871559878277126565748973740905087944206401851578004908802522888842784159246244091393195671232624925004369698787476044316869460183651934115889716816721958868280943765105058785222560721482100125507829120568900570643180708238843498826785983582266145110949079353386267223831258063689230515797442595823290469191572355918291242841409349909092553510922618021074541355582812653928354768270223492230400463597813064386772995368506987952872126853827833689333199493815436622994890834430013505069441723113327816026850233788964460394222762639161029307925465061899467724890168805193606043836713843721668651189440145774341163181969468642578597104477218351173355368127204177568713319133153520458448436253671893020089811089716720098539221651424966473667873419809994034692985900006868269167140516110962314299372291198837156921647404921166382667019971063266069153529901603426938060708851781506792608413929129011395324811416905219082810863190269175741611944616521412442495254086641093604189922087900345242859205391387042199506812144838950238916069034794865261998549808838348206506130033151718073996102310534099052684991905906616602736648922910335211712343966257715009382140902940944576585904961210033197327520167521045022738081258128714624782891816932551394996815953662136589139192696687516543875567996681299109495034060779874751199458995255019158955110518229379070557752400600345341104080513863960364385159052380231434907387566917908037612449711084469062074889569751549789057735520838939828019210087843265515284068918453821665787766502750390450023019160265045040291841957541932593942168454879270659223759599522043627102417995960336157342128023299241189507230562721535884687726800566790303894891624140452703358392494455125691659249126141207098699281799017353935907679684627936702026193872514740267953993331525734521849824247855590833821179093503979052400524859949425527555139600747462489018516929569042998307475956013599294457735140697658638577856819277567344991293445072304883415211908149945104548706878810083884110884958964364246064763182661524706305700963752157626884627234227496032419664774080863543921226029789042561466511771907821012608079148315736787182656326615685943791917494679161738539091517355399303455111104786864974866626675573486644183075607125356283156431525154261063118448524511674016304392142765892181563454171233836980965260958709901924608073906174655620590268145711619718622502646158329585804803828299797487683029777678846529974309666784927030565591133606163253200745855820953766177487976324645534796318005164832459386379654486323781478731568943669650404880729063650868534544537143647621866714099715995402996448326567285615716203456995843483302039787652281672551276943733296508937152805262765173742476181666029597015676194491504438507629012160408831400356804693840328526789863683356293879015524832896758392249298273106247627313057903149565378365957365926850600396981380569874239713025909808511139928060812306665929621918201067851371889614154901739235243859895716856021777763065160908467362353100638045073082731442516621390534367875332560509013290711643978240904956499919289146080582252525397818949540659716196877117699235546178053202328448092814804522660097647450289011381323214435616711083573324295105835224118079439249968556340251088484408276658062911857900200002615745755129737073610240813566369727577942734681067094267803158030082598518385284590371891794603979566256107457783693208435096475408182118965572892635538342914810165431379945781465673742248147434569158156408744150446952348951345464338206711096181318568803918357580687156377119636695285370233092974752936494706517565029806301843883192279974622625236869322852139661304599009813173928915470077768588205594638216659176812104414183484230895030412997854325561126509769567970791761736232567192320324065320067760366733064879948655667709415644447206760709468130674682245042514313404850530910679158230178471394511591990015325310656853135870422456044103547652704041514904040991680604336078210617470567513384899755659694966502738751581631712119274371296582854499559658827941014554362128697643000308222373026909456753084525358446198089712072110541933998204168869887471972018432047974760024903369922358509134080983491812723215771490165136584896080101014979564394157064721427219639579368101345540859050824457081006595083149116178406769028830415802482062229773414996816187504483034817325205423942811455719361066964117856446212800235732474776962726156248591748117830793614201229969390844965208226040722664164091772966084435079762845872321553917170766417700346914751553639128358589388993793223667750523063878068503775235304369247311643732405518913052903856523612494999108059073007059731567686533809381030469314417967322332535987756170093390449471747659274259285033337112232510535960964136626255695422430482879662697917266508416288819988520797555727170352995401030101103948271380569676397071296811082209089611563835696981266452503475046411064647009342175887860159077898561885075337847673116767838712097804131497640485850917289731991434503269304148939891357027841399469321854818467701442171614430996248792132383561404240264842905943675216275775211783351167066099615641915572369558094608299537149841620593956872237926088184722216576745864556069218387120215767187202424313328890096576249100411855954622593866097694971718324751593758506739544684777077084245093715615382097185523381059774551976663305396366157160884958515187611664704252270710339755261843194972211200163153298521947857075728666478404735513312836350553916307895220742527796776353280534109449806493560786815257491892812067336286630146976487822525413395524518519662078386968122674610552880760545061024869412315298000516779675220452627019279214796749864906399193534150025867494263799444789739803481857695883271649950569514016308608844307618854367382377959348698557796435191306824093721607583237192408774631384269895037966160331332718503418938735035764819123672408627378417854026394164436242559654291635001021767362024483407129800048872340040493535230957537133826774753922873440446456304014589479827115728348580977186388261905770126463038256494438298414438429875351865668597166944954137319845315455202892250137305780134708201486014928475493748121616426135031961642551376149977487449293274805100291752469285511605649255420899389820887255829000641307413053299526632293971638757954971831071138557177962107079075817417604866457273674083357202660308771501887837473822462321913926488593292703479113528372367588740803796629343098336145595290457351134372592703326099572576475085145390258227345054748347559031615524841831918749089387456994880647481487828000233520091032165047486264313931999746773096662495835924524679583282218550406845869873710341698753935196622606913393520126712809496062471007394014271585161722313857174017485208421288305681676188536752968034034910551742427000589232825458514693513089463865032824890130323982080562018252619003662837893896397427785167247547542318275556915538841361808708340677348588525435201555321027567695325790736445259931604326543519292467090938639312710616357587138432398247441060609220150240199572092012836144548759335804786847457480991330353610250476233168055913606725676079677928738885777456472838639085808242235127078328513104072880879854244490585373236505882483976976358679073350530775081224036371594308386877149297350098622114568045751674604186560084136109810549946858002596855330592311335092885638823505423936495377553207675934754616105251293967118099656357370570214175769268634120912666724316192382247528063288188918016769593347499425905050549449048111923272965636951419614354145342846293478773432403340902876066921991903791845917127970168623152472196695425648583350861554171163937801925743110922052984749369566389957116322811432057710483727190212041488587019448144238482136501311848586535091210416029461006436386257074314951421603337752772247718220421414960534381385872323098379304536557819444093480849566854108696004033672936470648955032838988533658064041373683764553108283428890501347300226239774017357446756050564224229011655133151730086224572780394460452244141390646885761600944413226545084202447331769864113937498939544638849251542850443539475367151569930628897514112971860661305804097678088540954997510013616233028361178151427337205306247872125758048674474928166784110060077870212238058040305503856130690293058272020268719337816924294344087412473445268306933388396029365559849210864484735262970294630736037420232318941462031325399166341213527550127137149075642937121895266168770258658370792578266933973855603972188609343905790840139111080813286158304474785893448092779226286307367380840537590963516105960260294363268100154120025761895706188459895807067741595173530225489820257370222526134215732940353781111436000044307773855396412163840013359510976479174711124655875977508219643551046898042636792320355695706996955505425853286262043076735867015828694934498595438564361385345585517211241856302315570506419224324890069735680967804551479671127293120069923683002736904329345749749551757039425970380470174821600085155535942098492977139832777013883032991997590062924063438239500921030832060634957880488060346766614349079700006694575650921151117790980396600876321069055891360280317406886403255862650505596637398326844229132712195857763581576497578971535348364496875704747987603287332599217027380336868070885498286811603224082584484792843232178094956446567747813916917752959056948907662342066689795957320882252554830620743532652612246913202429641813546623706457012950490620828512536077202668354049335906572894075635393073605162290631665935860486980683070077920485884509502520301148257291077365555674312904747154055912428911656074488362788355267448881276757893383638669462848921039085830035406552898098081061594666509990695452611866642122320276909390571993535228732628240544212547490152652654219466260528893785201181419748329609142184979705208618629105092125286338157764899186477270289551602250937690844684136941283563790614835852595778998384151699428503619150067700748275703362429486847829819321057899587004574069547188036309684066613440001606173123348018461144811240077761231588856653447379143313564843976211447171248708397253217042920699363298830872352480309418785169632817602934625078354115589871910824644408211192866994107069467806062728954023879400449059991958292357724152246876281828926575467919980431071142280179196339332819559355671834558524284778798736397202395126507527927092779351734271972133627958698067999726703216255902476472249918678682050362424888913004126153375842422369278023992972071987588302631848951859138758226556078580762685750136085221344332412843788671131443976215579750896059253826189967383885329347497023810908297192131059620694263627972561461092666406019679760750745537091432046187984457531292582183334421482685902306733051697036537094916590068343497331917635562184510275941377435560706281085365299661846246229882123662740753984021135944475136814342092294050499218524638318896638208865405554560458176296293717826807651695153512120405517080382107875658085216541972776358173347944898003765093494400185328278849048235515184650089257851830479921454650010859151360372368116026956777037419005753851807162506182255602458077429085963548285478321047384533141283966088288273835186331206953712165261663949401067267314812830372540996885398150389371736711886475778149642443717044620869560463480051322955446348084607019600836566502023185678007474630388818701490815984405458643723272712860300100259602876923334242973155269283146375296471909780022338060146309213265772471247703822156910284315424665012855818942100511922319620444169870566689204397125181824952769160568977050009216837921556283872355210484503227916121596912740590556924624471023018669805866848851123983466551522481532584899336227521078109433982492439134076373096124774694452795241041069546168071673847612671097305995292129992879870086469265867136896903505626753378933307084908719541428368815301486830258638341914262894831005764176731846077583579996871322244331660568791731464534334125654081759154062579740019732847296480908717989646832025722959888801333329498443333958331985549934960900342155049610468390293132452263732657313119290468556991797244808494994253054656750980699344605811783717511447584202744311294139163521664086514225213491630356930871261239889388564516641087650790958892728477348477509852158654199150500641278475609140112101788540578441008920819083856997507939958460679810807618863293121328466975680029417689848499125378823369427504445665256849267209032365994830377705537597094252489160788287138292087219781448690013536495257296335850162037108912607182893186785011814372482392411448296037525009118890945745283052622606873736309323933436052847348367376640883159747489504557109823327391967424692768107383256480420934240164234595301402428604460723839612963967504210465400628137158423501513383530603378848996435624447790094606393243202294140422387199587821330122890491921231853952593551457259712441041289493455179724606338795850387301582866680017327788228223939443479713809466057316167438492938054650867555630106989407666358886433245391978542059724991754014302948085297561399117483214961787951179098102878568547391697167900715537206456038282013342128174376084935482512774097230179897634205630569685521548792577496292245666952341140677753653374242717052630401298710015979202807887024483375997315436479322936154036333659042477101577967788987017431154682469308623652216997815207830266971401514688535785722140253664791611614161016013215881365913253501847705750524835753091493071905241098836840043835620931937432384989585621477010107701013435831496509320893273205483571957364052143948884816762949156203170826170555546829033186235755169782106446759480569947682585312405907187171982563535171714881842438824680875612129976626011706473490660320606234111836711682016300961062360453972990348245609168858267313147521409483405965860961308096558101393910306125344660384894742945714765150400097148817074944707809498424943941915169880663981038053841274340523941642412211229310627514494308970433504806515568021870741681874755259329486366886384548945664882595805553653226591723589052857456894202342494336903993575870372163928442331314663465481210782600410375255189501658503161168981517759804379745850897435322969575521509261671674648762251535568824268774532215356485701698419167647188038796125216719245974261131772433049794846983273799479649238963895345679760753689837956824123755410845002627843130907253436816223778961141664360046792279186546057613937209311912301312997017954332245502071315551464704778226712628177827494352985220181213219352562107608711618078873647840778296977188592720611917723607943152623470309646860012257123986704569878452378295410077416370330177258572360262713268163472512804676358211218863766711755398667122267186486048236917200315148377866792106230845661023450669679876273081425148855161820538476793317898479171046781344881494880001601905385824557283378950533010666767953298293311996613130416292188732517404032273346737179026713689691700160488461431026819497925726792334727276134512421502156591420261449598097669039010224895545977873012831967910503572788747420910931221532263607453257614858578496109008618952285920033101348197423689630902272580244854210259436093822630772261775433989754184661545155890750506586753503271003223180348244383437711187419768141932699700140760012870774376990738375166806106916371541364395576681099108376062244281782870022817205800717406356221393544279531724315678077198180172380612004249319333827354897948206037439255987726127645673998572542351735412425650254599891842449498471313071438351923416237421807499118126201644090603953501895381889075119339474831319382228773938538309972075807474528034280157152909821954780532277007812068199771013761251091966365152977501624297345017152223558059474998317123931865657869925562945704178729920963881134879849766475797231206799649297060545996492625533575011042578848252603822970584383644932968775985418853320095441483346119505359752207815229011605903696614283795551295450214560994626737816587765806705840863495873475816972575439086606745399309857069475318679483264971141871396063405833837631872773896755167548387859644833971168250091435621295811482414451335278070090317108721786854450335191634779345447372908284046175823596526794739817034864820842812432974961023601717262539569665650003156354055899803496142759457282864174436073594370361945423018011932639876689751431637758620396433817427086962981103906349518599567986850108298521661584029346417830258458738948316735181335490010198402591317865671640066837433760005782464135654959027764983326727544466398741147925561561656450824133877704730192787911096084154994744344856616788568832465320422623768442412578591232477477611727075947195196565686713102937259225319496676973470468064370631756636688485519390991502909861305127958326681103835733688796108027200259876248914180527401115399787886855491565403690244895932142593106678843992374848442368815106519480382219583595568127193349468176579215635425466342892238352555758508987385109961863196184954536834288875886082829080460838191736674258233396794241142202764033489566522344565997632903388111223567068959851531102015989677748980093585021670667470045710237168738831798145765857173240855878174572130413560245189706812500135830549920807681833798416912623364063699004008773943445480032411098359992752798378992773314253525133839894913926072763174806437516408146491582369287527089065740030636498650770565282048325949341890045105745362103195411375946834419590786883874450268512393521686298213929275575114495969744482255930628843745842397013975051273293707200862321644026662571089486316483370788687615727111661776019802041976878683770439862907589471834703398031860909351950076156695955559142994166986567983749938970309779728651674245091370520258990023448122846196666383483477833306835097535251462331462773405706217225893489129905323022870066094895446757141559685839624796378112797155510642707302988725587755428173155218000343985518666644256094034119843926063073925518589541865945140808575489060312302021836312735810118041914272184475781031482233137252818073424136106053258295376913947286007266310517329426756951625929271358962478306157655379757911662002110384250382488543561006492455462807230134739893839377240425898671037837629190697042220725581353735278491657596572247156718617810922017803812546753836836493425804507240409024495871393590766089739948969553530364369378808880992553328776646928091983211405359379687834717520772336151454143159194032423178137515112695245164297754548908098037844921655002290176763538315508085676360547181898380770278994334235632567671484374723412993454701060197854003792177897018028347672549579679145086411512684160996413028828377480312468796980473620834370430506970604971936191012783594323715979791986657900567065566663332422025792007178297136442122187424356827678194315181237146555957505296691741488155536745787703874940686865433941025070147154527002768455274809386556982346785283316679956524409712974488612764675223755883558375215632881445453051141764835339932185508000574540098632838783445907158087590909314222673009874420078681874319174696367339128900210771681055621538069067824066138045571920119817022513778151125434836745676886054492415177209378414770112825519257181541606086956829701463710158269739309115110722861676949546706551339922798078735191398996082164654044404597644571023822784033369577873879456691303035587932205850676157337125015298013426533441237213187126751309706519067990260704972946519773679346903393558956207663832360525432755838790772779804290510023539116804601618990529717105751779488408931843387231150203273750997893588852927408924922103506675583185636998304667676691872324784553856440031154075388628571740423436623745547376408204748161861008891740761468904411675217723963988123794857777973811732181390808471452394670786958004513583920809882285970592717620108566601435948717327337239635043812718060652647803724886994847602033810855833660911539991438032709169956940724645571434242256154785230745073940885032952263945759227608740691456095549141653976825899599634316837341066372070623866876551879185022223452920944801488777360120091703987337688473214470992820666722888828266629826087404070013565225710292731717365386004565024073003412586028089312231933734236832649307412177909182572133472065518731070863439641345624705678145994268808478422070925471944334252352791417193662330461255226494380606102251816739163263482815056670071012736819938430754066121238225705561883055988049768441050446038052007216273683559964256823532005342543364040030890770814463672423264038963899507449794803381818822714661779522397476760174149264300061306749569462907883321393979200664020852688435096231417821961916503109804357959777778068714492914302441799052470524539653027204956973406905992568877738566195192503537656523190600827307227126915131994629229197730490338814566277759703457691578934821152849596217694157244606585275787675448808987703101244130102684846752855605884643752054764466941010717528314919148344161411858179371527494929688499801299696451781889218712934287479698093690653592864961368254747923032633809624085579500648314342584026599660975937335711890379271778291889440035203546893238261501968316772677345911421434903753323958610782109227138852109056463925455877678593619405942953111990397936878462406435362345514583628984133744376083589441353556547583127129931979902523444860252992091961166178711590210909709425050268533013033338487989905222207509785420462007597344696650750201306950644965183843025547904000884048752468926135947326360712375837622152347158962614929946066454229996328009106342779909197510410906274841920045349322155868885063110274739588865771490887091200565711385400829086070955060121166882018967137853058355374694974999632091496872217508595922157536853105610828070422870918106153990342908015852272257901821106847004895436780826824821711850673678849578037655755888543588530158363572959845543088721450734164315597290812222029544342727279211102325008033357670131317705077429658533076022711295992723574248842678344575883939099737951472821120999241213936221231588161852262423463864782848740555736452678056820301818123198061960123209285336531247054761774391517665394559701418085867494932327364416037405366762520379721026594241283627993694418301064335340020341026143935168072055150563509070661308805711477768547500066984644143650029038498918729055480009729334332953522251255012021786084827474962925239848081692561710351626904264153691043651915615553253770362855980457678127513457074437919538304067309263265203492451766094384597378114385599601208222510544349398945214570419029135330422817007613710229529229862898499311632965861213503588089553154324859134338033594435850774586518279204590699105244501754790516345708405791578266722529926789630413021257721833665368091401558427073576474359815489132854416637005403282252593806374163116351344322567211700931426108568680432961575080581229324374610049671801443982224342053721315329624166939727663552076074793205906201031052155951411223796459930384060585921137177377727881211889028338377776708680160167106688639847798391400990808134425075662119876525061324287396420352160347749628332352375563422913491793371368582286663407615446966422088963895516149566426219705318691599073838733949052673295756212527313021599426618697311196397278342531438969999540448435592976634573147350339716961146723042753576528336289217061477185514839599369566143946621172502926216166288238690346978561576707610056793974068419944549140634829667785610455574156191296360394132191262157474489666283089284077414661652984957384582188202999863716331456476902631440197389935882055867879920779465389468045399866308728511492781062673905072872106080671573726798550260010255139674462593271428182315018821497639146600313357794575141820105507087899328949396734565626403806144854322574156470490593954346248586323960936614124574073654164921888689524426369672735082053164900536108974540855645010230053932922903734463895052251928716818306409157735331126187580379481627385131176586264040707226997990383666311970342667869487847845212927097379881393175533267809065641968798927289799501091832888050881992034136038886670145213433876562757986414996771280444254129861884410802508887466387688280726584266879576789271621001566273869238797944182684829799717420279806277849450258894793470605138781216887271263579745792231379823006287562053857252757607811619328751137143310102936141947565424437669546712824905959499988897930772343591958155599971021596531350874450747619727897068327118476998694087618997774171267108118215104222058886792225456552980803247240387280679485625052698036669903811610124249208935404778622121859211988113914923531070286428528210243834669038369070553581760491530018844505901163062545906009963870760397622636173291647234039643524350086285688178213222331275823599248823598281848946099723302453492973486964737996694194108611400302123927067510230035694696265140535817323729737728311333200706569543092243425690743007558469244842331935485974307223049172518564473990061351254105396136502681054029358410497105969572136082492115608664323619275978637435036810248423797846136044554019746968580304412521519427513346836617905431079309799721272812539278035479566291732053074819099897308542118351679232475791274642554286822003929849212294953103512757940675265593154091300382360047791435578423450548807703845133783028427705806256635154972066471552744778253483195366704109104671308186207141335620347919516450650571423015612327622954406582163204776833893344323907587756297893165325877626448058945787793563200454809239578263336824591523376497295540624593867666296571638759940426037948473817805965008475475120386529474113110795114320782359112255055086470599892474515710152805455470362902442268356975647805276401858039266354196411632609932938530511001479541351017992376858217392515232018144502683375311681339066116415153249157622579453823881423133890020878501283069393644763494574375638610813770339771037941352844419384000466419027036794115037838824202759565843053955022980049299849478942067895639077879657536416310606655808088192167309171910068971808577153149213287691021043886062654403045105257052640155968012425564412494852538219583734496525785680554660437849137699188384777818563797766333020238548003225868913039631634350956554485488571592809931287797840411218655390394838189695312794090994911775131637181515076604825956802455518308830022351840108049251101355572454230789783553831272010255203723296241215988222577846135769847237602707221573127077715869566628516507924234846087400915626371126087093904417538930526915911886078639713144943015376298793096657025871861179871660241250583303804602059429848558179693038102367450549141584204655813245426642801535948408476982118745809833045237524632925754816835592717416781199601871482259447322421576604226346244492957348777576815314332272919112433881937842604691610235985983614946838617922703441012054104860662106407218962453939526848232763393095378277700381781711272826797383565349226329327890194297115287566566085003305288781245533695411182237433140119011538495800136418697007605581461544945178833445226124229225721876453600250277872746985477478127632246320266105735831196824424490215139641555699484649495879239497345293436177067631720811628437088318140613675436239529370101838877857806114738443503941309534658509655657216004989652275239980683277021972934811094630285973206418753912722014202250475131503869205213917679103741514476904580317446413294021432821088876640613911053450404035860689026281258278074234376442025535768898719213349256922179222875050378497916248244400854021186696879894901208530694539968489345507055608675912044091875607853111586235285204963935927406300577364820925621509465733200853213187945282100382546310581898154250637110103470870829269859741004750413214858358060628792967095868437047243246533993407094315618750635267795584147878112427293528292150590397230423404574642549813531483942643990744691413222420749363237124353157201638962965305305435801851444625843014821039223631695726786736083868072235836354218110812124255808411803770833632862133532996445489007530674908196223224994281763742662488153699873004154686064089276482073189752689332935216187556423450337806589352398239484917522937639434290064362860372487145312309369322373826960179195002631581082276493380057149911011790453530757362997457407400507159502059482560621510189794040140261102625875931190578351790945749207172397027740072446249946118121512953594966972486873657280503759458660826399543253059599647770994864077934619140978160656702195636649908352393736523861599196439427731697764847536852517736688331622347146428194716168083024091075401929672191206174683751712872175245396657620344123461298832257985245207220025458294300438795509096246999122330344079301731798616816205724512056244733324949317407936443097566887653131560256560180548642724462561938985972437368247426496220811257688563198346195332487543366502909079842947156785614048768133737610331101958476753068399538465560459906669219664144560981629863685395249866851267814564342341014257184807328969343353567392737165325802089785967716799909495295944752445308724451032436491634929631131106914767544796460214690958110068762912721426774691209166610156467574398657352917819520100394619206869889238029770945178703787055375445037071774141793136695744808260638080656243283448053230226188514765286686176653955867988619374778041639189341179071790635597410222467154410754811933591788630586817488210662169341868121848538622229468925487376940181725748652351134138756387264757059497048522900216681309785678058104703379578942661884187346002277372450362431196487313347689656720094175248944799154153971324028577322688197190444070816293040477865497855386392493220468051260969033018009349464435953695234412608148076922269029315849976689283512487896648024880318949430257529724941783541170316872298267794434227361363465397795119293229481865828846619889456954803944607494623207554007511688259465747226764522635655227319381349579520019419408054131505015544593496293754929510286659224474675829496371315792096187240304780176874901494780430582505379057727675365803807758230261771395142566424964710666669791005515370104175228487490314961922012171583152216172624794046171795393754207637762079750027016220787220256214562887802660421947473904411492496316525040205517088443393977819114491992285552308566120013076142030817430836121901388532507291625359463658680539583722307164968224284717949885513070107097607240914913264028133095289652480780291184128502819779714707393628190739868091832046970822699307127976263852581697104710644010519728732362461648331103832460502154088768646129427459248104799834728240332361582642809748560855538826390658548366942267857956896206216413708940476501955274157915975918934019846279760376277865931314450396525038285707565231458930808495873749470527170869549323018016586996323608035923222575768603896414850206456874860975245617050430789390331665698688061527332456060620723789711961397553410927415997898788988143517093037485593988839767310202592496590616651899991038364438250340819529126811388996859747031926864167152930620213470806729420326833260240230738697290585498055137125857615926631635291265853812766645274356021080058591889656995671580973791664461821433267768726053406485192447850902947094090618524146310151179790635517709722794398376161070692347897594739212686567535722229261540369701022501635502994831837292710450572446890366420701184056381277854577964720240284101097284840740439930442176763689653587804871006373627125231893047867765673128112031924664957475776989607345684097455360236164739883221369430962354126735315188990831620451642202798015306679429351834590694166476884462354861068116724074817669780270983992680938094251062872616455852076579263605954446971338551816592016613957105235643396819585334480148904352103409550209681267252795885084533766865329134533681190665617312849520864166811460249546558419771799030376143082667496107286382314882811326000885873178729297002999018634925232262767361966169465449384506556555315891287050074285895852096411786493564708712761589046012809481495408488131880597052770486635289118720202689978066255311826008423960481074112082705364891098801543999865134085029818999234586800375863321710335514634793040212660717891749479741799355674112252546691706061056787483029797329969435671844646284455624803656515913587790914259681307925259385503090180493686590712015404983140186835719920693311696271026865687358862760424286968901165305362261322990089704479508294063954157706739335302577221679398376321279666653019706051350143262397894743766208697376037782173746095050690048171084961787816368205768248857812732096153432771619190929660838709018446631120413796626774897562560670347855345623306353133242939512722201419214244174175892539333334018332060822392167456311245502327447153281687613208268890307534715548902031896957693021376576082844646708213157224423400221683690682338184888692435660751764214867441591496481155393465867661658141646259843611523062902190567583861386331830028520609515305536901173384838157812377308594811981903556114149491267980335819500941671173105077320528076490892347058679216475347712611416281891307878384570450592798934266219790258421342034960858324251059028396003832835088052589220195806392292126838164604461540683676772566252132864077895439012214781196869152061608004559880695330998712843822319701432270629668073473000763474567173752945602456914010697331291445688448311530602376900530142659138814291813730881286364928124908851426591097357767602153120271603706456100416488977213605288765110676175368526081499985092000861736150519601229049505267804993222102603546304043628043914988810065815801990504426836003776266740259755744533841067926556407752514849093595512343502870279465537315709168792447522050622074991159296644505315043653626006011575332914601021350501095864922552429323265577385347101242381033804679726155815540272361289260727536664230882705993604800267735049387834322403000189281571456173177653862923272834943562296033216760413419041320516814817521438879310126891142382975717377202063828791189528477895594615429513657134153909201516276624577175355874653746818774341890937649503529257796186666766544276104261755114319900326912271812817158606349325225762053348931868569672672698820826728525188717159009476790329780338027164700432363579025921794870160818026457180129666296065979903297020285139405077889191889673116134607048586770220922263658747877553949855573452815821879633999341661506406266558254209923093962739147519258455369762871617527046702997557927617643573363282897797594368792747388300467361918686915290770417814344065710308901501476983739559748748809938672076938151341315385467098916728076847279445572788211502885022775462658469666717526964507610884265846780431256245961166657370682241800336542497806351634174648575178213385462189847184561732903339751724953336315808470313112185259905946529570557223579954449643882139688541929854398191567167014715400468538809946755352848374276825656079016207991246094113015234436853677012260392952489809355736651733086391177238838566904732441130647504189239008773025624941569773817882121885024242485899206839936001867045308568619954771186175989149827218690821493720898957887172274596554217550868244641169099189838377076440810874201049962871365423890897275514076717984327240049849759191429677099415772005311892053098535571893520467345245617966352542254714464112231551645800241131976384068670265644804716607316788850179946740012984171390376686457858556865275153378430762608476946184858745950968220069718775411256262442786211429269252421962293490415006608579339948110444034993363875122059647645296668081803227025153390803018528299669788222799762115714718177310752732624423117183058927835862637974979243544730209569566772743652119195893628726645010185072661639444654328653783389128615105561708497343716641453052503343694985480621833970236215753152190060001511344332247086226759411349761287957319479417244248814062810051452619738351121546154118960586887268295023378334290565732261407962017127795420027136975222761237637640510438082842032218695263575779558463262307414415686559903403047886996303089240722964252169781307272146963906550492605342427410516426517538455580672517679382233219270637110855720976782140283773049370823845416829451776550832752567192723758862337504143753962758327080194799417115605677401645002769787556263025473518304740714455833370884439997988534697546380071931664012020812243682745696932878797106640519659419171522990341237575463119281715517688793882290081994009323815305383514658774087751969715858143417313954254335598608601311718643741048605114719701107633077716153835297261343780621442495509299981653187081730145505501101894863547310618454580453599710122348502369099491459871107053882614358628090890071152617547202479009205154731138179215329778170039841741997062562386212016046695703484412158998163343384093501282128176489668487703174918661429955718682834469299295860141080083557372437231932747933409214061718356768235870850071989436073686027032533970662758018292709277623014644385923330537675048020923846137534183129475650965373810532253647826506075792225270930243111801206727832522885464636519716641383631001872195482760507965957521755105803476096335252162475444549310412539915935221782412339424913825750565708631079986327685179764472805866837097587447941251272926060907103601750655312485545968188720544635228930420346540979706075718025585319311591194989541964496361698361441104166334944919852453079430854237884870966228465793442756801990738945697374239748257517313319170924933422835375786851352916145742226641297229709849753997811699481092951045776089353212992219101395337977526242308774254786391178248346853837509737758399771020125058000267859285734734787008773370668755186238982135004878711237615304449872132876411411201596387685645174269404785722599660086592094729959373481763734459493083099969468181507172889166539086183549346308327995183188951751743520785657422475466034364972889637131860748339115280168823192451087133774052387836477745687128494841789396109933132321485860554107932423613805876043534291934458359663949592049629477938552746830267327261377712841136092942731846861244075203858320479005245033786379265787794554087417258981964736608199100206504240649458893255324900974489312417067709885767300748766223191997429002538961828544705631087144756446618777666161261578196004410840829409311435781797006573205425248222203653224833867617675541401098590596491147989339563700501746603090680545855636465392811171122584096477863638835253679160442008026887762137108795052698156675373382017228494945041652064753135100393061726739919949553559714595539343352463753086385980369506355648636935680715143826561947772643732306865285512286133327297423630599429516514702647108568499206093841122220013262193552846277161737310451861706323024325438145668253137655402038017006109500089770578084105462722844396893657957941304293345447345009908034307611604241032822823156552184175880799910321979367920201569481380249308370459476434631675650783787881076764256027646069079321050630656248477954300039712566625390903115122318578123945878943819494737682703540932671603621600898654512837271161927795150616528680318310295089173754929584947366692210750646717700621213463532794369900191738556070557878161891506772877435693910064257077808219135861510871114032306428196274940774992794757558157139504666656582148994547857558427196314417171269766034352947973184884771179624349601551924516641474422198914269413917365319981018775160934137856844715997357986484287854347358293888347346366156507369353553710741892529609567028827430228589145091678954264881266065155703232520221149359330199444025891707182947596985056712485494802125489878657304896496637761347862035898774550935699539971137177246591903795389032907328892981061647395647959565322625214613096583384723758572338974625931145336069759252061990933352772158593860702496792803002786605165839012504523779932417728044937393285791525166181986706718850170112731752160398246327851216291742307419957171673382014384907427342813290639840248324541923442258935968302830351704113672805262425243665402359915453909013186059401605214565597233135616313656100553171514423677024212605520361617021006830569308744400224799179765907823177577175338302396032814801703523972423686978423990918226637437562953430075968962462932835241183757439252331426256021779359000405234618821755688394886744298229981641921423596394756207277740656498313302489586166564322711026791842970522359620568011562103563470240309452236705994950427460384931666825015728851737305778860983932338199999013896413139480061729232520872281639644664375485468767746825935431798968164331930770062143633381293484209970848619787512008654978449566798529221781218144920856604573860388721288844334891579504187553515801952113748540742871481267168390905509008549843825343254287473683379370524806561274506510258214185781138461938046621962295667755536117122490088009530456290431065831176616969834598313745647822172392099810984474489262371913184543764240822633189835720271896451518200327676565070088820333864023948204586496558228136252219241791918807744223377138277800731382742487622146625327515172269084836578004448147274796748475069208933956234826456601434136488872437964919484541885305873212443513287939825148190018852048421225835651491097549411242996730032894929198002413339267525262412090932715595760830957023679341035181388702390081509162169705892266143800827242832592703380739912668016001310238093718596337196902905556230377086763529378701141488434273730532293324793091149894275957738917633432321492304172123205900240427513682469199433527358874606398319057592397308966582493655553791409911778869428787364468603548450206516268870646047568215311748440399091199561032393955104262801855873382021563446757763219733175852944992686100528804189154419232971270072963185936323057047879480117142234912859130374826318128254086895679961396487926774740025528420028895584651930506354758869031393243251861269560481121876818571895123473179185610895432969178026401799449937057406674509953993332215148279702581160600000843814181648257162752273611322964641749666845711129524655465033311612056810943192467038045584438001057095885673251713106412331716190249886249153037812294479647394871755478625511530313570991667283137212053048297127008104596426273266197203957242510772120424795366339070152771673286248643345102327031799957195479904300168502373989048130417400633843602579411268744424369892283662720040384481813486239079822013773402336526546494840304135197945272680794295833677675197844708642704713559454910687278823700218511645040053032121849940760924212649237466341899290821124481425240868737101590235343269617610290276987853786496133021542567091330745076861323219354580209408245669551078204408442665587698780999428790601554539906935547758045974557623651506713544091912446742787518351958726473117435900020742630454267983588221841519276855530870900302232093374696258050837503318824680928940357420919827787348351791482470719218319310026398701158329179066265506672324211638651007502230306062970187822166041082349786110743870703910903897862679376225942409352612431104029170314446365995131203895884428817223424805846299773575730328053415268742203956600108618361974900464528691479916646037607374155500591714767332594286700404370963158429315632423404863136075575929477202541698992061944966679464987577934420012748018518606906649543393085615242479464039213515932254498714144007267843630040795570457553435123896333330389022764143397593963228969386426185907913055362182099706312926447612209088854010342689497777731376276792834449624196309133128937979020714828635670245786601481303093184255747655846886937919647006893754955422775561905975646391013236136908752080249232396241616008844098999173300094975321333428793709513408995496919991042406338290373437541447264483508153357534856871468523674284988726379293317663546429930158390689307988574852428904971876171577253412957721142419645640947593212285642005903055124903903503411380976486080900506118643431493480839462369153103549130178841330453741774432264221271227318832158850582198276694975818400394789189254657693621006322997851458123949927960986713784457912993909080199324205281727629428209478649325776454242995194906362785065799766536044382061501731364635314732069843215652929933216547706805607819808526385027794097058322410645955390520235620117876510240356973851829324706599047406475956236587419705754062830099236313160564909883737345286878462686867482246742766363953273826641950538964146778730923052917518756399830321734574507998022403146756257942320215671632499554576042847014533509388778234743786124432953364621894758115908375353339991886683127924250257773441828778178228786005106155202878770198788700548862598698530554775481360829840193006132185211316409481555874014919065160254835414690793062818769166179425624783456325307245994505708723713997070482501619305921325551193613508151471041916326751479342103341915765496982969924851004524933435815970490704080403591234279096665177472978331069455634682465784738942124311843927950938832204931318278036230029005939940676590078409416495181367824009302658678372560160045517659930888551002932484073313702017660344065678876384375265289294166218530269696050170174884537314037219360996533517593679266163470318415305982824373567064674799229435930668433548729242078155213825139051232513253967833767600614447635350975588651353544173750077946648293698718503084279591321001029750140620693618605628984815349449187857136108567095445024387471401242612484521671241648953420204583802610501829663000348524979016945003982263949195191895949371115636028212961632828585763797138715657277749089676020257602347372979103692789819664264822374711447001932860146919311638309575532964713068191608593836077486029271049896869035061000323057471891047884101576229279233987704215005779570415500093002449688053270707271429838206507648024571782969275685157799435375315881745990535053530501356081395703067224661748026897172494017829779184021451627493409807398312997228272014427910596871307626471766465176891542364229453345879295512977152502683403449872244604993919633383642398672738766438961987472801139476814849722299121832995748120828236079827605460897737640741371173881357198226245335848255592986455104935662002489393028732461653374046640939934157361171027346523982371671933226861560780417796493372163976109590300418461412521621186220096308106623741964030304306348820388806999901082319217692841024629223410161805617469061087087068466196721809523373035070218835389877499766233008451058818599058260211113392391918735607749632502961931346194994984385780282823738737253272730387535079309433009852925517627789063796421031447198342857685675480397168014426364323457176591135813393079366991069984663088306393545954484112511177480975451479004832127168359793921661724472063492060072686513442220037425394118251866320424963242113506202852263365180950697714062659307396414279681645650968707260078301035810315033436611945624903749984607248944930603772210369663480862510310035829993233026575784967340112323056367305923271218418824307134216222953505421099544525756721510216805872790243991730248784171865759679219965579944570978356581092527791353358932129780789831288298356236038965379157808842677144973603172763103727793995216172390229999100841637468278040558595043355956126124645782436761714983564747379586151445341825113301680197914960129147197525858573532404560123105802855124638685114148593879457762920651372419821967341543785457022983016449155927605021700485341908454159401903535624836338135143895513097293047871097858822983953522759180711663703111948509397396152481367402154156765303191074483364445862358013399599860889739483403141781842308076913519143407045842138273025434723107131231659975327409185728755305340520124778297629063219616272759229755229661159549150148029771376944397719432224722782508302038306401798361956042894917915518527324830820191008639214193847850793832590286295801006818674346529084642433819771878541540902074285436342622350436347629465759080479881986595664480672253938324547492964254832461897170832050132456480302852790401794692896221732415396865168490169569597400125411513864540717707904927314596363248611469016580523018944833766559058987973736967117292903378878041382631946078772081822469346173314000125183275483805063474674045245791850439497439558059284931426135110006275634372003731435868100260732101740958076485328352663073880945473515137271506187814481880976151726966696161536630374742805127362615008652690546148037582032409285147805082457709137018923783400132072295052273671769046025597446535620181018610128829239986912430869760888531558557342699548617782429558153154875846212502506377827820396551213887995468532186840782141617674572656497064575842511702695476176462277786828220737978131088335325070934615499827081961824490929541265483970541618359195975888567508689939435729407325521784360026411437599053971051942954878480446154831355896429270530753037234130086648002308344901587842774101950461224302439348269413407712613342778105282036652036749598532737723415919902542822155582871548287716868972999720564323876256859430600451441876026488797120116135145678213010277790832381276591152988733269615844355801125891053183508774932149883996016106815013173002442098622280523962249397984215034943070175547621676943585803493902653881721814249239818545781680036516534010928219603651462213759731334289347067390053577662938385243286486398466982083123807799859580628253035326553041394638556641643327498391672531755810086275116938586290700651472103754309471614985495249486198813739270654902241502301907352649405618881002725299886865863042946262996799822360834526919230234615129388225621359737677651591428369507416156624512197066943885339379023135290841090743271007507178716983974763132018348456134874628772444546497297228046547960718766513026853377074845825406447555576249508136250840486729496292612821908698136577565530029342763999004767150764661042329076835263842334100594909554167511123201505486665643442156562235320559834700160061367537625160099600257103431970630478911552870353905328323907770866990776094547344135412486624311670231611771411403463776091441628834933865113523946714919327389440738494151912205738858643713625235477504654256798696378151500052649999757313713450734698376895195551441591461022612031946087565711323347886209138643487837229907364580908976478423783544344758796054492027941139244355516731584595363123032384625960674062179269061129688671174519312318712534566663989801435876480690516046103312370739783931019063618801140084399402198799542663178956296305465189656380647626496403495787124268796922849068895521888533010191017990731051148519470909359870420736458909179029131090836453383224805172704963822061017712522908304208774179296726186758703955333952372279020317665504614244760891451786240003436755263617990595961913179138872337195443605913088921821412887131900990440097391149017515170528076620097801607388163274756037101823131344897661009109730774680499625893424306504472467101988343822024206299259799947663221874333942274375896109272621062869780120248463467739736579190849445904707662756757174010551317375959327463314349623007221149103679614793547024129591701159496307320359826905534049189703567325341084395249499044755166226089357422725333277956842200436027641276824305372535815018214969650759624528466102450293216191847299881352061470865446590578816471159963831262941134070590328962388047084719235434646765146913919179527622076337402610183588384675664577678750549427671310221674768838092761777550096857430351896632152384572078582775132428076875075843329395322559668230874810644254366401330894609979740473432262870033190190468311536420227114984744387384706239880000967047208536771893366098134566797503379861326893107796310475225293895118818341602734536620507814382464619760597830688936344173634626121319273555303081799720027087746877407991039492160752366011323080940171460824557443727173127081599122656847536530772641555087728043608501386798372922549172056135277272940742460868393309165995027778721939227760029775798078748867539555181573914250073615943411639360255581652772977409469414099321616249396081064813470121485420232723966981904440339013489427455642941419112521888364330228716842357517201728517974850688318878868923266860173027930920830246836539309481550903903124778335455010248403042224691970057886277747593881196083897661977285649838180666211733194341782780266795183748018746022363213695451754639119642139470369340159396658710432050811621945459219303845150884864370016775181317540580441292436005387202677422616219978545825990128857302062064345842631871094212449521345961766670751826774193915305017846903360663991665092116409500393893291675641900094202754376280419071483029787155451738592200214936389615756803643603174480796459786528141295317958896055730588650960198658755620176563814769740692565425778170071145561857121851352722619310849979842452688580291231445866047152588967369405589786710716898678683690992096012648583293462889501923186292766992196902544892649417403664287498102274665184055809768251247261720358063501126260068101547777620455818684467370460018628505520122284186389059277745142946310207432514874225797122123340059424463630087273013402073419773015796364601791385113651053237992166218634979824309021983993462236164760179726822047131536498511101383134930224833098082678084703257450800551384407379611698793573839539488007794999363711270314948540876561372870579152754293156860309619903022727026079052100431818663402591339728739460916304707104191454845112938246286133635134380589889286185346490253653670805354758899288288689145168869283742289114476147657856266365783920340501430225532208697428453610536295639476187793839237277211729457929520509782198141920775419802200467419797096015698431348810965899914173483611201436901771174329716524754439636812446089681284038927817998916220375144834586410970803896842338360559104679026933675175599643408740096894217570066749808945638213691950552096123217085545856074645750077096463539094886766672164617314868260941414628316014971589545197950572885641784040835310914072251573943044348303266266845753280805576249546008689626538403615345561869174094627812765566582388597789050314131064792743491356859572064182131212802432998969467856025615603696898201009149227776312603743834867392256908282795840710485111828238055022603298979385199466186910048382196294160590432267371353307101694794835466037090471525003512555303609888117809101269955306675664463739617105577634588173590997436378343065473350467902837638206385245213442618072690829265260748753025385789301842814844499444233783802833535613798551250221990973482099381085281022820536425332943658149739203029902313335316992410266769320055200334928934340034075223952632580541537692229996577676307573945727289942618794464649751000690979718130642257226222023534402139586015912224221542217785849037710577715752390206450685935802681867657839416298359460760089008419548426682984165760247440198224608268128853884260429519259715991366592762734617690652762915898521806638278634928918820467336775222581409462406731546905256675062079623004418249879630467587300862946137950759986766186720660785825969998234787348685326768551731041345398370676580838459310143516610885071731294868600406327207576353671256777548618325774996106564435137019172925349269890300646746978373993096703541256947729507261283317354896082447912143549530195453634272817743481749038442451583066457752285272217376090431883873836801169428036743448040868271555600450875836469613001498234537992216469625660294272863069492867059351057235555307694891440828675671624084754328032241062674768519658886818015587178611749295098230016052007586387730554182651745447049659950837320212979130427754514074554533409071999285753925919731226734120638003424457503169397689193884335581907473055770316347217008404645911001549729273506069437039123893710757482072387787770084588867793021651978391135500237516462304598063333179947518661012415280431319472890722493708023787343081267850818168315546251780592640580170346197015221178705562240275949382512217518816914217453788832524076538107191792570828069598044095753176078982543619192533752428578356373115233399284969875323867959511634854086685639906787029575698975293176617299519987346679204764862276224884073729788257334112908657918984252417017511330072997707096065730632303345073928793926097190544654099096930331520911788155919907507532824571958912314297798748164478323060526298811673564382541015172270711627944494861347302857391718487052187972808933485017658161635238949818506451331255385892290951641439775977726084846909931238144453494609606370973100772463878553502980764266418992181428809953052953541755332854490599146430958316968343756608786926443962526435400325762160901211682975788459607583520611467346595281893624256673605418256528937513116774632575844101147223549924908848820251087079550900757114997063659733146799825297845640289062809773590985574692294911229434213830108418413512620177321704281821603713352887578351898648117227895747965031649021966908315732008619320510383857793569516856938758038240237343664024570980674728519410404163970209391974101433207731762488114163023450547008353997330692279069426416211348032863455644905048992196901628061725224325600946564248092697976831334961443459435119517372239971705282480870594431262159981854581284035260862558633315618951088225589938100199588681021639235552569254213208371611582472949816532685731958140006124183097921309404232299520812162610949889224794782353799872951275881188536998325659891572002851534345900117633574749105560965344659480222957660108017025202054480285653765037129252896983836663745060540017991716616922020716103606893576171012749996198548905463841437638698307531041874924412171922981922098802965133015840133762547985202436509448348478854323583370395654019733553591094423575248951239788887553160628567922307496427965467455845150402122973107752454880928531051244002672490757887382245968724018029227378447896852414405616256024222252510016785612382080259261164126960839052335942545309038084913257654433583826527173947803533536259139512443602327130483333113372357374756549182157550120824103889518671587954035326517669733347731710690546788526427395243286032184173604948988955117138875647850252765456944993136343099744867970903035607150060289413201161951326740535983895152050668329307502785313099712386243523025793310540290072470782711464055825624396492784912880100736196033406800668623135151361981474898697839038545137746787935196557852728372461617339773210411691579562266078649003911776992994367773015940979873091681024008368071911802092008970663855089634155070829102242731721500043254010709845324222710499453638949517136855001349888831868028684564491875150405507022071313136759371907067371068131979101443862018799602802601751825189378052297665460489506180234973715811312369579829729948862801471476565196164335929497486256212596974341040834450945654719489478119390640251322481559764662794052436077602160677056107294760837186085440427270947358080858536256478523762336842513189337290891037516193562017920390324411286879482129727508197102133893738832588063885475150910695342043104268706962410368489150432123428487878038348853520660546055158679526420699113565191808927397988507148136906199473216644344222582825160241989705141392427489460797096435754137650066164470486426500392780748440325555818622157965030350535164534008028693190363681336315332996726097640227146908335245942641681239470378174869652205514084881669776915477702445550610870741327437463197288744261900955637824432052464413410260658159266185658521516785037189845393208756118895207577067853245223519848286429319542463761302464314656112381876354004245525350604347880606307568671466025351557944095867423929581164620456094214066450507382497315818062586903701481227984671371408051949603932110236848804114112660468576121647159729715429705893766569270098959883394061395125141795843635930130738888431253155417015254938847747326389477335307325386683348477237819270247201386573708331418644974830872827457498873496353708261608008999016678462372399144839177987980526334750347703731609144376923473930616431429189540973499916268131897817249993845686600473604788827295301218979252351362803442655931106816619744143735192460860640963837801107215361787334235159029839331143925007274555001792510912608652318013331813507954652014569941434080002616292601976190950967535916283624838928327811401242833669189526475344018137359409080472884361864371347747008477363383830666208217159074118276206707287065829060274818112763575643314362198910615984717491302234107198991212303233957733328824582835903811281213273057066688183174348154272153403010458110415648732653707030522051804409465322895067811265678708838165361038067246421025346019695647092479622838492070638597973809948619161830853437312685656245114556874507684111948481612951621535926883945016272931247596026512483726200935355327214999764846237508813464008604038434051407854881497043642199875446770958895918112911143659771043558181834223823453089240648101960790060408174217374088802389500749176882306821871945613714084229496078206844588747692077977101417755479909318057313520010418243173470925607817261030215651676708661696232620693578174453653587537799916221169567724757392089213167991011973925702687914198615695014991109322892710510657435206480973981176389137531459576649339358533106117364710120294641776648387156622847524151961771241072346037896930561688440815026960049586343239148618613111871663941915668050749180589131374830136407370640426754999676501100402103561566919346676903351043218844363008187485380303574184740366454558680875158357940964666353839896815035835315900742451987918879345480948920338954445188229854424394613376636643711561628229346367244920406139038100612828406533698025832427470644865928999865256247504813717607100131547337322117409544626528350523784009472954183617444343468674074664987049283615668646095609771915419287392491512588969342857385343962659156367065131975651481409686489880616379641474504242675242705967942551921147335511197574229394923463545295609557486709542383868383795158641380469019565782804516940186149439312850650592387590872831686490978862003200703888065991647678764485896513344031557879833757025789608577426846535952524159680181003001599663883705174262838716780713321641266632433742552976539940942806855085787922807129758704805187014312239639218899634086102969690568045578868285720201846374476413240732520568462791433069434748996838111256138646318974616356199938470353377762306426754486556228235861078416548409963504352161159545655410515105649568798740323697876353583596387400575782902886745220741324428577265008883185942859215967208058782960135777317356933301745146651936546669512957302732428867886793763882695979673542335221678758653431628255904469564100915968092652242539400170460467605554794746789622804457750267788018399294560001470617051510454698686791349009971558208427859102754819139177150299085191731014994487721724324848730197618725534864335163413648125312932458859218761489489649937829840715049966665104665054590151700879681894410862976761061573951572480158602192339631169277155614440037052992611798792843263032270530857781806993444757742929406535350892679588102885553646733070362713655054329207498518274172995087419370212170186109847193672497917479908941688001052797583697259282787040315317000491128577284855279755458793970076968454585549167648678295681429048792490188908434142197755142689498675103165068759255201570804106507117377046228060926655378765122131997797121802408776774379565795348984930663133157503535934064745645419220538277374546617592969646464399936220726429912319158069258353746524612963511818562332605374851166458074826081361839720709137391021765929535214691378603790112508053901220290120695703850644089460778123797990516401991352694016780130054983792182988283657307835030609183220676125451953334201940359669862797519695865494553640896382806883793804053209546887046083644474130844139877803491809069875665321267929583635517316866901868920170464528477218345871036944479089340630437808534352165791340340709767124964154809825921136665328518233722929007297539049347790562522250595525778485466303584662237346846160847014425063815107495459120613142690069596728346055026267981084815286859610888690663010422860064471713560692576382281676604434211497303196970795132043782790803271548900161761742258482622135720892055657455553759290866418351022895872915366620185565963974328301718312809928739828003987055002106309953873792448838631801009750146877864225965701943628770863433377812897091449165157459200356013291626765078776225308547202402327137295209780943751065902750798275188897356113493207826761631497026237925951816336322686306062775920040819129151336525289812932496614064254757449508418735702154543331051291469818289227464618137059676475162866998397421927016553912470661815397704194595321839616888756057325699902245019800219941895636283765151829279820273302170599912426074308652769240295436463113616395549716439674997959251477019492990072612601921529413844915451679415946440336079460132390004240598337605826048686764157964843949293337500053425298856453721594726478944972839867827879202627958029398233954908014465345625517541224317385161192147527040859655761351421934063172951237536897817847415701716674245213212396020360857732039075273429009775064393767879186824490718676518245683300045731801418188098866181639372807011471430946732285150537347212859737615348012327468069249712536474075804543227841540241121009858118377514170410887892813397796303463594823583119062137008386243420879609204251312347851295597739485201980994080905038511925695127667406445950963224503246285292287668782394986431766134318327965954325476804784655236702673303412440394831073979990393356352033644182233829246277776326492764380332518573144772489648277647057059370991745513266044181309553241965759860834006734215004777122952711989910684511325756166865807935456538096116470554159237419796607584665704089155584925753067115361353444019232645814123471075194193823698899701305241790102780676805139967765781285459280634431301051915570376050975339144786305449166542804329305400758385880945511946786436321274296385868233832440505999580756520898980182970699530749168329791306138723907702729185648915318116910948217593971714023945403415295366244936031565633865864747755595532501317561926388870816308142823052484410885552624567839410248742738509760645784820007983708517082537816185343965088493720601049513850950754423536366484007705521409492873313422264803741903560833060158352525983500581456267881977167154006509511185076946472711026090485500493817962672681976528392960787991028668409537827906312100256835068558163678845713178603937486199861481423851322713468490973900683723609473289441114365181463970487725396486127922665194917693124224712572262400956368182606149612779922122734055537492867163940087079877074382036034696957881065167609369375799896411822984932788624208355932923294091201468683399707332352837732771075640511923528464558980464466981225045400997404660213281247608983869617341595590057230342562275672493086069622052813606486131470856084293236430205366307172464933948315060402492995658957942256751410649718087921508285389808708490193199647056595144028071271870554694218447866323969893447950290042189046217668899781027443739394794193959792040619344174574344144861693284256407707437641776406520942159480459197016719090373543616445237862320191914111650426148886818446529656749349636347655832984108343184641673299529514763021898938932767882363188242155188878368636615612660433994706640979269621454079996551101456281015175574976060550508332172543503345011224387251895491588968645662042560194170977862193241532953586995648491897776434693854461379055425966733565431945526123899585999805359078761983102759181653258193874900390117303865936953438711974631401617300612744251228047807712496064088860419880483694654268827055128088772428511024817198632728192274216717636615510416374244240704908161786435755184815527307916955298125230121116778155994486852980670367216895259764776042840312196256009008677304981805877762461141832768456541691729219028751223002772985006920035948215841924006672781859754071134021776034570145863581752899217646067626179936738334804707772909705466866681440005452033119901757936233829637310331822183700172205871306082861828304676701226255636226506162518733412737554118032934881194913142713953350384429362966494897394307209267658808629946476250183774807387321889560738807986157096934598254365731553234086814138490483071866523674734759524132048012805468927097876242437748019199238479982241630355905822803066290806682143180306277004391581493620893766337569792869778345062607958204923931767132874089840956935616139791430326059073174388020870164674112113870931796360998592854282483724995991899178320939522676748754906893465516687338672941023919185879206649972852126901620164159359664747892767102550127296333712337536972414295952971688467932967490144138223423494336736830123727362340384941141723039632625043147479275338687217899405818845702522329579133254747718633157255634215486284467779669631858139617991676824999826537730811321430879555019455607458615245029486689968350464043017159186249131091676874868721489949889536698012298430665639063020118264164749697870238521081703875689507145217924059297401284097526779239426977270545414308681937118837075784164190407015301645271711353079551322320240399392122540794900116307483126869483503095684252087813828974927098086088007630395315648687422373110966746458327287976013015864831412401343377485311241879747960376902251338400051107814514750894285287107505532721402252527715688343616105628925933719031541326090606098283621130418500619388793676847599860213373579892273876542136587607206054646643189883149533125542540538293119059464836325440481211175693783820456383244695757958939139616479322852475658762371087512785509682369778290567701638088628267000910246793842299612879935327234519275680505764088123499392906978097467835405132962758921344714680889240150028160524631618679728379872026381791630182945464720679228822906125022472191865173186755184880353696772096668699322780630896002342904938118041532289503318715347562328297610796710567968521448886328779963349553725229868793951848661401848745136580814042592245842055672904386704577323938324600087643153388969220635753713541393002124802412924071088364031970263288892463905018512233425042178626889421231820759396501627192080868134254942254289241269527119673785879979576723850429875443717862820416042163941663242614652838595882825672783802304215312882345962732136204037733224608084809412272752512079947269891226503877235488021504079567904118805243822071654900824868207092107897183660046217321393076122260952390272365904465950596519715010670932530794880412440866952390953434237214916177387101850959102206924496269462987314053224985146853419464458718782650358821984988183777830299852347337587188104114566143127438616399300092535225686904368879738685318872431002883243677392962861348520519112002124363186172292461993435944961974188905474722203676656364291813546075951326074211004705696955649618929155596693058747463154967449269527819264391589294835002960165367999820116672953642145480307338083383932958042390957036654342054496336075469296003892232805417818992958977494790922724584507298429270583811004299070251399593611443982132458656757990585805916623873684583204992998196996929636858337200194522454314522115303058758724441904199284393525143453428707224001325869118635737316538440440526723069686567698499334534519402017401914962529346291391801662405410375084069434704632657275971243233382034241728229661989908426985572185140322132373659391963991846109722181201376494247260934508025646133306663786921332875249932292172691866054864149764674381432328190992873464028274840790966151114524562468236996425829400054767131106468450402557994723883661703074744158777138574839158221197479042723669913002184946905351785685184714654685753525174117275141136942853132629737691712177961573058785920940990552764730405637544926614761297773546585826973429313631332102483073662766616843265602500802389363130851640373479304360132018842863315161651497927037241779753059819244997355622174685469385714449875492122629034626706007707780812083865342249354566577143195146240680117243688474857627046944087825747719423605924207725159788880482966467728750039745061429811290227994840580005817780987322470594606839693707355664647504104632954478888091523251905106048510794814380848936453782323551318148893422343227710794113955647838526440781893134594042916075883729776019402607911766879747428624074765488388914631128099610712986259187674235368234209757668536061783157068245854629320898691797621751549463819008027802127230908816895403321429253146275368676100823129802123120850655296187513159188886402787807366934385163861305990555763366052126074319757856786376063047378386037254120094467914291373961432359110184189790674148955297723412954337361316913401157440500789353881099308585165980218638037021732040260614059299049725668243896998691663688704463164739932561472273399000949377191292782903446812905079371981113171647824593285238006278818271211219583784813131117223688854785728060062901158919351460782115180300061704953481295093054346269282378548708659128564679085140726565701500371730855597218935711268782270886474464204434339935861870475546734716485499044431963768780962748329791593521388472156493800840226887729503875799060024044072501532769065623114874501872123591332737927464262767979457824191431595281687278434537433733966179162345928136725650043344041169909102687280484926872687053655076002240219880104267332132614195455896318595133436006974476914636447546607337682096566967414802720225088012682101238235377075378080777994391983099814059977196588441729868026795396317201286936764431825302033707596706501973317471958762633994309013688300170309664764643361819824321319405622993258177121149375634439240839020653605691049245878947162959868192509670418590894351837445594624756614471755933117035093818458894904485906098934967313555145130853320096117415192265382187238822726663189856292237827857108957263550325245464643466438506203308842604975502157873351735489727132888122018396995986234548163100837150086220877228864497961471326013768182152126031471180923603390993576655324642912401184196009041928807607170820858022693117202126921640091865283254989145128121528828076481330079742040310085343392387643222941484486251263005460892748786851832584511945543561894924461167979710110802749031560002219040740578323913729765110729008101229028835675853754105190355873685802959995284218043650462795346021259041452711738847322893328453839541455594963656770464943160659426749125835481245195069457265554773945025362021692985192743534791697845177740714284388067878893504089206328718114136082746719706892872837281581467966431153853666720758243631094803776506455225671994400876956928250116253748244806213790088610332997271821474826124804395669341617746243419518242837655167059965453102008554079599889680143124762409911763575943654316752984942035936896849521820811660008240271147870967097116721310489295429327666597906784465166540157776940205770055933687392361579861846112031798333641537380949135008412387503939298893222370620746073278205925986442905938834441202855005129235980032130727864834451730909581854100770015579694105373156708190464252310808678985994751073879594922991684100654826592252531434488046732140464605100740715759056084515657049201794468108566553192836881878926693270315782718055615096004504263418874463183415239395266351711505467824749243253200248597310265183846726316918345143408106190990819231004040615658998088735891290594974018473583801242087772559794916651161094676058397666080820265077580434681376976524607059670022341414338245465150115018924629357320050684935108361507365534502371541349542960343802873244033008503098420154269409427347367449538896898156690323619478980383639174663787472314916112348176812722046092087818623674525386260724508254742320025366457386129901738414112417194120567349897942991368226000265515244377649982470643259903208496607927945246942857069476080339188666943085623575217383633462083883688198368098704314999669049878196899538084989116616697855768800589476128151877954317873144081713532909756118790025293513024326702503691284852578980394787572206303602917069152966983459295047409218794645118266351367260694855811454722403353333857423085437951983729073087538991041037397021519908206548111487939700191717585648885237367536856446767142924754431807424794245419502286255361910125455978359762919271449881650183974490172278045326295294241573750511664418972965493279014663841179620606623524190940274991201620676489125544702325854418864942825452016752774245294627313240356637262219748959140922323816457378360274264128586393862802504356430508339568069836580356147082882951582016759239725213151957912185625792163015321946944887606898467489030873473484931942843147381568113199600786572946522030362490485284610457872379291940741104197467391290304969376235392433973701224826878326240499314619836062033715211777177085107793340148997724956226527163621082857465735382321690949954904228480100560958052368626046145116783445658663211894400144532180185660563706609510982371601659097368910417775274537314627502011628673181815347367728387239690702205606568898190718276299121301606869052936779945815974475177519824217035672259615735935610712570598459363929615515540768527358539434343322681894502774196870236294478251728046256960606176916320943338625201027439124788602457831042953465145220675261488342193191949482948499715379966123747296483555573021903585794572667090892439790078676592398465002732222351267003396880146058479089537798095064150535537121066297287470324724535146878451310960852277955015905503581121351815854884427865155137318967538014678583606770648047674036681942913185461999451033746586355064910954478237837995373288037257803779614337647859966268341614919226841061845428867213285628844160200970424812146992568267720742700624878531722546107641132606223380788556047475334599831549075647876818267175110962998840410998483801398417629932632425142207756369983842635263397844087843602795723168842708734821674885664537980465880012076694542050852917645435167378003568832470662520110514577663476772916018178718055477409132365338774556851347457617280276582804915846500665858848380216194202778265521976354037274471249253350853260415543603645736073670448594218417300456179845370079207323290238050279447955459259405425335942348187501425953495538470967852836347675104379490820344754772566688850245181550016514324490639057846480200702600950195431725176531168472465071662756083194040678284061998784117457629425286930040723131344209493345437154369752296275747803260557961134530301668245239368207443020704300790168830301298912590545116691025010652919287076739061402392174451466348689565814879983695170408389915910071404417437508630860008885634232263347023096469901363035511549163371851026077882015536291193716359649790372450821858151545447024534626414509941579023207173308605171909557609899080389593297386844943744227998720531462860385424518351946847318834199249053826819679381141386706311193503957921839444899432630880142523397570010282866095602105857748083487702821789666988142476055329771519513650330084599809922306866306950271433828450023155356471794396457715275186369175013886029130204212145952274748855118812645504624018917519117081974054250275052115353771328475925427669679669577287582473209097133495191638598402958320365936464633479785040431235633870815255194218993628301581586863366591054090095879208878620704732307274846144144507244623269287246894454620134895227133264902379528196844114485663137988247205091933666827551619171949760331923877466677700184477660105203256816658585849671837809273770841783715109878241937466601273603454189970521102019860181744118647546945748613449373017454603300195323995655572073812058904558106359438338406676659425657540758539383042269417350869636701011055589240218483907195777018613795364623459324202028329379409582668511530442821917700727224894024559811382694003725333045956156337586817344888834014367028716456147195710151134235311269933989771911672438196240995010687784447105706924407208349664873049377858385080468827636552430588097210170800403517733349320500322528236307479324939272185063047567838871153116211304602236936505865954895840043477595693959447178681923692119479555578105717813798430549625852659069638222895521823063496400691088625784358393996636999388504420719346492925504837461064226814650063964118059827959378991323638376873321353229524397330889269250957623434899332478406811624324114004435774904400262695347209331316592048757727521692197615242190507913093714450913234918052651116074533990410232364217355412381917120455368679384383392219007807867067950569424020406585756760105714949415833432528601705399025575068686739839412705853848018120100416940128065978903868793951738977347410900013195667650772448435862021823324728631790311757856032523445327376357812227823608129490869627986733722537438721734479598460893389017819120558968353489077695373251021267823943936942942584114080308758842118146481108187673252367053635874454208112135837736267063987463527434204585822554730155744072997561690731484362899028435148586314217003405309688687253002478662145219623572060997991854085144882037968446004910190769522247103853718794001004605385558647311641466302614663232723524291584477059878713318583632458080864204202437063085558016624459777240329068673830619110892884475930937916179301002327110943927869868780488834495934349363295795621175640498125996698951942020857312204368610313954306599000756151028734854758123565299887110503824769330111682754161855083028572861359396699274963275171286738589651279628837298807762695010378641239537370442274067114142001570703596747940851048102914137329737121954089206737521695843859181563108352995767434476536310147133978631842726940503045894385105395344106997632590652898212557809138886463194204301373113253455468139944920240476173349887314865584391633041312300915960750192899504463601819521591822600229450641463653537179563378222454311694992989737485754844461475100603227287123902892722858098787366965143633927761547724882706144935622488988110375856053936597957263100770163088815284515258184579248062799567730813328738454535812539174986147848145033529404828216551378807660110046717691218883510004107808635968079204384328422760866513071219524118196672542607287662213446440178708388110862628960590701910971204790506765982273012225262117147829625972550309295081604682220543834338340346447911512572172873599883877043309067049288142418182656845586894474445908669635935880301202099521858151935928673630562262725307176572158685628931024539251702289013222309405687205894115346917160958814481276327131221900185319725122642787935758140368682547185532814545167984528696676544975229847023942226421941734385557411121185242638587473768961261592298613214199588822059599355862295130052813249008012889244252387534770024760435404579469242879417108295433200948954228802909977994751455555628980767565471971919945959463198662079126764490843541378080289525035233565161363455432793488313045807443404209298176020558441538221635783090863971586652006420209418408693641946473670397822393048692653081282714749791083791983196026224493190020519646593352767305905525178179425196293229182818080994935031524588238113451219935328982447225247174200535572374052457410552857141057553678738690449740377161691054525980141123240464526938967995435517641450701866957194358915512319113170013838366655445931468322816382633702012796370417033575609945106467511960571946359350434437125841433717339873209861070747564598144089707627414121922659531973617064118331830349058309502473604440146581302890632814391869250703855015913429984882183783456912644881762623819068195648570335814290000525801095482023524308698528088311068458872981179989574246551842134038046388041716135006352062437612211276345284913911835470138694064424996051134302998376445353585018091251695424037089805522802502292872588124738177070765490808290534945856413352306623121321878013500290658878860396699296914427365477375766487824322708547491753692408565046148640090684189158736573351128471141190357541430850666809514447508489714406657621112285701461782286247171381169108219024639453630173831532896621869292180356101336753801530925949890208388167296786996331690731576073970937583530782514793767001373801625498850439788883591713793287330505946511589812698878269075572213854145319974208782391534547655342731746382039275993137899077048573992966635797408433642668100004051318070140098991695094595893727859593830745012159203597156397793907021344044557379219630163920129044602553474376092278917560157976868394475460104441025701308140526566022817647774035984435940697217423804463169688595003195357132241620244108323347273464421156956203929130994238886528142598052176398205952091766905271613542007520674629492917290893735973972785193070760408038315825113956285649087898769660646947641699407328049197726652564957465455334891084152164604831984093749463309077609080514097905884086539100103562041914225860911943023283229680408172529373000608882425567238685608392540521885610248652597244933659916995060346399766576448300373770865660145337720285796752697402936806892738766451570346793172302890834282452471873516294658986203886348715863727660716517556825693079873798132076759335573874667170408237919658316330951006035969421534237650683259919952396558379525648568934840464855325297907991127005279870202844002535766063045016562206529368261138405108055346375777539002680722822010578705083154579162325877371949957879672849874343396603679114379278311276354093530254449011284538387682867436690761103541931329854853650316486455927134823153538890470541746043536623520012198650081513408898712616112661831053649786420541172727938113355134394094344545042476409494516727469074535391958881789547856651904718307991394572822823800736563084142510741699403055275019877003872859539868224031603290552397996642718541359480136360664187890500262826611340893042870169143504056856157089536010522133572668795715794187943199214592419262802935100691778332003781596119904089107246524174019772202242913666963773634628392095136133399675428479818989051109996930730637657213505676818563001303231576019401619948641917432774391775495593805813077267443812150820053773915260506587014128541236041071665398393076951228708157464104378837880835231027520541982858319257767075938049884141432778909094626451658750135976873072856548346187115545129453648098347536412452023453100561545883485012821333561611510240936288736429963586025345566055681995980324107398282251723044996869785664633335481365749478034190170830555864863527288280477101892333080982274320843104046769919709550189173512126702886905170638281334621717190875130389989362267833778068338254884164732970359508916648059622077304987240878236157173963214160123624318888378534764090519648383852421128019035701542186847981209933245648636946530185204265961072293156680792036856510562072720329561720903197282973379890314005323242289510879097321020767496595539462496989977724666542272638569175323602615065220362095958263324445317903865864515078048672706506994781224738261800657954341676288043095195725623476511017875932023604530784277125777147163375298423014515218174635484435290504814925257019861353887432395720152600782007020854282385975557074117859537036980426985785935345475984009564489126039765325324614937554409060526195485365189680751120605279498501969405408724733216923723603908970363452514370389581114653674002387560873615800357530254896141660060330500593951138302176623149841186406042037299997749632514938337892613046145828303036641855754548939753965771837656970868364040425941715056064448070404641085249669076970541453846777343796173892392203628417032038070539050650393024404474752544035198183563536971233712002724574437854455637809831226941569334223697327849266118050210849708326685650357614610949137168879860861681972141667170822355544036665354231377666366049991740520278607093366950648286887684106979043015719923699587179178009980711720248246237312030395953283066739874596035177371485968735153391908891321123754172075085524367478635577841318228239118770200099651702758305990485190364204916362054961456124062456572074040389483215919930492963000331267398564008629813440921080737397727564728601232849185132076621658661647021435042602646362351342720520623433525222477929027879917996212582470807333722391035296143940147255940571621811210404964268225096750601625242393344854351458773612631623239748883066520761705071802373535203470869922542169417404752794795827302289024695271989779458017966901776940038570682173023851439922026799819367404282252607417720297335143462620489727497082983063100266070438589212371756231780340504980503031360303643227611020441188816824807834093789669828888985100832125756919634502945433495375773341889507217967731630804818245259200721960700963152756957010558419541665625141420680343970172891656882563866014964076582483695138704061073244493943357896240259822401004836830405117481318352868990405998768546118013334718487384509890768565198688949498703086017251147474530963871678373664363436572421251668175396166895511853393667672245210967965865331185057684696816755250625593362167103216507131853844222824811828803488842217150294306741571223278613481877482696403749185806727899768735303520444192027751008765458985781790724174591293829173562182703493407247872953349003914402980508816867879638924255672891076364068144778515166032867637449755753495218745647764888706740543416157192314074920059542214328354538338930177800797053860203589254141640169752940264171100527181118780801745487184263774738808631169704699021701752882289306880375030720859392991719868717487117773660886666658403340850019210253826098069004429374997281229766428193389198854918865176323266054435683110497381548897986168404659779749839734622519361434094447065365476853801682420933074495184270178886201891042611774494584913815737970987690379415138367316373789175787846311440168665083277672077071110316993535402788117430086651771889175014275823278707149791968441851398104155338420907286844862165237517552674954949677612008380196227098407325142105103069438588288137009248198368872498894808180654965496293349986350415489484413910243248682193364278363138942155535339099259183410168586649137050513903299967084108632889869849012985862422293099451177700826537134248440735124413299903235821119004723333593188355703123839740498419186716035400756715762356187454719413739081771270781755076616654708224126029595916974193329325648029809795660679026156620628144166403569077849915942830065395149975207007199579177475434841645647715145284712302088483355088111404141110161316484755515919727945340902057362285672293481969676629385743921925855819203772946393981664294104117363625833279949202584688846525121131342877084575172653389667104314587830226800207255411473666120135512670891599622579658420644113001896801632146973711336901960029902088014925191704776895922405794424223806017902765106139233670446428729933430954313780986545721765864828487644063400763884570131261363623322041766301006081143702136084748957704282401600788190392168264225506068647876849946838412970149478087318164917224560057602826660455248173071161770300566490452992284561776277457826177608416662032473833590721409604006095412798065324364191592592164944541668276742424231848393485544756489349725957366810650697285636948274819869760430419015744211667500954584970205354985284905859257138332769479352793079972502824950553510428169962915554616162025081462596742477513804842743420297429461556131762615636486663715868074856856814898565985465427190617413451471328828052767752525669096355962161670132270782957401767150244809100106596790500277227957254116425965928648805702702308044880028303506292579804901929965609980460641150007707712150231761282696983420756700855617776447134932577641899313857015815054098347136526898759430558700069542325020013768717588267057191936373046296795431399755506805468577653188755849624023249604449948526504403364657348268763170085200191841721961869674645929247258518914821755664855246444561374457570916709732339764673863968861387718766527565895325512381287628957097381494845511166434682649805309695177084088335118625072517972454721834771307325538667282865079994368516592563865815787034569059549985251779631043735486388985107763391328973552195775219208390691577681613000013984043545163797281021960133787292566652144492280119401558335313115539937811532732347184367927181014095516278455804244218304116524137334862132179884650697356572885059396492940231089081668960625401674737889123106486467925378869011909715772458903695205022669284730882722887013481639642449841059187480529540676716244979734537848988025422669384398061801631050718373046438436989937304451634530857046787290717227787153831512633126859568030845849788497259302132028288650116287668658431993841475893190920518337182242974399668111744457098968949988607742252746552741540432726023723392690104827603352230641057385312445669607600239392721360042765947703776750017149558636253546522921564889864575953477760796418056986311296645298075313948768476385733343431347796068415750742609228821127643302959021751434074207672337062059175022000007778644519336127019670301480158721818889076615196748519384565934439922142541292379894391073556277545069055621354685377536376584963937684021186631931706336352411335499541983395612255329502837364526882866280933368843909890213620913004580635486754670891174245251685245130349549305805259466117470668209839679443838168595693430281228430850003332197815453931562485038173872823611225958631013807416484001081031932001725620575787509409289503429352992553643040748187539030963846243650659199841957483324074801966345678588099143230330225915900846704465327367090667411907260883240304788126904326700753016596919005458279111219441266466049758315813504895414550333340669891692265517852897442451503700683639835812064829981563182659200502489416980967721050837913358626533288804759905917486279056116939427091836458842342272558857287164581883091836190452891921586030943615234982444256031630935287697268196021000158532877955931601294582767132936134075826562759242702458091140755982797978706383079968449110304130383147883011274401770842812984634619091985069901872994150339661069167521315984340985170055875335555850564291127267110905473947431923529150698954862920668964821751925674576279322524596106951647798421609506259019029334782081040327992123305491105099071868739796989739840932697878684633023764225857451937717747788304848066895324237328413865917574252695924340933582605987591279754267910599282284174012437550525794061396155949914067322703768210154743394501390454249412643315975476036021494021890471677028489527754328014079120162014083940478560916370614942002252723358936175740313208195103192520151336803237634630865320221467693608419603942797640911138379643182739007581703167153884297101444125193008678522284637947383139645583920641278412391620133256231759130619467796922210563544743899267166815581821544267600395690641439997248615981745237435959690737724230264758064496275405801639496167277495196240650625091893480904014484496704801120773305343276191401618661711730223701835131208187813245060140551731971089939588183507473265002018499534585627103122894860935312484839939084125142921624390079513575459926791276663278248345917257165945747538302683811632684956872015434978397868889484263114454448938004580628709408784533610456459350707862718686645342482011535484079109772907699856107188759010004705599715175025526202089943770275737724317447239745524914032631999788110669958003419204535962236861602531272394115761385827803459707090021798822898474363994982904836184608112716448943335560895429252988881427981823729845774890774130841347325399255840497199749564994104878482397974661436016962730202483726716953346499021824503633035908182389491226543012696837497916933780402069643667267053999910146433764129646921069004935434360982900957331502505757010756363470356974373022686695212960693562779619843522586265244134627050600208765223183016493684442778217431459447648339115143981462142673946236590111002138548296557597676816697784969033694535103370196272952387409148007032493651506830332611352967807136811739749215047391513671115147426213002966450318671906727695957996381981771154536358540351753660671239474118709329577951879458077075449363104475411985634744907856867177901200987608359976035139846392347624862318716651169451700909212477541423795448194228877134585637620949036195879664259911096940807055314191084266354457310317178630528129013127291111100503328304023460662686057790404180125088782486091707437205083995622146129790840237030609858954798379513518349278024194948216811052162807455896078773848514879502120299117355656741129763362825687896753305752075748501857523424347301278988786721357901551563781678132610914088802070852885289374672666575910549062785157470829719299734478772797797185546877619176952976204403200909295643061118669825699623711928954654340338121604064404492664673167382719497076221754031384984152459603164041013090959722762070192592599546415215907737529538967850447066882512451010861533451661025279506668941017225326150532553901101033779415503211215306841342674465156508795055521897838423474829866938403290431760425559275458975913692808890906433541096059900158237035047206527790313749302979654573685361840831224229895904319562813157364019624693031962827205569817865722086116169678872038987403326385761366762757281736899393637685766674341211013248333519586345485978828949585719842793618792005811917167175347312959971336587183079562025239706135982286021025100574484230619151176288805709172300281476863298132304895027168086281587417273792788675207751242310848272346267615061318910853068604770358566813427148526392830174375996266282372534960088701811938342060162432213978206090968219868161658182952856941301560457696814000524443286201941345469442365403426000157123720477701290151506085348208096555772523098798733916989891606496587550399895761211513490953994634325603729987308838251142156219496866488423947228760188308922633265049064429062060782969638904595775023021362118987598035680978591574789983120244636467113233812296186020159267788677358542503585140124988094893636134173445802506933376594046736487846157884706340368028911424020255326364732216539391802797808148514615078341026642088661741383688657256995744478249214466105967379390562561342687255898889705546022073372748004254641996861567671855186543066787277481071801187373961233817787172984258236249358221033415248878797383099970777323766790366110581491548437163324550816556665360335825336202705125562532188514663583840006547790697780052043283243184776636832499623783843062740785984102464946883841116806145658064791294723738613183952340790534677190852996756582325736418964223590091443448552110237067919294992793150708736829738017130833051137404548666370475205576930349277265642370312579060563816446350056415098017088181541005882660249003615515227060969075823661413629062391539294743635005661520062879058517765209003521344175374111791465886095179183033922675535660926462226712222823759431638600494537466132850261983761402198168092305878309257493508441239080374813707557953292640611745288609142008399160827146231484588137831651941754784763680785051228358943188748203793028029752953648970094122448298419139352246322088091717796176997337090890369206706280157716924676721154242201958664791373253222873316360534430067322743003149153399384888631979955281776073400834840827383003091931664325350709427629212164854660619875593778118888460438108769493118577570853578877883456147767275995303684103970420392031343852395277923051944624060124421396659928421985634630646404556606239497716819569772255529230179936620990418623123004666299847959795333886076030925963468454221466865264774983595782510781737667744498485947882011764656265274510427703516083219414942070784925189657248755160878621360210845410219544701762674667810860051976828221201294687214025564086353928975425677528881750692321490825470124671665045371962534982950229023635550376610126706097032523197279010602102451274871871615843844816702206123995681178312879240659055408586798912134917739864632449801444064899382116279237110594874847922033559334820807164965947386960863669570034030509450628688518091743564896749459871153553248462613113913007466377932030244289491928549981838737006644454076416675463467391136857415297411639371495821971960931525860272866172625804225973933267412918329581598004398592458824471376928773390636734136116651830287127528520782998033814410442821014231218674740990347176425860320258352252746947447959063964817569181033186391739742589423235159547889814031836748136939246012286810608243684735574530227795101094018869434545547408878436317083371843016293638516910214975072156084978897513903181490026454072900353170020244977399339742342451200966368428404351462417686860017809584217939605524352168513213050561242533906272763136927504485626185640708035509700391945128844518103969607046225441654062853969362951803140623965397988857831332385526036048284963489593373013259917782756221333550975573418346558199563631853196342164475460450533229441461559603264635768345714413926284758153405797321254694586138584086733650453377257790216249959724190072428924974546046743067266903283374814272394227591604014754699155732224282230896444203513600889248294545447501730547865521054751008879282411107346941824401215016912965353463523745514373268762396413637574538995470662537200350637791083479955796272742134913257541735129977250551928837234930069256590847297572246935554956673146058454351105535109565685727391843695582817597611239059636625206807389343544113277336205790780560840279323048167928918972379943063630999917375998523291901001343864859952346784972835597447275127267517349237673128491921005863036142399395333443147016221841853300330820249224078563160463018453550703168388468386852939017137304674778869815132404617076649773002189461923756770613969470808725761452817499746475113532640358127332269429548852756460900361199986906229377894412948598075129294525175818488766270934613014405888772949289021655277810597471798946432681269326969546070239842021173998020360426042883198681867797695738236966662581594481876608036371555405281246574333765165533521341565416416934547350964907649989753449920049771964753852007098438803058109993955382930535831339580981186197680227195485095088581099834079351027257121823704499385606711635393609126418342010584700767250393285727947693352302585017655606493931411297392306418527588074129129950872089172280755192223119239489981477416316510869965044075159494684939345292500633996854075455584408727977765038933223579838584451938203571495242046504356594837525131375296393397089210757290055709018160014206025116989202842118987813783528573923601443157519010023171694335136970292924952047184751840566452373067588930145516081103037353066214534481957448050389303621769797111522551412747856683054595283893727438943977743846014548939961491371132919774584080568834966256935790028451279940904961687948068457161744516333022238416158955924703920345248870298855686610100294634397767894186577110390110545444235392281727358443412178042150024477224212350497205464363766538892682506388595708304251159911386861188271230562118017825230586977499956965128895790821795763336281962574341490130829788654406052154487055365300503712908194415723256152113589902591627297085407790865874852706892627312411593027118849773389011742352104237687805066082109610561665371977106938146272366889997171495868581969139144247076784879842011268526192622783127417763141975808598686002061161976602624657469711275247780498312705392326095998391575833089965638754837663936078904686213460284327661402231058678334308891697581669613298080480289737427644533784115029853249469160091474541066389963601216448388011864709719920123589577891933674956443332002396463440001479307692171375089673975428024462227640767157367406664154523626395620807293122006961714337023290820185254393801208854704929981398948902808840400137258436556648515773019001677960870019994981998986256596473120732042324979634646289972488050771150690307514984076451903851631065372090670161065644804017664907274977931946976026921023719334137509004016842585261621431134555114089339733209110577512971380176310197502077743018113818827891898996879762554857597783953659855877005764671578069572726805045020515708675885380369293245967879516188773873308822509948824300398682839777196932938839868727325410140317958878034209481694706457232779586772736338011911923562902715128051023688725034356608094405561087015717425714574088179685229526313925842843194206547366477158862593813791984275792379989915112410914576398407191351982356644897746729598709291539484631246218664205671981654896374332976474807666292416296498411392368092390661543270514728943959449359954567417803307047579662592400671354073748684484370660027674497678050410438724683976630149624719611036214481655148588529026655018631911645506775598465949832603499765836601896707031660649660839349731032312650224906159811417529962293142328183024650049900214661147386277724318331360979609751393233873134823650446794995658152858044718931310996690861378952039973024883970093983139671124241834906362116037974039224717056297635775381750385164069039327724056211306353087278485629157058958692721715288485002084942706908866564114862321237958708655557159972571488177113315530128637187097018997510651391720822903086784521408500267582146587879701438407886509178375540974412630085005423653920619735684208882701230659165642784391426426328253294094649845266659119419719927090094806379509890763706669062137617143916358433213404750153898409298292780317532514633217188666597254701881326338564831155867239937420933546341018382686122393654503185995270831356681001840680758476319829520453614424692783510425692523639296502586262342000827201348004499813669646264452841402917697111043541241715799809231021383129678885184696345154036963565292300125429931377052909246244528782509431973957149648051490730516296442576427317872162041390179774355933345513156782929680320949446266268455397939263556117371976403707906764363207947247191686419946742387969477222978356455330715989612409000293943806231515585780314169825433780311572228078996304183387223125897802208603754347273354459403525161243768462066022341717480702267037261537769961221809076320896922921962954254490014017686371021647813228094007935417250959957523752618723398740700250650543462239754524201680166831992992489565545535996491638165432312990986029811960255827650176418076189542673899259812556599123645353975084435359720186858771575836509212799868925146144957570292864871483374123491149986846119722835020236325332665494380378742437723803681885334720523639395847273288896846886435677907329534113467610180775420478342077734384028765792388277616230308438265239866436508028581267637130832711371947087248655834414425052901773609048809068073394031254338271262378985337870101960581174926753062518467233408009077288282818249833330904079433315911144965226329238637057541628544493064501115059942603757502097640993120737510701946301155155117782482967775449635062704716509718996990054045451548102139764658222815089286769008445530769754183347911015250858935948675355892692741531052624933165830644270041845162740947548050366205564357069523913528913751553237298296699653797393705706395387982385603956188896791437704440836373983164875690545417386707951541514617847239965220412610337338369307083899615828907768322546436857467538936689115273117026137752058980679097897030508468372784400314404685671631170202527999011983773814425921506364489220375703653203410371726967688486790906497193934928108537152884235200355150890813436962503035598566842798228197767178309244445999055785769774251749872549872240654894709631048861713677917867271806318885556652932708350113762582049608624168507563499583241578392000858235285123126796261811385150558423890247603010324893628561969658145979679539022435639249209975457530938968085301569273802064043482566492252248477092137056595621748406471054704513079367793122434540507690590056822184655394806515499158127782016346850436180631907532786541999530059765471965111077579066264928655416840082603431131218404072939079195789963145219900232216355640489726509064867043571494113954369269077879696436515575182239164179783488648380929598070377793608155933729384777169342700570329725466766951993347839838905476313564922341065021224929498169599544653938836627454156815805575507931658615944032337882749789145096561216551680112389227645855314785283993174405121255619954505941957981721055618357473491710783305596679990700503071280377441244044649825392087385605466891812781399095387173222773115837742592363543955177937414544378710676942897780936687851198063423247579015536488027820170332633494960373854396713466787856828165484642679501579233414974929678972372146673650752492277025656709812931190568899612912476997712249905317948379799648429591854613443653167199507940717616486688010902119889506145628192486101064262293539918389041002545991142755497927575670825693286329344238992433536400627116594054906083378728226138406490648724934269844203906054543943666304595716805513137526831342442415167332736671147816850780867608917975806437166369514271024804168771991787935738519752214970126020362850831084262615133605048373306026224319827990018386491439444083152257494637173311554822490741703342113249753683157615046019321987924847241993084481000310582415383442187122397560537649694049846729418916028773905514225318183229211982107758811883480990047730662985202049714011084734791703526757927027758918577777599482460208592516256761871075575604050490903977202048160214287066963361475412765426778554781654970894926496454941620911218252372859603872786384058141255758848072415608005070142063388685379521615900015193281623664235346879810365996866003898534507109697302407707329801638546083988441102271991042453345129217226750688663949897693598617186127180269271865915262275038906627658672691706005418014330952422150207385390103225347643131471868641327312274054202527617591518053297194496637236026830879162630486390244258745254347229733272969746484636280194132476740715380745605689081208424836185666533263631064775501014009199543581757159865238171497725399037694801461317768369396002691342312090121969188876861043976577731213343727711776374023662052408839663707438030131415463845986775011583721699617756206779351121245036054372508976124207297430138180230338141795740200627545070360658590368506213919257198499673793234574083574214294561759853225583012628100062722875115171386083322691234386718386738638161078077133900072875601941037289744044491229976148233449565404037138357170217157414654472067512690198929035440983569259081892535325475763614142516651906576581257478474324815684368408465688807852493187652952867791857724198884855766521628378564767523667696482039844121901943588240921665962490741856048534594687882879838258724717088047724962012106713265479486214327347504657044787404376057479836970180172578913785691771345324739926027768947155508565562855180363336781071445290113580650601500256444422648460700471894835484970341068594396477133703861765982902219851992066951601119607153618755880012623657654708980262621088952979895159094137018365434410323951224547721768100907676198617037082594731739139910079459870203588508124379412062997552405627162167168044206555610894095524402819049944693180754517377080846179302470148667100044797340985116917423596965352402111170284136055352527468649510959001096565932928251272693519266235865809420224411735515543322549581125769182237758393129135024861134697673750157051065126708601230497219959547907267705210152306789964421837629816791669038592396782986568786648533235577056455073174913827038981225499755206137331442814991437188586044130366526719933339268478590260555948630205775159030657905909257344828566606934075512570391763960715374180813458315073149981664056238656287718717159292866787438063309267291372804677049149279336585025801092081279646721001480733119981346076917790446575025776881867755350506462240441635777003298605139421508629203099340158227625198003329618465854900557587618781759637988812501478879290313882339129434780639006230906434410699409971588835210299370616721533322055296403710100295482096973854319551284490324621652263922034122875039352957660483189768314138955696165808969753359667967763285922828421962958854135481982598711400972900184614437046505111531021757753962082978392335608542949868227309225990933211342514448783368466177713194034485253037639567012044195763299966065009985277987450228414885706156669502465983875010091298684092466898002905785662024978137508686254270590717514272319625751525972003609883368066802137895595752391582744092799038139566727890515075056774315566816952615584183242529059796082368202016772943585383979091934328418356705169668378970992557904799391418461968087430125461533531698468310724003184623419639186759350397787458774093564591024868786389829353043417498803645234119959170786391784038283513185319499062131767624215259177898085397769772070710567329704501416113489115467908880481532412353673735037294171481533713893961075378782776293114810965171649426014156073791687714991345615516058384972823499333785819844786987681027384657127929611485392171103104836572879737814789339498335190028201862387829744428185464595606105330426768145454716059407823455828218608835185734020539849014785145572676082256300828795730013664690599094858513035948948143363508277780755509683973978079521792169999245430591262224243961721858561244445321883633810530364910599482332701870866211293452575499489645759267200763826971795213202415800029622779694612107723078927244444394657478526259361795413866625337887343616908739767775504453431816577923294971869081442806365247361281600892206363863389049981794207848807342335617391680190140491202699530425200721197225173751880054560767446924971833287819172147274856808671942721103334974558701972621790330725877813255003805779546842871159151704795124139145853640823760581850513688158680161265814782293291911039618054624940681309992055947829157810403011852343765831233432884965115979348039571338415908431865314290240011782726663577891277465223916139836613605189625574049116180950726606316539513851966223104525158561727381067836903735412724696741718564740842595378802093035293580331440891845652857647197297963724358365013450017602741608676435830576866285504704152451379757510353665022041710346257036171930348536747062988389732875866593741426145971863114194402860930611177031948098456260972208784056647884458368515920288719963360754455530837298053366100253306753897410308419140777009821140274545998264507102976982361310689395174240897041090308622772231617308572128031679400128908681334411606864365358446826762829025392464115697548740732477162580874227963489264434215720083410195180857293060257348662860101326707419857895544194144630239401124117071922673960745835730322879516669475746497716791715471195083500937964331762664174657219168948449928692028347380177993831741744370279267762112062951759877332810752754672987581274879243347969095675008343126449012962523720927014426295073174925127235171498858239609803328386754246284522518914147959118812649869603538715837537637562363952587035633273976067398837692798521456679079819874949005497745357070445129066870778603422329705762805924766080511112218169685372145075985462949554765458355551624343641550497747937217622091366954606568200649738084909317064787837406757930578722653488397474956712857419611738555657876222654813369291628055491211386285455030577606978115865585646841011707035112800206417854145366098072143311457082237358858491044921726502920227930627366279322390242277741759459807019797122162515163548991904236263105732381278788412164413660460160786773362077610229317675170966649324375956968853646427571117939507815965582418327979266848256516540076926583718807908342201033700129318676919043525587286262357464520849767873425595046321937961073678117354050278585017000655412126318378570813890637848888881178540455683804527573022823763145540359927221943671879819907137943960589724047324934590075824474721048280394349703302619230773619164363051881408594424410136221031502692454085788281590961930319505705868296562345661984652924582119790976577316156984983804191631614279908654415876453644415918290519982858044275620325300475750728693251330267517258600390326714761151904604635575203975923480481474672938428137866195019575476102041308787991201536217806638223147200063971136407150862235457599432072823996838312856861164075160135391662554079700504409826908892819727441547566127548027638056568339634073479031260472940608451197719178938588753400487434325545337339813715263785090914272204949438396540148998683144211804527401874232758484598915595934936107746490056055481899698525292586961537547797875112325019261552031742201375891067223393153000699997115222398007768648977005227388675819433396212283385068020750443022977686178564986427735246979478790951158795554028789325775444375424039483322478163710945319005917411051995346579363830123088314452947217065299571451401491811521219203891855502978164441334866253680193514750184989321463950569177737224715029254842013712295791320545568558249024060937803766376028250865788912739280395890277226870379276115439390016879946286365572409732964034577408446887367389583386260578109826221977103714016365214796618619252742958717924412759391290140276146966742084188605933617364274796132672479486177832489428673106977551379000673196374852845234061961749152673631520741139476400631825929972461514726021030022107734606091530786097339676839601989872426511382135822601987663846229965702247067274436621714149779269541959311909838025067689284698953854875643320180049710297554221511833001784680781717194968575518512022017220405066492691579150952241840515024625027965637777225697753241075607530240128037367930083965057457527745717680335282953788225541606142661490020425642573264487875424734574588187460975894954634115157743180935880010794361351621610379043989489697770689556476044344241898127825903956244276985137630663200775719294751494834474951026466082976958802878398295490144084850362817765832344799802424500207044142785641743218215883888575594039406286536581024585820902623197313246332332934324282028848064452457732336495406392338562140073977226946199901638474589021466075835424840871207445595126207316765126811212428724679717002767759832778316598805364337631302838302224647434779925009677590868134140359168926611805150008430656676520926445460737787869213061572676214231698199448776619186779388719609889106628549166153403209784091991278597666372416385176715150783692693230204355512635568737335496721753376159817427275257440203581193346019165575009301900906193703958810282686660868492563768852612560359669632648993831210932116960533962239295107724556049551658311354327501423303625078602971949261672571134938150237628379476342543489688814495803747076158179019074368332118609261682163049053773256611386068334580141015351726089039361799306200863714232062714507026616987888835024265998066477911976473711334423767077341931228363024017239375797559625189496115918385408037082669150207994901488646940613314627005725204946791140606831698406755936538307546769597865562639748506928055984542802606473453497286289165930801811819065527557647929881314763857104957751445276757471149843878138607329768890611169855457502949441321278461765767872567270496584303300289893384907538456488899380107857830745985144207663748116441496998559267043825909384240320819593973128786998779440602916564467083944641422616208940243145877722925705693572358471999941605852923284765486974293040619031600793550792663519310235355061046856635586910825039159028984438663814469391239714759114261477196845831332623210532285178629545710609961665533918432915109336219074241365256913715869955979300941021925652760651017343640381772543281913587974712822220827038016233634483049123203031387893541050659115838703900151247633114371213594729558593905346640536383562639626439583620426859561522874478226642831209911729400088654328602563448728047922120274315326278827503145656817487277119973007113607430412752996653043671726748192716331631499256747469395019948415846388596733298687309544319566044182314063960583765945617329363151921810287027029060918310923607352256944428249464965966531228660933865599570345575718676142422521940326687374711445580502678714024969898846728151783370552542922015337929043695900085900617193447123982358726728319124064556123534874706550361811484566990546684821945167181191812043954331798628758549419737185430405416225539299928261990167148998613119181373541253499571395275658284972862689613636563638164665724966655032241551638730365189750333478291363553222273184348937121077238165004585803500930648941258544894025789763330069780894499444406195032709857184015688839932290547135247408452689916823883357104282282918263626025981899176281366222997097259436874709738315969972545000538193952942146879711321741524227909300847887388043536779088477664188078833806830645300340999685580861258143316469715853695386396380161230393895458051055506449635024116555893717576927500874158120375186400525887551196798871954633080385507025503067853705338692168417988075132741833289451313943535459150452168903035611880887234612470002370892922654856856475756676246723253745167767747868565368425775825319938207876469745283585418699691409448540492657205343566627224196050559972272534743225019408480805035922473149909637338439393881667803376328591849387128002932472262935496916024057149644691482699205614389473701448833311931504787022270050520234481811153990551728577869636140890303903428866820184492103380999806222574632033845993473069249035094316313916941346728203924959308528458791255804544480417706063692560868591398722485864520993813057668692464285930967625181319512741244652792204090589409313044141680399078802586650520805796769145409219832091541538735218238877208898554984155497141421565521408919398895917271757867607265459776721098974128569465423591095675470580086786125472081902124070529196037438431346689869309928148118835672263047782524794514767328807799039691917502316627233056147948245258616701218809904663805515871319207060599039694658800182459692564772623899062947572552847215661866564841262044148830723335915323836598693140678834652238386418390070693415535415542972604882775388916422952609609472652949934623516363911906449889566457528788197919051647588361303083396824343437121327480829550699132668894635527720029985455149928755016969412025205355596623578159150429614050806068520087286852742767830382783577817496983858633696797630035318087275230049530693431415782369844328136582199392584432136578543917356278197227175903967336400367754668057660465677548899968952583750856351957363620870754578689187336192632460572302651706722823443086515034152426413087498111021606397705708785235108025167058958852884779051881887919662090537857919782201270121815773382772042565768733970579195572372269071170793530241202522415584348597882513195475075401158865876295249424709118027748992091024112523411733465448843618712181647629443573637393062285795918398962162451600096282657404452501803329213724145810690702931905681674429664672198412990597057613015207893073771994356196901933585584765536794827052457424611652742065175334114194789738006618741787965822051067818726192174087035676324367895599298634325726365904980225872988352045031948680390957575776367792088067675537936565466298244237460533961676658999938243501027262965803464636114071806398478097135476678585333695862464605806535047435535869301915465458780824438455259752494774222843989116156578063586679131210191590224912788206550905985907402023972326353013233082884061188764253171646757216030445859983526934012482227760111893224300936653528066790540529054476581054708442468666410897299115056855872219618149859621889427854181218664637400629389198936685867107578214231199166864586089346276643007416963877453060464018086943967388167608426244373699140209901196699352806270136393701331518599525732787180505934188727572499565533246414341759404009121069173910593730681253001284525937598729751191716055221243373732776513481690299566020633909439515412562052747041625607240350021101893388329048701694212834616752650260776710928140232480117019590589383593029353347643683763803489715949723357650434962041914448290512871290035798078124211734660946442887755622334659867979022030420677674297391213702309104386987573478586227724732255300632712205343858639949970488580687083974231207225187825499635220164279006572847080120055454986634633515251883344332590484805924465656295029611437636681252116675308584552099364490431325593073321818436241594921473404256051739398595340846467204330662850760557887725162115887956732495909231345225700915261819843211176937377726074554631224703480805876505823465734501234582841415549892998484593327917477655486520181059914170436100558285024436282788427466934835854804583945559358541991038553255457854143693591848721868079126736582272623750059505967614860999249833895545834036443456543182459307630000440539742601581766459183219251738583993914613352851483030735020093600113119422751998306308081158973491046930453146273164365565190516379931874139488072435680420371116306449689607116104633035148715938645619813727853805868347261679656577215839700143673140444542396292987863985014999861004563326172730919216982746812636646172967303156573919465307428256838433262465995792768593286044797294301263444285512344685061650421513855082736101552459679543276388430511021687149020642630066574579191922776941789909466993607258422355426462464237239298337401087447805824283155579139351267732986108495240082309637650934389181430320743106036158419171263297948832296966663784106312666985308749867786402681761049487167230049628035942237375298529464149826211179296257038764639886972609096032435865351783449365018298468684690016901184023430527089453703439506180193796895443294004817315959240228424696128789040567548923041488804298592170260585055355632648218550013293319769732036306967365232348529196088255208335288070697613654349744684124178629717005889185705102625291953514443287048385753855302963642485970775815244147400379696624668174088233697020932675171460020820662581661375179935133739575680310054112982727694935019282752341901673066767290225627078962691278555960708718289646459872606214887718565796046061970648613062280261630049183580983826163181734611854276849852508851260487287090742538075067740054110558064640507039326977290376073006839996208568968672626951556929585868876759452482061826720429077067632964787519048429880462939201965253297562151423685381712953425736402663577074255351429304900258026526069982186187778835475460151615502093495058823142139120335105847076925536004120557932656024476426954239161209964547251400058786698810944844991001841573806083540210154310048705854766405818569680659699706454892128072446608163627553076381250342131385160557829929080771656717974598235732103959304598040784110876840172757204072891637631092243116683551088935436184281910420774429355127009653545685078363486226382871542981954404759080346189229033551281154814682679229088169003542428876112302181232572461682376455824047809505003636152459114495200967254760469900316815288118579211010292188269483307817566383021939878108438919311833386780261481467107096207032677001607750625076163552074895519222953216905048219359790441335510077070627924717493221101713666550365650616931445812931547930569440677905393561480714276836477733353330496066371592082315986628019670217248456251526252599827708506212568367053224716190051078365341895982038828293295860868948894870981200556464207008420693671989599584592681313701167715034652116586223346171000886031696059675255232757286647981611876842076045866149402659951116929324662623906756955714799295342473018871142249675178812470082843936988370176338804908350504251896222181110180683599444512888563006476035597921532030995323589176132717757945163332942473096330048664216460329775602320274763196471277619913012053595599297008083322849649269528341873016129390239611749367900580858306391515838895145277620957528183892998425549523115330249393199933587348593435271411460649063588845828716478690400059560227065604187724412686774743673717816588128215980817315826686186279720441856110157756456793888158455403520708935046699685452907976415800401544009513305023778876461104351185933709860331250522303795545343504751533263576439603187747712199923823355768341422946571874536156656711136172329443155910454867801910969242025820365149658238526244240848752815023053570713759320394034033246819378838807105188436743104518330657439628734860158563826407844701994692819991719218440894454631710914873188410677661508346948741768495694351657377693815405267748253306408915679359743113798847871134781587985142632977337812539217517765769163811198100257087776791744683655725551091079027163781416868342351422281285185892496329109311485313787035759525142046700812443640997643318292265146650320284472797908611804663020184809941734800319195307866416825682801518684695437943039773180094868455841115144222585082045198559185808844829908622100451218099314636700238676040298721495480224636372610853125965676813257376046962431383931663920270199016932473619542225089842740736077929601266391665050507665249638886456248827032871714849646786514243468263867336738492444250107024355931959924293038857787356201789267295529676091300795798746005610785001259230819982870140363992658560608479849924042085814128032940782863003482207188083114574265236482664398738400660310723226041613227115709205667174907989928635673897743911768458261839142098509942753371794729111744578991310489854054760421170127480424224522055992617909164674188402924541592264277441347938349091354089493625991001767020784029023780579506208744003158050816091616745106138039403045555599991964625460674547137670593585992467535147874901378684853865133890438283335550173259429639353657635188691428114295035135203239370181972779810328136454830277232036022826991032711915968967853360641539677730417196010129927390896327721989742781836736746948676820086164955342508268815269625977159229122306467951077596398348113087253857026850804631062217477194837209747328738950260553902358517735872023735365864980153157562888391612721430468943595226008748865588310874434052896526799052567678060213455153751141273777245958918790393421948815311932777316863104348910674461680996718117165462728241276550208277998966959316303271454352822754300514412779840327469946091407294576946051649937393305483121365660511014685845433490821268027455925916126187129710416641566550416276873556791588750431045066147258127943862354289037493492903635219867657582949830048476034393403345924132855584802950381552450740493709211866363723082291202798239258504759070124916128004489116173359719795663087876085102358209906593971288075654697449991593883318333928165621939873916007068993362137571676000423212549030856200014310261805490983252912786183712504181908356796532615955401723226721333617055682264671233757131770814062264302237034645052990118699585972331207058572683260421060044679936126319396505162307621048853375101005760028668012339495054907919420806420831173854054929989073661240243321421247235605622600458934806488244321458916742785904352365159081582098899954128439638037528705944520312269667078546623073250737633374561003452284977460923068437522620190068997655473681857509742527831938071690320789270633402044169679132483503141161450849949808983386242902670246095948136272647830959890876533317395666846698408526004120787520402724291653681091304455343634674947114869875535656121312755664765571167416742297853161139460126625682234349739938835018469689860390711419893528762026859440714649898881222785852947967780363851285191018619162933935353178766258287216029257072244518065133580219479729457252621036836997276344596491267970642085087445552852409048584262409399409102131251598005107026246270722190064730222204502178358947376503694432752667569695164492672997961053378638971737875952313295512443541428036164676456979914754063348620439776500871010334916937679684641589307825934824446980468126609059301613304386971080515999030195219741312438064973818960918306975135712298837006872758637293518903814150904312435944582973501300055676372860767461198340694639989392313033403053604627333759409702438284652915338650784447855955032229148758128067141197421252685678180195410828659733679339375629126674731748546921961712221315470415071209022959884719833805843555134786346137687479559603210240808754319335725924551721449434793870685191235652754473695117752519377565985079278439603968100402375169973910253134653090757992287022286577848269269614273314871287033755467890464797052365175269293991317958420452477570255086035359549868826007043626278626859356640992652751356269939003581307474020865349191459185106983052182282550347601851300233842068726789801577055833240133179944030740468702920602624495874455996954270991596754278754740649047987544780860125147310385855775191213828822954699349874295578204174822253819013567686799100663089051591872604538595752974085128045900052784832311338440041194099148821149945191581431633607599388844828915242995080790654551714498626835650371946421744179059351610324195704609930398160478138116752796841251789104772550275137667111045540513110589189801916661776281140716608140200085502645125223080371009303604700549281913720524517935893159709174828742251510420574329054882101154033723580063255826851223162398544068640328149807216463897829424600958448067333148481518004793312401760024183542117255623306191958692837484209619544611429534350709351851476106516034097959358951174700652066153169524205852698092627611684362858240966791258153202600028625573836090319038137542925780935078469574182239132915449205911773913470445680805396737971568186488259460642549566091903836291164206606688749272286002574923795568946782800443440570309216961298670313196705861603005187919209790520357413640354792101216035722968528677653400672754653135744484085606694131937612621703658625862430744660559008139790151899504395078633779416245193098279299271746540527981907890090486124650518918823342325377967941236177435890288439869516981420814617999214547810250992145332908767377175039085374518870771073035146028153241191675732940626917447375479290117503480977227832653633305263900271277979877207748579460986672353868997564306270487931440207615453697078468271504577771899733459771134659668660048372383587434681225644771531228436804416799877433963315426574386181415552218865678966277012618844725336923994580623607093834164932285438060118748466618455811392880271940135387763861049856265548405060509963613333654357519913764908611287773827070032171857066853250760034611475703918420847942078613054014074333818979066695361357944626326709195974142922079399288896953369807336626471855439640508754869633439553429222881504883415910374532934453702242173085835575211632463114996735709234949420212992947631190794354259048507667828955440369808418044928941117574059778091033805638464290542046398785151394185545087700571212459464369077630200836136724969751961927015048044086650523440448214906838433034507896823912344421597122278842142415466975869844657728903668669287876416829255990768812972764720391018469084543227844833413857038135167567065499513118526931990092943528460032801522831955407077974363257277794841754761897420765863102626360237256607033431845459856396350129782944488867573215272200900454212549897678305716222490739916542236464627783361759614527049653824477129535001741692541674506075585262542497450146422365623257659425077315356264956450227936701038690610732145626692933561064575307097292113522231199289384801288943322775497290618596576515089322826634427862002027665985521347412901105997969278686021686495071624309041117213496238918065236584139418343111272460338463317607906605295754870282762297063365970152815022449302073416979224306304661439738701177992452025764908600411802890515351380898314874435255620830202245181622756345060582701766290259210779048814109720856111940164962713504822896144535494797748212403310699060653256682643604533069728048394259600101211763907882912426989496901431929651274183257077921196905576837712109353156432717047098063132081532565413816066362411890632919510241155452725946476677864394530818676932830186023256154690280699515351917509648804675618943387495360987638575630564974364684931387281933901944529300348792116943066897748170729091339090972724011113036560137375417043878961341348123380672921308178729189023430951014231485851467880003594186990888551104647126619333083041293267184909264177760138238984968174507360036681902038232802261320198727695444884192789095427081241138203214399422032247579886305983101443213650329186774129047239865340521006501026973427523446240388847531388322957957088053757199793781480833914787734327850677911604439051569753256482727294938855653174272460063605537904840635553989272409302266844511327708695119346108769754895316486626467204182164195885225694516269526597522372354890024953222342569269189827099112747278419206616119079545227907157617563258849499302453666911132543862227199186851975468228945949519254236781327621504949147065726793097143040527006066089258882485679936837029163441866170274779414474368850240227041745927822462249241615551938671323940749665850458772625509623519245533523490988215108810300427121071320636245407273389223749281645898483954405367845727078700334434545283993845812593511376830796479825246144878245539573175005900656914527485012877732502143666369777587444959757435165245615710391931022416554677848562090427066510922037802944864801232127802896359668483562250824427112095792335175627293219266266050731785436069196211615992660990680625028391238442630669731840026741025934459207842871327410082196481098045033496202875674654334979121238498316485196727381203845715501007411850926962318733320020613830871382226877310520866117290252289026311583360336678976201817509984951981143599267938666350535000167019500701028316042913915800954767467981830803871577646734615716873256997985194743945914829828958711913983650034481259770862797950918077126253276789013938162043232440626903644155906719145585272463073388271384290978429065315579363858089799286375440064523205480024197710751510535414995647835333310414342379532742082786497694809926926198153416075859389216960269882934070842778698277894799910531581434408699981129797308519809746855133608406315139488604561011801522086002529087687588207497682018024798876125682405765007017301478939029525820845949577678871766328638043358415420238510298264625243443172151047385648673782765008811137206314207653023871584352894739535481817105291633102757714124363818403250077040690717957697683553446464791466567041438441770276212051116787232504455197067519615807748208982002308551931996915773377616775313696330257825524945872594441439135276342557525485054417395497099385052882542892093667586043529430990715096935860397070185488762754699032145288030371112879587951211157333591456408488525358582108620247699635887305990461881280019938231327465545214831407575697375458975280937519092599922175363332621301206272523454173125993431663948329314917429393496257921306320042066634899590837583963726364981593451454433920419837310486747247998392508812792775502451904249839795850287586510744641830305349961417530866008653665594734857662560707024920244774593202278439666008135416135345888978829991090409270287343625053691454641604041619820461146853466673862528206659202627878542058266433846566353892044470778966481165433175431076487107033339727569216392660277502275575870149525458511271365208197676471144412631690621142382852814955372026773178658672776716712830231188549555970441872318135462406183307277846571877201880858884639026154417578048740834604079280242435802643345706790346898798778140806246993538896299765212270120921580736306097679535785322182001184162927220475562406958350131691482646350442140176172812554308908180327969480815795221948761350158471674172669967362084714345939471449497456383787058290073679376087487664150609087292606596042184228081419116697518641875652126804195665683508725645715625165382203439721260934570724751406492457625264995390036877106027367030789086871600816540763410482231344408647691522100868851680666370003577932313956224684830023301679906824033868683436904698272367937900571464778647893483050019556773246062345952361153525021240242007418243194596590432450087258187326674795489431897538470392373652099211915122388349122742929392710492218573753993475637718146324506822070733218455458114126592161198177291932328325022728922765919649374297722496381215905183556811152008392587531170677700618449924897642508802300746863692897190864656059013476594245594760755284471739477346217159228530518809008474763336273123569692489286561261502627612950894184392196031072698813874764811298473617992021492046358531891612831830073200863068199734468368028517501836196556007033804554132301715878260837112253397802907186485966369273826621361489571874416292143247848741593601392313876922746963577208265680022881358140654070064065010507845623290654916328893163853897173220341153429066818001952909687795402766329836264928429347442862887769826076947069025814584960043450933515123752386791180473644195674953126911006845784223803148882072010933770238947189633160638312758306375394683873831339516236485684814205352923303503526943464352163913371139464561120944360606521753038383551328488857383585241313235759051422897957492614509168687648215853765547804817711840622128926120390689760711624548443223239688148802354895706939539224515504946654109446370620703237658816419111662369687685773174425089254525029547837996581577521473894190208988393877891826651542544252168757628951901162911180916917292990088389854514203275886955114296864574787995830086795993516143910328936949658105774563975730175492197563292087666860381969631468550099798575493987612170260356416236360805800319677961330692118559467420689165608226398055795380261378659997813729649901625250275086458959123740762309004603602204448774201886992158718023651430274333954774007394752488006341612043209286951379852905747815903347139738271326760876311018792354456627933951266435704995656269592126665591827312092294205781501183536672743023721836332713763903571083083777039881993721913075425648498910322260077327925703625215952326249298756334757161776463151787500776482857635307232899203899380074852815145943851083380953300087468674985198398169242249833761378696901321189609030853451818886574819953415868427123427162258100285592194618822354771404292596026787210555058880747828552573547892202072196596269693481901298819411605605451063688479444941778175233574211320495152226225546158761982236028362938096566946361602116261786112401013559996223115640429187407056578143795844425034810244787165123167365570938399715601103689998269520919939162897503222496427545581533654264875733883679927274174123844914975763823728889248959310493976499813443945408088255495851666470571498709392203347594082572744495593768397592543154202472961569675685276079815614439556124134923464444162936638456217963379872421732570836632557254372241335059630542529889970704629947653018238223864196434134479954132410688597620457110206361682759155665556079044803262655583609880666815358736805242226022750357490191269413973511418982287281065068574862386007465626944044076237715649262964987767978895361499458346126893955888715704940066684335047968919026987029848447133904661104531081216464654120584109295233290058961143370974582530255676514558025990816891033578783160494030535320525974463551337024986508958981740296959121286778548044213774304973438005504761165552081282414407919256695188133183516785573382934912707310870945809265187097080628415923000371791436833219698979409530518592376642500228338022398625520269988842830866219485453559926298444705554301962452566787024625069028156336843367502533264097989170797460509953996826043696081464785170378015815346237335907473432520914355538527987265949440974958670615750757306869593527630931462455709062795056300614733617482620150350431927045351790690531235737314729192840249434084068610248807666382628310244485072458696906938979374228011402376088301726703687034541072698289012408019476903188938331954849331394290415915457241042748295848582484737083093728651713340555659396440341889361241800119950690862783644409646015849813123862360485617723542859127357220998546501817168125318984832960865362541924764713719504940567417044703309576959466318410271215424204718734941063197295440212711542430937007476260596230031855272764015756382855052018417645617023553698464290285601445854452048690673650966403384812123352566229253002718207249566831727217997295819368967847104394746582056960794402961312249729356214456697129674250811742620597512460948315979667825303202351294412233888661801032379555700332991611147218777395051771840357142034092975348780099107824111192941862286078356873748245286257321404855048785330772781820791624944973836057935289638648047556156862880124261927251826464342270306904276615069097785793814302280935495883407579418458070652800791138699356518464503999184815773630527578085043968886132116673297256432930870594057173415369641037586654134929070506259904613715195970615530766728557767697775175036153893945002411042029800554926070983196235945797258842248517830071117939681755256616145983915239094260886424058814552978670077360786628655121126920737742187290310740245957657391565179428627073711692082405132775192206145120316505613935864695183736046434254538421580920097298744352834481513772227805531076439783883124731423306267887972760248610111798709408249202095117118486196002111991379530327228794053898099380622172931202843498805423361512754366561147308124562022692688394510642784252772212307064629132546056737817338532158429194059426294187874276945044101910487682077597443167500430724844122845113133485515747464816700326021440426013385846726864764824949661613773304417722507096503755717237833909612655699797712432314178191024061795858272198496798457744329825478863267272081709062324779265167978879418057651412003001170339909767284325728627561947353805186930519159740322442410924987847520045026907284191841660296990921947868334176991446504757558071093384316355136266681172029689667473458552463187418388729229358928836424985626876484343114148811479936504828296460549899524363211051049352440447180307254120329681576175730629582213259026679984413688879413683923395671216133172232038171782255948061073168371648877700573381709670437457082086912698701437470460341421672312706422875571703431440694348642494170225101319010930131473883446371470346765596435751860556482136835836288078360965881810612267979778822034259373675824202259997996423889418622430446761838531788904602168717802549291264222043986313984491862428070286541709627914453429258624374256949282866624922200369197133509728324336473533037988825573392984854187428617732425788369635496035560752632821291220711320203773893118961050187080355123741616462452416692059971995928588511409120209629653622408387996563488524517453353651932879584917036419579079669367738490994354613146955162065377771486684360264005629348198254765057842661610967243424924583593043984500967040203479614229499485394595846982783481908713663488312448311406565801926458230610159747676858569715688662659029339511176166221120194879531230144112585106938418172190510749995455213360430450027995410353721139137812192675582651243492974549585377100619657115319542312588925470283077556012494228491731429448402713138152912578181170863353436945293466901762493115806783445943760686369200647368653159421315538008594656494144283812451845354018224039693225270119425939863195028174183195995142208806464703699010604777538161335407417494643975367201825860023553685977302104679915857621286861511722686120633699757315863305869928599093134881445578818713358609297521881909848064830603045472418051044053246077919004244930840750665067751569127788809190099560894035398283662664592041481766185815873580112746485719203525437591040958700765543915874867163393941705166158359531365435916476847237423862765655841219106044493294651332913530336462583322482826226343539514090207203541998899604638199471641539668899422179187153131446431692101655157424057468346569868804905523685406933312655501867920836367963686652195359328944238559497770512380099475310755955897591351592282499971716181297589111967131448050789559074588583704071327484376952651869508636852356112563683167799116193953578413775735575555047783079551940443660361167336218790147008351984087601908643187906082821377399433664088123218776665356772313206237794757120816271653543669934636659428420416135011418095932628011203516199635480358004378030975176362471153094897721825092490404343703275414793841283186516024811909411883287521540583408711448461742072428883718351831388328327230362848030231756554437765809604564998270254544346456401982472850374171509117214741800024869310803338773296798908427337265603482984082227986661914417240500167778344582457610331752652860286164040673713189065493484838151538307759852708319314357079894105944402246669995173492944604121573869386291086972302108389000934844026477028395854352624313231988916148637980752366634737073891344570376765673950623683913811288235787510081442991116150495113979584823985838270071463228820983375551774157265573751071289048582170630356906441540550999845151432705486366149234566486522906349377830901318477921508175685449817794849153485592827650580357931896241369289974007563948400684114931561947124233754409324374676042314004861713496771546146113782277984513401682089291897137640839182757241705952708339537360506118872326190455673793376262895170715660001989027780948814802410971619014853084509984302152586570031868839164638771616459968224275813959863710213913556868099173370320634869641283687638370825419685776318735527750483016185816003779672657030989657844854978362369751389700188088888073021096823097641130940790522701449132629225851590964705289344364394668198000761764387413627341975514853777468580503594312818692897105172787346785155099050568051894052765410161673129701622491960828652460557737177141602534540334876414240021118684241960618862537697049587114656217231458895471781874600637845996883371213541575821582292632902212756640041686636017187728396021617189617983485985504274266957673463045355152007464803447134536808046487067268126896474227966965818006685807241513911059796053515517482221422039827202954580114816000735055647880848018571360852376455556754866985053344962976940606125074177813934990050246947020932077312329196219831704196488083772072750900164510772169559511877806010499912566057462877552110731896607859400553580135076441238545741284169931068546442430042343872110905983892635482277493401602189914098936981837916394165491492886964941290302235284035711039192944058002770166281251919208408771183995796946061527445886780999914697316822563708261307101908278116637269463508101832605569539091151559735421687751685629649379584673432637192855000063587367091127781522977480468691217419463440307945600259891738390790363799328304277252464743245242277797279997272874748692845029306755538258173469103630495451077325741516998757245858895918091126559189702947038042733940585884336216121741652197111871250911935869636236691891448057586375588826512173282332203305404542879983079141979890706799048295505181950357479253560114913534956103932432139834375979677632981422039712907924577947617438667331902798080763185764781729547923169891176404494252286496123588944221048997182727144149845250564056659483067223118921992062663937865116472989183359381242321662844754583037841964443551007013416221632388942673718545551018908935658638443759454411089860076029966291667594409879367940538367929091926190648574233407062572829701427473890256209577168683832053625454557272826356272371599915594039663098633793990537976538417117483179226481508165841969654602809939495914930398024082485360257985106975049775596354110222914225249928023030986374383895466942418952359005529748953160930400286898061591505219177191793013339866101994731606156378955090383080708432191488141678940691833612906225546805781525389518438892355969702546300693532656121166746402707938308612553226812248635515229867455069003295004313501305751798158839755575877749942110353477236207599676718300150799700304225025896158086013319474958465400690093096978081076114811216237834575367192068655149398450989075462111533626588550604474620892425173008181119815102317919787467805460297774144384828925805887357501232270729517137392769118434003135854403826446237646868190114533592266106572426064063070968457505955603908919998371041529264350324903843721715501720119212254334442920166632511470322223073898855347939033468072611853989449413198968440658714585211182659762816682459569928729661678079209081547499153974915472526322225200604082802542341273552474987788438886167806847202931841535280864870424787699202661915412648482211870742840470287469903570697115038101401513360029947775048345262560007111582338633597246411329542062031540800588356657687855870917103426403729490134910808777592121420344211300456037688163755821447934805649709545916474680248821774511856377412733952559208985248126073048029648279418814892433956343274609034561175171580562488117885933986813275622060799061039181791959997626835004492498118739682822892853759152388401965272994485851644473646303777574418887620127118598348753398197178954996339870024590431082559134740123983536478872645503754621802132091983282137115822555344364095551318222967921540605733572367094538099562226626302370802259443033760322989645826908046480130583975674910248855769488969030072954536082263953636971372087120017713316415544746685469651659950423969898011636153401060333469125806193410144278537685601784999180745840040668600839314435773302920162269110459413168575099509122824093079935874680090670958453597093264709827413135508816433954628611754690230996567697047501941140488426203416102161700167865925274231585511349303770116651276869655615255196845387358173240303329549180988714529876156401995957691046517612005959378220130222990638163964515045016563952272851723161307206270892056681017625978352142933573763770747421494910773059884023246766593692403471687750223357779203221260933419020469691518838265313578381438013845395591058305518219257262838982991909128206367228420813704840129869672600375624894157915295454289100231311236639998250370694304527319181453792476930865986435451988537690194578909078006676494796015694908305371048844055226579149383986887053758244787458149107518245112522702473008414676456419495846227478288541376632632974454652094245247184151519396884261720996982947649082393525718735579654495349797653345818890500516686956545138315272035038774253509352968899919523357774574204435604336018098211253758052289041041622275330710794589346138380735775652686795066935982975455842086925455241863133339915527503075063706379709526424620436086760947670639973564629966221067943900814104185018156528325286552320947341588568314760050490720427861968813111095990698978945737545365089685429418197033542753327011928855924363941822154505045478767423466613904808679082758744756385098309588172103450467824228849875388761247268820815815728806032679074647770940636657610005093391841162933467339574076836643179976505929843136645908649550262234216050958602551545282342705788477232715857909030573752063207686815362215180843721914314203943172285146246471279695276475894118998973184539835150017863521619922727406479778096029881665659765046083596539733305816428272242555768303313505948022263742033510136568532130012349509875862967661087262143941069980470721110895972749509482801843679489575423302890817474573546174231287905588149948348097978072455479907133365478736242264650016941232984277906074921234750311603195184872973926687172675079251868532000285635598621608769597673362692392667044653710966174092288225051048190633381313407499204611386032220532658534932480217605214113645126386123654263333079444906290032005027766883778738821753593087178904179436651590379322833515896475367013777307399865412204079949998682910037921504086303602090372273657648236306787947413968225463240444066332019576782908064419169627900635137865627254319213137292450234013317486273991948736184914155120114175522297053666424006954879861737465455623750344197080945467963541798052290335176555927636900341359411538796536033514885315443921345231244305696745709357841446770405460500123511795205737944812565724853316062269607528821483788813225203954645266662211541526940698271517344415806262911620388981873719348386468167210710567596035412222059540159791548779106641137331579046304820291309253616568566639118092512286352292004981558272813449050216000018784556910463897232689609896558363946657185288598556213045042191787851583755066831492530060211343371908666248980864030138180195901769543441337832052698394925740107385092715792897810017239179171265939144402979475542527078635656053568134696318883947466942852719740822967220193495034552561659045775878667856782936039542203641959315818706282107629703991465495023648195878634828637558778124128284027110343659889784579020181051836418084172836746961005229865742188122206492928970183194462449451422051730976718239152870906484691231433504919178922451566236226218020857235755001104835464674604072489085914773619321495088774299630915612155843368160673780947607535084752054367357570112540131431483433634322648770224855544356075820379200753621397498013221233682496453590045253548292466512128730044020744859230460663234758311610879190098913022020065189573861589108643252680766856799794641313024323321666278777936138768230532217239853261712693225415765221409073277122198178613024577633967006728155867741477124702797760177482498759205920195412833202620350754749165726192200373063162075324215159203069805212850348939607375501740359609502407605460706778984993861683096923328877389655662574139258126315461326843451628317211517939600431257059686259039725760994002507203486326019297027765953297738300863209498638907668563929065343819919455983363794636752583954361537759868410579742572764397057187311912691988108738476476759751952395376085542619768440117503466509749245162450712488120557984598130185649697926589507512804961859768157371065356177387762393614325671217698512173690915835614152741884144099894509935420792089043054436735503566154832159993986307680701290516441255343214115280504033820554282145188774690145326607346711130485858856398174332614030802827407090077054201585035552711080849564230733928915577529237252854680218733438205718469938008425417640313362258185493000887656910906975734686814370494349183358308316374540812866791724698893126071928382325183967463219902673039140364889211079121492442148000020325739956862561278697490630178669436710944846746950031251168293732352213563088079390588359588336326820661693724587626230896280278930963914987070744461082604082113578486856104861653987131969721648041377457521935454315411637993679564504418897228235524773703523667127265831545950296288554425709109907390879117650118596498302152598209410186625440240511928149484738943109239089324185348794324102670858277946802404576731274478723682385891271355502046228734167043477257587826234375280709381524585283745967236101373477167568772942175034908848050220312920988688208620917130862670521324530530582315343135720168778721151437302860213522340409421661053475763883619871145752147765719171350730017300631565383509463437632442681680770826109818991708783173503123213325751411973714820325454825221908147258835961216761271505936989537610689627172115914902449944677467402460364071886298965515802143672604044545134539306081636776498402329600786873841814394442971466321555120306753965060631985116919106833348948493975796803656953381341907883945309413718591591130713503582379059612253777093802733449669075171312031750790982325918607512342879822609736747173238948182021735709261683965296771612561346395140839010493718011158820862797437936967716153969155181311542024831059319050104024513515626021444752788293416294697994383320716353022984959200747837504567004133751998331564719180678549447321910061750494214233031681644569696111165644533759420606200656787281261178546731511705299886012726614305724544478328775284880626892416644734461183004566978224456798347287719176472243510223638464064784992723864938403644417207915309470899539290058317095389316911494915758102050872221541990546925423346084822046822469822223069904599626836725823423696976920515057303945723432614913565386267819782104665086585848370617335260347972926903190510613432562638609527445080228320477963771646479313394187151528412621205710823928833490605568790401571734859605236216285535385670017535650774704974930134458941151419492201675232353339308123628469133966705862201359013689350912638823978247450858082841535535923459185886949511895522390876229491796252340979376892010437947279824911625167256284281115615298581742830463810443147429285366291889961368465622604604854594233293786808126139810403135739139868464081513066067060059452486708145710451090804475579805710374199940533273082271383841897462146200388692312315388631029697339163867815109233494943762502867951401380734236110267838275813075529823765565490622105583127315420130306002906548205113141160886133742662345712073320983837526471946382041083097660996840927116500417956985846073024581783582440834882656353600384472843641010432262671249465343310740495108163384031009224747726577651736164051670709967513648849602020068827439719149984713224097731461353456885673213476732487696782362270566664698625342231223261447675887197209354961544263091795969938637818874472128589053348998448123514961481183649372329694129872320992795887914841748138010777769010296318079552130589746023515130302575120175401995510964159266968811262928182622082433894304700101649913024436114679895838252938577115540111205951929987999268979434777431529267941653656207471291948281974738427654243896796378548462303991698574173350731383964558799339168004400056234234636284491097763121234713035987174323438246434970125880868294901699544811155102424087454915397023464160867122951242126077279102655883828000871979259867394549036798532166811766047585256719608500119983648721179615576459723772200641154571954712780864393434805338535680828334711664768518253371838016239894284349241948926748592056534962792749924614175223820886865498775104070373954124364338032994573938793681885834484692973243358652356754644719115515032850544983369824132208611131353363910727463882204257362627228923220940049704713549489891616776468620412568916347025932775432929497336836609465109542498584194124036265922367798510128474851123971568011425171546930887757941280348091259792124136784809613531274180749400512171246055770566041490683903871778246447092588127942830239948563431954417252632315334119992588053231027084673924562901912183178963423538772315489791155073029127145163887787368052935126250990570006570195298479613357291265319158408391411472991338649366821193093360980461451461881154294604489043046292218097494488194309424794774938302664607313954034603897740923726495146157135854720960132534465880040852115266145172861701669108887440546314941920071172753638638911891588466374921809797754863270383119648312066842406223731518901534536104942915724249192464973007190537311309230432376611915618874069638604573517522559241700891737105673884648123665184407378145045861580544330810269346718676137717923431569073574092798821104208077573707452770097063163498593643476985226554562474350788244715928963796082294360250803142848027810492101946230836737700907269470884087551913712334431047940627207387454663892603333620153784460149736499107173091913129873673557596434414952268036717578226992526938519155674653232761094373193688467136527749066831579195681446995324545054787938608624246520100225605480291888051862913197045805047781181917445812022131384285701991543916358431433219789115184116686008273368031138867669397116810597964234524188286832079532529944220843628633967589748145363123254721695152858431102087667688449714676527636396165257673423319527647728439445738507781122109449496199010946714298334835618493554533763835761819343511059098946167278683254251866822122164431539393595150983534457770898983637739663551009833096000861396855583282142157437211944433463340346260135345717742141374505002435728661076311152045830397978551486112555839560753943586972234139277122221874917593759270778638978505942370691735873796614100432525468794970673300563756774935522176144197299159859802907048397303437693180807643131886191492852986995474159269122143591762190279908017408394224167273681496708343501763735742180245663133581928312401058373002934099229049902987641729485808116470113037469080518246513907804351834483702474535573685335257068627049875324687225702195687016880805768788218575676769809520542763805730859177393636700836903668112239830538965441792272863051732275260871161477445504023201009306648160421579506794741205088266642930911936591710145695806990177915890484448404073457481905298749897151094408354450810343711836968101187724534383841297400497956789022738083256061256690385309349854036783344818571518957985411412910752859707958394695434280034600426866144703837860075470524401605169683324852039673581289126311000350218634125134061300194498718991465517358878227819414788739094185403187494930517855672512202672807797382505688517338871521154288154895602265264746817621411545187634525303555157074797139756272128365922558686584619381538513276037635815155210116912527070612526480762475817467145359229256000372662460295165410370129081496509392152496826447422368902344412432692345448283031341379268058202458381747321545075934867938355684687161058973836396770816495383860500533523421025076794656180197223042441572577967706921707931997320663659731659631527352758241023760372233548152248733913614852920566631316135477319651927708952459400032384706584648418342420299610902458767938231426619978591421660429111087596548735857157780784906298586975114242329008390811826715231277862906254067211313930585205997834954818325606596315399704434425791590592513251793943547309033778842718472534088402397676407426713093872048799307277342746264981640785691941859431612341140992689244012527540156248024371999483763918466854576370435313431175870628329969489362695157770256338848180522505486386947216234085629476351761783542903953964602098109741159690589829691151234737860137347002216295498519371660764438088823607373624012735390964563828720790643119032141233358862809013110893590200728193542905100736415472368041723072428229618690419983183687833940439133968554452939510324643300401006873125738251654530698860816309576036801275822332848119938749579752293364105827068375746594157699627152003484035948312851279229531319938915297488062860390730757436006092631548046042107040136230723275557613126218322556243328880320637956935390127951910878995429721653053048472107712997788820591151507892055558623426565286166365892668586280325688209341171311526159220588194212968867051223570347739091283971247342929590294332464032778235489094285344666036876403422687504390856487651174670986301702298146298796705407462005295183310739383518566676496921588737985097650497374559895912338295362138783583653156716848980896470943889448551888674638805634793281670160174318496948831810985175480570204732319873883134361969022029055133417037250630561286012618258715151014917081061146365770108185953339092694915518391197737656534305246292758617678991398696586305284898042414645726054496868519804479133586037641998305305211830178502459374308741113242193208270488322592936626676141019711725810860182223891118876114535651162801005431024623098514917093806672498078994182523928596215145176262597924804846033220233745736402193245835838020034323674739226187771919501952541294657954209944743745554584286586788608821831926674388325070356171630097970461114702138767562657228252011393889066896235580026462691836098077769322886686545608033542374450402789041355059057583384409273335544300630290086876217411859527857044135155436379300280147473083478694980337002605335854364042239209393670279351469093973840899935590453311922015116970029818811824302813483716074671152287880007268512705551251935823098486679278970711141941401157873838086863732475021310300612349938069651531226027800575387345381704282923536261926853743449861138047635700580478378519827487127404316590572562514745085947192837175800979239263857585905531819158149891739672346886459894624187065136368155622199669705449760305353429808938751812588709816230016444121753111876533765389523845118504085500030498442939613418727265287269392680294037962425798426230457124620291974373339597952211531786722335286341521259125089385872480513221629299240407679103415073497880634975200542162551642117208589249939056528124429805028220235939788661380900180327387654172121370993205123054888510165335496724985295736881603265479635407573170710250788613318428464388765324084526067809504589962261154479268633181644067535551621941911538471036547615674099457441994091644659906336577162844809228847663731305863201765870455983167335564410797276921545113721589450629221338358417166973373878697222032016094193145190691549596460169330773325025985851526635790831416635873873815600890095951652027056070090371841121387037165927206047194709128469592751549728518930840703202931969583941383993459627802431298947658891358874259283866336453907087729072738577699467883927281936430970948413442885985934742042414464970233094011389821302648372577351150041192442204762026130608963141620546937570782513686604573785282187436076505018020461386754260026486812366509332645372218098424257574524168291278707953713432027372127020382270729721716768338494106757102944212823655103138536924507034577606030421888138032244691657497541805108355524697750837990046833183828630126263360934993756411979644803626581642471552512717264118249970194661047438748069940502970631835036226920178060861007192367987931414032699845911877990891529366728921714049478367637910105890775318544712650759646863988780890119308881518685142920163179849843886487639662009360977197405507575790021012405387133341726703289281930971318891393013389086312653611500779395356895586890415388419031934584679516024780025884679204956582785794314257943741559084093367700018012348999385114892482992288855921060744000721611000068984870790173387196177429089530472005676239728194819576070200495348365857052892388142382930832195517830421382144758772420841666001615978287178445008456098460739417919455172628080565061533030853671700955415186531105702960638848555000887730700535033382769092768431201037406626173306862420138492242451344860642311536471628971872735315940143902635092285420655650902124662444500748571212148360315869950189092151415146536691889487932503653527624206180042912309190781693020998565584251658899472563624246867191069514130756108178440216491964585518339290166432531534363694812557303270564323856857326001073405484577119525880925095364741639986079425871657538292473615124442297002572289064087606444321693056025131073160451622963481944541410118810502937016891557256373790004366090412978196116050687746247876650987199691181732840873717739088051995750650572868239746157600923031365136673533166926086623667808589017121911413668492434906725942380987251658893699207343931020903325661365090062084180732320526365814817446361826823257077053204553993266305992579571416722302378794305480244439927996316580902510525367759569141800054658188665662310581353806200956424339034654077225689245969423859499631241326347906146558373781897685620246639694641059931723077892051778566780049180776394237075618006436098434086384377333945154355420653538703406101055614133148971515132562711757596119048463901265324987923407185716741814718230832479173603555138127967031036314259486087224438454710256306769871862425528154949652118607375406466338019108060462175745807985940052857304841891408943334323185015194509275204523829211664174224484933667264013194661483659720292989056075146260637524516317253275901363796535296467804899063084145159344659841926639919517918293395007487032056282759774890996702302896576220438598432128794156719362703829057714020030827586450149604062822947123081399380464168536817843289276790224105634256595547289415285150760473640518249298605121675694371792622982467483919474569630840717032382746357375930023650411529501798284852130165380345966904028095848771980177167784232378313590101039813915635235260859876877906561959510016206811168780918362591702864896910082092326016577653646758870523991159478891721636806529073100508897563081795130970412230712390939326846135867142562197916795232720397795317063208865871160895302854810555146757156213105549959081779294484568492179901759295786734322719863773266043122083167971083337193934780608679641765779108128702692070607583034484606067988229930479094943771259895421281971065401051621318940142788344060062053654299076442221509346223955709285965079891828581741861751823722129095555760727484457600983427928906868595913963443081769679191099558140854597934262251177677613732813456921417720218201928762184453655991344802152045930729840169352709568748454230403107850137387980208476778922354654362362643953895354687782623691222888395070018451953694660359865461907744029576717606676102165781345186626810325288527496816087076566414595240452191370865281359972771403032694618293809631839484779275678093072551523617650698749409716073181950859824099443088993988770331352448051017264886002597049620379016127639472339025303614555178137535571553903216926354699509476653013531512430948151702112915206388465703153824704907632447092447010921941191866579423413594685417741818288443628055321902849153352445120607491924913056445706506122723746911010259906503490937737500484332769287581446788490121335896238484573471284592681206899210648170174682638745713267761973005518796789379496900114066582723296391803109523711373556251744516629291929204999895739041381856426665673881424911557863253992959877534374835211281722892467776574395864369202562612275359089375600256957292628066789326874153211737134846369846048528830030039593306183227755902331432308599284047139582145602881397100264491625115695866298357034079820109654442321910722098182936297433728774967876733716937560981720316204553368924830104172468245803548760116272659263579182872614538922364127002704813505401281708679547496840278187243723620074474111259167952622727690715611239198867171846546495233060584626880776950902169315040119585723783186120710224425367298594572465947214128214187966164256326411806051678697810407959834017278682470613706598724806741745294898988487388225156113539061729045390650464834328799359016047594100001336653418590483913735013786031889228832009026591985512978683825425318137657241209554699335812763619592845647265102367486055851286189529719431526339074930353701256432116446314697944653168310138036444348190536464461887219740697305941157371325811339670533112332780584851186572694726176564765200783940328351640122204339677640904289785235639740434243606275519155335012080942896595497830579605153870725747336283789822242897987224383230386520011986094965936729004898505800334228081538021516297927247130745817751871178421280049288919759750890912677136643639355707334361757666638894406465937802522483482193879766333619755516642602764695046876426362077291008960018329132226518900737826404553186262243162534271758633133869808923741194486280212899264710169052691430628253806632024287447653672102267013967158637867331815959437650047386111506560533943171994121995306383119242450792539988032684035931198879578148720806485993973217990078903359324557655639632732058632069346336044610967838249117207566488390098117835623676995062900173793820977964308196122101649072938294436637022515645921905525809940744978572748958036135835154705900853714609644279672231278924906771321462636657146545058963633337993191531102007209878725312084202269217907839846972921736669791456704714141589781247794740522314246930436398584405105507158528746623710133921308128329202381225620804597787613982087007553797394866237343256523362098293587697752517391645515866836728950880164780963952680069759569956958075255332808937106516084639675723147592491185293415311281928311807334704742414901308258963651637655030639867474890832218961069568805764141637460728127320355120745636187149159119809209560658093786199279319814731663971865161603015762555477196772748126774143918716369228318775109117902840320512974753994819208248811460003543849675280926882752783514747397485211276690698828066646145009243226413109127815887209246017744415263847106195643500882850392689934869863747968178680936500013417579527809102154069799017167166173377868758191575315927089316706873892579009394372407123507151210180007110287180217188494652144348712114998278810975937143897020825471914403350451883568273083759460385398105123431638080193081942261390583867008611689737279458062487355479616272799930273696119041856914018250734719243671364916527306798341262196251128320674363443027144800623071201758860866232133307649020914352928262538305125869144139508205081557826131011202070135061516480154064444113059107372374487302563666018104851658832871037992790608253672427542458468730355421312528768252610721585377769006307868302056402748167304140007887411830771426897949509050070769030012731739237246897670722894098413664601259546207591862186458390808687927174670051838373844519663368420785923298281581884011232317457662047037329322866960926938679367375830629857205104863330110837577983673175981466371383186555944371504682597229406759643186267890381928044837659381235776800877038812182981135903684722567336217929284033207274298175287210662727593885206109305412966911178365792382108196584815581222327676385388524846475732214427582202605752295750083138213980250359247676010917974441636852150629835941822095766450183730438679904932299105316056309114988265271994517574949881143632808678017141503797108712962305236866287146893777417822988166129229972824680837800750750415202872827378663290171344635154312596425684961851950575103655995906132559044072866083305332722740844476101751113782254733794831680792859113094315728846754450525583410527276083924546427415910980586277320159645385312204770822781573130768140316938218774210918306409737432700764647594824617817560348035538580829004474410238070614752107459815016013763794886438173540933795444811667351087256350188042697484733538498137210218552509035163633071484644645605733275795212548738583200842667537048390809757264431014872785110528019440578049062711793764518538341918971097304757179883974475456567848731872681353670865583178699471548964784223008688650088504881757770862895199685165459939654707460540433406463680169988010002152518752390120109097351931288407067469682295504167190767506954757051753209069933424444155547287182945895322694438124044351658573312625617101877924247272211512080532826414800161056465512750038770838272760329684340256703278373082032114080104428813032980553113645759403619858234627553343367338800939961570897471802472380720815326113095458970168510063890818455206833551655199128197588007045860436120015636998190695673935476506119101201593578554703666418692070180796523883907923364823754666211549060673949820760348320859847329371737629733860886325642505125062502878545704630154861834885977633681597746201232148855525297886418248783551336687854977739399944349476780749793762623468733461659672550594008128935218534874265510532111207980134106743431071398035197067090846872899719593340796074903722355707457660575934086184689405286235600722201820008993825083535776450032345911074853486459123202329303147219740948810631645841246601373418949124910429171801215611221493748158046518924292632293842848598140421220132703621012086175437340055822874003813236570793627068694245633916343018085381940354900536123472978132530716382347462776553397921842742503057793843330429867654431313442382034403789492924692484656653024954797488252850316366358492776568858166528140919231505493953412097937904509015271011594910499995258030739880820574541098837732130760332986492947237819308501603276779738575534493824188135560345051002994606003395539214060547862809810723606583432175336643735951094500155585571828303756047597461215355651396003516503564014636957508228271414146027977460192539550595872655807820359421757209467035369778389746968647233015244226258155893698780190521889973512814314668855233831240360803822702907604933884508109284461681160812109892369672070792256396856245614537126272352954086661698402983203681704800316002979366935799126666758157625183425943156926601704850273408203258513462275657556641439336528658782967131770574139085066091534802304816831581506664619389133763914932633174917450539570606643960021296593485595446632164140955213666767170390219904823993458462854424870953059001908611539632552017372155957239694722172500997468783738404332720219476892520643454530961015838801372082633422937017881689198819129069602394090558211432316721421335331637616140631228218674065881126895004312379324402918213845059163811827611394432677160466564029170554162824311988611272268242151106015849184216977115094447941728558382529426531387489638923414513846984378637605960628173304228761730840261601980351746760586019921434811917981410526357711514850818785682873081179428969044978152221080285612476807759699123787332408845303723886715039431456559395019125819233688365083870275692032025611738857921254717216450781439835819213207288455695959589090324905083484418295231882250365918820270373572594205956554147830650974471726522918586035745624860687652804579497859936734973759015940485148352350700040969960532934331756764652519984552689380798222171527647396835932504270814393042482526574471593073936913829270773163951735525437905060289126105998622756826886595366134767093177012572203860756748036959230105960446042297877571238907108899316469177900640571794236252559274619528298571972002182072108936835331575022510418007999868230083919543999533493328395036615789240221585969333774930781473764627063627811606971538735789297535533711599711636656426068313922936265813835806734324957577877183616920793433090149925007405011149627065428033079596972351541093721027798229623641865091547901586510548174381923501860367317353267524048579197336232150745269519359044026315853639007236213916446350453866353630929383235009834969306780550065309615871492138745506207850921499979923679622066742652179930932063610493914980309910305238875780589437617435093993945840621250378795236514715341339710450293312630118991405263282140632618654125503463498246362624849159211703627401731168394722185270607448631617503687585764229343004049180853698735207072650631835225565163809915989986733631757790276314703153660265209966716311440626989666734407282482031939990928495743470263363052801662839850108816637881513365895987104469097438786939888793967205093346925942579021976732279682915247790006530703254547647780020962668920712736752459760267848087012381657069142617027443359960698997596970840678934138163066550185536872126142890621855487760696914876503434179061092054461360205065748787841521301896453299203698092892078290549489692809825783929544956433009958714953303700388164263409606765558729864467963466804885824468745800325413358215109499061974243456450717008471806758960373160116219290401333813611517177045522423491348455387770971369167601155524638240370093696779872934590433374338564850253869830678106546292466943362566570914817969594285360984351483837410754226815358578085436009226422390930756623593005209362860479320334189173836379387736037138894729090005233020901350991713134943777199734142086339649494458293163844463164098302257265751044516864729780582107850416344191437316955675897471232683018514917125907366266219120193549770312406200043092156937438453641232405920178465834809688083732883777150473754783417168518103639725302811769715599509722120572923613230756457247594457951564966996103068377947822736942050844078922676863674908761827551454830760612757086604540202157046539554765686962454973384724347802183204727973602239746107435108844200686006275074758465000511102948334891727860779093871029888289013345750028047409099616075889994272750111720852328165161503598985482335967843019214551551303532597463867078749984787433666161812304705559548313678071615897645774070486241484737631177501153459615819321380752671824530209145361811383687474521198693449955486042118743444608975455353939897398564538411920447449117108371668340343091014526155404865106746459621581141134431501044349493800484503560651306101375716366392519604532623531059637670010150253916760197164099502960026193690956432332726275192055456399720067646234712070665552719597538925312826535842524482877065277772372113781699552840022270347037975411938000181695898608751393560989632484005699695981091172037835018444234450274706822535915018159027127935194983082867728317557435476673683493591496667146946071871568635961693338755757841867377526807059576276902114356457085743283135691115591575656065593304172821897286983424414145823609941878658307354657388694915214100643614187003684625111788329410248280727463383413284539448954323865543816335909285319909185808811845917820381210488697918889937400373864179478089362855852470875138329749908700134738498670813791017558910338650830885910912870033181331699374139026481043250814863480058930967077709521509952792409077300952054804061748829648183167958632706893025657382731126034511990827248914299326953441504823577640077703076251214592180290047951545435620688810937548725050558305678940450398770144158223424295408664368478844865680218631663978741251931665741038984937617348894408291547647183948317301678703092857660652815503425728774524909027972009988015208540683311057204292318901495830363094133178214686565156184780311065120759480947332641637850181241074375934557393667215183188021719143864505588738688351505431109107198456810750412332403683236277644947382479760881654438084585716498617755441345659945812137522830901505574772163855772122947121293276601455047162743604329493813509722364018161829621867316613701860932831351561322012586898809133900625671773372566367385990482084972395961759041652559995520442148061294413307838588381486702336191575205475614580003965989460665091022879003555586202715217509032370535435825428294337647446711816800183358417251298756099081391955732842765122369459170087072307049985024540800585171915858256423099795383524785661835986004243508136857792435952479507015596915117891996731306999141006128819402134712518812192300825669635833540428149481385751467114517191510687431066450709255978043260944804079467756892650685919966265313904764006068476548190339228125075289377765299668182050406291832560481733183339602332229130896905124414142151461070359444113614180758168937329902532013380838625014383595538040874913795666717352431277367638085783794547955120718276099006229513420887174822659638741295492907424312869308362439175270648353669162335460101791155403199491578466203791395380595434936375431000433701083914195244216833611477045325186997323447233325225649862545976790910726112798388450915152188499097642974762123343505414197419128455242020061236391982413585219894083817691283632032620197713907334024478055664582655015628358726294439154332165205021384869783351922607164070442684514366698200421056975978037709510889253749036947351052216540506619100853871552812874476802785509395616046138053839808267189286833133443475756896284790564151575629443022395838209416231278119459488165892626566056667921704706141377286026891756798063364630926456111325514653722674649409450494298908690782133690603809872281058950739151829904126792987084671957862891005687987715695611156307780468146503592136647635803387831468365085285756814934026891921323343988711094292142352103632249554441599220242215413424766459500100875711670480786320923210422165215298751472359679322684420121867869020971052847481661277571980442551037653171653158316592531506179735326394347589427910878399680666664839240211413651200592589070021400994766401702743763494328692715717602785556191900762096517755229107429528729552649586011010675838280924347304284553567372461875476638879447346499244791929650613335708264279693383568046952587372644003672791763062041416594855393654707895853374406105334023201750633802542010205870650861751778576329054975785297137258120793589370775748604537928264771124027367613019905677163843013492198249944014108082784247771343728963741554025035568135555873557431270441784497568117257057625276414204435405156833896677363210596300358689240727458853216300484572989809544072569783833885581997000484257166272861842492648844286751017508408648230031604608175350588645786118879150356067641332822057933328790127027328266176375009676014840396375668910929566004798383272352158793327820233630678133164434613577085045985401181702310884490894769884074244324479357970329073284304958977732481203925302772629028633553158024288924167715825141180318109112152833898971603432241713168219120078872804227821682374856600802190169093068353847206616279864578280848694776315621750619877518105678976634043042217432802849907546556091338198954651027507944446498397453798974312434598055459707457740367904683774758873084693336714614700345604003125376955984101692874492596106878716621397626904146936592082176979078777004919783697515890719860577314922167884418399180753142193710590825762370211231491338758211430910886809962522846045220720810401271573170432223514617422005346008224268157942077450557110732803895947631110536852905712643954705770167130202402121449632241155560839713024881596169136367301948421998708849790145696403627029702376263224668106184356157177361169302591589528524833360410714499669747100645517609648673967602319916392153485649843501928053268993664738515170116177064773537291183238089899553585057965664879146764432111541857097344226250514776890288456169717550786708741409714751905574575905669850970333898025945110798140804760996476805007633435621634065555474324639482079750630947314144882761445304855391757101138247685515122106070430907942442951473205599221901479305661562868701786176991228078064778873058856142461357589836427736951169484820441440490741714096020848659921621425927091035608365778922171228896524097066663757932352186426704086127060034797110914031974536933682580821098695503823630762099817593175034123885003359596777178821960791317659011005445214173506545324705238826876883010820629265445930305107147773406188453664839703778877400087277612322353573450502977297960538136455138801335781310154335752003203388728760080383881691641145487094660772057571324472797831047212147297054457063131507023133750562174882372709971840866436809148492481803584483805293340119933540310096370305778393642152831782522866162306952931211245854425192035444137296839365268375780221561093668204052937181041849258376816850916551235473886112110622790370280193717283708571971396247327713658064829640216372763041230365395922006226056659693070420940124349514536150185700719773751335254772611970898559909481636399330646759320140658873606640386250871379211567140741337008095651727225660626899757039435501599233030263756929715365461650784728041840046153796791082725783997852027150030490691833877729994499751409094792892309888827256745924731015931351127477776629730135597262866579221693090375223088626673475694990888743811412321999512543532487617232733757312195991843654439090641173446173206316648763674826920683795918292891349969649718857575347551769371632403914144869337366677847213323271495675918617723633328947358600868399188328368596760304699045320122424580782066025063527634939157497311052256220895059922608392443400397219940489931541389769508091611723696310306367062932943219323223778883321043851516616158380043590201927845715917758418355728422794095806274342118498023825072792812778537133397849285082656955057036039234231956351188279895160223812899741948233761395395106327410578687451630678490555002246824730126615227313729824550099024576320855503482614531818733860045394561264406193265040849428122199273834842483104878449814561247243122598773459675160411899747761124190577173015065047267466329386449079962783890521096297983343780954481234980955644295998821235941398370878841997987443775153784762660546280481559874598405339895796769494906400540767320886013852424413819758746861587431572378580117092217621444490994043393241608502297584300293460652382623732299299046312016700622835042306931220606439404789632830905118034977883070627951543515256677767836986438127836686118813077190254584992284058580242703397757454072380438710847149078975968274506529129564800653344836193429328215361321062040200382336635887571901913684508864511664321613699391408650524260729558933537260116221812931138630406609023785307571064440107392669693054454780351037828758978648739474725823158212115298618519981243923154122988891750524885762336400699687460791794093092233789543124504479591553016449644584001279829442334344081000474510217117353198211712121697174929359299236842897868698357579499881128113245831902012572429908317664108314481135859370939240901449486704194675740388258439849661895441114770042295504813270259116584680791544971316153532404333160058926899279952862562095756327961412270857212378181111998874217420798159999001401860278520973254778445037562852047794201060776711721173609735859616002105792938469386668976200136517559874983843665128216221993587315794052284453097841254164086119680193924524803384141304753876134143548375294013511094142189797113106939251441913141051800844834195690717011876036399169888307103844984649184870668788585616610834116426306120135120480478508070361090921607064469800642266224528758364616076795530350290563137089988752388211334027295114501843693773266463408369513693170721958838609442257431874348749847030112438875431624887840950738252145706627481162358556678362297678333055217247087750578275962842317427577609323256588069155198046154087706826668154796267105174894296729310593493609945150443659927808382549069997279717270433261470593554076665126632486548275601867199694191312847681531982571674803355371282955528164093548860323610517188939440720382889922895556542290618013133430673326090637914594548525433780013328484335693861204284013469437147424866599694350180587070638926965122053621298587559050764406286182137915493797981380368479812900490415023540769246424926644926811256784105396905833731964504908390121483452419748779149914010802737601362737850225340209574207187664726895499807436157148900186237415485121789214790136940844590281721771605027465740401091090037866037311652836176966413144137072800553052510343280616975567234427285932290430723359481521203154783966671976598788588743189128597169755717831148483745980902753227908004194293066951892370750327486625788113143386290418095710869074940844950553601723204912844076963720585355378243242229093919798931248359105648045213062868011936942041887269685371011167543511688701807578334446996763669685391498235715789812981100006201208168959880309048649473509291453500077862558406032496797130963548361689474997035738300423376539230564086427648374337664421351773947123903160587074881625187074194808125621924000453416826613933652708197387269620917432154326959696975437334075842564856337361885905909524407378881851112922701931769418552613669089559349385662801562798301873727381954004073490848178123020205750536472161680681525349585918675143610414372930692569776752918331564527374518517098662412102392507857934435846358934922482476011207179956251754605193591456004427898544786129656098734308306172128514223066095663686447686274810920437713070074592037290821950432548217575954735801853017718006869188269251719329160816994719156419057133688056620095148242583713827107321587961334356298428819170059462221851902423918792158732068121271919965172924892266199614052390945968221194801396283623019280794477238827066872712010862988515615851968459868341090397461953087428516902067932044059331437347501242620485781356907543430106828435820123299572971161765298310502050883685161454633425639065330409150064730607268618222210555252102586581509819584140577257003319470896891942992452295127942140214995694416332107219093120551977381207119851144475864882590366184363154451555857861940079969264733555826188771249588595580545206185726896234670716521313820218186950658904399836478252945720913277876207804494076030303977406231875515297424825980903248596202610171400676249580632159791209507473277859409497793958655416812628207489967611198853462936551477117288258856696878391403192854801619879639783143325557320076882403678736931447628172270282461748898104476180546750700835239013706106088702006934560960318090065370275936823475115331595424368470665165239742374045040652774475032256947904643970008555949066662776797333039338531471098361606315905770793285284439902585244639078424136899566549611645632037053717382798138978097796388272926506117162310020928093136489854430496099626450121196771461061175590426556233762342701998673107984189783840841733687316008909995564470506881527380818025586543123012157049550634551425473780147181985903251929857697392605389600692316854993941496792484867472843320942001038778296047548610594164884118768094791312222811102150140759867158930379855729128880768442221357352046923758948738577766099945633231934992616192145461720618502622516132523647161469945739888813511765666872564773927580709165926749311506008663886136524878212825850961891334100996109374563854641070628726185786233645430580318717940971317226752451881875256428894583995022690406358157061057438940775628555750658250562600612326290408772487681072262309483932128169207094096316082896477706057356792092517625876759184432288003248460812810437519462496849123003612529729583148998998187586027143201691145868640937185754389458540285266709899755656929792057545792721084753342801901974512707601066528716808780551367467883882272815993773288855657472663471279428329459459258464700853990866700328551789749145178257468333938788864225414552052946708938553895257098100216813896295671182357640393898875539323947998203610871130833107821917188244900714912220582989786721326326912762455528204152954280245831785947341802852604864159465845786010254875615546972871724733045909797450520378171388466237572803722904003440185838325018001463083215476563399260819276918690495427480654319342696806857606464257633817098002114888016995832384225523471623036550879745566872842917814859244745633489773786484793564155905999266831543653900301063962204636402983942990338445925944098319740169200023792933253239692525151895706731895581365434968559007110492482357945394410347834228585025365507247842745183105173961074815728096153716254620668604250714143170356373176604209343827007233223730148021521204169539573555216595744318641528955907007518689614746976149357206516932205289755850501267736082948089861555305102808510592006092795611085767980761286149810674244857698591299665918358627174681631251647363660968847936048735443897377780555629668850405461759836616550847743567616105805384881047202023256224962643656822897941055804222351143988536130729149397625521167159462489562988742046652675610382559441217565296975699695550913696611155728834342551082007019474031248351168769559121294650224795257805875585097790258018764287609900392180679881550587235693424699455363518234387051859877659992228972923532118041702695330408185016564847398111661234009396886932736448391557068459598935126581564796216873045472109593622961605809107472621348680198821640675061046932517139489935997480902061688577586629921016780512039875365993613799204173063704386521606712073917809293264999422722167092104486569961514442017035464649266347166037548242245419085352954091689820515323652455216827676459068750845710693293775469176145784399535349560945303443590030487648548223152480714458322621639179308201686791434618106288224193739961898987056248673766768377678748827192405394542772671384135656465334624994954417204833268284100749008201653668052205582672006908987342245911772989658274946911661442161850968386241760855126793184302214876148481230407412864614716762072369761334664932080526675719812962425071189709909990302693382882619406837146753627779644144239380506300119411007894296862841031822958109005284277291012490445862997052983085141819529799225733197320952267883584457596336081566275904985211031944561456214218089357780832346350250145453581065059683530891917349750972789045979557670872755320786120632763638200404658752237743653402648855153081641136414529395435504654535941310131707697177234087766122849475497169206811858450240709375601062843461271310370043413270139190352660572080362275825047373434590822138781571136077345837139935640980947902789798712981882461470176586824270961918371015889105329443367482845587277778791979200316877829900723957404322880681616380238353040361423745250509615738668365238094772726983548285905649793394387024984407301332192345596715642032466696278672276515654630875315109143688009648589088731798676964760910819694786361174578205855983379788093675982085046250199669744061732143055000177105760692241757453149676148610779252831356037526359615225411310725088510578664303951950655250757172048098138556438743345949438035837456284616540100946845477849543273603243834178671623568868086593860900307662559308986849706370968893390016391088654592807293707356389615394416136883358783991992381618388147519838113524877536531450016516294173372130631945820270416920877630510660307638863800402209018212824430199500869531931139576763829026820262993627145012883974346509302594101527587409203158134897205103502424828953602399242531609279693701239980896413316026828977402572362763475920839831755374990630089435220747143377931531624334468957511386475181735913888015128234267585433470734145420980261794814291117008996241788432929809598770136321561591736787842517780787150916906256210251483288055431665914802105692402064951417899197677125609590866391111698818735882076885418673164324714666001918697572339858130963819588530984007183068893771138333492193075438240367746534949985158679984290946487899952246066189400599813302829524661673985003693626796831823630058691888732568207516562035064669383352417637731324244775633385154741098903199262312485490585381285814831869923994396142889631022811483343294504765685112678020766552798797236140766796999864095136116003159950748203513849681221082457388344472935847576159775355228150863325294389456991609776113643096960130307347465569934436727158450559831822275278144404540857629161748326363876814072215785831438533110473804608874591826133849559686692072175894665174208561309840336481478791708812841459904873758884735713607613456388254857771907143601470918677568315168937355611097732150507074331699844308056697176403513183417564410760745152955754211831655844220405009676087556028306737010671434123389211678658247691536949837557800086958619540455483743874672589452387489876015501961181566288483211980915753586203012435720341018810877692744980349203963431576332075851212379404510555645748121325259710937261368904960238763898275846707306001783296055308737608831983639244659252303620010573204669529927076700079666562077885684557354278462535463798169087141940833321989059406176183375384540733276252292847620604600194606947159314122231115106627649698868125991343941877959793661845841101396863424964860491309129841386350281164790906573199286925501846850921430785136378897847892090945135963060739681381067523611684581775069979004033946829802123389645136051377510580442836059372762951343961943973061955670521914662649548977931860304788972650625418015252242106126279832750021174968618464831626460163261845450954094485325099873364633965105250889199716375290205274267539499606118727853147289836455991954453455649742743899884192418078401640727608764228533850511695084571483211495962933731468744754280349553902313938758009363540796433309285089834148057863958597508759418647648212843395936401860110674541022967042328238272797298787072751597289432218995418011796687740779466419350895988789357741590711717409388947816822343278851245750441338925400300553356459655973601775140686394356817087607587469422311718874878150576440270680381772606914505143280420885984100330183558414901310773174651228268313673847634222260656563290469084609340165927357233411002624308871717198533388948417750418912422615988224708605399899892720064675724019015693565447644356107538850369219504314133003865196389709276824638045511055398872255560873281727032205235606395554524256694278589776423711059280270845677449557710142118653655441136244004254157248850473508852915520752241366652312357601885494220740699540662368111596178493114183203742877076602383609164984045530405711902210517447959589098220084287339890952178244771060630309251913828529584895292964406532500379169989121774971285761853235152820186973494905945655999347498154303450141968542395406525449735296889713658355825609794717155804541550825539880550424649401342885158563952297449448460249876031111611538528734444170846784803711256003863996378998638448938453557414012523114099548156858328035412526465286219090300363924506519829905881333820233998665728679777133963134938528398362042225024481598901599310495193731678000953277728590362779799190441097924449599192871737975821879093287660467546899354195291276648392805832093423354140553291552951018395209097278944991748830219964387286065920958184712309045932609541408938272371535593111345226807192940167924055182321400628950928446913119913147042404712255566302682357188859195680710590325117243491525831938664808804076815866917800247791762225529278140655346003153156553557432985433774596422897845438742300612840234599250794436384740603980214560367814650283937213797034781938455484858437714243916851875602444133124488564247923052742190245025949740386471791940957358448469597395688889127311632704563615365449712440318048593750137792023660493678652913176378943803182755255598605616716333251113222544662488713023159944870941793726162162061919919956086206318379891472106919893983968632636768421565237992035062374400510961769030989651535498373937067601829012649170304051167728396181777214868521877078899207020969289390238960301857719362518184866624386210411285642879083370097952068523934537935991308481031584849296306870617796125438698411464875086260534519773950016454488607118919194424764483910834541978294101425658173705048347207792386960795423077220732074905516793965953531728276560986651910523156797575634453452064560133140840527018595093812194026555264224367022544226012596471337980584420483212806902549133193043653642234770906776573655031065004071009655672537178606089947451775629260943028728289472616634076764684626691395875755103060137130185019939663254733334720885705329049412382530396810312584770447988617431759899993768159680363310868015615296402259343416427928018546332773971321511273953839879229326414563274693028813830917407008433690260573382871000383307371334544498817347577985603739063529495491995141670402841188732669216501374819646389814094907158605127184528297962570658856620533856772833229072953378903903417285583334289747270005543880846533070355722784177024262874259763975801416754950776402292536679550077504822456863356844084127134449963139067206671779104934651483669364274304217408806753138510028256196931495717887515680481554855428941122909015004097557056888787265656700484548414545261083604331746297026650573196888366892217369878766532476840576780039129127542404688725883796671724954174038352872831721974176907137585255027581454325638600931711731594199366654056607354947520382985597304431442618379999998852014863396291910240259665291414980756318166326350591849686891815743332398731214631256952493415743865392609526383455540176756314904594644309703904686943905699336128817460739119773633014549437767724360527823412123380487155714103948948091613330845626907361527132602359227517485176382161506229487149292121442283031523862471879018672858028480754370948860936243208302487437072117927988119512913016525876572510954743050996880682784805135514119947462937079882797768191446698113528894576427098306436845267582955959974744346798251468582135709306437057005564652351004591400051482226865837390133095594339798412637064549344674567588848071573830097528930597999376967718071876127873176084336887945399159617985895445078005285825961780235574836276025622103996124916774898015804730200250645533982160157253717585864688489874505750817114278138284477394745325063159637492037059582925527645006845015245263577560408316884157919005667944688818878986993638732337240677822026614967874791811690336191903980654067161289498016689366146461764382265152446552684971706633399189870476650786748524983626762796659055342019075122263333211614238433136759688719612165154859619434367651888245606446820655125277681354234332788904884127010668768876254746196778908208773907587633489302467880229366333511198196851486900041358156601477756522872389962852180355513661195363298773379615392968771300493997549893576158620143127528672323844380608244256555140421524825198115234781598788123858735571613584793816242837192043608315280864583944956688101656006087964546656820354396702388127479881157769374024453715707728887675325564919571796420502239099511791065715245393663934281620716745208651751903692624767286094225458325310345163658825704562412686404623479464412051715761753457547716845507028474547992097531297724276495615138522974349444205612834464217353696788050160549533088452281053722644043315627886054518785642089394379631451338824647138072840144974032176012461751262999433699722810228960491368707280793807397814305649911560724607392860115731467032967371655934760013927170222402214317262206308027249932922638632893689094208076564010742941926506436117319874560829092907151535198650028498030170377051387245324283755232156306586050699618438513205199674791539003920861329516420467116682520138400257786872907874325129234969651733096429328064487952357062726069463664763463071115523792208693919932210744827570656912867280646890207870444663840854898315606718621445196984249958643211218096087075893719434082859276877259208401445648956492361737005937564645225874728781278561980976995145553421110655908852623152110312179754386104057930710351442528537833829763442874393223425214031066405206585609480743773530227700380439728143363848116654670102796080787614189135101345644737652121251784574316624543723193607396998108007113794935611583624046038714780374572105444090130281467540841712311945742837110006573024720229388295481015941867681393789947812581609903041301402288233633032718708984645796642497006983531142483113801290005056789035072372991978666552027715703314774374390565964749845309853353369347965835136232087296101882903994473341878529556507068300150811576552723980791799977129572901097091593349166828992266890190938765783274241520970623091207584076661110674178741642450184525033811343401449309702901385226408822468773607251860353250792022512079275584673474332229565033780377691628300612212825034022278625780257878127282909706321018904044395260577779078585768462044661065166456348595306521428891322154586945291133563526026712525915851053067628644919357108080524977212733764416326859129053528910703458853161219813828698253082829854354997918021388457724818783982051224333592982806388709667566843670797897440893028537810748363666451447671419217602733488685762790595742237457158301004347855300510050887788363652849288989913151082149014165332825705093352549716335020144532316142305262554705277811456753326542977659272185097854900276838982694200817843251546802369120585995979281601613275971264525883476255106592629403726506441351092115926117954533405324413623506461613741304951882256547119839621830950432784606061073211009179384815168913416537549959007503919614680808970733520366582532386351398945959144493805230797086188380510765833122103510963061219196364447910795323091567119510206912461250937872692751351183001712076933177696536846112613308602510515434009349012627926348685558765169654583859855046679273175609968172384039676368866865721871855642612661434466999532294917233065808809129083041575444934894096748401923198374952070174540255579184251265411374069918230416519631794006839496062102209677121855588994943814873873795899637287646559968227708326339491891831619178955694230356517207593305128955244543739200185300858043156498462658837558150450449933912987396976076629482056088360110501050203524669639441600564330994288584946991511216158855941258301033318745856184597808661313201727499629588306264231753883612168995217107538486250692330609228448722335243438510285289676976348775251719918857138616295364299518209744706861116788836530647472531007463121609877872897725126368065883802035132752420063857936648908435432430700162160546915969986030442677446188556331568821708162704682006854183329311998385449350153456675980854594654830131913609902962788186990878789768993625391057345681558222342241397908895038500509778899864123089790921928777246332598931244320380082309605130246449267823692753366566231082221029766676464621076994943461834849822532077247864291403831040826419699363896234847435961737924022071414342002181784358863318103478287895767617811362953124830664365761551586045004865122618767886561813924843233976134682458529355835362538622199914502708645657295962428272063165976475360312211787002266237968997563750842193132809873885701902484633108103720284856763408973029992122520622111602484560166695364478926202569225471651553384389809150536796777704878826141396521055646840986503031530105402794738502440549345086940566867978646871166136060948654359463387946234483819298427740384665945506119921325391536172452967399296911159361347887033855706965372795961391060397207524048142995333438889427539754587612550207381667588119793385597453271935235889734099517166147118931722077773107166308929085125394384889938092985681222113506375995984921142825847418270898480009789364784366620454765505081311460015567819821326090515404608066464862599747017709847109808005838307025092536309764982781944465679616848725307145357859601970807430858999486767479473312497737533355178817707795922811758994300042951023086311016180404912885552213009252913788406533106898816056897713389203287177885123929046095707004150856681189111172644551167124432254222272725600413479928872782218847221245825307141545956990076591636596768110416625535835389297079788932846213780698497665824867162478993142033279556311602359833437868960553947112470681848424468666904556941653012684014395667663041867472738880417817655160359101638439650077484710386706483907135409384225490070979682101812571558758420206127364036680991627572536104458283627936690254333207445572498574561606949885541607535606791526657234972365777008434246528114188611482876232732522707574243765716085744393321975344276903679865327189303531847572876592800720203390140408879596523319519523553821957010546515125154544660640077390761037017257715773630256168078502224678027890930248318595021518653143927417188179265049582477578994632706922744047126904424590642326623271678273355540345804958590150088623006002033449883672874833972627494346649697738728502472358435641258025913801852168039363621873782489295581215434912999891925298548780899269132619302497298483325387001676077023306327646244524625119201859794433001253417210720135253366498249871726052996760558201000496213084612187185120621578129231550263664309931878995241204749682560514968843234933545331495955325188182630490851283090322284148747178703030050299520877846883557836543360247181293485539188888480546126859492484795233228317220494227360120662259613687304191785573134756487382475530045830218918085195901733117898925483235312003194370128729981720833651971643137090551297822583937394634923594839168089716478241967717829894161103892025220445984122674853686824127956506930398393603910258125846154768429102873665505944879164845673709755639690270767052994472987148256256352279784773859273142163212120911992601585686288813430285153862738327078701046531555614803588525389217875009935152109015721959082282241081274696289887271066767040954020114372253436702097907949987471440242565920601381112858124445660315381820409485514640419788000602470851128695195010786260398290887336126048096080515949860399012939601683092383843418528204439065124939411136597695418916790908927769619585846863021752726241492378012733693926927538574419096902697012845473592098325094319329466967079005219462886848625544771922811311589119588241936088648743641615352931770741406126553518555723988348030491392181964142880800206607844389409902334155318810703797201857965075237218155421024991958204760467100323521380596176922541366695826065336729998650857912207522454434561365493528532068462711241110346525959039141646301597731990093073006409177719961697085239578198543231530247172397303492651204761141316126408557242415927213503070665750625088922363536239996719586889899602857112459386842491991803043604728001425665453728930133872940615371951844722465645324289776664996557949929557760069978443641750752311346980940471845006199719527047254889516562122272567407778659452867573424918087181739930291818207439844770377634015615708743568120557677875147194929449178613929664967717859338967254167535935146365630606024386145574650227555831855838299075343057684516257395749950629913419893619304282065518923626360200596624885000052742679359790602900924955067059319661060333932252831711405016096524366054632851293447198476965687263172217502377749531934514136514855334791918902284856509463437269885707219712858770004986717852706990379440263534080353785987472443760529504442177752234703105041726105094711891551932765438609896428393679050319740773636477570887156176680287703328462698300670817465742929210537793797873567299587006540778601712312074719220341324496563001393377822121988485366056066229016396229520702211453262794168288569834737414264294584947038727322221113999795327543139082601385523076375828916697568938952597154169019486306994846387885404058930260916943182067284604835927036976710634999853633990240485085559435968131990049979872032092580801704475329271913293880998558901432689475301114172131093653679748799348030539023534718569618658465520449180875882119418755002097090602176779784666448608043334653663229077094521894989381316841229055813982363374812658834878230610715761557598888224507345359052270893645712367351087041771555302016664327885458187651262059140251618684144481668847365165857532772578572025936640730906138968491684425292777282176198763505107895728982076925988775016900147057043158496213388920552507134654375306919704884742245965424914096687485567741701263169892810744468646369565237525750854427118805656167384363136722822155695430729297193616671227148017788405963424347513534660430989060076722512569817954455131740526416136110006175519821383110590912662979382272740403425762377635500701549263555552369523636266736272709137017535928552923928376286257199079223741299914282058389039366820260036776360129307841961888069882100959023956550357528381856878736796490020304480708988659969831806330692476412695965324454246773051456992379500637248350199766607592104470365723330228410297910668050277769060701973660336841986194249144673444754851652388650011070374161366686802729968072968117561566970183178018988714700121230491940880876966649494362644438617653736922685024997478269917908849228952219738288383098454299081211805580918265043210184396232023692284040272130245663332046009953520991474751479266707002476427507227296043673212605249016416417886364997047088586587031640299282090623469850410972627885822814729681161682550143693474943840770615001589988220051523586631867697293253588488410873304155959980156141486694433884284333083698979120233124402220387162953711295358453537369876965690049429798656212456752851779344691577919881310908430638569488482317556288688235009143661191865305070173408060212633743578132986545381297160683817821233562514406316685598631066804042901649661406777350839711920782504011774089549284369974310478759290860692216111166675928043938457060875468658010521467253937090497946987528932099970244963008973713155130755605653291158555850161306660507894754438137045729648782530209330765491111941275233879136467557890910820753511963153228888973591501367697905913366383908087905031177870178854699309384577396772782849182440055707064835609976477475618993989083183644865471710045398110149205630226504518709574942167200332393655320513796706182925894786513424273909280769495058616201834876208702581629414738074436168241069468938832967897283429274073808051248941676697522843060894686451397144262074322883162760332584728576658839970014847712227105959307457563429313026347100732357989129484040038679249859928437018493458042653138658744179093279001779412865182832492597781227502580462786143845310746245023361876532078010441248242985448062675402141510455637090777190874421003394317608234932388183908235284754870682771329049049026265990943768961152556964345326804192496129079696886528308814454001661768130370703809061545099197914577473057331072229877735868445716489906306212094714536055401201361130169778099827097200980369414497552002031019787925542937104487565669421480083398690964582414699937275063507142025931424588930889769689277248300009235536018481536502013590901085176158918610316879390936311369674834728697318023786468325734039332283643127477572185604021166539951968730856713034911708134127689991051205781183692357241728716759230345873105800960558804936081926545287200705747398142159640252830283090551284432547772820749030810770708258232063234935420043635265933122047165591073804717313645750388508881681010696048773720507193552023734935929350788166783662311655368311323174615913893474256590976022571357377538185520797665002704765008665260306520221555834102082578186604125682228396516227599014840871092364807189988527163434406150014217706815676641033161931471439402801846122461799108111133666415454861541404238068031998494835194376859684166509865801691809766453430745570858206652164480221463093419747155241407236099579733678360460798453477629380153959026830409624927619165313228036498559608929650709269293270994946218429226224566542411251017391144630831566018016450203932386606124648418652325589813613701986765754265121730004747412116301608039019122600348670027332734394667843863627237203879484758635424676588115015705436404283974744015024776119239136504132266064931596102928783066461841791830110761976375408553347701604220928654302401738898619512136112988577930795954502505390293365915416430248562376403898057184814320899816604311110503038535684531962135125234794360893933442204238689727199130114312733864462690188619286872758542532245543275173138704626946205482279588673441950778121471528074837507956165628354093190804006296903419932309750184653931158036502541802167327540553308929266270657065148783488067537330247987720576377438455241455271136074198980142307463268554355709782499313986173318942011706763336448853097553205153268857123371222598934981842144730137576812837162663977726562912554613083394893800259582826098957523735722765987868518122525054659621105657547746454574188097797260976740462627172828141434864053707661405452821841024307174206608486761785723496176830374047609040724028659219445065921559156556334063760845743118783118925603331103679415193879219976442372422040133245607643159303873036263590400605826471497188919315403850968565683795966153291038555967645415892647108584609438801178327100879914901010868282647552126298980507989861183005245942891381598545727705533940071032882104148900812849418588926454452593086251219437751921406683850383001164275106127043691958606738089790859998684959874086597216058355383941337685374158878978479684938837056861631625051276334824350353214192546387850070311381861339814301059488022583172465845374222119201941679648258772634575545015386146775211362091298809767882129803373136639327416984791281424741973098160075420454314546077521099664737173763344676222797992713047677327804562580542780893303065386541815007411889246040310898699317362038367726979312548226639735514673926628902963041909977082673981524438260768194587118301992295816588271535792053648299017225822674968342910174957044158911736585381588565846185337292908448288034925843906443444611920920202248723766764282252090040517527916284793977516452322947287524860635432370225741317207619944059134211300895197232584210830812283461685345951161175276292028876112597417572203772868669143610528370880185140189903583625012554459396534707962651426831900083749676955682535242721562336971556694500410612984589538667078592413247150397216497813378125066741687928586264070364774594739696368615801412801813143248872924157042584618932539292725774649174132086675731866396999608039241532282683424885238885640904740593341410582168297678417264053252067331610975965928112757241846448553132048267428251014872157049397734788336686296656648048816847538327977604309101310469072496514119218534032178329158401913938346705805714783492303047462128167218554065541969743718136402037485482037922168452230382841639952857007580890308409797946929662198894743271131069688524251486017675265099219639345062281206725384444458358257515183306567699822721178793051448375952712603711095274505476875890955589504700771865139960661633716597451839638741671772166886222307970029025983387811273029041049264360937353353193706982641833654202342482551248246151525953762245082166519956027070095847859557916704240513473880690192651386967750730857665333161642437101339836863978914240207920855541260405368990520561718858873753722249404956549206761141956917696535053582415488757873500430083474888067269225224929675304487569623648046226661279409299549123631348624999969555654404938153781734908179607597682415764945571943849899949935683426214960142683137727005577941185388959134340071100145290203100399591835631945760306486725339360785739867797246463694884557072306287824288998337842815472480999096623063508656903803816633491011531724866300729493421974067501727968456372711295426805698650098161430016637945841575962853706986904195594268517936361619991739739683549779049077735671286581419837063282565008806035707671610627811265375038234757341287989789596071668215801117452890275234228946525811238515617563061061509840213784986882948225015989769676453315075519089154554302584165983561968114597103319623239927893474594495821250292187244474960074003008342155650327253068771340466527782257088905986484483144297160926954855749028841151233674570750144480959474633618862568894222641850628274368669303777543165658147630736713560348237266703902261021891702988550679774231350632796152407448349685633712034050994760768150941646268815720149582576078037274099924736627081599172140247013772113599301716302613254308875971437813592724307460433281645056460267763320891665149042015735791196105336430962812383281297307634788201013634365077570278229372520769298576945026719520634443110685145254719808082368477610409058808383857638173619534249123832410788155332226229523591762094946888691888857117479039420101522500329669775616341246831224785694577842647335030041738096922289864147462372395724960616734289678722917725733164424415633880766849535279605823236827417353669078284027808972031848872613064676796839947241764821202742269615968203761432565756431092286925871838735321743603328030656339443166406898706824944185708955639936267301076614350874465102732340854350989912615327801194156148481161799972660888591948839886196156591395534116662704516854589622410326227258784489270803365114300635787275588761334971675436083352162081476783535532148272224854841891550197380364351611507140756143064776311552981251893479703513139800353629586757518751291068123665751305373035571018246201318334858344952332993818001029105181604553350443052432370000816724515550439534468800146357606787387811467112089261407606981710702157184542081142312950845192186185907881324794196849197356995983134822626285811487268566769607944652107860453984501007404774880312603482602870820260180288241862624814672217425894855645093052557108031916246313981673950551610474151087077173603389780296047195503006165352476912841065125525133360705063273691640761331931078812599254087183252785314986543850713833799426327442490098247927036995281930708781521038744043047848033824872899483510949018685821224618754394433218315468960602707065360559858410331394188320973272486934874922227753055195409651176909722360396914598936886958079192908186112638766585105434610986746166355143562757522674755252322641420261023770068126514699639987374591770625266285837517669789889128335753985019398087902916696429937624757684039406033991287873659325706422528010614201019634324257615695195636908430982356735963016776660771399015054690851718880739582171003058256216227902967666593748093827610635707715141857555048761162232152652719196239342218311657521347697075723798808378354508209880667693133501145476562552023649812351318036236569446956263780234860630125660255855699013794253511571495554583806830750248224672924705728802853437061532542223872699937653243595596165735335270966485058803916679864939289812009720619918141291423471954049131271614834144533885587841593898971358998345549613582639228222801003907468443250328744153081591002863981348448348658558510226602681825754630662891883228489969691974598926693879358541753618061061572507397723168148203196762060990298767396186150069753028685638198115447328291576614913999323523801472806149501817736247303590179357274250153966725784105047405030689468779692820694917057531465908201755733890204220489749756498490776770522385955298969037354779920577862432029849698915130670143277573165230215531463350936140159954001713477686566617012731477809375955450253144659211294188854867520774410127592383171749457050629385561746278322810338391588876679613179099388009655469738093547645964313746098735870792225108640798328013201592644615649624363448788631756390715462764962928655246322094857988177581274629966051121501148084866785910516282606127561613119978962016437547858507298034121722005370748937320684115798665222769998846231747602306901384043340234672603652334351958788158805621211211626271215469054115120898743407513916172260837628252354146662397141480798718907764306776688604686704786926895680236022781256604451583315061953375799229183570208635672820207466690159841093577285442308917534434709181175874900600265776863082053988489172679550980071069614318773407706348761122217380546750394521144720461643187989216546713440913537342548875847161812294426320759748332527388978054100384708753774827209306453416376111808529892914830234230622000292613387059296942133468326080128027035729879081131261700908262681147376612142253353601523456908818423797296320569589694104949010473159621409657122876294223327732432407916036852498903646202305057503953800091244198964938557587374433361056503652864574019505963909137330877144561009063710557127515058913015097545764509046593870069443601904409841123179907836643574829806957448527125396547815369504895888283802388231707308441886132273301170088267711283878051533613286686663796452799650462792539184243759565696739457288187725924895995102276893844103511915045260204918288990151981215710551590997631144863407851986980211418235176953989625634086671765693061753678832520656369799140501340460300759256339476823860709671924564522961837783790125297940912610170592438214424239843193099314218521889744975997728568533761562788142426525172761611973837951541761022405199266997333699537098091149344284065689052083086980383961803375180036362812369803843403025740011827701171101742790599870173929659950804079759444295001542619112544301358425939973192338129084124713686163431578261464422460149495948144447742653175605100884281318810118054667422046937271834564171186254275171637863733903183831797302633899004504569722129117108712246866044462214088474872276526536246829009853679721411847741967513514568521059341370515646720761030423763656130435390098303382422666218879359977110338924237997407404935958951431947879826008158097423706746664873072656740763296270020330543552499859769507188964621797190111825962099777020856404457575485174734497533359385662402095454441095685932932195762269212849187595665669416209420256429399972888526036199254303982318614597758627451630847549406970464724417269143909896360149809397088605686699671983943747240760688069904038788586191809884134279592771924857335360643512327391004733435582603335850227495661505482531959267712882337930504594970609893363867245851960843093966109047984900764335652452600774204470498470010636454309244053124692412086037924940375194183766601739108594289039579193636795880284827788106338953890252616858976040049198770677547013474928725847401736787945981852012494647597046389906627702488948683735135889978435786639572454076195018568639185196294301104372697769832537628617693439488630089761136904869926263953564318767628363342779582568488574210923381643158603512465945543690132248741739856771374998445531291794093694205124407908748574704799364037614572857280964669054514019045254003991406966980628324804794720364224558688404275409323452407108573759577764088037785442413664996932829269344644831092072887906741343820608250902872402007496942251867277530677935761951284631680062216455125467010673611149031984979066662533568343203970910295073716898864756209218145993470804008554083269675802644124871116757223479716675536278599074403575319101755452595105958080066567034868225690535615329374407668615677092801277974174527708848547783911380928348335623941081145470480122649323132370520895285122205906756357890482003579319076732355562488441275208030157925988440467303688703483252192899840827365896051516892120994883089057021369820852003226762518442218862699233202301390971296194876700285759721784230272023331969340189220405312298841855254734864141683741187943289002751676292526141482962849792198745490160992849862122832238871099461157620558742586508612171871582281009670393716697482129563755845506115714370001932759588433175442725180028232809542442381133971174046710262952492949729343726946161261895527354794155403735212850574177256353116766218797120783457425737180687654292668180846158256878424675345480085930174548233260088904433785878563664154227133392894513910319975171865576381576430011052576511890090048911609487755640763347088338608497664307648887458681188188178633848505689531436276039523531485665274452240969887693966491517861410877130367479387089289494938461571243243069031629169928403455727698461763126855101758762881004837169179690596487422610616163512908890979227707464680376093651574275121902885975821571045018519020071020141931613625910023043104705544918450714506719541065934084058483057534120813688302783417893490873192036745719161319382287102088283537697937687633488203360935877289785132279172199455308798208161965995945080311766301657803167224311781592424346299918048462306055067200597838855088577901399481969261353518919209472864929149345455719541979822546558977511833291647904257737380752374715712167368062672276363634453154606427011314673220381813263464677422339629061916947071238427611300071421743350298937218267984139309713683815177278922001547877524581777165194715583758526174207196185619437980320917610879289327989560116811493155755214985595106263799848696211005177595548555140206646580151520475825619087199119194094421437052931443988124113459599534303665404324864927210292486959065636932198879898372519673705631080195680893672599447561504110010770979361560274053638657568543490805005099652218292378866401097635628109485526842325601779402006642922318797940093238005728431768206269308138382618049529963285253790092613661684866787915588529418557988634242630321093670554058368201735780385539065841192318600380983082909654624122781821836777395745850978171493143996173790573861020440651379946070468445242079150184680924338375013673713339156907691502578314945442782768368689869694167855747005268282327171766358858880920140713151722902335649103513139043796226951014539252949992987052676278064095024935370485509168192987639667732210263492751449737086588476058117202717333107535480184017082620805286655423929692415337681932446363045402351978002009363061421555512046763137912329725980806404659204521173476661274360381378629676699370373126180642982465105005708647270312631148753101329561225598258391024768003689035248627280788581416512232462530306387077171473471072360296060751003004344612490229133084054435921024635465950142282718766912166790242087296279068131562695857608525078534464637215492034396600669287000740177448315595627140034127490934211802050864620268019523007765426004780236777274805933789931576279158812937894585151209332204125497085793062456862516022904848029088730892098850624496436547647340130276093324340729261089581749785605882430607307555683591136856479603207600610433986222154660631515617293846335217921533475121507243068189897209282606430437393668533274328823648569790082791102681111629936630655222661810900177842790623213916064717418922802478560695985403152885241048333062852174068769979335796246999404628811433273271950945146242930931952054453094592010407320284352705545028981996806438457136749397655669361806873751141335139261694283582048506086840935258612970447981163698107259661743928367869203929358113802076940632733513328649882554767141745978848198137871945153306074512492175762465037801834759082213744093013525254832210273329436077352103680266592221553082748632667772118496827686931830803249821757639994193190008680719688907598476865096835269667265678290334884981304991690290029280125253405843735611758986257261313566762283642447917944773647802515303507191956821546206009912958961478658200301835907082176885252264525676097037318705527244202107602665972440305664605054569217958583826772866864030792512222987013900180521049296635606288647035931150633213140235239481469721852162963400499024854846809760746482223164899353527640453646827896047333602110696928864908070515027609024455465663782115414814319230666437423054478572807356860895701575321070157981979349637564529396304149498226822648316635449447149470457998422955716200530569338643816137093213309408292404886827414236382604119258685696363084989120711055764146689951326928591100633178587484313999313065222784163659488498852147737171325741223090889836617914460187514087422251803161805295535239053162317265077666287685338774974454231746539550503441166588465500064181624230026832086003408578121523685163454577795629241152289340204488201809360935001915653320844218222460516732139664901285602011053430935531765245393237307823397344976599539640461125775747104407994275758868168584290787721988676703020639500794206097045929810545776678378318967285763005650666875231715521150858837250895326393507800632975464914726276624143344083004805925552048095539945629952533924019657249203160376870800356418080725196404694125914246543174025701827112759198580472755695719361087245001506589815646411579259513295003900953728379564708362119645082707179038433522288120271240143024466459960879413493660959649188449816497422388492967774982893861857327834257445888732812126427655602238666672861622324575487437939640879295674048404273709216180233720227729691141611450017866902330557296180116280016940024044916971645548114583494079081606776474512041238378067677476466650304694673351111325510401508782256137144893807942988375243306213637178232800402081491964598218779173748260356801121229945369153281858525816928455878431385758080013280156324509933480953959595122137854865712877321872767555753612856946020114835732537978748768333397686385118083494885498764034169856569320411419781475881778821886722256328940344235242172578174794922648019628934615987404853844256066753591374129876476911675062950618341998713147407851754065804583828097909235946594459664876641899425859507080061839276564749669096938483977641930419860558549619333182432706217343649075660383293482805036290168663470872808659433523562284735342282140211710202926616468246851386345644720936591413197137439337385403868894953718981916992972856356842188819767878932654910269441342546284241229796776426051937215776331317125731308699966378620746426533922414308785973162777013795823523122598939510952560278392082882058582794721018080362021108140894828465816074591844128571569896864353353589463311270936140618803794283927690416747851392755339819224940349929018395067554022711508796653614915345607041819145314583843317236667867508017072970600472343717024892950178964654798618057595363461127613653869351486484423796510355596594815766291189625607423953058689718286947312685145065499856488687808421597027858846288517238285118045385296243294590785503451166521815830966987572377160273860194915070603939695689529459528468206409878669722235144421897970395810372476924887520693396196734990235978457574624771057529584789514538347786101374921645410893769891380224219045160931192957470229069242298677715030755037825440055126494125649229725348412433334982192974260222893262802765519326744819813652051220104507276529107879320647397511625654131586298476214887186887987744357385484830520009770930058784856575113773325553730951708823970585516432881508478621621116408452017516618005577106635522022923677203721388850844604261968771608774403336545663553680272092499138022558267539601048478859745591660832157397158350878810162123589354668798675427163953013884237375266805235020653494407365107674239031497374792119946525010397431544148112732047203495967997813593693071334366010661667067431402100600191024105612191432507878084334677809730903998162321599313167066545696789146136482821326804558000547876282075102246449740063178822479901770291772390506170519178788891399884545598319887736506621498119588790941566582840920563331706352281924062185089793609982126430133257883960727038110878346069892811048675325366462326806167632713985574404583175624284985951111455821690492478864630794947356355860596457188024273845796092516517262588516693968005140829195597030605707873021714959335476459775564882037006052500792537159003821331050179378226642237963896667411117684116051289322595310839696826678722845647194113449623152664517684767616466683694230064405739511935057236331951947292927197024316276533969348364930647071305487292993257849991157594913210530888314053139861185297526993437922997593820378924917884032938304276864198964566727519909611981961314124453021514680305003930355909325863845453363557995514098405382838414208608715423741111753597683666236683298562143722434376756444810937009834847667467908100413035732662442730555765797073469482350059820661838860213976001311621492844951099435781694157402242891875345240501996759385170150823064864405851823078861248633120201419312675807422637742987571244904555529046340950515258111222002767692263937581081427759389809547381452520459803389159778955335794535751653837702129170066823366827533427975216069519861233831769883217496146483964424039815003812338994756325498200642035469511281832177725894368073933322944688742133568897893035171021618620001517596754417883694742531958427289367891344242080611878408434539633749946482819218423873869203662555376477174850866788956497725664265593993336411320303317957706534454800497905083039157316112907132142164100364348114099618088215607996718933177894337001629822770284115593791320956443687509746628060089292711136146293745777088494507167260178055813699922136893886641444667881195332935324428857865024667845764282027908484072443885404357566056092823371720697162243579929627142182040432048306908976719244025393713166370000557752144148054464234340264464892585181554412119705414314597061923289014467608529793839057780033303586552715259747964301956942625644426985728185444821137455971459219120467017733173009627360454708919906552291725405336712967367376144033835410084239084309225585958849325304648051850781856273670168940073884100256980277173126886458315766572435419998004470675779965681310925286527363594769074588400325232576020955783920989428409734717820644165488279462961037457728277645346286089348808023968073848070196362403240370199538918387583616263704418088612585614016385028708318146028619216229476139611505171554971366767610794195529319369351089613614939741873040404046898169200041810046801350932364235081380297187368502728450267738892896054775255388561165317839404479978399362706635357165572929141839905155409586763107052233431411016448111278172101553486573401861323670736505263652137818950132354684772010591404937722263293790432643682955082729781846746535002729557832920614252432574990887276023305282429802143119137635730727801738862376634070852136528783030839981573365176040731901033482980263364036467791883956521112962522870139800456907995471777612906053940649308487646551372593460723812495466608649757366459753836751492641098987935776783043015930350805279669610398152061579521883009119132506966044973665386549167788218841775947926185811439269126840914278754722460517624682038502339990762433200879445928874297887737010912916716077973608977205391301231583379400943378809611620346345788195508894359872109881065386943413634769288509367474380739527877605050391523800472806452098886184334919651480458774250239087440419545526485317756653176154034945293513521970677316845821985726112505648007792251071038006595156142100727129194526453418633965216413516341079502946717508327658717515562598098516214236982575222082016626889727301002316126498948075606744234504078875914203450415942845533424559607431959262338863723729712086863383959472651164851054156241933504606822594739221257949181658517234928193759189763858239237176565748138659851301572021223004179056634824982354431407559475598887366021058390438695336772630591481423319573601777146821515328515653364392036466966312369779140203493393626339293852736234489396417321450769369419088921055017626834400833253024939484940768150632783543328383966942646578835948544827059126639596429685229083305719201767553638591301662385413096686490865514806852560570951406993378487784679150764053308031977002070336677451052631780726489251231188432868545640239455569222628008862582712829828816688165521921930426900416508932417879853955773763301902084048625929942134594825834149556894955232826044766242748757504406163454811722930252665171112386563139268088082260985837103938343010902277780075830615276649348316716154151342785764752379273890523563028180614895591088171224657625422093981774547284582447305988484334793034281844212133430514257380769833727693457230289662765882700490253080540499572378519369409648770159217556435832872020766037871336850456747825702699786284104045712454342922098934892351295158684746341447563238441854364079497789438949935291931050635114932011347756706536801592957522039085567369300765966670180367240952547445905139382618989351066771949616449831629198635876944881190466956442199404864825662392585658144140902010260289947591071272621386390843666607378013065743999474656798323545851009863919241357833035701170781976377792054170128263065011762905776372865032759540614329531971075112205124283340042551925299630968530151911460032396499255790740496224821453580965068260509501451977378383119288064403337209319089321014894608016656299435441991121687641563586567860764925285254233816638510368923391201835016990820951329215294140012154212067437739278360992954275848729726654616696063123592654339987623573521162327730225801597620378090539457745393971798960494169710975043967075287647764968824760235064124626636828767287333127240437470340773326290139189559049848748297134053026662389004952575147875248325259378724846185751802888302769992318824744048271033136114247901044686526206124931862898396214969108570799274387625924262777952301014603445665514581139506360205603886517667020265742846139598304301040151499755087017229023494380488825944587816997100297488067657009093137028910557874837602681195689228766262966432938974434481524934905213417390812389670829817800355158318671528476404676520905050139437815829836884808146043693403058979291813014462331209097078364324987488702125170407557584483726836805546520918777349457701930475281523764098479082037070254683271756581688168840416664570789825846265245790432323705499312173145344164491946905446447045114187007248171616058930776119091618515218356559674363895772728101611979183649204413038249470308075970654337464192287969670293614574228284542972456892636369592096314471396775265094452507264986391191523581002599592797446585171272204745169225869433587718841346832252305940155139595530453819369463051832117671971840745374360136174615515078892736601193587012653527177639291382407732902800164526807640146610554972383875555333925712776186704616974648067527098124565794184904880455831377603460216075086715337434408124467351172858692079451464437032948833918924035309164663022843131208860180554949830229887644857484643762556999496064010280532683769315823495185901045774880500582988022435647285764317085490216687607016952474584935316474390270180552808363388382062957354638373328614433322266343517634435848462382840693001459358207640733502297719119143272944423699988972708482651123029107584696069208669837611157863572934571654938716945340487675949975806176501067961285030604639038514589168974132432512334210196569785769716638522249814226890240455828447648272202847213048987090638160247364904699693127710427901558186363173608463529804825960929410708557706675176648068629584611689047150065829202730997310996689440494556341846845606104348628394493336056614233575588389962759240468309997947720727410754157343240644987929845269701757420937302121013297817353377180573065857646168863134208530093077792507730805924458861233930780229883083760778858534635547300828903340213319340406332439447906797733179699313049930196389434812117966688098333103589262579355381585451299478324298183521274523079945801726404481059034529355645186772728879393710216417023356060673659230039314915692437299808710514108983473468569677922530165471676614944148707274885556787658858896190113036435222991635682056746232901052390670352899551344313638946256048553254039182634693535339229441429443933077541277173894988210642083038124348735469442058164834470314391614969577031070213879675706955819181224963104700266685708495377670553578169857668466028203835032652815681384508870089520134495167856794015704431587210738713874576448181941042812613414559565681245119509668281839737504249799163161921677150669272124790126792420817532372701727291676884926684777297605618923599657521105453135536996485963414559234893342047236502594464137633541231969719638726403568511889494748912120202532341006627867482275567050805615076496669935273913115420966890748000406058580394938698488629271589529289587453983887043584979940208340192193105812704531007093799762180788814667222775265235498665767634693220760139191224660118238244923866845116235772225682634313909149345525279077448725839937303147915945877379037317385237885769090647150022218303228523790707515344093258609578494807996269865244403473467846925419005960026078604075226925946052618041218322997490732712685165978532585171848639494566471102868016455032003416743944700210598522269962818404915650569432731094702503001181335017441001999636985913332474631351189429241868826939898364825327152267079892848652176854769687640176098981492607195409483338922338478949060355467877557218671175530855654967728571331403582800420429663446011672492354688225645188639527074984127483030766357655931550335663143631041208017764504068984462331221305225797366873015882149496132172518927555775466711272006266530532537513546392096142522046563089773779894759771499985821628266154517439157989729230903457166898355375907910042252071169621183190831103441639702951569134521200198066858293458701766615905384442464767999532013658499175131642674709125193002893775318146879057573785528220708281121903877056084013177463998019366559504423271377049553761327653367645880823000409827440643483482539322418014582044890053900004221294574176238928297262644754103315498321360754124193602741603098353253717502096911019448871809295030686519590013088926071067067659505764715384607079099754078186197216743984988223123996134889728703159418812819799561076835295114484412064480805901158194938082276644411140557596284495361993805801486984506702601677364227441420324932338417852199393285344592013171969819093077421362771913989005004479904991931792880201599721500306722587830159217551978384560033776589089094084098990075989024893236064564052757047067575635440527216714294527535862979047091967479868086389071813338415980860086810519310885098655834582559521273337238287557803032669080169355737734969381502418596902387099765162053536801795607180903269154540740430074820684351400204032058895552736140256963366048001278864793226781899853499145092465034706098397981034863336946154975140794794435945898218056982828189703772652774315595979097584116078196156324254413524957916888503354575483914804865612130692762465663275407337883260300898439323431675155828103297643922500248430839968500739550570898643658317461859020026221248262745906791154294150522626460846844365383494831486994184017379137776078235351134464371272395256321174294937811096097351217087928563811267679557882614911929469117517847680132467930665873608586809479165923303280853023030833456757388875361059583568271147593569663653823971565788630482309522353870331657171935950770700718285735488890182119006907173872564049207638378071125999047386626878624002054132264797831136699859440979004787817784731136793047798555361580470938777385205108008217737418325263937075148879110107779441970845400474821293753844334543211611529396142599372235786309021654999470334808064605038588087555085556738548071659791826038495069187425950435212136808755275519245352535870068536352110234435963475040216037993709684624164611905899219290146049992095728707055325672799400612033254763861133172286743828966927653179967665467849112435471681743752439839948567831590621622588108786186779244362728842135843687163786956629223496122663846213114444826394100505374091599978507377489221963329693522256718512603721321681057058147737564767462342867395745404901394696145681676409880431892331844077216113368489509887147647190809191989708800088240213653070895005424992641739963038934461528608858046503570105988272733804712480717418510820718246378791736734772169382398916199782530005065364626072915128184587550319676963828740171791560836239733231936490743123512171166010587724034485200507525938455527090675565164264238446952563244388945658622077012980039897523728186582528414334554761134501018101614182553754576580245143083447994786741950841535526976391208400098362124283521988237825582358212223800193136415758006870553281587225225139120590233785519480779512906160939137320932869232846566556579830892203598219554883706170775436845565857626807087242490247179989738131762870234353154680071537830195536160298814008021894337721560551284781509748875844901468967076735534549412495504490224096042039993947268399506224038098963937950473178289484487266925355227229194172151696007344564136171684577275479843991492449285064912336706422144588816596166562521532128425657369487550635263959528534903949128305640542403428684353741071633648860676697986567732769038932636238714787416937442608292703005558728749421860487059254526637358923506287603242595431737285640222222040005846681821388514628809833955575898749710686854594555201034432973548088354377081712110155115494213878363849406262974905152237086733873816177113600838083689350299547927497512338855376788191581828658688072742717731476665289109007274129304199301716392320869667274560745292513443044116645856168706914625742698023941613862261145148113636704709318946354307271152023314952898446477366870189121202852070189827807882489514205875909689204631606081914949978770936174758298331530027028200378594116504258769159208901823278412085286668420916393215118078488016704253390132376718853417216365908606569405256760524956832978801786514690094403986562736618872501916679086037299080569368846283401027663877183290818967071108287481247364271917763046465566532718384205224178690306009103639095521056501194989314314751457755486337170498087196063884354996068717803030914257449971478403263410198977595241659357208998036323262001926697962785085363358089294854744464550360481679147044565166888133941003306560879634405836816786236174479093612538762928166009110432629366397218899239115020883625184717443583489737060207803607780454085610272491765082654967366344959853773762164935401810474793765388237073310424186076104839358321882525595407998698097294259508935753451709110997027286143989792593238458482093709854746651480864535632037101506404368836028831535789817282820220096975608795801393156981042834198841831773290136630250401177732557175060478013963451234455656381837737346074710778107045375559961201837593183196723664158038254324050002779938731511049688439531195123141137518520372239631194646341082133773048305104880630401634570124059903214745571309350217520110698760001151924108365063341349988171317803005818146873847731804276140411195082804984644607108087123647805095045402729959471133008314489254553679096239447692099884639412417494080397538706788529611643220086583704462896640380777354311728825438380521846380228256754228442613832359243828367267074764812355633189505028490109194593586830519294576783850778139080131215145139098063010023357866157572901406756529258249383516868454206220082129508575259693339133132913005545543653289461392682059609153104811765589300554041945068212880809676412245967939275123228512210636150826965897226897927394929370129169341213629966033841175749764142347927120376184070086722573918231932850704110582988054920360718145496356466024366639045579581858892067673230012859911798393605966645356803878482437748308364451481170242926648378550308095662251546530012123258485414125348755823158037613827553588300312744615874246036988523507842142848196956090744592246151197811724028871008580300560576648308769289942427211036334542221838580252948286761259022229600565786833109532112837835226078135499488021664479559667711452745247386162232289045763918987083796847665618118063520709199195281548928898369101713597235176663108854397331680344026575956767232563071603815941714541404425136580334782742755236796231647243625861504988115173051266109742798597289728000398136403069142417501297117265746337928119872907589270640272938205800470813267912195238979917554396760390048503181361451909473067345839356357573367572734756223094873130415799330347001254219989077030140202373569175128671432430821929108642880286851883095524381627212775447717526453358639768595241811495999343980547199355211315676624638166301930681404126517673577631066650391928512045938741624558054693335428630030562019895010188980948479890508492808771757089995495704450300179351359030138990186963538457312353192432402471054134204480118474100230125103199084042396766677280015420391942989514399909933462849666677108127999255834447404568618936350313367907014306558793279639150578014271942785140855486077233293109890223909569192470481127445225101979691339720513931193750364784038651914743464223405847237938920748803379965937750521632566138757719778900956117857293346287511251012761047903135771611367730290273294735309427808353443330914226379379326222041811005391035576105904957163207075517675483380466709612041266419739435142656470533885862877372363569094093156563808206613544837676340124763299716128094140566541620958996676836231372545349174768109235142708917268029443301315225909398324410808696369963031880371765395648276496949060896838731794600450242274446607398446787718278306127597224127732366028861298019841567169212249755240374194664447121644380085887736514713534253942428860351003364548288220959205934091957276066424172480992207889215097655042301848215615698706103011536993636036783111834969848626310900609295884125443640242078840831515944328901283927643006675222412268020754141601278279698985871683036463263343692615991301130350924882142074481437372107576815613586198448838937544534022932699406194978545319656594030851994070279681060280688588231141516888694633835587890319598217263752847592558665551249726075538034621206196494754774729242784902061050401401581786608144981467511105404692267035008431242755534780265701693955038563632881752359106887662659218835714310625555779598384223094959338168845294314887889638709721169695706729755171563326890113644707535676364124999890227968251538205187147194506681366361325930156405020332813760637667497080733421241961116168642234313375756326727364748428943561637887335748289788507166144703199462497220355489160478338893137089118687951511218356260063724729689464669757608549693211722624843030867612788765044589551319611876509417194898365884122244316454248454401615155720977826605157775012929594852881548276218846811198831153593859974190766370542235245093226891731180295835634872352689081721640231696891850909144611498557486255751167254401234458996176567329760405957404137169491972090368520491147297866824997693796607474567467173015089736174590696094414403721754060524161315581554692809595393090370512467301652992301193134340874526758546710441274264362910459643422500702533756273652690201308461641749979830434856784291489902557821351703748879065517929245961948350351727386000409037122051096406561084513447022598879136945390742776909561247327173067265389521550827658742654315284874087921870800647912272481368751300024412030522831178943619739479656762108050267273949985178804195537759743724237805272159177100331203705472253512944021083199334395473972696452448255897431416750609621478054362987526173735440982408245480598430320186413864730923131042457835117733806586588730610525227564867759219037931165748057527378479940560514774012001983478768799684999706930720896687008089627000342443005742915937895585051502350485816828651277454086674326898808235848667821331086318662570686422347126510929479419706263572231240890344409428715028141747552023779475486320112292692828152712340540893778514467189385841236915082205563356478184527418823895569123024450859307401153331326425910763324338335133226118898186619639281320105921210700216348058525086597651150376034702249364980936730670999925267551194254780936739008196728698828584027046818424335015446980099969160643901842025582750658000758195836332991279996819669122425002233303688466176895004090465588669619992777930028847569996566130408048647703544577740240026349617274009026005221293522493106632746501917284969758808720412904139267336318024622687721509998641527643983445640571830346711398465274791563595459634571753446248731007659598934637921532350828749068081147216797755930814919767263649294614566104123406771841940511334958752391631164776836667998292562115932685760328194782655640823255130654866512618441041191954150575465741382834201903102518818126273703574641713788869687423396538105156050440541055865392556687702520679203201817227671889698576975934573273742469443264147157151487246196895890812637016495037363610318098233909288653498465195216633623296258367751798754335368432418435381710528697029127887015818606598936877720700965221133334805479562445830822464571298813364002964498456244301711086803744996137763715659407288309674556078060173735279412011496228985920681115523319043728159903913573830406160308338407635921468461942630626446631696270037723880652640320420610092608754004403133185917135601605265887219314978800819518745248104671549969390520367839160505114422403142977067367594000732979986110475100317498697298676315041853476919620663119705576388509287696000139394312664484610897399603540173149933117755075903741489888172563507593602087438850251828093581883978943566207002034433915711852065775826254702466121983946955342843018926595056669191485634377181584918466610782104598603852388461527474539958209523108437812315375095058895645578545820781877817531939639807697145827661237680208136663383833957119462489050965145655680350098964654664928728194896879593495575557309013327971148336862066493112548709718078472187959153299599574719459099674325525895611887329068540488088040657502756894302007999281085868994307575486063336964476230967801381787379131657476194365295032980697689559054989798571189454968533002990943817144549493173807372391453060054425457317053702320434700162261721429327873501015898765485351351389829719600946583883568547954643602802147527601318946160894838912764547726995462908261782515173822490283413469527582130025661714365848689193865637770953438536587518796574422011656616209773557611770216284565368775147208035924149726158591022722158735407668984118188213291402773079922654022163935248686338466480987916096778220439472802833888261271235181445813168324829124448984376977923808345888655809926719002202126603185836447199076818521095157459906368516632718510487469049878676496937811293452642154991324205352059277220766727294839797687757238861880799933377542108808744177649591225406263896025362136659685183877890195723280139862310754974626259802177696855053234557824853134654449741194005676614842489557683968727351380666939042991610330120241395661261529098152480580922651188616202022886591021180749191653527321204330021195704892472241638960324077794434329873482682834771163621955351051178876056638128513056231491356101944239084033103993710930660007108073927488193267275355628798969611852937468895654692191864418468071919011326315550077700359420129593835414485262184518829103739260950492918665449663984332504169584839648925980794436393162377675369325090978128675217988238614819406169774030539353656405923283090561071729444587883523385129321359322669385612668931712344257373749188236414767983244306438993210163910935075150135320254834172885426028184211464504922767044359454224270186622134163416994930667990746211604385620314672255638641821540424678830802120237944377888792685846442238382831910285486863095313430492812135098801161806518623222323558495463111444140075533592606458875756102292635588868594914532198141821512236280653855429155483077255823766218803708027228001877356240355890508640862163434913436371717109920021605095510464747067398228359130854821822097589797685702010492922790382209744972389347540674323148486442847959291510294682350973480312073841738730114311719576395980182974049354962820048364987206193918868485179773986807279593590522133563389376490302780547528737229144059845077631320926099232563784208069815049544273839321597226894198455960156730232556579148079259654986095249414513969490486315086584836983935888525081409739864562506514418041488520043474906683152344282103364581362194746472232806529637164800703588746487428269209545084014157905865783841128379591070616052116485261443612603494309304682107135437011601084948303132614583152802959529743432609882616549964887344073542922838599383710130886200923846135557768216305761840168978158024006561838316936243569727063182831012683894917811835593183472910492462804559360487214087424650160199564851131519626964598265967304506528474147670803874479306847181023547195711423362646083402813792124789847261260576082324298238422692107857482505846076516589942605445916103322624579701430792603236860571091231321091793544961071622989480802146357530411978775976151926990828946918330760672398245062580990833725018102678451244836827043556770025995391049519614069010291129956070958757260766119245907815716458368417769758622476224394363472911139487692919025779470667725630290362222326481806009778812529046279895242742420334841263118063484719806812399923686771785557013687179929341026167333347302035660176553105086650627629568015063925380960184375130259104154128648145485818509520076620791783234305772576839213839233789653304164243958642500261731651582089955747375849378531111623575430649116301465048581354088016487936597285730835920007308013859694617540042375730193103132813947102638399366873939564302321530815969626998061148720431912958496046160208545180230329981108338348572685507961667665996522128014400628178428630108340981207421849755672688895233207304463110187369767287847770309034378412192355755082077352676597791726824752691023576732001489128017428256037017567249172884242662517791899055383752200506859432028151219633917410260983812003506546015366042398105426247092173297114855146487752844230890552725687733110034581211124118436461004295934286127314163278123618544558680216582594484033682948499271444596689996077980015399291954406766848512347987105700376428650959421891876999991010280391098352539015129644709631444206721193843357215185551475250717583867369207546646410377295263939071783200534433994763711739064341629801295128928126295588117826872369222140010380295111486285553401057223377662554009914319944910252339297757402749785758135508469691053108890164948926120522471078923950406715364499561924152963514924676978543488193798888568722650321156071162124714197477289575442998294738588637253502844191122143912906828791958340637663846403621059015841821450224461065376286780349410038038022365784087262391353815994763238457348339995696831080168520894693735602571858467676986237984373284263284753079266270199737891316215720837287693919271693634455911629521468332601615571752827658566785676576479593455165462669088964166977229822824370695260188946219844575767911800449847185377897793459121249897385281665572213832743712201228192627922810006059362708524657065449926709152355589427635448431029858198328070650068862843053845528990295957359659354174964911385668597961840509890683080310757598599235952277762931009419558824957979124792853709186475679782465610461649577964266639855048745863208553779761313283475199633809010832338944051336855809174282078270928811211048039105863141017079020915120817989275224044225259454364138944849638631731090888494114487686408818587740636517110144071865382885654192277183954663093774656256406264891805889219625454510367743460454925618791473013707132125882894522509091715252200084535449779120397508841178314405861769071694154064916867826093281992227794181166677776217117213979216151852057437285912283324605302002903985597537057410438004998095281420633139302150669078816833592670089591743917975947859499003697277857570898313758372613205163930922537872095616291769563517288579961070251929706657053127494906915957688381035221312998934273460977429620020052905355629315459257461005990505596054565974926191700576664212567709076063804397908057466127554103942106456680446182129697105307605575386298859811308581499530926010134606153422788826791192052604160644186881069926973760884352010701670020628775209924067733189842135632091867410806910860717430419402725674795010739632597958170659241858759699066275922942598391519689611070360133616563091019172602982612623378878648333227636316446770024755503107709750721986276078127934503093578440861709573465253865396523919591542612062194863849760848030909991758988794704208968772892021701625443933372921445482053739022139807844700674330446218537528401970356793183190180138886488739147551436420401098563087612976770183546594848052888653278905658083874003457794673037140934843424946869577051715925447865493438286759505258061642484989340790706506200473234825543018384066922195019888407043697561174243729418761600877314875480845366050269716986543903327258239266095006627645726109068808105192789172720897087777119459136591063504332487613960300397940063640515264414216442467848546482164180825194268813148295641463736478965416340297766318404748803504464801493655277963778126462751834717078859591308768596552262012010342704461410684415575158538671392678053145134869728937298157307521562057267723545154901035328114036145210159870128177345938356465990566214250465026326945213317773124739601570900162597699788789350265522501206081380860126248557583748585353953449008019670560297258522147146035672159562471554129156057423701632852081872194832775892995746614449758704485996109644627283542679424162297368829106621924658565565630702449148411129358491294349183925122012809114679066941424538415426163155562930947035949064351229089143228983944079921809398243620732211267497708138957904052615011924490634726307595104530906115216135645120240653914743876408216083493857293877102725167056603269135054810644763439504979991593361311366386848758771830392000659757958889535771967221511475424739964081473479826648154311640796393751160592836310184427456602212982822632585094142804113597552125091425940046054547559175155622833068755154828917861931310760333854271321172056737200741289686082073297038237026920775580527487411173490866699563534801296350301837511791894487450083474895162340071004101086468403714052083263138810974343947791348662221997374153292038687342924703746008868247744413319902150481580103845360024224486175189746599428850810541984078919482481580156730869226082553846630146074277934558866718766812220513569434155851198774367432366069749065182415097647549409013251720595439801999037598893889530372544460269408648429049818685109212592041674781659032944203649440845122889247735955436576737162934797744048148275676625262415196955989158301552293806385225779555272082694993728783951984240802699234706395538480759799741297498913092787372200323681867056341553501645679479413494539952267476266898437975502598854956518928892579552651795990605102715546543835929159919982639716403919756957600094626507502846667748057988845489437674079166035088542520121065841290290243145385160391270540305690062647067116316754933279909440651322097681962019229580846362335311427341225262898779868982099368547943600914416231541782877971102534755683802142051527387166512088194923970376814043633014325710689906603081475016343881174628946732548160143947297333086108225941863301431740996389975614005378958686217093099179967539853968742628081836698264120054533990012344717317966247894039246165045850467554756571960759194120469940876790470039066850954374141556307292050037973062466765551202542019572108564526016479661546325141900353813456913939072423851175339849441241178028292517780531265150067744516552506524904584482256699235912162708654988423360555048019432451403184200120950348102659644307918174755159742006855533441908206334510546578884086414110462418459262643598609151299223318825371166186442419515071559374425738524262645838181702355814332486102918462186917956617794530339720536155253448631996114059728853200705779791653912269723742868576922655078712574714638002055830642817305390667467688704680491133229918075797385072328532577171230176743395820148952289745135064108314596195674470770199462484181796011443933342377714959367994320438248057494994902456329264193530318945297748466472680620673083411219841942075319811712378614273184824422769009544239252333228944036347003045122426468788113900226147974965269234670200868627220623931716683588673747713766142440258455292383844615652213985903336487101331590943856660131357463473767702579622747510263550036338267918769607440964159217415925470407262452753775694113812394027605531434286389267188785739475251708181339288271527130020477159584433780809056999092940069000664093428870755311183884492601184518123018112513653087172929609215927306865408495246309877218491628239491433888110074843059255745479161327289133348553031550474244042417751508750829036179116986673266238933208693537719312073682351042719262118386416468082172656110131960826425732844039301757427697692712501586144236177057916095899752293270335153839073469086413294560178881770709794674495401632051980764714465481994760852367379188479930579460482224683467751044166269100924071146098153808810919382817627234217595630004384620269748542190637373466667331439864234726127358388999832928653205736731325075461059676704548426416095389679184367052940548724101129448921447778536268307682828989132222947890118057999246047403214304350753006365307366302386514614173491096373372520117389251876233282371753850642771580998660521727721510900516798444975200567301959498819294878831284794816053445011032912027822034262207765849489603468978071964209494997607795847378529258232294866965310960185710583043280935838545263199495866591219333355635886094511412327224652111393422112727090094084292130058217052007452243800037685324699274778431497116997236181643366050346219929847263632270486699697781340701635056827403940525674324690708181359565726342373095449338681556049043829428813088446246755795496839652560221128525353781590913513463123385997047036843473965202784838118454357597710956256845393921088229107633489941657432998557554525264260818448647397567651715915401522435837320871496922048635259799537976396236485705413512134394853153836221989602072461617451573106387689226532490754659978844237476189325225516612040131997056100126419478226064824182745267381590253237365427116835206195959472984258564984608678824998704831207846822987898426616351373276812223238931819085774298353309123158448790890418727616113684191546410731276398399328687733246378209946008389505874310793885699320107945195199838443412846565816971768358278941153533643100460940578392040162548518445926640515591151468143826822515240102608438553904224126176907213722545717819961103307632960191250522296763660376998947306185379358844581882167904667317576578769349177947326703973717033806954211838192575082389023281609029213474599713844724517937005388217052145394607436627687487113611759912037882165829477997304741787839015060130898871396195832925797908548970274833949138490514142897455948048942299743699471715546249127795377883609168728097199592379545181185724749652083231361662208158997065172649043734354169348657492135128313036064958018355479342523490201003061935217226049557422525828132383646327815739494403426025566984428061623035525179911732621386210970987666588608141684849786078200373732359138228459547119709397035339099026361316073871358768865433976309565991323176420640967034416138076637021291107797438194510637315275705413592375768131243093962353947038625365115435640080175704310188358832856550736542728548964547220224161996040979627030887639343935083613174340147709860381535064708661412878556280318411650018868316498583999831257511649698723995170769409408823059127845068930748327086458675869547539491303763877196743493920274117649088480086699309848091620505893656184985225980676620777133756752139649388335933483490934049720255512095635362963346805594058755360006992809888879460783345108835081291859961415980709428958761138043080807912093666213077956783764398159999554561681095153064506973844863318537857836157545436446162319787154507442050394654330429267571336690932962186834006079083017958041470801882157243659767100797987123456598536568270192963876508422567150681818200382319553125071319536597812755647881966583144726792907395324398595209471342047719877987478335836161547658584959256753987198187977123643548909062922235168760776785725118648791332586759813433822741206032774181794423586671370239997694296112818805008714982730421665973994729061461792202555233919814544037947975577929743775813732173144298357186404859508482953442637137539765657418595269853967926754943730403954097858728720264441071352832566385048972094521324981305268787378057203587058303039993775388234131466765972104781606534661866853996166577005962884847868174532163477928330938540468003926800440969952155881579858642636698820076557749690113161347779041796255111379420660014465714138309991199971577109243729694620582581246672685212902613820497280948344110864481654736016856689013533586006454849741269121392333403091796910084698568654628675974003895410071837970331308646981171264565947373279759111844222753981467022096964367097560101589330705729832782206532631183289894193722416954657018943076149280819707997494550319424470483840653560099575170633749393199493637440270616919147026527370293387040643374951583469620434801651711918988878859331943408169506307083564054362972623009603883934099121339638165988060206617812339574258032860045848063849876953949505038205995581452710072131338509637407150695181246079769587206679986494392800146455252064523466769745975468974027139101466055823326273680382493025583520438381961523156248595099838681182986402306296576697281051804874771588616302957528568255972714820019320023855644313789447792217578140827358539201291307006050350930560738394959559090274871077508513577003019164102763082368984997268023494217083830937861933230036378600859516308620495684104228628645940442809120094597653259133046175866080386293478215344813590995212279475531712334520140323502181828912973265334582898019383354979010409335135327078727408187095983005339957162624239877092278176548966937900301881469787880583348997624822641608781291693751111977945305143311200257541526123978818731854113972520158107818480000204056329177958817642969182222508832968475248223148235941899228153996228926009929122073739131363239639711879261419369770983284245888377737042046822128343158318522911703834098788386898020574777580910028350257463114282721990553329819230637357834124272837281756637338330883914423912488604786759432586889768992721314526519593717927558071994514244197214547364256693455996721793173500910465127122810607903576173038810373832295150214283987006751799223446869788782538993334458816030456906530200297857340329078503594883933009537180258718824154770347765752732078787199533904535179594804390008478055307395003307942910346558782379249439563793377069527002488714213023504668375275384441715137292491821079427044193200610502865745449744678622222941195431186157670857880603484099496772335834951848064302981106954576811102817699064538482774884351207992086354304939004894573613453568105018924025518672519434011350114942735358228775028301404219719328691016313272792835887395655868643395384585267976582075821625084566348408326274107685273845761984956328568035622883776645746089464397810683803131545435042043464784011257738465909294686055520709478659870961805536021659467798110524578575604322925299222444995707908751342413437887518722058422126335504984649680321529208842761652755069409974854164243727279591124244640553150632345268912167640650139340975768303607562551628757782826365267689589784281663280027890136041523083517521632452645523580416057349031358058449167392621667245932332177353733546426804129597795624791772627428845834371354462177910632918692825718880864940862016369429935759439503109065183522765088565133398279706114978622678087526128920195561117265640113316340421136560990929386125474618016023645949682050570386019445129181776507263810261663217273275796950109572531022085074262757285812302337013585873713060744633924650354255518653529001811145538350847494013856537269897817478596836218960808937973594652705889216685184803508827334068358846935042768335737200584303848053335759781526391910524891811542092152053804417811679674587456635264929927543414265336141955607714707129064190621653427280053171686048200590458186267367113185756157815210823951342504597638655515979742315937788030697824585021534996822765040382622511004656890329065943307925874881283392445521480235820110676522551777869145536821756822169593801579842366037361498436698811593800291667925735115471299654207163616691611217440444313204723451911338818710699005005824411906214766832445609734764129674546023880186784467037067899995932926991837120006454254554763378749418768417196848152466475451121544192573820266591275706401098212468068064118835430927142598308905957777259285472891762379441878767589608558502145690956785714027539659847989914384892737148040602570439267588352144662694353664892023828774518028443315464410934117861476950854637063471832270075946159031681296848377135381523546994589498540619067048236726361241177162320407506264122823553450494101827583702733392861298563440737634724349441619619750059994205688745934062531733342104472104924008934107072496721055224399050342843619622354210944842512086003565870399469074609844002356791634215152734708997890773017047057612844621775870900928070744523279991040100664142241889017740119685656055070426376831413635078885462100331154938440310861188843826726203751767537055105975020724438306496098148051743800128737453720556112728938377753411430406082716394699840424143175157017735513749722803833661522265268708061696322160895065660083294189811711668310784521079730299893917720394793146266300093918193651060589598215370725656194781908008584624939221110800959057418822020280861631743124183243720161961990553230492879488608296369273488435265203309725444233958016413654326250749928005695142525930473805983049616404021285045480458324791573980154697562036381748306915409714319742021613461526766484691799000156990918885045341035301021738777482487603200608025707842065067475539798628055099883629933011593369188439261554178319167756487901380852868054294921055636432697219511763152034890218314688637328781650286574955732043741362491396758828209268401485923026838015411263854530633598497607616507348175228369153110851301439347585909453354661744167723044947834965035598796022118660843121130354654444918756415180477852654208642944290888196556053802315810625262333597854518787465212215993748111126216150585928967487277375452736243560206332982010492077104485253820609526925598234282492953768284092777787623041708019794684791288858865949091500258505350472469011674735420939268149578076024943052886567575856779775795818362841055699657319799011571013103905907877249829222944355367025553951754294252647243466745538690376111475413626401515466872525249412677711020711456276083032628264353002764964403130646407350999868555025838411551126761531447552476537512220607222395367653379887530599063372718802358518291851361941049138657701624031492492140168588125686090650523052656807437237884943512503438443474987661027123226916192786402245033213873927288927200633081634476509784962703573284290658762076195537745410762465242886884184242447651310453649352801888103639149379286965862058706627034533511973540194051388145545380482520673526628881864480882864176276072722585262795272139708063230656462665284128069785482444188537854918208474502132890599048122341581468756463169316754599826101253940580249762978712542068774394544265143328155163338467875547600274944001318658185353704068741060703885449091645435381469322583601834759855084651925126387853327486355896158102225217940159594085211552879345453205938105777422477393675007371208658349555235482487311728016239375322825617383159273647658307524656068892164809291181641377021855676428727052833642199876634335010368575989637472376608682073186148791747812339687052734368221822031648362201523990383979185786671555628449145433335390156343156570402432531326993213317926873452426348137800126947273474148259466722027810856139704576176387125264484113450067090357181459657909134991709765271771858675736800839792522659369447951565043754755553710774175087752398331372777328447589390149000522201970855410055206621847039812011236926314213076950737401677007634994592157281969055243874772197470690458542161257889138649151493752486631347413591171495743001707775769970988663796050253534593419896550919962676354562316997392302560955231570136318906567768220216897359129665386631579364920055331947254101036628449915105779564404103296292149785026519832441281250162962845462157520744819763745493933170642935983066944075801631603246779713734375874738550342342439685525874125207761586575691180406310319305446909427329912259124502737155698854136089740850102632843821135924904887925484901528442171229444488833897633671757796869174352774708271373110602491228062805790997886646735714148308930961893327974308871074531166589999248361866670305371765300899586673890974134955541982416005007777374770728187372533751087634084166726434639405791315504054065075715957367971160825998315427531549567105878321287833366915087414895409064635807127078485743517117632760789913605367489604621533618901577209996508013894789374977165135494173324617479271676238514349186695438579407449204028342472189761673458153021248531819080767644768504687012718674149101550897795238580585876944032573895697776255034462264570177748917704113381377635685136953044745221574114313388472503537820521624949409845414626727090617676237546111586221130920072403740814644156502913207436245635887217721960662133374191351220625148834027447151507125696050765411066186648549702040051132981663768353773404270207664978232654377114532580210032872610477300045944631579182083461973853048246623519523500314572603328228999714455839884036315567915595633130420218978065714915671130981153929476125781187087172053238033475022464602313844208802494210175766863192020750517059168197212684192770978856745342280696616045306977055724286434928387532661218645895190516374822872252063212403592557836599732112245755139250166948975811341446068013780318292659194888640035249246699414393937697168063134738168027783950837489109454593226809104999459016324519577432050701991428619044809205456205592185158608357664611763439994802330061436894470424557772726956578976999674166120706886567627096192695834730736859467768984852316009759341402528576888608242653388733797611891615427572393951020177329492139965911772689678349829184344724395470935198218945108166752709963883610409201536734792284051697133127644262358556944507430883099466899374704343491548609612384406682528515814808398184949832184659346343554143492900075945717639660460899529912525155202200528757685642309023843966706789726171130497995347609160971028841735418242324056193759164494291772332927870260109896305270978441839442947366809779669134961829449074429419508791357954953006972575660164421243927724830251199023420312195021874791156640622750161303643515739601285655062397206736856285178109265534334142994932693299784522668059583764109063213388173048972700261595046857276167427486409744114289600208366417104319048517049896152592346636649407843483752313508308672627607961298756619986474039525390526458569358973980980370725577140009541072297627683487927966301210999061522092792424732824458818072779714972903560904450980782170336134401746494378299307114995652688259408422778613004955061275876910890005743764639729204102867511557514897380207022309711555005429254790232522394773346150636465322681597988841479390962503283302935593359356404644678947535922760627357472525112027962995457479638093193397319450703537618005917858734860262602936497497212929534097360333939928759471381534228491855435469681316590787910105317802553827294179215010073956023710844932838958674251428124377433229337016106259727508587086081779097510483540570395744331841275699778570666183907468538352448637504169780547907419181747306898399517519191467675217665823486597408220000826270221842684224185118247214681088427884742381296835829579134903870411741431978103209139598460360738639587859248717489278466959050076674031690435856528930037221337758896659680981914785353346969164921043587829346984180902848586501047038893923361174803934831773768381504255395701457160495273917268611467553442728566489462660520384095230754451423443503598741892902780816828667530497311843857246889160411819168547816839014971731637850645728148048024933127293359449053298434226731761376768859551284689608707958152855582491618885482870750303884648329210691073546273168705155209123139493689032029379467855058074007694158637855921017421832838981563517766913185002614485206338298701512700588518905441629050697904575624458362599893692619651507615475589910596227569987255329003638056312238383045855083855273222645151553520191053688804537813087684690568937976909780892858795857521364709686917364470598612539871117384117256267793964845665421295345923553246950631041495304202937030072070062674111235028073266384052363243107180517711688642163944081828367853458552533915842242098916420557673411426340523437773654723321933303435517632469184568448998450338108377668426280121677231196160238810515189201249199936394454044730779709383370661223608023910005414169744040345039091031741590864709908661826586446658963028190114530469514419278910933712214299199059092842582628680699678941789554127809244004348526112760465274067145485183683108886569187115180847659149685366566819470866320963900330542941254228106651604089232634909602196490312901420608302356149227106860216544660244744458766009167545540490300667812390304246719954365133812062834943323350938793473078633009902294857080248656112908715150062462920695484127613351733819335152579585119097138396348025411300915960148926059820409270751466003724723037278248436527471049768054766545436033014259086842192879121094746727330943640645118757510212762035607569301339640636737164713476569556465918312026181362773228758005403139001686259630683366589751665599372944762983756839470052993315146815672972725385160347815207093327380403927237538419094709937434304820562037360853055167442999893474522907915027119255521930430999414400060415256276859672815603640149274675425805537989721630249294629027799401146818270136585865395607997100866874368202667396046768057028334025764526152736303051890881680257444146275911607844758458485117183794127904426780991272051339972623144309938787666841695354396963444119647550177857426425878718919613435619714904964750728081946122305695594288210027808851869620042361406017789575434757311793390829226683841550219971445199719918109013563104191371316588443483255326722324563942962088862776695979336814350451354455537217377534343526347686677177712558351631336111533470419120590816437594238043369383628478413530156118005260108627580329225663698107406468392952088477185224525419090276087893562817788015718082677555722828628308151947217141169822339225760772014968254834504548060624322243155802954582138206615025204025185633409438929784679494275654705926522623746378068337175819417734691823861152575031873721869843245314760518185913669411841952552865457775864730521781362851076618436138523618107398498268579258727207161667005159958626828775506748180205418251410226032897954374304215444167732914392039458757268568986594354768249064963776916230186950944558598808839019739833749557465265520011883453919258953433575955493692248097873916562755615358146110477949458118054817685828413231758028414240600771954325510439295839425026311392693789969333481135184664641247227375656230362463194625521382613011167562557531131653556244648026125972818672967572896176719474707447932123326663330405465735831753578436062918011467216459376514172665869203441161970272695701655551931267428183469376159032509655928367160927294238053433745462041000480124937139183049170909563470530750032881521960660051251659417618090140076663535034496607197024116875415245106070403737707979961489571011140208831728403341283154650236452922170536373507622851485779685643989983552142865587455394976882658153852104038373326839496807566946141384089959994764840958856943672176409275161421606330063380190843506045284521566309441173092344618230727520163503069405496533325759028068085813744089290416663274838632999525233383519154219931674439073798182414953598331952406149264954506354970884202678108823853367217801937375707108401822432858566234546877957358531383150899287045931162186147913381947042279598720356296888316255679854820005151905263488030081514039186667041675800351785389590366243022767591639831304436525702684848807210969633445753723370904284998936069840777383269128863941286603313052119263771510178360715582314074740097507086321100247386384048081793373740138010523134856523723512003245621704605563513629201298262114533211991214834806499465477778574404166968956973369062163930715154223681685547918105257230997246386820509767116351063185766080862292752042551376212976416885025343240911894561404237571837424229295043881808196728774828184110406574184401005596613619657585911526145939340163078557718024749509963888051444342408961523732471447929086007944539705730740053337916314052221353861123989154759951171195939774551490582304975076597243846670607555903639326579184494396160844949251387714245400896256681980970517597340694426222134022767564400898107005912157019252401650134016369760452091626988220850078883445326926986851409002124957398183428687546340745325038673534172656944544268394813870725973922659905427972466747064201845302614353685369022815638014437228052439593279362854098964980389993348631468968187701973060563265384632493141243493885734720067252129006649654775225228761231925363569579526613239193324299938874078244708251466572970999813724835630568227151759288140016001067459356531791345397124710990072687372267978591177287600470869343031304932793618218154593287321645230162354737796348333775948265496447787689906029634501739813664366572871486298222595631979687498831701285929848125848387214200537854966606365516700886375510057015802160930527766263913934917386678356505107660651839792550639254873867784937579767366821165808830894854294947579837712598372754516168892879018347804588625982431634465964031911134789344654697765066424843649033237418557269569541582546386383156377832702625103592790986685639840745823570404748884725098133329040672323856892701039466968144619419285396282375137354087669198994491507232620870785448312296342754990192166485872868217888367043841545949178126712598858088370086773414864213433877510593990192702895367791941905697092068874262087327729061682847865268807489031827018115646092482916356444453187439656413413776760444194593295368590499315205833045459680279193459475449307165203120369495219520809250595396659760127907999154941304958536108945894551239780009098552603588011065125489550908567639395125128173543550996103818582239415011361341752792443623464304145378201371340694034197173564484724688756281925572372059383655348686026687683125559710499236976165958479112416891949987141208169488004171428653335064935112103748479401820844157988639518700932241410919542399700151581304958390859080442718470470034091790872968596728400438516747172050415588316481879297688306010677654458035299875821480146666466438462786081332787457055942507467348169775190956962171015862960240509607064616094419192037029442311579042251265170376603650073338338908542092599995307596160723489679463758671020658734706649368495940780791194876790184257422497249100730338854535672565836060457602177531855478480095052393004734722195404226218363443120610975063135121325370715598629682005650301045245629141845105514954183446345870508609619630912485920661996804262193221681716859196188042167427738664197227509586789463301097109207396647153909167778223681436886041273544643123313769574990110420352873204695551043817691268947609587421406819484771150129969008810088541253267024478872021771494909526181564302026728715781265927413188560296072175153138277993555587881277741256348624978626043973814060105972450550797487995798650389004392082335141884721844167544082300897386808160096399484089557459893579911344960004750871260273179885797238603346077054967669581457037078460733514901446153573413713783371185244798109579888200956977583389862443041243668357931632312935474569061325248271817871679868324597848136079592472733351587544386026951226616653810222966064555864506853937714609699850354306265502796073283948063780790194306907668445999089130579605922439038433599618925915117710504374135946829409247602719568034435228477468374026543590149187551664645896610537388724741211415088138233819753445315918935068250661915326526949589702091484498847772670972025589513065721677307026618974932114221877835250308500457157111232657289356436881921087741124606807224677781656184932773379012587742150906859859985234750184050169070099701703498940249678608241549974542781496566315315431989957392556074054871761529169112479508899653799747991896365999838796569024616586682311922348740067472901725669254574477018278937330441341611366899608682068435168503257197902484699751583646328288608577104884978415783575429249028672149886440843957461248645972471472619060417652759701371289221581481256811555035241838536647934409722202406434764358248583949123361478287423828886721307729127967042409704217221068493814223094430661335802429367368812070821981875766584326095434446917754870891461539592584906309062715888204208917799048887460913933524835893246078047110905937925879423574880668156928953041620243871699513126365976893209868151374496801463758518828695476289148704816960394285642973800680607266033884342019659450514499062307248434834356135232159630316098151543705569479030109179857721694885825997103753745871342795700678785648353456391464402867715553934426292850222657111533868394299265090693452187444480278243787929189304749793880914636292588144072588526462619633333502373782815521717512432784643445382167936348205273177531663844126075927702888988736031588591418448026451575312516757700778455449647635283814749183783255713096545579322435415280352790301226223210921895654966636406534886109543303784660839676413815164582377424023882099479949557761979582505216798333950026469842571391573312847842374081429592288546834146810578999972442902319738262427400319347776083529967984165069173141588100995083214661844404592260606760579282675673751063595708132854361566531592546630556733237262427186239266140745774873723750761163474174529173486087469930504385943347302918112059044430676110855732017583398022915121163873988738842882531509671063459225505760557919538430975963651605796022692498160534424576387423945035144671593861244646606443142946599562994073548721874399419230926634725998037200804950228201098643922586062170264251271943535142690630511611866562752983269678287088368001194573916246349211529356355846363969462301982395561643706274801666515345459797128503791100809219112656396054377191844178349822184444202453728180621774369597756664220889459778686966310524717118335251218067638705735511051324648142735747583890459282607503178924162473095144657930917373353615659216507483143576191326849454781459099411075321555008308757037940515717280235244018694038335808757086355596188338805077747859147939236533860575749977334401694609889657053217613025679238090009439279476738353085821175633735799938653526933826358504627639045708234289500734287376548223274884645307590044506346633398823513018216143343465873492144583007921944990726371094232612932132260434240884650886213123735762384836340465424041437740993759977682539156468349790463717728916547353975487674258892596601060800287017451793526237624685775109187476401188804823442441390318151838066698231979443945938607212842074061441513723268843837699340201621163867053856183026860085246552015893722371194673781895550977619867570394740940763561589767111557650982999093019039805684248204399502832255669946445057469301859354243992282553510739873160416547800062597163404172652554438735623460021951966583559982624061716490203623301787966126268441492509364143537406439883407762568835146119242524385724395985450322180162303903297662821850879486901761644168022494476283546163303024973662857812901458773354819211842515401592469173570323235666326341451632819843366654325192831689808715132268217472917233174404914360008224892274964211170082503703325289587951207607695754416640785148697942501841273094860448063444183097301324471700956270181916295663759736818949511796486370069577285274702374180596469982096910152209820579291102263321463732921501816073782917148959666230922473497458752050170857872530459785417637588639065620873046880969840289845742275523145269843760948691915367699957205254041322552752356498744510203028624811056863105278107215504373730588666239229946043512662696891761693735889275682866515549867820174812153987145706877035018664090962617708691228485329744535964705329386205380685870407530729499344762557582957551993057850233879996749389638125827772348296729166356553048625622185820616367316673063795058361164443717023200746255171700764637564777309650635940622464242642635901685435212573608684108330757364219233292520894120354917765670825139899861573592471459347768022493443287196227697929256903722422916496561925866543821649756933752008025608609173207774233669383323065757908550456771010030605819249952483673131878104083882341668767016429501131551667599073143944659186777515826772601094725886125919171169438864420285711097848331154657793931066744562648402329335042451108258278807223395267278216783233093944940377839763768016922468632654633097784505416216227237609349796418130900647587540771547483591882960377736284800329723294765600815442794646403950560146190151519195201427308586252568514363917528336623475518041808167306122362063114991434895965046666602111118468269275146108651121260613792226034166593931199605769652717900569624576104450906858577837296186689161964132676109771717189487335569312384008005797471392705805118015347106790298509591701118210906904577314858096425884829821128940438400450913551597052587397739131079448396083958919671683253105876109225833152987058151690034506665253400196782228580334607780019393501564221641114786455318458731336532674586387975189879559339936661207112953748858380876486717055979506952152042444349269817817747682851630110578045738684941809709422170940172183969071667532265676024618274324802620129909785596613955504540813937311331107137745329419653898828236647443148145894385371432155199094913275428660642584305547774265087072822567969635659633649490393669521408915128778682947320509913516473325519368623099285016907969077710826449154211426547266591596491006524091835721734445877999671999645326142947706479308874311144340278668996823889637714507638408777538124113945039695582597870301431876654354989826379678740847582398979070185956844041628371375349337853581355684370829246435296799845547772984385776277945309290588058451925751949447644029510622756540179562649604555178996320970070099130080435348095850387390287087388547743586952918721116337314539350532723704016570725813423054630929244037562842362886385516243338095193363800964674002507694555911276731838872857987394729616129627126416962412471312636767289783813714613818833946086721037181461937241261713853373202331733300124988888954736009737434198131156900641521377599087177744970242739824423964325147425159793289545794862364646542333121697425730407968262196860968509106323162736593604620406160662024924414792583896016806232276771379083735738558412347007842759120852265708500474703296718318177872045361750648872809023876331242577629472415142453329844738018779624292944720426067714482849488407239136658783044948026901729559634494050266542356862696776559345464908889643629823171883584672307024180113079847251323227740351798037251795096036646844841612216738736328877192034136450692951438147566078164210665529403666867001410843267355229586947564284168817598282854321230484457665475001465033242202945845346295871387193385363894513210238803739654048807701467418084277220062544290117305993367937936148060499655675313893711164295832816886548513481814491471720057492893895213863425657952592488013487347502063596879501421770509999497152102745839024614958317185563345810341599137272121204598012884459592866299114051338145879620576078304787304158555720562509770688323894038482910673245393979529477036819647925185959837998143998534721236453935670376161776927107687411802741665471073868897623365255309111989203059615990674287189321919010656708424350520586767280172048366028457940764593938340804520837438990475227328202031547590708600730284806206912227239004703807995125531747675837668504144817918120955669595042188424211818461673209567449317662183626500491229416420265637622486972052621939667206340969770408802725042988716453172792986925274727935080919986195559170283004960792558993589256437580933121075888396363922955779275645626537254413459522831649231564626177392529398713999751988779352275964019050243530738593402270464620106400643826318262608634687739619068241600045504116740759667604954551169081445814993883646531375285361382340120006027737096393771124908327256428375484426453967599335284391276052405141929769554021498724450259308966779911345694235925388550461849141423458478743719982668253620994354368106544633335579140197488907383235433106942848834674129003721547690793934911492653762674407875997597024873989465091780336910664770500984991861511932088897768910179996152842515594912854798124589038468958189032049198538359863223617441994914579622693955173129342304976280023701039709793429268483663136302326900554646153519452712810290176845436742557635518181135627711228852445889586265886998767642806456958264469361487557618939538490212465524615600042267158833447532004879506244531771406109542571595388326303774566801627245882038789061019909945691335734418016924412982280081456967278108493945286493992098057276103274553827790859418615880911109953651015364471849917589611086276468004743854000133501374157133758435542256831810766063719437406472321010766950231666189702334033164734535255034066785593342666617929880172640475935367805747629539887572965389614934626779949215667466296430735828548684695477210458176790031665656364138183757338692875491958792034137813968651908486604335988730615685381847993295113267921636922373982555118424623042899389325369257434027727157098298409363855790234592059310163906156618671736303128468304556776134106631077625115817858858791386478870468113459725257990075374970247656793447577803139457017113322469175572017629884004910908445384199059001959429879400648582967771931213847375175780247561511861203275235224964439557427433738414504094740296342193793736216080402428074918436781584914447616007293233295561297971346986606046517031248951501434856938427847707904044119605766590397397484689161333564166839462288254914315344816525704285706221900609869399061173814314323503044429559377289469137248901955637865800805355575802585391652431578250704091890333333866309506382992961688917702762869331679723085091557897191466185665093743764755398111710162925367957939660615777431650870805054435831536180971004564701873062430739879679008117946175993520696489460830743324847879577984103355162872982928357392615972141827297092297561682225032644591116318119224347763232104461755727849659986103264044988885401872736673879295365406873600515255493636022902877618003555001531927406394500280360083876140567030371921649158624961437714706804828591654294407358457160506461634968985543819710112210126161595451342863230714212019146838070203325708572529872875096921503244371444332388118612569990687422184345767837724495563692402872514566458027988636652888711978639706803392256138625159719681761383423872625159441323154456102654959786785888976225860762183956131041910242662653216205032380931735284517996880582530774274914695104643751984898995169505149976571882637121743730694241714359097062736211410403568880982707081418745693357923538543345136554918744896205544939922787058281256187389607886972467870010134914352481416152526712962706965371604945369252609777472432106160222981723602820524549728587910684705880516032627261394364531870724700542687268914495623496590291907693856279424981815074774839249604334623732942697966202183468842373127071533630161238550992249931936888046719314606798592822661614583076938736875052508756597516037009501054891163858917328327588444284822406974481445023333897348695248594621166275043579264250621771364753430399600199663203650856321621093615209030099702045520564349007450360065309537930881911803965381018297568718124214891768441430221268939123243018386561213523954768396973336216357847452228289059316868376686981913663035024176359026106345211652926171274501702539995821487598515607709332397990657155813498845231627465051367784866870425914462345732961891507688046334231573187926564919048345516357892239985220631984177864047662798445621029599112718636186884110074690833155541222537703440249218126927323857514377009832348914779241809781895670944279387475340139896043432173088457276025799409685011179932069600022144505118779223479470235679100433308772231303820259855146934028662311671223094541150261894842590051523581295876413366118984388052879339505482328404198004676807998412993705505926580170980604815590627937883109908683130535138472559957295865821901539988785045150264093331915687305345436095634597516217080619071691147796839680765835850268660889791478981038625503664442907400633614815026310276598245352770363901001830811895554413882372789984471093470497140273375613266150671341606152179542225002143197446056284364463108582742513344316805472767460831336322918602709749459874403167508133080317360871963526754184543208071462338766137116661452679912301332585490240955367790142603489675390340892926022539057353092987264010994843966156854835767804586999714959889755851797841172475253121733482580931375007458402358656003845372580714673686312618165766722583225191915857167678064718772737735745253198180081608240227182198188308374973583002323979753744078179961495080567551704578046038698847946268179815785634281455011456950364539664236240419417404765274603263437039591995489404149414166483506153663431303015156597505231167409454135568562724757209250844025836062885901747187819751324546691873169307960429032122526599782595323692257571089021539259313471567145844464920909279932071387593491138560970398481787214181306088155853824823925997636732860403215620796048348390893894136180816526283680453941026379921887103097046550561920391628262109995676521486643953962252797097429491267853691946256867176551249304621744583264550612389261267473820983559827100069729004782317549495354296467598863592425447998874392997279528652926788705675301974504802049947866020738034651839723762163054077036582713560857352254942764395612602410657251790585295451142101444447994672133483160530550398325003939591743311899273457803662383586271698222587243676687083793034668833431992103062923852201706385358600287530742269636151531059979984488702368212834292041940325958520423121131409995160175938027592739321594373112894010281350864140055677301950335344590964624679795100226894291062087303523892879812397300170660534601358714552317427497055583697349642028086671480166016932698791946638162842342877976913004395844298738231898622575806602734899986513980484504289616728152421923035415219951574858313018716456903378310566338801911829258140221153119181303638168281903937370618066270992676798740672706156153958970966659090833911945439636046723313876470626034380554193534530292923291370669460086545685691875429691386149919535211210091576231821806923196108363790558426875630263050435344302913736901460505301961813953513990149687791934804915224165985026862813115577885900414955965140517847336896077797051363815559267528876261796747285931275023143322879707632465140734752757092618845920600204245991713465317993738827461489296141322634539907353561650923192489624551158966520000544089756361364705295137082480204343054070567892645560727879302440841501061573805613323130522552458325855998587571454335535661021155806462128821793381487448389955230027287806786264326591835880995664010248084423566350567074692846932707292229467263164357359744312825203297540149776494730812533855728119722181501373525366408735200600156510573833774990393964485000921144453109099755057169046264458017147112155592140326831795278208686084829744128340992681755678251536904852973945415368688841953941003919946348079365807456658285093696815497645632254225204663608698171042371337904916434337751936211798956219254290950880351673835171872824615610648306252233204695485988228932463309994666675640488883948495080908573238738357094746736529749611013063859273493991706094202563477286078091772297466764155476299463749081478296221401548907678126011987936978304549321168191963776825948437744067023436187773195069505490662608595682736363855890465676725219181598151854258284653592366895319694982790460107045685638769480324392830196019989355992456953370751106050659277991906057438247528966558280149890778235614224508277771898033712066676203348173003518881699386952810321754967099367324813124370389006105044138502583832330490763210282746539548106752386859136302919815456760865551959668454729781011683788904648482127399193709283315067305937633474030712565247507793411110736906265006894357816360817281521928353993045036111740785159847488550711373926615369932856752918175523863228499066543059428163930772810592299511868702595442860374008843808310332369712237107555504090793615976350373241806469176305053709600514848138810154753006655841462024255573776970253643290692499266568005291799963326301092672251528000091401653681123794377918140235502759077899652461897410281004564251866484022298995736927388679837426420833171928819654261722197858501894517867219929549575930165171745227278682951559501027517770087971149208558143451834238904493163238100779124964815576661914949726809748497646959151607295387754802027287758320990541830517645696388785829807945135310629769098341271908814782328622575983474760700827892528427851116853462328743962437944684968907958163251566949575403354291760435316837905227502536545331983608372592269065904213339288716474727905595670021271794620757911839543859909082208658854795099166118587042903341741518042777359119900036582397070660446496985171931483288133403764873658643829637762628396113360926892182617777285115929231073260794842630135850749987289330150060723575241081235102515911824304809745549415375842427584818702871999948805884803469807041808852790198759593061404465341048918882223321522489076617740498137267620752293623852402796070938910275204481860346560762995580468612893273670165829715920830692917738721004312936766812180721519137611326417086598066618782724835243414480162085848779355920881762572332901851063635916400791493490883033336323326903760152499830996384087949291658191904832921742750305468654978969806709223284951804332999421666831977501156420820946825135268199671433286357753767111803721522945865895050086881214759244611681973204514186054725616300365138575437841220999934496278692629795475781709238385600360898485182033981841556739432661160809508279687430194361407968091472437284019027358450583051289859820050571942397309288325992503958686133694447387405296439502704810042923816654223367070481576181242395319929393417988199475938103876848639619008246778135374922000431553503865450029090722938131621001934921477938622732621091632363181684511830524948048021053449078264507360037521353119240247992162357171389641949720323405571091986185231864587389176071218483786509793023672207002760361142061797409825622353195627914340811179441732275800540445822177512085954231603114502903116945381413103262865480107382837610862186774260960136233937440645624835866119784491423339002500278277030192385946005063613724000039814879951295267848404107446075654977664733458363605664669728080966039528261892056652765795564409363893993072778802880479919038567071690808117160581795597454846900718573665373475238801469471871608216105649689618571569272492823731491186266214406645577831853532658508613832079154342186026889843087557272900414673933253250753254136295445168530509475575933802433619102969862308160490761131643148618452496075016964330185773067626020854900516721579380820414397972429510829865366942531730897887216471731148118098021631877640198756059643751428053191758989433474542324421980569565654179323753434253557052690843681726889956984808193857222175323420489567551044620069722193107204156669613719575691154766229517306896952163781563049696938484949263148311190862122898717978122042097921268945833688177211415195843988711906456534199618845341295234521283993395782657887319719340318007128488097065379648538958891900591020820140858007282822631710340344563837283440294171916015955884906141690838890807309036114483227116935170213593048559977202385953768354464415622223509114135934983283426564399959838063136515693656131473056339108469171958401586734866494094861491028967855041352670723304008534646014064551866760986284378182143483253489720450599827760563924601264266991388118108558033791124039535210060122274666893983097287967230770719283192447909835503084683782952712564537351018256162293223224996740736003935336157467129789512510164833725499595573719207934903386434895012320924893106418544776401829513805081217257903765277794143346749779743036429867000181363510094182756996481369825014516643470413029426241257500641285463346321118050701394946080685994776648168533030733915728718653415045223594365246436347563541511147507733707714067195560783813115963127977495032105408418377372050557549548860883451608908795010617585468679095249094368459852651456253357437237530890225385996935646980980550162302989517023402873335127470431831814878955771222811144051691119056113456924074883206507302412824466064503970850372015147790885066729392841323186396321528289546989634635075421429187003258779782904527249389045500066835081554034032130094423520722065329328581857576715438071660497546547051293850571288123032268092932955872459983772905156987685711653097872365671289770744135928936858646430445819631444031794247497237646042685964299406687375716084447617759761929923910876262368214201055397822911418227959484562305264004156740746262351639487383079373161513840205307683015453191200151431119915238570466232554648296005860098360554382925547490880549847511486517611585229044088658404527144909637938597738943332882050551009651305721564348805716908932917575869579728314907247778839623229059023021007080867551863856544920235203264184549987020685358515803375950677712677938694850670108806160456534571366585083480986025061252138626485372860741352304513944018938027333989778887919865804839208786372876816407977040925292650384959970732884087265886338766133290687376789448236155158258097697146438735431894478056533458329713967970240297646830894664757757397318096218730661896045714854046849238275169875526146131502663891815408906933090636968619228996376439646120172808060589388056020658319870010959238147508232554042754275608543731972495284808478566599008678253975408771394813592721735396949271906680111935344934434956791387568889679638128642754591751935974192265502343380810469147608637948081838650361438188255976598983080856927215042161300323086300585027843562319942425506538226645495055971757412716417764980260408065253308002029206119022900450741469543359054181424810253620939861855505445666523043127237139430423963398829282639195428189983045380453495506532844822094920583966691559074897130730699659503343882855124077461218632571528628418658914263718535132545836874373814119346737419534491255756547072503137943235857703065376029105910433311035273652670654150818209155799108245303085812007952318372018513423419271168738248851258507303684219858845711703259707552434437896411330439318582091280792265702796356111062686725687804421539025247909802871066500954988482863249504804221216349014866422026639912938741722205021603346731058850743986760009476485957924048622501874630110101848733963919435675874467839627384683530165363797437132184174593586240040690408511441852198001134164730829083569937005396959480597132761771895873454662061008164814479767330076142002096855932043896539226313373223814733831482279584089298222539427577781796826956504296663717832591153361990960679468763309202630092122059282156540894635064887543387247728770246624111462880412509965683752680121837311025743089925377554457311680644668256040487193696881663598137237891730501261582802899260872973877918048585173792726254366076574702094247117409350535782089179919904604332033230250285386300495287887837693667355154480534068068692020034827625210619415697943691430664785672375926852113572757845092437934889754818082146941710089309560957513098608967121564914119009843799177686574141227161511551158742719127283409402840786587949329436835241986436584016096054494755710526504131752857328208504852144036190525172420499277413619192200110606915715440294506090611887103999306164091559527523575173104195525242056905831164665796231856255585629946044457515405083694068418513776909266333014941062443149295490021848299477421050809918432256191946748103442900705369640749523229901477794893718401766636495964744647893554470761674364222883214304021348522778538684741661701307162969782073274556203665297719805557824971952650423998428680250535268550826781217916562403121854515578148794054843878452521396974472521374726650217631326283064817898435906697367532418976943136894971869390813293129627123073167919261512183892839844298500667022909823152634513591255371730263601904982893730569478967178670185481602346630631543754419155067074450622250302577912960091421846225325591656354605715686229115489281598659190878680647073661261721258484553576814719086810993303436593728789631589585169756865456261981173969548585708824599501998681652366630719829831944963551817493954707991917958692469987800270227819020417658843454963203090742053789129344393061669124657019219711256639582439190990876259574836846238200578450855012097373324029173620071107653603167365952866576969215631997273070575439097502869402407654613984226173041518364725661732432771224114961165151735620924440109191179074914098837869909357288189517051358678754957479303141534512974075238806825220105339074005503889151008134757286085429608297981603497477803247697341441727954749206159340469820727263689196199510654845572343191797851754522553122782364018253324697433872894790208849334283739740058580936165341769967654807135690584355839826055672222754863464218777766318984969779452483941139301199810526292836546549912077272307420515714148990729966063424672204173062054393035377188733292397893159434516967701675368018060033490763148079251620319802650998253327767129724002227435232293975927708020157497695630449183814681308945788880394816079970436791298941146372640899613671106855112472969361047501410670511488668644737750394216739883547750066518401873281169161831796926720219244953919218253180039586364591410452110674826847776265537827356393074576729282714056285886117133234808015972937095845778116858553855399806460159376992786958594318354081415113885857391899510004873194908624079694927196863944958024953159888063611880181794598667738932511095017297028780002666329109196639872344919710902666232037060732039619928235511897943619527530745136904483376691036978834950465919863003499527997197078583131974513600368116523365191037873624179167622760796036505854513670271155415318726400628420598070252551342959287041247017928400576527210760767925600174793056777733762294212682765186484715713739356244932066211946867468366726828395060042766138176164785863221207837060562075994168175915846767870424688212128111626522513381060099796213749788018268866004606242133374612060935978879457257270245464256025407322293953373440030867787669071439204067058121839433523501098557008754985201760630763349999938078617389360545541103464672024565367984813034358826342652280490761446587376467305405615784694414351861449058322920691369386454372415522420483773638147535035605892671040984489728373030198855634763629905482953476172722553613292658430204684327214569338086991645052326378907634510793756095232513906707820794193271552615462390685128708367099152875425291132953878580108666904743942628785030405998910958882014736366080477593653944877931143830193321505971627175228293875318338857789795215522201146731494109328504162464673930160452220682198325554729337304538928758332860021511830783919043877297053163709290051057310156001772311632877393995219528010167943714371890424979101833596162878164278194447145283305056183792291807888867269446252298545597541377966643331714856209925159605490045389218543447482918485029818055628178053931636328279863191134937129640150821270154252055229364275786234698663059625205774580427397738607297593532823806504300255761797841615326286996672951938935167907224952780407364774344147045528298547568579699659774059962851668858329420435810783931419448754268101032783176075978483624141704111130692628371150550734438073560728733959562070382509288134583057607891702540031460144628505471967823344996439735492952318690347890145778064917415216516033780161905965589102545802941326342047690251403949965751696501972166934126116974852979884898351541010676159412144766107841693037471818124602430344157512037652164960960710218026425436135633366693809793349273459619801155023751111518581389029669725888797090058219479979871205970140517978281216356258601024849805031289354492282721929726125613837579381889892534870520872114377048004673998924941636058086958792737080152819903348234278204698885721124535694943358660225787340627344981938643551803628567950840423932996905556012104498593772553734441364954937810107408020263561921868449549863608395404660069338895673138317299141147116075760361999821226700529535001851585413267263167368245921650016900874117222986568950800312420868547893560962473893669813772680592679762816980642686418563312319064554609906333213848260895826864684070321726831778983353371023382855097318417391220907171245627565339054165098871535788351840805691601220617402556448147672774945409901947287216557948328280672841603744076780381738057585730790520509543503535062219677640400988272895601202528420417210254820250349841374654419553241241308406228392726116227926286109589836818390413045227055931867456553975362214601823206703256910010167932086678858358246151650523964047792163359351383559917264371579493858574428004940762042142899834685541679191323500396586635087685384902621809032500542138617039142370539156554774060204535891738913022709251931709356373278493334348501719596026209609265086125695214114806141739347428954354969415394105864975529060451209831466879235186012050203485044244063923349964708277364963001043351157257908317881829792759679034065242235611259783894521370255839632224035284745726513202058717912894143887962392865108131736969481195234222627530608483759351919633901079507240364829526843142636574574313443560839114655579511616147801160819193970323857601029555879249687764490424010485597601175656815390253959600765731504607830720820414623041026689335227954024416354359959492737536179848081394321978550300696558764300953431081567065989653237335928742647170452672365197805287159536189371997989669235336736741798305416830838210159712871885193188175410783344102870057258012135445478056744496716177493198177352866854186941263173050905019913959923360738584510532295902245083408193288508035109509450422930230184210837515272263559429230995389517084836416876456358463318745378355942788712455894689246139484664627513097569944066877295278791222559064690289302768384127059040230677176745503284777458614925328129570618728693644014669573165928042075365532611454245411491703184735427548360673301693869352376925758325705791831381113923992194224975010138321190795286326004262756380435764634179919749343299828557216865061880338100659628793360142135882777422616941197723280026295999606064894565578629969090817304619337407470295115190601332597659871607989062016817343898993283854101054377588275409241183162123936671321598723172356090180087903394804341312166448233447428908117749359797832133252811226276630383818660219720830957837268960940474345528301423353861322991836856511520490917782873518933771096320293702983966032533727937125230937852991626481678198665616025139130024309647870919901092031569970539895169195462185823925480391300082497781592756180337543862880974084295289646244753615997397602143864871221492528134314978498571847074858286883046133528444233051386951229803331419663442861381756528481519307331003070200117021469316622977171780792159584570355821223109350386904967064909148883750411891490221817695334695403748190493209079727581035547992942732659326944615513813596594331744285505126865451056393644164123829374641912050356726209003844840914162828036352179426388969513466149267090177040139509614391845655229797097259749601833587142920814934653130601417080690261712330887996132784417360081478579832682656067030335297228134770666941411997266125171000580517266327202739882271071607586370458176605997975110784050684047158785310444210765141970948014905795532391911080750271220439331564000548752780601584093503856783630595590908529962713702510863985392210528007039941750957342231469849279601717763659811239334764877204683193200836338250604147107259945387022078796688575500594997414688670084641310361693118237372397735266150859390773276782779013151279945422735514763938350954484273523295651713672598338054827895360387426350136584649170406350951980954133502449581812891969652741298087003784422834120998174148830325422837367506005225900350727993614504845543688736375642073895355317408668521749398283413557730170843243465183620200237557172458896545274293608202059610399870827452089791356113750136166818645166438299506878129379704394015029611294931978493749232030218176244665539577236826186792445856167149459922517721504976277785916427236203799099136810436828988264862357706103453966424270497670039826663217004725853354569608450473178126079595075086394379067989309836776856402907253039424607484837270620884423198813909260333425358238133120577257885330547926336999320548517737155657817339104752999817101486050544257953222348867288445723688612552593777870889669549444061742832042957220525777846731670229400501805059619187483539503003374886988649636010306718022916293974337667493815925488452992060557356848323177026096121233189491096942104306562642169123258840822867149189876635308904833005451687314235047029532917037054956938848206070649569826532485805162893469630437089981829242647181611663732154423011870656344597074235293900155890980905196204165457779826998727024251242816152031291475034955694748430694041629780149542438198101041773793168468050410070660360995649422772184100855652735077969855239433594551717504609326478366076819744266524421539534900991390031348638054639131285308458121857241806310639603184202296430103674486381214843934490323352953462454227786741182563188839484963157855307206710477023910178533121259373987758564436653344949663213395609950422629551696693203859285128443424460665544272204226561029750360534347428549992560179161581876831077540542097073857651681408930542980844497382306618186011316905264625231107063702648713718534776128413373092356809572681693335443248925147537381095979315213850195030724466230879102681905917805408228788208817035079015835323108291147708323016811104199468685371978109827895184008515624623116587037221620428051709401989995979702724581676720309214099003701059255104098258044531171649092200841724933124520950357516106530173387905708403265618940161211207431642364733026319045674399461128215258945218423287924889860423530886294377375725112333952615640366729091573290895374749384804921723586860979708236896217354762915802131212457696915636011059471904310599016030023898380259575695872474969535543857996916141198333142281910962496268042323171120837956317747812052916156177426102511829718510089787559676147661432241819904176518992286196564475917136995642884313680108589694236866319909299117640737640942717163689265550915889251380002178205926398444356392334102083608943694276512924254407940040647482570353351827650455850893436317839329751862294661290124744917878894584238240366205361095456327225664904637392894670647149735878464045306648047520361567045932549193773164706213412255343766046088814719037556664669879491876786129323106834421981488561335847977035663533127802857921407504750502332203128938999713116842445765267788821196551935434684570271312488693949834017775586949344712911347835080511528131916233051043383641049373996662379367032182048917846632806852884052390665646357038786985138656695927770995876045455127908714104506474735141579232663661808304141335806037616984321495776228508503213335076196493004134418163805955456690307728835721619266045730893515686830576028293062788916354464210859296559393782918349485218145869350055702988806046170345269190480036381769513687890127578033199895987298858031432226837077761789976820180552096815676290526276656379273387657329002315316540401946556526723140347767752573525766718618853343853186499630287454525491974075863628853501907253000526814742233813272914677099256107755235773283960388997139419205882218216966078224036306078307362789502771457690108890299099209069920086575600319568914655734201053611942416157457620071674554384828402659133356968837977109785780179052855153768336602667892797041486634012925757679495450905354449871647414916784661201166232879218285195432894138074282303931507108193161279850313533027660444621000763528091058935291080328261814079012627248842546126872396474345932516802914737678991569999607798074634869291481889385776837293445476503192059310780320635424221812104876056422352117111004158792505600824192888664130118566121073038543272116668733964161346559282268745609696383536799635659845256002432108146529062427519747682895674388776855110392745163395221376093532432837863788961754900779991616278684600937084829103871420657502223934220171625310839008464297766804286950547062234512715514141736710205578850052848596853646532471384983122545206863970202483290687132527540308006838761417030478092441944128127738378411147734700656107716423382995994773640654213409870555174366247845156466835086426539218941160867025262891564821630671300768807045724075083914829413237682037555598147784332847962950708384613750857941355860171944202434228832637309084738167878584429419014937718488043922331531338326474782189563411436766557895226555000758296262648076908591922836478594734956385084858248393545942015156702649126141434106636438201686991710104452787561416951467975249524252538875823740937171830998664906358763697200525166758015470242446612274515815041126681656624030195321004473595293955601342516172273028221398674305823374647930170014455547442903043932966702291282023583352410759040278762121240879306949968516915384813760201955009041186185027625167187227142513105191295965393957786402876304922283379922884357470735550881739870108920076485900427901609776366253164606947706459066505218441537271570552946612041945447974381827144679492983737411857470249650714967604829534797706827180185558522659670245776751320922212667194766373105851799826130168720008544096468967845779211466721263911927252694226214637013360094941444560345710963791276301746511237328655923921272825668642490737653434658789822510732266315457493298207455027207747268934252412042139367424426020062215705875886632865579401886260272170252263995340765795464002900863874093186322293939154110359491510999628194551528908666852575102241826752969983682002890257957185782884210025406460362629634218930564338531504301048159566709302023825251594161277135728106385316545435810390183058443154342134578512050685819832755795427741475449480037241181229135490267230538695631569254557997784028554628620081719432498204967207373873756078751824157916187985863704281652081939515985901193898856741358139748703668906432140899978113521723652048427786921759297605400798167424162698731272479742004773231597292668096668299075314948115076854107313117184504421892847338284630992185890902012301977360828691932880859957918120887915514026703370678758613693185210147206336800830724156702693122589328982191674554020736389946668616892346580186034847500035645074227229530149024469849796965978444407747021943974009018078295569562735803648871742302229948818417507874208571245542347590383436985116668938526465853005528455353959770301974055482234971599502876529226028147467065452471838725515030621569978871825615267255808491575594083787970146079917958187841466305013635444490363435406594164582877671647799897090990974376371029034956261307210269352535671265634793707362194660073162206868864766965404813836811641162117376992601174737208827378910968410058598182864348642846505761056984223716133849652640989939363380886488477214927609419413656601069998355464461655774825074682455705556461600836358969232242319748373427618096945198839152291004566077310542877964184373699036434084344180192286740994559320898060114505449190782427931379864518513457441281866278429065656117377697926406059057784681004212897893348592635828868445010150228435377470549865432794663123337347678878685302010703992139558155712787378389281498915137266613210589319626800820403717391018201368997338313926279965421584435514303042678302354720585081420451656369359330451552061241264108234447248523254459116749116544227155760798311704287069747462183320949578242430137089874888190043619980149181571035592668011459038755948908400271696671604547591753444047149995984051574912609880794452743592396698467264977510633403429237136925334084707169355122456688638801062309185199890351860116597087980150754737878124046283896823131949871844622557278075485794925300684445138290195760001137583037291136271170145341925293945881061465217740587660320828831150620311805564272735318676988109379136830862577497866438094562990379916310853301779684897128915072909581762466586901510044005129617050428937626817420043076935060051914552976229342362872520377652783582578194920984545169042449130882753495587098769095496968240453954270354235970715770631169749955721288880580340201405679547413196732676819795562481290670907731235393160653484608912297325074611660174838755834588585683030440550230495085717061804677466603925818962333482717061077224408258139280086524287200851012652539988069588854643426955762312060547410135587707357345457417181971874422765804820673027234856315532587202420958973251541619567804051347167996681615044717143776351257403297531358912489290627683781373040515067413598002436222265702844926524396373097360891073853805513554985032381342705790013194013577536087613651347275068485381178754420384715305349189738899872771229598419412519337503124870724723804305953876886839053104176663976017476486221199810621318704817339740210661216548979209617690646555130335088293619132572110371670695479817656639619812616939533606744757837228357458568189356540295336812536845923788753739847812188988549524141710114517592738587573655290341580931421203227068830810764368298001124079056395238893760317819093716730065157237840959873705540766329076879000005852366127856875340665113469035829658473833961248356962242929186779282581882644003924074502090583963999329382126135684350851843055859012423397012477307711599616907335991975301963750976114879546000311826688731437440283807741204365485498700526925130355482196999525083626021149779468817160694669951225726674062458552956741081559126804173981527276818654646894274324139209471319716162855977840565223900966567444527984938003880821395244124997447517433882180492732260073748041462554353390938989697460444271537627414910815522986718305775832618858762992406609705720576678192024380770046010156359326763340837749634773122146899051695710492707754406597811030146117556451074280421509597871307284434402509954508317870104942050666076801859049455907886318211184661879358274968567078357036666166170528466985049446956179144688529682134889751687840624607181522907269702346637976210524037259059283586953875831172409344955386730300181220883448498079212932567407819200769396634782702464822348848698605638106874408029532597703926126753584394441611396034642312275842720581340620970146500736188989602103771970919510323875358020598581186501374054973563937689693177912535205259579945768846951244590214079083130084007316025876976016038834688739620436979565437793785837411946520929424187714141878229764519935094322002844734000441359898437486712956174541041897406041562693447347169488599345371249091660292698384523989700356231376168383783891459588184816531232069579262004273964777680839954639626497431418919107670487639312459812421691630634592692273832738882503485654318387950259655075020996020543819349443369806855662714037694268089750230859166452501468091428279767571328841678812654527098789109086198656841099000613995293749258480878213245157916865209864850662745561628891445420968417239542650011769119967530467559872864383377959713038661702744967779288808046172508230321746252164596618026156059831665994521782859979751562057415938821300152938393479474066616168141262838616279428228118008472363139556430515496545295222421452118554256500476314726059792167104805268401284446926691670812938775462994877729812738253968923347034112224060000790221613736348218183089733195946817619950373225454633652013876923918799754926115140411591426563973490420153175911150037574169298932540881627530555344215341841396961668770399650402081439727669317672369042871457411082849574095928638597105760164951915939528280706772409150775205698124436203761699328600062095226475782392814890626534777214422261235908076747722018015175985337999590593485250763458694694563825839419941247437033563377388150877569949578968842928703834906767362588123611461574545480924500560194069604477963747362140541877366432799676071900769213081002508354092069333922068780233685640365794431414978528199446418395285012424853099635495357715067299278566430938196452995416616497673104891814940293511150495372040910759576392304790268255692776009846312602336254200960135234599477786147766670571853590964239396996690719456253036509747783469915584663062418563197240500190635408613482748359781026881859181617663346613184939943005747533447967385696982801401851032232103710545330799735125964493282805725550715235267148605632051522508398841143800820722251404405260989796566027861172168048945131573782632312071153227425191535483349288035755577387945299930964521335193853524317549782133413552518716149076382493995700725935532334232650357541384726561152436154336801764331136912642622137733357821968162956774191680444561667500020840323946490590509464382052715183918415335925978402134463224765449956090545690054645202848466285967323618796914378612918788047892602550945298041010957912619884088333065587514985427199376302694195866338881676747445717005679509521893759617603133574182978647885677978067495504967863380774029533045047051836713969632523699721246117737716666821492117015924961566206436163192333702865079962541188612141257902614609994282458268219724293060012286105496672255485644714803664603323635339567644359504325321817570227506364150760927847002257737579682976187476124561963892558750178102569725121318139233163832940013891902840939254067679492371489928746437514924353447631453570542983151050653775947933501494933087064474320730126879503501980980469124702558345912416760322689888233712966788962277021395895076722661759313130994668007793106163118945879971929799881283114749665334377077136304192960793596623880346616951726866310552230754829469131186333159709705233276408339585843505801277238672753011942466902300683962754969842357689640421436085835563764318440049806031119968113074481932249125165563583212004929756363074833556601462140866139739714043883196091264524262461395153674938079633953857936260442629875955084588809607872036460599466369627317189062813167721274972309203593959753915153272882292159334109667951948586469478446924176268292438685743598015097094877230513555097725984673703144269736816614722968750727952734482938715429151328701466636415693919913571422323886967504989585846576142929577738230756192670211760058055803726918284202651353060829802257251309400992945979585649295961370176852463343604323405197226716271457445072096121857261953133173647376944973298447041267446113939654017786752779971088983451525004541992674256202204305155290450201611478635911361844261409600984009068536457730600976473874910526156275811980488791084034532099480104301882448514006530790666090200012855190032364499503363910834134854161770765020878955924553777674382839376223836849347307407327787701774684548125958762935501067741410051869021202971020416173098907775281360635152443520504964406368234062600392678843396551012958031365202788489995881979803863148997115310433427052531827777966626958450077008523015283994780177074414207169763010443759513230595202856113489316422036173439683888138039556474655637881772694608592124157646798083761626317479155947533024719651511945682885293337222970999845682356638515931065144682406321835401222742793805881375271174649154173382432782889191601723898678132575654460548010367868419985206716823397689359352628102854102015961480694374306562009347169908517354023635997416610086789213991147576796269830916872733217991813320002327287605506077917963849290097033868832022710169684918399081585639794271950882659962722364930053239098656102628066243435117134838060800072232087706045346824740321981491389214878217690040803654572126057825630442635358013596728547466958230123690231671295088290647242192617413364415499294069300172228849478285529413428296079442839437644414645934273137119730350893171638639387220902505399163179497850588157160202172885826763407183995485776767074947832155620323336518323966052116540159009877721074109118357364759416574788629613616778560928527190547275925066702273861745317706744292488498141472452132246974275564510764358016649675780384680625111978951340358505038831237672060865708428967153976328352845722116444253160196943757869410417535926223208529159539257222306551230320080033766964524943295031923249440158979427706306951917170579816935686813103145392359303343339756315718167586511481422887059292753559316547161086137241519810485047078568754637395170229055160622090399218739545809776256540599478073044864451232903145450105081136639034079784778383091247607708804863385947845277671565923998971176722792931590764178572212269748542667024462590344586446896037792376968243600005963481101621687982574940888739810303134978727780576467248098701601665732047257167810601607038038743563197536288327735659424770674181670725440740114850990399191566427777754044049498247363006482996144417181587787335572298615337366810569598828401645913545533963882850475298105771843827853354820677629983725315495339649661237421313811433392328176377535724482496126769037644391563853326031489478308048892949803537060029089959927766900649270479428365237460249520375478227499985093745327398495570134048579932697814508971434132696543327312386694506993151739292798916748675783305171866039169797214197056677283894657312410511324300340246720126917693174422220158728966538869960971817224777598065529528252642910346442406756902587239394866918775638796593860436265818972409787815586275793626283431511450319267145036576327898527900847566239471604624413973972563187123105230605811405165496233056600856943675052309314300367560900578316509337677896987995663978521798130536197934776911781794693699700966268123720251312370149137755932956174958206458451404814701103447638704838252185758479685138640438356306446498413661216235836954652216023552263556523811067257675513553197696692454296893440970412084305619204048689022436518001939876260588480263029261523164644601272991631751251642654101939938858621960404807490861265026655427971768660321539967120291221805729896456450705211390625357878023176412760000634296978640804101364405051794551611752219961243466940769979535465931821259778381061179512299564822559536362137964397527863774642064829389274204554446311285531463580699443890057978846359638402299446541300812719524921136409326353212582502373363941581795077825732959462652780668050809725884771853273698741654044238742696863511391919652237765457192808840318910773309696270960497786436023516960979801628160376189492445198550854579969996312825486488543523837598328815082980153875097907163314278718281729173677416272129548347205511382293419977571320332294924824849640663717621306180769757943982430310317705482450952764586751958426788204574325882194767634750821196357972527316734212336734943849610624712023938195345347091988892462802659393645857714053751865098747093179019278000358976242893980976417359742413724909180339431901608913442554893102403260380669692867164262693668776425832326402302196048017073800177835096123808317930896940702395935108517807223414568419185757904741092200109676013950832149442089419710101730011419723823117464742754468760374309531927197975583703920234800602533535202063999441850245120203844234778869967892534307055055916030925171870855605873196823113952773641608906194303675581929841479802843562233973355302481730854453209209466581532884409792394165257681846012572344051832091427464542003629090659754874261573572037821737366739537865577948441747398060955008642789058930015221510425630900297522187911337833612822100022989623861195535160331220804901740855343312732673956799232327238419645078401535965619544992129754141726177070359944954937088295746947110644792136810172777855493270241749545519414352936671406342254799383177806773547523196650606723779667881556735006759906892973879844734583136565303527696224665047658009782698125025196890837964581988590352113054047123092773497361649497373362316185188144537112881663841985187941934783265914393439642784730918033528185245386442357819524434166643436235920454217461525680174436832970934402151003738579517393794734661571446875877791095836406052197164678167597506378768867036025059408253747087461837451651152989220534863776558874497460709877100733576030342502022365148921373882021075665585250165714292027764863306498894197953069245223620732177889199656245966108378769903312362785938562892387294476710883789098448248549073399562323212789278124489338229356992978270807186777579186188361650580972121414383929696164858181104568644544005185062851032354861089756882556289449005429692913140692255027919224155651711238951422411439010152896095546672185120308365515741571830663652167326759216813904951632969465956865479081108095386151598882794629770498163310503128298387000211855670209137795209900105764755521499896154196333808906335538973888948333457541361695438743717283326153919172066124020061483088764787979432419565777387828887479692286838782199818534548213031079447009132772359043417000005275389149654841220533506807779404264813377545503160483871559652677001114235964323027463095883295104624185915415578267317004868565993565435347113868476618802803502409049851257560562959711512521430818712092563645775578309906093328952954231827080889507550233916297964535684325118594329286142237650012332373772847417040653821916904476482552916974880146388174940236940076499773571746998693163222463315667705254275908801561096243379354416600768381631185580302330936343308754037607367201013969407470600062601202883369151172112839790180178425180316854868750027159222178535921622811454318171497351199321744568369339380352102107873480340595195091789350414844898629854056489454711119325711390431307520529365727785129682008225660114435831943245068562322290651069876723494059439641360898197127911319824331461630300750123511799765031542693250224112379791199892138601941811350487556613289182006477104074588701185816820277265919476479674109981773045319917386117904807249075394141284773243561279921164050214800213787365424337488735905755222727400308368807518848418340002313784936282100281274308603630170837792357933325539510227203961071362833053838695611692343227857907013051982935501084081116371475276576226219656293199750236396130469367529704077355011885974122272056642972082124076083200803155486292850537360900613231315407988110551476977774889328561238282560126942231108299263777999609478430995996753829445339196354126583308719397293820152131367764389456275459416901763217736697432775013600280578017654393799568403112382958865413237808901746485695316721180278639322526787317995078140960872822130919136749526284260403663909826766468028748071021722624991883697313589540533993023501354672413057459184386806660874756936910379782514482155117218229393470067555111990147752257155791562284495890030761387245594751236009591738574813536717661619377854616863296755627279679341409208228560214431736974189126616484668940899233480806633491107096709916880751853947653157262235274664101371057630745301847853197840442059452449384225563649522146255393437507069478170092605388163070149888624033218268548495175614807339509547878766491842224495669677170292764488766699204772892346830837517781167475491927548656864740926555344595114466406204044175439055099178632056599394753233060592269995909749197091886622499786264718479671194068995011395229779923339284615126782280418725688649041142128221315354797374881859930935472164581040376998450902311618032685908558544826762771208598876997046552008014374333183980523822767548510110071606504376659084057978539093951507126787584766609929356159493175499468604454243973556642660937042389551217614702520834516224171714100723078035088624662975250372241729616480966877197702030031249538306291851032635784935287529920734134717020753372098486649860357647204994986934983114018088916942180700635177505517811056659473341801919930968550743077730629852145770612643662129407917676977492189101682074049207454928539772051108040004119442005277792781079888317464127242945431081012160597029773658101229151156839119509797720060437427544114052835502942334854901940418349998399900547096035065316137889931501114255357795337075661734880542859701742536914818660267365944272506768546259172456557818105663272930395379327319680028161011426243417217308618884220233491718985164095689419109121811558478243983357866125834371953778985061441347220782583767185542753747099515698337853134012793070210331647830214031231545795314265774766702133460521967850504545149656997675209467258646909643155035700553754284207405191823360577492171666961604871962857654552643714240864510504561324812199313678260271761910879300038757010571779643788911220643988990961796809226683755267112921299620410062500099279332421920585562736934229222375403823233726738832313526829336366713422086070111813356514981176742119930973327755063887236134210768737627244704881736345790228096784382524345419874763244213178359777281274368156165857501459138341556319499869777062483621439609570113265356072984578444923562076429208692109015759732924084300930735863965293890918000990055852223258839698289072529886957198530334911139460936739007154255956356966142253390043910699029660419085585213964846789832418904388176416824131158531882475538409171188478170657213676693757808253623385551870017292467161358617618943577681456067602440873572655999630709699865910155299386713322434379381251239866736830097272291094227962872744070393220182492928533637603024609069981505805623109207734874019572698617587561737152499384957562972955767625789494064054484806128085414951913392661828173369171338711420748912604017897760483136915341291469750732983326058316993235534076178885540689554121482655113669207260895426423620684093956331902293180555163477478980206918636478123735599224819272921658883014116714216108768280612990422548352929998026401061707570992314976992080570013175123324056381274347992813668810213301335785848072594462741224768183133777685186243446807507126628928060687851477597460365823787086919403319387855741703501449728718289624778203784616339240152443374630842906859657131830723376548342816703446697587653647592696365486124302672973271579184224623694730861687650127338835640908772162312065040426432689413517334732439658784845707936071114568699048582717500092342518283320662480428505598185815487385546751657504450649139179475124257114703063164361475256075539244111141546567024076037533723812411070355189169924862935550302997181577330381232776120994909732159526359245260217202015362566422573633571973677686773980795645178655336369946591761862147545269986170574231333951789516826487010068291529130929932684776287212769544648234900254571603418205190676847726540939566159503205950826166334941851700630146893516447093391855705575352146519943701654016413485923474313356471438282500078826218389936283861396756652206129420678066826452063693394300226915733339026667406672387766675816484244483708732484271265864689456553699172701318490223049421966356809363318230999770944083586733651269692516544100609422556589526273300984466788117574948764537379794610409175068435207307888219266688277163205175449484311709188536615976803068598436127506464470414979581663242837188687032051450281943478156582702823963641872593471348684625074311035629112480810152205594231538924018137840458063372095567476643512353464645177543588632209981888816310106661935489863252266904526698383829184597993837410149019230962362373458424853268932365314434909176244747285473172650685787252806088809538043734917525024874622701647602347057164252980407319661313660564942431901119283566108762752818069131218971582058540844085336517537940700287239466366039367297676778608514523231811274378589680455340910840125932578133211252632419730310176644343793121774564883025246135534084551597216148108074405404042534421332886402274153077061012233342062489251071577964759796484959892897047364463485964031529599267107900845011350914903357786508539153631463535996622804929190369987713125149313454715441019767163757894642122151626757531720216280248362222577192998608948359783943719458594929363833082040594716637475563322857629441292647155436964869006910368907273873248125182724150072442343960508888854976531757321454088297121933049752929808179249530669408649764451932254840175792487349180719258749906913245358294334964017653094779456288195248066909843601375128065631900977325601526414403664206725287863655120403811861952205213134609426968555406561053980205459295622206075949430106239037483863326189538062936093252367784661152108161745910280371350360044871556513816648072701129985517051530086815628834705336595068653501893281760182440159745743126344957953219813090427850917304226427013140827157007419020555668163009156578282724556654942103313090265982732703683910394279315805139965020341022404458992304623826306344423985641627418697666323863642125565595127563509671618377604751969746369395075204905797788083678823774408444758106479476169443686767582431643185842147710878464379512424674822631224720507117149357817092531592803116243022730768375748611354476878741873743442436577340739440263990396267549162752301757593053048408240472059798172970161302414925850578388919301654818871775778405086337008351698351694506661471997055107751688696616625158175056037866229582839492092660172278287326335401569507383361812707835053778240942997474349492415045210231969626880948651686482774642074406488802314712650971054184659328869569183347734129080054489351156036344161228465958167968379417897586824836487461663145800024768344691550556806039866485373820706571978241222937399161201340646988045095381454620098604561181402189894282765791185619892542567328609470654272878281071212770101515500329507606531272783593918576613400508333781867025838841919738433887613972839593018263189781997999991483374701765680972570603984576493857516167769312278882795837047836289353002294669145000903962635567742365513695422264759801899407732978011911379995007830285027350747313587293957209794657597003810538960957082425420711788114473460936528767018034437121367716715817078100875980380303522669282968144381748223804146212892166116915496226176556272626728431195945022874462800523471687441460256451802173392608473925986944858704818437386101950970825532231635262033945335191110011748594325630430602552944595046497285114064279412898013212645310720840060324572398569841862838623025065498759417375920633961765912270194766085165640390283826481289992149235596776127988191375728072672674340833169430588277587875934074041271779997053163410137717279645520934508889360494971848814488764708903124155237936534223978890055020176476840231069638003234633892392317643233781155986306229111298203833556186730257816992974193794067697144075547547241012708068896390652863347288484475972550528935245076076222670459573051426353675396701950106142645333364890782885594255409192711880300116689695973852510132575904310616536126950664280047798560943344946733993058056491188568212716639482688207051366880873753495223823928320583256960073440315319480276533243293886292555875627634679570585165588921572269578732616591809279206587359071307219395048119811766606053832030774168151998612810227936633825871968029899042739124445741545147618868152906992187377219808028535239379741600302286454113606402396007848022218685726215323299397604433239154638060021572710777997714906707818856022688639573712639606850720872969931946843114990139068827863255881128555027398299923181950600730395301146381495571478717292842760699737428044705975071211450860068379064612527363549943300142060237475630350596399327047763696624711610381932139967866053223986145806023563939677073066818887813485810955957796713542771156309903771450685507349085436829605966685196332267846222757498040024722536947582546062253378621361735591083621068701424605696145500260561381373817667570317164075500861254961908456895812901063746853927622722943578050408324682142352636009179110941797943425137704306890179025443092145295266911493115169246620316522051034954107000047246027757552911862587420766460498689629142421235295325250024087744480860330966437387406873610732102618756522731502916658311964966044317836416410198693308151911808542544867535241608503920668821094311479300585396004501317251320789453569702560091253425290973454712686878392987078762128893064428484952093869700155614395588429214696412072632726206892797894394609117083824736824445086683347454443720619489423881502073052817996853038293115425033444536736330383382622968301862007016459345329412056308552240069573979843687811750376997762243427692116131355834819889361079238855606670933758097031768879868213463871990680463904846506673944782094455305309030574949741520450678856818357469461348661002449119691272221547512890146752599041557943871439022736316460314408745505617168927847147848810210999270546185105140223608333606337488219945356005939848023768572498159607201094567164031160940381212710474682571595134831796721827435524169929074956926735324580222014971708696804299360495914457200030521935703212422138990527162348595023180598905683414711065446519917482121896465794405644231199259372764080237258576868970884894057793967322058760359392378712400585164361995604055755184439790730571798347748598320523875741862160148181172945405247639767617925676681677273283326709262643297691894660311785922790664854911130370474707518948875038664488900045604308114533816145302487041967693550046497877666418506465693339942947234718374759743526021364005673518378562240725756253953685250407451852770229351836068998484443538401484275899331054080010417105138694791086775102919590492583520275616313353860365931218362531319783764187069330130188892695274513640236019398189172879946972432083868986785781598076897564340272693415710503560507543706404887545390904680250914854705671460164734854649151978136261676108403658595454912962235208178668528584676722255910395779810268461692937770840631382725537936475982144970511350187234357320979701180948616747483911017399625282519211085935145961429504660645138784379562215948119291086688928604943884591329726273702081233628734646892016385469398319976322728535071526665682665711740041389526895891138794364769511713614348968004345001489649782859332415135720208899257386867212564056071792294987011530626755573124175026343916686014928872582347313670774885369601262956230118727149463099876170181396356480790503579719439640243181083709481625212212174492682314072453381559694671152142355329727594052843749196474030537370241650702195666759380321038996715815961122665947917284570376565180388253478367557144429511208012447503983425911222818681545180624916298043312618065086329531852999448408100296145134237424151820828687849051383390525296100077354361928222452621595334932908360130220601419897020737365925747765884850330420199071876494035878139353253654065275357929286413823902432105725853175130638589188534098822535680088017220162744741604845366693656876723587423229885973873447376738092943732533109690982448809673954545514794473697244759581041634581202394577527209601286805098767820456137010855926557256745767864910976582893097455259390045463272940050860205691325305592150788115501571839127633893165768522924760088049893298365266839253533142039961396761847333339099646399897242610527349008099528601965730699286361773535181485811931177995196403177740090518904976270929832018204638056367647536371508198373506539491136663098993904399176343332197359972697359554662916294846872286420247159102074905321471861783903710322721317974736407552589930747482943495185128063549011087453478480379663962892161449561800427434772112351197272172873234577314931123883505054122849024920610167787543545941830006248984609310371843461614597129855913883217351969683537827146324579911901568114136390233672833026322795928795007331111708120410882300147231233862978436999304376046236513331307025201603634732253754204907065404989070038694801495878275132292067723481799397054007914599317821853337812487498121924955773206280585678096769557856208365914617705768170523118168486145141543322527873919717116208458507351815001070806453133639342933531753633405298695967216588146258648039322589873268582409629365368451584518231477423035414292979678230487723622133246516169333439209939229369345648048072654487638775473712111044762568510998106439731984065720350956199793852808007348949165859061992876843187123966177466750320933868262368640115153224326524542966548355636122749633022534922732523192996325997289026376863531914740904174880681085255300616269736879495596461732702308828435684110690698017885513200219736555406228373543276527246770849121691193400539494647266900725999262953015813909833035036178895120552031882462458880553462213655804603964498603095940475301095579955022769081034528982604267033229463348341903874070984178504483048247750552552484479179209452346172940775410586082453071908455884141101228068921299900169329737956731241213805830129851839563135917186704226401872243044899814801290856794678033938145493362726279788263443450200258594694455311909741381536695338712289519458145050098421891604717193147978154274376006201335084446276824733977774455647118626420588202487629640417819853394019158085654045178265746864525834486240284923211609352631517794149794317124395684920538637701992318280623470175139242529260387200442435515823125255834506638755915275172454648432865697754606509917592323183787125682044672427366678254817123545417877227453998350825924224414026751941865439705033358592922882175860031038336863879840448863238313123466108116456265948048342358066010778661192106734450883647265991337645202392447025623425975508279214815495743760475070298079531080140498197025044365929202678180956141779821850593668404894083118909392562255223690590260592140973116849954884393960201456006099824032294815775592031607313737670277436008543941104787261113549474078232181413471712575581262380667072658913705171429868310933006122275326884928006743831695086343021556130651003918850706916243457367119719909364452266068577530777199245974943234786495574946746085753082193879121967508837734567128041517820441383066811964722221460555815712792626118260983252113083915003809312048460501066092493242176858003538472310919320747875425653493983628084263679870156921484421030877152300934358973760591188618637884239816540743386948565130185856835570236017248786177751824022096511978270805734969371347054666828289723334238246244925927421412844554314169443785662896808820901001887626444800767760358473048419475320702918595683880344691517462927392537611890187996647400188179070796047544655034798243995778494129879004557577834496687956284295617936509416616446979772993812522788612231545202469399488562078879478887377603938673184723959567735301620035924108222761156095584957291393950740700318643998330994249072698009467018267217749646726313976374117851704226668275011325417460327877965910483716594342379009973138449736579491643508377582390854724912873286343719579123738164805360490121241030055490981068067288393683054404530648249478923717124471283302537938957562089005037614873091363056668288698566978743889696540275058131894919283054302873897628882210107711082000587587430273029380327974704546279773731664437752384025681089892964381951950981744454876538143184909174710272107741167997467466603561155933374217527484729532767635678841734584717307218712055726070693402741444445543310375910437016639976524030466878979823778876771033785932085091674922750274922638796499301548591791775946562423332983536443383889161384962715394570683167831422453017315341106886714107418706646230136154584439999069444776260152651165955755078386973076283584077856866349018929159211232111489012360187151162211056110076135805413838216834538267034910226684954940187164212838151565204758341637532358546254207517290081931897938233812115533477915994566332248378486412253871652479510210400886921225453212206540829911871746118404422563871613876249160430991108069418876469907711621934737743618277102999971174314802011877479370997128105605753067018397971794677364003360749862694629604542076825017818141930893707192430700742743955253934786078846636069292909695957671897208147255868320109970096705930549109642393579459361295607707811514065333682974265199599444999922471516380191649700762822426341465588523667550180161870744901622361956062615644423108529341101769120258854553526204176990935850038157902166556852363485364746956197528435276161222200381357843231427508374300636347591505853308808084743362853392313626185442983743276226470978269585351534870663065286960785925000166852319653228187016272019751492205622670185946540044598157334458521173634136635788850644708311739252307629408539128154436718439029183625863861469210746292268738390538613550909733019501109314458498870339116617920002860762091493209308336684534476570827210851923710020513103244513339916571765033757429606605649695288563871815201803531050588986928589088721754310618425821987077817088692848401850580759365371774010816194983143043190898140737465173940133663574354051365031404004904820898506888511743776580965636846779725229141186082318280978718831119655481683581570117286941079516880611546136688075929745042545202349561620639102117566314798588539646947729823064325019754716213183442762389568257104380978187281426860272938001435156462583827754032207862916718356891705118354529422093199626702213637109234732035620678499547668222713287431897593055887566546536843886783928714160063489013124570536341176417249065590932203861493100569183060171753107164891416829211412369908826311670390743554065063792810276645903181165904396377885199315547161461493362640851924125205130508393806380781361004832271897635937912748683736544844229498672417549740681508531772968973400584329413234500195152994119875598260420503279503792953051010584601508516249045457893637397967733630046354873578074290137574970813158123444030976370704771048505535274080903045388590009930243092052374540672122413200088121079460472429510466094148996747491528192685661507644080029215406675096814411892463784332114488505005568515324580316030675111807218597524798359441994339903527431855773161688579754480226120065246956314786661435943459945499746189800846663112093855791046298899707209166009793737104318721930740141790840719293132274179127587020663448383029474727313364203211361385949728771328969927354602941239962171569538074069655681775192659760999511745724642952171849449063108009475405239105298985377463846855618073382500561541887591078177397110626998651909278323957852350882047963163196513156081464709553650780677384735152023077611345789774603873452796810110163036600837385386797529382035131552770616661590926942899551484011196906844645290451422319134180682874255950028848966945051647250332427432398408833816103426508287517789643484128467299620933862240534522098460512980080139084837304064607295797372909159203147112128077658891975870216037114821933975757558540381224714797630789666365233946401845470260477558264788594899774361280415994834586331146780839148196564898406894848233130862323862170497841396211046650182994667415923445213093639518523196628674687153032128415152464620330127140388192839197643200997188706846022589538777977051167609538824229500421022458550204952996731152977966694991839009747147612724716694667090073179557669846264241812365876826344665854439103180314460370112603473761914433059702230469822294917245989698005598590345619082409559465361169259070355310646865633128176048565336416854548288837235625774764706543345663183176950008567619914771031631511475319496454213403911336135117461945996674855678662702524756947363473281255401943658028030383402583367200915276273242352579619217188639336913644165646303597402727668586247979113498495316429306368147105868005549710747154616539974853698060196652843646101611379727012979503420097101727840165797506115460282539245751566035694930444326287450734331260920029128890685712095361927188092944205554335611983717376777315268529127708919182559365638692422170593927822306536493056400302365701478958034578532827915319367596518766829830081263055257414245647058361986866378789136520639097535807107227956254938280261972537093208582480929259179915738506845412941350706554686795571007019930324392248409042707346879675163911622504267568878027327581322210716598787325685266994270251536256451505373990264843360253711470326168700334493226568824199147242170018204488768165260716675682353681145154759500908299245235219186005753189076200926587207900253389389024824287109529221016877727323694844903970650747266848642613295299528874730137411035890534170310275701864776614101963746904099737813572524050353899401608461033648515805790763593499796801573597025428838511872011028428941035349958805192859793696398102758238993294086138517653570763096966900739097786704892898416097917424023287636895170609179218970647946073254165461808823622333471226306415604749768640207873740336595432640335961766433084407313735964565851234294399825834090663950025972114495812077601397392569686302165857786741724185940767638594434084296307621306858994543380840214124326233998159052935836718728639463247856933941476594101427323673177776174355945516526528747511465714878483510306724449512457499369701375577655977037465634849461925038270679194726181938689337224433248264933201003202532480536150391731310020496754439262738644044431884161340776625329162865194908340763300999436944746129903104139327807438021998669302685642867091247067116843102332709616844631810430402867506826995135995953171302148350266370322333140861550561198937869948132354700491122244431166648887894209012330880408024609782721825537517332123399036665131035939092226934634947644912511227634500911006642043623155054602841502430992827318163572517449226009969672284133941919588268080366182142197390989263180480395211387429661345500297127192912728296592826855946718713603352962761738045725293334507647415909926582397318318599498718449974316197627069033055729433615372400054544154814585914087767665050687868789277220982629634685845325413772247268577275688805381939645287320858049712314214535585916196834436481482797054403836405047553631922273657246762099179778202181925846997063976478692266617590942837701449014607364587387364587526402510642056001591399896717658547925235961738360817800870261183080475150249422170180002097076869580308408333375225428539272851148902684481527499125653129748697632187102271574954244406703374305051532085859292267142604317612521776412079783637826073549181964251062280128690100313644417211389639916992712049844127895123241378717490660409725464453489523981067007448750297601045919270060671269638844968817442972745869822596093385314726716120380944544752655018775055212210499388925261247114977041223519163538118393179820539178991697675994320759389431947451233990817906882272627565365123792468640983167251555542409664978887990193240510756891207605360096922665824884720913245312193221788398322940314186387101571101281783989745912230987696930645669999340595051708754484193720762409261288921204678954182915577659005576756485320292259548113904078486530628282974807039246965132752873943038677670567665628069233185037067606368490264047691054527767985616121103368229250093818737592176667217666068538811379065749128461482179062383835175712483973061614825065616814496521110955919627422222745934277973393465843230239900854955083907707685268733541687281820530870703071401114802494072775919811824282947099888491814940032786585898104600343304532501121431223025122468211489792081055832891749785133449970872136438602286719211701272317105481082610088290215667608342471923058646361711743760707128669420269593864452169433186794271518486262956998599185443366332817498123317503088295984815173377425905056458538287487278381887796725346289727403487734751216072345674945949383516902172554291332518058358419272652481474270195547622531199361038712460059735833434719454898047343047215742217350954743616818733729405412729023990339502466763572393497200382427792625717998135625655214223674662690981697565871080998474702070449380716182705553830805620595419093973236669752782760021819689015059572846476159756447499459324087978758939256206686985683417316283011074163527241634898971033013964123709258233296077781520579508093676132037077083893730686592175778626437205251283736779796879189726777697388136340135680772576564458317189358681226484536305710778469140962559307535474773927105567105258654736432659249628975633027210430849235259082179755281188562331224024524066654303954567272053357108142684540214491341615446772545867338809604682413135327188972420200652689166778060403628424886505205100393581820651219902447018490703869578199389558419485982907334422964375016143656269768305497812538366631501338177281346380407242940936986714412991332723725000841182854967594424613840149016702780658813199333570172218167456166124990204443739264245880012833862170415368031932694423274119034801419195330585454513773594041561028127191509661347069410220725434863395882894697015407447753775173501629377210247866192434998998701627786387941082291457637698043869807025124084110760147561431660878487319144458545462117576104877080383498341116087115751903703922873076105892506996128532936831478586059799079016520236737319180568800330565950590707401365657792283973752815737281084263565672392115816207912445356199087247351036062853103886261242723088995187690231749524216630805795947426458707108783683495765991614518534008582260586517464428337636213739735878970623598877928032862189635193321771466829908459216134387585659962762951105016381329990393265968457422022502027408530076857440463015469147020573841555662136449845820240813032591434858226939201001237965836479208734570869686190179679559022618677989831255401203655450666180179623768599142463775713485675505898985042842282463111733816711152368731321951922559672195891436622099576070415387090567729709919187011082314288891684722936319247195990513377407044401859690526960568811012951923105843194580837183410169430138030789104762376728040817170622754823345148654490557530603524831021412331129518257887794095560747903112238344337685741170931192010891190099438437733065526125777162899369169183217603563147945136332746894214274686602109674850958836273608642525476715581723472697420153894951797935552437890344660245095118103428212612581620018183378662264976164610923173358404988873898997412309691771957267735730401658295922000141733051736893799455874584557571705397250027470030845645753370555770929231283136824643298589477264983251495542701593838133097771804218314478927757701799011926091864960538117044581351744498370001245417243773314091468894034039473147881908501927030394362487101210407809894243848568276145460889743782041197241847844574741496580433226708618470763312856922369924736083998929885199254896348218100623637266529062709817039112193881665638798064512423778751264813784594220274668449502492437422581210448679039480697931848054556038503510702535665198061828081070751489878223868446651904677432039235188627752466830588919374130108991940472547293632055742062661481354870891231450085301690068721899160097920117369315281896543776876139007971239081462509129647359039001378077469892655492032895263972065558378231360629913647189176609157789238911481310448153869780043102196539582769095508948773404687857489918953193053818749878286360887605473342000514878345347682837651060997227460495276222984903111240471396643862541113738121025877694296490642645332897367460957649934652652897709592204902972511059645774818661415191175239507718466147129521407833766070452266115590433999767839881990148012733958012114317899631826179774013317657764010508077248053952752811888526214264329308177068228621170633610472412649404028255908558258608989731259312560139674995619914793910111683156949044578422046415327244726710352103125834917504907011635177692302300581291526877775928134131947788243723803132110485927261528174074823343287893754663066978749313422154957069402127289235603315546140317983765368155059541547338674960424358806783418503927377368607601179857717740607974639113451532151839169502046096380233788397601450725002809779392101206626235626846246446954603484850567249003513234860281292255320085830152798106479535663280206606836745959911636877778117979628846501426070165822936348645095407857816631693021099962370928948948597208804586157971913169187666739660693165231784769758594063742371457634278529283573664855266815182616876231040867561227894552714391203008693844832261506882727064987757342421055261293814362956121768540655388128447135685600195516506896409821881088707104133659672616853726307023294521010107569632361439491032118483530074222633836512591000934885484028319247595859656070000233165026368505840512221094540922115813649353607461304239365893677103322739669659323287888774891022942256827161501742132266733761077839450516370481321336713803744299382214469116022519218901354721796225905897623346127221473876531109154336074133637263945768905388712201148801480733337499569110657002881544558471618913417652866232128659534956912700279704911550488440007658149974766484035145095513937443150916590461679000342774523829381102043848131463416290052029238267001740213314526292119295984223271845205437017150807784674447972140030511805579474787582862172430535380874727400221139247960535549882795049375003451804622153713557718017028980674900192131289879828569662202983363799154338933210345514869149405251463486658928098618476532697339181777346347363323848721628135064323207235579229519935541949386006527513678884227279810393115890486595511989445831973175051243549701096687824048481613551539191739464426499724264995844745094026311390657353144240432838247380467587545813814900965167323311731005723939757499945510495092286320933174731355635659548344299708539231474229705990291819761924115590958876799994380688516634549290311394630994340200032470328008448558164093510001284089529810791487880370324727736497089277357804714584033488784323222108729343539976516681774234837452985777603222212753983164925016831841276357178855941608594835957152897234979512277510721968693395223717031497282980126253914873748220146589708781890896868824464848644778346419042237972269331086879779227331892891116742119969940874270051168035233941696668998573505161803518576770764119556963692690004847196883315058492830286280632460880235201933847856200079828472491891903595732203527051399108179263615539370361493602773735190864610790803624942218319348705020770568286356888336245436359199848087262559035983370314720390735993695435292096931184894109935568065420542958081070822083961692575408550740296565956412535057610499788939331899374739313567484320625500997361913623897792861204192221896515309267251192039861214354962823982610331875273616434992681290690068714524601549016033483375731062640268125371538016266594690013713008819816265622458486764723764281754368170159423781722879980134041200465600926704442041722695724634391180462971796254381353627047076877924947353295564752282117263206015468450647543763915852821457188316846124285341118841849644811720107549968048518570394831524478945340764359153660760094198527644332311049974303621046751622247648876727815041547952472770796176315934065439677207653693177212562031472295207820907959161628704723787819170223964600061064387154632293423853158247682679744993371629334952962899162900017341851603599907533985383061391000874092260836314241621515071095684938843174242131043621884890386954473155018812363261580877975316788677564261184031880532609460572597870601666434060198468066960806466983350287852184584255020104774878391649219358859771058262837704594535483135657677204614243796888390850572716283666841895982932768634571742880955232238978692959757365918926897480189505567170118338702277834437330770297023829821957080305725984834386288413152888779026055391818101543877443212058329352191128531393373792375391555287924649756073604103104551378025870564780049530973809484861080186594035371610414436460384005601679154511605435650136990448915486951102260167004323417470285030453248934153647458239917251320171180195231958090075018205709552971654788152047699384572479435008792619549550258382103521722036985942872368056021496694199168819305032461213136221863945238641207922252715518233017512996646852993660923633269657402734567422857708440963984376689947959328441155773591288850895725955546429830366891098776178320399504698202540869559083828938523854642396222194419740491905030845890820473879878102554936177560040034564449172487304406035380359512841831531111603703222247794172535998085690820974228709950260604487923695498891053257499092154711238023684774860454841973942225528297704008053819273215111481867475967865014026740451491034359766559151672477952788728381435296539899769800590347011250168121842202210507241557393934778320550434948622287701066064151316893551074253134069549248398304988924231893668955030745636721069729112791074744320870489879930003954706785269979251269010304211687366733886360986901263600272243243061888422645794991460586371313925824794462394981579246860443437495655991855028586010678694144558759935561262606737303094469254044162416043332612924135069837077690555901435363363056452397870946943891188261750449064465643373013919332712565141067796213473928510776817284235777889657068096770673485525588883464861974503990409854793768759873434824617720803260883614671000538888231161240923459101698467212619149300105461663861442591280983399791160722246574939032102683103966753705871881154483881174672159825100787261537811819025800577326861355056357108885830847540075746576270253117920994731028367117073029062039872960962960691735017578657262848752745460516826037311569925361828084224267846348677774555895880660176814140503909815994652116827738218941335847079326973265533922440615225723596537226757377278518483424323981609860092100723674938462911358534949071512561802139429831662239138109583222027195042747382643038632697069657200593363112922553820265632137532177824808806520800752978991237878217513459468472231277888893185046396221593428435035391105301485320947352272744175672621478346595024571402576560856964846725314377061290635769668570521180764609834165166330705202355562625527933755091789682723085923692069521660475552005284566090110920504890474353628003796479254633373860938733743351431974092282920385469135687243971890498315014860921905022035559315568779827122246637208537797277894217576266572110615542963909283735370282776973742351966184610817823497726133735475687333379639465507785298512272784879648184750670567796431060302241435686755659554798705614191226810598033574943105723645221135503804490061828221896736936279598296886838718967106292216060524236562622456316355553255954480921431924327937876191846726746257246832282093336816185784261158904145696295233891183058796237501570542391586489811057082799135331876690359068333692698526593083150987423800750041888516291887862219611934518391550159061885826771788524573195944870252071988963661634034060455093694417927895542859841014397874123409172072382890062421687002031384605724510356180112315510770311523805340036482886904282008442271347831685077450676300854049454151184425997223956848606631017283551528929677070406286072257394350070586047258133380159907480877705048747365498563306966705645872022628005691930880200772957532439909863862844747861657675608151588794447272091775331602787752031323414866336504577865515107707992510901178761135360751642018493636923463109583678149138716228200673177086225032068847152787223612192634737456268772857457355357368834452024638047889121460938389678904303684011976569365133014220362486835289508422468514629942105425433780208669974387659487799944921532082688392808330098973428778500935858200638555770926760266970077286921932000155624122133825777791755200730915619583134701309671830593976512486916934696718975631806315372401716138224148304372533648650308913962653685928028108304181257158016839303068959012032367417721204652732769302183112493067178998331708075986108909142719539119830842340209453196000513565567877969905027346254098906836030213244695165292157407880497198622797502023304649556877979421725621920546740201113302144626254192822973108607596164995494605107092912958977663939644391597366605251360903227620847537668172007881195064802909181820781512366959616012161700750901934545080217641285025088854430465274098000860942119602068938486330744609596718643925554194973429424101200593299413055063069390483944578352387842548269721138666313538203822113009474348285806549897865256751920579577336795176448262713583354491181915146080091906224435911694498379775087445951313901720293449643851610150459564479255341367165261378508181392500369463804932818180600889433482688207068072185517134144765232843886872519200827126306589179994239880236582293097085948447727526168197412665688688595772210399826494783288559194065736352931809367718215488895960969478295145723345286223023101902237060429714251079453595634871643809793473598678370134280165815044344316987578322569626026134322691922174431505034164126790558692350185192377307892700548354052925261322782389501828962205802922013036131786860079323105938126609353420487772950183586893176724494211984573704636609316449511393706905981182258880961899558508686501548396736965744943792034800758354932178724165673864523253058783005293140570163668520105807082470770587056154144685935933880909760418888598812225216972720884381019965152182319201405451243869565700902277466983060817880848659246778727400171646078021335423489629260216431278684307395639617771585715143037135199321646965484731113050486804233274760582323491089771121732240114264364570011796338901978712866534078360208224295647606422365409655579987207314130120022353666574041868911756045898349206639386559973556937658106419579426144531147300497672386410754074347568720913429846267625066097492188263989974139589529285598219738057870113862985335601625320783886263404583094638565190348040567248725793842971027668810633633871896630488548232878115683578424072477268545750818691801457981078561701118853814158323217487343798106730227732256108453281199020287581241340547694434362469284411945806430203767648627103681761863065358004252349544438546746105553553505358611858000568241573013397415580898998070826372513715699193160035767651130898248776252424827712572237491375198481958403617064645893561070696285682192414426482877477671406495659148989879633670790729761719820377787071239706348351553958290808165908574972427162587100842865067326440118577559695031083864497759100046214055424837012607051514189966455218226916413949900162931797164173394311607654389643548237549354838903748214627271003398668526735060781589308660875375538895817066804188552455727778245073091746138064420495346857221076071558121221132073272030158448534800203878254229043704833420528035679138229404709139933663278889102607611611081051452780836972607878861085395360933928255438255952299750853055618823767847339855481659655639882159565502893131133741023706525539090023527263798944335362144532749612410429779862106598086440781621538432657789349873446903810260891244632389852490313344513888499005598929652238597118744838191478487644887504098231958299595406850816270871532341273351295553986318050647609722497092576864240346176856849908979619171618499155529782565101699709487013058110890054572267526053892040586940431811094559419013947088306715064283009980057004550503502579749435922020897975973671600802782730576979286274434184292171362732372142155947470394667501362464701079127052626360215115962282669213999815742263598708534072777095929595688280994327992449060456395568317335773769813543945970041802940931346381547431838316344767232824271010471373312883857308309131106687468103973256983765313602269519660491999325214560076522845850882676752067867327668868927071939935881407040211090825332970916379677221413939385578788015079290667327056402954452312585376258343232167983451933425303485580587219188666869356718741765750263562019624460159656123774882344676463798952640398928329307957814910501964545511193038565560517071267295751412931652436955044048512083556973649074977719196853552943519420662457790798226623338143605840964484093132875902877469548476194749981429672625363247592249030366369079091635329519700650796013321956572620444178322881668675669821705926701178735801823479829986920132676043728612791291924144790153479819623165717798360175900750904413642526032252161084200704954754413906747775174446214419361966747015215118819504592227074414780699663237262212822147575406329394078217673286925778148922294065670076628317518922686968215755544891202865578894848157786400626652346519344667214257165175574526233965740019723448664056635052278872877813833331738923976888474671916286896973364954783414616678179332587512309342787360159617799027487363101669420151985119290743209971598345740673493392415582974346644633059558194050885590330836514794227807867319722736966438091613157667048601426899153013419574185672170217329111695392309054716853211918244610381350574912169136184912485116972283471866928995829192034112575589526382850901918288981387803647100672224403309635014323017361105670725208400483058682444085249519444826452887327207983255226663561797772953268125366408591286174618757478743663754446926215552660582027917889195789653297235313608949153008426879962541421016743881948509195664403396825006828720700972682508218015822566360963573230969158770596422827546726045793428455496992234128955134035656610699307940406451519778779470112591129835226247943389853104307714532188274000120639413810922406044408182701722112694845764143486540625330759277856915433850988036891024089948121764988642696237634977045763666548002958756370578173182939362375864966212705764336378255999026322792809802195865538812613676374832763494342996197815565536507249266159277247059186075335419869749389717591178946258006915840169687724859589737732562461599296095558610667726457569427051472241678014614983999334992863311415757939804657836630958871607041200168363742979233935728038259694139043764973796985561161334237391802829183900946000593727724528410104061149496933344452793005014416309626004703642349578538057636700350206575698116505678244905284226960701225777016805341292345191994109861826056395752124621202848099674371139118925047642755878449886340689501518125023829600480251583493585235494376754425651613903499752232402782668515067142068660051132101724412065691498539594078257845302791718553882069312062372390137248242485122239957271649298759601202687363411604798378958215843084914115850579077259352296153001500250695240492768645801285677760039850055732457564293472161551127684091206699761801793798990696074517942733522398201568641625164727755227336206356991362320598575255461426014758113632543271163961784283860531217742745654417020098194370003425145499623730198034863737845481490976758476678272974906575101519480861885495193672112392431524529417155641849161783752111351032062460303072744151764201287165268454829348154115825807541356768752227365134255397718292877709263571325996788367703469792911383188131620099823523155518502500619081769165001238714968511260209086743741192842962627082232279192025489677656207639094169971089632720367398654253140665845888819808041125563163384917154072792162137861957809071354958677028881777519337475315013900916850008888261726010063209813121248455635742153235533835892529828509423187857278654922016546613891675163414923393764179352654476068662865569873924002482795617426435659961131003235881848209648789994116225959266430848126651291050213391696437479628517539657549279764995544249850956385419943029154093506923248521118647724307648479113700462656373248768598278158473101516963869464307597808191429928971137730779484616763486817875063523716520993933461795375114076114212160079276828361473751950174733892142073802007831702705359736891527113220614167894700108932885727736619677751464903997663280680711129689797960396074722372410680314043416052531670200718431006812688824853411618764405255514478880311756469034940698343438049024616744038751817577361810630146354835382370016563226565678433192717481096326032011307274531668028960672697945406524697120956775891616457711179915617924078825991717879729615744690865833019083341642312932980348992109043346536652436175552473238924656632141183231559030195743195240844033790490306064796378344592245177339189185901824154265539546314098398832085900476740208380962403472180032189690801507391663139198364779561264977780304234827808419764766558567871060541623777508538324576203205382735952198012337045877977931348272448587691462080394161666420943297374152656321091964861768409304801738992689785202381038138442709535201312612531719520464036034704348608980949899856426829545187202279192129926909566694792990097200814040952160207737076381722251632142894008435171002164654972296676795416214259372167502704630730367975174646634865058094984600629889820759034443992397768149115138566947223138942203221413872631434865884637037585956577648343499275044837573736777487979508907073908532071946842703144463881035518990025428954083860751356158228104934206039773064205971827568064289643074056029501385336622448906303748833726226220813409508667021467867844351349713970692402232663234423488547880027248696007329235450657695199599124784192788366895043170872601156268446855028711284479071639964296051233780547524798271756862577853124381223446211162235727444124836579390026691472785949957689573494904024179495161977070250991691457141294663314388324689029481623369258254926484214074363818248484695626946375428407291321146862339376685839362715976196757162811681329458827781404012421806558173588001599979535975985813113718197497460548904005477472186952107539894573603103688363704462146649889493817892297065958156851637909232984506786959771535082387212041650858847673096828579657321985887891629408446618090207394056796417678235976430384981313689291811670086079314466782998995977670591715362141058457892551529740831966446802642473096744117574440324215101717433899773514222084185659112085160232010232894085328305788693650350550106811153169368417525876125691252980294960669596615628753877170797281482989372690559357373020571217788890849201220591908185577015092258802842011625317300652463712283144830841363599546361403848898098952864719962547246905662942121498760643726680604834646170352264314480240542497499892438448565620432317300531582957841599774806112945251384163142997003641626091773652009389488923086169851847882480329012883816518108231032011706442285069615579770887515324683068545948927591802095722422043493764320305507561298758213676939722035148097342785442301798424236742564753034904049380983820903155920192387288886098445430123943096906431395160330069956425856747902103658185684100039474965141208741591810125015968433536532900819123994457531720437380694046149547121078905116142740211492225932016209087212166177653974553821199009315914301816716168073950749064385305364337816984552827046179003767937070744042555610816264194338155810775853068125579642291646261279701179468597044367208819774643350316069145794043446590212506020427308541006777913430366277124930096480080236397856132171084223356132624974262862171532808556130811639873782422711096727338822621400600178940079301264068345652110403185574570666333316303748443745699381144405424474246060095701604797209757087193971808369360717522630550329346015822619747686331211636273142899533425533266956620845022270868710194492279641486262022051676704151465120423174298836342947989956960649866446994996409298192200994854439085909006687894691093563260320749170190385912890890485135493133356901036642017264148442310538741731383399095011735185899691951682986600645869673475994234676002657227899542507935008731204631533333997429159081709853442323714136260377251551481539712954513084850912638068602822079197381328332356062914995720656168568650736227367282780251029991147142446844355119920977211905089788493395668684566921204375031055900548898557354770558588741970608065268087929302843223745631022384353778183499258021057338412779656225629944710465035222663720088656980540447891091271098392620529024059975105880728922597939330535617384332736028070750543576573343001859486609572848439725711070745408435349999018324240030755227121366327468817116353773210991473696150822856851404221497415603557704540968508102539658577906406912797290561711261473027279565158674627326543697174611969310978506476110242497525507961036466701150137554901894146788762937659128652321367483671534724040137737743637764301578091657302338840444892312236459291937222031045281514272891641592958006954709142937500123932942143450613113928323401082643057963295177332676405401537266533878533135848133964286392924749897082000308215819173491071160169724011562908011156849335223101958931405056635860698737155419966592198154501507564951264873084677727424095484263672323634913249425539632777670852002524417757589998204571523399206407216475510415667703147687272405427090272506813689574023037163190126027942944382113714913978075892831137750769038720295991047945276897333133863125364247664700317427861674540070892234068597782130073714122376297500996901974377818663432889993924409551009801923955580604982832016420017184444654943401797711388548231008049828538342066390485728522570813698620126493410710540076771084300598522727263714713511874613005019775710343611993114167988783951909921051047222017997015244209332215698138245505539164334255415185053458329899609168242373739598331498812801602284193747253236126272048613011433592562647456956368120495633229767446919005310722988961002300543474885349310700431592529344519258209038890282200832461901719935267260370348384863239000804607570639715039362560004703908929074215018745040343290543601871349896171551147511035683825525553942557641776843796274339346304092641168012744996948869347203293315500398197208586879382040038218010665041653650124182592645751696885951389773825623769260785120472989239648519260930329384985739831134101618815908124952042826328453561149947817770360393764245114117954020052672991625308320014310921722541358667010537170640598898697933756967872157807403815288507454877190476866684879993636985512894554052800053272077519384232905381228150125472821357941811171820605823094261688203128320408476247036590294793652680129481662681769275806010109206032496126393270398063720054058787924897931878355108944615915134076507696748665829653896828492365687463234487467618232775726419582295861739105753091312442664580977653141490175925657208370976434550513073305881473420038802839545804044027688568724493547551770721467687448304491743738527322515631752832367758647296477147789162859464132706461220449273669932557874921918970692606738628622344322761415786716205000259749392046562970891173808458504773089671640348200574393570149379280461875479333105165166491448946001712486225126430900523783510381041145249320327529238245606834907298342573151143852830619576501694408691344409439818276255825406600200957083771627391665697781638827492071938034645067050633705099121537197737722151383999977798178218547940464591620417022930663921014058499643812627535682607592045141568248096922661074923840703724954376835163219064902377086621128776942233838184239521664250642023086944788218858816761679919326502262288628523947630425616002517922483155586255484251750909952979835395329732125244615982775961729555494772433436895569086862844113499709751346705723560675476990516363185022561199236506344448079261702776355139803654685498117265913027168378195007541521417793451068043461889371638928785908696302073581027414353022076374437194683190269613351170301447681015603953386986664509416930108312839640309714234344091685048529301557468006887881764762403623953580214571194833588933568258328067675079528654946124786514441658358429119081883469200015621942666780248031836156757963006937173448057397890735187642596777052852730330131944858241925404467332740813196841502042795073380515328023551377997205786034692293472594871629958330308199430898557802443877640051067396458152530606084922170035102699951704608338745814078355929986223711644864323768846622942006708891940977736724552425211149681940789430327716486012314036218229888630134798045825820638758264179328139921710547226916539985138578975587012669510454985198202981865951520023600111970010386057692333609307577579340651250993531243844418099568278684584240387306298319818822825580193104425939575759666979403340384965334227123975302849112714033709324941590032626718098595540176021183580902382375340060328903111678880892045482803824572679656888204120925193583498940267081352949601859981076156399299833181624857057195400930001739767663749582781855874959418292620107709434697995222607494276871603394166431932949596674192381713399581414329715877595251925405977621718031496649616166698189757400702271843718117805809214601441564808178287195674549558865138538004785408850505895467856705103981395406463710686611981654622419213691736564000100102128093300788262416339813460235866749917441514387726872572073311139490674741711221208670664450698995608508136783708912582592796967103179567214981210043080585656162563471690914878853403496041995471523097795429514250158095778605408721733100116815931504014865468571122078361249628137477610398709692636553919514408883027997097253010747426378006236666712861693602948964753842245454794380877440316152620210640747465524172964330648515161451916456432473424154070959634700472026571062863968572615842379684483758655102688168445555657712861681816146826509263156983066497984666540246449323166770225910945779357299122381842248301466185199275149116717092487705525825439237375477209050988253866625938845815470319268858337839851073880300239489103251853634913947957182036973403616852695205099001543559015372013858549928062002050112239689193609258903293343223573129632092573617860582973053703275970087593387156891643336855691913546423887103977677639348029735821123859385337792117580129663170556423681943082791985386610094159688492901191591045558144779340251699579030772468214876288736377746908548701048305023373273136311816202576309558569372706230998646507392002045095267550097548700294121839016191336070810548336218505803749703982160784703449035945546144091594529903586386183372715798372916527310359195497005672144544667733872935090593605401454765328837957657155728137575914667199053195076592395505102260954799094470447150001598722174582802467643514588308393619600287619185889074936151109949299036817461541576240037718557219138509589615341222818848986836573199470307303207709236101532643733574472281263444002935103651537117962194468917611635122653968015322856083847488061515783845284299980764771202136567281017066790083892291006476968248826525763126385753003556051225841608910778729266039091042570059868931518291104360812068666493778710385535646742798478506186880448632558560085701596918721661548462390761077434572272086111335449237844720591147566518869737087066786801787254527674528484953283353396809963080346958426561080877281681133677048410099017068150162129011350597389657037354645916741730058624347574194571590042482623628001953728504482820409010326423478591931401561031603677725800930392315458373311712161855705580693405401253720215878543726790208429481242992205430669537924658785809847038386691906365942256359723701459262743607325153279579173942559553272636170253569143643546845543441454320924743502685777975848478693503671642095129999159196758123291823600041174252672409244641093773303359029215952811730604985148291043651993227633982264106501889076110933331269758259049438827294529694095513637733795896566756707455205041563269573781410297460095818993390131088449051177637662450884037360963828286506403946252126357963213567570065846867076794725164713823515966479404563132300074797701106839604877985541514105234900873331686162313260766636032678862686839101246596425572358984053612442344481491034949236915557570191875557879219790667444354845332571745800766998038152505495438859922428640408031830153945967716276283853335176503103018787367852954031710493903237470731046350703138475196447665497783951134660191494730468470814107805474079953779719750679671550384091270644869596752124019142251823376050071546201349055014775676802836072189517639276980863087419629343812205039578584146269718413847154069535203852410867889476812174883852989786625578180904404276969740899329874793518433399095644079521981017245595539059363827921104484437800055583181349443095514899788432106215510402034151510089578805636320399124611934717715503227249651229116617385061204715821550140781804610677205335076885316632295993928583386744490582674794278883013454639648305308093255742964772330995375720853675339379159793284020002636120835044013721524956842978519155398889123418905145536855534890253799035178843991304714471969422416162610474596959807402136068818650432676896196507017309100076159062637555434920101982638767444135030881633268508689504700464107690884748178266607500691841797620263732609082432746671690867521399224112338209932384799964704302728086739921050824123280561233749998833655168588941925063043553149829135440254245757003203579016922336062258490615523116411722910771824496729809914254104423787365202558096514206634465052858334837320222243197745802070739771337252319454281780173253852720036085847973330226220382667674171007134606849260715031294463626984201463760812046556497341405094345179706796948386417983121913102123272269382014175513392483907043265302076150018182335185211364208007303723673110405062001597095102621306380788387072427400428692407789226319678766395660282848497499017448892794724084747538596307474136193909510955746784321502748273775403619891463754928496219017951951108347619448502077776889566980640305140823982575553929768236136677350860513062490943954419306695382103470150373837377683587601550601549210524840466843689787853099794668730674942427243086316305985266158137720129767070107852002916742122883769081440277825677531946772933328500820071654045823713101757641665081907090268180068524846386135615945601574424530942274145759808255348724237528146104672094892974650514246243281071462315887817328480967201538383272379426768915041763280255228695505458755322776570486055780402033504070668742901798588374845308917082033380128166597986025241592692173249308384795565256868520772596094526212655296026882955352242630415645464545298258431828825348335456141766122404563578550230379601684569193968843772468809594096411967184519605317336579084648361854123062350517049087142425009287176434504740285935462260549970255169217352283252943300533150105577473514051624732640146294311385962939690411907723569362350897784704434890351536923267850323519535713285267339448814119813524282280341834509880506648811358898017553246936515340680784707741402030236433652569050295633365394182075017689782386445347112728151366792313681405705612517224885427661168162685315047695750086735744345066426641227359520404087068827588483881668575764296567332796605557044630112453375144040857185164538454608706058591483218807068743102782302762886920490556271697033526243319529796392570271518600968379954590921911062474278683830008124922366574033822395128037497227136265614362081903672064421837385798360121881126469068364601494557173825881406983472532876986502770944292091721098452392815737866906773721647915567199053270786197520897164596523097320229961136764476744927906574386107322114401298441520568203337449489640546781763407221443387409636856282271613042742866026103188908846275675065743820294022255710310010983599436173380339768647019313972579633219570625956063515858474817355976972328909626484620172230616109026142828647965866507549890916638881119460899835644982224022645037670805060222577348060775175134573419702682283903315687204760820274977333056865210878611279131872114575167778107193582551374345800541413736827895150610499501794036170125586477099334376864604596244966523845247116211232026779599516926637504604920290413378376645685436861651561678358953300061131681843570731201312120044745648001473211635655455139414644248071752098355323171412118529059747304156318937118137078644027611246093611323444029587331983382597567004104170269509612416878682501215499696647396957231866812771630736999170308510850364077214446335587535830888369611057276155718192998539208563546776764682528065652205487846186780293689292024220368330313609728177880211320153599873058873948153707999030323576039072594990588416220753082171234392547836253413077404260097671822910918941375993083488963324864819973021436934436102573928626186650058438522389556701393974926685806444776398813225597022467014983299722181356463946997782328626290966550816540785853550175293666990726082444963491793741971194038921983215099283665593712324696838248597149635572811089910087963450950306721484735306891148211112187075839548865855867779820363006217207994146235062177937593275287109340836713711624999866317239800929414344647669725540370401765962505868111272408154336895033488663775685045723313098863342214426517092656117335352581331648330364225020657578949197908004140602185683824306428788260625614995551080694998144085271038445253790132113374828993197880154346383342970583850451174024708085144134987265533175470675234328927447757852382309686813926175745971137474642798606830191086676202895756676033249808190976607663594430230204689346804703711019846717122854479915249853650377260435991814837210493021420045464555240808891155395345261590915578250581636852054509267736446915117789930997204654510745606501982590448434207622760009225114035280738558937080729853091427464487507971549137825810958761917375398529191455524245157390133485819243749841609293575138621261924524355587223561104444335053878810463642641913770760634987496087795057020819686586737611634618847859358626485229422704137323307508221140717443610898618773422209474433702433082785601035615898241987664627638923901796701894854483019838307445649365557301012510470245273098903001986031065261427028633864217926255755978304194978529268624803342021085388695831775312153376701796571682462129261092563587290081206910915612957179059214080932916441818877802839592493369796652278300687234061761675588616348189168223306582499705877255546479805316703522398837696312130513592272337905220462418692531691029873728116228308548671024563053514911392261057762549303401025347285455170918855735710476275609003733142154018210130246105860237328744962203510873214479621340948447818445556309843274500187692507532057848650337357359405949127856839412984836809742911657583273239633262656808136499289184407045740315307874961204270216636501380183183785154242537045915567899785171161669527611397179416885153693852478307692160619631692589080928241128132336436731503473926856147874273508160579866686055787692664558936260644286051519964769458451614790989770307222990956078687817563765528681842135957229804123553177021651441023711652556326435494529896955162862201884314763194653191715267085820639026509452166419069217133165988157199368567421745370231846383415130270788742139448349623789233298498771798601538806468637313465625791102858444783273098419269425271718764281936941655287217682996433373659953760098308791707567118596104282802582651222144133843753111499019634341685072928325241752785523099904830887100624139058309218486025082967382254908865914076933061224795129159525271165851051604252419858406819851134179175288060339448641218466758346399857379626622355642659029638407766353053743083108789968511293725057065916319923158511208438981793443998622671411543016149431100587521593409442513267685960455544199380858930708338479982790270164198838685782852104470736658128662417739983115118773605652192919967338084114676475925032521341692000515321355017481698856589235031368410351358216732259242363513149800890732853752348264652822673045801425782319213673488519762385758082414104631565085281320603869329238810029377262946271997847209636742974632810157152551768677383121102290810200406263586979928796382038146007619283218926991190705754964311333221771744029220280298283009245187730801010911425256117939659973311435845508297989597549182392854713295635747273535836849691273201521473696128109248554972227188539880415999537003715508906514291982659048976222713225016870689836711084962820274168883892264458924683088410364742939093430941339132185174609073357368806613566576855653926732501115139444714564832145632402983137123135969679999846571830727514168003386125076430051333980636508496111930098678378900198076918031625729980278227785980583960584652958797733375969689724671607220274275599672883615236480818394988370670795439934419998607235700736108457342469204542253264419827240143010394003097767141450935039719739332639514457736070306569824602433908769457185192218567027382900447813207054694416514265097352389555744587453848084072672755089454979987226958418197470348076504411234700856204186884953025848877918238624977072708201266631724351895000338874400958909490176288566807456055834422604047304557772295216363630118703233358429458239645145073319076661128057275221035583304359352413285899718287919925842831956578883440305310236557772094227510509115643776954510656521924757318552102440481253484091301306234006858831735855162315930285852104558358042056718618379338316519816344320008591524019864299192761181493146705869640270619665790979263678712934016620036249447361823607724623047491859604265651446263394415951378427423739983725810992565490151564186056804089238492380835604274646616501320057617231484903682861257824033326424346101166359456541436473998204376453092130722935773213774560720592464212804993517500888445424490879518024877059670138138778900841009842776125358651955925470242417423536837004422214802961235294055121183407441117558600524868208126629497739395236032544473447826412785475163413019752159270309659519701411903890232320593472894655024281042690943669715680944769257800866001065094311770655575790618451877367580871363678620047490543624372093341712957372123930117925098512541357041509610447591073600618551224203981311391053681888789524684151079992747305932170046130648607046942521162664657564462729858336073773704194135964149437813988036986966953159935004081031944671161868048771632222533677774435758844725322216058880688922966471009384726386492895618813038460309060769574254328506685340843748209883598451253445058655000276625031020011818083294105431640021455077581126171439624337013036024592454271475698466577981469234534961810674272788285422043924710420628534370910599919073705096993582198106190983603821594447488661183413755032118424515796635517209786039149209892380242332855895887409119902223450181390371686142425968030498591299146243031636006671387595289832153326172172391394759292222513170936076294524151741656534509022637360691186283096545767360918449164961491069036820684928028991449604509333811518509314912052775237411274519227678614056293244513195336832918504964733607719642963351372524103408010187461746349920199744079438898024617731515303219389523427309442077068844945166868845803907596386797982259281987378442309370264595622132852365905499969399295979483094912235108427024747392879973004575011216138052666292867742177342959989171419785892106594765269206096524445873332945355654608031275234332095120382204153411917878361505155799680232397608401698561058032822309033848909986430215943986479575049103833221670011160311069444678699423633332963318583231852307282295058544424845575105350683548946388668633261152383398390140248612343510367585431391861342979310884541912998032336421484358925989668788526143796754835708676038519178270752975891685433081873565679302964741127610974539103475994401099643947128147112665889359890212068121060901463591400736481071568677097004514636028960109518589415434774314800123473085011088184321695524409787458523631205738252787266735226107562760698708353906635988985250941975836781212397812038031404803251620445160441192333989321478041054109639643072474210641263037492561721718885844229033249674409618198411806548662523089836372171609958336767639119073944157094457419770741840617803419791165536366624133315708725688839271564924338848722901300467265776032041357642563771813841531822791294466171988171226640897341407969243689242627466716526127667543272251350995997789551408909413820873768688726505302022551334393535868000827849348413380755096604068736640957202916020440141462493655241199212872316509055836489574791825305542992134742771336331189536575092564169833442697804089332419708204418470606423917746335465717058477861441059182533336477737803517532051992353772648324903089568094649691362402057905046449421768730648518137073987407078860515059316348533067179750995281464093442193032334587275240045325956962820664446024483403089025760385795717740890498547328686916864521640610695613745458630848095460749503853486639589895556133828513536129427168616516716837019111963568811432294077487100367291779354832975644475798931076161527772961087257331906037954693569789781317014160235776567222451420340763420363185961017215114169039777823030466312364254744652442975524901654888340214995085618802478291713574632250201401861430380087369325083979107601195543330412992161607402496292390269431744815546266213514732636075256103276782485203490774406612034396072451038658756513280119110546642578406621177298173571335336769185507371838150586678459198791803227678798351468867785047676303627361665206235885157795671446619957205531699632058941544536871647108295562285120218509330615313502224331855304364137292097289966933360978681297919040437957604048498516636764583667503137881177075368377981814207163394162831703589416410565447294309585815031209883686319157610496631873565173570103117759088454962571574552804634794773607296688332637737776595410433669466247187456258171104986549164508209583444626135388658916441826777499989613284556105120070641881761955297648434742817151860508456263117625233615009528986268166734651829702560998313763217788502750008455298360746147372424198543758264410296212949203276324243143561852763627935672626016869606124527891576527285409800723471999595279458090591925869107741355444650446823127463793431108381636658492806696804169801370532170016462928836489239234795348751884502061026910159880287803608404556868794578227908745643365364329446594739900704809342940455955518309438034336175157207634678548085412475405572276439372293164335214328272914479457446479470709260372984215452915343538387838065681087157574184409517995289535792753617814286905470798673425497219348303542866372246945812947390648016237752888412264960126242176995015259167706269887312058423032544982186273599263383362678332279118426146766921378562535374670011970020429336944181576557189578161236448406920379434869429236853746741738310021868703302674656199051444395885502852998282639191452668365656971321210168971105880507779381223095225725983355335088523271304102412344932214910844804084415052472051651904704616769631833358076462100586234061452348756900122027371395912750151930518346738441664074227512257651412537671306831321180584227751532207482029542264570406818978195637543995996735395155557962235736087947170403498415127719184742560112538856512869744446192790218472069762475019560920465537037252415971149223793040819257059699255812119559777562863041969068802338777586493959307929547586394842127393121961750260174574707455179402823183406587648385529369257116228132002083940449684875401875437240709884784037719353731008483435041730585003637443035356215784324964075539124096274866046158133874070618181245905331546539101812741327450188858095619536318608723254478863704008962199324243670805447292787490516820422719689186495606625886563752415051989371791943217320268928208125243365845125585163889881980605872210776286026889103925099858035656586962103877000585557423150297002324589950503486886736803806429062622119155684703727433278397109955285729795516478820383836211883880701047919434645851614615118611683308214590761011521692761434448291483896241749226163408466965394207097313564715235418336268809912019772626376449996428800557863516558747040926392714801823201374809897780861157454927778499881533929882802143678438271361173783180213517357529666462006511435618263091782383062921930347442730362999308342576352045860437942207321271198666359972938011261126847438991285670284939674272816681320759921114090320847247677581746371857203738700647669102135399566700778549504877325528867004082427558105137616078443575566593848463396660712185783199268837260974842218617664652632688455596055409668472128632182332686923356797395073502590768429083006603031925330983410159077646445419136190151427371504698300962096776833717010335093944587527345188051562352487361040194412435544198495016866453882096858117500634134335816333384187446167203193677093183497815328022555535944160389796357737160163240189406019752987286959422473170834105029835508514646011214034860203981143716903725328416150985414528831284978305452937679949823187380477202975266925420062522036631269732419954136536799848903756615513714690923645184251552791940912875662655172417701464940600853760584472582554018095575291778426825368222662772709199902105444847794661653198920800438945921433799752307464776914742061105071623249553840214668440664259204856201587705221424368181251712037987568228911479676675287798783650331645629980805789969749252690617811651302921269644567420896266030509850812426760498526654602259971009859339925022214820305138884600708659536356783686667833941457018792727305659856595465883843299572080497159176606615040817195041350482102505099871991483200084322628859957707772538857890616243442427536539365797804821704626495752033224685313607744747857025100473267261589141670724431042738479204987691281486716279987630817416327189566456405978180380948361122348546064474903410429308442837975746769164931947266868109948766058217539658039422079650202539628945642598047260091719708039031935367247163692790911960697196670619895147171490291850066418769541031366208592925205024572090555772309496836879981693768283470227970595725397938779281966297690742888083811891367618758809522015884681234797085296559567788616803142136639219570894090290527126491417657819613319761802168022146451293494600209992129015157163695185204664017226796143681162250491225961308660454681333447300641422393452150409396776076140664438546743554656669541260943821398478203062327478085818567559333473237194203154253039312009132558209478507347224319889164155223612342800355807941722368154462748286378173969710051692983556111144823598541786683923312635135832138160117218438698052536317308333963763018956127876811688626388197958996721165816804336619435536334722398758778369815448809157471007968682987707773875159556001696674262574311310983854788216147681793576240367767896214266381147641671618764701352836155518785930232750398431247093232571378311042896947277158465854146755542939896815465660519811143571457648066260063848690334046194172896496274258248937875038654750088701522442765946090308062471976739271508342117207275565808953127752187521153845451480444293609628195189771100284259073241251070769038958237709169259459532736310048046533740153270001573901641518814056741095385170455220772065698120912628701849971475528265617673690808145928856336931256237868337992781833276035654822173454660702648678632492393083476723929167238977119961812737738303354796883035039318634604296127452790280030983745760763401412758818884966713870656149355251273560222396407529028107735016108158518312894197423736908063318709004804487666506767682060623022168517558485297953930073747518263546769083904623099687467741858840757661485281813527957145441097075475924001414667811752184810054269011211787062809210331028855425009753266941547525840616757528901786047384400137234255775280497099032430901563670523006691324556299957685088752185429071099721307804727982492420974880700861963311326657957422752479016106862882476705663243279067223071919363228061030287100026407295210432051034490583895576078109790989230155808096319880926494082246816194723245676519647940149164127738417128804466338815394385587089744056014369460332242668314862327615167682753751602455030344420791800852087322134860600190631548863820055646994799733499957438030961448857718198999684808821088861376541959332797318130856144893133947086162452222728392189022041561335287080104594929603415897311504948563823603576238689792095436590489597975931950387802794454396715078638988618992643999010518615935423113017184326258418424182642577445829122511151282504057377050376929004397961131504957215437827070201429670923328601075936390874019963674957347477000178919510762209587901997810703856284436688212170451124925586201393370322030344209632715422131981097057014981769961857401766054461135903015856903392062403040583596916840297465548192321987759612637936429316673454338597848959051830451545710701093144007717025634107123549975087269010675321556280376643701130815896217089395690787258534294820135456378142144922689083384493551557519775627897315335242736686092621764281168916329374183145017705328805792350865174840676619844594023650906684192244536349607084222838777180414355499126223875672031576110278912036846653558726725399345771157784507542837719859840432178513309928850169915590112971787785571321841757480969760477323720083299940832758613232848223885102636132398888398422153019540056992438135630756931434061855026303511688904983791223053053470167816311159448144436199378243233566374434801325574261020889131927239223647603817877986921304023165023126217356521027190137308532627061396412774161425401484182464803209460596791245169097447542027829143133592922019408970480344916021096871399449086020597262330288287095273359443171707524241374450211189071614018834860248240830595882852633106923337812934494191165010220020004273569059668832074158945356739352222769944083607700326724183509753601248955619189157710983534906809727379104376964043062755565614682112290666489189714238231897430968367243196599030295216856376642672579224261003843528393539663867673173284366094313199996732166626791240257825970655787121419212769629668274047612551421994082461735929799584000253053835181942856963146325636111300884576732090631731612226697058227285982067006679192696815121977554030888674146335134450164375005749702362333061678481726658472018286263708076882682648608840584297611151555243690433369179769137242325527641847949129598208200177358789536737987817631401520069069942279181035969847071915947568538388818427065337097896248478340410360965731253457704070486601436687014358421101575415943908647215672753540122655362453224671579428706590355595310148789454473469175634317188164103197112368465424745159503855676749333162396670801772917592424317535691086009951607355393501463670943730970423530836759206095726382371775988957766444288245472383652151081617295234981961288557279487836940698085461627823803251474037673150963009797146353597593772351587310269683397532091562285046508244897201928305482641992003896175902269388994626376608375923608110496068326947527841586630836162713142273278093616052897247674843855109300428370500007300632803270225389330238471419598399330403637026316564373981864190718636423388033033465167690307738484432944492659798212881792536013415266594121604196615489486893161372900520347273301390521961816943517223546698558370096410848120227557811475811324818768361894888957454685126476477166589053084110250768209392045906317119904360713398745197275626724337484792391096390077485225196640738039772197408742885992573239963205337187655080445138966796195001296981113609705449224234862203602436545972622216518787349188976684183995515965947070339269964426758205071323643619664798721797395423175978351782913440990031961703778229979117765758223305232339336123339637787391127540151459975580239904497628104812867086163905813750231004836438079861054250363814028618437988037279827077745662315792541298545743029049469423459759918104861200015178230248885959696377635110921645681388298015113430191503781682743146950782049430142555644499361644195474206689188953691050607272843490912077310977430146677469092093100060100177484814054816346188905265684637823293708656674640118608527571055153827665351272964093614656432848930747438812451640685425278954783498562197049417240195941831565640254944460315616141446464039200624377980691443934023492085664625881358212699768383387581242504628179718093537579849616931003282747147936627946829611765845737456442695729772489356352465497759964435380603258373891765468319017354625862886597193530950724481130841748126763994176024070531878258995136462165728450203473588375616704716299947046051943768662747550305167003735283609605864778534756081734059328931351907083332163447231575014486036903468224042127414184773899914016964757946827130569722668210803419605707827880937839103093400924303009967331066550729148510054928421429125720011674393691406551182179147676081706281175806348801030931043472002142846288159826253832637235631061253684589399866859889430472898678028956814727413861216342783319504064050496109462703701669180847926302512101832308893162241240169890827292601866664052435346790769053652435767210682977671359664612744590902776533537930630383012379222713030679768773761011367170149155821993115537296264060807998431058692330301391136473785845246431935015264299368246725867523251086508527518632244095940992530901832353110746462187307913612724404551321152578410768570771612665285976459701514866235349198714239838434436140954128848549933060540973984135461046750407442725075338412958444200073215295500710438448259560692964461778653295181328481541729654949301332776719660725354475609408872652563686982419735016738231792672961407243664768244344382224180792425813233360009781029332630491470439383049754173543253704051189835174492534547934146248487734853129958293673448254144038851458555416479020612276115007720200697871985807124357283880460292427964878801307843478759572195271130724698963841904460020149313567015913088131161360094457036101273167389400819395319964092997941987045517620949789258775115199358157395941275259074961390772405091281737092376801221617836997988278524561023592642896596204113227724957134474035923107450037505973939665349305003898285468024584577924267903388952490358075710336505648583436364363122847612212074094558061252241028440468703767713236977605307513110680129932910074372790084670440993886619358253623598716114698318649369859060084289532524694232612120864584660264947090372284908873789783373279119055699741433009428700198725226918118716690542700346907689000419525741746771247075174825799488833766450325835238572093008102322027901424233362279133004139762448082711414439502649917790806347383681948669371474890863262525853594574713098205597550211330177829767687020449857888648203460940795330532520354808235679049480456819106773982350542941579701097451974157066943626278298871517368034116166528270516127619748949282715054192061206289973726945419778065174732038680900309753560082066399369364792369406531165481004975309953548500636994526091395364973286627182849077883837381407503363770632186820338807829093403139733578362637276114965276909802796255191294430082676748188316877029291386105255554205061715823023691200706074735968568924178146433189575004964303247261131844796519651584907804509548509854724350841600716046673085928781431588675055128135710231178622201487305118735018214722568735212615824308229684798559228299806177379589569942733945385805421645983887031821656371025241562173685670550730177526373446841091393159381870742999459653888801668620398296479140693429462502090481320177604249020417689521168853382672880025781661011948814253563793702418609964611748681027007740612874444747166564445042102893070803837919152818400654814049026396112151423830836369130406021861559463410792420166620103523125278720594219287408602239494083091403575465498725240127634321547279545919595389875056875991282034926148297737552492935302303424758260491503425813231930287827619252307945774514632414276155321822846865546353287947047815736710750983067661814873869712671780173149705708202988112652766541879584456782682188937741452605256502044605506373957199083209482034316832033398270892206603506437851842131013176746463401127029906666319485965303226076163918113609268498381054405507776912028871408177753305050943311196023524297357674119298789196409704774263642147384404627645060792212660952281956559071815345479435040450998564822246261101451111651435205580008084362257402988347181541162198331787371433156384897581295164816606863124397207442118086944119369290473039784228939916459525407898846481348708960134155718494082408882427446995021373123655859801928656760826373709388794757963265178963378726436264134000774976973419049391387859208482218829136718961515852032082622220075734189815063448968072880039830278913557577239703093474664167017301901940347256461114269112912569350533965610866656284493122387225004482414966197090572889246931428867059934733317071510116769716993952744996799806428199211156735253053783445764840970432390034787461397770186768334739194892872389062401666461589971894763237276485275021370360469030261019182294057309267092816424851604201946749054702466253269658191438849646102379686527738646725876828274206405479224089577749730439116586881083706872289524957897243223962889053503927086944454621762963416921567437467106204434400584083846369367057666044330793091351840848429669733176520496598884472485261990185853262700314446804992138735710332982512892920797104841691251318511779753970921594211839584276353188094632103569465351605868034094497376780825291101291097256633722680826212313730621828176826977497450643491827888017592614754539584868631016792669608414472363923634416851254203092638819622749198923774929132368700655096687223770374453295082251807261285471324291885288650720328889759396612158805255679552067011164505026878080564744016913963095103586943976974080508408666257099747857973692156529020071438577779229648528180712327287202834849003660376988464006540656887820075903341110091790356225014528642650906668350803811773561760979744971743794094147164115538800515151872633660923179663757391666933657347439750187215068461390477061007455198224482779507846662881478758917247639800211655712888968896812218803226628900803152191804166895600349775235179370116819922254354556307352166116681040258352251022855782299675875777128671475661436852138444979440378724169161083726276662106629658729769771385917604853655210125752422931204182872177538023873750767220138281891997573943787470364346282262089991321389063225052682398478515375568580753849069682580874417161660950250706644500271222707553660789797771787890136019320338370211125277382206529849043176943179126088033838250139615015929901053744184315754234609630997226369797318826270032428051971471476281917511414211628041774345965317039345591648534243923552102819058056717032919759541513340026285137892981501144215413738715299352304568398871272675384225659465157731297846104257127883083115839132864854235752892050894509623682351903142234325560432915378944008433378851294770874640962879811164557369377679603688996281173740887238613313012962517531681557546930367314947793112629064636169876297231700210115546059546216921242957547691757542766430505284512418305617808252880997708073686527177025420123186229584698461985294451593834592385956224021233562176436348768119585011631120688924546021160576794871619392006374320155376558995750293487041450830111035623051062469173795854130973846052028242785460385513952321745409560647728080056888313400377682674373827028277423829543075125091847953722374638863204621559674206127959715414934188324048083461919867962580446431333498576896094082690299536753062189622956325285925295272956894252483084212737348922926673266511270505202905482253084388823176142881146354669623201061225877744449547958229169429363256739145333405290846219836456427479027146144767571979148741316038383305701548742772469886248761431522772532917957179104755937447738171927928430244673518928982764392840242292627082825685403983264101750379725389016664496607435094500235076380878450903470956078306556681533664128038442482481273818311731346032779219272805113926789142683578365298646700822966465408992063617828261614224847545968276503503902168220859907359916186313425614037521937122139516820807369153402936002094654260815978198359095993483814038164436073840366238535571600869375571398046897295574160899682333082004834743646073984713473542880888487299636975715965488040094420874902727159390230220255001227869385608915106725020836409114500968262941823204845833878481393498603812793967573702100229661706289637031341181650914622543104757377752753260584924288337323091180843814056070362890704190872952324770758618583614108226425831233250805987641193098432275761462866338978607855415818588268156061705363472200944871504807749012095904935272340495109359004502259370514726870998184156482421703014094006251527647170502937969503582045264192774800550946785671823611671568495969345143320267533367730921192565253472551659302467945784757618237600416045890104134879209922061063241217579793603129485097610905166648152669279254501000701290586058370498544304781038817550177322748902963155403227885715468363819951803915245828626061545483759938483439415283744088362518545644288263659476713943881081459930006436355009407414189819166518006130646177858323592739688595457369041593655978676417363145750290064827134152033656692186605194156297686089932990939329701825345601771103844975826049315855645071925864658213496795230982743623284520804884418463707160200115434837283878330292034347116055291301477483482464345355620495763749957526232596175398426039697447549754977862060679776788514531900281134955161750328469007725155197112856746487209468696357601819151535962093620594237260299404599507734644579959485628140404081864999841032471056309561433267195961619493189303671526214299062438341198034104122880161896435019641327833774908968502659868927879501443812470470926544344198284052486423507818419408939953423638044132495668954196688864514759477844981908564336725528123864221449963923235056945673094807149777546593537778653528876028887527586449129733476387728121485640453670426592928440210988658615691038836880711118359724146403313344524976187157995233362593276266284164754938495643085807480570252003837135130853697564694412687349990176380328540020263646597572892623484259442320242339154833275458393805692357657265377646838165519276414626986772712531401584858154106617131167848109711792995517722717546968974077629818266271444291132358550031662809236117430858274122626973970038430364560321174425038902244776482284698169743118496781140167140036359362429426683605902658223766990542883132301007475337297809430772306182861898370312336646308631163760958215369777162390258588624853290764555595393069058165165408551905232632153004007079927209195097114442206388942549721834424800740802602440224598441916677684975886745283474935132293540083645936817179018744362140008489613687748675588342257036112164334648913254158329785718469879241405259993646484724702255168533316848096551781892752708818048538393629361290042331668077030807051363801342004560864718986868367989364356399400379824952951946403020936450853713035202191273549692571903627415908575020268983313598913285761644735429196965802623391536265839483128487401078781197328453378780425093220239615886567000638897411687242918353713641486817000969519208954732924077073382268070150288427323421304072502985140021972554110445304109580666785677483514296988013441396107144251806212610433807678271723117299592177846591629367218993160265901863555107962585941511927057317435420359242515933153554313023204924990542733775780248706850586438953910652973039712286850497459688316392666191365183981709412031071190019350938739496454199296180183187145054554593553342404773758756925067415794469286370431719203684202062874384802298204382675506801980556823908234053442078143230208179670267579733940006733706727380750066569567471075988664253124541687954386487391593986961113089877365745131409248013027623230989875604714101691773040663043874233554340075275748516241530018957233365087875237034790266295276248275057507914704076364566148652016203025380703025570093740790235192201034709614669896969463215780888693072558494926603254167639070300648435945966676223124116154784402950196867950611657128368159127321276717124823219109686016047197114281521688523622609319206179019140325607651861304989947994213987241171262738508441325992201799647035868874427978264277115007863525133710467747676437042642684460393746920437030773201068503231257161230988353530177676405093869963990560382793735645435075325842716320599003887081915270937126906970737876879779691876720600259495600901238354977861194474841903464772098225300769044926512295430796979904253370931449485568479033358496079098585041830367672273575572502357143120402644991025957426967780761170525356225883858240006516236172791390039577550601219688950110198664171672345515248516980657160864650395210888918355299979230707325568326588690556042616725468972122185435639772158045150870330446115097681854702987049876282982288916082379360518030537919004072380990736991072307238559710766666775891544738932737211255963639244727222383692411551879050969580737011379320540723118781053426827873328410766095965619720237826862624598583930845944363681595090745360294534881505393198227097673980555912093605436003217635126454298317705744947785782434676812998288899602377073951721910152724131599119337620018249212227106189726685248717588900771163215719812814989484063834581798883874935415793290477953824447473207903694298148037919028826435469873195184353247760881002022067446568396787276981349064185839942676351342078494624338081540295913633272265974401814406556114827463776715278229137567435409999909157806777280393693244624885674928945361358722414496997184510265937201293963026121553998708765720009281039645748185219481186968815957465977981442660134088579807407063565854469507494970321430686691162642240723369689106534448185629774140639295669989403944066078706727661263130082449226801899428978199782809302433376729997837257921591794318067370963002218211325383606126393127892522369412425389315679373019104028949710236782436412517120333089277642956852257314190797604571246295045016961539620852267903379290232218763023141374663862342282013431415299334173453657195468392056088459141167277373516595186674597976190677911841400116456093751933517214652598430543579820792963895748563742807665574571527838591856921938742338543564429823415740477920534759788143118522676484227714460918579483836746607899815731909435290969402760125796269085424183462961850030537740299106470040519982645742479463664532095468556460175313832541455408640605660329889794916901761187090015166423678998630557672996581870750842927463911050390307754044046940181744662434579430290320550244401618153371627256162875133629492462059980197948683499341489940304809544375233972299316557693618458482426348545497602183110764934811687777936424148765845044654042380240248848154427092722753249842480410078416560758872421896365070682223189228012596679535877997691121771244060513031467117521197031662980765257872676846535614824593053472452617439155919506384864543873660181755809732309337537978679175213095029991992182763739029793662620238091431063493650033418273215866743128436084962391563431352293829508286674075213587806775409941370113379226345067785253651812576124556882856877507692568407283539643971755479612306953684485151723401314455455156679961300300002592888353352049877804190770873331704242450229158361635612738724116199492401590516777677092510250348994981084117367683517885571298810140317097119709244658898717369955866685281978401557362439269889630176556040273304117656470589653094536078736085128450805981363705788560130259177883532024441873804405300180431798914470333400647121065124780211667119953685445963790107471005538784170077625405417353216119003526024747754647206225040885493584706292418669168875850083690067029546149479698399296298205031988629458037635295311039524164616190471955331196492593337128112043957840952500860947290833244453609609604925178508550939932608697348325698799952284826074274435135766137608585899203596147673401115218780384148393143519081863508711425316154688179774398756609579631780680268109348026574701691939148386319441436288668249749631111884865813746717409981888957112955574400740353307974170766616364689390860569056016998052982869526307833585264058734003668547198977504868619841981936380261837319644394049939124039256534782647392227427736698377455422125092632086890588535383733451128369722163276604080554613830979456501089938343516891971672018396872601488914138096207603902099605357223944055160333639380179013032874797426740594356961762641713051938983092824085284175315627870627971564201977306754858158305141113860138911718301973248636961312277734119666332317642118603678289333141147423255601771360441601723226956781074681616702921211937182418667673540493234878568616372487924802758478498059906123099313335950712004638840387572773201425570557067837814473004077188082068969123279581805539303107554001184020944543596515151220293058565875663221364340514956583724440214209956026876443161369387941847008820320263786168867741230359343809237569395548682785289020530186922379997772829783510459426462671575151291980438574245648622433485252169377195874441191159931986982198237789389664316141079777794959465865115497247816846240898175908224614984076977781114657173705866180008756773601473938427754151857656870513246293560487070296741122338483572210837629944639715617480761098778864288774749463771314021318800493261737958241453198011426789610533511942232866846104940015032043394860896044718966608106282767848532930911135094594203287603445639567994398173832479505883935359522197389650565707999526722909564094661455064948112783892925560871435297700740873517235379353806081726442478150485757111152944951855812094533602042477450967342011203653107645378219003262047693219111746311847330127458669417338012279768537206037915966530043638513139324885255867192226295868078480862343574928349260770289128393302962535595637808236942711143234535967058968799162596634712760019530079417683768732530506727209044959265214340565436753310356890568553387062827365260616862891123111201600743347773251407561736402171347535483796037448525485123670695776426164262775601447747316799498999165146338161872076728439113514804298465987528343039919631647997103205296777980551565400516706832955318090847155126324472017840929622564103474301167346880768436455951490339376192687872856215077380416911706263756582750652475458091465420284368140989153571682625726279004895899873474948302011248256869286104937968996319768471932728961648423635619214575016189561878364039260478511149426643183550090458404772465001463605430251291765417420023038018855390902684989359481005626104356060559916875552748828850640699904282160325318614637125718523077833859743848587033650668296272443667421620515697875918505800575266028062205440913851397933131373236920485599239172278905414396644855736275759882103883618153883103646776068397502495680920513532274893566870653711243731839742095544726495538598506080497285338287467663881177057704348243206722014527778048094736224280265406312284173008420065487306024844066937881470392089250440556177461223049205784529500134800485482070203352766956722293144213184737709939911992829725023921407062651536495246773461903373143465769800747026230637688925931010318509071859059412145013794641164478200399940009061907444045634353645848472167647463174838616221689081182712137521974862720208932614671072162470077382081537752300558647835647446624811140610256028511867445635409429738859887444311754721392845663303649033441656166882724431825099583868255565912511040824502419058748461540528811647090186206219481813452642065411803282719786117089298218799453011898509549104051460081736640696042929809886662097025787345881513053502002997270363427064995433408605537079258915013166256187030497922028432160367568274298928906079213834944674273931482655200544348618850980598112580779132206323448346724846268115700149096429727520297021170325491759892155078813010259929556244747250739727553672193739794376132667473482914294563896769456653419277812330247458240587028286783007256416475727251894169251606795818258042614399680596832938734240917213338021103312061948677585168963977211863202113445916736735672907117530412964286020652998147744930953763419931569934293890403047567964662610911022865291907093927138149307548164024363351609711324442548236054949102092558111187951680110798806535579175027837437977110764853070197946308332736332064875271713389567597398657324617039477929169532918425783482539771870131348687245437626152850105076129294368274306785662606477677152411618918098990654319350219277125374223669879892503560820672658906546009081014806799114134112806640883140040345275040325064154658438182865231864464515598451690183345799881872927615124646058699130217895078712597867747877178580841914206318956935591375861878807193195531150928011359493133510837639034424207135377880004906452107990464420836933632165369631931744415014157000656386681997060987878666758529391621529549794029890781678349557864737291615396042821753978652974272842667330199274210885087121459234070602802709461455853209272014347338727221587069534162781463859658757410165697929985333080151514491105352108010581425973111248590333595603747467316199000300771228650567066705595796686418083918451053397384354834683181116745881420786165708491475210972682603133950711809048531280114241941623706213066446196771049223775818269046446153392001278485652266183022317746024507524983886898503782156133564616599076467542045296101679036458054563631120846137139706826551698288227453917447322197400647369957690490484263330613699134226190986546551002260072317542386631382966591909304486046407430289186641939743241816207028896101443910909033686643917434334992839986097889417851784220775865214720986717103229121414740093107870168998756655992227993280038900708159507078857343638357194018621772772564841227633125107249050888938773886494801570955169965316009223748159287245936347751399600081743614724826027206389262748997607229471936033451625202613617405988266237101679334138489902192345983554733105796926486299084252108455148034280172539166015651256604605029530744945659254824974445206914792697706891837026873255172677530889243934721373361202437554154065068175512896480047411407626245249082780812290632181135385966760872325748544661533903873421491689735024491841020120990763835335517037336391245169181020893213664256853363510012937887655445001312887814482416277944681766833737990044949423702547405759989041322869610016219513083556837505784622399576341997133190350859478361454696795494728657793380215038753986080164625291481253798240475419650650956797264286705038292530709883264196192002247210341776195014472832674724108287077733536785359415895334539008139009523726328702474902933580112769890815371516393850444126042762239331333009600712571256683334843327701412173986927614365532411149256668235899163528089308920871919421760232531805333379072961802174693545771608394060322148737491326944959741922412707581440672460981191301925350112168629778785214141285503665033985007320045412514589175017272893622486119962505868638807068439752697331299094834928429836923750901488736623871462945898124695612156825078152206406278479971033353991436578946354644848916172009457119363501783622233945512324227904727698713289933048882435271439438716398037290961100052238342358793956628537385019561646178433675976876107766420387736883222952156225513130682974282241191218138042005887185958703826394014595403817115040468913345284586535164784430326205772263714230729492201286888457680205506907579149497479437797184387156575729491864480460347044286576217510735264971880647555037715731742888554750102244021331312251297873874797967278411743809028912317213384648830652291649187323744701589897704720752911887373529371097077581059673721916844836071983354365146564199540800145684064841932320924651181179165797711442606097896716873686694005957889786704481826804237442250061279368746498376429488270563814524762028824329609660927036337516349074086673360359315625943219268287721124697440686818096982038194957728375448898337961272006739505387920637791825857365466057167257551622562783632757623461175372164018631015658602851363395168631159001716872424046973553752422398636244433642827853152918883511572229286484913830833975938357756314512437314146811213773534421346031395705511370945555554762047368793056309762055753524276901075984806185635846096698434872505684155855486625810264915473626726402574744856564302618495799916225493600247025630812186786167666199405122409012842947453212315151804139577668241810643855927569840771930013464580559475763051837073726297703264871894364032995241282191824367842364957848746641857500477143075413791526587745729742838714786611339053942514301839663101984764311862552128764446245786805285063227257558244127436919143777041314119929172379166045385824297362580821338013667694132286207340185539107121723592519967748410409420286892395729047100544616392914774934261041611643316789932300312627389913876860080194857312753644933804080205577665589543217928206421220938941499091727538552078808290031150233380102047554337397041383586493903433414036401985276864277257596823310420737772151130014068426417765390236858616072036011316710857184314781168926307538789982735716399370949778114553891231172109439083076697262165324671387500102434071256491710418536225139589501429438766752504868831933607813524833230632439801281444645747606431127745341979320426764352885307609796944355543360069809215657199245152373294415264962373460643485610737363474899188834729900374217471267182924618071891429430181843754075708231135279353475534366088291011624804916856697766123625556980639143365649490308991021011980403630234749017935867237573237329261582015000141233655006420741200392322001017596162088379933222665137385310455813346126606419738547454776797634214812217369677324336544304119248921932912230930265509964456022122918342976564475402167291787579864241251243817806890574755744098188065606664074360590865115105202021984671894431261076028410305941761040085244361293557235786434702267962920208110504211227988937904204909370612652619584388224375868131617184568395385169738662533229080053173371170547112680215696672800228318645497820667332015694370604082752801040511305751020207340293159531923423849230435311672987107479721387826960834292136016888233662721824570230890728014427853487750091883382227788937125645968655417932479839348782678298231649321554291172908723113387481722929687903674630348744922269755481723432973856649644809531368404012083782984111229327965463063271194341926122669967521582247709587872691408492388481264696760244157240022662445378710211242368001965599848535099797467421227061392930281228634170431817347016669642211249931310979644897495643618306831821602892678128901469781276512104535459248585651155745403078833681905509193071058075167267953019628382574569452963326756221826337591921631337122813571078881133945092195186251409148342404297274563738384676085228066475856189716190508365614267511339848703162758762572359820986491088257454096685622496427321875250241998764930941915655519473759244169148947903884078299816641112951719592462083375362699101712823877972887456285409409273258341930406898677651200594801729374748290380436923910713695927349658169342527183014635242736851526137521919997954424563200635542890747483285315037219005801329578548343595360971103859936561690830606890887622559355425032280485746416546336281696918377609261556703642080260110048307613617142763216807103852520014784874336273217766508581504480975453788136780787184282015575514114953826074183075278502576335360536271298884135870673272987278982521675270587407413698301992018803414461626299841451232951397195984323260308419853113648893699142937161338022317437355896895956248903530240727609285874369120209060233142795620876190542973223247761614166561624599093419294270829173846411223369859464231705580983580838747931349594329494554812442934779287828294595894837185924744452357201742300302767328402877016087356991885866594759837214852204221279840452730475499564129090822429264645910415205688583429869602675046291528716177646229202290544021084892741934355177850047662475637331934123962358687549848430078901317071526165967821011480831005972291768262252633657707503462628513706614417032148704139223703293455276142486753363962661552711466422620312196559647543396652261690386773709638829317451420250307711379063141649412969125248749771308323027276528659872309712557365289061034287005037230136238878155499133377480959426129963264471545880500121780211916312932786587530164097806991323012199024817172993955835763173754314560886661547502838116758840682028084858187771901590606435062251425127712614488089727034850663708053348571902003169924026001224052809926552338355645549371790145479546758392403669930633143338140703940903459120608678777918823553852651375334548409510876266049626704823828175096664729420775205401711106538899490740993321859819602650071312404004908429876553882300759906282342102318170990063402810068412937136852236039577983171633997446296192201199650416674982421150889764843481940849435312000054183890431534405429292736905934594913148427633951683041782441394206355766932465171864719600138120734671171062059988624469935620731588483952479416865686310082157917220581531852115362865687532757319161865207487838315155453171928062708135787188482720252054709129968831668772822958516830764971174124602514502762731423699364036229376302504195821911745400426220731089765651139195022593442603284626101409733182363354161798548288081986398895110611805848517752708192485262565429717064968083554466877047218146452263159759553670639472396520270351269833472049770555284334976619081453541804799022500310764207787135907275821770984369625856912949101797577356087929588212293125145376057436406440278939839475331416825640984466211234834870812886879597486994574339067197117507487894900286761241264250761498628853306968682546657803280527781299860145672596637191270703680166326201963439019368210944174074605535236519246318436626150705621520210984152425107751313218732867374245972425711890339787394830061877466145243234487735528757502189795317358754111444767386068932719433359059924297235846585627757080143946096333594007032842804640543935554913100677680969241325951916616911126253498040850298651349211674001127342978482100054255034111936637194518597235814966399652695712603399028883804296159748719685487075856082726565306344420169181076677300531015961326089270165020560670227870972190098997938957682425797513332118957233755788875537742559367852497700861560319620542388780920470896091557780580037524955646011863093710525231973979862631157298539590649146777723740893050438124239478166852576619489510386711379283864581481471697859586149415675770939125107994450395575793142802876392827629324166868178247134060740081621196839936724783006879800553833789326685807120497118270741285740179734920728385989972436510584902290912599901150255194636469430897582578973524082387028677534878364629281010545762126818913931557213151202909971054874905865147758111793261749271830394388153723509548859949761104577088946894530243004474955333547036448212103942935896226212992636372572045982672818230937994527062969962576289565373120568614655257644482512512017974398881680988294167478024843497332593830573634078916320293593227498381932855096931370795909715916540149648295866540182291258933590430002919104685407503812318491075287170804022800488644559077423733391462545707782558561983549717368418729741742150403799741096343355975196555528690958066814863880239804136564431611935798665758681781302971534471675614085785635684911813286530582157658084458691469660790070032841982281268861282306386102251392852142788983773185506307050924984189509468480098635134451200432050580540520240057334968715420504154162587245629561609546682117927248770732012189372865365514735123102477069711582417007088541942391713096915017549396937807704025752108963064048615965461091890946132901480040714017436824604155635920624815195531439991802610422798504068352530586558837905636071896369034924105228279730193846300115203356676192477773673509842237931941830579071923108663215162059783731592387757576736988485225113061449536876481496993518468923720911593476193888706855591285124945306622486308356061205506983777006990717421265635305044522035295021579980576572519574324771650495738240546957897324232914466439469593889135814280941237507709856927265516094146336599354048822204917792066658281683999483698534124833116274175580217769822605280462756006554795973033642692608925739298630662462340960705618247995607501778288517368654558458404390191849657074465069563700614666013501285873921392614360758588442319161369882131463248288040311900757726537944256629835291064457857947752956732213708686012576225336810082038971313560106694510093386452406031996272703650789681214844786960350591587659495611260763421777140308587675628424340675009273641614257634437134359373761768090390116564813227653836694973321213789976232695435958546810271553788760075076782414601867026639228932281918090613465213741627468949134334773788477879309008063995983217492731172434774550568817828167697338556440008886876120866080646184903111604203349126008971153792862011493842242203645175653047844394598900454869604269865616371441964542057410881657394628870528821903380606525466987650604078086776855674379102620687966860300714148556319936626735326754785107291929264795983939746066206624628308599108599002174790426889029168728253785407580841749409683476124413755447216485879668712076128362449536305886581701373484127053059977630525855472507853457799237961881170716831800752189185505526407618536700021088990735747343114486396619969536397323871014915911654184624535269052686936648692789855949120667789470801816696636612245731875657859594650820520347287121460263512153235562851690589969771243250358384048228562828647033680937772025695153519724698988795927630990857565741136317863567123196416612392398967769090956066930539626304294720608603722539511224929463989570467135804195453627135025020592492164413612454875006933824590426478111675285331022825572287061667932087970328094976537567060645270585928968691967670802432706795517488356333631636368912079810850636244664136573177260215226103207974289178244563037007207654750656303781193225447233752444786536431394195096018251324118734951193592193863769116565091473428350669415103194001977108032797332239112564602064724312234889801077288976638304605046977164138034890410466954622114204745109680639156188747676080587549594948410611054852698682594330488915316752738828166976042260264680345854810744592273418776088174174129455489999407388197761399918484872771715898039717909545821136755384802336032259047711923699776990502005901237635782896255140177291670042938959225995653077857781154215245477719587698015369308815836999958637352273186431138717482338718761166178288036214897873366459754557348090886012579363714475037974390297958869268749818472669475101813592367160241684557365015936794127895634824420200013084101088519712725571989231397482970188805652961315295414624068828615382990273570409708018096910396552066506537396030008467448196754987465172645973827446308972938546656677660735373653196913238764295079246875529161204215541738622514586172420681378025198492831445107187968738081911505256376847695577604429341426508428305369582994310526298059220286704888780747380581164836387515612235768581912258298160339765815359026199652081107219156205450461273925831497879548026769986398471498068494699907333651391459143561659774447396135060388078012873350694934125559793414861158788690985625166608442283426495145961690393102108026687618045047422821487846180623838744650030949274992390491219815139345744798383804488190574181153246419701501342112001277380363459108902296343490178925926921180234019887754698694051822734202627129643483677667719409530677706275589062747200419933909219494528743800421734224949536813285829237032462069628781157749877198145583199027914016358221234489555374646634742905854781137069655667329631295631455140135520974525639734349814289578662585778312919786378441958741992042208199023177423674835461130805480431068173913187982732389836847489544278683814210355554573695404925590394517755755185747375506213634617472270296783556330633646588881441687936063279158727676118505382752819039559683239710791227720045101904684614353182553094177215981845207377924957141118558364547287942991733636182104382450270856463426929447860421297386553601263616929955672246038668218234394651305000404272474359974267289497142811346667990470552105126130084358490586318484354331535589274681418323801067796250171656440713884265583506728139638671737948489083169974706527717468096532072195466301269282487620044018416017802174640551026052438296465550607150162236626667464687171342878541626096185988241758942349877562444621806874517416873772625521225088652362834948371664937453783110497119081419024993155413641040392619344399884645071567051367795972720415277927089541989577569001286338395211572243882969637652407035841605609825148928474743289370102249939573555895465816575653233608754472273130146451199023864388676112191983759282170207439671198069391076963168318123938721034519130613026710204906618093453725212545184760876126071845938233389062227310166996739714131906752880532836916127760339463555775962366656585177301350069030358162414967930764701014720192362138281589737491724146282537697530859782290924028843197897170635140012168909787567409183725869498177170012292275647247519188293587521090058783649749359070525196756952237818520243151045404304471205327789577136569902188670471248467512360151442820228445865896395093178013335873547136481365480642479934562860444681370383076173141345934146295940839987909039307324535226141474088019291068309909887695696122291064554726561985752666089858765225174012152301692055790364362443097501676976534217948738070054137420777884401318364798335972247928575495066001926602795573185880831326205078126756319052900521803664500211338208516550638680684200892093591750495673423518284707093979316503312713146465992849180084203712701194846361150330848941956279300899638221845206449744042271664051775017455503381712071356243445091075498849299063830142840225469419780512282351748935470039790509597863364851595295576185962152337517296700186578618520074454909314520872905996482843217308430258167152661186651471057855344908845716633361451092980838528056130540863386171539820289689298356285877942078764899437626647977297228519296386929423106384256344054080387842132562534753906352593968004640624030015288893210758509913783266031303438325050640962104424629734352632474249461049800966519787069831819210339027942034522241429266839488495789673834235704989659087922213952661093795921969897991309224601136801181095926618377015828814536482225544117071029943698959361543715000856683544975979688020971253874498842367401213564048114279772461773547666034666345723829519159817415729900201551606743842704140644692247818143038506030038746486176822083036796923760813980311703939056336450921848377267008037562012117902864827829726711614322988978104030942966906485386465235801703340317697246369913600076677855599111027257397739133354168229821073138626156916631220385482420349250854151044758584139720916832190516143759282720182451281795401023528163363611585867102211213316676706831276008657026297591088769369129420367025075558671272245708895496988487792094841490094887834711000679562191453746336108629358350785028058297303360458309499075422786781473957124773522265089734343080829404423697567755892543885206437973607592087938887142659205674291138453538729770852781981651446621426242094323932917697081328912025778758937854645773391862641655051689021856845008756156719061351452116555103531682381802796289076776405877333299797920371566857784742713791455821305834294101664942056125930659055909288236793140845461699095284098528350814800972251672818436639803260086412797751398218784138524780016873469065665201700977412778580278089415235207314381107948640547003422586645932092625756770026758607376018742454129066587819286300324191463685904437510107587432523972388855635225403713390556880984645633583166304005863529430536429064359997164606352093922443476245435231715296908995153566797419134563392106479052243262786656504056894146051163900001918083113921599421610609373260740285694457695599494264492133593215409907108420844989427756119305483190124039774656678729558687525006696871873651531248682991832156213121721475584427908156314000622386723251990602380198057847464216728050718676682428108527812069521592501415602353740278725277562250277327202185616171833320825565094246427609878983766869982060833469481285978260959191515503096059446112043108890548752106979509930430807510853930975593432048694343215261878289219510808755380724280787731260362295082840530566770661429270710171705232850854344680950178460414475500502203301174614814031825616455084782745678918784281813299684697453797284536905368696230136710758444053410005247415222088872745213953201706350939392574161752018521659056144300393657581565587195741916922485204484994602782575962295976911436455618612618520134195789275674148351227662525603847174131391577140070494097994847755641230568637535450155194250554438096914535185475271206217495126941361249538426526068913282820648901664728473869018782066764253922394401828396223891110938985146863072886497266055455177820606996433935094912865592387170773902940958554541796622023125924650933629045955239827719113679425234363433167749822814754285010548779759100135026097261449993317156621175293872062225281555247436316315099027877490144711786300155207953094441613277563984166473748253886018100580129550399648104347565715821915989882481288534103633261357638293259531024182760504138223371877848752049524882509160038443039485306574988390652893694264841155993360482923722023704132347900193030891664914440354725665479359775953217920684392508539671903586635330452363580528010337304245310527590134009566537816451652936845260801175093196114976467981733233571477150334533853581814885270499296063838035475582629721134684899609457345464798267749330895390094292816449572790945660873643920868668251401258719406619423962223951797355916399660239365390031615280285683891704602901748357878875344651964721609720085880054962379319319014226097115713531218048869281068901890919239725493568430834546525943027193913990531673314710167713014951427226473717635906149363033786481343243663014484131714962506683080133027111673318842400291600922432546797733306847073044151126698959137911479008849177753841270166979790761229410374155397857560205776725188483930794739162265943318508743189065174959508744307866907558834803918468792567865573004008521144710826903302808284949741830818996186559232723978567241604429609642911312676152821380471690563321674298163831280060111155069737828236735227938028508326740405878868710736229623434856864752178654651154146506091301001356543200111465622075277813762118282672108979207752156524860294176666297211954637634606441135920474030567361191910808433905049962060818721163263865442279776120159440826946545945973625457464240162985355220516316547640210275043045938988667520922524282203213500156484121126000485342371463224183145741206746732040302136952388583224380367792195594462605630629890622876786351429272744021805643100639636676371381851142011986983844262429988834100089890159332426858307243973569702111724856943165306671067296307940530685602059779617181320817060860855189432583165459416389310099473094567615060213297431688038925762830109396621719150827565549022001534572774625173633326510446231437257116087065415480096251113890324307860216719037724010537693551918625449963696064021157929191467030730094866632985653435527230795428329012829016058979954454970468004406189225406403164637045399666468977269680083220668731878497106246957498616234469592661727539791022294374507743294221869255477864053827202316933057599860948271271367865971892889075511681262548148557104184655381951662930734715142266502919856950159981227343003759131579796018984615268426165046149922112802372014811691501068155769015004840886570946379384300467380815487261762065017969119664853564934643918770135786447365011148072415120333252885348170522173974358277367013455997110874176395390201721435168233908744424549393915809593309945832650384712334692408762023677326672987532798854207753704807746973894876248145736688012385450252903928296883709028782798143205132726204461284940800231534281782395232061069177412142773962610510971216344808741409970403086779671609620342838977511012577984905304247153792735060828687131764427519110192817231868932828061913120190103933226449049130055712119091307712866612888859275874750903425864096814021545316871458140507678019364748603747139548641236583833183926839717855781482094640803510780925254768494737134680842241936673233107815325214909323142908353930910705393541032715484379210953206920050795391738966317597690414110998820319412541567498620151812264718764231683280984248856870542709638325183185129465313973979445106765806176634483208303617978678064075488046898563690805212509887572553698311254057956516890964623399567253846699291596559591008562619242414086045730148906618466814572676819130408948078736970656346682329859121168191470477878145741565022532977558739855110467512730660623660425620872570034550597119552790651656925984008608168996210975840277956951701829775365486479868220245201021967259285526389831557224194945738324922498822533750696616779597419435979391117446909794562882894345138232894181149263906111584811792428726613262736373734440200137915577488940967276045941352283636703304450394308671376823044517259107921863815119802672778055749105051396887684777039159618779770631835105581366097364057270137339061104868080121649616890443616999866445302133207976269760611808402312104011419359712345359725727321429581736409019487389021739294408347880167924632147538122295927250676408987344846041159777209042467509314419655968464763884371944704903773494065941118818331078212237586205806665925877263044213533197582980721530623376579381920168356376309465117596403744210892872545700762623146122523261722970719015785396526886766077914478402583078904320737283295406742841800795020468166335390271414012923695149440742458189863796884940840287324187309231620469416685939819383161107040000943398300727663647956444762870972327099721218682583982080362700814608215437486176589931147707079834442941995712833012504052542037964818980048296351918570403438855409027525970282777267833051980585993409163731273795883923986161196867058004967209105519790855217542422837671213008919114604171951512359000813058566045105955347759004975848758714291591213661813659604709690843952255334772290377629850233126935854142613625269860105250188527475562961708979061538468278650544266119429832375788874674523637159039073191757239883325944867485827961854507060827068573842901976461341063995780691838495282993667529996980493852812039275448845642965113502865343567965300383269324375413183522378927116896816159288575631941094617170869306700511321659062577914060803423513654301159944780230305150662865310109589419838683003859837258372221618511075991327377615437122845657207642545185610824784342792605297082971936990267296309689572412737180178833705695831848581286075475405905741353291479912555102152158645049058933964338010259504129138839057899585549900106114423846395905760062254640890008589325313863194309256729576928887066456654803478731482171749843473648102456552809104006519918144706328002408277955364538294536871604600243700452546705879608039060719758248971624219734151983723174064947143039950006505396329904415518314523141534652733897005051045937045141197009571943087622365855958287922099981924825201777066462901140671877660602558081719105860779347959802576828343091668463097174496932806078414180101208390618157354294568014179853969045928364648392743088754627804799906392107502648277319365237166131356801022009968629515278649897236177888887365953574541418660096822235917879352742182116273940151603499947108390936674668529844932020799132490018809714261576440279758960725337509220164361942933580361840814103462846340040938781275211133056679355088172135600517172429938575470242638973562725342909575319051789053330246946858593186309000954952828755063952449656686539560524329760469405222049390576129972044652412552975816391607535923730726354952098294571575983187106542430811946650004247983163560213997261438153227979066030102204218263796082127885975663775818530142558514506366532289512186705995274909278012771011828151568225002377043018172595914582583977275029388033953992806292962144453015130463722984794343000793914626704470569135390974479009246661162503593653262512063850709031292924456844607548493406302222071193996647031333517054530764817549340822169102234064758780863654123808501253620015587750701993356800073436117581567596003023980415426407981660989038186022626288340787942436523176401158576922463738843246798477413483409131359951689376111834900140392561167276754694870809452217447876788176792409411066935493709554046793779866183207334619504484820391768795488272842136332524444128112516976697508273445736333472581791926335224441065023724177102755202381377174406605428703339203481892141423762820646787653313744427729366220937863737001573436963483156356383889445210174891529512613692575554701930227232405875455297735561428905066945379405469339869637486609819296866210842292288863988695544559218976374882151429148536165959684529193831226115358841979911588761525782005198179405750593581821912742089340660435201541628009919055202652433789909244618474087393413442052342487349138553490821250284291339877586783953374969287607426265477259192603706322171291790389414416363631056071001720801656392596090706432714947704525864931884537405873687798948035876656886034225963763943009169635325383876813794416237399916651628201518657840153378855296399516904419568851029243005707546534714899388200615719926167120078096408919847731902461949197959259125596341731731561573672124428490430945128499784951415727985995718312693267076063553169118445247644801274307122625136134220481661004408595850615986247238034192340870074677702916910697058221568932629252186163527767126558995756747079145644184350454035079165034667458454959724464199906902308199938240672280017381147112543512848513997131600634860897293325774832426143263115110192768944516750186449880944917190020146763320912435261576900635454461511142442042004888447938423030657872141392507183850119627637990203659819624774092426773094275387742368922616526221897447001083102382099079052771572683948292558805109263125554559393819319175048673167290467413670427360151507487089589481571232467561511995497370594915441242996631176498254176876641345128946619056127242390545301471718076904334745897031322015907300980119655983727551882546217104007716546383983692330212563341427259717178778874407835828344985149656135171905187592480020128815924264971285347003533383716558065491959418960024774456013033640587211604326954750863809189119101530461667624598331692503246171862967499286681915939065965925694126536807214279960987887994772102817308267906570357955270310336966758175570490733704099804045757809239249066272581227022426951931490609945974705723966708481592567256708578457047356047997530649293396292179464961793018371945362485037613794770397863744999921131372056715910245960624595172870261089138256271445790069858467115886968783668072335844794752473271880309330444180116836358524614688155779658198976299286271645281184234821560783368902105973243321942731804599733226243288826842806210840685334199419794208369102470404194821922871022138365061983811128980097935653724462124180657293552643929011998729731446673991250360932843794191164146928068053998037405847966124879155530065159528375224232901082116231928117882363049583407227774737173422848011871072371128814369287530275897001295712716314813339111668142104575689403381432411275614207660645723944554389353187152545462272575975824887906363190897912821802084518781021654775370843831724265892480148032599376842763561382305078098691376612817175865172395800041452139779736463026445411427845267290498022414994949356203894209900226911795118815487020685988980211329595118633669673330015464956772723814586579024482031351052281557727642631672460177874312224651834078418005910659310738654228973329238018114671192153080740789580910515822659094159261549204264667664521375356652792894275113779939688157577333892371855116161295996273180069937814270513005965205897826413090149172531172023039217599539677210903686688442083211339712676572385724205943042151543736843735245425227656081603785224715145537828925731202954120240841882032530150295779475809042618394515226121656023812874071068202145558475208171663977244869516256855005249703592688430756182429680358209337928884252406532202566696894740099275508451150749691092798127300213141294497637685491086531052882228966434884690254918315861451468643953673598042154279251220649071992605694328108629835652888737603727836629285367632078295829907736280348734215474898994506165712813173954667871542714104300439271516364025991079046479414209472744773698390372870691124341072994903049011408878138980645285799131240657183265375266413090022226779796489277539794291584019693815953892908095702591967673553696836411946507910980070239063739326758929985308533509321262611528453197623562215437092095393324080653866011450145965268009758867854553433073451015611144150187900449396825740100808729454193928316179193589473167097960507102619205266850044127168282640210468603117589863288031194646456922525748090327840576595465412051684095891980735458268922251854140862223883461416817320896807552926255837835430612489553096246921511092848791589890673673198788113363527160700846677866973502884377289119720668197100476471056827551509345125708595129223860946755122370796741898890424669944041544622639165903635719128872478096030911763211785217796513963561243014401807893799632584411488169273033537735870645736763048784760237174035408791596524797200377888423038840764000887789974479791134450718007539709243512291857498086873112462273789960547174352038724486508720154613785040159729284175422075745881717257032499475767146260394108611568187657103129650376738789830117335127203516431642753124925915519874090162839588692404483133769772382020249157100132654103028644976934805062884541403088110579402638160143263302140497062972257322959367800956441687940653668694750826765807686630320757211887989658915083068893970517227118598684771008663530797341311733886816502330164205449718430124840293418669472148537442962204748176645763613684550891267051605032088392144640654682463319763988568026397882196757778412647323341887259762330994628332661449453152905743063141062666936752161224552362684088046681661112644361355677158911836058938191553892148734739565306913926850108557648525359936343223670314217082535371377674129804081357548148280182987369706507679409704988255071606183504090874369082543461212611873944804409011283737800752351752167284927315601455967435018429364255624364417677991503961998790421120528397232803703186045724368194212182754773159218444669788514911119981175042568668518413768418028115264638551224995179006320896588109886146686164355519819442355498082315564782628906645431825765171443840524943639368983480496860955029481664560425521080500588174566340411895039503989220458871274343714781970343042461001658835231163060826215155684380188601604715970622589600244224451798139078257033302959578848094592804629941331445362367512915844509443761671564333591067863872301498466972070353814967918689015310126036441214216750389397917662408510692832876756089913424181288930841928448686713091198430913881356211878227617559330527864289040403616227727623769134686480501830491396978460028583432366999050197007357762301826932249217521146981846343851807810829775824149415539513864821567334646332941022432223722102939994531630239279874182836108820457764466128944628773588841773230134355633487888728617430416863151604528104016465944176176526713421777502477661715114023139974881293972719339316923272578511230388739478605228463871724413487334069884141881231896177809130239068081707238772899390354317078562690504413804391396874150422621087506693632841345564416991236874982387758922793512485618452322770424839023459039519701207988147356293885020922136585356903401950637562729288118737539705716412750833531910685889986793563066842136646978182879190032649502796468217409672168046846570706230309363761459389703926649380669996392732261032408031383847023814124389252323437098039906716315356700200866113650647982711597407348225698963873287892576182824863907821435782584396479446907471025178945371636260867584875587731247584906818141128156218518456768659781102853335194449290897935746901988110678075724209259729237962069771737171819729042026955833917305448561891374237868819772436290292004907648068167636093304631053414740891688126407096223788429151439534429506599012961730578661497829439096515636471978298191803873733953546575758000798698483513075096730040198590324328682585976833842444195236052548909290060223063657368720147238466526267938820200001638546561056098145041868725295858735372222646867234108386187259212097303437091560013189460743609150353836475783576459422191962489247003070717951950519416348610148830303353570877005321293970039599080812221658360413816700083674516919072254850791985819099170027625045511620316672597510025829001521207384753897244715340228599974077353669126952561846090211587346717906694166024379252953940864927012636078572314143260271546663167629069071472235139164596887355920536801423209462628846629597070155809280398394365750134762106734802103643966446127214569634860088626438393428944920237207410863798115500718225393486123917521775933612619997262081252593722360451925391060998358906164117198728798281288209887389633608506598222788731087747934455789778407809261776399528513133912672894808925936923672809563817956984885160094984810802415095296239000898481933394271083051057390679124327701802371738746605560837772399047344474192639381194698477497462905264824594787308464343226604787629459805446360921899271253393817151210379134018617680307030852107154064216446866874874630917735766135494421414609206949030529223034044731108829031106570061824914653481396788407177189544890465399888366374588122745643554382083477180741299919419453201844660830522101099853644731917809095501504736725147930784937639111239329301220558985045274626456425013028645978419091769033366433939828617505311650566929448795718369577448111601156545496718448034717559663749847489045160816646098590749651490241521013642080969851373182564694415577483640693915555519882734005871305395113918444661093715910810966394628166025862032057771233285441467714629794840379557824176035194293247254645102942246439899190288923855654911438890645844620674894753394179580288457000460804300622619086371387782350212977552959941432480600630342437211189503312049549822467608025564139948300890346987041325169281482001421529095414820213049708711714067068310586677866298719510094656053436264732286256459141240063442128838597687307887966849665439903798114043813090110818153413158618742773719503898384109649796346329596624081665143714333588926716457573477863928805447414735863341270396866521815648020965366820344518420573063282362506373136555492007228529931576651525252339154864137209936444204033845868056809799681022114416087401574350281234168715759112138969862239452270122956256777761939517373820155894582727329685880218711800837297687523811878213383850104201597365210765760315588307250413525353593319409578563568160924465459265503836600625943647674007830640134593394502654047418314261884235218474828800120910128576592516610878149909866824594809856182174299930872939283052297427263520660301234674032068980473958491318568439325667015580055569581288593561018093060221047001879262837184042973173604589108490110286875385702747776161166182595367855844571070592856388607494984446856841185921878268179753268040787412512609489855445582971673558227436766363511910589771698531744941429075722097055796604964289734276437863844591542112654977649328393120841701949487145020769563652966280445522239814075529532245880452140270587143263813510992589357409572201103682714443763605116212989015126140497726793379707162002270538642738125279072340903816119771766927660527557136703896639531826094556711713158527873430841470921832683275254551349348710571250629071658036881356703010063821850168927991932312822695661311028146778261977749342891590263967617503615397165526474233915711263039144821871197174848615219735215453318343240440483138133764640709752851672014699877268747106937260051077235366755035617732306087123665229057733684920827836714212649941034496038694773512248837054749162355152012816081091370508266668571231742941680098203447295565576068936458404733340712226770137693293060950604326613614429399518802499391020869572248440361816451105286667041600988537531552949464396452340712582911327231967282613066659981801511485825885768454697879664814542873464296669650949741499626782398227141485236320983763409751135736555059506260817901965080648578634046220159833460116447424503645749998218065687351048389993677377612023582242517559816076307693652469395495128608174058464054414160559147623250600561483171666292262113222225506096475498393809125648746419657919446876216855966251067521360219578245898035263535936425115362178390747638420055052881554296919562630179176323405781382467489738832465033340975529669414372655293916344049008177519626172146642000152182122274344949817177094523320436041447505151520428385031700194525764740326490623483898404871804725690659511985643794204454718934910667854278014748023694296576747310346555292053674111014649320990384527109536562474198147777676750954311680021843852115215143518698918135145828639408032112487069662487286973892725872021946145380237740163736240976919170183543166087246916042282705645911492004017123566793825116585415987786078484511159630245150349002937615583737439258839633474180112417502961493172013319345657674647941693881041489602000734910961433322683510922700319134153635597186947096956396233180702066775750577883668381563439868081857495756353942200982275403568967334900561710932501176130723019098992929077685197239777232248329963097909225800829456494177882694970686070960501319764433565971039515241892236410815338444844371046823960289817776999616683827927334305704344832402190247119480018625769872718330222874569962119118722943423001301662232125125238518616201984231577921471591895105283606543743871436431627683124058674040519441008731055333368710024107027720040011259861077562295948266640918044877742684980184425383119510750370766056247854200967128840881813374101400443312381490861182589676075102411256509676485511836121296002767681356789042278221756489077254781104208333810973022424965509753042169546446016781164764009308805007947698189837708501628321280381611765549476072948900348179173780597673725499208427702530408183868287195017656964534079684561422247265685196419381810803039987991569155314227926724221322730373802945272067621262974246261145528914762814247052564835932860646493489702688858902028029088267341896110052196851909395716927345845643342794523554456933684300284963970910975615697418269265751256429972261962660539432737905581997864674373865327719683884822324913063730057529875164703610516908739054775403486739379857726040096514035447644935049152386535557477677343632273548457125177388347686018122860482939628354182124173468423911600210978808833188829918521542822374914168283099120523619207832106390968126346927866513557108320871727419193939081338812768784195532352614865648330117582085255648819501855613394133800370570993178583335100826138057967514332992970926377897011392405505856240828334211084196466283222923328993910375857278491708878682444239494546276833740404209941360278921805701746402717582347934016768820357041221015224821129227354660826465311832382668424816654808355148314230330550699955366362439625390452903792927493752723619029012133621202662232736434815493300865252484587330817944219572960986576607382603657002735778894686462267030991790157958697729842204350989930545126324297812681468055308645872830084820173997168224782276874347860441689741960140601760446552249691972263860497756926946923957911394653505917881580170775549551554472973517743457903677363417939910263736749353768638221244273409892665205572740143791595475380785160435551214162643197957917137942979901434862027042200898563960288099896134525404217364104314458385555061693328991438023887605712011258210924266391901546047247374459988069621134967529543786117410675221869225940275169740718601546455313776279765231125220208477730379853872338194376631429395907730981704201687815195535316672555344093682287052198832305310847432293281261544526405344989582984485552816623953621291020533280861099146227984494466095224589433552543294039965759008569355534805916584450820683875711940828845394317447562204828310472491337438471012647082982773420541574786712857153843557031952582451597411108393498831459508924265254626426886629530539574946294117633651522764441696554699443475397465716777743665020908188289443676964098015376863269506662645574955331511323323097725364343791357816929266823398881110821736939601397463010317248501849462992931369854629655692854253934475510887130715682453318129139362784338987060134415189867915987457174582970926130022908803571952748817151854244392092041817784871244241797227955324063079923305522006975498530459681807889108300172255807939872572217371961665474925823042247698746240488597089164618470379530594713272995388102639928647534888303212851902726941862700711054904478097036664628387578565067418139050257474273063923198855449773068447264201945010721412901011318955373463131889934624767899380628111379937360513001347825993124501550332332451766687438076426432588359221738374578196496866143302285018399620137903202465073674037637840177363279373134429537335707190962358302328664137770862756309746736134506537189996147100458287046280197074432460284013455415425247094547342332279669520978799231396945769677115218896074214344374417352751802658593141654007104042322320728429171263845407225716432521544215801653563373115637402678363917675576046424018608970621708188672555773677764044725088194696756801581182391656249348253426785071719586884649373811150192033019184128550326695376297761918563186848884226035373620858651780506700241621026696500895675227460488186562323442102290928843629772298838802075604367114092111646166188854847418440408306598460661070669786055492510219192606983276555835513074148711110023903316408610373627387048177870083707832109111416345615893481384446548622403105795191366072615956869795832548790592337444588244265906229833987438538758243385273404017209985622210422352059203468197463804971861644352252177320967276754376830838950003559254454066775151554746975040435195829072638246305373959792899402980543474290012205265958804543142621484160074031083652400712270566879576340766125665252002055300219626937455485745241862987899075899578580028730490849108805822228456852887096771926216293546909023390829560729035016794644491694805505158858312342525918543413845650640673747396144651228022672380977713268298716620119719221575637654142812295062523326230175358038798601676723925032638385638481500902122237540444281595511561065566195867040261440619663685798221605875345563202274723481601087331989532400138884075945655352440494655272656856749780249050004804596338484492346570380534633504149084867593423379732447530219708131232846930967336993247925626556521594308744100385008377740220318407872586393475771762622552995330993372260125926690976508018553371928910520628057184248727715935557375785426938296241048016186159226009632177101649864330826232176930445566054638183454286602836836581612741449432458585131148441819708191221588404898917616851733407926888562006862155856902450920467225875302345637847599867318720463380677527701797607062712729623269341372639281332278874905266228491573992209022972685385718920274568701700657701047041506948324420082493931049741611222259569858817900960488511023131188074154499101779480994152988835146387584516822293233881212500356926107763504918368565752388807715312031907569220141888095267037724191212367001086105678331528956833851540358295222758974948411869288311811241706245236966137185951076835766395104545679397673927039951101022038861097464097957723713291466812078297534444066059653879986347120216690530764562400976991244053328686473333821766745424202792328276563588907560408997888631118185516066093630043149218493006360262602234620583907436798308289205285968545778594293946913745468203016971679050087590812742974399205569267721588968049038356019257753310112784571163404127226260784833474076171669348403909771969730619828973671540026100654385505659267312809644839013550630722215600734036009996297515318898766833978522535093221653373624753413680406603912935229443892261480071072971994178822248261156033000285688146308522327561082464187135690229165461584749420246660271334174736763417156400748710572572119363665863777714816128292478156103762624693529440067156046790541038567834211804198232973013559594529463119128489957290921136474980978869269232336660737001362012396971153617367509666520654850832783804580704719443155058531191590191576139767598521837942778460065941163651566921281682441710766119155546448516325652658285254464364852860315441079988200286637334474285439067517065244056107710766307935214752080362603833332221381219069707715982985951203133342951326804246537936279290405818225627567069530324326815494820142287836506039929579866144218256703473681798561591800756180643790963786053403983965202891859260472486616425086268470215431278441322574747808828067062757501101097081278606751840780831291338496850791620781889980055824955834341071856193349881588185299023626294089101944835546915476949201977528628269441018472228146431263019543811229223402452243407257475108416852768508210147724507871535057445173034102041086992765503350165533761747137721843730051741394714227279378340888819943945709589888147768333465072234635330113554502625163811109785504445522970121187647478088621903106700406606948314682211352176430309495614505176060463906823110945695154890700261479290641508619984146608229800586894623479207019713745618830450195329939708843786473190763253398644882618664172657510193669679534662899952256449952799332055000181107258410898830840191704768098105512781132493749650174455752876873970788910093428563417481683774023876110705308186042603694644252256442728797162364298527099717117190227593639204026271041310818569262497604838995278484655293527695921466971121273365453148267473602954542732118465176219678414086051885548497683315910265674120091725985462987457522506999736319203605981424949856824170069477229104495178417433032490590787586985922755725461584684022191026370408592618392646605608708006391644726108103029249465379758634033732547740351739749987439706133412014433449453065034081516521990738896803123602453220871792226369412151110647936854029101322022057839553767518476717330208737115145782501393953717241528236373094023023627499904010924894075209848203693445166131798114831910362080360984115732625066037247430261912087305958418677948652462315449234001148492449353759330113623495998660522034754444980683811547937647348368612921084640789747557057444659764547080181629516963561490452601733692259931178030831552871694912953494937561126644549681027276682760599894888019915866739366627625169728855218148577998731971816015030377408303926598420732729947095360279447084815273038096606710753682881712137138431815944850276559679134210408808269100899944688666595621796286028666806924431404964158398704925868391406534166280920376950658871342448663656108128631683659597528419062275812999173895105981451052656452829451090451470789088923887333662153013314215047074416535497369270127928425534424809816804532024208273405502309968644995861114777927036630551609158154970506376657006542892357750331830625981581797654481730888691622511891562876349819876028693747424136699891834024151188548255218852408469603563492588540585852492276756917447019800325850274194994998338395072240127922188548222489770559036995479189356221404961662694421445963513805152638553436849453430378424908182413081831079890254197097361923114657786856689533533338638340772716872623528267692443735863078881014898721217025735963768190901936400323497757182238470677697169450224007017686032351186652946779273452914965320769185312036542880389733516317361684084588573273557081970941398184677876026118072399062408449967835599890152500785643261364671724303124613777065749942441214905699487637127398191595641493967446567616224989317034763256630903127405049436976386593491000845617940839970139410891201681313256005854824477828249589279498966588202491745119503659480650600734913037137882343531963538700171715030230345806711125358147638382617494230517673891008493158120647291909783017187394661795503363600245286357178493354075410074739605712177671059976678567141586540894048616090475976118086538162515032505841267301941222521572380889076369533758296692268721465617609935888624391405045748556058891525747423770257010130325060750732231138632086228363110548864896718404467819427894461240405755334915156179218905154334029524451751118627431345558587824287591486356047875997598839185373743278605172078008706831239407478686211531893601402295077481538976615765042926701185494268485616653078936380489044123069646719252278104734937779097063378715485636238571267475842130752634672406147572325307186066760121929831713444377589060449666026056468504045265817698774109973080561300387146923300481817317434568342634268508330420903865410413097136394354751533585068555679603536176848080864933988401914760827093547561814887638018709803374368602630628808978496258791900151167833159955176433566003103888498475536789345541827814627777976771746014124795668086993516752927004180788507628120838525283622793058543449255127113742681464595287914206315449429971901040238136338053293295539906990390970274756922181637814181839611586712407187452699093349637066674587696328275737114461470566537795894757273744054035804540455815732259737982465675795324225332541980498694578559951332521799284780233462863281526072843669564235671538632380993968415716244907431632809241579964434114894955842495709101599566521374372361528317869727727446337367102606512320687223504395837491794229082574715328296561661482906280669067289812679911349304130431440480601476815610381927805214248780176382187629564212471915636340582927191960632470732586549220199256350732587865769668230113362408880012173128873681384199841496279565400507942629228169536787859626520800872310561627226834614702650713665023464939604934133382075975249587848253496796827614549416514913612842676917188577255625916962209697981805575242816616404056553567421262232836485541398087163156099373349040832057256485407080929377828623017124684442350989690115647069645718917064798648738716298391232274233706673785210667921118211793195596583592281887359238940135972323644782228350785067328105206777402655864289650044093006715024707736435042629749510855652702911589597616446667767048074821866727244270380171465946312368221877682650604811264001510917230633656851120158162557909353720787921446435084355773684137441887675825756050582304306202475023193541445625374610277621639481497044507845789663314926245543255078706235908320135723282643830610209747903199240869308615706295888722781063606269609589552356501690343920056464765369766072511319708959491907566320056900654434087962028053080068747948468986542940305359586845153181386710739764071584548696508850639246833462693315297401171024139578317417197664778686013072001209932796351194566181213843522668615836937722623128551281531302332629408822168887839937331520384623558532841613641922999137269082980464044414360367936807524232869452130955272583153789377447706669247633763820557706272837521351489991582194776932579702970876020391547929727905780362599374027655084218640901921950839017958103120173949068079211311762525597026115077793780008980026056408035950561145433815323884185152462646832416702734641757049294078226712922196933404257487476281256260891180204532618841063678068440139664944305398494186155350652163561892580547992055704416256506912418100475123064150850482590645327457617041032183724358844634176195667267372687220482396786234798296752500593913387996366517041859396012449010623096854097415640098423049796811044706157654674189925935702040746617114915138708565796600184411429117698963465118977329306472321650786145527690154128669343702918560842877419975478224903773381005346450166313231873261029561009483734586546006258434401230906664824577717467814625298856356171338840035994495123339961924806417242575867460247304468431095652609768399559998335511724452531883306560300180508334689073679798892249576544228567465302806538981232466739707534772160368691575115115908916482529063607478750985302293557679106516364782913046452865413545348768566888449733456542235878624208921765724484007569612011774342333863739873267004189651620514260725334660580091973841646740522981102272843087096315194508992411327137497476398497819685575493131876965503887288518700661505585978083578961458456099016479518533072700132792128590339169570911872696940022951999761873554748179727872731803411633564180092748938316015986581058344744134728283697074452829292813444352771442938325475336737448210928318001343023300129878711284227503010183983909606805790844677258362738485521053166356493537422898746069645017784534201888127114540334609344559164120847493535922314023577021681452155496602589224754592887003247125727927577376219485007126852392187363590730992643161737185115762359164943258726047377333369020826563808876216442889189191126970501652697317132441379328567696133271235591111189265216749257030410243981490976054034412786817967343968213263339329864435492784610292008892514591656843998859826930970335709242597198594618598093092595542400402746167267524477315652669718864670770970043947063328496786320407268611911058525730417837933229429809993403717248511682684067403262354187163880573026223538195953368147525142342175206785044222767569112130263841541927559086407522448330113114337935790890220060930311007246590652375363553949625589067104892360328586717997436926202114887125638267586060195232439487727612433157717550023630820356367610280747232185298716157154414412026283487700509212762383240494653021697645796956533215440671245608677312569046921434229465729685584706032922527295337519063428887363481089779594936717023665482161455461771556782854938816912740540064884963992052749712464017522836293587604355687199949526061901875749086921504014072337872601035893313373837044222117791180582551343677632268137006666022131718129943542758779685612797661763515152186526465215143848079324275334436889759950840397428138139167615467640550343061274420679625854201825028727205680616530822946866801536918663466602196928434693225602414457138284867951373918719445015864125214306301907395510245309793413118995091953454281665494457729478893548669720863774485603810873097996781484472091321879976522944533886696008486986211636615518234795983052793643037741297622411568646448685596333488746636384373772617777599005013149771341011219455514773543764223239263763829140368278970960570787939163656587452179025632892419801580310216371077727902725803495602157035277783776471117046865545614116423886658078489954617659841621577447362284549015828277955036047524894283272133918094231361708798613206492311496935760543360095935269497654863332276861367609555517072015498251468836354081786705120728223418311945944364965633504801045993396216614764549853815150007994968342193546105530777830420105681379497971495303730130663116946438277744744177753335253192029165365829918021654200877547616347331147560981556375391161105542005812869516652015563485705427514619388962686276748945318961411723293302858676437224354875473380517752236032088255755782896314107965136076072002437230167821737416900739457586308738901189343360686028368120211650425813557554522886600577305667155573590941064105256981537919966468226356682733008403353156725458807471584052483777626100119534913806565828442777907961993244898899864081017864418332914500893937547467891927285968247361501818060638260607456550509569810268009985519819093968090536852061108127185015742190065658805836190635423302119975834352027063743922695819586362401116008250011680857443369849861380655345167096749342565369240093262229603220041371984906910195314527469810077822538040464818980665863975311162779570719049531915496059617804894359564136244156559807952639809916907383770625587210605708861497707613755598879330505191088491101892561405632822238377997096712168890169345800328670381130474398740189601427984092634175707228468135850505856989980956214395909662559340714185813182789863397800224546230826971394086517334403645822474581139946039264392604648248701574078211293566069066494434614435295014264709410136048971173370535715554831157890268470478717939501269311228100633671211298959916508097678732751913216574581598468145734758205415002294048672365497799278002471712172041843338997583625792633721002912396806793988584157610288985449601440183856076303947467969524664212590952774020196851788255743717898848606852606038234518205793302175120515473789318590234323861500231319619086456815095084191250866798915890220710048938756237366180110632049222398044895117242027816278130591107338501686876956324641956648211171814648943994928328289297151750313670198794750021610771226495466161761301866717745529796175840617739844783157829882855356586408528579294186430743600933865743604928513354276050796474997457138890440148769880611016566263797255986656876528961558715984816112188181788943845692360162720491609583489487811432150989818432415937769523029510612459005911035378197938490104280665760752476830018911841148937064079974390572887284667846251188274007035101227303134095146651828354676293558950703649351137137211455732782918782784480742256770974807342744028832799421169673314300772859217659639484385968643579156164626704122297406384544613618170862854179684021832253819860925986400094093970740555739015392910881799402846094286889725414633965170105119260014491093677593348455220744692807455893918803846860069585094661216483805314291377850443232012610101172473244029310947940109482856384160134879297119245430775258409575583005301562096088634016809831765101074293931583326727556840125973538802829514560688449015959011424699398134410058834956594894013953120903134210021313589438324763663867018232761905777655467248834449549916985666085172379247255268649010058906080206183845499900316651481385930716348454623493214248420329993195808471314608582803392188077470502982536454175618928151051290649438327484434296759044035665321814227621022811966885169991662113337124119998551168201952106160595915653961011473711533467724431329993692622575074761478769207368675898939907608152857410649267939999617705332821501505300873554626495645458055368410189809183276700045560271848625010835478478323757006113560690177856968119502063529240801326805239155122170878328373271936125796589173432949880253883708006409161919939496409004204882401405699003455822328193608404541096459511160860889752791687352902612226717787041497993615471946497045132405330235526604666903908917604720504638587000846545426568977676335613427980769648377283043057945572324527101679877124420688534826737434312980456360437325485279090122408208608901681246950239131414325486547486514822558607755663058208460127643430617182419913670761235462198592332795739881194465241017446607755729222024936028978659784117813075775138099810656129669763718965702958437641637334753160600552353469154939159972106391360872212909994542621013586154502344038084588285833489778616397968253032567004858519688911495722844517194947117083261136750095143891240122715684358369761818594396517879080425166814781680692851846250091482207337355655740338778305040754453938568100896815384263384263944098047186073567457858057464089347405762060294247534735568251482387017664747113581456739864403758237865885044253542610209335653307185517467687537300314001555388585920957705359207549929294653233339168973825236974783919582458564031308488885781879139906405403137385726629503844203740254667543475369623443693672622573605523524716000327912131955268946965722406231388536534090288205665386697737104174863922719199490652760828397554778358978153642638465207584675904168415450559690625320365138206137674926948631083008930901485003922193990495211328908763183295144790060805547349976528207372755335334341629914851760588439751320301438195614735661055772929464124495416504627656699095912954365073674449645440938473885373819018605386117519885126358591439697410635651606735951537252902848663823926696891390473605791283922161183458023251011639080413128149833126114257540707763827169076804802055615149277945424333076267750756206112215128223934398701705574139364851626514725407659697323626276176009717112934173188887894701863396670609431219843438414379902805741781366691944691060253940110072071323974657310450532066394578423555921906454508618887805188338962672100229542417895637719038972994948616351922345662697980607807622748156314429050828990133655220835865241039240061673736095376857966467406764241928552365138513284595635733194963601005819799295481586410462641293995701516831013627466119164143618106822715068003077752703023237181910974784554498112743905840359390128162509942762189600051130248884461701245193218213353838448748707974875473681279562038828175719015098716203119313525070053298778091182843664680726959981091528132238580050760518269210924534259083912492368326637604545474200112494066621020269752331625144032124785184525482069496136923809656861621276909586666380997428090819641130926760557089183639527304240277760265443925968810803757573985270390954846443119114028169621814938427676048696293355252576369773406704297943266007581924870796130614185399363897972600405486870137997333316684937894544670272489327860965285824653022472879298257640145131094729099599403617741360754290316623818588703870933462221379672969913671593484730631651608169620102065934247938055551641516080965952215542954415970373460038709731556473748629282737549905742124642911791718024126586500832241926639032196973777403209493134271133260756186142678432386679486413197979772714514527662219477196781517450704231697187075573375254263290791020176225306942680621087531054048885272444664122680464962045252634567638459708255696290492760735235854802955454151917658096190375363842130254101959708100967420927401013490416945057941916870796551226133255191625674621261061029003386829947758550324231527125596759968235414954545810322768784159787230987667575690757048261983987790831461083485489455705701917173875027365293554318735840436766040889087274949879834031907016031349296322964898257016094152350156859777442493556108565271812294399004448564336734525274597437406706205823422617592266160801612368596491884943191706597185688706216249881900922578996498950863765372031441349723835826193606745476496674860348701924593546068596211504332717258539194070328515098885410008529344690338173024919678773522401115392993133045646148704903391385813416352336826667228529753303532326305191933791788182738455625369204509024006492843924621388557632836344376971063526099541999101213575929961433951773691121460239018519966434605664491535910767760265242331812467070470319280363675612195597657967077655317530638212544115656538482163406478471753700201313328470890497345369079837125472012588620462038180844320963947874843208628368820408244879215133303182924915838263565078157994062629168794994191467818024353791171457459294787276026586035289927187342239128962799913475456767494363125147524628837944487134204576947196938912114751858146362931754566210787605585215836664711238461071645069597308491347547422890037275874244941005676697841426115791533806444033348764067945366271852448795331617420852309254210118741314630965273278548423349571414646001783209602074960192821279150153458133174798493859813089018342642787658844661903607522071240845245544223572774114017866954097830625671660545856251974702304691551545890423651018707264337595560587605971486545246755682019777028723743455850125621372331203840731189398673555448466697857625320139164931135796689179820034865038611327567871768186637484736732963420649237431532755041967457408579595093090796187263613933474784041094396685705428697549443499689431028448589229483229235150163027321639760846837577847970963158438480787854276146236273078312890436594066270179967409296596777204849604638553911051075115131017859808722561632171541422626660844939571827002846998984131704060255093514801784996559316371316768585425733610992629788276103756787908227127638187651315404843951606005012815245433229442416375074996695032234060445806940557081154490523102841907551558016514176879321148869741197748448568421767889640586292616681283764309930696958628807834715222140185643598149452241647958667202153975783534454829226738038067956624620117737328585837334815958116730890017329227261760558248556972377438273201737674540291975720551343951022113904688560752768469586063778975553571588019974234024626269213685696649339520443950764479310848284524865849850876105890717360915747884081541756633473844201961844674614388563388441814906837245693516703833166188324970231022054090350466908855351507456164689013834477584034874656347041436827379060923775843332562139959094867167568977582074703467174271875840314675064531676521073320462563007198684795639923020612561884447869832734748164060677718570516491867224649065753490413415261773774385374693886258540779358351364233444186769479660758997760422023216449759464355266693730900881496835629966175037414066889734229230914136966306611855074665593682264084568412113563551467345619089499765100007840116043237787447231673160076535743171668446517791903944485387239280491153906978044602142236365631397228045329848472130753979861652604565700996985752571179058696669887123005132809575205694285987058260077947091427634630253022512110340456909226025620755743682067897406100449500810555207325686469181271301091045137640918160942378336216219305655751577479545427070770905661424328418453234049995844994498968070454333742677995057729359164421159277621317838505197278475339948172157442743489502930197861203790979100901699705884161118806941383756814237477408087472406845859613895409355232504569508327802156489072477413535811579747701850876808479364016943862699051231837513561487408592655180398957377645761528595526727683164030240273521702291113576550627899177703153171030333443287478980872414714965172947986527706875779849054343331374108105395438628257319224430005774226233151850790780864120445471913004644295213747426579103440119409286978746290363391668581597053671684047971820417763744706360125359474599457063679984634571675392366359903035189508078759936883729721441413946732984162840963064935003516779222390968402287104485494235723621536578454927153397232494275716221386052675786785205341588828755310574515583299749465070382580804451128996509611031130741610193908565402122821990288064166948072865830019529247481513333689720881288093551847886206721278659632493806707777909951640874534713602877416732774625111999982230898641758400251426698568423133909809042377718262573902668779266187297178250557320179606389657766525486244189268024798164945740894907169015309733427108211849500075692289385785763860374824335119529327269806702053780418491916980783482556504098812719024342050352606928473220853517369046138187165425924740126123106384024709213716508670253015805584861228443134715269435274823988784751855526936940014308052887749893881320275033506817467311256982342843856096141684512038836762852088058857087940718092197549081798570089313493593388785900745735649581619679633637490259640088431909143000919376091034905391959238876479642808475955285688734788411702479082287837597718724963472777269502958474480426435836020008675190537141980030051988416602069018900268553695420883911453683482234967820892867605922181371971962261038247514593869436052063025305078657025479851449434882750728473816509874279420808401196145286586452630185430510032080057323112746687145092645187798535421464436873464573328802522016328587890176858072368765152522082398897020940932454235357349852244701234970179809610317166750779832834169084436494692884078987500843785920664301956131027434349644448875650520133409910428088206297364328271265809306341367274799461345376603114781495255809529926976431153366556654795523450229061285328724101871176148547230836780149978851809294774197502322394346072469290347946313020607624790011084385491982646324546734010580805404656837359304771788639409566746044924859519778152235404414349741133701412236334887706427096418837716965630368593933233472672115995781495120311462913985518969010040437040216193544284635475171288556885429938614095944772971479268174059876602417133081318878776963219316839881707928831205373461029655260442879203854910904964752241789540433901744232445004272428066884659626296360971852187999035865701152408335541667388480039823232692209889190377452711709564274097583588884493407694019374077771540424624765525004905771013392579664857498913396912888155201414747123364491390329934434374107092726256506371815295272006525252348173193322441154054248493399112411362977977802379011585568159721279134513238538941070313773249334040496368676759279133061039523451260400706739289098608425143603501222697756337052271979713405794532669503088663214669514493044180731923205305135916888209230020157119055258401153301229770856707861541998376020639902145656847840309491005011554057486815294637687624652140275160008914204329466698681429935242641093221074173585094688575697487586450111363349695155340193471485565551506384649849113275493941809381967477043421849081118343948668954626429242217310618883167861702324609123345981084529275651243878032590422045970209127374949141434243602502112655744457873854686347165617378268675453245003578738096217189557356035572240781886861272960669771727233890245975989856849625516784882097388554080752757087615637732163736089695298599152106711218113989659779238062174994944734841962084559936408688340821064836913535232774712029432572191230490217514983070174182199813035354914746270662402115896132438731811752992446282652969582588071359851287773695678554549513355566122515992824528535129451452416041051400300772778281519021933724552958762230162261508130134902054164503853433920480979263496694091372652460468780397469814031440678455917506150293567142788320271236146539171588914446826667258695301037435832044048266043216603129174506223381023232901521019403042892061338907251754124027385033860884955818351811451208992501905140237806472077585602718569618698403354454461710850083472809969014749605587942241178173970979216357274473117230189312925768487820891159378846877498319844228568922910840525918778703006420658003197159264065368090964209933310757584148312869184494771822235511385042838700824301215546029119568256923283911021664402704811353261793941114404488657621709594446757180075082185996214376780015968328319161657880037630155231344909854317110263046122148090031615268727465826812548548791161517188130231150180295996284000592262267797175285781873738800387825950435931475543959921312494667432468901103585404934123487655387070862998440933352173418101386907747110952123651309331966632120363715426887468868133810881453055333699170535090759962702869154036370684359455938980618071934673188411925326247973607710159976616451276421911053211029889383212744195917747141520263682792331241189935745319812233236744072847436803947473917919119339110564320692820507985635170579795517641471757462834270986683844496922517335423830342418589955139235980710298465643838854437349099012391012515816705394131552107525526270015315930731528368553807596495333231736652325391299284712213948048763787817574627399288239523619977301884689145981122787205252319662662139248414212434335607814989783671117469928211388686459486586022841468987860268052031426522145765435381532795324882865260585852287640767281463451421592258958164127537730957195244050321825920573431203982191231910392717110884235464389201326560097532134461239587814555820335208137300977026691432150290087280389020558676325151553843436870682613393143607248094763073280534948817454169241831159888032975169201976935652294343270511030817057740240577996400380851450843212861337226183382504294248444985902249937416506383593686711720275632734953549398672266224680295801286725746052256193902195033288398529604631862426625518382278350887921725739546511295357772790131468339824337102701041996324080799823453796803479512269086283944080269182940812354252143115988494432858223572490972034839997486921416576219030947808033677457067011965106609041201310813073267716336537842367888825553890084525946679548575003725947933378915378292159030103155415456401971918603072521371669171992053621473073136875883415419946141658324552596443926873775559710342887488244413913809923975595338931626085741297109271743583875792979220404384765777503646128536312119756917067378198695036372179765914096255065883432207788375994780609965297038996481520241964365444926325803291096917181369321849997229547937308868257104055821464715584684942904181672460539849848071615990535727980214507723706833357964284704125168857846582766536470625981430214998697548211271152541836746646203421946416675542286623087644620197557432214676096040462063175451878318084567109906797539778718532239117051018164524576092985371841089478200822007420556401297818644233933682686090838546065093075857302345711143126159565517069409626694294855398238151042854562840953888583732589829768262331317432565955127329606040842824162698037780844507283971444785180666421442459797056906801728184596154096920345638081883606547406877480627238390519119051809896260527198701237144219040266865225999358007927271335129390434737480351355526190905757321284149728372479428206050055873139607695771363606406860227001051716113072102228058387522789132766413051050639923020258678022234412480053834618553000435560156092753431506071359429348326786993365467652043653025224152886172963803076864286885379978628827647259311012118437803172332836839403582063828128726254755861982854343125067434329602140371133494163903781202938002042602553918165144433833151819450373882228690862420235170141225989650850931940571014743214365464066568602871452768995263791346172708687021845148449340779742811327588845188308258456192934861773902665705659368051087356321385420848632488112488264076468233745691684031403727811957072415638476322478943776508692273884326089631369787061585568051406433231334375191432461647932625779580015681118620775873008341040758871604004112142198646258803953048653572896272884971376413224998468384731622707486018825661095272957249378622166930973564231114315794758044202975480550415873384066122056172580406357647371513158316610903866822337669499343135542366733484762201323102152732175767651685914883579501950504480563444387966127055703030430972107857825634074023897789840307340272197109054069724410422633755787828035459906703669501274734127936017847590765682610082240045877262745904562527534528808236172326323297882996395684327867111696829566084527264167638152646128693614846148198355320321958532128714736480575150977940057189823375841934285589236689409576015632096723816514254911249461347139817695072157943976713967220479775754241016293123528259497991797360986048803987380099764244068957492057643956663677593329008429432397175832617094443154162449530179460046991843216874341152895148377352274420947119956301925611881085731521971971696799758869440345122153620503342592535601067268156970787994835817056133129909806265699395906470387665150252074927497730326877293729618751247385209959884385161515297228270955983598286969600645753486609649216794105500828905173286950285401144373311337765850400912402446524953506433458427824809575066116326667752925684081013342231993493983291519748621316817724629662281628426298969603092545982488399969131736609652707887422574748551512824335593786508362202166327729316598908394291593492376270660005692853808832148720447434194550249309231730203919852504829939945474541796563896437141347085781245308972003741344397967122849019565834976538320275747568866075847209673425840267400059714531739674602056782414462505708507978758945652285774992826568079411312361942406688429290733676260493957979200641246792364152720585792510372003200105279864100207885177326705314543343075241700550941271546915909434758786257435928657370700877535935845789284106169950919293995203439143937493165894655001065103428967298777528035086996757091920935795875918558517075755823591510668775240659933850025267933111087344185459265359580216042899787475601313819076779137809039265521999202879231141742674125750905295203910742252169933469378844634860242422855759172748978146620475040790888517136548960752771331918474974702740925791277008947049523090015300471470177374352427889130238474296030858546636795195067556362010131082775603177516399359584732308270643276071869877528760754425568581087304730595135215009161610616093561301608878485879155351796702609434274431521234754596254452928186293170374784725340376301031585365322935814378739827864093759557071826800326425736737599509860277859391292106770584638875166157418406506334938340740388652333352236787020848700520599783058268443069837878798364231162920375661480793944747462279636302814094532157883221727571992856491761663105539435322126158295146823296607434040793533252744788288289942436490765333554330284649018484590957001604152891921387060775739228451519456138779234496393384232159130673738770477787610236036512414640862037867937405272259766602012697823198334701400315767886938004284142455114415417563478915480306236745934901793417525589397081392371697833235157016337150042020094400245003021931615251789250353662266500596501824669272882778916457795056597561796625154143327155248295137950948170374016892441118097404100595446471941523596481714836359332718325763110810800472647044954350878579594655311427400897254370124640005556864270803170231817411919699711716749872492823696679661897812842307994608133930246347887605966589834300137815482264894828748696060470638616869797898856554957081777084444971481429586139419938288091066231087508217668570565554660576987497425716113694357901378504679510582972400873830520101363187578081240025628328067443216338046855248166960138887492442892527048312956410897240826363382071649921337122363171068813723295998466091265699578592696451999979570430789810049367540089195195536264449556182172807831625788264562975554598947130462281821804650306632523021579029598781053353125648236861687636152619614950004789903533403763715472351079427790945393992943818193805888737416629871542891077703039626637803132171499247591852517910210339947426957401200263359042147346846211654600184507601324887455391310411795342035714132770204740975496996006553416355576458397604662026797534496441844048930619430996333210427588218180437917244736275320124802644615290918904961787473489809023571840433170259546028086766681855431267273215199741068116627175225024156241489495634145535614949499709796568130098875254538306568652164127730818716823928845962790503505249393777433700633116292262097502863853881541037944112370937184852751266056385738985060799343495354511339412606786609121281964159747929965805825540378188630073938929354729790930463205286237090843150326435495470211851241848191661410951336444967906016616422708164185152348995868921596605451048398036461414109690228787390377394922285324739948595651878205679250184459171450450760059823436380403875150902974055410351648618005461104384953161527744310524216487393006408857943662541209659502144059482881411169325677358767876389015161996542110152287562844234714175922829740828879027477682137442285379321694874904380142284759181853775763863564827348663707833007989149449649184861581029775197472495045694175398702571698684085390690312780521738484118862511638946977111765556810374901381261418226025692236930423761868824383758563826761904402717323749240609886145879759556428474513296905436254981896371849264369732279412053855044054746748793901518620735884376262548647485294416753987691209568561281750863157893937624422987549444787792489084662151138194498050991796289161564747457658509537025809260716332141842106616034705931666895835829485793908581684900397241889583053373092079982744644353621269809161406011278444651609672806859448322600479148710224827601372588390841320219846529355022430666677068275243717140916247294034361766794072190900868810171918504978232459440073953355131757025863924798190409272435211685670394156191716308424560100370297102106107833341033764186206198179886805524380480914886879314070186700386220212917218689428779443560602182523261065424091993119941702805828521975025867024321906070381392050702744816135943863466889835666799174269978807496427187651724087144061539099146828268416365808453092810237144791878743755641856532133076266132307123481379280093289058476347198843314226309809183005871929211506881544337723877620224355000063574446635183978391103686906610643671515660380079917176049949814215090227908455027814425976434506792585752610472944144475011906436205699173663551746082080543520683418169210246064362930372542255251759017809582870097081797738711917270744656509830573455936212371754632635149241798108109770488721182526515302349248032506678327756744863081440414722293672383105249739141142122545594949865420888401491406506012730223514369297547782537649643982943795612431947077875839232827717266954779242949753848312229310041441872879286424169826174884952238320780788997998293114862608985547629984515810618620597142464325672502703350903847006517871506517533894675323845843272627801603445030987093028715083570151598956381077273607289533051686844358147143300193672050529396922922066946140546685924674814322170356604919542842366369262998296796689231358592257508047481921452389987443248216158058127233386453291305916537195122379482707781584166923219416925285696449867363460130063295046912634402583659196673012373964582591469013891350548663300916129382478950877073148259123769628051288754684334977265891152510264078715344138738348518880211627968585302983378773462695985881044626370238435698256693640731810667574777554355074704595052574141695949591832926543907019549397531377416667426764268225277083613953323605448589610917057414652080929911079447195586818728257078925492643990288515041422245210131688917886558318175760214695848990364635748695801448065274622967624863758219241048920137486007807354273335824657544140281703036698925491572964372961661135880186418261924784950802045769321064694119295226250592952452976792947825042651781205054318551647169109429520568584155565323393775170714058674419433625989587950562469071988225222397182884051758500578960358921307480678912776315999722987892360291334071846500216037472744729895421777620248634611497393112833282514601719272091124147143594657322405717450752395916079085553938143748482363626828156847794002808004535596248499452673409223762760881501348131374760746203992824488110728146226202023291157427407963977641677932947487955427114197151918970265402262117389951229657057471270172140687217962282826273553127864006120766134965445795953700855335803239516282240346005057336424965659556260641471671564359942497798225767589032924419114963164471997546201445082410774429359638075880618091236420994549942994816695690114245552139121586840133993474724561314386981131980342739123773890240265444974299806262951066871487892965512316615687666983953938028353167583234662432876537994473636823108898603214769890175669335089770847657334041227470056613489632637340035904458335211230181096399863893905770513470208203395592969499933520978123307227706521431214083861970175728698289069349016152486945999316615713270838756955493286546512015191336344677969165297175970906709191776509768394243285028189122869084567916689313513938755494566405018611440103107491946450060837540082435394527408881641419127107453449935161819321501752940176403710267329694719856299795073816279061374626175238426271584737830204261942845907395707414178778754990530127767609435576468803705670526116819670547664055267644694813659259907378772347527049133788560007304043368960345918100130785406328578471906091055153450653372541785768153042163320700874984409324072284630919794138164869991751264693411139044531598296482495659092904033564387551047596972323290545930994423406519447444994562827355294750323449625995230437219706273545895557994467202321225106694433656166863450473500608824265961350542234255062644464889215517641468978949636776636747887302041278606179648051275312498554905754153195461727856155214620821883607235961808519079526971735493988328109284990781845369306485295792404908939836238719391827331961407824862366428812074430373136126498306479892393563767046690257854404612635881555836623379619838725310479570435986809445019355498797893868412291417047019017203330957389132222804949073579180907315375760336089146072176062100257217562711452054133913335909152431904246975080799671261728600247913760366785228908104164414388013664317343916775308839258634980907302926079345834107838587415662516926596155535746366496605158753691152651998540086630577407291698184476100415769872974697615012435363247070634400796898824629236513982073467567062696258462669963832552639740954988867895307841083975553699733996031708335428254027715954189344734590588532753511013842465439339038778984188778445995245754408755204173610267550681436798037505377239476656496009990795045481675776977509680124160068041081937713372073295962703616551379337852517776084040242451839140288587848364625291161987418200481087391583630335513366182327741301761174076053938085425263080943283579177819933575174839792408772593568349040339792050772001345406856906902841998858822123631444115172396269374157689627848049623213413166217114377954617800193178368132083966589313676871757374373197979126442351501205953900308799545491665910819187102428838883862823211937452858180495527334895484524924030150297024143122197091766126914756895192451581335704964343535133332333989118076031548680465827590242646314709108178380741613492913291264885169119409562100646216669501297089280755856615372484491308009972409318213905629095168830010147355310467764637066807460520802255865103584631389000340844980516181388063786633002310290952301764101716200400980043952807725252859507936885088565359916898247025890220655750339920302790965077831600172996195628330030052254394860341740571115084062588642575845786139018032599938760018520411231767564720261223183830510083309572006204289698664024374568959493314255108213097348468759649260867352184709104124500003332865825452152709755181742268116943345412044869907708969726559123628915816763685517582299087681080683644286308985103401850887801563203473619901971628670852474840407885673695401754050192809616117258694279246148278903118149003675190564766384112242149582737343759512846901977413805115982877331489051462861327076969533385256081837983087446894530063595531550521247020477645553222961665383557656300198558360406768038598722479384792752442165988532608678215335094537609163036769337350384254278306217382997447182577365803323019029772940012809285637600404938493073783387618419682942095365210033197692023656066781655553532001850140893293887635912002266041716908616260735008602293018016529614278568792642435589278546603033840983881575042819450281201626045363993342403189806960335951734991289525939222953141390430173509750618764987707636860177151702990298938700512394516287307265583851073947514913130027034769337515246900542083058667716258143031926898973773597643062412357960312097432238971977817278075955222422051233925801214542498885169501929876977114924823601081152736144203749998097668267900923669741370065139069678732532084893749111354577109375468375686552903917392001653865487622214745285362143269570954973011640396824024867566999460888790128163607565905615995835768864638047838797250551456877895522882131693808844194948063250754270373592051410544124387817445406301838211788030889046318318011897663477317817518817030006119761037666503939640945441629155398066004403097921649249654783774276669288894580157360463469879955483345170989406808745766751483064392709966978947910530796675549141335490074439103413627284763237459750273808765811234610019048396735146641014566584646995282895867757723872668934439364807819215565980795907386645273878895873933049324612906332052546007684079619630877725517583708229436418904186549485012419736197564554951999006928059975505677784362580227555367564458905133137114617387551138443285699484809319157472611384912539417968644594185598001728997990104862407754704567790939654204537646027596735762625748992604404964787154732295973000073082252657795610439463869594308037045631985025402816465844392576786925330095533468694750001083952236079655450966497233682104158505278574037754228970738034996040572453757937318328459871287879167230018854184425764174075828098643686591787854227948195747405568594203000713655155127236156619009468673369515521646987242629709315485625942388316079898075806733937546325266210827999734588367063378535088294245752338733752292486215208911967134409506042157503412890592463097975068084675666636748272686251059159463353179378587473120743546004298472253929382818563263177058656542796865456220041523320236872035521811453964018863151526613946808889086856376812587241398915635044630979078750951897303118427246511715314284909437226682730669965197337950489465255011182927313176528130013868164615520429374366377323023525862254008113421267027717459382709508376162640317601117582798912750633738694670909686955750541191683790354140890196910694772154418742658467394366520132336551931156820929962720213229039993729304598162697199453163975022734083154661904569446752800990264588184726931517217144759171021518399003612064210379518787144600036724835081564685625908308983555813411429495552566386932774418443092850340104915446818737738727069986527777376198606173561051222864517130555400416374466983091685400758065901784038736388539622896179182596062383291107112870861217200859558473964127100521476791725765213877910186223806454951381800675630221830146454206935773751617143109348718544324779585913471870364935060801243651175622731459381121740915850936244613782198521296629842743352226912934817171936458896014584474741663722945782104895331643904412934807560463951568542733474953570158181700071778020257573042093811792531723265075246111128653029055891191649664924647367027265410022485673699174469576965169642564661624809687982086773676882442990492344417831785685703179251320357719127496975099846612478462241892138625002941907722046154875392700962081866163745332530130472721072702896148664602574333887473312641115319606572729583678772692136525527395854807260407384129503765984012798819184702516080195168276354022039389410220404972237686864138807629856072925139412131820272807125387931892716507335426134023506163700223131180788113459221134148845212447085714156498482172283849928772396653301746847970313261908583933181177819237365178686600775200503320775537059464527489470285272683669724527117426864311409066652882610695093459778213246822152883339509562791746584072339310113719075055515765130868078971369769543043317918906746973576022442054874470986442794215757049173279397436112140327136531847476589124886559537792503230442271814258651847141115828331498728704831030617667925409245551090210598958980326146179544712933523790039916638513048311629608288558166428733024233319755808769374658898666833199441923152505368198856235095910514576379927858311468038329926146913811144255579086464019465005128418085700324487421861725522455317334915031602106599322029450891575855625413380410522335488015081612996231981585091855032328590226216219393149221777963290394392215918752524320662914733931467376492140638888078587552470156833090852904803160755988765457042336377799826259029917118239113884744957274251854597327551038648819509105507065243491048630714268623782714594360846647580193113448901607425785820464497986671985480289640955732341144640415481139703431022984064450733305762341787707565906276205169005567060531306253547440109753924541967857146256756017589689513995235167148560578110746921564225156523022660621405468764904791053973930763713975774494403407338421670286224225927174267725736918614807670536715267322876372540420792372042910842209008579350336006604328475065096194384261282940293189020097390829647399182943343788906757075847502145096293774613269983803753320357470066351292064246461964375515466459822619204156606017077197383308451097270040492023518983666889750921576118652454958384068582653045014207259156992456301466816619000275130425926719181205543033359947594932127703910197949891736015306732577028703550704315797205352944198557132304074108139232536143312276555766244580751757475679417691516258743324085990513282583790962778657924890751788258545617523339516416728443935007243844959187456667206104597841941634536292784121357366768831886890961336045552862566232579186419386689865025922014277604135326063787962432316161423036078757534533279491302578280001763152944904994065957925303882182727095546343008631200838762232500880908721809877018498309478005143971992532572035463556666194484294108733773049611527213636921372503802459818144198566305343134243774493288096402964588921179885623292759792651538324761247483666652446963220704491285944322053128227895595005875034865606690103776090851004560655872927333310194497396077547740439046630157259710450436624434287817027094672924675784367471757904446823720200350420231656261365834524463698967375933615980758186624766684345262584220045681939283881725944258079163222717016226290472957938515194205362898663854531063591591122976501774739073401613683879632385612190873980218014793266818296311537641860215286148916766418648223124447206745279959380674326591444047416278002459944286112686039097127626672660378960024091364225644060088772735037855391966898556682457693724075248589820799397669848454721943899844367985857369830399528883545862121154243457963035579642896976403108977316909080455948968287960681226644508741375238681790534042237272550547828990622814195229540698565394039916216593098629412859403372711104218597793488667445807328594278626788215066906757888811941463408290372165253793757559217076009247090990206233221007253170185928394425967021389485933601322924907188791134308179385007830170114813015714137673950922909235346637905231413045139891565454558663401817786614342745254436695871334212162413076224167582111559187226513241842671991172066273718548592213099453942105788377235235966995062504038536219650851545234638872856779157954035814444949111180372957980117030171472460327164244532759874893672625003269872371140297403777895075465875813081761614869373388228890694758717322157476831106144867915724307967429425423046145692882145040832925287901820086963792961581391446877075353423790206468815514271670010821325208567218410269368900615765743236539062223398758753060091089485446311889881154496672085793512678830916814212356028943362207562349581062656426174817710969906567929643041346138882453255548592889819298529301264396533645894551278556205960061393998793182136279279261049298098047206090362028092188816004209194972030840219272229903926934913439811222025092858360433776793101368491266253197845602991286088300353110015663858002607744807178221665161529089458291051558688460642645208055442441482883435503211705346305772958356025107704529186600021800257552552301214936768157764263286044701498472252934651635172285636119415141753237495322544066063691704000886582466801582257083486566781268746089030409993647585716588844572610574374006670047559867463324627764216962790306366535001744151059692373084339369411958876103836922737618289267163610327785130302714704812461376016094088256677648053639761503619441335018516610797694749354276931856437074235411996421934420269130024497028898794223725751336669446046122794915417938324308600813884363367159238418381018333515019531529518710552167371740667053759688935628585617825861324315217588554803243167499562923800295165319392955756941772140138539924229206727056660299389724092076127501992240820977625071650169448991918996193881332309673067299649160190945651515831001969052260640141654063106272533812772426771376821372291337505867789040104449816738980828749042052849939429897361108774918752101276435874949485284185883799024281787745647003808726538668713060493256734454006757642204986187754967223158754782790138038631918260267310972978404037943378305283089099604935175944325773692905627546685839646556268047706447035806350872228998115574990982884811901327075209440337898149871788835998203187755715728982063252584295807473861561157630857757730839387044715619241561219496076369623855175148158196193310924217311821516991877501450544129705346378904972830652787636591705265676271403140895314383084554402210472179584974955787653316436189388597155591842120479202478412041283570385426299554608504563762118857801195918617817813257836713062556116443862207289865561259261050199546864069184051306778963893377219394334543026217224819041394835759481902257301653972222164375395536110003966001727908448545300858450541776317299512110657814902624216701867976103093644441390050245422398361013326349059930626594182868081559429552075658675310587993112506058785542632304048466600673117012386939555463557048590818249832811875933244699088963852768871293329484537545466247770144886506107300150906347562799191586618059795211728638851760400683077318179219139850906630760791595341180784002591224671543690917255238554493534733384565768213016665798251763057521411395888220816615194142948859588984112357813270118549033025256622432431685623363995703909231712881300506360349878220739146656114596638367121034286416861258951199483309699638694792001881503027424695374534300826045802035257068028740941197743491948920084629608042769027107847488779978811299006048906371543447705622275442261900750524788042387594220425393659287010094158906825340868778646163733158829232463363420439177085813789553610477641125927452797022359043642911890516116143047510593629840258228620601198159784493619648823887970540332714296673512527713625509040397826892654562683054731751798312705833246639201414144110312119978793678295498507762507550669154045287505554138157222146744038908999213967131801425756778385918551621851386541203077610164041753394160874358370792272177761758120482320256141398585966306406963202544622049563735968008257966294352745746069974099504329436198877396847121267403088555231413694509953878173506165287793321021789076993877900135193642797310548351995515085733340918451748988930215047287681955120578857512509919649073883322567010857074803026870483511316869702578006446183726097879867833589800042574631840364326253475124499124870475566707919978338127618666871857839166311328621829338594319008604751340398437224523040784308883587440604842539763202762777649968573142434497866422443957292544530105385165125946224271785290812620803425007001904767214876867550368802078091846075166621184871377805217594530662545491473952152817686190525849060452389345692474058996649358260425795946635887566982665249854818786653050934012220437813449987036077949301226012566428818066541265723076743650526819788310044290569501409977285517113793645793769824317767718513760247051248989499440760466237336892380529074632982785032498085385579783679159887832930406418224593570933756944769824182498116805204676377145263459038899086012015156400431432526934722566437981755280692307270356985728911670721751177436314723643360627784079763842982215043361895468999015425898252852187791573414660515245618582013249182369598207130092406617624078354718415607817803412093188104981388524472085188183843084448479226843078132899033993088607698237462603904384612268763376075284172034790138592304036432347612453417305062718868664671043823249009733744323015425869149721117752386052635765046505760585313467666436975419409506958456191847644114225245125240743164639905158172879106376928296464493205331918452801592012927708207349546965533029931308555163969946428799264794557990238612283067966622941418885760120836176752155534081259692595035393467322791757163842845428342977844747962657513208495190837165816844257252926969248357278186738981111402724790044919980079294849536572466045819684846863160335293058705692084895238714166669293410709683348009035508453864518128081713671875649448852863858760425208127078646707569856153380936997136575458003153160098365846908787884356963353511662396578417218043616417175226572898850466752647371517638962784337943640421551405106689815666767742985322385010269874405676684579776282749491323450389280992747296448484862692102019747696898145315080437969673317093281231279244207308497353390070705108337925696481806667135059020365730581124563501513324307902603272521883871663751432664755657776071572602720867588553860987707511383609920218390852524634399620913329700138323482247434900602938654042041101710137798080449984383954862338078003756974916028758809317217746789173628356866768410785706919671701004992140724594003363727031404274459141864590177601924792142881326115074270891742490051947326877305297676490208844458703876008076955455304347662570283075793040316367544943510185453618019901030662524499757836855676846256604079224491128102776110528312452505306698182125252791521723378855562184766086642055583666128319438229425942909782540220477421321783270153859625141350735624470359245268412491622261457684335236573959287697586420509405785694461701077550359137688980135433288229902433622408315698364457709798826611551765925773638358737926021709573921176523557018028565785734447598587689848600621805565369939831235041865386725809836572988128533667803083160522835866093129293787286554181469022049520383657438180640411404193107776455400058833645200484369781394613390165583851642748310461571235747447470619600296898745613353235559256705478500695648425043453324552490369688171665020215231943961576560513562144272789391065276382136223732936825459491126137578527133360382044837343500720681648704389503926321769449577609126896071047220246908311919080533084809857860146385967127008136881070037936012049861361601740274026228566722051661944196762353194932969792449346372663001034045531145556067509530223074585798155073608007464069896456187127623759975277043825611289823263180421315671128893381125446162770026275446373584294496196631722144638249189534442499492624827711989270596494377743528886858699626888658262655936366306273762169451753783567413400913280771691403010625262675856465494747121458873993492549213985349759445083737744043368180220614203403475099331552411034733980374712098093816151760694449780705950227246685496483533924526179592404438326008000094286130865717542913712965044044880002810271322552253004356377669200822511808583615478825032275900359701728137501042832882265899181820481236552942964563551393483599267038670498293866911766853923693717258137734279356876645276526066887651438824492889468597073027503017677471458645355489402832165805008073683811874100691669671897945027654906478905977261784665992581352345027774575671847555893565044908549893611803957343295608143943313010239247243370310662815240802983398643407662193882849865463510648267142515982856888199038881172839501350445127704233767205527236068942712734359801132350077402349019409709783970604507184028204650288533541022673043118990493467734516927217334535048672947698887033554223148084759760698280070425479250786292925406159757808637598760539390538295458980338827131062022077062583967096765926405793747745187749658609166770608019402692268652952421228558422625250287822352650551709758248966596958407562197065580093300770170366486339480345823021170563411835339588893023700403451641238606977228380645111021240764290590339871094917557172048276084438056733755592549545260887722161132409034438700400483707427251114280554423320466932358580254904746989506886659667610562045082840162379181794248888840756478429102669306754618031931700220056145770203552322531189872380715856405240723740173406187139828422050415829590411610329922500521136820822834208096207988989096509683985583340215867960339503209313009833163694503004041471712699740614033162383365209964303027418316361476710058221741242571490868537809485565123135513035357275085684765079799257195406181078835417647516183890724259501843930488969657030861693856097478614688312403801238283929096100204987888187754687838799218898931030437915412662909550269279695642658625474415423218742784418425017590695996864636188427193720339096075179843743050358032186905126682671817345564050340372610453795589693083361707898117568867076956367480176064899521163059001253781734261882512937088785239986898768356153244444179327686798702756975498400866495900633636829962344393994584713101657179897506952102095263911471518597816882434077420596809641573117215042710208868190390862997702581889642270410957593047212242026661629868070045236180357955289577492551833897393681346854382896194080914007248959151366424147584610851592318637809240878935042406950941893891034690024233201905066032751283069508575431764827382392093300480428549395077101549820494640087601715939861118645588671587949394713382938685118841160773615611928152274409726565514717715426248748875935686262530020277700718747136800239177659820387867316954720309691370076454690800994847626607811835256934217666911340360133565118801673301322754133138502734551913802646082110776512576233153184660993496434675275755751006248691443687153433793234036663819931796876113030971851270248082539408538987755617240099068155055728038947761519204649437661983432572239177722360711635400897610205065839600357455795124249656257646437522766760244028031876113826524027371093472002667270585860013263099371828901855738522407515017365943384749675077935682817880274982589538682077135960835206726459851355610178044786758737143661476415933178317353067705352032931229919031813837596712326135396773515022911129941463252945005625384362904733570958137209058449225408781830718929848484577780970385448818819120524828573813635796140571273224913878528695618267424513839173661514470830097802461132760075215544459438640644743669271853326429568146762081971785204695594505443823380833553379765566651718391935388203946207031323152027565732135410814667327401415838182400521419907751105592350393865128883291215918250603902186157515729614661106128041388032644566732998861796630947941284188323339374121171468034427914333704004613198291439413208132196437191302614541255232131056375898483589256933642824872680349896264787438923448352912929668532306259754926107812583278480526427459477933050113678996300720029170815387686231925819544346083589765802291153299766183138689113231536879692046159646512881660751169422647494077635219729034770103375182401341346858840448438483852427522143856244218597044677792238705322221192467772447112932437666424767994741918430478323917940003700391905959864118751455385495342701405263937064793773812542750272507815153622111644129469822821899447446733053363652048850889898376377355365920355518053664138785850160546736314917905076884999375126857303059297291677355047034830119159814891406803523446818805757271843825290487648288231290974327259899641424965591041790000756246372045672224359694569252516261668721129617803348036648066502942369480280733630424568220438459444791965763725683040730963873914131670059529613269128495371281252976127171431136951881986051467063196077875276091384606929889658397024349034242706671587922014364659193593811653047595954458463801350240144719363029210156103104802030773375304695151871691968082588539242247771670998317983291733292657800664851794607390388249138069183925727093230796765980068725817316990115513549423923609713993426266177128440979500358842240647506180529642002941224004671236426125216785865533843534699291238909563130115056008885031166023065083300158034831105005359548083443685927783803591238271730377457485379909501735435667203771454071608876591014789660924886754967915710290152912999674264135132255857530825756104147506202862035132044962790592159437543872855645113332194610453624347835709098027733295877091036892479471867959675141410130726039683939925826649743616650222757755361439247218529181367162478485960870910701308941464471821558982080473820718526106722622441890036864025013132803506199619945120199102389145818858015458679052814407643126370065623491154722314697286777244858963766020787271401368179327014511057677004496210879009459129060135602280946032488888356678533171153328965710603287607642760668730723810858692514301226601282972862505594716821875885162212211038091015371861048096187888857634192453378781769498103870194251509281409876265203173804114146424123279718059642791953860515598463650794525164095024686950359307703109369714386530385050685962749347951139138604929986869298776882114971749995733870474202049097307816410157017666347009634420910956139970872107864390069739234363387685655336116259105584378674731825556223019820783761436218317571327431025145883143883909570190581454783571708323052308615971994073132851410837992066646831019941904729632403356592009458028359083356350063557318997489415690248405620557772253030499548191039617885397782663517579116191938993648773612133056660130456586286678197634642469291023077342242262796461548780395098398455779802996240759312652743940743347208732239167242197789757051027954236711866554840602475846400076304068220017159382237908316095094771814802690181998931631961014094183110598936319547195145341804403721282926283989170603412826636216528531150876001116602721260547622904649218383710827831517175156941556159307794036234917550380419859908290815065331090848514861458026154011141839872073694229144536043930648869949944708254386588732998698605479864046389290808174379120750379530486402038183665871505883418264875401268095965581041023049652871476404786512349350962143984978308704123129701806334094669868242336150506042426731481543873215369411410879109820071106110774936599751629011377633924287059337450808741920164629978952210416701548880741542216268875309406222525149322773463718482779818214884460607052925823018907875755297274888298455900801394188721928353362070126756215820858464519468229135253019756237924126405482031509988729268820498678985737231374427031376648980133384508763638123550841024705203216249500272838862062574426234459436566354334687754389509704441608213019566278308984225049202416585447269194834096685455136817321259135258314795003704432640687927947197021525613906995867522189507897581386268901687654853821124422543473869812466209667025729074170443189514315371333125458484587767554386081744952970062331667487555047841337924934023538708583273029542037953512718158456163671678979082705938348493024945330844576379874890458656220487036059855833225352658000024462995482850991192593639138601211095100258447678277668826851768318090865320590017788060537688140169092296858138748808560637002488357065224049453409656052625757295271329177903210183321191913896320270396017621183389702818247848531687377579814302596129211939839769035415670981824614948460111880740649566898381273451900282331209860524380139662746963036134480769023425161081958582521463537484474061127697846339228169626721503198570052275662566644111120627113693479496498719387282207145048394469092240941654067998507727602023903441132049601054716286265975516353444240678100125929727374267494174870606398534160311737696513149429778352643459368365004255984574064631007316776270449242426928494311978588875562665021672045087000356262251516297283741870903354489518261808718563242297942553592966219026277342865649476800233782367577429089625602717151196977361691461036549214739561975335127873634528792525470337773215388284894404020944892584241206366101241556940883145529369320292649759496370040496511178901864337542810088239546737821477465131762150816165840665118343237891850239474299472595888987167654517430948977952628880716223744496726578060421206816763522389439925794159902835163407511551474070261720774545647872125949598023415395881315107563322267244557609393057122829842560898713310258249243949100058481855192529163522540271202876923754386049529176395411588952410532800365463322154176093046638878551312424257048599547636900657617569923753084264886622167694153511078369983035271278916541614696531943007227115661551913169637641244189207781431149251038382813759143728265722835351049465886807543567204163829959576265189857351613654887281077196547138182857564652666553288991576530268040079043408165070711485382730166024635406692983360485568605553384925805341564721283902537199424129617908577491890046467969836197056130327035223760658934344137099813524928881562195506732998611129939475310562283600535128318198864872185103067408601408061215527468818106092764987114347125362555999147400377357911858596464218267049930330663478099390064564297935628513987179359923059499136028636606641919357656246337368226887271079853046569669705552649479412654723715293657362810110520850887694089577627837358911303170729194665702886358041211142764543190260699924888594622972218998159776428236598282647336762892889215035498551310042535975170387928909189910325871303387553796566641115582620633116182080289558360853835882240551948111296184642880858577570596109796825350140871124018671882585176856477146013933422231095705804444659393284700413739525835013099601272457333409679971934813284833619033024941206068581983116175177248293137886928985858386621145330397550775139500582643665230291545380608461650473843960569276839962461199893747940627398695357791492749434856897359595859352709361907038230127619924985350514694962602730913428544135735281230353786521372122469088242188033000832202949969661338218952002026125692603599106744183476760736313008211334376537436398233295569034616533965833778762230287215296128457203660388037563346294572883635993121273022375936848910748773942287390594640740642435516324139013665327530274353825971608111913832452882178454899983518359522392204056627545396247664065276415911722289335168926214865641379406916208801740137962279547533718976153228265312245017643852764253821583407384291015100236549895832845196824942967570310491095074629890347303644460125727321847667782963923433139151971548210986228411630378799574596946727046126495767827995341493480876106468587596607045628813634896235509209227663456957374306460105552557951157929324890523285906848809796713823002965039122932007267870891731327038455758791188477772928270522289271608880703009455669014440538880295036628721114551675988612770706732623591739640894046243617584076016183266490462530108481571264117811486379793424624213907465655347376269147402813905393408084677555782725520148486986447132095670595142957178263654646299352565650559747589407114286189466327756132741110899131732386697277299490322495607593362290700545808457619437296027357374954303892198022216374770362847504851091955974792109488596026959103594700556520409966961174266694708398966428193482522833022772838320099496951031131505095270156634263293355893381622152772475838503455804794765995634987012319393791051190176787132180620273428023772777973294032292085878730646037434691219739714972991962249529037980603842327048824861322921430966736313341299939699948294662764459754011820479770570267654914669172730022306876839762351606686289171183482983496933765964326501532185490914755940717382190622262426173167010717166908379600906618751716438856346933824823875829673395846051522432888701738586586254235659202089326736414167802579053741774116260097036746937090466702388664551251168498314469701056507361321084803531081289148889262994105500949386835458421548175432770873162465668623734799300364372316505547146353430035992178334355767505933734714664223288770364695130128314847822105808229103938094678630690667820178286025612523202574978782607769561234782459472670152062017474905628394942980495496472051571198556929086565166617654750498408072146531306481666910719379562262256989437848769817466375998660271652785751863495312624380036733332862515387096953363378054791178545553107907230202673565429953210539791412280624670127456487410680118347126636999862829916867148428617947624200712118218677785326711399063022215550120319828257490733822294374428570063626325624570156122705808824873565582832217159142904504975432846134155232544734034824590834871638796630535150055715892633249945253740769227061855044798471208523901577295315833006273624591154335960341808105561244172355884823531247640088727081523281714508484219955384833967483654319653474154939419292616322911393057335887667341175283637729440923218645621517669373663022641296897353511254287338367216573193366698864592145282261799525235642719680627822220205270444244805562755416710440152766756920332848502819797317768308692535405124120977227386563502486290339838056159813844266278185641119501679975416911131708261715776532694888450264196124103920301583323361804634869407269288834379171366977974503560504863742870698990063323004328361012842178896101236338696221158461881006225307470322477408820013939317128293811886180562947474247392322905625770868509900368825486682858392406808200635920105335781992055377551512172139421450799858099512179821462764639555106175294560325836283479910785697003248284193087686381176359217532970501064879658445802177088498902394692641205421263095190642946081829717900122096582318375083174143886244903310218226600947564041623759088153507052603814915990647711765236267745799420044428790765479079438482661898281437379092827379962312879204435428995474986901088258802444782378472331736739646977547529530789068710616876034903984512621419387362818532375851992276082486652583320211251117032207605903423311774955107176991167367548341241164999142707334330775086451885646134696387897110749254521467185400383760257535545851075154766433672065315976727427969918608150680477522605684656327863630747366042209225526920424623281624553850909684633153756566810727405071391538571293947160260855512454911077646331207345518688556609627722992016545219913225435852786342724756554381920994714712514879685256075097954891860186066226398810556531855992211702143348172339008487761116287013056038213285498327788605484657500488617313386338294815779285704486890942165092350238134311330030545488114520671318997454103494452816040274590636496573902785830413153875397307976431981058097152522617725749185326728087049096293821879188318363565834525564300575716498501368498175300983419516872528739995304118690264434720367410553452510060621615789164244459073325854641639428057062559226490431351546520277308350660900975492605804623300468035210248397659326973972299560537067094601820902473318563770595648292651481323731712319247667281852792153215270377116118949491236401095699961747201054170821442636948208530173877346393553908103437564528682408623064337055545301427029634974231946917813898066599099381731213980132758428167696145371874768856613091864169905764107737723129311445946829730300364552731893652408785911074707198519788363622088391250158734344108562252241463330330747671120792748382534494588822568913710962940483346247154730758749309003457712158303745221151534420948086919584502829661886862095353633341097699207763955466923198007596862770526409343971743752987013513434645884754005792221398726428252341437771234210443914351370970131414435905382256440619823505215100775678860822880055331733377843336223108824990064407566325272110882567573945637401921391989145254141484468564321178877521885652322155772619881025773446648123958390290384737544204112269866496835244954975822962554273518628735699983933089709214614728043214103038545289392054864658670924508772737497990742594252959604106225677875534795883583187045271245136659739178457625245336147025112560088804915251115695900262420302881197987124474709171594883624751407853540675102845254224132565758368110150385299121191614259642471991563955386413609633835111439836819150154973702833353027785787012971530272838516126966867079880951523995883878613373368077930155679218479336204448500387820106279342606285145304561629107067717237581825803963062678018326289894551173846447769496687638506930871971821665376073916558154406120831565534237181713802527235622978937940829014286678206863736855036381148479163486568180627272897860092720192210536270625567828116258734394696025733329411252468004933878851171555989145973061365865353426246195168942729286670107561889592857494381970767214121186593000661040352406820973812245049316746405100000464683991241923492518482111492673756026025644408595650185048027247321238825390576857762774399800427867719599473945944575437455351990752264874713587465689964327604746202066537246733685699529369038045441696951291560952439082376717313706234965177416683558741317569128910260481890831301822674881230579366025955276704743667489935745894064560265861304985465012550640436567374960338785028133507196006248729327546661140827526588273921378039318404094829622502269610425241462670694832622661464139085646001354358018068934633977723957820460361298841077337791497384432894960624012120030260398944025294779463919199104899674630487306614911777326514171395820056371752183618584889804390260704995325131536419081282282465412092491338840144426358970688501637313599492412795822823373544547278929871127090935847607829248818019716542188627057542717393445538723857723495354035722924703096952858268991688417599344839962787524059633795464960819569793052362561399980706618857771887713245877407649383026764358401290894491311579891742374263359955702148829742584652017962064968437718847062501333049459753163247845140991461287086942951862547246040170205747498171147206100398177715152140583317846774885610741341664979262182874580001560666008920234257404259082644552330826427028059228318374658477323945996610868457713946122814224555952605348068578620900895623287307467894928187139329851688465527245467797431565021095542084009025336779683281033468162153606914870824750748144743538462032717828643726610650015927640417951693460878447997800719189501388039441954833825418371559870361186537152721404775207541102360954482621136763638952416689624184963605829627423775380840058326209853857772152408706095309721236260553742979383354830763804269118488046326453056581525980720099552349625132352872677874748827824343501279669104328939725752008461757124200477849983911575085430671134977866485065484449481139655536141512260480248843463714994234048643446712540714840154330689539159614396440743479375431577390891284477436814151854720078162009389609879332891628369501835660340503438453690457589348029594868261087665058386136824715836230334299143736453425600787030805085001288902897636754694312823725979522241773409243471871191206002341061948808617524438816408425573880395340481616909693561708791364084797651045179150325917717994461937784194053911438071546594607882002970879470913953566070598192689561115866734194193390044863561474340122713708283316542443594811041460539914430710972835227621896201424502455623528020777876106461792355832835285821234023567162999229782658655108432691511002011257279606603979660697703720065050580273247083242092323829212001480577397671254051389250669677974548856954511916947022794487535784101827262427472182056950952145697065782195428294149869557394255136159806001794485675987214726644679202666121769684513527982708632588655606895503361963992493691023144859652965080472235730866966528067011924466075098720428820471458181032471508335366141219745303265819633506847848975754613914277006782762178215591565317155087135931360265768010253106576600410190095885409763177021967758898894985936059180933756833963193855922427227885149088469330055137758709823477368883739127252418234483628649229777682191375618347816594683306919529534327194801910612478370574285620931618462443406650862565091531766387438513307498315024218920139879672528425689007397491277850210968203852362920695658978618227235992355397256906584391745699620150896647996313928760704563827030457485801295211248725745360667751287778176132424318547936665696999299525152193773511457193415657592096196601803587058999628144460289824025298913172028499575226769050373245750722802761982136666178303324018892866230966028712902217309648393577987199645031372986130800170898931775366027981039119683705119067003021608097489772063404078978665513329227823329549291314805206628017159369122320402825543548330833204498934283606354827494657563467832899907789712903575021876174345105310676484013666985722125843451538023257454182260096527200376763544297454691764631808869642018359268305196154617685055298548622054053982683119210344724177449026055859405158185521698062660273833446522849742354873888063490394945320858895682719688043795806026200846675920239789615740634974377377072640284157540654261347440745776053253914916491967723168756139060067452673618731893466362518275129077947257500868750367282547654371989230200406080191249428076879045825217479263529157968916497786871913157695948520146819718129221837477811973245249952465442839968737936584523988685055943801995340061906253331038487264308161662195508193121984898847425215759403631653068951533900837116349855385289483658399143489980691672874198906421398534377992274389886564901897809065718435228488394963508821675579668920175430055895777477334894377867349478633164625145426618480198924685087944833116057472877844226622345454180668851459567524789710568427140735759086524117921650268651902585309373090337214179592112179079069335769582266538362316148442224705023077010380645853318118348591695220089221125650801779195670088399408762752235985719104983783704537242749026842931944068731079879104111621247972874495156474436724468330112440605765048476228989704051776864878545320137451797270665896108820435080748422913437985938249223820358424541416643112780670378277175185360493913309338557461516577655427067699270253591713370871147995894229910878564210030370917629299200456150856457685813646593174444909834132461522354073947395592132619703428822191014470897092635298582537908880616008469832039122654242991274309954547984763498718505784194209193141664914483514530919434600158116908132675594778897840103274410053003442109159547568651310834905192074431982170043587672438557765989913893284798906182935458432296882536860098761117106834926751276868311449329657604828768026003220548930807137501813565671127584783860025890069751096251792003293414039720773015296458892202893661443828930384693388102590473415174017453809366837343418686224514783964678277683077747909415612046336346389018889408392267774023876469667032530621685303211146261823248214960962244787883078699309760233775750101393769585743863258388009492578091851120102806793827969575535886606275433873012021266828359516827847243369661087572370622316739677059787917450085404545427352602989236013705100648830996268415771311260498181232172267616898756253712393232975326856903267679969535581954661057747296865285323977072245439863621628770913891849250391067450172599188185062507030508041402867487073916061160956755737585864574144891141974121616019528343571277495472728022818272227994504142026694907172321012673860738970510659011863340655190067572762705596233896602805733521617714969886498720010818124920450324305071068596587623226985335213432172468739938677371622702609999408772944448012821211111071742041381488879748089711163150065765402230610027053619962344049535757784897502474941387742050505195331605474121190954422420378537048161129074358019678940528125251233388859030289464994103739888231381535035856890863032807582737057226982719291861797904536057069139677938493908060707397970203974813241198538256200296075894531774923483654528005848494210193331635489755055254123263175968698238880299835728012130784767743430208843663163146401816977382659099855590714865519916476191501818518413892264245122538934374920470266359985994805348161779646446675835423096923025993337831539372215954366462913150761278331801778171185485785310763619708085552048866642472408393468678425016419403694952300796791560340260314009790981959891241785531503746365648216906574319273665302737041110604524415065932907695795580090192601175893927477979936989399335603688714388853874264819055287286015150842740763772502755346353533955839216406392139755017636529271081269573769701795052610557908938594357227322909530423635647811565019391060489506046364123311259373061762763994230970599641982992556254488029901371615524381394388840738191731176635344191889552907641796133638734468574547672301975995426120870709318956484831937288288171568592149259140138171030045505621389161331526783686258140892092260723038223643212389233130125212782871647844404790034316187800729046646044148699985017712381024345421843235789538051363035779258189992496739035531910279555797657414995245014286914611156808279044965045060608635042971477772973132475296562744072210900759864808750851372955686893021262381810317870295151454114195933430479557858552408121486898579972815873127474353127859241983977987701676240443227963964929340047284227493639476404865531067448206679783003476303740861442004696004404416267519885803109156605515061816993196299628736578338503455097276042914023464794468112772337908365279614293763328640229845752858971404449572775560493589841596861042951414330196508772772413632365042151405509736634415486910776891957594179369156268562804239223880978111737596828806695008589766714931083558937386450491155044817439998666118718453578985729573817646760975995483667144852565753918225437122541611898898982217063480090612364798532236995747935931930033333789599993047115280696021028260233343441251694633951321024713479451865979051061112603390244199323341620633826596459026915325348215121085121467532752611376203980982000201713093720703740229669140318712388627486160242312403230745565551629579954934317249654938062515795379685225716355983389716894181728849181084073930329243706694759544384791263100609651133920004710427063029103095539409573103397137507055064091288171981444674438590147374890359128527973446685955710286243888276389922972896695869892700855934691737036927511661794843920298298027235281356935993579393625987229343786031144256445788344878170108239257586825447676381197184306232283062677531755777278118047910253984791416763509016618145052316707307844598517767172478833164697854459755982560248394611481909297921319611917189687942765654771205891681828616306126564350932634849737813351255931424809981576636107250592995600706480580741142321856801982553745403633930364002716584664558746154905125108794744504317473539993698716923615603171348300444340708238955941615721637073269410777578812617260712626302039286813115289132487139640717384169259164494457596427859072809474898899001707934257224725806592727042634626854909325799096656773050148970654407975056321437025307241199774513284030263266536423892917521717567394959074806857270577438282515525526911209771205477769026295927555191191337671563318686204781516889584546084685598481054547745675897944846502627103869661194813500144941111246920686663430409579519013133301300758610069005264404941865509249546462016734012178369212513723063216591878808826517887066781464973132138170117934434160910843082079393363492300252137366684414538096120332221846315046015269396648118151446728404746233956285542470715720480981053239154023452113605152901681347513696548183704446750464800861609862492630709121740832124080772860265056363576977115313742706937935362299104696316200186843441645643353510361872290434865003605579273560437367384822763131735122891873502074793922092984378431334177526980748875038581197091708213292001564510842705520676809884279072387265786866354737731038176446844627852447615025939587119203824135051203846456838328197904886830988835787759793940088741252473838397176053711762684062352708397164661643734266635816302688423599850541247299368479490997891542693508622167919514870863328953973699951366859848416867507515694077703147039010651441135639241387128982265055706402248127976878307825541702454627443460980892791215855202663552584124338857963566757881935541395546167105266646000451949357844108043194664469320549211817770780677682370052451100042836805306593903276001186515263542522070485562222086942287490314005975000594319537173600276338678327292907630441853518701206109480276467515610085326083768542587172329237430404699766919970874487193269045918239491982477305794792434348141251185217580303055771290692356348895644048981404516238585483939840397109252183234949815784982035924078747028818536735284556862588082311476827412669947275523773190560634240231330540050680574941133140945044802211562000124647540591810786883522963777561585253733670116287902849691183712648718517268855376476556164498973248781356274770224625690822561971337543267492093331879094238200441118519270411760864571642592990631784473059132250969318065702469882050509044476606922676247427979624420713502664681169867477827374178774963116546693631493091936700533939513541195474601093047374893568752787805741156058054182825501231727004379554682301226620561225426295487689785211125525011123713307439606297442491237647857871921083270793043128024842766551969203060465132427271152464525645544499968328836763068179909240338205427402960845832856425945982618136682221249740057612153022830609724906555804113328023563976467974322727117635735794575806946862110527032675817776282718253911236293914964604853510369507922982158006038249161650496198851793598161572158953847727427788769063377221236900083496457534524295071576869410484790922148192794521268863972651273341656924524183224397412630131296688022313398869106820939953913334412247606980900370230780695770136260622411949692079990868686975621135106843893695944392193083998543283262181891841265220202143070132865990613139147614864181570639113304527579665313206771236643205935249273875136575466735420425320085173669046879826031344218783509603640373277359873532585658819204210791005458383749042596775773509941797105707230787658775437251213259935642116685096141151301406046897963777201678217314726358657547756116596990221950046431117130848776626448692298098369808812708899445631727845546987377375112955057356244533777217860149997227855881281160295193652149943143655277444052528797902389040070834941728492573918413444548140252156080290554954455287266981680818436028493144302380405710596219899879951463737346167559434768938138515741481875223860188035851594760086830324743799768171115459395314645168503571881439198150752998483657908464087858495376083379427135729242328603595837707142809500575361963442829995587493908800089815774867961453848518480758340152841387885694459816548698843161080611211051193114724253980605072917390181880820884744942059273390519353787867981389935242405627819391579485269324772090635977401635523940259205341976387520725050750643153852640322047276492881349055133765840419904474051481626086337406024056265422899730668660735270131539788417022230507889038262252086169216169979295691579632566011687038271274978161197805199840354867812166767968732904840821887502155235034107251191808879191501849493054108488496340101132328752003967523653638042802961603776801632814805063064698023059515584211285256016320123113382731042482451054242044050799213430069248849448273807619457235993280516790600428159409263769746129503312670724923574983821424161042203428841232502176624573295419316838185308642733505243141148233903219580113608423085289693284491783790402735161853552194167406301880533337646197370746454744806655180466087024041788607173021082921908524602392280088601609222383092153729089532962936864369392311136905884862246716105639156440349320151675936436369014174968159457092397577137945572344939809480051801721900679322826459051851364362867259284406351666503839778825468274965299461502257420725021681034184731203675031808779367752023010550825976751631633494536345653773992603504710274520341502956201162755943641252617659762325994085956665874948069502030726349394598817910264402763921216962711947803243392036397566507136552369872433867661308621332824206637977075922713382670590007528425922502958950807003677194137334699836414262004485033584563394239209156698229223773924928205995193137506175862690319643959281885699626005469684635991439230153760405399971340619866710094633559742212241778234246666267611260239632083979426541157532855952146967035630410127553624873185413769915086859946987240131714326284660897014105935128354602164129225604979619622825933792915484329255580226230123971469892256215743692845331818973734678854597037299368424682584687616700663910323411421031588588434042315912442223195800196584455023760730382383083584259911312619834415583230436445335144602298774355187793315068410771213336616335174018436643074955618415949119414674688693819585134408705302654482528125795653339318721953843725988884963713601231475274407338697834874059940642046107227833513602457584772266850196152391187331259044797076950764533465244864320122046778419684654402211512287955325766562867608757255418484435959900691167188298863172707694515125913994552745417982462844370966107634181797936289936460135740264250489494433580291919654339586364738629508314654172050971038068450324515440140127796419431046304406463012010998245670468411289716487794725869263611889614270989517474376225624509899467411221858606463744948688152035133884685645226805059598323834321212422579576613460914647040296247464443079330720338792480713391769188222982893466079652129702582578593575870608850751817492333415111650974389504315728724361528730809215304051835019400252643971786271099884593124240370743217708221341160337725694358465360533469835005416844222023969876926286992760348736272165996197521335454693009524670533152989694158872724978869978763264147074375342625678571313655347012514646392599876539921819576613397378057588876264164354713093356362852663721830435990736569545898712313441572342326746625864235963961386350876993127666899493256569576473789268348643174553941431075800976419952435578323496124959658988143394989804027702214214578305794757571125323966057494807252220948648491968387271431670606002077838915096232258147981661125680721219175713949745145475621050294597193977910713125640057551349629333770271969943110651534336013685024600803147903959641458486496624786978372209424793671012075061832345871414163606308216044553088104371054869537414103857168158304645153436847825680176318723682355064673906188904490473705409038019957475460491565280730935167499361622606425591498237984040686042766646944712606100554343807485813385744530963083468298679902408160905376290072950486853784841635034466135253744158648935753359902176397117559726880570177811831078381906958406197495564408000195133799257458147576150061274798440693687915429649713301741244430184238665137280748653863029135720983939323407154791371648528049433641199441553208800942489381799840142454524353958549323551311837320997044136764887711797892539478638450592683055269836502569522281338685873494404915237676369341812878062673751739520060525917715390283387166114539697715557041983860648898352934019468638301920547385941517109022848783966008785265238986408886328725902624676240168499321218180671505609925273308736401680413685320247394113836874519600648721978451826542589266248138954579173513588271876206486480882903203846362636990178042847456541178136763697914928951280275582854758899059429086792114324800636609469932350994371220922811892646118893899047418642251027698853775979679136625237389036098397343760540969568387578173098097613961645331113267015839247871456691540222235842480776457691366216539750568481513762380341196547407860758459912171900861104377265652117442507845451374920120268962248743648299020255754089596079485043009447185397714176071620984689090292106725889633020227605039830052615648752772190768384910211236047598689064400268702220793119778554105421959679565784943918173347515741607229900237697018532184743038383202192229489550413388201854774297114756011338222229183549920659443086249220798511550560589996175702034521078401245194535601160415274112656747437435850635717484958801003582280262081367537995701160617590323495655130522295504047354798394525765141827258411601448250476832546701052557526220856748475795400836469270037780540846726697590799268380537625580735887145541836323410170814561602480974933762726150232579855073597456253614938120839988890409043559209652483911697072173948611203757736020303024019397230286279296908982049669649522977385299470739019861413267527309099391688472767748574528198424282014549477620268241337454027486683786623786177031623356390327961899975387662464287549428168258929890249002813975479520131365697112651320903838177698534963253514567913461383016890644789826654324883267477935524224573000544472172185271971834122147657880059664234943081637841821173740510647291161806128475670240459620714313189035630100611216417007993905076092942427251190047416551503182381633798690986118401781606898600164032410250842458446306461278968483743252252883426743112629511209958427501408482149205794890163567024609535475644275404198626115423098466738693385305036112577582299742604363652976905171205354249832261731012105098016042663035821369630882193590736153083655657221373807773621836369519479976775367660658416406952075568135632358158769985000357877282165971172465637660700000683309735674498844712939464382469338346914755350444475559316486271588070026221504693450542015629480572965799707270542074460376946667780582312961272542798858071087153132888185947219158225585980478027269198282780921666834599536792198117180801981335458908860144575908160020293580886431756296196948820704105591076558146363012016348831569803756835627309656930230121367316851524039732762310726875246861743680286552275717301102321067264085566108402046889757088577955155792413499331411022358340317493256642643113613599481406130158184812696635840029810656553504676896414960549514959765665418964713032668509820519558389046613788895465800808656471700040783478593731602502069824236354867653123745459133443684691362253686077557226843153653965179418401421483879412445688385815206018249117543218236270176067501866518076519815169645662774312359680861492235669048779344722325110981277129163874765902028443600264222507430564934308750930878328016628660637220464229100552334488180524686940531265936710836767574123134774576823770736140012642178243914890371348366715438934851300011085053741538500129080613269654341369456873198178559337059821240386085717409857449615046918497571834222882564077769724073366075914322754499083711994885671824763407310126245562182522978699944145596526575342702730326824476718507347343208220614183576821314085861430878477849456252257666432887892576086900929602107248374276963268179684218070068004396673929447660967979926149010110996471064219044483115254044669945043523128739623810754360712230599132683733250246742222198184308282681422346329871426230277366851296009906930546690886566193268842285773493296269524782477434878488726745432293112986318971232812821363250694603012902140397983509837588577425263724002944782265370092397834481548513384917046258197850079232941858292032688550082774414300885889361611856618662601612772200433225090611010560610913407970909599374142219355911910379977651612581016542077963114314411256470179731949508931215429808255106389977172158681811854992611996395386471781311726481057488830904384751551555256124334870238389295244788321097254711144085507969271768424658471317071433084612881152453240688562784924439731447150034406794191938474737127042286170232826319018229195675502250030589834167066816795839811670995347801603884534050518826285147371835388005987264819975831747491833366413759357733755608293412487253161338053812722349021212175917610832609342995824804639918844309885322120489989527295742852027776595687571034217659141707029608598942867277773327277313539638689448909249427907056083915568226714596569069803303818829879873422301810544707926325163337515085897058908610295325151317597684104535107622133732722865616900928605148469285890515936520821140555162245952276642767674434184567131921663666066237549866009901382893501081348260333758075945371211887347818753690181196097808266653258245788358224899824004339713118388868943986991742737632671511435866659929258052569994375976048800068265470624003443749153509758400410643752740170357234433040816189783755450759173390574162058041389413048528779292596201220158270573692784614274658254289984277111233772895721766995255028064238678364944459459702558128526195162259346005278890022707652049059012739356229639086866772100840567649200979133084723326804604625145428017170560195450371147769717240214474144051044608447031099412368579367194021620971187349831373380162508475187188767390920421281824132350635718457677597920613006260037152592340016254267380003461482852655105867434999668715584093453186007239389571055211814195360313615019651395330250636760842074588418446070783013673234467913270246421507293341105831356067627633292037114029780704407148357978925412365387409587108648626659842566951988150696295503921319275709181781582849724474347016491175612555744603109425149410928333254314090014688351793237381559341165488597644755195310557315845614670238415328221339599578895015763375032667534768595802252312706908680061563062138594413102537507361380053500534188293855956027591267058348953121205627714550350353567335909487814410397997088028758938959063493375011273402086294550954383917702673099198216051123132994065047740008094422638813916917213447088594931784519203029557349768675883041733341840805402852260086886821782689695812503617746497690430042064255254817274450532513998437471911499411166610047400633713147586869964453319865731772667283107260186470911191443237368533499182483313008328094250865006333605526076845376980885380825612202643369751702663088020287004375841681282317913606177590558782546747378982610044422975382386018305237457066126313566523622499528809691617105398071727317032695439588800269255543084628872440563190274944921160774675326894503479244347609741318537290712887395258698667093866930802009201724384873374876353180935200586579894049863127235706993700859427989227567332554847567580791874882100855747370998153548627529491041245561620412047738868310485931337753872949809132181771397200704099837424017526813861091102827260962286471500895123751144775908744403542695576621413459094020779101689291820787602506636983383384220891980358265038483416359924650833777444078867534187641927917783859660375400610943423261210440494368467728509239186570646872669968054507225612248248845836984708783688560061814479324618679425059089209672248197361267574639556173195084528699936794057975081515369231927086884983074331248101532365489022101803526009603756076052692588672182611396006504726213355677910667288557404582709268926766606983834151941840800781894169787333276793935491203856388275235751320195189947153560868914212552511398998079294200345446755854013747774029054639049874952065315064570843251162734154496431203156091051306202869485264614003432460749184332283262479862728494375053317622267156046764564159556223021569468064234580842853710573945438720733043733295912402373962466522968588078197654092693626715042999455363000918615532410953771082450663948578802897976064161084334813772755659928247649060682733591454683792891508919913526370701589410152543838671282560990026134136277029998292342851380770937828118587034204818396042041165728492223599623059577886953125229323439716777307436540477163745737525106026954558578085990000722660557128519902256224911247553148625209961122710054252112573111143241901266095038747350772652922827802531281285726137568491342665173671062313937671108580292738749057966709606876374053483697922769743291325410802241969429798045437114433601416394996351013614509986438155782873452102574518783427988060303237685469680398986629307628248228699035205992599785055608957657145746394177519507462349316611970825398558606635012188166427690617880268986944246291593618440801013616689694815168986372403413670808653319571074550061278191430671955473260709655677035247401474031666404857516315066442632392138000559710926564214676916144530080421461558231704250140171627155999702634415839625375186659462006208534414408553005757962883807971080199795337682785332137553023678724795964575347261982264466407085211773389685090559605619299938830168892504407173588293499692294200036642540079999151533935597653760125130710226797280572772724558810824729029775620459857346572682198789622696846269671189490020105977260770207755300034839078332244734790213933058820798194028510592498699516013886525396783920388948263548976455676966183795960003271804463641947178515665941582428238291299952207114571176780335221291903797740716887680620469059414751737238589545236579880277146506847733180273601918120629313312141340252528129904132888828813144454562784061861615295200340201804219118471231891623248595446718311695382378910101936048380669982670456244358194869366289129750708329482315822459890235968747677169994606703605811427722859106934573005716020844219245339245655847861084684996029816949848580973269223075617510677053477506942318378762515427953411326821993903803023909816855104161727723230946285435933135052692708230908486516340421008563852608664303705437799566693048665667313704510627777090767926842684564450809340013043336595449474233824831131213822566402310117099599442665006616991786474738460060364016238920336385007613035925903147796861336486039686706558926013478471513600255556194598763859508086278367534294728434982893142032926807035920754151406854293256752540911048451313661885101606780305507865046716147973277497479935773629005466102862897690425580394410435534519573249941566972847469393581444249018395402594346489590546300234553350608285403193069460479050114634626652037277540752547379152014235524305414374949425100002925767797669750122643754951211256916961904292350105584584779050548089392000690722977919095885344943610192837646843246281073372035844195616951179596517820806768576595745844049728564516461355180300413678616801301917766374695532234106026688463138938578189714027309873339187150499562556272912333749559574143943675155365123957920515194043835724837899808379602743277184324659805936835184187971792340046389460074001019272659059986185054401575423310119903061958041376830321401996879077242626920865967648774811769125533469276117025708879361749250877206671739700050809356953995876786739602748051046442969227180169981003581864902089947893542923473288528606606488845181090610259654445456555067642178527763334401543087050257544447807552838826194411441845711582870203287224499943644332469714729010004881404949903964876328577264353658477432878232594089569025134862033446948700351752779110947160424866175202493734839931726977294668415496370136175168774712571706685292873946285330469314072389649076847980681519165648518744528437378669868077704937370968234396353417093828666654077771062992911087614067005208978410232663833752454384485747746998189738633469645974998398705913239913483524677571649998325659499845869960091819619795176056035333992425373081160727213969897398047151092334610500112397836105243603229864813231648262023800560334883959406207661677973521260336577524944299666373161897514078481040705244063102020057796890581902501360921424681921387717024432704523934535903521993799477741881689704681864534667563660691169772736469191147108320430696716188830114595644735722231867776442203982975515067423319796971090749880181164578716525519901066903532472672301278028319577845387933197299723702147132517755844146697303358829314940871962897695946551345899688595294942598319486189070802996427461555481406142811943695427021047013755853663023286818290073296216604936686626279133135810919100367938746841139803399534754892758750936951516179772277458439814355482098820642031607126696174490574976101262078075765351531290297791078797824742656635769336593601806016472266432608769650495945381883622143426816576193331218465020895710199697428856542610261720404962487566927408880149592205454659122877086500409821478930683458094126271725223286605972046856196144670253134595039667533274731719354485201601161754013252902960117464889322988976372360619551437857462623766843751252212840413878680231264114502021693347539398125577430307063204872952298670715185643612324812114111209479198499058792813377885329017577549204030553861272589476210781173200790168846347803434374455585452906158723514355862014000648019008360179294957139509147226064833614062545817688942247914176013536586934831241334392545960091593348619401687585331496980074282189059804320941494722943921000796097546047654316399483603278758937553187345874143718287816305259229488915686853330364282446713435738819063761349657627702911063755546608524495572850571928422891687742786226366869863328939092838810435700555404661763909605021353022452904522265255131406598648778553462994037981063272901592127749940772208395944699521154147470247362038193549979239738835252731464649198551934580688971338806806656948184943088274952501922073628867948368306265355790955860618770851269162239146112546894345894576656521217620799970679705111166706217075758743797716520349916249247143864737433006701536483014220784253524825984323392620798704994437984026756604066500700004864697628457380411563897058626998566348744904734327373174478989582749516158910989873944064240961021077492656846190843358373130151597306633110347444894866128877860666815522149883486057311793245997317245345537935026169904208354993168199012266281007140025775499619243544462369822427260330753149416460764093204340553339907094693611907559379557513222458502904277941540295658961945100670171412842449254787067257355465381318257857243177719813060104305189182237872481214481612407431909849283738352426112971881833859095500484872448199215864507067438806496579658024639660977149500428377616640344096985488334109851906145705188349608448651413660238646123919433728307629241871924717366991600773568032212290944056029320005369526972783869293433762670165769372728105430838499726965739676285961416401943853124465571472870162994619546114359250615432457016628011560969461652867654604898326030989301163295348534586367773435265292302435631371349961586671968230329138063057717892175115942592995011940431618346444655800380023362798991920302262160287584541401827135259752644036208832722694645365361069818628700917074639552106555987404111874168454402183678510176963439765936776840008077087022298159747938357100152926485947884666845577286610146218156226686033419388355098895997191000875959766365226784638353256144338447588418626356739401464201584747498999246209256808024071600804428191369696192167001143055814173844790745528424519601103491880496406822759372517417477763066825079838274991880260107825132270412206720383832626629836773140617584868949843162327535977826538592140013540284839557886494090199013540539575131781474288548250743317407978681484103964477505615497346211692177639018069536560252325367173383446379639743601851342507687289323721187466754109809018358677653125120870530250626435758568265822084104484058077199732506566955275513002040804344723061479074395646217647954309888586557212079286678118486682297086657725850194734717840128286737304078839061981549631577023443357276536497448441519715632648583881907162838058248497073756891471360809399802288496670207729455134585110553609890833262225356743674026807513833913393611879794979241863903423509414883448744848182498641395608872327575158784889096046842761610130539699157347117455918109551589809447167752711949232527237938368616910007278787300371719216036476346859399553998373407875464143177888222124095288416294364527212594767562557883762985830146710033124483983817394105938024096674809792946487208837432461555974122074844084077862700698541137767922037770068335565848233340907750350125646984559758317752602612320011433803635532137841202570952846022430145471194541073491124500099941497635675876011558942882725232774910732299052391989077257790503017628912627132491567016686548609462369350754875260920395156771410142822673055772893242592751737085423165954552697226549174457133141161017789972591395467615319068497145012242677930904824950261355646737092931748549235707974762544166882356194570675387846492316077261660042150949375361997475969562332679776849583883538639578957790468886402018771961170862399804123631443417880606254645585522193296053777862812404061867426916128918772833943934223451474285392302399342552600903496306193034781426815130015239585391411321896368975868395220448708201089011260330598736641437665394875374350573890584503365104822434615006902007941560421302805575057935827654553392361697702812095234947515116886040092409651707525390986379642293775251293719327365745687500573759470596936875243838255505040845513192812656203251227212543698250743022243339922910182100360000715297523686034813784710818512623044695392237789610261336702243848121244285546372919084485153340983308833380072616571605582613808567314210272223429594965216677352298365368048273993790513957555781990657902191455673587915979254694417398540830259955546896761554577343650717335443545794601711498759061508755394931539462748765502104321829735968930829696476056880831924830743454080246614122232262756074594532380769665163510399740216956095643550259657559870845749252575236487748206874393321136653473204379249973666726010928921900752950367547166244950870661874974856636033973948472373161806023011816938050378255081039756837679654528529219846708518883382905308349742235360837413252817855972735732881847094276150725608002168832093707640537878905194969611984816010309373040818454749961029975626939736239207560351940038493466384822268162800366963102275326117415654473051968816389613914935273407063693822089254044886287002629685278731165758318979594162255065864829189424683707245744393934205838703465274040327313119280417914433875537370629793564671598269613205814598265126907320983539628765123505548555077518843092448831792714093032084261751262505031557718543158904002751895628401691717948903932215648190483837534279558293779296829720638523827491013465258681399176679576848468785704223594422309078329783649968803616822436220394011949115457136094784605747697174741807780749463478773174243653173552248929670859491229952391744828968471872824378119441055039534148051657672765196212154590955982245414453964488047898786632725555018578207873343750320263417299756023843951944587823926023922650375707288136070991005324703112365728914976060308894587364420072109281384746015886578267447642781596183540074310913812030105546276471266479686796406298800177720117273047535312707330508557268226245375632822518020151756869099845137659190541314903815412352898380802910654411107265023963927547320253883091891532131830241671594943074073015522856907547606057507906133129512535573737036219798019377852021835469025749127075964609890157983766647477166401905451562154012056051664068967557350767227237901118347188958317339193443414079309870932635872543071418223473601745699954966953996995858414118593656511680523435724867722135232004119856631249894845798184832526004493441554845907466557325989621988297984724072864585975637956824305828738365943362572851171108329163383452182002797992865419351902153568288750203581652132605909011492940458735196037927625462829342013374390253516246434641211124680922115876609685866761679876357309744698615857241025469994607643838498623871765580454828698517343747827880406235343788235684845851160174697524748363270033319629329693809033529470758218911482160761768069476822351239910932245564528850337336756943338227414855343244773943055698267340172987517486790774784266988893508461775269222281268258949909487011813294294602040059178174603279322110616028579755240900124347323384148162370368262133368452371233741184436511175115616416543701885418408249593373187323164953587349927937557612231337177050198672740667710606519960684127838939627848534492666399797403215322742013039870155950258818912161615837869096717268761871845034126294904608651217179407099516320606607409780746101470522299286886549240072183715287239852387552690680889978466215756807399163448104786372478511953442148219417457622619207050831981398227852472140903384616652090392332686796453812349962266813947121897572524321278450230280196050591495100167448607855737167714922575111394995512208596157675065814607478223710070325195050802350956396969487221776351710254845225587573483403123386008484409178644606216242795572975114941469660412921213470139652317313631578878530950870221734204989889891561024651301546615548019081196483089665462389415143191802364916581262842074374245847086154141182150916485360230619062975571703068879077177424631499068764827295222684774500185805187221922684896553831411270886417786570467170534792144553004992507094009295571937157206019058037160986405979545843661654825631533672779927177874224716982571780499450370241727493164737787251684225658052206224935160987673218675821175009953293234404934331657072297706406386832842389799950080535380998839124072848720019569017504779832245198283639902995827171465121888468977377513085568372487028844146472901142480106351503162458256707625761400564603572546132528221750017163131444812428900951749167498523800302900548786740500795887895865489070883491589442609397956662297125996559032945557182476673754930665221712555662934270629009513804801993965688486192437836853933053671626170513116267835262541639163163650667437231273902851906679244605361693974495026890193823913095377601384230278468991705265090912684428887032387221736622767315497853769930293448744902968506159537953375470058530921389079543822849501673522323485022859274766917445432828846772392193722190521190923120221289173077779711488804905765039161701309967867274330311747753068208445442434670964160798331877108684036091427787934512906990199072642629474666152696885327440244253537102257089568117106337768345698855210925672567425227386598180063986932032808487427582609895631081800662541175015151312347189800388373403276533166341110406078653012553612177567903940489956357100916731734417018970272516165807690050596339422897093698321681482053490799065831679974632030706420703843762028239441988022460174621841230295175241108668873470211033212234119164124871087912338208486052610087138996413977370917534653602937464067172676207980578051813299225856225152729453974696061179445203648903618430136428125124189876672027557793074022072988372323912524517487742836394896854707073969792257681124745528603865464800909623765912555450305589270113318698307182050332673353501846231587938963463689192236974268663916599175976277246075274159435365738463378805876196596727079809150893338183636609458751448038698904386920951517549519557741960474006680635880759153149875191925780010860690411448458182339702830597854021172278048029949382601546739733290639468555664196465300582484421662185675680404117250720447721989754855914081971803048283216720709548050914979723045736097819453006702588462253280089883348330850231332848832196672960166938530983719542164210262968324544016843502921214909943180562969161633517387325270117106205957225360547292846394955370429554098638107042175683737926994830188572622655625459869222250488544096976106269167084576436383015509618864495270716844939990872421683850741436460685831445635092405112464388169820891175787300662792786744182517597954119261426220682684774977716638129486553465703516055677797878777076223227705565291229499625637894877499709270141565887094423921777383712453708274904621683052821098412412933303431361318874807797582516556079426454722303800026014185216390017929373384404776912377399466882892168840818672844887120378016110375324493846365095709377838869615066373012117969019887022741000037025233421767287605462798878238592532820693366444633963449603368436811633776149319135773429597539547311567112445559899728156655576013846210262538135915885938213991264008919491776970918669259879816306438317218865394748343751892590340117235346767913644800543194967501563410566083956872387432532895163865999029814359281960439797626415303759777589714145639967133619245232564125909516061805137198678614516464672750680100204350708727447299054753196466462806678545748704342422507133793965681118507452252535454465222878098858720836678560745485116933258483922407912110159379847778231386747284174466288951294097281563028242924135997513625227946196288749075672885967046049578010192551877744825878085753824739885825671151381649930454059976977363121234707076065823255438661461096753040814565418800101429269131513957912074032559352185640966748407715264980814730061338329040789015368882500263800425953503262820219439273506974324567017213284651529350582316183652410537598774680973895776411481661977917238183716645161600951557163561180769530469884518283085416626914493151486819109929813114099512654133320832417741089788338413342352208840083429934796946367588750599229286478306038559263048645779392526500836941076192233962669136929868863581965181540373904908974317323493307042941770007823360209504977604631070013974020336540295089589534113464076984218923937885768508077840973234425572036363823595579065688287392525661547498376415535204113269789861395855065454580158602105929781626922687346134020396666519736239429251287430497371468848565822385262054274816013266322684794293303032934701061666031917399347161786042278305663622356048861916856142751556862691892201035690150922984956520555553719303482591694999401823016399470400452428978843011627001557233018796665490345640753395182342025134012027293091601078866033278030032590085561504429762797871580207225677696310604392217429124969951400596123888473209358820427110369891633055437976278949410172132662562513541267515563876192244253269309860784796587274768819797678494316302852650280192974050559710887461173612888689001535717090652091326781632378314751591973212398031249734048374959945981669292173922256967613887818858122320767642146566103196785413514876729610720744032391151385732694652371738566803796446228196706615877403658311277823635757909801465074318496207337824654921048378801418747051926678661673167579234592083310687542764199280520252780568028632595972824423493799330789299100749357305124511762075475726202381305510216701014982258986727251253989849100942548514278008131139181217455815907388382486465196416275516804764977724061332451664275890190975229681771304496294506508572849985702311094492645169235720083242249335929914919112834992127559528168033252963238855579317994633773451764782731032476634254274516680987498048633084260219162275193582116114143453057068108781377365390598760873785559905036257730493491824167509831042338777886249993688528299647140154933028076164012698804749915807909754192090847977334968130825932042770885713626865141646713287507114348319470279361677859318854283187467827891721939252493108774071230973265527210296246491746465786406473080788740626804961141915251535524044823872806508296697940137436596693788908227158125341579359933644666037917238095857223044446449322693273997484226908888244453165171146461102926811203058540134322539093250344127732270681134689230618200703537298218872543042057691656470409998008387912535193799464898808633153201161074842276540639863058203336425665529171167600795574992618539847626553689720805820544853794318079374020470982103202634090013003526264421070681631710842048996114923288126198864045313744025623512595564578896029979746454387222814139239638133056500058894975054336354451878499619789866473045286970617985982986921678610769235751535333036860231201607219358451427840885176226253166912947775374957595784461166538991480758874954562687921267975432309687516589478068300912442951036575476716725040614772358563638847477840841364609269016497673891556397807468259416707925636084133424120031322225053755025594520390475085871969069497230212487466746802618462236590530876253476128967675096790038373517753462021602654678757659717443137550374942346372192704883784116889838855516516028878165403551833144698044766758793094851486126305223131580141818880605749794221592760161718534746128748152207532534238310181670357181069181809067287398113852043609607408762653303939518181685721389392824187884525537379772783451173488796273422503898261959545320165792943792180159342842927812200287439396736432990384293230430818570179511352498922187469935453175568771466431880349790012047044882995432333936166323611413595333791375042816428226072704765876458081924444041568591058792336214056027721333138329316532584106165903811678840865162240407973289260850345424229578325612701350092310423718625462832956541988822825395448300881984730765751919816949309970708813492593820072579912959524116965358587800124290622897434366480661920064643525389033448330828828197475969094074631057685845821258010653804037354974971618989143625101615874598794492882709269921846209397014419682727702368002200755515941814095194380790412084164286570033497831990661851065750907644991182640807542540325739236556224439372094494759989420611983857652743526509392222799555646778179278877448541063263492918273589766691466675702284620847766707943203823796918523610528181749990330745355842803103577297483742148031147019024646990558101761115190728197860674933482117868837727297377640206369232585793231667627924137543476317905836157652950337604216017613401657810215198005822433950088166017699173546050703994625469771320887571093236981476725119647041659855042937486814961631109712405647006591450763639231727659486323500770549202985655529098582012143054161035728234370796643088578146849807659754522337311701408664043000822886422290051201995923900230948214402580931909538617685597498608962715592436283001540388905592323458282802432071508143641066039502193291790426482876947133244386100301048502886378740018510520415975488560905058539147913108545223930508141851441293145251938116212668332655647128461460081977101822170784701574178379181034124085407890485612328365743872242012873811266733916824247189507436546619106253394367100400732002382173595387454217493737020320867039860832486948548070584234096900161124437215782105893869935644050759100976236940008806129817774405506483380413322679890351466109436177406766310433659744869135111876676161294250275682378065875661256821419915213369877993109036511712042177163368464690076064552314078615169968443011039958826661212831641129011551560680852663748023890623277712842754522679687754607708021372780410116480609070199889088350879144537563353538785677623364565668901858611612564106601558695157459318336575815801287256887305463128161382084439851667942280001603234570337689662590495266717249052821241250418699052953869214577795960224236295890286830503711075969034292577022839257770668373201037618868445676922390642341365613545314650710980677750693387577439007579909503279681230558618970867071249865234366304584510043595252637979126038829811533692451220733633808961721783959772523949099991029163595496855109670154733105276234623836738255075425823196028295932818238188647512961087526709789100123515123442379218856881659897447490603623114642549804438784820289965035296606770844269068920942278250038897467214688082191160706153111426644695026307983754367854734401795595004742316411131602501215643602515838607213632337936695450844593425332342134736041983491923719065718802973877980657493583966342631470707678904003578723213759031270816263002203956067437570783044930024378747199622273280195619571226609368133132005462535681085949253664715671908443725568992064064591523314582007053280964422888471899808753827527296843113645820456277386108930839618591806451440243559111424431606365308680551538454384464837139839681453164828255794926721613682881634502505429374593869524491637716508370865740318292791151528816247656691066142264901340214524134326017068215246724454024003215513716827369177814531495375821595840065208089729681566907960695714310777367662637848207220542261904296095055473240724238664129020497181352442267705728881273085157049879303932723547444470314267170607594307560361843365476308850167421811108252722536782019111520403177245646554562082804109181231404412581871324568277959000613096281455152202403893808001738176735214528081158587308025785181545510133760771473478513439828347191317838181705737254450538199127752720008374950862094314010633141481844100680401816629022137004977556033765360438615465774473850902807076328592324828482187338699118086447746782410707082049915281656331252674424258294177232336768146665846347054665054219643736256649287604238070304951686994877165003840874594852798526276552950929320222111966967858449285652501821100640992487689666177356740401465190314060612971484644294793843325676135275878893810298869151851810742092341636316381634429454877659387416031880178036613436841931744349874627640098815142177984622599721966280813767110614295774137589065684085890723540683171268376601977132514050764990006780289200093942814846963259960040574130089254467945600429525219019839775772301480679540985754251402718979445202676149954026347014318174337910433771147429206932663892259968328859363377777075583947545113645890097312752122592208241325295603159267202404563941475715452358635460638204207543453435319315896076318866776803144000598757037789014344976918529614387692175434879750266126789269495532997182615808148149823568088851902456047062461046136247204814989962522520119780737704247236146574116022702848294105517465134293094219256402512905894423039322790176735104317055132496300747127365130442328251512501411076829684515805331933039969893546927641575682236404369797494607780527810357545070822770484437254594492334507154742018381305128338306379192399134513771238460926996764053681228936004968691768263934522113316636795962508801745378468084476951412627096079297752792123417007634136869625715302315254190528572437604164636286136591796932316185047942621161580338989684116345986729150932072475361473775824994860193884787875636324900188681677883135421401228006962605856208224029538151267197213480639996480251610208278430746100139808755566510100875215946892507427650005469981035139330246122484146886380356782193284536144172006645631352904280903559699926746303108168845955536148545169158322199280330861897299217483867680849771012551334548102882106606055192554347564258624531471860867539439939616862138000292197634857398471090533175444577540775593802894492198831813252168980936560596806639572638119294243139213799058837454668344212156947960079082155667356272584312678516278151257787486457721866602330435461120492478052461311003575087475018661430447464574173392756217903827731226826345073995344463500766046471117524415569720400904990773676585909000364274262844711363745621650535022916419955601380772363437642702848753091561895023370196528907769194786323074761141478193115584927659883611653240793300446510212461250766663792522630843004232806241172256072147102179309763956806396471828385609587353858895956212197571134832196879143840689377129665047031248045858118077248627123460837684390708691466269993102527430430268065918984114853883032345590521842715471167157336292751261996883889855833671104740723450852062943313022229992857999079258398226597670436817198889875753089798701354540396290726365049742696539934539991331825532204645117230973324798202318383175647780607045044410768557671808720736801948416231341981625302751883925912553705182923786216195685252937063256759401702616194888078496192573633685409315609797622336055314267180923920052509809597951406225894605629589837239404979189453368789783109741978187695247990076026605069864648083461947620661623710943351012147657848692116739089047557210458239040013577337233864176579319945783795912561846899297486143467466227392278495749906255619062259211382981852577899076636413769487059570934259295795192480707035980000207390345952986975327599042348809206574984095556523455736455670748675824090682894321635334176484912257976381083577249718313598146793109325358746211167062498669841338690434126612732373952075828735485948280660095280960656684829763191548474315372659105842896541412616791997706664365095837331995613318600670671720221624849662638466434946869625811223483314863921310640565789298336046337558698922081064558155480545911907109196500183821919170826202592518631374248423667065183486784275102466482006600467496852544419776200811257475192264398383998060047070299740862127521350827717677660844090935346892567848887396977768443858457038272411396282777620662391501396060247057597522307026142540241397469321837609265642486123990673803082389034284053846042252163572230269659698146608816573289696839582190094879998697719325659649202521914925761674362825020015651444368624517124047846179644309049150158064635607826253855251860148290947039159546768781363342677553610436348905348679280864678798762817886084198455704745200688262962482164256020605750136618741052577796174075225587655842399982491240510098405193259490944383341536092003875138365638872784478107697626618688272509300368406372676496718325827098513346183608471058496836075516533713833025289820860818305878244366937718742600380720041947422138399607100442055923292227697992294516733746781177664285742329079513262714773290339246729395663299149745616313480145656181747704543179062131242173259854458389429924638472929091190014961586736606470655075349974183815913519669114391392266251008077619261495864914217586978711801892757959527650210374794193019138156063357492596537519083231173714684073829444377391916266606165210127595852800288504948762244128291716338871130435039176248652185593692780804473212068507972683400197022734287942371714016069255108252876364777241831153066811210278666080176549812815549847100762022264890209173205116389038324865971000109566852266776827452214777308669740264155747028542951871664276550381572342583165302756853900629390452027156831444632606483311406815658860898209085251537932678350668103086189491594674648577655846311736467550384850162722496177747841123188007314529409169403488444490753040386090042936790572098353818335557826963341512291695672764609716357554487470951456843474636785917560140363395023943839670335637130070463689213451743423686801014352677958516225760477920052100244355111109068303212126298482203069324238190332412579782137188021414368497985003849637611935810899652260553554426675531460646176464142452955489212655684561745523702889040112547847781799909440284137325911002655124754114449850995725002195356026657011604753400644491743692490618411349481701300689509340305548963257189783305599175346609446207404640519430907821124208444236012636871593580421432741241880818355831545997567325290256195016805921719698648102110425844574479665431603975826915854255573450603558323094937910495844921672328164316744006541539619685366823005981703368446998838962930782219213058984202707918401604764819264540242860260216706091034646600230824330628297577572940800601950354201921763646219004150502671729984780300134816724158394401573988006317592257499702111473322662253051648179436573654598083900488460655402298242925399081392254726455830013237323263980000277867109580781024624295767460455636398963364663789221289078930157500068758583934364170220079732784022732758778641200938396539928267770055293914965650170407976589675502785377557002835733491394523986453561563984061461760190973091366044343696526759521758087212179693275670001349187442903371562448168339268331311765235972105941786235989973167613581160620489119919327671954970748598590782704427268252532497891243188597078534527404732722060095960373791589525843236544700590224635559597539285895775021525637589101590192382022454153053770942165508006108951979316796162560810550345585216908696954015117501416376491672640213927620975070050261114059339380727170583496022528597812047717933641628140401415563371980058692946639576562271463646029263620701644975662654143811691728588337838003541033969750205299658022960546328951883095233915189893356466983364579479108204545531238967212705670722839971516132729123932242310437051274482835352071411484210578238594402987856763355852674096899386663851824516876835235394238087285986402167661872491044013625998191461729755184053115048289154184949615950027702045657680910160317065747345080932360603448641105569962823036529470694276294500792373052650729478375898707540752409659777286506641992569172470620170872934672962120607412082811515876630597802827964129088822451392397041272433286958425405006216638256744949873683918976236489699360774320386438824989584356658429828870784513235838727730589903714210772756556753819566102948273776767594141908424397681129536010711146212364768940688124040819745363209723505172311462339816343484570801807361830621093755492981111296995259380905123731880884976709601160558372284673726990076706599450628371655756722872202931752458502505217038260818918488368533587497350005151361822229198877320903127244672273970701994134533393470155877295104220660997214856020598821566047067432359858898977791052442435644872306957016316341202305132324608697273457645334658311926045876335823503286829632204426582372163896645437340629319837705425994307598898713113790564464610005426682769938296660273238819045451881047046215403371971231190796294908510545254693629909148881366134175726482276149804026308729603828405404362903420235196939405120825354341760034158109436767863137264266972528223732579722937219356398602290629443432273648935826348866924937225702663310515132063878527328091475975414883898742915532450878254641849710852298930957495674424416193351641815407177935812730697076872191657651778103871723428378286727388184613720109892815984675208761533217070947643250977548922052425980706787487305970949350698543459326124073995645330004634637967458305404710883638945384057737172240694085564205332021029464199208937204026131005407770702541991735151031678442374384152060160893311291255918890443063708788215021676270495372651999155128321225211050210290127859127529665828473956600008360904659208237309217175064094071806121459035439498708083936843054136374860115352345680342364688963426148874411710884795350040748910382476605986044506259548804203168500991253289152735190081952049326359936209041869973117416003043360330152562251628127050924923244920305529798995677987212214477246444544280054508243720461363165006001029930709850529806137293161555401613163158765020114734971159608756542556773426148275685276981534820903712103814865202121789447220225571245016258319653013657577605066053928604232932032293601509160031105847209436178062606416764495543620870804887260592838976489281594081387189730153225465578285077309243215545631025817438327221605637862890126877251378161030465539853554939102383930980201328449086656178986282903572837021549679222844617484748088905695226478857145681248737466901507185729446080244671345082069935310074830791156730797993707852468591525887046799028222144800913464593623503139329100888616649206668538313375435702322844935671111780124147129167274627793409830502589422187552462528937327977240313103063237794813357377511928128500829110196412355810866959553676209126242514862813390146149903999923530414516061780615070347155940622091131793037555011349994741335435077140419585604943291251290318684828973710974716786009889037613047800554954517614871051055318048534166646474583463153325631717534149191103165065843779475114159850697538208479432418649320441496742259172615271007054785090764876055966385346654124173244429139221872185426356584099204123340530792745530911506937217931821960333876494149882382444981664463365108620212357761303533965276089993093983185904856255608994202762761557824176691645538306803654099895464197354652467307641637133193211350291116450777796914891322694435844845553351279077621469218400861102983982382211437447014809401376783131525634701190393111620687601974119462350569377195748268336060254164106291742994681981064915575646391287435499075194209354011869676812983011861455651133338038613064653756851407860881613003692585894739368969211944178167093426299217012434072544790480090340861044051362005976511736315043361540857327512497944322811209391420015760837671855920900475976926593338382281171606521691703023122934761705747958367750037216763063831250517258027711492848456959736695932487767824027987055916438480871650472051764805269020614481031378365955768089004455341450097790695425953266868635163041040535180420767085489364003496952318939049809063315101062253959541103209767392796758706686850385875698162749357769144988754195625856476824067895618683108734496545706264995549841538927631937882871194817530251595071967603786446575127339504688883174149356139384097802753204434576400791777753270120942603323839439890436856471137639227601665337491971666703342408874901329383348510253525403183653582252007452738639319831598141944593486488755316484221289671086162661869884946368221784722936594261899041073796287022475760640546156338582350014074612268579046998325190158753353370704553824772718330755860992660183800791745155148048131327949321869753097686810717177696834489160575650892215522122168006514263677817100829730635273143793497374113969266442930135613804685861353784522750344816512113530640173639248676443254025206678743279223896851553277952005371892641811144200811014902636620716689579229224817470906283794733743483524281094409334779435293438604859908329393212169217155799398807083231927195013404409677831939316641140544689248826217147360931374372323017187963026226741440914757203475592899362909285623541298223957445990100579526273078027971866033778993460786879160867190378178905949353501612055448622304848075232866586835020268570499188887418692476964444046687269909960009876096772152306549232957690962161236708616312184978090891564633171379309419036485240461232551581656228177485191837088482061626567854968812451815309859210719042464108877428934248729278105889780779187622474110931835248523805632798859449427954818091037954884323350505101980342562846970664759163019530779925437435918183047808081133706609559365982866930018064204341354285008256853511170457167301579006591969957046175541714351021234306401346410033057980529643855731091807927323271573283825677428502292309231297602498292448816450164361194052208221730587309878005367430962738602271249840642383509136963090411640121996026003619727998296027405675981389578092177674874388320574274089177308589951663610375127293865330542658470611923524529787715376973536348185622588225158495546539061735834399928151707786688495573048521730888061827143708857163730543954055575170545706184400085477181650784123064767736732673302277993804709099672450801178058165349527651374125866379630468864920285032202846979275559131712130645560323984959249122284897183979197313641440369319511102348226527682539242332317302534081376006150284542191897991239653718871490084802581785583431836308657240720285227405079696699337759642655816572810419823873951862846427078836886644876132313160674178169141664801842705665437188147605479185028833226217975234731635065774254863564426528804225140762609659482777219204688448931255557031025616550679400030393595153032975113441484988983518275555517911508465993143677339036844016105597220637200408506191751214217035944229109317849017046212699026105106578427808773112606432358479829175004505302047665135673737113047106977186373962153087255706662043203016214037992600027264413952178416958471809148506867805331736112733494392755771527927655677495074285915279320638710723424108807699631823254150453153269289702682577876774145776317723709067170647450860803520681431287495753773644796271253540432000127815175853318216413073015238224179871552278981110087028047925770687959373665435415450761255252744525748082706056642481496314674716977299809437402917954298461521953015085535098392924711719949970300920113169790373677943312630370164913259622860532160958542044667316415465346157229484225009792290269891153114914833823115155276376867596196822900359938494498183210166622863684459410698961898439307818339857855674580996694540896022770371228028484469532526215953516350337470606360758656045702767683623518827180454918815501498833419926364030105441486540302004420043482765401858305541149773023860370929945916712859354259651380383066059414611481387149752974897539894903855242330942802521845249940978467943719559325824265386045263552940847581717942535915593431401139521075620421977024479986216681777303953579653289287607992414526428370212874831253211077284449445985850388163901360384142604696160894757204850699829477916446803611175355377986574844196873319817972044648503660928648846021680891685610159787232076277840266290129244764217249265358230324391381551179312356225629405920756880124521626305771506846912587871319186472868369599985141209249881802054356384433557015027899454396276513510892590673240212039724528735450309008723714999086010250329236851123258719938505078494829987284130236997953203904147292683219527070283939430885462444359308146074721741683215437267884836610930392528139890419804742292059960404013176766450305208549078342919282715208146826654544811484923032868605293024813350493364136078587956548036981543408500114232301104864393954093251950646946346810488183954701445362950865474754393278475825937500461327368453783862352974348878049957690120193114794958971072858669831184254855012821197232779376553292450082825443662027771531089766284975157639235337969692612811057976620321724769263486066898876794462288523385560253064714246587384892390229351582600161869755974027555716400125506909177427861170722131952840876799232735723033639469204073128460433840158729304688753125806656564760783717798607794084956868757556427287202040729087314928009359110095122478509885461442734262006078979262629494587845803699123243790900746888091191273985952001167882480732963315111808785055700807308506398146354853597890492128486118010311817358304206301921179145843111518521214595164757774982270260044718765950755635215086389711631608872460499456377557529580989404389197743185424375107122763127164106959008769329683064533115207241992978612379166354048611191673512793271494101482045748847151861872387808046739100396758315969735479334221369118140678388199485005733889347965984190542168990881586086254553280397105152171331994048926435366423409881941109389580374998091355051587825508862970306463224312254133251289130488305919587011065574824163078113231427154220790666543851127850890359757848406511111292368779895155424917725279983976721374345368254314297710051630625217374472875810111105923514629322924783333924000029845978078547343835983489949705308779093971009681174651363468707464427478119246044902693980844693763413399495347856223153436623877899826821366005621665461893515553888037760147424172571147422639809719217174968644523282318285504696735576271817110990268139901955562894042215373848975862242958007953055199721916170315663328825957675454710666446557752530142672682706781130578624453643633941519259013994662197868930289574455066153003764836871011494248448158987934381845404485647474133858597800217691798577081458390848190674075087750600622909912363602123726604457086551763048414112383090656634926141007317760902976848748585854522016172404154560449826305424407369385985540955425445613455097875914864838996883284673049811633585572722705747194972367668755413090927459016172462296012702418469653559141639884333778301154601120457695178346007781609133098522362645753001451306398685743936725452523358144948966894461124893075855625341526945766186488987141498228983595780974927668160033642836539521378997813963785164810386404034831927002926308913752711350183512720740641298655208900109425677734291355297140413815401731567833689834960390451826562634547810174365053805880884638834720088240164634486051159976986210822734743950555093330844391976330114246581328151132423917379591440475739877425142333814554479823714149044426071268115076582816117900259463081608760265987180817213387933117944512748283679362736347027205288857274774998283423135927108479588926422828427501003139006792438468482872095954664059780712696985610002794840870845312407423517471956995139588375663972496185895969249725241058272475866519297611504051509433330968903690974465384131986391038820887141133264706395789029852563917339326926710584980450256335464165257308517536139627757804414645031613135834658640454230455760422532479754744407768223039098502917772170379430455558122696915887397395036677492805688715323097408217145987142338361330912678589273098019193183129151481713714725941273521389428755473075453612136372874926189580377189271538810464420803994598855611731479580406610783214866094193106165884125827391101441819706894379500166284737652431478294294304815031789164913187133448855476888552802681961093590254783502686765140680608339700015591183845868015486433728538769633452607348406233800039568781347339760109694631077209187630127649606651560081605277129660788220243719878770363849970531840201813992378512786207003776690770632426258167219974452744031815545997705024233373471222744751830507274324900640097770630072564228772944057561467393271852387527642811734491328466240553676637370059624707289092552062015643772362226064722322931656416119136687294658411716147991782291822319475149302597018495382093106215407457167192181252662121899856314462412469099590173146806200260244115789009172828149021910639612726964421313429785268773852836243108359473243710330971259554724989671435545896996598442102343395885819874150266271632850050274506597940540452479239014339856112527018196495065325554031056943503347617089621704272846343969206700215756037204879199434092743291742248583612020297848503596879708691449650801845775367382976647403950738874712570427751761619049003268466404664192724200369622428772002772826036085696362731308499291082875629418952846614593667453808904482785401295825298588391340205774988669154764457950249822956492708120469940896054724461681883047693210744285581103705105670946110993608204785994871295685027639022810689255029005678640749974049508751147283948618673698321445103807081661169185017133815858162410036875878990343384518950584637636995866802995183915167290421867983014028731594199401698432512811392708701566893001982948543859864686172347233894755738853023720928386028078236863519566591652047319554824515719603626621380846801473092311486358093289740221827619147155014514261163247497311109631930782694363893486436387278920370247689366809972275725166572338804539445202792883168167333729812077477517010329631992032043545065587411900262130749818015177463138236516564163026911751092981134051263426170966333796158123545775357375315943331003164267516653175297271483712563886979029955581878054615939338243642032470393914025445881965862749988854502800585469460974242026976181248605773003418828053805784562588602136324988115565278020667019960346446384839842782342048182835051058271797267337800356177019818001070836637705996146331513219007778258874317472703930612902538937052152363223064466069845080141443919174070075180724132456834576099723052675330674271123478525086024196284736880499861513773815966867078921397419058902750330125536705020074581022510202161547503414890296940904417140365696996123581133395136149201737947524302992877347380319616848154874292586047171184528692563965857241735107055760659015246417666153585611606119045336016892657749985626375672013908056953776787750777357256977463600280085342174499642832656843642838913214184674197910491428311903221420957835431296271739028040391852866329657989144704792212784445615662219160693227354864902758561709549635859519390889154181857352113137091357722296607150858514009706135598737448024974216402216138859801507904333352510621584049420375310327544083254856359354117090855706862996359449056593700239806834575067442194043932356962686734992507985024782443216617457256665388022526404751488249961542292439569856961932643990594321635793690029069239132309876028820255359828511459511706462773506563343651164318537779565788020818882117566396042382440551113052566673247403290449056070882559047038679755836071276842938691785868975083326696131215977470333137682585197143321579709632786365179168453317360125858904517244091100322642818064357888319789523643076235934854863420607584252807363929117760814156389408017978452833469754078617362237690786496692295255273842771794497943834603861940069236079521825370758877872461922453383632136566587208360708578205133145432387155784889810301657106433376227894113007275804885230252832604409454643706542560954303504744000977537828661901501362348913677148642961799278184068233522568818800137537521051698120887690509060539995965300360080482253215805441195530409231574120975766040459253206405912005389843462714490728448711816942412939491743631037924688334462779944262921064527153723181703555583239314392905985290071681708638545488576146474571798857341666733210426354852484071642995138675129729334384441031070062744114074312826441865759777626865293836831809529730689906902608925655543457014812722017719826256668966621908176250661701153393640045417208430867483416074512644969576272119511190951382847394160759059864061776345665151451013621760431842712431796816684184149081731805151473949796699236100287370702429638797508030318472931434417277617789303473023466500329306339178456110935406521985859144951707973388580809732462493510457114853480372327614018477521961349730818683021816085865223046252537780175043166295690296000269539690726653110381524895532358591534970590467669517409606515548152552121197857158808055595350854910420565502479428993553780113605166029451423239513853065324313770498671898418281992555654800858251091664004011502763036527620053811505179417977189624308947453751007301548171726000730743298171970625211453682032298053644012364247144132647350499186704503136866689162856292909284693774943449523980503942197517141391752090705314287039650909698978375024429041713878984811105912994644438463193912306011257008341550271212508480145957956205071091098625336115063038647634149397604190539720529649449073742747030128998763150398279067318322206857063065638952645727623352745924961396765536998738300037341867700783958899934621494186557961743758077102157488988284992072775535094942373256737163652204550029991621983854236146410403612528588596512961595329766813934918562510560114821896344826980781388225721534580578153329124488454861302300103606128081550147561613480840522570045238290521061069253346866401040166537400178264006534514518169874689232291638737507172985385534799264393806036716482426918783652244157647731000900452159640252620619189908259341227774488885229991776072397288783799645961272601087390099019685227642860593117679634695658903688722906199634864274815980977353628210077122102652378546098870373681342260039056636538430834652447986664192563026175521082371496381631124287069964032269600942467368160128829030529217396322194502343973956946482557207669785820329111347999261111061047343644691280893995476480921450420282961096113122010657550581828930626825207554939808178984936575308463987531665638472032437192159801484762386486149558594813713033812207321143794676511805439285486571304754827757508224708190464516981555949870676846586659972926426968409840979388973155050899797653646601774047341562287776264776477075526511757122428920599686323888208955889902068838792561081038627275682002068329960321829152536099683196542987760920546260614116839600828603225266688797084687928467244780307593637531445878856501521282523507098111411752399154067882234200388484195791217190971786981333756328608989612588107253354030884367086083994168135466603799083597554267552445561233582967429939720539504557179497556537717186084982967199841588610770634598594101851155251881262321090376751423601054020260461347237122716167772234027490563224872665301059971803257632191177867290354861586462383644455345000374734732786133137730779535514000632804975714818167431781107806930076670626103077316688065822620039066287619253072408971849356251222335318628985370620016904217112435079936486910880521239892047646007472175102698870992304818392369897571247930220678689422734449156550645092206527267315233686177817243776159752312652061701333597340129236284434660111701434661343028928058135906722521236243586088538901240728461054217332046134816253610260478867664595738444469138618950580043812026535315935778918938204492354908213049836838070914048889052986330264022562329992509719943100538085847006662057300816146494292582244856037140635129591131696984542621850090418954961112247681481914571173638194910210736781646032813770054594470697864168137006215132736626439582673875337596609916626923012127758263499479809219311252993534568650037296971953598538221696734216735922653132766876458523416750368525303553814485756065566238375908625845190037799221772295585779041524529764263843279538539863390749835817146095891431923132416265524363529135633672528778604359206413734768493031296855034809384051736664179667480774228724562697564538785305976143922639606099290124484718314124099958319536035050843289432062468547209678430361862936023917502635529291948778593306915814779947078867705148657357963825565444491567707794434698571113207980786030536318690040575636480543024448367023662949023642646574297600798800675191400487126557071548089844983442308905219686878523367021805917962627193281310824117194391302878422969931690943588240185770414537726131090169245445635498101034912665042258765554059748039370280890970951307289052468998799968858681462113343536601904962982674781209035227645427485821011656825559288477294013385102851224447922028150350101255805411259352407141622229872582492830639423086408384653651687250540671872036988753132906059913611451438092603703670881976471054114848412394156300222327587250651287693127283898453173698163187539183188471876609671932767673984604681970070332883428527272205024031763154802526573350275709408268840398076434131406765222086127141655405926683302616874747073710253935216383327051715096151302964850160444244209653731813883823236109660449273740814054488727420567475131239929199286591440109942853559836266218748264982925345438004455728729872323323340620275414455979318640034724134274843613982606628445588676709142439925278492523123503087918069726305086686293208968211384188687263488977737292278915995206530330995321960258425106735989177533878732139119375158437307188141940710089511194675128383327663248840853879310855916204196502452012336540703949319057177525054805290336710407072201664640949914797071171901075319352308484000850089968790306900509441188268294778767737844163952206331147560922209577316191864607054971582500030760655488820952191136026545807902891790203359403564506636856109899446588693070509223900772795279819021387725552090107059402933683131284478121515486518917728867806416515722222010393885310408170635773746525976284934384051990103676612473257557263442063899287863281436666729408832310966015544318039338391126023869721571398376096869000443807097594408288917253960435779753251028194785465914068787745869694808404694210513990791930108088672851412979240867241142789222631720545221942436679752995186004431171530910072720509190938968849129241758910355401604827757834778284303702966347057548532287414084732650794364257176177147187683290511227479959787398270204394621937837282990063302035784667923032828986799893576897891343605560959417072090850693127006295272997830974326458377480392068035798204961847753770473877752161896279863435036139129759737588886963386030423010130719369920189963111051016370882029997452883798628437639999825096147488470226074876516099639093234868241102644542707602149323184762877986082125798337193373653355009500184799035144202457344343209409653029610390261062555792638433982037731560652793490035038058138114237878696886258812507042740677392588206049666483875144606466257180532251653547799368269656984528639437972914514546061257581549201576811525138587048422013912528007412273341950737014986290080806716600234418576520683869286928344352556896359560303642645065039577734753915946003243043042503400550351049453181739003556805555505151809270823598707440006519760010164790684863040747120045178356063635425259910460070147987575961908471528986658038563239701003525499460951419865468126217955545810035681324011380638091302272270004628271800460825685338188135170945266436273202715449308444735695939183042198819071851782509172606472913768949737716782568727683986478171320049370583585545059821589911883499024208974385391056445083782019880129405196294592439517885859560838118219865456179125544877685922031275742479085631395511955970711308422340605395484507158519216047578482249668486692180764134300302975843023109267491436759306075099572353655644012509396837448922416731637355536822599769578177444374945413339035727513943640191404639358273329390997549501863307728683654529873131656002202061859416880058019446572428893689850277335502096841468946717881303822927003336366409286243602950672405289593946498752232541513318204329395727175370414050212244351081910413819494219692537492006857616135491493353539182768785179451911208263299456053436101427928372256694386230737953268686425188965416483014077295154161451774977846215487065957222633214085595118862420576585857000237033152404410915412939111976680375884520028405529180893613016826055663374101688535868430200636459651195691208583550500402180438332432400062860911598848421304723160439469044363992483491128557944603078584046448870086390477327717468418154443052856130571366278715351376621964700540207060489193955602628163914409980956375843735963498532267937757690741323443727262008448427916129001036277779245472607230731915918689245013104170855156144585453002286282377107954873243622997727682008545205866929419842337938120477586907305435376403012491716659050862476968053119719283481945302477211418546191314939149567998456692818397248042889773386572625958438007219602471136735615678008818474000528851162195446647439616200639937813413354158769729305699321594388600329256418237423962376483841248214982143858220723033498456025812974109694845837251807365281338543694914883290807123211411454627722424696741283943861761911199069763421321125932566822855638561452801298301767080628936109016406859702615919544146500019944782630533099944828725684355776111393027513748543087200417754582220198506742363481767229272768469903477917947981677231168116084821817546844058807857149477504415469705863632719335504601213736959441626999613794084268349121814536981910302665114906779631232861968323815840209679680181049315777425842891557640689877425977721878727957842265491824195987740016614689047281668775841982612450624446303924381347937333698247091961087113910388608533278696295239129669158538632184182118879799845595419017203100568879372096210521394837617966739816117413765952668546546239415144002836598288898836676553083244925664223708543548018453282205446992742182618692528861695066678106443927069325083754875159549360670528480909247989649959826383341813620030851508089153101352806038444268646394207323196494319211474490774017074111203611250241657835990848870863585129551717535706993213098488280111980702265693453681282127403771247413728299962082653589041514036492232076718982646511926541872148332491722264280297766006454360021373359430080956116607470690812568274145142854114431376049342814503296693637999622983113610030426182676062669700138941997038389166617657336369389408868383848023407736538248679874485708595312577300940597339519922164763136126266319282648876757909144678308121352556279042357871622706577459983616615302916705190804251644080792546491244309766309226489311432574541929494870773948852799290140451735676360912063302799557064773869732097905972064100751702166156023360201179939629710775972669089044993703969920322443245054867794977238485301543042210501087259633073956073311092822753424902818799454412116268234936470798527337740963137318364432472229673875952834014074413678570563744249952795056629480581428831787581349274943273572412631127871938709275016968883813885713741086325453441596166770953167802510341707879630957117545816932630398910312270336466559129090289507247989108379236119716481864124822690477317941704337265082984650014762440009499813514096791394454493103569853234872276379012801834014128493587970543351183936444538815747532959701998478762297599150267529115203107310773497335088002968497261556283164480846407587966605871117690189276272441257806376334844645232933359232283745722129237913839906773365374863076809622230332331009671555215878134523233264471368658242997796313041913367742834430736533349488883595254847052890255154550919815958379883589717073307758824090983636094054470531170579548769607919756322328579833936393064881236518229226295677156267699576481131679646237520940413662457175852811387998449999426127035184212086844648417865514163402811949400777778520521689871397058518403181009746639276152320323628220578562634102290924982101814814363921739741100361790797286445616684009461768028332605263087125987981901102577903297705221387078824428120479750156253440884433279809229394708442590959297709690233080235204143392838975956186729137751445791834329678021438346104991219440686899575893268097660947275154082720091844147983503288335388747756153857352017404693703160216748701491772295583046093413034948857847592200876083542029964131759262418399400014095480412549026131448446707377948799676389243775994768886119659152575805407478405844523736982428169729327967135380082383316430102271623497619952523163481043545774908150180581424200971570271041324822151762452738339336644724051733651784076572901905317144417888010476942916266123680278684848421297670319856280219955347216894149349342486200738912771955504401927961527864331405089763077351452380514290104784587146562565458229654776500865902619406729125733368481339724449573228896560197192623353765825181481089096500555460224118658031087145654350206249111270128736364161219016967293065496156221632264232512580609930268667467125131801659078781246049358504175815670135475266254392487994568712518249052915116433982247348538814286193955787379457889663278354574069512975187478434383581291186122405939749598149023277191192561527335615549090588041701823334187685832074417004145674634853780847412151721459528967902986316561766055300317404319501767920551646324355237324686031375808321854308704365647322695646005873265258542575958400735294933342568755603458650057150380317948614900122103514600936251297364804345133461405479178195055463005214852402929247623201194274277334863653928420214153015963738927116360930490670106468129503475507932306627673837482282128934477237158940929036927603698436183631418670202189884496380180015697795753839147977146849550062167874622382254410287997544374228679936533905518530655589715976203623160109215358542995034337973865899951378971704101008170745528041694755355954474927085567256439816352656094029628091450162300905830842581402806734864882586552141785770604565540899617803022360723575763775991314507920196795090290394100569592219758228076346952461611098010992732864372471263350036929854116035417873361951426221010691777687441261342571965809144468363572071634998937828380288964987450550872540101936834249559656445029718506766531360098806647169614908801491646312094500676053175318858242311010854655216459640867027194240553734839772319508091295470618688960833520517269717741837755706235864314218173730725708149155325331649178963805219275429249512756643350973733739940496109299437813560593351203285464129087387888134915566892649040310855655062373042982680651918684840026036736334259950033205385823385419319857849081363858974360673721553169615847647355266465690253507359629154567670749972816563622385966064654749294063297076533585292796321083062748899457477613651477867978576033060882884476737445643962484631824756040242553417793120937618179497639250078465752891252041122940867769433744333613554402085589864120351520911716823784402084583789678849514183722410509691613374060471020156622546170054481010023092455295492692217292976689361388328205228036417795879219848618064017899898352301621235915288993697437720309422737649788008668442244841969119642527644319132786921515433369146838182458363322097333191640899567399312801808032475226789300328208753175073246170518298741595408516346993167732497205043147286787929922895742652874895753061190733515830997329281249132267050826965351269496770949653985435745724353427663037541025783739723426428956876281188427869328635209301787717487537575972774418955435896004593815936440217568996002080008118461201183558328331446105522571669663851572832270394927485944723788030596959830588919742760852131009784496198605170350971117707941069466975959796813723798054143632939956951060905925356462052932517129256269199254517268156548744261729444634590831197663615667679386120787355891667519429029209661689786151177014348106492460694278766158400939683351073634085214721407008727504072527279232676725232608024165568296486154672193235242077659398623739497664602199496573664125624942956342590107029080729675925883443549191346073569250438030301602073186445739003401035103204923890615415700351433973540652541749647653786969877385879899417023476010014599313511655417750419158238664779335674218855933687318770690820251845762865239262630263881475610535730235258257419209573086721508491711843357131474116223174126885109209483941167020433596237661990579496015242020559172300645183723701227484855225664346224263583932819338228995832545580893238235952988177816498992112533821511032707385232958752650192538720056096826220512029580721506350588999716503114832103167483151435704137906225235444460228074226779922859129233924089944289496642871380642643280548369259979999097486931023228902167394188531853120350899234325580639547158180969152480037647954147313937908302414718394632305718568342390626550022035272166146197865127180049366835888781964392349737484896745445652703359928161794918260903090187108915375404770321666848744546265476095492089835808824764728948665241024769468364498461527898667238118646968751411930153257830733204148282984288230645315604861480013419594582206621176095739747505357869250778571177245345839281221188384804747277581099166176426335564636927804144719258288685540923460752080505221801291938987632913600433421500139041307829164718255239379516522499686510579284133815476265876654905304402934121282142967990714212894226741611872629557767012843464151340700196702459843152998914400727694271380411002890386224654280838069511645549199909322981388584298591539702585508479745865714166477373031524932967893816210773319002526733567564243921626618190387119433878881363620367845860326712792196535005021981691581867254874632631520164014933963421616028601359302515627522274384249650338770732475261018475049973925313138570511043650367694355923668316083829913667120026607648330848942924567897701897498091987209060156911226142068611463930724814890877369167245735066973538026134721913566595848748628176989307105310791527787828622813807238772459657407150860156087580682320949099875796457598760374431705423833897896192297016813538830249474876649446547682607036172504003463175765307167153167897413234366750009109067072931573284023277752871891151844172127772714448898922221504967053971656164275741634048236158593941009574458808004997120625101647177039560421743436390234641903150308970785304231916458888564760203922433008156774553326091952234323244317161869257778486567499726297972633444478883992720998524517139431761810907501743151679299115918638918062961135789865667518649930480731308427244791777622306616253680303100839491489274071120915485342732640971510222406890456143819719978359750637281837084973576571842416873143102310370961965823120681491024641958159885589571882296012396500128580830405820440811953702813303489952532780293465788028675632812444914551159558477010736548290806881423669230683313394031546520488087118060174375182037695547354320265552857378954523682821026182924649885937310301720442262113392119071933048717664053802519298401206946545423840429958461071783529848718326616491761160705862847156773898778747168867921128564349882409552802975813384577252446169644543141115212368807032411740835497116443658879863131943575952233707125891867839309999170035779395920708029579530115232355389420938124431853786290957107919556168824314628605605401967832807080845318467617921623800539024927554480744335870505997993932355339131605695029200157977561178771149148077188316222686753293725373285591865829441668425870766656525543938776945158369221972009654473921083063135422504162409197497093646882563667232511481416202113448164190684437862580976729556663359353591698517895442150792234190962365017897001066050972737376575274906882812882982075146215536813592424225129525990269790025554183476916077868752401462611227061334396273947506141170253475605710552207773241964048347906913516362229574483932690892915115106150957069556675546141143283104803176215968727538331148057398487412394546188746962596129111774620953358096819518775301595829974724889752583125582893171148428067526236330523556119077525030420724906130871091364257380577991351065192057108634119923063963270015956965393148241498281061798217698477638853059061367452658600530688402066630281939995829715393426196425499304975351948535748376005814596408986229052292187477309308786367365359999295918116993106811746216222697139844659245033182659528683518912981686159757618054351524616818528697227397024306355105648758624781270705671650450676718797547633505989538644024134639921941808549638517846444992295216277260002524591915710690165006338311453788452098500517762677469828533519439977669558720114241650910608163980307706244936585977669266526723938536514156466800661416379762658523997398141919626071474484615495802017056635060560901807926976749771607757802124267302421856546627296824483897191030916290855166687689437563008672159299801264747310082505292666237178821124465715023694388051902803382329284821734482769301381808776422448686649974754050030966321329542227168188799170964694430482018300455902178423704317581585689676969138674868881452837794815444193380258389903125445571864291304447382426986977449057764757293901051800826938001737317272093813653821968177643669294928712007398878688112211712829693430018461803887466074957613308855752811306236348463659362806190806534798877825026553508481723250117490466269944995863968423449401921450072922112268264987839464499374141776624032244040156106037441021880462960029251711783245674431539815683102977850579085545388529115660138750468051582841357267528194457174401596076780124828700757516860752439727874119712964557658192635638104790901519375993502141654568045164003761977416968553740257006835949043245595930251518436154052868718749658809892562018133651049297696657354495860939922132426448519148979650875809190503685856806799859389069685021934428359288818977456886738185110502148730759660938034308168267023049041237184475706548393404101290176250774982846790334623525409722687753630393993448969980704688202966254582049973584835309838636586610966443231120679994959312124955974018316281245442173793726996852473166845569292563616105930431635044184119146618214605635869025479647857354489179029433156197370026328526524880752537350727478673531625062156702559380987483054361775230449080573113637372588304226608363654215496252214178106028994554184809707168773759903809830747332453502294500240938560547031958632242356522338916681580312252391103665978279272717535254401140513706782346655112413081776497977029013579081175786601469665855666724148220351002829694423814206671626059432002479281196008114223751729651930171997092237491120312536686798414027133091835646831787940408665145695105219831629672470716520143990312063180288596635505384824235988473457872466869297762480895093396855182452882533280415888113773872052232400283369296084316317515040826548792343912928417264777829179950358811059840216969924413994142899025330323273538739057208542374256865294767762420943549294984086257537217953505551276392550616585948171658168692337240323183810414644273029686774067341774683670530010485375251237159012013335881898778132572264297387200377294733471072052195185764656910419050484721602873670713873775570528027498400654608787774798726062419787370653519020997613877121282656958522559970729200122192444003118685679607007689710291587031803927385462371068364212917916493375272588590232138055000827138367366851506986682264196326591439171331384037505611346270955839085651331018888112187679800462217811675364248896521615146071122148644852743563310765248730148083194385501986066327605887514312977622047830508711373109398632497156776771178432521757830586992942347063893890120246749397407919837887216748247123157917876781865963459630359255884282841972484704506271191312389540832987436683629668692763848672616397094311351372610623886437856335030703822343996829497908251963507852761717504392634125694768851460932841540020018212160828924518561001087294670033814859172315901386976738069097234322167465062667396132871218930289525032456475652628325462323925801971104891672441369595285441819976706750302453465147120881052863245046298275486403917285712279965610004772578896065486426700235646765444541403294253029082950802796210977490046325328941965017512629039467774465672937421680133306240276183477626159702502520223386195020518931750992640064988998836835978176181248890541511285223902584294108653497293103544583501086755638030569546012830957458325318025914480505206301506476285467382912343852979857797886551612898754463822842274288347399753454644913267459716317946548121502057809285200131521630737294147970639343372206356976855210779936402664342258621056768230477032822690298431065235586351163791518760736433882780535083395096629945586594395304458595671543623476713376132120263868373947911181882005097732971847452291353900747375059038643484457014237546825429161158993427541306048624171968334046187029856639139671145798876869641622213689677440450768153246692663290819089902872926699560408264178297247432267734649354707453422396578538208413898582152147810388880795770552069393079026380096826530187330730505690852651593393956508354497148501931529782678911160344369766845379181997192407755947550353179680113399157498170558782112287107277768375514213481327291012092892390146240092531104303577581717631460462988462367669526272334296452485084546673100007389375693373297795640331668082646638182835308620570882798814441771384073770731131687823600871809885618006207765172222106234843182347819137511878769565873054201781511213282110165620515434159978188034952013503649035422087195201693491480430641264703063286499270460877107086167070294998059441959000847379311634006048143651217732837268428036379857796667529255542449591202578919472941595414521743301351908581082865519320399683305013652849876605865984414387168141227459845438042633922773461358925109136308793978646576891318302772410331624257871007383354347889074692005347060084913840514709085338858799047981644351773098637486561707197419657294991845279783766170746566240815960262910602881955630986391628563541746418388321025302465561201049647425118062825929782695725234615701094117727141042096465608815253345322692718078736525267695770997864022718201566048835098324430571845663307725062993436629100848003732741364573106991929910450149629678071878663353328481383120342526798355512506312669325548764298393530764827773165442048949586894161950225269687636105064684293843626951658700121194770260516094720976950250403231288972490396061537607241984625395861076404516764311119674367595731225429845536965498510249675059673439128741461734898357754129316593102737261353594390498292140044589173880948643715494758264993658183789996800340718545872159746266974713119303945051212217507045690431330275933657522685037508939947823823619587922251093532254663182447680022796269030851151166225772962719236295430623652122575677813859058780001431312144721164303897208637346657350010114715167364465821278146784620265465418702232757303855477650864349440019804527878288746904679294663360337704697240681416135123858913502625059955457754805704109724587413938661614556596646788238174806576797919406681973549855377246232420134943529024650587227700937064066427954704364027257410460971863052132206024012274311577142858305346098178599072978520127552442701859966534509816506253203749205122993728385552670938495137161466815619180310339185835397271410463192658300388850054605267326777062318763537665078679020578252150940844529243836478114784096478414750889840290028766975594784986024202908434307619195960718890142720027584073915437357762647091792573484724012102863126218714906567287600969869047207415419533855546060115585210650484704800193763669983591139307624782543228726439947068350221735411016906910777786941788591273364490081245891824263102232068562198427838953191843693210759723741857590540785219301956149941100363598106135572202454821830144079712811106908585421630140248998377324903020907311867742956898971251822924362467129526458863421967905450371523364609526528004071318520715040118896836329223547214081428558952014040124494972208871873756239815012839606288484596551238322758478364577516372905815541278285209700430564686780031627794284930019135843324907828179446087566757828470693545005052616743618087085077094202323041962549397931428991098605976099559577130763808004701658175061518999077483695604431652208664942125824776158677485522736167541077526919084157775772600764321577326234038284655903586132074152653439472199519882246295236354173167409476497273391601268815180546012383788450405142440056912231672346409353723678065916019434185319903935254878049065990985541463150454888344355729110528321166483859923155316675925878783940612707102416284216223447239054884454681745521583318750063469905134253917683382786635427700196097695869689444333808328337272168490249628384468808562630815732506211759593330641107454984238907745306143214564680841588567730385469500092389529841857834786041970285560635376697175487693734730430685413252682163080300512420979848316044248069309665014891897298130465192363936701677475699613517332199703238730265422290108943361371446881146477701859251890908655106020438568323217228364028575497786234965284693776592292230846213767723808470597042208978418840286461245900606123927952671339917968037379549151520791327609308781598518100488929013955312010069824055067294221707410681847520614686710172158041481107872149495088654777506022368485339011253724425628039689257683488324715147179581363118658918456441207543883217693436331519953082219161981207761211705336814348097929160142621529390502218617607637232121646720068772502631687420765995311352915376887636706518040011301234320876545714822946281610680158752756282359587164056804281558193850361912712017796604715542741732846837552326794389753936008283502256577308196946805249340054717106422005479168444692429681626497430106640699683886637075165147695239990696774128901006271651468579488694458385386586339714518125601566454941015239315701291228166215055163438603536294125337906232037308208653418728051026485581324709024643613880397539382112134827840800495906523917937300438018433647630926496988433497301729783476695664384403993343306677526876295804455709436886475132578837958116263284744726234799090714085602522420772289075338254780760525847405341413490824148916484220414888587969092456066092877906515071796724357132484296639716935865783064627607438620756214025977118134102545055306533144686384722525890581354852136969104529675972208512850960056277866483755557450549259902811803993205381789961239483556853659876571554444189175736974477001470321419100958584472748570361860201315618143938661408018197817490856597494570411488081085426823782690093216064964423218487653829539796647404849997232500640455733185305119382891256455580035907972760667643665922417245815673376516018391058083034063082367028671222640747847181910661988044643154910510482693660190806121565745436203702332038196698122556430098814758155215460804920957103802114461386212784693430041444128509326768620682049487064917611081334305649596370343615788068157665826049889525419849623670956455109229165548436467761474980711676574706135608173804949678909023585931591389043433382350092262527247438161992631871889320790549211656450423730059831790585291996706215039348921317050899822650898930638404170287206933830490479370075920766763236394062815808022139266274201652810527712689927532599883616454642619263740093966699063450219292475533715822226284722783380459823652199144633105843398730140270481651701960726032551741505790944644991217471762136535462626544140264844859615174015054694104353869679987160030147922242726971855055826899154399970796883762614316906519276076067154309958197954582245311596448141745419088913981741138148565697286836491009778653575869605699118762150216409817464436068524244363855692543651171464408652787773624621683414540965583202227122326970759541853204971864562402978197960097524695865515563073884666046502849338973167995425379338992602438498199076724769290427513443750081286448997724380382885153262414146999427946637143838616612745479013679014993493574062673283039054893253772206254517486273822539479037510951773441474577070285444047456319454169511008239714085377861535024758948737324658448411790124266387879112624873098709702205691781699509140997179285782794795671431529525099922866888031982448056555401326072156459594753977521642786729322703566296873588856989752575512207987691354505030588328218389365331683985343444327881004347061603425680171469175487860003792413990114069275926455846744247520502738426368848029592430343704377276746985741211169055519398954662164253482444310506076583690066720520305034138813924117581130173668589728521184840522895729550504280163008922418379197188501856128527623567491262853697989345180824583286385549198624849845454816827611246561717600659851335041924523889498544169195104364727056477656066443175735327557527592841992751508500439955940066899374960056552383484433547306021930533454826055125901275117978211198832696002968933194183172732152601615572119143392609895624700718525981734991524249417045035621949087279602661593806615467971089075028521405331477211853190421578726760663477929377666371575210691023220060373128276063602734114096217700772622829282030951213556805825434182137954972737358188927733132598411938795951705666077500233575566347641257520170097695710624884164182677089965428818936506745324882526710475759982992462264003798607993027049347345740228226653070432178733660247252766833015663041481006130761179752984300918481557837459356620654470954495314949867033886684236042283843353796747888618755134859627629315108224903631706179381071464289279717761520342176753029446193457523799049281649309950632161309918526326026160613312120136020724884000895114014007132856941983139777554196101385418420724891246628732706533577395306575830647648473218678799185664295676756257385644259560194435411775939431337926098473073687663569690406533153992976146460854130442928874830627539477804735816353229711524392719984746615325362681437504028984448684972748116902488081734280438437513979484543848569941491434091648243510022476162075461783063402723257913273030189215451035763306056342607871151312458172628233770124583448336254866304702001190403568954151074068872401074775263204847200710561919056367910001176712422094239236268052456989120957748844556791015841424267048182983299290363018288340697005794388536364113914096991181292745266220045645280732075283224301571217729368910331754749442314849339618807945512533658063471442868847154311301156359806306536612969828486819189531533337351550593426821479508937871685110086176132338580890221589116968208757867122750540696060423526482225188203681444913418386304266735795098536676907583175474049100453306050020455874695415410170929573769703642427408397340584477975764878743970649497541027510927956025499291343077837473637096172751104166283162939265164560018710056145976506622718022317937469382561726473135980773344522613003705600522045438516196155554592503964204565673793120363408862606507525800776979264296283886609611740511565686320572298414065804090407134240396059566900862546571885587624136395876459428063306363310314154329970970030471196225474636135346703817982176671089964723434376202855994190361762110297881005706918294515403269423240825476062296954701954135793289430323092459214375354331651107111112181137113498858274001653344546043758353346894157411307898689322081388745883759135100666106943485230426048215136109031026099069231432256125365490302308687742208851854154155726449217251206707583183455150345228959136420508798430939724645662294579322200877749579686542080669444548566965592508118370272414168445284092931472078653069245591787176964208455601517237085175285982118962970582648915721817451642544627928762929603325309352943037010089118549792808848884176072274852667112527529886585914541548098318021678142429999789153668091652073635365299286865012579196203814748374370403796512471486118667191814647711603299121200704703729983908128877680506481647003256149468470066902843181775957234428878291520704841445943979539976488033338136210279102313181563945504013726015361778289120932260204357644137005802064130228299506765708947000274131778529863533796785144108160259197838212276526924484138603726851739123517583037786092893615680692786113165399653176208804545145244576799156350510408778120777151782628022524558049744570320462876642306048365567230074653140585997440979074499904040017858238199560420443634887039114100424561647201247946500406701312356552281062935950213411422482071990848645874341572069191704391038684433850256777563909185984877388990543601115892644782087601594218040520422432295118934286602425667204492965798308979565546231798911086034696160462764916639594582762063626440904311561517619294119561199873089023213409323610579963876599994288494279466516015685271259051189910168240945176830587096698793736884589956111914749234461950594112416619282093094778991032424626540964895985896751514424707675506662412974792108877199852897343842216965478261673348224052319180671721897386378931414483799154556208210832996197994068669488033484339455403757728664571381210047418030846191834718063620568796124119998238334877479440896006995836653870632584753400879749327088189666169425406794703671261643397297040329061754490884089438226105653286078410088400341781347725252832363996239443057157725994000686635569844850527702078559082267890447627651550236686185596784562248661136784666729216674742912410257877629096262196416092628389078521008966728544927970285523488307276289425676567811592625912025758154696339782296862848718904737859793781459751945877344934151430604702129961347314982207398279481833107588199243458904299973608354644849880081425497036667700462250931494476844436704475446880324998665622950930617882751013867022846753871683605161845501233948955971230180561333433445952233786064339285653991350315775539423255144286006144717343522907481935516513910845832423560070630422904375598115116474805509043984007310204507916104483061770725462281526300554438468065813206538772448027765466715072080962714202127395701834332361969201347298962100150516995852408184472616620638909452554004559817402843032578867775366294920518620237927241645575337559835060565930532224324561589924302071894916019271882486087967490242650103941918854742200518568319814548992828267256122228823027375119247434835197574369938769125530505173069248963561616166551906157412602151077471720864258793004011866310732235978389537570228114308024029664155074069278742362327402928150961891068956191396106100629636735752552540176022374551121249258873120683512733158858584228063905442513473529444343058369034300334914238887953403859972603647411043369772742875711993214481604776079858014823500537195651784394606251183983191560382685686521555074561917006833944926396584009477633405196904824359659722255544716163863461230775735642927372783069700558833090571685894494880266452625992830150562929404687959940896066462561306353784716056484816047538228678714815982617365815624204237918674614783242871393976909596599749174152513049544558886042280402740809640555160556236603055165378626228370026601150801072545512748734836851994073783670112886094532099240822722878811151914548425865789642207341652910190047868617191598083308130355539220682412128411465289665461235078251872050393535436768103362136973895530040896851816491789370408169083818430969990152318478953570238233071377769529174730810426474043913027253768582601634891629911643461257850066879836801325788015383424036224901232107204893726372033730119282788267689315772424156837234217461117421693744006132676440588092272014517719909589910703441632610912397098195083956857421070955083264507923206068927792863187194574713960441702376258154103212952634669751180577897673131522251910459957144250959248585033262066388378594921941750602474115488273246456189601062705761412793472630188607150870204047976267794666843337426207266092103565386878697820188989719043123732034773323989098929902876479453183698236785482705241720053977226633071737709123300071591796892572210741895483352686991262251713116312124717211250496205017068279082009604407167712183167693460678152699363449999155865572798394709114899135698724198147536973110529771712292095643592408967737218254440807888814874495950860591896876591922293663139749425251756595899955885907576553008306075175654915973889317786228663331108410353209307977704228510016102040264646746611873411691533026898817272225407884295814844394406413229229392378497562614024011017348981232589875890765185507270478774622008460038967910602878601974431760072706771308249210045031999393780794550403623626703044880446284359202714722368143591424282527067322531161686642918297761320434798686341857510493678395144976005286502804999056718152359371869596112387690768789369187598685702311958987240224112722585382164865158813547331927267297896801565892187997194132173982755676971052061815744086922177406158460906867747215783240623405035455506872412905788125361794082720124387852876765336660053328014374971809667676533815571304800168988133261822497979763459668966307142167850505682550574357373615571020604198685046961344026559362034874134532132049279774925249904136018151464091299308883334716384710579276474461574616026427666582477480125643648592526772844184932997820596446699053205008408641165615431282547640830470747040971367413836369108040135091363624749816390193275729458731507680026267694688207157668927268021591515935294602843548242214883072795601229022036116718682680077201542851385709324655307486039118481267042855963267622618316601163689899576226204334293539838454276303524928524275486968208804556947746156545396138777052404423701021990482064450955186560268146119318447149676426143111856264677096983325348053127226981771246445709593790249427764117053336648843123582116987453621686269287006256825658384420555245020198189694888826788441267755465164484634732722491930842277487785457057260498981166681413601558469072766849171853763841747500925839932006318124166307271941189811710630600427977948989633837915407918956826478579288493809274225827075788069980789792919684793312115332753819554567298039524472465253357782159539678569026812078636959426808868416672225505739329793955999121112271003089193708588881730861201867989902522930631971981314009482428432900474870208201280050842512555114088127155894916140143629106957621140287459884923769216124823679738117049757916832053125234708209019823392768750915989179630324044308894877768322387729109454104086892906353500991545982940729956859709887395679780736850382261060649986451989780888137160448810918671347310054578168172466329117755752259870244072280085387871147103914046985573256607617331589604045142307384256903152191349203594315247039007811093010014950585005786165219482441251573093925666184114070962518504460293743121158541479176047152499131012556744778434334158177523413331799625290352587158369343231029799797649591447880535859603033435437079993360843219622503970963567658937184192639358183081270606933448498684858764023539333658686303552495113175802562155478071016323242645010495442151167879139747737830988541514699530339583480251903424562175829072438075571567178629325307579102561700477658590045896597360176722260073552759664695556488491469500361168506230810088297257267489133534133442157741661173283807181498387999317982023319332705530652468870284069422038407939301107558572094361413879560307151194961301149539463244605626769172407983749884315137626604480519563888682787489267886247418669543232875360802252022000918089220189864335591932355206972295630768913191472764907187302555389602562334067403824726695406801849236556610316937899917118391457694500571709571402725300786289062224213016487335331044842724539296274182273351283788960630228608223976269560314311135770385506347858518320176185014200023510010394449410427306339276640742602146528259960264179576254091696347858483174668351157835767404611968480994475783351059101516661014902797190372735292720496589652681267012235498202045771232346117507866934309736620819581776876374010960918155171976956084111929012277043895373793366268986918518216831404031578926594062931133074477846748247873361609275080035975624949671084309352411879449928906924663304553830285518802101551942270450591975808637893476067490937929084509858515263328745807660647347366918229934094019192430322022629662314956644869096818507443023057091268463372067293170627634615642641469604729249226893772884532394275705046084520479687098042428703722864862674384418426265039086789733638875381089065032095625299276900294310523387530084853336202031163844606557567973766493048164839751549658933015804717678474455713649526603953066609013905517034087904579806611988545208887405815544831603031468145379299841205986864767805249842570469603705455742399129948115388374071569644879653659527334379049386893668946201143602848370102135731936537670875704648202154793684256916828793256641808356685880445697784086789554789508786189241571671148064844096643394566455754775846760888438397965420445725576547153928649491721743660360812794278847320375778618214085805674841272801174978123020990673638593179464651799554174898333707865840502425222750663922645066443111837204574800170006840804168321873686567690107072845886103204426919784465661081259130035451296161720460385507343094797942613583368312981953438046377767693892230201806300633962012414242296524257099051031175387194051442708370151037086737286721621767381128084856089453306205222674559465889497034423228848386201206189072235174722868512937709659858618988011694810108365458768914079019532940107987502836791206033732359163502223465415100003307950073718581752345797151256135740241297317344368115080959302304182659680711743514182098249893788051685098081742391226957698180125997267475939423789034341974185941801165831329265087156222282854876395992513105443321012323492598137396536420954506697231488424584521694237860850102117147476713834805379262063598088528612040250237715504112608605873313883129380996716811909990816545210908399243836448827447545305435885823990563387714660410459540465740333878422027986488936279975469291159532082589323505569164909899733715538785560286191454793670270456386753841269811380240239681822298080293024145608733718324312369070253563138860444647031233466245105579995096281995209688010043110666254769935414370741589301690300038160143013167582897776353884541753288591402746465294126135415866971723544381384034155291658409343547223074910204799614317436801798382405625599911711280941518914855492993414517106450187474318991356555530953870721730715695461070502676309996032256635178188943661499379903102222786545893543562914241877457159606020034981749157372689905917937429488191150122879881234752579723082298224587922777935002251682909414626159775267970847970189261244948943227404807121422334625946169523437114027048552585019501819960040476413081424570366171266013496271491014615634972126685813408939027119293718416594333716959176805118901710753406471118588531020732706134846369218987590079842040689557099452270090746024571213740119170436604836467330506038128337687535058273436773165913526259150118510773023226244895393653753933065944165737518153626082145146185682111822594198461298905695634098568287040545730795712731300136971569588662822238238231308708941049652907359032899991116402461128852084283614187269616356737362910759464000325628271136774767979102110600522883380689360472462523375402065977430552507870470071003028005923678752545837440590742703241046190892536131411622248302541051560963930249548170145720184647986683610642971109359370483625163533346056417052964281627206580722774853908096451246476159416494308368041342555463494223783419722027305396557293785155387580052915580608613759350056291781689648387320286652724202158771624417913734519216395976927305005691401395667485914356769705895414398608755291154012481966532748555115484820006504905602800655818846935685495167729595311758098476590424439709169934093509742712551836876463766746126733099278372678698583484416670504675418195981938318835035553089235635048958314916645439655796256864061711826065960054523077600744678227531033176166599989237505428914924985352486946405047575483317508459681798208587301371221080580127791273397683225523167922337692088523057068383244028891959959302143631736922960263856480180572610160667436631510378099499202355334560941747404942262074793934337464165081858678057472960126407477525726553703835835977617794278209515994259901833357101180282683274871515286017254431594942164350805603784680185450305055796372536856327337981291697559859142104027540334031692126523652531549731728880337581396953131150029298659480385161524948607321381794058443336576197558323183016850187455469447505198648105748409253305041102028781349711792850560608010832406651165609663474051535940123733533242128640189646794962542917118963333873011768901244253318112093225773136658488817216940638894590912399119571241744201459479770859898675174349454881467740006405206736520913919732261170048256891101465736740170262550694947716505073375176496241406453777327646025034644075100589113255126042867797174922899107107758173332533837976772909098818034963898705424274593794871983475901631567835493265847395969474000643714900615014510898030073678848953101626649403523980445519770875791886838071364709649588161190884936645280606062411672605468464663512547754066911229208021403789496025869695489629153172571577419224672453179000505933434647727853360751389060401555978437416780108070797715114106121345051212643264958611533225706773588929300377622113594633069160099453149368559429531230818390409435050608300459010251844464323046613045255837765811619738847835832998704551717805068740397297573439090822866325186989034345060551009423668931815628209876836754331867691628822264677441625071085701634782334424349375235348246113982135028756657247616974992475228781768371311271898387732401779820755528087594405063821000305951112759945874014722283932697453598103068305335698521529145416447889144231706111124226120362171542698615521474378236183188051039237619155331880392074453321191324007902731746000600449687202515372430290237353119974117011199081026592827085162683183246063562004647019414190354531417545288612562091045280117706731910344442226799282279959879542702369905187523882974005568231429962052833347528739344929168170374449750994056941456568025050694832578044820099168854190411193689532231611654174770339904638723082264027510584256932120704707369311783091416976573713420622018866424319037093608747762579869433519224825084474096242702553810738502143886415055925989518033016509919960800468220012151374571825406827088207945354008259513091600032056986024517809414859539932108011699917290490826877505856784373310527879919048332220654861462455179749356009204200173888535516600181951561715671399801523238179418208100427173643112418401563309909369244392056241985054811054388483208856395885213232887409216704446129641115561356425400218568824772908778870668452753710369818391537951405497655226186594333477060994386749690537640244737155298651040048059759983419734584711919974975057783683658141055226627613456233347601034380677127352318140002122748969447855970925504148362819608621109021044882451000423900999266208571714981156125703624486055018549113383032965586776066536146596906760509346336407359451859848792267506874053012694812142355343079695008354064474636082441327508605803518283408881228186657117511602005419739290844616137792403212068346524106921136193736614346003842099159053182927686725346346556735735636800511565964006865009808327169762130492906851824456482564775629260193791465149953213219916624023937124067401803490803912256878218100883627042014570863078735491335491563536115663178917876235796076827225267173235497737034495716033423340613530581446024939466085351705500120052525815763070939086084706638930001731698476607847230043449211508284797573974482743973124959539833827529833909913960484182988532515148771032188441701362091476998338711821331255917072188662353287259858915685222064322473317101685597993431897078654311043144720338588959311429839383357536636343652183072830144387213580123534846339485697864819732800785094904283591481704014799092604238479530705251825097759612333664182216134578231928026683537175420529452556236236791133617882940902529803020471744473312380771456771877379354258971378866258335847313402774883126151433237138847015249092539862493542198089493547313359301017736380898524965691960871500522501526343581989846339192446521644837170276718857873258362731693542805735271250123652839351062630030832697764520878612601827867404793079705135555478824021224503574382418548295670563123406990413393323233709519733586527637187816029436992283105089261606814223783181548898235460217770586193571447658827532148782006945969953055493787598646598445153313478871280856920025265185732072567555465296915227109205056114504564259416220172202450405904310809815837999497744950391288263396612152924496086129677225869844895178161176995432112505850413196783861712147993530712276990095087807441890830387020509531577865957818933474428970049896734494870836982179682360109517486464905259204541666353148355818435455115707840103811326282883102181766744788359019341194596713309739971490084607470072304480051459231879533755374995935247192894870718237358326199289039195707099921346736537930979540971694322486490082769354889463974934830350791080855683202250215214585815735377727138433670416560175324735665567160177615040106226198202882966960514166245622389001163857727156928480508635610340033579246444943369326377565282176365412711786604331348838362748109751082795874893901187675280784219106373623370371086047984133597185144673105856759790220909913901787352744525885951139096672659302783532352318259827300336895426784659941339284635465762503188179615270288841906466151326773042501272304375087483003611024992051068692074857439205673411845648127101780059701686075609701845713695179652507253943487157598041785684470792579551421837485046430900818264518057836682304261038525247371476083439964158945951483177582361716287984185377865739287833994341121500416147476548285146310164475543289398031824232691310984863895056693143942652790370326772843596770223551198170754879516284290821517775588576872692828843470610988991542111484262150346965541269881996879218981973332944769331517493906466796534827296437654250389104351719517022059330610265407929297220113641967164835143104768361275009244961569104153166124554187826826602184747417394246975566727444049037297488551620680085609182653841316463470319217937862532052684057317364318223990744731504910506860619138421307394136244826603411381795545174814187238656938492582686085031000009024187691580555847289821816212149107009842569829913803514543054317770259234830211020727716748283925607712261183160908477282204151722344708808301473094448627068651918109182903002362511664829014137080540880972998072873728024656809657070308303326734460306803068143599320044295010617337295938239405399344093451093350146639101855606367794946855278664121334504956834613692448265605264379441080665076005832015863396901451219889779328671459652591919564958089063641220195425959479226797194432912209787272025187755937304109173269565099011584350713785084273070626039329276248108050134113477883617675506663869190856414537841019197132869235653377412616378110423502164041645690910766757167303702821785778731111222367386502645961522470724743761450190656960141966183325891965594474697349337987419396444829110201869169818204272724763535904928788502440852772685273124954808039108247143863062432003222604237291024025000508762826083338781408548086789662022822378851242529383058643638731573176803967584306816336509028365297963806975065763168846676147091888111952764907437093484617068728612985286689606876436251293583118182530460718065551225303653832514237564998437225604325508724472618915720187569485532617250685129846407868483230787603563408936032643875901527327370321753962346585088647967815828511730572625939068087023202695037481447730491965590435392968194335339960737238097453074538912701768457921448395295722212990262229748120690585380587156937924878300894660676497657653661379693733981843645527968337926114669388610109618033506342812892453237327643611102290441868820000624751214807972649534848063068803979262477521547633325232645044978089425903707422072403744939106052756051265416424221648855195843932165808960586212839281357571970220221020010516945967466335245344342354099148823469106567730604815412247367403253763992108727746952901069364573078709958754555980454495495990221338114479806610745942502053347408541015084903076104494103342240924892375077045066406240044239364666033322953169208778047276156741284330025428359173353153852898565545352853874742598647319879743537579384480155788294716013648250987589439163496989470072254770858394233885720384256000397989552712030768972201444703015138761614586863180218352414924427774249144408120584826387566896506621398287148098232281695811460824032563159274379690301486482562003667473763720404391389702054121773710567057184769551024531402934422739179516221473941296310858206875741893400167059109047670684808224624481560339967009604923633221753333179652987126729119154583732308513138674873013683396447068338307349346108009548570346703498485730503494629464735470994388926322442585574038474318504671922689465950387311708059722108960510491455391760596312694478524212949147741908297781108668212274657892766645240436162307287061510876770615542980232706863608948489844303010963284626028664359607259033068538388576319583231845300808847583548804348802461692014885280596490908933149340180964786228908549934414932211409735545883095438347601035934122585708730742684838242910571060533100975833429455555008133352199642333926692020119199726009758511606887472251429753892313127386784017208781540056028426658267665970752041668631787727074278869061334201390590163361090738060562830445177201386751936860184376525803436491789760073022885041793257067295936555605269568756784540001484098376560706703691159722004672526230307743384234409888279982645634005380459310843360563471749397791408553208165277214434284243172105967917772509410701777645382219991756222501264163128765194315598159365941004415103929594766975239720796628413993636450885717948196089703254344029213530632933311472466527367089008863434898974258566816471336593302240285553499070667872782316556291679737574063593995832906122821666430612499472972257380347549049440072297929247389770388823084943758556376529304371004910029578847959559639694645830501265400874857182719618519311528936786116646683835177231047531572852821799083760586134047069794356974697031004799842348068521975122163904861071788803836759513943623460590922566602029060634843344268607971773916809578991513296041701795574655948253444892342040173464024604373461269933760756378093082799969860560312794142722080248327484069851005023792665438904999221149208256706367585350401514363812549398076087919119290267832806003063329626586692728163505423183238488990189527717811852263870374585206124907935092039970672371368002902929514312871759321801387945026411235245104986678058357837721516272874271207989667330541897858062526725171420282557797219918566636418527413836224701953521717514046861712368007830124316783829051069325133392478064426575720405066939570484198105455324103467332444876538624631238442878511825611392319923743828596990175759014998973659499012667755789550619790084744611299528812542403055484053245964029671122559347119140855093688981183068143620733660951000013896365683757634513959577020171266533860685800019294390276953202549258452211134074581729262537547712420397787236138391134405641965770197857494725812991760622806094020802277952915152084980336573701495172894987274047405268427945258806858394365937324417054619174755141340173244765163489773004708289578067114035040856794227494161276636346785858784655168728981409212302871254454435085774443268315405075912164821852781221982208182683500752465580983866100040559491364542017457876792608454572795979315557519374024542390383690348793184706527469325901250201684032663589345483509085250178882061059216553724465811157282617681450678830391037906075395133768002306386484632905004911181097692409929740438455564825975082069715272346290933531382089629879319884558491346825048041218452701927314049448633876853030345078807246322024900717575049713742095077460349233054035975152252573254407104845617186630963775618850954215780344459915389907350140566266632169868965769604913720981228411306791586419100951337948862819610291947504695546587485319270290588730325224825745240723519233742074323587234232873052497659271522229771438648174611148453702287496176119303747949262986621996357382391707141385989487159068548717003083756459143525491879656602000135932977374890519216907169425416257931606360517875284084089143894645759654950711256961275515262007104548591068946841482151046186183308758802627769329176776984029411857135509424537423099573597533188399706404779966816768189088726290241336925158508522864215794222180526705222844800646997445502542958351293355094139806916887618618129058086674589676734388271087723700697664913891873675098522075197048513320571073408541265809569777723541505739164216727351541540050615584909591157895451149247540926992776295710145561357103462655242968372740536886129866048572044642890665497835551515661740486647539525877710585169956425087168359658794636076838322171385476139162340945793471046841721239133667887526405928981198421062246131206233893902009136718320589953914458758361558665274923773417439711074137716367592534971465942399533380798175952640635553036402738146115237609332694575291623899925043203321490582803942393516165934119668215882399111239595157901807704192417704542472863415406561718554997247591831798836118342058023596408078308570977000684884323232167754675523174078731259643472553343537200374086721006692128312723600409127101858197841110963006525400129930454610657174036929224369531659318612972018569496757198731072653583660681910815037391025628596311147840613685499716599449261884648694928302340843971091856600114806300974230310513703054667546850576822960116027922818853608488825956828792157822088413794119664587075570629873813589251290481278136694623059319509790680044671952077571905980735592296506789770901119996105932858816344101059903777318720320837302800247522109776226382125503460460523065304746557837773129863369328639138325359459841665138925214452268360269863670703282885229007285374203652397833837775886279756532329597038483856025474696320269711799762851217463012910620521979831683091425075245860931781788380429758000135198496869358199713819992343764566392448001236320607661822213868924589621230590447030716778419653228476098649030622097497573976895925581335291645902949407744710746080052597171785950614650171003085926159594619097373063716554606333083967095274895724815865778340960846568477631320703311698320396891092031083979730959141066741637429463506484611271838168416518975885384877719598079792926851217596593694482388154977638945630269847101351675795587421439256370661314968371418232655095195650558380583674336782233069387787916511223560152179435429134489101985512382199643815736738861366906948660578680301771507752761494992121740952753189383129007538826628836626421883781899512343443786453535801304338254684124961071961041658520783152093594692080065958246626957151498292682299464675197368114369679011295822199571805855408129289744269631500265507540504820364649096830601979059377428308674570646606100280838653693606222252169713454221625978336343984320968477437777450985224216893066790417949036176535409014832228882138188317985608654274280369953201431972178894904487029501306071442243018857336688711642340304060788353051388409283627724522793220430464160491836932491264692333083906199646973374574348842388984465761654197981059125127469256882161320261617089767119725034411397107868035499769399972819465105020155869996002538723021741634152626753686769706995007650258910264151503087801162259183947091688632756961750903520846943268972311299252777166992300579676941786915243232555831947443974102722957930980744053376929675026759197813195755823769048699369329768651662679166534688834138539912805414921581829082602655466327619295061038625651158797842414701255844224225987575266400661874723628582374092133289718633337853082341743178338463541846940545351105152153817172817978966377873416694885443766205810574062266807754298885445011294136104731271910668367834076444598146454917919307314883303552762554718206542147390643350934152995034298611546291139270112662566809465111003244477044578547113851455048709323875692332628412751652035941306577189541525755783631586306235433680176520760796178646959096186179889218805326149711658923985203741444878502926873537188377135483710201469386202791671811483533059401537770480249038388626780641755153273488322326572510871966480345009396884254113672353530348137594026530371380242368109829120059295064118149373493988917992034632959492712626471493098431395844635180083490677706315556223771745056354453850830915594150007460202603368977952666220900512911685103075966943046301265557246535878195486493563169086345852550323733113541964341673878266822066901376295158787448793415384564391360599284064267962071975387315628867825232333581754960411234369165081569551064354208290753078901623877702389097795784171345468839085144763802755759540896867855545541713670084437933401498056979018617074474834455921743374771787765964671491134804745724910269843195387970510996649068573958793186819274547130052319686645348854687175695454793007567198910343654234465169678862245876774514808296724526792992239872396040611530760902892459108003605102336854541530448544728055031055217802869928064868619654809169813282819211208992512356603464626069141779942643583838692494814274229114385495057555233841172111203503331316805177393365662690184479815850381734935500118213426760827244917346582170236504239922230318437978146230132862074374910065027730077714574696615971403672225122764843828364567550061134366133505148156369190747116462838539982933222142572614984652139359295616691970840397024092685580968807445668569746365478964927625649831205734215485320019289014752635837816989905150374624955870800455866832847591465658416152907419272379205943326018661145659150916465633876073914287798920921034595298569263797760280617745375794505235508348789688817622725247483123128067709447111282518526518226476385161095498441257982775205589760987973102804011951318905177885744928728849170304651728387665527694001409750069569740691545844033182703940670012346765671112798929780117980456436453385496409699133294046394206320063422068597581598754062882963276064183447521780609161674355972797873924672280932766844346688609468256530068909694283908266433725395153583235485085593909344953144151731306344909541918812277477048388052487095440618261687931658090085240261969358739453377515370625798915128528974803241666981024683628905037048481572010388529460964785545538953362634971959405205551353073458733691599447633830638740727852877114404466454051060517197281879221283003055502793712644607910439962024346348267438878074759413974001768732484314912871929764627289531030353625136033785133433887169096948023536527531899494182432277120807397743149681841876577720048058524808444350438459520957695649829181842562182600207122043384328475773105219729808323768435370227798034023861942893645784542172627528791236163397187023138485205964041260419652070531342462289657610668880780621418748263358157839242316577959028245020016695721358064177680965328836191080148754242884623037038483651988678842956483306715125489394860005756105108820194504423038982429549582814537963282588684307752970182227038191004796137394731489864698651053594015169267532590436901446034671898132801426668933190436904770344798489345957969443057483491144950514084741758454978607823837640886548608685170577898182866046409632033505443164859517825901915416718224787901682561373975513066793541774723010954602641352406209207139876794569669286018090325882105038422183208746998533181236205358314003099548301821832637919752465042967256267487154862481118436303496687128382695047277455883937801301103026424238707671266246567524248411359721921285735908701633689518195735855917409585427289244574970022980290907155795128149469258185964780374535035333062642885552271567429694066605674315826668580193024871375556698034563762736042826187765104508427276231045772732577528582762895851740583848918687976443234844834000705449604805600409370480818913899503380003246329111891191514041988510596116098270435343270905868326271783777187426125523774814847235258921607907493228301567388222630190533515344618880700189682047785950913125743878157617121721241813644305709629601891200716178061021160374286970240283042079868056347859134093198228501448470014644512180007342105044528528111213473066795748016114071139690111784928969759871989286017200748079303953261059952177892774495733828821396582637817987805383726113979345122565630729780481708584175620584079489955730675515857694438703758989587558052346086229490606734588895893413248451628218958435452694672627916886823489607258026387102096913589800054660770877853849529621041301789746866300833781704482396952059651534733795435644849577300509341510317007626248349219992586009498122635912977022176137565549373078175823051738149314337473707376992292767369791689031234792301473819414250079860633943612071235601806857644326294060773751981026135146837609184304076728773372481282060215166665002991042991113829013940225768378518106646916342865476519069671171681856296930757181500365885843755674845670633714610966454257018601377453684551625060573679726134481357075853876334170755874939843066061748490790762224994120890246434112269856081160123558695677480915215187782210369131142049919267178469400922252320616755471544485169174905698302863167899273469895045764539329611979152508578574300330968653218090572548687984674621203265142434230533398381326637750343401615405432336766087378314426820984728006772576871028421318148960775555288604816737623091118423757325930631699225965675867037305099476321273975283028403206218349160662941562492373997637293262255671235767202983178756903380539646617332920355126700433380082979894900486726857938887727322046718886362777757155033326606556366614416906205332740623317719968413564078974212953955916298203357051440476331018423401397440602315784174908813191931099167731780040319406987758942886105235917415940292549851409485471942012876268408116524876718599120887285165579770319163530941568584497027548479329710596453694291855285046155342695075890864551936558421690341213270499279636099651063467900227823241108224420174871277149157206712424161000129413958274891883231070595019639300153692548480238872790462924041934348848073266360190628026311944600376889300255984023266905933904552799115811933761206075387939524396901563384686957539108164145193107665851387271214118367479136780167559193239453400817652662811552118598980220199249099571586043153152733472079099127069499294681572099306828584459436019857146749529089584695553084562287490134138566890879314231512255290611019039596851112872932173296774611307189645216868066223819729800357197431532987946142842575971453157827207706033085033475677876246978983707616715620285170502964897726016066908373509511614017573624292490991444282594276940495988873678809284750664081751579595829459314005803782773546718424031432563502004569791104322431935882859924623110885850454369869568341128840339460427893822783079382338291723807286124538924105177605156471002896501221245312765409653712707112282213154416669863430095804573833335983100653256878239164587568828691760730462725833189332525050316781127414002551314355852620810685333447442642700412646666359686821169905878316896003135875383903857215295492673047908853556824276320591970123688922248646761026711152757769755630198748430038817610403809707873036732887243607232630147418732085734886940101790513454157756271796208739746001410641769736753605041112535789484535681143268086738373596384797927364540116329158889934311638281912657925091102772518202272916678884266594002822663815585323022033708372282600448551515675233776681878338899608701462601832753147807152624138693981957586105176887349668513537524545283223404205240654838281466206430193211565996322520347986344129456399968323131571320451355077044034597149153102416920704739614273653616457914728715588086270073097981000644267456803840749651525168219807484459080483461430829416667737219246677809661080915644188898987574331097236891271929683930195514736894530107090932700943419083596751365738280190149543350454614937125843464656716900465877832604630448277040929492537986536510026310434707712529153754337366142397968427755555452360103163741588477287542997543991129717826181324861840825211817003608131716442695500351959162762857068322537363322818304274019231256418863408289871658588879141447584287343106245117137833743478471566865871128877435787779052304693613243805467954034510177930984970361731031097897005595006347215374448051182540661429378560257988491497536216639699311698119293925051697253570932657036726991990149634835165825673693560864253023725530755070078985393033348156299646782964255033401071570876824301171755062613024328847612214568799127661500833501369622704864601709382167775025347682395884062863737299097004896377674760556806092783629597749463482717568256031394133670441637064249173022143949202066704291661891625992768359934794079200179601688379453283852625100490989306231042781887674938471954745144422921594721153336595704038648898416077162076811688024511034887291833561528390612993051934785955259200206088588132756187027016030197154813575404430891168512788727007367856962566666490803939560448812789413032113943589606954150476903671436563358966164690909180764833326486225165467669764407678703271947293023490526608238637766345745561654543398075539569417898408601563203105567736008312761645757420258163971892783347450235538307836718189264363833886373488231392996779919882876600437466780570359927974584369533416827099572720128660887754826076151597793313387603277961195192690016077729153760800497749395075458218879000127915484460653993761921787475738810416661052048908498150618224269185321830588612649474879189317195401568241247621147873078575328058472932620271571749428807661537377651881346812532695192844952903037801626272935354578413102262944776665701125335454316358337508542152278071182916478982484979298564671709580650403338388854370763888270339808255947641368094080371838418642991809162172380018102222152510295453219286269214750113056633477470344325038602444470984934497446292080766269905243244488939208917747000638279040059730497990925051917986452737132421152955162555129529639618917151464511444204107715559873819114648713740836844099420302449661011618913439523915578131123567891668305078438840691607415095211353795031946257139433993660628842264838717802745524102590626611782267066075413210182892709040943311929704254679553769319564438747249467069197677980571800692650440941441716028623428276085649350988922596179857082076192369625707343584459409746213353921288395933742814163615742183040619297244376948653150778964292340979841785874582724880405754443360088397342574207423139801701849731244090000760059267346639539092580236889299238077117349399290082113614717770639955354002066279471298062241285885689788049173892738084392141708527579668378830140261100900400518135050947084245709922335854475238830143425196452868584788557219900227776513160332037126435237817267210573353869094752597814474686922474515345638792846094703719531458790040283586472544401309436158317863889290172449027651571261724418618077823011435053279907040031435025703150976575811009391535757779926929598610956603389450698061147977325723577677488254468720397513245667185917071900714841124518432478705230410559972213900403617940948084397001640519176267611527000193868157866542201217614815066558423250573288604087606342500113787353446923654010241616856001073921550809286960764901369339570042832680276061055239487349581617026177462628540903048966835432095129321404169566321578388182876386331424844843626446998635629678399744255043369947528225154407195673424326071644695278127680972401649932593477713702010532769215684345905237444005001287949574229848326844999772657257620493895160759613677971186648477752301532472500476509537132288765532095523283086239855689163126688978562977472903369998349370650449214135626266131349089949822419038995177318849260552673996501881092034898249407930177502523057017948285169159083000438664496239990351988874116053695482171093337686812216254168596382365531086301945671541978685734944008958100715083536504153195335889941674606660664253110602955237216642138828300526439553201457373889520664536526576998057037551070978309557613529894007912814890872964737659658218386034623424422820278867106920606356634717610326949943936558010584007917671959121182520131783421839268783687015362554677370912863802085864324120178590687969065302340191919033655579505702731901819756231842036183382281760625688616851663273975210098576364320320884686373055312165952031829204771080938025627051726530334214244212135927522715698370427375010516381278228605446885491810917331770729450498378760356995280621245455500968035361427375189433845244888244145728195627156501502139966499714250490788097443679085194996673725287352456437734119540828405689190887434532017401474772925381125387239877874138175610002689236792106487764528928277849930818075070400798369997178117644399729275471067795079962117998479459907261740764056924163344820668511226024361781394160018526725412661007854637538482909945958499166409395041934549738408902227727492360944836782088637811028148558413385585982466629539689749514587940960010461785075686336111548822611598848689187155659289643487931241936999684928045610139225787856042885350605106181885151636277295664735648090243590792317200657489214231337240371553964465068262076531971881402326178894246790417093473882648447262241169501783945282745876371730007087102038856454299273392852606418725386499174250437687997113123573812277553774574898186210964760652568461808260768178702651464429010108730914775697759554483589140106121176710052809196277241307204762677686436086798346445887344051101553684631867565790002001645762793272428477290724931868471164495697608819380501986758287875901596654135254514972771007213078804639608349328661818476920135283335439283227784998567353533003310915940272940655808701691221487961014494562845980129589985114193582537385018295208726601060968672374987976908466536649286907577858831189797927009400957109159612116509449580573086564359569033918662460458711472366906995141247228783113665732177402028363210060176310713932233480068583390913505194427524475316780561493648476364134206454222412897709849101199984705367323062648696892836287606712030007504520207523690978763767599048752229750792657243919876919939060015962030616848579502121942684774991244832260344074854243460286381835578908065304781955397809603952680864362116189533436373981837712653077725110411793135573526486177126603711217545902637117071378801217230693239420933825836343175983787288566924469161960546663570707468934158004676802690550240984396086630300292677568476948452121554087583934638966612708411457951621331162441951557135350973894105095270318259258599355256820095208334825174841946754019645097399140782416631357108361547816752481578251911934266316467395857872628626149856210473024860921133365397894098102181571992653605301586387285631752596691722063479869472904722719568696613470784131481615126147110829813088481904332584182359172627417711841376133951036591152775959622976891998601158491358989020275699871706471443104623703251932996802341453731180833067150081028842582256935174516167742752915920477294116402352918486114969308445084955073847169278259524349735945900294067492050538933188637165035018374595203287150455265596694715736826976051595772701594137235036803900187851877819494249619642528625462273284935550117725490364083751352279113844744996326497610008456763331675063146179416304514282891295484049137287023393092837740393363999417849032888287264625352041275718551400458062669583561161078443055466836994311704685576927623463633731227299979898041201701827764743859945503992679922761238009155624093900222300805578844776916560995086265731848630548184501325476342300546032773875631445299648659728966910935198302024519977964056049591012401711798614995568652083322292365324467902075763968527096126100332906041715387700474405482940850433399473608205712734088858414832572190281781116901522319961861198998430153983797665969019730319448424959005431761684964390628053660971129314746033202708396884361633415033800477315469072022603256650748133200317892268075893355048616827601049032695832550732786301009464885349608740681443094225326233081269083797636718739050197490463782178297520881401297313878190363745060749132849849395686338052807509083899524823235952947170798031296460155514754215657672765742151644150904071403015581416394106408046510797510346596028473781653398089973600018015218450377566029500295249271696461429816179905305598293205912606713553915359676183818964763394616263224362075836650643468315083949753131259581423487647568297738854818967229342534090667428469945002506121459301096753259589054775227863017363486036421947273238668011618169692899878628368571243716486701945883913345278759382241702594440188070743439019978045754320208166706046825134366816018033759330851904305341865241875694610863858786556553965627432568328629305778072458447239343584957178272874765068945266169546096886761704783495917433811585841342429043549287070779800834669813622741853558903668208994045947722090187932817886579033383603921449305944447420307918425588586919681299912669717811965726233048858538920688528074430896973990813211858134341459094080933700898182018630914046110991298864718666771554702472102683513224270873556349429102904249022072260625250338746150946719462989617439366490625642569884054145508120839175354355491146793473629314974984454415573055295482730564443108916352632466040959182676222413834283569932873250391156813309417808112630449882586939742256334840220220403717224444552096569520322500722929081549252522220852572155308325140540638136126301291833079758471919186099094448100760277321450539693836297608180057961373339124203556419787607699344586729675100015095651410454334972089860400217344246081147139121876126535643258295642067939952844599056406993392273560360719470161584464769429592383312057897823438279048294871333682742216587183780169016309518204012363579539622687436723419330441773610616026522973716035326579117937419153256207476252365139113095377618037599389011220946938504689931915029101704898146746188162808583631211575581141440836355302456700734627336386471005647319702026520560999438899036211109008063701273481270576914560597859720048402799961897366623771165656731900655722318420493975584987397081341697183948945945194695235021170103164190590979165298739791686385986826473974274962669301067401034177016059085461404515668561077304511261613365235277856672257154036185452867189690370651886643523366609248716292303647759176388447025132456851957761087598376075129646965490906660101614743664475806252510407251042321995916855615875797254791149371529942463216561634791347754302820616773505336997001934825283791889780472941158515810832373450408958051688659676461242100239002292408991278364817792515676292930049241962974308489959083279125286347380661943162492083306966393015458002966725068661916608417634908672698741340485204510900963538633135265735283230166175615076214529425259745517670339111764883007897236983203415273856189895851776875906795325611816805102735506343333068037114181289123792419424807616053863836957669901178630448101419217488141593014480091963183728680738038901934312658121461704694382311344230315644853527322604315942628662982331012008676366682811564996305228464139086917455906652018657064609872215433944692759986450343962918684251048534082277204096539155900139988776604326846296080407856784701430308243535506897486781938627931505946977528912710224301252467784623183937945448793412088509566224789908131924901165915161168574962263074426316644455862825041330885392158769679743487164768452994375315265574592636703099383250442026272009812003493572313211400413980239863932923277164007507956144490202934819053656216104510501522733919463341372767708042314486415778104259174195732212885210676648042563744351014069077743454384910940222064021202838368082431809038954141951523375067650556498769407161424849767491297682740325384695801742348847124774673670097244241897661996687472162703698954227219032442926903822378421749739641549862570950384797645093549798529198903632035596741016168701897558052695847470710533186506762921007995801221189532004176131683604115497932901889508953253054343554367436634800823815633381821390488386461622233168215407607213075572534088357240320299045821399227514582444564178175615286763599469805767999074991353360281050698702611645459332801109652997972758493318710392732383584939500132031380480128008405241495863018446367149665909913110988833715184313769107143685919470615990253886342899178876051291654313390775765874623643758322885715872407929105418792147326881312515681576585912654142075558445620452621599375875340670304440444608936674070814444042894405727336499809893614724732206510334566342997735433645663279588051544707062201228236901649504674457625422218798859637351084338394579909003982358618372344249654513950994805279631942848186661467427344992794752166094276775861645097371755780742380495848807929263617416720028916817133482750020217930030891691780264361824565385645145813801393435477079367518173624563337346198770432004372901094359961301723439495774763331785176264419790315196974045782194231412815138016899041325792739331221639875461280716170048777104580520296283364885371568801730039355382857902485126151153363022432624465509968588789844143689207169445185301635612274560860946578321672872375312371281022673257113568471622409941418261500178729958018010344555885069038281141452010331167159356401921943122036547678010160905019837301245429335078660088590788346074603644210310241032862761313680012926471074658117096840758268634532604926798556920465415746997550659860994856416674726242977452183748769645110485475075192320728043878624471060262448367991501607797115544617513496965656271834062681480340760344952255886011491347918055838389381090140612526311527366188449924408573665445194225016828973924819480546270948961029340330600318652807178621100794039278772381299404152243591745166197673652662035685179882408574435964302611077901082294943458324631715955617600093481537316517468686237343937795855802469218316510719432513357070345244339057332065049952672834476724092764202569709529149745012929850167334765014051822527010397932110516236023389135103410337287210964074598838625587248543258334206841845085501434406636690309484007421022584464501952704521626423924845944481325602582217550207385904467447338533167922774677933398773993234165546714555290722716701703442061532715192560247685733797007368303915701583596925805946809552280309079104029548804156994068667055715651834137618327220166356843573816431340872492471565414611939159109128895680074842559839733649835534188458471356566451706904775165587601550141403185009074696927817246093351356171129400608415092103941448734695805912164958334270205013989923400988155807140355751355066170430662031751981664937628522610895280625354195299868357709260800024600021503032803928164890264948817850519167999665325780457096640844560151574431245100167622685519307729795063025962936579528044329026516417506708217883860895462900984761714690207623381766499960152083458486200652708520313771118100531407837736509140732655385338881037115071906302173678411685964604249781841748876987085555852167245367137357432054221629709295293541278835778314382421068328841729542144511386762769472981166083758021892240424234706624677029992700716351275981278571202515641245653583544062664410069859312897867752491319958479421804415144374773797123751779348183324793316445388409640786434192824529655481888970019753349340044544723869057315793804174159161875075702580036662405098148269717679353608052482031656586681283480494890901663360177588171496438424218070055900305708179922492489985927514940952020669702288970714317168665462905821829060990562798378226490775796947049825219865988707410636963235610199401334219784432278583934364329204300712645990819317808559375368968544060183313067167753221573846499591674456421235061242200696390436711683906256935767016821461340484835230119375051394808894192744906128633826257674476146916944187396667578150147705261393846707837709822305885632311472988545211017587637063367724172325465854724958775231884012219009645839755446117080732895201504292522088327108803571436967413875480972285474379543974078563373647420479056282529962284331521160676615339179035189401016373079210035300639847347306611430825401028270154781950214856054694449386794791390177361162204584252487618233766606804416539393711825732091552567548934904694353464093693403264989258647228096389079856416156627661295590138498183763203350242431863182512121604785710699505160651021620669067579682819558527789001581726415881749305840146230082354929499307892103695844445066392603164571374434024682116311051757427608563101651270938695933070822057210248310058938188264648670057873264627125930988809010266828530106983861208224474416404973593045863526650816709569614494963851056224050645787806804375680797400782255873408293000596738090156320712335223310070446546540641309027309229734018067154200829778190942189678141456955293952562552600729155043583618376796348725491779586306379098245364021926101001370112602177362552934167536663642545288047435059607637793060566046580472022302581230548241821571048585257835403596213807671808117925138741313648279372303089628452800962974636896196037042713653127109621668437385517000495480411264659594078827504346112449977603912093744727076973273675921296869564180971643998260058632188527578533469375540580153825044159350224464896597336351130064818889920161307781470290392802682302852454917810121986283226901052099085280398178747072960825541618652017246898325659843983657420095373990066277052688737471531258542398985098285387945643205785369658831387656854390241302614126649363670445328429018332077153987093084522050849903107204833312221492454802954214157473588301099489493796677410610049094581850763455079479826541629776646137857034684061903045783517042778732155051058773462742623749954284228303094908839973467441131697224449181195216231281062184895618561495130835285610858313355396806146252275593483587183995122710919841698265402016190906889419601021263567162977886648820955200990562000255603132540547497531097117529505346171159089792999440339369270039029564896417476598261356586284010096359374708909353343661077396411030364003457579701321495051117999162684662083384143128794240639877867784560359322087638214516553458182151723091005653810709586658450988826762543408317676764954472287751562572872920799005130840120535273198449452903226881228817846098329629939237191040457026117119479422858198854083147300059949183893244544101803057152856106276363867079942473886351630323587870294951817035333230586716512748307515595740991256697357959794478763075664759620517822032485919437985904729403545738971161539449908597424417228463724759158560142689316017095902251811835453754524569521284371186956618063316253278473746263453266660386273030244675672417971901394781112450578341869906712827769404483097946534337554202237720861003327976551957537551852863931938776559321494459074389695440226960216630618821688176521617983137362749151299598863612879162415559105587698431230676414511745061659907714267076951971245410867073665724464107181577504013678244624014698514026411089125600508647184454019598150031597334577305302521229330041873254194991458032104051755113098362570353820160996207913025745983248403646990900098109504241951614674828970517497845859630094651858288561095236687849432751724969264477887097684902071663739431994869552150754753135026404361111696659350352303815488615010976162401000964844397033752866649281145385048924332922989886616697149860711153402138557518569999836098619930002859591043861530579933545629301576872581276988415053021994121463232485775176710177360767558028644077586717709336233856129419916585667732774717575779258934283565836192452015069196676759709693006015374145210562039780983700144925136948811656724724884743858140580488128101251120868664438456470194120119972545292458464961835345909685731146914519648481950202683350258357022011156783504592344659331557908599079211755702164192004728128614580683943243100514076407856713212533198366037111768074098175780930631947802886947553864138344697302763788070380115788514224531564660766915151337520974590274853146973492988358823930244021644939798748156002504472197213382589642415180301630976763013131127750100139277403645474143885136731379122908057706694520932102307774921858223482403702109440100712151094137296600021362924162859634540338805159169205256769801394257894423339712481997744656292272640798533379161093754443116319419650810384194942426037448103344329627170677390375647772035656208698320307070041797175638433360035130922592843583675635249175980040625752502754458924283709353777297507412476799890309526464787341565769422809454646524156813892420335611285934152160833736416087940122644120407820094726349885390527333862335552288834477625412411165783487025562462558608675879810592364788601797913157314496135583048180383012830080470269925975258214126266731700481707429008037183031110633165851491934182525066726327893053935543611999303981940732261356861891133422324777633509635331544706563430987384358455160115593393681427645706544522495982775526516316901496329551457096406063948169194267332369255989605007654147841018917923119149095145327063443474068855260621641518863444112430894452237484881728845404870247089964531441111172680544008088527447600401390994762037885852854189782910302348684258446597401075352073089152564032380828091304565706511656031811436831820930293413494960090290988906035502148846579628295893560158473651821895883616517847387171512493663810271056443750133217603523638373603719419295310965206245725038546414776950355712395879476706766028222139314925420413945379872616051278416202688017732168148219739924037202435088010083774565843153058426877530714178295761855979052859966490973643445091394154644196347477036642607091921495665905129930425355882204580015926842587626404215174705349546299465429234703859616718490442059982045647337600079163345281155175989981696070626463539786910545292957479475856840518118475099813758660058178224065995638113264245895039988475403295588988396513005314424278636829891767283031810569185876037038069064478100260085338848309471214362566282572893000394058940878267253181719573017653772551955047154567544405544612768965797509705247941370179048641302536263533424935281424181970465084917852976064049452619623504078573319759774851203910756915971768231765122894426931009977656184233222584893854358698231898061867985744794579600102363528271766815066798616000802439108385241006736906218937963481009411906536339573134535739668878909964065078037940801758745779634077339913212791837744360220560815201017149646356020117021414038536944600724678865240371802776954822165395504129509960825018662974754299275494974984677239756088822781842051280754859505539938680311183239303296131051086838601806236502353928126231152639116025400692067835962184127339710715570946179233857113080617222887607423566034085955257102605281326508278872260595096704131332610277012003781415166134894835106628223086117190019871748996054937842599294053255816084600344192745461326822884442578885502600266972751199995531359989162370898655297246120853552348031194422837390694201535622654412398981426554436050051174997141674042612518603968979139427856830133987814087743567181208452602530082463711948211306668844976930068007514845791750116355400288799479822569423400887512752957574749849414754464751454119580162392532643052605964690611877722323661833633952537979731136678443714859940258849776923645645493509518604782182558233023906182018068491951656947166031392312232525459490020383888331954089549628960774380352071890329418735083348784366937012264343566333667161813097033908305715581468332336978128144646475932449313641920064405135416654516311000668746828502612956932452878264344150699488567759051855857150588460052480164174282239558672031418173097204257134278683861866705702458872897732249660203837151703792485929200967909912440823561057745121197959750721683006248636617423309966321881806214349367283725802723529506680383052143984147433469419031456638875125441170654308256420176580282671570239722048383807335221066993423814196454719817096524058382316042943559508064976197706896653966012484041223410879694890725654825728334444862721277368408996028784206321403403631527663316400828879294271272213867259274932564913366222679736400052416627896183229086060274973831123495274343643356801060227316517398007068482900003213646573363471570368423388188054181593731971042423806815123591468274811075365876280066004150833096232058283728944621956840473949986804547692540475046492900068801796903809532872181840863962157228237142840765803890473316289755729480839677473246186656497597618842256632994634698528676461127735687987805171016861749492783447590445485510746414968644221460730583879861219050739733413113758408326288625016166947854995267642087411591682591878252379959080046673346406790926114374306846514651852850984713831714861388823136038103708596946291042442265033278109561426007196635195094751342762722028744823645286829084858395434286425630779528244945014305813957267204338632171004708503580750403744760332584464950461268083202754499040894597086885157318702635058275661037920918834658678405041136069101762687056837631971113695132286094860040044166780094899437237859558248815006446929335028575290586289356740236674217842024297515020894658100650658001008364625270705574449947692836986757080884793528329377592894622987023472724309639644574960830995121250104679815648025655023669783291708590462247729656065666000001001527223082112702062761947608903325512033135044089506930511452274829723196944551721890421121857050624842833208174763919507269602487236349173797063775168591127400455878729385590080738789735181272350287998705493507040013137347967566976603042511156641150902125986582490723135641062444239756751733093280335484303731857638694659357430065642052479778005219328249858340511710787703922852288891405571957318004961559356381296826725399403224709254102563878432387282080435725820162201256688099381778411319769443354633302669236311857036803908386295604445600281956414440414561001039859989757138753931541142538175864899321279624945157886199441057845218632099104327089412402214349155087709370242227133350612629831102592902816004253419874247960324406656417902893249459248273975290708860390438911693832633434166138227269506894416132270088469833727420900903780128951154811627583846324240737870704857075273779182567421296620999010721266442813109143399215082550144219684936053236657802755104840748460945761559001498204332775704740207149544803459594674918650223056177844773943459316227820312487012853439634891737805528884876323307326783064376158361815291476609731593560440979819296311282115147649889099550270187411229871677801134373451833430738451945261885339713935137085923714036433782421573739721920101972531265689563565707316992948760299311238153190528428707852391142148945247761931903594748488101955174426186975551334678462450306541238132352180832207683732508436980693443351109033587385956089959236983240286352599481761750726159815073736899131243455431595836190627555440341391178028322866478676914746369593026532059344657125430476414140701637053981612203394718199256469458357227315007710833669611172520250488615314377516601118665516521858432845302614763594700344444561597769670919447661486158980066119929786646510741014799693542076359248509951034031639652870173707974133263022723293905427958705621322188633843755743340161296277526293349662879301690261046057035622180950743459220510741107394736706215398939879153174139195025850348836025390698703019375593546803401010840301127826359831183154073012162796054597703734864894921454192836472681806444640566950546795187829192432035832225323931565059478424009828528005374835770649897367668118672415151808054351035348760158390543343781688326449577353769452095505851996842763752905585446119852506139584658676845346814932514882745494182511255393582741213367393057739416575056328470202467470700550867408387894066029177307797911789269166450738383588382482235893920063553978000067644587225751572237286780969222253897879303975917662061884574219434068506063772608177377241056424644379121527417483760311638289094783376419932683804338576314143746795250135356972250517033497066564366041333925536043175582327751570508054728939515187111054122968140925493524870175937314042350300334786414877475505946906717810904348329129222301490966885805792411577633105760350152450195118197123993354505654127055403386198900548346858132956920174769912846463473141518481113271322478150948386270806387979360373568617020138756081655890640428311516421801776113063327196648827092055211767080180277366004328516011378115077739024841002856257504559832406917534559450960183281480680287233113579333402829191744532283462825349139447035506289115781224811282055252101533589471594125726114304352845118794343291534356656272240266520351604859205703897913963143901843613264369023415786422651782338783946252934636393717952934348855133942079540885435870740913106773676363296720315823894573904486754997801540427406157795218427344008948651654030682521726610192610048350651841716290074960840472683427449651683125660210505103696407116983152136260507165773183670355468822640609548879817945852606734892887786143871331928305208376205381057579189048782420448189006780243234789428936092255702558102001367307122180257868744706561965624079727720042390462272552959007044781824705542123384349334247670706422849295744904927140711495876593705766765550025887889030043031505055003357930186178883400406071124026422191503251377046550331998283647232779227289557901843413639556461801050592344618547248951573459311697965445061031862281991699728054386074613293640307388067762920934710291427692033652782180801373397619957373995003266999542936271561911946955535085294078990955437378684363643305118275411576770251415017949039928331612378396210457859125895848773645398169103280598019409771525166462742192048776299780221076888022182709741880441789859688396951738315386542949659903920171874881414351419327077234917407882690649869431523234854242958191050306760261426121196860395444865334342783503875887998085840656202690140119103567248749461130594021872180772050830540162323176857148843755935623003781390143268558440236882000691947693883420514014832292941504260695150798578648486927858376931539210880172617025766444800697746533857550457660097639398588151428733459556485009707395079806247403178805105102057500383691995873991067711677453053766089146716204778500569352454400548215937703875393716475597108150800650066216783173929222684374837219814775121386527806286805940758221960797389352935329556545408190617568777569730105756600672156339095814637065540829330112143802872257243743841437903849879814617763637176268649069495529132630251879435971254288763718372891986202811690989762312838017964855369600648038526991477834256129062494719058657604458851964906806105063413959601270295328724789134779563125485932942041340351443304836850057647418454793095440669711426792921345894641406016125918853650715465825955639456792790385909643347471955250575235902437071099080370411893993145928556445493324959900878212047291223439656746629282866115827614787095708901401133909263504199106271399653730553684442882168573829811026451641137716091893056061377714799484214347404923013589039454212531663499398448960140541996600016875772393010370654825121741820437172958468727627354945068543331603539083138069608430426263101780014110799875038257017008711132302777379216563208408620659650696228501495634182635877328505314324740955323081644517033839193887307498870264740799266202485383647968708551019551074575691166975975015691616407690521373818091157078844756209036794284947092187326420428767918395538039289812300798630089665610441879698483320738654619284200953984665222682220368460840664920721476294765393070941264772368226669679054944646488445138466337039304104891485459514869735728076478146442166322711201922895228392164234926286761718344120240908694565723983747652030896188065539940050193127562286245275421554973854859122144980356044191157946732308274872681785482713177148867334665946706914120661545881017391412945719440315532717978095233906229858801461457304488207540542200108382992440270321020784960577896526465331035366833258387980253482251444001613920323308418875163067467484479530959832957216058950164952698302406177818871644481977025721598087800916050350593591176597967095741006333197645433799261328689376988058166767508163351751568947408102543300312488561144218544069513180120296232677339344750970591060399929454634159934937767812115376552921207786673496213514044254923542544154930532494556207927121816136735958847313437844874240411905578555928646230836082345361854709678770341523530465851447807627004621022858010499584834159126634505729022261898724307918228570477820440283579405683539744648599087636433931698608575848108104143784691710542273607844034954372788918786554626468762680614801815896532304473131184446117107675315966562783791656004143786982137512789229806848583389063157524012715443004561757195765426574615218620703533408601471259069480431829689924097938329205848000426947135325413830035421377373059206394083229466177852397754681719975327606398101416390229467650635585839120254757179989623191630477872052373069264050757731160143601067381021863745524236888446405998414504397958060973831313132068149320565256524104728665831766528403225245602885178744403239448994703969759001368754701292619496256039141292764138341669453344069113828924896037564190487561891956628536083415014002696854096802286892947030310764020948281326641231087809587671462046463590177765271706946719078928094048078838779250567144145835429478221989620904345074180261638189697339596211916535048223527409775366354557133337028112261035344958213216963529420538712219181816269147847464848547438857558649101809357608589389020247513686546560067833207752240089857709624584041951300665870042615671488663750645994077624510714052795661198055081241229481738610674819531415554362405686126567058991560124648583538188561360543018967393291053009012303152751048763778765919814821929051061739151380920957840396988027946948982906370854855231124311778940316026181296854988053456817442759365559251383312685889001027591758911241556670440614823397712667600352403070989337541151655632168856135278120400901703008281770241789995646533567876231161494066657114978968179353284266606171931125173168938365498661393869058191821781135867798865891599406648762945581463491224683802758967205476611248229089782446344670767707433183081866497974816529057294927524607450969510440518708715146703117643421642790957085400130723034856214207289581415117192589381273932671195750498400617326404191651108030996824960863436970689124627915115523050358165831570534499546500628355918385113483134520270837885224738806529726771257712687169775860934397120034391379913355792433264786839613185640786835979762608879919553649482831133414989061213606362405856543518777231452632880263658785995959496132414732421871110564664438746147002022821003595334064668845868489042199763620115957358351272694149904686594395021944002667968450336691970448086517103886049702254886113905382464228961827514633164595623176204537704123347364251882505716353038965469359077972242356459048385516584260998915757903075533889695964487555756221941734593894012181287336663982790353586489824325117014554268481270916652588640566266022094447132044236317503946153023708498274709066396719551311367195508718081685639984330416996328440958020191234487890154284295351295664837914116069170998093288733386258803424459099427038631561331943149388550793454597666104742930019089997324386756578553731904002007286932840505374978384202834440061364340073339262212848572115154806832033281611826919123774543800988977640932294987768738449662549363423327797766150110668838568837756950275006856880491892874986798759110582730083111709340555544829259683251027377126244172789422228241539449428681883662461690607418733295927310146169226724028592701491367227742128170929656922229867811216525785881152025271322406131251817830991668428218595038945441913829357842225226497682131490429778201900523609683278220414718586682477063085077400007375914329835402414419876632350238244035292340587709130579934496672483391744558069672169454633596657400776273658192113360466054209460664258420409036153845469773508606964903467189299161380365172219552115016456973085305760373349872576373996758415693033268123088558564827213053858921151455513085300473910169866624354586933971193871369231638401733490006899140169626226405332169682328966470321329854785178975392023842831322716775469921262709734306600411448431753693025932075254971723276299915405602154808601342700539416012855770032908100467070344830746373354177506642835047885679362254585598929921157995669904237711511960357132475248242786757387408392660827890404606280796090100853031605456789911806830891605711622155882890587671666120752571317026297458009194672997948145391429476901073771208558657842749906784309927125759840536852218868544239349982894162368503931325967475823278261121043661303562101002380031155987629227550168225772121837199692237811590064108752538088051482252785943857314878291327592235986948577061279598037556855510576728752330061630616714881686713699490964528085633883220482627592189244783022704514547114586202642188321189518710827578221729520096599649168975999456253947590468490864975389450106444850874166784654057831757902452244844913609450609591914480582036823306756313231451786280289941264037069260307909069172976929389180265066016617883243308136539572742274209178830803003330590289603524539184548278250006231036506491381517265040646153967979100910135631975114486711823247746044034689105545889162991509671494060915074391592235855511407415653915318629442364378093220519957905617306487790060951480616569715387969370276965627125404145669623659858116446332475221761071159911114212504447147029140122102912743249350033421414039219245953449561782854314734305503389985746317359321195474303496418138221234850033809284865884372389649996442534797756224424298814944827312915096357941237939562013501577527114538376356147513375552259137962623101315539877861347031987072331486945951749945074362273712461551733595375881171546343201085846812789172724145845978656474384806246036750934146261225366537900538011264081908637094190478538358360342240532496219033121710438700708767838451823809569818024457180440735091470766075589749292597192296944014790332717310469847751630054715882676281650900509625525404428795881887512729840229077714334262638013505828606102781310267077089849327184641648412141283965949604764115497487366123551084843317824828406175701282821505423393821677175344866219304153100720976259032692514156555298292658925608768596674683055468855963245754055819233943050097269737123494887986886083567893073765497455283587112306006441846421296651583906919857506194131266221788825644899975314820158868512949783225126471322862303532428946760640880885142846405093943848910982149908395672343758952199106161747975549667127588464377698731125003582881776207735777368043109631902517110412523190590073144572180237358379846418280082613597087504353916212394603786351895366976092695462274875941814255999157936530656974308567109417495615841710862005356469803391248479554360280405626044244158310881667472308644302075910848008540215636970122744049411501721745054907066350693081141673593889928465706087630692375940470957419596159682195950699697272091737685174554213069330288648482109484905139000173151204771408984245801644625476472226513767534128032707280964811245103547090661117604422145383455238394437598502086674189258456443063452207472577484675739230238135722026283914137018883263244480057886560242596192690626522694118763240732001484690788766204541412768094050124258703536721064554597938350161894997607314686288479698333382125566182755818003371792932972339869807352841630014337364648946594929295787148852181601653391624755712533708077784488105679864959266558975443509169917211636922854096169606291679508831414187724361035935405734707507885669606315246702850082981454278882755995895913511917915737224772379910017081389388205703215573179890619270376859448224203369025382780231329952210003425652839599709898281714300190542263907710354733539043335825627282764221937781524714170103488064471081566431810999203024469058780336360109272056823188015832236223650547592084674692998787448649735699250062348424370732360008902208532666587075172227360388198261923433096524154844664157583228437768221597257324677892825318504969315658590484488733722716650012585603924358280944958379744547420573389108758600879229415724906745947157442765275110730243606438099304375426175103008249300049587373038651136906056960296372452965898402349793039989394338874184568192101782967291383062276909095141292491056804053423476184426684390337205872033908586142529693818331677957718978217216638384029693911790148167324823375197632389203761350134406388435255824051142793939576485141013688788945846139431277943248802995573079463469283258270851758636185362637822578150181666862891959224160993731495926465448509024585257453331821944954910022067880244523804605699371094107159191345902742074496360625175872466225504986270050337873316835058307915905745869805757785332587676248034387658444799917431030210983459616222871217147011016097916024299122108695232546543994386349708792360827294887845183363506469633425529315941019465440863041063908816233101272774069940494350708627570935677603936531280467765114260611775180767236004246691801467202305152827714400276463572004374317108072311904738316806808823973640059795004398011164926080794637008676885272251956607999535032476115329947562160878505835811444127748986144828523269755393860899099449749625158736178925204024641505260335679911570482300639996235512941476092793874536875547795716134247121828367361469438953497601360795585824903659880274809885520829836704740197578747140380648244416150398796646437945770994450714623013307565702699257339910908337720496370457395959738288975193163414295732366277774286735905410141576907451571310226364671768407469309959193084472809014749263161888104984426672579615921309881502352547011887856220171593248600012400022282870769954208550923938265655420230123411884902996104293754131674426319728819886654944901187794572228137361737365406514236050994744029882371026185809622556913390318626415788087226359602819097918936629025182280225218093951632259838759414036838722121602297478464702357785478473797826737688002704895735980509165917753234088675915476278901614478196287620800483940748470736213587840026017630127032854748119769733284424587380919371175265081873767090782445784833523675835517122291167660880433963633114727503592280678722017137233869796738409693368696979375253747640447343597425645681731558268032172367631611922578909647431992610560645051465384957358878129723692928964442728163000136098051402413186949998831793858188272547583061769449595171844355781986927837604148690277514988699803521834189810252610652150936143220434212267278278833329824315211534697411308164427299927802098213384483300383706069658751640332195426683486491710026968844876836427480697313367459112880332207742778630287431508310020494825943893336821908283578444679736092874894768091873960144466158856287761968258897626483700190815051737007591591800836285270518985759385836460099084207082349777805611551558754158030237694416512803242568220043495023823342559310107153782212564199019549979166687187670174468302513335318466762668878514507133481601320615127044945108962211069691131356817537525150679132193880051563986687790277550280987270770750264697333023468695552744292928074430519606068450408872346865315504369752098114355477216402792789620005282045961847252841364894844594069771837779853079444719829471417677286314824695964756666388642603788764066464598185213751663984305772303510136904371523457027254687021079619094603790868725636932183162956524773037028637631609003178771417494681296730545406147297690223895927150327166042111187439100266123286794345858416250908737234604930033615122518556090278182132928255119222873411366809214560542038184620972798288751938715614235168485321959749697584343492510527995342116964604555394573399628487633738878773498615019069563057372502750924712884497183585769509303198511177577466939642315332657547194175191413588193403147389452407821446527691513056491726922214318963988610183747123855982949608161191329994024840369570586762985287610731125300195508077307056699757528831501892681424380548427111859378105586156423685938503496429968319568121143057742017462593596371385830341509003356187174463251856209521779892368494076847626050741865419814228829963220357232777839726723683719555976354446694624000669396010059775090375700310777335546851029982961724964861617280326723497088259663468039588296310415291034641099352435972030594645327904913163643615300357485114784503920352628415577342077088592068057070479095703029585826175808222034800301030461048335802271709101169573572914164792069070228203459681334329111792220782838889316588082086635477901292418587734085373406186959718600070097578925071733405658556155160041435962971218746078730993754551670345167422842169573229708321688611618408953982677788556730131344228439387362146222887093874178849462123921008711534664255516637818217235624166111278650189340702761256973869215127405295969677364028212803165099743345170450962599727576977090018589154514031615618351950327885856930311664165720679469684708141602229868490157185601769385767171639218206926043999698075892064101604141701124745082506219206628745047099565631736683193553546179149096346547306925504311770034596709945969434799915412365799679017675985027299994228619942427779656883849871789694179273005040808981011873146307642740023365775790571966793145629231107103045129900595892690458669993034276372167647010567163920315257619156165309342770856555685436341378238512768475226050348209291085321791074411077276777222444964276386063517385391551767573077773557149906522532908088571241126680965637114891303287728224395923728584528373122338708530486823615259787200049845401586480942086747639346778524294539397209913033606829461742557850945750099853086152461895887117682071745268182006768033083487130493691075013748714805742141619342857453057224410832378685008361357971300752195837923853064661986865145637261778906126720060924999335086056710037224656586395233847996667545438849306708922999292641831245922193253352727072418898300147887893573374319051609772521697550137270337735322368360058692893108150606512821472216913929023129526564235538907147528580688331825882940080046348611549070664961345063185589380832177981435895230995752794160828691246949477933582803183788347144826863902853486472070311379963819302092480029226639510571568259280640253917292589153113873318011751854861053763301853496441678517595339548820914951494439115463204683897698028488290922728928690237730173962809046274122702557238618342914651837394996924849287318506856612884181261467754926355660275028176817463817753240352638577631766112156148684645930126607338519170477372195983533077085475791929094254350428097812163425815076838976643326031372147286345020120476372922972401967129471132579720426613613982997875446558623515247239102351453838180597439732195906134229381339863473451346653539776445889073311825384332695149686155141247830621034678433590341827667825252424343953062020212205323777709872858387255344323659361242542402490765415016737950826788419670051242276097126683337920355454378668485109740435380176041407482081017878110154522858229911607766293172593660103473145672188205864573907465205315192718648603959954860332605609700489465147177181298128980092959476235154472066207765487607174875763538047282523027730365513896954844095090138599135052436724445278398541980766418787995296914895438204591182688467515701081910423164833965226603613576489191902302646975598501932928350093732095911996822516696932566668348047557832140917880634501123864591323297549547179013215585895127045472320282401369915080955110043286103273298008470146063550092285774422960471830144859178474587676043949024041438748132888465945575837022032378804864324724114412462887388710193979425325163950522924074580981771672260623897843601541424378629442332745267608145316695537056140488383590574666892369133203460897725013084847366486469431958171263362304152873951922167318064153597177269835612968460724256231885124083506836432299317969479946293560716328268719885284086827581507384904474795032243818085911835565520089291507864258201439994104973474062089623873453028664875129938193433174364056768463514701389987684425940882693712666832096776699796088787753847525279412288517110786556545962114688995467899737618796113822855234888762740211389959458795763870653304278473985793959548247962266950378946735190341028610437579160083820041797854776023550913271693888827113541808065299711292754787579194023623456478218393454450064734982069813976970167484138658611829875011207253079104873709555916185025518930275770114014996400355568497325987628646680764470152273394422808858606711530162969661918733358577394357449340103146236271188262880939502619578062809129897715216473183478652181531632314218338296504116235594827885543950560788025490862664420513806006220110173268093979898856128601315627921318593410474643893903128412957012973147458258342225821656831356816050443920834830554646349015741772266036565550196651269133714086799748418779853180918755945822459231556523617359442605286209294910619058000787950061882522506585601738497865455861362593708920194274394402357999621523063381159678706673126135164295117533720639552055261585861314100322627760762188914115905831717481337847021141888224543108339486770331670852967770828188500896781237424618142098152678206543655132192724947995641585044695075893738059213839419853479055381135833035935548303095132321013843409244613941141902277768271257285692060606283348830566412295182795575739452411365902873447432985783798772401489147937057198027345470696531137671206261988112169782501832879357364069433818141719430057360159192981895538188662019279395997963175198529579673009653903369078455468257148785387329556235606442176989550929632545035580778091317555273830882010595921513792657751474058463528096928831495021059008911873561954165938062740526488000408488937817533687011244885468021881627454555450319700556390116338251809733838712008998969746047838076849396447376267085578817494872155891529439659132019055934294042349467253167917867099524324113953362427744220369696450298082083732366712207856075212896286285586052887468557406313967528734538184466161685922161773676785715957076853236788704880000990347439904665787826931120355799813984824047130607021108287060486893738060770290323816001585468613128900042612058872454173707676523813242270181686653146585976373551018355937685182834662559917373454193321588190712980025881648962608940662993244942081636041750351092795903606416249068693188004011998477638903891190317535391040481857422087548519204446540171403628784398258335203021446924287528132931690685208393321781732784777580884033513859292142522103457292651167618270354483954449215969739906490223765750904647362498926966323366126196492668174447769718812982732089843522055521185287054743991032607795451750490095305711363603181744821589193626911012219972331048709090649835342574202306293063022215773304343593136028456518658641160423710556216108656603796174424326280553491823570255928054345428157591311347606906673568600717300577481513134420620230335882180065996761753557533796746785967064064836336431249314526848734381635948226204216298662539498684888607417672940467977919880269234576257167594059600785258498888351502647599308819540545221809925846040170695884061925172562414293640124859087321549242872345040505186114674627510206754203590448623125715288670174362703297014113708995169194083494060935730946172048964555938756426920700964535644401120886013708898435064138691610645196944166369322478263517851216772190331833873612964059592169119024743158621058434253286353955030502210402324206802738297110715620515919981545849013437416516761390171371814150719572694440386046189766281474346420922009407906894052242012640179903465735950449518271199226012988598138493631722720078852878700787508428044808973764034906608978479985295708223729238827474220170829886458563081570230694179654532541666985323997062455262286254549626865470300751055025440431898789133319405717326492873099331620277204733769203837260926074318582156546394908507756834955155568736718886148904448218140622543165127518517417532283624634132345318681044190433939139007091171529923196522771122554393071369252406664919290930491321697868022100018359346706478405858289866470349760480157608997423730561616931541885232262540757649580321158902155054201543454491601018887252205268140713526895670032297030356978816749273399278869774975046826648891373757225922023472210115631860962747309740182864213800975576414386243187291452952850940802792325441472066926283538919627829784554189407220769815954935031689536238003842790270513336830499869047189122939141003730652760971895779435088298757937038409470324490626576478470345610154169832451390804526176964896904922169813625264428452933567522096005918990687115963360935449783097177022573357858511044691139671207294007097983502985985460011427434930750702535604557671012864865558529497466025025356615133015677244801222905703745164986933771949427623511247891458315852000102194019228746108697396343335339068324161872478275950184702308104427421014079087753846532328403186678060867511070600245487477331484379067901656824673134469333794272009847057023402172456272213000183684889216599132123429565231643077112125942507104491666019876788869477729730927494790533168326012302227461391089682853292799948991335015803238771114313141578030499376907489992314795857049815595705772633490147454869536668622368912956487576470798970265798218628347394296790476231140683488568841369475926958670679139357672280249781198871072664581944024144901782340291782933141292612354706930107505982231408905343139345902674370340838662658059396817231599742147060449491890701328781119522078517183852118275507555179942848749490581751504430350408934246243199455897776240083192196062373991950502119348870225365875496738040080125953845755641536505089096546727191706779619336616202622204225143921131181362065856605604360556011518608086942686148656784280489055572091160538528836586679430126428435902102413575153748230171254118338984667934837773086589608577587806676240575774033642697074612645197406655402093344417774735107306511044785881707272041355871298696484397879583768187633587272927853824370541407321790273456561794932744633171467635062883330263252309970262642669299295993391049336941423859170716117227184429184398195947387143490803068711903042409169146663395995505939926713279576549076397957460417686028705856413631128740339296623972265424307763128075690294091803281462367491347882929774175304493338734781029244852378001200296191465093694184617049858529186492903124948750278091584293775562380985009533052017911119193211249826933344547943979440668318846723965215500448852435069276815730443950314178200894321266651669059629323420995480037689968035365205921773783703412057970927138339426526687071011318117280658942316217580295596264892045633177521236687089035370416317274128663613867882226335619266938317680798254021240683061391190280109134376768793477818482475340599315522137468005182247427876197299287315731613998051047159776533825370066087718793687072908522087320866540418553357456183365796926480588720538458407628046850538378932610149997679729581849144839113350990856529108248554725948467378113156206562676610044442345875727011804204956921220116055948715071359289780255538474910662215708923367088834938733772549783580472478387741589654732120906462915631579870028991115167710478548027910190169972569966325078104350337773420657630662738331926590109106426465326271192680511780889397819983660946457597290455130454506559370108020179041007785314872789482154503433860461958355671681249723463173948345755375322157873765272267335288101473227489226372069307991001414131041677795487483087837229047070035905461078078893987155851386215185540105099056041772511217013757813405205853630390894556326283267521605489220914554733037803327727846032881781504224549576301104239280974446477709350485596511432595040663220559527770006807092927408611746338673781961108920761411330985302938298291409573843416893252221584587565808019550669488771346845911922587166939449143691209274735834029827810193961032033185162020818273659787714047069156609283404358345660451483047904496940157381789627269961585748746804020475936766548806206843576114947659801606767814955769807842607661169124131165246514300142879438866938735216979729843112877299343119271008513394592579330688879351349261615282199815195418012502132376178144665172751744974355888632173411375503633132690746872360568307059593518155109313962080671557771444711310976994430900129843820580579464250380182347043467553183286272130832813438589152270105623450372164681796774282429317484294702650221779369257647476313795685783409809124224653995828843951733391250528955532428352873207440074805340961612950902873983960733234736170337761904236338649475692866350383409405665842159077457288351407523624464993335767543881483852877767167807113045467526869370221668910177546053679096345939245557175172993181090127304059677100469822046872313378687592354833575656024037690553532207083560922226860302881590295466016120585531402841420152491848848120959041608312379495433791029771115150756638744928384404982449824543011975977742899112391799674798354453182801089848372144938855123314012869629706684859874291210986557169365726483858522990348057395649854596344111483676717841772324027106404622912384601297529169194761478175293126545021354942464380952677417150430188312575095542917598133732392912720654653558307842850277948175876210808481785667800437743126890042503292123421133889154057177534818998420994006336728127000644139843766379092288912886008886167240936750133805653635674570292188302705167414692245751619357496856617253226471126491388445845482650454657555403961538447871028251583372402091286214822929396620049552855392304164025027183179068989160872830003132785908387045984517383830429649529628716097672964403557797889939974952876251718927720918874539854933385688051423273839251555457039214989170085600351648580363200354883599844729788940763800186649882588289531991759549831460297543867119087441405665495739112793059590576690312186201717478079033213617771081603686337331698519509946203143380733350037458137302256380048164875545067665138856781148332840947160239011609406387268895516788303276968366585539331205223369161643077029361342315935445425520991593342607654478323877444174596995315369203175815768075963704240652411131892130620679415567915591778913879245195735081121990614782582973097666492174868738764020630123692077344148850972146671447310594191242406771532821802003015992377242833118520471747424714361387777847330155331930977725815781391530010855903396164161183543359325657473297387337796532906549197847270067772221393025760511686633098383934491938704912891068325013936712672867036785708086400146091939492699272097362320753880877757804627261861411833883988399853750342458203313293838676337928356818652481096219940293838241304380856666448584256979712363182343469530139819815310601624287579291963488417764136229964328628322652485869365689685037505205535049639252740428628369730998511908425163960073245620800889865289545512894310948241448082637777306301259362484749306980775022299745653404443464222802567008824634504292267874023032856045557420924129219065579953386814218929978392636325524382180917826271818817933831218914927765616528908550453385608254956700996572985321376015199807760071539392263165677746514949157823534702414661778150942575664555836547863550765269519678163661053160251131902775587934438069657923731876094573479606011483804600005305411975473141160146989522567100090648822764596716544181673659673544529574753466698420848508023188134641475169009006776377286246565308536107125694943777206187616965541560609028897872704565819593369277464414400809174029628506885082367909447082887158909394540860014193481528536944106177988995951853055225002453501676906787999297079994476879237696368775263096631374678951792561101691935748143170019889126119682896529981085552711596361315667710344066061655130947019797718177588966175545054434842064373496231856079829425128693988363966591230419714599044286162638879158869960378863783370684893948111018120579684044605368200999648199211563674121074408796191514271500544833011250105009916631809760179742283775129242778817809973094082507111299487072540540593337168777217593662266588328973765104781904973657854012990211267443714184235060939040136745057908351427976447929835162464434603692934196727974154084269449086203660774109480886544069082844465155601980367069390883180702081308048291628012331769220199241763065243449595271636852845532589056026342160834927263446920400892217523020420830347906228688775487656023313442857053590407460734944912126635311493836633525141095744695771112790409263348647813798197225229581529643373970612610988720679746606089234445247571124236383074679538106371224259872592196445427390011805416107262458716862285342027630867311521730840000523139318051784244552260562319257153548847608754561377555268137698921256678779966705383567753895781381337599663538671490092041402824495070613988613755064802147406459446377963744997901070018415187474614916888675881474299055366178452992455236294045863169839536815351245603854671037400390051042220493646697956910986558072469759259456352359080157407996294481596708505970109943655769406539649196132877739288981601000171622138166825460756825454318642219694779447653949808392852783021687426491204675675614592752811489416743149019123074980125333482487735645737354613096403864316544120557222588641946690923069705377653042917090353516738310320994194351331790158247621957013804540760576131256001427119408966134580466279283140182659711271749308741181035240155734439046543768003188715823266461064032873491274011736555214635661597169488656310197064989542020693131495002698932241049075817218725532290964868174353716524832771861581065409355879968357527697165524878294442468754761001327671440757949041827739668843666820403720390010500156930800860648733530788255578211219209443459355041693244369679981026606598367449431625186047947660770034434546597304796491579034219432501766430206524469861498363108095376835839743456260165732603331229254484084809050711972257421152985535762061122194660209066510281771749875947290368814218733179619816859272025714997977394553470953709585123241061436471459044021916347911355757088676168079141352424183075051237770873757074965596733724866148426193800211278730678892463890150249180058907744910812730833270822220695264398155896996259549717133329391473291754022825440086504210220191577602061089257039178919205253975356815793873586975798302279372213811073143986182023408091500396517313534099109093906306620948657704094602579485961799828635048655340355812885690370852121393262123115290454116099438346350883111778481807395861785220755550837349335893061951915357296894525182815649766192077542873637600306578711312023269594873836774657803422755763077331547053664623296666806362821714447017900337133679015942315460089943122223545904027336952787619334885379715890050351632500743217154225094205197387715686126874319569511793797503065780740709159244345933888877463541538787773680869970418902016134702223771584829668348665736151245572743383282844306715950780986366585515417607687072348306910325461912064062570289490914495182494939584603057587857206241411279135006701315304401722328609507216361114937918346522626748938988976806949142501648016566733843198032974233310872773035903360100373933273682739146046253351830987792043145345745650164808507402234198713294029512254543515380579600563241989731491626665387574714367281667741352641229812288849316513475422274192324704264499722317394810997612073742912107505194125651627673117269278083104152622968443757123574603340400658740651478850556561133633640187503435346634220514556857151794683492147705175734728581741040874836128265138848648887450420925510256912711995103668475281128791007204463410210998635303632761095159561428344912822325741439185726480798161016209813612238599449958986979979111547158818756280026389765762007835687499013621450582887755160040809102639934957197040279078353556674119699799821783374044119299280803916440555750897546974555594121104200544179952676903323331424555665242184281434277140986582349372274459874996995836644427435799484719970846399500186786238521134865606919426846598297663805703327995993239017576174718030271338968516156906249267694524185895106824440705178718809271653213626122231437655627369552003503149485311699498820342466451679560274730361590318218978608635102448995874362037798782106168892731697619273663037786617180786075168921383998661598367637853559295241936277174266639380687454682802012144478109104265805913402134030204613276485575888905145980072602980430529296226142471495640170373058949549346921775103149795983588868909268697304482989474594897587457376412436563886650700273322028575327417821492141241949656381541860185455135498882113211549710883581621917413451037237579937097876588233224509924270813274319857829499262726660035143863960479449242959015370056173200428337714486296845726861457870286551396635113458747703048008085089678390599771681047101213296365739105916616249357944430218359447829695353064628459059313763756041918226462000579260763321247403280962553095251504232218000396931202335157177562900037959614935854497892982188979011543929082321460477598177500050097592043898418369276324809087430116720047164179907632389911734039592987537981561728675361414672925729401911721168074235791462850136066689733766897474124319865233604066698399790447602158447073903683761590629893580119088097121377735733932801818781756410353952020555834115632313745605333375076292429834943423513491246874697332403947497649292687598820489653831685114629342420687303870596724017933955525362629520620965914931008283592816115540024468598193200778040974547339643955534049421498726431234683987351447230939209530557133468318216577214673248530832229832173550048780540978759235566561463939072116455943253215088029314757739023565473730202871475273973437694243137150021124254645842023456643751738010574940673484461986308368017412809839287284189293653265265632882305433291103706766190047241617751288667763554789125309060093407577463720916788026672714574807073465482616028268226370378353582991018146381726182589483902894477539878245910286517710137024310508406602292057922901549631050698863787493750992850179662046732214537896256102023395510566436470911363448182396412553895224806109498235382385874046701874811057721530343982125717238384251236109082909321111167544469024916675208025895908365696439463751843966398344117580185272150443268055466973010416001806951797090186542775992759094804278974962467616059153434928160854568206924282014151168333707501818363951298893610562240847366077093404293449010997439903203569890489175348216812220531197898954184531238319638592636663217012754417167407916839260479550534852968339432420456141764204796922962666181039552624845635878971335844153526944088358050910808286531222649121713074563688444919584758523058152627761760041188730964019359979255121213540216371975011777817407322318323137176696513394110136768670183841168985573475371235703693116331489879791412982801037143167900856078172645124711033153703662407620674840019230752900974976239517237816226191000425024141804102488702933484539871645250111109774959644764230866043909588754669516100089626630804572206566526625754231154232570787703314251012914076344965160035936033691432401947549467767759064069118490361675971089640278437553880190975135360186747859262187559975387172580675357156614942745071992580896837475327422181412658154997558810581645425130294181364969642830319654128693393161400420947056200665132728053400335108262402224959759026166448686823165278669241431990276068694922007543617797398835441253465461689944322574828875677196465423287253569258742748620465496547802270737727480330510827248534529144410578524050128032415185621048998575766044850008230657826661768094482041650266973056955746410185988976350527339585875244295704678465184658199961540688021177349772720492239604132581849650711940346419499426019747717374943367185128337881689681933900651368641810811714601688672403640978975743435740204987574275548152203255744471343585735274707071420229865400526992269301043604969899816913007227435069757850117269230533374645254111538445439202036252719446851361060355771497304723573676958101132277385716587321080727638429506606863192692131696257543717538689697750945335974339898901006158922592100762213662732454111308683039970768137734908029776009661003580204178000302461435507842921441190959648321284455939107102805523838405303391670469251649844026542594942837031893111679839758536342463662514371350603822646481774700044504769770671616408918459851364120429753168202471676277777969784523048792529676377871562286518705661128233081839764800374288705514885944091049085925899219424048499401394572365148079792747898323493337380949706524696617861551919885215059803318973434019479417534008526019026119496968811763665574608078508194443881538878642289070671263947683871744164956104045965057159174706674187452587089557278104981229926083428447465185506583124626857973740927326616864258212400491045212354218446425659621555514610082119909544388013373472986904174138630953850279104813437946832642801357301455090164968101788957532603996797045445713930518782644353444499180568487620965223877992410866113397648366227187279850091591035558829745838791426387356615431325196085097500152062592547867788053964716351367147983309193200284421767126961875566622310269064215275501199646463879553576859957617394720379445228406505679634957770020644318872188410905045796759595448447351641473269374468242874766487733065815063543719356193018095421236561803314983327306985847499031977033040463889926839691052077241034125891628144632266892070476782324969105145035973215283823373727778150303327338089119219908254248793933435459836521528205563728920840099092484300842363608303560520223809413500002338497125979526317724616045662671202279163527196982244875681580418453871196126330209902724011301916326427680973730731126756285626498089475044566674238683657997340857450201098549050680484644019910823358162881537493892427136203267194656996840680223599667346727500440112688109091829932064054450586059402139651929668634632720969397520652550149361094907436106449050664131844851757472156927510865947936740550744960061462051816071777704615386259425937613966872541946728177514675599804758161237349533573471697714656091867021867739655304346856340487280457784899070572823038983519322257232240822296954729782746284103843643253318830617052333133764513459492996538894871639537137931654322189364742162406135339549576394657515496195710831178590524138946235017817410598380586772844694987868779878915166636982416269207517281121932774282389566595727930294640536458888730123699802631893710596710820107183796502794623578730157142479664775744728971679499650067817956603583724999142888775299521168046857595971287484583226573221838437019041403289592711671636449644255943053682098902330028138255447945088979431625496121229914696631199746828176500420258619356319203690766224045330929206919228217382441543759623142594714649601413367088492031540727260391400991071807087127626502120678991372662865843706193513730044322613579896864511613310171456600157133471690435655478461818730638332428508918317559542721522720660650007527350509072814398363626327007958854698276383455004970733630722154727062799133340274806870076473967350202770969083931218924650036586982264644073851338208304421206835246693016991949950133246638614721459187659902232943699998049981856980525696624494823531035436699979385581233263636886202951937334644668627958105337277278598730035214105561204317592917864863609197811163228475337633903615590642791432676224579357371298355800609382333664075292906718089529455885922274272261784337022805034193350324263390329939398879712460047458646186313629790132295152526927907168451244793281650215072855175307756658966248972101162136488814255091689941064874770917603249764531779321494893005921056310333929723275129814370840224343336013784574367277705695143327173228491434646615346240913386849967544781323710175286940756770243850198040684682549882455249766038674133008188085182802023366178645482437105979578127633944960561073051811413723194367001200713801509424967667530756967761363123687515048858381371375778377108671942007178080117228109633954902420198222634011968102323065149102114558499697806642826804380188496073448719068588361547644579343648978102139166207134053196614880328499124218064388394604631019903977795005818476518257313217247344489609145958424113981745045577872974972018872826293577276274892886877523967436475918905877736435847842808106674327592968819153199858451834519055530902693325191460878288941769724120887901090979881488000049023139921719880107314964492400202673974306879477023973622521182826959032180405331146572180877377964917043753607831842379649939527215598424642083562419660341258330042015574378874405632726390317186735115689991548208254717275072883805924040732442669660437090230031430945567949358386335306800599248698597171325740740570111120049243768154046596307304754233532499183889653355816967528586645308235242524981090954811488122748986940829599625463251291784248251468211510929123338286200509055070728700162657757280644784716064139108927166020189256375728789183359225992881606375414929742698795017662010282476443191739605082433083707118558283122949140168791200382935497484775986499079867775720453838496079987480345425661904955964390913357789460213856205188159042651062234296412599704330933751545065801263375080634931462875674998782524670725029961562603419774964920507475800460666880029223987798262976626569833812610031182560564216383809539912183159070037028459566624902600998420979960100342332723754845029115704067108283604717935944214287321437324116724864890984760646139050471287638254760070034724478000910761282230586436257055377188090444158073988759800720855398338626969536019413074666802258606219200533804837016793259759689863995274572881360750361460504177355990456882579379044019513998033606803782724292130431446522055008028702021886551935139185885836811342560119366989163855786510410878432193491680023093263698350568912520705488988254617548649405431881269578615562249704491509005938175305509747016784035430714014928829592593664386664862426254207514818425888297484282819139487113086622168711484484853297598033568707514944676354546529227700409614672195323188267004150115631515045238354446821617860120964436793322152528113464445628785183715607308799812365943278111915066686818783894986631752564012698727189883314933759133210513197618413255851935255134976601906176869842738365033463309622949587650528138945173897464142782322141876087145236110371945204926382535245689706778448855025304161889020921874398943013479458769532447039415411181227621885545745417881705430296689119100784789121720329897962476981219271236054243163611134273868766050140436256498151180897150909121254653984837275762717477738700516540330279034580153260972743778319911033673220743704944878003663185230480263443011367995240221798350812004844067448192540024051427692435844255003913360632684362897213555857922592690264651943975352683862177532629602440615965982991472757438110481847887582053549153716536677471113956849413431983843485385333275981097445268646308652359261582807139785214357195887708278686500600576552002797055512494659126432571357908817325749373942376940204688199137853307499644665936533746187280212310962939394195753917952942695769695363054429642295872227711051511350716560158881987054196620596212280202706029836046869995516807296361608399713876259386375937107433665547389386979046066031157327143285568703083751890298294902410604370326324855323245736986449920168247639485085867515707562021713156182703581647119310492905863847735433373640071935673559108799691419640675330549158660908076032032262849535035632445686941537252785559797770803582970352921332876864901389267702946710222764243330664976443904711293045773006896973529369267206904859700793820858139949818955238734209075419272945406717480283790957609716918227445358835578445556269792899581618903041819909446711066856940427383292842818717135668425868876597974816466303904350608037995103967590308641370964307718031509346472513710953943792678007511846177163698514483209805046352019064561975258502571117413257195887339597961261646248433145809091050096841209086172543592652243516148347841404995543906791184335211465869007617510184059777582930043379328032804197999587090016870411068017365032892291977591160268556726384071934103540575149959189036696000565440582395148780026584936893660864098086979602312164169826722077430862369550465206986838222026272546125613909008941751772784178106936188920909217760942612409484922319118544567266031413694444788881313383716128224838606459164045897742220121199645417277393181741239913751270312892552929067257186209287407863320595685442055109510716869165847351673994005645379583927291522090965948005876185633680316404092915290067471199172585752399527022695190006569155475431850474996639205320839960648735231569717703051146985661226218242342992562844045665873877699365082886953259252423045193479446650604923943890407599006807052100730765062745767651072879224519602533644414959986454714769446135241527499180331968966239281243700149668789091634460577287410035877514980197869418468966549272623568239669385555380317321507594419554322766527801894534634827891157301387719929571814143625290367181167055756032757676118360430797826938004534705825116871737974871308539919769536300248850061145421246953424636098759479657134523248347117343089460767918924127866815350167174728496425610781352316423386893285553385244244936939512190911209526166509271384297693380721670407236570170519587945319688034255919328564847517014365277042903450474386867773897966017085446285433777274863510283470155829265995868067708735507414164716571413164424240734790914528517084422676165763025429684332642970531643815895877063762339658388799669639253765227662722396671767312571269085049514834169096180249123915220312651989293905051942292737417279193515042979290399895013404504917947271807664880429358103537015136342008986584579711299850849577586122533229279532105243352183871262213315051766789729602004343718888155188683018412413477515019933990408204045722519097363067138730585235222815585694621375367886482566561849201077206681719630818695922201171719889895121588167104916350170495565181877011518706659919863839880214796082269278406327831818753333541537627954380154055545250280382381148693191658051752129409258215628964525348305380766673527060695059258420605575571185559702694313802441265105009325563165895825922317949707173091816806100802868157490561111561677215677548118645371625173217233486903754676464642525357710635632201038178333362216287008444359866563588600692907913091203741038227535091734902278598712958022118193706797850040973552685025518799839552388624561307030936203629572890271215514425992044882609636101447766168681111173055180126503372044935826567322464053612583075193648363426948090208679042556159708224044284730697387634763823340545972384321176713652985344013814612063625728304372140928807840790385909828006697886644754765638015936710112593307792271285310759601399165361772956096977854808356008502114499244222321162991169316966038815503138483451004715592962855084970937407501573917979251667599325397911731025346571271053956896720636666236576631171011357267552176651807146224345356027261183511468623870181893705564486639191771995847154434362182025345640588668524246061260414784046038487329334900360531458956830262990155867733070937680670263395523631806041390656700578053245766140861479543591164330482892686661044265580843713766359360744041989935636581898652910934634139256769988522377792923156526119714095852971810041615276142150917263491619136279733070275614398408612849954909028228854892908579292479426386685451698008049360369557777350189930161869233090436179909399134964239499501600403437747580077397264202696554640074908997746388211041882758441205615146588631442191838572876780351237174913874430935023760829553871198926183271120885641540859912304877405828341257802040749117007068402054245826899724586430862830264358006015433661888724260181817714597016478023420567759339820517959618488916760535539495303062908508227850385641766632529416609199350996678808231203683410804427221808853307603833218901027258137566391326898757985473196857778045298554460625396765712597157733458794146857309796463177396808353591517716237773984840455368875330512712617295626528983184717962070991350482653206748840238635776167589633261844633452092113971702452570282807214222470567148555822755745640007048127520708711205132896138616637185515387501060833418803589573064409637968791687113014012862694086159606667627627306813922099020802311852087369649431106463744083123387062305034614017234584311811381671083814850023393322958389934633003765060017158794523094539452071509094287457740305770363281056671225005610335583123622682065660519369176198403739863905851574544177299869613888988270933808469680786489880917733343224523106831230227752785352881230149487873804889134416776696888876311425583066275589075127846977449634788963331332513173282095833501679368032377954332250073117411907784049720476566291081050688541482064141746945834664115305988176171541240053777788409369047912448897922242772362748956572352882362865286041733363453452646150165095431454622384249909174722995078419505963416586095151548331216483133299194668844195786193914374267079095900176638410238663778240311477543532304278978530609013131921710184826068415880808257673665414223398582588097656004699946649467356948509551253181972273623345811875261023836839099798934437492015079304241430083107852762832838716953352133059786007709737724823027731344860804473350293348806161653501529992214436775207240704898626015630916120920096368902295613230591957253696892876352329250572702655730243110628482661076711657651951625041417850874530508459904223211127860015271502282014939825833397769487493337312785351167025660851283739625929994864405617303026072417668929448744722895617789962405085255332950569532254342912707331422335772511049996084889329229541686408068723361596939836466517096095834463258084700765429033308211268103840383207978743326826675425403388615534517336433301406303365922614563508476599858359532596995802754283302419532330774105886029446585779955192688580906602334685457673658376299069807941488493026664773811568027891972202962537196667385758903954579922662543187440483871164507561339844851637092173077296870770549533183568275489521219862617707676983731160339664395093054618861116466223085120750415974902214609802771661536267380230185520957095375551772261310487896714353840103170505942244459725195226198669115197849121681260952727820034815689633416133509533673652279121430222050485235252869289947629757945170622419160439609445947937943185230159888184944609755382797278794078108044075583166997054537435424821841384041734480687706747408333411964741267875157082783765160809729355271811895485983254403261862145337090054177147889100122418445981979750955223917985977698529049810293351296530824999683327734381936990773312368438942145904966351883400198355766613616767690753049427160960119747025421535473170132273060354080293091345487686856075783161263378555180773051295554624166041742347281029105802600443746990915014213601452106251383250213754689025856553177378183687972482670931751904926488948720147312264745114039840093679902230201862363108287690565414917521254219214104306756930485780581099837970901579604125625636039186174400858817868224941949694197864816237101724966360453290367966031630412980522457291142251000260264768819464418927793396138980727489720166250549846857859405739554123967384412207627632873285815196630405397606967246338337209877358545691735172411416244853021210757234174395207422736706879284679489729347790033265952857807495466805455390677643140891761664476049503100499484073963409702952079558283670692264561531550496303190318412133033157925932993143685880423757031218753041353059349783582526504965480530103984889212979995185741686304654538333205869828720790269069911955272187834547985205252639541271491177034795823248309044586539535637418060914839373841918939811839676593420367264053056589217789547751908764165813873992501562546937092495279297102220577186299031714554781293833147613307900804224415429622526317251579771015151173623132147238687905228150475525217893919768840652010730274605494590032303892316096270651017370678424316310876093138588190190546759953255627739132367189367940670318636006686742982934832406973885705762102741996027828705211755624968376938519114886571932115556559748491620940291486720135551084942995865798340645749388741284906175673033018781609090570694801417842531132870091061633294202280557049047814272856718615975679992505748506970825437518185096596900702327856669533892008592477714756483334310860360657177293955292375149201702150930624605855815971504897946341000361436614907906390236783133834311213195618861074999155172448256464577165215508034785670280589279462131190254047211106845416963830102920096824558393413295744390282857152553558038473344996034759555529303307792332308929491972156604226061008403778206431494394694690496111003164405824620265374065491413412959061139906688685052919667781175147696296973238106049090340979388851417967235119614024219207823612523651336174613425800247337077282838831740568608251522523231078954953281471319976848883071410241494140551290460248082275659297945970555657746344068092498799892312520186099801280150002469808652234927941538724029667151091262077581903648149955783890639382386609905757009830651075424337251959693554988213085445329116402919984103817167258267240277708893167324644893969521650939083482904075456874062967205814013293847241909209452636297366172304999601582538600666518302591253333981011298620319871019540039893417974401732609721653328068628017134340172991960163744064570799391589455089496110529490742766368164609444388111898916988558972074302181972018971816217938991787267271315145386743583187313143980699038707873703164119788670348319615672111695413370600164880814615994568343664620670166445630379143735562715067568194287199025807268685779539247464777702580128884255018303993053008284592309964704955928605439127094796390336486731464037828263374149274088238355012567900620267103663150714929431408977478910327355038838839323426150132635075287068452681448084313285008925347151966811681514186822158701311522996158259428518253094298886240118788523698451333889852930437894224965492538251095786765170888197630633608792435548488891160302047512044434649774236734961509793669436962580259188063195775651721806981730168689686451651981399564430378305663240712625349504204946425185469126088032117336539182783191799315050027549656305723457991810926126995027415550376569680062423537668922922740645540897652887141833624348860351715433232926308105059245051544504520652121398050071585822267370461034658109167080213281021353831370248599455632229265833470412725543801612440547202871203667261499601978132519296666769785228451566623044402639795819409617489748943398103615819462700994267666781343871174431050516285325320145138237683384701299891628372645460134901401609523812785906741775996189729240823405972065231867851262894937972565037074658209204687786610882496390041188387632003232856552897172261981438058945871104487690160464306638526191530329352353360819963615111146945363248092705091165497049568453844111645766339198788470204836455630523036682420879626046749461016927606820128930483497030043410900837177389988317220931249179050987277196643040163118582814997477350052055206073359154801236370078670504313141916485241096278754570107583648998954445943691866961991923009335493007626448339312550905632337645390724914474806124816974834171488992623274475842852050166563522286172469717490752706848452940547160222802102970084513738643476430412930834865579390223801275396207000112689896439980227296021429283205864874620403689072265635130604683039519721268742742817774287479362248510533423171250897520530231842919534383785319403135307384269206797803716056963166313652158158964509721126929592293137936508861407977145092648648845102747358657472967128091987888308294519492713930963942664062370877346750009406116673046214752008018171500681718602449871118263156135737116284941886841298970941642016884034362176572675730577087524266838028468708330913347470476692264202850895801618223957126161642920838144599906830457195747587137111684991899898911642566483172896225512965947551041859311783241507537266963605473674394331934669778888730785821086911179105701068412531673998929488113000312807709860633206997242312389046852368727974867918277710265212851699745484851315722072150011449860328643736882594287473443599991802774639723765104186385669330509403971981764174605694623948932756787332190382645550633534009873715816159340095799083294974038425209960425004800701714550359685854590103963511642064665171869896749053635221159339665062671637035133726088775798147421640228014092853497158527795165644086444311099638918626451954520531670634777678017151155812823920209844892725189326821045887689737050544749688405815513737104406687251982102325635429727825016097109243302442400052289205325971120304298346659074298083948134860057828917576382199861405536923037442192723923379078183599659410646847574936432873044642919548193563362492297701554633954856182402539670273601799951005747318286826385932385159978285123756593110186447421638334058170759463767635150610018515685669695370278826107290917494819635811535420598281728486396906751593347824006831913482482063022167755818104629224758370160649669974062247696328921084314638577634441444973738542376768828048618943806041818465666618823147286394772365163736892761241247039696642490140283985835140419060601570816050105669107258534809212992628173512030052196257025943634575682891274443391740641292908524878984517001800315798007090814403030795470443988214448594380734565901208130071192194998012983941324804792326887384918913562454125080970069430551486820973111314071590555772764059032086895367715590035429016868477609563955697810572490432643708770939247996269149194324594726325399173499269051829006664178985503275437265777409660362142544257203103308523608655651655995172189572842963361880244375834121146689329560912852135304229648553682646749674626689977573715553156020620832189869780851862658683475651557209381078605723409328525315908288996764692405550620912602944599376372611481891156364431800973036952411165640334497774427362464291288160537751645712147761986523818572351904204471116692434101537994033714823022507672475047176657659419985658479311039187836459651056841396337935995654914084277698238108690789984272661091470117671405536303158817508583254927371443074003419001050176046148289523157279051298264786272263997939885013567399627542350909267147532809430503322800720844125569421323171624988027170175524329970416463635546317435186797699283782581734840324551303200890238085068586941762604737156821951116290193390705972165690636803564809014666176042617564156671419486558972044516973028237216832768288687885497439870978223921689703390194312487393640661107909825840771704992447405058425392863894825381305398974741366870594255044882612084528031038951156952385386540498635742087284965941753598538034409460560822559431424375335697203073711011608552088799582627126972577568092521381463716801958964206639297147953361863050380737026543158902089542368763626961248299999018342737618850385674786404158457298059998889822461559200804513043484833749015570217975700059441109314841056117371811213225015331332485617855649432772850828421662812021770596582882026271658110549968666742548771620383929502321319061195130503411715161142646083339331532054465652960910366674860611963763694663399281669916566789580075958200770084677728397899456496251349054164631024303825931751930071345384815892428910050093671808428967792735657848049985403149670614553276105835716944373977798483138916471212874115744885713357212247949057539263477263982030083455936784549155105031036889181766822288987560252830199684135341900638428561941575542869637541843650433855858095495987525960733426915352184853609998222752953316636847384654891197097898102025479617284973441831313367548163087419526980719151525303308444162318748171950849423981273555482894847071081819626380271664334164927703430981360924290107331556755953212636086682705304933618386011200952431263452590758403459526535319868702475098645608481063125812239756237816949398579874405924727491904503581006554985515918560656946751439040555348926343975688712680547645797971080841666081644054473298052103423226626750725860865106406109413921752174797330683864216605026219458871932830299789435905449317670495186306902721717321179938006974409512382782754912956343409842250693212874584953452350308232272519408735787357700339485496753623660122824372892426253571929764659283635153103729597709225480886456519481298163750259509172996186727912432331334163447731174175444110564732626604792373610312524049494217466933571708993258603778037098302349164599726865894487259552635171014348096147459709112089213012825642098129039116597590662467115203184484320369331086900638193454965163509082478431454773616112086175416910544890205579015727761740662101815547943424997776783744187603400458452000840397765439306703863710386089792755768984646568851037773896248083593246240903733109195437256994939956350925915622211245629242417755433422662629558785903855815754802646577013042804074960281129811435307912085510613111466657877218228702328085205993924529523091169914443230765049627736811420584353049182932908498812495802550366853040973260757825397892028927308401838488989581217991066852559860675363513568436507633290931561389360399474389809042984660138835493499965856179689754260114679255907451992914506266231906194796553143137765417447025102791275923433860507845010534696951507819904947013874793503014327806809524376265060377777938421017312014552782709210151446507692721917742796878922882208873826252644471230744292126749402527451307865186925336512477923661430484028886696888482587665632973963428018185193817247286508847389004675147800917757906012951544412286205444782672310484867780289266269611960388616088142681368293215598804859375651422766106549903984327187569265316969162161516178965104480550703651302535077617120978520010839905671138720287829898830911021669065638893439183871193757025582911328943143644593292724870581105014069040502334632066160070614113751489642833208479917605515223101562961233390872110277275610327196100827476316212874507329084082244756979499252011453907695604970733869922480920739287267035091173521862299652011981995229659023332763483081462694791201163100559608956692366755679953950631138747500039210768808750378354452495964933317389830108216114937313049434625080180411498854293860847019183600641635529509319808263674468614474447680253013304754450565484124017732169917647868708450095395332579851484838204468518435968526655297454196623187246988443566841786103978051503370704595070029471899463275379660931095619864104387853587295909137633946250094285613838652216834283848441688644399581211412305408839295843411189966215737680430701260739955880618008847965233066875777798420014889293500265963575504195982240665754219566278751260873129676855407398914824034231002566006420163237890232870819846699120304528283323648891600304434113456658415623415755152600661890117651351867225522456908645945154172063590760968959138905345361486288501757108295124014082222397124552570416919601803634898552445483422410050269396707127889135141285631777703902574881558051917895707709054657895506039937152481563628963132762838922282350269306330184474147517354663974654655831805411792354404863432138846592592260514605783876628770083674397587211153538679101626347906971163634595183790372695338263612214603858340837170277310422936657024678117326703441637747331341187827494977453021296185246186051749030931673334309305705168024487050373319149307253071068560631013458567265804932155907491437584512182112986437612439047376970982291260809182063620903467878049538804875189989306123037272177782653173952795821553138649605039281552101908787248628808598230399256119096678628696110952696654692405385568047926931492826080036252739943939609416590547880085233587954268106901577779370270624501019022804827901105751207416119971963471119353110555133571777211517976903789456507624881727059973047892711151982600577441210038053802592628900614560630204602979760955457282274801292021379742853635845425558031962710613839840159139244879679390923065306669947812552029787559994256305061156632018493331014131465046584196695628258265757446481270296607510631979713650729328166175796039813117180956825651224853496737263545098712534980591639153481490485879850384833534385441582331415207441817651196767089703003807839962870359679820091296359193876348815856958676745896587258337545373941086425293223375998314818056656750179872137832492350671407820666925803226478949688533249868391128980202582151314795574106738439618695266331258166799888565736593056387703088110504939191716720525493221410153632622581715186642369001271813617711594674625098845868035436994527091673553931570209160570169800678248062029285974029543936792328154680703753455827667999312944064497513064843748670503974329332012750216106074869399073250648623160345148205079024532578485720587022329366967094909405769218746550166810922412779501458144130087902191525847248116523107432171805205944951940626225052379095135624515203945598324692092710001553392011923415712303308795181839921943251926804173732525719510471400090034038762812821322697788149286384263989063269020540077080747090130609905752247597465946572810162770446761202246388063836286807439376408556576895586956655574234221249644205711779095153454153004091842036263701079175738792298592300456787922323760015134697750133960487003027613310257637401758846003987086384130643132015848879194711939451089791194753102355004638928878695570086392917751827369412038242281346047665736839584025621624541633295545739476736320227154513533716158192024425363671293474871523365126926294435858205787948708245437922563226894381366762720195718091548479504106110234334822732264672579658456096415551445627956386537082505061206561002013101508140894397795377027244037624232582030523362495738229683933881449099832871667185504736165616529569922048776760759773739498878458118186004161168188710985507804448809321211049017309122316436822168655925405668033934722565534193254957889871015864791485509754895149754274885660525739885162736564559144845723238916310534667233002596420037782149714678296908924186195956132634070962346326806170684369337632483540861868265527802770811702037722572364617073038314832168766339243741841756268304344777399437456528137443626821888917374470304153763400865713010539232128966984573109670371564208720773008457863767150850799183296771952016451001416135867959623779192716466386749365584647558086028908477727040981774457341931900005781226178237574310871022836441799256714069106102792020314543476184162243072157028633409952518366943522991971846598583399581146688203954979719933631846048637297678057231140236099988383351225882210245049818945161622668525318785122069681918013083781358054480260974065718663025712299062981578444463768092446869723371473873104819943324658332553938615891299322965901447644320656606259179136502135245585441831512880902828580578206004353008388523502247173122910460410835462335857554077469304558783130281122389941759261352876996380628500309700933239471246886188630531413582241085302541251342522231212593715996581198677593516528414758178600970072675437760309415354095912407323523176698804715057958858642607625470328923870688871313379187972171272585368896089426269943185799283273247760186952690897241623662239495971185663444324790282502303622566246401390869612948692075938058701394223250197647520451082189387638115314216918534872398044485371021333782637666759949710563221025335116109252441371692538383348292514357959105650058665876591367063425880273320367622448201275494580615481874690584859142785626294247735091727766001578303335178164084118384615568579728389099787586291527252170792047588633453345960989472639090171037082763657943896353785936663356552229898268313290295370936696250959334895286714015450459954905915824903960215320598663009089788928061804810524540488338407572151359614348311697536923108692191212403695069344063006428982535695618692075752623394413834898836206896735405517047338059169103628846379559183175254264563050399269638741330312148758508617252309803532210726722631891760254167649683195870172208986593083361500062817077705825596663055992592164114712278628803781467192897592862863413690507019044494354909195632034077423157864094489237041087605585077493505686148890381246635125034522400063475629136333326837017785350293675722797922488617741618310570858565553686600007385600672693007977219768966819455279537718569887911837997977927539923144404755666702109145920266089668141741851296111765001102639195363992132264637536877590417401607714143618437365035148033925762842726219112386110499557519720251101514036108317681509531842665855006276411044474576749719076113554290263310198936213995327405746523149028572187810564717299120453759451085776405966918321340952227571543851917283863312471549296053791220728065175627234852158285627405718495917909177095913077782688170818604057137720270163782281350864267814452748003288982922375653581967483780142264208713804345826157309504424968083092569871831109698120765869194420109125748915581914849209250850186046933858220394434137281092628736315120823152603462539152579826178934853972761281007848045133618830497284621618595623599898978009263050610409109511711157518452337364059084678278363024036086135625645372054019323394136231677815293515290655643643690604459019375434633027138758766421014864669556783144791810796490022889206046947233044202665146034738515386455048112802158235922524765760711531076141031682885784633593864896147634930332357213053023506327407957358136275843983569440445457873605172801671469496749672771269850834047804458067547428358592006181813985697930927362550597770884619198954679355148188011981771520350126766037789792107337313689833418473606145682120186150400406726674297284395633887147365333982130516188033594544694579120368614457758465400751000606669934746182921167865638862366273285956828906711533170105261740496712319399441726152113946736818082043848972870174059278715053683820644791927086613140277546048111547652251288525620705459730538610105242167097697392657031431616800347490150198377724181779324780967387222654377198774014709834257083822126320138759644968419228036160045067238263895778521046417909285970592071038226491964360566931442402367088324384462704324426235221680364089942044558108562870343486052354427159314255656218688602832105566830597446595298340184038977301901192889416936148815038547272619447538453944883422093619247825768104296424908624966495436145354532161207386684019104543944757527019662143966080323932152199355226441383266021966905917720916504263531954577349502846975916261675333009235832852526115440890832695993729996110657256083641227328447349123252801586057631196955671174204440418819091048630779932839188282291237687785030260075143717945282718257187612930548650410157590555953827094617843765875037737538599352807148304878423171012999606840161682024764689202546737794503761465315715084077493457131893677573869461111587017450980566444739148048536448651494268115965377482351339467034269522933540869799650581165972610096796839107221410351665705406892318684971321285228798896503206387080234172739595534886013181662922870065629178109145221389531664508956494941356873064428870607334415657193568798216699340053291643820957352798065180043055904352179319380831015858767276150648011275171392414590271778386931241386527407334004441918141734560370574092287730092987755471766761524796445180988167511904333988602088985978405814751051468080121981877970880682976472323652210587267604117232482598991048868371983766687868372299690423438461610854623163856371745941209372347630020139268892683512746991555745710219650346612697738047567822649759732920879747627137044133823433666900184906300192408170732668438124388064834479853787430360633017886445985049781723556667328239414828978376970073965903020228629103331420818590406389589155363044094459430828866652595236227544542871217086989829485664241886825631824974202655844293704111988009669237893910773114438146748683537518131978020758079682247211259902620267071220382482656850455866909301669930037607917062962938326153734361664985036816465564424628806166139749861559771092035413341705026885830867953832668941108631467650141005505026687427413613462044042608413537889578037731180543066976387718787582554203993046721850553472256337771563111671449973367129374618625012129391139357949200775246262409789120457047990621686071947856556245948284498578114773664689930393393402940395447835467399323148359501118645490378198959875713432583393712294852767629505211039404834378666081731597540947482761315178258992051552503834060284308013078318980780824608174220633897006764708733955929024912682397487569873919949949473457626077601272519194496746281612881435744313818804128809036248179543064302208586974927027438052773768943560825168239114408100989697227868923012128117511611062370841730089149100762630096960236668155396032213847202324203466233705112206148734336911809381643361373691034594086772203624713970248828541431046323389772479716776129297994802949224077428145186120189767101072348748063619374804020105263338559323891668659905891010178344110247450422148403095256339640409046160416487242620847621252886170580746538625325616165783231974264543299529748342675761828082910600538806905775642354332101759250704900040175916166494055888254570231613836992421908343496572040791333384064837876964469804851354380645961725793512084644241358654275379978655152720623137129929551186427641123999548721268051690224260358757400593879468013106114353553256585858573776282453520743295235707577164295365053629782516193194242661529446485514885556389858550184904001933122083752540591450272880299466329639386262894444950301585802371528475637578403478625310414189267556633596297156597841782276467998813150801431020023370394720617452825154717690318226876747583010527383653124043874456009318701962937948697335974026813464691051929089350006806430391950928164107023690894492276420335780944485036685476928109195746050823583985682602867429438494880710201967023423630931390268119453131667863171391413272578272301588476638187494478467278413073644907054199921469287838507990865339976222934080551414335127988594466252709319572352834001818103803449851310298817477488790681498242944100074504379655061399489271822784589860391358053028220718496978730786126950984495646570892214739136749389907183557546824011991451940329881791098477257081515468013794925112926862434443257356151104565589443044714546376098760861352263977423183518925733384639584313215700500703839928981423393836614845174930499039296684380780894777191282100782611030325502944758904631090648680163315823916767941047727196735727463226395143116539943218183022187409476192439305816919584340024774399439547895592050436140831580752657296095986881942662152901918094210493938177872935750081903997162906365561072674798908764305546002285764921397670071628562965647495165835554129135843011842950553338126452507652327987264425857035795714808440593543852456565367731453615001504725907353112772145973819389208681462841247263715582579367819692225862965951909784675852782727604899483212019369772544464329073813113471319152011256943997861178078371002140103563903053549635708224408379015965400397697286643759334430543790925879102944378629919635601225127605087826832316054188411149992369874946281959023520710992964440823168708840488837475758189465293191783905017826052691022848220062957299314914788576576018190453514161818780655166754101598185831686017671284563991658814950252251535268855259952969124417294301694434227437792008805261206997777559091113202753046648647907597760318402666840780785083683593603154985868102007748846847919213604519033304357000128305210473075334800589688638629507302273205820438314806247419684359233293835942663994692974359571127353393271309344707065568145985894660746647619071646790809623594968090251189445264926132860249574039556230892205606597976669423971229807782347682633177060373012548278530303876728917923748955367231306539662380702151952761653730651593983555778775221421886929183182815640418105169763929478175790077805104210640687445152739242636644217391870555695495068797025278108224810450840266274599469374666771349718548796421941868335577086508051296092244647961781660229349469434771207660093786429975760115401368264241784425317888190244749166315271133580211734566518127608360476222272556005146393037795637312674941389648568269656058021221197504992033264825427717435161515250102847837497223969400353614760031011314287975107365748828011069777796087424043158695671405638109244547883896833882336327903162780072637071244258040283524548996384003334705955524881302415312144321646447974124770296444078931416188950994468120071014141588847454665861855780963202196735190566907734780416139492520606712034279677405449166895318275390569779411138361240404301999700165484392355642413455129356973513064568228490449308515248522355413726389780482142238168556578211574115420984400354468894520799111464257616525099591399131612933667483747445790115022271341800068993343253231749980822223454468341236939894299155557767008272919589625566459657818940217061610317986864475403918674370061573835917435007723728211664638263744223883541191899959491592645824261442997941570976048241154899697739070951672138682856648658341863885137112222646413379854270387693309961755855233632288407183360498788766275545561389796529789618607772280279506369230141117872204081642965132700929990114117892549110846277238518341158449375780979000045464314731253446467004779238989293803048523029002215084491111643591741250758366313615860649464084825046392765179016293628888123565461215498921633786527881238651757968166517703366264286128508733323432065189151065702038875706734475552279245523637696880711489838389806813685238598417690235202178254230720229443526250996706705573166385395606524282947993969695684202489531700229831597422079724506172282938948937732868710706651146704934593780567161317196352523398314866265098210610924876016409940871132953443639817729409698435902567575484719866423486650286824054214601762454638843899442293322030866855467369331234134200256821638893105614384756632798154739261529979906066379532982662394506542004686262994057807973547750304754178329527485674213416316412267163408870330292097261454712759139831587624797870333107488813165492140281980381387044540441757584800663992574884811277188204656135405000813928700958049794378430603458825832915875117101513444579768762473918428553503467700129754538039719111904269495969151980787560860705989171968653693252477533485657036573510674885332401006863271439880885217476785572771711712209126156841008114742901430404809785774593370366269975089234519557337580595647219497453799669257141651280271759035360751465516789881940274395269135662370054820068766903659447734683091484099992587121244621504884392595135161195929110366578129586412096442567866101457064080414201107484239115362238242097966206490317282530924691355566090040140986163768906756841815286870187036540869802951109079309177380506423722357156682816151671543393468835709130689174445155794734980762696502162910290650774931349624027218547282954761279727223343255490930538423315512231091452841782023659022186676261911831861864493912420673243592480491533279054358651843557372030170141055447589518089671659400574681844484774263141275851749769440539058523280763287167214232000104676917414043819158672356820832627893605477180199733367789354113779525869905561120021022719257292584447547343483591304435409859018678099880234189391576480589290620485746681461161221913515801664494909317963288358819150330006474112014667800918710626858607096712947361162034353103237762577261501341525683934860437713954331013342423343020837581868431868557928428472268937505117613868916677164422087352180674146679192716791146086854085252446308695483585940754679273582803734908253058461093446502084536759904768885430894821673447667808837863370693478511166664808950660200064143975816482893189822603806340747840066002869858433305302569477607572855361507289708939751773201292698240015555752202947369724656635498076844398800600625735146421865067816538087331769926269888025040754090488351802947080004521769679705085808069371439300208137434812111015722914596806922907860465567304789119343494843364966895007292014109102957013042864518302039839804226639386979219210853390841865340594073995992967616502128031018341292861238260272571799144187364269799826904234417886153883611583823006912120974995448761135406855022284653589896559383123739112307622479523134716791666276825180900737971944695292205632025025138493151738062906521229914777722056451904847893716734637847571986517285792307782883444712250400077145886130586286542116297261601640625480997489969553242676879618127051762798879532208073225648348599454165671489707796304673827103542610901602465540489575041571523070243084888040440046682012678986882426811391002953533611981915951045242713231010530937143740431078561935711400300861352371166639105648308527107303013689538868064711268800492267458015902644077500501032477069216429712857491683229527439025508749309060191613330170574816103800143380313044276044071727111219285773028661619477018764560352448890146459643335297218366696055753524229225119464973429577189246953576999437715277896997279207523994277171035326204241564860866468500631724521132176991420773325597898421939289121712408362583989681484537394539826581837119814760198774840304382171050677455135328198128479775446846455203679707986668065186718457437359937197485668717225058246612191045110135753594369017964094182455591363422067623762741859217197559660240281547125237807130531726709634662511452114182243421026187889266588525035678671644763126712155898551719369403532928040438571313314444688417443041863181230351458452741702036658409163875468934844308167017761970242100718111163883504286068542377486089977320612987338759419891857976927860485248816443214559277726320002047464311238431918635613158405860093589525219620243794084027064965621125731453242358053369690558776833734799367841272928881942584986663834539956370878197380235641268405414248431770723158780996164445860008952495866233596676373024729710858740247662649203989176368116279649208967918515592693029941104277823121338233661108251112291235878078243960219490262063335575805087347887810567081760800440372143560055071480366132239684428334299255267709311275932680628113170364317986528410626794682632413180783644994742231712902001027699812715157107197201295549064640898402709405404859999432533820824449343687398900456142548818553869288293819305907400271074623975789564328516662272670944269425057796894685588575216502329393709808429972233391009708087837196187630703778990744646037970515757270715137357120625316533501301559335020231040656117912431646487062657703535539094405404361339799897004344970928314905821145140638846046189928748263333983521009583814461996877483119087645266609649044077655876611514578318781614730107049472933470211335978379563620029659783595338208403982283918324429016974234891945326506125630037100482190005678130118656813849505879387517295814317544441709744525237822592654130790889936480134855852517903713704170220472762435181739081140911685342078512022325572557573478191644140111625854438571575487495445184894180269834858778800437912567777908954535527694486123649201969253098926858831846682072295913016182152434562685508359082619609761165366148455436398334328924062953429662984807507044663885794775508458948720153290926805552382916981317164464175477481229627081855239707442077465304297450748917200833032818951315122088875728696691422049563731762163004039076528058133225622044411098787897271215678216787257748931329147179110296966505917660879258884931144175571610050380572451792761781760280360839701482685694448229327174406147072690849933223376109843438847699095378700438261661390607292588310685125779824405572782164753115664352775371123709772516710236546528911664744699481764240886731830007092559234910526374998183352060055982734399412591915594577669937256432423624021952848041942810541460839616326054714512322916988001201396772402917397122887860017173982271807426380790833760450257432069047313610719586504866759181253944804009458977376782029319502654492898699893313273676537344938867331008867159685368397157339834867861427708361208131195926120926721723881477637654188941872001490649126217247483597107600279692661782878941016016090202222220012782938288466784650451322918342610094452509728503253804342278301090580327119179864829791417238505832019911659575861062842972084517444803750826643831764405339893660143626917285313503480097455916064515419037123902131855548993514452943267596198073810584054343647572474732052823251903684150617403290070814734572652342366626000635141037925564506592660549123616575498023425591387713622246928798887433895546516675916468869270346858033207703290187838316473861021283983342257087749902463659615379467917163376331589469247498182780505422231732086404915493515485793107941126916916794950160850637421504308627909025695532939820405074722311563645372034815069149538039859131033968027745013355340504516966903465829617424366447198960433986561229090620371333991951912378708347227245124004884232069630885666569511449841572092600467965117909634771598625422641012142923231680772136933252023905865835810586548072791294756313067937823773789316280763614583107952045003051427379934406916023060024312658461360605721638651187094597115633989551577906308652283855885088473177250040384390227578490025049868272272170071498951789520191195597777568731253728059340828504570875577567205737960694366449798858466899051934548231903198859877213066634078611044232581396989506630116366294036088707671898440883962081449351263113525567105316935717686158708546426602010979791681456343482659712043797905346401370797175790021274111546505079806754185243873676177287078634675840212614651986857303391259215741485656426390610009850012649665826608982496892564429990471123588243006188347696379377616835113035124581111770884281352106700540327383968530170203384546902655075362030875402690626380006135644141609317946340466359355744023589001329553444973622741738304614707640718189403460151243489194022021261837773952561166290965098335182027602135141269232392258123434353226825444293608360585910496430416403505121553348176430349734273169349992323417252563070403218724014169462833356949775266182864399442023919609147193517412144606714433760109748087854494731551335881604813573666259373758331922767299544009791993392394727078655875479516673398036113024662096294602583013033291220627585541208464121199515040926900408907134738821339799175591514375137104370293674074037163901686679635711001184262205484792883769475283727584798390135043242799773793618472643016911903847819854514400033413327797776112531156507232835746074247858944924716562596036606163220339569216014232184189604494547179692390049787680978560331453286105251763006592863291873447278050939936409548767532035972568708307504797190307600651528160277080695211102940010754130536342337298940546376346893301235692918857225062420345440208640337298314953832352378381242066944344566144488272218690997580841824769131659870385205136404817366352933335873941432342776456585619053458974275899072760522396348294569716248282716931208026406405087996636139600771515632944546385802217392671142288067407364171324331281021861354978013540018976294991174193935611761955280849002632133609858646417856505459162359877049216231514497049736962163821076610722285496544940943506318130347134809355949286977144308992778707683757492945167299590516369266969493963479938946508299970553345612074151532917655301332143937149435486484462640854115469807854220204486563989806778381978126470087504334231779564158819492824021333221991169707487793954493378325238326571636929948497425732654847727453689454665709765271257609883717739824049106539939791613668420967146712084052858241122883601506098877453312822503257679752096487406681281353941498467584765695016208084609981973600571462719833635232605836908831042870418030822684028675407919839633502572005298548672893760548818980727876430358192383516064588952507866842456981704559465468104484058817670326457671077488359247348036068810473015743793614258558707817534240201836142541026578113964260789613975288265415734821263361677125489429552281213510549071686157677594048399045399167793333103833719341832212174401461623494492145004737365758913992181975109310895703442027100956404890778109462394858536299489193313042775855548072948890587514498908394072221524715446521511071140711817826732860651209057168291051148944328977226800462415760731411872892841617841201662058779959678679737875183155570291453743315995557690841906989516867629823631738909740365733239840369308200478437229556584924964038166343429195290531084155507002434157570282392448338501547591053394945374581606602111737860840255492830937986151173564878424923861900503632867331530068463836271092493028327523548798640759581974145967515794600069566028661559310642341266516482539044664341288441715359545090840390101313262134352108459405155549455778183641785681702424507656888251625470272491602127318652901528514115865164719717682567228524715864218948654693862897719190365338030373967214948794600775851029112771577406748493274679100977181717566739116525461672385329640745315783971745237182130643986286986196769681242209158055233968514337282827558499073008377361163878234289485757903871085998186769607424493616481537894004352956794292271215818532072287250283129791063736563918921797985435970049030947870400226649115686366464531702177875251230485947839831386285232216706661591997028875975737477072900786620277000783302731748301378489174128272306966805567171591461958830363730455893850525424463884908250792984077822507398684780876582326136401690842775903278094311684617902710352802761952481779398383118726470871429010150747541808233302157376782717331222778899483761097901026885747677315852397579725827628405512421140086446889089383369875894778835919132414603800572744924812606176314962187189928100646669637872235596922079266628043094377346199628231489105109199174445166918852309840709078949185362914488549792864383010810064347694874682753939042484630405263490946423259538969976187698006298556932120439448148883413861492708458868280278910020844221908160847765928548670759793279313933600121770951625584359113446153827360916588408075171314220574351600687405939606898425834513306121863247585210023103550561027116348126213121257457492016262118093816941805378641158208814506788243161533424471436264831321820902676488756425226963871586630644738368544571210909081141462963965464059001618670272052240474617298173555758352048498741235520537690135522934984800705202623187111685636264043957057549835336597484782802253231473739108212859291346029214369556247383234800393073255333081109118644588632084741732517232240344673324223512984668098458376995862866691786421693602439824470268867575414291347367991028946272762303599435432564304786934284475869976139721802181373452724325114092264899819782474506160090620926865133824778011810485181606836177050734704621647916958791387156347086087304269853077186024370596149240573511693449862421927851124473619989355758898106104058171461210103385009102545755734236237138135914201185425146912583401371786506111163424427257010457186838884594287629675379019377731204222789223682628897305112376232828342638635248972978152281807665830270003190236652076885230964995588080256448181578196382709391931345514560563899153674594365236962334040764852951909105092783686889848512512599626136149029802770801422889971152545774785960438506841180807246546882709550212543664255204976997838549122461378875504971795628169991685834967378849497253868569520555936722381341606299361786884556698061435237385808230935775358023402648846424982973828193130495842918862807745213694164297355313427958535647935308028322050343268908106389360328215810229750642848927386015062014883799107842747201535307409390851919619036402932012097349117075554728113532078355230605512007134607354356934901450303910924040605482848574384552194984660009501222516701256914676143702522062570964139311510633961660930483194174758776687576585730563353600717131795868253414006732508047611501644018297612581591715791861604542146631102522714120474317947912964777167107825727319463591091400694033438160634988671338091995122470565216179525682928578115884249896941678675627157735188662168284592430037101539044889783998777615097344388967995607139120059054235003237710546038900258823759496746986423422310543252323762561279378491454446854085695076406734901323362074793863103814067263519175167396312183093127303804060485682029287132856201959934669125176141303708696409730009358381499925472449784683527175529373988961978183185255207295149657974503693039068096974582986287099150214671336430006939413615646636774701763252647063609533866463711582631825510170065718812769868899164493265106583033582264496198617492485209431941112244787327101452336656494077129370751181237809438961495664057237007189505158228755348405603391253671168513152183949996633979593368270554541393752247798741522591765628717382050663037832585605419484281172123670608075356998025402119685544838248273082322217380013126064620169685873289801183938078762997431817781129621157449798310116202582563931639078911269416839011032578332764403397012602510440635586523809677125546415586541859837512090710742826656267086190796005453698165751365881418058584436674876850155242785772143067483391354902353967888646525961817580566489025841882772360879709471106970050679247183304063313075824576501502274396886832605965715096338956691809721800888059625575031394632971191942519634015639525083085573119148322903017379787414262508360742943331701689040110463289485226662580188729402991650561207311744956026986776608981141750411748531188086150264067600444897295631099486043431287928462773320461247522610238817081583239687359251502835434210089688267480067671963083735720561893782001552821764442359565131926197025837135533268424761774567496892059953503441117856767667414866806921232729816598774207569890705176355071082853835682464634248489230050835898032141884752815049731045027810525352230864479686046186607352159111712736656737699511843564301636139863581447052270457989416436761684902388409900157272086659045460803647695873900587927355746137274118664153272985801771164276576829171336005446598669952397561569576635674836372735177404177101704757589808590393444319189207836570121347400219326361795457470845582336452790883869622012252553741139288663440833879976399849139050363500083272900389528467235069852462631649750254672843184554869722600003569995940724929016799136566251700122325779039165072792236888037571758549409005166559251422034269132408779806577101657412410055466104600466980951576719959677828096633764098352311098013149839003017215000490391686153144332506117221652579020618510302818485539700066628264018130104751920859245351446674475415081526567016538878889763702975783699504258234381609581756513552747654754468804077270619346005899987316781792726451741480122736370415538836961664486507281948880431613392890959582919768090600995102723216406146692996181320625092112737603073749425803321692343007783885340558108462175257816086061990529507650123122845888891859501167901309443148301898237594162639047457130717314434362761236139038646745508690719927265163390133844797385117445762829854939870555754686828631638827881075024912711441255276062960314416881661802930751987973875991905639297887971991693224847628891575385516859525386562342450619839785833228363095667909710603154409083651311577463140946371648912768794077127653528347856888731366511690168699743469792461514054976147513499346719232913928883443265960950032768238754261663445968137644371616337791381384597269801417264580643384796725853605168475224569887045503170425792539687252541801981797285886714706280330970918869110103039501651900839897399433758192799602654499197492839237476579135991138548537692763272128566642025244944058106587568757281238697633172867485419599466480408689546164452748765790986630137292099000909743053378892610145976622084789038824052252407363868226731303256506763919388566958289159024563609545709675116665306004482365797248562661131774574978616474484476764573773460446074074015013963489012471363845370979904234317651430596702961267448631568156820633763628896519513248659844193624378737599442440786916549511398699161948631103561720817354755464964322125158715674030138786641214019068931861461179700406460919746059595699708651699528132126125498486544844000870903930247047873367814366810575903263358032750760413688559556088640538145116961214219645084905838075489456153308597424848125056823251699227128877712384506092782339226527691231349508649832768194944372029010930522608175511422948415468900882495666923189185429462714306175986570496128544761240543411395852702048016378622552999031058650389343354404512198271660925418670473551715799685945965914987088697992278785626987913912622652274530140251888684466361882076672877902142714845192332529143135982925402438114337285709488282589092688069937898578461867311760447093880643074000502501379951520154985625963759079445081610589468113071215273018633307625843452513027051862445864525623405082734350854311039468791281677496876083951260089262701320223906600436211977357662517390993107342725892470739784725382622471825556648150832185028667314379022463132019965166293604115822685364597831014992790734991292295315590887661208775100177482127270458538990923850683374337875830609733935509776969193604296800069466443646666151658231037999169217539051638037782270265175168101470763517485111704008052166045188572024741054005382527642025883915436432800160237547629788470463764510959015190046151778969743233134703818642122950476611153602963921479231063102671211000381420335093189256594819520117478302197794357949699223562024737659681826094238774487770283261817027332628606639004422704930700145126288461573652082014950949877270949638320385050010262373960495091047327313072674967268658976753017420580783434097277856783109947987622017025973849560875844224549662208127043631798521184399543581343954529906790977608869262878919853329556882108657962114079408834837617023819215485615027034159978117328604362658635422198154417999898691650617101939360511998202942114431346301318189887917832458592955572900915871540151706329954282364970417107424801539144527995844826750552593726895818854819780637835735975890178680540416258605644691414181415853855931050749072285639839985147843175870323916624710747700846191176652920891896552897066114934607649056005074550175777896828904346672884586237608210915350101076809204622162450282473515606146901064736632534195335577725176206736143895083020909282989909359655046909429744280656130217302076891052429858519627440637186764480781470414014506477614646922317201917345203646100758413709977748490278560344855430390599238142653458614148058213367351993805261791499970750889240693499534861101609491996995818805666470764308880718331525028170631943164107901952958086130888701288151370990392102759227760348947551790884459128024563185572243097615528913532403294191739597333143269841494831577883639819700185955808931664802659671307334789549481692203874107775163767424964599192091067178712415654867793102858347300777497486939589566367210086332720752906608779100586107871094141822059898986104516329767912299928989676533634185029201716312585930701935999881571208901739407955198122459614469055779876789083360579468837760322084203090583324897768730147515852171940618287175627768297249119615558818348132477519931907355408494347641493152382271319344399141168453521474216386618264959594223610506768055829530108853788948072756725821562814203203407631377760634622384462735536555852294668343762663905652199171516857124997668951716609344905584958336748366724007679866684501048674766672983875238881005595574635192765652468559897794268062315731473399864137357357340508748779982843840870365579178216233938321051038775732130379749969521825245511769599331453422887048517347781273574893436558514957693898103557452416739001158734731505041283580550060148157092603024058856524887553052658380388946716921881001379371788757938688756452256071379804878651776141591281891612858028158106931820613064718156865956104726122310494140410757474083235808951807716779610338650189968123926208520370676044434583196167807773294373108049539491916878975239355178572845020467055736218303922463667262140222343920370288869210214185617082580315213472401813892143794953281914516493871156211736279321793262304995208747494711383099697750866519594631514757300296652422110823338530949588430223923303269200716001956312557842016302950093059251664164214417902579385725350823989061627645738889551718992849340642498855213977705509263408434251013385103475168890453421499388704663339484145005491145361771021495631173438922293173599106948458005853846049320523884019673280542726827710293758662595700453074077542982161805230439086275847699351246211827654392377963383303261110512293450644530449199902194556683439806050548086011467092114835676024800983688279046274931426796721349513717920004957332356897299885791591385751589892382133385890848493382149742246578382581282872921517096246856132096102602609127533130459631324944131660932981418195875228474304988466270922461984258944192344930201798257907680776974684518780422059898379164697453760156815005387298201906288492037270611222062518777833896440336180950611025762300562639797069698611734283397865818994648134943866416621889533534664374860745534260270195835033156567127077200639411371732188204614576469256082442562680635423730793683463387119358109626764606658962588688980744545956210494798869292219361055795004513221914437001343988898653085606413835320600114150090280728518310003317536208471428061502189079678936552438731746678450604114796656662134480459720232284533217695876020886734127137773513745072259842486775478918887123030052328046431143744621944613717944069918873597724558409033104787867867020568477858025693680031549744443345732261358977910113352981181297246639316799837220124850316760325518206210681588801597518406619963807152213310519316257968142393260559917941566525468363824540265548571794277329092105039622874168025377745080314957712906246095186537333533854545890998425387114538480868919011987124053397736067855674318135540208502296000977311339805962105897456109451435118741393765019668074770282768204187867403201652552588138552969516438391983367605548176140765728436977397012769399695411293108894702584119315718369834027004279713283588083752294665218897257962906234513001365738468381966203226980893514424805186704155287011558248604251463593255487419019220461060227620709439256992158691936691240216158524055954002915719332056515906612465860645701654789632386930745286913540503687071793694456702503732558628596379090052891350689304887792200461754461767237185891970883520939982936979801814235438406303714242902756618358004797540093436601900057062358638186305950250893181822282426775889044738724709263678489206487497026548688393589331843216526927275015443069727415062247932940024333854348125649442169500495233231645720575974582607811325132952796356439322101215471371153803452961587599029317750036212727052377991105752117597791431127277742046087075499965248330655821557807672119559384577646497985855989756900269364243377883556514040095397416468984963964132126600437447784376970048831210565040583914986760837214323684483043269832642561412372809574412399213882246263767579358335175144429420361685371693704631195206322236624947349690878940356992304046172145877817233514165845372886116266776997031881951197132745042945710974472598370598808783798583114384957104299642318495378228250059888916327366653916758452310615091561593850620518203712614709214809160484858603173119772288795102610099308039603115237828408287743160173540256010156737817606571836553577456789942854389834389730094422709473585906166755019810896197203453719249070642798881555204632531845899136345877180238505827743002776239024389637752208255315172459537324990662182364065888837114749725361138268682276676058237338180592772965375892515771109467418091147897465443591433221823157481064971070762864318223538351816024423273233000416894971005870726351431459979614174839079017201924392721765016767310023785032493843245931289056944068392246026008482110465629113319377591711039012140019674282793593089616360767233923817394875935838030040317825689937240572917953535191891953279701828884397362049406291270092922682625866897670794598884507634411433795468356688361912104550139297039949939639549080651912228263677305699234356906949139114829072635584014266141171577636481928787006438970735410743769533721335559908391768713996232048777253864962290282304586812826447194801369339547241257945665093105476888826717187294943535217651992931786227556781491435076564410447273459250230157033204400837271858396282123694023218249283199375389823267570361109224935818732770603133983024987751097636390600510005836744283628122207346732559970830399887744304385445834515929673623263617211596713519604082049370398167902392509810114187828801137601978837921237330214118245871956973519025835868714785949601596585515425202497264202151751260805614285116011616242316800411726122520910332514054735115670683827789442536490487626980693300320916924374556626889079806991483469120936714451146595482025386640038418405385975674883561630301559574024708471267061453007286327333467825116788044978820078832643069551423720050452199949653856617371735349200990432927270307480606278269877074239569576282176787437773709493576289625324890373529106924910696424309180281513396534134852590270047624515977647769385349074823960228158019152025176627229023753343664682997118084509451577865172924635954899871601195878075394894740151636020987282939675026398939888833745946322937985188949962609067090429229807828765799176569887875394846278976390035251866788131519619935837379710191508427498940839637227125424615957431250287405394047867604858527615657830554622372294454811144780653561485746484115009055356926264839639089515114263824310841701863551366919116859760568902923839909920507002654360737317966016261149402258254058703586060938976001257308229796698239492635281293938988485171388130323649491695400738908768662366510259922909852932369138261259974368928824367937276713534482897798022136253280450238266534802301438445105234900088568738407111432842459869673743197419570112369770829315715342477444531736555308133442440105709440718694345389409021933564792079564700541871690184889956146763275951640246789776886888291074524085941469921385104225099432145010644057284065122228279178771942662300319214022945308967081074357766253125012762206600487486479796410738549275568431836758083784988551677770016197095644868237906776351460328239976391459145265411599835560030284040361412178906347375586411696075265768719382740321643078175627617596626445135717340541354862143495410437287159225458354728507836322618863148736711933506602616482597345422182755264104483804543944837790772872608469092676655193450272465315727943508670553873083469415707956406421501629635567615197579711896258916433945224833782704648156801049570717377849309649821739880027539049337813943485892863509880291436379065338464897374024178509162913544281379311958193490313776960716688256510052566673044351328817386412423068420882541408913916212749121546812225993141964688513539922305187932236248411525882647834933706321296127341021052438999291117201588628649904855335264376826173748416548946790852185604256082148124022012361976536207731794025031199349234291353026295653551782785514970397898372012015729346166278909268891954191425986351398536396034497660310590722811612978014801859921794508354450139791173140574319090571560575021695052524438562189394346114008771010570589879959617022342565573093554529457168733715671252973234496915508186526602408152343953662149900205547158007564221873520658042402817661782618852990315097298075550784569101128630299828129840668453762974882638938371719442668239928010019236380511177883855059381671034719190126022699032712392178406791209883498392426605785873451518249320992275569460770976944640455566029521977616830668879759819887604303574753127319051910646287215362389473299217571788282021201066956174947421511708283383281802602496316238146939351647115897412995550335884649960689477466018235970952507015180890488089440036494724336714343452779754876497375704618564792340469613478391000041126981375297143642437457022596056526185175333275710128516126245198968878224496376190087433038452549518646102105321501521208483790305134190568597689468756996503105822565093442893942679201767436789873971060679766193261966169764873368262895555974759167629166117589091584204321648618353182418149674041358920001202415988846400218111198764762943369381972444859676172884047257520804633254288328610470982496866715345491494935106025402885140476984411869864281116407370264853351421573777262259349404384228301671809418215990513853861667390541865755695444507775949252106787966174789013701122446454986133934427183384317935682481054665435082846293644852564655022318849288696699336128233305445386507562728035464149877247858475362052340898215098546780479592055418123173377787002802905244180489353112326581143315734033943693647451254244322841211987031419987443961209752751893893959352091051089618564335277957304019592658574447641686510710412105368307068528062315896545984416707225119118585821643357559503278177359095811141630418123304709764984253718608856339122867331942330062256213878119008056409276713927473949103973512860018614216036103729012882487663341803062583091556753263799152432940961351722552357962406306246368703473268134840311522843756267628841189326499269481972033291899491681659805455261461184471019180477062408463295967382077315196348801812781327193110074490013969015235536388213730997908046822166283919366441988538381856973146659248489741902553502632415428801366235482574160801954020894813637618090059425507465070675054526335149982966853323246593329828566354286261693555197507509806328956378085295938839048292378134356813246380600978494289594767580779782793987957348487321588273326487331366356266927034179472844372270655390043492409067969856907761650066473923076153119506064448740576688463835551342088786691362454584883255029802554678687945770222481488782721000493822632738518453968322341479343169704948798916289218647687925538574117223078037173690229165995925996273833804075885637856805538800659052982029980672854958058736593616551161074835159425707348060150665015517118321820980176775175086983431024417771400344046187627434219006051049319810469029526197496641555714449910958854772146672150663660007611465742780791601904129062075066997172406833394590317967426501729460455362359197933273348329876086489407568417619253440338975014145271909647296817408957259899972814177336155990920215330731824581801681269066140703092488851726051515559595644001417817094071736701650518415433659131245920381087292310427981301934998552397767964384308216574531540294228540918220295933697440924912786953555917028286664869316304276676053071435713948563393104797535583409760003956104556415878439225521762804513488078443765443256544135197075554532489468974371912427524890746664894059710717003181031795849514925556657842292332576617483487472256837895592667429445428132123215738623892655934326528227176714018019090526759764956207600621028159101772298109572300492962213127460670015017688528695981800205240552509383736440037415420913230761610416551843238465008279203839044269246037817826683975497191552933421165520285372683956767349504204321879151118033537048159727703112857579491979580082226912952797876145990879540808677628004300313873109452799306690335763417558573818703605649428165927569388881433647428832842776577508035823697469854447877707904086572181250956740986362840131513034633080665165554162078975431403397444944484936362902292592793122392604823140706376378440190854030648634918536666300013355585444032967605162919206877541472388979563663565310414871483801910210483242778571104358074883350502395776003626161516089627104623218889394836408478901694344950715809170048368970136786648980231445759857826954772158228461107851517817557052066846522509285453255933789705377631781782762009689890916937218525702077532553037542785733049571929290353845722876924630454336548209125792193636013768135413876859019245450411118567424293414434229131737217172927699501903251719456801758540840407252244591241298031593031687951713769275973230815755315534876400344051061302152737768061750076808529025405035173565250410006194045663091975039194514865533699375888102083299503793476971837633934394897965085995928612616253089175961633365820261300584253145743413572402432959910530614118197165823231506063088325515670960432869234437771360845063526173671737158516569336792220310671861585376048873464203455770306440422867206977537055035325618889349050407471137245359969623623880474221487666562143540819325860580933514313410735101169719959858425230931716642169989909588091373325939206406436001162818684986170891344965587604429374842987328137746577600027245200502394259177418748693621229668959905834685188011607874260390460049478734416369371746688890638501115754140624179401986209198415234404664107162534890449322740352484129757532125308141767106497423420019957079068533202673413567686451465598278452607343320447622930469173121716241069431033983162690611037394359185748302243225452210203760654429934447831285162098283174144173329956428099785924762010844538144195382932907837659658753493870486695564716993916470780609338920842887107469209294916320425379856813474188370722749571151860871740182333178463388114952170834118683086541671815326104367347308741367074879386679822429991498542273158819823952132296708935444152188571575157850898658569310238493461013036250157038247202897394680684594241993356804995737704524235490061423696246344005550692806333946197288640045599695212181124969115918871596437225969411576123532817252501152282992037057719943430144625168617918033672307625550321024670389991305024641260748345610319264302243096127619417290375073186163362195963203431656497329000401238775212240404324430221443295237082796318888851987282742737359132368074320666822954674144774960742482605595098200084022607319856557321816132972915957279769812231794931253593001674222675523094903456023601606312701559653038164505874452368795614804951082339303247821972143242857578765038119791310874183947481279635579959609917427065054197125959238066733191046987947095645721658130281878044015001771956599317222796267257577948781035686486937097569312188219938340367901385308963175637342150534944660735400394033439649828542959838990050534065779021550602287900692449957412122497428151393138116687582159100645362992379053951089207657813571414582057299191876138388811759587608864854551674645115254379511475517943607913699880299481874477354849073653622739562929242779589881384680540998235793929039362434923843489057229566367023257784809598535102546001032542256064180434182075848391166659861316524307538150882127435646657132048740051470670492861274749153649094946452937388465526566357650016318217267655204689797060612886084057257582141232580956463862049688265670450653483373166192955251808412902771015707553005810547349852068308928486906056074781147043182299076095524581649144981532274687961918959260085984212967785155680043838326022896374687351835223419012758579933942278165359820949789781466487940917420980946256492407924463716171791328791970990604875063169257362084900120464524670050249405855621648046605666076753088659002430546636654469297082968276850362028959378434296633658964656271442771596561787629146024633919145455765479053959256841480326281118144949721939234434303071979583324590867423532824729488862716327169934597564703048491945937634094630891666602073875403393695302212974319360650295425745961604305223640661040557461126267425777044602472167123423301546846989663392710188747754998469525524821792482419668457983504192218364123055485018189503535343401798335954530036863581115203868008489206892579649151560849008410159540828109027697141366074215299923577877929385991063721533279709241119110523226014483412885592382759103369504348611513883055517361466691048965155607172125196671858933337617659767073668401890056030879926247388549656748941048400221235290207569565555702387153181451550427273054122540734047513234249469742027141047344532844299154515178990116096052990943557786352094761622267825138864605236128183085244020156044001675839174667834139410109631724494071537932337742450342191947701287726680659161102789357817305642364128751072978614395937662581482149320474351273002527102854888400852496190140181804941592913014119209656772543209429938707702230492125297158258172935937390257239050836730015341856881019882099881156747891833902684171237275211028395494052396866199611809355885653990355593676701279719920099505569728309233401744318300941357700553935564737036623772802169520997332956244387616439324943334158791362234761107840944714928936462044247265432351959326874441291042918350717896375211353702586162970549863250492061705629404594504274812691021855816105777128353247891913267525029636134605702499019443127433677917128496445408133204603563889193079948686660976153984872129084293175400326611780873575778437129642257068978126606125075253366914632041303561184052638996383130983826958907244932603558502415887134330020512205071838190040634886235134551349891453544036957915562790282989144805089924873600199937582815887401325818988117206870868446209919058082434337067511836490871368206737428629472784589481976737513401710269633345100260064818063041833702343136316883515455569366719980669051757987313305636198481398392565986552577691200324117775917067045880640651179046683915900899162264981854634188486835850030845253633265654320203322416472517031636929484927120755067813590342049217249914314941468898405234472843894011089434126019997533324223386443660090560839695647193249014687501986169098273446906376490255183747606625029061897151797498570897684753257322863960497560754295484246232577093081392965206016242786334070753975120183617952856377966888702020364585467185013397224263662653594446109297446624914385634094590515580893835578022938393243018566031767258915257872487277461273586816881762344830408535045475118905475755148201946003337684150307825749261764450817090890961864019549623709691833368258833672313031392962204525547383830057446989513934959119482406745502096849886810479830043117058495909577851151156485066245354757723654159621424449992789717420367624747763745750354612806467444446000848086803801914692505676049898108720072274095580172396191840423181156230533151280714444659459267748073025116037770995741295255527982295397006851883831289779913330511674088143044599502477303454067192660247780076671344308855540191675404805217024886498780185588416378055039004830029334780639904541130853505683980413614291194936275599947685228349595320759822564080228422692564623677407015360346863593734541826959632984605964093279818904215112336845254029040146486365571508030846558214862628054939283788382889009142913368089282626960137421865490532503551684230893020029814822669530797486531811421891337874098181453536714622148832853302643460177000022418603942256770425269839152688747083229764559163510467577106167965678655219378651337494089076280369079332943407903362465018752297584327765833765958498625287456651803081112342624393600194440332117148158422554619473049045439361581814024145706196140548116750579087010146742659588888699201275759873373693937659509197581020958894265973778106452648232166399139579873679258776645220603403154239877093118439655995162531485430175043805981507794319946195903041366018276201345885816643746944402076962555283109141550824832709257097565450596747342768056083988925695784264979961869800978027513458525057987592193113850055922014583626169801922883171532223016229127440945681054935890378817393206790042562067000014881346867318843652062703172120654522384014807606812579557177785863654594302068483019339506065305306969480218697592654207375306271239168218269420768962283840802421029253277437216473056871907416676519616292567120832342030671585387516013455000495863416492846716764225048406632250931543686715541833149502271390362624726412888643795322744661081920242530487291267313653687674621929587340659317033968908626324684287103982603725670301222461184651919417293288922678194521030682764683651577158093176119030357109478246087140605836720412057291264021518972764228281803832141508344053446203918430165203391428513157337725443385929351481359880827935311691431059580008097559037496996012807720404382458621007345537275335993202266214392976986129993210799564259418370507946412022129026726682653738628205422717147265413051597617364918306414382781642027347426420376175066488739464035394274492362190591290960896582333219791437491478410073965649966479783881748772495076747199864572339137838042411288244679414136318512056676461181647171476362797841788276786355194854541418832986172532827550687793889877809389628713608175593162078338999622446916608641764285094676493768468119717321223521578454726815911244469057700462232384920421264335276827446473297886898501661707751023695723355219253759306886577871157622990764252828117630961191870787148064260685894957093931777148336185855809678080594462599390747898471546562053317234481635534602188988659483161650210421957073474176759094135705130296169890992951143723984632520600444923910248066483884841286418152318887380547004626599763971414811633078956312172696151215261337553068061203053207619493375049034341359672259308772753060109903141289961008512965135343994286837451737274642376178879931114434507722959038002859350099310219273632631508673646547997627592170424852713257501398002216428088260605397740733077785689387169310000990645696605664928165248431251104028682992781024936238170307682880989681695592448896511732924473540067489913919590189644154690385778460370036728850162118428028272480976237657299648586626111352480000203827623754233784293344256604412559363312592730755026415445132886772190112407034117786947260851367009958970676698089444881684075008830897798551102193216130096060335101419632222179866502407120494125819863092830236204615191878234729177457403529195386284108946553598877094659537887343818143964540459848179822705815615047561322458320840091993309885729615195815619300187608461739798933130252624280170896003406083455647434349345333790677460896741492614768249636381587852403941576786040525208700122477274821427818420662183534601726170053321258128502554355400385405061966669676349177485415575803315583583876980532564024154599401497396179518155236331360964024405791854056955526843294304615865059577035800751793470812634649083211060544899943529999765598619002316652244823197035490225839837158010082241966675271434563884668927343028497150982205590462542163327153492213455209054715365936538834873069793497076106521468566796992804792674407561120630473173511156833838067154915470430702447877664946540259343956531953111174275987576583633063564960011486273929449789825955560186882409886695132588893792275924192443163521114676984448297362131243007511489124665548551751504129710176175452679439648863056259349475326425702532174451598880533690562704202662585032944927171579820031921108362721730562155734168600272136023769479313926801935800201075345300359636721131571346968451925895750660542824811934477235094431395894902899693480380297876943356574212613071797220926869142549328801261685746199992232866947147964485028512698448809654215135709127887412339090344917045827517321690126113318005709319954067493805586600322342236585166454595804981520948998025844357431613443676735503275084170533107243056285718022616237041389133135673199349338374596765557222711762041067004823281172477909495714620055614867515096702692337489155698856809619659231201514984692640153113076566718603562608686321463781919814242560383122441014661221342810221899998051695616268056884728506613036241737518825862434619986253869008154029141698883902262897257187180720864294606627367762032773474286939794791493990229733765505537326664591436554031342382173750200804330392456051166146581895190000673474959555053645971102119835968638639458422386071154972621495777068890380901353224474976483817916754021516199161355900780336454416507278767998458401698127082709240188959066427384062342234092210621171696497097850403025527129117602419447444502199266247538849834552820716660403331943748249893652887505824446863812060869173633532383571217298442345769886797032868955677561386822276222099253490309316261252258309021597239351776602402813650759366828915112626887532469663947654664156707525787927206409945743596336425876612795110101912488356097032996142800509501610147864278486316170457034186389067752411470954060452166848553233010920860862253093698334713766699280357782044039460995178548899070614146855470324133751186821896735546448849872355335781926263825803795822662252674549303365061878831432294749503408731625643793742036331686105859825434186665434479616424700541765315221488347592553127345579644166778123652005429141369488728790275295069511389804462735756811179577358772732668634247562623007551740830663768040096179424639628729337782433913811183297954738518958261114912326207795237335229182356892649066225294682782166933174648655593158005826035823620907465958619219364387490861110446950431705473969534710406463593227781333825070352761526680064588116717045501103031444140962913849001161034838674022999102571243303958525324354877656354524324173507339792724538574053003099984124334274360734900355178370583898491961939846655098274774231565932627883123170875457045378082092528880788985673148520479196912032389188308577619005424011006608099465942245869478889560877908346205427133242708952415308585871524400952561323630183896051377749296599400571544435281508763097819176207094696609799603140720273575217375798706598558270955145282486880048281813128316714656255840707466952858076529134265344250135856453665454590774485970594250669561782610568510024090584325436368594689456213975438139549410120811329700029811962066645612999198595488772901456028026376117959815413495717567788759619013363311105506544801147920192236584902184786083807810210338625942418463964448949403559520799031190378073075795402518491854360831213979548751216217596454039494599915469934510464062053316261477364752606031232948807640727889661036790114479428515561520767020606367637455403784952526326836728712853767353393676362917241766083150614891359487561356822756220526063255735409331801483987428374439662332055974845629567528034987246021658327867488824116612918045800070687883448287127728092088316315698206821447836752489289880407504620956666899481385905031363472662594501782515551134033671321205236221635751784635320104841894316320799469132088754842846455871714082197721467698646937331381707020704587236851320050312219709818749528491239372270220081016112081856624807058237935575531625324539492142513873848235225872061473394187733404849476791393197141243480434024291932932764600871121475873562767557683338100090475810734211887644403073425837790506956748167431419102163448492727914230577360135313878093613934606126976592177859801656337732098531760061386758401041238847273036232045719539348077430807333061265819422717011927415782753412604268156337417285436681102748874049145791190970947655944918356047770771449931791125062882713262013469686096224896864768587193431676833463145459630580217756340221571955883881784631115356122664548768281625140515353265930067899965655326382549407895044154379341297864790596825225110814592053148544267155699424185589250163928952069795566420219364968739662047075459166162557433381654433030612016668929691458023635317109444743300118545804368540235133596732847741807068138172573774567294893986561387793290337183522367438213774174931368443012899969533089251099885706831860953624623128392656405043588545978707690860597476154548672093990556443661004071653198096336636753902128284587820141646195977650168753631131604966363046909387389797670450522382557230688376573022322073131804020179384070844362076338791373770238276629380715195368146710443721567715108268735747248889209002642842587142025487896487847640966339164285205221543407986298115353017609916812895651564782702992525618837573070105898101689180127571001162042605780514883758132866299675305895991350830095852840838484848177080204941537629250154990796603230231763223566002134844297695184556308046073053705799506067595101644623408213561598681735212589610062919568241077566031427605527145562689400875935738341108895938830744631959933843048308629117796598135830482191565001054651916950498807144843928788315449122270308680931092711146849315808586697444629304771422709723084475860800721671049540081118259613903122287987433094317521792622421081776456191767292903391879159134622829775608715057431716839327306723108704336849193754214001392046759589835744798790886885399381315533421497955393781592172234513860132293980326974201830912064418263121352999904671869407877163122291198285413016887258033222957555087721713785383358097643390668714927486872392231262086048693080568730071692549543038952275437142664580476031074666585985249361527246133428222884418880038469303803959099470313595151957772850736760506905334909125622856547126529207926621864122243267369314962670967721362731764949803781808066991840502409863742910678485097208363185388992655186107723588156027429966695899539099534533880318907307186571013220855636847618556033056187382034510408646181577646179102107663330274630864174800861120766001664115219690856842389241795733000753532078164285628428540015704906482596202340090367858316559117667589500031927312440244872407100991759576183961494078039275806301933290090618559278443405682963748409372709182444324586118784175545897579021308026290697187997403216190756220748473450716783279961372115070163781511245543532326469463593667132313584289806784194476019133842360499952487463096389741836250708037599446714992939926949272981569951531835505114491122144666399015836438844887321265735386011049524188086849342659536416624554331445998698741296335718633039456373450824160755724826189430974603297133146239305239797560597703084469572353377704200793715209200780690032782236129106689943576306999461595261025923050417164840324232472764677326204336973904579499362793349286123349067596655284653570647127738783570358166007335667808516491315515984477476021022139523169880286128313148483248003170695450935663971721437862575435317838080837064712618989943156763879768278614086347750029226604946991844480942522383501823585335897597886957214908032264242350431127219013530525190023750792851840701336427978854277293606188099344759288460275762946959080781456343942232358936082440110491967637854921480862397613183572836812509344368622104719374045321327123373518618101411893421126338183655097442155969118028977953218816067689418012935841243404454024350580617161259606047182663366538464406323875597995254469445361680689817012982585803377391343109178383848590091682864103704991976379742909808576500877083896055081066800175653525972111821984903286014299470361519672142231040601375580046844964834435954385406855187336424177593707258731933469580425449315021583684575680292771832049180425206321722250205271254318046616546031729546305827402818127186897952146056097911100867118006195296700958146730054090929804607977057190427738326055361987001578112830651161534536231529575924491956108005068745048218148743740171447972843184112783106027489580317522222884495303749550542462826659724766792830181969349092254296603268390563950580880938569999064551238605179192787933808732746595581310878547679760897290104208156449259728617795488843776351070768218999399680091055865604872575330896792964735935603163568843346729866729748282358226393793258024986497139927991177160449414280424313971404629476378322858803585907688326962339776993383950479724613023640420041401312900054452668961994893794681717897331260427037951429118709173583021792615681087074117994677940436819377975169774433939825141846141121908580278502858214743498402600945688476508467042065322684442211539528772005560353414580251889380880907004881534414135845757119271785872077870151017847970379274128599708555339643513676998056121988741033779867731206556830337223576449764677435387338323481787600568927567874181407562549363096051256244722945667430184418277888066194659554809075863324173791268986128513409244984110402424643837776028366266441848182040446763378554826769698677554432939754158702472737946221475746437696496564899875835071770689528462120400462771514719833854926808586610536310148866689920864667563754952663485492196451208538377600969779423118940754176406099118407516978056297272175660644691225561240254826217933125414700352155438862231350479897632630856357717397839373009305118183001597621888372092456447569893710212577520293124901295376008330630840257101692801537407627326708109029867253886900593718055079419239825455086845261623569404373271224473211458001735925175211839155099934240719822554586500939474702837705889771329965937992808486158846146702359244235728322279977740247676584517826221745344737613993689215173384074099586850964863958488727581264407197814072157442325053398298847618969421055788004256203752676892872997800936272854976887098067754832822141630933827085033312574350327028670040791927674651500608048884834627564358606656054107276065894026467142791111223052687468066436125112420335291547329657999138999535830291644243993915392925019244300792262344462955510627538136909686556528171397705859345683023371036529168750723991728393056336762031970830787681679872694033627407108574147875927612086480420176252610965995724111075256555789046451859473277252670523083528411463759109048043456555715453425497089952199716887505877299439943775693849608307271673218989589831920278403041209902704102463070533775361594147123748942925003706342166296825677308724086073306548280803241580346905328042243824514437541441264615024645795747276869773843695596407336122804188396573426109610144469386894951686154795610798239282268677482536225842878300315783257272788196029921248581863802009140919886089054048714682173812229703457364632971111367111587666364308457764864954150707219635875349264729226408371766347767096063561771794768716459019195979161526442797630553948648959611840230057281782278524278998117347757184725265461601392497341881228345398908097000247876561436869929269641936521649095442332211231613375796951023053036910678021426507313285394013907695684473811886622621491698570286474265594679217806768205422736326220809147604669857503329977206623797979355838108205042726954734047555206250866968202430627171965585251735115629089893291854751513297808365746996230308973852566903434048217050823341233657349561149475271127850550073247603893620842897261367604945298968531081755759391709801955471360731350455689944951939431799630274174552098176497398959866816562604092470622852677611175224794254847976722432609516054630623026491773370443926623171601997815467752009644432019723025767099503607103832339585246496699830166783683926182696939544006170260314114565924781131794641295425631792609862476064499439657639580408670539102708412632580530430045650965149173138361338079416221163769400108424794030672837145488745727946595493922490291757850693100031947706173631936309723064148080078473908513415833892182150854161680526239541645696560075077859679880163692836078357197407270721816638535896077112287047593378629033110902029790364248392128571062206887602655866905696961411423708583632825643134530768867777692765562656853210559901658493514684710173847892321602875428292941424912316596684306790517630935337945126399657940609923223289744482829806505319362053234813585754732535715941068744614785127474381371637371703739418299422356104432894039160410861295663817447378115236991199960059721339942291123216207738963157015226611548379611264355699122836356245063013897109917976323996138658486336532393847125197948007080317827625613448841467447710938202329772198592570039983595487800391541165550675647104780162084463780581858316929676508794150281228819285392321872935269322763580710583983353355593556642138978093625141067292499326666900977685584092429535032051227239318549053505702111865738867573259871072326613922129429889641399551842493765865474932904308385918138591707108055476012423261576133600640441803982107998746360283004758408181047108442201090016259971030349675288546332056659642420927694440563760194743102173450884563428925001795225681240259755580475356707671710686300542625755050194184160151038840709859467015834595793356496772151266678353855484700164297384741278821676208990567933723868694162922996544177853441366678011693852580403962703625749177507260262894653331931201554942271113281954364087130766705580068034789813707213126700795496595242916363840526925471413402992611134596727205871445631669245574092431785481474489396835619447229708839859643509096133489197913932926078415856392700823388793906381531999517083026226306334404860487380218779729870465041986955131808837690950108335056090618995241606969411425373201669463890952344155817968201481738103701326507350646707817115899018539782945969130006893644279282886888991929783428907554151035837605915862968180204696283535386215731317876441937215388193452860410467885189718355972607249814306225457418205025238165849287706044879137050764682388353992165253838849773011563554980333070563374974754915845672899700920944309335521577398038507510859072522610090344646150127748283772458856317290409283578554066317242173410658194815006024725364299949016600386097386151774930123616193916308770090638411391773576386797429621000484609660611178850261101143928750685985252032984786283356011158953909115818110763080855210932145019130105558712859887371836980920461050379379513973640182753832071845139890784473872134138269925231377113203697612994104682675265660312112955520441002827191441989587054722356288660850712946846449777333325138446191637082362087506552452634723862644294791038445396080706175479043840249322448156876116448996288070400642751365247256803957228721881257555044795720042848343149716284414755114607157844103560413712747933929788061386312309055660017278327609367680948775463968106916750451323099446306176325300675902450191314662161207965002009678013686073718865845346153216146137660116949659227180060110387656386345770338537081610519810439661210324741153676222501637812094041956868304247073720505501353534345836429038153997462220064538081513446925198013332739063889698221141153154053630023133661273978280182285650660740281685064949506793283194685610238112329441233243560578723338621659848168860995424704912916273304587055352858355390372714393665039506987427787478655942236523691285740945054684704166036795890191359015325331846290649483026647401598349740372808938679496183585712652542828552838713204128933075294071710173540522049754377072504685317100039181053628574237777336013924139077742103703761224517371242933015127761800228246019512829244799039720795478140313514353270426927382385057697158257709516325661157306454732490949972196386290998687170088979867808726313832459742483615485479468987484271638873569979096075044957141314293197059040027144314316278560637985802315920830117272573127030241389195701112360956014543017904031310219866161182798665065892657538390583480369583469512355019987879143420088079829408756121079316994656696427470735389437321465267621635342752020387767877217610821677184127372288376433390078667697609956697468879151473497947215213747019177462122243553341312560250475883816477778651087653126213452677858194763088504743040804547651553032918102571168106002755896808050182361593230452708801879599061087353463337005987556275592306521480551299011980177455723033111522630153717672261583290413036501988836174150699603970284544311856474328709370507168242908881073216931804212715364665991609025217606737545212963083200951800208428431877147471574012413129505846506004302536625094489348663414380352388317007582966840698931886198962219443409091211489922748523874516840900103197931334061243906879581739836034872182327502340480314096837357745042545197067453135330222516716862953346869847808486120473725350377835270725522165905022609935076149954510023015868866754433292548501343161713751997096580897610195613114846798603976832248540826896142349046827817430873383786715799933780450721087734271864657202340762086204139417433861933824466258513820205249162356427342079621292624150914919843934955752697315220623571478985291141490916357318533578431837593837389483360025713899891558805860861193599161447697847538044464184072335342844207212739956475569252585981427009073464943292886994635814305790069335927569983293775709285878631225188327568381876199754665130213412840743016132301338269665688947167126766603625069769761728721038193591088096506891071307848408479537523481573423971575355549499400414257139916939586860363461878003686793840223058772395004402932139892593180527376070305053512484265319824525190706563117700817898414871486049610426642409404439327588792297395143868860360584096372406611733774167811650153185568581661454988988895861900570179105146738667860514331737677867776670167781625079507936524260195550012731959866528510624093043715375233618832564703814151122060000325132963407626225005056654181974316520848285400041419652045478798707622954066953135881676883305737508170027994462557052726882121586879521619764600516826995185053557552156056156788833722023214062754515771908945571026605910139595360942514608686418166718026738607310257823029113660662142018229733075164538135439469692977897760508583168773927451649560802434392398123741661477179967945071136130744194053582239582769621446175450937880551545373280125899115630840491729603050712728295758052800354381628170211605036757704161291770663987082172329755694287364978268731902114682405094308394799159707903076395071210578996365277416287366711434286696197939748641814685673629875150557290879353248363113142961851714404484065557976429834223879235346830980707137765892261052654416426294811225259118465949820807046150065929111928782599518164064161127099635105180475628334370992093885485540553761613534653923323889333349326756313818394049233618884086553948048279181487153761811106097497139898801874285613708687339343911768949012536612034433559781291739519850604926822771180426923736882937375302770585332279246573473843192613556048922057146844452815173847143056023451164928788936005652255738338569967486792553095056150715933521088368987733437729432202504487298805402497725080959497241583892354981141444286369948558478383224491521578392461075120696232680558423024657103294114586291851557202656635838955316134561888765010163441389390951768915914619825478081255015116636812452270362428897550456358773473463138175336986904662583449381278165536492361352410204860048171316599735661306459966226431780116861804004857555061580020543651306699268619187034817865194910382800959954592336449026941441083217682828913550457339255051456618497438500398049075948381664243534019730496046863722175558593410755758323839259678450046295475538139550776990564411301547550814225320117795120680849186575289347406225213447900902071325270742984154650675564488543175849211481104242305289185279171579495152740884504596218544998819764367294609350274472554693184708849196826989683725095727132103420968305428129584795355111916779403462350374798097763368015555084855417904449454470777182645153893192119770866291423760458462012689457014034949697276337412161239228647263075985278353780747116805934134585769443177266562153268254340420129902851848855085285104535904761732196073865777289384684588417623633965075488673919288811863923131675984521107451407341874302568689900935941395216342463462483320367549878319113931898798826445217911514142514498000809286427759145268852847326289085359408229693824670921819112435060035175375876778145713277816619915251534135415671016927965532960090684028214648107579528218419484753010910604444150018458338329539337519222769304311118293771823556976056581452867094563317275682437003551553653917091514239949072325242278914848080180319457399315168647675387004244779481958646761044536542107587945018746405293165080649843395076804222292767959211667734826502135414141099023672996952245645803837152088247750178311808374984889715600085171029161912885330181501946970654736958131449033916613127826638838714718880698081430701108161444682010570711237196031023512373556866061534952380406234759999107604764302897452855339320874220801510837508751243635304566199098832356894913148586632447757179943112187213286715413595748396960424195602736319340427707850202637522399794895841378523513456938068201827025903225586511608926946540950299490665275545050558640110418196485390231837967192064842714265622117115675879734031215770129602094508225848275010335023655743855882825137979812434255633352989549311822266867225347138222711628296962905465511566187918179882578366431819389567608976951452542597165988178579750164231722411019276156548445564825973315402147957756962463244740298623437270417878124377212148705896828020739839077543413538164417252762437077452857312616661211996919606712788180136454766135945441816252748240614725528424365980411425918712418571113472747822408252901757963792658632765194905361237356192219663393127241640149225970673448456344969175568770067035864780535624614880230577977753237482616802831568049331920877247935790878781762571417133348767773162762616039279241106951804309345289498556487413419862035951384004312549035749226314356379938018766795432031924511875138103845661771412427560280892613959218501543955153076343870338233027882529966061561054431737010310630794486855795984380826514736811837199241957489784585078039868417856518360416771485989097945729265285245839438870977618989342632439625392099240308080522517146515306132173336546844649169878088865784171800728406694229119006195828156181337939315667770399994843459565314356490822820644420924929222506673427637573199266520782668830644746855818023816683331790336690345066366875355117436357090613731109968020739648109388700002571614955859732641658963370777827146798541668521209290429913343585391459484463232462985969324371180415988315767556690366887820556249713049524976349866743306207538869757310358486838460796845787668801723645335512068887325824293726501400584966990859527686670610365981880461237842797122147051405124671785343758518106448308710177466700739751161559286690318472472745091413087924762196567654115823727378047395454919226191946568232482778403900531186182820163928486069391399498772420116061063167900182009590765454653988399949668811568146244620823271798137063520901935722716517506738442455250809942694018411645267385309492941286416050793795126549479907228937225861654589052174477524510155171798664845029567671728650424690874554744727235693326153738334875564661320208409697287505268429937189299633401096105297851465419147940457840680003834888389784028287570964901933192150708168964831211897737167010980191937461412319889979738833379322352865830433849796147192105235148310875944437495841286342848363108421495654339182818588969426414701721943472093533083515324408536271589605852347659922511433759063041973397081962452166519812054643998571630482614746911155959589672651956826998736896096666414817240033679048994146650768064005717966062988050490330375187104563075087594405776272576708557107888492896931008415532950345668562201705097057883297006273617142084921589535236664093077712587609950488492722935318843851025599960165440173407845480112708464768970716780024594969829573850217739478134749027939048003943656634037399446148570700721852242014022072677341938551876837118593022636797580662634254391382253147163509835047295169208381106845137941112991358854978654383835303180513356384001458028538983038660438816506763136062433481375095635407661367880775342951860958149338883970311188805975963431592872830384695995128643939302027330249336007653647279336120249241002418920722145036600014158264258184145482489098245426867289886801282263258844848605496337588179428966451092691990132459050139024616791416676625375124850896880909616740786538985639875994876772405508363345294012689282074109998842542445279434809930471918053997062510422905675903157559657893335116550021909576463215759988457464624709081936297679354269675249982252557816265152477043282824809757117385637929335512863596505944747025084644331700159663534032818563096152652199191599639222220558548814068442647044283681913307676760506253272803692287891218750837975203285071869997190651694073176509638070118305885141556677383606949529260958370700535492893323951641527809125031140051029101825186692651368434893564233656818727433059531752852508076215876052395364356823708109045476770037460877268219600754807703428093033541386989941973623627509804423353933499401490860701443037784263017730169264748879078605027987368630295462603246911214734327776060264178788753916923052888386275732796222645959792908896180809303212053707672930888590125712895824537190457624831263608600069383189681926067778764404384026401191006878472219883680430623023747576322057514253691468913150210145423983709408291408515369733143552782703180034059799541773711073421628418015628864947785655310811390799432270043270117625311560203257690310243928791661973729198589977735727719253921001067122910567604786761766148119115696550397534823903682463250561071648758507196391571263302214381608378172507628382603528078337022616899433793710621469836759079985085683267509779636513287998084847339598609314952871598051384309696203712492726073601389810680138681563411893825458805473939660609955610639062182581249883427791108280471625295803837421097657538409730180052018454129777145236808769335835017038974463717550690470745852959447473382148033194686038926191140702247478090500325377656407645555843827551638080191227181262820856601629347142983678271038565863207135053035226458778527762342546471278459341073910851481709676476799445114583850826865109878366022866544673324745493866752180863320645441835490405766956469647334886528712400242899595708666521519382565549096627169193920711703120495745126566166811069134278208120716204219904259368114001107196677304186948431851532356929889036553302088194479737481801573083267401729712793709685514520271434851131911809268633453288345181985532584758841089562945626464847646067227758324635931881507892625346339607139477098298356803091854080961115308572101542627336901017494254054942985710540403295904257587995908574332075334697749851111195004099692162835754087176829185196993003131351789944364419699775231244422618474225032648488947812870224926475938800092338909052014164760736612793641662930108881676998861289956424846709628415014015627777628316797830058688836737654428983413569858915864683947057085694843238634376333602088590708441406535553822091598696863448121515100267132341644280332422204015185767399959794452823015377948350346727955502779927384313469435297281352041190959603263356950181952764584940170007608650902841079597487063754343261704487441490574744292653121200227355576627338334618526054880332379041199302025408763922447585801870665188487851855283272408586272369364814814950145023749032812613900815609723400261104659508447089720337208036557215411872504107045966215265129436382869290024086871026610469510595306517977447282157834037243226998798477621440788276297272748442191929717094924509905419912464807713206534296188113240498301721640721886347231431996601778518693879489067740476852461851921727923192535814459481824787497094590375024706199518418528183638667463245848022820509609462129499694339289444788254075136741368011715966227218946426710214136274948184452613677022446879380597273162292014763517441224720352720511401323082721104013197046360084047678024536266530629055528698430934723643181279328242890309740985240378665036964140213437323063884948243247913230002288304286048870746825210616812272377561816837438172660709854228728003365706808616580782251190995974390947491541183452834194892046247449848390712825418550524745759288408108934439432566235609760298463945043560159731293682356430302418450730856829314869366401341242199042760992657755984918415568069014084965241118358496979011068019701189937712144061116210563091525266236000882543421200401038800152962513528983155581462812524438487329905336688841372894607729415964650466831472074897161452120007820500613127648817986213362171152699498659878514446046060639324000025100587392810757848612158481210577760565408444019101787458107705208180141403338788858462107511398970557361966249771132267768308072257162464135473232833583759729452336245473244140090271796705519777031301694799110761146872614908816757000977061062462499031168715878103549286612310987514277821935110063903512704265389014841266519531529909731066046670740376582871477762268465555648735549022024440796252439558259642836037289041912481659672872855211730842319604391773436067311853659846442608787234195502517948004146158615391968539092150475647350035615893786697088954199107317754942856426010619426838201146581382016644115103776539018486435272831107382790432535659644842061838886741441630047619300182718052814865101228781909014608313176082654928742647004177950668581065327554564429132595308952826129527208711107456018683546937157553644307735159723637370947522997903572405954229070407226591447655213657844286304820883642906669171611112920322473599571704749668627772449523800992322128547221166687820354887823721427644468159360150041723538534216213629658370242413209890252276911903161171545852468270909299866658649666765736042403180852317680652204263584216914854272536919314182454902892136527576453150379627983004619250212855598673625078849026862837740533760146870556004910063157134280178209834544376708915490903581890543215877153165186422600764035462559844270864005549195801102016716349500136282245770660089374525773037553174063418598698103474540495886241450330879872499494351137319622732317750162412327981773963774186564264758234997661525843283743141784646990105693919279289898087933814431266880637822069660741566874801180787849371456157282774799915125150462747721835585307803918266312143887745364789820016681195399906805625073679913616904447796614602298113383849408376837310673439498073373140686137666769486095985041673190417892936405683733764596742630167721810976698536816305174095618626058272387819634758675226299786400081155404533112118634730763514536107255016227783640332607436791449534379649262774938915577001095608451142339870965643756645430516910222862046621381359572831545103096140925533801994943159012048457757856712090450957513297803797141779353138666105924794683424654980710570428290628947954511646048639226111675643708415510753668374510103234808393359063588784057464587583482032069306322150301220862223397467981941717510029098147112156150085367059380504124545862423947684151119462104620448525748178458095800614316562548108230602896066364714207206518417389280764266219265054671300441331995970843005683417673538010668651301625727726681970498249616755934387677604920257044135655376721787838186964928547030280725590224393319656658327466189539453600047112150871445215243952768355562540868606672350146290525386898627689487639552478164510996778018240548444099263224092555498756907434821255707953506307072350048777488974637207783498735732592025812284365673877456573350478021591714798646171366876313675371945504062014374520513761529799854481834584141185366616096968620913074994206386578501108175327955609349222386463161313701340658055864077849140829844505610265387381562468399093240387651802907645659692187898609069512634889540499822289973875996558432415137166869529210714441202460096660070729666675512765803383256646322198155729553553422299362278141192618424549628303691301814455700295363681634365927702277798843241357707385305566708083427427294169295948133370012789972779639776159266472411367419877830585083396111864671101133496994389850772868232168516231039702923800304315699706298822352683140702133684277081555830028366954770845693065929730107881039650602867627781943175866883254542626825658638454637378523939309852742127221533186669673185484724256707754183705330134313704853882515049447640424760308058165194887863835697507004590264712458928456531855809086139294954507651356187321494183031775577790417563041724288677680881162325488058894342155604686990343915694670128426591902046144825482917258506140896174101160902784666526918368130576203356827978185686358675782743951537696162569669487894117628872967529988785645058171986173611432127500214559156837377140832678415864496375422823510232321780925415414926612613167626188244581899442188365594127906425745754621777855844525758725546002946906013174918297522674153676475757469406641232337966873124438471370489686517621712653771644936097274809890584625315740080703372913210588353018090963436617134203402797260530855062716441758304218003419562084441199601698037291160352254781978766828001458926003339652664511858615665582021416824498557372419608720535947817642660730751351580675081986611309424163657828261061474468117607162347336523269224150821493642264424419252883970259460713284607246747229779037795351403006448063203695167765179862235684398723763270790990900952088708572594503849035621267523429095144668626726807786947650381238218661787550400100408405373533731465198501025958404591361160209236112320267299163086680609482171989168227256020193364343609180144458891760149532674541122792130057762293865278940856283890884958687708268737993494397977204480786591091185518699117387054138523626530712692472063513173732645088033908616142317370418438287104837822257151415371925012963227217411941511060066855193979379565994617603651973287628460156192803396060363511953269455514138232100530092721791068688436430323585002548440290624562294846110883003439147579053681456675688367975480517159683583966435221364934591491793041607711409236437744971493882741904874820563056159855984636633411192049064699274666501857008410194452884217031935929821856624369290934406098759928682299274531287372734046444363289161596571765423061088168613242741646681009077525283250766332749572964954812078534603609172739679268099153530343777312776690260289975380997880174314741856156156339009657525899788599705384110705099359748846458186074762579532474873748762471188644197658002882609369943180511628521364006895220110294482117799999646970211889397003680992562887105172687316572594694561588366420889933011139617638277630453547195461909435921727954382094972202387998429412054600275271168822923652172073493168196842002170190488064941903096686160832853847471277255563804569460089654693511092592743262191873580277833663999255187887457545883229720871667076660914006514236786154655068858841568455508931802675559739235642065660625727370607377678809645987914077115193828798486662039053837147993070437631892656399773487597843384735491563987638191352559605993962364118973840560528896074945953784432342847957815002119214084131675007054501674106616760403522113932894105922896798389789715053237824278388106221720748278055824884616136578593757756188307115458220813246980178024656236120679053782380900288574780964191283170618236743020377807753329976874581747499739841574065402639418735748385855278752265342560609875493070991885195238492966470800911440673459608922612882596910131853824043305634523145044049514231052203352512404111104262955330254031540839699184682508929790450422762169426604631881399166528163955671414528969166317831222068280241089484651881341885130213612168154520002612751994393390234510963228345180346667278646030786376459461997249649940289204664935610841216688416891601165789818130876423059811298342444570809912523010321598735645583524767989282861230408337627988676596180911585388426306443082613112046849968700881709678701684027367755761240482366631510312773860057991251153927170551719278562445890790441331247593800997824762211750506958586554819515994110040819332698118079638581442934937998352556028228003454730252611184979328523111900463222882860798164376437460016814720285274454985901766901575232145142609285907906910724516982320961874545975085603945365108549829996562877389730813054676405275612445171266710432495879060961907518182535815549026873282675163659730178166333443115923233638870142972328052181604949016306526602651380487122090802495709191678271654447640145759616053851312386333081879081776778670417283838441893421566802547444692880056956353085935871109102421306053657987779457886653817289128109312661478020062922275018512107669382169645387058668464600097099110697555431275853534020276044778746622135925204499154669271691306421587770613552053111835650017891171216044238381356344183679294293000867965551706140195429101571265636114874285341013711481206399818943642621370994024956787089805566336383777556285047706404194189424723429386705359595322476714215838346177793488627772847713742074786460469272180016007462466471029869348607497952126464731555068750123112577774390439554015626258481621201699073461541083817541911801199047568110739864171792018962577477555725458438457396845629539117898850671477248350539181192678833764805718251697396900393144703755506992178331414990107881033311678057027927294255938689450533121827514464670538706721527742215680838809952486749538200774065042134347088765568423609651783900215557068283623063817206139079816573437567572996105780713711547918513066388364066258738858433647167194537041166408168963808678779017826402918715856080400760685507723707625873922231764789053284914174789016322670934219676731836995846466486547164189316537785561469521796663727349355242110816883435819902218592183628701645387506331511982820419964885856104523041064553198623597614112658179494513334250793990999785675789684384047459129646979306390224081804932199133088406524254491641644695421253724804635485773570417875701059700663595370716766142126388812707717539044919095364351572023294879597037025847981168649613346819125628489609863261378588415621669302434733839268915914119844307890766474713313021158882005975393478649768008696990303352942488958494378768913156488202857756598693453371187678729830344630459242234797642358315507253262647876084129678499218267599871010943748561197535396915856672275175684392166488217271390398766922384057386467331849719649291906295138304112138408267603325752835697719058659962002371158596947746245248007448668882150024710797912105064860617976421802893605900373295052842906831600630897353882726517145979971917369950786807426638741112834473163897069482675740070791511837889312729759394960928322813070109781913164993249017639233632155572777770620724820233264705484842568553958056083012928923918167265376604779917082844922010097806825480410277855628334851698225407347874738491202454939409863857037631357626348502762555185837206330687464016707981144056041398964889943064959048336520635332640416082121373529851399882176891502589118009397618808015713431222572327032518047334857732666581286851109587466587276338082479468212556615167010948850296561648337440138376100400643939503043383026869891660411223495309930916750009790176092852621529147602178978360716723919027262828717088481352105765575726723435482164382778790530544068061822332045159358535710754268524998416451174018786472205197020205133598602737855393876858599267977587602564731414215830446414498217006945823453261530943038700887397074814702952811534279126587475571323746179679179497384682856674475311120847739980333587954379913187172408564834256677637203315196022844043535187432338778349525180004251256615513649607724339422286552960965801747598491413808048884561540388319680157655942495902335096180247346947432105223034400248986074516420576314486327166720046121574888992619489784566987071196908786678958881713063377539998644674015798218560454577765379640320487850425504271779282332405628112647844222320127779608040268453512777548454751350450747219847953747309592958765558804708268218991594611832137776060215179872121713046583480229352004177335702760272441388839695714609739697938418365578262796830016537091673965148027634894627533448475220808437255017354104861064449814921345881978641577041507540281025746316136727461020706971263117529613549417460532308606450332286699016859918907539372777694269914056297151992298540019943682839188920792062422280928034065236903462384557556202978100964984453653473958637211415591184123205006608568124844012881247340275539846957047911049399609489742473926288941880921047619483372981505818318788259102473312221949537061446312779654591609055708033859717700281735041466452848994272355643063017314325784207791784345710278215989987558710631494032277000432426607206999833873801783342656172941002247107255765534973919633882661469290944810237551199695796098606432301417692621125385255174481023373749720865639371503796910112200673295145028837917805600986453224776959900539538880690097547330435274672712198538425506741845858029950198302187890378346314792016932737469784274152278089964992941731461181722194644738919652003579082344119200227492845367035210904628855701975699424577120360823256276967320930997050236096880386221448253175720649573615594877582338506566954843479605991717352177017482989754226100673752377835341069896230691173471491212476235706694986366337288359166553939793927070120741908119090664775502596856199797277369104712813817318337592118285742078023921851278911619036592386564982254768742125856124807860796976963345328959585455778536446231214120007700918363585337883615725278828142948411572333359417663030623505813875961236825945240669731815290717191098803027451796919825231778881443823004306964794234021113775328749684623849904010206464937533082342527398738848339691868903072011478000862482074470558276320978630434170816239919666660241883843661447667231933635618073859859535122363819693215668070545728497692289417324342685411489288943715865795045569838322366067178655471760718125118657876846046084361360423885930251139845051582214429243579040852087546531085115502975837259321164233714207091774067407722586722332972425233705691388530609523689021106516804781547591598729261332556468379687735198808427564669677418080433564790001351564521163875176736346407455047600184852197088301042259444622983292122374359485198197691698772225435270621235051451624274626393878486572140358739999215040372602331546952844752799557713389742054788916950461069470700301416440898407770999124570395963182474314460112478679172696246477387077572689607528992214109044058829542801561418914746371356841368901346191082458475206084953067924286106762187449456470862977227091250526410995137249177007501802756570232420512251848035010382552095244564897554371591161198658220673188317323216087477354235459995231529807581571337737811102731947130189163408207918191621920071569644413270477029773165570511562804182092351222778704689436017395784783966141603844016905835175847534028226573169001593431826811467920718220505806218807697077409653189429745144234356298118011400706158090251900066123889873623550650397835231236584843252791674135609193904644803246353803151124311879710819564284583559063626579293197096332064723099088260366559468953187843867813389326897049393178182568076889274765283185920143448612033685533407132636881304688053399780426623991007644620381567221419926232586336198903748987676129495017959663752419827238671748464012412774712638032542474565809357890360817184210259508138797946927853678505849972956956348575318262694233015958622068307788839766403168155718640224230790536459621416122137844683099934714335016610836858145599851952277586096792122978145323498030868329469706027585431679974085501756486370927402683865820213374267299160870212345031212308650746297351770051381923708488612308134052969060803447290190819990157788229431773972318373919635126917951950303648179974362057418976903543683107766572759616820849873958852440130326786922370067635295156239574789642565984191630414845904324036654397852208959439611430086783463993139108703790181120286828145490727575596817426961851333975973106043359836563972312627955554456597408406384184766170126129012723394369719035184496928262537500606980507273228983655930041631127410363476771191206003269690636532217317643905824545016127953511716490902770148959421243266053021970629711781280339079720784136667636715140701967796888999831557068289829476466347095943290044308921031287619018978371876634472790255444010062088986853530924756457813809979030937606269160341901813318354709475983876041190974268967976172706358290716537540369160818441132780430571206045887992835788098976312111544526625845046959368838352604380756804164897600529894931374360169968266409514163010521625954755291641123707986474483297787136915342587985839440459223440319649917144626153767060071682437427831922807330352087349540822132298123217443108347344206120502318226150122393030561975862815805676704698601631380247825727896853932437659394754890905698631386382286069295433421587368920055581643404276783314688425780642122280390003678275523831178989544505876203447932502076137212994606273654181792299979694708355999150250798961817991563295337526549375061587181931669297933150238154276089376442607445484487310765560350836214524153146028114787165756894965742895203284703107785842642748862767757862123676101180395022530166094153736116163936234568143820170934859888922070468290910053946600099799748680405490901029185777847905279610400369694870969372622351613560172811487924875144331532272386627375661202758546947761091497896991538283411536136656673674262226780982389006313640583124773397318707624512660120984997800929475356178589850776574707179718963797301779005613851819962232652473688885685510946231293011233322249172526025816730547271738334033444616746624540963558678957201566696063085127075515768124067726462063298589366209105195440573043657328952025606376535987766988732092345746069937752615815708196904253787693485063484754259852274398965859435160990253972127847238670358963151289873061799431737792731056780846975797503870332751766839373543415833705452045194823055738103980038824145455340360705346568414971047971472878202263877044467708006384207494624087226758233896974014832968106841490789104888794210982481083022338272963921647147858308394010532158001325419005382135032395018981047833868369524310235230990577384242688185487662672149435690977072463255477467207728968335034255991047799240148533533924221589018520124173419982842715149112900534322168281255524307912084519454652167140325967538359297447599268106026817146405994719454389234347022206112324372013298270139477693735385631669759732942135165000662599864473758163882189587797008822074447629159709122526203960574247080151203712170460116113038951292626899120595191217609152183235818640341497113296880331837506602656566059875755202486902193050291643298714891038078072775730934171969622846976634109890088908698275627387623941745944595875440733607057993810858396693893373631213457788781275199891221802259810207710343063903119185520094961056855767941759257873243675433822018159493257519400081523818854906935437544000742855828442952797849110665256920084401747137009419723074594488851820410738544065723117654150698900377808783401334498884505147245673165190095081201416864491604026226091023796770039031139978153930665538479625003478483047004619726815077208919596119275227683586315725145964776336952931712537994707043716904561706375523388102920933096901656282278445264372557281629182680127134009489591981194755652268001004546690446030773195260219118447417049827794309755025352903155208708514139446228092713400823006431209694112379626081165847947647922811599482903307621222391472244327877066494445183852455148798001629330377197176222240895895873116399727874442482532325854406195665001428675156603304693276270044559885020107642498371280639554543295918991742659218955102874363377831104263447738798465753426406088384705925369343111418869648368477756743843839405984085758054744354812659506697464794600980970297423882127195777457336305105351960203169027930057567436192167109017391177439406344605162932610770101688303631373668688767123845730079906514872536293322389576334275806354687043894556348291872330066758021160504159795375174217611896050593301526608598743066575588082675835162570713444331079770905183659621125593041267120937259105315397619672586390146484529278099484997359539255235609446201216401013943328649092100896022501933741020316438424138290069169982570259892975375600659178592151532022831210517734713238332153300632889575196088632404831755139198781915380784561144191438088270627670060896323664485941651386081253204353255506698499427994033211326700907331408885962398434639379406305416957270056250519448904447492031872054080339096755991459990317007536422919364319243871273526055411854398796871245101766535967535108154843085587077858882922442448497959513692452107270327139191501847633902056595443701994325862155296478222316902108934215065506604904843562267709329609433314048026373708819946234552945927676872428223174102590261937103821452700877825848630582631664825151721619491287900713240974023868340073680154720100652430853799290222929832807893402628901419379377582626161810930785156837461054728942323191858689834524082664689354843046778978261191398950475837823863399446942336092999477127045915083036516275420276522065162177784539538736279663487897082175146233375344057388173297896592590429673045998058247594074229230301175740488156953373670282164344987207171849973314522540139591306299849488529023996787352792598591718622336233516663006190971124870400385707320468023817529582239994891517939223268270173395934269247908407100789127068673948928327674009908377395262254216980044031583560590500586319277852020233388006259145767958488046662215873057228277659430591039751262244787910348965925436172329462092905207949383170096340218145638856911599260798747659807312100862870957263481708222188158483606028123105374447977681547733664264778731282211148716559133293837014853202917870233279461521779494204071176657688268211385012833258567792993725941982987077529446336281722833292118096405303936882415885548700739570629920612499575328041403422797064195311590117843210271644108685306616911275440695179775851196474662844192712566897435129318467576977338658304013613932079400168209164353074595340923822778676686782348304626793555267749892667385460437897310420069119032839566856827307436278737969861791307662770160607215137818808290608502774259612216208491641125324948148422174559010558590221479854868414344752691807413014520947280082246267186298341696227771436517116913224826227696846522304419781888801365792456213093859672604195161528563403183299040693444237755164862519735632451842437327840006460957516501084165612182051460978381924308825222748837567506524641017832010665790232008028835374506362590807516676066621483175249170732854811139576093616779812366465110049993172791134951391819749726554283634106772553011672341211829300790268317932431438029081576763406491780355684621189764017881333344342525413902929043936386347201719811864594039248037439672432491310789819216113412300894714587925694997740245793615111752940702136614006930027751963132365237065945630428013974750579084260909217823833922589981574048576722405185968655221164334491824711183062852696906746260858353021281238604266335757239098596095850421575769872157501562112268039348939408005473199771360957677564461285970628889995740300247437987999054301302634336604377735295741300268958689491290635835678532930322317093203525486348104337001952605510782424035480259670226553644307110158394776252395482021811836669349470103285122641581071499046156894109963173603630808767346114907062746595396285979756590395346435859870031468756299028809133287903450111782919757090736213666118622995239567086862896237621886604266174677978200501007103323059654636196364737993750911695128079650603882216986569058554117676466588477548583154237540924359895847611373500297762729545230836056044098678522392894316210358810055214381794800095934754633400039114248191701459591224122901611994968513149241986493309457529245091691425695648935864643685914663404006186756497086024187089876089046106731653662542989496146292633683429315684890126926029938716346565134443839826923964559949055067833450471492902649398472986445890531760098492768041908847883000361457626960759893920031931504092788222877491493100687501055998326881659737456046448773021382639052530991736868805551875640140774683822264077027634698477059203821303693147782577559943092295375803991179529730245312124081223827701692601369301219111601641596606904578994017731343224358558245210990608894157503320247831835634352291749316856079718884028024819754907723443700961145862514044238236692656478491226041212144306253416339635908731779296298663078826061388399675439205586841580768688467369254930778607018334915424826537036884580159235713348701872255254728905859462120604283667998359426126069930883603441159152341135070717292728382270093300989754504066736799860474909271150299165238995167856728493218946247139211264283704024290583801674999013990464290729205794031119464947275536104316691287425785652054824257717005953239165100031343399137383384473220103110351318227999360168888330327209110085464184848670240986387789837085725131791385521375011305407897606289718268241293984039999006387066943536241761565794240966241769525298311878464436624777423345295077093761716479862616425373382300895896564629125160338035677206909305448473843725979666696635385217997739195493543539918078067960384137935262033543346206319181832712765882702290501743263301773154471877779757849476698207305416910843526999579341691399348587021629262653296159172634486216458443050016295394868760688969726091826992691381071135165380117250443205990530691331912634493940472300494474112405580968124255113861016041328376061996874662533536925355456383211025953070089065964470837737442252001552173826010537557655940697918185268973274800567058192516284564326083040367730650504423471325004300366678213605708170977530371523488474095320362261612271794041589997245876038996257806806982846088869066662424476924137990889005103197536613729216430371014027002262216796690176475087167898834965604981109821735632826092556423070271923926688598432759168444282174431914047678403781530655395371896830490651622654191249074904713175105199549563728601436949361670164629111396273939437376024466381650552431229480444995419158963997766211221293913101257392779206923294296862650614042395520605017438927440796514842644987855905391940515975994764283542283682273201690765716094552773146028725017353876127188232458177999417867344669941739801395169596969123816049516829682212568863371658336312669482168810742701994143427956010383721077486772157456889984155925464161710652331706345609530272199958069262508548866912233940935937997279027189573061154536609392439706390304762010492281813165269958221247998105185582812409258989207029535722739531969145459576842302439476159112517570882162533233858108762946735235168430376928893534716218141500285441741529173198748242522197848449490155647797679809241649207513886155665453084445010017146934673799338668380553554749215377337366946294826003087537643050572045111575082073355199930893118019477207654753813175853061746072810973207022124687142132301827976497694471687287137667109766496462402131555217051677731149740424346413928571260536408561163905003117732608518626745591486258569710023349110247422601642133039454811689506199259176004329318695718863683265401439296852076776647969956055200536522482786235329411948809000626034621637288525443874163411080053969311076247925462232463695288830240355524599880998729943424832884738490699428709489367679519177611734819117337862344032550142645681855578758540706584120224311193575165052058193183560823470826163102354618151263659649160739611992216742018566723140831901718250308547143709992859544510069006704033995473205163954092420438129082919899886307664700399823059571804266382310326876002397161180706686399768113559564323268807234718482261490385227380181522126670077734888761406239803877236647604368604125523108387996801405344279165707488204897485110555730422891338691954236988535228314207342402808261732833277735700568887763745900979045176390732615671976959256978151795484053480567424216771624787213108519517300719611079613597444098804012147913937808998668349742214862817802166562527343597812548714624622448071884643460880887843722905946367772568555481136899777858965668577985075327980657329162425605972145557890964716173033687243957995990320615311610728494945490993048269040917968482679853718506573338778492501105852887288946060472229105561802822838403160110319465458703808818755058746740889466922445779505281552246709654398950936248487247141459144960807182794691963311407768080791069119127922356024844989775445663149450394933912368824017172377465481392522076985590811792932573258785459074142473022082797777286290655355472358183613100084033247509477521263122719433686683306131028133650740109417242644154142371254269910382621576630551696604229317891878778738174325443926018846406896890151486658832065294837046416822237331019718401863147092840658331805137761153037361343845943900317424537328136077150373206398495229569371880944260570513723025852621602303236078798937832960110582138993786703663358712580479909412179003001847333230508324082291160627729305804093726934760826240101827379892730304528961389277605195313502022399378492894833159968695317556292152089635086479746312100435093158296747281765258440621851252112775670954574635026984711804680756366147930333498654876198884009931254537646460914015991641979518023330787225631686081949474614567025602090697305616915961270815836451849518352229361486737217712684282633582897376153658100811123699620075032793132757018642332556825747414664246597162530143871557398971654167544622943467202511876371616467965440312041593755624015659388047224345618242785997141827687454217468629397767832735676136962599409426152770362611904363992689581019661638437885151554229508860757138465710663993297009451645581277685676765248499395458515688126277649465242763013362570300290343220720505419659457480952265668829313964159088033609076157486952325784248301996746620924772044683149095701339026008373848136521894930144868346326208945147450558610807340246114440535410809452766898385421673093437346167029143473176425243589212125785535233844815984602403002326497068871660060087883347650799654731660308909208803482619558636344303253797389067104395239763031913528860393373620384362121616343105028530463968344198856989960471250180946491894145474314839027059477150074935070441400656859864702377818305175808418402576727590827655645078814151603709826642203394725342210619244349082021349260866782719178011318510006667699408750335385151249378638617704769070194578906255726988497316032930312392118613421740894950433612947579471337100529572828361023343237824040942036610017251836740763976285803099899240203801864407909655303618098219427278635444549657234439037014170262452714807024201448387440201454843914967214587029805793938503595544658993821975457245472826713017955124337534052685098482603407579175581573116647259279312343692781709265932422910250970730441682957597528376676217112047375313940198659671846265620811081767743403602042755013643130025546345417017860752105780481475504550199993803346981379618512000562266580831447302992438641048697241632074164386485906511048638350625082138671196187703963088701077088882830309580909508077563349715913695317173763528842805427585078973906271333978440672192655223510530705989306076552916873339974467179058420406085828731644291061043683666640920766311963323357245856626170017699844769663844104128723461915335158860255774130609875940918103131424094698815122532087209967809765601711549008716009644707679139805611609129229888152419883929768295627868949793552484843441961162624904879794015328170204022128970861552793358643575426295566603482862735110600163570798489318888691470356683092169725753175390470999134998452699055310654278922119571018506173417591727165090936394708628746736025383586128905399296571909141648487195612277990936872736511203278239675255451947614815274362879540243568249661686401203512491356465490480399577565231066532563021924511708004866903398116774157323874827529431172180020392805156913661307006987665112207926869740936819665932002172572593312576601558195454572551087105201323917894069658608089249306016450863874401008621361933163002700233869635217696316970132102817845947814508363097460188120397751068878802388836658320956734511353268544354253087547597954448715236237994588938750072795381117512502786585312687438497551890238506297921482702785713939539034233276332523820076328576304225404875515498484392700849399150830068410396040667368325454690799484946369028759728701078412854323739714691219693710427898796958153199153200631123015692378896218896864090629097826377740998043911410929411555520571493887537711309198989842945002896425496425117325800686491932751876070797300026315151489962996115462565943471207272821768923462677957563177952019667577307796549768262377968642967956741287793706262504092424735260102315588808689115185380554726978362512773686570673313917620244686581087564541637399832335197247893154274297982168523715541850742336619432414535078944109355378992662640462417956889156464472260686870310159843244477152367907269588260291024412130856093288628008504118359847441332849751999732668317862435949114638695351129800341470951198849018873403493560534211897707059093202095863590666343835661244348790445724017052415965257126355656456241399144174411353204154380539580653797390098608023102418040185756951645190502155415434128545425464918891163004476695503632052788555078322577146735471717883120479126541974340715086730959977085202670519508848798530996290825531357842118936182031019124275130831862649070997211411741129862942587056551041751502954247411405173740031759625229101222046447138911382069463398995056469117047648488440404539101331880473747099088406998323209169185132210842033137219483310224560460538678158432891511583225549555090187775270117904106391975777379939017836695357626940174937111802245868631203997095272112070327693140155344078206089305113739814584110525642197172043999670425314082942251446238895236433499577652303019485075193088698884774163196781646437417867963682650812288697662354718022847880866827529864955724886980663630449793228785800921374953186492789481482083615284430477684788882164862434033054406214905661689018013247047533132660059049770027082465666317897961734918875230978604984892911661054156069427174246631937040377417387422230246859347259910207504585256916964641295827901687004062667055783535156039274741946996364592529114547125884966256517768420076496021997684184143127592260378684032307594394915405321649938793948979582286364102909362201510347662551168721122106510271093599272778450976840694864282514527167870662479980849773236706482208221529522260796366662299609640717759408013844785366203619996775121830293505903761761907717681192516246022541535630691778586553367494369449581190315266135483361336769573522180851405198642014735960926680744803603361595577851728212782372492674188269809578642850047794774621947269257390802342056466343411306988152170691240431831313199080989377773561215188230858300934750231745813488553987588994202719425712209395107975509573826582609168461717020718269972079570199692970235283524630295751422976252354104401320179042990653734060786761016653245655487465648367523797917675015837581159273159816224556013112118457222522711990468542944817043440540760296960872674282359416852122154719385305890237806416833317724672251817864250548639667080629386330937492190214017852586107862547708623126453009242183965382982783857004070350012914107053413247433380819084852789515175313970361271610082197058859567344065354804117214774153076286807726398154318104535387892269929061234922113324883988888800420699262085508824466873152010352958870652208385355066502833937626141681624507580731000686109594955393444933289315423088375784337146255542779024365638396312678183777402717386565431193939348163000926292642174297341925816207159824914389541171323322873112637407438207401214724071049388705176450979217216126854201733742372793275647549851537708532074591671928359722180137592896685405490899872993008051317431713621808840868883516573462195365612733190829500965439969161512585646177175379172423884604497449472161131191782040029688823097516710565963588398552369975880255674484035338681987952496899992359059149805719755990662877014187785966981566529540837999470395586220773698133987091894287771426220289473590815599991080174805236214976981159233232636634927128996512134800440884979860626061704884643385711569893245324031306096937046475726998353106082789379769233561641633309819714506608481370211848771198102563571197575338546055910009558153209596065341398067638042896766749829632563032115573719556967351611662002507257719982830898159445850228029638426925371504105974509395957518507647125099713314288411257849806072499787265777834496515220960242443973045453192182541196331616210269049569068590091867361323512327109754317267590997464564505215851182970444169482790747919304221264511483770354728816351239319749856052867682530848505792224788533104554117178878456909866728927846157326711827985654656214920559080451495364113191815612040138410801226949854743983913226437376007458906246160365074146414983039420869048543488918567620966517431889888391969012407436928763057204848569198101083068031347304896732685286150294380814485398137629974254359062623319928759362793402349499028177195391846119439429067730276291430274102936221332093679539898736173966025666176159046735971779479493057399392870663969235711468839046638298498391431449103316915977716372283621583855763877450152482497228671656407378671209484855347903115333890446774250908427929652020587484791895641885125636695155856150138410411324492232686697508915606761058804684758829501362712874791188600131864126224086175633663935984576377808489235070693584829331595583151505094670139792948937523821190617580563689990493896082807347624498011573888551017154561518093307784516149379694235845918514829554076547755077678721955417229508580378009494678792542525371603298437170160496858905274070574030952531953466672529158382212243622627062074113953179744194307164687637795787230003295118672005481303951227149091301349753186143823982208324165059743244115137561898041037242181758165987483108648732099488549031594759549692811420875729868048715097012892461539024396563035850051086741977762761973151862903568503679997356062748887666765210707117031525237068840681141981980901723444984541661543158189977713401165805575468368305130115879255565709581873928872772477790931233318157651338425806166757026444560871243765299080517848385677722703097872494732198114871980093891153444302802041937773513409988729568679133189141149627474384745956001198508189632380596224601735854053363032107610020383969666739291417693285643139247778389624791296151649637075432964056199795271040454932288679682166389769659150348215604130920041846531700174493179254391932895871910441618700683373426052854995538103002595675617417877435974748411329353447572368347620458205352976918084276390134101812812630943603995750349440298710101032700707284581888880743382012901467605069824570659297226040940735229152942623609328869258094309801167397802052399092761529060771031663338320047292649230323151263917325126099614650819229579654848761582688861729931733251998630777612179085064862246224264097646470937062130358351592902713353689963673456870429359051186844803256330767537632848920650694997279389196543588343428599133604645779806947243579512633860008671815316649407361812937168467485210580324677133876775543231260105868860587006941768968762112661013985871736048987769641200030098838737585625252849250263222179651576671927694674096838081067144465740370300160657831870401316363884404630553490676643064589314998381531043256008887111404494688418345913075474717935152367135015596255436447339552341713394939847290139405505885419577041336094081550878288694013926238652983743141574823263845055817419622674613226840394969720396959890080628424575140654546845203609706598616300493267301941461839126006525262623505691226795432754013477780435927568131130690690480247704470773747017152124781094058419043062015049543947722246869411444825178275687958535393785876272813694672031136383308366509793920181587071971987874884235436430154196551413539920759917873257072271882240088488699823871573939371568073718212059387304953752222957133297102182614801686798572180096690549303090560212006019549704832223064143173006747578216118206010843826250363544992237935009500927251673945491961511708116517487450533156472023137337896167076044601891375869458731448013606479316580317458855222645625999180970827355060096569015461250843405159318471731160711490920661306772121943558189258399281445082968741429093870817394639002751520939426345440442739294648151080578930319161864565437028549118846102666778339554493385619755956827789022345405797803455120914055706196764229861486709336457797190911440248395768268781265685596691178269680316534028515859470616861883671697941945193857742616640847598877515049678658347301562172656545006846583509817975940951439237393851646694078702889656992219952471495649729475816065040293296212182292115491080905012757286325826840368266331850701862521407130425430332671280652087996608511817358743880455325434738495404492022413900386192991386723768031388400123089770369588940309470512235701244365741284684364409304850373144423963622219135791789402977206561060454596077695000120043070294945930449593953151169821091031080311187528860941582231649723405059558860835738283464546045547870342003570221979326583965843467324929553456859440369358838550061294977865920940124431876568913508348305478487407540352103227542978426554402932732490222870550705242875519146716393561404776130207890579783623314811760198126098471530716763292024776596911322210904156033187077070057707834557829264406871382930897900110710248701421715033161268484757288819818578019258823532416851708873228535493729964140993197089499289931595966871099407430513405785067824300319742997603822573257878268921789892613653411416406384944316788052848387777861463109290156482340393780702544869401758860761316879542265559277237253912793354888324060264783689690169758608245855337335361349918101502845167902805180740994353146280822549300326484281519510562350808073182465762133722922222287073740180535566406258829547290709650907948013017609626190086866056137629100477962321345227988673505095109864063880839670151751624766844187930975609900214910843100390013918318993130959897128009034942979775892427476636754740983435641931446738378917894516130597336809182307456343054094301597167338250542437504010484108943716212143912127885446735251068063629219817003668770549331133185582862175998845444982088177800348521912578911048101562349068696621575836865802264004689672644853655977364861277261819011631824602014976683294820424634540636215708808268160799353852531965646817062714823157418642698115651684684087753424026891940873164115002860239692472833796087593963553114740845919468948285933168783362159570064710492006388870481511499446418904223357467646166699883867278400827489748721107872609850880411865334644451197230464582037154877030897431307216626370293653620835797713326271248184756803589983909950384603206137937272547477315953012632449199783806824541789389159489176483261138673542529901536383625256513538111083679648515623739261450589109776769566179178755920283574510181991086838589789664041189775342547813171136960841461048759078151328013631096223547191538922797789407857008502573524965506387808917956141050107129099283117725729028117915850955166045300436321667078854534763056839885674906604904511959360922639812845903084749782485709537095154214654525811110248566333815914865206261082333242880705471819190599403202010107923797145594272518521082850059093770817122574435091157773650768681247914390195260475091773711353101264579061797227709370291965822688261776451899877506397588680077017344917899497345709783085047188123324962193388705449647908333307090697042196275821129906530710604767275660181561900861721124559455162027018282957940600442798417994580336785087776586954602457500094412070138177179928451487115779288441507296594737001667212626169501564319225219167637288633599611595386241664871476865496316851216613369541572736516417939825028008965254863522679160796996311672927619719857847349460387659490892771889937232817091633396646835187001571615537321952543146067919223766316135690199038026416078050453853695941581191134472991989038556685830157151287030011298351087926331258460022224687416683074878525334733279507342953358924938312815184593700575885268644085845518554577278134734806791033817463275078175468256109743353755659342716416067833452888399355028881562980154804359634649895891267913907890117949842444110962190555618922059820297662549317430581327034862778945394085626545756187617315624042105258804254410931047356705930348697942586120789182074332171274249838338869197836278916897195815592109610936388018442487688663444842442884777171426808746089276573942478101752872199516460317071300788688698454889138860637818103117144320948804918856012108698907852643813270056752966255463806761296834037359035589652422846215002847662934269823687068536412637345696878748332560187005689960282418547510370645589358336568159424675263971403826878433074527563283606035688400731770725283475555021085417356809190809563575385093367244866912313676202367374346354047076173696793706441741613892825231787270116855005254268509202838576305223739998058693374451740517784297760537756378245248044761357943053371702595976793606600817036100998611160460050048305108311421647582463496334922138656808609956312922149222675312683433852055224093346629698125690526023492166181657673193724383468452679482691595803986662969073908882211997533165716588925210030634058762452464345615859135789679375228810474182635938875741685164028161005077257233332331561605568521323515104443102765622212055641630100759078462526209666379868464269541615682089243489534095364690893107695035212851322129245349444738671751151285735067256619675231111172237792146953477874349862923439819547456936369961623901398250236823613075895184311604793899671039444082754232757487439716715388747318176407193060972211918988624433477267669001267941401337582693126526120059194225358489046307538801411225117878453588737861779576125017838592768237631786706644992463115910862716769636617259492368953224583030304086066791701239283641692141319169309961664860706954208104046781214872538026729438051965787450343820620256657659863433036496295374759350992443085539799422259029046514217421722097764601188606312962653530143679902736970509135306895687058918693896159488706945419999489237187727914476940324755493338456431169543106576853598021309410619724309938300778420034105885180981439708272183429642885262560225573580949195346262208515105344178797502458037611845303014549344980010885189186104850143202374406490667985121606637419572695321598244012148437112183344930742430701618891036817335206263617170256152785350137513344761322944406654770178797531181097296758298459592678685201956867452595773628609351163523161604333696048457886614879655163826609758875437849665768313325544849554766065618945369056252120288027156625929646973368956375395692433000480402683108864353970567727266489277272592221135942913915025057436623985730315811758923021591678549581942428769474746987806300577234637773136239682397013474620817528044511122671182767600722532132162990846968877439760429497756017287211805041243040535868666813065370435277339685168154089959643121341809034076483352165528365798549246373888072920512599747369980123868928123185756912968941511894006923334255459829880397993412301806700116447446468277547345964722774969225088842234402774120328779610058301397560599882665077687921966607426011790902814501799417305128552599594249122363358941437589420259972434820712898249327499648160539798338528635342395371665596296767625424338021833874554824929619139566412604414051998027017196093165560300941024479759953775339721220276515833214526226971463356293794300805549107882993389258319195320041480676117511664452617309652128911275459017204748441256691123496524915814357095753267436022640364816898833568530586170781217576240100671334630055487561608570663735808436874648673091430739242423730737020126368236728728353926051772100497583754974621346364731182012702168943372889814822083568531281901103346119470803429007473632713153529604481800349578629909489260898240983716986459071795929889723986215243827579474578244624643296835297261243147960435863984707634047855225862529308051865593136427343657751992237314282655481374438830917931700760903929117452223483525185703179549598130218352233625743078663388312394208025582907588204922923873941991809234925258974155387746322036079824996036148466662012004880523983172388324439419160645120032490234895678819385597359208633366880926823168802297622537891438365150121454879737083638686190763631860523800278367583079410995759614797113713431874611261644648160425193283220647293285527643221829713033892629399623107717807712023040518078335591520157979889490798208046464751201969936534720008042456765646408893999258739886976209421561488529024419411441388437442519715786413682488315866749223545866868003752633127373108933784084614129984682628246572105025226761334963794923346078242978584856063645621123799862427268607677175331819844908371545347497511332536843781641643345937715454852260166982510961071025677340459876584958826809356582576563867438637687763766446477513587624214791812230754850538820831567266647858931070645234651617467182721584233357518983858404632562812868764526401546276505587824377858472472301886706220272639763376598723249783865985843277417769645552903158340546332619737309226851876069306553412464427704022441681352247810196055519610080185106726943795788654431394921155231782492557292397299036985767102520587882863035681760022403767757954995569699023115816654984942034731003363761817747977348252980186375770657013774077829285845950532039122922106628713837262330424440498289009837135284627006976005457504315403951270730348690554412333610975073910232387972908118726503840682515944404687535777781702127316734431606054688381153223921626536214748987003183825893165547906394399495508579787774445824035499210260109946152597964268284085856333212303248801392404831354966701349935933626053552816400510881124207412653966760549596626607973527072620628595939881506706069086696725089783033261343427021917093955064155520535159153091933864011144254344890975572803887501018423007777611402311319302591606382541278833680234255552200032731128903738030752859565578801946186002195169556513616953566753217775917501819877920175165430533011084641825210694814414913362381253611303510873358786602776693241813716184800471971715835461215804336361178969751435884586967435960614126284847444337166546443713645875457956718422939410437953383543678179125672680051502526881345025755878728910203357584165266864407751945583710930130001238668340974980726045296617389787877682698552469748302381627381465819435976119017653421322636933897883707456732106138491960120884741083153311435083371499906741223864114641456699357649823168873731664777436536818751556559436060547476128577921787341502725817333872685038164928433884753624658872963258357233148763651750529724921306842825657062694206618835489387610133023154357974694042616531618500575558677473403443627133854215297041492206984310046660380194607959006021783123740854383353027896375041665854340463287880066696488025792445179408823977911338951925732595199139572086940490740270236908324658757280801281230870364631947075076899188542217713982882276168118516756635882772576779599185371170177746262110100224100774015969971577372864933104167673470679383877200252907174461057167415773122224259414899047407967789088646744628419180340462965730020209456376448000407235371982624742970467027138497430352002323888481449065927446162738979399197009427179223292210250766916687229174019880382363080870982489243469755829768238307965623805388990288004582062342368803257121238959449428137197332308489637825023435796249958353569442892242320501396736786433330199641090773308657178067970148538913074620985135617542117052950900421957723749128948965381120012014073141401398619220295432996252360155286896953679116861725828930947640258563524133251027442213310489761233483176148082649140040593051493565001598385224970496514634015889149591576867784400405738056203728131323714837995631330748670696218498212213206517189172547628354295429570316461704107128039411890637451197715074300277565659998378037191032741595398661557865488634827811500332077348907376403700641141414686865361123337062659300987792718393764487083864001446910626829798882292053318009776528489358333199300169826740417462378634125832028779798522087240216416991565742768628349975490965308754640146960422806711688575029865006244460798322879608754513284966485876131350207671543084978088629510082375302663426676547364477097869772545738632494321954914709543609770984350398283497529926201294972747335817061517006632272843080229130256256185367754226953110624053387447691965548430089369323210508764227804186375763853310302244137157016583219416283922707973851868329699729958937112193512642504201872950751155733086368100172174264039746558085804163686693365914805469175328736397062687076187898971641682935651389367847757406261752526293191070003567522896683428342269051700096572567512576871483410332873406361668387575833069802773932651434261346916292850469070009862037736178012303040504896216952700407511048891535659219100471211307303803969878560678096955848805823717461491195300662177083128383230142572382110277264590999785070955169530533512257419302727312327022693421984377444747683162523153446502982890194489336088809807845339506478165243648371486266048627306374632302394270955486205086425447138633930500538342182148776016099000539531622569153873548853586614659397588733570565647308813432642928927622595927620704938440278138047315786513893678456262627608134687846534827813990170195475491346097345281159401652018131563921979108550292752627520171467149703051395255113243379976761272206361747511018841250980931520857729263871078002177842742163034627306271230122344292145510185339759198606927528086824337805440742059312454409397207912301264728524765731536823918457973382275123260677389426752009656375459059772249325420376081382053617061508566741936040309181988709159735430545521269623321749141553446393455583799928063493050533621909039637275677906242449179978244875215726433993672508110556142517254870603101856739958303380061358260961634371853222777664287079867598169675365052720388744259676637347178720334899315913257013230540841189287096166846857994870940423941418322621075878029844946621938688404280481989311933679087051330865230768460070892054064359941722653621657447701484066218699812312972905924336447054388057417177058618441170918353200334221506777118310054954767944923560923933850011844714990297799849455746294384264353448955169343694497076395271096116056530498225745204662815367175223913842415132563976176448977745470424324777736698098738143368597488657653527809145919937480210986945112329264841895454469446019181548116034226671852033133117073375001597008145793808255349080683910863626753287697285690354978615805546739671269984638431286942045339934932826786829119613663393532355406954529766792458199371971959277300709947020834009007529449710899967075817574710049047076988684647535414041342907925744122636160016890094076553213971164017652110353754016328396714053572405869886921640181957116223428602757356069321145257279417833525252597378857514836082200062548121922452516466261634479424981500153218347334068275160884517820501281177679245389619830941143209777580299940775432551126467669131537042682396362927207454553105719436979040794525149070170015840887347338045265785537790426912927834160453643579370917583763086231302149809645546357170832743144811544241275504200689916088187893992182053524085769768768229274899527422450897963355880923192283477335815881772722738047682584296001710778811255671102755038628701566592227265326243382975747373906485654282618880492976780398507740605247271646959674886671488688778754883109669145671030669853857412515286156341087019561797706368096184390152939882082914762129797133649237672620340147763323804418915949460963360859859944876525920810919229952799334644419187216768991586045362420056204649904096508185005967515598894491608884493069751755154299638490805089337967111954726580771735474545909870496881068931694969565952838985686373825310914629439266399005241411917310439073352835371954123132346306341850014953358771331988607338283289906962459367094225882435400608267911768559268464571940292721976516670625629096245458926864913843955427082995778464378440491815284957122955796759633965142323323490293396720430185112084903159228336846078394891428039671078702176200517777827876093050285488440735086010813524851614738479515886305436867635046010246811590959335782414328748699635534180513999412984719108816732324922186179154711904568484334938276862572605708355746407431712010424009460884130165734900543755126124729783615952002168116460658893351512197297663634492929794290536846907760744266066303113625490757817680832970899419284549359015721156258789306436421290990665736541388920544318854400916974621938507571736773647491686278958185264975182756054008640236121013233687930615199325737655591684880095742340363892443513028832159527446004288788057269691794754892815714167210369632093465211760119088824953035869613306927939512397564596772192024976349846030085643906227482734748751623631319776730847296868206898874484474500390905353320697474656756791840888819791806869232122158689893126874138242471906656944783376286783199838134539836266144058686898424645909188029539287237555890594011701691536034478283829878860239943956831697338268837053701260372800462097908318453120549826972045521703681390572137573448547253238645800998889673916437827309911828514799645213436596406170024242998653134220785575177703774598218453158797031218339343200626567328693149769163564286454562538322742813837355940015730649582261006028773797843551566595075112456720033679544139109717751017969604493303830957764370122181052776615792705001892368652669396810702509747897317155309502511548767555392453472420229876734300091119466221385255120189325765153183030260600242689157791905614237437520226566901681494372093775391977641392966629117774991582273794311720535975569079799216256730724053600164569198915991206476215637999473042832065502592886817542850701759588932986159354685966734425799340258594418354996430116082933854078373329631809731791648485147604232729941623151957091415096789806101825456534807341050520016773284281721247305319410454745070943314764078416887614221122508701965993795362067772291074525066492125934634351612580364508291417438481083752369993313188711938755615892394017282236356114768260431765643248466401867609349562405417838952414926671715348239319508723087526760566586834323104291298693577103513625682686987380450779642344653592096613543192127016737584471668211766529178334865697788235347168083487723208987032098564343132491122274218201885718802964019386813223148101674281805222208273848105356616681910410924923481410240247217473114018778220992052981774561581578703075461078690724999067723238239836722075099855906115608332969327170894356627900720916510636798239552856019990490364284158200157191072846774277263926973803308608814359485379636732413399283266882586808758334619523624597171347316979745493927621786927619679109416253853896616773175423710460028300737128507561464285996538743102013863894130050874707789762078544910359304522880331707011620728687973046949576234873203691198258609513252024882008137406339310890355376049466951599591034464774081286134733886584494169193004893474933518303011053678582745927991856155552604951062139554623826674874286204991273601618371976103119128455306454296132071297505851280064252279195692078223926628095228854830388218424851407645808247144009447771741552841831613571772611138162175993307647765303559928960737196781028114027336321391807552574688932465894151300389837602361619924672223565551487537840761518065475499047362080470204274883914112296815021540091978593008562258683054639050261095285277159106558698027163360229540720056043851531933667164429586095819270877925008686374309067767285927540320888362089526634525161473914180452274423848035514866363911965613333744957574746429963293439605412160695727594068100496831134687016693742444257869220068867696311259665689601319679591440126820107734340942607600855509087455097276651841755830750780778156126943845456919203899777098578434250983774315680460477150225215124265963729903122695354395761446237981154597455875593103002341586847358014842852656640753295291397803420074413830893257213147926659636265176879911572384829960519703432123977331266222178775530615775359900338407867981835124789616392020560071532541542596407839440475963185352144732493009002862018314672948952227154774546714979275705804263553507092694486253694944145626361683041614147253611917942336481091638798936134091832215832425264421530949701575789985671604018036425114988779751624250766027594175104723956756292042159991712965603930059251998859836379242407435514104259190717466869366164734433052749280863217246456117320110304725691328774072796151651887179859824902049722643064746278485643371592960410200235343396322689691383981176016199905449316411432760483407023973683436189779203385464493291144704000129704684481897457931468441439323539024064092051108714188742688163555974980724011013466135056002899129767535180724123564028608564056397740720527481680456311672519734440830010392974290873939976457487074505425882380180247856959769774139336997117897349542980621928222898120321701172162784032753027331487375126599318309462444347853237184940860232783602312660348323473188651871456207379981926010896164237194778911635291563983579532575322346648213826614982006691775443942098655441506560163861832428543247942453270017545681449251980973426088670132117733023387605355920069255445870509239750008076182247327374287280186880478757970538351262802037924849187098139956475614847525888099587284611089745428514531052016963289675606419045067295694163163044380118947354369878357189579511784550409850876894595377474982047251888442047368221410276545103900975215242268853584534566180732308063670122906931255947804048415880486507610148231702863552800076927549693108117534003355396301705272495350966223028337640407043496778884664255635731121516192952971651348555758269688800619313388815059705509962085786570476367855281157767804269539518123910735024824774705610019240019592271497520675148223368514830675878731598495273502117122694189566930487751462832199477861995037467040174447771516486393302423152737775054312261540594982862094901776655843056880323059911909706484652311024314736742662183750064454907772605255083523592662115756589948008088913816176800621025051523044573277497213896399614755801841481915016434238359826474908183775680804010449797030823287101123519601827368117599116788559529454543126808623833135147305991655140708410371261723117785575369982220440890398692437347334312539987104145188868469531544891486953511779523285851709555610136274496320514818830014856610424591543479716267633556469290757821954594749424845763318676240374528492086711823220686357814633389512801404346982792899643933853452260198061704217113989817215690407063396627923650167526931923340127812713994687743215000565421039725816417206488040126262985370666164826831988613925081241553188091112699618070332173961102248737212789709895767599637043339697269843135242289208137415295050494279990734856413507337106316752345443854655221796909632673243271031524814924543633322329775879016953240298171020300782030889687825063801733733702110142584384726923544015783979531794905129703430196202863879281379360401041610190387543640107733455197064020883517246508453869673261794905327354043535169239971913996932162413215313180944802413620129984992674225784480937114145379599180899753596504809792136651205592751416921685708393518069762881969551477262568896205303272114192910032544563404937663308392391667257565735957470207654445708895998325410227625377130543728564447145979185981119930577860099519420696905208757278235094775228355455407336204161773925634910816379349177745527338383611715338572095542677109386441305133819831258181300589944431325636598336960656295496518253233399552579224999796035527697251844579600175761319002463005800738240344628636706479500942468501588691612941543267139463025084180747894874999406048953330334716804332167650288477024694556638737459868453335547953876651669511188504031847957344735430368281811765105380775697868192125587234426964625347675154447261612287413083559049989271175865875942946610245856561821375798430422510549271518586954136197847331852075101213207429129169589561085604303541547488944521549368596876227150162857921997965531007409071675447561053999466027693110418870979775415126316051158192625957946278051287769718026754421568485119546753211479719139382376754017958573840544004052583795105728339565607459287747198382179051198066105731232840198386563410369522909624094021124613217019894644928664668735550884148570633880767816552240520138748193308458446314165113783741271445410789894449041109610768100704172188750156110300457709326549001707943211745440518762438205270153136991977505524677298836138937877487070021434470810192852277986220551652830633892541514210148393470279116501601808596811096120531484702440801627624652783067395622750243578006100584619363964716791006841523903911828122952071577960935616316040635539709822368361381919515531752048432581214333077623145576746612156517358922461493308224313482269284495979228808817064190893666584066215580448608685156168666999875190663811050668835747213441853936917806607192518592875991440349342294502861724984373334932864392310068516022304511222964831196668934625993354574289814562757793012279082473145560861423488523812045301810703302173213187702550880457495827253768134402173485320336761203411580257530873603974690787001192410678258111662588579570498887206501010734692609722709882771445177873273197009755851694428428720540899216774300204443316961737750702701994951448421572540059906228829116614581323162202531782086129878532153354416602314931212242816573874860117168650702133448804571859942445237290724069817984280348706265825403503596468080339195385601026293745657956250428634969762068188156798571431711263935207994747742908485193891889579547768725212753816943994780154946799943781602270356406217461838734206435588962336311966421151954251286437993350392324109492499795662012471222372806946532553051861456402324551051519451564557740610531593940192825236920909355978355918482348064359057654148380843309806767141495923505851082433001678743227013032249475832645393927041837429224810123695300455050057127936480809766154736072977974471549403041540013178495820869536277402775000139980550586380944917089580775161892396317556573720912516043015936716072380146100210341924920603293144148852573373113270382582326597557008713775465878072274360507459769941709298854862129377454209539798066830609569637704731570701350455852450515346752477814117872623234189412264993687438026097021675896365589524130607191276096546601553837404566665032549738577450707047153473629585194208156545838781074298256116162643984393822728517473427558033541474886056980617618705890515213528167643751149914129783643852441483013151696904160273501427465549010731575994480204210143675032657374085323543162408128225667829680107953506753975345019874092301546479315184531511933468554549007799578476480053161816345465099211108117598852316234732421427321835376956220055269141615079753679154337714382016858005146093406606866291844642421821274680851491308625845742249365862595856628148784498245232312831836940846767496616497604255324273294677025606276787047277503635912215556575233023062431437845325869763926324782636426952116586581334011083161290601466363482120593814012982727492697550012270721374927144971797474475098420069710823187499883686786561598673564109138365503868911077861152518106010915101635214891162725971904281527918455797412341939941920157750443545271045550244978274769286028986515142179466829456701836260519601043948939920289866140396303011662726649329668596989054778650652853746853527466876656084634343310921605744605252281187167070409209520799088254133342629383553614503501430849585755960942201103853887613513431444444589022242296015850985442627555151737860938383391366886528741131914794209612650098953327305561642588539366484880990861730405672899056050618447192432522295873483396825254257374855964372106205516025487403257889994541454460646403062351073159170909222747781614838315295318671254536976388346359920505797732477334806577916277041393689324503417981854270608136003412979151817970803947642927008626927154730739109231598256124839156911847347803399906376766192805147160711848390365771735921382035890369898192951727716426904824126391481295743023369502994900708708089519673997712495911627395244904497625193279115138724749753935802566883540104734561090791104683679546543881418065648658685722843540523344455436665055125952384649826574106996432894500646135810891611038892407831715303974801288821123624019240279447192825799059119908915329326828893131658253771556912308928007270139783356784496551234977797163884891775509048831368984267686004310164325263446209187681872847176812867879708940364758716883551733652627923716485607789578385321731561182179015161292754517850954066391076150093585121946245948625996793945867290072037698961183316589809775162547387537658183389093017285795088279847236235162190763919091368765849278009673669157189954915338163733471222803041424351015568168505017731207899238887365190457097085976269997635622754309202274840703951070615527894033535129821131465759042156099990067985388458636775068041528579766940410257951654762170341819353192294044128955126564313788710406787893922758645089781238232664187812760805131055689262545438740724885836103476252885091569767072301970281562506703449111074252474827694796949330408061826717931235833977660212070548715629236580344999666717361830600488904159411661817338963058524692946589554840100036052974011863214583490686051199069759260889161779537439012726344648090747758234856714495627475301167055914075811918309008406617433080747065959393408214052054898360614918185161880612856207983179929342366891613554809019535289943009580731334383812004178162804654209296730646509941025210329172416559587720999772880145532741197661708427389339563161600143512398319513158484070751221061874386615804094235068134507905334317119199393694049120642411854776335730349133470414999273429302033924162631568902627334148076134377692649408676274731414270876514579671766687711937098945521124190814744029700071985133274868111645405250236038202919812143042877100329906119093054766840598775684669645039955415449654829796947410220248885905036521293052563143953051009302387328713459549598076700577373035921288724270270066450975458488447087984543592324538352901486725454312282005778265381910191760884474901917382344435719035707758758997208108947193982437840742912566235775975850702928658305342256439341645046477499780600159471214701683094831753255551305340658614508696919754810552265455697112830678529982670034256098315275381213324525771801235561287635337988779580238872993217179384847606764847843038349447391061686524272289939814074730767662476993898971049499729168468388826231598982110402553030873485304694660973413405022213315794040506834054098817793952243399514875211440286494009147801964253430434590321861407555699815119101780546171844463947087428742396692985867001456816334027144371826722094321941529667501598451709764936847246039383280686541589181954590905184451073987428731865006150363771865373171932315067519056786780918244445894917348275026694370029744153955914851575823828705305490343338144575622442123194075650826376262281268602743442558535054729877811856279685732780619095609526214023047750751528863865940692897173588885650833466931126435404365262720771133260349670418630232201032066292487676437074218424464220032556509091577607519579274482773303094987134520126092947144699060970722273816476869012557699770147246233630404902079536723267419460399137798176244918611550861808743861104572718011519255120347244258978851091746559573778041001951379071290769990646838916743076884796473211189299135512257917576030054541854975526177670529544076492007444815272599131950280698794059086385639434674380380043952502219867591036238257677090483517240216440847229204700503322108522500433180159452352231171579483562647990203082833159817526503772036056437919330642355501058865785499485898073555196404141797711404192348604490185129255589497767936616266174824322463580742959114192450544122815231261279828567808177792645493297313194255669775614983986411313096577132378663463184474984756563779227274034538912632935650772209039451628875751472699949161353177846107812129237186093221815235579218184176960114661773059642070734903024312656386524037204954021146012588450162009429231182627095934073689703018957296786916699512902946581191978212933193750119764893455735134626480973909824900067738819203945954501651676557646629973359520671688507981997029302896913738257597286930876881430862921231486109028841964869034838816352496515459321064392142722018505220897969310087882553428079284074734446928527387857329760505842148186068901812300158519536955957034789249579327610413758577293768999043927186044492629321842739496670921849829216890973863303944977353617837181786542751610994983307215454333137202025017877223402185994841227439400621174718190542619504150817187714647610303373734971188486636184006611468519868558807338316337847352270208779376999632032043016580004251065740176894800272230272439930013833429441719822164892828929186700507587429773342279507315708725039076737768515086147745169172403984526479634508178932932182751155180091058357945468298758079440616290780398288993503253710368355319055933137673435797326569255997235836572497095747220786523566593957634066185660492682960633425672812762876043159675065267358826664379778521413132908626756446270476170204516621184278675299108114881279511759633865148522790300134714382809324300645856936788575139461833602211553199623527711596211067824567671722141732318111316689891043204006466517938814102890033903322744765829215942836580543829384909954945661640666196346934687385308735237856993126960052398578718794856223661595368220765606521064725952656179388284361786146539750742174336469977926303505561488324547100525589049097694924920586991748280107533409385385480356942601584042004181273879687942957621907088594509368107785686672722695562316102459702749482457724903089704672086698581840705312025040111317740716308850024464286720908132053800633812474959011765895962088346146666046625939405463906420092712903783928731660443622568777140941185421999419792630323710424447209818171329384478176160515009103494633513066078559186926403812924354395122421447573904544206669225861083014710373121770837573090148273756514146708325222360042123288887411457534853771256076133394536750110777252432961141294275750737110106927623099582366513548010807293543812690579504356166518714707365779687182382287246685515124053720396781233059227923077491587948648684203637536250336622561216390728273103138027977842894941078630064139057910390096227914848091910014509618244121918906412664937166740980327456541937638197537561492649975082394563212243657925665483842410158824172236390549979351281022155863541597995853089933732079517909841820377863627502702891413386753067325450759935507632872606137507405798475785431897103196778690525700425443719457719402362556880739373507972180786015113727643513940311832547418880162825524915401824900842659585062954022841277971477013397579640914585252203188733855108258001217026847263305584988295701060792720086547303971926034396488852087230001421069222249454237141915622415207935365350145700194875110973276163991277681696587915966479208233751836372223820113450343676027373919713316204789456101063223642268445733323225980634849394701140554418290817732077359915412329341826763124582428922421885201602237877205638506484195756080137890642348092431356975767033610808284285075432889464337012441892875428773339283296090648057931237765066031391930908755601740870010603589944755989600779735887164125495124916533315017475993427999867295498769035332193181250232149458459236563453640646320612594717875962518262638724379198212175417284666425988774874821528942528032427954012478008795440158821199513124210118070071426516413331517163066509390916737041848865737652380028745863755412495515205845590454406193430152709209117360609031889477009216121421067227916066854935860446860766268663685675807378195999703967512134926258161419507896086689752460132813591896153347656031285604678375750168364313535319289814098657130201953621366393523361174031183419712691491511070934335315054095241636818419048704663098289647551360289960039005914093838388238272535910018215563360551587768056805257256061538287185379254635974802275787013080604109622823227438672131598477895290346706371322386845577096533296084511205848109117864773471485449824982488628206809683215302983763859566244785638073536702453211557915904407529931521311968432687578975192424652054065712533854361837528126995846862973788054086923491955654427636167948196564168701569605423016372415219638839227164192512321758724081908881021527506682879401584204437016920918171765991783081075577452982469410872842327638418638226505900598743816349938040253751696152748280005786192868451415970376481907872298878608109097063616453258368575617443859150419994912515602664744932056048757073084575915763217006993981450358074289819411767324101086902597555090708066335539442930340085031846002027158043478346264109045132709834771666549959091721974209206786383714630943308486704996679331005541883560999429629144070878684846916813788387816107529898572970235790350409404803546557973280011925359674773289014395625825354689240625340100919180940652024970817195552837122024680176835173591780895028169890746912745165372429045758669661180418031732386990539930869558963164964837657237646798965296438759355545606006342164409392563279407263514721708483693475649522325842569847232462110633652855844953709271177171685069397010884296840186968024222950047891155108991309194008400568591466204281353782938402396493044164695067667157864952294779685861401051142004992183351250117370175133596537871639169206877054540460501803540239885815250113577033364284382163546396336489572342474395340381676340110498982540382095551182076655490393561129285284717538937101435549349225813052137421593513634803529255709019926564723932603054602583092377431144396429413562031083865964654926950971600257903691729333254438243301636809461038450199843442516970299162384934732936732881778758149267512616229515296132049507557500987824917319298433119102381039220807242496228036712213070521983038681028433888181690140330274112075120198502988752798267090448215967740358457922871437749340250525133898468925317626469305886938223289422245986624218007413055620614926018734808916305725993538515963684169148305485582921778690755457972525112833654875415907135710183209883836323591516430703017871970075590910840154081484154360218206665353340319240537363822872672854585250086518239647664726140603684511975472149245004040293071530569444590320534162830177384744672459292321903779632440273930919409910499549655282791932166005153901382280156566119196391995741505475260636171967776421413097184883359923986040703007121234442846820489725996951880082411724044365914456839926388965060661870765341229703714736800272159720080753498918709391237650796649481653368066974216568261823718013240290226297366714234659307947052180929366898280519179798978502103754916914570015454538406058465614360282626022634300766077054060860300985516669108205852507311856369625452638581545313061105527473880794568724774790804071919002156965267041805296264230414188563702217487435684744979205603828052800924986773806815145850080782688090631100291046623410401854648783985808899802621157630991226871906911703502449590739262448319022272968872997708722767824836052628385092066651525078033353000660723321501807443670519569926605208188121044306922829713905548669906125255250241150813133634530996870079738662442494858664983035228032295943456524032332169070352862810752413940045784155342970435148740503496038231314837408293015609919445111165380034689074550699056052034307199092085892213435825087918654010602596231418870014028907124929636597869876702304534284666294815405372607220561881685328741190686606470695705327323487559328749860409376178420543132409170685159217315316676392975156197059843583278210973114423925986486827295071930235785634362137388383232007813196408559145900272531724350047130837997628481454310967497645801814428749006872962252254373273576709549847708926534734468320029775285617320304953765520095636301576555329308069356891602301731300191639215604319967301867536331155484749603061715651347714848663195768969323903555189534726957067110157710567124814286601876543948783712879500217901349829944363781596003776469086515588152511641096647911642391114706033847675569850935177789002535084577297213439234491810756322448512700780107696699571906568371810033527929851280987858731515236283430024782740050840782940454081983221903468534538560468093281581438684675115100326408957066733329227379493878073239444014301489388410935856867703185260811814484096884140500110145392579518050474718248435562749640287386119149665228157542952304968362266223361240138618676181902218999329627793580782319015282927057843589299925118198499490989078951716321150417332944651788343915009570024242709408297049587041208748039094965599505052320423918849668977188153776166768093958139017785953337754578205061580151046165305555874424881622608983958151645114637520947269583992573091622157901160852351144986780211122157798525030728112595488465453724915440678770186960525199963831661353688636161517581894925663104069870847977715319827681819573052560137426481474947196150583197306214466457456549650801059264075631956143356540137008231789641718923740528849146280055047239984497527317051931609546233862325342483340761261321408936924829113947777366629198181601009869633330043799946723858639693142483522700733172349508487573671135944184654974235468457349662977715078136586032164066933832857911437708838177591540532270837870381415417707671614306538444317541971414847807441380549564274202527307103889669800248748451175053147335316704778714733953645738435157099046260292128160354857406662313508190390350375465876150988914323365180381807979410446333635617758949772798263763003181502614635494125948991577366727753530390623162685235361804456421915478084815728871741962770744902587883366719095322380416735853912238907223295933080972897587189405314702967535793039671125044397887028687098024489632399300882647049448739932298986155318019191979742931673215149725345022118569057363366861979304891147141628196334835983994656227488608050424920848050120739435885484986039707904094346296753620762875583838882783413407973832895796535358653567858696780454472178316719078915707468162293023523418673046673884841586533174048890485396130544097951359135709718814599317863889566292763405667852558880824715272187704931475365077605251185940793321332542335438133165125042186592735745045368450446447836171715011800273234784920616572312122271868957639466007600498674836064932458159361051628196771678017963846868516745869816034101195585448592157326569309803606840008117990984620351733819258633841403693535258127316387646275420797462755947865221909261155326912961558190649959834345846621238349547266139164566761809844559808014997416016827125876083210928377934360262691044394111536018615791032825725869210200449236162281056564155794602951940446926574815123025126543971006097993593785413652154868587139644011901222169351906797416435444694623049771413344017833906551336131750512743485356742937006396435434924681811961135887503875049993013562375201689327242648720677974877540037603247211918599769150381151429291350379120066995967138973487102428763322087988304364228301734350371062270658867433687907656147135124446525875466674983732774211161926801145239072607295078200999364204080212319328295202632512384638049295105417355214963196642154035941530512727874312836622855273974278158973239063637220643105353510743405202362230434243427349209319366949170885370643526903499204075910306675008585371927770286910874316291411657164992766696625061729958460243556101999769182716577099014586063526370913409258166224596846801843728315736837092357230834849015352156499390544997580903332407691850472886986363396966883736010277215606168852772125458686411430842393487316240168089145788345228644020467576808689657519009864026109336525668651561075342987973760144250769592974791162014352232128261249319154156841562775985625081068237719079924289423225310961497499564701569640673040181131411465522722561254620764379577867443648602550661350059414764366388381676306200343937800210670262808010914350170041980560699447987169078164409769171028504782747796583787936144416690313639170711014000869935838320236588992866015676265855718754494950978978768313146340367853722967311132378517377033170424351346087097344498340639929411717415226833943035828599319457798800425546346520861021753178451430888072498886300102489624220632020676188697732903393463174636727788201062542714451039839790905982726033987837228909176520615191102474019278978342623975076977996537893562153033020350191442664884251691274759970007425135127920220893290753625778155392745140101652642886679444666644721835566963855010529941910426315253999896985524463922312981717275677463470444125183456021074161846334376899523266466002739600693004459685693617429738325299588598363022354638857032111332275455220108988499241224907157961241322240491872053831645004627421480556524499891380220291131911240225926885796165489177016370519635170593801756177570339205823426084222803409739630001741632325099760334904611272278151516654697553021496026770394529814840309727903974941714122631977040674626661575095727180755628399122224166397452177097662466960492466498993492354791189012954061328029173317009745000021598698274340770360339091701492706500958402177908187571466470376782153580021788851575157520483979794096625644959398012662498155208021048881850086055212740729464310145766390820421994594877045224276396231385099892957496762923125703684436761067172356196362024091451660239555622705159698855256455655353992015717140161518164878993638050469526088570987371964976866926345760337445776036972940621522127777786276982060367557631449467708556797420240439088956286844760564842098631400019992907431128797713143762973093857732734336325077871636067801365772158956423239942329301088956228435855848387157083140206050539548295035316412869226676713906175858743334483298771290468567162769469397321579361378196741761229596503277075978784105990342290189647810336632703706089939351367161431663508264171213613107413988565775415203926237332501285371816655139878690116590389106144508251397331107174932720782559730804224317626913122821047602864407368132174036456571048635925818575368618369224482119247315814034107657145913588664338894734898549797468810740176047227626219671487715260386450088805933722899578656196294756951621597988776668841027742843619670290700639692967983512492632086767969226194973548607680611916606959248358469573091327750857012923110834982915318131112031974427005170678586585394634408151966051977963529015409211397571695310747760782794360680124281192223149998366023237227567471981851794171564913326533355790921330298293186264840859070816362722060862480409273207813877457643021903162597912688422519683719672449479559706197166676117739518387779725091520211179407485457558064043835303692516843876630403579806507418391455852702144374399865907342312380000209558305818312554460223145422671373251551354844190387039750087880193895160612483578603141674151485393228696924081077865116353500777705991921246270105994382872189260191730270564949135475695874675152362378967726853412664419322985870454935999078510557405821745618991486219916736679875031061585368025704754179534204188429238168584635124611073434513450625802177455051422010273648414120930865700310310377771413075477745307097799948853437006042351413372145333846431602446276642227861808220573375971552480420789959503657558118120856525924665392149374143287301821927167871660993989272708707045196662747648595595004585805435796221610646676181238059080125355797468630801280468754410769774110486748828219767683491243741976927247438958181116333002620216268099809207848837363036809213586703269587047113164853581522827762927820862441669366165516149147857070589299064898590829336015526417583390524111664185934420041347211531973938610434680606615223896956057083983076649301753711745987719817064900272462913026647878050052461003860999006563045426155829227770874013694621025066441056508644007028941497502711996098461274718565558659627911773479286175919406766868462640989544866759259394656350437457112912480201762105805303233514398476236986145636437602608104825300818629223066788927248419773911362828743148581563879978186745945195459973241376760810524022666752215449269013825032579792026487805162530947324448323702872750106172060451593136829287883560954333507976379956572352439108342329847812324237112720475939157246750041766180705115457786296751753001052065234030559831289191868539467969950452881000339367883991685812529462288087963116846444812326077001021162219963968761320138705598561825378163708713381591651853522093747341615535950109193481648980478411733888337455555502728172696372409607979718609593295246640428178765803263427009444076902201737382605843070378186818508419560965918664793317694149232979823009523924690512747072681680630512783053153443267770403066561462337346488454193244374997204769264175336420778449785393887748044880896827792607767611690405054496532847411346351741318012441234102080329296752142123154542153660744692305649305781602077336927111241341354494495949164339563307347971773594311364042706226944670638474970652887930362418086849134745312781996633416514769319612429002281563473754722624684667039629831532669842635581105751831417046174227915149298275633925203948826933307368250307105707145867660691870823371592076353352973070429156179254935991997360192355342487864780480386584260687050278117934511811472801535147423633444895205409355954861249254212892300126615332597136300898094074971095492342257753633600610700322887758401372914995230390245509495846525331152198164812174007408143765158962754094018145101858477354261831918072716727946692804039325832653475475175450187048409394457381979911201711971285231533468763190816042346109790404130182843970322053501586422731972951898662241962579944294399741608169867104690513951184047016092333899204877672119537029559291319698626162104465462832670239555178761804114032396602381247111549942469406583543414095071210204926254459172268589955705634808905430219616899707521380857333653263033683673363240571347562082576572779776143147931014661803273515393070442607205586181350199368488790189615240854922158162795841736954821535448114088970604248025033680610408538069612183016826960766418848599494609122608259347991643109467507486727767404817124851327011199368405193539436758090610093647995029652085956531302149392070005112096580419567967694494022569619314454027199153821242753891851254163500491453396860983881982291901827432943992299899154794690125596912113801762973895866156894812485988347430222321859126942440087575396573000191961698020150733593502294068499094889598796896781195752073882991663135379822906472639284116546376508434129189640103076050300840086892428269431739598138385546228878840353990555415426319584527963700343678876775751872971004663854431142890848831577133152737428174490084339829070164579689386787389316903866645578304794870571950401440361317143183391323270829738874899162547093628531708332052936984965953199202187991945589279755685540746219901891308816576139572626745013185022781774100859208056361922761144891012252856536950750642414359354118664151455279176717355147968421844768924806585282485566107792572226771824697775245349666202527995382274247350921095255830947120601364997531469932511392311926418977062556861791870321742919282327054133629365372363995613223755064412195683642488899314390297473622253255676389100613292421004455461251746629821712663464509641865980338088375794163765342074649471099043148495083443058889071180849493480456895907708341212795179080695463318444639557504725995882200755471276090295179221828579032413037077803475801113495113448695560651911159078899261367837917455684894511928135036405726132851399295449008566573582780326910166245833875385757911702046292504315479467010592876997963238629521008518520912482409127920130956840017564203040175204410950880867572442634286089106434722623711919958519332256769344482608761896710600350917969259326268884614260495320625236421998164920835763706162401108237574102712754079997727256848321947374494818243001955177053647745910189940952380386170225229860559994820807998120293266111374623159511524936927437073159128359001476485886616552399884592543960412412331152078800516338098007934845341297958957112498580448439990416415532458170830860369495360992482113742202310343232626253107059954446805534864474313906554681920284309001173734960534107970451039714977867522936735554832573336790257998347567478879977612815630597847759803917395576065415710208885120144583846470472173035746871635537962150430825531908110645374957873201035073344038888052806514915987751540757474763001642236831533212901916412304523386826800022636088479490781443822331472352938560658811054988658800973644364826970401928822822682259997616067139070442322317325956827687877907154029962541662815593283280156319707445089529593937280059546110676423744553006488155456813521997740792058946570393576910213822957485928334791895525550042800559443914811473553029141752826111733363739863594506554590714503263847636477319537600415740833525792853440671766869719464166003875362509375402369321834837821249363606071566170399910659004205656655137438546042178332584850164983058918618310804672703820649101972516482914788583316896094401771468664353653046270305661307071555497806740975932803211990423460450125594325952392309349088633152397643988750205218717734343650457323175580912309642984479018216949186120452316721017694126668402652201435897467563202036475227765620247170293213439578948797834765587815861962301154622661688931397696669437715099115350424111952122345809937019080136573762703704384139717049991421713919861416566806058510242357859177697986135123751013013724646211389937011108258700489602469029113383574878219218194882151190044604516047206410545909551174896368412346021467008558180598047254197696492855665520405464931670866621731510235227453216478746709282694372507756592567236436656925328811301816048739243025856153800143794572721958100816389761921408353596618666823508152729371268667997161389447483575064584273374725043984623527935399791781467734099543427255657773579740049383032963377412268030161783302616211513976982411451169840374213654501246652789439124434539382971730373286887133967890059478095000428699944326191092552682092446996580872094086021745636208582911213725308402907577593577447763705591596429018891158427699982912571843733421919648101550462791870244436672374010390284435437431911268851513162413049245198598254650799898146225384486138921614385626044616957373700302319333294262040837728480086930655166570088025428038172552893058596482402278751564448704956432610739532090936367912201712076796899569851657777074464629976211300516831386001843152947794161510668523363396036258380344993395807720011550670141415878522932242615806543483883732097430169920311550193833806505579292531361363929498496514993149337469290418888990819186349265748267050658019109043259475833414108906540839140955448488007466521311659579658564379840697065980202463905362352871971487687851946760880739620482268046308341826972701190166709282752494052308717480266137716928557248974801230521934811080978808367597844531500238794304206642883400628810601106930027997854358925636414357148534481712131681699354131482465024393657883906047669461781000781055432854232669233554377183585777857389256398739950264610071140785846820415362843594875702757871198080570170224937446018530752164136309911997423897964339140624319189204262067175205674696577062266076991213767529629976627537670021015030569985847649086773761855978647081239255411560684040193252152238217945112985369349561846837925600193419866774931418585990532260915087477785715205286083552427502027021711365004458326335807645154349084154350987414507186736130763997522643204969455360167529675489694159862907890127656912769115296584048603038230485654263018947288857467540480404797105257749272153771971550760370433222099236461517167082217328258413832155604398540144331184755816841581098137955307767871929027410017107899216669093393257503731833674946117166446256329075741549873007725351758426880760881552704914076067007681081843182637326336604968499240902464134797418851676049092049406586297376442279251828710739867546179250391898217155310418229428237292264686423893941777892537720371425277231276211445643579265048528365447462637264729896761375792005749207199142703741321966978914535394344222020361350441555804056021459775697827265845840467382425029352092125233703456900696962655800950861629995366930824973593911849147597615775691080977109423258381823246587776753352716655237802007776382940589491322903470976134277119350747582578131454192494477762823807915009088398000512049187298256681970170366416483542205316754566504391120548189507007079578452407101997035955087265839711472412424641847481164879367383356272143523105309709647887547645499236478914602100244767611555188192642271351066970189555245432190220733549850262270471710361758804453673424039039273797825014934568913250227793335196417782186526987746233539690605564025155552142103772007867979422986872044421932498842778694264687141998891943573177333853567951475455721944059140447537015800484146396077617141552674140586133412839233813573541043201100755989257110849990961768585943213736334475571108751419296875352004240978652768020786266272239562453951148767137113631967998595829673349902310892517957014470877766995183431994465886078861232575403088088927156537929799689918711900668259384844377494662185778528688718239622492089467427805010745427958480592972529445032308275752095213940966965907045666599508689360985405976918447452963906412045354596521294463546474333411025007974509090700902113308595354555793494385912674461266002554917565164368014495468433059758916011982031378279808994276766557269072790404145368609225395735668219795954131335624412743049209694416237588488149028938215510417194451974540189159334362414847320405769432345179912108760437213636932028243008792528205414230358617127915965398956809396922458731020490424713819019631614424136612458866497809190222181672212167388901567096872539461749970498122092913480102308731643583517199041956051428656054038544928994674614456418156377074987481244236711052009875994744512093570604339317871056957054730066105069893991440988647014115762836540081478520275837070021596087147414081950677640805684930859307637829854686442596765001345367258377157943345887314390475247161459214400007864675939245562649743264586784966782141856837742583141902855854293875555412147126454503409300858901894732199098259605062468461966269870640429450055920558275790452022248770096587400155704244889896206660716567391240536601052630231020218236563114168355726132615480825050501786557943250929178974175983154043014089620641607987279395284264751227952984587829364636306520784099400996425084253889221980820833321437553568135066912884424152434734958230478520616249446219678533650371628580857860041516147426836480510535470066548116029090821137730179297526300915634362543413513229374734010363609574193949689118704934636971676933449369277953860316523292555851797332315944357324539898977809316635691749313698383864498587329003318253821933230607793496923746235256092528095787235819997750065923522976575266828998144791435560531538400649163738753862072269889924823904215267366916811493980104275710847596861594444211267275446971806203793405538532513515030145919157146362318636446760349373260105880267541990681021388110749356995661594236542311178935116539509440449756277423082000847807165881353808888940345568030420066984110034168294953377519591775322994276572151770073472175476720565146271925472498415637110060972481144400189634077715229007622374163218476643651355381511337971426564612735556950325288608610146506196889211443943138965108496795510911082707169312511848026697189003798172018169218427760816572740677736181271760612186896093554510220813013004259343908849142362541145684844296662474390049240656644808824908654165671208266088926426441406247847501166640887730132666431283983372320871597293480061096819686266317342131501620363915536299117665731758550594734967330858590931222034134600982893996702272869388724020223341585822033565470931900433711821540520977657637196998474967087453568432869785456673078212123796499863600791543143944783568393059157846783290512254064657405111595202550468457539959411680356796389848629899350066408771243743725304442281745084456314352109016034441601220391321498054205229761301042377090409651036649910535545479358924418213754121223172960926621806830405279501411592842751793376585994208666825354786209311614400398272117512035318736983851464686706350224272142652365433569483323483200595862947026555076189138031101750678804154921385477329106710344935031944232566029120031434761908762981189924026091920952083688550934401819828842891326787712475193155648425369047944311072404809669151374546338178426086377294582968367018690508198101204944530342181672099169324215188685738353162452521474763022531757124304110591638529838647086099970835320672883496447010123891097693858116241768978735895982292179496421960645070570286247532444409034928883143122738161542787846113166153805107945529120967957107639209719159558977518689473961863022693406391824936962339487345287032425938083876902718364359488108015132162436320940319517934096621987883897991177878029730311732556559451284943163820758613988905117949676687714517291143809803375604713808642564985063218623985338591272360547154994621946923160224151652167819450114509574400550545937413682499091221352667694445466568543555498396581695145542192555671474697694374643199969257185975068456306338989362491260878699950510116337735592693356374488693199542236190925046235339599406433866350601518685525228840107431903424698387531234010309033999723885470231516525674460524320448967288723660628370006384688756341403608427702124946470768938066646702390324696019265730623441745256070884503347938217555185609870322055220768686934377685169938117361613333819481031077822533846694506311424619211037151642053027764848040888040146457731968667962427758434636370987093339032499082374467720757082895981905999437165319923305192446788448258605644445429320468864850912043595870204619763026992000973010487737687563288196730204198871668893853305988094408975529264469755206973379920825274124837084286397483266264205057521732420436035325758604831268467339330787181223332102005192624042969280346507038591675049422324743342523703375981523905313081005328810261583931916085277643916014251050697571912393943039970675952136493116683879708596382479366579048647214663532678750405468397024023268862671828588764904081215447994389437696042190040741281966820970563151160133715339743453075772787437491029837404965123180148620604125724807741868450438310272501753209283743203282659232172330360914471324969002378400626999381232725843981999229211642254909785346483538391397899859954234553049959396099539708807039166945115840843907286711130616653373472786550458415464109460346395029044581110605158206937069436935272545015157434593957065854743154890468119774025095838702267433459136984558757765481663850587728806689022765795884237597895611760670376353011010151014043155489817790640444962406741246661477405752481493468528928330675859900104589197850054930098200282562844558479452716220006518317858492372605642886549135786073804068223362926709415023522927368732754071473568178889073960900841993238644442347539640204900290049070477484683116063413810065970809266962713133216488608543468376345270705583780652771968656158591421418054577802844081756759854716328980618102521852011198222360552167463292785405955244963259792101266306882193552613679750170324963619653331221304371063146162211394117507275715490426143342841546697014516101199806471153713486809341017658439458091630599588923732848314696968708955911092445329026721360320491013769003071013945614646883935641004929062701725597648639168377791445886947727378036407919082591871232563147827976310342614690502001574909823875334504656302053626383521296241304968775685782592887484563966288773758655967290488650824198022519202239522473498289627298720310413127861758637733207573785794993283377641439103411871515964926731844357899923964646127490150786447957374506515513703919172434086825548037022491894284277405928925725344420125382899510715799931957579740702314061638964184750436927234705222217398259085498123993227875588006088453008916286079664676682857419275894736581275323449665041280532941543516238233288625945952545055918384384473428245983503764398808953496074802360527522042570459157881726596372942708238627314674629949973702526772400208427501957088843631214665938955040380594164164013422818441140662360340079253050593717290225965534343280012620319001957872822339426656268260403417089648229111135852122048682579809817509806660045200204879266607903364060423603548745436915990132893298843937046161347921993008711150182259270653745190370135640617278362233116644623492905717739656186499265085383795327357267048715511014220106820519852126728830919119855191028689929019985895450592416775021269392165779471151783714456972627003778250478508435947308835122115626879553341849338112916559389387690081949873929989313318935647544227003435623710087102568334329979768348495886066649464466231687384549857590955909108978008111103421141682882685838626060156052207351423089648116138824317453811601326133897941768292562985744775149598524633165861318030596575070891164020243257063458143472945910079537584446828409954439847013784707352496467280667343609933145454814705584815662226297163137029988394092930068568986460513485108421858681080510571781292810974830716503792196578776644070226178372299032294755114775270312830357587785023435201589505575345956861632087266393381901550215121836874863260934503955545111056251343679969653957073703630864101498475684882560816914011651641349953393590883423384422351305161982970917744796048894354255515675433965246203835881651357909694487221990227191959803037678120277960278521956602130660933574901163496523845023248515986428750691704754592507593776155446682975357183089331164866661148722934030544308665345877276791036941927204171884329804701536807508981713018560647291617771196704248295086832998102074972219517210982624329764799936267215748228582097558295717463807458300941821309277485222605497039979419504748068588892284636713292588731624514571619310796770810747476760361688674712714143103710130140800822402523593716471800185965745451778171956822326573082050434335538129416865860745384162598426994328130821595277060876388401564483923763130469125985229284039181941484593605735337421282842854912319313489789184419328848570416563147987694228687195200658111803260068404403063466763161235776201945225131535967414192052271538059693021882328709090534467622604545259513317110723399108553667450958247289703025158732631006884730196578490150039288039438554171295516974705902380558080113890002525250112718722313458355443593866017804807514914072371230940757413445743264841438468020796354234195682256871943002542574450970530043490191949608120958147219994633134960274907680429457175127286163804864909410989491783311748106108295770802821051857711083182937054185636298616782123596097265317148950075119156428043212277691903079926078172445501518287443556517045476235902166551563989008219294365040423122124775109133508243080540979523399604666507510213397286466559348304565324792486714531787426737740481285244205691868778747930694059385171896951004455459496672743259167898642408288577871316815802313036756649989218702366814275592263677896352544717791137185573515381872195002764449550912238887353839622534039204160446252659273042793825763486806309793179111854032587841266270803119979593252257358568372168430689790064452072929976684741561732964862160956465040751343824754034612285315551441749867789470644605149158950481671422655845122263704738607421776526356407167437835648976124605013739744391282616913007386006058984825550016267275775368321409962693925607017045196228631116192820363634895172042745598813759718745753790985830313585628914698790786132010538390063209836566618962793540213141856538954710945601592532753734502711600194074247026827963563315967684818876132390804169561846290836921440423397968689368377824344971520314429313227174858111573947210326394145044552382693887344115416737980895379182519303476066621013234142467648940206483624438859381784789642474383522230309358408588925451451925430420251762034952434147452679946250749254974830721300609184207794080085849206386424045547591775566929149388472100317094943214009151168791246150079032249903432029770486076399155951737062092649984993123780478151505565686985940080956107474329852158795228716212124109012416171819877833398439817133394044209195563050013320806972906273251578169222736316677810258380378853976258241056943663776658903385991932937132098319318993058431767173273635647090911487102825951475140271861121461393554105280629329833895288641455665367026335730800621770896539323839284055164093300879097677082281373301655579201747577924637852637959601136548385179492631538145820503035902068309835563405075347682082090625666942680461581230057645770368495502549506996578180768142488878558461914040865567082560002621613285853313082472919112559089831994089184098191915645607892003906387806359473146390140520499141513671761650552127956336280858602868357669781013606850018752260070070072424728912245822860311402214902742825808942986814615819098783801191642082223054207117536924613872963236801894211262659590985984304344083239595202224254621055075686476462542622018371223714470823655225653810085246148064553914603971644931862531702056503269556545874429297483688987942253437764266870680656946789907278138785219010214708648183409628570977712986720374819224175157972840784008848108436261312168008410466275238115904037567719004845033725898036606480151727637517732885026761878954843348057990753624421456058157510893436051427883183175117384322042982664016269347694822081984223511750735305040541857553709572357139556691578487323584566141490477958107022983753284130065604502988759981885136650095724629510161184953384433308987418475954372889762975496597528473695015240753885940036597596270121171256219342196572821135357579191182495433988692721210273725724403932801284800069320494967492443136627653687517206293518073936970241263795456703146250155259734685095928006707701719596336361486938657003414468406062559623743285698968975522465983963701627896613237074395087384859324926345021813336094954504909427295911696432645571631284628807941318832037631081578556403677265048817479254749660057377873711425587552797469203405983049076657900886252107819709015558636572577825004773687708294912521452242098391325139925003361373283240106155358922861062176175585808722713920676114749066825742991296845015786535661356708856147310204329088932365035578430658662491146408045693014153556357865081233877623753240174052698170895760359093186419450061920229196126878995625916396551425974218209405850031789145875303644503052040468813621832406845920212075767294699164290759704177891110753799688395875811789985265104252727080845679691802843316227786932525148365103247190082386256391263811504393873703841840607520111880295840200923333964437001379508350447356701225816227615950612019760239958621988315613835291569434035600561991785119849426970634917148241505600043437259516766486798093696242095984051872349017841800674115375876540234697596135273545262338812492584744228545641416793161505504168253612148495805850142546881662198181774900107119825075505120542130528313037740194041154804842545237473643965151382857445174742595697061932532451897610023453062144387505935292949857083887632019895080654599766701745998324433321405629995360895156130481056395947661115615530876730113091190672950689805254462599868372857883328013069110009903997934294335012961435154633710115682454317661321703235363496822765773984006741399567860430513433955840886607519578451692750632489375552731670289437655339256107312906216654924781942901888516373217381229625346417316714412446710744841938124713922656678997964830191235139631717121497490858648062952020889410958577044994704888317133478919476680031512051710533748275643048465972693688037995005315057576920240145821150174580618516253442981823044848526123756183687690441912795735007537591571620153307810400992482936492167736723421293128197282393558444654765632276219072554384618670418465037703325121752359245994411950217413235392501503760630263335020775048062523258483239073492841675553750104019069292312882540786318314389075428935441635662896557643364311338576669411189466055916353049863736442253989412045389710161663300957927241690170532880118179389616195688245717093768048298436043057226985026672210641027205785424674600878378621034176868753634564187273554455965158291326287298333608549848133775099730915741108739982313549877907809800794627167575860050232158427383668868400462508495900385832333222352815926616048378592815902504921594977661295203961523058890169760406454566233651463940264382428923623330001435443741058468511831701748444284474031662579021691070505437718774503758558540538871815100468725139330732398182685599169968929187003450233628868875899194230068591064507887661448643519943239576508283021731874649151500234494862609648465076561875687919944778155307764110925538224351129925966964641791096071351692230505241137337924037394333115625738434004021139232831042303242126280896108258013020335976303948876201632177737990370024203632254296223174617832795653495117229674506280534065180000084087038126030873221110206224153890876140315432648524322976020244452678829578644200100567783020422444407487917472236079220333101868252167278137962693080697334770677493059870265993028635642858370780946829553357167370281596337231886521435736684183678343044411112846007879449304088657131328803224926428261455795971590668185800763167117592038712283634560317040355183999111109353443779230049698656628829499767638369709316879117839118624256726136913833877411391011458668620831847848718244098627954648587493656922768041120787635225543692970561361976228291220474008887583899341549664585814606711442145141664621978258255300752612285327177919663691209161427073367060512288672095983877740536755811600664244531881946312831614713322564304535640848361880306528372502934149643574026066454012998437438136512425670061414788558051946038015604983437923405615102959396780402805025286059079318387048104487816934821598177813712591695678040419854063514221800866920272234083512181624842503452078814892141193366563022211887638086430270778027851300765220982434036268786268902666597437082691385618441999088349284384199191017531670465983859233623538578661671477903870951443465163109857721195641288939153895881702633762370926366233695101977422167527721668563812264344456372853543124592220263600176868676300411486694954015639684594420026185993626564285887348750789655823580376069799643326033485704280625808059938080988801632749561193835875350475393331179642516012544704377584878660544714269749137900392097420110797271953049086919937895565594882116645087734591276869293067063598461126403222448054984189536818640041487311876924651912629132007640717624572167156906068893996315696782937880982019708855647882950204470865922545787092825638867131932746817848471827911335626424329327943837496415176122339988480899262484824377984485594202190620667147413602630073780187333206035177515512707136883351032080380573847673471736892396108794236748964296973079204247423681788440943951382910452442438122459768617508978480229704438368271943836556505318065659063659990930660468113307363190544191931600610409662333519246470116466875549576949712366441290168633337200747985028421957166299183745896379013631172872199744578619852865029344972057626330370620430485440757209590845365594857902924110111692968315657634694256413378620295890763079170153081885135727112104900213673870341054548352893485899868111354287244114789585064262213995056823251086926763826802375788837389420348696791970928019958928012744685112402615748410900482876655836876978875284683394751849472869613468080646013942460317887918015286369988857742294509946211278029454003632203566135738471508371612802650965199957985290747056538425520864324178841986888863844347004217919063398070965081594599590283886921323574882957584814018259148341953394328966592950922284136951116677568829300235094655559703358899308105494239680248041431380663189666211616558046547515133453172496917601150164492887298712239447733298324902182852370989097771865498341244921430349544268478500903548306526461230209937857886540660801526081034578970461332587732349186122090850766483392772201024523364135563491130181806293503040025164394552457525183307115721285478123928445382490682213017286357203453361351771167226743290865292924301991344363942301621285505407979018955552892879547838226932702980793061513823472575114771718105369261881301849641365989870378553329556065361414940025759080314690786014019726398435551733244615658334381382542579445480268459438544718108954599380559522490434974598946804812075937499329766174707656587182684730562253680793020473550824827201303788265443056898528576620001445979333343459586169605661444098996667150682224107068634295153493936049341930124300044183899185840812939916729388567762869016319063989272890815529467944126345385107286787605390734341333175428169199153286541605976382080780389572596870352163869019055672299518950368734848780184336838171186916815652441166517162632334528763778417859556524385506004358612853484873830433608755457104735095169928821902721253854157092238451095609359648599049379419716448095687564559768737990647158462640428820526621307657384204659540154521917862437936785062329547922564957720506000591707048282101685268290648597067366730079210791704399180196705581567872125607532670102889823643013464260441006649346316985627085679789569829754945955293458410416037384918223902461281989789599849844956944437889849884472940795847194170589424965118098341781929194533957721498177814518752596572874911106434083936159185193662421889868228478177941443275987864958586777060580533935984027830883071296957140140815579140552067932345509728213126793067410108648998576762883312566130314789338102910635251676121786702494263271566013574508135470653133125963832406103371214087093592907575510792156160075115006916040391596009249703189999243592857212225925952261978261816445405886309267526743631858619671717381919119631712808164149539811600996220301969742585353712017958091158941434548339043922726980231465815177404337228940260573275572561331621580504641023380794664870325973103684463544897921889931554991454538109721258658166094927730289553537210583565201662297096028117007061597159880261733460394188995339663000341965336472575002841963283551735498656805107119157985678249491137363033617801725555173058048031497986303525825257062270053084375349125039118945197670071579503972289169217068022339222208398598018534073767814100953890976782157900716877558258312652367620228806484810097783244382109759471097025991700576700560673148711752292014131562930502522912377601372975799664370447982172752573340204360848797824649535348555934923994796432451871824545266873194674663066427220301174769620729333680822021751634283353201124993209802979156232988826562111634801326513880074775150178738018737470212822467892260507431268084135314209715636444017793385740433094633154757637395625422523717425771641866773547557358470316577685343761974597649995406674244092644181437349337681194910674883126087521250633209156177664392909196437101205392185083026752662291685413079607101020115421194350098068253018019993276177539469630041037113582772770494736260818240108873061515074900943423319926384575249320065676752995786494181014206096208571609701437485821511298818957775848070059168758590909340695600624043729225017547559138448306926556265778810586525562410590836140083940682609500575921600810613394027413975568196827447148523868190705742323320169453183928918479664631002196942295375024534083023705288986697961654632310165765565975543098916848591489523921946080616079185898527997176641267499361162778275928330206272980526209667479865353121381256098740837845475984543698698884667696169635057487080998544951367964432964349557717411933409062619317889115004166686663816245036111955456615870103601320353988622606792731071431862730192193436773552200178711416507519267347251078055697590008550218320374078327600349081124023390045079275922233682061246873977283247175852662958100466757258878966595198256817612529028090518874904967229783626848246531828036972551349730973539548350218849416230580714695147233670199290137010681889815228763064918579754584918347711049521024857791699119675021248937303488828393580567383160397968491674186774430755926277290340213816396559389974939969653248337154882352817741363021907691493369458758041393604289117643299719433721708022195740419004955474510201191835370892122982219810302818085140516228487423956438524437385275074693711885818972937489639084576065572662707930383848575129279876397492569602192222807725990443217834535138254717226031793764636154750482559716976790961412684568454831209950093996307712505159318903344918876237195043234641747516916795577726338734059705770726490823574848634724556486649407635759114103918161767147872474345965869813185097616190865592555599701443276229021745688589178002841723171470818221600869946078939649937212393724072671054332454564858144301018093265218538172457783083212529250188597470237943990566984115525594303395789704528789060428025860017885705025218490916296041317799077495801522057134585580876679059186186602618095258110343223995214377118706883438218591293465476375165957453513533670233648481389482031908515042503796688523367325139631672403544009259533393189009865638313354979706216452143239758714085703711721592938726652109364624822572957578284162589025704846260801863109576599253271227471995216290056585942450958235871300218072265536249544581315044199054156365823512151860348693492639706044159786500083622412233514003826291276276567480758125380684202117957572837271925050589400931451814457982328091717414237991947501810626170749213613067921729751728079202042427308431489154076145617401561235460811578674809975962830544012564250360445956776065288280390958373500910326693863189920460997290936501935659422923585729291457114011784537666744576318162709945035045893266817439306767527112119399235431393767146682415649778026792330424638959820849449320648855704434900791973058257628339690019313872188541077427527515510361323193864456160150977944825008733462591032794678777053324436812572039100420260445529164248329511512207832218568999449911107702517917104613561162478445028508085963152426914774622365484456878007754953797296057253430372682312014987995271187851879520991438917716559940921808127347670611513311109107315329262462063304874459065899456505810474292695453367089484024620543970208895528682551644526984583776128807301958002847737876668458781177785972202092947164934001184546643356709842999255773285172187584191815374604188511551452281729654628771608992220557547300754689534002602443172521003447253031713958436997652908496098009926855863430079129169435999414648221403369904647866724930289715510949284950829237045340601680457677862755202148787823877210983297056102586885430284891803468313371063360702931807506697235615379811934309657772737051944123163545121263100418686788047563367371625442704581394290176265834825338166842346688221291533970487581567271373838540604373316524838322036581557294553763667808615740576592000416998631215544707586231536045838477484188897131223523800420478135155997675580391004249938783620660422672099484352747493449179833131892807173761565737973470045798988532463212953511739799746988613911291283219442037728849105596327862329200189224443301637176341922778001306555247184015717185059247247607486606070262499839796564930426646535013901430518211567100893522085211016975956567692589568478506927195202938629334719946836177893570363777037322540728851086640446424047864119557143293429541004383369569469971188507215866419458584062348446981385761453610745474130670731619017605135982445593202232315915957112619941251034824391722157521401758522752198378927124123800732953377338326044764809745893149623109611925938467568845716513428438161161713777062950284067121045331920192801797561482493511571397966968219727182623620600824013857561873360805450683465136397363718461905739872936988369990415035658797196789181776502373861298363889682833889778967142905833572679894021221531870435296553770584372480104652235103472584254114825293446417232808975890846931500884646066159518485743540013859624364852882698907347259918532542890370461303411225223564703007952593198740626090977832035478992539836572115333728891034500114730590282463029707830677728568276044530817336098379499126203460996348912055163997678345160468828822091631335082806959052486407875241099120853152409396204297507292281727515873355360833795293207010046467314463236068786769592542718770144497924420881875063150951213324303408311070844188649173930154222246844183355371576646031966990681469451757779431365147942095365867054687694988668816493321102961681659938206399704142413973679190444495604142325005947193306251145097471512777875579641550929236969890122847947574960293842963570954201922707322167188342947189249488039635103677367172113393373931079330086927785521802120464349197075595357396275628825486499846979573256215946483246348454306117036033912652782982677002656131939118407521170058434652170011996622302485864936282994713862593982855037654493014205846883284164301832507281907479977031933268943280046665690016732944124843623783702000933900407756618686058591180022008749895538130961255839491969409092668185262615159753583700708829608900064107309398653851377914600454160015391087174310512413394732834233327405176763846770210970681604604769881617543910708111180892814567060326762865102074447696195630331952523704991614256908304384384232874410926520455873257987027874334568364652591936939692994787476064715717859549021239942033155187382600911894029094307618393931240972805755320883914440104334519919942805623751761649592891856421793198010395936854422789144918655096470749877416388407061765784315232704613256770308493073861109961500174157125326293543573654120389654283519244305614924247625765501081984439958736066409477171367636066267100137427667541993497731154592120256488157961063709735109866862244638065389277342113133618725519032421695496839917730395524484730035549012113223731934749571793365229350131067889592305235329748234089639559514910825123918839080728770108741948109954976319840394509214480827428609170668688075061348625887308474507787395782444737460657308032642749028772859635682810828733331201873495243620066383087946091284648522759051854814711209350899369728920940128521342086698018508509917319375507850092938349617877004670553225932231766053369869000767662178007234585332310813882515231218579967306013889370464995547789332387313503785012979605511428075324387216842231263869985322484156974021946528091411394998368729256797910797387491002136375963278811700655143153096856209711473948341812336008861202077955705186751539555746263204863211884538857021895117509404036224410770682759830398472158644716454103539991001520762502279913616381199984881115866418566388052375116646840051902986288450508263843694213210172690461234513107828893516684939398340777710106291037786269893609464025817087640466227292241957010804798817455757498937764696986994558047060744664155781064575906625701180907438150563160150800342868259061449198103238224869028142607606216834435305508660941463950083349724493536172538195865504886778670200432693723599258064634963026745430004171563500389605901600844304027929304771486075365067976741770217251219027049588987773361085504347171081374164010819971286445178287668543527490929554999315848618569717370570252197111304482203878229799562457542693976026366729300153577913244810615170066555878383564950000886069969024349203482305012791012308019979252816704482288545658939964840537019193587878805467587926425792195669129446837346984251376262765612579941205550162368077761689088442854829953127020734220054432034801610980222927944089645662617911959731856563569998320867368896967559224691345470924291277722547507434318579748245816131234678215740336074791037634560196894286433921869419304382915237861535925871095042575615045603804884612240907338212776282669357122244603711991606123946184590725446604520795864855712141187754993182865419261291737600284136497279412445702005619755399120571972808094510981055340458906140256240418116493230020959016464749676369408180648328869245374722983618385223583022373885823551672421829540333255576445966158666808110495609540346768282573840218694378826132506706495004174566194590635564503964295046521852283644235029600442625509870656694903962139598078262720585559401907189439980868865876878233222780898121691767466676145255325607835306474533845645248585256799510556578876298610179979657299162778025270472548423640198935425666194243977895918539963842589692686342735777732983688212857186461727182610222976508939401573438273878386630790890475191771455183171601628538035843312829424327611594702474417353909644913618343620687098597967883796424575709522845320254706557358780718109945721579780774463173151103235402728448999258117750063984940035446826323319239186147680796389664292923353379598947296879303321713721396125707776552724650648674994690398797105940310649985319776490639807641471628820533851402341143903049551485201779108380548221001415968679881101051901052355064469540144920683593953181837464133030425943212493347935787101037331413311056839348837698649927309639100267916784873374547664656055093810077507076744360178390087967889169388831543306199853346242990816343558436314645992107603123473011006930227108089477143248122602600578320674831016601446145267402507386176535195657912635179516801168773341520909901310281056639921328199629759439513416646772471922440665627648187094588038346980793187001717646065720489510297555881181641757363697695378206334323310466465967297598410229408393161824791215572466196971896302492210683935345698204843231759984137556450452376202819027581513072190027527707275051867135096997924234273637745334361043417795539263009158798725583098476425931654719887477423804193192805682334631954375747658737303495442664724523290857078889697105485644799429595892075498382767413730080967564706215639143809741788226476053198690667825606620102056028185803541533929903113122394494735600210817538216334479993971809178885694376078166697784462446579563920299937251102421211470140043490970090259026719551920799741848394331415064235083545568480787318358362104006501502721600871254954568933657202819518352281758582776074614997515534971043872212888661626111357263146370427906788336297252686560110679255157582894101222726611221727887787224323301854056575316359482022296402735233481836701185609907410627767900253078823481941456913136506620250928639447199826826820466095333187632911219939919117214661613989735008829131181862583025111088350411999079240176726229917095476382395713194681941779713467711728660048755957278369853042640338205249626705124585547573856283930689242575675715429875251862193469232073261874268466437276985276044821448282536854262912977325529133436755620629604660774782728067516056180963764220940699204348425404347810879132884491735300831563047598708192848426410216147413376637310369535199919161197051253159237750358911002968715891346881699103808861741321743458336844867132969619913779737287821992319984428193374275514388285076762088700170179712075412521798740795867347074438025693459979246136406570166599117374447247196429579564319368249394187228668320721562355263590836079760374670698063519247683612270613375884259051819434260025443321162116401966153380943586075769426289391387897360405880678287386440238335207315509780397471981905747105245545114476427664065553158747144837255979900888126834602341210959580018435998560854244682513340963816179425448035919154838815948365940012604958914728578041725305524276939776268958261664522830554364698208203780502914755478476210879886380651660037040514674678276856106278215158099341189013730523813875025331051537453699126916023952267382142496530902181358664010120320726042372266847457859938346453156395066577473922655019466954330494937233928053100570687392754826360551254486586071126209065236117149378871411137668927358864657194162623704452961290351148485219817010877276818840131489548908547414958185029633087953433060617637130955813376874683265341632596256392230198432223003774427674111090144887222309121131387318683607396221919926070728924833529248199315378282328144625089917443712656956173118433911700297563901151330780387780730081784702368348281742282121355411575637579811379239830356627930565019243860378727469090841345681436788345168120526603824713053052185254439885015631060035683070475718253215026201528108691776324210852599570103601266538049783286319405433459473890039378883330638868806725685817755088115191319066163962899362328177312218029190546393084846414213560644468182138564446296418763144715674249292650780961484889852954878885818370458828776653018217528253548674631141002441558752727098069529338811425879114098038381249619450469612445755430296569920192693359566355238375468958624800932954465402604602723078812976470855550597553802090435633967021201166623503283063770734868603320809777188691498765798924064073961598394263327436906130747144654660281781208971962764042535450748278295121985334334277273525864626710262550611790003179508499820395598744043800599946126542943244548137524414611445509907925897302000836146456523963865258805703732717131421786444436703619290126343045190494476806142440634264436818888541989182201683694685074387737372795900918878779664849640216310021454928051067203892230967712118122894015739653952152842590348873969133288713998390805593600639139585500815925640687594988448492392110425468430468473922655534684561090124719894100887447779562073322109254289880379294233194029222646417905330184447656152730198894680241774850950646147291380606130639153457747432196867194975627464720882660129715428758529132265546146547430734739192568035388530385391046549104962012382057690788776381184693231456417561284211913110065443366247374126985243089236869036784714696433954022419877239223993797212768433547532205109080670611563737306819794617343864081526171942386697144510192913858297889410491326630183072921096834967810695106465303238579944721598219798779006878622001772739046672998475242671983434439890789707911994395019758770665475081742272216524476555687129814654069626558568290244108035407237470056617379444515116792987723990392401533652957139850762924332810766382658232301071063865964950590746530523097669570128204968346529419384369173960271900175483127591305251332900278267483718104824993817892196630975522587980715263153036959880304855436082864572918064865795125077091219861152861524383169771947460991375204946398331072783919463395808964772121028209944381777711930051737601760901940473816636621112021035388892514721746115196790046462864202053220265382599729328028196166320275794259768962025269686458943984252588622474589210970347449086982534152953288783807313143783801747638214324239064175042510154478467396754964257728099178218602927489481725681463466505690677476515638791678373168917284437635427404365126069369580853895984410156660973763322934069683228356011411735543125167933215650690102340698918185054977243296785428919310186105361813714534858466309304335813493666920397782179117964227205272679310340408987101031355851188328528175633463898054227630539722470531586194328382268963167643235450152320685399063190956020901174649079816986613168774995565276425561930726428293027080863651108081629445318831053568569119321846694740715820137255900840452015128985403048795315083708512000135397141951623000762007285476988280400265799467683092636816077788149981958464831257440394618304294912124018740334376127469117424198473853840456385846758848461946852009382799380803075770828403670630452931869909383265689546085832108460825118374340353695031591319127521272222095048076581269349987843086758407277412920100495376059382370791343843911740860229051333108312489743213725563900938490675997090986183280451991329463142885268968442110427523375973362343977713817500974178006028698862865533201120672894879453470874181760441997322078030768039761736903886022677614557557484699138344729211800192172578592157761819378025576037449229320204377852226194463474125530547808852871786927031629443515425283540574340591658524745740729432555132929607651264068693932099460598973025829944982261836458892560889302919301668204975903358433118975768309399646051360068319071953806312169812181361535798430055159943120452721472991126523608381637308816117471048994306768257159158628106147858578056140816979576874415092275657181909499579124613704897354727879816858369730859823980021027234367202295801376241088415251061085970490093996198067171335089022493564377465403965709780815885477620572990264333304522331806574549572833729004209203693888432950189190580295983213717163678133494019469424411240494266955601251695958137270340182273668034062953954898473386084617472227137646762219031173977268262333053090970876704509532950121990240074215112402544552145535845296341068972846987170606623125216841043460457460132833359704203465425024331280123681392509977974041227098231482132775619859545015232622688006147438843951323387222406213559984229074513274360723423527354587659753141420159250534148156979315171269265632981212723416776269737285916491873158121275222125220300619881499415208870028562100130684427251149341097609292264920535537476303861700233611056713915424275427082914314161636749222704745798836133809880684176863289809388077001399161650037746369264070479717578902223753354786553321132122630449135766617047646624050385475138732535393946586631398805467008121464834761896937956088934606724390579354236573956069235005128911989224256541677959989141521583744718004577445356306563158162429544672820193769512049056990205989074866979263544427611135054106666544231008667893752340391119622716621873279874851035383906185669089974200496856595853915278870689192695102635361778344175271969867191913715035287529925348952168481460922226763165236149817999647323959663992770764435260055159664358313675180126906241885996608865435954001073162448790410145245486282470942875773476569019549037556546865567582458354057698786867687950606709963518104002887585023455592699874282497706019859598762294093510152375147911296164275191510959054035514447532448541944018527775844200020981167935508928818403097862347579190581440187999091767680244343420455932318784614497484649160025128469707376658169994292190455223908375118380273932371442854985386561468584519849675898388212101306375004397757042578971326745991740888558684913835527346418296615599688549507882740639773613578721433681576169189847204446649359843748187655238861021621845062358332183045055468150419230022725855465653280884250034321373130524051773708733647388533892469648532012720313243335232671022712307443421845239133538576043969913198693237267065500913790037673655230039965883859240912560523581977337416512955755085399285920476888492692671701559419948782913366240232958273692382129127865393827834288028458014487988682431494931085629619786397663029865652898814093964368341313858565750349808541752252442558148289047444650585445095942107672207225236606693587145057637383651076948850001532699013378603483917983157072709984092467131898045417657405263404210788994900396005116743520713966830915951859179159811844586343403903385629673781417846008127388174148067839860912572909356544065315963632666939730886600457921167422991723766277290457435746421741036853629153180888300925393083816468227779568334547398118495042829123842561209858025823475646980013532043016352540710078451855289916973320332810301445357682577798213033894157920190229388353951432586436789328092673711634824165772543717603496228644521875649645815562821392066760746276077853753477315582805632550565769683537698674650992184440904104523663570554041090531025958208610202731810588037707582747403802856784689813589707673259400056006612416379486547957831399974648263006095811720002820733526537355250923633438817165930214155950735163469481475083072227384538695349894857877945763543564049788059066778815935186057928922671246716537836000022168629778476093319732740884045733255395317590817515843940591926323432005921091986039717121301788311598555477610964133976837831080626849747644142393335389923825188781475775342254884556356317609947163850329780585961312431594368686067471969450595134895547672667444222623045848544061690937395423277128084151263252848700179453738556362435307129012530037693363687053434690126775950299806415994547434662118378826832931175273153191466595546707581821486947436776566103708725866884343146369571046717849494419377634286316686540399193758209297294822980934701951931416195969977359813413068625849066160683260074905752462920658311100572400716796721419466769956710608727833976079390075410003869337919543994161650372508288286528058175871477497062662920027863472420401082431284285063253622069022961116379866130766794947688739471580097855455252693850177679933427483508441622118159584398073082627289420561461236696270591828167051670155749397039785238206244677290849534484344398034792861839311695740168651563696708166581918540144014725166389552271124021859329103241760939680014695701853462896882196586763684124621325312469337760793007143542418106595259790610283375287555948653354153255429527309169138549431620041796925665154958717984123429432440868894262233665570149769271516630705187818967905021415724407515391443335910177645972319979691748434268695260060454451623735897163090263181415294938650469242091933215555141995632785330900676502936192095034120772179641399920010967731825737056251445410245681562908909852597501582117860837693287769507561046128583831318543481550798489313087649137968667057049990596493385015916877640246449357526425448856445917297854078555243158545235494261970407216821463061574203066682762245378551255377510692266199353711322856620206201684822487518046006134131614757450961903605411332269359373041107756406588433191435191394956610733140646799309366505155730354540872681604534621824126090321391710166600795248505855590631764879149357988929253862656971383803404213622262693314164852550524320329755090855882270527234881103956335957091639607391060675659501034223534043503959355122077935150078655243913863755337060259223665490644604735000351082539083553991071577678939759347690703422944463800801654573249353545001826638548760572625802190998774226941850164141395176494861395224099952826440800888688905584297710541784179140088734981126216101308759824021678193344321349919073902239345043884666029614049885783977092405853560677860767496178932105977181321143955082213985081962620853939943414527829789908533375212923658261241301493696519411404461826971672923654898243966736176170793827861931036972902014905945521058972616239485990801855850050079032030787963999734450293953577664930571136588502853874288115466031503634872908953022828798057039013128533299304645258001826104908781479605995732411275284891179981346815067601462052381828201485161010503897470661260251825392837159629483650882396262614645746466435077803375510238393862437797128092320084930082059360180417237915082343014647948487503126194083606926375976143798686513864031029485158160801649401808855506323054575846634749106103347717784520433347235029134950022856824551226610265654463878203397653146360065573782317094269398785045511394538329314497765239172424263888765301595865186000768723813230791537571642489126375754642630849789141714203248528720370718763859426124288733394758038228647841128931375894789133771546061151563124984192867388191649382395129139833009516861564483627591498220770208550047126968028835980055481899560271493332432842257916699935443118919534112616289962459180600936584235872747607203362689701346906193881783006005786672073653539661369964551609770864829165205135444375178545377124048536764878431947513111972115457184963453131729267657942125740817516532828569167733193934773757413920135284847584569966259609014004555358858066856246824179569724092605415002155437551780907082478753367233105450894654963207406365843881783376284535850147514074381938527463503578254561611158112386857249850749206493159048040977990978477524535475501526374689474483267182514207716483463732651590623926676629042775007323402478564806462846976774166581743371653714408727190080957059268788052241228371806981005626711355340190202448638485371005373720232774764507895832019458762146471100920480647222191171914033934627635150213498666236212872704807539678104983289687625653603634882645886886701518122159219956961442104410204951087912735005128345651061592593445597904408340895985391039336910617786874646368301912958325261481840725843239168595190063535941223887107946713031916447324771033397077635426108599800421893251914729244497547964130633502525915954689180199662968297936574447711845933848958918001760461618935704625543478261775093916381358523985023330449811813649266502445837551991665366185726544846859586614762252746131763895702650481213390922761570976013583918313106154076168166693938611102299827384881159523885107604648157685721047441931888277351055815152760472640055420630128508235809238452020845776444590426722493587430834614429803882916627085575824384179853589460842344191499697483635228638988848512615754229404102251743656602396395279160565423593763096319076847611880240021982121345253654299724233397767737274083533201287235204086499427816747249226448342843459110194567203876793061858818767883082677340502717743898638988663743089926341843673917399665026964062623992278819317792092444856960444602015899506284637888719266748939248367812794040977858654245024629903157213874349409306334334664728938721021823984552890993125375762603296472142678812201905578590844533885458404679913428266849141246096843818688673778466623476114897155659865639464813451180938431075202220535598957299359558051626306477162848596915376951251218415404185068708056822502110365385711892034019849646685719950492290934628196760064462389999273519830376350230592199566558031640042034212325160470189252031895119097603458341023084841517305143864405171722246998545273572390849414303222258698151432076808005588477053196870801526156135469385224899072827211956312695253748659386016941276535852253642303267941084489409605510119802135515758609262427502803492050534995493943471183363692133879794856827390433302420432290468705042264722034686754344371226557271125398199444571485716991278868505705267718705257830020010672944427355833883208616910300267924538085895960882616275322272285564952766769912395384002081266911215880455321311981225992645009880008842207390934129995960041346037752604687761822335539423317718687399824286735912045313387560457137566127433989404337401058685898176878122544462908594875589529651677754169320392163143468877510650163359028670642932789495284627126688216846438818671422485897098063776026935153038025062259723747573897894884999706390860146673460542035101744755625982251005208029871729897151931054754640883631768974531806742314070589445166890955922202956929692764666118546287760162999432787515891305225868823561656543484151046566498886981032382655057635982195216104621905667896008430746560873713247908192428122479887272781917740300825472494120659783738604914907208149066197459352058592122611361730044119217539010696534169454323936952415307359199787988349218669858640610558637678302040615088576502310446982746343383354979730411914302071092453573124950202427525014094866826183970084832193047375161183946698701275061126464802162519627784444321729261708175141877605696248612270689552363735663718632793311124270373736881157011871446400301608711147555715321935483494241843954338317494740594644688041299772849836811786474993450071002364268944255102426396406505768669332641428993587591665395083753238190620495454050523679836405327268897677815248962690023254068403958593644737229662350982173169314703811860631547968362692329497355504144671279163369206413596748418383000592064898265626453420493212821711873164456091470540941609276498617054100627768102341916003255998166007799935668472865508097081553789654837864691701198562152545427240649964418695889716392621118958400248433308607669967556856028591761697792311994092360814146685001762202097779301331494868696981467703857576015099907670252778408267543372324513148704544914971621614840201887663150825464662648370733663644252568524719652011300020404933920165197230551032346202439879417866806378985931556923962286659485785495008863102235380413228628386075866045051340512401625602710178952301463608021601220038748752568394649171249065413008101084942972648205289832683543740465066394634285551134279871205235020576029849594905585868848532301217821253674173445222598709596409887471088442536145716724506544680952895217301452815579834767960201270141102220895779792386704324286535981632857891776760463683678480269615180609209722832549544868479234264723681696941476592493277749051952670077692260345912772092424344158476239561005777094029849227672236702307683256420970470625733777618012991370298201197125121341974894117246076582079862787081837651002023586821965802210601001554623916069238718553653719586094692655519669571589818619855889949724698114742619178921838295064594338252514163325135991624226844021473226893474164372669115539542728816255576669267857564762384580736060477398759752764780913248381010001410262414147376283573232420618816839818817185317975811203069226218903612495292083958829013732638999317081472924101326420565140273342221762442591783182246618503707838038035586249409368245224886184926610910555703783038499478425052904598753638787056419578804235552266386271511591514861960078709869131991942975593755818021201188587226687519644317337064793479984587646696301777544059049804144173563345046880813112240813421242977034848205120714019033764948504075513635110986796346233060098259287193498797211883580772125314397076294174497679672374523348526253922073233666626330852046275329614921689583007562722755141125850258259738055369115965724574687583359795123668355818701135796110808840489787160441526871411609294103770376684828269432813778456460260540292730064191880187966258426519097618551819390716120935902696697087259453586348596290787639232795763445064664737884324353651245572253209615501694640513821144582155612506939905604039405695685225675093797884826278586224125816107895948383606325308231455292095271197960474168455550241940779990137730922246956710526681196552275182541127499402082120891961454560938012750282399875463553122800454347781910209779318669031107941773833126412911404449742773376775705625352639469383430813419692254265431517833547521807143064790070325361261716054024655749671181165903793588271158897748421735214818256366008787231750633481944860844628957610980270338088087482090406136173770623300385763313896496056301500773683197834635435074519645517356931482989812040296289550006870419060171230715836575368983251685616181237018401701550377446524951201927925877723414878187332837853563252832422176627825971146506326027064638493809759476160187933428864085259962318413888524999028788693144588221679009731091005142087842915396488017751519098357161183733235597295864528692104853250740236254584457101925038247601666672213352089142067874830305708387936565591410971137097976488096291707952766932712435687831325624919036964294908764525438368969654731915170506452524601576564677785124715526214662836192353494291739579173304478746943588919612063167322973732073636424941347460270678980013956523521930697741314562739440648920746871705586789322687240103079553324647405401564580642176223517531491871086530327044699940612265777925798409304173924074470363561605423531987643637891839468627141592636007604549907458046326714417500006852994845299296590752672094601938158926520510396759948217512306000556163972921082456394231791876462838580076727331369893608438608485136756513310554440255025254724397251758728311958529261864777720470551223708291489129877389364837523471577658314700689799837269967582607579791202021388123897699346090301300278819113504214914365841104303429770148767155626442416182716640075459150457570988956408876356926998064671542870205526021077977700896879447098240996376170529699326845767125530447248965645487142801620059583780616858492975487772804892336605676913081106989632588270683079675785478647169425030512142547993128829639383165747846827586542832740229782251305106694532094697489715101255269469299189800790440019317882932039309899167912789646008222501778956975691564856311654142736812488658505036095504318793141835542689022120268406651659394233454931384425044500205853917131245973591478665963432397277422067648565586122243244516802143721149809904707062387095041354250456763441072264163741316752839074246790346046650751528008459734693881298447164077194781735304845730940573042143207089645864693962476993411452907869401332882647292555346612006541528020844221056799461119680866540378957331636789298097893663742589352782102548247293459831921619070292995321366482626506420602812040926598438462463996546156818493656814358382303519997574606114723266469023405438249306265696469370871041817228315957981930744770708844710211257389223672202192815047415109773032170703607191133773918893804006792397836319387340315618026363518841190133363430029738717914863583340699101342431343220404675673915020455878467853841590190941920485067304291286883755126279612241666471498671882919152948584433083280233200863217611462415250086929952384227262049352401199725931002827766417606948137434768460257968109742699108485904218494714911105336060507419817962375294259836268075203841563991349639779634922262035982163878067399047571473054851416439075944469733488822590777153975010783967278783299610522625418494463215377633603635149713113390546014275343316565446974199513600894322050716493735186173773664562898275860736422989469547166664421365557173940064329800819429522044612389337601645676432826695683477783811944122502901741281416685081619458315043082830974724347028466809534009942913908081548253707746840513119767370642224917191717153521889469878109737247175240093024916549269668894139950460903533189712866006304292082273105666053599486072167320734815879586235301187006842350756888154605698324134942449953101608782429091134913562189986223249598101223403425610308397911073531371166935391650609478104128312200553067328286348927471139874874716844806252711978179656069718724493909803867408662330816013060160559066065099468011742660280686652447622730288957380906248780745050991765711350456151806505327620457170422508701890133927384820648206112613641674831159630214133051336621149352463366152722688268432964894180656520320342953419423450805422680316621146487137810627846239004670151111210454337203138752169329579863074879543363010502260445572765380019352766639565181937527951175309657866591312609228952582127129600044852366222934389905248931766940468587435919548100228685776182367308218967294771659711308779046943516636223615107238667182957338059800316187373934486648107513000123851298232829858413904983837065783121653123746205150369498165245964298894271914434415066322917147313199518770334474258299035233820527092411671089225976273985154756043843734602360982154325953601252207820491444876461538319383383029262783808646947017377821414563522830044840488497484845719855657306684659964913375720296729014339498869642598172937340296314375906072619314150007159309265686795490742657535068882312879730722482219562711377150392320116884878903324355843236826136234202294819964663139532508156115634727823396543141271199157431224662232492563196541926799161106494586754434758089350917603583647128755058460271618168754169672802959624153205851693781992557065490036369515120923984831605428358985214121012225992644256015669256528774098327313552382332473954638852889154277728502276731752727151162105324556803785533377392983517276783786694413396993689479458160964835943871456481787584729479919677620294100130579880555637261002713205635440827051859969934659357237091996025870781025088606382162121803180945402110557649387837028581696370293401936361239840334857980019431906737970192583053545495439364798473525726771664483041758094192879168052053198393979896582120486081210266979603715306438343830733808606307574436815166455204708026370889867156670491948128045595790348690618771006591156068987676633961039369251542346034189056147339725513951424488335152042501525867336929158444069806588791702532079923457947112144888938150593236604923803219488508989184227476574280673065490146969571546279861920585013738436057660230733862134825564561282014610642560827403146655347293463331395869472394904334626938296786480865769422307579265926585702379966302777285306007118234639048281302774674188001115264119631965554701761470494791879983461641761957633019882065657530999517899871823482160744524149398272984416419044577698946867889008744515884737018258361443703817580146739625207026025511331307357135361401410344624282538031969481048503294643277208088877300834859402802035920812824157486664256101181663163727125948395526960515251406579517413303012610032233223046671750445978257239428992757401535346135946394339801637996109643899595784199264950877356331971457917737638527812105268393113858798161553662558957923521974502062666664818890418204913170257867588896526046640227202941396381619940983627033466126060220368233239019693114203294303523385530407086681353565466019356359033544555786411625122994625142269220247540724481368596058479271760330775902135222504669528258413735545247141284768333883853102641548894383702776066288246638910649784787305252871884985345645260618158653737267152389748076280283396767892367831048028464133606441673538908341650803023677394357408612937152648825429527494628562068037913866497301302603393231075777913710021751046134469933958362450057585452448156933102813162157342482836285183034507300166033542049898572220641468773136286593514635394880914060940503923869996596805827240778686874961263485764218674304726446632494469652187112292531891501066435660121521567759145169514443626245548892426455848053612503015022914335773502708302277283722737910288750016192572772432550754924770852945834758718286866353517239240823386184472379163746815236298527962549116420737874770773956321522345489059858066475908389470217508393201040977340414857290703469503593170228076391157382929921472485051085274975738120308825813702636965611142419368758577346226735604370678308806776164526708832853057756504354423800516129975076496812148644061931844090459779474539615984961146491420163228840294835841343483340445232266998122201333024580976274468655893832896906462178417711063928786987034951910577625887891223028343801732498582825040186746161719003824202803790505977415965229447000473388782461075409396463064230406777675738065219132300918477353160624507555345925048854995378308049006651843198807602656549723918366530316321114785340519695974211464526692127007801710429448490540633706420382481569488184551512341784712745168455929481961335007990291657106245433690205324801897709061369649703771744442098232173157665772355613232184256920019619926115583230877394705033970027991734246262744137601320993866381841102052762595027358177931668669714108772925461737908622975230015495195204178095290729407211084741807373078346387818631394722450549669245336707672418551777840577128959881015915188029296825287865662784911023394872254647806643997935956919397962780098496850196083232895728255239524225066917588648664193650718360838176984018191111874452811644022568706196535774228868021911907205607738967819041773624574585527921236997870164070979934100175283718695985510923725032295578623361583001902530402830820160589648853916315765139982510070945507637671971042212035104621404277051895166971739021208607438189886111547737829378417215588890052235837498536717458053377021222356281850288768794090005926148620466031786898089202846367294414211209890788583552125922650438371428820000510135093202728412148014651395221156367823030943116718025390104188962657055996962317674425282849838794916792207253325308907892111241007724871824390221785328427297118998804947940746008908355227670374032713459084919706414728409761685114739703800529484553056996446678673288156257721051649215601622333284533678599594414570163820949291221013975070392238701012974159407782948872318024511571260397999384519029483537576485434683754409344821479634897054291550754334354737715937064916955295647910168433146773833588846004220541187342415910499602696577898475552044773327541513303506753478909704158102967613601668741081621168982116304342546052691343992617643123386552054418181015886260245750068347265784903826306291266994100915234969563888003728593889637678700477175491564802251081328208486116680070369162149347485664060363248209607298827896896610271219344265054422454287723772174634391992957532831421610531787861469533653841937154497591997199702742768347483892935783706550258977676345192381065001034754400380301159856124346532460045220642631634371561784311519734768750511082505333477593802875189563456203251378304587440759317817494115487288726326264015842892784706489201937783052895207021273110870370162859718581731592956936659848700153780237587368411294669086332689668020434509621760819105454469320229751260316984929988659804614853017825447118756790970246116146809971769812680960356091079320680607786830368323701610115842564160001135098045492840987454373604128889589426435103464934476198834260883640262787885411388198472570346058352594493549461268049021883666843736655163128414019234385664014309182451520046700316179850656074089082356585394340554948317894666026549475016421272177801898920224821793630588749311878334506423252181864168910494445671643834173555100168685809635916870498892453334149330679650515381231798757460242596346978156583096745716824773485641830954421711601260619810757703475078951655975236979250369258604379360357048410235635283686942155568616758378233646398921371074275004029971913026546052255499998432868168501444983369487161140893539644458005542652831704384177711124636418303163174339901573702360897545808882728040639974048442876883971505623270760376267704436556183745517358727934526843419666234194889588323130940322626083877933466867460025231962861388109748766184915012295347857254726301627051221102509918412636918356137246416516666817678671096876377477979975380747962415158595974528938197467818708058176058831662676233620084399246191964308089263405487166376357124476360237289233256973651739813496407964105166352543493374602536224976613016082876078939113823901747029944937504630132225240049701478260701175561654271543760779411093457476721987545362529113378345946736937754466240399588201663378065376704172211238862969224586969198494415296253690061639369553338922738699936131341704692836229982381425433359624351261863842530683491166929871287503503780757453666913380728810706502057307623882792565395978622505821666679538253475810124275018701328041998520055230920654733835718480960935525341285609817291076329587895121833739898441977120261764201279848154227532999081498599585096100516974103542961423372430046656154192299293088002513186814107229476756721892422702621564342653286923964301313686094243429579042255020986429828100242911412328094538896929217151394755459574815695868124926999773142441359268712203107862773892874447623741516732566460652537909274237824096953306348196579658622880084472960173021708062668117742021281996501940597721675140607260278468360604808686562602731522155927482191762548436399683292914408015161033164500031436779259489304258152214430051056899277761665607808559656569746002228344327317056746056126975960224826944816240379637746231328691098244441621595183112370301698310474143937957392006913492413460849414829204424307063039160978000928524787572780395337168632153360176290608566248778724102729411949639556888274731288440165416146771158980543398350330753492739136207446143807515245149290005487965263839624687500839442923239221310847569686430902751510169041621951229495552636270695520128774667644049768968262313317993046844686805133490609754562576029085053470034169571525327403323937275488992078286650135114058980773397378688007995837693889827308156669611587640524266540524823806535593384987000140599291648723213722630013545860985717286580481602366862768510195244882879214492163544512915758034993863419998831272858760990153154552664772333131806320579840803488986805521335837504769005587210253346719388710680272483980935970761130901380571874054203545003697724181655662004024797205763366520016652957598610395865729578377719020206120867898343691820228715398641156292915593888538415603379893446604520181536560304252243848201064727353999190768345218327127131026319516049529761448199920705764020130173777681085759469925405605878955179182585718430587048323119027768262052068841108110209514692381345855013836379937341194045996648273131485034476531978966463344483398892780107695609113695976426694375315939910767969976889703590291369705171021340194340769707510522662740995059986209654126011363411564361533031312752593364980315561165698667894709353520707054883996794415800100628187550093259952176574939082762346730715838454180019139493447266507249919149844415048816921624429190349174174959113458298462182509985508521158564779919886269407877844549109984899406696220691356206221400604923900815746560165659962194008309117323063599048045937299157631938601699514230299478683589131634934083385647807380984255915243010656193551543326486636398718983012110600449653918166751674194806081101480880502957471126971177743011224717476382270900670491216043140991402957738185641496627249754965852474145269345687728324327149694614782716151120478931811404264216110146098690276245746043766030280765554360562876258463330319391688303554298696645418080137979348955657678864520588540570937644531298916546101422896896016084211686682315893092759708645305597644553310612226447590746333036265013198822440521061363192375898969381420128898514866249264164589469785806292825742338383947360884786130643244784555096847329283749015296003932444975561100632260184260201289624053704006871236538340886800267606175882716253348489483231678125864084396746407240096540063705324052982207824088951029906127078682137365072849681174444634805382544580702647391647420787478210381643134570549620554984434233643204824794501624163233662044569014692334063088162115798008712178024824216568457219287672815356168525304759227822190558893835406510149045826576605563806242789603352313681752439374936190921435779854187522617931583506582064886772755158096044532706567679880157663644480377910290037660056730987153242717366331599539412959257751138647195581796503017123883017601290836128034597446699873737198080329333859281948387496825885036606044962592946665656723955183807812662534018025700019076097012854163609959845722594732767928582185079416217735444213424569175121875992198315623880545466689355966277886352170172791347946849698403157024016213813645175283280882490036577293403021770881705914497917880613796403663385331818718443654642833001633054089089958286971602468459813792262427350858096167662656961065358282438107349799920936672756633294037274106221329311266906865233669182256373532723294540219695063857748114951250068411410971800811561541143994016626170403752936830735105687309996941249859001587952874865976618393321560173245644511017114845975263809225652031197507037808824930066062746812216168936116736988910454536479305769669173978772295420468566537304805295135175151618888444112886711239001595970009508493348840145828504940742822617638210113527561169084144350630423682907330383207741563028837589100374478572989454418146925243508244949400565397245034096634902295456162579343001808131368038123994660246773392578217121698745841023754062547374024556938444702620213334774435510734033951733193798619243195460555858549780743224542046222963299762644490452408220767178788475285352685800943592912966352468383548846832742066304339450319160621898125851309091716432993400725178840056800105181442640055014840151457813056679323988070450103342347028159522128987722627572438618140376864500309038834894478820273725812487908538774386631159246186141181894657373715626191112709419916073375427844481275300619162957789420737508337296753678471963023086995795755086511228784642695376213686425910511340948203493650901046496947847710731442679496289595581232901751332087227335835010509089862004901335715792062892782932101025590920939497897836885347159663190806742851148443644893798287616964515243272511451716574271407850343378664413729112323915102331592334961518739092982163955179157032190740177715822656055496840355371227773373935755216287877783458153564252574693358333584527562357714967098903693072643681147511238256356979933857983738947165225389360724016014895436410356269180431398506763522738130565729632608199512767864750721427392739545075787376393751692997274796518511295084091834773528968014984261190817482630792923313874067936999604121134285840462859908419720165263979632738018962904816896248446166362473055405181080457516760767503007839540366091006039231620477656774543227295393423513528795811136659410193170139163989591148930622899732232361134148369679175152336265164651302243082123494216239038529375617627596970097564118061171252731641573556838737196067841367884114998300756365240151698874888502335223985820857551682056046293801403280648948618466954794372184491958354268195883975188587022155686221484780902112850711074784264365398236219584082237690458326359589427086854779137586492994223153789158324939910688403402749571418667222402771652431538466532616402690800052074313824189949380525122182042963551642602446810781448223237602300019842101327573598812118622698391551136060243558476522496879383832746493286629380774706862223606467523592587992018069298061571670083181752175574963505222967179230745733252324835495552941861814883066659758528585303210427032284541114520672335791611722100086125550298857533070027569294969770369712486556229555126274631745268110824652959641751377778728224881535840898732589350710452242485414273988002751660476266075383797813001040197901689338639056456778808543213789871343714676809033118345158046183477702168591610862007233972499950511009484926527000625565140992025319011258591903730450007101256633113063963739130779603424549393916209771886452753218115278644622506905292963951202835846155068105770926499221741219804463743500724066301929217098887476507229087931163579355297071883960786491207044731592256546982276473036103401521240516179720222751898531072992166836628734226644566041295266943922971638173304012913732292256916269680497888714490368770066275853183086779008454061006855542816878856704031662858241163062922208894394158310434984966267997778407231698578939702990033571076355046423642242956234505261123162462873941389442354615450567241896305142976448386202062942097045730413646630422346035710110356194047968553765514301126819696309589000498567358731898939911620689002858225043219985914743930340873897697340143058357579308153828740981425888661810672245011618522847715691188751075109754809730746294050348375304662105559391762154830645140979195594114620732870567669454620566003909328405513030775081759215292450197685938313868991671928815962906045973166347810179030991005774450350635918741333470656605127090516786648550518544318787161723247947113363675099624088116824889340671311365263464425929215320829465409509725841524924443201717472346222219275640361055529249559501760392276149643015679948785203765684284202934402085632569076428768880857560325491416822429367161113495083657692404466436718735031227734490890533227222862083497747419037722617116435002545414961943792938520072309870393743444644270518810113546248770730270892252608697913391186905404953452249489525735693117108602804730105512014636673217045379512417461703169221450255698850051359126166716237384798688554140671441395257990448132346678383868342360629414996710847098023527281831016507050890144263188335862277910888305022617527062866186957841317173951630061093203751783741348258479657883264861862916431979962128495316743205224291770172271125884125441267482245547095561031643584769371304777355846864810217684754176056631764434312070156028916522078027955471652062072553380545775760645839609876833078955515168449654109750864388660952853048998578293273147436201949248643224364288091120603136654143551146471690748394209718721197039479979941919242226947302548305980820406227712407659724224468228558351770900638234415856658037279284319762801626973558699029872082154434970955559146231816706900139719949593482805270396015247234968690254072778708303296860814333888707763432222401822161966688271828237059229081708198159850997917883751382061209471507014746198228707778922493290050060780562380331695297321109592931793066869174476683862552956738792427655949885913124156779578675685378922296263361603648150120411883708407238494074107389603929743028654531775270195491022260118366073117020621930896775414215037709159060562988820161550285208051106282705678225675857012095992825872533150329203986726362217802588789756274256905360655910488240876162246130176930373551662439142376711838451003086257252938187552774038985451536407348640290221712836644526677696510104468004602240204524718115714002092153932148151621852840209459140280956358870658773783287779106582569389029429055751080775276300613432363448911771895242880383057803624537907306237746817377902246984230510583028682489890391582907597411869359265687703666712493046122761204675335496455311431132881626482411733984200520895744211209055730656365589160715306038198534517735696179592164857350977848588626192658933281263897031393692581903480270607726943649225089363546603157397517068151200204456936122344610732346435214164245368937272825126986659119630851280273576984214928581446969565316619019445384721722009569390815514477466943504136484009621071874980902353765761503278986145525626402353988477218178174538182545348302546765580848075119649218481734189139586478966081366835673633173220478231934927110867505389926143786857051221296674309062532246494740169894020037601922579600550759614048284841718092253329230441825789148874367074262336829840783452230567463898154160800631815321270752001165808179815589255473242850589254200994397260017754535299362829992197228309379577752759218214954850903103698578868718913190321022016296133193926856405908518092902692987744970551103243441684816893119896035581371763423557701610609094404352231151731123486464294201203776372286675024401296025653952245956893856931052257893501588513349885388261280764014229886317430856641946158104905339814905145060246633520145303893019620341067139062222285620119837563802893029897130937374401147333806545630448032496509895525133378527316419432014633901793314170396154516210553067025560481455922729862682094051420500930982215191169312429636043568012056163244385442488514688581600024185621911541043524412472080664138618973143969677893141690228578033647953743929732977850734007561938940218094269500404377636070517023820363078881698352258373709611463706147585689693328757992132343578774955459625268966990597889619485166902003510845478456471363619775480483569592965560507496436378237708069284798729724768552314919625616660973522791517823279921227951336922597776760460703975033232642024841415990769224786408533082176045702608991597403028306123265001090996065594005324606465190242860872452710297888352811334755104245618811748918378508891096527774771475326539958572563333748083495137469881668871913340553466023769293764045875812347503386463597058091796023113732364445495810958464527377006041416043655896432505281710620770160169617188368217679193955041079637884241636439282552476675303523673073066852830285020684311244823346046563283680516103970352842912940830745247965569384084988009020259636684268545680729945066216362137104479288466243792114263838387593963132108531033277493424566761297204473972451669908659213124906848987026132478780736404534245907717618998071396289013959011722114617869052526289664249829834484849725199616302123889990194641240561192241752746891780175603855239077294417420255208907183532849909962294525791786900746150927674103545117015918171673312562766082961309799616256420794114022056989937800040048539154877933614235250316356015628259641658910738698137024497826781556707447408676751089443775835122200572914097622284890748940996661799832050340862792688118437441771660599262122612368915461026878511686727271829638209949983653631103562426852444610766975921061535403563630904502165144156516318088098811727249410071143719150262148615369353043719591236569580257464350160228338475794409783945506571763399193895851686216235287508946186973324713938713039210338733654420120331257792702618741853950856281111341726625676638524841185235934406431986819740375791828802500769664083581718823432935863899662086948286541494763206172678400359165571025509754600887872943832539465010362785231208131303425219616008643698963104231710575130192396658143221219541513693066782985889782645630667691540286674114224905977950416047076388187296887837299983962296878902413564556929835414280825561820810173484921476479399452529415831336699121155210121811455766770816869980627902623573118482259764342010901378088023399113694105877659986196262203386353845527121495591710635195778067820954983307465164092470067866330262315219772199822142705291860268027414142172870593201038463551819878960692451761314082645838363513443592014940485284510362706522694809836118445681827187156087351175263696106516390033256877293735381370191608316874439378426221799495577346607789535978651466654517589622703309039304055590447182805532121755488348963266117527582401943426124719980489402415992089202441959063597008741508444400514760407035569384058316788079225886457091738368221893814371810734571827763936576509938162003207399866697933773862572977707322737636056829996477249796268702645562456874045933012033236329501375974816269191908170601962438376875074394464632505651726543743649041382814329712112622755119327826564886717882789169517305712199636279592843459598358834672555190648383822609460452758649882135933767061766765371165311151008898786992497818354091840886904893443657459815009657943315195332049315718140456499011999017628968164781900881016178443782498761045583324840330814606416243942015539913512008312792680776636697017048623520174932984814597263391053249765018696393189700447958579642564144021214014207254719571220082180259232272194797931871384457647873562591233136379165748020174060701331338278223639467268461846472289815138147726908060165823450225119972084330148486796895180095585871569348684226870149023079829866070079854496978470832108247355475792733041502689638079202041112958214047281293366621412705490461219788839652126421488904418726230178606366969810422228331037136714148063231408786001528917444005200205275575126315676531728478296119208246445722391518966538207631412013161561775330218073989267331933770824907951026891126496308435441713849396640649584210066226524708848420080339726483467196675721618406595990894505902394066383627705272804729504631829371565716203330053416809292410144716008335873127196911899859720087919752445907452102389489594057533613679116227357140200892372386822741907164846649992494165980772809832767713371273880735988991521759024974314098002122066841474442278869383555830608724852467609678406463569868808225474550978288985339309198487752810461953034678370291529894189273324578589204404907851122933145383101404525663139697227391791835857469305630802639070159156634849910517139302511718550445747441831088362116109951565031667525272182615105529920823736337051553735383290754937767966425843789767359267250787521278501261178352792087820892135550578025292775534583827938440066909391688462990885947260369756510413597910016266395939125817737053039108091080578311132138685078995335289368411692931490687421776992128885454108151772151308946031442362169450801181090244538575448989921971259712112004319137475798445780118395104929127475190340899473321637736713494440434007714752662209880585905474386967340471931858581406322597158285526036042341631368413914568186561636014964127206022380809976255713789635309428286996707154189390572342200722511582164086820418400739791861012749747891424351035307173360600560669666113627430098179488206125021455377090747298945519170511957913929008372913886630969195955418767655119026608533332251530809163395037501905693053031933996747228160942316463910186976422096054897682880338925019639645354699698695195967774884218387594234352817334552413130188803899134852967046541684785796614408075412906651014788519792138757383047651096398554254151542752943627386284490348342048560595043026245154411887868864371186043902154473434184589764052368970268410700344974773725661251574995762205574960623847127983819283050462602378410668835389148376998266200665970677291378562034071457706139175730623408180172943373462294862436357600209387160642319556673488900110812895279620326984359349037606121318048198915233017802345772937551733904411612332920876177958340791047152038599053914201787135384243447883285339514310393615274760366561020591184300981490330113574468091943544364318598331730904991722188150843451898956143028472682494263279469100614862850935634296725801467667690559150186249300465416730432388507347764375677857155166889379606106289934223612642886867643151726082702601111046150417889480796568993174796058448082738891291121394480623597989118801291375159156624167223679639709088431543342138715621531489406702319431824277493049870745762088095955920277704392051655780566158959290863089314567857834662437382964524558362328008063324618004956821199939144075812009427299801342328326959412704003091466860385666046159071312738123644785919965894197562243720131947041644460284173497207162624303724302245024394906238240364862434736997594909509762430519332111378767677413141012779940186664940164342824104636420253655707263701367182082723187545674053033543490271261666869827453106932186026050991091028290919792349103070321379801571588661830170543652379069787344062545407418378089039544231355840187512758066885529809248509952888416343118487891197113753788615005768934447937246455686026675891342518965383485146292660759309567790487021045095886692940289040917063559915768496284279525659993936935422347709502516820925529655341064652671644488775506254590448514296028245435696984478616609261864813721647916943697773250553657908628744595035198934466770963574806328104850141181401033752893404756612463643451547568636718042190069806854699416605797550267392127159164926364266077995143958920250185783502687706637753946324913291471505234045043870694037891568687641588277470986114242391585550292609062376360609106270008076481236002334334839053471825459756614910163853859641413540216127132065876215670543810125720738882035227638325786285317770133449102506357483099538295052886728374414984861241914428193744210654450959736264886044282993844941041901340668308036442918295720627088557241917462451582066294204258706005910853544325449072997413551407125240158524750030561242732777517499714383267635046086594678829714349711667907036678325323836637100279665786508663894083844363561917112905213158532014543858758216848114008171389433010725043241771014278495813892191827858965395167521487588111485495216194943831414225911230397030090112073474538941198071038766009610708555584961687217269283298841631421174670062111535597333689374136213128389651824191486009536553361712076887362632060719643644095104470292275228842907659331310742395080170877691198363043396121853447086637214801783802132027876645248604285696624390843179999654027951990921065903942503030120485252224078208949362545275777375571588300985834107631727386810071504950994778582864938495505205594143982834380431982901215160452238806848855767871491896667867022050665022238870524670349856479389428014092994292784373420962298041142270747701275876641360978415689706014813574756894469499002433365325622363144213635906959144130383669171608994546036846775991282250298229077917983186754874230037625094677107955437122985362652914220495930894727603113131723078164290757937572461213479040497052359825730437916235649616777511687920909087632419793889302218913583838205544834042877677331197848377837843434317937195193084903179085610144903005014570490753298798305400006346102175220842760639145828687187617224779443114965520319282080609922980572691150755771932092513098535299544816797862993020150260583377142437252437694195488864719969195516811641254096029426385279062057905178562491874983870817396452378710773974048453554931901732541439388380195912149961487905085267762066220829747509644862296372330331256526901757006926728963746034546335195759710780459523134633938558946512968870132722428314043259568470646255095147220601666450928833897499495900133964275939209828787937538666087516213705406181352241133369657435289004296240569746370434979185739364199236662088242251745474767933848478704053971743163766109772492518759094870172432474331532661996865958190368174039374764316616157102469954560191363311964295182034274437124847406435834060050600094091828056418325351428427400992085724346201014831982914866061702894762566668006779524158561331583632632653419158409539064769307521512317846220832445030823855378461827241128089279883130848530072342329656932699808542020984028413186455944123382724155249039542945904012465277080030825618164760326642466631573402980962974247638378091156678439611430462985935633461418631273033979873637626873160275014986512594671639263349277802390131731759492979560967926131250353503409445594745449184739055551653642371263819478057006668907171024266070652314059950502366170839545308784516642087654413596531898108290548938728918152299423101264411226116986201269214602697061973681130440209646986046616093937810809160734358808567152660919626998339589117172278741944319204263935978904818494328888694696426538511627386378629579243928774210232459278903615441302168717467868786133570082581153461674635888244321881886522204397576650883070974155037428102834199404540031443611075952790187503502388979396693206181283230273560610669319909299040061153051163339855254756430625403842346551953440570540351621683493672729985237726334383347766810589973560366854413516952497473633074012628225267094533201141927015224678766574675626439456558019476863923194002290148474432999245878726513366360523150969985359941432128988835995210715161894243288355354994037285617079033410484720808704051719351900169708640711286026307623242765118861836906719365413182537354430536638422850623317150623145737334417824591179230826735016071038262005694049753673459929055881715477648190739872243084185991343759928517528724779015740519960628448502272401393975626675957626626963627366895144454562061167967549397584977216618731562335845554045712166066855437877528690495665167016591980984190110321677810688589100469129852616234173523361085917227087806331277765543323986706203955800405185926841770644714019839350389394816771885322236152726216503602087478764165554191017371298832327177321367899765947458259338499526074984407962497498161349890710347349127625937293504755278051904986495868331474703950929461869816425742467540830802453351213357041985255390930348355365670293621413809782061439339947773128732874591792689449179383642690855973839340056935156315232668828576723856854873524932781095319195526074158876441908988787355362728551768617992971009836476764361495278636882055398779782702198926182367045014663286732223927707906833187968057823438485414634660252876072229807422273218547279413646451364996325105148815884548173698121264620150873042033372074996974197845624556166318386388181173358379112411462799291716718877797110765951807197908252636363288656624507912244231369845103016977433334566747931999076232546684046589633822481560610244461710484634750211441042099777654635340058172364084783901945001160056985891645803477841248875797547716000159087958504288610575270684989121392158012127501221930149893506170303259479000352923802050314582114524808017865906616087940662450374861723244453126603904948237630578203674102323261465383737236977519918711401718227672925320665137792301432110894689130249352893442938563845497771856805619927369461050987229046294565683835327065989741367700862018059538301420977237844307194868917683438895469107452133768847954810487172053084513227126875396742732110080234880945298761581673159698624930522859079502161774074832844247454802118471599067118710657088896018769079409612880523972189930894587610422955939339737417876481895176798252670299730506180946847606246996571683103132668630646600847000928157151208593091764477277742084412151961415634895694714478318892631679323714385563226951906456222304277322117148813217015337820050978041651423577459139877430122143134894755286632753078881067105580489149287332635823561527607641791922044602223164727934926666211436196402509331842225604919553394402734916800435005253013844937742344963741655240224659317187146587248399003789530509719898725605338951868070407774635061684181839646411721087972167111518571164010277307753970168949908908189260312889866738181036573097525134829465400775324569354174287086424542701621739007043910601453059154915820809747614185152683081086336110158518570633495224227725746658993965816843985552964243679641140475622829098652190923531757057677025602465597585767564723129642819225044520916446740650190628615955165858644290130282036411006050475143320864522619267875379738612009536599315698820418613665209058886902176587416906614623257815929378263645760993464500257002810529020614997752053471560794473178942480304924826057549491947508500306429111808968101913597571993183927227500099987582458619245197684341239020336203613596121033236242825744696624239694462902634143506225512039345775428303363223641668610695785852298219065965805415718530874145451303518716752298968553585542202822718316146633560640759781416395975003916958750006886367647277645826088936393449128359781099246605619596148666585222529766568092635621664079655182123904015697221708299115424104638134834961688101692153769851507227387312145952487434451923015421121685802958382007084506284373248302201229447016673703236072977921188763826345459899929704973071282384213468087863668069988236666781101305856550061545179603361398803570445738621144593302918176876585031156659240087020112684890175203755462634289882192272831937696594188538489267565270900525240373907309793275515864519098070896716159043354232499556330359054300449953525775871781137880881363257139808502583023231184780665776876210967119457328559695314635542937252011773952777463126468639702168350596622245939119657194767436990418870677931139120768802868725881040987263890618639272340510505933949902281814896999972356569946474702408603362339077718089675562571098799186728778216500889107824369191093464706688641445751838920104327001756586847131000359850454840891102229498626194374915438470242375192257107916387247261821733564035550412078998153220750721443188620852285245643511050437042472259216307287827938083770877362161117276195704054453299907993795860682914495199483540690611207104056596283880267653190595943350639192870648565468874405124945282283240505080229689965738735346784526181121831954555048246184297905058796004849461111857980829475261511831117090322201751070197665834630832925178745937731008818943595440785469883118370146110650652340515170804817201507607625568983360155094617547571064157058451544526004197095087362876427754794086813965937599717724618601665786844776790227333574312352080468148986738124544360251319271212954223529301249035792769260300999607753875272870877812263710376065952899970236610882939536031711314290559887929522781691872787347932659382760881638836740892585590218260815319403664457261716906867855750978936488766947997252668178561721629670333312732938891840215597848451731003050799863628350242622866895003913751898632088696406843302007107193624879670868702205339050836169134429711486665062665160026444123669893286464462958980477562439568723323871368461471823901196714620759370486646844493892773594704567343593765865713152265816225748251114251080726405128341412357777275989844067191521993657619712142387312385643092342377211059343432838073709792249521072648889035051062715343735971269300061834253854440012764811852925145668637338411265344236738152656633512830507632762385859378160572220703646287534147677622509527739764420237742362672824733351640728372289766760417741698848611665602013663443565450923111847610203805432274427969763974326061101625622815064132712959902481456464767937046430994029259517548377248017297718157816116913749363211853684007329448255327306534076629941005701773247434942976316865623313792263872656087767017410821470430885615785603076776359314152686545556661789700054245836783693139837373354923634530415857525520109474930342042251442928962065656345158052243426608913823535241477794320178195163023682772083869488477089545785141946586525399619041978778456094636891307120767885934323581887897680675741182046664033462283587451687313582540856222203833443662307996527845575095604321209726777668700162836649050064054785871250115176919361884154236716565990371301021061354234489393580000711076155024472132208994628592827840313417132853237984451596186047840312838358114685017392167806261642296466963509816739024819706094291287324086110493265024743706022393045973448233072870885327739281300146630973223436721597674454955096098772398755810240370438058499259485248117460390157636655438552925862537639330239420186169796989075228543801551678966473512019598761252159620574694378020076135824379647540543697461632815950431721901773754318412174335516359035209440226666792563645204329243021074873914416818375542013489935503884275770941126458540699038435629072618641320898611509277938531443885674418520316972502390234150158500843622045589807573079600589963562850729888578202472929306561135264155958555547308802177397614342820026875810924605642939665347024847792167263858559654728884624654556349670921910764200819023542804193706801306922481039555995470413057802442396565463493336909002069870395904308100002615183559893098250326937303842463200200020274614388742123429015135413751517715591788279005733383886466873459766350454961720310559298084558233492281013062910179193843558275382739539920166178075708388444017914074729229609877782067209786717581011969083143267665635795896244352028912009022075298646738734415914702591053412985126654105663512344479902005770285390655715690719960427502650934424844905995750934581811623800325255452850879475668428340325624133751929274059923157064038138190966745230526822261536594835356034542417766651171257183046853846967262162111888155353059399080238347971515258644821715923261591005227738924550325368153539409359074178728573407651215459543403776050459929963749757100998733540949792212729725391178095674961833435994471491638227491533236521156521686511612917102499853613841081478790960661547611646586731945502631596881332509846776584429420430322532927849572561294793392552893117705599257837916409990794155298974872213537619782567121405014895387836120601928887043131525756474897205122224878624171786095400651103818041045984142949291287451991760693467310055869910185343407099043950561246971259016940132608012255127976405369522892460649118954176805894248585967287313728899787902552315380566310057620988818271846438794818093797508730217807565290374001646084340646401712021017751028242678921714862614924102272657772038879115870311848512672039919347012779464124163483121170385620625680000148418161087204105913057143843529782111614838668979557680608117225814301787401881736455373058049226791481859990643783912018107785699114935643191821334786861129950237221263082185672175819452692568235834019582599362756341502153125512436145241652801527132423581154166938892520851982358382864090509707764684366319783344299136853890519364804714783206132231761248407592842018399726315455060553576873049083690855570601324879079875255589208269309785959084856778554041606848823208427041342225867442639094503321563847458381565784680164814060626672451828247614600333046758221434626340336975713618181806578209058348281834501378444271765703032721318833968455901107243853045092786094610454119941830264352597207511665531134118250346033440220487491281746762052126388763459027283356910742567272454006097808334984362026621414847624291188349819480375537491065651663945567851839614434669350252458498588870574832391509633754882222430175125160113443199783027818909910729946046263806327110543434572318855216562624851309336050103989285046493219562103259350827227700135188925997466408126582111415742262008070140004751877788259844918713711593362014988403641271262409234704923303360295456303279332869351781823327373943787461092933023446456118969664871551554253478518536121532632870386631333138159881359694762304972080641370071273362647831437830332841523987253429199061564060259482099843446400106580182785409032831448009434165608072649674438990012507759651519608270591486334525720595273114154795419305835953968795911944086641803431128270447610359593045861018940699459351874123750563802284785167602672564840485173312152779155176897001704939037116957070052509929960112054927511063394964422307775851882033983085948188155723449692829508206183059844948036637385917328725819719348996229061383953324602295231081497762287962931324210146435846969033382038670803460051005353131712652195045536174728304217134177453775342730547508315887089808413611309153899373230284170613026272112564219535173812890973674860001044322972238994661198721935002752941038736587396194328725212316598344768663968022619713993731924883945240080756305782765557847355950025820801528834341846745036251928281355237778135342344611319955854308996820950214130247764773392312743923855268997488605348413723600676373015872063766631284936396410809629448585009331236233413724829800237694075588946785974154968992000180140081110555879358925897789214423165303548774060557846662296676680035024311104541187739609446655384986478310314931016709488085906449962384414597668717368197244445208315809725517924498734846545430363173555843579039871450961601675921479752432604805606741285041207703693590497866024594476881571804499161182421222928320409367031897698479496549830753036715332916578126202047879508522735570845491913344383869717174261920770614151281819840528984147985357596881713761343429570457119473067971867541300941186416068264672946644731083369291486170127113124315931718270693284220526563489184852299469150229414634137858591838615224827487837411331780725192873651221818736569904815004147275341245517172731195766509766524043121155616568340226019383074392886098899891787426746943670490904274316125012325873370619612577579984709193157364547502825036556694493954254645678792688892741898085256877925958931081543341460455663983630326954120796727144966201952112738460402928884475107534872690182250296723179829150284039231896421359886578693607289037333235743100215612479672497844953620469488593962470678646697249371141266195811951170939575887328490618824254512818596223177565688560723616224384669126082094358834954595420073640064268352594235433858652978503999126363183144918192875424260989603883896317027359818018992049755558328350763279829950129555075528535933632021469493943024300419754353873275461908620655459970539500762825742119009516351748281263004828978991919157995728373689557677633660761737308412685509187512486000635055213076774030222121903303167055896891547042662680088056071543641932438462958754633757995549437786559864640844609831673930487525686837491292641527089020201504440864575239466475562763135783268786214443792481803694985034851889737131323952279882589900354384050275099435460760315660429723154427936381830070852651595709528515258031775843898949096749858660289622728715521021097744629276783839091944544761151032415125138647300873828182599785485345778920929042865318427582468080875674075870205636357430205692641635037165850278431804139017982313324305576182297535507430450229332725737753893083924883987647144650325131829194125426972595607252053793053416102372847056533293950092753834801571098484205296304591407928797488857892160068071539571553063725597521370113097928266057656354511862037321829571075616818026715491846102875977004086506654015146992188309206354631287133354943318555697412857118747928969949516113359031715901850836495669124169765384637022639508201884958349834310164317325307704375766981635177561729151924978910508165066683139759777554383820908206760685194425528724630294554503540303234693040109309812121532019851009206381712878995112696248076358935361822690946425186488319042393652782685449292656322939417484491935042636850391312816701147069764687376137893772196044866049945278552295732404407641488960634746582612743676102352855611549304047763626261695168458995388296837973149389015045653772790721968098204313019378566462961591096796678967216190938298799938361675662664020543995426934605971400334096850017177597363215859198809452452073791188935966524589167979244083413504113213287509710935463813939858060279651446375323172732901907795528989925344760183275934875173938056093179647714107669940311286864550675484524207875032710670088546458448883741725435565040584928546033638004590928204494602481861194348636252054547019527534239814453728341715489504107033383103517120904178164571421008519882815068729151424096390955774034817716839345039763689773871442207983066211646347941517718821607003614963670634454975276685244306590960277744084171128625801626750250635355789993394544529081463203475383510970237223619316162351618704446306294692532951315328100253106008407927399288318039350780835428375944567098373693307626090637284208632893873871473478286463554981483682172660925454725364518068672136775912719874577637513912585296911662824244693220471741616603590477218610305743889499446716372716214056167829459043281920173195805932894988682822979665460500551679797271918337146130436759970548240656838432571403079962074505477744882774752257886168245602451411635448661066561983481069135722999642862784230886189903338622464327647248353485872393885090227863867663777017699126949101483873153909045524889375981384838746311769474400874320532393302683007369507689978619180868751062000499597345804760625306242758130996526662386819604271156753187418358420749141795775044224357603036724231450611534462190458848246609607438624475307178457441163939448949384381672751814484620516152948897570093609294838502686825557563709887677826713249137039132101726443144423266815642618134778031841110411322344286655124568974735101502140573391534572268168344557982810158254963708742237459514833915448368274968695843385304653895147017553682611377852129886615806142015371577126702882240383335495020520449626996195431664992233892415567978046058124257156474338854651515384636039044101268107430795137499909878931284837536297249003675630739320290964724731909104531692871339272775747307653852080149962199901603446507570663705023075861782517435201145341413188487446632589670106014521470856688143186148003489076514133078818529659022273043243955207942874176977456661874192378860727773525033552099772572659104906386247360803286286153488610997395827453341161031034813440377147300811934407176162617855168619180696195185134794221010089958436644523473396361918385531439282070091365406880252082984179096000724115918007281043381284574319578351093856705202853811004012777591145323591148648984731431341496918379007818723089705584633116964805777337898656500458662907488906176054727812299363819329305103669863818730290966382078878562408219613498639994772025182960061309081968150728180715417707547574640215737258114449767572929332213512961468857322768783551332088968601724088174052683944740607843904932300657061091454410454802231485413721927488442966763333590910948669224770363987286368364258738136112162132031871046395081177481065007761880248121112487182984315826833418717468356415743900675466544283309192471464078967274710506576953364002320654582941252968204056284443527726329828280672543434434218693030106692900712142655036371988422347329708752830168959928777954830322628545381412015248965828902218437594702958931093771143268408789302121170805301682239579227911907580632134441337666170442694613375934079407857885102809356346333275064905675662675475987336018212099360092680615537134353829119157830382482319253014304801624560452195003710475288361603458249903780777119640104321837467696371742129693229838250601876345443428537052193106751945305045003739294432197149667472489852666209247639158977708018130457772436648895883773058772718528666377576457839016895677471354101544698167191350612054115610034916573865547008157475514163498675158857435523441976012517764274642793905921420609142180381869806528537976289027107162087079530057041233838267370351764791910489740586793283317880475531249274250039392085691658624789128663165997722454164835636667912068626733843203538369846450375128747444645952761859976866840611590918118964578883309031464373102694803434019845165098634324596003889481950614565009740039821249547064082731271912828499635765617606051847303439200669463968453094926904735790402497879782955235100272726020991499675971331185222022157535870793861419398260192240865431756897458203258482372407484013072551579968360697205729114155549641010229224834812046147624900067800229231146262835333593476906432080182522403751652733923012584768392779541590680521839255612238488820381083744415761789354502816571588522144917261802626665469455169047664005151062827120826265861901843539849827567283006414911671360875043068115052134734476840150209473338945280556099450863223715225368069713783249506376602622682042580839102234974077690230404782271752826980306398619934158089788105257596953765206344871522950759491618109837669708731278394175925973113445502544099196471500586664168022206653966096315251449692602824276316633172462043161434489384193088632114057610475737831931787494745544671649598175577216445828279144742722102016167935987619989237819094487738893156542443959715532752096939971964431246389828440198493218890131981759247838154507480950236059845814054035723915572820410749751326156009016878743241287326319001133860440715169572726083879979644960711923715675496415259848843627559445862348979911745433760827676560577327692838367306068771510985168501899469138819174583790071931443625288055409794955998800567144152358747450457536567873262945831740545731488362684821491013741403240784788129306011144422685235993900544071755313348747914383286377439159588902817652156596004084406470117927221509257462402332184098967734320415936375076818269235386232073281409676845468572930088155162072887272170115718430050174165551765751627991737575559963891775766045299240974055903257769915064771279475476673097149580630953698770219349736633994720953990555742433323960203966582232528137641590623749065052078815982048264607227074101293899110720321555136798028198620074040408157054697349924857573073414981781869504185520395443301827264747079939252206314228613450525919816891512907685410473509266929427639355462228446059616839506206109512184607047044424526627448315685109939175040070421711560363874006764648222751035866041549938526200457744333911414501655709312170265173240383281830341778071239383349911313235823376703130563851893448639865582788330120426462721012977694211770712184662866600365470003928822795066977808783079675275796830464436443255599215660780227846301760217410834164295877345514289518021801044663630996252793685115600714449653476278061963829374805111330725189092379856000125486869656286776835307807934809170175634542802224330158951493770124560146694229604929470345048553195900214287791798777568533477100126680850026049584422863572699981460430173553290645345934771872191326993620862514124841892496504207571137404842097732583472975420353458749683009791281148719931242390086490628464852433655300930095657188152660037889508462404893820556788034234915866249390173913949343627357001185291109011259760220078990736005948515806446664544073754258035913365784350373256234126928678543931957695448538794451406670486113186399527639148190512910699146526105973086117476449159934580101511017420181136141930741206430620294051718429135989958390290117245609264032221185496259599330037720296115566816309908109809544116012382161638484041449778266055540251701485512588066258138387592993058363077963953675900534508010122245444746760944095738055620510909709302489621652856750952918249082218129581470435490235250892685549466858469619525793262272630508510930311118979889481248110762654552353382829634744868249207879256513046345971319784683181177282211330485092116694244188157156987828322232562843355882055667925872252505130561641026669041696560757813944369213984339576272934345683220372021795453514634241527235372925480375990455694024240333033449735928777350975000245118799899719274139430283787278646578261150788849269380711201846231313676250564352403493410487196074090797724327775552134362015114147030882378293976727313489469721973541584606853987882889023365126875429424951728812345693574802472208937140825517043872344656439760343643324347871830930155287594184916331665686854627906880294504958733306223857892884816630603638891098989360490301382117415503646864661827940712050932468593445495423353206588059850461876935653874040030406890943522573455204439697551416786535051976679989965454190666685280802887159885921301532170747352918003129431664378660037919316978698922936353466906276467560831073003325008594491153686305344095869638714867039035367108708784060332765020097948857125438989753550996679050078487556827673458699701938813900646248053314755118984719610118738378408451711002896189337535075145479202940634269201809985136973896244118377577694582999824767342382248243021464226724764359543401250236538776454957908653826322074224953116130409710788734148533315694967346650018881523806323144491257228316150487246165847489228122718966445558102874700231907934886168957985391266261397451680089324396465943783826834208940871554762327636709701366023451192152466537823530786504847552668229322916190609721049357496867021188143718616510583502560729950647127840394859561812372814482604339256432490071766821962401808775584358363780824563367787642405339603456603930097302168384366145455719994010241256282210582266630877089936763090825311617520340367208099852824757894026952945772473225712275619042311420079411922857342273540512164023453916949793436689288491051454324157580682502591658075914820765852672029016661285971225830763973515902137251241002887141092468231428041208880428839535604210149281809932198386679273846591767880737223393932233306066897732691304913610707233600893953673170510387374972185267228270623770117250292493484992542358254121550818082510076586058177515378953189534814830579884999823908318635348663959103579656904647816916931457429803567225338120596291598859393997759626687607650564435003728648135115647095705761232557965391733495515418596330211552846588075833245327258535858214461917456534090895505060937655880627973630396498631919364010012139354689290357953302790329739448147564114377796550595366490730873013030134250451883276534690891647502286182067987730807785089881087520989479224911844815766441375372449155576892702259700711196219382899790372717677289527143333091743995003701562516686564374036575546029582885277761679914315361937712313700543427927726280487706610803956105255627720725347823551820679480746651542656751006070274023748582555807945263914477675348108289313268239468724287105730446527959917778626596695912575470702330982777615839108469512113487910532939266331449382154205972286381505642200128547128796729425926677251549588052329562461042416732912283476382706506452720280625116910459549535342808610734336924623067760889947308757880592942649037801350552579990751043151502439356887720242891192289384831986661885692922911967731291229260123166182002096787249823863085839353367400626995784959390476367038488474196381980626195447713711705264664760323517597522507149841361947788070963466909481693954474167094404825122681667796570820251292699095100617579228053135683768583204986848183427763226122968278994833178298884779923322601485067448441925907119237886322889245313448816885869504263868715616601132627512818293566476563301218431447496977735672784007211441747149445910231734925190618149549424403602689003977616262089922454365451808084847974368296431045468284633950435289375690174147520305922900195231502285496094172782957951951051641541630011171067579848274149016849448800034079979838921361275914606552024802554957188274978056986714003532837784069664815775572093171772087989623283465130257436717822469397546711016079308045254696273090893323252919272635981255244010488883014441552794274349641013116088577553057131166389250486509322203349949064534315013803930893447633146606477558651543406805712408351576688220965388997758838894260735085594164695807949654367456503413952583310542210200887924124839185728627656478519184573585802852849227219774657160026591312318714759170891277981054513155297317708522157137663168472886784144897119684602612182767476557768687847222776103907310634446191832564774544355766662279000753971431106626260921895751207682845271043979747535439389245111744319505849862556933251620064267392248633715809272937169511707116912373106659357162845524733738225560242881979410917031042697013276812002535395914512338347107005846302935598561907497585288422320233024035651974687818983236240495774198404041398019085232112143398258113259191607750139212888413692198150267540699540390160140187164430111885875307373803604984439699025014861271873504400687998223558967165103474395221642369938880256571240110515288246515909084905349841246238562158875752726003763056364009775780245808689133945810887314248293336761908131116870763056428233917350681846581244705013590691886133504092819479147594957970620386681617736913282337254018778419583413177203019418051832199217005990076898623724171115245151258049351498390193417378753139396955960024385676671545308310058762676128313557122662874735944533578952376828312188539398437471946071099585765061980549399157432551410488746395066461666175713594371853431090119803577082464254702089275509190718164293337785027109215177710976055522261831589801263250212121781699663373048442816992524122359095603443356392105761471268014357388166209800777977610102435823795935178639341778616638521258255010591309148048890316162067409139895493578732432990214151620256652035166212717635369271718288342950755434861802295765221876143474839982851082817429057002149623813389488830114411671336400973605105620694313737613344363145947504261543903653402584857338581606682343025135322743044343593544309966649659540772348536329008894296462474683653043718973329835090650393903233180738568973445480464866737485512281856272929075376504051937524412261492511342941648601702888869364803789723006234967904278766881110235117077373103290656801809543957076888397551695054363026969195392229140574355507158470857716459519383037248480148628104080910851857190575490374176060441627650650902287608865783801265829706928078751865916019045985246558733737578168577868188670985983178971924236709792809820259738858950607265472962855295237186903666426327427993873079093476137546124621225541636767374597682084582794282217486302233251775781021346449273747623444382868149661471617893414394027201911703378709339944769979780507330395265784105765898438568782687817358934989123977754137624133831358283542587349815046024175491931404607076185707380082916771993716752526673791408522872010591260153578172682662905007524343293031195596425830518948794312229785556996255383489930794850955920939229895677067185939312162367070246171766386948375324329068673406492733030435316372727442800952203432174320000447690046530003286019437611424333676352724674627463195661146063227935840192923151201274364233879343824115427296909058457974011006899171151927639361483147634149087573323979701371506853706121799706137818568368786352488788782726955688034086892691722242347658951327321110015465206969677512589032548415463457601770395049821922398222246706184363241571794181963177002829737350616571920624784034206479018084669139767885521686661775749863158163548313365855720615308852111776358335870694073341851729043434651428480357579830375679286978203725868637343314850995257380644922374404746113498694267166418532392729954351317517807180009426613118895358421837109567724197307256764419913204886572422607155957913257023652322339279613294281250422859381740676988980024980054411051666545748419633833208714466651234538371887390803817731641872420341511590157626705095229437511303226227470239966086981443546821507964300736341528433925700871526362007254484123681381922420499030078857636754969996449660371316661043733684322760581658800563316358847319426338242596191651875042011650294808281322830179534463965765641509135747332393978271439210888088891349320438189151729299041716128923753384198871040247455752115350497898231959399859843333240388410121963909727648485359106739846545636644765008242716581481582693321696888975621339368252958782983419436207980003099955271520770134263663388510338639268212868449720130103547603296686922368267089532180806237848137831141133240966957755222436729764851243076900763537205936358489941838772199468173031095760508881229832203242326211918050420783251319904564751668126918953213451546752550570782801866133469755920397459878384119024394849067127253817444573733653409667098820596295113843360185426498171748518499800575032532343296413576687530266591892663969939382035668010668523531198564187566528532367940796164890167690210748443034654897811941036938520545209503420566936056126213308365293931571676531207274903108774625717785428126161043459628969536516733281485851612183533768409532629234159501317299620682632835324316899333678636868395431209707765260433387376194397599518893535058553902316092312781819955248307471766733074155806467166899347073710797098004867824065998023991626955298474198563590259854437388517963806319662011915186776628915133057097323433980060998572536003602910758280646110224577182725607101095959670018508420979907396924448497584569820986290979062093641896455420623382725987658479101802065404332236470717685261281303539594558953684365669154318817021129955003582749360919425155990467474888220516044893987132789760148155014465634826188159852911874611400577558198885418464613200590470849882967922625836433445597092632920725901343418651653003311527831104639083000840595915500875035888519086309982745427954678879631907468254911391339138869819198297546669303869486641248526342214745755827678493572590265158007075857904283434751974664760844684128078633445370831647605177269031002431806099193361001580027285032387662062281572252649181176037238770026479111039676519013373475906807024693024971058374470736494875757510985045005180063499040137613422334761647672529838727708356945172005821137344996574701408203031884291389339018859753644721727099367994552556513459327816257707997200649494309691058118225690999571228241917554234615235225526886855445003222102181997349245537418954739988936932992543708499205053879815738970784530497476856581201627245016792521914284427226242530389517236012314293217334319145026170382240590642622368127247587680043218690802519261785733331830705625520618653444031820449129749423672285113010385536319782930223876783398025610619701124661612083517337634786649941648786074828512448765681572431014329533882791026899557672975795405128192585507323604106127280955248342053022185116415891319544046805250783601883770687982741717517617559281878247096441467779870053192526409938341784212541525005590398140474564420882733694681283448809612462784465479986042137218954014244259315534522349246085871387701254114525288575783627797306103412926432610584640103889688510875044754733944050730982979937362461191890927516177936383866078275290921109984328884535383514178352047383271257457547374894252573466065391743411012403350903818535890292009467730488765868878214916273696533013448535230996343602731455781928018447646845295953928803943419868734823708967437611640972205612160816924671144460499532744963014409545296808735023560302069804153955567559375198331777694716859863358447688671979946792804305704663767219423492504393656711945830058944627924382074478662774836818673646707909718187511855548196392248343464718730916302969940387576501180256868160206628205720031817377675846910207710479651561012993790840818196933238098919486478511007056469678394826475906888046228081244806039814599436157408357212789770842392927473487372580554596115448532797934898822622898941996242017457388335582288122551767864761216504973697053828274894430754750568660715663531916291955240360531009712058459458190151995144186884885779191662015076602527608172382118223625770421283487474628036847474682284165571425900116342907889773985336700767682611314196101809881664053393922329188522105355273423420298859479949327561858699727678495072948209956892319124440852189463401138355288625014136278732865677216531242099166686872149621980517052674772054138697151322043338628452047855064475954945893382074124043706088411759787962525736156247279866716144230425366132955696025281738785330335046334995240474699656713079380922215467890106015263655345595781763707119784205269953594008697640005858076551472884079314503347919412249208457498010221447168834014029632813323517126716587962107150030420336779557026214925255053106618261252481121629329776352361438494505053672761863445019807208837979383759481504266282792338280214917208098144702454971765634240103063154286234612133283891985952503620803758041645817653513270825186284519474335367627739633027074306257968071906032219335816258886101503778891196306433539307571676700328856578692665341667764332700377811151754666826147321935438960536821493557153756661973775413462274918496129046988369041249080225455722977761079461264306968038126244735575349387264380113879076028982020734453791494657205247740735658934485019539078585188553837776232854553473128338183854788493868607814161520948365318827454659192606250924266718369801500187625126553501544436135340426573027368660217727278598772840280663011390665744602377107018631538773924236267990350780163823514538095622420928724405860228034607924085950940187657578612392356018033128751625994215181314609756353851951141344643147278672432511496916931452027060745835947135625590953964826590533789532549211997518778111459579422754712605646163758524816038901774081544653972161004796978606446337140351236354860147025229663560043834389930370490720977879738879310038149815999624385616410260302841393474296662793985971329350817891726558757597675816707454530016681743263478334749889580094670565061175389456749188788444019114398557168132995181222776204919949800577396061657871065648821748756340177890012056098563146228752733197178355474436879589279536495515699884065626381218735634417664664339485664282578040655731116682490587206257956179262549187806761064534202130909668777031557530741760355476062845314306144251375388738010745098487403116626373758436733339548446466054077983728049131239829138431562814734490107393393481437808631868118905678176667147550696965293185025159838497089208049609833407212236120148028446267790496248854616731762330894975917976736107700579645454217281523926576902673423832074042437609668303057835880366042433389596991162560692646433539189890534706637779529410943532012020443472166907457898284472644719845516877653150942618910016588574379436098159327200514509243698866138834425623675191053144213001736100915308181273898903959749509477993702926271163367922714365308603208318875092843599944965830957357317042787718920055551585128554645847210686252410187486786897367661923040064792265489830619295024473459136735952654644326131434183671878063447949670712816878868343253075763092839224484610689770533769957750530378943355244816114361690938684812943398379521116459074835837669362434988727666044039971731303852173093046284371831094086454288500542665668053965737015739994836217908586359005090565283362969183495315032052955452402730508263429629925679257841158881472538404786948327452987275040887048082886480322451083270221637049597009816338901779623648850718798042994766676686483127108409978619164209909719661335706758146853360099482333937154455601461636929920432432636420288544982331909091794213213304810951830981588320103437986294719666462093737064697873482534853396775193852076743926579288917365211486308207564656091067467822015468859529158134729792047989934276187523507015850272223608583415597200517745964370903689236586552555815288666537898156399672961414549523878751348627924308395600165783560717712506873816708724214047789747676722722351843518549968809415928410784993926843429064429714705278396217740940935116312890312704044197067853648880922088978234175860991582182767467122031532745009460932223158396962218827371441958562913342895525459512615578968648764766332381990068656110417158988781701285581337122861552875355095716964184121506653969036827034080244000439185077419874747628104439195000093346825380926195396140536102667761379306130226996560019672417031642660797744206716592778071767342007568318728331062995485104901312347119399902611396150052540876423074126678093863966320481570789346630512947678231687229422404638578961607033294564130344734374319478477440998525833278783073216914975337974659224587034252914891707177529264372261920669069206605947092557002858019962357472507715280436758803798716945688269380279013865308560058763855368248279781506304887124198363163850506421829654619977535996422946642051725716336857848962156133056392597323833255626912293517374657733942767198126046124854596902595600668687527921378299768907337705108491245961426929168569244951020397550222569662686177767572333050591574111837247013327252147054546696177083325800973202673179279575721764926017454039377460310618538325915591947562837523884326214029086004298530103639717170043121236228867363300953422892126079150803184416192567008717960006730189553804385424938281820228649872158842529500188181142059078915991314996900132112975726558640416932913894374326107658715724766279780058888580928659453458150273007900689894975416666833185119727559138168629543076028259234393138155132579538152013974974634837989179884253290620298628891429818404172753325146770302317626082960970993359037583479273838881708688738162963113333969678799428657859394234033866802971466817108805075046848417808626718192282838955224604204053944671515096440123430600455202629448469534010824509998462986383421172149798824829855309344678940508918097179215928332077860668322350623909408517301034221283912473181996532801714977494737768999899162748393810541259278352566654563370141810710789962475810985621526434491276055898577771579669905761313110778012526839701145614060973017562174053164854212663907036518204411235206295001949282330736776031926839663082553755537633654057753575468035155250089919977974211444571258860352099047913227949408638336009859706118478176891449758601034333848488502785436612007215417424410606992124676464825321964961725285256272574477902407260141779457062246264737572635830019912297059781410907514746252084154034526921145296481561189429372539412407654201572220168443890383706511522780073558584641618254319363309285720864340758962929899219520429355037314304394620995783822115869523143803843200483734331957337478841787446055419545230420180819818939461206589424033561511254971250393902830154267856540611729393889328503161742372529905207797868420892308513354002145116206682026991538759425173877511614268348869712280858276170955680660213462490570032652868564349036834174188732267107156947634264001361452885550160954240741836886278335498544290172582621125216252217169153917454122041424411115832277574467682981165218956566258112161214931795795890063844754772668462879709424151644690560420930151848061450357625264913247728769312796886215352723537503058972707846349279158501427911024235840546712333905226097705604204855880477596707023020240303912764367530150333207864773580529201942041194080041959506137948573999467941296266964656639764569006848526879640084558864945668283191699745044520342371800043083033615890767516683090294422212387453944773424790210419936920946324119473828271644940072855075158394783400585622021936740184325479559577208012086027029153894818184121074150620403736007875113065105049204754780557484291447475137769344366732675917803573955181304943947390996542910473320221067413158451105840147315565934441618773031716152224383719426964693028906968919233465029102608990641874946727083816199663007236080747754944013277436555826129238019188739831649209309683917898761239644679774854673296780307412328543483677396726070233635237253959357602811965693605442101590750630687780623920149367335431247861798760457924929465394938190090464808767105796950685739389421256903688634619132805988727652532240033197059346124208388679919839573113745382972806290548517020936764792176277096390004119868882508767926597114106023134708487353399114272693762726552731122886123808881556467411349695393175199252850423600896488562754884716082226852157713134078024740752331334715141031941893320410325646426342388388366190983668593076063388463689572642631420087485375750863990503179079512344053463097562798130631527336453410000214938801806954684050264115597640560888214128922903155452136108806519265714103758211838707785592678434829824630360669985533868429075522417502637287208848614189600082042752866743519716432511667485093321300415231480557482272767320907779111504211616247910133240901349111059196488505716069166496286360445412877302695624104366797655820131043567821420306223267487340443409512557821422960851548548421330189290973314440199597511928061291426270211183268109616257613015466009766701767613756755550643912892329244100395894704456677982306269816504810034620195286795840215568582593686401935196465651337437508344144356942016162758271321060426859258635793837583907305315479571739851663047153683547787855368321650875033584249372759962014368709726247177799860374833141999855627643209250319635479507519288592582373185234693484575227561974983628187867282150216015223305040443924285233952876261828464590649238958408494185573096597540097696761316678638284779188305202010090485255588387364220514355451209883437397896839211465819024324189273216605034252033479892637472430770574763211143343386720760644130562329899784669488844532284669927973405636712414273830810831655125296684626667430906302758985392284724707175747755208846363226086957320236840325151099345618559373783660634304800888350833470183624720313087363055472494106675533115597131855785699912315116922680305499896181144230747233435270463300351870988176636386410637917129060601242052645665552836910934252214072086192278830969725606606099076426825430215070408506498145789727391201358019375305423138718671652523342604385303424063022820458508012741031750828614513988958814644906148816564534872546969000916127911941799835692865632749455532916718137611224817284024981815452649148334250582901204056152444887999209508812762841213362364878034884499843870114327575178507396580803413859322762228554259776275246526247265400563308309860339658426611764697814393076510228732896351937039620754076311272343235252050895335918538677968690350771447834764278712008783587369328209196164043539619699863814049809856110699290025942664172816229244379127034698005170731662749374826825147236455486892253864784807227904745923845579063535478123756010151988009449936160315978065196074686811846156454990298048702526687026336785708539908288972641104414825884439486746422018422489821429634980243248556605727105991894803975597137453791606664079654387325829763305145005567956745407151111218175505549861201931596164901529907313404071710845838630547684177129391169726572212457289995978128859362781934783221762108901664849039065259635690131415365113709089964532929461746896707961412403547333529637778146030083210822431087135428608966205973209676677473336201461882251341271037992059725465094254051420847257549690502866418605880639104860093821803023861044232503265380577817581277572047253190070087282799231955566403867600410521922281924759737406288586138682022014037419544518693134791792430075560673054450675506035158469203774227112667426989069519350973524002756777547575816565460937213222568370359739910956421382193050540842241368787059230854130686831114061703842887336461017882910675072121435433633362477602013805137369387749897783966170264348617767147899054792661014378354839539338761788842593341456406995857031104690726149784609886981738187210492435415729186863999514155494655253267173865774017219173869551374666181475170534179003472131214857452708750594461379687302636859538858888630162782299616294526247757526076591538965221282757218005210871560055447076091635466884929572619086516279007861524093322580238727252686763195636103814852974451077721108540681317460841983320146096968978805582519064937650333846618853744010196201172948824706818919072607558570323934396538845981164753424699769459017753150685811269023052985458993486523854695506396460842000920702379466792821234197829617039885918840541587545206340302334202697208118505010351542953173848086543283940027460769936819802009117667775961740370731313991137191497655330117480409810618542507985686265457933226820464800043148733437167033699000137401274227823346476552798848492136247636294006855835445032954847395973018153244609004797254851030169603045407029959278673990771345552273925575009253596027527236882217705452991276931627120540041845384021770366537086456637752070152967335237871849231441608215398797279113194572574222200571155108127703856849776267413240788516953257207848137198216416464286687538664707182204485752711245980349386562874970365542100808960495359881572683792698893878568646481253999145869916631137380892426895953071627836831746270971940574527018465175608453429082963936041856856236166901393252473394986674754745800722824077278026209677871398469619702958860641076054194964952247319093531380570990071275362989552963158723213840524111216147942861528917078582254010202922042205830987644934688412092292330454081619388495245956666887807696084926094017196941939618769070611621698959298564499721886219280102027791229507777213065204360186078647248370275864797778575936336243477784725403067356967953730163041336947477519313843418742671122205027932951218704725258857142777624894943890365931355055370321784415044120626208370989525155548736053707604623509895017826809050620407984479010423945917810777253079119422008149008730442357083567603376438867051332634861908719441512867698851920670876607775772619410477831585038990157254412236679355199818006358355818330798638747955729313822384583315306532813626149948426956911927430583498913076312595812867750517547634411788280737127557657087348935493034296713667568342986717780898551925299477846407513533924287375876907519592606444427460014190502236278653136420746801940227188502169617144294381562260583607327579006133759470751703092775492177755318060086772172439592539306866697778854728297074206308915976886523619602265246783715618865308386211455914201966293588618158591303284557719922285468698817331420723879027467096870044410951111729106489722288706445352328129988511756895442729125177463670435608069838351313497020317519991636554591556610830652871732973057761659856351025180999941973436843685648854524813885548492808007685636744611207949675499796862113844939502577749074584823343085236930636290620261330380457649988724466832395084656162094804151044362387711927997684152938169117659879816530712395826687465080893006486680923455978628846837568039522630579755554224979161785097339584839430369132662131310222046342183804267125615060366274507563050752110681947305687880356745897900094225599557226681140458523133906128124098296075899077153224028803143067755254384004266125019749082279221926441505431169759779936464442906285298229885759775371099856584570815726336476869593614125905203095402480370854060570077734243153202844395306072325998574970581714160140969911661520037240646626525224652834456659544265537267822601153780396226168010054652892756857637282185602595280088578330385979192271906660161109877885889951862062119220376572022200179837363294111260726951989988823650144734435666867740573410535373454778777105003746255065749124691171028253113752353303007893032498612495378832622680623798402804804905683916353828894645009603548535925392750550826668478814479879183081274933861670484307865072587241224573135878622934349261392138010532502910180678859978941803879572164998994665294337899140617891942749094972785815271030074843490151308666765637342586857736029779415792291033870449583714786815187539685683800108698418977426987504900248548426784314036905349522410241908877733762820503350833357255711322855896288922909988655094385905312164859847803705030920912572845642712734053865375559700482022538026656502550207985261398074527342719507681472051050611291110648014290140960655008543882330898034927752219326561937223048986738579229263979060106274402390144892846165037499059938751327002932586684110290955908542283842267640235643483193669381101002060007136112754479423427304814990969357172387568227704549268740171721902417760140528614700123276226862680142387480730698966259958358746468703262955693182180602300095096852435217747186549477400456219107693027986407777059812988307929317501502759239323689619911352693146415263607794448360698499848825612543381098441501816224443522679747884331175926077156008964237914660448703358718794974090301710237468971491137737438666333566297360645105780687374384845017396961795246255261122421092188429588528391279774684231483339526077327817813490541616355082103896158869579769236061276410320321630171304291726119956233519625204833479163141993575732263320110169609362081773297560039448745570922386186258722112343629223218648454504644020525035781398298826942705176404907938030337362328953149215474068489979717950322543199709529401689839864951988056899846043844275409960961715218690810392695565594467575616565914107567844744110992258466938379977206927044220183316275836491852755584086117406826708399696574793502603303254130249880859322416016322959453932220820072148676242679785435630206645740432704174894610445309250236250612352010249482918774723658427057038931384685552757753067642272043508408968818638253014984276173196144914436758992342414519773031893981686522088901209104007829427544572832742606396684960087374119910036559359854370448800139278765497440617935740565964899610917063411121141749403250934287144681755159893747908099463049001475168035526722295085375899363726828637801897242090223681164874545589176065168739113638899813936682179988780893083006512823643063221364396264461157430588920663876247917645674745029820253930637342891816131626676849829383789584442188672370359377749973224083119335468213845898192591998452770567191006419735999781058454920738218893477349305652968346248516191044694277781589727327020442230056477409128310173180337021061329933331752134529473253009513813763421880409132384321235180974976486970646244997901435577437101651610951580289516799272699426109073346120719474160660177183022582431198632355751809147262274705791348761468400727614228279344607572638455182218339616949241107339355051410809825134809015195351615104392563329117524883385955502469354972079697806972575716482968677992587666097718100532227668796490297749764268544506620359011669769734589057777249020694084140230108498179908613362156713215984441442907715870778170428321292758055648223862733873154144764184736757192048808987921312529883578772573329167392712705893620578577033713273465940041401422777305031189867460015100076352389790437380313652244271375434654584617333470443455450151850905803268288873864077392523058353079391018259791825192035352325005644844933705253466548884195136505176821662030770934508376248951426499943358631377426650935454875586925976361747822253857715573248447304446879752221311686702066456880885063838242020101171954249621021762888371774347937309925899208913809514049175813686873982688560777263382265697640216147052222002129610600434701909386402518959656757612383241471621774728549733064685791970474286162588152393776634154432490129679148908819415462079413488087271060739738106585371975264859321298970176178938942938549434491913291670293305931175721850972726810232522547402387345768131187911792667756244744429275319517494136285375389408177441201442855145904670073692995627055312994154758224758581337961573743525323145467242863123985881903127771431112178299931548743731257121053360304376933166371820353743564361005207021129763913269484094253348938085362167588490141917345774490195153371618088250854658799595846536909400468284031280663273336523402537119338886190718755311132721187114561060354785504287922763316552304602603295316335713391970444023503161589119078042300894613745014940849069755154220026336909813460008523822618361690377790030654963015580310241852379766920175310987057709248097676306554955360238155773264666377012847075017804670883402672271343393059513613775150291604080490323281633651548154742138391683406635455495469588254375497163452915082400475291776731515146288604468635655024176017077777571162151476440885640627662542700614903152493342200474210348442804383114831076902757796172169234759239308260319774972107106162598450454589194384607529893119093107023451224589654224417552792109201012707254423123432408688424068747088695287060452304762975233003263878908608367196270763358263022593616828187651989793549436814951659516920116066175520191638037946653061978510385064564044410700866830000706828250430691753774573342864169982472727691848053880333564762081122833965594825337412549533726200649691316203989021887203365017234271703477966961210069818445188777377944602079917418756278234116893272204686578842239846409136223130237964469878141141328806842209925568025315617316031891465148093078225435324417729846390005072315581935604186663705245168252004008049463842013393462940213131297576957349472820214647280549853720584698176953721467838285783305093955024209716005875372636818695403502486837262186841845334503850753650351418799785224928944677500432191258410178534625155202133281329415207700738909541873926880333407629266875191492243389715100074986006573576009130035274099762231140035559265328621860394613080475232022019268258545024267219391068026650367114710427481682185481603754032966594233102788124224740677162691884222565101823461340096194799086506567031139565528705542204545511404464132370312815396040739418149666281415446799555698017390408171409240627592127765436831110584227943709270827528484560859851389447294560222112289591012995817579040253150623033112142543225812212673734991574816688789730837761872036343940400748150360827509737284864299086457990948612248629719998519065086758187545078339749753816038903056734470609274802776702799298820087432389057523641926828290785413954974703430463299776142572876496446854376867861796921636249392264115191402011522619813175024154588035868979262641802821047608974588718336861607313549753505894683858729479669200045924900587992546568963694341045219187225615421267573188791120088633096617657458902938196685563605639444503771870152284416276842388298020554559425419961067713819105406714279951026673134223883267176593511429696770848960971747672590609361537614299040203815570975805552672689192311088979462352514545295188475336571285138606266927976696794971244602384518877161170196437754240385038238670505378429233898376117650731071442779104608229770756359813216879657421946702654335694517086365000912981597328187583252731333237895655307536103591128307280276006358222979743023599072271663977693065395740976314557813246703677715689971421179598630765037320950964790265934898115533019012755833998641259458706587216173094772699189159484119155336778082180802359177247671975806394151396157552462495071944660129695510210201604468386147293043177456876307215613608096497437837575609304963765435732091297668732373436399197127118678220743352872094055439644249331907970435600565810109173642054677604185414363020211670573355809831662839887022645505781569482056779984162437327315553568947870848656585257796215463460783677938915673877281380745337490942254309010021754667387582150177072605713236034445711975930216145385845684287036673095879759717949203234587573676033531163211483378223551248457003353746745764671658801375175128707416946394799683184537175070307090699193274362407108377852199669733441045451910315108945938988058140040105687017377976945038113612226075763797058369358020092038191704449825948712121568811458678474074093648843849474835989355385778735099679813204402117230748358045667588502095123461944123504853138108264892646805720080746081268865686149951188449762246644871685276237050692879835465394188417266360563043776951997578390762078302750506170628630306316400629316049586630446986342607414815009059273430872214010876222513571604313729967808782809861848816993553740083423514178259388207688573923005036089177187664935479403398084826852307257784466290138986680562190067096195662164712059953196387300405764876799840224961250269596615402544867087093475533797329945282060501756765142092655130352970571254798658770000874077760219226734372259008875939679739218807899632265977750416803105332956670263679081342049942520573367455820727749335026407982741876103084377460765696423373956072840506789849315873349105368879228445737752236385519319737682226928463278385722629431618988736502688921697411267370556297296695910013178732696014705671619149933292137887256919852962154407887826126266580526683401098351129717536409177325723597561126413155707297710617430533325936820354190912439568201632516218000720729964354179853111135066205050669468102855032284988436459806027133252024712935191244766976432260640980359155642138577845245823994594976105260025844871652264386991086732497180483190921528040049069014727818876597711516271343887361354970203380493424439708201653057153059004315246328469625141806280310488386266536388075213381922410667680887727734066906963997904385947678622248847287288474478057175544472711896175885137016416655600690581783659516699407224013398097853133916233768589638648645409173468354575338999055027358030902263273751728837322376538586315784449063705668165929038642225421331292548364970491805196452524989577596708934803939424891611814392863003326015661316624212918586002184830465913410377612702677697155704154168144351582068396129372826352917178320855576795095188392957881141421766972303490903633788366722098294801220546121473518917797410792942940464259134763530012979986879018627807522689571691361233966074696643407253035460854255148504972568724280150317071444735879636362370173508152182944532685413596795648609358316205963339233035748814420002704103435814505568108485314931039889345757203977362051662360235702544381549892579004252658085645765090962674778711948724506616455318895880014381746655790621148388768511035083481062002061521525252657331865544799026110520405947450689515459974344629467402837138977879974274060293964305477214831139314657667649258748612153778553532619556184139767767294707264021707913999246661463864477213662571441518418788802799013854294742785791075440132474702970000397285935299669197212391399843898466558779471518058947028901771356376980766456223026834879114991358504348358213147718716837853056581243432255434031838156139340268989237118616452882019232028873645235651875613841508541103476732413336057551256877566480680493733529025575175189424958656067011024034779681170684002158793894461129777268556587583870773904429524650032969456408209598114671467714592819866268253814591210166419094994237835575347571180986892487671847669642000543333400223491413091389027381325313236821603819776840927427720035276297761950101168986411929037441779304521535345320757112038810215777835490704548052016102141116979663446614998699280368809988275864949443287273379655521077666881512942639395400518203709050258656472761967037290458250041125602762878906949497358921681681906818691673540831702041557556056248984621402571415381260848313006150178246955130146054896317144363070818488249181296324168639064761544157748640454772621443793132574722329881128160767578037565787561761521691567828110122206071417544718923008859555790745905495736998636493815638379485425837325007667991676427226379660431647351559531363917495948304949547569862798358093802711562611839717968389150736715449134994431679043335059441669262142356820835183438136791527836919838948193829991773782491457174646987301722924628340778909747097373984679769987747831022163535140647363557239761702679121419711413257582468196884575179994311828140861088262444344995915941172789033455240200102519244710699439327296219761570118535646108604632397910371935897068772433674611999763119827440287248348761151872462306363610291502196897251930105237661120086124400671296695815520479125465176181970337465710327284238274498427606517526354477280365226751591330631390318700653836429564187187318188087829240995465355249119961504921099945949694228908955145688541552767809731832753400668592683068902069583741304134385521435887508398475819669450973876465104079986497500001916117339599603282860394125686917131693401937146099585666136876034702374272586426805194514535255015577937421283439807346123117949224561798290582663700395822122162968203326789912925673501459447292636937231579625160499400800455617405809904375305767769641280975174330656006981056020781221809231272253226009881471681783369379128660469444060661052635163082070567813139144651563310646151292986964898688220786823501948523767871746463758761634337690675148899998689733702350468701573719962506485208127253979410587776226574046867483816514215967576477195351760848843054834093714594296597647891050899373116404280992263972434002589445031724541713979409810685330030623110019402696496337766747168921671925749646417257677085577175653237623968810602814843548292838472093905204610790389261411523147572525626549314783180833868234143455037044616249591681580022796524970615238020422586719480475480088626464659354817235761604343946764547953399597620134575898506864919651467320013180047028050515072485071509975322462775470689750562854630277054374481555261080354498092763194090427973773717662475740555691800819987564710901138121687238133023410621167367709778576175071667096431222242170751463183941123158033968219450458878728463980072548225181108826705037519100967184714110975547673749576782761969544036218212934118542068668300777123825731603774656846192270365940777775220877042329408869967829759859970270566895280195595362095592901634855040032979809247690091211433764020410638769957449581562259272803587290897302693153359246096940115618044283704823526690075514419787305933146266159032223633036475381501363130889755212944746372929865860924154734187396800257835282248115259289800211042156516878953212455864268991537725652841078434457975341327572763718109151062340029866079349623268124662391967126687148719259189668794633066199938184850591190345752771740487723005770764382295559407648202520413585239447231175186692975497652068948850025748742557693561503866630905156365123914063010016772052457882284562961025253670963757465640342341847573347375512590732197372912730905636658228183175294804809227315550347205882807695515036924846243516115479169581643595822553382884370299004665173614870187250907965653162331145881064231428707461310838478275243685778090345619879657215030164912795805944874388800267590339581577435765911375351869396237183189287822418682969856387558870605040089989533604157932668836672365713345938740906595765602977437540225592543233281864139997806146620736487133329198053981115391804789011264989480552917505899765164420708970681499285675524904164416613887373945585951245774129611351319382952708306043575834343000280619943658856687730634592848125509946330001317476493475092808090180692925022726639900194205133625269663418362130970602975636495007691935222851173442063679783270855619903980377004489178077088580098066453310764109988884074203507418116585918361088702487541927873667497166304650922184415734974565567828292723055404856759106804706243960586809081453880171181691519277286193937933798794605618785155239498778098712077837050021169015636870710844718195126363214503203914104595344232420737527726696222191810961306761380361808224056111553681058252932353027459252468783000069769240224496197724021073558036053867001349028838428863601968579334366741448616224580600389704579688669425262286362117659072938974010683482091537535808350242825539200865043039792982030815799063399174639005739379996916630000720314001557000309342635651733981940109776722698400170896775183700784629905413737679135861149402441426723691447263682051374161687348253469642546559321161238747844844673088474758835794598464106900405678968279328909608383477832522818480404319300871148193873712229529239685255056395217045561506226353978662738444794105360531863223660715749906135572830319705067683579092013565402401188564030992622475452508353902367590209279418847877494675617520414791207233757757096026671725877975931239657521298934061536991423964334647399104311685865284516325932168768179989675326489555229436315712697022184304869577214734492636592903897948161557450153706726281310191779870389701086331400805475234803828576574831929189840017522490342576534528741904490038600117357224291811650030969220490177436438340504217485737509135608928190987735821933850929395991588885043071742259982857448085281161686249492834048224886169760542402543634312469352356709146129482019480642895845822908880663843362007549894582651954473403688096201359585700107832138086193751287284108356785500880825560176040052027574391288055399143967448701954324017225653683593715199088675431466803784454556374007330667765143444970211224693975942692401398977819169128316894715098784568804088849008328922289577127027947936049721137539229343527549551972172646047277848009817430131074967880877517143405770932493241245340081062875610312992617175879400833619687708920474497408268508794357920527635406375222398334694501864748115540815016589955299316473988998851677306492261059906721871327438431683151375900857225167192752366883684679598497320139244089619506185721610147766189586119682716509270756151544860636625153473915732534916223008634642247219235787554601020228956189985034417745282677222419296893057985703694171374966404044510345904355863640926594814089925488397690714716317702521288361316803656284424761293229227044297769566083179829046927608012240060639506298499618390211134713068793950618478011756543165586309210474221467733121110944386099035615711296227804959099255545922053775209085729712433737830418208828681827753259754962506463072615143471452961599581001342225295948757453322386666327156878381740638689782001583762077107845020498220699433385892701222888309564136805504675538827875150663206667638164655897811987671784636648253006365148943274845245611619066119342362822711364723260891996299474140423565023788043879768005007200290504654304390203512199063491056957539331293752619566650356217214578962383199126319416123645441993147449648018892453376303036616589525567597757811145420563427778152102630701455071801682351478540894411378545680621642273844350247329495430175187906066778643800482061209934884715510103257402731056355536249945059305829554471797067141182605850949340534024924174269448079893300459588294576362394431183904799401252208117719953823067958740054893667007851973237421798860306648078253054493556396809138792921979522229678138533390791167334444618840731590631362275258860576285189391074179174272779543395313752313799469221858757575813572497900862969824460574140848979035541570033735640701851451892792210180804188650486113425394952321266784991319280035141485787659582667233558267122709943708152239240207661082566242214731821912106474787999287238382836363277582024661352742993492201108491324440037084943325629601824684866440982536626510636087568451699598900908055643707888795779854473358502814628863263891138913221391732233508565299520181354914438891296421140099134275700948764246801675955257603501514661628742507216536842192638991699224555018459939099892703704934563713975692209383867490515650068662873854615323747007586875232495513720276833863364605731575580176621766777885954697466875174959149565522440217822871161675298386720839263750951083792365712010082920359612194815103305996082443194937709457482942395186537494323299575194139878356155774931200912460951068007377780113203209702464696325859018819633234545863002194802027617270621545900219565574455693269343544723859932129527194165016160692743342033759307607422463207441210368235123737368286406646186829633728745859321327833215555781078393993759739546225191950530477549247883163012926704227521699736246983060881503988897819891295737128318563524939459491591859033075184030100553766970220875594317860339038390679323649680282445348963122564191122212167123309118928090447674555603788140911014986280586373172138632217925088703984550799063463311312308384129778212736868325822968414360870036638771740134582525076076249220676762071534470976311805347116671032728834824044349236919638433083581035781981940730447403421872130776083500488113621261808931029234727637572967259775157007579963845545408768768790028160910755001907846125523326989830173943885443962585346942412241802911697931920726006129549750505300417542361930484583931580624814206889909600922685515088572485789844694513870427713166180686495470986948074395970192361739886801890280980306851591025536203258289624798224333890613875548428405227001904244905024855315895754399641840389558258960054835362504202218589740885673874532894698383590450788039176000750984322901410030961432475116290375127536416847586965689981035256371703724502777680488789842697141069982561412995868759257683419911874176321123309823426695045597770996922169378921559854559032415453548998531017267134103274712262455640582116969914481521523837842855045040789744235608135132332531847352541813662687363855822521492863664198981857847170179454555690203694698413054526287802973373145790018919122881312586244763376246760831427231155788163387635021514830684925697973520255317342667897710095303490810053968785929969044136868267057713840860254654305256238851725227815666552952214413621476047202718881312780861262498580836081873874827139785981207051941075115946710859732492679600952641335815461353671581709264603536119933061112539979913097650880088718034147758113258830143282851112879934641483388974670678319161682448544840916262977963074850019687263528327591361523305007524436026390886022950911170115146003529743354741404217237648215688068387945170115354300735996771280123069121482177696196752030866503423007416558895968674728542955242015317821028002788743203826411614805895908075842675548105259938851985537965595421910961835943770039220986676646112659537034152601200663899886449376540878754245462153433968023363252083916039303231069442689882227160352271381908167688528018678937021130382865760342144887220889167217065295399608134642168592533937564540894233860146016566624173625403151913609188562408863278006005324576068396947466620162128961249086559799385861627327469600210298712199060120498959311137458629139867142446287192914654035275785123792540298075275532389612537428688836824090441931179871564750298485376782216584604469988868895589850384943551851322097109455968167391523749546980187659911888460917389089980922585638147076496393639791834992564715110790469434557068348747684293699508958540937073134118246685613314135787122801297791955951636569122810248232973383836938815529082989912796430488569445259878559139867622611411500873294493788560905372943217265013654878359569620419297713841919627739694267651585646375383989376804155287023984461144610498314418084741196003126796571726781326443331587159950072149375048129289705917642031999883501960117090462197187644181416811267814338969036544250755623374018486980154668416766612343387674973763042534544135978405276656378563360796515197023435405591079060436842108658449920562862478211655881505436074452234456165453023145689908503701404642336372146714516228667379449280770228214642964767410633737506644260434938850032275429902645188299005913912900974553427397082169208449639201888348626986970236861287100850091161556003260692751195426977635871347988809651231978903701577332378448738120877321023067809174683927170787941543599706677497521915342508645267980009005736007665013851352073739981328513993334172484998177477278051979347707518625406916357923635669992372543130883437786789915018500529089190414256545670560130254789969353751586815904822738586455649649120811175367021243284067425600130673928996289726501430309863887948016044539163307874525805911772014902548044905957606244990819554434656506795120282103524180609555379554917757968265807260546254189160316182904948362375324361905232894044369279292751089498741461784600091995626021304451700500614455024557810684824957585194024087159762975605447206722378058127663006282215814722875782894782678464407638244171293505442734374000741501432328785908127462724902866470079261860222469284025291812737910823221430694670047571074989963509734888010400048218211537465932708755747380546437131534228753777795094263410093216987923508039526205750134975958647316946406144214816678585484366255530583152544809891264301113700050556065703511901289104491552921539259640295856817213910729025562548891212511919744740042836042407554578952614496000629472488142459665818860029140293103324340121654585806377699105055487919956363957859918095481932515530690719878489104609462685598385387778341743480069506548533836804505938337069842300532003498057124245561429775111391257050098844935365082399052606814152579930948922248560894627911132729996542431969947194199623419608348703070526331194140335309717737847336055298153014418092670474977506449368234372707629852153688615911355933117802325642296230070493989426528260976493192133013247344512067345175737414250401284175097392599492637602796716068680808071341255622194936439243887418123393898209341932240400802368115732507339302769900519609840236434901519136165828537028949610070675834034118752629591608562186041459458319833943131847640150727866835451144279781482657254567057662021155247735011548750671589667240882229686205017028857766064872149822006124045854911158413727052176305341375344181862626583594660296284044033154727815757394241990409586143599581624853196468895544169132579888451143412011665955056953700184303723453622362322075474525508075970054517862297617743440602283067098542225420254258098080152094937406027295751414428267269246582913216925353891994930130497008762315810094682617723852698111109642038975640309866636944802366552257750004551749405183824846914349589292480157154950852613351619168768522650339569634678524566176085632230718103222657901868340854198657303269229136326813927719073495654582120610239739701080231514241951118701384943692692252853500708032857548780562701392557413754315701013906562447262003690427502047549470895651532614484011086526586759890169073429301674701707025936799489362461531199525807789477392030358065213288818140256447464836082994901079846912156746706697096123231713600918658913778663140583119377522029932455892488813489553195783739370169994918541372509547549611648450965138960555615761308517661045576239063832888352786394923675382873548449564238696924794731711109252339357750063514123378577413433004634152253649458271235003567832181273431449317367054612506403122320479207693292364488299213744579738141160385479957407479075092119630201111820964314624297125262968495354788376768214406960491231968908806153170929290372816697612516260038178140978547627595236210445305512640950203620197639145771819424058422219316592663244277451556949874418495659266205879577565960073200923277365374944572231628836827111016985372739247975141112681049533912134203719214675494260838276647038184818558298807668304390725425707706697553203936927525427946359341246011641107843811994232967707348382061000795576730837060720812055773353218326952154605377058038685252662261299847417188165678802211555446432304216433042857416644142081909744851881437861588075595071824169755230453749762964609623714316321060793674490316579254965837750703312894172478730658321035038430997631307245014276169667436677656255281217392408567035821139558836833382956245985372597484211361206483862133521222082439965374245911736832935287198732652611629454303865441619155342062449917791177926486936710275908306644940107202434398931683658029975108072708404949532655246301166744891574535541059474130462975080068699753364449395603102599757290204407843451813403239731507451156875427060118431010534234290559128343468046236154372461240329966793968468276861809195887312257265413902079697262953323000924583488214688819995189070697784332428350218127816028443286495118809516744937364992127581518223284142782563089418353666600558721087565087832980296955437712875614451682271177625395170582481496913927172978890051172322181128236794540203088427178488669161894227149533412791980969951500271167462291100627526007211384675432881417918350862358233232562854638139523727662658328826312426951440452256393105859613895881889529516512334105898310761098113475482602087006006686156925975699552402204150664527467581725170221104608258716021201457754499625544027418848536106894925058000853789867312198885771974293668563515359208975927170269477939973718955608290750274362078424509189715872739940826678690611860363595767137885025054681334799389735156699908841290525467007656675795197591684108786145007551457781365712974999983548341792006890037860914186390986167511319177382634522541133647297185464188026026103678130874421339716816144407831724405372671397903786929585883155958751592649701863198872160594534838563069930481182843595462966638204053203026546662302889160424398404518773354356522181141802146078019345466320785342464473443247290273750662764014689599108410325608630961562233318969062035784949112601998416423078013958724929010257181527356145250027425669743138707312265605838250343703695853039216562255258032129312877208426053408333280138544154456739211624269613666912736440796573868185366491825760427547575322517464849522991955365750302370192841936625157577197670889560776740429253140759697330023478688497392992001333744418320467026150957688318051711952900498762101149372876860166401914558634983020931890894705427691018375950567819025446838142631958465423518877567841370261374387879947040052640173222128454434130988543787592346850082979032960475352626256387381427580158983643983161433501114314192390132870046019202726561014877299491067124407047072501605663702726686534151187828497455801207102461175661772651997697808604346368075102302262373177746982696824146156236834551917643650505731084921991072192567698143912748428673627476862825316355199738554883221446256022337389730461547958204266444841716779706334569365903548837653611903673309210468106627317732657486248535288721445575585331123241150252435622370633366136222452186889159289276734907615332142816797947966374052343784818740520013548374801616627518703349700330203897189444721399387350534734762933611891235845934180654874689507050866225274999233355462223271539710359663721972970891167090225461003023049029720235676071848128696319258769750234758527591065025465315351076206354463506272706284733639660067219382698840239705106726804435516086580914188353591513031579270225636778696176427746195482699208870948648464422044207760049621580085821263637773808840734592418697512588810979662208685412251709340859235442010687571469006211915504997138612417603803944662523231103937300174512780262426714305448071272996262311353896364735490631220171364486466961485869246664297706712209669473992893583635016529212721755250901238383629097550452788342362982824615589914524593266847508000416059565142900943729886001570049449508417332947628240684549833431398963774867136106972823349372248922145336470742196699668202174246995139849625936565923409771482460879742151219482617294376294350216252452763013643656650778306640738176264394694680091329159703540390733549400873588482747067469535113579922869472226284038928055060201177248954030754811287918489616749854534595803900038688697214023029036146268399173576580958419633422501570297029390411691125802396271863615785773200946658989152459371925692241020639597410102764332099870441251093047396110155735696375358560585131983888197549293269759277021531419878013656344860112832802029863775997695301746519182110775118479100299229473425468761385452869019254471859483343856762188526980960549322158816675393939629051132893824763080935530150049161213293602918711328010081120932368716238262857131503881243294323233179974388752376837243963497370991527999014283961040950209205084749242375220710251135894922037692779672084589568030958258725305339306122029868235502557646887816418644731735700353917734333519594550530759546498084306863427842706911846219991158899627149872762265215566325777208714720416501771529491467383328804219762910851777905085284568674458847973241594202074186631278695338530971128137196315188982203275644182095014594193806432996658360877036104907123819758679031865078182445189464828228467946259773045924316548909957906012312740605354853180356500217201364233859637022550121370299651363524643757540402422639292140220378270547530754069212144368156132198952607402033367429752968432667151962880337039545085273070415190488563349086745216726841558436132095417462602134519388465671910021689428202317484301650926491307267641809843413262267897165556269413388475005561084042769982640547406488047937204604208741817275517545012144362476416125488196818263301688536314516927592791868377675534728184045689857418962522539076080362359285493159372108151130554630561229947866279882121951054031741045557114038746578610329221837994955745584982218662994448240811810659208236380487208359950879245891405386022516103795241537720136264025995006365799492717031257533581382246739623374402667888133483225432891093259214115473386000483491147576064721801111125091414597255321659507594510569219098632664535858848611708896148706121768663343978647636418756475168990052830852052013852922325236094729356443158377053320411845319134112869602721122487391496638640109463546418435946500042712852705778172673208406225320340431170948602977852166719704606658673314332520958287881739909365898478706955156511539895763752718729720760084300699766405402680547370001117954971826826944297674820112440139259079643802760835571318168971316230865283435099476475719777232219051009991121356056673219141131299249170030860723437898089647297114548558819654476432393447274398148634491728633176171453079714390550516179262091708054512210423326292154011716571842538502901941061144830191681880558672074129367448343633264276929958235604247558542737191444699545266122110034333997269627474714840584943863266741906713578541241290042185043169579614498842175995645369907744792832744460469510486341461376589210160677775406127950617804501573807463109467996017551228919658228421550511660882149468428936682530757414811194961079064162902349285484920499770252889906609514988126496068997749969595095378975281570800046387264420490765544399373433928526264159033285472514696260109187668576871404038584767891193780863414169751539898699288735425347277487749066525575886154956442125903272401797903748152093379345570729555004814683311782932217785021493754377571736586402088597406426826007495321782614781595573620482334701596487467551189984835080487800046926590730687543836260694763880567714047732945562676489121909877313594092855321391943380795632468775884949488238846658149979103551824234351620620557790897535308360216714170194447136828679077956362179979284506007414936619518997795281778745962406247617788991176436714779930173150933770159265070021428627943586560151994498133443031150096906402593510650227599183049038713855585802527145014456523481819032235382690263861532034895671224294001401192812588447450484212972637634338617700899084917205070731958369250168806459354380640484475721749970231870481091274979007399798322677613121715360913620773123412966892687585132245683173411562732716641387194322381707307284943818856149486007478541220961771785509635004305124221033529661854060498960785919925820077078941922883132438662031882976212462364955076985725372237862191931045771777767856467792038459525281668605856279923234642688328985861066937829762409500101257203153263705777758188644160933071090280271635709292943353514146077352490194437684674547460282659037538045332650314331039003587188277471536877309196646641066700186350160065407113475195167297559544929979224164808327732840004677438056180357893628962296594156537494050710944893379113561106464067522539369676765140820361826545545328989677797516818444202024750121527020181549779221555793401703465997061213289618077654988526376075561407129123734190875473355368291694873605947405329744916294895277563821828228277043197764952136407976733730916528814528315306738902414729593729669927466469945603789279655761914502057525701595967509781270966119743780099912416067629130815562349155980623561035960337077984156971921203491965655824265326991422381644604333376946007476087716827316335947227943306102724066614565961744504951617837617996964697225657858235453983241543749153162516032860248059268225355985557730003431302794172381351320122961378904069375566300973250689063685842675693893944602983497655529666578738624155102773184649728273324912095314850441784008969258851072320405976294022678624848029197744098137739042216545067433690999917600686472794805646909339125707508434712109214891496052281733170350385526407445099470501962845854876779450994111021827392811687736252127629031763007006457601153276786846569723607265726207004210981088736035545103533220868565397525154284179924816207822052375570310790437870898394430663687570346905476744680185900680815494730696684482842406639529599203725571017800021090715652354231126642240925170215079890577668223909414826262541212654492165762386038822957179453025605150002334184756909724133583270085561839989571837722502834789795516107165087662465132761085752886127951736833086714927246936197131166127176864507087496905532724959714897018756675582736929045474064976195004012957623501630806198517799965764813269358663800170367120915040426233835478823527385119886143169151889052518323073083209083644342159655769170873211502091335445291403004041516855793520467266105407892845398360217522431594465196439687698889864763468421141720257197462478948746008384227321431041827734454632166175681892509837541495234057588966986304664715464967418030973755391446408593032552856019852676926964914027574285424961419166735935590110565611046611674191459193047934983669837153707697153149590972185026969224451988603242306601732145397669838840327288446376376032543339713252936769302779359490699710014958188660139971296900369689206479946590382330566656983036003825021902545921510509613839961929135192322056007699056940964903334395339746713436500910096241581820247776006808152896059426967891835560692734143960571744050620157483170259814844296307411511509973503306286055179567595332850204251757606835412513994527240392888168355043284824385905660182523257119223006520014019902121437995913032038999852007789317361942163734052106398227154529094767431996965657351602310029570186479182994781901833046606639444192747485249142407814733153102368796772180608034775462062513090861029104881853007226100889936051374794456291628663571136687768685889562306768971512045583028950151728849652067925423373064873580100941916309689486010860417326411745285403194155024031698260273180491889189078403341311210439092564915971968760439193136035933852795673900608166537692400559382304630572265666868830572195916715265089841010198966398901154537286763099526769459062079496780936390486685495636943515799950763676970930588992849436553163872842942265442244306590345341482082847503582041101465510515007769198665946700503718762181042710225627039867193310290387624133099803948461342912843878659666092781141637094396480169711183272944449519328474448279328331270320268300916165141126539387908076492238765217966882647104001032874242288527235676196368955183307464885343412207670232586557447933384027457239718944842154963164392666474064187404508586892000042270092545146786858356957509370425386169611093024420182399131558493076373594480793520853282111938232631144904983913773696953515628705387186462877914774495577206212286634511435577756472678932516833198868946352375541002903735692286002741562519227017580328218464041526195432479979179158070144665414649461841496899151638860709167544977244795459529271406403414301623331917192405199479808858579338787188411210450878231162595804139301661727044244454379456150445758520032224643864045440450775827159133313182111646888220667890831906693489707534582769627415165954530879552697586211002369496746239066428744201067756017669654797847312639032816526577908519658150670454019253979330582403835776369858505736145480067552540118931126943062509626424295206986760381911427481566793231684026315374140804347418141288190409850752203140701942360389987671849562327306058977238526644232703332659400699695020703556679741727230056135748193503032534357471713305367124161264242486351515476454487385089576820877644189452092464110307008655100654173549327553518159741852312287771343168730481552767984806418047365806809390750158238633429636586903500142799140628561736184142547320959211271431007008829905461920218484657825034255407524589222386757811233978659491773020765302061863211772209898966563967758864099334078174286343024294720371576036937561238520654624856534868883125398569497424985419275273066931650353868801942909315414212360801991690510041908502923754132017987835839698400384199631369996470129856457147077666192203441849932883748968004145259604310508081390042072932394150815740673879136768668707288078195869309114275341699045950789055066711573140084825865064417452502196795954563080673422247764091824282436865469018433444951657823720828404488380896733254747316252590083236393602960157524265044817285918103269772653242245872686090250875657857503672424783150800545805152641803626649818827953515766460464264169265847793164167143825121315501086216580674890964437580836289302605103081808647226687880740624849519659819129472126272286598617177111795614342538968035435838487910403942964980456498047366498387445004463965792942233758502833371240175918327327854948364400229882986534826258785136523266387300651654679344980656068724832706914946704110994938029809589181320212236404990672282335193742995141296140340312415335193537809321977812653001535275917126931454547714480862900511888968434696069706046991901016190756055152756770451358487233447256626892153810539309164765290587264783002324148236822220152839459075677677570003112398435856553254825353664798675138405846576722463548720016409931686993864099633814205384816811662431130753402533386453211102109685161837149054957574552965914136392943222973221353102314172299190222234957698527650668524744527674321980523298138535810657986663600240655335963518503472056682394151948682248204628146961711974302846457277797202310976854068026105286557451861332996351212965178983198896521668751590137781187126767523535361407666917086612288692254055834015615833296930072881776478131045295969557626792653490166949881986789092373326111736882557209137507848078743159858023357655884053789451814304619237861904605794677207462308992055037790262647623231963019527456573241992398241574897188104714096854380636901931628773249809050187761071609370846267230477260340529691947425964152315456588229462341254688543077962886481582807796188169956513658189912494710247854887014592568673040561557735766348732954945675902445963135285673997871126194582239517470903465195327152096547848182357627760787050503410932534172729607315567438987713373682267607992124345857927846935880081121655616600719071597119653593947736288875605949136250409516455982363914091132830163121194109554014397755300618996603680799452488195788218642768588370157385318628009557556763542524478468096250348447406313509312946578128730116661917374678142810149505739057646584672520124407108985573216645042085614872593337937136893826692510755944542471412404149301035486218911958694673954270208879719707151289089556224365966613531299277317466003094777705655758878201883840050144016259927806593749304106276001108511721658136349259915383054955691801147209630940520237450169614022574675739813366350890532306458662628018381844710685474848935041845944005749702521798457254011397159844727216772655946291754116477819559384194473354303224056363305591813645822894317301136353121487527122490262273915327633045311962343807815558262380980999635916637047371785773279902985867800221094846016394008154847180485110240315096181778364398465130906936365443336111163636361327066538112413832706722634349683824377365824909825309779031838805517325900291489156826647087551547553634567993033054238649145277335479511430992078987802464761722741480154128928102507243880563568132161456874375612089483598143461434083514149675415872873396428495088214571866971286017833596661081101749306029151632917479485706279083876286764918809689142891728977347826647708576150816787986407822532963941935336684073444975492617457558793646139201821939792938031147004961738121046036774575429839108491778683555878045680113693537447861345464285218359475140606902026736203093641330625061582378654190825980953696780114790964160676159625716386525169798528697461785180509437806325838785022988869728529963129796315130250749710073862211207117670679358499151452889022903618605679944586720292526705502815924435380369376825236633731228219952269847517473154977735138784737515092038651463008019458045574075360113764890404718242401056253308016032360763279872077634029670183548175531579528613767698375196362410733081605598749232929249431127119460544310331254989106210797845585645140756830606625957633786564064616898179913719082327047200787835232396371896930308629715070549611191235529078048785248642333320354442704352399387135654660339793775537621257594269123361356043303437651067664833345178225478971465488008719675568203108004757476973138938013645823474457686519759306297194657195716310338217866766322692934426050238111306266027748111096851456230843397548823781631703453191190493862410030600363726753161818945710053475244852092668294216894308364810205044461136188378351280387428017989921940395736416377619764596077043991229287710906071418252806523554477165802931047497024211729008567742651287029219824954610739935551541668913027286422966182467547475995114365562448406556165442043918993442764150879937467072079942179080029336081925628142513206027339241087685109547993644947576921176274573352952432122359461954958148842714605461465842775723466141189318614498209088593716338507425399938623138773500539903042896752457909659823284252123242445243809693258241883087050787432070142861902117898688618942306815323659555540388841382509665137706793621064592238756593698013308432741120866663080524552983051163092117816855574867332334452861663578937595822766947858954528979462717449059491314591796467096491992771195320148502028915998893321973910890268563302235915202867957688278241516082351869407528742909852859082262443097311467478968966802249742908741206189941983757343675186450764176815624378041438394005548777841158413210889997514398117807971103094974562733520368197117978879644154656151268600561185009016140685686727387577774023040074421932752444163014666734908207738763753647233565289068558135050460035202218140635192930379212598509505115609330467995919460541786245311884276950746754320330468725639527769969364677748331677482849442322298609661558919430441295241788459078818999340725672559995925365882187767919060500912160600214339351317590893572788384627479391381908589415713831418605705539242504781802875024033521093758366463295678648543489112598325964589326679079579425261985842642143138452091796057236173990705567240131866111580393241949643249428244416819744296504441499607532854240718734297266389277667473722683675632927124424628748475954990978891585327314961404640942908799229698334283898715007923779229560286134762996478623552848783684330414133182708450024224170221241991262128202063789588345510821763104231360563301858872868583886930161164994338436756334366605459037840558336192244255877825637260478884712963427912485829335377304271687320503930016204979947257187537068088867268088344389235403078574322579866971940416214252419793931537209148809204310142033194758120371202090701415403182637546395926002976964251491097350191862502816301482371722475011940600450183032852302261204242109138606681346545557141741522616196400339179250616925553995773010233893242546829498651093689030059019832960057593978851937490109742183724153475413168711902138341831151855469470126018767236713102100041078308237042136998390556761021347037067643493986958148135718508895090825415174558499256827087197018192924868161578012837718027507501326520008011030658505659814104105900083140873465793538633623191940443420902533395308183244871049026571121755083683046990393030366260781289244350015350130808555818736022750128603398261946723313074238903028775646235394764695483757045624930398150722356847815873556547962758347654226469267167734142941253464121529271239375816948003274813216861003417616700839211181799462293714708353668904003827710463340811561540761124783782118405551105610019469881023686853834075312602217246171016556031365353021861054234131537178176603296264318444136599985835487023339456194226939272393640007029148573525601182390896436607485963633316392847763162560909629745453739592032939518835271196242441536509295976189333813635212753032481375923204133065875516089336393140792082741979047471443810821892541895375184374033442972541622812072722026722489082641372565766916479184691900821722505471199308799313220862760736288028559013677399704982261476735989191029564128197748011543122860178891625047723953700229637659810051309877949934026424974826436108862356229219081936307707429236260898960701218747639151929236401065447073256097293487938619867020904399579232696398308945362060815696645654941706331532638648513002250112200657729321074085461417118639591823548647464578136143189139047677274161500369870947057686580221028738417359883878366192838804084220749184090818266618696940392490318614358579082475255593060867797786064592015098292648444903685351359489466847243185150346444027947438222653320422641330892011349292355604450909419937485302473125899957046807510698333339793149881825430111585332711875950340558294517687785482422365291527457788168644165664473777606126695704629570326483265198468111712859666774512577302617223190951377974527683771674466041455276683697431772437084653491319692227954591211135369253024088737942276963845177828453369252742645650853813088725918000897846862145502220698508231982851402966962306364320699637065985715629410316445855008001049506433697319932160015885972649786583484089904240429738386363540452255549333048538819961118858133072652047453916466621816777020543470920115174030698369686544589762554210271784934804780775774292533990523878304280813020307641439528676547583844092121272475682017005461334105709528409239691682137959303155090974659881891093122246170727578150471930698694281432110907800077206246341278173679785658953082512269654851077652355776551854702799137089869418397426471408690455953749257421348537538790610268244912166822661757770070474572426910390408565460724369599401388272790775649099604784575316885712253353541837882717568522892320950802686955295160602603717956751019196158272513069688100107174504098148377820480404913832955114376178206302786447646198426070566660753373317458464361634293138521937841290563228272316174832990412972539528783257702803429865570110305001706933438566457421607245916226550359754245858996441776774221003072433189421202082586875660150902455504074312018346784505888639639588037072144173873251621036784944446183397382926534587424743121313867380397957316049318913825063858503493255823649256325219509727739543506282287880619894521728692374672840647473101915834116273545939842606793853398933047798945776781082570990767506206622490185513627284798969161669416003172138686304703311569666822429160021771495271397108611098739852589903834501112175567903012347335734826630204268490862712919176747493774441349534150848372359911320404807943525491239190691777656370667722366766046669058082300205251588513980829367043016110148830335289217082117512597231186964870913867260185268919172821398066256099632512871138479768223274101596073362215126151602925181133662509577916521531609701091219902669613119711083935536562868883939053644904998637845416570806524006100587436526827766770230438991326983828437350342130781563400274693630580682609980306669901935270458399542391567007177173129288055002597462662677950880588581254860707061387841607180898008652640896885485226883846834109458438376641617833683946381992370590649986412615302423145400107071786346091710306828564751849267749891857247974837052774620705413396475944620965720799171041020236768215379994429663793236676680457824117427831631785412375265929528450801587134319218493645433714197589550966325768082557435907254123751744897787357019106276148787279424654419200815437015254102661117668575559206929910448440037468602215421022505191776303566793558022522455257403822152913187004726621232392278584943064567725614427159214262251640917860816096396391213876056053509892423870954795833976074397586356143439149409496602123094817359644051358760660207643314087923799385519582691230323729604339206725735767631412161711713945842384437353912241599057335354902030565112342974577063044021898905173516750089990829869598373319828929409902203338584268083107665682154678181896814743736242768504416726673099300686239534163919524078383748353317420543907873748068915700432620333460070665996883132956488409705478780057890578494301024107794812426756021642643248693657160517087978326554512125384033590682588724236866309013710825674754152433749096534388211074925655177968007284306259501452109607751202491425709788328816172419720710797835230770570564967416336852323608961196035843563034220278190973908747189637383078727655643063897497726324392480911047744253293459520173172821273016155393136606044048796225329908101637392367364509300489115672038416057470140690549452682239646986979572208527550204724365323043607686923049574376573120498651997172300893416361281249491837340336550486692771309510493525373216999875294304644777460894659791396677889279692768490942834555374794585964687981335029336821301360715272397371526690732491469411377209798924700529505696725234468216696534238923318611987363433440376862309735474865009497267593868342033313233073164725536622330222048264269016651658087180721059125581180395213258604433651892204873142483005888997019945696125525419741164550508905709746206673188141495800470942009629665104252859229198569996060612253813346159174849821977074037701744939862712922741435683323962257936919558050533136311481891957043990062933230508240973923402619200362907255689116844874384187106693197583457377146976463604612669399199891088000787717649033896421020498406123835450145131929520083287711812613135105592404229880306452861774985309745572345993699753185006850423669047177993003638556007425909840234703811501370097974914432222140047238806991136203498668774044130954212653232147980115333156541570614249638157478180024191476575185193550550298894949745594724869396781462041785976359122295589576514429758448609884090817729177548435430149411279862782339022515137616574377977773991045116093973506413199381151598816508969260817031436396374467462375213641285265267531701628195427853377126829786443151322382385402618033648120605600076888658157228515965983569277065071348546208551134839695112243800073553396591410771938824088650664449513058218195092902099020299873246546837942341316541089815297027219565900015888808021560870398077665033533606041043025457418860865369404575723996450156026968921675991806920854350758395124097098625225591588675350910494976780228063845161475058824108489211781830504917587959224048283156105486350328103434819308287449726644449387004179741055960382665629407181421011863274492483731460046188927025679776646554259066273906246547904399939016088598374488955003439340442131182512492213618900721859269468629051794061484494683060900421657851615574480218754491242832760863023715038086784698137874370076068902698196616331141805496980767188543837456867429808249960448715670983223705033498924060768339049657774814026842014308933087901351395220191705373576129511827267542673972023482314920309292044086210753024170118079753839825072852106664150254170997294280482996095380057661246540441357038625757409182397708887081109150425933938485670255826795976119544265800925073938075890775275057026625050717545987498873130837392166520590772453693418102125411379944586287449131249492713987957095776116151325999132115729709062926747384447105812210654839658925526454534766718145567080043269691262527199452710964417689820752711184717766709846839667012329918989384183846751406220954419974621258780021647641635268806062270213442247860713379638373386856761565546099642916167907448548380249101474183715929184062333953316012475185963451731168320718847265271083510934529705465809166877557714738119878054388025331587024968634786371611289188674174479568037413365637585699972395991819137089920743705871050841689856321525565828750615237189375070824501240465670782702237510792454815091897851025261208029751808529417165484192865085509664423287560311406131165510068141229926926717868833770617067407242662399479451649894732818718888603574262342751609321453680789478751199782902868761033466794151887847728298317170375468921758541502209354313803894755695757425264202208476231289011780853719455414869616497293845643388346987285439607455878841944425675980451505451213005662932862641557242673864992216922962471879775002273582820266362559479200980120707831684172585070363924693982269861753986311683997723420082914908070033607164799106629820658679887064127972934295873297848952993363628255227671380333006208713244256741675760258847223548980483049326603575318558545629399932354400609899257751107465925059881347269741202394726137830596215877491307950251332565943143540462376689223367073320481932568583165689710687320300881199152229496558637475072525888822283750027002233890752741561707057043703108039203393929800464286806804172252682055240377263579342347336059029782263811084158138767234344345712276686378425452778769070334888610334259510831288715018823291629367265935027099250645941131222468811544911625344946522277199426129675577557263898812833747090902782143092420891089098032171765204275337904693052677913876007709578452691170567326072948472822679135020764527733024683140542315381991297782223343263954920657532782504804517053932739899262671829951764716047395449264570427378946228172373250901677951226273702297559891671891245809775070290760846641897254441222548289436463111125263172457265673437208754028407355514878914707008441459092849941854962445254712452746005067040561958555197469518947647926560984616081879866005882373115201434306928539013475429567184545855624875522144442975058604181464449130811427113473533388759304422160854933488652128411154791377245887604133950665508735340153191754217142880980910017759006218435914270263078485128127933240650472276334378070688282883502367524030048951507612566203420517555703769975024285748239083874870693086006969009480932802846429992726938731589923725900874719858875728990303748065483607223039411409360109967016241129712226552315072480917127753452945503323348146023137373162206447798595112234149015338646399342709451241442112225969702735343758390928984764259281157325268581357347188300196924152145028255055100003595084948019377917770443602059400441155003868798241970836065880327817145460235088453147715123792653555799320470489287811566625677351698623766480904786161562667424461398807063180857827309944333695035189053273675348579608139111468223192865046577700698587196571509342256615226628366709331036056098605793202717665314748276086844727567940542386425691127470860159649689002215482765411182715471571024546835364058945569004123635378008149718700370844298015313847964012701323692651533805146372185159599153254490125652836084446264219135256389707532495290947546874167158583877783644572971187328690078880677026426311431904375191886575069870471462749157344804090493553376255691245343159452327107876198960191192245632854822921075754864984628666578933561869062244010538893878310554494366433248833153496283319876436528050356513123314004835645433172412722928471043332622683239082576612705047892220978782875368528286440757412087786625410534281270968007307160138421926675333840782614111820085829388667195366424093362765071483915054012040568263093773926639869353190807197489474809773317381731724327746613566473381165791144896964315382341788606562886584376386377950212370713628262669386192375118965278631918536743338694110394710106237555500445286930501705252497128459089714546111057361320683176014324579672500154475898527765929965541299838940133237372578776953188266078279312285398742696367927304369375909352346376380932056359440536819645169191029984708429342046629463770253248932097555597572847681626124787252381035823165589686557952621557678715824364184901305678205540901019692347796802402534682396719245072769463768956686210536147014426911525891819178130545171232422407877967412001212214968932660461775459204742226068548273161339997994415039630065104808936823163586803763554880912165553929278542526098026493772005339262702605555160829819565424351732269231709537510931940146356719209269359462647166612485311338340950852280534805901651512278978937275269093704664906576139737222761371405947475578915096844077243251181201042779517327127418120737333531369516994017093395491611422962000283423310388354868137572623925083030985565889371924409256645159329074486587266577682832257651702128147785927012991196811826989131688859195376793432293659404986555440986193660232673267867090136560577344221926124266038148327195017370671884711561272815972982809323185459471283577348350748171077863261141386120764511616379859071756096969894999369746660389297503729350054174434391784297911190716349339782944145730669249956461178905315080921139630165184193316685865014760059617416384303910469068573486847646967821352116388020526379165716168218048446292023310705426601163097791306923625011996789505921973006031107065760317389656706454764927003037276059405138779608287129588836402587439470028642665913625151225258429225014827244502846172943009589501246678923145625390733527179539917737368960212686293201222276341494063751295142374490328864357859832948904372955971977243895110222118194667048112073220233469207515960754892780634328669595725189091618743693835519939226933171527439343048193786800273911929421964819812226980009518354575038825459121974772231437238686331077718006565934712113888392059458342085509016238721979609616403650919396422346095407785043757880033476689414586457105914759502379525269283101805229955535482573023570196781579750431534759800384953086802792849108135273375784108586340140545728332628119135050627312035727863036374663607652737492903533358201575396690467465686223361798438975856408328266440799564907207541818066676499561545471465958786451648388378423441099862256949202351498636795178445195290439814644776500625381726244652331725099571541751031994426382274047192932952246370777647233873360170708813441755035189382158450520983923862611876211599230804699632611290028676069808770118804680239398044678249047289716208978296892651603585213865472900914502038592676694007072260065920010192394595293436339930855962778565299144310234196999069579729729748628814175415191977585783595931349044899346731904896681349222768966393243750739570113823422872462146964146359562181547399328935727271613147974031808335380678899835521586196179559683255184616023733567520569783259632254513682382095615034859433712828824902742052714973512370780604058649649712879247851818090793677426804357655276012682061880897062713920978884151990162754637846248861367775016367522463981374586914253134615618863424690564941555474157176682098992832339434843116626571525107385177956947480318453439991901706488572252321016979874748477460540378574987309114251527092656561463412980301435793363722439419314209575209018363785300606983628385485904846510344692973206485864545176658632525018333371927384654767829584704373405253204720779072408176578830303627700327908289909426412798542129340812004566250842725322820561022509923114361693856359638698599139971744024436925090836222591658767885085535782979636822748221222389463821286889733650473683794000031572636203715857564906366771766012843698229122363662965160926802769250651867111544190005659120668756227830309074808501584468503156174964405860235516947849266854466159306529143300633364484986307763204607865221494426952173075451280332765335205713476378375320578528267569515610765177452656777561496537437485787657340696307324344151725820301327794990256441275560282482369466978367273539541735101453768473525377445985945239027623358153454068139513745347500710795779807655052237055304582143337172086982359171276412539633099665035317722180525580837910351104447353563517422655540010424635161190013955789288174928995810255391756123979857167987664039778416615900061235559832859602846373183084955837297793594751170206301337722252912859139881900624580199983447738211812787278683135476943190231543314547589445018601289516234816506379139892018680612579883651798918178213186044045890607862464332959146771552833389713048242288151492498843119255177840699305960418220747503278584770698603249380377656620950830034671662521595778096284770836126730443928480695618740865179458735262373965604631970990512957561867407114995700176726551508620900037183088239643784642826443484344140216915054600878235734543867847612479076534897979877246309677496997454123367356340166133571914320043884721264365506292065946295836570231929186796317508128952187011240238926082650350776242271766080636387512974445728696270142524580007260433347110195380438173610863654401432770466362586804804915376391923779234304007337920567327210380107599622635135891222469080859277636374757437625205545445545879358413211170483701233190271887303466085712179205475827900432750837717430617393296016195704080487381377874574718753672494999028968471556475154061431990399702238707755712877128313231619700679081349201832871702880773375890339311514749159256828450707117096763131538406174221130662481684014166812013265793778799151030202248510235312509101279231301530502757739245141807599762441638985132792170075379774459074049781036848543780384869461709764800398747436052769290018260046665151709121945025843379912858802030995302947818301974211541401769635438006297999461250905214055400591879180219440219689417299398116162169034060390970577523851480850044276547641335117921511744606243495115004771298757298605194501846087185335511139396913164357839344317803372469871170873778684130764058804041604841479275408301023531059772264543319787749924551327604424218324132633321679067224338626880921405526319382611972088666213626974436470555774157827924020578120296077717772238099132186677821672176639359788893656107843539016321005421452826274193535993395711004751708006834089592508813822576832073168717402191689179239160537470676162139372448488912695633944917105320943919608468119975807561947669044582665665351363987922518787318875336915919770888244396243426833914548609764955831004355973540088277781454443983588716687009030685635421614264697953155120529005077971833869323414627752404585595339820349110316169885062281009263582423198748168294394909498002117415389744905840347003954956100122886250687087513700819857328147287030289996299562626467276899756693014879034745007686213051342606506323074906703903086432057606350425439744068627131453157972610160181231504713315106536347936150877493877463622553000419475784581389697925121599330214265755767340703753250611119627684983936929017413746493094819910202098496901927354790406155951365832276545013993133731161907965843128279847013341078694293132022736234868657035073939630777681395506284002055570948350602572975749525642721051260968838763682871458446356413857980089592020299657534605049410789282666271484674316424549364401005182739644234315278978058733503361687353751123462144256195932325921684912208751448554456541710529540360511575989369982969475982861591764909510203299158970845942361751311422804427615042537167455864715400289211963792165515774144186719327029271947683307308140488478455841015577936346812913886362641989624314762208070432789663796407896885335714509951566220075763814397229337321010314379069488122994601950876344680577421614571939001013632166299586104443484042570657617891044725394610080907121391799088137931953002423205560905184683343997156985333198115011011699835857844271602857081664339370560554456209310773643210560311202774780270930421052083341780915064149585418224729797630382923426730178647357364559931897344190588323383396589993770448964280332131435544107670167427371981946492154103577705563870394460688784437102023947593853502579781232319569975915382461501157418939026405551470536095100114132351002429640417969356076473427870671524378437822667759906781843261361893422873125740949548642013413989085919664960356858632513390714242050498879334444660640728343013575543474970352559998113609300545008741015498155776545129849328908370655583193499461777881693136746523973526370410863420617949417687907265629727955982078856336099640332178460240576885068844750765722239340760336756266065496790061180028120574702927479400929154527389977525033990405854838272032021288618403047898753411557600842806234723961961406903825233187602366463733225881841063348096247927884261901100255729529813552293852857222573501420745916859584321508887937925471184757112210230694687420795941596514961696382430786149778485376476420767678148318215163778652456817774092492616931317598259638611782720271455573036818727037582661549428075822491640790689604561441841591498902058718155375697850121838435467251967618132534403311096389772995435453547114373356640451223381238159535003429763111340973473464747751809363842738793208202989438701385471554862644015186798807998057832302081841783024245148100728748218461224401882846067080792906080334449183261449913137986684543865297706748388265222044560665934114864545466521857303188569175565923747092158377961906934244516957797802260380607337992072761123436840794267483725923375233210042923819431495002955684492844563565418017643256902764247817115865397230940102783278565712416212898259349069834199296255444218658132879273452593338928973503830240833248485544419511241194353236764266364127399634851164237405191773654741785384942205014415865486033032620132989149542931365726306118066385172797249594521011941188972883253742131464436704663096927676055331314125626336009145679361997549928404407519444881295089489280539545556335336296110858434651640865870554610069111566503675846783454264392535458712389866675956420126405197897275967539402537136335751606778896657137976006652425210632918082935112316353928163169769312344156845080630065319167181078050833941056428952826196267073646450920860971383292227519365620160198019053614978525198980950095318440317541660208539503477611623007928147078166956362288443006966373689968954744699157761905957220969687002557846872443900951233621512028655102292224330547245450678740097331341798675554124054201198926821160577479463965489430119561637940902396628696239987905602983256649814923001246974373351709525804386119027719726954006181008397362809996801031159464797757333868611041283805250165711537405529185105367499776333275144331659340683005981298487887530383548330525914470875925527386635798238950521951939516161795153810609803732688294149399272976678005608881420970467488390852639600367071037366194551652909268046617847154404348531010892308331868377314963493044633894945084053782332471459416250917540726304618126307832462918385871150328035890122428100461961795808149223770980246599837951825962802220179516590947896215914413263966784673203684585985357816848252165597568696749273449153956573891231309440018259972640658473454614516083668405471309153602850131445535512754805602911602722544076696000277614613491659354961173951415492632109841175197146343849124064921671735215556623872931616467245682089629165538541033178841599715750134250426867739670366840193162867625875928022237092866608916985015334376423621031016328827242807534166201166329068248011388938804154053810339975213375310186008238218380298419872715972788036527390073891310403615951684548037696316007251428664125863558817106478569703962191761698791317010925007393750993215499215905601030714500564347533067358097283531960174466227036079478996122758299387908235175625826715263128328693850530477123632222502842625596906402431163097561095352245878660934693953713627465212700644643029729515121342778423268863509968674691370461153735511518827515444071374307781725050866296096183795198448953245048271878304970622011701828537346146918180192798722596519529181741745335379392990680281383317880339030888170653012583933967572180455201943571757822301437689485813205066222282661122736441706687242955787612828144511901893963943892460631005100564143296904800217575445407664668523454876908599134184752286381464905926144237910906531155266102971888373378390737703728716543677978186180018827348476430680191673630788439060946540478896073696001226635774299596798103070388589903884359230800692335885512247838074573153459249902517614034153495143695533035527624291477664922584459841306427279010413847326065094213935505639057151128061244777427467575106312665160356746740544998513038401476864109858976244366820376965753200393263238046575920727950817629691503088873979815767794335143961351427646066834836076514535162256216805704177074124953487467822309141801242542049547933392203922533790799292203090423249654807504143334788034064785583910776664899639702573618977760588681391095009436095136336882615797175410412411410468449008357320239134976388309250944277094946148229470950706638518084017471881209355195488278358120924215751834215944120578779845933252520781724536098798474878018535617660830861590776895598875686396418898892172108078428270147413552337845098741922481082778605968411369387150308487797169242168352342661840027084238043633474833748155793775625239349982612289138733569314163240703033498175755793503426976220606503568461453969122612172774529035589222724567666320826617952826031103841019604314852282366621280071894669058356950038089474959045900016063562020347737930912398434322993991246859016312105223049308873423416102770419662576208083667355635571251725696890133926456145192736307557006978920654632828738403677592589688754202404570893143834879696045678729267058845652244073614834342502015035262110048458071624427792537526284836409472057406488293526647511086510420777571202888983545807471322765375535236497764589357133649350981073322693367624238212163084386876223794376705326912556614289942801336012378298358504819761593504379984004651827005380742314330087364772672128613904920159231877625823700456507628683458964934392376030369926263098623952322532584201490652664151429909429941888363547349373493368922277156699057688563363699002415442340610495122387967952284865222139126299478439114203562751292124826512844005080446918680714732030619648129296386074306629578607093789095115802148255548981962143279431590816010075180268013127778772573430520313330395513128436956111038317812830141677971628743160563756922051283023671994077342881259919728386207711192322766744830515969808396450381772645663069224254670263641895560620173719028412468769873503359219221739143188107021111711077938941733848580009302217669785968161579374069561539616785454782952996285423300283586340519356672499793015957913958848134058015558473473806887513705173656318149129971423208290357917641835382253415783890995861890109685043187940842295100071048084788809844041754484015949750142595206869460084446468609787707432790416883502367616179747763000379168871541254646351129204241938834810570809348178048010182712852776297159288539199799613443182352543216616347409186863512028403909658299613629942892249157369269025674423376288417443612758246658872683147458313031780166962491784227089853625556991243179314177621954194113811961768662767400439823907693030087257988561081818097702630277573974598424549379885673293624821011607118134522061391651361475395210190491009486496939733706838882299791481521552625752545619055959587966835383695598453720160133602871127617298056721662917772655839305599213292603262256503199025120967679027677498785702217999296926012825089003058298032511382309043352055434072909911566533726463232272103881493185040860923204464707024013462426473950938924250475383835678123794642784933384651340415975461353306358791444829853288102661173305771586503216834259342234091908669528977835708193527433982876510344469945947238499482823382568662003692556037556011557226802590068958719371886501031428528568959786620943483435408097058718582000050764915980362763598105387513852214349286087007124841893573437876133802585767176559535071744414697787789232539100285451417900273373519815421353325863086221861308849914405827784434501727298382803826952617405055313092800096980917979940424973484076959197385109365022315492698287546998448055414960944903392639957331331533083192777090429699608567295469072393611437916723953163729206666137247628955617192488903163315572673133797378661057827709387638134250628406068547295594939243462128344487439570782990683473800600822149702951750810193051415251846036977053995499057029165496513618013459486904676403448097365640185286867563424521583953034914386507269368829552838711452753903105225062101695845174905446634501590966839445132570040322178726378561822337767418623630810030656488650907130252338799250581296858275425755485985375513161376205503067207530967909602506709610337522065107465872530631546010308361298386491118603614256019189402185340321950072696723991734578947927330800364937111337875339877049484641192394217793030744700310889324338001012648122709566705707623477659241433490936287930522316753180329063725828231395955408823859522004960123673875531491524901200285507103659956088991262051727279980735953508284009871026278176490788631274489450430703819724623756254998685591968613429383625061639250638416869090912491493992030154094590918372800854636593291628237790037240378565520594683092509531300082809522644291204946831990279909113024540493362991799304238572572651653418496238484683782745911730955770825832369499720625047205822063048098606767544917058085190654675932175306623520481440314378073211327086346885446465748368235722435398687198887793537366327299478596797500856265604758578372189405626875116611288471995639088565766171152248554589654744004036468121893368654584862027425884494939226645512662840527254375094686826285448214503852311618640679647575492899563675383051417631659647902720231498822310380853047919133874416224637825713015997258426051330592837828230149076412160548664602825924137823999341427050483810232772861657542773347685751228957148575895396620075240500946214374126000170396973834308027076755029952027588349221335253580629633977473253777555621235525878002323370619820914860299044993421627846410371495194819267242895035261274440112151962885167290317551475482949640271952560436411902376706053423876971330094457634862383358846420116750254785521831782790571409072788514045094962780195589536472024916011219057168687486357480483837004543747508847413125744261623856868307922969203922681706890893448476801194795208924432258311888451812218416657139504845113050876115031186634414985852019526022841879279331462689193090147136063271421852759872271788295445450040151159787506441534435237295898854209852190114120718939330252003866388934774792429201915407516914814439993299745962585040117466614680129254116574480611268571068807159731703197934477384732662949056166352649411963241406731617502355936058785321428644886784910518405154910020254115533018186717954341546143202791974181897189859062816160202709309598484987085177780795855350996491363568086269313243112616269827518828871861824458632582219576005729488710549920004029256987262030984715914043249355554457656263543435169061423577559626638568411719666777708575776403131157000585573407537372141123551764213748124602012013305072580536440883455891635270909295793895094962920339326150810056223824932788973324147611286585775503090771570512083331701273290953921761308610004044097419554393549077129478221472028800131552937889576533459540564273566412169960284387150157458763588972459605947807260029260421437181676135142543975266255422868574825175545175179009624559135413147642200271251853471300575750303514851475944465791686922260904382239260985730267679954933905337361673877899550822422123992343767975435797040478822877475604791867248402485717351501498767600130026171892456919899718263651360480506748793864442023656755698447933977327084095784088826540038389136602420026114161001932295573514045091984340237203802940317869596834217452925889014464234450687822971015522833832725603727715524829054503253180030257581191429367884721585931632912883294470720559254980090817589944914361747985615999214543562421020058281342927992695983845170526326042882814930472431156265766265762475023592407880273643199211133274145679313526893784083421448143854312155551817291324086648450950686045345551377672550710319486707452749324902755949651638103687108560242606315240807941264371340435317184653755459940014443982674284393144310113975521424744443498236722368193597180189420002477526599290340379125895454910546073836935902640400249434041696770462366722845249640845115471038277813374842895907673349416702117689773032721551772839228414926605958784668407933681361992061346312644080968624115893679016275458958960953566930517532781165091203475502625870639836610247698801995546489013485618663697034971610952089253715815879961532681688582637284245806516092120735337225259493859175732523106558561589781678130202337289700164068296205416099857304668295856591372464702827405873279246723140499003020288623986102157040917903487744049744817500011328862221615097492276402289905599155705883923080559022391492821574110529296705829345836080685718617920309115544105897839862689723913156459694141311338975309018465990218688799708866875232333338758797874363111936387529959703169914100428570047076538312085230246043097704044645760367064110410500146157033667118552199743335156708667003897002817414597130562795158400074311720967921334871850091830197650579257378167681644458450040550055092637842467965837294970166850854045428756254982861484156345829122588152611798921310750550588882590997467234325015741152034076099078854928164984875911880954740695803082867138699970383922620054618918722794490647759393488493813180216043860121952914850573944857505274757777031007006458756962082315313445544931649837258072460598159013829747366411007280995149892310247362198962772617436706492979156869761779143429048405740764603878481313991273242008363835815781734494435464631395679194264672085972691644015335295829662818699466816563145250159895476797220749879040217414699884043058774605330032046374330158110492055555611083759154725759068929601993431549384982319506151109730120384728804727682222378344682605330920375706076660462394685373352316931475168668481231909252262127883696186073020148923937105884000753163316155609864943011054460523669369168990565600217801764675621833428045645483900946589280105061770315176347642854693567319512687815247092782417574687570611341858682172271550438906301957666438408918296854043615254957397173568676071848186123055275179868093154088622780799841996534197164964277948355973696154396233902057060438474900972507245851271256102945314341163832974972461444342337546535547400581147023227252822870251154692219811715011350744866850756309873975841145424522714259896504638949134737702086203034241677692632127400096870382326226050649814458926844628704016013952029880579243508497875825890383408752921485833951208611293845515070892760391819030890363069418864907748486370169786584376761245782202951066625421793453143905184426975938650605892229777106900944382895909244753471417679611473720967749568843951594706179546350092345030195642986801924020062052714283300035908764571412718408208983205151536161322784122642233096102455262797732189079115969633469964382684085766416539589590727285909769396094249370671105849450221560829712771025077794832434473494670367068383176823075927506962867127483570484985275310263109673811575477103935762805427132529035585716005021322810208792922474114809420017962903573611472242568798878778671961135724092449548163841073412625659863312050454514081859185812509943719870667380919457344386421151545043499015856571977414417355696019488168882063324305364294375349613438465041976274726364151561755126590912770342660688483317009173749674276510279251352985339611744161598655066719387683758492705006241307763393934043475715686632088557142492267395572204861573000184927124319825142570256560133339050472637795403164836554002646356348526028115617449808419418036342106484805970732368084046504895971671629916150258996802034166735266376214141087573739490359557882822996796621712167906673822284533825120997266808154028711724733533422670296192535511422841722516946483438976814479679593495416026437987173352346084899617203334596489670324662738910604956756380913799814191358692272377359941309517593716749065867415975191496345628781157247344491582586098348532052472792130002440228915927472737594973854702668588927018097363441660052829750145219039352909930092665602792403411536671039096940098540664968129052547945104186771872810142569039630682639402090787100720089342461010543520864129442259349082100048396682795618480377226041796006529491731979063339224190706020849767649591081459163475813189847406064735760188962614760921688632358248160144139757031096157887635712502347268143461530508718193901097934606264424924204385833865226699301035196920096028477157263781797596425027852480782187709177827463752971965373340789510316918270019967917725307906575627061656077059453703470434860204866991554742038205505670971644538186308992079969377412143939691302953046775760678285446047560418273559484711626135003175224416114940923566015318002142869917806451198879512864134333601169962312358033902164335607068232470004476132250783419270575056634971079866322708109449717167868322631203470437110781302623527452861520929621279448141407780529788155758794150098090449788808199217476545167873272451729116700015295445727419504999435938318230051606068115262880430543122007369960562148310307666702268054897773664146571943496807772655757791108843752058405697295086411279947043806538662055870662610919639639204462478969698220450126930004185818341612779657453367135685854907652812949432616550547954868169486931679830739208129886806709196260247170043847700921953576151886189433694235047826537075674048388934571822959740587819197640776156155993470688911730279006733962051370878585985389650682866592733070141358796676553883270603923627882832553812600841585947055634272818046093320778421799048315761148547921723859923675763345592973922936373491603662890451259498037806079308486723316440527554085221608919454908105559870221790178575690377192371376472726170058768236636956732235996070942052044192377641292846375035843844543548446447549512046735054392787120645746734005706850386742551022534133262559789682062018879189659190181548518392634863962652934545147226365421736684446596111189955433161648800126157018832712186694556717392133937527174161257224661830658617156765676531644885963741133315176883675130333416797507353853226623857161745509525191833145136151296696517924517006549316811697737694179006978186826569841104910287205878854026559216968972984522824838364212024429976567607579619089809980459517472338299075618649755013628376571684116566470427158799058204173910495765630037598089936553423065566157542710258484151769895577695260564751781387306917623194410711063487856401735074081824731349873304989261415415748894600045468948610206414800177943596611050268139759100014456966804236160944025519901644700699192242591837448552386460482111107324037775561768170783969647853500806257467064441702113191175010331586009975444369443392618998956021288339152204345363260941624656346943347493797877833342142933354267098055366788523104007326912244686082204420916403182266208719776010759880309753458191188498496012194531452525597584540273969352548817127869958372550684478035036555473060974781646609818244033421590677725544438938453759584053273872582398486620536943753063728784240533179264862872792382964614430025339328613565125178287390659076597261950844664629859752271451141485899593004939259774758762216152549703563011958979897722380635970399649013297351436205877986397537585423861433610388810842428950694894671325136498584649263387596588525447201606322471380948673342038586324751540230960667997770474196954486595177324415975286108013979628179049539203549177650888318961319704101840198383776347615545410282026893372844309596497380770198701048415395049250753653138055841678634437541700238241420963482635895177149731963470611311882512049977201003889858378176217201010812465465373881470771079112988608471993587784001604871652977311136480885577171897743887692086572587689486750503439025593958021287990982813394543016996805971794674360220689119216531760180578722687527174562226982262906825798246501471826648555178699528109583341294256765120982153658206246357926514256440797546363502505145930114820131492975973578199528839231948725058387082325669206781828237043700973276730729012517284743516786660952475486245828925661217580271278435995432192847504929290184787527691603274424456777032697865887723497079069118950518899388200500877553438324572623860585003679824172522537555691080696576543609244416106584502428484442300062185296704502523390442399665086199264646073068088822161152625242023583757695159018674530897703198418608089410770427157831347280923999619225557161736750640250248512471679851159708714783127147921894371693860735746429796040664502235858683145536620312955305362548674118101838649505345491652383068816040851574198366053633924783392128129217322981560218106075773368677828475676605145139891544954342607536681592934031676597247759572909085181957451817491021782176932451182804963535935048304494508167766148434831261871223029556444495707855179399683159038789645629933616640675410829537271156421535183514914591067600614516335135564474581234030773407758152875855371486215780648331571566405975553162844298627981362166489849497888391695764531810307715487020879839150259508138583740564276980512719750467387526070522017506652621630260059580483731427086606134828071858220184146739335404687724833351865377138225539718439728220882645700263283004018915581247506797602877239738833133618279181408896337819257446228059338628301630645611366819642109745767152268486049721171440705096838179800986458167816689672180644795495738987667187082854991757875005009521596759291872373830451025613229404155944974141443111783885918705913325268404696236925925232467876137862530083235518736971971426956551567322228003996088816956484833602789153521574865437805946137966380160008650966778221915776987276197207661820793548740190177729589715632027236228201774682401997245645136137399312721735802038821954093744095187817467427395214042612185969636526259158418012199644283474844656592157652402157536794698279601239969615264606361976838293649780662447833936406393104502804721872814378950545732219953677447405668923442827367472169581730371352165819874176532479495595402758976300405036443214835750738867126745091683991849416902341861942717049810524231195522851940268092522847512162965453964329830502134677461751718996554537546067640598845723004540569575467797078021933104259344837229800403473747102105680398803097781810622311377394741446894972558449253203741721653657354632577007049213576000344286324146175645010255287963852249675464531528681416335485557175117892917520360111315200560966055180263605026837570249435597340494579142493534199875169020726193723001537616581873071448522870035209671642004590845413254893203476064187729586497123669688302739400981068260289803463017835368736590775292591619272823917864190011859633563988691918645459617937151770262435923263758032390306973792036314155438426418731097776145507199685018048319743955558480848729970712231802239795422958831248975461755386792210720276794966865121302407409955542062316134076026352545631669017223703950358026166419734529270233885154229013227406278227677797849855106663613685466109865272118592240042650558987904613910232152804417986928924496762736709059268373319968975107388790333243837330882527231548244446518041422206887713574010654051363219957870273998655905130821147064980032389677156345774336418024248124914166711833863198026175639994185590413543516683670622064758119394284996277237366172952141297506617132177870919904453051851748846491381534232740916003318817794826455988604310183922116189354636456215622587699350424421343156839315053920965187013094677194466010802223378499070960208457701636083848603314165624141720905675224679140135892787290056360466261768113581801708676426957107894244355694968352387407227418675448984829629998078945787105240978546873045042614426456647686390145102312501716597896467731393273146111120725321344229263018190748463147834732639270423825352893930673810210396232240118676848549115079410176372803454161774132685501706800443195701549483278512854229186233897749087016587618622940860030131747640782221208477894736669771082036853699976044589563353335023380383858034428090764868392176134304600894305258253407138679246938634860232644002608757545522443639078721410092467133746681249079058570895223788912105742306853631936194885953992721921351825905734635684075279885441762334491560624842395646144716660444711440302313216070182872189811235568276298792214676755006054198949914889359063687936342357933067321808089411084816723664572255984357067805637658736911261130035465975944394758906667361817100711368481020669495421794094517227549180653292260956754165222310961874033451079188689625024163687836923483367867884381158103187110286973739248467076052097571107199669614708353957157507337212176907550134410728503673259041353645292529523641239007932983758678235690919599947918536446122952630162628468831348504014006984582949505750539867823003517435771529526587427823228856051259156332365867860502791218388568534647270951310242921278060142238016892788545906509247763339942801839450872140356534381925398298139691338478898768267641823536989316928296459317230858976591563284294371734147305615827432429309162621717527940230396238033513163338996585161828499128234239990653284463531499881382813531142901356175535101758022010450925385434048652092503220712379116605274609278876218870478861824303602569248509258442329811322665820290092465349534057302194837372571788169014599354355958678170148933794728024772449332305780125971097365409676818422360617513983914694443498578753353300961751622483536283968515370930623124150253301975735167436368994955037675543915993534132256690231376802042184692246027033695595965419678836555139484772570313536582333031424138331764718857530656719938818947233210369317590114644248174223685649209714557195083830411093279493387512166427942518266856405018639342826929132986357160946799734661395622016443935134528337969681256860988026605773614335503980708915534927584990727485631160219729448291758451072040267767261583823896020895947462044315243752479112534033123485081940449319982949575754706533324357439215487244017547500688313121311657779290920206044761607764223254028964265391209455226468453676343767907437599132994522025812260927199979567914023013989304468822468074790631524898114951103521191656779866451259214879969225620432154798678701201827988554005477322449989603374616948842686603633665039624355604593125294968455870970752844019444953899419219826195623178118887918138608935708489752343514472394780428812941038900086559758093942957035452181632272986821729620595754184211751850017550041292935202847668695000885725816852587390684922191929169071474583892766540269418467835992353814343691348777321126246327749312054095764477517792870022246411151992115878793046878888048252784538835630727711654397403598548500577504310790103478515288123543365825443582067268354240740812725568830729067415966521934674912147602861119559232053182267537739224167053976240182334635078343039609266422411926195703504308928470641772160380172308059322087923182565547999277073119971001614873904248875428149645953284418101547306525721505887381197512043599496732626962753052754695325166157066790902795713372172059042228265172752589092041058974303151643086370776571778321684364789530887108449957242302165252665581767121672956105401537012026512987942759769364552029835477912974960582438618495498133497637392711498896229356578700547507694812862126044855941351449576337503756267549574290801291843689263277772536277505494248479651884961349772410882827278251244543172144839926341535096680408040113496014739309066239798657086717088792998108887002731500099385179308307899471287729295403448680846890464343979269680229495696157006979382230846433261707263451597594410324561917245303660896468859345253785692499728086141788324026199110814358035001730137251611057439091253314586419980479263175380161957501794907113551625485167059874201184335651388450726970677295467911672515069966415452559800926755481229339521357389965750497703184330032825231594163325750873023461455439011051357750630847773567540187828057747784514371589233116491019087417579242275449914474737683015424340273831333259983730206496562519262262914905718287267642063184789548028952292124183913440811692532586946205531201891856615579761491938055149282671616932164554611635183527272281252287409559219334171499496125730146406425838347435489081610703056027032109963081463608914956230442576099664599489821722825563540166444512578963596772521337172064829376665398928374558661976597223881260599856652945283319806452143896414663202558259305335479780410866914598015652949577682958558274473151588660022886030574418505263075609564732216217202990555800320414213125031625699678391157725116966528621553048368012968850335236289905833991922968473109793306387297946831745413616401111215933075689998319425457465864294169098790953784359675073287366080412761669440029835458697355417637720258674540329714948815143454551788934635404162102909489485306334192209961205193149563659917010623036410668244698187316355263410457776831399420960640268980921206427918667779212340619317203179788463697971750854034076406471671554003676841476793964310917717251016987942967758700664047055701937032781767887261392951140060673082320829349488294887099709052629469259165420395343106036282557590141496643260621867315579769510153969434079882368143563344900326643996671712972501875315990189308392335016171808956609093114292440933844089044867222331448681937076735354754321270321951306093557606630951614669967893806565139474174171303854834345277733518819935806918968869491399295626540135812440043470741007745141162154724058130777244879594288545015571733202685956789050211534207679974831928617396021043177802939088073409559365479893032487930666504486977464591409403869281508995059221837560402916098759249779392684481234358508084765346432803573136710067846988102541591104251896311561314503494695366956774348670219203801208908565691001423243851949286281699463357134760358345595181002421973231840454920370779909941349785192259873790233201821093683986277385344819448461831615203361064329985335142980284897043316290828295682164969584067949568592112853561391618330496712703026378647017787696139151010723652405701154703978528858026347852767911128703837373049459036356400173533048545578462887275609802872069298977250782547467934362369780186705190270321783328801615662820465383683048617896391224084197998707411893028393911387948352120700751105329676342324299629359939225123952009152749283815415931021637052957749082300951458926256188179617242641604570002849495858794803259043645034459144690849491396331874253957039888406643411525289560554914195790016346281987821270836784420140003983393973088999653496041230542177828478700297045539491450287116938205013348562964889859834526408521095664534289437949194976303627152772595573591086142311029176757328849995381183043068709747163711158522295535450655409778901866977687025724134513790095716962306564590940213014954299048519036174599877945111772660731679369248253965756989459540958906387758294136348168536305451336605594364899390473616308443211198815843463998317639303626768873249846354370941899690373207441940754040329779439558742585147753794170515848209207757849130018141330997559638354326389775640274102051801829385613007183121390349916202825435164586438643024328043538404916525193911013502261993466846144519031114277815301899693129633695136112848570658822680189486147156329687864414514284284946762914162705227328462260156988150437219131126514797053864492893519497012372667518879988363446671039300262982056831767632640129811077166637873174236406235009637654901916057470764946871210952654648095248223619895646362496355522150675464279684131540630699868216747413754852621385080387975316785533157692988467211362659241111113095926180271792102390960901251881638957244425952172152433253569602688572904362484981679093189028564653545835692208454454791244784268897943456144009686819839461727988344596957127134003331513848384900628394421360605245378211227347345670143651445550182956174058132571884293194629630176512455911376913061830368555619984378847856681052723124536386967381109619260140177880799254753509098524395324148452168742824974879194401704267345557469205613748467378299843687315128920416557610039854470614877445266242058108610805853991599210500568342663055966884906268384175074947961008269208356108197758764875311888938268892445431491130952683619620578750063939954832711132091118824199145524721995944470682099687818183856212791553353743966696265795274683632759332312651979311011135785640386182139382158534176456673322386431662494420701819594985957842504157785992150784323683147288659865752974747647430059338473119965766871971230288339444179664874504909423974026279464576640337658974291498983796635510477117969011941584086275265758490793884187679256040530191529902341450897531632872288498766638768996745056763852661834417452890618762144365608861260852899801966304246946906221611706866153687889246139230270231787476209386456451213958190587327433959830825862000794491012822194054098582622321807722929718961221914079899861612861213825064727582889999736482124883451030527540890995015149315304995732676401484402476933883152389236655981971145433564455259909779702478255664187280580422933726810052643527685285303443647304368393109088931915134961121828495664199370245444600594636202654961927416731096277584216539882698536697871606300591320390834310072137676951422121697719735302753319566445018861137024308502479812194117349761683468004924687979376012232168336644065082754727621597151208127094563725165984921903846652485147858902451093258909353575365935798251310871161914998132051364837617744656017141384451554320681808256976225528664914626480945368529720699272885743519997613128227137517200157768455778656308131157877599285823629120686858616157431291869736049307959065018553377556101169428448709657205700313059036527419874181570919186297552069311498183117714753108050291696826354249527005955521247462782334018745400526788932624382507376082311743712343600260136412504497558761352182008111474567225408745203715829544851219023785133408475874607327845818795773470937015203847942695853289850754740177507154796250224222906078223361487337146107166422515701647084975875630450106586756613339586559666454695369391861091488018628994661175033716750265875048358530536888987065298388241400555753225054279178075918041191072676027551473810296489634511675653503728268477520480723800275831122516635775112021032047917023152380943204608420746670652226176979655621486451632183964341227269401849572904474193668303094905109663991676888942089284384021144929261053422307742951953133686753214357436203850286107909015133157771120935716674665795998785343117212074899362742119423312143925036751818506286505981077881831022585321535183725534827770242040559184136564177577031241320266257205925273885130890155045916535188165380476900399245198086691576160728880999375342161254188718594794475384121811093311150850755328825741872946768372868019755099788685708317258459706590309339528760044737137406905583088883187847704968467111484634228341141964238234183354208501627035926453922465249340002975865920036489452971788479743722597934162512145250855412082716179044917316362382559720439402126911363969330397237160116863344469871724237055276279802622533152110259449323404115491838952784533295933405700702994532626770426618195455058558013795138378062490391254922437464734276040373263326727703972337114801101432850783391455958265659678806135367316132905217747811690413400737526832581116187676378603930772873221903551529947884536911990905319900495095402323601027824612079217706460018048742853879961324103258621492251590982956881458710190923531116527661149738960709204166071793603849092243206576684667656147586969793971483230385804863307824355507800576185660593465187016940882113674809006994083287097572294799804635097422309095667292529876542641265973461045526539537457987395377321881440391404704072927770028657676287398246495381746733405176427020355771505648862914628530240315579146908829740680080983498675200162904466350396857345829692443151116636262722074870946293006644067586636346406032932058710682510636949828867952476560485679339196014375548913008785388256007285862641219305939209583613669640005937659903418695258526488508322622885011087462149985917245387858047402193184314320997459218820834617624254594140737988164795303055393045407596472420533628476774361627900487103488530876276248443936415782494459847996984371987870636116020526513431907887336971838228813712906024522609164919224409378229262357529255318841249930544877521966020700937808863840339341880148051668885194299581450438043933972983893855173044389970719045586050379262196932428835621118068065903868113948365374023186621185143251018602575064842708618673607223503202781970831350351304719683930794275960061833725920817201184230205256530261855921564687160973108468747961263266321187465574803300603099996101878664100583939988616027617273794573427955696431814993025092333568627021356653308691193093751844210181992707493085105754452331969531186894153526402873152544134898794770852030725360697855263639436163851769693181310108395837207204522650944114375953209541781987534908368103673849017956786303774596683767648628496024600034203706916269964832584498454244189736953711806146949316717313136244992592046915942455163609382855190101102058171223076412738348154425990076138384114975135272801344517199054910956203789857792013288551375964730837711418179223082962048405237569691838514631285253389432462178742644432616612907866507190434373363002378536953737497564981566705241721434910759153386376444288770944689442658366047212078340429515690280817784805959488345974719492705227978918305361413135186918069409809856333813972404962161039337283675808658958618095802476976278318919761091711469022771309963023521398295787090806318400830406436674405484229261611732501353782669678455460250763519794679529442542087650129036011908646732228791524330425695208894493457000404053722467148874539009813233393002879973479350208071329939328031418024092696706163938256534355013632673252527161880322508000677586982623782143805356382076026460230926599542993980505636297485090511142274825915657290033904824575492027614027728022306283600316549454449845009690119644031436241993624619206047738308235011372069508334626752722790385717922160760975282457488557127184253519834581679287890740062452421309091578231368920935042499538343378244687755556283345945384609839459214418871563268621617936941932277078092453414687289306554438083742955587926129534807781085946888800852763886571818746401210372796729137005128914385617418383179527582803983119184720127025609633342975805205753703549714343019824535830424559851613398710741218138778306528794753669046325071628489240850470885772230768055493303533628067651325687805617841781323783520880982294925660894341097730650956456506222079920401819745023249475514826332848090940760028094381745124754039288079764562576881848077107777501010026817980602901404646375686751086392497489257192223162459807185581172091285645912150707999178653341221373187782448619836236683399957888324826011140810906633607078074540968888731838441828306753475417718569972680809951627532905804421123703227174092167089940047852444393008716229107788756542809063379408234670551106289266064307989069463715026555843863777612408221839970235253686039512938586792036329952237629613230618262180720432611836123458840997959910249248522203503823442472378589707790223570241593176911220905732603446124670532603140781674018114827837606905227370376859464831802728849572282067913311368635899002033327185702243129342748023881812512478477903004810425747835354481897987096365383076839907042136800157192963270600748189361071302342810710936756188271025911100925962165526232876482550726398613705286334167327769164170106570376396890970338317874095280038529502584633032475893706419014039420753421585719337735814182860385678728461035524875363988203287497351536930105317417402262381526087505722002032960801844722945604629305574666507119411929215574004798399147121272548910501537341487349717752657403219356196074968888013430275891325324763129606055054561546770169059459669066163182794049189856187452367965028443878375249200920566307170001314237797369992605438609088133137430433282575780153928241363205916684511971343702260430931335670756247797929016998039815531011834324626138102955142004302586584171828492437336201932013212913552210732467021578715991636423832398906132479058939011340918820076708010997478223725866647796154480829808677461702363276740689192076007319417211575011112100064477503196856247468633763453083447453514774976488400219043200707073151215013396234572306347851428668630869157446817884363900336632606026268829013838551344383594420531287205632856302669285488554648713493293675106472905609833805135939656936279225094965130338209257939343373697809286171611812356300132094560715642251714684463609778794104698808915136374077246058823589609360073291177483402885744789849459111475274536925668347300439995001155824983874794618483828607710596455105722191828775252006473620601746217479053418062713209743392620805644323562168069878363692506419390301779210849991790888030423006972345551287876913429541474757824935713116748077807956647340443578811031024686451584756728167215678239321596879244238507528610242634322586722650371304612166514245848511735180244219290703792036553856635286929433203051120412673922847727706203493410452013064509694753303812457802083368220382722223429280453708883916202231396956186010948505637865622621378855750363297761498398574924094320730426220562971233529683954461839411899410141357585825804956842880648972587735207617963077843180234532356080365321572756120468376377028870814446912697292394405963431877337243261953369504310507581433451298832880107623292502454130554841395157622933381016939851853793652578957920855359363677548556478390248323190867243566035061530945957817178380120421412456193540704828702336412002353932206589771031952741908269926193927089871185793288764735002057456873891394583914523834288940313455842040203027696161976129376302420886899084418022003052625305793156070879330234362319415526768355394668478285951073858840823388572006276708055645792283969427229290943837905587339467320498094953165897528942637878468673428040057228998828467334673546666546002149686820230570173291798828673371132172099597871714975092873343112639459422064829101160671639923008739857211613349712812334141928484521060995265690950407502445336209052860806827604701991392823446067167303948351809012314312210741281819995654891761310300321029663660338657536242984379999088781010977327732587698396778627704735418358494354256393296192190087907801865723534538601838765729070447461091866658181877730834611218336017510224476441132451262060847022263322204618700402215799903758351705583727203151208519794741104956384038550682904373345983620795576911232585147519036586447630696801791612032616388738954105538543753387492023390305487562829302192096716512968470057795167451305400197802320316810947205918142144248176592987250245808912798386740264499650612615989452378569384532675904368260538757146462265085750470341223145950862834380165060490004337902579246818439247181529780961772137505988896576484516448609213370451875534888229950691772887138415588365054013664710364963157324368518322863126720860644829140535735973464961941696579223747012717495508439586746893131545031094063168405702061862037439823051730852072814563008541913615340106504574031262888407034476567008599346211435343267734826466258745368352935214589128477230249717848494183669502909204123624084525621528718296654323153389456858545587540401517533267672254655325891230096563523988577414738127785191641683479949991254301564008834742575723408081132966206972115554319996131324315918950894564948919389532431358184941810569447029603942969271966878796621464178861518133557355415498953280774271038335891202957179969499339092262768989208041441803533378380411419604841025373098740484736307757654418922337902492622140879435745373648984495595753061861469884817651341442175488761074585927355190739881407017515890971751489078049043540946263625774313824592708309756502764006963917404572905507219312640653336897810061260789016346275453110349789876649038447151323717423229669537664097398544958818075981158081835477047756271885134268439092416111261984599663195518669590524018227250110068264221213604121772994878299042300255488953389409312388789601822628997963988699233914977699173312409605496138636217660199319990258541046374570029560393765473002962448077805742920620512671525262587553253316551226060284623249133654691263408489021301022450578409882458322704264547756820723358832957030422223768193619847743326578439820211681755871819050193961249292096653961433286712657874911948724145884712537256343740553059942122343650442922276296455155185610335883548918653252393366835027150461891245395381836982782470403681651324779352480746483964676356366607954930824274031789313554833957284943513670682636724843030570407413619355991779082868799452187760176346759488866076541697886380117225070377986873750001843726211878742659720867365423814124563972493094146846329831696635637520799485969127590537810186184019979994068595214305599650575237871882372949302820281587183886429656087461987259510358482955546761877582633937995336798740919557011192208292247506875123022552447966336813585547518447699297635272862226372091944276038905609764889241967436691831928905715363366689108568234100066237780474989014711911373246698884702372637421941331537575863970593873580301046152005104683947841766250954940875724241114466672602540277580213267944171595753449376946147174831709746510223205425320786093809959420850108302972896769359087828736038861827004399810372884188604210733891875849089546995080644898059557975206616730647051880542973715585314614694812868885423492030471105242717699431119882606056790126647104050324298171801680144341012545604115275145000356230168567680618478586041239300138481867163422511452312779654717373792641149512626843940369368800546747607821854461094944822348617966925567708540422559300160742863997796202205797186736910760678875019641296800348387674908464370205760581097198914570820535636840671526119317068644829466244624175539229985143804015048708301400063331260826833647838857578144614312542302696378704514661050629037163676160578936570276588360730464297851776327167347107360107327076694536494551021732284758543883751252571441082325057957605245422828272937472768097640694786985315925494313422057202823468456867354157941714162177188422833175857274154653273007506686945950106478168715937185762404506890186894722957341214380004581030558821773069762630056579935020237887845782561596963737921729867329524632026676652252579939442432696457802920097896518414627167536850408175688489018454100595855596839257992009090154714872537901021704890550824399936287537874033794722827175137363501885164863110724694701663917122002314394313832354922360296911520406445117149178354741561161930828882604581448861065503169177693163625496133735122582486792927611025042838308203815708105101395423414834024364475896000458758130982691546060587802591356078509476240349669317219415741223107699178724605273202198042414386672431935793530609164968406479337457243007509453157964161249165223908853958937664627957930985314098655350764691813256399637855018497831590497334004516547892999835727457006432250851415527231386428641537040484898214841687053228734760865048384524813769997247407101788265923128745547376654341258748861531339234714973316092934365336213311714080395893955761814931414401161749545542308106663387880675807847002078044335141834197503057434857159897611977102124954395036252091081172453788738709073161737213642080795666885576916769220385505003988344381205509813593228399446057290227547677162990449424438359454795782233625124883436441109629625903622575537541757450088757053547703606572061980801420139342857638731731822669938759527472179675528544393315601080919566450681429650788643901818549177255422554344744570714309713800281497399125802364365046624850317657223654426013821849421358610516925269264364732570793807908042558940662207230947900356445913443820601762724708087228515849918688612431462108129316596861503501525508171810990367430215072096738626838607088640932313176456436070186456055044355777633418389471792312642395831842084275149741329482215539653354488052604443562014063195563444960256069323660978877595526055026463645095829895602042710132978215195880169683436392237166149947978496855591987150022024341942333464645201577943967838159926001126891173343494313746337637077556055486652262748975603584256908853935040557914707105206205306899799937717428460704714444706417915505298762735622660451990509970427502191307340962192700350993431203397254428447959334383604565796134946932445290566131337737063820878622896417669511286047667107381504696229673618033808753379940990232151274704989037521972453520853051848259359338652856067164177453069857620312935631660134993348396343640814114283699394727027233563683732941256057778657215080211174953817555737858328547575467141872980424185081613572836738790353398942937052861733731006395790599654837333705795149336015890228122542158751487500653733002821306184049845234645971194671316131752642630036938271721392402417284955611732381237317105719800772912973175617791140188455986588940373248681313702422316746121815646965262819087721518199533305314462083848543718869458863172784767645010360278498226832451771496376531655255252455344541075064069144189204730019080330893339396225509470330217913691439876487905604970700745175769552467176533358311419228183509558484819171277923495554137186724824325057332303969788715950468940934251613391570415961034382053091421689585451090876439141651697720218045853487158492029864982066306803660927881349583033392300554959583559667892931479462015409965891334275904216583006959803470735057931695598860581476748971716861832933532268305058897128281304774866779000974756293273718005738625934055484706598023847304435266814853006499366617160342299842197094106010408251683292243956744405257930711862697386867283568929109288794366266347568347211464881244478345050441305631336418741168762940793111871835918360403196323873168050079421298515472615149106792934860194970472965806642733591887899009604793690026989111982870951076474136592481737686862238177594969992627210030869488282400965360122001621222833279682765453594532289924027641916875710902443257518320740105046345593861289989317799371514426676762253392448589130203603796861731547896126183458697879558022054022095360398171289320681110313992629114299975610322607490491736180764646958189587237442602821462561908835197713209808635373513391823835145668369927240284220403710702506044050337248833576128095616392128436045086885253644839373651704531126506359958019894818592941841372317967535054834058151195247990986850981068226447519416114575520559830040450659031853404203962909467167576299453247786351676730432665530048949150066746200452810264611145814289828589963242107953551827533179018765486020874156451769080917746577314671380958132258219224501993652466526228106885726967059050997567720724982651555318835202512290691492725586395245429032765297311979228265410423332731629467898142940085219017404933839270052727418647716850774633418664226680267801044036527080358713135932091865265377379688501644946701462837428190832802570682460262052531633894830391538607269493824297441885105771002226238009380261417072434248298210081537409612594524724198528168417171961931505108895534677593870556084849331483371365660282996939817880123077331700252282853801959139772226635871579847991949336489812961667280398748060208967861836054801673258407395070591582641497753887041829848503516072983282112808605412723474649701852204616924925926063315883835814230329997302071847501415892256732720757854351364941209834353596551959611791719749807128492741709834363732660667281847032195456674335914387208302233249715345281711863479903624565769558457996703065022470078911931425601198621683791467840275039472978302062340716284454544010087560493122010382318204904053095790716793420689857155638726165013511324250879464913812670116542881400852526971829891605489081532338684830263663205592573273975798281396178684589225719272412650739001795756158947723341133810234636112520464538616759210935673520902914872188908055921061357056127607320540921034612860216711005795105509581556752095185066767680414501731293722330914118156613986240014683295239552157620848960938133316745065765923104407440870209305224820488558418263930036914096825646262143156768352407248699205918262371407026228673821403779437876753503048682578754061752987699631465370685607900673864366596513840380238926031838144774470147853796038026382282672429786202524176814218050368108046490419846987515064814299044005256952097392865973848682732306204031434077584361255349122952612715253103888973081297586942187626747144744170679547993412112545700627919574966453388648887338047410249658809096640564035129453273334448914881934506645018955102100164518351190338476257588288224485125197409746067760524818799529977218867471982043672913734138345193569198884979646137627494207247981875211425312019075532136834161625928565285737740589147684417716217580290378017218050251523690160957977129603893321604666150761402609140115915920506207357081591656430271976951501124063747106718074397220365964078223724212974678140650926869343710127962515175152493376896103925373927228675485244741592932865482024339606741728855574617612637216074748478164069307674393411519501985784878549050685897957597732687445512359743866786267701817810383721306240046424577873322683636888494332664125478142250466765923293140914332407767798555344858392534342064940512817808352368829209377062362377516707508304323440538962226624317887421783457368026433484957739340556972053659392278852291196474421460187976783864052830484916682730700190149886702632666269456181023408587541868520478357907007554789393566906434380904632411512245373858416039736663062295264264658175350821709719579431345661626570499973156248851694326383232725632823519037016350216263157415015500984551332126454613232650932459920587912180476798614689543556690152724394165984723680539092768323973797541360496390257855942489581854574459640810567675445561706637294779867336389111285343938221764855062763421917236560275529890238622079106074443223473204208355659297513060242214553564571274525629345457333380098902404335026996974346986500839206646154819228330328829638490174211845720614066589053093255835026580588187703254142339985654689787455131390364940781570245107602752260497353725839708586394376193026327777118177407500608186205187676253490584521874553174108460905951596049410131133251712520918350446308958091177537997175140101709365124801576219609754519395446227701552748376647890998424965757328075093324634096170058949757464712484703217640102882396298241961496180879591307894947565368479340964328174117862521892812307027104159274157279393511931470201070320162538951650277931964555697890559303954617887248425458674193627063364579886619945311696474999946851951456064179598295526939184281475817891884474370167455807314106140066941400112875321861549250979724077869885362687902345183141930921065196727437195326020334421170935317702326590591506526442211026066994172245308031893404118580306251678294927553128153637286416509761934248031484411831258953222835658967169005429522700629292494555071490121491197270649682689299743092216381112545194380613236189765780433618262157978016476964970183063674986883197480060871770305289589351874856268340295008528607146781547468678913132241500394230309643644873439015228815977772900917536968285294515452101692008735174502542094317450657197851663007056324395454960872652710438335431467705711244266101787572252873961432937224723528842715578177258940305202861206688137658586376338008648948364884822736027790130670871538019839768920089671479199600853889467976509681283787952039722410486925858655309338986892099035076291785466709185202352001714684287443527147444898002455103634577594526822520349520504083061641483852358752729041189301205544350282766044626652528659403087513856655274852878275030529449334517471418151397892950569254034068423151529014145783511624873965173007633346141270751635317789461008093125618729510717637010727582217728785496038480319622401163281051908849583506986937108008283722922137234113472236102595792906812582785686289227403755377303189148346542944151692482635946938689484108222538773971345248785258732119515587577377476621643563132075842445143230333935607300525785321825586626503907023691906801589058791349048123141709016248387269114694098187641352104501543312484317269927167604974236294320094229556846024449876953759936265733024117398431714085196697012539709135509078433302608689381617099289258819506605524769725295780875423628044645588559849961342436291217244947321821110154023446385036140778224699363292116226921718157105640702203005490741866803714686408260105469089810092346342672099682519778898780891022131987270034214660922140339116230211676318035150143170222696073475373806173200548419183409824112830929982124569896114686412674419428773553506013218846377825718357581844803098401571556798383323975330728778232176871992262818948500921071723108519699550657147847296963414783586084877305954340892822006742971553407967307656356946291090692449950250844341111344316141690301693863663490279166428754937360557850830823494974744266540856247868955308708334285542449170270160100276041212071628622137933334975157808469907824520216977872973898648782374272697646946313056713628635090729481140585807069839249774943888852939359250278232351985274609897401736569767831895494586050213387733346373160455392033222039754065858542072433772962537221351862523270135936346101818097722662618525195506489633803700601071928431451533431480664597307109340508772685827001415684123399524412459392922769053593268655685699787933450679127085475788480735202052808484577610278842679608481324290593635645093795401794052305969277174268116742923443335525073771934167924685570783710657456917130508596156836081287927363849522906101153894252360332401582157761421553655178040586422446551348789583290685854207147446645359234729675672370442000417146201934231788800622512614342021785963787144687286249796070258490334145595353576239290902741511255519920642807226433397194897804424984681197349975026072228833134131973468434497568789200940214101810699641222553146293307187013933539388886038859941081047974757880860183970744210920226807842952074291106705967995468626205694497944601161648815371738421138238762528858959040779526497826780404986338872596347573762078605229987159464296896665258444425488343968727497723810606303528740159960912196115570649256174261523092017103667485499231594341581421430916535242573638449280951980222576786523014593348715122747026631004404733889672821841782606208628620195006039944844159581781462512202684778973091855916019441693095632069010283179183019695563021189942381085286167837293303985267001121280967745708379228702001674862939921656027824892237550443566766507594798755002755821438551539396578383936807885105455283784285732846877622917041003375373795779779144707098240308607210492800392141334784162291250425426554362783479511848533717428079280910380508934384472568319798021465125304947800629453731346334161150096869773890990083309858583941491189974494312803224810881086237258507530835223971835639939391686284188717014711373151027091395934755318219991513787876457001079218397554801721084150008477577771196151247845839395903641419411026409536836426114577464988072899514361139181228762664843942546747848628923553139754920959151871312384515712602835281311861273018779156386149377869417275021754892329050107869032909038959228333723182619883473540990784087056512531823596718479820435173155076973498143483014736879547768168706589965093012745932559232779056876140838503849449950383743348740177472810172775001249988799057215296010429559536081369918406230191257786244288732733918160121017693356789871975083864178194010723304276470173168708352399633805296909919805634328639202975696131087855858583232614518941775153616878802548362354691832741316972045593647643138557734832975035538516628652340827887665658268512827593532559416083347282697774737273809983422986592754742970770459077759422989953829248456897012494827782915773323656781841990882016458261472897738901572778378088283839694166028613398982023675204858037849004108579088041653530106264160352002954227482155486126441718577863016248994658585944872047342983248530765199612395358765375040372453347646473272409791132250376016355441084390078216100132169178716869862630174661166214650206246529998648168924187808181828176439889976008013434937919097977411254386509412787973145827844785774108531556921710499811249772042877111082675763808147861558468273435119708544497304493537807081167777900956716946594965255263208087852857061961079134106559626079564439714671912088860336222608547812927747949656804632724895011958717629817236265673678293237079155275245984259382500395139868470985533125271619484320026774699832322406791011153146299016726326905149870903412467236601192749534024410777746679880986182748183494161159505857473993221903883004059945060031838486606731520791800325694609778110895812714758926759094245586675298961268238150144558262332181733262643072189343405243818497402565724659707442872585810795734677135387919793437765590710509005734981053456395459299024342956927515002733826631695811277774655246384980945490835388262718444057139242643723467778471315734456210372724345011795767880364845397711655241051263464429518436836224210183456186704762837850746922969647628539301443344001737978269011513483535796566907190854849767516162266869826207388863836810933464678792925703543597258492256144211554580391984557156216589134844733000736872777925858769160045611069405399113292267529795412176958524988239328431454197908268490380758434817760139471504491258575948354821058456037856498251729050548481088407306248152661397508515356225440949331066383388753187833290508937057650554305466115773812891770690251733286607454586653732490423932093232928643123278459322110688348056950448358010122801973029566530567471150062601795871506141165515871929918844341979736615296522354638437750259086820659065776865537975988565537585069338964537230470816128484728460741171387079830854071071597869930136361235549557994552716666888192250980318946011973837872382716895023566513244867130741476563638479482243259899432797099579677615029142458647383823970062451736659255447553401943202707752925060191202647517770073051633553691346739341220262804614122919316808900162570793442307990017652247652628080704253804016615785438874344150578213791532621211147828817375514124446738729809785949969974520891516637846741713166597746924836829873242432827510292551103113877084294048224371015849028195667355364477602775309949048547058512411707650952517868914233164624287416405179326908250322989857884773670935769592609288001397114565686608375890968850688831058821978394446791341035097256471114921975780563193279197564450923829552750928505128713192054686961343053508573607275603269196029611997630310063969622689200961758553641816794178920457425554734157740619484678634962437871333314176161089703275869042196158204990782559236987800463024114054395545066016451741817811630055581473915903337096272592396604702389617040497303392516918245773917949296638175642968527515615816733555924865814087092718561972838242209021772127548128494793176105041517923027018319371662898605426786674552493677078100843447125970776409384942365250904332840040872981064280864218595328667933938825166978446912860644670776183305576069914358922532300476072221679278699283367777428812216464730862196784366146839563573357550719324667569202061843596869068748393309576511194211554540079580147949603555408903652992273982151921779307054220574538643710122606581780860989204512845736087743202564168163113076862356167285524269305602518199027188604623545609178319557453303308711845402566583279739750974046573348840172812579223697482768764657332878261116157739729357083506147211821418087363206178493069824020614540807326771545965576820454916072647288501487976100624867200927724803701190502497463130898182211495177419042755360763595629830372512373863108059648037480655009521734366476319506671041659625436764488340748119146236298396739041443606009423933096994560670115418641716061589470046990292510915146599356714501596470486937229372590126036508294156494211551052921043374372003880408901381581667426246201296471019211978544550727000618001620916081798734033854494937148528936395516357234540439542501336378353118729955390222097506489168145170286333730521256842390654422658706556172666010323680241653466440257771203048370633079126850155508785097960775534540022492217920216597375288996724440571962949679103796506117877289231223855110310107574257188066102131059809087825837724449038606192564583030657224354678932695106735806700110770092039011859540783451430452113847365194805138977036870211230143910619166767976085218139769009017870400154856899591684936942271875922865992353191735385894923711086048517897488176733637391068070520673523620985330486120680477333036706283376588051974327737363383684626283408566613054881762331693391536050616515599832481508690484894833917454662204570385574045794726596420406673309757584314384868196377422241836047202405465495468154136300650401327405533447276879573718293094464512166406493737142156666784894827009325243956297931949480649465953209926922479294131476839983659625993655495479915675064579255601280372474532373578570794762654323782574625672220971420061822009963315967886360070398579391347024777742914060801684867014787501376637144147379061673712177338879676175204908191019429476161277493487095942811076758430117409132468284788372626206654099895779239970961682154972442099329285449806582393871803809459809072864370935658614088573075497015743464225831852911679074041723318800085903793725869046044763143847942786943267697413964665169639346944847141855890187145835071226782089354765736738679936821220591518405418252047800310165892480362248660631345439418592134608912040104523025667687480085973584542906244872936566415653157985008916096546292666500638560844541139560575082515955405977255918165189851280062268001851791389000972099490154655831846714741829280855194534424405463334561242969216540960098390066951646409064850435892692873612087996773959641104240488625270507003819965231645325340901848049107531260329391309067460748527014970784700798399455985256375417539527050482985174717139744027604407676872513654510825857932259585435403666938902931635831211111634986897990499507883701708512967444191984116262930706843698548884706427912918990358938480805643950298927357672412645751045321580553693140130624071165421381650733955513015329002896949430196880548561112759174260711847717710329294572444743601796362044520947702531382358752030130934733234595924287733220528435647164089607130835018388789523903959265805494126044781007511195840631856044687488970495054296651533034266208855416219691177759080581852850759647331493762459113911793766735777540928334520345877251363916802289976897164424642973253358343804313317206162931983377502335870959369850554964132250592967305226297287162235026516445483206782863519535056798320711094255048876658062453399487332521010819428233914913198984968139645453770427934882188544634521453343278545238530613170848522082031061995528175589107769645517447354211601504497959099572835091371071305316738076892456363699316327482267121396695187573505966877094586327359155618991194495309736687853514813313426758992994037981279056887025147212615907839193676738200888998032165848981199770388305776792022110618450489791429574171588235486672228230998533541578088933876613047689340275987730897506368264247355922536915865078011720681398887970149820835721682829351000274841065491225378720866976498689579096694819203210330534601784293785367602836335604728335162339764934912618916041539874751340501467700183578765938422815602560859276804024171273433976356833876387923069325981476493329861427683847129835650772403784130718598708213199808624403598077696545734622921474887494658894948490176362596558063250465534043956815900768213317974130126108058782540420499994966304280166911850119429054353451235400526101463225978045011001612240289453147027634754242679785892846615304251599500307508396850228270454913597142344103177852414234221123763446247742768135751170832612376147254332469329888863393886436864753585051511287607391253917689655204926453728156780858871602198946542403673634477215147480455723317464267461835814816878493275848128556302063902677928834404049244637801311842341909028236390452370303784129021633056046470384126009002628736736296861672966819846269707472155865170799037643673295441843004816360704631753389858491381807047973083456034467018505101134957657789541337181725514346251226682331549753714057901505291573484117709282019931746001154837563277401128187849117569394390359692196116677658058682292890401859901445974207240916258334550045274155857014947733260279419530076774472822581739946503762640614553878579393782629851371553340720388355159243277932230505798221370684216465444456610954528550047749682029572558129830009073708119228709948274904474891680229266583861078382443455115279116558241588067603264640020007385736327099494085161402905190022769446341895116104846902554440741707213594298781215029892533855424533954656833780512029859917697468281893581223405391243692154723852454412076260244103355953179774029761536169422490259810946187848931132569059534859644808366683280416386628589339189516968916785580639601799448297577994194505148492115048944529383837030577604934870339685486576687919648848108611835060326364709265792595370576888151035677039017863537605662176221911377806808649004087857523018943419034740229216948248091737898160240033103014058442136431931527893211644517861231964541369281789301581399247896464877531250606685890732100075584164920223675588603859411323469533104357105125078616971558208314330355904167650643208434453929618417172319897792674531006969537875769973773427681059162097273446912599513299462386664668954840211493195518064210666784385836349037046917823083925697998712561258988125633711555771989510127218471396073592642447513007566216941547620758181296395004679960337497350763099317671335330561216658010651605312549362585432149580734931171127657041840931050130105739628344116898969853098324815239952372608958208058808751583713167691483248585883616935606750660261839612251783808877709431054581702971688992253856564425267408376218927061139928494161216875265262423951010503140638332731177305082526111444343616498198266325073236258282944521846453894462809509532442814002431056686321942960904440019586678381658528937965828808839740139903983060806743587762146395061963975676350884581538788354530834113597158684410463061851659359831621856364831594532040077333383546419799295971178518330811588144241875515086903747906458216180515190208292185709052743435567818363741714649602174149802490494076389235530908693277454577061253909220391854115381287857196014441432715868854142730511305667606125748676510903306756683719744946229499885127251406144376255625589852186027410218114817183854178214409158326789528103337337432172272131692195370175829760684798263706473840898549028155712053836186228873148737983452454086558769681137717083254718446277808018064307217519065468859725335178356299604994296118082368775299387088566336442899295330231744976179131932639980440688617271041078144891301156615263563012867136043541502605899376573033960785952917383845237135219972876168131506392234997775770909459461262051304661485419159362062391685195768126630706118865565685621280237821911631300821523755639558239814385473534390769588902581265726179628645221775746702061148528875067067219228124519108059936601063047464683772304430383920349334499311255441610684942260172024976995363801909083015664556274140107935785866366629400222149467445324735728626928610061346864530053763408162138092116208180665942094117312547494783891750756841803775851301178713427540470633200396118355736300682161338001456984675973289733727945789705116997409897469103139644979083686745755450175632653651655379209193484040527864382912752693838814694255158748068828636039682338328484777325999367050871506886509294539370743894112065837767434268753023558885238826680094075323315628588779286088473082533239722237374936259117395707857453721662121778514324085167195934234998895159482788759092898015494449642024718532567396789530604083526688837397815951696411371071481777913217279443998136499735450040111605444370627919107983123431729239406249423275281974701537321936877860774953937167263515096679670053618540178340658940495700862576925968471284762133769259037568536125941899876415364079775816195150840791190859965363836764322652966344708176656227855915595435454376567482379396119728718215765984528945664650364076324367943836861801937992467481288161292791754491053455765794368509052349521373964296212428180631902830292003513534060881316127474799290827073989376876251449208963329673787311939648361735831177742570458486824476815738029692628069992681463541077609632723840157061910502323724131934774534517848879480223668839442189487563814165201336102607719841411269411977800838355594570759861011760880551946145826107179467565683266647917482163756269033395187925751137564122889673108706766803419680327400217773603363099834009409678666696405197183094831875225337433539573711872166941101536290450235197368612601990357147761845531474319076696428209665454106629357837296374051324708629054684160729101768419766150540365427780972512258951747265091000368889530302096164703969014516158288839016500974345552347586208417502831204877930780837244009456648225848136684045331135130374143708410623458078472808209509910495271861407447516107796906589019985472428651039337701119999939287899141245446000403873550796865705851691668942317710425727170266468441593822585391653272253812039023048500118156803790671962596130217049174845745596010654885831753024631326481593127335465505400987536094482786508273087999365619708070251647297147833891396636654943263983869005748949228321112876032574665033426276158891652573706054176520605785846585229846576080009731325373185250499817005607447158871838077677791392058299179719705150117143022802343784125711875118163404085437480636931880588989611455872743883687771276929238131672278083900738837551221583821598488800980826283630097477408068836891109064058709430357503763315578835474366743028402433512606290187736887817437604494587274437037380977737863101678995901120250760525672359939752393751048012513809604896733442523184176855329126838289232020276196394734478078052258024061386328330633345518370791771338175677619144091248387750650933432143861559039433920994102310724434934126417483976938116113944917372488525016632823701068628922763641449193157942339607406009408845543736417615405681491765746548992424665977760731914458432261644153344465071947681078205691857470081393862519785312960345664986190568749231298872634696418435806904889551963877766343935066261545640332892734032478869119765739584323694983728468093045476798570445180762772924600726608695130275615995038698774114353871788018171797679800120137277975995342817351320386772814563359459748322303440915707273104829217251145693096983426557734827505940355594382022616211137526168411555319301357072611925427940040502757441182513166547934369498876973004167570437288167125214716343045805308507930433315005825981330503664061691076727414205586695145439215084003011526716712024961132778581505105732012622509792270914070668050849640662509172885512331754716548254574896098681348421233615973214614170534403419077130548802436884448331766776332932171154167217190407104931677414565141813050225605963636046873443427232113268441025778824931259262107583361451699401463170214595679390306342845588990666889777075731830842667843178522192438885306022094395535274678242664162055886996298389928558185045918267134396559561995869367800059193144082076690970725634723579569374374559046177242342473734892927119626464813279319600422281598761018616436880701355796264692206965798897962267778219443957370818269428693753761186046289624362889330491448626753188028125552562950409689206840105123736655090603192636682090820941707623933533950281513779370832461842029828020451196951836426817307472241432216173103974142436919234041284341472176246999786353776064288179974769369200614435648686119934728873039493895568894261418917017716486690240148743658502130475849930611869003578866892987472505856508084466645854639384638681543854645351955680679701013441758037276292273635720471006360893317449239622027139942433324916000980992998352105931556350989397332969720257095945778585662240311815213276827888967935441396082369338739173453762736297363411601440510823242715071954217742278559894328394664490444301393474803016410297173503330470835297898651119861368142104360186056192930578872905278429368077897387063523200567996205907801739166566029165225738056171776833184414204558944088889858344138419032706999415488814941774951658980221413447762893627944337704399629651958683205084837104266183214958703652279041627993440823163637126613721093781043044357799279867281990550927237793010937071751100090580220177727234953333794493268240952120415356545838524361406160958552880132917333577788891212885081963400244657378622580475690620834894694631973220211522996049431233542207421367839817032465675360909096249182890144843534629224637092950097828794393755887679889727211971441017209465699198514449816036421427814699108402956139831867254648600102361347874739336608983063634907421891331716457582158655953401124725205632820100217648323654495034976347489969062788538899002063184211492302452270914496662471839516733019571429135443881060565322975915679854338745213281857345950927579706413150718445002042467163496773349001478893762341686897105511360374725137528151123195609065077449951325854931726792673495527397903366695218329207532303201055857870364577436827369114405046577215082005299650345100633019132645126205129710790294573481626566281686353426161840112143892810522203032401359704629735742552214345982736887165820214853100543117070750541739966796213466960008853826338618673218720040973749453212189496597271588464678040271586732803214805772097980758599738241335694355045232073218604144095419683987363023187363160259171576109099690826995084759347694626294686918059139888007194342993182022015876407283920441559080891684099662104782042070050205944563687667796471160546343991697930717763199350516634380048830435958683523510781323790543575354768876346997991998090422755166851733093127681265125296619963753011746890205389391885926131297438294486282658826581812048424631220616718968247691646202428127825659551755431178315647255816171995555222734171109456761121127737038604107943580858983737269221529096993513616100608357422896595749954225169248053747104210652768828287534212880000283102832924428512175943967112928013325101669257883800280608737051464499117622621317707105948787093511274045693555147730584311153195687315045720493183017935451202600076557788121394000532503370677817805678892852362857888238867301704844426027603286383050450241045755205628740867133224182865621904341263043132159580346543786627912968800889241233095991964760875162937550792580342982504086474280262561995383857760473192981033163511089090666884088052769513079608893809889368212274591062959881033789159120938870535752771576786967440883160424578189672195513813233437764491131823949303500868417308809157278545530687640638267861179597640918965799376362482992334537355365332025868498828465729762440121032705047761667065780802246485003018587260530126287693960918363867162461395415092417815366824841578409211866155546349559867431884555166866871106885227771288068027371358727404820105491886332234808368096860916869644022470835269933785466706579841459652772340059590181834899316879826771010109104153219953515674778392053115570079735157154103219319918540636778348050406743900880964908388965946935478793217498587333459473893394978991912465242479302994652484216992656608300496969562274954346846644831908436103021174308050025150477976481459117738533886488447934114749753722263264670446781505460404012286763204182512014400725479773849810071005837129256131246604801831919197334696513571985571925426689659003984381434275150170741511090299527425002010333403206220075997457954331561253950905524396057957725319105158600210288013317302230860523607990361707231133865674536183391024538118790656380554286359462326308721037444602771782447263686511886839591548437693368888284884189581211476506594449626760522353381516727388061440861347642836547187312039454753598336411102938802904351326283783324528537197890793971334879071917704475942782619554137652224342277556658635481011386514285877951981771215463457813154661149743562304445233233071299178615004319711003646836927564839992316751109350930617578271960368497385324106210949104221940930149942955089854404186905207907752222132705690902212303140158659859593736557654768714110133230018582815169942224546383998235797942647093084348021792968527498648775237040530122460834630996538219956854114721257041700759789818653616057540336439352650006026697507632734033262100896918662146910580130990457895977518611632697208792867027044687863703324548794156047368850966275832546071298334808688509316990961010213896430779239009871474726709818317499383613109437388114536796000544441975123505104368925411094282172043969031518602180527456110745270598102580604360318672315363687340358253542406235681999400385148830332263403079742907488986630227036940851296233442195656663174253890822145192730075601549280921683068173388655329860645694897055031249294126089148114124340727066436118492526353218772698362865114941170701088813550534431370823549438609229072471907586323645621474772545842571233398386922639181330217437806737160252415527326852760172573915473514932586009780898838755634989083659466940572436511952801419622576824548252711361781360010683598979933710474672411535121047101682301033397703117278841426817565985125105454397951105727062773538081338009079541355576010632824100362307139080349874579459340612407795056006453752160918774165463747379946530166844913487483334345185977558808689564218939971205465256200354691525416224828767060847847810157501484095094770414559222904518118340735190289899982329873454738971571749269636457097000496234110440294675940042827142111391914155304229070191644800908866167547252217483279512540602760814992057315001193788198177260123739203499036939335176703319265773759710942988474864929315429891661539508026292936159100562873113849306297834457735920904040649081278125622632382769107372239033398206830598727245667065968619195815901257157189155515717075099267008126035037911080433219203336344005573421000600050446063369901093916942635411031610866649931422598419504781913939113033622091588532105872261212180144449171952398091941524522972563514536178605383472782116263551504201790927968787703200565059612779094598272653399099074834433867355754417107239262475258779949718434599924627038742313474058460305275155588828183703670900112555348198307200891664195062419326535202923392879666425195769005796652830608932146695621894200543963706628994341002208108305330686667553065418959220970109079784607054231669397248285815318093627111488261073373696105360550143297097010610254211957266458750141228283899562619368593758361851226568957962219151719898618985866578670971972677077553444473771553439500604565031641613745226581987571367555743165086752728543205415885761019624248504067455319122771961129975783998015568417122019893062269767811807557410099596105346998559106938798774629617409203150375252068567700954353898698949223431118806733233496893403285343226377545682000818959862782943706156878342077890114409789049054491505436404490758163224754232226004027230207040049038930805967505626556151551677537478491362464499286350119401439154004356534307415864825414443285238148951868576594578499925076782780821426790691893217981378612312809978354812871962916341453615461784163737989772415152809299093304616567125842659305784032155567012214338560732069466122998017541609441799928828999457422117582625192381989710800426453089691875197605337334086188237557596080332589729722593415294371328559462706786836503740555118921689310283255363207931756652431555411609785378869306871108237794671055372674744928682091394721889439017532277881588289407519867690986563552881211192522119412167012122330569449637324676866911247048619613784083090404581144023214083165258306194039858786981004230698338064883903798894473934802636991646367719886357895982679822823146539991252380305729254241115205337679387094255498653175100178232499773361033755558267829563455212408591417518962978698092054665686318349022274587221524344439170233999945233507263574717842459068982798569016738277206115545393587176945236231652301915578046240271339571074833367250229411455561490311632505860706344467158235036928465193778033472319127166991421525379917359143545946964348878841699887299056631150653467217976012277692327544935233441202255553541874924709432387068269927380084775451299198142407911689731244699658218222819843584182071648588166407037524647291474493242166509666396128429277038566141419753100301692658108682076840367087260958163080364232066146365400329445699222457038509357663620117505896176509864832462641842474110535540453706669568951025518573603407291161893510928505745446013536091965218559351425378082237349837707684468425398895293810605796819753409222484568621624303520175121800128169659764808851262026665242371074401992809605224995652950460904142432539418603019004662423604932847740309321531326691542892789985598685061099701910542374945335459773476237335208984524658752860420699077721184039068642060352255821840848521978758920941822742361872383810353166090171911110416153841879544395216954314870600500668998185460789267738310694248113310246474406401318468493618561980958103091550228113655159405322795772460331991736261975145141988237546222546613251070875830353955669529761087108654895244919160820596614233018980313064302708322143048896479731191167682773728033210050274798721389795459447161820839803307956022760606703211682105680549763246855660820459001352528254241694808127047970378538642353926738655304457403430065858452848753736915899104521196891184789016376692941175974203968409938956642836687868287831871212200422324341894491658118815451938138367518309446514776866778131401561056704486200964674757876052223881162707917702392333436056297550362029701520243632434955747629111135922162162807373372859037281222633312661619305209067598103603175897881164184442270113174201757769315987107570497770972413987821377990557253812092282086641347067258694263594845254003686206925376017155566402717048492837247188851517892920367942325343922255318156154660119235572075169494763762803794365171269087460171123371742813943769143518621371582228921092145235491041040004885127636765523303951990293136778703659385820692160772834445642542741035951660692617108785066202707608261266240161712606914466145806027303129834344811631926194386203310844017098457727840824571837482242672597996742164193879742988115327177575105652587927492581459991976319195875932923578704129506492361871906173969644266597988806583804392552200367608598821607344705372328823127233467039667741902802950690031526601852587582802098811889800212252788371318239269179138848909966283796325656738302054336802720816588512273063441511144013163091709612091442056928550158365302978410711077137633638047528758148448626464726294707333182885912344877466112738805752666308994083301074112711790270540847020708823066946867132241530270170699464464389664840098352414121400490923651003021750677376302906956847064154007143309337713546693067782157069865436030587536011917915348031821604592405943687139695828396601467333745676928567734833692744362343086051395967999826114926401048932110488456288535357201533888482762554222212215785778493411226423407073085260355632773884388750720231785455207199760727330242644956503685326275703350998356508244096288930913303317192173535410902194208087518172718060785949156687267446446342449525310551623590603229801129401055884199740182404209365541442084061188058624648973380098773244211171814805968229000354535529344700952537897342612965651771066134440982401547226454663265196589474023498434126027699314463211857981196341634039175488657923302735824158181448618849120707208477874945601232002773736479247320200408054475479018437678777821936904250535103702339516898198509475463796334134900630102010384601783126573183871446802370938461087508666523084601379417575118885071822397464614464990850939952682028747763234402121698242209421595754500178682558447563986206234743528424029073640460913595773395087234794096813669617726960118499030211555613590459206401073096053332095819854511171313066324446613203205182348411714032763420047181231509779990579523893421100454591265981296881487718602517180022787188825633240540192718484488360495944271281203344475496269580369840655510271614848001811119166659605539046679095167713710491860154397259551487677185821158013505008103042673427051320948026603631117772499133100996422529399638766792222647550637089207586885790959004315115848840501644220344534305804192204981172961678823225464262056182273359655410782362337213865256382585031496335619744570306380540694852714656917458209387219990931051224837262403532521244936463893591381973258180490605902204048960110765369698662664013926292460185755462525394010101125892667057090756046273448746433195048929535245546706883472363232957897385293720017851680196944834850255074701789404586150405776072868554956543502038003357676104162648950502456168963319762538884198048619608981062549981681446039181053640414628454719551105661432895191923626217200529861957244502779702937872590941660687494247455158574556957170850677515709722657544134453894889308264943963851438239471898262357167690328545694964594786832110728499319582098642907507752567114431126925274743786612672231720911573520674411618315304399581418932354749743873913714706023598017996571126856845194315156983460990390299663821112695024513388178681452907419770863791446790319175082699045943158299350375765969859720263006998616862743006149072264169650881180689019642545882259120111667253685034381409453238138481118688762710173488422737648705025292603200229554340691090399208880760531303896770204242266835854862006378835458978782537540215050633676311905663773043329666621001707841866278736266174500153150580967569327045461734239563764955936094174611655994406843874010567601676115236678379262939116399742826099311886197128143186724657415412696814748454947682651795477992551417948105184618507301509782699061042639480117503238332488517383833724003218972722665275001980617391961241368585067147109024556552939379475440659733293764812059582207091773945842800913498466257471062059176070873867459770976040633446004826301001101498960263389894016854958190686783136956331225770259123869462013049088838928991421615692781844174140359474199015835688656248166291351419718746086606883005778173880576287757914052721846388861344536214573553169840933526426530335419770728282952504031707319934968207758112245976195935959512285415207813011177244515667645178163674389557171922009553013372855946424062443361275985760579634271388817975553870225681848251521374559058286564372139187421816131024002983924567707713710709548827652619155586081361793791092336549063488301440087101908183097321626763027985400541944488510377794952256497414162276886399741279843717674056576280104405348914495471553977733189810810627436104592340750714049070107653849760413767565442764896147969642788166194323486082205993457713185314467513043594203018461330677999693264226783567452014759797006582695946226493097661659501532694990534758824503304467508027887119350884977285435392665800589225835953959187379409120160186490951159966501605056648373675093937845017145904855731049750804850999584702101052755103711515785718610639673105985666769305881468554180351966636267264009521171197947090215563819004274602840352608575343500269871226110490477900290359097262681180567186168755329693162599281992457454343240092606358077729634132920837101250259229819456239463111853129402054405405933947003551839287112665326263859424480630597500761090141725685092777395398877293562713634449265148118244364219024806272118482650384929551637267579235453518613809992317133195835163471468729454153537213634030354078672287517380594706683120778038848585901635834127347984403734241450001799017281183893116102386311638530030092497902526030387699056509149286004179341810479804176869195165568748793274854704524825364109463696177431937272820623212518774548576136244053131925931337559643270784659988726562174150316700375715068575101975529945246843280282001563481936919580521641031098207637180594198045632172217211270161791649040354049847580019049190277645829724683169423549665428041858934649916563857735487374233560949644661187315427711114184878093479809566628015478189673485479598981159250783300145344095707799995380720342431046725291329486758094546378235227129445502972382383344328921343858313262978045335579691277137756048160838856522773028359998672601722938071843608976730925886889558045168486261044444564462882408037173761561852712648986451804822401953749533763758840489648242744510281300466714508128274195458131107469349495757606190966122548885393264978392639370851907559790964701545274680944386649726749871648694330381060300006501535585998584517666455821867763367779730552595870254839862137003609070504136858996144945832192768720220864465708428237439397914216368266222407993527397187723849990038415019840673779241743972651896933445166974241551193493155415291502885891930596878469166918213990374256358397524445451363684993133644686458982121158342813256916728147438753655538241104095243782600643546152220377730017871637238272440704865842858416557239034302861505057820185186604242878461308113092312891911562830711303816925453232818249995064744791888031346655533044454157788594107205302362202300070808869345716781856805898394954124750093171254708183557978358166695335108741908825092183639876299240567370804104662685004910490059737334815457637715336954494827673664728228987728810095725574895265621874357944282076551535345179209812484237508160170710094530733580146047691256821101809526201256173837176401862969595972132976449435305847990670043551896324960998057993861674574125640116673653168266076850124947789711975927238627503107681344885190901629895538094751759789540580282662342469524482834239718876741029370147837474012881847365841633544149033244646863085819731748651938872581687195313425469870699502827801418317504770295806032308828109271113743614108499870625806156735524092941828485620553588449310378484456059405865382802504510482821539823022354461401742054245825731903718034935547693405088079505891974731173307927671292725284554197149925998372202883828617537544211603868291740708881897540446482384844938678848704279732589101994720557316759996059303160300118837675369025626229575649267887491607818602686552548195790875180593649534114737873790243014086151853049578144004975913695517168144109357580597202030862005538672846465879172498990354867127872955499278455661839678476011462002617856580867109821519757699611787235443261371903678938419029540291096861106217606251088799081428707724342515545104343081614058600499986991094602943251668200686112802392428925991335263644390239426733055606979060644216769465734016420080531507161023587244515581030523510140207810606405031928571216146556427180692992056528897124659751383170448352851575416378087845854685133481972535308748853818815477359622338352980076068934440150649369664066956087244117839456960411982225476546336241502417131116823492943906794122401224478169017354325303027271805853514640794626559128100518559600611713535860853805611194884961680552063556133493282897066000546759938036527883430141485432893951578082501935689644199784307373714758863580088537351499221483232111476411607462001061754654576941493614299974869372489644507429499186933943124889303483432817539398668689471093697112734260908463416680306331075738198859722605569414203437158502822089722694674083134655212867443297769219424394255980266427366093292294284800909644886327391072408855305182335462861857877864654910394499283781875378525997815387449223129346223550659967131405440847307974726373609097733916151484987012242527089656961533883206227392995073745444650930189633140280175342512148036936627872390087880489582897581635156113629523279858286173690009918505983327787019392395375215438118046075232585458335279912030494429218504135141999695857082851420460021506286573529216358617791126005634635296341040835465311332936848374285570057812779769693425699196329083117039344218460450852962706877664384974795267495502045810776175205772347356499265734793579246076799247159792998043835174492865297203402293821367161264462614380644837965771147698746862107283751430521578184616351181695271322334130333942279623299003738721006402230367859274350678702862355166423830548227447266271101958372868514293073129623330345461311847238268705747250379499845083311234084907725698382461885777276749847268997729573999226470237746479460566210333852187375754343808959258497434492275956985519160944838723842733244844612257503497948346968736130717219633173611206037676674296759336156737231011376629885144052076321415770230613576686482902380708747250619555833937819857918478742412604841701434205621361908644988743787935145964248954885651362535249385339935357240757821899513220589384192711533368141290630621173503501573379565894269095198493783409115618499869084783629699341573824877938092781084225126113141172944099134671772446495195380020621240765580784749477971628992323522051165714256375818358151280951343850295620129187927377948078681064414499964056166152655599245833658045966464499667704107917256854562834795385370975340283351376246185098008814724734661410724019840683468996737371495641806439169904333299387042517610402291054656045893193520374199617557219121053301672660071371925423501946477343776990571491512398710468672247324262268024526932654689129055539145166365371010298783814120625845287328083965793228416001127664069267971775340936771211848367908484617244575180684164747444682068145185490379651776863083893746469199102224099667671052477813850782540026954215087793388841712685633501578669765616503606534476809545883662435669112206907453283358608625292740934399685797476141679939714199487416866811030742822048018026653456537800048974084412349124083071870533744075569225635704533483955104859461865098944305630044938223044786769619513667559236138854357792878188242246255000149298729161949512065991135504860888101362118314167779168387495831201805403058832459795656099761213892068994642503809114300352584838091794630450146016446399461653596208622646717310643808707531979632848575972570345220383024993134210477577652036095089732847585296521863553096990837776603082535743614994381850638166053284785152259411902499690830023304349847163981836430472743312779382096178364816715214934396693686808861819414159742731291649040218496364440708919445715366546754657807380832155048016206171878032329350732495792604788590397194132159282415421794421973248927145782200146128104148843308733697478220783114308456296954578705590392916628517252279095996179179355238183616767511188338835604108611155603121940357120644266287585119224957745050485366188905212722547752805855720880097798369502275138463872830826316695529876138119894695373403448144466067983461774828001186458575309531927479480619317381210216012465233629302808383460429236773028028099532508771906020900708134518821597777373204611710097192754821092277991860861523616671437322555303930817384821619847395877991975788651964740166579884643609786461177596836861359323305879605200341226730340695740998445495139625325177588858770308737347726799188331563057908845868689978202307131533037760442746658050701860649191371267364640703276438236787329947693304001322958766244165051987845822117292615485616559826606659542287843649540110388453390537846816158341741890659151133671001638047080080986607074149753216634497405233816865144304985548787995597301464647991060174342375104880366123868707773620845501736949866008727846788005141279286711039787437286131602276998682878824954937441434495710437742081315059635061265556357873518778198810410358604772766183947184371901844286187661165401519145176534081584148534168586557556206915537723765700472991001938110938797079517804060078698382219329769475942105957260718650700428646900668414529992953796147178080002048629583675029421115708013107445898539295291607248892122556603761155889000388314872091617377213704633918966841211453078088612376960331925503822823614420670714750725417818087221863511051605145550888416531906790375131037347431087595289155264305279779105904273336699826417362168458214367660789012452825384919924630288110123707017197488032414744741640683811796918426495081296152546130841251978493154281873251523782757061961165931953914461581068087916170514259994143674673112501051600367017923234555459705829702571107869793067243568773537588117484236263182352137507442075984225696296859624140974845835108247723206157893331593115346818544763192825029865770057448784954714091693424609585265423523215112331174889500181430957114096841805953217450684695996265017318277325514117063372137446720908240811960133026931948300296864063385610485882471561496510592646629528688405666759425937361225208282344399021969373213121208567808780473752443095363120526144874798629514154679041441068236592655951054757575109385251183784566693744809408243426773167146143897409859889483069921295555964949727599126172947056881598307172914667772011908493345124511033789994015018188292801627976587659295987854138583497722506958886071944594418823638672677578407127958952650746060891849009833343412614431687825294392440304960977960747978738361194745269927901705564646988321752809487227138056221948907739104154294462185470844513595094072474803039411324051713322871179139284069148653663895686867818352480079064315618552794021917010614419641655238849010128813697213381075899857568194584748536888006137180211404091610067399267551267153026516075277557759718325553634954701640946632288137476899174242560448720084807898280026888038102665381581773116514201166750161443072033284693140139436481470491264637967858991727026154993124235134872417303311726654892968946585484025091201553323718315632403340003052210774155233984718457649314314262857717662973583407409711784177532083679445797244134396698339399989947287736817220215394740064958150508071494440881873003347830699777452727115213929722847145415969269061271602855177725586248712033641916118504703775430974002457504982168532798294686948174379477430914345436618592513468794790940234047238345307781530219574862372809499694741672286853255105379162081900399034863291003115329088148569787569457987957401050192881775725944827032800651125383091478361317353668885383475448849550441043128150678464591406036979824531403568916641166874430069998647950582579008374096606448181950427392687314436682731892350315770406551053971715317211585478176757828686472761372287457511331120712005448653023115131138732274255881964711638896423970738367892333988309967279459999187737571681734937031638229976318856839897698313691156616221073012446850342833283679839458976988903547360837135161100296679623394655574975564753508000473062707163602265665427596241549588210621741077273697878831709735440289993010158032756457362273219009715484349753999183622261296952250332884402099917922465276561910497086114055432631989999697239528166491360324935548370869483095889633303102305890612491686345217956706639968968501647168604350327935101279449877864827083596299352529046881628258967986559797275068868341871174458245960391945362922731551239748587698388829652587322349736931201875695624964208054346998331405782435680191722106709770064238681883568189290807545001809822512253284459338725433653734625482936036825931146354826494876152439462634004516781673153568356196181370241303450298906185613868012432554257437076374141471152745588247290757518524958442761814591240164352440907058563891109081991418110976855471952719841614322301815396094485549967740334238087267658349895435700126652606475410638400930980946514408964552216324139299131695324443848018983800851924555304813308362770977455966633545037075430421780368691159697745839710550127605900496756478712804721371314015141598318969308593071197121820297580661956692571973610603111357646845939527923740871236771192135044597107632927691476925953755277239387798863191517810023071442825423347436029172403565378392048888134228027322054716998363010359623961957400992324534016985008667440089676249936616999619229808903005059993380881806314563182288645601639264208500082066320236376803059463992882628909143426924725109691680181436490040075707064518967718858506547146408482405598086744581069434202447336383921230107420674142497909817986689621056043956552132892022777516490363033051851327212161202841602130255826562544607930791129077737475970372039206763973021337355062324910794972583138872025662831238650593904959896942510259779836447155073226356553408219849541684757138733131936497017081357396145657952211970551704572893298031421135313377689048496323740682729504051546065502001080007894852358218070026775769512023540017163444128479577132087960483105232306051402094881611976784949644842587715541225259434141767163799156711375557869954939866033468759209724438845441869262293833311213758705828960479630347110862394169188691185445887287948329223581954569989485315294725560727867324596044198257878705515710634138227992692120108268578002116417221585725808807208635223058610702909711006287314557381097777476736301008288391145788164226099490925723122318371612188810741658466380209642828607455625491518186649194811004954336871691757853946650361417996342492877134242599674273769418051113817597505434343866964480775738196448002817477604020532807115792861864214781217944223282893302685832658406284946109725902386602445660244660114597246238110025177912812203906852580590421669566792741472606302795651054690901307153994384382239782502462625223276045557189569384200392787007524765593851835801675875355335641816270904852740905832624970342704102029190762931824728177440435972783936029729012797876477593998537285216411165893091737597282605595515076949810305373896402841340680861629952698794808953616375189467786086787262418833855463981816611826421587278864878763696008770027584332674509970448725369518665888122382961071894403611083212830219928081744987007131099912480524263460228685431520420683426257153859916557880275133132378379537151132647131384725211717848152310225671168235316266442749022418045749320794935386603509715099633969793188142714038306195580954930706535803968296043395585495543085630518424555812823433412332686310608938821109186280786719983056700526122137083628042572266284471570153989262123430072825738402034206548943208709642739469565034517159191946693957587265271378383504898723294977066881781508947238061798034066431861146960116986613504014354846876670257441696860852200861809444821798810761993623943089543385191782176245157854283316994457007837046654014558759183631531533876188025046433507843453408472120331186330111971113663065349431839508336249366183221942503608748586186117050896345582642511060525557125851216531861473182891665295220616550005242302238103748112587020158457320454179520464021015838303381457267221180752261224674462995007094808524946450957406010187566645949210811104766891077375668726615893632807804687824446351964717972917420700995582154512384676313292123952957668541675071521358240277072117334951667130121373743261186084976088156506114810103478835839919409218804683008916915607120628884478267187754679141976216202562713518690231888356643208733120677127763425108201266534724508752478490379909158816668517617268289383236025211586845083500041597156317883484101553728096967367185534032312550108966646213654880145399997008256024406641627695234779994052560683036548972148639962741198913723502657475294504663358015356284049206938842177506708552675147594081819131011615417973294436671203987576308938659440083790523473606451383697717542595280289510369049804284052363701584961711857147021726360477460358167730675885880170213867748458849771627149596622451249016894838831096139098793614272336150946735533187560161434091763229314646227409199353932860786427074994895595989078116105350608969879620631180477342267074898729118093428935677543560252435685245424166824717584792949724767571486296778554883424220408592697503193033536246066091486238676328279692903215936792640969377562366553203145934331562705609167528615747610633944918230639173836911842038754626376744470103095664663327416861073544626423471377275409221435224871513221061177551498909732385498858830857552345744046021847900408182992450170321170404108067925101091876795060409002027037705562511352892986389408580065535391569140724670031714372712178714579688896819281986849773769075190898377838335669013252232832004609634766244118527187947031832701595516874829863900108905601474557089358269392995799548717142952379844040300609240171395207354663012562637267891963157480731013107183811484791802113091740989562040107054825620462514902272666861812705213641845111488050750403786396013603403602384939037703030344982679676085190898826204028286018248444507892925784380520289762762392112097020104993358516370401644249397293225464938980671479438905961245561107977177036347460534678199936950241192819274876209031475965310333088791197805293543828210771500196773664675206554408291699462835821037014736030528312321443286122336962745072112910083734017842860432209651564400495247314745589582430581777156789196973801602897154343497048439023858912199932699150199363690498269158377758348182176442804043783180754633060499951585846285173597963586112414843228736197269945567249697848127472897814922211687635601398299914396196597984546446035882038320072600024739614715899012280622947496393021170079427130108382524377861034475364925755360054456378619256189101080540704188840776612091108976011342733591869212109529343740914107047216883801498202462325352917353317131586978342031552891808880671853633232201944599582873134744111613445014016429668641877323311090853889165514395268544986355100253827453625535892370926133706775840884802613860915805618615724362697342995996184278853160975447748834144546488239772149415354716932336031454434388318149915283964640491938738157916977600103007347069382120213718475621020122028027286164576807780323851834249089956912784261381260946598376918688827702441441080592721055037056821104563695868139435565086089414938639817431273134739321041060178888009570463502364071764531730509462537625214597459702796778716232664516710720709657046010389917768626141524845099192509149556001453762332099164917217757332264782231118879264129630483798577570106239532428873053905365405635746233887113704533668045154308634656415534764605637713126974483291473794000426299033718960460275960533593863816949598733279992089335534024405376071530786823269235155590414280614212366243218155351022677319880117804120853991715953862428237395748490921999131716239753140359928889439224732536414790622442467076230785398897730737257613138992200959925508142840905564089239038461194871742558628992906987384887161127236791009919672295306348909369282243445730356955004742265509912709812456510485830761026697570813447787413030893959301858703485510635378738453659442279636348142629960085674864085009345371940533627784988260001429081704205005630479052949444997443177129884042623784815343815498195693606513765323756094233402143744848728494355948738789865989975215669738621920876044262968367534528263593423772546272205297259940613357149304267652597552339308157675731776530848848787856229294549397148875991653497443789277561663884294176486227301100296901309814701230087383680644178110153974806711165957909493062601136923774527966247900075300769639782549851727393864810053895418390963746326151264383041991812155093291229483421501149679510732187615854144981819258102353854780830144640095750504917595992010191995179446772241534932035648085143477375255889649468875140074442204739803860624940952169298430700679293708757961174461183547538070996948075331391257104579924774260199118709032679628101645652434953690947472784583182496473277475108312247558938264205605305045671798517826754062863082131959393044490096659766292692505629522688364224885233126001845955549449216454049583456063565530512873880409625200339894396330637460376718341091335290254914602897280108450102309024598432186294034128204184169494107716014032432130139022677977542950157176532386447662744725623663415396890238255760435064458753012296793211569902909584000662008363920740407537790128616495886343629949022972581146457910392336748863794286556215140794049574381000381598398494995747973596801461407628664024793190421695504147908452320413150282395688213443759768718163196351085071450276998543933389060439676955528982049090980254840084258587905054200869667616752454032450829418222501868851074347660093484471473729812605158718952743674184812425548654317201264290364922360371366509940884301184256203261099181286837469049065851531755843598665863325171051639611110904189419813148535273708247649215490178425599944573728015963223837022690003346272762695283623953323588497158949069347880050457470397301471716288042649540751123036242540116456311536575895108318447707082234961418247037826469416102996441567857458843853871698963280998597902355532449969116902871641258701656918379162324181465851586849605402517476346247437888832831164639989429151105541124193523331243222277276344407049746906544474665362675477726463034063416240865902623359265230524813529489459365233201317317637907492693291347482540233804040221103327596655499044713582536731789954959030894055827986813123371286991728708996285240968863315723548344312605287423666674675287505744557341530912345261529397656384446793250155279251247408425363269243894764661170450014296719334571100038583396105910714438138119767255857868434455229264789529749537743431493219575105957573868251999522122123297614511770426376337214704090481958394978688322010454118858363556905273202335128345673789521615376095138412069735514376951202438754237110619842611184385621598656433167926892865539661756040053746641259397904511592762045168013632817582533809560772620866362923891558769101646545990778482703025093803141976136944322037008235986185706788389045708277344892859168916826732732439603510026746466542483393906286581422304882787764164614607030452316824271358152306983898017898589195797899949043228637442732317591586500310324994545902611649645119545935911027395256549915717094920952045396819006667206916849620270566960879073968742843765203700501602187614112625531934858730550969863013585509000558181178960608379797630208186832055925226965434975285446521650608811910837883234674937509961373209333637247920803507918345778497219899726055123693135104831124809340522880383734683868675608847497725525317215050241553807736987805426517937824264716136585414731831870888823458048417906553412286246089365560382835139541982138505032656039143210988246179410199221037611638792251041609738118281575533056944915876319930878673677786736988812792214210415012018849223358982471853111929691814306346862224617057034374260788496643688090595540923485401902220624834662887242154222578859462364466182302357443911317880759924018355511804074339649300419283104549260248036456998797935627670251364257191165756439680165550865253003579579868810895308259518565061183872612523338824724218007579442441023173936302285962777478975120970271217466495462737840083360303467900110267379729845887726216006292518121675345644766543772454828948962995693929557297183191916309263570892654993061129790779426144551057691145935243648618803787047850544962169752580667272170910161997579495190255071362554217233356026390639527889786620041127164361504008036578973588017575768764573244914059619046206989687731349872735333595454282288065919264011130583392858021288140113044327423256193896451242619620233558638600585616289526611336474773912027591422568216245438890231964130352807612172421647109011708198350809975431458366689667975337821190526033516283594563397488310004596051977644327481636065980123901674249745729112530871396856312592630055686328776220627739188636450220657809770827023397328579419389335401007201908342716960172225201231526886726800058589966969053370603809165490859352570342469628331750408396356247464559830008568478671013081038626348211417362521150895222889649420063830122045688023646432961142616029355253416575242309902574764738700096677556977113253777539992791744147640959979524723991705361438471856184807372130399596275170583703429775786021214886970290444867410020343558898901146869698545440742336944307673830457572488183222221772425417032004858978001645938455613710636956143993397828469390971122550318571643106263657868129247561700780894122436607454445503608730077129944953509164676839391852595196617286455198952651817179162825604352187285654631222995904877339985429352671420148368025579887921632151075200842772096703499411992550609254006859063290902771076064457606913837481354206546156212909089135889484754048804069839767156613830675511999532696270440532021977982626618580711057526577756193361491738623482936724657513192568678611847592818735030659516206303813823830283448418184228554066986317132827409550385664553251166370523834526388462105134446284540374534711048692477234676430841662892888222932886153593465444535105361716603924850125276172925502089956001016454686822761486316617444498670343218159699916238261385531605429283607957402836554976101614372625483234975012358758024133841392509518331861737906404461121094934129493258800066497870016501529082231806640022791786133592115063377496180805891702184993587526945509671005076043390122701658471719373048765650268708177714360307468683133221047291128156796208772542995581258611879782641133740532827908778828363627439985223114627483053584173529044456196810455096206329212648236398660138726445788724460320846647856749824671736674933649146549052697458783625499305591710062464921639686857067083847374283079410311598012197379220119919675020226397695337010348125245175808977234731036637354069235627623880432497193722245242762279622782544340251496963532291089065310620968925722890696554768322069840023632143038415972593733283733288335542952433494852995831775574820080647379202561473031417329184359956164105007423127747574278191280138551807025407839451207946807913328400681587801064293879055089045762634797164076957610006139052317259445853321918606163790649847579692977429935647756634816010426358567832972044874843778702644013654028684605256456369343882326467062660130679960841709185194432629726379195173077803923512047154046714465949851540203281646713534425084540047634304067866390474210660846465459866686283489152428343289184858729493760379531350213208634321342958978257536752708892475943943795444595850983235125922066303249716525413319659011288826489979115861952540741713105913898569057041843160995790748302802363628495717371061388398865226816435041773570968796332404136139679236607282465674548435330772134049607947927444116418730211860527859789381623019433748765210038581319248068588496158249439506737458200672770346927386833984654440244281312418214159765722609517162667604779484846524944198240301836702246467048393034683632634792174795153955287663762244395901119431122441962060768284909878730294830783638365500761332645257613670708629635847158383755289791098602783326449056411034994723986530161980309826114567357652202258291027385975489385872562694687018967745190304162814990908984224666357524715930336205309184253219638755793788962235066501356440914221392723917758724062560777780718153293942122266981470850424589865654286105777444605558867554416332070803871901744673327574127885005605020913171177002280700483971242580985688509301189543452476830397866576308836202027502642635827866877170365081048532816537258820607938206048386590909653580058985266442530466186877843949531525212466760125896383813310752295959299642452401177389058766937271971854598305204124281682226804743915437863548583479627650746214370876000301090141485644096299862706006726613625064706153778059812428003673161703548287721152329879646390094661786659044548651489551461457719110811015904764671153876545261613400819393502180644583942097379783149397143438981237038109928698791357290414582191806411755310591566121070461988736822652098810570203796229109946408781022569352692057930977324611198699024464550001370219991315338416864821430739007985413229704688288398030294371827390005848815536751934786753614042700991665712798052656035000866546141604750427494449922161075195995103831049325403398150978277120370194671678686423796991697315692275716205352905935608982437240972837330618605536540475492412165639663470853714840480079174285871154685855096962752777210403536437578533216003684098383917339295762011247214675547281525732296796840688357283854787126881363729308586535500484043349242306804338784875285803604632620090762110960068864527235262562403897573654226416644849746505144740148945982585814084981358433378807256229055976395774162497292340076218979443164854339863876049255875835763473927267079401608509818923679606319783914775170662726600439083924053257346927064234913423335672757381179136813502985888647415817326714050680177488992726558532552062924825613532162007998754705828905949379402392801634870761539493744200177119712930138598935425644933325902592757486049903070849197843261392310596530363494738965849689275912655238027854903269211195166233901168287206924984102895696076346960622646690007355888579324136801834383120032331265486207600480874952770024242629685827961837007909122739743127071827250938220074091943577536582087911738252462592119279954278236548392949058226735015276734751390066816315866484601714235796117905759278948454316350415755859592680933629142404613626935354949210965453722932379803102997265564380308043122729400706698957653163647223383415483110937672718955988457612314200894866647114092820829088229218015282488696837345137702276862936391611307590140597621786609076182370631459029501352374175737271706570429228160629331586936983089883795836345722399456953055561637921026814265613455618462189961491178710503590086670817561572151962507507368084394624338555268004243174933930867265819221886234256606771896516156481022953263864838438284395208250111737084238736915012157294247773483818212016838045616290808497164748441051539075672842083786935729807171901746481694989197978401653446873634114385165197143164439167468193325510376514333925297192267503780736305863149904839897136541619931602653083866406768335204072657156353090579048576244213991879461752734808626318898475048336365621148385561380044671367230810806199525410406447569372575981805054663849474649093280248131428607439448520417779703063785598708906285693097131657525480200514057941072756835990152828377967102065077349991967683749887029610102495816738035551940980004332667178258506765353953096012304066396965871175186984867525079267827547598482056405420187041086027929546780011747219165644934377935197575691949938792334717109292821651527843735428404180804039344706285375708281033465889396035867030256906125740176248031828624254659602401806825546661820734607864388525143938533252598516243347721483234542078067917895742554210166173713958579424746860780406164605179243610466124622337612125974579611607690875539552855179045181672226125732942530791728868974825318907660849941597245508087219690263072351016458600790966067905286382191340497726172629914299735131024493879802032940305584436205730869408600499093754140712641997712340734474391923902347888329284572793724252200361923298069545534689678261590119673800479156867590695145929300146403501354805086158425040242510153050960516761559352131256052478438066453002782015961375889864343407172295766571559922483766069214833867734796341747376887205064856598405428896010646971643215724347062177116343213230549403691855961441391595760309120861539552835286649304149105295689438022707522828445569076925060177832408328513351464593540216484592787366797145131637311729056751068873963156971319775683512543713328047030423649853447959771688410891052622147794047005513337172012031528821811732996796932752409614858154392406810681877811336712050960073308524746128588842332064429089718194328220301504784520061726385974168519242865554881686154850468055278598580003531972904034496515506014134422863714748482158760241151358430876641661254121324234214037241038643731540040146363721621196531956918751339215622595048649370780479980834218564230691979457870540714973993870347315422088740974366984884515485973700043938683290503028556751688794145264945425842773613369802084283156824763542705135672927151608944913213746217810320953278429427870544589708859980019209627017814342212022389373956401382006402043892704354651567068716967876907128888936808265778158496640043486560059512325957301613678254467392830444801814933553930717633935452369773115347329568641072760151605390674191308212010903897750339903597356071471260596061390966687889344400375474430912458793636755163917210903919423823496821427793051200159276640400985139119059269150324829022276459449067495305084252027882400653984569377636568425205748169430760944249673088981993890407729389126645899391368955169838837671784621095196525310724595149667684710591508824408243409386734050575709064734182110302840268468573261212207016275112480268155224243644570262579936294365360376531799139545578773894486299882571499139896215085656913335957614584880017505464050290320722033930718284292140104378391743959802754662254092677911078331868476082949938689720910967506652164299841813941782218517633470315566282511690835170031408264108977461924269896890548743646122513116873127685315218544207083509299932346045449244696157854081899175524652559126486033212933599088533783407155988964282969548827955643864466145257000241273308038786467119793899692375860619000579031342188660561292899428055092590811028150480742991664938779149061698192835397921021900438457413210311304171711533932433342216199826944463203329441215809911560372024318931931097124099386949949336288433951882871682871006135572729088477812215101845120552769799654644323449984525079088840835585866987518839298758426254283286919254022328008033091855474733740229699717452824731524026306119536588535568782755889385491971879784503097380654426799239853217732907176271697982308658241066552525630741507922865952318566490485083555609382773453102767039993317218361572012421905881005904074251528625909546735094103455688626115228826847268889137006847336856819329371625276783943674174224699457741484285009417214404689915709187833935653018721198317428457142162956001256583100858170998433906721669387478182870277520926122010272432072440920999308707806218855283148689508122026586843525003430168977458283517788108415315670563248532360079589815055897765807732106130958506150803752455528490259628441784924827370247846359200927768187078427749600209999246064726527503575092005740065372431183434055771609495362221218421810731652629706048194243206697643250219882815959175001205565280742080269351722913583826793505303463015375207329395305075510780960472303324475469100705253966662834235903735284746366290967278238871392851377202591562269260144457085522130842835443168176121651125665468454599184455031848760459903078992419990537375658792089865195109725807423519771916422524308107889494333323490435205674767617895699698165646848943261718533851252095328308478271036864924621582617565300979510262781677388635316123912681819603042679472310431985092809538409757480316003269073327091559410259124813740884028610678519736408485602474949308186010140711805432435168721503980910283391496053395132603321146303204897939538167185658084154577990845511985440044394527130017284688652003691291692945905318001935706701005452565983204605210604774116818829958033334221976659023689271612440433489829333750846994704209227908822782676557986024594269454524852432438896814597733655688268463050161537871510985996441610000931257872571126819392688885315776354925460763779225105116022867480668394229408345007853773678067961779531986564672607181473508892256640192202939213365609796000157459219262837500112527193430530706039386284930416447590302987281779313744644449363986576110426427152179019482505714091215990826289896904099113881035672953075597169235003026369882955115892012867624280673150300987628203779722399386701501862471620078716299453165777943045728083480743246248337040583128275899186923312605010300270074016709625969178566227088090988030994965684246184466660837222724517375949719306490340935008529338250293080393500101655210587757770595314289515707228574543199385012182910903633540571202001086987344030202931013626131907282347413068027028886315252405252930842690745548364766964113565984510641491328144025771590486908217699498563987476056909889742473166136822065620719791132405911982325930962746717814777366993095281696282645007118971317904150322165324723607124640932665232299421460769849338658145237738347618774929852828438733882881973303113497880074424798688706574789947850348824740065931756303081018111962786276554523976265246197960835826803475972742863923781019686720984778255290491305948100194619680479953269765446180988316931086986559655989417361228378893707177389841023372546901099362009515615309459068533452601851153627700701321879822289823295415888103011748785079027982027880077695778762943430874755594596478528730136770959961985862158808024436601524970966190885186289659119936915177636622642581100326137519776044101688721252347669369086536075161790222131667680968249178950246330191209186186716533510993523360632036121337969842894431682334299812156398567232043974178100759760972573818109337543723136257732951301644247284481462890957268724309228652456216925523685186143750726689306685672034891757233292799785649114373592413582451310227657626954410715728658267546899268114008195206104520566830828345614207485136631933637611700271383515655134152788490151823233497691023075305998802569735353275111254407996166076047708652183216979784612931316018993445288227264995339648599927928982975706505706536773803863926371079937266602842425305705201314040448726222284266559148256247075302185635555507869865907333983009459761588654591425252573683465112343645614604576379875692943742620920716831307930979470657626403747938785326646826153128034294339377268006317573153212211963714971165977362126836840063902742063723486530785812634544613876887484536681672776954254080544017862533548317143344745983472495119242186877611930979386909686246632772652879937197239652900134344200954134258148877908886797609773935442168641054201698551365791106883653243785230074054883874258487479307265993869593887763523450962958920863270078917506173399779994087916822725473671499845773432275909844042395503974632445583505688959783663069193874557322382107702836215990625613074516524216275712956542398989032783575493850283287615445730266866816337830191803369109096292325996182902168696890997816543918028697366424824491477665532581292665050806988866785863505419708723741426098503032167175811989671764745394969734095358630750053230542215432998554523435448148936379942949500098193246357399345924026668692148647060822780939479319212538230946607791406085929916888363554236635030196394217183522114187300881908792234394931194772724662222378159912234870623002652490562979628292935007812346958361935372819194072580590461490092876975237750038976807710894579205886822158272979650354223639379670895827301098224248100957470292460127863697949907619979003635613296313295650085994108246690543305211815249834992503401241735285019411931359468240062518666471113804500166341528129328287028730887271977293671164677040283466185397352072986991721952860874926741945419857699649909134741494779260456951089789940662722286175555952182750587768982494111607653693240915057296131812324257591894681597891786247402328325492035904417595518125084739263361105645458446920821363699058787970741054098270436120570195991960577278294723392937555016718463650286889740238104671856350120291069996030694711735167044847781601246257168222577449735169266265084292626075821298508909032765406487108081890275460457294578082061478093398739967065358544094691207939771207534927459873276023882317489292490711980194929736573230050672139686528923519907269311374759302387988058065297059308093947959136401693378199452502238838651368181724551878080191639278304762003960446373524551664944961585534619832594227073920734166279587285086668970416387549036768081393536723498483177838826423946014084274853784529523350629952554041521898001944092205324602694007993119978147586009778603439931029440686074916657930862523203298556016380566612294440759488163830048795357358640554930805373500089935824390703090685969813812513323656008163634499974279484440256261297076352439169413918371960164000021263543691874838583519025613965709503495795542833992946868159429191624986724957982150909239686232222713209807835431306895792490546256244605421186982832521331739709258943129842498520511843151174192992075234101973984808160276407365132717458084500864026813828105280943533394744817171956583032659694073703560821271319467182155940971442734543420515721055270916112980828660007951621193573548530029032167666182885297296849256451440249172249889292511265896575352353173100899381090358114187418596650459522579383933013669527998006392495557061386200267555675534506368740083175526676613142900690903768516799283518656512717340066712228179770992525017275396518703991715257784075676565771032759217988825399531152223972111720034572002818803285983712648377970189130025593117081127483688640964697071523710553154135309721292052283242991634124316816285130639336159153825467912479215933362161969125122983409574127195204924640209004687573213422593110051995262152368337250792188209422104554913204033292959805851673575306857762843055089746266064117211623166907312391260628878587750710485861172838201085571555190866399874157086224573091596225465939919452446730023966217395126709893649863673711689661397060523170601669567178345276419523970739704574849175256457262059548022317256137501575651285187522273879150908698150559169003075233996995714550683625532604480328773680026676183462942806078933018002465103265098427832857323691610988906541331069794660377347199041306042438674549199943987105584032576293008543997909324066479967165499364403427019958323206358564036354747125016133746324022200882864233457078159119740663241028750792002891234184055791909866555508506746468894578353596816520338151878106253855441862440827686048024379609598039004252354166711906867033116228882136663053774985376740122988282628844221177599964979446576968404113336558948763670188010345777176512893866651640555327908842605613603222696086975488667178960638480987039072638196975288958482492784776738323464917301251315308185572419432025073576139729103829521235966476014593150436918533360503251031644010596508435363211576704004557108631723524579262036111109113619187246780888614256833337721834214138893821044559646119288749115482953615831461334390601400167585143438822869352948772385353595476778923817607911587409051337589563309903175674328459566133076835997210117104112019273309121041522945730738683607467651446100335678363738655321280222351289602603243910845684144170190192179177095449262311274734154426036488955583401738274912971190827597420936882003368329379216890839332894983048750189514197314681849312031546981677134525076985046484676428779806038756157980254940632403657782842008150495955572886584376120512818000782109084073702879657630131164020253792977737378026991760973291453833538606363666833014766356615840578953114156329151280554715903794896681457927570509906381792215388881587139766283839263090775853273632442561547841677005586463612570490888349091097889670599523599576357271436222531560676241251441218758801501305310602790515768505821696963448398808820479702126170440198815723943009222558344038382434797967932253783132376455093567221128900663725271221710964461823239511144952809688986432398495889958465811865734745171111240774644317573218043405746317611447104855589698438852897185173630881098430031242561734139271765565055922600804256089692553235332272690577542983665857068201338616414710995662173021848879275441907048631676528826060469215217528085992511637838808852504990259430523324523905783433297290730673487001513407132873276792854859194566099959522567398090694100593311668536901572910077613953170956100097857158434239868249440202087279230900857186517650749410173312469259060252148873138525107256183449381572584552575825884042337778772651223497222854856753889391791689960260277100802829498327911264338712702186536931702834375923223638385256207580482473202576646382386975228138453155989469337386500585645429971661104529217673023755960786086598803250700337513690701922088872333852630072067919831064906534463262259002497758655353849317116731598587082258071207779563072276946400329057595306141020201969156370614398382055678728668640524241265235989721127488616516495841546587321164050882963486015565373408758774829446951299533595744500419485870725941432068591301513793176166053760698300194367122379112148354814700097366931027457630782938762440678709859721201717139639195065786614672334359774136841611848011049027467410893006369830485489547711506894021454394699620314442239133373386008753566148679989208922497203562089489172826134781080261586260867829320245163952735012630172741298412842534308161318058258923862050923278017388290804620033446254758652993506172361896963883469041582245451543856515983541578943393948163761849635234088708423556514472244662221610028894418698903708723638463583536161280163629523099098089094286448601424323564447386795230533460974944812806019897210994925275444456244560969005293883081832049078021478674544516447152575030667813397305700122120923364190270934825864864175704411002261092211763123376948548147633462537760630805321315384034433651725810206410814438969681875600754325823084335021309713777420870244374186892568290293708467673067820412653886134741317279799570609230865336867850328637587360648480885271644521798346480778816007008343471971765988337419601956484783528910915601771703509441803533755289485568718311301343490528399780628190534869139414611048456333088274842642121245527516423720504395573436025939581925218146820517349103464309317104169820604956359581126924431784259533692599356680439042942499219294376261726866296374999537785752178656227485609987825329660678119820817004655792965517851653261247715432904563633141817311113965260616560628774461949585269510963642576622294353559306772679355855726788981740877501519979735426799748598145234858087210847093087692012774766365551680986467119463010728021726521775955373865918001833417485324519096874424193952928023763444681981859825091769816391663915721919403401290016316825004309907755320917725001778128994059875563513109891221213232836008826231072148270718555146112810995052887427727814413551476527775646160288332023584549201083395278880220007914044968504733770337191124934871262485726728793617673957451106405457846517868469262056846779031006762171906972006997153041911827696834253510365289615076502075170443268197991714591951037270032857891518297252925948160888689054381088850209830751690380387595522944620199851676816573597675897837188398311121251434442372905921118140926771442367448066462201874518037585171273743638829811686152241483481992498205276087713708169286058229491825546517500904090552804989007102135541070479035395303181107003358973558762205769098937618007585941802385510524344281558527635156914236948413651425682192083925911875426965087406191410330094042342494507390548699409790021182200482235369666072273502091048420933476200954415092138166911845605684422123042299171086516921397485003453878892053292736597242085276916690911491318024573048545702093245326300301788026572688613562708308785396532319366893874307968984810071295720457208197968259180452000984784238761974284522896189322605756091880055514698940493119024157258775425617474756187397608588974006145288991202863274597200582241604107211172546806372493453562736288247922451798165324040019892334868666049394388867840908155176729960769098656329904303227570797527025945417350661200057750578811461445916986252858807477323745866012289861783145117229078506154838339098109942030658774618640155324005770018896196624839991074044797695778109356434270067899492052202514149132069693026523784562797969712477711195919247519051253454984351801983600122843153444967011022175408171013015423082127620843570140365354563588008101043188308301956672869012212871620892240594510507999465043920012539376750267887820757644252477935179682933762511452427176737594444907375014795390069525608809187371433100058930001098347279786858801992066493868870015085612178623444997883103613829759027192445035741707906976756030334579683702551358579890081901693929384505136388666956139507261820597148134536151833098273648310707976370626180874932026545366385596032903575411327192990035427247311854725070423042107425785894670978163042611831848450700226398843847292011886114635016412873678989845583738919440544316739221325657546522897868402961980207779661563758910990866367482464000002757792877411535554044456743535109606952529821093114160383336118921001323007912030364177359551725151295488932648353459369050075382248805434279851319468837556045783380800155449704226999459123371354950840317431931591511006954061014383364882428180978035786261894951440067007925952112329597390667012009197350456429662303405231757855007019174137643294358729628004808145273512391835752002116815542441796379234672396499767296476296413563654503796245705587809238802850824598193172421685386653088972588663896725940145644687046780662928091510939651034640926508574235891315509566817301856312409575969292643971446648743495584956863697932375105863366943839283555493796817149956032982227660427174229746919946452741261328701926589158244815808350514826193722083343970991957821361966385182146588849843616495077595492588105122346815241084263553498494089798653568794002385038470365718245759595809908160255341328202411872835887954566059654697788254350246346823336276481808848410375516297012257833388122332373602863434790995449259916579388854102487118756340363921703055680999842859672062503592352845115177569314662376767933582400178954379799001142484161191992471877048662257584675065031608430552755034780733683707457543584094259616486876326487455967611094710001127409763307675476652244393992643995244573095697820242769076899071244208490803673827753342799034637085170239294101566286097876151033602824106672688137145291532558607732626085427891568472346904418778796713222277154724766268133334808710568815217672228525203386088515185530118029712245582821602274359485383093783080819925441124761750093889548471633041734556953835292929588711425809796598433739399691202588059229899823940153457033892664330887293263256426472021166177183674160317538542082586340346480454125601931770376209457444342408829108347679593889687947298296561107804681711875391135286271163558033583347800175035630187536576666878426401137741629561366475076261942757982458877961305746692092282644691268207345306687346685495128740643203686818655766064103125767211927751089285779154046690239730773903513408737346418093786600824966938862939413015304600586024856646007642812715714800245777115451256274505066383571283854674922472597857303379730034213375410386496884608808123606767816972466644567522723507531780692731503577545507101808259040893975646623293281784435930655907486208494919913731637618030696707858307612538344783122529822222590795835573559206516244458273563798080916749708254187476930514361008695178140599839385102764170833015646236143013875896284660814814076339958889520739709161809339997581148302646515483236857424033267915331089920752061426494026727929389506501063095437083304083362291365645448408192034772412360169421004060598653591502950945405751987282433948889638691700692192853422956063065280288274530427632252346809983834010544987093325214994135908254995498379060119787876938863773112960419184335096952797858223516998299006688750405352310606031268936171470268400023348199639384594610157379273362488936705573774417420225523861363280819841633875904912455843215505754751272465645509833701052859298652993192438730161406577344699101747000332340274063232237935438107268706303646099634509168290792670596473027291702184960755142749387401224680618436660844083304899241640189446576349919715995111128582025471630702716480494979942768883277449902860055941319440789377756552250902553747795251047098976407359799008176952816093053301592277130531650409138561608842344829381263875134877101066102157483304757827669184372188786671784469968551974574467405277731346389416950279128818287467132388715926140684310604452456330727538501790891775688002204960636724007932135573432311724255101031174955380774607681739792915428342312822851108331384762559140425135222916849939835491715964723087045281185983562043200842905362582768610152321360432882083512558275312606665591567949909261139681639588488839569326504286177086424017350853475771726051711144183535292978057181645090129961135518470836888309415143725272110268941018391289795794360627335257826704511564074542281058850386485510412028348190171244506995603867297918244956579762497653596081204261952531047324961483880584761865678553743946974347076986909457852452227916734606222060755842131542081508511783718877674802484024198555479816442221734477271249085606339481739537710209131506666322706475579031490116383426970577939328899039658046796333276128287672165004407988487033946651035875333394502763355692053860921231911619348214452076438206419675850366101312634445605482233855212745543417817364772701499753812635838880687585393925729192804924780844471360042993783668515582697570217698295993713011791413981521021449424706032626834737761554509011315515029681528685466757812971886256226699031230350256238387992635796654625779352085439876004410035552277515607145156246757139250950166908575388573206591227589112384688200370224514017482008230164329388482968394356852205646605928110034360129002487452778094800602497971787817093759156478414959328482375813266872406196615927548038545853184209019465464042614273188241095501185642280715392793257097474753144115698363180394124738219351290798886879152620466035877759510220548739885956978354190279914189473649655264204383758960866483968779909180524332158697410680836857577218638175242005467934319105724792644272912250932303445533245888812114301431454696603639142819082121193858661999743375100470642814324201073457137366310031322556312173422093270405088242246704431476194317444402875937711972654031921435971879464954211589080667838373513981301121278888274873420294037890424882741063884514397737239639510789472379037954459151851429368122148961828645909885341382807914836870115074287530591654028948866440738778271949310878787319285929977874536960176722650110034637126849001550970069853999097992165163280480513034846499678024235143056054265973299107152859813020475853380501526517932598457054478348115432895558366330866000400577534376515162937383029842823605892498769998359152359389294361359525589390600983658003939483420345987120427795693023685034245739095041226141831647175813390665689036133341461906115468847100377013766129014226117952320589473806805901723334066250013691937647732406487975621794792778863859772229572292936064288618757831881971595711444266690505278842559471826241590669095144316481792189577138278460256194738270960798683202956654426857096035336108316843127080965884335396690762063556609757166177211241078547679596691020356052929671671041904241679695001992003664613634013701712959588511016935194674809105214108809081292479810111644752106682019426547238193051188605076775378416679731861536715721928826110271188908290088685762052042709188571290520776449144147700667755193166676670675038657442606544867638902591541216740277223222800384120954220623283763488141428373534333508449709421746774675206155881673106046898511995821609397261977952156360680430837181167338892759510984035573206178213102551356724640666751089221537830768025204417937673274993613376623771519175799111101432849743958714551883434185506551273258213177997646322564436323890062173114816734907608292825281983235035231843939336653936131724656049618319790525658455799477431205890252167258382651887746462185943281149489376079669760018220339653227352117946112917828632971300923209659402517773393664763893076338787756053236108722696331859821121664869993254507283706370252661784053373889070078888417375636031119269515674725368870479937829103251213970558758105523155887944130231289978652197185050557669907418845552274282931653294179878143350958021843062174129105095332626291391234386101957024763007625519835447232349844735239919088346386661319182630893126615865431573253889842270381642578488719663688895007656149671831115163394201917998676264458970343111274661873627500663791649857655277968898156564437768327919719919629913396926075146706423419611068740562567197078005791132986238255748264544467141490824325622236871977557824089438157236281908532671526925548640081066821688233149821180708188671652784776371237308707195488909394805936152753291184734545587406581984884549586515177426559208607004863443097006036312153656315815208044199930354116012822810408803049917877112575425368216963929729538428236968094143619324762568603226342639023605306190238869325153579629639122925637354632440208203856534899022351531817088703463976683311593755128918468423885503089866932824902928020714990237197093951120933995826288620593787190852829359805787976769506020262077138486101307823673420522344433206158491907982976450408417011817203533284122852572540221968196577044014303064823498741960105627478300950786570949056915220099041085474965301046623229157121509687587696380140592913170325142003318623068720493493988476287870595721492586295535732215801804139700480517634321748458085553550533750796778613700550581915575733812205870410181049145778637158358384013337106026812276149070943668204182955331628911572775881009160409307520738229744216810157658442770740757992421657156921055605461079352142843548152870804238133246160484177097845944733799401939146290706217078963377065085537383836394559439141782187619874438293499318622317926083626691377853218542053377874948746869219887778180664808488358594752281241466077654640567837859267474646754155622551117987842446668735548421868893516596892564785875708701094844805650360973415408003464989910572831951060291682256466475915794992986250471305916809538289744969414980070023009603935716109480596285552796977054897162922166686083060214811765166221077462352544858044423841525118541030475740121807027005891433597763622576061742377239046403436531479092877582871667296594853567396926101915796543539408257273215971865566125082059497453741032526793684565704404964349537772220586252637492558166873722740848700571627886356122953599281515718368453201272767906841182847208133937082161924401767715798955396790739407670962272128910688532699440453572201632074290200416246600168237048969168049674788227437704513406905994400308603744247993536786812041852766298379976131762303522819659772459318312949028329027110923704983152449240590096618646783166490199555636458660341648988659387890469782118076890676150259727189639338874890582277642474238861518265327291814169455985139930640661457152858954610077131214457476419530591781000375592879774709090092636621587872678325093325837508386587716444753420709456458354154186876653562123976541614521337642131726179740783849971233340208737475439821958461563458285415391822365830121608188226061926158358788036801124265437454131210673029982957944460002839881025016792949468524598617920903427146378131743993818033273592831236232542829343657702951537663683592171643599097387910586284318998066727436912340723682179471445540786826005448294710254901265356672782034400950540665050095271120472686319754399551446600107811636137284278072229841207475971556232297674015529962313432948153880187291713291199030355411327672124396629556965333717913685811875781494036795478815642784392173481100589197595675953802899361720666046473954019197207823634213030433383854543703248903634831778156819068215570101739584584204973168836044459972100945750165995587713047347804704675083473844893106694042746962716894796727987200589946530989501623522178897415819081663909461120735230618243090742448898655168157140664253817237219005317956872177282154092298488922810482891192174163379332947442180506329682889691075857759650147772277499687514866603430814724660795174852936466862259878348648893866290877214439105315606043306010612424818610141707876125148204227591536924613859017871687813058023899813923930673092671344495662886341427913519912978925245066752783662278865090161445130955014632337854809345887391382777463865858317548364303652758537883972571847520606056539359579237427277923690320396764456936519074646401998775942415092345704516000386528282759066149987096317115995219884013800877641129717995616701364757461451467807165317897558283671369943730028561157952647871630489546965489034263152586312078208473575143663964718612729478861554958781991832270831720748651062787786790453425154765467434717518293813597345312573614095177073839519761116156221619450026175429920280343291146721109058708236387004582421621571930072622045571527498862641805822845042295369476304196263430065164623666572440093451834318129614934036135309943659883654769668493924110050830214295197355995472391544087359919967861898939352657549817804813413993994738564762503007713596625877879903440981232459460027748044087398579236813589495335621885758576561641676630855561310554742801045821140305127109171149993725358018130231198258934417885018903075972974551805191030192337889034030664326418162074312781826014922672221484805879439405052555564552725675883939603974778623379571412153695043488066030037273021598368446452679349988088363411918224093537112505964633248492830984776679433264501551266801473895038077958478664455860079171104561748059789464789877903467259381308248475234814326711644975003730197705557234575079033299262245812369578136073342940468112673034092477075100149618800305740700492886719621086191988603531395356947944098659704849598063199358759122790240120250088791560195105574335505676276777767171122404501507803278179766481941129717969807019255953133423411363288749526761056923461993428723656277830115505746138612704476695256463298088986566707813407367734476499339744505110117811404778258984800447312260124678360801390779873875991378538734673317246318802847578751897962317708766337274918846721197923194627502119589857052612030619364017201501173652420866572380745800074884743066364054711485799061939444468178253929255314781784738731899782824473221883942623630284476771795184787358959569949788682406626049435451368229696580349770754964439699623913859299411137823033951606966029718555588661251861199449166783758389800867349813665775047840388168754505750416277060524121429425382976209945035292230422953442902143427658462707054085335318811843793198793065523784210484585195628477344345205271984104779860599749426586932008562470705951157445618311503522682059349159678645785343231705525180602917123403967934372227286417033290172963791365829230783116500606742191117474405220988807931178621449143219031211237707278703299514839881519268336482955103943119414944830279326905760112453667968188150843285287106866669899515240929471521211907265963783991573670700551540418797928086791346446924374511138440227830084601636881085034346203212958494727952643978788749845401093301053862090003203558559623417630879268557662771709135345076346219207385662734238566113819040231640871589189085483904788527290339825707487580158930343147082564004270420926844052168305521135399746331909860268143216959343124903997351683493044073300967013312878913342309623386113058073644437221688424141100107006764066662154524339501825729189919055857631728865497052080327387652200233691173295493748553996204701672571020479821273059948365243962973964532434164627174982979933344611348779562516899256896687682375197916327802432472355200574547649670103609659986817959048825980984307542421557302008140365663123434688580320445753668170882533932283822176647932284495354923307178958014304858578851832423829898769264685082138769541440841426357315642152697495529961408202160174081096539031561147600475970664393787346247054782398987615134803915219588896888009119628821133439717391354879687737250894624812468358391870532300074634878439962459771403452398965677749882415593334182486528115079058775850143512649872306338905455439674409329453352277956912215591091968496770347491649974854148267345006005994175714951245763142761581648705536317909253640368613962015361189893665029373410302078858107204454861162200477787999442799188041707346499467457413486183622655591469113574523761131943171619631270768270295550263177058467935246202170595928362628123679305618410854548846600886909073977654102304107007603312994901668544066204459612026947309535721803094341085040273118421993266004461683131822291037606143567980753859233306827913241489470443365151535044949411879993492538689900302488842905092592865986037554559105766918090175918892979062562603443543091468194522840803529990401514916677306045743369718699350058181236442480867805659889778438256241702609195511199348723515100571812575477824814803552528857322672007278593883608418573350151003092681371574464645619014683950177012914154314666572041197731935846368734920490304496584232991521460190979924340559148607471898230839975630797659598569179283802767671279031625423865018009172299430824079352011410316965892920722388198744341143792727173540676154147113490318019972787427361596972928810857674221737562251523210089374034350786185535885671693586155555152701940622962872706152671345435319000122647320213342052669627607839806585620021788279259543818167285883793378676341999245487243284396382768425222692264375621387397471711638074009247108544463969647595379800494887672269162157670004450491407085819921241574166305149956451982365868012253143360123813822669219519802029799025203956281605553966162663401101069380790724741921691574023667794133879035714159538760773824479001651041511268281719995590033245367414022151856191112267280453558012435209159869925563658288694880107327020519478999018013910348452182704631190860095545758499054132846376514934079421975833231539268079363735065417687259831934891847757692272881664183069632469642456342528331623699639003353665534135052303519379719933641035711668959817418022380381581634278623284824616918731321630947510279460859007565612463890687176101690610392998885330648867912602063347135325685869911059224395062382156261780518685133056891978204836035296992001196215899142182091390795286519898311299452272011766559208271072434944874312694673366179799257242899249602252994261303969337161405329121565225400506421081327424408437249323819531317581917380143084346814713713013169398911914654921307956849231152080969846030559559612060303538488816888570460841356761590978158149830338602339731679445794634374827305939836735195711136013770421217626073526846986708339618530589110175445544908443952191418335445719758769908600612740810044459631292178368136881663101558117880467717813779656980068643454781977740908316432093822570760644306418856502539414922068462744501279810490055252474267048492257924659642187836047559162193764148105454130591113007041090478441675644363660311027400345025599641262291788300867082323103002296870299610185493485283967822117134685520186880883356007661381525961243039625793198963210616647645289759256734747398472561451250795177881183346736184609863997187754548154686702765009038587224394176953741454042838621938040998307564926949121549307048074383055248199711695231166125811567795057867754874049798222563805231154969530352321005779488894682895900699810895576560673089655334304262813578334259974706534392012076945176315205785842666025073736813422916557796283812778463834953485179753524847275858582578489332551599908883772474368579255216750908576313411487779574052929366501028468022041676906727355236066939721149771300996710301224855836027894227779573736422698099971407137103204736461184427315523430803934239281175169434069295109680924589443376746265127061616599515896824888141923945538130182744150507862619342307944979626948773484073584701631842225073760025213675110115730626686716428938117655850300105484964475868553626471874425812933879699685450709383652249731495008057463197999690371451669232023154785854514187333813830871709490177668952346191891541013879232034110766568465312363264673709155466377281868350435981042746081417384753876752084203854354996381596921330149588110791407888731400006557723933391383980379816232474904082189246015723456213469991852225254561523475206498521833045981338537825621270342685178384972545559350330367693783752301585180679136418869584537358010928694834125413474875629450185699779853475304876176407084722429014502318537507815858599450673431658394835021497161418617995012469926743456987349079870023077711587290921144833790686484713526511112481434754150748211979962455907249096656749181056808952142522071548107781247297537737493800371533815094933895217371723493686193593166151684481406969787680355865231847143511176256108846188580148960784309626641909446553161863778100051823238115480824305006368008174892835100982419888914302725222287497423202217568452604819263655468181052449662257611637007869932204875235390503314967495105062521758047882719919248441419051854163372035834231120713671615719273150597873124683478581163510879256837478408499743547208188317984536803181250298095997420968553781690359626236588069044789494892336279350493069321259585926817620749341967486491881616092621657894920563008458015225813496889152432574738408068487833736503148302177910954979575892853664565146479826670247287535811566577498934531648762551088078639068551262921038681387745426409439410374468580221395749907477718895484452542996310590833298127141879889784292096240299690528348260406503219707424779622664660194020894959571369642622263950518079821329345386717565525813249789677745423044586472631863010417336706053342318581996404823869469753219743654468219188622917522371507036459322959021552047052395583011726465076458085058177052190877468919390871296945361943229378491521087538710284056361300376842543176439736036574902438964083826799571749144680860518574520811342512799914180661117040777527489727532592348317337480684501947963197568478114843772918893171315646942145178327937102731957166433862698228395406528710367061035033927189900637048689503617153511175769003381844425099394843398674714902788623993224560026014915793830427445504274003611069067273034514010544339537738397879875418408872790495414742211909405934966572731746120663070324425828250667899664611006654345546429895242580256860279302808532594050790800881758107535026532571029146126089900921040434805878953269442611864354148971108382141410121543018642722001078427190625518592367953701189655440184887396816159602023718956728554717025640196433003403296169302606650693775118067344777924298675299272093758791937080577007987228546716168815777885078990643358303589066213837933826175893703786582695061002342843423712757840770285997057783018867361663128020810793577837665292824582720170759047992901506140322349765898168246441676036248027333163697192766289423514648840002835083970169312107550893334058512568606335587292555032606581373467821499097333122817599017456047611514147465593828219834211129989491785419839854945016907909076614647887512944256431539492788935860069973921860424332741316549986239566338054107420428258392701125150321690582830458775207301362907933554112573164822660933838889425333666012600094403024083170225110582948255020372987511947502040712444963160675516340728555575954265042676452273917364312789594149165809901727924311788694127283019364862774014213282899416299753859865024592547305108750462937363649024410984347870130215501985575802253749217308299674230933477869492843784574662848967423410069180309140300520811729415313723721927649435103034022336061822066531235404350040974889765770919264610797429767128912686860452260469714837961534822009843003293857327702709397585396111692786668866954651064585039545746099060997376984790184552729246623361353652339086818101829521841767786997970326484327862114465716866988846988391697855025580679710196740563989969019275628291201615867774221283699654469658876141263626485574931719072396448110135145201676938299634112060229110938863940621576294025302205884224163463046358387390232951540450079522742009588022065086831719430413338893846120339126376634672911275552648855212540007046271019765474550254952299541895604535068967235275463333671459915486363896349434032232000205488441276071439148187322698739437596567204307784669129798742493900710083326828745666888153284154615708475742513373411163700297068772963375357192895202352198481911817791569834953135809028573036097614451765468681401131052153822573110215711423164903353735447719159427089802234227977404285043657744657284182144926271016971401719493090845464836702567963742827668803736236143178222558012140416724405754174199534083328825356473696535638200613560432717258820342689253111236922752105380278236744603328229626411940203177502883055382799391142504188380156587646508056652131993296140146690217478844652456027037310449861293658151585944647351250361986127821018260497914078318797502147447459668508292360239821275838590914126888913835347885532270842560821524552824800487786865163546026534191218042803338020307094645788885129978055950570862522764296859217218105477007972384286869593905839325212730740366050002062520709332936445061049894618307398067584444660563496753325562782867252210751331353072820354262133328201489827640776518066829747443346937017931056401247629414845778008164654964628705645306226436521154626483460282931843811141879384537641277352458853073899902881263033525760380268119990000707597514267622878255937174997255581165498296115623065274212987907094432324688358016066562987067677654166791330773898204017819117558449089982849102631044665920221468306452971229638566662572483065906571075251052664483107358214732552029472987772819519066347413601121332116484020876855155300919925913004106076496312606076630163308827064815836013844101153885500671660566278056890764230739644011524179540190835281726292164399405717022997529725163695367662806240224729976696238691934246786526864692239341021394389583235971831374919013387496362948110152432884182767607662140314291147145887173200636232786710517522905628417518137032879506896220612042471080988745867954091559245171761905401321158606397783665638146357894414367994912374369411912492241130107784832433497197434049748118920639191309047478357596691633379471477291374527161684276631913594386444040670226116621445307246808331124517030652522738997561212655401654056608892557609345303182713434667547728672391872624274708980192328541774149055397593532631441251746973220271080218562964949040958614998399991765220651841096559025884301033089525471708851602531246367514614733617188791336133035543770299169570773871840305077113322212510988591359237028071518050599139832998189668305456732368294075203714983726266860179864405363976099659864716118012961960709493660191731844135373000192661974147502485337879975765148559857363936786534691921418662253639142903843898051929172157318149853502334709641707156760611501591823370394027997033218821012084789741920863293840286635495712988752184379737805110053739051974723084567686882904151280154092609690233671012172091740761405584437566635412227324053155967446481069278814052901701382222988139323954676692957568067560338952875886437887192250872550921385051217417171056320210028783859993763861374087579538317399651258001573474096327691080045963166486109717945585404983201682070092036338251416409502518819837979182133319167348918081666589345643187588891805289425668710481688712632491954300225428174938158102878241236098095374774976833746821345461529073933123236286441434565339726759369062975479827569692722153521362078197745555243816731194893728837183230215053793703329693548731068202058334796255077208054749635034726470444578146574024939613149428183274298029702276221481728842776632014688214489488901797633185002500040204559152337807569039260999324475716285837800449826557666365689523949406058777297025156543916553639774629125268615525606389788751995970474669602221590990605166174449451483317618598859411568192953770354322140447309391357523778213277967260261753768209575445249308046534432682780815007218491505243826433497215993268753331449965488462421719221938985739960923333665417143833642562966226869304851453517634937850745693239006503704056760556139533428042221711627177882752486942690149134338319340161538336714128251560448139378083788932920618768139423697881052859831542350961547475981929792846266671665199128052183008212915747197046002012298328176242213702618901421263120619154423345917865651727023495449676480590070026233211202098622002620649781035434325541718990273010759238202298752605383544011355278363042660424337640208376241339218608642126663452817530275036110809562004919470121963986616519384036362676368586816950202548816411800256920735184969543992325694791114084926145057083752036036992981005945264475048232351566302628150194744359809518764476492469112244414170181450979772787353360475553897195917426008844593894960427723740707777271456680047119998227771353131802311904867560660365724450137180738428731308717620144382386801650394693849629621118968201089044935480644518880455377729654943533835245025231951284081471422200707091095229349986996243635947120404463910726398029490051239182079331440858313690069869465304555516604101344538804710135893560995834336478999459613014622380459742166321886216957319010786062490369789158301767595171977970404278591686812828471949204311574335807991407924405240336483286566590122682860112967432430928599961964961197362946363085185688036531559260088620195557206665529084521701501711464269745192258702955206037120625467797283237474461889477690489546542948235943819610593566690810741008569670783565417060420388001023393757357126826279604894791806126253908895488431587486426246852342854582915458977133316347450009077822396307297379252436370076567456365569342627705638208538578513615983705106401207518363919311149671452090267661103386230179217325902046670822607236212067842638173582060242912061466953492115380144579181738678263502054588978480281669195784331351355390624830281107510448798726338065563742960859440666955485406171955245548836658861286660525149193164558842937441659346288524490849889739771788124985903533923433645157653753156427273347730149251198992754168341968088988177482929577203574254410209364564784780485913940801993590282575754844233095337596077971921863327726603147080878405568115099708187210796247305191810646080445654946126423616660360835079682612164058909225765138344250789511460111471230948393180763713078474234426958266352786374254743664196516109521259587318980318668054064566969952667056802089263815444525363375010367246051871924917342213736495108034495402105248672424663043750925956505141125982920737407397056271635505806718692503927874927094812482782362196790948637713046721278798644790237459284320404611975595856605488877369978756986230487614111179406345151978066553631192138201734120692620075009918761188264035247926470926255364923543283891045820900124509071848553396361040495726705265440901673548910254497450235346591564174421096171107694599474695269814036112945556358802359436218847627437677209632688403545332694423193146034102831123413459600217922300479008851633531462458527123313195539260339733172588693338495754082998616463617641889526628406695242835284782522283122726987185005392823007482412446356598986855246751268382165168304368827466965985831423504114430575658075574149718541252685317514481422833452726492915394029167773812919646774434677273436650851036921022722441642037789533749746536828738680327009433633537595007168432808277389365127126681074827317406199159543925753057378382659709563665721786165704607541490357018783254006562632314858925209912380512434886408743451608302013353965625234922013676826314204456396780915607167827867658536709724596272612472217866580174884149914227985671104941595449442097095356811712463471619554986840366829183419305599347884037156934160444133532446369653269894506901736142746616682147494699815132289586356643846960384278891408920690479693189330015441608267637038354675974330011921259412715508227264066023641490847882325705011152312603747191195122464963191113120684412163867016812321271725308249331271947862222452561806157263093212171125587407490466817068679268229151341482779320351126097995328818955656714162863479766046348240780645510075793013524051447040170409247870422325921303851338205846696625994498830971991797555874750045789057045296026310655688192919851596395313035599925639485875621980174967910659216444287806465536772892180453136997457889570017062172523707428116223394374354057954309124592744566020201452355096154821331028976916808037299262604813632675978134935201556764069493968997623877319448061930023199971060065514800953110080991636499606901725753603450703699094120372874612324162708677132719666809267673802246124797812058716449542659456417667321789019848949452137804926602490393303494871601910242427832293002901729959478461716139582936175321855461704807697432953525121913336362778589437526134627955380092437862780129744767627794549675914885768925902221448648089833527545706902302413016676150775579645122963993927434919668754228479444940943311709274142693285102231739883800635161388703630626820682853867907721597651903818972694042660890621291318349273314617115898797215193366466474199091791819976802983920021592423435869164750379193207063907610155773098192409178298854569081729696849072115422000165039837530964459372256478593738124262896547523102906238654381093178092390763972169997600476447307154650607256779676232394063150065711258376049884823313487416136731409182234726551836424826441561017325059389938974513587163486547123067049130633251099503614273342886993475218534400985004836855296966623418251809626133433958398987889928172014827728941701417751974546162988643226777892533927740171941223398911950764934431051040852344330214986077763018545510176184719063347435612892592751927493633461903286233614055679487706764330179377751783032246408719486337143126602813346919654199739727006390911541768769181430481334546829188245633724425242941755460193935966749888222498366375509278910834270162737522407007371543497066936896555030567575385360137493053160206596659954626183239409452674032091902408520354376140914763646261247270060696865736155136399721644207682642863700160208650426065961796715108357041251968177202780405571271589388877391047758195706610830105751149301461725608373540795010359703193169337434474261418772370579563381533263709075816264279344289194245225684002633095479840295174329378557567539384440793863511891239471008108993688731739581524216617800231256547245196244816233508715712211411847460124377745856052284587851689429856939373520118012203197387365332545860476274706300585324155486702177160708594229346956785799571774052064099476163757941902001779066201578814893240502818519415968319808546888951742629638835890881541388261435517831619123294779331890270577048357005916129713806595820862013228455179454383917819172528050573348410840521430041859615770705841180471320935676126258782799661937340934047886867907419530308023742039769240687577327563781463396968647191950912282883764203052842771518666672276076531088775814252660313406667632013430093468158193518920411792964067370387685948564917851984827630087372847773091661607406694986599666644418045670829251215917930603720137244281154683721906766548238725432399420042180742642864213360837841003091613491016040546742954515562827434125449499549705847021714002405286822570282059125197113904597461699969748065474667062805820742689199972090247883985587189879869258864374207293490499390394125593313529013319358175322053194680465377050702335940899835360310033557268958254752301199082642452603038964890889531339367093343124084237563342968740731591158739515453989417399051317990175967928550675774826811747409838847833333872022540993666471462313835550433102122930473496305257249216147599249314692017702684476839376640211061605463386550006506023495910245872710259704653893688558505452237415984173525075578910383068775697297126275848072831542229408315261659706919763535204802488037712512368657467702243186339656256006802912133726392035793940446369161349561532373613912017404463115486130167918461729972675730876326355611688521618424641932603849308079540959063731666756076347480096238594248903174948620380305431295955695880078785117991085486907798743920971280530406921825239733030931557511186640269685532149801714620885365742157219778010601616765352409959625348442944660422417906792835847652704107840383496498745746056570538344981565161815808764958961429861065871680392494545779723634692387001076792978817995065084691846186178699178319685920667881469238189379436761382336521196770917364082124302225155573859664382995543305057116723831958661899632957154114650600021293680943825651812569787752034916071522270870523033949587147358163432597508917468886910627300916397481601681474417348783217235692602514492991907422965861412197734096739039163628032070381652947931432009175769053646673372811638662319763613314692222738943315750886379065309482926149252001547227803167343477765156181428132417920823770363849015541809023190541195032920284067686393692690481259944791189673419123912187749077794330846140570036949766088716947681233888679012020613762583324427254249608702721588146259319405724092274826075960862418164689106353602237591064859718044336834342104920663848731283798457206456554166115851737472666692573957042882297531149629262347107355530268932573514763206688069516774930940192032235725847999096824601566741431951358971036614151814365794826095317266348604384506058345904869427474278754017333199141991774272783127864045760668076734873679104977481000422328122789329958075975146473519197299653722145408307862412492676259610857382352335908451213396758123937428022812416623457709394052125316459909999972486438085253209842082439185238088663640540775177687984179993231057682105589776155988675486779662402693499905897104299232510750874193189014309032637144942137161740675072276649488292100796070117242624935560760720155010485135897543241666751172008456705957565347321835641382752228540672694046376912600699819245573751162722290261932940267836521355194950979038145129582864361663046696773123192336400595156587348201216225067173297951702470188643375862785709692515263353272862623389659780656931118122611442024780487374059973417575635323331542097130523690743311171429207025801839473650544668908205988855281744250137096177830018855220700951553638784304319584553493410594173355053158016818067467390150304550027796021414368870675280630893277933337826949557096122348313710628388676822567564841007494269252230130420994117947121306081096673791070636914693844185051752291937338904849869834939342769001563786762719190861254246396463856924737146301900697436717743075889987289811195723253603081803269938834619983173236293446033678632056891110989860102504376778462143264624252490926198861195030715043514509412726833815589892846477284662958534995765938152923754843953616431469598748402633775726595098822334119040689229578879802817862664940590083387299586444055638559379501947056399673344462920130549959038358278750139455373893310777916223153656823848348991726439423976179764083398864999756228633587604328934250146786867574355509102616075766860512352081703974796780761472944896004522070982343887206130873627793868075238879625119152203255081574692013162972443472763924224387804127721743933023946479026749821717815562554469574294327800652080658100625974330910469879947063178147965157645144220649846113488098514822047670561189782771939304448738585479015812246018721699136070749498557569571304189066904940984010406893616759883605867180626400075690219033323577129566521255355543970290644604021483153432000069988455175581945213133416197063150610707225657483910404754936269301715265733987517118580794506194234670904043181092765584095289029684119061340123279504176475662081803954721386556556199673894472520128645628899262808960428310967454229432718841630514853117357123639175597287575852155016238098776423729942687465818558440600336958634361635856625278724047405587061270697390532042039797069411536992297354606612664100992892250767781969406605469120793774931960007800125548526881400901821678649301799941618333304610894811481634297492510399545831517611931459178296339232944149954875787270124367163301826001160482136620227655921701206054807356737013425124971576482329852789958342342829572031613906822481674212943648693702016711816532023266216803662887492512852498753810347642587201671532476059709686400838955803853839858167783450900236568422719546134855273204937127012604289216032064997783021021751105974591910979889231514956801617720947932053838475150115139135255697719933888152099652088115878437246168807463926717140196513225696677898190480279270214850110920746538345199234959025912975705043871244013889591420611290889873002989871011974464913254974596404636964464536170594442690691906129316539443271667432055715843151120067384739198721836162632115845191513248961271173089466673293566036454418285523450595910899614530655650124932858808146626381718272829875063577740354871232804811853710250404375406190800910217003293897705253559573258750578172350565137479898958393950651833032990500654173069389230786013272561001459566781935562114599728622555382661253959357454846006324360574092577942605906756609452241648629999547008041781916712695065592268275993255652113025786195223151323437898559971294853646301809451693261354198500766275982732785085460744316106495123844357244146475834675820137477345890952126892477213566812740810345314274579023156336975345723378090779569473761902082702386514265374074761999265895916771280503563052595216718448488574222287573850713971756018826234560465356632225670226125363644781485456164503833351682230087046229997567820653971465174891307983508226955354899555055283891431845152939108778327908077466970073412198424381931450585882051463592075023302119684307075129247489415929116011842653331355073000890846696444488522484297412169392755771863970863433590761743323668023409737152402027679225640231147683025009589358623166687542883185714517797997348894964797840281293697303562547610499170895153865239674268814944252568599592046001786573574722815525559262532131631785835805197974234195783971647103500675601284365730400560756802803204976964990972400534034486973173648528598638348137877617602046071986136893765244561064191745013200924699172599595601759944053779473943737266162876903553962357693589197814928022148500091932829886545788569980788949878033549114797276409663258915957026770114220834747066912648542717656758032336939106894673007372207072914121417291394752634309166241071714129168119929094841042884906796180045416572360788988664060967818788879621124850243015308204834245934592077834312950785133981580319728183860619958340958665045820970305009928244954417008267493722083062971719840646870581989603480980188186820296365437446661067064553051469851180002891939032403474817506257635329919673845258042872454492088066258798867001929446673789002313222425375136604034562422925710165441458162926236747214465791537251755733416204314129810491792638516786883383123490870602802059000719766542413017010100420719587572846685473175700158653756884725779452859777029050417508506497496465748321952757779255819461536820796499816161476894140547559155453495679596545001091043630855556790711948261854296728888034286737061303389587875200174371931488312488839484082664491901578383861255588815509821835594659640688198715131822631801226656730756936227017309246428311601318076105937697149370171367756448955719415843963562924704413593499834828317709006349684639798377922430153825100535237367646225279235746219048859692240488862387991103847307026276789280153438855003849490497843787178515154364289812023876079062948024513312683535021293806227794687274692665873460987706089644163007190154838538596115174257377498513346672041325210194472553283839403201868751536315200091438155169944727304378609705597357975854753895967933976176683431178837207828913546423232830205090894534053605915350253748712820289379370280127928877439064417958370856179048121117714504473726088739667442078542195824950216910753569732195990291294439489464791533668266120559669271686003019338354776596929793324505711040563250669125647289686211415824673789159157601769368153137160921372931070875943752879371418730866820280752420686938455922283658860388164779996647121502231017439350730034859986802483631428454706978149232594931089551308253231502293192293137448803183122623375261051138266711768839661929383770706709407105443750172488679228975481866621541075777067887869292427932533330220135227626517588420583833703440883870734096780253796077135882425493939391710759245785683168800383623450390123086390283250970102135280115087681076421596898177652535593002138991390870421274784994325918908132415160995195202118415377717355793236884175737830253286677264506496526347653997052261117609052332125458067295654438292598122684914548867144988810628612878603740323063834066502016872380230474396237720282033497521859786178650490935347247499631532770031945464576617236112704358467201937561739593888316831510127597025591815079563432308303150780254100716255076327218827601407942789654761254247500378427028244789802547362869406838540829712208703158310885408797785654414174572653540472735154777670130324732029080628803221031734505796972246902599109343874014814590315402264608491782825026020472689692161870345518035854480370106277990697367987542753664290258395592156481068100799159445707741780981487865412110067393078671273451886528024071751933360579618562765806475813449865139937676768637068366742223208729509794252679835554805579146413046464540231011123185513651742209903708807713176038220118145510773191067529416103799395280794469498753734315054816058625361264223592852995526511770374381815261290612741138180683862786092791544698443833513357524106871949617830863103684605227057751636601691390993601230862019114080288957815924205002856677877242528281327839272362286693520353757449060354450743831570347043795924207298599777980596876309027985203796127502267767064336676749286709051535056293346897237800169855194596600389496910679731552787376684342593375712607690579699628314211060740727376666317043419571726870710601230509863055152729315549318966904518697003366108528492534460907636057110726738423400564596499206117391636029010601020007886231876685344164117002191410978846152541787117404994342873705635639540072294495704565995272868423207560054831490121056667830415700748983037795205650242682569460197296769404752347990725394464209192844869710155462148042764117332809409345238369215529976317298592667356228447520506449101491995177214876852603731606860517417350135956366522013914671597228182309501162375959201246294592159833884128901797591077174773245229592241710794225919201636509665285484280770754364642982480927414946488157871471128455967577101071417723035954406155580276370612918873778880895917099962560299518757630616335967131400531905097269865552221591094693262305507538386903496354799452302526709491485210826271318963564839764171237059517551368298634880074528110639199129462344249361611902609163950003324215607452318788548440168292537855993448709926969769964122459926890728006343178087653240610293091702423111444201166621547618858928148268032833451870679346539681239482378817835036830229384151503525041340524644429292779006272980282649024842875623379910718498111012623186777826224197136485864719909120066690757054034542830459401898549190157425455691193261536937203315851221689629580168267442807355863333483650223799992020158918473590334673404869790791114842583748583712981617236326527875411473378561352442877638889076610242545691476624189126459921710776684502343725024032394282219963734413691281306257818996143895223608670635632052081644634959392990431672000518059904135406392529055931799418834446685452231804218502517427984295576217471793919841596488892572454010371403917080879858777798616259374216858722629480877726869758267006635262946992658102583577318968910249763866804036949766279308408095884367525328594468156667397444716633814540270060898938154241041059870060645660280297377565343544522702210456844200544766825588773788170207938848898651796724061785910225068015760317809960808515373035651327177490843621493605610971826062159303796027005293417441513220495562025740216293242725538317802930423549812037622031151701722427325945326058563913847221232543521294541439139755643379021559758044816773141188423283047136967590669531114109174019398158350495393974089762304383345048565081412714586050479332623986529707927934676810820426484286534371569736995346121588763030175691485484368679035355609944544492996968148986693083190690658002178637423201095776678683709870828570894910491019077181852903933522537796429857151769661490783524047852420188260185289698000806761865761399957806299828467000626309994363791422459060115498526541689319624297708260369992882539399518467625800829656741501178993295409523140643471644661312700452586702397597817408363673565589011004678951757596620332749111628087655245683615391281877161337222896019002940804081373166548569501815741343952107203834242504429336814724432327979039400442081596394674523955925231379534628882444557467908455947821525003260868086598951321797350609804314542490964053045575168935621596032947011767201796781746470239987043657764717018419535944532497898604923569615498189211056267550976472786334004229674427067550944585224344816487994383882583858567032876126316901278748595219404483703247406135958043546710878222885733849974853784996252871730054685386521563433500263547671538878686438057068418265789653802972596981606194836009948397310305652020181844205092853589904934754042973791668044300291695303183192251276459712862533005415148903302897950683040866253275263968210255076289641693575263346876533428097977716489682572399042770246729948567327952366826812789829364535412381070707948438311917122583431054003477342189017413617315465348751933568675249410875186688890167887675633501781627286470682495140400038683931855372059506986474102981014760682037704651887538946806866346115504903346801125190528152176887723527296021022057588087411829272968711390473007959564699864983590547388729356454727269572144439295443354870401563419596662129026225506117196082266559939101112071348242240002608323545636146949952221537236091793429210478280975082702730815711743058068065184532609925115400645331136745884376654306132315252769900445426173404486034002070283122201596196365016799122939113327185165849678226077642469415486602918292520187752528632675702590263624669344686938195232678967897099565963267885415206615396983508837938954294828087028106465411673380725276603086696862013103145915222382203286182394110314841921426754875491362583598856269283132595895336663087741494878386457790383805735537061401652354179087243004601974517394597989914226531156086699737937022185419526269197518488630623516730692737427511663248899502508284076962602384683069233575237716048193962187261645278034592066983802185158084008472265905317940921983333051168994643677865327368093524909026092919386164927083480042775682933945422946426508883365947876104103036405973133131833848654149575116970137032647178275346161085167498183214339958078702690026238013383810341367300073060127613707110336839993695880585801728480857901336238654205289741086443945451996085517438305934019748546751003935933542038195767131588744741275099339641274672336217007902483212011435633544164371083562037204028454944159093112865190532586489363154181979543638215661872083919848650998572224254745367572878451019565861308781121610988327588867168168385400296133229307974730540119533467706850004087699085404318389796167611656188993258249568868608706717820741919284147747711519832788884907585050674184834042329746490567799615545410527173076111843978078497725530305804304249674757014354811775443871353597376846375708434347392150735638360878760909606226069661055752350576172587348244532642517015714356759119201575650063069489188889614875490204454036485251072770852886415155835675563968410944603802697099688141613409547974754850432875521719564121231215933318187410694429094420882326434123300680055725882174131303988195051568862640459225515367911096472864243011619892631804390812988980193137871871956274434698190898795049566524672499713729905210420600684549809756016807198448085759527224012453205277787642985052036108191153449622647915829970488471785364994391614051079615630412150919493992052790386968649762474014738334854972066022404740710037797784057174296127175716204456798531506132695119256763853143551197507410587452871067204047842951441679440874676597769785791277296249172082466473697899860244048288212905343375708717101338585528596143007683577643231895422863804294594850495324512283361321162475703034205755185125960282842966733188235458384308062621265064209453193927036622444863844196284936541276592226167972215896096649218463601332212451844386661317947430887862755525304217750934934459949230048880414385657381857091744486833872864719699009647991367455487711472724597039237745305612104728626248682616713564818253001614103241134886155043530472527887231483306265150858570998895680005755616583220673055598971877630035623852884272307273198495016855986890895904653546299807379464446715432693569084059206981752904832722049914314400710544294045630272876487576441334014062741007258615655600562505408234301225698296411286349236147321403376387667502014489927480757698608246069931253524759649890132870532877263462675441340297247156007657007344125169262270194669182921244903666253311531539811545922813303776363866187073422722358520270761094281420179076776092130710387160132952313159646363191460057392782440293985220405299760653530585016110921788881140183101890217458029715289690937586614149671173917797049766955489693067140149168255915352428109905664554354678075114424420837127196576191611509915133513088609513563004735063498201795267532537772647179297488233386469677522509401323709712525610987827278758395726171280848285839833614776344709402129716929449088273979932510281447149971330633189902555982445202555953895587765468556184517233838967407719851787308422408985547182199374447268258382786387104130856491435374980272466401297841386943876671101757349883900728997802590136376284700563142556891994011917561604784375683155601172931181492123507012782558907048924803104889118509067564991514752301447294301597662350229175099848149772368416507426883951093487159136150272400995182401426208397111125441408441287112655341243719460962722815025803765724808445675900750245027806983040634266434036976769444771046445745119678258709596459710623236228496724025336111708242271311370260121262860775162360976490657950086922021204180990841440487089833700539135881929350183326971010746729817980391258604286203528877726757778847550515619733735995982659070236719617846356877054962273503389035380060096099795943640607312590981843855270483047647031194536465204513750013728868853437273142472811602035276550091266108478174921577666639225123028889548013464942563614329875706914205837571589278552197255875943042685365273035701111654670122160023384149302151046569977250563258214363649246677213230304577242143091392146897922094201990082092222221329937651866447467284258451459478675411995592603668392329102595430491973943693235518295886712718282414027155304017978712603845786768931135148278425358442211701959058418217582520603303272894896795963344652738206653120100195427856664561409136423565242232252194313740898931766577936340508363218771358216471575899779703958904203025154894141912621445682293569380691348117781540041202223986552240620351847476997475875996370650572715414202399941020894362499876697621526326368302609378027016473923469446517649176114345805314885807199507880925621606142499149620550607882593646490217485304497249825668762366718244525289912032057771255067796556672576879299575204921684619101229448920473910602560729801434894227545583058889750704888343734724707112510872677671366914588143240379490362143432205284075377065406985361621906805909403696154036517069398295684500435573753055987127205971517749604477952553898352062396672937962126408314711622625694185462925781277749213422068853161209983104990996994209163541547503763079226507900550829182114896787079085444883687418518882846443538773292266611636696039328995141066968353134424082227480719307264031299814565091672859017176383705002590158042941120024564487460690844016195713600987686833078211679282089283880659596111222743564024622507269111490238843142719448234036971341531176698707994417327682484216940104835101243538336405393693901792966112666164351478845748915425106247402229432319891709168060606566706519059416406011189200020069744812355008655968930510807237105977682593717194322674316173351136249793984455172487384296247509098712125791225368480261814557546202913889049118801665003353702351955860592458879383059012141891460722280513911600584210305772412609577899003812848246581289281105374601703353198841587659081217833907870925564584277983201792525983754896588897436688828001628396376670061234759076982345661190467312247817852664176800621656669144020125294883974353158219087506250431073987196724633995299310412198377596560955679596436134008605745799876787050987726623092440995531627818775605950013112105772596734897654776181172416275179786951517157233971345521809766843615789237609451724257735897256164771899270176343177659517839375110544730976940069169379138149550255644192532112809510344849282690048084773532200704446161812112611995421861459133939805452817395351175187750183032627426105910613301908665766847160826229401934489638527931388152787891264361107475391970171161906444743840454982256639088908926156535228541635877694054968021015905765853247909778500503236458376655282365283112051785467786009379328167614064708915683124195082665995514805812228940698946166494783112752194321870619391606876278359670081951670145223087313985785330774062192501915768092026572572759526836582311002590804755994161521390414402260228579951998280545101920073544128901447601835643056171814388171684393808373089503495262299808500752795088664559468530117073840275446428946265580425721144507650348370248244968365088133253850163457151874889048173082656106394314018678912558126015036505710306679264109971227933030971784066090398570546337783590580262025354097474816300890193362059746697273078763970552846900708343383332813686307141421401978156134781301582575618560999933280643127602353882320640975483973787680111274486397749439463355085338704942063687352966983393961126080477968297760876433143564141466411477646118500345815038811005486816488630075917858874474231678064155896657990471451397697403469796109369407873112044224652018250794599177702866319713442819173783554632713427169128881760069222876249003251692410878392493038641750508638227496352328834482445956637151498059895181579452669201767931010959486357488690088767511968983657849508957695000376513304665364411444249722194573450636938661248506296977560393057551449190264087856389521023364154667413059431923784270974532789351756258874316824049445247477009716065080406413473579263656630075232059794147215498220458285724175249237936544065994695852037385436417851697096684649965000920998570888266474560046808594044591948849034834756938608681510372798308052782757374119047006882720233347872989324874589274892028466254979478524433002232873811800778484155056710747881022873047008796624870847396238566230444599289868615174571293447702877890822513923973755164199045968225029601756824874642705043261946827750797497642399323753836011337357980242655231007641832328993781778041726341336208402171613265587588043713596709734536825471426646030375832907007049903702894845769482324439530044916799852139383480903634038917904847952961830751383622326572047763395664981139470507666511304022378497086641306142350927048042068313083958056398207094036535465562505637943307055048245352263213217947126629307950937782870337526122854281601715847271289217678151833183700129162341163769769347890961641667918472986835114437941940113125070512551773820179603023440960323181238701564033287505035850193112768950163147676851665377532662291546588051981726570911540362355550320489468029553560996459325297396590135109629344715649980704786435512829878814252114910065801780574484111404398895813598588026033321515409794790314775549198076270148815617859734743043809535521568655183780159856442732691868110218974313317317841899965420547730130972686912753657104539507847206212826045392610392480819502857738078254840055043508702958441786566127061659924857606408206834369816978056412573203752452208467261969643279384200088941122859533951536989839639922978672417985428372701860694907228697280719238040878296040792990475824747623879809594165002049336368773448575640457755581793574680476185074928225023867739467123300879501348872654576205836047312114717932207994165568404397677878623913602610969346413284063055926559562728937167116345968349510702065943670253826761750383320159252944778497105292473819292767512696324411524618660966466282212549815833642781376510289834887507568577166657129968711531034211432027512918045497368464900829046915393895647104677918946573690789956450908948172233782693997513155360022250258424857380780186957569390735983003706996852772991040711142430653380372830550835753841550758094987191663470417786596016416645784227781536756592881085295406550493243958540642994797016150786560416981725263724604343289483206709761670793667305147422967293373897930948314599391106698639717401756209214281028734588317109108170534481054974871808257844512281441620874368767322177914743154938180980916745998471329457839796675882119412574769776915153078436880346024829549139012092992037121982391963257801660820776750022789683095437516083610757790442335282579734724713998191498256680924815869105995626307783335274665408295768199716613005944358036082675117456834619951701375770505543009000343984081562437114808611858250671346750016989062930793610860291524353152115862157784622380219771371701038630596579056925178561367587699033745793416763080256333028106176454638203411657869909058519568233936973205413469282346025243774383055786172762633918122435755557180267255786882594364130579499285708938072966198473305980242720953739796833412361683913066618729276277003608678603120416902467019443783909058750167442796742782948495634046147015639555778611734420803585992166337865763402532296857445868756764929688545199158611922457521997660720736978790390216010621876451086730986656302301646823618795695813716504323856880987884393380640429733834149440886981876116670170845506672448746844744284208930187169479689611738359138106744150893697838728311537160682479378416458699844368470506966239825270511927768199325425917689859954669416184747391891054231702084291117389348213242531406198658155408684738497321418190669263171718860630493490619401040188940833353259703860278501860470608766078359987883673288035509770129606265893511892412878957192343662417306312300338547024752031208340365029337245905118222363047973582981778480776983781918051431522205033141219152166721039916587197143823578505115225064470250300248073206907486581840310864109062975153588855831924906331492393144986712857594721513451987578172100358156910218569707179103662423444508678052360584498922296999938634824325699873571248150830892563279526456184043238934038410069329305692107047801973819195401885639507660847749595855302593505499829306612713384599654379283899693958229288336363271633818682069946321879808411757160576630905123044780874627816798658710291912888392134947659451483593413379659045155132838546453126546675091495004656434398371698201972426917147995665954514598925365004577623170890570594587441718761135723670288629478843268350456745738304880321475456007645020391861677123918511230218915384528837457943074241264428534737795349378691175921912990624744401073716760466607148777666640312957694240608876053044877104973928664343128424398014321040287542267612566010369227480929031401397655412600378900225907130276990624752605125953046441084779353490686315504865803844382462512463127550971501056336689338811276071692206957420797130282794152274770071536636526142534982806162770952154602820692445864199600365017055436402829313236763716175467873508178905431313165371654276109544015103141693296002596649482303200065731948657836096410747093865645465747798882689216511132937611275741997777596895858687716007577564805924508067555322235101027402144543750546441762377693161818987934800878760290791655491463788645508715320671291529532505809150438975229353346253602283446224747256854433175641088526947363025393660718444671641231197978205112914848805708947892057714677960773536385316281352176893011330654103081396771881014529866090840838069575878381684925879252908342801733711238037026994979875958619104896552401124888533942474575858013302719130978045126827471938652149632365064811360033583399739780414306201491776109286091264113679043224126597979879550300719043909940800143253319142359495432042463219194020032968183100106824341276819035666531737300488838457448250880883507393286322249695972588579709355334249352526256242033489770438485656595339330177791898765408461226123006049316471157785775366143322515684418302922258104163731106968977094007744718506101981842858826162218333621221135916030171049924529250228588866622514511890006769816303629728290503265061128254706906015476226429396136055748078083509281639417664488837491924467581574346740912606689074443375219448528300144471639000661077518831318042690084849646906179397930492653123166098012532221307689298302629143358184234818665103190342637622214512597015174662246100824534485465508213990882281197413397267819451704385906052198252594187487180716245279440861090257134966908398912934904509458014053033613031696767712685860072889239736753885508126312469449298781155872586855442506435137175356435966357206704371039387611923264241355669000251114063306166064637483324368061571131210240199361214245156527941245683238923068595717060729552528017628858804779375697815756366365012002509082512883918774639610827388236240333617868718477546164269681772117953303365275349975946596483865287808233075587443325298015491760590095303829179111366629184476098000109618277494535271408374271616150128125390332108000676072145183093390787067119486523170309050364860197802813882530336171690116659753800119078876482413235204190848557486379343972040987337536961900922698532316146501879058207704665467051108731949188814086752351544461361518726097286723836467671754279710003738069624652236360934050079321210208048846731688280024206502590816761416891072060982716279859325907090144798306358663683742770882626251390586104224522030236462576040563943736624973837524097399999179928270127601884817372344133617255577106409148584593355227111540767553015266067700639173756365537603525019932698040083819388846364355406693436076966288266462203838024384251743225086578277243284814307091493381621633406474159818710494848648914225057287223597802254899636700053058169880986236847043335239389117963501118212725558916254223518776126792615033128738717435357574547357795656223777061278092276359894707017900184653181668598451747793647782120604050897559245135865842145027598160765142853688455383311860499800499468360459443365833907300137664936780091477211972977194030522661557105897505480584528884955877738960582788976354979129096223098947024466207367860357849977181297654582070795314980187366868731030598600383213094935637819219704001337166953661891213353452909493487688124106567715392375649524174941088017060263427431198023765241067802659460811240465225125212839126825185668566423934451528258524760662378366496603702364264167215860740992200516933230820289747484286107611693998575822083049274905620817844171196137598591525723932836992391677092947529003746626935236641821449089832142904023601708703836586113773878008163697933984293553059679374808262539438738113918698742291146611090955256095389748071421450835205956354044954837378361366439685724291052046225279570070943139916640135102803852156052543231008393987917727390279318599633089122630524434977497428513083272686505060595088364110195096296329376794032105943424434245308105350078700266869387127358781174183170571066606233938566859846298874155147496439632694798134849286245297736837213728729156238629525437781263994241347360148344859501430529724223441542436729913198186332238706857177383521185093708025454502707955086684199066158980523784616427839469758693530979253667852487934196948985839181274558569387512712406200319158426727500107464022041195834203931755321054454263917451154934768742050295916134728088661549130706343807965858466059449445752536527405203091109859389936276138591331860156616670305227498433559342285690399231739645750014255216333445399551892988288975232990003696354857501776790282336353147559721758734561712340458184078695426209699197335133102337355773512312141305605504895075036996440931056586036409926688511148312905967264270634745362552431621915433089891765705503250287398965434059041610385868401678803743024462302755104426354896619691922739054885571114829017761388891094230248367540893612765950160541289798202548011838978681482104841468544517855658073013914996342512882753962536899455552011310149238988237741662206982250946980834700759946533362316179669194838545476320763124871362412419323904318289359723291739744271094328921118629973117250219977808175841927088076644367270667127859184531940803681647646053487444141358094188425695534250915098709474535327765218677887474258435422360836736288914885305461421321108467455364183205804288228674605409605219448016760174427332468714334701617706654442908141255248301800073493095128415810007231951892265413962020048208885620399100347592853449646402813029298510944172860771619668964327073466809175983800543607587220481146396728450808956454463512727558167933142829954609901753585288227138987147125997264769131322464926750292380140749879021257152597586754652941463102081415887104455111158861773995210112698734488550210983621685089584365289531284468415755406421586353523854481346632022787602804061934604874893223225129643077671634781461587955885201154613023798540407042643360098907103782099627013391100366964139635655367044193827989517773860780318572018967684807080727840260373014307004016974036393133916969583858208636151028322523944586658474298835952983827622369440512602750801344397000255916700543086262703154761237970402643899159707463581338776800811903866806475214806638267042211910006096637670797450507527390344431644093642215619624436307330255474461344701274980336876415711808559160272412958864479408492495689030083012859880670164128844294494684558091862753242892304009411679986703093307066021511272333215263601179735610395791714924842584962082423421322586131483200166911282780812164907033157751705088986273060250014346409427299833595558761394767747585556622486344739750475980752831768766976358694530123812549293688665855619895919866528141321978418121263751484878318089042153297980726200597925362121726037151352315951970450169243943993916611901650397665814011781695938167086596098359221184292244031333497572177161924932749415012348188880306097683391120844887418996330114905641940313375385306986585042974975469192416293148473006341113030157131343019286445459310634018391653211368205954940474947242183098848900073237721600612499261216603313760554306715545524928352387029409366918894741583700497064380773442525260617479122249301004457434004612519910256661404363441031957846463391216369207752327253572032453994126015454315112192304386532928992318151921817416287719012800440084225614224010920407649481466551044594381218820904150946844831440987305774867062977499593094991815260283456331926234347515489181380145962698634656489771288437540566147863158004375040424233997245369939726435922315268062867736914024585267722438363985570172219410759771363176877079243507346362797771206719822813349001132583011020199530531878456762365332296272282635239578652316537776376680564762226158084007709416995422360555291717115485131238106787270472502793867076446495462852275928872642837407017734959988668232705900804992762545327814633944719362209018940902925980165688166910789253547716363997570790180905638401705762656808371049865301775486190535629580306976311579356451699346366335839821855878957540859575844034056152782920222147181154738383046415984918151801449002131782575999069927709168355164890399860757162168664744826277734927495643711156024933095485417899998602423173283977450562690425796938038896240745177503127670355729793399382700705131990362815965471787738384494756837604543921403983182772879563887655692306434594541542070194325134070841528814634744901099523207158001699476650995939370758290063288727285533241845163868822737701135568202470940458307617702913528566629473405326420657416164402331450993974710108303986468431101287098792288516096045439042272177444752493711852810022713012702556923656528203640221322806784303168640949628789433912495944820014808970971012783827897849477685858512837509397310520249130633098544942086317590739127249297385649547168741189065557922147421685837058206505638171605395564172413243689282883739472731123931939789239047883040765687136545011266845075779002388082279785113201472950337568657827026701034730957101106611223511920136755507958929625634679860332013123996109199602520985535554827131027047539111870522632076001254865433579622716423638184655603367501302389577393985472311589318346441008903489372320061217918826319755944472564997072322210518022167191030039609985412224017767361831592298740961574351807272603585363649505658982063171829031742068293460642777558712917323564891596667996265376372820121705894508831766907227301020125462424319218352948592791538012252410248510046521891166346682352210258493352562342483885205073167151508015418649474050164735874774593446766458858749190036358777830566594350321861131994603092441519044116504158165565512182264062708587965550127697234403239951813623671267995985147055470980736184976342548308041376439706589411122334359231403998402233815234022853222608754876505373148432882364772820961776657500164704762616818608317075934116159395948336786950272476017986604534111708046279305296180296288531068373620392234075413004279556860169741968724540285220699514058263359184236771995462018149770559961017993864688682232640571542797598199660319256922629254797128781078200467887803711236333734961670904951723370054768895737016258038534792717854235347773469765139344517152659279085147021538508943313547603881823150161075865267815998437262277222246576913727322848255174794358989449133360106508725008558488682853591630171417404469175031046222786636437331412214045388276150290126324801663932648280198775863838865225834742749896125687670434227530455666135219241250934408613624236179203543699764923567161002548620839075350468963718825087351403810551361926984052905842665149784286748547873236661359587873348726046399005234924647465553858784744190260453754894685942818704660243407865654984276937666027312432452388525735876571371849851955649518135203771269201880533033474504265672597340918087565070716012235185604604067171039363811689227592473720665768757354361447840723700675430548178450405515958999100872484574732742455041027279373151345395247636018950048790270438043118483446885566984983226308408335556543937154579707093075933450258386785272046701619194008772386828746315870678965408516972027076195308495232898783139580254346088097570867429644348846141297152479478950821888510324651493365193582186237384061209505505344709242670948559130037564317744808507632280258692535640308169383583912774993785546163228681450741082853149928688778087938683017707276318341550718934749013767266143532495217177659326030868079470923405726549606419492124637458154986437468990139258592009798639363489153204090671230502601490263691809594870098097221630519421227429708850591609140212893823237432437965761166903386927991846189912802441556886236166543359817397521179429802555372458131490913269958610783552801571123156574641647894680768833044369803983275348185853536633899894178398440103580515018681221052985612240468101025106122024652554213550920070773292522048884825280572788166782649994437939219469440440891275971511265652040441168989648054154781328918619026690353183869670182712091368180501914157179216681053065849532581674410582073591512524697834882665738981587485369269998826361734157974984622082169537883511120383355085399532144012838161217489843371552469445287361332184259825045923595896649763999533902090632777179861196418563631153060464905277588655127434381322332307013676313388714558396231371012904530039849882707758193935736307214583059476513585782118706260724352419128462963057838872520033955406127683331056534705586972395579749153254184673824653731858056362730043757827913413815543681063900311244976129944782973201509299602502131022835772429488462681847372387422470056567314243259551479935779567646998062754670069251024191833002589488696573733349871960106558181421977489441821386948027268870762586906768386222868084451307247859047399412821368987798681560619740099752646063555715194801371955144238056827723487746330900339510804226184966471542989457900681837670752101342988889593291044639219140708360886288609811544901316687045003345086112686663017519383813891195859778776880273568833191319877200976719467995091213853562930924517577928129050048497697524856936810508810424405193003892583788804702304636825624734119455803086736396409785493146896986904663769704482210408001879443256233020986622831353614499945975299559746802844180029388288308103500292559872620567206284724891691650668330058305903462192503311659520022687387156301323633055024010566762242707897576960266981938310737481785191681018328282257693267745407943168365672924260075593591559344752420692486318595038378670404414282597250146194719871977794152477930580927991173288035777283413362275430752960405754369022341568919340550067305492281536351004871698396550833318851503149791927264346904516994220575413551824263634054349311571641280535828076397726528804756365508905750762757962692241239288736135245957018877699354512471079312034816332824189101795688776053231916017404153561241386762226599050651162560354604548504618543615637418668690087504239879273355491301897904015702430123641549296480121950335805435588667739962908965852418611885767586591810460693882898562928331189708148872504977473385080361609219788792870882527238776990443105752026561029477509554884366341551105862212870751227223732584112302100686902678440458439098243834089093322414782154079882938647125474355395164711694134863691545886794474545738182102381387421151330752343365027782527356389225002796382260990375955856618234889765766364754794783492867236400486976992153969720160645912605166085897963540722833289172252755172880289455919782782396124285438086768464182613500941651929692113485493645109909877272784286865384663647670790273345909787564962127382990709659706732707490344700211260860182747655076177674214710455396791229610081925840542819044333529256983543018667605577920932720295148195200284077953274089877097771137003639829870550953194247912509157835794725984570397567118542525790460803493086794658313930759893866490526403884475361022819932563354699384413853663082723214809377314881877230733536993118257175154256251670581391616970109853690356594087275216312410835424359808613997737456483654325264373316680013436639956117467667483438104921736795862440568924383775180991316015739801145643706382857823130587509243901007771638235837228472766095243076367403299156137666067207338569345198290335569374685969645378322814534333051979300028040994155940576519758339407015439113649089254379132248045719274700005892819726959807134306663438866721200473564663638987083729323466330360270064204591857051305142187181774766183554242746463708726319740583522941038511848290520741243014170015760158010466166551029412957021730241184873505925166193637119500903492594444158200442339359984053828732675443677697285906190030329001834601033272942469218406885061150529788937211645371306504342914369835990934567916628539204789464230739166946988230708727920042177595641083260039326435378995326395005487631394067103126219521022996516190510164864015725759346055517074935952516040998190619629724228830048241642303293276239501978716784238581614291313890743362823787410542144717896281478157691111121858754126270852120426249204470984218792028797078475360204199046861453482447957717081691809600851662918598178470227047716428545943398082775694186558713292478354378461663722556553364808004640925180478529358958823143279110876773864883595334834701429484290207512858888912085055316173192656814516423150872304755663369863557739432739616723916783717734961715817955179971369065475370629755863965094541361484437382331023561391855005072998429598475980225311328200721469575437440380247619010307765773626020811738276962891604243558731002943696236722852829254001428705395037366043237147848560760854137133909703796534521119925637017911796251101205415182474985818458984043011960317446731039528339029690184298172669805343980971618321124342609219275986430156123217309956696105471360191390609670167696399748107804177617939598992698208615547956010411006582296911665746161847538429626787686040636542057097321954297072833649084537163683788372345107200157455677967646604117595583061963111808948117689704230788231744182618898945118604133115376930629447516835019559836796173183052053233891220940559348194104327432964405535394526264441880479328675628426974687369047043349471084376543656797450474266491905306557283766779994043308608628736994285147259919153930745903732736869267233698072101416743628036955441300548496202070442069750023259176759890561820044898941771073368813781207435777436993355508288016811437986272379817685726406527326386633835716936456072212965293443376780953760373844948702088827405587000771783409336131260386586775194628464726079724085684033918553493420388053556132528084769126422117301275370851440041096141588274794098097047644707143888983148021475608275791841123891299554370491166592726290371152785335293157445877308818193274152762906562402460147046828312529497271163404852746865384215740196536730660648350703397025676899758419401337925018556892704732521936939504783189463688882415286232694433294754224488394693868908008170957451714293495900380807122002326007729518826634225628097646291109107268698438975788543156442433665145989868262012537585632457740008618396888775349621771834554877283009985918638473466367018239901359845912752701266273683636247864605016766144280569011083876329978195332413108932000917068487059130803799425764248239649079946950008422989281445112692306532167208937895984668101422399365369089479848165608176395024357289244352445999379938184849563471033050641189358223311536824942225147591359674253731206586158687095091355565499270765827983085534089515156324226183951297723353717788891677916033543559646323052245049409343762263933119442197538496882060565697456781910808459006140824440265076712995512484044587349858956041149714153039850838146029317083097213318370349916635744018069312451216922697109531377799314048414884577205724144808913622260379836666784846200974455735153005568870369389931253416981326011698377830349901403983797188572832776590087615563095271076909905248446426974652092341773669949558409291822457973235958005228800147985831741516048959249605530590798598398573642401992194447276413871263484305285174693315082286942207462508603550579200918781962444768238988504434497417143583391396228948906276242546222452197194274831212418937059376359203185550240568866234640851958585546780913613079640388573799878830574292946696321669509731658005443171584173767787290020703829294458196739673731379212494098598025707193937666927135020795189824335706376416734218595790496477578589664373986283369077589590844113496265762924965255236052608668385078289651870722926994039795684073910391286436032225604697096245365868071149917443556355963450855766900984374761359801122497450579127428372272124805635874361848711280065526062841542701289828968337495534893753659875816249223460963774383036087604956755357430677737922558857675347421345425824608791143268067205156057562750211958858780429951059751003507519133045768107331433925964697343068320936157614924794994119374882253198688715488154263796252551869333482135228893544437501160300695272708294856284418084741396716587038096323895810342790759468858572153458035240204624152320543757780595727877287041950068769699155961019082227570211894546070933481692942383069237418586963723343610425411969152452592633445269366960882783711951189369044499642897655805028711396741498297005315654661866525595302266315698486095911856751797943281091089812125257353202322646642203744999987845253605849671982119481655160834901189166398641290361097877356965931453132447623561088995559939378241052063579997958734808715665785101344038042650922461791130506608600527546162469206156969706815231907076325638002027827459330857608709272497244837590174434621256086285402021172849310519732425334854053221693049414681568671115188403511562173658458340385726744397593496373370501143355124312745408344898239149771193909542868538464539487016187838202233519651241650423848814618475886681831662693878321581574629740235569026937094536953102381496091854101191784365312828291237897186273462281700442493188601059643619314370632171532806440237094946202872316070325830943077045023926488265782519420399735953996004702215804905508730720608054381884794063797625062332492995441674161148182367399637971839117377068872539125338417381527325358797679685697947499921524045538781042539584189917573928714195937274593289409973998092213376027353268063728995129202048552996764316061453422277438929754372600849042448413652751719153780394152207116360388849521724319328665139776189854607454834590228266071002402200854818661797635725994370019132267839249283008610985039052962551978618450560162267299748858178477314650275064122692133210973631922207490269748118570602453557074869414886631352075774681729942111183666791897756489790100531606371643372622060236564072480640991012101659485713938444164674114162968735292816456229364070744215821286937075075686491321929148503949306729262195883840879052677043449845442225022808889289793619926185898505475394917131408162561271781067610878775161357332848407734490701794346762104388011005477752046352133070346411483575199214383944983428195211191009019333277495521448941703516942977835647401238925886477730195394864481695039883364590489155925357801229580556788629134866907331901962782915725927203048382537477245693589203770568755838683645159424093555734531859347634168384935464939060574058667155551782257560025572003376078559096383337238068598408775935399695284651882757405522863192304640934651272796675031569655567362243483404306025857980686292534135475959818983796339442325740152272316457241478267637507087951343719274156621846892839576725999568021870686044424158890711117327667943388665714261019336303773910693757109816431545956154811984184446362546487847083435140971277312233506886399440347912922353082219149262748999393728655266178091142697955341975160849463743090760203588465618729502650727015230894064198156128754869431233695137645120991245259710805349724638291744513463100590628832336618907405468525753546453563385049295353263267629725472451693538775579569445217376998185184488536545174447634164115193970159950717207929028549091887080486509381820274022126749082956926703026281829892255551437954201166659139573099479405638260330035206244896355524527772497598029591075088688016027111669001048036318229271132529776147715867261656759654816032367864266426266342374992484596691915012721598639788752676128794478585853588607480397073864670066745878506318996901765881719572272368653370796917699984699283095414800030561284838613636901377445244692822646181014637537809219722650564727800213023604353824626775991196011459207158728868376910283681812870312372754285076620791321833391477686524911252208001977740506794057422982560485323789516130302278915751644244852681215193397903836813973473319776059207728138758659436899880926820884958738361168236581961653931724238935975541288191034548311747026483615252007350295011920736030146225955475419447270652228552991192582864169560050011833787890207111872700849160577253779071209186576808495716777272391549798371016607409170180259185676577019884864750320235560040925194552213562413370219698492756495328688493960542769941557146296539281592406935817026823552744665666761319184396645838441598319800460002992192796889265940711041152006633211568141939362200551024205266982502480612515646538314274392652312529875928281001013555454203614791860421942102987136244149995521368134980620170733146034859083804394108977917719233597961520242463260852780323281427727561163422628024483660847391580688131567255329026645502602119908579857574884507086796773840944147538289627660482202611139574468063219963126596706791349584589356181620623818837827681109469292644124658771692130392935042711498725369973311434957255649530343710593082694191982664439346901670307516030625003531876919479738377289181250757365664669030027892743564345308858491144510519354657532414368237371241691168768494760161589720238079770265893959171301114012194226501706782735301874167306614198546095418677872628718865562600362707494540353619825374425987159890110540227703689506963379098357837169981915103304596446830298345977111370832879215846748952511787693990885850267264783252996582718090807975363476386798196599542349320449836596849469414462811283323978046849355944445091379449916131227239247172446032775594222968040337942121183845062825479856767837862921404371248113776811044166938440898862799700307132678125765916024733473035249510422168735700513170414446272235998036218861474426081154487281186466884288918232846185164677846157049434061839539928212367345144981857940968527953061119102528358545213570158643493948756003564818847382359770144753674477858541983114630424269013307527147568797854716135329311931885640995742532170723978727297781413485667419402943364276981677785921956315045139349775255820316468966443128641645851088328033837996102930798311771340699564798148498454143358011765992418494538415362028806318846440280253130445194401385649203090706676442165609871136357623306766459420219966211967645366163962347319705302142548829091978138637632905527747743844295380066404369747082819767162583369958150361368535363171178515698733067764950451017923400265320629244516064389428838157151465933632370753801746157816781754735506666452227575815108599803814928147491642697896145503116287096248500433519109612512069900690071706659583531843982676398557628914503174174296636638233889761932306009691991103799249351357190112976335097174024787966150829423865681180581351552441667944864362118855883020441319640578098735968585737429268313568537448625144074809370883791961994129086252418676052958549917843964499247130913816530913623645818958527922841993005117324632833409757951408449182374696995628634559224378222807913269176029012968191187537578535679008932562478676686670384852863430873320871643720276745276099146389512738417602090315598964797171603399658117413488957658607007154994462421750000176054205815071606296296900439201631487142077621918460804175066148962145512125773362031772126856997746768083720226158986905359707612161663269181542514551856641086730130885968701177444865246595373241392315177324644282404837377367510279339691880351983741969279107769750393410784568973618721869685966865408469485216197954139869602590218577204828826762630678252312241335210774578181754990873773053127113577441670308978168698576980518379717086791463543772821576795626107738497460751073209567286047394913892620799059061994565633237035298320949978629879619135775669576725663683076247838562584460659037568580278685557834154805813544213916649749714828423974342028380061361469072470764363197518783209527755155113645285465941788542278784473703198239293411990928236005071875566511232314155041986557133564304804154358061638728686133841669693706845059199686034969143935708407553552877648672484662010687014040619314333535497731547842721321406828812412438486969393055939938486418543932539055670832347469252912458587159740199791991992057987821128512160356425840867730888297278346763245885644292792551563553102115858056372185167188004490707658693862412879883305399439784237627870032372685826310835862758286348534434007990268812485884292509997478414649653045807131737889713882873752631316649203682244045259891853521967529023454893613559722947244943790754589319868922942768504483118151012408296280229460331644301596258045219582093053825427182999706328291988013235955514729695511887892639259132602090760248066385722098678355954952658207607437770249890347078717621410835244654368913132435714921608835655553311149027545584745318456111221718018280805032271890413808071950638711590868256104141297496162212157998402336918148517250670431849507541953863561192803019223832217365542253904640071738879263626581601499177617514068765714936640716008868574971410069023133700281306686808864011132094275509642092350277900571220516098300625635629627686316257527293341933930349130787504130705841218627471233121638729084494283642838538786219339430682444821058880379270352579299853418822497085311085472677432463274334986571990620047644265165034889863755559344340093530428335345585638747821752580967517633499450117419304158232190900402559008970621919337916253942826243210371493493363303184833452559539465054328781223639223186594615250683053810523914944928361263746307531145641379698162231795757866990880615861678328313896950887820423843464728348377627390028096057914697267294980702056683840919267601843029266291670153964965920515612290868582645210765512134452888214567079003570481718939047694779115837374957145589771713937177323435540616393600579319241419831745329127315426273927277017364083453710475006178353976081402730089360037701625890311203391361180405113111001389143893313526378739709975769784300503560498891405882545948938448778643671226679210412301245617269197208971196599052150116503595584222020825205269678449224258167712866390571053815203403008700404026760873411122327916571942661725735971381303103600173387795683530479813862023090204946584048089973450119873670808186910686737746151573948061840782093490222056297966452286208828934760844877862264664219302851707775970725781674793639362247740341456148459970261705901325116410158616550711896233159813225637367186047748607064482865607900489730463557114619565070590143566442096881381239152270430047792469295343028468532835800338143266064766293101175664515655797415602448039828044601849610989134699104766456848811239419052752319732182525919476471795729219323713241291310122929315481945327427604900148848837696352811124122829542891378400729055041408597656918753862918001305641612610295062417273210526593884507887675908469980031782690001314970975364146428967200272216418876943282493793595790497797189798792182649118759701799243106696099772283676737722158569418114923203742218672589039046959000694276694554315912761192693694825634975885217107149189629075737312661078234026620308396753678957532474269805637316104220476621134891839949165484722828824355910797556414423382019446380150045982011924763982060346305288852960597975452316699421452609197293652941430000429118165226806119824162991320361725948593683736051334691509757932794940023861909456313257124747238970383635425064868234083278637987946797809830431576376365607850424974276384539381986240252065556510946879467488617829196863554560580758642240523112356924506601501208691026920766667700544783580037116881476536171011681752229054324507828956338115888859888055063980066641994878613770127654352620817742093467641753514214221048446002298396188423170856169007606988337312314765868962176502076761087589539657233189469280933253372531028257306460363927495334887958335643894671889309201212577328591298479992743918809447090534406089315171659240453044003182095352094246457849398799742857511547824643062265564046899936626350193173151580705703875125864805500328947056745068427394009060729141457770445761038019071699726641579608810143825307811901113852870921738146588013563049375194153249270060734828780306490186995750134284548536426023154665968999703695351923959931865261081523942725952754553053353027962097302351726308306008461328536292988473008704970673934671756556088751875554935112470094179830134678084995503823948772308563864643547524191262590897406869185590850902340215728260339913443813506720148923817285125006993072472780458372603877106289789458354671196799817899936443161278034155972239013765707296100626750487474398008162087804815816177946476947628432163239798414192301245703742300152506843784551858370659977619319467532051860933860954391490549507366373315209329072515274182921370227589573267971357998950910984494130261433472765532123049495492328301798072989112401512717104949530122027886548428876432508852598440181633318201893603748317141255721150006724765262700692979346309996102414549503317781214958581299676786653863000468168420198496477545189487969341509992054119771941279676542923625935880503762518448202574803318173488657564394719512556098641070793526466463592001487199451101234139365259208967951194384971345986332515602626327220990602222260964955574019292419143567825825168526620487885949663936812160944204359893815818087863241233475041933504134084046317854039518322727699454463383749447254442795623151211063441737917234401285359039212363464448503578815494407755192369562184790983302009381056634318095909888414045559285078602399114820815721694059326834713544224094071733178741916332122902930437044898995973074070991555602972964917394324796790047819999305179942796358700956492775753125764301035729132534407087286171982637320977449341830967354443243840438616272278678176818183221563782716594648248342084100489926097652296748049926495839865394310838199563688452001050364629383335126901853440776834435127521021882450261038851990465794209765678687697683735835250394252868408636727487400749159522572516067622573197742119264765375424664794465793191141507418328343614642364627178873997026102698742121559761456062626907289223597212076353626197687348703282918112032367993632351741947741656128430480269844266728756808976590148942893789790366065526849190543970579314248111614276926247304674143201345476972975816819149797206947521795516005986618919307497867284838405464693777847654199380926077290904502552215416579067782769103327229307182891366515111340515279097861513410380945289002024000983008480240519305459829963905779337723389785316352530578340672535068230378083362835166256021536564605553727165727024876510552887177759242780124139136897961661073271995466002144094935000065319620583886298638274675995477922227024714458961921161678283108874657101077863120932382549535640231694465990090414221087012066360904364300099356171807266070563966747958057849375180578528537460667470284277757164515346341244899857703715499357877656307327670387211022019965568726011840050612699738895054672891989038325293639598845976394809275666952874026944793817554059792419400121201233275750388336809584910709995968016210706718325891906638183420323210315946008049945573471543837594094271890071437333344414598613507590277054309062235236215298624303941241962742378976897228140965053012995453739985899129437360247542484298720599283807400592718054475015142047481485751701265668148871484059366743852321722511701401998157653430829464035398706336293959299796244924418727238316836089916511213640390230928348464203614865493829340877101216556646559047177584215838133009286918566723991955321787195033416450294318537254738727711673015258130162539490767745358866551504139414625254378079437276667232300358530114067049743562928240616563550588170095968591775895724763637518158041309822221719434807918806591656482541360539197305960004576055136683815189316135729667267664030616245510622623631383343890476347125420863395270837593954316407500702058550064129790468670553593712053609930158644346654772132397887012722669437216298401349345802209319808550910092127427665860848125189244001519018535878171602491185342678249013514253197397391732253328513219458401044216970259168030417228936601973262627053518902493742689133428497660071230770103650763894414784384095878853356502772683693543739204957514942449631619786700109195721306549804888157612197126514604742132804503380263760657918824708087221457402087314532828249842130403866912089521949914501430240357663221546491801215917455004893768091771672389837343976817216788956707148347156518524967081666613602301562240953005923157309081647045174810937980935642303622442266601249918448614260350087392530964366967682521073618589244229526027325733987385251029514138826115686488696265361785655464686116038058359271504092258916734135223101363721526511458129397044684179821612614036222302790010896184038952005219820493576558258324478307344521110764087027427071039317496295342638468969722531417257125213041151055693760449634510228652653459159296831999676578781144844281338630930713903338023746456110109705764744019348348430794011851022520051858050295923648375251937268871092073792355517645943268770692643895562838518245878092003569257533786079889692947612843910278169053004669925237576703773184169681838938102816911098609657995865837583415351842599746938272854507708785688805376117376114621876769401820988608173999800523305492741294674105522468316395902507419559372777624063168440620449215427320466596518953006706853763824234401282005176229620235428932593977942621422584919209291052324609893466681827057458027826768384402752977685534813706396820897216612494469505077730901631363625652174735757066354377768069646410251326689674266216949367937780994721024335226118132328654953435984028021824213299412334695651357308988204589246856793353010159494422728053746929181236367074590380024149665780622704368089539320532141681702249460034291470740754987254943084468187211278271792057976866369811992847257251868016886766354720678599841058126353654323220294017232323923713397562268033194895663308755703803099328425536150012896553909273409330684028727043498594771691990351828512710369179371924503113553293366760204624716267416478551369647395742229721489748048871781044680268051622767712366136019585753163681687831267036651041253885992203154073738457776441447283039264963522571657189085605070848543021725597607785337205685967062949702857212327274462008585183875598441188238881005333501436799617506778634353804700494846734282797946055468418419897410033834966751887988693857079020268875030070744346997936893338133358823950789007999649587190743913857489283999332083463619080278301516333896483480300522571681826154992485461600409423869600028867378918067281120808819284559494497843744522664911461752343147292141239210784330649359354944656805510779260545098138714562892573119099683414014069569476811581198051965039117625078471734213498032170626751981317745348248869928894552452127534328743374810352090284385978854007709049938674028080904747637515020310395549784360122794060831800902699465603755799507115608664874636393748286570634740083860820466660628194611306022056488851516162937011760356728932510852721240019506752398464393367729407532909833898366170995148043574496843963773073765212428296746654564498447273689925634590839836765944650004817856331037095298163069450016322865415987768992314206581870935242288767093195627648745933325016744124298544451613946390431569555216719753145884303751933920258624159697768656641179751001763637475639075209616439058461068350145663077430682357516767979239190260257384048350746537601281641877904216414444800490754727708449013553889679838120384431941847257144399916757053274915721432705900490777383827758787833252496214619605446573682795628762034679988533247706819612386357073120078886173182114500791318751240049430069838852065325818457365377928649249352860577480674397081678266603905831108786623180938263664055160406200696412275773433158167662609806749404078588792830886843771863935902867973080931962291211449905829866144905710185734357627196472791837563393324771957736043262255785001318250844048077351133280204379244991319243450026012958372943356773324737075413432474034885275833502378887383272384473152439129304901601704956253688432777200478841774391068935237845570354171297666255766248250918435801066765190565270676795305739719409696328018823556732254690409218067633378283962301989215131611792350880083376709221247268342691013804426551777702841891271239054906126020201799081906678032113498519869135509850315241260045018711729384625710573711567277546866687067206878545344755943847545281658647172411152839783893458717267651500700476702767357624038249674905770573821784616685888161262150087148343151724627477029876393819346878781814812952155865933570412354001340105139981301248786155793485504164733528239884023356085901824208318238627430530093730687469107506912573961424395393227597362955003280955821488157969025633861672393123585855467248988759298299635012156322530892426198024880441345683244653315983683999362117605978694496215208558085257135854541003728450178183191893426811815100260934784636304422240668940151890493546993194905975642856359213710572349599885575153189759586019235274249455681790377383918602082047161507257363880035879297752752394080030828451333442885118616740060362875137246236020844454118888419380592512967611494107014210086177619931465211017118347884061736273420185782479726038522831615302403575196472716943262069742553438313393465029579383987757594560735968397566108040394145930413588931347930386598737697491143227610044745327807762526918564773271409459077279358286112442140234861969313920387347730640855027147184154360205679254385242608796483517020034111663120669306757317600116925717011123800243042550215233807533163942907050969006531778990907155454567726174249727419488392223059022231289559864675881898142395074744750086280906730808797604730973002191067137553074769600052343028984479650027675812965792711679184375755947082856682881435148052647576385282969670288043671393609239475766518995927318794476067569016661708719576451440524296266680543076766851337109007890530187098550586631533788963551111758274916478766514777242984404199169292944913661466632766905197749397044678761727904801487254765173213802482102012201039055998959849873223639696881497993549904337317772267635449053319185473834148091484986415012146208604769877357033662732790269331135948673413679771150899651602131621352800322089643536722649753390420337263532339564235353185720343375091541640046352768722162982620506410891204333626238788793260141068549546114393268815253110988020343550335566783355192605681176402105771939963931398220729471287281375077495362780549576338096893813997310811641890556763051307148308230450036853623389948156379166449225542024663997205759352029181645938126209757663334265028609751385952731522289710641425400284471647394472464364241673277983882327437726789559804252177808213684018348835375558024364265577821863793347008371658073008282745890289617923490140733891519964304179923875505190750255183059076894498096710867901612831125820399091665249296049878383034939494885695532088903993910798438915392400894231064823210850263002922801508352716431850500741121873653193427403736178371284628778170667221671461873978990064882710137603045081682662513411620226875993646794087087066446448026209210079784417370999329093806191814074048604094689331986509160473563697389040037611528330616963806904637686050692047763232763665909578916821491634122755598208695571783700793276903049034774012964399474798511773510540583367107597102989027403048710753705311295024265678883729630380187830759416806001441998851647979554684773421172675557599390296479902967873323428696123494486202021729844138416833893003792243609476665218934270669074278389180736054819635464564445533550053072740757238269012088331092855403663006637023737101341046526741712962395481326300195263439078943506745102996857016488960823628541849843334505451658550658354802693183479692456905261004857968306105248138009043942486800722418101784043155409776387668540098594235470531980622597097614953040632348956643819904262016481202537560782778779315304363755438508390675472428616113997878889993285914392868181171576553498129797294580058191859272942617658205449496254602379334993795656547343127015120131869693398619130325470681355982673726557052908734644067266816879888622202143035852730268989668501079161153075253749270181486511151373347833836991145134450927662595558518562294278290942933083946040208264606857703140669857949284983036409053103730350524362564771184910221523315007908693501743478141990973981202509617923405687497734594852396301602132615710982416636493048089300706857043361916049859662157878405071213287490085480538064731005484528645888873366272445562684339414503662788380319212281122732961033661688391214285109571303550431307101505513971961507216096154728405965867239280773229103238111319968051422832508295953955069692241177909533598766155623223802651650548948600217501262139831911367020977968406417686658100859892806939837837482490627273553842980250914969888995584638716964218864275435845573178632380381236561837944562301994466872982826091224112418524161989713169096131885586128072258839485428569110475861894167782051254878470486657585491591478893969960876021166259279621460419574068599048070446466473573501557144218511798871768019790536720736983194005104364292255086600946883881021801601295994761659072484412224106869856249694541641012252810832247571263869419154907192961755676431804148119829886044946822024584134454679280516647812320469826052002074345654858025909427888629394101368230125849816808083549315212107286801634461173477056718452495809282873827589711828612397903891307961915050325353877387283185990896543158723894147941426337198327685227266230191761212669276872690102864057320073961450701539831701434180295993685778355052327699369781212211639415109747066725013744022121939015202221458191547434416520553424750187797470455826754755679487591626309625235380065415549026787119140023041079445368501248095210656948012123353518596017876162443751385616234679008059831160284414527662148925315348703977103024972849894871456814555423135217076129229331607507628143616172825697997173479311151532354069677255883411856689420520424576470891903736559901968918128897673490002941322517554152409939810579651914134123871185998354504268319793526812025033210627898608942037158118697724844339304397616641128870539370469087592883531263159936286128386450449479362273165016237379679268772234908174713720726376127424486661148910614466545621133372534764341637987252684197829352848115171791879469684961676766152733992403432746872114437284890134371411581661121354192110922343006345613415844567889070149174391627711946225625334276229686206504154444671585338664709932199018007341075221534880935748624447375869606005628811022055549396975093092233162827610579328037917228657906029001771627432221124052574900359413537671965552298081585136952642480520399365497188470146647184104962957165311510698289997794864939805391751580589248860762963553815510975329571604023943192552281293240330915094924835447017819870563994552967724339009746441263642116485096730859827569908790218751490430028722967755379299654676580421668952268288058926264253612236982191524576351176836627714363565576193448932622475628835858550357345765238492520019868579765136567362434356900277873062944068549067498010825087928039973703407648215872711271831765368903537974124924487810780100167418526875935092211428612096246673595139582198869885746208010287332458607847771330219508975143239994514788844613371812314283499582320437386521848693948546809504946589688376126357714498039854159015094259188681361512821138581730902335747117079996859844661814029744626521145776816200034674065109729381954189112493364786903151624502248302414264311048308089160018790338008212026889379081460409196224097713781897115058502329986374020525108785840326760382129658041615477638677758389662747827731831039593275650696238315798374380324937295120046463509786298022490652765570770806905498548744452396245131311402972601221386207084460866631791369786972260054917547810524690808342383405589957012307156987590546740686515708719943145274566772525680806880567647636594615298890835905729109804718829147138748588099612714512231940511158174143000035713155682209629474866948521657408166512635594449698952479649219594079500508295333950431726277205217287841847098881556047454580391749823550734979221118892045875452386071935081778385144931811067728738446029769779315056262040389591744055107866796360054495649846133018725632261953338020135527215676801946888052496713694454539503046375311343190409392944587651977848746703831310968961064083558099956507835303116441193081539599135155616948316117966355447091649057944940733431734797963537538959353743414297004919486039887227504726171278649230644256467992354015044918609520923392895332031438427718207470947181773357190224053658563619813394665975979710413588892710946476880409598561978578422720126811936973591080476709016547361965053925099963412007708772396007224014118348539461316881136093474281893667087708650408997548765937944316938984255411807079043756608272852518598454539268082823695209264444566312690407547083226258561661724697505363013067928823445486091709165664162504712348643204966070253871548314278588102911123865969146360801746384764653600634397667775614986557227688101844357138930076660729046695188737758932506353871335350279161556812313165819797503922488207976015826268548732917987777223926761174454862461162329027422019576529172043194234709985787009488039198641432565218424520126915035387700101958585786944114893138916257220386938086542762040450490415076369582340231380715947231949667736334009619744375154614549539455299205416929143501509023888315101959110588374674458798747899452020109897325893580552953574634773915211392425446546878502228767983171471133042312872123028769172990873071805672118783082777726716449460859798861770208439621457246460469358016217078953496191223966461103200194608438910315331898075029130164758500196862142986185634331711687931352588371874201593757577922794328434994083635039839584021424064808231215738203496491310303587954406118820551825713470935399317214304318381766607798454892954982287072137896347034399791090145795689203823189108908932282141171231678696823213538065725320591116016749862777176149891349041679142867634226592891618704602081596615381166752168025477920635028350851888050535880768925022914502164542135640356132407491001685220819618438622047729190504901231023759624524622060002886610786832295936582985710672630052213016149370755613782081444619731076500429276308920796653200718493510942703861329860349305169240841522849556504253088566927286382663955362725684114131188204632839166391022028554101086316372941158725705490199438426832174362223788875179102774888925147484561957404662323997929363941847583212901169005598139075718952625446903204469547269603480384864859301604610501329192320614648611557991941870446499956872164252322762183644418063951852630180166952046022025690047161057254837062633645295085199275460219062503953397453896230480841799086109908273888758773044471735866834219963074530924187223513809428585056861108730936827358622518400442419274584997052708801695662130843413639717235326691250042917686413655123739017014550199693452525122626528305290229692505362831715550713104716151023066469892628503024393832028734129643735106501599381471032573255977160288728079235392547112757911860907669107124851964837701747703278251171689194856145034348215423790791702746357686552965694903352940752883272319553360495929644122303959117049690263894052496146128744541051495222862412016748763983595966321911262166844393385492723956829685851047335129933486452248861608658601988753906635041111726468871677710771955692791991964485328863227376134296995727722311850219305809700826044562444753163201871351002500008449063357372500820868284372027635587447285342435220194263455176927913266784708982564772658628814738021284295854016129638783468015062917550424635122361001594321619056204739306547675569262087078492133637859153275950498989361393438869433586588739070712561808773991662239066818306713559288204786136692034460103473458248105156864914700262335893585637688580290403280339662386068997049752634249338953601731573717555259442464523425300017203142602246000679845392810577298671451993309710330841970328832379945381862823381145501471073150039939713180315368215580115861982960455191378812538220873391790614604597071131373474299887247464322774310876589789241205945765289839089248910252193265748042590058439428269795701607050468164173714695136131692732887684700437744890723049191600874290220348646385604534505968081307922937133927718131401860943895738544425540258043293881175789915551710693488100590482080899177700515777166440284917787077763242781710289108499522544091053648039364906871128970287838377403600505762976497926623917094047015738169874643440371610882178515696853831928896452381287763845200525029503249225270167795835622702507304229318724049616586286279668917859634462363911290369375087774189525435832680534457286556264177473544490938650115325068095707232222426137073713439567528125144012149622384605070977444086249916390701425021683949654186979151542840226644064895273528081733520914443364477799147058228473034143658947291034068125160012252396591584828013150815115797029139705941163831936929482927024307995004696823976252336187668246050695916947134980279401169762618986982432579191034783333309900827747704059405415670622384750578918858550667796105431451123826076276724997748012581066332135856883929982829357329447076481701064068524809915844095245858762712196877740758216042208230379968253285559539471005324690558008588323060444130892909665559082541621048323665007320053747691347158280776133463414246614390782056720204278266092583845818912597286373544410029634691026454024537763169678735165265382697923147451959744857931204491275041941250196395378205371541240554665759114653367486650080838141001068650767375226256223338947064639587123829953032745151202043742435132299434488468565664723835241889194471995218085480322371592341787288259042572269724304343151548311348593460335399831465667785559678852473156210979667413916083717916519197259033879456087884324447079233012854962343808749906218528209153169753436322295306176747902249782986463579811797625707922289888848245061625971274788491671761132352397657727321250057448617317009452547003327162478784345356577101941175472010574017177166560929300046155423577376825601361721088028435959279114501429393095371205993513242869988748143375684502218779119665663248488929812394989963244295877521686524827063593076682884684921117551784713387249500796686585723528795034900802195840798955496647116120234859316344513756590237714826561735338807782040339673305315888580189313019178025907465092072114064402993460690556527056609233485067613142424932258658034492334264585091987160786135415074401403940813735670694993938569132818983975409657615351157486898639261521113975438232072140625050653753498994396674823867677245029692059427466692116621368805303043715087014843097828566372622812011757286711492922257961266584126079303864361680387576914711845266139811918663440487585967956722721196682054729816292556404974887259029302207687916099622913735806286385678430940757838618003159957955601494694738804295499566397234657249192038633523283179921728538541963295573538801668493385350564023313509509682088191044730845170763535418286368165425655629553189422867026192352496905131153424141565633793011521792477138139406320759714413000145887728289878697601073406303244451774135458539296859662826420366699254787378755974989366985904020482734980516958626372637631517649416237911874943261197065587148879165496585572190684225539910856875297239688147875184227555924317699894946176097403883889003259671292038802694597292371740451137676418914096798964657490944670828221414054958789007589919026870706447952575239709633067260025508648428119030612464659035031828148377800802849778605053514011102800129238322627404422472825551168628497679579091789694170645627233796502373572321989339801789259162494156807842356634968304208484563501103730377769889986707607469970674396042702523839299176427964491658087097208082638686496403354999738143771829669488522687977437896217719470695099025994057206457764339118160963028725300991197981349429545298407499132175830457901122786656258642609679891179380304391167763864094740873963681300428795146129094227644838772105864708359866320062723074303467545451337639953180434953077265088275915230491350778935622632490748818553472105544687192979104878457753291831103065318742895115958046920139563345135288169104306358443782633295889885048857233106216181652086768573427689899947905791656839938811437244234942295199293188217909859391155354665610635970321061991161951119048210776736877764467992035577850743710052110838127638256804208025714720228982145212478397446916981237589621349447088191817997334611563000407433715804597594581121956049365832038567511633728878015399814136313066337139719281101099800255780732294671762602066533290352322791075676524978517131139094996656103272959423856742593843012638036471386406512781054835640207235169925335432312379895442769008790460558251237369462635985551943002340138519498028697304274495803910427311294388039516258154704665748260823238725833050220800570876401902421110263292771710689731814219474265432602941022185747552077454764984607557390910381852746277936433123613704591240685437212294179840038193545854468863806083221620149020927576481879843904742780433544782841338958534010763703660110427070009358492679444714539409635142214432378575503135125884891085853458327811446191190548338540125550224367359797952355462269207062436759730220108140873114517643686320606440521989101944224543282381977070881385569757391391306240113284741671313218754131700034710870004408572250323856230739819784977808999789280448904729209030616820558701160458107147125114858960367869371324785696622160217865701459742601470281347547694749381480763724289428341136117047082470790021107496129813352136250229186947588926592999304527556950327706653689579962354692504184157933325792569230813451275405824183592265718241222264615700496869620010720143000495647818135654847516325038553618183860341045001871059379937783194140672535613177090503247823835377225869015466329347921560709835692120066286077243101195276823434130086841286484613859785714971152490934486775505840642245632148263831768994183275220555585668596650369663346156301342168715345112458046375321518273819281145562230582839604287114475746621196388801283258670944885148520681216264833965782993679997739797179540668219021472675652188366610877611666893022798889937150220181203244274824694874031057338132407112845556222834781250387145163463512877296959921570758338243132808915493428020595728482943743401229114602832878597958744021804549509897248126535735445995573754834520850670023544868554843478506745104276865322994964495975927289994276515614010776411752039069486129284911994615075047238371596958011532225045964847045095654171904113768106062703109667313628641844316068067996496731202577026355988765180437183951000378443603530450960288790190362183830424623066268021411785393486404786229692627768393364696589262751735103667291487927457666566049123060439687968976001061527205667823291432452599707441234912160579207951039048013417993343149424092844985823874274242814982740835205840961129993937033842569052130675939580098404053462668493238151179966347625534519119303843695216694807177793016314242521032022031150275788685910612849647139619943822741148238500131620288174738654774865518938998473158609771518089519018555129382332309731259490045479915883720284443728642037754457638328035020554379307726413296896662585367877887143331065370219066563456428740393521423885168326336211539854398086141232427474844230483955518735964402797286074615623137397597038279918272055671533628245891749117388435705589825652452003755978236661394347172916690222659251167328436622053209675019433518930891308302623481090410126362162446048217229517647604688488139746088524888497799497104603256956148751922597091284072668319653730696272128444355669068880663060151336830720055894596719846458085442285133772492813344011356517262031884479228730866557453698548391381075849252000646239693729349474803860802906842720636023955250234174405112193009143752014760313602244938686435334232043352610030998189882497383109508842496573371191208788306280867903257393548676190779837713535872275082491114466958991666187856245384416785227003204205644684047124025364919138455677012749877486573354718652687772657712326184831572523252719331060905453433481140799489938783740751871286940998700621161877251346323993165800842501520709605669892849617764747079275112812866552055179943091642255202686647314600249827977580754796908414382224493353226069217748081545690181511795274568788579763166663780290188027068088920400450630469120594339662842992540680216390737354030421676447392500255496067974880998675175953416334686899021703483603361794946920215007769516726030305222111972714904105198010059876089437115671859495241261065590844470813093116248400771036780019505631377586087598643255720335525605631690918787971822811463544128663955662578750016947808675389358783261181528138392184639259002390083056851679290476805356773816190324229101648270111131751022798505553865452236632343552443459454139099274976327881629821633119627488109094813295560818547220375284598991916056461559392648017990494854552068499483839518313428005560774085712465418662018656504336545226730588360567200881072938194107307614910253275915626002175888005011463549077448099166684860596688348676261640637838962185384946992304210092539960911388973083321963685613683204232119622872320759781227732352097040852611287794712246025753080620450113419291064382653167971705353548355778661443569532055723406550828252246080445503363808387292686631536836889329808715159064884683031356279229299170911774951572331905339218964017056123598912044094861743271206525127375829488345965743770779220853556599648496914222848119262792914507139374591336315893127913434170613796616980805256440877488283015436234626417308860709019470855674963307819240815919759265313296362950786361522312540165679738475132259436561571077099349964523766227136290536287969228258229555379475619574003679104722144923218690324926128960439299802881808403022240950246056040399232059830906857424398790535959399805061253041124329559841984388985111603656141497799562216271608522608314620074967910823375014467240487076892541401711425070541336880571549234604581673635090507845259217784314301509074054506106925334821426627444409957413712744025699984182004615339447708683685354898473549439113758290164965967333162182619117152189140674084753899088129486049715511659213813947684730108310929609652092181811285060686895520243446963474706099828309748837094253736417693388450323688513280434603452598885024618437774853139204525365250699201166848957127662312470114080790955309292013044648940094356436351971734135424115364270495213909288756048273847411462485984613879931175768194960223257914754603819725700816607027668331636075796781775364494505253255248622776468431891669528048321990718172575163721734372480246642896826504184589770881470984078349224213545310611418779668695092440674513959616237087554877616172700733150436561044508441422958523737046400934328935008794181811202858682825621741641034987638505018558100089642741156424596347654337921210353341303067694494502946459219820028858131793366005288530435513633622621545185977498893109767801018803678666080628458138893480918414577310801836636505033749108046323052433713219847958169558824768007574361592533309957429063671644704059891570037552567431277146195708301703140504510678520877589253488082507533904373993286530517417466570756841489978617091723783103238787541757075228966902166670912654883138054401089997437776249616696976539750140149572011750641826390661210604792428709166957819324486346776797207728015342881562638902566474695120768218497933302039500336373763672971652938744681230711845746739134422522939069978111161334317743716015632766714663024245405016618157641251005874769386860606945585455868761809819504719919717567930467521833715314551080587215290180929423720348634524229108862846478965643799701709105696758875686184406378647374222897009529219792667234190320191785398907053716181259147488567734564202140860991904555384559860452090188096896642820034103119542639911487894285357272134066265288348165933791824854457937090496359363880479297211417133426800581645454402661197516137914811708679151615160838678123340957403916454280447289614457178893846478359281310521514463008123050601467227632924112792685884894170739562181138256366658244120828400877230029689277950244168888981026009396181870202703113840727156783062021845940437173970515631523406451388505989042842877253291101086693089119408844570317555590402532916698346986497521998882356003585030486887646884735097100269433746185539087840329126607164202988427756375305315021246938308148258869523677168155318085414197578054436308093030345719610705290508430238395697522993148712929123210262539319258315457679629430217577659426518508075763917075842488447940686749645522105217333271337679041277097482431690415420666074013653790012391364415776551915683442963511273332127655191052695349999627411549953627764675415016718585369913674283831423547272127264801988391158261958358612001653253990068364528777039346157286623228001600564211191771425538103534770770616422608305347155812175903870251973509419067808374508122404055628025099491503771595012252519464934225554060606226545893372900853939828900126169677348024350169282293176444885640610731785459075093480390371346168550180846412506113351728515431917711619149385715894667840088965370821217557488706984778786536813700236994067298829258825430055108556547017638490380113615802024245231032300518256476510142008007120860993500767811747777718348435622796826305044403718293032471796808961290137294713615116832085636370328144701834174183004284310898217522120225310405318801537404648006308089487046137822860280326785955340738125044036586348842448500978577674488295798127504965972471789110882049199220964407460848736874926473572831070492533537048352709089621212020249362624130456783630348768024361311662641634504888770095609710931218355732169468083521396531891163093933529782555315885714610014975878347371452654335702839861805555818457270793127534718781487140360215630964381212824102765693926879825425442941493751796226025462871934544554004103954722651982607226629681997775895938823214546567163569381151759487400072271698247260851296566551099941944840629625663294392591694476738622756438951561032253522646306429076915148035322357250526803404190072668779191281801993717484712085368868244469362927436540672954563980132247050847209197225334735929969209627073627336717947757772838783701562045570664827560297152494888374904213707637811895817658742373410742083457602219963504436335587311544102240068446360708130170762163925672309432459695260485200940060833718631687011413598150131857614019295202916681449217144348641569578343007886045510124093820415133110850797118263867064412711091901501896906578897569984055069344493592512975131156824494776821991319737168961359391330071316126701229211689487986031571104530682499400420782632839945777060102700870446379914868917966961793641826706821958001691703583824071512571631071177846126047071505195933779955436306293085796938059520672444605966979573686698139218067242113980698631958679286448243829510690736048629551231360327754452766860440104899747252989215913399452444135748607436963107484877498789348454804371944007557690658156305765283834543353651210096959332351661723687346075490009660276946240771191686484299140186501024719274948090746872504577660550478059413540954597928395836231663068285646774445366718459347546846066241760926273972188223779343813345911446043826371371485331795537036643038987799142775281609430342227934058944275297537814058776335602975726540160451991472757877303550466121641864833656075394042045650761854808870152262765515992957410296071740039055642395511812810164880865365460444303802185334592878725726516618691912756014146051502756233117319472896877484364473434840705178698464499206102246110060444230705438104041044720565064283196717294439933086539279349191256388538641799649204235114348107613004339143969881819555488202864787973063528311259535816360253754720970436038384228750195816903903842706290163172828846437562999300711689324911935841966018320254422876481408811417519612043146974843155544748455480303635878532876661604980972597600634452691632115654926103218746982181633112101432740290459608829398591582651845258256909309127402818954492869089748364440271524949033020464187910831019058729679629129544877374631145453177962387540834889179403165928555296252057458790027309790806590699914520804592312665033595697369920779607436521626938961378751414312926433279532228270761169301707955084656486463146702272337210207107512562935636570802879281426035694865385024555221976625309462484553672050190742210353261237742082921907888193573183743605282639102372395545872968745799549489006427908739647533273011027302575264688067289983017758810740797435869949999571539329318853599830538002001776236755829124832432678368449162484042284019957171507547939544837717954030254745359692205693978637509518990130619659069611876286812914865846488861386224691396136976295901563306888369952716080487822473916510364525885123333525438063877577376314254960319699491051548291436831951586757997629297717672389634197647499782530941314228840757244436611831640239309503753197179138518637894327954490785312304647612670978927707668091495403193765356041473137093737244753190862404261354360660586117650256258118464529843297563886651390600111558555692764788627666530601134226547302802511194746025011535606867308807113004973335515351639736807943537360270944617522454804475787270442066966296589750074549560052995802910926878544903678987165590579753868784439860264419021004563377788198993109350978133137779301878291907362781162796139943685549933333815219953036516723634925409191193636481197510480241534878497949965858885310617481631633731800623605582937656126047974820742362272194831920336951917598426776944594342135868356248763449076742395024898345441344584854430599121361146033699906799504207143760122191765106282449054578924092517722216457167062061741905876823979904138657823012854189333296358858663130753491032061705695706201345613675284142080674057284476767500846383098002991468988652653477298536084556077624939746753304923055072724830333090593441832764272619005614265131637881551005522148506696940430460642950371362113780939037357200012525772046427440695442210714838385223736622844089966297137059226092299840626789982195878589442517637475251269509282146035204361850094589543148592142296848064812585786188875829806466833567017302875636113641526644700323963126733999154707407829128879765402846428751843990336957936977402576963388868026321079866552578275579535385210250907960529416358201145967895826236177874000292667809450435296270015336506042263219406654780154982477110894105010507047919921347332984472951446343631865553561395013149519931941274723728686726023599834296804535204323639069660555531583701026536021983687460657843280335980970402384729711477361474411548012768507583642072478808073756759888712329187459732828027353946612085454135388576659228110910118320973738657712129415405922644068226688807366924969379102074487794554459934504907243019803355299112450800437994294613852394151540416735080098676594295018765449944003537196356329781666445649591886758609602552980078710172940762417853183234757446366367986221237734485594305169538777640573972602005205673141590453501872000819496559838819041751480534039096365890332287863405020021846028046705972748050152928753391860464716644126106269634083683450668200341422913418578687905219694512412998400565743239315302314401764251680656828649732970089769002212704693167937125697727116974602378128941221505942274859134629573948826247463551081660922590021033973390771585793689899622173599605620220036286944387663538350672149020219922084015848463345738828722472288095375064543478168944348356985520680288868559857330101306250273997613855506146860376458466179800740640865437694277480647596932511687271538642771290564797444593183516782305966271257441022878181972330060506975603407158995931609562914518405709421686932767874035030806560108828614705760075944440140668000675353385785304194176505263633794745896517257258099454817917324372873720852225797360110195866504120470156808518678547668946726516221828728571469519007015937739272176572698389564895314967666566729335669523153990217672183468124638021987669536981420246065601408545152991232833439716852148205507342076689395900076320601480959308445816645241888512659778762594695286658153346792010058121212596292961621840055669687194782793536528320144958869734829957568395192419692371781519898393610282422222591182771508867950616078318697163802610524885864663668338462554825599514826633472794657047131389274194707605700509494390761991079208716056425304254634828498673536837508804368313667825561565931196295868483998688939870104346267602343781567815771488522411995229556207049234430938086778368295278770159479774508304809774287157676612036523873886242705130512176665573239401122851412031476881384256658511375326743252140999316845455846667814257808403060736288687809463105198771313133597203012895513538137320583995919750653916775309080526648098579681366454888150621027363350563604069548470063641985739532365153164285304420903489293141311301100036137342656473789717885355748257868976007367349216994235589222049385072957165083364667499915045539062426794495238244122437229364488310012446840206659979285646890759010317108927199821640023431737319931446116736881520235999301062983075480036974101660043550310558099445668047647579947567595972975634823393974288069505633715964522898333398056551455521647826578943390571661248675434694400029263186295097136795310955518414601150155736934625391926651430999069213764902368134646091975708315041863318882107904043776101032396906532146238593196422137791110535954475435672418916596500461956446184279144125664714340762903000671840116301065488256062552111367805824483059592140399243203582078006455883891143679619222427421193271809082299477465125727520509384887888862915609719016458509643236573852094401650180621274451490970284901091193756729901127850401647288699864848604009997657179649426196281924579282083761355892431735220580851581527680151317732227977565488917686724895883519954561031756717257389093390343919079153258779237176653344800907429300720114112384226489263067724746381389312901198523693571358589192359224277617593231614847033774991879825443763147371680340644986080220868753486233852936423510790232317474265291764109703642214026134559358235431710830497565720114262473718251441017442687817594591932964814224010185844473430488410088863460344016852811754312615704737115572020207351885808464431840547202506742199592281454297262797316018902334624438065279954131194107013248204354797718166700602017713813864423352515699748303863175272307848087671345179353044392916406596251675933952224861182764609714576921714679894251974632218399273560138197256948932311297854871957221808889842120322803466372442718955110276556355535394571790325425353403622641627635755261539752156122772126476374288382138349857443437832445013914151093493038158888702805530075201765504984634473421192085165887123332507126530672747584844716821900792623551539785002817210322040056882923975418841104058977971677922156511960053817077118592295015185474386446884272952164107298358590643337220745150825742781577768845575375529340410675210820422583741717776611870864996778137197019268489642178893365454757647798885797749697577802771903568616734752325020371152894204141618739719096985595057635350568538731833536855900006709065840078906748696659786173124587924942882106051531848111403664371888455960015173728824298437438642060581190538095092949243409928111106110402265317416328673785709579419389480490423476936089976828430861257142006326041956909673448919620812882385434445192844795236177810229425503582217519937962294927583958617658714238581872720158379544867348724613785119943405844734324784301774373743371586503799930817152460790194429156018532635971302624050512927343698963650890542663687937471483503928492363248372974125555503892780384250846129507099098259870495530225700362826065381770755937049897603069281289567601082223385666186221017183382133341291540328192021063056749009544668813826973512240040650699075965513653629982511514910813341636136442504506678580583617630697517653700763969486045165455455314930642386982100797448221083091910125095111401286440305882064661805549756141888551653414400314133091286933621895490978694764084584067539542982324024290409836142562948869419614881249704166466057058180796209162255841872077225691406283361248823256357929406839191539648789710962949827203319232862935337000027044963403024349284495242872306423490918319973626104242401987162352814396307544455427388876979926060986881802557973728302377072798774746271831656058482379714064779983334544028836403026162623519275409539764882999402577232230491081400634702439387750285119681195044094459034989098269586567203620032716531208632513988270625112614507256766396295583678163675740156897665003544382890933711992809841065694474923110238852028014834618644488130613303299036859795399357680774868517655459215252148348030877764934896734367636275473378136133630931545351749349295199845687988744183443429121146842474043362497782505391310820714068192051642523431007540645224488114559573311318550992222905227655571775330404424819449156175308459906643358815785687200083124336314107426478908171055750438801637718886071448393807409082420283802667269029606332215618854414079231600120878712842392840580997361222188974048399818718649847688781158257690320588004399574155093746473527250372251282164066038327102155218431522490764303522264623177150709824018937753714037400064444243276183539418327689280951782708863402211733758118183642580408835673299109071573542329859656588616531631226780163353405469267725597270351147210401655979264386605891074214548914702588226397256183806468999039734017163459767935114589430348598258858340623235530765957362559185316570784482881404698081119773799732468368837117218917644848581817459229208908834854593906494806611644892306386865539536715996852954549231014311880340014159516980757894778194593224818180598103284306239929506942758761536862919107138979899950161104188119362426176802016710407595167005909707725953745185123733770247401439999736362361625007730202913376348110538630294692386736130398051692319152240790111269716860211580287093285422359489091747532443450984857555757590419877670071659760472304747443648339734738429063362732200778469236532451696295442765416971216552505436645624440930710469098170213880173182295282123904299406313132363641807561099314766326523975353031425979669736154853143809177192377830911044637230433282963953886398015762409116542722495439500550730219431192247008258440149251794897218261208170848673794407589227486750739272526788512447551517552538368247018835767733091136465529320785586709634001040987490216356139241746426104100638652495662251876245624732880323619824434193586125802719191081364307634301685624179144039233083443514870543034508260810149878599130915462144144715136730756663311815539828723707768107845685628143241393371683847194990102779689727793369557550941187731981499040015624093557212218144964692746690271728890291099699041349207569977381313238380440407251685492314282311637966162296901027905610931841901121016164742549315071862355757330920427982601208264464407983609948920056326067807771690690266776902396680797725989699914708034119420314942905095023131323119564376171824062909867630265379971291739710033447322233136930737035696143101558858136653786719442954358520329918325523869621465633757531124201998338149485302599037121055111265254660355344314673719885004023717684965331876597405860883008542878825718518191314367871765658698150505873813944489065017579828840149942353666481687133656507062003796102432655343081076627972492467703258834110366674304231406111537818521827254253321043737868956567230836205403303211344468034574489135239066374669656991196544781332638319900676199247255602354683411977374156602178833563150520896012234829739967900698372964545193516854488627333624704749857016887418432767851139922977594637496036917649298237871129814783957483921081384331055844026852408470604861818215660757857971332681838768161520325831940106894058500050073727146549932013499753503347983347864238354524194920415051663773575176365884080962867405021055534878946064153386777392641585569336815644949962047557876104785978361405282207060265255959459439657607861245927305979337616102985331561907852201970825513356304992898439051352809383893073850368567404289231758806762307209945432647396546102920797267725966518404670424502378193370434771235277354747546821403167867631021979831316495965048029402980734251712740970442771643106524149620569082221489463115421828692139232652618121759679150393123060448245957085996635379860296820504446770954343780501999156013570188188663774306140215775571682279196918925681675798003551023585846282877184452801554457119908792126864391521642432334249078677119096476832996283228713372601392392160696476965413407339668235427902535464809352778342064141305188293272672306038179944680761014001113706513983443902605242569614603181300331277111051879593100015393760155090271415831305243110033621779553058653819141557932836302071571929733828794802757061644977629199908636513109816114663425101409612456674829554660734954374971371117588786990856244270422710232782904204671219563069274397693572739796654192744179380222245132371680591896644168800154930719838928568301973756899308510970666842881605689231230492261338139825684874464965208518102781932451504948747042858057379280091616519746717373438075199583445490748014639210099978052874104473460608593035566130568024910592253581652434575509427211578857373639008340785945361694006850554958638613647670810995996375184524717200111772224408127797533834273061048344167605033879202412845939275036406383629880510261406459990954840567639900255803433236481166069337358383187205722692760735826392481863400045584579521011064796030432802262026403331389187126119588077708223659615331677234434559170361138589659431230272373749965626512564650005279559932355787203599514403899677163529665672494763580402395882027696763779055278944289647845903744563600894725292365746569286779070499637778687875970436206147972833936957473731423944920036198935819485868880243205321232572065503417548576908616986926530182459522399260574936180367088584908772950511111456036578665103031877801451591142046818430647018475730582795466478557590141982126224862281419843993708678071832608784716821636779584982228502615918212686343372423374978498697862311753518914697864343910837197807110565492853325517639598598173791735549775773587696098389264660583751145859495545856606127686194027099425623508998371231826488326757571625091362374328805017507116318610183328666999324304943390668873156912526360814886842035370763575810662366710962476094773947351006682622577654642327465625300389184726738193104966179923253540014014468025031922013232317094433010030483052795978131535305521274364040611782589798559795949930548509099365174601648929441782392106103247745581863742822430692705785938545786968093975280441500431583112827596577274143452927340266780177642701038721146772098419499924224953408837418919977735517353664473875868815795582038264309633174654391686028292226688360679895246415881000030934774403542954668922524014497861234448714595257028201611214873982216797511519780350757583732185810234312893438668372535882861971024727281602829581524780977260789390371116393596860101096797463205691655663705117292220444338459508453358204429903948364324067719550109019509732255367824908530466092037057342981815965923384370106341157209049030813025079883226694335735685120159582514564540603791055098371009202781919288672586428648956567707713952183269497245644935054901452108266730104448684306747865745579915866346693175393631050612133753855004986054243499758756618485845171264129896504248958046439054339059366267519477400521234483067901869820413486184802739008177790682694342325924095975084183098001161511497246584857714961868407996402534493263575845255167371314227880583039620881907893426614350301721419250846633516570141475225283406969144158828953484942489898710488867842341929034822067640192406028758270963786505894139131135433278530243759318340442238633337077782111355046299767711500682544346662001355100958410661360136232128380096389758485135435761519955831927587805646851856012915777730117279077011031493528295087054837304974439946781689491336266795159636307487975399213416834312686768947638280641996929396438664323399312729789063227949283904897662453778738876458217017579926586066429772962864125205071938229335704035281794931752889928211026291746783750489445348939733965830559545055423833308829163655780684191995643400445027112347410837504007106564881977595514980746235256774499742219152186470759811764868355184350104017295868403622574695392201742195307071130512167816176143097360467472636274926529992144541596167823929256675837182462433401157344691042316359207015501962179133311345428488400572733565576120177357629576758211213187426643217900195546892284536041101484915885309688824455354547234143019597029031786077142190366305821631638858542877298579067407623175131150591426903947726952436799171993551399589549264725728795868890791444569319244305023388859102601124671709967297346446221017279198039425687758992656619395915463477988316613914552675668215337197196391501545601441416992284451530427326261391754629735625292106679290055825752259032021666596796239195652919077777460765984373078883598450109026941295471867510133502554950419881743424754001592289637897237971129504060931977977355128068090612530327289891289314429339779337414876282006106379015252302572998044060006634721194021445646615534515132072165927717053600519513287641590065556803845182131742653405764655975295927440981206493382825575455040843886307733274177618979647711406624066954961991544616115378959927837928767870663888409278921529736181609792796293228905752446167499473091779241448774301246089612687504644184599081977945412916467528423959376895074682288707090151947127380252639969106456404335383699683055789397555242756536465237911543647208834568862159986040138073840623177116185475203680801574888110963496827631212527162444893731565694162962061881743791493384095139781365367013761783789104667191161263168984094742527807121698796124094832542784645971461566151920652199387227850961909406303894335656447174811052043549921294187298493874215351722672087149214846138284020131163897957960499730425595146445812240622928346433889208575056949136868733878279427281243817209613539908952874095295205482187242640498203971398276882359598661668890677846054087633565189069738091969092494310556327995741826059424162070209856096398874476313822939002767689826438013801831712768247622710759929021059412556191604304385106403405862276454933811429922203957562573586341205894569030634935707251129031265629958106233257783666502737266643940799023296660583244133081431207536894027000629264671494918311454601289956997647565314681369414115956884400231565817523914647055039457839149844122029464131322212059626723007674484700772163928424864102635731800073630678338157050349883348849083668633841159478955601258997782621347311037447266491506985913177272273147600678870178084765341814562700778778526273078994836515709565720395018300796018156178460266197995268171786782933245409450042982911419502090510440981693554550326056824402558161561855987625741991081983380530497758660538124745442938658282870604667527926105816996055996723827379575943626695907883399440474514259294457746866537593220336096565396034304102761728856888738968353798958902011126391472707551330982432493845609482581448114431388934153626308584193304100255632122580951404916189501486238576114286399857233675147128948133940079341657228911708561340499452380102369311326213631913996918900156675945193023788670125819635511266932499324849768113700335279678788537631983515916900284839360398087440754702565612132239503551006394151212708313035553087162725081935870966915902456421264981287273565002603590859841450061823754329755924602218903306713614133672675006112550350823159743070892595770726913211983151390765153895260955376810458869369192445399533583902030505450867747391013385632811202637757685849899736950241121455721429783480535592520815567635135576216768152628086995740999292760555943370919638480294031088039176935462907729022705206467802658421529469847507360326729591552041849714812936026686886645465032425047232316968996797155200675120345314552597400181787313459938306112685704519085778062024997609795982149109811444055234556840368202036792067824080832608510929118407102837398713454714149638846596159101764103440791357751865044166672357501966916269412372722651135406789924651959542626029946588104971015777383992755896212387323183594671584428552415888222374429766343125020264637226479608601897279478415445681872881024011906436017373062196404053267004367312660462277709781933132497949376930570001921111035392766066958335552911314581388612550468779155650439075030390372435685513664994034729812528429912265872688711551684704007656165743150064878212385070072343556511169079615943058236123442799289471597774934478779486507804852844479273592907931674170368603847359243429109669901588865090262116756481881562721398343100123974166344158451754407321327192525495188440551711234698762306703249218346014875429802699210600922012143180766730564087675472342652376323821089625272014407557527835906872481824662861366512643122949846409889948877925108346668869567842400835789813873777899405709604946393814827318529084482939105074201773697753144347086194533841711643283297275667136696507543635245067184647213192525816201928186747443585831010615218830928320627933415037498372299714332886404189844479811206592401726968800446347715010580432978830729722002592707076176414957421414843584222307642905386171639340704361682842460096687550203183178432124982594562034001637816303427355458389534183352804143683380481185210086911980983392326436904749475852907872726397354153723855976929477324106084762352197984907319659385969906562253521490443631984946913154767188291886049459857498863808550456248544224415966571069022031028846251072283273858009765389938129273222121727779986736260487409637293587304186615847656950107060331213620071868217691655459520541530609513170677582753210766454374051325623488409373367041626503202150973345878825993285573634975491418137476428992233733670220136689579022024477871538344876292922015102598822725837512802097455426965785602889862671571665910128429107712756849898337117958064861422933464997696070358455245037372570695879215800209595852323456838305514055080978791624115342860680749964969982240054625207249473104008830664964931718970427447585968483505877802240529732540903841099836440891094765362882161298991467847732090462891418636572748015926105731882676509363462890041295308953482846401821261338359311941218137368531333272685325483145562336250516935440829364130973180266439037335824503432081723991246935623179614075619423249260258057481638809538533148964478415513473107508605586567152672414920579529989159937959945130891627160943313501293359520426753682533563342803273017029927665281381166331379632717711274843153893221460983153897337705220481290411923876012109435280729420766017027860249042598800016426912651351828782286097444481798245837333026023057529175331633430562860017686350638848801492925842921185395211089157452348689042407239975710179579200071779951419090805657298930585385759608944279530901465942277425233134657346500380696863786373713659564048908048019050859249598915016325745074585380167958233713656544346874634334654155519858099193477584572340688468490496689572400805101311686685691652787556575148820879146518777452265635611204419520937888249929022448798407231814131648739387713067242385005004961542076028460176179503101851387485490484874793388888253264281556753622324248428295864607869085231899327978231778369112640542595313100438268490417996782015626280236449996191291666895713766761766859819089050729096256225445056605540286238426151700126394857834447995850901272531399177479587959174513373591148734482158299272516106519472843996940163537196251139911810724959248321493462419185614651193316721739216019882749027471993960007343881516462323557054487331908908395471566257867073961511225126460826287887127814191291579602016180465416023314657970665026913664865523289189420911752723557450084126738709644011668770177053921294061388054935111263271261482523304112498497387963329101093104880664408317413553798630605205978196707649177626528540858779143452586165983601105908111668839533017113305431382945004027144238252262397779947521556371594266245801380021368203231633502600030344993607458584357040908435557667333650269709503585333182076460685721914707512915584074209270391467909267919388946997669686336456285990855760805121953776491464311723082951124909916211963969524316972590328974256765534144001970997539632117371508920671727721047051450392616209983837121718405512615129860331959852783928962941005231626802776248704411624299192960769271159842588391153215627921451047625185792685367158501661939616991987343896882198317555463792629377585159845870486737443926423158853662245652627525198138526033948579929737136057882270586693904252747673235040198098475482243855196504723604887422311913992544732858166706095002318755672477668028579222184323200270705315908224180832455568613780796339587895693813660468890482013825207088984255330552238884363786079656808102192026244102607596991365100100334982880930495762213352857927509920361055807067293029075822375283481501973923626432845931506489033664914644546938169544632432819264024056548550342305739884750151675462146228042868984206346289239929340599131831967776208171349903422940539551207813825659153019128664906852813518856121024443103161614501154004045053994365566565927114768832687955221270160763945976765903308274122602444916940300102446826855603056365061714952269007418320871431223855360790753810103581714251063384936046564147245988197773470329247202112863533319089654586287436510948577887642425065709506297636176694554273469298117994259455499109595923139266731838795427839243675600217805154300537003298819390701761227903543457082585923804890420022831673235311329147500567425244299564730225231759957179135896373384400854792512135073600113897112244374363660859818326349400090412185716575420286479302014556018044864996279002220239286147135562921023458045234115935736999605229617953923922979702841150313446894182327259998061051301013450257006277266048771939552033855355515476540098462288664419546163429705503397219715544080143471929827142098746923833006719567242906957006030196917686662677059501520963745970482485205550534418633729815497780303567881348598110130852894925219104709695437757902146931445630440711696170303434063817709801698895718317099059254368655224918763856407974379665432996428837137681852120276737031719521696466791897217888653071028630993099964097453355459850857043878417337639637280195118354328445740881979835262708915933189587707258621540049083422820097999889579729145764123063944846963467081412140712717597422300013820920652092042696191370546621262279748448294737149391992226386278992046883931174037354909750830101937154424994898230772616898481413563305775215225863858376634266714931947174583608749984941295432134037004508242669870044242299425068214574335120393946420026648204280087250171551391848349045027390484019098531994990733943256164237045696596166498156490427158943267893882438205619075568325619099513120573840833634457299151109698533417685243681641956388494384657257627963793712870470927230902618848772130901444588477840915208266317672336840942580080369042175658025696501681922741855419519900526637113155857905071163097268872974235576820056357776263510929614846863032796054790143245356562753324688984882644965336090300440709479254235383619164066075692225505102960646382134999284641766290481252494028189410237621172502439780023658288727328124272368768587330945270476394371919105606330877164306994768641595187133940769966297398491869794499694698373418364507020072867623775598474957158903227082982685874130948143918760209560608362388733025015697312169040431138067526277650205836461311689667551597178559538862712954053106155319074155734369586096432314157554127448250044947859667270504634236909742511222452446934532857161669014660902600523314159629704766950705247520053793654596250551693049875981027613081441331888117959544697905019024245443119837081356069454545149994764910979131967866046554730891353224411668248591159119530956127476727051900325378840027034948899899512441149418436711067613234570157416576910230892090680575627989817734802524437034574986872531909035639959936574155183372782810817492987557767836156364111836065317549347867553961577842819994703303054122728198500851655981607767614502732493954170805951218948126546535421360492276810408761680914234585173326431039325331449963534682627322117539137342207043374191071633728930743767230740735560683409462643231370469182052508988550046205114651046429377582364363610916255009268351543233440607954795124904122053851432892670682581470940951962584643088372829040063803661139636921062944262703649791230837135370887763747923332842474685492657064575941408506742351247673199569864931693529913244004393261692037220047784717902609866601062238025641407560474014398126730677728377340449150570412592929083119692138320466046682172590369769558676514590414062514498109294218917047806208727384866156869562408657582451145354405879814951368072752400422336774190844159428800020347880085500982693984139619207790274897663797037005221597632465917862660132064415882257629822847741967620735782388395343378102218783177471501826921362615648260640656064507273554472547191094177857978282433623746947160166806347055299074216670197437775643816500190369168917768407390837362096597500063490964911242451467886073920716615131110878050053749167258664868720360302703970740925692613447594109445805976506014909512167489666954142404408097575348813546825643787186415221139594322399712000218945565240770461044253460449510622419014388204332297822687300895224810850593291556280113973568249935338437599312308372535472369330775212906419263062639190352493742900254538816704377149196435039560480777411132507976965002463803693162219316752737399420287967002694283074167863275035343937360245291469333171758384192695830766260415322264683810351427846504955080242261176314540882298989179836104578689411915889604344943738827414902653166177076367165277169907669217461438317951559508555742243990460401947944826840611454372275004667667543623077721181130411859129373522452913887529292110327558376070835078973061729389938212314782874579431484379124829550223757647902908084170131682877209083111595968703298235069249100926712611064069152225806935665793186281080589871335882284918386261956360934383800574440332187253386852561569570945225639772344491612432198145964982568743082955732669814669311461542544200737035619124428257117413518308946581629331153085845603460675496939351768400119890943398614936562437874884638936905872397317497394882402086722893038353411090872150430550873634478156428900293871385505273215862570706340291825042466650120439147048163537424245668972035546007340846203829020582012561738090984173331641145759943570937324875962700737100817874139865325065545960574176082737643007618813742443972149363234012973729877099619005791442972737275131614686820562904938266576506758110868886716636191231636814979955175890053797954383763312962003845885458455373109760602562319659342420859379845329980133615825376459599527176196687565700854245306979219272645358182437026506196543397362034020120558129229085374077891298156551218967208554381255188711089724984940835171167271031696916271210308048920193016794709198723774193560403110884431018530647739571688649968522456836237764572828741736649963801267087951004167401042165313449456002591268022974076591699845396363982581720073729062289331247941363032527193521325886694070216575672647167230834879451184709272528744702555804535548759819998064977637018223192099332963784967874075708235965962246260565328116033364509226692271689206193331501743586591097735083492963555213689478056791036470013001049866158744787991901201564285258567315218935169251466296276856856764335644664948073715030499352832095221004041195390368670937364019928151587633516921943315236995265862441726818021240659328620765437545799637786040992345166417846332059531919632083340843123564162450816785910977847477387448122780250021525669844558177189669334959045418058909496206339118294864288519072657159985743722697581815348972792082250769429982470904608559441107205193119650112421916960837040655608014690906833039109528382547425041757811518542585420287778334958777085099483134811460916977373927952685269819239176092637278544458406547924300589292567604088627656859706526767304137404701039145904718864383126832728400965769582103562921969392430603820461413479318410900039175402021774714242253194655425597852395176900994547145364587431196569711142732077317434597987414054175327507882124441901377340036917673685288896455389503707603901006224673108052704223785586874837052054064593484255274314417674281426272985184076464544248809859994215147900963348951807111645893621705303211329692140828051538821781400903218125357932568364702127119131902166432606748283447951465906016951561744594717702936589186072892989742498285663495997763978966386474884630207964323117890314732086075819512067429527987267836430810087486619647098851885654069965889054169291112331971215442879384883493488812718878084788315699443243631553093367440362431746557191280961775112178268940112420385287438949365007100416232084401015246080178296409118328648323032021355135507060603168591202398143499650839678465733454107659104078607347173240570704517950174877565065342509848078444340796209547784571945249365154196603608981579800034625541082452713877697148079649402681753882235316911315110358123494368510869663589507922347236885201300599178931339978917919916372458650174226380473681409783541804720079785420608498656107806402415153671084033689342697494582112573018670067658556603899854318323710111602089734942656573538079745573209523728485183471960714783025791463863068494696489209351194794196655509540261136112230151864058711752439986028080833058087085580183974788643649265609687241805708397872527984776795135181389385077438270294728298424020999982695920423813030679097739844505941951897275591664577369344148036897505678697885073068466383322507626596831882824987970439625988899148458396761531007070305731982394605859671980446716262316936326532721157481643069110050542731994337336565513113739260988943301993681362787976377148058479576979387209535451388397582611755004671850470358699684336339427725955257348133989426623405095003030371243718934391998383584008461856438741750859779302446808923254558125435573565917679516022946941368849465574903800386204879878374811456314013402555594643934733169597227880959954473905253177202359544333934782073838665674410127974485391863334513121251384454619647859835072605752851637664136617646878084431428502515848504483106645948828984550920249337328720837989435577432788662788902441645418890463733453428081184027872721302947037036773792247500940788183246638125361223828715872318919517669265672278226371488645745202380827372707467633761141991605758597377240805695443666932531030734429887954850356546891715286107639336411211833997465377785732334287684744143165226708133434495626052259151005835508718332928055395776798575957260038529348022232660009804536366998175256313230955645413284475659039107054654478644062980570038070335788685266642801564028350254435088151210015666586776210144629741509617975863236529146880386850814869960053511437299164691803099088193495490364672739919483220027563782952532356351266325765100497089649414155803123976841325348100323938112649534076252021185681021724551752042101055451420165671285061585613210368322869559639753214731249730818701620982270800367607688850128360743697756697383390009473770744849986892135398152160224421111968556277604048042438850089214020370295070883676817956561114040910797421076982513865720297383823548846393811524099924527601414792826317264211298740058123426364434381172978213562136801676145760105396089289397802693322536571434428286925891186740720274302911087167939974433421864868141953065753140645370251479351519546962837893106916396234463649343129715226386118200096490438064393273870257830968008155763279786608482635742226473270661203478462405321894883291266101317075170120128009040191703532515502959077705660767900926209795734009599675625491539822335933768072829454091942344236001142102565004916515247445562608327636965073069033839897118457549716753345103618249236313531308772464822942435709662792337597277685772743488324220183191217324244252601539338567451110720442785404177824045116978362014119113097038968584798247114152617778263412564979533750254215154417248164397917005589808052720784588230166483533826133697486994170988893930060634004293664718517642523466590938366379569191780162033095664054226249352503503640326890828984387747037877639355153447753879278546848166612416397038684515294870349162106138562138927060647672070086534843989779044223585542402292257583944225795696527425575073799596166448624019235861891743779456259211542719843938609963523877558091451069571493161640382473945234519198220987498319515204372287502289269486705548651894497501606973488714758638334583291649742284821003780078113661713384945647634555636587040334058882338718569979242190987050132839656013390892293417587804437380910288941362148127584534534683117161718616100133109874960906285061181509230488365352944539435872676617510870998108378111677501750948252210986940051430061088921804256183861186657115982978155227772114805227966431722689400821714853609543221624773231136337956114565721408764242005901099033921065365768396139152675683982147896528282281512483978963688046927081665098251823860411817946162793545009716761904914878432942363990063875584145701235986703633941671229926382714939333115005013652343746383420708223951853258497456513902590702756882894881687660978377619986938863583880939368525144611414288339771962112573658731922984283231328317962998867128572450817200922109745330179855907603242186706703987790318852921451384038078719144825843679586433623001524150916608041715115264529331839546804418331521982992211618017781555683695785220055384079668727108687877322504615784361152179748804801339191043347176500192198226339769587392031938008565218898456932340960596972334103557460761771112164748416619766652791235506039848816310075447877014796649839943158169413262727788930456795709001934740513853248819601817659208663268719537276703600645519149406644740469505044321238390749540595683494656633185296929111735044940138408934097787227648408912157687670564777235795764291524039536064992581897578505099045462445029636135366867183046592370451798744590972998434527921946836924840836435350154200811578382153413971959669578740061212592698256782592271245361128080570886910862498983617867047131816420551631973141435213922848779664152293383087955638522741869371615834534041490459911933743261482269109390259777929467422192473934051020628910042142481294750299385486797358615467317324849634606248416825960394785645357198469949709081019118851760733073963446473509846679373656129768585857398159074006323705625742439137010785877212889569025198157132613708880956839762557324904306507415045880210518189119768516788134117558043977784076070182127501901677438424727261450522635202847174508667502304204188899527320142312803288251114809642897387838135975305493392658488296829641232247764285753045104309261230621682743234441188097795328473802673291340850778973275816867173147578821328618090829019899627304090979442840275626402718616888036293654934298236309542766197932889981337332133394785524660919473104173427334587516849275392787990942321066272495425378257687155718997530446669343615853446372183629795868312149179459446678299003616030395406363004588588161116006146009160065773630378909348959687776823441098298448460863935086498183044736247088690844900479173308862684135653924592298984886804574502493985931117405668113773121434375550046595543666433406283940134575430756366901964156101778562898474653237663313261197434694938811312962953184482452502084506825905176737688061837425462731582277590139682245268505117042488971752905612512367499523104531716653916367903103449214538950645073788211431374026509919781889471125550719670975264041238773421161113273912845320173661091964486660561386162224399513794426336962591196740837842260768826438851781017115075942921878038590014650768539049742814836153343913997960764701798555785321843280770016842194738802527084402328837719302805117293176697814776040037245924850285517403619393406808189219776128555095507991524947616472036580995537066103436111847082503509328125012627160661052434127720220813990503707663826123721732042396624211218462818439415005132385547625067863535958161109373204306436497827822045728869185776573463239939804934420236732069677293435694894780040933310385984394863998644456097943623569267045147383547424149802008305325270730065367992577288857503265243408783974528657647437479025370062973979649940323910136655591584726779723571601507639295292882627236215259211118447823000194439898454661654470670543565515243692141476867084010392442600498169926359565391807834275149936366392266582359948170293221642520054121334765485731304210599784502969268094620328157256556205548927951749138733330879857071453465606685475809894415371878314788535656659000808237184710544363596383622990615871442647898867854951449604280277579979595826118809843060896668863116578884387417479836251754975234745424444391344558260927150757117977470442218770991972211093153499990841973184617186990650914907419825994556143285967129058322543086718320919038999527322095541334176839201913302843033591996892090405744393243890297947352284737274283285156549454126713516207463507874378222944797862372381362088079099622597219470211483256052754172209312066632255806319580913234096760930497905427529111988696814262320443815156973983653446162906275605284645211675590004684160459094696975036865089115503995758656056808214020614670860304726029443621200201327811663911380761542225120205732791459255184859315832975201748930361403617257159147736741286825216424397361961631857784517146450713501905310425605288738088630740621703693292970188849435707104478931711123256657512936421805114968993739829823998291587778612143346195458760675892183759689053824345753943170837174384869651413494598136633792533563281784492363987770989590914496643813975816218407148269263103454217523292780321824620430100223697727673884003846797519106802373698423973157631229686529964575193992546654493394537920055834903058267123108498973095914510618327532056448857797524841589298484962325725868016413882197575237755109304080160021394775730705353526277596552494459675871502466384858495870637213079982061921254078134692708471157456101338041178452478835588750085972220009084717872654888769247542995582718405260009976191993748474907080864269806907806292176764579741613175192870505037679774138485546071349635307413785403452213545461825220055272789813888150058411864445678649694513608721322093241579331517425273932681103391783743746139292672746065503059724414009990639687078892878317611730687360746699365534425478409849178820575070754684099199194442363187034920233970792160742166627820288452932070691782982704560199813407413280239338166921355001930017000168311789341980685788861628721041621937866914380319763353366285209583392042856899673353675154231198032797883347674526762971945874818841503326123571394793556347942345806061372019680064582800217098276358336682732651497215349204624410737039134577356195649424717746844269573864468033512983697890401209887767279629784440343821256356653236739310969893689348108641695471569363727240661101274722716306912524678411622314104133437756387216278729053200465922475717385253472089016197666876631433555433881960813933365962048662674270663439648082024255253428202516131189492507596684510093252975527215497580180063062103551755266486431233275773920043823348656091474419316110273453753064370750960840060984484865391945786317579735548755470779725464190894122227603986137758289070262981021500608887523971814772268111438525221945804561009651665934811373860217139013165984183244406835894101414695471433563787985572170866706315991268366577191411925239956809268747150588630276404942172622473794160705392593363603901563880376570673824468802600543100055903480308070838441451369356106391573928915474823331125498395174991427537507490231417746413698408073459141286803714593147424272119622150169596565135419145671640836192089893375369320831040330849262891148594273791734165145622125740247930799416381066254613327328980096664029509294178944613029780477714495958487952099143740360047258915486268062283397470814613020775484420730126776036268366577637379247246389254379596011223238529251392409479874748988715369437405474097085945430849417237042494075741707937887950537885105984536989750682174733500870974158259202453423082904067124841290449364583101837792836077418643441507357684067491133108735502414322563023101037784479465583854020977918082952370479761153205322807587882751849108907406524764984781359626630715933506278361225955430699064623354424228882836357385557492930121204974455716504149929361473165134826613988167980055111393922709472410383471034588050299394222424919390650675978472242244993957899835708558996093265577605531195557390334197603681668941824281201720624325738195118680906673490231849514462550171128011788694826264325174687581740996834346455739049539701906879417812203431968294419774890205814551166803434172235487713651283056553182562358322567865363780163587148032790843873518723212415920330846847524596399409872552809564826239806992246167701735994233494244713051751430439379757939422988319960938372555426667655509190727678294581363873907386296119562061117495017301526706128530874618181635884022891730111489364454819439978176807210813893669980843678691648437690363787268420544393346976211101285160256899467252760817211960544622400888767461542713682339562291389801692129289231526646062855703662874166496530979284731895024855722454640885311685811477680158379802460204940872547879790442525928882284671836747550973896245975300925127652010111411238439073810630694314883068467301138046337739965172594693209141249032482451944359244319509952080807209950358723172270908901166886053834647241985776014542936621145882556001380935270719569317640547055864758148851217902434411930421816385551640325887024768426053189676362320092787095548679032537284436535199184487585785974479530782900563000894120427373554670216176726848042477867631069107169623119341846605485258685904776471485703056121864024322051357676314953837985519854954120271191705780875546643096051966217356371107751637395186084889361325204192951468960453954252082438173876256312148088726926829372048374238797865565893133799209578786027295570236291708969855171719102963471687040515712508227471771337970896512295700333846386705837233338697992488113588896178936801180752124620690626249936217780320074862662038300797043476876329612726509302437073025766149809383172834432372849447533214139572085776262802581073453111378904509915351585373398503945876988167767482106370958557340599596469241841247730312499005710948848771978002911784461127397846950273862554661781374087811020873336533742271626321744519932107152899965594889683281451202073880319272392681093993306478286738134042247311428551122368967451233261400908904728622013866902404005250073368261163965667996440433453589903857449139724404390011587543392406747839489148888824919332573002882218549113507467124977089165845759151063989532687615399926207625245268689879385489156308296291778422385855001013537761636846648365421593631481846998112114997019948905411331877020059690292022540138792724347659708142595304416440777625734109215501852047249943744197694824691766413017993170831362451792156859027026452409756063504942800962233242430163406087102026317655683929639540692103489562603622211258296672148961217767395306514638581625581634319827955595320559611650392148648472976245470256520724222397106081204748984885231492370990357384211872933322563003957860285833512342671476820579860044085743632202504566489716994863262235849309430050046091921697258673817534658601867029947820889342016248564251760157415803603917160195791208224386896449835624344257935051322976701713258185016742389794712596904735771115122562192210433008691620008069081799603726447281631125195206407354601315560915906538287522438443300014534576879444926372357220056263893024853321698382767373702105431933422031313909502337521740703539238227663276328578098420728321283318582331019187547020210563573912864055484899784518417409163726559163498492032396058337401070079067952495902011276779037192641374476220469312927755885804433694619895780909850240029725271672091430212418300204073134272626392500339027281306945709773603680995595298321601862536578566269617293327936740795727635111982691841568725037848391250594863699872507312541778671501117554018704306613425457759508786602629692752636287022409550020896451196452912684966624658559873856064779557624242215635299111204015499828960613139830827880916433597115528784734155139831988307139771865255532467372074233033438282585901063195099134317254752666815825762917512482840120361694396640356744582890314488628572498947219911266045504706003345852686504511675176819885212701655607655739272127983092546648932530877309574546603910978651315301291048447049600188410433431255494821558867038845564551260869158715150314937579445363409467327296817485626951283972666331781910628451601745870044567253745520475183989839052494058828946788490766317537438369376025038445404162384633992851231811991536142617378891809102193451026274144008791912108073918122759761700578286014155459872455380213541219223785287018048795869916093868834922063292388691996014988180697206344096625309988502819760597442126871555162988861881528439433145321037990386511878722383363873287578568016353311941811966937713298331451092166732138863289492304642627835274986849225984067676788434569227176742927592011005201168167645218307170664777098279622604348422001559720152832000883205246306992376900979988210817754550408585543770396117722248066452689704836130923594530073268561348153591689642871493837747265423498137437744949302833447227406782212451680097874111706193586745384102411861622155163631643067261500070178908545823617010861274827089662325631720278135257606055658009074817844043228243067378784460064766787372795429050792263311586168942821117099768315356491499050426833327893106916055129850557604888818995067704858188485232999809442512389344290579167147245583366405725217830564356822029507524232527480049531088710521764461532233348544162679509783860416376162161828821138352212699645703170424720380183536716353737587608957765600598817962738473314101221530219465291649107857398600167733463766746627886993341105899922276568377244570823310702020774508206016067027153424142201681306362850202292439280086643365999826486574913834797801015337276958395986142837754611424259792635964596007200266676206420081524964160188382550519809310316691417472241078649439841385163054098049986698842213773942432843541156434860218180830141700815023033027462808580992042593164082445392473348505896903374679427373204333693305571063325834776203824979395304877146586686960041789736650462583707680507303083434946576414400112815114389510060184275621006267957634272872903081317843305012314137697065055151153946762232291295812471706238912804464080539804376259452811828513124694659127492770999911603765910668495446669502427347308544811710117707450748393055237934703112437934695975754135400463026236832060741668649703384956523864335167319033616778209643539343547086654617483709082971730143015209791443088339687264842257019096920532900200391834417680513039599689734638742067638175310598187631788549319349715447934117746355011728767731116394840666533801021902954421294314106353483275270607197717385033845105300823783079591648175798144136603174782922327391024246268059563770770382322337853731268998138620779696504130121930963767192081503820082424840804586497772507919723086516855189049625455250652021410683063988784762973850053517358309940579420309864216327687673073631109762647294583077038141477592607435743956826467129416444352269439517401659531020689280356654934416442278765726837007562611439177224627630917847984199087315369054018729910744926610392466724093808755784484092067672703848383168551759117956951345719722887623852585631779595632832503237450557388277474815870680579424404196044880777267320894149170808181751897033282243580013848798075735849750950372724721788564951768193361240089192013253919759359083224036331927697572790730186723587829919643069617793248019422674912994636137499681686342434931164591053578453353869781699157064099986813358130548486346802080018739401799023171165745759646292292632978341983168486853036474411096940408601441907845825965618107607397337290977761634770307899724290524230878782646754639520333118566629728284708801688952219218488149095635212159752782705166244675740657650027590740434160012929305119597326731488902262827399837966680192792360726829578784389862057066728097650198294143703312775061157488206129162764007645556296823726268969032349931150672598723623175536680682655681582296213395897956806549491580178495476658221997219129191751804160457062110753929419311385984930035780543551481620609861922385613701896358080159957999106692732775772692806178134273286522424463105507477692973203520166891459085223960473383486017752380806492532405731674931984266456852424963410658001006581011873335105462633625142791926708453546453416612770932994509485986754119891626927055886003067798268183598146205571636418644183607987699187958995055487537579402937433727537445075107952200731339292512384913639289649884446995814293401342564320397666566040359534050764980699860980975985548970300968471401423993110225647792812760328401363716208643219142609620158961887913355230136283272604323152096437402039458826274907028045744095637835318543235425445122707279982488082670201660698583607790907432712059147243711915993611052611493458492380325289939667974349061749120812675372688853540494839877181286594080249072044169133379571759079849527349963916270723287687457594160871072758526053871296620643515783826577069055634886574388688188968735019676482648098144836845769736320930097760026009072927120924768718845143176728305479029266945431379456914862018215641477558662262838666507955995783984094381171627270722181341733058240125400441889506156498775157128090221194062015398601574810084443278032559039239177061979197975152254513520698744255918332256036834344129269115566832270177719188233453320404668813877393175858099148753268689875807828164567225858130613183208603087600656866553713388684820250912113043209473460870756098093891546530959032165977916193631682078212331159494138843731785281958845559903583130913553148329570329454106882147142576540087165764248167079628463134794195632567688276003310592913664953457044605542404613482875184968429028655130444771852800713342824777301344702464888295357535908345796329218841379695189723987627700392807837527733383518217340947308053600965374440371823166654346906788709468235269418309099916193189334520188911077948679863460948057627025771072481433306123412449771793518578403711265793337246361706554053053698145136027737026961004683682723282497834435078957000574858661305040607790697214473815114275363053578766903498812142179069119478668716157714874468783461955265173494524378115191194935937448034947928324652254179723120171872009017264101199454424847851174013190244769595954017141030365066940079055163556833376583438287332066941253659683973958918757717633593453347315690428310367042629767013546568318598783866216261205848362763521185941475268540525470533449438320005844953555128106491908427774907883593384058915108692441871395468294304359093112590763848693566777076217139247327573520545544602188340224786646971616402473906004750960480432071258584547282019899596569682957445389870565016174043624697615172817719337481044915573361711933506768807694575804575798378396168090022792807881683387409439347796476319575015504370217479748127161060716184531118804462828832949716916217416062484660785663308255785371495625231182996811883827129013521092876778730026739231467372962063696819673376478197056886050324143022393429730685171626078774558663803222040477481888260804412728922735766083888112265083826578753412712703059365070219420368449148334965707235489978082410496537519662617463575528938597945728315668473981599410902649404998802649234129407659753200486560202073406637218358618258642096324487668115185767086940005133882482375109235761518078473878658583204420674753335835614795006241141636733943587537380262723448379366192021537835025222696600417544218196163392473209770901795092461611852464329494831160222487536358339365668922069462993693828917713943550000054036345167032626363665132309500227868947211849315926356968590010982094922247341947983031132436193626063557289867690937944087853769335541627648091152026434416032925414454289589295231796642153989435397474627349526647682683282314816526339774172012466447345603236635901654364835080115823524976248389467078291733523398538901036759592408200100816162768981870046383976028456681157667210501560448833819026112070816344585832116241127967140411801919141910860522679625916478376868891905268517598774064212739342372724194797510508700023199931703424284977836670628042513740432149576721416101608823645894117943990605994031919863257435620595149619462169774877771651113508711144465912576446509255187047726126919729326439559834308442256301639762612042881763094099662965947638622355854290556403826697273521485052910769419230358337594435353189248590766611969621568659310521317063255700070481627602909113769123308561595733590601335386801894806243235941197178351316810166282136341590738555455903443759446517461752342229845964646188980423426744042869774777364181934286754783016353515427821881798886132782278228250703528230439402733930145345728401914624083726780223103908084089953886080348168197406822057796180463860551955553091232198756688022396414219723104523978041269970620566772713979611195102748131539571407861379396490798495302643351124383163362768917247426848973462641141453503806242005056304503473551680708823450905341427401486896325120856586585565049768595416683535972368774881670569683506839798779887301321248056308652813124313894061397294313978714882330814966090442638425685113910878378306662832629863879080176158571662092479053540176386176250612070071516162737102883797832451193982152410331197237855547993599805795364095240152311586008661566488587322185578403604648048334357554865762553235299791685566214083916467047383303639440984662591188247039115339564534519453647409587553249367529110822635416913885334981284949558499346899551377077120416945139361680287812923898024604158158844564937271187384560020369057878339741019474547461626828307099433532985979010105612488185734425922834367640734805189389695817442198522994834894552419331826386013216540806648934365291222581797282366032457525610331295295702142335419248907952917149266674989086761249782292518604806000516299287559121926211844366400925704675648310707305878992697113456421465981499688032050310044815091874229204120602473309221081715585434976977791662624202234788815120580744385951815776703169132030642302110245148847701892218541903984976938774551780925213332635748447471690960508567383391626329093701237135615467277792893226112096992209814960302332505092203114780976191474813079622558569430821871608382683254471622829858051501626870125138693319218650130326446723045444778529103616831949174963986625893437624315077396333251990964239949550015269312701900650448106128014191861746430654577435050804570750873277098082199386923230478541471384833330629438086754834909547341745757364217218769591783364170625233688856891982614145665214272956030050684031176137453087770396424568908975253408034871545425875494486436232058508802131849841237678764500250066794163533665814518208601288347604745031259518981427591558917351363813764187151116928793461621075730320948610402702291114090324546445921828184727893387695923434080541958425993941417271488576022250237895360496699017601766944402468321529953947418452690484003920718305625991927929762477576703670698748889927785532240850002754528156155211754708067922163701845290940083609954545833877020157217865770557684059321935798804896587601794826712615325519718400853942529763661952544431133971864352273361607486640226729186935269959076556492109676747010769094925559419403598233878413980430210544355109684120967374144432099589554900171640389504295356424962246320060951301239449691123709541724441932435552560177079769640143913628941335150062106606767947271027586100432157630710429317640396039329439749629640931030734876376125144735044531591263030942994437119320830026466937963869198081263220967364967279678811511778721782761436815573883897144938046517864996833749445495952602676800917846404826670064235309846546132170715244223768614405125945812576321185428428901915208281349511796197262146162490221283663682091477963000333551106339256571248474580921558318918305974145869540759523464554830192763223465827774970678565927878866082819748050286983386231280917783862129034456530576676805035849354441009870070678713416017627624630550123551225822198992125854702298643439406571877789326906089853791632855749309979084795804965989568725750615631681295229407445880335964534143923120310096494951697829022730762404900275801089981819418625838462214481293805516155301250136026956761841859896999366631692960373572518116072957427164866411701577870335448833243655902843645961014105608115835500520712450463110423643677622801474630606211496279665946412209007919914015423476482987032968458616958154443608453240857274740424778936040444409597006372619147608809417613259128027030344187973138572288014697292285946516625168590540781243584588157684362918313660945393818736827951409693893742280488642705840566107693914962038363201109378793323376032321693293273916175413177622224289289235883048048475776060098915095778816658487724677079643622229103969158104909322601792586326111210526558600486079898092193855024779853436015706580075490986092129034581774781584275435236255605587871936210033478099303002921055826200975052224148357407784158569145382194803695080709970057334601776530092827806752728293933628930186173699967365457883291069477040386006613564879301453424882136512207020088023252849662942808048233844335968232797577076183936995199306015602792663778336938479010094723012119296558868541329578872304553585372070036896730177403247252251664990390792209416466186722295029152201185942602211169783094526165050907292488954728853835911436193009043073453944763360778423336749751872925617370274445734962214213961767360144092917597221388348393388270637329142533399196182566834499637438938529285474699834420585881968001828917799174776903991080512951299846984197017452122543195263858952756882914131622160315754368525468589128357219172274667117437878741124544520959956421325426904671650372119161971074740988004641765817115888917804933277473620972639815207633852148296558484647573944750860399000652150490595472193130379145658211261193643494431661948317354813683297751145026715187181186967080165680400408268545642093765184578201022609144257572917052079078958778033634494220645600718601241461391232553284994630470343309044693208634483159685278820178582821644274238649549285230368294691659220742347340933613933050067730339765660595982264913346126183762905156154074006273393436300562973817133984599473200517089534511173517361107420892776019952941811251927633526729933022130453451946970617161966452487032329420689866014132963176508763220202804968421942240526496053732028962697577536437202429191776564667514768196582444421699457663282249491173236759614253258038319788311547511382550233007557327694907402573385797723189160806019868933082404170823166694179853490454266213164659998268779523198276408231256855805353719852413201254189493634969077745961622087524901777009457668016802638547127662809602154341372100666574965928259693099842435360741341487420359332747694505208467198263286553805084156908480748643561322292032884404000537307840119652464419546445585892707685152733504690560390125270383389838785269540027610415401907326640691755093532335174292150251699155418517883454106537403095094972059421933323494482508909455360341275843368339791649210144164457948823273688496975088909054803569814042335317669644011815387969991242451746454858203121340000250840520551666239965048241569938442759345486613255395996342389270035379465221612174397281333528547053062323532155473499518302527162082733368674186343880725801836429069582756515288583425605263819039215929488767860845656248853765637497483555124914284965785447776814572047595692793981977385418614510008159272543351027150014973455933666397917966875000231188231221071362973245738568700684651035970490371072263490342770938086773327557474631074932786969070139950301119577954896389148746350968866730148492768239806144689263023243467781301497887098795705682699160704018363883575366247914916365355447031827926616974805474414209150720093663719888599554029495209660961687066626541979686932020087007670302234100290724288797323674607417185578515230033904829406352147697236182612524690865047640888431164920612110264863217482229337953451844811787447986781435603117389240707449960399404597011328542948197429383360333451596515907151999668870524366206204778645228973890167332177040875328294836803284769915215095982660085894719053637298472228668473044822487475053192553123917107390083623185665559454247536712066510006706332660619354777045304586574864346694062874014660703665416974191276564263810647070229008109517323196483213616773950423771415383343365230494923508046555835770535465532416607622091301398273106059761555448914347977990841748501767398771924633131354452950856519356159139568438250753548156136932723606351743275490763921523321538472693130193090914414502080130345851531232760530984012397848431806923135886795851123236406167244095006900739790281340709631410691422617372520604616163583415604346388403925321928514680957999409686207173386998692311220725226199758918209575278680292618968504318417994058542889082457924691384304379854579422545512552429739651734548508174037627716176606874377873366500695404653888633187112035586638977944828641926388454899315286874075834572726265441738911007859407061106983229272110827756522853784161873339974017157707719387412372961891091131933676687069589295928477170736250915604663330614318614138752539149752419006333181874038881956939861294961116765862776232836074505325654017760350234078634777496628700001577633723563823874814475462890697826656473090325414695250571297786711111698848194809233005996832731679981987423994617581674839988847266255866247455981059486659800715983983345710098848221464601124788386160180360464146869949550328257972657702377489972647036969220202368374804133626098052946828566465662459721936668428402545787132298749460460209457818208200422920536358066334727390736321453238988590389473957711230585713377066034658542721273261386287341063893790221447398218285855069726832091438789624096015445269013280946211835288592478927280257360240128847472172223770883485572141147188987667688920477417489494282233707552803074152170815736539611092585909192806666251008609482995074623353913666643534240335715262148072336921285130469352366193040167730220732280011270374455114521078691118888852544984631747541489030001769339416815362212056887399174292810258728037123721607610574917995490655502453199720732320255478497191750942048718985870100043407513822543704778927051574277105789359725224930885501229287747836974577539293009991685358900963905086697023669073097098730329825996918887089816034097103019326875820637670137521667626938979762839088281478629111064927749306044460886080131154164481541266121936551558679939055663283031100595790462930035882578369877445731599819681690771057430172695710419760532459866391180530897560858093515641908399140632036779349304111819976550007721725587091512102519661529935843953124954147053770418932613666692849586976953281375778515820083741778482133456951512249030259924562327344404911226516893392808963505446008015751181880949146906337472243654259950974724412389994337031511730033603155510472719263897018844490018937146053336504712061350734932741730911092133138696932893297186277804206572221609306733217596137179355654264778642173106061423466056711340977467014099010932416515000987307239218951847253536790165484111377378397260644697022178690880071083194605379624984263281776016013688670134225285817503095998641065562224767079706663143172181657315140243649434436947690574133652316961606563971157308417713175316222803887764578714254638403093531722685584828286047616729774796439545410800415556653759814394468009775016125768612573170227775055556176906378198345972749398767315245641664621784965247218843731661062852402116306014109851160944877012862503036131050172731624349599967816246801236817300325643401201348897362857170314677095526635376778564894494482402234657247528747170511100599349333263752071431070721553096708935569676366171033522123789677081254122730652808930873519033024923700301853731895171955812807954215343493983505683573260967281784380309077051519100442132570524249869536999170596161427339883293973632386827198651612542517144639768590319714797529864504665973124943039575968839921279329543548393933412393159985253132566388839472619412106277478930946953005896506929206332319399157000286328428851863791357376141943306539972199024521734548195623748928031426246277599642556212804610413320246284562579780543891779303248537754801119052665426940548029397066713901385240429197049241211538095200340704619020395839638042329601503183299379050784840414292218873462218050487447664166174928885680162841206685796095954795228152507962667853324264764852921902808942566080732589534477306530489048726896510725610945390811453337248880119062663127727866281278173485130868720541337193367517401710336426010968043629388726264674363232504782591891335655746625088821732135293575537321993425904957345244168567701419079153850999545008588252438958476575651400193783429297394306124574872167836534872203730222654130940211960632619814361756539771321183066672158898995903847407220124738439673843152079002473261159512697527197027119636803691166274341191519262287364353124797092556545608040919811088128073595051374718751861823390343342734432448546902434759876696544220846606099643389324655829254503662877426707546962767981729362861017448558561763008231262442399484767323877595905976576339986746284631224112558465595240932806559614249530778952418972484283071173847451901611411196676798588557939981410146681606765742159667440661469717145464262369131480922352518554142713690084047612805193971574317112703286026056550749635360889895217167281652833578661545737663501473511232019737100608854389155859885948475041046439658907081567305463918799182556567314754788510287736800513784051929027890422212727728598283104090334339306556740058134736336193276698619602123635854603802427956099519323885817155836640688156636571846580789866407463926449846809070115546135517002972926512393343250969767218357176695392480956360569792602832938128737908942566540775267147533059044628889651588614198390625753323476944992978848461506808350107868314244296549503416415325883310065513962156153907221833766492320007505524723772532758991411126594897657030647869831536294467252472180776673707384151830729437253253528864014297800904349561095662497371235003964855679993540821186377299016121534511232216895286533740059711221820312770710455725628699122728169936198533874136747635417871688124494309772664522404781191636615091882333432072226419231583856476315483693276038473261755007527542655098360473510982638993313581311844032852959090679695043014382708777759426620912118680630269177610350958873452113253104984297184472653915023609078797752212341570702771557430500149810919255273494553600966155299485024961707705742036496296217578251278484744776613635354643386684521540207244184859915391598062175000964537211771239274708863843473137148398196296115374184763402619048231331460882149645443384763116253523735544595504419567357093955715241492766142562262289552989462517787082351496737261993533307714133022876518276699881485629173764860397679779455261927417296895681398109040507798321340577119417844462716877799601780449627267815111404677431455131625827053919645880782512416373896368427288305772057677239122489614254840198644269885243771909109814148918673197093386304256795186945233135310981178680711484179483628145905234861443179520185222378275307996815780472837096616247470520048957216905034999175951994690082430951369088487830807525280184726827871356182780539706243375527649964961535866875596814860007268708025858982591849283736189657716056085892948907820592107460922125036171877885889612307091783045294174704281631797154020214291210462251821685894084305061856725926754614853166868459174399199253785917577656529555338216016372635940967334852874098367080862780111930500317691146548153955153911601869585924810773873660705135982438122793254446346099127941803438001565539565000494421777495058277354765321917427753164373062073444696706517017977414685416128897487861261717635707890617648345850620078685648643993971309569498474957692825956934062866700706120748537743519310493830846918960081066543423972400767106649209733621529555639697705416936620976113669363504678507673266169115930157096894863681928568835866072927035658786771431109785149150676285520877461845559844097482222464408860086887237923466395559006220969781708797902436699221856066653916029300199071540067847956662683806968243246388914331206619827701010809587451635113024825660716740797306095739583073356406546171647967861800890427358995996872061628306395564428188226532591368646293467963540677397950980540774909190591435311385638889294377377708019510687649910751488358831117614083219970388264017826762602442127488350650651652425079823045016219402840276285468659620296716107001086746544299146701380385865876604907782073485084971752536703438974389340415823702142753390697854753434093294610098068640311414794017432087895014147694964096426698113196903290460375016595304652353338000218856754974062935462711610902787838252446461941065238272481199353273290776659810808566379665570624672635652902218100307984247481488618853390416661637956288626010127477825351882252204492585405545565992653397911846530988544791688162661548020882555594144026608738262824387650989595768811737301312013497766677991828424319252992644202524905134264706433028573279709021953453250355638592988674351434780392092746619012991799075952445383059476299160466409350511179177960280905124693065872582942332373898111822995864784377949068085459392420365003715980152268353016994281748367627413908564096756575394932968846272285310063741252260655106416362963451283633889225563258458619506964870134195766524947422030039693100924106530705463047278735931897195312198262012438771040836053287377993886926956832350681924653714548880019103609813867508935993177632176907610414947978764151192932803321396083175724801406257253328689118029316748283676256129876873818584436322453272088131445276335476155446252618412260217859714126530928420544765466678813967421683766209493116677330722180275063913501763548814074633529193580608973588355062028549800231225212155989418733474336913169426959563437382164513237226137058700121653100917085882961626346172370481247554280033937765616181322315418734960012076823009408115083828715080905588189050815017735348473913575896057779129100875899395382943354589285368841504201552584632734851750918761023164031242526066128284212083489632141389904087493653901679675741821453185843851156981682864066653512719356414422303552304677962890358412011953151912172086466711211149970204642968060888385964822361031823706221492249280597179437606853221513771895275084724449981983086153049190480085946919354074149710395213316011305562679449655680191212705395026569709300375353514453656353017347232855642910805566302651326006692724838199392469989096261219339978143717074290411163843764563443277796473022031026424024118752109029767300125541223722945068132076820995011548855632578613536422078571624939799138858165415363281563101955406111753211335409670517336255639261995736862884904296560678203709702686972331788338166654607266637110963159020228968931797524070734837154197603416747027482231792662086163273558945477961173755274564360774290657178253443762105392804842374026346143016074194978464555512992983121322032095833644167676576887973153175279569982272808893121677279205406801382214562393049793879361877565307144971236050771229655645384219491847002523123127330524400684239894048639039324667926642099068662987355363744784879474187860064352749979188280620626790510445279171224200814172119507206050778145265108016352755615232810456876278718658467684883053518074940296837370871929290707429387243554665174450967888552305370596122859899442086483524007197732409605647748327183302294619668756851752692878267362470143381429553159908372464589311864924277063228061539731098425723829516057861652168694842428090047823335953861540506212336745387148771476031658225990553651722147636051214787346664257002257093565152401753723699951399020668720955384001848043261169051482285207137981700478775629560157959625606491161485958725249681237863586141489054935013407988296543193997940595352902435960777074009226016107566925314936454976540523551869557356873366174475096327888093994644712763642364953665163015365938886608235166945161520398123433010894635257612121816242504599707531353069664586605125195013355765630494868360931206547038892018083867521177526502559717057024014380237021923264452241389370152754966810913616296190103615285816550938659669156184244120722099752242281305981548657734698209330123167637579129259339213230755294693488786680003093911296310500295212134104262399870938626832373306285915824295112318824881258955798127567212421044360253313453518401575164468639060945074843080244092500119204827980535768123742583245803039279530264237859283007189949347944951328524512191620362870485096121340100180832736737948524872156479803473899959826790133300277059914272478188050253023067418559082242769489313855754586492187386333526414080835612095890559959243322288933852168743843467924135234438737561846784145359106057308333103574791735694532644582117490212296360503992704934368336027302035229704045506990475164263861668404635002915180308327242540693786309776792878176627402367919873263191350740293717602664171346832191893807366730095610433216944592044632576465561014965421969462007124413409243791397242375626391934979600918813465355726682911264865913302139352300663082066470280043566413726113438583037971161238556815801693329264683970946789181022350986726925646191605268032161702063242399322255733731712541860665303993414162621488776261149053436400029762499581535248281346932591913802522435080846087820310374250647721009772694110313208593280144438309618048390401096068271775550437566211852896384029782905902940374127689983349680510130094139865174982630714574979827736398357802454714771787710645548020032414650702285688065304838225695702770926033620791999822680488738917304734754348447543707771277803304136136693319182360544008062504565747542283282501901953175915536632056426804081899527900815195911100840491046384632523885215362072501968873109692988094527483523168644313685997029078496440694524574298284774369621078148911247289420898183924673348254707310468639610863001928972147490884647043336579331376312163610482596205496533126410084789137109532279859406299716255365302594517145925046020858118006290224683655820623655383400569589410497375577783402107960200558711675243540333490883903652553500011923692224627690919422422727562342628096011445354138312389620717937803826507430864332525095660983658424641592735396336730041813185197631451754257844412398646899661735545158715334552712849788467998896676192949215189871732876186839905779289304382175513025795612329646137546415399443894219214768301221548678568495879332035827931427975932514457916371960618284030045913775523840100192468501972330054645605891640020758211135684953776504315372582786279638232078804878224475747318473670490577171900369104281791624519415480799616852014364146835554476274722593602083077556269071182759611711075719184608755671739112674387867229493726728480402770686677723505501424479155329526417311827917334943658380939480964645276546966781867878298359229920076381944796935671334101360032358031711341835426028785111227063893987621398575445184030577115032854994583319559512335230883970988356429600300974976962268466240986141473784050754943398774094053418621092935421394535332799840311834724909738952898213509489168397277044050708308372458347974700319389197975621362880061594475337624475678140488696226647433742177132045909983496121871192464361903286055141425762838643809364607648947000754479899193223847273066809546694087038397438617511849088744271813004076963584280175000920218481048981549890078526572981398548770161517658932923423658364548263927127843921773123109411301933779527026254373648041748475384150097741311830687555045024952638682973108613134893146579512739683750895807534182758145566528173956666510315551260585875672612343765244238869452520057604354994368245184078675382937888498864702178283051282676020209765034332112137949153127550629839573252277455015195813771609974229697994324655682573018268943446954001216381909341612291209404187790213315956652869091628255040911201894305884675058667066866699968719870606950834999943815360631549732525352356969400773910312810042803734463882706201781032002177605773995863528989977237475927775530880643860372168640781044643216234441300034714542322505611237254484374100317985045172183383393532833896295318007121756007715427956344347044883511767040137595733006047989640847258258019394749267717864496919231807504294742826196545890121448042965600531051752317636488993001012719141562746049844957388944226031014453375843069803303093164141471697031692284475699383801118276644892621663298765120009013119656194346897793049027262313654648190638507517936030364401179209952459655040789568402823327309065657086585857094997232754246628016133573859023241286415290601406298424041018244692001924328640784651743752012521709548066511495336153662586459740544372300529397236503743821159446905755955291898557945205258588962261580651923108566988685860040744929302504037125465778698199959122394494536751224052056214171193057345949179959441274910819369296642817088383419436833306128180586965678723722829460395735577542180530030232439820047280404098003050267325203283213213835416539748033347311128298516297696607262732475737741825294383215044322973634311343090996393730791109214410325082772699922360113424255843881447424585439700369135917644831106060647480090002145372474651931816890109984896838853493101862685030075788521689987021283396849753853097267703615579670306698914393804111883431376435792208100551599150544109997678265196769108318113297597447950882626464857267590593899155656133884754583684348153746515766843185804017036789178489362339309567357685466040818551608128137894369882229985482449555585965937198411764708043032594867115877096241274013741951654048837496922005346750335701655944397299279944989993158100292966705693104458952765067707814787833354388738527387767211722929288317013552765922450597933321604013492256082736831364452400028278100206977624498584556965181347222002576062019241139661292888672297512259965930317085061078070991402048471720662454554222801041870976490759810087293511453620022962753229960964882527717775651607251239714570784141539457281464795997490043865402342255851636720793173198745931418530924024229301093010510693830778570914228452286562386847280758506413412173076334015836872846987933032754755352400895995991628964947840764832891319116216557985154383598605659589633656912034199949438574319341730914133939912547738125445969203455742294040973229509390277773343638127143327292769752502434876235208516809612975447636317265524398896632348508023924704372191663937783626327567155425081699998384613849787310317377202270647853053630843419507036731138305903215107884299855533528030345482651804986519749436782289293355389214689726874846343430703710791312262954681132449340548438950222234357496095508876313634063939304568007952186836733379583696875150818192004916964982990255023043325325325640981767207233624138660269515079198930483080752490379952189416687276159635129108048158591781216511647001196895855976751656147619791083747649003764488775964763775294230661837103726051518470048691606612835277249675157858098195317688867147776626553396176541275240707829382777561451578242329296785393040653749220587843174822590692059229930281181071265738257376879220379116305310864390036518698015254683583180427453814558729432445812752384792680087764335035612676385647094695043991155212824754062801624800392550390287054053032410065682453856185372202296175124245763102872682073706347497473207285677599948857562231034053863572340244857230333036418159371191870924077006495627386143348361086354989440747172742705619469135978287012395317881760759137457702539972377424371502452709990719888109421954117305228794058720027070679652281184158478002809822630285595193844486610352343071097829617576737630974225437590054985471061684593813461564504902156245181884060135154792859201676163491851015866968119119629507125281295230053229906570272743747774113597271593955192015762619710537774219261869784960006512266123795867317237669059525849090953960738289188551262425492653402490562988868775562772639731155287622767038689496683398260669908367050857704421814690844723163164932622502520524909593004780009740836351034437869254334689707682820253866700373631150024696528569531532269437904168780084401252746904445077262673240551635471479232623912916727404681589269443895961375427443397508956847703556495029407070947756877605549264282623976660289049616616157220891167371908338797607447040174315659469987975678183402047335405095459998122629271154843478727158855745649584834020162216316418425134799033734918814074457545983132991830291701055224151108212519690259912655727946467495717590902214835606377664404869326019338744416938042191699980037208978678606405370118948386702437665394568869455984016073117429217130802385876943302377983012220236818187151823025963979321982039889193286471265503014648024039259233005237290508461302557898322255575036525944812074968762517855358638339109592716653123290278027177128348771719382035883194249091760898239222833300079955529052135206714072195821546645493453622712157308473110886505272399034521613019369458158725719481685310267335064041078573795350752948489659349625712975071703544375864349317073832495793319856196718205084882434692578984751540412740706630513114678535258342046940058743292105796467894527707335831261151840812826358037752679101225407461180794951968927408389422998966171046850344133684335534376384900551193884030590635430034650114341619406923771779372266708730407168655351766096011333178454264446231213017514784588727180165297076104281204184829727554924665592853161383545900053159231935033529692857121531323741655533896845357240963968663536565987506833231056155770828449953452124513413966299768672771356733788754712225942674794377674085517326214785038092946224263318191664527520618093930535931980985144757721008815556762172678836322563631737147676993964538853684510529437117899623364286003285510268657013809999685561668524129297187252111558253909395189093025057426621643508681641649497032071855707641129839010397951595519314908556138021695843687118628481184998782622423849381376331770953942982107238842733141637888226779643881005673858805054880780135186762557791095107264100518545140375831761917194201397605850644989248568521962256834276693897014613050834301972424975390175075832816418567520473778935845252617446260255129092511936690777247907106406592571066085547130477796818341523678857389225549949929924201235615964442609619408067148045354180245494230106773381981275473945921835834296875185989733834627122728694903511594500654881931581565097075594052654974077374696507373168903529032516106079639794177016546150513035401092997908774395669878754420765969375444984637265469987334026117201733652343514002465347353229427067182256665462936702398680972328558481059169853391526816003674785426113809705677169854862624274074439300090985005830003955490363447513305340206769878444031640897575960542662038576004497750514752122292181902306837067725083229216575914982350736521429981279252245677829379014599368372694128746049090611182100445723656929815176516685928389613628808972027506946581382935796042075007850955041140888828740516101092450130861225319075313397625346649501953792535596130187910175586217853665248242671410759454184443439158840883773162113222585333591344573108277259916655202722691279501525761722069039817993741661815555451747711056087845969394603411904577012356414970728998261537330428784731299004627659650490800331285357218946376621473782307685444657385507486329917833730228905169472501596044641362187612205524798517386661892107705052958399744827017162698674274052552045381203774568923740297924839454429014164717302685709868051283330890521249336360483766744414700729694730332683221884072644185114593100955588822695537801402916841454207544336530119961828153266185295836844838491185484784251977812537667144805283660999198400204154169954208229782240485717808596472093969234895086990024277378149703166930688514175271983176273115682093556545277105637517909106412468768315120891708561240769754735492804732812277853027922252486766591346767059014221253423594702840841398409828386743055942450641129372413638408173516086538102586422988021537978850329238970100440889147319747267523752281250791580820984935221947145227020611792042531565505304171607731743861388090471323285264537229821011731430860580936578124982248228506814929897419641795289992549076959653113073597839978859144177281253571139988144747246492275122061139948393514758066154034566034012965583516507451438542801820218322469916901294896821572344443941844002267897126221058343062343213769674764756399767362652922791583640872290859375534720708039584461600581171159874080011136222340040040177871365278242034838318095706537557352708583481604953071741952529864896344787123208768110224066747906825366383298991694877353670925951421889781308477370383024223400882936477089950058134101336382113462055704474812758465568037568085610399635298223500051476503138352526385595167824256121858253806838014943875727621073241684821525343388597777358376739995403230775819387035760108695161090470560285435331759294774803330607824821974303081518715052447040232331153739133332238080289407994451553975606716664167698792280944615959631963483407060170403194494125752742956359770671370494140012743339435975504399802589577673066478140128053704827463900626417661788536293983191355181859227996847996076969460378651002574793452411380522414375819743484159826790114835856144698982671898937972823675675223897521991666333413078353236618128496835137560094136627884800389753182844122412038407597570585885097213846383552569496676253612603222536181704851536047572845818970783139399483271258520889801990374130613284360623875327724533706295743985246530079627215398734728711820734316693309969054745383427248649206438812208916163820593344892120109164603134313394344381033490668036705838491343063899262330238947222484192589546474084362207924956031105130293047324401782957216419940324022749692526911379398279710934808329870125650356763772660758033783965134794010415991337662493246481458294830113602621758956841266889054705425808474626902999307042544335409150935117234744474491191413257626671653413268681699477305443111064188566890700253344579276417117125789262909612905342101354469983478918890918353431362841897230101579324806674895533084034443209301286849511433347603065750871389620826912992192867139478968392376968356633379758365993776807343237388377889498412808362045053324156719505274921861787399596308585198248404459318500128242619153966862125814093121056708685933377849227177468300438108069452324870838701118081986549468666985060021358083026385715417668552482124777320919873509734190797330989391916262320276138877816507187951866999328721282413093629866022725313529422639730236143064366117013281241316776038660775020498559886360449617704473698190199083190342565950137946969444413012899062410466277320177091677404760622484795844779780778688261045295120099871432529252101337360472290912951074874928353008832984432322924009271437597745248461322086431671327226091627022942495111454987244807470072258240043757257958455505754016024740555763154575720821565263240532120289613065980890148777115249387570374125749201748119642993176317678011350653589481946128987483251350152595171495318834355056113894813517018649376136981375022171641852665653866240323823376841737445534294051469899883235819210121309605016614962672519042481861886284013722953498448640921268777077192200728067297469899904547644718393956502520774989222620187782891476402492046049459803534397383251232674735391524614994629354303631456522520733544923831528112832332239789643365975442328651591573395001900710058122020432467185949752391980405091788665525384304896092929554543536446846649067579115080544933969004225393575382122064539138322804181460397961923834527781160141137568366451729015287797511459649294499603414499082357771051249571366683766105775950557378746550615453821298476712643703450002945451007181192974097626517437161155569834063198419099435627572532143057523619971559536475954046008129762828099011546499084598090581375566790729812329108011618117126299744471799835470969536873596869970245649653714069690944015064131365590938533721087867753784480003926039165178559424374744150107546343104175483691165138781761750616661358895682269351780987556381620419886389056627336241163961361842809134515029658657270308551089323712153014578499984353045716224358336447360228225848794768295288331965173870921165331636457601511203370388126751850289053055254692149999305272475873668357260814698066437979847894687923955910881781603108862628111520288412653617544252880363548089202427821002978513086867054993598146954707952763089324307973102310175393952170842806799088871619652543037011394903476729690198877336477925434300717660306553280050822233596225197937854717657204794735362471629335283980623063803774771975496723221956806608068460133048781932873377488532054097237293528494967941445273407428470868406419116645456869487789767203853806276075247527947110137197294113258275209157421624658393423916712614703105739214596149972216847696127509783682970563585885641005697543839782124492110595206285052718635762746686942980410938383194940869871509214964273317701436074736066489122649795212654050184743823273532808333500562734497246170488791883738154858596079064767561170933859428161130866622978686768767708048776666641435643489663137958297996483454422932190104511352081049862323638501545596181245264276475992390647485399427370669791954737503414589130494841546848189538126387374357027724522337518174785599150861881023631473007144368911346160533913013897020102914812352077814566497712958164642196477393928447143371353944301746927461044844268524668084545727604793610311558927611396215860356095111478368343258530220652584642158483094785409759065567886040173847670126129899605127130470574454442403771991756806192933688741825439718884671347033768528467617444956081678005112709166196356078556187477046795347134966735060761494128690968291346784402188311980430615552183908424360689421039949291762239565383737258470994671946938649443929425892147927250106704949356865523483242470891900496370675562528132045076871357130551566330334466143062752393191886718475413751916269152943005345059996149258042859583347718078258056037350873598901291837402696831580536683987202806909011023159933730683186077451179628704110779925705557661312656871022117927745149552129737687008135516667146392079045960395210639875505893447249482307736566857306219511941906169467622743989768111854485730849140218134855301722732144120622978916769415112085243497935801342650216479354132602173883435662679970954885389081704683412376418664814158108942415474915996887355067687318050146989350809899097521828116004635537103237922405037202098503663623802591398611083436586975083878298633896889956154879280096602587614683237649106547820807750939390111745384363290048715529926610302042948166565150619132072450176808900922032050790919771569316061063059939578895790756005247051843547036272006613016713840768709905454307203344636353517159768545391914787096175953254945843916542740393992434972609751603576993044054938803351205532121330107670104605696049587131873791121125938239159856457146205763668772874028827946182327432931576142331778404816452829166581324432420797105206645841008707108018044565430896707572989037392815439063249218563898006266991702284128127702421214955294529040955377792532181208746390366084503934683244857372619880271590076246162271333778110435722732257906187857488707716029618480860707648316182886395542825194175535165655814089307817906284200370267155058910076096193756857795730381367406986850045342584056904405917780995390068691406659895600295595746757342692521482313189602213597013182510925974237730539917362644859529479139511770582315677524939419871065400372642998958686593868031203240425034303859714862380767747189282882084095128791768666460976764269919747743633774596627223620649051908603667678776069865545259792973788051538236941604029512583491686841577661814654019219097937482224593817071597915169555268393803487957142989326855419738420277625236674097751842277635315029214230295524446425910367824069668101909258903107976333970137152162929818741843268718145366868214328110696938848286016035589124525527472403080427954479115656146472099242080021998886387775707051336265666343634867175288724781977521661775349450547809387094729867444989056785694376763236990923326812713253204366848996919649794599883979700687072713604476663026899744034334949158793697719370200869204943799855268381541108483535209757682776396491437301392484770158185991267832466268650173832267698627829638788855568476948546494306566359305673367030767065015595998893232142616520987284527531826553787124226335889362597663589142054938852919350061326147497944958208541885038165487422738019976625880013164147777691117418998496811416043452110791469878155225067276482900055972830732043232103369281276561783351784081133994989130422859900454237364762834274281450946090662392796509463218938280611097785014457471182880509980931766796310276314766485360989930491246715971687538020824669625788047302067142741217825781630385100232624781618488310957059023335612214166766135826010282198375838444614486475468209687510224452605832160169843026472982850738650766528687632819039497008962669119666125580649369229543942296317237685734844112627338282115876247528797198845144467460731371793242835591557497359552360212396441834522575915956538742557891382839452593438180356071048972257826856694593898423644817166028068735618667684094327860028443957741347862344968454730226748426816218635767406894435082105617206835339929502051001137558422728747194696688747046991070593354471365911970130020472985711549542597206875125784603286259203075569236191499725826563835710144106118637628132080963180188960383275886458699003861563990279386636779833174186233306065451986173100336950602882478870458311996067018018136829725556340278380476889696614176980730983140355039757876946878480282755361801908463348294828125078422644061756899746238397732784184650950011014154153681197855170235747040067765675894138412089634264741002710250986067102133733082925055269461403771090501398868574492987992497222929123784030939418528593254135724723530922625954660465088459746443476884486827999876875427538560484981187315689642910144557067891379379269806623617346696346584227101598942732954012536184327877665964903676067344967978537930821559164040145137932466517862847347956420206283822462033055612894765738811678445789805852222789278812906626728675007191355886782201096559545380628213683724129620827063040406712721765885710823835983135491509360126536075229341100671581742468221120444436358932875511038716757712960239145694399942989153958116918455444523381481266740111505430375785207277011382245900893488125412417399957895904746915752261608391950331107390925309674456551064725004486633327066204265701741090975030628830515875616626743796663489053173811383667271695557647988567163757635257842674892758938584614602639570950745892602253102966655486358185475823722755390679483191826851249695278818333502487697940805722204180622571987947673013218235561837311492225147029819099357596860674190007434917385479352319464643569745961429323770244797490192525158509929581635452763897588319220768477504345439516920446062496355756467373091233589335563369043580778130285401182764775110686791173587663415361071483827246703475385688138035931684009185810301324850385246655106838059302252915511086326017813155755645025510425111107138984105120830256851493147702173056169795175420898076052175919623869714061170795861152743921939461452232459136460496107473263848187925969186934624537604413565026293129433856083164048418552215848003116127330598845197690096256682091197211816377890674612872328626929768452313165712163017291544891154554384216311433676991979757831288069623907536846781809779862954299629327604296194365185447628795803533002430238029595710069005282024032105894994903901917260773143239107474589729324396505463536155241728950029228696775580076664189381062480244364210752295447503344822284732738599790025437432453995556682182523573157991514379816549153424964447897269371781398314441305133169268336327848126080071055015383457063134497097062334985302664649004398939168950059428511267456103706031444624922070959030774764409377816963996031582402754316268965354971876996529538054279332463213230035051942055148748756474520971674412030418911315959992396684260983541619969567905347466315184014805807852093726229504153363855830109741790262984845702219727248927899094170848221658847765495218716840487704499774977085211834430654785329991276687123973208525438647814898729228167521698315817483650070024289847096341346216031419432436783263447560110955675679646715467020971292710820762431253674542339494218618914877067030376383835134115159422224747281679231098791877028894392337159902438387555816020976552424053049084984300505313403426214051152531307559251013074416246479861743602178477738375343892682096377320125218402292987906170784957388173565531440643180996499616126040932993394770259043641245701391673291027638118048514434983702224745277273509330487786615563335596234600472746181853635467789776002918321173678814044184949839211454495623078546531622639419746629782328494814198681417123701621078709541700417781702161653137970801196617891069353574556317983296001898318636411431380760933735490849886002086959073665907624440529024456190626199120290161137769749406463726018232289914382700984998409222258759586961527168657396276429623904680424456397152674048111312777202669048434741711175280037677967079633452200238397571685314769718245173525005869457875315135752557880381990953865108549233013004322674746221069243922973085543858339548806856391239350021347522967719882043998739364589518315903613348496066622537286345798706158018175384065830096964302571645067599218368799976602534321851604795599221957822194612223052560608931281999060750087525306123882660619991804371077797320717850547148967631143149312919058462108024624094233796064564107988415400653327936204222569841427407726336793867048018362003754443563389463732771829377735854391967821156612283971318411580395192692540667565621285126587517506914749991514435062972668194916271211709895795788838337220654396232612384719611686560187699226868833560760990043574741271772592874938174296585332049587409877219002102065012995750993879367060064376486548060951981472228602626949216941212772997874776518728675484510566846853862202476086373834925726785731661515522921844947800533343295980400073850935108175099827669078177505342787720351842805273455106066115688450871636706984484822705782695538458653665848479623636072918245223196719110657310243654469334452048820029511021006575395015031360322950011025243016463441455832971006375903941257702914012144304532231122733136682333913369296223127824673656116879269137431706516583538326372214292400151393874169809524101522925828335711339236369562539844673242528484411487042373576477534937915361946576923339628565748091690823836575192397799445085239171065129298150430124014958678938472868966315136856845944545643775092455630604844071189307517289059696878765740707640989631467364087304335577319951790125539046516385525710031865914595364540518283741852302754236403077797560610749382229592687205154625942704823204569385433973076538506680242761864921836764148075166117906270919395002416048723570158274647933457403074160620508695815209337363138595891447204370687793830182616531141579094008116925241882352879177935137321595179406644360405720681784672721412455518750946048658041319454379526585870416296602927487832169155219009972293704494185550453142397869673433065399285365153996384857500673425992302691575451430534630583899950763830686997317392389951640731544038765713800999306379795172976120593349454191966321683173228147466028927504448580498446662681545644578896373619393839589511564346757247790029175237528973139690609969656032792170631422992721931598634708898358001906280325800712231719252530817055417511131512346728783811419403075813187852823158707085060449193276302439208475156719095118639865902899875270874547112049687382001987167536562564243060445578692146469216172691716101992245504608588188283168375321181380667597540105219560983923114144560981974171062512763038674213321431380539767375560623435282983436212964118054611623998966618466424682170077914183272894137455516281439923375249700074487658997279647964081870630422798899263445254650330431564936341124600529515259410633887922658794211728985979982980098834012969176074746447138903308938597252031226947338321567667306336447656650968048260890178122675957821894201818544858600000127798491935787543767155204863712912672052095199884072063146037594932024364803807784832521610902580818793076018768028540979332609720662690223429336723291674177177205384811296947964970325692567803414098900118287629171255201381444197776376837316740194276983031006811847223862178945233633294746425205850219592891342972941357103484103936939453210838076287953311234871996471511599830953545049725027790816390923879495750105841899093492591330446591315554849119172556522185198993755894564039442877316842752244828640969375366124816817972690736002317190794631178032613460925894286926307058212023820621979146534936251438438494033423597296108080919386929385487726730130770361810365882254958794902857788044039770829116622686735710882155978329699429561626595883741491036436375043863190592320592417759264860481473833994687653844630023020894467505382959913049813881218758759562235175035670482182772363863980656118644038226351857938748814454151245882746876768070029564346066829816764278185670221752545022382100989186203334916843722106881079369932943970856770923260939590566641779229336983460416456144935197581161696693962242579733542556602427949719983361928343330944935179814051094587010199267811301896064557814826162857982210460074899560228356591704045617640378992997810638254113926470481708788888380049118828687839855388875514817280865663457129389993845146161421377502532677747306817160907468157248829557062228234010794224132169835649056052629601081750530181987265308190950990239409474158815838728576094819926326350568422984173415147080506023717173307857126643884350675592292070422909520315263771510018841710740059583295401269896079551234708984283445901174948140298359291930056034619611133136885108924133493500622142029675397170156813527191652537060985813008938839139952147050522040808706770030760693368773966622166057654013805316280790244842980615888851410810824483726528757901772278441360005447039743507055576781564065101455015116988577107806115644946061907347998011447217102182733185437025069893853806956130109756721225220593984230212486870512665923074449228648561515983977238100191756345931201247900001477624953813243437574929705683411442934086641627650477962449394733164288168864695508149892560663356294772085821751531491587220870545364528322343205076051500274001303238579037643367963183816909758039591257927285540423959057728243077030329573501454736415509571889817286165022089040658460046062472619181596064698173470352877393661966586462712391986800831833382678352013215224872914382989335889264894531342652362960601453429077371488328968799759330472944296438794177183823726601161361682392335149368798241169888995917234621323374278258198541086268369872738846916929458184704102856929090300814897713534931994389203538442566606022479445690936138948789524534807307525404257217268592340806650723135371356484931174554785889561569428447428797485872590662227641113117908796213981670897626181537382126284455025432252076328422687632952904256134687514590327351838179482630562163733094637023208345979363210009773442434893833017540092528330200791410272481766878444911063224646295285040081048093290936137789641058017564542459661350697807223596975418234668324621673525959924282511610323580831978388830284794839859151559644627562330008400568754479167997764673116733833372386739845035490147915597868390712604050762925252089904694977276398606816629239410877541184960654943585556113186557405984287499546330094873226719835769865490473295449113334701865318056754988325546829836384257626499112826769999183879921428691833383712545264588581920721268542403606327412591243043293814622309796361091485738696959211662852826514840707614428337161035109726844519616344460809730832408868110421733843625022215424410783503426099406424026907079046610863985438502315093438235454748758962379963462876257340785812458482549848339509740383044483676589012955165632022155071342337209684764283784047869157531851153370803310548659343201138767225744390972132574684650190570579543713185954251579512832821553442106326805419490842117664420502423631554743760638459981633579659964742506321606417354073861127949947170796058389283420480483810898405507915432935680318498060721341514771362517454377501621609973079863194334094323144383204450879429096889946397598762303093187203385329583286990301575037454770864073785469012886898594119630517399356497191712046191647891841484781129359796253306283871276082481176441765099678740796042561679126757748310114508511273072784792798253535664062451987202564104830707144516912986149347423896814154398527409449059222132461845579865792377910476102255066910497294468215895302295163580135642418228640259766845767158730914366858576656235805469304308305784803360652427837052588963781021525563496007475646385429907002568739454420429063269371443355403068822397689051816006971187760563449887253586938979189203429994711271880945283715239919121114454576462438064083948461700887445357991317306644871591411304479664969536422332405549557245822117773097870560410198589948981038301670799651893714208609963419353676054090752749591802935043644945285072672989290289843436893537834510240160435260721005733073980853165108611663248059264118763058751744726669838939563914119283752107509211446849914970297363347810360198380048081219056176011145049345916935697697410011341091494392055893325990012423430039082990589201874531721630958594101629163763651410063351970376212012720309353408428650750790993678454662698539846329132355965156438745124070481910192369954993249115898425660137978047064547780583148253379954780387501927714864052640905471999511227992363572602700052664915579138001564872039184865220713915270392986891449906743981613844715502522253243569881609439271313878293007378030637528933276481102812904942490731268184295310861697156257106119596343641026694769972069856749819935510639712135954095108750141993136674092669239961332434464059360387535303035596844539807666374448652476432786236829475059338924312971393788434340651552190114352107720306149879844391050103638852736243915234694790094088808475225093328935931122333522516260899545186744894232786639690130304583635538200184115399056875699349642829705117125605733952556188476558627070168270177944769601616132524478308735082380203241569372232809133050357113351293457980178201906869390151444026479860955929593929198881775316691520696053221561662170010855467770651122135698360660237693774676156383123781488737447976889151719008966506106544943971090683210328088537072086061330958806938120429352745109377310394227086852187406954805378434347916029363834524626538565539236313446991088745553664338653616943740928763713650150227389271344436744729398177324796235434646892725386208734143915303093847802911082123499580342128568023877925141855239690693952132446717225266657711005879151890664130231308694936247475774255752136279520416018311804837764579972953648617180428173756396302721800133511090077305059631918528564870880111425664318151184485610456084726159110397152380115314975215327929735651562462743664613168685193177328166677359483375222448807467007654450375432683217697958682038785354135094999413621361890393816193851142825406989736172835163216076950281345588290327605032707201104524454692632415029259565613700471191878657954028945182705157046607670469630631436200296108155130876948191722901690925234727701152700341699029931488538622043887957850647501178168105736016311039925790929361181586644266701301121174331819360093249029984661153601867555408432369606812996533661183539582779452776023479704469668379716812135143411061859634180548097487427094678631488041988257994345974600065155760813870081293928487994818880955582184639595088346955500976350040498413914876263902117577950232333988342946457225569487607004778226055186114431016751526542326262457326174847062169442278831585684776791746852027900259346177334179560936811264800257821095997025473151631258074745022456816438539867347260700073698096634722932414010223600008812735423851357235054569460013930778117977622562911549656049573676074317284932355368965398288759469851453145043168659291252555342393288129190655615228700378089186882692762825609737216584064068063461595813679204503341422928437879830160654145065742290615315026540660911027567987654088638533423171148364228020939626772597813202370560273115295247881975947284583573775849315890924845342602364619949762682749710403067528577723583805657758056237114974013934689096833378036413485671529753253654861041530771613261180166289265684278355231747648045097897807206948918577328255913444552301131511262236348763271954591046672457447932186326748568729575439320326788356148715752266683552645046276909864736467770169555141224806003969259687201366530654488851830151013155417011556613536634534264475603844898203106796193204146456670030185321420207395066001347313553887809165064784086742282871642000304886448861335645437804364436819974842545078829863006911703326020569295431447642601948417835482099540518988451908737724394488938995341332711605666847779351819258006020487549055391036560032141817424178959901181369254819684740677140597362248401775790498744955112086796561027834290466040463274751404910698449979375947681901429966592246914496278660256201403344911534922182162544246674485208171193852801723224685927776032018071561657449708339012548205626639090609106236725561602404546407270465666585366582385047957679777037810191939620259145751209229781892837180962646374419681982891384432753053504435484272697656720152819816878539849449602968264718519305114548449368121283526239196006869056815667301453431223188562184077426828778610005258416179422989820581835808168857782642164217255184723009778201808914611756483203939800542287744738817307377278304528673362990865555657057566387687370959342158431172408618820028709520594053180399606584856613329449883107411311645372323946587598444702306044204000640890540372389981537420921211681616072963871745697961654720290369676339893129114701319967243691552952848791722679163724317087905184261593463086958556395575717735720526990849971990198726911890283643932732976640242016807434799326584474345012679764668619541114863962145852311965794737264668102436261124611981136790522783376589167721503973163028951618786453571572382852908863550827554303869768273993742005994847019257416540707351986984005653020101258478284231214625745103889024773234861053986906928069383974825621510341203560690429704890110169504688894530223843703999968470788778075338728095405111832849573831664387037961775167865374302275683415471179196768135890488871523521890971899585572962740064477291890325241628246237479738246661746135755861971625110217797707365373699139518733107186790531278620061825783196025171969884413471018480990604812237360722345215854131307017070730553246552366472331541520263607949593944041131868949521827921051300151152265043229585761673591780217643906818566623588057330106203800697335647041866365225501740496249435236785314110526082466240442764043581130770362819502842619762485371824487018554442949792937070457551303650267549752803173556491180161730671773757633585299210576394855954405316213778019985763541570868452760529607206351574600230483398888827140312879281250905520859233573053704328397257199294237433620911179946340507948095480166524721270504006157938112766643577985821223924854332119991531527948000372609334716786688379198085134272144619019661468639324281664950691596919940185633865777918702683453835984165346072444649147121211540736907945537046350097722086051704814373447448255595755863259062361064873430684073448793078122515761567435321421676171630543713692741231085820700428237963195806682766463179865351675555163521016450164349248764292758285186553839869480831548601469714545731896145917346187467520733276528069064207147398157197132837212963495313329842894104690626293255210963197014142048541208878361219379077991070643773636928192705883208752525097218029966508957677143068985036552747329037611661144033203984382871983965101277716510748066842427171815003934143237939383383415283369805633715264485555148108981311258524857778533410692742570000526549783019929757101549620053169437225597159417562468054181800941848478920362652791963545406438231173253294009039823243664950903712140789628827750228160296179191337982667385946464343159013333620647141774866212991082105946682613547843863860168255197761154321004406066593037826429619643613685008159944772542242851557048002161923829338061320818137245048640638027297481115587362388788454609283946306946927064022010027826678488820018042097228475371776097653417802884641015684615801422600798746217531802330397173575247519860322468482108498739368759902032934463010360144701703544961596039451998817931214682931914264293431848622280760251418603525740862869702286516951763662486191273486307481376639624115940455549691807912135643216078687211559362799862622564811857654759033157891036385203097946174901967664818718068270328414058234112711167339197706926307353523740761101406153792260410227575996464480603187986732752200794690987810038594949063813388321353393410758492549850103156130116597590287792112258806711442151674197284405259435955465664765356460267604382417335512675089238967446133830984154825571273898651883663300390392596394620978313859188042852955772525242078436877018706465179378486120622118538374383998712019795311107895158959867803148007093146683751223276476981230086741388648609162736056149796657671746474106319048324428059197529690846332707155176474007935744427135136406050285138472570023950291523655024670059460052753201407069714300808522267675791168439574461680292508508810798999788214702777945275305519536953953646555955181839776067733551751019060297229402632701567898797578767855567083937250711918524211488841919747617928051140809454734951164706099292616704594828417070717625807714753722664582497520465217659611116213915712002419112132150859817572626357151095357245982125024896007301299104306699428499020259776233200274920824843200985799362005757719590066740055480209297107763629610282791779214992252630256534805928373317311687669475522542808818915125485447324188319015895231527562761214598188902161751178497449733073554775908544979438806168076885850663117418783575825894547419517688110356410095063994063750538485525753754211721808111772156139120519563344009198748098173559795328724577992103844392101155983381178930079117460850384944008700990247289852476154737848506979566711683595022959149205578480073540446722970144392736413352228871259563744375441322707543717537433623002452915035930953134105322784233783634153240086510606659041957739548661812114304534772115271875116385923186862684441222919198966771907516532223255165127554096745640285933586454585093034498415045126432694598707503614977057970114341516835687124119918142380716798591197337814824680633618758580431524953285830148326153872409615281515239301892447572535151170596390236987091683577690588347301563387046512891746410535107892625539286784369534428712614178928356158639772358722857079682091724994808226547406445895732356002783398475171779249847340242246353837744429414818317041889586818149826910573447461504731526569409450801045826905775665573832195163785114018635980911216189935496685098078300483451936542233447917044983600124912810181526507237900631504659685091741985858511198472696844106491094477460780123313844570817235082580919653875488487953400198335806333099497012473273860829701594465337739645855972684003246945435778692174032193526963845197189640877482971154618373274404960161736092182500161657361229616314061980322284486382865014896494540373847511058831996796246011917385245202824349787428696088982848375959050621911648545102853814771452459347763505260271550014109277498975449042094253574856583823900202604856364609437166546540022524120120795197084832106410720291336018375002981059129838514519760661465878526374584433431943755316918234178712457076017327424434476954690916606878436793071974087043078815117432307926013468660440910559319945958786126662085993903780031560974415509135006905451676117722246265704589243284003410553660029216692121747259880074664285919752055825391337126435371167519999582231325099533334133300033346704639951740940125538534867552260479075988697004468998044933240378132910172142321921113149696191429385557423771261654824992370938003187787748260786386349863082645151100388129488198056512882321558294818551875284660720866955189323058603743918170959868058574283011897334300559401275407451745602212737507333843092164120621989656642182883459868146044978918358226662715362717258814591599451397506671462658039452135683230916128826584654342659131213232565932292222762488484966034908926982070798395893056595094439048557484142871931228662090440496260102022162973768071229608218429099044119450226680101809427704583480933607735744838307935033226274868596314871578461632710891612968786084647497632312840271336747694841241510187445409288209559891295494116534636835614889906645866201962370693069084251379876809738926837741937027365488477958752474285123512173748860886299423507277902447047516588044798374116582543768112105912168349346261610922180589355659414035528349350321860519388140963283622270709494321359297237988405838034768637478753521611892025035461913253231391315573554912315293998759004097361895643893802972711169294078830786559636870432411417053246843382306423565893652752066581599814524966409506631451253333658359890164462669552619602504925901944762100613699688707123242845292995647342412968797636979042607542124639671426742167437390965080736775584076050597937856564840442367128996880673981871114778661971934997961180631246198370573498223583909722264162592056703304849578621807018601941698551843377081070590636153445702769349086462514207674979655506326684960162833782325156959926812312974635127626468919758802200904227624623943236857410812602857429046519544239058584576486214173637873046398782050382889209583025514376865744431513580458239383256593916484056541035475496307622109076062824963635237877802435866238761227947383433000847705220556730335363798069642744136634148406774024744196744314958316745400343703102378931937619095524395213487697363087382828770615592059245018630420767678295116562763421115761162700480255011277148432600993630274491340472987177352578079170522452964485794051105159224854014732699571922749086511164534849570425446401426513006669934901343334924498921386512443277221951652551658626590792568850358800375182294991422549095301413792481486562361012377244557034565266079817778102903912277488875541288600568934157249444214670189799089883682186711424682972405249807294697339406539538343324347250002694526689970986327046096155970591070934656993915960947918810764485456686846790390678019125997536673855172376544604575177023249525957294749624874286326109904972656921955933695720715058214088430264102099593153082755517213607264401995905568070626239508047624938984397467189996998172060441577524039056695241487617465968943248368085356921859250799926592032249106732175095549650719827133686293503562645125197411262113036332021349756393746722489863453579005454176870808465493908127185385646097874359379529180675289515339546512054511352681622791252053155951183903132163151547594658094061880838336148595523223679211380464900433155430285844090662769581204686728426472242254413446260240494095177587397187810882253826010569495971674116137022930120809536986965217482886535432048626921783729821381876868816596449051331935388821367758018864520525232924282749199152556102077176016667184281328827316224650216148551401617181342250999836283084943581974910443436222730863014567092746007329778751252618222666020917180967895534260618119196457672779584273544546159231939043161665128615218606271680251449781548934588224851583866606966593012538682872026938225248694747467619921817271750213851110303746260049994215181328336343677760243490578402819030419594906794257748989618370835121569496435830015081755320522184124978427606134263981735035663163343253912594860719226038878152500417204025723861427466536644692584005213290725819878974076834002695080631855285769315050903172576086920433231263360601918321143922918651068583011281941098359167542694967224951675789965086740537323737284188859717212191998537589555376636487932751219373668227859386682120338198901365625944680460614164816877832140045076539068539813126918352696726406389616464963920619139803286933337450569111048317947354781913227090870897806618828518170187079041034483420898393708126379160768334380108250710414661680195280576276684485133122708128456861890414308380937889920083571020334455484421960311305710074447101104329513969404830024109731718848648941165724260952525819185544613079974657195091243340254541074109780624064937952840569796905425708898086047633260846661913185757261057788804222574835718812880537667004875915773597839409520862386634906193580484081635098749477487463795601260390393362041552230397513765718458646807685144848809606383323585810817091686021391746844195416111824967023345371491138716600070132765369946873370457171155025290807695140263014856014715427324447324541775230032560879578817573969324957186287422576284009650982102587241291562195248235965700251079386610880433049264493370702513807737958274613059735443307803056101887326776182769195829195235996287210333417249729023668558821467816578883618452298329184910016968798269861326116267792009587013605170825370997736349130983294662098539609064573178816546793892342820153645161433396436778197326185162972950485237727497291966471217282211674915492551283082282416936352889885465857463665268159125688693314752655418240373359480502681393628268318642726598884223919982911412856141587130321293740689762327393564415416303596616924863403956217385411219612776722572438800544011299241180890321053561981613243614407139470860334689393180346751730381447733742132262807568198613905650961578546539891280005385941544835221407689047422815887220099224430555454323508762291333942170459877356264497618884588777005871916698640231548570195766955781813946697581059508078729479649209870292427837033854905886477793761209212314252529048600826308297779534137185367702872290527493648476718990467699266229472961214568606953691289607461637504010124739125878845131440123448688154512297597878635734345189298003340579784266353537672259817586397503842699911720598667923699337202191213560981427516379586159140803240614551337243322605733248508862504813129957221922308521423003920922232730010147544937674684984119740595032808943764352371726849507479692808120677015166676566543087693455202810492362715855621330947531417082040316279905159273787478892451028040795819770264317505337276475373073028023786238764853790455875625162775682592364011160899352813868000984527847692867283438244447822719198690361433161776674186878931205766194612059106581700895547696211136226727340064377634141596378319903621748580500483022203147802658405611897166446681442175854742558782431279525420093653295546868773619031040838154207194262451074556731267188374230136828602498944787989408626245936210451810648131303683558704887921350029751454675112133998339136628086075610386346465071855452571321320157455120596409173279858792593805011331818930678791173349873490275890239732448332046291877842095732783133153885556680126272700158218134915350615433120880724889280378201974123819143910710503747013751839378515716680877275931936221399920450297274028895408434501567887008915354888237041696207292521257853671204255660340917142297129944512009362312361206272241178526858085691113442509681011235773834926758071983340984912642721171765808670613758158131975564391690338242932664016853647503653201542923770165036965549856184707804577729912250358532509309134007710313796425504719183447974832551977140915413836529934851487341207285367060191820087718379242187519472197595321415212551420371295527491158165832919604364439083869171305256946806864223361296288568062185129440237417389328214215648917404136604074410470324157810945221796832365408564527755752824133162356947444283248345131420740842261679758723539062773802961661979033728671432065631695996700320464479546695058420299546092870881234415601825632491154392010854481384526128393279615680884157114650607297658980463781394829587052607839695491288392783180581080091138224415176661600097336188263156294191086126301416758458459988887493953902762531272172390211928712810388452743901873308722507729968661041126348471504355339036395932953367313247795850149203777264764797633913174438708946858684413442168852534333697912716633116042591925834878242666962257687150961512881348380690444663116740251340463658988574471577900081723040979216376190653786507844402822576795552103898139196985486700879057406512561569394184406639996490976512558201849427219592265364899495128797280060219949729471811933904785518133417911795693714970492855441938516221562782395143260926474553784204995730922401471460002963910938252949844726737878010016400879723009828174585204681001226843644506352000109325227988241192083131654373465372081097454016330102920896100008993501557413492207566161574643982446191824767127293587317321012800944515019159824823938407443150050936694122793422563234847029413835348989644547544351407136017082664216395043765606562578907002930804202606380953655500811542740423250716472731930592721500004576195059263360679928939502116002862973385663085375960941967438511709460959993612790753597878581288995756122044667050260803197561918044179016205064148687138698045604914522195940281907721743759121321804774078536125157110948284322468908139201269806340119598434076425478799855873434557330451340255542910507102408924095490938946732743111949657304742528534738765000443796527464547521489895945803796643254327936055872610790227171292529513215552570268536619776882257129609089017690557468700279413758109713824599776472542110561043716595388898424089093172329506261603860754083996537444991485756196461555022311682741567332596454864997508246706785410571563024769062378150759465877252324335909231573612565628646785395278275903467621818333365499976538534259805826182526013799161794448147922172069604930737136047862035381744932192211920138063415166470563389352884371150914729611005411416016651805474848562018904506495629067461278805542686701433858542611114186304885459956128434074995800618604392436218754294105091125703460509623827202864487765520573262988453294873151588462360004859927760020317141083331032407748970904930002968591725220834031925444024925292216793849328919867293117472651043977394427170764536377599816389386188663364881713285536108623770303938029007698359562916560178015050613680702246591676607027221306727058606630338631147904014009488713616819401422052439483847645298685005920340783950056488072931623056159011767885588312027456645550132117381718039512416043186157091578602468551803662882229766404053189320793870060690050063109159892177951789455274867561416093171297814713046204231528740624908837188101886087498518309278445785027897568910297243915483794000574366971969330487067551197313324201312707112263693529269685410718775885834825558919648656921000662587496771159130113380474672313620757617551990518594159485332640058799718957110439065084147718045060289965260604747824829388210119865485692877666607460956303723578512189674951646678768200016069251367843000493707088626723196392072886962870269888358483638200233074230978774478838393393160110599290340017828107399625721039968256575159270850745930911401360804142286126370039924645626462317029992448267133726526445793490501319915069241807922236931979424617863427484237682103072855149127361532759318196905220532459865764503676853983253554810527639667368026744881692826232907949639957120089792092385232066574427684001590278580447183061899261751277432136802175223829596604135585647742280661913732525106199006412097443823090503797288103968407989829296520364859850014378955059452183355062988386128842439189292615018534043811423025211033002470262385145843000347072945405911254772910177844279501213072576723878831327533145963712691208376053932093933930250206817248291439915884046728739089259873751938477204095391144456589017883081265822729874534899185312096666081247661449288757806887319542352935484445119063609770303356034528499853474896231756792240579151874574545366608504486292608854781694976390742381883326162732943692910525197986716813683031178804017651338323318400168012374865286627698768178974041249022636782456756355927763582123986512823613831204518081338430928263394085584383727795196292551570463244028140821485850633325749434397307363156406763277187298299487440482756626120948368019521385534323605257233885810143600802799726462032027115105490423666027116682647032047903671446501685709073920062908458105137430640030746379960616021724223708926989665741307432267496283867394426902118489958157465124302774631835217558089227369694007084141653206012544842167438206785912696906803930941481620186467605379526691701925673031130811802507110717742380821862032854451668826634857312238551243080873235394952653757667525999637107280381774516646210868365678202573440662937537076846230277123114746403661004938873462187472020158087926718864375635243684647475150044197651394281466212743261995464553070454400187726909889291370140380553288872652687663547715910181890086164232282154237243913946211431377344815842394790989202270174379826890102630378976684619830302556116124847156970354389796684805900076943733999900148629175227652935910434005045962197164395391837604748000223244447250542403952989694011402077002209030063644135944729317276916786814361046983963332457443590475798443954804016114184789428423215372647342326942972371078757828275300075277804538342901780923365744903233034651255921685804719054166792670665331064393609269561706891112147987435825385623459207789249918358305378607636769740506893960427760585600712006145532177331152064722166000311053828204307982571823597611071506270237885146084642261604773518945417398561622459260665743262016078478666203202301393871556993685089640880782438370250287119300084600432417235071902523169849168633348428678418531295382046919111912132315244565895326898520805480075384293527851919698942802803264115431299324467634033865379897692139287024628843731349505762700602472613833137299467641927590875660000643219161229306767164344186292345238283917393719387912496842934302194003156356327778699312340372385339966222187609714276785903593655381474239289201094525070832823212555679431241811437167144159337383001375641986034735607781945003756236117673351695145841417438720011448659674642044170968231025591706006679644775817004222996236599131472011144055031878826559998828589124329110253418660873739737472314751590631176369071889787043554375333211865955116596021941850194091681742446406818753250273451250889513395911231417097853506459892315353120310583097272203906099711397257376991156322250546834483625487175005310929343422306899005196529517299443312951937820449768548888137987730899351837793489129703574669120529548398821452088635391273218255936799136841924874335666009350630753666918783872502496956170390697866182996585243050877983688974613142247649096918416538874564630289902346297823034419661617808912047339560627224371747863247004352633960776045120763929361819249372331117811437131696986230751968416243654462515928390563410989161221113247245993327151439824605135867102962674185330851400441046964075247868863547547185289196268994412848165517114591495502662460845294937526706223850291738865921766798260203051570800112704605246095347330052136118618364940059467434001251775760533953312395836025639419696686570866855992429576025545285314238993354410523013944166795383657347183313781586800292324803907283756275495258764379839362652513162348503988417501671311549189317560446776964002748795272857467471157022417365815259676139599184567773581121962520949534699487469494417739585106929420073764505280251549138156879885725193268618334413816305915790279981320558381167154782972632264050786888105529547033741337613705682470579838822122869973790679999062127072701821438182540506906196059735110833183535995555690582386204280164634080511596987122575955184659917441044692797108169155999120395605310125623948063929532904332499590695455746345750332663733183687810017532454745760367452695049390143929998599792048172731010094039220902384058753624655734500441366697285809123807350540169406500289537065717320421111040828500067600179625934110473295570360755179309701641147240161130376958183133738609085695834924987910894545450566990318102736580849333383559832451869355049975476573635911860469074467607528053541724786322618670330343442523902725072772290000903932881153749361662895132832731339361057402605082723958619844096354376748256881510851909981306220610144189769495281289835922196749543713050133752500244955261181866589464715005109892943590042275980933248810737840678250580417724514800248591392215004414700637329887208706135599701801789462328075942999854874773050771958228169318898951970702568529514921059653608516798807719074688031582245644208866991369537175772342577180870649913661970998293266885119884107792805178123345157345856916200741642068542381679902708914576729867796053811984710750061003534141648919592284467037857377819878596630632046503370867979814737061402928949761285947380254011987374376398364297238588208896485090059650845812412084258535390080830323685711408581510900923014904318758895936747618190684451148712134827830636824772998588462868301617302700014166417703367470964668445208361934291231634487170593372251412850256965254073895279077102522027546422778669367210814266091479845879904842430379725973038467755717851973679472305670362833066525413006159348061318376013571577796710996379772974904197428335262535222820658544805995051944072279234449372626287496756852668320893237436532163648322707295490379132352679065285740352314335400349324551070561743711570781617842743589539682558376395581547098005296103912235665443807865869246645567427984077736279132773242805538772093191744376034166328862381158228683411277685873100836767991765320406673477049411428658970065225820953677926053905272713508955103734602848421138685682123449302772562434753163020048552339319804552333869601318364069771260110846510060228225991796339444082405775541259293899752744299873322418887057111035528885926948392784678649674821484113308609163037685617022417631913053818461944820536155155378094723779609151961416458827143814103788634888808792204324459742649915161211645054565739912735086936668138607051149606828163811287789986592302933400190552157295740869481050942702292106819348936215261912252065601315859030300030746008010358453528285393185253601434701282678073361266899533744555082820659842114946205729695997908803766179057127173286770487641439674484374083541840203984973604115614636008912103013113854748966776915219591715753151521169891473714658646440651035955143763318336223390445886852050917176515587330407650133995186097533591564809537883799037907236041627298665144063613377924078737401698234270458536230135654363391204098027062806864582681100985144515489997171227631686102346235313822409820205212510906611396751909603085480049694209376277467206319302961696954165116754581818105901091983946292429435452156064102839269829197262150041016794693833878485117136408475889702380656665945781261008538419003915931632888407010763514178978994507724991512818723286004846361490360112810428748987600433520961861574045026342000891367246161798577617173877861515732378641953983533182508771944238448159325774621315548173334158053224255323470151511440463936404823783352497785287163782024526452670279088027421776115986961767689802898205361024694937116878771430581016249675953749973143151243067265329675352747586364124332626288126352206854712642625530851616618301668339656774266198564343403185072751871678861099609112518143681533715122930965446374662192457914171577887198433025933547311755086401992480485714801745999016127381598079714088419317355406575815140955460661647239651580996803883348630661252630420771357357358254984029908885458789983635623757274563314964527560966200811325369566962213604802605938349174463948875494228813367576918152448759722291905636690675141908968260335046725503496592387269310726792561616598853472986357679148061574180938888601001275890642012177553836163771579337566405201111418092627550986431784089069929217185673337499871653164118415204690022779309952613283984530962276920547321746400242263142759549516995243255940648738685847368924502204351708523536708018867914831308478478158691215802514430174960244306665001570165553877117139969006733343945307717310883147630024477824593625846977643498490796038189566708391990268539930333724202804985955239290104793754056128932804443858643445309577693748861602547604766244891596881781458244219527856901613397886586249590793415066898071802362294302487593329283020564827344902340294651245773764260406754597160482829858201008612005865619381564511388149043141124106916604886516009479256919702673056028640309431412691110149967955133740181877549269174359102228518678689708220585762171919285977630831257405055289130802233255217684964749665663133692078929832131396466017349083336134140559380728033716220773359727330443428464046484704809325269438390013267353946328420067373110084749496628107674254669349006221112518841318460334374649200087576197298126543573797579711021674117753083138906750063470918673132634097985146573969542552041154689612317704736616208072348930835467691808399293397002774413982177624879862219914294060645957144084933587158461898458360716767599076214106403593663340225854531150480226538015217996070802017077601885018426195736321535004665400128535048096016010786645026232712957702365928844416893675519520877482767512949694615318875525034465100000075215416026933737426548258559897160593220327756270887193106419959150127857121757986706612098045947141777819372641805106591126754530378915492661171088555730189458640398138207891302025928882802930873470743859408263163169818685150627608931768439426043072682469436951116574280582577849905560799250675286864686728472858923388688967154013744719849989822236147091818674427383156148126974373186475018008308111669858842557266568134949787526817190201480795712515315588322150304879940321506978108629510587668544274131232551799245894046064672183111988627364768903507948805934868319484444802985868397415050110825856622309634271726265443698727465798254198641340281313232001997734696153957657264543286740704607684848156673052447327295525050264793371350006813483121441077430558200334852714531903327908024723405059851802104573560986203811079518748315039940287135100934377665929787106656706799719258391114148177535225363089691625496988586447825704725665809009753721318416400621245842729369403457751941506392667671539486422144510444748174968285454774423154232557752686421503579259233032398144170524852446516160310371066025031898231152898017300423339260318181270243847618730599640906779744740314070993167126218456998305853868967343387064899852967708381220018771031029738474195791906028256186370280476933625703448278142901058393600826491573429638771785328529981733822659670425044200977540970651101442016464065820375136652165121512801345974300622570339020066644645336393850024867158153691053396534143397436444114925999249723624566587640210518002936328261205690975047589860446414243602493546455054575389737014473946472166877679957888303091530467645326320220518148218860124648057518510182880494078275431195283026258647458051401316058298658254150262083995291307651843393239840402976906340460891062244990156587727546360359789795459337451147424007792105030087192534335139050231664323759688141794269564654260090845706534872805785056986231248515565817021198425521099931420714286559971930644335804031610723273429903686706042701221351123947493573011141501899095547609233842573812353587140809906913677282307381038692281876954394641503638425189219280142918083353835387280396668622224381143266146410508542972272234231378397451522815781203825598401064264828842128737010900274487954517044436147938175956155581152824478864994912368447657130305799844932600621773464112020143584689142376812004967000233769802467519851049050693394796418190312555465274865613988280908149030611226936635755588363240169388116693630873543101504410734431014129959610569069559761635273542441047886257116233992018545792791697199468039317435290905476851184719030737567601146453995317404861595859011921382631672159779785470955386630130709547738530567312819552912325209102563911405680352452467416386464298092232296268818150013823525040168655730226582294654736257684262905091434671890225716475419566967575677903579236187605024185640769649125656665625698709270203626459134418824418910720071573259573974348131858077832048025683867263196406671824759131924111647113222965041058304212580173037937851576493701428007339274531896710568481861026048133249283882251802184315771394624096810239682516518751345000556770209085765745565934320845331155812649826854795838062985393029856487629692756056790520538844914062383871196235973934616611745466474974286145716685346473757230123303029617786725073767079524097946032810892337207576542286899976786022511241784193435702590226084289338043764320527118780407589777018788126774043962572930917106759225915657440688865848708431440255243897322677785915753867827988875405635186107888703204429867688852681959235050874277721155875304389953823624565292718713186668248021519976558952067090595514536043990068334513031842424236232555433339387013021067500142870465779208350463342233424596264116506411593230246640141066112835836710738716503008579778225139186609081426583516462561911928050659866333034718059088955855724504300610937514187993880298254009011683747748195236045470297390390341954010046782917408870596737577443867076630372259197854414063963110617612261898246257010475965269989614115571714691723310733390827580383307664182277357070753365602983041032386645835572586121283894975637898312788413688435911081895555529036121020415894313510244243663620198560114353710759261144642640321741862028235132395211921706129358385758066226075319891995701821095526924641679207541810076035768061929343322489312563542759828883360241712490696918712627856160610791783237980259493075090075025257718019169504799657394951367323658589869279683926171988604487424006329653610853102094650862032756764076635103121667292554977082606552548123398242245891682027606116079179320536261679920675190521634514088816870357014335071332974867458437155279394154210272017485075259410701551422978928474441504580989516764515015186387902120296710358764973250832849861354735340793570790293122254802642508685064544163151907918715024073443541923754903522720794903176679525405720582533642125830407243619956893470707094013997678849478448956067744389774952979466307692497695588739359127286565277335589318845977800517022257518205029440115189078724475179939344872096022530930135760850428272001293312367162904618903142199927174938343068551498506332342513033466991003642597195411368946357753479429149118274055788704992014149088476692739893184953277152367718104338355807015173882273738984338733369212507086393666964555443294593814255887687482089792869721796582883705317942871748766391650733608974240716256644561098295021487440992017623838486791636959931037112686498517253917869292302797364214766326142374966464033057811224831114866221923869456990112614241379662264755492976771843135403256376016426923886725066956283077197049683863620898154003504125487581256231549109259670081384645506108424382523551544679766801830972106695138259746311890457388575034998755950234122380252555015400638523890692395640305042483841847069887799834155556613859205375138230272943106641086888427217069174505978502069052108695682047402772104378564821936332490947102849133780645680505290901032148808607571947302363962086301156482899825763872386107364329509679396794370923730284474685563697698543412484844537357778930907519756998075990981430708312454542251372988707459573196642755308464172409166956935198058252022783246425268145620221067873969290134564790887353356551735824833693017504275956610704311908122327832764235745924123184605276882197986410045470034957325985726534445545676900293474985028695407217987255490316720932713373906799804072950856846396071075942702424907556721664668322467129930135437659585061226896641043397161969680208387606133970504764710006957696989867612129761466896394296430269773357656553023231575198374632284573901482125096831632596069720879928584468103111090238487752158072853338104784483610984191777615173159797350497249113065797699244940629948023348617137325402930394039917952236455269245514097787427350498384528858359768828267951437460556767464431411404351484055692782267441258284038921701401609391039075962669221827222091054756372847545914556090064092723664535342456801523113364490290007882718486377607018867717651207561069093546715841401177287255775453210484817605999741213879810584048390187287282026025780030405615478697885090081154454891263105190120868316914053969683819475600035439323660546616274930493722086960100256085577814974383225112736291160311862320017163319547070375877731599786895874089648830835059239240911140522080670821771685358007765972605664352830952758756535159869771082996249034354076651391804631977808029330394709641329111225433003547043625446634455243991515116896194556554536721571495064959848993647579771389320730540251478446241852781906790330172365580477126735316939267918131859350446382565719965275130277701068841094516700195350031301026980977286572972972072038271793990422934882596095160752440540133896756660401639543173889299541133368982136037331079502650837474151551271524669679370766958575517709079014374696742090376445394666191303012080540730958545006969340380663807216466938466353347866040449672150696899161314744885171313251378063753633544462971886230770774711045947563701528820221691973590655579540207214035990041158642463500557013351826535649650422023729250181445739344786696320714181639541077711979863303221858834966539091870186539876730142702766301936843499556211271781283962101194712841691120115196243574487650460076308634883732739803463714501375606098017753419052581379733545124126097922449199385472162927175302021744956821337829739589903717331813062303179333491779391445887616888889935965239268149708193096257549015660311980848976087179785856295669579358552411623102092341848245930760985393497513673274742821404178929187193110915224513880346268091328451973291080240353179173950412675738325908767726263285594379385247476773859129824712773263711214176621978342160187448931464578663962080069448164771131837771421868429683045181117741328962671308791693638016159713395769503358810177284776975787970490617232449850591424056859021905372943297460545675975138095704532566746938284330566866496824939077628026343805364775300146095407479712714188154783142113687241361624791692256846077388574831053364189993150985918275512597262577101110979152796022516287347598451823736787826365481402480172287899028134263640174417175590906991786585318920106192321733047568170310371751505262347806483893615895753993395858702495550089737968018950279428429740651214403537387416686690518368412010345874814192908279281283739429860888490706387642686717847293475880985358609000508280899747187516430677327696964536156728947418940578702467967718103784338620294349173219029823564659046202843346056056037988759530255888762288588537462121594605455206229214025768864206890973836161425442600348946340446800603617995093170077928264752443136899865696755577272408564028492699362326754840370678307151235015028662909950675648073011841152403927477477681308176335345308780892505026158812939233963854462515619135048737587157401464589162464909257117607032175144571557818538794146980727058513461250955832573958162745052747303193961943624794025269455747701447477831943421517001115333839407741619945112996544781804818600570677610983831767803708390382752362677863445264396066112401543412512902553614403255164405424395643783086925027725490846646563585094614101839348457276574426982495936017198157505198143196321459459472806897922156075787095241913564242260588009182852883591515969247245562591249320303797128499449910923036105231360600436723778944567788828801400692335902209506609600580103999444089410560674614487143819487339387420265709029470618329651114989783158633454921744542436006961237032664340060742860039041674455706518607953541756188714944830194190359219403414759858842164711609388370912806899926892112790779947020715409744019236883766099928932873170072914720913411818646099214711693575544211281930008004050969623456691506012759449569303402234144778362690022202798663088436269053181209272270488194115177459809258641356635708077907953012496695001883991930770999281956749333960799044536229816488939204101567699915594719361177600276907506599099286748210699575278595620192754567195366009175359244718953127999899669604673562067027153649745035212443439481278557056697682949546314542320880865302525204947174442488536631674996685290202059149162599148252610720345634736134203106243450097882455336958615527679456409876939281617367244059645613815169813773688030835710328428774696010532037920834966046417233089469278245256912006214074874124534755194296671975741788837846455739950365861199182880814650915001604084674602009832668670410498159298892326137781872302621897137727887339511014291603908460165937057066564717341796434156333734969741136629492425578703494118158415878319952045933921715915261547151291646811845425119889523012821794007991765510305345435199364055213385173797014143347995145957910764386946819643752022042673963879884307842948227367858672215707526889272523622054383169165749317589699725754077284806236355800175873039920315468366172085429798381550521365339909356633685042179224931222270802180909028614521825447559759519680660767920349244218289956169761236646428529480966920063882475773383621317340622056000139820929073195108057142185648178650956592635635368334880735682429531115716890137375603965116445082407068716382033031729220274337359691676303486013027926891891569652176768881165722615690840325390964484067273385035395637457774177273907114597776769323274369092745313629023931448605477191678976689005374016709205688080280240670759000481004351688551273217398340042636840707534096637749255146003484794221793113416870643369373998188679934724772611577729793857511392236733914339165522481911092993226641384012109710595128589233951624975292693677357075539158461872154375979879835822219255014519980319987846234236469832577818373225969958384233385271741528253525222043378404864020042695597059077003130591547726794446465269879893464164117839926303214167196253470136809995102915838701062297844839249223519217801315007107101755970611882685268291263778973754808405674984009159071967359813236833831294074821361938246995746897861978793734416202830202669751196499895149834911749668945588463913048926659212678077626112458031985505076534792594601526505409497095658493942786764270585923278262502839723887487860901182375945327841108411574259597990270911141627948510167114235498629228902930927526018102092835316219849000882166864341761231828393866842013440139496072784809506523452975192681318871334854141620119096482380318188214273597833603104237225906123821927681752290554345787340168142397680640574301779122451873779587214814481373539899809040998680443004818752025013190385520668317659606495752047143881796438763769030298535062643877522622735296216531779974814180258325684741693299180995610107995006822922750660978097453004955453160669186883979035680412269204731353255045477142611669079016509951789659273044712438543601122600496773076700038221550305475474347284457716443072666618838912364760778793387845732396843204154346317676585053214612283708658612014474943327130778115931333275439823977303269128064325209701263801260868245456479510843772787079736932671800558694131617170160053083224476700593254219510572908687999671340633958812354921055550792250431236937031345055759909204823346020545825670513548263410035716084658287558089455934495644855153906286743901300227888017787804025253964723976364863437623604768629896250414866357897285775374195472865413978074038989996519105332998594421819143877434017746161862568283669171937766333901348155459792419670744088758600056072666279600350752158318397312683898107554064019955820459731331233368130101998369856310488546405834474775420815180298110260901505440075745845079295372812195477935850502151718019163236024094107150624312392298480778086327937634018032278557087011238053891167925575676902483759697644273879286951739399278780027397220528790214024823582946091177917707915858597877587243479655397122959551849256940965143160372519454516153773815004010495157764536747726289984374316576707701085139917792505484224066322885356111605020888804570229235869493086393045531399950586872267144330846060930466711532653774548285208922350778966295090283868619580367020114570270565653026049104975202326771888775502486447552625317687874777107312358063890862476415225691038345403287945401508378120516112982601506620951423866002876567980133936244709016968698740286158056015862872303654350973093670149127621286038576212235254541972711725254335980769828565363909961646000645308893048780579747039140597615539288405540277256991022940703053482742308974315597468252015713510936657382088338340853305198816170475904692885440343980041232876603816640439471256504170600206684143134451562471449189191619379315711272792870012216163390897341227934622623971737719705617218446512817850504352828110185708003132957213585133886721831485701937458163252408285351565841469092236737735732556118366593721023847811493578371302518596482469242898807908258482217025878533531846656871371881384049248926775364577083520465035262927522967249889342996243802924613198834744205988300371660522913724152939155258961919281672434311907167703895353375198699640703763382408161812290359991260901105669688009215805990393356490360754861277681558864270422311911400922525435778912965953335230881267047762801042850753669384032887572813770057773765551737103109390718925858866740240525794121449278894475829710990850289475845345710141812183244126210936397568999895551484010387498811128901158354376548388191688921166721610772536376818039828531134754327344455353109982032523610454977108647271158183170250756677481522594952584684446906993914083077435466609942806641953144555056829913637941373126884276534064087872495893172226849073948502179776213153900158891587395064351035425710998248925389968335953942742279409609787123137329553447704705264887222509616036627448333602073904841889120996475733805190511888280485539648242462795163546401821948595959593370446563757695985497664197828178437447949497122318127334163871009131681831815134061856563487069218962587772419389937351404025862150179674804577875400582495780823648932569769132523395592342778369819225085313720012465933957737697538342615091788813843253866603334035435066642185122599422971720044619328768516378998629248974028466965759486774623539969685699236453253001057680308021958339682739189618779415833611038983392326476684998879694366055314619789000664531511696707256032725458999602556632978122704394488580127622420644723082706911479526573737483477814657629720713231560544071144298624292695967836875421294912756568153696652491488324585454013850671834430300581725046119878183879103913124481471307123319162402857485917506768128186864401433077517642168782452598682688662629584509513210010576918161592924514949267667314991381837159108428535230947009532586900210726786625476909741061001545854714929112519194408636590705318654758700029447806132057137078310431913787554147016213117620578213066588451575697063753977940849786732093743738080840332271696230879520924229725423497551170900944696169058286215077535685195084331312494949827603252717636056558296561552168072206177633529441429183718006397322171320628151949703208832401375291407634685767601380815658584198724343219485992942857011332894245087388039658563771810448745563904512325488616758366698532531070186371589538720784249785964172607713681694722132096231501307551395011020534506764901440779107832948926119460192514978265458196663256465021678259724865604056055849243602836052830679485882475620971977271653467791940085183199296762312324155387848017761095465510859438811017170584132541683345161709187950049346718936586632711688594626477021724891542965661807556117254339058841747069775758458844083671706638070924484671769653873475739829136266827262103518352879795082091136684567200717461600445892534535993376820753930997484660790825647022075685391914259491993190613622193759182436151559486693414497961728204692469248010965028723169378402823867379251303903237644641406745296152225948101683411935293466462374186293634898651245734810387897386947975479824552012646207806118108227372880027405269608468404544352562713635086511416243702596035219960726517299735740816752296474844859073875379384576316575056845715161387882607883283232957437124971700746755391073357435978308005614887891230600687157873563125569133660437972342576572044256753815013790028665812391641901037797056121805685817824465654401047005458210289087521216208612849168088087983818567146416388593487752914468366726821051722887611221397497952064948253160106864820170938541678220142222929734056828727303400364868777165319591178588617872357289777009720705177936936560072522760692138118725778037143001755774901635513068706940247852041411494214760570885304726622962073541036969026616785570607596954915154307739496033533547510055936476019863319045957223077889905026366961341028142909125578215702922207677893488493702876988360107037615725632436103823080362825492994019660775272672086224422202728166836149615205372325716428278072226715493519693665101007730149353627476842792854384847282755493333553701846982685890003936609116818855784043194151128451693734739856965261914685900265724462119479042446552002874129339295294954700737210487339713488308548507301852651837775108136929505407144789681629229226976850834114516643481849579681685315556684310513110274732880424312685436307330536446653474559917692605945365072142682695312964688980804104085604081200776141185084564663282354075679279228986057250381859056354880963701469313816449994065004774470502066277010419394007295294496928002608550666636341007180095065342723131657900271913278648506570367343057262121547719652697365421393665858147282105824903063900815963120041238535720649060468555889879297954323625455851982302796893002068303898279156721739798817159011703658641510607269295062127662319903189964484833714440250511747663560065376384042210701078830079869741272898951285433149752292989307591508619261710334005663425380672581378406067757980553972845691664917959659389161240932598337234785220724300982728918563613949023785949842885322143128544094037913614242325137208601145818469283338401847197988081725658186183328867334885004204333650726550035824671177613239905545551868314603782703657940965186612623206452300946515476613456571822282722355305802563070577178730276660886917042957061185676662401429563188641302354686484091630282989682105065524060816599473811091023066993948821727186271739545028444751226350255544638258224885838053152307887075087201688400042984274839584105545775773728801537590741142605781326375879018908654029387020239840353159908137957697114549952240319347289732607953007607871315697253383665468847695221485862037044743798431663884590419316797330123791983171054559839380345843522166487508237000399487881693424599214038071003599139554766176864329072208810169272175478490115211951678850569547510837014714965488090349416664568050786034803144993320641807203331218450288770897051721611046837856747508453483183751498251241665603484950573764134467290453693566253653191440367290372570016712527955505109450068904612715036694769379426056749101781219619687454523176080626648986303616319316956039359376218522136032803652045902741233535657233555362886015349479857425826125209008581330584159589773844548246448015258411099083125566798745196175663113941576653770811371196472227479241791428387363066933277136916932350972192869194530691279429817293740299173815740968283359020465351348148676517552067022238122115141784707031491017596493449519971456670433656391528402535987262490201833546251658358812448693147310196383918698436044750233485999272985851453493752732876290045930167731984839693351042898513657789370949652633732429435514330836438096719606415537783677683090071347407545706440241689132255820901062939344071384910809195859915509804869459979028260272249134246661270581946213225468481858074647672816533326200262555940735508119517979693024897982179991622811519967471725442953367074293652045319700737159112255700460733352531366942103577007844339885235737930566101471356477214260851854002794158118508444520712440493243274408960079195333463178609042515460204967132911759168557268636814707496667797559817318000718352840502256356510112017791151287761312165159213283592027279544489560990708637518435863723077038592920676011996019844198370179985188270033644955738361461822512212853597378019870139626775754083953077142942248458601795131237584781897455940164942535758197065729809250420550343435249962728872870700961490641757058586377829440297447593823363360111696638331796464616581762083307298194352767812417117751275036636259983861473759054217802233709692463406779125755187756033937077555790915510293144096242663117972907382551307792948232969850294253662729277291972911767002097592839378050632737857512897384221442533710535812139283630394961134303541507193163546869808056953151005934080486940268458957950977240111877309149402759483291705090343225149242777934087589969295120080580008111514835564049329550939229123860717780741003302399082439739643702929540208426062483733530572288353261352081434215515423050817116891829232762462044001421373144144469276304562907871757988539594414063005948793252190734182244894492999234681980552906634347362000601154657629481342036318439328345602443480328227853255940624776103302635922257941188508295010423425000412754177345277175456737300194113425766573478332740449957763416894723584771383260208322998717853861166299956211056597311097219906792231341350187196522450253862598099230263387214456644468125670448699643208217953216106962979551272285286816390008934371170412904825831614211518263960730128271878555949292842086037030700907966476605563810047503865793359205544761422933297797423892997417306432904235238494185456627162510857287571534160238798857302215443446881531208539448450519541394898873636948591457146018042741191956151273671577508285979104490461012785904221732293555230629230688799292450814419900128293858249649487563673266712247918034126561293038675852405396350283754382619495499408019390972566319132516771628012965447492598304863396226379080426291101313554540110942324199537851505786859555648665567154105146383757004669202498760341501227907461890101559766705921800613516099673245759619087326764838998583334419127412461451108784640166834804531572418955512158908798936138035087196373490315032531367291827633721784751790820822828107723652123803192000927331193860319837944383641117410560850387127054173978566324761577875210472610978726271784823394683428983762532096958363801159139151505182611773341973441318069585440044563872748022666321698794710759631121934561436052476785019762112360549381086591887139565704736259209636998440958838665950818256473089594884456533039177758408817253175688767026778973145061813813676670660469113420883550311939866005286427492887959375866169233339579818120654573334064417254375071797998089440012086454869104834088759079578696037191428299427771502252669884967595971470358460381196383647767688653900257209422873855598638657328637849876862878481971399427271237258319336161198224129146814535270072872407563245480422934958082634684372281029206814844651922866858749008734355431091883075836895642778854445048656065629231568053356625937936295702152387603374154042093928414037649998574896514929283704686225973646539405939699166662567652467186669534398053160078493843746537718727764682670061080238728875911887186391361238108334745087061723408627729168610918220126280172463041818830960350010711599017775828980276192050480483872598863236044290551486087870341616677666574912742715409280775069767779010851978808235369923099239525037561700131463143175894952735546257253772482681256791603864415555042784374029068118639701276529004184250287786966192124616784536532286881841449257029733321005683513837479808530792937899027532788021396487953805092870639999236789600523031051230594069797131700342752781488872604287347432866480290613538480551503378128278829900677084068225182699963193749520793489418778612110444738367623022899024514872910466196703419187461107863625707990718844577355471436197472670873095213491372419752898068347417675116955454335560811780758127913350383942458772926094558923945602074415127443889876004319202475242424175133234931913156928966040236424012950417466563600907350903694820948101968886539129064447845881882740525756813279501821888270105415498764674654391654610444812614855971223654453412862908914745128429130545771017487585373175319930183196715889727595889631575295867782635862685613795322760867712537946984284848828042627663909925891965774479316681693033104452744452585607127081822989900377631137756833943216843583802166541446550259645754274738734780240196014215175381159504190457450935141080789848853585729446030516721010695041527911020175648438062411444621520086029593804127955641695943049213731056917975261153580600911912390867371801116261171456192003006715865749628773395598905261356129434461340380621322000936542300051144326934536195074152935368133255572832566675347479712095470535325947920194987772800631917100214274036119631093322207327220442991249380669142765014367364787840434859882953841985566661024671138955538972119322514212807266383351580428655238577427907655655056961558418285268110983263909341187998165239420360935766128424494140596501610087343195309007127038047857247292331923217093134864536713178765856138275376284328462281327158294223064883520432708578352326456694917344999876233288473799691610907041207992422417595161568776356697166825908678631846284747251739369231361880603435363596312542693981457815304279620209804943005274004837492460752429391750044201124336214277723568002580268051541860912954586562027666710523264824579427273399965737080215494768366799369146279992914437429313604259054365111593369014953594976708730988034551533052377463375794771809178318427872337272224542016569933531108212766381831143569827199742822975815005793427247925898388307737437752021155555144759172865230699759778311454147348537854201599966037925286075617236621939938938279556728268265809165076334402179635405528623466618832874810539822557765686653471831621972381507895858824787574472491328528018922682413418816309704118193197330144890184649024918976664896311128263350380271243990146899603466444313902660806752593162291879617912015355701009421606274187230274235470342660379479977404940666213371513405546239879972252670589244604038525902921753006088512409559237065201795648120129052129740434271688922094223878285531544392487713823273823933425362077997832187043247534768689659274430725478060825243399027319250297635548303751674767266092225760564143438929138783926345162834212990195419751585680368046131400518534067078082601375725656154211333957862242450300881815817595298943107921650592905340575591743942091219074193614048080466193029553924399012266141164271558135167745709651869415943084618604203142955974939855293495623194398811667514750632722670915561571809033045680350579209389098850736388282757741765822670566877980206351406317505300216480445321909286942697139038358654755249434701504039847895290911238202864825521754424007381142035306418188011986816045501641948926711657974277963118439154283537059845003586857722341723765396818501647387474120672700033602013393212515795450292586856042766951333867387130540975607452263861199138033091118985000170599164119276393042686627126124662761366987783701181898542686250709460405825268680307365104727947367899533597350043419496967528821796341507135722450319469566193499859577509117713653944709931162732632794818382431033459489779516600491539958941683579666180599006377276649559700418130078854642059522497156434309790595441186636956727837713029697695508763117050247767676910513635013493753835390734643783467778548082626503795056457628147383603332077734428378121308108761560828944782895920730768561131615129815255769276762849719060737917561444673285237498342712114325842571536054842291121851290373013531526283571633968604798940772903634371847018700151510355595970098422525560084456688506820797741864340829733572840045584829553179334281173725706661163548453042615399098239132462883396028158476966496969267216727391720114877388658541252936930827319100377221284210365086401166713385463130671446123274521747359598004926565260727780718701960133960994271852332111795026882330086792424287620927836353938846821153063623573661951679042100061925819946721129971964163412467793436810178929337812111147220426979770440321921229289914273746940091916133463594626613053725782557452152514171304672773325222860984817963971414544247471087209249365610296116752396193256123545967335528492084474697099478284621337181852222684375976345393596881899723513765171643659200124132734579449460517687353500083540704253662747065206222019844923379626721593293707271852719024697324949082580425849177947525447118270023905877507916275079186293828917061681165625091704978161593606906777133162619188788922158803626830296293258670878487171571416951942768109871940375159432048578018055623988691039244011594209406818482738458450497537334412190644920503923879959189982593792290443981418078869998786563799222864755458115246871912869918141298484236085882053266471284922876259559540602659689204808871949179500452782332103246524037197195668561088452744171706018152804391579165841871760374288105757293492359120400114988474787080064239339079423789336383090231039550865263727733968097694054751868393692491213761995511785006235401485174224004465655419708824039513016523868246584839922005763913004470104691620341790232639139999300977670360108686369334469375236881075159885657873925634383433465975069267772613609056487441833021358528566487961502312312186149932113387780632361603413144258613888038408096760885813632030164333013322238792620825260192789931989040778168429302570046787484623893067750870309539301121326394052262143857009391102613171043572070335900906671757224932049704309418258615992504250916538348469883292132664834534724307149670543369515959133769836433183188819544929252104384749171254123680018451368513573534486093857474134734500500520974214061922131177102332673950691869619881279717771450823670042115363234752803173881218953673456260607403574554162147723433704186747149012839112417224412376547710174323116170733796905216042262164866991966840737711116773275169517759661511088577065480595167763381487733531505065620365703710874748782116231744476502956926331243299385019608491818935681978109189064762417762591491894692096865391615412781271763698980393396693623628924117614633174029864375227390767397480841838574806417462020779995615505360059802914478003614725568714537273557470951392535980217718118224087302255253322554574538757478093513777834896726787985825619113366765377535716074561455227643853644867002123189995255839707683045003680991350547401606972512207862790558472332997903294163642783402117677162757733938041940761034672859634381287916704948365320449445627979935564523586881634072146288891066236820357675265518294450099961440801161915448928209133434865750652817412313492696786601007442480305692507955590565610587958620643585100843004432144529582227869888083471406324974842660691051866927022983746965553802403796276739456000123217465212741173797375169812374370450964977099352437613619335779497618444916340912060012140943233642194207592962879653955949298877420285965377481787161999823142011736917401276993953638561292626910131085995770892418920569533536733660837615023192906055838604922129364870242614507515430079207944672671756181866452939380544829068126210379978404251846400702262586877330936389069584874270961277256871230904534877902142695941850136915205662990403952052790373883379438173502617212039373294233732769142246119045142313777533179496349765533126616579798540264799392307926941989931826590725166343033949974748356270665405517149218860455850208388271711249986897387146024115206745655748815025298345433544252324483500483525165774058346621915665973166230298083902143406332910105136498269089795971617893759883665855601412730329703085241104710493233025737970183153960174284190028732126349280284720284064138839460666165758039659794262033452485222418163725723154284369650138551594543599538777689546844896392728371035432521258601930513403306328674519050263223449883832673682578633212691985565487108869885715613178746760755526780628197628542671614025917904441986473752079195007884777890931737637413789621999885792062725889900319679932987246255635349054684474711667737485865560371507104101768290433190134178762064758519777612626990840069651100437114889343429172793340276138794504824140487275672280169700086097503058512033810005868925182565012384711439518184808093883058948695916036801512903294005691481028216355218887708192972552508961293501412206389458008798008683122824225595535853508845664244903578684296397071253288427402401479815992756747442530857445381521482120608325383190878125954653190570496094737642953253076914122287462003802516332566641090266514343876962641519071122699844344197892898073182694985591851231284639312715348267577573103287850888121301184777297501059071829935061413063372808550242171980013596230282341332858281687937676604578953230663449039950156869595526354805068595018473100096050905536944423391712202593456832712071237860965414963314191423493252516582487630412735224992447771112970480365543077823717491836429662733461692146382582698033366151686939344279726870736524876882920018652133087459864301293586183575674853476897995568505094507319686677551379487592511720919302185655350498419481067271427129868317999940929107066017025039673070276977406762506504509274714100386329890401128441100906342049147451470108404073380207502340933288432011388031860646999720514713144060093855296249899394079073792025031715686492229578741653319649509412672266721894552726396889505195458375602086287890156090559157360054317425874320952040060346894176664444591202782290229149583352035458911623046566892368038906659633537803527345670810154337000019174938483083697641749554051183354753429514382895589033375363577212351483462284742928116136569934388913755177595377193651955392496123884147255512085822781204153476468843890152207256337819962486672853410464769067356870126628452081330782052574301778145947354354499438587763827652938943875695888366888000855589536742695198605428166509179801477517288744923220531827880128997215185134898061784328548235805715736754389691166843808443644450641158628184424351780897416851956562652032847099807331680119605676203529439201103038861217740934627008236870840036182045988220695388960229532716765049027395414436924165171351691106787190581297323468865673477699306938935870551393593613294977564635075229040515057545326101910851067245921709011428586894900047042745291170998506777875449780383441616081392512305362616976878367597077811860087728515102941032717672958030388334772525239876158000280056902501915984977225112825118097105600850607977063689379700702302212109619012006712636078177352608933659703727395221230467436458501145494721028474991793830163123076816292845583294863260932524673380392812200663483541719380603954516089560899549887993799673226789768562811922394491162075915495736209398979381451291461040582119116806730652815425267174967387921077330119106695635592435892146545083721840208916077124092575227365404601894991276619963068043373275115630339935564849622455420789465192075287362122024423916820055004901771551748030575346135269864345279634348031801840253183844542131218800238549619561672277904137422765930480956506515416449550567381990885639828756763061572230710055764672301152312447494339539349581334395570025538959132719846404307680606602193916437260928421800262130750466358340057331711557243437417376108888344471351117908170658977782203517108002280793404181709396369447306789455869187779085223759252504066978250604495991588243754893038253123940941286390607163946555864783749213660012428613214948357316940588070351191641151178903652209941566648529348614942769816263411055889190883681176595414657967844094908610324007901801271385635457033102647398051509831418202494791316988553664368643729388678159403892139703402378635358849632056920556605156145912694930947758057852986915753753450653973373952583475543272098050799206483948201095417290779759326800620544882366073583983660808220060751201670758346010969419779425942236692205051988679645480992617908109770860941203221420886987390320014083567314340029912221339595847554874587828978733362417552042353793309150152289179676585764102976764254593480960189408425293212420982320349498308005815478286451952050468708321017276962342891588614469072861676148525529837088253700842832622852018395124384614253263588995118497048141826018593035398757402269441582907952259359188591497312853983871419222295086651784682064113222718369669848093173891194881918451232542583327784108337438815193225001161141866169516611414615972374028631529430550739338131958757293787234148085559768369093076941672232479379276275096782021593810144125578493372991140239870761375474302000742676170810217059552037144369173590704481963957756401863378381273502214910355481716681887315018277171239736484863338384035680984145225114246109514004671866577842316411220379949783768844575171889191046193014863554503199374751196487008009228045236972030232778442862801442516013853510313791999129803640852293646785820202039964970128557885047599834681942563203585274516917550989094188945552662032793537178414308204603189482253321573102119094497662023580924587955867876822001789645518261533459132265592100625404275319996969607978969143210878173933206645803402265071382869127140242287708239925104042139886978903653652161550509919803930027391681263585344145829074920215958202428003583573207526235141284098007362895754944618915532786857392088589297595605309934439723042334517736955831720934509396510908176389292994181435852420879266830750650655646558223613121962339218999517041829028980973762053829336070999347345023336669197359600847651498652946138902533808410784004839009746165199960037126321193917900979436353956520715254191541390102619671361167224597240303691377951571250998733455644847409439622156858936831909375881364590675279759814243666585541149998893448629111172096395002743205193942980616414480369583216006239618723904342575248058280586542071270231119134812922471293741376840399049630939283685924269938719944617795052810104132680036170099116552480281576777904493926129473773036661471160210976260750962897161901488549980335637994406058080533152573348054239184845092897656081172288277233907920544095431755069114887941838977331537251201095041265603658922067227614716142467985045648189278219075238200714724582425348391347574275959105180098439317396648227919691338978008111817277331296772565846918386867912285177494497062463506290309491475557395719601914542298822907989814854460754766159363825666137095733541430429774526962963501515254620522890213287903935999081763370188348990889477997810791303563145742179155806631317194371879132682254851760960320203214644788347386562957893655958535678822913540066042216465667046173366136747352971646717830960198417527034448922544058417917624790207281739557964477806172351763302722361029876886219467954742753120252765935413618086871917942471650237969184696796995889468000449719120862764505752002108036842320221384259009940695227458123654479985559185801219462790641448750865052954697875409429059786677280527043908882900001729096359622952363085568278976323325240654321908762994593051377073627840890805882261369386395512195999722265974820891583123432523603098123080995845407227541836512955041364735021426007652231262688426692158026373794259938988051634395577965628192337135851620389311554239248809872519444139027008579983294105995365459725482245071403673844402366266449486342850424189413415106134915888003001939609020310681288495334982429187977473675370380084746639488556897284221547248491893231422516935004462654423391973448351951472708006238869334786365915274195425396793329766645107397834433650218577317417319123209962705302644193423538548214679185287816621984712840673136339366794257251263510467930191948435238441395645147486480148807913198957053200705854658579223626565710643089718240143031896234400161852554463781465535987510357703990676668579167476843867539288412224989984804498411613842008139141608723407811054771982251407662926325111961211865631729210575038136833149614681204137034216347332110868573068243446766719811171092531742069297499600386085581694166094015971894241882897959251499220980310435992892649120179103186459783483899571229313175560677011543346837633542288854106009225932618714390422502071391564138251515020229254647041584316433137039452870603223016367036960703741731830301780529334993887790337811483585079628240734526432982150849563884459955411865423205557751435372205618944811226903551703949704971808835950732974388459749056070785539412704188866109394425250758793575064071220300351605525454755205478943693143151629588450641479650701765419827756903316919301299682251590694899035517403535887018848769592162237226989660067591174580692235655222082669949411357402766848554787310878385955859494585268853031458187759110860438234434556028909909873642574758374842716894217974028910856973184849390694951298235864894708110890758760834516368290675166151579107656930988217558087214903692724416428496152712136389649121529048757647147762961629101849209382798939214491755768913359591771445647398220105649151290672241194893353686345654306972551316933453850671671986604140745100700999522607883007538322417726393701991757667460414528561803234190298235511995660024724708497139623260246801696137205619318473620412652595497327168107329394293979495056659209170089190707875503678664631897005833787197459488930701632989418003355331500856976918082971941101227150792251567269599346998504408544722406577332607072286171722465309160692605456583413642849633932534757206284320812657040494388117229970967303935709178818387184900009263285194428705882058811522190664929870653359442822067093431798999721320431538853989216840893327952183572253587149920750460474549385570821554309046204714386951509646516650778078172033834302625435904543497592860196200960531359421086535933013554823204781766969270729476838629790247748812292302798211298092493425791107501892643190603097235592158175250534493126596133921064364182358736781096190566588443307408410324141978068992430035068011059139338932521281548708323502068291411089799437943197871890144436881473273767250007051341560590947374423320253991451104247638720910605393677902564204106933529376505715228219167716165816854430643014726828966603668131193967023958818120856362776439577238369719054058557185008445261616916344121473888155736893397566355468575991816768913466451219425299841220090063561658549156675535806853096225119729076600370606281729022464978983412921230624871157764016532153972600976481841178769549074545447971731089510202663293056167291249194258942872008760342778420926780191738196858253290277144382509864645260531212818148764202043896752131409722813799920793957986255966157891124871505562361764385009325972325468777587788566792734709513820221720911550856611381182843549649585415468763006237765780867182610900103895921365683160646513923204363140139600048269275542181509423180615993551388493471028659256497579215815784652106288176127813951457873725632464026253390743701779410132939266632787405644434464967858687810285710997612566305032071579078632694983097040986682730433443225076074740395178679093995408278204066367301286601403181458758324816878973302126042725455968400385421425415375436597855632844600199565286866338631709495599181503388515324652032053285475818910910868452141962636869065698429271162051114989831224575996702942436656988594609756942718259586537296901754200022489162034484461133775327638797435576535247884811823024696642615613319388127542226233926923472605090715092674469058717470326911783366354496038327021553289586362768287635221908975547171696008467836185669958187693457680650558957861517757462520617979067230739448080652595147661424386774637313442575932073465634161127617927851697749584337408858933826577723242252675037935760130539077503105923860233292297402209817419088103209713208372139948242834656718243062006046859003011854382031647941083655721373848960780017427841119349060947673039229027511222413116997872090262617382967982426468649063035957290173172732531853024767257539386817785872596507386736941260247056433315281649085062873431570585121350421927929891799298071335871975911481444808539853076879761192684289405960768970774251102289920984590538671884957540314990245202512699300700415406095417105851175881962005283665277234558502723289799698676642438878998725895995390594351539327300362166982560679533612976231152217944289665809453667820084886171401848221596954713600803669107408191405322255895171067542771335685225822615345576051921033926870892224895887616591150186505411973494959960303485400778765337748291944609168876787872410127827569450635723335450182883953563296820286131778391417052691560689334554166517739797624312656960679712757932359140908677947637031302849911208353467220149408848256470856402991211189262401148051744584176893628687048099252250702094983435407487235124898097123681384040911532554767069991559109003370936337613640417733062907612440301095863933973012234037021348973852729779420602583894149911005424633816659606934694457232635397475881482049778266472365215325031670991196398940860252505997956223341470941110397803311621388245775427179963444287156179317893904781148371385740187016443350397135399671818921287835499361471688714533375758224434426906497443646046662706039186918738277876589499582727221279984313588822105990254009325057993877635728586266652217736910698717347163742632478963274226449261106897760248252901344936110051425511743461599090406884496914670208555899594426575975542473771454144020545666762546902493582728269017015749071463792222614162706031774568967595575210538420998096528358131367390094012954372334010941040923402101266018897208171883795733358767431152133171653447918340910307392333363168904243953730402808931778231855766472418842872833612383216883241529024022865664796252434795542421536460640195029941637381839351138927131022222719336278517112508147530624104347516573757519327932104789119693660594989971989389032794213087370174032644682912237205904066268229771160383839670960166755738624940433755935830163212376926384221710731652939268593067865612792484665810840107175078290494958219316261214189713556045765201144892944496762945556718774739485746734634129363931101829502725367420712010408389567219621347756705385397177125640217519671312792142213928702617348291760985987149297670478811809007881699210615801377894773260199884465072497455951608287796242576294910398890072847273698704749020922808158315998297835925222501517261078781334299955144171376332841633318059984802338271855328381274491176132707428593629693817447544521609088421948487265884833908729083395009254280264027079556148133760445118307305578315250461557396594427847120733235861163502898047632877010150799099953620846037387481115563837391305641730317197967291614289301978661043630170740338874593297342554174020991075182356931543345475269703418084909942023696586074000227546900920524995461699291197466581263429702698876546860816027797157668969697506795812147549853419053721826818859336456905573128204686916018199159099713862450838914145706250743967624536289891034162793162701539162960658885102522416792485144850774476134001838245888264270627403644307905790041054853582995203905143930350344498310604279991408339663961493625885615277180817318923351621505144928474188087888340374627855350198330344306977878571376513500969803691173117736804311500981455074607261589534660813254508912398830535865406309815295985508788888769544260039840214858893918659438096527550633356999326577696099081048853589030668938201961816023440905114157518699478038347928351152222443053067777985524123699025750928392310600929056902397884148348955387856149546293332796499536629369191107302236662250921918640488812295914737213592928667412459569610252381226331959591869248362740432521741445634013529854160368734497073741100055772164080156265413636386033644144802433872771935398433286120464925465585740555418257844921914072636953125544963468465635817440136219102410906348011855358852382816758324108808500311644453120239380242106031839094615832756466041049001403530750201056612704944453997322201868298946044387599148071113580002265392341728009853264122420035736147589179412769094664729309834244969846569034990023095444808850478859613178840809351030253445966603927413765550111703842506818142446685088258979543456379963396254343290886904683657733854063401558086389795171742772685177530928839121790391226768770057569625505188590481853097934885016313064575799943331606504046234199903730921349811686975333337625294996265592324411052346956592962571692062151571222014203084924906090831982706190190938976443237251315494590719942488642166103193441539323661579458947011223924975615128026997653508663345326818925765847356261668763636824087114945633058475901032496464860710178248582346828089240436390482514401199269830958674983626192604504987811423443933271415667924902849202443790781575680640935352861830546248575846485925034226154184380202290574141119648441120583402724000190543014338803786983664230249748527761783985096818036851499896563526675992971227456639750179863493357551824609217634040932801732639627391520209481601609072434404836248289215925506739311452667720901787143906853808508119682293131479410221392305920300079421790757567066205779057511951003804389216761687014381817399289974889846159357656523123977159538604619153060365687880443469979151332816619896970634903873662521222920912675158042822648692206958281292807522534448562769774527798545427421088983483749062764447474134337602646187932248271489638395350205122858968783799059105935104929187324239585006180753719515315209824867226952692021717205579023306548716861273221269774363181079059041059311635815645032223221469223051451341773513747421607809042924263414101460695456050344826149777005853310148493108625211063630106364435900403603409578896306425898127648830645081173164503279264793376646660054586042077329581001432405957403600724554286781684150673500721832490773308510529548581358330724616544480813311774721071592549418071488825288671476906052773096858091629765371758957252103542162582738064661164605941347172805622076165113066746221062445865574399035771149710646437015664234584189116914391598298275835501903036269812080374941217064659950866223841801141031461819210134871195850898480873048884736444961994882850295816170957541304640301742147633890839155497789242862751682513268696650056350108630860957854868075918619965948418305672268858738786149151171704709174792949856469646297772990999927471442387040004488093074076281071914313775124388985538469032686933941397895815717188481889625000822902149585684944802511087015081694595411504003142823223298637296188315733377626261814549253980666618459663503125947187547999065943512732796268003959593223457320895938108564453829469548595792734122663246898916910386152819215756967521756545924252490851518749464877710588206305355701284611770548088173134763553051752670668040391330214397675313742694306165127381850395861952802792905239243195630327602093685999966654732615472725385630950874357284994629440847179979297691469767268335923148310647308405297623895973768654691087127549248129518881488466643928438338314242273662956031672032288027257414243621695408361315613741089775116417468114818948408727632816494567784554978683809186387620738951435508021971941561755423422408077856197723847365732636606907336444841017027071433724824542331043513330722114070890802011760418429333588889977668600519487848895648776467650216528177375769788724887282229357572198521589839676601155383909345026586674825176352918564120597928265180789170719571573043928264254074943246304388592091441886579352880787635177025199868379059475529722873307333189013736235819394715846527787146632772584782101864618789259963745381585139185528147696559480086001742369253191415890987234982617114978326437968928436100775496135925021458225185349929003702831045172441069632764668794458078137900605043163567986508874917334584816799258455900793662734373846744201278263565189769990778736184766696309334658284989100313558362764008075539820634133399508118516678152466740440948147410121781164786576356419640109651875264021318846037105193835470624527695747023870555097021606107242162900503278340083245444776514498789016614400517286053285019042818380496826757699945305067903484632593072357076687886077453657026081028193512154872409685158805849925689853173376669006115866539072281190769763400213976631089811877750909514590021505761326547286937814755240110796259727247838596885698466541968770093713793093019647586328113027032021845852343145522770126166355187546085052410655252732971595039080253685803664192312457903990924704300262085657967705857091213930176012628839978324067083683214016099770633490192413007821365368707753396956662117055155484260945884342743660936101010941157373087868283645846141125309237342931050722008903694651424906482161057172758131638920140313410429771106778177725806177666998729258043725398275879985396257782903985849799545655451865675247829455598596131256626623377842871060517058108060439108745825997444375754636866134972164578972890851781985166264512188761038255136870216004000016836638475993461245948420058620204615557855903947318951333666814193709623192889144210073111149275056045188889729428666832900407418467638014148612231386248873059061005926018463883860539734599988890429942368467242851686149788504382119460366180275115538643675930981324704370477024429391141476136455300531222602444056389499674087429891794753751827586219398732238671659296987454853638293180416166559194468313951767135039290103365080747312613404547943422525416749496308073542185781416153963498797931688644335092045005652061925162078714291477709597209372942622946484488285401408905128497079723771521063334548405158688712202072431095088915818952272159471340850138096519451686752529904790418548189837001953096230051744221379364294859896594528155830250007332253417683215656813549080820380507853910948189421536948780132401422050178704095248202032371786975984253971371401962511918550341460986297193121700040949573481129622612583301388012933202013815842181069888130134575210162174630034530370471759255894165022653514094060195570830719033137769653130664930553029256542112923118821342854247461999024964447497608613802168257178041539430966957575901894026788937157793220748305999363873138334463165608669455821056733324626094163286295501952610779920256017033825248506503601579632913110955871688217812957054575030247277718083787894868052662000598288492609721352358716887668994112137798038667836059942220918112407461424835907635016077021849646285898943883669772929669917102432804160891024827477072323240583787312982788603945734671672452208636940110599498247729253585963726207307470360558863289703896544034600951022058090107741360453565879239779854542066196198055782515243817086962599397246131464939100638268400251349310383137350360606607724746275797562895726059722745321035843213747737549085892317607546754540003288959054181413875937597209900773160651022728813512745467957354644382558378138363214578024838700151608489777865490199770864542035973764676853451866850017366971274645410167579664571550629094052267681685475630342448692973722542778720421344930128681057516444455485745007255278966326283668581509658160025092529266965118307196903652708847277825750811022037533645895367672979752286466421018176934557889471430661103817540906416269581631947971625702541907880242299815873089733413017942624970097012282817119839285520118703924439227821213953108313234529581634380143666429530650028277850502908559290187421956391176080164338018921286596584751843881958358294807107245299774510414137610050697814659488062956783435149033078943777846905772590989021950607829878572843044762140986841123287526941885853145218258292588572062307380196020798067581422546944792996380575332740220580645701503781371359593187660708187143275833536905589050101598734811317608848546741422091423187740484051269576725718165977570804442101430544406648029443882977742198192553779314854153470666570604119862182386733916551324638332940863502780713817173979205029726657939567317370994484830463457795812012806474220831414972579810353842822692708829093462328826964837104464947725888096979389021649302825032764859735480597189970428999776910763178510339026111961613630677989559590376629757057775339812810642103591423195919195209311705317671789672137691692870564375523208991725087578679599926812517256960762970565303439738605622150320002281852253965709878983043633764363771758769191311616030006447598334178273264701025155093480563959000971569309419966571148628899500872073614303010032432311944131304229004673285844851471351996811383097851399016153682170352459844369941645567562572439271308199779472954119535970810508433617663300243808328100300096550000849787919265591770198742004347867995814543954910133096496099809689393246366959060786652053835232562785977687529916980758034083929176272242689604467297107162007975988953689132371065843315271896842512876685172246555437452725637758844542126968839541869412029608091798280149437061205053691093515386418239868391450522838790365710892070772111545452662063084047789211506925227540814957993645784885784248948665325900017575186482834674071140360635741949381308228478917448467674092354807612145592007790095793456905420397328067561278456368165378693238262282779581609932841285463577157356751211737749095863790030854656334397054924635724860571160252929480322837992325337862550638476173322926560894026905423271216601187329979231790917135417649258393315369821953035909910084079194521854412312854935011946423917143609035368380761327403285062811774677810859216748798304639452240241587436111697452068654511578098226485117862511997642520078101594778009003782407024687719766639749147824145195072849454199347305881048186760896050843429014919569274008910192770458363757930811537277077853436638488394702262037163238917160520037811461371613323175925177812737979486854375818105913658484603221802448394299288422873155372376191820651921180330980345627171859112144485500697081769005502303628854747832124433748786826327703944628793044183749414074827850522224241961269234279115816225421495269511721826842993594018868470724372414251329079035142963927519713823714143349927951063019867042931375716693945235429003289728680358610011214833428215583251964264506920968718463621632666905973440687862572914168570612675174908243429251320120229868822609919113277192101032525483641163935107986752558721096853557162333825662211361080212482143953488692432755506297468876832082429170595972858706963507460042305113890673582868647319139746006046433010853197560687063969244516294067991278032181759534758486645126283792590262864311622566103570226339683902448757786130011366327685791428562481019128785239771601915873357077314374258542003065340320088390290207223031427234993312938375304565319301420556066049461559845171257768192228138227964737860452595780552837969151218236432063429692498371269440111395902952222697394476009341241324289871579949516454720726814529699614480856272891086971626947253015768213889886401061190620933719449279236285649684264054957741161941804627398207335262735224628409345184907800120122044584154787548076981732791352495240178686974895377401005832806860563155849543507856678073599547991061921706931840550535366783996784222872229762697398462686184263956187089734415332425327921637259824512564531164942639720783606822266772076429258647082823010075213765013265463560728452354362975955161323300534432802157596977572876383698433458353628521911290403570731491896920339141208423342019056821401587766839171658038072098222952447404893626516243754207266542539641845884532764206856724233095132264080884033613284874572169029345245240832810284853618829911131317242503384090465083073488195066485309946949710158064657300748760806111310704787746349478122734624680780930316192039811065791856125769546359523212778681584688642442297082172594278000831849033694097781804368404935767393652052816135015033635570460054807732340928271683548952140263807059389461219702751349777530079503973208644351999578919624716502058994547882546586633833595213925673168635218265433952802868297060848851166409089399153422683094822583563668029150540658457831673247578794326225412154202251999211985402969315179392030767582259540435594474647573688978964131751432172457369724896238892837401088145212095803925105584065708234665453847123264614713184163836259396989151083048671003290478870345771746211179521395749668890043797956741643385747310462954358092795806967390082447550593410482166380026431985988105123453056308530898819399129999968243962400450242942303473974578455975209695488080100777381970089363252295644400547097393183006905439613166539041647302730500414479564895052227043023703971022499650594127277947464686855011521444961264292834438700179838307742379167728027563343516819407214382871290572927157213835274962984454688564568620759283338796510152109583902853705250666533340374021458334253271767737511254606384700817007662539745870093464036210143763625406137309522246506039127609001605431307575872476435585406168929895576721240791607436849837562907554331856741695787010326416242770282327478701145322354367882238988240930423626225134687850076630067435713510551639643343922447767858505813845047760661649032579999224986742914885862110483166159772071395583876084055996339350440409984358459668669542139111285066988010632320202243087977801524880044186769311647657394698396313633443323411230585334325001801988012827199810975016040313398006958409846897420216387741041635807461663580551783912052453409191090725815854587855531709036671033821334913115405940000968821227638171068580290419868213813583793044344093090517344558645624510328099163262373036503705660132184982795746287153286420451176224789452958894390455854810860877478035770296346421607354719147786081101231737020316850875808627683985424761384504873956315820072835406931605253563828131282712963796642207996121582924052757323724680698708390204758105259750868022349263516612078486852826853345205767416172047129367697751214536890905151015792853095277555731045628623145478486451159213140331651514854869043976531119680715241241709685757974502469384628619477088382305116805778788461172766222443297353699934498896301545400294433674669869742614415901987361828879996864558349478916196979452970061767498939153219330054953446040572391578312740333189254982169830226591595693129432923651757956659111692819332307107070825418833916018857687855802235844839076870288561951065974550852049073251962129907967042572111351402762685672116787510154603160948111952570488811669900067888028555095317120535688525756270174858155003907112228220927600779332716180117277444885457480836015671179524789384750818270130395129204799397137906659457112746333904790316638345839535060260037956910591698733256411563420029664233384460360025833137539765902381509300165400509023033960217135870212396741077514843595683985989319103536944368693241024814770291858273901642865252437900854698321491540272742618693323957125172033689872914998635263241521439065581454746847168982918776346434044072910584804166525371776046140598588060157863423425230520012936266730357709111156088644091269942340622246189227277769131174561309946673162270531968984833704139678298582312013008489604743863644897354314340892916845161608349720630356200726584475365668904836106230260635586108028870441060338349363684993473624901283863388706495083316750834728699039332883571904983445490577260049629681332723193900393639052813140505227987906193814020531902255780860207430003214802225893986639496187988611110061792446981980650544065798693863799775165262252860300481750689697336526904692701568060361569895728364122722870634051313776274252875290139941303111536239925997195194157941872656556071179167032316377680847725736736120579235077126611809422105060902677105387197660724305380820877318400143107447393654606991891962060406705613597262766460240035989893454725581764721611794590500201098730189503998053168749012130499369534393940641210854272621788555798634285356406931166552205808688544192576923796215088454574912100681355269261352553333834468123626492654101135742687876543876870596471656464114304974653163142761805096035807155613285157072886389040663701138578243107661669098150398122043605571668714263430529886506495631398279633441894213296359850762092538735470216421930149103075067717478107659459290076723234287469812529231642494099365973325839249246803425105745796164237172737404083637981737302434165358528672496099737336421882067990020035742136555275093390204446313251325330168650240484779454263650627466774737701631991887893545840093986583527216913401057844866782264054040507430818249569433628099587428169019507110272612975876967832181076767562455001993502136272500207415569394270348274710068228805548169350226403047774719233570788902682480957924313064333516431638139880470753610998644273044939644147954693174225929484124555449406670391313935998624989559693354274007939206520709106555931083067766509092054984333742870509762142491378670328691653013880860022284498606594510781021029723900542272595045379984987048459135705614517244805425121303773873545358859836847506409659573505869386991632701719375946480108765285051281337290234474205983596775014210251798205931407068257560367495598874841876672781073529174706885009886883783781179659582024168842886372065165464898373170367952614814645367271310507303034139536222508693206166325893108534140113970791038610307643115239565435501010833091459643940830928528027789222267483295804501864692912716590947952303206934463254337541728988342141827290233795743652507410176420605240137440222207750902255824947346471376374823730350530659286677995353752138593515533012786237458163687105148376412240547026651592488525672542997721317107428818172823710137201768160549445164680975176243725255640550046475746883680468090263496710645429496946769031996430707446568401555728155735966297528914644364041419997473416031856289449263858849009036674942274485584786987049651669826886304337099441586224364025403532997172322341989253174063452977325951378345334497019975110870113738839391504769455985128968133311961753094006786693196179927435910952130539533189376232047973562285153424230025340397233925419989443843100418253562833750036159194551715026285746976666265503821786462229659918826739998550585725396603575712642030065251830425238558573948537467837648906876411715328922195117087126106838031519463683037067993103142269349105005559748684134173500460170308054289253479419688186313286975584949319606653392297309505259855009569941105234415458428617247377041462289447093692567136241243067399871619950591259221452763835989349411564842594551605260983533539658866346257978007896860145494765095181521629854331222758008629661010375867018138193333412792061496292235103765452765925114546108515156450700806715178077210899130278521977153574491468190516502453229803280452409366821744838508924184357085868909891465796038990742079435787070400109541997100121818508887056526343585980967490791032035970636532032167597256531134330765474586245424529984413524677293057730065013304222371522023145663311039659140034663093512742093679712979221737090266476668326008742365440366446265091575485562295154349396252626102749326540832641630542937163754871949270945453733317685605355411158997354112215023189743710405640756904410419650801163360525644860640949630871997077998242709324286557897390859034557593679493575927469691358052350748582392686678812447315793647311179872147693842603560219864944156067382112540653454913511754424087347689274551125002437349238230977167521987287940610227514996570140445218365942806884942697569100164800165395377952159665060221336957774782629490519778764088810080391801610427488283971379962431753894721165784254540651788678804689948218091051416479589488649826248159925917674499147207612166184436244250087760740477350021866842981815902647875359302060103417787157043745594036012837927716435192513493866530396767603946998428191871619588593735549854031732774812841442222562769374104652757701107215416005667030541727164406834365518867148934049955027084653708057904914951123214958938653389736736273676172284847931133116285192222254735472355089974310776952808857136583187115947988132095666557562273600675311246120201948734937602864258469825451660113470175280738168179587531032392357015169293027219991796507033548044650728586877617333458851318428309983371331480663294535085072082795753960366325497029482018015599795863662138806782478277244885564955933375242410567005176741276511438841698556352611819111679937726118948564510181760815507653450392858569360985391336430481980871062947648929428867346045179669699020495418934293250186185034610573141063462705675517108554471885144445086261294075755190507525449189313800639353004623119766497712360449426272477200521140059010979811148473371414911369753285131759167588975480023219858063871743351588760441514354508437322269528623428888724378895980956564712708849343347621506330203804395411274157104443587799128922374900661535512491549749671522359760438080793920569240770267225820810487583284889575337821992052765183000217254486120154764658502988277532055393180503119259249189063843357689402741145343612129316800760653011526004128742722615574744977162734822734576152998619209996652652176225434417243843471669482352935750132692282676506619395293245212333184194593293574606598996765320216109844108900413891829458959471083148499152962095017020217619974451432485653089400306566279364834597475975075042791543284618387761926578559914072176272555197030470711033103000549257239832805049846786312195866852413447977553270212069507992402746175607246075059074268675868855474399302875380113466819199677452237701104596190266531146940520603358101452373910152180421371193688935588968599535395241936384960340992171735100409937020013806848239162631307600397397327914617376667642330450622749304659215573792228815548974522248277277617717041675103104865704795662861923331008962663047367693440476096046031089578117236915541424912136943687626692969482397438751805653024377790280362764767312330939986451344050952392836490363310068640190610301375148975861691856657933437262223106547439066532411304083701932655531491084676153050905946978343222130064613929844497331042056168811434947664646549950996068026906374333769297964539236426161569895117536566691236903885951929410773584349504955618993220295481768470852909270706162643121548509814532031973913539854352567855065591096952677777836360172525324989052000215666116692415966480284478719061669117866998213854298628010755729624915989582407796130347670199017303811234991347198269359799701790609779070857564670980028700493042022691945320039558290353240285347333196656258250691301503083557467073800669728471596027024838255292174958350374183580085605979129238511551018097595456069842482547179546404644355343172548311025173423347067669436734739549031570866380432473313194741771499279111302422561178855343448704273854008298960089331897849390636115917715181331148274167597913829657199707542607968121813890831394272403788604998619194879296878751331548084074177040200101833163787063484426599720051946769068469331882163309764940762235446014402846381969283781836952245357914477595208579214529868192406110956704713473532936353928659991232851387379442798289183159301286896086511872188966799010148572115781390596654169966317185052204155292198920071028455971494950930826514017000975828326903609286534261028489328672327443152288673364003188647478937722829063120085412755164494782584349822685604962107636637702676804009810290792453005155912347681296334519352201152576099988093323887934690282810946738460864317643514413062980799098405472549120085988878956027172476374343059991039238192606450833932289607065076414405538167362863323252189006549662402442501235364135107228560099554065711990109736664958975697741986948373600825936460340813609725853299489406524261551606049230850483511301360732869690540729862237547318973764274373192664373424595712414643372963208973874713848348699450278573838273650860423160268447942595663409827256462182364460427890711971583462173208426826339345237222062209552275930373573414490532616676295232739906161323248678348762866396631825596883006423566457383208631698545352474355924350491308307093957466888342313402448849883989644006087563631641518638858468041553396543327791684317994345767924562125754499597840945803983835066821954274378885182846790486949502650174749415051111656111174817052948987015662943440269164346318747788972206349541372878486636955522556597662731760630289714029603601466683585018466849555138809448465146883455240472617729027071749381543284614032821746757418621304407433003383849361112025561057230732688027153628128416926363063336423870907676905051009370094488037919638405717337341011066904873044217352871765406335398694079901695295585125492064487913557873287137860212395169438792672091795165980988861646838787116825614975652945310587384273122399662118532712576730052485024621178766176138127162359893608238167641218630441999939392009799182277452815362825251227782971100654807163346145257457739426274621489444696474598909577195255032544205266968644893080666466184720546244708764326439866538589059614893809177436739918326039330133475247350614785963435275553031829763606806593129948633082648264328907760365371892854813955259404030491161042010824007802682738645853021014139680629970721069358142764320222568011934907739438527079139779117578805454895691347307630649560073797021599213274567735181005105585133737918563057721901908202104067140637069551443774856287821036743537272284262194265468685835769268116498646928831757266638321107120917522264452796666629691167083151895400080635066295956370475116815729954678802861048440816588575828182037227393928992723079980302379698980773787020488088411873662097901720317707126599184045248391477597647623334397523496524502505577478432367711890350907433193747939183584657117170133550604377987139413744386195898035544142229790904949928887147517622971311374880317327373242284371664615466570927687837320714982829228554497805104129349464842472102609076983269894847572058622301409621850040050524320497372493891118122015827741135696404381845363410973567668400764653510927636178173872773245214214846437927921806865146575795003200036177822389693860138821801729808457761261630286254930377191349739419285741504940130501039464023181248998624001971473671914710329268692858847771262525849954948403923480375449136970173844082627498793805454977997655770071582148965526072320825481740010107086311056321612022453056154167567407479847652220438005548781899102914865096321796710309072570240499509174755727990017752119121946769867875645872716482230980866664070109028721749788793181601217969829579209460286898809601899483848327538106122073139819576130310187565122245066495203715118935626927873058705668464552504391929825109195324487155885100899721982693639047747930044001937911950526344297272707633560889596631456509483027569386790508975203251775989481912369639317702175971972761286655703944460867600987627105900711020341441018809369674844683930165051052804660091770880626136754283156983529692241858135561723492914159547150781616897566620948092247920531251403841624754968777606613857651689547756859446975286501145619584400092454310434422984771357331084147239401784435106846108659431461951641963707275979917643771554635490333132745441909001087427697200997197243139353018934939741775454187162014182893464846605418736883535563945684370940049428432136782856244104092160157122969314049629238390826693727116776201708555339011423711438071460814991320499124034950586186024026411260486374992786866911519046536683677586481511133792333729294934000348726134607037958226542477897032837502656040468700883121865779228050074142894363713385638681558642816213136200781463147369607891356808533648019942157837212417018155903705061337796022252866776335509500435514192589347426021554887023194645021580128275635331086607261379820468046314698637854687303094474321211855244771213009834967020944969469282759285794906328744306295006270537771799767866485886381583473155525007018493924853097843436570333621396075840051003440397601440095063385229289477667975268835869622380429254494535016757144121529104487815332346134898290097708951184731069089369588280233470358984286763336044818243158697351053873750480398243225719280146489435217271172351322202399510381175317064360191048722187808769709383193431081579620249946477894855353689455975155684498401272200251895547919142473479764459647411513217714131851717557388166489706279350491366345512612443914681710605973771317463106639041351153756536879800169490132610138640058962354405155750400735447863231398590855723742733252343913668187013238143764573636355277667357689597320141817921100870204764139420081530116483539124811948522658470458445049283010212167283982230257414912531174675625236104832728480615965758609244228909941764709705144955451108507483660322418179919487087750963856125649735755970049300606023672832031138444012053731838197748156123038093195316250999647394199253078723133984835491514983247006133590380910041734266018131116807900204105897571191811316046776125209337966715701347999519534366513293980188275460688460228292322647138518827061572245683413104831008318489825713275497253821160147882204263262305975797044275893779818942054459823323908397960604881711811566933591685098844917155545971473834336793891968740438510177558764583125526104818014831190560771411688335930382712506846417227980838564483006291690989548555405999901282632761922514438415886448903355308994806318431583934824311247884012852170319214790907568586017033116632483076581153011529231161229867701687520927706252252199759886461108577505487551494054820389012334178651463836390737256396621764624814583161906010328481322094117351122875927645225300996537915519757289945313878847547910599753974730377858822067492039857673418416177577246445264336409634784032276347057024046018635709102068091213380615940866991074001484798821477202779622120134002044549672913212128750708885966952132062868365197395724091402353761861592211866830779170347503022370081313268806830347081687604639417965317754734809214546113806536379918794083067749454114052697664559658079272961731094093392077070775360484503314659224442880494088420035577564136932613187605266815958973273301164872069426850850608578282247201334112486739125664737013436717128845189107831203554995676652768006106589704376497944810337794144232106867842629608300947245954045536719038597508654117201844425594291419220485847012113288362179684024443495318863252471418073021016342275970628572894362707412180429838887566155139018299350352085592354814672106386530863952621652980229723523228633477624208926768313239422095974725040153262319779620052508911970679212488316638382893312481131355696524239457921346395796484999532802531881437295903275088382420418028834938585406961946448808497835425036574190884482719318138722271081505829490347107792270714538423057922810384041254362803827268785531322274699815995637089825957504130642984014922571508157553535326138871854633175916511502517426626676994804798937689252801821652378438901712147302999840824996312267164487396072203361315405668682166034045054778171695455361021506759331777647437949833235965212931104967781530613446491984590588548229025183251845808874931461227016993892107705426847563756516104404494196106682100276359691327625119261398840934261874547026011117635558763175856632085505621667170006884300998091388670693180748988888294158936418610112619279478895982810862284181737614820804720525327074152754141548066747800445064638859295811450535428544265659515326856222277873702805107408005328877275044954824052996598656740319883396592599938652915934685663712911520335185359393945434607033261104512980946107680581910861190956214420242402866040296466817865673101703623104079799745251325025794035682936061514945574436911141593560079300505657114387613962695246788628093624294070630857194409116906201605911332170905329838699493196629789759819720426803603256947372973196415176935348056557934061213564240444746010799046146358472278782230745645536207198580813551500562920907766888985055903684658551640484546591517780960867679696432851612379237030389487276833461470676671885338592006220683693763995000163204873335470071079403976794919400988399523935768405347517717416745267606818097545881038025256080275312757732543484676716728332726446291165452152937502805385065996857350752179154652014661648821244601084321410318322575316999125419650472964127309384839411719700098136867629682122416150610098079585823708875037234638233658445704824975567059195016315238835308832525492339298355584103253458345456057318105935024458709510634751261689784134690188899897013898614067402108852586862975629453308239811986185278913946400100160662120819692635710033541742150225646946659948357245276908041717232293048972067762887080944113101537829622472513002972124931081141750538121217886428565844735917096184181242227954726161979879427136274580127277014283099737911042471952460895081588940458938970328237568672914443557269922267074221332718206918616026773603589946483520500801007381432383497642960591034365993734083086465697257358116323088539172567733746521040994439026681097473459922369238588697811651436581530081766613354678515953292326273965429666120043618499370537924375081517906062455387757194392986622081558706779214876047646365696603399894680433277882069247117772081551450270551791570354397446227911345160904162931445402359279394414375436434897587222714211456042913053637642769740476959749779124038114488404916162597168919089304630636845624131430990068802732695303084875215094550783381081869280425039537428555404538942104899411465557438535075923267221472829199949740498212377966996699910792901257207717701020915802136722759665045761941388425031757204501353908979384006576144665544207325892907242559038507532473982156296898855513111491624087833636748106372711193690520854717340252858579254589874236340613966770795445841153062231457911597393035973719455228577786286508020702510659586185051829532872593419403857817687864983633903740673808152284492098933687571037938861640437043673448516786441906475588724067385215930396712463012218911579201389368546441688817167334637202431415501820725813553318381846537048067301266551813334844515709291229746267732401583552978678812733090350518310861541752547537583916161440551083947581111538223178902676738254505652433627526092318729020921998129837667152869413821639215669103649018637754197473348562248892470630202764800296133634837080166320717302239003945953342961905298570677933635462159132015304476972483530795288618355743688567735455236075664396715662895477280649658424481635086428350250376662579544469899084425230440480050146933687454471766514701342834765627899204271558852436462243524942420846438988726016788313852786554785982155544074074172443207666701517836135367012860491025687677246781321849947995361892396086109798386725944118165316275749294819357499145617503213609712007382488971306793288272751083066331929249930720505310290064493430483574581544066622562459782066826575256545371005086087661244493905381017433737841092677246418935554435815889785100741731014738438563342534453318931323335772608586838343881318447854552596132325187941834427509720617863708917957979495284352562747480963839405565670843355530169212926484622557865553375456765376000077357428736962918190476711763847277918131740864490118174866658058165359060751452682605564769799618475228083253792557709869035852189696268826751423929703795488377101053105604495695366602593665668733838289627586054957995139141923039071868907962751565698757550469536928645203885147197831550997792658009543023249128099695663302818895539842334628247274601516951215287866622340664347062411654755887547795096730224702808719062549772336195554562564423322753157142673324897773640410810262294196290931936104364272422520642941624713197663769197351075089909674641507255566073261072445435719937017885572882216447759172385481391261908371427252336430970260904689174564189665615602204376340279922115611782115175955336548538605004863186238762823212748707143226455903850602918972191139796964065388088961257162165525528440844739318420076691265513953061928890458399846514852281393893609707521195160077338110698755837644416902040689581685802279322820516182012576042208558367126759940975132447621970891873442597451186642776731623323229864714889037417500200706228952799226939394242753631010296286360191467442174267172572297784405491346017040072073100946184735471662635263429453044557636769603657091476555348774885786760690842305018276336946040806911096790768548777263786197819986664673456100380761375645419388969113568843776568816218736610624762555505427002626588269925185304845558521663665973175274451452459494852347738878985659716610874784816189786714192155122600000333830207572649356644109323137416549376019879003658397729979737463537561662489734160785921348675981492615285198667740738427673263007215587334359156940161976570266203819715124034500761365186400894051743183467738708090140615271849051265245700780897050196171942940857756599214016202998504960125718081478323502502736849470131106344440483591721214491838771975340807206378213695293154462911292469809851432228245075765908438915379148664739850789665655652081206979959360250181745444839243927883973937492578471739813689560327883963182545768043175855788107887051342879771470506462787996343470737025859338172394349239098535752983167756926039430383784289251614811403625627113473088290713217100493016198328702361429218879095093371782343415749508602147799766448455602886875634191002294251332302152600861474988300415122145633285499315331961912981508807700575785928029476797842355409029671522680413972982263955123213609366862588636144029358119737885637037060461053001534210456883770449600130009742022174024719198932160519380083057032778955841392747083581698358733229668713425843871824994761680936749607153160227853341602404151072193665634655616518837999505597721963077445924423832125495118246781553292207945989719664264045618732724364233706756444104264382530524897807975782229724503789255475429868901379577972017369205237453848156129403577672461263155891046031990829944677300912938432122507589698281930725949059294164875858600060626028915230905600010831748781817940889503980722071601834716930736474013698263864857691704308914529111776599654106252021445659946700228141570537728416106720771603715286963261381668061410471548760115397338345060460271660043123840871854221260192433555543508172436642357674949711241209099089642559072263631050181682387263375420780720268117384740971014047624690146753475753530003549259824756282507145185666342881251879584351861546268378725050346074853118798990098300309668030658764560469552196863342078181899339707223739928869648883514485255568627958435676631129752202434334681858299432175915378353239843460383751632383452062487435375071210645466184754015107392651943019964381445065882312424939753686233557160011954171428939901944689414469371690470374041538052613758266732362152380858656002430119408362619974965088497084784542869912674887410662290690895969229972768994145660362272273169487811036222511711570647631809715722811078657682257911127117560892698699804241897269990993134431388941026106960117534374832349265144671154812240726277905401730518371019566890651866289038782049027391916312773609451037012187385133692701720936882858778707311409807943928951404255314093814245396868067198080433976747007112262967125053547426414443091196773307241210432465882919349072430048949907537229993743988508827850709764881203962448620910695817326029218151159032425146514170495928949681306973665326291449053924484658976351730708727442145091903770535927773177292974358530031658541124806632684964326232128042516215960662248563404334728139990381847091473255246272948828500242972751817165762656722602414771122087347836396889432264995215695179036203435550797303187774798733563292659506914629523852826501709818115206561981184308342592854484760051384129907707385151364476594155358129756082324770933748663502095395364460707242701796397391873344284155894654848058887887062003620233093813331855948839044023240879037869589334290798847530843849125772491398328135619632468309494052469358470321672014700845561402528713564188915853984804603290141147668189584290872830388005357763942885112820399073493822016078624592536109105511254072257639780757170097193933334353319328342660034401277948178854900232895209799262982631930639654932532335179807974679251070276383643633139375865514407388926346549560107959526468650079199264182200771681139170326355005699069401034845789083505966281713516060749213860788598956374876611014814600399190323913603795876573186387967611451702809346074155978712787659154568614580116992380090495809162771097713967551043056693656288623663045057399699126837700120226674098720437793979078595889055368348995311537165937511185321111007930925254071452335220773951874423237670301915305179863317891555285669434053378467357365282170355541053841304978286389773827529035680961951326896111004485431826068703968620088096782379166006342364091818069488389547570253230687786795923708946181432653972715344348282991813105526965489903574438042029230416162265427791315219703264172627890337387048206798492980293222984896954898613046389747538833241193421288591079998712693921024054313123769157163065208367259101084709400157622603395828222710095831220134120851564840506771365956461661385745503183294605670113611692802958302719491554542585365838932035831926557618376336759721883009070466073349520901340566160478084014519879891714102913413576474514986021116821924696774189040102152639678860186665581684644743155662490321381545474626644409421718181850128439255373764129108311099828485028867434059316288179557254794257127460144095378526735314147348367031274120568679410919549409517560747696531571561457997798360525722134085842876854561505476582421086921625231471526200962325167175340496654299310348441585560634935090379902863596292631711067839200766976713728561419047702729240046577016824693003386852196040311749237021709254627986955246526168642127898228701553920365610325413448596431473115696412073010071631786285547349181387056753003263837766118958172466516153503069232633641694729749553684337431378864655997586190525648785942557612964100859738891845114104332389220215919058234039797386907915011042762645377157746698638347147355840412131871406681816812324887476321241093140318865875807326420314315140679208211656327743997407116907406549249889926207400366973726193040864092783547234806972402394745343583271278950148823668634476912895181899968569482494081918634576585903045411883608345732902918494684923450074745023912749086841899028443697630707397132883925692910545543412192426809679737937896145715278980715666455492086778579111093194933539895135746791974733357043116587344764237696178692363365123310098406256334671133647453413227360652886343961057588010067293213430350162860582955259114784142644276020595628102705833446999862587359697002498965373189535509353103408427126506294723689560304631067002138296645015469140648123854674279071882419209701327075969472819045334891920853515719292906323664953520273328819908595404455419088263236493020190808076082422557170125785986420634406067547324503101546282235526549741849887234813975771338482209296405608873895502949178436626936852052004287683202087776289443019028034737709302837871527662299629000356347461404081193148664067877889654743724346902647275965483158651597713696979607893153481964082094929579476030680732226980359340436230806635294612318563962066310796744841727060827156608679580700048616519715428779458817177679473372686957582510374304545192303282761831459786330041590828588997493763382841868125841249736549872813460825032243820415712081287411614276666807945816739519244417257509691155561458844642397281359103743538718794572347879711566337181328891056755286826440661351581176734379346574553863663315947799339146906321769278022803705378194295903260398936070591760637280650736077924306559171426050205555301918108476270025907851115577589258495792014145605005146040405054515567600263256629510740016133149982646053510564002656371048448207903415178865306859850649642026012626023616222491843747114066817131154090736911065078575656625740369161579383108907878356236324290026280009337984359976056473838110016158442615651142532071256848410698927903344723737148933468777362412191636798591366328517471721311202522187570581468823107239505458593717517706952760811621975922431011740786344482027798261398263711255039903269778826919432170710214045930375249640933412403942470661245480446452588353247177588505111104594052421464711942717074626364109790364829250552077338432526200745488826319741388909216967662993499893435810735837912938175615780906124213823788460959585013930795376415057405290391202040882817243782493287147034127042680723133549363211686820032905744612411354463938118937530922096695001343575859842290256051482923652758731997115362308707824804106805533258646963309478479980503569259565622311155392597581648858447775915555351743774269291611001916116333042958179315073656463517540802608922807343529339378220242515749353547608063939392186823520853754601080176493564607965996327641051184501466625229751963500283090496469095717064849517893273392335253904419883924590882561325760025014730226625055040364480736693485656698959477363452442009689289459618624759848312881158205115126279127880353568766683210366838552026532207387223178052307618546160633840256958693718454700984830769017787841016569566809668824305267600267661444761077790989759801112394492245622059928791807492356906362715265379691659622107365026009960439040697942604101448686216878128983840750064515648941736401605867230730150418228628285625949970293660886053682230883427442810760733170142143684959134659974474449381821116418316685628993555875692006543401277748245256382729535090248533442545670049136974428337580749177803786451222069721556933865667140109406814471410026883560191263530298350961123148639148543620964010562187669917949864047702986902238459444700482765046804380686977764356957962760787232680882888260992339006362961933816073941499645535136585786117774050067089272287206605437242884454123510337973842213544405086806829580798881181249443809955463033404216261536001561235491308802953420606879542554642455856359818524280443863120393025488967371760284339087087801487749045202703609617085427122084611274229997080529895570156291372676959556204903520288622857194532703021928351752684457001581070782816767223895612463056122928411788312179936176609418291735046415755028900297539016998301392608928752909121754897929687470258829744872516761126592539209759085180400254982656248211989440239426407352804253382600577186366993624836316922658358597992609034403139363298578007192112632512164215965623846335291112970987122182848543386228958101624020983087091311846605490820463840136963487491085814712423970808066358289177978680025388434811380262130931757481551165848334456783474163759677866851180529931562595426217346660702494889548653019443876425297306036842059050860275810989568660317172851489588426704127913832141005232631558951782359731813210435949950481357364421741055339960087887231591338180860612039372474073904770740663267455437263833049204267610547887931638247045272276493181120854276902674572718994434835959043252136472151079614162654480860243144396642654652984284410800965600030674971078214586935651515394952374592699987986353927464202298708552821793398785215119373733313492713987271254701901103138847339391929754756686241653224930152830532513109832924303363510612737552558067580719901780289800412925931913854377360185779946170512214059463216497908161551539159256094893525797576670934662107207700179732126533516663982661822167525080946437711415963536157149760460337835602672439136864673183813771287503943040901723579894041014739588857243700843974223156466830699627986079513152053864350567074116490188540163864083179631816492767322122616858137480052709989264174201593130320934933635015506995950760334711912250068793110270182753899039494074322494585342433314329996805324265740408768477198881637477836325943380190784993152627644654294151502258478931242533258157383270677942602549010505616290698766600625055969384622346068673467479641077246133985795229001949421520036497373356770479748430244369006836763035710723469920444170620680550697184697972941588780526804559436834867622190069249334991321790211780976037439508362018364742753046428861898516530824537367647672912589100214135044274493383529376304457370088578150079720511020552000156120847415986771960486293691797562148980266068872285273164927182867380881290829337472022641705586083714108986513335684194442914159028667658325321701653100367096945595864245966348144007074270689761400354973993951541989278081785774308325766185865877032717412623447634613809069738159151721464335576379409722477626532297566128151552983313727437629132372628999641143757000884959605604118382531787329786747273936449290889492431358652427357075780378120178152455264086931980647639641752475403763263374764136619517518956803872031718712049620333691548512620569383863602828906151314978055141254048056075225304239553147473450692858743674061801092428009898849021759873355333491447102027808718088931485223807372502875903518792928413462477472519127976495126839883492695610399493325269469739148194327533938916159027435163822962481169901173679427261856087095674238942801840681383737306502588729472095365836044947919778131710873713588752824828733996892324353347836811341572741711819269811688772180983663672861786502704654830794478692449758773261396113961815442441751161466171708949450864584704968162619793793156179658877456507866401372077522578988501947642460359104777662438727259094428644964374503522111907605497374199521389058344223113856489578146097048953633039220170780164354268253512406898429698090252597509952618384648087640245938518946664976412529779415452596568164616286177697784726866152147421236556222750225345960272392690116672415900699956059946199068566776633778531679053075362617248665304389990342061879373454755319163624450805613344998235647064091267331387736129989179327219260587807476326143128032385238814345105583974664283908278327737434519649326938025273037528773314232210173253143515119402568350226918320106174700221554611840002046859976668753456447428946251943760800892773664783709953146480972236225306963295518467982946619786042292781750832755081385920629608647871569136060387638669006974961053414979800756677253837252888809259027184007070025428281015368337475825767434746875682613702064236496369114188033947381277254133759441513614309987316177101187876746232799729630557456923783324255852503863823291830110089803524751845947802145681742531394081177725293172504230087317029458536469301913390740837207037136087986781780664272360769626295370506127418107518156471861280084825345376073911199248238469586241622567326260103652967300725806670612880586391310456884428810447159924454000139611292526452746575459100086434615611720221770655462429977028418227413597838744225805689808805264442445503364872806217742692232350626372220878186357780396536574209714223200279737819174258755015701120713454417778470477704706029139149693734530307332984449764853558333421154205573322996413734821119662933531941268179860589827104542734727065380907374102871222522917238141171462183735412598796289122904949398586637216400358358934217562616341764781883823021001455864064044531600613876118572722167269943288149261562904258532799277950060832054918131650292208310977002269104642843407108876712715782182618817768466416792624472086551795216648926433326032665415349275366882013512618942404630004819753261207962209276234635561389062908635788683539864064345674937070832407417642381178304605660158122734002918312855725669064672409598795410655351929224046925411222025117231989981566718542301950653334266768259585874244475269391008294458347730096004388830577354949638307883858727127317162135287513912735844608723451124004460901103316616381224323184521981455454774932341586360068133519579031883639959502832377748108074312559450793412187785571477996007146556491483162176046840052331606147467447847259404912383104757509747746139661554674169883612080955024542042425289299068061466729121669888830117486007145892766543309798390126107864173843424038823273903399892297102671019982117595745517929498834673832724915104862420513958118337234495621925307996422219958729701822633095661939657570869348461864944139925709569872291581507716156223642973006436768565456425989316627116612855319771231159181424484202551120477645132194527906416414804944032456306122108582568325348561952807200840372455111618853776006914783630277239616181806024383924596859778534438057006409656975066011200527886876837759044392530356060316679117979520789919472310846982991936393628747311843415713995878268432364647665295530091657863156314139100177739738859396067080694209949962475228219145889515830766280573743278123432094340369966979316140856349808178895992351026221150535318119576536847497712799695915889955094676252801233052977411463033396784040875335225527076651440336610436866152250393169960332434441678150609219804190984941734562725485889250980558366010096111312954749814952611938932108653285777356231106588416214824608699211240612687208728648712552616105015398085201920949406963953876605723518940305365812184132792429296797110895739026764479733026776093176683573045231416980033617114635765208387725871751163231850170436340202521909366147195584084940663658392543820769286169926478853197947644965004714763460807698067206472868982166513681247182098309340399648403863804859727526133876567099736396554176067765494996164928623412962904253520965246207881961768576941022354294273924053326294519738817591648691313273285574781157091776520507984568115358719160891919235708187015869262275240717607352250012131571597575716491084790844522716883246766249164159271256024396637240256562833977992507172523033775374569985563045222309969175794643801410645807745484391961032337928878293789246250509224553687901298626992273109348791822238781193119502486653679358948106301205376302675320908228750138320384486005806817581081198095031085772563431299816337428032128555137156449676932539006018517450807215742318746502525251784047130628000498986843017578760658690892642810418542946046620066561573753177354032778305642456655662094186961108980092990801196754180913850433720816127912278561240218991180294123967477210633503530045343494666071367555184109747640474610924603321981790829485466252189834054729181964023945454582313542198865261167402089723674374974415864924489193938610121943187256097243437422836254661090020556531136272125685692967439393707449081999848700435717248354955467978293746942802323361538903591802601000885526200960533133382323521234816102599482962592287753753141996894110432677493797106177100680141171884479320469956751781473559560394345524231529395169099495049430678754651619818870602716177876177634878353339731597576674443990218002607176119075196537736034230230699747666806228965021394595642273192044441052939332211805601076849667809917529720117854119485532122062837748678221929471796242051586984442941947294332715488933804867767056820541088336061049208824069460181858169561849243391584148225394527380186433675022027934419246181612601373816562453279991542533095856643645767364870498818934312156408200560555175729109393752950927106984947569910553803018093104791044296666114443587856690918692757653286547215792108303040429732121745208087367619694552546677061427988821868314325745145531504765868473719104363976500958901234622287549638904593293272670566004027830216216118117110533550332525080399768177252188778322466848401766843541482817515597716413422134970794454691207449036898455138325444461531806005322382581619938584294798910309833705097733213263634330086346148397082434222474668779181788405332924789517888565522042684919483907095255531373997487015363959500650244737695345536301962198315060376770036671064761584151685933040003242135644937212446459300334180954692052935939324462518307190660491225198883190789037835963173370740759417286378633137620320828231157339183323219382606695001305839146856193286501156224590287063725934305962396081260720469118755214966629722103630456119560837842259857639077130767674050844886580104430114002358391692484788567447622734781493138424598217685595880790110408209718573840583832036060864688186746429238518089526940395236428507738801472273408829454759888273869228954304567010209628527888877373972515910375885288616040264030546951027405062719057276743368184558334817730965706772509348277314091952214715864993933117355616781357871888353061850014832564781187717883937111563286621413555836859883630701753748156912808473775342067731262909765920380796790798214115150831585475334303025690000599949081498819759152355424634179757512882116027263947385504272914820169952815249301521173858305235626484199995173339004048639785689119721498134800643738875138178632504374570284485642413282207144956611092537523172075647626231360823784276714066038256890789085863365364177252235270508081548028407855476429813276638072393258153648176550864067530337726246207670338795169126901613279822548030440417604418196416591907303850840287031354301700449063514982592952062433184627915585530394577130775957224250994856388156942101299818906606324393717212376780159914175652080374211352923717231634035976751087911094385134896638522370564773838734122065661630304409849228225095131853893663537267627978926312351631253661223498895043346081291523704069942810991576364352187440027592446807916733308653822536706462401936449097484376219298690981177988960939599240962874121427379540726199239314040621406285072105300679343266541299585362342649227029165852906516172641419345655553291614007284607551786901751445202244359418035615755681174280409070248697724461119156349929664571820529588301054781701195020348418249804052810525113535074551061649102273660424364574450515135162708471932630215639836690131887750812176282737691296479493447631106375302201436760256312765153363002646159640002773357990057832600567966791598578142890849437273579062642643950495639332174534724418656006873517794321351683491726524180950178233436147545586429564569187736565177571766416934772050196894721492872971252429171481413763153537327498796803478691205596238300495858617419917562059091247460779963322959677753024495643511862920100511734691486735774308991545756175274144716420588483752339853310535883357546741142497213674261371651301107797865517322359857111323232174559415008927559423529081007558896250722967474638386883717356580910771507689570931239489020395306815375753448009112556048181478391949667815181721312879674878661140828191997023250867748819225172323458397640896269260644071888414846539741676400052340287509988326942140193717926779598875370677800112439685661470334076970516612034043059033308687427611561944372504979612336025541540310502442480009748088026860594671506605228655398426662764449727317726158239961921290231581646562064461760544487751320385816395199332214930049132788111162184196766227336479992438257030982458307150516300023669372573416023607484862340149327877288715620636286829027260520917742768498131342737207521329291226727457114375518110868894607566828258872568211629249018873114995379976892617732009043973364550471597691111229060381566674593257365858477288061071601167727139660147893299389154827860765842550470650040867938172927429577136510538655875690860376395980742381792990555061642079988200445257125625573745829182017078063643239367946486060264981537047782200402462051276901873259311406086260617986529009590931304957613063184179878161473869473684580037728349268212885487900915548329121273357916417599046209681625076362722266042822338398756308997710185655443177645793778741578080731516284192630211310990774852473589405487934774471773214665284243444621452844963158684379140777881819999783389569671535547075977771104662856052532831209317041586839212976047100972599621048767365749114035869242382694400107415017743818055894743441563865742659875760149606477961860680165929667134208915467506932608242976777432550403396591444510878442628535371491059892056695530245472797716345387418196117891917355669728808637784261743840886537956857816047086356011627345643542413616273270023726969433532274310202355709356921654668490952154037239085658938051896551707802988230801047110988459138019763289268515319173186410000576968241704921435962363193132919560870028261253611842469840953370779511352634242201380933510622209673963987505946694197092321454251540328359456948586967487427151650769467521737735174142612899388288679136634984273177423722336541814840436100099165098652904953215844627572874863273110948537977807054255710808829002580348070234619188581878880132118200729286390201717342035515967720916183287044250408050330382174387406311567276460655861934241024572319993497786483997530484503855716219000300729542473066164268675050119222091477972415652116659257551778993278949082187930635936310394144067473799468134831231329589292404776432876485295901031026206124508403749657581908882746964693971659615325192653964898683396273475826044046234368271229295982868376127726591108335993420109608930897874035120177496528666700459202137667787082480414956755779764043130153109258590407932027434088267707001804102009917040642164817450962347054534834850966876045743347374719637875337941853655909195601582447159691131439311510265099277640070261079160722680573720025737396679069051725747641277009414557221942481039246103593476668212936865260919037660976636218137146387070752599179551302106903019427726190266984280200221528469580005329828016771760245672723736091830501125007310921033081879907272697241721095448740962152050867107637491295007871929935793763589411822295174652442287623076614486393556013259551868664787338397533277486074485497526461909239664953858956525039637135464592245856585639444034571183851832881192207544924056749661888885452095424186710350095553114536690389323958715476381906997528191353406648172771521124021439760391051548723512568781980815401554269607691365682735222081494767487797046843493108318466684040860943429916698889741700067932026692140590433409532893963440327371580233523604446965605322277272569929289785431012127805926406023270231059246182746082930820476808796609710522717585174171598332415544059823230740932316309597525929968334372043602983732049301203198076770593851402140686524346573129408337334904917234759427825892637902617489436524032007733343991448652996404243683270720097436835267677282368404703965717472099768405617265150029826285536399390227691707234092475741999012490701982225579905109106381893462646218970010348737168273743119158783904887422636955800508630568593723187324151779421831682654231775854873730533320623407003569740025458635741255583537883215332285153097493896247829417414243678264402959426392112471506816663538137675952293967746555735697657701385626878790492009723023220417750002569267263911407857326686620500878940371310308551382099566429864232129113654450643195011853869019259643577345683724850983825827591702904238721036200133431891996508814638393558499285173970691934413671992412830677675371976859588975124327891613880365132007817056240050892358579949340725989026489353634939275424259062581169340049511764219688233689301466377546021936175240955471204464971684774340634207945392209205376118648766995476715144958101915420401206744084412230512941382071724720082836403257281105364796424696344451975020128947700484769290383759576781938325953114431178509465952835308936312032170420488354609595935886638878583561022329546093690930485517996866581326353790258225883082225039552207868010067301492059551862328591873893995245244844543962675187403941330728674816825173785919936817343335118932056545597042710600969671079387654145753587539121724108366277212000817204853477901904152430038662971686254188973530239313371232456460073503247100791912367781172563672103219537371314987429124282684383560743758066844741981951134450844730311801142183884789375477565969576425111681093799406790824212165725357200608035921050268999915956552696635233845867314791577689169463709546289522869799625980422806707721487868366151296745469485252261753279474793725051333260286574706752447829178194041748643916909694268414435363746306886129125670297017355036245548573751246416210200434801107519101722544378254227255323343176005296932453363222433259601425472294512000915311632249384342911311253645679456905861881152797317686281794952900629929754684901451524809880701800273145121679950093142213317530706619382067908095254699967520277278523805089547930155259007207005898290372655046332517164304218127228212223567934635929026907670338366235600631027797322014896051023829257894024142453430727514868968451646488932246704163291234322925328411424298797096536392526123959484232843741071707565863476801695321351756663875855558277806317150018182680754605752726957744154362756053101251566814636011134355303952221986018240088218600309673885923027406041035143124249120885068421137190331927813757524281827035391210175932039731760388336739300163629491489147993699891369886304794297403507705199413883082349894461175926101694691621551404608689612571737473527587875862618494600099910093600216672795775311207292651842235051203921423147246392225314531303515544146987123778841144531260147582328423908656756695264806713155949228818107519042835661669306202486199041046219059060343875468852803180443663362934236923506669745168624113529736797777715488812723580236478325078844730572121570412350624218443056063058249302770278301107309692101005445341448040348894043161901286896882469507584608643382234795301796184803589148269405619579518520042917301093981569456349808302328306605864015404650088287152253172303249615540880308106149606485777736608894072011457630152942068772781273441826326282537437257105185531194009484719349520925419068552483952880061777759817681046022785466713743184866661479318019632329998481906484248110439915662383540930402530043814161022057447670659881249135626381611301226254528958962073672571074613866747134775097892485291729014520033902321253681115055400389067082542441588553951658177346473504922488890292932961999372436242511970548743090525198014654996305334365046054860353514079780349523135995575792232859007304598524195534870829319665324630967979543727149798605918814106225042062066556636058106209052685618639963689870358296976825103353986984451747934291031086310918738867723990203608605683584302690974090861341224899915947951882930929823946318999299743789142680153005342488221948426622732095914084113097145726802787329277532341287337891596146873350279880497495527962901502166316713409076680831184260169481149792750920393319181757849783825033068220296440360181205868864732198353143577667722833671588676607783099314112099816863528527729783930717264609641872167620095235999938779265623007785438476479666361437046994194350602944204842123983942316416254131138216095351774912431650242491563295219413232199639574836310031513555450026545050676210895144166393520645724681000324973324525971783240819288403961967258169123485782392217601716102262352628298897669498407037188871932910236693095405695434500611058485158936221639655969493474080345274804444981204597143265619619819859308344083891469756055698799879140649910883588218392497626202632600426685335081740156036328792976714808776785648102788488578195444625238005911042327025954211681919044317886747206980129914025211903235295742764796721098051332633567813530495503195738620681885687146751685850136195255795477102676038077589664229948872485722754353511410919860461662917304616718138388391690520704659014125261584256473374097779962657835532128825376840498618325486683438315040641875188295584470155694728192901843702205258138150583880917905559628413412506071664385682180908785723027280340484157941653343777178296943841597482331509293433774388938789418009640357155120851281304702644265588615235575139815259292208043047729277678631622232408859386962637650768547675648396353456113066324188051326628269732229359874331046455542474680374414623001180327937586219493710766641630188013177498697039822246829784995661228302241475026461949301762352899267008062085180416365919017911070764296344057301780031060154861696124100980422887120638968505314424858244767269349442939969874765987130510990596962685922992647338733164757669681293862989585715658686969287402783528498961327553341713663118066399658380697116823188144088462379385427631211705578011867827803402702188192990938709401851652173730104308588560018567253858999873838726619842605977509012601388939868737971963770460884346506988330888902013410632213693123370319401491461107389749939295329139000918615925776459741436523855665019472812721618233205797162655562102661036491793953287802583938695194932119081358562136260524368867192072457460795709976283010009471249837357785285840966798404055896950365286120709927240956320869791362879519419070118823224433878085389074326166887490293554719762039896093350711941977772390711315113587470192922458257395555652473109368152190123622720202209510826215687456572804055903568296862286578453816976675395831749258277055302990173308945630610239133409543898230543454386334873551015646403830685038284901447102609558478573714623971177417655379626254172765046772096482621674815944354094012967684766951240640113333966034586475259410933360839911995485861716868067863128096865024494157808844802291173541190257946769174573992269500486462415875618356446838974082051122129778301367261941047941569099349523107419402346478637769683735693907781199980942715582816812462433886948698070019914959050746364101062697624118821455227236816574219471210133898272527494768750808877229262538551096564974681667747637054999026982882376485775357790484427202421411053113781793533613489605813682424298755254184963741639078924485562707726314827354354610918467079536036427326247730240777434796959734179606212901525549285542912849229880062394292843682745416766972815805707538700779921174399259214078785738893474650565384484591362469144923152818032261219182182368933278558707546162503875508201006260666785286073614830294009573373217336152682659910182685699179655334889006161387571778983986844125978829899515240828972559558616127522701480467030120785669503602548081249656956830265941593461360613957993638177635748858300962010821599728639854022480902573843364089591623874777341062942938594793532776407910839333646848664189405859855918743541238380143687323204394006503014438130209462335882258856535259850206244550064294325981478458126975858141013196729677352254721009320739460101073606993345389334856279359464470399043670621421938488745158315386043115603163996463169024912798400346097680494932304592384852666076471392460629960493994167788383992347319052613444929019000450137268290221097374027263439082098394108573671994471802030295381011972909001930864606615578198025496398699882361039253697216563366100657897076257736252927039557148808737122036639673245420176739137791950381335643543865942697027965123792515291390673219352933895508362242175380005065880717090371515470825035344969900147608819927143646581061227546007064406999680169490368084789272868227551930737414913722322010876067590578139085766531676493242440999717988893484531720279190037093442200795701442972454606289424798054071051579408602553110862710094866093651120511826611919886601190845521756984338888444563953914734593684461731511095276897865355294944416673423748449103235888109840602929164018988581651928700117104549966100031506372804640550313183453949460520319378634249575390664681182365816242200263519737328236711687196426905757374808349816438607778604563433648681505199047414304079823851503631468327145926397170399391777477337314865933453851621740211806581780346760342116774714663734956045247063344473353844033974481646728432158058700728747826723538050807617865673809473712216759436767483094628447645379184808235011879236149925231562972352551058392111835970351543431796121529269108770169725002892375973112279544663906159990375365899297177429397104876066877348052878890180314182945041250558548276283233028588155263134022973680660410705846782567247216289528834134236743297931968213640685913306587310731578354002060174423468841660891135024159354208380993577428221530549443689152324520559904633894406111018797620872745498731270426560215755261893478433021359106573613607455142301681365625743496616125651662517278762493853760485747623187846851977120576771619410921108640939992802175554468413156333164579439893500894055927157706721070191398859378314846333943110800962001968961502341604063095693502564769033840142799832728859019462580554245590221367713416615285746206295973941106595555664810628851869848672568643456104806737979929888224596465139169530044114416707769997501283045918863992743790258481729186869899760705111685467430152859348564611192109989956552061838889998729443407419707204327748440305424715278296800822001659802882076160746457839130540665964166985366295940970439062732493270336210901583306141995509212135129132437797218001830067707182628051212884994727795318486959647715208520350749844448727971380872768742606431882913853314622550796334296424703774888716850960917402687962876257065621688757064545530439317404557905912096322822403244590347698454394054056439444665269138383186476315557013119187545999403334457107754487049717326275292772945920940610709220961866585289167616506454017463361767486887023298953346000736225008628471791727879727505550483466192948004629571266663051636456650012270474473825505455524126909656330411509565238250684760656372115336672299557760649705723629672616799976105663421420555057119619845195352602181157329491665736345637133857943650336558972624287037123925680662461169215348305084812743793711431519135027761190539519072207151696576193671979647379562084422577649125706954584110157372947795178435435353376701371901179004980782575423041439180263959289059628359379243817125233893958165023522383421977634117809901403661170560276359102116758236930299507285301835258164383513000223676821214134620590293207141215876528446130008189711112316851379842002963455910780750790935884926815179919144170756127353259929547371160280846705664318085634672024556925620528181876585832022465757881416855245840059413815264346654685678798955948989441978620103465793612536528218011565899270138905924146389711557268778049813291314080211088932983347194301176692732512243713628394933817868580746369117569274600469270001298076843445092798974605541395565097742336643420216603492321153236071022217472665255761746363430890118711490409018170777472663033745260250319442047975384558998618325789917136634073886196866053856477373102319446717931608728327544346833244272008995501807100208490338379797816661310343166388297431918274233344461582401972205593760273289183881359850760667990175457658426545746206203596388199812457718463155066516917896433416539705247654894060402893353052713658416721052180024583195556789350608717601150148091601629974385998652645946055760841397070701383963241881092992941834378092285758735263795312857762730248624785971635765754657669608692953966055158526158060405835452903400138480285835310602585673306275431376502721793526073292335637431566749255300174154634255804032621497900867150350470070311599548134875723869014920046390713584438688967552244451192360322257952531351085964132292356532997783368404486240983097770299963964286534958951233525630812419464719535814534709436130754221883984217725551048237880159529844035851648027944247893375656131738099346848647326807230877158339721699488532182457566622696265317817496471280254584135296509275370901751071590348154960586666726146392542637326022294015947130222779058291522088268778341915178868739285729682757139317293831810361215936348420927275257151635482863673230233997549277036041283675578449363136497866276988734859917551301272767171528369833996270199717308854690579429611064754463627116130290262738568126793656556034692527581647145372089218950441048807799291045949897085360827654545336191809022358382917725185834165732601302853882539160496531627336475127431137624348013243058051374624590990218364229030801917446655020768619084130408738533685666241277966842451752312036434140377841521272499889048256986536153783548435596734309793629303568865508541985860802428864747138548959909018136423479144819321588806813043791600171977150279266259304608499780681135770380948653058764775087659927658060710160491634624275614971091613230792116689334796378796887941890051386183392121316245799165528934930454387055629124782805250777535602432566818159800050739005968380128696924604839137048788648146690091012798174183683692336491229215364944135083714023848471311222746206920230637976817844099219798296197496364252385015273410586266861752573430840926017936033780461074493491704454224058142779257451122272076629249922268007266046823529548150681618657635296388487120518828293978731681545120240210835018891665101605768524918227108480307165908312388218016830178840516450072423425763103067649467107899787871543719891533770495463956939707715269866954122428425603869772599205884556228482348884300387337262021802376248825673106088484920860202810035721998602255323402574522529383448208551264307253887698971234404549593767986191134221426468741840813193067071361705333499352508695695709886951960340383617891822667838760418324561760285635911178009595038020975291225692431285685337793276295225333128861782767366618487731008435416192733245003730543059835032484465585476893795204069825445221725053805643064236803261233478658065941688741530943804706503118089822976846488750706382288144747115133256540344970007194889263976030410960541510546232840257995872129274021986852911043220899868310827498532905324819617754559227217572401077215755461081376085292542913970157278572105920183664954679301225766193091983681965082375152002120376009029490085422093004184488133038541117047194684281782080303392875866066431578375827180165550697209462160338027853227460827821588981296097743119556596549974508993247197915270164089508065227852262812643135119292292830787853323794644119445502971962746395020257426394922096745157852490835146607033139944023878480925667214088300729872763647827035319936354913405768563036475705879329034510122518927376733664480839852285386545874044518525213026969271847668898320468067294033430221700417148248884129058889044352464748226034467029125047306618242817096361008911778235630291649265201564576275323781238810240459510050862062946056134757607857243863299524855125188505766667271595706994680835298972473968977947062489529887168187025910197335977892348888149047300793489890723535306752446463803217584628713842016609620119591351985279471208739048269949689128096203418121020197842027839564900846711742060544391595241682171284162864717170374790793896332292875648317177189361629778639253101199916366509084833028289701972127025343221203470737518904618484728111342380485933858248353182245248207906362102016683618848016426469191333300876737043968786479843463075118077415445886849677542478493555080543817401328126489014822734162133495384140795308145982179095006439148355443625370080972120659744084702346157293449687903635912170958344175587696920577788865667014264957248559659176263716182564033023734244612785227425187856252649347347410479355521662982605586548342197636535942214430408536594920477553266884415169922854793443006158415882149634686774891018781484959314018971096100682839015441560117825411918153361036602961155993776738024024368015432016515203650899575247772253707590752361645609347357923746552533633873317710423625651891748604542707737884946455952440473865348660839428021604233694861799352915395693518428231870715559017007012647298639179947879367586862692496836435861962639368352664394824210970865363275915107715216019446550591971703308613650079822753404228250586367791297957924975142279471781415986209775011546694373083401650831039934298809652510744717093038160215287003886580287998734145115857708135762218221299607131844403459222419694920321646996378275640633787531827848394139873825559214741452503959520627689667621995096333254685290353464374289736829076270462518142148975570732628140111086585907040935507756449543448551248730483759366321685839441743960388646758668807225399189917159909066049972547898949331992987788332342286095488977276064648706051778452593282616841533224949254694676301532594914086203643530703045737935550348749291578461632353438531389425778407703496788538795629226753437053099146439523365750093527801781819400428572554077649326298746818952071203919848625492053701362708911752061049796681011939510164783769584461256861232494346072162803181167508865275603221207771229832781675735072840557412151184617467745996414661180713417728966053027239055848295440622085488757845297859942425684067381959480929860765753897421255692222757050563280596145592393498186025920188487801216043089539255771673865377763584998757092143597027122366345281465473868954006556417924013565084605897615299216351990893603966441923450280384766070416622943422197209923945891482798203701325598887876819445665336182906469551917251320776827024214346347101589412536555675067014589549546694264371403407418566006510406058371128135377214421446888402220123358889418623380621969147220584207807207793294223185323703248840761413576705518621468173839857228291873147043301025594062357700340143558248793700848949854337957791087194010743007604363751450321178637597212653645476299135454935470617096798020865098525355787169845245679183443938965424019830714634775388735454293697843501109293482618404143040351999744577892492672273465412713440142650928335939439267781971690899612462470497623591433513201940863939285153532186630767904679608289880795086858302123149936198179340764257163153783157803469107134675458770889790370841123156088278825589260367293832427410267707980588760844822137466195232982456278275057697354881865774462432625342906797226944214795168620162801171149583871509905045174387283970444478358733585412088991868163068811511666011520970540380647649535119783289345906356449547555810116700179941122771229160356773485877422580911197856593645982474688078388367142715287922746807645318556896777721306201608593546744653089688977546295902885055276697489379778744260708897241526163324269203475866838157740877572069059173321394714834452243335230379706168498002793592628718261300114592316244447773971597214669223960117268208137238947697135818134246750561226123555872233749846078587038090593713269758334479888879052342047728797158767189322173866427826833806851567157027261564714796240388526860074711145844101741097361301682405033368620116718664541872839750033504994916222696919324642654839111898021786855794903255208493470083047756961126410899863825104404540250205551888936091381164598925189096410927644183153459823780891183624224265158244383033980401627377724476084405901751219785083005681941641321975000192604068596137227738600651655074408206812661350213679697432625792712696578422623156665555737075036191975121131369832222690874813087042423408365305524745625165835012434138028594562994045083643465811949416799808556379024240929109352164438008595019743169056636088612277877199740571011987526451208098508691658691437484790299411108672565911730189842555192838582140141155544824619335405555136571228429413596698217533113821811804495572566729131332273890685319717963339425861159467659638976453967493618038070469449837410932202261430331531851552301510530130924587533306160816509917235944470036775457859467101847927858647808826455958542865389989491705665110068755782627394160849796406607678954428322181063745715650485761995952574618082417662135070608509941563695365237245119018450488361493251673619982589978239751408406578417005427859192577108792583857580873871966793650467806203064086542082508148522447323276120422137730399114362869268495966761420729003146109476549092277154673381921968684641686780406669123315066699042209417220495287921137937501960591431590084965067935293504100996998923903429971345673858378125658173952382190010816668805029032055693858875574712816603638591671425023569561597416381543173256306473618552447742540592526371391667714541066323530142207930371494231978554135191942123129080689181598797632457863193666404778584057808799396076473777286513645996720990537931579766205226548797828715026420827220318975549987469586961520358900971767776518056666525942926813456888332558543745686387230014069726397831276357601708942893905833779839002527315060029030125255061422500732347090321271832998855941941966564369534462580829883037258085261943278216125461528041332641859849047416240169591612247801090080540060050779023275753768422400708646957230659065418634669080806135789541966930179664266855836079226627806102728892683870618177382368494992755024952379295689267432380108658324712565004000260213497192771495201620121853697589889760671663964845805305268046847739395216852505503639041248123966142433743607209231857470149398689291241895367345180967558954229652626638699477365706279108362213515028849647101320611497424140341859813416579371147822985277763007420983921444000010205876131975150761029280275753163651243698251104692787629288021022272930913104316912878958368070989311373208528662860416502093341272008574181131581627355828499949106175940152039758124317920959508535154546590174503316679064289980837211325942100309905125584483927651001226428869803152444299781121053708259897143454279585241034291955813357849508732732181580763111990431692346966512504756240336730728197148611177902214088421965291681896634715271370064657508388311755851992400214844252612827839243753109820036493861818728894886403798694011839025646544836692304431592222204400142099704671970766181511956875094995451008597953717731279321305843096111964831390148820566540444427095295999238102998313969158581710875167245358437558877476795023633921265609695631771007092909944251637947945998511144592018555121215664834249009945834413388083495370864654227183415695291686051753524843526023643444548964355551414466084681379427276452390685636804797871468850996607312928761197810713520443557473849180827639749779298368007092885786046702117190790768172448911807357574095798189818847965744500909660631809150181557607107705868418382742755602436608768968127545366664858822044640620823407365153682605235912232286324400134358085222161811607360235819100400579955706779922203386447831330400598354774234684586573591678796152421302562069472451368117256796066530202808742645080060952685239822007776409988531762192940063268009126597816443397463875967782542548344193185281391288569845740431137269579497676133507793229869644861205649540014391903795299324936817226798081777023319066584799269924208946015108392738172395233024757600325187289577012828017262957109337400904226867708742098776205955151708733925212903460881772675493144471421231892795390267627197707079699880704432861357823439394085882374984521275129146344735898445075076300109560610521389924831479268497493735191385700459118797636929048587377321132203698696919559720460453246905098449734045163876416426937828093939755122785892805233795634473486426279353682033960337876889652574525448462092720565318149933480497466962519386400769346238110605297366535168098662348002479788936501615192904217709602128711070939338789811226264165716226950899012868961159336221540562556004617976635907277936106118659121710878766407745388476946944191386536974396365632196263881434637189257717226525416751138125804229838683374739110471631717991948666511129875088395774090258298918905700094490788201766655238759307088336189805620823570542524768449811776087760865616924269526428198038693803387091381544425552153469091552361887947204241001423603165641666228240202259394481513098776716141324584147146017262306210812076466160029360551619301289362629428773855415359895339758437113957109712228161280596382857244713983059164807371574997413339096247341795023376861406143088116324739391693362936632304730817672468304904682740846652609864929437272913004685138022200416411169006495105554119556323100597279038993410991452981149326613840412266166568442111055585889202661370920767833585337542503278995691285959500366510973908100228633413195203021073090549430455798170842827301166698706880332925597378679127506704130790782153381886467408342239469539953814650266634835794610661652614473339242150165647420988341730263628349685793248596283950338791142615332493149945125200885772681284459677299023575272590143069624601792800218967858346704308369605989922868057179348629261178077238565665509001272814889627997827685287202232320715688683766426798496647895408649330842659842245114861078505287169409848507137375931538282745170718851845677332836207936705994749979094684486319834978906706081083959212142409661331039010099574052526478725441666588375696685474804994243742291038579363256740135864825265359706969369807938112669978438680867666552464271935248329284287730878614925575379733858066932531649489533226314672627776755398024257906778723156916388130682865770146953283307806926694533271257492689519323952727482692264679281663046826324020840016303590500181590625869830357033423724292518460334892751080632316748893633393330357548840803892842023017451476532540626048426892875594366334473120601415191598602537958638496915235703223484599687937887741367626629915509395977816562240384470129036116451023325190600232302724365850908928915982788384927264245043586620155695441039267264882100329139756220399715047677677469748039381732478199971218508514532728110700954038686225556757424364852470173635607306210258773754917185084723020304945676246472342293892053927220314791572348958332910206839884454830243398532272110483405248160961109910939125190474384054744483419303639090028747201990566951777193627168638564376160235589870149678799351846994438893663553985827794100383283694952262033641218894226141917048961686323944083926527478352361358762083585512117749932900894736713855632601255753955043060595592750479536565393024684007786079709744861509690003396070690089920792582954000869581704760360007148338512065719328582028518845894871836478530650804306935504630127320348754032261152659193651008163600919957470577884690668138911396415821600395215931861030735113878610066850762921981766529877359259922602606195374584505186007150892437956575320195726980744303465454388523643243215612193832838499663309857643964525629613912550783294398959597362921721536635109621034205574875601072675595328194405179659435382046107091997818099731759982442785324716666646770085614675908269232191787813440239749419197587543144853268199684794715763353896511828777860067051135935227783882287205894723357014119728780182362354995176964869957944352860341865128493833375075399792965138758523158435953835737585056255312075941750210776428417793766297103528186231745417817332292325829041585512346596771496409070719173160103697829651101861448752516066091000979584979906375155074242515530971126593749160765244008430967250722444466665292766601685791109135513765064421664246010621767255201045158879971506697314475285760314389848085571627799938571162144724525785093313844252618200951054454297290151654475027764281179400903990647788859517068136018398552491733730102228601391073780018711890796489919064579989134178304556284852731707923923440126459394188807153660502554918692939146828970724094063914699005668381009341306125626007520648672275968365361700480496143004207756561306929395931178466760900482279208506642766898376580994323823104730465732301644848718136386232570141913377625282714102881059925829219076402944308509733331553582919452283308250236378861705921377176403532516072802419141311316805331161666599386599630220768161160281770430844248076968814482085263429732686458112458021335297753152509296673407047297508249374846087262608423830392473916055275544278283510323121679541537164928076538148132545206621969256060636305794064398697657095564741442404510880515559287461878954476946918188681321644929998076531240283282858867214054890970948343562077220868726463333499326272267212425785063989587358805174481657884137137513548694114117329448614294045143873982437517392472994352244340980808170937385140684888663281639531292170789484557192552056612266847405034095859790687585469473033733085576349145416807578372812226972544114718983193155028518862584252670036021713483452665388514052553716508432520278984082876106522928788947148430748505112965480616174024486140945064000998846616161068553253205497250637173267489527047795349451203017239294746778999721517420438484725819917574510587514431830082232053445424052323894104290123725804192460402070916065031557748881709006437287938270615990821852560111897314875940378481963211864244572991826273633866178499511855125740091035096630445589689230742593847054837643118120807756570065102866360886639372116953331674513105498373726129243984988574147415816742140633920351933259229090129700240470707868887666076092085537778411498598417010251177137526025824452790974536710087196166802943723719829826274241236904038458936404844065680994853724107183399995456353140980071875166499959942952290523343671084740896848373257744806356582386479762054020904195891808782022928035927475953930449830245268198821953988152850025538309456401770647231751633068312434601936433332142631874123730082769935957234352301145425018521487555290240475665668098906528585285767196731181104567206238117658832517364426484974216108195220499959512806710514084341569344185147553824868062029426672364242104502145686573168176342180848034331017331640149768273909260459992684621090758822772751004018763885936335019446037623452412905503496988066976715806168054204152764196121236296157816194448418000755157525308920500944793259683064573781254927071873242222360232897165033564533278242531040875315499338431028139120232984379855382187157237417914851039112605981473674953993485652011434042915588359388007209555326467631132236222661146691645504198601319741032942660213457198563537165843173417430838794291608170304824153904113760160205749556553815467538989951852772537116620918919436141680708796647367349756263341874308217465532118130826599041945690545928928959254789575674855866530188339222555177862053557227887114429303242991474077598948313501983004988162124913712571205163269418010104782485059548117641881877213261520732501720106190602134284765014368702576743817641360721392208542117451525683572611621761588751654808436555654978723298056579844307926129827317119006773711833050670334777390698148752340573345977636171377248532218700554289124879839531158158615368218100738167589137727346032983192973488050637952020648668801723884025284600019335992981043433432364117559491326015781381710342277208329162252321664411622231702347334491221706950066692998281645221746776893085446343863909091760472656374141761485219589522310500275543009829247729806175314296692246959152947346284883930418975976984045009962503297697683580850409224965859341676980327856163788640154421437910450022111540002710350688832852482884600474855891116679084286672411468864975333145947987390058518817841059791464238646220538905191381042595915548263857499465200065561370932795696768980631779217534354095948802410192093602301819623391337432824037894141112205135898826251054974776027050949041011764300323222342573580315108824999160381209517124531102652416953801543397438108419309323332972314635017076089300453960227255679596847364004321481575852078353571401145975401497970279753313504885397836759532609454776269632388041810909171517092449103053327887161445517997974704723606470120580528655971322449185764720188071480812431740216202539560600122631411344903317118345958450679103515917298737192369473528082212941473965195416285404179775125219669971868043427310618185979765834403994719147984085256015439652613330695680094545572604059785920124781627712994158714236890643234794245741612297212537309926032491735094825837882527346686496043307198284133216351252059652731837439807235211749673683684679262185318044514717865214152035149657398662727120652742829265422581365431664144607662542393500534234887218973870138200598006740829396237244634466183990360002926191219283582195274339534484923484318942638995493329230887102615320509898730909498897430818380392619768273371639076780776312645497159742874448688693229485815630080811947242129921449998766981780239930774979589079555335033924732790151328968753534008771917695520208176953387220189396037959971099849614143183536377230211491499757825145013208064176031135796375755135117946264990272975259487790489267669982356562746065098441431752983346266467886376149524172498507941633301411839151978877623771465395170366987371651034312859022666300087114081607527599225261681236718288768413971670149932843717151417602554534655656572116298697632803064789089935861657800766262752160072492785731194607211695200081642129678911734688185067148863938265092326580945279031438042416730546299584819806947661089384928714539634846490452929481602480850990254016707567367810344920207735782637613503476279676843602731985658921226434800540753462339487236726065449109892407229500585422475373593844605241672870019291023482571441367848230872022301737795073250754244772498734999293828853166681287670251624688894355551030091053543562481122415209301782011861287477265792544459491074476848459884511336209006898225534493233277871850473540367107263643153391686321235085898618685315816398803178357178333230176202834224545775396451520683799410973277058243276319936481823967262964547212020062923456057232104665396557205123520064255966171356338338208566807297782726213636032787071403280601383618124888952965120193127868738083008958956436449341165565643277635173760259165259258346080550655184862482787856208646426044904751894899531734522094125714438598731220658025596914623183903062321979476654509375933605794795121763755836347648179947570798826426791086470815430664667000762177404807186324781251696489832172262746843503057805296780699848533553863970652704718387494944149924605763914811517453451397666430216852143800352009644080862145915587265224130654471588057556928124467918626470303531242215600046537630966296704044357072993201646036448191097768245967461932565305136730297230558448938918212300907232645364260720716765983037334034206938942047135585463091951508864171193146637584219557630762939149381151613633348443833242439979578325800909133811432039374306958791192954085313199212192330368109307151824811014624622199609426284608870053244405281903796342964471381050159374367970154611177389948193208233102979485306642769819965740738636062781640471053593854802497503957517332223690486100730174944190179314867654454330031184930946608177073838399580137840981892870216041500428691361956809510122289527576728860855384104935738963262938422287892874210616070675173252911193259643474906524118700870258068246120849351749687623526010462916736904341738400892347614641503150873403174309322087213042614937153136739288206232836219942953697683051202445905579908417729093420365766965544519409278360429273370823609554701303865033497398802940923328705629210883395233109234848351987750331024613205421292907216617934617877815767576352073731421875606080588112099811109288865923749930607191412983845484145258018396205064547964995059574605088312374846505349870452658165828670684707128004278602652127843284928816379188503112235931435470300666839365173340794465620831281089619673869084622824397739097655682535969895929132946372815646438758766763211657767003473980030959414398978374455953114511288586539448557275788414754098162477617322022541943756705802073265269758258980828317844148080830919051973665295777738994263256203032910126168710983951958744431742588802958781061554751876789091335947954976287200119685608727408208284773261390790885586881186124779316453474707106882813589040550396632414565745258286205456223311539597249441892892000154930125242276648543398553516231418102877655813607610900077616590749952587651030496362262884015710392632417032285156694823721006325969484244945344663921853348320305891441499652123998858375754503342318491877204611192049487192603277766821243923173362236954732464512309811719436685822346005496457636423895833381511971038435362884323527620559450364882816787348899727392661485731976959030617370893282151617558272721115935301827689603494815147503093751312213877825548547216128539095161104416525260139627642520021853384610962801615448310346199495021057620913679518263845782872710038578069841975123425240273324371631101070793237555254681840668653726271345915344192666992004599880660871417140253799170450083366398108415747319821148743395967463307885077014072692373834927167491380942231978319393791339627808316431352517255935228898131519415722876048201757039579854529320682614077668557602091869981862276614108756151795891660503266242290992560708320838686089247513284605869121311268485622421870577537698872803101333876536083825031605353573547116600261867176751705621286007047787014407997047152787575083836558701473820861898050976108981437559336826146439765574301391564719787289793825120891139435267919778016914400843689698442586448862089531151363844149504236556703559458937992864623782934688195965236704018045760611948847461510672542832424172112331706771331559813868431839564285248115498176185949559353452411612934590993900190422287651621862770811865978427132167522833840573900604427294672538945114187576670265381247539795063010667263808041159097340674628524926132116096530518253992932579151990513322062684788065391868409339591055086820009910398530288593177726131753847199326671434500772801011121718281757650280105291183567417163117774093834577493566961718640067251499926479976553343996259546188002509294813575172826565804418612528587719141020119884819863383500134381434501946678221965933917252716288498011508782861969885736315875054761213018608975961333778637420268393031824374765947383945676481989295098277814645588364626900521312824187419833191839426291689742853744247316829404926349491887450630153928678829914211709439212439767868713674930172075555586990510508247431517704361880757024216597841735663767209789269819380752991738747943547522741241535200796404410334789451352308898199714368566450697091649346557163833846619976574927586536842169006996138180572862538265262526952811476339842521647041330550577449066667879811607475406166457334951574672134544549790673103746398829157626710820585716555987606220303220804085759463547183935973164600083368660989942832228383348535621073325969745781737751938800452004958620563416312336226428508824667207798767918162580788732877225940963333291680471957167690519865726160396517838946033472667790976405800951856464508163404628669211377546409840780040356513436464200682990438029606949793941306809221812021423139215222985497077435789062490156306368069155124086668001457490122293554520669476006367702195862331163525710552629744431297048545015440698199630609372367432015488363007894946281649971691002553604798296105234947916281430336563015046118964431549280349571822046881436430103195691279391782873208294648874159439372782301750843611691475702338887557134625040288919550544005163713107160686103292585221185437318665132648464559747568932138669076857506901535643474286745616176680508298914495503317396075677588820821860405666131471391290833303322356583242524583069051021029287158909577054014853286783997898899936803369035019187793060400888709630972395460981750201967683014276015866698756564257823952550064150435756878934158203436070753417968689476001882622490074644903117155918434097853446194346610309702263112564743417965639445121859034780015472772109861788775305876069909079547753917303758394711836236417461870876210318233608839699069870997533126307533339022413999773525334377576167671953903679444434494822775750902952470656464697580111682015831810546649321347746174164026417084948118589836821219889696179386104201588323733882686517304401609876432551753437716214139852138398867585388922646027973915573488674396120710492160130704167276750487187505826723582780064693184704168099214145535982277278054775826191044656347730491875822375441417187958393692425993288737970941272276933819776764384970086468779548906259133429129751454986005845400501141669574232359958340536381884956160088620719301532549388847731615215049361246500175052402588087450728911489752015521500199880874134400607579549821778038064388041242861349119008435498049176351371988390552507683647734773904649957124259117235641884214333143810905189009907854054058126277511953145880341371244994302475561138456079629926131630632047045827920435881258895878483264316069937507601561028117478667397655726702604724049305174036585462455100979991202416217067931043478378167396332897282606927588804965570778860879090997754943802511196290981727140932850735503321859152666008229012665781099250467467895907840853781285581062023136621883672137793828892314427492097510044947147778640762292410771737624863690768449511006544742137616676136906305755788924031148583977462723510761311088539712832623147516605756113616904398600816480129170649011959388498027061796566244193872466295047420852573389408687404437845936577470354936580633264145458997239647235934515623922679633061977943616163851810971583979367287471389642479715501942567343018939450927029892341636472093453400904800295499195803828364448503435391133722633285637913352809379607406578560329268673834434905965893236365362099087141946991535886052043675474718887408169091505034997931139278998768811597083411635162905730604755239182296334376278451454087437654373558578790797633720295153346757632672768195303229438083708676756005109546403022426233063679153866694504336477320638397953211249072477661554871536532695957869009425654227027026702819884262698637731857821795138049933760091059428383649106701566797926180630464412007286921863538121985587661533416007582208461745475213806847170480338155207460503061743166074905617296780270265427760343970487668607717245850061669445255840015486195661122984600976682687206665862475661266446009749680950514025526748761863558106645603796162115030928316160518047921124557115787882644694778809047420171308194646136925695001963176027980249329991905629797205663733406483646714832122036152854253745423669695342888253111766395818882794148450932139319937405694993860684274472454308579262595481559620820769877145912394748524175462205844646969016231833725197930256429192898470963745783513584566470445375952887445733545619191460367682205243981369048390438063011291978829190343760512267756464685633293406099558034328053322636397023409951289773845464184854336683485452678718167732736885409278926312300347391289946682078247494909792794053387198920457207719943879008158243130473696800916625717489959260913684341750502188024205251105434836478043476335153027604603074486132245078245776715670656441399427092415569087402849531482569853857662945411157491334319367955757223082637882429298940671270997997279031518560434215146290041103486242302911344663685338433287101199045722729978187494682713610068490657349294887538314167964756547419367136025456457687989072675110612086608563718702829867111471361539843687750528807715596985990739085069722469316244621143591120802205800584541036642337772482574182789833322941949556125826585787168527782001548568965329782060067110620711455891229037424227123957588367390943663112539107973552917225517704170089906458277259786509848959111649303053874136893114855617332837768742021202186076045999972062581345452724470217825230235994465934966488977664672855008022668264987233083277690769756884631259149619113195589763705599986841309340990594305307838301574607697692026170895866980848802726522354679330460365250395753295358276997610191854242773409831112678353548283252193305160348223910008128139901698189978251272076484634827553561218037350707977941716002091473521369173357327660751057741056117924952384741091027944645595766819271233892487262360285390727821258544485768172947978877872912277723553689545879724247562147860806483854196321341765285094592975277510286006107998414179544908605303238737338754808544351818820813913860074210383678902652261867302723651303700713519226513838117243962143034810019204220086138905872460327903276212155741664196542598661171557417392734873368563080670568220752303742625491658819754153707060261066681506470660286615202426752929383197709621118596786754580244926687188715652937841089644488460252541456478079052097568028944329487810559939246534430577785533488529219990597074125845866339566138376150060679371008817709134802713123075580723134930674998794948641520113863840656684686738475475072861000414094088033533879398606764571801299321790115261503504602025084095390595238508380031828461171544211538641199439455391997061627368180101370823329776955600078037102020001678844974534673235181802387733864902891736672631901072299068177422745423133451834622760369658298940608123767142671466709274581612511207067696768628207798827423880217659073871107528395628355047703924631465455898577919809315755609483310674415443540210416959981181813793672575699112520496344040904478630919694041580804101769495214156085052088909956277218785789211111243887095851348731191779610936749966656446608576231753928016343555734190933887308597811574446836821435418205636282815666950679004380469279585522000206321792417678977828044960373029436932248600563898631466249442814718246643816849740614476111976281224452074161809583481786719583470612776271441683925002309436888401555468118137047578593917474012921706981126150634958424959591722075704128233084042820041500211874241927327919666199221386340299699332478008475252987673786006096202081136978858714476264061149412931075357862555941641094687428504719650725797256733395503066511537062810186137467052965596974887529516207126493198223760843640236246902400359460573077750269205668525419281242268435101876709302663660337900850768697492073121577060763265796243206940432581119901336556256440202977864835726729210946292600493235086596893293579712779000796436680792248652713310692546268957413603918692412301953644867306972164081665952767459436508080621671883105027429197688231559108783680815372555895706715299171661721814877276570838632591703456319693857677158267505719116650102837368154668499449419907814327022869376568548526666880803004373570771240984591798438218424412048483385061152444230357109761649908409885597155274098737081034892655265076707665383672576182579975831099454831748903048767192441613327140733153276062169870287798159316100741219631536182749405781333574992277944938297825501187737568915576551133771697287107218657474875026410275768384926410654579860188339944572640188016305564208413350212737128463725484344485424233438718293154129192065003891404216170590446812110003701365512801774838926274260853278175259645543363939183640779314696114798836294396081038547203034539590460601424026890059159367349785480958043615778579328273860094482593786166963303093402837019595418690591984415136809949951907930607079671676569260038285543078259560674503247057160196816451138414985077789964567316690198234958343612915404672533672139781102300570843261408634638590206652372512626364439929978073533587387148183839475127648895492382277559976374524164245783705913232382414531458275443696354740066239303781459973835160551179728332605657502799640941703948668198415714493395710139897415355942067960355428711677436425088265596285578869537964472631510897801453460869932625402811262020502387830678842217710341246176258634113130330843700356415408896396682370608575228063664604857744392924863386019758216319718589144349582711055869334779449522750930956569380144205891976412912954151427695297124629892522618583760186596937603995468134770384373420208539618609052603235259231700966609726033544816597066674712264522743946294014700703792774667031105382299107819681200348861031219831169494497992880856832280535835675220696426850297738235110642390663424657786813824633027513896251798180778732145314540351072125593887928451426618412007141646916048970390086294344174890415157457792556434816146161025589603263432546897548155518462871722162671003310029352699794306420475429229163518785873703469705895825597367812878869899765026260128862149162618548417335070600797863785832314118580974813522666044435216175433771536508148639323184501423816092586302599204291577609560908046124129336135855028577078751919412975315314109793645820851843338411748743497027772206737711250925374318475904253931224684369695814527307615761415645048741157687309740774393805629449884227328136880909971530303116183817658944874167364444228673883076914056646534740783606836011130257345410803474154007013391209019675859336460424114725327172485311497360706574175347686263064334149136199962610257437711174744033448303565708763723749163605419449095587288861699082755349688494245587502904237160633275444533667587048281068953483292978606918301295658138545945781988909434683944727177852599838294655333030774600776550906475579754955059835938860093368110179958547486114804272250636713644421281710083144975785363765357134844249842218269846762772825202662393637722242654655729651273699457534283876300768665138513060455627941600765857362956597084840284682651660897575519912539935685874887500256851937047920829331280667392170473323463782252814212376118090063122258094986155027560622181507394559565848484786798440567446929439717463019716219187512089899735786108591339587671274180795805739421950995104508757493605421378557404324471086279401336313645621923347304552374544509543146328826692750693405046934806643345063067384095266952619008221740642411267331857380534620468494173705135037213890484461459163956763656969784154063999599772056617791347072040478040697578221304422718019747506321361677681983313034993787180003986813854325741921333160791852867633604028342596616376251816307915069536989046578425217593402735093120854038441048783583490531511111424508425917815188539989324495735407920502795881764287111505557253325999878445266731037507464298051280821547297987743833011281850387778059889296607455925542479887201705834504813836476464361922764014388814602172127121484739076205485541221221358965359034990764065413766821961767332470811842542416923836285726160466457073594292207002706380477225668091231133893801608246859772423617624111580178151336399986737219604812789796283566997684199032268534955089225551330744607565185381422896642140652217804622656348645513065365978213622062059735981266241582813325002957504697836798044382395166933637935882511974549148588900461791827955056863859895555756725606781315121990091020643498315492865582817657945200085865976094664257243204549202051620591447258750085380595599362041630114987101370948020780258097582305874899621515983267510138408001829938774041407344166984515456380655415037517000280243070830201912363024283417061079918726238900470668842768151198623089030711125763689609988270058533316225831438590167610258721770691094223646833114350067908134219319189632531240288004941811906055554658184033822055403889170690350618357610989173404542395048109352376572870485707104998320435951973055028422379158459281872161322297634836178286420798485566513915070144210561899778710854954603247559534915489666095252702391844983293202425563206187443039936836574705228409624044310488798866743653420313547655576534711545566821805566478278169527561811504797014761065193182558699467006562010809064232379011140685661284630849825095999882227419879299651947274663891745334432198481031037593678764723890494498007442175811468344814397092423786110410937411674889527103584479872402607931352494995041422851277499223529447163169564073916330950027863566653763952274002322993237238411197331363240499601826734464692261141580697815294017943425589808289303044243699003061950404004392758237065343300832711786443134144018128617513985645426653111204113681905710647717258934899257761905375651294699518353351071400227602789002454782796300128102044003580912730453263300677383162659028473610919673760521046234585459486065883114437506366354349576323210905539878288381890889832073863221475546372795846764262987858824655645966510941762845493909291703411507499338298003456239221624794728096388136143362491547812050112192989429396552200266239176456982175728485709799485933569059967118493632775629060234372846601022977505868868496977170932109015999257186035438812657572974902447756122548088627380015442863581461964050191920996883283937718805115452516257044170784876554794481361490584903779807973438027355891674375774042103298480130522192066171549184743689456208435230458715044320267065250772115743269388126465194280508596708045835613262827102164898487985501163004932141133221558124098632514935026766371038909498991983675544809255173673056863733046266572073209482923593630431034520038862465844652640648226332549974806255659453234270476539893017313962136825271621066889803696250272084999231705230166356095599158971153463523308398506878686727273831849857627084612791963307335589275148207155760123914636837334286202147740038474365107764908741793032433691040464940529254268164613131868772270849848921671366355381891303996993603866159968298442694201562116255340910726148923503592867827627380863695726177768007225315996140916243790611897809652535804474049191688018953429461753946623509639481722115405473483750655885664094354046564529927894050892922803944992992554741914295140995961027076648593633552192279757833678609897663394540413269825858746350701834894240930851910448932162541087008224471417552688606702860251565122290068609602185001559684729058357820872224868789084436547507262814301714501585212690978393881403517744806650373205508921752944326606348390633129429064036826020517116721284087245782811444883959943297115614624169069051624067485312365735369959845960967612462306712130832381570285927007547445220702050405554529114637243109479434395003977419366312666053893650152047745346350710609557778062453250885211551892420372544739514560332606662515069137166100047005795993479959998094866649498626161749579959644618938987533625152325620314554491685517260661450446787824115980937742517004246362950295120404382542380841570886809602277538247617677943226839694914539577521491469450835236339204032095093855435563729979690438317846710942459711833697564163425839429532451298339947611306560506578362486353032499331754334088551715462297970204808351855571279645976379257062380564164587808370407810315897632674235811327236672191242009657702553807966672823801970040826532969221749210041585999359349739640758542401594835683765377140670449088485487093080428005081654428901223987625567372760806552442317875707012476398791151691497193862077220742338587581932496276413687786628384999967602567792071582231085220997061330935504318936487275264797831458302379436739588605100093725970236604608733476359910387242269055993258624279808416621235354999048788909831579063740352369160042158350443422702015744910647640411689783397944514932436743349225368640487043171910050735069496525836020145326342761951116308340143445308341494315664768315872389053503680718329189653486193396692218334780329769481695424581628709848878979148842972235954621580724086343607309351382209455657691605073372934106538534615993883209850969821573147264802553590427384830258837954952210464542224136077251286094268747325127097108394940456210233094815977936245484910489349547049346891039990661722461959647732114378763463020518613197952349378075911672710456313446733500376397424770085611543377464728043083248421260304119259172547562813459875332262989077805146580078937913466852895797336522514368814257851801479806440075665291195311576018816718964932540057616049109599874386221182811436670889636211560047851790305464069205936482751307301237924239030448057043077049431131712633034900212149422349901859144783173996803419655898630280046593193496677338419227501101469636646397699004055617558366540369623539882380024220070656714467778003558565418444446293997385971103328460573506295846323549533877281816338148712404974739334290372710173867085145524156766624048759354148891595234149734512031557635246801117315984824940426379143081887145676814540483105055190658557146582001120732282570503425054716345178533809477658930459514845207462533448011153148332060318902848261810579845291534728796838528784618915472645175804475480996503874948789532115090443535703958389795741489435756117246895082871609589976960895406436767135670400640669049245984527735762471913828373299129738625646562666732520629614535027846226669464438539314317899691737991851364886850860145487890673491583124053025032761139214758445904942497043123994243366358461760355070917285383373581366782704502676235701397809953709969207401191235989369842404426782733037275905055698470542364261749101054092047836527568410276741097473669887352746033047420335204130176728252813220872099897470434840820587550267642258746273228227560475229992882226025233331758940425084985216977834104625755808361130504518909437527659584312558441642290309206568481198115590204839019939384488566276530665438869030639785498128279331137033895110710902184682235841095483304378725630276287902726903528904693741614053337397934380259644378283974063950105528920278864152341363825055851953829405500259047188163656101127933176782192864388015744064291517622898335910797494783485611602836263642438317336438955037690813568361376486512176038372075153571178915773154994928227739042159268540322202575239662600322159735582806686662978884456641787779218529585557125873642949742936119373008926878738565350580501281714311555107218658390556183663518436365186992736099701699438905343219642571227913640740020633948815839373468436826934538612818300219719753197358958186521264259653741820817520212824507773285073602342775536649424153101415559541076551434380440298615740600304247302759612488915723462176497164966057803621870887043545966437824597895287146903590713945541336465156781004718492316553245759673163046857650694766780917390723893180308143252300704070143376674104004833047253446515687875381715812132258649691501234421138334090190298910449886221629264915218622698716948698556064189974646775720538874656298359187653325584355367315218979693038020570520663866872673437815603089980326600492898770877812671130317048764313935050336885929546760107741873655423044491164777071728040231566931612484899702600247869755988408428108362456042219293277542409944579354907256086929579512552431798199412013101632142691521169509741419234817105760903949034884595589541681833834261603342262513708733149325796183172521314050273501465590688340253366397397280835107979462544360270587429795478973560822955678467174078600386062015001908568467402392998764470243900935058713451463539163950460305805937773072735474424906487652928816201977090779684681629410297179076290812418733655791932016968044403746405525303815069195289425182381479855259554297237170994294564474940895557184960530117296946930746402989030250346462892276561426145588661509507424956226992324224908728457852710393620467484844479883151209294271514120340688695286539389437435956113782860453089400000014756595457839627888177735269102449949424437303042705816539363656787529995795391850757297907440246932749425590667646092166903175387685754093510306206384120404922129038936364767284300720831827862900259824835230644709137332811808341021649133755516679185753462000809471664189524530979342916004990867361036471014687794552625857712336661177003339199435324835165736519027647509348083470570555021262838935582627892262013439031623147489761762607075384695901131406766343478386528371484382119836804251202980642819780308076865902065138290427012721682960677653288093387933527396609982739379197724504164049893686761523871371456014203776140799563778179006190673214620015039651291063548018978215431005002755682863654069166894338357497962519152001729589193872059556253593869072831409063425194902729176832504272694353175832989509635910606674509113414244918867697750302082039694368152461093823519293747239634969000275444634093462407244339785271202094748447772300458260091717298540329031685427398291712290477087435915275615782168930606708032288702825769900367961015665419888887372750203493965173060550601182336793719768549351531915787257948887146701041616783029623886503940912888850440973590311984460442527022371849003869924153658353751732192882013210278863186509203900358869684636106752919110094486749276421678676074521195704221102173283298075142840445120319255172216496555350767402053310899860896596633350441159513155231473972105815153416556642769129564602917848700021673340279170827476342615601743762897770186759773432233032638765394144801124304269705714976207667969003322389963833852928817855299421480434447734899036176191619502172928692037728799975552041934110846770192145073508035617266831263275055801810384414472331294222328341332076456394465156123778792460567597979371567842472261704107645127105683289902017233161995581438624013546721973677992866838483781481453856369163194100977212170362134457612385773548877597115805942458006992984961082298248850338756118379655789267369395831992336893900235585837994620839995988028304699852520055365456694946170915961200279116429400395214511638529932375598377300128745923085864193827876057616352981971759907606092932203275943684926430979941237100870884461336577393044043947985177714733292540810064327839349794325406809530598063963143697592012547626886490039480383015739769093694617152510961149220837826400390064250223877158982112960092684290127615376837552836524334831020538191766870117721467382682316648277806018417608397061463404411230134620264154515359697260222968403876512339869424227096355704454974665560679674419890737233911335273399544908737408667766559910363625805292235409340430060859267633802831244279336227875039161706119748888642747085867643522189679516198417148446586207248558023422900897402825548343896956889436683474326144508271342785523375118534016805959911366011768263449781683342014626672937008952324898932830750145451307297170150271527182801241515891221009844216436079332541793701758042125395898776364576228093838946045707294553538521444556681963673625241384875912022140773378234188221322315635509557171777512833722660047679511691494707307523881112534129541119324412847380473337316855127186073542545393246730478528870086049820348449376911409935170596003694205870774418091582647699806145623505372893586951328007003737100122976502515068409494437699358380463458153283983238074077563640044686287133296549685445139942720666222924351860652660474010235136103650918713237708614767973722926391368253430731932280606550482789378761564488344962891709664356907288922130765214054860048310917945047801379313885904276283387099777643496127454257561000295126681236846559141465710291704264706444989771634534780643013141170634940753029867706324560913350558046121554735245997506539537116498965967578485635261567731212076578163559619206186359617726629476854773301651427197769152733665294258245481927767394020861422564112019629999740619269051707826796437654752563205413274665397719926172235833042244361532747599292224157840871920591415889843368696682988397662651749347909127126902173880828011784501509253594231126241890288141017020430686411502666178461618995313561348416810065278421299273860670680537098854262840022818473349772501550637449756233007905505629385841575069627460239714859763051326602064153162950755910637735684903943096079586486463348304833949936870309989441075487195177481025201384538733661318725849615595410349458992991427901772120543710972413620528388077056107886357413505255268029221504626659520313752015629010689913354914465301033522408751300159906137687656837646637267003998373188401999776681402080639568443957870570386712883996464230308379754547734981997198227185174665530990484420797623972560643249815525852821064819492697928610160159838678400149637523281376144786972653871274542614656860178099901585236669339080787817572158474894074827174387610321651926737873244785359019869676822881693909670949907078858203388330231244364909326051345934802017441826020451887517292589079677020210596514197389368633992830323871994908287560142845344861993716123287506854810281214878785972508686810250057197618594437109321298788285773078577626155290237504431280264366463617898019972149090207141852563375727399719733876166896854199965536695670623401759474240044882873031623911021506906529901724679500731082677895308174226636235715317564616505004792874215225942543328455631310220129580426504031280536615889233243445667436397451108102143112065109308144797395867281397258104830055075966789988737467397084056045401687631278632769502786650668771757901317699226095054004021205210951133837963380167302621897340408383976952240131692938609181403365101002188358329959373911111625807997395925071371880844418247627833992188107903735170115034570036427057183567628468111589315259033477776616411910593061548589839073710691794505550093682265793043825510978084745406847488368327593752712325878879492589279717426750473108129048401965162840863351176155640206436578785478228806580749314897040852039270357570528342246099048240460981740183917977174386283754134738821262236393964847199686998611245457947511997910855670316949763855376882776140132923214102357690146660270866056847553351292387198555105120187323088675209677589474456021033887793230286292002084606665353266878908251805933779088128275764213381297250226739884581834717180597112779673060897450661665996093353960797320730579183284618037479127092411690820775061199286187878173881095875743819758936046864824732922234294182047067177311943814548980159002235875394433263160515410549662732083934873499134338905928666419483778127927780513269008450113488829129441537100279656828903392266866572216065349987580359364947331400081273130895858915219216304837993116180841305216803977686016133182523878817120396306618689695133022225167568468364235081983706026368454391014463750251901395440589546151480203063310917037006582997793368039735026193761971545187151326173448476580317202110492464344843315104818735780630695405051263613366172061953626173811072174884245103698636046551669692107826194509351797253856990576726856149229007686221544652610996366592157815707922214210919098252547777335394331816502500890005231185466781634492863181384814275321017071010003506307325411710110809622079733991927487568002769332009334881568271859797282067200409964813335237037901184594388374031117871671916018066845809288556148330831870467940389817568927359987383623395200532147850120181450231920724278380023758646388800123241804384101043352437342429052031145013069510196747681291626873851859753022396925231186693806141815228358078141330828938265679961783843822010115526717259752930872450442616266062282074008666640003688149663926588062300281251467847779993754865228048313479177378587478426052472134077678372933892082056113309400208950173159164804379057089949215250187727412146151323142368799781929780568579460764949469730922292664188643755122150227685832713595453769006511353642516727391525063848607666687900076040089730239716885135818290385580566285071185064316496035186893187809565692183094257711646770061517892811922282582333970292418036219293636300633351879974915024801361291282389102858782651944656933501428865820304087157589539400931106839979520187479691114864350272423849264383297004686660105155289093961184639339063662991282777065275448816818776226723164268569569449753369769223361492968465846329340230285186745377194422280415723760193976025192776469328306719926979672554739176688200793001210946618393241198119002418470488098311059846458043614373414012692243043493230131645232037051293033550247491112293354978677584785360846159383778355680841989896104518369291573164884616432288439034880736530604260377487974667300585627826708246042261101752901524663285119070974445110574811651458856009039822997364644265512496117650894693861454322820877709401768147519388901172568268755226846558655353638015459001676394247346604473686510685022890677213340060049966592897618831726803613828239416909459047732075107680989377808574198120133591670072268974352030735014374280849476405513831997948048381526063403840937645997919931613410853552769700033500275017730364631525378179594464116845050970348976075490948227204667676146076157133504412109508568055265815478680278052631911507478519991376670254077330514201750019491891357699401047995962934176466119263597820173995299300628410507826925353246209441189048882039452265039679465718033047677311768927102270608354752649324136534216030724559558656220767389903775344341460075383657033031507160883541292639420839624982479033106872528978616054738149101643161970948604895146035889341938111718328728892811637000622688769921959404067422462635040916957884634167860933362206561600825112317732181937410989001515199709067007190629784394409598386938450398438076930339839865302188956728404911716502332836913691848613513525234639504910897630817188240513115073801505660954395839329950305775890474031352853323923659184686505287880142692591839279084094212054216164118673798626724520430987685676636907195936246325065952352962188853120736609056257161914449602435094507672835678663092757723423524342526976811816625447282009670211454708747430325456722453994573806633891133266439222665045628361312274101942274345628225436187208759727541151704375901930536082977143874147450220958955499936682288536556511315248926712335420714565250280405691423432263286396515573241876366175848886089320008656535128538312780161632179733824032662343065648776147486995836755907847128008824995980487410502619365976910890038486649532708994029537162611293477371100589911507361946731449825827047132091400992487320314398606327110009122924147461475054565458874867677492719502075920902246513222845549106789771606446796338762066023857257001177323695586462344825708859988363343474328446724207102332204244955011187959239224173792214916016455036015028758705146013738741119230462300528313654292334940799204236706377381019739833930294997491922186204033513608354077981953232432593319259304512766672107936824122795387968872270961712524478396856096763715490757870635727029851784946320718903608937161736944797399833785887612938292333792859276381317852827738681521679437244922444271157089740398163522501095452070705827267678989477697584041482616424296992741319224742561541189728532556613169738256273403213359086328189847741083118783861531176676023351513890451918266107097676520503633034062599969569524747429712742155259128560557732933678673682731678642267402119604561198494864138785503357679344669242930784953894946001448272923164852716280685017741743906583678954811810655724482538793843773316936022675782127316347332303968757993141700610242227000151908985081135236125509400836759914883534638626854979927752046169958461424041363316048663773620456583843020165299528818311027520954265502162491844863056251164537307262784293573895355662334627901810471024803564782302443630155337076125252372738482968495401947871861598389923813392337435486750580509203280751153653594803708100011573062532568256010549690021277065017095481388200292180602124921992085587591289043970967948434822564231359166996104457188966206750085384110468282486560314703004277198123146095160095489727177534495377562853369652559322866603455574855041006593565467869332674000062037301223452474704971528064344179027231354922379610972416987801395437297830186227878448542727447855037041397454371344527604455241145424650569844679349426524858709034834717757298264315254380798528616645356675608415317085509092058433877943599105101345022972345944682045464096658813723385157082073849987387453685626538292850327737074181086711691081351513298448559705634674656723324322143809771098937360435239370985740438058866249205630691724130431385496130353611158126730319458680874787917894157328709909336027445951633998026270691942378700638211714658463787263386096081513036945570297595819766641979539464347453169193840702864210889697279487465066878020830758486774967734940076778517179728213460331655062400314853731126122114910003335306377546407434313411601730136048462962422043712545532356738979347640705617147722512858303632943535814831725956438975869647750167343172843777839297806173876158224890556939910365547142443152672833922156915012584068124757357511214245840885898878996017563734385728090877505343814364374102503029408902371106874607315165924346911067866180062328172682446152868614726030129854466689086452235008025707183042898177269276299653670426335713174585449790941572298428088870035735968284389345583841688362754888561205459348930496288905044661748571008403630344374545980047966970435388535748043592346204185024169244837332469116266227669228690081993278479936838031642138162308285417832448868823258002542801798881880587981461044395730504166246824377523249027719848074556961376592812545981608962117063067980236500602052361343525851946703466715307187680902817908063575766934987646452413134180573277186412331717817767921724473631722631234091228846794187972414934992244215860393833987931516706221530001282845641930436215649428362402597468140099875951588865791150824918215609570104899872117940734863931431180401941819199733747320912653740731607697474568655497257419445149888981690930788129429480309212200175366142929018383011578330094614471432950602177687585572702784393568973915787121931152408434493518727850546834471817763502392626442243167154668942965179881138767237227790338474703726793720129363388241226365869823031690582406730114353402508806412031471476899662650693638252757247411475468763766614459023512120346934124184520685711003272908075951890156500789531239818473424403468352728840598258838538390852385685816800996827590312345178259794936751819069165207483982597830878299124426129664553387115999127779531878005046951034660253673775460460541604642952090706775484681825756234495104933619199003008644983760134034317366863684148819367340651715684957515734981760012359975759841566578805993676670226534808008062131695334364373111702208351472880170991953339915398801282592649477067720184928403262480264751967988175372593624288058146172945927141269068227321321078384334983152937786337478793441023009290625529160851703609580170947519309890752188560489064901464391519613334350768950476141351994513324978921163229953467924552973358863899285559682955345123862401794073815738454895522988690294137340103787079485476073554044121577631265472245003630268672950221766390631944128456717943818990923216049467404880106130362873032500759164594106826495614091688126914786620803966746799670636667335740090093393218507081267248397440995097276044605687952562484733313572470611294024891285088013576186741461519242899698567525392129291345013642191014806581534354596938575032868364343692638276870154350569565381785556954376322843123581229780722677405230158767026849491504466241970248087558380153755470764906329164268989779852227913113042320428148938463272217572241654561587521618679464293351668919175597228115938442755994184684031052905764532405845069155906062104227601993967527641844452549833513098200028580061007072305085223154904559019063841748521218973097463766557989987529307340112755815458642286072813314363445792700827312453718953874490794782793456773660286208256283816652747676622989768523444389554373201977584266935557872346433147493291169598188713337821854494910957483350543053689909994283087110336614543716708859133660778753507166452782354758915888496433445314570178265051262001816592917936284858127841370482994341627650003035052775771678265444956361736217618486752607912845527743141782933047382313159411355459071475220135982666640324671592256589844725422127457160303536036224292845991536536518431384671443697079960119523100355940777948010063697302861681612634744384676457942209986803479714699040621207078543923932123939418216392484476694013586539778709118841257738108651375796180896313515824450020510961974515669902905038029782736276966043948197709178130768846093559113713396479113667328579036254988706565272034615031919743276912681311664644302011011721972750767800719017214704726135776158705742225312617097855301918151935651353281358910325879788385120075360299230094730149515025962491306774298191620553650136665675317235170766452021612216144367486680065355865978620407714046239921718026971410018422773003881674272745546300779950458222571375338569281413366931101737606252826227849435631526514327325232696159129661636895616233083624871869546285570093948247248941260321998920714881068928644228181103186667263739155959146175608818549170025257837533303679756422036485519914141328487830492682083872754532832985209956874795194254152804950559235765883595720847418654647577512639401523628585553846288634299306419650781969567628483500995815887131255805465338903545488888658911373476233060117950079334862346840860460330603421639088170841912809262195157972794965445442102890169621462847017031027686042910073068787749488046857757822541492326081482526198060998268000224979814754390518696334891964429831489523625903358345242827777871148089428981183626699607271889767324996213886496454362809223766181983153102519357426161914461796066491569517235263435488514644812825346114805919327118499701385664355504396479629824808620161379146860961512471552838263138204968968664883318119845551082950061071488789719881500526513260700790695469157001401639475148746324480895248460498428999655350365901676990548451692946640191941828792101678177246464391342621641280893593559455024530686432251508648080778789047946239734349933785429537798514311198296746991836893168770761314784239102819385272551788598128073129475813480706186367288148046407970491656296080882230504373447806923203538319522937750927683586566281427510395738120701221012215000768554800731449516206924556208917764875682003584315820285551067855795678076605516137402048690785846454843284623741509438531516945211188656273833425283181900378573806794643329478411974188011512118770515988481685251561957906479363699410156317627718330705752689056493678830353842353148422664456542173893124117413051415444209822446606288337297553975731854092167004107168445325756992358064752975458501467210945073245387738751290294048758271103670522805906612771799903030135398786304594631437573062663070873253624822611216196621123852989542919174187558874509428089358773684299285502415046908278498552854529977663028829264416163617985782843551133367721244773262843047570259849492072038638773448883831609360822616899637264849817043584947401786791866162172308213465147851279165481874588676577558476078900149236908663725102880790431369910841049752820384366663554769630196812664986045559145871204977496943402028136303447642444897859784710204935126684587726351781992692589457155836432781088666090750700989749348950804480883152089305459749229477754470073166932952873242442900201444358723582286682748187356328321739982485051242432719860096996074626174158166891400675365416841033989394281648429251987054662545466826729028568266037099090878649483394813989936793943550380958036884476926201844707448193536817944982762126451608103875368883530678389156201037911862399472829245051075487642612511576980842490527265707691194300158060407832306494243133986871178005804564581370086508134606741632609559880853303239579900273691395957790407175724896841686212053769055766480101198386850816030181383371075904550533307784834722328852406651207373870303923309397287952628032809100656931843028186411831925768405208546439753078396988277778475420089836932169345054304912905976224780112460842840113230449782393812937042830987564110781910135378005862306689207034170514877370780269758551865599457674907129802196039480956664077344850175218879660822423168463471836039980867192714081419589261830091820747092066327559400780454205887872684311572215879291064508042356667009330716904660880419522501371205686310260526036242019890099113593717671394092728891148618825363465694178749337106325927322815422750137019829606750439959997551402078159076243218789779144992016861711436825139561918829962561165139840775055970966281520070184675631310165869060968929779417233013690878560358679230517526251849287052666226619195552780512846802208959999765557940214063435944125188319993980543085816490768671593353919953205430282666819718115033148943051333428967377911327220706769381956769042419936052459716811780443358053212064830766576078160442720357596878512520341192985643483830006417221860103890565402873581837297533140295230355550521123013077905837209860782985661666556751652805943008672493272099498790895247686788319159794557243699585784274424290342711194253291221368204296376446964803116631687703539382696446318111453649043140042168141407033336433315135369406459527823302569684618880006965894671323516492296382512780562807789150804505178322879747419634575968061998795618755823372484496470097938201372365173157724642277639433901663561466452253416168296351310260443908438708993981928441909708327950352119687316119728828963511111404183450249959065335288110852382716375158661793962985622555417385333528682445282300425447091523578382060895218822097590822624262796242326343944941740632657908216005695712329198235082989999078273095291051669174588796920630012130603073326792362237928060156812538573149154322659404393703637347492210139645609478122738773766616598255068733206526111524247825892659071829836534555740861516921258282947600810326827500514213132772626028878873471270345299208255696951287800986927322222952201195499948829783967362866478376121905765105022977191077370293550634117198954236526138303491748549334235202037448145208801473477294775122117349557768478315225280142719500251787498852747275491704850248180015027392743076204927282132356505027476208849215966346362131945989069721424841651728919867059097446332357933246581353273256651746008095662136334801359676750491355330794352068421831877012012166726740627465047650606673821353365996407787584435495246262240376417067487577407214461816449332836730674620878658342381468601033240205629799776390104180545457403587359736209942604538717867934091772250226518361804612924983234236363150209763886877569496822595474544089927251124984510711961343964115051280853458978148181895034886500279016244273397078568839838459233940734159636538148827826537715318878009545382557696744559646873074210652824692217710383242081279478507098983327597455179192365374620313553283316598627000453944722396256324164663539427015220051372577940477989219629326379810209876182594121634405081657880566738889945542293019399066316505926278128299171069948492007236925990121884781554689511663425687781592611347284800677149326302330861206471703178466623798034086276047239266284180919382187495428305745456330307367101976492961394744344235851834169697590323517398371223872825561254255734211033774280258143217665377045737482996107036172861479475554417853919010190370182291177474543379530176759454778400626263279457685436835209407456987054191670566094303794353175374080567151772560532810419003875740406281035599948622435638704489735378101525791129179914062534543974415345367320772899985881117958839269885075674406918454571977675110225874209716032774732411906903875751927051699152245171478482728124085510067709207476429459327913065137474460107459998011371289277477573262326657506119929220950600559295467323032148083619921222814204354721588663831303922336309144433179671593833109020711721310607432635262921447764954955184125207474498242368453722945953160910273380610205331598492297771675985700816598516190290605385246134060135355557124329490827220507886970709268279086526381693647379607904922503537731910180066851019318897496354281982922756549599807936805113610601367283161647434140150277062282913441172316394835131624940073583542131657633823770987401822201799933268008617871300835147965166566053968989806721693945152441604695457064909943760364826427518709574947623496864505270882355663559994575343128726568395132260557294849129908914045421195349403927707800314045294125458281446314456610178012571841082995309349219244492271927179034023099117648567773895793997315859582744962094342241450441942031437072956742409114217743943546115012060780598191840063090997389028788916948523739530960932825773855512089860475707343354123998220297263280721311035459787645686078476644542365773514253402805986633269594413508173366103909161286238838157369551240798538512631552493876891272167286718554182563367550757514531257480107344690234481044164524364617970235639331804467717860032104702460841688271439409742885033990765319523880963191309684697434869157744681252526383130882293847490327644137390461222280145605056710579686272572128620447865941160713655453462362578037005528371027214923089343269465138319315745791892523911680920530958058296621114175688136477497030338650568694707021947960151078142464399389434366706348202831558729705302604416383569758460038891383362027644179610806011019771542762138015576074754381527204157621115893313361042423888872444994255678436235220905358964093250551174393756402906291094690140085489247036867852569256394093323397830489038262698808343483671216414161550242051634632730859473756247965185272602994026937098187245391763990337352040064563898344988408822334810564885374073732766026808632740482169782376248008483982968705187986933186440005084152975688943692263930207949503044169517872767477501664988244233719266756890765982666728574870506787818552578684960168004835865830319911381771750574813905964060626788527583486432904554076880557820541136721772089496655679066081637137972117425301894210698752262556832836276924493885872830382204396493672076292336462758632167354335038400550034093302476446618526566013747152254982156212467260215167694316194066203720751614395316791653980013894153274630694157983553674859011241797697203671094062128049027508505176424595264110244187211851196459414558750957960595655860478768931156398031328615561422097216088572927645930418977994547128518490382711626670085406948668796675354218797890540075698951078401143819913633006175300344523831085094642166605018764156077226826921789474557710440882899188185774280148233008089341648257178865075368979100122306679218928354046281141708921548810594344981794348430929897717629528059594821113943808095416176577047346883001767000427997205728674610044291640442461759754949846341976927351483269200088456454117216647196145530277808877992441141050687430699938473871861407506270010757952645556367259791958336647257874076094395993448080347487989039752404910806758301688068802823930871698916009295200409975605113901089891396611831703376288898026971027976964598420078462931084352396232019691371446875783336660411527290508861950905880477110622455747777623828007263275045959865178501806433774309309813860937214251097266854048242342430735429416414865582070105511517672753477930415331802770079797176542281704122456497871835516180750522268350861075292439454955364471902269383573835809624425810349306464342399772517192648962316780690135132075139071771393243989718514183461635449123533665335900972996416161521136698907019984712573859767998409947035249886391325466713857608533372400075569147833569413640933737576666313061845838170881135303893483005975680822362183261232782653307643434630383104021245868658739069645494547550189277334262575364185853858070085493034158691929361852447466924021536714704505652618376035197547346579905488093439230770470738442571351868692959682352962154557256124960915345082304135971313492351022541382311699558091339840495296230715670586472516256468371424880795657056122377124383341699046425234749771371679889793935895558803245266277692045859341886322105072277556343014830901048569996046013365959523492500849273340085472068486508741867274909159157968914362909230891672985190777048731366285786801211971605813692701380429749217338249373337626979553355586474173422431365488568608600506796490420683718821892807001945414179942839369746517520278044342015837067663771534623065737684542268357208633313605832658236471772056373892517738147068167616912168353763637110028972195513506810793166995500226394645778172920362820947181011895013403817482619887757872058952967557253074101677222923320290375794652568233991946281994750225839292543111632332293202772842861894900677369736935078796700423428204578990987946290263089603809196802663356394327027579647779466235580733367000938480133956742691740801893388018326039089535600530302942157347989211832884153233060631810321291657756638945199481422754472453390433640245228184532363610369501368919013845099554971448045917107401101583478635631621216802520292037226203048021604640592638787196626389317616387936151530942190901157740499940778081011195725237758945559709626337838830942301381494268521291088654371625605396145953453681424980616912430704627461731197636438552861509659677174554592715169706370735660301738123886602668688327195836617659478593154169132887331357442999517247139067829594556283628051599113955756260622210880829727368454577097233134610099640935030278016570046403218179038039860837833309838551152434753701142771458999737424442445076818982332667038656810643938274560289465211777325525133116465796101093212321782501133168463307984776282208762283050237039445931462443509170771017164707654352166756853471346943554110702927282882648106505268753550983873032532741041526246828361410457381061201429732588208579502472471887682045373927665965863525681723698104541212104628411965759840556264923762766204317720229937514185824997388830156432545722621224400045485692811378432463955035453531844381543374185436958231356982565363182988044020645020005216659663910554726167772261380587712471201449625643093135774828591034074564509635964878134113602427398517611234889964397982981240065759172011993987763637134337493666893330956560511394970211535449884165724926878321653040736452197962897537389741211296222494314548605842048532670018002083809328308402117894204969252059037329144914574443411691601522086122819142253791694088364908340189926758932411532991009910518841483771674068621530323419986753816564940550798976950828036726342653101079478669376080042389165904384948039555131916084402537660930062922560632140629552232092617246681464898617472915748709934011169758993291637936442717001326784646590018738104723107796349808697740090304935812107639771708942105849716920599047727885359116597972248056148183299126566067092124050145421042173269067946493465948339348377610577294864671935304755800039587500602158477752877968826113184270643005035956306935384208160849708107051518899889731640213080858663548995692353546027113508636970735428902861325167724055036323345860719507516724119679244540137595109271152400892771670722163517854057571807156565756179268383655616449981523173535695580586812285522662284080501590693440253901426380928366483407957349535013483165032243052273797953485234223448671642642309580327420717426418853340394452488741137991242782069162871088141364138532710351886675901392722185828287072612372631687329076516334625092094718448472371588162167277538559217758295995039636951172153069787970593580020711145063063534697098831066989085941223673650423117435562674776092137990540878858717407067308971195268221497395470805040002376187942772304795518378370974832764347745139837119026773345465688063623696447111774428644838719281169267900370007158429852563499591494145558150945529954489712435987040515795061279811327998687087946218138181099236882202830665288828833380309545382183209626712684841885148307857110370612116091165378440375510416645321458188621520324887561411497604488689142147963456709093958224685882277881609541010867802979250243793748139143132381562823623256174330639909031657888893177784391066328548734127474509821743366045798277424996055243135832589626022879473365253024919088641096138073334455088406826487971666243047137462383646303195542630459938270593895595181244869662016285247552115774389988247406421524877760575193755770978376382829704269949129852747518231988429633261462608460680601520310858769067560486348591362445141233429384572048988600747657256659925843158996645980243708294612363574320352770825644040165371270627479393434234517132506327758395487635741683875783421715668817407537383076740937611348876884220719456252816834070066297890370701584108683940688490655528731416408020683764496585427726439968065608433134327279760116359507368291618103139392697906448055859000754958678587039795203830988530294266473987815907900133312376115907459463915247526971181878967024069172231853097592860189832344436415429660493502934246130897674471331112251473149387527632586406614161555690757351797151055063588553479601306662554110966635724849451692360741203079755015799554272513792472907354224974371426787276272910343515498396469781514294177935316603888643092389609614613894608834894507660830735554289965246813367224116363541942220679156604955370636538525346712875582074491938591283598736038265804452559804000812411694039557120152379560696794681081978150095291781380370270424157174610333619191112858969215264671166904561357066503335711791281577784466705891992030136963228669474767685081745097094462595722631701195945309367156035314921240206573724076044798973000832492042732146504035354104204562564432173723653096141932629688474491430611032178516878491248770754293581744711881215470071394948618841244219178736992848547175817431018368361997668803794474118933410076996693278877440559823030098337425693185407865256278499604112750534568961840835928828689988289262044767178212915882678366480191835388090371410422295061144421362305735475269600434203246767643742306980087675418483518835749558008359270424101126268375241462223431251640273352886277047420626107879881440850229978997171605275090050570936865919801168044563870944724409663554467058378434675485334196202035410844485692261670445045259303918502140714263662495632944948449078669128648971111884656801525120780289990610411823530478267985486628881917400439259460365437254070596987927842207448881142560125885775201222519485805449364467082540592773611463243935768140499393707895622797394240163142412714606780189906195360522319921634473413092848791263119837298302309168212679734787241417046268371153181193690597058931277102978246407343080080413391535326575888441552362755413621495588590348942633967145174526590936510781000178133157166163307516289582992083910759024151657545704243486881100578166211544547121734940458734415240030155016696084618953408682342626696812877540191372506260906179873327969379326169050408448772421160066158972245910422503545438055845186753948311872509530575287852105121647403446298965318106848273519911899899856336152721871412459490749301574740093213242773343333937214255376317943103990385698786376877269960880606703174197752880260790758387457592476247292305349277062248736717404209756155400532188811540452617163832161561964553971028120816541202662933596752462674029039326055454949227768998235224684380223347031437633204965211146973854853213533054904145935044168884359852560826633907021397102850520094859266074122286692866711121611217096382426901577385954056367611596688059501659512418327249668646217952496104221347665238808498294716147979655707141364628226528860592038824564543977505681623997883588024957523355378916791794449971004460073407958067552935529697148075881245372026472546974679318436095493708786588437324157499419442001180030179509722493420070285780013906420059571364550306063160517675671982964034808038571855574657642491003606549056081764753904566302614894140011951546270497077167380549364273380961946720640164165801115973841682893541062192841332647102729344810964098188186066876709189903221244547235469469101469673595012869279339558029327975339331534103931335510682364328503819594878694595397223430222536024263437162726398156436134408122084604892996171521407330635162729766740589138124564055151731401937713456600662156577998834355899398700135719384112624855516842918437434925529745606576559821684151153588039453600482126826711567240026652450570846929979764561024739318081613672986611488369289481654349317967422273483044951691560868891825399317662615124163255241716775672269271571025891567970825270089626190208450407356749120112758136224981675556027641266482928755922315519132232206579282463797291719228145334012508158780240607509169988803660010492068968641881711293264639933249248836937653064795817217871922192785374354627086877080944505420175779061821420939917672961603065629913179283766947191768786323077273923649864524489862702960503843127152624978008736242350310360246834859617988276856466956565213723405078684325833920929924993467160714129124126691952709111650633747293650065496715408192574717648629897962102436570334239736773917420649332513253469586718545293268479575856493102072687352826347288743882414472675542873152861512259527716778551431908310852576705422021748811126909984377186265046338694313979101897559302211435610090542547454227263618343081062595620317832031594822199413151320273150079319871281790332190451284670621981062387518906081507975244565977043280765199085324718880370742739179699504624635337833338589160609990086750339144010231034634586329143011460663988164358170460081685889278457383534319978949642327234948368979586250814566621565475338342795559765731502481859073552960364315036722086474102285482484663066163986918663225186834158439489209485603956437782834299966766844277686065058452802395730179256624493455187053923278219721527045384742361337353711862825496452142689765370967903824185165908458600789802494560819101020673304017370476494127536515204765897121606834600446718157842295373579931771283767260222168094974609832864485555467919733554423896238953620645139637431404489553191645812045776448992338758019706635913599677391835206677701452135657996261108342525456113959275352242952246426413586458777319774133693237288630820899386573791050113214365580861253254762466178026704715887741226698683178920603222707279114095516601602939517119212832934120475826753426785268310107276899514725349341317714396663045067208664967485200067618417811301590490724730736682337047569094414819157841516634482589537139929940731680197738984920758433953792773820733183876295286112762702305332150072117412610556462349007493601568732621043542304809741115548320979685227480315452698551723360286128152328717097204835224050888231217772275494327736124572456223647370347536047956261085132884839673347201281321960892222808972686479569658092840252458076750131015088822081472486915905287113278061348618401485773664341057268065630123385300080180199902894543171374864980071378672606729531354865054851196287205437457682818219453962403963419152872600097525444566880778958666564721774201023990130703395890548075253272722856692434615704426693864774569179019593672915237972031950388237625570350168889149242654200537330370966202530778611600438417459031030723455007479076282197399359614439528365472830546130878857508524091466447273464669461237760207584852208826991546801168038168706859891039378304821652426006173596280174501679636638037756995044022379172625084156198405987091566734327724173351125434443560409132014830265780116047791105553056421507096052664042764493445161038395466209656326682388849379154669865245276535191453897188391975269304468355900762531316876596378994666950446697265886681903733874774894008037397307229582977074531773454053110567508212028300053057802179984704358191030666425128403297640263568221152487465812220459290311911264483145332751638874387929725382932245490022978080234656015643466849703104605267092196802061519972173577284776774571617988704622574587873604462904006217551184531729577876908066378656864448386293655932486061879508622423993114749084020975269643511103419577710319114250000117916006600335320551468809488838932984988957567232351356722510629024421110705725845631278001342633764122858232466624183920662875983218192910243169501586703419198128884334010661854014909557445176626679245274384032666820250961513160923404721304232580825665663937431444606006437482165016390937581730868329657184295962571078916985320640579769928373748399651828078547485567679950702980999655897694048135477855798701747635150161360748125885148435223855378530591830530428272443157917893158302789701430476739758694655257484302029512808373186413719266752821495044030626653898952518606710569557997861397873671004800653548277435622836052100629139887012762596714313013791620992270950400855603561213082993339699114384609540904110256511804333900624563242319315382587900365227558150190948078904887496605336631321647340028303274908401810956608762067334356690015478754576608307033494437673298144972032326652357213735214433577811454590135367526690388037265132346707050789573710418661352138093937654081850249370485886775327129536243285238097645477439829893705174916362168216181988933877737356729120464680509160354939360039090571076060506021519644073106049477775134992541920638163390701198359477618836432834720172292673113559895809861328354702668572641454545509729522276972320601415504449683496192394008760514704463551573473967272761770297049433592983542050163263533928505269656735155405102870619636874703898405439700611584952968305169244874067363105855925936962489384678670916737882585770025657721369104132035090528329967950768337929152096924219925691408635115494144459335291178900749763005560731665717431513873796350896529382273466518798336403170270482358487114784821484453655198348713800619112773467769190179198619483702553790610640293927409790515818058378518815443237462208277982392207685857637977201253917739953965120933343790317200812807857185523377598860295533589277556177492648069489317233080723634181903115204665003818192972366216909791209193015125935023372040330791667593262318969311670127334124795309063169527613604913377656791966092114242453666164933365031575211495187454804846881976149876903350733764728996139366447687164205417132559588293761882035199703701704256798416645372913041892957963517086100118768227667842560312041760701350903024397374612493337995898906311520019058612575111247456181169626935422665670523397128074191479346725298325249719832304725003406595897926759443991105831932576801334244863108325349672024491873940607197109356418571227443249616278997132119138169276213410180810257334772967960052112825777325091311333615276992716178436052269997671263427924719431502936436414567808641527981747817730252042321323596814978253764048223160405147810135699390384419025369426391803817464310888229953771856206425784627908127457184162751080905511681752493245224425771242138202982645053377648481337952291000085607619115544905796940030199903576519267106597711453944641134072588931505850808388823119551402782258025033937112867164608824349531599308896559821422253323246052059038332387948243175274120914786786160225566443948866596093613478376312902842138594078475224980794453299265945521762569352509381562718104351744302938774527468196184661511403471172949820645415972982890932657470544688777735049614640550477383660198356362450280164251281780993189380612623900056093074289456982186447272444823248383876506139388962654465458286217644644633682927157717303382284488315245349481216699496290047942123111401931816048205427369846013194458126264861007614912906328373151868651598575700840126655823356259148863439483384400167149133051734020334367606232935184629102985458069708900817138122612882583901697560097260354446408931722559592873125323679779587389811681367917240807282291457266720950169925699382347659121200156569439116944443932916403143734085308681025067649703883204183772742530223400663128211217304173175155986494938597377441684608486145264274524942531889973870521409628967476343261746853735827937359555207100656529283622266227932926340687485005286661573022361098294685665012554641462926713538549530843788191500683137099942369458687665889147327812715564465365770181003644487108436131019441983939494145159462565630959245634434520494103003604794908164149594459404373590453765907575336951616277432354799148891312580996641060092584606051101314326484328486872730325484068589953963011256513144983538497878985557164467462896098342373212071981236558813680539911030233782172586608677968985439462886925537639419208951886102911368181167530156670191434166127334874295739528423281249959196473476828506414275805211064679217008435584672707359309090493549475870031528092709846974636748364268901789906085568845737673274581436117707513683919886032560354528046358192993718516262974557964896797947631118361717306535969146193708684822033894964007043454013320982861184833090840493113940698835385786396349085336194425401025018042385182749033295436252020948891320665913108345874722920456290434681606518268418658226398925991271494899022467118515863533071203597826272642170805656180173876447050339986658689933883615287463728399868901706609287939379087863495157106899955531363436872744748647502911005187733040422163287073984098650287375028905985856118546927932704667053657687274375471604366475211175381759819853816954215716974960018645692635116671907789096939414275518914395233408765704977027646005928288612093652854896889270080317993492828953839339499078337784441757173735560109122264970296476133132429245804491213119977720696727435645722235509276261708239578084683351900072736938266847451506354961627712162544799062348351702467915775361167303748222053936516908560298510673375320406629703907004392375865709301155484134137356073663166057603194063622745007362411009639962146174529594093669527298797662845601283663092458614789009291397742117338242426712478252872020078665883975980770447507022919440152395456043213690803299739432633478393656085523937566016104426315673439057434092970982754054351787285043522409788032117550145918562421992788089688536452021199083962298916620839708386143316060617240124700185052050559899392281497983388934897654793358101643693180578295516324871986617955346440661800828196149448100598353164809617658650572829325850804232028096018258999216100722885059647200728496948126536576015015185762772974249374353871502849003704632346749264505050720497143432684802021940314762417142553052443368722051464883810823669046532946368374706643036518673523556484330022040454249395216453755079692640727823714777466024174341444310310432384780527364958339961265016846357099737021852566134422336928010694765293001183572360164025260024407561724045241065231994170123728782266348229173334808495683806577698293951341681268265090353217803389019697542919085143330613540918268310823638134778004816051134045006654677368040685705606402149846059911732752230645800224895108016849390237275845773826125817886218487607891196382459247989792171459916143972255435544003716719322532800995226940202840124011449264408963633350735563896565479305582936742368190731502242362012418559039420097617534854639259103506197724996337762037206469434293125195187111061192067757288557754451731215351195842832140891040008551095234932650716320997851813838398924552866446547424513554634718017008223217811289355652951357382537310474161160185069883106691086536839299957319263958773525079606966465603989358555179836538864009864332134326213160726543982383268622434133554639990944200645598853626899681486016861467724383988319646072447158367148337230077990182919489518194236855433276329834038786519047382694902479634503296501236768935191725255436130066118041598065192529081985933677651453865368867734642226280796740696019427736568931373389266312280874882477427239311398092919649170529091408006692327017065688258665280426175600095543278614205958680314168836756832295377123819331292356447896739863001076240433853426091980324313864473386853752515071236704344195014616516739828685981862905163464444991740679657789985230146475703584228302618778874858307024825203615944713389011316881118830950998305613555856237290828548288513213004950964518421451934493132309292707314236821205094065631560427637008610863207505501535956456637008830299237958451136292503924056261742915620604807462562656504536831553202239963135901535784257357951065842644700837041847123119896587077484618030191952041102760578069404193733688563899798891940166972851917741864547735060497405576158128992302383510431271515224642832211377385744093666166154713944427136560833136484244737957416790584364705051581352366259948181232294783633088273810131650899654159464694865922966883596591220892310301755692089292383779972203018146560934158784633171032642101355181801435056703720552344546241966387638913218507903059136120958127459073641571940039624848525855914775859581241025419406786502196068307235497554546208627039585645229148537093125558267581086591366582954438647409913432507921855088399945922694300120745061466683130582783065502726583919949873199528905031086061589626654244044510357059690807291055682314259265341247397629844112798187791294552933275831026188277680882291337184759566426691290710539230839495923667994972879362687940721834306260529586885419805172532632108744788217518601822021873749857478727981507810348561260508937884861585242621254361028974190064881181872155221461265486923903766554699497199519462132333528379538398725923294778514565932644925663620809203037986207301530138435626465961528261312503467135121629774188471221934625623484366413864326840097382970599543715485479020503830403023260298832694649778968872945927065618928786737866779990669521292305725598847755777884797800253229357122941055127100087368593104208356832526026346553785074903778640306005221379125764829722988082678543377207160677851118206222091347844347214731460816751204242756193607242522099557974633610947779267975800187942480866426238842087766612672646942169741006964013793282691734175018249812298309095311224199105565803826577444342077702835285628587941379480605826745964175428737273495623538092796933139737699016709129305196542605333244290873088279745199090477369398159886808280085693114682495375133959533661511793953954172114654034719321711286575003829717911768874551802954037971541795332551591807954615607521603696631215223489480251483851144928226497892422622626259147960279244868239107564473816873557979556731276887368173011302655605396111916943452360905929293718836620202109412766446338915834599671166775531296220969574326950745514937531065889633255660911874790415276239463289240628785707819540151394501374769067152684653704849843845004969060750761248327797132730674147394328933612042036767624174057152420467747613220618520980837145746677535683694379469309625134559278735991187498643186140563723945844381589639554102771235836925890116040182661503315708776836831895208103641427472349151991365847511386212284087342549492418530170680557099556320104248888885686735033987559691050908099958456598693435060081982774642803774313016116487042896597218411454241264679561068210167311436022632144873406410519425088193861773284425365753103875688003395386872657506708495477375498821944071441288955451204012501876763458362420331321243262932376135644024661748129219040416434810054419082466956711418801557826838355023802607131027616229745354620624365628355882696328576245981861515227526861477636913329116569073495792382578938319823143733389834307926978616380261218048461922654375591944123012472623408176924595097110798972258290643609537329812880720571429561445796995777522340433107981910973980564498146268999825126157178797174427921408814200025981834470719357674558955195337516150885420066939370768066301378410224087465082337362768820341718248835084749854013264271378390291675199074299525657828490076316326036523803240554601244460169348284602406257037865399555859882753013379112126970167549500107707213058328200970130730912676275911109984683565816344506015712514048996397503798037266840565948585612604392012564591821232741550970912674300498561010471803472900561362314062142976522899955433715989942218806432913590225758908548697597129474990911167198928614312148497013974638789334099729948406393078728453568803096570652585957819228422517046082827795164240858070564601064604768061373275573941515519365957650981149568644561116402249386141067643745134844611241370961941948651917564636047242346813165121139843813264436012680751632103831458009793218131653730813516647848791025875869696625398122863608404103851147656155977295522402189806388134817076662814027627249613131591033131020239879900328144151571986905199178439517817372255296304970696181503290133324434040640312129352240724531070646992756985319278739454123955609173453289275713634894355424490979721741400696787026089877130646406302528386069626186451039430359892755662405106766929075238955221933841618641508262183252553401562050937705477188486928830954030387363011606994234097478601305807380360708041596899919096161349947693630859759021490149609754052643031272175570253092752643195588997702980446076407811846525026116699341390911722441445291022379327319064996340853562465012073108752733838067281785357033069345689772329821354053693867968812024459294626411491712674767116980441020850517995264391969039892298008027756542508806531644454702768462158011254968545564711774380804393302436548180069675789102282533067848812820256938785274856331408889179237854792957186649210636142332947518996963998432557477125664248953902747383216730672851711026124809115491143546112156348617316375131766844559894493352236047371019861469189048642575092509100949213796245091577886752113575496855814121303614561178441183835792405871348814934132726002659559791564749913954171733155086437120093435190912386542187892396473610844814020640197844353400781668136814022216927824288856581475410337624082510700796050217500982701680962706661816670562237575680657006408059058807847027236531249211757587329376725787126886814772359278223503362736110462882972753023469535719833750920047453985663452504861746080927310500530234313850776318434635732629718119075600783531181052432985149279112617067088721610244517905740492027441661480925160207964616914625569254112923179140194508916739708600331318368386721167040861077596235417715725284605912885634593790375619691031285385427846587333351339370988779728607968306001208887326925387912548648111392382337198679586946460633519245737670267747533235898280625337966232052185274483945093567389144349448164970388794278256773470153945952810233809425769091669320651202854470284467792869621261756699800900053352520381868246606047350317034438175806864404308915988207796684398987384503051862891439547562678375379607122064231669545117164976636096561128131508812748590845264665572111988407510946777593598359982142871123351983536293572786324335536781289782864171722436507823224971517374705579785289966311971906995216898008547210463620900119646490049927506004833561170049961050058102658581435962885979890030743327948440652190272484986995788246433213664687567924833823908502733800438251263746360992020431418626773687515144216380222503943489531048718661989068796415675364172484734985264624160142172130305196187505731909765743235537090999797791117222654512606292540018840163227670909705669488040134181363296611850857198880183147582068524338097326328568429258034288998212908082907772923669076647183415355592083449830494598016000089969552406804312051985453173431683828993338009075326558192530130421137415397568758542177554209693785224933171408332266009067707509088334971845365512605460892686913917275671240043166762668190019306709995425262020164483446806629365368896944043369218901173947033354296818679964284231320155111082432268575699571481697677427232700085280179540164979396926276223942461472367078112095192053138142132512208036529841044870020829417746149771435810956072968874560228766591130529328808464349229252514105399737764154009838913661705918706208555485600315374143859110440456383804737853396139279869304778575218626251139940165738559775191478632595725154687113315496024506411118844277201421709839533492365611506510882609806786505676648169903565672479726419313635058557951429974847629343618418269065812353951762181430832662648464565958787365988238749478284308948273307799406722390974127603921345366929904344369687265302215308714114019824773234756982567971013114767785844954828920546945864263045268988109092345755390909524605441886569369172853479773304357823189279045501346873555810366941185498520766079820625891251858621299995321291255164088651051786072075908703512788144658500707923245049220844641107852438058137285574266260080555503912341814798181631059906801145603444195853675770579716102330692860184848916277537333099498550380847845362891089423373583440302737959102175334134222691432489328303269395010717002957105386718130192946743195767432212771517084936080531187436626335518363633657836095365240679217280279466495387648232158209400621374928906938050693871838794004425396381914084442125735063931248784174089747289825024678888969786064565870604328919702701850819426984508924768563165492977569888160452558395156231256787517574046167924159922934598925285016784705430069908175525468662872552671178850058689447995359638594346217807860233162035871997635682028453905867701135736021770436283169198254870278514825239041764759889336799645207938878176821224721359796128721827165990649028503681436927721651157509975099343795880177654824796692272112516051253074405095058309986597152814004047594999301336613473130636940021323081161539958586569844890232884928756924749109039474618741349313838392770494575704255991488522342677878665853880185017064833733428424630189925940607397687746376041088981170929312772426349217119843216993125555930248057045567424396632557261632753201150135967653137526002830282601929057045961377710792232614070751934035381097819592169480424254145221910406222000810849614815651943156483747236204030509417301766972755576322574289827471423550833753290106174962706220682623322484523094666648774696023660156038699297598098112314299835573619889574627400307232084935011586174750826122108968307041794056972255070280156166301624727608010300227263417828133039371981963793344011755744091268066451319511397496008326532450440969599762131062382292313496957831128448642204785905917752193076123278373084328333685384393319827279839807218257629107313313176833046810807099933277507209657651507786061453753532514704810628986346821501802096635314375233696688847607235060684232124298801873791328065377425626035178500687204678279289463935924613166525841332487224707231051998878775760313980475545173728015428461509942759613322600586859836379772136005950455099192998412517111018511006164803328079288160666578098166728318994695087581984119270827516624680223823066116279106373178022946232130853846109356799371436074046848527245176515213917900469873567519174534738320861810998466847802485024706445114374746423008383113278996297672423921036499783148826882131890617833161813456343464590530302182974723180082206816908217399642754263985306874679779631060245394672903069339868610975976584717958318561722001837717965364890471564707464937986354855320524096948063630961849148442255474133916458186584553020054089119848274453843958619008684299145875554556170589550735312148750521939894777491333579942169937122846669039983384033690467993029324259702710366624618325759350710083122014267126472354832276877649490859211474543723205850783208095592267333785251043790870744698326206211605794713902804223821632811872518345467069277773833667588834908374876439381347851642665373515300300519864306374085539629773397165558431583273476358972945315050664316167000189197088407833635194134741303505020739729332079579851901162785274723698746377768857654627749267921106021340328461158973089641042098408305884934402261035993575480493800542253216530894188721304728001412399805020086356251305919011279266757809773437501807420241801112069293732498543870955377399180561565760130402890688520419300766083920832443356438083167338787658826773790663647158089574239512361025037322209586257921977619711759575917215272336199771608296954196618313590090194499846841816162221207800335567535831472439378787683183573232598077200123813493877989945569887471463791284978581262719273578247547906627357252377281012090872464063723958304763825423678004694152103581701954385054640771234863529536121417143443873979369708294237685474616471510500521346388666727826426728953854273486088879722434277861076230879811456417100834834380049360143956466521930402751322975077049377323795561619880735296843551740947820654484583718698508959820925123644249157025371018739759154660003867213616889387309235916941315929069844474748819967341315808249073484757288038164086577146316165194899690602739160725534484473280549683293145910860135755559133279454926388713615919131007233070013155313868746316998722630000240097181973631507666693321715421747974951137479916267833846854245412865657987085599836010031295658844358027040482698779528548504389267110483949753902761148460165297931925667353757420267754407324130448315061426630381550886576045741195748774593722487973305775857992112304685835585089802848935101458541129502455090865105216084192797854099447294345929856627114449466651611886802951128085336036983542324518663434168865518846505026730487397466535983852799748637058674764851025531380422836412315603201833447032142731937122258900117153373293087569993624413217439934408304146117857938218341545895394705855214025547860514631738366865138131965823086755269723921835865322875832281304288609757700018570903591665962040115352778291215800487435668249438973795077532604746131265909849391432098877411395620188215737329391785543724611373300982439449687957983954150541046584597272362078354279131215526977977666578782937087394271076626210672106729094839074095016093556727548738900586258767703109914182722719353756927920673508687631892830399503375327174395491562682716410429209261038408489482860513388567252572906236201242674617950345448476937519758706037711286061142977394269843595425154451799028699665521093832559901207919492119155867796224801106231205782332265072660316842318502581626666695611965307388708711615305645383616560053377105635707651736289090860153633886981800368952441313856994598824342101472190376236063848182485782934442746769335725213005335932466503665444236710456081288370380919090311424230112485567344191834333576042506968600755107866199558121713810901414612802201077849790860549998598863521039531814719127734792781398073899853274092862106487500965112578413244739589268590161903494155479685728514088414303264355972554693193696856476415657567144921108823497825512425569757690746723865375712270460297057938790084694469084965374044814455904572915066596202128195913237783995912824319649323658689874849260448441957190832062435515643613811210218040048026474117228141689066298992761072747309658623718235745236055029912451300519793134917914710361220389520498130064037843941370690057155398965605675821447154314144231291391530959949215749381566544080359506773314539173513890301389011335575194764243464194840542863234244837606090552927391100162085208179629523219805757138218195834475280262733519273273606806309555839569391085212126310246438561402459018111110686338064222896076014758750574814163519578043981216221847597732712910027856488495323551000892376115107620125815989916118567852035639728216258532569504027284995310982787691469340077230453396528348324036242647170676274158432462467805274160537547589753273583415577131774147133288653047716810804373922354128565683754458726306486991583753767500609655758246070598754605924093234525607635507714771202631456038746457935580674854754815618348791075480847533388015631676564083706949770369584239142660954464460910462864118150202725816606127086222820185087215510315040450177591581192140506450784503624685091657075246202184681460332546846794514894765964628225444138085952174439247426328949299953423290198861539091746471438955296197591700992303036561697655072787152244426170071587866123802187161542162840708766307878204269274172673037894667380365304274255900185595356586021743274184801457851495682998065644613125295387466172351700195925855228137929718165850425150058092541259134967873961374462982005635975481865829968245779574562307971675269807357048946710927185411750402092561856631669004189957699540376908736010866832936087930948058475518109201835437611887824898505270162858354357551279618885710950990181816220569397610371098348301507173535448516001414070646896803702273175592277879565489918927759020560128460812284484051856093013309647226719528443364755536587085039676926789198693068995410671782241453638054368638612873532898268584862672031293267965078830935920784365360851815989155049143457765880446832448647646430096398250977991793161875737616486893672451471539859365833975817560211247022831764849578107959684628876130378061303834619791681423869688492050725494145065480925957329272116558116966056925151410011250822839589394909191594322996765152293553903793679877458442852652176424284322466595197282571890739401868810756269781461166700589292447392544319739653457659969415494373529107324324102767113623559501500196806969076421416248055091807157239651927292880902713109692241087231515811810136619710314988829521488448233362471515416255744868202823752427460004383540669613324884591142411287539347476877994605650631635350314727535637846632814607707889544749839609044578210744502219165142804641356008232608456273701243693169704642063573381025708756199871377898128770972125418130038295899040872520976304723359366723189829002362471358455316060070470460858788546666969356201882250617998117543059328409974536865475655680752276653686725260824703857827149329698473375561959942196661026945325871592716000531131714654998983048667883322571625495508022165851806913230685257758982367814183498097306967306774436235760149803333843316497275144280407047358873484043065906437240561397320322095144812366224424144695460313801514225869232970454303357718316984632726785562526133334212118900005993830263409644360774953595377603392825408690556211676471986367192984350414017023608412459059695682063873875471329223253420105661641531050438216602326199558683897747687288578859085718719823816491148314362899273952593050606052269932425959192166236400291731836837282648480185444514511951189316341862636858725680278993979990610751616768954838546759050398659001991617155067503660446115635864877055934411554666877420905165830725527527848166565304521006498571916704614470167760961287280334596192674604628097250327761061901153206170819744370683589673835173668103008848137728317007774490081201443451279644423258330442722399615008745500608150057128709715010901094007966835529918309176499053740590309639387412367504804597399879229515402615552443730141160896363499155216698028376090780251114940164110519249285670764897104272727642338229275364169052644485920644275170473360685858449915286012546294894059824505780977151546280071182759725989772106804984277005160935863564250381102344632199098277559291046498117459127627000742230331121926089777035463164959496033043652798097503077226635992043756553948864220693227470872272996214888626103855819948618098956131460183863752724123266025656940932983682310311559089860358186118482999037547516974820703245328678887900728745139122803100858293725248860261787480652416651943225837841594332171557406127985530464932483596895567434519176508168787894974800588845340137230989622484316684086185775213327781038793570352325099991628142177870654103561480262325796795469309737989739638675926166310035974838070214853559389282763745522617480026371868825156006533452505493981446117510356555874089898944837978440733777793012605913306076090873927432442540459484077249710694619096611607556061192921588157100250746962294343494780405039477161354030245319531940238917139945806031385733464170093675780627683553975802499977817490800630033029800822547545411636160518199563560318219725172590554285266347122240544732053224918394125006358940817737985190064175290644614924778458753067279151049576995258040629982178404675614006414235082550579818111697740172310048736825228311562891423184727267011918567342222181629982376061497991205202852004473371853001743561914628995489522398759295334302639928684486887277429292317323615774992357090012083458709979528081554413111947356404194047869837206157976314278722969583217000598212277788670756540112463255958574141224293167188463372322676191245114686210733008823791859330882250519456689127895539623686245935940051550481663093793155537533010067401447923663159280980802861156115559844613898630276037645120936127241044326010799580043530200265797267173782324705608581716392690052178019099580712493515921879369644813645526352830735370746273098583874640316396703744628691892921647947719113215839094300983653633008872111269267809079781303291653195829531329313488315572243304951903499948772677549813865784350901454024947163204999798429153458825405240004926213183920416870195786811557988998763381357838274901791403605066615267092571547070925572694410597184266683733693146844984327578554965342982532844876721253201207672471443725619821823569809841815305146627788967173396681417962977080204598842706488964336233190674935439851015393661468402249036187458832843080112640056725470281371534321109770137582498858058848192145690111226395351628175276367071341530116659988147410882327215976495701180373542234004391352791760949556103266481224365957973124494135256103232273015046808014645484969731183001904836462964881216818573739591063967806995474491808840595577677044262392143875975371574067714219482181585014931592106922933976293019841886627400502967611752976119219785102875982667036702825907701762250077036520600530630514705020797069345014146267632929951841318407516214924420986647907067392845656344079167244833058778474185756884234238319350987066358843528625891144321552089718556717827400703291681005307944229128016712428904354477015508035181008061687134939203206758547654318174674375216856696847351283385813455575136225557435450970033018592074549420892902204787289682732397108111830468801825022584639979538091306273993233385350875001080978322450852379510990897658379148701072802317294354910807575294792714856621841616336496583049474942082254261801230253949163576090485592525887569078336609378916338569826150994256106583189313089507028326832065777832747830982288260630975074389028190893432440625269525146485228788200135271471583648522215514390609275486554155203027164380845057702718808755699837958194611899445761232037177845083720724299582532552367014461245926824281791201190799137732458232440126062452434325421558997788044163409004627733077185855369531351595729473984914134081360031689391238155892727372917329416124881034174302592891457252795158958466986929499485592422357107596906467251305291070719719681898042664599669596327113466097948882813451596447105854512774511662313637028902780523021175966346517540138763375001808917691829552816953522338653013597273471064911952608147995331572060571474693808679607078387690701717213751650922061633977396703045476229136380906461982066062203223929063728573821790133192663317470111058971534249481400858349890883919787237484067810628179320214320742973838601804813383131636080031286844515106584654593628042870867932832817545975015052117031222808130029781755197751836707256828324812759371035366350678686018106861788210961906293358504053262620539969069928120804913867415046412491033734134919386170502313608116339103445528775515474467160690130794779597975440199686586364541249163622455501771474614245590646570312330970886567768418358121129150828424135484569749928633171234076156233473963237926343832907105661439366265376972004449682569768618371586700132861055109044436357086780819137967908277423256960123816113083297236536882548402831184663071069815615438070613583329004435087882690816103240020994763214448638500107283875087951865049056779522356153419041165062556096197774798904401649209557687198689104851850195296152614898245343374048621969527316865136124818686366426756064606133076626466367902088502122882533592123595283998674327841598782692395703124441758514651166251720357198267673038056543656667067172182934292145037234302229796746765068181384794629219405924349920722341952111587014351882499916707666530830454025097263332992524042374359294114916629215218101184219019667171370716187149331586821010165877972744189688501516693436686891192738837239280533396578982674639705029582134077572008837230330285626844855495421580475499290929783382654388263338142940379978357462260399671131787823678896506556766964371533685307676655266539298430171191103164658697200751524740010237768271466787768730609750105134419182538356250161102407267151396050774759479694683215178122505707073702556857401916096047720638916300696979301857485295706575584632521720809681817912943239981124783866362783723027334876126357268372292738106397130791468605253535566759107604209822038785927151461214552061356041379825494257407360201327817804798457630137862165540738370549369661559850641934737407619302104882719806447920754535086749394048500189650392751320722505207603875451268908311084368954909525151590817981618427485856804566943134217255636368386867563904683269200530046127733648526402179557627307747438088419629789213802101100592616446462315842530799448190451714047231830822879063894058489692688415005307734812012713604586921904153292160426275267211438213937920071895378839540453763112105599308644316546291780842507734451123822628618856271183788024059316996539011290579321410784998918043067813444003613738179834573103779360918184346219086824874941893539112193520801923798193111387630449054877558657559660237687963978603235600254537436711761409347038287558541096275338770938104534445572731806522169245919014759436089831816260633064519793931855880937097935862516490087417792049586727447312175986894284955368679689997248179617001373971372047723490458376841567840510785430271753741074924822059823105725097571857359100732367328926028958934979508213234257118468396811814601106889352280683383521360258710159558379114437723789427285422835472125663728020590370449371451691325488062043700344546566128934966932503960002327705087119522376331729381616161257095004194029203545434180854786989867874749987342674103744260165496022066201955766159581435363695241525739174348168787992275412983468710304463865587107876733921641491736893439878006076147403214051903749654483960132327644039916173766572430847974115075978639687945647962920494329745088859926338366214846462913200344358467180369699075047837957831828126419399054141154438857849728130064219902986837493883767378522837658956498704203037900117835128758895832335231541523407312554124761143732417557589190219168896183485616649889333611290620884599560659397321249407581198266696088392512851564547087925954998176695108337757144918465388815953378484786400211504258029515711407503272980395905935512402459306551014869600750638446883062183963542542405727655572909480747826111217580245771250480634206410982837437637746219604409880789806694037941482929910913880581845888694240302925885478939976513283601908134379878837403111720514428558015893590075379380042891615377221610806385720503486028251444899856927820009772515768772695583149875573912714887722774812457072287848848529464871300678324771552948382340087164813722292696089647970803406786101119695549915378970461269401790600908608208167251107162663077707790869595833730547172417934847012565704672973587591626995575844337790966535853796588655820158763774511004428714035959725004528091801768385765607672608231187635287164004066632481482102676456604028588025106852414931696177686836282246902722779452988462479810795912190886990026962249534525278542622664484906271660294193937321381595533193431541443275593968993538989263093120214934499592380397564914287577042085054632045067652245390692670212616018645030930700733451409336531116029820424559576333319911513601930281453046460613992285577135479215333541128139665962446955126049444901191889912394052696639592157125641770328629234013220293962751121508215655603026258106235665983714102645880703356939223063497158601695963863991474468312949202614540099995836326410306700109203893347519042978849590544316860270947549321977514287853042181006773049747597712838988835122163593058372430348581003518759652829342922888967600292103993679725738775352488465749226605235650241776677165191547576984663186597433221828505961506673304843725130405161216756411701122465168453089607130125636038135005342365884783133079431363848516146993695171756572663839916136180951796314416995419913785629420628398044722673441324395605417194390659358101285967825060168881835087900183677885877049835444196374200074258143407924469655809284388533224679015774118955262268220374565909950499432873883692769032895217718226694870933394109949181964938670433439419638505635993156580438485750688616548624007493712910852506520205633233249675971764851039666328944412626617692954564270562663045540614459442800246604979144738533022656122773306874077725071445959714338725703179603077450301129532919268500817827787277863068586855268870609883148445417975367176499272960513882550696279499868912519517331399751826590077222296318101590060332902389150851691378176462744351409338796817026946341563283494262566180969409970005311546022621696058296685454760570355286767659251748689605964588465336475938151698222828832135926444888131715283740640128522591395037858441920511427412554081601400231017883847082977658105296571600737228662268746570553960637723491475940450335191599267222672256845769214582974056181469705255667821300972237770685002694988176452835414991203053452500408334184730546488560642091509550071277806449265867432714095010963019579329280914847555750254219382809746762627550010736361983883629447439477143253158724831902683610488812364753636079599723030052543933400863855160486567299397318034308390426451962545670946227188486166877398745616679868504013599217575542647696564282713137904034782958308511969341442360790042383170235017717247067012067384660180843974241222198510080442849296286534302588821320732191684584282159765271018302618436710683610166188111069079634427141676689812262637546690865347930476154321591092401105868597744484910183387097914411764290609856781175119976357999062065799281849222273070380403675876882578848944985403833512247206842959219515779278299283086500383999892010048908979300860816601207165887592005412826749765807723237746940080663952759023526047998535833891799169547366679732274087502144472681984964091494861368281669398839010113301708511760012278872229899120940361499306156173582879132686729529109552468452793343432682314639653521587390405044559829686699290066387469746464641914311221561562374988680224110100559123406664882929440396250959889354473209168448563287878129866339666015430729586472916809455833589958970124808168696319057325061127045866374444121037420593711917888715133253264101698338017145786718759382961550964194269223947579398623377111267797000272077694572693538547736529780661754268085782412563011880300496435666739527999434791972014062595887442362481898263927732885094839550098988335136401493192665186049307142935534425320040842152722660398394116383866300278417081569540299790261812385136132754870225759990656319798346512614499374784785870414892129790830077732391821677522459769106676249187515320390644625054456948763916373149078881320525977106889565898863137506300182104833038463143862103148200880974823865104487901177428949399097665516658647861207265580469922569117937521079368108925243435699522313583934679032778695122912574715954785905904432535431123766413338440746785593028847799891595453512833158223229883788245213902256877893700788654895433092556662999489387873605384102988443208820487367370595269244265687304380784564044745283088238237464843735810854203192135348437298497980804130309769398012260512052128654338247694865571185724381521124142050876090240595884554849645804184804306763478765508334070725849703505990135907058636456527601395865208867765134283824657849515765684312122132404793072732556284395322612926523525454610851642071739379483451847841554576623092026378438607445790362327021859955774685667214515963050924125142393409814947357309460364077231507491060108174554773785070266204251494795727654780704679336581671952128650350938078556087489165033845069432081684672332939939279094094216705018730387252807061190021790621717923532188606588944304977308270548759712107129796056673341809833919811229665883812208779201870262103995847232666410082386048318624544345769488014769656202044351461744933955582153964152208222028866456443722664085326421174037361075425266930903922400880142721145991844558863700706001523525793859226720552202142342707408153227173061382248511501759734623156502830657755864050308628043429925150467487472868902474324898296453790626379881980179005993675382627139023737512326648141870587655650898417662629700878333414310444288752779349094716651608875784728420851880707046314516717769919190700310089582598225160813102977712508643512328658399248183749897765056789452038249939299053469729849367440018860938017614165887075840290797877584390602516394271425510453199895447017532485527010651496288327580787609441671482837890785331363941264174039032676552174591172051114095533013974650491495113054608508439526081980457850064726470056543360956017641739866107994157276501062568650312948436782975036090611377368258818130379331606902621605596201811765645313893376777935507859749314646189034235180558739140213903734296943193843005122414635325781051797500084913753033203499428276267914851872663202700451646380964523132459881218508974919599661534210175941735264172200392904095045254257175639277436638275841276208439279948550627016416467271095982753992491455750200304083651625879251219948997510966210329882389729005220339725749141504297738909715408042512949053000812443506058305907786083685242130387248333686145289123638927436132511901516235767123335328457584695295192860100050900250201996868090761818748142821791666189752717649711101683462124959106240818369939338691327205729207410934688812944951573882402104658536165123727920400793447629900156195128763481491325323247937492882956371343332869403491783212025249873822130491694432450085076472626269742268087874969078320157712872470416860013821977105507365038939777359357459552789764259019570877256072791957065651858687584058079378804196063673555705754161663685794037853178123592744843663984623667638400164712479701325530860779359394731209953927294737989829094374880582534498144008776547127428308825442205619849158962555419657242833102021490571565616614719783379230401411210052470811667111569016321844603532358191930885453499201163536125608852726359610626955929302182808071010166605785131937470280704742016063476438259172261049493798457149070466373166741252755368463180550030289987206696080906383489735490606719977252515656080314031702085602517880168692660972503907533502569506208656897001201732330572698193404794730756695066620217918268050589494740190962896575467127520218887560862434424715989909620278988355551149236060815800829209583755341523236156855173515777901502182708055623397488943243045187624800484005589539885466041192629189373526238126185505583387315363647048690186350577016632599648606633525722072906655514187174306777863243796293485391512884064434833173921414624647008590987456325308392699805815940777062519741629575070256418237381588689624238518324333774684741302395217722637181169004724564983427863004702031162243079664731642540778581751722047108041203159061516544877837907037895973466984640332763648892000608443424848283102077675107510583787392177809886516661277230515521918718730704495063478533809156953589753251837510531752343662481430227234179545126448514543564137107161957023490418328904098844407879314692080231495630042740190732324888980013936132896622234809866921592962857038355375688850422358959695988203386942590997437104552623557450516919133768939777337932275379899793236038376178683412072426807393417735834101047720303425640342024152854632145067329275166507981329042731484521577981032893186141808160296106018245268503657662655720529688016049678003547018233465139962504385867315881322275977291588068149468672095007651132189294412594830702404014500801099810270995608225971780172856549325658587394633508315265150042557277013326225109001064892909521057757941880330871055840779203977118692695680013989612741642734935355561143799145268061590214248820408926404088036181341112257816379188002963163062377144785110193057379380999189593390665354586509957463585713058863680627354236040318171990181876500270624877927657218637961406359751619926326423719485180874062453971765864812015401421932202866525231354590360137013693181391978151443120504550019394752749669410485488431862292856351152458124774580785534582541944049519505992623855536424485806980618164854452648986093041646138379290146831734938905014320291764895087341165388720290785359829953594002807072348183378498282343516859772647096633687450089354822077529444457667203262948862081788851819086449656273841744209279233398881271138776240896428744686011112240627019437892421494862973377642012025959290780392420969178905196084216237088811474222819323754972088906563255595065622023270388540088382402963827503278984878063929820857675501486141464812259617573586262753075056861214264417941372512240730177245811914424229323932253875935162044366256887629791933196348512749522087771566520724383901350381667778558436579966004055219549120757146573328325681387631438347314318752672041735559380655571784876825071588599781786241849108273248575011543224669448019272332374509326397544313050421120270380900704112525093123946255060961271505535968407016180323507382935296791787194244889771523635059348633057344337949248709143882167847604597481697422373139091733407420091983756419354237452187464097643275053396090216147783224127244490430683665613514965513340186801033593821469563060479678759011117973351527021653738223027193694099719286542781157226379037763779766487702610641127708218179621487803905589690187743629495322191805660348600114765616928594613517910157222948424196936892354387456729567164498983857178845326538754515338955866318289448394641600829041784447864882596164316904867629875392006473691200144595836739077056900703479543062469508455861505778568364613467050176424371003740185741793133972298746466448074671951738531201639773796155760541822160754274396420111741702540524912173054650679728905476284148910152163800689593685352575772460922738199385635419097637376253125294286470600139262165231122666551804739461140201038775946804818612939335697570280342948495518944432860326896512035932916172507482182575835825494690118199450877727283780321013762026898760067418546034442294757409115957728188985407813333778569979163050879196165938761602626332003891702919779099472918650129110821821395052168844489583262361938992285386636846008695534640196978587316602565062496026975376332122466467292059583131169451355215235049935433968272544267576312640732210746159634834669089582943985425482802353562941139183018078213586522310837634003795031876911640875483353441994852981533768739884617562105984976550257145364188663966789829674193777332929015335762862834155077057743016767607941752229179657219729403058929275173030479928437806001857408135548991470449221471584630318405141387680306862196848550817150150431417214410951354079806081621402142502205368355864755697046189118584051946013239089790612816215849499739923346196493628090460237353529652286876845687063227646349797251450951482868311547364962640941764170903485288058591341288516493285632674368823826220876737504590083587946032339513683872684616951814701846775703166791001745913738074163764554405655790566155256558620902371403308373348823091758509908551039615462955858692435116762029151689916552459904319655347094081028714327462318629791135847723131053121966852987903605395034577917679177558968481237516559319422869100297159386285991121302151662041709297723929511810458741199451933298530109952724995064344350448549476151356294804713671477381487700001401774187838559285410317978588353046664341571553605792103580648040611875685369750435198014340454100311630704478778661981472310341817763060259259352689963702024639065081694969420113048970423623941352644370155511728486956621810517666762957667865398827289376939893822674473814749554698014720556158514121463835989853459419236446412544765004121660284762611923437610897768146052128578454340101168413589325177770462509768860605887233039930599075161799668790096039578634117225165206331016638149735871064814562279004781321995490166294715690225322864687535542435570381078873317289965132213618404230943994895408116118084450187077187043663825704254108264086748102928870360148421735647655501366360774578868931368066042533404138881735005662226408958349872242258739054226598961600713709181823855260342110454022794196976986976962983683854871426100881210793839305595745053759963848781923033285651477211965319637520845459828793604899924397536252303941782781562283790786398740532743054098246975668091318922991617359544182635513288172178543610974198579916550324423203493174027286071260707393589916542081392413250190731884285581206918206238678076412426457562712646161594757171097566244329546593736364611901356627141152446894496079440676693238515937812641355005583874295397699349373954360825670658178096350753252288118976340301915063468309647822695679351244056141113729488395803785958671985250523245923105445916737474705287137876385065946557957127890435348251762995104869636626312688442232357821280813075839456448399732575674374298597128968876639740445768769058330100481495161838963557924563873329742937822771893811694624400700483588446274635857388406806151946070196872418863465785391633451405227638393278450516917480960874539860162087850783778377105085980387356702911374157580437075818985036624011771237008160193027467887807769799867015154472263396313191584334950440985559278281315163143261787218905187338254099769529143560921044823671645509496101923639996737728554625029457728827527943466168954748514060843524235030753397927239883064240320585180519091567808571958782158102382100443408851783439430681079285644977248710015508021452085619505404578669395687277368374103601574184380611686706169473687033274212440692825737651033545157933568514297558268834680203246738240015021451001002439079123328602461446926578494914303996320298759612131377198542290883252384259914255672166350131427467515785273389525157952421004627072409345252832114793971746621136936031708260256551294947665357420850201570599033886358768709972486340235029231250845510304166417572269740275791120726092708693437567176028193498273252432408795847663109099400311304226958936058350543740106922738145495845617279783899803721408667749701941101752906497395428386490124202554686287610636840320156859184373488851350822127836132498470929433255386633856116074137097209988636097838690997211074123313545661498916138461724464217771516828467823617347794436002512836654517161646042683135714131553559077758315460768567010429044214114131428095766807269454342567299861818389000962123149000435978117204678715607066998695678336790431078689823461508913445513329139619797132737912066246845134991584099025612673891111207968600765356625918354553987938341860945780211085987137140722630758739928541575434461455526729638058513798916365936696047529066354802446616528729973301885604888941082455335211330614723435808750124725381787300603191265928283618238504964860574114290565903281804443765393063080315266375529500606532346874665093387154806321254996097378301181145746828018057755705878103455025441845504834656442517935700822240102862107939227043832927147114503209753743364435893453346623506067442439716545998732335453299863711116424097620562046582116135608214811237714008059607551601519520536819326269275573042924069119724908240227180623756542966325008734234861356910390890839970522568436947788643979481179471773910176048076022569701685090798480958061958764238347107785504043667162193868724793278662221490029149532586076073411276034674889433785366582600653195379482110314728447953753353318202806948498441582351599186320705355202148342289322244240543618012175641429027543564161745764733378477969003861876452383151504889763702562317535577291935575432610120300123294731693240645123716240809907450041742874505778910834017055698610284022209736673299516520465455529036857490083054828815752351879876900408176590094323845555386656220756586501980510023388211918109577056790833861120034978781562019047839087740977819086479561298527375871122169044782134529374527555979988210642495414950075284174341609386798749200138821523594654436347363193450185160690217906948846998605129832152334916544782989771183714886077925296186618649268076708900343363544816800266750080460069611132822416600255808996588460254488707474058186414068698813319281076969916900735398730281957976228092352521464810775066160449618687317092601588355517930373408548920193823921993703349212028969507388809923274827516537232750745467508309943694425379273345065594459888903006879167153585008583344867324573693793178704968645232901692319115475046545814741534308977371652510911318686784424834186457207060843747441661711014073365957315467478265266769044611832877091762768878412686368221086634141433427228341830781282149981201918712900817184263636146999230275567327426923210550953129726402381723788708768625374285534287912244806509408231904548517494486994337902462247770119939718732931119127371704305324895726595772612922626350084569689594772753356089825235523812992131836219980074434742458340160135754488913553772952556462828921860466701094726810848468002108704664525334352198455049984074440777296500799854400192679428860916025952933424319342756662761669696719389190314204159463042686345772150789243814150589129909248753511016437215661091640411639742515716288937084422908097553113750571012487513554483482075990038984972733499256192603729250708252103955132726795138907955513720054388788281061755456219568012497523577019466502271183157524782092962215370840612694567782510727099636212744604785365807628215847257493626517857093257048630837587414442161462988529575605458643671890904563604716124810012244523012070687554094926220514680700831310879637593152388486120831104561749187623186579746840880421612839331428095751717413169937286392879736697614818378980703643937448964254161358054142574540246471547102571548197823792854280847027117372823476624037458763480713026162340841829614416183776890916439597099368543979299273958187796039661481802273490305955977558978505912880719871512856256511918202075336181411149271540570013754811481031360101089803536829204771282013103197348756948329190518532732600888918379643245108780096288698314015899232656642894492669275051075186324014622086161270358155308082699281910991906481167242599243019012836862912890941088901584406451133006278583909273010863206406858638754654778828661838697937447497845714740479522346328167213313626834606437569826341497628821670655308945051137593465777638904778206948611417657179264280035958584095054147683970083580083402887330713415712872425598758198730229992602343534602815425208566111639380739576574361543988673782965560845477172432324501984185057862469553189136045325213903111344233370847730170800440582714963201521580429617448302313157630621805332884594746012582446124508208518500771315476716027891299887959439292596981736689065309898083062868052738846669947877424398205066220371916061315090175451715044573555116280636537611891728131877828588254059873262272681102873347813135444789105112158747999788776185203602541025287568370615075051427877151710837365226881831755464191228103567205130423737812551267129100320679491254741535908745521563509634456849812634970929372167954965279392593277132206855776838324200189129848081984130562172696248559209245195201378720206105650786665279859357741989741349141562449429778895174208646971975441143796076555040348175121897934494996047167079812139136615640079916969478293732568321698156353551540259246618267319480837496814983153927405073894679233602952495086228126119389230581248271778372032345371984528462709696399086215461413686820550499702243271890558949706882127137935406285030846191437606110610697216877256213855938312443864825073388524973619731797071196776251723866609751497699795472450429853867556903007056317917361032079971066780551610885132602767705079484099188414751145125329776503632071532316101278229358425282752777538218516335497731042565282249411369487254646509504663073819716309271966535798716383574438749651992615691344599965682032543302164669173159569724512337327185613686889100233387105296154786701909584135362833649157245477497269454054432430247245132816990229103510997288426232619235817755338290509662312126985198901328309059746435419077347906767930631075190483845431714799931438451950536893767731183294947368895605150478106082904209096376539293078223033412360655043298734848035396824063073464597975092463370029149705723312730696361040357067393840191848266449578216079633649743653300027243773271648911122397964918306581614789903696482811123682504319008602199883977168388995351089580847248669498883569616916404763222134226876315020950931655148062725665787741113388613047845108091142808474992779055813211407929287556174635853684720820435717170102192837107598619754038645270211283029784976646828483670770152505965156749669629456870512845370266118713895181196477747931549227260101234519075535657087200630131603305982787584276477703695962280680837369432004177842678333889906614444570610422133191905713056904866425602768292489209901819324691262033135830946568859844515345273406629108146889342515919713692516378130444558803273009162903025205048110558639978766995537336842428365404089253170111818242446939069142118384046445737633992215277185306236331242970209250897246123970015671578669164981875445145475489621204636779579835571480268378867197313814961142662196717378281254743236198934095049638324450994629892914261805747131052111171041247001953082330709828487161354000268984690154207226034214130158866855499622675825436561077740365211929785358011974960897958840941455468710029835749274473314954939380873706718952346102530312241986851786880377892417470283997271167671546165954675863354451950002624516648067815769469936337591815929212637999871745367310937823924659444763408350657572864202832508436511871667552375742902364718341547766520678206895001023121796365603075158073118497463352149402821216255075355815623810852465456563287794525376323952964167013538538762918494560180877679612370317195260384405513139981521050396240341706864795217912197444574552241452540416074131411196494678813860731966205484434183819224014920743769236823672038331539552658904054870329987532447916183229423109239217138361985199116007266393632925832812455424939009888561917296376016278359968147390018301507692034139374338659689697036007672877258383621043644211051706243477818040898563721412839002979883282626566440571633097844360028835863686152564978443450300219793810850853435423634371979478657871297012977801390192769740355362778172224859042977974791198584722530078673461992975946313305431833327716668768820108186257504404919333589176982408336014939296678511952667847547290088699724122319243210300399911288069252942457000861599019414921886968826125748677517652265793870037711271715976400663109406098451177722778617950699748543796218849924743660986154993579299816974709014153157278203122018069369946616844534554226737827228055610305502795057115325365801835771512858414448130555607625569553099192150537989757061713978323984669131217949455523367075297700672939307740639877385953436213618228637450443969158387658898861400235806378126899398086703731887848206580982760736537440608717011410865559100306005460266068663869126300772164768283475215025923508427007791423871810725949848131701972995004210159198269668887187666778040034154446410425873156509831780299493604243186589199069868986377096486187299723742302873813961436975472950325189663704382968756133456373217866696453968454232180177453814879070454936280972838656384809271002232250115746063548389392881380922385549772713983563919923983478342223556129577855270898970028098743986342567822834897154383762868898274665578380170093115026467951352886841713118101974499557377267536397741039075027306163537231121248797864299018782492506623023318634956068570353173771345135374718012884255112109783466949544348467516541005727209507496427839338566962251211576209457880780715844086702366644454448896316328596310727392932022284318593318961560687721008039118713048653241418680886216640685436480856595027453150256934820931281839917011988555862791291959752013134191004288246312992864666101564226958527689026223460516408091149217639954703165550245012850427057951910442389453521801777164365793711787871489202353077476501040440403437012865821491349640342978764955165582770761945765585380427149915276412989278255201870155921657745225173993234274075317004713359583242165632680047978501983042503046347513558516196659918791423422438485949789340178230241069361006501509930869243079274932670009822242932536173607787859357532943547244360138863523050051062704939313060068118309693516460788743932149081527389816801421045388208373074513647887148390918276300923003377238659321348959126525408335127225142920437416148368489833930686700312889358482725799388704257483057043100424709108495257913483987529606017901495536240070878278389637368254337673886498393404208158895976215152351802177823509190349504902682339954984312086085037589895083179702476012924606468065691951658135378979482365325346633512865739126342680017323344928518771990573765616992940257505559673486639708263941567989121059509403642569668296936893595650640975003514123003249399369171464451710998380701313371923283368239773082328828254834729289769366479261044550804403421508872267580697020802342938966846954594668436928461698306103857729479294108264724418123395506388876787011823321942169143726298274332695865920739361371015305378336752475279280094078368645764317325127479536461350157464882200294557004510688826898473681713644770476651907980539973467888274538382243291240114939951299172210124036013964609247398272456613509072909530604572040580466782414168813208390460525630640830100221527198513328943555670478181103789614356102812578606362097189308865406341954564751153818306633144306956032300369491725155293328262293699518277417212764211671827730566046371965334093327661396525107566165230923451058149502100775687747620609487774440165407773305611947135477108700735286081988954275185403682932056869269442224899202809785498571013651614393710909378641410676754027545783001788329319829894964463725865237505509978666934307897809398916947285099972523732597369168895171841204051292633381837484706980867856976812401471777441814135212254863462076435633605687556739432600677657707940521500427136902645040357322922003191334814748705365122721157106256347351674211480614023850845614638234847330357130040454957095105400665990013600066034905358422290134095298201865431801278626239333414795274858329989689993903796501293463962359555354895215563648370905189731579021530260777709377032022430808597793716341320696410435041595328814207396577984517329532712917381879994894293806280974546329154662170600641910222612356166228394404194567962315324480910222235925159202351798582421650509770672584319885007694385993310506364604105786164409575812184464673517333236093965827651472474080139846714346328860315973838564810246404798271768321974067698623449448594641560869296780932738881884800395509279762967923495585980564941270594128552385478365025049134652133622352394040030697441758625291234927211823438652723925215285851015163673074345241104606191174123933080413420168487003386729255527719162832916328600910595690493162119265273777632584888935381381307659240416820480932712787279534922573736614278457973637910426465881307611220150041226860527786247342631023215096152097617868250528486181005547993185129697099421853198031931521834213540091630023110256210858437038335082999362638235910088058694083999376461579917276467363543446146518619732697660631676548378249996414604029106139388595301961012377849511709180031210564844259101855940356355994176979157953965043232996317825174437704833318946614066442891145225679075548388897622993525374843676879925939459309126262860612114510549601421929532495262374112659852550621276920452020802906424028868927971965465706476397416217117749070067030747822533638252176432646671432298010535792503628096206092600546888661438645495088354693977634882776904747108325582453696520498300076674612853748596352764847261725776275368018545645427907004173878142675809997930215547985699027786105308030896534245378618497640392718873121503683790677523082978837418308020684992143204142915940948067768840930480802720047019574172121913574777899806143597603028212166965880013414835966915148348543194681967320861820362839271903482546972809948200580549849511409814630294050836259937002488937520884265849235898253671236952380603660505183080810338709269062624212933637951551059542552583093909062581912498465959801587939831142348644951506354321645789883503489331379310205993567087454741946211911782227941300310298326727530386840731952793551098544737242198816372226267622407756078617031202405892099604469424739719699619940824046001293968614011832818613801719066313157694141096996940499716312125156015599589787463896195166495700534358654146579953059299518727646878744629467751262204451562545173055498515707469605669220432941808979000134557803855659679093478520849300802528318406923978074845902901136052509688450998260892974190656567443616287643490687797542329611084036240833089915462798193511481914601289248117683675614235544555203830967724106280589432136853726661938556707264335442151892850432773172546754601610821055978282783667935670403043614653988535268348136899809562133883938206815563227046184777824556305679154403735380765538482129127764158369116714314950169636726563448280322540638226014904462892509206858494839687270440175877396700903184776930146534436825106681574261602367334229776923279890408629973199582089998437863508368625748092561810713764684544067144720453633412322018377983419314273273498870466088163488090558864826731599581029479432055262934845898275360905527527066739765598885752183127923764158574507644616272868165835527073276022066954267112915819306384037733629861462622795668327573204140865259406330036992250946230759069655136202041482519137664260519057812316637930942083432473253411284294377540694667385831117662175147331411708817008120813786216429085423606078191678949234478441516812314236093477075182845623979053240992475010956916705523407982107402819368547155660738700101967114034648059811906948784288566765293601367184159960705950434404626507334353441544356624919024386179072043364451651656688616075116140101754101211093123814424011156592323817570708997274974342296579673337665563977281169679282225948075001907032109710908555322145246787700493364696143046344229121406006579348611028547259003051706696257463653374727717888926308058297125671313927559706373804275632853497839923062701546773586890697690215478762182526668074488599052773248569628192746605510591076331631932253619705772842550610804547348597657864788512314635958547032635880018467104111530519030911738157665751292015848200356468723902042011266738394445056695819364723486217215929478992711409132617494910361725154467185964580153613471281205295752740566360534906846322852241333917766096019670740747748286177464107874501831458840689922151394106376442574213262209252517354417463628892145292098110286386041553503804632148757599686744813027881896704615469179627995283149771238749173466662865434910578647089779083331570218635680561601209105537516304761638788730232689082640494652779065193744233264981901284716143441439425204234728178499308586161824807583839237569814287207614383411154834824068381588159225011391003065472740477878615942533518527633793105890642522225122684533638323758030168037823693146091494300883758891243637629985860692039827275288347219980855461633109115377241598461909229501412333432317545681580957409289312753694885560231116861970683283485659896092519697051445530442949050302936002418513665724824992393608874989315141216733596881985329191319307897967228043873931550468148561659071410046686116998223334600315559845365811891562722646391005636975976271455424199166577582279879702603094093112175631126238449750751553827290591932389991914257454319510848166745747160451761009902239066163084218447566413125248939976139222322726674965390469762751178921865791108451018554220351842874323541598668765259755757302441867584883150598095530263469744421974510459522876126592765444192362418366185524527447553728964926072735510433290422757775012639924864014939432390906835376711089905403536875737935835608398328710331509515669487816610817370325956974204694662450768829194121787475498670793725013921587590272446528841562779432227697711012857426103077302396106353856424827725548817950463823892378379658063131421392536622296960289624615508669578188604630798551185506129677268977172366195996762201687540164138493819743056118968137021172539796884375229756091133829302073750553947822520980366195708171202295392903276192741425490696410005210928911139597803466138506349322931342625000056611676122825557594450996866119705815371122825310115291594959529194674378984449232316034240725031899008452817554178307832949575648924356997405132689471946796252507232970094772576828631133692669655477280755967426006072942754888546053193360734611296049773920639049100226406605841068667736865688880651896848858236227932491168427952518214198878276984767286629110649407820892796700410687182434285466026934649023006021104236393448258515313247373258625497707348995216899325601238183203321644454852076080774952362636263707881580786425146944930327321907617075561820270127111404451942604860609154127316304055724837151150797779891239136119063829456403245962310914882565846233242202770660818385964875487280318794524228042176699706996266657663630243021414195610680082977301892202602807147007017708190922512002023178381121778781295290760952338988566759040779683794462428738324749147667268975736760857849667394151408150122157093125911738141512216519932792531145110604533262094824859762361453130710018899512763188706972707218961297200806596023135775630380199722439379924860651696850287690478464106018921036320332287587791003113952638837326245590214611875904427790413033714648630974645340702986382179178235970954210997862553258999821234524466801109626685700373649731201629537578553739140423074519862154057869017746492985191730529266873262705695415040733376626440629758297911492921866041857314256563700420314421275493925214331270092131432595994327651539155844555935048258256617047286588802098877798568461583104084076927987821434624188599797410780887681428397378001003488869595780915754327221409265762497813439251117010157328450481705489298426051562065485140181270256371645066049480197889207833885161430928251353823263033848893619934702421309934929494233595152699435838821296130552121187706158297064611023870596194058823017273087224369859753288878011341137923770083201174177455928260633975791819113711441596952047860435390270692925391000277206708163561949893429381972488412375563676633786938873871952726105040647805482263624589112113429491615618828900359426293644401305961354263649276581657901555235694696705802864585582779242703732724279550382118077168640485504566986441109376413818556461624425896737686968708390867123971277941380544468831624979374327643618118851905913071880158686488020409522662674064676761511348491112230273032660017950743280217611580097063150404830382742329116729180783855227466195221941023548987718613526967514478992341954658214338644971125722502312175199776934493391170978238294469030401893814126365423465771322135123828286340410035031469476809652311382409661664896837780667202396942969634262394287788852445526607696283986668352106133299016231128912672595444313597377110296349124663587028005252866427062171012454565959610775610562256084498100010815901228656901381877656713103641171433196810205774151271692460451705979065134248067167582340577951025950753548350735071449891329352831072848388907169293164577266247948259309052691880151710683802054377089032427057794063306192370689748891192574387244871849624092362248743545461608963893309689470449908239130610548556666779501089307034645473132130545375528915962667411186186987969026952780967774857394327104683106227031818858920128146534437868011749463719801608485212434069497020419994556839676742473237396138460049647222013147236215314906018773291649070670277260840765266362463112408799156555394208618830724245257091398104227822827368743355748871938790995437493155705565947316664244767400944982910065410223819607850930436623202670838136606682097797778970890041486487481096212875567035390024612045905149779037274578990129700771668460350379984473420484218869038251063247580942468952891588038571294901676508054419755654720754925488149470421856202361329061367638580104585111820914154138585696134791449907858566708322084036571680391217365424522565264315105510129061651639557069965998292274718082815451794013652698634044129133509274261364283992513014239586563822440657739025604669961774611827658892449379401540803702408834922060687415151165734704057598126592446851028619546209566956555491385655507261575413244811678906214013926135438795011972815965599243389016260682530105484300421163752026742061279332601610228294460773413292888928540727845417401854095837086287794328756903470645708169309795211758724149358416378566659424769363106520811276993213738030032021789822452666077485477625046471969114896762685465469845473789126244311869024532948282757838188526190990351018553294362135887061129212295929801537944797129275737471648937227964181635506301849079579129183706102888937021138122089358497961027506284272859957180038201942567168786784610967123599573524652128708383665591882120353427439797532654411322098931252043602250308828313602400528398522404487151658123637545759845605707341731713243753820581681069946289163249858184921317814429945949076367515347499407133828692499311330782939068239851274421322471928723676698190579213444678329151056529019107972780212768639742002958233999194909571327758582117170178952401352659500324292716625204277285329948104060506895507501914106388122962146330816698942203657545621754362043808595900511105701605853258811891980724604564876715112912534107591160888852318388716105940367522744113552934827270996153389368260553684546343270004471833279747849191336729287855938931251974845518816527897810710396904868651959860351293416989889354856536266679086829720601043881654457339517519423264782455284902865955960801867975320387779307808223320766945718175182742457074877384729183650681785151369778234278510387703592193392353717878999569874551311277777408125688556923890107375136371137901842789545556855398273652502211900487615031449988907967769001666154482709531996218034948849495993710349405713965480705176428213217876412987416091724205754670897505865250504151672762909065371950037852752990523761385149623678032700058517618289514553846198918395759124058233959593234574704398928320435605991543465765112697767487094687298246281333244706936169113405139212387120932003481877644332568792825330011874820824876635245187250756911490215968305013769412664223683882315323347966537065505671417644612797824143925637120395995007765034923646035250025082682051281271081522739364907224710056341108114056485349718845142066049395193607854322406342605110883721820607131895439434172493150259085400079551413776591828467968493814739939656452271914553318566215966490751283831335914563565310707382994413512590715154954535726778259835432263677276229635584920913549023443181316443017306543699482347515086455555123797797531008166033314893179146527890548964698176166919342171868041006036636155655335017685494311842792650834932150626602290055475954856074879448580225481206056689735589725193594489335510874026332277508970582910330959412032874918529055509639914931037950257447875778226787555639733940085831007598738831560786535767654493544196541669089486871167920826040705829135562314380255277893603903440530769254050274122611926250693906086331568424678848017766694414662317472114410757384634380436108122909906305061202378699123257604537936837134111587599094673306262496964050805046347920733973919263888121715318067084163195420649678728700735687560032553377879834283516565356187217009359364415329311483324778098620654861843449747895793105870531804788916581490218032597171125275388495845054268096166906205285192335808567094942763496906025179219973910392048921232191568301263595835924543443527394084502926109162636860131478494683719193780663603148229387869548326775185035261587481340998098329078874041443073191097377864174949718934886494570190962980069551568450924642271605317327949963878260275951696670160046132186711193622241340674784679648160743913821099981106800636598023212714660390604006426995130154188931481507462761033320464967810583200412542611460168666066250110045322725633607607740499686731545147923288865028588735579893131121194773924110472186141120346571604880971682609630726156750213939387005492851199778080585260458535551617854214959232005979943327428256268781047944981208735655751835486892270345605004493128693761069513518375708605004467161395014633780778613323769954961196143720426328666722508942310343139294303146682052943188415444185645839845421539744175878429883151881654807079774436876391497366109853786726933653918722764694746452875008081994013521967440493072162510125806310413243635007490031975638158795931972457615871587672439291133573533347525525621686704393245463227430127127998350016879684483428302557597189999674995216184459421873679051929363851624172909454499390906463220092417332214327666821091954690675746220201239368531832488577862328578518125778524702996348015870931718405629438067377170797000846271809268389624865100293537110913209824512487766403382237799432264076355754191411403078500267319624646845779764877624729295993806625722031249288973769736687856704514579889023675209226721045660062428643058901842202997597189212751325481952751092883970240543370487710834592127982864740237802917211790154280114884119991552174108622365465990888122943914649537033012950061110136623230101199554841799683632711489116973486482580856820229080501480954199053746807516586631456086778920568698936574537903932507215451850250124322468280059801753944630680612338506333931846868199681798212176879537087305604882703078491145104212918150033762609451939902859789937007980618279562786835654913090299329401116843617983235828706153364981852506860124560647452731092353775759056912331808103324785138627091288440190925501121214753486945604852139581945362800124526747617727304724244480657759959966899495192670698726244534845339141506270970438948083746968388917983425038430378078136173489823113900513150732232414810625760707492918672048020048177546454277837638074267562141241807537413565257147431208090331963203821688630170834791245984323065979447477470647050976650628558159010842300044087811645363075000764993874354965610714351213849258128635528742277684624016595668261870055539285038915644358505484101800363195953860549369464964656188294775630357205615392499510887260742452951711903631655186052104572054877463120538866891539932257473872576087608835424551863187076648378071576356806156501357091082708793667833128270071633520635785824182460285843846545451726526235143879989449557773850734602168667883131489228002114132317130435543786108450085416809885498195242833862979396975300921441695614973794678002916572402303336980814339943567955925598955086279508322107073745892304916179967504693424893216955700696096926543032593409199567534935232194419877006617969829187146951209862111618483809130705320718633846097594252264503123329625894876325182074262948606473113509323390415526520598534911030528988690570369803381332855716058425594787437686148098506034320374556416142576983691475988145086954859373280980339592047543937593524068481787347014687285575354540928011750640338309121983245782845496827624000218382110339901592485188121573839095396639797822030412293719155736731522040661478847075579088301275083212295667974713745471117078395883279642413070651229363817861508647396377797345373186793678284490913729530731489073980807788863798402125030529734056567660737034126069391553426513291222440895494569117923958779912161602695712988181491712435777220758952931497244350882879030428246789717618535820951318096885194264070524669058671751934182500132018746748145183635330180087263724567951418267325330722980518731746259393651680867209478111281512717137496017821789560448955016653555911484478143513803398562575025841996937899558069478650764011909467250263554633130452365317037802681937990055608521433692556217839521066709692025658230375604885649931849394446729373054892034196811043340750706300232615623439267525635957031138691443211873499879381323881407609756264188682608787649473194420393271336886938437625390961602763154227072341757546526864805693814565078534378119218702933161188645032207509164996700808351836574325845497330011643354138880908808540068795575142782608594550847334935108546951001201113615472813997416802631383641894143009967359786300592059966884051780205133381869313284304995559615975422521253351055479344377101487109785157820659311584635964687977026952112732764703101775226159285022663980141100611127724184497875829409317489870366259885883020932523243213416493466915336997009840063648003154187488070873392899069754515053430626950572066338357996051023524336511983558955131518186941036896503440447285483096872972464670649736790952725364959264553869218129609760644613760207524865740575106474486457576966951553987376133328628126418428561935654519164186964313311781771752447045411887737631962543630973189084711241622147349459877774423557198772205035538505074987071599988787108847110828323184038235480258102005064610611528269881930925390914509876316645364335958276261890117673874313500772930202971502377201969823700433301212513880093688649186308229839181637766592600062299134943155008279403528273615758683551758635211021962257226091762968380600389527348098343968972528902593237071688715951619726669745675318398776313307059011071551571396045483858781633866647533792730829358057204582369308486139831386762178193186781415475686660549780634154085190404054221367123729030926188162714413225037875428708516470501510838567387690233372288109979191396369974018175297083421488335690896283506064036129152350815889357047568316809418203106380201040458166331005487319920437377388806925051891837904528655703090661479391041412610649062157953511099513241621441328667181720833205357907226234033200478626243990549927047657206863254072813925106520054599333005755666798906656742242310395268225738885137047890446074386150830344854429368813726278957735862253640056098811977885203126808618560159924495101804797489808383333440249024201916995615760064148170947497259352088212357016878460068398584292985802716542854535054412495304675880637667546395348321381801865863628450554238946038676819318782621040290873985877397069093432384259654984221225199815225704628260714652524796579347190488192315622732124909019385416067151604808719647341638079905089443671601637395666542265821462597666761856952589580117245746891626639415431025086651941083473841279066070650434279775842632430515618185546852570902894571333192919988333289447874308202006033520985432185598978797858276534994208921574588725655796802022011331940329755431506896295805198380666290426467085326049973600597799265968240403865164166366693508177324815451962422886168176693055689946636920497900623769858002057066002920501065388835971037321410699455981852053949132719956523445585499682580361503891044970624297036576556687571081752913452803291614687271179311399181370665816060301454985211034488835930686544024222245900087521006232353938962583629778513884963500640010400663181912847112878739855747871782174281701768847971079034129350336233306204891022315127952921306551963498847682166160502011010323610700137937287139072297845972626623910700517661438173992217186083935203954455092116231352722860063455587236848982360848342007800394685124915071775553104815749781597307694691238709061478328465947407624715728581273029357008093946157619164204191790910293425697447027269680592730138128688056841783027702305083067399495584926040837426628288704817368234076921177067048448550799605373674243329619881206608838547180664418134499109908709525832728105813859812809387945879143850739068361796522288661525349209122846308209724490675316787496339377247345253034982531898373266438085474490603129597993968327336374526606982292245944926708794918826241493995644809763432877095435882187322464346523524042503434225535841970590431269435297593917257267826996298638262775444116670136426188172828652678717811356673678944252566727156321763124593962870347453213923318382073669533052020707572420167368751213272354120525911046299503582134039836563382661841936718006618632714225275917375716941114110231512941922214376959479013402957685293990661286085763473724118996391171037993790926868200264639294376987854583399961590486355350623486327947761163554442926216869076670962638516553970112507734681516146548295486141320275866245862452271921243147726996618109259171090333807402441707024301224467891482922149889064214744507038354945381744085469843716515935436488659075614596041497783640286868978843440446062374385888339741935546984784904379159935004377377006976029038256283815527839806901346317200773864899309949320208162653604117670368425263223564510330438868438520063333129591635208159812731860799404796769101723483025537084675061205789322855322606670891498643601798236173892205863568512428211740097973864424867670871521828532721789650377772831638607119659773486941338510273935754839501946111732831501785660393847405685707458947951603952756789164689049816843709537094827660496112714497761352360879529870253334011698009806867427871672867922169538054365720048680062318367652361887225297306648221926819111209154576447877437029644138536635869891665549793176368251905558840921621191463106560373418705800167697324718815381085732076710712386661075472426189994591378675586684503997957742886237244178898956105676711863357264150696611104608775448681832307349612053826180942774343215851937532420111834440794239667348599244183687467505456351936347771761218388980044455540990019265292640763142060937901101540039297170489237329490494439755926217402782199096950106786099337056409232202690534752320331193953300545503653768202166784214724813212040020119498159614401837508997317604557688807744913797645961988402653666630166334045216717877223213648363891905704354198221091139660536466713907684159376166674505172804679725236754195658656941878052648797628718177785837908834217707171376001726131803325449200786108964012445792442254798474613852456815865322101651329702171181795571848211477122800447099876633344601797879075400040466124914496176202774862833633179106511717113912118175913757293949893454277114355017313507029965067586813250802850061941310263661360130023699208285145165338205377487091104195989388340065190034452207532457556858016060796020121508705608703050319378043952837915320763599475371669211263389200896871652513159289135752686719984104918176437386585191997846922635476822001186735433210673672346261554772394591719622242965028319482412757373989371533743363839506827588751961262459936064646541643552137215955236571903731986720020267924603211221426466857244664440361520950850610802010838290034838892864695893077062446424615276126694915826255647614883819122583829900083886971853034369035743183005113739795173055254006320776221227320308198520064743368645708906181420266665540638987633743057099569554066768458702950691971329734909255018858282035642049659984855972882691146403467370684910218642328975624879918824810278067916801168082888874210137679142757787454863263490628358034054279071250900745436268351580621799884924448392457743902383082678247344555108687198519374925680973502700735062213603573676196592368517708255840921561664172827977636238290738853032088223199622672148488395403356452127005192705062580125038264538525752069652219580090769110075992065598656625949719042220605241961285656186391352056065382615455900093374014552802996087696290461947548110262236545424101849601045175232695698194283018942927204940730551630949625853330197608289809022925870734771720225422548900600813139759208966382466360506361840119692645223299089351641880040482161525112108124126021213695641436477087152405698534090414153661367274089657975176663141531073416380423370182859919215583505239819646218672994734692111569107539423576508732087095875689496481263661495229798702442675790315416056824301765364148372132969644406514995247112250789524706235842945061441405503777633526588157181047060844965483872488147579877165512144484007103322038374623594150868497972038922588071379974897815396982099532149715516537136387637366286252683805773877547585514280725651059330785540267691953746221582597927415394292966634769398467171344257179304743063611963562225668201389605094574207803588807180262743866941694150985275956566504261202835201461577744249955490693469380502036570595670406869599230441063097084892380772525169492129398741334051079891713723316959754672202233538635361165456274247821321779750209498982963864946867751120345831735670449924407044582411488491371428767078724002417730486235457012771575910045385662764336746003338196271078023039487698312949655731839279494103237519002486470154852773046726914499084586476356835104495698608727601755194981147632538140197469296029303991340071518835995387075849598122494910227319323813307856025019465286501097556114404941309432415256108287232590269235419214183043405989449774425386841659511191665792677578949119693066223904393105357096664925191267443346340413706692644172575851967092318086726824437636554594116218235972724667113207623162859180686511040252467004914218028961681010877201356675463766312108046986558798637893273694824040805867235918478844044530558980250256889173927494548029904193442929799192302754672066307296534626637237033257723102294502817262201568609525690895690813556963684394405552853942960931187533239467081762248457272855046436932276495144784953492495287115048441825885038439113418918016423728844327917262786332525164705218923331144648937481481339038360576138430155441387238318348004124733351035669840250277521233520885994394664079812414216102941780661502850486363000117346088056162836465857390352350445654086759005099983545467941152328035105771098367092892117175455368342916647642200238939303015432781622725771928511142322783512481647629885715530587625614304649536006019736418804459356394277865091567997015641747873226501452072017890558312237606317035611570759973477097778563296210124540827547262090145403276748966689127105257565778718404430910099224247215929298310246799883021963232793515469914423613334347902007542828937952688997623193304976368776185257936423069078235979495346953757910052872928621994655224846782761660708068080578547927473239803926157049467768160723368230308796012174067042908718519344015033036261315089020160166177655471197291655591525237852567221178077466824788639202520780790294053863040110831684880292858881273807464637868824815603176727997835111272584196292080069149511509337196416807794274020456056769701042820806304175541425116405565657253832255948865044314854072131676093307322484641870846030791782156551373348909055247611229622781839162693876327647284811939314943031126468761623616999030827959773151443104156954874401645805739801840348642318390187176675599024072903601078044581520228353006710371650440398661440303043382915648416983882609429997531176766337389241868016901991104254066674430021239936223246446108479230621640584782079737173735968468175390376053882136302960923832314064997158520296110737330774838476640749704780912878571077457415577013216582867776442595511534422699212542856821633598054833299575045246013854185410954331734840515776555860215776671582968526822986284518935224225389665620727120073479396092101618839092351134422155845018558059976589743545367855113674996971234195296783937638266404297280506763662466802672869870948585399821853286207402636176694065726209576746938603709805184572795601442463400987138688869044233202851086820406820741157094680954399694408518767819013368158529661312934043095706529656614322418523269734846659896537453628645795958347708009986918823217429506948423639924456993402705134892223867923076553666276374583003917248642995058254604418256377786146283257833062442731629440571725601953152863527773883665591551218228451449021084955063257530085195115997409674362903880888456670059657180526310501413888925599146616069466731417572584603481596759161915056079386156839301530181227995629057477246893552867370212721711672956477142424373885894352618186830601063881276695263740981596877564021140276069795846286389829631903443583923071668486474809528815508606633504844495435483688152442269673882832915253902832142636413154311513852892867592451031907634981932160525367544348651269196174059592337253152937993863668675077274861501772485787466929408541545081748033544685491063400946886302630433877485767956300529207153535925135780352641386876569158926931573577376612747967484026501508543007857189200889650188022440739623107774457039737524706918739048017889148195826870811578965990797449871401443822509516182604731122128805872045558862677364010706169429601707771883717644744195273157243380112399825804997088920527135836659231794140957634153197227906666779662147192666093181515522378422155558182544915004925448619789727708313050347724542928866066981275803005660172297428784249490406548395601387614474943125274469165093856671117491538694430976294927773780198549559288967122031546128795793686736363525318264259690350502886938615447280966999236345018709836312938423164832746179101060851603839144786976367233685854363092197170578301225109385180872411436588281223159334848160519326370974437581061002592263805103359630273191832988937922735393602893106010364591217036113120971636312255654067528446282853057285248267004185914385475801205431643810799619296418593432829160544712639428816829471121324136966559053402257869723464005145471707145863324265439956787437047422563460367720177314289096879927150734539702932455458271807024420577432358866843568248136930664688994807565466995816858271148419412435185933107138221779085321452100268433029487413514269356487282683002692257454839795550987182383006178920400412505222893597513005819697975279642530359601013204824495122404707127542273081564132031410447817850637478508205792410475485103155596747880497310920748731231625157115015245200600858551702737649735225321570766683209219854375033207285786492584895480195559819820947753118160433874861375195666162469488804862891351250681979500236059257656012833888412271080100567422541886692965709228740763354611532951535382857021387420978289725633619837524715669964318699527371019912477053291606223534968603802592528067654933427346964013041757712382477309496379969790135078747997878040752892294640364072540392578431721540606896446373083109975238412796722204358045859515995681204932990829308442161561779019513352027533132956716531370169655474511478196935830249667999779203476009082817903280330501092535019432218284671391370393028840809501806156595008628865850878804303778179853931271895563167950624232117191575610849378534087703524451918567521167048822912010057195238219986592074520467094813544671643830808415681408603431967080749770345829443226280998956799314932588302615327194123176105898367019841741677712932007882897252359607385854095042551308323050090840687566543057505339834177418467187138575226682150245339507199692610224360863151842922631040422965820433042318392229289885732486534165202628462798844832889656912958534826576641778442179235248039693768387940614141660577187950810482337826532537550821283749064678068856102349195820398987396194180307089886628353847818344743618260196156678404992032601454047172332930681197750393902024239297501145083646329906308728029603786648914576885222972877429079929702836150950384785803694133764297154540801730209034424649266797404335464816854318744171276624973487875574273461321174728741355180934393269246162702517529385541988405095773843313326748199213482159045552234942087671721038378495829736863775156170567923437376150889334589827305831065510210046113736594496305836010518672948603307039577659342017050274285824467654486008807098398449629012499256527922542259513047448503532960904032700293470591203607761084723215960349747815173226553081739013653486494410522032259562009706265016273128511599473774270713618291455171797471608506858745923612138068319787264159947628334644271471648892497153912426986936741091170078355252533938260853649507815939390098732456150389513928203413072762173316118238816529725585123008935352325451493834291628647053472295635192181334764401309788076245513342719677362245820405344172027266625936931318344068460056618197403381353065592925923571951808768142868130643973610501944984653986564811081714917100176330647627152251886855748940167893858410016559811406971671387922616409891126142047365201366311283564310705275417181480260738726220676001909766145950711797334812680375322494563334408278485254330234661844663510521259781253561656625804409587953295426508240164972249814025545696946414729733833646241917543650237570660358789299584943805999047470733203987236675152573805435988509940024379663065913262472003845942149833813651510643786072162256581175093552351699672164244140248785766606758250837426492576471841157744268988706884450725087369261498268653041551140718480713743463412934503845888911097801438855004904760314672416413225207401769352463026912912509799559621202195307084311898087556912379831232608945748916083633805896732406034268619085115785615249871078308540265304747672754018221100764167556266971456360043371735785801247788067157285625982556695128616315621513660428731173797399575496494323982979832200851977231688047115577989799301449941684998221150443220274063142947981637364493466577989195626309843882921739922462542797323202365263788577519944702658501097411486789209315923324475190563665434842503880317468462560176715488984106269359317435264505363071920965213330835223673866546290028386424687018901031986461536771454588827279525720966119094710408078719364585063869634492737328393356204231007011315361761043703075692641696795634731000811083425431464356556718944824277491733733330523890247009446052608958575961888354535621695172948579648703148619931360825564058578247894001681939337294926950105536124785344346422776922722008811045005619157585210293079195231639469669591087300225148754376828963729211162564940472244529226409752518299350826795063047272494800627924522867931480542234975591957184521515773470637008313455944932485122116241313860953241527404574895355890996632087862113050826399371820712429443493158368180472383029049547859176552992054997526394938543869736626094686334800429940627544848390017071934204646532705977612064463192429477950378556999587361870946331530525739347612425928980149003204290604652287155956707911573866067975107258755206824347479583572304980651150232378152897439710226663531386027236471107132482401780642332764372861401611703634156005620449053095035946007862615553793953469664742809543470668670926806315083755896757881466915142116470551485131239026353763637753077337562995203597992290417957344221993229296393694320787596916232353698079289649079585077113471139330352714538334821184394417703801868272430318692468587643918490672662036024148746650710381680796354962939548514872806941958995153696873902925492377679939353647826084572219553019010036052716737979543716404072792368330932765181456122809253056321571413633036141481381227623881618270518210049789106951174294218916581690462663869149287262338219806324573349011485084321924261045918528129187646896018397475958377883239543148115594502488651672757311647852238320211335109336732193541374655813324928233773475257152439774285330329258955252399374227893866548182136606597519745185537508332509496619383989063955205349565179141343734729496731143028418942290243448987281568759855771663138584643865958395152906229796342247240426359903537700039901664657914289042529197739499007218812427987761244607652333664545759512167057443594403351887000070517520182871517397842683091081416631571191029131276565970190528626887199444557641567720635132838143334208170742647190701729109567814912990075930716963276322467830438176464201072178375742722938778008788391449544373525729725972338430410580744509367154650958561184602665296158694494109559222850139829116805063009508388349180056247400893090512899368878915239545954819211164792928527425176798283735545294842304589145642947127570870757783562590568437256713788929295411831117585735134802684312540280906732487409943073178033195259610863085372101096622718944709559467201143928163826061308976556970221123251861706745090931281406490461800147827307401093086182827470628580188624122980039683651239046375117760154627952960101109465259539200166496665855129330402919539160842626498821803286464309791793027714830305708431600877480845287953905403593191284403127230490871324767909557590214522340570183080182698819423035862070434248198920719020784304978544708338836887315015098431119444392843982720616804364620680855158724011137760084022620223993062161128354237580925807163079491356190537679331775242742335516337874224800761942213375977825962980111154171031949795181236129540858148747695583940891335540545248565808066676242920245611098548430743446807924711276298285258123823219241106499447590170422919469131697384324486821426121781021375847381211847135357597483228067492257302080239770491590913749773405846817088431992215986295049447746053071880117272194845047694681776459747372522357147114318552764607482888871023810069704716511058757074692977416779947593963198685756949013504240888215393064972378201494372259875713182331588710231646221366830798973310651659535351871892593490163877303057377278544845739745154754148563601934905475061050458191996412472241944013262938787430963998805493323112095146171931741701875906584303979818412061490195925398618290431682620844104868703397605567228451471234867558596590755567719778845956512297425308129590815594503542964169956047854457929020200993376304055357391606903845344507315681590201195279091487044952077116060038732539143114292119584765562533941345372603760725060489893541188944505908856444067824280410401512669066430799286179798479670718793294497404609998286165969769848641613792682390046315376096676295606533804653757349772850166248998907352182681653347241077265594195462486905630863219649932942396873340334248622499647019381180051510465702049912455700439970753000387526374861642642652072868203772157087458436566087014134850074630592110748310527005923919326573056430410933021870081420509497547220462663484070537073793810102374757319479419553865652037533794785042133748848645943754217753456944671657845670925602899978633400994355901288765795363525835416444175286251901260288569563550901201277850979591684276757977640546971705990921853955118017312860184710346200699837092491460488564016554382847155363604200851995294004372483565996323461581528420090709248131250288268047028411400695565862175132007855796822071368273521608019152314764843987246654156719356951865291166202484517762391697009629545412007992487134290845712823528254996724060715574296566791218054108801850767068744468963753270238138906927999352861116420884210288991271782238278202668939164984588889494367957513870637260780795123120340810170442479535199941080568371891097761147254295345765470671418142712429614128644427644309253002904949684344392851564357563711637854106954502788608179589867546738253967058435900651764484000796246936471997948977184945706733111810952669247040721740799787668766107804730200773433934212852150974747299123789764933219904018231448182851027359437280009956046844406098748514478539176995400532870435238558975559860113358323167394921539642639321402140298835655560248851390773117479588608498288616677083085763642020782870575306043241059502930180429875306090677926711594301742537915864609802205485814168712028665402868978599732267812375255076439099952124913010851685638315209597849128601398922655045460553521929927380952154048878036566952746433682382455926680728290208980897838000194586643354678045049077645403203271597658517404193056814496442674185223587260561729194588439078886559026790770650162257406965251262151312078624859952922921387834150548681698438459885877752548276558134755813926606044834968484399466734191812462884864533591974529454725465868467866349200396215040808544909134932066324786830972248963786352482827823170789717409618562815918681266797359695235770217151035666552203093143662770457058025331164065861173900297270790958088640148089333596419919145557973918441612481131711336113366278973837999517360541813081894108966609998844486787507674834500137517845550812131622781032288159264519294182293089941938949691771065018221735479027327650141475863389258514261207510939105935100365592705386602801065769537768824434612310705594875087392444577641326034461837405387681937660311036819930815265301404227171905326057090325239510943247047425082691117022768601679091485155176415567901998589293651108380613957795894929950738794451080975861003875498700120069871534550121524937152449556830900662376989563142813784508284851805067354834872185600530299705478168094803237062607332698770785073597952588572190461605756259178302839431839323719507473070039454698824738458694972685010923085474245337334101470545031276675760580761864840112085210636092412662891728866745383012046957465298009275068787713090829298267227504835945464928701008843686550964154458757226244478094826851823421258499350370333991102875436005618111701928943498315795906374269226347062199351589098205483663969107921161390951307451839000829111065068437348379966168348721471127447129560789175154527111515911700229380683070089432393842298149287399247358449650916839373431624431306856460428620940971271086861939101040915817830895058204888074508262836597857443219782960296785605838732440234542501827951983346857970499564937798010789741077852605854037006037363933993764327937238689771387720457596549921038430083932539018939466416766353128434495360197974423962554727392101575616542304346990952021603732618886687417526985835955762030809896157621462832586346216034279048932431377493048086439320354427711587823289381807125280268085989268776274835093941232087211421125656882260149529986257597694613299424350460920388841131326535168113049266199759594798251553050451158728804587518395307180206626362255254053108701513454664150222986849011379974897097807632549817577753351555198705887759952555658934434134651818213076403514828887925848987951786821375879797963999581595326281003134416464050595839723601262728942086844787984488173624712999437131861837331585886463183078343891334883269198529414601095870182675046007372412621860254928952573875303567391024689122971075851196331845061336316771276746199175528028986359342556338635997263530617431702178453219167876099033975932154882732658381462106583240246095998207140960238712407430061285344584752102852813951180803818553280681611316863058930261925116788664659455527413980389675942179261397537136467830901643568994573191653748392634316871715295239398398084329486617003072773765845524194027676438910259602168357973136049740037770709606205069484811306227534513857985734246579763147917358024968094365514708781970627499214740065088171154962280573573060846255834651834952099071482264792451490881827193018683506274591870478352564198350890157501553813687044778990180723651068690827059063418454506394612388306676190576643691128926369614899998873266202419652605156962967176536150225247657239882124501023063372269002016817885193604461750697470590891848939587908866181112327718417392143943973934436849998908889110226378724916497774654671404808743264615304718607074739127715279569081519158743553868381509783207394620750201126724005413693904699248359123445026802980379093522538253423906477118123762057973916512983807975187735812927765918689977992609550475347337099138772608623400196745167255318395034880908932179010133044781528857235651857554128580278382267900613511766106305351720606915280606129408205202881524982703850276520586044197495338029643897022488581136993086985982248919318445035390010250893622250761666076093540870525560220161662814962271479605220895492500628158268318028328381820359954607273725838578567272221849743033737876411665537976228477851578305257110489691518532371428656156082092306143759352293771238730559307422297797905417225862097269672563901674218939988961453980045567979764542156187685744870851889953727217593986038343286920646616889733190909431072595507299878013055706561583049482201577084382934975311614995573842250567705634160132248111401387953967101723197848491550554630134610354528606531695699184160774401148132174190168047614147533275158398810435246125947314422895167439784017952004362944272189797556074766812597866013526461460897166620043205333728498642531217168550459775209293199075934174837248376036596851168972940523949045531458219659459617880796383604900153191754510297027220138236074449415235609071168603545822987073382689408381325749739260808732430392851178242314832128351362861864943285587227040956825387062778985742588903486885112784255812905509154471295213860109316750827000333509101323557133838372380123320673138759643763442378919160300964507629560184304898303294012116928839688851950734027744564349366428754842071412963067680602930333666930248936490031883928110164439263899781396791485813131867980463093608896262303634778914625396056133001796052988986115832972637027712019738589047830159293898632028924295353208494096053581358815322633741795845922824310215237641399563728583608829061630988394466137690896174324773903800848718348440627180614438461950066488403043691875585712625948616815159727645642390289113600082550109067993180518596681797384007234294003530845875756807413607174445829208765013758469921439001762039753151836321877228763068024509174180859535631798129765849596713306677313503228410434189048652758867460157921577414467944134758844110172305402983546829014574653138913855962969032088179818733916434155592734772112901999317234945707296541120283106571072643434770715748800808728721737369445299024098724081829709918254330831417752275510585835086774921476448947487958927029473933450611506309297198066800469743143046642392794102323748474822965213553844981420949243337971084645618338962536634518836979440085974711819303284674474916486637900248667778763824453881471468408747361458182679905634885148693433498649909423619902594073391063057862949264896131970427289164755232628886856171905829174763994190715461618015124822859892305901050341375207497898009428044470994794529657263507342360784088674555003217252458194024411752358523794432565122336382723930126960323964975397405120329861173948186453201420661504092432848391555650191602347747486530740711453712489765523940869260304860409403811445346268377939343670544419541511230840249904061029535915276201275762110982892843444378520131836247640144952532193693548099628097257667857676085337381184690400904590801636915740533959293697685710764306173062057897200268417241758388346338713344091720271243504554912288715357225420759639228424474339476621159041024992531327592011870088702070006175612834937661407429772984123108797156251640117609086607548582698109468002263553981104442867415758504962181038392040944860280956042063270479302106360878462564677508978426764209068733039827689070848413619191855833030554468119979182265718639785836093218180794523165771256752282941699814086538203994581803772038477029002053991744362283724308207764753618389406736216549216698758255539020427994505525678840583767810650799914980828306525980925773351918606598010993626923620368230669829401637868286229073588513505331383852786670347857440937844102853766544275093836784725447717714167896222988057351521110704263353158571383279482845018130143610728265862013710254756648895144718221011386712152413602646885015401750243641223522845561078079808658740690903974915043183701311220261161348460005988375637654489613266024755873830435384077186582820229682590612954205074838003675284225025270680645784856281972366781068646979324562683124316712730552987274917128674454661312295964286498775374059675917764736902078939639528159353873910344453161082916760481148980121296889570567918675778000782159822597290961736390104895564373502680190127128326233268774833339789696652192413912636634016874553352578544484326563190903059822950432975529137585690191018214272396389791725738447585509617547397890148191632084573288315360695079192254506520404994218323664820086727996486114157852990603548970778133886878446048191191521137093683072673218169835977538962916226730929125163902876121224355917816522863793154671559097836161233106928908873398692066038092032646440144373591101249951196930694965917290256419090095015467815018692791415950461159619426540612143289588189553585021999955903121470831951130968818809448252060503974056653838207252545269828545688205658854836650928668961241507189054991484168044803832781992226161414114905379294405753482972066654601180869801416635844209848158524757266726930403334335594577984611042876897407743027585091890524296995899930424909330598377389295168728519320735322207205809897784281774309246172210715518685041673988879891332475854795120032113136371776373917725442462001052720395789982739119414507973568115649639140123367087997966700397986815194596727198734390365860765650413307856045057668389002598560894799160231415802943405702980556363306147612973124366621535822257092391275562204404581912970578327607719218656097533101551738091914476480903078403566862533475124989132510027354278338094033600066077956276838066849812460437438408394825397077978052311175682961030937275555376973438849350265114410530661292838189405070897603437132410398272450184326411768154743986779010470087002013880000067948973480460268219290617051836897669854450705587247608759478141621960948291962955410848802374393264829258182164148647938361250801398994909382733667744835643768752565885778164218293131191203093748154818950650428691333433038123525518789278754844513170100768075957933649178626180047240427075594052982959448888321367905060451382051938330756410778104904081663013873568603568157472717586863317897541590988762736287694711846839361348497243986277769648760226094898399190686821186287417177878444494353070336494156703867551742962637112873830517381284411424780262070381975034224826669963222140508988101986191506563423861371866427279238658212593145927521942416150472722066157736140765930995309380762999588279115268567943056614310057157864947052595891057392753812817504385091014353908963034826153612712017172428624519611422524488806086328699289197799216786998550351102227648537786555148656692711666994085880749559215663164892461183346225518760426288451671289546267101034261911263221340515683660030765332390596602605839820094735614476649541512396942613138799936513567113732871107171523315860260768445207909291709494538809262922520871704834160721399724010249258474625198498942382416860546854096746778920154128197200705617634192050610203875314203005978526076241642029236723142666991863300166646839980737823025134543206345018974451676664259739993567152107326849624934970600024616433224427218133814841161331576758739652661855247594921795558651279232923198957593186336439655232378171870110647444465601300899588888447840885013016386823605878476189244071031181436893816240046888202736217606775556561678475450376900136496063759144933491052556233254249657689097365485692104680420228948014881639119307071272647580776491466910716622761821178912753222122993356451045154599696288726871371155561226048107868166539752674157466073658216407062184365013537865488832282474268338461903805377935960606604171960708903954431238543153179685616959516362834834157610712940029567796781924190871939613743724653799985371327510947771738300882853919048766369577535168160922935239795191744146856193138086402961460334978652796487788504927066618367232800148848967712582952945481679215830980877037423307880450877487330077934068381229567260710025221072775679541732990206602251526974050446573928725717618311064423361715536082183083307219020404221861630720161477988383925028933098777248759958053290278778393466202091105279538908481413911793946495922269863211600390247784997205731742649192066315305542584164800870968252627698696555957733806467422865633985986875941711183763524880090392928512774522820657671470908189831332494890138810066714562029837500808835320099068238794228641319988560907589109861562441989647192573814903718241901531638209828473753031122173573550794697115535048716007849550588699367406035653922190022258536620294060370361976106920763027080453678175556417605218393344923229350508163896563511190799973229817228354265253853368934672057099827522770399887340336022377120653391224748088659317257364971288688229195112766469865972116922269044706801382281268670220177259111093449353707341246995479242157276191993835493777721551494599377380854523149975481932203437707933566442895770678573395160219391164385563727041980617083701766639238409704004339840374851645011969506744274511712009957238390861937825526833244254802817684725721848778668339352377610218027645581472797703666076649001746517455353928451392194878917892120487342473542738781986017714056039685623830971122217031455082576852443426715507582476964846536839692206368892955509823511872926550802660320052056807329168127637579467325707445457843056086590901596357756671434293574106887421955110222298129913044206071966973709352707642297149436689798476335148025873903516598703271102042886548566265311211628949531604699121815033162323252662717650929492805996201986058364408216084700559653588354227487794951605871042930827551208970571820905059706542520213015725189261443906902663984943387363030008896050461759294284822207095556930256613316564010709348621867814296667243191123075489288904708295797961674194430958141318528691862294554692381038057090563175041004607664453981535928480301979488884653150587628351137293971289971087665583006788870569469888969576468898814618094261202968315819948429495910078167939026932756800869678532277976782605401691371250113697274233874831921042001097581339700571704857262631350225751804153282067542403230072628045739961921252176400606341596568445981225420712220792699146864976819492705273859272579402409252313036074138651394755496091908748434913538008479648143994418948073857631736494561112779381351110359450977455045870478976087610251377827452414650818366292754345520052101892773229209405021292717123926682481724348269045433391048458135176666134892600155525474988251424944283317862066640771178376633081194020299542327180272458887364560110235465052671952360299596854218423953752607882932843167261264169368259708653163604435836558932070349332976757637286868321771577766797552382694070852862430359710743086024098812210829898485644670940186669141554147950419725486612345684927239938038616726757033250755798165587052697067173606004142946770286337095615852470456601191402033682868723315978065573599902656495233542200473413653444498535559804442436642246792544129437294135314077631266377732936970186529581431954562287860223718849974417543928602064988912688967100822376066896549031668433227015391367109596572177858512166496168555981084605078183146553567676622768449879136268509210923207486771277916340963677512343525273855462268480902444335402714147824107993222565540293243197522907526149179088808408337480776705620934946569070755099422073719772153284480450598133707967046695462544289387364713719899504414130201395661737609994528541557685898365448103121668027720815071835619615823927306402970364755571094281216485012084990789271079407636553150396808959171496622950326858167483065167246348213163971734806049736749597366180914622944910009551572971429764335483307143370247403147233602000409197901328445452669810128122269824092180033883777856030331271722981177664046431204839537524803067521803961695632460337584904613974168220404213842520070560293400579947576003971826623835629096056667481377473586677895723112963589248613870879983911260600365214285941720662900135003570904395700899671392861253736825115819041782623151368670511643141637217295882465071567812822556782869458903033707012231725440863109360233207111747628166440452164272157062610659555585530879719458770533709088118604808873191476034134000468500455036625625825617726180832218202615587307079362747947039480382348370681052093192812312822626202442239680037526153656080492101818000739217432300647947347367289632455623106949248508200963669915986289314798888759519457148042912487325651148304972329660469725532690260967809524797100702969585687054175082323553948905726316225731688428929724052325703992501295652723805659823833145158671940397622230751604798989253460643507584700382317289614570985464444607680584897814527983317589364225046574999366391132497041951971374674551562501542459287678900830785520882979829488108939325754534118924614179749783695928428426728728886057549785747375099325691991479077855303634846265501808468492388284397921666412676007779444556760591344001797109731898785580921340349571129789881207621458395664702820371822968818733744331709617634541439077987493952667299822734937601882617529514056808562604814688852974253072012387178634863984208613406520985248693966887478915606843310938554771689810127211228679456934269689028244263460503596383011349560329025924736666567420268007888730795010528898568126806853421854363936750743973600784943341735790408884464300349080450766718379413599360558086602110564253149876242768504026771695979870997515095494501306269383378005051278949624233252373529175984770759265434417267104076110544504000155882871685264197301294334753841384020708616513183328729029674510860671283814633820683290658626749967633652203660690257759227024212277342899131411018462524012473357336325180216783238435305114221552874656539710298736926589118258382981701430326330829696620339706607501976493295805859419139905943345548352161510037039240914243811796216160078653453195120691036738777325660269438869305775770973398750416777728583650494460558920028172998542774788497251236298153258138118406699967721146582274027382070121448438466275823139898232234447966823712305339951446885284617655666917829767852719720830591817061894163700476574474133612807094050534097795350805148159555551118164035585206019176188412862697217032692749348711471517400720167153087664060342672669480786494465916037652751437739645880307818911999499363562315185489690966371632924981104195608277707145142924244062151649942157231274086203159350541099193423575990226033856841294877467248249124551653694124842482025607475726045035966223525896909505868964227373956716007195106188741072981078223956430672309530202961604513729556282834634467897999739354079763767445534438810770000387337720602154638848877543476912899511686690466027523683030008035453787625976984901253005445000719435342125640549136489460879771397207387094903115322002294850202491259446679612335663028340663014724488714272012446598117736178954373328961263571334644129636568339043729357785358863111914597141518568998149102136142276616864783753270168959125083956530523894517277945960869165877946284321765386893957140457746781335210029221822447045747681915040486411281996383879525049144192170378706250884483036453307478408978515876091344522583566198427070451594597127011016244627762188672338096115617844093239348401805184308261046785600920278577936663491501809192410248898356712281456916105279894270454667805774593715230652322929385459493983270251601354175773518514468092771971618783730455673333751796065632159418074718584474078105711137133020823743809639866686504919039793869783020115512164789982053735706071542020304014474362377093911702899090426292076272522583424752166915802574234635022773986640771430594534028134393076063703628876201761070677817379113265523969229738860587103889153132961615801070876276698812749828764823481018544306864260748493925498231295499153756125258531691956929079256976454294050229242245263889396171769369024719100551596819772464609744268628453579920506866033961103187684293735355401634337420521322410887909426150866741734469311148834996317271026396400139134414489901188853458909073697869736580974836019410656426498014543218314918649379525162745027415354997780055320796697814884111415969200086101903715088167803634199219390734069209307315182772865506105431536859517079734287687932440561162531609613597671355275922712198416098668384863782883606693596243763154479356407695421193595597335407566650096492558052465556350533367637917447643183770833598869261298167361016060733975212856499522778104334619737185564709828466874179420531470941513404119093068798898084682978678270728231736770269513995303853513109375449863471569242713518942290201572381057959426769152122317530714674613623937795264611850927767484429041102345698857659588031417388265474863694388734498903653467906318231123020488963947848697837282798803030160495790520355327159602732759428952264824474888427579071750951275521234822702613486479469594090098311228627015595559734373212278028410632043393369728725116105257360722920450479549049122098132518016135490569115376846880094764875077852889460788628745523571469102879213304445545311661554948092376020031590704050880201498642242425713923645553057187146321789625051039837611006053157873318394947902564309622799843220809869181379120483540994622641758320144128669332623358567861340614238536167808040682217711530046707243716695855421950572342623885994465001987750567124492698727652734407416519327351865525667925020253970109237298346026669441934498836375440305937969859841143372475525629468574081006635689733043257585480391873355699974069994242936108662138920139887980609829266695550399257847700885535888443229968139509686590225978681392403858518841869121672964158891053461604968464057104251656372500305716644788936361766528371420811709830783738845785662430671655935791405882963849851182900777522766204385475971147780204658441476863225422750152241641206784477058549401828696135786206425218370404125672259343596389644970879666447232038366288123400163856392485692799715492691335681911413853276123872538874739172260536284237762985104041179105490778323725795136859034308701349606620838707626106873390453516818405007216327208517058298035284717955182229283824620591136879339428053455640329017230642726768787504921863405269866855651117660177891735384513263359094665956534687712082233569466520577528604414626482527114330982109872418191124101859031773413813862681859738629027994098357465731248286267598286701498846842092584472201379070243449818995626387908908274160092329603568818369239090249861795365447511465948780346480504077109602662941325625255912738796457907374903021588240444319997678365823064371096047204347423216976448949492811909703314996497345272944887401551137832156623107792997434360965769149936476734527906901369515610347994734957479189214417766011873503030793131166554399586775589514463833450181939363791848384718254753721157744854686543714509348152405776913536540045347324595534414404365347076552231731003836551171345515982897508610136417484006289870999558846831043828106904416724844343882150427889771945625780026700715212096977421102802158554428577897856221058713504237080908465051234604033102292906018616542005893473471883982022526632697781311406250123417209812054525880921120222128093917683444106732462327359967886629836246557344377010947571025602402147778483690876755865459732241252367532024466714637509417158249969012179764827392119599021432742180159114292157156268157487984967006904691205730023779153869882463940297569289264800046286926306348397764599226163963976439799504823639067471243853625275036116436124518419562902109257476815850242068746438667937687935393520993005648742381503610734266444444245793014511015526954788981935023206911757238319176267733886920764766332399131824565903482164805426532885800804556084566795018592890702098322448794329614601855221744252728821550336933922352018349959209991204715998110833852303280476276987407090548426485099493253174385570932678969643450042272181687745819588463042204788879362632806618110797722213490416510636583744780616367509677581938680746870118685044807561146207322411982290012708199945715405423114359166339503596497584078232418845504742979029009610963377407213745400644757674669065268746378301335434685013370050482019682705752926472873044114915743088906858897866394159683958898699506039268526922956032346332729506289357612616865321906283576238813103084877702482587484568428064061545555281596692218836914603218680405246013833194003147852184423491072192945693284624099278604747096015431870526430422079869754040671052678728192478798225902876001872123092166499155621557442421577890021056762543494518042786688759674185016977046652602878555123005671341468348299976451961389682966468444321102663682935932575508444403302131911608770539937992390709035213028345579198784756947729497526292582756327089525002757648446438686092269737039040793795496088871611207441425797829741136020161998591004311049340995359389928308398707586673601917050650684744062576865455487144451563819403704110934916712233289269712729907741829222171608519377803224060841192973292367362580108056041545358518035338679078895630755058610391749538486051117185473888063399507816755751052848315408181198482932478996804553508106845903693680385285364710467040067845470961109943819034095093630347267820938463108206472243768803035927226343781586987664134758507093543524516016769524397209065293624444364856447084533820011384433248502771868975599895555413427020510898035052691855219689405236501271403322508030365961032761403021140963305094461861882785263408459573123729879756788941155098267964812933354049229805754573679848227891924773533965276948629518522288213146485192592175249457359238533360379924046969430748901512548229243197251029291267211716658457648948692638880379579952143075978199506840401988645984791672693621717842464016343169723798234522557859542679455806070575141391694366226814822441588517751056058919678130449756464190450990669743161407164368478918468294030921612073542281440839088674600832967557351076482187911055798007423720617146101487578554349057377464020375926584318685951826494961997311536456544854482115000674874449711747329841341650652329695309311541345486913553188743551941820031050583255798207847382505898586340656225133418278130377586782698935621968376073392829764715043774464322005067841826063097389969678303879520284704387970735007716681497536676769945384925704886249624261505444448508200375355497267956372213598713267119795455478366393235744219229785442113785385809024956478800377903478989591494108517517195769096837957137651999533491385687452665273498950744105547101349605713544843753101003476627134899117737804424517568925448379542271957121696393857395942509376215601575510303016678462669707624395272678634486515879431874803366593885212270098940348709306524738680536062255914912417670124659624670075941438701319961194773371651441292197148144289451650993760136847453047872698720049675866115486067534134373104585287903032497168464951783052448163260581595526568187231087713888973899660588068798531585080918222631701413907132815375357262302789692269807190798539158856698633061226645156924495522640335593001878289163996090171661514315756682512612174160724938559242210998146250555810174998716216665832222149281057296513701763858747648822616666975370761142520279331932955262545957144882787770141627751115221382066622321160608309626726835087751922018271888921023659728026745501853898267991398273942891615142354316617353078908252274997039754636149620192013227699621701836032158492687254154876622696797255651243159589380351404929304588338499763979250436127842608576996003246173361186124643697417257317861105533234470393836254216594840520304643571547125680543740225252683774850812477769712992392920103984110407171195129242274254132259579369453978859589409808924298617300271010035008667595026127569802676789906909720083612564247474144486266251836429558192049307649985166543466240021058941138765428999124412269889643067143715041130233249611960806298645555520882029917948768603128042707090856795426864662921137318450588624032038353088081219109466152731601201474047760517224926540674361297394362214284119439141677490454346364724137047273403591837875454502238362701725427189537090339347089226560017259657245890722378695664128799230068783979198230578309745927965812744983397877037648318577632139506082088512478490888528333426458002715253559282787956942911010221811979856737355837873643843716849305320123916899278029508030610560340006704559515765435952790236112698628468269274350314326559933555102389735995224331802503248751223836207012507184659840907851766458614662804434145560890547810908063582867234389904226556863174774584613449425916149446590383910466649255938788277606499222168829836054587262477447462501100028279768201863098513086696791298324339451856897925924172688895265342607894671500692601549027438562310242072718857856987659618564811834793885030227183927097320466260701490057932477298918301766753029106242995299352749529139871603859526598279485739618611707884974007392541094457504613191009494962481144961954795573336620908495787287942030602213158385660285084244393645027813997485824379112031337089458314397841822624427391524342458945631081156326976763712372649014614288922338009778695618181372934248700374560969016436965881111997467045248054461586643918574778249613850320447196150692173421160154022466133792028814717157011111338115269193788255275373896832142765339116250040181922464808439368000066448580485995413239842431984781848305200109257271255248674039619790159701889665372650200595135456208306256519155733471466240514467038185196997536597486028123395879850970857835892202580817856281719405395633521154463427317391823063335315132094470780894479207454938058153258396464226998191635432278653526515843898142883217724821392039480271791165323962594543777019241427303238632085824113539927592097316139315312370545146068470033564332412828651163125544662250968955112609833417492687256852866942392544132889888597636822619638045158677607676508637715866707747759344463502361861558392218530554942191169688299130444654702800234730844885086313919679662879868005129684265264833102783168853573532158559109874542836965927376177422677299424449220065177775698569958921657633622149916848308904971609423277182573689453673117197954464075901299038562783569080885764936360490098209469740707392177756571881121027231028538487594234241625324439384195435649390618441850943404704829552320782152494387068269932411844948549542718196851635165096492710003383933556238305543778708031665041021456558262256013331502274938005494348548735557487012337922262890027496949350010992840253979722491985675747495046312269311548544751623289487516812903918368384859329441704926236893696423504406922823633050956125908522589776866472673404652293306798137824240354557175286924329781896129362156702964656409830409289524759672681046775793229877156888355359150643900088405185146771339987912836358633761877323392416293170639067062421963525960346683403376137750600003178497676163682875567344329972978663282213686190255961382818504868854491468325791829585809301736628693774736360660176500953952185079196360254921649456707727389492976039550988401014532282439513025674625738439245289370572520851663367445662964614493087538719465806518389419220175138286111146337699297113724237635487085459749243335747314649732032650544831528446809470349906771347178074893446466109009211692309160319883131299639734693855361047738843004637302839150566101106298184118251048604790546657758364612655072980224210546581065648520638339031676666166760734982636938577464553781428498994296884807552629112664098299289968471838873762035424127137353925580436407370726764570865674560913779021031535873010649742879979965675353289087195779693262353014870449992011797756043804179221324094055685795055133644551469409031914167270691615257621023231362616039942302980755833742633214817188840061930901920984167547620219665847115358708012312211485237227834653884147617527050583859944537490035434333287704121080439549785772807051742818961573316330456088794535481448186251945026418138813000603530959958260968741829116456901526028789887383714944851293233124576477168895669394296059161494376301465278929386793622003283593140136904298741107180784366673253212016547112961716574438758095741728340295342671146874075709278556798938995109380772975810589929036806223306781556147000762017247908039118968329932789452510064569829103992160098909537691522154138521527845728799222661391993082450082919870258399608108026867988683418904145518974125732428652485881269833266278614794511045424592502981425984000744911785269103607599079817255681570292157945938511184953951724559045062016095407725187943973795359894153416720494931689302755154647011860541647288439065337111403731071456139775383300516484013698827691808304634130328103829790933002640650107437647194294564137646119063193704917144170700617378693405641034614995778219732045600052295052259179295153215794199944159312866411696182522537377635755987506140937843225243742956655348763190331891327282922353023537311496375903327783028534845025301303235216846925122818935822434867420706627561036727486870960595739273565366691537587112454034970371532110032321535348589304014636689903289540189532007578887641169573392817231480841704834004979139266532268313539153205892234917891923156466412438453619647098432668578863789371357751579163388258629953904871958633059842470197236587912677926671472162694183863659475217125483083193689251123113904397071187347202384957144029361312853927656867673249495125787979938788309539095452359203547826904883124417408508163799008548996461785583171101150125519061664154103108657110965559416280603579903950777903639994853240870916464692109951293943409431351778312287389588994506409486374678605311663471527209491704126991047290658760321082869358772627741022642249084077525921346707184887038737377695562888539973894775366503113218133756360384260561543246905997858342320215105223304595674454231355992311826778060580165189434290675294594922520036521889671844879402898461361798293520749119347932006760322153829114263421825390310270066685442912987992183501169823831641814420638723303216300687512747605597782219345929021898354059604371912765687854553742681164866917666128369150433063943994308054095951746650600918968683463569389046466021103068179490701600672235241713100572132809389226551883123190948807229456123460092704818858824987048944039981306861091819680055265971282270446971791424224315651906572653959919350840543073033705861337385736089527473052580430535894350705488969903873608602086038489557398267881431595219849403601267052017463117858771074913178859510943941791828371029271708183970776522389688294702859552152001062918631946502464646328486013570954382628711683367888770624107265733594637771537543807339775393936512764420000635359792392351081478197448605070231217305715092870230090522102741381035527446989707260326652395244881587314817884307091283504732010005576297666558659949169657692598065301416007646989517013865600665138315476749416139157253081122837444475742304216253391502597975158397400829881390289347854654517790038995979887577623049410050118854646625494171551902346331684808278904131208749216273429459239939016018466668971786446627985891500962471770048101421589662335467407272147758738097603623662363816603208008095669806733189011872101447578356586411353704498043388753962455253893131789952682902699429496893710089175204547272957332746829129473866654216340370420976239763073102480917362633082216056699191086118457979938455506639971910564544822856283756945676537945253688370359238387164079113009088816098900226165789194120544621462072642437199260864191352139027136516452738190456372073941408130497615455838319343231462543774849186147787538105071014983288829044492653324376611123416679991509453570087052137323281819152471499773640041264628309390717434181756229695790689411632214188350763654688616895003070301744684792593337933596583866696059967735893784704256794189343864986450831024483667446185940620828608790984923661496283468658307329302852132666311040084746533298544775275004110397090751323378933176859217886487160268996173735814612710517537768473214359986085768292575136567896344577174018540593921761837590621313435440691012081523451180281511520673740377929458322953520940726964524396533159008290816405800529068303116211169027848523510207272019636386298894459514728413244418328750546600534196584821945665960401151187755719028793183314468231167337179167143930274267036228599371329803838213077200859689058206670218959688348503661766327212061287191834459330527414005488352620186899242992968708318451134838264431449000039949958851918157322384641901205262436902163418656812155140026122525327753665125686297580072475590898559050939370115113477736833307744736575453183133355340206070601912700279049129106309129107478136392301037870967685453996548393254444461097120422624208490067954203595837023086973952996542240515837315239744173034853411103217381015182013162820079292564823416655389160460958784917972648740287712637949000872997755445947556291642091472280655262488305331538348546128026977752579879900771118002575584415134452906377878586183778465675958871104188878020612098089749940612260882373170535387513919613029773857127830310319776764026321005604482483837505920032061257505056644100089610814336531481989137700190944023946834113865086532643274722287555418318575920062173796373771175054305053516742251889830828094459436137736973593237888232555301206298573717104626157494813054381837619249867750861553077248729151997207567575976852911654090611389904635968966586258776192866809551794255124395810780849093907775488979443107375847839520046911458986187737012239588900578402032113724536630220331586313433490364157832797426918568906744632510834269267372040849130173281249413132830791162885856234304644667510608515682411555614751859075650577313903616099176724617213878589655565987784906363674833709848389885382076299840058152876298992858360750740421958455419752669521947974033550333366390031890791013633980544794604935489894586918921759536547955695539347109043603983163750439065427989387740792493935591895444692781430637103323030502412579286896939223445538065338694120767160587629313867022144970917449143990163956113939894504320558015688723019258095910119583343322501008833511646870942847396577602017780854595205947804021157646411436958241941896291808830254527333812592781948779508213001794287305427941087567544827661510627234454453353518385160946551663797874314055402310261769800387943255786344977562179891924937459730330077567380619757623672107825353891540389600860673893104627666494729705926197533017399021077853638788901137137211243383328346354470996089267819897835129760195307885020909611618852634024331023544112953925536404730703142695643859407467146085321858835284358539625621028551651199499681995622668033637098023076059848645786726149412513243060253067668382889423289225728309863177898441587454564530870946456936290780498230032340839228887101538123642603857440703727115467724100338355471138371076033540949179092039283958695638715996415364890138175425725200252735037576751104247752216527173091028604788918366967402950542217187799838772819575472395237347235515774464627011141080996326650208280907922052350959502161226606374058428759921144429688595468840872554836019686581989399431304402542026287426708156960376341317666487738175728505584721452171523618863641927689063471214415152210886438018122303554781691851713456573865933891139470223994382239114533800516230743014208988273516151384266046879606764754328001340835152763581790550068220342427603317063432203032323873958932565794649857962836808520910267029217505749163842187386165041945764846939860994946103602317718142703758280173039512171566645553757849173524967900754167053877509594245513539809426705942639151837735152385212680518169684852874744532814404758967156302642309647702024680427928466426280153861748849385055356065280138292307411584687235885378624330747188399639112076172690836473729792899148041641207813008180355891180626785460110602766681180069713919371598187428403981205622535895686775201480173003816377373702813376537295586349688285097247842916419677626874778215073714676293093663363969560853173152643313255334928937184236644557820908474430204642981298449641671487396330723556297731685384074960317175010863861073237775702967602502564449259738977379286103165644897283777596428761282766864983931526592144665797216305239527288060557574874104069737835107272967038666120382410924161504399774986942783628158457486043405958315936322918344646672905520463883519483212810832165705656485805547959359805543676810679208400326611072694066348891931199901492761305757302965186859357329899345161600698478676399918896781189609937298196866044251545661973885380548344666093456797068118842523917088287444886603022370623813627737002754666412236108566516811411453074526798840023224988046900814450532140669596327597213056193805967381797390845591855984925032396945691095527499501941502970217892296681967341216987151099428372448764800025972522396592442892777293853047480558415520117824614156256864692914915545684722221881111191684263973700917785381703214682144701395750281592536457384649994957231911866192659558083976831554428198488911944659347851497384835534043732882100648770371230516364242787986303412102019761462167158978124288004311112608818810149817753161168233379460880065196652779889541000830705322960834908402642004356065429532231850914729396282171090329880348789757141168690686065092079425546704784693318957395838750893437296592615232455143351949125383745684396578283687532658134847497473085914617319787647381102490305714700460186548641315471095540255948072464391730466948897574126193670784178511858112608900174373574114092053368303558461167190315721522969338771229432797477134934439164303574732722235593021568531506981297694292909542234651581311605450023152221609706001785378176584799889406245583499318463595492934365084753306393662899176824024794688365741173932196771112074386151214540285891224880339051621804630062379200735596305450388023886429571958485198483826982993995945846171415374457326377194148292529162537390824586127425374215379669836277590083968349813811696792152563667475359470321830654590258244925807138523986509152108453287405977386246463045172310977141892441858932694430230934455418657811676031112309146199970998232619984829547147098397204699189830505399735904921683776292564845020823588205531800966729270070242000947384547530989511874877454743332032589552894335486977540058538979023159476175206727393038180247799636854761184730586123207342187313004294568184743207242526276105780319647130880824184745173194428253218094820969093911463974452116092304368270433608815178328233334500533010468150531474697210337534963302369154738591284311661360100908591817325658072911494407549246406458754060314799922181475409723127637307440204758194495834934036274911460897848341134433908427532210904471936586122501892494501792463750145109993920294879187874485333864610650082685641922792704389650518146802162041115639796889697756269787435859270160789473780702166243582393999744071772046563095751795892353554622255597981827837084368372105878616377514790282335968361039273708156624079471630662088888664985297593600052274270683421789018102591480239058024865871007331574658309922115152743860340735593529236700767709390064165265094404881826429823894598813042804216867100459103745585968016941032187051432451949976614407835534194766383252680316826744639768856045320031789966043315095243322652998281163742370572686005507751795269671177953228048292603995318774644477274325526155594495038141085153067545268236535158637199091334323807272546120448372898045412934174929551425659899693509338273000412650327046677143322538429936781447469323835990392053394263991107570239607587372958102660833389594261448825501378346312724735230460201462963842105056629905983669030630200899984182526574275563929123693584059047635613022868850369935169586604394404513255417822913239149640138588655129487863117940380321340773346762306720720196598909823919266558699256915021122964661800806395744186846914570943034005632149124669611502706225827258516154259538532092743531222568029044863340912419569752615369352527199779609914840291277846894657985483319547808238937510726323915355185520981061411785413921702540248767033581359376287034853271978029973145218364761664343461811614047569581272600374561984339043252184046344094219412493150075567568377785907149113003499209962469498323925662172746888620774973295018809495106929932372581464825785247854581122943652057936676419781057903966795211291783478876889028819635019531989344999894107425116500772774686513841981698569911803236562951583442416704678567608485863425186358971228590367427190963484440645144549520763803532761228292935804951606610876882148123387526900410151075151069285013061354037665827269420589610379948332924814559111391950324971156560916521072147729289142895194531406691533087039427896884091044360992704993101726975377598979342694339206014938715195065077284372522210603935171680234067488962961221346015099895992975600110904458992150605150220401565277193572296505652605885506151488803118250660134116960367385689622655262516683117346703443644996963402094566364503671477632956342733399387265309462758115564952638783020317510849846170976902374585174545173431556650062882047753229027376495569342920127493326718468421659861051990819698431586361089707690420407440929621895585474338156064034654060943278689599632356504186610970439894201908750491012996399270840265273602249697531380177474711241351125479041431289726348770132484250883464608945838370887212909721299139632129010131490727911360767540837271816855962546372563511505381428713422040598801805551183915569395763565507125053304884938571264022056291789224196156618196382799201242588980206988379828052349407597699274235873061762390054230784203498160052295981884515623336088654821300518619019702337003445163958612998539868511031523190460743498992511067161754677914509842581358184149769917744680596894099015011753878287760853868761050327273347509613400026796483185269223461584162173468929198227157488782887108399806786885118140965397758681727314064733670143470868024176378087474555503253605174238315122834245427142583580080788223313299101976487337079844880637543252660402061575213566708893385528152432077361310449008089074726928661864616904445155756440231706324736171445997553146283789151011935503384576837980851900254050399946338637083013165898903664962548254608403798415118859665722462593331808585903867962916646594135429585521393940644442217977081072905739760624213754279651755098790765434814499939192055053904941050230754209521496985186817139121866786213198229256153385632507545150365296369421516719402187798781322098801987833987585331147143329593492522937437427566471184365037751663015416957299349844151542245813933589203338379928549188618556809658788941095705879851467349612245753804131515461217245479501458602064613593823145057717112834299589880569685247049636269882424581708971424755819435595579681375644514907672402400668804772109435135755149832572379038027108622642431135367813611212090558545310160908647035523421236566981593619693685141751930847577396948368131131075195339643915786760174453856749741197181478547043083545522234172607635798645176544820088736072147934204210320292505534534847753240215687927739428049647187166278226898989397643320147095332610561565474466099789854347989695199732015784439290661859234738686515299389826599613158984291181564035568185680189840506824471491238491690319789185725189136211304367205422938104297748656789076646266800051273958234512135309182417718026118613462001964804058108743692509607079884101501702337627105097495640297248490204937040323329452520659211615402970582429806710023030931447083342052489159558416088789058896319396280600712849864446134469182531937675966656387942977128351680045885938744800135494466206973172494098234463869118233221663220199778369615880199683884616024373135200840867260859704363520312980702519662398140523116636916772250023228027931259445059055618331484061462562838059862168117103600318030116823232423975847756205359993615574011283450032266476563089255042032046769024824414013322433696249417666884427283788388368676554044135014976449376738371936571201265799831417628260710602873057825311043323351539375506170136269893918472394269727253672878750551383689156310424129279952434903586050609629721540724009083201476172581076497900005013546927436503818115182173854647942516154746539015529179349092858981577632858350463666195907928054722531648361971936372764893948655243667911184039736383329225814359215528738161151374511057932066956741293759685288887255401478481812763086472482689333215918296764851922752320436999944431114735714431346144424218922924481346943294265922450519512716931986492697492741358340681928443969573214652667386071561472084572236427970786493197135788043784971013492493409013079644945166582274136786279086773948535447156374603465137917064045950004163617167406092606698057234219016366018499255889594995549519618284519786059579688264413834898402702779887918985939915800658269380383474882406444270994753917679916230752942743657036807845928933696881070773047454865277201319008711347870102213845095953927620419793852051457744980239123178901017807048590344115238676200156931636449298841049156433098275120871851533449693617994307666458659798241617322458817867871040791401497375181823640907445267173271582723109551242003186784317529788537615912698411250480330576241788832844771258653526793506335921089768841666895126087544438021878902108817470397277942189554266309531658327155782300971929138181407137610154605601717273532025437891900690257062725180644032264879131563751574973515996149455279663668732336983203819031715247171298447451346296737104114412067697428252975643941116038697311451831409743121140251391626106474495565657771523563925956861909591655179013705737129910352825251224728234195519429980850383566030342446127893850250345595624588405840632112197274397140099128195782279479889242466402449381451114792833871054470254323151275881948221392158879403922272828638950061752632290278185621560375770335007353113534582662647502002616471186300147146009897305028940212567942670935993708995324934736224203463825611025108108371125665294371352385532471081440407862925789505546312253667377608735358031453928544808094298982815106418007915353350828855433168913995553298410175452005210213420606439528629763766176525873177821554736230702437333284180758222466884399207597953340456150592729602384021246854699835517751289397075400732341724003177177753285199006371306375470175221388516463976343659055487016384201107582669644067310277224241899111788826727218665334132845145615987988362548646851212073058465779249265700197960189914218931610390171449549373946677164555839601798620265933491405865996844658183781472817636740952696771120268840953403121898362106860863328127921540977941581078421320051470939786520894939910328506562574899270754153623265898954807765762682147963090166915367326016729254631585016541940473981297663890847122109644079442170974831260509391750399516454674401858493639199593806638161639507680308223029286008207098641892552923827707262799022531608458071202933392563765248209678890488541836145745794604165082671432818550611074639507487285842972296538047768537342997361929712011334767181408525315841871601000386213487561613126458565376684025249903104163125957123918023577980825110544389000081984207109029742315957089969275415061199533546440851949979598146528114926685461822614452603957852212675487941328003004532183013547818927217789600670161478593420401179476106236952388254801673096989070083164032239812429771854880215018999690962948273091999688609099863000995903619842470337931644601322048350061292774715618058344312660493053639170213955205702165641493465271444548563988537032606072684000620925902197554978423342320042347734026868031005209976057198577582644810340515602066268569750622399540241548734767423169367972459554491082888574758318697055750423404655941225095634998490103129812141672119609653729486700975931914334629439694591899261268945883680696271845250392122380595152883243098776333596878212345794009136277566517712120891006482950840249170001460430709578629363714358944538210024292962237411906794339881926772354647741609269772453291317150598838283315065204801900920174719558731442336212204468643979443149450106318515592873514034669709177376777751905856300602918994507112491878147337935677297667580539350833688676673724246909250308414231243371177106830596075019404902853056709844939847422392495570224785564227139244077167228071754374063713048454028799663048378380238791503106464162365908794165130564140145975202074074849648513057198946985340888931511320556646444258055631986303995370866459001232948331908168861864756082321580099233078534571987216892835818775207867342569365772637015069611037340617144178701075030529512391095073645131705243619683099330369552506745050027887155253692755061479665681626947082228591308519779210368515720594522093067988140249364864413759017730317638574703066648425475416368686900742923699181566237832955817294241447690081003796800524293303758050253142602242234106172932127989709894952032833851776987662724818303999796906584739069358698147922844401955689872655566968810588809902573783180037696580536101810802197414094543411709131591165622916576072558722332877114155842471582868136468768118183903777692076567455132953414001625124312603601697765981879265714570558911219372788553849776623195509303172694505166777191801815981939693181163589468836055356161258650945727593613895420045869439148461589687003051780182237317362023795386354712254774185069603606520892189819710650252195960886019876197558416235167432046555679405330647527550331214562306666432221660571277773911581894847461754700246816124594495918552920141938943776065883290194847419658131240806722963177578947148808882681225835504365014248994954762584650974641849213601721198356944480828770163967056895874108442645582732627642648526645129084063897122741636343909365962835497044644450989004833841283884361602466718565293888855467842957440818012403552167438415794371053929757527481625707773287042919107280116689063054716975113247154799579430444497212508270053935730475367764571301978620232912450070814813947800944986107772978003367103234578476466140647282100788439910660946071932160748734801901483264103580434585775240413957676452767439341802249372602095056416166318154517955969432611866212234524253995461733684995918614918818502976240465685138569041395143020085754223309891600108732697221471695617750459760955058244709024875619736575431417899624111297553433050111070719452794709273784201466662332142904487345099401060135057692311696735267404514595997534879495027949523226122358112889069200369262594553135491732026908208636809601254999195989906929826278574737727389024403075523952635644141136054853576825226528670420743241113065799982618523483996381498989077794442364800384473502664844031626406350700393016647440737284958586454396380498333663549582507415063504828811461072311873791671952755680010688049096799559252370478780971511096529220634491597287022349174851226930202177880651936373649433482662300826932069737591968475208102242607816546070996497703877956047308140567650193487764073360313750202964374514544977608549225126954000314820550739557371405674858348305156936358871043278014562648018866621023619470437912645339800399907633869385162199710675506066407335882162536932054791442500172261737684096660725707451297018367823770202835480633591021257785452135857837596287746497492713234979088768251359137615877606226070031147248679138241596046157993969124748125849231484034301946591315889258529201895348737641950381097961109995966654351232337223226107003720520906970354241137032195783605118532948111587905081383149748729280478881874797574289373165582800469502169433251418382348587012713573087086376885161107219164800760425773867873040637060837341565113851417922306689477540012744482599607924236026420001751107418820060545656739727236558475156186098150110392764211315178662329077550577529012021027354856533002389981714838385458592237110507468400011995068766536606746246223564408305221235844633599487788502080609182478502879868203453706450769067353048182325179810763730103320499492612738561799902231446913895510760930046252633612723632700561491459041093214433160600116157419855353307834716710625518962480550953024579572121374415262332229329929472057811709373567191718142655018002764893547778542644757112916927920521704407951138760007156057119908443980993796830660715618762011751839332366443381674299537624461626941144296293322726620234450362480011974878079271232747948775734298923519321224030019589996675563005854701685225546646742000514088451279199098100611570226643470863630154619115354079928725769410162648148974648690578190622822976781003793005597188394874395970480137245341129694340579636473385694480715932526616198760737880943516992001661382102395860068891392243800235836121426472590850337744271861931868955009598663265213431161493862141059441506493173642454493359199063467948695198527864937522709202390398169884324475674327830492962014054787648947094608675881683315564990349551249671223433789110348312053847404769380980046865902109352461259900447400811246223868891042131467723847809955061302107611494469846922681804841701217322350157860677414682108558445717094166187260747971218281921794491416641510903971027931343694749642771814189743728428370779066287487987703873220715639180914441013193100563581432711894380777231283430342152092154899879673224507810738068409852081253044731687828624461686381487895089876635867472868963355208272889114229544531333948131718068489037848451617892302185896471481011823211199556881155045114902707174337922742680548320687165730628204951191451560360237967606423699513910645174847658952089653100169106659056205917192129944037871772616497581067362136933050859265316171255719927517326947618135984370464152549808834758782342037037644836710885288887942359978813081939823155707219130777063188139635619621266705498344645352617223296679301748391915705194678584782528281946751304529275557869057719219607186789336538093295530060971669949297754875820632350090337623086986128786725719752730217312107220312637083016168534397504360760795528725470438149672429295911195198897752537926001657463807875122434294831293062075187507935498703157053841067201737191490749771624491952640597313688685984820045165918426286405485284045597738349363137360126096778130510087561515766736473986983632590660243799752246582681460336857983742507928507475989788312596976417690867058468339283412341372576694713307532140285703844138591139672302908262083506882709627020522550492120226653246960517578646688448747099239975480286093125049515355935766348702507269028725451662587414415159799968904376863016498339315750400169788487341956810424964546172094399677519456032399845796925749144453615749954782536070837925149840344433775292631189363572347102224502473906602395449693172128169130225927558172084549244157607739889643466492601886785405144973756551314668615509721223707320234923190621956340146531313884725036821475328578689391832270316845384715156067040148749271332871345462860698190089521393895820513014188463752130801007026829573805927276839237527464925848294041109080136679968936822317533073820665394744615158891515713752924417593708757839674996941664026258314857624382953308039636496509384177068735561479817299622580240099945643701936752534287370186226721439800896371421060662418371557145723867565774893404348270562462918031783735880075436866285330221849583918613807401838259442664364877767054734851920697484764927997717537594721558024939684668594625282324519557341260854670838717496385546629776536489542905457124354673456403198454383105813357924365017778310235045707641660703571506701339513152915951855643359313657803365296005779833603072908345037021659255029076309334044600154542153637507708548774244077675510914274863521606589346974637888116885811076709649227628606455461839263533481363766568766123159063066072450017503337620707512904898887348330938510614315268278114021040641091765136966084604640618427398759746781177594206029260317474708046470307271676661894368016190319208074682752477482775469309105638335002405208340012328854304886494763666038399897922620119870181005478253288197101353806484025948666463068537182936703653690950394465493852854505070505192373429517351746120515966661872650469670762315952685126668665109319361752256570168611640423462318723090838351376167267351340607483870860901239263874512205335535998586242032697712399731053374059244288981706834285874472608562575467451559301553786226703177733328840825048002417995670711352593360310094189868425866297656647601794006352408325486825854634412628635182168712930465648109295728325452022700277441327798922818758561588970758911832513211327609609472349781251922424005047807972599547801714993161072718172805555705622399266056895857299447931031784008033588043193629456521759869414291153336542854382637887091632914536722417484839583040062216127050166062276221437354372306564367677739046552562945463252247763096991450403163142198421577172523033181486280342749328798262745169900923271954974650903229832734903047845602136691958434332377994986387821567807323113970280003306288441363991962144935674767981306889055017746708721420297001559518198984612680747972317056629404059867652946714481515526797727750093330251839864647603663581672303198369775078189032748652324564291283175066992305111467274230447578937539413445987530210861945171448734628078830204209290558028310208244756790664225383835781646684234584692054420661919727880238341759700541272471983894547841375196118762346773531296681260229674785148598014090066547506232390862070773050505812804205116679101865476022650097232116973957118889146921784908659659868775768092743665605924839222327320552458677857115569799007105553338737932357641536925064034494922029926918245766582387683880196432850762951868707368564508208444050415195590377087374306197710154882198984112571581276293954599136399687127261152093030762311087582592547739218695337395666875423403010186868714835540611001576756827982088997780565425870180491003474876277174833129502546799639854654344912982167596726108121576815120974949557215047875901743147007679940211066316665431806514853439277101509572724711804393412377349383794771765783581314252037964254361602701666678136577538525131625430584067816575178522766718472587068598525594035592602646337278827729841026274506726314232924001789792249156366736275933096778783754760994630293095941270935727460865288364364274828678257762832016244874386328509923138667681673550330067695204256414879700832569151492803388209995101240172182050995192567255759754712790588986622432542597639149448142584597808112495393381471627292402856044181115077399012413165030949529731735890118473663941451506315727517883776398474830443698522875253361154617739666073539737854359156209666738822934150592033297196279950958666901183398844094247138433593218572790790160114654382739276662284372250790523958165713140634745148539957801614284743867984837335648786612555355915092608859964503576180852502205430102699831607962633026669675207214674851153751740436717912916100313928703302258190536777603128593888613283766962694211633912525298229493328511433001122761012844218355327258667147767788772243928886892956289494044899052169307531186746562732782870044379196039083626420867672927664167738230487629013912554554115197196859860671058642442418338475564332418824170612673876721046551275976187670453521725615708181574326377619514627548343289233773290112959770006366026921020484120171816492361918612647603124473613055278586851562034672997706903394272300487964964487207168097440873398953196112683149290485227355872824580188307205479890377368623393575438904949751966567685106552165007152869824374298082026504408694180118965574387376026181477266382738748641527276909689788917923756867495974109250496565275542877454630482135701420744452736744350831969881641620274329762388958012147738545126016315006769351692905249187615185072201776098171633153160404644504163829148511078909935047806211579931929579259104108753399521698213117913596290584046396399485144210623136421693433448740738052489161780902297123340249864070018916940537336982244699004387496525058111761415269828016725052293691851236142907433278243068383363562577451000049879835027776035645232576313106925011314388268597889685893674369985099300709694390128177316462360093140020499332855921876549624472604959950023536162161388838957514003275133927832526279219956286191904525477411316717338947845207876569640873837663722770304411214994716468778361280158953076816555938242815300159137907240214363054541404165899820781965479360144644295441192387862149885071403645850294497212647319343395544497947897532892324879483860758640521117744790525496465815259756138623262395929966009243823243736789719488178099107882522175331472826728506420586944651520058053495555491066853029257019756293319972620783404653250446661453576706059353640083415749353987250979315545694289916575105628167789361764201556142245963488584993167371754208022417382135668719827525905911691715666756322398488557348873793004307042611564518680216746157396756642513407361661862185505916147455433369032780644920034032998502241670442448160623082737059586121288631622783188734782729682248584269441682347077175002619199835002035202833970379417330509936211278016581795240283629172905924629674785213998878896239252954348147650568332941441036398739669816526940903666943582124425098300889956171341923877448422615367246119046954053455866851349459393111129603622870155287701355891592681363331267820097718159085465449429781981805840447227906981741131339564621810574018233710276690112491325857519294019425339786008142509027953833117616745355911022939290008270581050096151053260627326957123243299364159987700855464023107790517353240024631774998396283721434356037261878893822744338850828540652511877908366642554413870677797966714571864828858809716558994656354220074675458729251281065003437628607248657803856453550461473762684045706661364829779502760697904391718080490452614692328364618133501331975082861432362052076150438536029250014931566647210307282083419702635640912950106833042594634330836472229411120733618073925558441514828221975086458862512473841705553373297054155289403098453529546771197780448868375023522466141554030657754388610714475170411473909999717376254138286507075773954627050179735473009827360010149735582006106749921363990764559621983301472840383006310780905594654538141266045183080814886357291917496994233473204623639726471705900980350886267547381745949218614860186059594314844656155205452793838628576126742429365575585957258445035442502883948299499725524580982381364120321531094546447742141732197453611323819871926564797389345577300145488304209168291174113255036366866095152023335003572415674062658956898879808347220219249735120129708638806560544445221548783773121351963784731116549742830103651448728162812908520849152972265486446679810539401293944950191495587540925301190879548516713094233843586030344078784283768307751255224272680701314260604523064250511299867295514984801266987083701909621839210040650159242670214733410942938137631647811209670181079876880501284233063658235324095188236640671373416871526720262343395027720476527647743662791349868298907190261675865553113366499668287114542684290375284180828990797937176705358382404480601207431209334528938066321828909774220917524870314159034913850699485875423808992430637471846325255170506523059046617813497363881330343372752923927867952083182953107164310180690985727746949712323311177917007915904708731352510164981672647542433899237673678922837901513771776961656656522513128091000595089439424546578454085817117076986434434070549261289102395680108797952116396751336718944214944872998288478916146667127347991028689499229970031722422100168621308266827296096023208842621324397160811582419049241313797014477715032669946556129728323076369041479366881655134865273003056595699211484660751268798597245088848331387447588984890241452384473979339845794547184910676575164262111876204216961956330492838658333944067103398700136928531216974851362978593321725753612908414903744909784885796018239332840954631304057287425826127861194903437282766134808235068309555664282907319327781114179424032398703720454571514198166612029729461558303725131767215026842537386861544025884238415054677130117995245197306681267714134691063578504261075810126382346879021993133946683197703094105632302255194450736923810077483217594565197712168952680955952827783002300947331189097642235715747190632705754706184471159650023618218633322985774015951714776298412388657767409352656532855123164530981467938482267380983077482853193146723471770180448477312258695216483921120774141866450108053931008099567541124697242093811015077307326096985290624063051868612423027192292207667075738187765745320816029629957414295309971173388985278182855957844628330678937130006482777255324388461166028320272163074152294157639157857202152590008217928814319913641818670856961601858065862771857699965765261284603036568194409936240767486619808177704397001037818493639169136137729560030659426630448904883323237606300935932027401166474955671908417183090378853772602148750321977435487387679801218644342630035643558286378736327530622399715362494606593169352090727752472159187920026479806338749088105943740693997470702629196998072095604945502724143878442708377885118260593880559827668528760686968871364934283045861767999519621092315645208476244774864727455726392502619246632745296900772038800917820395883842321339156936964136537295648131741044266683557751480365193983807575284056962476646929422399213078325367272669931757771016193920431887624055555681534730752494903093118935647432404740855850863001177657809190145924178227381485523495549174817342991456694959787760744726235283550633053825040948352666164401511658112398995433122699429089727378678642947965392789713770456240359444459010452881467056847291785930952738070717803905029195712355049080441629512431303032176049831761027039313242225568007975001495129273411077459378287967375718832278406795074972510192764497334508013309582733437634649652325023138905335173908120298435134927241483318807131940944074576028343985832241021600725669954125313774956612362483332987132300215335021498913933585954261173180072819574044715961641242613748808865710108595580183005018803456349467855984335554829827113445852396340228534990099517495871013343343184551136433600445431507919287863709275844154821685688516928890526601136580982591791410921494052115388026093434863589438256854356665507281313531873256323413529457250464170254063337567062620867493816586027180080683738307710287846586235858280897656750458716868956803381085222839655072545180471758243807318166063185441400545136553664568122084418346712007804457326257912273387695263193856906360297536520711326088687910860767238553079958750544169212624564256331813137239998183823694944761910579355767567535721857468552375976272977792496943692618802066304023795241012174402071548321861945557513879892768837057312248979652519997105978873740603666136722142236717029469941243004927150274034097963425151850780727119967187869407137040205570665234256771849748761955180444777438835204692191807285746171029006021499506624806276669930168693705352715757977580301153161717387978822040438237950186815494792652225515348783808909941182008505216999580757894258512580682173868305391359666802747467612071488930720091604427930104976918041619288213084361602744506543864710630776699883300636995628180469626651563842252090614248527122176837018342094620460168346109544828934226563250127665658701760101214334264801769521709856705480313256115987273627842918565930071441377786456386133112899091824341519197054997123334618703507400531136212513671996347924320702973791204930379638427018204570046757782662560955795343666158216784294006968094892529601937567858836582254185956929960124141475194934667193855450518704365604334448922073394169358915076783299728060044258269118981314711857784509169346570603628042857821849831752850705876118862426366690389615047928650814284311434597247667908283192389284436464900345284323125727340706530192312071886662436569963315309174142488120681983480252252603922968369749129647702078947633815696858853779546359101675576755622439624961192716584020924785054572378488242444017634185957180224786323906379328118384181694726798914778140039890555935002547714410367468771248763216984535992351568513590164121624707111043995971879790484140174779855497304035912618882381875311834217409819518940491773142223741173038780864783378955060914739482695898960557555004285264617529092842732748420605658272022059436784607802139068017794950637835903568681613642679846386221409034673573172209589702918608767155020361034475268151405622616886962957739426645326629327221780367380254819752803282673434853725387986872109212853878196735042236314954989415596599075108616978107889404073192347058368074367886569424321702829944484373657572507270709633307907429622219417343041889052563592722811734180707216017880139061503075417557028190099683426648089411540897897382131696104465014765610354583032196216441435348688722227445413263045060325149675629682827683354242925914433752998753795889748511827122081255605569863015869216672204763976157890815695249340677390440856116040846940446906670015351027183931282560451906235758620943784120000565657432215043542049603773849554981971156842476448202876928540858682743273760333298262692105746109658526351544402280932066286755365570264055300220202599924466036993045569860288439194675000049042123661401360408527229709754957652796495238788373548516306481210609681062582803611918029064298823107177186192724789730894100948641618764667825266271334887252179619399041261132479354009781474552340185881428577551308613634445686925291824261968449640521537806079048757283523949298786891584173484975056539232965844967946622253002506442864797767298767698423623108623875111971379200184459509753264862394314924213353187281157105153081944032800957239454490426417879076506239925947272300557444288686323260483542814308776674690312842177579760302987806203170452315873370492305030498804648149899542040804041665187386784135053283542563840455673040425633538178106209382379808806901665242633533098561054782131134164409249928906744527746511677220473790465862376654881276086289625273421310230361549005585669515684534959844681886328146749237179686242516040285736739378260802328383443340879165370161325947392381115650059745596994544953886862520120566352816915882967954677274481728745672383231339480571653575554327103420364833293075331847643742826670927495189411066780947038695157757409215386475843731888868102058163128976591991098216219598163010787085590471162022468042932540138577471950422274857501767230282191870429988980286223686316506122904424115845944775891008435135421741151309199671570422578421163319905259825059584427935106875011691979204101916544822014759684932631381567476728416323217888336003908424878909523588941852616099860623149535158169071384113089789674891034520817271845485061233878510190890587347164715614618440103441090421463499768842131836326996677253967072657813392942529360347443087184157104647625062449164305439283265817221233462388483335586601772102429497814920726409007883538017672635070057798619370358758393188289405262279104431040995642710403619893291193354907667693276572590389378406064795175442010506990367262852702661061522998331006791736990500244466800020948686889768443164448991923088524610843159991946844817151532352894456126223702178659493090560442153853510328649010608600408968926357898212987459664139696244926263020048407303971726318256429207660213509378688703342907593044473520216101384980771528844309662179594417504673965668000562251494259310219451055768939741540018676660505963978427285766563711868508762165472593846963756935207752122515207563407187428967702125461603716937388120031382512566767627564388444043315654834535154800497601132597177828827673250628269413648832737706592330537212401025337535244438535736394664009028490883012394265524187446177308029342337336872278113006548660064792294222620446471160176307553807068700849964211190470339906215882614925920077902185682586002246891484965881974732632658158184692834028364216345261729477612364678853366107096331784661153375767762747715513225944558123270852593502677410296809214815136899612418371566276938103499873583900576896173743598333591331271752901114783733745423484244522738296675739355420373022249630156497066888197917741164529868837242418146731224691713737914758326713958433407112653222388794319659566441544545873579808640906071210524328446426363676204579351391838187932689136099236904963397294458104760733800256671004716225653334633639503170767490755998338341625215546648135237459393452261849203194566602500945584076560382458648124019376258523519562476303500673068766572403029025508465159220640779904811563944203504635619506272879007325888405237369922981031239970381309574251358798400736773634508904231025032705342716689127651505705287240634067463642098645822078930770774653142056440323492026717037331883263349370039576394499089006189336009508391193553456804413758904653150724388892265764486502361789716772779212890485011571656873098391725529537666991909483740118029591879081467351954537048110427719384308626941399212964982923297007087532481479992179579328029058416443471301604031163170444062194498855491903549215283784649356354307148683704065279235858221510068216745301165013772405456323666643656742515082005078729185274320412062338510500012970422375299695707655093662222370908657822798745473136400032436622836069845661932266816457971943612316534635415658232778391002289566821304569559467385277065586389600432396384332687414307491595805917646565662357032881785069313295561308017982302043589265675034043058473470109265696102937435599411916121144844998822436665205970470820977505796060629135099829795264922117965865317291818927061535521381862397042318985486355324949493314235414010809432811281197803031494372833936397839230817159709124987087321967184732943032277622876112626382173518545527682661089640290574701518414165286128624989250512855072164467208467680666345335418900917583539567664013342728460576486843013019172174743690997442168236012330318617491578369418936584721735519756066494468902433256474872115536583132783212449877955971600033973323032640657638240481899837701246631589581439420277256623793885568791784087925002726653059934254890862515946262433876582353591756827759809112514969707392267538629567715208151011916960499374484701721053558827256575089506128369067257804178362992017418510527964053081285248886059743690384021147701817092945061140487836456481195883914152855430600231342904215902960099068804818722609510838807347024278729341355341140321715543421939466067941893537973142206921506143759423262951850531911742132035019199093340861741258941940223959999042416098757119458355529655759287965610325605044290597292703361516101322823374969443772082064240005590343352941573904041486676020314363553653523540026727240281938569979192790044970791501620185479638207478274546049023103267827066936146881469574445770941192995752083658082219552696077822130133730280193074184739827408347484529070262869905284126691624360058998730599644801900295313586145750351898555858239965972257581068110328114947651056396560816793487059120805545003420690559677803524286836901780059266922332120833694981947917736285509964774383521782111829159547939890045267634393992324482398321799673107210695260583430094579198221472678103445897848520792424114002432241701114704558420085610209066255487025601504464219120798023267532513289903925413100501848474308871237979947835251903930188591342006087020948749955442374882561003872670205417165101617466778692270306550524066010111185094509411921074680733287499804608478769381258465950467068066665101825187692038202197938097239761804033371442868234982953722632043993222126508793062813218474539788031170204352570176024619841505010560653228520632358006884356126834734050601037315564047207305590359536908334738981976281045523299241906237971562863703265163819102208725810390259681828365108203228436251984385921036971021480243967900003433222008248361005661629042445136475127507305689883741006327558830622597961001177199045531767064937215911836773581974846173373410592046891127782724850293473529188503785424722984039505554138696288200962276697112611810907711862349212369385404431961518390706960757293714419240285373706375023181766218156185560388196072901574638155562059268784745466225647360979402962241125280330966338080697095053166219685454302878156849934914025423142016262710009636733361147634802469701585625671007357529106127217322599162532541567522595139773319696317785909192359832670674677400729489497981114023699265271491215675204063247752487565387091540046296125696287136624748198253403465923651909007852080043413757359913007403600541881521709074772205313895315225571924524335452924841618448134272353092470134171335887290420099194141858765492747574117139823135427517757995803851422508987565767204758821430401321095099042658830501093731677758657616137437993665674077843927739330475244208069724630592712332549979501613810113705644938403662120408863084557611592645107815494044378554293008146869897862457532453054762062323305176087089488527927625304259714329842147746496469211510897139256273964978897212310490389130187086815734699037947280444133894894920356294381009527523786008886932330917670838086789201936289689756879415652795373839808210485858799972427292185824887325116985669948034738976409940607851529179604868395295592932171562270651900877831434511069273548702692502007362950853397493605928094186876530227455093094182190692932965645892215442917011823136202552849857677391674711879968347083035946667862313112807405229443271270439829683400911578095026739860880821047023914900175882373392007094567295289732966140569398831891262600110085430969135025416982356659648363473852046982105222905613230390847812803746901712589582363349016021229869942086773533912563178592725597501375758393233731056063349775806587484217829931848189189200007132419215614151737847897764588762652519439869117102905343014179507498895994773241498760204670538660012150960015211924444652449285767812640569249237225141310292572708299552896398176317823002296071226606581646043151767943820067395602412472553239645146180502359395282420546016418548097188207822059148451084245176470732715369494066367984559671583366268397678303049580078905140700263205038632057960635698026222503051095847027063256506713696005357744422518970631086855538271667295065720137107518937693035572528770867408452228826534048761970900097706639635992164099919027238690744741418807596630323823863056364425528716555412152756561694568496525683702433013494340514352346537881925492607603467313946188877767395860073577034287487618294969030466945885175133115580123488125548926387935782260877871731913146470214840256125658985566742045464741743144252929718019318991783050163611272220217528424197001741601540025156059943823151035652031023548647646127641032007532429442217058025048715915784186219998586881901311017723670059978847871754594525393192066774792572920559571339490063952601889185851301575461799705359308863603788946221158132404933780527362198110964719055982754237912760239470400903873543408562285700922186118439226647189499705089977158342832053293468929658665720433108735001460381929229065626124341956663748126853151574320768308582215466667176046610999094185719399899277877493443778749686613045090500339948420619993529066211025824390608716497201477392483793362124803192746131735435987101001669368031349527208319102175100765705918987089140120269453044326425315431728187428833474963837559535352564406799183049393965214405879378774739370949623878551969701056165393475403046171176180867576891335734905903679953043824589435775295947572303783416066113042565568161748315964302645237274234020265201807108590822577912063657670697542960470806821421677884834838862341492617048897666834883379283266439257750319801411262251270623366441734629424739783644303426956352849514406227522912248315876075805106227110800319074872855169119765862034777998566459693369556368805248699874300548216903312354417943898728652088987772522564511266993352014186617858391884801285739202337079393160497053933225487039398053256897029388229404262502323521027019119113350964412698078543805826559121703820313392257381343180051912006454346927921146552790976973326165093953463708411722883293242886410883826913138893181903706779032696634409176902861131840183415574423163566996842088713163609405119370165297392934125336792478007859756022582242210781527288752946884319040047435504708337728480044067299303647582148775755920697415067519511135514047296193665975079459277952767811946459742397629826569847276781303560842353744463869421334678810602719202233818457182283162804371594220867315866775239026026248318802487526794336967062734529999004552686294306789679777186872097324717700255613829986218067992093997535062762906445524323683491536106539549315581302826665355971354866884161085992509880759544932351825225557069585770778397060605039825547695280725005718960024140346137001645002539030169761812636451060467643710816225779182638729760374491691583993500139429436295686806124056541525944118500359914228859559495237183051774090572741030134894622342900851010894002182283580060400945708643736181001727168302240527789437733587829890227453692599365878701741589462578912853966627055826921433806051139087284597371976946744137875205638195802945797379382851905015357946348504974241824548432605369842651610308443731991918071017559466229274286648138774878031469198089503466836198595416888639251053499832806187726907823903739400285373659766025753935347882320628292381720714536341389898849287584504454942769189164562692163160051213087676883698353551996183356878329948274189334867205400191723003588018892172469260853588976545196382465971037463905693171589443653429778598866384887712977266016561999664719352568174335915286716040850946370260764982692392122887476740660329235062226953019485597627212643003635405269064799586735774920348011904513739417683980949863624295639309913157273399565344460318885223381595391122741587765307008348629453559726206860340568049992496687323140359690225323859458029382725712429424734842040468291879544607761358685373687840947423564516237177227148401867350556371110962490086575203950954473834677580747983084380384209361431004451875277018433588971522017963843401779263823873622115920153610546089139939736824427749405103157322141009326392362255921566091744353094407866259751860359204621228962393707419434047193391331831580542492409830710428902614896040135844842102542836050695473940651415235862031537307478659766682020669932800908458967849984556314448027996129754964052054846765764559850845131047384749311223329189758313856676610905242053223251060603639904122293909330746618342674731487203532469426502753704330414959056293550029595624207812513024133247633623878854217447414030333716986457508048313219082358497856915999133385573582192384739705138218282177194503342793520877388470853786550953565617852269773710936034207621520044007212081009850457180292522021181734937937957809724805995684071258318717054559472239579968946648960314173144014024420008530811910921236218602508252919351804240442267006194671084951298226527783918473838785277281617342760192541266670243105169865099413961618627631602527855840112937686067180349722870219563507170346196465424198229390066307341215503459318603072165035336531093933402522139407423458192003975517107390985752561296083005588836482011854738415543326068635075765753725982957347085739503952030470058941588063687248433164012241309819268481680687072161499141766070107376106209398212076555600793045048476358089469395003902026817409836708372289806942180690043962489797315834332217757494918365535483007553110397934918979171353121727808950566857851522252466192978228203584968905284020937810849315202542982626677213406732260472652593808261325621750976494201773036895000021153219338697772358036836792852214949377366956274977949602599844025080119499320549309412821482239717630730742680672132254895828047949954088448818978138797981607737184377936979207124487391473880094724313490397019101666498821978861475784879698255247164723496636981060346949680859466096094754380008955584579082705874231455321151685083401775912500183899586653535169679799729501345437826679361087763770293372941009835526121581592977547237168328347173981176543160583391517103472887143866976650999448111044277361513753061371250347551792350859994462465717068444466503454499448225431914222527087838818357340418450855661234078992942541244342008103593555586751703924628270992862424478222486387677467127076000136667037732636118563591806970658075642008699265764839431964321978878834534231261111111488537616175159305337829874078785185986769587861468413373141874535707489785222306980644476149281235708141895135573156571744986820504125012408221771471666794947708900172549234349393538046979786659868558050524344684462655946611177652068796943292699932972745533742130997294910258149703594796283111464248037221454831593774776182212835955040685502143194821824562985737758127957159653316660324234282881050032763814039606298185003084027979161499636499493333800034611476117141960723079572980727131631405902784103144231447903919943133558982293535228687588895912130831123128846968112578724427965543594117248942120070638321208448040706700346697922898558651198538323422783007989609929481753751616088553504307165683096494403984357206509520404738440638040888786943574882687796875679876362483591939548889124807375921664901872317570656944751508704686309067936552601387821083266475764634089258666126830076447093067522062494833955973365966599269167762049622206111439541050683387581675619029026812712115734369299394861963639572151742402341126715403945465835975961537887935856849325212697421177570329294698324300495189061718315194621980095601852418546266314097991269345508929964159640956553295951008704764831359702289933629579759011588707846723410811574592876268029366336694988413003004451185607858822933912731145379165902974157870116889970781093157251410670231673501855882699225444072262928416787561126794291815230710486050764389509676567949291493124100631917671960864465094523326070800120751425526312345942940115040039944719232083841877802595316921791602186057249881143918921982023472006863050975856684885790168515814661779855761229295561003664435810365047633807278884031539467790213257083296302326870700803231008199065414682489379116322380715185316547825674513954650130561975816425809238500053749024889273861624092903308792106858842436294272245179717634505748430832913052472545750402660233146116089343093561152099545640296855975006782001173321221701595554952975364860765872411462370113876869856807832320355600935738370747576365813877335953732794152835735830026938097525703697952204845419670668367678181904224009393805668987861694317895650042764619921562417676672154546239048198832741810686313853922206662519818292647194487301584212709082875204443537506797927878388982991339108877340331827454080526725877865120377501105292328488038678972818061103228723794430904320307815280911107239124261817613031572001280880425283690971195652537211854069809597675844157180257326745063253853766361155398998369048923064196807737039343473444762163870204103469844117251565548476538750307826916374209180332486097341427394775062925311168217793299121005761873768015111744732843929632368425796617875130026643731097512129502671617672381463316338950939727337970460091808307332392782892226547524718252838054374368059335208232100895482795289577086779034289861867771374238108857477125121349599826772996062585028615213386801743690198587095980748997552775216754868120622337782209987306719414462564091516669642481409424940054988827121863907302203226448717237631270304656202890830025754942806160770704840524333535214298889438973114122085454063559684482571632313221860447688616495018532130654808787830993468136111431275554300689256371021377629349585008206981273457995210671233766476351640995080326911893895705669164850082520279497629921719961268564936422809375770901804601475368379743576431889930392678752561579428067443330362862568975851856784655697774522032800861803646095704363354249242952481047028416510585895238486128414690437175806013532204583718055816725308928541620977269847324583578858337472710872744337421604151890362619444531298533940295034048100284126255095139738062317478289250486177062518629552844697060445655691006093925982602340634602692487840255294803044753074462521337737946613475135628841837717453013616776630647080554992577239862607318566022561709795994386437644275026742747499355863208473544780566117349070741049691890896882674108163615021322791173232531102419632289959926522239962867263871558776547996654482210464674135456455961442433030483665645279896230311449731793005053451497428701503513851069268261595798710523027101227323290099462507311833730230373944688915161659778206430326225108341888570563573633527884493775488232186777897068881802534480104086431603920059657779552430518393649540695213321979867366852769403338017796357996410511158103285924139992895753551881380276881697441158151294922769412504659461492270757755427104387579845780898647947683226929905313233783378397454179520652440192116443002010503805525640520002823498046075381600325973305679000093095122134618910580614881314101850190703464833905940001575552193062220312522131550803409342432647467490820723718054916684652911362907593612245938309880259429014287166789657507385219375248359179377657438645156961706167555192076888971305733008580161501718881068553628351105475612408707089626984978680507970103055434944600711987450433892114076136863502148691017489949320347674992274001629914025285345458434862296516186237390301840983604349729117960864351579138390842110956629851619411176835917026964931566177724823691287227269633890608843288473654180029088043379326277630928130784436347900770274242964575273642632167365387437510234364417189883673560665181668259731749847503436348863069712940072417706621651140738479595565220904588688551343362012772899640182025444655953360557924086380409840634001584524258528750700607750066891896447501684694417243542555129275781718245354778306730319002339957265501611123847279821985155115535936713200238554933870777914329470062477587071793981116218563552348638322746355609032256449568677060614005846060863227365456318088043376340900839664475161369730393472668774342134327320678582939534157404767056663485134269020382185085664716837890455388543703993435263691602545753762074000954157323561181375444542008974366575046309915001963367922790764359800263839410607063487047989205881096182516380462392599962879789727958782083409743731637042055226336896608249848899385269976541719683978728591365676683839590085077013438395019235095257077187233312724675114708149598612847368867788053120687012907428082320492781249289844899089758718375439847819690159436634793034797396880655853047587385512864421697758819764757580487450288412266550751631336192109392954636263010312937379725828019371039615546204939795544307631522272680297450654586396946878319499557447143300640205656027567080709896910433024715906787896541443929875741857042859708568597716057483525787897012045869055411819714118310684665068551264602884368694330911638208319441366855741351531414619822407591118702586836327503631335921594712429329847571931177925408204786932242000040757688860026249176724298390101033412201882457087827507630468236112622461290393974606864668360404165132164932819495268479999955614988163399034343538455251259074188092735519389810500981284229225833554213902291387998469725302968409283116484683048203520098239977263142852202556160226264321096073497362420438553285487071228302777651548047693626590522344184837720732724923903554202903690022754359108859556941083537700673631354431768758670291858599192682146277208631518539065425157056513308578022274055296265640250970280477350689455475110563462047571196111819966224932569392475896261871828780483527613896434625956075287761389862792641105097268742994452694372552366259784488694662679087610353484248660613135273706310838997441178177854739143002840152329084828362016337108853504560777358865866187959914988941372011449742152311321576011752437585467920343365104105659903464002250456904050202888202376959615319660644118946730059476267636027653212902636999767895531895506039721256174849761750282900593138221602977963278195300597176177430482232773803893722861677667090092593548324345963587874121170973048292394549741413675633829712786033854959020754112395074805470699982443411041754092005771630949495652223152818634685987483595447335658962544838259764392245390772972148997750222097638643124848155190976828060107390975820226522682330738760584518946300620184859885673174810760567705156419904604095346943018838659370812202177351526929372069405475514772258949893380604217876190198191467887051920089101373285747726567977544305222086872861429140977262410608526221440802786405925187093269355286669355816682435676129223790791818555245977368847055382312135999047373995842290646579041968919849069543279548601691962178351418478619084402527244015504419914908516960535698022299913495782712949664260594512553093982040149367031717711586801820679789466588487505547543304655765430826201591461077872126457878621064625216810331501454858168830189866021700537969108807277047895260917736370366155559692928336405799256429090268332736689306474409834309744434765492941037490402203178112555043060114081052001873677034849142254210539891156952266866942165288370597800045352936902370589927822208699090190359795859463496855065809382690938371458862670876459991353173239712072102776691546059235149169747177344308744485861653185979702500405279495730055372594924736883309727293969707871370302842384958946866306593765861845580795778654578949373830261320973701260479445913201348298623263159990968367886455598942011192476867035107954738582930669128738336465215947922556812070442786548158338675566205905429741782288036766317607017898219226772475562803676304103321501062182452826083091840162414407085134936649624718313018281775482928231329273881015430100763501218039913447623780542245482784581715613493520832482615949836176636352791535253375873152743910487736743289564526923154510145590871203082299336164729505491077537166413440827249703176664499379368563397163560897491136241137226632514265898283215322232345495073728417168943025424155490677607136591717811311411863211095782177875524684348590685317144031214956914054233766961770656112064488459169800769072456438968447855968902649733643091464021358461978733073525410755907840024914425368733291266786265110300824450876570020429467776199375639438673741741508142053149659134813434282619711970146538780517951312838071928193021061588739280629473697150044335528524523065433028015116768702661404057531489614972948216533535006503459609030067063999607939002898891227996359607983798092138089478252997056916571687379476883281448998710586593303172872986668316778424479807549406959271278276357606385348965642249907821165271294729315049292545338598874411693329117996054284079924749901255515754796550046257992219992046075808244124031583921868500278297072304221871334439199706548308374134211209707804570529477647068141709613251373871527422700222567095720961740040889938382282784024489901882698907313034153872387391875767099167697396091512149295569138329065926899129370841105139731813386166530696480242559606711544711255172362051617796400267605372689554619473707969555098113784181499010919049473048850427710783595033043163264965560070601502754700371743663769799450539736281155404626527740763604214529053694787634964347533921356706739786203516003716317143289672743464434388488881776986529441038443471812268130659587097972172665775218347385652193179334904817177743271298399280191034495042837142889116976011039810305390012175087836829978662953922721036139940170128506169905068938241269047132369307967283889238507020024678116616979553110584303308882220163076007141602473548670333621342313689174550025929975527824333737380243561860335198490261725220284705274363577373079658625319620896910266794164657872320920669830700554114612879970182596562073444362523170757929074123421324648792163018205008045507668515363935500459075573911663858534450239719164113122805988449129585553466293033460018528133722383829067839063389690616383328643511267352036414545211530657185864526300499901036765863089383606175499163422484626697574834795369130620827813482104212945133268639835727451833623768138879283719136493114827812893713528257885696561451017192823035076664588022557461887901875732101622132376261519598864370516818365430290842898247357249305759841387873765928765080431290771818448361901638359296361236678186377855033397893053971421665606496136415103978511189491492179542340845732314858578949331408206030214694551953156283489872428990527078246767207525907170488497387013015519464717838361501094151005533324837435007137886638372159058554139999143284316985458320259913161245456105877108134975733307793879004956256445704393945933649517251164289815378283634045871722402355039648165416347709737453402873148901887439781928315510520035763897027016817060316763708315018864856930895172056752057799082081781307014355022836804356619031720306377586652357516749830470166474875469024529375171008469312468497816789610914504029467756307961137231441573908775017652796783333774935709663758325509040681139185731877504909074167301118716432834755162512293772625314820786656518015268789940762154173570124426805490019163628680415625598001975324391833342031438095075879068392740921531728811899376087683025555001390287634622713303673727201754059076264414139291396671007653753771375950333919802514907698927544064307343123535930535092794725344683081576616625627347647187471200861583845461983987505137592447327279904839235721266407158018404124732430356095262155972506025492761426714279262731458834309011724751026766533368477951353488978600388861919987726040303362791064732066108862259143116514428508238986002283040985165416493804395339480138523666229119317245330160679375950063806848062617511677337167677704286953149147644374464749596670480437577160753445782431223436280813861531687449018870496652784153934346195634616124455071816838783413309926835010861579537900239192960584731679788530537564529327908780255272853113758642751367471043728481910423943480311471243819653141042216069798983622275390360245561778206677603142911576139280218619108954681576027980394088779146856803611188900980440022108492490857815459060734545737579970327007403723936422553109039492069185760708799798270812909459414241204558332563193713285118454234368891531866528802488194669483251595299397979653977425258036880415823062217862150798204989856171229600200379801704199707442549466777254850129083271618586623734277173363915707128571437550161458324993111966738004013732517112004591773638637564528720252646647595005501898197003415083980317183665532308847474340730050062492902255871376766301587143661367781667750149908579917442205735816738256898805077478736549157479253708812735701807431447645567012534550709241918471266037061458018273318834957590896804350028820515151330931899440138720026731187519158145548622352654116810700175218978507613859400952222329831011900373281912435438303741902477945547849069108057429862501395693229871713289130568357606949513436494957048175093441574669229558092523230712324206939103212086979154271741782609670566099621253900628782524996519228674283837582251038572596916632031429398019283274613570350291982022951326198713530605044273204367388006002846201459200528423742233173203897021908453084400378208049620294934887510828726975612533536201744704925556090014156064126616738425973351959010991699226096015957693120123706015004855634306407962719510751722944397685096920220985349429455392300577521165547144009865631529927361295483300780443574889638041033044738254543622914108294633589881758163540612132071141042038546293079532710073484490816765752393546371044969978409855385214671525426483442372082637882785265588876385292843722294374831750611557385806070803831926293756998372536808287729498115097079730474580002792186016017507855986658039312844030229504947081375263307669904961554666502646877478436743535880155176384885964399404440403193885564943083664166292169560939413203522682459721575249182565218559520675615522036021745869984899036342165609257710452488009984893900610123911814211459748652708401557380216639035663793387268063224497190739933019268991202468324400165647293414759743041677559720247932571503847692029268904047533584967702362926712803220485920968553125283678059414324649228931322536405117945955232684536271103914735823859688227485581664505250726952777676515255276616671757214404373210815674185512870998243715019270602172607756011104751486224777313958529967666658457099261131364586012393839382293169093802099002358601320735511518038593445074451543132779743003373542127011364363196727830781183674339453008513755960181032762233400857395962706216637094420021751047190474705429329410426528425216392548058348945461508587088462449224698529530797494814462571746206285408779155680659153207804750249481156512029018168462625671582017824046258717293314636641418172623070490758554898155945410082520040209920806396575932658865167956260803189849289601215702735972822699026421112615543148998878812529789585635744706767709517047118055073919092676827457830890318236463107209610611080135382456162669875344823826294785788716775109727517968744993206079552232203585320666930881091851261666345111572333036159793360920940588674210975599330311449582618063065069526465469854588851263428904200017032571841748095473188890101076383582209896693168497398314126323438123759366350830398996652023435600052744668062924456804076276252824171288961583798290752387797897160262779950375274127836443564229291150363929601391099330853316087337197686100740055776553981026431099864290323517117145751051226442448487890014554770249325483164712820708619139255777855909150732636553557188694356477959634725764943786384730405979155754660195626041452791820966809266895249285299908592941395183765406240758612380037791355431883498553146676061406027538810558801526897650025403787810934498735564075345826980949926708271439559960015965516094546602854582169746599138044837926734372220750616869344377013654333222963158477434487001414680679029326751906676829676019238547178791155108394153849536977571620171106536995177549099446429752885530588239252455707436158683293667715016561293054674616799632235413746047399196047536798621039778049793629671837879510558620200511672867111203933609731978930286945692043814606795683430235782023098298360397320028968896992161968245280630727603689352278652154778598778973470293402003842415814781647287410641314105018789465234849897561063022201960605848711194988847546715670326569949084686109723513585509813457824570112778738545980451945156155667901580251004169914536268208192973135521393586375439645705676891322271257512012322553610804862142277710723006497035835506134529721763381289940371246414643308578489851646684888502800339309386417206422177818830328040148108108937700244056396907959409482662828091029952749912874821314212233356169301263943069796012094954724826541931812122788369835796647245335854570819213993918349413409520553215223207377877769263223260131566091788691336406887182967878707329666987670125638369523734084863004580287649611824678806534155995796579558197828640914905282137514002857101075993081700374977249634964748208493519396639794292561126650074861387149867689139564993344373312699149589269943411757112605949686247338468069523570695687987245304008961463822159372274188600548523727665355581896096893217109855013652696838581158829438600156035379722504288856622489939463565054685833258091384878823031938003375439395009112837668842445679586516632634727561582486466004361297972108570000585500179691899642493093455365964098312219241303350752879948574282091036023052136557673987614737265789560235445667636202193913700204151260204558756515424760569763562814656186834853596678253404814400872887798703843824018855369297975935017390620860884030464988187817377149421329030020914870940696567158251271557293052451826930808927824758751620344233544316876889572981812492538702421039986696816418691568552263602335974282816005640985930232276535047926170158331858332974600041304360906732337056233935096552892848804005510094697337813140891641550879948472737389266195931016339541496347631877898758414442213207306705514946678134785062204562846292943475387376470862401880910477953509174953278699655609240771857460780146378741040810474723020516887198237562253765204266257642294759162833229905952037709180277641060096760099146525925801258988381612651563404665727516402974015138055235171304955142109486957976155809678624100610719655013113560802599619840561487706636615345701277693479077034714322598733533988368229670302816332442798129369125063713505329266032701283752240612269691280736468982016839813582522046785202752497072672475631092459288424680009743340941259844522418130543315252695092168455071774386729649161386842234634973666248354285161852485667333394170383919219616834329526659294995564472532332608917260691283359410461822174713896962584986488905325252466942715233460184769772366171042784436152532376287376846474836086984657478415703281416882556997687430330650367857282694657193957294507175549342521913909382604481155160457635134376883596663921601903973669905130606742315671691398525610509138476111949817195168412290759021773693548506364016184571056696374270175202408588108600731247249677014660693047560962466162034693083522293946712280621739180355602970827259980778281600409273765332920916591987370641017614235870209933253416996101233242191479866706685803533767417022372931156286424356354224219228691561620209909676860270405332760843207922857573187110076359187734010736947000676224251943854491959029805208063871857081940348339725054730695019593215439897237425731004646255172158512092905235655883273863308480844523053592012088166910742380004574163367345051957512843958867791934858091977310958547077430524050274107329345644655392196096682976016429538438610389600643971395773846602099693009789956042051463271722918698602784090415170675262683689454587657076035268703846408277722789615152563129146018463528590260654284925210141649382177409344032023336095043179404725449245104078875274274962379614195917162102445883661464949179981733599383435585508426684868957855705645766829901453906159273161036273864729469243917320293926063239807367087883910585456476941056827624978579195801759891986972625163810972650517708582585770657244697774866857169826588284938386280864660210607979189251697570150446237059783376120645175550174430858225897458285060025235522868685082520511424582674256423206749673777168487849048877658626848969349981014784003325289179319948189015810250190303862148645466168079744456087174877093189702392216518104456417766010366803191880018747972969702600685900326309969041328332465276079905146756267287153726927744394404940996460023347893726484701071216449036691433570574519784182737237983644972168993943845742087650436693614391010485429318432481113294014282182941405227825216622024195614308463578036425134705980821928699704511022069130713165056208125482436464801257466976923072512986137209566328257721748934676554946479947371773891382955567739918267449895982610686370849786552937505424741310746926409908524748575171300641397553159353132308986523253324744582332051491759357957987228270779628686894114267422275828577399108587983701890854601561696272722930427548219280106266299874014612583640616521121984545725786584763526338859299478428451881366060034902260389155435138478226521818075440365432584446881602114144763243185442270510984966008782390642951420730161180100221386454803781749152972015128958333025611015638116810988191449295981588841828757583235478016044490346100335304300829896822611780838462942045252200540455367693404549065731816577341906005771163240066337679827140155096164798405718271253422345889581194866944110990653177475636290427486002518793029546199499801309576314809430614356789422837481291701792905675447440979505059702113008402155056076680018763824308553277661143256925350106976487758800028728768173666135620329234333255374320362598900141896864043431099823788879241428089519014247697868799927830240463265259751483701942560781866923367754999727819106689919150784790927389758834922263916534104659959350861365708242650167162517163108974622893290527962572060343833815191046463380016477571335274780442258732366751642906080864812794151158218307585228331015191000734035277351733971452295739594237554338927384404685763379448644393746111482003586325567830934467659938529777378306115480855341077430660355097281124115811149536694885561493173032721498754791658007074205300397352762193716918517786937416317389785266273576186640313544252176959646192241194905625579796619682593315139314652017544356889789206128737124208476770182510876518582102288844893883165959897918562041615404629867960386282641744715281615670086116790070316544996835351372567739964434155255441395591150393996659325375371824479676357440982464781925662303164876775454907004612472664930326290837679239259651023533459497581932560873611832327239724982238506645745142090137885473599570154400183594612528625499065411552823336452506357717104026177040929785223018368671250364909057541518731758318735400123342903318944187961738113256470692651722540691087998564160210760627283444520306591123826012860772204202972908749837225574044769416458958384122935499551716879426291154229943480647959930802848646516507297277010276603192988695239398813901557334532447350432387667274694707929159520199830062230980082834329728141776166879820325322273679741530817951351179150951089643884725409038970394771370262394695507881340056132791498022333994473964652100118265744776366371260054690376072954611180545937597546538267848430549373380846310803657414094726803954260216404624017849022644490526575067886761047404390516425965467951068867395093333449247787386225679610691794034988792658823639555361859115480727216152930457750839205950017892124782755578828770711745298098958102010654101864232671768788670560304489039362741239664135437925883913458240908000832950835897903793570147689221461219957702366520045896642799589217884860705826226550707591230686135618385493872439427135856764080156740199678270745384401182828102470408209590351123980516774735977084791782101344902036324764486771996941611893348823030067664206442297439731041002330081328618965616278544135481569101095426765776930926841808119469958880826527782544964864314846163763543005603234192586933579555809278053461142280718680307863001311811715681582974058673077434328416007595619007272223732431917753654537483747895512653580482604347590048194325006070197177691462356284453073390478191455003768157708475902855812576165740162642151155611542875580914721357848326868171064160371257939893465225586836934080769504396075338160005264531319683330378382628320493050303603694784014403418228283601968083971103696960823931533100727682551279219152546014949111781101171832933240452790733968203800261921471687897330356392897254733580595236742169835979165304092638241470155608405235119349725527736968049703652494626556180336951992606556604316111196676785909375468541709350288262329681375427089485145288035469927330006039573370411503568326300455040309781946169348607729341176960900842709040207316516193904716223535779651462321893106395232369108488904145297460364486346974685232305334583093324460962010270917835942937261159660276727847556004878681451331392579067644931615593655770155078076143545531690928134747428536794459359951913357296942031422449290537935817009726706325913512117229455479863658099869179124757180020130376657760255644605978395528513397453376546803090848935150588342514413829844415662590580622340376665693710637127818029446821959174050616295882843928271293617858796239447913542767368906874510484794781491224808005265106258756014237693526524992896121591785252584356182114740682501539752968477943938467509723314429270549680648491406381070417965813348765191555912171485128106076732625792494946253572613025022472638905155488700229367201323173118185622433233925208058019532706278826547931048161172478416824416120339784848437096651994969139088584460254146639362732812013108867824975064380874981135532155631025603288201290276113753463446839149623167242109817819331027105108293559770397515495853277439398269254597981658551362567453844516307357218646515431570268474876661338023491913704732892827957233909741220523113795832414580724080997690241393934058324233071175158288450631413340259681181068839687188759936986788462781518906968476087769812874534810645133946859222246085649559368400474463712637959727820063838856309401483056107180273156988365590725443834075183780855994531717077837117015249715377440727133346256331420206931345178981764253510867593314994496579919736440234657342981317322795750232618845544193147613892147117283462515701350130368459860785080825426084017239168612241517339482890893886914321545001789838473527730932943063447441015018863219080500859805574752354829732771995758901086658032442155327243805877896735034324949788576560061234134080737051974326699816721173942850312121540640224099818539140821905274951988524618121488043335197391754925520370457751818507226800294680489633299896985938833765223209244180071664678598299953447267940464575595347666835180011423335950505511953105688425507572421934196180306951051464096196195817534695136961963667634977420138964899432311856585763474058771636129408457545046069204120590115400372262455457625579390748166349471549763290401497945923521411838710520330844867857320604108701586774322204852881895264758388741227831612289388258875784925411164732484656043049047082905698198103227075197297414464585908602548376071790403192218412333805787886907374980251834148961094855645328859225474497852697953709332487142664430548883255883818167141112226780507723028783551896949673847051271363733532035034956015350195955760704982455086947176862147097469092718290821473118271628562708752465110677356232436758455911305633074105119399401476308277716662370474453971413333542013352070695093986109284162401989738555281932381305071867985736290492409940184541333766639198144283992800299136884534841860220659757717787410116470921725665016031958446049001049666880711265909854511848024976231228936299986084305662371343922767247139429012489163685185921300430975943456282176773422202188995782863805016599111064284632295646663825572751090274840532859254472595696375453928790434042761623858704197656991326071961865522441366315942354898971000593283077468838754808543325719022618718675566736073548355060124635652909102071156431454759677014262082626646502500590605957316339207734743924784133550239476273270938466670972609399770705139195983843247246493054156906251909273072159712468352659973662847789029861537248442736470336460617563712265922784839799603827069705717764616595045318452905144964337718679813121058884707754758464344328927773022871251395465736891526695172570559397327246582428738265371179762607127321129088135520446822715488493374205545296814684899031551784882024719455516610014756717490925775375864794731916662547910971543158822240884586186947272036063973570304618622534315040253142974977088150848119433125409158926470043297613715955059075115332055580088848285621233722575587246328534168930647204596202657117296343427256634042473572712512961341085714808486488952782083240051149005282597034951566384657286102670618307501854446174920464512841015970637892387362179014068895993145408106092311146454403041803849680475830734252290402677208560864373661989576581200279777260573486096303724187416620879694577967535317334321872528841394391632102715334478860886221736931697100978684532260183186173523401394116283382289512260703474408392699683354069966061464273776284502620458208808760606761404543318545827012208006654182584907222925497984251435692976040486198155111016457524911886288760683625064909283677928949123348297942902647161377121674094245612242572650246994743632022298130334981760430605619002099283405350919499768093750636881260224911682084690626347434150664235285990582045844389184595833716072306519867834721389123933901048751424263153880137109171120471723030119869072018883704705262491562274730954918045154681930053879327706455579560017296295679730309442883880355763525418997159937513198380005653431095236063041067511995707096665420827630991734775770077867664113083248845599593782998783996602458736151641738014314690808732504156901030786540036298205221815114576700013558651370510299382553516701632944152358965360361413384502507272654450536086574780004617523792946030944021238888153521038760190377080614770801255435572086986389023547421991024073509149648421887949672353586017952266345797433945674794217428223285616984370747911219766807958417501352142747775796750262920549383890168689771660569849104356900802588859461047499753331265089447001818144294397750320837720366599241274970782527998098258197700673726059029041928002517869129403961737801947791047368945104065851300714975710244513926478366680543818356914352660801988193192154052454026925203930338072784774234318040789000588364672735387783928199913072137809024839117847513619805681406443573457268267870721656912576004905097866327700269799430263722065825607072435138678324423844250521730593002965406777690591537415540473965192985185496390923338510541852732958167311059823063954669062747336786457738397955266390026590288387731881150865698565568054325164261642278797311186812818756407493941172202957617651953846108132783046637350581107674878621534635366236508991084835341095475145446717449435336524318552087848233044659340536875500199319092991050644006133683527491936516537730406611479816409673705395898706127836790751880487952016304023949549078543394239515141658949942813483980450251829511574586746861189802086172712336859504451773911734944737792190285833487734170545711363282620771780844623352796386169285674037591640616143639366323807784518113698036394516694159227929134565626616220272899504722874049681258314952451445580301797917862354151018714789565042273220789521889096490904950772535965430981565578848671882734659330878554473511207426196524031708441640245086516192221864630739268791608382531498103515685492109519841814008398594442064633776284787531755960801317143200682954680121139639224651619715514642738080363212180203601627351962865545154237561611295858305086988170463350648722924579054038466891310590115659871852100674945650127383507229489819802798520299132546063717325667529122631108279928914755632438569236010299810411135559075523202385192472399561498992732591017352259960798538693240062776868507437930524947091041261418852468422658224150391957723184493771001954544066532670712349861659163302734631945695191631887106763224017557594451009602365630017334542111569991406719387027891125551285323608035127668918096010077102602177737260721482804029474615592151547738994898107804389487123407089276349793128158668450496410967165470070471070055570927397810113984073425089568664244872094091709039504157623633092431535565112325191636876538429470326532774469422610976786993364303713629015061900843573562076203785389584024719873208605625085564963175670202799124263696864120862034715430316070264411099864368161096601401585409456894828035716006803940883768428413437058188555346586709454688531043060445637391746689555392655750073371532739004547192286862048449017408545913594676387011102384969374144993762165866170085067108240884625293033321861388251584160864967832292406973784306092113510726243430106140402100245595953757434566354972189155955526038765052737563867629738822505983425734064272733152864680321005203683494470302342469398618384373554684829124283107212147112816697219755457642379286189160646931839651602634084123218035724295752472913310801436840503570050593348928112020013696737632101768813421767761651685892678970027106660336438360042017549570442688829797471895617010120475255268834784422733802326155109265145937817418671437109163498088270258523088662918422209577522575010242633209359791109473282515239379973818350400974224163839014197490785460920088204016599330842578327940299840711843373328325778089422589531888251347512475078418323038078463571144859010289990041688794455305818727985731778915951070313263857433281894473132155370046386568022953717996360785147048919675483826842425176125985937751059394417248730872408989708647034406376118215850180925322918772178602153940554010544766458510563833059170112509905484344149237639538077485509890314710287537381553174107006800897393606912956381184371578403690445037902761619500738771570688478839392743347008336227364220326702026768991540955978141003634898927545252289805760669476115300590722175611902227604585858002200689301567752580652456922505314334185952525017340222772113493677634499063818056553065332017359743171781460833974635718353936055290471795831985817197580724180812183112141341911659561044473134875966768686390287642290868882235096239725557225238187822568810431336973114511907939029705555542744260720050403569067598246166889245402695280333706035960352696030764856490605337582394859661087113256437432595991422044488750990656579389561506597858387370703257574368076598083881312544185702499024570133392848475092501634922699919011211141670056423442262309910449909558712265532164928446455123792831295895133550683644028047446798725471519766933123663473693223839772414281786007412013694024488821840480147476798264572301114805447302830343524654430106376504004377497669924149868017369079590275269062250793738135479157127179673631898794730627184088125391222897200655580615773448326860681753447820457716161072560883692793594097826061900855725047621265928880000008296656530359240277394825451529413333690124732305531717126446285193875122869578291867985781690219301871384855855481931396791820479718690794246397492180479190702603481228902901379691133623524934610396100313247684472417566590838868993829500722522642172631842556878944639334654162811077369626994146119830780661755558206782993234161090727264279868146533559984772635082382069679722199676698264698232123117979786424277241031018031615249597085279479463536454731262952214921808622688705905117307292476929699380315166142745732511291649272732537551929835276807930834650976985050065674325713510905027389000183639561192269870563121838541064493657602262492531170580693644763521023587490267805089026263391781759986130840302646065795293960526405807400004758509296982508653620208681259263930330153595973583563247249365868324758265473822515481196556677368990163029093372002873934281378364829157430036238301563581165257931995017837780781166506451673462739789576346593667028367850508569814974064944515429101737679612794758659855256860752164532421027780191617599449615375798803993481076045425424377240540201224877853537796436168878659123246134494737052989126868110447314177884115472068454593421972906023599459878386478075818370353786336455339396070868178652304415540115415404136203243920290539278790989917782946663295862660978248339123218866670777040572828796754998596204623408755516024325310026375916604198670906079433517252192946575340306099184622196048076575543844288589379148239314106033402791041532229589890891953097232341434349309651168099904521028409519396597131313960044052498831776141137829823448642772033041925438316728672957286367947341978804843308706752042769938234724085159520757984155210731539630567861744359951272324783744771468908132096547667185304817318848821566806496105312561634455545693092775827027181063167785758164187045864708768201435987766470869656831564746293674975486228046198609212169764423796903060940421561460849533436174990581087481965782334533746321391271737992971470314580593553444589167340018351058823675277953808924820758596996298837346905376865469202467717301837396628368161272219436405389798044376866140467861146312343227454100423657784747911794367412254218418080678439690828555925325472027899646676527052977885218837809946974620884913779866125592714040791395108471409591719165773561543126953860426759776986564739952943288066927724025156795634573653047724216666535112019384391980726674888615935749370689025407902484044842946058007196842477960778074291126475074451129232779001062649901116510024388042609836512468946907654949219438371843077869862908212825093742850651531766376278815878265117541601576587081307617855297402697674050062498585193209858699944113559522985968121197090671325301036190183760314849889319121915334531944440865585615589467794393837489769932781668822886929779821505662322559593573945182203870016707424037625997466210972119499451403921109971580419639775439805847433222284709930452556759507613000944037454203053963558512484328908366782627719159989863037559969225692035716862394661382300315580513812427388363657756081109062383139515554281581613005624334313643016763935175105221583258652814776478622415512763787779606528527193329260265814106247598230013097760776572453994931150385763523077640460089111125609325995136515724705153674324475345239125666370732033895047245055747045822345542340461757097211204744614679823314944049723254661116749029591064491514340112385706015306894739960379799862654800430344849849648720700588734033184228899922783469616876222039940750260188161146372809494672867389808157694122271526806423065234359200436592076285089562816144703752917831843683337604906772074051714755793006725291995258704373752626125151178385568933837339320233037379088714661603171001348381808084726227340542785687424136076728817386554566940301276059488812786521935990883190874663866107499746263535417994752016219862310582525712943807645710622752008167517992572286250061909021560035464976200219133717041412770023822732900332000454199555549574339644144739516246721208446821478847430927130073244797565774211703729069757248227851227283793595689435850586380397114029696908968204014579499151532124693901102848172672370293716771063430100254827317840136087016962621229912889954565005885260882491847301691505697257371742847330354276123541664663996443812549018814667270548839569699002849062435818080375723899720501726428941004611785758486423075677938244927099342788886907746023521757578482689781765174662445895810015241669435640047781921101576405594342661972295935332770494841564830354930082303311076965021732912921227910722566768852029394447468238774719110428745110679561306604533500188868327793610470411325739576276858812077509228449139584825670045178980291591553551024032312593110856455453254582752663209531412744044026889207578172630856601627399254135261013091586547439481733785410244429615997091428949349581791411866645560268988519161996000669740105466069516906057142185302378257919802356950976832482990114898281422396480581854516517739301627013086241989072956528766199540640218604699282863730539965473896270022413798021546933442078507392480324404150437807853854390852118435364175031610883316125843243041857360109164983569825808379232016151969688402117246621271909540330258485904165121271436872054576884052248771949964646888907550481413583919847587699391427794588432356112451347829323360972610919148233020684571787106377567738039268644608512962605054618676790918143056948852408726649024975276466210452582155723190144658864655817706774166714696290220418609931944306697969182606777700258357281575293630694977246189424042549738361795805255897400684751163982524864419930534743548957048357211745112653306977761402034860681057757811551334110791832140751445782171195052088651557968129235699237167312256903131127605010824333911868214095169815872008040430852943513990144939087005262059615865742454804278873192870219261311180219101245337647386371347778684488395826556715089291575427658713458520010568327505262870309130383892818744735791322254384237411978586319496878176816347865389151298368386183510371871757639477089390862426565053060380455982228478522963584267242171846423674138661555874519708898739936276169049797071745115757045738232196311156386352661858489242943220056262675231049890152786914578077510106864154849568868816632072721874458488485446075114923281218612288923667583480335204796369563357873063160094430301130684539514749606624371645798363566176796046111662766774478499585341205251975536141778832117124160214400532410383605763922584700724244633902998317233691146981903967690543572336024810553720239433654866635196311660424742558196970041594909815072478775413587109087334124161775670374520403329829212603460533602760469227938387350822910702561455260450304561260393422953962471231625766381573161216689273528459444375161492083827934407946938881974451387245194257917883394820182541406181518081945496657124574855191452657955747228991817091706400603981517392074805333202347614543378658217625949723155960601709724228918771112177146136464342681350798846535882412688973227380042599088683426373333176333605000412591075821647911560011260580749013119668112543996169646794687351970247946305156021586724752178966635688687176526869186209762804138047515081523599797286929256088345360002684974432568318190324671855894332300376259066585665589197734074002173278318607553626242092858778354278493160711857174160648749991390664552327854359903701347200979039623711841761277626170503350572067933057041518207818598519068136868225736685260775467639352048008660526394902044491456127146167710982593266312379182996487219481741594703613189215346213920146381070786467974683045954784578501659167015312679324769027181956775478677378695557388523104269040367311459238900738888616367457012004712788821777862275656744336560171988239319469593181061040353853143436668393438033796501808134033161928122485800146652872016403772773578789436531680071273729999267134507752376781381758518783079482915609298489434899939356723706109245026059661769532342843219147466118118374921902205747595556947383300378039711427460034111649713188223139695724817166828628751548715440612596800427935946219680285967332518566438426978872529854934937966631917305552710786061933480409524247918420729733177375754448769165185342449625337098465464348903946180408828920279475419633722291564884001862760619935654048216004542498637311409682600976004796103646349639871218871881225837959526011737165090761114265570420655071136686404442598976680218598425460559083613908471392490816401754627562682831368646285176763653094948271918165201814395235410836671194280788854487230171734492766932592435483743793497882929536238750099795610268822507123094391719587083478443950039899213372557373642532643018415592136419404839323069134919516471904086579643777632543427344249762647839671227573011499889013403077142088965023640681569761814153089944832259622592930261843729684155834789403163464461796796031304841943835146111102020711041158394403239175953306613500249587501685878323805961240003059732981973871566266938048828191674756461956030701159197039464006541618419818553778387615089926499209887283805930292869679567127530505470674856439783732631539071278525159376937520385643115172748936648907218260186121769509420119854950613717465020482308171121456886594339966728817302017806584388290369370446823075587726543773116926086635356616283599798943336807281484014897998518456969548860680223280821040262863639766859200252238714198282431151570804392306402801401086395571974372813905743067658471379981907579881852946366671829579929341401308570075598171285207600681099373590170423092770823087090768245094008912699247651151547375719072553024129408942696597331185372594198793536293771404339416882927955302543822498228683869947856909683152147865370992870296051443889359742623632506323468892762079346866267660976222403571278122204542052179486981793106493207504139380827296174578042358215921229380287177316236875691832770562827474042315545046138892519823324672712494571143567312531595118136748641501003214354222643656397091540470216516132842751524628182172170861103405467111556822789794604086174752640305176274300512757146913344389736473690733165939114361434402675308311693829823586269127601483630185804225675217555807249978845331284170312996624965767118826905031508061429349071580751769850516998761274685789403946652594171834964320685192252209620813676024822944147585569934491749535252712913294103044719943480026648650868078763441586281605459277841971967053119775557195238627547800066097550033386655020112213839239197658403060527984762071100878252196398086737672614798142802782049139198709783786590298317599335729475464012387750635495751527985720113854366482383684364646909555223813843774774729804407236190987617551344122728975746745037124804315596458819828652664896940537671210643818346843142250459559617203851948578246794742667695979349416862146141128304862045420071773209192588383494358306398006264395051658528471065528966551320761695155331292344180107795198362236367511001720213571053441893035784991370479982200654862205885642083673578162273378463050068321527298257006595335786315709959680744215902316368100931725922505488538068495521827646902805548955854361954399606607349494040496236417944102340946394682970506297730017534594473065691753463901301924991265909682485303014479671129702421042902072431999069683268667406457449639514785288743760383425215561929359364073343490141643551343120659715507105811514761590361868810471351409258411135189735053255302866133368913045166006273631370173467657103019496394848201144945341127639166970257966898118397281824302846684692927104970827653723605569817640095683716346890740875983419282677521260404399358637590255239198709398335013504878084673465000101989460690681690831360525925327657409937117251100643870508122189344070776553505069636079448397083756048580754927332004147743359699686138581736365011181578195324367509753036531231983529842022564386632113751344829544864009422953650419487863125699172742856069524467237405232018507564503231491085750777565736108454325298916543014000511052307855103495978290895521932041763235806551910537262750618973237242103121092222106685072863840707906031382676849807107271753869446299101411391862900693964933839524501261467089621329718092948393532955135951024303835196958758713856235882159576726030250496878215658642026738721295205435201052158633863690344588698562442564947989977329279237645589037530979077007474982587126885635844193256202772250529591593772019303953787413616232873200691078703816614685331890663081952283454590137075899588599417626905038026264836759658989836308914607209467670395312184752561205287684129438720526531471866602362230284356328275116010748454993773616748942636869626951358174042825810355137403614114115287556822932977969439591283504987610053599301105424275094163389268378876014890298085874483597506079156646322037275535207322477994211151832250354600626340868857190059370461626150960833426519536409212921825849492187541641817801473369397607114227508204460513770090486600710975171697837468854043405389288160790055516935996459581425224347274201498360217549337156889427513245885404246400031358759543908514250828419585620140535608895411313722342496804658254592889416076249739024185578903096972999446666200787246653868099307832136290325125692596198219427521110708219577072397782421674365497838991201097618827165716986895823557017304118625431184281695776654455305304165909162775911820535701796454160301281611647219566205582873206347401673256288813110985079209477724495339102140133427312936234486715619103464447115716244224440879102947577569587303605694555721301088246871549532394315122612357578220643602223763053919988268337574952944969562938955770524481194589851128637301691927278930843317239553647224082482884896145381759903446637605572345108891479183672956662244172196298533721174097572466476869119623968938914743591487179830681648965388238160607272275942775269966834618291472468551410184575132525815807580732345710705619155012304345661199023305834981071420551019737149311868858429272721994958565729441455326908279812931272331388438073200219886511927731571407810070866372561077876156415347982466881687062867513580765842893455186123292549631528379650386109602831722710694678872310464895077751834084782961089203477842142479378168659779137105395467809399996746104619404457171299765464090186324637359195662736920365501978663898662556812783258171578724916493820134860099080130756356234322758385126325720013778548811516445166787223425896062873920845949398255106724978017739971713833218489842935584540445532622334955262963715360447598364707833802278347453368528955833076140112214281128534665649553302245583445601220121841891125092648233455904145515733036464118112309314839280925155909286906665001614497468828342601539569919356711933549604066166074030406966774453458088279585419441799058043055935829271333392877529357670901877234997028507385262137053805090286194670239928991772625553735091369147928638221206335753600706198141777427804514445752349382573095419320186465104752675748592914009808153525187485217346481995335162385066909320540312998589743621473344272633297186649248149599953218504374712348769927106768855370052765288170898565858470003935692503933708121859019215318658289879354513160745642042899110389268993184401758558008324665423480268826840219592478319431297196239696505424400187222082719464461663910880222620372824366805409359224700727375844698842024323668947883729598222960511527010174439441549463267226798013868587302525754957109684436430670962969372765500535798116358188577869203129362435367144922958671415763581250623626915310413784948386732704628753930394246523515689762840200625030990003523067749415833363152718950831462926924113692594771242378450970985867788933735172494187283278990875880000146114297847844271876298786882904774861827095135778552243644793157668850149333928692752156269902648629329647472525093908333135344372194799873683616283941461759592722540625511931412195872960559827885317347597151071061499703367249525607394900067730936688627820327697427520790079392088777225081040322849059004547316709381812291360805277005279406559208759129697111751611788940575595205372376134538530676723063882559802227005920198178578150416427396766461306306718148754569609151715681116344907700417318069229408905979456491744889536357342512993551897652311322027876508591588877075684660676567741932216840558259333447428814836314834940012738291465338774910055394812037380842538133467698184590241781895535536679365284580202623738643431996264293601245917679086101064291248854991501284992370133236777041125593734274037240574679585094258566617997896378628190117348215175659984412971139400474998384276791149439760180978340863741848151658343521515721432268110378251808984977163765379656906407943034604112647381957820436025963240616973128019937969410254237766049267197038841495705602655235681825938473877963352510873486774254266619441217292673056828554903542944235520276175872939568928010570357388403641703411710740825253804573242085577208457567240718529382828262766822124983893596339576422769892250798694722518700818290994178410603458540441511901947231949709646651761945040254940589724223592177836244296405115826062536663275881224690987823465762208296942731933397207114531530626986143414539875506878444597301760292536965817474396189030431639507179066125546876891841448149150629768768431908661616608250496282511507331334713768609172467770918930624336889324205270098964761049136846592743812208872192779416436807454112377866649594977814039037712288562877851886055766300279803069414666104795516360176122123609186393209227263869830206718671923321498198441521790061254689683421173071928358196381148214806172488389325787233933319633251676188110116659916888088433427611984051782697174037145584910710620577888979495690307590634784657330900567425304493906363874879724194532759863680777332318690428428459667873547371299173164544990055234230210944937075104712244010665383065449083605922103890767582921338546045657857328452599972280519219551067654742773709244752349055376461051889947621345474937375699437966510733022705557350304092951915848207392494736193380539162369983178564687939094110127831846879276979616159933720486844044715104980405807847451994533103547146732920165990102223944609298855523258069447519505877504929689645044865743739460682195521331958524263519242501265853225628377640769522645779098943722200263392798808289316156886402437960220509833735139580695014168010790842108172400786474956509071238035412454206370054552304555877815823202606062070252600724715911667333460459954479573570494563477131278363200443565599549166202314982752677546003683142134974952646177172891871769224589482743626261527212266515501509263610261282364900754057522382991139608969075118029331048523623018070208720886211399681043702589027882048624824132895692453244981540187404817716116459181138392384767959723639237061274375338627683793590070000776681277703722381648963090450988117613640762656456230385738055054380198090222654189355582114234549694709917311261636703463792444437864740897301870853626359753499870181005191131590974045059557776354426535916020455400708976437587193996995447859194447768074068319870596335486717342401022084994178689419664516315533907283410689834632117391544797395502645672473224891449659280530722394433044853430271330074036290321394917280835005127847174713669938997307276003032769374071608701121743449417800405227500395198206803948859575926489282800572926807238316389422641703980486691561026700091328641798541658146432457913760207691392641437338805443723230630106115820708789087624156838923507461654148067025099012486046605306996342051717105996104929946004477059855457100795789371861723632160028653536935545205497906829730485912219863269270814173127370355464947725844401118897442413394835342993110371206810064867958156648094976491776889323830797238361646582440459638482664929859070910796438046200216857852075719561382544786014060724175731924112773663830383858798184470927358316582707076391009156994088351920557567792503815275088608397635579937693215578543843237008576677610290640734910749297414213129985802532731309982131988408488026484377091533669638646136110287226024605095624116945440989159052290692523368955604678097051827342656530123186104692604011320650458417105273182770612915788650493052174084248812474210351014604957683647813837575080382341984694124380828843821387929769591003320900338518619797142953322364005860746493152603988766380684592423299317541020517077951930862949296354071976554482603184300965850851964431150656892441687365314705758243802224517832487870583853110148967835218092746645224632576685549511182386016805800339980587383666093988017076268473100118354413411051223378133070766122572490610965310285853152205248185879910646613239456496652929637587831642726530198938473056632698572557034371084713006600230994393157427038052094798172466926875761860850124138944970784550262207184600228357231164354243930026639710363941519571368845870836742228569032379720281145191661689112294855790237861695188891775979121748529034647152101723933220870345029788082780482458532007935605795295346975923211938739572518830068119570623187859565318901802810044794032875348838472251173441416159319463685821060920306084369874078217920953935211674081798950336763756077252174833380433745052635142780230702313269906136516573153893157983668104151141503541490028524319744219045291348162165977192758169655634493022096333625565802351069417246194141851339680160859592030822725640822371867679648819571025825199628392470504910881400036929705045568285313148379466398071880082550158162164790794485975133167654094223563636020584836441593380473036139755709425761259910476732325365036900988537904491808692103236532458681699607322816638638671703000712892898280672725637604063451306670215259822005208345131037905111465450353562566278307842274014630175245393391220877746417218237868531361634186040862963716187251626118480760934869295520197606093928589012496274170871639210546425656303696192912537532084836331929326558433025528604408093412993618325382568213319234576131326083130716571784359621301205052163437792572047975590949036406476017307712481851106285727468123840610859275413384047537519881680575690521547336355703387328388807522797907000236626087819138524778927776234562495430576133010221689391330775616576127249387578622199615379725089855843548782439345360369719482754895702695230627879869290291371623547063732147524295670070393256755615374808874352152477208008017756527470954387215868531377959423825980619760869264359287757160737588014691362055825203239766637169320885913553226657420836403155520091774049188124793162568765483626832183361740354419033589975583950565359122430480933204079570695214818530882432612063574315823103874606878444484448600247319234849738736408767908632794410593167373387412568253488406246085194895642034502025147504163724779970497194463238261353414749188538660926364450869731850227266257896909085950424535392967729231668531835307504651286338053882215910666776983452456496176969914453908581679595333114557057290816741565997360316714451468261922972521120218792256053658032459792028584950597000073131831673219957730999124246006563708308063988717627006930643777313115226135817845777020201286050153893261735319959238161345589317456483724539102500803683363813463078046241817249188799977640156976821391247031933473047480583653330696386700275100312102372573856461258431326852032823039062488739931909713675476282572933937478367132416594374244966597441625269034365668590967202528946146140731219153704975405706885023694061576134499611431297200234576796369259960709830812361233199369322813583335397175126012081680401528962198900003867052783314565942188106846860446450090690461205695571743458457994527035600342505820522336719330752694159809190312165017295442203825565274764699887990265848193850316623360506022114846438729161669089158970307273645038618348802111900541564864814383170038564394026335918955451236675386825192514086754818543735528206496122280326978377283110734838840512558788078286360794242990855889858910816065490728784556377034513170573058031282389011809679417342150785858593108684674769825797348100774828060603406349328264048606410244627318669416982485908939502163323528161060734963230207334151223615871413358077501309892214173703175456822663615670028178763168980068393459799070672336342281516309032992042719855743189184125466511559263451012573011560721047952443084095239854072747206231229395648016486033402106463294333651589469108341455287919307031308551507550495744949047257577915996040935092401303042737219050182227364915890783501271208505296605521143586530286385436405815971981061727476769613332301680702173811117775781452682034368188362066958585464840192571640406854110377886724320955048984946584041856279256061140858517902716199278592534002640855296312895281329653302594143597177986853474174263378988728381854571207332160572173670025161117952174513623120124504152232892523420863968754358433456666087828334866798141244195271636151443880520108887422484849734084401264978660772332874446311977686023689393035016230626957016864306596779741023939121048440339289745829166389333144129545515974264592912123778013165234644047420259377372724631740880332907865891347546752368845527986745769842338296285175749078373842059128663982942253172691389350850511040699330943985902305654591679979992094035272599788760056020256106770560843404248543427366617106703710173672480330241667955172317247588429346305594785160960385552413655801836759427959503896738046676647544272770171088250970408196848174715090689146865295682146355135055986219607673444667319235339125074120089682738892266474701386311461385955430402347574040029545451648745276104718978951903580294496800598705042928488349292363202220652761412925569139116354344953967303214013225212794635706950522448034748197261528545415973176898887630930214639003437995361425766421141266711088607934478580961248744207394536772481897049194461086417916144997225584267519542265413938100457086918511564358437305117792362897519300573025071245189996557685430265275373002006039922472487311348079482547266662112896396520861361541621353713923695200279862312306695095118033863838654922897515913130855663672701154924702765060210556060104374605298244881960802529417612973857076693483291265974124085105750618470164097788431207294662444343193747713413401545567939505486972050864943977645170420311173260427085028081258245056520661684160074494821028181223178176982942864804866596095419828978688750219702406225082192474221445720608010314212013062312272535681358739422624971461000006629424160985999537545013282875554302585145382253310261580342093647792408408452123099020603112789514051284947116000600389869831490703931831343121943391028211963430019961865096932901937727195723194399206433153869991581166284504818222434800349989585230372499402083052532433214949947642699141268723969939797952497547997113857373489740354694106974751019048653903197222244071127011468316419257595048454726755587369049508960239471352808209313423527256238043841149002185612947374188195746985506489808577772898417493264928001049432998231789033713380447808522403603787911338689363488403293062139743080963020930130534027625778265348091012224708758832650280597512609366079138898249252619799137800300129812860611714392206406627973333839031623971942709678504747570102987739649357718588853627233569553139113008572421982698440746863266805013437477396228134685282096380965071700369075760764913815189930815440699911056564690324866038281138787042380649218808406259581306623295637800912194731575816744197632885041094672389068427179418059326383385225775146271969300181414218842550499181648021609903136379820660267180293138529428282793838031481852384902818057391717778646782730467150181234282062259898228658334739308034289672697551711225961280065322838411300895207538660431719647803461057229143835559629018051179478832172814991193691820386737300024469401768887452934005893970345893346115314124196881290869494444030823553701237218193680806393469892304202570707263691755280517604618479237321373081189213270174895552983219593717658991245487089571869162956047793561641740299478377777448829036609834517897289576823402202667805732141024521386298066644340583614325588157260877977465231548443934626077723056516680036836326164490089900675301930088788184135397108152017732436205996583299666824304975873908457439595424421386731302314296554242366028267478935185894329911025810443965764602745844748401239531100502536937986674722300276917871350986390549069521758657731483404072766501270803747191281747778074175538765182712105917574257463652422642257207047783023629223772014490406631767726964013725528762252019217300329417248469519310367498431987008311711895174449749313331530331996943792179130446550479558726780605109035919420093625785826118371020556855830527144524755938336605359307493237146142191861374749535065316703117795293762955137012516323409724703052665469701548114771744433662544744564301539300463441054418331662555509874451088563633273665930048586209420454722280909078855878721002442290546143827647209235602617433997159358945276634104045332457795299633065289285041072850329903458584297514376791337531594548968881785666287668113530577276273803520286900447008324870486891990199490495030305009033136773890274843011994327849766954177917267094304297194392570101764992397943085982405531068284624612567456123671758087945342715884615775622170699460470939423255825841681602924138819050384854834114568623160754946176546927001397758842127564555205015378878423535110068107770326662904035533278023273345199542922384435615777310946115453680289791425913622258716249654570453377713278113042461130944732062486189835466119320064095077531923928892100303535346596116167999773063282937334989615619445352541368171711346039697923081194563056224102680247028684148732004209011415573088601698599758486204168715709348385721971179351687227790926555308681617488465980713487140962137514076671720191257559498742741672584539128390769821486050270662127545580577831603053224752884863291440358528176268532181925650985871805141918605892361779328243515727616363133585417213983813217933266366148909952921461663649474106030944400011255147871853543065459305638636837620843172382029027959811786565842648559820386597275552565235921817135829126642005140770391459503300896789112981173050078815603005894472054366032526480868943269873459929999437032944026697816732510905248281960410395958813627924544144719556538254075294194988741343046026266014000291509221130733252019257493006014705895012670384903073309230234397389894807409643287457770322579173474330133019252369977158457919058515786469443233878777353820837020397207914970333936183699425429975756542065482613865595455783866065773834696845161881484056718342909555660208731308583643852855958494048017033848557848464423405385951542917179182283073189688601377050851185796036511141631844770973276945337405422684452579395414133548478500158041458079690079178425288516991928882375573151249420728930438198836325371552481619639748129161575125121688877248511763837703820734065005376941071441757160040996539620377288547750202925252308033899329642328655651451735081798511775808179433441667006968261695364094818813338439092754866956485785777960031331902065610881961674100426634852341215956125751804338649291368873903093785825585655563166191308626849830662249425121920411479299390829390496020669247029499936503462789174358567112647288265237995500206492382673286353240603294765819060691515742196463132227811594746081083047552205971781545057682178889964890877906165186526623868999376406600325166708379089341356526677730462283837927456740667336882229178302503451741807210503912741379869574954887533196605798331276492380846268618905892747543950885728206893694739090990660705034350232564504849930500425471170535747468840607669671443475884766054976648263919122306001159474165225124189295065476088453103385719340113537990579364120376236805091104727383319137941931486871544497550894484109012214280310391237591661429129477761603057774956793328066311005392926125253039872217823389493832307500877673800495994155808230511249225990185948415426176491530152080654004125269025591709901408196314759237968923555928401691682644721587681083051049708987449112423480362030847618997240826156315609807386056790870498577339642365833217756058763154918748304419959679805846716277637153991343902530783590677529787791391811722453060151156847180423707780397806931096892678843098520622848099969896503981404562804013751330700519524400651970397672044814471319019790262887061067430063852048947104718118028937170521207611242422520958767254494601206982215365484350308997431962101444387568397703732162545361953324405581829480614135692400564658800777943952372819675256949003666694452599999481188672651131169296551189636914759448411067398999261217473691516344275068050147841541088133837804532744731271320384310095535610927172803799816295702430524668592648476237996606367751255572695865561977605385567048759245861554390965792097385200876232702809413449701354570687272201861303612702917904781829241001453531188622455702759555810545221757579212849781488614934398054453137080524413328826672132099083138141177238040778282080219762257528329428247477001542296140174527517855104493211285249412047240754581556503276665224194896085054701791483422349310379263919626985337445063282558202245611534573711309436523675036110990984990335127834997405565325146699432008621741571639982098485099760011895249615055711295920159545024211370697661731901650128010960842289504425332621156210080105256908858769420378838814978805131935194283320956000812753673753094052941977463062855760709244104796245047403078075874098541376545583424197647413931479714654907621300273910265688717125894703335462878665399785588831601869468703917464563795589546641359529150240157356265348852320540579256394496182305434011350271208654149137383762751637037853536403988577257099535254255027598863487538249237716858970751185652199609662719888150825326128956904597108697503222789786598993303694766690569789234798285768505906685147265186008011572045794172768585502785916575310077383171843035211832602998496252414767692890047285853033938365596503086051390671022859109130330583195132312501122631587061235106069641536969868765781653717056300499259572838785109684724958831448758303391093484308046709544534142535170684744457989861443200346468624259917453477347258573317980763483984880901246463747824527510396284604761722311237195379896035809682138174012301718993668413174245313399365761211960453251731051440545575261573854939538938032691100720974300102104599202512812165154925051557930805226922190483390108417907245025508559868834626385689535830756012620048136094420389881671720252311897064475409927259805034915950047931952635585979438939908655929354429431350525474363711121547057192273837341133239980427043459594001956098366337387964557825572905654263373020008213009134492465494116934570663889062798984645143255779136552196723099021765434242713429391569342678745696394721274915126022427229560049747552395425865069048898594987979634861053470621921700112176429442465323836259909619703654167779305958606908686520049631356703367835660112531466602066967197526037956092002292315010049901347897118668126678815454842112361296033814358156364334935392663586963343387884089324103426488447973441880186165458389614033200107504760391065787373761811405299126414303386568189447207733556790144889348506113400219689403687270391823561795265644745691820329480280250666311315048709528390398158266531394521166066481585590744304131351307455826035937896704993729132032501444866109454417987916392147535648315090267159041046454356555952108506488269588673171840728350980869708142947417774122006602614379475599052378563508653103109417983369518831362664783128475967195179227787187214045812508513910905855036427957957380407928713641870064803021452449320360481978478486645499621644135271806253803143952778013782074232679098841929745395803386974831735636427069245083481002992874642092441329460325734470165913477961763375369902834971499759293118165564939409488613360213765948779592545610586826670522400133796341027771446745079138630510439708546163478582826131558628553046932748096634879921473239160574055232585549206887243414150523593094133765476949209137145989709460187979704817608652682319324950846968945301013296121158760649371025745969252520845808491208707740479585930879633957444304488676903794693430158251093507130535170425294670660080078463618472792101278419526644712491073252730528957165210858581327925777917651367867636324511099121129846569073272874296407393236567598026759763042420723983363865201860357703854842921643339134073841588953627792466840656567727657167648066406804174963106882309696015684948426075482725875065200793341845992832433993117301864188525896920449593321924476157849174858452610771492161451427307426432756133878136805279914242955112964209403591492025345394158460326231519079536385092637424048384201400852384120819832357198691068376618809741828757287753928890946218855054444172531811210289013381199131494584197802116521272072178144620989747598470210243220033805655281539548602046522999127549789978764300762529759049042096459728230598367739257369187688909885395371470380894365084408652126862642710890511244172076241661670210098518756809820705183128747298049150458873142030988766065825126477279599337526030876199132379747999196812739663640672942128483981667448675785306271168706394762587859676303181815437161622514995164130707361653028819902374351372679399337914007363397683757955359414207365059012200800361361283009289019143172620029703475488447880620684628507838195097112100488313412767637219785381813478412143499936396519882788278909720984895156951065069442289609239990234848614920534226236645225429584555297144293076778407995493759947971873720895705946556491099085149130360833964306600363107260318697091464334111739627263671930187402630273820285829691876333775441268057046574052300372848326257771228674995796702975808215868318127106719546975817200294051338895603224267160090553239604052414231857000458092713579018153754167173067442489545400527574794970936646742597069343075434917591983380701687208209455797886797078800366631377521825686834709066183036628080488640626358079405172572998637155422247985769493155675304388489826946437395966840344717473242223440621908654355958024431117421997392015645406599727627625627288666459324474326214719024942785035977935028358026498044505766357920046431192366579047599914706747814536867065022244413494523179377685633050433496547227854173458744513162552515226311475008308275601079422067722121559016335762337331552784666855925583796420970340491704470466185814689031066185923414116463124768374201053847081182916132684713331951866964963486150672599025814235753210245089599254892901143967715845479880832623192287877636004554135769866226365553331597852262682674774301086986049816481539880491166107230034329387087249122933525396673491430418210773087645853329093649539028618634494977106426042623151359816173783757246608802987765816003241057630111731330633108283156800020833563063921222940118774216883563585650258596609346032487455701880230773429606839502423870687001387935323723592124778977320201667104497285171706674035243736734428603343831459391223408374737290717213280130438640962754476854615276290460718619655512025815282501105653465983867956430639742466692411846621415223344244363002333270151939131531564136709571383257807944237572836519737506572739532217387413238324947078172974334735230008784156158343386537530151197394736314265304321881027282452484136368171463907936021946654491562257973820026081058689153544759940000166068024663346372435060199647752024019093078559106815194728533755421272881070556446250818448601358857561849223425542637650753713537620020005387095092771567095699570501433891465025430346569216963988578367463085150207776354099670785389087522295574696247941769544365592388229738930136485652502842977084240536571902733252956539138388798899277084402652409800545652522952867933949323555729944438384220364074350930469538597951703784295228354628541232498907285142767617727889191862384026190963076323159042362653017428426409165483235884297476737820556049822587991284629714281379552691717504573304573036884270349817614475757528319699100729465786148901695422387659945749674996259251571546987569133682425225517498635906522936176156983363480494869637321920819330346407749928655559737893696145630754595499390886547205929234858553758545101984867286639158110643303754174033924590985570147489604592132069462228533574069250465545385071718683193899249110866640394723260723324659118078757336001667818042923140860848002240736613349960519259706103181254779546551715721336424200258288639043466929815300671640846610497039169496424913384173952591810573209376006685516494718344853523899758430361826904417066306061516287301845595946962883808323526387976219979322681769870075783923517211492256657335751395154743082113631866026589278898103806973896568515349089574601691173493522418245798890152316874349795763566587920998824864175108368961675317987364430586243712235848636836000312906032572989664993328977502298277912023049786406348385430460341841430726038506385341089499496726528669242673631849044026068690329922525949082527107407057253163015245303458965967781676461335466228862562440619786665781146377726289423658360417628654596228076976315829323676854340292239505840675467075132243662488560615187182525671840223433847428379528762812066448890698264417186719212905245938953967363545131990296487896502365049777676664148291279235445140047758279637299161651480062070583278185854216053656440780817980090818834324325701275517011144091072076158955904849265088577299915488784573141508698257801912004882013039195912926527308172559222511943357926115482632265980357363972579496340952625103394319072770750371638178854648940105493381410014768129205282069225888902591048739146778220554586678387327879893627390738547882181668005957190804108896041246033577762488789397167563807963438941017050753672529435045935934272610209393498044084159298143575390049170959591815105888831290898118380369946802055479149670484416245004339985418387680906099432434180850433964169073439881242835241656379317120783448327893831991941192109500160737522011291794306313705431998210464036749953566974199264344813211318733613062057988172779812395772414899472502817372522891336679503242833074482861559008443964169582682530247866850651227019647581823262933379084714143682476298124327600975288023763778561824468639867126291339694392177857881289763665934018793314224233848122082456697447239628055505092622898014872780973457444650116274797779615366024303386000811530729603827614432751931656727322113409309105184881287446235142702150887390970938885796415926199465386066028827088827095802833401028400320548694189805384420615438245946626379337735075719253724448503486990977439284686874864030090494165520604563318553201419020866480281531564679889845105507166301437378901596122293856546007019519272295336539920430442154280356873531167541634029880136318202625470426637987350200843365256578685952309445834569686689098513137361546504742768645647254601717010807121799690846973591088231828144608241455830218601532030125935317301879040607235163630802766598624436308340731179380081387090104766925300578444124395454528802081218904784208085549903001032522061823934853640168798972257333289364042768895403098501794873841202676690999294335560491343505885078845841587388824287373281183594683232392970276987656845380502891507545182909871139573704393431800419785470718267562944972527046495801006489503494783731789877581029185534261846243451976240049918019597590549545558388586855243867467441836187765874678856675224977239830699545201606994947258817517721468035510240925583074872116919070974991469700476860384214355378673595699361178183983757200582447874151261319845557279383000084849952021402515733307404957428469675966514212726920997484407594024885713801943040465153975254926558885441943642526241487413561043807503892669942133780593374091053405443799325275044456442874344277835792711711891086119796590541604866114825043394675190881238968382961286619728855579020260430974198691239745716931004289657502784211280393817878417725742460375658389661256179494509581697827776578025622972171392801480824986628426094276576419395952988804055056126968082420154915368690934574253434105746903848720284096424019725441916145948670155753404948195244737273329677538848055933047985032116469215253626195289027611556220220012369919956319478323514105984683578401117425939497622857978971289240963521308893728440513363657182550978841066935468076443876512355879742191166682128660047883013140543223604096120890910682934776257563661429002263860136565033321643813358080884485160006531689112237247936075378387422415997224202907836851130399207127159545789387553040107449868657493584703364160889337376071198333295142692869756599231630791049252105284984365501542422936747553572514077667010064576705471833141579185388935129716879605390825180015006909439321848819351200838200564152032401733586470957929994305842034973760306285260666110728975401964861057343030067961957016553006859575203896433859062228266387778200346368698798824876225155399408458067482321613101144716398136905884257056837662963690984452367262711375907533703546237806380838606034022177556899173566537655042511858264594597570499259182143266134750513876033695287003005240862642169992701524401487337031898570920485163228835632355257139516204614179078530690833710395608033198562246958144316472841349203452388541459391596275551077701717039415429644752159749758459127874818156874080757734728185922665697496425646799890029378819356544582744871010064014177471109682712016115028176910377707458641145240251995288525441450685969611824178210351876200306990961123499139657615449713732896061324229852017427357198593193266728475582560514646573433515717671862013059036351703587867783481848342054208121974217866864268850529555100743478265419649156197490676128793443330685676721828557843003196872919242880168657437501379500080763157090766472939038361992894375954701273953989435239400058108612771342183303731011222074178906494128858585812631984851795943849351094526864051475345059127541398173585901044895248263593378412551258424027721403953556769645584516746770330304026034059934423557266472269115907571019863239211521828459255202461193337235189735552194212026340539128094830649704175534304954648074736877342697372709395554218603798855889257671498324428777589108404454595856338065274327423693704832951216399389976672233147801078284248774209140821417976384034859292221908945904081027027273372225904910990420532563903699197980669973862485483163116207676253978879140434320849082131924981753616094849440982802365940378981992312528353356064235389354709504671645925609768037475485195530837307191247202090168558897956049972310774373158110714930466081981139142781038604621427759328372786952855748078842220033403216717860777925905534168865381907313108365640620605737964798417596140808366599751333882999484926435524877837009622361569098148752173285472879098279643039127104398804965837043775585261029896651456788165966562110018087218267341758456649917225428940141198762229729848339637924979807510776070016459517708876582764106337536559888542853848751576696153099813322844959009742394446306733549573698334295332837361497033483396194345580433715075510021811841325459581143865542670830355907542122482407852050271377792341600763129009452857790431853699448016918295655387585101249016898854441186826777206770379177387886478389344469698147538862799531913689053150226922214223889799127697546793785968221914466997912083547390668081348065272460980268642241430063013582415413367266433102604960688313426417347062784161278157028075357554105917718945679534537325587783764964109125858792442961372298742823517172687024631907466362398548797423598638535049543882496971749282166354887532394132366529944226493626799595380128375423062952032701844567467462634699650886898687427223611986130646916662036380949164042561300935339664013911808030961510580105142547928752711133682458507321546996973595854240729000133603634819001355330729713623065512521752525503169967258190520922886328313365284733793294285861375878415921944111054541207734741748508816946521624106443543666574224427382092622652136925285264370646662986120187842098006952545923516839202126419174953660398799293359019100217167087527695209894729363942302364417816872239016250529576666946854916352068679978335324836907329947441961064995573397906656395906142533670171375427518622081893717595723375842676661534515028363295054731530852896350430566581415023267676511344817058208805978959962725111662794305309336870695733267609288188719798838241968812388788312796011611808440232222607035024006218395572294447033330210764676429479121036457306872725013876445998664457345194447284322689223086904886915707802181348694560016202499205802691582789534746253484811637809115226287908962966027479833992725732463477818845348779584350210580740611378248543183020012439471153145691888842291383498730095339394847911977231259871324705096894624193120587906356769698463692171006182761274188137609807512818005411242055789446181998879039075325181958636516626757672993861645011793049226917761529464700885113684149693804871315938902474108574381780633711122860536659897361936824879814477711196325606123454870451877356034884458110078630575555731378843797701991855064139006267937569659607654885385970821561619904624117281194651548527591657273603528194574882772115916904790618243417918758795648749735005119076896868757122988158386109557955095408647090972212622202868395683654685833964591539558839009960333520353225159586676338814729142418477855309983008972472105690391971548577683791736375877284987997172183291552188119567542665197420097197999261016204341094531989057956835750509468918648115011394935210845523391870905513780429148188359322192087144887988241871973460820258236979892765596614513172744537687208722967965776393849241417409807615985220826676719492102101109998764757523634616918548063204686152753964251755157893158806438537927038859734454070640977511106741988124748908809837120637133404809979977943014260404185386984942055147055331956981025287995807031787513143598745127176676851978268807277621620643833178603871850888853374115985866761106187725860587581357408497600751595926895934015695865211918787826233140043789075900515528001713976984753351331254953574202517211046253234487798876576964380878858653291733065553258729943744435658279614421816538903058932634688791595845628344334254758441562136368488410134837488322265187276435048356238759768149361253249040658992610928539158473210330377012356818211405057892843553157095646779958444837854476240636706004455852069479152792154217503636927461750022702101965427092677490606840268506046472844162915939013700803619380278546190279758080582702403866898346909337468851537412991738690220103084979840330626795090253676100030801282664405113694414891054231346415396466563052407620163791110208190595134134438190006323328601082110592133503393081685703292061514911012988800072565600627916929941313549435347076233824054237641629774920816439107343673891382902338827060988688630217844340317618038625928846400565846248609722098288465757129992477929041492319177046192851933248725959358198633649365177996402693254407446026325891875417514743773544939865176166988656055894446274842350137604157304024925917759753328761808697430550723660987920189345278075948303280722008140583341002834284730342389596747552076505481587556064793608854759852065303486673396142197553606267725950100237042805239075976427904927980128885212524697742902855563085161647741924486122382364243853975968823508238578425370593382055963153038465724634065707452304259524168869307676328583321292182834877633860968290720421561836662119984381189098470246043231130790850176740012387271812552009693376534537053475385865989596179590245316453834645460512476726894271976662561303021461569618245504107589506757266905612399503822626735318048168780103163784604942210074029043033008699565356806484783206217810833123718945656518097390875690881960044090910517233697656429536462369493766526010908836465521924873809727800885518844490558452746161360632145752796913215681683528087293200128565733810614226434841221632126041208592310766210920663044245176490793871672915069076958799107434117030499570393381079637404708815596468549701501900607564407285750260012440022901626513596410731000477703927711563957543341297840149799956118066492013593989268989406509120040352566846447252281332437769058347470233582315230951385848965878903870960395126057900447144545112256522255373332398608997140473389364572134987839194818698206590810234513029359676640678600739099190740274854011696238661733098711111840372556805153349788081615046836021642756427026169147366189314274177191062275185417307640940136985275967697207677912578717918862115455485908737767133287769041437661822095804085323189616284282508852955734535036641358531056251588248134880167330389466181354250645438560219389468474856301092753631378089914333611135481275715289972890506519335460480754936014070018989340087442835937598184315577038107331090081292372935513521209628529950164852010064440796445394847857459396434869747170435449952751188163032960229378665345117126094400243282938751495617973221263370982498505744629125419067257702519203208227228812921177336827097131743646021107138791376004349276447793206595690601342915761503351958910595848056957371461734661021180499784923670457266269307630674304472941090723047558017900955450287057284688814785310179416456259667386392073063093204075561259050469514503196998776704928245959873702530483506828426370201043891548956435141888906714051314558256987612332014118588779809058047000917487407901269783601199025726306413106927207721512949964848647706736637062782396315555738477147482165565256624382902981587476278934489450259771276268669577483931092786499537211206174493578972921112929921268170777254901297806754331019934885685643294341650648674616715472885738814914083097705939795342596274942019247703948499896334870258927304691648914780419395967199447494160002408190112358968670115291038568402496670064500070972460611041236322840043115893828870253457908685147130417462173870058485039464263152056877881072665751466800165412958661562461327673886861725457747504073662431649632136055397360221535844256054470605775068536888420647162055550150196377951051961176691254777074286322895585220496219550779002639370517166717285720024912389546066363912011835061975444341702902517453357450637254206828265006899312217430807452730514613971097898566499269077102805867963720234442053163033168285168140510558468807390029391352806974595285541736931236687119787260211411141357748445847772558099420873971063900847750680800555421454009687101304797633772780294289899123026725501112812210876242766647862931263251874208170893229641253264826516507656370444469909224585103722514396115675913880061992496069052580669803143852105212951352962060607638383267289041860405661121027066892196749070004110964491073070411607785912332370159850120365891472228075712743632928738243747652231389230112243928870163313987877617737916889262580763428186122495385381749390768821974544159228670351143796248240160160493397451382981499362010903050373757774590055098021479529027380831243207270879696813236301407018567054250726026744583191809495053518421543072553471142142588064326784211250861750019601352419849120880461539303767390144026087125763303815898162188160109183648122664131244189139653839598834525564792769501222215827274097936588326563451470283640647882194606289539091154839759690935290784438252971521372434423956445118795386959031024145546458081645404981302396054571633328379776703213395430793505227078373215266063326277022652511081433591434978592398514207836129854910672868610815906023442997803624462704581387889881241739076907902155349992213541410693148390708769148882050061802769782371286045206054305494587416718728263247775809156536738750176658346412047060250265394658714318006947953108283606408988910834191136000618537980028868121556504531675297579748822695909510187152568872836209199464223753973760858813659925588926580534542745315579431309800180656796471887017780178629490649609723951532577585111455198603902481704230396966580530370155306381004765459516280224480766009018917177651761953436294282640188422692951058272670317368840628794346515988796204656367908400844539068718680926615126107222976134499969840546168409735806445599723357460711643356898170840163216484320740731583651379679726091755742891952381841150443012298192309395295885091052999715470512191077122900784907031134314907107512967935319252791728739631456676363476722270129063425886144647385609807660610701095047972565158982087845303746305456731100395238388987147991595345813198003799860986624749142719283794512336573001148614813494204820390864386959795882306912709703893485494418023574053707637479570749164281764966835771584670024446738355465906422235726037524931019455913409752088886063315948351929767901973542690090834419809456719067841490650631024747528396865578344568988611234461622231051354359142999243550146001907124037874888722173806842292649360241591089652058125528352404318093642862465808998749895564069666810613634403326456813848244452873449123151235772209196370843744321097281194122583315930032856862874366817422775967407406305717515175389525169619369709726115151689245700857912124477164726808168380466022773529258456379409303874453637975294577355709650342370012319440151229534622010856817759917503747924522417129035129602163631500227430544043983017188025655243961189369815032930200076391431089498853107747102801116814679485122729924536058472430185673345588741598241082612868231245788356988218499793970016205833450274327615219046480380982378371840300470088869311730200482704756310012349490573886525346943530325623182070039661580427130586239352066646814567528926470338185051911871851558261564559904622310008851846867289012222509932811360319265049361467547682999731115815377305701408310578216312642170047860744071544178983652969890391263040171945207086843819844448171583173877119487735476077639598618170021151023824986087339389348595743155967445778872272165058620054375403392566008034181076090736701639484575924202736034392767452711761696634131018197218431671165428569133242756071436059149523722677268053334930038038899389556608438197723425279954232932496334942904758017817645406163605600176514867740001201798038058887179431982516461206102779436182170868718038592964163005717981457915345803639058684498500760099464522244044970942302384503053899374905770389288221224985762835613917711903735271605265795604225984835017600241795378811202301173409921912003118223073377338147682058546102721978506973676800545622644622376766776480810867654682775082545433849737760889132116456334434107796062605956554324196183728153524894844586514821748046022159924411607715657191289877792090028218642824957080199753859445133318198467276723776834557467250925854218620119207676846995958558102478327928192205297135342656612423618953874595671792077226162922240309169531097112135697241621710976928478359120906426684335501493356626805993124048790405055966550459877959726302281564863991190159981569013207509194331246047064176678969270257903185946742195390859062686075514522627220123291228311407586692612741935925262138322454142667181040802462554496150908405159002611956989957677053883567415353575138570163269795590549297255358767015505778352892705373875732864111229205813994586240558163183391590516401080285840855149906492228914463582028470198341711632879587821780180490194024373158161741694419481262332531049539244799375195671900341740405300097849229394522055426589988301451800431769755439250795190067392095038759008879574561066467986186033704492580123032573291451687802295147012969781055424140855167307449733686063618627026512754103988921180523919881010928855253516200461669279292708024600792239529284010090800983282621927246498632034250156012626651115679221621921875379575342467955807266981916269990908046217128683001485627832340776027036714451348465691386220687378287425818525866588545052196905752032145511087642621576619045719689164473648635921191437252440186132720049279914197449609753219806240016431582735793405702697471966935119129614399231031918724176159716623066041347852575813125811595042286884781560200918373798508024218856427664158656943877572461491375980976512227709703649757347751175972898274219237073054380130212369697591674082210496663222538998557579461907967275302791619371665738885392572095068864018705773983469473153686215407320281693750003099742705581202132463137559783615658410797949833371394329393305169052977880802617873204168510779452865079615017061298306637858140561458618583438005681275417031622884222365692837280705893693161444790379589132201011661120665020331355779776974999432746933897028699254204901687299433730455757357176242469062570423260356883884009475678167641286144907893721235586789300674524728026665351779870493951330021880271458397316346339096649100497918584200190760447210735054645546059728589724045379622344401583100306602769858712023298444303608511132049451870084247004013057916155374299802240522147098704000353802488939006948087636112693767937274261644023020688264005508171293847394934775434756519493599191884653391504555887726696135844734833506100057406266634816010960777036851172251187072488081971669176105036271245225933837534781961775266232782786031409889025604436713645767351615958879140092585306567234425988752234404555951680515585832000418242890612514679539008483076096933486560304597543644652604690169955483941497374878164257417510180232542428458698762401734871909194066505209622360061167435970840402398130664761127753301907773053563905066623302481538600090300764215295044765460594497763030334582904498438980551179228396480655224269761794663907835596558507603021871637616743321299972017561966619711675116952056043927003708288414158178997578855806899801164172215020525773149051684876001659981257564532697248383641426581279802926307794335076461686190800804402685244242948877469150214376214965162536427706461930783186544916423455526547716091629874908294508791603962888257309516928113559888464817249958645291345573440217298738805585742586291485808125989650813082536212912154862758528598436551382355638071779242342313040280603997397938494856684446943477460308258824218443892025124695885601845418568247463652747570017214104098600482814124236983688871262503440301600558449951502382118283078074296982430957659088875000157384578290983986797054494804019525134238686132384681128483782101445267179383132025923119826539814356159151968962727653785697490260315418958847408781250831037429225461235279346899882012344569666045102232034799507731068801272916087184953751769530553666935483890601557774002167332982511101179147726170985043203391743017136951833795852640404767500518680997638518703511678482959523606877198489382703846357638257467755502116419548545586797899949438975072553944266581849062122393333412264630980858051075692418631973326743824056867290776930404379513410237515778796737729030878462499468829883343768922544491459360455441331585185905537409789727383930559298553483944685388144283820663523277805671687373382843032103563302384230252766668208499367481716276603321588706760064595151436336293366206368252508998525972689378449134743710432543979276690524751174155956055579351812078156262380076898796203934759696193976365303851919926310791518217251417819290888041653855187421522007020099470582265806021826277367283358260813937940815353516306159141696658726287041696920794350254916848998489244489448214257275314033823247288569045014471694965587059493111808682451823830314278130291612875677505533141340920182511615684339848304852468800191219751848477730298903272875589985761046767783203203967241572198351190081464436536306565586142379112997965020957185474248830849736006292303907081809131163170286242429680197393837654703193902021073150293821938074470181499509772832362531213922105026786356759129432129272847168741091931574749362721968909298830634825866868697119200139396792521310771852268700467243197506573519211935050969456450132995382499812084834378593280699529172047900429338651327828338232858944524602174662851677643557818646645002818910202084940223743492743291064478177216391194652383864038648429269459647866646869454611252811852030644161272897497779841153502530009994443661096028022194608801989001320655816915123887883984644078971723346185553329699587827781168281089336417640858813511774041485965438980789471016600492371834572934371241540611137576274361025056838989858843074798102147993052946317699469643786817449673346560898885736751077813134598929611465725566702524750222888416878027370968343158833900376735562868066353779225350800919573037844917278535684941807954878217227874334246897612140893862997339331182515845422413177236669788498344510397043349608896418166408715653224683887813617517549252610626586730755067878699120550472697591548534639432428056469439129863913066495711008357991189715463910956030508752815649829899727280213935577628604506741865482570244650977937898544972649610186199179317383979190247568287193907805772836344228382638868641734372623587888141279200974263189980304218559087205342559102260858210663049466045215703037058681328655588761599332993260802365260329079292102109837365697548767281714442194553536860317713476655344298973744384701460714383501730941244942843324413940509107071353196606840094354055585645036878543437231963063758271658576418579524539981270012032167845874746394372691072138753355071337493102589154073117585061824329792289033144334558216940570468914834419529693297646371281599744827557592907530495449880226456243545297864070395769348786751077374464599015075125460442419567019532655610409249528074406538612649707382701263822994690517775192997256411649897475371030225800366913812130767853307907012325269901731493275798533336766419117531353503361491294169885146679251210415088514140703446051371369047516384454494595115816453195783577472201373932559354833595783917548187989443833076447094553767241798831557317996082886084739126827295023432287829186476953301550515172278973961261649306024880171451415253539141300083683384183856843761569271202508648016947225625955341687779793090426631825882062905043196454783453561788226983805191753632261620705630211896139728353698396072755421293040084800590844771316111305901128273121387738142056766263270832115771566698938444577321057571376973427863513849685025412556787111413152824647373417174381121478893724123429930157016848947191650254045256908478437640630775983613512874555860721528953487325097675236230325162807611400496481550606341742863846913805492880226089179961159037912193568017013565686229796930023417160187718683613444839769251337850386696864710620530450571012732418568877031582791334364888542642633844831384040922770826214806947934253431577698644731774233256266691281094454576715150414986532309199998996200023314843887340174035074639799985824574065963093300319047829993062201876134851950277345048802589556516193279634912612984996335794960376983167826517382427796884883439112991240892581841559685516881909175500598649025690759962377116524948796083286504106916802488042613513613986519412447780691123590603440431754379888925595889372347982324019740551473711960035977109711230072469404081535505548843925747915431202134805736313945777938793971831810039743673523437527527319523005461893183425562153521488439147196076244132781893544460172053620644292237941346538267448125475857454017116499294941368091081961646574770960569298962542107076579724972035487416666748793385232262266238017520923019094567321170709112547628397161693207659854792258441383883946778742910728385712678292671346942023840683023788529858274631502455949917606904913400403783735215598308161972148387741566458395072551310505257670513372760318183457833007919828874964633557040866715371172345412241813479804823450141542870983049982137908329361919682928516086889846144755356675808171652057477089912921488754206608629708853276551591226227405904688378268619668472701992790473951155978063458000069898772534043781822818421919782538364436382092866589475213699056628903902300799332528888907191160844580157906871496669355582687891497223992677505648753079737535420824734557426148807084223462450250899736853064477954530852442296847037622129937449359235722911178144446578702194304862440333840581380367065511324069714641445238752254870796531317114794423701687603642847227287978919766290346364670889537648797700863924125784913738723309147926427240443551188952773433559072401883427900162203010786397873452958661037670395960227693042108273039123947615989182079227167571020488801085142329183370793884481698459522559078079276617413237365371077707026389577697371917783931373899378473368379637243474686477863299331293214823631580205494760487297521820422151444443194834499563468545696227644440858298022349939182210478154885865263394163878174400495231716112497062159829816931682950533598526595847103261999937966252521337888030941568892790352269114040564798920258690847278530164127251497256010527910937468349967942246423615989278085768946856027841964720740253181697925072758251213380955442573307117097035729009670493084510833542349616734815965188085998179659048930572855475051357692905263653387654626172041736060600584465833499222731443964588715082779646216184532107408451985711982830350637510804754569167470743237259804818216637729885172348622911180784860853161612529548745824866549014851783096010360907325107754509914343372763255295776252786762868333960126560869644863538424066137355464449002042404596027931762533687781667958290885746054809776111221050559879977843365448209640212943199195497212813109889393520228854368773250319621498109596287609476746798760743527246703951930192969055920658792972413750411136255812389492846294154074795007517152221344789182903840505231388060600319146712259574667378452846566305687976811346494404223406317175340590419964283355408211369069478842085617700936727378000357001443294221196114447865051669964677606494630442223896918678961618008861932410757594065758317341310912410682790298729817648316778822447751327454725589590708741119719866209724369904961845018647727285079746711225778819607325158208325248757296423459281491362151358080587277070482802178683005754950809414456191223113098403042234813519061119441119366495474376723634731544967445531719104970161217779904886327464653510496332287176999336952000440146323796833626238768705498455489483073947568455503394428644591388420667971019109567482125773818414066001527684562331028864488174547852658259290109566652454576336028735378761350425465398630062356930008677358238703830062147811407527137984778867017553564621841502526858277072107152722117787269337895935487083381964578253145525009826034570057868877866663906354479560601328477408521848055786883649678430055002070146769920327527350329226744554383108787442398137149035790704386569051979046982814112095841747152534517507523131064070927753920498619015403372485023986813494397381393648926443715062919988707320785258920931577160502841958297968313134483716811501436486628673619469967236753638057221987136645295886786527644836565920881760075678877939380113703668068131646663475982753931056721572113897310227497062457997634819359350340650887801296896491227520926095323364018725050822456714569939129514732216816271337457386850024575000787217962515546866240601476465462943325228320971986320500429064550366125724560963387017628070583255801667622464419122785179026293689303869696440629701824117868210967807611707529166907821966886982756597092030193902017292467730420519115333851715163330851564975002794662547941553168271507660769188854205287377093658856477412881877938512324614166009851437905493533779860833970799790508593122612098569986860415060487341243820063376775449248818040254077353445825268533906657018331208544218971685243859422641660670619480039522166838974104038550565069831508773777505903550234600529363781676723098303213951881025089115354543653548319935372271585759361664865879482250114403330496847986606194378626256103915402130821472477965731931055123817150855153660622831861657846914090422723166260445742330486873630591099283519459476655868662153116514454512896656909537304650003592973237825274100439545125542807279274033680800478377104873339958768516524300775893151836006095116755179642444830266070285978199571822966674641754252384934456267934829307016619700833217367458727665379262783470734398184049762586351799311599582147990772567382090163567567403102304639701818404908497884456904145719187643186941233542641271358654210425105745047870555323814054133498911613241830355171249779393789181080055608301118638819607763510098363313460443561937446574220939350713964841203491429272586822538198174574850459693125894445458899404802035798637390136341739057798976763539447503817339208423993739685022757585258504415253701869041895953271476197927959289491774569947258735660677260185521136370922810137840334097061612535570492814920126271093057236526035470192608507292118498504162218653744143896314721199570757299119490288760934201526666293810431740757736065166832434609293761350373072400194311891942948591195618034741368077523822530521889453962730916822361747340968046207203035785079948170200871761844809724243294204618521302509652911304075388806853025605495026186907319420893365167239934471312032067424537255964437482583353813204549539408802574711791351606305811543571061195413851762349124611144699635633416071507650237049450118976537472771674165341974138553346489815727113721915702962005333686505032679910781485562419076717049759511896329215920546946753876072577783956739518514132193836121331146392785994393046359113169867701359726802318640271905634728007114840980362409536991253355406663924707451239893267994532433032914514256005209816162000694859185658606629147244628995636999008437115845304924576851074738311995733644868137344569358257832091592963841282699804373839913670755064469817011250785172588460229854619500528422094254242578834694414822970107125866723506934178224848160945217531072898475594512136802428142132454682592355823311549788163021031647624077207886389581732907728251740958234284026184921959070674187479276693996461977523353928247353224954102001983697748877477791152010455008904753911349063122035643123115066749599530846949714456549386605002261173253998288132358580308263063305532427076128548816876546766648723031242055874198470545490335365279806259957828481090581826418873903353531886530602902188164110344666735578528663873450568143705404338725008990079881552928510611630456096794116750594597425228638296947213710822756053961789128462969539742337980356481255320627911327255320749672109458271347848233328838156756206688092499508579255727215028114602857937129617186297871165153921435299465758898938843777802514673571010943998528723224521812293110499423896191489843785007849082834747495069557233351217154524517788966913119024960192878087992838290621293760220388803883269595779001956020670252324971024894386927591463996713575161924137708404659048563142737952477585024620892488209023745777287706844734858694675568874013287721165512910294356427289158028554481909209847250861067450571228949432715193064070683812667358339185081666390744847306329014128218597062434387652163601461448644864779435588154604267925927150721681635026539250049197800789925984000609279330904398654367557833181780665480286272391418840368568368849283013217091352761517590558650682012161525229519489801055460584592251037115423808101923569509509779576005113033982841517735559034654573637613072140182730170595806659127230442436878212317215109877063909984417738510038076153311995425982149603395092854510066539038596823166178281071978021433840528114076913109317116346875571922332973011858007422856262175141194139610205640685975113594584180176422519509207921227198559397209100624876624141149206447108132978094271413208139263162771573978394227549480451429274135828134751389276632799806563131866522346068786993270997644540008686301966419631629999201600746870975472809208212702427350415018033606226435407641527487947456408481298851215901915941851632705296673291841477300071794546752174814770654425527347995478395471065038130582212056007287784974206194525041976238855819142733856506796055228440196677831808446568910540522986197076589621933624240119219075670593148989281279797425211670300711943819451320297957341508339565636239229890467141580302080161168495938204797266685865782276990609902985662443862136975540339821259079660584172559781005092320088016465072712654608942561400556515910204881771085238847509386196733290933916579327200030641580131743268178218920248097258726211054195597000013940734341505016066170473426426436922143285346137901410172030320312409623258095807343837935287751013595442350961690246517526396679839840333779745421338825472609739128657500821208875571581999855468416529407578238396056436209698063118073462968280924246117484772402208743134731317603784866705067792850492006660567801110618408771745393275066879673737473949516935551101068919878036880489551691685374221863089379709822757275520043947604325944011375142604705171820771627164672613805290554453651320642779412491824360148530587227202607841167042868588132787538492232428821276936261436810346032370889915377170053588337044362109189233159917045195616973699928627210071967893052706576120868791117204088930262587268062328733400297028521762704538588602285569810674515408370902231099730100629825481773944022205193892919302168391326817684348264245054504708023998813612282961878122528692453943235641575839736350380080302554056012283460353631243826278119230152737567248859226093036700453843861097304397023192884332978269893950979417692489043917013708035443730147085792009971592736103949879069189752693423369647761469631919495999203450003671250540392537301119481719560009749338430229406562089239631214917701610135661116879060670327951858321028333333240913492236445971923362553254930158714092068464260856618786385009734966654478822361671856316568043340274599583331812831387439867968791594092344589374430837430558977493927188927290401422249896214680596237601817571183037956352525839463960783258227801699484609516656981419823768052005031699147972121968361280756078059593466919365958069222575719947940320197950857538512679148117350834567555542121488242501765692185896514264775296313915026035707260791217953202706160680125708183245820278121270788159170308435453005335660965021115573934111412848409460080672406519662431794576665987326110611853160575728868355971448128526820667430797398812990616792141590487709179600681627637311317056261767750308908961185267432293594454788644058703195927773696352694577444440981683304344706154646977611935181827546407891677994473167943510108249018824374393588922858323788291364111409508917237191526007854684724131009057529942279684236329654803488718592873168828995075682067107710820769403100608025138292932853814863541119829210522475990244954440750555538481314262602050643525370590461486208062352690428711810016884362595602035300604762304089131644338258193399202904793372473373391385094256112108270841786239917317517886145359392001730450477991339124427690331706933612564007099581166887570203680972560317801573975001991042992737926419324165195384347011682257643863630908111894964179779518966833110068264201466972572435146453108812352519496222712492772171910228851555021307585257495680953747106888353860874634009606740295820568268403620284940309616632557667245859751447131869448938998569205776755411187093948130619144252810880345482472842814546050018997698074560225481705676975815544387897700355805637681207094014828191934873968266222351271259453230777891492719206565064398667511075549555889749414825712365255065003906180121746625582694884181725108794458084676085387717150280531460091142756275796407484827332845835719484416557883486108950976382318981579331305212306487629897699261503236420528770480573358167800104478454332588981773029925491604314837418731148252015376986512440499070256347007004568025805945428150709471929591379048482759638529748828166944718437418270154146107538030528594385610534717095830946702750028768750885490111155288857183553652207730655699082200857077486958746025982352937288327874643408762039448089139816992757906820557309468912911525524837292282024507818231042993775355355608438687956786242584366447122517399256259195259575293458102931187833979852281105600987197692168266040536451302689599484759964384040679794822397192802064865450735784010073549322860590982922996912131036540805213458627182781977526846780905319801319283923364174749603660339442170953796636138175628409880615797393977875243554940466079745100883244262461894470585554353805864271183627520750842835564280971861016158295061136036548194879519377758594379929732743397265039335136255162829148849882462444757700195182180533700737278423252485305327585291467209710959623896076251127864247035286828016958485805106102497449014051413040369886287042285313888853880523701197187798398374182278070734993395632310362340229251085083439991395642888681657278662321422079738487209013126863450286859198011139802195747237662119368861565494392986420641624650624536825085546794055078860804347189893930909927897446071280306640471429528431105716133802344247838598771741886178289661915882923840738242791845773141913253889901873721100937755263961214432854710970863864594865396623694215038894244896479298201043429899376255712107962239461677205969920109714353029830580615453196263691848777018725707453285681910939155997988584159666775852819480729499899826408512505233995498072150682194917405343809841531159661499524404322162942864711285569489866920816539849406457091974174369305581479049506020870487212603144103000928474891655299874620076967546956024611367056393705039962782786094510095580670085918090555624704164424596138559228796937656999960480449079740147213108769228598444567369925231799512392068808723186330906174197117673681873476741549899190785979516449839901866047111919822298961819239573925599135621996803102610664864473560850263006337202170642079221977232096767085200118266309587960011738676479873391069987653881922991114973785415155441353839342415209838198160299938551579252102219631197179748012189679375823073273053175686037866295141918905161585106683062177851828140641314815153777007054539019624678604901682915390232823414597917393746047850462903722516021747329947591323411825203392374695528091578947272427240290999275896736128612523049688788119819873874769319116047021041296635232481847716579655095579785291115773199812260073475940958634087633707553959817849476236767703861075413874043875272352637180506983556584814662681701350801052427525184313206731703502772265290782996058965769312215856336378576439551666331183870711524615815626146848601559617968985940990123402173641133261011654616283089369229533465462110611117179330836240479150339989422826074473280454218578382242828521467710401009286537898938054158939351114387934725502722929957494432197439906765970449465789821272005033806927913939466518409658986569513696784200062217634239180005171385244174166930945947493680319200450748875898336473658659132555900474345107981494191221978929147221893678196144623216232984894949847805396318354390418243782045430455787516495781070048290045505760689905796705406365370671897453497874657813979641943570931768017363329988411189332005485009802810839703142940873159276065980526274334356866065526533152253317003072085850183393433592345289576661497296907379867044607941682834292528036630383855939414109708246268351877825054674903743780543273864578704650191248457341860769876971010044030141266028752814368869399559522798960788285977133381118027645878101940366621435016967636800180149470419315305289260960044406262734675952932433625489956367729578868432042254336377205093674427239911650737438692315985924284594130420268685140829491808997484661719313443797888675280366445870103854988775107908008146498011070546205385816691108935757191295864948900003305832085440330050753734631773687114553532660979677454995217361219771035019532532079506961714521235824686753867817296782505898829576644993319470423206636709421343679494992242886083636378693004788204650917551494424862764177540232897818321007390548696744198382118371687366282414993349508548594070191401984787346177065812868841774603730561686538112899679880622185884063275640783178512655226356974411576670260861893219389992686442973801452891206969238107293308823100060476632080530535316027951821614149404836884785208491341024598575428109247886404331613903644642112620159320810196996700710981434062206855117492686884921661916150713879842405489429784321122899001207864927923978482441727623803675387073795775159882900315879812730234255574109843072526219765423600942425545102138902270744808624781178719342797333663655630574582054558271723414939014762088470611210010424745075339618896490403067302295074269844732405127892410047603001313178636831866597913781634239219818378594046539935934213091791356427931137033215785151720566202709780541556634841374352647003408883744586875999436820549480042908248820422567567631396680641632572521091940816297886154403036838423968586983019014477716660456092039552435782222483884980882726155002785605459378718471585566941734921516144806605512983491927943978765129464217748869281692742612957505452080508630645722824937123803510158244042103518651418273033644669030345226172716124618808799950926008795799261178565983794393454271540335321035453306008616160128366599325773726064025349357246436083331130679615158712530576696014423670630699074564834649107921182778909543852172627767228307215783186466533611887090543097785821214915628138863995426567598413876726362950221868684885166729765295447389562243759108704217299472642022124552680209111637293609362609205278733785829723834167497989384198830411985286830407609254662651729978648440329246624607157838137201933552743815834680931150967363393309870790324926791441402915232368553950278440598194213656309804016256039633189245871442426740876969706934308395270026547007588511230312167491267729244775525188718837080074358090881010032439713450233276232527399065047717430733371965983086464386992557517420166227826271539025711053281075171940971545528989309611675596793580489407638458194741696214409451571139658408358000881808748645978100955102151578253570176062836396616980396964364157029827983874082506696952693753188848819786141583360334028862969402399085366653606747418950497930667288965142909091296542320165467413263107695853862892988742231513844658039506899723454495551752364037960173423457357802739073669855362756551777455910313046336494304623892004032545987802171801181548731258897424995766601425199581581347281239712804496231716301939042904508138331702594250056711329900897826998660808631739501112452612042183792649877235823075178694889223667521308163998758040243167046107509932900009825916380810413352869021338614292770313154969718968723369209184989569148431115769454961547192424790588924442981349219705941757730642362460372746256089181280736527722988467989634486043416752222908912208184691972955811978496425553583861270339173583008168289963099292858163487512903356947877420225483443831555622332362889033445846568751822834685211863117291720534150827259375084482900156363715793578680871094566523214438049395557318413971168874481506743329831314941940956645373136521743830463272125431644137263854960486748394295809228660854402206555999958733103114853155043512880150640250207846299620389558315706875214554875415626678923377731255738900849620911278676246591065446470491725770496206638092547427644238919014617578516532577504933335899429377853424451577238580956466188361500102282644803509448234355946724953791519653044857487743229992321915059964171302571585763171984143431054459991812469681644537732142830566439307504352587205231487115022440790347783624185346457917194271248577290095262733685487505404050473411229472186236228753093809049675132586244981396698763031001498310044196472394648560042935823753325713646949302943570727638146071290087524226285498030439308625403494792597090860784373036967092385390999611867471352322496307216296922800607845215952998580140485970798016865866099797536210091583087481553149690347830390493789824927043181271379184310184909226044431019644830170798585787683453502078954589489318040176230676436095762876041787662588856676677195411967667020501049893234236051868275830472936285878983174863584150771936272096510310806463629825805890071820455802000334965201872934889311841318026443642902240829901025945206734824955029851467990478764206925700734743057658747468292491065123096167725033893128677247901235749246471629600046881766890235645106758752180515895699798106719157831081394840661789339917901398469632411330214082566005707801951313745456189197807457293552037809071880311740062554210962592897878062336979283640497439972009135948702767912494126150275735090079315458039879757298614685655163815403747676911126581116738556912443648553441222789069877320984842711189543002888909964009562927219797651932563813279183683563663396443604935197928820689079033132192899234159419150555077835924775982800002169699006247117057311662433378697392632686680273884328027182080276192396099880473988963394934671639164232316520571922466880256299984008367166735128944298553889375443951952600864056730743191223319358789170260026805047101663237964162134314136835003134643838974427781458070459782908954369760271479127326254782730858829284574483558730530746038642515107500311221370852964681943069810085136729311934379557470560191069322678413859720733268748936356878119021549808193299783549438799309158046322784276011011729743485622008393808730525319351843461867838409586604741044443758109749146756843000628076868193320708127204362666284664987500401082375608621860880195620035258354542603513625958976657077677705669903677636324048111435523007427884348495819356011413422280822133944347715500475136311526949031330874357461273082437745913228828144332608628900019219311122303228011602465893820446510325347784851425311745930941883501335182505718188026017413959112816242065492573397568821142715280493524104100392100401308819524082645701330623125105298904065860032695674840522190964190155192603313815147061052524437640449515397730693068892749868504584570673421878744462910334432161824490564341235397442631568348086002537461072883448426497626756959136263981405802973849981717950626192135080673493101733186360840115294652227896612475595066932505544986422146360094444238469272608552216604532887356310700883993426286955633576453060316303683056755035529594631881040534027462975358399415727017382150775284949078766977105851344755110950318934808702047960688731794006943754069198967231568867073645286336384351414768719699640397367263047964350452879220840567114754122392028218484554826228540180182546408706296408733889736154566921143808554527530331267843265805633566520186951002859524257406034732877044472099038765274858703825165241185786421676866548348875453958517737495353263949665402845087102948942968760174026702371520289143241380009091210785018130511846465983280682001638412652333403302558398827965563641832674783279102070220652824984962183078226197273017464423086383399231242899852779786617570571660504741630980315059960874567540148122825703260765164421450980386227313391489600857191041506370475244455594430503934444698174326496479184743205474843095516894182069022884971803202210423762681242577764720357374024293652202050840640976845256867196955129417283638262699217369791744522990883259149712341574266989914250595833855252212727831002398963219477331613757142037987658824431420989440129958717868092516408617854890796235810861490310985425808977690423619048146349746131299050214129437620050799058113853699513885414672256736177820343145535996720373715754594826092758992777940480085671863450080991123983656379812519983792202757192851642233638337789022664251071876703673676596856261709301970169314267271222007824333874916600345476099638991193409437454517687795897547167370826067309264990216319602092590665840299917410411797878409256523954811498736422336913893298135457657101965034876828782428156631763154349348824122462869098442350077303223878942963678071910951126051313646265089208013555163288323777200380199524733172968616202306496807955070977106147382398260386583982557321446367699726792987999674259042372534006821487333374588486520569214067820607098326548080681575234578106002082905395092649309995273685832977818035532760254232177911697988629766809669135099863614430293920783384203633260789421462530491668601087840493604493240641662300022773853918734253332864064440071657797893470755077551387610760666994015276224503441749101770595352346264139765250696581957027142626145247645414632347275356189803216217636476507094944226301797979705939626297932243689779476993869293529760528158462208959095233005476575780323558229974836464513922295366817751628925236815419396057383628409201690411142589740690028271933370114956974992206777494854938187473626643986269074132418180795624213807176505944861065623113476275760727490421451108806039064381656369650319494793679924520991388616991620918286241891742818646687537946286153837033462931871196314201793647242280357949648904741574505793696483379205732574291785842545573664390828032032072361677082955201803388773133406918157103074395287232339612787393906321867446601140284008019395963406358418679522508467093451404070418400024821393270871067349989315631635959214376625756680217882043751677523960134927322871403205904306488222252766664495644940061211243669828034627358654510862705080824434354690439579989084994440021633392617350974979149877012962139702308191857819305409431242182666911868984565767957842914602481039848433735619343456489850103075685602925671034826408335633623515354135331568710642667742968284856472654373189979638926599789946125541832591442166699459770745867021623302545949645477417290198147634886240205030714546681558451338194372861692355748293995378811980760333862364577125686089806657833702736428957584186942673016800937914760885748040893090020783590594415214679224049276857233973974559594389103090460609309340807333249203779942121553292958363378302930011823124669130953515489845726521831060170938538586208314312870078094952322342370911887011743977705833154109677420132885695595900394160349384587960788877348612641797191207241666356747976238596984042746487777344331898188813305426550968719592200398520833728115213947396151545124146649077769956184936849461337970183546846012187281530458616216051893136501410641958066039011634551061050926915760363924009377462921291930939902966256271637870747248170447724842500613458507165272566318161867009853618496111238062797491667651730872325643576549494144569720340328559431010238938286620297956096933156301442444430887922759818137243053579343882138103870974467940534651814022040999445928215780382430141095086521137207479257068552889239641626099070450487108817429436917907033097153477028742356493453869727092706285307614990010851803311625143551347655224560073656363749219938903022502351885082866980790521765562533663417839232515124201724717438249008428312998220469459841390013206048013440192937220930519437193864918149513156708263785735338568437800927375147783542902707562638734200907341545733751859415972646181131640873156862568496137804218156268170768958769398847622267471790446927201227819231318876751194012440285041780063998501293344800236605488151666519515644874774357693081692253376211544261932966599745972375995378121879563478918909327660558991264010225141010747132835525974023867141662995772391936853896971370807559780876945187456484965860616536466186305905922555901052256188775600398561336782439486637738564094024067807425421934445662104414266648824898588468342585121662336128570073143854176307457431269986509055061923818888389894286433753090148362270326966997325445655240538486176328697545263113188631007980905041265787066127773921516349073506134357636658298379691813920197315101694737351251150797555574728130004158915417469736438983380219678518316077084632044582460075814805133821859982678141066840886271519483662558279820175428114324967065166744852669521514039391859506689577843181962433101655563201822199656093422085613706956369314204128873408659209454844731052405972567678085680465602925155390185241859247402604408490659098917474204097017397437145077526606658938006850776241449401353400799985143838355666460082256927042750714998709060036667800982537514331316206865179075590984594957533092041642360680831146590145989520505863605017560123264638925359648002271502080742863947140417506308919419696159337234607704194669041111168249391498772241590705560144642826712752015753255322487457844306813311923008212136581812328408429272345752965962025565214591692847808359564323386160357126284361469501021102038420515419873887800025146213384939671382856485261099115660223963081631322864735255879466488358803230148471584301219992452683868393109783234389939717526962048707970735815729594246513453739378202125509263729972628429386179935635697386813930696054311049751564935364892472721985416989187499944226415631446800716729154640289293795782618822033723109038710209741388324749168778337967195701323534229561139525439208428738613169829352854891086326691209295159613270932068750493807032934015738230047914316520795963440486690241141848038440666934315562406436995534179658454417841794772210008189870633577940509334427402365405680278915401781512329751802083084073545887739946407112844310477469536152235716724039360093600584790187563829612164545605026970226945600208734419339613411213710681543622270819231809599290731674432801367839275628266529366937795612458742682725872559865151507222891233087766124918631855922892693846305454449716020530589531409817290473090628128500041399460480578476530295738800207826790732883801403617561718654784535324339245940399356812389734191367715368244995189317666548888782028131130517483721880534288090596829771299153939817032640431354875875129163596996434512859270297701548437314464465228241333985982833137079666654042522517652903935717701448579256913570533971196773890571992803046481306391220127778826970958520525773019799499171856417395755123958302684210619435309962065213504035937596444539692397385280312896945455635666532095584620846751573146896978609885113800509073151671520581107836437168867932680631644513250658817846116441873485695987129399746347223770450503319218394745096603008094395864258582612039441703377009597639443038047452049094335594178915636786694038702376656285389121652377537324464648115962214907777741215016247859510113967615555831868058003221698792325986865717586655670119372322800555405035783275452195964297001134976403908896422038964533382360749258244563989178345030758781442108111661541736787676189554349262375305303833818403760514026238723549043400333875734909368072231888695824404572764832125988975631609062854420568183383230141591088204679623520682728980057239756090634050118628158161567810332436590134792080444648634523948799664354414479638628857792676690074595765209789595403848283821837007452379739570806117510040256997900462618835139108378227136275521677536962323484671422834838771250667895296791196995193572263379800060506231950924675865196037080546618745246347411648552901880308307542611542138780784861846030042103969022410836585029786721967121433728651612165127583285118382559966483588567026909812772194279178868411839697265289383331526972587685534645066392515449573909068305279810805116101620675838451705129643902952230544165862255840737128408097795925483675343208250268588130064079237842257142922206410738759789451350398559536058928295892327915962816355093203329356492006945783390346920906629287837840418474564526738336679989864060819225444474571683759507482525620108603892329861656735596563643625528404723821521558736688230955436476400586179229291198896731599025637733628245537294871756515281199106006630649636808398345815234394798204370966027863032263258332716409793220028165495045887996780906930084262571253164811125723331632805614622328942350871372008063392007909939051896943666901119211243430855518850077362867290689922684912524658631607579869611115529732011611877235800248461573087977273451977846795202269682856027044541104760960031579954492579431648852461840550417191466029036687429377324371481947969231661322579602274395427964272153271545755087076820416171557621004754624360905220093140056896065654638525684255853799350721455098501635264677726756911950303378616791561879930446847592471128530669738161371835911041737685613134475104321029327762097211927768187297895089272237383087081895624745888163377174599198107609229978657438894817396592853959959070585581066344424112421157836281527597641456215267911104322221069150741322732040922896673917637784287023509697861967215270966128718018955933539351264001336760793000396617252901251833177509331895200154432641798685185516490787775672772419845183840516953775377601289755550787226292848468893126261724787752637021818697198247759297549418650257465181821969593194163460151821189443539944520457206394488619610008030265742400905731529453547203869756860497860231206034174003651197890214091235492558961501215630638040377064273526998190961420173673957425512361840312693525233771714195560909957837338764463539596475223868088826338707488068632600168517359343914717140302097635064242630200606292839840349204310474639720518591114092639027805148251886529373713639184165910314475225666250950389034940608961596565650647468413737191779532665005606328100545523356280664999086282912798082691273852759870031475258330150497998322097551792753192775478874880143444164793937283280491457022831009686425560817043214182386044589842691312533652607983723628796248808230130747955987215620244408525928887113980011850319501352225939097629145543811652452297246902606364672034209902231167434991904142546622872402433620204993280781491999071866925988480148853852028488259266161230463849226265977720237434726898586737727408174480376744130051163561059717204731678111977232652183529535865803503510529398278738890558573514081348450886169786885168425446742510997552133366063746632965539650556609078018243995025545763515767097328144808792329101676331255913312658821271781719214013191578543777923524435755355526176739312891834627607788572836029176721373760801868837193971346744067427719748995457174010370486119908454248130218310015418893053128371282759814609527868440983143467061094962616588494264157882297390212379741096418806487158839664684251075439154945743296828000857271140205968040076039362482901633380821130426886359592135408782525692503075501532200239097865683285210513100721618574174372412435746929382270766704492865901662922798014651049183815996572141563121127756418785060135961016657313131636485201617926596044017748544184575260761070488466736679894547040014805694427874333971001066868983945042823085377200519749058154791455896918747277140165407548986131166478560494961335829335305888416007133705118350943154533339951601766132062059675638289486350732945637952203924547100879960422613308662793080226762115626937156218123018689120591191577488530821997856944045319346263563910472379894084689016939628252786324402469725400060662690718227119930247908603972619802521328391067749559310491078573049262983089764470113978871038472556213126413521982554391802127695195972651277976913839117154272866927121331308916457746365024199701051348547702584471380782774557373488098628472256412081322199992969431533458398216214392269694017388543287261233396608117707880856302949529914978349693243532600829822141182241758912654086147031923538167069914676118472503320034721758092830105673049952658544039145313513439217081310494583034487079349614119819917848309835494367328304292884949963268014110109860369577467248486574224238887621597490556149082993534224253218820750390940959225852435413375328177318453387800464007408250486796000724334041504306229229935021542046191039790846850012678416236105630178586218327919260201781520026808063416667596839325396946933432365709358105679854878339913504065145210767333176374112275047476183337165902925477797675163245569625640752264017478401552053400261494597115427826343704398231092244438574229425476347898851479759546717165063482330097883777285409511353632124167944380479483484553756734095369305135290736566412195617313459101206608033026146107141374127667308711068323897679798220469444214753342488148241674959913978735047869943488869213054398769465286904960995416322645805798831634471053423372118983762795260486015180962936782123472005626790606116807450404700904129675091490129708709719279458564876761000270723202203612656753294277694023657282327773061571234010813627707187613172844569182161094020302600092683177672380227708168367109119563993972298840090964747260461416481095414341793063302768980299518763523962059587408671040980113415037265315304061064771337939293947503561189972279339062209368309309130226422536562795165668788290242711262426990235922059912817421473811343080813694893273449690807748916204251868912453783830736341967914725630100537871473759032455023091004848309095211423463362274742924554558722328082485926992315929245987555318344639222017203299791926808038402555644306408733171725893531017808329500875160419371911825937299933922602409683385857182620079159227327085910732651958880625392123054160712754971016311169193100287087610712687540114147687233857016689570666821268567274182153941441327579042222086957890462346832706334706479192259138255213478214856874519796155398846078709812549079686769725550652793087978981288847050093124918516147287446234654689741413971187076330975618898158873129312711184047873632807389314568598274477289757430316257442967693411128271220724855198752022417903192126283242370433063860578452250389888818551961288444759052127245597774862197870025352182698864646817136815056319209745413062599441293515027317588497697077159861101791094834268147096391670502827414714605729915047803843531352315623899143070699285799572055832254189025520235431292642595562265582978141411002047259226608788026623655839446866114862977678692494566336281122932148222527906705880221978114583427080311272654709970245258455064539342674182884811135817901593869952323795679368536131985834192242378466818146981625881485603045093661289662913226397978803402297217411237014168117774413780943300119743159826119871746414778828548768525143595411554462886672387580060316626310660906635426613327620363781684038483119889416160118448051225310425441148364985713323050904141644477066852333463179878922310446688879929991747115933489025047625140660102037828258912715190810623670005043956539087131709098680283899378239275748678881353634729612091738979817650318012057663196058356323539607141122936449982701300056086303520871744606536562280463467530682986335383905747374942576022102356772698199908780198249188134029370485833504032785038571790554450224415462662422188837792157602705083657811101374255681666009288346513775371092357317416869651032036799167412245928405188491404998844189741692119238272249582374159682307834832560728466155263136813432284816653767564644010458402258577580864100632650224658856999468623909098360900248026503447352894140730412494484797542177543637723892837774233326037789472500917904612030764099782202310604008912021148910472357015041893438934197711584829217146301510620053774589056122931536479172479523379084654173965314838306490939928035140488085707741085321237131023803214326995378199466162118262024192207745425179573535620232209475798068725731026903573208628081703959529347396408393724359840820626416857257820291242685808876765771941287474660139032619161286536009669733527950847706179764984833470012739911370070669146344127238562425732784120072542398455292188009141428021384273292388972434075611983082225248940406087967358900223230021873193217938602037572700194355228163459338834608568803431750684190131108296744449665702774934134574579869451499065117848524265123069876957058919007278405518291439057570640993287110419940185905806298861543519693919444272776742699083468417583693556953100173006346141117285763252634573548954933701411846691154698945912550871274376550790971542803840549250023108948001242314172528882978507584130417295986446307848302267061923509013914138770035564441786870451242916505727352785126566007050271183017942448894243758077274318457839782357724822157705795441402491948434122839506078423502408676911290387391284866028263901557909162920183995096494385994683347588456725929105367666237364868247976682343751101667430326156881962718695764824301505733405221609871422572486704265138033065426248787610296712786839288681866523467864906533755891310881498752722817727804544929099884220681119218809575251525682786312217191683845783890698426609050479565323592762108194692157807068541093521366566423436765993341630675097819029557677388464785276807228280503809656342428641469974143056435329356754414121295993190556476695026093803880344536006910347826467030305737047504778246120061769542180577300433344120901164113162790517845301749024876487721326253966845881977902369905933628919196639612982446855688984071386002889727601191267241745741130876875523315207872787693648145261209611563376857881738121192796699430091307313649296746045138765405338133026380851237169275302794830425649631761054107148481977859161096494979770586601749499338592751695008946849150879161950865668298595893684099909460124194291379132083745877207719953437820005676448512153859134191330842205661670190283458396398427617745259252443968713693647746008650831507832632894747661786718234148448925510526802644672044202538216900128297878683920523303305065476577122474843267330921893595649732618368676537726289255218627354361142836748502417247163028069194263125764053596045073817471011906079343691084911412639853147711065783031987916749705366725755125074053615439077315895301294439661675451502658141507693275659221572237055349245244295242861269507538881724578335246850213661922931936892242339844470967416597515304599720005457606526359662189023595276077779692235247159892392856165834338661438724769835113289831384886798064883156066614283962838086177268516056266901813574603104918906616835622869037911716798635640064115043928439772836308530144418838252618103457744514342246419434322954353751290446628569316341963985433936247152258949359011026967222544201334867231310525120736166511252664880268286251397609744777099233367908705320426935431326107230237349093787251527452527729740137898269273825943512801094737001821888240280515762003567731829624830708701300085824168217256155986161991870280213559376469346264278566000722804695619792794853191861138166391179592683025569634702152949936237746756428787745116948792770047080686027029837094547233119679375481893166997933152761494706131720798975271339938335775938689093841495166508336784130088230722330259864339805985307570386349018650490023943643293832891866080534255216753528871008931812697086026381011540408738197732153657893539769210825514912307385364278633864231270059952537740019201066936966704308737957331632988301838692704737666915883402965991623971453439849008633042766217256500136331802751474576104002587132862785725851004970190052787864362222760003088703824219112399738450815722453601266058382583576280524172668997732469160796053517309636357227682627088240844736018033612889373664465525991477073901336689800624945022589777861503953077416639927184120143583848844712689198704081748269685139809783756182823933820743627634243154203412852915222357955882370632197593760220886325757595138224975579641030124944300787411729309584291433091394579810958992904725421408339470100821266191620071184329840435411887345287006919090307867349197886347226733740263240807818802910711562978250618793451623191686260513470088560516971266200931744217334273955724958907463312543043284700911791215989965437698849137255238152353704836740846784841237324149308121183145739261107304251278226671615025202895584032567327839582657220248242149841232604792946376207888291710166069058559186299227513449293635753697524063433503942114730080605300242513111061679477704544073802451763788528246705267711390305543741582619717056534366188486316821353505638584332356889375890795228513273409630580240873790306629999650242045325839739654096040107554242611124936350282926936411186825146413969826095714094656265697090463237920871372479591297831996994367156989306602127868565863332305023828789006437254462724327331882853379090161394554167840703878482066802013404208562517611707998279716791406481161001740852182170717248396124049865608623486169994682773208909961830252983701175394095794757488748167133078959461164131246635915021330146060002017734656642038670701298291379556730894203429473409090189468930266755274859265629417280921105875487402876477018832447022044764597309000197262758343895313245739464612647039411246322536246396050423657728973332666903477731864850642736022617868001480881297497426016881927333740290026237769899668535327481651581648750996063574744977674104087997155537607840006142376042667943203124345236994961868615010122603544330485412912792155037620692982536374475002662025109245046713895553715512815363996625993238550115317125225641288391370104766737522889327031387957379403472206831647042954259587606550221819450660570156502637251413885515632656110802702245533535306398422055183808837047078450077182866964605525577359637376267460685189691659681641613938678641715704489118864226190805928224159292892025901222118622132105733876312011272819049318433799368398259972942222765617440453361323957866002785644795112605569653375566414478235478402731766421179015507854061209736025611053901859583752721843999159311867890349737809951636234591282643092115810038719341369804865287830927392569535024781952613197328438743778890573393081726495355236260351998961160426639077418315887964002658129961542414716876238127282992345309202607870729795459011661309555379722177094745867234210993148803101409834160800283299117984743279899462843024886902752151546600700890081219711531410216109594671632580847695721786888067121920070496022526371587936222600429496784241394446196426346203623179677884463581626706078316698757966195567858060325505811588773022918730324162822623531300192676577494901980055609940684352598714285265084707358927453186453293200968201036899287523187974764749853316936430385145744336309655534358180922152661940410452219265525167268280721140811852966394740326568321110193774748782002199508409019755117992064151081932131321131541127119973752906916181343519801711061312725823947467593982602173465462537327580811126131347978829123564726171641537549164246272728215920390112741494973428876346284408972676290268653843352591365003370159858197046069697901490936926845848310237230424421309926025873169619509231705296818523043468929702411044002251949839704651540409253120989160811727796684601215951067153016393446077086848413458310035943812620309267061328187889225274922603424368485422212891133692208225769071955051865179700314738796628195727140083779227107480278769813635904183020286928559290091692348195829337107676487905272505403118739828971790552777596668967371682212314570498010208127394398622186057356237920155078071543988358581505404570684769219050500544043266256846873041367958892620293934416765646115860425946328508620320206072742575443720221818439527650145459258194228506528577225863149913944712104452323601812489196707754212785786905272616815446436275078914423481354342407511580414852230798562487191668539790756408515323957603649472654907852647466192296063885086593501403083216216190385783884693972836836916218325096597768318183586343609138955002179533511096766460378747140442120383066480341509509880219687464789094414944567947344056978652879143370350828732905202383422616329298537510961186079969376300201449096087915700294345882974384098522109046669302161988880868548620070995814898140145070899844817076305629820808669544101583360210056673634309078636874577501280881959365748863270909961527596324640429488758948540314891401311570334722958545299787812252003079796281007683602932250414622657782313056218516000539527857033419590555767258191460825245791857027191508232670512760880685912298515534959030480046661639280320762947446178842592887859761795358852797334590058609677924281289067332297078379122554347967278120888752263752475796488669552256043000623296521089316609650618757646817860789504387801518536538384850778134167587497257526567430853555335544874443215137496910474840173659352877974362735167318650193511779486093137401578624545966106706734978732469038135688979288770553218273779322880806834803532658660390882885584629299521520968975226480296910037806612939913650051473740914815474732743875057938307536109822281190755982228258128302189175443358956884924923040747702069942409199528678114598255226003148168059744739233902550986801642158955823785050463317166016781874472103087997619207490353004313061454254019641006447246111486645239743078178596699635756863845346286232187236020211153980832298979387891904544195848127387446390183785277806028664594486049940211329223035470940228439644095269269000795037832640758857127330945398149203570680305952796354635592760831515762092588547486810839199269500338563409616311783793270040983979207629797829918825633260492982703775984598287296376545227557801384429844164729158967505647719049747727721619536670556964544914406136234650608890778178306854105579441605221033620378055850146457260056308177680233070319629771168788895553319620472657507455034163394212171725110491778784178176401386624918198012094406676073386159329439281987538214287557438639822715590973689466060728705235657342622961329533919032435861144671018802651023227264405418940247874265899170161928654986066273114181270156074953604603883812729648436515395106492367250352057147508851983613927447785229129692458973073551729548650715101990268097491096880482675613245755605831504099166948028947572224630466149536580873477412109774068414218398493932302506976050080186396429772866345752166063814141436928124406980797426784100424333838331216292469329535340842087754460079319030838577615500781473094952434805980692325592627709600173725729982718423532550448819508789325398685514810979124855714602668613923991409349015292453325069169553462622341304697456939533230203278122858545591653034372214351061715433881868985191370771147857104422417491743746413729693435003897154442168404480220557289148941554983951891889094656457563460418391123052589783439061567800941659149082750662228145129097856814039245413263144502120313148532579672744749538301278742565179187795154553052081450450373185068338572270748262532023388730947655100193264761385469875903776501407071905233796153784138018705062392146917189656715806275815213794226037751479571122369791047134399063006678004515323024910458482844625852158596906981125586020227989712860188508570717148718097725360976129534413829198458989032683227449544644531307973044901868613218186078064630308634875946462009948014211609520227387244441280832720367212422246015671979277838303678099002522640750956601954722177288941815136174678743351792245875237807994043267176786932787334062786367337979724116904668613552979612266828948607507334626518141041179333687945182746151130007481842031516722837511679338208768385403138209514628161847503316848661369437770888260270610908618685777547040386492295626239104918196208688388926287929098724209681259371021361570444441427452333270238157198940739692343620362418887428294951600565859796801208851005707341415619382964018676431996166440840525220583499573215644003061937052446529820951715949095834822723857868998880875015114403025915537956984709962286370292372935642638633507463228210826000756627931844700732612919487952959218433766864186055555729760856230384518250144018857451053793769141716511343542572525495287998952981172603803504677779506637748641540720757488036763473733979096864630875451857847882079082941503688160202062953710944760015152174007612627854134168716465972301783552460907008840709343530662346106375465189500130464830079638614449023975682819954898368826344588821553227743075688486487940384988215328431951813560776708389071230884932233528090452968873134828507516415203330592017267250969163350874300944457215373833624314396407141344629500175810985475942428664387209307640638022605013023345859379698543975363082336079032980757623284707551605721087985765823343433111862495773113940468611900997207793064879394374748603146037067041156123904693577048925374078788937611439341839413174634194233112098975508189051136555791370867227151581786872836898443508800691507997998446407979183043527831962773982495002182726437965282026546728761048082600095870913413220082534949107716372940967898544456931617790009520318546657901216440574251613540745495032767894681977931533668458468840675554936738684699021598483166879009787809596015562649843431436193524220463560724107122567217554034471850851055194919120506960873601433124976131822765496826995088934847841647259862424809288671522290143889351988647209280929361604801396532537012310057346442382597190345082111722561788238524483871108476630380257629667961218734523616923494251465159662993105519601729050379339569294616834912064683922042770109946724152045511933002660531869787869541822412498299399588709257135657617035780879277480818142499661520360230271102926124446293944995304390473843024410122527770225074805934619159588318751322247110470239469684258036604161700654309227674771360575096560708947424901388741849539619865233762093999891748313582544439948452646092257053092967388527047466786768646880478731711942046084923407115088411961101587463334029857581837845245238105629144014595690203131431810893782932438294856290105650918309213568615175318777859020497362837196809823422020956217932672920608700017149163146381662191827024420538701922055303163402134139573372934575257061804032885414516844504706196837988053851844472405154153598459018736304348528293716543627043700581633042965806086539791402530894904314626477581778426613067368658654111337459408030964429917283864496609988170073299679071187230257069178811787238790834695811731849240799284211719845075264508606719435831289845762889985970876261292593025728253742737611088713026633588150550080499150125876165372852002607358973931501612218723871068580665557249639346863290370380326593678652310548604091000027866749181924434294834360053695379752112712275399855274685995144927148026699678617119994539808439321058218352947023597771365742680743005015333823251882052427532896168819931056920611962839345438091064002009571699710804852294718140173375148820516365311605843791317414651896116286675823595251104807984956925110642352320696681101499029875213429880836921998806332096667848943204860038658181840281994648547932101651844467946286568410927931205523852956113398992525590051597553660364494468789873870899590923703785470591982177463938229169216641078762748899196326465315812648270406673127879926313692827765217318127812663716316023242197659293936504940185303951656008619444078875030903171916709377878521123624877264224910437798776578633396762303186735079079811613577105322851256886530002431257442266802232166993071518740057516175313234362380289478028716727865199673771716520478229332647772503565390354026879663621240761318899054727865570690164946570747001887776732856073786302638775171736146163791023089711187434566893214501687446360550694433122365157393036620035968634740266522628367115244006509246776073765919927588032190124685321873069370643417179655043219909244690582080479094596363034762744797703274591346594989555706761052593747780860990037508820900383792306958764989576745875288114752723822979438191683590050053529513594950187472943107241455265593989304640556886627848263605322005067088491627028108735488837053829915316205446804404413330246130147296978773708311324508011377749911385337194105014463477901576469904287085276264309550624805974274109801062950540537869060851255184964203433926148850309872288338088361833157314163751735334184439482673132310275490985347195917332105075191765535959505037242751398582325152386836639585891838874549560654383532717708671817973338901462201626629179108571481858832534949376621408349387407030652727091327827329277049450702545513571564969943502241729402704997556219833102193055215241881744639142394311718299750128818723287110117217006495972933973698957156119031395615021225297255558714815365646947316218788237864156229476088594377260514931225003075201019964618625301506517303374455156099351768787935076345606126805932852878085748399042837016895244930919431143834801932604355680428305708564670356432527025460291311920806807298097606464413977775477241339903667495087665123932187003947929511635733175682186826165569988358470783308365297318403498476493765488707154822395200620313304233880220790103713100249191759916806380570639818003425994086761658095838243338374534763925006318373728977246456942615761990659883159576495147363386823883642721353987367049977837743443783966237330919893507366313567079894585208961914583707009182830804058134888247374048869264905393353386481110884351959795045959389700547510637104900791468240664013596054711113415141991202615490687460153504784276985782540466530557567905409954052970363241866530281017242733807990790784288077132875587206632295943913950470588805191733051184675658246993245076497717332881780998488750292245061519844040678080322394838555844080395126190913750370710304069933165254395701917100168114861073946548250941441143096910409499334507904338199453418283460642947124843190076220352246858412412443208331165265523003337217762777263517043152966931571466911808625760758076472720353416471437669753837883410443089878881106975723616127090899948841975582672022437562476143629984620288717892812800908612180483468982628557760279286692086548362967518045461725506372417963166357579621736799256657584739594770336007543545933635115762638981519590249163289760950162938314281162306060010079013194213919887855324928538749505058861188778277153094324659327678078522457051011674767988678554064026128561951009313871564333083044907037017014520019141552995341238561146162363825293752984012780874189122876914217419574148757648804835051058544536435767213503651820194768956287737598831884997396273011316082848956293475969012194957765081832985428030701545952189229108447456870945263934596556953296412402673311538129102029716782605848911809585433034115186201197864675321114986000516732631429902875608693069705910801549941848231559019737460864783845226515522814194417506028693703113813826873717162704924997137557293451676395102963692166972634046740950352547844862265534344372679576035436198143133418932328439510395238488631979556361135923315390015311890201121445161931924247010936662364908091420064542127264151809727602745952680497504546900617421471025899666737572508441381654234753139467574676041079589016756982121757818695731110348870773808036866683929741446494331095917369073560868621358821604581498975939559259119964993917535049280897862392955049319634375079608715882638885411789735308577679893505927465589428471363915284362159440832118122472969551206896161802159391653550815414277758591538815806595089773822123151484477089198053747845556953277100341850685607924755403896522837621656743629979900916919710720225187047523700781632189089311702351472318887657683934637892336301124624037199853392287002795333817773554214612298600753938761399750884778949778579342162971799517843342296121174610052960991614267964315981663301174849887561726154861779695461103178439428469587083696848066681773692138624453560811198563028047128327614334559027651929818384913694496686159244279699200141386010813894334274840060530919761629388207964546851567566644834575923052624878931286042885922455539604649780689872475876620698289159227571298380343875548858366015360880737866213717665163941190667225360217402243205193807908539032137822663372609057961532834432466388662536712843567237839890015348313761195191723975375844704802974337025013575299609971741177378868245829991792780237727391686339614445398798875524903466827177383787649873406925280611045431271423073999751582259702531167802631752637430069573299824508597117503197764556453958624743461783064647406691883672060098105450133448591454185677860750183051326691774351419677841858326575052578948946762375379236266663435982977516368607041034792519702627136605585956391197318705428000946551131451246988456319497547037098088406157992866395290017477850184258512483956435169918142735046654437965692069469595977726446218723591168149659679529801100477542548928965085821886789490464863957386171164973403580396271552867662896109796977945481389275075010964370679923054738750691862152819357935155026855746857655883333744021349351787171773715355410377990078968346162648141324084952096307462713357310739346821978745671111899056933572515674435891142307605767974058967951515226658898906613087492544873460918055787250815032678306080391724234018504654060535218360966225501818694515396071932602793066179572156197488344012906393346327612105459391085241255129597997651947433345563933337882425912987724507611306510825153575272551308156825418517692842824986201118506135191048210909808694565274032685423743518942340683110957109996761132046794603018562700723032521977705695299162853150192970381750010823186015281802912280874738958520215173441983639158320010669056954252468224648259053479030983902926287636047557975447330720549464403272145869501475884595221715392571171706847071793436179583103993222127784445029036239184509989511541954965079380731197959453517589068951296076430875030929172514733664742717916773294386032174349576813376791918555690361890639330702411732426963541945162373820384104223300570861160091106400979713560869515311428022088915317559283256271063805196371131611082198945815160130794097211340768220708795357081250062857585563808407131800339002862088727101783868481288907113276316652852944553846081706038760117022841318441394071145281065815175116313372063902609854150999403247149912636891896229834351215501428229248911441062571907790705163548001769088909068905058880381107104218153790444934916830199933399171078892649135686425400631111979515347864435955313812194962937147052260670209087031916276708686722202650946449140972582464665171885773132650120509812132397935910995271821093547226980087382678787234173552838332153809049126383501210640319357568129753326351314308939103236369623703018598154011753185007143618654603522640776540448220151841996248959659760997855431245024762108386384391430761245236568081955339618240343854778609355321848535801030073693506137394180582871537808484370686236521609872402428388760579258127713085106900499298267040221874735191889788060013575544002122015479663120712680609305661610891027627479663365711875971676145597105231037259873461221678371712641333973150608057208871150488342021212306259629951139356430672129714279733613938912091177586272659012398335953143009676262078892933639392161261254068393266971963124383054215737605669800936518299833811650887445554608431776052439674844959436289423219872968581988890847116593700708616021512706603582672838967286176819138611338788631774169070363994597901676607167625022242788535986584162974065139892375496832524076023449440785779711780538332708507882234261972422246703899963492712619118158458896810225299128129482229101859922499888122881552797408887329443686322897698421680172030429423771135615684722034124252836880306919423603405969744001021137438536431232549820457544091821216175500986229188016666886430597095942641619950669960715802224615699952570376575577633963849016355198532611444603681134208477134091657010702130899305996380730489985057119548338475892391590455354304052281846553563998445017662275119353905611600614981557607805845705129728827199801856783732594965518661384529298856887273274036477035730100027233892703614770988109710827032578978701269260460939140203233740890579904554366463668012135741139796502754722004518626945245628522798014158852008437600255777041711575285183227223025319264589437644870438655155363803063445436546112420259650984604628082552785819662183310556536140422211730121904723962202049376477369582011910454213798317054644182322677223139437443378055621265422375306449926722124526578200454502842310024046578372831056791607226585979231955189947017655704809537110351311399436325099252404855623086344579647135724411211090688135601368273003531380013397222214282086318260339671893994352448369214071753973973281341289068011104982644643912370088071047918579832230368087372760848561431792347776649325225152502371260029644794197652311099283028310690901884143749580023894049820634688488727259266902527362183002948734976863487180315726976111602159196834417574596278557060853505873885586921837925422503350340602531412223287923532796659781560108442798710992709210939922963361734406430646905136869966015013879028131485785228658212716237832881292255031149347908199238172949071547429209374963055767589527819009713223373213674721140974285160646395799077883737375383952242163741176131591526035124052928562550045997804401696179096191596114755004253995470594316089663160022275141489049360187265619134104736000341703191276350542396368588893538220124158769838491650713450625649394207313021829652334148349626675221887321992860322589719430041384653658014809074673810030820437997259818451990737691411364645028725333432604322685350202470850785555314650028902426318148222955897568347915236184780153601412486047966694836493125647131496143756064559325015214930601768897663436748473306672600878770853669657704338154651681769846028805638232069100351472237373177236771796586562004669606318592134600553552973034655606914237942680709160299768451036102842676476374338432921216348480856252624405248164144684376239806846331624960491232531750742335829825982833206853270582281045722291123677906275679382939260840185729167007985089994737358530045057712242234324723506949941499295188278449499490688868470428267903577106111550054134679707237303054796052654096156363842617705945271541602867710107116494811144130981929557328656327294737901259022410752873891197024675120637308000868835733327688420294105669550108433036486139390452794900930948952753833010374308501848241863549930229517200065175482902086249411074263833197294479226974853340905741691074652396309431323269481028468705444202057029384219768382881542497003400412553901496277947413450986911527570233597169115507015658295579069248879418067751236845205650418389275360553964715579301135613023714616048216550936149484251880080030479311958234087909717984144267167900213329714873334176050118817077733900335394259829457204574672058092577081546743480689633395709593246093915186879387484785154737565762850356909278967336521322414214142841530808918281139728120871676236563024434184662102124810000944942084594468055163524370301342086969539479512960564534087371617786597977694619440740543028646676848192680550290984139417749999738551343862333990453178521500957210522737700888301625724284836766452573238043873745811061139415786679935834290592551197289896406219178038963362620109652088878892759324846311533989159549423256284095921523415473930161507250906834481505320732215231532659029056819275397293271475803985413149614043726301974335240157747164383603361135635808199181019328531312557897262606841657556090331494955990977993202810364797006142753833491554500236678163230497625724242059625151858248275027921684302159052294092193955453651480735465853409691213308878236661583663770859248376396264737552094644067370469750545405462989032806241038576388847184186429626271584906773969754876859657486227926929703938176718506407100119800373766742622515957939615310752364857553240695443398275986300372315229174346798712072238265731708857095441061792223904258459400023893154196060367850595803571922969963369131272283319295275141173641465190556547517434327802968498546632490206467763256334761660713104143361984562352504489099966279022760630271448936007856324670409635058450772234047301644019297381055126231713952687695490505997149847902609815068071907302567918405119990223402643262560222354013527386666947137734738208186623071322108377737483790853732290191097914236137616190984080183192216222775578517016096193317430408783394079535659350787630837827922120862422020687479807164109781956724943428983416656313117805502379997496444854175910379351052035021973168568320448012548110688736199776246862392375416979195679615527118605708469057986872620942590334900984362456826573498783193314643502898121090833791036170553516417811699860384207847057464874658907327037065654076393260919758985540065063901172176044317044921454337749201582905022835603166777658307520867740757432507280982082202857544138501266129459257535734732255825302253003839112072611819704336596734492583626615616348163790551175333276241888152175165366433146326064766263201352557988162875720118394202474886360005668861053856789246537281953415332681927423853533161106065706645557277640074199382450374740358238173471181625549489231625425082050417656061927204420229946356891512920807331444682112837647363519175056651498570972232923319531917614277911355689374361091544732368749609121749835498395981855209898510561189348336210883548373377181386736560944621668389682590061941186397586998529805446986783407676618591499020383579079834300436775801270813511461489970550091227199300335843949251975855890555907076175349913447859764935160134489458043631634101633979865473287443154083271985523302857207153652043875631846912198303879555870662466550585271297226098648967994755584562783280156833608762239884030480408284239712584887470204523535473453737913259509362505588010114544589694789758295770780034086610676690518749781125896066916829886500823462646791933800996905448912645297490730089021295068323801678107058032434629881197414699419264337651403031320722891308744893550346499855402068877585130023575617175180173818544871613716509943050887730372898360432422722795282304072576438830676307335644353765625423329576086021236514943907979457087849698538972846031127375252987476873165911714479776165465919256917901021167381113072363110750987059312975276512551733595477465974847237501395381900169884046140021304122990643444385649952704636187144289095613089578666760858399057504181032172515884207263859551959900614662711969353654490913948511432850912065111305181990838284781455128553113522950345337828060199551960319093378996016828013603586339142200537355304070709069677677758756460377852762512915300659752481648496661811678080499352891762753185844289816679552216886941770493649689039428620982757785303134158920060985265979064829915286601702704149322311745968835001225065731767484044061983481385158170711926089918872632047814168075546651604878524513739723355083900022511073326673222530787054792970707154015936976461200118236040709292271708792168697363107772723954260636980209350007993337900977524250754074012971672966492246732032725337286452603621382424471350680067669261457906072770161229825869174080909508028896113468176491260109559955585370917545579579163923034763982305069939569940630271992958365207297677919902435614995489440837817224207961679835779886774801327985102998504047360336381682449391124617387113446132060550598777708134893119446695231034131026912093220537499489199883390067612962248129193578174286661984756270836295266387045826746074279667503914651259310535750220472825832328189441697149063213758992875345209523503428519324101041927930096868938551901342619708786238067563090645442600724218310566302996151407637194784296422736423938480602253917332069750211122307652546452432496552027369248341096777951917573093730076773259343486282353658464528853795841353254096775565746665444684242711951556225488505504735288293646617990690143238902442550099733622318153007694065552280483393904002712639957267817135224496029145446501353395947436532558772650808556883733824195988003542283191812637370945620606741287329000985441651427862613837247113897634629030696999617670839016798831503636834343207594274259947830662254822416797644882215902009362253193395455380964934364719138634552364791795758482357670371680026688108747158769309439033402680721590292695012980512176656542327214213487894075682105314013349619445038693252552966106635987839408074943736778026136082350501653311579000608935809944205348984131886646753257279958319888867027052999008733157663601970448899960734661514720165804441863189611073839536569977488057308021055115324486522971073839905826853135223112717008652962612346826341261827697426702533699843676727334597175176179153222075260392548716783673155643415318786603639003338510153271500443098459408841195367097149171390445356685087965223759789093403015346642366308745213812409335559934308582916260383193767312572137467387665775483156615747971976032529570819603277083462994212093730449326728844398724079108140287714353912899214356907777288521752191576090492173556547663783356593456342097241480030767988315216432100266595759668228481258232894915303441276409918759333553207887144447979181699832215451113032813909497741502271696376617797998441010452002988462909578814657072970228658211854610032061278037152389732833671637022798345481838675671580813588257156193205001720012185218994117517757120631266649689712475768684973766174966213290844784471952901137230055187158549843482671596289111346739477467464477511907466230571525297780691849984105342294243034627511260293783879129745995843241884282753886051643529040394011935767486902055989531561461302670837405930786158759615236131519104356056851948551186080222942651870153565367479778862401702517458628197762398361707152837134101813109193742976324440329451648515670310093173208780845754799913695628813970424937192621995799905036947918744771142333804832206223084119528292258183948963600243988914597167281628921235255408287500003069393056415557898144966164526894456497545194563095235275650809373190757080642953317827473152572077705737995258016984197844640089794214704241594354135969119590230183220234716704486257312343073225930060071034615015910507018664302332417009516044086367631570953355669304320413779022653507539572020916047191764456712415196229542786863974787494169859874442249605955960991964084695094088348822523524598197428098158952772533083103311651180455494815623697158315607316378947709371580059460855147529005795423827266262297591207835353128306105446433124121003972033778318767036169707077508749250559363358039348273768071059941702658685859333704871097959297562852555640586417493866509044893381109627428203253122867928211187578786557362348690518882625714169281009971708987678763744951335604201997605856731078576609619316715648669839029017489302651666021682582486407816423740521097146232592586356639048083110322638612993970631287383719956309391016316292031658967974352684025914853957299517805765395331549895216587305649569742398271643589291472691061026769819265324138439130933095650358643075945630904983253050252734694437652205022403927089432517806198197933073514664147425051680435471031489464223499408809924589629902571311514085101590508762504671527999403898342382044464521519932281933080737426821658321733815127456106632177944967545566258710719469451320647500213108104422745718339813060499826917866986469181997303889975605876862470177362813159934087370116433630069381331489789651256488494600818419458057790711212623251109393245686003771592680293436248611250869895530293626185288911949913463294744334586486722609808948500470677137181441903998490704923803377923114396007944517475339318393826556226351881535606770952920995619284620646635204766978587031149962792603541252300039598460917413955890025587320346984348636262841960393042732567554230887964595433128635389506961678459653766682505442103701405221202396624315833102458441240015017829463886604732238759217293027256075403840835713684200723839478771767804634368658368887386254753074561338058166340047916272062851410934552018797645108728848932346114486116065959668221602323019205128281263284061074010544854929240165846576818485922191418634276297296704959237930215058089683752880356788249051121893288546413019005652871609066009343399736379120346632519696690158217783176905299952315868001610582608649220607367624003926064874112508935923150551324862899136042355563849748590193214118777277781088111311120440250784316601219104284730046171031093673183367642636942990567281140163158306649667432477450053623510195345044859050319679252465480626119390415447699572435871332517510337747476433069438253166710401941650836956352477787212607054258046167568979081701192270971861643603466393042931322116590345791598428609409377382684106362110022282579491947886979293058827606369777190110232902222010952476564605797974933585525773719621118387788901701906135282588957406203012806314770126851064638377390629115411106892532980380717072504960947138232649443066565731199031175196993042647652371118334294853721728050433373562064751085032874691623243482614412768251121967440884149186512851046670157617238581768637857316571484869179441635726089972788233654958362429582736094711356443628500985255256943854202052891423682192766168000177937108434459669932918644564006861268145901330452712036577484678750823660356954294993637228776138909185445080097961549011294559601014954351976403261082348107442431945711884995961928955137607905364170669894256278255074728983931306023898449888241721428592612547665523045077894788064703942570261770361312096043498805216193817533198702998060254639244569626223696294284115367368883918866154158490904978978025021718306007878260985308747344708745797257444452681628943081864346114312870483401506818504641917183392617291023579845173478110588554615199574976844734987813593870967399285129188258206375179648535349004199145813783754930694654474930799411229567294582000109150783837264379588361194317458259287994019273528634743988010508570204518927029093580914522621519393396077112404437533404823107403579390275369486909175646918196037496496552802255603038147577249946480163235784464466584915995049733441669496610115078043898095171238685818318581243304418625163709881300065129586019744197819815790496616584272847594113090856478794202889308130901135423696948258104615794509979814565933225089978328945824758019784303821420767449174024967257706738434690471265987939547208091185239195299652581377391653641024301699189610990770609750393550042526612823796237672093005810691459567321248008102776536247345634727324860254948836939257039848766220351433350591453776317570077233592213476865766013439441189312143738317046230354112181427474571985452979459502709113216813406475032424991526470172685120853429529047558354065687261975609163087427796991741219700064789755113373399192971401883194974345357582355869746947116389731971321228192358363569818262534280798467414315742305784735799093953976040865814500841227842903534145520498675722228287277731876479721949482680231788212472625800647584142558812195079414439645882252010063198887892090588971255478221365846646413897713542992904806314969412131850222719792431801352908143926370169592659932593588260443851683870512517961449313205483511506323703178577779814324034171847630697349368931050644776825290835902080521771599853690559879223339616980922138050241424448832931256794895263711235440119153938391411389445457088777894053408378877793037842765828665675715968569096637281431231449628091237409537646866816976764316698872233808934562881316166868664521463815463924539746169259642724778695422447928659061234408095947837468658078571608036467145536402725603471072084979969725843924163249914073666317687520437515091849037619949035248653241795627072044313787676374015716237063287981792314475920909242352592266701351002258918690116109970586292193126626545322895860483644292743952777620100746035248412379800939333481437461527555753343029223550232209956745227908518500439969800553619967454683802946951022536870001674757611281241520973478565730282614759637347600456460094501949582604483528844164948086276825943453548541411763954156756896437067020936629394001524515333678909826023525703601418079105438993315009873933259299171429421290274953342516157757224695264156617876490418608080355206595433608347596397850656417174141655242049375863624649609616142142618969723541608400560487121174780563915649935438552486332121521750863530248743407953083428732729093943031138819852043313647100758829268860799854041520001224350306102020033573935120648954003845002513738994895170051400919210065135319443607253016240484037450762484980656560386759489081250765487078832469315946745465989774438138616038408939676822894769524787248897641577254031405214816619144379121951584900703687316197475282380435926529991300579745860242153206764254628708137628405979697133722660319088670508278635484870673306184862576146480885942773555419247664709325903332195326475984942376780483252570186854184952803075726628127746722954794335030475779288040361933360714043688074008986869746997125400694710884561384135153332880239003917233071296443600702135988274291784719353218422158493742382193567535005081410603369260875766233293964290852812932890934810547675158778116342739912561301642236145279574193033997425075649455313102618017957837188580389647530782107700078164261945128432003073985504597482597167607860080246232687980288434998596178885205724896299805355380262989086927881738449154956844649901610481879808591091961295812055989979859793607453218503546306369204572636389893039615971603004460845222051413410738620487092000292969201680645231752736780505999556152098654473337090169380605481901472873950845067823132001977536749372592440395157154379038046230483826837210345659791696640407105146018499370260607583274833977041212992055551901637085351326539810175326062885927269705841316379429043527098392794516212531736918578893577468149898354992710069816519546344864042192150342229380419635290431520964416956786939255884351108078358589289626776562347095736607521414981409847142852987245028460180140854859333906431908486915011361815686092256064134795521297762551707730418032916411083517677805868885067911510732711512403813905500933780103817846240740751131929971023258794196859699828672983374670997299427739866132554856591779766873672487121127931678329024326463874116946380517322130502684224806311370083438163354210273926160426129119963249168626726761407107196273203489461338880656759536261045504729578828070615079083506940198634838749646841116479206645791895354746238240167828109992531117596051824528972445085527944243051734368296328540410956042776554494994682936043600663049382750391875792460106204749118523209387403242922212961114540653383059107198346409218875660114581599246544867052992958633730013974548743107591723894061682743241489723182251299029442497172893108541459238847023705012454900004116565139028931706758487870213702012497335655360977109155972084852410280434526519199433330896052067765417595220873470281753873603195137745297348218428900794849762976670075674210306673915400980373370501301924535997500157912771608163644806943180024223258571560662772256208203701318848762380719570866025917349824389662814465198863244127211451743047738081941916288958377693661731850595157985647134268215545226205915981281041704874756687210218289305509259493354778913910785282773508630931199976304158498165813920016312666717890523240033025848877964767642959030124153691276915594589875345347094409246886537562060290225117375411377234460220766455139786110631167529658932208037243546526654432946584555316244861230403359248334933927080490683750871607679760780459642582758209268786987347956427419380099413946989019038999729210951944083850097354099227896225309034082807134359022241600051355825912687761019762117489793684028631843540779784294459449820565346647615097793177563209317362938135982330179885009140308738657407227822258933751662685525653282712740872350954928142937746118988403940894958611507012397647036508313166011757195249001540354073400954019852881319096824971426643337500977472747118212241076383162011707050368415646562097207992899379996240509653911226031823827951195539821906893078687782085869416909640426145478836742245164466955025660896267344770344963931873398666891997363544777677816426310717551256025930327457251883441445623660171094194448128223324800497647971358918226768158677899082593344471144507206435464863715367214010167505868738032716738944893064457849142160820135098260436388219564594570314013183137371200629623668274441704019699086901055584778620562434457036239545081324579303301278349797482222270565292526791930292452807490415549177187203423257494772882820598745497508348593248655733991335440155274912902526276754162135713291761915398763829074426943083471120282622264790314474292743426353126183707558785241169565747121858953585679618838602239044877693149786341295142882557109193683666354343166098863035783323708150381985026969661358365492937381781352817618054284607577232717610190413371917388728519660679839208999589873506371230285780121716155511480277245948040302759673627486469362142059813883248480564840377343727485195390065979035868523194661643120609947206953433540017168511744540424585126833985697311842679676961774766995251367865609531803498410300779014967697914834840636784183326063488135658983510179093074779741801050806582241144435134750954499213104878454077338613801695919838307857672616621831309728117747761333642596134267260129289520512000386370556548900231862889527555361071432918015479660707034933532058221717791601873839294953375669385657762850448362239296389943006183092676379034390452584946104580640524970561445381958169127025534341421591173454870043843544544264361851845412949179373093541589212878532989038012949422458938053666160589368063627059849694574175714299542674077412787296959234706013656603505537555339607740924422461154320947967621812121378702820080285918451225505553988350834191895607290991331830824557877998456794263378505515211299108676846369666903401231213505269466026818327905370601253496260193419410707815369116322588973364327606102630230208367679504542217369669412671582992837954935939970897010698042362547879166362042304107178384196714639701794511367421669194313548381061188351579051593759449624853667186393167705373910336677858158447721165585456677380923875723329571539508438466166639001509233994994844853685957215143315205781289456580826875137695544913140560713953786883326090352515563053203776169559863307041340992729650495698301672654217952554252541601138338741063132874882497852612898093979493109761028588027201257299693496194385375397761320027071072659422544074869971254596897633299312139771334660587749036614521619087164735282634810324740240409953683195816941492709480869285111424578860500339189151064050286938239892583785356751163458621384683040533653913706863419270110960800251399895929368246090590304900991319711891565545278839024262882291505115689124137011072206138533397878679478181675409581837856799973503106018990546246307406238652557104776417237052141780309074968145941393246030981899864925513656984359284807674289462556123858293166235698324443314583301623772529328765120887351235717882242758590828840167852493276761859543610433538398385575865354726589396950128966915148373892850875977786517375358673240686281891610762861898111277632613517439647912195697317938673273042224129295610177493246175414407050319794144006713821103807137888757968027291254768815543823687838625532399442612284505309760951821692016652817125405787142976317843724226118456926065886729095146266326913461128543807323488923240491788721237897138016228430982677769707169011700288251330119888276985643053015218017403093857190644229753240823861993138407897959018441359831684162455042340314500376471685593322749421766946652463581824318540538456195859358541813792874859231203968823480478638070563370555631030805160237458198197096885547972541602598671880879374833632203290759894915687543741825418218343015598403335464482400049098456434135935014788510825619558128840632536179577994153470008779145138046772412634621071313589619452874935301256283416139242826320037431238422072588278379916207859029014863363803700283428861838587520206779972913751177418469743084798072049326704556137743912878681173493176972311073477126841961106136873049714190503172054335233914953919571509963644630561374121038458851530293894478033027080217116503520002244708066790525798411149958810650504072010585433170066554404524808501442154607835422551353708499681921618427324333050414724768006519653600516292171145265806784799704309713501477768658669659989971404388536774447656745867638306217426386726794371370993699474604196773385393408159118517557115971807107610731500941534870773853880078597328807712243642702414001290917240447910185749009732430695619463789294638483488411571301753611631683588319750421562805953822277061019773035178003510081097806766106970537557047385264720220180632159884728897781998564600678266364467969933497075812754998102584870421268071361882752017845612216177343645347195091909996150610319035460311283694206380847280410528976298345735530608910943466318611743589730092952276749405955513498639209811747713256222128919985213642023818620440394696319622776458420232160874403508509242577669259069896251817973916052772147031448975309698417772899902584938093459359057933634358577490027459869215688463996973105519702393380434090022867248871205848074068343732815925117900382593597483546855677213515188904604644877028600319393086733305236478572516872845225652001541671102870970987509774866265760299607690633011804736330586152313100303282503301107825375409217038816077567111638526448939346695153867706513754217312521164738068026172965945405782560068111381275159271569422952729712849540516550517375720752061643611710718317108926486317866982886061355873853014395008382439339700672559233852584285373392326296305984956713160652183168856088211639238040406038367676683954372217644355894395663035807097643298231209300199735129647500556398844705785663188694397707723491120098575490730649332860458807019317835076607014482885992978687242740162070773366258630699662251754214986888476174898733708763183968424549093176968589376301961819180877118403770532697650483895394125901453948603609042970889492329586919084370957880175203619993019716079961687747170974778770951147096410387288645965923892902613096551431329024734182479931263504649011410854938601367756869369435364248691864863655641412249479608858057992481041394971189905434514352698966075045607913784489726766007897323133094112982540431429304760416174024289640135150875243626412220663944588585539370450434471762823781630887274546624537625937632195271994768555511646688191064417150267578794578161995137699692781031219716110743062253357108756422084239498923361127256229725099239380793936326610414643065203273178337239558826048197501045642346390674777154609321567079320448462743936399135295832347921287942732338002838201111304252573365527957260395963197248144083993977722695062420283357252952068080964551550307720721552449778712060064498515619620697711631446462536203371892112283627187941467535863354575468325433251021009871638007937897832791459950104059142877462794750087505372684718397968132459688510681923550243439845438150846124163133670062653639418358710303299044349661135110105408124022580221320105550514321803836612887137208392589946598089729702141321900055844508810517027012718901723093272815765124492965144794788161784241915218361408717530976355539297684032866535322116585860039473088784729326408978819621115757828042323385315647054843205426489005504210610731227311682856348604760245644231588861985188355508579891065070212082722692989329567402690812616904764974213465589500995596817545108842991600393870269284636953830762189660063139282434832655165262354399564394203437882886765798313170328072013361875726005734760454221207471187138647801797799722658627389146744173781027694450280791766414754161357511160136358191437699697677396355757487616340213296009686285938575829805162219221091135837005036256627591829426297493347159375453722827320810925194411381210674168193734054519352613672306456350808940347835034500276394682078311652742713563169478488033693749638517183245649623464606483980912905072515543375976245195446204633688990330569778094607599140133028864783039729837498931261315887505683712286574283025896184838462718709611955834259840956133885450174708243452413337398309460752474152486678407966957260480977238913289628899207341456558796109120142624543709022671557863827375808808559752851733233592356250976990712960450166020900848053762311595773080860689535073437323121319412160474752222847163619780140303500005207920718937691975405140259274596001924545118261562992055404558392412977836844437430392038312093953650088301047401147262418037282202613036934060756214181345431368505467812012834923096875724126336873086740711357777893283892995440684968134460132507330808696686697834007992842119964115000866308803354511885616879443105698481491397236989450877413014639047142829523196827812442187296761567746985005416932134352336204481063330111500263582673384656321096149821257044967310988231806822047261735839507940200578888841305579681707261856580062630400399049857471849926684206568252385287234122691217065507831532626681401190210006132167539891873459929258825854141532531710482142049434692130958789011182866593504510654283231276119532333520053306187480277401332401095735406086733900323899545169692409484037754690988308437094884178166084967974942580131901881334124306864017979476657080264545123817358819675156101442506859628828587203891148937878144926396719971828017436089304196634803517087088129220907832554763227666201379230931886718801791458876799052518328704310026626130323722606480581162377546967323240039534678825802076185922698395377338757257977992270634908600592109625998227639041651324607306624447679959503550545851052883338272906917396233514547387044398436123923597991672974478262032202937822215197893386457913386701004097383237986678554916543102430979551059086350780148900742382507233543369299447515883217845253916641725351045942683329317301577365999322202271306026136481538428750034108541725256099275366014002974606999178167146154839843074561271098695525578281227953755427444456615825012848143955408684508522496190930613322082847749813817875516159676282705569621543782478566318706112141200592865916037556977956428065301870410951286699388435607501266023707024209320149985381523987809098155985590161244669769094403811509470241910321840127630615336505988638388713330026517927524905835630503979924283731528087785409312716146956932991089840336217330438214716487337485615724449812260476894664702687680108618121640282497309745793208746658830351635909986779423887082620527018640721349577373834415802912705691310438002415999502782088259548348879285315555112649154538645667958745924338917077506455698687413120410568575654020903736823334278127935810107927500293555667208591335002369669079825088965454058285039309917386977523966278792714741552126263183898075553580362956274035071626395802362963608550464916340611755993143988328770169047311997149217589221085248334945692333166105142310360864346272164063713830551016632363285425250647002024717067451877460018332229051331475366071226454113577496999484463511436923061038662974424946471872298269862151721254280679658233684614002834291155517251742668614862311487789942306244378158906712911196187152990297878337748576776077946290449915243024760592897323699213698876103749350322073437615042251769054179604057518997837101548799648954652301600873995508397415048514387864732095683659726021795968262986955939132391440620841656400836809112193128140765311821934909189374986397839188539890422969959501516693415881761412440060426369105000975265201884421087407296707474373331921785751489626458259279612016269881692333878233114526622207386676719925627689676993831342992848099643984639375246118607019089360024199470184308016447548112696015293323256938490826289491265960410861344976875088831894342776318835093485330858724153007587278169616254488466911937267445659951343722221702374176398045449811010703538400037071115875007512995132393997028333046640905536261313763799314600982926790051381104747425154553258287964059091835522397294846309488225363992895080478367578438189862385652618933235360808011512880216932267985947330654976278613231074639508843870480702137129601082153814736709205187861256844291734310869240834845067697097826742536767102212543753533399776867483891588278380629070434886365928749913476096722208144916917657062733076498470855887124582463607098015558166559847433950224348865690739336459429998330473790250613111075971850573558319040801527156456909142118444364975714309278485631569041923969970022263464150812485850764717341302883083355726243320376243366390273846553193073071901056651740051096421343060219093531857807739304219866997799990474145002322538754424475706653393032468309590628628192714849026113795321647090720009695856164219584638601813412749839989543341478085831545461319080267584212163437188540112988705097240046769150601866854128258437387461488043229161409839054316465632571184095338036184899963585946704233393514625557962671508191114843754151709394723153326930785735607404838240948468491635730194603431488464110312885326511456179647785928224894184420356176315984123151509582743820762232294930002563837254539204841262210653302198809449154499029053847596796370568574389164839368180068868976988760620077859461081136141413747913744824437022466641029255121486557757593055035547056223421891503818295366397145523549965887926193382284039738321230004032137538501475729071031159308183280321144185001637947471973656549901830202644189344922330159700527358213902571964625297970655793747388578137198306780379553681962034177337418883291154147832041507108998276555165814548554676839913674872377814050688257542557832758426823531606014898639682997910957682917247693173059345580539765657536465587357188266870166418498173315714954125120783973513799190778306115556102917624598201297651599629911573697852351053285968422141302156412628909024375292482670921379853052632934727149021093433161928888663219484020360654166726841942611093284644534734047920740922633288251828834661372551042285307536312790021626159237507369537358098941966445256622290057036771614524950016496219178834414875347363386918039390953852743378652194246730885061082292807809774940753253391289082046758928512628084227956422995425242526229349499831413849757328339940204925011747065020679540654706512999221395124023825124125322965602504275789467952431122158027860708823654396966044966434367625045092123602963397660647202412513030033274568438066916315138853203363378235829936590620098393403695014799174501755089514921431680545233223798882202251563551011364229556035720214325606423520832069928848508834611960709731936821033399625494070608433216148429474571097432434283251407877591477270842606420775517755566465154884106516929266450928423467113843233722446121687403729064450178530155623653495710247817893891357263624745359332305330434901049027373218393085117980726347240040455610122243864386818355016205041727260410796013216732757489047252574000671137840368867111729366990988325106663472324529329119279517078766394516211096765374369724170695333285019833688225774721009282408944758387811891269387797657308171196574385421280385857974260667725199579312601438057843580114526416289918230347407993073221698880565855354591904470540476019963701324647251854814991463859437706351303101576470967349940102031027428244468046105385062963003800448541308120768617588784052940915307597516767228283301379106224121122985900372884817754607898390046088755159542119095142181140945018749523411665206213797183906701237294989262355616150577357025361286156096253634081699020629689210922163345523681064212719402858602301160852515524010327113317823909828700540514247136485480648944932850828505194086643749055253551648485677317984761104646243078136519906780130161953656554113116433747371702945551274931104374266804772191425232338156433020556250763922241521193664869320578898749304930720088321088514827082978389899237117666933616020680344166813664895267701890990346710981605694965158623264067745935594562332944052049506712086519671220506745256685818611988338738154767349805597261826465349602757500403300206109675154923871420638701336423139908697219253914299921708757402529629922363028883538052227162506924107527326619701577671711194666159037269655084542993193835997645802364563212218421334105176500383720717883895615059666350636732336559660201069296423415306530646734362713598834221855334196640294891705830687295922561768733895377061233374880990601292824274667620390249083179350223375477627678661455769303461347866742855610269057406494465946936349499755652058255472007001940098766764001984576588686582792900784115632528155489371006836253725095579045306919224185858719450855839279071187625293146436928681155777669229580576541405259361377476955782384928818089568803207047886823393729726051694219372991702753279139012418490708868475850984226731336801111317167210693701098718064161202686418245618773177955864952620550052160473785924452888162312171275051104062765591452384103358292449506694619816719967933049391633289025297152052616571501181547957882313966300173359904156722690587790144277734677328841901327365613420470104800778318482411817721850742615119365508853161095992175081950562133202244184408043848119300424381933572039510626251807217039919687376630894705825840353797962070565737037950911318387634578438411030490852849719923750950462832758957640391281206942246737944347861718266523613667020376974798736048219486704269879910377799831854430714778662040917854265124452918955185745722421324556156563613083620937388286443969101959426832708433047268727973971181167038654026222493617698077483943207345442736153680285465582981843186910295600838000533304170553666212389585002074909425660701154010920063046411884716231655240237326159528759975812823874237081410195966746533157178352737815422087274879306188341810398389719272920870854703051245342945486435474226365896053933625431314787891537483717818473586004868975669896600108758133758335406356322423854644871965350838977427533637202908428092958122271284490274001733226825240592463662667594667175141743240174403191834031959235289461146136141119472165273998074513346543837764021314462906415622408945527359747134267112354401978546150657544993339822250919956171152137043952870074716639161008096814052267560851989478046189667207676296934193151041961669968825953677228205898936320918474788153323871556195061561307580906650433150500526396467299589037874732953748918618721978118822181070293064403412952971784760339508818754255126114673170233097585874376582176743667501819117740127233793096729107678697316977619146044447001441080766442819369641263127657484843343144851502693171889227932015968610253385813836135960108135352643086361237337277550526283683706658124679656949124678993571509374205490175996523603073751390056707913408776024603996001914349416485164086893262943658154453319492227608536597878914247396788156867390602039999252489670472388212762443881658106686365960072517761773928404171832328765084973092158160019734814415590484444053609877777467166874044544983651336287637688852732469038736306245080615277534282349773477495732827979367284482498679726242426365804696198276225020512367879917447761939680837973254268676385580868800066009464027514635279207764389542457883313261096388895656369806742679352499829681188195673341840601987097261116289906716156990388390943112364222138995922331633905277948883478381709008781518408663106927403065908693339338233836352023542738459699325330248643462799643577628652009715091178444091101653027827637179898802103681405074216561432668322070996323402184251973437630201667194142011715813684206292279410309654746630423057421487464868620839020546631223990776100890564699153311754306754953685717979276785959720139836565606919700280647305998203890757637698092120801356727261873863721718946313663488476274696319755703112565093342674858266642619964258674165136425333355553108404877809405842557695547005516276819951512028643068831477892129577132708745203234254599983906466432459059862654030118724529934908114187653333586532303246576369286534719942889771131141331247700114650691946980428936828342683859574866830259261327429215478755312469953104798578174545064636950402980146234321385302186368228552655979290007071254640334398793542701873444889553778049625201034602948129447997119028309247054176202506987339510799670134320660058021537904755760911043178332883358106851389412821072597272791993481768416678845699753457532842597449074221556220182495506938359747533605223248706896584700126360327880556693013974723314840136167345740437017472978684313256939386004911835241443838246958273067227683723938240237382974262824354781266961541056475323104255678532807160460120368826142730497218380491071529589581021529211858374492364465870790809717156067529042807984598524782818633898976057357365542276743733797518650521293293139987645831200993345831916584185565783401329167380472842842290115316885694701485604217033800631702571255241621804445232056205647646116389750139904330380768292334603881490604989579779494718124141358637254566045072345105230987021169407208949009172191296747332252113575477430465999235867748098621294937548436754483533852703265403043025800498437455645642729876869172649394137719641847047665066522389269281790400600337777724342597338660318444295211289714325932533766636600250530083322595656890779945141490509753871038136569050439896730267870929826716625359877639505770703009384113027433019311743125476243079870475868567199322480371774311945181593278746140047672754820504482383716883450995446062546770882613213470719106789492184267343395531622478842736836669123108560323644816073119902571376696488098925394433846607880507034832750971528975506195059751980258451150862274352158293016587064049859766039337647882166970187016681605668249285057845527287622185725863661917192459917975984641316620313329974836303606664015574141669949400652175638508336689984456112521731540556929883659371193227263054449439410896440689564562070628279202427524536617307530343178367950650000707277024955771615240546415084153186918999184196462032750468095331439108680512292792993711540368266725507507087494468853661808824923093765243138065320741583826187317870031148782141632436634139351263785944155589933418864155325623538566863696352388304876207138669043272971738836071103318217480860808570395708415144666722330007367403076320483073580227092629482529636592375206105299978237419239029083234615895633604519189412483372482895382260201534059242679073250596141909938316293339568611974593174311827989686746956176686943190030096174475242356422681140385206420773843409669462782775762674264210604226587090017329624113288707695864364710834915507787655902021427426189459969402296078800335836390781432293299779252569574717764823671667116559445023293271854249317792977134064470092450289021737366284610967975558093638517387559604327301542554181728996069604394798618888867508652523021590976506074678295136782340979915048434514413243666887285118950523325471184955515287707240301799057759212266649186423617256616929689898830468834079416135316098721206325639064488493492559789310324047102089068676386481873577219420044322585417161897025294585051492949048838005022780652916808812319223463985353905206704267215418381589868218276257544272133317008689534043235546623281782302216047348223239451314409630951488821140788583055187260586177051755070086065238451831781371949430943745538152449748199552148395918931397392178872574793098898490518274458449330294329894418817861997114728721622329698832425848973089178979853266727849169691107735083684891814579817906672459045684253384617739024311937379104856675591835210491036747218588295327782998328596813166416433840125933962144517701254668156543567096554058530890290449623947490737820053357522683588236337757530770663929687806481774146277262853581719178892176925336179818556686610476111106091421090565700175817218514118540678232025881931098127102560286070242947290940933382937734254735489320870181206952341945951369400627076111004515019494079603769668218008869343093541230270855810624198941148902445110534116747193968674300765743914964848310656804967547395178743234731813928822955919300251065139869412768339986221179143235777371412575243432923671870810677748519388936171244081464406483668710975561656996184352658076708739824169637273228805410719883957056429983364769722167809592618388340625908828671564293837382866028474638917474341680401802972954719513150373147912592629339814944791609646896785429889442331278848237488294609594660829928899705867885507583330531644818519472584603640688702008226590119070824827192969786561527749928441650595012819624786893444332122298562528254916616345039654829895406039183310338695629680902258466064861262066338586220715443458483932574807102493338653970231076520593955679694105994269949389020308641233025320994537561573950004349092500725017928961479228709845404349789623523870543549044222509994223028673652908915216263949093491913574529711323276529724685001071291205299580315428165810201624981117200112841108674858227786341233384707184685969434933793121297809094228085391446061498740811366295833937587625129886932873599741735543375864920395624251046195353273203224812925965383867183388740597839834859661949851840985722944654690664494407455226896597359536671453346305715070585993658914931473164392957635539812358756592614746804107890294690252025735894794392681570577920960178508379147336846922910150409067992582933144852568799192161651431238634467371049302989367254874405063911101556014887401405179700534325195788027955972081875005286526739100608874200447614557878753400660735243662999559238528509540102902095604317037691812135960873000119207286109842006865211698419857204363645661045348730113158101256232932660692770240900415333643730515009785575739363090600527120725468644653737044231123363716075746026499480382404116946840370010182836808795632834432753597856384815413017748511523311191572281013126685460089767679977847416541304478451777771819954329846849038909483557122334267441818769533456475869375924265881525626212594726915620224544136117457100372759273838082597907502862885925036163437197570017563821480542570161788269097048330953109939704150640714936542513064569519119705054148472850801885640435998985488876338046949355060142906359650710401442047950833922563026679347985472625976503303342610035186867118279685160786188079212018059336466824232652267856575192785257951862660213408305935463741975923235582293788907583758496393823828518487414842588932337300134081280633067126275772988389936169288229765929073034729090403348601796047244044384355174145863886407015779379236103968847897540964013956118373500662805443875854930035623699133743500526809691706102269793259123779969594279073598393258525184521798890250720383112528408142587348802997444745231252943944551650479623642243206005900803855927385347703917068532837284372034839597446238753651800266290610548301888552349578960057438847265262891681854492420802456982367302198050176037859529542294662541787550251990073081355347665729829017275060473011698415990762045162971462727633194991094808954251215403569719211776057769289862102208506043983045795745983064689974917162281762074665079505107893336662368898878302159312117674139015511602526113511255857756359501656052394461992110328051281411928373502526850833866467715308949017110746166693894306169742333074738185648120727404236572963459899785822927904685940404636951454301178804015308044796939686839053145543006854954824077879055268298583790160550879873232340038787888805254965023683030739029261678073552201050224486730460354074945345813898261102959742600066072600226717095571616244489734017580918567842345582827513933992552380758782826657935908595337382358638439512594254449438332373518856858615019625204959553857957171929560875455545204425216145191037013354312303529838785479034522324652271658216270941143537371790447266729624995394548442482295161111322507140154766878570982212257305978173128682889288309871645227548854768581598067892314966612508886095354535737690625094895724748798980271753272692540110981612275382987426724647110070693549733170695507597720006021482477195069513539278303398383842811197464676875535996373405506875889339256277427192865101400277053775810689193992966723374949743492318137913414895715217058905961013030572049917645353964866898705850282572544546741447990440187812223193062475669826485462084213358803008548611035661355553345920761823856884438958524044987662275675838934944937005965275430120278957230141373202775048640990736540899651311361376981661012631872625749969438097096648580560502580923912868745985984058863293145682361668498836948265216151119168840963884903231470729995827602802976881370221309778486773229540036714318080445640550700109749151277923992847841443341798614080932050540438003009408910174702391394517959475574631538211717588034497930584609912143397952410924991391490261271958365678160113700318300287964617555066975547241204530204814996926562064031063887541758002999947999266969168625425024858985735260384614473023629852230600464024263907788248093076417372525780486965606702428910882209940220432008085912138074435693733540330927379346483716022323596424154803198661765382178601326995627738053219317814457990029251132192024476565512183140387333443057224512408116967150634602250861867617330897700570072223471411007602299921576081454078906032029804569799687349450346803336928630230326897270917110819511336762372675000803830276761275411859805821150504889654509114208367041490131337207178992321453064947630091736282070191026162182419134821641249658982927885226255620424758577730170723078718541127511727972155979635925286986289910859978399010384911565252512796448926703312139750673416093587865051663702383685742628903821576553056371919145690580327784996810490367850306183277607803522982478456622977166958946224538307376284037950678350068019670422569665459672976132675415192278442535383052165589932147717715325045598106066136839744237154133607849139801442368602851046006849649474047332459660863417374856227269825942836932133687979151856516439781281850554187734071286477124127267490731062876541958067999570859407277085198143153666090056040969513073113572251179987374654016773012832212309795141150016705425394583356475526734792470506747940186012795208802843635606689017062448790785130371105940220599248230774809313248366467642305560461709629233567200472486833944050321423223974330654701206016527713631823002465432448337785484271229712531707980854696594562054588724050160429952898437839125733697994831341760967111781455511636829594510571683746862902123950135650846628657167632216231087584882911086069905729409272213446916737490075880589751944519946580214216511977395628586382903341915544655944084268110383818367404923511880707147008173535518717208178416237134996699561994466815757458154003088260218948461788995734122995095747349639954844096118062323939840833549524500521831082420076971839937422510652687011552384842494591735534636010858697794362931599839429328504292716736529791079776119123685992429637930495564377894017415891909718426340494305955323763748514522617310288538577883148365974687138444331983920520725179960395224245359339935034568323542501381514134367075237544878804569307062638001355046907883694183501916899866699287464176848479578119355008063921909040026678372501178211332819708646424256025676079933675523465997380453207544249352644094879762549027060868165503185595073818552597869083006245559997872655269880821386415480682599472229555007503197205410877312156908560573726565831760559558057489170364059315289082334046038496320288033559144495437034253444068291800623348951086246082054262212167005039651188707531147976932761726733134426009949165148513269836791981612353517900785722847048341544237088352390452472829454752366031219750997511214916248730698816336565975511048670058510907303247979623756293514782474856000664899681363058629859802478864147328469784214499149229215505135309544138222240859835186622815932334534791794221924563985538350270630187619031748926400464695057872513216040998904030215696881123599700686249921666971301395702755004713564830005027501971345663457888649277331213979466250522144043808619497478714310733672673052404644932919833812734315183503226381166229183955919049170791025188856024891071272773128147037244368632797002487182628133702337676402919738908702407834860011588832031934846561287867073706544485920379815202610344561565299782379661015048735494019490926321390347378916750712025921206910999539544057819650808724753191430106428724889545709351672807676264995957863509803451529232566196794201322069295429351776837897997393525485423413033067192551239001800382268152872945882458789098419224012767729990600090228369258831034038987003969005490011294666828630652805748601874979514238096929134404672076547054430483600386397619195718873330802133342917332813390652767000351489300391616035220481444482119147992689525140658335182896689507592205059296212125183571255734749793184883178624222643275930626934840832961527967252184282644297960150914149366771399247965878607625680259857492094853994498990137312213276158792567666654019284892782911847666599293817278020618135387535019738878824544556999061503024858938997054467059605614480113288456690574152283664471285785658897460625480752518939790328539370517787393505176073633601152272119636913500768535880479979385976609026245347277617962702406070892808399051915963921301456199655363261545062458434017708754308343478347611655826083504722936932388503448677118204304579047272585549553619909529595698900003856560876888974643538482037367763321786739293008759202786028278670308512881373109298457501191841219350473163380099862726927262766543086399090569992026458810242735418930629371146239993588995283754208764383060701849566866444693554178713305889573243126458653618793511119485952345899115345844825296519374312850928315772210097896086282586531076472415410788017160068633452523272023383609138000767184860322943419862502157419079578722135286004080867299066023708427313505346434922065902607453001966278740995820736117454208760215742619035927026733811721903288753665064083312976092156061062244002516824491190781140800944755665604595967526817105439161901150501265280996426756209417219646466874674429759931902244059125207896083326909696464121512801201892885768532129736339355285008806705721797339171216379918703104320812710285195330681732992366560864112757956107142898534204699898482960110448667864044960980120011887730708607656974904744025831547466900842172015542813993464536135186377312443899016516787919607465119386498763258913117769758413509159690414679700371225885389750462864716131115573376143225496408846126904451520874666046204073498663751062179337416459381293336012748653003753787816331155499039835373743522341719137987003144936054218760219048787329215656988054811798435884601413598267397174036060633019741260233294659691935564468115083319021797207262050840435743452313480307877428000765312849249699959862965214563095192549614975341427166610794759722727531770247001624426232873526673635130116281188459137679469908281775649655909695463272029054770546282523068827188242087666735481385282050331640918564818051608814622360746058775008386201844429844672448578497573519123007815723528817272025848227011104238253619250414562380080086764520547326141875897004223836626575024094328594183089351388382798180607681818305399511767199512088234926669761285154726633329571551696733017381392819302214009138581430552696687794092406203437534265356605620434723802486458084987588857525906653684239214255066643264884596597329873446925814195490083571826423355315720418686137984583637942486548129679633860053865958735235440981745674961345811101141799929252815466461842840510677662756429903717128347637868349039234461210939629467245243100817765978083604037531102641057443494699242656900730423991015504490849061308940883975530821164810672419282054716507754435313636521942817506274526273387975208732808713712178949259892297790117569159652789709758547336744540711774572170154473413747161160340809500900697203321867346212433783082609465599596978377678613681798460917500452039379844754293542287766390271444923030875342953799209450966026002387626901691980427617468537351177558544684717646561444297898947609189517532921504652845333975862118536366875928705050984273065057178908709381659750511045797367520105267806120998847601150939997750447198547866769428358924874986278576379957678834946689485422046694037996010032891603864062065760371470717913882353900176237728760217304843977275844396386236734997716923828480349223550874226041207468885346512628209227295641907782112348282182044789829755460451654157402147112838167824094672539071607334647970167277108534419896774898851677706655117592865623156179356611997835548899927922544993061416421865251458889484633045780328402872052048331818202320244444548054212159386486512886017496902069831794744969983150839487787084913232481755123190802254268421024211719792176738535458542540963025068959730304269271572542527399535618168530370386819309854957585161426100281028573931926783897845217348904476073575597797213651233235278729397241192921737414228756498337038578171685488990900732743559079661144567891920176066619723129341804686116453826583872730905174220819172560659726021008275259250891821856043307569418278442341714343013824305135645207314252589999958810652734572950007554140401087493741253345466508907975390496760040751726292974236442915816131018748800056346423312532814791872766598311739507462775785850768876047956689976934271071798310211533741414911298686822581272374321898356581784819961261766375231616730419482132151388903656979990709888154544205721066859850596707495945362327928719330963683196736454156503396127643419685079939184656205724485277677114950963050434391781121367897610043282685603115094469724414092277145078857059851090431222092819648714667094023412597712242516493015622725316668320244179819723217256932362805222673731415039924396565391473586405563364762322517335946734649645100014199341285888912540529424553414540082212694853907902752499328106264087662354351507353217374918398414853683389258412178358287597550551953517575016947308500214690718316550273536519828650225646678196748043314076857341782221137340662919181617107943797762172809840635876552856818407468435684593153710364714276605812587178027875232569906946678186131785865322653938553994105174396930142997473184089602236195358527941629519670300233961794216466612162305492591923066327841274139922020380653377693273403855932373221207249596052725528185363361300654195535248923948866030425298781546229319991685424507026183511611639922523645911762259253004104837450392088144045620105267128259170808438906965166795160708016338176323923361526093790300943706696200822121644227368985367646025406626865200396319289020379039208449140749311662610660665904128482903545098506802812452315736332342889587061361976032291757043180304069609350626414719013825923701492296455702083381989198437667906627206671213816948137180581251189035625501718127623160449419409831152359477039215077871729410553102824744391997869054997787358288578539843566536846248715652826246635382975279571877679812019093089327012332496935708848313434066986307894509083178569374295253397703276020335043223501257517034584334711225288844742176414413443461515409321934266882143336581803390343961097351924574483529084362793322429005707348960472309371742121852013650801755995553200262937612355875357600858964405728765525833100985790354132427750251820379976319973756037912923059669127995363935137659088595328736884571906694601707311088951137095926783809263433760672861999236482969497720395986803920801755284330662424234926660640860709749981558513533741113519817740282452191990407371013938521144623798117425456240060044463993949314582877067517713318764716774846676780065538041115731727648768137363294190463651153857143207180397558861480891639060995172234558661429896254314419199668375764704783862456778972931278570958022042907471601463342379644266686945914965967537656209514473559865919670841016226418030403806645287263365523921503289775653821545634134108825503633849089763727586422508279170020445386850969358019670580504667177287706844373647594611051453257710131977357722934321504282273715893863599019875063921556801552918322499047586939288377680335053233672254658613766450799482606969112362987658449413376476697257180151458968216144012720254952910357213046045855397586480188208448700726497484018482935504642641252896836479629726882053196490670784127398995525609358351652595987995911570145536725493503174226929513966070972235336063919408992282998029186109670117673420883416072603430177857825935267555246236721099336767455536279961565008485630180786222061676338626283944357235066370760316566365861033189724571094998925878555844635205054066394630368510962134181088713165394182521999947208613774156109426614838194145289830035724769060054603516875436017604132455072847719191490130803680152372605802559830424920966425167064303104069806800773615147535312930007548661767231949688262603957142058492571778011546703433058278987247340614275933180904281337190330218872374938101110210235323607740516585229713301036165374865820461340119962964702202402174001974838932889036656148487004761282479857059606232114717728856588805716780055709139350085257941403827066800915934970882746846551605272863270774116371418483441781124826986466920322809413300903696553593989532092216957133689610444959112144840790279021503001998313241387058757093272919697290640071108267855132961534376064155641953450661594951574704801074387244189507431416724762853215522884395048743841057035069129198319560845753236687309442667605663046927895644791017557723648325491550602185923498934652694329676513862643683576331743376973579764854435533485108939425612172585701709092405086837580526091350797105846199738545549392736722087329313920854722677990050265124651880968100832729980907286513516760440875207705081140958252200414449858222919572078378758854645916207141684043058699109769998516144153389315240422360253095598088994581095898033103602466122291152035256664570120011491233550267862431676259826775153966069653225032939929692592989250885961998849440646766651226646521813145139319912649306483288616360277317815559495247784440414308068566121335815663380302513701975700902887550200751582977123590892840571372210756509642201223008034980751090270557060302146546500981630899489405135455431024348230435206456161806879435856581482423832101865617456507799391498775448905287231052209326993955138213256688109599474937012584160036680758533497427942342523210113002602259743340921222105677915240601239740168414908174157150211812915213862973794460381349899208830252415589242215769434347809627003019095352247219679236455078787051470361839519174756866044908306023322812054695409939993589568093278775947410870027292796049219457105962381663829333964253854209972577374242669069115638793936525124383725766843523981813126489812031750587908249553109320525858003035159698498474848738083317031608664852057578386818923710740727393073868959950452027087198251313316189410090249954586977400940682699137014133983322617698493944425799017292152879808629029643031456206365832107505111554886468174538570643792940593239577943624939618324860005131761170513133876667567041923901666223512830229471962611658249119115539322748957905669457786972389401475769798212222144584485800649514107029553771618302117336743963129532102058181247850347235371332204290888161439203121440351475234899361770228385729082365331923502444323032110307641357477923923985963993733848837568851214113795120893472803255666993974025408226198659375532825533519610739469697110544641050840405416446378226158452090338614392187026288706205120574057116641796721971709018051707627412451524950093768747417612492792255700375603316196603167179027387423142578566469418747391301523504096661109043465254534511754960469992409048820322972219696175919011188035301116727554688685673836967627790681437862750554657577005069044081501024454374933475224025569563237470369616078048232068674446863474136337298811376721995364094419128197931323448908929884064344659720032530760993196357846436360445390197147548367136446209871378668395246487694509614844505072162755478365335711941144001358781019757921345075264426371512795246627992612994506214877651815692189257032147968665395277928533798375997891180263498045256939558024404222572179447670305642054959821305165922233527828198699713138023782938310505546174667386330231238952405909854640960421344651600477024602417814473400979261910480299644941032896961981076148474131896495122020917970723112924370040717857443881803743571073783181722584945775461457886307738169072968978218609457402426849963791539073473076955236475985366536670301837828834108026371739217178659254610214692138908695231978464050479627020566380671688380329487357137375511884951095288488222389949038790301359189117707185569042369105827760848478952768916905665585442652037233395367604214406970539918857647496542940185847386545792405988207317633018008166798726608300981029992968344147568397574674462301454427371324158766374191586911180622263572135601428774412669581145282499848499737540836748221959527163735001547885972212929507374624188684160642430074480225519201255798383871853238462034323832712334862577313382404197250667085983359118352213166647438710295083519444441041761660717557858042821991777466159572157233243468035300802073546975332876554100111828818740532310299728478776530845354071413476493052219243237283470325678453941634230835210455395110856884171324676189366439591998794178780106668058807792976586815638165477621517661228590050447379294843005912373917849340520042254742951697837725860729896719800484204624223505635950638260615374901143582662213543206473086970016498042709944894513737424614294677890746569712359401065598329526127401247732413382621536442899190905350716950880373159056686489446150316940949740690221232144701485223467430602110258673359549405946107408599972928618584083887477243155370679393445228960063809673755105138546119880542511297912245820697203217705389169148944727886986466337750767177948459265821567679118143462398223113624452828885345854687106445194601390984631767240755389483601262422285877553660087966782410108693591331269780234340201209776504865937408855040171116202894792910492384065977442030453646260575252051070092470868209419098667284061361542079334206105651664296648001324469055616638566789452425967366941177795008238645147992799577577978583919903834940563142939639242234679611729112680068584192836082841077778203599115064406096308110663906788805569717666340822153443380198033136132597291064018250754681939905192150383161926275335697924370729390395246568173258989065934236898447634193828380850111326941096705329506812948894355385374327083461291249014450539201740643672148410915664641697904863253901663301938432608249373362727013811039585402810673040565071184117503983001537431901926473984360407067792531203530995189664692361215548248233844260426095968465488678573870123354617137541157589811136569543622886176545619880277396793497975970951755551649029783351525167752541511189030796002585909581342089415845634761509188363040918260357261075053390002813283514498340929227875176797695446621866766108524087404680112472148574432386285977989744603986776969766900391734680676190157867984794164926074910451132549751819878120474041480038623170506299489328454514084790344153082098046363551503005732087936646005083326440286116600941191974643104347347078573921410730732832737837036410427843318795059931079444983319021934150515102767730930308490186158720312891940483149746832224860708625850337897857228211208294718610506831351133193475183512688943865232313885953025068532344320631037439840303472749720557456003524224488824149734560083418661408195673135151472195572865582721546886215025537019333313729467235897786825627632323593981288670519888898472702841566206661395264772783734691214100393294981682265790728044658849555968393039128418899234340475430042990033764668949788963032116553626788728362431490709943806341528850074522863111874131042534415409746394886318982411199921839926386374013512655394179714809762731771942535001120895069520783681725195419966907664164661967162796754772638577398822122804886193604373518297035417946534764408970076040139266888708097843482386561658120961776496316705706927486526005228964358420378339268655409655014445166625898164274204658208738951233866338994000982760841005031531671402772296869829445259349866085850904831494811529921325042873203823574214882361645854867994473840094189219286446528505784410980578441456740604403798178099063299124876633562414956867102598440401839589037520336417557591423438437976312862884378117696390175336797080457236606618413386417369941823360168584193481901414108361041359041713704009828241151380096488785606195425213819319638111889733117864878737214155475699839321053361103493590236282066112790843143372714348672442669925495722123093552407248180009168400224449545271399451859724369095610197731762649769076951333732753286966610561493782730814292665070688664005382495258418022255186248378438437600583133875548160099010312724876618098086688483262917264791568777754117022800732336281056251213260857639929025878655038436839388337395890576167496328239437817492607596055620692663945606813524144061296782277247694911379720942370884930646122340994571313918815276661726432770997542315330133672792654084747579206917044098978992351152078571909096754042374143716236538256031958920069991405010441002515521446486344536974227218517751706308780584797691489493590616381154510292751553717738178942042872324527027925528466439031248428183406084361745682284113795051068121988259693250205378133064413434514493436525955366860009950536235907993505994576392178042731559960875680045175028843205468971801227423814910900261546812232951009616318214515928950190612728226760323943295226725804143492989772615916626984235633221669707505916168050353478472228503132008292978566995077789453192154977966441013260079929168059559471462823314079734459669561646396021724891362580179060322214514882617608171198902405856176427912340043581490628556953870488204976552587869153160754420301056751620037296178076182850297624287941087646321462708210622628603716564265867153762854665916301420643865781493139688367981400812577722764119296104287193733825460395935830872571931397118240536410733807662699250674362075134125288525883927364585101216791887329328274919461327834969495488941456656881229753878209495484878004926358148591861976349852378130707507829131832907503675679491727395292499279930493958104834837232354274209289050128665097581802257840697674817795609709004386609179127447220525918564390378559512694797187591617310283474111964849359570431812166913382058386114045871866248499179964723097450825179356046241625114632272781934908176771189914437246683431688705134546611056736616374201043558633329457949014659491417979351726065396795480808891771107863217018031091635801067110002960308646519333476958547532194608208239829509807916158423242233174988586502424065701088286837671040976029682051335385071026571103668658467896195326500668909154274943853004956936356424287802382450142687178738441371610299487768048705564373542321027481368724356726202072240887938173698407961230999259567377352726004769451796310502624276569917221987393819986055283933033078717955326465043851547155396615992073355534169539221516610289077910308758879957067797971278210299830667908376439305784036529211496076322380970715392439743669233420601804019607233929855285220968707045479423923776438076749987507079586361864375055864129872346191065242083636770860583244777588918763681484261017293799151194478028762528520649377884245281588954134321919756939765171118371883471928533350729455283447828186451377052771475610711907329632890684219189090875260227506973460104836051764967627367186865678667138453863931961610536971118841611304279592978652594487754677903591047733230527109406128929689110944696417890241343324955093585012898372152785181630822541434535356526509003896379369730647132633925345144318102540622041769839955847181766513240308713705082023831208059585005862240109571873466944523713221906854160745842428072185996221479223983188550757134688018089191353201749339744576860469379452313736512661548309655486735398697987890907733273137459739576708995627111830661659289094848391229097156525366982198872018804349822195174097560968236617394838783198410335901108219631042067895489935689303207459650264540017839671192788801109585734066194957863207330263811967565528834364382112347543160264380384211395028186862953434291065120138095247131173579695496433293583255030574386138985545529077300306072514936691400378791565569136022211290715712435494599345866625425560604479025893995175452332742875440600443998352872557057777453817055719795996301491875758397794527868965291161237259349649668039827399428631655460344742180658651044277710416701551066322053865485504320878878936282563828765661992750565070058369130527141488229230332353374340035843601923757463674255445501423297849595056991748196531321183407286304851730939571850341562044980534529153608215224114584038902887729933262092098576165498730277528154998856109917398630583414019368281035045062137505662251667918523091229447951829260855461272830387410880298647917781575910912228823905555077054605802526330109279083283678367850553053208362882430909279586944152772968160220802114539701227130120883599164042266396598868330934926714146766610613986758234858948588032303999160465219465208715308009393423419319333881954251097224330591431347252595598563639361507792958492636102169064074376085537193069077355329019274141184893385506690944207055052938626619389674556668532759608876575586973439741778858516315310091099462375340236644648481166512152566294842683891176856414849646819282429907947658877208158558165087396738877835288914174901382560528833656197714214792841083189791880729753586779529299093049144280672635462912581132517090236883492967826436319383154022975646231117565409320796300575909805668139326462121430080524675232945368854620212151902492847963145508146330724036156790567136757423658544376981110630223104767979722655778100455113371928805062563397394742844317370689896871530764245277386890039161030002318266512960815666463765166736712195695930777373711940544275476118492138944115853087166351662050734936439290983888317101243372867846113358025820549048449139831965749217274711695844460195582505631106498046533535040224359198381196660084894952367773815920375370703710502357226686475978722364641103085559057403939953375193230220810821638124980757100567311627925543241457083269442421714631405786115281899871425238781350328874931334414884663923592635780227617056313374533935926326079271586172841323595823570320397664628879959494020760579086143729996690682270999440619426451120225143628265978372475137764660196158378098554405781630335147011158822827396404690248785824083007971491625073333201389240828936942314639670816288241809661375350275796386747804216273421330992247741563726833229596877366655499352472329761797033937688476194180283116443154480981560699900070349493683612509965115536527034060789899455762225652987392589631210079855303498716347191920547507022595466100215502399148719581490119180496962367112568709940325622343863586073000698934376721703536440870280455802183432376097873870758687318283202821097510393324020315141445975669814965864428366690651233682969495149004247557601535688559724365400295677986849872280325631038603622776910351149552351405420205284768297977003893093154445449517066619217440070386698915311354477069359062911098769210282339904857944666944836809204632674141932280322971533825378713447166070888805410184723680317327594792959440701241226054414098835085751189927124733740334121810860706010882595353258214317335820441669633389628511218917067104668205547247803064577726317947701135812798432547031711678215521220062585860665678144854750450648563432361509634369699040379056701479264976506572129537932424657505457137300591917174131792623664107649671692780468983395076552172783172299625026491520214982043899585025335825711779862156512366118702634752342178064194503058710967004107253933839144851647696122545391967297984988775214509762600511657913039170423752028868082185617142687065409678886122533806474494764044522482589750251551405154044496805007451848986681856280349057564903322425360645807008158253280386327812613924826810809318536290157270806580507489583819436077646605396059796804874579360913721030326528933697927791407991750734466406605582384950628777075738955031287268858393376533466379753353723627910603368596858528813481101177480506682043372453072929293553336226730045567560510769227063753071678120806403441466766488355994689131567755575059432271007428189063296976255425769490267222701820140849456353400966451505533891652000153664056224123266073515588266715606605032730359335795499325415249976494688606164043301226057891426964980111657498112976853933467767211130611904414068784300518392728740266264947342717856557454412882537750339318579011590843616624057288398553077382688910406192030304596404564611187516792329979712406815863300733751442882526480321511393432592885704555860896471209376571043424212643962671797914937767165269178242084050591340049179012491556367206114314824449315212769616664044359964425933929932945378789138530186800728739480085791881852790893804866355929664772018600706234759332873601095849781688373057655277093645625317444802472475156987090968706573458146862345095073982719208075408205817992133928942639826610956653342489771156758172652679254310156992773612969821599455166280271652377100619176116414249706261221411771462654688962125025745730606358141302479729753497851316266894975298976912686280723366034392338953730286193516478053012731263762539757207228054365653362475723931764380809717522008961463041285990618129339503295044226861072182165961821195362391074567634653758438105587823513992277556342801611773261030068463309836045505577609983152209923661163763996020621328713039394352082015516985122961402460923525518752090039577633231275104337514034534429696148622548107279833692107247144214117338088735594892438510577393319278854198605258743312926972895408510364460798158794591545963790881026600749791878432930861052056358658677300784180263974015621715124370564991261519170562079118056565260083169664326860492691973235586377897117825345757286790046023371208111831041164298710045364096287832928033338118649285738737249232762652165843037400634162061150930477187208974873400348397968406308852068413066052811446475818104237072677963109979839932940669307887231837446733248652947677340687457166810262952899409846079869100512608612222480776684854057904979229969035043046521513278556435658656009738144163553979312768460476087126480636447006542226473737205243579928029030137240052272426297989348313375596393823443882998136585287119997964512045049976584764153634345860114967702670079829661969842291066586511381333436371857885120693244584375632333301309173185247334113293979588585479195351604869478382167096710515999811377942015766075639005743985120008895990168717919206384068700089669505683460519529925199428724312151483867720262622907016387009210850699299660489242254423803865254195892246781905545080909624648314628876563792494594568898953925703280823438567214553021076390966531247443242267503932780086568245296935694518118202937589309265857194715273595118286234883815296138246390956836226962672503531143045933428657823809461467862668088807015377341572775549198717890298504352630847821518831374733769218807363718759669479354815335155157273716546639305353655936831128738771716137111964349322148403902300985716739870717755358312325180320015417903236407374967297588622563799615691283823439157179362198748325971442466822998721231443041047373966669029498300493833621930188490999401214007504710099517012014774913000436356449798481559917265821348000755170378689790903737664274513540037981453481048096261191873568851029335951029717677960448049783679268286840680467887655349345958969350159537438294242390318702611756291021709219313927359789048790543963594921784661927356009785548259970406556731687800530243366608141522666146105393306833039848641455608078526911962375059379024311807810056880777641627799399751277391351712847892644268526693279473690651456060602759864189138933288504998577975999983981522896164131032333044615418370756808641024760119166018061482166274307287233859529380240462367816906686431593459435354815729998160870390268025537328385792261196391144874292899009539569205156641176384120340324650175468233557577768013030506971358974920659983557295097221619073361998300355698753834696786106549119144668381881785156873727426024904078771307100907756138146183644005773812438500815324210174471225629242915275650287612112210142694547070424699429108807641007379018017708042873295499725802344468824130327032110239770368911161328849428569792345745029559538428055103194084488354080879781174847173687448601118413924514476338880324572620592696423818033070792677470370834483870147875262990803714265551499264437762978905690585799612385437656914046979945384213905934693336749813069482525671092236581076866492137888996740630377362177912580272983549140759600504706268737789172550893726781211359190669851625656719763508965719008246665537153003202763929035656575929351346404576459829302838556142698299643797222669723819412192541475490940287489644604304661636839373609970011137843720323743993491534762512384217668523218763373681052902160883387138293484283158900690883418048312079554190190806964284565046544826495662454539047987242575817639708867765424324091929126781372676229113601879551031935394105068730944209022303456021421235559742350182917067343128351494996909298292225978209710998896823591025074485799841642912528455870772737154557034369129655966134002339322294262689353339476259210389248010292476687389972856570612810222596084830450063582467742244712183108129329906044519159210363286139051211070601145938544938073340204764621799464030389198131662178425711660375450970683479929118572118252426763631990637900497475632199686464525334494370034020439849176809787104364195372482454814148256691617431149549987900091588033070139693045521446627817422774442138630553607631703654030986503433411900098007363755481409845734121156950311716329195404567031260820891896054637609159022247962415494666084712886581874929467099628260974974220640918118956712970453207608290636304112286704620338134414823389896398337349456000784863603569420083930791700223681249349306852854429630259141642245095663626310243397518956680830836206765094856279823768235282094990397450130480611668449712719844505845597891649678039273879951276909519713725240913995405932245036853445145447086890337609139175502863183328208961372654515920566438666690685534737213715027048378182514354291917650706982470291502260093761851021257941295552545314242051126678852552151888164142976049468315026172458215002828556203293842155090533853083074333421552709269912763848505329662122851971399838088590088734428755905505889032363295453814784266820027158039118612271199075308395728322812504211980122237582310979240315512211682391841958713450267260755629216085826328442252945906592038081494707932391817703415340469654756762386715890361285423202571580320613775165413902115110159239272872522045850455239513537985886360717011148944814148598656970045326466267027163283797302596370650588550474999376444523470511455049128105607675468879745923920854073187671110782513057425751605822190319468613636635443928035939025750147473862566832137718743438546844432117300723939988859187710483105614216273393769812745369818127886796184876597750158113710695494651308352363538536336384674067014770397414720557790828282296078875688024492184536520257696108373531085433460679711390788824650133782027141884585351368449120604135257194028389602296282175297539520900226200165157177091176942825197913847143564152787985794784343879982702052376660509439944763037576575816729250569112478992031941877005147306578233678242069880192157807575693410335010707972769404639348794382990032481156150149386521571391006860651039781282418624874119605053638542553521744021335984800300782266258914797832308090841140449503593187848557133937737035606588066936144932033452246998314925512456398497887668519913457319871816501506964172857157043293059466509048060871133042616579233067915316965675522197396108082348868248145317114499868948768792131966502522356517838530367299164334755036081896236834241344921834184555406405911994370207861029679024054158237692360230531138651294386907513661316881453073649770752365947606175156166501754363157003031533297700081714017273539102985845190207298780598866893947512451489592503306044275064969483065618289714737143196467775252407902952539281518513585616199485215829715756263531035478668545340842755341000707785059968695547257539186886716819903069754509315163396024123428117000295557918680268782316942464280854842726642013268293338824477118053947794747957961872745285276185900368252844767411613985012799630326819141969721276333839350447021888474301227448120214969974493495111386556052418077673065865516450268801116878198708334517219063267101514288615338256060824812250080844589502431595676722258665961743344153097623754411368523803298650463315754640589993311932514516591363337429893731505282351619459437899752714831699041314581503453366843842237579769113034155876110527844489464886236506777543077285130623610358960487883273138244819430842196937863192228426720155806550066703416255227219028857620174324460573096276656127341757046252605673134693731225005973653724486594490060968572801762655756699511417728890872298504611983443407890857005775354609170001683033004141310205538331212168998443388366874384219566555343844959119387365019404455998202736215661512045448472700219067624907434728726789027591379488200589712496784267025613401770178523751636262254100265753434578702301984222249746826230530335570044700695596464423119698923997710294276182329068947084402177112860560634170408006444747384380684171195934890850246748062346208673704196035241044152602166392754479264722656136846021648810956576151871060652402777626947811218355338426055889485100120408956324958956704111165612798205841337881186666158367391659963617342670437478024470578813147671842815406510520010156488643625340817884767246309807714667832082457443696149780945572636398871097979697250293083239387256733169811416237015489391914244176023968938126436571070235074217235438841505137963403502228271451441127372471589248431873989084666926091279531396017777120545508895133291442636160397899866672270337106698718934930811821802511682535682561500694768306019157636331903596112482944948944829927995102151791259558111371724605675045779985404962567114166748872758222227620901140533059100755007393390083762351684588210780493733084500792408088100824678332421178980940047178179907960183355875134658827727329149489983432996124256630227619059717255019876878887062086141411924041137051976646114969036840849094239964794260618747879820362857243443589149436540096996474157492434470079693832296136847695262148169888174098289209233427440388803115906959740263670104729712000980387788648216339192091831643277095163130307487364241348737425086755244693219124576380772585451458603426154493409978651939834461401548868849175946556256506903968200592047431852067087367995284070874616296802201444404321374873596537131221829325305939800420193625521865427879705128075975267019868565719855500328502903868974745873720242936513596661174368549932005403502933536430700984016910119451378404691213415108015017086319338299763376591531550947817040815753498053938180160228839051756367602384645790967421607172887275444219949790659430547995028610737069980608493424317812674000644993491637764385213868800648008226175057492231966241938112429126662508157007786678033955669645615480060579586529395280795855452556282675280993280777417343803286691068953447742951352236861958980045691757457061857465788309661164536398499992084795600350335478469908245713941842019690031757883812319633232042487701107353861019791457121112979552700035313582091634782867464043897769445549478501572647152344598747216497817417829411952130207847278277668400156530915211790865653877062675445938257722590303898928638411422670909097627715977425461128430766615748545555603611205464265024358126837239081101570999534766105475161796973426523808019695289728304858042167709171105109568776013873107713297994482150377278460052299620531664833735448649163275688296833397264100360909257276108374485990002542301863560065948690035846137099755967421740750765049274532197137801774215944974942004148844122562879973021203063599957760597291108788882435710530568777354413979229412139966038071113187291022509692050508425737444143450147191897435130517885353642303438987284602544981945481693136249106566660082734242276777132818586158998945150220114494581352329377210081318205144276278917712375055795024499033727718050187526585129408673101549528503900094352407238962283110139093093833757618113463931031050386838512548664514498204629329009111546553909135106018507279056067364674748814612695024339939504076962797074490968133934922671341822079686268322461672933345551524664660095224549489772400991771982252103448299677462362016881720710020167173496479126093221246705074056773277933829761186650483355557895040533380668283777047700396787029881306627765214319337350020478277111654397978068645983388016940466063716107498330146628593409993883198721365552381723728709964744422867121989962524538137849379274013886388474635944009354418616807427574694671250241531152963767062376583728316469663830934294571090120385294443861050212449742732985406985865651052733693896847087595161922203960434472738975408237063338213148122539210956401532970282158865631061306699737339708284203163694302436344934914134745135720233062376729979593086831777372441578949171751457976380459303475341368821700252489786439435923784590739587284965430856012378060232200528526751925020208353243146313104003434455857400987825258218036435150847787649924437810780599891034194132678304117100469735947976317895237655051608754673387271776581998400636628633457985004602887351857078010312883202905037654325870600475789802313775690228243915013888970950546396436220845253997006973289388207749992678319169995956085443676678140505178730925864427587150062712024692071719192611946364443953108514346583411690534280197545147711509920535761144355845230214286531882355804533182451958007983125800827631986560356126058497778194389184282303082863402059658058048267322031679112254325327721679758764846480945565056155293134787869550123484103269548457204703309870922969006951056090000979555725842005646504551670178859344622449314243845436510260601886367524725800353607962070249427873626728219152518763019604984157654032843586014403279799515524696175920782723954644153253319981765390172726446578560138881612525914232750706980466542913328404806633065174991700195490386731776913843115978088992887633802070961364675834065327872120171752024374233065096374405722957489095991428229882954333900143060651211973784342555946334860891584295670877702849832711124508591914989967982726572350022971460902101218020578249528184344443274228878945497513214612128457942099085734875702036715310996327866494360568816922171563498555805767274637259538740854675717918067654657142676635424966558824149661486916568933067299752407586768112589294303442515077759162903936769510092599710028204321064083765364254103028401212004488992300750548264918859425788721071842362632680361136028946129053488745964473390716641335173787448480804939065842523397730018052001363902031554583287017057944703666332763705000304526282194228993087475304741381024120660381864201301955742978504567840447068528147533497048800631617862021200428158691485240432139420992241328345531100453014819563535185389077527182718708013371226246660862619246934161148601521908434737987855725378896144853882109341688379570793130139178643955704480525866467045109156084367912165577156820492082879748863046633579262406507075253034718006448533103463098923546241668787934377405186500467713211010817904575399585368450194350709217202943899158296285506921321211098693548986655703124904048585794638789372006291497883809610989122829653886509891804598819064409333318760179318433161947463265626034769298470408870320661992129310414976107491478886223263648760531594286037022570691473079335490706142057451957758567936988144900627756115776495601884457759718578220647257689368309894561341490071248275965680509619398287992457553420666967616023443664059145915752294051459004792008803634093607554742553564272986109001903940290644008286900043143768272979585173293994524505085747273163518697443233881210608584128419821451552863685171234292848966757077881923831124015027247435353272011190340645077509985707059658653314987541012422534775619725346983009600328142265377281038617065910045609662552886991930076632478043742378852322061032145018882660749925322030632413136173929184932260266349273815427574951430736183805444627747191637431637027673111038372454739697864330618561271659064148994919486409435028346846317925278066524525601517452826067939904579528825181242572563717460274238196313063991342101574586647826652829876834405632893749599159524738390858297594031730612803286163287625849018601452044772802515666027435551770043431415729688148681800819990518461071259569393326727711925367967537873054484913145498820368417746962191336399987347443385422123086445054698292185806066870859110755694985346024321252832984435971498892230736918876011686955578020302380680571257776047857872810059674910641392348249613404843076357594598819053527926765641610262076797269057001498298507652152754582344084701878075442316957525907426861632520941404844431980637344858020826872780167508650957933333523192614816199405552936511554804521525974446280841550510166191952787269156417561580115688785291875252457804774663810768257554038702671470041355161768031610349871500608859660088550621431490063503966086990047684102284397631785061989309335244139322086214030355259039951019247572529833357449579554163854822551442231881531908764670640502527588896985565388962450799256825594634814893239891013614445137307994397661617401592172791806352309025475764794948533853116193678539187599439844394187522515554489664371958175206346860869715261100173133169896028558446232424298684591360128042197671256578186845268994195561526512689670960681156208698519632778042112553575213747048640107549792139032398440933160553060048633901874583093736230711853692860295371526331809174529954360841476953875679451825014940521364592254797382494179801637044144570567066139926548304586044837402803708915306672625430858228910610247335585865276103460740287257570062624968185105303511367732973849105170842477877458958100145906191502517521394647268773674162545223930548407344096030377258430707103799437577055546282184933052766381053210268562294810689245841761321936940240682303839616049584606368652153555473324475486168878593918485189912147679411380871310351868699925178954482523395593621161717991850870573789225095785387304301150789027552036610444856624416459750263558283731196216221603013948172618289923749080475024741207494300551269941370738642491859685500415537594230596212000256011089823430026198153751330973827536589039588418467480081540601493220605666267073781784220511288502150063211325393694587531852167930518633665647979610057025084697425277739731267462831076058152628191638349460338131367243849528900739391383987000993851115666317856847133189229257054761006969115355914169908573342491772447385351453422608229290867742126590545496592952257711560833778573596127590770426396071965075444146092281614936591876937542339597143234837978734476626120032272749415040140893163512128085055247599306425595191450642321689738072020210660082957075754344005019996612229364268401565676648051683611145540709451176555010248549595752078322426752966536331137571989109690605149056703083582223738149489436252004632810608981894909397316350892967031920946569459743161377527910825122438659878023497220035024038408428909754397766315325303808537973274692484932490279066563310322153465315623542073281311185447298916702405940146666951177487933297593270695566632935332790094057806478831464169765862352722669131557779478923197390566375183557363415646646648429154990142439189377848724536997142557170112692381221037889469327215298967501690606309780920101596587518414576828824831035260170903361165379758635382642083986572284350181253939111518117020116697758036763570251630314319355913758779920124321638302956772777588368409031821081647025151076685995902031686553360014422319085820850483093416597739492372948690400413039246158562582424800092356812472195903948292621723049874751144536984041351845600082064607754431370689062041903574581645011629851335942442410996359531507929034164555222011987602818622120656293101415740791811779266267925513964404324521501446822290322524569629084699965192528517747125924570688071497132272174413147383513234783581980894939341575576498388209491562870660389468440090654611662183380395882043327162843377693938382798976970249367063805367892286850609027440472966682539693337172467999145776206023643245835260927982979586486725189479192532199306674193188966932583040072074109723440634359195641414806852206008340526427401534627003411276104186163679901146080924736093135935586907661962506845693952918264682744409020207649749156578705402856023715037530755620621733420387316621964661006153818182376990016439116448867537181172543926588906995655283476919857130587618635860121986594410626985897542606795338248433466600812236875866161020386898334659298948992284734923255918339219866614143303895899947845167988226615481425146437524575494774423991157480772907009787055897342573821899418805821718393056433549731890759797651886384845134983257849887173997451779884637568721191413777751033589140115567316903353557395218091488537872545955220442705811406402266387952698109996409649597501754959818824331873747376542333275551173856936820765939316760156220433254020256905563108169262079334236475782349090525888778653716820143872595414554131835373166853030877947494966351433552362884421574678641768833606967494347839746643890613113264087266740887423296868535753450561623404937238914370561989844429866362312665403987897617351036451056642071594900572652857366687618682589349663137601323773393932800867913359383316856552361674350224709447329836295728859104192671981397414431955710252036571191044156992405261595801019033962753056549631767331109684966946742420269188486640150063222031396572022736569677157330884940298293931943530909502502318969559331049059671364596357201012359135961361702147100878749843517938903942863912582592915117829422197675764965696989443361190606671029332344370509981208806988006266818852525938169440804647724997629428347810734166302386078081837350940599191791346925748280021712434800327254626017375650597763242060657532337953245770490364783979515638520333986359631294260979002135126301902886794712716071685665439391623515998935063625342743575932865076636941247119076788104047504165427896599255982287153381270554945987783149209605717901837227579317356686821439517799110278780646558356849191964930257804531462794553608216781225692782314342305074377784529391052238390493299675802234122374810653646334805899147995771448563283209293577397136493621138749123177775237612786294148521593510685399749578317259849749599342512885785511635436771950974742743418001759028511577538241678313820772780855846145999596403435837034297880069609500541289708433915935950259222491394762468102304849189217269874675984281637784057099919295030762806949217052344013289733164315024304699706966574638810073050751643870447612943180437094976743485128518497787837338241108097970640019683583693096364906428326363601471218891719948333426343404422508888007507162203914926333356052642417577476105937002571441997415758575239647214134173722891670341120067843423472737719153279506044829256657593428773937460775002574400839099052403092708181182597837232703422068076562061580686057556768847202356090490682453854373417482955619386112481690717839979599876486091453247816459079224720793498883373058448135043224330364624875543063279164847474204485089669548555662340532442093826954149755454208769028011658244058194308334208906103404292848816714176622148659271846967213710680549987696621249766104855321010761470454068472586460988789150541289524978485423622423897935294540486324534958515637142361645357498711119267268365164901455071046936719301841010039089827606425650387553427711114156811728354520114863607109759985309087758240530377349672633173704189074846524064983697884194109538253267628682312304443618712640674442445282522056676528516567098713931670398070187545808118848995628690769296759722066346021000373295509728879531269631682290770189255583258600222261433125643925765501379941603284568611986335356032294694165872001008876525443254997050762479929391718043761193403040016404641502813687381755050588530302629274046296738332673198242598532575295683361253298315154326380863625396381865373071788764799298502666724990687009498415492309712316603701018610506211269467245606759025311603962764775478016702553331815170086442726206648028586950844865351567501287457705780118400196824169841386497320594265512740084617450310613411404089063927032560792120357107308748558279254930147375596742179368959987481330849071340446703307253318239026423135128774752878240896702294856760812597494276318409194124459651095003065875245288731710758681021904564992225304021258716712646839619571480555460354731764279172423906243783876538031153673389537408210249027183569917053169398657242853122409550735433696502419605373300126504755686930320137576059927805203166123590797630224249946345364584204394684026934662921147082846747943768917356230846612148492130382974899132630798863028390650721478599760221935384170184965084174171144473762382447733879972571063327037465514654300018392451140312619526918329125890080361453798977579769889395700797634009156396367784745631607875019653897163284490691160469838288081226752949429663580889454872131886868927619366163016539169217174863827221102222710576620522657614491465888632860248169837894258264595076975379889837546035875004960506360257843571199207398577513087413971871374751482603432284666753393742485559608891889743833515828785118206122066969471216734246104757864808031915196703884145794408932610599376057812792903297997268458409630505627370691035319492840857820861201856909910686690836237914719711585855038664213549803353880185162839471877962102335184756001788113902106055105964469062566761793183156354268563495525964530427820534404843656932716811865727347249741697358059615753506005890738554097727014915274518169821700153212710401515965942909838881370974110252888309536533211956691876833914898177376566718346814638096779465008187049712957492520743878616007419464055288794300430354592118821278842331321687023890401058163486757017341330642262760523027468335320723138796558561815998566590317134740190870746660347196749439909181145503635496818066608643777764676247793298906320099016392273185165333177811315101346052174256214097473988577066282659140838770442980912486732119180884666468904679014572970547700635715687596471747276575294135439612215650570479871115123121333883442458485436510761225945553329351609713415974896881944445354490887416739260619270287907976955475777137094889995577212199283801067202867011807043265085669813298504424493968513052949044404615068081170169223913867066593402162784563230251402244830342001501291400856483391715170776853692024203604865737613032208367194775954578878800157454788330233192192969920584753147670728875806172707966762742106323592061280901962618601992469935917121373829232240147715455050625054839075578706817065330285924928879617416332388054478561136734439655178483665651227128974046902779266821968223782499970641320642600828892523445483876223586754477142185435699376530349318928943895029578430121076049930721037029816315534485890611164483179582123994128121524870810040737618952293236248304877703834075117622858636962236184552370994023638979510725613521007802783604577857953161076306825104988965544628809980110612413146077716093066543915110380713210626368407249841877007212108654466074338191386762866455713285109663598869444675238497776552275757341039259070425909142301729415702102627507757958981937524700981107054373568391127389365989946552068321113707676543920668413165312376993613795288221370027179453090577753475324595029910862836762246462261435735142558626497599161738078303453637847205947083608255583479051528480591935114776842524985424455567582014031705788412987495774349895621870533157336482338759871533075945239074232347624504606147663041110170661640549316765509660180935186588281986521543245999210262775011293717223684012709269660702271589200522114662355148052513567359651004388756380044423054189103977690918595302380880689819794972743058171823540766574231969625158990242521646087467289321943879382447806939147433001978512379753903939286900692706063016337433196230866427758880059494095548723021622185602747486164899496523382492384148537195280685396816051849866789670289739775248477266947870305107530423479262453719943281981077361078663255208427906587436560055507477465109019903053909834619637724297878082871791890613338734542303348626384550507847937244699098991730532554438110961742361026290203331995083886185257296880188997999182367998560902905388157449107907135407468719687101384004026118556406521386596648074633598568145753912188405141125553835148052033042982345447037803779986074961276806147484048182610163870905370888704344295324511652554250687714237240770104720690565112130575673986452202563429292500352640129144379987269479555193586227659999054391448450885280206284273866075220229785631117090647093998174464078926989057413553549226357017073537838713907572887382432821766901562621605493510573476017813711852729172194894316964519697481118569749391005438072391055476822125293925576252991163778875674172821741175116195363357556004485701221958370087399414804610973240276510486556284319847606863344240789507421721550347895414069133786023400802728781200913877475285084857735465522044780583378777640803766378964764273533900054577267793273378239762512724279383604689872433993979152836892556960809839831224380218395856385910772820901105813136761591353235969047135483824037816208823091504179650021882683276465180869145395010514098071803761367257824252081727653061114854196547689294730126180281246706112783290813311470623124466655191915610619576057954520655168211310245944285997624319201702277338368705178129237284885633299077275172569893824306809781392615739615284883357404595163838236085510089704312753404973903939901578710362898296426761556173656550880100007364496011706595592427085158702466656738500525804252305862567250874119555008802712410166465676271230642054230411795819117269044179315700177194254294593722456003182755919421897242453436928615315108057075188275214519570496848688893715429843112327025526156598391124329068299170512874867915218093359430037522858532355503806461191630569554674473833818999854978094806994829758787684163897390999778254341124331708287965609424106644611396600921237208618000032649371483909177034824637260043737267137207031945207907761119293149795325465766386297138131412799431970860466082217328329103678390580104060946804830649700743405487758938227271668815767599402281923259569985288406631479492148919499870813019590906819415921361854920888317928176294745256537208908685946442367392846864970891702276024496044261025828170342742881441595821173774375375669365702551474017775499885289438820238338294581550287392354107214127147375466882825545951483697321313292591717987647413326772654813812027546764947353400827340987943995827959715554609418470379082871704618254443468259277169146867648499809528311074576683620131465834274578587557672225159705517928840660805109856714991312619386764374599108853518170851859209728693615859498215100411549831741443690586812771308983016051277234597554408277520653317559900276240414593511388904580413474859319599327562155801600954612023721462869116813817374605423073877942929473024090848207926314011214781345861433250582136254979979675439756786257906344806896770972633150436820054147512244344009180348781168308798847984658630354969392085878950698291859682619094478503858960750833862632607930573308501275236329435177833903741368551583566527520341915191803601709230533769939398466772854786386541054733132204344263481363508741794568763911014188679315299919171312974594993504446358962731152241150080903206243943807605784493498444616857198986029288636514197127851380640459584807965878552431026373923236124152573374845522296318820842870892661692416648817992039845584918531559929683191452672589151267786075250451121043611227019686708416701106474494096754485915821033417575602840232528923909695342343044218563472269711938841880264754601458998499800815387790550825436895367592548341143981829161174800781824709144507433283955915182973521961536979506663339152848504964551899870319543088999662486099636435165469216853967423487316612995346359994742479724818932249766476885720921745538012645707521636526875308570982439906669112226676429210311227192038139120002028571125179510782556283834963237972216773843118763782305781893049247159598828768545466845402860353961106092642846310732955217598717059000955309691465316628134004026213880373198130756908692638847899800533203255339589891461280118451477557490825595834887350157695519004709669032779485452532385736141148087718885002685861750202992331700858585015803014765264398978488090058437259045498969585551726616148271099829095617150421721636684729726121124314086458000915708155433167591714033296395957649064828827079452248235728209067196661322533413265023426203154198135778818102876486957039990510382527066012981411520547937114110869449115881555346967567786279836037303967160558867599693340434037502289249909509766230769442224130096700916159808331690228081186634055699047932186390788574805164117281311627291186678025937033070136974630667001295331243669155756474488461268509708671614678591117768903644033766696667512816975232001932281632261688696583189467116942389333110470033995628074842726756177507045142567205772742709650019853744338399384555076119837548886109792943070377337072886839788483358239521927631404605962097147688366933932310480204238782435537403298452872782373932877644229679940133054847404133807875607207420244306095621825624947133373751295916847850889890355911785664214275381050950910733853756357025515366700557500767429201455011767816267060715178408212015796325116761613221085558413502577828212383331670292226548588805025199698082144146765875851939418372301792260861899000601083128567453577928043879895871591572508330101249844645028638218173412839887671537648880897361624735631631772183052372901661782214429987076579477061921330839600607431706305744116490651144819378560003305603153383451616465810154242471753988876914309313177342826851574286390131760408875661749631895141141837525840777302084590371307033522006308587364365329718138842960783738943909892551445301463153284637085382520939733802207574992005910360523018723692410288896573398154683148336426424017630178026069329621754772641056986306060600266165711207209005370700041105542512474635224581923365418781194537162356515248382525920240459050322509850676379574778946912825361845507004245399723030140633417661628095782238330269504546401918863140732042126418985529499685952762510517834017796350512183803879288640870546389026674994454381071156862795148470374588084980078291410587384746682887083293094131974476103262031778798913813286063636993582371614981740993556732214708096099268347237806765125496330026673225674774407918090244293384101513296465310359704830176918615808553765284543122926742959302588983360705067287724189228327165071546053641572671321849422912308598983206654944626813516440778788876165612900893958958436361430995737403282314699658824358854379051250896094016657319546784281605634905150645142569979443237489640663678351999506341134741449929574735734103342592698808160071017291731674929964377105627778855896035706333128609567112578113467080206720546282986065759417999418388914697922565704639495637683833988997901751872335207578304697519216832037015401656239611381916821442101294927212568561003364940386313863433066303830025245108596952176451913499967244490765950616296835269987036012731822118860363139984784435755610982799629709556210797223703105367238197141374266035472200198273688948049500446293122509587966487897006516095792408020496481045933147268824930302953300892889254089125743861190938788598145043150929280352454678340892805127275761083979702336470752262706803515476508482426379606478572026931924009577935072984031549970894510949693014795762691243708421579302583646167547463256232935676233917851141136798208250194995044805830887811696602706907647063868533639568730783706774974169284115497698457832950425762551231296559777836805501835577162733415933321737612023223730147057087022310976731957928995414049306643783195196900653977764971011064689804106634368099104535962014031501237466429046530852669329615464684247290499166541394390094131401121092431570571421668017690332677797249751256561385438059134662608875734503050934459457677716165274184525758754537707522343325243408960477215639129644535922035792591089327848028017164804806378722482216337075432113933086606807633041056015003794491551901934924436125263393707316682223936908326772591045650197377018308989178761007517195748686949227772731223544462251584193903557048616527026164220618499054918796462081591244565649921712237633874236100203408303124306306788141087400489505681171988558957325542687067379440686141707305880700885962645473765342125638045947895765366800246425262238714179740162294431092814437282110663387004497677448201708617765813147243484995793302809495844159320866764230262911525610527171133613849169076051162372844810769744758249633040697724426012895915616776617480046835511118758189968187815130031779682231340411342871572115027587743733733645532186323584741442506657762701454041241112452843543623733239304179789297212284054599714177045966372964381730728938644654951415482418251890492917112828858516388677033317763808704797927135988008843134606740308278230403291309077471248401785967627257160052177002734198703145773108473101191390167480528838408727816974940966037360132189968846385250256934446008242492047551797254490315652737089611386589486716981522667096141520540494444859058591801051985050245596284502793183503246411149605671175974055904447018699028056257428147815924994131827270211233532723852690852998270386528478163569774202277727036312951878475243347748670041577180595664227465825627054735954184104910048705973114393347816681650745270099770455311170849107045664970506813348883057292457259960645682464154442466571862239412851004512368803619166965424775422946186979122452838981664116652299552583550974106562027961488648155938642424151010996219327177094964698775934102022715693602944520910666473325128428311907332249661784614436986279771907466104032591833986529643465009491405329586811310650833397604265658254659955710029659206785825070604520997084210070968487675929658468172102993677053454347635139175130552900616122354838183069042983353641840668397671399791698609469309946811240618008255015717459022552387107685304865143539446913206384800190206979233763130326270707476938857747501721856888466724082366095603160989067761138106901955869465032633335645503402002293727244186145155989729420989368406594401293302398371591511042220361316851753406584525719573128135896861617569883154476273033606568394523065780362666815861302649267612741088434421323419281812533774506021691957062553479812620537204949985304744341251529043583596725709500087529186734238291355316814770266008686937460512817823338825166955117180586178207733230574245937424495730534233263949325382437068244277238636309699530381079870584046849229189531894851857389912382477300622470332917630399147824018936767048652305204887740487325948095795963798675716400068570460796435429399897041073123897637549256306155254582506503630972296433113848673275475819689215133197521083051681461093034543264073340308314845679791991208529131914143494338136901363331872266040708805605263508446976989595305477630762822446911479554451095950466945044034640253889591248694871927343685414694614582883709576233719102165976124789384529990051906264490536172775542581676520531669592966008829590576565539804647721792117180574041294040347742350894114800837384546756150476197450301363105682915308885656949924524495124555555051371439922529699913294071797326097496584915391403654451339721287274484605147206544452912456997446442046221547324689368568212466984688352662483954247613777599760403652100067150123796337651041875551580324919831226313207678325505670349582313043904687080405539075243039044669447587306783053914848158152289875805084380723817449765089810060058660133045510191298090879140861699410344910836098246296030873478283475840071683818287019535363446746664304926754376236764468741758614889751591410239412711059693736763578187618748572860805931065349761836957117469187208689096952608699876483644736588124614474264081135212577954384285457096636557281494722990863630339195138951811487372381664168879211982168881149248695532595352968394832350261232185572984375049304887205223509913004286677088443929198793986518521983426494182912959177443109240638520467766862577226469749249121045030104563643600426729519238052459980634133070480108592036466264267263660345400036492491902896767403024302804888414624824281531029941536962804137617616118527867755951116748007658075808492839716102665661445848966690109027063786438316521096102292242533954869502507819758244927278618896983396056968909061409223337255218812410709016257318281951038027744600560596620928115523456143827463308509968074857208143114734275914884561229063589893791298110877991588148387623145517085349144524485538177378700622988898730458132494468172802469927723845187936029145401092541558052943891675725683550159745706728920707459381888547857339684537610343506007732037169251998263374752508459923798117528670553273597201623802008582408516880842811931590320867361860329505753863213487918609474436033486491897747085777221202654714319773814142071870785738378750156426764191399478524868486003562369284196842386998513558245327905128343054777595740244518653274574926403754535262226552697837923074439731450735497105592550798945854012145464164874660662287909044452364748383463715282059818911623363846272228715212140148553669988693579073059946875729883144841248936867887766053842510631553996265462229239463546175653009525863632030627504157983975226722424724944262881582085946680447717892878601822671501060718077387736012784503414157231880950039773118518883534217034243285284778473935495726374843156442286320076216003895569877195315257672868008696917314513287972754799429224997874777378725487354396114425403779045776064885266592153349197805312589861321601546401827538599649422198633460873203960817855922903090412208274537239600472116756530871015044468586739134836194210470760970879393308315975768514069969044211727989569405756006643288907743248472250251923787373139080942502529859697370304761746964118762981132789786253698597109347405185480731627532186336658118176096495982423301174755999953330093472795035539016476601460701606132903598830398162140516163215478493687806939972299817327486259976039194646201753911173790347654922977364275969379110502162201767756529873329758613850047331994695179308792856568101488696155451070507681314574540267580867297087800226613936401122432007430358674553150904949030706634645582680525874996660951378034295093094273642983541056063889390408321598054691798267960107951412035315261238199417378152230775714236740788599217734537120831150559868233018185270578161500992227339079351202067206966593675528610525387491819697671112216639832073717127540111148597992879859044624124369995815086626119718601609795530218190504297182386586993107981817684993599425303535321983584843480335602666689716848019202314313633287218617538392819608152403930868802492479409061621912620913136263409948067692917103871971507332259596733601240133142837605723336188842103042383139147536830971153191812902700486625236618914031825790131084968261460629470375371732562539227801030629206855554828036165249534305138360278472676593829392211551815806912810991918514001292474259766293187468373290616978450190579799075384956597694924515183077521927625342143986977225068142986154183583621995025425737944592406141634620035796879441451413960155054014721916281791512825271454454088686735052671712232628298371493736695077739320654197038918654254799832430527176894684625754717940971820788037103444540387982450234397054982608985429257055971365267659074621232551523361478262811957908833621864041811362018009793774839222514098041364098202419190037403943773992311636479057347115472908667976532840207623726136906928961796181404443765738521255692161986247398799811563481136462396507632987766998406179022588515446775393855849645500413551334816475941544219213954022274019843087559311232998059374020792583228238623173230534436727056616323979914010272498669628668675331373126777254140492762460063325287511719989906274648645557824955795267409207318458403007175724566437659865844031154881186751914408360937972913405066709473857861944649985051454215409354496800445471752857011543926195410556950584582998316287744409303386457219497806092082564106856822730357211807593151583376446062560294550063508311473651577915988825618862571823530855969884563626160491834222402770645147432363656668030683716770621628743938776966490379958627128905428125152983151011115247218089192577620692794444348455227674454240396538770960175486688338275597778473572657113773084108691723893675037633439087700277746324878206834697740672183195919311445930930924877993399669782470635634433483177793057197191694390519385286266238883628562383830911350146677702167875571928594927566493690762256569961353073786703619485588024157848387431600063412279778633224526353567183206377562382165865303536385532740033044056607377121205471912159761871227429788555311230880603214628390079866746068175441436893091463888285339168077696825982067898865433845497835002023131964175554872278514336709771531615927568413111049000541586365914936848976589775847645661724517656419969796391374748070697231451791718272636759712439715993648846843802910656035496612608970096104601135911483261929377036179641308636751095901641990905027736527176210310905973216639478078046186742345749351300264395045724672326854072304554171185704018167990042810648953472764091898230329776591731204063350031204986676637709760867077720962277010549575986653825725169152283329370000376187887238253850208954079415991409470742501993606868527852158908715161658042724242933581508239575898435704409916638122816957631742635873379870625378623065896920104704482716792817634020065426434995327938694098095624616822948396221549736065967815205348403276281455058670421494409968041353781081779620932897745922726492847633992126403961776785291026759018913488589292690986610572378872731459905513052836394463305056776977685738908878928502788258921403774447159868243696324542319343512772662155643842251996619838812047620741765634593814868601575245735956920898964588311466475872745952092935266600394410037740122759361537243191705096475608760950744413525836115081094421175823802128874813700591429516190848501488312120081683641130883067203264573846217971797617071242416659780245604819351330452173896543051412407541896304450555154552295714773768703767292242645922213960888027267399811307872888674321342904800849955128943155058003835184544749955888965647365437549344962778770707517434334363124705968214684451019199115985237196371059812613548738471997248500469385135331058585178526593770890715406801095703855811150516193315722238625335667208218783104288833611002509009573371894198596989162512540742421607223849334949468760011293997746034142169250744497602600269879122859011140064578232403442400724547173521365214300486700313246481454293140803880111928112308460233354760423380488864153511832226243394583220668464571350094507948294233849846517613035597545439885824603390969136594753658470509836564950815376299524441855106342210307619950239001748165640812137736045317920159286814881101231515057520651607266774571290239216783091631356578225545649817149138215359433610990746105835829458965651019710440530664274938742282506833757279144505764968266731926752296776627806567257407926753817395117892486581738811527686759763069596374905512551377120287741692084335861739378186305586245427352990873527758162927330856717639610245959937145175671533462299900476072524368949131570609745023947620343483028386709677936537376829416489322428217809883308491892126895939378430548268679717703510550823183503638079913747362558794461297717288596098959222112095308825979393613148759422652387456780337805013637916477471152132924344528019343652479112555938639110265600817537182041062532653399520911130995062661916897058680630820050298859859369846359387395873011131569290060749058496620542579116185231592826095898431160909493317000586038611083134439844404128180153142128321074526353994505320858906410138411460873580174829926244698304957879953651433327250264589757812628314042813409362075642053242353216438829197508089463338755712139071125991902693215973661930028448450385103122273355311348092939128080520068588044632386699928434564864149488494324979570108970432482649709709385823122259893581738671762590613463726090114937594767821131357670722796124812198806409327029769337128069939904184408118439782829084931092771554082222487576424328147019147307685847762608001927869519995852219003838801604018112706633046857091597917600738761138922426095069040790247979142771120385947421497195376441186219960912623851804194308990967449258771297835463687602686806950588325763066450477570763377599873172273577797410801419407063074382042861296410876617782333048114045615005808026722626381946848013346561483298704960576459208226052528391842158266940802799124056840639799970932094228809042184439195077040523469965305095057572897990150280351954052515070686146080206119994300192338995461653100122023985318600827756872863972455421030926248807927408977295431692629771935512043076988489464158418161972412973185661978990969066150923039594715495871588263366996389860901909426111707843543642208943861283415962215478359643399187218750125244214068009066352298608573839427333824236293785488099932668141133084000637877825242124938584520122381137615382587677904570979072690363763563186043112958554589205427428579061373133260202573256976192544589742637627599076869257357413595970099222285960957127642097098783198191472457471958682566138072870739443487154107393055352018507033506022452665790080789529718645874496937759279222591914976472557195087889436793625261584842839376943567378177590108903599891382030575842948747220225117747808679722087707667589996842225688154486643750217553387720593736251213418143767140879038827307531598918014263939800954669259016062772314222340183823740528258638103551739192596915157914266374909614693907960879750305102209503448402617856618841945623572581786696066719901251374429552726181932823882023619609681980971411628628958228018440068092084906284093369745407975156585468026533872987897390273852952321753584712859933280504770576048038119266175496201186133159999930288176398470491538232431863797239744388497455065252129429953489565596363173243377104375764672778849440855436166883634262956862759378234451544736056795512065751126768111431405212833699069394813106195503834194006095344985125343071958752290041966559578021296045283892607217401559216748277461786891076103634379773023250872397636084255618664051902271865402306066921855251178610704889984919768256430438344851616460727220846606236642711794934654822329675931375412658604643929029806335790475704108369200749508680361018947401833747119750917352458594845736459655983666597403435148292871410829362798908140035058604343924314709488843694279377361645558638438836496822437668729839393917605362977914323075142177491044169372754681263168055335579848464361925267755586057808919375715210244554811990755199380353203158837787115787515800899549041126974184411786473497745255366469782423309776602872167697975972727929720661514628713109869061710829698037196742474257530007464855723515997236853447888775112057714992966495270738621898804732434570738026993911003888189720706317494667432866232563695770849864412394064819535682661653949832830455555646680428805504004076632370253294231259289123750137498361102757763653848312168822551456613235247228150036089553378461412017223756419044493983107912530037691033924166414315652628058507704691975770573412563869307337156788768395974457542611409729068762179606316217930271692750027859901334650545377921535280306413871310639396421873492981242386520246305861864726897386699747887298368787308979684400426663523675877704814066868710803139376531581892400759005258466656071323138595588071441467485401924469785524477557232580473745476911353131331074067770768875844047268677731497225155810423548767757198427097774062715012690214857236819168763508491157310948034142092238997111506133713342021143760609757413109381925764613553669338800579276366325016748666927634112819353807936166182131315455415397063922928721217018157953771379633479711551759368503392451091617259074709629481693878091862261694654481181933266244326410151124151267795479932791389003675768743082986074509049131449484350424445318394252686708972999269616746169201648793198856163693145141456173979541590467096334813147781797987339871156279376024635218244654599211728054150481171797325055548327880390392298469245480137869839216247380020271213250388099884103758703631243791998521042535045064198011628251740775844129069650552128836888952321595589021326516527209711783074466007018407832751587281392072942792767821533528955343688361968184506022509824276413786612253083915363067022744920620457643603606634591821401965570657204332424693925505944686622503855981671909067449236274765361815597268018822257963940894723879832347016844760371865884216862860938153328969402695384342608929040089771200157579698084830896340094993510928399592854705324183642243997665215672945909630020407141312638829411880689587771310282918095631072791360609478870497250833504915997799756257693343440386896438934639244152612362917660149058269833376121112492238526611753003932290708503592402474701311470719044876827458636518020286205224158012816692314928942483633444327046967476863903692259494046459212066557774180490798043956704882620317924153775717579642773003640949239476033014009235498613438245422250297357440316466380794480715715169118561630230943207476471132398915715593453165294242840069002364060414880685426450102361964797896142863175968799712866438899844294479057236715130666547224512084009310746492229994271136240507204115421540550042039619604827677117451003053809273866760775252199536243687218467910472448116888200988328712920376558037971075787461547834298595400320723304716231487149447970489808158297229438535909350958151696480243468088554614041146563577661923128973146189481416562216536068922289386555160409233931439885331399305165036347600130959291638929245238031161949220400225454380754085218752778750859599829074634162555335022305153655153088227993467013568735439498145229071924759634855861390979959211718806002495020714362538851839793458043656048411895001146856411161263136551298384079045294662541730022004268325087429066793756409323894047238892753316716278883111525468777087507526701506511222722901608463283040071583690191371416955089512787241384262249967679541032818226885598388075647494459264514471784340002244749132886785120409463185374319445369752131996986236811223346506470974974194724566266965652939938855961451829754296831764414003538643496044044165765313522474569370265025592446559002538322130307447764436658781337233604345858798511173724174926916431591925435672189471868744627512638566155135912098140116965811499475029340284917194649637329903807551035911022874380942765332621351861095690486048874621032262082149686126976235058210895126368689637551155172573217042608735497293069995094041747205861444986332850125245175733422072946668842099136641329334589692357008045814300959489313985945324366285392539657865353589077109363049431046675419809075967679701028805663978601077217223045266143326016025715911658783792946718299305423823427327458838491337835275659387833314998853941667018413522158530805678225580357405971484693105638283789331852364096651517873790613483332261675527395099939881937142777624418406873683774143272514969795696500404068272635097542806053986654536910755901885542472334563638678309732367826227925932552973119102220022625482780157253321031736041414791432879138533462939537709915411942950666200152682709064071757647145461796932181453373482442770365103792183234597828473014585161423275485263361457823295174262381074823497782954568083904468221733035561765904197142013740765507472320286966866750151558091706897729849078029964075993256628652072295015664552017613109458548048644445467174171801288645829479826913210822829631226631642222711968523392832533109851195671003481097500367484752795848778748656490343857794677385873591611238272888296414621969380868179543685862505355286789785514395206236260417189937076853177436616041873463481965776522166733764128112938711958080363463954845061355429047402568156181878537173849001539518825092608341292618841899570371432131985419474942723200720372837229799096347139063991964449815270018491240986902555599527951259588760435282245278620485611933315729261673685413820340859518810155747880497025109637923973217140244789833988488242338170196517426249818578249766367138647442915253684614497804501251473165130588526445145727553307637728727922747387263455036390010716772892088682883232171532078147069498476723016785731212150627902266569294917319542765642079598742541295305824479736544501495293037339680599949581785424228934468399623162240792977229058235727070565885393922362996022678590405627797562666528730562376683444748099891706178259923440530113525157231855856060288249560273876113916691962752167226669095064889344891659956902786912638436002570491281005067983654543672349153134891431198390264886754666624044158769770124296070759977381355418198449261613840990849670621673467744974405214378184582639875332757853044799527771913753859094567344129236622322395267511818860163503046969862714241369787574795489621208950422752284883704885372157756652691257495932186475061371042223984300106005605473773359865693223325412123373516212299306549189057343323574416993396453162978954035485506679232450126554996210835701160154521464306413305898279322211595258441871304268421521078417817761353940305136478151123654636041900172220109309714804273443743134832718924343882442212800816121869686845596956423103694225511571005892132755633005216815413544689869209058835502538170240156987718380441639902585030649613726367188924753609076829761466090191522587360712033816740390178955043429810616705358011447246332700316153063902683627563700645164888786031731046470600046258755393619102888929394463195696690392111376242923541010108368866940790901593565998816869114577629347263655535811581403156134876227126608931011251230472184023989951388110109736607325808814331441982661052259533758533767775141280674214850978615695663414746985388009054942379887640422257724565667008899835604887828237011755837052289824839563776746965800971555196904670789310379615645451732882080585097362314514885565546668030834288480380815395618609610382996544944921885670954592075894791366874422418694832173638296806817757945829652253789487018272226920632837930539137313799010993645529360577749590843330259383933850197391683641155028744373359172975350508908560215534346398332325981331461242757813232360272207214409297108028195813145347538267574965162662708443042243159617063398496748258421709427963244912635598639716982177088478738201914465720214019064540823009143283946693105980109437130172327106394091414426594249290233599758355331158468935661495257640649236975183381768550882957419117660169190932063602551429851544144406558923490405654451647473305676346679964828309563091151474723429864012173943242915025314129983969939362142402386012726468689558337012657716799159354526269650280028776439590863741569178590129973478439381373628590252925784060515938691110511466777676198417862256435753047607668580650557698895370958528953881650146799753981736698983289561340145713333414680172138507244529800252818760260023616084286072372829784006713146621996453216127687113428261001890720879118281243652980343217708938455981359221044789948062988489292075993755901319776493971679280233345321352043135855015049290558692167490049265610898055979108890964604208821163129805645310783231686006573217822439505312493704717954344790088702863375285750241195421438680243110355432521149827396722975047660461041547327844966067926692670969611785855003543474869989552650819220096371867594784928494139628187657830028637428094663594940026778582658857652362049581449002166099745473520366767022052107608728877293629781418273779680597741586408352969612187960809418932364851735076401405139428322344884277535447944338689341640055593825847249027260214928834866463302116618466682003197713898745401561768889028136892902876189882090506351826755181304080079285073802171195327516490692937979352649200510464547762205856153405371430679456844959478851062746788472266454054418440887986814685554751697962423713339513976232941706390728737323719293896220963101686724776445245844339504575786905982399199493103293795152787302326786375930313407802302108854776079383712427389400036959489890254019423109863896087664360207225468964310004433203576858872769041663808837323090435800371371525101703729582037054482720964567887253340720479190305819133219988323566877874798886012713168446388520661517170176173180875282129453019249708201245523140546526865394098156407524741776991704258277264695388291138253421711617558778073863447186846805839970526438923361484243541158885887140907259402040274292895652404185182527435061955826360844975101371788993303535583972782710670118184939562701422636700583652704241881722321085706577414376058554016576917169512644752120078694243720897512306599129571709221277413788159976335585205049414036876166230767271892552120744656387458904136710910901363187229176575439751958298268832678364520444301534506656162472386078480084577741585870867311633815682888205614261509885703862725541132538001892094531184008964826580111611025124838644569461558370349898157506405564422519045946011642659309180845411612517489244148343447888982266424010301937123427559243797569927035359348824451092020737269230200897553626921054241956263061499679006766829004174948008678403235856290883998348544667046361193345321543873283891876262167617014677191780508424844790722502526176161616271750902197657088094163175999102610065811889821084208526376749864829834670344532597270273275647200533110406970024879596295073822103794469286948047007853605092237091162038035328332247245734320679637875341221960703063101643366958166245334426353379738771472155000231848719901967979340852465026485486559198476859929161506214981762040179459617612099002767098128366778688258130714291903876665121974398975527888773966711140909911897614008610185532629714466036939064135409893657510985120388058285152267654685431241359781773966604866289542597750713848251349521292162506241842159199039981070305876770150786069037726832896946905059799102583665429403497395153824108142595236554569550573448586964704482273016118645623564371661227443098159960167828991402917767815679145118519380528180222417547825939905321585879120250109773079712589649070032511507112113621234146191317956015394213677723553345945506648384797083162397383580765951903049185203538665689377369046148827293415624296517903800875167016428162734413270794018674585765805315521453882233418427665256529236068425198496521402601008985904677147171473239353240429677144593338253230190280351987607685665188066419614998611355451990754345459143995911553011182732899020866819044178857220448088377873337439601498732824255791004161994482341616052748652231798895800160715093090180037669866852304783822402121352790096041502013410471598631727194979074000577689293925480473744586520815667250910170510077567340069634247924360277119781168545415065636428626607854062815618432502621669418555141170030108988560980287602836023014663223320509582006048497480387191845675338339493882341724545966563271623725587036918413176803149432016265306384565129927266272373486479638957627854692275793773234148979954334296310041673712514204014030497699390253318606136290997236221397829103349032481785095861885527153292018928471266391373324800609403718376021715675608660200235526912683358981328645009289515993622701758087381555291800353748221203267398419151407559576828520234931930567010149161979722365763720385012591265569789283634159564857435388328591318143990273315140953441031675125637977184578524110329095765410064406104237361450364570550278301106283521130262185932243906210585817412542459146611412751204085234934645340149130755943065823283164024875602920074086178750282440367338791850140020763470769167857821783391367335142376606698705880274347876009110096600947612033375295525313622376965402864395295889955092631182307371470520591942944762292855367787208438186882735016716919620197382674888018562618103915561772465601101011270328729357306661950581092923180633446906606284348718563139913545862629744066561427003247941539864536506221284070657600532119517066227236552902408186327207569260347866547567824228753002567324362780369013225514641023774477066198284407558935233038011059016647952310009221945506812125850655222135241063281807565117664095697602169253930346234326500225082662984008849444706817106487336775972635045125148887259248517009376714248704552024558589395133512302671941491183911758078342912262113269501616961486848884996011128523419214631764417754369110645376011978213906244651133528642316062844119373939186640328877231093005436715435654623768196743371795746823927389349835427794500750188418279268054155295875717478025699651827405222484336168797629969832605911152424967185170890423819155109586877897624508483495083129162125456699514366567450694968606465608736131602489792395344464174860876809239221915270391387977231654654412675071996625292558070112950018704582414301375495247689963695651295397734916057078869200957082708443108393785498858052454038725891177765042435169128625742102606364663936685451936159177212092044126289006663376208483062836528308749589084239594160589407595413170429194556228992629101205495535171377381855214899794003547983301833217055026667851044787246134594351152452533434375670250639984168103851279992023199314863976902744915145825556003976493545006227756939646676420871912570445254538730510657946775459483701389114173776521141947912427217823954417760065306069466365015490323174760253773650871384464441973845200463993813019147113595322318391073567829355846223148363656723272996972210048255604340297851190818778370133046160808583974070200060575650258039990267313271773245199724342843025353174308273267816139085483540655811891899462830430935384696590411008874314597922138331903681924201375734679558761395282151373297077121357452520084116482671296289652697392582764496102441012005759847752716667099676194927709504839193952722671969221011972897372283104626945858263513105113467962400008687822331371351331987486196889405749964764037760318811496744437338080415181247610327594486870902243052984017442884996893284836612722917628317211983068168938845046593671615261794326145915802143269024274470933509540822303521488087428082527039145094687485645763067497196543519649581520918422641597432126387721797689017717793582959480449756049700620867742722597382018898284973354219899845928915405093173800487713418537837943800407898126132064534979445011285100307586338870704327166835312123540988358675425514743163451481219849122889703579129210353512661924445936093529069629958789582515487047225340707771721608544397067870036511986271199352079256370333056011613346680636835326658177560202093701651791998381293687374598714655129053225296370591876731599923064371091951199798610285998818617777018966901823707682829526252750448610206266696615285223170394666151205587198144595679610810413194541087630119447313987479007778442165591225386954906616938026986891873120546756522202007692396767392339145031615114274352031222263126666876562455323316318523545891680633567222916208515099959434918919038850638202418465353534754572548102760231741923033710839473797626324384984489537561382375881236834379045096473452124364006689655760251138453075462289329183932628731802815670915034577222074323404388058616725022365571405473848376923674866982155089170927701606864048061233223114896229400310688087292089937679390392934390272474380770729290060718291062371383161744547069663138872320753279533182642353772187553997666463442476304986012112434555452381503506505804473676207802224318469718634783131274056121895414508464823618277255097353298167928910464301626408108265653698918367712710862033979282600976950034840542915643851027924780555701969952084588358750548009921088419608312761968939876382875304101604989453013955175565920381470812908718877958249001157911281114887633158414956738603120799001427724300047671368386132519482604902763300895469890989567006499461653327940089701323291491420658091865267682925033195637791659083417175321978986638758385418917464909188542554716473850450593921038998371598401467938342989807744411302037062893711574666964273498012674439793765083902227224257930457173457966414035746629596168131486136398621236303671852011820606479423236569507845626805626956931581854714397016837597780512483517981814482612868953289669424188172957503689671829591453250358981345822693415045162211258678506204353909383376503035712903354946802769966803741892592443868626771272240736922178966498650483838255056033771260872722198030847307679744639593160224763222046134684081315281529910544162536121418764671440513155503699177832603742133316893390987498946407501558866953697256578780709020638583815422473304468080226988820867886015463609679302907034849953051651834770584943090143717863702093956612849017502693330485272647926018848275781647285681642916457787548653956388393452742986963767007565172529646342352377192452292433813344722908794784507375098968410179468090188202446127512241687919633425617891128923335804529668732887877178730929785686853271959348970492084902895727089679524089551543338889436661492501224927516287087786047219718701476533312116328303847756189882022115320062232918406950828496299133389304448457794187593236442594211467154446648312796559026906232432485097194057595245824475388814830698174905938295570244668606461666423865127664271406987463428689188366966922429851005412277703979841353620209118803126735803889085319899265108772597425220028935195384303450328523107463935804151437488501612976064974947798594846192177121781971232185349496409274691362971887343266465995550950524012707567790672022393770247271683220309065729979011434418518065005674044550811747950340405590378671922938131457165852775305650486345111563813114100514263454085021087306231991602424940918730884918494102187983198438213746529339412702846796257102584516316837129961368532796661430958864514552611059357461361373437894529688097420874172062772096111462061946734689159413235029192611985528639904446550453121109301465348085117431551539455072617561732776611081901736730866942795794183500655972377127770972254456373372868724499247233187126249951618555984294228380607543198639873018081604271767009214806550627399071149175835186258489289444706097921864303375978288348538475493880060435062405708068089829586057219808546087038008784706080204102365514436852461962988450494169792169768474775837118119272900756168989790833159062018351708645317093190970664641015011591549229459050411341682222580146406718982296553331645821831230966870308244993998896139095943170874332737041778932167900718973128953221165912474579822824602658122558381790585067740820463548837178863802144687362545765809897437361870242910970713670589000063340965918015715538657914911985547431854624156128186633055246283265234792731240058081497092725184817886532259579946109335732889105043335725031950901663402538280074932008998834400761146598727315283664886227307038340261293776411339294664024935876873648021454180365959393860751230998898543746861187846004230971873689776870096356007066498176262156458093883989991457611218236855337880412886141098670805022331490950797942893872996355745675341797800015763747606855578925755440162716244623553444425276579196062816877012664300538457402213287530731618721009186999546483315888470845435709986968658193613867076726394643145024138389755707798166183423475734902869610229798121459783129760290330356533920777642570271100212338732356769854759989009834855175359126030355502659944037714725817575356823356210889739868341505155719416591504409227124508541009667460733476526698401085214187516556627135095913958788316699919911640763104772562518194081447798453562233081867261730575210663507090731582623222883957906721691804895109373978735163148848080132644538926615104854200366201208172883825524293165511130424428361572040424027541259037531758588562036179421113380212825303895197921556522668202309301704366262843913165305213433780340478310310007758089630242830682022979202712815617124878447591480080257031431179859986133720246070268903942990194599701193983357618486638782187170417722601437763985551611305418184438407652482706061810703061916667067896844010621766787545825108628022733263364446580382250759064799390622054015985620579935315482136421742642838750219404980378237259268815430725015928049985179167187344270576654300255877470573120711736728518806763486729349319526967237953060936218740644411235508401843444040506850492897934503527087598695428440636883544318489690818675247214196357244465510297601353478078326732653146514313874294455128072941024526092834405666207822467683108218338797010124929030933681558913157924994820572116884173599605314369899983054532506054545172113653840349461331015773135832927417850667807128181302727224488725105276518202426150981413754807875493270743102221912076818343747212869313785565435346226304271156340820288947585576187743261548502708852327868510399640023241817111216425721903103763048561847543417351631305837938413802546710464427195483997900599986147673042115418708655932105958118969480046253610616824979081165248229316055589699527658913746181207122068509671824613152278021071453829650594218238582211355356759525997024895442396364036374323579725710013559517522598192693512595687923798130758238396431296658393086742213987338641424145155594501173371895555769335521613612644910690305411443934123102947672776299675924019182804984929384126314873293744916737821399361944741728734771270562934209478926955618133631844056040327311823103388570739861227876204986441555206873460239429488291004971031080662742719944876562354093002321652119809272237373618100848840198720353229303469999182309327200138899620180406123823883928870295434914849332617052726841827832550736012091151168993243114202619500535932728697790310176022282538986461371086528521530284784800631086964354873009211736722423762329170509299047486864461261950063345103494006669169561657553194770599081495503819972632152585372163121416557537428105020507351657456626573062175075341879476585690137584141640248200061379504281200989465483700209045126079284421655187550014524037395192194755605331129663402054347113582300947604468598571679389366349881390940466522717662515506255164401281856436260441625981146726042156232752478603587363206355287531644191358200684642631452233220259307147806243478843775897727873925984155816814617218330792209721729573663462594741437019335017812877086350595630466660021277501060563469276457650027826588432436580321537180776856852046278499338516165249386040598634998520448556553953266792425083735485141035045426316944604804005298073604350677463125428659789256743287875396834330819785771244190155395701425209123792853782829020846797604086887612302907199597834561273463658943129436838968127090503405592324355438979063846276993384244497924099703624954833576663813243755444919196729190234551812722146557331329423274120785936910779527816452613096860653564254551395643715953395237806171107017537525374900376896818570880082336937196066274167606219028823726234129836478644963911420455971093812515556048526526953134747176776694792663719954381975126979341189702339171249101228393157300828699606504844097796291119452880737819685060846882267310396941052222195625862740456505905004197551424115484323163437015625007522573683129719632808958183685995226462256795342671531015933127809521093212642186323410540758155216617543023488556184579963503285695447069269284357369350979742519987308488236435684339780034852911796225543316291706235187683852065131921451773248615128762330679456511429663317885815992272985989480375493539383828569910521428785364503937677320493881492482185634273548544957591307152459288870139323275836223616970656140985725036223297400979989916685822205871058157755587948553193429792334114737362126487907485808065381136727418931140629906911381768545077775700909167073051108788483290505433827123694576284054942951284881040036875880683744559321672254460062670408787489199628816584670472814811376585052762973923658318443233171290662891186887542897661745482518220269016096012480058101291178001824072779323487604444937113941222784418422335478611302644061647037445299555477330553449109047089347640353405380967179754968578615831563331912335310643249764745266739767633930380960375114958992529511642068769804456490160160293424202883412694725173170222083657462933816414824157739121582093668077398636838835004622937378216716802384633722132179571586775838759521631793686504532028688147217938428631341948703635504113444804904235546676670813244599695126276016744840298930223202512070057380106814895880868218597041650309622365436408346225725573755916779666189743479754682763718911079380696035705205212828313176879167952109271855684771142172937224947584757955679272723539815012217902157316649046976305166486504657225638669144668388065446935438680395474120406014703310238741063605365926888817242671604104049057704271401430556372228838666136369463517830078455268451644232874747869145917663272229820231345227961587968491435613742139635549453477811347038403468070928716135945600225262919640728148767596489713795564157323954331341581007839666473906367949498844653796915097096259448036118784835069985851791726251736951526732438720231290267755296032399115674058697992225244221887705599760807602969612919087012881888663499658636665071266705686934210149147364313772040494958815516206077295135514125586015606533262320478134735662891744905944582059614665889628697331648434851210026354534227218101083143787573469507797902784501510537521707179339735831839554630849798468689944152355972870241228016583397442163212931787699794367448735817612449687480149830668185311055705842117766144258255596916059074525324882468335106035180349349492873093521679871581523497385282873495189794478872512260761758278310300683332244941552207737176335810537575622134924585671068653207079260508570830260218979513257186334171224316725376665838367804506537201716623023350475867714766035525645035303117443916759525261877302059739677783217465112072751488121743242722905946153093255241794156867068071691187380333108522716986879816526717489955355081465600149020487778085671004337422969640017551777506816832971077834903144426503891594889474348762299731497805952167777513958497756345361276381671826824872732800812497477853454410653620218073234189532880513025190385885680593180813762150710329556150892029399024416119079973651988395171520805327380760718751981484277402264997889281954779796890891392690293922591586159860659197589015512410269023137537366391998871270878887997883375484626450153152188561248946677098258532255973650206227934694813937962052419341261840087403352813911291760191086299173983681315880383096417509476445629387582613380792742211022856791926550070979691739545310622338404206028748705351616603817164755960513377768362902154967138864740551492189333941567299544651164337924303025810595592894216368813475108794805741519056613972146247920851666096692444924974095573090964557480534958140321492185190594115136961430508495835589274733566268555705005171063637530148463235950947493475071265188880288445008561979183092556904961233714432166119002420584191044251337743284323550028580194534284564025061943513812968618278117927237729441097540663991054404735244682389338386481380162658838414663619075138703174471275878737550516375944519816424437091066922013742017157932058105344430752451921730042547780959659190481508858453750418780390499332779132982417980302267109691067924826239885635769489411092954691956986707187349883301808582219979017340783493018619314061363350688917275233777948108014825480755310235003463740995859817897228514785200052483645024427620592993906909115326312087201190714136376803862629218769204555220780691826657500256181707834782660451886991172181836506635306519220291868260393408833333417620022223067694205755068300951183452382121812205679115929407072095808439437215326318636242041443293104050595738239731427799285690588675411017583209804840245040223251613355767343397551853778497304633469739207402021102346793480887738167240903852655214542584306021737919568948459545447016057022349340613984354682809045502690669513039046176626355306017253899485953126058754191077203367786564642794594094118540949517589217112975059786533185158297437543347826463478787282811881116164342126098549698946029576507926043203656046732624726693104320906516282820169371790216768315644955018167740419819763360344186840282122724541583161749092433458299268311120848077924565314040490740019721425782467921302731334453954464303565750821262472446480927737325859205532355231661024579843544363776697195073430811922802233754743722307005701506155456449685354721067338767531458915745001938746814094595580153355099074675813236138869519713107655900868142909911684921602443837660088749832640083484745127992647747555857528259932967523895106483678318174592747022422546820523279282581370448584010149204292561689616113177650136544344549351657510055967845754181696689538223087565680304957748333142500031976976157296239183321684633530757094362025421301012708760314538083949231351443530304683939760372410755088807231905851705961807108799923464356813484686954547398769519531295487412360008573935903085735880963783674012308905834339730359593981731936447850026385364207358375442458733992238298530405660998688624915316072662435851013241583773737176929274559687225572485941493923763781584922837047598134947530079690348463826053375939608584955347972604362544824486269574472714503799428836840119003323727675564851899357389801821085222057649606795386357460918860872336895796990975468967767099350888295358625522484261603907736732754270123211620551520218159930078728006223555917941049781916786404051828687293170028951608940438959121953116126587286388944678008005894381143405538900541733189452694653869677786658807214767995311061466216777043553543840979552493391314346790405535228145601870678221414582488064392449091608096070403246505641031097578555006388403719139904094528954861012357094217917276477547542057830033714667771833405498127748417843316738961456783258575518760011076351752810975085810738987322872464820068413642017989658369248302870080328529377749726195220667395685998428727547044561651608330669528637330814160838111744231822419016593101788966561676370753385642232619518843381834971791411583534146982109673518194075369074880706744768514856099859897533391701201457844610950962754012978586139888783979485415104607731601786079604996112471283752651268269089754484400146342553105050531862406386621743254692060226388971619359109475549304473062788471987843398848142172202477844782067074451808902960062994033216978505117322968002605582668937226678087025126588451405475386530507560632509445187805578437559258726188347472209639298102118379384516505796777847179161198085801205468053655999489863976742109999493440553340323908706459153191750527747541270586741213505492689031740924237640157183697632932988255603356628369093700695004001991732128165338936906229713803078170818333870001375030038319153457945946416303019566228861415683086468390894486409631896015844634813072473976042565526160979649169013512756876713390759496270529185050635686900276039000773797136997049929203089804281478100178557285074583941631926513471221506393815872981874412280755289575297802779965292242618220678996311698880038531558345355137177410088608230527690395789809753313119938781324824099220196929899037002203488276833980193439903000472884570449181287665918055539710493646990955547452106915912930193067642979359745099888349898524126561458619861280057126126180785259093366413247771207658313937922005468351883903855829820147283233531764561217148888435050909806177146356653045117054134268498102774202768898451150513036016882493143662288307405818793698081174965650560998833577490688892115496683525342737614073790503583278568914786954111964124827687160047015298242744061694072212966247220556296140782542946865252791366709465752510899722240538697094059253523606885752867115596684128563757606455204783056712194163998800352783020487469553094413992751786270844097749802553020722604476425868222028223182153457302612861373188109952417416931811042832810664088982972665784047381225154903218666000518031604140088159092179985101659840906768929465695946972216580336382694722035876373401437527581484507641963595583731154673935221896542467906083952439516897907058568093632671512182299354548897855771168162481664260795196034355109125034552428079407911994659569877549607567687906439656733351350886328359184017751431385045792708062810338596173081902595041720405062399480295146843056174182183711546967264494106575909701835029928477910410049853949008740661564687645382596389960134088765601333184716361798511508468316736427605821473029583144846320764617033172216153481667194707344238541803431848556607802388293503433773405717953551117287177296626791958129484864482982502388813450451824710376846266329165875480592386875978036669545748889976056490210285702028418153520083721311473250065938664743451307067988252740256633636854309502530986900015708241830690135044743849567294228343861755780977680886798879250561212083715074223741124753729490985668398931649010238647311954263789161488267986075487306437138219640399670930270793137373503852573126534001565105108880187586088956111260799886679883628133668679953396300692996462528141436581197176364463331779404064472428976902033061858153663999540658197157654015457872717758623322131565051032108339134666069623397532965459445702744970408958389765253389071953941089117576091786533301739962094144936946193885338721912555550927439737289811399315602658051155299923456653199569679630943114569774203774058369127417707083291682106288335917173280330962372928457004378585255639003988099355489489094693453353267756772018457068325262348046429322933550641747744570406391546026568970629595102521093695657843851246060079610510768551659951179811424603947036129626293285070325042385385660483746444436404764656996748893861043614267999142075054692249311149403366125913533293194043282254075171412871132427393698722682333266941938094813072596787653004813838807883833750321743518251729229720666299634393563994667118145737089123311478128662510931205720721013104875255118227181351479436614242333814598364427032743257139257794030994767112245921801332943284168786191808243069845035184019407467540640519019136694413171973226578811100289756749015054993915354206228484195362411131572709829758101388171628818970847626002736826253461536081730247496913167193760947009414497912745622566035160525339915568412259267058278033185432777397885996913690627205716971555937739874076406432777791421772346854362635608256861310441601332778357153119277102208150943742870053928683857107898216838783232032479752043423017942067285827876029399515187598675620096833401968678459794808441233019084017482771585500119915335993422721840181944701502434061032462492254975975273214804320686631383312251114095467067556859728110933726545009772606019708160086985699997641703419235696878290098657625984503830166629365770914958948555025068780007174231704600693100969472386268098163263507152369868004637592567572355470587724649769189180297728110612861620895314378398330164639490052484060857776685138900866187983628139433995611373764625682809872368327676951609911024913681501342736395600462435565344066507926651669536069666317655102199700405305186478447399741185555156789420845216395299125681437344994007222173579393364380334364207043125259837306648192881607953217245013977134013625026363023782828165986459600412382358113796654387441913929881433786028108889651551183343885769680887860768889539162092771507803688965040053015869964372808070363567742010794775230221172032989757505367308124911506070304869392632598588075040204256904661037373275556549516899134414522438972000237465147145789528340583671963264150822263047347093716300913082238410403768461414328573644588461346012316473302546276126385134413817131467616837203612899259339755231965962633501715724365452946919279421334983812395613804082685094304068489386822785960887472198932366128190706192955165493336755068142252530118157665457897414477909685410655037613578328077814699269067029159078488322260679319960413570930896661682369760291607825952023040008526843175744788439478500187980026816078353570636127468182518535749157880548278156957549402651612128599094331617349526624704386342196914120384030083320135436610983512616048731170008134376610014890972515187558856048401110241926102277391816328861712060837241695627680846535310934758663472634037530628754283101225647915114661246645753827572530289275944187354812750039916034142638479769247544347895144915879614891902538296585888133819794617143123408746749044124458471919071380175124609321023348584405070873465094871824044103148933171744911743043250948158194060386558674544737470709677321140591353288123131562954451561222079728760303963309023565424258561052442795891216576724553441618448416421777257658636186381454468320238055440481598756322365810328505686275435744716326870700770903220504483833988367845896531800959705499924395557109227835815393374546122608013389103471338541676079869020376516410485880162275352234126249309807343273284364778966218144304289049283558693002409567178419122604974403325439170552836814020330949408665610575418545460350232516126482250870840232609184718608668230911596660346750521986171677356665664763394635113768457089437693918219586438067510087671594904534783981272783064209584373805937414370317208482250612168495795135622748560625895642281664986782689361835127986184380513114093716436595298962483054973978151925812235852291440209160542228722079387670309001764723644945644662145546360820423724669620305230067458272004534704134817004161967250085975725750990438204440812917378289155712431135230284044849017378021050879316014119778845875348082050232290105252812209926261936886912748161032287370225558687998174989020276427065667456222559990927397517743673433533574718860523101947211805658403367418418831205537283463501070974940501117570015893756731200049110995843255599085032268837413639682585346083614241497579840821130184270607483652153583022499290475827704681929349528697017433437658959101772712060307378167554502802836074252493698784750841629324711565625641903585468561547241032130446728694327919759103280970756323938139275440269310953273149450675138148819588881049384003314645723824211773976395941923232671391375077590312752026198826022637365790316056505265280291104868819715677287736571839426782333413711051615643460531638311704519525967453160815908493729853329169534600070472050080505398510333219046788890942408456952909343592153970097021408634422795253298033884394975176208545818375072006546542643367234325347069803223055466536797153589166624718442747663737554683894458005474006169910773569202489913725489676942272502170246546089291445936928801350987356759829381132078038265304920148190680173235245897806228723611229737827159604363385341678020274575325293365095319393184597544203535566064272595902026396790352125550057987334244555620940308659961909825920245518384665152209115407310548480160555202839561105196605057329115308127796454055949390059893165574588037600433924711675295899428778652516807751482302841831388309727570353438013239231026534135396766387405830821609177753492748267691325964307069093107068198542621879889498229421267690197312824351446336630814641705001588054331264731368948156033260280416897804976442381002756434590738780994900077610943013353370261869692498188360576339864241814667073159063552525577424270733891107410364441830593521972238833880553759234888975471618274047886977713763529543340194195124180337535064060110703404714947558113488951207421582533705559650218392526868129674444211870466389721985919246897730579801520107509708967100741486154939321495391466087255160231532585692108441169780061772808924974368809360123484056607035822217304961758695204962880301026825032760940677691603552303210014707238681045066116919600295511215399000680923930426391905225122799725584762499509216929891362906172598273657173544115364733163299782011438951658578722632251771897373077411277332457635761373837570311931073594795627287810615900897574037245235255762112822533295806224157886375063491087890979470077610627771408289234952219480624951760626727258044997796092575021155453357216160581317485286817762280021222889897989716527376278505450336864038387021482283796965487027393086584206167611144807225208495758863188630132216098120881888448696688539874697177493198371061270254178638843477192376449569182640404209270673215394910533871112534527027550830309543564799046696093929073874113400890722482168602054462016058915353070003352569721010193897437907952709812209218515081416697854837931068945649493078939688833941012157153687314843072342429746411902584718846523684680803537704072463638532927070737484917007498609017548258082702383813323921676519477795722066634310053888222585685282599574475127161519700662886378672258782214203601858834757013715528964923904661906938995862578801044636472160249483969490757025780025360882448512289949469223010258804825176585941681187309776949344856327277280488467164013604849388887257379522965832818910620385403030041526430404485752135175619378164492762146692087619843513524493324952537760235474633303970133603063263036937336444496259481594432438067432867044646882795230630946222594940129946744120913872585013726492616990271680728596396409948028124132199036620007609309875564704837297038148882660396254123654814068635315444251840542391630892101907865710517247818302472682645425733266979323367353351985036206073519593984697035684301068338402924680544470623067464222782808127837703409384058686700685904064372659729481912423119365181148953231843502136284177891918219873646271866682730028343217348106475893637362943229345707830294282200309416167166051755303776691163776698510377276181505909959281484407497672801573830581426805884834718314873630234819075490845073453426069230598102010320133557471074734905366056214521185999586801702512045634918902795529912806895689224532478245484346061170780908678634173006915742972260794980760293001167146092826138239109373587830086259146637863148327556498540023540607688545912340890935422058295875914752948217524610815324367308691131884112804861121925894839645871237862035735154394722278920732730216205799237599143707177407903020235689871621221690965688194539631989305544242882309585189889235488734142956128371815685207715632358410749356977795279661526082296817048197803942541172051032427969040046134094965505748225808622998048525368761744429078322263176069140378692010221925382355027761271981850474076448296388469187078060198383756780336813125276801201805098995482848324452560799822244783557762891688424727000659713693545176743440799029206413186716848196757457957479961934725630800978708374860150337133690206808684180087563066296680957857579702164563038728372549581353837546587786217354393279619165954450758756982267888976686332902162458184736063375800513900838691237077225002875236802400899687758235537685118934169687754813041971525097686477481852287221103190152579003848255755350503693113335504066958208197569809718548863037232980936178816022049738865571439473210721668189504559212849662700805608561760018520201376271198311122769506845657397486128909857788005057197745920095546499111420279645337778087638541822942165718379036085776739551538134003202328387415735841448930581230959019751492910121492502188073594496433875854623024103274304692349217499220509113041041874338334101896353739712879476154411243003569324607410585980105799465048307731047632699927227619983946375664684308136560465349685495934106780829018309122380522159316295062664447111976763945005164056955234100692404567169855070045105766237188260717680450460629579987481822166816554164926180826216229131521284692853096941072049182338331625358739334230917017874292427382078733185545634862530925910318867691602243912648356136091426575804540798454442006202668069491349319027343042054047749863150825955510621373636493190518244173142318128022037891132655278965616645756954482744418776236394352654609678087409315428743726768651663015642463830479132644849365535341366780093894799633701133779898638455508003693647578445376428138519053720989439087064748507858295288753483516364415686139573213737167709181509404206260445227000483866832431184402217919577098609856521739291008309959716785799341575762349913683629420619352675969382285971376678286079231562545355901974768580799268108583592404316045263481426601191136617998627189362511539505340256217253493189573560261374075258444809801687981205057491948602442952705048120603074425056946857808256260265473052247356216651088894490565209058486880852231772771810005793105967579652477039868268777457588707169812817821373185882814204802890397378436236364284177360998230682324080638673068305014425073254139504090539817070090742319347160458652749403046252547810933288602405825782550112587406157205631980132763472628715677490048752635064305841758278197641679685206756381523155002369609089067828119390312767460200023077962221595383568227538568244177016367920357335869993699570277811242979029407990054893496508267789575510820827981384905864988987119548396437735511726653328817345174748790451432509279744417233628611083867944014050574074670815955522771659273694180315451138255539503337712480004946443051459405752687108751773319867535499301200477375252532377308709711845451754641385945881361699838824962613257113114471303432816508830554555407143086005988186263321381287847524184779561326683929734027498789411682767766851015621139181979565283484105101915891235633813690088715973175171129938136844860514894211342393429824567060543685116944483222886931100184666057554582961590930037469465509846265454123528080338543550193646609952361513412140579539604832040974701573708229414281527003849744203937395004359248105763408660837592747888809485698913130095696833003627744263352590694171027821247684886767010490706302413921762276198582854470756262691755135458110806555936568723609486050002666060356113545256652167422477986148181433762242124341976986090115426105497856344790168925411090403374142337081104392463416010673201176880858584330006670650311308370375896890886107083663997006233440774472711887280799467955340134453278138424413413073046946021327596613271314149217690029914848140287194779864313708653182872573055975070504824945706961085929864407483192961024477300076041679818236470357358148291636652102021605928414483143851407448915189446375702742874014591054770740000470860434572806399479393267779342419968615794212973585789194454183031508786347700052578724667167424189950145492947917960851287421529393193992085709683759032070512254673886614009952801961578320942862636937515514497470511046897144388877852458725145085093897804349958481492265449369695894254874581037436075954176070030333533753718429938393353692134802259030558162165908522229959468342824229558057550394896337051782108144749686161476834841704244538107297761759744424786416352904002702493511241473292345009725632739610192183662320940650041372941851897057793302278497236776320743869196258372883894727343850889679585178150753273135679969049248630564629363560499025646102292616698003818401959647291944629022715263029553336344384873631973955574947681023410850631073059531643272968160159407743379105014721332737601236282541094217839585766999833218585254901880593950389900916591665230737160915953129723628370837138766341724257444769615888450403346942902972127459260543494243332845330563741276109470934498720021493557746769368330490582895145565402790344247908150130139859931606176909578138791562323893063472739950065713889757363359965848729126533787253782253311301127402509031363259331223076874579220754449317808593612333947330617506095847016083306946120541203993689059268613819048692539692229396452810685452665636210292987593857841707228597438217440147257462268576723978626338742327792631725384561225758924959045816569293146255887574278383687689313819213089137469034655948563931785592550475185947766984815180917732217856006489489053226786575569875836280419898850375306780383979261357039772991932245576214522127443723513906419344037848967656216236625855325983595660786764449712029154344438263315831159757439671918303700009413240408141761677166364569348768284150208129229428668648180127171665159819816175247551113274183140667919032505700286174965507844655032749690437923433851992590287745155362389120062930611785608292448175506716633742620595732944774707494264498899780343627896594759694847098521843366440488174378137275371206709910703676970796241832653134441745417212684846355517950570841493832818781679438226205965836710406876273416491129230308075029437481116449941657632592388260175722241474008388294441710807174678147130767471619499661709069819311329442143466690748757321446368677271564838072077435724005520145825806044235519130570065969482931907580680043740080349651375710180180027933528153398993764976795973522756257931148744889803769562870987780599713008679370811229752251125207634030679677075379939007197543397349086121566804855912287656187391929066170031500410657794276297863179694578997592330182612226820420266995661244541428116248371545096306726269678576826189763719640679968270464404584648596819884540718471377382554741755472850014957567267126381937074726847444443763443639274582236274003206819050623706959047956280543989926907670911451450432726693086341128122705699114071346136729585247283178450907683338898861600680914088289065372277377266935734964764870527124597178665264285287701808246990680844835343724897899687779677538523264528670148024656097287711443458661865382614051836576007648143509620459460183910569440554663343053286167085935583872782479839791839602002270706321650687506062908955192389872785993662840430132053844822462603122860522879905819208222738988681994928180928824943293012174857872868419709504692452150713134080924413320783447245214322514699034105332359953979018821946484878985578917121018108498524266815331152891828153583655379963920124043763643019225705230019473459043918366639946592493846021359639102545169155929822754821155175075184250863217289530558874517228006959584697968231899697214163570818134545960535129484144253858206132402579117800396756860608114739309738623831605241750894975147364437793245078525170610954999102247674514688326104002375068905204319128876413037676130576239390332678916765017929610597405742344463872346940112406900919624484864688177832037005586444921810606902073904992664981684172176934419888532206488555192819803495385603158776834782915763993356943253942409716526540257381067567085159177445574393962736339788862094865049242631213822276573140550299118498637349590324123335503550663983294685258717665205573197653754859149625820454579486423989799245476819169049285502557649393435633899646515801917548051652970918869554692115542824328068294839313539467744638063375101224445447662073118237808858353270249104462292321294479953483469609903916608955844862966322428521859781865952456276339211550769721050512782168701515259928792679975414472753111511303316148421887904238964482133586031115181007305135355953946816744118735019266437884774406148506183485428065809161514923393285791418696640335702374938924351671928961869849604517542803539491277544918913655362414016956774558193146499587620277361515129144835528111255561484672983642773312385858958601873624297509739884337249918099122531982905824706396503926030262076008239060738979287782535126370283158214705419951484673403820790891786034789300966595624121023628781477760817158609539637067909248376955758639048112828501807635713823650822673395762157785149610306609566499870957629074986761883406568652525746694254689104044331212618259183285629038531593074509785972871586139428657732595178908028277209964495561576504635013296055329455222945662565564674650699636108818516385481085442015555796149146010281602550710760421599319852925171060151249951652657588763457296892121534119052223114913211726110704032374406209157285281751211528714748938387183341172306427349866298896486466943818674273087399134048360528741099650061051817992943499055125902218571076477229818370999714129903079084883388586501732836669914804843753334285235133210997090624126285643760748795663278512490064689868060596395811824723835802036589808026765900794070086296894332572522443552024362966794801837457686515005985582846821022061923789890642204779252552039710311664313177302380285097560597509496598457317414741402066745076434115489983854623053268611068794548161988459660798496511378032034080710009209056204618247720938056063082441682759276973361912083691009605731413033412950400198481530471508663078774581839741915514543375418393695118309807637679574888704891975117673893222923204249081346772181556007976602804343037209918928175290182727148475034670756337147720730230086058995156727462013103690523426409632542254276073236410098557810730046345817761864965407467846552542886759406356337223827430427179958094157290885659574477915236167844184379878014777396617026366878482435217677032639636235317148270475231811130505764621068480713550411424097943248928343853377838509470361223970831487920700033415623469634434987042065739391203761551135890460556086132240174924151293953493301211038802527495295516907463777345338694079021090655164591182476278189571416705918279832389130042130127673445567002405525985207063338855059697250792488280186129888708945360076366074192148299950044204894897486951072391576179690331056847416013137269078751974163118230522546866236216743921709265092374016858611296625996158439760782126600613497346006121951280061830838681845752128200873792094161657304017714194473407668173830371367378534161954217543554310697998461440813145573152649932477478330183080283853568923842045244274161468216778315088631515991840389938172183824515677486415129549262612234830380527608525585020417061521575084201395359779251410600632242705452054575785407094857628564613889945577189441477335867732888965087407181264276062693362701292491799644331949299618591672472615492069522842682993246616286891309664660316015124187340335087037266035988601393343667069280402843385288847396148685895758186106053954244860795197169368134936003488766248411204425151726785837015875174817679902294616421503055975353016741626330544036278868563358455322662161535128655031419775812070915304416830169277092851976142187789328541554732860278431885962460743141924910764998715095044633423897897558017892979930316068993221709884948368936307789652046838798171273387742023938388475992850621475688917863172184492429819565360279115463799722422056660089019923558866347916972827331730780080821130535571212710538225787373738470287248154736332501023314372871590701688625576005304340227477648615187695236116326512489947984823389381018037563447172760803195938988749162225919066099620655800941111462375985467275647699308735771467666029882498938052822743397513224335501633166882816132229484348986107114099215224519016399702132685656348049141331120122333717451695690084341210834018066595755252455435740292391545387464554801228787733064595795812391835475424461991871201591475181458713154926452418464668689666611870375174627915889987700748427010486800580570494980055923743625907046418460689427382623277796464741984362584114228225738846820009329066977572834703529037843927016328061757498226487242616577929214694014639825844588946338438359864287823432921128743580803563260484873711514448316089684375423888455693211525879875220108283818420337885282828217597579722359308898185890513726266416440224905770938169528825934346554218713811618386386764818938517219246456329534943839494121626027556972293229644617994724656767053889989297671682255928611105488628156693100679062645909715834987747840075487568001931000943762664217852600190042772195601209856836832713221222020859525309012568259385732778746379112759272571278605268974856411015050900888871866729333221677300569009591002247852049332522754307221574598588547278500839100940822531154395306986901902371189907866292122594644832714787290215263945765408238195447272575963172595288546599544035619179785288067598373660191924901327023845737561757597089783013058473528120088564421818474279432933704143836722742473295155647724877638385268429007673609678899605330208839893417224783707788660328225938419729066190329768523820639839253333743163126881154131044792013270957546467008384682129696170404253539169287962304383513256718198160996001052031818545928629914780088386832108707312842654391054637184870859251861423881234179119258196436769363504992918313017263752071358579394397271267017682859042056978171033065247400281054340146786188920443166326955299873835335720490807757108416658532774503877515050094382860024854878969444522032864294450581593237434931900765100442760042985460357205799507627815120635971027009083034568688708873393227611482470473258083898239540131744242917601104941641461979533047660897148453741469307076090473660320547828918287433865777557376583602972349430308909319952561706589394874066609742388662355964003428618916907619140610425603515187411104166172634160924466674718612205048049042794801710481360011551351140528141382966912375695800100170470452804799899828909396611931070634307392945471570943983881298696720276877619621282431540340362311960246196548827667598911103980836821197964146724409922268584765304606438853813883032178841834229709590705036420009094977209930874302621497033229754923929755160875892553675091385175263149296075896314188497688389537277798543516805129532467223315930374341213040287637336003418766251832908595312995507754464736192894712571432441806355496644427924942832473137460241079675924340866595988221608347266107036820891941854927483269165066188615716188843260981975847277239572754223180719110999720801950537491940215718700604052296778839726269787188761431223834965547192964328311358321973412508379765884289551251081242722036222275220099818806108302413510506962053785959975625572326548638397362597108056105756796835933163269447320649728438783599134622118583326391475473752755369101973544913839792121482823766963980490999188353958279802879339923246440360797834003750795110067193218311687592530847148218843605740031647863175145111605147487894442349599525011627022366299893274086497942997069635568775521569529172439595604042769255026747873398440630022073323774138089487150792835593656682304171252549074833627706349496706869106151768504417451771991559051567847774389895795720508078744777301589980818777776768030654898243994315521626657746708657776569396042214180143164419371709568205674492620633113660087706866915954527590842300133134490246425192194922742427610794011387996710423732219640524924023774225289449736327845794686252875191759990008879674206779087225264012782410317707585021010508866033903320829052528323212535513296072156334087859397913858110844993100785472136171032522752102899637375803860801355134923219989853974847059913085036100124734893979071311566245868054853470310205668144464011282115214419054220905353944295859394279586059903737114839952183289862141908215866925143547919590309939979373443890545978905235792168271923093177232646005514945215053322542179202834026887053260796090301731639555314849667627346658517557226455192128591282619557722109657202532840072617018287715799709421275127205382337782351128993313624543446013305977991552634219227959846843895060653848108473671350795167491759581209070109987857199769010712701293707940080417402580750933599071459522445670334647548731090794989667713440748511723514134971334506944721406545231432319885563756217284624603829662862312633040991121248424796076725772969004329068098078534411966630368572047468100963805644665866970604134953397847040018308007239433213786923028556622771925323565128366546826397733711760129355264890604677500753989370192172088947243156712495932141592644152385737720844092039467080387031591698663528586080044154272835075832823925986650152726327678879669640203403189440534527532599230175076142104850983110931764949498564843620111967037140304948535669518242481819300160904827707775235339636315134843923363250641176902917400982067986241647163700711712943249539981068422278930702473317434419219335465902953662416049894323074766014248314448587223377962671615817853743264830573526223618342568389645101227662868309119579010195426995487681648161061079604483740409666498312671483028002098472443397756828973026967900708490901563382786930304868209351981561417829834566762195993940883305143036202522988881662597089818773119643935091843858045948149137211947935665455575608949301392847617237904423234873176820457348351603008838672847103648994328143708006684450482406052953320275825873121593407253413329949223896034418597717039408184832349307091024432573773080517930430276719422216564128770405317560353889872962972825269698534239821700270623345837515287231517535343309390487015992094267986883648042073987061446689116717088016450685072013118746980257558244060732536137135918992419512147306857495953301251396493006936658533283632274450735960502291863845549271072363476214521850232311623917465073778701775943822683603682714547016412768115578480151179239882053556866877368922905953641743837463657666937326814998341708249020554363710238383807871713352436481485402425955865937103396414907135408701372247487102190892220741578643241187442342426845144395427020383686412895000787504653009241576834860023690073991030095071495926519809222785525652520731524728266466879166466249067837260966463882994209523394855743553844011629328891773278667349087235167622897590658879985693609523178388951876150327332202928401444515534948433386963998833049541662861564564417884379917085363008729694853419895990493879625821766423540010847932061057301958130079646915634777502046383481946249773649888237061833760076658066725837577884458420580474402165570604092998150449977532232029352913733848577724630852776815235695673731182307726353943995368943649110146237680493532166386144433924827952419963586160945051259409684005064777128885062956508781637478530002649635492419358083378907404502494732989414553109576240562977259514720673615594242299283802087464500653005471415717314835468460073775958096522205009195293700452264789219574576531022867589886158876961268580761417464579819665876471052958969025991386183944497759799669979297264830113499311857839282320779725110801480856940411553972719279871760786449464980199797131954391942464433075718998847545503668399445775174425627157625989294945021829955737678878882843792817659775390563845864647519098252574300009858094453110057307649858393655491324705360266747296915164244349614633699414860766457746074496528561944560626118804558440764282657626067142696208756069887893108221073590262965594566876449188946423385905209828982083771462907179020501086764638524493304310434894606280144358501278382357688131355399690123359873249552199731915832971413351081003714030362336723602902301842274939021330721965061709668599776291711164631844524624669423582008040379934594841055623087233820788959648817015576684239116874284301212372672016715222788542897292300650679529458802962996926229982441350615136860200268749552956089064348333946520918804148895367204275851516289671899789836438798671232095462946459245999723116344942695922496447235917695286181831061915212766273940268479381456791440063481257551374253794393746387216871456615510793710722735461405392353440018362478166243583163262203048219762513213269886697003792084395969668248126885757046389198624020170841806982860733343767688225606936187926435766675503979961280818248280280257665001376089830443706912906837545133289438668766071928672211704740746411755059633977811611957068813663045931267264832016725949997229328814288251567744343194509038371444515018591335236357841888739511697763259908933970379170074870467925265926875525969207824108274639482486822366632993868142288476660357656161228480683355514588487353490898248479436628305224123951144497521286368785823275127038887504929130216406936625090317405038990810297774891568959003643567310483914799150393931852402393788794110288983656442015400893920646700299139504871768002583350904154037619640493587355249637174811519182111086267751071582748184926244086675983388548017222556922934733834939488483308953806871637168208233657131581691321566316608666398853667902268136823638156435670599044925543175970206284093951280391443526283632521939099388267848384345743419807638306542703596149049116968396090220402430600940949044570025359342810219860266115913201473577091321688208066157127840009308968136268828240393534800523817130448699160922703463250055977582635372613622946140237244346993177281607216565602663452853831707699438909214423123152290810234009533803956752931596490781289126072241982954801632242674736339992200834398556052340574803769248481464066603648682181019796048000747817950942757304087562713980091149403263602095441598672741227619844279071370419421498808354941505460288938414388042897790919896459387660685504476759522925146323652603377565083381555510439734073201732959692518147061264449479494823659857661960213521239473478260581499098567246948999496215242059906979048831053144612432617903430722908399871930139713568361379630868332104006177073573068875792752519808945243334427913243087798753821637994845020114491722050496242975213652547495402100158539379665066314591932762670869117397028379757217885775081848050957536201802103493019496767818900613458931556740896619479519196613697900374375529265946008877159580968923625430558713647535249430383060577547342345644296396059955644712404959544453808687315177238395201705370368822413947786864934015231894174004931988515986467961678477297461878852828862364561606645700541658263393936765841462267417083622380412721635921997341994850419551880437471506880248394560833038116145420675111399301777421272183736435992528348685305687401971847672866399063735414091592139125800267629171318977386673285146640600790700916211058418768288327455276530279929031807110044408455552751807470641166812910751428112220948848003407453907653459271361858809643377575311138547614541749542646891527738318207860503385974461497878147867858951897671148196136450915122857824300532330911493168551843990649287959138780080975516240537162882686022124197460841539294795198221993258374931053441196007571066032561994825331876428272070733541856874098907616476965646319558470018130917452009291809419415421698449678766209884062724701092907810092100010701899965668886273161069262932250280515408894133150723255425973395916147126114193962796442656536902911544460021686545133938738678325077326140581600030376966631512605812666482041946617073186469168012292910211433180278281289253246143735871111132001246202442981397651887445290794920359431253042731940199972073192340119851335289212927249953424872713275374569731024121331805607652547357060242851090106009829029381430168308838981551517432367300191039573582159219668774687089487596224025800656719817537887516493752233560676232311559467598700136501049716197952955819387465032369568011247985674474849612037707630926558021280665905469025829392528032587425300141424722511767441206602658714312530109311243713675061776982222192484570302872007720201958333226241118232671886267198186227399720252103301640260879615727132869857493741489699525087760477804947164893271672138272204937338680677130123361664597429917594043443566134877975126169016677344566237736472296084831406131204524518739588653220999523515507600862903414728794545611358185470682173985587254183355230498884681234629598985722464596060322883845110050417069125668775681634128456737042651817074846037943425529954979047613679034019744662572268467173413660832666046342494169659520979172017786983469165711579357327771147702557325533324519298268312507017028471941796705079887764787453094056744884993942418929354255833877617774593551914767575561493432364662190461049736759036770278090763303318294770597796075334888228648473007431755960686542929924276290004557037615348191699322072374205442345205108053395795041603399794272015590135259981221559724541993372626309717326125966380077131922037609102330992262359539560836002146327355346363482160068914367581569661857648041882654043067746644862855872744872697489544573670281643533373892137455841809998033913143361143141374798890746422126880284413375583539356533200114615568187150661176852901958352078921430681628320015408285992694236998409632734250930152820207969907247951026641799249392832631405849749411644971190796577175078153402654572155591394752340119372720973640733307524348813266128117086347983387535350400285819227100663736956588395318799632588884295851712128213323003817137185277297575465716621166814234246219771998736827474616512784880023707781693079508266704421251621008210069702728312256983888515407277317829841535388306334042834537377785365741011913432833649858192131013395096531899431897813635531310099622024356457948601803639016946904837161411469545266991958099869047179948804122421081269380162773502853313530732439475574821599354375033785819736091903089936043983503077128984931336621153532366756347370482823692857578465638699378268976096954072260345551157792503552724108003948750137493621673172398005878070753394288171093556682659875803525029655827392209056345234715150265669930508863017363629268568533949264062621920734821924343522021133960481340525352292856134929003526410709637358039308477642445063323267213556138402820174344711602834486807824315913039128805027967680521137621852284778934772436348102968842043492624903674910259437244062850590251500443994632817322224887910816720847504540669102960904882699255567959615650801184462407259603873817395079429948110964687485403603257118106669501122890724044435557697110320855798476569649403356863273798618811906025926204381962086329963130879347583109272381780733035988913833968876085127313548548054084131338377854127160020979215792509599341471864058632233441915218414858475706453670782135049786260618552361621250121344591768647142121411217764446055629616806548760143596211063906066036932420614557389231846610205331251171834131039804257185956123869139492408982450763548643895765156619633753128541311059479093879333690452395279723301445686477091954246343286724861856862002365870485490963483560722668562702208727505794825417412666641378418159808522276320485879130927809374437497217055823738975860486440894730486568858693128150811794036273334761367558151817003781484028160756404573226533029601765609916115938646906591601126446599418430045540291098348027783689368548782530325234498195499758791236904533401187517102653430413505203121539063515645165049199255581004577569275678732391925866353719463535747212411005386959613032972305869502710995768006418647763625006252626522306027832488452268945955064763948420610045787243625633340324632258353121876366781871648249583714836869708585552962163126014921988939734258988480931316504238871398328566222970870711585976382189625841993846648310927308910353858287162882860340920410598643667883230134834111257403805829434189030737686347913853472106057914481017572948740007809707924526499048727397154139942385146192017020752883925237638638105970286757452621719333939877538166340246564739085983862325272569571603566266349339944327125540086818960620687187217304546992995278709182214825363145327168953076010404184935925069875742239539750963815558313410430751851962786214426588296560183927439469980394302251945085872374345241069738236456989627970965930182386520205316574163019762733619972981149605370036152286095158198148909491549003962986044237717732787369965878810554075039966311745767562066447398869564209637325081600524426889925293959436055448154827600829793895942416587871539246952054497972190815897674905187288451859956745838814420359629934487450053198533012399049539598758521064673015349779809335831552874003684483622888354751027382535769325401087488349766574406006191223675931587585455394581327140180300737351719812556166945969017162217261764519570288445290433815672819041272834055955093466702480499037350605631762882450792681350472531615061381812658850320046012065540706278613160898770576719951647567354163412068057256625528798115515246782487634841952940654556393483072184630706773173667269288374000015844847806858483786767801034266762195454382473814063738299830785870392102063183030758027037188334352830496108283246760818172406304400469310202875865864296778603894073610180764343819458752854789022158180640128462398144137551655962195795781068743498440262309710818429979638309878400303201298214387009760077427366256119048264598119241584824115610396855183135018941208782111705200416385928069767451406084102953744163074130161177248193663018518806299545606820226052187892561149810190442168570710223034608915147406907322072090303021007591531484231178998474538836511534399023884017992807287937716107588483465912556213278426163479835175983469363603441909638269992404667535849629190485977310016307671961572324415781631843797014608236084136439457972679170979782199750971246385868552737937586252293041924587330364480641332086021997336293828185116356765662214125019226648550981688125212279481651885284939254862009582364879519894009489014100316687439899779953887496096716316343593931918311829344475848724715336541438614765314375599989883537153869138991728022662345524064844629735275928498818928219843394103832834382034387970142167242987846172410133966553249618043470074480803438063202133106302683800014817320740322568149645408058748329658534104153400504229204012582982382927905513948829877436445672070862011772341134181694166983754365456730112797783669353273208759721371089555680692650167477394031770979936194904398119525438087348411751349610134316969924630425022351412578646757329073693215246464490360021731291838871031416932951048866724913020361112316432838923728117801315494429631385748133809247020739347390473674341691977652082303112113401788470542986509602137069176619118197436146115850520675374564934373872886420651365838286920099703175822467396900194654330102906274444266797516273135001356453661432920951902892379679364382811684702747166820112691370260836273428724430262180974846061404235967377916034534425737958877098393600577778005383437454571379019915420347856343835661832179042961399271454366876527424700281411789704684337962430047918840758941517996006386199204199062053161899087460099632297747622284122862855978722033656190334483751428247244508181480602586373988624938234131915954678443961190596565387088413712643844379096358465529714091076259543227846138986859973780538878698383199065452899689517631182971566185241015286319931568973361535966032553604805881930772381624957613439300696999232041136995070099254376405137349813896394698237778057696574243838871933990178694877649132644880005399131476613692841469134670640999687239142760181511944986579833920670853131628692314717584652012157553225214141642089267009502581674831773148978844689320432258055789823513684825158538904419291247665637278387140262499657299262978697692243586283042345382371249473440329146589223024689729599976859742107689626154966635382357302834101766598292721373533780926865094402432882853603696542026741746477002550150781311138713053926523090126170325025944371357353997890403675748126524587199019926252726493560574574573713630138702597655563144440071510092067723259378219598279900600702457980091492134297201791483334946998323772634679509921602441980473993237721583722625062222259142203788219552295263797235960310831100741896163119642041544131126193688733094095861246694599329182969822579758330250148468649824395729763269022136036042405194380357651416073715433516645251240995902756613233710242753361148371632695252983649159393551747913609574868525933066068650301488874088563384698664429348139064278508756778088585064420002620254926857198424709310299159665588577029803389166173817653477136265846190029157116662889076001183049141664504484975562209887172891411476277770561143680329457413608156102255763203239163243483944870322356912848429018104710055838081089453644152634643115279875984452463797185149360942416347021256473768814339776858470517494250376768344322770144043492133502135366889055096793257092925883216586634849906395386106108795995579382916422687375910948831213966225051548439074485913830407634209251049347370802399420014620124036296184445934266590741858172208397201100440680717522816828867795820273438813101628939067157243220619873012159608751705249347698478634997972207216229034859341391996369156357561103076604370650031730374556600152727087719664483845708243708894656022824645240513938463031978856867228334949012105623910705316968568046457806155270066570610360012218608413545070178983705335260230311735184338998633042461259726102884513986078748073068341088109789612089981100511308945108461824472101817844301815186453834721008183356772532918680317659006089705055894631309910688047736669715097840559433576881708045563201905926752373535082117927929098928950431015399473077731988728529741428692286403810263592357534863546107201825269578542782851062229224701289627706179295568565890654938299860861705568725246494984856866663057733932117003435143973620447805089363889350640052150065980092624746536162416798386874752800765384009233537614546824852612578934128852387891621198708294130476252847970108764433161899613452259113488231119650449696348749211108162998493967845657028837171083924819915661111446488409207285326152901990239733539744911261278126506604359300647571623383192528289623616594591759062438107211340736188075090760475014032917209602413780783286184273060618904274314774603159098127429102510136928705805349457740534596507173548794924132095994957857582915702231581656618340118279932795032666517173722741381648957007891177581477671780409310049516441882980089393248747915252733605073429215320952799332477295423415522382721576626850479036854076218523704718305196950855864608715194987578578668353028669456207852511382625921665058544621830883984528067930729841732595272334229343615325114900828657589686598267852116614718190932848748075571040259624390254835663855116687513454822085213579919040566873054001676899827840010757032787754418474224337170639568146562563372601231824933093406478196635346592926697627388207080405159527087049652498360110013816191882149517427009879162437774450665789090067681690076384789040677905232878277436723075424521903167336316496074830784323320750265052516607847145218610324418450172208464317696771526403556116623515450481361115289754109827271841307878958214021950628764442891965932993403285317638160582058157288451866330273144784740483701550130510538748226862273239006754303458259767811179348990811080852153482731296232730531988456910552938771624405022861503554308662405902609653607999858810624539535353798314518109969943263120673460349871725438013980494269521497579512390469823409939857998911470579990766450645426786746677675436188179560208012323023517926240677653806009453737741427579030139390442723440017169891335049712914470948419267245499305566718921857133063925674916158840789157380202705851835772712863760378687700161962899978822857446886565182559252970374546508217347620175008358925302630540082354004127207893432968740926902156539270667235970174912183366340007801491715863058024327049537251761764809070378625601035213714956035971622323254090311735584509608785375926918661221721997268925785626712152207066639519464328804366653156893650340975537999852409113893541014684097113905561395552072385573844954212170343451531638032729388185873240106990255046628909829995044143063173536446149090939376414932870048129707298977489622458683251202515338874224140498594687653885202410517922726466141358788813391415065707247144666672575428987059064067918188695847865796975083298116837506688173722868405725382503222155293366666350974511016607319948520147526193570944999082206545510184769114739888539555014366218182714133197131623407555238927218604293365284599405187682090868101676838859362040239835126258189408122849523715069228690017741315054257535298722524168866879745547500018779904876611344630565341008986539263336251471907498131294113903841643866771147565458943386045221514778275983639825841964321944286466861615473643328271558677669202726794687673414639488306385411238074116111816929646231494445706398649574568570837379990181985207866518751439082473059884780519574479755467126887347499382346189110346437906147551229529574437764982660782858642294150766489734048582331424333926696317289289418603626904108159081902336791911562965992079746485551442296847277235872692429577455227394565130888466240673098777050729695557672036806993671477822140574521739718035572528592547528562846205399934716789330746293023854823062937899372259699973385669519733943477066774846778240949755584222169709175460351903112587650574308281969099324396432096039962423652738515701760352262809864567107076121013390914987957407912719597219089654320092339776446822570710588394187393406037601752528466947259905102553616036232533975872509360973744253890402279135218567448339706653057379601500721447251064040041435790306630255549548589565439429378089857949936663186076073870258779852788838265441501097854980967887806859368033763320557676716141849015707440076211509203017840675130615764660025650707963655438238937970377736382336411044442445409155283580928340928196682824287586607929157923133066066437001804825514803823769888688379453657532819941984190440405020630695904979856088638099544710348811328329681851150953515233518144371698568276433562973479283330764586686960892831610733523989861984538659565900940655457157535574465064331099641306841848504977577045489539543229075909599493552154468637586298176079462027999678877039975907739057084645177837320284710060394496532672120088934645595678285932973463320930079410204549330607971536578291220476961317864113483150615871952006528707778277213928643518292052987462303905818629796598263336670796989144722174541266303863431251335507524976952573501771293051182205157095168778435493167706101110064547409738611203625319027457122355308527425678510205731816908802761273333664337937533076282202308247930825641902705900317785191792229692127545758087702544976229492378511839929146440464987620920789188693889883566560781949603294395639410762621589407449198316194062308088868644975457580740043393838642852971612512324797984166343632836918395134519957143331897852796466249908314315289459513487484539868794956516901329781450527364100155954593860010210274328679403096740220744466823655944345404958508012307446115785393788531489308841557735392264110608616067214178052889861727660630319808784454456580465568956333166006877387081285533831877749683206735010178578350804176230192579642226167808510121059032565385395430913083795374411525472405026664661410469424710442412814660050839903430440305597038207708131795041868147657643992010596044465236884652237163676276235215489849230863266289129265747437638814382956909631513073116489680150868166373271961886631152615762403818973727245549923365211056653116826845914256290304487997410302913469737762062703834159854414967910765465161799426332140579708469838500488489994617751717025652237708220618407452659600929181173270341434758390724194992165005627473799350220316404956554809433536622802758994821044925403840192381366134812656204134327495622701154534654997424790958629778244739631114118057679855425517257655623925296688661373211175370765858087932903933310069303370735921341198350180325665777942703948380688960241359137695983146766008708829672667861612718420038542298467616592703399118321122977935141921129093376952475843571864033834395873800042331649810903431401197372629197757787060574318595086500721444712229016888683719216994923670769512035991254227697167697313071433406976344806882219109415218504905361831247075603578274411825101540638559860489999613205584885692039019970671470907670561404179952507741660207908091152222102131466782874605046937548022149439749558783532403637665666725413417026144486854555574836638522162067743097307861622185550869450641133644862958636117201225343711028031979709199127312540361343470434489993692494633658683267941971636553040488632171141613443053148768297299120771541689564736173758220746819396349984353575136118631370198850954870787003620281027059995945420780407150609530836856280025593550117611287258549981789969276311962293548417499699820176936427279764182792181770745330561959516813670927870735472406469948210751723488967867689053988337216717156563094906505313074958474661358220088231978843253815522794594425896549093634222285402485254244520835140311291438285514356135439436470019714861389709068914220062954561112541061880237531462056829254026735289507768233237887803545245783865225536480569756791611155404377099989404791090447375632459875126093502679654778128021138814610990151736479994064636165509018724324172223157883734465321404314535663639749413016763102862403790209591452979512039745769498501508693861709531935640453798424615966558910799826939659738971074471332248088421907755512680776511021516551535435562173567424049040490211995038522031042106852302065584224236147226737979807270683423936916388731478547340646817474105672197924184140567914935200197953162143158565603361885771427492531359298043719290579498480542226976506505061048215282945239265193944506838926247351320533411505695701227080929651162948080785971497648236728267333771869832742125725467286101149968625045809804873220749885927555560215758781931343299075423249895931076098153552532665308922915856821378815150305095862763488160356389882647608244909316736294152839208146295277209237818140905726815242738966482849039474203627837221241841903246578745308251155096245138622997441390209865624143697873894943080997561373179349958690633860676174404466901110206259576507675510916248499179086536062846868901229622743457855433073910289889017199322900653695399238351147433514194250531470181234748675589941947977246069854114859422249285001233314221169885548125873678605762831933549262440566665360596613635444621763391670586539398860445188097101319118559813162035700550351003932798322873357786219312472906981264118546159341563721898036620722325946950033236826243720196305308291270926572954543529405742276961926510444922264661912444008850733433658891352547027641151255788235561954964670225960889496808437912427663709826753035393623773473481170608564324536785833203897393749575961421753726585213459848881322558715835048212356790715251407680106839947993723927034087222650029373263111832497957669628633074669858628425255723721182203552422403402878635295010545861975117629614119802648194590325746323067416116375852748771132436083180019479100702634751013086534319592063945723579701431463608985621414582760633553677016939050750459224592724073730125165833642633166150827867716697338562527489584755948126914682159337754461474138743624854624999930518362817623645275448374672522191739341327544617794939485563767793604877886728530395261648091275453161428576109363570914121262652070670666203060262883079649259797798009364481930107968838415464795571040877696094363452117737721230486275308369071026306255230447059466665988229419193977377709823514537439090513860245687846672925135595006069078737374354093351484714432716309228306064441213448991019026721414719626347968567251527741335152192193138791932882742953817272876298482893127942221101741259364999505764466649389344188209424124809243290056241497699806297266286475673201015476285475524379564288104087949911012797769385875404358370394956045295000691319142944961864369052024412512828927955792393448136787649815095024974618866565938509684149313403538950967697017511323665170600186718328152425576712813368480264003288511077418672771978524379796086791920210983045901792007343750294858060975801114278170690254774353004904737801793325419185299876540873576549394046204817847516771588842271997766788461427272857675118520743147635786273163210752384095893495859161296879702799247115211679956635188361529822663107525661182916862916368034799390133899647487538963287956336566549716825124431258377262945194049027615419327125634642906588705399887304182575099606571709557747439496230334545546642107352463303881045524473418337323644614838122143372017992929889265658463615032536934148852245492206069449109545260506764796874185807483976268519363268021382706326596825677163869925780374311745705553961854294814167575920473902372687987874305207905383099929397773482883670967906544056574937134671648708166849173691890422977097642737965909429536101142295531841122344324154396166988797672394517709609892837572968376059147605145716190555130847249845303976910911174483819696035181048685927108355495837962995046177636954338991695219553369079277001540397970044497842412482593759633307028977032825421665081738758305066451350833028375797356856603219757118684901029310774851078278665656612165022682696245743303315368466815429366761336259591097128302081534637321387904567963643421652064738410171672226411002114908168839708968305499044064554268567730037704059746023716297212370094543244429979258985616900320850864059098817714343253121034127961254316507034725544622341355446604381891854793232315283430433243915505841716917596263701038727959523131291554020015883403787808754320721798247745447254096124007640898422523218412449707614452872712893310563060254555241670481952975103438693283132288570708086999694247504507787594554361749841181547206254651243924341843365439730511131118788515538749656943079349908470221750263520725251113504821233311847263126362371465681104339423123649168681424892068885351231877789265923979921036790127575792444015179099212525300455331949512957845110011153919845006889513383104287392962972778377485289993405592717136133690774724414725076639996626225651558020393566031398261026045886222313660261139714626506533278090724498447175650571693422374745629671480857784338816001859488132683755701615772084675531114678429878163132728533174673389189711981563582310428539895629090660238632632073265671352507588816680720484945212583361611109471137480503221399216486044680795726494700918312765575306491556718064939043422635199340986180481240952682782978768375767866665762000185567984152137697756195454175140023828971277120412469411157890171402211819475215288368218358261078743068279700384674310112056660328827324270745781926656187854476821546743912359645374404355442281670448185714860034234835620958573292654925351279513125497272005961781060717583132288481121928458519988873873780694639854836957388600877721620318253834003359760629771253008323116527410669472984283215127468095594048256198418697985421762210507664254995213798734118045374531936026693647725533599993614075800876003004866499279544153928288682471676156153050146078587063916940167818293806817743975599877729417693798109168732354324262857097841216877665389971359306821761247226126424876661442127968689055305882143970447946928964830558160124504332789336714185992061697821809475779299476254234673173417111778080469292003754688346644704781113257971091568020569742642153211890452271220213171369108999721468329986965967583646981432627786657271661530563515136816224201645887971033951530555996087719345937553615122665304666358887652239299250094317835211832812349616202877289719054779607926877655174063715416209338351118219145729248511031746588815746508701798994637396326044769823403517169334195804214232235268857879712413992949197191633658672746997515827707335922500924173004181876426119804112971755043958693672063590346905890192366439753328947495693822723253997577530689255967703519612545784033151753051012638027443185683241297297032371764277698006848607578613986105563025805020502986837127075444315975297629946757907797054452304724171688775161709561013020354331524887732026029731454049757728946129144557614078252633370910345842908081751537705853659214055410343402223626597815553109620342284829856021227609293353786995027891156132937804428179977967585945880380260712182281424721730369823159650700848040512983652752852531379225836684642199712435779457508119044488149567212415018149828021224450863366269198555049648051852198372915651111439907220393944281793344964155374781102114219660017910858849128770644095203499788756860522440373355397793314014009484811955288572691935485493418634467074414516911794866783985580276640585170823959140845667689732551763398391928804491337980774577034037142724283554454503387169100165697079578197509583787385978588399791386746169267706384530301659522759539121025136288336103528569960046735353364041998951094186417537120088550678354813117750880912240790480178392368015507643777387295094668250234038158288356625262085795554054219193140644568649158111233050725561874498284337798820481578718173669124506954873525781020779981642897272614107141359038617768158888872157342367419434363962419276352720997743829898395146499373286190754643526923139721744838636440103423434716329879997267380392326092131634055433168282288493589985729844271263663251894980756831915040458453966908919927705967846096290071959640032546659125118292953756238011973072475830963850736127795800240056603847198725041921104964624093056754633450017077844412495787069785283467376206789614971534355660053116077330365982842396318578883629390720374507921663833590039728815097587770387181105106491826689007339350213611371926903832294236306231202953868103018758954947393309253432942044940128028186271461471182807055253697282597008534857356460495937741836621968675505044281089239224958457634345093402314728006522747650419921786068033574076747406046004937938129806882817776068426528499986431741532886543677663074602737764275823345932675141092772806597749926094819655294781749593281581781383952252725229684564294391022571814993975514174771839552779956938904780729605871700907215574827595601062355503156496122945632739766773982428052081062237257924105131810583261377652357950226221279518152019639869100878250338404420957222184627605331327911627485937492629295134078215409510663386852983051507390831927396493763033743455932116554189976120104050264376116294052658820207271491582389924806431296695487286036548504709761229964621875392642632237114963097267437664613297052203479434231884044739082140701514047737060525062932963915227140836741579440257104266274346807552007865565764200236552426752928417391457846457258641379118744757757067797586793670848236131480609623083046850543105203612018241630010071198849392369355991513403427722240997751387458073237231336182850180685239989613571610833662799631262584555159549950185984230031710703914628112626608435581147785632661833202932636930681764977211906808825038777170229290431702241107314232842078905523644922157444911254487528932859011912480392140974166951779800654527575865845465780433438478089536008644223869176526897019482880525462828338559159588430373338612913479669846686827245185333264927317689176796069032180080579492862930489620718582808560397297472500265974890764387495014678293868722116482399151526554523590695567028902382822011575970531406778700919389176482489431191967538241149070379419753836249466973762823332287064795535011928440051902999642859184136507855802593350027726939405848132513735544554065197968905863962581354108821864677533036289583023107068685241249508907676500630508825311909650953402225424527320617036341874746713911063549051749043198688929452693138768298969468203886902775454645401787168884844373537682422268052449771519612077743958924354623116647863269241447044897954439503430589943607237758207514462069553736053621805902778516180499126991632132221803792086416261541675117454184477501179036659998173326069070015925818322721174783537876159057093588878866524967011753025933766784205138085451749137071839790230411470251572706477218929059208655578709713577602997819656491963578931715676900533375878716842650623842818579888773137083491048480800851497979665039725770180620427205863789755276837943652888913357317848886373554618054686342839319568885144195136464833923912228666462186573455127012210917318053517265425953436900228279069935734636606534692988106589167722096718628661580815809584391934470020460947488212293538477258508395339131877607273360979591742767692265389122104622501545896712081148648179892803391784503118614571940662264066339277658319207239222969450688964836583859047344514219918516351309848879882952281376383326685698073651502024618616496472978243677592411592502496800328173722584338519582250558757575533698135905805069233038656710840017897675137274278204463384927593558737184410623621588359887633562426496411622043423968209041291119929720815163694018060188449192093691111275162399444253625377021372855250233201142489951860459445758497313757136231946113989737022773197133151250262857989658047097217273484952322134007898701791976857753234872371321074050954043960886183739086680794154814254183357075164926166928116042483773621339328415166016896389882887917356714654161317719190983053769189814715594652546491861013790235973069224692105277167997667676127112958141390546617788870227431215984756306368173797923083154683454805810123911339975261943591507873069839457063682128439635764460574963989340161213724415143434024781028402482519220776998213336697225234027032039221178612234684919861449505560320926824799176194290502957735463114536343507470491180878460601674576623269539451620568355798239990726984465767391654086320340232208554046449491129339821282830615709482447727120067965462971681453350479427462539313626508722651476292757083872063077687963977224178042509439637051411294277866396738384914132184764475795054476749418950532278783302744382588613566680052009194577276200193314668428683198840266120725393879645328298388887960543739610526441279369059336318462740242191441597173803869588901283689451786954641967386318891000332865705387637241513318404808388491570764890053968834596166716581375715440690425132267335309822420389508010452340853890626814623934647336606733550802738683687357404266825545534922017768869161201978349788020960742933845480309842148355280454624423122015108397200443683198772541568521408421087737348674984560849708900219164808365943902252538465950817916641965182254319780059732692288828857702055323451097013297669889815367162704409956702020034047750322393088017231788120654318495030957977779084976215138441510594060892532492216091140173900024205687334707248960642774131424263205598112636477542203846715069117817747794295602327576176623718136054356500658568799269100943751270082325906976510364932472922822161487193260015533923653347810459968187362590355272369626669896177468739484306118705785707204670728163661724773737043809550419338959034630708334746581031914966828623088353596813489378824774694076133788033945638850206877086650807948367891513424204452065068760159863060108389421745416201616104828840614072452960212652039899219933569973563324707699556472417822532458317703106767495297061947728542433188570087094296800750720556565734678361434939377241083022165087422274474026234777120359775989988346361260715777775479127808095571562654345208355271367820186399407660379868016727527183187441731178870517315137072071283971401279503756553665994484880515400974426379068272692624626967070802373630887431088884635665510932070101855749969447422093877179661490931884087878051629853021385341962320368074824227082665471221284074950398097286652928979082256542436499592135077064966387589737692077226092154962792658006293326470657389000841859999670040992772464057244498424275420609257069241743630165498693085987564030712815052674166449681209915241450772255086965648056364996131497485679979676737478303029978586852629725640800246699497345114918001314212291756038899611474832669706518376738616627736481183426316497814233103619373006183093928707557319689383905802184927213671770681492525367084448593811134224441846161222041679662911260164324410798243973102897967727741403976085378457243132915090023636212864797782045975680235063368955257586047046352069435454768739575060059778285912864717217877525967234626125303766354965948452285165809922962482124306544705553314590739328660697135275224743188653514278734946753414670662779577778099932665428802810639788629091307289710602853255771587768377836830330643641441297071686110219775673644626681155995811854731409404943706666961301746852775174078014303933971403765024954389873997910884906997229800023609728660267763663626538004406769038721093988967514318319343783967474458344916245102021154879852033583187750891358863454651659361483413817681756062170916541069005985916286279455791356210526015215441105067587605246981297907537555266096924649047194424206829954810638953576400419127581174801441038080948749657010668707325600548472426781757522487686599901866690616410715350718420778702186045239918006923795541303607036168096498902227338390530493973087449659248629794291048292772441841065431851583273607985324098905819735059109642477786149484467587500354755331606917697152220632415205824831115129316640479582373293479172708283147731363509955848850212995546754268564588184663964810218065667146334749400854935327960912072399426935638351814673834187278948313191321253755028504677430024849285723846178490183299404702173943521612635346887627991438204729948039591833622596417734300594885006911067726013937996966349842538414298001233184543401242784274540359599776764613672458006943491002736232222360183154037890637858520869621582557894435883825939910556428793293402067778870551942109588592088874753848516961966598616399121728542580082854818116064151870883046257848925345595916839694680821218033567459499854990378371304758583228861257340437906827144231095153163062182371493942660749050924928640493126784730146729479584089113371672402175639531375834694033363018754856598694618960285730767392537143742881180761238658237960439940772217624473397488386753519412285269739563945379668090545458919903767784493469040629661766909752927997314779913580553272658504175662848360977019793614485795707326705474548290224013311716292894190478810650457597485834400504821250361778774221828803800254768207608620983452791341316353846301754233501483222904509977106774643498644166314578030117778370830896076636587425164661994993553870266321381857470928244664535399550617596909920233230003488394700832134889189096495302252779391716059367014739176158572807361411027884389275720123562588872063026080104519199823325532276978663102399865082079593106056023064180872409031700489838441349640654020549829262983907461157239137582902892070637418221635244340901086813524178409102117896242357285972304467244067287655736658683719893617556435073969422488255913655348086927724570212884427189218920161103259757338078415207842639918399667890995869502796263341657058731292749169994655435310474296973305373228505494485312301462688333448504289895800149989958678591168766248372575299944080167751471309549843121359097124674820204307528733799752665750559244647878311449802069545325092614929594026018881970160529992030424077151048723526968363717479056919696606722133331352736633721348733896073298225234388873299739004884882097004507082563433947556161175481852419228532875730891303888665935585958778920596862703367670255538160517605272470320508416109258590455897295774941822865801881323328849462797459978556713340004264631911151086426089092155505897649482254934663072412313750741789997742952535827191158790646114467064707064097330189569154642294416044954900416672563739187822047118298491479220977047196938822856415167656273311160205325959405379939748882627523890434999181867408430382806395208358889724024208823848232410260785361941690925839844914623936468794012695518838475196581532095843998893142030117404363598158630485826510446820273175728725043459485878059299836687738516970943176959812554733158097248786476492893524112276556979518144750756610708241960572926677753902565702544451448672201246193899908646775132771677429911288118535165365726519024786558001769445201940130671310969331210535657822144700085306605246561093450556881456932615395023446062012632589688496810883541420588157937669412946371690568135104326631453224684250982322325008682620707061188010107042298785814343634558053570979537472022380052166888830033859877971299954921242533850574741980238609022771892163979260090628822962010098417137925183636547726866037747229631608277019947236325916159655853069444511577131811909820949519091235662897095967602934913002565362563607030759403589010457159557502533759163404807810658893935272641811273876958284505157877594886992975024530101837332260790848606571089928968871536955936712182815873447237334866013097709937966831056161827201238356042206924881370799673963964238475159333976954295955220651659707949674549665810236210333799787361791626325708946135513533809477741775805068317448404713275436377209604530859146586950110231616632007620127047897297142290747663390960144019656623271440958120072207507107068786604783755343539114133982463229274382408129121504003106919619674934035690964086579673308768571406917118103475675772846952945447815801484925151167904260324058466456061356266198886452843989177217387120118022766705414534805122854810136205358302287780588398458826436289148886004951532412032245787520144189273150115301901858854477948141248768132943670363678293604754824600856614903687305647465450854713194463766598312195884186955496220312799175847979026311960978466181274881477928720108652859778606523497454129349753001629269713729089845440803893910182769756980990086099436885599424107603319394856960530062081956045840896194334320506211737906552480285473499479822408378724677229351189862986389408137184919026725590869151965108675376614415330697229892484633734179746701604854681524434971587121583157317980689765324087057573995758791453843116470840334134280864337008064737100235179343331072121003266159775240772354333674344314402698131440090651379698010326279941812910476256227321937540499965226200425220753659955498353145699839768190852098449807818357627776222120363333845144268221131813342137518341614637187152370455785022279514915651169710473723688617492060140021255873424958641537851520030225537813542819927565546901915480968231423126843198297985619728337361517435961026337795843353608794816845756770113660220282253510094393785762168843753522993458566578080931188901005273279075286578915034307572815979554841264529841520619217548802571640244607662467281141434476144141436401240505157207515735886663228918948864659191260796865712598741973781839053733032130594612619524054823706456108615578502519290633511181908045635613552120868062425325335340028224453229697927523459461663194136881996321023023166489441194109885116321819470641827066799538305615911841745306406330971800199994401158306682359474319468867974967222444099966363635575461958575926057932818454973000271751326257458422047334287581171700307025716233209748823175824852899859488869362311619992485125156496165268800622581738192431703583352528954217323594616198040540429280192205168040867058123793932200480896933607643621479266025519745415494789008200758837891926081216034400977144414894465604893416880667202772889381641178680274722807659388520990113278402380499123884094508929736745230495502328648108760877929645386066915333937463123556435120702086449744639503841517587787955033466971290978739406723673453388638176444394684072772202700914676068924432130112280289715268956109280133803734460755380533329318290047017954335726864329977982949454945743016280559504496758520086288062721276742926874165847237801605382165007307338813374196303298162785605531643254756915673121982425309934358351232556933251376046248495426262467002650033340419904505383906878317951864510362942349079693788779074114286959385209235393382902926823473226872557901317426315691635149147212765617931503720817453499179946281376504389756917308345118033621589869923490882006628737402407574669506729287312121523115871275955805010773191484350412135617455689819814965188855308193767652765032282626899220038952164950675118707557798992442724429627899725905368116827056294796071102473405036745424995587306195301779483809966344820174536714650489670956631536516170108764009564144769250244202042814071010372151699836109793399061833873747696593210786183279998195161426799038482226462136305570031713411882894538687511443954749590695896349418063614243817890903658139837126109066923774058753230513322203541427300815835494509106028934301663949842278203482910130765297403062992951965310632342768039759607912109245251195162839158231420111662315819005430862512717476313780819489372872180680151187331737980000719586964673704163049875152909209487276704407293887939085534704034208270744121894081459584190358635460420392164109700472532832883341240153349532094889916071990694394133337068882132775163737523354517062143843807986111933940385964915725199693058821380130139361663194458674752200289590037890219683220487134918914852889056638407899278504033446699011725671954005044636919813139602642302678030645354440249858244864992326094500592986947584019107816112560831987696980124703034616270597042825846928477928869860813634518135001760856848691821443401483262258204142500018204025376263580260473235422031256283054572039651910259036274501464811101111540403679981783938097855441364740290885964950508383978916478922293074908542719227802607107808057153793113114895725085650265530097192584963004136986914950406826006534627778666619267747414163831273590510028364210782452384559300764589079482967481628987163138078529562622707420442016907032666600683127247586339914803182277907662165075432822227170331182854978811747174340871944747418478157008027210635051377789117112817853854249053951156246727511211120011573367881154804700602478413434697872683072217361357053283193096429784990786217569233318925366689687714796137199454094696401525947420580851361701296214483028598154740839699221549397804202479197655154347018947078166742776652958309729039067633465824661901761145357773642854539832476850411791793192711793111708229277941672288286011751514226049087559378334199960790409392614152242439134362075643717352894861027088855161175998459983114091320884876314335550881438272268597603395653867651260492017548104897646915664690198294688153003269183680866454397725311275921336249742155250901744676551383219779263060283838769773581518045078733034637871641735015119032857102371760495200250429693957429845327047827105101284206187394583387895187191606097586052405312268382166773895135812926822198499171525844608186943743084742483404239281604119657590592470253629512340822591470678677660210165423687947405768954870089229291421086116109661828379936118193752646759508691414661649805557007121086291957085764636830027361632614515877982614320739441857218601416388671269679515950103386927609208616136447541655364469202412322650024970050915092121855851551883123204160784509035781920643072295164744464435713123206516999252261394958105426604960774892359400151120987629223284011669668600491342552114751738237686113910651278203938883377090885023466817167222037595675217329611542262339993948139031855765191696241513139568667964891625539873235572087524642382583711375886942762627051723900100836374114967290012672330818241926373008150802154206870428318224523793585326628330558458183467317483540324152024216156352075848358233376959144878135369086860921758564429674194962167232958248854094136865320541687667983613073201231312910062741460360499440539190535366801969601974434843470289332282217325165624056774979348819662683695894861670992824119941508365079963770561133387055867520647732509759141381260206564259199837123676521912109031141829608333525337794409608046864704110874985823830828665324326886526915837919001916743214622405692773192880050450298812420838296150361192083054139257683097135033565392237072388507302970326466290857925003552946141303108089396516448671825603256931903509635985954116206251965970704319007105777324804683099677163035734629617193954535281296747029654547733205423213121866444383306725851522021284929682609063202285217420028272016294008966818860788611645923125465708660734523321644210233857549685646488285924686155336866186856156411735702159935261558694704761384400439139060226933802646769028572243958174416284079311011164688545379656112542494348442425460197679523586051508295813808615176749120218613453518219299547424402851446965474938665667125575324277859424919399074453526656820551182934997421357481288142140573354148468911081175379072834640793548995789035462156791300036676179572443283411607747958401177047800555257366222458980790540871244862602083636811299383544850105538732117926294685952651394420182095767273207207080249260201343441714237231132378727747862765209258813486684265556061457630680082340055158094614994192470981686826928497378869618707155213986829879254887582921343502042735428609354181806322987414256300658078326266772258904647237006304971608696773899925575369890356936644045892485398433765152307178143024880051615532438061907422960105952180352244541665732116374424653086972115247361696873946342674935413833610978818838465712570105774105172710382496809818987875052151566615339543646215567653414673292558791358476602324959988947398869856736730763291140828995301019155026067334605013490635354542971796535417967090626961563414441180198031219014418604807367307798570721155023614651380193618393131388218938452441147262323081616483632290109968234063846978187691419150765613612516536615620482672476605150657518232643588012183838770150989076677715672573631878713982654132389951198140190818814472076351264150796086185265910106118055659060509162302668687284024876971304946322968635195079832322795241968480958278328888143966253613814501285747440245589198999527161745579999349878476986505883697822508914754015793942218532550267151001907653281480679306221365855511762666905389992948577832026397385495719192761165874912844093913644207485033999562876500158968616099412516144293696059830440446243137188034784686251075319703463903289752575928935656156626760901043689761518256334488250598209426931680809415460520177386231453281880906057585743409230010443743429662784228553888623450404012379789906496218702882418481240935994373158965087906648513433924262451901401393447843626485301501692447026294331420680592915104734937252358122901687935467808352974492404907900456924584081698689759333205003607321185008008702214250055290117455649766999544505003558324610666219648436851331395387273197472960763912693729038349588378934324822902947639335255795094721266151287604357223511455946705607558454112076858853438231643699485934792316499518720100039867333935182435544154287386539461574785553911767806541695410441795146497471374830066028921137888486345961962320991372104259403162245196975262812190083915183193574424445394851498994583496968668175809093753303741996386684040337228281880454844351392394013296670327675625680124920495546765659701751439189516073512501487781791932574380112520995414648790753721492170819748215110315512767124743668702770260643209049544027163870023712584227507863841752644756501375609662494543917545416527845725012142924362278827818139195690112241013447361192747504270609467412197353574220089766358256746863717869574752105344023547045695306611901360000780890682610720080040601886940401340767817474387004760345021008522789374433050301371304793709011525443859716141665067969183170607140848873977804832376482904066165079807141965967598486130874899443370689244343359021518131063029715521188547958787836281102007071629278867328418670092357033433273789101861725240124892176864212782429972835646804188813137394865959052562781127881812308740635698260834932049927580763903457238384024921826452040456337025601240586388178128357627827630277998705050251359397241068653244238571039318341041141663504009740844425519184051368242269139236834089529842082601832000991458629898144953319945538886704522505251744763253624299123138831788149118869702719948979786657188612452640382499205644820635109652422114056278995566234936528651906130773546672775642531300251174046783773456822364559594051897765048301802588622008574367268897564080562878275273589342769110082528818150203966679650837875496418351161875518614862192754410130776904543066736232601337877389328811703607785752060641961002519177930363453969515598157966719090416568908214381401009780954139482555207693312075330547035908542500345254468526036367377892006555949127046847974776499495692718101998190880360628078991596371620587337281226834823599751751710632395616268351692102999880865193992999369633968960577849163956897139421975996808333441534479637961296102817696935096183959009794450332412180215525659678851504804742666695556411340539694802872768182043136316043097656166725727465135774268614053885108170020171015026714116245632417293696228757841572820882611249336460670594564129088704263095602174585210013322288113661154095723459594732737474754081266735586731008251581304566364856961397296130927845689804086793548695527100484222761512248465226099618849991264757804810782253995575016294048483562279471141711502360423679360202619431922019775710766737513464513863098758040377907478131946349939334335784162394447452184185277039430188232271639174183065768989492851067300557141503047421363146777215861709899704882864191544672620282353225847900996718921931057576055440635504014925073303357166308208762255921317923693956371331600783597144381127326349399937054647060190210408373172784546141232633308740594661620652136439898853517200150892598628242459112924707479716047649306366338449129480981996801792814141148478403622874157104476047792599226516374633578117861899074977401705216572549266064938672797601778284494447056809541500976631117153165722463673186593772271551615245015209778200429048515260394904039541387506823857250497557122347229392207712509087394353387450051735333638998471513920617306378136304212636795883700638147272268315430991143273465558271949391737551768264633545090043831170939204527955159613622523358085023982090048550054785438771265482673286876053034236291078853793302385533993287804105048301764188817153618236610804225070861873252608714441675643506567252812194680990158093082029449095676695575662496613356553981713185131982920291279832952237745413021642562538009966868405556648639154228732631475065908793889146992311454899082441765726592192068193855607155122085246128584006724699363215910741115908242195139535459549861428610611447552134160646527715726010874737350439160859736274680453390537068949407057350249864394524096361357920045157119563320854558105418219187584265904438821187244335433440002590496833467536424515593196251104166025406706594783125907791993371010297126926956383816238649434448073709461900758218424387528917875750581223548703511394455520256323228609981632441994270414053120336957556708386085353540674943047654506385663675001554499320501205669867010259292787208452113081267587636976450293305268155049361636237672670627917571956175261923148688940351388855654789105600851650393118734394317252659272864626577186721463429416513791570721461827428106451078108743598672835928114999286723338551310836196099709992398327916418155114999405031934592959407816125912305255329169627248214795254081505170255119291643747334225093764519398792560762756888272860017389375435879662112058222619510524577431064483300996413113407417265491490841746218256387133982502304934586932943166737490704867250903191034956695063231274556523337607220332186752529627531745780865818106591118574187025060166163691271033850256358927709803457721475142371458894101368651399271820394874809109964374671309196247906392931380368408832803961401448690809016539075451347043403129110908364001988795820394777534341905688383088822278276540107687188241783317137901294022108813299611145001562577788551200399713048057983549098260264055286697022814927068644065602053279416449911487551181259809777623380183962001510337650494258932986313703956677663389680691092694045801469079957481045410791153229174772312880550430901562661692142456802279900015635954647843532001408716714435446356606017805896645089683453930503705169732680181798351429865132825328891173966531536865253652571781593313078541182704036002559596822947028163744934742507850514648327794325731626645080175623501506038956794248137829201175537213194997174940836265984795090848818569502969532740826724859795274682730022118209233702757029474898161090428034504539537836100223746077036839178261316853527927479648257012622817542565768343408096629197354060226798116634061067843030631716344283283944948132873130608412742246354818182308011854233420709774020282610740489747142744407275512381160349674942612182921135232295008847879656697981344800614153798609089771958267757365810506506694207463777026400245504068237380064260713361283253468994192169490714274447950008178450728178754297070884286079257872826611279021977955496087833592479635807247619622363848935291783910209674710252862581117996220887014773429928191341240319251762779748424620399035452475115894893087655010538071006079570230220037774152975219417697298140788498077892834795542563588037660284722332003248552144484755744013272697342014461708948615223531131543297091821311781491126609686670787998849941297561271684516458305219105197794757003103849532557464724086375190657785044646743485301834388801702636708920529229096560470019582598676884792149218113120333579113654101907971171770134523525294134674925913515892243404512163366246190336183854150219063265351009186037119120047217492158618287098597817560409176487082494549910967302290719336444110122316044275910653432824986919681876759205139691681551666507820053244887278912072679963004684769259282819229994316156863210178208436367290620358824099072592380837984297057409472024143888384111643548484988708765371257300440859532023571124362204666914751093527180950038704031096644850426680869485917485939039318160675892348839308083351705542400536239026655805648848968159596133377059414702436647186573274962004685239225109564156286606058797463483494475088326285405506349340112001337430644858769434514853170958582728096105141918840571504651387756734885657681250475993587391278846387797396234841601335790258786621070550127647493324282197629263166206898047672396674774021723713224986987911498479327054533133119660171651464154692214282066178400042506909028758339313092556344824473524240022997939095323626973565273312717664626664013195326736619294808965340524659153245262515813970409650797666570964112917708463523374454318931990832903361690777317464142419567946135035668950203114543718342794128180460352426839993530014678295671534659971438045380669167054475991684297580631918425902529482360855586356633469419256761435097929096407787131434977630519709450748440710088555101139308461483188509174441293233939873299546125328915881947645817993063793000709203839919058199128030384936944188791240011010113158573902514739223409003736649946151410134466416928840881058925436955556556454884866662617848811368596138980011179339145833433817639351837512523515187559323991397341341078375111303831963666658621284316330080755483674922567768439959275471853483624355212033693021396663044152671480113408776072044488484273063034003579636600464111851133635248129235975048797705155067580058119309317416724953350760067822005158915424875064736020659556904307614611061711239533818131304535641392128021889165896990054820357475005142621102276995986812470173419781498076690827426528394096287647226382196638286144682604836304559577508064281603608407793957651095304665933320549752963201950463397533790012620505371825013652876173008304454986200436349023718510813566340622448352392956170316791348420179085228620816781766024470026434612360870443896932674831766539819825858861059093588882051528516967969777965775443440786910947516375617948804543351315351375392868123600990661920168624989464419058076154329443884386447895802308111566049842329442531453731821166207680266086853293554357240428301938491629890555414905466096341934325939872548508729851772670217592085215936168987040924952927289903437826109051203285944858040858595430712946455920533817542284587092455420534999504691298129307689380564641339180948418239649632993781158088388841948772309977885538675981213981579013262375177875647964860861687537121004954379727587875880176714257880323028343365319883609594549806037502394913236823827167605795121394136277854588417470767299843022680760161208055724835678584908310447531898723872710557213678911977326800179331654257342485895365757939388343964190279147787663627349208321121377009038934783224377860531859957984483992062372328097915695168055912911720070760312600576794583539326779120226665552951272382087432491275528694109998299451571614177139495595255842447712326538767663035430471774069969247281719286036717207972522266284860314203090517586529557187721097443799081354297321303091702324752782378615317855382735057884520730017486443206621981051429824985333727881122550399085103180246792068075149209779194686400490496748848836191665295902024573921512951919592117894270896044755388219094251091938444093340583961549973050079680826473633610738398185958148359742278405934961557816895040859671067389945892106091865378858915618070519664527236547656399619114453086430268591636084879371726795135488730153398953183909911872010219523811708365181563804602189627628705725364302793086242348194091234569655300808865285902632404958429328427632522573988106171745772573641698666854637803651580640631585660557166701114869990685003862615704951995854106076175551257329253062765244013681986706091918807198283789528590566397038194782788594592497557164842139565304587133468923439618193752400108157979394534589312206223800421175143770011709708032993316773378249319019127766158232410866905795531198870059725802959851842437264857356250444901040044270626578585443659178517361017938504910695069795169904629677829841125500880837586417012165156234269554468200311272225743685014081309406516908722497416041341494499785484127565032176536760706757852343619575381366883298117842338164388900269598580905217208803065264718272252163986612710284585522066223695175202098981799527937769027247898280714287762891985839892420088143294071068207716352720439932893793327206840754691338173603752417969315980166254199367226183962649574649960918601441571618754535731321649922573272574495596826385065778668955404032536932988552379614375862360185254406020964825074024063012245024059431473296076650296649382174023156188911083946295391678710818696044616956794755135802340805832145649482712054943879364697745087512184857656675243873975524864693781534523642409052968848906293413913955974713204545413825451478960661955075456934551692613317172174401996402630409781216026425487831987580041735198916641389151850205799840722142993645789616409890206781122325332872579582687693314642873322777470426735508643451946807575116751499898309853829616876086506214021574988445403661446323434139415707456301066672028702263156144169824377957120570488322819681438884641573164246973715464508332519037756524859817988400560597315346174464188993364464678300327951878939325598640251939401973993932514942542907514199632192259083705578862056993068722935797736246300179927183118253027149273163823959695141638409258076250883360162655754065380375463612497440909695727480145318051145101057216907838112529581045745552573732376072879613516535335272457892963627185916065720023058588007254800196783265508703423811620294438320999447617887419836576178795342299456735718805755289494924964278753466502443194637366952765984356344198104822092862028679572748472675648323424064794610856381607562467249159791131069281703950468765730439108313664829101798995425735377353396698014456448264632247904427272850712817786371270771923309650928420128227916401555105000304498035737484651412941158616939177288313646096061045228048338252150907944378594881651784338489182567650354041333223672266793724304234082686907145198780547672114456527481460352030968562354144367219194391195111871228193788192877016352217534550961808703563511608570652934575987336269428389318914286343027383102288662413189961849980574590143656322605377829139949187142039525650728602262733243623900133762314684300519820349005089039996127907387064288338184695682332427828417180513773746644053786173258594976155249787603915177754260741676691394824515041189163731179446742855016602368385629050857845385565648638162619974389230224448502302297534092038229097103001183706711054596596130975234177272256691941286423956091540979214750819693421717842512657271509656099162392575834080094831375153915728437872070103787758245103356267545064386928563455313187029431263026610397271516173073245357709071760602704439578387689219931259888448600757940823961898881487709752823314960040250573235718050901954620349167275222988855497612925818080943480474976349594269892476862568964061122547067922291389696552537596972729463438203605833725296358044679429737990434022505574529378132275158545454469510380076924225630161678394091468651610559733926882129192772796501757193582469200911659227076184849719328818647616796835033312401395823054013857600766608733732686822915979366477022933558603958526606910207839759353839264052101333496190395548542135993101203641873951305511157142859613139818171669942950808200993440602856181352229408546791500878858823747594626123829047785358707629998939780644267867999543248031693699485079774939143734821353991283311937213525163356712559632450237597338975355889910869607644921745078217822525106619862935459913466088477961905687881214803396402076707969456673494177663928764993368528572449160513469486502979228908771289479970590733013184959236103828788002832468231188988873956328118462728493651572161054629185044740072478792749852137160319302302664203096910192649511329764298598645770206755372935844892108404230002737305272798921572693521198135711023299260493249244552013771187709750777879370299054249341001656789834764004732824319916234617393868763615178548390146132362543272664199690786945186730464564291133964712452445205337793089169703906508974412370550027914219849951804242823256042924962380694819245906617679600086802911475449318458110758355568166531315128728603871417722790245133671115531897644298725285559189629274703379271817374290287336868727586078792232515300976639173870867283276386656818578661029712300315702417583396909584639003221927194861012914293186708830311006169489917036065926065458014657846591873320842550479096027384483149056041426443458285069099038956454066499319951283040400301022855780395398385017940787856863286242666212556772707579887497977431680260196571853947465166531350007330807343934813219187599552492071899981775661474527170969097334258695012552386200763793149866257804301442660584671839674829952095480419795749313184569004089386434580320320481375383328415973201475764796519400429712382741827157334706439437008545898874722939405031898680220146509763489751612685358990591540004410609783978797713058295409298836359998546201528178049097365467828770242162207881525403647696998261428136651752019503678503944935245615490769957345720877816031188704214050831054055877081005271986199604298389960436359733070617963545731217350436867453457150969544014962480644157629535365490438574493796153118541558549791184099164611673812490840693328093801993054282415350317629037672013016636580893073921366669505606577830799591356282905311122187966746763451921519381255798741039008906496364106388061460092631271332603898346251383401601141549913381491216700374522966421875058228272593486460698616042256162671316147326233938257518434970522504927988619081017500741132972215282135068739551511942704799534756683664129632030495871222647704364788016489601494330588538143320446015086831796688367578308977616260637089695575976293159415435419785659391428211923191686395256165152630057681118636742222039669144915437578004103254918333441833251924567774504486566083383702711761058058893973103314476333099765154278455358918804808151952892492648009727474929435141674412314780440682155915203208022820704257533017856636816773156592069045010785967239351568125492675668443144241897030645797032433076535552671819335051474391793978707373537638897600715841819179416406439207593735925820502934683395060787802998284946996760403737990532139643299256904818885266296023442092349772876402190568770652755362405105554129980198200171993447022450206555306740750863780589460889374615502297754377572367748507291219086123178718907764514246005982253891899688465841401197286549356912272912200668436571828783791512575109747493153463715224070641093733381025635009440106427569024814783192273181037564701100633896353317664411774689485000333753666636020323109443518725573521217622946926490407154618914490432660728444513337786931639799893472741561834160225213328723776779702180503679156848498487804567129454930854632330896733620322363512984042278046516027966335828676777393623611059677325315337315123463344320487202570875112768478397417902656437231703273334215743122650394080166233214161865238311082964166078687536676014322831263161007011647517977696067712406584402976242237462350769667550366260098177022710117857931862810669385611567245430946182161853662112343419308487925697314539501190630332386346084260130875015546351020072753687629563402675613071584692255677364994555467449794907766851634600383219572854461044420833421885228546983031876316572430843185568281051424087816662865162024668027375958314128643557092070162831562830052925304562296365471380783809465805520540660087005579135840711714317738256782068256108085005351614210776916243285413412493996627566071021877654552419216758866712852358915371519870528177861510683814970936632958609635665228089586010420370639543990434975246291505845118093093259967475537734287708783574432821634384518894257434251271586153827869784257718670855783848245004623974859093600791488508843786199186183462589863592145622555716844341451026870138526966748104545983718253922949392911432310349937412151816312825886669920797751895809334298939859864157100896801284553130642119515928428286376378167012414855741505909763742609625351340118061843136807115532841586216458474914511624974887754761472177784036452876407858240660406677962514691661370178265649113717612553297224346515162394372897630747853317786562242006949275243100516923968474646250285411372799955255927947093132903595065608661153956996213653623614570970686636780286956476249394021567152577338749139907391289212917629099854029852032615058651473989736946674615823283969746938222004996273031087922129581566922755524783696973468890601296237112035817093630286228593278086471574731931570488933986655718356236130067452097170663072510245798515329104344510201646158348016500373441485769007796797576406682209377378327412016989792716238743622121523487627330905155044295581708066967804379000945636625736849524246552787746567923408738604499899605795724268409345068134763224557233812915862221069576512825993384342326623229882006897585841402915072147949328867215345628568332018593060104727168547359225940687898760559999400172602068826144230530808376933081629461342361745958176446188248771999855444910825718831725657994736282648635542139543749895397208685657479798791060103251539429927769854969007073792906560983168929514264305186663391740721517086705891296878470749022325428231611039622438699351028449606523630580607545639996364006455079176635052881423263910520255620982539627532848045283953841828157278873929099758314753397755669200299471464115587937678333845987647704820038492864468680552285374025850977881535671376917595791650801505655030256275181088609261940692503974483889729824171915897220282073738151002599986013821123886519657621630155148609680517899943503489147765811877962478173471088023431948097842615007661925272235741825248938240966305784629639693769977163414481234340207719566261617734534785138280695362103805888149059791976032282404096226675525198751352946568999114748937905813847287726389350290386186723602264567278349677217019449094184508681921665960982128704283551149142212312470617450818941968595436625784147478428201759460852787297943952390541449265939764540548752952160743895693013007161571448244089426718819900622763944299599368902761823849847915570326260867067049174380829553065974482333849395672107073422732002681348359316925786855988028810320256396522691630583721784905984377476683080023167828047864203617821134489822307731585399815719752774826760074387861719888128275575674268834245582846024565198098808575970616819172875703380844558152289580770461260978388844586828054398663154009940766065855731579107501746663213079523898490326030262360651964449196624197694338142532212034875290035953856241027525623604265347678057893071219553176092733593391583701419382420041292185994049653252689704674096973084829773475047608277132423367372288880454624606985246782922309835883641790340369793468601390683466989341972118805810078811349500262276036792286430381979365361713717241249992236743567493419979553677421018719786495556158270956215174721078018531982032414148032850985521643260827709360464033095974350402186626382375951010608539270547340858281051708952131079073865292628488504224431544214046277820534077883382048716220540234267380034797997534683090241460599914019239605962597114183692165719866196753422010002103583304129035371417862938868360657753586516132656936624258281496605739596481273223581258734101049547533219280371350689118187898063626290528045743644370070465016884693293548411827777746285384113121362523266839635249294164568181724396473054113043415203353167825576120657744316083961859291727873945412039954609644049626849928372084166229674744842329315656525447817200542867665363932208612601059243683894201173781709112793155323469190180247873694746311737044340373163819345376062477949005900713081546530580967328611733749485235653932295182890615988571166887685292611210652500714776044317783607905756591781668224541065591559009491906015558666928401377281926889563886139179303193399646805165336098695052345674014168007098224752643749585778676475325023360616653386743258349826370969079726453679430193817613193077043232342429220331813232320074120066347314442571632775882713623007092375962808285875832320770823454012803398482979493098640055666971495537057736163665904491477699187357782274669048118142891855049494690503526231368781186683066324160036356518749864628823385579204278351706967183412114742777814010413000506573218464650438194997684237130101067612205753195495870634506825935742650933837443086506618272423920325042646024993012448279243949504605541652053185140269490663808855013670845611473369001688043940755250004629743621854125103535117075816353082900843542348651294029208634276386105529234192852017468580742551699664439590294598767075932394154224400677964826293120991641452907209092666333285617267172031232748845269869302861885604730377817487818292894894761946724732519312429666266549585104947140813398380757915208046031218358174061614682058530828811406190016210697716989817043221038011260248359734481880330109706912315776751460768964188069275149197549307603931172527621572435018956684786426262787927194721414934917702832853282480280751302593466393450366759401594021670646383086300465313519286913649896703492857831041765568023600755055696716399823261961347565240122298471701406140186697411768378131644931737623956693577504046818415213754649248340860614859779893897817142986009699234728844583924868444392766800481559827554798288998710859760010600792081067422643942224713301781954926300117228916873993960730428344912556329124078141069334755388762281199357780313325179273945814340528306712758396550934173769096648621474991958147221916484338865706440247879026381269800269280823089872570735332639465799433687515260944785890513391519721260579771591262638283992333219693740920660635285364798408566835175604020247886446140749244579690595162325259182118953227219662708706570492997120441515468890649832853529401134894568079156535508770155268323891283118956731773816624385128087391060224941750719010468604801048865830713991880981139569227546532865013460899118406098184585651282642080321141043349765139394308776737974017588894931939072953898632163603003640403139831474008858713398480354105620737228310361009868852151653437225186907975858210728865827838554259785137934710477610019803562816757215108803221716285986331900831612029913811139206081462479904911193640220142900928948478602603576065528267722747386444143131389811599966389083629968875527515233758396162124606301516025149933670713652018000136075248817524363508057052509946750034195642976234004182458710392184573451722748316730962755341645011176811095140757694414106541114776763035613927385303926540054442009622034032741997671578731528031993591518967628256804204075967358641881986983845221182930061683544958256720603088747021143440007178754915918392568921632487496946333836117529751864270005657361888192135791075237861695379093743784883827106217080073617782697345943847266232692723345422542863176117565347617433268367633479329475740265611832306048036256386246728310309095940160410574334076226427304644822152885999236468531520104284744159516575116606927692039140300550146510344533686944503590323633003183462776718409088183980895035138195640053979964181840801838448211276946012662088467583959083960562376049553701532409811713661591621997576334683197898603809133237176567631902766012142679098587274907871559843764670593443426043435853915461929774601236413204957861392756174960944289315088388265581904235610635420699817543194598850517946146300811520547182997952614282454806592593820852750156114120547757753000473697694592452949751913851243536525134975678774592520891288833819936771082579230338906007296630687933452611013985784736668105755461613598412220799173208666513383451334652546756765254506703525168641602986313550952020683684958681908258003537498906164138234867542629064954370761466537548605939214968497245884349133104984490059933591995081534506994737131100032744690444387288669479064599845590950579223435280325995722393319626318560168132149939708148512073961716795372308198122556610472228600253189667146369033936972758858136137620495689249709284779526080025597767254595222070543136408313066533622017123485420478128725124154215511187914879604821109944585314028113999744859385152088982129901066408557926930030803495328206662224055758453340178095833747053348743935441097761140963397900741027309738301247389169938143466407205473966303016177110931798968880212531350775644948861617944884629655275899506059843972284318943728563303093230641851276647820493947016577464622582456404905772617683955172958034530798457403828821715956483112776454763538430392014823456130710702081407838606036202803685674364844540956543347360521504946208511923375665127721619806989700064526207601110915108183321689433166227345064354629563565211107988016394148699220865806087846428810593573294232922489779535740021605691458497506027807175862249068047449999261124806796444538065308293428670631346200833960752735999202219710872574754370696544214283689513146676476686770001295811665048352991363787694225716640194462180757753468708994049563869520807510056145439657169861470156422642928104708845554652590105521807945896787594988777514894491009961523863670871967039112121774339679942961857507717638523315064546059625505159680173277959971796598840200698499516219415829596260188181239229104989891935547664646139294170014381135054380645531131424405658793389210244514234696640334442124022745372363964636308068057623003462548841239518429552166808412778629633649098745291189792907259651695038383876340870112018768173922505720651963228132770473086566582269904344303826179011175968918499681402020438999053886342991589700260939919252979111000633350703613175364458647737401025600258962393166876135910190235229519543905270930369796452528414205130561863968540107425191703027288116317493816996400080890920126568117657621816118010473197615505388021980353182888089178356897762695581742931556503600976989578400470410986079717102701489175435386917767296005363849704547823260729371501416728555821043037972408269663954752640758428716691340007238493854505619709630181265104105792295952205834632932173177861747396657926661524276096664743376739301540074825649119648045836237207156062202312695421573718908679975817901729440114221181923541682636038538704310288961870615896711567754672552745901529232563470370371108659073532896653700589281628983770325729360879660767328490909937144115578414974779645591210100910909105055164484628675321567911785017712195197240848895026886717194695302797707644532853619113390816652787308345759903614410401752361294569394646705173985082018308435711400930836767412937535658903087736652113141346513626166567754674993720877036632019817129026825030845985309896642022896743005362020499270384440768498463325233893651613181343245821555182329324609044456229609125095003847245591897065543033511840224351322064394287521881683899476227277245454700773928050255013597599127482682447160021094788347697899731911394084032537783489853858106425458042805925060105550392306541608809457319115588387033761718728013090897694406257328334016763055749574457089781052709241908131231359640778997196409457932608645925288155866000855624371492931337847101594576131987621166078271682716906177262404776871212232583055504976689378883339531961501359728897758591761216552179110216521810499719641501585378919813383146426924818721499327484754776298989247709606082906546972553720139448213612396312133909950983311783908142280910149712907826871262641966023808452261370618465015569010471839996386402286687944962269573008263211579772415503651702306815922544242379954695372549265833564470689021522539916677936507264039863290584800970086142007689460072564802179012774505578033230348326330616849271159254197367126730999438044254863326701714222083591546172955106979418747656799783275430112420895485038099816349342180698316575009064073896166074205077222517026328771812602021149852073044416706175323751573287910660389336383243179499428842144826234480970684766202837891801417166050392755450866414203259990160243098934290775470027000643866430409490102879524396782641645808026218926255609190537742285072191888941222621843741755984315540198862234697464643490923997071184528399331791312009229933305661923873824645981877885643109066936869052049890177203503296173173096532544154259308838593618689362636394552945349461883799236715047046030439176006293817987192965772287169181558923699609953526830617028882914619922977270952112620241059683329357957670988034430901462943986306640632831914560251855361017299471315380763622455537521394717759035501735719977818593981937146362685389337120120136524732427192298138652728928830188538967262679708919764569809944973954648208338400991989264378990757616519862704730835710382046621534807034161565397427472770803151870595251849240746111605055920853185748863968993621868024978399524664532605693748259966657569437778210155832345532439402663893516728673483504991166758186564007393220340389317765107034739993478488356505644703603719456178684631231928313887802785438420986528333388137098730427428785037965274209857972879155448289102774894732926572637438859614915035453967235685298948494710534915954863828944238634646837197294444300171773908437470314342507596316022508726349681951047375137299959722697585657160821986794206713065361428216102688355859057666060038192186778681828682858037419689900423213920498034963775615967870197585655888660967264495369943080417016412066367772404694214627346555836152136065263506723402910084048272424241834194374318009951934006193982172342241784979218396850668377495321003408585448072401209875606363621500361845726765936250722786262364329013497795241463960783972996634718270059155157698324682793476241421274241529902818953094366997059629833572820471146014063162969117306146122531779281765365036315548023929605521369191238576792880261828143854309182167937074496435396418007791244695035161525466291886190003573658335717786312269780998775027255982454387606193711351932939983786677929848879166278814989605281965904358522982631583437499549531507821729869140622191413972900167405382370168872895563903368078285300931638622218199354411023823708253119435254259577502123864747557293183090456048187777149839954167747327567336256241485771532413196842246201634982804530411540655660795833801200348898459376125996452925156914245566966913399511826734461321016490614374269224229841681481529912322567138366924527767461742297314591972850633887790206676543610766939576102146971681146226511720497903913239590784136231129324239139247844279176852508476046338504072143420482304694019947720895046145376662485054163903893949362633101413608272175645691838225010251401035799131725993263017804067471469301800046982968381287599039353747461158709446055155206918990670994865309797341287964206586916651306487876255949906559366653819165509213217988926046593778403285021136206030648431121791888914117580112268330047909082851724693031288452871001211147692707986385201582512477091191234107859760465960112931213502280813935762005565384304941946436827093232246902971597049250969481941361744247139278653808840547133763629053314211666743487251449368662592383715112512362913937372013995269661825216521780413510716531423227806936457877052618693089037377331825012085595785118995893852027327441404433478923101463595319658726049597818359683484290676390254780387040025187999128438924094879773186869718372011343398448439068334466574755992531755283160728884409901624552721418796053034112494559429579407606149334711257925548873484599219297056765135978106121596787459290433558255200372330317994144397095571396425892139765053072952731407754454114828440573224689629584771953740736131522357436097598383775484319886447392233443588534959067130732057828442983590508925955212537103977004228705711315692941907911904605950445983050363782085048132753035349114597735046575245964409695860452449069297332773291861483241626982311788721277810440031686053953206378622934144679609694744056328981871184698340897015044602693736398647244742636887296229603624247020749141852694436474399710743521801186348375049929288547649216826848700967846564958214186800257126232658406571832247185481888105215779821244242795070002761305446209525901068283848755017217415587204687981265532704288611183335997496734063140348280171254573222384372302435675393242240387722766360262665082362811131605219693887499830983492029431275694897799902528817565403423874060650148109212274740328233089098054106680101174940213986079830039079919667700171257992086846860935562371252176797685136573802883250290461471517579993595505279921365969891796522908052121023694118398029125929184320732568522430032642220569180832325882001937264145973046468667957844025935058054212279529510415441523918381584290876581134230085586235964567342075871872254974503494912682925393991982042694875846377138751222684467452053897012685246934107343476170078241501377483840660807918829729812586567347005777310684973588016465112517817318829488524888363665355647700404297302395245748350788902909965085410988929962950631552914835128198227963072463413897065908529875993505707517681290658669124611176730270920476551591211133686139884798908186384279686317706033741427364017078717004336714661552138827258771888443840986026856624352865151786805654692447204610742575076941990584084442909281205875938604138858576337963788678230396830990415997940569958193092325631384054321402766136977696902838334103163905387473761890134173783995969938746541431806026919264970994114652373630939319193289499126376131124214422419016240622556517498060300884716546093518698862373938329826018498193574661306906222102501818604482931135236813122493501980810571168112496902795047584848015049165492555494349150887681234228189974440585486859732320255895334458674273268153067529964814883281941065315069221920679573883655777324521392416470443534862169897893538211025940023220197211554275272486632906446907675251628695068478434461345337432930384254050107618059851060411939923096014245404917864932513938862021468550572080251590980299666909331970363995144025236204282486776702660131741977617852230374723814757118725245790562422210249450755826258513877031615357060380126524526306816814815381643276231674421123782914458820078533301280084569939399803807876583355584424736147681818440881313650762381146668284503468695463777672614131217362586048820054888771233435940916079777176804205731638464756730816697598730865015012398699172511877728028388356117376455695383944326616900500163492571174255796498683500296849971324714060113698620481981069006285084128262392617090181009195314910849351257336709456290117896531634513810039081470542140882191446427016626428399180470401044833136536684184347273039148667015803723728430734754054304637395372798185572873164592107459558427011022865221931467668186433220319408949332083829564501756809401905716031239003836060182848565537210652791885920406590246094836710201871386740829420769249079339775788444222707751861434664372643104503160561670549694536644927736835526990180462055487825288164030834872122918121505745514200950039859198665047680431063476517187042976680375052493598153191819308237195276890638943234278414133341454136263398236226459433712834838855421534080212191448771348469214086516554489766590870704342736558441991746522789104172332229224159591514963600343130305668726402477691812918923539537286268781028885081846675248561976007686451341906744197064081488521102744407657679672281573384401180862099397461939117612671412735302056453875329912328011821543074589701461712526192372653585830081707882930943377824915748366121917361932520541070940285800790351678301197965331022418380423990555223561050007628934567564756018851832446213340517194976910008825191876903297197694151349030710559526789766778209525384995232962113626207664896709118998901908687712602985692435825932174526995231807521474174587783734154446877522173704128003302804379391396057162353446101210196497616643645828757893593930826254521587369120502851309885131626386474212272128920130704769053138167210817052688381632932595010529931508571294786770725289947947688965151757079838306491136937967712434745326227563903867292722034958449155697684771283639308738111606681410003017861472250332536502298924166367692316460539881122405826409553262173455240202289575820270914628427549848001794576012881684863534470059088556246762939535730878573335223563795482077249398444459126892726438769669043959918398482765067868184694092888965781792851898926433444740805814310581324116119737086312650330554213664795164673865672551324875390618011435988645783511212250845021299677875880737196846834923895986969285775610839635526661497772208632511559451076158200699617521396780406805533626707852380105263823142741412033932623637217523304597900804197256151782276093380922721669987308215216901150315820237581401844041348547280096041727968093363570245630217966549930049588820882020275756175863417663854751185338641894548370500991651120955986440570559792475087708344791866691156532068745196011802979975706332893662042065825583104239973815057927350220226418197250068921448993713466164749482140476091187912148301473260845006538318425922156756633371892776538460242056861026920130784231847482404768265634093803821465367377224487668504073895203075471701024294120809866806767686415449974695062809760924698772910592308968277201625253244111232585357715359284375149488802579801210518887843954193633788501108307680153546798744709088081590298712525937315798511858436769029276573135219337223618850666079126049495068272398452395519459442320887976237292785398471123487519475408607448641437400562741575553450783229145262179280928931148726375862598205316412998276027101310551068087558692434613272105731422439456286907387864890117478622366564809237482502834529503710528299067385614357452443224761361838345470516144369976266122111003542132876289769423896198075150392486227365360311894658622275176787660091068211137010071688952542359732371607433744125663702133520755473952032598771560559509708141339242299421120626329676496645201950389633144599289576858777275990140991617564717428098429758065422991177547351907244005728502840055804249962366883639658616942466111198131719713481577366080405201047585600555609872725964723384876792118310268171999756294549231162076905885870914198964652837552222948378347303311062517592024069814739577326936976520729686686852239057139600097978196878654658564874832450407792287985012652400765685696009989185136698183164014248412814943011738933728414487330409577877002403422176598697056078469558250049250440073319679421003809464967872489901426570158901490434185150134118238323200124340563562027319755485233121495214438601093471491795547737892331923533804905011795007916926059570560518248029592689073037264436919659523480284101372802756634199407647598143944095151211348765625597421642940550436445851839769549254124316288885327717699259745819433808262334549381775098866661386419580344553465870159247952585351489029342045657740496218716188690704451680519505783569055239486521687316027492808995376327874822402247438463953246500483727867896755835047745391469015617093019965359535279381354841541606635175146836036387493878039403066094655044987508375827829655515270640807408524696307290964847705803320208314324056176058718490542776294473694351587675562410812461727079249332772327834318281312390318432530015327300168905688724030900446895116945126334013676487872874872796900772765933684477969598765159936268391326546326762666273586245979680958425595221444229964594527511475798823319501957188232915101956361915194869286613933440539039080029887750512398684252156514705718415615345646401254339168953750778823821799185284767675960793072533445176116543760612319065710535741463820253091312671463347673225211929980153861284156697486523538215087281600948758817950846739380993877491605008824641410404025807324030271670681414690359772577437880735300257160998705422858482650964815791334155290455606562046678519980149754733781514797963028221714692902583970833526518934890321132465344075237935380628925063267081597946961540572258759355882373274554125132767386240023853444844486542896912520182604124059057596799378198210710506512945727414195065679528633614997772448658087479173259476324224954903544853958068609469835789985205290847217873330747963785899493025386970079794055822544904691735449201916821960935696728562405890958639203466121093092874009522338426242677734545941021731914618804415609881891339510141791690719597966350964619441057428511392231207527162067249483246953703781972571057478923478025142780224046880140215148482573586347644461844349613532961055166244798755694022436894058433243371722143078518104563660160461208760453582788748276074296629844014943877587454847542871834343741325188691937083987616294996432157275174383643674031233928053356288856693881837002813408497279374070269197779116402757518139344352131736692285848816876878607914902203858446632112874347917469845944813540977105433360532006603446597149317381240086304747785198794550829891850674356776635839363626466478828623555108584251081249611504112593702469582317604503017401765976395115441787156354210533531515050019007254049269079859312521261618176804942135343707106476944727062706238100066668123770787304944300301497601162337776238051520489676592535684902961687430019372686340735774149438868572309260820426542833348918212793091231817766879872439263893357207240673884787532330068806715393844393486607760029287237820129369237685351153219556388410587349288467023512736905929671875390040861212689082540510782334302820999148496993086672132975546991517009110959392394602279229946985568077141815273404408162277496491772640024549198164556269759997153982727146150038797029329584702980677058983552457698971923803884019952127552187555703094666042763085061213063941845630850638001081957232637434211607251026793245270163680740089030531505049065514221874778906859830628110156822745806413637620856769947945422497652015113041879600783161019359137513255483590566433123864505579397199260140617344911050769642820530538758181493612343205066806845480743393788243914453794859350947414754370224378750370505025569078911080407745745708437985364889235971763053749781348417131823458585595506667848893499706193565255036041532641267552330737812469542618547593943204970018016405720781240815524060057295179665071269783029734505628032156809110252508683380639677294463678603081005902266571665918152552221919310616115692993252564553977345127674773471901553465213376840937732742223238601023401589036144959570959530456639551485204084457166659988678074074721785817827033644524259935361044226921561727411584676400015658818172687770431690995337802658009377810828874902153504911028179327213088978960586403849788084241593112509366740761599794453444922442360029181661822486748096091665493638614094648664203659935303781279836327030356504613347678096321988315476540489282633342709422323637369090755781030823912447997239409402735800849100816677012662094373678232057539077863775062339477744011160116866295250414606581500737148599477985814468499083251571087541858646060307175638876776534214561944304720851794048105533613188153514762888194156980442396567668920342400095769364840707800494835638578560140055703713211161978844574028253715437552056738566046426776320430577503706030302765788032891314292617281980470648962083385312522444282118889351353915381096996643675885703138223131552082590575283773433824408632207439814178515657139762855550198201487453179226135500728088176662798335005099865630129491669185816651949113450300059744677922999375193941784942036117253972236936789093775668903616278948302329357542626631416820581460271497777989295842809819142208965142592143530889843396957428871944456191681044597877321628926638660473855737818861995124110388131330894274357409262397045568745932482981599382618333523191499027106405762485237059606413026820161334331182974705851048667175675129361604972350491367419609481652270175384429779876061860438368748012872485670829056097231662999115219705389143028103506145676618255109123140856970062694038932416793124932162328746907990893364952950829196063749351317931602137071737841603532452481441649160946813962319133908500611169834940111481529895714798252388982117655360407306772498405931541770311294620927158985473501156121348505881270270272217672349923180767952700060196717820551937704955410485906709635980666829193450945512526359246322760504663333953327068609642842702769499053462625062218206800903682605049466925264135926414708971837229126290871763300200457999653134684935881330530883030039321423910111943359645121693498097505582458449938468404395958395216680893537327336542926378510703764692735735083090402114720286516429379325368626253053823099629948349512149110487299125780408825449476856200047111041344112868316415686451801073584732140063779106858232250065700373564516381177241524088176604499378949178216532675469031739599942885529502830410332640355295920405343165246467566098679778402604611496271820278910104027233683625486605615034413614862196595345240500397988649072790236077354118017319341936809741200031986830419090836122517750196349763335244727619425327735814500113344367053484332664078610056675759290120688541149675297047501147841010876651836129015077154538093945263228249691574689182102464709538283461002466585700601047579310428472446311887330158655455250609094912072369605167339001990134280655291184990582587324189528246745868967333382993754640878486944411674508355966805995991779096210674305329717243891208729893704973845793792235497411016322252829913802297068213308598460039476137323105521388773012554709722823143141146655823345466495168818495697208490462964962851344628012217866369977602670300771585070886663782932667832420612667558290617233373177614431730496371907559021502835100869722206365737341564762015954330892736697022978594922155344335263058740402493788969233627782872819557507113274810277333246211152735758174478961814715208458755560867647890874232287385782719199912470566414687635312611860878933826517199391480316258477776027716234148093219078071097337153521996026048774541262539274645390250999783424952307957246318077164430721566811037023715536735079633648538994562188477729913463157065749956950714832676408077649825178018872093832896017600018947314757616646257511638435475512952950780448562625730141275237422095077937485455370095025181129912668873642535681062783405479780326499284402979517254165351800970740804676678286139004284932655992532630449131824891576814192152758980797419418746545071386819916016168821696379090207554143192865292467831476763753973620122619380338036648032828140149155003098671409309278868262011557968100949280368446576339095161317596168103164929845598902586163655173812434570694975500312174261739612538276253376543193105853559756497260049250706359156589629075563963287740376996833946580188066281152199262320552185587040607437527018939242197823992385495346925216120532394965847819153571760095133677196789735840932285088915365634935490678893809392671133841760608052966985364488026028304751925931052304363596182093970170263184793148026223742309733974482306036692046491295248995585552348028598125016370338272087640769108353379538823111101629018455690221757859849489033441706148190252884344750266481760431903035979043183099097682902007389257371272366514212583391118206599361326837291787367960429409510761358484135753472812369962210191381594104316469881578243625819136012342741937762132674440905592866431792883225755565294584144610096747887052792197526712795095862429017992963179982942813608578577385346483439937951807593395037993953785159515458627476482544612840399914996699550979771801995120440558399898017100216161313317096944512086358917794610686194180347226025234700410820856261109599300787202807458272384478694302449970818628330186326652159505535108994307986402361022275101521365242807275925818107192850567479646218903670622771634483875437228069312958485997611379817622586943186198182879515994806496466983915464419101392079842757001680008884589091882996472551424750233259026323496217128550311083048975886483863380443218300514320445630275797372276128875044349241201226125134206698550543251059892278180355270029355139682886689478446709700488711795313347882825884561428101303507275848991495977485426505131728008463007642124716891926031018159459065182366518120161109370579609745668666721935806995702341824296782013552728136883942038462267613114630236208363156054351343375468525812038092978000854121918919306902575632245140327239171117909715341363436793601228618392959437002646617689057879254393512639351087515692557777161039301366585629752571738386868576813027731848528874216777043785853853167342392165733442742260874338189467148405681014068118048214422315467786257330669340473533312332234709834544959129209713050335389187137155500259054250074004325772205154029658638083990351225112293621815331855180258950836728661552838108377421497645409259383608057889729136822518589267047116957571978470214316964916084473045815635010063182288069280170503790027663816156807852191347587011091129474479977788956397041318794551240682372313894006019408410631028338349482354040898979193970125449539941941348983297716642271240731344454171050858805579009777282722441816641021088979653284770834748789636322747718707592261622811387826588068809027650699142607633384867890999084786301670351729855205032931116180780116833663203930950630370477684970868783652963438267596916165252674916015595874133776389616004828615558162733980718895662516916800574240525220103486511013587467999886937216621530227717074338452504975957149521899735487029304890287323532611767663897920441113703950707672480490829176615370160515251032156444023700217656147496514985969932484556559223538369842541473854110763579761692784001702436004981840154998838632593893089572778028917270374609628699377089306482122293720381871894559037719576414305347477451082731538441919484314196824888646501159874911209510040309131100582782398739569020685438838078149080461220805599365508574551433816901656020338874159991515816727640638192164108158803744753283174558146745286903078453167837120385855428356545052578769787079003015167147462210333886991006090469048026127535410398274428231038728891385289881337288034387433947620572754732544204769019073393056873307723473906151307381952365511203044658842628841438653654582330996598520339480059967123583683622123940618661085473348822903023122506422826517203905990042433432371194993461085252703740732229265226104773621673286125945114378868560730875533966708295548409683694065832600296065832130061749839112599977861595852327365715306549620698653175550513331941577945513565663191056293079957963511586405136675386117897102776939510159136917162092434225580477755312492974358200091152015150281993435634426535371693410535857553113376917550570277163301919099466352989092928237626846171729260230624733890760337557692222282636960466226653343776452600472733544154286278033342981691328345472331923605734016598748642973615781909595075293863142417549617546796414188949433603940396580734563802201492715042314662445448393954908917683287843604214610534939287746915679163419197319525825627511942597268321832720081542627966233318130987250130127820203263203606506241858790139864509938467086914794259415734940156971541066686635774689155964127268482685085476247192956342958848839628952493150380977623978750830450285078863231327634877185559858333474199786904721178933285443569832296971856272982105804427222976879422491897759053142795859665856387182733779556456215994432367970495289567522078519142555961950495740600181476802473787179249078393411729611361301939088965776821362531479343888462999555213465399380364792093755820851443884452905712041350952694732619439605158490248128759561196377122072703757122896175486654782430465868533645717865770974594619387425462125740851354165722919140473339798103763156395248090393812711181284841813510967061334436355006747866619652933743632815548870373584638053770115189957019686940641500385608103236540848250112479443059718671632959274828582385708014483409034214495869357837576488230710056658496751921739345498562260032390770581656641140162146438128285624854961272914291324548674286030977890814326383738905366023215319495839313761958773705184892525588876396708803500297006625085098366387494743691160178733800197238824960350711165578257504612986120249693594806829504231525392554834961285452692893956479973413997715073587044829784759645343306617144222152346640088948483296597925561461949130581805452067443987388092921432541022168337064473176844174018838989596905018178035375362886757302500361741128116123279620951161794081393770433374630930692507019901531995828074468238452541121340878592493034278538687672185139420752159673093804227977241744627598609005842800247705034129333434526261046409923187636201864773601761780503148353936624344157044162745745944738191673976886113617635552562063164726288729907054822142388544935674454728854451926718712640194796440198241270394026795339237655063487809727460312956801142693129344738822653723186424153807265934028243076570200381894100483839496419166858065748651549634522376410026217164732065525775171332550600127453605207678817687791996603266521609209581547319730378355641579508396477465415205982702646684207809015945773627732003619509208663813504475685627667048076167883971277175292125848748393711681163568209062620614954530759518854335233616089810688267886426243575386987119317504468116722836956713214758188235595575635103926908748313259822973530304858285077233261559220434706118024387811861915539906399203692184727261479751953945720617492871332316432748679222824670925737929950998502770010461445495905640448584801525857047192996544409872728303690737409844375240584594304184887895085965300132196919924746460069887431625279876135055698137224353529553007837933228811767399746065656427961240125656491078287295346163986110720779398835991189933835812936555644042632061164245324092572305685480956839058937181284313251231858621786149980552610656283240759695185843725331810652468657420871068397839809801126157434543388059346441004697612480307746857275885455194514053795690040925527858109049573661398497932270969108528439117421494163537966599630875086529868713115210943722308333664815629396633097242226774095142368835274190969624069633616975502242701955721865241133832249645571496497689272804401402083538727515768751740768663696808734237820355435108145145703074242590725305872127404764038242023024135707360310677821567037833458496206877554473587605483660797503876110489597396767574179771268411392405115364392874945152851718747815625637264782738755734842803673719191731314932995119583863396265624938019324759875732539156339286741056586959573178970566401848886784465213241323240881435240684110982558108552821234047877180420836487061437211206083718067760744948776146061689354692006785763307577412227186602138161339683327823813409449902260178057624672014772792293501985236896472066032362043656452533279570011152912406111123692483241358187102926921388890517519016721574987650935539738426423184049896921405981192100638837885043323423984476329005663513777285931702359200304427185789156863005425432953205886365123217423488821566857825040929645117972112283720743269384461824899320371627150806531486117543544982350574045727921172341090543691341145350838232937938438013128937316298267233721738957111143136701165018807516684891434135455044946770195167036430072597254228031012772524871727765643840689439914349726650646182498832163585923044409807576792225180515411345839567836527427857591006967592652269832218484855997204695956040881884313155906860510976355484134823283579027013584005638815247451443614156300999679826878217467637228276556814874623153344527648678663016922853901173516276539538384917829377014482165323942596705089827258915845083457091938683962062040674990356506111448973219438550157306755324169228088710546822508231117246314966899966365078508888084640292610269502064733923774660349252088314202682113901156025155975284470738907105735516970875467026571521013849742061871874277586475989744855993066273313058408483543619227476653256797275343994550826655832471968385785850736064463511173627350483873914091283790029148179911185634561320256551587763395534969102633234240105680275903238057718481452416429957472283769207888392951582465008220869642390882854622476860044000298558848216529894227924651813387866260100825129930363645326691715561707555487783985642112225996247404768208860128762300576354793999063133753403136951970847464966746212940693722933303535570425753979209628439348952642320616571878515755004742713819594449594184822067077627438507117289231604860827968149474969534226671274751994809673797459863243986635199882461019224325354383516261169615844439209865294666943942068997440714348933112910092831530676760408543805501579522997420241398418999879126579528845702897953499300498135601527010192377489208737940030933012253559274494673914023738436496513901980809891945506134061747637359984937674955070498677424628115718329610661823095414789724621275389207645332271387590737972771788684174080492818228021130631083416198884758582481567699843811647789959728163885070250662252580074999014446558937438987295858833302005402116035303512866185605804653736467116071673446415229382295809084107873604833555620114609814558657605003318230291390901282942413618476908615849848053277835744483117461985451954625429646445146091334704699169350873527744323962336445444455521336812884863970072711920399123386208703749170478433809646016001563047603477227613783374317078562429432775300409332343852421924192997242068765688820824654097477043026747838906341363219201336676595696132721777799756540187930719424516444365295253109335994780532920772516482499138453556213459043028122098928994615698309738079488589576724738032558587199794009247361696254995241781899005574351542914771735843748449627581246470027454310831779460470742987317979010623761992434918164399058639956534667890839502291635781954573483495585519856253857263973166749470253738256582351139369984090244463111720553062488448407577512235191198809483842118109622285817067396662618933922897379362125299603045624566005394287080926775413508079799984474351783595946464575896457217447439309266251405809474537214074390527957061610201252187289567423978912187403466833226272813440947601068745987121427461560840459937475494653218039603522384253714484858341050976589292657080843025152800236918191107160076522295409372174297383603542494130913360269923197975175494598569907257771457825224579460127824256357116259913727512544016602012313539179925591009193214292643837066069812915698971795970997534693579542437000592174916134861002108499842013782350233332823385385963824282489682010933262706783563524271697873897592903434631504238376318895226708194411611336513057749928074364381300210668237634715662519392312907531867320438835793188118943260623654871703515134076123307950873712835271108670705302211603639195379282649558002240169523026664019000210180320076610664869014626038080411420521724320422105477465919777449325484225086693572135599846437512079510147677743235451530223064863796630004526432023761692361768912879425969484144429141806953205103837224641243960377621755412427953765857321615305366822699671028555887661046509445413308450030335534147976067111407506140903155298877397856961560956835914394870529845343447553819308965038075862709786804513101334233920830872991395098311092582709325552909993627157594925111572679354613272000336840976897289974666412751028754711267005203775240299841584214465096072438362669388123269158071377200579938203802392403593009037374693450061047811660148177170162060174051231097154937094567677696317595580275477274953367795066122197950911904190165684960621548825254965612879283920714918138553353072504702623998236779876548147239258941218297313105214331265342372761176724044260979327865570186178310150913302973543365581531284809845213403453585096928618788332665472849185890891869769416700016154322031529896982670256452051301613186810048002466519341310305952876172063015040677294841645245823498187594825489167645996221230904985544179726074958255571781182057552125465565838003535924651323781844500760952838830186160232738363411590349929641119272819381466103554070117587247600746579636434794064503913012610119658338632318080989621832725680963792823681359440292464295117924224637690412332148678360794834750872426178532668667871202488710905334376496307883948208833279202300960190870860652117203556534614863769371025258830367410274153879769407388704999873473850748199017913110019940372564359585878370591934465591735684465445261788565448433021830724456161483378082200248682078013026241718477075184920724977069759277927303166384409859440051404297489312937868555842112625745358019447471115541754597829865491306204605319508098467654633246045825777101616321383396018143987545677096526991840228881196837737491412258258930806741169445169796990560859736960604074469877049345297266638553264496401213192937586993984212513297930497307843225638103110208515617208190565526648094799896893482741748328184088805712844171542408326797948871859345139817467546110010226908486895294129672071264616457212690263358361586846249989963968787310577273921127213258492347002719388026834479386440061078277825475710449500513667343821985731681861210392264671408031043597440614003553889431322931906762107365539681610833898503463286689199730093075830891162964871244800853603070584058995160117175324161422990110377367021002515706903404665690830076399700673979427931482983812318483564313753771691447800742025577939243390170044724958466083529532699460599103143065426814138818524349589275860213338452868988644848394766173862808677148058740989102266457183251415541197482404815080528900853834316353358619972060297852001255448486144145730185250852489631992384363842408396303459281096301215128950330139106111226486243429948380709409115141735398058421375758245974208326486832393874911180169272368024126974020816886904611315726732996872439517380600441733303484844025965121560510134994858945520813680435568350287490109055285290090804583796706406147946493032904350876963541505164789629738504208602259106152967764189664056402414386217406511112437059805512573137287922714900619221956978090444556313302013179900916233553552125398501053099493788911262447365458084927361000300545036364574985480828706487726261950645854118430999021134175502975397119128506578691658189567562566502175533302163274575701938392860867705850423843984455685488747653163806084331695900795675450472761035608057453613798908612858226657938245654268036058174734302789080934584309599673447857495492664297082606547310680719036671097818584058988450227336745118669720321909298670591139001198516901077523250134071446033893332745459985877132379181909140188109545495933007120670360732691948138054008600733986860840911549908357091314524821525438046876254166967906090654128831522717845274552342947724978542509494988184034131550973005666677525622270514777793584121835202912296561949083072092384813164527013701435582977149841004784401815185499685699154364709744354259065074495381820487799487437308370598563125375694333036129021715326044773934310311244006115474849751256765187239408178864250301583301759151234492248791635837719992659804758152230788631913620504171998501008782556525452176966600863351337681744935546340118581291140064528488109106383776041577862422778438110629293051374046474281149743716809187066241335103581931563479530288129014990042625895457743828435979593109935745285436880276492137509571225940766857048391180272900744586468909936290019118630504907430990989624688024317140427540826201970037169426563439373249764536292343551592939972062263187712218663300449317089781141898169470738332190381113526618128572973784545773708548601961010962957510471607506029126739084676462776784448295833314416654334115881704426166473056331085544648661539058087462824952975337869523969826620974858661860572290276714260527384526552436826615008072886343048022980701776814303271577942200080803262356802454355630229428379723826659769649920770150750832517628577225089973661511553611557642699249770427779526786021877502557815530999829695428191684353387480529223663872551832080266523165092985083976971907897904855043802040013715009365640113323662696890498733083491586704354873826938419024240287331964298035674259562256580022129604108210452363089293170194093861113090746954361479757538384812700432452951619984366243637248656590062822995358232584884273970107352435140293513609427932877713308543707730223135479108621642914364616371500386500031095832316556037879649627032117934006129390211395724693374942330373504627065885531539570275791447664125268084659834541090329457146329890447210799453312559011380781174961455921325012989332463023470004591546958404796566652959139855121193892004171408527048070704394113824825375204735758557280186872476538991574713552971580240568739433901147700040357392349340437288655048105946999685127017221636553605365543537870521254959657848697193973616662926615491545489131190487588360054514118269074590381746277802120976158911384969925342301265354175339012383783375413634160857400790424150011258852840485581616709529655325698934499807221614865217989495668914105744924781645581185869252911211092077767076926590407706636747045496930905787387547491276265419798870603120807636013355107373313370359222627227577933658982085621470563477315023326399117741487601620578954614415476268109361034129247586060767820673190051631389109426736050760095545573067961347570956329014168289858519916089873447326178134799672289827006606639627440441129372374892519844773799240710673144033939971187992678248457013555632831628921762831551238331346312783693498159261128413604744557586828749629767016183447293878423185650584369386795765362544064753507044119617448191294610421488713361836240439850186861793899709573619366701091623101994141697023318932153154422519532040500835388987068707003856485635621978184555815357420431256628030963302950109852830797880121354364619093325841838527817592931510025516120985594116425975421789628137488856300492770805886632824742003185879522352159108027331047091106944748671914787675598746067959385357296692452240333037269479102200060424003655841715857444036003786420867452101556685388008175776046075871147028397008827850625889283765317946414692571300207080865317617264125274077789134318919417199755495227364107191948744550670151348211211270601009515572662773945116083650790049345751223419935364233367563292489283888293327949880452130961220054344483482300204791805076161812571688252446747144955963998697256657992966495964658504248806969012042656261369932197803801569333807182648701478847013832040655601748344907759084997034004476452610021769404957686812681655213245878529946804615901938249948667739706917697449117783035870457441834427252697653987990159480418753202736714647982832680503778849023882162492502343408890586607584767559411463233568835376064461107870158081352448779445739108787800329624075183820352755857484392958813136035776469095209903128029914655753308540635354588026994534361378556689898482727406821726234032683252915343385442958917015019193592272523534405853424222759648636900444328037905371068937277294467934115695460004473153569290115790735756826180612251039752792403040716727814408257335271630246883761246676024084723997821976974059231842461558189705079348620480153557530841364575084317339138340234270697481733607384948145223065109492291940557815076156275637629138415272944634054607563458524019129540900338828272082387535840166498387977597730226633841173700549271401795662092047698051296561358682483575444926597498898568281733099284348737618717578956555345977878502456732017931038201169635423996348697823546893386717716513909190030539631377069576269126282049931221410781745511237330495918273110377368668610738874019141306290824787391131017557660614236843888206223107590855451036573359168681851572277924439652846690405803481018808435576867330993763502675580134520095156437744824803228573011012056759264545584217592842645322602783753338269701457739690830562332888393364945351350288375441936020474179463720262628821468622447060406554100300967479672257548098768031610668381178704824132536684357178047885684756356018686291857286130338254494906722608353548204587760094920294104676231559089228616312863287913368194367787367527379151912559135773360626441913110661415987796117143614734313660802133624097972296375982518294881576698818607971593825746144215849889493923807900345312232053613183857307444485991562037682300359431581179665627173529334814573364323515831118654219405394244396978261654059086328968614717508763633212543087778719574958757569904534592568979821585527430272288459811770903357473253032973004863279623822355831329822426772763945590194678201131826207224116882880872754760394047289259534549641587137914134267699413482787474449197711051158932650459805241401820172858507574003264909376330332234634067789771773076337095473864459258428320347675188548842340394750528129451372415916153211437172582847720758262172763070222099061599203149862212831051740826856204998829310930623968890462943522158804003886624583618271717456398508611166525188785955556667167778594838007321455088975579561051265585578233037594477676203117148577813463080401891737388259782032114408461735103722799652155024936947791790339778687636337327840599948363291756392523131160615227738636727631160567283678378701934817047048501342318801691097482123226284526998883877569960675526174537428114511980795863828030769729018079079586188902459457483356132412961436694342297708335464006353418708353981171959275058877028512267393333650712571291543484126095141765702488598863281834000378487546847407178423262040036275591539747161641847005354701888638881994653070026218263374693641912851675017315089554786359310550373394976147927675291466199112726269169288466298219488976099228169948756440658864150415931662596962607107988941165698009121678645181571172094089888675244004991921540849427771047424571328521901961748344390230830468380727485156700923883247308157451681856876137149630716552046116222432787384217385808240933249380189330966053561361974509329629632563156524080685798874572315431819506923047650893338871569622221888646909107645225906901486070259744691387303761474138662853920971135218176370707602492803958683124926707386315748621737531431792092708255798253130575622819900546640469686604614599228793627387244416331561187482260746465050648687495413562014574966519016314067415021421811276984453714418616069580772867760421091402055991823418007196272826428667412042776399273069007347803982707025865158686209657161905266331176520651248296226885976676343254584620518916961217850805961698727569493365528455431846953125266481863758940527541129393411234952627410040316402480664710189432773729762381077573726153664456039237077296260770736153864157726366090055695215726555714607148985272762065791392435516669337154623471572676600814200387776360268223189865619995372184999605930611768360685232272629619418712468648730954785383767814438519266157682429489327007470472415960368365508716648923791778485251400062071345881999687609150545017926788723739315538914020187324501615099178716227020606381776765564914167821467812379091098250363836859233369396292337069984754162555273272440206304798777512005110765311120888754069579771345723173994869301088417073802368277842696174898656069256724552841751533983143438488632598411142529235121292096414764744395234061177917535814281450246344258275975493337362887799031507606179296745550713460383629754855412504399979429723767838850775898522628940262928398572361301934211665397680114775941903514870445702480353546635850828522104893517613856891858216689285911710943492643667990272674643695037842843804321493850695069696111787145369104889931791220596447496161564355824655404814477554630364525194262224557506142063494844448918987748796708046026499819285392940217363023564429079235227631010118504991103531953769276923454125309327939679760758222856313743164995025502955877657771831063008085929143722386499228523013596775410715196509398932440026731285854122127445058862621824861079735572784537643829362312778856541594928702526165140894128679461311884922815932767138248876274570571702301520522339090923279091749671860082670255067735177604252221842404735312322560533635419956708159161806675842286569485859964335598182588775957989496385319415542001623627439695089527394533324030655980066783591143925358010365245233202592563797015748373862010992203171937375936581968086582328294037544049375407820791075745003971358144303583810548870764224878565031310407474007742488915016022654817146172551450281741703328563661862307666505216404708818687971486345110040178032788666148884601178194439582721784888100476934616400254527867716176513925481033124722674091961785677800607793166996583529842010742500547981806928236467624286668768983218993018559262931738959463837158799246637055267874555281373481577426043557116976268408788855400140279068610365837935550600182165378996059422506863839383876393226089796986137391758235039013732152563499395769512320921384200180560493851527913040082419657584643062276825082655671056404420978904920355765996964118675910502925869432279727701575568230871754433680827868840867714798878721409975896594227174978945987954204905940852531096389962635947337636507449335739315094991942159913614409423899289606679636292787771030855104802594874531748947123451764983410241609744174365973207306614983581810647582437933605040775934253091653261373532386900848292932761113587143436869989754280063118301889380168677025553298368114104431454318337175104814645373856282051041728120080144250843170312114789411448795691138270869362666740514392154563261339422045214357907248136687900496725421574785381773033080122941058599803279231496255189201357186160851301594671761821299586893862989779171222497511938037216327456564206048274948475130013375488181980781644670140470589577561864779949903763155950658563131598008357973022214423577292974499636705207882037484340473573037559940853600106816000597494973830748821277627100075255754575202595988613117124740443832256439560230275392844372245247761131336500934890388088136477389014560926848396142861616342536325060224101239691238891657980766984652035898671276900623019027466224540373748324260672251450772740763000876367868113337396595068349248050141103790286885936576382434090637786714718113151712815048468741829779127565152819849963795108421004827296977599807765337498755970170967141681633894994832647161089585669522940269385094556939762003281567062045275324946286020458491469977149433890542144964509780513002625221821252370783195451310932775934301208072581972033336456545140651514125901558238123092888820515139036009595355985346746795799814208903115627123756602800797589223940949945371331174563934145428884019324418845610942400275246683046253528801281806474491435900328381774477293081327801523607583285840672565225333800091160325412114850471183846685579790682957502916437449215249096730935921490442705501190213510403618629291019293480044123555965023447005400168014206187457172989731287017969541793950946984476320871963991327344071931013785926230491739144698482864970908469880579574675172833451088841766563363606135804402126054835543810984498965178322393279085811423336826581241118873051978213063960291166033612995634232140854321098584904882738843184258824096499704581148681347258589722260668996131233354340909754594933009585852657529430403739557884452778407451912882927928996744201160529769048256295494736492182107534003437505014143815743383193966653543183376021566466136727279264405158584056895339437814556889518751399038691344130703631105898706645251947489119571965700367297276269901469745523231936114864018302505246607465830326584283360985303340672758504639045253770689649685031681918619400405228331951271733755239139063737630192554383861659152367018914867030626937410838646359886831993938168392193204632361458400697758549648995425378070307909062191341994335520142499671948231421559508296770325284287234580815198708968236769286909881158038591249104211111581410188261214621443685040712131762393827784356737087048533826463311123414546579625136843905458421957348650835079980987627613956363763225571335312185564270819748124879291895017482906815804519336367156598202103635678768722801085328876186900405298252108928858580649104425488677816766812151633650617749119065957202328696135769141724103089686821350263560483528625246768290222635186601963372651556162702865292131686427693626647998016489856858556590102519805143686199446486298158752667796881451700679074576936159972027461041759950814335981135872528275870808595962321429265773810060510228734142709621983657896295444298982129916532353110514669478186524872776876132992144561292925278527401179261201947651949533451100876872698675746235463284788125763854232701023488029222138620456616783341853064817176286123433377755975505838156003458412921419485893178120371789451027202078413353788649748621668479546693977166456351669658033906195575799955520799692003392386320451035070645112800731851188179768047710156473736093573342461270029248766619188014506191544957518243641929398735684586148577664242376954218677240910132232951369191555096544608356006612568218036012392907189864904243883676300703550674923197117261905136941530155457213585533549527778962609717488290925989131905050495951956706086119551679063873826307634977054079859139352338874434151723097724335984422925285442677465964039274833414925200165242491246241987740863689116874081072095060182743834663946454769665124055784118750580291313988336433799847998899498017338166819795943619615056849996182645597705290887861981318236896640208346620126991866503742174688822239400508484305839678876014786397753274990788256129158939310813577558482620830716379838537185419741193169673951049054199143397148838645650356130452668476874563186459761817522394410912034075466127768872161605540782714997569387399992823989059002044245802453054627627858216141646365336090773646537205427369018975638831973777086368388428004394068404401206720537733225695714887584707003398529357147819028941129236692165259868683838897875535110277067447441696613164685064396380377586362470485129027525734907784136232857493670088020307436479852939368289228202322561674812237888061104914515023617782622123269252587280571243763316540296860313563940309521968410266610712277842515769627496750880681284330091680677831593558098092437973933457270735438614102237993821629361024663069566018699268558170147862771625813522413003083167307397127529009271281470925292267427004203245031002949730434849214916498317147738178013986933382387565877377779831711533775976939466393560950366372162741013847318962295681499136263408373940765913534436244258604284895874966411402493245726322798975714141975455345505740903184912684948160486491291716752496490078471333839167787238907964031167486062580115685402260218382098806188331316931163030338911088627566245304038366803896262948738695078488026586011467094662814241280097071773300502649911795947332813504720839326264235058710213990675072027979288182724958825942533102300690213279402008653368040226880613848447358359379782072073734798771357924141991190362602953089008676404228351021787318516037628299973464334155453236000840376964314190220986380487757693092777841960730366047839850991446852742273900435718546585080139548867622217847444182759343172780804151538607529251275209102813729622230341790858517850872610893502967645038167066838498710134119444847593816078684877775945813068590218486156297958713624071499394487153855766998740220890304545038776995663808420476225975102221457254243522279987115788663458344017968897393227000907430659612343257904850302460755332827597820231542694134198743804194354356404569932414137299502401011934646229886329372125744775986097923337011925917360828775905700935301628344875273279020216692927724034129787275622231369869729306875970539118220451027834041597292484312148620325737465004422338366875070205634552860934578108500325401689572513078176248765672091853620251127300655226173136913783975234799313861932572152017878436040013461154317126458330050885504152203018953182150174364909595661783374286982581464814079124259195780513659806098453059407260158784246848209392969141469275674651897909744403086483327797892307397707480348851742058899849800783015013154127290799069545956725521282868572545946350741276692314333616824090275395128171053341361882916198230484140457281803387853499795273165331051268303820115298098462176425447417233970587967542233782271661517099145611705602733539384857828825040929088889205294001478573023538464533618083089876530623789811235018856406315075010011101905578158634256750960332855195577811735373233387237323714814635319460622339116598982484130521770909343544772431892851486638152831516691194665106637601496285017343308750563373275709274992754581640021241943767257966789195901671604359598439640831111364315598667951772218267290160233224252111763586711447838534082127849275238176923666957552370156493537202035261379240255461092213727165524831876547048600395439559249659602848705788147349168719981091692758947890994218352832007723577573829225425758536813474710554311873465917421219265903852743869169406423482369859318954406547354360929290775047186725392179231764529378459445692161467146629195840773470842992360205902950955553261892382265557112653054351989688306364495353388256324633851600441083935263077030023079876919142668837744122240341987709411785045748285190446117068700632026425549249123044123707017174439506414950100160730704160650890420297487578667018494824091112360193088771574023598785616893537201278105949417205531062893895057845057696865305897384091694839019707107652995597871087905964992430029905604934410437595927558009553937007819324046305056220929011724478245601383696985991214525603115054219622423466140053204137874011913970744655572044106997693822704020924222579431045803509116630632749582144025962503624705843251467547841814723495787831183364503512632599584272648431534444650653586231270077675366478875389083572235824992786216447452925366977875030280424321013181754888263783486213489438525609461874775874968358665641839292596973716947854980849233755361766388442844116222120791937553388150795234418129277291338540346557058006475202562738866878029241829739903046753232323019579898189650257404856602461007808374184159522203335772342379866497590923521304628361740255592391606299908740612377485847238082549875146267944920826596230030508713637022738790154820011532958122041564124213087508797242380687294144444517383106432068665521888182771428278269147314270835565426118906842341727362491766598803486012962387303151340079279771407759180161350191072584644398268217739085274933196079189338793796108678165497320440714663356220264569589823981918205009085710772823159941336185289234845437805321936924266853764073645748013655100959785607129965600461033857195389811852375290416881146980944309116296728497306343886535423444723821415688372406480093373430305604676963015353658829387260468100983269378969949368147721977018274852961592268091112089231673910887982043112231775732963231459757487916215610905556357995396862333897215478300356124436057305721958665215528410384796525470298151335710521700819001868043779860063027952727762572178943061760545208366547877648217617175137537188895591916332890103059305844119568785022516294239907581410004810680739002817198092274497251553879087470647116608997782129424320361847422311572069167023179781414907015746913520520614527483087382091814413028551680747466988835860427583925574092066313530769675646471776494438038803311286110491611725244649450762954652923317627915717540329674233924905251299628964287259076637980697752331832385888986079978175151189256376740330322654042863631526054015731673091516802247413111408946126525912666417798829493759689396288347454364774628222406177773474845399160345374509728836074051833338717734709719862155628053014438448415231401340410991497894842929977973512668011451284118198117446798123507072437323492653841462952523015100189165558873488973512616885461827990652566752695355189857690720823322397505436939492763170323608715819791032889077087077116711341701137425908111137623208043928964621572192584785337179498365964590065489583330367353607718518487877096952541917672119422539508391561669129723663202868650696124360112622240143517409598341393601950681629252157552235814991213955314540151854844851167070641167111432267693532391554251781654596482473363859835045474886355035870332400422417219957142981730232717304926280131451735912200698980146654675460828865244623740003307720437909164972716518073864975847106434177571635002875852534243219129815307518026515400110346205512672014843138131853451304729400038627147923160570782818404135232732658801715460941578981775997954558407600480451468973742753289864652359692134208741358592640533809212901233657114279452993693532543155716521119173656817636323872666230619228341325072573822931596640434429284167321233286310393618738149967205367339271820616090858476220249492607805325772211439308445853884678160770454553610748521351183367112697446609835126704067699630362405444729427914042106951683394343691481081036134558353058837215748812429839942028981134172465980978039194722483078383485205672477235837397878090816914222737322121985208486695304766831565725382069155172659225698489146512716643393443735521943531699827089891517446136761347260939871265819776741956735805859924955617914417748160713769832261309551345895390506948229155807160777335257697556882610097905805703483682529000300073787026906819912281817058866617918577140238743755483453818494753260898177992562309491729011804576482292361828222034406210161618671800135270928616151370907591244997697596605514249269853982785226202078366138952501299398692083418756133000404746205492930783282211556105709131570465590135044981873601990843420305363507583263565408976589470771923769766578776868031530196708012683990773850010559310264726601676495321635484206367908961548576840619956114257190780647634847769585696492447568295831870190539514865532113820039214508110540241628890871087115899438924283361126148851576222624801046838974449361092197398797428375960221773418035193541986615673615690243428732709975691909273302839975516456054812901526365615780564622125772006311611471224083109310589542550968050042671575843333068554031052434161069412025410475271588462150013523579838732714847364040781393176005555057616505370619486364915165576311829577381442737224322193461599430151707875706936649299352445281307831003175691929405131473299285686865282716642470378819490292011003902732810494404447153280296577453555103412997036620600063867484981018610919445617478357642562459575173060349243489525813648104586379374360244927066570555878215605983406482088204424679563863605442530473978756672644421170323485049429309700612634367230137047025898860011780825286061437282481868961408679004136162573389736820861844139492892609836559779374911307382866876247816034009516515874854345258857455208603226229517678544074575988500702176774025318659440796876372777562841367445656855582765111078156050429509285264691115979366641895027226916745319184593837768628907763944156856859600054536153509494191612112230579249795315063255038910000341153372850704324679694224829336225255708447799942493668929862524683107596440944047804386311119936720686267191207730949570028696078752757209502117961526312559804731377519322627911938515402994900509183274345551859662929647140765835939565910027328614587379416932091172382761587906259087949660530987007578308405812807629977473823871575905959874453675308240918912914947367327710590265775760734047971301260405290238844725077355636482692862956071233013545939999754271408449952382605476889871029105766747715298236354922713385599250532636955613918720258763113828515672768236706417590894159742329089430926611710470054835672566139128405691981577050476445056912447022421291349910239384930459659235795930671674600203975983699878163756969776531403775252359760807863743380988950205573274371510889413602014512972783460444525445644626495699441373170726173025301418760313242801064375149312307828891034037436065990312081373777630414384267432718320453891641696657299714570645845256183460350043399504723841151291927633886990305309943770250221970216308494632697605489238347955024385609048928291851554037039674094555880097219365462339273349332261809661298972448567948772706707707023091257404995300537361573820908629162510515146702770298689183773142081034011518417237695972558083552214644735409451232047352974913205134580169077916693674732066633262879423607512524847095700638744184955290077495482583970849071170424321486307728812268928185744508309165048161646031018907885143387397519977705910836673918385256160603128418458130319144007794898610627496410650904906430058892268824683696390798065940869280503580445587801333366847070107992949673956790667658900795966081977131898119460984433492910831217161645040095043252621614643073223009532971126708973268499527095414277598078676293581237626021441191256723109623877244205652521217709729943395281488401347175326266504745291112955782345211277983577122664157010376512755740605241416983607891093417714480073986938025572111248048108732658991180712071536562318890540936373225627986729501777337317246233935075017340177573261382577161431430432603382665734922656155486685994697747159940425175030298248429862530915581357185901538375640842911256079723274872802339378214438271420003215045834592280851565007643003368112841756750862597216086322847214828225100109621336132529321545372270336335926319054997414460390358645348783729871728984422286376187604968301772042364164389361003582412874822354919820664267794931761304495458350811943250280478269537061017277495764920124187367577775131934777535059512759542866511823633104717020287171780318489465267178826699156803651494147483358179341272382762108928686616139853430925240854926276769175319916391862917815996700696064897784756180806883861981379344116367208236591249357561742202344579950323118517951546154359304530121310884745433916060451513565091140641761126212849586896031617848859963493111491791054714917988873522432199090729069588846185330078370488078026471997570238207793434303332157246185269594006380501819175511746725934517327350587685505252066530385553241053346691221556286264730560282801365157378299527983172156216494860986563173591075827881153621765289881985101785127646412870878807439101172088174970304428066947322377576105753717918357581409051217709216450635006479210512636925599541300102052281416080818069730487668605209686737206242864825721069492758789058596177093191906179231555971835825525870404588285898827430097502754606861020031070269011426369602426380239263611492046897102195626106487334157400729245114536518404348774129729771898344554401991453505757278699417949632251996801048682307137607685404953309769848528759128213090720477747575958041904039109463749168990687139732332979402779863166778670034278596132280345076455610756366075870190377967094161380398354058696504595968108374835722866356398390192909926627657442338463420891332960624200157509852882700475057928080417991779328502659646959548396547286052024318187535684786388411035461832817687169650707468288504829724805402720991329837454032321058120048812398489116040294629846166557326001023081626269108328728237087505094337049615927411116651352104593584527910338218428856481627748592625334762479316454548509626830190406120096623901785760408053445678325242310495693015276674554516059443583106210770883622603403212318216328245112513697931866216869367946347095909005639575951865749196024885376275564573167149640011861789814242208848201150724869258279054211707737951522350533084515900987268489361368212342919084359942701790146329505231330018436193393036771008783970873790444962952215980556221497306568080434513025423697497337347737982655365684511196849245078625818722757297673084268291644432381620836367744134454831901677903337310422048781532050487940331812078750990656295495188308374337607398170019228386953176039539186284883373340401330255947812054152384038180859754521937991856813709884181327099062746963824782644124289994697268273734777570834935407592698940470353662122226113442636272089117329971515009162313383163420688978527006082608691602348539470638604419636832973413374625290901543252189122741084322091626419131870824769284194164377379522149532859056782057863603215262918729180466425970767801348299916505714368709854039119049068481374541663499707562829668480444042892738408936776362380196621962198575897356114805865143734812590506267612187362988337600349831841215331494443847584975121798729554097055861663456749787286727622822353474105970751859316360252743824500234047633289659672592277069523372083649204173730408889477836140585285458624796729607955588057866942372601048147058479543828348667520726118098429400233152734312547365427688567454763628758346424569981792598724145962222313836827065083362186459627966728238320042762403144035042517178260712951263725049695841995279412319998152701408828756587349911715264536560531185986171154488527198410621177452090037286499034295787800426955157599260505774134742004932547493917114418635807636075604480056914926173265426695979696283736842430601084186220860851011818734392416441299187332647970264115369412449923030754063322637957451534838529902913733028410480980899392898415896551802698766559949302488792093493190884049413076008090559504011687315375404083450918847668035180838415147197638711962118612580434009815933438504549526567276169492567062097369890979140992837115591398469143130963628306327480216643139435529529539825678843436737104626509425686649142392773104559751490445575113177959765107365897942327558519432119399857448126392970043067363998318689675342509114392387203042517974915216112280128368339717187785481400806226131554220388192394432093351504980519927617595566288768558531034647848968275529979719231419723713324083330207306438455807779153300951528451292920631732579244905842218434827422505104405190016822136227479796959738926534378958546413365395695958077935645808946086865448689529207048704830209030688661026674647657080779452984968214591815619199276689104835707884095451271610546309341925168013873646018692136884142373102067126392381372437313105854923416327892511610501406226738477834867074597310049328443053140974875580450754962666864427606968226341287431733440008620058995984200469168519617078873417679819397051642870604593321511396014283755755380695573740469970651753695459373275475693816568049560398353753512648456801988551463654906600065184000019243823435011430589787743384226360737469672914017293147749069042434948671883641884363367363719338626102032144108589875392915461701058989179467237823158341333887384023022944551511909319106008811473922631296459424472967612322383141888148530481189798296063003059595742480295914123277799295859151809463722152653129304796659082856378206214144025900049628735151488330265776551534713673570205921424805653283087901152453808931557531718376137774905056774269969814957830009879392353121946023127426271442339029171092690852675482159154441078831376286760510037840238469709827725213020555505919623717516472367010015692816847259221963382403181629729566514676685496126526987288936609196265178760262198507589968749228064325363480832905301181181350630391620865259122338731319672842695776474268626993136610447556866831748099899515178869269036922226284773059758176294560955852277315141303402604505347041197493024319262093902420758543084298878616521159238630799861336357042305338840192210722232600536384289838543718270071551999672616691973428320058443693809384259992337208641471654076452206824415224652385177787550692243089925259386229229732448132693141569592671069955344918695572261224263396186394994209340095840214725563538608171503160033809524632189730576863714769145395500721258011967047074417831148381399664753955798550601658926118312891575270662834965560747632615765043575069694443636642081166013807478761359246046166302688896835102328932131654024082714141652684730916978339870746182991028419823282599913611872173143479035210985275709031629839910351255255592719824687295435497505085801894847562840624145334707467841890682002524094145372117114204011109589326324771873440877509801000435199781365553475926722506815643705519198764843604867328323356485727774631655720778824119979306010917545279501917496206274115525032690044447456590312613667591361615322316993530600761433200521414330395177345398676561157957336722788848929144243732766327503263296503276670034854662723754094483075145566990310810347490057444417571408895140743778312938358913023315129584057870532299962833514439986649519335054781677814130810202332714086287424950206932209104039529708152168402213811876759362535238820307375366504270381648245446147295259639533721878547380266316020714037673332341263316032744991387734248897832162251660412895406033822313232701114775499513606390246897264645179000724994374746074261971590814514697702152096028256479347431114900679554440033070243347627875161798254944360858035373945528881425484353714475048681493117443695321234436570290346006970121209086041163566402257475053773124679263771526968538798546678077795212594814501479225674243324216412601576574569359677640401801061022010552610580394573831840146161506914215287985326894386948469397810772537269346501929663716056203575683620508862805726413528924935784497620969469251990678550627340771719140785571263798414677667526485409991250505693307719468032523512245611465259721815316546540726659699103304316984111473211177080899447999203362759088275343722689630123783746839406744043202600840251468096475676406092676843120882009754719537058010692444156823207516411317456115303897535081345767331882728811540540135853152405931634758017403240039701041994482575275845712280546476555703307686485674901520969642000770615486308059847124952459596869378972401118381184357816831280080719837872920226174280191585364313039552252909788742242228161725241062249223463052953623651066831735094074896605084539000010627654847226620090800694416628493347284995963909052204212485820360679883181888683221775085027158406797638572142836452041887849528611677190719163223055444972261133756084867352146002963708348083563396260917139041590870810192347236545946340086624930150773583681384875532840129896521512584205681683438618761490462196067814192619871888217265416908777225361773958367426065363713600054208195021454295754364492535490021028165945243685116243849864137414115053226615828132179299542618224670995825136587903104476154923139190094890042478671999481502853272611005644392152579504448028797958911926663291242236074517450940380304311769875284816459084056531842298109347789282965830327998873706636222697979951038986845220638216945660966236338196241487239331148205381689299542107212934030810097977517377525073903387471580040818312033264736470235701189936390187018829520172162022944361376565630350249943744966563957989322322619513101930036475597213821630474640919488309034140338195737018684309919812816761752923676433892535225680189208142404270951657289867161999047502425383643396346959578494379111330021763616660831078808580420130641193894898835039644605509608228138521748235994811242205566979516336539766288064511019484890665478385699122386409147136893815029294110534507707026361531337634209710249407513954978487020006178051317475961044982477800262729787164863117013884505705441513544952062827574867425511214039033478685084483912394899466661671018064991933076699904580204507985657719221314707506286891346607318886298302979779283929156542502280830882239690671457439714235487561227743691375098706652344280961119785398400396282769133235160421213626112651231073144597287614004363610843319636949723533601344692927456704638667777540689702198277632508000263426250224091195359184203422807547389920933453168993292557682366428299247317968970411580384509850468036903348032995434239507786928953642071333050458995925333576399766812568751672620660937633177783845984051217548649113550105005269141297167870565755619734123922534486415611193350197837294232339579503793872041616393390120254399876467854387694418233438357724622664448802114274386236062827740241355064721040271055476988782696584612599139772019378584091711544253284303038241212254366610367832455388670735171889501102321245635753540272024929508620998883799005778178514953764419827537342723436541567070419038324132306858616252161385296657398655932602909237510005166837870416388123010489021610506552988445240164975640491886251797587066543568105900505340976817809923810711933789026867851616033000992690380182758028932444945306725439635391740879269213347145923574393622035837384917087341277599858096429449216627108037546319422418778998227055675837514185821633943978797308252242569552845507512795166265424177269400003918248044621710235947834894903878355768133755190167827022217409925356643302381369082160668883121213711677465820998534396779526131772846372949900912061323183088607305789279843793900603019331939191181915992143029988074372822236784318097509742577748317966279051027197173534159270845930179248133840797349156964917006914356800898174627163891897100913317822324392530186650671680490876326966715149918316865979069453886035272916235652633451343070650610187382469947610794317705352370266596753896522345238924880482324116453303492136832246977733523729637711802454692517015072355504007820015181908123302512588855430852102786308189222956138423424717024301597753158790603844906990661752350131116789764897903982994008593176318477523679484735148419981808415799476074223918655248886304234208102194682876763550818436202459339500310897050607612535744173068274682363907550065641981260061869901137127218948207821143282267975917228854192015900419283707991454107426931314875367379894465544014673799490933629424541098376470214302029723583090342001041295957154839703832965589018209865879318868554264505895242276059210072962758398048718545409950080036621678283650902959916372459481399105521348355522080556052910815918916617137436673816072681804066680751838171077795235663291619018561385721589194356751780597935169374002393026993904805016390231155904727185285785010584292235919919151450358414073393746414196194870943691552716068345976983888717219765858683156815809914757335847494383639569437530125037863518172496096082272926735153835046720438647424427165286567223478939646819843756109045008499253022651829845592780905525465910884800793471290893651950722442460443273994331828243145296173796698302569965701635719475601508214010182204462324230233873435768486006557245520126966122510887097908144914483801550734678891203158551453968977576809278562590305812326531146783793987131471704089851280250230386326916584577246361432885032175760725432837487721287070053217811888185932465816500948978310565644247884592440852179589878195601937063689936864372564125552503473536902879684256196991404542459817776773135372902741674991209516264326743434187639046885010280954934472042675655221808102053607972601326458762877333443858463446120434237473651623373965191059279943450121776658405973314474357473509804446272338147252703202111739995540758263511811725786646814037492949938614248324781078579269561540295617343218309735556454143296960700970361368820812283212444419584703628891894479142182517809569012004951387942135334876506129370571231802350840632975445291554022813446942062879574657895735272835998522935483220947791415966755814645269432858126806766731680448860568612167500803311900394344612506133179298644769395384209186174345891821631885384620066944686739797914691406392360585103862741838482801256066339769925086842470071158506680077577335551975071192187896015312903142137500357184877784861639179064628977415472663343662816526330967511427153946213125936968215377302621789275292087559206525376042140899111139785080965762108056108764520018188618009097770851666929784432369179528975497057186969189294872885996053188053960093774156535299303588531946877675665114063135999315975956859932535671475125696247404181696798989599281379474742765069041733644779031618008740829715583726952161417451719408582610624959428134168464879734571479026716863696603287545448481977764972540998791044817426521802780025233379801025683868893714608816145368700264056559927252893783275797930442763472910835530002725867684333729399854187817058419321132506605770176490172055376312353414874264746858531702457571018319800619128305411071942475778108977237610584191785619830822132103029602270948081014104511585575581210911702805227372779401553558510707949167949955377861528011002861026981750373507916642569855728170883150026954084805804463135181867918286508982397514462357292496456589661886512560089174605041100202916465969233595745888769791864851760432673120127061992962728178250551790872624835729562759502571134288998082863741977788215151573853105873899651463995960883588695953919589794422368970768556075370185020749430662741717806579702029771379932431411373258558882736250216253650903391687979472308741589910348737495911603000810060426202752325499218315889184462235686713182440108590954084741807295681906115218503091926700753451173892731954949323265543448677826236799454978163890814974030266126753141913103695412246365536635109806162473275404488906188672747541548129820932095641407317433850959241575722771845292048237911557173082105392026978121586025970932896432998489436557567050124108925647976581367149931073617121492596490783469976002935971109861129397888599583385543438297565097636009443236217554458240047119675011454449107720583622849704628686285690970176240338558592098091250267619534182074386995075424932349322315899214988610586685762173075171470678404775115379670603759802722359166252115454034409590069554412611267914798894780203932152063288368100500989009174830023956269477040883979242341551408495743696203333540031351080863093454668446871301935780725231311182535589264715428691784203920802338640456325084909324764129099212261712039535786913642769893722415740655607679774417639086584638916425480145348661430460303332981970084930538210227375809424981126782372513725278249875643224844545254546734980629304808471491047567293816791783375944347279865730281925913244906713903033787832343180920941411882846139856786209898196752059628808608518253657943344511987994169111077713059239111118869491601849484042964460082711898309621063689020799501871356369835331838114844445801509505403650331519757029294013933750789431930302594781196110831587221896326400492362063176618462063734880096770939653061254761785579924464007933966652759982265001661170543185699425341962158342627516141333157516176587075060983692099732727630638013737331523873350103086957007221422458024487741858364400296828181475467459208282115908016578202614984457648543666048538182448857060593629212828337228143911578469601302349186335770623532166761499780884992020421295657851389003570832808962242281654379874703120601512454092690718489086926903733793576474408973920981428906266844126263953478093175485935255808044663727491892573606323073224519241461531980112818698978396559384906340560409138600837899526561130875000252661688849275827289292158511935726875112560737037520800728409738331256599870577972114919449732423835367207195349638056760323057195497256762573549198413273063351312719756711730657269071656458686885991534520932417397780339458221015563998241161794225183546435399342046173105400812711744962125079827535332189706516327752414037499868646242822140510291018075652356874161735937810109560595711874303613952340390241159438077047675657572645801363141951086618177986229565317142884198531753126953637688063285185640631747437551378390915449141279517383613913488496072904526499754343611463365696037666200090155226057181567396224755614690955570144737906278688041481557426595764087754122808088865730387686275849496650744714381522547196697529421820131921149117259352052137730556878198779627784586379090120003427737118292869741654455972538652179215087105491003391984732332884430609018377179885954153725565947619013864686033068491501795880245411560578723177269847649981484774531506965886727601458026003852678191780032343164499674193237468352665720372710149003503259082789196925297898754379539575549289970203204037543084910516803846844521319874155053006864741996582034338109436244192766584031615243129418275110784920819168380084778098764595241547137639217054576440508685333273845288830849253700913388261331357384039354892192281330066646926611923350721281964677971312789179149276809288653237190678579625918145747154435181204934883881335136101377226092012038443683825282013780515275551954619975445644308616816075321100363235333150398759102019121905776319110754053751372594788105860951675667899320822574062813527346903997281207566440460200140706223905045791503719532715528033069086954855693993459775746392810297649262979757407398540242450573547039655291836150875334926775137295789807458126137167305500475651810578979349557621440730610131690829234422151767691653707794647223023746146747732228193370692870010415105023212709594814286448428218085420124089788216532315058836619224853633067366165786779765204439139569422476795008960025342101784071309071473541120029520431756274998509693994951601543706877477766080302292759802641948737029657773508566383518831852248338131155850742031471106828013501786399230366258875934255231145538004406051879491183933271107584548586121833793345630441171503107672727012526610483600712482995811530930180348997390210758268363540013202759610580592970114615812879282707641161368743122602740322686651655950421396586618264981049224275630807346353270215489829709999066935731556253442029176885355937396374310580720595623562774807206954201566115958207960495831441533498480720175180032644591939752895549797169135468509287184016018906518496996315029283014745072858909393530659821595205589046161383035036277630975993206988082785952124181934743166851376984828125183271057200622213252285946564557979298585516169128181405544756548888191002894240765103695142474345361115000724202702026600803080726248897718006078635999208808604337795065366240309139518692937047835770629472168109715935558748061107465182382707998843102697894165704158041557917503441245962104932217637257353501283722193050785106650034251790279127390766945112959695130468611128840335378061492389168382658741116088918221153847438954981690564691518281608611664582103175865712305103370750813928645098586635789469964350856051645536885340623762921789614625870510063872966118860391689523805563337322679078528403112290118488114772135572787255543871016392537578234427212476792694875730561948284697824761990212679988316423998771151019444348449653918104952158859402329348662042962029115896353999589338232208140236866897171179983444258986607635508660254473079914110208906069044938458774381020762160285798932560620828198328874162234175344067174629727559512784687109476765386293812500940891765088936234934140161578243705266680589062579443490120612959423205641528437003925534027242596383596697795882952848829339541730395368324700408073063439198764782108682173439483024752198464887909264667080936080460889327932036732937312188065260836344243965134449432057728164199130580403744671261579798382373191863922983947492844302867590180018384795232809149231026049519500420429395701816546278116511406290949960947488707245329121064222408013532367399269625977431828080158152275254442747197473997707824680567039905003976506945965618478005048949323990614097868291939451358732914438086147973644181322096141256728382278246986872028773335557659405608498762218764109748960217543482079483832109245905546613875275904790140805685923558492886345872823897114419727875355171277050928540717969076099118676640763876321104789361595734085464251400625370991092341535416503370082435969468596938859741969807855955059415843127394466328504940219509673281865182136465842427237204350254304920262835132162201968776966787911883188189766358536263455095683870382208526608429552690202896680584055737682316813775634395569979369936364608232492568440235992418994414987854588654088781773759767124095407746512311976825104636702688616043408116343615359678380055085131662690143139276583073354653719384859475225800403268138136342299568115155426536213386755471418431894587582912831883903167383400438251173419186291148214515713363439503416349307411053649516940621506894594682192736289995477310333099080870869226654441112277878129150441352153134581894910501584922119174161730191749278979772297638976990582902548851840971109333929830480701987967020366298509211983900863510631704894068523813439435878619968900545429659447228544856161716938220833465180067652137012064522370422887355311369208045317883577192878524879572812962585775240861491797875485815549200850518457587394074313737022812092314107165188340619623208814724938194311224166822558063527910050681636087698463849134611221388896413407918454031192521574194571566940913682610414733691708974015734413643628804401095997021576407981715448558850107330864787791085132346210040311008755142521424189591387383585776756172026499146896619748045658500135371407965492673732258249448070868658780242640466916485623862085024937377043896846531998296767292403004341379701029202084479967280519323482644314418019807244896890470013959666525169654723313712261320513705446507924386350216043689104917241677231435660444928238114081011455612027109300356301804716076198596895509210758300077023189392857014683677941098608613521708701831553235685814066040147813674244808965432858728886010145863822244916227424170586314961651202105396653676360722494783722274217247391369412585947561947170326622687983843788440129026745025963319257863645208688620769963487553816900635092623644663245093775444419952702097793083418151846449732083908933487222079337691121470376820910445422860274277728598544760817068376835074292738403644197973698713012127827733087044537904071025061939236203212993154012501408337436512441441942603653061815548499608472665162925125774843116819496840491063420946705842891873662973550369221593450637300902445763516686068145954436202500881211270773538633951002282091668674208668973173545706675226379346136385438707566237193410064087432678835313997668475669077341669581958896976728937651526147867746403144485640582428327700498497922271321808644165080365498264594506912622010546826135528966707575180166872295818196526754897200683818796959686501568105713353752541406705214811605999793253929791493065566858610835393296801728312115493445771749437539159440980566720594681846393918616637489797957793289443526413870397065030547476080283891482465796403925714248308544894881375096328954775520891269036502956928550854670367996179735940487429599703412001728932693221068338237376796948124910962647584110399615560456702165111984298214528918494811708048871008791060020532112201719518135035829765984132513669376498289334319080061686947280463155353437228002389939407359717605151579805939344573631597332814867396741753745690660755784631773724677629246612715465536797466489832438600436514155666187119212665060252426112895171897905117808912295682336713642939135384683109147719003196079426174507732475418934049875031177258287946288031486465010649337287622856253911104770398093875460968855222457342416842893620668669113008960292462595031708506113643983929512005440610336224850534703266553236119780203128080417327457400999154823146432046905907958816691441416448700341528201628643114280404098508193572931590385354023945224020472115379594951918371338265856666344137006872431046290930009321899184498497521656780662380540132905042358273978641875868980240625925721479817932803968477348311625326908602526351014462732599224674623985674743294851170358334021250610967842741803597247011272842885412149259710775764432135590794572982171455808672485078067116887764626068774732258773401841691484021034855469746145281084857631531924526731896473493085742872240683348430837033899559357180591553855135549159976838772046351799947967405566502222551191724753904140616621569178731276218908622650123405356202807059843549082349193859182461372892272395567979187035949804346231620940411631023229058962351550804774178519890866167373409575213624852619173859329323711265635045708795959785323935750868045418925461014092046568180113687481906392602781262367727508466760752920595108112026923720634987517396764408089433375309179863155988710855891593931224281515659750284284247424870987409498768147720938853485782287304976433496894811174427504112803832985242250252677934106149461411685616803869500421572573632663952680438765159540244177662734685535047146312376095583777966055921136875313084371546236074085975789041899543192182859842683768441836391077449517907733716737422093341942926757165640349882422307690363988930824992854447297987455606791656860358344952964564908446338910612389433061991845688824258718164586796359358633848014040611318541491813290966801980993544967898722588856644383307296170443876771390631343595995136309397190310879915741556408776655334027237573433517402647841589957273917625404985455800105477362012019852953804569079743583984540541562758291192735136618239460303198886680823212256261651754802123486776565750963148717628427428245127000625083213783234304112278219170724709690542267740141941988539241449819011750377317120011382073645368295079250220565928148608962280287288513642399752280075386682194047963751769956921186569219810298069573052348591180390828125835955427291973294982013898663681391228027854294863840776885011822419420920226008459577241744883549132744030903943035120571619528127457063644056151800521789637710688127482776982119893585087792011780240832988236722466270928512709332126666764621373737261472725355428768775900250390958513711881799892223690197527502897621702555961447626401145725551470727712101414658129197162565611817409688533736369319925001202872096986694428348887494110003653232628897505176724013200200455153123316304454284338421112263734293489228191287078006668670137641364096666505332690696530512117964697351422343403474785732509106393314533129927159378855045216006469280890536938419560746129015600791893030614035944982295006477300968578811321237479430024437528906408968444813423224803415161867716398704575982646422050417062148834624908630726587615214119125833022760054998112269140438023741805691754983694169915220898232967654412212852363399958737733612935676333512298604510283091742787959755037978949030348834136299037732731501036895500007807188873655119222639536594749760163063289069931497760914161878697633552175659147852307328417061208812167889086653138136477919121067378981136735970599773795682173280107707129809225292249673603938706357958665147326166698975873476670707011938625396045372773278488461507485589529624551302289206058998163591991395481518397044585942499866972929009377594320979529586379983915942916453063444632338120393089493190356747580012149011280202703366094806923781289426513999985507770019117364440364170856408718506704207265784565141604441314869888615999604722606480630539150080350593324042711873384822211791391671416712408004589861438212946910124910048883320077177082231036300787457838282015047785541171524338630754863973239230252624335169606530996643215681086934965414063724032467106671257275253228155321401247781722177512226998812684755803474306815571840939837791627700614855492747439936991658337370265007980336937018851241905269515617576993423394512876639207578474469790821320685841880498075704821033865067490729200441645577980213175556060157023301617654939031028619523963557070423933468807064583584147772280063858781064244653896121213398055510343661011217060435976746230706486484808443063725354514407920724386852329378318261787617981699903195612355786875515155179118049645258126623271109595357787463349026118106999146251338665747353192162240416823726080251686373536061575080177562135721996137024334067854554332201822401218321786756773478762668049157930773882407912902377805538951462650033863111314132265265497803252763396698432229098597280318769839470620659412975333772458377053815430504644419347253827683617470640947718204921295848884513869906126855166392775067861716931484473494787428703111294159366934489594395780803304202583051799699783039470411225179996067038919140033399727629521878713035077528094719556454761229650172343205910042261732569081131565220709423928041389873113193125472261813305754148491581249311688630846200076641334011830014143706213914716024328131851382083994021391643154616315740764121077085079534002134807688361397682156034072081487898924017089316602527048182994999333378468228424469146437633719132208092669824164102916385977851928799897344784855975460222271084442451798002952400214485456165325692633613756698612778439903818156129511554513923163910414909977990755337252538223613695619021580254746069617476649583254350726265086767637072169388992558597040624258426114714868410882152337531082616302696410408272909684601757364745236176641127759905192618870219231909667021328316153054412982522973336768995452120290328543336450436079289917262093674625206563231422826024263219797664280425374593186427316013803197595676644416906560447289943462845400306660817762518515548834734865969452588695195740270355444620816705677906165340940943670345304694620586176818081457204630955881102789160609732833772717226728590449154357143926386020045091960014958899155046806200060617671506228692441285421733091790642609735945562198325608527268580129334680178389296287461620574234110971760216211207130503489191356913139889320748789475142783472526655503193974920091430680542536665761089477345796304180106386555807002916181533600162134165288756563557074204559487914336962562553784243466400196216790033547222775352281529467572115285339132588123013997031532380370021325461373229161008824158721057628258342051540113297714519093951319967015883990073672350742309159640303380018123291892990843549078658725629136539844538839825578748327562821765852549063760284443045349546849683106485888455070766417124076203878393427244475965316057912375060707803511611041125670235031671681358952057541666512884954979711370632530208764332297323983028265463165469617085226144499318828300213696148626428158243720090161640622615217569099314897122975693722356316650329638507308096184454777219824463066316623473534694063119921844487425701238847817647397956191927328364999568518852202309700388175719041393054247830973776901824402812735245884873077360234712196917005178695964447515878097918272935893050825848589040061177237347436427081756922185207714272900803978483788020979662250229207502290573326173870062007146303072769050633749825007726977744786349538214010790200410908510503964179268308607160227911318831684087135372578442495836347232805083810369907996743512827083555888720422073829439106993323235574362780114530022113625575951208154883457460408674564021276767651378283300347144726945028676000401365436634324901975354413055587960475860139641779625936151032944226842707891041845727391660282580571093719802791418531394768181555107472635687265616637772516196770709218580658030432406028159036646914528170339023426567463590958199778059853783813661671092153212276621058743432178083428287657352170548073018395804305194734024707488786089121344046622413914613801521867349509330650775252336302913530564898573769048465524283584026353054612830567630472535301616612243586084970818805364163518115662461218142652641670095895892203936438772533831578060612713647873659116073601847231467469031469014362356765561465093146645822592649917240962850212864809093378534680782080765759785788599363162106156969615581824720007034164959029860903427474428867259333479469701936439128567184777681217056728096078457412432529552559182394143842923470682061745154370984761047402186761825616453634843031980070351788574701173369038440332069412672520725747356121932473909838705702063781429920529142551258961050284139320753406977737652066838831533175495145240991249498767973006075038427909285537908800446197813813738367410116189822027786718608039225932698560373967105057347311713431999095114922779115761356281179838070705051341508263507408545595010172742514511012988163419614389074227673415747657038389851285576692052623146382908181484147717719830136285985239952838720815143595389692043555461660974909323051579603692334259651529049294167851435239187883075225565117440645782342350738452353991292915568611087780356595827481911764784283908165337181110500997459034583726633835760216512018005163658740900672362586369642043413524854125575210319731342232404755233514216171661234384013384730529205277988588748300772456232117487769494211242952471373004645936173622247056388587092808136482483201991668189937946471869947932932977623709841941697791006912794873093655135441751020470301961919457641109118332658880081703919075383061032817180769471998634526986321046279348052108290275695650731709940049172047657260621953160562399813053151793578248058552332607250860164821411678534160627428797882573859595005357299594981757336085657753684065743348203333342897093802624956879155072029280072294430622774171942826640569399880681819544766940190456629034219103960393415931357351253710676169659436257389934939231339300864308672159826589761035064668845931803792437510040926224948438906141430083266934343099494283287396192961290855569411853288489832102474461877790650255901308210927990355786799215397501381290862411069473662706296962760152553162914794546340093939808135439740579356349181376625786379938353013757077680474447968187099546129718411391348247136666837045340348806374859155515744390516706418178808662574922478570362152337786303556111723175220629863483555127954498159759763875580701488007210340892980674522046205229655683335457636706023527734633422918747093472938076720725498796372597780485762632726225127047371579050874537146817863851048993206039723387254570494752682654473856417645042063346752618229970191280656612202997616910136715757731157302377661763482941330467390097494818420622818733808604394461962733681555753317054071337004054945878303007178992562576399723331768386207946911607674156418731766761137551261748155178065722171658568597959031471634479281427545949105343225561156001519963638955528879823160495976201381397338912339701865700297223723687153233774960390120234001270136743099771749004586674586088292342061507739441608003566907039641853648331028336219632566865499400263828197001020956497966540797072006204479697067919220249609722290885544470241665660861353405505200985440799726505302317729280092816122509466581707327864673464551753799302668012072853713050939186246346667741303453832889335805716293261773169931077248401034321024285199815657693923336787323469955808379332434801167449391569857572281512478461734637763098004178742058893652239556493327570816565553345425737076267583529624357955413380833430238873983738315170942658990898579601036607876430873608447489236095683176350379454172742958919921724549914002479958323766167678893732930512788926998291087590460016061152569191254420225156317264350670222081668545693532016228375741289007211658902659554973557993015420137350974102193414138896734112696828880240988732826650348773989177702817612452752936788296795262977188150182432407129624941417004832410171738686745115461745554357989644432466872253249703085320851993562306804222015624125912126243276529488853699520720228155799384437372798890071774700604808536517083073298007007099358171180254146899931397321308354288418774265995040294206411029499075484901065890472083272544432777807149162839716065024430607235833986843740907395203264760241056678836737067436403856991468537892492158923580687274832251496361291843899422232189119887025238842975040042481993026274496538211497543360713647027488675840118015085047600593406560837200878182255447416464314801955734732079360920622086714453900294385580210365627694773387471812817069386165925118279827457189360641118937595404861641505303612253106342867533226581419511572706628695553187372115974114941886588434216375177041319215848860892720422508605822700578060861589651073275301804907989876342961889775167112077320533612635433267034221172395482578590595989050798592902108907479931916819033393769831970807336684857280190134543268129420214676832715652816731939047250149514645408855696961128368205962909377839104254023816010201208502323968502002861157248287720505052833669578738722285588882575714867129895917596010048056372921647909045008677767440581326878846228081400698785676843840116670416601900510946027934987373636069187948317943013577672657842045201254547891537280992814983574104476452694607812499370671242743799455836774710090127466667374427596741102335472887434914510085594732410460672990985560041858797365813448620587396098566860786366582554937470170158020668349123782567526235925461344301966640674164346798026865940704824523386512677267623985667790627567311844526021895386667151690915568383646909683402979158354280632386590448451195364417494451490589633241562387795871013590633052037529826162098524548997483889989639548684100019881426039275406249233990649355795756070354093356993953589496499585918661690386847949292825850183514359343781444981907958667523808499720877617913769278224393144006249262708253265528092862713543863550174611523334668399415069251248400592983491597365243434863335778188944397519874017833278132611827275836708144051183510444043497333272155712691871422461346159494696448539891232481831179833172468616967275382661932035675947648277489359497466421430971463650604376977425441451816941701375902046912320275825919790821289563637218855542379436785177834713639332457728321476639059694291016848978755209502278395802212675033319115651546997651284943879403911685397825833861198108072037349029509326330656846640376303278228157474264912714418338917226688323367344455105656021650433761492320254527568339443565714520023315871986978655507052080637681628238257086820241318410470592525702876499989204075569009517722583845486413287262888188993864358017363343518102317960614076335641222204194945707368908144421652019012627440359377324397214686156396528428762622074256754420421853218448603127123683385381428471661974773284887601246762222677240898923039549843995586942484927929677895272958409767617200975302972589635209378850702510479356379656808272905284496577168156520305926626596945003778708744201686702711035198965542353449250351291446389823566030189413851692628358279607351282729972843090049821261830905952234995321164733889131882901507277182007163595321866962694189984046093939472578718353547600120680095707557562871888631506020777781975010524007491823002775076047600046999728289900725922693369108537129405967370996376062325620232350055596114383202117239109026521848676241056462674569789899972623508127005622527869567732201984593553838207771096937835108095073663384467096567915619218748212697105088163114373131339025597532054768631840675247233622133105316067862981899363734179514640843074287734576482636610596292122416582754476740183102692498748561130849961537589233686272015333668648894458463379119538948776230564336984190429817642966838851388437688286119411542840863859887236011940728826320624594685930531995177504692602269431216819045582469816700677922268660444452599911471896067831226281456648598383138435638464003794846857861776123270797381588685535460990423179592763335814847035472602219132592538740878783560305747294680079921348488588109554315624148842967863573215557909329132428287821412269076994754679864796385745508635725311942411880861278168357705715930086195726213599004743291031387862186581819981852314658407643405571348574354077766552027812798959095257708286364838772101984076379156670944641811258409328594170282941323912048900419567360349152238704444452145214840719582019686659769703671016199883358918938221523911387252571735815842149427473313018839181904543109411363765923005189430273634433778036042726397487351046559976139581630272484562367673491418016094078570635127214737536399635250236087862900192970523847605649164637354847558317328420067714028601994299071658590898536805268337182798363877108147037278624364623339732256738120364464414857519011034080868397925527423275428198442116786567238684414050825724413941057108144138854832169105002093283780839487217325785307554954586385525053212764688661801850803219031613619097041521170264845483668871173536322998453028785826838630593921119084280922912450574560287622795683264227943672069267341549741231080875327897742241418214703968599500119077226738752148411383635197262800331598863587975535867263365146089689901415162813039175361184885715166152280400912384146389951936610824206562735045367393023723694132281286893102846586587841269301241357562109156303456048825257745881243129783385002217705994894318680505569480002583854923035452567652053521771494344622516390191004069008208000268699985032915253188536414523817819444799007374143933346764617575256844970270769416848427975017831457756820322891678867971635795609811417678209067652989269950372541620333459802922954066206076675496937345367739253525677887021537447334613814070816819260693098702233554622230434486686900502869092113061390509965362935462651619093660904592766025307971373193295632869276895071518328782720729232996662213483671475022848912775823849508231352788495246845985566289638718373882547567554539715782837943412615453928925932534676095310382087464576607829530723710541927221862750262289500927882563875910244095705465755943658812715777244828129973308938341392400227943778065388452507763179204134384415687876406807497088319096679884861414973225992659415227811327352732870798088524886316696657787105849552558497821029366283791483724472884195341903285190787054805178460427508757125668554792184709781148205586446567336329923644682381545360985397763556790752325783458373143595667376186630835766440540485896439017049622551255694503552009017694997025073030859196335527953176698258662928510075204596656795777595319275589472178438585229466875801861919077405366981560808728176143229675741349898749508539034811712440437857341410343197737838915812786882679799937061397068967625013840000209226480274123494267966885635290548734816779392713607116717130136580518181080626565669147044492528070998406355001837415975179866154722469387960930684706130969829232016998529513431873964949357393140430225369733972600965522784611295349368362832877155551319413338946360676769878449861674071899797585524786830159037976876133256200469239201290387091334951393392557109578931093926349578904966283614014427084231451301255280275341422955196674521186263933315534373610950529620127701743585367789736491774484707957051949319254489022145306740109985559818507618722612739488827973989470952069532303315098970471200255498422622768551058075870592484966338515938260463920758182738483772121990905668446295894696858497664467074608467611654332722966068350907160188691203206462119843089662646002859373774308991334508359695827029253763366800853189797785633461815512558609554815797125763002443630294721544288680691353528087568321225797842119941634332328516989310653615602677284137661459028075860153155466887332355493328157723877486507807437608487531992450489023482195780316369767771980326687648476699444704209379411383836056874608327662683433007387922628536816545492694717713574730425246881948901813840078156359037619850210120573436576607666263142312559649884434679130638523381292268536346654094870107978754977186903934500175068979814497845209877316692575082284712589325177757459125484508817031231024661880590159446964754471717498532902036319007865107332784607316356877041961786926772383451065654027532663400442281869561838668260359241971280015520477627878679554759575426329259511148674054397367449314957596191477572338823401459948151535058345933192334207253555678796831847496560927335505162628160266139120185312859527621977903230027413851894356148956278126282422748056561462708249601154500516395448127381874433799435735622432578814479126120975460947257846945324942386942500990441164399430202545490341892245274451564885961867586198628398824286751868405294998703100229463025013097872471458185394145640630717371736796319452919783893192703810853570670304654158219738103700040838213874537855796624307014778621421718853921606031329345336617806320981635351234378024555474446472151932165303340755014316984205996428378242548196867277377584559991980920426227601784490333229235003851590232180090227943323311321599212312595700637691388121973747044785075612140341944032209756068444293130342473640952343673253958334763486889725013118167519605659071958701675338197715882648594323537660292774594197117722883241088142384683331841970767836291183418705865180663354237563219869817239988332671200656628683966203312463430336971795091819256609474667735592374218489627624683442843914048903931042065419009125252409131741660356854697563210654622390671171606275170252903385249048592350635870406833970125892962727231185661827898484545531025591154700369370947166618464184728523720437937818651859476139260217165538270810725737212494962095492818583213907858726667899989120920910488181422658678099556711091100828063606825275717042075383559307798679372041338418960482353144096578094771616073282583541108342794595655988564771112194794712592281657107630642620801668667879154580465633660879361970608988468181967663674598679730469250650914323594003748771980831107276630964524669639282338392513807238541115345726926178189683601380350367812962480334879598480111945702598393087684864562977702562788989992277044540464666904347022178158326475186993499682316850515322612663306093912018092892888938568576582373004677654774315686394503419827603136910699198986021423290847102915070903716920984030148904042141842945667762670016969417285517873337026271601573963148380921547138183970459335346732460922836873132310950669299478994585969879306073418854144094203266311791687571718014005265298209383255657398287671660571799666258379661876791384266731810512514047442481718145334258161046932271373393099797786592473802541373711305387986751015287847978570342325869445303275725512411801431870146501292142726032246846529845861862116525556240568778402806755201878220978164563230746774402622955207548638962672167146144665382268227374325774106047359914632976561829710243382346497586155737999270460480149076993962721976071810955212089739156289643012131400366334029678310797093523066455031148998574550358874261530314552634209774405873692107859608627470672036369838271572620772376953318267820517325971757331226438346824139341225884772770456139211242077017455136435949956669235278014398133140174779034056715344034796110703856208370522931214608571618828751634802979110074829575820296067851616942640132156228354041258607257137754422660816641698174344945382474126492945441511032800703502028683727855862500329943375818426371258090451206833824843558985300599708756685589515039936836534135141237924655353901586454616916693594639472745408599534676916939298226661647315312200696348336799035579387439761572174122355371863155699135239412892437015128178701530260547494040187669614057082174240779664276583386346412492350401982574543197457731331152834897866392918737153323105212174961474568495822412607577814276641589654886241630657142670619029239137501419924879266233554834267472472639298953638098940053241461526504145667285238206594868514780976067884183936927793496737221371306960280451555229713990755397204727741588287033034656861265074372340683994055884292278607596420927851156042444491069557117205281260444670184112909068726843768738650689377447654880467648426719433309424709889041466496733606332952710640382511365440359090308848490982030699725812211671623675500149793229608379536263878362899909328028574590491060927077742243416576138992894674682429929780621379744968690729324466217581321252998825214317619615593125694248812307966388918662174423291094437196865408649413959149711848400098007450712647756060814826652964566986543456985637889136978197596284500728716569073163499762830871526897800686110831469480641132855705255881976176635069792944944585028246320986855178250232921270092646834753783969372970924017131862264447761450123295654953008546833381993892149276447094043441651591255475182538166663493196353863752041404983875744115600544274175506201518028334227087191522918822856312454671817570883349587716807142236726105395492121017765599559857880937184007498755057276249732010288889676689369887792521989741786390848339731342784708533907811630155282392710163414294806147145284711079872129083201394935052287491205827494551893981373611032207775003672970743121663784342810644914226248660237778343513073413277989817536037317881407563413749348391330674074074041286926955799165314250774313357278953820512963159453729457143546359018720139903545788509733961991315350560620999722802123027479020909659314583306340258776103449979810819279854615485283166274097261762605311778726280550587549240862062786181733923462480468409642693739895335250696787135838545376013919970934891293008288423725423787010168144894908651294796393871018233003507077151392695141109638282415292968010755770030248731601629981990811694614658429104381352754787794291281931566138989686501906077286965368108094580433408695111543682977615193263278866088524805443098070944546125588002882477635256692845103591406898481950851986148109020890368235668678025132016133348132599905315887903967898070775294510353621000382236719742367304094004577331458768071197907555827573827514059897546563363291177547963319401032485656559021223407492434771915052886970747130579130304376600998529669848322801699334919741554298730222161585372758543158592124877376002941937305130095312128632690004730552919988073446510247494657706503285811308501292072318953925445247119353661575028786704511448504526322983072369984717638586082888360175462300635725351745224559874769256804185155364301629160118572610629495162629350571649967133005403356780497411389173563153480012268066465953773836268560045500676434386839757899482823201833448771637467932750750029617550384861055746650811206445073564837832267732935258354388165113602954065589313015185479487297151886501484747723400603262486016495293860463126721737788806709024192412722108435146581520199743574156028980691621469531883356713811548627043453194598911666453792810366311907498560969713636140020517408973929669635649366762632447977408724689145995368738032362984281013420980511030124749152792688638010218563599040266573891301625442687981516065749902179734867111689392993735048446640167775636548958718219468899922924527713236659974980640329431175332975191900648179352382259441971632783254839138654106741646676333789955493175732058272170219942552761656807264589037303446717104956268081318186793993566677930422149917698738868514812937568534776259457792216629414710478581087714753484533075254724164281782287481838198431815976381912234372258444537916651181498175466507739913570089602946747351485963642687727922467221804657521442544167128657838189148601621601981571508544433482151026647318843195638586150630334172399523764190668674875230034587658541852262124149907260539232442366076506894358177997787761010204090232734587237866752306843450952536974940870575271173131728034468909904921878968409211396321625283978362453115465262490260668961753764102552617835822427824099338388820650145643246086918300623895790083204997219112054893454917769099120002134457567875497584925743839038915523269580000795054640566626446623838532261491672928355213057986147951676829537185235281128548483459842568434272721000772684796866434379674499505174895027002715819345522035420484915116790131521890195603703841232452150785219491238469602569559759650929633436135410150520486494317330993523057479906711439946327406394366602833506708358150757294751981415994635284616658146447822609959594006748271646463106812250196498058620629463710902965045767455795095653669842860287220284886257907097633893191612011829755131538468857805780948436794939812919412262182380687591561822239967700422978747300861153515144543689225686287161529948983437992431895051989005302525871369491873339688887776823600745201562328079356169911261734504049123879850913843313979656209976312927267023710418938036841575884237831772046142431140666237646183848431144014741530383488872742947871780454193171673301583499954944261981202321828907830758627836168938360333488297030867331256016446512581606801145812380561526145243425887422203276284491756284252762552156306490077026131512409672320631029752705204386435573421247384936236319152752915763287623900740636939291919152534264612041976965122609875974683346898158372302715783361680909075746614737432598336688430020180105516411606791801153877855047977410898613910039338255552546992388814959552487942645175468441294864729384536721967693838699880029857737529907776072429529750938532673060226714345571175559741800726289230929831463426146210734618688621096836264288291587658465431972210717073519032854839377320235976281951571550156562571192007084882361419371585461478874167103498720794535347478195214557056964766113428595256480867226941192722757749753230655585285927057926918120258510199758958646739181404396575441495024120452447129755655437007492473214279679249567969539614593411588557308692537736027929258657240037964588755217480943446747993833810025944514154706548227196793803890039803590763636677351053212645079845520609515769627383416134809859416657302302615963614236359003844769264699312489079411209063172672058106714010712402735813595267860770762497925810081390256484318113259041651520456498830188756870093485624911326475170429070379546239573622136233962929706012138957805578670371780213585331520499172656209022289156434281803708707960874098446085013465696542117063351897489171417543208551916935435159233570850027889333549117863967151900752898209812574784663866740716663536004693830727110653366502288219813883156581465013987812399346190491423317039202817267140296910432873623281252285868873141190278355531276816122461669778954181051162122843717886941163297884086615122416124489283354205039662695584235240194866670196088202104936416718314105845620552556145880755136066309640484733761307164544527810607410607596091519630922528905777529968947745847952325205822568206469332642602463661012660387029182560392451843673981727852302094669188310997342750704501863240549900631839589648032843848588928739685300764220423274612393854766837119553498305397334604864689531350323616732692495825734159017099451414514348771474176807326438398099330706464924725854467751900190299763942303020581229683559810950156713646349246394278350676607572782589218415658820690027535139481644750217792531228397924367293202641049441885594398362957601079438620003631964198936160899799979834438136874568005192167915819205033009761916708279794977624106074668241137322577729563043854058140407945473658662533758705361502240593988793220409263807537288410229016015564573990682225002531916003162740375469637931158844780729250273691548172658669614417882938985673073015465337003330744281207476748070597604381447820113858712191939639371300672963939153176811301868969755502130963627613174131467159988987332569016538806162417639842033541644528769390699399059964806566119989679770507495249027260414573907898703766813362843201516268126705542600389932274161177675974218139813194055432836839866986540339048006816224649055081123063067656969459972055923161279466714356128065643825144090814236394125412353331729347088082306291119725215956344435591859858281458497785033153441201897585057336954966950476033634585230374215868174115251307478917214307958849702175663839002390264068899845628594963957409679565547275485696608090208667293628121421672052922760913935315927421214718158501148081843914158884071909104851657280701955465742926681321673141914059017501772741062814399547574338944244814905122325578142538991644672427147972934271526181957912498700426948536426990223245619260962286623377832543450554669470861952100398558212698009133635977844801622587940578547257702812926201084907948640133155331638057019179594803737516227619412270283732817365280862706109216809310566179984671009769437483790917134464492006476261807566235394699053687386671040247402174809178991812423971991376545522412742816696751735085455783943197811499782852359847735290751226839244366122823834660994074002933437035838836419030911267225514979499027705822518924670789507528528618468198339456708641771735949852037179216993578820453499120741381103803927793132056136785035412261061223195327117343247820840850713197785782747675909383174979031742634663635311699522116719900134618090556050497687613051683426877598072974940825028571854127702488212908002056882257094566734348278143852688991663343256382173493550123976825936643086586146209889219784281308257758552657660312170086719707011510586865690726819241515394968413451715074295346851820782111891036930988967296909621394329015358810521519372314819888683016342717503996934102620984465743256411639997912786961744981363667104881860723613589344915957123832338795476523405184117024276645946738044290955747863834993586439489669359668819717583296695638017306011155203287899484399842437305253164074824309816320409931658171199891596083207566349414826439374302968485377016692695140182102096807373955393186156742283572509633554099775859517409517666808120678087818356020278254556872654234847671962981492744062307311175342838711927933269204849996879672211832016142217111710620386254450004199119957529828379563975473884574250342906243293334624053247562571827591550277115534499673905556549363393101974683000080619752530851096729327446671909701393369460498170351567084577365430704722399979775993961325398165038008587872158940894906822233582866957995309297091037586206644490215411554176990176241091340025694469032103131837887146803187376032740980794150486005948694108302711493307273421914140520304295467354108218077081510697744967140228016887047199239152572284095908811027862034268157443925187488795832111504268472539088905872426276178422030919095726416660279508145408264089920257043387203051782959392379386018964846335960864856405432442980546610559005218709298820929264823942163304268375874833411635189979898673943889427851183740913368003462631359336122201368982275928396274575432023837608513044308239273318980996493382056317289369422124828087266651761233572962818459423818226769294597167123585958877063992376715513567313559364911225988312446510702543137220992036590258394434999848393727767746798183004366949421098560985420181747841341223652297190190786546940814368198173880179792398580093829143987380495085774080283381332800883844407690455205713352001631996385335129878617692225566357529047379822196493866241228758165171534545364039063706097729964808036721325981950615138972951757753597232161141159099448536450548040765555907126645847712703766946918094376226171828705794035505602726460155370842759671794732187395733907311667319396171935283348217592510873829526574258948654463860477919362421816689542413658207892838997473004679488979281668660190121850471515869024704618691934044262022151273776688727195755776862187068835115177657159518212142827385206649188165120348352020127929647610429583243405038387757402438391857116587407786802498812547871700859145131981429558270283117391911116987435823526270859083269281419476630130095686213465092619699019283702884850450749064772288635293212444802682634391208637099970267549516705642434743163618864893337942065000231484573402556608463407305284797169203303204432577217965604320384013965232254981477924550973655280964273597364833020972659971111681596146385979854113673295544250511896199501987913522646384155688841660517970617444051099914238321109003200491713618376453870041838857160317154294964505619756419338956623907891565010092323970435434290151544471202566848315583202508127335834293090296095800513383694489513998772076885395876833462377171199372007857808377552449731015852807851532630327073179773071385651204852863220673034344764295417070886575361315141937657463801763377369698013235554152354800515722734685304895222966886498775177596373148190527327545967739707315897590956309813785933037663403046256099816939070876355402791344067869414827202844875460564251027710209015547333194488196890386248337907454175042516660381770895475634189252308017728631442959417819691661731690010443187839040623830801627488599974241306089830083202445031895098030570415174784148745458597740790959253096268417999778997174092682751902676742903925905008595838699636888836801365254792052841898029002198445358967873136038605800646541558605763152181053999580583599902703013964146706941158772075248927931983301168712998665406564359837662048089344946100180922217674617003830527648942071912261585453492110096251207972183850519503642494223174879054562296618083748576393669633775874499505509269078920165864704312092122128653251850397368976562558627551948152955244467156162210315732178220114017720828518046274333415921904794410650559383323274441130150347283745988439868196427366673830485306423937222308935379007833739882337127057149122347539861066031492355747924162303785609045753036736842906810051373805372390005329333177417835595197723769965347096514595814913433695377235582473189464505740008182175283010248169669677627544253207848250293607187157366779097896779004388610685724136796617842156872296422149491440632584596398566717796862322629917556081936146242642420908884027890906360462910272293703506287433514386064422214050279810483034372655095506446554344905937618752852101559628246536321151780518789073736916392542591909457530373973037069771189514047371696965480518981252647398262789700685763425469075340082317445166563357789197676066750793686815150040322532083170085783230262403062507732374782115582069153847800939946010448683127137610821022706266472406861622163787599875910545465064265223727385183033217414819905056152610128907682904597005092483081678972407299326727988497509876501512146679830823113263629665775224026161834493509723535099002137203541257745196583510042369267046819179430987679396876254108660618659642229628224232621333151462893930406398681780889407931397089235290916862207706450598840159168641607706686753707654029536613662676668084824978719285506083389950332127294679567303404862730578021468893552683044384280729076950420153758373150718570493902687958598879157701891288174296279112477261544150170974328810074130438440693680825208210842677064083669917980887659865078558526125210653292939752983713434852904410483262335999601558511672257602291125962881867671952371907205397418517437470341052297227764296518813045790892484406717758903978379762912084592834624126633814711254725060270950130613736845603865185571681902444290229279581808403336358855173873938300997691028972943470596224037182834465611542463440249807232275788333499070631321361581475654188632433533481068215464613630294669020833127606674340115056187308361799182588354149594322424166486393983040679838284880093658470516834179232779710956787634823702231484734178200146574814141586451186215752005791186352236789090236181337257124890204023160777768867415045561073490348713404490770789975826115162595564861523540901369379731083140314760371155804538920045517112891829774407355777941808574590130739932232059828128852719304116586412510482509592757140570688452034194199579520276556511661992462820563710048078400968074777446982174695786832203777498198160186935061400167061276813450167428361341110536880661240162792969276596040333741477780329407298682359929634881018044331074666455898513596056460952964498742658273784042664568395302076113996327510955935498374318785929238680451780386226696487083535110025555819921169334798732148104885063626109510928084815409327120915738276212622260642355234215447899228138737988178059618364602452686446085745846333255960591946545729440889754315331105573144248960080510954098831845376849287702588804647484832812558719615086876992467381313693921319040242457548624452852685356833672642318334418725509277279895954855461085791541494693037731750345151066878268259863252334074119960173001003467653271425085382163295131142119348343067911162369013576996990567057637723223668151724843001625533442481108860546549970751337308690302705603175664632712694607973349536029472331166285108108300093454584356851620077292039119113047311399233602025081224660613455917799449957416304387739592476953261292425552550556877942213575527435955870862914503589875183644196407835473561796867815810836385711110680473560324201223152501968427552873834347239140373722705845487132398148333681158386051859645513015013099470591294789283408353138330642079229392965663817105154842450453335535027849083107856184830748448682480148608281313918438519075086290315713443015794124468142292974493539869863072811843483678239521404674089056450510915300375185570210838299702655588965786150765903865071832108792817951046274837773436135448033861069468425639404907081230050400018408362776524595087559349990698949774366409242369732611224101442574543673061386209404289287436597079887548960424027199970895691461047325815813176165215266219439593301169055538270624040902697782508257568921486889589545833318319976493879128108025096763693765879891811708342745507027960239503623616664042061326805016150831043247480720122261871343491847703971870843264979711635345196043637321379197122782131556840101368843122468427153261524764745245032123755164418693743957292510773010783886146837075969494263066312654017453443908254419405925435097062599843797380469077675621486704111648987698664096459212084600373718130208680972593073365206094561733993021290046282977272517094008474315744804751860723025574134823777522910919110016615424448020732588311105759280823132635968553665552091113066232533774753347845816618198441276921951311061295557151229253701561143111380461598279682091502587100930755572807563482177602410753839846571417986375471840398580277382816816427157833982660047637189135805700381935024868887094206402257060292328724436394550783592304761628392827289145181582969035515361199463124453799798685122637224922554922467937511203990921264703867946546306776450372038550787177184182314391692310143334388651039667395381105006056745914122185566821085056821700166793332029664067749378625917213405748838621811415488355752070314264595131616874939195242163317822279944912578962799031344079150047977943795772065535112330778399246244313571320051224827988789286261813067057647827712631219944449057420814281865775647539829470525797096392144836565364306955191490909466761500107849245876133945690288108241408514597694655470280661801833041408981206653626391074971729955755658407650495735934052643937430307657245361307666625329639028629595248288882658195473529064507562594580435619901845325153662331968829982404314061500137970019286602056702824846243875051815621214233611468074669890832544999769793487533396621624198609857001655562214778630771006986387836770815176304740606828425499269963515127530058401101537947944366184692343660257586449899442976708809886391502677485937193477194398288830239337278366204456627039444163543985417494010780176642381123021496461524957166927104248465100909355532609896203339290134563990481424497953986541731150344490504211175152368904657229988301483061999203000542607629742158176270837496926075047155951551480252430229321457839828207368726040932229543673477476941562830546376030656094362743000408525122644067841960853091552725486401122121395493051000141226210650987808055510281251190528527080270458796677388798412505331498230796032824233326503377447118203061846040909241036825338014114984564743615022977773443297176602490269006130252962476460648899673101069436706262307853604645791078362859855312531085187141404513795883440159539955918583076604516390635620201878458881623176528042295445171437792166525357143470667329572439524297164475541215367561095290182221776371343166843165716546599166665403958681861327145080177594896993767808180368824765654564670990591933510015105846461077289475018874265865043963739825720032268355455901794758582812839863866528690302470862282366393996696422825315690005372007899548097937202541979298183986155745956381497587033522278363133935106491951606127783574280877460752876392366523672471229421264491522923342326181210740427253550174537346873209761519910650944849533893641704612062366779769701816866718715849798147374596516930756583711476207894158957234633786802821303094244346112827142283241423098002174861008939375031399873409135296223943933357507926767994763247406078009859038716338058033492834335261902014773962559643474644393053505584744128972249211993193466932122926957162347235900553118539623230727643257565991425986932225683225748009038956765300545037609646293061605665838079630126101496019574893292766991295958723007678816293653880796622057533246977019661381251853795637164298069188403491766309160199141967147841364664136276351388925557044310319316662303201183821374250134413797973474939265751295576241055267615928033109947431297110668864908589307417030475931696007150966033204318982617808009769904438257385428655574583917099787295000210120983895714341435900254169019012956624505150540944816514100693208531314586131370055373142864636909339572352015245579618908393794760748714990452773895266470378791388971719037744678604421522880539600686605984826244595097898646041951269045820835812344703855672399185749007924568512205936353603589009761724720725496491521100349369623916439355207428645570364810638298108779135930542899021101269599276761146368458933050147670055633000385907996717314291397833963946688418647679399943685520974565147610001548902873734066681842168966537233342483065600172096090952758203469464253469499155735868307050929024371794794586498035473249339057081103653402633104036692306180592207455384854170923017581320894888461041659398237452630210776115385728925421602544302305671754126157328439008337388735562202283678477595681895086908929464326689489441870598584241849361931454548008737708096454513894614696379952007414291554568192707402480071488049272785611705611444940492288946527121235313858487352499901326920704112603794543072719533370953670346264918373267130160272985226080351974937863517750403327904463978599290989201395225020476176641073726180035830222324984420425582527709818714984208992912704504258359613634647467395681572591323020248336729403046886243892562345922994176963446483998333662263910675408261293223017840891174029638325046824740940045454849944008966881500484080041073414100827784561048658052502005090907018813333145851784725918997557629010959050688924079331595500342878825020217014880477015928977158096522505091233755321284578718045406172371162088007290791462404423385618599675439669019860157880574432009601197694366750569163942806812676735950506213092789554626243335242054480538496663370789531460394890583040796641181811150499221727753581209889794659895395128835240190335127899054062536283340563794382028239783511974352542898125985980507137916598160456800546586684783093170548636340889790754518885273055327267490966377009408611917563666347413914751645086507127354573883755358072652835766508534247927517548231552805156836492575840462687943613981667383563939151576539603555874638682978996091075254614226756181165230802350013905990020347720701606622101889786722555606951942591591006329201113216386227065024975755306815256977046950732545598443265623241894536098689880689578418679770498895498216820694425086543531776571762430176634747222147437993936422552447378070485091348598041789936106960693280272310105407889889063530265128076972260816541238683545946188548959058306302071563357318739653900585437302673863040164281185164429462403571029134449254907448426595907864342439955180065108743566476127027403085076025106152934111165554857231909535823811091100110848272096103228701769851333909165272322343314859059298086132322749167523249057821302033804299263021947960084942628974386754794476925832169275139152638359540837838190934477291932621532866764003104535479105598174855870400370116039306463747466874729283727428498565024413167068545687071716669832329068867992836198952420706434320411965552435308408251693484977079493387497415217772624575385795747269822564486601549931137929814914266178070192317270955001749577345773323466662507479286807267380161076307507076622884010466288629717098084037086606718644280364730956745220670589725080489721703749799329656247424112874738099725713140788989818712710723871311144657539861567034250737638747970494405088439541656285258653629324965721661471595133682094680313739997714837073252925690213215500925338735543031553318564913036608184545381568769939124218240060505727996787421698750763099590819156966287664744838819076681367753794243847786982241138155731764457871570587049575011035297426866685477263526615264439267954049510769307979933538980169527990665947174965761286385920231553885060182577271081055077232635208805338440555143142065098903393636508389513657670828448118882463152829814444168071740162219638489386669437144087941156857536083764767396377511268990315755921848141748310723060457281936666447888978477908632802194279599097558844614704495109969079750783471305038806914256593552256386284261927461838679547759988473938439442680660154809475930324711804050728603676883285289048908796713636494718099703228021617040047684801912724723334515671358934097784297065204693744280315259056335043463671100833539704562847955510210552719731042618095599178536489295287979658766672729076676337401617522797169709571095869190686888520500970920308372409421277134480067705887060062342123687355866436475122862479379581071768260836691581451840227981609769250086541751448266547639824574590664664864926144957686507162574118016505585647864977683386930972557651111426820786630288941658720889966278779633358718266124282127919703788333514372709679369719754827535644846806968382437190490338695572266492331434989192071241575732036098652909603553342039290926805295793634465333178278798795084734340578662024277154048708062010873365263234890218229120801839699079617064773068802029004853425447243871396382350725323032885485710653524640009077066608207036117059356841521328233746803913797602368087173738347704562539377332152941866305292239780370956009132840269453584070429459885167615480626449556088866059646776270695814993663774265424152234582157158660011509855971436092363683970733412826159194674350234482510607780581805179969541783088122076685910125545793177192325461908770406656589163065890884393955713507381582009219584183075641876028950740363120727592444928598218951630990369997104906189614270857102614330710239712442075213914231736643121530670370223439092865242908855601781800020601577444111347992647669784804546134816029686141522542495243732019581889583636593840386408640956937026168858458063008687807918124426135443472688087898275857662421286774387512221575326866902261169716983108829236034339189828267550639422905012149958359595515044964612742621386119402710376760083550184035993640168834243847344043214781844615401927489110959776685522222226863372703543230445748234192301471416256136573952200019008043831460765045117018533963554827432308226965110606645135570451874939324777471229806103222444890811464278844352773118550038301563709076346956157212932565665939988902922675152753318607794771176591410707288523198373943585875285973446179661958473609173437348114798226422741560606197247792068856228818124463527819895726303183064220028751218509373448637821113510997431229316103503535443991893415122142532101417081861064446742583203869453431514190396707699269661630624403030371726021132828569207814050353286146790179141367422758934345693556922222937629484481718416055666212580015872108462551990579017303292617242658889999923162217270356957125668447928634843294361618436735154182186719191735003527004143461906754295099779981787921331307788205055817920105505508260327836095775575091422759825455478989581297689251539868573646159373185601065352052451493727921128364336696121921460568276991472497023563338789668394667755669795261672229578123003137051890596619099855672215070482169421058672435778359390596533105702222126661794414652024858079601811960215662107135121135936407863916440889635738200651839261350438913263727824608836003927989474401398600771146214796389558150821045016723214515839415097879223067172511266128935622336335085561891985417823210454650382504266932255754477080960428668837929704602833778634466796467483935578792185282211886969925332274111493531545007619735706548594540761374487555488156660124763461928879350472011036420062858281143181745309098360919611175959320309604563597953969465166849590955154971482890458150648120443851266309756911009365362954244195979709208288554202581792930555148738931564722556258287121315320421406220565663439960404868770376786576330779356162984667598784906283537766091037410549442075563979090218438135078927722094717129474515722667072420884356354336275258922875659706932873788312732197216015044643939381689610680640953959637765182005401679566699425534899180710885973343936818303948542890593995593425429620193978736417678942759847510071775285902717023580186661918195091610668266832059517627008758303713963265039278414289341615731924857621008033200477021005275306575280681379553261350525874979498103363506734454679347201678942384249297672586710184079063271851453039326814644598623489461150494025769263504144115898648880855457818191247067004627348081356694708130279572831377892522433104165181129568446682981559037306887274259254756736215033959910753758594790373882502772296752613916544003471117908353984904473208870139953693232593276072046764540744812491443797268772909610829997688097267527569423552665883133015442235848342995501139825149888780765265621701691944032214969632762272579670632334979285353055591981599560666772710569941887864141896525693616849885561460632159619482778706251674746878529239249290278782237884581858601876118769968279989148693651866105286998575918203499863555886459718772583982485000869196776890178794668079771512832978750876321063328765945743059334567302658850864345350710230729706330481129425133819045731116218878324647218062105708164458646244286465399759651502290923883353935701532187347479107273784129791256583900825205289971874309912084965579025786107664376752397096457620969867470978302458022491236214983430826763020151213838406721354004724544387773782080483220412779191104093532700873769547928025712468394775245149166801586786650454673126410568413800836493572108610095325396817439447064926367142986610373839703581067937519462437290418809139280080227289684231512016157669129985204764144492220305482780360265777151739218921043402368879307058798144877740631907629402055279043739956717463691344549349942588351605250319279090996247733916617965882047669539348142816304548967192466011370727309921659753689757768734946473212401259314321326449081140372171338037219819307230851222217768677363684849036153436138116833071982821449371596752040752306011068890051434629491249706804732275395637203988731172659518958116400307254247417325170733617151872974612154116401995200341640035649997095533299541441552146684693337416955079583006996559954007207542883252037350710198648029175304798022301529230294271022682141103072707845950359295101695000963024161464074586588786767439509219706418185463057009014142702605341495895831214582605280584821319753697354290648119696651997731990599040304100881353035041418857467350319147592841747957198136667596870528641148647643593130188909407959098829201607144237276807954917390906769817821292131765905834357316487597945938201035932348268376365424863654378484727739149269392576370519031609280603378018237116902558469244979533486554245719000152699131246915460485364517130735701308770216482447261454886270448063387017006322592006182404578889337585015370534664783090122136107206571100719756973450116090917007533425254921001077233286885913489122100481434877021501049783692357760129073293078788924117720565098327254052787914446747930046847788958942175239800108296511819864966695350009083350745467543919492804390889279520425953232728732563068636451350102692706482456337793611155962480210097050791815055919303281410708730042895057875309547580049172552011168892044387237699039710926675044049400938870025766682215154546706392676389199793664035520159544326813400929162846148218678345645810469532977421146794383586164859207054357119652726430513371860446281660231147177531221378177330059147034753616543253945527061249797974089972030383481469787683561455470953296127713543164216821782147274388375770006965028474815937455477215940221197220951081429804237057541091516669220542110866454736264601135441710073551741385132493610033379806581139212397500082805584357496745816038202467356664867875273398684374626381997858161238015358000707098037414682702771713234748244704860580115346537287163390620918183801377437105842348329150388763478479870514072871302262437716003801722318255410965243095995450936582992881722942832958217844085620246938682819633726103243072799563828074179002770915509555018692571502132274224540626603141828857439508539211561086379494004379566710875181674150168854304244447455965972894878009221754112845677734999761029301553598624737245011641265348528465809913263507381128479952075576830034236213555867682652211947758810210291619953633993155114680759581223080483091165542799637982100436684264204939671784411787996018481488772792050458693220784867855023543547173812383532380328317559040160565117870627956840416423311603090199744918587710198329195737143298853273805314989342817917740943971280744518209814574049024098660385823604562076957513165116472398464903150790895474934546527585558025129265335547980616597863352717655517160982857455501247669546655375369519696577466445231438110165795068794902755401710168762590519594372171724508155953630032847975180889933963253316782851777868395420842365764501404471841651551594893374700215295711372327457334093881397167236954377666398720343327783522242302882660551800860437525480065467782525437302595894069078237540653450846105894315219547821137145908888339719347501586401088669371095007387570538026664948233937030806085446466701512967267512311523947799173820792329734007772339887163953342620619229997967343465213817469968490215325018694245938223068398056417849860736627844793980153975646027259225991156573280348030208679639160887663017088975874944661786367703607925540527075881663223339938678315156813454521312715159011618823536559626467090561646349571966274952101151392690106964813038986168817738380850852690402575562008541428258187567417529126496800284231274520647249128001485332803270481472869367547387649376347489285185830951306179351024433169547795543904595075784600536587165013967496265021969090442910135022537345866729831765833692918150694326567672833511766981872716862762955821250047580127685362621902104752621580991974747236079715634015036752574342563063664040232956384769126492540502712686823982793220016017327353537705555225546079277039636689413852852929782948770802427046203315777344329823914191779453650938412356621977236206440545627337658259393832568365009639879750903450096218044069511584071531505675514484917355725118393445233944704162804989093206846229094629828479440928081689073243991538866714639896828573901169279933137018854560357245003954101012381471884098946525140472890557704559797637208901179786868546495573304995823499072547115294764173406347481408104591353704066884708954490832235770417122349790460525248424512343627901502817854712636936867782637790294878032201271543526650674419503993811153825186977320534430479614618577206825698116249523456642008919076159769684434274421437103163414866689531074524343134894395445622497007147599972814886470442986757729378638351991751452358706555062546141427709943213469629318870908477572323766564652589813636334769463784626208872589611205165927818883915756780848854162371637104355765609672002116711575560068349201947740184295711453595724628930490435855478376049630604410250251995042054536131392303813346141667747233525695288990271020982990361119305942852944927147072117047405525611321857625116617952572423366601309608437370794777311513950370904167250473862011846206257293837899793173371685705092554293980828114902756714210156154512206417882626769575130463148415055095435909987662129112083885250216885651283261005937203415414611311870984982789083983164427904641466745106084289595238677526084632933107655639450395205182177036067056824245311157829755494381986628947775078944620708323681784729210473179018102223573372067212567312910090257722867028387628556821292223140866804663554803765343590038306632497923255725394472768405795134030971707754552315167585865524033455080758386538882809417381336659795678785913582721962469696937959331056164195544194880721428606877502167444395198511401654419102548116565447167056106873485655765054938070565983329030452813035943566161253413775978442204608722663304224565056318184909700680167903779955410918777286233971683300087230432304509737355352129165975376907264915270424226016248208116772436696716253862553950893194734685998575731393457908781384501737323288859740578986615988250265161498031549419614735523802957626354455016866913509711013555871414207460115386172631680269530024451719576319983473014965569343651227899765735328761034491635151374136542039705553252348618807741186114749615914843889539989025287242144146788700479497644043876559254370056727594890364836307727231961260208748337641805190710981029222403556363418157059099062724210108915802422796307606411461109986950267340561114321310975508619436106449909564561255015793641476848457152745826653717718250751203044780100115121125808953899738164447999772079385774497553627120774580997322957834050163769440192268802158961126738603424486850507921053838940382962556481813429620040473074828869681355990596570077364687207673355431917825726298175904732612675008530937382668338470426968471167724402542037703208085827365118471022234548881757110034858957032870786405466193555103467250763527412312675954694223588792661431513645232474555818044338332957585648263043152838726483344529892937540505172285851825383951424133399363850992644282725574717231702180793883969552023357433730696849151939703875561859862266871069748506292859379887968484478729997592063882543477403535075009917097280537414665976244018177733978500172489952500440405556819007348837951329701475976384384709740494594008972920295697179518312870626188203479265539458458415353044816236440666496025552382420599387159958672278032736488931501001595362932460445195016801346023353983186162136005633909525263209474043500091593318401814590587328750853892165554233346743062363587203647224315106900326850760874527463498948203768579204160213401189761105753705266890890204201155046849654143884295834812178306772273392197659452874424999528702643496890287614787398304771816920548403859791205477841700654316378388827131853991915374123026201999238406724349977970856743533404582929173967361155197258204024094368623866152675951626529383156676456508263278291026909705544057259236992780667978526430262278429812051124602432856854770261125526756975829881574437247527050301719155303284333692446736820054216383584187195019539474080823559178331018309883292706142894275866256816086783520644607606528931956052647857204909715050213167829869182463477930526844943431506302956980102755979089695763003455915576018984219461122734252478352364639659322138199708945235485741850961368957982480654761465013357367475770087351150295008581747484676285698464110338811646197685290108861886613615880366234454654247111046086608348834351686290824165571996230322597293656944483318317032929806843370619082265174201866898833922338373885686078722555223882933265148968320828791814421880728655724236297498833794658314614382719525755105882707852949711462019717569038291720822934150552056179733595792313975142675552720436729756015817995073260058592713814686921839518385204449132913512736420758365493470359994688799375529831532394180461048656346597540300201396353106787845313571475415529143330235868189070125762532711321157289727244996056924098749357055283657677003092240159199401129701769186127825596296961189436469832960777431259586217054305398766375339525560331263253524750217474015853879220130956955075172087976773925672587229223546339021006134959305143188789606985599083441038657417295243680379370698240148548263359915740672589130392001934791284140847425062634864430186192070836198884300779714293406850909511966283764007262830000125441183296178466109592043091573776131347900040557197815794173310603412243732768647193778509244625295173261452012680672342605827745190736402770789634292455893400992020803644928695633612276033165265958749685052827080188708758311869810662958652064766714278141688442155824498505498761952671589650630486623213567768239191142810534035950154239488166792968040975340317045075886827231037163308635449817405974897620900754938040202824622368244006258980247898151449131741173191031147644628412719956235874984467162103274714413794137472532409606237881603658346415297464413782466570109990707480784933451826268595204655601861832790716011958771596054189843430618503248387606551593034253798065898228523199935685672213121222863102402509836290959237552559188045097858671201068557100514790509733431911056643717758409332259110384406287763494901311353573137756843994835323355782576573159609505270698179131142566318901612761696264815666995274005174051676854462746797787773115368606671215329831689749480253270992722896719090863245070051716655279896970139503358781043173272326433074540329618039599739575205022011969394643169993654950981672929914219021248083128734876114955596745694863242789194228422890356088411330815007714229067045854874577826854098582911938486365608760724060534970513672114200359020147822129226570591115907944388751257194997274399265524053922587504789651122106551700522573511416429505572366634049137005836139313402723507069433796191760509119208183731828580148960965626875459504545789677514561725632836340194784030405308919619859367928280077392618234178491537126792509274592886978498771256017172318477934161223373924641790593569897846771802178387404696105024787921853422715243416745974690725147074136140495937275837365589687801603812721881180437075551570812335077651527403120180238301674367076732416547194551955344972429050433550213699498619987327424145680997092383058149104744707892677566624844226498307021979506413562232298350838174634506183845387827829853942578557755591080494546476566919428701838789592156369454695246562725645392315531898191968716381381039675742533435927186228938602275856223397770212072232527194324726544789024046541250161969876063109433787847843433649184230988645456654581847491604812855835590929491634540959992127551708449200642394752550748367757184008957399662908680972715800349748832100138262011991167543804922302690943572421651591726119010924690907904154846331040478776764619851002612258465887684755556942866039443531448356513443493002589999652963272910364931929798278983048656857803478540199236469942983613906337757516506747477235832610125811522564556572240673643239315968577971975135325273727137611004170092391290921225028381949280461465300073801441655138207877582241701972931543739302126678669526777753014820101347727728179695395789320346373743038402876555306197978843505993562877342786908225177646529679614214507332575585753732752903446163087959685195689904887437761629069764865490751917447934443049964202363631063813136405394503576556184536821392480370777956439866153690341092165426415268631453020483794843454963595256319471589790064513983063032442762736859623823158528025686400693581923201749381229932559353873640088754264676612649000115894422678086902736955658100719723472918515642248230497462160813024798197014305732895212239934314037709126233947678931122176924500578751338484898748947901925554953963729737229056127985658067770621786278436504784141044683792207244116557198157971125102574157482903762582871282967344659330496405299057382794075014924064141024974806986120910993267810036757510613393922662527007288963263292981261666038102610067012042337814496642352524921236897922370350609257829892482022319718349782292915735998471815769406570999256214567077185827838750058929128962452002027223572168889663906742721702874003322071106439541333155333183759692490396547308381892295368421211916020845063637076175237627453141654488758015608175854940598271858601688692258900378101384183766342789152038834461656523242560924009554041641671482283007587721688109162480159582918535223766606114925598686938540795578624162171158547109959487150542241144189453691875029866801145938256167630803157155919979135895382711901376846130170815715607781177752602254665324749241160665674519497984837468793027785406154913019329030227423369465510879904577605821759218400617935792372912629478065219453438693191343771150597777207353713675916040682544059449628649389658803949320531106863401982517054962654929035660670799229591762252137460520684133132137267145028252019670857905326736303126841952309616634130338102916408032000116881622335231603385654446883712215214134989195872566888114663272497347269293968356761668525753803735030398690738679931090120822384404052622938380796835980359594717584945621818446027917782286300292016517153069629408969360689843027133040890048495539301508426477797294922994905584544469897831034571766055408496128199291474009112989218931957010449960603790847519471293058800963670710993416974867603812701502063435884247046044586442570367879965374379056275755848794870460545193161978217530026533813759697186429643723603523927256425470747670670097764942668281034289639944446116497321494141653166804291388011220105588504000114230252834095258659883719150789057505355644865254125707898995785216456421644753656740880690552006408847866753977880433821910898119462193326959666435978737591863727922617845760995726933190835527948334137567343027748738514960107839817038772703005445931243431130451652342504838764137951262930399930446462668904533962204436174042985605754895479136253840711873715882053741194636104690911295994695569380250068563355935433928317481497766520191383332858494993665051628393690333318719703013871520779582589262575871300317425379177446759966195128731649914344721650005914578444508135329643542540238663012420052079930130319222336655250479740780068235658296909988080098444352501974382129520108400046469824062581778080995118464235815866145105619952443081920230061475949786974278831030655648477825358378659963691226963891080261152015654002619835635759041753032572023706815802611111296066844546029415750832440713643015574142470188266211080666582685004682162927505842863807724064233373326850135612083394848514571330839058009457406002955599184735394219690805285580174361182655607227446628114911717962585230265237243627907021345372196879684224054496227953270849356457318295855741213403738908099410601276316484936371351433615932829212617723108983132140408396280116530119156188243718246523876762891789031974430720034411719681728022193429974256126205503152844015400704403379596209985480146909102823118246836848121221481764392431045474588665036288777526829430942549736610495295399963382180230858243513617898075151318381019181873770871287557874699064282368589318113432754403759451170235339229015339072546488028341321148545576398674148399464370654831459638398343120218535218149689771130250053390924042656250710960830736431745443031004735728813875484274963812865738769074502926996616593936599277711302613859486583442554604664733412916843514838019555053075443370544707393357846135882971645800226041667467754855485813218021753634736951770588078202386325202268366954414390338367806649927259379144788614567110730605019982523224112884713926886964778058927401074791670738089340405556709967295224721898801170449385598561626433133439459196521414267812808123785763897502565044539345653358276643692093810330757595957063522031459602606360801008296552523074516313738837179758649655430433861549528518974000189198911546880746198014113370039616854577288671014313763688517418079117202593575423867712185124965354489096928850910242436586893162461863655591962388631151232426305148210018755761472417906128808770888671112159749632639971865848842963093576286790436696663603114918052373682230466618995543944074177671900977587660181020553428213378116604092503724197194751008851803901747548205861057926478764588820810656599004301766854159514813433339347319087962002497747061750712720662452741906918169381763585076568295629732940963474361387570090113963230535040053543131058190136505511413799086161152867123099050119582212910872363630425611070335294195395485890334746653882988798516088211240315600493640263382972124040423519911330887200770959683426144300064595124739474033734280850236335419814646760617704823449205244765485880433348521400517177929586084613389972381099659413455492206680716099741883167857558922390332870298306121514529258138818372113598236411772052227473440184426447206338949776357685111157425660382303854401400936669439711245732008720057195667843999953247651723044316340414148982866972468835040692095221126546578128868813084184562240384066516015410201571420260479104320930638788175537806131549403021528957781014555187813851064424489743851500616202420993276449551075498746861552927520783602246169534967434662544584591405322334698616736303009852251825982225059517157719896745596920370427092595680175359749441736809644469350480753508822431508696839858137992231634183758171886737859641513341238688834523944927201432306957585282575077543676335420158668361924557997745911324204902274885076366789852605272153383851529231113235470849654405925534926024147317523219771293142631111599933277352554122936816209954766881421053263204892846557628469915416676959546768575070462810627605981157499279351914761121318028561488723542927523180266388434469978913988917595510608058620846176727450488749510124957821140016661657573035898645622852971740110649811582743325587765908497448678703812802210447840506317142076324368191811367049154559533501585174015493162459862061134003740158372741907081204848871285363332299063642180612374542507395572024806639761834508990999279989409715018177816421300927603928296688967946221102177484603128114934360972129564504447617084147412069694586397008743818324928832475720699498654016499409337859207439537731359235430912094881273205643671608466621973781832395936334303380714563640869137960996781482075673948553228019637409353914825415757915927293510203466199289854146964528891326452654816234190846006451176476948277387311454934236102342440832518908248739489851715713175751891238485428494817315449275119963727478777733273875211576468002608168208402180976698737941217049647637562145049906866484091540915230853421224018106310482977813514425395181213624336475174927613819495063069904674934687379242423067771546243100854083082110874435844262513813737513134055133560204120728921623975195937079348217378301914134697550635363068054157927712136874049335217254204987594855976488776356498188815884449585146834625132784143357500048701358098706340420002492639752029218045811784751655153205141814617325388737863809886215361907576191621210078267805036824879558630477451491247455900458895183582652691830223465637391751784953688601485588564346900690588781070146854202273566088479107054807901297389092967148063308398578360368812282097072201434527012971496841842719391032616998243904571562579451470082405000538431206838047009043141315458796946637447502337707250047503647130261590253600870897618705994568292544628113797461113272683706358097718934686870677352123354679126355373925305707346110583155905721148092349667079882526947557562721812228385561484065263752538183325746467232119795038343106405787380460627260856817038619658366370082120753344863292398627726716987963180545726237414172495339424458228534137063514632130703929356907144212575848575184272257114234652218509888097050275551931082719626013403008171178016803812426701755251804152384696699539790156331582174697192091688436811909137421901433746622891696885245957824921906267509564457360087256026369864536415137514432784776880745649650026237013772369175316971386648574057921514717739580679181392740987848768595295399031193185027927425431512925169877756963169969733157866610200651237536495487014947089429561516762180122268447032227911885749144800274310994714781900753035546813889976140954810945541943618929572833859879321556856660344404347050244730989352413679268544429305908629505277148701617529474994390726914668923473209636288293504716464150458093777518482247414872254729570415126981376109934343606151043409279543486181860091321663892916302790199008905752211476883892301657539017161218185817625093388024186978415568040774701932596928974744520439942587536336984192129871088590053154490645173738969477682167508544877156142216901884224830461980558379480836451296642405002325234101537751307931955297106080491551026919504356168588975012097677455252340760139020997851803110796600320488237978580573338993020977430158461250869987022878860931351373062265576554645928376120084596353884522121239048697331417962318564853604820277614986124148263733980206965319675106364452545449490401262566887402338941726943803116335459326423496479014227628299605078693658080617626386436228120539026225442746155517469492226914131978936623391417955172744324357404405102677008961900483565337514362956588719978553855885381713500497110364897037805971321812272074066979104365965144317722316108618589508925125173040174563502559402778252168575907693482938204309115719108646146955504723552189023093209248975548796537728101444927122529236738842330511824846321661352557765687358155116738955653615133320056304455874103034287192639367554646010130995081444450825111709626540439916999221979468058834391582224469102975255047670591611478691337861403867928858978142122777276592811739793139092907222998212163849082610661528603595518099101621320297076001779013579324664829476881246156070110575068578199310874485914426825766562522937112768871108228665026586197586888268658613233040610573977741734760169391984644921113071594216282294994872216139533233248353094170171984477071106877656149352906017276670962330159537646067153551880291291920362545232029140019185434598612492575594789805943354944355512772217620013383111475323785025339110478086178265821223232615491438193836351600094302835330486368017077854113071798941797560580385652170422022591793621106518316832325213431727070950728413153700589121089880823806990014856296997115949873893249492303552441287212549273944518714487692938486651837439666722341859229577403327412176970269239452751672908821163355848175629758085926597001403253080950205342189484313412549040307487080648478589511359426625541299158141563263813346975955686781153598743893609969161731574444040081268714357602908388968592254750882530677179652881688093869002460634571302422461667231395834103349204033027325386834982854665745259061337037126314511659804075676693397213452715504304747149079047349225480869812781598337050244071617410830950885886844423983522962639970324231544910761369010838882002790469884276320135350278358154306844989600181055038668779576049895902875625156117634372714540891627380776832548710059196061531279940835228759239698148056391092728919310840873286445529247790749181153978609418750868809772854576574661499462604358241330801516260845747468031806469501410708991678066244309421313611040875820709763742668268978717526037316423564976053536569035378468624771916435976121493502499846616308920691696611072697317251877550988666239259448815983527520289181852334939216041505348753307723097020658510239820566204473798853499885876896409815314305429004804841583140538941040702644376346011223998199775492637626052012391286644231640114634743857221773953747127460682836932878740416652894788806882346284005432382983092815180492400570610024184654769140230865875756626547480365222079492055228122247835082728050471198246154522894427738351666091696814927888807379550409477987463727666039927121555143713767431334784862453430266992719083608081192394067438878452916236749374557424505509498735525540219136917271933417874971235023119776985811698192810553977190853953136900661104065964253277128073142479725717087642300696378215760908776982100631888016255470462232615402407783725701708743473173637899790088881471673872384560483752650203969792838983851598089247685126040566948525978799706776768769307801556709070520389987495098762977226198920813547350304476105938063889196805966448234339406654314524075915118363000595501883738224634268337082009528766007806794761431724988459918728895057276330293061147633824247230408762649049005526490073601581226451779491275591151269559133385017607955916681787425745262060038183416107854588360914447271099047202505103936108704983178253514982415512387106361729022131093309791433655008040795310451105082832029271351459677521426027383775215739248867836479613724296700032213607484480768914650535740620381967235103034553525742477066239018226838859272094901436800902167482032497909332366066144794863729910280669082708588097036305543702998947604415002600414910801849325264493559701391666203214046587815987765245851976500405854326904004922588341189894089047651166873352107275585673093636861105310634512711247038863764782337760721235030410979092150705717993270598247907766107771791293679077731887338957271574318347229374132901749690811460665913618132790591872084999584831205799825332576489852380248160440644683613972931419983123327438326365447397038037197290340940559405740484382826414208042565865455787885286853267524469293976399230266165353850216217290950957018229185102977539379233310566433174702373636861454565558965888448891538364341518253879224679225558030056131031686190641593334092301470272023108102157684677380458351355049854181754970026628844803135726912658016301649498346800644622956576862297361450951621151688127922880512317578063537021535899882039298684222779947402321182303634423589603693214552359727861048852488083654651415842544883787483406270163901071180470392475492037314005014332897003796535364229766557855124655056726663445875532878334203788522633635927797853374087704386594608018166086457425546662686379056697928957978581235575283771378295152524769070427265579900739260061529760548628544365487641793067739709420528831194781770067448091341398550405555689796287763231899019092125472911308528599103660962340133819236174339974880350489680786162692970979240957230720677061843972622992524907954203257926436026549244818250696983929445642806307686667406907069627721725358761637868071450486390236611736578093659056131831954722027705643323932758034154285813185005996354628939228102581733742739169974708124389075457656937979205909312362608237958626644192227888899791518811838453290606042613614263536903938063242045902443393043244403418803017129448028784056897534051583182647661483125823199680056027495823455400449235653274210874584662555658554876240006876886311288119700173964831581529062131016127185296522512166742536165110771329114415353172405231509370467541997182647757156007493000458189486990299067973138246889821040179642540749363406055349183773977030789886864530371675152015353420808697268652143427299129519849093494739634120266958537786576967845136017974527549574203616444396288018091306310946583321926316850021531584196547728006841456724266098577753889371294811012363262916799422549146766520145835104483382608713252874731908014591940695789226105400074526052961639171290994017351817352739504539753515126940429674178949195525631032819385236926744169420293493438064805452170970924576036317982765091012009071163052791554914969986991309642613865095517157377966493616605468157913492446117541556730634694969921816090928618494557184975754039778872359733278459323818144242369329303082773520127362721998836952969469688264961931544779635913268486425611652220353124596297497829795133679632177217434377736851251896065397585086903221885009976585762423811617801495964815622530617177627814651016900736793593294587691057611566632025640925877932362061196217988588866969411366271001005185658657995001429118771060054182971785482782038774213280818325318527755563633232687557368144771857118926967517251981716504158300952020040303526013330531809942907972569399428790667089163564815607468761006057193565345339298325842506145268170179692359185026510720844149156430979756949654828455088044958047711628954738555922643731639214982458090273545159496979873120702367669117437538376661428460255728648971700081276970642541623547021951521700991134199151907083525407259967374995489044265049508849765313574335953509495139067939371492655173523412841781100299081465556347199313610668901966233025085608444759925868946721395132251305562480544163177279669870821414723682690529001969132239641577537572465318893675823322686311898877595645890658024308266756374430174976128297957145627132086226018039070944776010410642050972255511780861003983055887905882397299014438076670948290814901807391623769884936187246552763751753002466009270494037899359041807847161717529338032292085912578211432984568818740527653655669399362899505300474213077211741410179720757864801260706335186445802896825283661633091156831670549938208650082363491387132852937356458969833256786291855470208040670247966658736656519936037866767989458307446903721040028852469698136475288929235906254539722982459153257057541467690575723421804756103442745627681370026573649727333501125647127810888418686698942919987062258304772652925670458464137638053144408081027517025906860012547080167218136953345352792577729183963747650178721368760740850234796002608496378563219355189279248546139840581299583532385427060032691644705955295377712843004395649642045512890213071906642839129203051174035981035047798271485898947226210420604815484764205596643994487968276831306363626135704266500329327750967933918430624067081474360580830268732477873478916348796025342937553242723788206465051922190103511664299747876266728344270559999332545580228157852600585015986643723956767643568388240171017639745245629495828697216796453188014612485697542838376105971545113156906352328208253900537259879533358014314939376075837053150321331473898412999370014086245292769861680922834604046762228496962277203807574881045732818026952527657954591937448058604360578495261721946579954675111356417031594116345358936835114653700148428766669394033982191853564628863373027675909204771032117914112242675341070299417861311716379025117357824868458814472550179087406600240416948421225557438517601517068858482622074250226220596795924320969803809669863066191076647387489391437896952056278995369291696174899801116474457579394936578102050379152142922154373866902842919798397501079828990856955139516950651186445517188884209531654227562905923735619960598393182493772353655671076902965248266394895617133503282857741200245170865620497090919549407809953186900874980240356523486329749675498604764874164178662763970752328436946863266365804271416720434978105251784733558981669539696894066859307552816770074888034327559441706379290513907158222484902465369849086338819269432553316826227669612176303404508517578350625234249030233163062176157914714688143500797870949998302029984310891467154428372949901417314326667959769571776850145599055046026104873191884224855004096935949029657438929743244637180534988923201330592920905311325549948993644251555433434452880546022352543815402486160235462331153400643751480355008595714716017114930647768700145119483081653562763693171732836857597511659896118686805133276574591269177717529882187788815098678252375449251499795544705557646441818825734450635757160764945310390017938138315835852944911062649943991400358944594388374412881886735894927242055892866739697394591134553732984702080878354318973448285861804292020470494375825790733161111405251515089126714147841724049310274599858020164624313033453080512435693385018738726029231427972322176432486064392711876547853898397783931496069262725522808059450716782343593819449914781081948482902765430429631450390379514149930257492349679759389063905198665577733159714276127784697013452568173663376143683692957177867167183964084076999938713473089516555815713517240703986359209429733974327256597864382618042535172713315804747001641771541748327615572928452886486134360531569078358716711657822897492991563934068247490816764263266786302979736697126962363650079382819242774200366087252816237367923032934629975079829742579015238959351486088270872057157404981585103658239203611691390494702564886249159872411390355165111212318379455103464173852778548100338779372345079149784306383873154029797642233040467769444398593176061435296568628011784325027185550181288749114687443997643662965126541775473661620760589894031664785007197915835528004986971089304871090650606168250059497301464261314199415671845202067615831730098874826920243885562230417952009337041151635276419324327486103035878327065160324767741702350209856022204166142091625418906681346629304278511041772200941955495262803600570799054057445015854286081989255798434863095312894175624991609610444654035495721463896895471525108033089978551433521214568984004801008533497955697799555018270289803985361914150763311624459994239367677174100400853573187441758069328237125760229988815405567320238843147811374542892040353860581415687490532604431828232005663939320125486574491632952126847761483081344566255642264218915684404341504512330876468845309123772516181671306590645938924474118806986284513209425896347844296860794554494098161813336395946755296026000969859868809243617470678915959453929314490382395473892492874173319475459127887788675596370802481486393569068405819243955349484451276093650183987568792328662082413275510054574495435966263378597221755304966189712266867438338698038804523047015588872095360448865852210183609876245067531299526714652860143092235940722611685372519538367527031161292244843002419928369911291674434392378712079650633337466838436360046052382148842053114385561456263945312156149449686213345281276816402094390598947683200519975725342398308403392652514705374765159963271445443702454438421739920692385124118294237389081141804273339323808105481437281089782722162211611621478417776834523064916286558366633232418624746911677031760053111058712257880227476967386352304638918268097431954633176801870090452309484918556710114329496984687469903505150360087126450669063248564346872351010012542607881825637236290945051048254766149119188423286687917184326597856686045595414828143842377276283099033665664295213820749292282071389470133993437833628677152976428044117124480670559735363892438875539318444077572319216055811629250995041198923819901481302769237411352327844119617374852103825200106222903893208498848017787367884909309234697098047842329447929321386933052470230267427627380772136848867055653445541194705489566360663434158481978464875171837389325501657270608620506409396630369535377459071127236110039642587955755565541199076816172294166235098186187921987802609204649296223744515374065500986936658801913058490944778827711907307988032606356223653793191965259307232069933947754751523034745055457664513211578583848533037327742894572679737262652635409996534047619926924060754939495649893464125717910163518761852296007996649631048096248440377879958545265996474486562886171289386231616854292002215906169221549422976905051384262652717312518413440262179844091667320549849673802699750019860737855913037732996787015786623788960031087317199877935539126379253333269010273560955703501567881965651539341841799293305459920527933683766714146728275366465673417735760263507308192501998094705861981203235396257662016890606098949295429515643875258715511176063933687875271362772997806241461236999269785937905144903411116266134135296237525561847458862186487377391006091043044369778588797124148295073467568768184681421704250584043343750921111617040276613282968115436527667707541731265294633462439242296213881271823242891505172373448728177686368323283026159166037968183437001993744924064985158011311028207637519779846864291129134918687683653584162612228363654382671064670310290974767412373757553139862720075668002962688896028469287454736341248831124332998655251232411719751607322222854337747109699609468469038113527943558196106724849661655627396387545773483421123594508871392122776825728587754944812914908725388902417377726455242578506492970755090957839919773069031221292934202235874604025076346197033808710498926504051614135856023025284978717003318205689354753187002228405876560026287393894292613850505632652313224767803798166052977242861884115709398142675763600140946929023701554703639288028168242080072408255339760137003067152349162150373476051731312888570068914883471569362862569484349626070984653567425631772535109220019281463296269609100434376498970520461033363382447798275012690694684567376581628149158047743993342499345079872346119067585426214344743472787761725423301261193743347065355674329652347814395476993427779492581690327708500225407106645290747531180285895947507647630845171629110571443402640535867211830290167736304718277397865444481756908247564408404010204535798504315095736422553511694665313627799831313155154490838580853870796452965250483511761467594112114996145502045295841819821274355479083202876254012011531086735148404911782577072443697702065526473000282829956294715689681204859443012204872003748004012751222570740117145062859929053667417149798279026188455996711757691458180754128480246694338400597826982209770263090105194543652149920908504989829659405013519540080548234767083395330224538344483830025647527420107229673431456699093569610378215951993141629043709205099902192968680113076716712375522529096140933175055866897673823486506794140604101583128101331159360923506584273684744638410850220151538560055872487041292311329452219994012448509055908734036864629377863608182969131237206740965763702166038911474763218526749409076308677615026246593050545184410777442275419565114897071284725757838171383182568189995973504269711546522113075456296489251574626677046425392989843698530857221328054442264651428743712678732313465078042110385261659003151019034742346956290421244217009883391529481735580926714104446875915235397728383199792204480068872673040035119454104525403792662251259166585645832094193963842038923909709693490673304526540983811797904940953682670059542339709237110138915940419825765368688478800729268160358542283552475943147601372635624762520649333019419488478829268610883755334317483669897518451199212497678361913377204585431452785151073041303927568679609713254427451300343963972776173728440658108043435225228849334745646228172268967894106009525449482284626820687585221882780026198871363466661327449842117711814373438652847633094738238837994908192190805932269094012819439858189170701738695087004538750633331011057152620824589610659565337792349895084715487356676265140906660497111273525992786202510239912470764152572331740522964081239138967732552700472235866294381124545965637143898077374359454087934458793161679081872983006613207957991389227361816249261252581874294287824463090435867214762646303294312570356051988102025860254128620153731299135580295807049770240286228466396863058837629488773751145255576417888903397903039476356230572476620299535864775279811263135705073086659385588056351345280731311668586395283360384813795863521048511017595467298757615341709042997731546376507460929403474024703649300026458371933355263194416390046458484936650784797628254479346786805561552999214317729145338802679454111659906726285273425066138402325952199726136862636769876300211405039954166699933038045566013522121536710458206945562694957197775817434939402890846971360436474649399754695588718702302603403160865108236390255219145048464869889927003187269992669632511287655992418737089457158948412982724928686047921041490586751459379952141223917264253384782336132593102670993943070996390247429711102577332447295490987901582725650430117768273692767793101644100570769109975547309329207193168816595522921041503838789073982868002118138472696511117573597624133417300883082324869294002073902333027953914761083483619113832085835605309451295912343497774667071362827184607192806954865872965435038885354690305618801786192556814707872816926246755905861253137721325463352222588569228531653663779697545243110741824310396434040778133161835375238389868370224454233881534737256387541290138928086928023790624270604530019492322522257782896369418294634509416434036088381400765794600111372507257637582641153449207108904967801185679725181564485298574491927777474840883863022243407657910362052514940371341637109160656100772354695924586879328697643383286999251103556598365908136113765527064503773536793250605229866333727412251490567291221522021927296275927473596892716298786654417788401961239975752973911313113574049720086065021785345932669073616393203013011896667090975504868152885080194747585932679427301321867753728458290440688715528690100622708518004080468358154511535723018541443733227602504761948676158367195273548378576660619626974531925601809219666691987977306377226300653232836406282067586401612777140076458331261933853061542175932092311056675759101465714296698154446865853592959286668489780565973629130217473662110288570048537144591404294712474914337256195566701183741762974906384612770484496995581278281857078707400862064540408195859330124103635176445111220415333598116370508563241752052837953677016231799012324601864821730653221195288446883880007887612500611137239006481278683163142850369893390106127143635730016064104940904123558543923491386718350311654580101060048191920278993960028296507707526991582097671212239542898202909846909012526865679630813930667465959036036065930749343784637782210931411657891323031158032328830351557435056902674267937950744577503446035606634437150098837628996722247072303241153915114056092052088059346220966521558693570314478657903883941707998924602892639843773708752859288935009248725528619274433372912770990744929572906540654434578327246201851316274041162210058250416101276041332168666371975731533565002908164259254217787368747937848233495799978067398036724159442710492996200472247662272337412373717141421891485004184041065254484177582664273417491583683920428570433482176172884986304409429230288136180426749522088894371312978824589472487361418098600644359281130426292372406223339602425252861309687039786062211866319442000885356463727411225261818269559775915600230483688043350796236570812193360161445839100879672867498744925183660499344121577323226293952933914177656479087663064663470457781633265232001160200092934323567595879102530959536060627285694337748097257701355578894637572129508009525057373806952864788621201340391327168756143249128133680418103988178120360808955757301410630109304564121484832335230953960711168793684636995189817115549403160462481426113989459782334169236835182912621630483431525234920859604871018772821409497327458227982513515567495050337034635576905649173717229347722208083403524938272421195027837075682489190026241999127283343472219131215932455303259864543254609766200545808647621753084077303956837360196022649092833527617980794191462213507691136082210734252516604714904013928687517137072090170390311274294948325314576574099811750969756031676291359066349798058448902778832562082695937911857942193685058843270856332759855868475989038451151512706046370817424263647427181819624052418909421213781635960381003599203847220263040948587667178922082895305317337958653617586817420270843835379688999794833327227661404069146984894920588938246683333744835499360552804934338650770688461803105299592596026674818723148939805359708641124359541483748112144465589253722261796272010177073129259810167987637463553169256610672050739518333640761765192958431254609283012666534413936740476841194441081953489261210859975361286162719835050888458662712965771905845005854877965928768842238188057989807493310302092117254570930259582746125340490383760823049316234278635737205523505725655856722824379725451355330590298611214242651747555317320686285102706183999873417895074973624914502627018951433753855524270814976079958234272723060084398795676520930507872916533646373825631079503221175578708854972326743575672974712348596150809341029190637182782335938743256260513915685599445267042526927215489480049719291325886153300546362459206193604286857691101194849404372604513144613140787009171322246106479016023906589325034322258268881739288632513836171095329314829345491026250908048887109588748595335056969116831207400110550330326307149130170122519533069359322983010606430660560394262169462677430901882500045754704808769927186022170151700699539066842923347106619673192624351597214479778677558282258174505366278534014497728044394986808582254415331784772992660167342053141709820167393963579223293123625703665935141339549926758630782718235665116832427323222053569067036180366084785686904745598591278746508780560534487028613454643391243402564486951865017267411744069914126603519665966319419820409162752172065826104552152580374695410654272883962236288503371020084136266368598372938886486258438291298861169879425711817557609801000751308752072868556651591264019504471496896107878076982525627665173991405713281187575001263439508611947646834555447579884401583708715776691748487089556687419953675023489908927189192378805456247903011779017514087694290304332472669394473239809618249292842122334150956020489784301360799548603274353317777622781732292209283919916044266836562667676766566032233636243993690689667078954554269668893189380662320235886959794926932227943865329993149179675412060222204515326286414787823526804385465700545775116654792918540765788585608157180524373567750971240418052841037029011526459810934676109561715099050778270887323499129345836979366294451696252541609410917295297140997347643340108842531326139809361647139919036671367059683775736863631268496257354935098957174426417937047977220834985980736561629776452590238928226534697908838183034369411971745179309407764709321824521975225258447905659973579265294569911929752690916242846388179309430285991027065031119864255292576466618092546431634902608552152258439473207265473029096774691850113256401360472431676794558776117288975362179403455629987501621772052465296854739795918747146925281166087633496234111395373345667159287896693569496500140816982490724076891541687800226076752219756022278001276024168301361164178151322128564203554085981283128097492876722036484506568659741454956807718039134278023978646983453334680829174866861110629544087464598803454286801276163210784854781866903666493341291204803327315007769565447831289240383672203934020096500848084634472886947978624476084093498236383517677369977955107133601410325509411759435952802336265357022448211744149308508974101477921148107312271687401334444675335358467207110451484851575220287392357915550839661129945831548083040717023356002768674986410676952138916394967464765737391974903175294357939800238706592685304199706310203807782423608890060151578091074909341207640505041425669889104950623789795743718048548085706091296736760999940788791349415242770434197794468747623376073735201652455765671490937248829065051256957033797834860109312232050073265590520315754208572659439643657508568907546037129382743723826922549402807355875839994138892232966001822608096791099360297146109030087152284964975578496421964553281056774362892388147063162861343395032817642858545446897557919374291745500511459538409856486323791567670050063224210783482162992217416238286456307565253681094322657457941373024417810533921951271279334662894293243680057010923688082868106966423831478955478106222650483163655943389757792288970864527706555898887281368445401097353567246854046859329937941806690083289919044962602674793709091922530279795810761211818550840143372854836135288743207588104984186526291455223217269267629454259069859706299388156367400494740072579721639532559153465210491991151248736985218410558949480189463807651420944025946493357340964808780510601253020626671508162715195717369635227050659848908062799501891502189216827313774511525147869426988605151433931915168350712134849244181285058291862460823074814630525270954844827838563293558355611124879722962911099499163551407347871654425624471023072455681139497251990620928546368451164762310121278286757577128419316471051210595835607183814015438263605368358427780203183821180572385197700503533103007652694155818803790113693741169081765575835376154852154766174515645977769166152762730675518791041493813361897110083612800824025679983090414600181335204653151857738562442533998642221581792441325843797619320467483819735903554551671518016148087551828323804524294978365761458046188733195082281233453688135755693357254899588113929396105052507916339359551914450878215637926820906176492547639450667844021543173105957083853093975793566133501729355691326045130555060626888860146137505896946561871535296708572611047255538709503924621819026887022530212477695276636759563455063863206642312347543946915418969006892885301238862739472495884925289493468743077192880056940099213968019518517237238694431468020991409703024048712119276321166512727983032529408830273371092152332806502407515208694358863817959816448981783343448452716716633296814575765658657728679648813790242944191520954569810274174635229964554290360607722686247829954523835174806570610530879252333390430407035274741469725687947245565496260567761366813036245692896379216044836535558621845030113434703069844018307663724017311948068075965748591339569196122423369509141734004708045842006372477893176737637103068799792463398245609445883869014048302433268429879277056895437197462093872427358970126130902454715411097652523537443487121222199259758806466327263372096015334022411191437579366427842631770011597901573250262851206452197097604281232545703342091562681262586775681246212999320985646359265886369514179344805161023736664271896985276960360543714584986865033683505934846864980582322831316098500746299986965675641398152452508388942210624694978542701353699044254241117334896828750992462453838154620998843114738919669557624173045242744686913101589195630796259171800543764887034336469668403831716847177041380261560819286799706509400015370169380556567040278624286445948151712443404294965646524664153844596510666349341239208687567045812421574514793623887638529121167924348833323344401560194107335560315224071568932391354850025786278459301594070577626780558256868544145079806049663390674536249358730965586313419712797875757109133907558564173587241518722979312222438885024141124122542774775075853584290773597804858387827144148302219600840092124454432977908771743214688365887397319337323807164466371220150861312745588698789531398329015701779347509453128873449768557577829038805629665039371007800889870268923512290435758378318773587972105386670345533123442331253014191667099526563055171839696530511588235141216678168337200989655998737312888406024810250586112235988718045694394999450936816797500460499584202141351437529303120238169294419778101915880650353288148335745488490559882767821907993112898445934980109644918844996855217686941452069860365949075156012186371764045742187292886837055910727338478047672446972939451409850053711152571020177609120660922508337067245697692643820146621649113301520730011972403334959269613074867991844304169754852794945867973585294552125164548880427456515006639230378820129008538258012244348001343734025067263570041220488023800802475441049367670536295726999735530040925170188806774707727534787583359792453890422433535179375934242282722846942326719635939533039845839291413230660910879363175042527021492879266376273948788982168287558441663969335368846408855908355172121575521447783071451685439026457230840453110990218852279299970843308607513120594107764551179421505491293784241303197980457939826874293953392853266432830649445198437915565033143936726711879943060058474381121359757599032841296567650695629085032668173340944355674138741905584804266229832341933252950975686509114367425334433606018510082576774515517793014088803894151023337737270778721987198372387871248043769690012410151020532001677586983992172574018020968670452238354823627986968217575156196860661999002310370012744717044507702375197442217899707562602184245354902205669361888355243126316993893135283942756411576490723047131407805293529491657533558354128167474286165052137226271369408547912119137294255190372555001195345443390033635488997266119215178191269063237457185936139168851812290654789099100111710100839905783949896771066478511264519481050798899437920632277925906427145860863763216608878861539154599126642855798247136707597330550007085965379771768198747050545256696609771148888146679780612482678478285251777312970257761441455305534588695315220674555147853571713929401375010503499275453981049772185040076870886413126050241417881455197998694929587002206451236365299029044849195212102801288883491539184491274936411838661120465875590471221328351388830064645606263028910506368892013150458304633122049796104717691847412818870819885145172142401827164071188130438614935019758400685191614968235804470280909054200059206764060280996797073175707437292891484361136034824410908101230340357479936385641502142652788703326707973682893189734429424627659912210690860489804174079956946411520336657271320698999583235626573970219489559452791289782209291818171404905601390756842755681717844336681633612021036273669184419640849389552993691295381972110834770054927804081009427073315471820349578095903236846457314420503340665692478107467777723028590365862783658194353665088451798391259582213163203691566963851625465754984363630212632234971478672433972510935112769403796006474796987516642930418188392283552314453862047279151942451577819530775422907660605549961759337780627083106730379203078065466574826388958270441838154140046157588122058319988046447374063823789032155854779116768959322265651251839068935618190922617527322338015135402848644524422779850509413657095464940571073367327047820767346614519848843874681233796645380828507177657646623755696331933734948958454486746592474515747704327395878866120704626767705895571077804333732670363004757985054480679175945205001283562267072635049046899350299297761993264542342694695951895239722852446074630903883694084426681620002701327323837846593993933381583839545864334292002989801380488067722839310554414800991220676496934830200220462770802361951463838308074706633051857549292975948521238607352467216908005036961298712591733009478813696209579744832378908505443974343056440421906596865457299903859917256126351577601141467223440728610619884952345359294252682292417772278425666001243445022680538567166671962002676335756726559882865918667725370827584352846510082996650825733071010412620121666955766823811095619045784466748899916271050720628615415518607895184173934910582979200589391457159132852894146029598923678477114332716286771165560368373930057690711777386155880458304701302650440113661407463130640625838959230156376996988300911416516114582528291489754349406307066077896419189349342588130394816369860241463036685001979267180099912215723689586103276575282049431506896103527506069012668829184192560217637522586764054317392867378064690695588578042021786058327612842799266157006799439328350555040044533679704043679882780072679074209068911969143981295719734303712377945619453213793560773427368203450892490063944048639311248071144712928331528122400691352192009632881411265513080533210397096393479429806391730525585833247222446033878713108245028281202427139487806545361292944437275046277105706232487490096636519968721212265234226366023810591507590534239069389774296210416928456556846719893622535341460855870738111686614723096747301753710973316727978009929050472677492518712339824775149969309985731645964871918372930433493996779014685422843151399900305843187962284270701710339222448856171063191707550338073316166496167012778243863987430034193440975877975877376442536088383202332230467197170563735119870867256622985166641676430904805766356712854523025353924575984794951274045393887172585001450972536287670418807492030201093363286796011257470228048356536657117278055741779842853409085641881784525701415902676454933980188543303577501951467230495902395609061024095053558742807953589636068999741486623721004671369464857743813306829486064391331083740978223650409573813887749418330923577363227435360418544148131572053147182344572509669700207634133864095844969940449387460029066720894100437745226260629799567298703114615592722018642149314669703759586882673079390195651601423103359590500140813554600759957273563820053789411506996787771041610027729518866074176199159266698106445468436469181186267102221486421376954450488615335604535986507707694928383038916538235528128210176668580232798295319625156658803223284760221279571352462802764627841707987470325434106734440058114952715591644091778310983902154828989499371966992967733787922078673772670147276312122341536773264967825081188533184644944080083418286860127309553464981350797032359337073566888800556176047522431152610515949786503357880612629539967246114663381943223446575238915241756288084723991710911622929485493998892555634358948711590591678284361066231443781833721036427287749706547157141718509655372956733498772373632850149049309418250562538257851131608411617746332853357080424199062780872294437011180484340681013049361030212989342237959276462996374874535110866260276352032176237041611506244729672941596656898682618392068445441584326422724505951018194333451451452088056361034761040783707208204338186082988868653746493135821665734890182239978891895317577727711230595763113874978378079170677349159181927830851637102394460167207100297745995684885768943075216770480983640004378880805483559228418379482206001582468940352773703895377333182698556381751849330244327035812615522092798536569110146168019886067993273584993999538570104983188132759795201985991183718680559213584745438461597239273814308748871864429660153313415501617374832491720572202198474871881470266485243989811231145497070234033211676341364236545816267821109590888752540501894295874250718606622020777837327262597072502249832744681236039490291444985364156196292962503381394548950393139744833585820307944393551609996467496077286011467495509005215555261405230075564852680171094630891953155046116025762882840602804084501366625469588787344232385666039489649393324328583524188124232678749766786821068780206704977359329229412238816554894990295256420753365854600388868164431722589460370938247649590503906464211413969270827720804675405173038179369691624088526367063556247654332416728219033717004828688795962332709560694684372773210378802090730340043796923692804279611954948943689497662438433224739610978545002017821308537541149513403913296276860374789768810151993921096601338810878674212195054386105304769245069765903841108588598083101014596199016060812096276652020999546026978236962304062688591765933557448645037831515040947429499728613542229980524872289349736124271203890528484242796941477793476294185037695163675291056923453159642917220164340960028449465218693085727166827065319387323141483307839151216839935436135527013276491761039144870033801367493293666731248731074067965010119742489457489830255337127337675583790989958863335967963423680188732958853098825041381863638345963262312027633439377794919234466507989899485729657404480535351658314230553047843269037758494565705224792457077524722603974480415895670298600073056484810596887033604456449805400326420393644152093050328974425266867248824938616329607349967714595133416312018694104224575934441517444472143365460825471914349709687983210851530755783745966227754523622505437317679460896758854868497227012576420079581280146903132567872766487083000219896931416302478648275348014134846135744559046371918501979123642523206110269396524593907039008495177647969445649431716811446799680021348378624883335392625931219983832402543783357935615439036660027598384291516172924498178201576742980902436663748915738356610369580709388625683656194689990497349883356190126498677923554202250448412403980526814566029822470120975076357264332976478815669683270503010628851731712903580764884498056032525518468053905772525869220191862899656980898124016585885692034238756322825803736212655985581575255757458017122710751050280122808626777576455034984507785904575437177884132258479307790962979772948743863881207700320100506725034314417836872044503269699909339904151327765756970543829314503788897682674188771769979741678986129641523324275021994035527204264132780842130955877356064244200490175546842160018655782883155741654410815084285976374751321536377669255107420121600238181272655474783510753716174784795636045595282796699470536355342805451601461207694123693900501082579584844588649944177201022367192908851720344691536013830185373985684146226069376151940729575557574672103694953778253190941395753430214558297381782573595547957656355577383799934343548647300091999451031713528470626561343846229081687191796989362497520000689660936546382885284966560236874068192494487545320615065107156138749077370520357685962403867214023087299604246924690452076240669432100754250641662692027057303632900696092246726621090388728406564986124274815294864109293655433266489385397079238287723407992129324122266823179075187954893647522061016883412863591200801986429186346706398299159333626816815210511279431424582607907476503546792187499788473412754778228584839307313555942060529402451153449352137901030762704539733449770092416846818980347748441896805671107256959336612016473825675816437682805736741291697398705701413583166696164676642297908836305943475418034201657183522748251140298992709463431568095992792889827173234164067370579603511871583828146730579283769747838696364479468582100940301256345069514444609101821297266345534772973971278409347268492725546865492638161773278102077974098434607279167134869335232764753479942696491075429045207375314769275203989302888248148225123748668934117946480752615860517072421110536926352860978349136614217159153267898345390612338132758195072297239393329432756772465560170981802200293332679639643640376146082291134772210337691799889541619517034294338221850705608621482714331521439523964252981676132790267829778124073477799335208344104507875975837125618940532605096772446684161757449532501694077604438569067016803489603309582879723411964214516015924981113834920620012595990841544755382082809604672314403883840076801710007205909476420130112840069218520796934857931266157761051746208358196730986597777009513882309108341131187037851631740249401492199863684329435102867761456814309636440741353513844528026005615604287920603934317565263970361653926711953844600086044508832643156726263986469751743666356290101738897006170018530820946433068982655603265448467009367453035428642331920980708529094518237106149670863910740199409964738498751083964443346457610831505382448078792548235202125323024699761420151362123381237167807154088405944089167188690197275495941949844206965983340748014277009590982022945290413280150565027586109977581967343221025898117445686966264747339872430268483357981162302783073785388313912305811793043063647061492829723319084977782371016406699085577252934933910712757579696425736238969860786252365367030092478287022895301802401002203242291223038836482811135960197869096748495502442052600106764263292692804282119121014392772453841823855150626494238573414700076501050458732377188541608783120356792235562108518634053564155463512175208925630230003272592923203951021755592738066994042119930020066924637272374029339897503507899995058257553835502624498273365562345122872935458583662368854485087334458943887973205775021531313898241803318269142273014531066239270862392781465683421342779147707155144987332041942669413939215509409906784288114440289181761467515026963364251880921969737312958061791474312145864665327259397020481641664337526726970904990357180352777092691928610906825147892241298459336505037083839366311085284542412630223829650192321212224565367755189223099326687423386820690130252751615800770989894085337502156461640813747681225187743203470115691579891471585051187768230708732549151371161109797726791784480542771910680095467198532093662014743879645653155283946868319288484026106314467247129443405803169594252370358956393425846079625641553168265554483975519922597804779480644051462901971284576901411038115059712287819766701087196365427619670794899635703481631301599877832363138247077258844873810084719210452254245680570971932357551456153228713982536123019655851982737379373735259355992431518945873067887530861480731717984129762185242141329714270609890841251683638538856051189700427595900244204063450351127739530845359270252036773190584087556010826714253321024086362632375996615612926082176926957575598794572332679293399961652718936232347125958649083647906998208306859225257410439655001244682859417087426764545150356369359640953708622674080904917069645418061709654995630352125244279771343097650617647513544621028725681111928824297546019770274309024409653602355503572769922417906077548966830465842545424224168892303960819076215385377793696623670064317388174478571625401828474289427024513908782957590434598377649001278953286353230080330408603456058665555111656838517451461947538363002797475475504189460101394874584703137481571483916643580264603635617009937539531243808399796289006879707762870307325696978455738078435385885138968156138487823049901887320668871010961386001251579054386284982737923198916332402862167531207768368626864001323655229829561610540151157844666047738281630919515576299074508855598735856051281490099222725597334283182295824717397712676832715910146596565187661794262388892513084104510591201819953262848515264055499198261683875170131055004014787002055092097727450316200487247488399467142895647191773543969607805682396729110437033788615811810212635271304636006338870231512140475776065075961175189632585263037219266686926936508540695570994455996822151181160008803159720413457860971150635672781525799528440077335246634021076507778244395971408502211533558456613454544470937060071436562785318691391702351219188757341459663677377532663219024603530272852971655255521124690724271813979569375450391718737654120218638171380345114563214269945786174172375939766380260062591281630263211578783303975013414366077288250974998812852635646904505149448965522733563564489707713573779247737266833734421237517620478330604987459393944061958574150021831843468345918073699896053584420796649551908875284642077942856081881228886768659220105304955017832456319073457993163624830411344078506202496789051146473650376055467477147875022059224858552224127391214446361506732755359876840214947924770628987313579665422224914280228133276585932167304027439020833355767080286373920550447472727070757677909459821849231469260114140447333719827553468612284293857828056867657218427939001972523171763300894719122141919110479969021226822073282925684830741280863192209161005955486172849712689017531518286327162050457878627275271643332424385287427856344134718953903812030348154019447085034027921089157784495995845233388890335205166201140794195553542919156017690736470849311757276824126710657242432301352871965369819209820632492537028724815658312414881645571240128287526275853376039603363790459278356059530422470085852380155413308219274795037033570001749381604049583101969709825926689626937329245881575936184769871516610191642441535994282753071573444579397065856449746628856641839278666408629197727182292222166504545325873230554963350755752719929745608948144285971185242659317566776890271585882332880812251577028706136652164472802492834432013450075387221944711897722098475235204986754283902710783432044451641348419184070028653429073115931322669926139192078523876201532992253997811621217445986697070132721148142274200865220983979286921235725657203860216862590489265695332541279505405353673665304227690108640901113130580014737723830738443517245865859916198334211735708072222241108935731567294208549511347412108913101631539379425199164277735067275439052667000015647727029920586764337823163725530463350421799954079698096407856906062690299993512581951420986355243009519401555121023402425983609902447940564866386254502690340078237048725302739593642095325592108730412499368721921648019089426068767434308940200746686487557514415350066794985109170796418639799444500593975641257755188264233502037444278211258278746002625482593637853174898990712792307976357030127641828216770076176965331222196250568857299818014578781001174631117572147764970189276986666506755449716211803925950963346635736483347620488325958080574993458659083874871722279081340899426371289615866715327446739169324387167194642242226416814080978927233890766183940544275226316819471664810805801685044095267487872801323475447558008685931483072867888148516443060318808894671209374082517639897691270656093332249044735510662467311361883294160523490224616144049969168811693134839713020505902033051082269779594357089077250821931305630451200955927852643312326153003195626982056484039464735097211598080700194401486895020875920039240068951535708315659521941846236680940359631174032686106513957547221724506648884770252279679376467589816497347100156748581598985953125030335725527710300361172983352643579090061944156752777497230901158369185878572095665141706875712924485561537312735110140138767138724590616708301322832621256611548565512870693450411891089417595360431595994749600838037438946721196937693191540918125322031436810602808215109529034555975837022129149379455295639538056954198623595130340523519034962422681946735195175940467540478521620287304471777281580649482522784685726194951054602129655143171661073345457967637189696915592801827948048284968488814463204175541205339480065465246541303558574294651845684112715529615820104522360662926824970428800955198864128211433812210415824385085349482576467982649645305018978921385574900727844355841958543214521796093932639497073487610297524418786143450127395486847417961472794184968363004995812710037442688754250885119672185090969374655489220060011753322710915501815664299012349813452830022078405327876531377793134261323907269307744853445364941040653882225221958953485751514492008203237268981373113121236922041205718886037995565150308710151411265426376173030180818960074628428096609389825208041691870038405986310532785775103315409391762259589769020867648439683972282981778119702045386629467091929392118523559319061214151288021618832990116600459629495554935878803881287093431496364653647011149981330223719391096186436315078077728535720011020634494049646016313773070196187650498619613982986330029125928232923883658827534222412715522138992733097901692821906111511353786209520596553965668828498006347951552667416398883769830235988419422865506064722683420502632532574588116636621270403971339319952615027357874901623816747324336289303195546300784470573570577485268490143894152298271339407294001536079217015176931606753663088486542979056638998071780149256774194697565742821986935866485138425624961694873669074691210879150089061395894040630625799856164037777025301195180608391847286167244485955681481920713757460998155574694631294439924527142701163625565830281005713596392596984170411180151774785694791497647626510070356978514943445381822609382579320516533927934990278690459348798714833283912364432202544494143507828553268442405047102211939086896504739087218640836532401294334546369983864392963866928400770425899728830142289938953437853951515727594686462548262847229427091099481935805169072334472755144062136626439094050175981951647774920660906238863435270735290858274289063284881891504238454339285553289288225375110628764775785678832433579899042534619103927951903840239530338313010562577536004166205404056950297070386782299984388749727842351773881538201685859540560143493554424444004317929312463681964055056678044770992501569728794183737070390095922283489346484836066467949681441974164725209647192347685164390144197349328236524340599930927291638892665213762621107590245647214417897941891410275783865561640255164258950515137558684891663537674003945490245380282330121253769049394677483423255588059533575800066838676002046198217635961441208053344157017285730105449858774589520601085976834991688644286048290677281475401892268591724288885065516114747999983966113590477233390319703453528263165594657916075462665397013480562380220075821922210416497431103200998317907347229801408614776778187872990724133085060145299464286606160397011638074703377636231905115703434594506104258855026335247652371386825306561781308803208394537876161223753995629075572907971451735817404423388799697843876760623158153887288391258873210252716914473861065321597935939396400155598321418479843787013974351900761808546516096228977041652970080423560590739224354455211665425579131916332584406748378487195075713548286498336599191441275930569857083447354075110954930479511239436440387609294448368764903529013832107193070148534007191543654742924199083107865231439422134901902694934348929828867143551975756338629617415351230311586051862252059401173859644298845802608769378657297710684396336906405126462022030088904745079994501521125806973579309743450289806187744711891908478681027808442808692318219924896485460170362103500608226800308679306255907981593350436771178555999275308892349639250167707872184795171833826733228369885725560162582396250622173583539630626314196177250921837151323676333298490058037775597524128777365133865576035316367935266806550854516976077643179780513873915167723767972704143169297873540234068724542448249815282597471572936332894961904141909609872383804394820304400562871746982912493535024239091050465116445281493671187409465495113221352668524104693903562058448532829170189369216658371452048771831412594420966176785628509070922994110471000360785011842650083324823593158378981565655627820552599707819446026081638600078394392124552624137464964967504745296204764038142983384187961604042614141747292343830982496723888108600953865764533698477252433651368322051325687902803992543268113057412810048234775982954385974331741557797273035368757555034079649373313313316526506841051398680908606343202847954242908930177066604494376430256146433663249209659915794209702301844975571461811880803511734608473858813708612070237502383412837163969705182862787896020363457639636587304979470972498705646919012506446746498958295854745549114706834748763351712752217477057082434941285230629739173547349864625039466738388081588951083530676292485337621119495418120320676452115566359191704271949281242475581548812824468571568966782908147792113366503970778956968749055695456722138185401712465603750979124355333930165873994011961730502716284869933834453880083523995032229752090377329673642802992874067865387023622442370372006902404206651966402618962054191727315565548704966258093332400830025406862003849331851676434187287380390139003360547091466404925724302597855239933310572049062638240604836170728662016701007211989068395905904200879570279643088366556619891338310134350155272803010936023789109706802913584181996776785884469283858701833356390087663952018305737111838271882190805843319985902428230609672325037264731761590040315813610924105551958448686031661541089165189383225203923309707462959047849681005631844399775310920486481659148734522702229930646047480421414316104946059319456781809734672079127731812680285822138151399093233035065043702585348670959318928112155605075488044049724423213255116498177488576509731122253924803572839438043219367073020403736217385748342504795602119109466215985057431197526939480050464854649683634853022724993347605071380364981578742689657278779184640371226096896388134496807292945792140275611651487234502095570887406617394858252467238336739254550772208442726131511458036611425125800075429709800522479673454930487126949932923500014375639579862250919675709247060480765474546353526268263682053494278612141957011717171019882594380040079998380828217670168736666693516558660738762204541533773628677242072555580665053503937889826763667992598608556535089741077306809985912542271978023578713492447553982311085052300146596663491036922877191462106109396329848070010335324678983378139894035012754653042730937688173487829494774308612634553855295748230298148860799865144452871006578277837077949561597857553910895134211089403932652465929264604662975333573669395852095024212323373099083940690556823002059723214256041576631123319681335912493468327758627271279822619267648739147652414292807631355837532257199543839396518128746395034411909468483811521604006803236640814275217493670115869507720887305571503420243437269031408208395652042267929122596122934797837250357585795984987024873653255755917987739201941599853334262783973735093996166887717366838362980296194078180623060634311398351951565495389191500035874559639395920281572463886919521215367640560624531165958320365827404368420715169389431117468325297955111607135549369174743270910292773761447282622790788882060828500754706940296619697407609414886885846251289355456153873435742248079822768820539452060372836486414063212049550306564765219768755701166390102847491830249319863795191136431247130928480244906215942707303616841699911342821461341092349647958869935147425147521249492689696536044447170990858348828836316771177689826000178543631376849898931253200334929620884908020155807227485740517368051121841787277788784480422607778737794532289441400389017405999330491839195169281255034082765233550609361269083114933599131699051477191775132113117742589171728984938218352484902359231291753041762108102372907460166375548844365843579141209079732262616977324108628535352610599998880303234377797123754804864589088058278536942712424561886450253903911364484868883286970176621156676034165175689105154344317832902214070491100848960392966306459404613464250241634601249241072980322846386621461193108087558275831314381388589979800151929783707412327207293772049210065392124788310800952487169685030670637082236011232101139336967292232530985441438118793845423156575407457557773122414640136054625688407161596073895859557129959170994180961907437208082254703311209769115133455787668850990788050012632519107395968323680873489341449050714304005989823264515200621833193810202180639525368720119733547114086230994624196851727494769240618841274538978970837570267987254973151339588944058586142889844738259582927006174496142612192173652634585015035457707419383411103950738129017415334205744863321412761127754054125127076463440695531030167740902405017862703050385541531824721033683789287837334204402833016039145462096298536659263053240481831977690396364795406115137312007534255167454262729738001595158286465604038603633302909632305114419208726114475143615594731215320944587482137723669904918469285981672425898481066345466631014576541375839139513209546735957864373708361835511247588569374772235511081000662091073322057952849633282255942222237155085658512051082681039207068298535977863090345524363761115186811933145752622268385953595974744970122176439530089746686429138045099386655110150601567916434436671790409090346803543732840663647055864750475656881353357733768805376561829771340849091297329231749002682657680663034902572093438335772482026968113484562694695472138833278951654993955408717992030951875608900413838009347552448602449363808315031891696130775957442323649406542411245561102777928645505870536187037228269460520213510184627427053387967652826307428754143561441707244832444577665348426249568691943185261473963868195386482518025193714880752737099967058844874833282917463336851494165343920030896732837270864431296355729002249647663047678892553801897601465631547469621255421326181986561549762445915253361829849832090072705734345229598112890318844435321574642137931822049366821187617071800420140862644671687289369317053837390994930315209870922199188965217695161988605159465210425237934399574633701785818406552458781268029554868520214987491723568740334206929256679335800619106898119248954369769709229944926134204319900555920976634051913113133554529451433645074763839027029477586263598890672994202896071769376168416003821165288219552289513500403607228590968685824964185613168247744747145482271846110043833130610967877996773500459909611818761077672701654865721266722109971040135249828021329810122928071019581977925109135923777920664932475098461677336133648748762312242418153905261164774847634137684919828407612856242036984420395737270709571754601186492069597742817382426154251661721600242478317228135112189526125702669195566709945387251404645707890437046039206834560555787499085638864844652083040707797462912963005280025533608117554275630999937544997424012752388004433158363345089202709373769075841959381675693211475474119294059811843843892717731495821945003981979916811246836527039010344400992233285899790921349990099679428867663479989877092172061144970883308051184768133809849181678248102245523847685512874868919673442111424708794155435136182834943677948973404250349376681242830122210914994608093984509068274246327235482135995656906025124852778400616707595432369493280577660336260350397457328504188752295950504750247162957342596810191679435074264024130174902910912770576628663659131779513956153070626743221571623173154619407589383882582869361821660663660245745863888818467518177030493251955727309716306721570480058835700495516023768395815066435013961525994226410588151715250830707795619202655840049670721951174906429655514851652131111788875302748186298080311455775866630095567390290616598400535972088468810618812396366122308534208130742977616766318704431547346688923279673307126547344101041936319538758858634538039161710852995591954511935739361345618527726582393509429897118068981798202573903414999806066981799103699732819967029201043579583583647774115184330172775779981843844622764583372281980256866609296567548779330358972407741840387181462794574941473061815915895863405340175927045843703254103430960956254954373732062137886144961665355307986746576875286509366822014229530590246975872830127288016041244352362111631976644057451932118740999501211930089327327251067486219469232208441347680999536208403348332622902999627464757792794179937307916494050109975226866523780197184041325555043007302813351888388356032293253396407856654398234978824974637740148709059613451421442693959243969428449381387975771867500557991891733457487113219924736853340837589590275004350137395904227261654649921615952818169137187112638249248560918527406621056958449081749774951812849445361596163191949288935130839871716615650673408346400482988616754774980204752505878600244601218207455368167254353244561712806422760616144771811105512043089546379653223437803397458747457373956003028087885181689859575960630081865467069380177648826789333974335541531768521180677217312672126968535996518198467847234034224483700095421672243416498303309696810416750914211241765647171089466830009948829013162763619068604268897730253732265083293690063706665074785183443365690412325734406664525394296915227361144444654512372593304146516514692131463119710864190648260011249224674415585729194437500729427890300547654313367251838492271779098926650360967345225917371355608754117270325867522262729160191779073311501369353172752542592345237393458195214092831147868676453537113454869991974080062217101850649148528492553789601380184199304971892211470418732023568632515354553064310086616066455391446076742425091918877141715595234352164818288838732846860922894980224861709658088886475050765904992037702331625984202705429309315485448603225284886678128811972454881584439874548028005580444538217829688291596506304312586063922190360120325372882509597126332859169509042516883192196675770385975056018326680099479439583788214606319657475912517052131876339349510043141092449314239317989647783858508056729505295572132468838274335245096469612647429693271945472564236610920701124917879405045760294906666705803904196061200248705817828867987760121910898664198809672032355048835898069464861735344585303480015744147680261184450046724506914246450216809593133412879718297868340996244139429288372274987784684661538426645925026096340826171668657261942752672859736310997351666962045134938532199928695059902106673459294945208055770406103565946783058683095064334025576234386928786698440273164438345407897173805774518333907572661696304493795047674104863847773942082307172919255180467769470270214064619174489508983523851801406188580492657444548394179842523920576070115541496222268242584697531848636389974388930861560207138485390922684141602819628671282175172289168711124056054799179739640162523251232890864151056218443295775572657221342369529520878364729897152110191859214203442269668509099830902226977624888322443134812411511610465166638276650446510848010406859050383288427874730808883091722320484150037970326775483872843732277953185085199843943767540688391799176860945246620477337077025294056638440127730880365224640338105243610247505691132211322381815328919727322704209336996501245853286008562849711786193943412076002323855511809216986541327045590274385771221774420686141169649836748667199625588539181367015814311747663660338811746953539948731686932597025337660374221792408102387574446720231357623715493659037874462644009616192534402249040123994736227281170556728437591311310604322306871419193744100061217567550465574704801646344348297559729214313108239317448766503882264556531603816093201654312139425561939175728320900240580977222994194636713214613310503331005411844195330158798978496708601932964973178098953687435689278154073015294577797869531302506879230376818577364296152889718744866234427850551394703738658888035126622901636592673144330230432587589489209415039367870307999247064743291461885677454434171175217850371342123726312715545638444459672750778689990168099951528451067137488636073556791144180419943003954404467703405197701772140307865192116579430548413869942517113619415492527455499287463620924482688460338675152280401713490090566979851878783606525146644194782549618333962943009705069164968967980341265081982472665377195108392110085506951204839465385272217134078719815114060733274245880020687257366311109363760766402047368092683163662893076897660863483150329608209053236752630042491030104837132679314030848392104488007645567692361740692242764112365786562100365432713160848850204187406047074469142700446297233989229463886474106979551194699394636237225655174428093501390862891903858576519485378158239829960503111746394363521682950238069635541659282848101980652713395219045966541836261238663427935326292562282902418427334742360517548457578215795035733663200597889140094605194228059008444448947317416504354825723730765329949414233057742697655764417938165563889935375305688412668798563199318993871805869605107435766818931558039778032291643451750345496200140924084997861807611682504837044574185293041923292474599265895835815482777174009185428147985189582912624721100446217708301247327214373943124685260472348445843536362953768099609137328899241850239535040618631415366549133880659119634975286668857767501089594413034599687604022613413287142470723289198113815475235628154185984296741297102746608755705091915701141665901426868885365830088406782378667219492950256723983482554644548968227130489507443445615136884976313672179880862228135826000931077075555922636301669131595844809627920562543947276270657546354270604949957160280482269274810267432215300176688885770608360318593080921861582788117883603990053505716835567383419051741250705110120013138381034343275038313478592390889280449627538304257514139281418514719057432162190191376036763162225589696143606989910130196124852925026000261489337000972546184528287543251439595641226909181593180688191675632501010210026105557270055289427255600725282006319835792562376896155798295732106154370289700698692549103448436235147373449789018132977766455661034736299926832730503556317177522342458556744213751987110408578273871110851787474178581043820717629859231140113583683103308450541258672530609157902995499915090664050024883315500155341888079525898729276764469156367060208279235898640468237206267134536106668091179205801107916810361292919229124509245816791037598092199525424095729155806937540346111335028481220204356569073586187902693789010763150871264127799517261214238125287791252274949843682730846571449244893877579556844269599184752787745717452766145151154215931455453092500730888708826098541757699236056666968965098912456420144036720477153359593160055965130267237156649594062991594138775457925346370731716713806315453880888867019127960735845318531322915042343386498906074717321032740667145606400043328467140361336767569169451562260737977772861120814191681677857478212590477746499173416059759135257310276346241300099434380842704052959915374396286730559551749569846372663576634325684373360679976750818891915860505563577013025973342241181225132680031860235334876921770211117129948311279536819245108284635084957648214982213543123009457035154362268847151613128877166947048637552429696200360329226298422190089526092469617275631889457657360362659880331854391098156487999397330769097891824048108288150198532538188894060547484705274033654266054713118028976523725363860605370531615872468232721759250929243154821433793078732435355475383293308911383604794080818380314319427776663812975312943020168602320553707230541520766547345835921331550091467332468384376951399276866928761138169556706193328052384708392269190336253437265676368173818217655732301893030310172145738330901977915699075110984389516131156478979057044535736109668072513262673298225427878031972057103255737244001749059352038488687800903803316962882822301180370696429946233338174315363042614534067735716866470826325128933576095751142945262206591858404859633362191644111869936658549210477962468061806240851096548318370820940696585219147991648439396098548812058579902712457539781027746445089233049954250062386249665801739131090368325616599626855478113320148958936805741915610194357948654450562748400438773060718456756102755528603621644786140844212666828152227265311078100657470991137240501254783629787098435193320627070830534555817964167099638288817846733565261728614780334211115318080276510707014857768368245439370019474307770340419805176094415877399952111035396157517079038912859391576931250822933677513386539228191037059743539033598943048033763170062822454163285268843897554768758136973031508993923146607201255557915974842936384186974182204524427722977448958881962866445910208609981067476075273018568533810457258273457032271477380702308426256048422563959550638055235215358334532355143507135453128971422086350701704374899060284530864606292173389407803124209405383436016283728725109649560531200669896308869053592930893828017483763185607879031711241738360028206228507966492541979368672839324814770677028108216612306343714245621860271362178090900678758730109490698031027751616716135868511832336555324370212572250748092135244021346635817663095179759782268836603069393016882352929525485865659626712482855900821323123882897776723941753847774058939276672397952386718325498064101744243574062178908316031944336147180228047157214740618226833581052848798544063297729123020019461864748772281145568960549112697293717393185255109963965968993166890472936168918645971216604568208571580650077193205540759820317322918013103588936261378139035653257352725310645394140790570470610556110797176995749551180238964395784915574000708439466639022004542833180125416219039270868745744858391693213027005437556104485091232191367819780601623654795553369605695265215449365387252780912850735160283537517108992145041219618090549134175580036574844683877899641328776275470288662826654100171477539015144021304910187439339295073111298153933142555342217379940940257124483174229733113441595803357179501283886928059042229598511492194536451502105983154726144326040643319665132057007137209953852401981593305801235796563807087029237213593876393777516353425841846282122149099048598140470014283825600834400428684569578788956794569779013270966434197537082345730626302289121451568850927295452523546842468699360808082097841218537568353243804528948007435918623875695619067776276464868255195704925156335838864540127035824606437813677830687425247583654636230183256231310791788230253028671375212322359631553432725508902146023982184448411658473093209210793981931660286351922978866337511839993991972545764913762445372331681991909684151757064937105654210347372648660144954606137303524985562263041748811279005349219250834604904937505671775839823077358170379015407824075476434644131442906341083693490754658048636707708588693763413646209279136940448106359845490441298823005375970478857470291694387703226969016081002692875275025604911480463309339193588421601042610363533802375255962538630444142355898349593464007132301368889093767278203104273113508106068711884218124404941922069547154374418378403815786521608779302344166446623782051664031009371652425085193527942751468857178621027373024146361303505474567658737193291070944720546376067177744350053418291673648470691525087938954905431436566812254654401493919241110067244994208036868168899304751818686619217558539916776651068958554614348902786924795100561335403206434072198587573762673687916036103804871627043745951687982523507497488796141434007903336954302717041974636256137697791106093180927523654695477639900233403490146621274641044654237063648199175324046575265195399738336145226616069175047866465650470647037579930902720496855521329287554476826358875041993510218961902719784688714013864228863346112542663327586805441228359261751805554446539983523387336804095105089176213618987680326286007748538800374906100233613636373962975759222313734797344029196332680779981977425307256133102998939187209019343109353788826829027965927899092283100267286957742504701668516851196561646563851399451153590029788545317275192118115420858862054542375316533000215484344335699454892254400231529329600230568735093848960931711075835717353730422290601756226393105878739470794474614763174827802288069965220925263517812210489662256034383765592825406438273723754761892866569507442005774945297463413613419615806665918481052578094627237854096169975108023298006977155854288877220285726940213148954149299270112303828526820107234387975682472992719229344727776997838220502738888770967929337154699143260354556711330098264318568305745249204114561149431459013599405429366235254139099200570405636562919805420871165431429544737254514428403881333448158231379278615910456090594445596410965361048051172508161510871074292954194202471529636274597717619602575458208037146789980595027606573853874759170265507922264288012245293251253316643085695666647386340634262571004314629008183947007362035463930771121811267485146663087051233092102001438690279716262319522107562165471397395068946037601597222467599595024681936934172295215643999129369196011165861314143244179642395850516604018863959701152697539562047745961120344965036424416184498935969034098119628837795183142976158787675422764424115730728193240119327482459170718621711103572828342609739068224284121345184646215951425967099281604440249859755650753289071583608664457148152404351615908400631549131895865689451232846674372491419860383590378106347496571221563216576555022695043750244445603464569672782337281404827747959007324667935181814548841367928513271886207195743686883162499182410707606834823939065311814018377012194661914744885223058828298370921670893292124427240267331640464463838714120299191275990156960882371199816365851521456985164194853034982829049189128529097804076470866059240158062961054995917833020570870612770197311702638381075084143213249923405947855084839580796629177139327036118605770938260295220448476752990384269675702918551976923563001038022163873076229416982713481807293366008265371439956013041824296978133534444242064517021356670150453017647002000923735344956143132063867964768293659018835019686755929445341394833172378843344267320588015860674379734600484871978255828930199725047212785444392080565287747117608469648481702461590240684173679550782936011924726901872891834602122311025003636909842063120356049000535489455631246532604360022827338938605593560141159087785735993468068676372952289026234043598710237027539032751982813389700300756144102470146275584496353166410274270531085412479550627122933598348672240260316024911717925382092376435397665723259906979000259018348991631057603901393998715126396382332989704575971429548797782634660984804075001475557635715214733558930696120685019781078185713772121125051716042339747114400367061238514522393181883584926477670024522140017870788249053773931178482313608111938671541009778598888228229473126195988212918749448763908881345093748655688402235087502322029476610593483628784531152391225048702745511879401162708667332647334128951776598246577341012229434431961968356034916553056008611275331524727929661554137863819993532953204905306324768624476176969908044175977840380383048126685333218042713031810357506752167902326791638249142793688998377191519150392293621991857102428413708572338403758225959141281338784522755428546925607917704030849147255652738687647791899113348514598208158453618678593063443683181191785763599916190143473528719126473812671081166751803097650900913332241600909386908768758569274120930888244523104123144558016330284749425891133360602399656521987786001178889608230993631828108428357547302571175205440048346584402812849445643692604431778684771463839263175696474000234961693772466217226221911646583907490673743212948826682510334386588759934192666177837248127373244046884973508109992241160070042487125653351475353191929747599477886189662075594144845867603477635739688607311184047639546123096200373416248952430420141723330289033745591830631981068405292064361780515735318594211134126046355167247576442290846674470955980167315531499661160330515503552857003585509828288729822196751772745376630585377556704341916253619049674246911000932632840036626979289310979818855927693189766362575396297429168764571025012689857731175138149019736332248267129595263982441997636681463051873935353286081359273642822293138401120942023793745347660774407814242590719817103020355697222035872031967919818699756390316327124429530365272965903536529932347144642038542547578032991724557377365267132962963538617251553229101396955507423247195044505135251579619170420948854162403641140732713183384284238320483711950693803847488421088920906008074104594445584509804580214425680250014892405115769569052670296846813903728450575319380513902624821781155431413687735209853835990658089832102510269772110483770835036187537866946882199942621701218265572583809867863689053098841605684984046146934983702128876032548517513406462459125043093465611329485075219400931207532574220102905835793166109712053535416740153102944103184784453939065041904644480163773602420651148171729041200449777115758180360998730935186185593597339166428933527151419051106884619192749696974335425999412959642191220056838686332287258674217417688303537920136865755216987577525850012126025302080037786131344206965342754274754461227125810584292170584643936575682783139860270064792507530663839821067598099063800781590460290133751895067857515433093934626605813204665183725668000020286265499586674846355524580364103820841176750333309971014155549729485549860453217784667586621769472942735100795312976754011271723698363775534832855113169211936431642516699110795108825739509239120383685296340736623378321971959012260746084943049024489082054645322109730258557324967088999086871165321246573136038345517580813205035101819265730976749043720768174342386613685224203289864803659057316231141068446025862721160648366784911713640355738979745919773461254840249772403262121522969199150146992450746680392327242166365947105793345957720649120541196430147466246652269442356793689024694474244347649302100112974875234657983537630709241010023068851476763946979833259010689663873703958386676937146756880619458513080053323301194661351121885566966427212918814857678639957497507539254776614899766332785792884879693396214940304412997154382477986044276286074680031488733313024189890608703264557264015302184306000942679555596818775608320929868804891970964649263065647405094246211201237820317611539130340053748896721186325112174328989177181282170252734651722465420858552719588967125679001940669686354108711326149415153495374134802108138229711232056076080009726241114819371787249672040406952919581865195674803463443976794715453359434705270881499477243287095864518700512138733303822200355981562543594836961416813384951027139856672484203720675641688941986806879713565846148095979473427512144839847190784604857151179916059109767256141346743957040718820344165151758626437639980609674948872894549126962890565829435654743433829404765773540533686994849136686622722118998793411697385048193219611219785496494425349297120508656135074976277652512722480847354504496166710860677872614589184596628746881383435699082538656228164678624111165496249836399726740586437629607155753163406658410180735869964051849584390632039569682819003674951066963294272361082533723680404462454059271505455046611996863819217934707020226820672345989039767687613560015439629833482899622189838091046490781423387684778555852400219183282129838732421896827844181328822547545576593320978492311793833962339021958330039199153096086484243710314826403392627954307975821822256884081614222012204845869616142793958671901632692669473250642809642915741678636177608771349500403498136138173325334698020297060345525733030614350067388050432068977829400824794361354811558267584334840106308856468995612070804685038158439424344354184740371426138180838171169275370871030362359557766115749244534642422777609424670410807517213552921814378679624321550577375762033512755757239217108315456466609935668659933306343281990807302713302749286366473155992286831163739116387305704351228860111632371679280429222488015413577813903590401995078929123817931164107862325719938106270914938417192447218083306293322797132315924294271599512134771457256022205296282569068868430953949855449734162117170331446680497580430471339520527237909140846701425372716773623980646522663266522723793239438195172130798946610263255555637955087788650594642001328629983717625826542464968499245373798927306591689477332503992679236864322510046651682284547879904073761019319918277751353907543275784408860845145791751599007663620866557971180154764870330215130415270375065325202652637655735301720724222039894283420512983446064253732793657733499635591837485874536466665061822256249656922531497912793343250034618473268075013510156438782929199264449911500057861091044661348616656416730610306220764457911121675297305639507459347214074356481123821427619397173677611977177030847067808640813384185590495302324805812513810005508843167621956275672801657961563243708724194663381028000824108606456883871695016143004863831451082431047390911508422771075322383342595965846987522021997098595385021590770175889613775022521396992460540919227064181966607613983183712778439307562891054771583372309474122481398385543060554569260745817043567357397097951824297799888688277678645369278725662857117547432558105063103752060558739981870909178615365368990534665206746496974793557617235336255230542709702405664470763077573055672709760946296771218109057649065258306740866146303575088779858144864125565452866080178322191208611184865563841344101355296698693338743980199936666033298486249296283267468914747510918537185473295113772256543307443285860547262622016262337521662912941099369292209528171917018814546616255612715692642450738581106135121580932507391466753775409235669199790408004166903709168658924137090749611148609765990568440126284496514862385187085695509568397409173936578837398880206185234684527862046389664905160614964319174576157725848844719179412750971679778715723837999125004367726269611222798128137277047000075494737292142763661881701203678941921219487790925057349437491794896527255450345545922805993793481300072607064330179843102144233631341667183386932983342628824409818216331842093300646638599287816432611691440336850207865070967270866626179974860754294779122194214237459573091292103061917117349786513879760484219280069100070400942699007245582378285666701316891684980683089173356475979086178429349282538629953792069281880212437657750429523249354230268731534913517567067293671976060433468253051620648226089910272385374927731086042901281374456534872076680514289052351898645234061442345549321167380685350682819337462144793000979172973548499726839750218510024428948033805720927003424971361392020361663526632262914173065897422183478695110087334218039829737977925194107409348381532040280864311177464931988597563361681583349026799851228086434706472591710328958293964053089391128866278318715349378507990200478254864633636275982074612021069146593632284584951006735743694090625443004829101433644503996294107095832455230780340406268975312020037118133717805158169452058774889234394124343837125919417681603118854357150238119879820715486686023637472442891962731687449087129781226552742348580553602257375598637706412138784261700110175203098884984083716869971483356692698489977288139471210438223957866447162925166476279817128682919613110170421210945120245501448887378345891044652351965923134136669223976095947744235599097371148343854151041506664346894331431821114527750960416901180293019895993453817197994532818509118109537670201373363825551673049721875077596869993624147037948569095097010052373937713306074845944254793434122068618905663820097512745168045543468264449797171733704825365604497292891356101906819286064362002095741700188977044361238915415570716422945484407482893523765814853036858449316976511398572048836003883423111462133624077872379350063681313669305907529195985883287210447223843842662835544097186349126681404164948485993011957574506783875392837610518624647366288056799079019188954983617215926507459004598916257530111107419460222631622269629083587431796036842994403858399885026642747576550458929758475356489785966811729517832625160718871457570193537158321137696745537349180115374024208079463419839241451765323757577293254642312509641548623889175920896343997017297463051971273426989579907190009516440202520497312498123209227974550492048322994031818390443194732208717128026502712722033352843976527756341798966506983763329017019414933911812755114919266118187672083377257664995247377740040752543150763910701621704909040463584038573727191964368835979591654935670725062627372226456552226487231627424865084217053932991427487087229504276042412611343569742931143407839652781148592548628223402156746279632636703909999342098342117856922935580228220920916267886145684131940462526897710004175822611594962078168986525099789394279088921307634187890068965973881290189437528118524933399277246250584651788671895059113358706088045742826797912440528710406822169262553281636917105504053410177134732927482965211148945704141320073605940383535417736252698940859436962424272970648848471316938078215228887678545226063165369443869667438558448852821404523490822432778156121200531361619767991065942270063543802748852903838723713786424217692201565624588619952971492215979105910000363744553525449643061757345230221441072076441705346554797267007361888853184611089036880980172475228017553881269429530545282856065471349878562612003654905396937396830745323127750262481681412224466280233006064058907056724596176514362716693547826637030713760992949743133897354285782160431061382163158296545864670866220435478127342090348985923339735266222762497347782825178218704301460979580885266223683142653799041222773843658944539054036250503230414154917555586687834731505502699751492892781371644657712706364256969350155078124953222510311060202287417648214383191044815985936385670517396681399191995028940776917295183673768439090038453440599922232583556088454555697298393437309118103299864999482098044343436863178752828445412950782029201878085926937348711161152283163280664073890300073874561801710179809289115215695454742636603168308616217447136961919780228350799591155110866685662322049076377944874968234029441569685648314713483377295983084918808243362152559517913754027493510900014590130772099394859072200709382401517392606948220093629335285712346740012763734625066273066143773819063438303208858354053207034822629202926295466200056878211811190055271272222588336142130297752057011619039007815285363300196464072808505398936492967600912683852439912368223691967177018822900442498777750905893540066203923228479271694334585974718464099861428586664905574937445663352357714568479664986085479267750907901128111771874147329688309923112076602300757869431176282278928069013274832258299271545505829321428990456690809116762656506045904712647019954660064077731323155861876804146835137572958506383497649828752703510311055043996216871965085907071792441560627320434297862172810086782274386326655302997548504944023524741522575580845011866844608351552274993756018366165241306474230584555679045894628167262547334173812498993252627229794237362801987319806929522488769276009427893178514195574958141013621096125485947613986270171637847006612014193084025195401510130859246662029538205853777354596230108079878062685071235488391714718395408710237402235225029886078541404863208523207681302290040906988306164878381225477370434410726436144315066480039255279043054953788164333796168591450152926503012099498144300534003696226941945739544225451330716004810719452563226319065396756795808074410222562474588156037523927207443400119743784267135488474367405790653613692302158011248217705626924944875694940837606730957363559391644786343372751334194870489447987878478205631265103650137062716271505817157902664302276419864389805313023330707863796933627688616345039296376104095705915020480583730813575163976725293308856144219203709793555523671445872517894444480802934728523739478220003001564838330087812923205277044404474423159504786737407517937153286989590006570453564076021107397745905693709676354592129366581758995567679038375805198377231666365618736584308057632039244458126181959440570340950403925769621917370659327442559555631374228905389176044870339332151337817457362258146394564776610857980104233456389898604465193579506787438304386706066368745311408555691984365854371753157959273192231046753719628734757008786967056722482229753193721468341694313760754184955850723438193494207871505682380906216092272493571039918260455626402628899288764490250614318174799143786231039291757686828255827568910945712264312315229602667138249849894806298711723604898319400927116433051416163360902610970274338669822431134295592167848705754128720173927998883265662019943130654520996367894327138277340124830604506909593541332448144938375738139452474728071527957471609435797638970871773417245630502361568555137364908864314520448605743117415224131081499773510130089448662869447787434594489461508010698563026214359627396582602067136398246612887309203612374956563443951741025753707491883256793314929901660706734786950051250743986903844274519086753218642152823672276087122823315485526287088315141364356042343096478842603220575123322908642821370463489101622661665697699106391809795304934166182125933486986758316405069327589371646231370853655067853979993816175005961328116988480442037135140351881136401070725057158964630255541419276594478807318512887877151514590060311141972718313359462359295908799756278540279134796872366830955514413144866675258022294364057229073940578720843505593254914810899824795579950391110104613959384615601965569548375090421409583216145931270732918639331495189679897009653833078226565830735173634550131172644755789597843162647389847648652726108120795888558601581932850990666440864713743262596924013154729949138507178923099676516948112321728011019171099744066997713534697540647443161261875799929875832738136628884374894281715281312379739044011048346855565651502180750859286667496831799619584704225806629255301945659989820289657898473593784989960635467059540526468700265873184703764780789974215391714771918325975789516245804248979384222036892947209488753194957251003940157291381676653088847053383486795609682144550531692567758784782430224838413934094914484206727811117438741744308032410749636806635361056693338193838687911252969029847419125298406797586698706397744124054358585998510367605161151244473195963537882280024361684049052849415869224039074580995584279142241116592409955899346203749874585923650928034314198861864812687892278496167887502250682234823157270862572734652607633720199938365594887970111091415808871654625435600534615945519427861698274515624839517764862475968570189355904590593072140461592841931008332677701701425191660149869341556206368444123267670719892907412563642707321249198677623474675591980614346839782511617546878674553133746443183018430747940263186227312123255155149932030303659054977586853875714590117293689464603758999468089783596701365158213113814827262306748114118825559365684165514482483556219422978509383630589891994134044799104104610097368749766023182280038945475435623992438844302925223473526377799797419831621380735769728101761324979806203473663741963871368542516702369510786628942551305268404801224494370777140377219913030149508323781991121452274167611745023595183900721986844701715883019875542503215257547726909844803128320394246273210141223932075789819274483631935384606792321766511668409408775244116807818213613942033301911911176247271857707438952211823264492849091966420398761146611906232422055961564067395919396779140660857686635142595942560439317404492498969482704734523376135585017708515528789420942559199722798769023825845929608902359650796784830443580522012014058759308562099569291437924113067008004122169599239454098494422277754981813470993351476703342475427660000950650679081625579366897163167203348546731541481821862402688476141083499519185301247604373303574619882737071459533612708373329932517708364902819061360386049748552913747436437124420536260325426469310444318048340388702815638742328513203336482103238318285316654522752787634439538404786682403444069516179654290189397607770259645897754423730263575170439373785862698174121214032905389428947678641443502461069367131277805438399023653717328158664127632939058578281549222002969396475288661694624650330633076553415704309243013982487125722774369372479123232729228409108706759813499459297871827189592660138516046272228919380718295927997515111320498878519008582618385646099339246088374370644761186284347001597159051702747108863475294129859937226457270558653354327313713624754950008597370203836281436207047282486478593013297201312494597944007239924830440929180458731124852881307276645007907608686753848328267429260919267952799428093862785291920948119401570777058125515249717286003751994275289934234350839791143981589640375618313473264334024479060903406088912451058475696553252875574899041511469189275687400423906583427889925679912929578970428197276865399972801537445936178634127657113409798301760591085883371312881285713124590762007399970874319431573043113680855844900214214824806866683714880654981145314643381949498827948140558782594233606673032452530551961988003685941675302978168395014668722792411026985327794134822536558115581685692333750238705080839829631820751805056616576020003354092444404742681242781609284733296818503633454569098284389219522808967602942482866514251533924140553736867904292367143468205545719057712442127471267614841873453223572376971882334568370040934411540216996717258653875847554307846002865788976755177485760906925893432682862357970509804749800719720280636555926578097331580160823149967006170997874121491144703159742263017736634798445217287724717274081166706558435837156685567716283224092010621307591890268136851860888300314105642817882250025888614567059368435730300378215652919935715979427026132144215065972484220203059456872101377958901722238676362759400629362083093901446573289938180385549649595529184974392452674536891818889977106958639144811468295341088345484023184938744313405173774168624630828645211024289000931884107490803476336115479237262770286919460263043512869515094335770957474121406861367897555137313313111141850972783244615320869452078758993522197731575849847758019416136147272810105983207685639367903748919299125482909402704856935954869477471128964583289933304180163918294234429847427290234322109566962325066028195532172043917453686725063602550456688091937163461292519690740569731474757022077980327744801706184552958125695233632097474295115799026874762291085251661306616936440038841011774088256489264027292421105745273394153545097599105203823100609724886618032508239125713984662134548663830465776199338676077043464330671523085531412638255628412159190682649253784632192420433615428982430309406365573004954594209528139354887135761409215242574063676004416946775610948410821971755882033006355410818017855413810614564743211986147049508616283652721663548076335159092733017779218921505438276454922447632316203369279236126232370013570923408162570466677045084307747588245947578919912959974491545799841137731158403983227862633191541968120344825920819955202094130375529311046224444974908949801092747306399070132076005769176109263392799298728024150609776014052796947243084019142926476857836590446416086662943460630419013262885135172765709881079068495967820741402748218607922889894908523761753567122347758263862540687549310299476547910835237406225024716428364515296512001810469853547210593392544962411822128822180422535774288216929238790148903932661338475655375316003206136614402101865167898549210317869572338626239520288800580003039566290283376130614336146997311484377029109355943895201558608014540448346001797980146971101269066644246019344755398885689265120518641746272149869262430297554673666495167327800910380597780762158387830143041020150439752564255405104582488776325243909743344321223740103963340999669517283318627316302188177683850953923579435026322482745441191484509658007845752874187252315415527981261365749016694763198394971744544676282384304501632740421572441755948226679138601023588044108044270123340935482296292917657005526988539576106381195488278053034635996958346148687040000067249074737080034382088654756047663598341103389816259205506834787671638502181729596952701485521651930299410367853919419764704946671453321884752256027389623990238126207374379823304166160442024713868931649897165553214244864744801977946937286581933102092809683942536754937523210627301041131326368343925451877411094282798480067221718605846706337966024689918868122064988881079539107278998168145387746491233154589774298802699243269977860240677536137501280336141040604745420600817434882869456235803487701368978467364391288967546050795793296622028197076712117390846653041844932310316488856023615446561355824699946594986699014753300048391512543685643137890035334952026123230984080479300938233371245601100867245846615858353718846013223694856174378270494800534759876159235272111902147845243724614068060904818772631878553911070598976517493683198440612387172275128359535315929801805068541648705793027775256958264925761496906056056126112029365251283958528537369782448670947553540462748976052197554190530634471011019001265436735331780203188200918977832015276709487452853588859431744271742060378333377992910756369168411728623580556058204625162094048028518479959843826127044430204728633665882645049535233791818039695580955654904271685215635796582994045173690472969040881984797041981237559373806123315650073029959917577022209357212575530106053290338427096828993950359734603848348624338248464819755174095169768388054936349485439632879486274235598940155416591338306110038744922554196551258989847405945116406302948204676933935282409122463572312564507515310314810832781005963977698604405892097041354228588080798160116553882542486673259593802304395041207023548433543262785027261145369471990158138113847206925762130766782464921445361408556386097939355351087525112236018467609492363835377886199585769334435110356948060430902663279859616903201262795326241534840410040557956366418849936660776873720040717980257719703019072679166115911168202267445547796455235258719622365501289719759652867747978999032607896932562833318205636115721675033572167640209186438100912076806686728436673671149335265238732603762909097328516447423536896928015472027270053815249862936234609843826366790899885455494091705892552940460141289004777531449290827284053565348828467173767922315063816297052524340431743335063318565481047549945964409502796987334828935180067689607268877507738848502863980366908498444462505832459140066767580370651447489315390542767064047692380413707925614987702091494583933764836004157129083900491358952594463654344409387839235935789972936410758649328700863626876103084832350927838557717052497228317656208273965750773902922942584018051158273623850275985598323964992984677182265484742569474578745406113978452867280453569640502678223532461068563247474112187302443707240710663703572611017861303450660443832248451339099764571596678721340761852837045858782265950066783830089932900532793297696891068047885377388218816917847158787924407761314752504088456725996321457564926835762421236020937123328754407737532096678050146079477493136791053966249624122552268843116607380683346427539708119440971362183630995846222745602977129302286457796231498219051057016305693444659722500811635329750056889403562812733211349522453030567496462022279259818159365414085809207442431369772717078647871831099643884697327227175378665400196333369393627440202199859693177654692215587773814356293241338917774083994002691390673417903800816704035154327412143673206847567964056347327204168910308677731585856321112897807330487730538724690403482031115503961272342147318988504400430813517591508651135229381078189439686821394475719846001256414145133642021436838715891539485468446215449649771182191150347557035464501593548336319516689552023444234491404901142035129333587922006584814704022428127384917122399543234273183392512058165389428228679253664636617648780419959281033785749419285679823445087682726923038029585496415929854540145390721608425227337822692530335447950993213691305128834569554414671338605602951156299138076080306028847568361584743281562711913808531532162033817664791430327926559716177441686366476439440817289599577491179172557103538776378099614807879755301136746726849220860753843467841255382179396038124972184491734425813820455741996617078358626168710539502824913739833202640342648632735598276477742627523522353007955290229063499162891307866423046045670526258605410239601628419887351046664862259987443375690326418416424247653375685910763087084951195493710850282608293214280393177945842007740960885275510058625326211544295542128664116536994306158654279180560517263072988532868574788046725863693493025969387122211167335730013502195263418691912227461253737404156927418678686318359493976823219019220736673025626258029877830762613399675828269012778691806693059154488355351314446600416703148154253031138785242461850160264510101770124743655565887417102532034264494463249827163174355127472631828007426051599236386728958370270445625389530926001169469392389872329312174756653247822441446074955751889217111495829782701173053553149974766430810710764245111881216183961116525778890178210577166357217301629800351497244204405401864119407333081980582994620783902610771023500116111414832519945937813959839073789550739769873589524103597102050248731515666800973319857043057785287809564138136800177904862255772248076248297472443301640464752910843070600083337121538043043716563668640955979836092281304999407880350534212855663668565301407423227078319392655397754060566592078143335997689703741269142740816268527700813668900804834738742970784263414446472564023466603243398785216959487610200931935093832399983882465149952103013466220840407122792469061027589859761753923743177036837261617887670711951771514850628063621119703508178840151002900557997051103922556195602944434590321538493414961681591960447445857235799608871901094917844164972754937339810664637373204966566471008283741917339794384733884960030460307211756054926411381119082118406607645723949807031552179936246168908309606610208885636465516374500676011614711742714073772576426085523983477614515432328315330440474857522359570844800313221049423227829478983594787463934929716755493675973467330840614624442219839473738650105929919844401787936631628236050030585197053399931454724602660273083435578841089983357842054918229999097361108750815626995650887283433194466009849700793868176664815949388046151960845632424400770227830980627284603734483094192043736604879702211805473306712076589684533042090890483070966054192082217487635466941645983006558043564609611386719903362792564538041843211372702777043779100670985163472211892254973255686572287832459977438433965093109766991136830288140417333303635440301268762263976440921214843638993171514668529532750829250820958808371515659725000480241467871320368405185342267016282033591403032435465490959459173716628696095541351771336567794615006447512119541700020489433719121824482436356629827905620238199499462680487249038453975389815136143738310275543376423528611549251324927277988173925774071804718817027453345868662157822970548104982303232794964324244976351808365291190977676353044177349470924981790462457770690482636290291806710433946084913345677315853257758336223627743551905444016087756305426242226659136143851019454885630324906594083759442403336171812088102516246001810485571514379871601185289914679518766451912580661257209260425184897837046076494187607909893393976052578805133682375010518900752365690437849697573915717450122895873989096835947959781396782539018445190458379085424972440863355122022417587674118951568020246176584273688936149032832760868556258232657028647075960274474728641129446015396970691881801591875955393248773962107505132219694659451905645908531539608430856776298754241354191568730548320686438751450097516367057799839407846070851945854167687206042447645668205788168928461706160684689592655791714539402583026514119287934466418663377537068793647325076376122198012574239450982453877941516353447307431115851362984898639763215371023404755423050013085694329525006782540917075611689917119318073196136254052827638012491525990356175466055477947508412558456934743604842719923431514549212332579437225919857834393881664980920163086413629298947181922446755060800872989835792860244652062313491594068749089532219877915556552247493023851807126974843533294562732661030803715805898685446624708066535286529101494204716613980145632082340779322055084128587468278789373866028915248651125691344676057375697918981786078023350743207391046633637472346607467422380789893916104334279491007766541302640231546563164472977107225129520570843551927003292983867652316230593866481349242535299668648446923850178276384146722619977880425802928992050757551822870942912672498092834962567046014081891884825157798501134969125411801554883547632690301580738468194384671052285610537044127480706732427781810200083725413304751417353351095933359403248609141881282932999455397996500783704404222487111237416448728402588230185461868612459449102250117679096349092906731826942983163103848670064718872872659009725841635699418242472802509106570522204160788760109265115589986928660532459189275724560490826133607760170697403495238242073128325796909293147639233769632755732678838122802829021955393305499538476013398568034559919619876517726500704814290440901060384718768117471485643189256883521701648571040837970435305437342252144047753879729070429826328203922171715746982007791527316467303369452389112445306552664966133697025387721322311525070785334246009053460997192596822963740311590666694675194501888981739518904499163170259377737540964253788228261194974938473095865479647671224572153338541698074026590455896139811532093973379914471425173560363839501397197487371065458925640621966803852972700700725206962056570283393590266535262598143055268129872302660790430410357407880235416973653786747609104622712608812835078387891986233139708142232947679132199301352646720075847520499229069183644228681170922614678138328463343009931845851098142546108067140791619807724647566915219848653138250727684929975301289890938620075918611845749922371296130546561477667861717688364081028879576267171807571141498864553188129409149306587985324037839954845490508697948583793625821929256743874248026529237908367782116912347675612839064336715959815470466014195390143515710418796990756107345344288279572290361557950992642740871051055625924553646376183277322679334557206893476164089254084066825778027451278886135746895501791882048118890062917897585240041273111069497546987849985734548173669287324651254091653229023044680115078845922430283836110591074099302508592230099690998397343414488842921582796918500319487012210318599307828038403002156301431467748550743490951547797770722566860534126966094495687962686032026424376530765498861554015942617881066404306427195138501770515344149185098407661274793466492782782225559074752489344067629084301631344943949557051399494386348221370001914231942571289832214068934158790575286757618222269008446143891791419833358149634624905227996432113882644567627676246107888999357792561794319169683822085030286586138307662402639108088305766991951742769877736493019775716208574843258153301670115365014995102654409952363895225610186126223172082491887244987041457525277914792571628884692421245360070971938016468042191018195555884701668166156737386230140241686327896963138369922411292804548682604983714025015376093762445261085523713641183474967143967966266705214256489768482605647466632352406748249395113950611620979146780231503810575539534964915366933923242501781146083223275553225543293316163456925618529000222181205230232324189776171418218053732842032812629373935483949656531213391171268796787116553423012173011537806619142536015531737445113397881692464255255116796308682289526101121707000285543365781561254445835102988046938121889535697080222886051201740707163687193287583435240355655780254042827643731336237409262136393778262593297725294949972036179289719361622884888914983435915881098059698990799612796666889995283631418314031400697524653799324752888414684831742872102140911419903361395647170361390126751367575853571019454980894376467145078237265864853846156628913297887525832895917571087800756291394841590924248986369663690361065432400533032270558321401466630267325148167015861440116948244794364248039637750519830783077303102603147873653141462947589294565167519387646792879358896943927491087101577738338510949188356728432437045220641271047641297952058354350424661349806347595930781344945608617045453051224952844208156849825441513702050125161357746277310032730313142802232332969607074367807271966121014165498744332504084419335213736632084675385368071948774723207510113035095453523214892801558439396719536060513245712406606716684573749461125036779133970993028698811115681856481467180865740868958808961336494613103674659172586266847062270523510573194474201492446349064945196622784338797649572974689628627215127986683506624432737905008270959056603431955793442667499512972657403834510524994469844583301200483324914434163996159887961066002642298445346588476672724098159192113954420762336992424695043443885044995602789957544971689083947240066158000240083990487835269156323533369285320925378335011878094694002306152787792819083709099637563168047386223192078479374464987025753372486092098141030247868271000185215350596826019952523239517080951427958981653821613547864388657977967743765671262239029051853500341977156682522545119201373607501870049921216754359831476052970842719728606808927929425835265122773177211411661533148683461316562007406218054019897390516904865103791384691565492608820663301681384470121483951389570213431306861598258908341357353345700767451586794032251339944432447227485119465584251596521029164889845909976685946077980206702239597428714570142026606057603278309323290902887085989899949975524656274979607520591365388681706038816598874029698204031842608837635997647316910544425871574458653272933211515284484517488984665313331577174157906116913626120865578295783596973832364833231760085146850069736454751842555612904873016062074761756554234128117797494921982843378780052640636410257205457971254058192829717391289380553401114360616816229091386982413273715214148749532523233647660697721928558622800074401097025777014908673710674420055382025031496143488064879477740455074169028908085893389993066818638511548461764141310181800526976613164126448267629634155894658897770703655197677226530481738759767430352020079652511956396853045355465847078928562581453541556663537681397214585260829159926335816648020156183525938370202713308378121007650603819739567283520004977538641336038687575354915888282073356474371132769301424255509649503787098679269233697835237462210950795059143624483593303447351888267672218935485115206667101207097354973212225383607614530940481164656600244009534625077129804162770270630286323331101616148208193692241052753987528975376356416186474454189769273621116932906927893782719692078347972986825334118612085758115152611990784122631822829430392225299643072329771591095332997580275401475211340163613013999220388324751522292660949037794010758633627014467224719319869460058912340424582406961108501719222817653367660493592876097187460277984788479290211043881302738490964150212166820971919823057485449776045200197759776988095360116133556921488448039804750507157889321483783512896517750916529483334199125143768964433433603844813037498564371988256487224898825516265115010213871146577690992706946398496650121946587898975635446497559863522270955167671475041928511499447895712760043727978395850853152779018388484662184266167452114503129936839857919629183242598240935186496450347372938241703536709222162736311434155813872489673850113580055329373328011427733068776482943114258590581175429501508811759920884515892443794587225528806476377220562535801807064754201451546719515155385802321924360602480621902268697687419723273137183265709502674333007901304588502143762257406509564357217177494504576343126098015750437903429516234218876444751738123936802237983343577556277026488827261885427008092382525673679685040476708495030019393917949466473541729021746829675785095153563312480495097070422167100328909563823242640260858390585032740212843117499161513074834327964039309358768562866731566278055275330742732777502185310063597833689436149909269554914745732746943277647377143020157521856004934587718469617659151221982009990773198528124736179907818215770431925772201673214186034927706969131490389395252481604889050140331087002393103452280562009661760677567890153208996024264985109964455033402679944535439372461649952117527914840516511949396566241362136072163925052557938688116048220467064363642870869303770953964901078963097831894442094910138876030449722073965066892560828299370107385538736617059335834826102527013316797955190740452640813818289496770378806743273546474362121781489582670214381240899850017141953442693230134229961100826165335890848738053617104795938714929552075345764257866666599753230160765009185921444608569064469501377093294762407779297827519656439672771021510373685350029261839126904010483722563689582903870137992904445023463123784066640237617022989746066880404792667144112869392009441629087316574184436006175184805595728878205966626057241464437303071924108578962307684783408226276725853225796231220513503516552972686448714254373479513101551864885178809664812420893075813825782069819450722638851793861685620260231801228049207098654530008695341770430669574205389560466872053019311824924694902131430507084674249492729008513260610869802066071176552474516718641619280135539736012442028725421819705430002166145385429847467674310865937813940629593961409463789292893657457042703432651509231145183668906547595003879645803792550095308953897160692279331796682244518596233865842002276624914808631558397784076804294248328588854452922982718131936587180093820739485171041518164730231798964135786969124584528574608330999951371981975728036272884246838362118554657638056652471042932872597580393480544166024471228763999768733686642623824961767681877980106479187538443037455014883597320262022146896306296882343339115665683205173031517850326399049953904697243943944183446267982627420319373635179115732955402968929976982847745307143697484645718933563435008309116430017631805038287003372898464800317944424487682005324198466779046040173720900638880399058883412863780586965998737921138062011412587868333044718407680024690473684990418900487240656123746819142021492937252109433929787783696472020489132754629336548933117448998938910606144473057057620268925503953748462564073634009018727223498033788810062599766606041670819266522805555311958053370172178004975991250406497981816862357003820134400000828363722628987044366971604663025926597963577804441298108779069478390014486685669680714016521273539310454321074982075196726519615795074660917296855287625709972591924468010234592082273648400678972023531756911745795290242107378340869032781325612133771391071773899279754577694982289254601452594575851780003682929577787724524226256104708752218216996938069726893122062896439887441903997893836462484100596079375864282755037832057975487954250530081482591222816120980027990784063952750354843040878494769476670040855377395329269385207118472430200534037878787476544324963092581788556968795916584821758802305117963286962408964598063873550045553151923843467541807357277471896479061560106040664611099908047871027106778723972414034661882985981875584930614291748573513485584795464081080291678390702005172955827088424914908820712248951888641797256410453558191838365256073877666132576007674530364097403118553226682213233271654564914404721660651861914769834804658475961254707125023190656538455069815337265656791393997073831253967459457047622015015589962154941182997585099067010538303006820597634934969257577854059205468848739437504584124549852646162913524394062653797208740545313276752892583392499417152862677994284547311722913710818723143201771812236344551942913994041981615862550297233541508050797615347551654008740486908325619093551942930394246903620758008783268576573487272913101021410613951418519344776478587871306072680948143120907765697804530460481787617156782501656028191730114864228683513263825317985853988479612949475052007240508978746257197508092244627656427850763200162188534624231571201155601413755336027632657536731293050999203683278569673810772881638083872809128416519105091055144674389595363315520368546057887302054927541886600405477803547503230286158026692653833323607445061914497859296523808131445499505259181101547504222659284223507736979221665059903328064173937423085858816000128448765517798156574086745540763139731555722492720795704608565577042597215657541525437968760182875691270646524976166308017714273612574141523595797537224354656941872712355573100392108991457953785778607227129060180787221936096964480364621038237167203515714802412604144125055217207677782570506533518662663101419910822814982120004893440624910594631057655149672574217401086967083363129744572707632313285899368547663464677069057191432193431229487331831025766379261786583680397209640616169971369673958185837525618196400062026262718960824610028172738261669960662546830947747503860592300028587657419597860280052922171436696302792527709123489591629484356460417889322553340405342110822155980617597729268778190138773908115417467668487301084768576376838792429906843253229937707863159645221313059089668447822390571323281948535503681533692376966953716497134254653370610973761798379322234456029648253379875475793465580929610070618910192291439985032812098863773647633697761826313617530040932931796678444216584286945875152814020605957250390776549085860090164597910266265687755497547126049798318742896436513124898731105320515268692723213919021229259938673693345359503788548446554102629478118170430403548680898516007567602905800301657542584862796525783320947880888957102321061420928535597691510971687964052316504084423480946518284345748399996933200406438334628661604468366784315430511366350590143230683989283919664916291633869877167263547738558077554934926194964083816496971377786303092850024597710883257336471607215786008301747237363121061158285187481710318352211468167443035781367413418207921669828912192408424128752687835704378301400785778969917701418093593010905702234943677686166117589820499190055108588091719694192385997279372953929818769226499885273198928163311849447180907066329727230922332847256695434154575221223836598354185442186866226214324761280053773103597472688518256496085586139991407652812493671432985759005902699638735999453558172754819658494351582691243090764427510739492620150993579162379064846303603149573294314837056102574272059991638842765088754363814726320985103977114348642960476519829010154097308621678022929740868425366200761590169976452159608421805596052241099414099783248931931600601208178711348118057054111177762631623661907569746187665768177045610831214879752092488867379764302828052605590282814531540166243845026632102800333507541961828851086566193825223492805423301652268244079800301653427359409038737398801448278855794507627548578528791177052766030429123719787484235036384038307248269798378453560426161603251461960871237943230419237042438294307718596290801344379241788230134303438768583639365319733048682385519205842650842728603594337171160112019621280280655281396756230975292707152282979405561573246072658207712839099400842739720908023386600560239666098833221839625632496475699379925730289595286174832512149887059780197641224561178415377007167597009296956628325672219779496718073103955385002167755320712191721587699181429416962165399392957067274578399893127632795598044961335095136875486920201146238479778552310015593240786315678347415836769839455906463151236211225802741753832230766985161660096656501245816119605101077727845522384482188931001469274360166780817697595870029186271236078767589521959703900819387408133113329367311297711927304872311191488341439560407644067521537821787234181219913967351774754260663699752803628559016223397115259073876008091852948092820230238755333104163212636531708943685224238713687249266504415302558333275119043433703180621605884854443058705897206788596866043991531448344382142738538143217373297530436445372412321280184029865089146723610003413687426166066320989993047526076989600307164798163254361973546674851995803820615964437361563722250680599165174274652403972598029994658236501793857890823568349350260155239560762064723198181494509331129248159494339754928943528041672745144333491477678536540473097587378842080636425865949015308681155582820654416964850412979627265108031178509163282806041367801892732805601439386434584119565132388511128541347126047740699860618424525825702558194891246912383111944630181994546128090189645976935945423036585726959620498373409611925004948031425887298746950297098405809685067168059081939439722396024946548716041268841234951783412442227184266152796443182075646255428749189412909056168827691610375864396158888916066559666598909484901629584874433403081199704275177365106151330326029649186174167530858025867119923103117328557061758840480944724742750067825217719117620001692299830886948904352327884850243397828075213794142351117926484627935024264433717487833111516908491663594007712830605331908339596905263144092106632964229885813556958450400421087820780295367419950460468287222135957752463468412791622159048578556641190834768737915331533524722694620988831598252896096853844394403988067624395187383915030685708996531342691449372868321512733928008340789385056450519147011329691126732930788401035149325739580814794679591302986783695866458488767968518056548250366079522545727570712732371114022714745478452618893735553247520174542746260234498251049814584887138277152504819588391077473242479598596135434924478118416173986848478626891332544824055148686097507758346331620505280373256224954151373754021011096497347483506302508987227679666111043377231882995009041823979627588874486906378480640224757173170121161587935502827359158589987393688492392549847374461081832986987698278021620432527601219935311373548596845935448783175239929994563651147040809605530214824627905589449857260738314546216828357997621521981457904908171929010284183216143991836711179953047578798661082267551415851053407638307923216001853248409056655554482996755316293705282795874551273276347632281979611383672571846142978676575814504654150418044647611388034105578845224539289413087240853812776279131895857639171532526526016558951946364778812272864987938351548114994644167997420752206711178241355955173511784646975458373667490527008645091960659198442065505814910752248772011133475427540202080089336418845708844371207452358980207946902915622026619414692366028711133128926209768857721127477806965315505882715106715500576716078163856177600577591033477580676571964288131458652451956208465756267043131561678900574318144472335663817991443076777534164889227119988405850482459319663606757680036849931005082215524056064881335125780896768525565411541699963360229859452904763925790162163065536701468446126910559726123285780472701868927992704612946974747359716271204540149886924004882952036883600195282398795674347421940333419803644945342835277208975522406778865469568055854486517414749963987282638333693647019238601225777293381477565412714925286118291734784437054932271045907304154337078725478199690129402376180428005285191298617272726015352081613020169730470176401766969883211271657820590465316688497454628197266463910563049183303858856387648229182750860258004779171128662907627878764480031441903242580019721240628509810084048630884707466668873747156298815436450235893247403098994748750719147853722573309479918040464859676039609441323412636263107030652503043326113970060468993119488601959279437091377197310257978320378073701983173026209092291324856589023493488133311829121615777736288489381581682116389728732618871234453266238322932544639196841391436110192539963572786742654813341986999819736448627409657818648877375504884970930121624915422391531220632100387518173322013814750476176777608948359965285261155397172426804656304282272873225415184090114259024119453798168952305281566898591577695737449228720089731108333881302099452446756085622582789473279345867150913572486015531031741574896222907227948287077746158366793737390069975805691943379289952568877054732567638087530925164254519179163661296652957674339749899356799718285781637293928529518281832382116850373718945294712823728110894946577382803989639639796884805747998840718999716071541187498578527156816031198651930540682713724936353928619404692590148179684337710064896021054131295610745780917436710562721705419432280818873654583728410483720395060137059392919334069972565879121660470534410904997044254668352085382393654742539817467858124406626071615474904467629095358180418627223593438322464171991364938675908136412801707708354156155781917903201809224912470378993954181477211511075640630052736825073075708008832183668170855355769032496079479206125568456996149596103022108060338844617698724541257341393565489952117089655141770715767874513043386921273104577038999957253530548541565128456800372852296182606031062781131095236730917907928277831720105069923910029589454319259160150057119062614867392772765819452596148451485827014438395840494866404560038588602735966542850355535692521920349261024069560016904150923569513852801749415653443267874288893362865047440772296611307962469274815936470210215622394934410031052034803486403507667418822507901368899989422304882670323422318363114702081641926084104909943485908490419741082488744242251320086252125478274794228949889625079972109373314238339537802261007280188693363442659592477964684876733973290972679505799776933238617572893607308284994907876529447095103925082403366314258156509222455628970661914205049285045691606336332122663177367342705341408598534680858575418529315456927340425938595386364620236997700120309509360462895342230640793829430824484353957891696074447452346417740827590452899956557313675468047767403822556034475198712884550661603756189622782457577682010127922938561145724332384114278806553353146068702406287048526289319200306853609689886741035603570853668026973747336896808922975771693290624192365085870655086046185204906655374977349499825059629551142595583105431098716682650864786078508669697314555531541285407580446158624487255347585455785152976830497433850163375633590160068045304937497172428626944980851797159628319406273056840339902833693595439156297959147563881612263131860951225517135103898301466818748398533127638271386220728188188797199510076841902135690414646771988746082688421516392347479722618856150444819562349487128605353769163162762292224866392000999433496957591400546822988942703790129637682344723856559472359380919695130219166303458696970064459830856931383573836007648394478609067452935773158120814005053108646346218086380694605784118256490096560103315718128286213925470838053147057278117178588897950836774109952090736995202378456190301378740874840274935477514284844252027902567461325798765126981919991225450705049601078725474414875903993429214093115499692531293928672657425654027851124959539971358615134783733904141276475376155260253620897068512547957624863726130049485750956914691213122493058371256865251220513085089308759722096950912332017917016796630680674708589398223191682392065210104410937233192025090531664748881135623374185238534754554111782732117533681978397709915263336738867066165583712073159870188612753445856884126423788735227630527718507110814887256086379377381274438818899079440148668870763116281797698274333466999732075855606728696949125146217903162457563167716879689449491889592493266410130939810084046529858228636305600400701812045432520108427195235516095283381815035252729052184977545865418571262216494262492197396474540881111607365374673498801141066363135617617168369021295362748444102384047854584169431148555909887979776019856809718256252501839343362657589601235663940979957534703246579310533213423417238975480769886042382991435913333803095590978281036511973663451285261853815414939169018880857538216089260050642996776406542318824088712768146289856412888468355950428658963205390783749892692205316282130019274945041784622591654161723878723109525923464117829701643929317127909777864701246040140943282382518886905622956547380161858122674199583984279492539097982001381492843647593135404273363513704251450962212147919408854349668173947755637801973846713447956532023298728406591396680744911106878961839059107225068857712597203810765540970553153458159484580722896007384390885563464999875510732286552662696852771603559297182407246955531390059413014981461325600232646828800924086357735287853522989490100109259093415133833930948736554514247363806955870881426420369401221750405834260485211825967623430118394075232831380197393456021009762489911283305716661839007940922041229086377361286555786100375958778681721551611425198665662036081979856073997481858706195678591158192489706586063441824302428363647099867925010746811518083045118481878323717268350396193548738023671859368970436474685248557647364610075345929915661726571837003056551156426338199139444019854548651575247920272289567232455900158505271814428231555556101291362549790967739013264607961743763524370027160574940915395114984377350934694147382146074740415715203412609718712534960307642224249022319308974157264142230431727334524318108778760349581821254116993040823620424878212102577931073788600538119152936013690512789216363263342844715029800152302539616880585902568639525582747755983348211465588083785639840272976652884986339427193241962478355684252424251545971900681990275801965697098370821247544182189407034725605121920434415679489488945296927529607703346539908940642328132180857942079800499893796787576166925265658008474681936281441608277274276272446584891167652048280559403293257587482221884049039184555354620344624820984610274485584961285720298461795844792974353931175340298592561462075308023612000264284606699772974831849328223142835303370300718451905036090602852538164189225761171117935687085909778429814949686887394674071169343444248945157153290784077758437498455501897964786258618726559406693660862739833476132016032576459289535289350960556985349901271841619211896269352642743792299823388713970677375133147118190526472247262586723814919660560442931538903437486951243454038614244960899556194881824658174645162246836889126093732509277998632384885383796791821318354557744873515059588075362634901824559096389675503409479920399551663777637897436861543288846583907081381372888984817246941713829914217294210009561653713759398609338559440966036084939285847954337160803500230144122137734062635465851019854045441626326126768758963453137987234112605891375993019058182953574789298418309944247049002457372074252670361497551705467053990626451595606642413051960556376607608585293528864172898666427280355425329976557414930063288232351991915500700355151879150395154904387049292620584076514619028221856100490979578347351858428301109594285562367936865737969624969733969366442423275242006712932266083368239774880211850443565252672093867106670175846256431674934276478313179288326611741012494686541096355372872496094527307452761885885339140867615728595334844202489348217954362663695927717412112551924645891788756644738567498188117770250312284783355491331939036318479995064885460364112157989114800567809443967095415436902929674796315301756638741444231603482350732044475752859382419010286983798750968216480174847677810862044215541995933488140258832906469324469813650262113580876777193216192076993776763658456440129278608855694507158946547565987580858118494867766974462637931759398827814417160278716984309098388152609688330343786807064308958713417503120304803984404198983650727000697143251797381929335990829598964430375565387026789479238419968715693233549120396836265294247237101173053531038615409373700579523435078286942402463047830102265100538907992623382649801665455784704946908527895425934874907598086525062914846466024501386627803819196575408462041517828235395489319738979017103617800721553167961381230353964810336124842384709868384659304846997522944972519190612289125805574222717006363786161573448176005117952662995332458101538838312545624676611028634646136121284346434039403181968694768676013271909732837704037799857779028183666812383237091259326862586261887572722351059319030273796763800855488427332776161442687205154409990490450356176571427718577553949568194634075888615454570198322252975950250439311255025829765455888950605127247512746888138680624216877370787758521794769859073647375024898024734188527923185913604437979791623036713409548027713254480130468842227807840561938550746927444952080599179004538556253195766064883795206586425501326719122329302024891982317000563258666409485783130588521959865411302753150802179857454046711928785557179829159126738022488674198556987403810284207871593018790453588423875296768965106264931276588932537681239063330713936826765681638972322448048911579493265212123161957331610964108379791013945848607483131227543690826927322016490085258303546179566954455392576095583442102858288775015872123726822935094965849627075949601084323430867616199197822647316656543045725196723102024542743255326356335512307828737166468244851503322798973525837939051251060240885355697544939162170495090579756033619888277283303009281012051165392737274978989208359612278919390182105565644937183712898710031606252881782400052743534900450141838598974380057478200389155612791879476502452054147633940584580766377202779092749061184495451079373995656954862387997927927375013466112364405861543919042860765673603327747932361760077896589205208050049811210206793342925512498425782596138108508169094677041614638408477200472827454100063708477076014385819216209469934535251512610444189178965668160265898318569914923428957818379396806524951090266905063548357273887750166585704098003023384172134574451365292511418659822545857670314854614051666151642888992168112523334908066277450525612615867236490300948986564901192368373263573043844174664431838877180903594457191856947613499098953139513093646321017133740974325498621841510802968951175691354995714481323853248262408892088675305041031687561816592411864299689238088371371721525196601275150794391449529308818150724378881532880996072625745393353318128829341326781844162878941183653154847196704127225742518063015709912528200696439666826283378633086970961230995520933968280000669369630944235839772884528077786733826965394654935922501799520204448451411567214874963286025112613676156743298343243936350200311689119108290842878752995291938146940049249919750441712583462705465192602028100122661408489035979617131411610095628805769778612668359710592953792438711944863240761184337045422703144533825676344266101692794060886576111142209636670708908814370303718195735011692752155104936980672544011025177299259921481211774445601189747382014220663920195024023309656545490658946728957149828260977553134193804376517319998528717117385395751046734467775213297821021091647867603657685769558170757460990415058314838413007651113759977931771701967604649985125873752765070999606878063376110940948224883174891902328425324050011587141533650371022594773960476112746077619931381086728746855842266982959353872496888860739483278834802518059339547801833169575587584042503789941671739673614449045599624829909430760500700299871725455181595950388801947861042439067642298727217584005060828952962052259017239185029630202383239334477461956581798905417868276047915061283751239783394521943191249605737801485369936163420947779989788157065018400891277219536384123114937962500836817891186324889577859135468741956950780580799377776273712530358505355434266939435714381271597972210443727098285747768413369642694166895035901238108437867588902419492271087243855104938636203399183211983416201535735175487505333238159237487276845952468517120568528532017358170138798890890472707956674489400362870997058488816758562527142470835197793553558147123157187896840920978690307538342898555828561186571275464967442751739026820024704516739297144623593070253952875400997605476955358332946080059244942728475026852433848710718950427387390766940866335991502822445840612280562872606992862215096953390997965364112442886528427360602036250458598692184367500165366801667987280854834577697300009837957569153081014471648809188988893224295208766775974828482577575207206217300996066367017398112688382515422686493376455189837561722340436192146633507445988135095744446593759051797553114616465420822329379902953670093024195231502314128115053939241765992101613891267795636713964952509609799037317330903280881591172628298929220555259766030182611866039674078609463919140209247351498248340030975066881191180071371922125507966864318223412463159743905877933885261458017067143776227324580546493292814349303341941510436361858893256739977923416251403047637779225602870083389080233472603570621974483656872172194230827817432284313607869111892169440931831971090710224586608064459994118975969551744841931169838055543394283191047233836933362560114657694334843926242762407853659575789860042615083999056222474858379428396375661626851420458447351126282833067443426874260597461562362571411886481163300505954925692776075589675740606032944112646129963743539116628122657662158119439694936484589485468399419584371207986963681052672160461010950395290540107588343174386809376714460283937575707019680048828945870849807991230687162552522526331349216585910143661521754440170154231730235310884121605357790996464649420989107622729532595990735070206843551478920052805813203676734359322842580778418158552819732305386694637991748664732058340078082474059534422234869592107109787129124946887746419110987601249169385014639804356495502715784037219788035964177378154290313401730816643522727268496024191465345052704588474163734595968366119486383501762552253630523334492547118273569816952763961275150280000211120450572269595548619702978030151599080169539123414480098486665746814745898455060455482859609476708606536000339287932181233553147122529864549918419748980094086513667290799184606202471208705924690642776637025435699227205930452677747418937443565363892513077609792924056761025929269286088229974763812028255987453966564685583642940880029055946798458670625581396800104611262398040531712868404273978414530741444471497347363584979175432758228236112878770564769629412468655672874424191588554429662506880874801959644635119856514713514269256984688143788744024710980565858739842756621871180770359817798032728663107849759187034551386574176948905746826769490124338596445670171085355947958725137095311452797440965315591527235833046484566616789964233233329839236082119793183449383266085435487169482128156129949353009431445160452468841366783492864194019930737966269015472797994085252574455603520727702959286473652067323937711370838752062633119180125110856910247084705839135364599253249604078917459663949469393365241061050298797554069427832074623837190549406805927932026160210853812608003137631081723172399618675424124920890439662608570158623212028568271169286564303313282839702250855535771723876926135587762882716575748102241067164051058531795849535565278468882391235684835431687744759366103919024950912604796472215588395883956020305775405278542957899351819030839396537961763445842344385309519747927271480493777982107856640658699248567935230297854782174348780606753462963081089666241769296546075392299527681934720007618056221354100663990824751826452541464717168227508974595847915168844608094382967614117943569797344775315949238767365432365893766189025417287009443473540854273877410154782047143057215343676055463279625442988039525924172685462011966337564336025201784263881001757072227558675147077505543449379849299366983188244437590071105225636830005840903495713435262725282832568781596752345059279126603527459994360990223093702673092044453347557566362395634988419631344579400460963032849512932423871515347110308026698904703434837636599186204317232315772479045875004279237336071664551983792652899168446621822950583471176113338445985716578175264565537862050017207656131285470226415850193662912969274372898510185044452311718241242445237795818440845410705690814966687688166483923817442341418713995175975292136500484147258369301496232670466098896264415107727726607167988960242356387787548467131684666758216611074371213530820118832854464431575239905628790674727711913393012691621688934632573148641931756995020866303117071855594434491779992730548238078852903781906744001030520921068625066273476870220612294290319281365524636534677475651857833693164696164466019378965645353989056916116701121759102755238839264907778241938701890054373439954845048740653941959144101131729252911535401051315949105445764107843800625984867931909747917974113193269273719398383584749049740394507548165496521136004179886676488293077392331339959922487866114154453280474940230966199437616831007031569273826980342112166469799916144693047031972932046051661509596318818063899237489330321932964141497829911844789681649152840742360186249503974784035868003866067058716834454922788992195309883083311550789819330745280882223910493261223796318083417137900322993283663781113329882727302210393764307152378343129867995866713658229819310754128026358813740195183507065164218439842224189006581632238895082554001579346446024793586758445100554746520935404583935727336377726065605901525542034482804410260331552180119276975774842737837450131698337425593594814934879693085933037070485647246035175735742154272227551291943889811600161289316790378502138686524720564460911482355419010240308491177250600159313226907094646708881256751287135675126404845296918851267969111496521861697115299604655533098404629577085377068024244503500643314843705836341729955414086779568862208052495998310881558387292074265104331984210949640128843299019297684390090775763040259054182828703807825134626400991713875860932355830554329236809116508040537217635931352158999958288177994198731612540838663467580482121042812305384899465468109171096920170485742072090059843190509279616176727067728584799970019562144561935164446790437728004378207226750473142175239370325225378119529255699916064609031452926425542617465585777666481673972589193458690354948130129086024782542489777518400752048753673407554164829786840230289150422573864368378166940346225458695317690173464156111643793411872734198750080747157795643499494109524674361685759652075425240348829913392390011598205246276973145282306668786648100012189481584047276877377990925384477859793922785290186246272905984566826330428394535835928448014290574096741034015266397047839949050080630764101906891675786535527124376686758736137964129213329071051673387148784844029612971457068879989191974116771343747430071195121710626232989835415853621909829423018828190860123263534943637014086695993791071777990856900161660030914860959599112361926210099077023465555539738023159591049768907805580612434189652999243274939517579212327798459580805675450428124492733983940383843805373716382203984006301596371293824426761886928175036651679100526368846286793748104815405848066996725009905272695903273142095426620307193792340703380939814819023405486482490364888881443732196674249718669846029930310975017726432959980582729900554390448196274238650683505984430657457697731933673603419947776279793026628699613026013538615243679187897699408264230941287596969653850870822505146759109695796700558864936890654213707978463620735059849672284454888639360074574509440226555947051580955779339839945460436488506920397956064852739016860322893560437255793919391408256181426755704738696547346977419215049809032481172958239216479657840167934205806553611011033099159641907811245206589824356456609052325566043855881959051970689284503548093481211928571367948421274387712882974778421104817994622456483495122222672761691047059538290142785914584890319551845963263315494278751688548592316464601440836597505139528398746234579503234474800127038709286619629197078466245832454222146742263062312773485973966070267347728092402828465878695291302989701842069255967369701621378246062690678574927181636091752943873141257414134594733571911829436943034913647474663729872832672329766584544727508342812564042475406504446099143790686572751269353344309543530392687767144169513856006979450419627926456314782191823571569441788163321659220827553088948940546968325268365525877484452326593530192100602308823517478533723277270137293887603345046436009945602800966173728111376892868801816980826244434943390170798468543918000921140220664716962489843244862061011522305128748222969545587812003569933255710229516067467539258986606594282932115651173371254315762017170075456925474065306352951575286262404515024267661206768531020168390746879701874941337827132914566026836106937803599588305142869405556008360917234447477651953094694437197829325728579585947012362658405820185776215251364816562030864580976860244729989792424819142423531956005063921157609509578423277610480353308321404328056406470988566466039288300113878546547776082482208303592823771581603375613446019303866295605362127247720577056520358754429431224188478731352068071095507852514881931199062363571991529801660212671853858286227807528756652043628960444485919998011632611566919947989378180181121950577304883717721636723238967263477805337296856272960316308564869613152845389618396317826477083585994775679870265153530790119328623473466044877502410331028115471446943387429513111448086087854967507878971569456642912820466136385144701945562991525370571510929358083754795419237853883182466639379027335827860245970105000336095335651130198594613557110875278010108167711089726668672309549504733486747260647344776215719837382564372576097021968894996079524140818822989711588038165635250219618528186300601058470425912656707400104821367227289410222155956595032807219696657900876678781722130793805367716731074798276743739261870400778444512633895076635887749764056197746002452146370810238842660397270310448219974776981534725677297985115971558074029399430009289705064129900347773099002676232371351853293982722376365019591088846103656345589874109779216234357268708166011181745308327824929385551451463178991084775696103215598944131744435724097898924820783072377569049936685179182695845724150048181922556629664182705154579438752621420838213268725519750454407918453098182701203361875594034535019418957673109313438838898346578964616402641829462332354594159904781891151390531994438794588139194557487963413818621056428718346741954857885274857291792220976022890130025537930132668238771663080964677873041825100864753084239356076168850929158724971277106054265634558587291942079485015341275659623918237040668015509595631054106955523179561357698583847441308248173709423084667711294260595026648769459630605410570022866204763080345456498492093412244964589532094042787581397129601728925089774950125055514924753411978666689164865358102379901783338977836433510317615274927678108527317114767607011856871197307657165663873067985145039513987308981181008801023407912575070606349229453200098770584120956802759684215982463261957038402730435069412294758262098532321232567077662856760536466965917957759233674125060098494284516343825579334124493168560987019797968879108749428966073706637020843574405980680092043683423605125989815751277936023080971383245474319918747267965471778591234517160847166403202852122218716541280025052980996117663380674811651406745771910222170995873244174110574869448307155851967685699214954851033396715554235307634667916438281069963588690060783435905416225235183964454482932731088934579247741377886888124673018604368974611271975577817342122358071559517930250106739564537850571013851399701594140470832035200205231029383425813790235072144871200809119590787424430148350061896554437737968901281301993355018028985123813072095261946970062486956565427995891336141026176355703263244804022484717233127484468653196073700841752099352891460598912477709463745118144124957584352835026005721046233872349308326262205745193319118390619278791625278597727173556087794787852900983306867825077728507759019540464680706998850108541420785145507872232993953825816059737753233550770138082291525182078298126091591413474845814576340478743486640193835223801336769028557292476348119811762740489728523285450091122960420221371145601971567664485906583726568085286794535342014003588188994315235058885976930268611592633062898466509072954181827615646599746016976665098226688581116110967056963648962510593590759892150873916453827658216281387107001776736471141378051284176220677528356061647775078797637532319901344415019150934442691453860763404489215023639121418049220754006750008565535270015478757938131933390579333539672019446979373475051739157506997638861655831122027567608581970994924466069572296960092638197283687901954538877114787109494472567789327590076837157951112806067929797994405267216876784982886427977960918715397160133278612105969121688972730172644303660210643947018382429674950394322296673847030673024219321203780974677014306416945606806710945720531544052934367222410602017405265693625956354634440805869194728468960695886497547600574271160566974321116452472917217459308537159208179524767880506521694057858369606619094034504447751448966672948637712386273836837979521031758482196028334473184151203351243159412985896978601192337511614766119142424273310820603245465298520636563185800091427938401280294968219724377451296046393393455951083908519063919370746654148161331429443364909367115737121307430428043234252306967817590929958747144812854727472770398288167602921768155816066712577693029602584053335357565042030736013390738205719163728208838032139519846671799860437820122783182979048586477491248263133929677251008707251948299580696930168904369445965528011976512480494675948147855355028746420832258928497458859659090851518459187438992952048448486370464810499983991899868843879657409556275126699861567916153307138330812372638440732332954908657508798100485635142770488885744351198910292446496530544195588660022203652129687685723132919956623888718588532557506093946249297760202206111623856077901095743380792929435586431401594364795108811480640760014272265604040409003647571242681737507626420484237013403872243492344095953103928824007048271767550486004752939112163237544615654559549874860396488431897346748508366495870681701127121042300309052293709546055355876526489966142980259082811403335105436536971372076445434891742021742750106546042289106905145037435094014613138278771460975432907070100813514669917465383057947621636399722070948221788969860039667011813357904173681592194595106200618565120524422158066540753821599511023983185569073865548418230244426878541618897691657900030039824650053394108425406314655261736046358972690389033156501572071402689657634494133026666658541172371368141381564553112893530073632471616930392868129913696260812972388402718696203942348260397883053721518846613242373993383743830818223101843928720728413122775047168630240339352658100128983198189284080215298739790624940356756036803627473527657373336712266899524025597604790725405123394789126121071002758438358175015373837212096676985382842855853714424654428998158334037898115903755353275990152323669270969003946166298867509308039378270251801698654378481611547324487638107128629378696926080319056377236647266333991621456602557093048152871988923404458717680944809504571582314114674334163648255449633439313570952162238543265039558185095672225155382154420471459714178206513137204946872615581936707089888471587423546230257491807256543027071573422511177801776399288192265660461779286396842507056975471679633714279028409713651960856052133344546134310408817263571719019332957415735656994151728529218654338321734942323024363558446577032966314736228461910037127959848583810188304137531360752733050506446694386017900832233193717418005251292637848349825342969916696496066820309987147517845221257212715558144420012042778059542271220406110815988712342861953806958194110554165606877144872153283937511327180535978860453864518732520234065867459833865421628817210512877444919316172389271305222748324015368133802684238735293819307521241968433535091338654539941154592668751466030539413575060873015588438835546519645792111647402725972530357464470729088929729903707515562714435676677672260104331942703092019115788999436844533599219648528910772517706859321339337193059158515929183392962284313634580938811099662028829443185000387922685283794870954568003770154269370389221493050679749423022750293847603106994558541038783621731931017053197075413626079324353605497814377066376112095722891863273130498638759455185413977444898186198845044554174971547674155780899133220322981746666602670599885453443255447616232105062644283864514534028499098690705890945386621185785715099816502063964354452326836005256067916698084861118713104343062705235074461489891794796794014941641403500162094830367359104376859720533981259751374935788066120463190033884401789033360364537762610648905196873747501921610124001016584789830390082329835463060628863986581443790911889203350918857403470965896376767038186343289252193122647470402230628185537431098782176432067009396587582287972848069135933060200897581633369494355222300371508355986142586460942923397234198350966138550742407837008982012792158661411456153973032960472612037980972304834597129416834289206983012104896769791806753711856286332049565845677646397217035081864670562741661089718734074319613584263605427310419810972650458984513291222847042711540896101831995876164058360149481329128741429357643722113551108854917523924518803508001076545363734224080389595287628502663068745608358221968916531617106959082463912656078417246953016476589220277768194820336708698617386159470085830910030881374683092107933640205548452303683313418829804381380643882635448176133902937034665379562858752942471494143802914009284080603075877713522491502776870540246587965934418492117746075925819542186952210630283760479320066196271769013898471060198766400232990728795562251811276979444326793313642071760595274160251812400416782352547557272547455238428639773058283778432975699685256082602870368990371389499007617674838456239370152439114809529749722936843751160954961949114390963832801981889810230649825055482576386959960340567439889877672729686838344733025794230474750570066987396070311081611929670627099305203171465778547816275438384205873093073449443953127304289268136577937869672386746655273179800274007667704563127603988974133671808708184807612592540478193159171542014322116060794599263871842751121904886002937193928240716573401993780145342294559484934055277766147538582702447605705460072196210965419532512254046085288671463602075054927935059577039624666202042696081671064919748487082655794423602668993386574309319352081110566588160887316895994247394954560325513306249974870470381053199333473745543311230041684726583016602707376022962829763686273261186597330865345793139326948488472703909171875363131604902575821359443283148453686489473903167365596348430174386573596937442938913415737254154062735377373250191630196156729990116974928852699888271339445175717351816875130068157821359601124760012280252817916169404171922148603805860466812081409659950079237435562348491162552062692476331712871290732313367209163556107575310504863592545243413874919585838463887105595934185423087238314526059149453371814618499953249202773642045444494595101224606132269241903931794756772059980914300422305566652621058010233423850631483028757380082592168000995033262093769647778455152923858376168486323003800445682555049521392857931028850112040276926739636103032900290898435081189228376797129135212488329828034509815749373745033758091349063567583974144092474302850869533766060613229208763002645601469416402055160140079440594255583217133040535395343363186514019712006364307404361192841806251836397227408120813959993818449998128902113489056665629031431974035359536784171347014366413193369943861058795546467416440248027291769646467634353658290858601899147281061052780588165498105749240632001794290753375988610153838020428006864235146069866581885526175566818381126312250192381850181453839944575561702004938712516883196021464611757954551887657189194512727332213568665747916834711860970720414036222506101974299154191380025344726959500363212014467816067819534219798135281987729885184114672774788366626124693081995047584755602967554173885516728763107448112185594450951754507849240065536927686995751626788105157195183025823282866021744406536244712298658311196316661472992799930237152937132643328764403358523078340642348213094726295515649072964763232369923125697467257977071278205610131677653090645683954540128596456324225853970371706176335144034709103033165307675566278204326978228733729883715866599419031513487974606763344099909226768404791787197329838747180269362016859174756732026710059789829589711827896928418124879768229263944636199940026968935519260298886123803483561147782408376627593822535340752557666989849974459618373095368753440482778432416544986896523348594313041758851396525034862823207750711956866925044875497972784982991337271869163771618330663306766973092553873420112229146810857755498475184603550208365119628198252004115028654379629337630577754180956540706157139206292888153469262188891103338261791614294872237625899457051335541187669567741432644510587609348332169047204954913150574600939352645742892450161693439658534160680856741719937694987815616113542237809650353082216927273637421899452009709020424223881217462225251728539571464253317380296657494414142532625758202048910924243876660563262251797686723175852895057034075927764154022722496177954580763811418256189184616103670603978349908909491171062869433312625888141354516996747645070766889555003385038006985172115940349549322716076045143602029241088634389154955489702346616775113164480619446744700848138073032953068879937446114228497715803698472812397516293204901239746958064020821689597277830827782263009172815437226143883667544676253184474108420204666900981203629401438110146902654152057831930561263059323157330072907742936959760596900490659888204866260920689690641687633087119263305026280748605493017197167725776228885330691088430165986864934232106927852728024203204176703959572002776654567130161639087640092845591065224610730729472608830524172135125959305952349182261595068161589038986391169556726462427399473225572345582031524417290218845424989893865345389416117852159895155790182611807936932368506327470769196790662689632299058323184267039770106252379885283348217406239727771011210131296403269421199062567422799265446125864059817185568741180877588184390561317372105886869907466944648250935012841363779144631093707880109836658349188073998312874383499385753136673546567573761877577614708207214255112848140611353677053548480867691641330886958970913353802563925574587008922165750381091082142281084547928634695867793678432217145476582496222610629087791605944280943231021930420537386104890626668094721335184916122880510812832464977582186390037589879588866571918821770766531976306617708676459907542920220960021862147243715622804160255504896557274987541198229230096558703911925892998343190528221817177561577201607265517687700226283408067676422347101661360063909157182214352446633445286398285433726975459795416694072044712535100507403171752634970360918414149432185460685416057576149013996106199487672080957620202937006017721578739275359736574999867764211964021991835774067103872944907399861741303695675057832901612450074416264858356401833914466967073211831341639697710693861830754262012249478035664297442126092328353126906584685905182248003001370708136021187995448455242194875418003066665714693191909277538268443844763438093456687999282064799185497295837792942975216359681434668604455727762343366589068350968326764047288449887367447491493358290832256959919602856024227039297977763102460560712524751091373209803072345290723470657257683170048234180336421388726832668683954871490648087957555651456970702657851278721894667414459643258528229468423268486352488668119608818532234089224036508829832065397954976681856021238595476660910409094450993244804025650563687459655366574893992800798218590936565139160457571270549396769852611684949202676435832953618826902550856157917674336994949534034231593593322836135889942765140075207189067048334687319141790100159727783273944951460172370704589475042824736657097073342041320806116390293125435855307293865895660796766893739368052998732434062782048173289240771550512916051947340773056686526348515469789545131265862788754880167281926336054420711585946269790842664485304319351686111912600432849389264652654510712795449649115674865413417394211065251044969933885447507750806594681569485681487576313049456985286234985517089623702384204986897500735322884015005995518040980782094459166636631553121562987906369572354882471018111183589797897455080987234658345049609348830327286134827326750011873938994698292791676795662937239120815387416620542103935914053100882348994048345219444410295636578170794678760566727655851996147333439798901896835187909991124399029571716874119890933371723981288193298212902413389916501342501010260555047040953583959169062558768095040717961322750983046629733650802473187863197066367215136527299922151771455577604227296889802373986625527482518649415254239868031284115460293021492189919264127614852981833500017825350570900767840824778758937634460871931804256810018276289775630761866962094271982757066595850031226898874703997307650620043974459500012566695192965356860373634832216167561161854970120282439608615173759758926596817297805965166004719370883972702272594686109473506049879053241080563400216772679683567123665635222283503477076173415926666000212961117602671824977114729786387663740064200099908339675105173975763037381811554552393803119435464870495579744198170435182184073986933984532239339465452188892655657009947834468602763501556667907928249781892290317040624839572683689097601198263849316395322956341391168423505468016150237025836691918532760507639503240477802087785913091279728586782892876656420337766734208526098932255356748421672651959639315333920728824369990565430342428925500044564488170555054510872724560458458009327368143038712778031284443504074510511030165091679496082021443325633204246482217087664808953814017517616187801963565464431965682643315139339852314512840520051002336461109315553208474251991361486280527505028041624955553412143217113477035163272669513697449811311959296804647363488412415293498379435634208827008111146891949173333630186893432907299113719216464756953596738542184455499309592525412022478876053291599221523908677814910280314152625804690087759433067878573775139812969085873466649056058306345684282509838260290485558510999887706156673964334149909776933644496915359391198912019356388677760292623486157443395419184634248925822862350899958938095638878259975124744171046866632521822195492201818095042384535901972487975387103748607150475703145725036231700787698693051910029016783618025127705136432262664704542735297777106067331868578078763347960142121121455641307056416078723057489704939542662118361707441386647821909541375119227660318939642641270386298104460595109250344507686615746254423188068880207618287031423668818372877077046177028957021426744480993276074078206525080774345034302727996916943293737286096060402660582158374819320757128820905721223278122547779855685437198038198491379763101029165325259938876576287255923202848423857186123570463318066752735778000749888540629078312186797266682471861641420702090118285430943348061476980802927454680622626832913377746808016922614186273764606671591454226743512010448310315016800286035493855373400483236338784472155430456421696555834322960821125327082231261099237096430361264477212129196659523306121676323521401735772037628468901191305756708257909709168014063224018566275076918300241713371928052309400067132618862209949756813330252868674307545271910526906108350883840930043831165781511990573903894833596230939006838790075301028710475927338414324455556116444213525639323108284536149523884397853765373745547384311648568499840166101693972487344990391313305385572254100447945514497879992203012184621454571697449242876845930672677824102264768243416933410148926778177414281488400286120371581185465390112856355742827969807934231824970749906556643168765050379687784978811245619811045904705764572195730321323800157312899445806090970589353231479767164141842779570412475996497155633573362849010899245196068107147319159733866108809121914025466116576211882751416510166336815734664817713027758495274967124311043323374661556489026893554902791533480866996271359064307367521671213803335091817442735036164840327903981319935249678003802198381069331784042604408222199119221975400434279246121288465492255428070934589364514275471708726066852692624446493762686724855947887199549944375284169780691200216763566670113142212661902081256791450346981512219459165817743476787865089572784764644998236276875030434315983597621636619170620591892035333026842853338250271473325266895709354645702534609932418956314609371158593906079844163200738406675003948625521733255029138705236989841526497950421359330872655271829722980893847491263072412576742929255316673591531669436420539448751712702367853449170291499454282868630703002035560724713541580604841150407010097753710386226000065144903307357319876460285964039423858861659427116523163634908169916775271985497283951412498177609550809813575870782630066295435028140437361418369129565523806708918270749935534901073494227608473557505303897159710331638656375542920516031143765427868066789628335611731263158897043341709166256138302794390124368360715893899426476444686946081329145219342160257802824389867767470905901704499530361732009065061382715077149304012696463260768089203847954955331263775308084137754084812081435704648472178340499585996738081519146702695772397396375046041040661260316439525883327484964719263514504957292003986654303535923448178913066537149361131216673520363800717972287703959793994267814710278880644059947542903699075927567255850319331254904960580464214696819405003319295597703010898748695532879839420969223516310237112706218102331169184037279177088937945370674201540694387027484579295217640639675126423816154655860345669505321370087561179893134521890512361920595621846131564488992320184245192758119878448079090254937409470768967110252213499161879901642135219261383421246190403635490411902440372808389319165354796428907428365700288425286719137334963979335146001334403705359738295882225852897452618783763859436454139989011641685360585350891155988652714096153731750071433882386368762525406169213578915421779285419500409845976166636963183732916613084395292576152466527327801448716380369907955725535743048411749982560588213987343882177415520776799456702589207708567154883211676990823538743628034178041748642918987792588304088087524004531935497622894820712698988867790224641485299476262888217461875877043159536943151388287427550826357519440529271722571292086878965904911781932537409288625425799363645099685751581743357312216170622044283424877089785950812812472509356858474432286353900552120606636427689698951718244543037680556467109157341150544141206556009942200980340882035273868056860339209639061977221472551003820413166573122374572455544315196016620014879252040276928881237924440578483413899154762216580391439616674244285223406938380169425502452142339304253434768615295031058663289160424715656033392948855870124948271366713695560014268528451877129323155785708137354308069913510581796250021283717151339802280471152646427448830084274078067268548826857470051043755545812698264351821905023640134481309523545637401110057309609033136694598360365364714666419486961086343994046263735100614481747177743841657973291105285413835261214803584103924409104354844507759699999602690174899353819009391017515622442727177738183806353327907575525063720599164605811025261513479119162973018293989125282811874022539732337660246530972424612279340005416211645681626209107586481670863821311162050902168777505941356407529201906547802428927784712509948898502289563698807528638657376170692048053526363904427607283322231246998859474547096175433759528158333177446453607411634436659429733651662931266933148526744399986427198976050449546795218533582388212469892744513123470846763602631319840068571817169065186166315560197463912216874020178491047933411899190129966909689875428134031823767078682524504828406168260351098425079920038091828246034842739017663459425941462929730780890012930836705603566964011651561164480769982172320206543349614334166917306148185690844233708123954080910516960545677107425710309571084031356672603776163248729284003491445311621201671713747916250910733268502045264521484383870038597659491519409893772064962804699110465229088989922084105485339596609612556250503322313080797575918307519078217086242453829200116903510749472713270238796021846928709916099863091385775782305837930539854859008421923688906029487074037994298988903212627355656702280359227923113340363382800187884333197842185726853966554887926879543171611011146154580199376096830596638917863507685970215457899583648262208408908401648950858799190146676427717443777739227126732866818604302043031850485214095156500898335627554922201708614368887481967459371732508204594772809891231526211114171774710499564631404651880948746987569317490953230534497720264766399233503787182369722585747514605061443459058336600344295739039575504757772439057014229616181702891523909436111234945635145425318943111153062921674747962374224365818044751138775109388482483503339283074383010610174546397082440078678279971465406133375178830035407202222406018463540099781555696423464437127533174227181908924989606222341003517111417989476769392680278685350722246689975684019739645747267012878761172436889009671371051284015242925776942446965090519826498883536971696986365858956427767707607200178753227248934076235249776360159761871983372849685476634681553718377848999540522041028588170156922623278381774184456488353885920695035085755636359486842768745125580898165489621625627594786448802871480783464822063174455790211719824907853927012506486289081907039048496254703961767374235218783089255013390162917220381074134645778232066893586762684541063362276381797176005359677916469977328064974619475717708742611620587686331145036662140278350024202252062262249552554771403660442359030720242170633985512619322509801303801712251772574149050257929712503949040680695197796665700627270307050024416880205278209777929673399831912233737891854695932979120056168095108274246862753006302536464265271839212158293720235378805607578460535115755788722390045170227631150393429502692693625456215070642466347892494837475106947553599766156196973302830303335139117295098902738680721312710154093822231823672174028139635288405011812788506669679146940934300737473224947952838918517192309968154153393422489773532589869471941008164238954161538661649342255017527913218497065823556353754295382793197907597206628734375257148964693030240454684815045478189873370490312546263051854381420698980610836885596438850710117655213288945059721703867936300579783090109971880829482007540561457963908144440956454290620909404233674902934836073665809223689235619243808945128086165093957911290434279846620215491943442288325317413028923458333289936526079901186634386405962627211748718305269529582846328147845595233952803192992034682510175505198196126135468452329133076395624872905101652158908544146656771906602634944185008328907137668517854531568714931929037817923279099392093392402264164382655097082423063861907983632693084782030147921133474578835369410668467742680193688857037584224637813626322014389585957523715611652753481064967775843883033750114317348804132565583258820890063186199254608956308726628399809575908781507293190425133488080787888665796338850715428873798561753012732910301212442762300594793681740322650378039090662746850539773357164094793690163834845430862960793866971184118237463834286886927556616909011373548672330450123780246285806034586760210178963179131177761367942603037174813271064151309701121646992222836777461477152617163831331891394656518170672826588972822367868455768013153152442372888560888421846982606196993430179163261575641989276683020393352492563412145652721336345654745628279156305740178551694928398378370818678169749027236317268229166931170322161324814775786659766697809774640795206083321218142412761581335661534574548006832305957846275726515972519116778730359020083535187282918585196977753557132213048257755801263402897005772602785771479038393634968378770885977814397841680617911068120968019839644670485024471155741837800377660488933888059895212320622899848965101889344738857268684743622744036114644158968708701884627381303810795599913552320157403466355114430188099771846199911305479480248992508863844100338931981153157725959186346758668095227901274264517694190845730913279143355297134649090268686749563746951274128889324376829900219609821683349512024949035612963171008033322351621741440166929372945275107997496074774601954330345746545194160955429040709803120946978054136324467704892810475600134829429168578339816445663491849458682409561686905733534175180447407861934665056447437599113056763204884727932850995528221861850615712693529215341480728031036690702711434535036251630343149443884778786989253597659624520834469282206410947881105380579887690984447671359814950803307775270847896639089737508548356751900626303476773099288151433182930437607295090429285789539936247141767005586712884905150330522500124298348478321819812563410708139744300190220727997812774045109470028453432011032068574769179080630345092684318750692654721215163106672085297082697033779638363575226998372290841429826687721473585416194387562525347797630434318542997657594790356088460365803167219225760175681361148727174667388134536117683751437727590578421542441314956982043008308495596394318477463938827446903431723348206164711141950288195918172535527150401582049161628691566750743515461316336260414010504337161672774764179349511499034343660742185706355657767633570852524798741261076443813679258183578423259813192973881251237018571369429119884274573991727664183471153046917030358943644230777456039494242780297344780821502865624294345282229867791145398277908055730908130672454889982977896824102473851779676743660943921954557289239229966713145269186307335647921059905806884542468611045948026051030870608682942700281433931260221151288423519739850513268016555121598339874045689919812708112102903527855014149064479731735653533776077628121789398268595191185931196670304156798087809495087940137681334702172489903292120457497208838223794704568548987820529138277781537284087467496486042486155229352288302985498219916713235342696128409294681987096178822842138288332559083378213794615263501175000309046999823493502543921688766495356103212936786513578308652924980241942560735308970223354224373840896171767197563170791809083117263338440026332101695115972863145698185954040465730567746342740186082211532416246828266627885740604543616347196073284564666777870233229605247524506010632186788904644765824380338786125478406214962709429023039654988601364371596109134656516969258548107131810285313978965938563835460923979873671009059691685315567619309851533133007792427784787544958109835663918240637973106548788968328917940774631657664741881225112556774645058827240701365038623169357148169186598820654231800394927013267948931714493642191635525859681524004739014915239281034333922671991458609137406040523466041995990034602948315187996696949401040971161840450776057250141497791735368155385264800531553468730102289237377698070987391497941105532579074410186439619819217942844793583918138331112686308870369209179792342616684387350484900771465830007942428155573648111713186276494280294020307195324936032470799508602629458256995300103066050009321899050225646998563859389286986010431088914828796844128635440016590790420621289767318499439828846084858019830321022426529337832178928718257995451569055638618978020233055491239242122448168536769689177492715764448263269497437613674143309631128304138268102259647789861884763189812658802501988781804203444214690620770537721873351165986382795238563268305218300540184440236910796247773664948484365283037075707336586958641830139592633296260702646891232376622997164358969579057789297720999059351383150976525662093031668318281594734221650203909880204190340309765371273296299919829869315161799706237785029584367810917154535224680333018395299228442468193491388456203895532109527604344994308564171875968696415053893180384195508431856155079359793582234702583628226096233669956239835011714228454517047258951415579946047674196497542438620899656260509311365169420765386500891068992700887113209137537542027618771226144457475135739178617770898722768695766715228186941885708806216915315164530860246159311382549040049537990530363802386101965730052535497909975461325631155756750456277142170472171475697097560556177048185219818800072636258759683387889201734306984260386632201766317454068047589673330059324330131571855496223447168237374392790195976739802969927188197969237938203363310249199143794807147480196852712747896552400514631540637534995841694336709188138579939178431317511061314621987056573342680382203557227199968773128293820645045278650100655871223363623649762489588170511164103525911775323292013113285278882578707779411422877219899182554185171625293931518968204378940781282637856961032357986175597769342820715590727606057453081096073541707313110614643740876229448124591831870074230449472672567113725061827151296555068618348323245741264705515243717604677300671470134729174423565416055236462547452435679822616506868447620362228323087074648041659405066456029676419578094014948334449910747218289368493810612990236844316330097927562319027479715586193551865170767178837346666716197832952336889056555193149623173468151933581246211765846330287513947357141121074031460464930273721035627850368663139162313503295120490304410025229697551105470346631609219479763271703459134514234291929534524743415208074269040176717141190308646995221245602935078451461765688055975647853403396999019053884887404262584866623827488249244275060010499187354779759095910879536093903481986819605783099788523422447511854531911678373533806366822827297375389880302582966273111451701012759782642298265232776692420818882804998976010227288695500862460471800117814728567203945298011235226025291978079219488072675058735106158272412700413087956619530857131142816548673480395835781803133056892848319597374687245344087830410079028588023726700149725556915214997897693767215690578533724192284112704061333860764883863805438748078754724939620465646987285510155403158955104620140825661404262016219252545370256529680070063881695465774486633507497812091665226188167945279706574144991176593504938129673307537889846722010217294113826415540504165158856927062431816311996752171649981289749849381046046341283252521763942907108020150884828087094924029850943869696963328298409097936162359924344042414668067809723310654264470185506297311007843233291686075820086247252270386543864967294550478189752567101449030497112712907775756280665320828155835745240620519719376545089930430754755445034899209036284013228454512016354901527281648272527602067005555364392361059121219007688689390683166267779913562545926933246689445546330166147221346626066589458201542560698102945576259910413738427219380239210014132209014221957977368287398419645963406874712116299898481677709610381351826714488998327831825349973413418341406098174989692169367266127260158745035596767096974914819587552562141027966082295878904137693315679103634667068028636088114385074386105061399001072868465665963022875335173135682206248383685336968394907076988395551725676860189826259303413614728736584194436570194849768584525625676943755715790159888703049677672673833211798583178976758432858523455592640707345786859185553712869572421524913795668722252766763004961101301795390051806504645895201083819615683717574144248523635643610830615323529501093495207915367988080691161193500435284826836321680405837992288920890692065607684719358305113303689413499535457939297569008621047219737634421971813293305629196317044789947500868355476774805335000569839257808990732017218816509731070067321745504856048351391779238902739245692568077835928132828960179246435227708751241706045192635049154587444644006565452849133426110171373168839028182597866484738805245909979228630833289398207710128397920113763829410738654863737780494037740910875635192373736888767548263330336772898522287108589961470892684117902250590591728533214763020753580754376921550899170711600823779741585875398945519862033447922127928183480493026167631921181495620540538079557824296207210953827884779440766252033300393696397733067005263797139654349631148701573237113584850388467341672955695262021904164721507348895178434238514016176336554301871892210430440821158710992057790754834607424661631970363545191546348597233210666780991335836801245989232731505092786867259315008403767344298212509405119990601692702916479950541128624839433355003762798654928909932412921321056654634034295774641858552542209724982777370069994792452879433079858973763349083902569793264760520413449358281798972626851082592398547527871269967590894391498502000969963591894427252211623227090786013862546031290453624887731476369134484863550780306547619521103467594248855560618867925601580942352331596677482407759384424790776484496251261168429769943322024394027529455099277045178062210581919032755780361422649164763673234535969065422516365533588890404785198528315686569196866435131213910801105359937053858951683221544742640443900533697187016426344129955352763529279421023140745099577668482424674011406772492020474757786201730587958488498518085268096750012437078685987509452629687952151661792731503423390573050145841727745088863741557261104734814140316329815465905287730391837562293461513425327864548424154385425384827145071626115020983527092196246197162329570112058541195078795399393276063763445251257462872971235955341882432214905258957581441237326634239928135576768884033876304692172716398012923642030121481954978996537558999862501517077811965871356008197675237250588697642757303422151239598459011544879873720720691785844973841689835907008626193596363095280693430010697977108058157658619430150441502659263914509952834910269232854463911336063523530808403745342994143779046784116696633765406877607175667403723893048633967368091921354938837946809378081577297796878662794786568693019284651704250841143242179398834569066432830195953771928838743708707350989550557393238401549292211824459879188120039723973116114497776210464046809159903292999328786722270295605974326455019506032573344770999338178541308512771927638942899510147142864684629556156077967537139373652550944366129741012633670429300215295213927543616143188340984973418912821965104935005386077953423271857147191327086840483885186000059697339304353788788182192222701750916553849941890156219541766296028202707463947767801480260035982322451337917739891782814995237988893331165642075842204221805617060560604320453475672717931859927552678709851554498216809164177007432415570437718641924196420858967566077130543427280108311668066975987523686294319609100812524966449643111550550244554401979782390442106364344387663827064364997808022790877004174057624945919619952680660355337292272821630885223938032794249438485960936952279808202012730815013466296649911020681721642750424567935042715331811396115745600894892646328887841111010537578201739862678212633913512370586434019532443109307012127100231083043735869340402884794571665472528014492006131096415989784738781654508048586568455756669636436281760802403101814750272361744182458463760983365417910856390610867180379136935378974394821397153620977611352599984364878647485781898042614503968052001133442534759334394117748430244840049912773826353930342080602086187349086069470159220515676725630672062572828794685192112748193448558863345908547238577328169398202311607488696868718708381110498077918644894694268397742955073133452315017575377368258352710973794937332066155126574326274197272710096907620478760859602523439566349426771878863078538380787076116384498322199801414839903628309763788560645629025476291123111121394965443858427440427665276735661014686596340052063736137662538154371800060888240138370593529148763415403042233043190182799694384474087391709074997538083101175557378722763714618826192721242114753264825447982659220833727285960578297890732932924462269265815098490083827701118493843058730818992974767074484067419608713805709440514522850267490736143603015144192860399684498154423711443981063443270126750613687213891860198141749323612167207922548682370019422702547227058554988912825715254701663672553594115091139406412812432532936617569317571729590310977921749649689257643006863220877631473294014001485796050687311337672697156764600685689020668911134623246754458987693155085822618202747475578522787028791719482377677761084499163973539661747783172624316572699125467528866076411553383795514624449475502548918098467595164223378566482517044753666981412925935195652659774207244883169692423915821717604877024212890120117365359915088193694837615917317668471159943346748519420542543958927396127721599308825249560331621954674008249450175103406425690445383044447127784042215379088500633307377404370633673893346815529443891878087119830264459668113823292559917520484236401860804001071156251466258224948122496626542267629465722883505980460433215772096896895744261862022901868165175110612423163639104446440193736989042256368502681340443848908708628943760583550818530995016413299437282627217004193277848439594108523195433424855786191611931819757249625994200534730331118104049935078526336319932276415248780530764760411292557874018366574788956417407612998165432281855708052214636374856194072183806353332225310925819164092810151624243119842090588875055564106301240765381036967274706268430252736648624781986999087927564837640035038232585048230915882099098625664178922837406601550349039454708681869038285586267686235645670873571150134582846110280138067837504346212699876455664741362022746548706862913245053071111946621192470401282710121477035661152420821224142783722720538366467897608300293152787063699757850836094504825185676274633708937511797046383266397640035482001536268236554850243802616390187678803778717339021050150241657682445039780805116915405124643257607456052603162499195898882481910995841777173966407992792120888352569320494151453885227005283255779864768727434981895210767772572518465271490267854889279848430900055568021747746433949442766950248015533041756576014026896886704183418287645456917229487884132774190128937120252073059088795614467356673291047812442161541939045175755710059131512091276682468547130806290729634429697100662575617476987751800376104213727855243935823732104019629232331769223265168715762095458358388112265726434222901984740348798438862978439026201440784123510483691902365850694398562381182855432060217668847053756739828325301156670925904235112634448985538351949555770384208065326907309445143510873078768811347971832939152443096643073323454781812215179687243009987341549308296501723432371038420452482803092541099197124261797988975224378985339142890899023350410731931601549352863047291552858412543810853365764823378726261707280522817333146817264996330275788262482925874341040910852194527979205344578309833891576748672857836857836688911915477527111824509571038669081737074419861203179715348995225026494661388617554208294928479819811745043814679189631239819564928036401363967656333765244918122737418524201519632428419971726207582324278482002136801054573791123293718847035533326230552622414136600521442882425888330666807006504014664355615468882859408969250718763495530561888109337522833888312868382476644750678028598188799916385511573944247157490793198149043445980917091066543378306879178789020277161016694444398315489569821679127390217107340802184648627128125852420262822686660271444800063621359549981730410004439073102949196337065616857917483775715953108737147337482003136809529707377040405725096424718465182542873627684072075501489360724169661666250571136176273905250488853508245926485059836640291720932478704418720254740843753485662236167460131330666531803728816449907310225679438352466594326952825641248411927510503424636262518390046247677025177351986830561625270107772730228718168961102264686365577299954595467106039093192824752749668128323008169235053069321935518491162660737439405156962872276747677739205966320960795472996522054495758880821970265284166486880408576270337895654257101039339642722721813062808108042415136606907714632533731589531051866418310548863589522024738237835748682032768377438520128038133159943205181308205601836749457974250015408811889268805727365000706042464495568277740262084621172313701271373129244715110769022831143170433288688021658701404444664617911115215732529074144040175770278196248717967910837891505228220887846048791579740807854184285260134292977867999216974224499002002570543327452638055411963367868199753080155487890826957560918864867448178177617009173286012514967413583766423988561953051493300472397206802839644659305003073644124969934124912899147067365611874703053515290416298861282069987247685732668730746234491874535064640831499315674115987711314036364469322538824502393016370098811787620184500860767301106678125450920002815879417984920896021212176035807646131003124380135577138953654525240682313961190069801548923419172507824417211372879981208434656410700184670947555435916395486010839618722551144134029129297731469549221417193925379265155480607421712852143747801488023773911869138630182382296637205339114290374029843075546658812808653404459175399020524724319214387115182938851125145118939973558700001464230136656058913879674928768955393101146887828372731106961180714600921399510581454654636241594182965164545748293288043060731821091924242651586056190030720151595705186476465753440392499225285829149366961487397768905177268926976844007686655488906910887201240121314501742552733627175805599925247947329354438627940115144207566557736109779997000577735291674444458166551644980128513840015984284311806624072131033719723839736156936730560842386012417772570874328231701965193105397231961665420417969559754547284174616277616733913268385246026518176315132160505757509992078772049584118783400004354043133964957888474051358219640760548711672660541244090175645621287140014989354657123769790907722218399901354392588324877437942821369956653039024662166765041570465294710994414716771035783009360179198145538467682687308458561702846102754672762847410782920681331689045074151164550835784362949659202547540838466528684500422529113376762901842471256977126056018790478626016175070964321348068448677655240683668623856689823128995009715480992862274381286677117100855497840619918486243589838795540699564672981397573577084459243393804878098216604367164690261444265071596832735662638345229568524157052826976285998606858375413147840811314515752097853649384556865063532893726464153805373372852841180646762575165187906359636496272831533738110563640889665700842748803350719533070365411039317987842808252278506638377213222600777904243922417746504092219445257973781368433907133230447591611326768495145841037670297061414427134903280322708698030074245211255196511411207044539916806898865371997281198253036660202292573231065978895843615023064320188683338362859213198790402247256940844669282056565610818540061333658497974810233911485800479841696917271312073818221867713359307117697781846247109148515190530721240223895550804634652306110418086576391459908316924493799067265806599985993593417524629738878830342097390392705230480187031451817852997538098370750669615611906750831895636843044031942607328181911524772464132255595835583863468586765442075799206402804652332584959691779710257669758792136470362079015652112487899762879415932428815092190897222473975062654082389897160069067419615763301532238108151224368315813858283712286511450467763349862415448874043362567533493223987646202896666223776384561485786142393754997739312957165897442338560148147542303671869735312672069021293293273053854428909109636810520627597995773066065785880653378108055448358565996734444730599312316934635676134779375321537143434685958024039399733065335082899863884871736335658800825588527299045269470953677870246727274178599017394042740397338595265093877046569320751794683977932493498127369087127533711503647121500121861071220136444537943920479632163293753177919910051770085665375916349822010793624816235156637303800449306330904987163002101489955536791064182521337483123672801015330810537631538916310316050005753384800096729042412893018269348190240898519256061561726998930751435835657015226774352285595333630381680038043541835292779568990743850896898852053437005979286091719220247763481111659669458177569153921101330371661057313599759268317542018289327564089886628601691816436832095877437095781228428459524219468507217497066782757975552980380769817207909842699691561476000412434744850515930652549816249604882982098259553843399753107666937798836135271370867464497359148318438057247023805847792940351808178676517780724209651388052849988356275435906952639412950168772806706033702649883654937010144503111412084222737188300570286653727586806531699352163304796539315252615452580771823584564065966240843193513507632247126691728175017723505327610170936858913464347090293166924278218385744805367385088828605467704084618325937622256215742564075857948282598377324657672322323732750850593086560100532721294605950860216693463391314056944169805847346715483782114519861293762599239040615167130957303828796226358564735225394522910374983923995812728542008669726248329012908970743675378135599659397993035446860695390803936030141169760661824118314617343018070325050295971333679003385924104985096893914366419942250707619468066702354720352437145342513130118537706457821484896543978934876793571410170847430966601261860451825799914955291857540280711281392386055474247617779791419053752761626439260680134495604449465042396961949389084354809655710631093385962307646118487102252636724218432847190722405497928023599791955846656495314292091090521934606890818786072022751539163863807549767545008197125214567624108037255177175535959530887211577393216251272297876126977786091577313511524813623675367738022925581497917012196441043182946890716293372666443922116403832427754699212691216732447557038386652817806148929605378085461393680910040541255385754199658892985802372600706832242805525255900679923450066979008964837115827764163522761853934684451972137124207039475589707780684133349711390829823612926991011252900381260414400656594451454665717553918699221355313218516461962523413436202560626062034861910562507737809760267921583171503050773561755653491953525854317411491272547340389174013318896311450359627020925656811948814585815190442912839194583098497624017831708056985375701226945758430569209566775654358571107879592459008793018331920621715470987994096468820417167477980877583865728863854828175545536149515028684116384174722119021343937069848767190892570743332822766591331103828678924068926283377534001077677254883028492961743037557979554459145633947766282414489867501035769243416826220353282711947992826484265416947190446498332999575367354799383047448073663354356130759184873562468450461237411044879242870384971347314902190401019914607697993603460322507365023551576981380395208760360464810470375292710685593197679536073049769528547155799344526895200144246802586310744534246396130571916015200032336727236186965201145545489860123503499510609460317996245518720853417120378057976273849309632812757764423356667393420185882705567363143362778425521734998588303765194633056542124285923593130269770028142059954739774301882141372633563646313681774416121699467489744066972157553013773794384827420409111046340770070145834602215814097203911144924127226730738211521642881264438214768758209613924007577810512051504570719290849144171855417875675828473352152794181778596649074085828562027620346756929784546762290267769516227816868623766222093058843755674868156517677669724792194413864319886130075931645338356636245548039961011476495180068135966099704644118079153697178330857580492404310615661314172133081629087003142938472103866303694553076952343415806551474017915264526700064719017520443152499592572225601627261190654254201648151054571086638663144142422297885630454764039613244839235441534615770329024482275392823092666291201792661495111722403784915966909292819353744668145130819277606584063483217294250517481847105428447302362954827227588729355776861053748906854308689461490551048820297145628862982173719814241188667120625018206794108407224915451609561277397966000879128834185904470003925814611591703507859855463101702540302761276661912732665733201584318684868409370347413518629526977124357072202732810745616473906594507348703794871809902482679840718280202232147347094275332999602497335293833825365894100377275722652267869636806593696869943827743683386910001477798562581211342163549326267956942732059515151142275790831693524579263284786853308910411934123273091510673750392938373071020173613768748799871714020131778895116610140984189913316803492542021573304581266518827973465339406365917674389554590401438376453264895731005625592793491623981646708527657030464888023729264387436355161944213802042333960941919991512707231095546461150671150165756332558697941165737044346430188867426677689490062429079459884113587422183316575096807810321294839926588622993635850999888487723964545648869738343879741707377686095786694490714285023146210407905829756264681285356455533902302011486212672328505429017245770468896435222820156516164170132933259191929698388335176578944996678981829619399187524520383383719054663673599165804543421828563008354079138928372224776459164409746950097809021654991767732966328709315414405118918536104559728477993050989774649209983980725121008154455340775823705489093847673823963515021088076522043806012863437324550339272999984895009343618002520306153736541552083463994740622695441113276017657168057962567302021963937495220129124351469312957993528495706103615612495612761170067154836459368066687281344035900077000577148377846611632270622451092756605103630634729200413258930448190549292804362849478904290198637811315516175878213245826316126763290716816434010821076731827194079140820458026741281401150344679784893216540191841072828175795279473543422306273800492659431498339365855257883369179389991692630276314683662108078255414073615058546482163277653248632479723790010775603161518558584188092959293162538563570262150035279721355068843407298497428094906238585880766448277536047231963965841957884905819703319477253137956064175755255932569169559060540200173881136848623038790218806289606671441349444216866705976376473085516466653859067686651653104243107241443670180900930978657392784575374123139659571144480542254378086834745514482006236344824470963637632258949688594228935929871001036999186505161432584650808014461843213494167858418424585093568755987830412090472845530518362519785481711685325691591049589502473323056210868881353290949432628543118577016642034004061161139251266474181343644207058290665544512641112452274753917484288360394870499357530243141434879444965933783803826442848948812935187255030614990459095448452629202160733498339775377850385226915730152715598804721082375818736427004121547874930286029274806796601127153899278812101481562060433382203233186845327075246522443325732170879297153908821688804016960680334567013489126511826065666066879343964573334025821547185729797424453813063222822132495178665028442920441064883938050539594938709726233012215372188998699798390015634050363947211371539587611790778305235289588187412768566600876413131953427548801224313046801556986484273324349122632808738501153192445666272086675843505253904727700346814048434319956133251421554909150983996730843009313729514098121537358100624208629233730443981788334964198638172804176879465785039826119879679516593275294351382641897705009647349941751745421942669695742490363704236532066211617095571559294172162934094286002288714486398633413177915183546788262998647847679975525568038701688879790014073755484942761509836192210743339769258723564224302548299976588410190461383227187814739290688237138914289635104503777848770976109855773472212475672826288108630837737560365262045084138506660798776263455164294452643075403154734378001847919020709539583279184093075640859083558452363632995838234617004637522488357057815809837541300704463321733491651288843503078002081441488988666724944551861188782754691861281290266070171973995139787182323029838912338730900714493369189383181386777801304791923772865895406809232810369745588546037281322032230241253271446457098873355561711725890092647828243237752984978223554247376115890056395938505967985383364372405524220674298038594121301956129885830788544389260448700628248823470078762630619036036257306502126591978639132959538494166876678041998348041403244894077148415126625576118176785852492030736697665526489628346783779995847460117728733300693646119035920021926654866865421630852155167976143040950455052599041908825985288374940305339413597629855914539619230326142601054439135131151179868584270097368270287939009626812383797207634385381929362724467893444223450324703438173525402246840609723122909237673979848807715989724435349745106202490458688518150002516272629418008050031436501851667826935014466531984552830708433568965894160888810101228408811402700586335558762252973084650056347431598600638240454459658045392039374477046525068867744204096068355634601580693882285413385968836570549513851411217717949482069116052444080170849597147509256609925549638148911771650995894768668365798300020205615320138428393163855959411898858313971140759909892276422564240940333654033501316573257226915906425108388622941803730790124964132058627429239574980490923082219876935262359236122559042230385571053555497687005865191457409867977386390621749271823400659531597177004745771061204391959722799254612885851588804087513493274959682337454430769616905768919758123384193239696176523423907771160246143419774176791555233834032672646006366215700628021019592475878935425830229125832010030471762555301144454313915180374688541737504443673300048675866491123680282789242424501715663533510596056454467105938250474398803036897554426607516372833220810885121087309580289831217496668617477129659791137988576806463720822516968309402014416967551576261798402356705744555366554335147490185296207972656403462854454040898061091989020084831256001764448202867035156038397993368060570252271289271770329560896319719270085103580442776771760858120401063547169872022583350476756829109993705049277063245901019906164996910491433711769412474656963323927480544302357653923055257250543035667710614393601986880217837587738219934549709504761398272909014615882839852814581001613129595182049089785696900335604801107655484306236230600834117206235913072679476347357862865170801601875735656466156155254204819870488558793788816522083801208986619895354730621707892446638548208630706503035958281338505442698178507405107641859328484121965346617896942716634171632333771740555357572279573915995014135111569464271260290297281416152748345109132720829619393017231760423343985724003171296161813123916105780355311582624743035129543109310903695427984473249534608693664311518266024481598118932804779862222636481403572400800792760087155326040730755832929479247315975186764954523787936882111123772571707924776236491521166912838555484887455168599992147820934048612719978318508239125961609195526890949008888079947203246172611463174465393768674453985972948586790784156614629612210021337333107026510690070304732262636857489955922675833240021295360403509475938734302562693012366714480831682117679139057159441779212048544960253059377191678135035112109591480774442767730617884440606783984578336678137044568035614646930868979056050518332112981019463265244349192415010477518468375612722994565521135727463394558086892525468788497505635325302465550326438716020601584908649019469671031899592313413670659607137041530491383221920566203925864450234106558681066071309520309151808321360293199225125912129914146333740707346955797569867770946967840670928117471275183928649774710625766368289092794875723574007208595835398533551096630149477917777293950713927016014484043402907661277158370227069581760464958952879090912244888198042260667204689028447719658516515150961321777901003370881698749332010400582873805040501260790164468127675813995847295523770238429983343616835330688799192659776827919782188940308332576291215119518341081262525146918658611502163010613441097657968880481969294394521739416115516207411777097450724905660971200473968151323661270828113048645733036186225086603251852313359271847731839154996451190073138575223766856735573325589210532195642884728221865091065427838487150128953200044330985080069387467303402736387717734366642051124503386108382765250090587412080558966039787428165065308512454868471800867308870755698629440769697007495412473709535572054314470385623916495378055533549524874810941523414722317874153053922526364711574405444499199005253777138191430202340850003800084557663484401534335049325973577713565297404426296377968504637167924326264421191795599615289085532802173343614241663316110645264718838543318698133999762789116241504567419212321080728053841977661997382294474332332086353048362932533606677152219271317494374718225329404769281933374580858196801692117556873201300574329889659264628221252039224572619375506784066306054632731871124470801986956414689087229192468465683751728321551180331100244913876160361366851484837486335997837868976081102997145975295138952685009200765934353720907392342961407794602003416585768948462516604398319303708482928506470761763979758566408607195537808541697791762144423920931532182561748508064705635848133604870276079569484286025759472156943953971920923637836181413098143302023523702287895337916128237792047864307518869639743766333944689152455606607434079821619664626392086661594957494000575645762901178685319896804104571785905945396481416732194957267284989767029372858702849513482597594746015310898975803785378336973471076816980821563269596236843295380721429662417077872089723561976123629800613905204375757623095143673186330980489994529044787463952921196837681622099774035927523468293813798596583930937261516845683419227894013088530093179507505938956845634554528548191133258137147716587963427040632784288819912624215530773855320688774219122416807576952443048473380223956173205126529660543744900822985978690621227508197818179002922255928605810755650549697010899874060169868720401821526934635852779181588846665126027699798161268601403116957790397309148891707648829551625852760169130427692075745184801802108389943751471027294858589451662696167846580548147395223216979631476310261510783140659260776328719072481752221367723978448174750824730780478566099167440265044302597173139084542298311779711963780749717049883357400589929094544438497355325683769854930599367237690522277847364718776441750958023702471562804297412950732964105894596130420901029155407113348511286962736038741117247231516860335470101546573583253836518530625272730526550830190408693861999785793076324766378276498377373257871085054652529833729197431242181443008592881642414560340289000556610436700737864159688297753878602865264139910323545431973181605167771721645700757024467074938300423278299720679193973105844571155795261001424552430118540657625181521480247637891278107600053113559174652985549277375453175168590538174537975141707629238385032535121560341258618719679659224380274560240616313764432241664637678131248746044290065533231149812841678892037162303207363456021439772405252434847620985605817927730743640254895250126272356069298393594057913532241504768112059934350163670390444468378006115922093752152591145900920663807094769521669374798467503020041722590922590343549432740900942007141016652035947841342134394601522956588094746306728556901651169891493322764228481919682729826306707792567567873383106875331643051068805020174998257341262000167956695400956850776743431872544123765773185570460741416178737057637395443968786484382796098111566721939837309783147736615123032402658237497488116259418752583648116556214792302861911772576914700787411874808930386061709754529795754685177389471312781542374527518821649550907590276067167155874125618782189441662924548859253339505720478812799003928235782262462883421166700233248987673076962699157053783913740655795455860863593008033524440851349017339623250908814633589811607300180850659163099551054864492097508246356643342019685072190046350511207880779240914565094355749087925305258940520887268053311422887947433778828899559863480372475892231455100261376810655238915102626624971376603651779634791688061782951291377879961728302822031608581417417729955611154183496809937100209844807967466741467729739827159186670319001601844199564956757439056685101044502191302671522349293605054302635453559290677921293094704209162072373563950279922879683286356062970582344095940712779350929775359176354305155334780494725919218312602293935656590589205805455782908483818053493400193010944840224127619157238536380126017405558907565851514277332354615468300287730055044802573546404016646441247027223675060258538192002695346968168614348135291502496131895071229810243871196602374599378585821919161369203278927127925688866866645623230197481819707636382356541691322526481702683088863648440255991019163696683933299568607259508707356942098377353182952426139152770321478466389373195404412968789782560871098740986278693284330326342658122979191164205137603750090811153555848298725253708843972361802411783111206544546767095043296441318093488759246086526540295386586107158003215615201149863253215193221073398708075127997573288877613428151835156541345618736376084108403039648656097701661381257158359479858999493797514568416731127934676132419214306137581784889834641956535989869405178425466951827578174242352252980910622852655606119406390983588092638002118605083775864261925058789867911371525037780454991539123144224393425828986792367384275656008185841182996019464509721523973755640372846306380815959978332425558815336555295772901080182056519631506447739855072115590923665217655434463235316859307164776398083043633398268801579336638599013016102637119477362511042207104628929309042190708268470941782103864646734894793543663695783241375118518558222915956427539480969249173298501158543870434454837201521166313493662827616853429191267120393133806807624171790493933577291708415388581026150347534670596479552716361895772047313649051760864462657529992181994855058659507665294427918509260591162537288646114072092272533128830329837079260869810448520132382463935189543241390684311288611288319272640656193085983476569085451891734388057072271227341067269350478003725033693262018472896718088658171996871099798548104276894610624418132342004362366055557672204954912045674647821489850363674656051794296639370242108772229433661212354295388278743532015535704421610332893700418346764061763793222126534881742184293360848050764851513978353508619266029818422948264281114013502886618996313191334133856194735327056405802358172379643531016415592431478423574810962793875035203501145158326835836970023764221992872275948921008915315492782581399455938482718323051145452440236371981780666252484116999486100960417368528794124598241637039720877013654603416918191233389102517081935100449773932273594294429726820305557290103403259088206501002204438968121166625337948157394815699739546966433148955242247353008577980619133165578702371995321204723593652197697620802590698930412586450883067214844714598034282488970982900252696141000614978602748835784393237987773245010483886206493738332599568606146913860923270635249089586494355509438343336569803860663015000872988667516116449114466563642572707261047232769967146159636013505999160911815664603341571310667118290618515282326921104830242060450943627842602528470319390407455942053677444323935554593460275810326923360471643987992863752244628958673178612048384844110084694472108028885521071802352439521053006208403423545498409402564635937401225341208753357264755794985917030717829230841526612929998884098312318671677717856522413474399037336964320519935002535328984084846576966532033826433991434815202745017421815162419967140952126527734173268494812479829293481972997124539078977056261250337114592440900237903776201048225807519651157082190282181283054289608429026757418025121937107222717047924999688708937702903771588456880392246779142164059502243373277001530718263956921229893053653249835227638003212419510352840544993210650712919424005175404711161912847305731713625841088561210367248127759447749645396854316654211342124845727015617028235372771421635958511662560723803139902261465950603462952198908281781462968144019213988537685787294756840482123017699989301549595060098051021317085297968520273211624086842227502141713232315033811954006624695532441669261442567690060171432677995677514755649461937036632331846967630744296214713475142543025654244552072940729330535650547600435892915087932829389619481232075330601152757844465937639717263351807344181312638275161587366671730903843690936499993788265601378489260014743106503346160340976170073837804040431561821909883009495074329933937654881753709889677065755323102659254669390088216007152034373069704944706586428721244436669329324462610754924558591864591333655404420821690179604057104985568580101826485481565020331977987717435770762633115981113930085605771858077414408012185503662944872449440479937771163388187710963722057753988713881394419977801796361795180920976479135246088746537977545749334246164246071411635329160446681741653561560295622407231144164408593817664468977410429551071818547094747832433944764647285816100731350859215555581909260226456195174477108750397048292774472491480345971243782440206226792550549568054844549300686077600499022503014254557715434213132410965556447962031511249228192161256419937150748201908443724705186366058741020562135499616696902979101547808457904301293867640073835123131398439249987458538517401163570354228984609725461349188979676240909035773962064295698282492778782839327180971531469138877229623575184474924737030663897044172963791360019061714415546639737285688219231364684586743379030153401733135144759255026741772401270819427655371639299485130807903141971961331022850130020618741611552118780066982746202315470371686267459273991653754244205926136127369564460422301809849674682479885926717727048284448077998854163408195287377884329460065243170494922129926674303983919027547002568112969229668691090272196179639365532795395685878910817051800366284290988585855168988195265039436022145764867299612117890996900821164559720899931694340184978790051492115612556262219315409540855883437533697469721454844208706531154529235184212456233890261824821603660723857990601136687931713113738857242308698196695355269365058412761827885997417150731226400061481114395304081508536465367460814203725048133378595952822262511303914474019266722176584555291662844581465947280235395578449378866353067842835311454282028857153314270669074570000567113688104804124718485649094332060066038579107200458887941460399314722065144398496232556364924786579794835735641320109728287874909979319064129521879378784232109613459810726488062040330150593521536434997585839517207403225370533022520189394013133503370406403133191784344609455306565314645806045958185555080532807720637443869699621567392633697261365559549269123504097401637392849092808679078304362277284664984745744729798731314876398150117440603698900768794965698135416829178051872068405832306867440351664796481130451268656333508665882024937690318092164887788203852599625639156015979225153870236182423343515384293833805459722114156126287260259545564335914838077985429076274769358478604589991135649731323981007530162351520442854765417371469678309238528594603288549457652931424248435376399958168672012480268692209635090256432191934482942818594535132581482344848829134664380647576795455709469062303837505192153597129875638896174176536691178756371201477041045046590980885675085682449412868402562651127757692160132660862186923412742038574585720635920712338562154840582528587860907161766305190696914975013450766472034548887876762758267814925583246938849220136310772215119563578482240393246762065711965351601434938591086512556389597530667061242427418255474412775840770560363691225404154808994963505809224305555533098867294864906151996359967845144609111804182646931142367561978655223515023744553561331225954762240367193112271777238857920077638723608491801566987061692908875970766705883512354806062910667767181564198190010122640502583644686823541000495280184844922884008204879790208845231074245804847596926284709287077676748918803463631755610083987030629680942168008920147807395525597227225551239794722709329423847986931102198104011165186457875271185610959565104090107933668338891798315654618485280544838048630925540963634933300752817778943235943117832328284307101706715819285243781550562690440655725259099279127049757934451422370482780422943807843846557693384735031004385408081129366892119001260437942389405089813727934435665761354679605058808736051771112366830484805563916195597318498020398682714594365774648694452603317522917281821992908055173768805245453957146176643287413737096660723183057786752421450748727205475944489285390299391582059721857471734605263146326208775382578993943648450488773489712304950454297696314143921183827372116388128335968188750853001495780398933788657737035479759004259222948833676069961528322914233550317037942756060592131171518853541767456230797447019603069792679033102174544466743738965557822549417265671378288379853114854048281288472627643308157838628473290627582944712589861907318412980458899681052145778509136546059519573503427277813762926163472897816752626805851870597640779680878949538099517627642271683649071272618003196421226876996038329983412037348782347326037044431253861999255059356571196208737328753910374750701794930886375845200110698144753023325945023327032851421801204452502452506675016743645114942178374419310009770095391842791814312453888350938669825698182794702934968954607330167646633197508424437597597102971079205658666598541190872615277621662466050955691874673280998315552021104519400265494330248069272883188556200814202600112435186722715624769221093516127453908913544425041207236903607089916028993332118746249906193616738512685694595955596274773294212491560887170125261705500785391934259838991782039924528581790208834093878608058321831726613684979365156093730682829979619733715226032217900723845022607272925592122750111685616533859170011381044891653753987500865305608295334958067090580377123999396476704035152175507278188731089967055780112897262306311089418445094163332225394077321124727736985297540535625350389956015135391226363431160550507245610266618248158322700075404428916275826544757670606949258293499813588022115754968277414866296808307494621321777348149909461412089122456844192219993012625696801735762022123043646245392267645339561519030134351045881008574196653252230123033895430736719277578069462067262111052389123150291234105554902107833140605741419922998638339532074951069492688732128096909455269178786758145464704028300578196701435716092916915200109892019407038683785740414143842215119703175078069502159957900532069114234410811841620000759984391390721214400734715535512860027979459270681726288138849140745046876691902624864723123252881145961466867110178566728565737396544659931713628594410771731200018439301256304868091032783459475504313586402994534189839286606043304589732409840217114343848693620332491852396032971979019846823572988135368093726731250736617274213058858529708867424135013932269272964879735086471332937926713137560651425251560771054497239533327053542096914373277281224264055350448434872979382270611405790883963929287126300066779249260563178164378149483922863879731971006523839357798433321378690180658290348276743453253681040525593301177276026384098352365879166480164491981238577453346071391716901612997307282695325434042877438408903153449541534787750284338592281041514058374995950138991406739886888815400879877195612073607232059193127638462279921181877746140319822083725622946603949998614424294180871066036560347360132051504987629805933406728693472009937975773830901352016802952789993432116078159655989215692646354264934339290150332107617439686741259926294221110062787521679792317340955760046882692867548033308110827209979365903632830244563413314811708307169447695344718345626901093597904069616802364367681003033270484343015861682096017122180702527849765502088891887327159521298751930321345422491994691125261329553034943110649134149578545192562757426203054953153957778458176450187706097954459875782561704171849384052928692256367072430080688935857195903469725313689878049934436062201550450134515350871792464724014164165777677572014683503971171673370751698552820473053188924139390261912077156454412547326470489007220066378785197918587385889324496134054274040751105397094766474391742131594399696414210825178359977184510085450640750127964557684592043352883250155204445011403887926151254670065222478050369199622180548348110602159870483167882206837989834448297562560894311569908538398667674831864362909778993341432170639666208292397538198485688477343761917690559818412973826087901611419419168145040652530671945921925477053724208935782152938894986070805243869975369044436609824890633179499419957927310677936406275765779902905731745667113941247676339912644571540086430851347492726820973028787931667031541800183550479287240790023743598543166603840854668804961461935425968606305395901092924833776246730293570554825492468107983899044289411886577623820636511578870776865585192720670047514827988355915802612369697948031061960114462198607477553011031011863303939468112182834689218287546661783278014934918785871341105804393590190139403315265805138339943004647522740855193673893408234386112844087577913903751184929241098997850051830986071947419647698538847918582569078368457966811164202396445421246073928418442753057902243976837733744539884354601623930783372581610446952866327437599839267784133709038805026340675326424413796026111908214597344870705416482151303908371243648070507640808531003032880407693256497546517425154562812665277790923596764592045812884676881129592053089062049121624892300432384708644367116075676871222582377269847216469910238039332805164117191994024209992070332278147929278761982582572510625936961141134772777494465436474298592098476314839105284202244289175061038302979547212659011253055792214464601948537162404527932667626336793046271351514282058390388394180150492152820253288267678351556425939979765227731268599180830411142046963741610196454406629048768016222916616068032391662110486354150962003833805496779292489417718776756945105941821659889137745043616046604986553166062822610046935886877472111019716402280820230963384353940840417552807218576276585066486949362912773665032677943068957580546986077524927699967659503589616992928486647626325052088331789360208246368075468634116651539040519054064088023857134826471485154892964701621509643140319648589786395080058680340479533852507654521744300053938563826512798302627165051458792900783722524143534537701799397801806693989083889252963111337955453126821610455183130764260087047595117782705720064732452386366243308769635566320443259729487720324680824032579815505793577592823057432561191979426473913007283088908025366980893772866179095590345691278787680710352718795588478011640437129251912656165212177285749318557921377029803640009043810045113174594554248699564882424923896338183798174021069649160137027817773149447842891594651112509693991391175480695483023789939298313663975521070633021179971202191486762517628843825400548385034274890060225495764991888822366609082399160394584172448226180585988938251006140742242353036223109965429525559187325652059072740848003361531418379531384266114432781772330488994120490121609225955323559108380179487611626474492868937940555086088649906486274251724027675852047832954509107004945136163926136931033096028551055002351774361125361670929227731191148847569257417130382467582813868350305328141498283180022823294228077616225012269982869309692813865333680706886157668796945727949511183109438019832662565289228603866574199644134655083218837108033479595363488626667455638310458185465850871402162959988389522828663236564574626751965661783021279927059844636013844100393901262959812643141727981143896517132385320077721347176493338514953637189780167914856069496399910291727418869274372244023286444363321024536809109499990188768135877756045236080079943980784404287868035300746472636981749126798290994442353452861869932143712005858482488634066732159095359543688063954572971144565249651764509820005413322583915594983602200740303412289941068642462749969944618243889946974400204539044948196626644363736132583823166154575834643684547530930149299445641626785675310745327107150814168152487335370616528732833076486626424970548909260305970013081252376353491954470389978649429290396257443557818966458909544713500332776842508092855271115732183729878286312774205064876889736637121886569413105080584269653529067436534437500189719304990122952267763833197198714124747949154313418606388757230557245841840692522769300926577559477775939032094301668250602731149710261960064066743838524406540524838409536140256293679030962180750026584816577347191391689652791953932166894681458386106353036881022990184511719914421590485592720476585052086268099034119723500882678725686173302673007768404230140978385574547479770558425117135301014297413221953833893341652381348018923334273375452394704135822126301798907819252816215642457542943172515230040273284449687963097818635922175361650554658248813728526228060022420774258371344860589396277696815949324016435335891836113190254355451610114999661915525417475365345744517687747803013181765009523106215658029463555375829351297450561218278632101375977418059149081397758638093614061227485092052587922201798376983463417927442255254074592452043015640633786816097927711205735461128744767064663797841300781248297973918898519280422339692580628306355674644907873663977241455421634412439821871812786463356615505967747256608939711368154326338908607162593646552506064062983972986402963840318899229692228996450346230334804245698677450060135723726470776482698383996938162252914350091950894734495544024944044295250017921104771906856302455153553082717450463129934678823380216350404904343592051289929855457211103861290032316070083182372487273577580056487863887901580874279629860995744604210067001531615660189137704770422884473996376123323906059449764119021446862616210474315787748667881057875959675059220714199523619884568685814442981556458996678149405224337163954058480724779939091109023863454406585854583957500037107462980991172844548801835051827394003777914171032426022523880094151807476594693332203360070311247000936753004522359877071312528433944070434547677621500624785410900235354744974671604880033659459331779941360638404822413709726492593010630158579801177981476872212829303456362423828901391034481854213097635350373319421903137015049134737165864391031157969880210781929110144258888785384294461699415101431660197756888221601127349681390139837850070646057653630845153750504978334376271046819123460157996528406900258791558952183713854478008007356067636904253661363893937288454730544257164066278278091568631434773372802265674273493441927900693603685069068376376439227234987516713807753081878102046111553427553366705896885857132743524937196118921856151266396488231824144886585525164740214470575478064136191608448892279738717484828231627167772147531891162226375148041986499519728911000542983253431775990995871277030389412038703385432138531498220118792314755891667495995666593597414440132165094645374030242784312637468370748103166640735958186188072032338010677371593875373484287415019755035419032072953926905650082512286773480087204258069918825589157544443466471258770855834450619945750226694710044226949634355018375679083467202487396599233924078861537221218022250549194672529002966149845067557947496632084961470992121429195931684858307322862274187894206379388419926139406132235482156489330981911853311772302043268492281553097774335713393137968365171347940054443774980792331418027317520568901308529038699314289632528494575737999590049001340143360144806225039159672449141647188030483018626262316604861315909073985255971970902711550420800237119463493825136021946806913577849472786819641647421158015819907748737810186539603205657397628812764725316853842617461676960259721311104073612153759122934130389590489324377866076178555174844375943495240398493810312069338447210603386376489641540572871474510064869705311090930214464274295121870941160955759453032874614964128095290946293590868835407061579572558917943996362140236705448973957833309778098967567664378510228329565682975748325241851193896449288863843618321232616430927716929086575275413638548622494478486351701332814879207166535153021481237448985619394056348436291029457610464122142781340303025204063257951176979179752623968164444493392378273064884963951874836613219871211988600907550756581385911007264176546003361102809031335372492250594638984833038831857983216134083101054133526863807796854782956232672893502374614895204508084463912296953881754859081622515461067078356423998340697277573289951583475838521166443714362130424660192518517713426083017181136860071220885145992961699209297403024650629760815660900174697146225628377099726185634606768657616994556142670441548699338702241720281468942837643344785653594173445259772246710397925230824769062385779723773140820545661505744774053009675223243887631776619280721405220309035544852217530426898520138198028155334675329096397873274809693492976997168019302410438284988030279935003915329848343394639192624360681692174288799988538410839804806667349316171802268916554556053444431173328167803281685117309472598158918287675598656009726837244742247648665820155484319367818576314636789411917960778520599808348374381683084474439070449103558768893994281554227437584461417204879116614560968948224636999147957920155403370412715246505266689471405209599831740434677397572754572252296574997795836804015343456137813649765236426383876959424751850130858416757906405927848042530344702199584183003033179448557623447890532859590478293830349136955045445275225370375380596365031458160282852962909884722138878185166317263129084739659830703333551579019193047397591689031003531800095632890450526454286827271564297607517249483187002884928330830320212056596578420261522762204579355806147394321667434559601393610729726654360436369249422195251430660803049219696499988524740360225880210535517522195179646573986706359208708900318630800999103044409164591946872292399508290550977299703383121815477078154613065339889021149124842478358401462862159382167916960089295917715815762907737136235761761818543693847145024377106246984380911867204827838786813071467837032752825140243807513936677708432871770370706194532593385569569116935915719033509741648069821751956334298088871881191425474976120424992044581176113714263632919039545298019705317843256311476234132147475182670808513224123857490738128514784896788818336465727896348354326755255846702796034107566024239212467629470284473235708629190320701475392344331918411378154579638191306507464199561571446963902107611663759887900942524630053077985394969456058343161481714459946384264660346439031096784950725293433114949499775971649802980085179483078944394067884427557071857304567789613155387931292893226887814855530507147090708547896246175757345203109860661034321694373766077960811127616030307451535483701149144622726527976311657938883836630749595043219822277914100825319600463430619266894404733490943791250396231346295044748440626100404280397427479977120056474186108488847537775849929893042548905086834594872421193088033013260916978465178379914511478141904972005444975229023538950030661161558890654822409554384530908767020327017111766173475985944546054520335565575889051004905194674506633700900315294674401161200305011643541827439108761430399871072086889427880194687157749662232455293475668140585073166568611850681995763165967770576925831766339328345443196999970533111287474851275930978087228366447542483098831914493937857846749920594160456433496993486758397899804955877533529739345817435802315154255284311744415419042470245169126091612340964908180925225544619797478943899497475169878623554474552019984235077579390792952321380970100975164485554907812907262796365538875841548147541658297709489779886919330592675285701025370330459136126071147045001247682928582713376372810624247908772401967372957850037641876081169786544191042912347921102262863551611433007149631035302259961863388576367837322674551028875742396636171122709965636462294553749987084252133809081363475065618612689582387462205795430728230872924891467036207654496760637390042836108925272037819788243433409160475329451772639339514245725950507904126955288690421683829239579839062546554281203776808947678876499862236046814198728010906432532912183781827534902598603147846040999163967980522650037862039352626141965571464804689827994598745355324092390715656637442493678249332610459663654379398546062844234453757023735680110997725568512089848436312097871839391492379267080991901357155923659426591478719282708545452007052631034092529213858727092345493645829296704330772936178053542110739711665705548206387749082503724977707011701864376364854526256541423390732649303092886642131914049306820975672077682449073622383095843760669878020357244011074320738127195788712257967407058213580533124322586307765459582792173352476178438870248806222709314904148103508701173520687470410856925634182279972002297744189043341862754826732155261776279049388040112577959077508830455062333077334356206384488307540910364434367086630354222890691054584992963878874745178155426954466222919254821021772362565296493572946201568057067098603445807593729786193521671580657708694646282688111748962644207854689899987990478280213992108786050244533100916734428704656992859292637847366608601536236695518276289759866876956174835212219657205060606902476838558275063286358435193024125665786173077129370875769679185106276897489418855853117894809862096758988325004374836289341329620563574044982445977080339312630482942701289148824217719731918548393824895198163844067049058264000532040580195564356270980592069807266005612351591749884955736234044432733137084175703343097681469272540570979428428023193951981848469130230590125587358554404865508985262226244804619965478112993551414651186597592493684759570269491160518067103986922415976136574139304176594293293841119139186036072142851130537917716192032842567542955381091588817205355754807920762479561056548384344078160627889800095969519826453483999639303809711199910059573371302436000125517091431210576591739703852714240973714199846844208093681342449428270335924024922222396853485270041002129988837338271624924076058419921992504686419251656813368247995099205923328027699483165191109888347956414809897694909996553545416712747685032136948203737970383665062022534807091892219247991095433617870640004081088545360372072034615733231892785224943553092529221300724444651608307455236269037450652036010433773572985918215494311435858359349558261856240570598024509859170192944670915368979030209384457459943650645722234248258429037697281337756934459813758519255097193760473910018528290711375023428153069604051214127317820565671015131777166036023562644280430297306971424758650142105306982657635618557041212070770853074358289136460555250846146104400226750085113273028433892859180785806967096594035537251685745805826822465120812445788788457821528092764128444308604215952257992123185459545912438963300532662791961814157318942777524817402276865969286781624703538872564507479382559901834664650630274343135098822400657882660865643946740551764281738872153259045620713405446737015904298182101541200752901553500591967589850429681438069459824909949770312892022851648524706032842372429092668470083283494443222595632546017793675076252247459331431863900073845438682936000638358801084894853580761715771827057162367635268390303684319267669524911102092642136171949003674628926235520471356258034036994185307926135382810929242186347657044799460714752112516095514321452079835333910261370818108205151688142560614369402708433842028821335362334966123967272682038459200962919455876186542094248867602763626269606817518438618968198471988854547407373399784873452103866170640711306896032152167594514798027480282556367914339770214372068203671769680789340806117266219588735043868535369433045280119994862094790605120595577418923379743488932769193780782862909157561815230369754001572617292715682142155226240320779609757715532194812523179308100833725714285778889230388623745828661405250884720057020961741440050628568930288780255044711701099743012386357950531106797849577642526170329797646133936833216587965260521622759827834622460328698108735871741561460719174240182728489539491506003894052741263155714986574515191581029741653450630079916557129557302528022449675057920029720541555651128090664943420884477419035772046504553618840391418724204829451254037804116675326825358018105803722486920711357160884830228310786638977503070217315632081864540609536290229337332305606370441650874532816537388641908330706879168095659947714935584121185920242849897306145993034702549458141036624151336675665710355572234763938719167740946158535109991528040885831263843101224456299438933825329982123131261841933840761156492312590694365308018786514949557029575026067346976941745454821559320608766509317457475242271769490774649820219398339277602462374731133218512594751994191183760470239978988877720348588398768822033386736751686695625130276769256568079024928554740519290662116782150911862634170931912550826044809896369901436570205980611226798180155535301104806995610453127908651023845041468255171227810276351613396540391472362657364716902760260201040032870037719633295331244487128166946605570063734098140289933658204914942538266708295364670998956836323816275863248278953300186669145562253440721403376015961085685022715709881284942820445341110379098890805742841570645113353697200240999983106199807946006676699726660571694644646151246149928070332823164109212732589740369094191553180999869578196732262060796835899100799798384937728427584652967255148862146495547678759543922367671873929029981210893849308144540454738354441020172667215263756695209896411252019203429664152761280780994951491272404640232070391245029787176027907548874173886972039636075421118417775513471581827402307143398888459061824243743421894143018960078636264765582422571795034490023476053785081901143208908941507938584425942294565558468583412763447228661395611303409833857559367797874424078371651369618009735737336532657330261360338084015125702987181351300877072607467966833811709764086805043331641943650068960538260160815742857399637840427327031548131969265388282796555719069662279628762723401449431006033983973920370453209125989404143523425484239033197361509876653241544866621218310909739728964421868095749064992917073353899995909490275715146502121745474241232437189665220815655220323083720898428972867130153718959069754760963410349233519807675833714612782047347876539349488351321461880594222242224556092448934043192972846719841154164636128271876055088860306862040731927951126838333447401762472011860401636440105677181662808773143637294372671184698946753323130793508987364621656408343879008311744172665410527027391376022481239122263265473491750039780412609164766231940012267760196398134609352940448016388335360824845099713722143909644915600577551427880633928447990254633892197809631070298270177019832969493644199445066594257996613862963735831750702964759486376879865043654464091391215823436842772731606203169591778192316838453503434853714555379973039071848014472401855368550937246317387873063202779588043552289598255278821563782007273274583255378813489514451520324612082687578744081077658085463876710806213446747206746812622903629299638412722641918068674583495146645300977994087710432726705809258062784027101408291920827176555070366374137319157244593720429342943211391052231925270993119766599060139521289595995517338023712015049168369013299670584323222998508731559917899043044864062686056557437811265883926675720814511905054240290009166222329975963242029753970293708736477914676038202821983813700812924395591490019548250148553150353549263275654649064072043601317120481544516905937580635364699394741645951807555673142129770698240667717873669708753035504179649591919521702674372221743052984722391123395084903142635083905711911447548086959381777589828277151800261846413187526821864177222755702608294646721913486196597269677280520428643931238071274653864004984679983691275885093699434116153923860368706866139337705375969232358492274952720219966943844112307795711925876067439001834064239068584100688098229979106163868484554363090321569933540081077391318634399074584191108253560290074478204759409096971032438520825957250307451641044405207834009499721623730694969276040288874130511994683545611406127000237621733322024226549070837166755696856834034705190024864757861263792046347167797100125049999577621948309580606408634242844166759036564434606177713641845897790574664905826847660402545872773738026311354153184370334840578435321040847488749269049694679616983997827415080548921481149375341216878328188948693642323296076929959354785622486704246886338727652862368059927611946617264963048716042491017676029476568633034711307258282592194699690101247839329766276216890596010126502858929341895849475611463351709318116998810221477219992297759517363674705115588543041513865575088800454172332994279581512427809617545169047933968436436462624399042285608575281522422206243490878796549336043061559902768873660589446625545210227256400598017617601574199058203250708388122284242682294917856193332585762705801016412508015562059518778151214254081774053093060328559056057913101720805642870053178123757810084745629079042533760449929998700881003444081581335962037739154503892623378756174327881395394279619621762012942248016779365607286531067400394607042339164792465170459307467888561112887407980662992773350838910351880813569852874140626765238693937882977396234172342815579815214239291199060784093178708802755632096838236429878347668474952792488414667640422268330562228295214389219414690980313108179243353137752424081274121118690025661631476611079013757473215529767088962764161282488703866375228008652195424974421682438828973303575559955197151436745003590504927417819994326101886154184371431360101693236227860165352592376192162486114133394928147780765522237247083372337783633015043930184986635551440701858744814894996694478359972086260015189038133632276184648176125306944535939922400642196787452963882701543164547441836190194224910201530889950590033164769912420217270388039004547089478088319810615616266079516960804632466610461444935533277760157207320446081635943237891000959058893538978221243865323451657846797791085371124205211945054206949640058549958719667558100507605227974186090300283131015524316534977334456472653088535482122367128512093224332834817283249356308536216328171121764408243650031432783612332911758383100884921249921751123399252477115293111952412081161976699093377593989836210263547266207955875653901897198139781171591370889373576897732206591162627628922333708579698590699457439800697070078934652410227180449726679320699611951446298775431923103608791482215061311039514009033419884323713098940198697864836462950646803557992504608565855950556992484728801726517469842703885854772113248713889922776760034680585332501436691865539381412584814717097334307124832686297132927676521397047893170572199619141267501314349461429584035255621067974669216104785252196208756028299405722312887216063289039372134317685829355560768679454531307124007367436240709933685604244059219552073398813230864389245153537751188073585319194953065296083998071242437393224244001524443376741964744041576123722898741063104479614641683908109607754111653743373961935864526464013486833682482575119797861017788494797240201413364821032597485825485810422714461914109359644111342317513988974289474752842228643329863640037588106727394827057347906044884682737462557135940598640550576050513633010553963294713594835852791600375703119029977549594757030733288135799733111218330526675658546276457733759128600162740258108055465340618521173782953508069399527831311644636043090049136043126757187203742023817082942414619439241283516542226831619792986896946838990248197669107739428529471077481392052898278857829847945078345542589788432291626583187131948831452877282764618073085506985414857009142484668696559967790192758941033549276770239107525142705035462545794375338674013386493039492173044974961243444353187648200762156429378415331329762866677303323814286241316853041482317000578572625377666072071580282204663566117012828107318940266319705789235421367352082543373736858266005655581593433026383908696204725582131199741843632404313727031468515603336904851115566839775062560381964631419927160982008981702200958669227168031934465564865066340468042744933304594963399702794733924067296480115875125056836299436734275015550219456400970269576873848838881420364637380645181369586082245663796674864040530681815539564271171783672101364382443408068178976497895562364854632359513386659347396611318736852454341718403832574554448279580845168356158443132433060817573788564704313945086330489886975755116184692073696947141036889139228785891218005953721458002826082676469347045536080267368784573709564670478745794820547056650538952600284888302408115837000271906618795552182661191704065632989023312805296595892744364295897971268683438914036473920283675397485286199602073197451502021824037031375416187659147723786519101314127150077666612034839699414523528027175430236624301543693362490123545053758979073961064789845608714753755258231690905271068755616618263035185640069385447982259895346389702396032327744227057419047149452454241743016929232593296181883421317596740604731976678110389815206527384849632690058735624830292080697151367307448554595642434567311516497888930634291290180928618569687979676163765958918497418312739551741829824128360874128825262359949482257763532678748433164028078125076493951156073157351567338668302257197175023367732119057691151557286364845903737743889504701115241959742590219621484052372892076207762076324005014584222587376315860233766858400057742516092011067274830913315699421343659790976742935392490675534795047400728614350040225987659300287182328213518748620193968246302335251775824307638447347003915138388807206641012859421516129058177092014014112714298464242628224651719526508544406032317835315269248410720041441322452015138427257295964981811996001879908608792432480647401287490654435902574189000146748069890788694166260356545522811274495889800536307302683357194147370016984216793294839572813864661030479762522064259099813889212971688007747659223560159837735713488947835333717356562769916042408489880521801733692272769989681468587261046572091999300384494273430174532723056161416740897332569256995016208260352642555106537010867116180481169880282587998719598562595071646679396706699003999800636971747808152727415453764386808355261174326339894533350732019615538766730010199302504592499746207657770373632668727716455470450977436042386289877079391522677474657274749732110392888358319467858042999463818360921029309196788292131712753913501989017434737163158974126435271106862026288410519533374595013386597738574485803627996150855023432364499189558205043626724746468174015086375675359317971632282526097382751095182252874528576641602273302050010082673480320328864616112809607955484948365064965175541298101095269625899182052058569991523242839339906165232697312170293645691663513809491615552219168924109988929049494753830033046063258162678539570078888695194116641614949381770221293847756183365743415159684310462112423031251057279724213721327168601672730332880787012322803180836917753323402929993518428660354776590367761772549955605733644382046889968273011554416144186024084472892211383879776589380293645635634702723535047025114125990245446441758934728773935244472399995653561455859775176704449817490190896301403637233353046484086441839876941440415470135224323332412392905538945277675275438576189779229651627343274951767462614387431573783295047300081131673473063563832381261019555244842684207826732136064589889528184485477019441763272464250392181442702194416984764158387362668422088642869759795187117740302720834916989877833644602936158361231380343076847843899790815581506163171807671116029224227449949734031846165812434705955726565975732989638053237772757004961696896281419495897178452376683337738588604296527605081859938844834549064957015060020435715186198296964999918288192509999319163482679938617639557093832278960644636913404903529272014552844831251748142474538970866393173136377287183337590729253310943314960230118722258032782415233477974882232113871310184357035312849891121247863478675350536784644096618104119880949090908187097969340069265586663376616627424736123203820703876106671504761977191506197545894738376938143226317191238557857355724969523104282722958941898023933590191282753027091589231784028043298869928575358870553640907739582956182753761004631364295872299503861319874911945249583054858176703537950932827977990954887081359912937300234057746179238852433289695298068257787110581705484258823611694129174790609187913885629333909222234338849061876141801223769344599374988379912161905932749223658991413585664080480102832399957635804120153807320233360272745338475632373193471504288262286819423065947695861283607407699476487563948953023348359348081804295975527697186382360806021910284299075645564168039245215180779240709180423999584421930585931837645166742130959117659103304814642226520247443646439554726344044731464123822098492978017875212324370394828329481253433776156174391357460823865962962703460217931440568539151105002488400415342819212440940709577377928280305817640199220674625891572359389130521809281854253182360827487728420713281722923838407143517850501295657193789082441720325393400961452116688318298749582113758579512387962537620298144807475545216623151008710782321340664727530750957597078093900560191936904493576267811862079509455992556045995901163224309272332780502877681582065517148629516065067662064144165480605542277525099453855276412729969872801087992687903362990306534776565210005814420976909745107080036893783644280613995984100743911023491537460578796719838705786983476201593699834454348078474073243525973771070845728841856677135201344738220825548289337478480829504205622297589193557199221635889983744732851859356388646596771168841749864524286166529403719778530692026842355212708431795113886499011911128539521222925138060645463200522434312474541427682623812727454023552063314079998686025233258774625978845165562318037386432866182613904462314223263041422711323562168353543451755911201036313859948558083464682690199347600108544492906982481419337640522673343580426019719068151986453940921432095741633121137202928036804704901841517263457406605183817778655745576864226661766934107231586014241365479813064387310291339359323354183692702271457907759132938922832964584865352495405630078815821122597663188121720714184833720651909042679494836747436293984949790132711823417207585814512410163492093352081750737893898925859433857376910088308540054533080203382827648686879185528688096392671234123019522003683822650408879296235566497947349505746055053963884560542834937106742443117988411901143036465135153768702887708672970249331169255580188241738414210118086643444006669990324723856345162799933916631378525612551417272192891997812263134571705078953563141495193823451700955807780203481201794520077733541437198690850633893488710795285713788717449604900025123916955189193523876832893139031734051838400592823972697831085285952757185170424005614981757950711511655694933459773916116269163355748719562132774795108709549175526014995739626432421064687287047033847849953365777230194302496682072387819004785244346896139317616591937362479380093302090021100326988391270918942677260147335121669186367287699156388038161338594888351219730631731089585008399515456404089171685074952506524729374150192029992944598585985925680860242380713548260432674018417905472286161976207369074735616320949836610881404083039104823537819057599949908818495846834792044594245775858925663657266375597953385596801357546774435876541421402241629636615080783400302948525584735548187866184750299535539480143515621393036544897756389877472491548330896594015572442732538842580360661493701345892933694546305207599281250212590873723658685653890111050864191196489966951311410943169768702516978422797401674436838963367391209881224618652221913498263428267010899464144896075030445714913138515303423896314226303038164856688372477358501369122105087091430869397442951289941792324401482942654496568353228406542262179467249603105545699713215470293397368331397923039736830798099675130993003705777033529194945075102966306928543838440662690536614930789014512165612314526557373493337372983640628465097771668503762353343479259080864774234772731200223840677493006770497374663931634195263941675899056131608289001963964216514597523332543257095219735058248686629976461227029716704700049563491500393495867103735548492087545265700929947064448521980670901600907189545781915746095908605532733515054819367857435703653959126139645776810336995814203763392396813235403221744717118403860055924084694199848960838066385710144149622904864234301716444231448646502017375505446964637430544837384040619592151017331281998510430249480838646003031645479889314940020523309258949678905106485704996147552635017315646106118129256324024117078502587469981279419216626726667553155890560955587849118795510186514902536853750514616104457133351938824307082577497079812612835041385956889868323932896794390332219966029725382362059689477381824011331769984023875323404706414213408777028573814519283457285167454675811974793807340740724001290057204068193976762461688352235018046834787959722108957536796376639820157059646669298788227463217234838685721887370490455018922699690477997716373467113931209605015360978482877788520906829272052716790251372981541874485665961120796150308883945183547041855554502560996976712840630750113811494651619407152947476383506573583558225190122695597557584648803029197720510515662809127034191116258179546850032871914759916582738542095651284238641257537589766261200552213148226924757084167295429047658806902642505376237651019100322604761781666273773800421124239476978420858153305214702729381193400529085322149892584805828810317633439872700609708916341953808294768144919963929492536563105201397919461395245110679182158248130343702215907966996630456510926840482561069941259149922478079666898386468593074611820370474120414440732938669568538021400946778681910998703317158060219274180639257878747780953911594330311046992923977703557732283847960399825466128400486170248166821498161590762742467191153882107517153781839883110315721159688200249798162218019375710129820101892065174507640645940171108369278758260016775977617204213195869759245791554868460876314560606149056754631301028274706041251219992519709657247590907788895405750229685258094101548223673895615176973332239303257292825267526118800252676819329088038876391903352110173151582343255942589028352035063312444410211867564823918110305110972322981805140325980092794500270755118658415138015381017466430635006770290692955321768805086375580165754077662815426686841398337575019887536497220275431748852227890075319854989493762971519013104412125609950105053852578025289012024274485501976584765418695090187860719332442778696303063892864913563761203196131777329117550154438909791581613555359618842815206146614863176783332794541378598791271358022066119372950879417379267370010008350162224430376512431852566998519036212910480228247421363588127689784798245467021536502527468690471359911037657299701831200340072025385419078833229459537636288607557432839114875140712836523865190674168645097824906934442677354946165755335650959544118128954742910768062544558820931158211886721987493534210703670530453341567046610751324830921247787616810825790768096628246378787681985359765769584373028102401721333559963612132594182711157696454604430445318305132159773688683940547005454253838139875931780343602411021083746554159431638862708415221102034050243343555623205292692592256436048807016023317007500103431918524493460806079112577025137655652603442000598946547502331707951365592536948961245401712940327253194953529542686505042380745478287411912905593066467756438227652222228689768163769138455756957593232764259863882789149720731401681240698415956846465777353377847932747325263343099551027446171106809970913591507923990469283123635096998814476135050596762723509155883606737494746358684258827249280600669255325804191105527545984564664102644960885408538167050022597621808245427970677671318342445513731095411683903701662662327774388787232965031275552181958941918617608668571475365605277375073315759330086534830837366244058476862291526537432410879941489963738563258143500940743860408720580270684964969256578954904355606703238998412913304980597421970100849064476448326200669032399993416820249690917479509266333239433672211574512256276970272176097079082013831185614132579809417546141233945973606545730466651783732531609709474131524029964512489826025688550649174706500277194152064647392590187786672478056654253542720026822350990697903458394041104321290355513232602111779302499487255357188473368236835208746314742636887502276588352632175035351220333674635215693989233790539093737238155609256673391358453251537279670443243065255583925430517397716346022874197995450251462344603168905911396661000031348533028786573138959921882866127034592556787540046348098858021397039446576980736659593527424564019817541745293003987588782454753314181122205557462374438275207417976826534411063239837595068943561811029836970186547479173993944592269700062264879872803984625119633551447432460883089716929126255130732308534567347957263966524986861795085157581043541992914028610642503977892599919744669227276008020266951907914515056083165780691811848361932143435284585096842640281009409094508345185798566227063342205379951534491277696769064124503049632994656573455733504341763162044645117603124336088383680612202889280671684771784038310230921453023846018920052802812382302957372833676324354871592003871359393845265511592018528023544844163719174182930197367646704545345290093839477480589805825378840197092939604532443986218615911964220686335149676898145741476647544772528599973264421098721827860551221324254927831295792613037853184181247662898446152385629188179695404826823250148556289393062609042883607004213650628529176718303798590832049621361328819692895611472317513781214223295633557371720748931854793317819578621355582044551721142787613571308896455578671189785603241635989696900947962602026828051216546011018380920941869610040314648686353185686423274460049109020174730015391229375790991544692889702668684585984395531974434246291589651525753646549491153342380851339953307344457204838554830061832526426526314231506523025250810850562313402488708289433176189162084444094017173972007771527890123418591511936428091343637551947017068943574427511055931768421714583345601733650612713819355968089497109186360346665216590286979332394741810447738676726979592613599398111854409240475562324855104423679797937758481858887381111139487886173200326412067617204622149576798078684693168323819716227432275483741589601870691626071228700850091962434945161550224330550478066137205560359821751976771365220007463528041378504715579721508069890363182314207945800551927250088466323824568207423750682040605887457519907682345752768976458995135964018727191787285956067803426559176099449899089855286200899947189709542913120417918823622990727475202571826856413229629713026554328213504189383831796343937674203350855296919282883385254858147804635337879961210235385633749948107937307388489099287703118883311584794859094364449235824707001708823891287650769802444492988283014085684254681297117901059152384395536740499004847044831472398143524137762271540368858744400484695033940704501685583461018562929779901941038328680241251474881866910932825555542583304537436460682022803158885743090081701580577800777530491074826798428732648785447690778878175797786446944052144169020798262281157800885447374484776456433256954941679319083725648785959296934965578449148384381192240958958898110750466642558759727840755381185750023522013798888862234722844102403410880560511918100837712522105019347410438210599578706515256534389049010181767497643175613215875983784515048930861707437068247827143089020863178883566245776412173813905723032323039381671820193278203926440706966183130502986114297542260243477827363545529671569860872326086220533888741537975263905014454258759669479092991398564828901281140193435524513598603185023245719537549340750312340335944324768134304861867063988590642366680198599872217465399221836402651855402480789685297451443248966596056896317238894193400996889845708709437086814681307369934450651824790797335190285939133251253427250360993847728060447047444179781944903540171080604038624171641840568970274045345989416359287585981162094587957293653984974038130588112137654866204999124983745848376716761117314044092539356945263142287776673702966871768611896040268525402369193510785999218347756817206068141138119728553681493580376227602421009684787126939454017530040724645715072155911087562782933344344065910555099591152090080215913228668193564078164119345570999701075207418869662533537553929078421209249683434212233967335556544836434540946122507179945447983666618447005426528501463300259171461643677834414190015147104372358319457904298530773046736691205431819534546679104570965495403911530017354404509845737171182449442964645240048739591345890108764184048093566034788261020459416498515557074368576530146423576933403885296246744855857933379548744652506847281140536174934828562575144948485613652960843477829208823117617197840893975426464141821144390995034618924040477678509001750171355015531382454874867547799750991076969926832676761036021961501612993084726624699262279586448082085834223590611794349506198613270596087687395623744214374761079092712125502120124833370309583250652576659474671964046076798775726017751131544053247664562591802043818795761626037284464139693543141082491364618407129320489872068087790881861679926818211395917331377562049499634110355916539360867872181806677608457931221666670297310316761952493139814904714986418842931383861428173203009589278749889374770237048417410546256878220110050247764882709792833247872243024500003790087535235946304158017978530695978934330879922167232182835299899476571661980302882823493392306966175066852562315428491990399966827899466594652709530921418587074256484385879991161944923591355672570036233394076282491969433909443855400980317495734441166107852537796944836276853141522171725152210225346833735237468614941977442533195178572284928055055989387332211655329924955403601103149641931794224270457806859579986181623278046264353204392036835041338972981598114079968800041081272441959009940449053584070546937793232800369246446968580924449237504868823835036698365417916129487575900942558473756655994339569757066669963959862507402994540755010463811713716769684869808701649373521651053119623473647221507727931415673805901340449663239303646728333516082924767831759892363658049524512270261788575502947594449571955761971995413424385288366093029818907086000007232034848094880709997746449297925652681341931551336490876543368704062117078393958150710391726183977813956933639188846242261464430050183507931612206132319849904598930677664857698974691728030669208601664085194272249897603949330280495084366023972136908132882266688313731988230170610439701779434474349964702162980305175118794537738888172094839752914847341341675983430549110601933112784615373222972283938473523529184392113286233427541752249819306438021000155370863770570737261472422110700014249707541642187100706520190122401747257612476430201092326138858935095576715100513918667130064163620868258597167408294979787799106879006798473432034086579081741437338998202183654782663000085780992766256407479702278056612430302285588102829619898394877167544465707441571352767653457899540704558432008437397998853567833636235904732082793718703075526480000321071910711114772886727234937628853933877743285046081794716688822168274422905261149276339988467439473854872464063516871731900634708832898203404199792656095963453975433275119369020019663559114358539213607802141620170312383409273502072904744094983200187171718316620520481978419149524394891978996959404951985270341968909410671565865268405787828989507822426504478486031713698288460201961443931078333246917410801029610762882315985664858874110599790496735999197350235512912857573029829791162913599933634298781560137271769187388077205723746765982010691258430991243278388660499997321358845597530001916228949488696815372087583003792944154274160383861540339570149048868888252436734928322777867167772230455795775826452235867738613501955922348455314294357169093008448749048297729370119280717687242414385001350938119124215428612913630390444369596075364644780287046686714357673269793695515281293137866479767058559197046899307369498727214619426352855441529708388304724792770837930095959102630079753081926331063148593683739107190299778272178372948786323787325691631636613478657707132108197385634168103504667181678840960663139062118214314212894347598091050530513869777109199311196801670883744067287026154234899704376619821192756620797478868982589064875319119879047943918515060389164044381865213102221032448762459096050666937046416773208088257710146514281795294786403291205149516507439604338317160648838884203631043195820887706723905749751326656249397152011904097983091524367472444391135457791265083375526750487989824397111371143936547521754726774249537115615672985860393812225391502072881713552327758204883436585681062823714574966085380364183143411301719203193263616696673516764621446127587408505240687766731549497252400950536623530226144467669165217125233757469949462844977667594967876210476569357934470236109539948464482964734477298151804506851751943690887270346129914383516830518472749260420320006645510720103306367518207006042043801791764363509782990845882238272065727766362449076198363830612428753493764628130361120778009559573553504523574139910632840979402707341345389708794290062674164354345925146515028564845158075588016656362246198055423078533053811794742338179216797752550749184087501914180012396464243933955451443775246433421089946520006503743054388119683443407425742665162888812131592538171737494804974083961359085933940997613658555069123147001239730159116870482334774836457043797006420933042086084688442502253313364600219219411553227412424550370103404219545900546509681815584367234133156295666738954042870118301575407291109538487953371418506761062406372287506304682251082746291150684477064538616792786781564316711838465344237217666663539952931681416480088863494438260821263626369853038397537310529624338726612525115783741725248721778364844445789320271985726805976427601957149629413748651620480783322386776436112959098147129356401546013946236592809753062228989219583892558960731550266090152962162168833830670885553531859942983624920780450383720230319699815613481005689368845472453517684686856687244180523506803954815168853588567472089151155781041565661235117559345413274071183289903381678964863242540486801947129426545871380348376909036514715100137872029155126184291926229427955744589583461622495183978346225673443619867646016613638152062022778428107444967378391794093487353677689494756203053476498718277929780800351418406961040603026712786582713207039426912550711502476695312369871807269473428351925704543206706001576072831389457400505278854349439642432885330653135775050062358325827363965171605487500786126376651929092359638194136133296892128596641990609181028758469642963899025317758003400963516209217119098172809195916754968945116744842925966016664960282888189396452233290239673658792142059197761383105061538823536486859684844736875239779063064824401182869421066285044071027065495635514595653490449490129484335113683665037781470187061373463742836920150640589296581841018456176887885209099570689095939545188353472573395102706628780242051570072371926477814489473226055926918366278758867475531986353849651332964701598373043173521876023566164787832252475497477023311291887378698090602149706379525731454849670084238297638828358185999998380351099357400555173988323980903256743172277192105559622606538899896753560183827515834128333894883984062378904598343956262292168000183477599597593741605839371802345398726364129855111370578235065409080877462346231227236543490194692556478815766437290843022094952446336991170264546164370867639193821182952351608075873652811376198499558897458147442384435405256229237407438441446116867178360478834678643436865813064133399468649332135649130105175068011397616853998435654871010730820898968275576697598645698857192641337795616921862629058407648349554238657483493745591393327411226691936935317997742242655778014943152659898292228981259033618705233701719788396551480558187826899826759330285041228035230626655090349235364721013770080225042092168486375387433813977982513030763128479538124204930999353799302776776958656884687039329398427110893868351099176096084767795581584474968216078956918004226407682256767523376490749816185420812329867956722014145340158553609920136393658848078276495308657075526933077695568805444413541806969939591003652054337419981164620745792600949882957353830470271859248140839169098765084071073653149146103787715675265899715666459381504037889162704086450947101818280782211817464565222363384579492611110499683199585311378699615191863092359605680189348327196899888282977419610164041832892618319111679630928842281375540683987558387516962246888519912563961634155215995075903084791109156635438752424544735191741357221636586379026088470239160691880209233762015654385800764542604495155488867760401961092426730299069714273888635740981181129218245118548927521185343932325760199982974632995398354451717237031822324215922833088829368634019851027523831048545445291759822873120039634425997913294445388158799386364555867127767204311551672579433024603759666429540651184805687130232079377469251724208809487375386436136252530275254210146862749878880912150533509123240221757835340572530505590083699342421053128000458445730284721034017335320939054554347423872813901699489060768432072995432057848361403346845197399602916730120692242089755968645426806872977516538118828181553076748020208689225900700357796311017291955744007752001900146826659184341344536892585433389107562998295495264287431549164955719037478231926277391441947071364664985994971637881236566432516959235409477734981262193416551116780232993949800589053095804944092180229381470059054104202305444316493447610102402349924263255696048691338779029762351967653391116384486114868886481598140441321406605879847037675051610537625769237320909829817515975979674305358056112133447645745137199725679726532796987512718760621142798520741849797544917008114816017903009560210598258783883809843442260529622446678866654182827205250994026947953473516577556110477474474003945390586657208717891670679786258694406476411154902009520152993111979092074502328118824790399511411844623816846254197229529890579363369918324073173742373109359715240369429157627894679237514946538233901290322385201425317527963265496655159348854679225911483394466573327422621829472950971428455102837214778273513455209718633022471705861204331713572567834251527032158823066005308752828332315971429472571285534530478257511166836603712083969795923290485605300695229704758209782012839265928069252305647144938152736928769282738180738707500345455660657023999391583682551785060656160439128648270859390589668879594479721624561861136150239110113969988511389129842253608885407300636893042845199704746031858816138068672827021425428052944069537811920441091083502281105767200184568662097252739391623712548209244269691916078180661143506799306952774058560260242208313577231622319148643442337166894534130934251949019954094820450277793479625817395984837270983674617633421358953123594470062456452351990267231817804109489876105128095134380595703808764695714864357551007507326600561790254607105305331897449831675075621590036205963962656449431310867660283423498986299029440758117445014373858413723982605823210361397520165675072460229388586516084186563801034380883057593305128371388320227931098176060473421822574804984373240798895923966017741917170074002877429256011949996366491483139558431030887274061218896279777060035639371693862358610578461778678526088945284811993499291614203211085540836243908573849082145177703319120414027168850245977723606247329715685177820108302728648861126791535191397027053427497306281353368976342672257293057381111167426759478040156612727310527887926953810082474007408094133751089234854647086531311090618698451309724854491035931482059007398407248370234839472837156753738790066372949019914733992939585262858172640238361361381450260592295033985890771572727557960623910852970627056718951711226776932232172362914746687696364146050739992393001242745828962564758712796781333639647543940709644171558136190227800976755492708267370598220285042881959180875432764660208583061292144984618276198725519135579850934030523087869217683620098347041077246401505859123527034961194857874144932961435291837086999671611505439250553765034694725297158854808244832336325662570999050277101443993937199731484511482439139374069471125502485148072718319854251651636866395369697068435544188307426719737465750933881766032462674247139786659937073721238805516898082130112398992540759374440866550179044603759370694975521853548528883426854595495928513757767105857550505083619800172315107112344844861879003235265173935847020662925196109777870471993462377731822332724270614049675620825089966473279266414916665328482723825744764257706324432931591132502372422785762797052033683090793058855604421507691339676608052922541815906560851898210239137056875930060281516875279642497041888515301887590410683687656849609620156972713119321462485047904620738696100891186761656949460614228730024093773907389613622114144346470172439288592937081250335195328602664228064028522370000813455754917015286326216861769694762753854795306943542944127863467683457487961113772376444872326405858795946393779527184653483498891816412795890019011376752891504637763725866967918254169613678317106427888989392726137241787204338028626790858591230473496902422415734473861930738894710594073361060492607283181720440110359012741707502467196040073122301715785490247125306407804555522863610719538654578426968775942410500510677720597769590643647093046304359183196435424508826987124592003841751005201161533040800934431627557147956825150092619932993333652431041221934836089723941776405496553312956438261813641172604313626683285041972917116344795126746958493898347167760644959469670527537419045460301220421145309683117831948051630581747630406647472567800812233518799654583895040783038036338985885007559782738902741622949072843759864785364291176751684217805064575693641585971671748110066147401627193571718145248154484810746542219834221518983251819521584510457385334787281638596379953863253835925941971589452705740082460912716355240210432335751571219152039845583228024740368292182032560997241689600684114396175824155089245687911716587145307166732936766441481298049584460332586850626829208703306156910014048992320704594223861621760961835128046735998624029233388321694855763200945131978328313256166583966865130670216733576471374169313923143318539296654701089513555496553925287556194036326507580294619095019259357684856451523747418867847307756965585322561548206036757300863795472185769993302233253556741352348970273224705190515841992999955543459934209666218572763346015001254164931153734815076718257118085934888932767106217757038691681956673016095657659395000239659756412161482638687512067172380948309954131755687898612438871214208813801227923674211291006562009983077124772592046332983025406441173078338470585194333164228587109323887426964106190684934402861795084241889499850062774557003838671287478378019069371236705421980864370130021621764136176440458099925652515022151508581472264814987956559637404708347051042833772562032235402866186932118580324616369291766019873667311247738349461138913687162555145169786786756315792674007108565148689444531625517228113875142303885677066633754585418683902709228811270081947838263394917386701965660858027892442449651332941432033710011644378162409996740345292199231757106581632258981627313672959284139685529216581762436519768154418644884678936758101802844518262369575696824389457025582757500062004893945088480151397615282006667237899247065183801558478639807327095979052174420536722232367703721191250762507128929076713383305156955290342581049054234382250572297095863415730679972561766076891257616194083652752011997487185577408823947032943584764276501666059708316678384111189571404725985046291183598732250749870841554844315325125386776499384430023948074984617936834880105707285124401142378798991105100254005567534482131993731752984899546428361761864525416041689397855792999888471100069204883123278824940505193833754273272776140286841553904246506246376988487701517866399961264554760707294106496501646218015443277368292307452543596691005478939277422824771593724214923296008902012306894449328770139023737295771039374071153235219110979912251122991258254050522869759769898616769750117056626732600667936948304587571155154181538950111202574112544374216559429608714333513126153646779713704859802548888972970134440261725924358400025246548944491701352806545577147556193037169927849299712826004618958621760043578683126901455539569235764896945894073860637117759896313096551600288119898948134294732155458788945767618097523815365030400649018073457383122368965248583136740310528122504951911007594282927155383203291501360083415976103489812672977687083869441576001380636363801303473924044059190297648690640531012147827730736405044824000107454873527550869183286274292458167617667282572200767768429273546707558506105323136115281903456396696478797841198564377293699328836521322776158205161909817153195485990478019311503867808399301088651149794989895570635505153356111277418377208934826104348418696369559282995994518700052351007344271639321088213251455204362535760798580116077309713029485036668170681249429355470817915358345928659597392771811015073523118082087521537722647555274665873308095156978431209607605179674518222015874855417540404549267521868476970969961104990078477559894607963596623050990570867467564185786876386707610122839034475446725045334680603181533242890456640210328598719605431200736162205049941042474935372383355448062084555751705273262883762952316039800377889785713653583771085291450241176193100910259020631603919558041733437924712171517235455377271346361896397734055941326893081377018815577934530441941815294565443604508429893160828885010751787913388362844984546063796124629281773726344299586408228873159912168788806893564153595117426410104668984753765808386614480324686514474458747949427334301237405579009983914445625670729046661586298597517694801982057500908085389683201647973602424498654785745939731555406118304093463926470125279414149986140043177388874525170777733722727436187457243324457182398845549207143116430287567070991858954080444896692114681173934651145656779709007608057730335849409167225663711133613343987319581886151427688368450855158473426230672213995351965035401064462887488197872134526597820382210151948605435905134348922994739519809369718979934523612038079534661108223374170799598724301562592070757670673669250537239978180154076958323018846202184322803547183778654344021705307472517758221262524565847621322672813497426515867460688308808926774058808308113101316936748943859904815087140183581792208770402512559022454694577154856416351829623988623421901959968538729383112763602645327862636398017120141558616620380008790177244022987324308757562781415335677550888961919427530639513767402454207785497889939101321723003365573598282730542166185700953397060343217501616704078168122172832791639286224841781695691761176227292997065532420450185389006312684684534474744110764089660768192283114112625904185558965535141735628728898931911745834639680947923466725461616429932290181631501100386119057965494253369991273013925205454196713223563537704774877130199995160802652492518023583345726589310491706893419854158769557123048705800315602435362520084410275387066776992071632253248745171084670849262221337699318812631589761470661744391965069899602891865341994107716510248539315480008028016258237640864250226364883732503970539395295264747792716041825239577596219093299512748846406166583067127535166429669778490332776468395157223081233415042997844531416742069728542016150460854612433530958166110118490216371740631097268214719799427184204039547424698158182455216168812162471456073728801869910421957371465743237903731525222034638252381656956481977352743570720588529373120312028821528778834765752260749316444296962749775104551236661354856033662577220831058888793296237205811790419718668233801073736763393290330316748984732956261639842891510772596806590961754075631027721855037608668693103372958791076861659869399768943198087106781759431308708470552270106042936122607287861030893064214872878242584503742933116090239783891644859662374857036113339549887090305564815327656020790889500332924928278955130915309803544407383856297061999607926254751558087652865003785273920400790099355776378987554342840180388664397227458706466685540577726638880013782673126033224376070769130154062080951397245877876199866792038795725120250069569360462016155050846290031421757168791494334323201078330911943047375898890658500111537014800272729140640294341894392597525049489150019904048422367026990946321911230143105317379115077500869820637871860553463550572756275890768102389177952796486894786135641490884492927306805557942732871343909060851988025154233437004844265445897718978872273658059992105670878811096790887024588145182858034687584332184966394049768815046270531579167399268867890347662440701162237191708748522724320510622035192631659270231747885567206665378596109591425991726146329666214837876061368736428027316876469905080209360484580505629994115489209724037961371623745718755734190794354038269763105335179232358728923107712255537300775328698866870933843244606888648958511172290501219744764376922174459199425390081514905096734666447111749103736776916485677424995027853112845115251611789437042671924538905381717894612491813092883466882231951694329736090483116061916971175846362631182577415896916074149898154425873819625039343202290162830316962484866363022132984583758772775926920171934500140210113895849329767780199006095442068460858961108882580761620177901222952697717255214492064482467174254878272057431227062459635087412927657090111107759264873035976680531388936028883703922345979611324394193202534047516975871649360649298108015105384375718868417071727781018239304101358403397209620119924925552890252961626574587411157761965353259814926994990533645247108454206973187843538400060827486773830931100423531206120179868181074364364896140800576739254149299794172291676192837008289920525822398077892148724315684085540446703009873238234251905446323715113314876115093755470892109021608088477035848966148393826413140863177949427756603392608352754306363073508931086732633724179642706948363435222103440471095284479994406262609392427238067235051353955507267798209546906854532076434809363882073557975922318227045527743792360193744582361238340694508937826643729626899435976548199732402836522541188960814364246529004117754853334625854548691141334429391361540201926972921442304598299374571515462191041884523676909556099860004007522622697235074718751819624533043754763285293809545010915381541721205279930265869821688411064783070818799665723606295409554231671239481043723066136210096459237360561712436927115215798593008430636504365297487151496398120392742031883563167590817214095020497084029937454271187144671310940075320309334849287941572569940520512020634294932886589005752728689763247081909606022638444267668509763331097650698573410550111785440300007470130737286311830218902088596149549263786629496395490475322235165476475857106731442957719899052863250988200086837623380597069994897905888609842290493722281733723209043682111724699164543464007985074129596473413805935978800009828203742664475921770599186435672346712441648054191277804061964440962952687820014832481976560671404731664492220742970124886671003047606637967254980115681050611813190696040444877123578681507794953400019291403317018027376044429726502510313833827260284291795886837573565825294600322070854613754690754224858173472163189867117077858145511510442158643708314067531575385853012926044656874349675270054005396934876517566102417979181359633937436104183119143376979849452522701117446169239167033281311920138134474827986181967969831168878228757409346102357069317432288680496195076220494977638430745882338614968033316803771098082537532168301938526990734617665198183312744152067566455350508137614360683172364954055790747304724773274921685184773884319681707512292613081852047474745249059218660671677777322156737489880732061721513348806498775983459558228643750933024312656605012806528700346084330069816830903049900245788432589311640703173623415986820193750759615914486489506684908297665263713307373599115742356079094439968850272135939576159476360004387155423930539957948017296868617716487448000154888789768412460740253741811992580711804291623728064483051670177728501240356480294122404321273467684030282949999205550944717541983055487981872741298733899406336639364245878615910059401951250495779646930809473467545417475198748490739379684571768636669869119702886128645135952330986206830462286095262710343531839394026035730054111537679957834632242602219564863394278701806404202129684161909597386588085747234790743890624807081417216829812698550959831279407547317870690458812227950891981979835466246059883147931620189918413917115784919304688505529857211075404848272514799474464083878629945631468403157594267370674169769779556841118143140316019513400625584913138037964538943974966650949195056083689602938787691314022023513237850308478708962883032819676575787867585886804879758268529898755878759401825619208384579346764190022694121259131347503652571844709019144346852732797464213806825965747427331066270115047182323916816962616534047166925527166591339729500472016803509570121524407433796788011045413296157168854489901341254564581832688657370615586315936009855346843523050800947218107606638840433202786274467688222964821242536275410737629478661911347722668649996696088124038479366541656059402448865556958862562609383778961892224647548854209991625615517932098458134460540720192342263334437514315392460789310064271502027657974182952692901990202148766240893830555171888990876715463440603340596057905187892052650224803659602382795534609760497243237900456930968671184234620696250508902940136666415915196225570025953223235937484697442666147593359021345199366782737628509100073182667150898750891927760033346161207812799683041589244365968076301146106113926286181528377891877442687597735999772984904632928446197748549219848558981109225045002145951545334993141974655481874962084376661278764603569292355937464066555923111721969758362429455666567329018280700179939294945888164669107976710171321527766759188991609741009237473942741897372172381054442099246191993421382832700096788330023455920896252284508839120177418605088586624324443894375179391660450355910871483333743475590502398794040009674545296719501605671396499584007299497341949715203221652752117433044346117035800449679123061346786315305984668891425607181580198724659157034178506272497797622849405984211086497977166369677136934772936566000510727392125537298715530225634893659150657447938024921697657895449778316048390339973495101700712087790770250228724571780045214053649169006683323479230789863692980980463562215242561188763072409761261402364435985893799178870108441603399852411345860705553057424128632611284153853969535676930143912878225051544479689994103834510042125272278692884890602349725244467294188716039698249393184926326750878320062137101167796174706152587235006355635445986792925406815259922744534928722958843722848571683505090623146384924977345965402604105296273664722170200580200524533463804178224388762324803247581561665508169507637243650520444380407145130928838822012717176807663412886606084499842211772782603111925027717135531163111190423247627752607103464061937002269771524500267436898244034033598631247760770163102129562008010762763902840119472406974996249874484617211327445021355129342592205311634929421137061683151166547197253470734537953237105882729084632509241583703861563311621374228149525881543325363374846290023162099094826252310596884157735697329205422207709442650435631477478799839897044510015426185255901945252875485311835850120570976228486844420587603363847870208055652324317019606774723678763514799241569044675805910690192107386237446571348959869533273788045715929639144638951358336829461757673033669290901764776203724425480113155968500883922290641499472483245946698672751569653711356516203397736412431718107272507759542250210394910320203088885965106987776211360784767341688002497677455823640101779082815466858596427481286338845215024816838450229670345851064148993187640982599256514434135556620276385955691327422407772488113835243040812949239854438351732857164795243921460394922899648466956028769788707935074444335955413297647725174349338728989213671866043523122097548666278871322873917576978716355596626526575561969993211238700086503787833945901265729382193419698334849583486298338910931864123181195934741910629923894881117475185806125278341777173445083881932544060649342166977503984327892969342506960477991264620925760414913904839944762655150833781404111699951138890598543955714037488224048810265941694601070357290270494447858779385579440083095766640580895572298705451303161059455591735714384776543516042852518111917683414358577466025174724008816060840138324739421924090159908536027409398425388026609798417316534955768862248862491495430897773322229588423331007254098770056288575504678987704364105986580691613297774726655376179356966278481617545992903331153284782844749171831717406672146746294886629945246086716790983413631278719322961051001680375247007766667844042726443271045589390350626087589753396979408153408636399126830104465049044083602795932282993098873219989928418188736647008917017298211418169911748909555838334843690909342922111091528883042663279976314961151857764493648155819358095478770350784918434296951776742356158320545137579610164745489977738021305307196678680207902231808885361034804108516246096591979419541396117277661491316970299095626424351495529538044058837253093214772957290985414661100478899382224255502837956631717980192264876418307872551643880735775815477398420212706040838260522893140445214299041605903764082994510313627850577290793653673129229953634862475465965500304585702938048656074524431549759397584821192769581849664116226197500212768701595036922149374858685679051369154855601393281377836194671078213858518738016115853043388580631188526056157586158158201332216717440469846004993768031125730033283897610450308854340457681113332025556158647277137725688219932174985778137325266843579435698120478103489462981624289870202273113352133522597252639442862975447388685287002277686088635301913767433984640779623405125769467810581617596496416163025121390976533081374484045485101648052263531505460898722042108664560962948302047304153173097711089384829504776710888175244457275855893419995723079298855363563378904562085878211869328670013730541832040661665097169829174781969910256998079009143585754958909510424062042311906914425221626377930012901644291179791827726322167977469726906853406669703195923069143695152157052721807861140378984454037830385727403773756637537795583334562036480330957417566257896380834683292079496635779485825135329964905306517699755450938940727203494453738156837406645665446681836649652503353373027480988506534956803459852674392148512806942582707228142237768437274828149609406751184048426451532630316316811186036054059612651210318469395861792999723484306656378703120540580030699988767259614036181623832604963033154863368593054430202587722892683086310939949055146729994292668901612333237423003828642374619822609742867569270930718178216016980107814643564373427678518911319163982476156336904321010537551519152973238028470406759175219874871989671252025078409030663162513613641315630350111190165460060090818526260724097388298755594624541505660845838279904044141151243738671915580553318320930375842137223173091640572123306130711793855378123229433621038293952212823946880112383090952917167017245777204967820647268023662341590851061762662914640339923948459950539624042490179057975120361521740068859443455362395609738745716735064552683477534796260065894427191314650955173129966604828129009067653565973847604188929543593887352168621121192221684479193825560503137837838817173202921926363612976682302830682825597287210460957243885807015019151496268068692798889086255103245178402138825821052038343175613213321841554291344303367663055334215204816776444697790526766642515347417635551211718187312487558823238449070241425361575520306274150915579211458001392397682798967018599550035722047817740370363649563093536809806340647971210518221642256702758294160454467128948003155550439569912334822479102739212694908450029007408926470291088653815784135360989494348947264628926506816552845335775682460287680477408063817654837455949706750780719673645958723084396118673498912784691967957685838216876945132997036616909470235322244717888445478802536723493150569074304817846708085341523701965085819619550761986479600982356521603101940830988752235357402737503215025911782990666224201874944876876896313752746647171927519126617931780399397757150012296330064511878225801578038115908973392923592094583678298069637704747953847897876044945731372051171819554516566452073386794045870411062507799317380051968696716931393278135586558172912799637035101779524691341611233812640585358929420685515315107015472987838918270030804217981706895501150301830611160635784737404181461043033750680403056772087225401489935017499161288969865312764518062297799806313333043676223585330967679005367509196818899187947316610769748260394273000554380274705290797872295269311267524216695611410744991435697673731971159707380215996886738366012524880542802207881665850751648638161215027425222128788995767341965536547813319630976846272022856171337516153058254492851028332848489215465762767482106010888694031780572217558944742238492697711099579480447362627722915874769319640670509594711712864089721489982866065541766563022341188041924649865072619640948023740821274185052544820900513350897851619296007156944880379466367398903181040574624655613832352362070351736874291080305034902287204346637680317114028619408284465972054682188569720712065162001607096664039480616130360158976557957722102406448289198403271470907467322523649753942641420896396848207017573384966973022709049422500623662729846704951540796694642171727774331153468151897167858788115669881478330141687328163122346870819695121144541676166340091306363586222232107607075144513974305034270714397600571585958691259476699739930200940740060148563051638995493098297818836900210091125649187528204740210809591235574474507858406792479569846389206390837821130524979677380616047553279579526788990076640619815564648917713401167811492982654206815081072537689245653807880719916669671446129814276372532454611726242978724843235188237638473743084669951255635059003703382060550960237499171313112840422472597121694395135570402364653397364280110599049823846265990060191499825091472235574235326122902378691498750112352240390660883995221828435851430638914467844936892201154477653059025582880678283592759159349336632279472946347253008892876552441041640465462284087530150698821577739426853148515349864069092836278021907643727649318609824506152876746550561565414494224458253069268756535213502064077361513032939041104781411366525860563421910149592828145884119292463372455178939613730873676341227214530618893808896987153828992593439237771818975751222653697014515678113289075587303360132020731218664652244268985502262501731090573531227086381451562523682019524027424971596323972400406150110199052224822983499052989194370027461192449646274242853407251116531110210518618674357136101130525851855720655188192574043142952375556016264957533917392073425100954801982012204171090744173014846063917357285939379330556847291963237642032304534906304562147446805914191146876775558567225660681536428566039218448707763184607877521317118158410956394044308780720367916270363690979591786370012940178945275782326883340535681796053162138591167308524889278013427224263095924292758707693311493039866694417943267503339274224157812816467173542346242342841115989124874191551962794430986159849059763984410884648203701728108192372675305280967344067338655482354384128991270334751047667649546593870855750988846392311393001240988954808865228200984299936948210378529267806340066173357315484605877516789223080190716857911555434951098484308990735713409166412433197983169210235832960272756110881526213689064410588891782774621655452263592361234376669153065136417300986209562092827253630673611781017474676493724109214041366489253677117203801976203855388320376457251110419769387309614907449981518542378828381764846351966291760846633804874475235179961983131844560087425318562762058994415776402915710108534323676799225751199076354383951637792642203950572391939641408874503988118451247762141225478336975598257901415275438974839472110532009751160382249032611373438832000383675841951056040313797922075669090523144371226672164121365543944636538618297288214493405006307944862097438630403007737799075072121633499970052452038506050157196439314696576352145069323163673319309438709033388407437895779277551639246626807518568732993846985545970140649452375914653220378840035743291336985466049571311981406391293438946469805926482667292182169937937235850053675745829825160821585417459627853828674318950160756054699905006497660000788935669346328300410037865135197825654380990913179041582262415559537240107837830120219123810240595253454695977330416195333944049075780380547181472349990227355890601293598337859453604810078635431709572079447828176829687564964526792327746375554142052824752026774672574516524726619110180052859224866198128334138791178467547961913413197359923490618168544825917222110150619496024843203497831895214264812915295373456602843941416695528151002683750160462217681351940993274463182579660028569251266227472579857340766405895341894093108477880781672444212500327104709481956957220962693116187442490492919289507468608047093135812381646817741758197732582919587314455510606427127614346746475756402084689983639900797639423576138834289767777536925371371082259344299328821196644538524316998685044849559154661898622150360299870280802610886088768434523861861931626351055334687894826324637644837557286314285901880131963097182329040767065600806433639159264448127111278613171960884185915177134631343147573611163404099719656787591583568353831932061381561677708624471755982427959708520252112658378625819254342933922071865922101103871019810007204440621494672268755219536831056868218226698448214253071013845080479639657143694645123452028312016781810059128727981913908295325667529864722148594576214314752032338500587495300561048015822900762081989462785541632504988033507228241887657300507176562557810749300615748910970610155492695523871076363838879408557496598131463030724878208094602845066818782439158614764372831281308159363396275987248704217840784093803819889126636691719490525131232843648134686701408489739767646942667756221323068689814480306239642455285505763363834771770355870629703338768106599811215339805422088494804336952973401068683453250503920539811080755940539734266024268675282258704199936902427533572356859341481989137546401144661239895865998034797276334916474663450299236499973952982381899232994206233333984506396533324671086042377954743245444559149814404545987375606517709476145643922298073889945650011840580580800634218302744229611141959125331292288234607369041831371586179532837710493386279891697809292259185981245289643690892479433357588241643946031406533687593393091012283843792675423162584596660882651220953991282489848657919509252525639534837934627567084480656950495173134762431348637518653031214672931428775015790769698045291253559755821800250568136575890014459325306305871519474903032201179814917070792895748225424598028000050158431757044363672704302328595808983147289216846662038762754129322608423706087867915423342577192186179251755334460365874051815332449184688631179103079794532099447695912183200185214592287163120002210254626943907766105391676499398899102006582717331681225810276203250102338848218965844460417122885011095106917826157005742497044545503618935003599886049875151236727625525676395378935337342973591772671193822696325743453192507496858435078051515879889124937669090985944775272764044636899504463594648249863940174946118639680471448538476586016163145439810788534949541541067938463472754642976941271623100796574980179907706689470371671205951315416909114846258866381624163777954241754088830490521376435929494814797993049867940224771027410089581402732048705559978283381751209434354519345479974482588865428596325050387636835600488220493122977181555185644634658052999219839088292530936997430869388443876018634007704619141337533922698968779699082288920399511009955121450035382588809572686969380098008391159737324169293693655157237990369765931536477148203540081686167343853240935002442545694254907857292357387330635601711512991695277884755599471306297837609770195593477241062684091655233422745599582105595544090030192763471450763088005217215677268720972510882454588854968276616454595304223627433815664160642380115956367697026941579177767638085732291708621880368613431950630764055893159354904745012049231731583652266108486438543481667308823947679148393958030904276750388719827909146107009265638211843218481282506596416964312667073439755876010875964554440365393154720743434027413753328027387988634197617588558468630241395255338411723211720612929795722745524408993710407926090690247005382316143534161551807909350098616743983278361310603166647697072948817192505286119609173336784760734790470342914068800282011244856304734823449280979929069356210779201548330631721243339470152116016997873878855744092117245229074619554508480842340072194401387926318906567344530314889018800400191374714845093590581976413236928784214090367539647857833147304142060068639091390476858315503564435290430744692937817927901170261337703147213696931846199130074333531370716880322356380699169872814854452333972961537229065364146540034100040886920164116703669242833200244464934454001859521335057107364326286666271322568649385324547658766206023755279157253238475126436894397745914431877882004460678707217224768368462912908089756070696920748674517177995553012179172726218944233681513633646982007922836448146198152622397173743278056432627623604351523799051367620472941953180668802846326181398403268560965686671236549062401586642676780485021191585988714242902459077610429880503720551154026310053179440334099497289240020340107678064466441951814271722536158879092314948429661344160310204641378393885072584092854274536154182355686417138396801536541494409449431583586754318900365421386820245619368914214382352133892668502373521670664849476754832676903014811309505418267498220236764095497462601340317032947726108936376328947140303931525967728659511028414876611530476118283335842221998864096213209551334669140272748825100893897866972656635871430543979387959743751505425408100557855739580127068655816389624244091616940150563797042616643134029193253680837433177692446977539547519743959128871259870311320830698385895067564748757409969361709936049319479299808305046496333148031075793764765010554054587335782345441498642150386644173676164676466954848523400635911304012348616676293682283090781483136403780912173507687113839884202644103441724418246325716527273970493383299401685555984406421815903202460844453386598990437617762278213869355610556288660008722855751582269242591939627246799422089240679338692811351194057892806083881551302856904701676969255905359685069656472919948968640771724045510729979911861053423261432251091913161498150202686699730507653657211323503082632359705012376104551326215043038427664132826384853669805800804140912137289103389209558933266113964303163872359430237265164278623513872931864043336984062253238582477435149920770295618307662700126059085029877783299808734274580217967385869515554832637479983883548145274445587677395809333671902148541184919671050034471556678714764603675804290262106644695802613994206864752993449868946736456969344017379555288283463291832017414254788382040540639655837583443577434476450113062898615728831433853975092707316012244716283146950899553829570340437965563219279842296651311734647575510188419738826352823882304522198514948693553682649901534688830032370082835288524325139846911243946049456237999773611449780449530917037639105749122496093488909860047264102728390847933780829892587673090728495606329995509558389346127319903036044544216811702832394723711655687872458644008860550344848141448158000702387272660792942087785235324668530565551234291566080708298165653217109635217622711737676811654418411454739931660788084728067529597062882039114698891995562418397651896813026065051847133354816376808833573354288573212748571909448652629745930517401219468126703098721632493130455832728416558823936092502500011732799862570397799191494958320876266932335811736584249255448699546142291387347836679903055552910608375563600048631039412002794470065061063863535255412421807995161315241047466445878758006416729931000234320826590573240355768583940858478595444836803897797766755487296334440875377317276652926335367734960645147030689219400292262275257994208874474794785355530557177659319063489127258552972051679921152234802627277620017185481793382562995296012209931594403035425682772829441476800412504850051039847413305336708840798338859549136046749619955111805045213023517387123085531829499575589728726739767481435698627021649714988610881622806786836806190469715881697617976666278544230895950762608595854543365668882405620306280671727238382130829200826305599481218019139204159771887453549878812632628380939985253088291510874919249692548025135690761352026961402863377570603889255025322567815940408033414509435852987986086028922972209034319479434508265148413420948958587549303881575776459950340860910154442271141709434022838817818799200065926943775573870975791166082789758226921730453533743224525542588231938335870286900595092048535625405044978093005073096978552777253045706589704348457313615508554992294558139810021180577498930988719120701838822269967850176949668830660029439954116247622048610439675610186070268527072420066553026545584877165846179951654350020649653769984796689225255192942853829063161738383577669522087196115377349465363219181685847250398545991354215008112339310985920629016516470044082060600300856338933548599175653724198009612936850177318681458824487009113429635524791029373796258207242302072226963007798385226323764010283819778835986915444197329265345936637515380774310245211604576342486789623913916675864933489571602809794607063499744393142540533484658795305952483626942223031781672705543846695391729635011339378598241112945251369269053462822941027773512720630615987859010331354522814514855818340340533428479258832377149953142749972455528722225912209514593820182675346512650817288514008480198476848154101781425513978429277116361457158320286110632688588820353512674401627233114916699975386477206763417967701806945564671329765093986555748473364662472864445413454012032111648755479341789717752205543390695933684266973814587574992055198497947736724712509228239995770734929686637712720603129354696209124515054591595951634725048605418338937354672350287756997550977377465353375892460171675327317615219929229513878828538196178652807523475980269095733729421924387578720928349892687629433380831834439140227981784670149323794083248542007057266642010007988381812164229552702519425087386654093560181307530222687168319351262774986758249816138908561827098275393766455103322784833544510610840775633909460631122414436071423406494169749473092194859817471755745414225536845919823878132012573852346822744520810629117387848158100846286325477072364502798366473115693299257903296918054826025243404249782562341178249278324586962342787953513172783011288915425494405936106145546077564453089016418518063473554212411724876487985904092460454302041290370719045316516972844621517983431008255728399528380577171518048316306873902725825004639523429815613042716313173000857582257153212153297939692300109580948495192237555653587757661793604479614701106660027985154727977470466365447989996444533023988820989073612989077079540527710333924549625040158624110807793889585796480082724806566522574367708499430919340211539582177718401865920922620044631004800619954192966159533440905121227745071682074271491006872891470508117165927992233716362389830014153298739558040386526923978004521452331854236686217427250242770201136378462478629611253141773316613162382363598032679644625910906425966169508091217589110231588383341678078994718995348218083264756566404662441606641203535633457126322276411331728559377265233992063848239668523015879983587180402956718616987756521575068589211002537700137137744734026609299349615722280719637063800983238659730647382845687519221994879274457471728948072824909676204905077594781367691109494694530638267981350979185970088058730486310685154688968739496411580854153467181457955634996590747699796424791354743331121928234760465313068121302452277235388935032541130539569450416308650308221561622622415043503075985900989306232654699536816936837682985469381207343258651695495575280193154669153809843001705712027320278922503469754628597757891348377890704657513698401112598150960713750905062628257936283412035881672953516647541550317916179140855976296138791074580121626090153353013823408370312376881673101738081077749491656112193069670411418131811223392756956747298769475436848771903827376215155478062002650296647646283816137770411572371081266322572551379165845872382067920578818729688651115168820579780300462487497998136168534881121558673818395512529250756106074781032431459600965557474253658527159402622683081129163398410632861713555321778055040292587128818496367605858287153719869783726320864704729660843865548481817371214960909623716597707269880996619999729066581646737590216379959996432186765472063671647084521777800451082732169535486883796530070813598443555787872463985713244507278558422491925221995595270026509780079800022563334728667250034060955110240628245801783964221043445140614815609342756983423219791450918903590264852574000124274763835138752952524161415956544947948406173912600087793620488634608779396354419920639426950881899902132817238766994466353831438882651713354855116173530691531480931844958165422825039158647200245734681185237087830726154320535241679426397238745956957533199859407094577532583001990269908753864466748560447061697955421784388876901124894051267611236333303959191724228544339721104160773403216198836646639226319398580387436508014771184784475409628948412436461067930255855706094718890158137230269355876055776341542358032859594882735717235273108198758775637360721680772734898532523588862362057149639728910525911059776448258822324981034304355438766506709031179210375921314066814597425487254211750421987009257588301363052624167580087345178088748539891367023816718397678383030479058875434474970003479496293126601471003311850193761936810312976402733337489402410609916121282657419497216278636859969083683103844958061208356042130089925409078520178333606576159621972966809933603677718840364120977024789809733815887888987856166581664164497611848944738579001231020242552389079431795465119831963267562662363868616292893927663346570742053054590981265032912026962376963244417711900973863635217104874710598554660117226599946226207109381332576287871047998719580974276714477742681582233770359580310649216675632190706379437956304835063926463228292863493304979263931012983226138099781814232002849530951850230789866319941918446966061582282855818898288961619669007636137987920468973945696853237973555272361377948459380094492473353495697521065683933075530258784108469196922695999893108243295291785033999999714720034442745131442803782223932616120925882522336081212594302823396956884173915472342756985071991402339728074972010758152386642337148576278548356677399150695206280141638816480626026877652661290740625299276717871420771391318264352189771122501345799987645948422710475464868188244895984766697714847903315831185514477285303049418860022911897950755637542610582905983043390147258318684946726990475755079959448386470575478035183120345140791141141922296431503093453056668820031527862303327231407080763096732605836560469964175394048389449078661049455726336990930603806045915599597810603743437692854189184497132295882655134398590332536264979291355864388332185143734985126101200305029501045574869858459140655230045672106119511255780910623326048256842565367474692578839242384105546230663040075193441154873379425626594519708107068905443169216960784125660388236131771024669564622816362114087239278888052265479842964235081353351067407706829353609870126568691133603480931979379433083602811660312127052753962881149854086865841973996442692147367901347988793488150186323111522918669176741753056013694085840638379035074560456059030525797863976430631900029888274590713285172476147724577661680363556340792020424155302352576404445944486189171457067077376509664001348914152513287735790560473175282331861521009126395091401231410518114035729023705627155100905766777360154228611238879053101587590814389406743797397598990259156569695478538675218146891861513043851378891510541495232051219294710230027148851539741134096442048980663839566225792010726952246346595648551505406616151914186855142694699260356317229826169114736422633840187744135534555810732541380615456204601385735813540885741419510437779154370275529728822537544039351837385887143941974032804162641478500820371671411214693041587780540678562020524081336026327185360946772020516476465707170111953683689293026004543220081340266474782731375638020019612461857530969387212893084099018939661072923881140162815645811137373110713016443690216797983374778376506147864085446272204917732473941121516048536379365819343598483536817792010899029422842078150158421612762884580610861629387792671731888970397486035623054277226283888456301232190340380550095539091679934726420756916360624796621042453649023789472040922004683900240488119311350793586132066213546758903986367771765340180705394689858149552849827576382955230796811298407505424886606621563263721146249233569492254947365206619854413737380236386462685183980304322935265165250069125575822669320478572232774801157373223698952607828042696759010896616157521863405141729036603885462472626344589979980940651646657702297430236500284934272472372179702233004303284314035531532614713506326295196620258947801748012514936358342477055271711140340323475171177669852914888571056679982101577844745349310635719984742955278143744262763224049751275583592454822211309694417037024581853077965598558683157843769964421929260448716185720555116466937719628536088433508844026305558466726694264840828889947180242813300625286916935294161905388070071130553192803369574818202686807851440949479251886925151796774127405417647509663523518757662857739550791577802176070377791440247477749675888401296929290974166082566181828179562629436752539300668527811154736369309452136827547434769439620004992081002186209266696542273722291054873809095356903764723302274854881947553737229618176253561840249672623895543400701323828840650518070012494119101469744179913708666625729444432769003041290164375204902107817634522971904970347718101255950807360961209907498420122329681959374595977933334602291878524686075434068364011238199233509450028481935705564755286316143256507014471319972766970242548913054928214733101883830442127551843005013375447917981528553989052363744976776079119161013283778471487859362003300590865196912642833997101158471666903795989760116870599427164541517361284663873854969772237805198988020432516012452713781339041486911839215349577434392247063161160981497046500327166518630129145736678289639650011768781428738601508643533749063899918911588598258562765553477027291249784347829850231151856653271135913685688412719972152579379797647636214282160591456256326837151315337262739177940249404577625690295885259965038429092269322303265257936275560059791418172067988041817902654306555250071076358235474518009116339967303407559417391732947535013808101158880181680500668047006134929722088339636898880555063378683018097649161704736298444630429205067613006312308834739123704731801488645726312123874383564399092270131779699527310911505131928579953076899307091060005824009637573115402828694572354106886249097461937018185068418686916880520149464105172741940055007706426768962855439367823229996292708944284538310301186140389872365059297166636577872873236928270993502751863267018787656527254103015344303986827272674634932349812674923092646621761259144071171181494682177448786110848061181983760816671317874029732669987488338485134351294215534312578824584672823693676816340782477254034162056056573064545821021237343815497037456907993361850702477126218432412016011946752855493959744521296357425818607515512353111517737756564490771209620719787570092756696238185243306781208453580674323044943019418858744000998487193447556675195554241407120663904961191458485230561783096552520392674914064272969255513703273649280841147961238611681095572324578434602450722526048333825469427014632514865082055923627254455977265203212191570584726151829421869713970139455393185777837847839166695486571051998274876701007319533816521029167379652372502070699819610524030919010968132252071260658371471514074634285507656836610842548095646791276023383622570719648705582596668794694199417080091743247359692293629716647010818333046131248459876264760547902403969175191977400520143022163949008477839046176598616770530137984604998280897612075125802112988636765878011520600092099925258020567700256654908605292879767471664274726823514875516733469819406836482829378753603148597158189085268962464415317021567194374013653949056572084249146952590924560081233452880355992287110349375359493134566363428711502672911226816116747735118821517703619582704507160963303904170390698304014688940880001233833484447922803782428473161679956356652390529175317079981047745541798127407653963380353041241835917861360803900175319852541722134152180975005894080535843139856078614572103078049249156887081328670878976037753216586585571775026620321623842375882149026918732369481298935805503679363415597927884719302749148445581593816651640563153755903921835219909642376854961079753393156117576565241400139158437219954450174942113167282590039916842788196639133848506605837414221305103956756554256784549385493965909743355126978667760675678060004099408459927132295637261727264870504289101625262332477766795921761713991807783479477291026906147086341042414931799851433079005242891323048417573173313553555885214816971633209115908992618770887864094803474450105842792706224244832596483956608282486982417936040657465002228533948147026828072904335455057106867628323850724114279037298444365053739385061726707356629972485100246747641990651925860704092353711452132343571657575745969171882329056321831532307827500913115455974937623018993553030356107442281485385479015139380658039068454765487148174312729626897195147481309623338185787545755763239638447031739406088289932854731750084113278339301551811410950779441872174808182028343795124898439648877185567969923769535980229297945697421991952018279444299886494624746641108116516021314827051735115178936162688585668919215709141597696161071456164370194301174902327615277444445669240655615306850662078352026064360125135141877665490521718166453747987378600169453584356743434543884834849146592624923977926143718183390179693039623630591471532167421776422290817799581595073043850151068010875489458824140473761671014773326345722984518433379363954729088935977507252393279323840452028278965605710277265606554578081212777027313485512137492449624479223410707305846440239458486030154151707362213668758196450308047945798049314627018751343450268425931848807783667618622190174783686532383687240381240251680255260000326826716964750331060919897215095093520974343536162701647620107424435156168061767988517033427416500020525392941006320998644927345816403514100917056552699912634433211404504295361278266760580112744080432842901219820404485345066726430183333967859323016731297525012343155793565871661914641282531798203341195169914916495649583048361999117141077103922152042743933538574225908398635997324295384626533377440852058281144759788400209568728419108582813238475814384097212045336420795682275040399601607422303826355793919228440504216704681677937409278495303927316737264229701092863955350512874054676569077420597020184216206589965253321101778133779634057109824423129622665167546109786354142953656319810365871401441734737659294466299630547371975320808864505529467336327747708597844200038377128016883504600317637938304847521418297014505643638930336805299080021211095385513222194971366165951454763121205281132843581741837169463612220115441703573319448227664787816606539443825304435516907038457411431309582338886608575971711705520698803071171692130496550423946549732606317254969374476471278881996182013078125251280359166093068884517016533135305546011732486271500886143250698502272103521596335348592969438043569257274653322740049019076460793209253623145658414656145895265830288893708166501241222271138473913062067338301735243853591839924934397322201023725169319953551398421153695301656961864971664597031478151876667402672545876150556120099358884196422544478720899981178679748777698120813617267996944160050292304938036777671590735344889767652360888989404174195311541806178630657970105402872799243682953872480898696151032281064791176036386675811241734834807451673606685156908750670212574522599945033736876942218722598186307256126299119898063633345533061151131979687126299994527785519676104105879794470978072695336725792001225251774122438126028364378499492689208794145872976214773962667817377449220283388044376517197510933108482388583029744746443822107823123538227599831659494604213803109513129094091677645978647348109455954246330152882162119856895816767156185429009149207501781808755547583792557504871145284393371879613810698893602092418583805295359112863807030710222426475867007194570526013503977777965914310475107152362131259175438896542002379192738247010931659351134975360075351982221897208521925013937452750649624704837488709381677219285559742199699074126179593964565798610529687916539007113832764914175653339821810202043247244476969704484799910805248246122346134445850210626493667322094651332637872460524343723391116701082751680796169133523520013012790622176364931261952565307409810191543636709862667842574420069091024440684934569066403943452802397226970203115332082126408275966764089370608951434550947108600820479860781820708552047195047243144887932017087787792887206840039111264146345368886754310400690168031867678537328710796218832198409850648918991431109820449614988047630058667410764733806050017573482782330111905911062796972116706598158187014341967807384964003591268842459605393091987519376749383936622030646751665697059587028563368503525893000197339958196874537393427219157557495717389129355503201015078035887142856309100775419962997453549926342902485698837429453395517135579357988303008228726086626480085282709953176449490120907932932587942684146292516665929453235938219794730374829560148730341202222070610911015512462625188359325117277844681591750723253026448175014940898036716004207447794656068324925782572931097946676695198356673601631745406052814906980681891447127768138895282548793486259921019821143977021306905168237023547515749824449767143421586028441725052024901869661253414762330313115956859888262609509489358874703916659474736851656530848023204150578408066051935195362782470689128150170036234568261172535793946941648617412734900827267483863321456092924288580016776315232681387667235096908777975485690155778182842315264917424488953561718838540419789616971457855098239432844633528113095613026031390398292649248144701599005913061662723110911000805485242593664752791514451906578108864382050113736042389905877733488670309260594042266202090234612379122571931221555871469798032975700909672609087384141544859046977471576461688663705194800388960912337763931248673698250684844447412182131564847296677485978132432935675174108595661289652711500448147101468783064563948191883933606784292832060854916569637471903304697384774472605382529603094486562194843969307338818966808940509844545686211075583399825226722714174562316904526689260901048383461838243002431363862761081871210752893349994649972850816765580339926179085345026688343202165217558760008008492544400286268880330612391912046674155866713954389173953739159042786623004177107977499703135032279985003624315954066728902653393466694600132547119518863830422668226853413406048748547558903088186872738089498277827189931756891613815261754588004468326364990281617485386253106386208964885813342101500917083074381182426707888287542049484642202719933184018023150083885192196775697290827288741592315333644579659762140826642183612480734535696685665336045373775155870490171803422636852177001535478488817980254364362168605835808545954286197138637112610773276491610842329625774550562449901405537378514918369829997154594396467367674744926082754236370849116798158275429684857669276105764962869349141380955058579719328254617599865693381731290205553547637819244843103822722768306697247685809072658530086770799343685684548156462157771625277782472881528418386951508905197187357946500092584463690965525949387891470099497510746441594869658887260596242682959051876523864809662158128370303359390001700321701086436530425792259422052107461460011747911077848537770375138103339462051312719356902848775183424362890291159590481977023267150414853600599958101098518249198090866304591866205209341144611586052698171289649418920914426900435005473767855090171367842074561287046456786323969394254470311331121195378767175534879741148962243666055340017021212622663552722415593109238169166806016671526351113945177403245909211472560388170093855563822677326596525961988043975984899454659452874336398447419243195965731577833194946929401222705395116896087825857841957225988131910645493895985294341241730323368997110625151793353509380399298123961888427026598614264618126353768357343003311303612731632417949051429359241212005530045975544212418722283539651371172731331682622158620202059301707497014144977457746871819822772343954245169449643130133046431627035847724585501858050954387799832695634481361641958171696139325640639520177813156848300775965042722910393052674390502260151689287264886056555028332095516058766997777980147541669337003515184086853386312391705854397817105961010936908345364566357930839316744839678746654568605142649211554911940618914108570887943706053180552746394364551924001897501841505356166262374364801300342524627016721311354082527731352719109793028185240028054180121005859055880717504148318299466193824042365660922750470758175547672005352025596833482795733616414956025458623072019728025092317311744304968057839001941117891078808897651922110595906529438859850755683336976407844133636161828721561396058296108773722029328807009926063293488872897734233510461637057911922407013661458662245536497737733951556345548722530342731628349980296111514455437424546018873389281284517368167414311289202644183315037806783837320518229613289735958143661797450741902857726099392630663629209046414904088138266521580714338691005500513056239589777744342758885097056222513893990058530526107503305135721207029757899057904451201002222321489417772151582602886180809939058517438913604401381644002785458149265645845144444428694676941165926038273348615885133212504714146089966737098757673205048788616590951928363185685392325118903389205120323181843204340820600811453232756734222922390048504057268663666089947035555557069952401926139724372795795459085244411595888240766169965996218581705893629863371359783981941687289360515152854918726403447260899625805787767997521489491379372905165768665465425473959343526112354837865517799994268502018652264906376499701094593674033216530084345242465273759928624897583609053808903734318117544926837123644853479768386479660596462070762006289952620200044561352298866226853973416675248554128721417228344102308359437267603575443357244083343470660436751379958655683424345622930946017935211963469493704278149762017965763716153637424713440901315227726421058256114930748368007545748034811505334823336748907439011023419602612209356275223949275542271410254845498149215095759721763241964735677236117021112706210920659831216520224785060104836548659087908366947248264627244150831537686813468873396724766885998593685029912617281492360718069538435676041550832688136168418537522874311130546473132712254656003688863975642975779237253459609388292194191502487213450372435716207778806511088414363024857592122159275998140439103456015171960930739629247655116415651065891262962835906373717053336879097507533430265161186796318196862869268565931944701195935266356488553946250086900109368549720017713879373291637368097817860457435129087989171214087242095549632714770229274448611168498337721422356071383764477997028014940085012870875828281409304193173047120566791141599185139165158310600009562247832522305390283691525009507854304268715391354039575935537854337562670619816948664277558798137755511429796762009408544754743691978493124481858691002732144814692854332475901121620014889273926604105281095725598879935198407831861944530405353202589742282998148998054455589071860354423624139452011983975402400029489194655138527181586349561135858805693092502038758711909445912127376325129515441080098909634518401052166529759631605230662294673607563971385247284018827126328104746834419484518992189323910610751706113430822095509778739102769582168772472493375538715543956207546886846029242866358270500743282375842608753120051968376829326070676834399007357040424283174627253203195731698006597750751374576539330768594812147237659083288322117230442330482547114142427359045548938581699682537892797754484599172599285177233901059521618944158627150384894166078839648576807846787394462619065750743633410160548841384611295593793151921541205495317014372219358979387486156477961758844981907806519531196147587915867802965959221039235113706835531660713899890008028291658526258392813191190820318666963498891105230445561794411922253129501881593606724040685306276787998479591511649028923890354692824437338182952051708380379532455466939864307263325649376505969029904658449432618820848549902226207337561035780824317478784066165413505992585961239638396926345074393554936408818753081551210163683057533409732108464985702650834803198170938899203280867700446159977541492038656600728948099095997960388643179590983618117818565647630099517172504719282340749949789653417522710226674752651229670199359464015241615266982559611542124946413817903078585764990659368587120792650129703804349983146210580874424230804775018560545246397656314922282176585547219883041235775573615525073627132852061716402600540742773389432611209833323174031744609359063995223363560621764484176449737808854218492865036061454705304754510579166895347369883539297728593167854127949685053370050528850383227062775280552654785951613918061076688421434711670877856258300538373476551691808002893088243620450122004478900320358721907871416911644413633037222748848944493050115188984736993812486758693035044682612233792006970772495717284622228634437065585180998236101479325266251565267932656313414444419627245932388954247013887722642727927849210087167586044678341969711580823256514950617589184468801199935094896285346508177078253080874396073016605715614553289784274829869865741907200724197946874217620009514129271075352474252999302806014980005733853830581481181367200555483853824499253259081089428980396814113606859559246338656299176549131130413904707217447458266598451329764758538731056158407218958338661636675038829111659673450875204743581572850101886174574160368359279315056512347418834050909777809941241897656810872086506530132476344335417941891259160109195016819042114462433763695046758454314520805785646487498291712996568977146727422253644798790624214994806724753467129157806419649639520714706574550212932580326349425119327659535192998907107565608797028806964381619241815034074232761559639235747525825886159242689490998554917978401561118732954055500913624896270391877071602029967614325085593676945413112054248563156577447200722184462207509495923412258033428419799983353431218665256552345706821738531122433749471049523542380130590239290225677503710093354914328427615654055580791748036161453117630705732344875281202230500164440561351907646966341759463481555674634968766594117221560899124443046142338438147157921925019938423730620934776466712190736864849080480621707697021607871238117191751428047405334221225471686303372887108875585270807257652204751780212569475371140153109064997254146832875934106745978847591941178274692680522587866481482457022368339754188107256201552672698294437022611835617388126669429543068438463921845652324524618413783489060176671001004333906296201829172940128780017909260199955487484011470484085881702715526341927320798901818520497888795296774132230439850492504532200288021678948634363829273144020963918622635622732229519146002859976695899765953821212827811659722725085532473605021635327866241178334953438730712325096173670128947049594098188452490358030469995377419909709074393185962176535674957391459871011535120075988185010614852024000133790764228110602930929242370410901647529211086315017938624781682397704765061852577830698106944527984929615405688142119854091512424981598455004898248966355924004577323366666320994492857006167744306097517598649187638835126574472787554033212823500083460070465419938137738948943061294354039514803340515716129500491961064979752070620597104152221609596830797722016111408065434823098394865972362176395981603479478824698242355857235228084391746824543820190555613163103981537906088411290206030924717397954822951753156037910649499151204417456206732914201217702041335462835149964895836690147160477869234302839244219159726791434152240387714485321016868922538766507438019234573725227275822800788859532593802465600280169512604813473997647747303676331637239180402144733626907602439790828041265798387628251876032923603993106647696347609434411602880484123002030894217655895402794100902175953277071275244421710829154688470368211421981274136318878303481401167200317139630214021780905313429134363467366422098931281017011650363669093423116280801409990399694516779134933168162616504043697329954538079949945442298755363466233181522726036705323391667215714618700006215828808661151180427329564848098811796874728566673766773030370568836770570506304742780524013134504812702456787072628342654075086382212550290825409373879269003295591866172940358221798750482448747154686872951855646245546222038378468289804857573598027182398181080633663991091541638355192272646953422209599802013055363619043015363658047210612077271527666685039634585833670855130587736981995935605781425477996593968290584929656582384446674726893177920513482114488853953249748170026835310513005440101472432995851613525658638294274132630115508304499378917430878012041641900113673765555626542273759660494562676839980436740014852750219203257575669312061428156099212730679056372647426899869100261523010014746831320936081417381213444033905214483544755029914228686797886010930832074835020871378518241055834926791129506977540575920018620165136260237870928202712622685955443229572367733146599688432999993716218031072761963338976978162478780976336800362818124195313974429850742177886461485951523504628242781527568056247153512081993868288454732023772300262127522160203581305378752897670615699102775227310033155030523214861893486993212514909871352208572162269565865640771605077275700616334991685518389278264656901144700710036902602317235260958113570125682073478279736462267927867823228805334921736360381590066962793593837845326848287726962980320409152361695477120382608446801568013545868490478888253702691442076383556554335371284218397990146180769639630605414298606964957621883673490506744383474895215652733515352200535175460760747973916978950493643989416543287365145683057881969178554650982491570079847107807925894476112074764186926411240031644125001668714213513353626407392163631176038105592837189473364052488061945604501779866976665078537360253163306388676143232042881667942704182130502281634441864133393493979123538045783635112919168632495998763706981119531616914338584455295719155861961380129134995505035159015987688915560419415613681535311614955933323555432176373338907430443502268584682008264580908978543577983865068001671374400316683918265856358999317264412403809912116311465380539177022031318329641947912551725128030996022696570696474917053816145882594612237633342862804444113225257452414272687555260859107368441099690938214346684869898288172534241091437079780885891485211113667157261208335187536312754568257552757465914761417816487749374196132331914715582124441766543242922887506650952050861231244955631039139109560104245647150528087626279156500725837211634861461472311784583781826935544202562582348704283961328394166760195269747330676043907713179120848009787063465990248055725788389634953612815041008559553913729763566791764174951130936370697758232069293016889842423637572837514000781672536516975442963423070803654674957938824165596160945094075770637782775179367219893628064525327331290722943576234544792479849817655332322638336207026880474594038363121740806464270050333048893093018632175008819422864591813387232711448569511162334771621071569650650506708956016629414104419776292075675574387039090386835996621000537216154129704334451257312114566452651999473979210347116713466147313690833425398240317541737012645397033528367668621620640113270314542159273785240419104349811774733313445965266983319448340914144102347188933422771937695111516285074078961903916107942197290793555806215879573041476306958099539204482016250079685301874209884149026686379387692176116376838499732487053000294458579334714098866483624522802668253577968770770231152560352138293309484180326182295287108735253205720084130101457656662423693159892070770885040152271826574177158616187918708313396430580537244663890062663967518806380376939584763199017640619796480671127322646283701736048980132047618604802439226714291637223576584616456083682031242886312525295006625318266707114723003044850687417646729073924504669225917645185213458424527758979265682241418759389157857302779010499360866106802871179502890244633154549331216731771099755464394166191825166352805154218205719769524925579271885469298869112516822511548055268432002971431406324818593083900294246866877102841155400841572425481847281075909480485111021205717200299767242610947160483244855422758686918252432077456884079051275084253789699551791442968135257168431858404303338404055150223860316796570970333211783582203080733698768124451942534570163498435318759564737585828425047514931526499467193193607204464755184200044544935662575331875500531667258890790275864780172310745627589442858967871615759121333609285039997277161831806907477300318529255758790168272516662812551418668296012163543052427315931189672910525862862390488952320076104495346796836086679317827729148482588276423291108981548469232687890751188147201701664333104920318242697597977316167978512086722653126474261353125576502817026117692223428478994665769278208371354105301787896602454888522986344920339366699436611054579061357378203496126961469593583016087825655769210915352126942437061564265643956061931885879424843556132878870448609712831095741726483352652948057901049585121278734730315221863999065701040631361202821438422754006154381113958805128009105737924795479292852171353264279162913697040145532114588921624877990942986950789145881212677650211613298524714437216898629194087912101133330599718615323026728123330499466715932564239111327723049748314737699476662706133190776521972977596158824182286784706132601226039187191440255247776845010884457429978325007482872649869110979400327061391039575107554541195088285794915502430681337566455639406462957280226624131909608420610573492546460377836157921593124650793122633589560512806199510929768754180759821619201308424492752350659406245441225054737873575928149340803459683740494398105539656115014234505230161044154089173441644902147166630250505676413151140927929530796424763189860838952656145257392160475602671824577710427109281436375514829258933341485780235527250695665304485698984418061569504879372621362100571393365535170647427423479528272908226194931116997861235723278579579528415604932545805791146349381208413850715950040730851695679671877311497693179463699866509956478132838630126150919316084153032842355983487071959335863914006378861118906880226237839839016008290418672709701809821670205427154920511309918597223566495724682850870559015649208012908098588719724893700767403191118535670301998773315885520275068336651073887740360002979041070343107238236175680952621189761618864770285217819275351758359277271730645799468094782165789737068908945619684607842680251269212943327735819570556343525973436486348184911950480767351362179157055117262751643822422084138601644031422393887411257634603923616498294527513620786513389049040022412989886226084118007048690511113064031866583463914673434038067303060690184831185076355871724374381698655027860324249922779549897559201065062358443578979564296064647180036147778498001019740740429621196625042928485539133438643908409436081754611868793776150214527178662065480021157129777101133922168667091153562984510894670371135166953316197721098101640961293909629428196296200750347023207219955371555565761515519307305009271729535874082808653679510103458242042759010027194276295132735815639180880468123993399064865054568482161246187850738916556750269830188953362262769498347189371810169279389024805624528592425531066350395047660098501102006140072423516942705797284829795799508662290059681054018058241304034832940812345794625091174818169175290852719328949610765525353759201466859244313306108018286828017124683209549524296496088060981383753426508855593590826531105892032388600250625782443718949722332174587645857144063769030804082995302053560691637857333916849798713329582588962782364375150175340661294267868542020825210130898746220702275597862715989605548364132760346886190086195375902844393489400573513503007901125561494291530481005891103385068783253563973720648324708034056402580546397918571241721180043579351861946614122668928589754707810173576354318448143343156200724936504607412910279079526246447064225820136580603520215070789773961073397182114557145344743109814185609307770245869540231587788634994611535221631950876561024015084414989179596813514291863505083607730317409524629671849191655172104635050115095258868384336662461006531460559789459204932627041912932828085262942110569522062682807806230458343320269097962744616952633508155962707986342724003902944899867590450132077555201369303264052893286347167895691092079293172014986585515087023912403391176619290870322178193460368210871543510330146818114491424820438268398359142512865980142885275617443410069940731372868055526394545114356204770059393441354494097960096751781208225305314293614111239302373828492785525096667100113262044123201535010914105009709493491142558184748271528150311175193196093732882049969003504917925962455943273044561433626228987772109290034673103634693169967530131386626763859748709006792621475677256032821710827422360984733208186190065844506962817472761125506810531666188021678026289937311681617678408959049395908773976298142738143659319183145789125902640284621385359939388336123924208655438110998849528879481550709117575406323167754343808137365770579679891000731270603222490215094588797197905751215405616277473383876944618248283864788210542409034048287279486429031152744176365387577855670399063965837122183704015200673979130419420886138106117445685005328153958859349431946746903649596680493284395280385830819853132169563353866223113062955841495006429974099261879028924943350965125061790953940346857404298677506441115278943076008802366785001625088959026815224107458301462787447170791490741930958516382084261409233889336109214891178888992896100925342730145689830233730594062656411133128376385815589010604108642656712186497268804105838650271018605235099342651145991889113243623399419708367548876661130220655990846187394564780853724458507533802083456197011482142474431926939789018913332773102842877234745388297172826833611306672520415654779297536780511035826483850515418783853431632117586900943159557476521881264332532755793532414581218454169137814648517406294346926875620858498068035427038604608499038570605228302171030674195966771621773766586018881544642793397652560604888834331387399837321641437586541790774220425346560135069780271720779585788870363375063913772419144001117759521118295569024252993814596800945989542098562896304225072316287739652014431995936527092268464848692586945249230121963264240858419302751195401217254244168736871739080215640181330638966872732455348123199870243716110627002807314507180749124850934874053957628531203305123566296777148338181770045934119333395563036837375968313889594971634479816223017200886116063038819833064742323074948763173206895907553920211562154465274890184826686971918822840715339123946140329430214310934899205792915302799797500156969853073209185270366645074331501675626534555106178712823799790138761310258963792631300736530839016588748005542215575928654152473388561873599296030334218564620708152068756106834930164672883192774721345293391464264995045158994721828618071029425767110368550431521249118149688021888225555420256179730380718323404887939635339670143215825220069540595937873491240422306282896765739049917551891328357296672438412710928792419298884154718416020321762529881494242002594499904342862628210651278154926823058902928532737743239834938836527715031765602152129469209674043085665844306112907931417985278451115868941587868610654861760162653177150276304421292889806829572807710401461398866519579851578790330678884436719921484384935493660143189729213802663538407792126365024157840131090421325006254240711929763452758565329981374445373761511042584707582981696794008591016086258084112341188697233514420533704004932930383376703083184012470776071261349541037976688148220552006124405037149486177240459658610258120231125316511704908142696804646335332961530984047544742533494243142431530877984068141451561744245190308613934970564189313984380629459336412175252518089002164488006149107088038963467089648630487893528438394056529254894899462094892590830549308999530121688957557233566586661759519440100715937920797238886324774857501944192468948695092700728422947705156198619296816373537893268602942480431420098979598969890303626159432389610720100768485826118322075979256639629484843352466987670245094852942655040895864996896957268840874221933738288861401401752006156655009501335684271955871497588848773861006363983600672733852004538421000061417535247928933912035730957451125202481063045239005470078887489426080265962566074859236437468012663638322140650518228130588893340693225703836953006044555619744050592516115971733958467346052816375921862016395554196074744107041753944326619652996495620395250651070960088405363880507324081080007653296738054524860433393590260314532029293835038809717869221952329392324420503143267498887319264111549157692974169534246035673319992897996193211963046823076047561513667749361306745805523027344104873323692673599529561726602600965968462433499740014348750601609515798706140181179657053039364458063511711991270465293770748416001633230366390667276896635810355177918339935727437497170062075118365270257156722230887302397187945385056727051228963878158471355674214766148605927039553787632282061486386648551582779673956554204489238528768447089166273528250869752183262701473117909342217587049356404702968169880264155698320893419571653198570621907741032048438075972937694773398167488741745516310320748254744618509730302918591602382912286058331483640832793865286500177200043200566648510797571212358813804251988754685373871796726869405724668446588988178881542092706039879838614290448299798153060552010237908596358100423500512319792045048607410837908803150712170871819060303582166369960319478792642223540229076787117094321467433147190881575653401767499221978961962882911262619746253596698534256188057583800458797621484860266678874361843856232455639394537393889629935531253797077639001202015171697128567778846496689204399713782850277993093817689685700283803240034877223388245040982994985365702514451222712622534024719601217695284714338393701858061543313104191750019407800393469730658632216404030195451624276899598659491101365445416696250168039603501349474614310549756004594628798086517338702051450493317444067480810756229504463771439586756480864252732433789209484532957099265910110447797622256645100303254024815324394205308000389216893509648238177171554434266229111233687703130612204702820922408932367321912587957993261470350984904172345919578249311637081421063217188586227839084650340620910873696663453538224563728456018946919236741253306372606903195540833866159861055673321581093528934950283958009213630041278127231297737838172527175055326509605251432113985406690005178609057941213019400247022629024595683075508637780124026785350222740959850207176584555711435455447310221127727060490770681228713947930992150122868238543993360685463671568534212327981798347963342739246396772411985976444067478538096357440361269696406158624592800264765428869304535142316458064682156664009800852693453236532111724008251606745254622624917483760996759688443491678606124973328638721612661457092712523385148130104589189630857986960379534604809902507296607849821227718042207440070950714300701104063603909494864890504601756540421654272998971797665662367449599751966914971249691375078771971201405452796380867146504196910197603536258779045873206095366252874996577986035618793570727218784506862608010116491769853793658985526407351785828574230913522503015845282963834201515272339253615538157847161928072927383420800867650571840036599593055709675980221906831692248407617980636371560048032627087752779346083132155301275700595711559742752500757570387482915844167498177250905684749458610871508010326125139700070218958815577301140011438403835751156716073887891999710599375267886686932959592112486868349302645279260519185704497977258922138416287156728094118018137752821882845554386158056929659451256600000318709522346418280480871796120018027643081706702220938826572523396906268666482302176564441476877920549966082447926993035719515448690366626409611365268078934627214519728612584353798323151291040277102480926089893092797794048895149437189341012496623571691146823243923916981120945719365852606910176245641641868691339707087829077949366693645366077878414541749400866956112886854025861873295628625484217367475211425288649151952791633458228291896497311204858229457896523988029933855067674360228457652384841357902324450926818999248810227387608750218088152852580946830510707659509298913958138047403381282025022847931393451497395140241528205189832158892462291943890806880691719158000532064164691477414083358106795742610374660559060957635986340378098207834769833132699010044632166755979417578066710385901191443375712936919589152729838267304053576190402802155037307285289052905694626606985956334811346815124119109547633952748315290854852543486697992654249722521824249328541104880597961716292912348241657363822722923694219258512706321329143332894047068804738976570583622500643560639242722499495739028668968167369341018210382513794962712854741354791485754781620053012641225152379651203002019319971752736879411065772698482698548415342589071325542108379876503633371029870102128600687402649946071668682416129666947154779505501967483569138926083520178633840003750264684895243158560614916776378231316918790483077107813656506271528795013080390892523585601627645361508982976821874427443360304404674957408001169998995009927511057658756615735176551323441406254411316315340094871524797124324381306669378854597829547556126268687880081054248530579230562941542377542127389871036790964189690146524710965677374024444285255748132729019880766262759881451571861025939468900532544365555431230843112910621528505277067587357713716198259620361526345878218213297276761143703292939732705466782170335910130605241660013967044134647453418133739361229348950499517596997862292084823127929366504045390873528633941407628767904061235410832337060600091509502750162789376526895625956423163774955412536323979427077287995096472846651455012703149520568198669312380367837349703913404532336937845834974269231052907001160372883750264238534065884046097602569521526268118118608153245181400432508220311476920226539860126998403180966750235568735248961289262150431980974572782342688729801669657461433842205349504850226740604131270358291139048388362168988425188220163506133606354401926852223803576986003446453781957499786481584796686634573694543146488882117966762155043243138045950300823966404871039920817239530642852592275783737483378549349756532473993106636950472494385444080757433194261586427786875860536243652308940717217569843054617601601821579532301590525073087063773454525944599727400987079913940707704200379463547728735714784000112377471712662609543663764673707533882149199666592515131546751958563320818497139632334804092314596246811663933837547995933572529411300092665383148135458631262145515426940906149272203695939514237716673823776935094998203107589897177690184821222139460512601509259150166824321103869389123182413217888627075950959359796942810017726998885204130193732603574991129771318499670467153558665799462356824769598627402011585100911141263790960805712864975884618409997288472132448238205023179837190980259382160767194794274965418871654472209403388481519930890065166348683501362682644045932659665121847100003243169568359030741448762131124555789892437519269434509378475549681141859193459459175162404599397787942600024438178039447500871028394788441119075345231566733081634068450290531635783158767499215265269158966238109608036470760479285067836605533656218391799254228394559733395105695011620501981221756640133447550633173794429994725976894946266799110070316931903856040828565347186076954640659196858783381172654264283870522492818433557572810836586583057154919677625031185893017809757996101025322444626373357427883675271899163181680715636131832873877392294554670320003474692310457315443683203024529393953598656344101037238233343124899262885544066686272593762541053129787624638757103953449175188141054563769392698386994515679679231892045749112144129812555519550757431148901037647102892840465695305835431257938247605750684653943335162229580499875781369156818386409841323830653186526418913849318518794942724832595171766717200920438354557688306473293894804307610072243066406667013092284809682837781307349936838512336889566500158673162519002382756960033201138009450235683565534367165785711002105259820647055121146310499504766052121473805453237216483323891327209341203067388081904884533449830487239285552641637429771535130815091581055532660782720851180452170630029221804175665968415739456983365510158339320197525800427930394001872603546402383343073114182041436430806684000216668909358589409475403425965168839652846052959873523704953743997643820492993774089764849310727744756880031762558406567760163425702809203710841558609016016581563250544181568955733018546495275736926315635834597533146128331051036566226497300924739951565383601142427659906426985284772708470634904774827333568997645381211214672920043337943583697962269394247399196768877919355460451082633237051091439821760394708152992525567166902824683001166205833619232978949132590312514692513173746883622686363695147219439106192746044000200850135813717932867296405647281214393855783216004048443197625246807381138911593666326657111906798304895789271016041901293974602595376034301029941860378687898334249592838088256507434197469005613275616961669685914954534370592228784858000308167484085456946763459708907111514575624327384842204727421685866663464484266723428925923542239380094246760359932822051358967807656702960462332981273007647263151635334194420533997329871107269307368561771425599813573712011968010438185336158510001669601504001170226469470912428492626578443030366486300729228008145728361434813997577101730789668556526673408262440062999328404045188000364049679838393013802991885880413542679047435699742563836011513966222719575035936280882754732475998661785693274732557488833583605618277665554831207874166063015892739812549274030950042679172041129272127097980453057227738237644264191175133497602230559544301300325057469468920195695759778881476024969220047978623751649106435527844121849700724388109785219959971989782185738531185186996015546886387647676292438685482666483740566506171924250076793738442634482941952423487807583290851959308318954753811430115411402694855502899538968487452288727431778166340602886733567124162341179100972779779332295843297648448619053930639698807029802738580504265631590218848067632598409189606790785400199165819167223519396987052674971676253355280164326793102370729469085948159321759238395569680429734509045392522604970498634674103534373566821181880912934123283510280484980687639604226254162888080154214159906342239607440790885584785268346664770480741231582000887842409491387884224308463762208962395199135133647878823294255407254298019027135539726622325588294195681789898852887822328414184611910196661824818273992524939109843115560891979717515038834091564675548469744679092321161116047010530988937665223366458050824027133610700171972974585723844059650152681424614865590093844498031515801032452747821948536565623874158084339653699719913385473110549485873332071513959383117686872709966329583010809902400442928307223376130148087357922942653814479036411828875095744660845874620691203796075144566107627499272559704273003388549581290948256095990164475140942717457926908239092022056550207519873268851525198936149717755917797530030579300332206077911667271719109448659797794325408727802018300801137685042953423843959721879540165799897570724258435088403180903293879287575383608700550093438082757629839252116714249709790111051095809174405280583046853130086503129174259512785830761220422797595750185189878175973793702459592344995214574450201303665629161373774439514094313908659649204886896419192453691214888035453238869647108756526899737337065767569474789670094417105075056125373019902413200677654670033918334924357496166648633270672160183619294643820814003137260589267719520023578393732335152502505224387942133196501279315892605142900204851111404930869324832414185722123928644578250686445804667081841436353365497165659019786624549216900553116622853820220497226226947871956983442104795998766281159789038717792626312893150870425847078881052067086608506119017286061838965597492853186687344307739818565022775854657411275498474789548465082177236119326567423181539444746526496999680465538657838525765836599695027540056707269752836123618446613690261052672283782877635238460397375340317623123273745980542972707053793511440543793732133629695813469827663699513638218536874997288336706065776613091941610927426945889528175123111153842107357965453541307246067179341538696308922024880909411378285675323862778331246309349108890465542222317375421989587174861935044354429368379587240377076582883880753853488476122746734031894338674687114587252103334174297643593883991096096131827791877621598005016375908899494080570001871689681586736881193739974595773842980091533296755200925189691074383425374138770027060803785487766270956361698469453724909280173287701214327542376168480610535957986428822816587788549767221351241595209927873651399835622096533457206813301169331076832731018812442756165848519980724955570329757067487807587028824492627598556662517967685713909040543229310299146292061087772564556528819833234662145543395618738202049546670523105750528571574145496028917490538399357413104233272301430985969912396870437716262326462573445839656494951856006535656428016539959637904983305358655579050655541267496155350792839059898575585175268172271781905844104619321401665317493324905451047454497414696498068319575141960600181047553883696201454000518121004955334531241993726357278771930438336192917339783502305747409775890795114715214030810655082058035398779070232252822303255130030091533351230570211551777426810952669105805652410661886697272552404606620118485093152283760757574484424724069969877058061462241395091029871890461282288634414960191286957510728815168225529723020262517931618213146231759396114237683208802403573028195478815994558509565919543474882412441099085850935116581683898274564154203563459369508036659886073237314740662201879961115974849796995838937147721685299485500504975351743771595445443278964269758326093324340427936346717156392694550946065301994395858431398151934593893059881505793078162506299518361900780659255005212412621887973869800349376084752684433253559798125110192530955229190141381467452994588599892267608805068489330780287836169176330843288822879988781387516020099247834000970386596017071198885272614599709318472427545788452146793028067617561311114835199420689451022420311422083730399119617609004223907502780250727544051404086767847843530845028892679160075110818737812550121853525912576918192087684983205570288571551863617694721059434827511489219846246019827786316324405143028722930222565929548845083493585729983847626372347134046479667926312343221684241688230786214817492238601152967782257114200972238602165321028815173073490117358861296693214862446977841655231225656214288714971710075916742000830258196348994296175191557280008378721313747715361236437288300079023288318687946357642071118404397796347599854904712559185079691321029742583527958575378958105647820761619787846194722863408716302059927789174769973372587860140498478932957859758947974972190320280899774425693177606774415293314335704629259549760650092210892232346794129538580003251768848257820187592040300060581236604515486016722881072232112617324390368172350404260684923811605151965419191565852793965171337060646458848395613469453828213772565376517012500587003087178122655823494102170354635491566235503530020451497126882868077333213369989244538270961603101275848435046023528764235533320505724029898958272910606289988084336867728725986404781698400479316401625986187877052390883952550794584246120461286124434016683406443440735586771057230843821846107036081780844879872142983938131399152193107102338340896495865480498118853190987884551281759616401106770145626900488743863050400385697234689702031591484707444659102330305135043408833657254346189285979545431678428022138412349781785849653027707553629660969065817128205565739119050483968001088102273235009477000134760278678716313555510623086494761131434529866881604043810446070491615243959727805497537145932624276844914029355096708794501069293688072853709938049378411724225341638285078351575337959190129899707878592954847233207271997782738211918927925108533529330637142606819098893447711872587033773740477881690792226237579517619646602250534437372296076346862800289791998057384788200999333200144148725149552142209277973973612482885926294059443852103038168615500998516964710288493532698500958454471513660371140244444074470636126927907532507736823475437166389512524637728411501010037572145096686050073121454265354397874989287886982003972222712068442931578315449765765638615616925637141222280045598686312780854478268388786152234756148854582821217361153768562741663960679174565832652467110983306409503954670923006630979085607129541757823165246876651883828301248435133559330338521643206117049372087049836768027160699550371744880482992249457307176363623864798392088998981882963570598161478186870360642677065697940704467059410456191948455488794180507772197129880112843530638362849204005046105137662758213194600037421691219370867185073156976854867731813426995506979526727644902991603077938978157542477955951560176536529923707001645059281686887574231297626616391627593211037347865650294250713236081494224915250869297628401856461174381105378936520406147517253367208295251638302942821600045249405194202682983560060107278484745723751392604342804641127205424102528060527016429994811737128376505766172700043576026770288076309979701115486478630426216815794595507736394329358918705200054825721109708308312620667925204211612805515185615575713424898866725157322019090033180348143363240646405779167354712478155520363392564247800990638170004115242477236729714983626138266120818944175809249743850517285653191269203808560326952542271516465669334787170939866411098332713505878823419366628731677609105635035209433236766708794804070040928250543435860686767552268726419810536696976002167535831117437162546687845106814415433675482762036533005531416797756560528390856380773370658219333694738012567734969619416702056445902256988592517050028445494015329079875691639979637263863814660636417567497073999778658350418041234587891055235006670284092952875626813385982704306004354041213954831482079461734526760663846648429325545109873615565692562551008440394690378974636692565592924696322904788862412192903429266199902632130578601346421226445764507888950428163825686167939484920744749593126494241085647118349845746262289888024732798732540717792928922307393568018558486418901210819533400858322920956382717097974302385615401057349942267319487652341943270390031613602104271442859396159360183044237312228215425160351857619027786796194493051819765810547807896973173914858814328203081004072888398517815270682229189341694467691393558374189128080124132255317090689546500254747471811572794660986786391347541394563099047841113273154851209104636466756078816645651508797316962332473358485709233428822939173843445425921502980675235258364035111887776820034508270266431113695282162021560934746514177953441405755551069559229577981123412695234186033898375230242867099218725569242193420196581999510459715074039846478267246855428746084420957721631797723291625348633187764023576627560292656039551507723932882398998681633776292656952037904000605283929905639267323473092155678634203126533950075568137787812595148200851365065466330510033200696683700795709687326133223539077687299201598622719641962064951694346162344015780991383468732357790613055765693970754935633439029724656844988639822429651021914085486847552856286175410642277269166979098826518691237037029474642560172218356747101537331333139921463194552050125006476257128612897440591937820459891956911320154017534951409083559356347225058155111962024029004598758174538572060569453135900357460703457943966453500028266522746080155489236534496844822882358040037757332057147398804998575377236303614913579711120955878419929907821479652582885940447154861565752611538287015041941133918571953918924274817211541512914463918868194739457580921963013721915342829041580778628022714124156769502874487560147636280070971757437008177294217571262576306311963510082983375412518647569066014788159875638680723356549818714902978390502993464286927652897875391612732213072837461617672033968694299173637801045005483746915804052438694627072366550309486889877601334024234591941636684268624201629776741687210198105011990677824056076123686366109814714287023749629020473484836785122752133108093518416840833889737102889689614564284571833257562803199102968003312429824372121580564158127516348767956358630809850123128883157896454559409191403308661525839296839974662122192044205603474650622113978339111563969233633966968291681890285471745326124742141093105889799919101691808334476878905849392450420195231697859283770244069695990909579788829922397033958910717783798464690445877081981921121909430371158347547476517762996991909300586410654861790940016566497583102172128921036195939123225900769368233283719141888753020582385393866306012426876999437967185226179440423432375175846464494505477617908143108964119012800138853335323829266583150807432927124464669576272656720601180616996771670884793802440089202867201607823825033557596222803774472690603212443230388461320892709458877349896476639986715583896005330465561600090127785842092249823829432129787149511107109322206606254701747533584459318860711917561862615604107088357968174911027503538638748457029622440732494508795888322473980798785166338443693074599140699046997693512023155447895504871365139073935477311803346989031320681843952049433510803635634142204403816090349834148912941890040313095274425143042278682007513521202149100344196329753561228873931023263625391407247337316107355160093350920391326136443509532359886641199779932770174112607266811994382597134236311504241757399975955987374885490204289712763544704722886686426810627923269636737359002640380351030984886603562751861429722757959893895048809136569002302727402969317562760315885959954216897137087507475502594338387981526049036456309289121387858505336792268268703876616303193170171786948741011042426927242697096980698582869138382715154965272835439561140519634150145838848516781005609716498426942480158890782685588912964445512307162287664250890279566093033266635850892895274520857335705972562093841145476592053507870683518795143154793127945495855085921649575906634445827750338192234236190802292042827102589708003301669742355843200005387690543133483736678694539697657336749566301331479096048678191121896851370133800129921211506198389552931846873160765699072525568951094560674857574012234948980857236256704446713434505582639309200729947277215848952806340624256525258225520061335483988716805892797028037126467845416468002224822555179648241661311926186330244928450106855410229623664881294448458723773497578552937052582418907021999782421253552741556501869489372932705529951068180856438558816232610255384791654963033227685473621359838345641358433909467429255211177868903182736585537030959706659024836568294054876499670067551992499771369016389074817640015379818715497038013063137980055537089087884935808042842410717035042537353995783694765911646205377688842464625956859053663947177123244279598381322568066567831915417459964095244139520720490600988110061155424325808315880627814884735358609756054954150984273181007272025445467815145759325230181145301173821299593816011924089642647598395409720283252879420078448679983787403097271987120249390048220898138106741955675954540205053442301815333732187459865999542898696081967579321164552354189430904135235977766676627853788073369135989738272173311405036854133826900607497545343627935605955228706932222513887726303980624763356487604137620126915225671353203717864904170109104040139312657390253271809886119170019259722552302824142383479430234232240448638332015574907632360884508344200289220559870573396504138219966359448434704072618211418773135565665101146092158411571902078985520286209516835067402665797255058559923157760387003163745902479664194270461979198123529623615660458745409463985392630272693204457971923380719048450376601976581263106359677696990488725445534546994567765179514963052332039206454423729551724843653206093386283354891324816362063597254653948975199193859804137740283714413483142736140595563415154806718987076621770405880924377191391919526592865598345811331760805396503561280179179972353854833560541925142697002598052306243323877276076050617178557691539770636684988543113371379879550301808393020119566352579008679576403825103992585560482855326804604795485479401568645683235509615166917479671372356155961141662436679257999353477418198003747919202862613631942152968679159706427752171382593640705710489361910189660087535008053659241426469141099063954036498857682375065509049187564877890005337767398251308011174425893562385011120553271258963044506975971433402663278929630784919406670472884343098109637904346212272435826954176014432261065616019240579323557009080592095832083207150019054898851720154569587331615401328309680474370858800337685430824926283130538558867425827720883102175422857858723830964890552354131700272749352046829889688994373179938531659452406932360002944380479545002384847897960748752829375541766422171566988746545680914260903606420507656979449436155103948898076150497922505077237767423300337909845840444808708768913341307124629231397375495333627652901779748276525212310900578828536837726447865407887343073958421566557998618799547928276867374544362860659478523111400041789643615506724810849001194076847446808170825057866480252937658128934714459266991628084110427720790777504332752413462763838024099758414761685715907595309559224188680531666429092334527818608891775352279117173008016975647021828280465794938429849971949695209376550920878890307495127837672232367955544133832922186128670259289718295302791914084278221787914023159885032845973203055824729979061949617365601528612327670781478527758600543027670094646918388841543980091160603803856626593116302946522277548479826623571120227257804610230186157966041519563880389697786812173453465884635727504557039198831334029670849076535825016827186985308315840842610191943117872592208222067342502873429480184281199532906227470361966904290205231653575784481548237265033632477461653766613104375148056347994578436458666123824358202365546713699502182816785624315499313438121771622771849075601311995928796913047450982050344195142522072564126152751870653952762082067447851891524828742595414753116704756364464411138553622075551356470604751175627293133918241496372830076501744798002741045996359382475189533363429618391906451210916487718904185292434554251522993748626582766917328209817072733440832455718807700724752467163078415563841670837613178229504088348320037346783128078550992357508883025594508929809746461119046600138699549494801510954612643596578224421697492960937927840602980650842494176343336902858288109824005033460166895066046373751410656487753742684218986447836135550779542909011684571309517604758177694538627975248449285179648629128279525042828809793906576917532713093748530813212993434746434868835958706974125005668626196922451669723713117613161190864947469527629306933538369522492256987569966520994809421318757677028392949418237758038845295386767214538601332780735035969489856592814631689146349911798674921255307797904473975288009235623095560296098169999318447021083183334751855848193649503394199164281990102711103404327981439026933775385515812472020005256958339681052652364457659851807130225889814410867675372379237784252945533390407973811412802009749730936721748344571906123125513681125443422817577356088968520832252055555606346167602853502239757127808282600264962274382524367721260061551133141976841521234720383821104581681467409651434575197785591961900230351059735633954781158928360509916243269983050577206955266659261201911677496399073106434721985015256459130281899984200545280514283371901873193561706358020613551236499000126433160803203328690858846196625050210687828055014523002720722727681479998205734452459055371877534571184246337861730471810849168469671880557031984344419268386781393757303065892585433798536149220651678833083747285758723892048326759923662500458071791290397282864669946219016922021494922774460158514394846795529970450903770095140185632106586952802452469393788084969039290811828775137854735989861875623136722366845067234555459665403927022980448116984936259386256858245807418573909431913853992093349662473002108912825566573285968963100500877499622029733305736845188223058519386184714181321611979566018633483514930137559471333830716277806024957890264267652698227655844896411741304057996420927961288175840067934594629682553555624252714959524360337856112100266589758860589766087422080072264797711243483111935444369289369438956716663407907248188697363245843663280806531537537751773310966316619523813234180972648184466269102637338781213215179586611759075894607453421022834934439159399899209167077223862022484519015744566649758981905502012091043708731792595937762041825675537760707594808277520550693932609962698314991572612067292752330753521238923726065147948247092396221382319479011317390269323931226178072391980206895013854909796005659493189045926898494698309326154653719687342330905248516543861071304360837011739198274389922061403875048416099268093038348704069071026042578974171162204777635909988201832308587228084225874140771135911425253044052283383521211739285633813360660414710596000161768325961425441737079263462908412173749280551033961778643018311211599831853070475070062983261353847978966040698865390372099610436355109404779547003890137961763265379901271575341964677595674575903588444412974899543224560837553820688811627157028054849829931407994471380653470298129960193157246308443762917771122807574553349195458818954687370097699318433623916016868869037211535447405846462925121623266498556334673593443923212236684564514779624224066696356716056434586087333820411116994809471898867471709991186164769427338791642802832790210551294719170194669144488291758183556766422368578892928139262098590204381006661679691655025435828414618506471325648933801632486800384380889042959965978489111285145329413990039822477879576856438052449860266619577284799608795502121653772324986994310283359082923292918351892258899482263464570481383601405439171339056087170790766251973734804515633777274790116551924853990779309318850955918647812160393274314816360117083451219566387796234542978323485585234365207384703959400306846383222801769762810923565058926207961958369068601312794246610701087811391225804943020537857451086154782837486975997704922219705934417357198430370968938515836555366994052799488339455383825651566951894698150916163658037009671083645453947754402853162856297403818628294552195300851295114216006108010105327597389499514088669627379276261354416573254040709684537494991260803586673140324329227959069924554253348305575478978545158737092377509826835761259612721930798100760790063911768855190909817685363916281209712521607040631920272542283327551008602470138986300435469406831816430643638863157862621735681948420906213949087666272359257746460531615902747523906925687319660834166749031385901614277930923769550064866659866749092946687845607336023004424868521692212440037088779267857881352183238471557071178425064354071744635816069341676088464624107111403955400119929747919217468390850734796031037559585543951683061667625091624842178990902296642237512392018957184024762042571237131636520292779758247038739279086404177099250657402214314660939351495336201425326453774033961169835148147926043076846384635671439641781332340245926368064954320507061461938044657065400893212395163122783434049058475247219668078205237611654081957567265142650614354365104689306448784968034020391683399210647506336745711558760630963047673029751589256660099717488339588590813216674132613328801761641915592849973159844766977496915839125190199313501763181373731041133575109419323503932820684653144920865143650775042785037498231183114054078461145672458774572450510191374180584475159845743325678046582759116297615369617413402211009632475521966811544904225102860109942467693889427473043187099275055711312084943873461028232735876312057407534395326834140154419661384583020121778357708196603733906812755173885482901820001201222180693513414153895294802997139273379951015509746801587741874657177171937368355520619575853983080531152285815553748544905124757916797738193046618902101240443319103400290525273625411762083272504386641784808667621573123590142740063460850232334173980304274935052477565029411117067109850421281497769208116427949335681416874943272778800857217844833259734499332266704301826646476930543312986407149990878163440352785547417950760913091326427036334974919701689608718310185338754320530287476913343679638900713047031727856828753471223721473873014236590271386868104251249100202436184783137747196089283036921581777980783059212914388025250230320710202837595810442532345759221022401098158504220913582277623794826107016213672494845482857665444179936759142326982142525901919021469484978854233686241552149087709114895784694589507674628678965429918353418725820355769865692311271716456781727591800768707993952091878405772096226165467384506593961053060800937317565463842336287389978301658166550727985054396744922639407218988826745509504793968261889002730984685193389791173251135689248831525451058176043355548727427715815988608848069515880145782285823171867643456857560941822282163286346772216374430034453349079119728034193278404060432053826844442783852837989961597411791914014983639687938283047554362776010021233299137092521231518879814512077421205830697389472009299113137460293634392040084312753625525692681795932306642768359770507548186194751048334825567752653787191538385148915744141199968905910718521992269334781699279787024100461284238975733859250389524217386445172132022141341347587280377356133997993928420624151886251943269997955655857947308114395189161933021784730892733622214047386757612701685515645123210622694338310302741481014463318842945035656581225975518532707789508421727758369043933884620144357852399718593068764195389506061194667702253708366607972628748648549225318867316273216019633975579575606192891537862512256816787286334904559136158269651034004519084076090465528832721561805635656798785156350032079341367237360595822621305003146942795580852992793612656743439914763957826490302217466712456267483911405161494799951052890737961321097202605196089219214409265244985668099230816059610374588433211647977733872582487442758804760782655092851977126388316196083699600475310510389837201815702364738054339405329857924960146648577415523955382643763216416635207168679733206521523034215495677185790170311551803547322453333582033531285186132012628338181420677840431598811259392587215040175914505550577293425909215757359657894585664673573160378497324030867870846774053569360771690870557994245908326440087284601570174933345008567576615352714087190983807364011452694753620557387664950912383850734036547228572619912068014262519465517903368870637649377383613395853752635423110213414295886378304736792072474672863346267353075531778187262159998335495459749234449192267496932832515064515706055305413130932663711573984684090658296115004839445371858248628774842287480164312545172239642527467382495978352560344063898324774476064461002874454228790613826250958035006129880236161197120712767051920367471657166212555617375264931207350947953561573423717888807914737446830176255476682227979583265523569052120731110324903960048396321915690170795994132672562475761476306041636896548999612939915979781059392209649648535477393570928546604105987267226024453789504428791427084742147038039385998707389830808864127816323452461790410982702863553676083249274309205585219134283668947508112452601288392363147566848828943852349694508263188609757469109870134401866581632114313094085482778316237982486891083153801931784117717501974405270821282066774618936697133504212552802734185511220770435291173707983558288941694390446628139834888925468010432758327523487709050280727814433922462519759238995570676216336659884193935577954384610156922551449684464171442360026659183383208465339662108633170757489290254599425287171347631284492639399375505665177990427906668111632807410389435158602810377254299400071789582225861548288587577472545837369465844272049064202904203682045089877500405990983837032173278948881021747200551967629213331479723445604016451908783961656825149228766314824618701954073020264075290260208062792141267032200148110520740921043769524429788555184838277775840195074656305352479812268615403841342063613252714733897932724304968273588169740835334585410753044247095667774089571112450053397293210038469119262243626391529211600070405637051474415032008004149621654761593464630366621127056020999675210512971515844580999141411744308569986634858356706782066898833317771059176571652933884899672217038442983805172361078419596577986069771454382466275664083608144378959988982861477002069631933514391473063013482072172803408061812003147174165959944605514088409564575671078960991514239027201760668822278889753902612000452289660052749849126593380246894722749617725479846794244967193169209688573645709858901950978909912389171164181555679610102884473864779876892894904846360703986982464350130762524608809227718151602205116069808664112435898295597809633696342461838035858594158761014691312465380387222139661753353498915389991203953739438437232178547005253337874027720034827413558525161309746392098483772588571155722109424795019865925417900815070750520872157683289058352521485183274308678005951156149283281759959900679000968398208315295313497010608526410980441383739915494237372601204036837792117685411431325431323943057332731417356390736646049380629899036717000290719063571721475390361131956276650541189976698748400017516560544542906676126482863616647779819734385373587522181884767675059059290857413621943291285140868105064071077179637284544230280332137626414515152282887216581766872149932981905522632558955738491961517537840575730452189974116971312242203978071460721939813495614786090914790359183615927559255692400232221134610656380482561963345789589641284472195214389472715153279535436743162736960818225097655514539718960054390414153197507517054669198049878720335251323520201174918477359780577861453779070832677364905378621219088893995694722492154336551651307865421369831154744268343573736284536920161472034441335973298438570461713389449259243767639878035003383843168875902175178993060613742833228867637738657810866813582212838243493366946871603387707899351055502975990360104537435654415052021041710201002665766063091800729574347754334817950897271712200774639763872819290518909686625571666047317088364363498904433075476097695514169751138336889891911615215243182600088838292572825741847788846421205429209134767540846475411105843442689022186329906681219687859082935900358868247285164543457611856009418062643982024133112378004064389861071403054691641297880705210282412172047541904230673399274218276239070555312143455981699005281333048822564580478624299428289157864099706328359826847225878398720593092017934437400332972829756072602938018682979734755813947998792478349468653925966546047618104167572818176088277145348351268398768144049759538106083460851485028086456490589629845496411916521768637417081701833030452171580631519927125703800070634207592238924118394844658688646819722091716310112187209935783377163469769602925018292314874010419198560914656532547553110123348055009348398588507498794073877875329985244713451149468005527384613515076721308553023891292406037580712764970390727569172651044960031081691801291707249845363241202549411378495897691534329320155735083512663022970620568835938193655519953865364201042321733724742393172552768525439237247091375401881652573265934171894404965455730824446842083037619918913542140032476436526123346932135158060523966352509709712752519806129647961201342035462386076614665047490567016803825540261334675799181753705482514106424529840155131921189559269351806200742375470674052911316487828214184067884022144782130338959940813637567154234039258188566954762453219862415878107544045051637240739268051187296773571318551488213792942629210610579386688010431844101037000399853770861905321135771091132041113017383403239907265666993515862251670641452378560877096425480160025282390787965050738852660097798360921144608826761491212541192403713343838466618916324106171573428366919881252516199624605278485569914535465839704666236416325682866953068784156004302032516055478555979782017578089239055316845865184537553391366513409174706612292699617039432608526963106272226522872814848005538385066783310002252120598883790871347633813476222457895962024897831309433993753813182319614816763253377021328476039705077787249375451960818052228056488733463681528707678567906046450099362046547997902583472397229658831103067758210581679160148302419872110978305200169719294419955000357907621482002658333364843829784693617556983362697021530019517931510121545464966305169187721599585166361238906657915220000369226303371640978693289921213387345530436061144459261338118581936259765151268152789627282765037386229437222065659375095589348761786842881773008161558153748627756599822366202333975788112599787357044936527659571847730494354858252321033092801461130402377575161109636459232657203270969849662334385976057402856298118654189176858157848501928890925767188641292885402742546188433019337188430859996223629131612876945750699592202914658293547691879055434576026421813098687167628633455394950132027469807824524037263055808558924893774853653016671149507415847123854985764585815707917199920510350985890135829806535282951515869963675018237542131510490228243613683384304010474883542699006981977624017029044143774083776321564093332978776376175008600191341534505790136220820499768761139564396007737927297659737753876416030404519964623183195933268870900149949770884965465765769672555162981759318976723166265736285986191754655076419429710833472814129205136491601189190477239610168216320341494842624498067861595653591977449341445374701547605430786948602499171030332525157065024491613403146179055487866867960923006586399713017320349528693976328540269724963313244091834328442581014023059664416287734378472604529928923100492401822068997782725963836132209600578584202713716725369142591592368505153247736981810816194216809171767486264628101276816425327031800207582693814439196530526836893915305417487691390950252547798628684277375586204950828607174287368455240292425156930424628292230566830141736078684647700272076304487176237342134470295492250739834720302203011195759691646446341510599165919255087050710323572238637795821652473369919402851472488471089256696693417770720423641845787834573944860396476741026085225578150104904983337801379103504484286470525881894554007872967884235187641376563046048999583960578401135968738626907005895272207151479322686029706697815222429703128982218194731383729137532610498866557879624929351645946636214271087128031186628097156322229894812800759433153639220275854956732690399008408475246904469802649064609579762254747561447716228081315902434607402482689711669961339038434278235015783149125406235724361744933116487374568179172558039999618863163292524077537377486378032975574096394180458381111738701717303194946763658029629903771247799930876443352961099785654849644154663302792127311370576073172490464605067266395618469912576661329215678828880399937270353295255518732569252897559484373509343672346019120211614095657896130765188584138140184004035089775622958492795017903717009989604864184000833848572593810755364766632522523176189673665772359883782695901883011632052508106708844693072880973830289642562865360474675826737487434796358355901640100256254450922552748848339225991256105667326781239059425640479413136189675214536660207030120076734369704278918388609920581331072719383740248454521871891679588569093715747314380156742419707318595014340902678703013938199457370244172205023546893024122046808112004395447369143304344697213840946950328800318860140006079477764661699208055119162526161029756694670479685767717049414645083680138108437697917969975411533336902219285092702631827835362535737040257155261891314355278141937367300788508970324051641000549668557434544971451655644608037684263798827129744599040885611158139702565518893176568621775232880326444451130971020154158687186974217711677882240388429494186150407401448005895663808085618013077788133422604757866259376768924902748316741062871271774854840727381573576566033356655354956620577332996207748336536320909537529670845997986147480150976131609569297968069485715474833124762362401899009270421840114689905106987915343871391241986679293255013408342963151123789486817093295660192415512371452626665236095700137761854019428375500627679663288761283171999136900102104614129529528756720010912008731364022541669523603996167076082990748176663671655960434128315834239045977978001505201392165642291900144173706550577518798370749378836184375902904284163335842532121833453794981312126470054936781053776696597762940642518730364341184322462099735125173524167061567010569540340790026618648466026070721956109448594715727585518144970221223609783061545950928058399997402854933407445233582609784631533746070647591943616229700391096782936113446369294598460690998054335143480658467402539899908182242764681825481255268614197057666832629570180568556287105738202110030636107907861407783485634412646319944218238003088595190082453094182709362003636259023513008384108066610943148687112568887086693112901147623927772923994166788769055200656112776810035664501813652188909760046589785845769267170349852399037516124676547043595389158898475807974137026906297669721870827141763177906986368682893473705861305393687829791407963854256963957973363835397605497574596754931314387263482855299062444265036557868768397509893436028106629005120015854153881059726856821926367397528185331907888140333438525038331999395207132204278931983862515854837865445023195863426082875863372462744183342545642153491165357353495939096868624430426896045528291717818641774383726564662749971047235956032758248479848632937751317614350292622576244358383818435919801298412971763293973489224610351086120642314261498677890834374777258526500507323672422364051584836430282129626420887419502297347055368499836016221991633997095106702672795301441947293325873078239315021868177741894214894464821877881889838218194345378230064867217629923804655706389044811799293338210320257055456066339627685980943257805598948241256657057045301011033442029577294119617281826343036347640682049618771546106124594756930281038402574282320212711121359214387373106664971203570591572434271896547632168865210242453553044333909145256105388145815928241837582045611463429799381206304745868079183560403954946884499563349686979859771874240726247170040330383698520042934682909630146676763463081069800686582548926532700791824601718681462375360551579942313666427839858578018158851258486428952572037912867107762412818595736508800840274632060393822170824171566460736470083345669058430258642403528416672413404487568725748495932240243725302964354833435089654718796432720381685813416123560370970134160526726753115575867686100329035126600593491080928395794306700066981320390020249620483503575793351516387422451521858776113035478682153449385334702239796329079870512773715295093889359940889635552718306383961989138166310746020435561235646290838022856274078584735266349711304561803151741002520014141174268973649211319646102956612738739884350642654662645202514482910947441388259413668231456770191067985526814277934350558508647576228876813639474468674768610053482957935497272655853262715055206916134536004619051820847199732728467145087501887004126404435677758929584803251965538464929754872916378164769568817441172502276221831139927912942437194570351000481174274703906108376321651431601122823381015751480145420675073507891988111179401503630529509077398228130203539707639747071983538755542522980450935846440935939467183178437001676241835485123669822324036401344034197471360622451411842305005175961487646134579214146082115467907696315298489670737411692676380861683171255051454907531982685045334387372403138775382517301586558312041457535663349156686620801781307643731966001091760118842879013983715927570762786562133434445924428176086681163386243650921843971156419275040767364059498478411577838019975330141345418279206458880647343628180930296298859656623355923623405949841442369113407238681692271603966518564317100970139616838963461831744185885250449461472555152955243020443791813311803777201694591718304342398532925323336048608945784614071593101513102122722540133707080765078053552800685446292956395373247925738701451759542855737859686853795187799764893309839479842297955049645251825161520307590679982610510175655685312522433003951652235049276021764352553570202575112279851524573981813994192316967629313322834309740510427958524490952817369607267928075740727795548813226708944832370364726789799521115162752636219776625017387432255795962624673275361133679901662902164245627158445020943272877194369209207125520799296289092475037521927489925214152475161137286471092928639540031149051644630766406486216294507999337608535908707348540794424374157939148240069795631090195595365513342909849746735245420998779664990539741697799019642516913592573783128048789608827849189799143683735730780197904056229016028631275136369258506724675563912154602127601699224679527913666347527653402179285085404718989005905964285208237381623700508278721584762884504931913940138660224435741947616377728848249672266568538109132706922443616113645281850256757482634835375202504619265085060690632787071212676124134182730459255950299006175236955551813045386527226903815299085179406966521800895441185216146511285289712453870397576462857638773400721962122171268932443623551981245716378963616512487294239772695581204859041378694738339266501373006648280608837768511031441676050469283935170646973460086287808016749246180284784910571915175010909400092804902520003025332975329464275632597942443775057241076293290245748900629428845308301776830450812881206408431573494661929843845795426193532067756682234657600684334725678036467931024670975388770819972494672234871697749862709312397673645219902637036758013503717189492390807974561969816572239347962646415869533038910909087673796739094405792789887713450561868426491836249107199141608798316709498322045258364926376962310841521225520770319643617216444544641624670956177967356023762502481327907817112724127727714991767799835386688172850837568591550295498087670442660610075482381765445527077279562485412697993286168483382209717227578471034833379411712382731930465981207502449229641516992933309753851757035959830930212267513538398409432454211072534718038489513598526513694187852482572002322784265794132107714981759773187657266990807556129216914150418301199156378908339856288024682621599808230137201958399015573060626806243270321348626358551401151905698194021607012536005463591115014086013486568787245624149201382772424746336737058368919137161629962178565450886034268668975375549031195342079047483131802911269839812977140265422351476182397415858786875415727029448764973682671006517828426656971794328557622682949399306982155703702676242016586638425722895577583567764480196050918923660089491563888074480678308040827509826110931889949672411773018093274779010516624205376969317478157646095728874906100800254187895441785203736903988738026751806210052225549445459482813746169125364916914900052984302365617160968888460373797116062541406633250729973200316747206322040510850957772149461850520421564621420006579757103972436912414880491552028093212529402421540877375944671027706500644501406138452530299970936262353608775894895321216155411195226401357670080708438767133022128002498769027326936768045127961846738106054305588596826251151525169566783455615366346167072677845144375467365220980293133493344901370356780784309696294995929670623515155380715356806798586404329085829064909825700846506424885517811618246894190233542272152001249602569683889868378772612075909457525805133185908221725633362243130236565282582804227092204739723901133750612336435809155989942714571740723270102689770397412263201442374108826427485913274512723335905139072940391716847292062221058837864895430217241706983583535362987741809782926401997793655849034709294044507630658493715925502804253913711005355573830842022996583126040807587598326769015648085867789330655040872698842844934839694065034904173673632958550540463556359476787271428400300658945648973297146879360140039889117700919171370503713879579203287892192666492054652264773269715832545883859991929888333383160744696191007979514257042525409346411261821356984642928823512114814045985285892012254482648188574058663315055199564729638449006298097765639572330068852839612560561492157842155798277435331469547406391004412872030615061240253085419989147175160761449933569396397427072799681863740598444167319813070068109560287544206171635747324829760151918959322794892040087113926348134611870450577456896923669677204278379076477237828793670018654749073399521644494746535927133714206136135008952993730944655119222421644077505200574311561963525448754406092307216505084011510644311355355458615163650078107078181358488786175044413462317159960368615091463259613536255052936314647742449112003788730871395013163299536200974258405516731281957861788392455238245043047337495721579232237720594549657404429495924573791517565548489557851420250139500756559121819988050604940943250373411263006326970486512078084646314754478577099263016672385384607983798982538603023061221951059026679117659833526328193642645541195746963851324023943227458568549918157779081399244167411491003434352768504842999639891207280847365059338279345128552004914804636633523501358361697814398904006274236666445156505468798625681536514115834470294991740538730747970966229629763840638563478648206536957710371251582159152813184977606599727999290834796137047774383410378924399887694135303841501002641326020005102035352019042275139635836010541802278125768701573010556047344021543595072361709446893261106766990823758279244479762832831370068067170891761640773381363932960354647854261897985047805310322774308424422434328159352552597948530316310135458659402214899536224690040987756118869884866189279962691433297894074464786214390734822490700652264239505426641467546263972823157326293575786965627123842297812709147988602227306858635779093657658154906063340629533973247155421510325100843576886883434448139850888572855785884931746109806735703371007145700199422809223728612842561780661710452619938413991104802972441936119167192709738590166722469711352743777029744680995131238257849726844442386394248622317587939421420757658372199766368380469668211653605777013087598116304882191947014874162199664655263614138158454992645054750696950380148813512552148508258348275665321494866361465853093926634758978988712169450610473863211733226838843022357838738994257854936183874209291533893751153957335498930992110371423743865918948964969306660855888012812941217555782252394912457650190487264987538538813931840311652912023644662194967501652241753428962475582108194645002579917743247317666272099793765337229477717254489339089291415422290195603941936239573545485317250906922744879619236046326141836508505289121277363981496079035535191323648035929890572048935950835549114199946025131465735182305324498585880235416930099304985578604164841816410716960215554829104267310085472067993437214653142785634500807003883418119495720879155407854254647363196290163743566829046726042047702434340038273667756696032842323062679767015806084691208216309766606353676851147301503361940946754952605185413127079749562402309953710797187830802653898621068173955103158151764688114271817989415780617203636669213750878859572995075179509027299151832313961198612598672609162040922803440525082567129534271080489885246500206846073782617336116237356486146207326682024737773958245598603016668062121035289121773540639976911642359244529867269344829250062068958169500643195382560415729042844070169383363826839322140668832112420336445451380523778855874842587400703151073479799527071246908986728821406520635885968755464225100810197969660488148006555439588213210648858527183990331882822647817114190968043020588980491281314443205362824183789004259976783974044951662098682791686321987871934179399849525514689549009306512654980419584823556217454414218306168455152504518247552499323304985736134235307005769733810121208628166142111656663518478683857049548441151987856633265208415059069746173996932740945325277415517145552398722605031283697622827022688177996880027406986922879290715238466641507372414639877766267029396126796467285278058130747677941815745174687005273206744681976371644481234765523672900091108965388655721934330079404871506586368906054856362513607272656709982282845704634722278349919272913105455467355216138605741407781008425022506442422019030626057062158885940293726134962489618304365047416719217212399939621985132517166696934894424732089643600764302502120287770422044725583723078735606267972633804400913674563296016291791562895858520105489960720228182610312245698456510704857436228141010045636435620658920492206244471839808623114391195996418688179269896603764859435140955454380505429695244146007850372160943295347555675765395310121148271819586446447943418075591822323804857092503183418672038848046925907456717641613963577071249311371402409663181456883849176598589281081404697237989829494607945208992434164419138535734664246773382483172905011422129061804499850593974948906281236441414185593792636704519266094674918972193282960983205727109482026365792385405276907812442973188803451884710110653398759733133496779016267908266144942073850782541374221796776795972653036220982890009095386754003097243064329848397496991089461974510216427269390817356017193825533916963227347067849118895764571680826496501401735865281058161481147320593410271438920363728241692706321052385267465982352398243345988399430279132845429362842556389794918159476461842559132445080351205500481034368001577864161051777729287476936479277155944733669027327969129525386962642917897631160157302601666121948733359010978732906710057062405612208304812507984753991390756216093061760486428678666378860323583690291363323751307541792662664883011779624385826076017169400421098608649359954797576074934404184129732137694259985661338483550548908775625402829511446163009273114419835004144849163129162171354607598481073718107951282006188884691435762556428218572935868250309151728949679718774101524668142096345410373888297659763370395716978319908376974426087326258724603503421924679713114112246462298211160238795505613031077222075410699612783398441989303587929398924007028457943335366961238371763308123447215047855140759204959549050144923841503632759085863753871215747441023900792395924257621202258945406151162362166812920909570404087208091175653780181425887415599328559084606240603027096656097617153718780080954616471002969772225121213448929349860962497805621348695315367887123075747340822007692436587346840092921440050104475196164025152140073913698037967129347917967902385032831752624970451186806419070318750371155378843595860841802745294585399246159209754550522066153979059031630560179244789192449979928611280921281103140654281055570229559692327802834880739967157565434181829776724297739392651054384571143312162486235998411988817524933731019095779384093395199163522747272642539825699804877886883258925148014435810784150251610294763368843542672806966037410291749766700339990499967195577011743801268336420987291765574202554392809571105109716552764864644200896475279259762983618870158612058536710828075412482806149729048488811557500234598640453442550890686951826366072771833338283772031670766648970183455308931696113105816800552283290341736588388822162299719485470239060306248604569026367970464526305931872486352668147626388515686632536716757040300043570830362459853466872779408474188323981539229787516592662099580149466966653414332797262681365822327341323105182798788603789651592368056789697585455495408916716684217678540590768094086827625876383366713111691754149463891587106073112893414797740636490203359552888654599863529544515006809710190308608439408605023577073571074445182549552404488187185120492260936765201329087163361695898843917664071596626519777984747512245895100035489375115839936430118084244239763701955638631209274762677091969507881706116540311941951149800306040923959766054799267761951399781406722201817487252934858141111091175393185713347961821984767727026686844048984648856148397494295265776513466567742283586921374835361458163612551460757516972490748572899549741088422094429380218681362595817482080028077717140692629840027274077369728553865961748122305189906443463564480172434128205863542537541261305182560218128890446428724239611870449664042219842509010770149164324559646576360861994495742356981248466168922740586900908546264850222862534561392031811451094258329716658156811022113471443663951767780229560364195652225983597547046286848704386756519656495330420891491199249052707499849577600078842910056683081504499318009963917196677689590870998001194198705872051148458589188648917809274901789455531686185084536915343512767897481377307338978199053302218034965513854862352736355492148073506693629487276078256096590843287497362644551698458650527624809289914008925206692126553188843251723745857773724435443027506672600566138771110902200522398343574623223321667230965883726910104413165629117305919833061380832834646773488690437330375461130180465919854709135967682719112258785915022672895493675054185938716630878472663656849926485300566320380732435389197782524275922702402485087430411782963766528961939374043806758764099636646199054195549874182655446819584773883862565070092076686278468378854303201607838045670595184933464857597433477048632356122926192621599438238483565059351249470675278725623177903941397186061912299928144686742699748152497901228004576725725112744031018463593593727989797652659360561391385490794391703611384956158548565570133952649626270077174828336402677073821784408875138941562214586507621775768858076149022538232705966008135472311652891628819183839937048078825826017980075312788974914897505456109504138941869531234231692376531807796608407527202228864165411349059918386475079691792555564021523683927710108367840767552154472083693559628526577590135174194758107360584116778309284462669490418621053944335110633134878499618063758909908870993855018797496587537824123572606125661024303865599801567393517210853909973605636973571367318783374028533245021421922487577785423018226629017146664381729482047351200247761045247312299406571952965499907889026324066202764544012058665339775901405823009601640047478005795570146520846342037027620396737981816150857991394689277436826796766676096325190611941309813598377332140736110411652591329387083592733622279686233597327853280211160262331721624013375405924383831606742103845593088321541328817543343492170271719454204608024934826804601021439100967607945155194440026702291722509960835226501507888489184718174222033798930409432167668335332957535829853681597391227538226859190624057893659671354980273264019679615550537528420036456374388285801844711719953336482023350870878967614248673393469978535686890374846711508375703976661005233259400960761156817751489181652942668711640262420854217857590707773126913321624609316111556440901146623744389011306294366335122520886945069653307973113104574849544731949112115190228734962472884991010757837258797814743422095771900757368143929093924280431760040069615896544221383490188363761355322057465859499793020762321013096508890046075279748353390191542232164143234354588718719967244664134877231994154802147391568129729397449772145515258294138924298454461179457733763010362887929259481789562678741011987540851673365399690277140766315699535421006017278436805984957259179429070850830150508349385754715124589377888738765924604353466014834302383627709763927285787564946845461488681320378271529309430680645914171305571006590725548462513023151965077336521957745198362316688240873465366863745010357099242675077234562328370380620404248087711703285426735993724896922882149566543123762638713423818785014517985574758045415835563303126760803968676847517009511492525948149130115390854866067043220884054881133489289576656992616874700161420809534725535045307007468183548535968964996745524139235316240289454498014053534449122531075035435723707957631811355886454023250403781635678081157485472368502843566903155163233910166202759873474692985596899194600488481936600979665126630819929072823993978453576590499143308546222696448488490449095975151475915906609353496480184456338458410524867556790943939063639406698032665325067350338701766395295247122063389706278559136074729513736203647192708875509919042259772769623745170844204153002568120480826539372694447972522321590329831132610516514617643712387949878962384356033168004270958441263726363795762658016278639855108806624054045419576295919660675131314059557319326272248016858759243647200411388937241206416327602125280697277165019715909067805975860550360070718397546661256008080200090462649112745562968099568413832257330276668604373371074127552088395718655484614066358760141760818314587233420992792165367044021751853240906360233568641875407956908553570131700345993203483933046170044136759730984359696051466636585992020807658617147856058620288993979714773450213670864910119714577491506011901027449054881229833824908120982759734164905502725073174177292961372714206309936604066671781378631265846966451573477299745449041788547795707594451831763716242017889598848991836255318066644431469608175696408534609701557983097654605405771217791007367682450546123177715740622174724412675986992767325806120841295445280966721325329541516524796931473999211015410410240939041616158984297576438167109316455610077238870924312690654725718540964018810140987179395216896603982992401420531703867187598780816458914477020801717655580960920442252888068453468556914795628552050907004059559475296267724992949964002765095228294657666525630589656640276504173102406770127905360786454377128652105914514500627708720307164762739138806692744633012376305328433774559515370822718161186078583793018907900116715238509804542176932396878370051596169713299320539374166859586906734897288127686008261493891316843436607966161949858691144135892252517805418059619489707334012804327414840839834990022762015619340506377848037933194091321138853856380937354792537336063025225980747354109026250946477105065108726270956932289291910590747488953878809438886902284789133493427852550767578162124199453697135995929761855597600332584218895267138648192528720086188729649376103004944379177546228537518101771809096877984408987586679678442430789539881920453142042589305339213078974646631937096145751284087981911704672642510804470854436487781431439906165641752022835044340519220466740436240594529223247447326616891990205398791719415980255420404457296523843248838332844874210386976067735900870654581897210798559307287058734756358083826861727182425878072868837202028652297580101419682339937574579736181181428336045341039200251970749734118442196617421170210845997526879937803296903833923859964386234175951272378135656495757956095235984645293524557240119543664790608770089399339292879346138369242619390726808684405937777254574668314710433850977347401702026337472457184928522106730998870827261134044429216279669111126908142354043868306666789558334585319207313761817031134127918723511526786245672987618193484127159113458658950228336371567262245304178946658797408797840331996534101648623758282300979425697099071957722605685153040151436077449564490648049949737339089885820552553574226434280063347822124026696381063045471081947822348018692127870637720778276269198044198684197669659212776313579113556233237391137659465910228625185102237231916940529340568432891693023910994689055803862206869311472363980601733563253390339470822845073546473481381019293186896699667097509293594685918126747355022374881138488201188116877060184073521806891486785682104759148608038331076351438804405882685910546550622694021592688262328495173355443944544156715247657850221609370727917879249033954705412689937563874178481430240143150015825836626933193062693149889570627306664067505159982968045589149100045063978966934655555616656360957036217340958673431597202817810714800475669060744660824204315304507322142003265582492835377439683398294050637935776029942247646226874574084260205348014252762293555174584781834164488621267892326117611135995281236893534719339961680986305793327043529148694053205560263872547839108996473083470025793115281838038626557173211855122194750806112720685688538397425998462650521575084083745990755818744452782533137196590563344809184787175055040613622107776116507729796820182173781210784043533924267391877713502728087223728618989798144572663137686191431213182376093075785284722918280650693895411971631626063378913283458152453412198240635418797271425819352252248756231677488102341806383499423963447866953992411376782794708139515511211427045330637104604711000577912009761200463587382767517564575998508227680931447592574010889676472102151063245098714033521818500485338354259548298074975641900784284472010267055713173019900428359696320641915439095304815831984235928175854949137008472233077055037673596622127705117185071055351287858487605657757914008300825374204547187738181349499047212750155545640506498828820651529849586268936654364555056698425983602103252163598635683327777500298069499012378199677289187537731857442823641070242504491565338546932199083140595391352673073990907740844276473114042905421092263760521187627606904944910292032880503437926680458177523292588766509041659209872652681546595034274896658549691296307849504080132527143530969117596769531421217909174969645051698012374253017312588135066035497837932367242582436658274131228558837746883000688598132208525854261886154215598877609126049612656840739031493275328912616472069345964019454680851288558277044230798001104519698341145902194305150971389055970071557722987803616438084739836711582073485237595019723886233885425256484179105978781269355587323308414105797660260705598229409722974913651287044326845341844373795265173169696960797548443819317567396314178792002488211094899414116026162624714521718661760696708014990177145499786834630728633664853219932862920914167518414642880368877237265133768038481975493123714761563972841364845681960675856270485405603367958837319237411472297043347668542217720351078936849832609372319805770799072417746484749013676172213940342374388547731968091631786439164473200965105932067466648048347864646517559911332172748362286819982159751138419102345784748155030733200327077778753082143035379264182486800397183460997456893765140611611975519264608728890359438517763398458696466974846575303615258371230856575622407544250175770404930987745308323791376712051401359585221676838137399928988155902964269617225686205754603975665034426072956707467899797214472014560293159743243001622938818715936614454181332347173431603041546085336094650729526461437310042661290196663013311542350243007443588493932038687854277831677336871101756558774694065270022977140331960584185346939792557406663529872558794578956164305710703119027107758030104451920281435878515859199356684082562754342917717360780517257519760459406536308393914045195586636268689765538710959855674811708047898568211695911180943075617449931889954381812326489417583165071683326046787056958203746628918156303316913797177979495051844766305846193597614684606444311346868855832923307303874340433193921699661201825038687181141065622425540034954849526339454527055722190614003646164515279182514870979732338752341915922447872808755365952361092739873300342078401117716192391793209971727185180800028176714865164886396682137949212997158470937043159219003401514660904968871302474600590727905795164090125366763233328935144681076106905625380145983502897161132026600037178076713013668303561028383633513902366074775403455444093635119169103765984081989812439951328016814168698475314403583859898643785202728327281407616495467869551650878007611504315612876315405591396648280581813962655976259071156568296540724878017787892210235018751570859160741734782332892777279239832672732884850184544232822248870085111372770922800698399616540791241002067391669342340649471428442255244176654333215989481366758349387215276228154506424596547328684994274885262082623308207187770220018444736429208877304369738951493893057577275227092706732126600012071107994147583257343251251785943872401362824518448174709722692286869985169228175850971812842336771485819128837790699343826796772691371400032601220902355780745440137977503112596193141764836562711010235591025334685367675464669133280311830777958338850853409237173084013065335851547972302175926746567328895090052541615936967619473966165890111358382164746935161255882271007621291728280170606328873431952275492435356911025215280601409307528698973382417968105386645344518428563561891564637489461121081175526052962596331959170376480291597620627078578635996575662784282777840535435415246687992077447872474491333275533865388589748376470331460099450030411805841849340346569608594838387198103878827432775518005927195795162357342590256082016495437800234937338492340173022497989209714174168914683095900701942102229550025637836791798322446552187013565254154493943834401436234587366035022239552769862803427605886565910304471164785450088281534086136190560037158497406010691771501705516927141061745559225548809498083297481523362674639000290906068456197474586310200411848248381818683043199405162517941098242267870579751629998711948542801671573269998418314940790224473321079961943922861888521209399287582575194516253443246280542699034106558965112614584289805328720913428901900291191850283849261374047069830404109438260564734588874366028176434645217219978309352970323548011719160553047577538072354559261901158790022227210514239913194048920122733503834928824920269198539424656437729753093948923179295186155555798398852006165089065675655196421691488184518639516193323469548280438484139080132195727967665315721072123348975802874180107413323612725823459515528239500126578038316935360354546617807801048109358299532578999266472931088905296889015418615494087946746472478680733627579012803481235686320469354604481747332339147327501769645740728857112076014070117374260105977160986271781158837354969904344000933661279102224505873675211715153372422497810818545784896130024705443928131359314802500792200988683553250142290122624352343351729578184313714495012777452674794310028035114637642076735553655548080857274597803329765874837177752751286073368648418061632197010286054993715070539589611565589322179408741422137597255059073807726641341940864468376331576401127119155787536709367115787669245430633613391011893959936057995553442293696395664115345899968800303489612855593946938927814673474773290762339981537916564236562388568905212588772024129564561036684395029907234598500745136845371461532498716491757366407982059113643642030526789753889898315074757559678857533203433540529759242097858554166109004486251507766437717252462311664588058427867078959163403561247789107573800593473172617007894734745044782777698661252537142512970439440826433614945885997130857107020150560772216057290697269199020688402519940039374276201157105659557905893182842573059278906899486906921467308872020648345531487340867126227741131554710225094149208467224281004585276262152417006991987695467857363236864794706768405322704754892631160166330261861736588864375064828745016434761408451881979103540776256467427431009089288766762366974826347541390412659537353855816335577603041056016205000929321107968017597960727488740964073137985153982035735445549821529392828679967599257042765008160441627884410168990089404714836780879562000109161775673267341573090503117960825084866225486969128803516972759421872984992941969196690233708808016992963981646513951219114778162404800359074567138438169147146021796094637697250756421013870460571453291227475445833457303548638114684255479549539740363193732125407285196332309396757758926571300785966712568839723708559952898882451055520564589728154761051843543259916472419244305765145153208625511941318648201529499698984530766775974890392069432646433485130629923920140963108317396567445041766543053703853111519827938098330205119981513881496808013194454712654328402312588408675365948035147027858935464107873356244264486555164140149584839937099913872210449337178485811885879501538762077274954044268626193913527504759452686538626319295418755935194731557096153004568168751900212883512728380213649960811729233239022224820577336832115873489984245088690140512109767197458222766431915272222828174342227427207927059851830039428451353015498247561898186387066156818681150204791045727923658596099214957803334623611857805380000644386076903200651293864802366897062347731056762989258778924713962111975553935828506799185501314338713598658807988247393673149372442092029775236092785151368013575875119868489015019624345135410530008938957214664923973411784502257934947762893961834628013021099738511685353744701458152090828409593502584585328704646286244647892780435203074286723715165905817955224344327662145253433401104281498334614123845373736879881131276159816857267196118662535008504912800318213919003995929214538356992100306551729525740697062477860176444572435274411263352706359223520652727386086933432681193648333917046516886921835661736250495838629695592106924260865083212444150346975791172173362312516442765181519787491713839849218619820428110444070648535840896211238637224503073374851239853087369531886676920262007066844394264803194189744987748376517673680367313104141982028139067929961717325635254553252755053862708269448184419451573930166173177833763552845858695288606126516111134876786689330066213116962761799489450343431782320082286564043607517403891751374055522250393297461425796032402277727804722069915702551366269121955694415554724999211518973022134981939393302353447895731271558929627064432105475200874245183030358417551097800848818842925056128464469894182951883870330569026285941770118923080587420460500903290714370555468718881621883337246995041734632108735326825849294902626573404681217863501979699034576395293167643482552759557603533328381374436200842254085282678725358356875903490986689139020204614085469331502333914701027295032639217942201666138047121321263643233434593654469436252476385243682112237838429817975605474026223873463994298755379602927286483214540663285810510968191488429913210809113738512868512866729211879931082494130931248803878228587257268428438511929449104337504371998807236730472858109881026447297760287899132633068293367301649996898330260080589957018249742043410765165147903586938698373482004584359442795416349798935701360123840927754501424576890229029220597981429961855132546706281678024376596012733375897619822326519558242045889826842718286627057059836156950456168772310719081783122483819184138449554094853820675334164524131086982279352311346384154286950467230001274298418195990836486436520135983935522720299685311323878077338151174840537997963908185624189952831953314006482652762014293187180541015086254057219727804336968412838958339099561391239512791762562498689254023512950868617190070316734396458388946057827889743916011495489282918287330569581685623795319595239291303443574404523979227974359307656546984557769298524426885359693471798438812390978625935058359659614694272826749308860757860860752825219387769984344010524613499657577747463715724604795268852748797389398302394295776421555701243887472081733296379883750824665772656371962371102960482462780364543799853551162039053370177275435954307750269829457070865576322689619794633336371431444210833931734959515092676176749591931636121256863758125225970075457814131429159288096897684466972917822253727113500774133245186243833192679636226155335963919061433334009050826101749454200913893670687691852877519949676289619781065583568777694782829627211699677600851275016419082299144925042993205127048340953185677106494912356096013673956549567945139536692615990166336563959444105291660799537027328754454035071971888661400273162159127501793132563686369585964125476275645657241483081225303258487800859036401620886323298084275625376031788329800302027163375510888955072696791481002699503797068218638314397356528001560084770129576387807800259838415059937204620823936163672583464246035594730640181220340906265831606403686920590887092797062370211055767584430491254790407219143625283193079704518140900014432082593946591272797740254824705496791279041435712452029789402076372977663803584359349839759686850798300266187217600937003301516919248549958869245067484653744455519120838407527832445009404444510594100150268184354404423382263872401207755977406031016615325744849531969225458349128128965646300365796428303742516962034555958453245284318342073770980908539887166395257176796766722958374935746407840412885846216726382975731195941902510816289533286728650728918105004057102097855815869603379207950864004015873903189856348606438823307757978278745810218719807752240808539389307858189716405382746960434673159126064643782162852466592587710903708364746697033981791449894843828925015233247424784297241290999289419695275991940208364600369770595160365821199376193300569730442753114987448502832622274097320894592293005458696367847604802948620036613257707534032904274069051446010004501563354544235977438066356816755062616022081719029205964728682118506747569515081868242814149596362068280183875972563615413171058525838506841468887018275731740423898005740899072225786790740068952444270946070354978933767047553919888396913417096126732107615860629174144433661439498350390152715244860460597789238472448156360009993687068907129544750680895626618179112076044779693820542081058129821923714593784913795609563334718272708382841256544602266969159618735268784806716646834780043112951788460399193478490302011528765001285609372125011257748835424938732390823014086262733674638944298292102699761005359654223609374717457696393359655375231405132711142381869280123098912466004733431649601781589690655533958267366715421264206696400986203885416742105944167800567021069417561098093149183776840224444264106628615291179040439147778514349207170296156621140076086813547690988031149257461282729734062581640890119471647065489638259190866005275175133707400246314142659323071908479073482328317137974769262892378891050469869731755143423642127525718853875867999483604860370304879180381036246917045705236435975919497461652770741170530164685462400263453263524090451391820065192858453908662207452671780336161501726800878805599177978816846224419115047454930701645749587974892385143807650835263591579516142626473492129489251682549583577011479409210083385664823099062175956738455604613639837112370422079644150339427232521359704993127259040856324876475968814225316444552839473848201936832114244267172047993182878527696742055351938735863903036620227239047437354740965752521780120763719041386595706256269885760700788176686551740965443404927866753140878078324326994447068478016579440298899006648929432247004538613731673468651283587108363521758254768813126698938459426664513443899362259571287051784984226429148151823341170188100425105743986927263353420513548423567493175632881400894701529171973421639363729091660298212047935732605767293710066851678596304336265723770267072479427564249586464840481377927230270800144392416332611379991640753592275183081076240894739789246752273789396851639781054724777225821642346016325456646778262182888897610920810429678000825519833835465005115184006466930553815026770685188676676906590098434185021048763508525872738795433296624943515743179452701164093851745972579073027496177544993800051473650183630375366043855020522516365936101550998097770576461765350722601961618943660042292600422740751511817547589890688887854820800199090176528695861591839045767267953675526227917402310424469685718655146152372586217660212519304143362096757110492609760015294229701160128667725226831665900335320486936576659921655727584296161125536361608329862736565497356199563387229289071939949300726267008856044382966921429393605515356003937896793690985402922216587653547111850850579807210898759468316104598472441106996738910714835280434027215644718235880231680509097124626562528751415960803435648502408114332996472454373826970149472741743063191238963836842265419735661251860346273782436511309416212080709139840160330743057553956800175532099602965566553752475284735718408784084453485214800683862975082779593658412739228466043042006439476760395338465738483190064151512474645073926818111878886186477117033229773425093323573717455368058233886957321491299710390172703388596674423998015708720031893776653341118692594242544931345572984277420732909355017289939775128846954840971818463249962848337717540816525149107270865322698013840893102626570551293122432766581489724424318377898188557961318840956799869020830132378662437797550917596491735715479872995771267938290556284256489836766250211386635312386803519014280682428582838407405931250276004174709067609949491526570690191259971495931424309759534302599928407606284896674212229631906673702219326458448045928757271692390928238446827894216043782695023723876491687058619718536648483876750426906360381930583495888590441723425069746161391845946280311990716274932983032609268979605470539873140452040885882433105600582113326485333845368372067936792867418379041540510620265739257413213611166667033631426748072664320247214635520943107678567651113216759206731021476795802241512301413813559036769325817899502386339716482655147843735765636919112260233691563896529100712730213462220930607898110504169536880902876806532909880956370879565221746848244382916274496184051598852248807369497204461720168318128977263401652309460678713253165797693819920792418282314850218634467628916121140848347377154674415960883720030324460243617143532246842831963162919009553893483173994083890017251236196732162315252401713900581164958832480663210291075608132434270296393564126355370522651757349550396182834258482363759935565180450213926431427726584764686465270154346247808598912051111305725938086549722703982947540867815684371355615970714972873753764124067246046212619792715530838230527442563415814045760612703800604138250273825887424249086920476555366703648898332689439233377266678459950361848465703685806588346790422792841564195241405049367273395302162455901086601210158224983664432856213635261222143633351577910077997337622753198394268626010254400142268623856726461186824427564970105956826597823348248814043832087939680654486273010418094563521174679671569930913007867884151810452665170828026928864587026812798550446401656996425047966754413791656915824490050484382698292743921979091367550521782844774533329078964267077888987347026706833498057733165000633902137231858842404230010211630726387291605433222683109480642929945100393022274178463428769712885606307202797695843596729403150716116729406158818987503007317622112706261449809483036371807876779095886096580448230522727677369168510894006990662008205606198750478008899411118926035229909080299461806925625788364853831003300676492217612441314521284552418523052155060453430828645623481322580681037769875866372727736270137986451349175850568610300598937818584906262271438042403721179252127949102352327837541054856698742009576089320389272516626976368642576383025234982228169679827392726479321725797960281329151379480028341632650248563275799459558266691991133645090098489745137348466750469771526582808468485864682867348251593001871019721058249348514052822664407952543640496276102095037421356814650403298314194408797946801463967841949711615318689681407842902914413180771681270344180876294807990226122512963542368231771346403876096946644441787567702026306415455214043525281650169396379913660835019342332117763191923092677699987564279652246655393611808665204558836662988842232725514129571785004362545336673145215471953651533600903724152587533245411981326816045933553258820866266792279592692602190064348039116892758861986779612643743400261932531565349298056136681457716318493794568754316534063395034552001553469325122129974467415037313223991912093914451086051665484132468798801468749798880466031348687521264295144527266262645622128160891917268610440622218064604221346910645214677706558992813496600870423698567088830279309879595910119035736841448519451919631492797751749666870714288248352641990662303354465584328261069396658786173328450325478435856927026912071926030750141393587869448842015500755402292419471226676218801189943934144063962258100856870772910035849727394952567058765966656581584903624188737717392903082059890983607806451669282385375262947289511761646181454838791392331754282917260195022474315218661289354389087674723687233410221669279079303239308970456083419978429611659149139516184392122054566802167425719128258256037389051410340066629578858475765417922649045743470987655874051948808818578419767562302627333948102233415781753941828758418651135385902630892743481986294566571579431039682509564656896108498229864665776253635169617460884183834884286439773500701859978942608776837100252135476652495660737112978265844361304891194844537573537055602911730110136206223192532639984680707386458862695376774892979784367744125987976992498461573340872800310957461840611228976949501562754540424343894949522697514170378645321785974766731834858280924309351994784198283599687563320045786607929653149501383898807925453965039163046893677643694503949035805555377124955694310765603819775176219293634744958126583756201432444832235216836591725286242180531284213817276631888540551124681854027184772523892310883297935817767061872560958726730279188957120437223872325365715185445245374342044382530837271059522410891923634889398907183373897871676374498591781996975157779745196723091324664466642831068369207146522074472047646756513491872562186661539631663352213709274386172514705845143622917902104699102103253576818098242837505059072953117737470625560810364610531579256187549401627076227299764532950930341116339831984247064626893186457926225510912952822792049018677228813225650589871747247552353676919513802083844250610726637619361971291699600310096819597904636144731863744308939554150194852918232376475717836030303361337127890499458350924790410022194597821435113841037841689379425176996206581801863720527677444656571049628321713969621002904915960175824032270709216366318035165033886734388192705638936846465430600098310383837064210603309336503018544571118820843911715918664758126760554111191926050175859965275509547909577538965659548746075590153149958567078475918463605510338615480453692278554437130999845603492225187007493852462113665584707504885658587431294894966914740794817447598695459881307576347635430002638574994099963635007086947368031192665241942886145213612554844884729713205388284016478326467587005992345967846836583144187917767013237509717291741765659113540983409061782163748699353811152149609710436528966866769474061825411666243164162226799457195323552116922220387146280055006395506464087064233820983618201649971352353558123688163196227146719166428755585473263646989024971507598051367734796201820021319993830367601626567478502983341255385954518537025109040669436161975048700685998235384822104663031574602423898729046159314484811604711218023461577529205517841569366330807206211369051426249729460985971160167684631965262749025193230247437458973803993896701954877242450482966956732412474777678090058971373166969419682453665049880195095739316405604568103428171010092146791421151536193581633214288737947982434051426343681603329737450397782314052221552339386166738157583665773989806475158481115174792087225175568830535917591895601105374913582460134853137247848295588562436432919722076836094638192819009596590482105968214989621491169159073754252977145924398623284860405555117355005952532281601473673989956177582724633914611042562335914553242620323114063051420116957064132472890811551806384046006182305252103064833125364855644478688763004017298306434521680318798480547311609486631558607116253448990168261881323673912244932887796733363012827085545457127467783719796907222668350026701974179447907351693090272504684571583780892012564033262307685089876830889033472920209938011123104176911295749403945501119151576572685978946371711702360451937010171605622448785858142711130743715678061770135870704327781638115702781321691803833325665694711125880599135518105368951177463096707830889699847326244598046386163389621280521073923708160971991213541133471756234658862912986833843450796271616222747457937485740449685602909343385366687646191436703767493433421855064321175944171758914110398823442442016988637193081115671090493505258014996542639576900587311568970353340773047856711634184572965949557508835613416596162389801239472312758861118152812496443639539500253622512835842622224073311414916844661614909590443888479456980842922126347067208068492616344161892094065610234407454965082194984999128359768375502429673828786838778769717846619029047002248777189813991260024234703304114779420273837867142967450421448454174135625174312716082144265012127607144833895198284239957544273386278871636713064096565345894732313723280688929240767066749228313167426324690654693843035555680947481350538459732996164105838460283267454146393499574536721274585761889085987613245386356014003886035540778390270124805791971992347191118732906559084725585616476529065511059996454333302157880795922670155463217531720470560127230778142466720653930479689813705580491333192473035926240086297315789160228123210812787439781375708803765830718356570335451023815054869507471860461330313832956563926996930457994966009836798700208246253835030848143200658958668006655784340253152675455993832806142150108193285473515033562153907962160794741060335352163108399335971431100603388803411816236349904800145662183563942228384558857756550755389607837934567317570884939305299364118563274693846037640043496114162896841916523835742882687187634014646551812787795095449611872131333165233227183104976186444351077994886734696843375874579073482961175876542350539608590967743153079794575722990024327504065771786667630035938833079958060997683794078692456527616638054583485990778176029311083997203333940216654835779067142086723021437152144901973160219098248847953871696988111700734580305297191590406991909523723427579225805341800654166566446071469482220524645223544222967156439029873041207763890869724809560337027213823793714563453523638194079680735897035204658235932786284972143235152609394795284882758242661401284174165550331224975471726632512808312805425872094365279688920683898893158242771258926657265349855646716536481357745020169663620037793988204144214071954136353946099515014788695344094510970626999544390585186410813440905286186120225983838387885940747141549385117136133722273652001025099630987421021785353341980951755949465319432813466679025926016382188655800942040743065927920510321841085069790878899252644453336099702968917408762527689866444186081556191110749126819507572687836258163041243934126770292853310639714744103194789730694011458877346761968660117695092268900766863986391115049683013339224329256853189642602601813600758644891876859445074309240061905280605777467999424116904321344370618971585179307210034502544125673450290987606701030085811971081444248446008347519632924246459652729085586604137744826388906786170531398060183303532843609531902030972380513305127313156688199427836129728517291889613680399252541402250885489530883512963091969854759428585435711138955120524400538732481926878092284139987506263988185512799275706708879188775044626361321485748465454363557386444653270866480803735526535594953184332434759613863128859779464732864510903132447933645561525653322497301929726767416213009163629132825638719433528051147419931387879400430247290458218097638569724597135766595917968392356540153794940957960606611324198141958596367407756415647074413186288750270373244671682931793420809036633113932463817108077203862633538655434234713614305640308711166917531305884933131135205218758856212574282821614042222247646673437630474696632732673036461398627214565831366599031656658629334699948457868082631129670482264049917247647209698344596289807943390492516616018032862517973494012188946877141994700258755955182171785218884252360202924453084874889313129559369775665374112125133387668328252424065481507910906844659805800800349645259599821066957952700276441190335805363861502171989185713381093381046859558664633283042145757702845453300873901431077370778418146006592846462726030786806738317943904832848899231299962667287174845085278347275770557080903087362569266672589431129233893505258411299805198590402341040399333986126295433428853456756994379873835412761772695780652384159411570300337967351614264211918304153522617948035323659029667122787914058958590637771355737858560560658896477832326606122213225087643961490007340727147017521491218396985504464170719799375053891872197875563934270508775354929423577335872854825291065829661492833564284267492127251725221457887898118846338649564139628669288289659143037040876255858455190543333865479711751780777296017166969586776255463888549538330356359415344292303237215170177850979476031204391469293105980457043473004672299604628637558392429446828395339725533189061951112581503364531084441250512757131129115839205110218925262369695338700129200882110595872037240175674241244992167992155494875947843790355775934117336218535777029880324519573037508150189857243161708721569342496443404878778100980166161409126900042886128498855458353062239091792046548560653020039207966466296804291851518013928401792243229985057631446286810994108430678546477347104748369468944282755832438981780970891889748662283088348357575796261627035550484859042515286539660257633654752630609864728540197705433225332459996636774817685899581067548554232409766520115999803267216057663370321632638592647849419700762412983149644497508800565120594818649115937794495629316271076154916466744558153559639433917066944908937760017958854667878751838309118534425775069067434106494908197339590418383912177723990658070200229723151290043489596392235341373754526205086583722691898020345676981798906081370156890589050479607511006712807875398805462163800581467397864239894080090053057714229734111034806365262593546333697132835372596138630131032178791010436867074335419046428640202892117404305992384568489701622692446276698033327552719367017454188352996789172121434055554521232066619699019241989828970285165164978687626246922083998933736416249041249453002820059432806363925608260748346322915593383493533217869062213016842198663309922177288022483126323146319117686871794448371961232724393601851147355144949508079778049892904890094636239734317945126826989485686903022792848032767274862235733781973890694609002269615930428987887647421302738297372699715086577664102453084377036445487872774269713031446343774255257683491830983362983206364900994521707907891055650432133967566652727598121992670795893103775345987470625835004852853643033601100910651677137123183010462207677810879399022350261360945161823965211998023361833931025355162277360123113328475315191859444161995505821996809784981182923634302188578536019192390192776392037763164532571428313885085990207332207363776236995509675393734412060641210300613834325380290348280478233223242069540451749963245380456425555493237025034799311804533596047065070171305143598770473367722150344317645286877801012600603141448439531456246808176791946258689170125218616192497561437216927942425716723508231764401574446532223410981665404326007941608555171743232875829871479534421940751439551426535981561773336272996465730510194561711998094408451883623533042853269173064916699642594879644740013394046276956148201453145421378760708598404810686665063935815008103939791470365858902662804166790242407976044692925477982345062893612111419172440785861384485711186398317658127158564780813061734951012832159257959188757088045867192180110325466082456167335554420720296983765598064245526775614947969265633033115410517593866054725667134214056593837685930363005359597934443156117021399584055883693822882323655128638528780218124470258679536571020319653077181470527796895582344276238436446879310792917058924214095504256990809673030682280431614150447308732598689821985326299397727378373821551434423884001734137088204705228456285913122259230444423755992331962779117616279842555968465366692188648187098562400460884727752898136568833335419005565729385031082034026731175563615274163514230164645930110287511832652570170396198901229138958447760004069416739592843541248405977868365928639130695169861254247132870533444681304643720757611176194679137612544453741485433340425023461049489664900824316046558206459402771648037225764252197606509288341428186315035292589228968276800592357507833350666357754264521786871159916447651863074485745137863958631232429455896635593836632117392038895452479746028225116571365315350847955733995658488599866065441309707967988824452391639428811885671622172526449766546292957355694376297718268808761898261363827810511535193685282227697411843231598188532965662593786797101777290803831777900142634361855847833727278511087518885362475477717168784451292241426681431130525612555044950860993453858408976208674542650954145217488616970390374174269127607659935260294047191073286460463743783138764698219818884770427033795590287626374217684992433308873945885866233742129988570669495925049051718815892898703202766955905827387543168062765539794920925817545781941183366170334765861130418984688335732072041798707199690386329833578959427502834650968332378919540794622776452318422255656839925105844954798904885706932803308860047399467694510882078440983192806173669197883388878328829217012250794831093824024279623539911336342024491186527341065861599353761057069030773918141957161709280345025367556444841003185284813181089496499764344158403697138896027377398479627188948315162163052913512991810206320167044881174846902501565091549956333228142726961009129022649604345418956941522940279602976509268495208041414714700163272780377418940812427948286439933821064674076095820399503121607972357503231515530909361946532483332357011453322656564880905934949714699020489249580215429197034063754388133383006113192126125045997990246669765358303806086961748655300136584025966067939381952086065455679274393087694133340891597702296404240378577367433700238933011928558369626520003436394724095249722326918067045432813754012081287646913918503536998839845667985094718697916273508036834049422674785655276095180609689167594055266897155107827256985590613037700091351874312531844787355409452477793934311890896309512611808611684216582232939843824517492741600081138211931708980089836528877476333746159956178553746176298349351917728463311743302985207640528962552570677674251051687380484198326903442842571600904061784215801496219242668865414655551847865192790608174227485361084726249158421275693110850314912507912556415385402183957649915826419862622547320020314360520367363781651417837497407559336155643978145707058560324666377652234423686186717692671923714060094744845825970866374266393442568554718244850673683898464594981009694111921299345343301184946185967368963438236811978272619077219980494751452518997802462823389151075073187449373564121322960308498911900099146342393909247848977065479414421668435322975671149559188358000576219432617746120272550662778253324696535014857245370144781626691513070349611952387458374600268753010409981961431065967995281993524260344613846537476613713121441513864286735650637507600784336528402664888757772612039228446365211806251631184805472865602048819862618034439557672584659483040904241282202662201689438366346366007722274776476594455912265396046911682534590259526331968355880141383237629157724956964989099182213421310095690065692028323038359210796961881673641700688448083374331488371863775442537495735088846572509852503247686395020465968493376519791731633168917679532655107479704547501970751214481417674325231073500095934481439718261953612792101132266228742663210205424888299783798494980099605865072709409866467787151886708012210939484446185486330217341708185923733217054685227072249129955074473193942998515476024977246528734111026805320068911379094059263684157900267058893548154960416902906108972172793426954107009245571043691783753684370514575880195543897107437223773290781300551230218249282522509703789354565504649320211854977822637119228870270228074509745188006964437575546404943259887919190728043374702095720696944612482310641028862361873842966867032078730263119160332224509239201248472683175878206439828923418652769666644776875817450475137016559142893670608803731622802901626055728515439068317205158355683615581587080650484720731945719803422488711965085828065736948307193615167446461469688283964060545140926193777610510703206972882274599073062888681394582337374345405857005265309354642707723288453707258918572442560717345711409032508022193729369861541762713101506652752861911414788721299978979094796361904429457657997872998319341896146596170314121908831395233476148359771671917181821548724140571872174039588675225491885025106363916809844301358368898878952724783304710718917348634007673603065132533560102747969845689013264135859696447358588535273509245345623190887123553683023132641038766390780939402136452514333338397765252450497343381861134344979916678375271052606117057067835272757023164212054797487429768776769315632447605422884215971922627848264628043380984314763943789011181930421745633906973650985630321026287613817192367269959473837514050016632171717261035403896825487039077733116422764691434180744163721688101997646869405642141644305284653205134345121418198760444314654373889320185986640004860435268041619864134118521656621906506261001169276783986375524804739252804293114530297192193967623511836326839443000472117308770239234714533001144099237061012529694730686016525664689191550614673350929634209591999089654004363355123282074832262362627941006327491437722303227378751579738375336387065036495764016209625095960986325471093943589545044021362710560060580448564200779750376347068162275787458332039132692380502509252876452048325661217645779800355361411776210272478454789649752069411478759583018416232612487881699294692059913581023477877426983609724304987500016373577430766920975836722579017042180564382619873349495764719195344664846530287349202848355241652559565380566306930669935970326490965009193276000041903586601990815037135550576188929345879612699300495029215648988077492009069652299005881018382125761477518585454642751758628632910017990459941398405588970715254205232179452092142479657134715931955515862151168381449756081475247121568649914356124248669460519299034894924285294182232363700060049880992886737060914460056199297596791014569692689066619923115854596387659992665641818588994410200904921883829406443075214393545034613492905991987453973133108070592758167238318775354316447858770060770470461367005805887795604656412554589740529205757431687890814395101526869080019228975847517655443491245590734290019950038467114088840544577091750958035806923164866819246118936271907382644885851121073993539278128866541332904852559979705439590893414867835551626218730714055383793573819903665488071367700633274619183530703204870351709311788679240105775627385781468414384572482687034872629292903075014010669889778155240359127562114290792594166609757641835808952064741747498457989907948853585091893801942630595521193724238087981705438655499327914373729063535297010276201062667275909263529711627986841471022606408383138853828390613361061914640519676954227579449802104071887826225543381645124741112154450652038205728126635145751800146824156393349354115687189392991624514349366758877374643288053958834895250488937106020405462517973870797961936504510085240253943129716854433841214941907004197668963788253407875735644214848860741776559464423502413615039347709981198545736088334709673501830840063947053122008216545298141839361205846203465295372990317559680649408151922355426334616547396229971307892338855400870249005431641437195135965361100587085810691214438866928323243051362445511212807446389521448922309917317696886129792800861251207982500827477661022513726612331009919779595752028543653283244368075941923248926115685453225967122653948167535096847220818307706431349812208024962851129244494950807374329526460723912768999903030117199898646746654718783754619318767331627985996003124957786199642629048060130195001086314677497153168065774946266695637297851221324904908631048648120427965675100760702631179031688105437555385577449042189158537550924091424550523276865624183350785273325902038534610352574157846571344189472151986466125040885176795821006746648151761269740683718254930451044343836812844090929156560626671009131962606068427882059898347066234241952855575737686051780828015284189257697162610081519768230087558529313296844079620293948776003927778030099673610260013633724596558035398103604686670384785216484307636729760994625359036100652515751569706431234347477706700009374926534262628975254617429056724214619944151343504225362812692191041620824692512913775191678768909485820163098225425818707810272701368700299266205294932474239662344470456846976828208296324351340344775789764100688050810227696226521736496075016679002550479315896755169985462953898005507844935501940222176272419599594452348887680969609797759049719434390003549594352436621855302922418638178987621950401689632720215206795161744551666397864542133691249696974456970990887763896868258638242678192568759862279415730339363510000786423063773700123912371473352510646125899523739069266885624276826601945971997249935840816841002345702689562416761146746409333048198972763931379124097336332791416622645888201894465773549121278108542622202297429862116264170234530062728740317695894780589958053785407117275619493343185716839457591560493898325493171014103100117078788759712789616753192566470520241408461680997006328002841839075782976375664504121056733467591096237854477043241752213135793478668921910091837906252202157596426706335828027832992598671885902414311394437581851334335443025129055954608935796531485777359770428731060066466535936829502443610088230489664527284653412781844259602332495797934335756497760133961066141122810003160764949636208412652750955303235106915136076139420500450624323428053584207914236522552187869195482212664786953161571754991276623149131453435404379065005970634016320406084316462426889887113267124796385506448151348163425223934600016450493257506705729978362094583625441609836968553559216137278589023198012014636229810177571320790263370770923366704910931781733758559152421260527434230933684460049657368366639022083568526741797010741925792212176837406620035826877926106885943317783545330481750000788917519879546326433865194615109409531284543380205515253691077589908890865262035977265697252695635572487764117902171954707636068408797198084335604885966693697923523366108404521383661389775081887032469698353836965982367391058300507516495308594282268810451875510810487788698111594337008399926751671676917523741656660914799685185992927772561698057687312245410047164870116253036061161085338953777384792026765570573123766384345079942417597655644598901505225206656878271505360888232507040910022071703084018092650592744805219551234943990838393024535632468096621213023441269296810264832961633666267296175021276994050056017084413694568324509827750810722619739883618981503957911728524336889686990805329636106263883852202396057294409186265050054795905462956399321467151110713768402117856049583499339957285718061171424251206195501424410696421141390890552809661197451037434883409189558386546277216975240574384736434093059267280183231932030434319226412877705485594285287859814803513148969625594918874990636419548271184517219602380772850082760247681443202542771201931123338574263344850483394747208268881964370633989488502373289588134647345306641738479285970629754222068967401771193427871860835863720736855573501503553508330662453440524700277130282989385689060531695485074763353477612354588176464876879500680158737570111818369622323950429234714320773305599774277241883013177243998855737356474370645333579279763517745283941059149492193548039511949661766189932436466649285023482929746608417729488630070050938130282612183177098182006663813734386503020035717168119981104461382524645986143030346952194233683473720226051033524809313880697226530863082867475184857342031831189147099825338579389946634091933094468790505851534354014435916837918035698215519231008626566452987152931513023226497234963432577439302245002243635524645701186551943501365800262363637967759333547447948043219635654514434431643256247349035503300209123223000356708201099002298438423091216645410517456291110552151191137524585094799449479506366671723321395243493994681135844525904651366830802257062312713070764335487851116161217686633385792010852535650916783463649764873995332172312093145031959409019433520508000162487924213416898804626706037986644626216408492306008691113084970554023768454092527426363877565241829126843162569492934702821730745186626893993398123248383860396421100987524183427239112750358450615945859367622720325382762814813536687552218231146451836208626606425968034374188286701603286914303716379860765127089778913548181227710502064899057779303155633391133793242157455277466692632936482764035929174787296404521494967666402371875573937453821129426874677597978784700958019855063101478767936517785575959184187238697453298502177190179247875049174270733095998062667418579300460923817936573955803719958307124209245403522881471915889994369438873035738075022782979504650795430270806455152696487930689997330260069887409984915185821865592923854278151566489710191131801056288613378140426512214755066415458671863629060623796126593069371531451717443322985848201753308806504159215450576036108347748774969880305530198073179086252202331020474963195498065329557635241226175793800830761522029627007175394809787525673403001846542578995874145015953538210510898083427055409571198140432068851401173500683669594995292617505299108447498176823553972031540583357357530414329615690847069226959558294202645349607515373763482652011775982934694275015471276829234662711127337835066601123048800879328698602200858596143128852710653929227651164444478494635156082607649901039588980247571297618247284567563418143066393201251497686876674321845144839931967640972983643568966923251262651619469763302803772012314507363120591994482339504514170261967364184507920883328777356375226910535292907665522581438710783921751567108238718523430466388378991149411016878336762830645026877994865601115400026039629089037005179550537277234381508562130431802483947768260714643145818267164870910992611131441369492114841917033405774597257325588091403465510255545221732236437436860892912213123743553152904723606598079204030837998273925436796971997392948570714397599418858901221326119432090426878704611541056607455204358550778667867657686508699793041792407753220710518465984620840035562057626293878379125489387752325873563539551345073051795212542994296807393083368007339188307605076775762451962037398674973695292800578431291572738805853929755030188459743508483409031766977401703871200495627113965834659389130862296361742671803856802941420992648903675056214683662291300127646089821862351837388773658265231961027565049369090238249678474573156346701639984502292183262698326375394909138096830692770472371900536799311187117476362227144078443773690069925098408704747627178134512908636748179164491155927797765376445815144767301861801159733338785711156730609777049006793162744759776838177190788911240766103611263723701707338403614814620345057687862331019697964020674176748938681293531539503311930197570954088576537822211053942847121273093992871159617378734613878828333687608223504533931112281012098194947436405560508787420657128093051560335762684938452166546929741363247854908774460621332814991784398896940837027417885369541824053019099394692204169847362812704393555494391250245167325087335285998930704041999259423577517736974520691015782119245362477133774483159264557847720412825004926382118048363722484215337109607032809566957993452480728543751697899459640757431064211386445118612884724158587785966708851028089328124199759995153555007539092577277475413145966829833247039512958638912348838058744135117375773804499491143898875227590894829811611676624007999817044856432435575677806873492223989960931725410585195026656249861749277992002249373013729555490395943154412518128447453992135304342328071343352845267896951556029691333451483400743183630950645888145694674631132261786020160514272589095194624447464889555214768114095592292063919604939782342212281469482250429566482983519151702251476232663279765923263774994837649419155975089748612868763602624039510319523254136339559896290890772567371641818754534156458324655290982137220303408019568087824870504957768072839568434258495132831041711935469714596697345189114346718247266471354200268529807580260622916323438927932652199858762265049102356386150752885007904588907655841538935123452300185844383217250379548658363333876723839899639011289722462877284596616962215164773932926457304404582234596028227236228560570258562680492414461378786156495351680022057523685437472546952563334072872449494705964537556786431188182270793231744661684249123190405423582586426575757616357475439583616894505506938629101791249522631297130048128937274834762959747715045931786298000549574583294199899831484637119051201179296072906160762961518663925087726186274213423738504845931028005579340446531252019196912110636870319107442902538756610168337710884331228195069948056293160587643460009268250185167587162651751648201718655323104102889670414591137776643566563083520013160615232555040106303376421492670153753059886825158941142370750996896866273734358574840444536087491314137392089466641754575714973733288787847524092345751521638226236097058596853737501455076853805265264368127631246840963750275413418701185097283359780722019219423787209616068305755110149985733720620458060725121943176340664030805290958632962064808483809809167451337364256972112334089299904842313923601482923344744991131837385018500512486657846719660436679723778019710441226591529451500310409349287708274887746262303215915291179673310772009630227756181808393277557920909386452940521268709007601136769253405722950846800579324586652299876637256331309831545378812546277551760114833341651529033116078636011870666025077091226613565689843881311814823862831143324654636666103681112688575240915890383337110731903246380747908572783346065429871934885492402480808776311248827814291697192697101223401567583075527582982578913182833001241230249559350765692903876497671720402480419644045963859408977553963128005974374201615653676453371341253018701808374484560979667598087198954937661124341356071583377768383522224321896656349322561724506125264505389086874131103966320230833240025398421804297177491441188488933383749317827784924518796668812835958565859347999779404335421025621663665391903888618094212821284263020875926526733078650390742045206442932879613367377965555248482607327613554112995928785546575929124494173932685554855559859046715131821634711028092288549228018548828583512500278671745846794184997706017014827636566111451813624958344745415635621134904944001336482061864397892096954018517556626384062500038126913811724518603701983599645128558965810357880833166898220526620954029149244708172692416462752147436395360317357672996798821042337660560928501769733910199774075054821047934092068858057102098842263069689337297897765677609626732227507406395867551775960387192712866670752865459898768459392477692367321005720207737399620989035351521254251216336780290873526294120178185389831571269802079975527688013266946447597445935111642007362924046012196351301355173500205982082117787543982616913993567373740903649468143297903797165084253693514536598058821810148832564346466037350826539510153474127827104588548519221099541451234241311695666904719547666298559922420406472479201194562519186132730283081974434343984134476639788701816030249224178076865616772250794739007327623726191212864247634106439170609854888149354986392378941764295547604824103825472538042366321131833641045339246698365936013228443816055937475518866822929540361968383778975001672438980079782250396750923331302019007618377427400685291560463725009866822752584474560057769449280013085622652152986037311363645988156480752573102967663941865729916920087936456871120010045854953792656568124065996576958816545348325518412442210288119739922467253142930889899314928711813509841462932979382553604286508262209339193441847924987325675935744084682725410282310588915075952362183662253477823868577747952912507978991414999251300852313877302972539434435277867399058629093227587943490548338624275636294635312178725394532079750032279404774277709298747044628331390931183261577313953865630434741789290133396414061443231829467558953342792306471263316031445322038547217187478406792329349233815159340433980744347480756291301891849327624594314202024363738411920231581214836036416380165197193907272991703861369109532203274521193696703735997078134271837252713623122503874982778566977567590624910613534803861799772961447839824066069790913204060706800992237156442384660457728333697298308655829408233175535378464278347796501161013748917542826604635358685783481642017943403808181784046195653303337889687474973068078529186355053194836281006386295256778268533501677390786449483498432324094771276244309635998423702317577899947090452296623923082602375305360947282237403043205371406082305207881364280955727162594382833521021014494154940020309948988958211940838302562919547704528968622966921942538922824204876510189514289000479328650143299285998922205059884938645471836703125721628166369895140397558888640182235433188779915915457355048532679372810911069982826982683155798761464897304662600673307437291141920073714357056304347554352557936842506768045270535291769614315611076154945862267671967603701582757436856583348515323444230595478962030357796344019690883456809446896334099901217139131464405823270310000793437973120428733630299787472463604038603538600045189895981844443969239613816629534596582757836906370866237874664943445056352025222087438617030209576994507651435942019707199999366917150558641212735717236354706027730313420096095768339282664515974765986888043265924726385054611800827467640322827145403551734880630913146655561404423160720586025550553145147242671968101103460447693082972544339217888674753275962286981514711454329803079265447358366726771907316570749258489669489846879415564563914935009013955143910956311232633033959613123775354046148037355952008126704629362350588162380408853882559575388746470713520982127876313103288138829859957240663984323176009509535910719305834983112450841480799236935996672723111550687303435503866051566236886966269868077417981470496059215196947883265301890182969372839322423429339763887947045705131806714565799073963373866101283585141890958639035912446427254954331267346116746490352310230063476486399514737545072434235703870592144628264879804892866986184722271899047407661692781300380649606147756175332525677086211783102098411431115990988410213381990617291181684078727386642025492948200519440218819076131058521727421675607032660945786162427561106301040460697856700162903481634706124461167955163030338225245268604196795909815492924223999768309608004455570299425220757504241889857889593286472831086358512618377986170502904411099809513229493195644795859820464234688275862131087598720321607393678887976245813243872063543220762317057354803400389213570065812176918738966288472023614772149626351539897074679143969173481100459842727160751716150961889536157266916890131517533713316236644079627602396897937748815231397738538829820406508557558563949214887140806083969451413381513816459200703280913802807126228789343100844224271563988341865733462472820510710333650348098055554452840868403781017018640339366504921522046366550689120416365522781296497386284694890724221248954665229156984323064551818725048766557903317294702077166118431159649543411574431907757946364867071863765941455716344771275107204692086906500245083253449978323523903642242511031608959758843334346042531510632977600635031033573731997907907566779845564933397031147587811406496373899257075357770580566535600064978751291969091779884876073881918639473593852681564338123011304580337053695778000442418145505392265824159248048342705645510377207369813848161523937363527503245471241842676631831064920516817454551970613097960278593525891585712521208435943232848683020083880669899567072583636838965372639825512454418317882142460186173210642911292646572092473396876115520964584701046933829864270756534696815984581756660126098555751920443126923699066792179352707565555351028293978039834090059363548291484746595113061869997099326466524852644591637604264033990173487994340996328028673436164709514015665263765122337205373252244655241916509845975947665338901734256959311858586936916202670979767492043652517343968278769187047618814203459613319690444266591467298669027916364522225644995655985570586173868269441089848540695995505482496733169042126661488098064121299004474728141611371772964862850597008642678437530525235885621096402940043412332555921704808856989509973171169635048573030210029608028131750238869022076284466753247734661551943029406771302732002172042693547772112056073413543256250081070788647356135856859234039300534366036021695950969193674434105559595763754377715340753169707107818635847444016134131061202439862568028823771474290053038276633112904699568776445761580991060946899308853636345968325228036596724849050471905100303293523543563824201950160523258807531496735911225343823325750099965199882084423633354349290288042042217815277651293181442430680591256790779438811702823203414189036816848516553008189219530531738106680470365954517465847515760257501257807217136630536397229572506012735053025865643283135567425414616708176072199652991867719220266201758310834771369874747919184244716655738266671477083033409816743709079254861583033536741863442470384636364756498334816114549501943210779722712709160652707153354639264540434619729314302542161113625353168472704702063059488873136808519919008274501370726989282524648941475260980616074004116268454169396689039890400746150922125576241993763132225264242930020090259157224471607706082934656840356832412917795099187697420659897954673271607160651956460668692521957615669462127638576539815422525602288831233755306003046216226552718966320956484551804629904832534966761630145189614589280399939678321131103979819654554805453875344599987708973229455314157768918546784301216163089018650887101005756470240692656620098921276406361247696847676775559584058775172386889821927642486413181093217378427341632884764825930162862694371840694427743918462217540064083625028023963395048466025923593106853214671253553077376232743238018493246518016987349989384851265438863455889256808205788996994361760587073264629360449291332596926028392458751337990753652869617395882882951625194534710941719153642504219396878359317433131697706901798576861131441772089668462473480592883227661955990047345390408657572710004836771465728468848081432512371527209945441239431565403041148472975390328314318376117500730748257818034877744389823816523636905261820773173719185705691924986727612270248530530846060221624971066069012044009020237196049596439955216977355348620514125426528987126772543618978531467147806965672486252262896667211962402489830389834335438170351743919487997547598729768411646502671319722503600666961073542252949970234014858862300150046708478399049978875382523575218984368629257648989593138613405819631652128141369809733672849065977110598784893973602705635370217383431812948564548546205965554866608778597926337771981732019982157793705820718969437682108471271272772545305077883773164435282390233343015621938680708271492825213253648389465395668063341403310782462318092356468027771098196714117257127741517809915664905359254125343177331084480888690083190823115824107050718753286567853404283657050770758359787009988196927788923003369629471860068490151588114693890541012949909310971646120902600586344269118370436046482831564544764329838666496927733527415265976804393830038592864946724915059204988911648152440146848403014480845461506568311052843316234298897937118912326219612703644683752927915565722036756910976021248817431624593265450145437362620224300435891657884674451664818969587557531393023533725593447582296123095136562312461574816690626668598130865896014383906949692465876143485915254104038191371279820653522641976668727944368008113766852518126195987072835522028826737904808122480618458119260236874432444977802802468737500836175862483066687645299357689598962399122595099760836186681353959279917521509683055690401870254334276469083251802552430559827128415455280264960183417306920692852717336319500558824684620452448010541016495678951908521409829189758216736535496768240674600636877797128632175245110716982402759716528812599583740490011629853584112198116899375614163174948252168946633336916573979921467097790809872709609273608185401142887434272681901526223030305602113698093414264492907393998671872595995224108371121374462285931860546667574234156046182308492847278167760451732164116994557319453580448724683449223709730117703909532057856172194875681791029946647528128885223739721290905815709770402433361384459218187408207832614749813346040820127423242283679099899730845528362229534550735801951568566777320959561836951932317018134112191932562154431574322686219151114623255097667809472936461452838673603858228132347203515429104885183487670249612546983368957224810159798245841757638913990136798839523060631768148006066086550799975152319996870662008051201425598298037881324721615778152746186705739371139089846852160291570001072649790337908781403130633897793885083833506201845719262534730933987939631959330272140352582931107899717037477425399891564994941285009748824055406163588096586563244079263992445469851595237899825292563379816791177009052204658595286530581993228175254563126864484161574910034721581825110548437114946002949938069409893636817962883805143354240762870128657910010519481801018521196473515518588408379871329055183476945622999372276889569728624672013338268644010518224773223578915388548958985995628833815360366063513083619764827587998823368037721663810725052383813343527983830956764950845021905373832642741722211185269434256668714096401911908712757861142514160404777620395627510367893662918132265365625456027049926871137333191839820831131317891548992562617091540837074176383303118636759205443749340026418561780559498255601872138043878793310860670327994841195203699153069631419968882199727851645186458200832311917674858460921883732193029639203448975643606848403610634920375174875391540986580147086209273359695029977374518805442479926539424626053080489124313713645426706406702190189247991785025609095223566481301867630535024572741097171109652138843159772550897218625398291675903366689786025189421473746022742015578742617323648364936083625909157164434434688860428116724411838305693244726174562793276839227524957878394791754517332950818427354255843060426751171981313909194439948315545465310802606501138784198333607782656476375109468478119249313913328171173349222841490007295625201551874487093026610297234831027439971768643710048317299006406992671950003409574669046337955560415619981065321067160562442610957254713388708520379314839177906654813984557710732798355750239121558251946679936734222333109350466129461031968264598473234205408999584884066022364453810231163497960669706062348094702347298172946503892194889807649726214815664389447175566099942399547407857114590889383881072918877113325812899391707928125284566901349615354198129082768273123810010157027202310396481339620345367765849981127499823377883211551388505126872349028210770157469339269218990769355029924950762520858348746394283461739271260230920566941288255612599207515025583078011643996580320608624943461864388053624326431711382129803697114340342165968352685812375867992927115067402495894869291356028230426989782291173728100109228280636921718820477479216606524223272220808518132569336388913321531088406364713165346914718241187994431486486352779798488172248770386480699286261078532656204451785918704797267622442148854080119565791338735016550252017914987874071989846357237832314232867609964469314996439990666891767015559341973538315455726498027657778419956021922100208299135975368623131486783178637140390101808960840380212803285874792978498736562908334199270805421324803767237912617835992142979209133483013376558214991254381015762823663873177056773834829575107411426503653731354301731602138197638089858106849503059241392532184129842212767494061647235077653450079732308033921540474235973359226195160560068732516775395087777270484504663536519600104835237127711545745263408217783624790853256730380858113960815732603378731924433277974190217746759310267760773826411768494710578501311990638639412451821657904902529159211155790948216365966239644694216734943598135326994250517687467155913908066767420614962680979750672700407727632097230444123917118238749050260308530535259301189613775515531092134898671881793798405288119797923318825222551724701158293961000083867298071632188750353914928828878887730038430648302268063397178569784914024034402531813826770274290648517533990629513415266899214515064711392031971359174325366489093792128057245553801837760467783065586137897688086418077202613003416988073088669285745749699313486048065249221604914581688476513829548854979290279615828189387713221088393417823338279623007505840967488076858640437346840534970463150872941541912585967512677081142676766120374169664221083467283630636096217666187470916837432742320779285070660296218194919541885769014344223498393270288167294687164443643322030388955530974209972942652776460496923933679198352287590210333099924234460505609566222336709351027159936043040599174246204757723529149723142826615524058562010138956988337332790833234891137771257653664563765919874943415024339586848861985798025166428592213102387090729615856983462021011658863033863192786978129884150436291656899999302905768911175622324244843006935709119908873971833825667777925939241428934089676151249451577185316296677667618324218090752810369910755672436310275922562690093529071052043235722363856582232136929110501678212890619067053911422277167174444035896544703854843570552293522500083056382329796762048703733104211946578933801924841754940866505408089792125699337892190896336284349055521828149738596822358132251585890902988752196817862877042040201639578611659350278284593426324552207683233957124222796229261048406165033378991406055218143236748511039426972964557420959370977269482104504749151424632132415326853721108800100282625099110428482550219924800083786433379808963158407884787716465716962508816254382225650345045018799120016205381866996677714689860961919365965609228629120604719945741581436672428794955664719008204432285582317068559923878121964737839077975630469767266165343375049258722225298893297331781247616648692801279290637511545533864689159494215940788393931919935949897722231208975733778483296671773081865800349285575424360879504047756265592832815703918608601132737282608926094616740644536548739445944922131704050291959718562159129756085481404472184231109697396960676202097221873691871048687008907392068726319166979029119071362878536651805782364255064372879612115270916890671633994263097894528934275974555256619856034459958534566332637919337082795967237154750574785999353680580100384463720841045342164237258067076225043959881605639624740333611583112823635007847130125642173467934671263774766036279881306471275100296165422656182551674034526483523325770900007166283358812030836220770888167425635488926410008319340142501376295174252596328562894321098673039281023004308066191842414667840307081024766052047496408841747670999043318990092337417754797988325273994037343423153147892356563121979599226889523575324282338388610011124943253531316523837617760725815148518677507784087984451908513838940746710112577409743548057390756529516876158772377728481842043701181291840980138647896739045090274291268602731642561462015803740623701295636833053801773537006989053532832470872951824176128930686652211553950041176780207323117668132300975398280157123753504569936371859344119269120187988579681359788769174351476719969626764931715931382472085297526989993296905792507518003279923570788464593523784717960494988901233491802151910591082619648448645439276406293493579168125979926564084900696552791143287400283232050861033191767288183503026338756156608725431039697212566006340592622964978217105652490530463835658165190935506358387000840167826657503945237919302854317816752058836010489224456518940539091859569948825387399774500894673613946960557076802270019715865942047017691738211045026104043828041950773879711750305382713396969673875774583024918943782324618985614434972423246259489464831383420506412579679542328242588739792992481912516217351990283971178930191584693471893445085691565350704755743545213251383285079034375322006777368264633097312467617691893141591704070252456267056768024941236498322455323163931099551693665158455270244552787720893641376783373974579211563066601026021419968776905044560287586593099441011281009492770551033573652539948260918335818882102969623682004944761997013799545773016774282903710914177798851296053059794945380232100958004297119762299205703421265995788579776493683358899005240785395052254699318584872985157585298376163705477209517591539561628015430849044290257249455812076882293951856969810541483806605807073506550170818511341514831895473570492060400273659503158276376808648608364899698293841394253408565464700212533060349336721723467418663508012801567732240074184803478460224026994720858350158142264611013716756183891128118247996901131867054928362982697232968376739169870642270693180288669030563792637406235018619426370157180909709686174233194072765535961790947867888094523494934388655057171938931345928826409336733739104501612349845777585479176733639281648103816726595637427948457936316985025312980379963829675973153359179385714860626991458240844726024312584680757862753263669797355206026890423093965267411115317222112416158385907128460861890977118520037472088347250963637587348829749244751586838232801839050900244218692557177267015419962929868447579561268011403240556808064647351714750763312915444067353582588405855139361277895990733765914933466103165288792213335437577073984106459350122153018536185187125352613483005845602734329576513448561094136205796554621500562343738062411208123876358306811736560173773423641689053134950324476457901180795757323117577486283659098669220264315983137168194957327491320935552065475855289591501372418436367316197472819761006963403918926827391765762900758062756049169873001286782463934613291907700370051884795996798771692507331428294188399017729268615456891826374072936594983134613703727562532724932487425895843469081515340136187081678830756504359963991204722576447755819561307754943756086979221410286043996507438417603000977973652971519527543595205411644933654164875034231061978752684746842922647223481542884268191857032761416482221085576002245610170265863234055344527158536922474715796587139124047256624245454286534900025742025991726056034874631895644424615907998275758599726410140483495572815236931505639487960182075747575484510186486411473355483206910256287397085976359211509323437348396129888635652642031813118447769332925291247715615012633210596501733343416016515239328701077202833935425926779813355021552390461142166514572029223895733856593802016463522010631034235534521490719894946184114857603741530423440290075715050611585276835853764236085556796726944606006775021256922340868860222298253610554824150161316015574688388384818252095023212802604538164415811774546816975114200746592555455411741107070784647279734221363723369119557994251553184493127375028599972320129677358471533036772344692234045403158804422504747270521640671154230320711981930754748343662781278107826652151329260343485733754295194747824691909599682789765600915646397605180159453545560179978211277527402433371659138756691598954758593440138956812677487183373152752355129415736018568143982510359435101734776068841185427502292594841664461182007993555358343101659593102404469645238254649430403439061763514478293093923383245361964433911781899351608523355762668281490227031582356091206093576820570697924849197047955461889609646913837206152042694661135503630716256245122007727239341060236990021003246854357233000553800962912708375819178486183767725151565837697976682493002659265632221662638964936924526300849005902766206757079227646767978723767658585411675555600821428805502067150453247491241352175371889605941503864489369025807967051484439553293117512232922552795875061128040511314022576505910772281669037374263074106493653653138590705181389540701132682021918173419929751114386052723013927015034014936948423893746986091189659554825567526767949889263541064715385219283533629720329525106144149590529862298523136139610172272049152840582732529749839608686273522614128258165114917181348442065750686084208607637413674343610354446395118653265150902289545422435313665310440795416291878048316510107334091384663183249918426289925296187509610695001915386845561112159049539243048327822615885085605570256248344978515619262330687193450180374247105614017736422997597610699983744373274240163928125931426964241928547431011247167937829322270116905353496958575742652905455004240121451352456297887456677661813653238050104351028416883955096367573023907160162828084885321366692853049218238467948668034573765530554316530456334239232939912030618317805934633285598119323179982418325951670781856629638821805624654223408772995757807466012925818825453404902649789145536420687099920109283717259940504295309181897930157263068980052666324723466381586682317366283392063659011770554375476229767018217528935503567667659894358727361365740394645918605362116487527366557794692429146889655356987462296906727273021149779719187882732881030097236901742118076761382360253133366287739922411157581796261904335227811421699334922831944845777783923934403426272391243466135071751685365891753199940949536050809800164357845054849664646305680290102516169953908509109641312378322844052948340965788685282832272628453137084435979109925805053402759870478265105228340493700429108249984110506943520028836732164045694986138066939262516045907847022595428142068332635011045376693410048726509577708877290436855305488779489467329263043319831532393875616868161701357425720086522399394968918779305142611749526080229403161428800110655981098305797095268439034069972674630233327910528102131762057557732885229527177576191285035298511191139848819266407872630836786107624914145151045323500778838900335109590987126996866420119699868501190423833504088432250749415694475052515599616417670208032660144810685154361710442263145948514317685214138475476758585930370825642994645218357932137616569450025236264273961341464001352416744912355013558359857323438569722457524654037609078518460094311374626047573307885249842116467690570897829975629039917252941146289026610986040710006376803071656742309444972867415255486781769011846840193544819383053526743147266311442048763626697839629202969465727991499418365146500001475792577193830792941796658044551371769495036569435993616740394161597463330627826950735996661262426874026536642574438954279490620146451529846998850277147847556557853856827447032931891859338634511360251428348601564075926293276133326626150546606384461967487862926915683921926726250901393158216078584332742094461544165425393763716912234322553951402001511248208663499994720856536495795291498010209048645158499565331297590264339577385656774042061365999970155232450877802813175833701120631485136744841264792587953486217070067119690831710640305163458049153832069258623407332704803471953538425211118798794649823501768804545742434263334409040090782347992309303900289574034926852941026990511895846858322364933420425152727357248258344541043931230264873084705777859638042307933343490484343920080493976095440557278914162763226351879359037882796147762451179252139217868799552837544890902880284566260715287575497300717886976740432329653496135089828051828110999922529050553465360660477199679226961657738966388155985234062339984989203246113377089434643693313954727951866677932650830638078642625760218526219716284953666030091050720192482022693008959395946250736340675537792519221457931932341956054646607367028120327724784383596680280458720315434235962966922407762180760455056170988904852512899333913163220923426407759801687270484335707335601014256344564349441550005475417628469585710049285169152252498357231199667312149876992877211848797313951127888976008463476140438337498692265721601657899339018758500745630533233965172329611730682071591305373057588737073846346141592744219028183307148146303478676895687647609086861167564652966125501885173738164529274063597839659659665531008575798968032792084908698180799645639657479842040312069640197239206059947160111710130574649481031552121036956575799139082531779800099813482543814547701669319854547631163603869197395548052906724314561087770090202350616801667078707590610361954370117465227359385733614966407958111414726147893280692233715150023928725301398441466033191120853593864069671755395000285337143399275204208389227141578381372454878609084336201658412416091002804970062836131264781467094867297413070208662346050851608413615697339843663278460421119496143278390825176950766244396546464425362558760179955965908903319914746357233082682904911851709810282123614140242769069259133585017983817007512353525238512790226360163405130101019434185317878009159719967024388854221721346528080031759688300390791239885067466025965412568608211224499884050220113337500890199203084491347646646031450601563440620400381222216252098374102157096600036619826830710952835253222473881425080868401826031376115483883040823908365347257084382987700085162739673614033011126996777580570518560935181445525185585744308692164515822660629758415904475922913948089603485385708688033948175117987350622798194609183028230918445797998056336234105273539977194259077414307045606763752951706510970511267138729356979575160075384259757772838898928567963475402341008997900211358745594530908245415307771920298369609501468843822069735914542716770110629345850232581841665430443278220497738285220267328648772140800122858218064100346213970121742844349025068767675297691156475903604244003813264360424511521897110244787276891081180145141516863877639787161906383082519967281019802042235758045890753053960648168733741011889000550678082590656040488039572236447122989432952682884321752176486265364317199997063068158883602113932506302489545867594359573445499015265652863841316335230935130754634119507435649155768389208014665423796929755813077181903832473165300505917308733747990691270223531365873614666963210141136220880087275678557487763687251391332056274529125725076472606257959752882663580661167998790517971448291740785214142936311265371812365907275122952882211374363867082557137384286613210713762429565852050744751007625567278697573031656953120880118238314365616509185265752244528892169393547568288691649000882761261996876064454427393887432833321679690860797054569269828403411521072280370351332946639194841791389526987549917627868449937296159332468403799880029914751310172294005053228688271092125496740572253378316059937229167408448190546418724796619094828014791707889579020545552098647993199937368401162860328552326051493505147720207736864382186546837392707250956367840761892326362838633372269570559972309209869012773232644275967027260540643230782743525160594900222312634288922310294749332903803590475407989778880408025784223808512539235878898720005976118296024442261395248060461536753054073342646123466937882235612589604277754896822843540951899476679465124840677660081262084072007027601823163910181671982407234085386522954705373680227940959719703059023198724194134340643032527795770027679933415032735214117429641560147413502507546468738856826835187318633680549082179522347993548130875775507031507426332079337963062059323575191561432878742214774339793882243498605769551077452754902275576219057544332524844953373782897823786324788974159562030839853711770270633467922153241679614434116188787758122468432442022598832049217339086942822410022700799750574564210177373047677011649607374163631818985911102633786000821663336461270168562143582198067350293478216310799425419912856994534602306131765342621550121400983234564298324460132637268928383556681248177251436999488700226781805532896736856943605611900984141740565064422622405507419259885301556556876241457148435774810233257980181711355134328024668862473620679672105770434556161972444240879967880918312957621912119735810632430440040717733826969081075418875242361910482533661152137272954101318487607035868718761303657379042521155704344066806830422271424184674902054341070745403569144046385442021693489343598809269182358908310873056290044180530367023462607035216578958152985017935129001510293170493106575877449611739009902055349428305966497584295633650527143418016914921371666770299375432680053463299078023313278877130487364444362745874608845639368041710906468903218280019510311385546720492131405517794079881461865620826342269122970476030129264868073740389290257377315688851331839639350572197048252064920486951094678641651003033220260889924693700584448346107799151552240745794697575696760144210116317499838974839410571973479360194977418002593637458483076916038637137073719893930625082544544456798200287008566002504577696077804088638770289102123935332668006470954898802526023489591481836571380168341329442574227716891491155941498283162976403599278910766158262950431091696465542626319979745359459828882559045991053675312958686707321664354990714290988209860819468304443194819573302749562046274030491964208092291052294282111295134776489392180789886639413254195125544970812183106699138816541740731993601335055441785529421295931021111439935085172583092102476846592660413771153440874859988702595686677423970687738702294112795673624849526439627153664697873080562130581783362537907124195913017568924665341908516893286917806025013282668568058152174536961451906575422907227040294155170842431832378543013015549230199182959776552122264644123787206668565808864890147900174681226810460227678730758270136494995366688095380369128036814819435747645556966813162905110314664347944656393271668394720389321014598377610319417883097923896603736998249863383862875080821951203348044761901039146356969684870884936207074549117390959554976472758191459412495332365667526275539343646208630978602132543437639677938236472148683534923339600824728000608413413792155663485275626767972648541961005657023945032483638804829085064185827518279601706733874520885723871951823757811775276523433296550000413450851094644687871371738874709756194955401984209690453341347907873880184853050837138413341642259594828359165410990893796699635955010613322190922458073055863939251228672876644364079282557422020947620400395513605815939189908155855174334682614474404110915214498332152214711517542124408859264127170517081169401789375184890597417521879240941097807816933740098111983305812672170790675720559332949800490959673402062402387720230245724570439456444252845597105158451983710587692815757632556144139663787078964655521636740629346122150444418185237552623849268470620740619477190871867854541243303120504348435275737622277836534699329856429467458871903630224391956732772104793064045421420641187539480499134330323060289757031136741232474778996316161002147007756683270677871636892946458462689270217591967229821321626061491190987078613742393811284688264802436152091691717335448556741821625049528779230443837540692439912574535289306219753338805817433686555000884974463751976731491694321065049397032868666437497635865819683143850776378950253415692606135219427408520121057387453913108112721252013001688234104345069305684695851306422702981791938643635617877470089679402674915094442518223257629255321369084193537861752119252063961756386062576943996068502415357785065410880952783032123427689500692715829084534023009341002834516930226617649206199164570599634202114808581339233280927271689039184054425395272280356573990865788956788399932663554422783011232668696209799643402515668931713730000945976603225401053416596051317979337709241444668889283514960329524390392575269015361844460576258166944166419059483290147724587213644755453442626410094537040135669167996022720906845093964198016301153214741005217762935305680113021241209363894815632876424214329271023206286324022139025240579166408083888192177924424979621196372057274065598689740785356587293640207143804801943103870696740426087913294527847411514632878864909419571838859469574181195760042617386138429371469922052718034884902770890109976233408789404460557508437370158958793888762231276558364796185849096970346217570941434437869878887053258149400471609048796458974825418446842572712505007701426223412976502912780367395557701326950767638605535791988945563766499094545165054300261402857061365217208561642233791213209685946103786434680452194013214191635535660979261564701808953507079448062763392560044359419470107622339788829688122471641864288266777144741120703524151865754580551102166526595159646734545580760139894982454915716473182295834942706982393202662580990610049578308525191341125575721199159721532739323991765446233407597525190026074858113121309052662694063097285427690461730102979442807823925805750493914808242927077871800246035517248717269755133341825086684673766283564476703954470450262744363285962924025350431432131049185578421118503556789936830531289632297894009751830726022045389182627368071568379066258545569829438208511000698553707086028327413927978829254597972508165843809713357766191919133377039561038096782765971326154311984878120681808192660840682508352282547834165160914246676552403585276185618913840458973126728620699204736321416715435490260881885837013488622867016985545456816767343511891433237872732960455239287744865351721287681821996317837595372349580261803124239297202725871093069440684710283138467334858036551923781171680306695690466793997346465065334355586596794163363456916404482381125337826855540790624831219050911093596854401132332182805183232801913746138722354882775083490905488528203641066411672281863677487859997005976024652661952482758855060046951434906776128659351548299139734278128723228042275460077079896033799189625240013634617162101397850742150861853042767412509866319841888788104729537423346263581059355870610672768813964502555107280271444309615325652296810975066687802541488652534338493032835799533107671436970735635536485970533388010601929455419519777932871069078824504327573156145914344200414868520891195811762163218513606069946343277665634881880321519390307734568247390541997947970105403463849973274298845499828923915452310847335378805951158976127004312348680551163248057117689879117343820812990209352035089249928108678340297726029483087064792079043819592010809832311525155211887813314886172935144005184556202914830595353313307957372610704062653986231766374308641835881849720386416111809411865408966372797881549204204034113478782372450917498164926411679368042409924845082256703870179713168064601941538328702047124748927406230871650907141369730610663072768732846514253287933708687907451997668192687598462300414343856527461054919482439346184219498937018106783740249498099312521351306000524043046948433030715102520799847034674844448109538472335310435366169820370535813402440756579169843283347908397100640680951771940807713976465883922831486323510146748704718347856029432909199940391309865869766178230774322779609817087434257470443304608923839770301470462781235466281742225629400039379321348247529246722560843828154237606072434897594615351059792279920838406001967918274241154814545108391811008369092896828262866942724061231847888054996387478615130162885596979511806262323343221403503847884848409141619642828752272547019510240871363431847946758491890301884451327140412614285766571412478392384363676679674992012009537564081366420449137606636986571456095504155604343307616212979448237474019164599913753915516409641240756237183848474997202152355730271435244473303769896778727502014830728800669913634997770582987954034161522639072568087725105913376214484250441284153279698126632633622807084745727419612550680510592438560457908373919744497456885494421411131513034505032743418906095173335563549491959741477379728127184996596634497932940412679645263928257765736882116393711027618645056012603925773214568033569481623614130818365394209868520076621407130424332529356479429627743340713682342585641920004052172233126868358354761030929623031779710815116716349592481018279573966796828435363602885645394157105369336211783036173078896987620075180903770026394911196135779034514783622002673740713915210889740201603636774171200624186763391644182124155368150613690532866474235931591016491312073168879558249865450026806257400651826834395686311348237107782086349688057445528159988044279171589934920518214407778165777497474694745455733797239987351752500792440812555209890537888617301141176836694682691602851753260307201559112358108150050793051064869129168844754123028543120619045593139721319894838829753361714187545568211878877790429022745964478630362292696921515528305493022584918073570193212211593739912821998800659373629678545779005798892179257904279375756911876563768153697998227680142958592196083643739583650088690331022971603161587551873031034276998426601279302497927231870530799276454714255837151574217411991021520863693644962282105131364521533111381356266977071576514145337312368481959460705530073354189586564905434987907874856023819744725624625138802755629108559158287465830049526177237958610200057117719148801644091931411367158743741225244381070565035756086308162666850481379399767630327228800054689846917396423245754225284882535780515958568325720388815380606154318602036112692140052168436029198346708586743804995466075073634520406156888287063836098115165028859646028637979870571335153137026986356891648897262428531401597890625680318834312233328876519000182571340212442526812848361992142497538974254956364903897069923700362210934360746240226353954756851507582872723833996448962364424075391948871495621569749043735621633190926651826562039796552894335348381957360895564545209027087036778350744977563770012534939411756184388160653282269791466548088171878124194122365410743333708863970074200515723869331201073874641011026285351976548786825689733877396920522396879994925464510008234319518960380891661867445609466125480307523641500034349137904822739047720876819956134564666938015642771230550644485723709356527132765194878308754277123981432330624591041132922886458236425062425577004479763694205381333605918971993309871867556051200360582274730646812643033678600859797270299805214243020193594121658767111022558044657217657397414002404857446894580216575806044605159084662130653188319760487292224225774079418806672926270652705174523348304497597325692598463063178306944605524997539977742952580869448854939997867891478065076615071299452261126676370953500477053771666507391339668241567807622530815299679554801403903154994087619662698961435581950048917834976775721079426113203078898182231619715076698994602688760423156331710984237705228283369056642220414359919394341301770755210054276601072300026424846996048594391649464279269006365963219964052757398096538820058616000417709637375433558220783787841168999052584391601686007907070024874389388336543838934245755566666648698295226217007960798338197136124033855761367474385326770613547104720284907638131971951550938665673496963899185271201149484336115166390235691500012715121217417256845378793704967891529824286144511546747606436699316098273480242900273203554888498615332516090933669965692731673011403290579481783479023566211738775877104152077289376032251361995727813728330379835419593679298655306022955463078948349140765779566997287487811399438259040974988042750098258093430378113446945250217545319121693434923772746414029180571229641973694848280537021537371893211231613541626118391965638401107466844823591689857077143582314634563436308697254140595254544039135084389078464194122357010660389035649431770011464260379656746639291894281568166753383052212720588364691887774389104594489120230375503130568749758237142793609308094227345282185567086346510222837864896849356924645051593895057322310651140500830892015284457478705910151499529709598688151701689070607000524558852704935967253008604137305449756478679088125758029581750137709767742375664977663106776251942953896746585127184120518584515363189975137274153542577320475540853291615905450576748506347454641867664151568468705588350845469031530040818044164872166746258096006642334425799926226237506492813833353974326257358755197545252505158698553744569734675591907543436220502877809676336618584787310371172770600337956433987289015059373421905839411911345455488038176780520546114222142555398331443463500226273649177657943755570475249115566149507903085654850233283266659388156587876240325002487309680832454254229981078862195110505671037605812503481609645749778509591756005484869180828823438442460254527169396742617923550770116724530678648262134028790717054636092661862225950174676301855510726903026238251847005608495040227337697475502480474760092500905557988653488572249512524977961506161895726042579746971769539768290895640024401139284721725209963693087232133693105376647527675617527756361644772121949227212505262061497833858658372094224051649269221612386473203872723288527050706607886068743503582406470616149554472460685567154003229477027844884818318481217600260019121701991099331371350014674484503151069430508384360931054850260278604492941691222785319013787979643383552414271859994408061097635257938633355869510098402638875901207711428940865099472637850379649804419166739073344156104303281253166336935525761725142209785481456327112084643833888809357316591947326879374308313731380133726615923306223572396432004527649936807837767271830825409648347860292966865720828899730122052916499517510966043331341792710671479215444967723903867337358438124706334085852910325665960700702504903453368179438949319973558820826771075406210073718867779164751380067553899167479246239367317439242632989238228261533486261297953829735944684093185654665710080700532346982461300348393206674101594305222526539994228974159123337591489715279313542777055372489132648191958358214435589627588659400274818800729345620959021288286232656828542366398715178682514055710211124197917260617951711717058128049062888007437232102599713616764940230824082902039229263464423583407816006231020575771885442597534651086899109096232561633682392722927692470040971248014757946269164196721152571286496761073248002546596619454438653134350628051640884770046209712954275832605382727127287818952622066188129739182552185156931081753105219634026020337888541806847165126771950454657626737459030476081320489332160785950178970674288715375457197546477740939872411588286231889656456015773087619191187553872104930894085273067075337674910246764958478312001048100044233438282418872466570841610711763601965987482702045569341677744571222869524149363043218854094335847566356410006827236755863661512510851951796040643673904494817813715312573894851116667638326297919881856705017379718642949363015409062320543057268460160545762407071140913545601959611592102698598723296998802325834114238250988172621361833589298150114825838256092250759298189611579222182950104281052833621037742187507379970070633300542053585335217447709736867036013402039527160246118738214652886074433397082296314713557692150466755694584361959960759060729877566208650066829095675867593834876248982471291051737065967827267317750692267196997404509708417244755221387059826043193740194551097621246323593072902172719808797178027170392418608716528979485620587949882134492474517248935860128505456934264857239466306754067378966717735070352598214314210633467001669547364382309539917679626151756194983813804261536767165190283779997558750250996182055770740773434119587475593696715334244069302117898459231486117640606286221934570466408611797426504931270436663272547718509271231753782069337128189035898617424191609135068202148093096948536173965027141244441774407177566889688675301679505996866772034372018341276020982125112606387023906512627425228764004522361589545404805626560076612308268027094096005725622763949890751078879852284941588222818106530476818148337976682896545893710532890324497435557852135846913399000216102072491018334233384353074206907771817735958791639179323079475328583825428232212298922485305016754042393410452019527352315090719064622981951627617658519487605630559344490832271144093700393474581259307767916509218344732826739282561227484353507365054775053191046000721197528264372848803967777271676305373755133483016742421298167314663880251523184655035086398015997954886615799308460368826101888394933429978980536361263700099617354410252773557368965207105189299928963848496570034839794079034741649784696963679600373975173252760694667807704613492585793782235132402191784596556490452071373944740557721984667796514450580363105293585558639065086371000880018667402235077626413552343266399135388760411846265774350737631712860119895462646364469222439065498001789155558991984467010747801317756096289034819241820816788756013809821639430567580760009255732521580716993508451083866516019333642850516671405108734757200516927792942134998712639103846930005294740575208382337989033637369273322817388914063285562996624625452588470300687328289665201559943098761745530797566682486165431408423467972141338640911949889388703536024003580029619397369559224981824252844690150985731777031056852270937900216275142253865019548745558610040806753027235792180964660606906266767666257099100871147897659466049523944821885011308597867160788463691476552897983600635618498522827562851451567033919676362226682725525298132904961097521877780906157057765188232322818391196006625874361073346250778555862464674007403802814744213610753942215919728280789292281756355164490017251983245040739192348888358191566441993843924771415487982290840394138509642242852718279610068086770440790220005785934877971863894366346209724762435358213659207673251933704729974412419569394703550818370904186631606785409300601118449751599528382715136103364356671329490964681761359171285266643409771054820128093679556815900462410551701598751364329702814398461993959807425216615449742782105199777346046103542088031070774594193514852144271886542226410070679919114636625611158549313130267618452594570187497084108004040234693227178820764316872166940337701243288129838457204779089915017957367612379975288889383268068106605677871127027750222874258810091499571778591365118106996578386357880231840361530510870615863129804997180567224833006477704120087990709037631651001708858564308836214153193534846824450161903234811860217640748959020826743992471328256425058393378421701880228462953714627911080901613387664129965396565680994828526762578580348376238054043114878890042737824940622584755771276721867790239226067279412980901620036346125832092901824591089003370145922137484125092442819938615327823494975415092014577850400111927371161167411109326903583189894782509542090685108521180798802215730170772208874333594628308977980131633005801712412791567502230912297743489142910703743094118700954750142822855122911343140444496290947237325188795374186801416594931863529238335663207996711077828813539381335527004738946104681287911045283664575536995848302676144445202212685954860500363109595554938034496389251332963119088190956619686839127770902278937051540539958780022198713167257717689295416014295141380666520592572265755056418489762812711231560155864767317359056146525988441420979785363667328952008919688345636144301577333311075235947375257844196725394186065283053860088614499743205028313373541710279254585547338247386173758568058768940476767086668527657307921242143067888148764828558928615641005567237163091773944176045649612439278835703115633137353465276887024809785516351079875296943539550831992277992727908642310514203718507664992894815830802675634965000802743067212374421453959383463749469469043225972828673542076951677597740223524951052658359135334661822800841320130600309727719028199735659311291295994952633874159902479749509039507852649036165433215943581770388252276801015948441673267531605917154421013015472777436220651803878739450036546387795389355773585415682441724895603462453787816439765634427771953562234849172323157494155191888463977796145974633749926668853544321994085063491831309161004249208051747518124274243935487490690519550040836033048952059796581554875557810962907800408156793154270618909502472352287029364808769636828044010554050734416799953195891161222608251679866980747676380295978411732231872527982061189784371484750426042818634658712158600081250564991265904171191889411385647814266261064779681021249946606836681829525199589655774363154394996618252454903107139647245877240443216284348535874387930595853317817284113461561159963983020527964517309222046335200376376900286711991976351120472285429421439424840486543879302850882765563623182589364467303461721644565204303211354555656248089783078514359245112040253173268004584602940426681210747985165390153816962856729448806753297149275618568627306469029921447922048573302587778368341375509187789307310837732732395019146752363122641700397656480071079488789834560516545301228556506737976880383257054281353609959202027197361670898648820654930708486442281747654737456976592641506877237232642922091294834758239981399853551100401921011260135285926524192224489605612031935157835113717085061411236496732823484499000626721086320648891099663173791940665028918538911745568432463602591033817730528409688923360038289723726828591205417584974653193413679114717101752903124373711297947922494946330832084873351411266029365377920695328352432184282318791584032102563230700180793937062291253927580702845889403954731300769077593006617387600483967492604274953558798937399197487356918358869246364788308912843673226587115247359415057055436757686364502150274094769051223237445628613161944080663423284692574302304296010122193136731566483843905359599457582557347619746982176692918996012577773387974849086880073662933918243020502732479159085217371293554536334201872450346822116320758640733304631835790804275018393806953940185573700033029894328050636173107161333701600245147290190937901742433927628286189273499995696647419156403384234705236491514079732341809131650402949658949010813962269755663825067130338970209959677322757454758202311568231833793790422175849171230862510541882353869292673018061492688661130132583043112715990676348624440274770156802110138300672079891044809891467447782340151032749530009659866068220079001046707281975966677977846300325959210977235102631436503345270074241779480428050578743575423127198454194613488814574133149955105967584161328729330692396893505036800692211470614686500064898974638068027004680153549544084152937095278290194534353461264130257713387754289449359016559352461609949832274947639874518617780649836984322318080067886771008988548637398265966024409393732239814151502116420657255883295903783652361802107697336532121890382736886066256851155948387955857537452426309448316915932026019102014952137258037571348096269905242624693147111199448970729861178889293859626944093514917592704645803534026855696711090384292451181169848552766533316353496770451353002080754998916737387102040897164578385434620635097266141188673701505245267757664717706935508958012468265281444371775531029860141528999741689720859560959225359031672773224994049080537956223426053243226831598115745419107835252513148893834295512529434289538509118502798310828637574825373046737820958420287212219277721719168130423344053517299710494874939550116196831117866482463906565071723420748907251957410001641366117836270629770291224971694970601495316446635724591787864542081927396579503136652997840136889088058680484714678237358530060454349221495742318400502951451138983205959926775362703685193505584289082908715902617271183622952234074846085680753536983510125745781123076482486058105532466049654242162291053756223549218110155548146709932566196846950354253772550237893500741855457347451592928543764301505746033231414323942724819139590339289753031059980281718978865393096939189343539293843154663309575978917527410294449907858682341347861882509427108899006494734498849102363509012462529030577813191137555786742550275846753340733379285407585500072491793057086401796982208924596877818323110765562908046463130934144972842153464728047332847623573152289138543027429173282711021124449619470595030005014251363142658778872222933595777304457326685018697008739542331014408509758412856328334264151217423983246215419172897358612855011577162587432647751227142928188679525510811107417641196849999457751015398455883871313243308574965772244016714128592296169118100091495814747524992682877439021632426686983344613393674056986526251537678189462265489535103305674071241711450980373210713571424923784819698413869499264288987011060996834779676126994332906003263840624169459805970535207296851997671875202855806829003939808956755814544564486031087965765883287127971766042696732792470950177862083613165508403860233365233004065921249616227273839262780307408275639538467986430944017163429538559044129417644025783374696719169936897177422156018614526394419358258318407890786001711702014648494375165583842152000317215851124546345322102898645480522165864841816755380513768409029171137593218912578383930204620899028817492809934873342781719418023909924505872841606140918987336059920379686188732479626053188652973044233267946931177123990192522818387625412615330258480718533716851385795144965997496431703504102940014418815362450576955760676789072946881461381218335383916054442806212453015612719281957771800940319462712250735924383395125150037391988737064501750283383292910295824638528404018169021946465102045244614330506971933605434585584812755655488972784136190562401540835567646598654159392646823725356058060516635119420932964298004654046873870377239149079914992114376281251516804206622063154895434493374732232192189554534382062918654780623246922838389053096973442051592615115746192768330370673101769869772043365659851783521447850481872053906263902856023465417735801082954567350390662957259864549642539000486801623351915325999531000564419719440359056929686129386926666176713235256219976818199978500052488353365733375754565732017758852591058116798056451130844689400754010141387530463463142290424471374593077999275521122908108869467765174750551360802922645201510696550913683374731401603456385141553170967442351444531170435394649507898689860047458233660048238947774361901032047015690622471235572113284372461308412774508021442570589898394078355747400355955881691331331777681562602599867997144548170581028243587653567126992657944385970270692542970435345690910348267758935572945692308749377019518242099890347794596123363952666789716764971465867368975650772170030698981333384877211684687170776589527511415264643329533343760933279206822415486140198974432494012676783277769066880344925361583438662071332291226467963484304653564238271568980482091318099815356298864589316984936966863525701379957535243149970707624957339478738489034777159602978279334893725607188056737456388170108654802689501326414967222310869751069996319800912118916375937781936236774476319976258193598158447663247383421421759007873663439014794272552627314516010555403716920926379269624724151069976336569945104726321147051620485403217143235350098867499954357675189461247940643033546445070807085567277606832697674983532790448260538931945470820780597489132720745019411093858973476174356664064233783289153006635816584176864411234382259179329607353923129496701371243717885023086858313547808076457339299264597606805534938862876914391081862379719688913744646979207371154118368199596655359799000758264877716942388066279788024639015532999808950334806259653741167915870812240008219269337513651006471097505456595743386734663780284229001802911273624699520310507183863291175813903215091168385156222313434438561888498680654334994225375460950958132266800555831189714939921308507863981441712710227062232580880180976776612841440526969286804523002012173026608173305310206517537809165358167551145599949483168422190982845651195209679106790460369846351536782240763801533477115789373258893662123374770651693478260517407819309470220145703719106094891347928448956690516534140603014995800660760795899610532960841655393617308065226159799211906027623978749174138849013741745970218437043977964108516511536707901432570328631169033657433761075457905678397250210205800710170141709372649225072412707895679452869622431634123385730095034914992620393765026166139954156357206832578819991564388290933218401278155983704335090549649538057435114883796035331195481603411628735180888118227323220903357840825697694491730219687053521980340258422254959870125944409320293052297182288438277450030678201927340276204976216213702639069302787793954952519887154052178085746323097098330729801889062195245935540362312348159124165148006128325037487793923592261529292983963756016442646287987579737524263095839726598504312521626660015293546820077332671859937979255679245209791004067626789165483944574390712105125859341287220689873185776540393136786376887053154691869045253639404260049775498172967232037531141572049634396330963478574962561116982939730442159408381864403137967747449984505883758305608815240156954378165899962977171593593147396342311860131400529335122719414502404261638408844909245581280902501818717961452132916218910412643860645704320213120570613808750591429803890297487838606417435237352084780934611035151891525426309510674049134626493204239814815050572618778919266643692930112487060490326376054207019881189316008518110525401363862095116714756985988380178913883490634036979692666759470488557708298030579510168824254296582608009362123806081141150163009257083794743665663519255601155603489012392233765031535441869101642583840694051947685928569320653784331515244056299492483406859271382752252669417227679881019212603701585528189428241130887455589786383244116115126870370613082041711213209881773985817997756855517138417683322723305817632366683372965223448283888333016842966869125074734468960098847447414689442748915891781675223035777910182578902215826082712342766099239551129937117528707468251230546062335601796690650615396711315108038115653410197803218673137812754728094822102265639597245244490932840256625539996902361939273422662429794832503255871793525919103639078831414840751104565004825856657909024778444514386411973726995618682046992499932191947186230476640766742117800057027911584994834424141092067097810623257887819578232702998881402050039911333069005157499455780717181019419210512593897083904605738817270628864318811142319858379987248592792231494143493401965987038853514131864559786354312051188346128480322243539003621910374592928633018432218216990138057496072280541304254128034919689059808097813371366703322964998784596222385583736553869458856012756786374141718917116050629583570999273002508662004493381440344368682056689775553900159243585411409591869805879972245673264047655607990666614411674164978938011351060513405869918064130688379732660632058398019585637013331051938818141727116108819734043134366878676795543441855670824140358602773805596336629056949988064837153447649196509423608237069462027307244597383310224835074667923082215845447870772121806119729935895887364662853769906352681105727428938953360475647732427624064535687330543948074229580773603860962069688302656423159859503524692150722286897662046413855972673129205866709001555451471521563022377122241826444118405744142798355180621367373043038683529001012681762161811689598883650378061779283592513443413598780460096408215268506164115410175274958291877036073962844384022399600861837804241672153466237060905042700417307313323274936425038266505603637176291722792681433593374915439268540921592284208010110012755029944749538309140184771586682432751983146657828284816306322969772867126024256785545837135789107997165272216468952642134084118730434601459705304300819587188168644805273932784173272694368349230966052322953914473168380662133752897765571397338928349313005079362415593704256829557689577550417587699667173884131960949686658128063068227521693120978284211241674676474654578481172731432793754425637693109685293325809495991859307916913651111033997499562013035423307340088968727275478701828414582312406093000651402920749805494424717832504680417257430166316605280834240157310650351892086340029832634719696551119149141409045482225249750478273572010742172343278676736264317560854123015270945020130148440472695492025753251903544734655485164635118445578812143863566075454241164235717626124937285943177832632662402879387568848576429224917181938272125059361038939628607646589930757906633094626568569317178686486749534739887036634138554713252976192946129531934074980674948202659344292175892336884172621713125080499231994468295174069221573864146468002706439295104570298019790925802136572956449559757697135501932194392509613510688053973236536599893579475166237258371060500698839440320580815320774566332582321183213913728383883882895803746602391412557034460843630356155232174526868099169219450786380705116275812491714517224721803942174766446596401721487692206428604255361307241562799072016391499680296885486610362094779969734545874546595733689814023199389132065686517794414888383129758140723918724190750320949307540643976267120376972741968717121919926464644544533706190482325286345964222453421499714933707333097822377869321288370509367266440246739920193640510892945221633315211511635550828132757759287528363883146337248146270591505960273982027220871891545213391502004913705870742780716738436066846437606618325871705003443630871053604814904165977484671248929161859665609076040044466507725586506573858909787904759935052991229998277695906344711970705386762988801069142542912452359964664582877206899147290504326469305162832225295144815207681607838679968520667828501841646445585312020952024672942071348495454417744310226700484785416592811025920039742473312358088792397184579426199892626283695059374242799832269932631292523787066728886091364748008594743887471486132558468891424336122859558868558904674888238798026012963937270171570347949252747653621689982753513503050171041800886531789410860621978104419540743901374034103649769580073573281045373807159201623825970936731744130783685551945191233023470751734795472867693551294208743233102068779850257130296993674161299824212332913072999668653953401920726726366507119595556516218906057054847936645482397724870964362016694712708599994302266255233998923824469622035829668082573026828034565042268699051589402623943094486083239843092661975952017270009199920051691633463607172640503724520128812801934448583329401363284073869685402609880860625073324647497694907384615808499684989469994881417086989747002697273604954968229484162350047740463639670441546693785568797679452145560961480407059188617350918073156382848518098030202974319732484926018833634237281341788678854969710871418363232590992278983139188780243986873320848737253376018274850481023120982696315338435500635695914252487325786564217050161750119290796032086285780892488035462903397015051141273861039940380148592657055597039992636182949770915614893882162970614211026532222060158976444455269266129494316807452852281053290143875716128451644790361888588868536172820691410562104019871583792490306350513352564023203679768837204048731880609411347490886564277102038692090386712822738092447117421198088759620671925700485317607247595192214182280286761444560814798619777492266195932404069316279249132417941555821389536087460074180381628027481008636345509905320619022728284307031451423498435029190967532531028845586012279085799187160610351455235530957226878340949477415987553211376040654804169440459687310263744128731304379213940628617260785881889190450076358017787769837153895848821931370255489909807100905160058934600318928296056240788850682504845779127855440412988322796753156394107372998885560804249253400294640679485841323850572631740812986207903995432489116042363068749878042561673861223491868471739190806711238506222457814513562631673571972638009943724411198235290215891166071453662121180592990857271912940302823126044325563182823926422057793439856921335833349111586415164665615290332186891273909756260166840830382321568128264258707395912203552935552466399720841062551540023794291042235936687354058282184108703681567295819207796118565610329524187791486484513286241270314425457282387684583908848146915040685990498835913769304551983815243563327265529878046976291905370876679458534164113243425507157587534376555008699420987621894003588636591147473575606896722898954861592756806726104906444335736549770517030209570833006452779436815684677682296969383736482238508115408036957297737381817277608862741466072958206202766185208608531863538009510141408309152369576389623103168075650945815701139079686714780517096782794463416171120415351684266200104079340082257054573488185384269338374182198183670931081063684834630137550843594795743138990310412575684097868981112084691685648010248851328451020996067045495853833627421144551253237670615417690683963117821039706726877868417677101879867668750740707414228767709428072122409733718058505252043335819987849105930964485304251750064923472007972917952796791355395261819834710770201988975526769491755326258539446293520326228388096642905936569771984616622939444227593259628310760438466907811347903357866872917501588282967863058152642674419188235442555286518078011445526452433699116486833352149301580134442832492948602108761925108546425170745968258094592407260679785284915498084402442843367829771549038670908880305376246446100826729359137526885436866534039995020904631752325829575797087588043827425972188423242543147605556841756407387422409865444918386250590577012191746767863626752286051971606885023730849798104719931387921009661920116586943361898447526115909525393285861217834445152001784577403197927492957948376921583224294948521566621478806782735149064693000139864360980028707200833676181590858935428612464722851239628160656750950782242832306542710455044889203923920909011800804452340551886979925138225148157622749728050944477645743390797959315990459303577520119254732590925239118637197343369144937043051364894793262587879226119218725172041101313722014099475342757762928575805470962509781458577972532356816171963991092636858645035038564298700210925328807496315108971957634706234768522664485948990619041941449156416849398183255673134653125988015637980713882655688954174695674088063217015576279039817641955906366684895168475695942423138213396012250645224158948302657669641484455276462558146048788212417493445996524590447370486618239106797903979974458950765636569353192217562020734430483894384112516832066784743007540134815205843319279378247590959602494688074954150950697949428823714601723166258494800685319569967430515280987158187560823801908008351214791602903940935294632883396594576625711059589746772617597363428031579224569947539487685525164420885487868119327976391260654809583114453471717448453495036509659678407181024169227719698802718103032333072764697592383171611430949017400625771819481579025278506772172770340502983017091404095266447737217362130398487826249072259501917396153555048635495802600052341558723852800594656064715986070377095616512384715067914681159248691270550797796517195045045155243230391074249564246967020296239661348559007292541069008970972327019917183946074312049353704493525221744039772710306957424690045181610618881003923690894702443648575102427682830738262413760674920335743569533939695037150963088515229626668445802921204584547141196350556339068828414425466805220182003441336596523996238812085557654182909958344819227865433555065690114359157041128811536292674300583274970682170223164490928631338589787243369073778680380374476634535384192742680382562556310711818666771423604659520314175124827078837196153412826469850427832525454528403560487503401223937506025894014486208308841323315624399969905654598183904196722989773639289620979896538492084745893714892987061569274870522754425663109199357464256643690501714085782246167755813038298412963659694283139997173919049724930872692047209963021224792068969590065228787613627985229568609640990088462540285998251103120644941696138953938440653521305799487826129594710815922058871051618375681362507796306713701588150054400765499381872949477040136835916796863694764905881093428750025324700394782408641962961385512741604047046247911191930615959302932241757412062174060518098628949507544124672016458280529332271346878624279947527044976161770406219835552507890923211926186485035850985515860729001148699568280532210940871419174999197494158460456649036840961190956789735213262189823279917345276383405598819384622688670742003275306118361036038818308646020770283963065487782367867387003000310862052701196116356766975446590942926514947889664070774907959924150227322155430795523100848338835851449274189141202573680283069657845935111224299470876924923157823638730761477008295020931195712963885260234260041124068094309806724540981551252175656241005767332834605762185876401850778246014514083819945248150295917176650824917267060134707786300502451962027206788693443468779918012277688268978016581841295390570059597526454806025167765284742954316189042731506826286922651261762668671366503780126981583350916339499762961375459054481310521780013586706788946692298412192316900964514229415633501340369076139503590770912747465692046391752373115593271502348646125217734784196797984070366552555198420921334465824962511945072014907571622202697816854878483350062971723621831651599882269321208559764398237427064615745645023648584351093538433464340899965745139849671629284005963304975486780481287255852502561148683323788257207299834493310332904962216138731994967369767952422793725274866433371681021254446173030959253437978643675680652523290323089511052383425435171595965704837596338103569850628226178256121979997785066860287692848736583747592069994860266204468456219970562002001912734350220339291551122271302962047875855572473512428126319118900689195762395383898805681690265941158164641969947750941910301235957395416419527516841271889760963406599796319715001805816945899834608536553955439731254919859328475451413318900619183318655805358759821874046647406448714768661170048934084963968772625231580478752488815512657450231371624048208268348757396520617573354186892325873654212056335759802313324427139698520567594485696656155175047681930297964993985411636079750413793380704122498793720441866968486716496178214434280720260237445696850039374582530440716845971698594638635117554824532025388936343664054382136934526721523136113735117874643321407248797090729846066838396316425211828447768255791215271298742327539519880114685151914115354012943081974228736580485420411028564263379716248244691466896294388430411705691810259596594138888774169403730077809946838857020650679989631084853649702337463751087018735319283981282895074102031546225565992011128535622244684722692224246980970112862745635533685855906859244202566509897692454581967389753810783104155986130652795201610087950069074286594318045030516012792987227355916427852497216934063220118935993833912154925915726369874661012211260684331129405565561855295937174365512456862050350475386635148483973579688448966904227370768022973473625483112048519610158188174844877188870202695656551048512045986211574898228284951601188397891680944602954514802964394694005070696455691981572880935306220264005906723748266733802093853211324136159486616919974363737826862725687042835540642852395698874307727038018210571781272132224083380946482879729657423657924885147424554259577566436589666348249714374027667670690853139881025839649539161690534183791235184433901545758863610380197272724839393424474123692302037823369319639046093892217836904366738659671511621300962837487023468565348002052477563959878067632309387893154073664565557610642814916727854631548461177230741189209686518698100924631994258476036817747724582957961505323872540866509006717319848362569939918939622777411458431776360533461271916477883936603867032003466498668544371144493939045917273069267780252593506693871447455136158742339192823119652602949700719747653074445488571395727845391435111528086940630754578265770588875335067571354207121209465169912944779872743467695275457091685817492003083323774703188069921255064482687612676561403030646677209720046539449711174887411484358433222846743263038200874858265855109843456328966739013552921262123458652805631432950228000388748799217476784406597650092983266282194569278988447709123276987411628742624376259907847287696706916866190566292577370682902978910992728177923641807433022962078720195349398344438414878608732098611357669784906326907305888844968822566787594306770544820411697296396573360017404728189944056535418353617655029888596819631143917516728850100766551369944497778496815372071628106688937601702240165429983852508943051505221188814542269347926345030829325120250498784818123979574695968284330872482681072767470333834657457156182433740373804217883516099156335395291125615737583378408347435490654555728299493118468139912964763140398060777993911064159604279967950033806982558067336621403748637978133388733379808181770034023609919096731254017296039064577281193436166278819050393292934490450964111974888286316774784086429396568896491780063050533488971916949872243873897699794991060881023424962756278448364381040306063419982970629943745945604777281321194215275735469868154130975594716670439548040028292010300628958943666048174592833688259623241286800999844339867332459291157491554151948304750587708603185220590706632611651773348111742751594019493788473611460108126477838851386490627574979992971970667328343389461721861095061344115011720473007535762775133010935152106038175336550703039650709433391398137777134791022607681024483163027967532712302638225334981106661278483871683393844278368495045991219973630871422788469290622254444507325539924201680218939300318753642552020204299336302070669313498928229128989380024349956794833015823979480045689886918212087141004869334775475883295373714270186585904363163530890153077960725046310416420805346081818443692853242150014952563560865731288048023099421591962287970780746023059489733931152407625260055219416262227251313289225698051966264649965144198790476657901710956096915262790631661822978587856167724984693032313296954301210045863300799156361774861924175231293676083917574140239070829527794401108279360636087411906614250588343440088307623359641979739267832248938852154330762290825796764182199051370458750569778574536767744981947376788013226415560437321674546081569062667802959986399450070199973681158025804296044244745709639967045571075586145016794926343504873954774368684730996802995870682354537882943697386785636610441524779950563502954733271038849539770073077654526769339778734929111470389381312999191424568522714604785549273694530649163686262517198945094002532668041974968809170399250005073765698110535536192882504432834969071971613962316800532144582107654582462341694106705953737428801541346568574203222113087448394426748171714747761653839836376838383843172238002423072018354756387107643052031531955414102145182244631171707620884204024438891472980714629334433380949547301156656616858370189769555159655817685029919178697446039712375690558605603018243533429274492434227649099030868172042683303954683665524561131222730880417360215997690109605071403962864032987093660128192392353570482957196500403903803904157503203538121566682899492825809339429633834497577727038346553079939055526927176766579639189670625070882329982482539065349187964708858486277837134362352576979174875929413768416887500342542580602716517356532610688964159525537869942604101804993581399635546391832656907239283591628458635206632240530621872810156183946571113373766829912534758658950016262836480697868217545013931985498612645972445837823663337341336950257271123480818528787674085888502366062652057673753492677581032960157133680354631676602480961312701305136673515472676708467029447779421009120281924875383960596214118167497045914698884400059268483605216464609753894474095185310959182999241071814498773876976780756453024546786515209610987184655997368363189176265834053424735929534794364169166233540984693223789979074669514495064915790707263693818696083119874303916181194116643922473585297026230877386577093640835152132124942203545490405967364039722706886419975119906664245980145359382360890062896211107494217571537931732719742470631037034750593247196624751026084960519889271448699946141113771505575069706518356827621519909291965515940901184330238871608192061996135178911543713597846605283820890678891941251465277488185598068581125757374953379980467312734876354603881902408851672857190458542468508849649896705311523429647085657049441124741370957679369451136569302812804681355637824423228736698870443231472665754954487639668452885838557475530104549729131248736907356005072893448858695358014876062728012763991329811647631831310090589409822188880606141877443674283215426013271428170930813528623328302186530143925666226285861108876684343977252706227118111162933898553791795264025941319325532843153061114122264858935219289628829437560215182502535804699408067000846080743731110851632997095487808858379201975192672344005095566680722082886140095428969347034883263637908876200222503454474615298971749239269757936748805144238683275890246048252467531308653010823520412483483305070375857974716939856758744743617080943634101847654988880100554548682549206623010145096572282927033350913610291195351722279662705464603979999846402871941043002561759422689979439144172205024887846761884450367103761631951017315445584274529752813851134811249745140087313281760975908516294053842306755522434229233586091802037778314873062886642574887025900350893559570616012565238802587904832730803765538577686415694372428292671757475816838050204972928784854903573140159243434927573903036565909325439124265939659536734369958823487779907151990623852257324296116073822514058899879876128450931187992693736099336956132298325048392961487924265195568701461511371412482995069547883156144729992730634457132662868803910152768723272548985319263308604820178306554644997976441495915717743755255394144287882556515985305582668302417868783653634981372022856436812448239383541710454695303121356512181055518786972329062799948721873653034508949126183474628602281629694750462285320072442107368481280687616350911757288424845046675651095609715589397086237346242860665783436769121109058887114936314482643392146377159104566044286591534807579106944801978272783116494653617311545355961847798721068091384092991345222078874001254476257642363593913005429601539955909108628715719633114465690072473796452336883353026785455675714401084768896767766658391022121997438613357835383848008183565299560462872274819212103622103564378768895990545101737605992198703743362815128415014224324241983384692706329765374142929571225613877453004401603843956478804460119641602419804862510265721242401308243798564723594885736054795554462178967559731274161705678264635177932072088483399178578629530252918394571018645243670005469647516616222151423384218722360422620601511849820454628702699386389888319983658656018299464896350572059497275151178224600631329084959480576031724397228453940012703200455388714948021529557474555152876313354255719894528404208975212818505609776018000109227172304027566713386154839659537639089161841599658770721418490230311960651577667712982272042658013541679716018211651157114868703938666345232612951668313360846765299277257235949026324191581638210105410216671756737682162895108521596308962342009787059460165327117745246323071747210705051516849022637609613294941327046759343564766599158547508132588731683021957444057530341464407115384764400637757546951886800028969731192468571473841904086869821892608075412834825586033769107096073774071531085317080880784546456437991212448383707686475202895350226311079849007089465341267660602063290057387769952937840350727224874437169341842481790909193220414313911738878999118782673950258759854933465164025693607764270256762302418740001397591140532582477288004818510605094270966945193253199222808780484253575635608718862883624728249740751874706806676799389965510828277889411249293924408323728446195158995936607787641291945656307845003057823746307674424378083265511997749083280616946519908175064460946483797279625001550799907678590263283008064612570982672723987362460789163472132589375819348156658856989515069512759463693374048005825061658661603234327194211873261917030331479644924671662301589078193438837126312413040187068030254020575561017806216765374666908098177627598992415546564094980258582385938110398273011338079950474763906006054369730175686680683352255723700381067983917437677081553783841505564573442847587732084277508489738860334729940141225682900925262327669016457955434103342126677292047533190447484294762777664313633436447852878618978104194401929916131949808488649963510513948933640522946233191977191107941749410068764950689468518717664776140867793355391805643107166477051993607307933145482718605299154371046272421122445330185985364922535970980475605689954389901996122701112161731687668170615237961668285520284916053511900297250781153570242919597407720707367866560852428675216560046915877157565336863138191267306186504238946784917329890528164549222434505207537677907901925719666207712219096137333681128771824326258057692094999376665949258099553745411065985843707567178328491975010859566796222829684843888888612833426664546325832825440353391624335136477179671286641738878472582540242677454692486481832937161678019852228861291381123853023855415766982043357604313648889622981754784090859260245672732764605847661560882561344109976161498450859448419618841767867868017482552379122823598151636844998676254014988750474442375655281401468281926043707554382541559111854424766623701609281152984643606701740569726969216485297638016546897853835495361268957020371211781694425438621206784697341608134568321416518388887870031872078906374968514055788977370884805134424697251141711846645595336617848303685788934191484457858611590018097530371185761875092869784453349160666100691726171662732349943389618812961485864582716216874363242819139501952418874766592873969929804620393812191328249655701526366812188014705191293318063400998313805809925377610221069059135936983719812457365711815872544222337558036163455937538520152852064858447200216772322031330292632820225273314516768665407235958700045488355173597632718368502737319072024737904339326437916689264807078282165741658740493006647910578481748470026273951087095043776091279328764053360067781835135230434821319724718426032204185975370304386348816886331051221503654250751239759620114882882049202037588621923816216648298984271796500902528645572265907604032045570702886920370876273887557114906302983665780969405950657097095131734188160424053145360330568172673194605165364094491236640745483026621486627776323781544317780700161025379333821519832753211270070601420759865086639401031980447285156063596570384049352699591793538858904369664630171411531386955222705308206758944819262240872972749712799717994910707051871434682316255037475631245149736985582170654494311340025319012337026216823574774765670497607604720249107482303919890638975898885867424509298618869223847427270941991819200585173912453328274893187056016155082159153068841761684872281026430329225804172692130433253575943316843043596708250440941632533872979629002977097460416773264247636320504083644671589164303469095538650439832338815070820643753261376349014443316144043129279659543490506096197709737960387227048435872552094201702012237310994306777156096111409402530366552668849059021836556937851391681073448388690897820125745348151879916846901154354571138509755464726027297205321591847128609078645875184489266102692297228615924267233147220443217867952998756681762726685589111948441626727618380575821794466477145042431279068572008498320302405776766943260749323952943551351859443490516620829310577733618666102803653752674485293031967497774768842700075485166841183425175434420440636897472910069549087178674587015665064260038808989658088389083110978595235714127707141912471336955252708162743956038967747442714215270875898759721393616188935727087738058830827020081941725628914315972031317741337182664812540222787762337550526576006819024124785926351770965737443627591439908708783703867494428191984451546151191704104798776050366423186362808012530795091565294253230351579964270867006993304923028941612595698832138370294470347505291493168099500117062872695535465131283662604478705888481222024779115922245920380650603254820891485391365029555332826548787589524932238535843626369686910366355783054849465050214862791159598074844779150753747690009475107153686752985440976103201927503500258916416917354984614488845872465157263827592444046014581595364169333742643550127486341053541467078481227929153993912132434078061206229116412980950825909640851908427315487657066183955293981530306554774063102293728564813803850538194248924897613565361314043038868785318592911376311433861066492638127288155985986010424720934403574403436498134453060489580862874954530699594036026644274953740036793867262811148239259809037264231827775019520344832388346923099924596276090229125798498742902065531660795413628222229789489877009058727339405318956813135438963031786000164438265006624462758490996960581584483649635892370195949009874869635239771260355876586097332205518376546537668992145391681849859001661037375784624179780368734857480456260394514116007103177807052482405797373225025996889465687499886154578535021398419239046325434526663157013391475043708173035046056598664580673356138285206423207250515501282357358370357291250022980455974992820745017491747578573832373564418561535736095043070340440081767114370859278413188539544828974318864001675570055366875089277951159282786995912274152244591608992445260722934964094745577896548382452516331624793321424830650251661159191109114651965322968905016072722749847476920067827759320382511432454681395610712413667199000142545699834346798123039496384812170129427856514791421972958730669102082081830155117051417616666791655556696138761811758181957782058317230713471438647173948826770856398756979712095694792448569582053764197351601805771196387692165351124266241844697130753822712685226380839951671330851321538496164111016382885338513335017237039589645966814894775586922748276469220746595428688305361195591821067684022729063798272392507369641486235845514245729260337087481426475557061554587668158799839938676540332770775056130149015846679500145481890430105802562589964361839877780643571987268082343302766729476843871346035018702311121703310803308351461495542609492728590112110850104671936933958404836939859974069267677627356713392947873886771946103405854034222111037108811238579420558416175214917658449375294065811760347876404620474195050720086124967644475308556753361891388142626660401759259211327847735861951499576754988916260687977479194855094848603770770615926247308415189883581432663058949640420215802715499740130082437035689747424002276140690519310914940972840001997029711272461628471709956903828227381571325996767433856456055263694550127326716908356143518728053043957075628927763179903280380489796029355038409500982072499858218564476182393816826010621775401901384582267447159394678694385036424078619153739556469196120058090121179569878032469152721504702445646216800337149072826385688400082224493327327529837063187749106715299452432003410658493473508287649695442096463574309618065503098378349202432288614727721891060501088403674116468802261791174219226064004031397328936247035542388878722342812149490514239986100106175672032020343329214204720306402929276410767002077969210827494997763065715827372301295876901189512548953313356582811347660246220855286225407033531848488708797974352304521183631832102347802940626612503026222578261410572379232178010461089004743657810694765184177594132298297477741703532357019398895699834779564328080168339763189237741575284876899151552599989551428981154728222960366950894211408995580584911810423784778708157869179187979850241598252164395892211638245216915697574409020335105914194922991891333839638683814661217070361012236314438794011274255593144771228044602519628547295727199679454116531890834403963356096521285444880223578277779929637756659975744434205809463984085772458870278877814465626925795697908694150824653463937818123614278969449474669298743194072783261177458696101490137946139982461736923246328070848346275497583643043031107844127485650417283869394978941876744587852338025893379460823144447698404498484118687859988218624837861809915521238890280027853812677999460711655834958878562671946107677690851777315147705217009940365565593675940918082064472991995440938453746111196229672874354955215537648998267137359292755303320182727382477161082749622266780675722392889817867876123061506153909021664666951014465552533171764482735808159274503317673016525748509446296022650768787181050591035860630406972586716313816336826662385470260240360852699411812222358574147550504724982024533146499031031170757467226995383727209321661127821942122762039769258914174283951660864437533750875847643003585851767364320364109611194390156468834957297294490865392324030210034435287923267736374707619667963247969428889568837084081769795383699307475616413647901114148453587843803811706985866796453870644987017524561922815086237780723156026583058990028906657591609224463319229028936914488590855717069227875256057381821092298521988285111702523046232671636866082753493006814412604862558676150649645771261953331462489272816688742182008976859459712380796042705236244029568392896365124351007423179735854104354231756564850105653708929933879293708984229469385364007783726489449652076451546992271528932276486767386191994281996309457997159848921232175583013107069760761454599687539520097726046233663185925754569301886156594170591376032239715488660715655548114885935348205589010486239712568931127438310634722949899797309255599509436867239871556909976052706983570085198448007462780284359533147906837859292278912701095628172143558333485875382691453127142441252358154575180395852555161635179256651904679179888490759587623599194814963569300045500526416987837547873994658356970668830663593541122559521440501911717519492076629499039385669599698417827795027500975970588557558078880241524965935484320476734502109715409664243066634074124168798518834627952779603796962505162699077777908423973805083490802804659809531130385814010774622862323369488576643218264363442157779290970321379369115285299114330972715044676868336644607275724671012253021214089226780683910730259899826368594842438702078440044016091193031019219545785549924318090335344289966291569242739496822602968426502401298826182023688731085369125993200829212957580915559282201242305658964993109996499723946054090791423055152695364197032301121179114311710809249449389219929693199554239272141424642845397145621516142057540942785950205121269635680608068793265145514953834983675264266170554332622386648570190370507174403066448617934786114627074140711131689164828101879417938311454193237080309249696515553373725165300948070031881329038527647758186959946539752362307642050067911876339148404506454436359368339356598279040007174875220250437253380215018550277527889439527059413995518752554448526786365347551562562363652211336210230490123045610242942359829229727686960179327418999214253192231230185974398030819543042005050922299270962002156197061577485932790092435516480143765314308492674165209781249989612476508356290322147564518881505664011327103916525612765536557117755074277882141705733095127192842738423931151876756388554487353254382909299152765902796600086718266612261736783428007153228227938449077887544350903835390144802876313389015531974527172378818089738307872421393058011526507597981322300955978764615210607943304575722981136089775403107871890789400651840705147579023637412052169378392513865374601532634360290542965039031551272120880368492897018020703663025353274392601512901726704168594622518229299505637232386616958560070873079699945771904781618414150695259942711468710201393727938114435032764005956487116355426010825688366689637020674748659900813945265081877520115785703227851726878319219244444609090238959716733343398211479988075154371992346131756131192817389978145843352283072292575570203972986974844981144658022651865777073175886035926877739902040171991747424582832782436678712232270162601070812994721947017505875525007939759272054401620123169289335391092596030283913840850595470098558999301615304076327614632328157445116549192071636610142220505118741512940756420317863750402474458846408399668332018444282520564466207842074304877565927956793306152297551929057504621274055176129778419543634414711484904703233988265107929474784924058598463832025610900428911121411534809137043835767411772699159000224098257102788436469503053531781897317814803797044223064168568957183578965534447449755752404770204357945137247347946565365929803429452211303244030270752792425579555944427224570658686669733508087666844271159662598593950568463777516894895456960095965078346095041977108603829499035646938256821392334488781425010111268530789043977332925059023037938938612985827993231864257496804833070791428509427383299486221440439156890830278872910969631437226279547114948406352128221628346692405555178300304669292446896165326921542105819121285615507100588211440885432957569102054958079404924620446779333802165257098808470457889779383855728443511687261098949713691288849426632651663357750578908796631535353646919519570701073893167678273629093664481001231499898973391870949293380623435398202362434906649332286748229191851982368078294726823282831018169422671775599964500643470315778907306303519078085864063969211476069023423399064226504284439155838110480504144185438097272957379073006191965714719115118128700218822003215705254268038198690445353557186236289999291788368716210607788626850513879467374332726700585408829292923664741462872135598781810071102842170699352199077098079078130498897497930354475969231351765145651477962605046765873060997347606724752727826251510558622180347713213111360570984270179007349248228958040045890019617276384962806539831759784028037872005061467201080006950718854422870784876850525328595209003208858922393323750873536510951783534273769327361017641777134429382263447827221330165036901660858382774000343002884860582100442153799560214933604099911249760679945808814502958156397783261272488831425191612731611126518060633545327627715047067734838653447997386846146016114657316787551418263486174354788062414444119346591951603903120921653294148646302139517160543807669590767799027812947450931361759535338882141699344341544401698297231554460488802685287461137609537984733678646831601780102173338987308940640921661767724004468634931354534010910132174420601934513366954052325709479140458401704387153235135205212796607481594471316943444250089290903284402730537802088316754423846990710836812900159147710512467889293066223589785426954709836391043594473178339957314119682850201961748634256591599463345599116836180080733843525652893751648644042516696031297971169239280628812317469969913803679561202514400492339521906803466096970721084408599239610873851514643711890048772750515448202552046330054920669066511700844214590524372618267666366174300655028743190663717402093386438149216015568040429499079119978452892994260985810595047396252754736502351054470251906667884910532707162370337997112033923975222896133087277275952881773978932582618093843735707900684165908900605434942656454076422899343299315581063084159123578292444248679410555260348044831342843871704008074489221778110259927778352377697116499086307326416099191481527051536606156712903074686094282061816849279157586293659409779438949529371332567577536860570340365605479539127336625131435445756113675950209902394138108532656296262530262856921210884145236859438192991833793998920908346683699066673069491635489141962421917327120660097210473738412264895210633989139334160136876394339594640390183342480019952582540193742641571444969496693173245621902067993932013341429921568834587559542257192571492916804104586840093338208919018986631948176413315632355315611025296389793926709653414743081811578117025141239796947779096771666002150153660952074202537690612393757858048853455730255945590715866680523870307383429025187161314944768120116410366666677926519282891162745785337526695502484623448280477557218915741732228079295584111365603139121854122490148159907675295727186773112126346419552591918961931683389240338057414133311919031108866576109347913503583660278721503205066890064179121127890821391407861647968440186608203484135108946047806914933439922687045578701601380005596313078145556747527379851429591298524091601280824650535017640148624390499825156200935519051493425070251932207185184781100040169173096843586547503813118243401066826001555154636178225946285905227430395325653830182643546928912386669446566776322511284244696218573803630429135417183698094034895677514454587755042143068807811258564769554444826633235187681034960603468971871451712614386901547517587486850709003693554936219267927510383178535126317304482323964765206018477894420997467326396949396234365382176486058204883900631557761701287508027851617000271876799476000210781356330580441344294761138189716483018616747984550995960914295470760679212585653572447874118298132392881092923610916711956000732388111224059740889258084472676760192543838900852444588898584375099224014003238590666146043704180792127100293479763691528218182187228751458923105247441497927989654244300580107104064651977353913433549088777358616378206650556377261048023099514765026192546627487568440712086227477302129161989132837345787309551606301025454555651028334300066007713978359570028831318886986982058331092703585997242709185374181341262914353848809537025621576138904500940629180201718477464295871770818918962486335213021963504677319345073767945394016696471657478578244601132505471835653618883697962806069909904032552391527157188195504774319806733658453598478209093126661695276344227153407997813196697523758589901092589229159691268933091260962985280936545325669887593821650416422004906443626091286605065173644661062544806471514342225976882065431432500573591711429075055814606171686174655747945305537886032798173321825561968202496710790172421707020205285060442505368197238810398564370426130894507572173260008409670763113863383859320255165690964377678756012571424877625072733905479333099552084952204480615072030564372524557144350001207294952325624690254911945429082581992476765506665876537493852741054085658796142067735257894080292652685804033037500720239490903088623243252867269196924376804827065816287967817802638883743932122597803074228121135452605801609920113129006472673527566094075082224151946724158457969572934730507230610111901269074257381355670444151854093620310993352063947150736813004042389767798655284006732379399288481964725335748986171732841938247323783122676047758630846306644390562324164937304498282454103682488740239200028293718182187254375419177121151638925739829653447349148465299821084026985272925678936790571202728947196253501663703773446159722512871308149090614843308412127905820914248563565275336312222465549380098946433453915312213487800196762307307180936299862996405408955950638091231704198528857019896675768156230620849327083576155215264749273408199093698113115194953115355272793393018671845558935324979823176453072737033808885123055788410610311504154175939015324586759034536266434763155734122252435496043017595735616258351060533555255318665396067881778861628147223784360681765160814866945209484061987399904275149366188299045456206009927053117623333926647364567166325203613719171076806783628114979519374120902576337574006717245090673021525466644301472460230507470864387395969482402738785566425113808846270026553370290751886588701372377949581888951965885638519640813980890260661206683114316829909474963084290636334668876426251175109917540664888770045755633419283294316343106508363484317019894938680049167662451339737237791431303902902804261135387628777652275453994785788930325900481631286497446092464033973919888047664788454402954345617275407951202874181229848640570671220408520052369864064644688830043570804423009897771028997278271224991957621295981332428007472604751339194538584985233991944316428901719745088750853106094798030227492333969737413507438284721000087639495322433684240966141630801046102391630256367919907296363719200551542372352582052260586467691618093549731368634796848090721318335801046014153187348970999580746595781438000211476585156441032213276173739026597049171268326843645332196340475304345405048868193518134959174192753827815055800448558575296373471345323718484751755086149939194808413278604311562116042645346995626622418931893504924184748520754952182151410828080445549763390241025711067496216640002011349473264800581302873253006111811802439924303141862306918822896819125749032310664554447018846760875374396927286719299332197498000622631683611952764314243829597362015075559153681846264460878091045874969448049048042242100841414675237323246346567339233187864148385682338971019076364039380769542395998396721360654118792722365840978035324108008952704262128419384943762580014649505911510725729903962027169432493895191315807987914194165019598040490634831535487410761451758117822810752894967545877191264067749549147667454661025375318855039345777479817480063100273781149299756883046892115418419335300949282300255129152086446646888914869093362072051946688685923576300230981117351776857781702583772489899983587080482221291353899379760991856444181391806083044155335955177044323316487043164088255665756639773918379952164590625107112053571880498148179205976095228235183303990635415415501722814160442845532292323339029479026596491136191247180137815920612980622610972323767041360915433958833797734000909692352256660953197826013060618092750533354752379096414067868916182646501210758747280597425982135403106363343544980355613347319355626618699265935468744047327630900795989825710057364747427504654606780507285792406515632339861588569523634407222913382163269217239378460251819125002359569624567234766485053586125852682398007895042293632195088742274704690255408491539114253277383812990871592531134215005296935411082202419389329657735157863049619791509233009986474629819971326342348286977951651673090950167005466883210977074891104198393157239802623028806571695565037183955488557037451620983318902686155837829193815709905110854943311564904125007140672709317766079956184133562815959961291013029089440540999716702908481782045814264881388997483732947723995181301674822985990432680325903969145456306485239246612685666149538931538481640901088391901185187617834696955746204679734553783045377032399037824807553458798213951838529819045882275051913660743163020436722373896733222852036607982364032533082487050019508936100248710518985042306832601331004888265595029970099798320865088268787470637064862905827730807656124932825068901746435512826083962859959827922607723465858797315968775811345394541251182212377621125499159913886920379998571243356636382493371986913961884713330908943087469922638635890557699395702979796956949312260556984648696746970806294992099656461454216688543800300663464338337262900255698133721041858397632653560618340658979298983853933541724761631841986079111154976023401700402450875702205263376482210624384061226514559306812234983083621860064006892390881383986212587449026898182077807870093153841991114562842726895736079622431909350831772903054367847626872342189995785529778799956093078142398927312472383028478158531689733547072399685587002789194303307295502429961545549678971570177830986288749456285098096288063782958558579467048892677521452285934224702884480999139649068166828613814624895342236007371521721084357716671159855272455155877829052667389675312799864073045215633471827406300176406778642361868589132288058416714304511350737805614448780117020407334324844688252783806124645746110947370441586917977173134225576634545106594411325974147306879655764782993854762968322041010789501065777833014346152537347035452782394628244272487959657586968429978324271535438447078542251283558264224164117866843005028792300572532642300666948963512886288446855323130929079057914073117163156482617267442111012300148601534010244730553840645143211210139036709086837219042041064260824204536617301085614526010585417217853796408627819252503016895102567813481321243245147613143899261210450564890325963976440150486614817034130496136800980659500694406544168182959936500429414894321190420896530202513235185971681695083738702823611999684185479751155558524643127313007310536433286160326406255310259609243699968567187620908750822920535357931266009689134206849639617504680199227741863222953131627535078582255228357274181717981712134288167471454922286191249985209704386155138458568379457600793135838764321701907086266863774871275266630174095148664514805761401806330171850091372848965442813478099629132709098882619197714421351103930418093081423290741252930468913679736199504443484219390074775316836692277985208647346990211476225625781333250278735807864502631193345019491656812252731857357496854976009132519890835371083760112047194735045713057876169794497304395694568528213120129254034728145080554718467100645509206172194860396680141653439096981180614764510274835751811224783520253747965553127422274163322617523020903077149556665800058945835853898058347291320839388443647211760740576694086360665333133887464212710312120962174732839084575251976121160142530539244976732952516071466541784778101327476607952782547558220754228562708001625514143046283525959293397236039393350405357929115146939170887088506536732843208210661227920598589606439428479449877585761551197984042142018121456907482146681985378744991145721133835461096670034130080155677109552687343427327450307978967449354038804762355500091276169882591484866702649056391997562582246538567451103062222743984218655907118060282662725341844453905114279875553761296896700648368504863171574577535181919539271558205479553147850266794274378071630634391382339752686825235407049483723609910536960020116765207956174195368432875062858449767246949391327932837215166153755703827501904750955104832313785807688181567252127724984221554505157368181731470529756847716793499941225881830102760306860846821966454004445414976978846372303440644926626260907064340368987017955929664445274648804312411195950648407048578347813287668893693684713985312649171405132553991633974724037927531943094318559295596389703681200429193976469027957452047742373293099298394619602370354366252393906690509176545176050744146414522070117418409962153443099988391203660383206444203669194043921954465685674650136578289489229610008217024577964636967672140234628086977345827151186031489047766207084389771549739712575975637167594938009823115398724171788959378674448514308244671660579383022939361529856912669672609892832213490755330783579744625873570429731448560237961554375143987014774232562910126202519828989532417485062903292990938579013633563259943899969736205896116922882035453459570677787356104187692568679408446959702635524790700951414726787115834091599190404026984500676280315232481289648005147569053702933222683433300338964481020757705713329298784114070054527234930118941330314093271884908407923605608930600803609573782673587229465985057969150426981876404287876433002187218624834592573253387224030316506624854355147370393833042733996211644402567898051561575819412831828167885839804256302258669541256850799289542859846388368184243309070435780875992222718785070673778224376790330973210001339301491572747182797427626908300917216262783234810503060127684674779236743249123190571486027777312743571610211897601107715255171581810321688397811207745837536353058569682843828211123407666341051574015400534392510302229491394065587614060177012874683409016076509100850434600040215468015224395068072637358291668123576664888964925598369580000609256468008014607893027327114592284111485224267473543075113438250561528618071241318445777270314183959938471801213329186712559432024565237317743056236454711334990814557559587941345916024330068348808713233217904730569509559289259981646188049434150433597203171242424789742144677997477221243451014313134359912444174928230523693106730039380133488513003247815281275005362795080808419612504650590533638913754459299242930542839021273098891275503084371646690297904258274949596256015759526181643908368106004978949043357681789232759419454333498622214206890602813126932314543543393957093089742616257803758537240201877406657050850661350954335061836303934212353121805450847770499349835928247885271953398145705265149299407966119584955353259220050964116892572939574769279222182082416707307775119105673709973151779747461661646726449509259028507625420984542017814306799691802979974849574729297045211979802223536752037321647843992292943427723393061753175807273554552077905489627068598194843355184303167570827700243107889926916127927387007607169486702616558419533384641306091888976045061253916198955037049557796835020278434079475394744337134246020557449099623225716042627876267319784122328205602033238365214018791287321466483097638542871624851902296146621422513783965777338761655362523884324825652052749858901599052639588770021468359388936372287871532956919678790809589132885126911908333404151618523163322101300653759945123775507920662163412027844569664437176797661839823457497404242501416364216613538923848899453841189130168553308465159016611315765306673710805954147639808789934794450578512933871284190216226022763214440165152358738472772683952247900475058657697985055076141728714142745930462986431906092763200405016367225457161032764768147786597485708372121215370314950417148010204325018685061583148501448319307763888340569251158274616944334311215993495861584185562878793557644544867571465161528336733800590639257210604183884956645850911930047753387661003116865376454879935636145813759618753981849673584309100457889951034843340648711920052158084973309684401263775350621223072673101847612074850136122288528079882310253320198801383135538549846278283449715967041012194998021466541044259164774297046058042058985627984153004594071686110168048765732834761574189335736650628288886302388785652441603027540088821842597687056932757153182422993704212388606406909674691057663952641446152080146952358085341212891516835788733519260673003151011258525418421597042928625846994714411589186384146028272420100919960952433205817803728462523152471457604449867232401697596182010094269287205225942887508953836996167357692441972128283377143853238072037218862799818781556814845787950952255216429555616970801871180164707455152509627706238403640807974341252431157019345578205934625169574984181024638968811713039503247396910575375239409137692749433436199619378001213556059454467260304848124889924755445680343142921447103346766091810540631039593331765151197060739999293330164469115310209599807364293763036059766969104101643111044026935064762243796043859023307692814569035901242233502786543849379694498311790377956715386623461201610208570172814886902062809808424115449404146131701886362961049939925286379572547175517374722358788789044363280750318385304643397919739651557551564681102845309499928529564603458603304259795698792771473691570021850545671430462642086338175351817361107929943390601394207417854250451526297324658324987407059447513662217589461737966911140742685208492099575627902801846158475344271252483906581954763206886524571817411042923769113040544019345844408523045274548036177315385276849713482714550723693290382376699436524829774333516769711711274731331786743105701863160876663429701154988434547202375530509203329411791381554704987149382598535893965258148720626152039363388204128173725953657168782455768844380126334219227250550710155495447575335218545890408187404119886228224727378458179195115448137269837708670400613363666119281452400517740853351820226852192906107144532315425240063857245667321626426056138028814343190134509745614974811253998699075810933126626019073583629373028918655509085690501119072108038604194227024568140342681459325143010291281775782210608955343685908339216763086050231994473323098191199444712749597992543733968713545252510376634041126028008853935961040575165690786237667579449558527742699049107242388235307242745865136480138070025600011505741717913342291408711783378474806171301922335024465626423286506552570418920784335342006807762622490567490933523604511541772028375023357040099371220406308680775056718262327031043880661455820204758160253358504655806822964440464885845189793695493488899746002235967654335534509571246790975162602588961941523826875243355556603167685476282531693416211874409448308920661700183736900338111869863904246053930019458748851326148638730139230999213627113235352700132748657864675602225145423237980829553994576701369714978845042952565131563507466225473409497086788450797784246399445054119987983858465402054059390527521430596862341815061607842245378962745404302550551754953051964503162128331317964512557557197238478143971022498220585753329092212034165041017421640732157783415580016905961272923671708414475106038632276356434320098071363876801986375358310177939067317635218597316420696265299690798644025149377109080396280320323881261705450101180026898944141793269945845051812730271029225375462942742470999573287814182913885494907072197778100475841821390180721633643045190947077607796940206127437346681339423957332591332677158452347021020712523167952903955917070021042136932380912072894296130500428361066946545351172639277466165706545093693704603521242452998827558986332795189181984964159896503587242567903508213415230247610366078322598117258510076505124807160453904957211675770107643175306606776583144478707070821694104942192166659958502469715607954502280900280342291202335095240055827260446490434078608665898806009932356044069922167067612271596579592344095170645396667385065646042105238825149061694243447598219192717327965719669058847846575603464230454234966855336598872563648894837149693297957019364700935672544662024128474907788774187079984093807897342876672179050392368460705084909632492368588588247351039821300271878857183965488357533359288745622192627169814761916729260000002112736959068604533610066584358704436717577704593446191938473428788145442714182033070514220194737768038688166029453742094945409172798265578977044042094549216762776455775969785019105196206526209561087194095837467448508066211554679796896080231274797479470359558861368021041967026816947076918992839884027762076553399011856049610668287707740737715032811326501303169180350386674967865826031023185831013271481930632762842416320880532876733414133018067294546944660867941020390010036644649602939333350741636931310662411686803774359173179915593640263292040664039229819973280166434120941740958439319407996331067320014684754350604578320698906485843870213389435933887082240605803083442251099792493108067324077366018966753300229648869549347110073470787740372488418511455208410049622771408715422144659846254633079322496468905757639070555673958430096209139838130329066137941600536619435261202860231578422434565352777654448076849109854300962853501794965568602990974592537715140732272322924840059979779331090706672631728213496820422703468187179042937324032906468041639299793751636290537594445512543389315915054475097161079186006530771412057251668114161805791317127522754231492941977869164375794473991284226339281554221363103815127206611078609634743727087186719367842475441205842395253995767690085324589455172276637412757842438864836930374981409999075611666713488609992602165851484266371330060161184738772297414051855312520747981178716339701323477635196381016240289110330381816530536210989684153679924866574829373790476764657618202789685403186333473191119214178697919812091208942374640385077216653184228219299226633370828097772884263855524506158614279816082648161922931018128793565173684305593353341293127118821916635736510910382415423040765915403689534226248618444023129023816031389338929917846535751295008553842074039800192986492569250855770099612781355199927167211972477437964145330588631836941057736250945260423489057520210159161976766577192030974557196621912360437977440382043388745070125705762439046483897748186231924638491685371925671645509461774617351352511190370465518615026156460372315570669664620396241050874239005986255684281228928175859870576796141166587619810927716664486548115275218221023938046533700938323767550485269396916254047057795508241543750709010851161502228957102928606637273026580083064299449455007121620368735158603634509645011335480021083391104316049500388009178255196976397139703026049007194562118481325778120856157264458575111078783716241102171766538295765600938354705263371958672616406476380164495865210426324617659387964247796004306420317167989117749411959208168520556858275390809402080180020334002891731828140687817331250160716205122839477031174258440164767464529794276403922439575337151856028742167596263214903380915649986852752135960417262235522496536046383622963082649102746541813480491755745330222545442178644270665772834141099861182905026394651958660722064071897570399340129317937804323278487064545864503813480508570269021124476348037219505324580743049397113682871455374936505425834816839449980779002522136324151308381479787233510930261145359888582401694117128833018104395621584257599240839211791488148410481095356115687444558989577834151036024312800437004779263784457652185248160240703237376210033646301213634744166984408292881832073874387031465466380670199567154640263076701761511213378952369133672621773854247700466834397516341261019706815369833033827518256578771042446815705210996080801444543387165896475460367673319305355290892798739749394694400703344010295830433123528446196705759326427258159671851753155542919238355772788678444277149118576135903115243283034091381299585928322713772994080550333126294114214389447513897761097018239716110912877406325770826349407129573143588033850044010210113871146690746490251537105533289723693846200604272343253440265739241325405047213411028551778757926515950096586685858697500953095060546180124167204147008043414224825625296159642019399399283636895436812154073661865135567214581048679201533876675164386736179698371258945441227795366110734964008893076451305243628930727098718177771130486153481763882754712032429232426936244094349001192161852373881864558620877987374044912782048229564094803731931922278212118751497244403336887710542974839709393022153103484502263331610110978024265864335063953554869028645789636321099543417808183852453444871441588473310986137728704265919809291042917955903148209477775959112036807393515252856215438443337207535472169778032462776490155201662511069189177009679829329532932648177194424245405262550552661172552374901777825233365665391682750310972148930633278886783684859540206712550504397219237004273450464995441140478193607815100166479191884260659667751504447869734359477951794464284544132444409454127030369031755193945925439968665892880227283802670078138032800495535374069558083393829150255629781858040539977640601442128680537076800790795986480744045866501006205139019498321896817980990106660928830924852498175262744682934261255927916522942732872265555368655154295864411981319101737270298223227879680277120570730530267804082649707399201724714916710174027025344953806128255968654720634299178133175081572213230856177487311995710408460058924713707432493345913616007022058531078728878628370627288391897196125726319480072530712995937024072975949387464556171103020750626357925880377391674276698789561277425016014574504364299004373877663340896750698880381420238074144129063328439264501748008690157877155002181863958524181993905782987873866907365506911619240828522007775488368157502392455691622493285710407784763544281906258341468176091635354623368389229281239399396139627141690968613248274312939500294455534051732749341605023399693201074570630990969983918443362454700408269227175389182855650773039530347823141011562465042386186377226643671426833415332703769884016299755913142416944065529808982270722089030595504425215431208663388785845419043421222494766458377617014772035425257944288629705252262307877822655590338907260450718045140706079362035114121613115553239598009633930803309882301368942770610129144798619117711043870551852148210492598349924529998109346558488737871201481039306956571837584346933278988967391422232803286091970283848645742577722267656166578576811532799063085432185155115914116827786918575229156090389054761385397098673380979583828331577680854629451588724733270232824989814617777511860675820070768929693103394865440255826000835983978735113512698050167860742085892374932469324168970677837443326016694441937050490196776239239199719086907144955723883710470267603971081356369534675736454951684865030136250137250702970151652328334326481832729471481120637433850140220496230649477833729941680613108322313804466518931377855358189972811480855249484390655988396269371237454302455009816472281805816765198379515451497058161704012524623534380865132111785515482267380033168337165122186056128755490147644445186552316193619630342091515147934494426080356137725310099814790622303009852169710207055930572154157129863800890891300883828606485436491044396957260929835423564467031337519958379159655615587864038245068047575826969115642859945946897508690123027784628345661276972776915837137044178261247069176154349262428860053035128505629359431772474643087043443242134219111681563764398170536067684739171289732694132120355967470159285063489424888225668064745203657771627908802887444739110695666196883429844049188873213627809645016326186636588235752906001263102042373436254660528209475797849907601667437669683385652914458303989148781982017590260681221873888924168278957183888509172859699067619940446591382416288799773529981832170566490575172140355638868738539706489091166827589254968245834840859745884459394670752452828759409585245051449422748126962031264097329852171758091040218394919446303441495212967984289993363256629633733580997695676695039228262066493117747683929023992703457427234921032207702856205183764939507574233227118794640037238933616547530487799781994909379579567180900460163981398409567903001717326766865460177852872580434632698747807827199685112028525850109682722086463603934221939973213609516812350610463376170700653252329938715773416332226450633120318473757330094626410146989215277678218575422898125831056128099823013509861635357272778858520805940757135483408394131692567304178512504360735138202072592537002202680907350320780421129668278489188668605176313421629052332801584175957303339311959866603409929683361130030791293801717760300081800469715547303599727664772505172686799983836019626697195048817856503901949597409313053706139722984069313830960303879593085677803239203234424120869260125188065459213981719720455221431150686101783466465738918201865578273717096765081589184014039554387908565023058838545523455496403838770483191070952785274554531644971478229564130076359121476383313144166777354820039121228076769688511282169249522588026372962365353398029525866341552999435152062049635291609429148500037092263685583391769122266463882951349340916473378114344356161610093810990454441148763763971861003035402347965719641112035681727538069638465463035103642882152379619915746578132158765078093128567505953465845364365353507651400037166814430252762100049596121456834612229048087299052739447755072259168546896981968395650720631672397555426486073266294556628240552084032461633187094559591625047224082213561555782831343779772830530396851653225912072384321327823330208758193166865705428518841707009401702368174503557092004535407080202000831165851223399437397512986644978523427225489839864002385430443082913932556388944614220826839292320234407891813787456340955097737699880198284316323837759089160491793408691547259154371570256670293627767034081733467089970572176550282957047284897136083305416610845882946943256252109835439500299593874587380715509929105000926991395627150106059214327124460825673015212502000250767411114322690957981850124181565864246309521182789252617508442217896797026630903815447935184265405217489727952553574577372637402033923437557856263781662941143573488712527541632581949450248371908897920262902923649494799048220644159178553490739527922742797204124492446258734704518702036985129976383985703546093225951522087398230361888876271088999649766680839745383023352977038475168110641128902398069889297194072557867929525163284873363822422264428887195668218767666295403954754846994256612509622178566975706736792969289384486045956583825718421194241768552008959619807508289580514759398064740810618113992008685647419965173889213975895428930738921322271531787248154915988507887961579978158348716949653858474285628624088300697905322347072585381968764892344871850091054676880511921802389493352540615812201874581250426768115564929823752224162165567606592090989397665317773372163427580088314474071686209126430705746634835106103568984134223265975213105200297399179202112187109460431396191559290280243920193247294643752990322962783158046965986166207714223717576500709730000126926554002914201589576432961153281253969209376816925556143795275474334908080697764879497063779048349351967091480001746361458194944579337533097155172684741012003181747721864173690643554851819102420867820464582637718897879312156336763740154244714207687799710950334032115089363501953711117421715850181245568796587576501574350529324889911669789658045901357580486483114292442960673372466341944610595187811174317443317581322302859021426511350943070016637959433430793849612982606149564599157162181222687679128932525061644091650421819676284369038193245992188945589736358625810672095708104740205795080180781165231497585341673092823915867558225404837756140619433139873605905422794811093598722297313376935932045601221873067811184520027667618057045316339399595190961846437806986856911945636207955110622409506626816473519455794394396017869736854514012440571732510108941342805636542328487097747680856368576846903177073709493099880817503761974676448613366603155273193673103005780754708953745731306113065142663531160296534391044106268507946688727193019447526382393281196368503297209626147784559782980763531702726367918805087768855604242113736175789540697321739476725623949155458603185956889359105962567566300140373328835943204134680505944093289593320624280088114795208488147592743114900604912267556690445618300103885092599594853998014218080225779983135770119190163378034841050051869613010401916683501288987511835762496867050478293141284248476923111775563367219699985792128504502318965116630005241211511924673320258873400207930131064524956041554961750952289736320104688780613318525797231247292170619128622954534623867036290386755898853378554035179519968640372013649278466937573008018259136947033556248741111232358909575168480399649327822227939977857694388769506377977758679067434364560903557178478644387312586517929000866084205871526105136050616809717863094788872768099336289204751021657830494235618188033323280090959555570279426036593877832471196053785525734274451758231693739167307971261913884388193662713291819316645486215862136532744251793334089167318148501653183753615893210206256792343878515581194320388809416394850574800673931526624233490252300733495859776608551248389283109228593350270479749490231488545547840381111887060415354884324395065078009526101380539834954646924610983642045097065961954858733976516912903176038806155524688704250862281424569963630907335906268334236509788254285869437484134522928956078938101636759597817392811274224718675795632185433595294321674802851042359111829221345849375582278657467753298017828036469675845681608776772395380508556726734317392639520110511751048409646402330697212864634642925122178433797316465295131889358017928382915390192070706650900342716221062066701325598533988879335411245094981208717955187587960736567157223003449924961763240074712762037133153770059808375445659321243750335702972565109847321007488951858433237560420066406409435146454134784570216572559752555525074125589358677014636978293282268085431994138870602759105088379658170195582832431258091543032169494262748637516002196708655886244602924287754151345757411271848446952391621863274498706839704178699300053601036041665213600924311794776051643561899323730146121327560105901648778090884655365010322810329425764215605300309703958481568444523094525430557723748083074861806427701785594156543685172275462845017763467288747261183535471958635354423450232582763775823278119820787628621066527096958046077156006730554574590484598391968978285178760161195101203215610325649082835786126343620400507164687025917218643572663914896984437183185741255872064193967427343048801825476609665336581438694482239292279476155463096447154436793351884526865090706507688990136785855560880444666013974787807438175966823225022489356787056107407041003991946113142454954850042055446071103232771929086249139175625128899465970520232639356298150953828989692411234842213634693908719569339609073345867492903855162583559598847579351198847802717878509458177983470999546847133303613427369911188730393015619095882312964255130019510544361921036921372654282292113225957014413459347834767028289048603515336959301033051935139104523260695777563097346484800204371677824716968042000429311206206075577425247112638516732934998931160833513364131043594553230964029725488247532751001182101350485876281590329779444828714982005230748136296606333364266728958562981620046516152669292197317420454746230652446892367271359997016565178489635475078159854287623446738456792536659247140111378814153558291072356194308647025069084405454013232120779441723237224186164867490380018526173599003592524488422524484805664990075518656187088975482696912950444340350568650815085778861264408735511747447831947265611055847556582823022273920134092459532812987489360110213574909316008665649279393572853016451087210087527319067115036043779100821187321728962762104222227462017417479266117659706689233056576354344083616413986677346362808185651242210407133637433607311236552747107164390316470690149716920123279991472765445326623401166970579772147086897489499103325773243872661657208889628374296331329308742005401242270777352517706984371452120571411639424475550278743550008419374350722048362912581625050465246970207943532757064592332352217301628069644361261388951103661936927185907337168725331897670770561961892474088394941717167914545915574938020008672656302581886920020837642176800137500943996916391554523724585518296395418048390570309444650905738238338789661631332062185171919932112539860805863705602676366236224026064531283422889475265477291138040799377519203532489062252882772189170375313459406259498272412108008653850994873341655272722022520065358311353917895608338267826562704425478309205275388059621785743637917163709197913066071369316921971941956588160784166548759773439329500580955535754668877938137800980446158982287998627518888895357353456623332214256181191169684392680922385019015723891069421569842952808334214932996007374606499023285095582858936813941904472006887580522397059696363597814507181504712256200453765303946339222796022728510494194080709449213674169020317135988288557328795612028235575721816648443034740717836936598305629619523320415689931020749506585409412029350997542889193832517610973807638038913292388378636091194862131647255498383588381012166016563655461143849476166316265632004172454313223040478865932492323048065369915280793271991272780925927769141988010545283669803353932964926451711325418783899189410896897926227895680387507038626735851787417137536961769887696527121202362605871882230992105277458765488405454095108487107834287644090881827918521619427722521883403907361880906383374686924902906885527733768877450369216586827295754667965048648801791805664406091287916144297288876806735116435585119245006367939182285234557893935456835064370204004690444360273149787838184402388601594888808690185069515911565697019453796309085998129430292799878056761480600212863816617142661104792404345436296229213213663421120197129910284431612852208481899744782423962597095796708783435104396330219082772314929662080599535957486730999710567265147444342551746237047036150900097467974254733543372779656906231688048527846482975808730178623566381014894645877653892112588907998200509536238869614710907229464262723116785123879268841889420127056653432858231934851201752805021993536169959042191400776613742510919595217514271951675602193823010925752254325723698920406195664331009035594077431537304051233557834595638271422269065937063346360555119571423758100012022111937683574041514210263541142313125794400758766784568491699189660479120208933544196223539282099035151830163510219468988727228183084386733455615991277522704545002202601710311098063080823160706386933655141336606692402453261537531729326164865016302018468828662339394975535407223148433923615284854621811209770587656185022465852336679302640418366333076383432195185511962543632920704282154121644960593679690465877804920229380597227678726629189542012103431137083580859257954182114643266224408016928550667414305920231714558980675842082245929773671066122430102879211933541512807004340452047044057856755225777571372594535301546751431322882420704321239358511832462658947403754154191272293150702728660561313121307201295960447168060236895667039597093616729504724454455097193478609190117133681398441865737438379412722966922621157911667138382049724248056513548827821805594405840616102685366535084825600928956353957274852149927903529721950217268277133571185040674010265454745563566919742065315617626910827343750863632739049644426977333517283979070524516936447338492230196953250817870545864350341109289338466339603280061943141414230811479845913178839331981517837437013104372091098856996581017975181285929470224003877535259236505556359224546273177997165063779292184761869507618731922782851969978728499901022937781194962386392755994100607200994776588772205620441638206658095946832249789418986144834678904129218251784724345373348181179449569896272608893039070455504272776629570796331599374270957347051289065236981915636658673492961430338182287712260125842615611154685095077238677284663761272985601172516275895537773647393690083552999479285193302729100905077426618516095733224310016972552238268111419347693449374019512856608208080799703844528573193845044850690802580105311035627292449392526835275158332807997597055758985073024456128578942416714613103694032950011129536470197165478949788157377888964200452821839683323459461901067564601669055842813213454407342779294542596456605501552253303324807976043482722484228490762747025676461920574050096698268228630291809530213513274067753380134878962432005772091761885150734073706225690129716361275456267038965217829023682442471650079668777259442158447872409739629578478483519919906844471674763287031711479510564344814193334552610468393479412758169044693538008146724442277558346895054953043093196235967711944558573665059917911957842520380374779829861294272701841526691428924087504330206486782983622990274389041808378660629614275484393579695833834839744798457798632931208666341276702681409750105840518351904833032257496711700276956690171550575600149308976138897863203968224584333350305013738317840396872749703846492837776670306117640157386505371812399733135267912175859178484075594631607180398834354607492260778413875219989959189474095985376166337406828139945670411507448510060759186433007834580563051258983485885992193793196337479356016678184166396237296306988704330991207809723282933423127053672553589047989119412088171900775516693364003890205025787400631514378599545817038892155141879202223131526693897407889481371398370000281287871027227852329342492351881006214147916974273216426126418783820698991707644213539077066722698618791433588425451123671924224355698940616228839732901474542138252298580410703938850431061350287570717694927902778796250277839677161535159159675110433339616465954293358040678946785965539432917254986020685698731236148876574289763257785757377880356350959262259873726865375533743532203856201067778908393692826338651365999749909614737053785294577160250864911419958201293052229362736169450305062107942542180185793448312635923531013028154870397994430538584582749966378097989017181560652115211185122857132707775997781860734566830579158264136183924760218708321337104396146227676352274255753074194638122555417861477116221567337362598669189460710093853340978436746272690999980831978213066665258368731792621403375292005302196150873011129688777858694095424732006599715419131495538738174863474940637134056062071819319454090949755244963167133223930988939957618438883034967205872240774362759563240348179690408169938508302498266149836191968375766591969337877864759315589755837618383183022739459703572713195042611515663887341520846288328752567471499466213368304415434391651264173364084549044636799239346812468419255614551813112487614537076853659586518544412671097004245254411563727384382861953857637017715382455175049475656212883710347167638200088697975517591097442215462110295907028183722425806270756838602827589539191275077549697714083800968495382794851753984059809693604484489210166728423707047812505388672034644508764390338408008653281400602111526888664860547210654929603725209909323332745442275713165975378314278968967014861005147658335968562242334551791224833795729842702878208062519183364937579922071496671057931758211832317660805869896848913095702602456631138535276775137989559139551303896303174757005963625692069220642374208917123769781926488943626827800274881288228011705133153875031265440420605481405050354845540286292672640608436299196936878589748652586958282236852366464090758619123392299822561352184120198979856268284216219891265942641498956117193502837892420696868068187880706468959420667999141531298696945475188271617406691848427914152094089228061248456791167303064387679104099786640563233161299641316325229761742314208045957134080817334002531687873181635190736863682695151664359251394727322429700536998282677971558338293431525989298555513246811892122837655727525584119216085545971012932964010154544979185938986772278027004862084186893259509153301559055531589411418547709157443789254393021720400844593487482025687147968493797984639039617886955740106175192611427781560724658297111710103558756077201741203168446477939960045553344062079944799301008621158308039215136494537916556945120374695294752253179616129381199516979819627386235680266765096206155002876630621269089824929138855800989316323382293801591250651364298409845613353106029880386174175475921420790373112170708723400781019047557940378862535928747307097360733831709122017076555564391061025625734325409293175708052589032797720392316603526502846730754489535738850691665846071856248604003347343033633296771948348126387006563662086976918799901060753510150707366143235068105209632884158921934261538543040368728257508978639557879508250515966953846166932565852504546421657482353107337743150562653563772054654182121033155746380526028500546696935318857377143313819373717128602769791862839867981653074133923843029480893307087631475542763440376175331189229713031032013799039301103391957362181657947975510502183012302276245772030277162213316379054550426208018254695208661429896507097850317617611269402281033873939898432965193988054230629778458882969239972012233462350961296766182292457061197248279192578719126619980618461079013712932154781400576083331496430880714146420772666311155042379201206155782768763373966131875083577994450327685832766094329489558760628385500871368380466263866180464480758351558283347491128393389181119816557619500303085565469339138934814805714507648519432308319512801105965020648264314137029419560875173374445632938125722878877356308497417477233779642468311464792569563169748422788832340485776784896433847088243682602903531635551985992672784391562533146483659970520658958837593909392157023526507212231861053625662897806443573788285231146781306245659696140734307629971706565662126263158788937364984823037214915580943421886551770343246821723735621572961762088923861694734302719341462294872287064794186992154003946717285191843705741442844676031653010551414389793053681730725563839353645886747994502823747138639251854642541289162092410583687180988020875642694624699717501790325118562689818582758691438827598904151133086199864340666058749625346145661301548382983676452484745316931903579878239450443172142020509827761399318514561559447480578567590543273632047082319954027841206948244516995681217592191461651646283448024739697341187470643634525489349529022197561924870161718884732108797783004015118425490744072152045119011314903684713499183283506791069722133203753181122764224660321548100693536364856850182449297843173046523968281940482798338613706424265689685915291997809797800063562547678151875817884940568413297162532104977736915787246502537353825352886172197171077079099006614410424137764805270437768979304766921460658210351558443886152643659914701856262437972501576131116749218932534265290513114947976536718923903468559166693669397398149917578708906600463397190235255595938329956471772432396380864674429129784535723080524510832133270759380541672235447280602793708278463666944771493059459252661791562851040006430482698406997592748357478530509426969401945610313425531891590373621747273097653901875170868524906526516157501169838856743925058379952514134516310961968196045937969443030474356069236078832150421369265144968329281916471687284322058651054596434822141534317757201727810286397417060296011786588511934284317845506318607004458738128332944483333012715344684827210696320395138734724672085488447968565158527303705398613738917685306246564540401062024719652445702296942889373914835533607790450427668882382544955623147300041637428734876430062934819054252595833118154990718124926944501555797119904373708643070806595896677181285940627169107592614838367499201533389355803909964567848543792954982486161113302019599239040734147664181114536770299528826171068629470796964191073025758245967911293880793969007496585209043067770553100986522765147708528548069439267424476261022633253460292199284501066696307784669661773393921783751154814915451447865165989652298903969457730127803014720290399674873553479006182407655257763693621680309990163111793448768282613767960552757587225691030253357250119964150615036586521208725887368174080094640997226334054314715419986970877678272924598009577820490354574375882420997592440082135455365565654232376001828611218962730749709616973206293905635944093518947992540640008642932816314376698964979331144147896815714009750819224673078799407350098797399468012012271858705707602977984248143527559766181764553976788246907564274478920890113617089484725438543555614605236050013940214385376416755325871886017427897482106997606075852690611453952138942764290810598802778595510578613704435793490250447211801446019415660690461732039172676035207289724206442023588897506918273636043348204493296011001896063772734315179404086934312155261791971627981737091376452410655300992120786643635375347368408522453226450020510064201014557211185719695647533270413652663831546220772914682791936764771273469361999464129426709689796129703081057343309260177719441483383928019868354769611625910061410157643574859983673917032304377672392817200457338661465168246640450066721071868233959710062414103582943371834235711754533586935021039980958839471294827082446546506867331785517281637262794917756595771966159269323705944333145659458516582562520281782199501774284756848539049323973809268569026819554614996955942008051432753091431815096575452881180604203163774916806938812496289555221893860282661396208139152052062413840283369478949335873213058664088142977932192726921607355704835260334968951070143749773625283524831526097558813076058664453142552727846566250457411635942237988060734031377375249544916027306711976213991574962635980388410360394448735311187711765975115662251174761913808616160776351543702352180026069830531963662688719783395816068143884383161050751740732483015777205594116282636564821179953867124053098992921829961811273376810299101601142202228524947541140959214860000871373756544695837353482756055521317322613348630848191312682545097343091361370516468509033480450196041617530229439860523656350368466986106865021075554469583130782574462700191042165426578692709209033024591073329666756601251567624969905510970558923339681615866861877588801039699087459409075390336218442974282593118098837993986406809894299377348214692774822087909476839267425776236048081060706522164266806049437314862557934147430883890292062018672013837330159893687937814046557279254728906548988914993337626864824409002401685678030372322915279344925392764242714488181882183681517272430613927062800077440374502531103805497217625837932871749482384222223286383343197587924982994402747913154765335685368823519185488769489665330734668874588869770856275487777801032504264714078390766463456652259615173180788478071327493780717482481853618671644522152294235410687931094418314097728298549801064116359436057860916295090578999529752842585785000618762793278993860996082361137732211867695104353783318173574646463756902816641921008465736997071088260981960635879731111656855091313423923998349139729489755874958031305032587280716881104674140351316081295425982560048409065862072797933245837101563370977816408746805088360504638345748852567645646310687860463777536290130496078442653052572287380123530986813051909025112279864475458329674181372287111940920361980083027469947778542187576341309576747414886778879918375894259456890092615194224639345562512926131227599295952862273073129235638755412750981922053178649237767027606651130466887358768320544404841341429889113790922391605991459566214624340340725997481126283291068993128145856405475465312686825464286853160742054957100032086624378993230915773532363047888997762109083830288164624385811587298271527495875559905464616073475009963531200580412743318831371542934412914753096874018122714637666794842016284611094851990374049334485882308736472735845949138991957557514294754712218274466914892113116813808382561755236331568078571739626798352729232777128768849439744171167228558938463548578400754868124409936493313876327857017911611899970937909745829948005832920947380731353310304459692695803406735285452361726347070560581335706438654495015011265876745592126504167838548520273751356691399000268420868176334159465826820961149972821087516993004125149739667341644248298492521784840079927385207553934033512778306879649456634210258645686983138906113992080951432578528434069656013724877879327361279607336918775524088969893369210046305262033529510886908285957156395560903286484883081690479842288622213231261688878874553977251685386898363358877320172174557618381114466240119889828154630966682149967765372182078984516037680607339817769705687006977436821983083053961846050879953759741650496907340770712893556151833785121622785562459425073005647673067864652675174197276230910715865320986190164571468219976127571581627689087255760947631178569119798328533042641303513752718300321705997991347466845151698518365463406214743969907090813406125496477891909529960916970970876449142772613398397748755676730413759867587250965222784073341515929917198676982206493261652137222870136456754787513479584826587109278600890753828506903388383340408567368942600877196761630536623156396201611192940759418322657649249793775968786356070904322232816981367403087101970142613926531344406186000533701268191464433049311287755613927852593702726580847999133111183231365185122028801967981824368472744963749194604049520125997237101743657472287514348584505303616582537227608073563773528583105753621183639341012516365543218601252262120543382874527147369850497258773642927914522109907742485894152632875323065522385749023380910523405482612157470951467380121807472739892685797208637835353023191867084030084907399327982224641530621165308059377066860519995302225046691886733737854046924442069172924031437209278729653860775053642227499618883957346200705396056438912273269300875760267311782268445060748688135505895168328243770284891557069993839884223546327216585734704189342412384729285201739112480048828650031368721579256769669264613303751587865986481678376191621302242262435697252095093565497697235482445962848418719079135936199773403762453763486908068256634338305550147305872869599142094826784859405767243746877984565662102480687305528865489188368305408313671475981415367255628660342713143732560539108273586841124941593957468474534832102555107646076830205817063018162106320731488240542962732703900998084016773488565654356208650700861905357591103835436480087831429461436936612489793629105132282590600299403574953661572303310625359587601852290819758243950687067006864009538268779496303286367047452467048329088456645698081534860417551314325552188700476837811817680305830379020596395239433677655460470865508003378910831163314184668845339275791523085340241374861615744158531601605676993570196168665673436253827811254345541095054139397163395343130405238140881603997258009048406117786613334000342310308803696398088354522126419409925634469827848946487774118526034232521619473526219268455849917046207910859586123535582495791612357042779303366154451136045433536715498955692130654443294670889378047827892936200815769841489389668021019733706386459565266298917230744866531585776042734484169942768796308912501992223950862312671560456602169389261745966665222588524936022428564668912974994588282827444256737735344031898504123800858645902152515269957615944727957663993961522967570480737195986005015458451336417421861598232727580446032330098317269976518367402655969188689698125312505300537663005925628280440333422234442824603515625812759832973708217171797288583488635624544118897543130792278521909605609522534958752228265634246767792017954633766544208871220171533250816864907406921467555933635353563222026009765234289130006971935139025474187890827534754084235016454621504629023112765922259685431131549338997938690790045436189380773129187681125741057360843920023013639097837221444142406596180697116860052101303161691299580969433074213202191248956697437413511217107235528781688396140663637057793759902571253416793464352425455825318267282841793615368144218096697812298798707412935622182335680300713750718056399371623709928770863178120474111910297098629608123943644111590937509734170323935969671730192990741536629607544966110150785327026253392563978132088425775032672664106052632126664680725839993093205983084719878812404196501403001648632424092181000152791195835395335581815263879477270076188073369568544657354825305993087893120975310594082648780370981793763994416883584729673171794746490275914693161768975583731783388801410739993085935018745461966272663245976504888271993270303540839088498560531682306832883390799310440725074733130008544463670892850516805071579233042491279642045484978167642930434916248162974048578793982589755072537091063152426190292293968814419530177242060624856657473017783824268784167818736024748238605252276161551780869848620866445559592826297730215273681145633625442077266143252189472023604672519569333473593298020623014367232706662345863342975617279448876273445282990396378368925094831030272212429784040394676026717438113597205157820259619672779552897933305003928286759237319409005069333865404824686136354487012027968166952743632312803073357890309443367019908684933908913136871608904639712543953759114847750078077919158059170810238314114168785446557065863420637706085851493530492815662373724254660776628138826197035899142634835105219611354312116217666845428864779386316638640778667895549103310195469572238584863976224063588889992662457157930222215331217959203659674567267963662698742097400178839524273976765732846293021811926482068017402693252005980693274701489426872874228028865748184943822984762364437824529189991224115359439284064137556218760672208107255557876569762110423328796340465011222131597662776064794340796785516837827448384417141133578589769975377159913966761555700565207926893434992239439852331653643362409965021370181271752415460029044546212267864891000412514034938035321518509537479279215992206116882342355374781965901984906135672839265781955137529852965534989387701779531916633702689306984004596165378093603021829857249541322259792919879036447160518490068410317352631223763867309641616457575096398668465749709392272711978406784219711528855056373643892814604254482294280685270580750807640287709290274855199649679911402058532771558683621431857154483486483294381779703099287795637679158385996924775481988889593770782293439901407223158498219065244817133822341853194854027829626473752275415218420669384873389532653956847564357119316955143848902594432356787936113867901445567083429086573368975085382178701564408830005094464192333672622454330520170686797340432013926613955202272765361133750694452664351015208694739983358748921905276541627335684977789811920596942553950114160464429502136000524446457252989715541828361354965656248921901966431312634633651563754816390759677643400962729319332869931265385594209431740989293981296288911314511976515015853429726856164646427639272703083207799002828143176978308055999334777072583500760939907477350974132592673503489456911578229748312827591957502353534531165123399078167149742350554703175381090444238737853814555564198486991746820530178904102117791717925054296858988323040432221928315269076997691379938202748635905861216084163103025445111618171557210342215105523063822382566641791464377511163806352828963827131150549928662251345743861436604781834851724641730629087172714908395032674681467886637993993198090370894425130660051418267516338906859826601268385794923500053872935144953862529479166032290445722802611188039663287924287774475596785214547806998747899534195556413004026517571740499291164208336813064855866872485179547293484053531224360996127767131623384456247034457097364692565330553709397787872168936091241555910986921930673749470962321011122473736806329361195346041854481345847327126850761688553832702158670905483720026433050335872645441865015779234996651061166816322448270168074586929383104662367533205635685380523591568503274412280094231719646935664876959030276874646179012398430364335929937493618582994660625041918145634300720825443646685865624281286621413503666059662379498638164464207307039164662564529038962581977189355852732076141567753871986067651882229172812986726705135435795138477490275933179585928476874839859405516587664118797445476324323692199719341373407003313102347444313743391419643762061077069717968245058300620123468701061829825774575729795217519396053356492311878278884190997569207582992399449195638385890934503425212147186464198597094937000760949730872876962259264248157077966449328463680390556771979261249087894258456508944785237650625493428263433637054636593644947967097259930864966968605840942756517104323884673697782736100719421868954079984635633074297343316896707991853971114846003134971748812543037645408659049971947501307737980290935973586443049885978944150165199132794792760402404432439381139836477673014797587105609981146518122273394006441863117412339064494527029708245128997494811886668586646257183021014144434064289591901554966814721560185541522856420778077609587365127916979520474721908868936047549423611677875933548104533027935690990647497301246828447475049911465541451438671794655810868079337636363213796954964460301594292977699789311887182120344183824036569440795934874507689868166529143747838955953640363888028352569138311467804711846789203226295673256895891750110049224815920015156482389183838001569817656537702498700630617913021896223941812208047410177967643365702791530104025162206825164992303119648972622869334502914761488952269255997122363645947385508986415176958892146170094662510957572319727092129947170321576985322399369966959963856465791810805069230963667553284657088229519291297265358749246255503521286608021828393173470140101256975138490394313294156056821536684199717537030874256895074308318987643565671294087660905798053999957547596598386672415340164518649937921242046100015765514095326344331713360174402661256013994979606095341561922978201133151107106069485492671250030072277865786150539445410411445773340246414735824267129804266883913708059374525800460955733910505157950179682562876582191266240346420978902432406989350056295110351839828787454974751929924420181021057448315587447571630010069361752850680088835912012526812227716918372963381251239066556581981593085281416383170562299613827427171797444436001309463417092561186599258792677025431858386817504988152020892827222733919536107409948293948426914788963755012750388458818869167519914755330072141824114998091722428217168705140369094940920946011125158376755321464183923932304728805724091749812782358278614760903526593668867675092125210937254168662122295789097541681065388477820694563402833902563871809591932142095828220637795760768847775949469646531405169956990065054302901099795765755670507084034401960943198948509813317194048883706229648444313687687239348712265077883323108903319867075607208957842416395887903996123242256305487814685399148044352427374193368824728162108484833063881437351353369331047247092646103949808079141977655719783302288604061037587776461130752899132612383465519976795646432720379766292776691570119004307800588190629731235222642812553306624148929866454747271048627625977908601205074749664083957216451190038916404352645387000199554428335661467117886562659304548854664412377623338633278476729627046990344758554223864300738169871729082836957096570246054853444106844107506800313740285641211589289386563786601649944645348803554608398157605291964118137588921398311413466162098034141884968086441125390579938054185463615883021163746055746617167020543885733449635406668674346023631131842804948935022666826465159272960854638205730661817615524648971277699579946532511097804460912809414122391456979219108615599278741798120090567085264511397724812508588084162363557794616754166347085437886100134905674657530158840827826388153037712806281611738874094620437535786765970406596948202643553436323795284299007657879022714807381453544170612644685638976701579397247967167891844448890859320336636753043868328204250041375508343805652777012436752817134127747742392431798615190662849954297201753004496738153351994281932129467922985073370577358012435911086901486274234293798030980735107231806899327742711507661677239011199051553548064429519250471705189140242029764628379657368742898489316947942597770765281999300856789455818917727654037121852778954795044451533433914632002171696989877259893694947205555315484894771647870753211324129176978418645786712133081189929388530531142943317645786810313694096935724608627325202407322756081700142951639708183703024785351794528576217899043470298856837858771183254354655293932695387515916958388532122767442239942491617155214473186127455863727436274218690506368954147421037486719461871084208983487853373584680629510946501905772441106349832689660902360645848578253947148181949115216597511771467441488334692687078496958584738763982944944974731039160076058870294869797825085626750933746291387140859463264176551243330896090363479920318378546194844349392436729351748111895153697536790881321152599531296008209874523883042847828524256146029112480313596747736674717792932769509881283619675373917763204369740169670562333502784845493424219434938159650804646507675659552254321681940262586396601652420915401577114751602867272953851757205123392064106239502054658031214778484208536911968947460488714633733225370528354977428241278152311563494344023244792094284174687638360682789543031946264449197896411954178476276073426423841238174477589044291566286101754537604035535631987571731185888099952393804472504056876914342964104250280975354956255748466231175060467906122968445039908348262141240461290886615003944333904306867745769305306594508737246893650613282034614520247959859134097943156484414173139566176604537678736860362443161699341453550224039796656164505588511610036139929069440065930456374779683923796985490914421413178167865372265227381784039585008743796571566760275498249288628844776788424524959247562111344113236240392462151677442897466252759208846752254989574124184445306251557971861339291363409635494806220785596128729544729449297128016124810105514085198317587953129237811895551847318154432433438414571120955888467568520421637942143922316804376143998652306325632761997060393215531109813891534020262953293043957160509281943008683061645670975597306634915937309114550865197891733032261593536406391089185489332565180523925923371788402921132768900928584731637259888257348909705200042679306810410279894602200470040211467095795293398132585087905138846533501865207246100616208071720722831301967391763101753004328263305730995796299052651444301077556530251061677010865815596126621893271427311057035141419663311069451713628119104579534099636461152109347696951277467700974603136585769736704477378317379325207254845380548528385714828693703897417148493147745731180421525867461998722959167004542645569041424168389703911732598849603203951516057583052117827921072485707099563730127188200433890290007451462824056075205479606514315908257407984491643002417422404620025028558334296000622789049120358169276877268884905199925628456274105834482955235883577736443283148024017859253673247146276261739082790555131061695655837972101934099599423433571860681469214291785579783733255747797000902201543446869548017712885698524047876143922967734936289892074519939669864425829852674360584831742976136120228500920301407340375495616863021987793914616453913357732732928910505407151389187505729087327153321426038634671110993943208689156111151401125724717977483144824574543796873320917415777093451054496020599627191525963095819680348129452397396907891878691604399613119626009720413610371137084796063023623089204539277626102538408292315351233486398769843680859600057150515171283846506573616270250253943646791172732865958546285129804601404781798833418295915711675560857507427154487575744862542700998859148901601597927477248069635258434367338220363426788299531820266237550868434364071708662649240949158579894681949557431947720655423306715594503332896544046672065826565060313038659749596820482264771796233703244045650495717573923998307660403467594520647255602333764554546579716250301053358647432035260675688351977861586154316973207424233239353590715718332345334857169960234634213254522611460614807818797304284387446404855702823432414683673058966524958770905532614008894885621866925998787553832870083044724978834721933968853857109297720752693086131106913959843758689308534535843222891299930516393236367497503082548778952084375445061122795468512689340748331617071960189287391935715880577289005050405849310090700001570559362459093625723355159612832820917349819348289557554954730002489138355986661832681564911126538710881095798740005180467080972967044475847072430253774935463937385983791893752222871803430684524879277300558579620145601977783385602073244008901071683323520951465651526527246547690263361457877786381553811001475250382080030645448185729833737755568938028447068854117582728879468803451429784090071911812793987937261936068773551154128067056276833978467576206955312161198183494529330527727753935820777688334124395745982709638585670337604763322443618532223383542311519447269222787956320483988028586143896315588553537192392608523412756111421409033224451467407908805061329196752525723480320917612642574927682069918627027263193165129620320605276562408385841681923384889903015536068914510035098868267765703034891481751213298015174592952269414789937008850022969638338188347025453770472522530948043475053014638729665175561262271963771289961543455374487915939612687252519390155629777100743906608286552701849376483708462757579890479863381102425098072152913964329265047404127635463595078198148414955983685731213913205875337840004429154224939748012334575313664983273164285864256265233795670500986549458535015196594924844052787623405785584072674354973528761729418444060628268270768615280637759789231124927747224236353593888740829218746299406072735775304210239741426879152733737026631713171336417491208449389746472113215868467080784715262795405346924198685481564600309463767917014268725346241136886809755121164046052082404251592627589115223705200952045146678595415378150760639458909756569983574456809789904110905940051517944825425934541284480433178185813727984576413971153220528862730168401113873657965272590825474293280497169465748472689852175647382110632319582565128238481170331867537846602990565876954332074548874452947977229523850938320065150722692145591891153980247036934927620649844511022333184024068771276109926029271781152862802817347629040803179530100352351692636381152260492023137747808118424978589318056364949067990645966157382668798460277002708163654391851728802486243874542895555242809284668402873779561949656339488420722914430011881744344602829426003753581261564817312965244160082307691881506634054899267086053277696451221662813073304627743565358301358650987798727448073745721460387677182731654535427509638909338698560901257301365025709401067570342698503548272831972955034480086176668999695033694192478111511882768388238918474740961248563138188314207184071490113325447219453586730770797451832060576200040354835338342425854230527992230444928613721620937068418798596836089542680096549287853882434092409946520492275953530195612656457580293476167035150572266795530309960036042748940107340484901211833811550227146583305273884337487798852343467189696799023981028380190539843459973577979116495334483473757664145890226882784333665045890014946918044007442686150082131927247167570334618370119388700818856893854296687821833130472088586856279879328746784045314343510835017181442252569532523948095404162903718229911411726825273755686282028873594485176346939275457799053404608202312247243923973410047194616851743030985790179859131042375999572701501672983698323070602527779469369891429487550882122008587750189444905367989682579730511861266131094559087510836362088317239503386169120151247520324409568459562070709748040695091945164406615801563025663645768769377299455807004689459875728541110624390782339344404307488516773801462122029500342729278891253083695145467059425359075912063528095972333864655838554862468635300444583331283859308236242230219995096279384293390748983185801336814859083811661842611462028434908903404073957282856277559942247532046490374516206791943173173139263560134797662526227395653353180724092531200019182693383296767079672697032436699850327158337802705580283183691077386164793646269186753946129449990343433321259668469945127664476961821355406877153308388630755273489872552491125957276570536031357673748594625900476328895492980173675943380303931643899712483437081862300703593789697481008972232746966241500816607702175890199362159147108399005262912918293831133299817894547165373923548644579688711258817153001011165741662460271784994195219886550972593886662475613746155019119608935667010351382091800202797766987648903170904955022706217028034609431531049459898811406559010228942642668202526543478856981471637260075855975987928814220526823433590885472745600404609575497849865058144647217962787648192472948929052299737779476937823239563549265444944211807218667546960839837941473706297874982790951687017665882573286661831146055201663856049604189447098069069020283008033614043603577851775228925867516133245016901055782670853925457548187889398980338724487354560915567642892038445158689686986518053351935190914659018481213286584713385987143132874934993495469084855016260558054043163276345641905330756649094716560921877168726685168855633064133917625247873975408208153137176525236494222875948640566422638380318201853514702646002329162421996916512727117713905963983855055094075353036833615070012564689070860596539288874481354073813880697902082748975882027404936922347871234492073050474182164459489950466012661977579243604261054922292159883873540137396344336359087050267508061992405855586206904347410899843808375600553728769935628860543538643497493287926843263925760810550327826596760449586777714439253231060595667817268978782182028971567343662579384185817140558181694962997470106461852963281072654602159104170258746307436752221370111251203885229231319997679445555419468794842232429713449330419228590511806077047803396869701378397917917483429934787442877146543265495969924161743922714267458515069626304190847936304068156149246326829240123798224282005414584281939427861402179078711238404174712376016748135397600240018147609703147503960472237518600550011077005019731768531931839109500056009255457481267252285618568491351363359734824530349420741525606817668348145807306770933514203966388111160942444164569362667389164916132250704497023331566727832532891856484496535890429748487570083198285400829394636461727462021363452057793219191379449197963425021839941678257792300044750924974844752047332394511383888479173669221067912634752420548657237025310138724597394927463438723152978735561007289706041755856430927219283236152029309698346994719050706021761901583303583375533341565832086284113569935966577136472417610433212003608535969585962098821118441070096372471441061758527604848986530745626597855790285406756688377843511049882575574177055481509975523032054141619016586550819364997775845306881604962474901845481326152745210019742785819863716474156006805670941008319205794797072224203810904094887174305937455038529246329864118356850678036529262302070570091168304159563948846205319713788998971644718132594181047779048731726601015453927557595930318328993816630231872505863115766026102122968472952678271244311181817860216465780518519819908519738021980694343948668919036561299928121708201849897101491818782723282771409340857309489683549339559303872514319230757582834565910384372873558249003231107790451278226398513870649522137884272321497260524386503373970231420160747558977125425287672875301740331270139874423396962153025631022721058521398119021937786770654476141897319953079329465149446033555325388827740148726381197518754261263912482319630250096322061443539952364233650615313884416474797160441387794424699733327985961882789516482702430828430124259017915971527051179322955373253592027842616496336661479111729312977872018649569939218373304487427256670325498383019904423749463791466287301877763719693050434938671063133025771174884783380398102827057253846596434959821651412090031365359080242601187224135760250870241988701764845077454392099258048637357614097670272823470622348132642736900904294376188900383070487769104442946317034405748199876688431912162986691431027158215989117341458532090076160014655474808759157267750767414080108049599733898612042072841150250789415848897767590085471340207161841196203560486792217648009311121519602226246141792779117174784360618417706411876505523337082261872370505432022594593749343561428141893605169411404799426483713006601764782826464113667233381619759786296003482312229559223140925237869874871287973600511271706119536943662307486772371231886205007983341220471727360564767083556925254794290581417439849920401326173474896096246362932878635594062232341499354431713089372500722902147721165117117044324212397179236249571217174364207329089602437987184878930012851797964549789364106937089002590849484205059967876225198090696042349861037778480595218635421056392842110224534310826975620907530079148008852629368848983805185139635775568204571548064073225813373283574403907641575035042852291545476933903963513266616395588690943819747534821218231353007008756079203391572705754012069307665939622276486361943659065320979451760694003272982143437296976939957015198493185266817275673007030367910419006264975933007401590931980402598584104187615241580520074377574521253134898693993060325869796230100879306252511358920956205030347760563535591022586302650441702012597797820388226519995729702599943119973543733607275837156685689021102471340117351657120710098283006992456466025156165141690399141812959861317730179622635756426767594010394635232705224456349921608956969372802651114923997872438779004221968838966237719975029207257987401060013309656666796393012982939229154102077951129540526353182754296868589833661919787549749614277568965361768252974456482962136080796914604633548370087591640215165478141513871790207984412377350797524698179347729553408583168071517659813528149162937260130271544468225401300779257438423003035323274221037390154745730364120564290831850104654990362819591502008551184807405630131645084736436253029151377318344838961404486014610581589019510492420428234540742762360626035060462597638168580366455158844544214618231403871476738717984965778826615390477622422427787486226703567410059094647630227017806026143341926305199592165761490595106456965129406734637158445202018908181230005544230062073448385616397006791593796222115079145276467897727791784679774443196396219686647332390301435069292583839848119256836652979751549337310510549290367745638202263601969902864768868656775871438196894889219504614563104393980296096965282599122964164801967842642093123299193621643054043176253761421694072619367774717954097519072407374352571583932583465912574164827942133623022793222764136529759164226325031547634250506929077005794929491683285759118766116194716442991983312882489366268239822191153820222179720963074372459076540290898765438174255016169812105393304119223195817569799114609354881326985047531975616485006566808650177974680289278913580122160826160243252270582139898887559994795970594817837559233664687096412962803073424384999556388872753102554170724230689674807742492989362394248856373073435471364613597640934869790160960007870293742380091246512377986303933487748241265070972180981943809467414972839821190142788690124519495554296214615237236836327576559230592634923655609266863055422641809588341780206396014072950501886450501716886400591899278907221385811852617248900883548985588749934094859662798380180866119466533817609759408958004094671919140967836139014358614966940480820687542417216875079697760104261309778964562697198820661728313366715839592020981754453902501913596386398600664413872788118055889955908001751408460019625324979452337642647470732994175135941143555737949942916162889644350046310726548056772052033400245551412713525960011753168755390917829899559447717411614599164337356047145999749067110491643257019024033953374245165730317121828789348505377555024738489167906484734950000973407493087847211284871892312554236036438542473627103257321716474516119177718088217218214425410108175482636630534491121417612015579378754964288806661255305370121440251248272291626063234463656646139460068168555691931603331436101097504596790732817609870812391801600251710004392161346667470127216984080323206598397062147201507563862188342143658071980502915206829898816177180641762860913703651082151964209970270391470933507128032397352998425258195898889157899252702806865060649467698665168025261891456300303400165552685848473677879661270537987753233147737006202906004797911641423863332189226631939343527104819328863281564993252962957222725492890777306556662348361027404361820714100387655278082045634577409581121315388303114757137144703119916405884883471913414242213444193663136054497207011745650943446311310246268573341641507425018424491711737267453215182019303363647395260706655772073322654212821331276056956414087164189035445812563155369012973382319460883958079212277819124625956381141676041780293844980751874488585523857899021915486024047964379455721908451079412102403210463952131186928878225642502095442168341298298255844151217296808949859007194234591137432588588455727796604228061890690483064757130535845610237226644657640390157261403214621421594446125338990377543800519986608239972504563139911655835221234750297059183971721880310356040557922642095565839331254189050628171185938111896290743970422172167079206424363760105095765848384726079677673558555431169125566768696115145957455580394437618139090123494730328709801882559773637838799678151419411119644252246221903211759611411008321896231733924065022667374898597444666941055111339636004989864563842467760716553916901384334813459141901171534111949154822948963875287344577856278288740580373618114011587950525990437925212775819474629450140027912002337320226338158673855034789445630322038971393460626135729622053102194174294177468069762153299946643649651911636751683410232983286100269178722251194550363037717589560650363627414967884854175445222814365992885468598977381978920073880055489342625557971144292285981866361984298778480526621651079113094689821153092849015376621690309313572018007962817680750161794175042992714165819097900499600312866926637735950217836136484562668978630475799862934798845814254197274305390527824900061214327812927857084142060875692081688512423661613638166689609923037965076082963335663763538851458080669529092280257614349262544486810454269931976883128671321966513326067024090594808821144420930446279076429759171777124330370784078468162064952886023297863274818471696687088544670174125663258042826565539779016669474184225384435577114807075096407943290780722648644786402041184673013775242912643352664438112901698376879992167047804574855560593027691988599073551280194269514048770562723647099638004848283885918385715368555545548049324681310973270399965483883969386229456959247016358492752328570147535513803107740796249802832699851242998125813980836682904389028681045853376145358289200295817770819388691244344612427938465924402646485474171225249001121428593647831931974173379027391161075660412056750964456417010100109765426475530335138404646276155641594327580351391844423925536277620580884788466460448554766730990583155181343362183610390137431851383639979406931870015488914370983970457879264550026310396469722982318855114818699638643388586574913057384129795216777003478703356859852788071408322684174678957555975569008299704956989584334531713937082233017512574853693603607054934950784016006972079564058745663444474879429906658032520668697656606095447412218854912052946017626321012145286712064015787869432701891737364666417317234451543912853656813887050010332122276791617266746911002108001462935989912532890684920575141074311532609846123211889247643791142421502007980351868170191719712266845344240448479020001896288730599212275185238470337746425035694229826988316331194432831792551448847039384527339089355689739277320736422145489342185337652130777522530276893216512356341577718385093084783106287930968725018774260787862571209244570433890547155491582422098967960915972652655249535039254547490109730346960491711850760570161229416872897538256943141328797535020603345222870918911906373067235044416977952319503684405671672732932222782826271160701720947410482398929514394975712079315405552109848288576319190229182918738572574822780058944753028881074768216131063172463497485442260690245455361031591193062256287032513800210824756593875916908623509716598723684192507946033886964553889022724109777615224071126900547426495051429769235871958533463847726222061264042933905641192446410224018587574008102465388984868970735656822757878670150604882663927178097129417232781376324678203156658304956212619440508469540149833102724336319875829840962782218676637672823825158855964323550447408871080621030449355280711027540353885776960023814861582593904788087303126425772625019978368794106927857673601022945838705308366707477384332391121460735814199817178263745052546948704025222208078992849476786205514066460821422712565292537652526132644536332952247226278343346016350844950309457629199651849717804885969504026660714847058901965635194285970486144256687109117305489631644735678639145364076938067383807422760227116316170719101950695473070430977185909529015436150418805175016593722672130084625720762197144620222185934083840099936269910290690346472809606183272343975545138183837028203002512040154127528294312294498673190924905300929352268728848884731100737376747525069495321838250700381093018305216815053375863895962175843393069562350895955426356982678782903419615792957621176798078279007987752789647052069696199494036161257176726174013397164482105879476225980094512622366850677981000782816972843990182790330612428588665796893945937374236830897296327654280870240872384548154931612599572197634231236198480777016660230764439841920289264109767942284711157289356822266238582586147948715568327666869180043623890489462185703913194798242460578885205561193484580088479736991563091981701226809701100924329373525168829774729212029124495456850669746374937144035379860115086963765413245922389154847347044852105085544763217517307618295039147888463476012934437153470891771347388822903795509287333653312007132660248181133504504191344614953312892712611321805331593882546999861136123627975532040388351973361291786552022176995538575284170370011731305794935343336428657407341440786966248407006726795849911027858932667597622516974828048647193382171184041740576806527802442509841238111704831713995659030044337363819047945521044330272191448422130175507780672386091644659525515830960468860028968874496263628846203917096533283767260573245882379851593559343260043122004399871257820017420421366440571803222082313615969795654316945747522623332862494989127060197212376461517559341610744281750924438628364172554502184090284234668677303451664450263850531667948810885693411427202023326749412157185935251572916828058923261658691780648713023000919195434825594775646779896113730170471059043362544495674557366177714667126889847292411497577239255780527723681158931304763815000274728228575687765478231036382044511465145967737650879835559096173157729226330631177308316611435979514319901752386855489055425330574531639838731153002734177026419159848839876284139902946589026039130471491246153394483651252714205859003046987630912615598418123832216281414656340690190492486535413798548145939015001978412876630692134362969864194945555795687075396706235955665553838660715241764860041987126088314701409388473027258490068157624272131872047283545920266909404297388741641012505164922413699762824330824775561267842790132631913603512038834221892621226075618367687947495103660816628099387103259071210461261827951044248424598368257626999892018280698289292073072225952784212818288442411694103232140839194488448872735527835946858136561314934343125790800383854810922692014603757656134282905273827862516110045820321559442275232291275075812489079881387488489353410178278686520726022951976743736424567781832436407919641594997204002399154344728768188322243435873701871263485123678874955409042536886693377534225534945439402123387726965151519074839473835310223101202306872986291892540219098797333554499548100549534249419242103421143423702181237133796328394374185177602823238827958939858739400470257189856008080524353292797983110521619175117488611813551363280923471943616784085162630307992136953069801572715548343340994336722614509328215080653033551544179756287368689118164629115633777881984916322688663195996473944202383236089087471069966755172963219000911612907581644128422614367284288019257502010777040904781305551981819993978817630005392664721565762517670999269438837719309774295328005054330535314518770737615038007709154543063976289967703118296425883969297665105106150096340035329693733467239037037461840978897891503730265408513427301174195954391985543164883773717869352956280935135823409866279338063074248503374634361322657385985945292271896660360227723658506490767206357621903759584103416543950927188432090961210169970751882777217121398319449474642617386122381630760193635318431713348684180340721050588423176845400324180176030180561885085004504243051217491016407652167923296864755025652270141909239614155095426647716204236863397270859439562727273298568822258668381601701370837448115500465900655445259431117104525681578419202718473791759766217395584303819612362503097593327305025690242987182767280952905465675888990331819161975267110655843072197279803384361878555971573394202419450516532747579839175470302798900913204163555983318446811259894334078172098676203838549090152555034203989676317024145824110502772919763791365849494413394048517603956653692567796964978383630465279700786352690918753408337331892933130510142653415045793645622386252336181597942641330136866319655939991714614233694434345968677051721630225582499275962136651077444843659333387323588739936683969161378780074238332646395606294472654118505605078286970539040914211387429401496515572439608151701192185629053709582256719181096249068024058212898179995648481444153758099474596187742754407597069353949783095914665442679592075276642715392873397441738766741381729585500450138490934791750844892900204512798878840129659835406765724512346277427126653775256148909937208504508845788453725767236700371020113051899779112080864061857599632463255307922632217353581060528575955736104174486900754781215196428077626583957684822623290674156190710582340166906781724263800509829847434071484280200902218759802671807903576107317890839025548197328367213802218263890769864602002296355032759765162751751264834980734835731742791977435147605361404521237643843543403363887646184652298834893408872421013055543894461097803275033147601094074755546202886362134769515793009971277236236956205788851553137346630583505596717821905886172145557969981360956925403579377586361887081087274738414522874022049985095740984119451834296114510619414126057529422193221122469579798921168448381315721647467015989750128742465441519830448221529681118350808943267941627971555532727926759916740306307349718180554162457053548077698082890255068810632950155139261335935915083814286628435769406580303320337010539479932326454209045656164471639845563911852906225532875444855008418755881164717445493621856258279854100245761458365232747140890709679598970658875341335995923997280049103025038210133096503615175596154142173334941731544461466682311029688713175262570538083701902377563988651672991753426526946746355461598934841609170607304186526335051981934250217089170406901064415228687936226260484234635430346129417647388143928045851136648557223313582853049584790877652827822639880541118644217240375284886591582810090192834401881019325737688913077675435922995013767640561562667057103707144990736726725110952057067449749977997996090850797116462172352251933603993572339789954442444171244910618079719885804534826969759153815379550055014685372360057377070375939094333249139327415767214555069175068801344210039134187853952057966653060767401326533324778327916099483869922684489823724542877782688391255256458334738649323897313981932448260583427555003545766881682532288279137710360653853179294253759147071255300304795758743308966884321799365136271852319836217841782934007428799194910895958717856862608936619901554873885129665420418471994163937934599158277551476567458460611970234395680171281437523655174605095870771399387254048754304267076877476348389961961373666363690796346874872509943585185647494819373603684140177683263350477528545784567300560370358057348162387506807445643637879520847978439336471760345333840589089001095224349336591278282525043092069123336442342093985954353344287659161539450155577854121714364784946939247046556772201172700056607440615235865452757572952700996299831669086023249748904660766350742315925040014386340778979532494804235601755189632926120720968731461036627067920594588558971087031663448351057548304311689495488448260060729606367448557488488863795036963962659960635249936759141454625881749899180087201036550080358076377225778919785874739784077959323340125821632156769937257109761459985325892531827952732577728900996171832646891608916669719320884530635066066719194254447835026812983894256675015507408630211220723242250479653390283256151455782000666832037263874211817492027663364736581175210103834570846307556938577314827894274554081724782189256325521040590415338619357756802655422667155101721529234160494738117109821220571990557280407243550702805636495168725924439880169773374572761155528430000785818498475551678131546283339098750814383566680544679908790403715709670680323648163178236980058523352627147351363935854856645037339280355645241291558353554370794723275474594201797198078315514078734472362329634430584148437086579896799547199668315642032396419939783307997421037735096586821074403892610810246221488631612037560935592586356935081939137507211464423454929130389965599099858679615067637805603646467114467426450824483347187392000405316970953754593995171331195952548342704252835444976399992164839201076275493711061329665114963351122255282116478973922670916942517760527659162022827493544774930794546364896846407826055731686119853791166060523865957806880068403702359890789639409803179327728916159612122624681356076532880857040821734682925378726779927437603256852877991773901781394301559968125008993809486381240910834991901117706382077828329697623173021068803978842854337976024003071430278999594755206775284450448713242035294444809364978047611555295108783265670717352798113221350408327550235830673668929631837902861379468924255863411887738769638786022625229498234503144966039002389312289031063858646854701855745097971266810072274002223982390944208762604232396219783016634507808869808184995370952132969456642344371918978426954508442144545070776782218588458364398896158224726790533357628541435163729645916844527937964179789176092603487933955322484764165279380394004373495288124330435281914379058032578505724172120382751725733712760666106266794621860758650941600242360779181374280741815148604904766096293211647740239708562756463964259201438817651799891736681907487146991968983271695803714826192486126998751255727290219439644525298964002323567539159258618264129307515659153384454858531055709356223285035439334475795282468282479324283073320229963347504819811621030490446804485477402084419304194116542208964084513659757295794020324157881542933533302855407680725023331286357882853274927297324281111210358571677743872102397243054345017370615456108378649177047233386275700457355003422693096094094160374465865139975086625206321415781319033988063910179165532655647711001528852461820392635521817768069520763056827521448463858949466401276173965724321995410885371934123656141095583285215256318637099026421879323173641602979537340379173505032164341282731533066916172515906182331723609506840443779966846381846543734296773675919271321854434970173324922785174147961441466222407387850015517010621356848233021178082516085993700593619437452364533845222000922681646383055571377171322401867175730893377851133813385831542585650459826354173845118710431567487905052476301277486766386568878207361071235034795762351579007723890897293540983334809911698238327487218898166863079522050972157627863871079164821327272990235995716603567888218240323055199635993816808220644799374677180223484373547668526863628613423063613899835483475694074267635342845752341580360347057934242011684784489183745769824501789495720935174145709964980923427098086944831281816788141382506097008251804115453661594240804591985311587637919371605846231872791386521754139279925604380929137051147200115589597835561549496689860986025357169675664897334797193560060933055343205431455706817996880094161038813034866340843172216518012258047342185325234149615782723368989365633651431020699070912690461602169569129979240678627823464297380754797147147617733747160920081712588099069389914859991134223378297663773555660853833818545717612268264239393861706603242154634180472824216247133068994478118121590031016051600196118620431375293854421324669942747798960341763211419924507884479894874454658642107100744848862088249286600080815796693033761429165211187238184735643220937936158834709501537436770185505968745625075479582705410878201566947853931314374628321160729038578854312690629655217852466269476172654422484122212786352915880761315217031692425063902713333258455749777484556924872529224989628251355627709549745600750596563839562993850000250271080567869598219495876199956298396853387970797398944825736176707412062549980799186804389743200925255059572618668230335027179154795807861287713304501501603711495211714231010487946006036181056947560651485516530426211716053920044228891454273094136345146893029235483605699620422781845543559941883904549672507547499063143152007542001138860281542450309665753079373483096973848662501980759546771830882035388052819915041366572649398286147016684151489011079954727980429258121703253981096437544217759034230562409893152786262526269513497133426166842346876433590020819883738550713964814329515640919431330887887407908622199139114953600919043097665311667087060655558417934654912880469880764607527661509674064599033175957053896795487799490588353464072075952052678309914615464422136290574354185730930962143527126899510500835113802793894968029323339057488651741129825951295976197776677259680673111212971814149883377213188708201953810215765500925563673759940832487032451591918134605938529059283359141836561411725244927833645328126121155834404379951502534332334828359851235347552903884073078326285428962582474722028069380464864192648559889766071358302206008235047334449310190882575619503510780904616991670786700898767436212158703405510405837451938291429500723907009244632727657580537063060523552106342125931587207039302910206147244214605235884969450384820826094733837574388888949595587114265435416741035814530273073037048375816436394891547473060062937714001373999986024160119267028518069642275170625687030343276056416098448810813911306154470029337418649762193558484279247746988907137568689014897612487020492889834114283082924921166747202775625097296732524713539034972779276520421081107203709968587332006942630241081624435334167784290415912192188874495780823634632483095608996361990111355652122552849496758020915377385715530894066094759491966716258560873136660233540120101269282980607481145211528855120168909067391127365627917742655379605995739897867913610184476036465323822449615713355467788822439657642064904995199276929606915141528538484255910917268506751873896281953250185831407408270020139800896600059025761836452631808047967452591813919598898601120462080538132780439965376918758712688856262066761688579967511394640912333308936333461842804261440845318722403572213983104421632626702353293210131743979976215394476674068583558886187188675675082104123355568895334050374708542426687423417981587085399816732328775159765449486140334427035117339912527074856399738727672641757895564793171845387295146000391635407808761863201069381276985939617578580577378025176466965528859422305788023808000998364211903197861512808701014004405140179770132265293116632106372541598259023895836752333528814031077748028401183461247110060537272859691711485360425271545192742460148212424942091182978894989311325887054904483194636070569023479879645329523283857332143669833423860874476071225972885518960022194847225413780515190351313837118695421286920303251892648091195852755867616918468403677806839016278104700009175368244531119998609088178986056225768347969625077618445246705238910690238109034819558079378230498135712767344820816447465105444704490388215388754310010925316302899601292572084917033320424834664513657371902204695164375514076676608598346915500043711841470041557970580546500647292319620013535112309248577893656044007767362587792299321617813535201908697928008960305269553891270428606596754354375020432444544686016283957871868334534130461218785638744325541492956460209923147498727168500768286897707885390014755426809615828854393524798172662099186425276599743620181731817095515385343586781959440817330499098195185854967656528493080128093987350977820578806346394084255601035619529735308401672699285837016523268010218590838550275133214047920971407350090674119394757344887660231896490593980643484005797392560108891896293078797071341543540212646919480680934339912630369954266005603220355966763478261351501891749058913521248087446285609418397445989609087166609146389538757620239735188486989157150928369753853465099052294990907323632291001826430475802124538396176814717314786201752921482989429689051613509668491598480409294229700711639319319109925177627756889810472374410122721019355984428428266687082639538069671528414322041740639840960551153067229863894521304891738382737895305248455317027677035625014347509561470312680651231908442710768292383055850221257147639395732196380003823834819495908608671925503047205783964389823581164627201272956996031115190774303944356447280036082434264439671222910352993162736345089459589830799626916052882901047276643846080012075098517240262091577136157983570583042136526552838362505609220659428833419697237479678628375954708999980114328732285196173907244994211679298477994681520862028350775974424524590394893457953777740423425017537441018274997335245785012005055659624841787209562800818131825190078985072855172853319070864822708471545424622998662917528032021764363809775974888927537320289580145227985067164244445603287496787623360120156257036416076764788693569607381028316339035262110056857434115758391134806193789341370367763359104027223932113528813266171796687972164909234683993447114538480817546498330112436131807322093240076386779587624903310818080012530403313375694424681579929271567251068013140364955208237857494257941018168376670748407012837206530341681581464371171640330551907810130528301881317423660305482524133509247068262316710812564932145298145834817317754639027093530398403118094187572486080473276464180250748460655872513180015838725275601087914703124728960813977411169499292743797369993472204528880023136845197569980699078781214496438662694727890365494496919082871029712916181971480380004450623599175331557290743858071773952940319493248953219022987937425058731283115075720974754475128254970621546218385468461832609477665899875379256082038570671789265561762852113975363908110586207853185817084096388463078682979953932008540724871198191989660696115727713803746837511583057154164291561982613482349366805450093149451283305632626132115593711666064873482231814334819897518933561451544414169796928379180672474676831767580842511727041326024295878536617864478412577726235604913950088348266545019042719169409537032956119033339648700474870172130735810619380731563660312569026803198285624262921598860013306735195696944445253554230073396674826138808591939077152055847312091291420797570597791016795384729307647122443433964411515872509132121297314018270530434425836238572862554223717892862682139559706214878071585050654820278439858834246909628337471021342634053424172007613960023358731887687551318768687559593991925840405429360961769768365699977557800895880234378440301978650975045894952793886445196841690598203459433535678433180968644842372594764508815332772208568485107588195178629034473038423185294993908514029526085288012646524374925882663501453397043332049981110961218159198160828924167666310438791522104804373243343478675333582575454502871222592334348400323403638818853691308056887630016432004057435693137409713196092582997995058107507511549158978819794597715708423561879732434020776820378089847677821208490535078145440051660676242601358289992357914932166007316858313352472256911106654257537074679382642763552012002685792447195106594834953353631963828887574139221035054525816887269271173191040187991090373186635241352137058632902141902252076491069070663416472815016341519886495277488336304142138763663476792268742151279684581529015455950569638926438719150884951408920332776274344780724130095657591759521227390481918738944196082003936516761309090251295888512720150013034320903573104751616674051595487625180055188056937273694489633837784220413163493529816449326885135300046547952892325341697004705043988973601464460580383132521975470928454329327401449990398145209038854685568176706288723346903160128091934310719344009831159216173027711449787768054688006236533571346122121984794755227355313544584074333726374516481530169916764090744233703590597034228476226310026986645253475133337543267119000032105104623975407684400024321749345549503362351197651749596151890666000519762219822105849715943894655203164469585484093631231163967199240160892632153683329830794713923817169403290535922493189801180059618562254043245738251703879903718738413375960295679137870890058458849703631431918250182157577829241823566608121934294500351591819504682402829828513471149271346141080579386141460862393892274220153933093048776315504267122216750989046239563536506354488483935470222851747964001713343538568656349443523982310378317571402856850111214897002547637353004910071896959977278858996628485535319176749057377172737439115918705408895702283716399653261460137714968997737981275187705578377575584446477481488730920887066380055158801156675750150434921117240306146805236933119768598513311884791815567870543881926625793383525129453425967067181985047637336877232551611709726161848690584430230792630989028805056561878912940395637990038829507008194763674293470325209233511750899942586879362476945778146952414614733916745784645721360338202910523830323084627772817000906238943248544045268866170295088615191941796987420697785973328659836533550471333479282760583770939103501546503224448761271503773287423990347867767403288752168591218927524009951478582253199836145036193034382989314301316245240861877495435352185596267544321806218864735247613857532963978353624994987966996461605310058700799566354731673654620480371424699359542313691132534853750577939241542125897778687767383476863735072767925053826233522066145074586885649244664839161296756733827268177062060647166000583560039218462259283837713724846954893294593591181083889095995713610262795165918470165718520083034777570120091433625929468637469870872451922721403186451006581094602584969321598579692837522038372053383126505583208301586755182440700261319103966953999158683401449782306063551547806814232427822345824414295934646346361951585674072162135083527793736465017521198600611891731706935528310015243795730877621457185894886014648706471159389481902787099210795672959254770051636930614908290121728273623115429893669682864105956957313514983136287385253624835533101030241676205099073147215566824496027709863420762703190955112089316924891258363253012710811469709811817234560464598034417741579368680560321097386622838825753816757328646221319122364530130771872755451846527942387254583494375077293293405131243328410100442684352781332758446190280351186481808591278134181046355986883707721430858235141160024668930603945604307564797619453386066829268423669591180539769639756789325871639370800713990348149265295494944068124475564377701585927665819535167296981841547836213123153625924588180068371259693933611352353904875757863688656142374843431617699239384482805671531366571199740422405777818085289601263464827713657397730455431454553353471089202552750703981999200225585292245752253266454450556965857543647858673719914612410527233796280230341956659051102426823045209891280680369713585847275743169421821005764066481929046748086160830833993899525016926987387788077367525399488500487614814623991367648502241652402408738768186770384993056390317676537225359285514915800557073677283111643006703592333148625467561527219278625450787325536018222339967235084749162795769083534138318952043137343577259679425590234827086671574304209097768450938302216015166809968279020223320970539061253142334782921621088633203356925434558421807274060139436268021274125714963861024753713814072253374268024651339931238905053732978725795695374480556789591206908577175499812512640027278925305819647819755846810437909974104461888971379830519373409842789985530525111448516364914579002502353454713949365011752739833301986606546148015844573287191541012690866045356021136171079878139555288276830000045700775369239306724269844366561631484451969954239380910630316978982733298424554069957393497606758804348439572289863640399149730693968143767522454394341355022391072889652167825812158779882818569188206475733383800399446017604705021020018506453437019365736094478024072489348119674756575907488559471151753154396379065842958206930912252381201229873475072602599829766594127016328637551818365715063628289864994348466014441313703394000176229925221151822021948274001565405985249627206567548094276799247991564731641434073192713321719684376667685284211494627420941437490122221700233546481043003666751069449626338981652339457183007488710981787114207499217329904522118424844671638270743145611185037275668671795353148868065103117782523221395621126260745269189510629755816258139657846787375916178774693484700975938928417944639128886190134679868400426435727944391356697308245034167410776413998557461376720387677352766882243026474758416468110694985704912662600206784719096870266243832292124503792301786420121815398238218977617139357339824213309982596730425099218084453225918040196626373456661869521354618301345398210069407886586182360223995863228496649304742158833070525102165093514565358621104456487725071485711471575421532346780140067469492277256230523867084809136343045209803258110471251235655641428196423733847504541986665635035755016175351136776561606770218593213158992016519182723398618440644615542782088580157404854888872479030551169371526003156272932761725084537851025154262929334150119802312813010231543398370011497594418314105474532639388362561165906665446459376415016697820833198879501350383656067135856206824889473891008353032496182119438219615484335249346875493076791566156432351562757562886489357772208706931053255847966975659823144553461460001165429104446956958910704363559889861318744034300547489231589825287592134381546287497462843555225889582300409506798079573086193756397780533528660623403231612280269125582767380076861602702102235940661934912560651863424878505801450390823964705311034858737767182599513334621426685764161551513247255814551666611564769727106238098966983330930428184751732923911183020458739822956270054958223005252752623901695698295577234126808034888828013494202601635931328567301462579495863025906307012429765577826325754927966281990158495421194916924272583801453419248481487697892584924695789949848630061074843167384943847694336401017709839907791657852094421279964306523265934291870492084463157914800729972209884289618518060810500458353871138056776077819886575681180426958841533875140928984717037257187292139613796185508842162696631472181688678226842653302480993768835179475846945945945261889707248118871464174442018818305239317782386933526430699155287721647050747304525133962807471519946014018208773616489494226571094673411515172702661131580437284827574227180313442953816552553120173980898003832481214075348987875341475592160454180288381798923585385617453369189383383707409937324501205808139750204568021068744127088201549485097138131977610488856548568563549957920829085821196209593300166711301974503140058375857800805315735614108489127504014529136364529610258210839384374943131847414638845922968138983555152181995589503840591451850377299381720799641897594655531542250501082670031570607051087761546358092449365421840088509453648118623430426270474659672730427387390129695497056209208316681082525613915798915423121594565283504437488889758841129677615556890241471468269309651154944539020829100967612510636167189185751867155356247514103125093457452567802110919645149365779086848124680871320676830631658650395247836221263211730563195133846569269655228989303790271222957907995241064975513856411855224158572049840759697989178962890559134226341511443573002267104274182962947739799266003591847943847902540183001164728986775528275842955943921030945695510756120294942414216064882551672745971437038199189588975040688646334082340978910751523577594397318889879923686554521876663898594850014357952038315405874302844871843119219301281129154387257002234005845357281266294326253117091298473989501408324044816347408473181201037440787677823549455048429883255665667495342892360452438117587874508054305316757524813156783277216958852811001503691343153699241491718857720125077237144265534993484549472930538092729179528480274560579438418489999030127187357282664377497875533396411647384655611113533515877131516260796384417855729335675974636116715996026068264286257988395585548016813987639611793405547408529509198288726367603946589985947645656585666503008728157787075798085133292565045550913978082888395729847366486474866576108195702620247345027295377186478344945453246391477120649846211569312589933263831162982246506154581599160349387029339487105254868624972634527938107545306461432449361357145148805619717054208650629949605500661937369266249744163956878238070067539209378486624085146293583718803159307467498336260504781337621549141614732993151488496062260377446716464080338605330607661819780661330077901426188582124816921280330875844192092408932782629053853708981776932824492313855354031457592438754977621832008934908612663684759844517059122804247279949186435411620918323627980688070577396339171699951072607926540225746926317949276085859615212948652223764846782217230149893370394226789517736279710119620143449156714210955335316640189094592435604676598167586164520386278872352809674129867067501034189424020959041930733247695313534387445382170147073830323073301149296804785366864815880462658716655462304287911913057924558983888414231905051479959308309299796342575869207182307146260754006765806251350276697028592804449584004267046087770302970066360148026272056052906450881143760458483685004674552147135932144597689732286887901977436893761347376725551911159453758405586688003674233400200951917579683825347902017950642066649925207299567998660845078365455915635104532978271158731649495918440920457459770350458657331002534793804696778589438598562223509480855684030724859684482717905570090254561671950336379605060893531041247709288131105132594051828142369221569305526891402692591438724632355090243887602341900981403445363707182725689120550157710615630502100797468724537851246147526833183828861416420529214882182774883794118842206897385551367188514912575767978482094259966281426654646300012302470496796670574091103018487189365987811588729717763925387754396242601706072605993733344959717299071580108966994160592482830138557364653935934168902109103803444542348495957348576379676660419511048135259631989161098908609886682708439667548188232025843842062472154333632540787005038057338556994713142466860145306737962457891625837703813896712556681379005305511509179934445307561197971849131445909931012903010019905959001984726524764182696568765571215791689245980333339050513269318894689606154967756275181258067015392016017667010722028596822815494290865870853080124671199012916435374318598127569470830048824701247079500554729107830844712855814796941016692268725611206807822947828182173681226042064495564876657292308499912712142702306323138258083319731122474319774769215577934110266953650728652467736656690474843448662872997892398082961315496039739233476709780613092826046592354023366120237597435226100988331616818646411382989853105075327356147937825738156796139609200410495828224501893353651108442700836143757027158278004513390139509020813565215854335624328632579610290829397330546050093716530072655375335683460696086393885819643883717703382296882043306675652066825291184257676339157407234358636410937141659217949001861455569710923404445938819978348817188860166789635080751100114622012430716213375105919175453724972141919772649771406074715779541815217533966301105808564861201451671105337472818804878943311282417633078273191491363746191402418720784933881387443273926770116025772175127862087336526851702572792336591639874348305251410822002445803909684895894457507410878023267716783521150854891180014879168863826603618356246067495073825503229358855460730342809533633869339464473167958684527169205098989361146169743992469892009689573446306123770953766690516711964420212864122063877179973658847504480141236873539258396445936329406668550940798597585540215552289107931503141327814055424232463757456469943167700497315849290431978943350111183009161911932885960508329237486565819163921768732643434028751202731253882092157603498270218731741995189852897574659449680608296603797231764717337017665068673586905589186280372959313782113504962774336511751114024077185660384548010036909098833836101653893305633804299982295329692812693778739157953451895308793876550620196265904634008069591399665243902558487397582685765154284955106047357370861412683102244269895513011364318379754053414640661659382148738365761069668587676709294302384145282127521054506417370710205768384076496655454433036889981011574001013541381846932092275637844964677827066127399270023141956717445712105217373371919905834181968207085890944087738246131981505597373598950706638921486624191784809869647300610880908172581347471272917566974507465756213973480781087680243058756443748002384078115525379654184167336974023010264420133432765244639253076494380116918613985940867188314203222113747325608873333522563352694290917878231377343122196735604136106964336278605134438730912797774719277647298772802237648776168093660293199157582467548158767702940717535496795208896508324439156712006661636902839731251853243739713310250064231049757754543838873319893697514937848111422925677825599427451724689811457083805202503934040098585997820954099231514962729805804861720523836420716684923013517951332790748549165598999808877365191750629843339636164670673752135966966871739671973506031269640025819974640745232834378955544366924493575855654915655062711679562188849963109314774373750068321807299836888851493472545303632819592338443688151126613025501660450771856650964983564726521591330386198310641296655031901182878670821290259926775108307853527995294470427239215825634165467946022729925301922545965233862607895168702698390738436706073048261100260915097895668734928940441090638640989078065447490347098565211053781325867524501286606580931875737451336826495504589631622605788011292844410177215649633973656644131826897520610685785894375002431139978960569684808345343132212480372381597526883642109231491919049127492943997825769901732471634733956691151696989420006289287177265739167758902526627353100555158186664620911763510418242254766968597778926805481811568476193873717743001142888407029429009387263103041214562020279856579231968600042894287417938543618873524822004168165321043552116060007765550683471121097336023622773123829880915624028958476008531974109559567194968538753242709928857200283491533703540734331365864376225120860714484638609553334720986277153294569191588041746643842291201097420884269515175359991776792911647935661763525806670304820030695236674198320771148966187981937249837087105469150326274863758408135800301936065332580209154696063038012546093647169916435535125267089290880431946282141389120253976592984665839837190174917339292798957432068636101236876104600298252158301804680803911718525117795208991763798247427862722449952429616629681451466643998747683710971201641267969606794446367359560058058430732116974383685644839727359200684513715201419641793920178144257673675358598596584440279216208288921645177518900963339128308961327655456331300315166015553239417045269691610118863101462923844960762375869224402087710816416140514601552603251279174595388052522139332401606858248922585294473665363391647409944811691838887827248252159994316680159974697944896812550735597828737379446128776331431725414122335223563828811554603463176324371843481732524395082019612056416432993755926895382099637242135972919018324965460453027102854976756312430997322454330321711287391413856556297344256634830237552342676960404917165224291234985057912799354620933197545266280430610604612517367331535572282957213197764164928718575167791312142850959049356495989752249053259989367420075467721728744304671392109989130004755528515917701227034139863937400221635759461266853295550664232096268364541768582071635515410035454928875942496436611098691554153077343360661478907578945083145938021807463130795082025268274016769916642252352812833526031050657345901771390743452268418565790912047667502872342635394570157785951137688233814658718142723783807807042481638935495291162118168835916641225905778470872208493797289317814917686384990322314971240764888203165400164986911803227563361859983703328065199947248820544468130882793877962931092354711783908094792500763089218011970160638106171386940626015274422794425614934459023008765954810558572072657231943007141780562775865584429031750582833535364773896270054661442613356425771153166910362293845387751527524997603212814986205263924651477843568030610471639400510696606143686369562802095280980934102903029897443028284102222766780483532255365493237429030494051308004863038522109934781162861967373003905252566475196701245759329633567790503281758001925929002777778298981117959075353263135280764305944669111987109641135228813941834663843901698175243376011646706867365846102822998824109022141861875322698821008175411539515023309857821748962717922855084740169281677636699792232625493551884328408968314050343107107783622101772628188693704137742341202520674028162893399410054872147988636200306265203135795688408174825937303876848248452316280635165566332301898754884006071502051933966601748213980123856414123987413826322228833719727656728471355836425783892618911809535428351629871215752364756303019271666722850466322287118457914304394831455104460122068517923154111345007620888155553058594899341175869321130039989212551093257743407726480546589546609001804979813130157032195451358776694975885805449515131866588455453990710876900268897965016923254811998407774529026812281599538826769786111177657142364178758372134680950308450108684985062088766767486203650167438779692549520446653434361903876086787185638610935135201467072487248126241874700575652606351914238841589447722811251211470960123201764954594559392531984909272098460236413298499889140045737913049175068891966062905399970261631484648513391912634791341646516321695617299262368695421101845136070275998723462379626288047628229304089189652513679404909771635660483294312537273653208487842153520977891752680053205417349095392297737002172952650902922887807819972247271014837973227866706185357070285677978909769800988331257375778729937960044669928827905325099539839942116336355524362220261072220975273101359661650856112244475944654661663231749741555022997304902043903283300785286982640465924881881614974271735330458385749684764705511183167878545699485113451790771568856696804560086249614323484650039622838459177503319548527724354221964509936546811074726844119574193204688236393451488990404202484463038110037456905469625413290523680201631869603304713919780434801349881152714701945746271529108560508294330205794646064627154630164488738118693792105415421307053394917443679300359497630909108510206853432010669937383249715675972445717457101566472865436174157384342334678413460935476986236148303724801418731810597488634359537071320168454772923939415623568166918851470835258506127393129545466046322144228220049158685063253211186596875692814791359502355554165506315394027609145895366964900704443342853212919629104084364244305639216935727160809978896812970298518296698809590146573352446042446999075792914354401893758133098112516773687836905033333112021562437654085237535115927909652308873386908675387078741974327138772125360577803467951522445554945176660347358156741309115004647008563598752452259758040550813943567461557972511531752268654143321656291627606538322758950309106270233734723625050954719573712214902242170021022492759135535020130963199950694411402765725164753013012736395827233021538365051144180814566751205580204970274969530734936995821993577635107634147368184374791218416627377839390395368351422944027128301285496956109605705195930435432583558059369706615918478353997042738669537786623953947756305597293793098066731862715500787184998519597635563156264093213331403807428310643699824853348537398518126678734318238889315879711505791993733128883768409185059597858155148500447463319670312772031463064921611159753750538356822167249680979449629490228500059172202998061116285970668660405438168790583873155461780177694352141505877714562806523973037601173365937585979250221052958781080048397791587517713177155720626242627705088475824131280330288302885550599557475598272033087190798754785737971571656960005650024559464254765340482918512946880799463576088074985668852966577326123244969278979363718456020948040797514028464000228285330417551456763815035791534003704000991072110240314655695013805637426390387342529235390926101559366040616088851572808258545755489835096174952698572483394149187374457180635102258088416320710072870239558032877376111256574369176889710544841389704928183989290659821391357716799843019593003258608959249382598000387911307515287121991032704258876061673782356116107037160075278293558350251327983458290870256671906339644849229079818054339583783509812267129106931710430114574360564402912052825736430651007558404539539326044023995152728247507832896300427674543996513533450017139631872344665690688764926894879065883323470515391010496074007238253772180518579406218910678464162690633882498397237377023654165527256154041905473711572820578171977582326026758085841765066120671256649685891771871490012997968684949807399488733292781295501363013342242036384656271550146949775635732088304747974455213793680402344757654007883916537403476658566322617752527927544140989468329175626544945585891479051724789720220996583638368363431849111945567304145187927430994696544198168618032430144855480734848023431629759645087319474005360865345686396716853472710838981878737537723062289862717043653235771557722299825861293939516059697925603587548033176593479197134441973826639167598672785303247630014400530055961847049865543045542279335316340867145183132759518687415218023780451106464504118695123833369164154952174962947299856708056768201184784470954799335779424154647968525273439312133949462304550387567041622364975293661781028084852445712901904046639746450436095464519630015991468732602734807515768032371320147698618695362981834767807197691398898539682124000397799419834471946393562764188329722152727186060712487371573846765850301159876828182644213442557772714119383467588293459621564375460445928835074476445363543568269539002191882146314430300061150160199570947845058460213855218069143836166579070856269739413365470565328398350227246193507114614600139269706553473966790409573143436324074398958465232390590386067715699503483541409349622915831118014785936274367277073276639697190064404583430242281399991742653035882551328976290811007738794958163036322376596160084813745357219160452573310934365770318443251046477931973722650068337146786422024849426804616878770591492972469851600392142970897289103504737799536807356207882093645377731837617205129329908343636381131965701559549293337086184319220229355522902913785451172958687097714004155362072959034202871749295915222664112910644121969131603882919554515369114824986630591932186543130534724356759946668182773274821396074487658959311395246881639743808537504116450891971149382021454247879360148156455190264241366822140329836760821910102501171382421681769922950819651591499232281900431344557813674362781934017403124010893873826734139495577482171627468610199187914441278341567561262688829179194781228910765173353104340019658468802138010995070451677982016408468111279184475673298827436048821205897112438253764481982986108268620447787537260701692737234652447645928199780053705160007499505704786560698997539053717004425278359999894928692500208777178909983850055259474491253332371427552235360000120546765737117703940141133696166324506043258390659344919557272536484550076850923138085946681588227775912210301471053034009376742007849590333297809776324720304375424120411378863838207275586738256230229738851383608921056098769520944544206947023075891064473481386469132254641848779021610130341931780350393156572167592114763981939297594283832385019861153353536174930439522103798140594804605565634354445248331913965534890281765412879614511632347282860026562954000769794923809437788584294252385858830233759451735868448398583593134774895548076677579924868266298504699181594473187230429013423185471105113492510900634348792760826481614557627955554450899493126037262629903454858542073517761396045321213498916125379495992712530359421156883700221529790434028321766153337141420308820190772684298028538963556460228363285650448874304472831484335543736114915567508834855860446845657275957982056507128126591797170944990921281245028094278623523757581046071381217511006628240556378433685191756623027365351845130431468891659386380467677040937180248749834645712660060961547671091281746161682993195043826114569192040417258553932207359479133943823330775081053788353322837938128845189613813618179836893549284174808903268877417905951602486992411360977671914422696270738721489936703231499289158468221877827320209944542838828862342793067584564496773352774098193448326975525547025923541206428439076487795114507190076366982473403291015311204725223181453306267652411168143643307137987555959649239144917346666473432364893414098500784441693947592056278355932015647985258113925316895241502822391437415464971541648630959129428495838412417584909409092074030789620606674906226111247303823199705291279454433373451472959737432251575652854806149161089462975928889741390856091259088405546163166533125311867359681055832960927526646838416627000422989715494239010137415884742864900085469473161757106671380465488567194171920285355791742960123467169978539786160103260851144010276782839429189242997435135372485811965817392790571349934768036834741481470006302686960712791206637770798679397818715587283882404379450733946029725343025517500510423082496261446390181095860621630319393755852658892492531398032834983943351354384102565137927173795346390139021771272596806497944909368402867331812149042090233091608716021514219023483271078258727884252851180631176578316026977926883139711933451956986898430603426099760855070625761472545327061640959087372771333342890891385856576844447528565286154059687095922696227326186354465549544454524746432049839836127664274303667225850241294394068691300904980586198680720621190712676009350018056456667732314152247358055289143298930879505783820597821057305630595542136509656050558965756884392268448546598329710518510285867859706589300821247084195699832010186543153542426952682700683774731118619133292133895100204081716660954133165002721457446072413748656489995931304365479068052006582022815262074520740215184204794611830192588875358663925370186834707079311141369960507528010242316290775053306153370087178958591887884643908162426274993938925319291330329265137097845142676377213622376642333341581088168296472240820962807669119605129737663634788966457371909641931069808655172033913289297050873600438162215486150708716413545465199091156935237075570330512064875691587867070900755837417200090086422329496356024880738789502097884962166342170823573792742554337256185496370081415005660746477056732920184401868507249356995679915312237140106716381946969029889110032752879969214643726877630594381674371455200583525881255984712911082911269722078693838927697406404301636241039563336940444854675364746306898096130578836950322064723109575206899490154052297847421548931729988677907554570419292943201905159097850309282405133560830049159095839233834273123481351686126549307732027234692562216741031608216500962092777090065463984954438891969300993557920943301148633150993601084813380485689276732495568004247593316507559548521791789893516732920048251556808301260655600302168738017590665696755352329821509187172635800923022897321403379382718112216187096190888762054985350348193121035624952624686488205724386063685145850460932544690903594101120389412365756577653764806494315009500769265786363520100115417654676970598914674649375765442119373080145013209653150185154421679785441988202303085206438521817476600544859645169299283603861337648243851692896700994158470581292419663042125404805543140321491787077245998062559584612976686632769430599873659650736403668975628299963782966862362331627100784231328743015739023029190473252726384202369558544565531084765808721003095048778994252307510478477563925735309165185451377127395155570773071980838216157480480414571730862766084111064074292782338284016390926696879328888572747053077995959476383421713230138459806708843725851247360760841277310588784084335438242125029069355630083643697521929155668310188645268794847293813660398506172933192511985882609541193407404720898866034881755567571377453657048587248356203646277795969153232318270897684300654716393309574988207083390939397094267266948460641064947426474224109640354914036604732959592322662569352627246694628676509718312272472485005134489224137337294895596456011619935861953522974965495180133693968689652853715332184374344750607724241004210843280040504390898579572890564856752857574036799765012242439364149663275309324954898553606342877568976358083562478121058319728639728550245182309198124932289095735805601013838743433519717927613097790168480979242546428042314161302464306736337142029294586891093000725073025485473753903983874515531661407401087758364123816425412487804324310465459369266654415939130223201377374389893609662992040378436316509663635441522983154629639352641157853236421409298633791810919655670154525309303016581766772397210537024067604291886836983848380438967852923754241125692821335216945410610091857314527837034941749390085695896492345855032222030137988521000132958340458627584944865970601088741831269977519258849792775833004209040551436192413483057274567681259376196593069319077804215715045060712694877172870785041673542182511464940688448907212116518151000344277536093778359360166405475954721185461290325973020204466693646866850615398325636884891800901242575487050645929707257866437769088980933383966035223672346021321143551444508117859184380447897559825133901537931973383442881494676130139393444613509377459770243133824324021509424322890961717518532649470727296529685354062390795703470999875118269510058014684993622936693855816412145985936134541734548770637999398660038028210674286221385788979470138040873132077535225597404744337921037786685007649769132881006442094392829058038700412217504429876091912994155892333080251673958792453350426403244684036219217970100597374269305478587677109555711915914899827508601642981359454948095638162379244298091554521398371091669420144045150207882637024050097553698090206983912458521980009267372522089384362748002551303878563719944821067736061078743878659956854587108784639327458840733785955616070482418064949776183661360559472060438681028663183957631387876926842140553642983587089889054927011947994025427614899149415010179395834375256456848050072519665038676115169555458357238167339628022633688397403275628715236873443701637028649146064314536728644457865802705836069073760208321928754133176853958942791186710379615621971094094305709868669654527481863257106004868251205464788113281896289269945653180271469317513914938766615620308130201331338091002165589901019522472765511805325925609166880102909493856864990241957761222917034959178202344021797241181219223719113420170602535599905190537271887011707409452610212377933357334214050859663619594661802992224647766845090948441154860998036685095307645584256491917001436264118150310947286864582519778825390070641425571925559738550133878358994252528515242631722186840341735834532497038688053271407382624068016414891765379387339014073331337238748361767676723869150818801466573007672441264764099748659855160299132075805615295021283541274513830149236723674883988470677235315801955383045958519864094468343379565091140948800653183602086612655816753288282205852549298675654303135994524493901140444590990936984181272942290968498355148576622555472692782969302020009657347141303242280072698618263436420294869441967756703979762354218904826660933686465733231283247082271975889153776157318413087423972324119451077739898207075556156436902444271396017100663674524345560957303657232529479725234366172831481577532867046623294504526995360902728410698147283299026440278847997090167108763562122654378505470279735017614451297013861333762890600020427001770231637080116717524708755497467297906736472829157993266938457567884583412973910077482047263760060997083414150792290432062836948670513819941182441305118945178546065684756693399310128526256754326157667775495078721441576758392387326788375137801403563831916808096435682298059850581326513183877363397241688316541643729189569256888597729559066313353841445273075695840514774536236984809248115393164901184186629789164757352451066780216240495716955979963226670852899377471493946187305651399893638946716279374798351209346788455552532937989817424328877275774641175471963662830876020012573745518948431328777190689709541338445433589306401360154689899412885105796486279728341945946042652099638183326939226399683784787365927842121139465859263445305852919771313854856209443163464649187709238267573834556402653347040201606615593569053635210697212749753650987965639672619632494945774481643507502152703278681547206212406258515838086157641384094730404315672175889409815608089728291790673065256293825435141063777039065046242402037770892949017937831391995938133894241401972760501296623131872823965971158614783470857222316525603313712213227914049190450310829302441586228941496279778521399957466027926267255395419458877554045503488975153034166746615793496757585135959119061966993014829378364679255113210442757869354234501305673508772798454566738662537725757104667265228899638682800091248468309423288327334916440630613197969933015047439207721173069201114401264522127385522070047962487862267882869390418179867958487644185458098923231906318204931754803330318975578657426562314104209452170776842368670527621610551282764640473886251398112815654092697281095587771852208866077625328918632084428680662365207899263379154048716132015204221790473033075374825127760185794705500068632034938541669740148101058943506926704131360824842095860962226388572378285161798433141863682730270347400400356401620592337144151370017259090969043036267779807480618902759987024593290082061254232258116124259722971285449954851865076908847639116377795139075692872709320758586168079259067840929662644524307994757835586885362426738517717344466655627075637660219205192336340734299427967737003781032234990451042918106751460295342392109164517986552686754771550403495058723158387281784651523224656250294845460471237011777063026702687657646578264824740059852096784906353480168460822842869322972555496593451707971553097553499671688928398750274042428408007428024103380509158008680275295353611067724665148883649101820611087705335825302892957885003957675820978050527147632591948655021287556718040367302923089250590575186808725689774075488701626218038615877774886945420371919322249050116427516660205085567829735631076068374838869692769597405942430910405718111165798659291195226024426078031992780944943857810006421841320275595822376719632269081364371989300170426433855898285616098211788077247078750790120306545807174779014139882217223216213941330789670528521629052248590933923936287713542268650246056456355958735441665807489750218493973919159231777836241952774469721098350921191147962500983704355022726570251399362134687624528715564453101621203766641101290754355087167294665587547145526041663885353156546275694435576483943273188865987396492436758501685702118127264129844290376734130326658833512226319806202832379524409473312882421191280953163365213098082025121038162052143072025166907396996753268080092693656527186042505361762164019804386922344592128331948212944500517534178720252395965534287014803225916077278573271135155149152581795761656614294426714869464483914067906748754085049770438618112860176043229544124749322818350138971823467664401011213192023919138790233218682728248118417492124713659565987100801286160872146354340830186345258821677369606387506394393217984424288841479021220391531560520426928593684086232626963365278859926311570703125395617200848313325539415370782404358818694197206508326951232633288407546416907205858444062230975637768202994676961841932848956243525097226120010630862895491414062040637517778393439992460172166580403251798514430415670871601727331260941736041081647645426396928485050948012700827506171051550501234313409728788995170018485070831490174788473003783964561728286678336273202715903129010077898837183388575388454537362984319370536148402151311460673435641062213868322981537756275409150479755775665746554679107345379643356668023253560623137907987025132375945361610131574581046010548706793930889123880207239161723788632752454069695146852014655475131335308603068598183097315338491946483339896384386203725783141633402183583946933859660117910308630695473527370748942599648968292414459450800473501701023701362397554718065335354162440175826883027667455258764643542273653684398643216663233745264873077076633229217975759262642332700194041144103093545704879879753580152673944783915157500927672740684615602000529964849128271649896856129163187614117173260365084054510140124851915093372923870990294779850258065736870286781646878265813181696798116994528249530379098239367141049633664005798984283499461211539133993921248721508999356975471651442829975255876759578740062940126984089508743937135285254223740517400144394411655095010461451167213684118603163348319249648236167242501528559266828293113556830865639783506879215420997405607999158732630497791175117854661222418756597268094966033282199317045274726220190205263639948285119908293911831046615958574631676063611162365736724392391106240025774565889160454111709274668586811192596394423023934248787796754003780342880802964981080289942822937141892289324056141983671583084317522997850276345818218200978399906861812791922256925716252605626199940371246765559837454271436600408047785450241250533233004223795217452017745497950683795177359008810232240698682124023377879269303305268109090820298815416512209411298593387281881388540435754786373761833378932122398620736016074171857182600896711987756737557544854555619967655855987100347878643877025673478398539187496616845888262403397906736329515259979793392545650357236724719773128022320229467320416343234243592782510771193843600492742271947387428515562424987386333321957942136847351170451390663094237950499262868584560705535335320988745224405931496561142352241818839603633171922323747141217600105114803519726338383605337313714532219356839167351605307494397255856319997015621999875853675700196764451800975663576911982442830502312405817066119951312526775795934037681427288826981039996957166489026109486925967220232651340650894460551356270717737091673061990029887870596713092410483387071338594814103572163706210485490014475846484246507188188352169425575638054437910319162746510541101744888766971010584203531288008688510955303919958505382419823659418212056416907528716471524817694909740758429353544795093562367121567655666955057119256390134635596289572045278333114452637382655324709622414359143659423975702061377237088022639920743578805773270573926436880081725172982715056781770998760113689011486092705374017880769297168752338102474387345058386661626513947542673578679227247119572990095811423945586779071940021171736890100883672412591689716708966168211085602711070298018818495703587238058364615431465468073629417305003104062991857526629368797177227500474912770404036005484140749581144687288018287888704509937443653450285876184246703715388230079067175162327694342655691917137395593148628251509988066178907574796361394295044715885792201848160612527632844422417726172796075715349206011531115391864727373271885004253188285785995160131687988069459419298578459614648195650281923299328590322426129504024272909062624551731161457986865914149785098273403011463517039708789663617651977118951954398212660886203299182397081490583430587136220007206992506582381297417277765709230468962401340482198571583046858156357667054683544520753792186285811280853846556912030864505178361497484201299118768212817833128669983789603203093503053985966059442607619848685964994461171778335082952743927722334821423067359205851204370593106564918956285491261478873766081795075816935190940519487517115769001507033328183681203201738555833008692067890025580885676907615994172238424155072447877776263613481723785675678068372648106753685085241253605299295590237680159084766322305819003581248015239464964028857761953781866710170365842853806959115768074697845050068925168998252657690557093399132999826886687777670175700809519520354946454162903352270958970642864533265412841540638482863764884029959257503470726575774913629806638052366931504109551659848931113787167477528463441516031280094518670410831318436890501527938872013898748627617558488057567185512593760524364469395591196038213027855607247823857734146963728063920188910275434546622971896795769154596463407225451982453891267766666959178269270945678458605260450486759471046167193932362437323099444675410482682554610959558569133086440552759341580980506239863781696921193823253466256786007983396730065349467892426132050426459097608777735758587469391443548742738810584448917964634933467626537898440228501568137942841016054502600866721752674911889876537817258203574824138500182217098745174289184048031082662552329149910623103244746487625165809428292915245459154427243842434116943314116408997049672943817134565330324815011261009558243616789899768237434757655113736783504154333862950587944878103609184598290544019506702268052385129641663901120164717796025436641181581555679013219778677850792976018211829453457855710783104632551999189748937205116243189170421437693486429974030952740179047886876117707503144183887946750738001048020682629247880453278777264732147056675738139169189371579041587294568178629764529254510409922050886351171964895518932421266665272402312915751737760034296724018821622454619619843654060252906232252599692525354918903580563971905237795204474802574196882507537445757631863162405612716375960961569889963468478915367137085636776393565714255928846918875499310132957613103284734051891514256185140964434193721327056037420365170079665635330432288938619904428474145346746399049168632031479448289884684505858576416932748581034343637284726213530569762646999262170847495141702506991990053929892118329738849612880944410325484148804281308161699335134758238824203888046145643100375989541653097813489109950752383896442560353305800261050783571657626009911597764290186886181813535703566034264885683632501090022960593577340601443181298331124092676232442788907472496502821026253293716104997926362921086806419908964521613079016209554005903187205492391672705227948161689925927542344859405583897360200609752197265235219528680813749912330408706626072447149473302458806160721715630129359579965659750996912994258022195430768766800580487374181662634438165994704596335706451740628067049110660628580284632916161151190816879614461754818369101342935599767446936362417113254867410550089516397841367514861688631204835573081560277148176714773961057201970486048568662090545696498550084539617335736914961560199111240271981453370368023485638803410736813267838179676526098858516030961794192806398741448556972064426480487834127645399201404299362205920878786284062380335407753670470013169775429214903357875930483600147616826539593399028726718498912005938045192693571741034691951307287439845499574627687372251586565405675095601774502438046063116938560467147521924372015656017327119163235509125970144171269723844119247123148139613393478872299716191073483754501926821535616908157461628731578846271740402379271841331899424391958371342452009796681313134586008506368407707203383132836939600097079675317458989168484487171841678187503196095100104587640717133114598273481000189454916892125997054991032313489135534583631766438705669901083934288404678850091347726313164401457501041316650590934570723872653014924300872351070663938276307019138524170703778120546862132769711619442992301114850055600800135903813227940682941035566677328172461565045362145729559707228570661619473006802648932616072236261278686590559483040683772695003693445207813247656194547818811657768488524220116693293181605132210312452129004092977630090259830854858602645710217903751363401524567123452557391590378348634152296012633916077994416233858985278009130846352487758160071492380600672763770961914886705089540253189801793570424594214774423975906216300210702974738550706624204068903207049270605514120913555509089062063522763837994839372368889442170205343782414901995171002464263175319790134409496638021095722336160326764642122801739522099230433242454770924928294716944608048001710814958713204197189014520755314983707922521366921042385194064292836088206469407477290180363359418268604995129928959175592793851522494267331044325241689124679595328921173233277280224806110212249753502029793515759256747841700988989295579426086412947783386436641712971203556171465029752143983749319578038673244610875739492972643946361049523066472677078651838358152831153035339281976742361191921707127933792959736577561467965392703170995845272012270429847829614246317183205387838490786609399672676154879917465778083074598225472965961117821728142985790130298659587261680997759239392937245094801820340695543469309485549356995178367429393464630782538053356913327910234662597018017213814624737444539492096649361061911238401661039390773854720462295215409491725606538568466311969348950967190194829226972335646600043265389377155855869250990779249957580120825169191927384967736813638070948543514982904151901877714249511758746096381999028268404828308176853026467528865827798533518627677495295665421327672924074336021165383982002227680158241631646505676225448545613558840061846010597439146014171875808940462937607191623842168903916050425363567997776655130918236884254915669849946798268457986676561988855652736639007030561768930385607711792754910291536588037573637019292728607880076406498218069550758031511589457632335031218225523831327406143354524254260546629744752160711365741202144565199656391742953486792337087070728876051179231511444351845967537515636113213966208452686822158617113697133723090016885645887196937519497197042398737578798294866591613664068027535945313760662707230904886604824489977814939300849058397540500301550615016681952185286648787024990449653824076559365632912614722309758508117659751128164638537706815527588995995307589485100112264563624699949046893949730287388258331299148046438393586433445835494022942762556892970853440392785727551288782745964341573202069823303511310331077095752865023512015578698805447454602166054211389298268640752671046531297536655631368104109023066973772431601255413309212686268423977576188418610066952092004166162269990009591028903821036302715111096519822773195627900337774317507446282868529771333776734921287214195580098045349793131111463093392065962602955388287863814191849255241445967599100359611588020553191324986855176942173102335897213070538046910487875133726397512200264045982881863609175742093741123966493737555086275563306008930899260267721187203839721274356667742808883342292257326817571865979663682563064812452075107310369898620231358354430292969191778406281162256880109455363475520517263574546716295206951801168130214567507569805822752309924632012783752090112429249892742361150466475777365293030622812942626324193855511666888516921463273935146814908738561180424344840666753102090915127537469405191159704609396470198804436529249076663619316144073757385082284592170218220248373768931755114562455584062704647425609081162757758338426756227085252799042564131835763494106506350232531172706260073475846673198110958046601001105346181974544774781940096708569881953287598317233516346038259112954181086471302571095950824256453568913734601071273129958945096647388076791279194554735300918076359301907882972941996565410666273583209829214555897102903922157060566373371291404375901803904816276977029342926526132134064449640800330743182354917767623761081899227314039883757363593549968778175519254923567484832804287698011892876930642450134864704204109336872824029864448179840910372956810244044181386823637482208728880549517397292155522456190680159097365683096512601126446257787824817486522395102900804713074268701207065967965426411687220927692887088712570275272874491829699517579116903382909301615099880337385831173083346323426918863601301441847505554307471095778305906101813416889840658115510303372089107597295402542609668992576730778869016061441487725423611255667299705112611582676876633586372943633576580974765879595043818117576380295588699530773607728116408348959790489411937830527082669459328112651214124174402675352707805637332510072599471724141858962460969049128849663441405838860682180466995942885192395992146271148816897415642004462801685487872540070472430078757941374940077834369771366438496391925554665948603854893282475304266695134691760186284853694389869835358228898606242330601465069125836677673559158922138354220371116387071523146209787323461356616557037351830491781618013883709119918661233805639502933049397640040498109245116973731557126018213534657355179283358393722485568008707529367416796937730753065364911086383792542438116053555097306919062779691011105317412386454678122711586103029650420756969156708401796342244736595334916742993215814462747349817379531321069240065224698562668692740602812557431110729362280039823116287851646255318151109035942337333493730536076816472140974928393252402602663606022874642014351818932215075861852087269006951930673536870986434508537459536164798388604970875339240338135441751275729075151347125842563104192913924896444432554330658325572884915804854778118678999474839110488606627511845170302376378973317002905294295746585476633127597633676287892614432823205228584926289821560737131437919773584412922545723395873676948805848993952031032999277197709446690993575349530846775078646546945694954529594992620963058325092767837677541421449038308931427284125587636451634529921392876225124181290157874177864791743397291182325940803514565874183625740733730946638265009849597297521725799701564896872769642588970202131078661201972874272142117792416234530274873532390895574630242881149027624496282584473603762640293495325660613114274717147480412213156956296222747315209141496755890797712191186580122285710060286344130552643145740073999082892254743241474833076993639411415987356758771314545911692425338735083638636407459816854305930795486227027959446347835280853802619001170712665781885256660500483008413984887848735242953476565424313522022281026515772810250261239102888890932884328065896090360765781963575468507987506828032660652531815116400134565145261630194960410453621025307835198747814602956264419272684517676612452159354877197693255487677963670276769572323335987311209388081655227200914875677834885218487175373477572172511212991433058077238528858325733578578240884501599806143457681212544512754470273073905760432058581387141978400808073610603719991324052184444255881095579259419418855121160813124993179887595645715433128839908325101337102014378835802979052195155962656039838941613132254588266710934725408648201173148204355817774223359020079751602752300299791958926261637739246109523391530154187543979608901055202440027221245097966963230158714012020661627179206796199787966072787959566830774486481243900378964162993710494414228554898930182841023570300634216578010371120489495697152646629755964014329483574342891272094167496235896122350005795619188251517565603700744943754625350513477447582981445032772566388795502823466912880030688038304688712668262993678496684991650477406210029729288040758420815572674200280030453594939333666977375732748473837995054359395620030709688651745269003656610811379840491627559581785497301544683604779228736312568912952522056237397144310684550201777556844219209229235861724315483594471143635325750919466291451910551766347246329596701513413732818634088155862841294607347332956387232762941654840691938005189854237013232345423208447754011161183253999924959401777881401751006923963961188401772035752787860707981381802505814354015563563361562667322929074851749731923624997672098490524667548306380249135012553998940282541304345626180346637585649260263509648700981989669026965731578201475523401450502905125568276152812293511404461087877470399762949717419272725503188454061902442043816278123148970734018424432759384740008974327322125778822671739353488072853965055827842324826762730017665938497840243453111008505992808646050854725320393530887811210657366762849754964133834219515457155560952377068918837166409148081354891501571050314815476776450148770501113168808293356830365380563844325483949699004255297827305521637825074485641282544758650591932264298519821444169367845779254991099215850416930992614710442992465989635189758281936409088736644505351573412617517331234778540298603828498460147533056125224347814166812443449818058217649330430346385718537001591883719474947057634303320824526744545452348733670970176317522405532172665035900634550353879286538425196758245622997989187782419473727013351150408259128699022331440945176186543554586174112745911522815541630369921377049243158221848310749618897151729893253757955719982122029495812850351653035631891584687868706345938381869229108347440493440797606359330327731462093501779752472963902839020167632932794297352322624266824183925418815813794585353898724442647402114372565819183179154948765841224095114610838555501441830237817647219211899296110054409192982432104550357990543037337159358604109473193941650341816032229114338037816759319205702683175165013142859060389155280235774358929199912953452699496515120005659983761460292533439256531940144285282277523134737213344694199262345739095420658223391568542132935249679484091106113156039144266882890440930387963997480209333542636538588156377845457177870362164071534050964574618579229592983399503071792692479450516229955907507556626480950024550365324702505309988343964944587191056794845911701570843370920673895174129858546722625283772863915155347388280631641658995156311425106503225733213279260465704163306585272452043803078079231591965290921455186185716438735366236703148681738768559426500537161439895467706696179736679065420577526073738320556435855206862429017514213138283682922582666846691635026601358363070787470197249582800802984679553919276085141845181832170749058051568472474619551780999607076037617127693956464016208873263189918713593611769532364386897700978505312248551453017157205785933245128714339532076685897683934160939543827976540256717447297397470769538526508231776005738976470962665027655196979615817655635595591679452869863848295515688340180116565124286026662768837975118366089650349277200314148890738264815346725486437319255394177243019930765524984891577820273675672354627926849798326924728062844532780610861832322292126509306962710012515953184363050664976121524301423012489430338026995694638872157794336809290411473874604772868059121541558195699461891785249393795274631473744412786913302949441904881944330987059023245235552397461753139083403696992059206888604238597287339654258420108930033106150268106189951031082563387528874987565734106469456795675166148526489557105203071644353734226159446564154540838895808107419056337898184246412216031767381371643340302754403557661758116562320654596604293264715082719248789584708933799536590885410700814370916881849743051869985366484630063501375756730995548981978807828537252377955211373719201123488960781797310962811199497218843550772795776191733005131958145128257837778938028893478824452625637757163606101600375562728945040675336937915906797093911457886615037145370187667847830007888976148394007374052631623365310511319858994593457015907434885108987887215878347357848976810155752335611969888336686784617938009904379802082375979248919150786112999932988504381716932809601746625480064638621545239926698537622964803044708486343510961662104072522360890704215730150825911819311245252840095411689004336206577599089418806639827875710479056388471443570965250320294697151448093822042411210159374749704255766342766359474164615321428529266841435085391659833383779462863149854409904676203953210907263057302359471268517164980004069724599471214951859207837519469927784729364654208914885740701816939520682184992871196306152747634578387790265601797218654304671919724171261497795277279555111826148806038030484077652372459204137337046287895187366854314000624653337763262098433545274868342463886889077615581170803161857923431215699797199849428626126213091007079238879470414993741003478830439595238849615163193426633695211321098354334165786041949296059694821322651481155966095398576686295810469698655699445924872397553668045970473004820340939401888253963544289579358806701804591419452192021869674912221757472090988148910300700880761005310797474375154290231976499280385562399988335291050952649739535576714106189641537579974978585301199336976424640281023084387700861852359982638662900058831073122644237205421578592967738092498144539092608690670157685084781389252296973315105243764426373827262539505260155806209422779420793872560546145174630531809667865278095299947215298767337925684216800458343966278442992127454446630225002451776938783313197116997738789727942436206384745149592682142846453358457964834582127892764443074185759846765267066994719489060759532891518629667088930988031187749075415216381229691386874992149671084065415496539238870073378395376872301519245104048544296097751734451800062832145228036909233383411796320523449501387368960139680737457931944088981487497351497049222252696479901353325261430378630376578638845888194991165655660234215919383302348494593654220344201922410492752045887473184322438223225694476802635432172077954543185727991097725616708855697819816655612031222084958231669142783814415420600201150699250876801259609353467417743082434908042543118900319307655048897477790968265673364058780695882418116981107582958945800108864491882953472621416037940208708633850228892131552650660619460789491708570356752437680923437701324423509250204660042947281202820900002381497370526823512837797461737232325138401584548801387898394159764032146250532712988785401761823142474905972276459060993954320310654059291805197451362916094913168368103106368592791565620788148787474272321800733669827239054565937727009225865959177343115730115591828401356328578917675856713748707511351649089419997363713230682756459841234392513765109291664259993305096970604276211676629109274890884682702469421161685225453649297533581336783077554950087194454852299167546529248792011454520045861512854983187630934510653853052429076300183073130165815431397180093329539103279784116378364800844319966664138688456870774041851856529921584589428021951814706643094367600832415863531979330502594827109751859235128074948366215967535317128285715249238963514288299817192794949631785826983843501261411185269289079238324227783272256622866090318893444820301005819011949620572665319974767064791503186377013096402186176028376118603426029546782270864687218608990765399718372535888357471372843897806186459069673134215414114338896180295777647835342242004053810283831390080866440658724803096716817052818064748792421808724052758727655808776775825383228246007194151153073310188340484331008165448635830617746799831189786552823602288228844052322131205002101757312409795546590421035396276820217840717198679409935631391041612482868352966760953798671145609498446621912309818077608793662618984090563853123535504630627990584764147463027993959203363712283060406408579192070325281253592461112336480455698445348774833110109073693906693503793572081689392046053069645558406801256980259085520363001555864576422848731425506738353204518482750350770377238371738606045525141154172983325963431022248288544932884394651605075768652252374201981520233348228409839633239448593269922349862846758134487102145277368565310167815509919399807228461930063669407633634500583653268777050333756158345586556338891433723559489254100102803561346964372875743151028874018320341132231821852895599499781195715113389148861034089553045514355024305143871239910518749249946438326046518989860049552422313953661765954970987102112743115597985325866950126357286642340823802573987455501781482795275368745945960974516792786902598826499662823144358505833243091542524404165109353927114148771948975542791902063045573455398256672043359673814496971866919257768901006049673939328110662233805556685498742957449113627610246524300518896864830916388480409388991161228036984135529684002220463199870343416706198185302932704958002763348050953434281299483531447697506447646694275814127961093494840095890608861049695453255063424652960294171020722276954593746976906367071207604416871602182523871392294067969322557365685786169682122351447313170998543508769119280437763387319358359604200285207851176004106157891505023354560456835743443752324712547745838541402523601683386550557817935428707287243107426226805105788244090699335584686878699340328340099127160066510034599049073060463539170445314907755446737960954417332574699138573380566643742127872868347374761746605313923991026136697237702702409812839970122190442184775655404153193296216030145801340420984648012303772337847159774118248574164127809585030849116104435016814126501747655421638326896940476008435220375852389425347273627359186095006928488840805156879723954008570419879978586833512633146181042430818743719671682264532056206176020510667266033888740458341130670521301469761340543723773548992020898876849213795524576545971545510930481638196785029736874970906984314168525442846920929903122258240958071351696240465466613421723654251134102283121251160861730412817921661568823499511020520111898598365162695577309192008851581477131629367616262215076135677240459209437805323625239838651610838558035304279749740809701910276520220505388484518291089687657032703701460132082755239380210753712081975758394156975986186430056211530248340790497589975788878320207167810319152639358245553524653045720799775538300399196596471290387434032627094617046906839876968341334584612031280953285938996652736787004031105205693084342354654880779151177663187078306511259129528342325151681002920874709105792093305209281368369587641983805820350399529268336478680293747913268133192787001252237112055025042291845668162234050996524906368109582163537698991613553340076058259081840952815311148634393313249822850598426345357709749152642108723787859624522466133295224560331413810529512562848843383981183361273112105198156754857076674452792427586255844896008094007389413432584248097093760767354930446507156481968436258244112697800844410884825006015811593666904357103299473187239870949709249657124853962984868242836004911260282802641808132396698231111664183922861782721068615719076577539297419485965488960257980425519518838457286314808598838014130557652326452122175214432198488437819929720152789974494657890017351878009381227965573348042211085390919377475735989288950115860991154203018698222650553860711164818372010176376953867626561883947991349602690286177513708949869496109128893484165478898938316280071252157115543962399907021127725377290831164096414891526564599202418595758493226409761004958460880481787124880858294976643257178636963050528595285828922578029367674658109067045918638569787109870064350352119609272673936679178839608889740068794288130816827488702577520452605569826300983051403910760483511883568691663621711193708678712416879438451431290958450850299107973769832391350268193748340562894719972309256523030942847412980308729943359888597843510057071631501223750522928888343142088644891636368211619767331599328238512090797172193541544049209665019367278658375500137702983389225633521166892555357340900000685018514825930720365426546432123220325688259677876705384865543031302998232502695105782915418807511271333369585171398268234410098252619601746673142942965477491796946823593816911137992886147662915340887237703471106894768573469840077695261336345825965919608199815439445252200233337345469862282494177841507873384191461898069406936872785730480788801697397280818594810708360222567692793965739481287480003581877533168727723757605694787920123324655118280578786348615675762802200590868091139011320031564737472398036821002925398819024403703146067910636618779829865518936486365207257942606777493388051682048481138192816166675122544444224228251613466912696735375807433788764295839389444687348010489189173691736620220938686785556350164550713128750179332586007820702541631023581696206884688943771873347837894540802519632273235608142929539525707621719564244687054845174821873848090516497798561769275742134437194505330634698601510959347357290269636691896321775900080990540015511547629771857658093856432382017561550896307579382921902271016028314998216853686532104221635716600926418309422876882092499261192029186794099611215708748682950608012537108030383206480721633282336697593452786598790166484042696184385295523190658683068156382529522608505571527884910323793200203488856099747297833826468897803687706749340265648101185586899702178311382688551950412965108968670755336843252968520270795243743084926181160181015083807109758914302475232402517280548864312013306421732866546290066222273406775539741672409775246094873413947125788796900086061937841391373900131906553251556344998115845574660922835858035231999971941677193145289659198420166449451163347499984778917757127291779164206601256538747971639611428234737395882117050272843075196890329922720153196094665197188245770660782942096613182044933387717926160502149714855344248678993355554918599579787965440115921535682421924086727016707011214902817410242579555703596703332770022945824780562679439140965479096103593010733579805825044927180367948846335359352124147729818389160122155110096750659031245440175591708000190814725596132474981942247798261656954555634033587187255280101153359845636785013234712966618719511932210814653405823052263971194080043970851730414813279719890300491919124481943974012399229571687004843042049333303960052640727724508055593807902217580327994466324695636473805911808429234485838906268586066915948111858888944974523436104576743874235854560571655806774185327137480245382685453803172560612132924865355489338583274447286725581422245828435730121772950511701665712116776520775891367338060111052040135372625112814913233469924241880979277639965936593024590393077900245527061544954655306360983724802411444509177121961159750496977946087395734162145947969988434929663818730767514551726252027311484593120376219010814422587161311829679142473577028394737960756856198145843218155857552741464729013282270346121039558837028040153372277221117010361492250669653064601610576580664232418030316675193905934472919312329300784037441361335924571014329547234545924255597871067263717144509338719830467133413510633200700330476558325820969758451596810947896373738967962362954866057232172002271167986121082062289365573068906988002185054560084884382152405623000590037690438988902796029597630292907343542536522967553020484097827569269677010409878356484434411155161933045907885112572530635331065526112149117313780736819037414788796567753715990650729254149296238043096720347551607517277297462604993643467447716562047971983885968016883111501422262877637254631054556958719881163455505257727042897232179324052324960959966846353347282606228454715728935562631920730113459355914126731502024008783309810313131687506258251271459488844512155468159114807321662651324937148759352118175862148430487456821293855750982915402993743746548297264949302769515261772667770589573398136019923972757399044457709301251001159308768059127573107065167798313852072010102597794523258961771524892435640811382324716549263943111986765334098067990954202485741561853878680198454373909658343018823642796768324407757978334377548116771189109095276879680114024990540367526991492892139263867073837492090425018082337405574724752619730829166516195172867963005783468512070098163254168617035902850563732241030576665293838911814452301856362717360516509357504826306242449505170183949351485802110914521199968805582046087203151400654277988302382221532946757724222820665279913538066345714149794887731105839654028166519480633210520235418255417686478441007581701739076954155954246372229197428906223680855859903085790558881216223132453492181834863566070897175920322778727575063232061219248131671261708541830705816409047080992006260873072015154458529107461115037352764823676717866951635150780564972208385069790295692956604058927992281907283328367218883480419595141672366757043637103632172502895209318890158292716516956783721406967859149495533256148742894502064732191379014801544839270421470580902812230199618737115726082337045999701386001393458554546844650402611230146815241591877043403179111952510284379670952424944069033580420567502727543395918381700540324247443852886933297895060243302069085827471176488983827290801487793316616213827589620635543904149532129284835811016553331763326637344213669801968913767537913990966350467530772630604930936332420389396208358735894691071410037005500006454147800107406799228521163699935660123056750150293267492084331392530210002602165005233165671022214893302996243181683698965684480847537494008131025654422622079846169413844924724921451430845228721963105539236478434223612430910223497212017530204710100553303269471685900170933268699097627137552870471120820110778967766094219860966275343183438447931443771803047569951581016248607500101696671206763024431259944223542248982540693413374758581276020620372153213199053701340307727769517393321376001287022596572006037151123497577547500983269801575436736385748071367075412861496777226451981383266024506001549660867714065550750724334730397680025958784106559639042569566310791578332423514737943374415320714684821977395123730358179245638370397054163226031719991914722335331695731102352689982628843577378687550880896828258080551208756600122930623810042425648155441350399665590118193327411574241807388649464281658723535844591093368498606592692934457685023570128450412313287297231161902929859785464210003289686616596025921728614590429960965111421576309957561631527644994170360886558747734615690938294651261703663076941335242018747233283316963027705361950371222387528306650141072936280282727823439121175856152042290074185119581864043034888053422246654643379058533679539506404939681252597638418006231572806074614517144547465348231369698684772601682403245162565657880930311313744274650341392383800689510064622809958421496294276898001363097699884553460994000110296423428428752493618172657317493930216175066016526997078423076348556916192236075942538454531921377032082118177587116071523108165025061700823170674882423102826374042776634433725115384409132085775232307111192745043297832534019009956086204984059818724570745495724019226894678141691901814777375962806675453523314772622455095766598327217358635193046979771527855332681373705295962087266061446609047057549549340119650310003032429887277887652500965535377422324121577883524481535455546262578925948517492660461243714148778689576763848174450401301096258777027009840871280718533315403256923428886357010990356496695912170672384873976591536559428583446014304623156832702888866959460501326554947953079962695460513445004829086025055207180972728244509661357478213690182767176366628549852955336833532423281180002337795021478176745202175718762862174945452723795045697029169125660056676728958394436379095454878564910400402834842847775732726253920579322054902177603954168774267657143039469640665420561074473662861574619125330023170094613655963823808271143900838405415074030540544976173465621926466514908159195796541551066407376236413511505592569343071428885907435370855413405028250670059182781159155007000421090515976835654941196964246353306840681331909166668031441587804870279946985532179781562440006705899495697911033618146911596777415994587387129925190038161495358069173959000936188218547919142738800762363140803496367345200588412685055543383303469164617775907434315230843859144415400319306507069441658453981624448974994438046449844459737385868936092599800975421352034707631485262402292890508886067766790140894373264886909842567734355192024699176952127265869882909880266290336885515681952650534731898717538641088010990604071152234412920075986600377345477989089598455941849294756630052574806752323865549520107887443231800761541042431119787828560127147964221481868748045960320581733179124758772161944556590188211565663878325961220717030063203887033567223107431538702415659132000147273933433879576285094114849917172800529907724096535458307463350905512904044714128203418170373826562451773635687844316301561352083183883983254174292796373422207808040377814953671757163175117580363591778301451579609375380554322954917743585000585395847693550690644702407673421498191331028216005842715375743715238338705769196169351268440069565456940469406759712985441036848962770438883854932981217851308592112868994040880043281740194997798946879093570424081308524991238928603766584292692083683684241151305599806148735887314983675525795130626849815720466831813710387708875857112604285299350119744177868352133532066242380218148566368972150365616313019963919341765958172511507152500004117243700548293892551154098564104447417953512156109858599781671518408365999175918512112660605054693487479015023082102175275295951550490942937902825699575203890495886688832580555675361408837759574101491296550141323233363284817257913394563693849479148018725890495712495218526376145423189400793041185730060873267046805330542072377840977220102808672503975063514791926651081588981888928528924652401881764536408709496066146540748972920001860354333910908821024701236387149765089452878647143616824953448133896409146634884303805443496983876131130234698576605135796172135392192248103851221463673830685067728759398652632375435679623319071775241405564830882461045654626758576161134248580760110948371407176065698268435394498592639193702094218828752918150235503341712198125476156180788756172483080362785486036307896425489141720546487969475923378237093479415937758062504040417783336029837014734483724516037846351093107305095458142187344342542096948574516145740530752402224500665071427745586918526013052686596323471009410971308581376007900121893829826208553643252137342678229597155178793669175737552412707686371401535411185965769864156945809196495965857117842289334931837676760064863499212535704427764919944777836884648415558375158625022530477065181929770361187256036730812721001936055218288778372051744424457348062885815259644835598039885329425571778828989336754796140111483944509629712380716085313025607228154076218383140903649756541345043913872093108362512692010880164859610155770221246704050604337481993677399242826301821603647470413861785348021621175134346121883641135914945203886868957585458059220323857705231807141718717063766759247304939490362693737261026411553720886007402599902600651876199566661525295519147802952528718140621981122977058458326326084248403268007381753371224770823140072339166151839313069001685483411083903380333602297461771472887017718799182776758996007128164396363108901176551920584608946643012348270120325343464929241960080944528090908306319331293013191383099001647753973301542037119556902844490025040533417010678435897356076067105331166252744589431102254839231875333858154593305050909774798904502182004372601493649151713152159942908263373707075479862814948468400548632247610438965497501883963181152569022650507428298184450175561750600272380158564897571202824566347829078828274762661239007166616405975963749402361111739608693851777356896288935027778166030403858033150517153706894876415708468866286641266342739188970832059101711915176974350652313442298280921183402646231431743323322056024693853952086156629223646876830046864994901539648039871355090953362554732287389970101268923415119905136289257216809698087635337243425825753597640007976481203477134368429009142020105536778597063306445992654028447634145676938845198992742412195556169981874293124506501378714038178161940951579540195044008269503134984326894576576336934648600464295245281757320659629202104839071370776737682967732673673732682545856392417863406488031179702543614020363996962202300634423597141545988344569609160711789521401523713825171347137325196939990087308799812091877690799180174883742809379422168120413358621229497915443201600414758368191563364102222198233070923449310396192311039678036515718059151867615139160796867014167850360671469693495898165075319145254399026491273040377653582855777595330046837558315233829258865908275730043563044145567096357860524748742948854898628863676709510276953587844337229492900852386007619043024800390090050960549740358606214962153481173758111606167270167070350286877326001294382926798448122534231160307692754776831095874491533250282887258082686507089742158661905735958516901517484532851962886495706069391230684698608276158380918426264335773345452001949285856215791035270926761643605110143742649539430133444433149569224495349457870329882749091240652901768364845107137643675355652040317210885649405368455506782995809605413206455976164688293040200315211078631254906404969432309762774105781276058584638344233199399637352229437173213281796080950754645637021452397724958630169584930190867243873720153823320071578759551038223000514946445759216002245437623741563273601930976676282976315739556506931932782261220743966725522750082429054078270948401095753187932908029154336236209298030845968873535367386368611995230576257990378238129458482041603987149105952893488143340079375683109543271465672956925901724461937597766978908672039442629034687609804150688127686056424192262343440375204916266484173701710946901321437458022974353895196738095341481590827649241895258633464712236545951896421732484627419430447093040474874662802178070735168031813464791921032883511943259550975178379036009724316704097407220785494118006964582908917372254049079114340381008118515760041520825498651023890209466960759122614881110882366696708872861219173251663291297027235554050971116081602696379135087403905007970666655294265732695989266262039424959498427443323454141562313067001838955909672816006875711593849163708802560833262773893294644402016898968316113421728979066085668891503807589065944686074796609393187923254736023432901707627709101531835140668019866753635239582821177939047019734375786139935700567960027264113668916592816451601927126193107559252811133239531598198698088739934897480925830522731693120653558455444323576045414464771334393668830758904498627402163292659731630277765780088282188809821176547984774816644544743771787047344299923651245163676428664856622710465014274073564968389325969416130812877106821695600080973706763086281611723818720844330453143934579614990488770270642924219157633077546726907827024712187547450893490434112017569373781087630346616653874804793504041362012632823784086374033131667286687377957663447537852591156697872443652499590712337516810788380085724311498327732300822405281870427234599133768243867714249179345193441174769522008279649273282254751541017540944015054436659078287952591079086244649392613928702631947595516045271409939354955145861944219721428701958805972184771051214770338226656124295744546429132479760857027486511614555205882254293490204050704063802717059513475615589665119683064077553784556151457836673733269872964893482668477510978601001749776595063899371724836915551124206799166145817783418782085915473705418032382812215139209241584508637661589959439197638230632449449844732450641932912109316373638486514553410612061115773742891295212441538808427929233477616937261835596149307552304284029442020597891946129516964162153275221381218325497736879718073690690458542722272417839636491538193369961594251457290564647988694058907272240520825962808805260729150119639085717080039125037996301422604180406335586174517076249718193809584690866766600725634336960064524186515915409954711605115420836184237151506244072735353032147787262112030375071590145178880359550306399905084641637897455310780424228015293232251151113700477520410921666411288414196323645785134829371700719541778816077624634766023352435988814521280028102387208819874083785780572878164260985577897725509531421792625842352910474906731727008907402248217750997637700760176470955012635457439374065145719925221556719336871759251733952937921922831774001179530352742099257797223582363017054988004236436789831854925025203665032061721671372428810503689901844231973983398967637143680876696114066854602568567053128227259244504581499517062973222211472466021799552264161287132319289973810826228484038670851910576494014723100672117598339664575808824603116832627727834982168374153518967112803731685779181917205445528315334456342196266729488136912383037374173507971332746518489273475162351469836796220495845254841802986121410404591840454002722083454394750988258668835004756623329023045108123076232262876472535999732127922938086614730741302308562336904989894867556991340911499294652783648641152167553618129146562754250160183910009774515117501061342623259270238137258995380623407277695531501547998958726623411940367449508836571728272757274119130980557270185849691491956646061399954849070420000617641435150301364816386866694920047526597451787952783150948061647054958877532825702977275285727736451241706900976523937170416124328789556384741134588800515808582251578865604833564634111096717462815748530102033462281328551104216182974878171367654638341418199891752036856597948242051870892752104240836496441866218510298476065562928254311123725569528249180734958984447262492613984933814418548379874884478830544990331074110660637129803415958949261471276711750323479138682274401357504242419123343790351040436154988392281694542410580400372426193778988192229077129772050626875398847811534798741747868445953937284342769972680419079882932453456744488996052855697456560978127536123084829635185862647899872259146322965787856598180951559228209107758614045760241899471513965469269865581804542069125115572870654687250764751224281413534383705039086628279555232111445607351220058292147067842067357903583310851700881547185551583509398591483543670888375999866566546878294371394749868456796103207999833865151325103281637129042689696217481129486185428194356254255698671815926189606482526930667915884803750555934083781845015699806562874690048084658044144524513671561693918511016592256034476153326199261933210113244748070624398409256516553702296157146236942756973977570228274225057736205494160878608546252602401854633209374249487359473374655490173932356664258074543117771315831633506529187925446027711091158377317297600211339766617857029225900551495383084390086678805110925057065564796373507044319145024381987277676459972263931846071075221139415578524869172754626388810318890966729073774032474896329205088699245194386426873897628612634990575754359990067881243078165329152911457532020936632046006378074693037109607817939389577777454589602111277807304785036768855986239164664769040700073188329116977281333227665763867951514097646365690027968566990017470998805213219822450124863291514370169747510749142347109718635595340546030042057651139876606721185617778977936415872739520615082570631042554435977336922691230989180722995430609300629408976295850929926300945150865611571602068097387146445356406242853807056812667564722671994415602940400607379782262775726364725150962486654705125554297954083415947743225104280876824882537018279845269166063629557553898777368790891939010692415702971670109700763128008516142347705110887279166370501664256591251837101719150706919481944084242659682517146510857221251542484026914575068892435862179879071803562360046349460874884943065509792195735330757612699141422839331040547798967956604758574709141739393538751687697175544724716409040639462577104494974172729051491457963074104605928723371652873399116866302202386894933580581580540534554087990252436884752362515270666299736291439175740227597436065131793015648210972966663812163021841546521844382069188289185232739185536272139911422131178901236704896745993561563477203712022203693734828851531394010540841342995646258957504911018469214266466879090522081667473547179911798256750208225957058528957910609156820578035449622974970778585030069696021592503416844975415590696148473960951006508087595624251983963832054556638438621183318106505187508049853540284490095193572254803389624590937918342414812112970823270553630011424713384591963667806952651950452943218784280065598799356748591329978991614271515299916935930196451492549951900537177283171634087943232344443762691479807377918664839617081398885579740080683448986845171406092845677151916183443297109031777908059642648536254276242186015518538371123121846361490138413080603074004198001049945196302584298326441070158063585289314816092389493015501429951524336683266179129271511724993082895156307702244122375221514117184055311875263059404529375499259885996043100244837912620656955412807475098579101595750550275325761060953022602366815238417401226688156222929165895125433780748762352018887489997129569504430641902403591812038750048288900476460607502950200386928712082926331625649281949070975855106996247860564720747386839591856766852369781115006903691108487934950124479182289798654409201440871138562819254399657298372348816281482185159751288556462033606707602743819648634416891395723115728316448830046623364884610145387903599810769589496525008500559746103679965884450749919322874891305597355421535278441378180898276561097482715237040517426483176001004721836472576746268857071943032331779812974237121119446433330302027903198523317037206247066764900664684472606113186648818528176489104196777600981158860821488919405139904950685032094848991024973453042867591446313521913886620905399591870901536484494051721099382004586129125107551127393258246132832098297358063087504977076794996498165431974827501722241397127741970790633882228974033966296981969803289510975598891491313209744461413227506280486191489580950454603663098663233644651466678753594099973719905689244078585804639044296296380232603855657605013433584211202839133656452719716156849327597445076606871104046690737188271665284479568772295621911305152341749450233815126850608634580781334152048959728515865918707734525958713189574361588077768827129657715766253164315570716973614162474700960607699662525912077336697041952836469067413182410367631939599023323439489359556653480314294150119383221194808349695729762161859304391528312964655812502557205876876233816576338013482049497694926983514230640735552071177930133332365469394155925719910604267847782256121545568708701925255932625665364771727118926017893616365305029285686884560084929027053871802808891497592157664342505860186329708365998855513261591223840135349612844634319837962586248522435587982001081225711847189317883447723340835497980336599861170536018834818581214769995003448990059467722248633554264040018314727738202776860944616834977735427862637502124537858936992389316716434582328472974780333883782470434366330228599543618638290576983819943277275660694586816025255232118763027455506671164269075741852454379812915218460384458748277151387923445453916084329591784681804610568938674378281136202360170111748209667703298042211338288681983316955859335554335818302739104897139606891869568466730999722024991448981414131141694529288605840679372807007711911972923408780406562836903931674687749638218041908286050083540547569347192928803122432375117100857058885063152835327840735070636386133763764441861195897482869811487955142929481818694201256864374381812246761357419454335877256359141557711432886622437458825936297942195503487762277794984668950787214898224764646327302972703340460606486609422710115950860441114444246231862328873464595810434077217584651243429523596769006634114283552754544322508936453744356722012123183127898798116922148549812386646493374344937006264062628663532909203459186902161823247014330625280719945842472610832109058686914119589561163657492079908636842153597210257328857078388916717824229350640230266584569644384080317929751089727561316034457934704484822004125886411485608727593803197604999371008553253047281386726533385212858153113619702916011950146282946356371597962877633501300664029513511821065617811412238829325327635573749289100042584317914178012824166298942582267124440119875289188493983737987254763561431177720664752133472495803554682413751740877438425937181514581722183444377809525433615296315488441715752451167733508015458917279841942890614856398006066371611207207880969686244103475685253968337652388172767960265967449254504589003221719509416837420993716718703940136112986282761584375557817777246081344470386327750490081892741722660581092678655102809599345980161237009408597211894549092642783329322699868137020894193432464014193394925436829455118157961001612207579130676226007570154624011221111937843242813298515547181912535736680085125011789217788587732774676430543632564516548856420730105742220505094577011785032910900385269525541321575204101634305956577844929043126794977611706921209151910655596436485334889573828958860804017194991941789703708051499219393811165471403439985564775325517999779454820055647864208993616951357205725327051018146421962152406779073400765801882055735377606259841056627880632094951835829722144753320215859400672557000547325724067216735055017249900617269222312450067562200565003624617184850480652533880687130139310397457034397757428117224205840057331441146697464014021159090957266290804366767859197526347889400143515363349122459671110113885644547737878359442313361440924552258155749042072553959897320800511738171964568050521495153563129887612192563872790921079857362610492758339846316688216935959775919459791879021809469702183691626632848478262081345442380935168959612981600790180005451894931680856040393241976576950257413132990297130067730378577927861970701011612690888438850569875000178140812269741496879424987108770504013200881405615644390385359834179641091276454646107898133443538317619539429103366953408925545816353016388557755666660931765944639290828509129573098424051224499327984950741760175223497967391552655656172742008782085140854853448873048190689659637903470109091053731562978762445320682580070552282235816315767309750782121945884740375347873205728723318250131378938255269438415710071376469635346700319153158255624321237445175814885338886335394141069615605124532295652137358237048510825538614258828311140364321461660509552403902900284055704003328791259180234272843253894842132243199061023919148475079990492790223177654578352534148950695698258793000578548381606598116647095161413791594932411786401941822601504758893897910078405548541263804702264481454964477266753996110403180974240912126389854436393256975527228007347347290096615311140087052281986680216147228802208513701793928045221367666069879251294431065286394258367511136587133568997824241014408102163832361122529155028107260384203472044045113254009648830428249237493506652037024697862782057929090241765280508928631375462975885255660184907391438851595814366165552110148093210009457810369579201619172609044898042708090595541096041793335819807846187526379803150390149109627136961129353911197888985450621774081321762304330420583563194794194472590922058320568529522327598232780288508420340632811026863601243447035081444494302113267025433600680248833667286037664258424482460277998404898526136558197487037546219416038428527766673879465857319460476086729606322268719013905806632874563651874947686139959094661756750176020288780780624935932455666352340088646525058602728831536593533802037714333743100539220676988746948507119144764246786674370448523261642066305683215858814420508092971500276589974799474630786263167492585691355898494645596000245107707822452330684857496990629425844614008763158250155794661740612386677591727945540605275764538000023763598580128971223314624978636355372554557837903947577077370290590423738044154139774530918321314240729661940787703116290060917272254740588178937826247180261824254920430347385287989571493550071382028782543957573479432845297874842062733965562730410342054089904605621238857734696669955915277151851057523197266332430021740467821059630910745861783604234307935474498544536119798156353631892448569554885783442854738489388285729972069548866965820181090020364767242734114186434205307205007618674864650271934668058335469231648567953983053141284857799962694640249187213891648114366910002415772292618958813562622090100452329956886839400052940125920118860638430734224453052144969653329494809414915799986698940215550692758282363421433333505277737931082833975563370515912647726298503801336391440676925688251175229492915432405985443270198051881390057046213911611493121851446884714393087789152006720785790622890782254946897730674013103784399493105590305272635781980565470723144085040854584504306576128626325840748754969263808829130481246496652904530630158423826926733920948646690555032283749986833161453379539260683136051036249624270293903047301710928799808635705778146379300498570048358759562966650006160536256981635599274768178249282754606832460459905718151553307940342501698480800071432742725016420980251617798615141443080558388638681864178438613269553383586481840522695698812648304874949699781247562782614440172072625075733843704802627179586948426593187325261727536714844744788473353562767318157763664852359054300642974534691541373960143430199391195609542267356162259636821616960478825152258031954114953414917982194180290677841691072996508036416719317573390595821530199547954088792629633325272579659366643785891072938376017160074271612235241886304346255840913445785064619408287729534220451128431189416319088354208525310872188663626844596583862426566487404300244041867781424536044806241362865841759094656679583752916947914391443692538644715773363894646210773533184167710449494248609049578434879519369773452957928270240934940163118322938632616057142364648307046456505284765044935542652109909633469511100553301239971435750370790058947511262284973999963572824383240500510549149705539423356431555729493440810458050548713443941516814190810381934749338374457147323632364317757922063464043038193885942090957671086240724852379253110597155694736569622993685831132285939570198725567001091608771844198783869507183052039429682129275015893384386179088862339549060061737547295855035638964798854716060531478611238196725043739980141649595898488258919478870111309375292938572241493010857620354247345324202575377391888071220256022703848002837877537256644930771009686449293891948195454279586212066612996024672651521301005479948915484452955155299306900538705871840947598293418810411646309082899615973409282498050799854790099022042908393291576390542604039848799681854929349926301135309072546516471456450647936968941327517261706678303450299115824306353370564689025222208109987601826784677623640874914064726565581600875996232559673820766006550085368758325751867028920668487753446509726907620749722826099845138850514060778714912036139665921857959211006971652223964092500346046958767452009046075143949976676187022172211707978805455568787351094061017322671556157222558881375147292636830328542984060250645558324998509465557847268036790163002728951623963703667367658228134004950586831522064518353128948563793769646108130328449350650445530934350937609720137972022437712327656768680121379137570520874436059257555523490240814166762802902167887516655399422087354646982217030864305807964446773639233058868572483640552411504033097042782497105509397052969054093817606912323624545516391606160675160493509313676409363474130057996450755444725431390763654969648772793480074198797080838819008549171568315004709468551673127121780059386265497146157242268389384992427971830162735243030630301743630270708046187007001545599087822638623512682067488716171942022531964831659119308144625521101501633339428468125257319883847648846185258073104207157405670606755872873058570122196309329519049868721831273960310578710890837899937305197985287934675190934038050572938992001389487093788960211442886047381006011409679737806959797141764463471915974399072823401580269453608092979974194777905966115225220606570631022521032513259303947319756266113871986508088626940962560432118332239520073297128939414451368673660220890205802452079062025082529911507299771910863814181859966665300530625284386508851689899812386228407596177944412302057688145387896145909619049308499910079074210633940613596298499228073594488162154453586535243430859365112572207201080726269981196713276758646355075625779638966926793762006609599682946891196856563359314886234969681335606097862906515129528837085949492374984192767221101775799966959852449773217902465414833544259313326429245015756174203725255570106643367023401348164469494169149810877287686689322453779727727325853668931732701013555479704395745124234724743758576117587955612058193355175695291982415582377352815604416538870869298822016383238626398484676333707867790211981587205436838644737875145919830210169928300327402635246679194397959505618480312932124876366342485000259608271688960045916068804932406848780242927859201632298486185305477410792514177828779176508810562645444356732333702661741597836988526206193479326232580588096687709241372916268443075100373576286131333062658395827943621924691488697004891233717703566437439830255027907366021284869327147004420461566080082868398380743518928628275097646705412596936515170928356561918157902173459145749617571868714500202533993009818118416402286660650139317291160081799178147487325905874157920802512033472092568673037755835167527638667769130884449757420152381689938111647720034260794576166437077504519094056009445420267044965865827893118680033709035394493053118544944081311751918665396875913562770649110310796143755034755371665911647922564554138678191019227074565051317240049103036974534327674383302481340157873518927911474723115201167414363068148187529556062457767027142933253837535109924068981383417613391529649128611293529643429662425136702648613336292959006258718053028708244158883999113629310508852117810610285725408347128406057827616978359461821834526412720085646155250640954988123913901851751383604803678832196005134053857700731833998556822750938435747976140037588020863717993360965745924064073632133678284964516670996278231666854786570593325820943884704814979975253701705013368891956019416703044236771792675234053534792410285705555891044756748271748475696915609238905562485109294161976313050253229926212200265002778782308481875018738824258709711984169240646905245010695930636125443891411131457309128619836341757940450208754638155353658487998392818077803169067427487916295324311594515877313890516895196876891753280182336321004453023553581681034090310925761741422550821313651123142879724552441899189101700313516773871429376726033283852757694212454104140131960103137738186858996506847710400429382241058232911121891231030449118363077152510281480777852277090322123925730199076783472416342463102445829210939482198976077266121187276465058625319778514857306823185865303664256317241267078376131748220142135362825278802005638566335869241015698786455240024424979585762398917285113559531100159027103514397479915847047594073990137439592215176681008101463035464548658734158275626763179688449893614194382088564977608006521065707117169316751483669591010629376526869487024772860529262507722741484362936391143908491506107527951159293026959123959715300276637935020987176198591908985546581142162050194752036543594699559050900791245199158096171610660549512312151707758149471515918896575790347428510610542047137719389461537481825399910201894892442109682191060948447858709733324105391330733734203251244162297192954440367298044110480002649116637675382372963638814138818088220219816236910301568854679840901943134064173084290935048070621351353618463330711225209780159127399407135794582722336522608649471599923265462230550941683601013787560574419051203210388309553591718011563593538612426935695382356829947886315887266313245349346658681303026356119061535651739631947519711375551639103934998943412923769435466039319008252722793796623263873354728950209038716696058500837136229403367296680948286635256714643446390522000379500998067588220062390550641614446886593008340790596243447699754944067051641582372163739999620770927853288898560572273035896985625520753995781853942868648005944596976128982920681325947202881960361964700093481449990455099021061845142818241411980416056141562574123972930626342520861204350225488373528405887050962986502562449834993538713697090685042036501330119097663014197304246520566505883315012210669114905022056486670734467337262455728569641432898346856714776503857174214629218674876541648932603716242125412589552703482245637693221084314274777205031015924161747363445795366456278135998759805267303210703702405922694240227910615155954964419743596863759884317332123472420688584730640525128469906993087657296117737152221221483246023271868371568597817688977427107663631412969462998767922044820573672726936987826422985946453538085501783959598244249034994923562393470923363937111998920396953840030716782261667291195135656866377627495260137634604372323625382250252925868992806532089314919494854632143558364535735715861289580459247797526860260205843139218701055524120089318003892915344527450702865186743628930766141803983547575602485763106282389025055226581577959727801579278135054976369709572366182569395444644424870207838519155173355207690026388330788186235497654878241131189932450136766477965427131787754755874853135419520467049130006636537719887784983720735031531231469196682052922846082177885420222559991655659562574577605466813513121778882492036440343906126259102080131408261502540623225515557676730150748954125382977555011553103889901001491606573018859627828083196014015635222756284878458952553126219092005295655416768112376659469500282845404109824195703195240370136955994384186207936554224899421763457594046422340713851206656399866483006527579155024156437279854597438455437846100078805702310561934444320711719711892989679980921271984764736978673836206173120241582378983712845840314510221506217478424849234734426609983080260606916559510223287941768908911439522998317130265687754810873266535347763534035206139043179635076047216679844841582253532560966429968119285944433535754759545211289465953618349411889250062637931827206188994871602158512126464389497801356688545246191391908428107057296400442177947814957094697015657269497895139524770001646742750070204872840761496611779726581457532427952906153192679778205227125184014598088273891201974572248127260496475812749032938490191610758181332480926070040529243940364098780370310287750929058793158693360508133889517760659592091951135009538730092486134803487559106515639949853136952287608526508464584101364887158952173659812806539206335464386213355539775951800694414920444097727725234703687672261509760369623521573092471804280408232783029223434706519732376996844588672151415675707841668191331559332220240507601955632235503772031900360430981163784226087092147314769893835754530459655693433069497562256051249524459449912232999975028889459373867729839298522150501019000997358413883661281433858681471300744743388789839355457937472094241480514058998538004177525012668550871964823989599618209069848576305499624734940544097442187492573313699259956755418176106351614592616113910420479539284409182475641613799248816343923998020092442487201206424468439493739494044915553539150561604257365220683622005664289815393888562639393346548497783956923475485623993342716226225311318221164170394114714965041509617927773960950980666802079532571135745980327088146299277860964960251352777014077578350270084761762231109568025893477931162318729533082363936540269202471008027017683059495581444685435325800576333817167255008581977054021129811253956112152363324919747900908739431127433125298151976580603422847163343869282111402843651677793266241029179121495159987966677466878644351283891815388755457860999678562393140468677191152564737549717487051394149420827948450198351531398669941939615566600243276975029469355980195443959174683343241301614703194154435789478120323517024128341187966943690116090191851173750905498331946098205062012332944050396926716956254298737846917283411192406669210193392940639482189937538062955754448779243688255146029708532984486688130327601476054369203850407553320954637511091696114040923871217121557854222560497641998082547953653013628306188339006745851689343006632097547065673901978024045590388185215579113577140619694618606352666262281503316863170573196974843954550192571159518191140234775524178954110906500280382673158868509645566710091384901140023461333334838965759324935225641091674492941010716940824465130295919092936549993544877257997730315998891857011488520611624433469648373748450607366882790406948489742294123268113323223593739302553613624067612389413822647533765039194966903608426448101173619778435553180496648482347742081542271460799693113727548919239650800628768364108649673577664087669001081908628271651094591590468254750425062750320327885256530395626374515372923534842877463156928380095976074941860731872119462939589557842473539843682718532794082857308464811563443982751345630331144480722976213765932833294903316771473771602552284272647917741410905958078767921279376064769273869907422708054964918804666807555186541660231594388497573890300404710227960604758719888639004768083794567625710701160990991878944096807986220240597722326844298140479355001493987311909906575302614983788592843622854196859208874243718636897174705851443419896013586534743337480431242456622535401233192628365971095876256429763921981970894226075800804104115446961245889286492075654907040849924677975783538146716738420744871554869783413156812091791430206183720627265369478637605394184503913974888326270940769598168064282370752496720626610795860749778668348168939811239761843758126601533920140659286730342509917886312412104898719695201189858203300410077378327697273083391465881348538995140733741643531021011596803464574179092894993930004754846995393039627921501123553686659550071105040513427813034942287010726476335772779971533066134588093185436100740734660254496870701173489875038033344437663805670459636296935237316056143810921583018021319165049062938640210250330424010015579694784805660444299947395466383810986630733937131407666979273585448839681768582829639117936734974711055370197499027380524294215985880640986173118905449040533795626170236285255641798641087648525865181454255776755284089105636516484549457310186593255937989615326217749391404416693685607776765142938329988669583593113934959448307872054451254944188429189312087140894592749777226752672718806534876167934440572691474194330453807372268348476476440625556309538934188987473807110198528995478890853708388719081146180598760575278667052023754741280307970401781143269079404946749305375573474482817704051140794257287332004144685231344778272881186836171491128416784135804047081307876000258475329036436691602580265760766801486747830149438706424663506293822645826842930450467272544224431815136908753432232715635423096549125753509980117370651984203366744546306416995064283233278844210030251577922363752045677285670071286509887810854252376008085140174204609268323289569654335021291689866466238091799274952986481283796336204723135770560787392465042589398499518096438263161336067961840570405292041472272078824271011088532715069816805068117341070475919539782464073513916599689307695800165502802714544396527685138094762936459559601001738896194166407315135770982092418943403771814445489871021606489849774920805434500455497065540283210544689388322815493080620596933950770662129853061174718873702199457086724445521899144039188017000275540979482862929353408704795348405652118117844659837751233770097497639668390234423334538867490240440561478491444770810153099681197495794833680436901559328537527445492412456119721973747996986683765492111130288632628092613025236935855212054232552258850143999084169191292777594729967310316684625797816497140306065396165554259135438540599550697267205275944278274230450962099195907206471074925347190651309893086942606748655539710246800474898361080050189064073658058559320939862405883497254475596761890306773639437358153820889861651521163072292901821736733871920422813899293539970402922099378108907928829832420521257797430368782773955703633533333858513432389330067287180540108650459693104348680291789965714917786183291358953360915111237343530028679124722890726860098853368413473150796730773975447187787884937115475050989478327744420309894960726289718799258937129959512653959253517340016340518635057850289191156885659397090349452623452300918224350566404369814492276846256063418211004810306442664689864983206835410886432948960972148022649480035170476783810948444753306491190710406330189052460761532638573152382254360912415582587586870066352640889151643697295431513642792711302463443627203322962240808713669285032671930528187698434814720270016266977783972801092752734625164034961184715579067424735662114296047759927269733358299856057551963927685128945094325368602204307905458528394237280023228562277894061257056153952245863757082141165784159318570193538514351005675127455759697387519412196834751746102459738295474338885942020053032972792040433896040910145736069262606883332208707550002006620637604422238901091987125201195986760002343388887264787102466949678490097818834316838967936414577370219820334832519668002401140455420500674941531868443870369145391986413138744011819195596274732730324778508931199529657459424472266102079410720088754166639757673382276978003219897562772595494424803591398160926322602233630345507851609169892782518821613547585161491276124211178001019106541468690798901268557396861643244015867359940862308173961397558598594247218155122198388901215451774595129738891017672757580231724249728955617999906599320570827596538670900937692992753409816563144612256024342464373875422996307183384404021416667853683638671319712787419954872577625803010637190525024788323733897917044281235658943258100653894248519435732290099211288714959826547767076188888233435077182058657499007344790782218965905113621947677267989787806503082150926180101338827827106883129442542564303701255013494855133937161796546786429636830391676970611477725548984902048758122012664663171214161195989364860565361849894784032595012985433991450628588572070116600379389390507849111548306550965375086627586939962838428315296342587437443743813974938219505053620432909924771249202934163210370660983048901184671654170083097944421669169002899590985213527551707977274936940982703867915813646639843750675012505946426737038337273754630205226864121761850561100405531383128114831131403782612997228486569154323923444295695422179923231315072442003800859662606121623446554963503895286244827493477465353674257572972703792245255970423043046730592768125913136625242133148355207143655472469463396248087939333389491604569788815244464548606876936136744348184639445920003907298047950357541077769052715794572403265555094346051253126663812971195954030805079668595800520745382510196290094700824186042158240727969451734098757581412815029226253787504257802654330386422062093915656996466474074091535323881402467250344334207874074641194011611003264241977359466849912524862592272446896270828640996833717640054897897238930170964450043706841954285811548635693663440318128770728883088246111257323986373684103361454840160585772024565604887073589692791812170217656041584046719399436270002173787373174417767863799622949144471582097602323860579105064998846449978352517774632766875398365522319803403339127739746985904747288330044150769611367141163323757763303259007034681071305063697013091701697363618748768713171159253996307606537012398782170081073842192084206141357557938852124475388525660380860087700075773841481721272389231240662718041128584422560109278776777283132096425008007037864942762227180379211833319767441356460146373790424189900348271161953123284645666381864840703227996185142414691337913431620116528160095314827310472456474195789530368385806178549650388255230266180530841664688703579277751150115747628650005271121752892556200512945220016641746196583846819206949779517169763616589223247156723037263482275514365241364907077112608957741705118858219548474501823515423013420608758160895502371866718069818835254153371772957819491778844077662963990577256753377657582517784238630573812556322729324612887282830917060050638547246245807326755337589934320138199474057784683151190129835259292588676093059860218405948695870475919734822867993527310334734704097433403584380237034220216897667985938110107028704475789277846890705988438773819815687408303259647835428369823578570978214597998916703816215990756627884505884116368408797544249262197334997927995022489253906893060238354951971024681346512013663878987456506996248641527835122560985358443886266806962248325633622897127795305959472690476808323014234087640435107649211392385220165192067423600633466866849542672226713842031089234355924329377086563575355261866382382833026594196616577341764318198093800762177293833288060828152305627457481446902861284209964108808619713841072911373176047682016067512426435005415786173337726478419256658426168528436999581125721882979866474974213314992802356170443940689940529151715702444084932289957234162283077916956476806401813960640497118503252113201337265593053156623870876715317083657442747787312389122170574604355148983344694191847467729984183069927347770809397134656313989857395330109734487963583942181856574549111214528903608312130437716124005954219063658548645179461062670927515609441004948013192969709193047864264804436872852610003528339390898261297539748314286687787272514745701598189486255964443392545341962680050552054533017437581766562760793580702721332542543356790069006694629239082134343890599005659394692791894620081787975830574339258613852014973106168709861519339114056314527249164673218811104748059515004448961529379939348823853368619757645306447398033588659079974670006264846052560406275114892820660368532858867590501047976368447467192508935323452925951674596143079386320758240187240655982632075531419589003889080825086443210691771442700503702521819290075503749769313349778128306503732654648196157140622759756232249977011189103185257327440233673789802802233230805670641237069072441450102390519044975743041957822501400560660232236951480970464034005693667031078821198251372789704526410048205968064840009448003952097409733463998942822221327492709986314818362014607147134110385522746436777532399422039215257153637184211956602346906455494908797505829186070286516295022145913060439310076410377130299050038224197627458241986561937327108419102078667715861346681987628387564111967811068432517415772597544834307627319582028433328376703599208036548099202714048986171679595490866209003489641207098314627792347085142427843054382069054192288233788540991583451249897727228883391913843917366092817143944730912817615987287729679243390142865847429159788292358649861597646909100770989237109314954758543920231415599186321470971321547705936501237122446445502749720917559494824093405469163120792985590140722249524953157705753088950889662869292819685535428240702390132455071640635084666327229117821099934370840015050726534471280148299975582437883711006537079687452073911212071428927458513182829119286624730702877665532697167094018085604411966580580286393959566747393712847469163259481120660361115213352294017373540865499010665638338226255521082948519874869808279470597160099392795520719455402574579460727753540001747784313781362790923467891988377188058963163250867481293558733599975711609863020754625127284497988859030956663523057014825422901516997740075727898711402527121141775404145767944853293918127197337303140334790750078049399481686674432089375126898457315657826996747355210239786851446962243317301394209693492916103270525791932394426511722812270451605000485967123404005288347423444370518429423204771018957872880043995738036336724533930352753135839703936495746194778950978618000771360420601517218858013810150772163073634222360814716589848856587720989521932405565709374221850265066157536716397870628773527010924008066526825422531081967548121035125257855555151212182613754789145578362401076587682383648966906701851973207339472456656707756866642708031130799951575405666532867474659310955062953438503278170593072682115461669923578469666432492453514102118334364542289934730802693097903672367893515420448206365238403169016435456220694286842290141185064516178517663529366395980405715614187938070414838545036872812385628955842537360160236989829893930929455749341378626944407642403922736002670124198866781338003739189415199468699290159391757897646482738459468992748880217520182981820149735037030116862743881810049843622870447571499593339333822881063181676964410993238150335398868647551407505383483770946077758940973811980921350233497573294748154196236282228079132583146003773467226537730814830587674142968026476079211415381854276496308005976349760386972579336437540379741093147485005695288424388617358754883863396027937314265934544828190174974586349748729490474766431932626135587043054401370444736155094540592153161591279101490622297184995048560787931708257253351194386516439398390536171260158157967737149023955762833374453218295684909958208408635427975170227741779067373602375833419515514453889163014561904162323245627573587359245449974229132819638798551416127469823239539518304875093977088111045351875532364003126678943316599159991611698927724099743283663549429379911191553358662725680409985386800742703528000423583710178195893521646656560257976891310670573097234338935334357896788516750602348393691717242694359760087073748422113347436048902628688196670318814230839142233015643659642684761353261455804432986233905435050671671914303864780450593655236895939262072565996550261081889235562234436446373855025435195782834485444151348877105861487981816344783176590873919023059951482170263834584407089607761539966912830281681041778225581526866980520542188649882718691068730253279519755266495663730176619944816499614594541912830488975444521121586842346554917612718058630402955798096418186313004212426937087929008467246891734171535893352018790137248069096781854543901002921260075943563840406862732072746229163586219235142395905823634052483791953847705379475663578884042306624942621543728282866624084070640414126095965569091005446611908072074976518935431298158502500208837950554432391622233976212494427104029709326626937862289972042029720266714243449207182243962533442912921479241243821119766543640108738894895748599131531625731802123129834094459092172276416809696550560723711423166988745052325449602481394708305359937793606405413134416384358263298966413449050513888883731115245924426901062720142001344354240611906359685889778133882483975538963446977325646809119485974687718107498595332099923557682708357918164037404929368619611209835927242506831692144321257853822699033092190444788160307255469178690256102503095452739540689390481534765978580851960178066401100647025005758833837117934256481224701773714494711861171256979083707061572175052964409752295276109012270506753692795083469927874717801274302617081319153155088918642973776435852451842609657229874687763691867065274977094618292896456537624402585249767416949667257231229626363027771574891480211566000849655730672796392393297856541037648264795741567028213105309988244887177401240134828285308458016313457702440964009140082421803494430281808742057498525020341911028952740708780389999729430402222055612081858110259205254709402256861073628705296100896331898273394370139323566884827711721584270356708061606812779911080453135958394224542774359650651033798394330572369155323878969435700042115630987458981447533685730379209469850857698795302858384969464220044032663844038379440060371164676291620359629334020890005997138327004732425861494054433631227960745676913793087636356341110326092876861396966952287853252492780272544000300854541879375528987865056877752569805733533006431724906354069652941774285003694246932894198128083584468723785213318721683606249990328534984321846394702217044619354747572223883583596713305321885966638473351117103860669817983641399317787055117239080700142264610590692583214270004701567007458148638893776990432619858655578380685609651003488388908954242330244764186735000501437281519608235030406011462818761600164241753374096148747877870311148630228408725512688186777962176163356165447360336498566266412010071830670189438801585994742143084859882796225885021372745288460225603480170128705075977934851113269164189598164955590123765630275366878748865174738641588672599796870046646596345525296388028947101639725009184336533543350548165191571886009567898664446833320476442147655171343028929720631429636644112303444581175994808181776248449162695577225802874505363893077813711020382960390186105112373617932700478170631068401362896979773837554371406189136004957899389652877490201728173263631741062940033742061164730082633685292748030416219319223237273954644311950286496827740135592959968950398369122424269820224050087351922045448798523275862977273427507131132219234665024899404877567250825291014140214058010490365234776723293121635310580793944681338797772051959457071826608022313417626841592648609140531020472691616136245979850307468575473303461536842942495379773077938397064352932752104941578214541007988415357458461415322200784548127058826561880691029795877070215267162059424210302163232316925381305857160262084130867834985733891563871718466965365946930167567258069804951534455782477290473765651283979549311394105852088285738551971112193469560635027921072155265819047793037197922666318487807488652776278804366495833554497699537269483286354728326127772364725473258192073939950073599952655845951288350354384281522723440337382986122618543932517948065654231749850444430274995712299046970199264352167346462671605314337854805518784282598106225754879196475695877527512917706770978026540935475734608428204914549073226596828593040717686464208228873371977815406487708009223451415015994675755916687647695401734152716270173916762875008102428237068344610039375790228786652615130661790380729410632240982480596741653949106721767586875771468514640993566572593972848196029116467451260926649194265801337173878682308447122490309257529210180662382934975257205863322034679180099937669346361180483136766594715990643397181523244096997584386309954563702982909953077310133852975537078078413959064856964563241203169567184674388464148647001403215712367669572238249942410395119478053382904131970659952700898736733749894287235955667310155890587209034755079288355873551243986932672861772629876694164452516352144220522033436732695213725295557585966439764658873324925036544102906863602831659820094323428731898161583360770560541172466914780888221540003799046834403327937537518515327943511920731887542456944013055968314169017591798176680736187463926968099958087569328092780521696031284822273618024729401962417220676630009282057135565954146267287972789303476018390978521557354442375886202811433137259942649377764201187408625460138602111084092934982766085401403826833728508059496428709828335829644809902002759403806127082593386135095627079975168989291750674663944025528168487118583955426887185195503546911076917741138856540996673404479106396568927966375970929073091008497037432227146815403228688055857036629047647593583181356875711332572816434416814588379181370873546494202676141321191687617681505470474406916707706603537942816424920943384816318997943388891745275148048033060422235095524118254568374956934154375634121396111037324504402920445385771173251382826390902399878195971108512119147195971235862841331319884801555851521692586852097614925770715983051218796340909403503927349820020950879929824566811233288407440009821390572032798893296672649389663907508918905986715181403453029299780928870291249474726322360941360113855877733651044140006489512919933244711520313416587884378941796208990131514783064012804455204742979036106981385572445742376610397786437892411155840161945978096204693310053137613634921137753126439748464610427524311759665747198288389175723447705062315387013089290305125198969478948437122934489240985253020360036998510987738195429286144020563999040801834739934825735602115189285305211335371135460003124895490128589487348790139098557808621118549328727167582322120391223653100559271115767276108126090532204750626794304844868078867124471843105813020458100531731233222202781643100300729985296984836823373803672693573613997033643421437718526212395398967352183743089116114019950824753953861420839683426919650171602220814790740444774069005827661012594682319782621176455478802748888814655082054391800804125863613052541495899869449283761100980447613439005712453568111047397959769138180507455536300769473031489176610768006666103722356668551626578440317255415572884097321096138543899811993598797185238970960819438971842913250206494065408436811374993379174355428154793410550409919243042884869318435920212181822816421457691482158714018062585774076732000288191189751038663857945223290848320091367861474236306783436572490469467336086618645957104955022535335501439417228631331228818445116089791450378417948467174370753775114427780299287766067904438002317033797361266954419278933670851160547979275667264563640023549976192181487660452022723888399287450156240363001955401462238693180124784693155162134073582267139092555260196024228344831637025689446413435935975851995062877171579008447492323761041325355151187952627438319694112750736928168293730323513931104226258216214890982279757477910777988602196760045386924951817186753181406109282709166886409127128993883980092743965707746282038654889113423035279831489975948455819660465692988258173146309658017801027136189395462955089146206785983031705486663074012412923437530357275868735949602169769026130967065363699584711422813334078600557010053100621874053971914860760841650772335423656292824915937812595769742482251012127038106039413327597483461005786625503812081216589367751140583223846888998894745018919317223323142266867325420534112080067450846427287969123721989808072888771182441947165999000667497918746950629247584334438614440438284404067993138536296587109113315081962193272078220548272184608181314858542247083533452850178014655526141667089413144823891320833363476623602166774044920573626283285938826942126448204081447529200721503596564667061800294119147361121645337521195380821570247228527756557688137899836191872317118830745603827292746702952923134590058055409451583240165374657803418549870104133493080970890615829945030920733948282635221917402845600183941748495145624726077731534426801709400163216874367602469597174667729577408358927905812556287075003545184603012509599872263286226295484858199332219191194788267988395781272197927534007178555553778438922843349035050811146218406559981634682962779958011046370355759236268591210833817474300175149567580372529462624694492888456561375761212528751366146148706924322557493564300255373688916313493542440821976690968897437658936836607645037966845605851396741412990921214138726094653852920939566436466805343467053892807631652979685233503436319809004974239085029798006467447262736494648034595665566294702054139785203892599740750539660351619163188689264403770833348131969303408560502190074831460133290589531519762890626594997115401560809846365780334437711151694297060134573489199222650613375091060951663601903571736613757298756194968758333900665100960241919523222562802211114265967183842799016506517680801778663324033035598429383443624987808427121971199852254111306597772646881907264884020756490414746218392316994401768969126249004397744855388133411109071417375290246166277042904731071435580910653593463881891725296657171254975232473418280461586751835477892001765502561790270826827237738128781272502594406901494528857446498128398441361263032666979356141367644243515135246024103284592821646526576630203084413957089819457185361356931045630947330083173877468094120185136938188529782677586426006469184421856649803957358357196658558646080732459750940644879734643655682923389981491390961414524203657079114810546733374770313174228526208262352833151568738415584757555496785657907459994874416988971674391384663483654512764923233263374705284080046723069510027721266537375820545029192773220234765415841808067396013928048251482102662083574377332958104700861885266599654917366280144800478123158586400354598573416003992101409317150192975770675499459982200211873668131150859258624125257031946408919054927805966950834943641659799694274884554227808530015739454143973492963655640637596933006934691446822948670687958077895892085517956182866750154443731529830506567027600654472134628383927832351499094180010567797226435559090401985957564002638327404762866795585761521897132677320626694359230226593139787852285060988288776852944511322229260126989272240625245267046020553182848747242463800898375127834832670559599276292499235111286084969029176951953421878680394344472095527605736364919991048798970700595172880583878342333683166886730940555445909535607554168159897296048186396851081790574395498744753743184642663269278811687025587187833185524180245646140484849030125635951781006371699180876912905370899978735500011826384858302430137892016049499439784687806514180315287086908949644648290495159589203587852514190489757823589610648323527490358576078102600047995643613197583110628220817536364581378410270015022061402869819383078419099933007478117344645132865491416967632348114002671275580566926257078861537883680686983574237859115631288102084506710864840053453104880642231709466587393865988501774623490737422722788989589054214793459253605031204336295886114744660528052728529533771314672690025292707837412009639848958578761894049828736783222065277110944396101428400360673044098163696788451254958446659110515555515051863371341958882613130068175271578956072072641370381506374165732274826086605981626582517689408773771734805292499293485037682639789228932530449626601272762581407733332895061183677227679682121879967595206167828737051849455980567694106686364432497637692394948367274744117432588105238010215944064672898286606776549606979016844398318382107919749520212765207572667156152163003817031958425289167424447077489883017741076923615448140584549045677161301397005183125977047066076807320246713443065072772867749675888356132871186685346533846656037829840250721415395449925222902910997656651100282187533062649199521954457406690647984062572893124872741710134889558482929609917060671721349584862495531506123855652087736001708244040633096658958935104358374832616140250116362109003293992940082483978014431296920064055247317306822102175892043345734692703304940816288793161170331999113716281677101908054545888314881892309170901982677270472626016782539074545228995853329448439298337641686846306481863558584212964767433797830255803409467925675574883819237829970665177522048894522593080101770530946132985433001488267502697105068899257998820251329493548477604417568380091195860549360687958256770386695676890311192981320226026525301913641780505271703596871254275373140367987568177421187751441671823289389654595238066494357729690140920325888408788044582064143096981182710524064912929613485074850715427921794094720157975121979366391229642472071727812823073655613091155363560037793751460238809179111728750343856742143525361799913110509274449959877443814719087709282044421030888281474062167171795110688561039341500238604158203444828204761357554296999413361914014456467604494479941807550281748670335629209688866790166004252258908524906591016908035807376411374944758115005865878971219788490068981083461809824284899529784692127293912418608575445572367247476078407211610219330449742143522527228863715894160951091829877429882897880251938879815238131834540768182203514430949160789484248309686200601295474332047200441520992302685493661880459730197125177480647990457753810914047290911534215388388313001568481374653175370141364908535390050407666698930074866123299173262887031764431582146889130170658994731801385281191510820767300050257449459863183896168045119223342373409974627340195251557593967099190268016402489207562538277930803104812967733560597341805324570225238594500813914981169829171346375908963470496824723733742093350751666679888216616486961276792050329820424299255884333591964788975841803064634123133459267245923611100086211092614363909756324271917500180470448349640594079404150376901545615590965378785444353412151129019630391190326545063949961345321082537012606530217101499772634590212559106701796045855322994294202158448561042402351343722374531319788770731127024781707986957202176111359671363871736992256564457532667333669069867363072323607713443940546545681870507924799560856763828697362628175259874106173946857450237968417477692855582786460223758895786987926084305804546191454684750265246648739285000033407156870199188815693919560951005627068102148648186494891488774899343119657356404027955952916773719650393655817840541921458295331077903301798095518447164196372819394282875717628021618719915017375290493489162552004344376219973770949239258840955110403108062039215671278741401157532615300771709693158380526888032632310556871484782674458987368614068835849163736789585497934404927932871566262523645081436505616476207376563129630223066625150066235919162268392710871657453788623295022569266309130324987788040490872890328508771045988038747645025999701143091424944563797749187592573732024289573714979897389729340455804435958969403520618163782741310639705145504098223557993456530016300261221925411601986566965585602460860488648241773479140082983486871625133262435633908004881034068520057225051542694300110671850696106124313215520785654575026933846463600861419840903502243645382899365337229449257924310350494053695882329867795927373486158271821652660886697661960804172099327352152026388564583573821365101093425988578564169485047608033976405620796892626188913380085461693152379904857542477281157749118320149568844826306259676931030313179744924555255890031675140871494481056672957584463986878324790125066544122625732857684057635025161611620733021224029453731525867923005044001682482520816130612341904672565960149051398047387436862729032658146532661981110009464262208707692814084937830349199873442536381563271166736883429148658663082923223393404153896967563209199883037758230403162152661696483450903214086095190798947081590305297148867011701762957958577912525332482675867352552241758426230430234771680919185325188651642503287008555393448235038851041157003492628132657571989262955568912834299623601341901996387182715681532977571363224763285569726724192661983631611137763314226431634257791993577798543785545596246458355078748631202464054580909509585126561187058819433785939060865447813852501747305821606185460707088041788662951436359700223632370749081082736399120155401147923321399828947154651924887355707406953654906279522749508586789421157725655675526497353383850281883236732991616787611927970939221009269979915551405970776017338279458040142185604766540174506020535056270418123795969019542894595603413067669222946911819734640021377937941496914976762665134156328121297596431748687069474543036169310818516519168883427706665777884613225587262095822985317469183398381120302999107801259397431194708191310568271498081605152663412877215287432991132551488682525115889208535149170658104249590845618830987084410349344034318056360059259447185945023292822683536648320761221877557543522706334063055073420261454072741215178721834198398519506920993159070781474278051891814754597200912471689946583591589874785994269017806096627755490988066613793014735545541852296963237476228397824470609969934209149839230291016560138543283446495773983079947078756669585445880250661251112453051458709614452393771870230478106127408036205454893121765502889356522180620385733606178841098425428573970601475546205581414885553239831479424542378809901798196649656725134278932208856332379932650475067489515319403424353790123627171848481787335037918659143069461625217837338609966267769489007044056790047562761752615138205631563805064941179394499183577826433722795320162046423404146285397279866922613143550722060633285893318266823603532363548184516375372425678960960359268998443663683638001590063230623198410232259827897198049371060999216140098573374959971389381379484327604832012730426601260425114694256038761845319897538699474355461488564538368791406546957726113653325839156031248434370720166730529103499915952041418863896323231691460603442388927495634128144859541819679364763427004214675330938320496500304789616562494629838150787205584683273187926323514661263369713617461200114952001671160790493884632491066543995518892599756638213642495840825574270380380855009474111069219675013552503749044590616514573181240316259861943709021319116284099254093322886099304476258024232262348503941224612705880716672502494603309793025721630773542926465510691649689226500857890441101118500138087701021245158633719103472186847929986330769262640391817122671289782000011056623127161572802088027604305926558120934032174726549637389314565284638929645538244274625830152406721774414408855926204894388642474705400035020277237258074640368820303806995245930529676605850293090984169593517793499405712496029845577102914553305799097364413539419575655250535141749755307382366547817536389239493092207392113041269510713412217755666386044096281087403194336075758659516214001540858313907659784536961667050663987860757153521754957655896424301253318853935790240945060502707843859242214821078932479286225759173309640620649211593892833744222388121371588707827058044893773494768928235420139643935998996778624639278337233557658141584662017870484511326097103551919402260360942491353259304258244673320044374917304931268751094838541830629437007314271964810382585268338509557441019607808415515663442798996908560928656735851938829327760543505138516539006669839130758252594320924608059131018738156152797992261117134317463772710318373667570828478793336638404557284751108973394723534868407119258016691985927927392525604624915349865615722747996854237537755451279491893204972938610082982705442900060401721096017484893305185027942237116659793546248271806449544436367756746800709109984367183938138632066478803071232978031138344506944822976316089172579794158613418444369759574851418439502456005524868099916034979597022962212284129755857415631603135284335450263127755667549993638463847265529027102174315198722027614290231571861183900393510286158266687513573296343134933879455549295849663357582634308989633309370215882951968109996666108298423017598743667999105359529498654027635741618729220518966091311050442759647137239608048012010749278077690746490134064865604057413220530163412591678814586428223254773000638648876355921703421424357823292638600856413277493349826343870102494265323568810108950330550926945433004155324384480134843994676941071200841689633206563663349368904817371380463853057351563561080846322285531247774841976338843489615044583444986684930056487762319953735246237820624710343531065322231851527075236961839404427799748336485541099725330048549509616622858242518785820588490167102120786500468782915452004240053719500923726291979938402519491373687543998487510628191083886295522647261372921234998472091306602176820953458260041900970733107006275839439068637506520612189097271617691673334915454739290048732278635034749380961998732392905932957054891706729450597396992565709316232300204713097804394713798620294344878598576850024553996568933939634214468990009983387708253741476802929405544297856899144775490418141684696986886886109528600258672855065588458083578429257815538774659080905890493833220422231352950426838258415083667452782041833133908984349432840676644261701172740875094155671331512126620741024758106079738531699594184276791008739205256662946625008509230452372843996699573076140271395461951666478506956531795604850415123569238731086101480754137197462305638334255296738598280727299790347925595808024701507840416730775761849494492144566145602548699362250664828030248287254179411654702775029702226431030777294262649385230974922125832789163535569589745026415747003614932758020388925257091013685886013144825115629794283852866896931091634457507326748612146767785167870237342226734869279098581949398639284059043751883694051973596853957947029214010560615226649188664294853485037961242846524440594808794458308428530487468068258046934448653174349189911479083300788012017411290619558127056495386723631623786774295919349882465861894777086994698105707949399099904252188494520443685473146252523689264190270961162729563387955039184800383962011048761837616004758283442798088700309978066380632228681924598747762784482970990185580570716006994058038496229531202629795089422511926122717681241651815062809268294838008121628805998564057295705153639957444921841349781239875092448723910709756199374262866628996482598728461391842883387828995088224981975826186570603851762524009344789674363725769094457969149438986980029159617381335732252217010865133334275500239584276247530084124295938084550342652216766454637215547218756855854211158947776738542896463720842072937971630461842396698313768451112977256459930867420129124745081439119114335963265437999118868910302501560587303814217249434871868761261546060576345870036793387692280877737336034801142048568722295131822503619791660169896526389220622651316691578494232386693490663051169157288192852815694007087059819298823020283136058338659724841047328679810044965563852542981581585820113704851951620833343941330513121317937934012957359307968026192034683451535241402632205158676872517932470626318872896375764377464601885236113710848832735545934039026983581318832787461728618810032727560303835187271588737842254924939286953604570516203411985326986536715578812055334045473573381768850278398274541404882034951169580835572400066224079240858671421032749582452257063924514493769899021752464638400485778839809835108018042476508661940793271016931165470637896381249089796565229270974345848907407109357502207450317920223021886263941788579352829608374852615405049783416815061059703221763364766033711273054780386481255376360188685920866881499974500809517640318085657429399716269620671356479130267250616281244922545711647289544987652648921129016212262443361044740830338313881177894916833018521111038640582391975768590405452343968592482850390710729197784954724843929117535145731874873188397821664464539231037195033771193406995964412691045577375483921363551586701333086187680415036482687882518730473333013065753998292167158640146369156516512689350071990545297219222008717015832561073355537305260138263051251073644465516893558396017602143191097299634362963228108585765913040400233179464394808452123529052085051203280739253899335540957229953616818330466134487747827379759041196931635604610952927797196313914419397281273894607018944563942799117902551994045229051940215362499021520431657366000040935181718668053649742854239406527581987377407583511870613780329071675635422344134003072505729873865614177842697948834351284506256023816643211575219858444068692933958924852187323900900188496210145359131588841904556648210233146023380395755793651546653933654534962407069051000948836052208121829422006824466147109219254342835607057343492851223977909804004138895871733570954030725546348232285817081065371452857184043393716528992462395190048926749892886631065646379125879448412570339545759020115085729766972239936433632680141779264982404363948755744216933616494411800843153476577452233178875084924722699756522334351455032265747858736009242302173219575987621295474913967133656025923063673309361210156593283014052593364144540715871189959090963459551361499573182476858214248302622925510796523525431992170035547545049632706004597823966013987726637824087779654625364302349838148355689189740735754865374835183491958979725200116835562827260470967963937220247768974656762233187159782513801049999194484656707767099099745395246086381190473220414594822751288497935320999251449237996095935129060297746638423201759235440794279878611171943169065339433032878149285120521919221115842220857351452918187243202798697483020612070437234776537257890398054565617831958571085753850264358234710232447727238490633672094843270514599215140516142717017442298913964499244715234739033258195960512233544290265734006548630106239036603311587610110343582908562559477782021502368667370537845106973137046076113724427021089868683566896414280931489792488330560484580469100447571000172464373073133797787347549777791222987371600059046323297696190757631250235486170450514423404606467841223183787202553827054078145962980458744247232486520710302362891294642376784925757525287197789184479247298470537081384603849532521797690362208309187598749383563384381641699521373834635714589712419415926705014383152898929699721884319679701707033799775970345770875642486122589290770586615625727692988431231784574726741082724469644578312550277252683561045234165063560891107856960892410586011998944761932026166197713909071510479892409742090352585030474216467956088419247932366013964322001488936759387666833191998671686146815973446026896900577430496794539459483218620637473225839075319967314336754666296735754920392359193351001256480125248690536033650504687122032272843836098637474452946486894097983182233717031377551696928358616378958666607281929508453472274079413660397965522722741329042192756603047773406238796075168537111191508100607258327447042818090953661234988332633557769750963523150525288634533284254314563054218345718408436511854448215772312771965565013910001753916032923301703523757613066989126620207590038421142777417910721612199968555052290558607149968430892850665500807149569331804893627562598728948505561082846831386783618133018633683384646885821708564890065186423907718713501043916632026006952396116051608562484875065633593026056127761876235958331358097158085725379756778783869998456226095326900638041696813048600539097177165479861205283800608124236353932196408845022293498673582388162427788683954976739830442576847749342959635047523080076746403813153779896676622597514592400866614869660700973182426181088414980526991458908049791356456462187378888784995535811216677238155800234197228925476199822466026142045254188012482800447195986396826083495544128312799355398835897066484903414292702489675309683145827862214567771246411573372997302744058479411307749395247049462917906430301534842950471171760374211077559064955038782282894670427518544509802603484465522031325787359136662950332959157943239551800294324738910902238773761235462297638329877418423542919509451967185277077069816512701831539112838875023607891131185256298475976673935804913336191521161587096197787084618471317081560869284300375860544022946513413490774729646602392412247228813677366942546614051605144293159820734716751278020068662639326271704411531189055187647740787562237148875341157244691908209450424027064125286033725922088112124487049391124059514134591700502650034648838411200175162766354099738931532132186848211001135291463087632974569717013731477042415959200753136582740481427371451000333576086072238009502470234721839433314948434239386287333539863746708133745632177718276217547458998820821559265066189298823187429964738563758138930290214604178026839809338968159085767233371901216037373087496223949617652334205114847256548761178663907861872595443671753264710000235068190254522914042400023617951688302879241221820738401041159720412404309313063374936117695999799319773836796933489264817601054430307851387622032914520476290045330460349276725971814289873587239277115758202577986375365222736315592055947397699261861575973372781633940479398353235085434638741348353544721684913414622586627195212972315691801515891951116030900076478529484531861059250035521047293981795577241829165206206878914497249277753470478703901465173396412032835436648065355029395244595753144470460206154617604339996051130811908667255806649580667245430094048060856660124982957643434350852477118538345978875545697139715674911574072846208391511327172030866281845649460061971570144701170534679292234882887391000723246678231579347200579508617063384904182040889438882184696872845256186866847230121900015021138164925844174658427188507270653074811976105342372203034809313523108317940506310448969861544988688334400729820255594730841395067731610110137171848729389975885497035776167033155852429634551982663761157476377444948559980073581640609195882176400534720513914435914301944106451219500371959938532366663044141351002518129173956881834941101510301200030970021656475924857817166791466338282891622086637629847755782133172313913257738861142871005818198118198372524339609095670936344348222064557399129023102764237426004354941504511101768620443708403881985204324255332358621563183589625338260935995390425560155437046234098173589621028661276537921090779374867672637797365053796917715977310493563353296238355290474902337667124173092028992455592472105875322065782368322817426988349605771273759971442465887050273514938561426464387178673524578789067217068766464501055573780158619288622961337570707173855027949047633022017314349234455135539080991836211747360004415606768501513373173435310611476263651123565617007728368576564505207856505275185302735172955424324718585103082336772886439692900550438136673666076244487917376140748461411091788366026014607788608607303880761209103150927175881944747223350281451497864148668108991151588456591790964192605304707907951907332473132017695799428529398000292430406242925941082253778878382045579696237238224544583473737643273991411948945506625032010247971166579174574605228548397341555329690793017241203727611995284252433867660956402808276855669026843066637426080555832240571544243475250949601626481325214869662691647611869241469454340923829288086082278883539024242569384301010022244423174825036974840583312093644587987223297720766981575789498228203485324435437275985489686341870599196571950710698789382314498001340008784103927913795546700368890877666059472837014287508084137951676338218217660391004747461551662898129316660891520695573844088845084872413868899418791019256269605923077659375858686916755749376020872486558671796414908836792812208738022923565616593608812867077127948977137318546853769355197867018668920568419842120335512942959375165072928969332680177936434049334735165053976161899781755692295758903111566403255791479307963072994043860945503694184969271200724451273510579309316062226015772464805823421929004985044945669487444522448429837914421994988425908123672558595956058164556079030929792397365581922618953141373822950343439936488682808714994034374621394983637748687630057590649797152488258983243589743713991858231258752231600230527353698070016799250816378271041475209667455304908953251742633218004148319021893053277970970623247344030067417180875314428910771305570555287897998597032515710676919242578052526056971981200919248544091816213312248872343880510187575397433590262454388108061717303854767060607190108794012434203898437564072911049151422985965736341107619936318823658794651490954136202234967776606679315437904197606717277079999214543467076759122254736848439691074757595049049674122080767967098474537822190501384330934949988168036146255045154556513421748586913048511302195772508919782921444158402244117790434027020393387689226516345869355566350672580993675955966339826724121274735375935182312561690033299370895665345518263441630713028183439912051952711882342610148340508641860043451941559440168462317637279709925426599108137842868180005169377535203960596356563473511741107168996013971656776561527616475368479435644808947689151212519127834471644960640364101135022785171913301812425541396107427910745287135735321677867117572705560582460165672834126799982048709849906881697303223260179678557035661439585828278863710631728303462277451261766961512514160453991405687063292680737064976113089618425067109921991013956356293603443945799469427889070022228973447574987597326850610425314351979951882739892057983356849699359166937136693008772647663829640275129173973652567450047843018957979781755610316858164007753048094367626336786595437994698375859038435732021561539889323010547326790574748898278232095116266970582528808341289258180968233739539863042838834363806496347501439584090976531811325605704659686518481831037969960839121981929864457649008725778589961452534271039446230269657581521150729019046300473926739957390097150483949198167530532689197155827873230351165146501223072995400698308879380203681443835454221125691144010328632748136885896268751564235620867028040757728326732482231781507064018127593844496078969466334183498717281859673018105123345408345009837679611177267498440317029968790583422338828238131776593219755176491461646172158773653841220176326249293239076931456101717970809346721516111435274910567722347859376300862693985907148821385149691072027633897645235297001762841213572052456001176859463315605345871085343917774236242973619220896175307575445024424603341616244150107213292890623375730390984941001365467635294356724126752699770852441756418529728185474141495175326829099786239761822019074343425712284365169565955646263803459701274623506588474877524016752846727492888118327020201152006592431292864031580116782425295943307565754509495519199943239213638037043366362131109961533711454095523616310504424043329154449345040122181896940091525017985289394708124557397275908119966840778556729933312182401645800853237691825723436290064836369359754792936571645662757900464691470035491065538290274508317829765659416520586506715782458941469111906376128866857580456356022201612900542619220948819504653251369994702111471228746685012927241165536481169924407331363863203756073003308023338719818863287918949668685137261092496698325251157165929672731218252562039276470096397826141735322653715086376788451519778565228116721093737082975630640412623315680185989710028350440755969412340087643449312050576078729982098425335748881084997379767104430988751663969833800727758499366056793920903398468154194472002166763507414510223152542075628363724712896512867284065347005943633400548890006816213920524120731349638232646178190397422157923187547180832985216826669637841845356322072070005958084129774849762967350863095726240015317416461734740514740179786366834798928793902046079286778319728172824145171908745570143087319249819349126790168201826892753563453665433386092467139911742321889325818982502798626029863257832993451500374795171675079793774881614446543855799980915419838885956076660828288704883218579146377669750166931041680562941656540203177346587432042405632559039780521631155672529302575232712853750386437202311626710487264781864069591417591725519323146824928601664370806978803083459201961805990791690068590046441947439384920958426278791306451457607173477997986970129091361590539133606788878118437101857733982028148879087415271819716959447189420258320449116529628485721120532533376464688097208633157320452775930524359478092959396079773245164028987367662394836097219817481685039623917845853762857768262830561021464726690512021829103720436756921344898284998165974285447467818518887661625027612543716430874305881278532645230155277369074834325214031448461168861302247621816265304977908599765746323740103203797959768295387061119701189629467924591793131011879853293761564230005827916543762915356814662390396432864943604961786913187714650054484109337336491834251363517598943430124155155249550478103548059244306665991577577776094453249702246509870668881601725073414285248867401549968080774891107032600588793549998701340294931163067587531711550468742681494788804561441677341292671494549248030155210203369124643380371443472290011603841674233366148249470123163477364549711481335739062798306660844014397025909421190708105097581609644066854066077546799492584803624842294302489568796265359655579079514251217353405016556635254638780178102483360430988336832988338414373307098301585764082880922660387482836723178883623857165647422196111632605576993899308053205634479482750110123445707247673717149677097688175199185363284844154118532819849711057405169339485023989279676359252422927367526206881426766569707224890870368823764706217351139470849921097640394117396265957470466934996586786850091234407773600684092204592305902031456677575487711197030417773084130122146811335728809376576185102204108670696954253619366481329452059454640298390439894182826198413091785213538758562244868585520512802956860916057174204386015514778470018613757114565046114064350669695835255151892651701483324085091335724699286670162970874144137170503370269188865072703500214167167821540658182309262334195340235746453947517734826532305511086881065039934798890421095248085472835502558125236191382012433075128007060653564309130641201109910975828920982264433084381038214780309104388731588397315488856720185397969525982127773610359885200286314909966842288624604966315821769868383788503042593644546850886486592684987287990524519990800057240403522017276436202396763568023727017770136897969308331342820906003894838781685090226463528189950108947648414248698796548166240847518249909993827879095083664999726654202825540560141085160497225138780859579956260547182670060685944649856662598742787949026076110131048233224894647159510265306115676011802957042266566572700626046583240716500622605554527317375849202442624071393633635879688557343135589223763705097527164294750101568023482928287446358426010430589075558815912458727778610051524430338874394431800932655311428613294510934085962237691046746299100170035194251906811828142996061418560542522747605722910679132658367447716336924117049143896862295399595951624941394330871918806436830774729535465243646948602286595386760663285263186015115834241795222841254322150228940703138796428234000605416035497420921355650163993746987124573322422506256029547107798518301381286104528219749620101680124637494166381166632043192282466576590264932301944242171856748569938233245330165679797948760426840326698008167423347866262666742819461434284065199900109916425622996103779732117629324539233875498491200704205638613224283301677793674577130292104213370283259176859595033200467659513024831349105011751762092542598221367705789402473250664850475579518940846749954378124225244643500589297011791812198606027988067053293192830666255418375945185548425852977282380263840495064220182020863536655092965278640797060924512817333559030905386001533429844975137190495371748514864448830973910791432662671546660982698997635468324583242052829438474890401194666387017168718749230447434162610706124815214857528781005892135595487844822046553131112237013359185849860037108617381482175190289479485420804142104591647544063942886825507805056031619782671500089946752673361834780259478601745915478925718521793256359128494964511035455672010544990685852793092195681942844774603640284897061162798899193722621619116637024069107900087541967140880748922791307470615495026095094765494870120778383660534664997620651638006100614541665472857742576546922504936593679664062900293507046030517433242403186764047829464469767453558824787801502139183984268981682385336108206518631033205234671889909065041680167255301326810701783683201529456191787952545525652165259142737872807484762701316833285735010121310226081078606779412089694412191032766337438047265447360523191113930423020811256605046064113861694300463248873849846199807447729978423098939502266742808090105762420682659595369032729255086214739524224792327841045943150746249851373452309686478422150023400932789559009126890990361748026258751819035909290929629697421353635577775844603488486126009613320562742415932980428796534695758069893148834251175056949438085527236477823738239557607336734091762671539727840453568319818226920115966714690181445772040707435410681500869090938484708102177236555840198664039852176616653740647907942869329011234459471397385487768733553042510199391410628318540352694721562607024848447706637739195796166920374840305504942440228106234418133315121608682667023218194477654727365173188042128590325168576856825708290451807923908610986303270992461656017870560879434297475781655723658760050630669234364582276832956467985010639103606864499078233832224147930255651342209735160258622281133512364979668372985143507524631620685233667187384949668066037105598204973102280480242982535064899185480106340961368094904059074169640830386321645508413653934349088576624656131432350114857240922407199092274428447769443281693981650770269431086881281985592609231668891275027007182176711885652754515438232326853883233064014063034495173665012225394391635630858890150854293935154543533375514527088679078396356224300566957236875886508232845258968628076191684853246325956823774962186699220362662314312068013044715855349493993190020755275365891569661357713887041029414582284211275126356661574910954943755347805228758825383626166390537616648115169410084214557674366801211660190713727868080247150267295164421705023760643298919886606770257227211188390545876784507844454936460738597532492361504647944393632627509157521752875940243246086154396955235686558433477745629049409958449802065448152586042944386572004509318874185486431967949731338377194630008406533912887911266987021450568885370912445999488220672655755905256655690685952684110988425507079715840095002826733369204666930660562672938514338007878894184005834934420960572674274144502222672729546822978888868247032167205034926487364619805815646716264832110633375693028359764868007529295488031181589580755198747680053114758389055383144994186348569199583047514965907595226102935192423138041207760603608639052074593564047546880174036223811045936540394648948253386648307523517238945958759825833682725679513694329527179337440610017383886480406817818357692512919871665068009277744068703859899752424871153112317860847422280404309942844621748483262167350810611013025321799768630343056643003131495577886505101679796926904416327828872795137544123742514566882126645855230589140634707352077196482029591378634900148780903883193749544678175695284631590733127598278272598846329764985118200568428098285252723638564961808765251714100837043828318033080876465850804544505627863649213961704184808453478070771754607889872870108498484897480016299798582247361363728747381071778706140207130877676772788758239809462830202821450592707414295322132785647059845356053959848046358753444933848651967873782168007963668101174272431167820681072853355741520106886599900025079523140966130574865103112340502207371147177911359160030607630727390647609029992563109218005907534577036808739340615538045053558017568464682192566696204771887384392328626733987955243223596675713365710538909292818694029178544910603990744594767639671647583539111311894486299054217359561031085179885172179969405900214001911673934665303657198418527035635635929363908485954534927278218888317546292805948413520848139003944484053815274511033382165107756214168493109511823531815585368731884406643012149703840204172333292755511377775877542603873041046101891493288427309617470179156916682258606304361410618882198082743591643952337587435899397663016621204534050786416579272716245347845744048618868810882644439413813753161049215519539804955979332775135688887125598985791837150715943925160242143025142425389021001249524377262482417353254629368790408436070411713420883713013609748073716560888121184779408616476521769427902372879692958275402311308841771278820963786866505730348342404345217164968049022752641176731403992112074667373732662476913117557715548569609498259814144471942607901603532413020704223073112153912100371268061725704463733953883546512578302187664513061593478115938936751277375843882582674627863124082542751969523259670821637782241075338531932571987318078667345323968401658542863899646290142325893839275902002536087273786030837103449855525946716634839414873726061277739612291714716328890028236973811102749644838473775622682938374681660819550066083747268438074231688344399605883138557432847763823116272553057059062793901500627016502186872161800549322951200004412084795489811727317238798186103243538221634276523217094025836144025715523882924160914384263592592183407957560750632149187706990209358349420687151390870005574717856241598036870276020559721251810479908331207980283226234262553745836731870054378183080919239884328918269900387223082509812678877533102926463092759780473871034581535076904721671916594983294159574164449012112186826350694964105016609178978492220460919993315176218342745013137688647142040168171154419001664819290675337768845151179640943505044433045658062519897023166750972407397809190445321880010431103463626748006135666324846161790182375457895235774467072118171041196680795959075387974351987192340816471568182767453328621462211075321036531638382610589909486874406419336405233470901153489471263854941159475682241866636833119763554462858505166105900885962727490186478965069967404233087168727153298779754156645959080180882584289994790094973649221009737413679695414940942686024736650616312061452851495045691930594520764920684503095030980180107091585785650382391846422160475026045522045099145425984500450123757933819466497497524618903168403869257054094778010828489615294842453004966135114556036589514128019564995364828885167569282358716215612041321818126128018419284374659749797795365901412573048699719435180025209062925758750985641529106254396955345324979709777136641907712196255442964910518102863048557285047595142500620702481782322812792611173631217115852599011580441355157901579154953199765503135067093860908422036404151127742128388928551676695081595930116183507422621631479082280420729202365865565942546536436723228619106494364627314753506684889226773627172221297724284901636673541752721825645606622865623064213177738281820552458350773149983081803869191294038072101066250052595376966022011273417914576080715170811106103590915985608481366497932086518066838807104656091442282097429528387424346446584635056407514951417384074988772212416628560013545994892797658377628713445521079984033904613272383313232146683784095578866478442471107865390075592687409687070461416260814794036971807389341115197891326883598638982029137519673349606238921261267213806997247282614433227847961067017295935492783249516779014641881944691043475759233892491319311210693149286293383739640196343853548925066853317172351426939199726973492599844750196217426843892535555312967647813632172154328006075600340716739080337976902867616414393173181464724827666800107954019838587574953983756620901084823852194465391910319259935303462849713963829224824829237782578375324645060240237852483496800122671521210147119489255823237142591078489788030147359331439780116402030502056159310096835695117810350546937407794979763368025352902465270171962389085712680343426579778612161654792486430821805545075395020119769094667239153358590400939057959345991965521239499560826428328585298991912563001956835130085032663055265940206800968450417809024610007119791286598001371231661625900947933019171227074156412672569167922191818426712360340514606492318189247939322791866132547200058592099706682807378215765666934520496831999690346452726730130414220414049167809969604294225039717506386543523389491751489764460166172227763442243632974139919897567361843708905075864018958455800433653171247129188594774144356440664788294984012963232952750716387284587504852400790949477656658245696806327890677065376576890042778052175230763054885835787305411157511286502311882540559820902034119219776237435739544109686430139339048581667282107799373332767532317795356561378336264330138700911217926606121132783417658595030666800941429360257510426607421455702888832497601862069614268046920163088962818167221694264338878646674361788947119362418822178746638656633995589295273253680697026669889495385406663586767307680800795815180938515990782279478974846468956042261731842510009090575195761462365926046383933025502446750077253710497542471049298099569536209069272745418346191230795380241056674687619666566382990318716128618905032841241348618412325248267128860320451865407607024971651194822440077805526918703996267316304192523557768347123695723911896495297301211956150784255792743028487709166085974132600774921307899408394331999333986875886753987243657689806513276203121483772012834749060684892709617533683265580937705104702817647591811988541334976292907010014684882944512832089130817908899521625460665997084426345252256321643532849962491322723693965261101802658318091284672403958035927544175219318695800558899226940893650842391578723949016452341031897365799596705648851881123537173466128763069034546336821544806990746868933395879379738561315996008791574930656270743415208116203509556489048333108988730815042823031964869824726674317641094393767355497235364296759641728021937149016139593683756764968315637369505402559245583053110221123105998697044425907155058044087973882254370291431875727577370007258050245328426655325611478379925643414172138615123103171728926367977698559056702852579926992868919689428295509090110058539027824256538542973283887964752199612498424943092534030050723227784641503262435065845258953106867691886423199611478561425716939100242386244761342421357871149069899006425504105324303160017213484618818494660211972885006566459673459072380342972052119289451181417624137087774438104072280242738316954055016408813003506083927350981335003688240863091224046159242956749140368020514064627457621457188514963505109588269364072797886797001178938321431020475764338586129403221662282643788268944950741334414505780727705917520495104953150562807822333400628317058396551351034105327453863442426637706480046344870747650718255129903249022383349849530143143507122015167217408518799323546926914708030280828630190010767045629253031163587412745232211329414605383561245871230196289719906638345514496363361238822168243352481376502999132248219030872447230667911938162541974599109246020799608295084702407847293259732886538509673546744548016255061639630992659403979509727074720787105057878248088676701624959989362932433993788993850079908245220710563839439395132946710839012980943649474054894760924880812245643415327540629515360446035828176339916108477580186743510975753060402150175784737179864624246757853560890495404508159318806633597298893460623914748503208474342774015697177820267567213383272889927945593352466274350296056629936696835173130427876738089986526604776599821539272851939192259028374810804167269275710353373334479448268227699188598075612881247693601080367298330276910055206432834977813130678200425357890061042818101541960453350297857598479248743236531745981742137629103645573511682540345710971251292513793967283783370700357890777356974391724071547250570682261543296668854926576122095777108733309435228074246060289932235438773721774024136272286744428696803001808524572261673418261834947574256841657875673628852489010223963057950501495248798876719096871740939930992544496090166282234575242230193685521178997299138367112243316397814058892356973158332545058497016589645498075595307797632889008589696280439863348984042404407221924138486299883726218970264861705360781154885543086657398190978497183162337042401005018641426429777703636858235976980351056149262653360871298104960491170059520650585913966077168538544180137949184908146958113615680993485152937572026969561842221641661747921237927882906310651309617603014270267745611396729292391625339949611295913680082775501423501895301892711232387212803412402575561421512607730707240686801164670231146578011542612612546759154458168260317152110025314590433024521282619070075607839991374125752758532420680958751724825246132090554599349446487084928384004484346800327027108249585832749655890431716721362539093070123974168947733860644490517244329386814597815839718194591700510162113503983246914850028578048045631408326880571287236083460039706239363450979617209664886313543415413189016128306896704614683205615761157067315721168764876497025195733939329238045284993878571977003991967279130798457059827453767667536160798612918374885131207691470841719108751588926576584806869252101830705680838729870255364258173069246466940192128209904762908860453702159859618012049266074321812019174818780604765764636597256258390911155159904188521129644314542263686980688622724041820373480173598381569843896212367902049755611156705647897762132082056534549402114010577049916493986271843417257076278004628819102228896727840898955375753652891341919703370965715058121522070894194747937419337485883718770263063698455344162195464052156774720069725708901583761814911198923337962270424738773516709171699244855712604927612167550246293603671898436507674931818423029637494730204434424291306177717226808468643440845902188260120916510807875715301216767000227903538973225651404282717876225594245285342908354572456088074440524313982300210228526600532015540096636131331289839154671904813252523321578925664179256388865338946443727922745243123519281839319721495798095985003973030449350829749925175830945103001664372830502303680196925147325575469758356093126711613527302151910863503593575400988320959682876632088138987869877506998703123218836883984401113876332367705123320131291763841803035360867648394886917223363325895548154641504389603688007415562383841183586546271274008374442876821481340190529444801331716907781796413707383457346015393005826681958240579123079187136597542971606702596368562104542859741939257914975757651146762731232516953257984832272873609843434787708504004322953766454700219659714578126171185168823948667557260761412404426363918636516020786672149103897309297911392757282577837506270754291862290022610552731142121286310949084949329430519773513566440106085254965540646361983726610715113832399688259338606682266538979291868029400526674371901752197499228326107110114562273585477185265068926796591738066518616103741497837508113117432348883328049196562962029462114938788660795768176381070307197697458376526719316193841125780438670256545084662806749222599115284373357694030474906279468515935061004109876912105071958819210264523935996290505338852924924849381346033845319064688919756876320030199026492349062476219670492275731270259987545007998572090612181616200946019839260552239030195383087022509780040691998958376841481502641234310775374817555688506032155161137656500824986923907473983801588567224397426105817794773644882166462423515436612527346743514692448282403300614858867640962985040332681258211871149415866241993702097894678338241627053731808030003577044713569815341776415709893160364313742945152616040236262823815252736129100663429993576637379947272757895620849333134651519118754387078767427069006094815535775276733294668031557198012336672766854936173341083685498545441586109184524503514403136936962280384909701847026100101228291606151039887094398826584325524074904209933768139470219688005797096865985425681289334156586200056381716402852845290908229846109838494718656860829430394280432311916379912676789588569906013708296212944897901262249855885288649015132306678454787554701597387048832215260936399086792103611582739176717966374970417817701363900262482177678682930809996572052051083494565204781359923480908315649754684402714974331408751257072507507529935959345553517465048063258137758508301972505705969199750643897041783688337695058288391062445996736768969138143214763672246611667929028648680916916332389687882632516130941595986175701241338929890263274452112051371830700693169103541740905941081824482827849418258520707389980743687740235735643576110863888471110480344251327097424386536329288396961814994625163131894544449540827345826415320132856356105502033909575772239465994716678272525413132016379149750658724899993577145931298144862344427726778896243739506836832219176166561941532793264625637593310443672408177626555814626128392602152144307571934995216625541045681590281324370152750062091748218269388931765826741712610842308827598827087723403704230105600615627846728215269310381307693218783022173691349019041143317984095023377750532621661605941046009314943033358406732297861844551137302107637597315891251753539015377983046372260517012588901002071547436509120174632388647471594336806079104486834359716882383655011543314623103959853900535652363114334534909269449022358165820484234480225860620135440331882240060834416682730284026381381353048004044404962514181513936034766530735830328398302022746162455843905588653210458036447352514247241215990392894559559331820792955833685040702014309895814609900217472676758701847720948530172053815857380574673268993836045694587325115799556347250883435159984960533243662294284316900517460681231035087389325739812471643329115543266157503793388152362356249172428895197848937933714360778553989443315787086592311523439663860428800816539378943444818342581081997793053918739369100325173078310702063203146605626915579390534106120284411673558069079876523549477887523849026405824857640636272679108092838215879474396614449064320864238040780517324775015172093479909198729641737858027557900238422316508033898063490147818828634279749203407583038457576503352251484393856356508457489520343583487036494010038703064887361044737118888892790414448506265344506070113297616402198028043110284218158046553401356181690280383746146682764934443232643688968703789328138437081237289756789367292479355281485483911547033584181564612284074378413367679853401265497995351578746274323505114837330942718794344851068132008551936479185021683951250230824852292670891004601783801276218342539698333535453109483064893355987430431459314756884504097375651192400785710952992904248998708448771507372853827066576547825386910750844840580730461385593852772201139820623505892618122714594644772989081467565813281807891653155931867662166213424464477403025310921372146293521463379108888237098927413807084913962580202273669530511560870822932270415382953486698616425327500351849481937928472778451143481361751980853687891339273919340255411432709206662590221740901920261371443944494071168984963145803349392230220072933054634105440696431907496039854499197817167143012635393123081058391297956295294778086533968800048679845974855117311030410759884452428148447629178542774089887229107028218016790196088808373627268742139048244326089401358431070683767482622313571859374393183642801913765630845669881901503204265578283290220847008219123475693694759383933906016186130753670561652137822243310140214646203128442259237085377010585008023102505510479027324797175202666010110171243838085435583783919422910306900153378923859937190607292681706428504462839145004140128951128754340361257920005933751250142329940793689098386320211820341978222088323419778259411345382756722782802268848871743500548003290183310191728442179368136654898432076772272171226901943322959935805423771123589420213183581657684101691980836695690714565373165190450194253448534867972930700081874435560460441345209861534193710478607478372479519267178046732697270848669678211750098755297357750369826485784476553794775603275687454650648278727637385866364841994479029796046327336815483965136877484648855448345768604836720559530571323508962600601413732789095517985258290704358397967746428676846329497876238194099321180512978601884838759864838994972349809999951232316995028851744439029548409847877628570394791213802893282220035842748661571747603457329730107861004765231518624243874331079455126192393511356801522697658248264586471966364033684034654167447776460582799684692139997981253052433736392940513758161030841882753800482158287783392206068111828864701180175558194765979506831782795474579441480542564978128612450539294220096795014706703500391179768022676555051976354489708203351980574079266914305940494661712849496265494137838936223929363279783241050915389241380143132267418330802414969350140078423196991562790215502226599781784801683934012283455292009252604245118003176139972884578720158103645919163886344295433697779906892946750862068641481041012989762275991430843506604743530037795463903451045077767164864053905283418727196076587492399567089174749253320007818487060062771528736676217838165597834594672924162831596049784718017626591283303265997033450235640232959804598095540139252257734282815066594524618159664003564400836330431147179756732453624721987213029100256491586000904219995608506226991167756576361303490458425656147469977383947930887310928008522075390455960157374629032032949123930763355968552326551233244980923206320969907244833762256450340391826343930049644021964589206629162490738561345267298169836209812511066021271563317793023163176604212985064303829824252574523009209371176557238401778964250152154252918619311781453159392539968794574901477318627884731437607993728835969734769532603531186232162123264707369807022774586284842357394887192946370609242520565441886219987724748170152366814868593001003763000171360490885296754914969526893907928971611681375754598322115343418443060957088259443328863737061082059940329745844905528487887383612227547111203161493769182188212751148471063469090740624422397038703540142834019871417626755803471520263852146499836397192613658442768667154234070831682784715430710706104294075055597311062551414134502523594489670517422162131691851513130038870295139311004692611507144801023419148399004778795253225896642069051470492990612812959969157541208978072120733084935381448710714983199989048837176226138437430234125105698689793866000143033253973031252778273954479199772943909383922579492066954775132439966703816178159686712956800623524419853953620056911193873589041193978443326726149721803048861454765672302286719991515673777724699290324849756369670816849467498055081528518283387549666207879038719138187505103372313311743833097391079259987843795001956344573919982376121461210639615883082907885465505947254974406720882708368451169735784069352252036823226842511743314197446622363562340094586783580577058283464604289422323051090658181836931180605417767648171578969372380436899803272970129120626094184809752072835747635930355980513567183977165779870131094222970788087796241825373476760110251399862005734876156443484715805647650870953209842254815522008091146475130295622823349054348726383700201813315192541411082825484500568868605150605718732127084358390654877360499336136553250584617434025964518482008354267098615979596550976239939980857589877238549887131661285509098240489335323366040825426828094899581909880739602274255904269289423606124404132875859988069015947328404302705415527454683158912860030866237087638106158081967952888301677671350361313583700832952385204233881396334009816819910659130996608241496483501229352741780685185081368349348904082856509848996866228066068284912264485993863585626086086056048710786193462120027672407689041215859402698914915072778698341586524983508390358814203875055142496617254840183572841838708161694471366241889419106605212901955039201512190668590343643172880681366899883573210043114788124775167052572592586058829609941058095386376223903254180058428190202444118814163097124106126675543938155415765100368709370947382969189182851346144184101304682507180217098072462092113452336075246085935854058169205857260327576164584088497615640476439034798179301110264469839013382871661619861496419378461345183822818279898998556228376888746895768477935028173416631705847465067302272488229600097408528707180698930092640737225388573378782569402067675573507950202357264078153184187504369756825056176998034856654107761394670470272593403691618510428593234029093482435853605784006720690274892218834057615918800567749214753553025627855210316063224378694813932907902099792132502775006497520674699781638812579147288657649596481730440082342557098677422116066334517304818467652494879935407588160694553047047442604098518420814379245561441938378953681882407179351277720115437588923977434899209713715117406746857090255894729783686267701502034892171262826923505592715010234874071379190443053172910262113752438003202030358444684005333053933817610455280764021707110281740634814378914502746966531861525057766747583059620730885405326208589637338036178186764915629758901360829227632073042375470888907882571262541330497819069930109514059524833913458414015407936954032670139883344591475202771278939393899549722869221649512382066288328081894526149635539752588811301147360011135415297959271679576073083072961661374872391664031740223841313681884513817810891504190906765034038582667533123649126394246633312831806948530178683578301432740988540602593223707515792256372679062360322699115401692556977875773747703059842509033545637653569595132096073357781474671803835405392188187493918782652894464780080240352425639449410101309917427463915863733302367895763739932394976806693767721544409254025191250218033359177752721824492520661145275904393066584021461385364270640878319881024399682193680076321897558292432903603271417130239566346866398617310052890388743579878279250763165122244832370798575447504630830499659440824058057505300257324819942504193737519879896548839726294775663637374647243711444886173101321088574310839649603783311683286124317709194319979500888095401387151502613890486715309993323748662210354155211950139081858345271920468551895105598754296529330900431446838982371779832856075775087733408333555956750968995594297836255674400187297383216409372461455010384882134093756157759647534132241476647363010835301625245670590808541301971961093405166803360021170243348861023777790813819004149361297870709752412429340377728332601526815963681829829962970619080394954102409396040419383836389081226064033775345280755578642569362679213521054771137040167858822207004464246304867365015026547736112541908098246640851877813010858917906332987029016593486030355201821813216982777853170283341627182112807586945997219084701000939093895882949195018004856349636024835482839559651291396359480645861708654516138497179490315843736892261213878631971211228743941435938599439110286667217699574360335449360588399770391825433997614711872807493632743075349272086344585934900231822479629338078646268207483426835395625596588521082808770117526373423588351283096036220338230046867022420346929471849426866967850275940748488292622025248538122903632415392010055771200914345702412609012648161101785779514063383748686258074200591485179280772472118196953978948546085115751812520515817152832808003556907143771981859000787481710782818571488479361973618959381499862894698614510473991772043546833032001029753429945703239868627403347816197126769854087928864501103025269738559400886813699657482894294011754000420701291987250943774755146387339359852216484174585805424866473821516100062391789598247046843727756655475498478907277780382767931761710791588599120959260031163801189844452196940615111222402832726285766277938918830468994321049047833275538510151914175012845235561621989612058872791869124203171889749635160063680552393649037713327538022704298622987391706597685997818073232006611723874636215029760153565836159908115802394350232770395446205004403321125966447129621233574088945498671612592805260389126448364364845147788933704551563601874694615753647427204187156935704373093460854193129507953095479789429339737655848964398951894741562407495057615167042726294743085937054482021970209645390427288281687407903168936201296895031243622564985297432728867481068451761260234367304260849309426454307246873719917385006501873619341634024979229195627863056679634881997306534671300478513243490545516340511968109483546678645201265465090814696832416231199398328638541305640222631294229120030626786622138347281683813922172330808075817947735383939204051784914480070395300328961654071343627142780317961395060715013971205773549466385848790791328767568858207510614324579339629245685152754730335000832123128285738046849356402480281434873423088604369888839787113109574865349328368312096776780822337397184117882158341293215086007253246726464879431517073982087213987624722990446393663387306760893824096824593503920484255720984422831907338779108766115599925118084382191832957339114093436316168788414546122232463719463087587316808527813423635008219762931786397176494614775567155587396666497485076363504299024658575293208710388593001100110112862209454516912297159640176637187042711094148358554817484459314476795354853031819940029339116591225094469529167141462727094943727696494934646521491182311164895041805964951072892900897835771084664755658612233256685996709065885874062303677112157188845995272301264774468323355062981120212149111906474161032563815909944258746357168555523093851939558186547393402045291990901075861393746690258112317475459961540017514448678928160855213542197501212803610053702264301490361230237160641120453951751139113332728909957273602454475105648334620394551490543157494417280831095005612604740338845566271688539503301721439383464255783378809281919616395356489941598387628975205401262407992777086367311686996990208443177292733001923169127633461005976988061306721122112573661827260531148337173228433671351258759486908491342597638837340408979577802763740015654157205979268347272666940338328038523284068053812203950304349436893047026195274803360832634554343905439996714597073692451275087091193255478207564847178799593243036369449854812054503688433328434584025122959129355009752344884159917780986311646473054508514949971139754101455298761484834033219735680104753627965366173366754488745425228324149201016368240280683522218437536648251081068496940873356982692112568042377833561590609996105681206154032418571164509083546068186369513832209089746943530853769014813181547720238336297862287665650955973357110933481325341661424774393782833980221883023032601846841731296638388709146831457217239691143295381570410451815835388466359119509515697952276955675864037689382008216124007621897047979884649277835332155413596276290400182641556784633494718952726930289223905188536994946725321211343906816167478741018485927458934164677826455209278141640285541596782324551607136781043136190366206122581007634026081351555836985028022005404043351637127815033382952565625105705353403730491222297114013050114018708590111773534535335366536922513699085164488830688452675094735964276228579033781534343125659673589913134286273186194217123352187044420605890488042170960023721088833797354382913662163970316650673764968331805158855863087776245517135720079498688880416192238346044603491331007996550130966646997353460109359168205619129732933766403384764931685344953698395920167950671234938451433532287124749831270323612338099194557743084823328790087860958378227805319685541771179418959358214022681888764399423016949652193450008828267348559074756500828009421266247020944818279874839724195129439022184648397864158612756173082882903649659714486274605038411627577954748901080365398654044963047977058442771768702685480654849568164763193835613787720062156717606009915504332039208217505682023597804238739284884494309262013396543939944113876876025696300595117085309672261116397032151671337353068926611237627871562264579506693454049060104103913307185096684457797269978320304312776530706555611286076130637955096980989741958805692400509363200962563869513955093469368407881196294036417831724632358547629401937177693913893849917090928374451566889215981495840419825694725177348514926062447932264449657255257408726548104260034255022057100014329463245310553217105704562376801248691023638906041187679338498685991510181868527575333284854374709020253288831248507787050105405001096437199361079152391672415641799663037897388067441810798955805600576459922321482466435424590979164386544925555953709853541646863415218360467537161167171040835398649392079699713762308990452496242345176836894609142627532868422779138584802967629721670721229698990425291090726347674429388213453462297679353703645346245387709937567484301303921134865045693484159791695505842573393055407684426763497489282462686857752419690947743911774747657677563691207407821398108339568755631722159585125659805897579241347967230480463171692497592098872472197569584136989548393937171293135059732321684377673334148936655682224698969664670730967252336186701318811858492008008643840736967824592605682010908763410787335734997791220696788999201835693669570575605022843972395329018857549605987427904234462799699057632031076408510809797814703114020411622110002012169086733969895295289942142872058110284560368087448945027209887614616423711150177791334321228128879659255435568778846989442438326292461292657487096253852358544517060116123974460502366968546425525150552376123524250995615307775947321067940772422783662366193823593688638803399227916238943006328540055678911242986637882569821889570052835744227505297245196961995775203216075528056739459435281350093909596368410716689276254873593182076333499361615402424471810057417133255065316644174463911116417688845461589230889749972088742272986119376595722599971587060886751937214447043993063174700657293412567303126799174138738906135914845235230252267698778483721997175446977829288789657137476205048534803996670202128602737666236955653586023913131823703049980226892150708843031188085377744270851998304940836116746494718894297576859793578046552407210680241086595912540747231698689128143966173446242294147558665694258782928583268468038318805451446178787685700016894684009919249464294773995144683176768047942593503562620782911080526251175380533696032358791344149792767785719837866613194621096728693214806571761424859590908057802048809466740578018551470712762562300331800027700654378454361372124832958535320858958730228285326119089327795434780018914277202830760821107326912542528674138871041272718732588558132278517130067638394501431652244653347570097034340487316594568434964560669466560947311476450008764546193012838620697981884065464461164179550974060673517391784802274660732029253540197459790285501141333352057698645592113646153767307358513415215760198296205862213708829144646859163740432663244729905238294540820569145113517326405790888352639949428579882326311647767604065513672447389141044776407531880080535636087379743562888597361893770746102715785967201342200404909731723618526934755570475539128396965983353389262116433374102157325212753744170395717846977045749634512814730604505897900625356762938730346694572573107212440512466653001508822494872719935751843619428845648934731513225858970708703360915078583457412590390532655874462904173119322870627909169637789883087121033571189698451822603289168019145302206224902043028817934149402111827873689712272888634183561314589295354566258434321246145209863945635798142386062598015014569397027840085578585017780635539059227994314871518981977916704635306295388332037161491178163515203929043288188158870627338622058134476304576124492140789459009883077058641006058495538641977566640725348747749705211234828971131211407938786541726847823198417765740145027383880893036474686272599681831554125227332863629966945100752883661006872325247285555760423088874066889159246618949817964405983320984226129081842041025587248323785397241673461256290905868878097015047051192754866260375626885400963568506228326376026266290598034201624149340856962165338227041289199752767311236058761447334187651206041879966859227589854004527852954235608876929449790353051945194350794498775662023889520005986199360183205061173572172335065661643811978449605751932084017361353534879119466502514357507349972615484217474161907861220618911140806879132482469625751222094339591049351598217416294809408181702757394337023986683300992384829402964063850545691759329443141169830633679483340159610390888626289056854615730571517634039935372618461242109543017499097716230177716720029793236534113603296120550941856932624460747435137113872487488364701590317807935169257474919609128889406746797783134467578782873843665565569339196615053974139178314422757306308221506455796893951156132180181286847379690852757182147369770553143326541781589481670045405719194228686432933568185442327691172614775484445665284447714888524919298835688304168965242790184158910564314878980190460879257420137476613880717236096951455342689388787518733790579666143558007497185329961802120211058947982657594364904335591215662333700346840941613006023426815730658278877170382999669346226783130168303694489136224508644391500649544973495961710359124800949167650036479566583221885445187486368956915928306597358613636980402571118685542769173135235230135576911376028482016882269576454351809757124709674220107055210159611614303489964652006434179877023033783726238966251654580403175124596647263103577929873417274907001239747896872940610885633361440534087474602327009551607003398939285236800408225271088707942245699201553774035802714015274735356613633944033835425791834911904553387924761570429003394610127207628018755069468998562678145398839755622917534156665201236973205986541581489934651679982265842098294224457546074767025506047381189501122728012424181248382782870368642065741858488173098585389449569971396893755769658828765388504326165052536964133439595416593595437751142334602521512134140827772265015564169790868032248585734368177855639885374977546528650614991463637442664471802428097097712906670880430476378986286918449030422701126122364396690566344410745006687675056972138618016647635492926830807305150285289150626811974108358241053897106195634161208517145514876688487873448181665980547930401180027614997212555550991980928099385411812465361760458653390067417760420895303655791346305609421609172011071157663111011883030870807988954210271771204298967830898086706737335418174528643368211333301366919764695979306840181865950729820185542487762006370411409328672720145185516802720509678317407942625566517603768674988595078595476524893909927766628543728794487388136740202402953183378380719970638685299113093117020521066857977826165289899795123424565753935082585236002470234883866523341873711322807177728816697452656185563801288305242532736294022331342324046883670393272249992825785479204349631171397303414746096668342818245863412377053175661609824280888361258186327096724639954235475578202993430950950856774023442228086818434374297832730410926688050380607630100050073152835281587497441461051777061342852953207895666065209458589396865156861567828134654366840645741083066163313007579281621797651607982016418451166000082030370274820437919338365623973019406503696617285894051304552352297393415435977452464121266910050832190311652388607209439343545345358634619602965912726436790277642774042646418416534031392458032178317725458694411670484609689133552011285318440911274630038695156775906554575282035751019928959570976762705704301265216006688969275146540461532058562437132341980250741745816234217656857322097247572112600918046689326680089894296403431240896418476324142653116129579008331348296065495219347702473676344471279734114103690655674333147521112096953317446568176203122441171186721095220639188781067937132511798067644866263850655596313565904623684179329426853909807669931168618487816330905825365106218449346361657470144225469124781854195574806601334940408202797102141169477046278225580637404469294213710749018158920118332605836161466008113959212427519590013279432166405341221174872332313402711523678227850169821667138805974683061523329703397995012611678268164769070380926859340216282850830282975495314143407499120675067572336390179856263002234970622849999718741422837878525695390391824759322172124000915514286626305724786279344708375458220731162289059819170858069889480050056165392441674690789453065605108976247829220520417301424821466331062868865679274289947416646313034299699513603276745923800441220246143320264525949374456900932420846369255427082567035778992740290856413321081033726787030142771362049057403301541777707103673982182641224165500159527994827489939891070033891663444005153565363733724977335464645348666382899006592473682504099904895850931523089772227286430731660698148509993654221719037029307354718170679757656645610132665607942689514283698270078102843387552167533022399807822525434607956842258978153075940568750721061138749849624827059328252477594226735280136097429621682539335033275079444023989336917474872054519802465914097518009724098366117685779414122874853750334478531378698788819437105419740932838250865578818786115546599716529266456419139159086218128236003985931236806863356091967477840958065381953904525552596057638894792411880759768534956921572903266637424089921175511975294127625685037006605972576639291459335751372018019764653002439207974932356407224841676005266679275910853879068554500876585199146911546450775250423007543330814082284115583570615070446489035389031280175587897122404219086195168513174428680355238176668694015913505677172164447336350166943222694073980679427974588916054530830701044233518202110432541728314288266758591774044145358877123929067442821379628379262033811843178990331206289440128745360302809409656394787282022151102865929596979635533709738505118537471478732687153102900642979975903440294596787305940633315662286645498228402054480450734997979228448566685968562460399079333070357097180417861662923257285459325693900462920391214156450399335803196535960172173314612189631492069557171506648322333402246973173067596389737729275195064003945648459871472374116504349929567102128533044087921156661815494918227290511503533950236376403442751674978013328014347238195830408092666279657651191771523345604691049697500540976563306064041838224554480406436537411637473195013445698561601174492842321714072752083914292862637291066224306139209917061399765121391876818110811620400352035639146654144168557116262707281032241905172498349316591791613053282750025999280787170103758970783836389821128306078093756282235588599278702122016229760984004591834491705311449219295677807205357606530357755534712669714349195320045645477362589425381128572679152993246528031810963203140668373613926646699052794253907077945547410162045115298998204957288225029855100401034876490092776818502469349178874574333186875858898875276262401274187614318136613223805725742305052168915176792547812199549087696561997096380296064375382301644287222131425934194669883647500400760299678429338641870950130084333736894605935624814657913369282687558380687952248675379862212498610376567667905256408360237963697681749988957382902795905350358874227345214740167703634735455788412521764424513879514279187923052533001789382033355363818081990841945853465898212852021724761807983973872896375044987185910009518192681429229886326827437343646054286428963097529224524718973256638985758329627975751112472269293724732563047546478509463007523897883240315852487266508877748315353106793431238095693739401715997695352068114059774067271790014752942900087146739905130550001332125319456144423713328893276860290678914255630805370204862423708963318151274740566243396826353754885203960783043771696414263488643221050874600634938180055658435881761413828820850834850826723818048235174283905382335595989158026090827965737416277752089417135741601490096618020827524146788888342357949393195222712744367086167114152697799630191306209219158913381984748471942343661553638772845026489289245968845142564740097608252961944046999685353830296588670433294553965160713665427414143183028202715214651454183051637651545357414619521519080888606179038762729914300660089563908951884612986091257792790935407076159238682663086627756548146910918308976595012578263880128229942878289950336055764251010279601395028099147419124479173797409108511399528106774106414257238358093026409025715081032668202890303220657108728065106961749966199348484217381600465755254699679514518949511551695277860417239163372399656565505190407609621633064147085927562089882176171265674612289054756293108666069150251641890707037159356191349774213910853904785431830705230575665119173777898814807823685553615042321747471764185713825938934432134163507983669442805264222032981057075327845814973555967757283220507200342359567120387645128270373785702199698699400647105842482098769830249842979824307548138860168421735542732401937682881433628263484037649384684695106311494732459245230421193159895538158796272345390949185772243915098004553940909387001035329841188468555964520213325708555368605085600041131810549858051970977526956338401841350867313799851556174615467103290807150921275709218482088698449541217214063064080177482794254604224125540110401006095438013372869531452026411028783275166797690604183496697989517050364576825488162459418380374504970870151357822837231900682059351370048241612235126574798544978735841539399185606748411054105674193612258881097157837239863765245146862923681818682412218860865571267868897433475792430912651729111688139193722363185219916076808901135883655082295446691629996533114276374267531851184257069588441992715098031211905819587475807880780744848229543457637737390350883372114545694010615654514295816127393476869563001574139030766705989181415947839243091451103418165851027690848685806571189369451550479102648472095681908194556500064734224928461486547488071670950367353238854942170418326468933999213637676897346263045214230475245297140488746525889806807907246696845633347770741190357437240187484755586620075741887646465432395434490289107364298370235287806283544995274307238093128580152728920927424105187677964460398628282058479747732748173671842854871594206397101361205807665266047523437186589515391774162055209834975957753704987985984060787106085136250639259810652990116534267647031592505170684159448049179372289252612473767223769435309435939891602262502655522190790450547914561870866030606366181435723357595093016381567208754199280500007036677622570044487147800351832334367392281576421181233939234514891815042003352659767330270152472288762579086913951776306554425740357875539104659891817478265048099806198820393399895667025787320079493054981682190486109165013870138254789083947916762811723881758413047601982420130406984962913481264843408833052135983673614602107549903618477301664397136805147929136959979725146233074516340754411491021668477632682523151254685320211640623421703794445200482199471563867043240753851231170091601169119559593441601286915827031553026140077444217407750521263055877719770971815171292435435314119510711609315021105889225765375196769658898809945540421405413501198067979769368226444131428973299484925759634284135464036989339097156083123612522611126569384387813896862419814943205229050837412864929761434017897472747194795713510695454751892521225301445956970106778192639942071815126800391386187972664827555314708000557366452958535269701526476911732269225726047154706448663287235876353643025779533688842753140916086271970056341380339738272714176594382823902555911464715735254380591623058955906057836771464583010769421845967889207629118958919698491632242586034588827552237065018642160454125920834684651292328247452098380329794433670115790130436764767696733349732768983348831772171536960943177887357735607057758214355849758938766872843160979827828984505470545429758092115324197711172397123284018135867739391805274521193440990521322570299013198583940059403473257339963274234270081239935724897105829321427368768084492821323116794990202385621654988111108720586506126007656813159498894666852975098879938427972878754997209860236988179348760593215477788263594467475935874013507701545438077179079816775948651110691303589405388943522078941934353851222581030912891826394615057831471537783660412086007470937597702649573245703837548677682036202854503885631782159268602748436693000791559552013253816448116247452101328005396359715075716573827237936316831607941731629597801030757712951179364847985307349912937957019858339956588949557517508294957831425452301428536493575110566799947804943197166531290591260684115802122047219607008210092639751351362830249564903514589589985871736888925474454045781225847535766127924416124050508473380218416968889365882007579090693128624929706016424099881618463782690642468117594513748128509645681650668886567874091146642091055413505772508494672156171428047297290540829603589908302463734837484251730860674236527155734758151136608852592424537119145628550715480688460553431012648584266346816521200381506154154281351966083440128881475567432316234805298793897561491893800596102509294951642016569844641704578645350683797197138123886869661506099430325474621105285347381379415931856111118776357547113045769559624279456629199852965785811362308333673850047369527168037126395986504011192293477294131419554028417313201854837728968603974063243033254671788686872442186885160296157680724050192946246964962163036088010660042565037934779452926149887589267442136784840070460506705308782965633207888099829416085422530493451418075306241102980597707119959442509511941707756106568401451625407131868780326810791417200176937546171001531364115196213037511925029127234698887838867531538502063257322492227799406647915890448297188841255126183805241158974329394708217450931475129659164391760119887188430198812830793376714186327125249904754202717935849768301912051131076687628027763039936425814827743073128152238321826731243261497622715978433465299629996435670240159381559990314561909328630841502115642762903525914272118769796164189798347261822162583749918284794483360519945390317223702012684780440753589552701970186793725748154799050826022461512653671089596533215534418379687546058591735311192186950239272667613345542836273326957352000468963582777157908725639173875017344831805634850046956953757869766264865415268938845603732208895453781994388291923467578868590792498990660960811848863858534638901251113310687595685904655962848459242191260899636486259360294205917747006670597777715002664563130930264822725097148509519599351639376507029420567806743126244225076171961421518127691467942539291759063072941235005970197381013740543402409036101102176105574446416627869696625175120494683626250088555746084769161380980373106402481398250539048220489500875814548525369024748650633723824987627102220328853383668602968108486437602468044502177185771693888894551076866054623028948423948630692644597326287419418434932229525089703047885039581900710170069527461826259560370732838571519221481443012304729139741385421457268829944855919904920844522371843554265290500434554868712761145370200966220338526640021537191087092179157032856880863453976844591684223162675519285408647494705405795727931336356084233150215441162001065167238124217604556968167637733126643782136669243778760501895913151906360130326800343122733684414181340805545318369774221831687347372622219149548267144560913226597249554145213609552169093470493735511849898552115474957610177476231347209074136130053295521054848732700270083022549266959935974021093979145214257113661694524598781507671127730411991882608886998266842530477138654476001131596394381311636682366961090498608191932037729874955404215958414796344779962171089474833346715832355994979641236003664761553267332013920422705457317318279695108045658105870143734164302015238195767568745955037478557981217607877128449636842921994719112396417107176495497123906925950828795691452323772641814098764805858776306119068308873188738425186792478484382677481929414735685715144674691786389861559062100020678863160217097425163402199886717036099443004101468105306657943708643445113954851084915846151072079747192237522474440061730612605286019650222173564128395559217363133682080052238587338705671072101691925142928355307731843566412133093298016741483808020868588029644623130580586240755772234991773063869444069602964265016341403410083072100115766530065632619905255635230808833331526015104692335196908282059193621129888062627908788319952918799448235642095260335976048400687371109283585784959031926229941166701879894753318626121105594157442896012820313075204197023027001693045945624689450653060418644193842326853245805809191413507592887959782653348683756451987356639061275874991943651801239303399111724511493845921954132454902461203739164796710298986069175451466105915734395704096727608844168244933378112118452955515934354143960798039009901848640839042844853690455050030719173002992655238256690518699138605648358988306923547688667422675792660303889345079744736006714026434997976197264778700474034845543973213149817274884285835952063926833462007110677586950372882898230757702805194710351658613332110032105668473912238737623771145553251296351527659948840012949161551358170860551079811459044990546984337555944945359018869794862963607754946778646883702675018855598441350555872877981099403866416221251891215611049691711108986931642353550709559783577030712421213663030458586072102415097745315908936312309937946949562530575405922353325286074426491939200850282931647311798970613804022200347166469124464044700920552102504388721487424468834164823318714988773413960938052939843067407931697812318607009097137381553581655545985647688644927695357972964089683388239158755662514929913345460423178743834545835361379175960256796915844654043635070742584238719813605211512721753909973129669924216773227860148201531795716362024779475395941839784513580867032027761582373867268290839104976186584130186817073916333715670020984271997058677727338627103362274745604064437735551698506524354564597893267806620563846130312021320447146523283263256691590680070692668018897368722808549177161076453288188587464151494393765084922402656883418332062522969368139214113768278274387402107723278890182076561897668120673082695803991809094556354629590124516320393325901246501229320676254658747570584541904746514070566906398924992755238681075112663869182346235389469757754613878494301391546637507609650886155785776749277635744184329584604070236191107672188502899470224637281091438305905667435136580586137022812151667075224440515964780826009654503750551951351108469192649982681503468747749526137869126866621076766560370131876886384346480546632450272202931300967671923524808623793454969092537387591443720624841103350839939282152547862544092439926590697739837257434296627734080865610781193823764607036436552928336203006128748397378630769328269575632119318875725098055396909020080491674989975246271804266756792843104399297050451471428187498068947631548641827933228218332394249579080804681026596582244884802510181499783609914663580303431698023371064037568244366156426152301381791350693378586120685929939557428746773383678670426903532695964858997484788567370279167203661142952383482939735898094262432971354048778106417069235990221531501080248380197453444243343944903284187643118640098184031147089718048926593965782258173669320715628283342069985343120215253545123744198286848741174157653273071270075245912750665385531887819322266376248600902216709522576007952922743242424529016250331239017609112763749378344559929401108526465539728821087057638260106363704493048514187806406507768452926780761653899928834627501834500139865177771037551927578908678754033056734153996186847848750389603606538695643755699987071742685378374859074262771866992574772763639346961449875152796997999568862404148662488210895987679380180977706655297887259806377631406369483071530049129060824972613550607801580224547382546133997414385797113871294427003854661823554836126252334563931298468896997026600838027760805827838701450569913590344617627713634520104414259877032639660663741500400845620974550456300535346240418165107160448205802992206827891011226369012204717788853415070237984478546327925136501494713973184217368083586357270083888554799951090014226162909784735197802564646937715891621060225693604977179999502803225026811379591812208092407818470011043043228713699094809273284951061565829975788518499531499547171149263179510077717709853520209398887452864432519032618857972930150280837308268529059846763629165636296633759405578312519212102700066818718451567007181545673771963324689364680708469638001001552876427898188107703590638444380992710558777310630864744955224510406833335854752948018925086785759398194030487652633453614093398758579857750294418289910639952042077440675983512706340565638316388687837295547282980454235721054599788834422512578621047718785112860082583333235363963513682743878987369872421578899845182721505447299091727068692005816783899738703611231443330031651269382883301040464639629986728407657522757149358544397886763560407126789334129384226612579861425924308566876683892986539273068313414653627105516645712882309626729838378149614941173956226080548329691625632723912180186037280705738557480158953347587839676130727414589165885806783908762932945173588408725320471456185285774763488671960564387373018710783414506783215072525958046173156149885495205949365584560595889520139102940743075769255832616560204535259106023538685732548536619156120074677356652445075423515194234744358856200157917892934360077708543275488947764536716388767849807447055876598110249334269402157464136376969814812908495406681971515938079893515023149452928851959355825482943596834211847315163016791666221981321587818533667025629456925442712895014510706910220314189960709400342786574392317470877848282534319056577210495793027098319860684133372539174700549527817549550193213559538226250241684527878626904618094878944198275798453741665916001786266924621074369252762422468961992996688786983822128812697977220919179634726949875164493166983674487143930294743076594157447206048000576055720234214978509035929087674040032904442108678502443589888122450825175754338360327852422509236967410689824300952881723023203502359776362972225409394603628780203203085338237294907181481664102092080651597169726614564479556259777633767244898593266449104984022860351360765517228854047473936485093139854047972713566388902013963571477943042832257874168782803976355766539318813347925222378314377262960906924814716054671944841127870617536158203793312291585264302053780805267254294703641817263432482261469750112782327473278890678089740843891185357296372181476991561960562933525076653323560884568160796898986109042783290825442094505654632926235002387017221088876413333551981477723732490181494831877903033438132937630904814817517675030875862023944254157502075517394872499126709165964545830379462773398754258650479255507050580845583507259563621296520274975602357786208269821889002561710315701980558049971805137733380017836257289952184691547467051298179159670274380815268736150151783034131451067419496330386218870414209770726990778693067589024439700371976788514720704623063327835990001130033737000909251712180114483725460694675342107465909351988537623312949762952974952431795538636302672342572098923801513948992447830999237598723327382415975590945538252121557504331429493589195841844158916221988818338710378534799695905850228639630455455879717065389012547769644342619138946652579088874862625466415927719067466105008053045338484007471824609706708229610055323127968055932773082281200709072403896774723669278358297871495994909677717416264466110994730793173135828882459609821465471011593977150392184740702579238793624677873460983103575920080044374949318210823168948305480277787183611195054448406481208633955472967930638580646890016497904687108986511674103194028155442470661456780866573714734467176744836930080088452895637991974142469551019161058112811293634326158133406144249696696615914861007683190706377421332494101430070944746962079786104869032749312344063420279982784771948073106483262215326568425417688977109491271912359540280191888315419005744822042285658980852942251816283308257793096653425189984310243105303453008847681506244317631247957296389879939256086219853258774497460741501021095970473834420129640821048416071553879375012218246887594461712998084470415222356691100359920909941737978782416090882541685289293443668161452623134991734642789067593890477261301750667108612877674499718895434570558900313717388916973756057929152070746884627864075857703333744320919228461011002313552431648706071702448774756397380263764237625906400612578597356642256490153329360733470560229009329477232797853326229901544967165641726336887438060085010269767938320486088965753794059207275405267182266637831396170139053834013954912399146766897930299565363128672568498596173220771607619304208646241034985919532150306404780279408760317623054565949593254873333202378048744773644521659758069754046811177850435847607232431773708402296702566178641814618296569113346611422573411138466964850636335214199030425090104525816973603259550205206145544631165210243148386036649071868445021176760302718291393223324237131531819697882309942327620991059870677615708609170057317346115527996960508935440350398950819801241128274243473571794958322222772800949736428696889057048269430495309304579423799897380816408945204876040954724769885856441348771300242703020623473353995898709130646514190055265666304641621962739377502175457573164606965668017826729296351386243564401439689515381896989493927038239636288003470633660298728354046088629271307685273571731278713959952899470178259929792811038821966412920286419483769213717517583602123993823356940707488979651157554881127742673743828066067872408643330951057811352978083304474988127038652623139902401870150536912900497507579818333673350860304321132290720111502454365999602535925467363057015171651758698193445184599225171950461952936318086822773319824075941867591544729307175717160348800213098873802438711373601553959125729995978438810015810798365452239806544543475995750298493251238043000602488768190205249980483424899211847606850370421787013949827010546213124495886690300702784008932076634126422647048184869220655224803382581067907683561232645002712006572205211486600248739799954033033525129829634982537218750307727794831020228161674998756132443144697623583974880409342487679438055259374273553810874158039166368741629957875260238745325383274592161661722515201959706118613206951254536130974803103392066092930962773841060862341424522381647316790096368351624636807653020817967519871538485768683909310881695142875269917659594411166949998619797220039036211192767181315171944913213319291594441304140838767902802236309142468104288247456792497483667484798357819212274965778182916881550021197881603398776052559134003033389363014689079754512357405795246416503888705950100260395174578378541867864944099120353916750585690944917108669292458787810427316596194735645690594540447741063598058911138803449740915820496214349755922492432420055848667693933551530122783630599960466047364286973753044211780601154842334398835662881316778678100764602687439890673194037403218842440159239634308548056307702250674480511434413035702071593765596697561175971828683397348531772178610051692141320517427036581438961582679953555323050990133649370385262686621540134844547372395765706751154178382512749195823234303346845109553817319687636080688128955840133561967778373458882463792835071570986673573925094183292086282239415036101304852701158815669005539441052492682008511723484846788502331693505146866559495760369547292495195175533568616178662665436177401064279500241944198693849339470819440354303787903071437545442485547118764852474743915163765182880637514925965962935452746519697247701754338722823204834724489803773962550912434046035338745265861348688821992872793812382272760395873707881493833376800568879729040439809251203991021013516970213157269518475397515136939728942108041468860654276017611297153092940223659284782645640425399530349130385524265747577970299417554980563937259647222011030266884141217292719768809285956967587169836690962228366382660771613287145133563691974448311973876318383491284335824553937021902129046166279744161996272323782448163181200127580826720940786275510394262743616853418340867685834608408559928868175432168248072664982344106379065290110315019075227673272087087369039913070796060054376618793517974554524636451770486001460947185005726762625657504827317948867596307641730133944572182130903653243249837309782225513279869393156651683441084511533274892445455577031238489416858873713994537916012998380900711557596284330094527106882061622642698768031059082383384291194984296808913055144451968417817526045202686415943200359126976915229455576527407131587964288238891608719524594012814523235836977774615784567543827551964863734418773432505081770647847700725559238789584122592662771307159617725575906649215118200063018274916384682446051794195848388544181494613604004466791087742566410224713645776973461417169183760843406920813988347583409742096836269606967347784561402699063731600864258764931224135925754663389442296203629226412589742091636826377979623663664161044021785869562770994536252970606836810883381703175918515925662626785465688255599415008366026933840494412690006403406798695702560734397531664092691274850451323890006268278717720249147653932735633058981973348106643101712995229623164393155248108600233979701479721971810948987368912130185465720419755365162228868929474444006985065847956063019197597013113798717838731002549211589964898861699036836187281925367815512966241275165450856904208330205910720732748703013491200341236447636975212477199255353939611878633928350201932121543348743109224071136294095412612093210428733647038551419732895941434419899671252557409330927430992841324209107442641339167361466596509590916519092239518088014215721440841685853578334065143762190442314280828911353113072816321496887889183003689792450675727441187083770311969774099032344965668882749960959542222738562255048488959839437986575940140582061895609962551032937851448761230289768706305734550445589424470294741027171399136425325406801072204459472953290002150910373627249754637151179577505397011737372764891425659613176193038305995825105231442162003942076312107037608715821367437961719444192585427157044286064908211995911731699943911751299361306429144218621404056693393185651480427082872841473018554714902526770626934722374717376339613837778716012250789845017851653001187800684943439670138393991024631558301234814575281944605734581069090186428843284754916685867515287152368161550993335006061807994743954169707775913401644647681866836990226015236977674604311657331997974990447263438135883359033126069296308644493120129700979518311207019203162425228090348836897175377303664651154896760615304431758903561247582591506423282153840244224250392708955477716593994279607712186418451644181344643853907035341446337750307041172500232524637985568366038067503652759391969642787338373428061186961140687931384207074623131975554539106664088123537734792412875826564393119266002076764995889424018666647316652517395839421711297213746352545571932097962659848255151079581024042932089905643484180317047350740015576241669719542241294906177998803420850272376472519818588139372589988661726799078148057866206237071505118822426234823779355596808206898770460013231136011824373645193712674725094212306086910398455545697955816302049394089054355792251359902856555374181188355139780967028983956399234114596632146193675128616380894051112598313990189022354114594772335449181131005247331444515514136195548837972483233244300794729754483952154241413039950967372927827661286665935538463796400051223175416308213907870930340347411856453657599645256771334293154979601689445456791009801180481735114389112898909209455011406037386450185363467173694697161515156162033188191189083749209842710860700113599514438028078180581885814619541817548634538752759541110617188943179033204113478687388442504039517964780309185933061586071142993158934117039574125321624427652611084075083195455938458961786935303053063820918359787837096010508083913804320762804101660175870934890445164247213445794845130666705763068491067577011779850864294713323392734636389723984257815428384863444528023799658891903401031596451453180235751806428235230650136210361269565443574499387819411266724953034138881869223660674747700731909678656758857592334746499156646784242658674935519938793184364549906296798252690920184144305044410931874949398382130684799195889968459600289550842887545796907891076280046848419509639463617787328128158406156706835672981719196429091152394571268122422238740579321706195972448879561434920405937562597142622935718334440881753845763506056939309396965259361259323258679401333539191820463433576318764207754726365973977284757743176407976794211836462963288681259226182127450806482693251215748422908261887089163678057789766857188838727773955406014524409151362174521800476385831350513293473585016862129122050439299168662604043989671294465253556866278687290899171858932783660724900542166885909267850679065730293807645650360699112264126581574611424355197704572060515262949425949100974525919411301588358101895794082668360089578963402746597856007751616792940407004338128100202493821499839661629555483685154132333748913284650738411457343133000623310706452473145917294057313769415832067935091132434760436761364866964601902183584577824403057578257581124371532069658275299554786867320547794154014987424515995278149506055504615500266474000005497169841567867957647847448936556755620656687369236965515428230996808511078449133732272520189954004960629713639030625420173220104858979659141282673317225381436660999184279102976099095370660952667164264779665810637099903018107997878327540899409912743649697308235084740867768368534067669931545456334420250038408102819057536322299999031401783492609093446561926162209644605826023034481134125006052326872278140401286707031100381659658136272927552036556808135919050877754221074539324218021660444328733357697087895129960075932489205873287643217610764405581017701036973440631042201103957068720658649269973114914954478830219705474707921659156614389200068845236971278301566254530509122009438303469529460617497565927527587540967328937259386572317820677250612038175116733212703919170442281443172930002153835885484909838785977183214141889659723975652996123731434212364507201127710950030052606372720862867107115021898650895439728712771221034600187334474681629836739169309489280348824157857434590314515282861831628440685256813027843289188989001263217776108664197923035696487129073710575983833648200083026420919730288470491113216338065829696092590439130581540491671426172370618721188045606650389516908516160725280312397242716407738498617937106600780886823828955575413338334520698903225467878934278781956587286520495940310269754235665450820323919367147045208883522479844390781337550379414060275751923150890736633075122216769746075096981263049819948940422341193267829739228726378301397361346884791154830659954479201680612011015171352882170095134808236236121563772043545998125350053439351061711421616681246680641300207781844588467890417587728074903827040098998651531986743948243719478705988562529521406884374957334945677271012579798521911016933545665124716200330164357957187247803041695987130725864405280531459796979757300552292966614482360636613704027616267242546628658624973579548277350329881932410291107626347705266108881092010570791494434954284530694294589394828841705781121347972432433810280685366481377796407510890529388937659768689387827011618805725475179801966944549740378763512681105638280382381920002844503159436115404219089763310896674341739870831103176258029385394468155441228122386837119158901922146907859760795753534707433625039772391158108690184755174752772026354101699676543541567471699206375833658392781833100424054895260991228429224915847608966216680421574380726292329294380005292321876259614761131134686939201152963318508768718961060298577607237202544116122057622655248811730059773495305812418049783857206505589275324347833902695606339692319041553972382355204667743202666941045453543388403005646016547121735966423711469360345435187479404749264541473051744414134407962789136043625976449526987881518418365062831571109263302922992422241750664169977622563411496308421892273229533767124585810694947859519758371329039673028114142371440982455219625605334886160681405023137290213595190659480399678629866704485735787017394847185994602566471525744621734082216812484993643304032347184667091547014958530295545296188366995591528653885760042299043072913255254455176967415196279138796108377072636358633527453618955221501835949716631055367221249394169753549819024515507958544238463249364833087628608541426242771506677244374936487523773195271961327511714746261115446993117826594940246404887051263946092180435049160697537529945939536901496186374696096700496803598299664176240017710983504254389950759096564554548623982620572455901565893708141316892516987769315595038414722599200714773835595623850706291391904265751656979507335898034616687804031445333046398139529886135684046358107078793944328918646446691738670261628003134335073703948957703717521415294682699789765134221955071699499755264524523513357697836999353007948991635801520987263062075770278642312039631502160233259047445169216341607861671366549319310573696267484280987422381032599458325992929478875878188915575932639426398050096808751964644246641926315213763255494144494087928205563460128141818917599254720796081653453383658111583087512662005154219037927757354327730909988297265610141102436633269558810276819538566715054899881707381695693479425834410580846217979008516660276871648815382685796120095730763354662275829061746501571581222514915743557704541220494087393370634763890901687123292907724370381705229019889162113691949992736298342015854361032755326002576893550813071631836774469573725451246121837955281910740355976129052550678451264089331853928054388244815428356952138846297767162847524551700802079186742952850276095286439097272067367800931572615871564101008164256041377527874474054970023103778192905818074445464498533641711286357157066673710650521084591988296352289141681548695035541566058973318801249658817217620528921565522871799148018523388348733192307919877209581255794148368594833409465476617771387663941828422891329756218969903827957023943032837202798960505612009814099402459651878165348851004512822038903594038420049908774803818467867737804287915916145164914633088840644490689779973310777908744086088420634105907991954750750718148299242383479672896181871445917890518202647339767135485482360324170177450628420365323428764113626866054588003738097696814578052864104400869360833536699195837243164542749875604192802142023883039052078159749687845767524827491877715328632416039551004540062610993410704710286754263138454721353522299578383106648072694192182307823101046948525592834807372297321742268860307696410395146274750188794282951348273729666839504014909498657989754258491247163356094712646657504892237227926771080550213678553271311281868226636198859538907671957903827514189735840555848673351121643657400940177435190509331376446875638271823355656328872355595725689066708317400133942836831045443900410343754267216807509314457207925185988668569273045066577945630311253032021441406974252015333432135714223656779475025930466223619081039967631492104113163733881064300723523286067735262665268629452144230586946495230151866630821810639622233239719243859024801494058380772027613739148034282982015009198347831661231088874259203423042948232681999121596257730428904543178572780295410576182779315032941451357199904343292383150044104810169625053984595192209327976766985813626922986518900108109489617965218671405205160375908693938290297568967386642014062885358519840105026211077320765460647044677560634691516758135502027322483621021963863698016954452840301308206517637452013437378606842359496074526936566105551946656744853237376527819599853326434725932101026731992548044369721048251340659272165343423145795363296498969233475498790584544894084667682451297443406838161196669381367854246486307669156561302633053825883744937576627324563077599139613978972627427651026636311036042188048555297926110773573129040173237668661655250042920354988950623926629841332651962761465264934589617012902192474785808590033841421608762535595078832629727280593263444468600439172287236931830330323387480566257220494740852848243628374426256098579945749781164960711880297403877200095255850401331174984604983446098333546877786057246558108182251105406449745147747200580054416710161181258289432396290332320910982640012135982880143199891441388536573869920142568237464170049352260882566024090104056261551083859346251446857102094384088674649961412937155500487879586369043504132618994773882362527955055885194833166975989117032458767997492616680309599920689406057779068632414365290044469048377217800592841838786770960548343528794941230471349294225138384464519440437188733504342628412612597718088081233169240620373103690093293783715230648706955218974164895108708089304550706451844016262166220176227848789976954151030486482218596905680793362015828096667072102586043856054744264538225404901986468720832696966021716390969387589361284443514968541807861642735635057957591773267249777708310492187622444503052574535064390277707995133677954110555835569759472962799269927409321387126611499926896219118416700481354367220277491897636239215992025685637898453823377278585815289716354162395619140809409429661383259614019449550387425870702862188839327693532676822298907133597599890991510526534031152139220669315059829604688876910837977186751486768617137517571322938881305458323134624005330547339305911480775553076572275520676553381183367318841910733656909748038995715865548935030204787708720466568398766924496452256526890735405442603373921387666654135809612849787046429118670717473579911662914277925767640869492935399839261457955458005635538755433929645773157766418650177817253879553390188205840946249043827964439143018498520059667975849637581562868618189664293658290969268508822117940041111700282649674739067060279648884423496564672570528011402260511987717489687127126985687117724860011764138314883537102613995518500394155839454218784142162046657828893056117122204779962222769631553012588065007102737404020032584300460074321045489687066375615962630924720361469502816751694705663535578973924520759299894696706559698087847503410054046948220716615177975364578897577621836591901765691408214037699341421570040119017651567225960816122082612933132458949388823027813049844487612529715642292080291618681491282400517917289693058021462594948370555001801495222216705452412661837618301261169075279222064078136791160635690116098600176096992964277087459416462023099153259826095169557258597276669766500018252821347133494815235394243020030541867711277689197751101508269696223694714929950063522478257427939550659806226040821464089963987658822701403817041751605094395235776920089954068850482101712600514029965305979271402322126162925107978676943290075981028770259863224883775749582884464870136457864553359140877952435502613071853160058261922132278072032135810411461866390056691155407015399292671864348220330625668759609896187972457100791474685438604828786309167198628280797720748227213464390872354032186746770785860857126043003166865468835880811351981036521446126952342402083890971270993041800392534487201359350817255688221318513836346239236693966660203687096264836474397051476294266695377756630801449137801188470856499115194091531806006984756449184812743910621587909719220380538128701812569051005886961441048718591213436180465628528824266108853432151234362213251698731683811811489453674372874995790470505267206322576440553251750303111584619789140361954397400163779074480182125627772792317741111347047094471921940121779859117384749494577349729086039446122662039726011587746751623342535773687334422337953175157477480959431915670982079152231718644289001519146296534621288633177575022290188126383679414737150155517099745390356286229940751485069966823137606194877018364622509058394841270396246359213236152561468672540073791622877065304231487045684547457739281490077914102449251282107035700222343766726130287197034398674719124637739338414744838010422091720212732794934363587813863982172181465146873352983257023449716271520766622177252461677918233436087450638663880974023844967055354676300438007320317294961462862923747136120038603010797031117754424435880991513989904858299354918339199275319332736738769791084878412916240322340210325691284105897370980083248183682489975536198883303670576694547960264614944499125888019776866132750097765909686502200720096818453088587578459699863551554009384966428886331493460724643028057406274001312474377691941781128597071952624959129494337314263220181268210672638160839575766275252011287720577339510298419562300940004064666762948608759686394799443820035044716028568607468119139101829811872982490423513363105079096422017002303801021075099209551648128573450025512856579587942898194960406283256182907477482241675011068230318188218969084200103693850321796369249618146609378164360028431390184300620769680869890390738264735242546869350451387908552120419270567072999550385425005291406013375369311689863067217581502917144968743663152295818864698033914852365110873488728313503718622597731831805776397659069848649435771136273520943095094814447037737680400601403631083184185798987534311784970183972830005523863399936638709541466344492439207456408838901996977254645320018713898902553302228831300846173351581735625523210659933762430858987857487603323122121874774823552400421257475444821791439876694579907211078453285702452098489710930822543229467071210068115702965304688151958571619606411181658631295387791905514334349368237932847722755003846774487892848557684719951453460122984003980472180516067454648641734484445983816059357927679203546895514732414516590763340954661175332782970843281051451355420501845310874542358864872668579006951281409002363902676092128920090517041456595099755713010389761361787164282431508875813280484747160206304554466017371379495547021027132899450547461598102935262697067867106516348859443049496509193934262834591484200829321702533312200699648159628801585939595404859523707478179003516236073068235203596523118759628519473259120450145982266370384135461567448829695519868825691764734629359418641631420021674406543592944128488088380726296085994389273675553408378937943925931710472991251343695179579162065506676828592343035787322532382910941442002726332222127491647069808671372155888055478825766605845101631645429447775420675383149792029977709117086508976062034126835873086668093994248664150346029144369122223006715068457709883691760267784071543804529166356076397526021940432160163763058801178072350456018093503987438480911600725576544903274790977663936799093528374732489032129740018741460477614469790121284260349848855955428190141280582397607536740636876334500767162935777290808737570409386996685466054453557034802049436305696181102000039152430923732399332373638034936571682318181105861439873132419165197932737186252262041128351230967401098483936374601182106629919019327891121839767525534397885456340510846577045565691333130073929000019363919777834654007652104610949766617351238468909690601717335394997727646165231015856783407269829831118633048340575297248625247610127960373423313224225394483254664215580936209887704112645220046108846901553381095508288383377051520038119822492338655337384308462361196523485547381115203355544541592489000110790561993988183877725466460495379001051810475896606294634784132276121018016160233369798081533162116590040266255232327138735158123383208854991396813066145797634166066290375526582468016170002109488126353653452215682127746142572045656572195769013315791705027134179927626204785687451074548484700758462705562216542138341707044903982876813658478746541850092663822855512079349560755805686542422496897162402202358328587011085576439831073309098284904782806429727399225740278620870814393734743827479496399944281488329686549243406980600701931576719382941159861142780009582200455572014010646274712190531768845340840804772953712196023675403248139064242618444761672094484792224040156095125540123121549280651026412782861465777049831170246030050955243921876015916126736160191973819550693236080457647382455756335072419258668657056806986745859682145440109465533567245497505132014946537951620644460812230506567584671426579352871429022185956193701580970354784133677028006473178283576864945719046727625725536839315188934583473429295614286461674270592483831852232292593949547456677967283283284747132569616685311623557406646196563727731613482410382008386798133689036107112521049906798251734680330558826358302807761633025751444534100913191800839056544886391601622838823775155214854737833537397413066555341179611250927659590149658930291409177402097835747731657589116141885648745531210369863124527378967106972493644832003049772920036972893197260845803793682732427693831605204823421839384107721882778090636645434456553532447435714590908555390555779601273821842209638623073420745148041790780071262026682523711225331293960406081809110778715873377403483396991949880255205471338200163545592528777279346702563874003721252735665320162133733489536492000313015728346531329990510277436810327925733888537171262184009677348932289065425082475462498590626274881381638395162535534628423804959361631372454881059760513098688798221025446847764350123964739371788008327755448274867874364067624436386525716711657947088535817056349735122418719869498419250762998577022462935901714206020894918080192359103239390980949024878740753446001499903500095940418748315837095767757252262341588810168616616849982779313460479958571754540554719550660494074133228570046008917071753492617144966030322085856662113778975318131912667023754367794552598524286997250861455079098346362360851074297849259324303941106428483276376806545363628820603201747441954645887332509883840928436833309084716181977935788059447920561185853662653148065005373681485007957831001396580462476351918822416975506685431251393910274740904988950241370021516988520786782741072805282800068970782773394518788895719272967930972903721395607323256357496255045410541827341099801575011812600016214641727135707705635373632334534583601305542379184546941950619580656696369333090139867621385404284553655165569055931816369956638535673323165702954685303583861717762481737218184490067417534708119059693024963887150893927952365708419631425243293357275396731340476787209333778332582135821753752346235926198195904621666062909042267485806793781748623728507874016186945360696069463123103654578341617972365763476170314285516773871764411865866538732116877732459986440040181214799745721102131924786783468420634748772144302183170441943499415383029663063916424601390914074525085191235893930657921008581260451975462236880185911570132035357561834445259977048017857615618137866359058549254296869876672754051702929544655530192752211380495042516432108948954974289965487647247252592766650773628028709287424527425455529509394156825840946775218975183366776050389234123551411902039178976524491163735363778955757782331028268520198915910894997036450899860128337937406764619561848155766438829619573929143635371777359327711671590395577753456092819682475320459026456486910446889378564579710055636274729081710966879021162564268876478815855244169151321138465875360934384630364376738785939901992252726647093691277018035140524620374829720211589304066997842753793476299662502059219059792262078983214324014629149858569166109968683322264572661283182505690441983531245969562750503369747399541054829098018345305817081572439959435219235103278723281869602023545108104894544775622266212028115955804329210590769249624397653685453281259978076548059775752731546924613940200573654871845686893416614942526564868113604011329643176865177226874748781381541842620280952336971716191309918450426386771934034827811184591097477771332935121429248749352835832736640716121398928093584301003018720259080582389624217712982323606791261760543472236045037075135019711716945398556463538466378389251059004976513437338855306300902939247774192075954313692632073808159084317990834828126393670756945630529619538630247836777178055267738264518652658952749618149064264405418376104801193936691212259658636901738645309582467478587365287237755472412933381430567910230059392868459220435086043556809068279530671407597699090945109759000040943401877014787606983717685820632049940867851731088534912573605021254956007961661316505121918287846857358334264999803018693141224241745858753355402811388789583805423724247544792757945998832107487269144059566420028110946212390837481779884709224438605460004448375216680647891481830705605159208156743233685641184912265122657318617168753439822985381570251171774429594084092046507821187605699668953946332992320397435017640561884867482101209697975331639431845966683166029848402676137255448087398273539450840415993758754005849723471447026003079172359243816808976185074200168316517311045184043215613975831169983138166046955751250137584897297993138762534010072739993727342060950392040932362195100673776457362519091332669634763582460060511391270700763645040297676088526815759226739065887036675209689868565684221568973101088252727885152511587846659307139770672576400210751391567252274564830095786493542830538027797270589036199829718997426800860579410963197564697751437759975178422565507839679440408337592572668153454165241834078360396883359642343521783878475124676495689648445342154776696551067270556226540608396943753622376212957159141338570945942022589150223177345901175716606588540210386818421235472777053637225818604597551431076720695584769858051542140439896879573924374466396950823720842227653995254772978952720251655746254208586635152563987264719837256462482947895403552767651801072918176324483536181180136952223425726713452811234947555015152233449100380385778529567385252754454991303288808029133493179056277919669331235344812474604778936770253494593256495986990183999206130387916118144947160414500510232114463029546172582849639331631799984869505921965955722704139078752285658984708891679765927362606415204454354172196130453693527234111720677991853319134545346243055600857177042786048856862586410804520475545816820549784008916000807302396988746379671006847945069817978087879454202158827302249048300608204969193666355146540280532742708500443018704670316756793861703683754676957932678572271415344177393999278406787884633792038817615060683045550717846297264487965363817468058337773364967208200893217144442414303937896908251024904687189068566889751514146798941713547343441756452279721409228958520761801588175359971199756996635257912668355849624481623985306133864635807971155207319040001824968535578666944816644801341727772602699399863780068334658840494332244723076533799859788315325956664590816747792975641724572238965382195637158690068226092283250097193541265911937822072019651611804829362723284368335280362493913590292905279391220848563443649403281173531591412875282848790750040837994167245878273269106977394467710947002122059712324782876949280990276407243468724013974093761900421958981153765377641577346356572354176287203867073361995097502946370778517754210201652935585672477104295042953926113424056510311753274259433169819840573159877253931893318284134779153151992806699153473164487570598003601676263098361621632800892970401101008805081894031471335701167790357473332792450671340044529718784301694511957069245094705044644207546971155085616541172989682764912731955562791271569202607299335755346021847305590055049691605354983608746626131651798391016864039757941796897936289463089688097727560360837932070597636790256140305705723142500292972252417007673352109161948863195017158167099246648577332271155151882351401846592674246078751959328632186346265146449183128312302919611292725207915732788097236804475245556562411259667737151801169923942492207465161442825994554193335703319883951307304082129878632964337147194741354156749081514155325169587021002210263685911880588819370675382154986164532231432717940065974309158271996244142827179593830549141110490960229814961272914628519210806029733614441032676627669352792209423645647166735905871713426171624967933523668671191431975853533388646889984698807001521581732969563596440807257574796017932595661696515003717323176416861763353098930236588712703669027384085012880714507216769658428903501048209526299840023151393701083838230065236595435139373942378305599188508190166139551079860342190672268514820921733134259919975186567681700578107355416268253228464339910410615977072428865358636004888548857342475222893843238422997394742062281066704745085337822859908873630575620808766378102049333628924546716816606390887473770974061602700209497188878266428398315132745588578288117811374428342439379488851339386372264079530842178359076559580895233327804900001424306430914211157773600892732002701555585895063661021057461087645492252015771617538496828772372986492418365625384260499967463797932576102560175614905535345993430879279172179550032886424845997771539293092648932255760216657721632212021834010479865777887651819427038880217723389085030886928691958722069731646757323448147370496432779272816190257706734524611396988955397205955768410112969133859060961506947910175351840891079248530060198224808746966068602511580696245509228404074815910622396185178021724982712918175461614904550874746767809362147955890601684956337809544780368233869561289144886482612430164786945576848635460359360106724552984811474557478407921802268635047462575742862310992489070750537851693323045255349736610302296549685501382697479371179975568042088152629351928281771255402598218641628737591410316648616738989622016138259714785135397561626886485305862124971852753670220212625371043525689750066530533742122759087112067019780302465261017794850247770594140521916375748299993064842106959452186683622767051176614251020826815614660159261716931833033391086429341788271506244159506378331546666306761994589396985908951535787628407686465787548075150984810140145660982312171654277200138653628626418847283119383798913825422567053603662223145180811305542236257183097242071955563708370753777134227297157391992572487374520306649692211060839827450874243861011599514986416656623649451320945810623331064428380404311236479136799949999099837761103328355888727898102022599954777140059192090832016823378523176455491372616033535036950740197511974292392252742895814534622776710711834130367371772561932894328247134606199150055468789756144249866188787566160512232725023791144853815905662590580813690767837599550394708026051750051593931059695318112177525402700835772553906362313171024346987566144230475730048163289654760385356150065094587204320332388535921558065411090299785705675133610767454383596250740096071757946781819182432797189990217472591848042894334068102846004847281017249826674607241033890537169961068501626718442727568793164057153714928366021021760908708658839844450658105960494040988130946034472937571725585262409838652208524544208302708327100544141956413571814514394292501053933057730467337148739375867477591777753441113433246655237525470460839943650685058099824665095848109221256058323834564725330885658283352488112339955086881769232776643602463718849163815792466133816474337269482707070374494519618530363255770473982595127913624510298013377625963968423181801210003487043879528472975301239627894795450072728956555268206732648855975595067508498711787024350134643655963459757603872396764597388335946443140733847880458826635507444755653122875953095879032489647871961104550106726181681043229018594612953997499363610429182173580064093023004343172799696665094117780127017875498436416220033643819328204678379577578101527768551613967630844069842486661600276861868583431712499373554056441154778173636734328399238848892077401919654793462397289972140585277372377399604037498522569998022789731764975224764942656330340148296857027639173695594805278395775189724866966821583669332456574306960960256491682124153510022685908568254145285866266498109541091370162715943746466085143309094551906640137521414240393347285416497496432666829653522761419004813655344909559391178602641664021897045658616334901416547254379229215307365439001033910156040649002029149001232967761507425655296590200758102334391671122238133930365573256628646011251431352130195460750151598422788281165376130211804106863082942932603147771409831354419282602471967024999402874798778376578967198578082376417256896327296520006001975321219745585204342946374737994159455649455441951122964313965599645422839233236604694953380248303216412658060697323487553542391519229017736939408843336849593164559979312267970900322189978735360075854396741006685976985421118592991319346656525934894803503092568277975421499019772241430469735119604727638020148112681292292188610779264919219689755985875570915117407333792346250020002679707587078771853736047117192510730154809243549454013540423598942126253657436192163331980767102250830868025092617101746865001696079123294845703591966828063921483425181884038828252777782798745605477972540885564820381767014331231061908325114655219923369462455169099600542486779474434597198709421577455748291540121872425843369812884462216349821477891592065081402516947995979784992982582848098309761188414226671611794344846690006142891832429438763484974004461459924525631577641210975709529006997401068276081533453997151086827657732378060436014343685724464277955163966620980958157470809686137378635921834851500182644377907480687063820442744797101407197342133745039964994613433900034600090212857022951992990097614184260810775209429631060373311553583210896375637920770410508135766402862531313777308280416610653767749948760992734583192513494921690429419859156864820756544604038181401423953895189492286701854003376108381058139481918739402482231289879385702314959010350832601942715132341614567244125544075527670109143509729405240168456591676284565732818988184749442869563336158025494648295037074653590177845360013036621543104972880884301827732533872851694548291746918912305184270534661980892897562527662319784292522046998824220827430074000884154594115607531986665363702263532348803199136023739698155030283242215865030556177626270585865599845183916818407144792401511353766464158361847064424995022790107947652122620988231571677646730668549726281664948604073432227981784367590472930358457241286729503235861550696472010848544664144678112620930792382292322755731783653849490217906784252568343223110985600497444141297611877404493259651322389577910099892468885748795469172387959846141201942053492144794289809909839488466658375744235876885438597549417434865558145105197127173510771340638379921416799670083066166180206394258440942180151450099755697148910733478382654902886822726556443768869131938765005677003139702854836384140204733802232472998069568059756096605121076986690450088566841921143433035335611706637718898319801492468778330596965502791385794067242951734340268773139841283513386831581713268631544715632158389093910878144758266208148508008534770604765125078089634808384230970010588708215933494128407619448719050835726336131356414418842590117464001691864087910587849149522346611924975199881544005509654932365098289004956168509893366945315462768090791548857624261981805432716815833733367309509517642456897235592168673957094809855203521717209428372879909020887760277674686629027016518558812647776489620661669868456413353720249726724573447930709853018931389800505943024577977490648773150996966908369597265318297287926605159199749155664939369643557905091224155515621457627886902804269609086035584512366267089728640150310900956760667501179012481954399456269825173154193204675499176725776940055283622168596219148911687641319833882293459228449168075272995691710194582609539322867597402479345889867884331726460194653805178788772647893378207563134295302827302601312114105932178940412831526013358481929341978903118369255255230956927846718207673070979999647204696260741012064699510995397419293106011980416098375752761243436161920462986270186537308784401919162367378029162238360858422989247966923357561452111679725479525191348249920531007148789521664098807409525210713763297808710252427939273506234665934508963382561425282729380463704729688360117207364434745371979495963088164506863211445118901459580791520386888192412255551949991090707027035855182939571578973488723032567641389233863373684166224442815613192362612319349457165421807328287513966693733133452712513784979481284824618450648374489619663436879416515520646374803684363160399808556565483380244091119823338023838606421528015977593928893800717111143103654205442725500458220345086763211730691574107194697010959862596909882919829796632564025353816029522680998759233112970757878368318795539757685487510578256557213781328694441953242065015523890932408299225637922525818001908658157492461954611127298118375971818603627979222007776975224822131315899668264109620694267670369746439823740942631988396718727039269979852799689316201228963314264631126520417676727095024536586472443138717467356772358551936776892564565075927579602295524249058679140889368534316545533670142953153758490970913775703553192555494554113489827875000708729827630688568229412179619000788316853790437577225196187564939230534026096724436020328813105373875884923029232871997962893466326611382440956550930585716008062494717143368636703215805564884356860215453441371531530889429677329540939520950574835837117595316961846218980334664399794815230048830961046846250286926346284090847670154623959177634682214453007597839762046972630461941147837792156709463096472123517620503527133871513464079135499921684623314011201948046140583022598462160284616984702641468637232527803464845556870368160249593937254024775417610523234000854443550086425765741432289246546401159512744649685316344950249655616500990240759549820831854115225122351565783275982921873577651379091346781353652219462448643294866550683818688226505538356288539179128114717317828311042032012786097940179567454659395959703379969693187219306314849853457686462991102556868232693185733848829582391904961585996732812906534551806993424070466937036088343290707483045551834400015610632480817996767552751912364268734580898963906328674442437159432554576351964027846771705084331918739096785720302086863102462986924342116042092392067694388562809582976870556651979443743858411570651447069915827714815009777524315835985871726784358945695526653623079883887789259148640117536259441879768438582921651756114854025490881267814718915030345775540979105877433133863516441575195707524264022190578641906299929486932742989793582490348453359091996276182418828691757153294006660324076666721818974555720936730229229372219329738316381850870149240430338336915244131733487169174164525313002433259506402076954354056018340679561931063009650375087998355129393250666007072908206611029932369653790863112469959942151591544488391394363553964673052930534824196261081222526457856866202625673716405730622719233420991836217882065839141683430197114349391272791116921478814304119828487644122451169366144450739826788580235731918372864067019580858676980759412823537529801880421863237309210822064842860282460410811185333904329717469248859048064257631241655437190362489287757908346259260296905312612203873649743945846548877929174998470474258650118931423765283021359313739330737418678492041741838948493957180139788199050414294680597790877444763701994935669364660309782677931061624063485314748359485080950678084182929013747575045374387003334792394077869603107338215373319309337167996037985615539439163837823525432555239565832397799146938918160571607954938877844674471722458185007770924729521817466777100682686464212816111141002395884296952841968463660165790606161779666654353991060179923538789713665081921988272517263981070306966512162487937539581085002628349977418082850011769168078233497402172582284534155739780551043636056264811793427531861223365110223566222201207741043241285439874861336917853359581787035932402400769638347945560441588489246256716252305883010336049296902451162541194040216183938570325437631099559688901898332680348147711030480241874654582225859401515529783929211754555602155641109588084041033803201327878087971595514435971721884978885882823881036201903824464353183067042278829628917030388149990251987879131101050604595555803005214830044867456662014526273055276144851895388935459541176784630757573896607116716784533839198542926889513245836610277069013320266906740151746489960921682851209390228816330541509273813115140761017701732074205024055536559360789697127537224279299293086387501416103938740100068722500954585051094879377494904702961273358373089056283875185981609497288886588835749973404062218113439909326188296572472811330850061103370067734014043721933172390511274211252106472114525006713323197659534945344848979954550380135282674920716830906720582499341183883066940186661292720150056090327614589483652967125383573717910184262990608861187283189405179054217502639141013262281420342741177305026008224160519905498384862530312852024486706989804445054327069481403019976430612243402590725616980747042531499531064119959341270794955159151416315928882046305319990403596364018555647327666129186708837589680806128801744597791970703853274881727676176073639015927648652435489411325688214565348081187623485276519384056961014440477827257213566322451139172678851512201602696531906596507509721173784460978306635104594164206146030434000321366168699746672175711493008879434127407454311857555437176474136883311753070275510569592746660524044536833786151563800842519341760004757379400553136392817595897583285773871329314647288051996516089686311572702175993137476647138714290557086428736313310341957393470654192158294815161733107086748232284660980268851464836735339835945723782075535896972421494676284241024578645176774222062755303945461423904435981069064963643286902064360756603529487770017091995495781413691757148690397942004299575198282948926871840110398540613544922923595933590898992230275808169068422914990036296326156577496474136774722388226175904255091834840939025899061600690591350386147991117067474949570967540332814892289986999703859476406435086550414254967834288101369099309245104671705237960305009327458171929955859138494275942959509827527624442378757395375442875666190397957962229041877114722788633433103791814570638349597283836794134716032259864753134308444097313755318233708967601087973963554170902480697977888130561408495134159247986348153220380826862082069664788386974742600506864982067276914336826923855572013796188429532964644811308877286975923626483932334816346932774732588695299875206564784623916008404783541719123808220094170035618329925755163770746814364431178260651134752854390612332522126532460903557500019528531850551296739295335573583139393128670399756491405183710620581879487708477634886819573022643928277345157913469836323255008295090704210671664161184240149208541325710606437525594156955963232800137143312209124695245560456533038139620030255008026007936894394633091470850496452084030485217394944048846061269610602766464004271523489393820059903485545661728172821618678897092032598700601137568966665243614881543578408255355585422340566005696254902987669238480735776099753071645726185951940967172093456016761598055058311072170357424716582376031424879639508282315429529516288811623464404323901186315087042842041294942340093833845071401835679083680543581314676168008197003383554516527936723975637210808587089790258696682180120344230037929393046959981842883915958121606862746821778010116188177242209009423929383059565840681024442947763021426345756450618787823777356455169263907436709661543517688026327971659886114911567600153509297917649921706114118367078051967039222309801654284060701426632987946220290544281314737179589347224276980314470666342632316880484060269530355439324846749028649272393361016639043370921703510411281832706989716368680118101123180457657838047478406029217254700372552664178717618348488303573853316017645579056428112171086231383716641078099046322080869435420213842156991498156867317203319557454544460780377373176429205267253805312588520795678302223432239793497679228573489741846018171096729024196278104730478911742258467460644669529484341066846102583270253921713661076132017555698843440886952016468509784575499564766392301670175349256349155787123214855263221987509698542872448981064163884789586306227406200224496139315072849457155544502348823812683214661463537902420560561032749534612370666467550271275208082576388912011712219012223023602680936943095147829540682881151453875856168634129515267369869866784628876171379536807322185553967476275825919297984535739798643353442592655839288958093641707709070203335484239914691049158170340620660610017740796021828562394621950144722903429054738389347290010800874935563584297315842655933100292802119861078458399054615839392612811720272877278527299350435046400828764199303325229748236728364141315970412656308449848482155742669416294171629670285995368571852994516860594357817212056088676541556327209366867683355690302858721051019500207840261189881013904184534293648725702644223246980213096695321977800560819330019082479023193991125507968428844605969952757849431589803279121062865712784801117080726164436060239450680733840567009422664291035375631156042089337510105435613510759854651655554991951276051165493598026628043694712683960137052301257347987074486119487782636477969721588028415292636630022238067661576781586213275476725970706705895795399819434603850448627641284260985443780260119477877643555418555280916195351783456665163213644269333211035327156762904758527113415316069241518127527139216207687229528295123382557182262973926842604136549649136970400930450515346305907879228784015477908801609338197172367434742284350090449405137604751774242986553739912546687612874183406761901792209668402184050418908511571289073854066053690177283546683895761748512564380104208064955677347478411775174410425127211529263576841929419608107263556442792979954390299590445938127966990807625997944945031061805392731265224295440571037458186769106401915624522446621005975888653149011176209376033517590381663017814808314989467724320995829619529809611606468221907514246584540144071712234990453261789904178082692390001253482600130215139075712879135037418887113547610509618298011290730025379812661062517230468693193483315559850066453256037969454209080824404198081123708836143932512044127008647610865523402208193114197190198091526999942498272534091836814121692205772833049537275017275446466880352565525257344408579393784285699956289189094215710015802773735301098175698705774123238042660115384121931159326170951416134562018281879741221353860546685065543451088090657871318858464909042206799778074137404710478624027095266574832426165491636573118603242871910910811623681493450182111241327282471617015186126600952226055642256729951640135984748233605123956802488795804060040181070257340144829607856353563604790258185705181675934630800989377007011893973030471350996091565105847714408721743905033015598261917312899170502379276279015449698853207014548146086733125623206964517958048712911126898463179834633272130478987706819506371390520666807467182906614728001491978023916842459891671188541050839667659187091857578651742300434944703762525576923725562449505188219640290312774404835131931260166850058852307771629508960926843554231477672201291674705518626971398813627444847982915408570736879926909847451339017326504911120719162364840956925657939527728457425310873090536655887872688137805007117813877921104003861581236731777111181538683397533478533891288117179051978227844822303783808080086447080922105576391596051385533242564175319189669602007093413467436973320268579651308113039397672233527204868558756495146574031373419128351872851148079684188770487143980930311983246639321482354727424836948374664458032848932381494146546053745810125531553614218902348407468762982463385813505618193938520048564798318508241935768471068943509127905619029888322125266663612028498396291320413552729415939289893898797630208244969510224508219939942709044516971568039218263638959603218818009307650580663876246029475092821774061112286751025015871481641256206616299669289585398453765095181558697935941045872192327520181643314491062563273794358855220081893284698626180926762281800840095063797579452053820030141315465276328021797444418717565809954798555489333157005112579437058825386369370118813565540394576269265496891109654163936318601773999089109402660167027195249240991955890346416666319141233960838332117439622088860677952359940972896228342168904780019987418648539008081769656145466265416145516217798266628682321557405254633750610097399067718953867103145693532436131782717672066231979078308250860713087993425822630356468882941549026413530628351804861008037003932719651169379010794543582760034491810613151358405627467542603126283398580454790960448954119239148337866645952901319742539219520710388633047079867325851337611581070576467134711922325459489548454070131709736497446996262696348301136620025795259259659670755411033043480727259413246312997805810320892236003936180950979429976578070567971369837904261674155949106107019400704371035731196265555333530597931683085265722357920600788471617251430179034790088905585985762605028594816133601685766979902140770229030958374136737427685269704819963039540497868302908041497683009778857079835055964553540684108158323583668995229020097614060236671938982645223313820588368362397998570185427533195764728070670827727624574412479588147899128257926602710921818370010964525023414872810817657467918036280376175264045711705673187932739670282991426290350497079608743435202085626890032901627535577726635446982082839522869666201029589216347120122335016983855662424984943827073168153894997124811940356916949240648524072218654768596679520459729444224135856422625435549487631164526076490894878066151507897447582522297081650527473622455017005203308011853917437267725947962048144656210860436922589474235336978316553052682468803662570507962440432139958955707013611501888854589611702185282640607668381215945607826708222937940911655909146573351231673518650658967533181376792331542442906702269299141982745296075479264804451226657747424893275198677001069147007984319208433434515017860232933445122678130316440318600025181708030717119714492490713679645731228195613598866163601893980599859094803649104413568676187285724613647156878486424024793329538759028444255671706673052973298863053461140093089238828437515060385711500467047037985793474308158607611115643083544781175692685527067294457753897420818649327800030591475208514570738094939164208339146189535237232459228809200302079427725717073141249274246664486619972347538235959778902303824779200877330137348195890453497208949621360997837055239667143931399863757548707829621042091846806285047201269604758247824382321719019550959713726468178031457311270707116714567696625681403214747026780142628442625593362869656088718247841140720233610230827299212790861604234030799450484579541220594797228372555794009490845575351568169199417686987159823840743059923588126239038794839692717902553997238875912258792300862537214488127672104916668345111910244587784179080849732336077055800854236525980078728054367768050579154036602864674769298797677061983534309702214221753745947248195158703725549985768558543678758382086176927083592589903781586259139899331112882592350765097947111070489341170695024289323072262802247087698023319244376768700612588534206509766130521573335587497674005431472366429033089911713403602391860239549668272423022186816640480031574787756991240970307653467301811007928544530755411019460772542832034550200503008777425438830760967460202951985149504898047563702558606356329212577197665815429607775715425496236343166735429143068731672006102954321091715059723862844833319835310248499907558741547710088151286509705428804849029407528814040942515977654156961219446161270574946210873003463647414039751941159991892029033933900859294227089270392417683126490063675821547401261538763209491729883676889767063595067755363421718163968379943426557465948522288252853383816100622214398717502224450364261749373208852207326818741961743638313216238008565099363391227971315891141351983162114291048110444608302201972752118009421766678085261218795821846486770032461507347541536504374281430027501351536208200502663710468784592958755246097594047947123343110953067851891798395486426703177558989433501559509040097044756842221550707991451367899388056613379439767013095953601826449076780932936827587462351920566461193938747946282559470649704512317188485864805124900609813976682729455192944161381489110328731813567769223846953078463872600555433264243528324358563357261317198365641884601509152078651102541854903177280002545623958520723015884670368496295652172916495298223469940314392242385114098196729421236533406088193299724576395962049179975623258014900294185754034964349545555517071288977365638428793826680414636819525322847297852660815920708795262074726322151361472298565239332264456029369793666846051906890441499718081131368852261890000926131059671980413838034223144903473466178750958551577076632260254816048242639389453358222475873200823421974851761947836455840098079576472250585662671949066235177060221781491324203460266491077742108005233087553702778067521409473567811748859968508332077129087249579648409848376787590045302338098822435880704777689280932907517818813922941269958474342672214885528639782245242339667671692754604176349256008843487621159708728202091694920526332109377477943668767305299122284530829873018487746370291090836621275346375835372691931730597460390566445839900310690721686198628900006293192213903649642023342883382043568488873557298431816938152990674752437123420363719511732457586093930474877101998175572480093192991515026802907627506393855514049993571803412927312752063564282639383150746515677933548096424359585068814078011741878658333203006015729713886497467698323469282596638537859650494647684101549413577148309266250948914909142403098536986718314186745814647986024165849877723899870866746627529755748897333019810752157171753667809875790644154725817118931447946781311902563280710886732047629119824915567117449029311906283182633474335556935464494383082004942190050272188069641383303586144365294320792395621483024175860652098371384331367939290347462590300404337499879010977856175085121157164693833027413519133844580251182499814408387205577286019200950999680292061024588748888190499649041765993090624080613462646586564391069940960171853396214932194132805205070570948401668050636982424582337393456578119621499030424924693159599996534608213004068366171514408989254696712582557190237089842376207510703551675810395037296035501991780825577389749809145671599914804016317557176656886738126832244911598772256778790320616777576711705985307590524776840242335333611544370671460808198395916350422323669871373896917516204163245224912948779932942161985659000663488311293493255126737797927147410240761220045259817447843265431836310209417917900454627724684992625366078680718781532633178123253743369050833837515699239408449553577092126544741148304317775960918427928417904507881396432151085177301746356799896754604457173443495936731184684442928476693088305679808360229102282983845420296368513588368196916947097266139936660238418535097640358095177510650451399443552287873703657809296254693181970275677862536037536730207390846208461243273607103201386525141913448843981214754126950600196317867155127489593866370385256529692025956865017868998284225153988234472352966483309051848326225787142029710951373715054567215511089680466071294118068887429009549589983238108233933645753324584926618050529633702975600374967829595780176237529500529482492223017813548963766840816156259504671564427473352076134645481153219062037765633096190961725766770215296825867303555624565769181361030479957916673498866469449023132931203885110807241651817104156282278902772239703933290869335280075444971862284237305697467610836690326491799610398818986256845857253664861999385525777365542514566629781002393951019362416176491044313564674301049283185864645740830466508507249541801574257990799370909519210147413600766876714254487638925429262012245688436748736043771645746141482496238654181131083741822883557711506790939161999169648182656708974160867723285290919980472223245237932037922682571888831522061946019631177775016472567158299254846826976802225886613436999964363461186874077373134566596348826127892546213674375826658018708008005080118170843058625252668846814346865349066759733927464788107241864090649342092108050068491931045986010063896609248059236569561283232152295377587854242369796897800481179764904690324275887994660719609872575802936128394516802445991094079103489233364299778974367177185446828608234948734077596624195951240545530500368516709797104449403945913030799662331723085451254831429255344541534756922462440033392004928048062403149154746302463918565411017761561667725863872973829060047258834432693110476666352319568674102514736908940856748028355329333269264714549836366554210798342488305527958905787803688488063219700740759256176430924916850491582769140107188875183777328712408814947230240855228638331245607269614822925327862810681722557502747478257194077045671860021781052134755739421544020347338141375569883311536249285602877985580301998402609633724017989408233780266218681874616742178735957752064762359686319371039919171596414321692399282983342072794370071543666735576045936372990654826782952719419785772175398199473685863684174953401607367922475241987352557402089066387804684349565599845912157010824852540534297347550051463002052327149462659591959918988262459283392626936345267246591808140366556957360873440002157138149913170509970460726997690900704392167843256389190522403645550540951243073724698326845051522815722724882098325989994972680742934466008599458969463606263491518447137869806370352554115510394557919283884823059288653640869368542324987113680561096426161748928454583721012657044380919954693485202293198159410511818694081458257637647097407475749214421788250813310816313691497334056878368217588199039949935688967426497785520647037924552249518371811728784471529988408312670621032074326321532612156244602435851862989578626548493563282596418890985393661064004508689322328896030099803445467091580274993456580245429162716525456384835249217085060962957651215011736195534405883111645338409727363733544490247798432800994687357705888620850421703803333584785719246952605517708330111614964208938825731421991198087125474178505414807655714002695825815322902013560126442919948242777540140028691440714336235749961293221659959257137029537692868115864617634974068862928343354255191973502995695669031324787215988446314699808676600244041865517061997292926393412543684033201406674548237341156636035411573115922121982042866883633035238920364018056088753562731400824305336995467918264926915663341407324616016835167460905558607311197600867156135448923779308510309949022645180897667725796149037453492663472790218674589942096673056427890795145463925677074849662559460824833946201983976589518597181553565092096843252567428304164557024751949449190856935198901951264735720835066305003367060897866163437166207341959252416046917153231441030092396266569255712224694325425057564689581427260041969718808615287518652595694853103162512137560634655283908986795101887592173038512960762132323893375891776414459259199497241716112750122763287588559113596586440083321879385419344377936200592115086663277054875803288780419743847228518542476056406408993161218381712524245258663035759470808045148102849946570412788646867907562794109781795169393408341578590703955764041962016559589334401942963970448160305864513290149147763744419551475866859022420658444933932464753729932547299656807904708840835971512438219871605372286969467650085072957223723422367663687732900301757928968976620676790041180806772971415261957713976433455504096269895384617223155285896575693075690626325480125435920143108510628856423403465529533987355852982586071513514282634027861049547101217447163504895461804027009711912853950864167086807489359445615072818220939969318981749385579724058501466551948368881438481198007570054317446269096860373502723837027106685272932897444940549088173134270232848740703370488677593596942490518743324237034778851188865337817569467907914920393777721450470034952493206592962333261506330556215760026554938443877473085391957594772362334140958919846117277058896245905865315310106475507265600843002319757548906183960733906927001384648629603997604230359168412848080353152245213966954857986122337982580616274964687460290068744355841614782837747730930115123731491093118402731448698540121328739245897855089777308736386663648207415765316795702948862123030079001357416955497193725312767922272735595950138600933067582635887470739756956844086757929962595627548703187114285532709024793277970177078294234258236265446692755163421755569406087705427061262800511761475558485994788035487952619590926953673488092328356219524367241617216055310866281806044685000027547230640570374910030942228558004326119771566303299818786251068956478274680256050987507396065154959866576524779382575568766282958513196145317575378366005358757197896155791101928319004432504586237383237295691185761985438180320978497332161921799602831025610733745748820638814442494995350489799404031239098556496808231948266197081040751354100893410102101884609920803435412391931799523814932683276629621957702076451629903538876721083480362401494892754488746098998497904958432036751857766590266830886933472758740755153419565798005094802655803397628518326521791449189640589409923096416030760592470914956206050596881384763534093659471618252004478344296588160130779760612006529450542692703593559274861944031085328660065715653981957603562970803638811666836274258981205619809194858521942813331369106178032773010936152985908933014319192239943030078288700720149447045780697987103293642290650240162701284019622225648128921425149747368280133865051259223730010187482214720818143932267639269322213350959037164310513722121448469097294734652207065078374229758440165057295144334960839508610458611131464950290731381770620252119795732173537874750356024253722676009930335950867570900262725119535627852246597596963276856518753997645743483774152908125079630897844469719030011699693694793618094950379689383854881981937883127884490499474697654998645480980371493717243198958253133468155514538711044781060368248276413359376185367818906697214179886682817402036500632100269230419145756526351765547169324755005677947696233328628266669763977128158866980384490796355960409438501435089379299763437669872038754472685004580126197481137269444485729112761539317435016338665744761676520935814246299032480152091664690354210637237743904275518443282235366617132525852358308650557336515185510806646250808986018806366434136534757758869020459571663478912012770642607690718142743135940790911595658950829102712703227140021151804108657757925226895084156992853839784100124529906612724551142150502216788014509234078967881003416223939216506837865811032051863275952757719467522410914251739611588853631069594287665232702150184559665767692202509337060129603635907993628315999340564377704010402081645560472881246930669194696666861009733063811804906436027032562159606512023225650491043579356039846853716833012942198969412814733252998155314370361160520814681552764049309216137300310253714971042554521127598404768666072246485333652361000709668631437651986856394239632338533477101744379734392641085638163849893854478584229529589806816167408409612615814274183777382823514473526902144826254416354584889947315686429737602142529013258636402270354897564143596196200200461630276853066496068847207792505375505060331856090792064641365999982166152196269043150965297457316813704560250561683395198206435533814285752170949439806338246019202285848074616986244281128877391678390985481921015615737925572038569950377077193167658990785108912894866424770813016067828575776880186199250993620112512141256497961639950520142015395581621511199693907097637696293696712166286175373791281367089465379174241924282113462852151752212004835210958075563509386546327845769738807025161289452067777451553953573652398822645791714237838348508391006211163453867275842336803677798956307163367980609987154208761319441195749514817203981166113687990591936514847976919645682993198190881173079588028520505652552224514074805891348952695299171134974047837720168509282472263271388069658776364763626366003092632141310767638535739592838178213828280701379597448040686568899008979273333898997709082105596841039433690469666724497066287140384834573288288255375744332447390253235209120297396091217354213009574667129387695669066898090830214699182162084642489818740963518396580274201631853590448061386066765847921322058295407107743057070460557958154990652584314829802729109307667832252397344438369181853743911934598519511315302138627309356379508406726274609069930590470279880552998280575647407027589094696845797341672025747582882861661312715134773294917860428553424906439798656522849904136187924718051230954836232199506291414285923654179803564338401518430618620463033440890014111443038010906281595886586047947796063623631196142217271280298018229173117331901236183548613517595394838697162352856640121205393875383466693700658386269117314740726690432072399291822322772212645780296956048452887085528963313335067515101837516675800103492488910426801589579248812822490570654027491933596506172849700941524079316639280451893048954667726396767061538653928878182002942854280995741333746495851907179280542923691153473855117130993062822461217528534463319724697512137249903467444971707200204447694594114141032927434072581420686392136587888026475659377770724051694875957325923422342060486293275435521476305375382531059617160409762638646016873561354258621246745078605008530341659804585003704690923731210204128590714839057838519321334870817617306723045907829400554448058161149784653546398643687114917905650574228259564532633977743981554442119534018326505789886287093709462167085661671902781719697545206486472293180277582653955214465678940069863041991072284569565400450617203507933323443401830484474306406841071899807286995820530922812951846067761820566339329313924477107360698722453937952256994065477162009201490028113888244152700559210903651989359075295531623310339716636801765935641575364546794659407166650948329129154855361132472123088481353475975198643972160947448072915354791870133566478813334835494504488586579295713470073162903246677714424933007303072344598646477389447825345236029486299850391185189240981088585810360823014292528283698725847679370191994038676331956608312170539615691603064575889435366579718985365015176698954932544559871063797253585607058409125240492603106897376264584823191294563123458596330385899163695510189397342890161488641760149862728707427881352933339172900833439625119564280935724421114385969960213677083816805761002743640207455317211576648044643562402131249356459210535577521534492160809962664256381510353942405556691180609761721354425632115084629856611110345123289258113172308948354826294436972854629983262071503482623923584354394664634051037970052136182493499320997633666069880445947617340018356316144460956537399533463751629890879601072780580638329017291061258695803953096483343154938434629022222346121791281458855953103698494071643526743676059114514779706234313989741330833920646726973428893199976824522568121329687584339016738691663025674334024455052087189066281025978776380118207561324753405100088686553933267769215300170331742832273034400687067111919732884044282940096356946627699308732891438076943780427476594831579136752858625704853273713406871786276117363955860416588387835136583234991524225880044785362183200493716573456520267608169979685295230392773383981765235916774220618059581056585570883086803021797343475322109727745800009960261961039231015319861900796380505532761993985231250980892415288103368896970810859890834431220306431019263058388301557215495592878816785753955618451865717159533751109382236186685568520822702750377614044922120523757245043736223931513959547839147762164644214977944273651610557473603937684371514447606732101698737310857476535032277121568846532462302214324413525999218344905572264855589802102602998670289093116341125557688505633638440279776636069171836954749798212725313459905216388538511114526761449838536752814836790270794393260022791166559790471611818666596279870850263029745395339209751070395443146783582499688528347765928885364406375819010082309104445618361980755904890299371711444514702880014018166743941995595487876738228043667798701472997354345054150666014597993431216863199730687087314251990341174199503084708078997395227977015291679379464301734741954698992378163642193998366584245610275962217635411159909365539334862227313581449508693132767022314027956836285781461991341975902099476200228616783970969708081771049630359410194384397821491672254395561500438189553035722553755713764832499929647425854464546877556915629317220847683071416255341664017918038000042557488953112132622571631677833861949666523586163109477243440572373044642533993579084992123492609767261121239226052697705059717154127530628969781137263811908305011464302913875897178628919447292794227306269932402821568012882555018936500204241165302238402389456661174448604243419291563194252801689973322510800224166821668653042124977367463240169322389877870789046454612166357608609723503587569458299526072367509010541431454911514212207100569510572790039439973289705804115125257303601374022309641861375526687843258011396679697946923273037486787549332817927872830961572387888899564184862805908304002724817936606746200919337237368743111406433660467015586909528488604323601484738662587818863852986864930598851056308017643755532206676686011757287684627128571096602128014481404544005388228365317965914574026740709246573954397353608319388480832260179926148255968074781974829612441091696863547233932733125308457243461144053148206181714007579836933209482635993917309828374566451324308562684025341657879274412198664118520805836745846167931297999713419212056798896059646437471040716532806361835448516696988309707125375223258075020368140699202020094286111231765196016157036176034538381440368539830295275769335963911261140547918261327389958763498969259470882733982512157298126829710966882797276058542138010970679834820850783638293454875258133535781304988196572328068106444544955858900545064945492226726657815022345743190886863099474558741843982075326301551438136740892693255461211555994597587398847495720845579085381169410709100905851392556337753971255328058491117502559754908288387444764598528333839903650819790864121543087362044204200590059441019218080283284844838553152936014231755417715774812291936845379703840653385730135366060131197350270665871099356539143468058554291501243304612985312117702873749399316912592637091254952927222939179710801618906498015563188761931470243487658096419546392580148857435528082057134220583934924506714239424497090072721834563260772051770555238927053649339628893016030175188110297046910658704391809348831817496776450039861158723458975259876135745053418662208580842700841279137625554300650481771169711212115734567306871718365712607627199839997636012207390995873544043232940883255306870494580866882122701262127041763712932268303566677471832807586573288128445969213079737054333552187449496665963028624050486242332552746174887257464657994507933391272901938167539044430147258580235680371327618778894604880772199850541430880872640978528963294260123884459711580664152526307498145698052944118056518721708429376441459148341449268828629283861209113071164227343052472846074824490815794502510024926219560433916732588001403417810267143147939066137082870923150519144364146170088622507853137280078987334287987179009307974837057209967979822844731029929181980505900572875053510866396521982640635277952447781365933966672897474111249471870249346255389910741517522588100447523660207150031531488435578798320240764648767186031189082196152981591013710531052060469577501790004147316779380916722796616833852999741794743994583280455705024994959327575408018251746900800986852981039509401438532093697335398405864090601742989236530253161033191168586220840892927674432844890949686670474437696037020603606404789206986818077202719988558298496710133255938107949125469321651567527324130230267073388730213644457055603448454060964797276681388360544641334239366520892286861529909136767862336987473023489124054600793207094509605092384282441108666384588192199348549811594681518924310891020254653187852066077480332155937172698343949971827982547124909408883271339467235368009386442515071613004755032053249515709008615936467789071255782511652656371638925567649211767224777231813651645198661353392784042273252965687685732691502170328957248108948503384426345905805428755262738168186729431671366824048634317691909047616746061030272373537301038157794505470220661880883264707543564133299772325159962009699963908507593486250385325887698700876919154602413373143346613307982203902733476606391821592237439026675508688087941702846991970469666280545120656387704198144883940718726843188395474810421155126921932338764338284207395768631769355049955385840151326937192101148603801981436917429089894532004183816604786531297531740056281672962896117229209608769453945465349756352146766345941730257065506419918725716241693412641737873319284447767967343670394600502853414975911861627087858868704121612987983224359730673924369425387335433248978852234500179495136737768849581379818214022170034588705844792614955130693910284595133524734159674022876644557699229103899419540794632572450360998297684699695579048206355365348857839159421315646852946227885333638788356540069889946754467313883789790609532014298619693624259545795936364268471089064088536244873048742963079211057737905751844150975556149120661946336913640453904892475042641769831545541568223449523062391712873190591635870568788259608773979649122478383082097502305310305143889985142977751206109899285640860297983187305489794304063190409220233457879327011264330767746831817039172189871824254129832342017212542846508210063080521851763151021125676128527953400237648021272955927137375892346048836876243789098675768190859460060923512074721152398176791886567514931917262335215103402536680542483015192862855971750835327896657917215510333321203455395702661261607232143310092204841150776326489486904241354572669933852493902949560647981720096647971508967606680958918128206904214137589826013003539732971342234216944568183469556368289214991951609092292023717293148448423691829799309839890494914906895871710245650318639038208288276244345258887574301744180136572040678570211242801920770609432871774416707424979840244543492454500478975373613294753818334573218741335995746168957364019853498568403193332011002510274080698902201177201306471220324108381868530298628867915943112075889348744999430473850780082695278642624042167132096142688702939226822943861710349483181811014584188864046776060305477080513365632640266249574166168611024516892237749154060507970949868024556447241056522739902853579368946436727526530211838802242317289930836197245252748031562945606851774269244650197346024072679284931722568057731632161856027743272286402190087985983109843545331961907517020076204873864491558553196107031325501085645570613034301615073494247094051570770994779385225817227357222620224797945065818099495028536055306986900360783466151666618704523920234785789012318315719108139039759356400853004333050371626785021698156425711082882949750277735124835226792503846986014761729511561251046314251130597277952264396924505922870252108391664004174687761831406975419167142472779852544549907944095042027087551002094955375278355922826444876870548762404466712847925758069709872039081637972595518650715461534401278146170309325909296936897899993332146306980854581174427685217093332393742817749234564596124376605831368210806530053466375142048206761893835776611987771372131005313293578548130601714787774655682765626579039267988428973625630835128266916714824938427176734872205646352726656234957492618674793040218886654452413892084801591408458291898375194344609957511189010585968266539031699937427506063788990348660432898928017152620828871092748053186265091060971539506899883099726724794577350135093128213681497624934713397014407281373960616563240698058232059068084692944960470613594942301025019071265020740392365973546184835351460807990275506313178672238223680485761979739706327969841597557092260977756495819147905121445161022126870190748029403907580088414366810179839593861525505280388537666195094252986631718294618113706425626262406659510681855313942498238220407104953155085841495630999535742838707779476269650513590972567925917238529081405634037690710361796120927136123988910310878417036700985690144940345057594207427347072756033414463049950673719741418067736056256237113716309240020896602610550081942520043563753589639836141307824339367313641661248929009312894041065013318225866078883284368661361448198740793740697720984310062446505498136473096607295730385107092256944962340599942780440985651751089360605915463617582570819491429049714778374933949158673534683370598806489678748836118596397926482533736883477924026572927526968793515003564607599995904437443967361417609639354689419207104568223229228577724215387610022472109477856202152977288287327328384407443998267662545247599108963771871213023800617587754590826366807656075295690973651073710783715260002152987523527733175010301282196296637360878951256139432249597132394180751653691148902923395602116050338659088186991255873617415015941529659756172152649973109857456039343358122283842002611906599922426852459072724940315656966225208506994396736252744046515682754965651839148457595707308578368243593013064256570897793121400473742098483539609199546934124832412298441549710668139465346642580210174575541639143557197954039417182331579995003360707726391720067452217267255153239641436973120882338429224361117503930447927438083039743338143703842159753858940195217743665021783761267647673224355823649995252785923907390517012677939503613618390851790955915906511014943363692910485037490162206123319170220573453646985740616250044550818779267748613014562862363301831611828270714907324324672976880831858146460977760827459618042927530726145749234377671699525963970649474338270924475938738586145088740807302933649191934495289211987889663635107858276583544561988532343606432918609916020645087673505300807384567515121418613672470485684398110378368223839387701298144946912513145357112659155760094777654946913981541200998412459568001738495234528596526155213988689230985318718482121305637956156454309847024372981734419176465903629521330415897833783342279915953833359911583289555715170231934623793195648697148624810213835038630038562772657203165333006724555437589070027922679701214567021423638788327456430825962134134226465711663980374977748478383521913919125825056795368225362837694434868487977151493004572293004527691322487754417296635280668270356048601798348416271075601452877108521983340853643823526921345966193159412930161960878121341541487065939799698786467097973662553092595321548454648759541740596275509005775888168970204540262112301005460466766297457259875148663629783362900256092641922560373999539121977532104268641499066369748943799531114850640884609716973359523871226321532901879034153793039048046615405534649519479114019719401762824335066548976115695953010195907171657460841251483145046115501533834394421145880026436465760552017557171842484645972151638533506785622675212301131132608697722643452537924029156491601314513597903116966277651341038875223361982343769050502196708606632918729697420823966244671411060022322430550188328619829457612824402122755545394357419974348915782410538791194743606863421433668217696242797003855381946407141505259088289254500455451819975334214671890457968531189814160517063742398739646686508241021655029337047308661181942666295683820162525563303035081176372706518207043672690525923623670130206292383980511896768463812433634272547624882165244240969838951401699381997183677436177677228103409621794849735001048950706949681614487436103387174539154773145999672351888089754018856617940797827993068467165698321205453651610938320528701508635174777575276108406596060942929540198812923768407270463265075206307645428631547184679087456901078993834886057800044250530992639958235016266458624195664362007661495606090698797173251337500509638948688658571513553042854806723239848546124506499598538349865248223957246354885421124268989595832860707429314183520818510344753699024871614932486529829519974232847817880064280895597178874041243927542057507430830678500045777070352687145020405167112702018682917379382439436056358460718358124900796536699934888224708050900720532264200271899443232251555814542196106857721773781165536236209357649963285320422400275458086353516720810797939699833326033039465529488041937058980622885878119338104566557814357970836091216288103450240896354936113579421401921151565389927693295019157960220101823108228652008142598619457415763784003468782960570014409613553915522903412293706480340959010586153210641283200604389924041031208761436611954402739056211748390388829909899971466330578852894005043296973246278980313432641512550066200596843305786421854785243133736200305533212097920834790379996134779309570245034693732392259859798377918692875798633255307339106231908721593755854585899070367607542361193195165601964831891361054214223287962241294507618887318699767598345155143147988670695803988237582466252466860474131241069432245336340144779858629787601566381802578546915501073960386460884544704112340396444655075010332934535852718468372589841892577426237341705154639907195698251188475033277514898890544373330153237784319394002248176246590609790592765450820227462591728933587961403767043929785815317489017610483434437011661022878622789058345507884685216686303714338280063348466012219035622161250325641174213789393798314416250365870152313305359394314338094784879294331383432181731872990212974311868149311815634273070270533220927028100195538314827737524875702555868029816346109925686934551527882762923707548718259663015481411920002310657989720824681428099118445123788698874011242914910171369653601682348422992901536701965770456758476800906884237807344004978416655730667247651666188222910662776315878403412632082346232802723628594831420256652084526184803190979896360850761260599597394302033362976536762078761206264233450132923449258589619482902377845136926526710255804071902486815701227128340458723866952370222376589145783201693244556440914496105306941854029299997834152116293046004234144184329402284320959497369427169928712505551538116488338733300439527208799792345433899947996903651345979866479274348916760275605338755070659021668329213033774245446256635341556326405605726415970693708269104892538455965130660305799239917693118963499469508618170700754765220371531239646114531458888324555538331861597254580105389693186946470704719523463599794352095208813509873677982092565739334482974882138428107116717744459774976631598358071340460613935252792347650088726180297918497104030917557449193204310058319553769095541212719955510919426173993769422113554197955134406976335429334057003787336646444428146565778291469877011606174149194918850699520455408352766905644380558753940624706321877561213709814230896395384212644165647360407870685281562060620452376879678717378899375837530600128359179795889092756015034951503008352076609453663425933444602564724745340420797240192725662742773808060257531206479340771534281876661478152983304431169924099176289699693808358412033708558944956553228046500070195390938572539560200383682493441685476042106663384270441538332482804021236818571007883138946064025293493342823093834172373326890454769704645725729198754964416924071790210244370304348195650454564241254852292903679767955364583659563032549824317041524317882075046454181537354505164983006958809379965748394653544209092247832124831502115174179189611999864324593872847837302371966639494203144969657901908879585257550221785081660854401084368531417598828845155222185364956419615802011957333085026899282984138222337371455077410307194027225121905777794610029567885282153114798830830156611345665054852597764978584525074140720168649634136166606174295750143922094807267568261950386752509017140392924801874812170435280862780666691743218302449577239765393995669267704422232518659123635414111595029944291078443614866081942025255970722676738268324368741528105184120722041611428293375654137858808837134324230968745103564969841231675603488461274641938241501268821346495771194686458074708467790950809956704678128886319688177393577017599427429278391890584852429920295258468516753579242740583173734180252385485375799340716177202361869030336979102472423971366666931974985527641885006080692880217827723390614782164528584387928218549773849055574252248935404803462110520248912715633781760768118264869299462286701365147809896366098191312815986608390190955620301806075098848474477360630073464103132843567044487889222699607166971853666949207186158569065959969783236212961474405422312487178792325975540368245469612801962158206037007749853033676289728073757249755803414256102710756557372177993985931071246333378764094269911891067132526200270751537553832031280326967872629358191917999664535021453110393866947627736868488959707083822192508940254265041356352186527170638321260397277327328775423951522539220847572542216998652630932191409992453997076973287995768102689445462806810020951900407259299872050554750745666221818321840807895412353897236914888100617236523481974131566065812638469563362688388907169521635373255713421944269628693194890383892415185302161631883621564745077492232600266537315321633497225353218110541189129103437762076580147229114638891617177324518619652385260333927521728886186578828470892261909716631264056209335387043560892991069606115978341460178728360867840088117470502991465908621735649117103558805918959499815233830858214032815185773270384550080812380062052544012703616177642378259108962115357526793152102451522650728460420186182520096115203006033866408382424810621663627602223721242201383202118978239741178351157322494666766021794079327946575721469681321523004414987469334004378567683083787521553021185381838161068278401062566456375591981067025809048470696679935587855095516799941015630453201256130291401527300495414808992774707291089479618511035037335935751308842804176303837049464282547069401610370845508867913530988486294640889299185090452350435846029321018013566254159045997353149457957675462472693068992549822452023936494230828188589275196260189957691108542866653092906275755293688585017698640956434535941274990898191034592061860522062132316572149126207005422088853233590721856935524229346647925460614816047647499150989504847345360488796263946264203489958417659552459162387318997829995951614076339450702889250139195686595798086884146785187289227433889312962307770997682469374926860259375737172375573931849578496075628119122633203392295329703053446141101192930828587652016897792814507568535884504931913423123368924704110986846129544287416217912924176562409988171000323815321228524861618267191982592279675745305484723769205375349755123312620446836496825621934377810355613277983060853865405906001970725337441010794405181467348154352256384303092850870530332105009486500677488941244146777618383604815458435674131632639711473827006012248574762606327639771658459771395399043272556134768386491848716102959613306382968883360988710102692985497935388590705360110951189079938993958298563070810485258290154256689280535739127365364020805128525939896887031901419997783223443643614199550356420698701886791319420374192682092742098915943145294247322920110439055568233848608407860511664287670371309003092846659754262071232614588101370619644182588161268742486690666749527690693079516051735577075562633155506462254381739994215677359461662760519637902727740267898704374719788096065163873790190423914325033090985321464011356900153973716611741475641462477096610133036995089176587014230133095755385232336096735978520780305024681696061177423399021326606121829022970402493222967801216812640837894419422255779267809891847595831729089519692813067668672746815640460840193473483746571250770127580840650574130058898838751790716068010276675933809404371488087702975600001613301490792425046648076806036744774507103955815540997650545538421465097127694609833736167509576473261862856964444366130160852027318967402594402089253644483481674196752951587590532236865359694492933294524210266287297363207875796826908860901696710526573821540657889888777061614123548148666684275319143600541211944613354402167920023256573617257417389484740216438651694875643084872154061008360948034269608917614691809388724244645501441107080511387931377642046351800065845214607881875591870754692783040680587658586222896227722455969896103271087043708914212693602996677854198761851593386199388945013835842304835703038254385305257677662815428183716118400711490231210697550474645593395825147852558200494135637608926017043366707717430008994950293237217883668267623055498374458049060580314653137141924722367410020512340154126313454091999838212646767768773733027413729902017137692066614358099733802119364085441648327547128574919910649599857469871782190206426520593442852298784521141311747918458851468251935892489101236378383415936004840323603152511148618661133730849362000956796153372443992779650706642371964149571424696006371741504584194066753096953195535832774248263528055848216263699470862977382582046094020373801355366840282940837895478622819516035300831617921835829470459053298670872041409108969889236998349437080347278365049172346861726425956862825436873504165923372491614323932203571542046914122693984928357139283054151185633154131678031390926820078925776839774597480033319295365032886041963947494703953091605422504073024349018171863600730179439168403291654027340947336951770031968616167785490418341229000668922634451414768724378269345590961456090991553828027195046763669218783912363467619652041138379110073824672789032145276070815830981829853292706742949219127255365544494327443386151705138913261189868298954332968824725845620919034656697956894990771417958525900194560609551886211144489926545958680691737637806811960096500367651315455416050453766696172391820288115418354420032146891102706285309052401010885942793421439749701057066634672917124275752496463210035007285218213570872122284376853031389345911795227731995765873628789109324888837877807419388695205692182812710134977579862798004333954462921140662803592163802986501379585958037749897129163367222433907506848165668853272769636387169986218213585755796232933220104505674271148845716516791569467137180443967221740144526763879253042043115335647993820778559367202260710833936666759171345278235547813659593342764843241866494098706516466088154170348669723383532763290962492093348436578658561708422350018164798532256123170690172797942159344172940111487732269315135966769974901422147420885113839381837508954917322877958060877686367390224848153855674185530362550147581968771201775742036399395109550481159348701086928433294023874101180870269121618516181384465877675512385122433616344860285170018537335131140522647871100931015691853892442665494302694611595604377694174986921545921465779327040412900198600405314794837223225167889042324915890817644541238767257923762035520009926999827228093803660981818604084492373026964253002625103366519051235453288971750114851709586425526599830230123158348682916395093406166484660809594901317188672997069264802002607099336027766349212207745022792218241487435916460705622958022527528502678552654119262997302183153551847752752518731935130047359291814970158615121396435913680214888715463739704351030803469751976642895326647293347053863747745242819118342693873668614111145194537913545841666708869460359329502784380089535411924653761943959665598331055903817161546709635175709584879218433082233068688969780490200666045300050240237938970536072784125051526066112260412641677072569754709988404441847658441824345118497553303191750327849516056786271552130071877681126574135642012794436236098506811585246073085443839959347803822393286079779243283131757394440431003676989925778873543161091458126647473542405223993429219327132775964894660850368112621517289986770971395936125605673738210691936070505763154141066581674353061873434696633638035538596025096675559363509383028657717758534455352436444403919400097242545099204410098474579009428299290784629365414276637896847254538912267624540228774040176141402986974225650883782375457077608650637662056822879638947823330482375045399796411625564368903755366526526876789038086291770075897320796701197304163962830913231203542860485531875401983463264929065834069801423491440634138582627015094684967704537535863659164407176945745338533104696017773756041608802136658780316795875195075407344610462089113703856194021697592969659023548850471825370495784849182832115135599705252465561910631617443350458464899699137374821084053381649390441731967598872837742829817125847170867476622085128783936693224779636819975998949189217401930575875198761611951416992297742705029635756903370102248478098788488892074496950627097606616302600105328098155497634678287850752541673657826312751337340028521743352897915419031583984907904126414589067520202823558012493062762139423559928559991112727007805336062356865690810886186464718531385713600795331269324530381161546937126268271837815372349644506011301051857752191462079985606323120839866481376388962976233060841692673920130103841872849132127855305978445797515300697276547234063704318515663424059810260197524854657150285466819411221961853460683713213147161370732377841406047915730120159340941086792886365902794723825344350563463627391652570023696654682774065443999123240162266183421651616518236122412426467358124810563744505086945527044339589752422928621635122200713553963850067501848327960043744061534152312468818229016910657442839276314089725851187519370879293792486010631755169633175139445071506981974067930373104297675441702924314123901892425478091261876720554951767576565683806364407940326290924058763320186843316818844269335854348971254444693045362010748648986624870173512425546801237601966783888287170297438318224153549507213953723979401354520647137065780245530268430212695641382756349353401344929770352284831844724424672094243070559389899896396736857578486060749023271250903161299961227840802786256488375954116098531486820193050617015297621039994326130245931447296962371301523496128629567802472386063642262140714287470174072325002446560695516066819943941450878013615687588458821214750646175919570962354724102606796494476335236311469395044164597861663583094071275518529614572615170191016195110202554989466832228926022714300634521774134914725429478327976689634736872902290785406940564429456552598749624539465984677077808266688982445937800636794992369055962199273581446108100819162882368067229169661422466593889806921646307430593272763152981217328250061313837260190702277491183431287714413937720696096234292017639236736245712599335201876789200604973971380359678244369197583297476342623979144194188209329561783237837356255210449690696822358155292721878695980589370774916788195502215453380926242540963423097771654776751233840896456332059747604508277109265185929359200179450779730969530420825830721833794664809005400924324156590831862841343516308640491244224706060094030066240829329742646327124419592014916080443265772909585138587059205479724205575562503424772922895517333997196335571069680357955192292615874063299803107210844944230993171831843796774599476296537523155748703613754523189653111526020871672518211439165096416888864177802867616870884459848798475133292725712286048574845183824747524551686136179948938029548506702745939405139023252370763147955038129364416952914186109462620803437238619487088999820761109705574823011709976186716853922624538698479911098047359747928519049527428455549154772097627681788253501880437766864471025067849392993882422191477749038336045637165504928411651354422419776465248647929620432757214663002736401117804848104512330230540355233854990959512942201186766508306362110709974760859454913600708120028827716838362711647848529588376210337880466173672126535346955487919928262467327620646377191046793561725966261121209547500842759336623260919471310029094250362600368252975305869980403324154418287809568185217250938648134164342053509855554967705848885536583814459392941136255688371100925081410956388064251983740976895284532235645057110874692930774747602026950676927476798618103945389653092796658549237656193785940189652301825343558447731146694800593390057709736866659950192307067933537365343752439382829402599462981589893221047476472413638583000391208433693015650087852258328250963737266291500411322992226307822640668897608843984268155298087788026130175895623626678905143253749005274317764661286899426660683867373384800513433100254244089518090810845495948412397528572728023247068142378299176910550979475095797326251565534097759352761990500598765685293196036376603926282590369974677113242110887776472627732069765341671353652441653040742694316888819700130022174236327754957303064803345845114368250699261755003658177444521602979637672329655295619508933532037910444703702675960976878123329413998958433301098322122696682486913389780197688446663894228173488957860372491338074540270551360576386988027879796708983540177986973192224272488506007847995073417457993829156516387231220798329204868975358597319863289877715250379924554385294544305116336349005657213551069655180671820654275008224380126766451917235520961103832601567035732724337539870034478329573847228136410684627168823812538346091434744827926254557942936582831798327364335391498134685233609390307396720857310278227107309729949196969088473449835865568942846596779458401996514212386873161264133029905933283718844591521086822778057738264781942153234330792818730486459768116653915551784881577850726601856378799905863217071156454279273246077267484865505582154307960900902180709862894684511071179240678888022633292362341970396071158997541956857823195026190471096760211121219643066381788478752204471886937103723280536082800560689481699582727533700034962977600957472308465866901369094494479245368369861980665876265647111803879147546530515783740469701044101499306997788696651092971427562071737424787850611309536979309938237805587807155753504910910994398642838256989939002224127904015894181647892594458450746687657758829832225316722078303499119764216359490527972267442879607774829613395605404057530041300906348432312348795490848563193813262755642707892408826742046835189999818258485613821538830882956764606630481494823997230782192184928699180092878251514938504922223340670974600787909699038319740740902555664118878048049506414113328092486892536288694326606035504884126208450614473406738366732899903967808182738587251691926255431690310887606811001806965118918665605614317232588703403269239925174139304136760381665933888789199268225172737306388818561760455279428040240579966590912526896726092311708073089841832897225460252558815599610753929841334614574716583809330071665677199751170479854047542423887343533284275325226726408012301025827183414721870156702147387839230402354695097006580556051594691602510637636771072677285772150163991100419831250403855933000786330410684766916968346852956859330552130832462613265092654770238477019287869379414615157555560166082375884456963656399727225099404687693893361846833915109118307461696870003230186381653951544890643885454756228964644933883091385015627467686172781979145634082930057400215002393741565768367473430171691367004453161837889361330050840463093608685251988726417091733089822633399613612344368259350892767042242221219524014612636185141867229160812999322095464589108333472618664561094698820475133045853910308168890962040003331224734196621708994525692193038747812750421196790229457537743639338142142377984957862163535172558269244677603345090831187272629515041698782503214138787540155832707026277105629722383952752179133185971133615157724909110104586728137809297387741175461733486444629184264134021770883452686881557088141161173233425782996225981323667397119984770693029241912653664703825254374495350410603905963051998371830054698781434809918687268487321947946308056996497723139964257843277790832560516575202886301618357124385233676386379148603141345232233725243767672111482085587744177782447640189699001143183940374994515604399315721304475108090488877239748380634510081687370918392070505327677127965823638820364191816443670114024714625454587494744626984390582648599885432418615818413524499198940303681952429402498669911686798482649160600236840303785178544424821408109382873398771292996324451663351346318680166966609126790506353956719601113066486123374891179184082352917748995354462771715067585149509853363093961777584689131744372701037222173870220022267896378144360987485668199443737166554942613859919447504053858449820602948393396982481907050641488385146166726051389637904223047093108727365251547233802493808995069646732512801681013826167045940834325808396038662184112004597617671911808746461801414316394740914975681343313634316013278055888599008477263652082990940384362717785300803174262730611270880894737566025864893008573958223486537839211000166846053096880383339085416583880565951974736322350017981292743556790537562129606479712592484288684583379364598625007762121762126558101598589939734917895385795332468966429099658152165073562825093070641795704775461432250006936929191996095661192137058505129581243815389503048868310508674052796490477836408470917926944496469788731217866302367787549721627362284086442572978456609968473770848169310939160953374160032235301921869964420984756217852785822355710702295695790586216442104166428490290170291362622648491150570523007388321489264634215768190361821845075581896003075686887400803776979129248208600585980366625594278169473434023116408299710322111237731659518314438745821783898043885125806262444570431625357846755619648014930447876328798245027920094551616476097867524482620582700056791505877114431276076889900050514783303956438669808639745183890409510154244173907832446534987528821983181178034970045156080539798366101903996190782372532239017397804592184176308471476547028035877611828393758966275603021634668582562336197090209072223016227810001042383043058002598231501804386115745447151176481033667432685754281074349104352462924009932281567731151540602817595078447855993678743934141822320925834292183546871474754199929085489967208434284969963651170293487055092431683301797025813114331200148849991655364271403461107970505944343528783156809287302259825671261230462901803506730220927373784576113626409959084698118326864853400082794042411705344641338163100998374736538736852357120201619930223187479767883038184073400634405631935021387848866071669237186523188721342024375931994251849609132707093514039353621682650964553515186179984959746962064978019165053933679684149280779904266374393974070494904500554144232669360396643398840823157701651478648522142441419048926416978485141257921037772378664143001706508907836120049778585359405634119623957803770785491088104573389473151804034472251885585219101835715907846472825088159571810673428911393483593514589103255929355164715811048640176704252214545016170722956216541850951487363971128540800096405434842449718056441628026597855974792451342999550142532443849920168109585785240923757489046925034766881848107871320534553232958364847999821878575942323840696461154889056278385309019108243682996367399736792330288024093173698090990285391965761280378287212258692346017243771622774238203729951454433594256657891767192642355403528423574867824669090835978973129908316318719605736042846610693766593471871825856548246270911561221931577165923128507404866667485326766854888442094627897916056133155436485649530276871244796212379462441611069250946153281876442369707417321819860669258820602300109740023359672049270692676470374622433170581358413977058772266096996796101178798938890609510559236079879194480931412852564746932497855383389588115437408491406875709294823423655848942559164182080877200725982051751468927762523148078586004284949953160576214157292251258669845703812017021026768686422796855144095401195088999711980277091034634835412407721441078228135595582092727687301997297974488183802921589767625527706856349569628763782305855941763023647762847314608717574248348737173415155545756032836096668186060418513291306440801294991134997369418358737342353904735893056363539281950154450547256081602778677992400707713553591645097186910176739807204376860813185658005919750681535242831409104268782504452806336580331254459613615346183843775138346630354347514428634310186860198995074493321305005974685301185018518673356710785319404267454487075351219984390434489359594434053533175671710442111315238550697084292395094510213676104450769391024224742246300453810519911804276957811401579992115012333446954981269449510420550372995855858034520897958971486401721450182162151226799141726294327559186874805414647410784416677206287353407594342000594730967338417256526566691627595728460886665194377262948321369567731423277318155573032462913129803131625234346267565689926048622975513189983523904417865753791889366023762365693176444337974025759244254926986804580011206475593780503361964647934681984485885758188885693104919609409238540995113539717125039587285600586716897396293259161907586648130473220826138697652471348081434568618987172871084534940280341908646466742669919276445716313557295813032352745143565989984958133173813485477897228170803492690352398406719777323952304096809454294140399082993233023080737101772279271214127264059061991501679521172968111280578115680030528573500021711200770814049054386619292229710696561910328453933269351545052594767387049685173202563162464338348670435699660193164117907481257306894744622379181791713814127923464348695683460275579149924270173217079413709080644234617891880649995801573901159318437249240051858161134549715123854811539679970840244681081552515625367333531811235432561879058814081302217547500895179039873926834677391916426265639012494476162354529034748884948041188818730135320050753528201656185350509925720303706371925050686232954659881328072894148510443949879427933303834209272070474029156355423446680448466686891166043309890689771836229999716630932364933752885421545418155574602698462637165223875853092496881420876604830477986454995895579599351191503380936424687999244122086715132905289554684689759707075733065168881310454906037385390484979887388823142676880290481798858913200893873482385144303607441339863902827392369601244923268793729697311377320784695394893564799458864242012542450555148160309271459388498872670890062499019246769810818664769651953049894378382115801412755221611296595000786274894007756391130278522698202175376133951837277841070365540237594494240317305277027244511673805043385356199498219009996194202421852113714757178735087539876651658935154195648832850853666698781525519391351578821698822141954285354137478442601836376131102524417557077983905009483614670680055687448291747658986763559662555690213056378777334842697222001478755509775316397590215743186502337570530177080747576832235593745716426936105982808654808320062920926433977835949598471840622009058910604069409281506662352046033892011796894794450272789708210727182192670685263778732236546650881633530579189402535373677182464403484743847306127055727101422884069947011475542858475097816491343232285814182409830270329367107066184380748651787312657528362219423697994230378611448769577297993346832939204266786766420781323831915917087605540092625696407877549789836424930597282769410614483645157517325176398951951125170877267518192054139093237651180575623025097931129971177895603554673073960402787341413524168472803705103127062329673329589262684065510346085221369292356742791100724846616895318568633953258415468140653595786622187137520287694938136700484815188612049060251922588623004727602137554862623522792948450874077043767945418463980239199966428737834858830371346416142905007923746599857168647308552754001198977049823998410717409661107790634784236753973000706111168140939958117428490162388913358618929719096041001145300691912809792644953011677366871733407971779112609503351983140191292086472979530924050926226344133980063239842557006577918894055776886489771641237776538468970343585913724891072158762852274732738787403005285706878697635509101568820825114032203416678067142660525222312139581131721536409248508791832591724308176529127681902040658136903882331320113489819399670033075273466403485030773354049097108050214495869048535104880602116060839959673766390110155756170648360456366613389361680960214484546109410879324526417842460456943995780473632681913769260660526807755767326158759771499785446712308500251748341033659059431023850243551108070158331654714469916224276652597070394226627190317012826991230533577422042200688647549222769265837505461604857495938348748025219033370404322484975166693313858680241917027846631405831901918375246454893280338229419584419690784479050517186423749303493141197618120111639441163990034579583939742638668437897653535618295201624685140597165262829855258285334399767964326410547948455074820973451228092523141662118959565555619884118664170404384579229706287015223205486122072076208428307136388485355516168485478558037967192350091164692596388538115330909198364015107711940298940445738754515969690106446619850034032174656465019926846447031565753422190519765626131134095550553535616096855020111053409803661642584034533069775378016485020708998641472700814337730141190755167958864904821795419584854084372732557079488184513766356250184822820490913244244383758454898463200245285721799708196180062049039227722066311078731000470581293439659836934520260362394404965137273707475155653462205528245171689361933498158689560069665102921450893362710409216102575276483554961082248562385443490121228994372707852305923478124639754906890223573431203643999943489353086560866112751984995331904978247944752282075846887005727715030190852109698900837524045914594166602508574596578392106687358551391784346945931731141106675323187563088086807724774085055677061492734139163109828437213753357933836560620642951902234089506340151036708605123677161890088181511062517960554081707275003624740769054221289307972361593635454003969438310007039224609233821021101360683911328483946300830852343560866304347625475369722329541595239073246577131018440919228484440703275891225406342742518033495964458858462839769096256871182286257744277684533335110362917998019551672359020791612080489874607519381910353458622893844571461574045300698395065274054805053250540827972221266662240471183023283923202728813048993433840705757066438086866664811896577684810364539790316700409532926741930851550560012335844682341895036652343754324767307998767411498427008334430992442131267733728319906883584246850802373256183892613725410454655973102800841298350507905223160021725976487793384741955475274483829891831773963553174928367531808200438791806401789750040056654289326070104202661641412729028057084744768226580704498573139475544787513786346640721339677778179107523993118036092370275790736973229677395230972863853665952359611498851079270570723178223425205533536262528662006668684406065678581779281234990512133354771330282580008828065095632483371995027737484893525048708207721401176678868361812195523761500770527631780054220783062806571972260144074999255976330787550897724707332279428930546873102425976637496861501626263804949941688457589421307431746448997529699303488063810101340656358188447378788638024313270831970613124289385105599416671686197631797204740113443587063744604497714475100378582415690474609320385931756592325343781032229584899716257900858814785164637462055777069896637529398003860378475891967336719704762822433709871412299777769865103287259288871622813007452633679092757670699852288403116310026376387224047781851377667049420698202008589154848191674296017165402000972103011312695091074006157924455967150362538423368051798514840039446374102291531921923816240840142201797973540930769289908774734402211866478762129802746724809254547469696905438288660210768657026841258885648454944571854265937693838506972085531362118655687318747937248409930820774092461076261590614092471184586148788744988007865885729068397938135935610600967300207371773738959836391287511209417966440012096491275178317586643440294135058681175460080550754912749549430492678074865658722602855004216297226520744918756061223009961119564012068321120769808912205388757433320825537736589892465477150605935322928417478255142670970923168671762116864307446545624101434914665052970775815454479357949802995531641857406422013178481140148316533144396262002626506614952526229247077423827354719576226255829539376984006493987068220494435835514886300639241983741176507458107184914293152722039319053732873678641521631905723570047651365428114679220850150049011236711681476967484060167357572066619357695661227784821796534723625742589352972226814557360519517775423400040441922650840635991911161069798874977537884173925489005262539787768133945733942188012652480137592275197543472287543770256814486832868191551159975658092009688111621468636509596595313055710455668313686786337205179978206333734382674392487414777019167477063021328946156343647012526846958231308371347488385632089462693782697055822923764276387092342510878120581893242094636429560611437876202009128890922438710866560782160063576932616630577650883176805518367653877198401138414124377994802196726694671667626807415434645346767312179561152947838473680836694081009232723064655858941058539525304151760993483070692183201120288693913341890006466022012146916308004426852742754160499773349106902276874165148469780373171417979982001563783298706683754811110363054235875936485663994129757544862988074706904772234079208905853428745652470718110296277147546280551821255613651680730469118428892063437967172242285609957658253652763274807275681599074378082917117258452043430428646445515635989925366446254913353566676734811117818873055756776750786306985859222389389499688520226886324873598864051089386080760297265069953245846579547513648593339536447821198283045430195129498039149376061432502840405471994415695665213001747664122780818054843268272547690823722325729588741137398036475900197452696036271332271580666001900985277932221145653577474255040557483350427733750201372362292210812268417230517852088990568564127837885870775561392072302944063273764386272414199585936639879408044697080600921845597208705585700811257472108864880421466020606674035419125191942122114606897474571099444660327691045100405011212499433807628508348861126766494939746596143712424098582243409467444921796120223589329007185471984447412388940220856414178638247148267137609380679232958159358641488486630215008444925907340240819099965914609484730315727668548015066220649814691390475555594313223950382785690089070781618572895657805741158297283788550505684618448314515005037278757504087648141869131974182012507031472648794661278999196504435766687954941490362220168002906287247702848452873405317082348900913222346244184913303146125331182469881666619770574467316018194629315492565467047474465969790083469133154987948629662743213081915420115812669776927751277676612439698900389530495494088079052085081634174980587463726765689157976686935797354955127560705495344929350507988406076590064629571503902561492864853132661847615427596157571175353372748893732620387488888496834180190653450504534340937277710738536607494729673446817595941126382269742330376285273820652283887007853786507333181259073469702488328857012125147453893743027231459423645401395851456715827398224427982124887457280002751195643016499943879826066713287653700296351279114099916280403139325564320509787941182946835948790458483393935715597751695332197598590394598819573476851460677486326240857605738729420608411730253293414568571937395679386716992024138272556470331638514013335894082375887436595359636894558009489987766011634395417809964016979898258840306215999624298395596116154701221757947574452097466038500459886880109731385202069925858128118022976645890251989084003895480043939162327245937924393919892466599546785760193445817662892502149192664142704575182357477529918691834453102541456592535888240934424417372213607557130694314712529907520148571856927310917454883397900716485235403643225721695942329327919619019998145961604589646363151620370801096069513179081916297672994751022435422183075884149542947993890630963548885244840333724053668088179821678447388391652202875758523157020143392519750012772299970275234929427532680281107977428117865840956114643658281724018065517167438338739691053374965875582741314679097693520739898904081613797747662713037608263298921013147229737743577539930649876363317921985137305480650381628786284208813518070981300338423220423196476820185362032882023847735595605354586700584585733632390961753525784104421690899509754535584031145653762019737779039086063689820853057080151367877017356041414596731849787400489286519539758620834941333855298434848423893881890221213471447514997206069611100117852747289542141712054513284707217151328535640792595403466607649413630409882592926539124869040131747671073417217048586004781640617658322558095643969187350913313687553906475983736704308725781958864094342288684735730570364029080174308190267132608688062872907948690463871498161091204515904554525628769993487985168589872690278806686006034447435854497202805656828177011035447315937851368743201021220456096955839578425012901715166596546079256959028844138620857903866892594598538792068909170374707715416872751741590860654739627453202748173647932779920767717297378044730642146547988639578162181841986375557146258286672318312840578071130432273152943545048797076777557657483048253113146317668478869488802603619297833500035125664139136501735823103116628737838276563970235000844166980548557060033573248245146037295704509222640343913319716766153918410638315704610992272468956112395834993239767775197166902885234922024741646333394890302967768778517362491312097093950916046689517490227534652012921447401447905337457294933957815691553642427768430325702310914284466099328284638828786874017810826942508085776254156018619048452271022102996914266662486285594646351722057982187661168799422155829504334941456424402415346578041070869379563592220548920503370259196283911839749632656208369049244428931341618226164536242482691378646766905318590740093639206462716474119782815776009546138108796357908213859366166596932423211674159347554876732893503027494764495711866593232806000221392451100012772108865108858474498864546573303254997363772565296722416971225136351595543712157067834742372564048258396447824999985121627274534367620653624568939160870683484330679098236892608497169304229835373681134297259469941551646671705309262272787853726627840981927396664104189642069733971915263190688682828680766860873821963523820009007533886767893639665125316122303952826591338399897943918122407705064564098303518304294302995168176776217706873131321721942304570343962818355879183624656859833809735882653653950476179054894805559180528527544119137709571193170381467341346345699958448247328356945251654711688315521446918535750839217938463319966399581790798491906362667235649666470997163593887017010592223957573429605103281753774813097574566828660639460882136127592694412077247542288389946647871643144177825254206206630087765637375597684890463193875306659958414910291458487708162291869362456745358925579238342651624857830226436025014773024553175722822995468664693143072887030772170117649913100895020924907790061643529110688008221147392766878709199727971548676150455269038695681733039610089093519642665769205088626731913803961376981696720498042999838004154549308594292496668045832191513239111239604995359867115755182428147856092371868760894295406438476347199290962903426658181900728120396306217811664394214792344481255671923522727653671860761704389828142514980924856629699832796076133151555759423753167087131554570653898047545446132504650616261885885980800522641927544160258953772414073440181014118892338206531033779175747577457176429862686978249315260700102922185775795045252563056813489724301857587923942741979785560386452702716928131916324820962119637730160348345912187198611364761344988419572025749192247794723063306680987650610385759139041469736366901535710794357624620103040798531184191385724421135002025760804245231978710027543293195507868288310656213620589091222411869976793466401810544078203551609243487569505487788682237935198651575689296833077302262928761395017571865412276888437249022156539647489913844241184447110087883305307636263388775241790012832665921868091954131951632631410864729742315698294034147769828217153241467172252180577382566920489915276950585824319134376356187661574861071720702954266806043118757206621598821709337339105767367772367904380053127294912117679800904259899378968879337643404828891495529139605824193074683479788344210126459565164114837356563349730502786531261242402285290983253672133702049444232412286640946857989708390573954695429319573904172623601766347342776645005615098165025974195478794478425285898810477287563785752716983974478937732516854107889353827894596800458949202670151456839723294268390347138153618346480952312760333936337883949061024831320487079448480066568711702247805209628672960346298361219577982700421432213631436923848675056768685810101283681631120553845282314057390380201282676450547472912635754185629723649795646619071503151114893175881274159707061232283436046647266745298938866184101711523683818045457220190760065380901619331300304177479288108658242481156105777217198829432348559675468069391000783235637383709612943055256397635897982911055686396305819761216279200699219172336082936060266979278854476940210780598337083280377346027751188876601258527696231920229926127775571411906663528814308715467403532450067310710738841585680796322882327842080069757009573580345898192691107248108508827999188008687252072478915605488291983878236696176765067758153853491116889725144033738214243219076866449246656631591313429862055189666699897710452825006193310531067371928548723138733762000597709030411528695492494088452971432393761508133452740432287527237747893342407067052899927896435191966318823658679207738038243056958792217783773994989329605434281457558387966156709651310319741993586867630870969683681593122631823172930260940152411962420603323863271015774244502674359210797195915644636206851061508347916519812271309588961726590446431617034538424795927451734386665661917288707473249849050770878375841692815869815501316410491716297015121166409039632890021382751415711544228619173978611748988076294377246513107405399536556106921168038794419063071163855791848866109809033529234127901304043942643339728851702678080696416578084487570977859240380710458330831259051328768238230517773275411958785698794932140311605607353456371629150691534236540771623906680734118770563883499534768639118044599585349095668859694519313532781097879242073480552078677875992476819717984384471997238743662159926753058480459897154113770377952643643374577238262459722481746355819813924021995642916686512530401123579426866576803006506395090361043183461013503909891932370967023510131114544007305792626668355579360605683636645970568394011865200068715604162806826186698765050692038437680245242352634246887192458315156472095925242526154741817782294235512597395946181999289375617812835461704848454874379660844100941227308930957634108617400823366101204326021850444109473130694562068360856714959990246084408971670605606424023578307599123458752059454451194529773319286122908586338049289913086442055758458776900733250020946018561979459846282158500227259288454580271374326939436291133077030891380595361149428061018978165101533804967203752129904417326235129693217435012790029707044230866385587397158121880101651901821373533581937932590994566302850500079299855885407221353668161667207487465589141353373668890295611267200842397462031987570969989943014337045095687643632950148421535988315913168489234855222618975474678321333498186436167233156198085686243878151609015285834549381499156934391053230573836328421946783847059722788625534408235172080957067924665425540089070256518646251042226753430967041022118114718536216246462307156845592939531398143348377465632783392281325779903575800852723290889023124650507858203420102357584563266593781683133097296422739153024141241658584425538212585272508428739635852878556727266094300800425292769961729569914722285987141950206230754689728413267600617537479762910736187821628832448642276940534364200638755441816286505621943102863958583206201689465111300828785017061970662910512838709076444781234753958988601238859428820764305444151190613975691145537053226412234854596639078394458011974548243574831309421997304162516606142125056354144890887241423615311960830910839912630786775591456428863797260114929332996615815342604452986688300562200833769882908237452975687205816845168008567867663688823592308852789288615656077563321728184754523511077002616338287076363077216546718065051470203884442783282298844259213714524582676391679994250907444033848404105247453010678661114183264038765141565356862002670822522072337233047063230971996675563463446037650411639057621248894220980392116389047636560889350366104956058970046035140777765038032207934705504751585600702278387492960768366128597417961512364653099114589370219696697987344306262009553241238296007159718530821627563092558101494003949011623883633004755185845713925707658388229399366567928520678350069935081624481700507767971643794280185203286388449593534421737155362614652854841827051598219884012162957874723351307841995844766909219188594491738113107707646405460141946747344503184785906395949879587744167679015400689304666743796717116256211006053070063270763948144701962476235714774827093158671673036834428257473672993217193178547575694662466242372821079929191944693487800106725504529877804987261388443410785356865933525815386643732811697394572359290300364164865364719057639168130215365861206354189630044179871884093116316923364454534565974674987741391106471086457268884240182507830678534781421212733150560581814259125311250876190152052454189298588461082253230460704675444419826037621515618745716604129036620551135056849710901874661964988410297305386981160221438723622552920727730957636487888295656653060018505972332781019093433057846975192976389889121803187299173679764977109361080629489115252145445566078308914984869675173440226136408348837879891999611291223985139372580853150681862823167824037733241867540982321379342502552716933664773878730128519471005197821738822967700301932948465643130107999440349310830004326105105315917885487344636554390731037069118947022441969173877877173115990751698428714903574086872870805825043305511827427068530285430512846660635836436104901627568514951559684444604218879572946937529267904432511683544154734319244096881473152395862327973762959256427038847949925195678518211287538753639512508998976436091251676168830878109794356524655090837175542189425379363375314606909582503087167385410872157510027301219892857661373858955803959183320714213918910356859741900222940901035411810646797564234796777993427740039543134220151240351202198744133082096535569328519669753910248693263213578911951888201705733783581692789383778028057242288134195976369897273998025905946234793871451416074822233613068674162837777357227727888051016984441496773508794911335720849221712383103609311263692993208080841327064538691757437357616399168890447847419332614782821422470811047974507272213947296397890515439849406055601518632140413665007550283974999748150402139900492924496427059817535227283334345424011727751418855682612932176906881083794804651244661176961105326959923624345556578140339101532783891530942625464596181175863389269748406039938340497280053253792553819852059904686787528078897514879671264303079112495319287330951281543425033306458129074852223004161854655055257692586831996784665381246265999765447723050253713844106156446956362508766369796051425770936621382932234482462467273438552280434998494543652275969940968371879322034382513068932216514771910052459928895250529892565156084671009136218226286428135480055057622058865737316852263331574504035693144583276525341702421070069431848616056007172554128134172669262374427517592070679409735927920591630904575588590322946728070758795462552420558152550637436915585835253289078155629761266119711222270129956560079469186486685594612283880595001770388110448860683271354395494241963694688886951621154234908532583327453978797919910288453052117336844135268393235405267690305215963676076615834736386657659477636832134120909664964458294985694344507584368812735915029431320578086315747549521189750749085997249674818878773075233260623319387800361615430366205133264343454356684551649313700982681026277102935281994586472876761679014004474408908492744958440695447315523447392998977945655179396766349231870236605556824808142152404305498025558490705923084802768175271076195044907908123449932208046197381132723833793768631613031807243119425887277125858634643930654581450412107205447030816670981941145696670524609448310627525220446794476157827534431485016029847035038165442077062585154333601736159822263345588584311446003540578350408225661074770105656835496128834697588971850894304988257057211032212924795885950411081749511329825653397917742256312131116035548531123445597533869321374633583568918747512300120725618408842400154504606102187749903869598684406083670285028157390458057999662015393295224829684324663691627179271828885916179440487001793181225473025995946714445104759663071290573990297907047781647420402189557275954239259472229534939601072915490770246635140485089175887698468015251801798467587586735406910187222038545633378743071156174617352579719950177615696046139291336816806150593521082884392079155333215369380657047178359036347552231076287532202132875531580504060031165106376293572523333079609965544421129064392816384610413642551197679311959753991602178124891689055875442928588847452388538302250013223166566498282698207771519644729491379955546177911895699005813874829490113193712116894399983685114466085735406410422029259323783756449622561162934687940355493891395194303417690783756408950237528250407678509927691491593496938228977345813715830052230839212508158045222941178156694151275198307278033381240290236229957488618718745509468858442378007700060319422696420006615908950766737099349676844173393652454337357851162166398185457906541805614436503953400498084981413580877810945917368623325274377549137887675695453120714458005921810285687665477928627283500668006332487478665790147092431129710700988244184434787228445315995028552937948514173669871214548924482292966507508091400789160699632627840254997572285721470889637139355086788118438230967925718894393649668350169791704904117104818727420157947625732738371434324160576115389229985447750849191083509644639199540843908518204427499357825873990694659836084458228911275584020850645415813641485204263516076105526243608255144117449766034336787813975597741307040756480134712435470685743695884407699786004049058362276506613392762624912100558511119165893743825943536772221502699963345375552516814954200642933420485124360944237028821579540419194450220015813410335104759887440158147321840738770764976338540702581105418027865272280874273740290450933988616974490822484858621890918168021703620432671057842846181914949934127340909865944590604800295772370490077380733719243128906173446401178005835335149046040306303895674317460165036243710258450930957877264852369542167932591885383576022452753976539242002124935343755503407351616589437905987422151447118978413055682432027336777631527021698352608301685873488425273637793150721782711701242426627966145334113051404186431908833917002905663148319483915740727009483969721073946331036225904788528442155338991412819174698097144977654767471291948926995553363116493507680411156722933273179587793693422860441199144120397178014074557629079847415200159389305267020921131704028388433454888550522824399246229589931463311782655447471325667099151819121129572031570993716035793957979906296510200923035645354695061991302020059016394827509382503380057225037675132728724303859487610490815876278838609419638677139018955846378682120942110920483489152547063845225988737146322833239646976154356245920365751640089533275338092846576434662592872855320233048847890591807064509500116565443962676068887641962076102093424489979712596358669306401648547293490078058873501839643889770294479594844667175352751412386280688724438243220539174354439181600136535287924003660100791448142680189456182683486507331329417041404520214519666555829127368824308191717876773905269808345079898617335479957421293022796605105085615903360709837818031030113673745355541877104944357842594082080612845005843988671943815614146799421323374415599481980690623456160092472699032266132637171289827230767735935506408494860528240193208533003316543550804542520407935137635166761571377251351493085372634299691689713151494540181396746317322489583049570188587361468179971194304435125146053662904190052743052315948694834068185673305035242075705220407997464223684747083868616189456028102999842089376001806746929051797082556907760948767237050930341789733072661094559884945093098766417878493099724913571505401720079171933607240862222124904406532658052254249825749110977691292982602788038434647840670855760745514829742480610736790104474809746052910204824894957459717964833817958702854581233469345948184283561359436634899424932949086691528106662716467167224360816021119519873696065398266331800838950220080623566337760466800573268435566941264805084364846369406434238013918095112495080220024812175082072604509368155244844683940440499940927533766670547671747710150204219943967490499852933113727517003104910836487943222119185881566832136628338019666600622948585227653288263885187261622736466226316627558564327895742508383977614365220252731034610387001449517725515440376561767668957002110535092432616952155623255099655280658062058813101238022380437037693731290665098403919469780758615801938614459131741516210555627888121596269760240642625267236318157263022969779193248199909749384492999278898544899099783691112810557091466098581924712582998439226431375447998395721318916783706566456020628031616341402053939630529558044714827293849754355145826296900220421618723156430062058809758215806106613366270163933456223020776311614409997230521041643115870520562282075439816682910862472764881132379878320879442888623938782185092133666017517038413713451871892083733654744296915845330446539114234284268434947389956150508032486381568347987519597470901430872549787997776121630244104064433787244641893715006431738084476626307424357643216932197203557287176061691991496018098986417071467679087854499277523823554018532375772479913343347995565331062770064020129012150016855613219462789754716614072676552838133393700339431019365671376945304126628677714611054868527309041818618251454777476646402425625231401728999402064151542337326948847033332707467328570416875622559859492666208337659762792523765162518182322836744622485070013517146795164491371115076527889619432838077292279705716483464474057725916341310958225639960236327193995384731035168646203787263727479606761223991060425514036351569039411149679212539344292936013253699716311333559014122578499214804165571157727003404049150217997017798282321919858816228140485776209182508474886229465657634159628157484852393881191600283170718680564627338636180343042079169108922869575442104773587082929770503028700518143464119438427593153730582536649341683254964346001081513833012488162745771302429097217436426931768623098783557987693103224243986647374006604820318585057704680861685836344146535562133610888542035132280643878510094923051961025592017460236760089211936278024912796790420373805782506230269804326791198358456313322520070331129930813137294795490421911650462159211720498955211512668022864763809075234885105093256532368951290798200549061899317231982617024919184908918547487424719160901526664835692532993939216297855035854088670932517839020823824260856786739111231359023820742098998245275612676196489568166339648941911438016037238302575513906690857687813890827934904549747878508408227536704659664572367863500944559595705377970205681482052672446277954035117152081133793003667456351294553545212397571615206852605537218500162828097683600616526017526095566422622518908532210166355725765544002950028940556957033410127872859779172153091651794734525463408076168311646155935164041320935649910923395756294930625997079680134432736741971095100981013758715559257292750668286821825951837287964686917305919456482056946705217620670051735797608500794009955049956052297542195038546275764869585043071722903925658567233803292425452811281678056898944710035969417963655615361417203292469797990327870145300105643584269087873277958388994028966345671147024586652462637905305643547416192521100186906388631088290586548706384396883332333729549441225359132056782204506533447773827542008234324691343291639575142199654886757909789568587984967687626091171194038854311845874159461672987920558412017845166290341056466306669894754263911496294637843585140809641215362364266778773300363831020191537749672749689411454906538005819179253942091758615811517630734535712326979333079387877489581079308739085568296877346027648739204858076833305135314692024465664515165299063483782443779496360547360752627877753324166332392656610328090850949558824796759503073499469060323671639872050156373731425735229182497322296392575824199091179013109533003633955185313652507526697646495374876972136624953654029705852471960212673365330022908855778824500970992697516864186135291056334209657766459690376430245593484204784143086233674484582741625544688091550210707318294629916661249517296165315836890056219262065149501187946091650600627324881488861500707026402579299482858846507540770771732685357857382709111491244036063680871685963735069448295820815975809127801882309565035509320146636761221296906068455719834810332981993563289589949878001839094637336720765375511712766016311484328356866005530804709829023317519722535791911133069518350951707831291231271697588813176841782345988074693864397427799726079513845061585931965233430821625942021449211146567906478144664747153952668561516220079224178993676245184645138470196468467612232169387198615104564099401686517631972778603248634987864789211014204685070594342443039947927243639265075940134988907767475032124258856797700394895073450568112209877187168818760302081573854515749528999132377179470696478778532521487437828231194744833470461753814323664368352500664663509308527899897973573831850726570140108010573683988403375361953992370188769763239312637696569228263618278858882460002374077768228764917567985549530178658681386985954490635514707277203601106172796811092268534623536251863959488676716514286143003244413634608715757432770586839025287816787567941584992689198234836157551716617588534895277590495932533595371038632165953095895452584074394387706567649157178181356827687246417532008774593571067844978325426340379215341554111303743517053724468323403650823736145032037529833630858797294559305944526098747189800871512410461857035088809148800478599417148391526469993264750207316651978277372950015731830863769238759613163277018181490113591668461055278307067588888583267908117211989073283467321451632432218026997932530291232053276636686038233593054044603081419090277345525759623103131618117381782078955624445689185423901300604884807619391791648539874844183291831223626607673399734915199170962592627726357758815931091783594998320867323729304993894675854965538630143303875725359354086409944852908774031106194693058773146818287788729375358344030763408705601746130401780403839108102979483973907865969970344869520719225308769217398181951336516907517223494580435201365826761371764760605830937091605430223113475383841483186238374074987706532968116778464017617990927328905441714275773288518032365909061033171857137818109431752889445024109515846168873263417301150903728965889176665129961898596222311497514028501839857861882678537639489017992558321268659947417831454337349201556371181484708730817224124413331114703779968610721384070390460535767705542821425064557500270398154183958939761390519436606972442315524317318199550356984702111160100094509883917770754142596281741539762262626892416660650626715310777133218379554361918754947225078052323211403131958989017764896312533838013534972988607760655113492250437859882419045198390341746689885705957195958151480674470072404342932942163645523955169962545336349416067699230995856217445440520308431123558219344263052818577447398699445962539088326964809027137903815043410722266729018791717798581784447069557321763594852466929865545558998975360255622042903197402448877365151780425685397336181256120699337551731244895256885713623535751304890577489491758881448607880124372520881720721855021569066176600811939902010204087685703771690789771817744191606130362814127664125087248149580354672927562649589685655946740111989083722091329770360066449099156355599959949070318336781796093267648741175773070754420035144636994317460158838491857690204987845668870870511245588488430763283767259052632702592117580556329460077013648048341699314669694976090164595866566893194553147895272579290378430390505267174247665577033891501799606258291326928862601224269704039289940345039498136666692396500782867738897494536463403823123204616076507438860693014393228449403793701184824972568629657020593040775868582701108834887072095483477330968561791293441530955440032031359129865681970251826080226433217041310304147758541146649486387456815892535270258250029927387488256409035935256721375790232187788874372702320138067039971099263641737818298270814334598339752798440542714472992196821895371376377016335544596757668156996950495862475742759294135592176382800062956872866311860069766401311597734827314040002241077490107549926477867824569783831409927412161410967329656526637716505689160576432350434466000194133089353443885537413279946694298874389341946682966396315229445829047863081761985865118531393186255651783269484417351070382853133195100026983700485981545484344299676285927238559880855100650413887785951467874105845833995459837484300330473980072514340887353772706582008559973811145556921318002265756118594437599683299288705243787747907675398327673144281269356973636582218713968102757927787742281283763510988052847869199543049751089062869679906082253240466256453550899798903871491013616373843757544899751037791058798073898910894290268923659061284249558045091477705715699456048683772187008717102710054598953297454584834941494538978325309130858046984553337557441025302269295560885521200249084660827214969376675294768985268666094886296951065499367267230372703736976910334208161133951412745834270027860193493906263917417706912499958066484812794345360915121425639614943600180233554626821598527963211956472323961912967995866255390163653362309929944286553035302996281959395737188535296160587134301469864889921594269726529672214156136080238409940437517938911793898196660364401817167424803252260516281786362940990065542033078753139165566695831034519018641146934470107276783529468217248084248981828858035687518509568145481304934438232470325328837941056401387417695873460640512018557842130039807101155003077776554510164722932284462470555233161579196378368280612471222134337271438709157945473946484503570972965698142973936443767978387717989828855093483062527696426397180358117999835685700552822667856600997280703707993322992930526824872499450764881377561970994517759059956824348323572812725590255592872310592975277424394337843261222917697474018471128470777174136276870953120930779970389974511209909860411067029275419868980523066713815180746097020687013069139110337186630495651054123890865773168112393596944349440118343656500212832352513756598641299214107193347447215266125025686713977437182247869256602349127263440892375766993933895517317304720735877143265413999757811186723299669235230612209651357504122630197450727047907011332140727853392193699292523621030992232911237198317719522979377223083935742868498145866946419050617878231873752822417841119892996694636089639165758609392375341189204782921973485582516272139156565530803967415427945593068028205891647526678542841791687606929734672576567316222525995442399846253817762095313841027697341191588509909513021321650210891641546797812952547330111293519082471813970003264122510745385534034710489305237161044216880313386029447466516476133631811744720002928002923081380445905964003898760182666359466980925239853613280515095133857594110395176190991192040812075331292781074421249148637462985106297336456880807476083626182402121641579566951555564186223926010462992037984272307669828665427462434888099052509835197022894153378168511654709032019358733127062728789472320935757036558971088172237460791564941234148007501207868028411043838510535448211678255297932210224303100371056791573194728507609297142951113386534872636880693469916159894078568071591393886597889468177435883255772810840322174798516033758626893409322365127377243126001285755721213115641088878062281309062762837785471168705309865899029060423903148101130829755190133118648019684894758365337738091672173792477575133675228620384672058273094664232150363982139961470580501222236073835832866375344895955636886699545055816975980144131342464719863924744571139046225306795674733606462025217915915431842084270599041522892675350575287037899111527827695895726406624493721049421318718952845445176437142158259938245196751269663056549317201689199836625636676836673584327333884859949951668527731240972121585418889587308508401893204460798780798460667814226935461863566147173297877888451124714178975812605496062561334875146066495936072340645725121671678451211599281796616558691732929630928435813829145968120636878688601298894827341132986075456406508616711726617857152727929070922777431203884110078249818911795226600927946412683690508554183711450395750971477555392644928165584051464432532682269420830819982552431227589484618696862183900148918185034276067854641479926138481460226942343514814857986578547914468113836797730246488183606867166560095517930060113412993344459433908638586524788325670338973806313556098906993715277780369967437240281186895974747518514038387949263880998103686995829690228008942281572440233180638503949441770307220985672644405220961183121142449667343567751394402746509061393193940129581114914490874671870364173004283163505152375637212715610262898815056306538537342313484799409858240582612546527310632876088886960954335818979010906593662071646294720177796400635246376237794607191294486594626161597435489343077117869903184658280368173502514208160494746443344717644895614664754403206668824339079715727925392288503029376738691514202565608386726866012805013162255759350103187247571743039268995982577861877746306490822349387391364031857724472952851357927820463411787189979963354338800018202999161375744006760652748619347401383077754100444243017298046256970688770031999078024640952352583380640294660217002918983021020471156877576541617990551567088610646295388906524147104206714797256910859219618949231213545334690965496434381869606070690002234507424046661742998767551620991043616944798509274571470935036160874572187130806281241458962326962063999925103305543106293939297574150832609635926964312035046626551366957606906981873091309099598728933015603255607997393996768755738478911603310565538363630327304217436111545283216817837291592783004036071622331488132019569333264254181279627855163201694480848305042689374439029715521307412673709190019476420130315532496968571420940521977164461079028090044822728638176744195928389480001915722580035944263059213483065240739187561721007473009692652644681865201273404976218829964530710113954748735914587964855163017209516274978771902358064850049234021607487065754545289959592463717824950153184736067119438230286641306077390839805267952990301600422314422895729628968347712764247886720316297445644856284247118766479122285187883310339366525251271458405054847111126943268788983062031954525787816266534750253952624863692785680356959495085174309114377663996837233471118465660428039862712572517998293539448188536562082327638551953298022597088499480071032199250830338390403141194147876574166511645795388298608225827681139776755510876260906869771646631008432084914762774200578852113499485173997235023014039341361726934584873553958086244612639599463152091515492739632446413607982679138251592986200359777248473778717943137074557985823855957514092204665854240808838951133834824936487507032085199139277046646407170345704387559251765263214915378465481202539256946843378198183786536975446174341717106261519226497495958142903005501081521131014612967304286092067692340206092675785505488040036033004447396656836652877490478839247634219288939585164068662338981898105526960171564890255863097663770098171881493392596897296393822538479497508387767232817970657586308538207802510574447241013440151990792485092980566286783728473123356905634666250589293645526536699916942642541085492454004502218270153288636625000971115486851121068393169879673280898252626772801629642979767135600815773908701633890020889736617683454388782252344452116732804109094972406661269538779546734910248900202366948101985344930665525440998610922109839015532470594704902087237532824671952465847550967086439077542030677437662796103954675289601216457141550164630255649083812142285981952941050322221533387011773973244548249596596721953222493016389347801766491808074539346102691421514750592690733750070649559579621087862544605325987655683568795867801637456123777230100954401021411997197206167349129997844186757495175168226251922754114322570713687627395326795165258319934347428122196995551285468503098253359709883960943412307729949371322838434631936435575585845726553498512365854437875526478158575838069960102334181074185889437306478866509323196500871886289247435355464024406587852966942655807820322142718694156007422241400545608865760369549821768391367803070217283473117356717609298448077781583305295371643134801972651137873842875230790351348556316921886809378430082845556771744645724551986423507129091689538028539900356907350672747240754053179396281793720055201929460423881135542656788431450975151262343105178209770806310965076298296207788343295926143012213064965710799441853823850029403122316338796428646244245143633417157332954797294254765859812564107450042167474493868299501133421653693819399433919707418684823614836523255411952203732538508913500601837820597062704623472483227771233118827394758684088236102398421593782827538374519080250800803548089677873455313853865127437870340137167994852030129469475503867778708483774884824461756816569612862531443909384017772643085053110839088355034342982811749008778862440138663485170626758148033530542198343767037947062618446323915505920047501521471552036507442687112673695023674298215706614675871506346532662438108362110663032371882802110027288116976081378949680994815794250675107110537816254478550571925270963834600079677248774462890795015751481142827173894027702176785365508253573589699374375757504790154965646491446547061505839910434215134936235372911048644599140264194956330131527938286340554471658293501377898245701842589216692086015149075250767783388829315850987257193271020745825956567330898076464819578383058672127868957562553584087305333927840357850076059704614972426423793509927426851697869696576529142973876439210282582602845748457029895541852093651477205116165112907568791039836871261576939305019409642762225674220559183550817845493554322776585241585837016181509943335070080107666974685432839252161218055455725379995085537490830187062461752801588537816422833566987957421560775686837473124008549172440103833676864512893592454004109011560027742621241029930182577600674339456775025118834350403220952615355773048541825513527918187921552265460255944398188079113667316648340594585779819227390894205163662611355896593232372752947474380329498134485878603950900562023127517107239306212750368040329180779981904079159957761731077343147117432254035825545526344953194453793122327318854130611229944646652930023137184948916733362785964072152696900089991226942125681736985303808643530066471334300123080296946714470905673838322564233029162900684550264888511293490325371885587635608618721540265191982017958498161169196639988817069715551431129860625279132416520011503500816165731712082669672650091228808909006958997967419349844998557614172013857847689603201794248009246040756660643917088469339649680662912187481598825588777880910540967866654848840409180709133430168123807396753751078180962358646195759894135712034181197749029204889621788261533654798693508034819676435242669303960282620621281564498433166846954624254259164917731634858659114555845413267172769057478591131915537843585684334035641676621155505104969200736579431725361893222241885996258640072465468980811659578908561648335521925452580591952130795389372497961434620094204992949219284015645167750558677896500060330818906461404243277774219303934977167456062435583827306693082876579594039433412685598099708012370176835891898205041101473210192548994589509908240337907609805288773727920965847599462799790369357044153112695072345490313549266128654900772989700707936228227814120240263350916499822803931981565611469162511613304055995521525567638811654889592745511746020399589538516458951863664695131299834975120080286461336922620886841451622400333918372729123765580656937855086720784327083204647472143187875064352370807703501061366644567917042680844705283892614988910764054922393036697045484643982498536029217023255445198703333677781408852098926155339047914100600565659184645271495921700832230661539795948926756332395805526933819279655333477130706884395329664579486398262447015670029884475622700920378063220616383898894454534752296756069573767111022632453067619635762210636849178850557633249854155602353494838526672569244934291095680915351927238697409732323943134705443048066595165566844616058123811520642681919866199093330720759724172091134316701115832621525009298331523041276809910470647897589142688078994358886570394280926750625830321416185637647879761886224674593739536078675532893036464724503978760127515069814807647162040913245930464356357183702324751836539303140135720088629177233316506102226123544441368948212721376026607567565408382953755027963553582317504520403363332816107778061894808673101263059914430539141684188511529961854747452316245712195363327376660774679924791599417517180203372537869688008098179754097712581205383619164653332603502081741643889749652687552265395862294555976770541037357589506952835592241016170484318192907131135364882856121529186343161020836718696249104747424497399876521248775619631937976681515519042859227831346429196852268730821321883331906591422459394009102053564247339005228285789685387870592780329962234266779673547917131620014775357772597463552592433588767397397638629810801016568011327803767612695666354418334199886435483118035285634656573453317953341874197313687696830480687468565172166941799692224390793132532435364708889440694024291820247363133883025421369046902313269391331859817188699499745551936288677245449033405737764904778601031622444336842291762486671857213493737082385932642503927049651145300053762283344927666738103001764684559976839693688839434922323096724795736247416682009195709956859240885495204162310474307569629457476299270554869135363013160734698943112337661929862235735196289438321017192179712522560831173399511919160679766883747207249339539388385467757096270872510043984468572769070654903485684184267032081817489353722088194836094108397368485660126793983119803493414026120665762889229398376390250590714550318036465654697271916682212792161250245359275735572128991660004639873811782808067689835909711725322041594122765154448567182505314625388316377441158160339185492546818459325518634702672178896830282661788352147663819608800904932659681434134969252502467106890991588363053340655049942090777187093316298845079262285724844302657776754280117845519106811183903169282366102310716547921211185569871951502553091267417763878342983234243598634901475679393757016371002811805274498570048554773447475352026206272590429543538154265771221462756448759522184681116809650412910720848565439027051150300173006388291864936799161542502333835700983165147429226656789583829439792610158686671530525840592925299512863791214719894014218865494934547290341454183164488457143417783339633574029713517305032429534784862101060950887435610826789950908145742800124495345894264821407067127480517400417475956949380072882002917312537260768274096324968634902736267574209387044153612264826560529675418377227523340901815444528572413223906317947303336647450979685852730472565762007152806552706061792144038387661088956049287026906949859435790249160553590683989323790430054802646561550808193930669813457514585134511288617457418952176068240079275599800382040669945925743623214737043761444759702889264095288566486818422573967970755267269672427939571593324222364839600442332346796483049439503082927737786707838211479002747568060179389369035133978506638259808086474877323898009636988166315756161952941876501983255814661312075299680996374366441120758219548236836242777294697289623241005912784811625498006376639150440561401079288372816797429902027584833351356292586453005381725551742375535851568954595472300834689096372223866676780418247980355819862193897339886452556401247231760984491979269985578268851245921286934471706446731258347105243257921387757781235889472465725270811306376416928842362057467683635937093787343144320064966435857685111099852294495224077018519252297759970115771415739316336706495017581417907899778147849125378860106021261152766766394815533086876221406080795257802832696075115605338627035723098124618198036710979295540290971011650319506357063286103279900723099477174603424312830233705545709161222528196667115716873278671359523442177678723243301399578914889920851344440709178888844445304453844597681305316155283432685341265473072123947000569385618819708764285558940764494780058976364446908594851441360079513828989521467359904339286999543085156876611734996134454129044375059904726254594422497576811927074414665809359318806238972427075834271890522774683144680138002172838032001075476641016690449981233294023747302108267487006246813257748879626764878646455607245161331502971869723760678208203832640990587457038051571676141638884991773099905819693422435315720752046812983249679605597348011413749490081500744082762449594238646905645187777718270113246031438844010633611617796478218514592265268314268043543523273698549669319618694964207669375027726254588274848383891209037678268540993066484255608818839622853045551093090233589510810617670214992869136122869050743586570367592275867997057978749702631900022625491293327858696264330559808618428525192607519735397848356166758407555838333476522510756178633888633967074995624645140280873471533728707767524475162084230409179527455404806147065330759390208257327139115306272620801522653062090740914260960046586852719588276023068124735897968653429444046421240712364414927810327122544955787287611901578902921032963023562108741381622554093696872447979541357847049296082791064517576452143861509111464749994918345967345515529020802202392177704714080478170172197586135220166646933971026039788916714856956207183750140103716675355454804936661484174223977341727802189782379888199725522120581053423663503310496524083258781313602082144774939536792653725854624309273319679872316065139933664098479992435461670505071729390442966757104719775261209769392475203465714075839634175600993545679943283580588617518177936879918073978481457239644286502397839646728096885851627001525022507036973844222699934106787670635003472778597771420213444065230451895016816933903365049184456232317579163147262842591923630811584799544854591540961182997968391936919027039041105441584073778912220536417586427392827909029504804996052720438659682560166827241379977927447878829265853900994438602814669647934356926587560914979410274736943379040759317315012609804297712132590145097724466195642380375423059193424448013124065206978961897086726326624302682693930850123226058380824516813364671926859938436904820626610364957465748730027534285066179818651628125189996198453125677380625877733027132049108459909150438520174697344156692211368733276140370935186866600612830054307590790300269878616769699939097186502251196641376315796951301086990233047135955896923377825901849093509581325720578556113182594709111312932076548986739315667283492547352419730388582856680074792207937183238550549914633446396956007506680275036306891023943637774543061627965178546234530516607419409066628045225454318074892875541009167273395122294749453197938488454528442475553469773905538732314521018773987242811201020976054969404407273508999471443916477525248502654283412997146404280133034577815547541104428809828497948987719599864152416413488077380911439926028867388144104153457405726551562378145724416148689861509970257941008616513999973787803487418406920214434755747945707980509185862873048994545787657427027393563323077127852107118086782952859597427709402010985570981563833916031927418456082855922212230088900841071850373786983991725923597333395451392635125552129639118998543329019177559064001649227523802249907855360784384952958703981989513566018851197801762426388748231122406110160061476353461682048943202477731135820125052995277751072340710754156129929562414749207283018488435771518125358367095359597348058762819200866114561365753851289735550519183749859776936415783943427234578968770249823587967083819218153307926485148902092849573466059864027723005242314647018465556431474262998794453176428299630237108840655870477542484106101077209080846477507202831304092499108005919541698653573999569082481139004263238107557678390720789521497754137868605610334675781678505090574315613604964053771539879734354512050454759215867833030434397331465213472795249606384951990030164616230605382619213056866604835284419750224139378830111667539628703028111666615667260140973964749769852526401192321781451223459646028509334851499589703157593188334898409093953724372373189936268999092921080299207773100179853772730348810797478853896485798221919157835202814521153078424686953376080183084141533863283484068999376473444206800705054204228358339843251296784402525602581016308888100107086872926366228871373208134469551567872819523663876614004099082501089254056971406159362694184716271286116541799724027325219407225971570479226263531194890561496194697912281737951316397369594294632845420723996497086804513072114667192918829825276823151592857331147736356127513810395548904526496209138955734844627995539904226267976371431409271008517984317878637049107802759791825521608318422957008073885579959888984217063495952704658104459186812605212044336252742138268986345462253137682481186088578758424096531109614312031103565907432547833554787216454411323217703909688822478775017142963972324758300349192383249467407386909331614228844531018431675510706827148422312541247801204819839946312538063100627072175849114692512045710858742676646818322231631896228300962544792298778576349716789778988574613831643265019050073158448445190652975548397482306195684733545079415161985744606349125489228325515681958361734580782884253251194701376197110707591691901460140853894232633446857378175312389923370854311830386048950583109856666003489940383330847296437383636332531938233772258856843159236513201129565296847043123021861647009131717824008589258330791814404912377149369379007838934121650429192996774093721446809709200940865277291006383847209601415750829126308236117887496092433699200033106390664472510640201736361884215888136514930714268713930304766977178201565923403736088071411567772316327991512652545394326748990541087006605706535484308366595096853724707684832424679374914658685824901437932275714036855267277007365737241322378999251543199644602863951995347641270548261181002312864266767947844755999587985543929855178429374200898079439491121857498544428364239530846008636714785764204025146655328469748378482903269368787148556167710590976398311366005831445518257864073508090987720985790812281009208066342854567228459062793808042870946783418669187230082546431532677402417700506963158197085255216532966770832921466237482079978984329162523779836649082456324487732058620730745702448009518723867141314354742373410104931752431574398499718795654140058777655417498440463909602765964548054055222827147240278356027010363908344508587775241008064075103813947983935497591107327620530644671324068805465170352860266646630058388713539952027911393824764519510343430705716428606909244141483109023945814237907959564575887918890526237098410432686502236309741196061940399110008531297903668114295945270312281774063220876621075000196544695380454179662313055453062826739829604769933786018706407340694292779279094673014523670944197957979408223192402783434358353664029389472357982183061807172556987280671463752765860547514342077423781050726957297577797877235786482989422191134991503941631755820432494788644165917510541664530845091407475724069069232149687843082693659688458104572923020389467324136026543226013779030624688353179254598173439130045995192429953563375553960993079899790004690689510451960016140732376490039769369779650350438314817546784417521578900729654409361114678982954603927462143154425653303146419913853860166874140204875820203685921797264130911000698051394318196643400530668286755283961873217522074110429675249476827195538639242594394606350749622097185670847589288328358418692225024205908806347959637352566948632619162796615283977098886999552194340761856456827697938889796714646545069220981470826113351785455969752923307609851919477464168485950054511433044875536479221716217277050058131719448769411782468656721530334947910480032854916881872872793275766420572883914190865727325561264807543581703464117070414939296140945924333334559576379973205523888675631839481376626955685530187658415073627478277060774991149385003072443143418510826134437899147190535805419348660004447987778870084682487841608591653220266889427863260152525066002877754280559541509837349277962567041793050896057825940947457983618105727420532023005929254628019890162804518931768417204117669459422272338168023869759023597688116043770885625471980086549685083351141916073351904544609035998728817220901964038099113868633976681793058314958426137457147762861593460248510027748250336998451825236864279445094367969367497406767656965943941733991179679464740137847618174861072977497343733746645231540624398922459518370730701300911421509070994839096040516005234210728996973316599696405365676227909917549777844870544362452200536432966614922396938772428579888627735254493319612422313540897131685425864411162149144523177575286686297061546028391212267965270746755723187622855871041138518543690999533335049512429479769936172199417639039073547091854756638081381850815309104213015621891943359710364479317808878102774975802297878017146568256380998627142171943627092490850183778082257890942477331607224963858134421648570052452630614356368718764829888866061169919823416760364111911007461994319648775917124743672381907985753047282775628659566078019496054365359669157940312357557896144377390206988550701166502759045195150042557002979574865874459255464049114211153800128576307720697635266685407272199455740318751580195454958101481772208294455266311267997849019502878432622707868334265221763726627929230295564081557092549842341505063309779835486671083058599640391760209566243428052760337608658357414635919877905374877948263668070395357000663866988905490303093377355390863873676183276153455223928194334135827517648103522897969236611861729022334013871557577581931952273979270076600551475099658822458610185860416266757778494316611025669841194373614934112331731968035918345600639670087117108288461655127639392958850344207233907217870291212662070182673574659260170458890279052807331117717226962597131164219675801531584370807489185404795733684240249921462518986247467201553964917009051500010117341627370754575278970745613224949468257628342272126687674460175870575029101915193805899958454331419771347301837112298007145157860294113311672643460539119177971116034725511422715490780552061078717308127903300811724082747495906823484395263964018191371218211853125370421661450113427648410483767302037887429527373885975030699553358002541380796168977782030335800677706124292446732223285998324820170673961176725018611076733984179105916173558509030855310007981885440648513417061993532654756448937667396798355576429616245227522038683831441546855765689858614546014428173558342162743150228405463747963651502130216120566707756053324237988266408316679803971312319574105977089584357677209214520231402721227778024613416456949729474425837214902790245526955868667451551048716232521564092502783397140161101333531137510522345851880578180137982968596540433602271928317143057951546655177590464091656083935036992413284667105090948483756857264580481246755948469723130063921867939813708593143932042606962162091979563122469981237411849543335662431898456770643666550286494640237892739445513547100522792885492354865680510477821868222167837224207169300750011297565261280776823484856700034960406072238995463804059118016718673450905254810939193568070279547686059376575438561623736096564190289484621921445962023509305919418008169239964181958597779012594773173762681774844788760768194801773103219897871315284232998134078940673403989330869704306341308552671818456570494235861364825872877001719491224269522837309536678560432069973550665617298417585497276272732224898291053144581844281320622828718737758545123355603775203651461527447579048783231425140136527542408174531745221006547998074567424850570256036544999608109288285611515401128187512812671125631352297090273139675396597530664973794597261143586010044306859885733534086690209946392163402182356558121016402794600435806337349182747501306313829092754088586506606228408316695582023346409702080021908981384514881825241928091331480899440918424686316606489399957349781334309375893332589769873604132603224179209346820538157325677544907661482500795678446743942365799472572287333504911304649822824918205475770802448367462973912904711289274472142582985736411566850659462864035739440308683954317791635972386124192443381889997118671504366342296296634607050538469833598659919349604461259055853803029452501447139884243932975503810398267464008187280444574501675571458377550786806873012920359784817323955982451622275405610309972045521504244908481333317443155496922786328220513593829895732112998475455082914687965539970783302936811475352717266531175940569834353228172741740856418127501603721496796396864982746357570702268133002807976244255657632226053489249660673138359983016544708678351002516431999874180996853853972443671478571799408249444821203238470055916287131528579034576040373362420031320619494822454975911776305408171989609670579462865142004086893499128358645762985530242710295610153186510610867843337118243418444193933847387727239075334390038761910808379270919390058973915554965053154181013325931295256077447455669333912577760104839879295172483275488672862480027282730013500769176481996064942730345818362073555906532841924610583861158007555894573790209755970184005291899985154029099312208094149846899684286009247399568580501244389930732379953455923747279267145545230257308375683857325502190978733236613309216891122232055013526311982359013371517861151340074078068476887738637472103758247545552875391538044642649235317149690144793667405792644452838072647105387015283750192848153615189162929726318219043372034119028256176775956862718951989771943875973541472177517538688424371673291992496667422786673214017588026918886276874148426759769349803047873295066596487872364728823446515211031707086879891569271159273298305189245886714457342453912504631326687883321792201676045689268970639038579994857263471613467052184862564365784632471690649443008094407936100275213162931217353676625757867320920545765701486013078179913653179008594490231097437499436776325120116821771169723649919097148298970088979594081826986541099474801444401228554031092450831800701733297272443729409589131091555471331164311367122406841554434120397730352796290674585946621339566441075495963912790396388633736503488448695203516027005588113630894968233538582938471761051189938885208827439501906155719953032733968367818654710175595256043749619762870169922613987414725031631993324451252817899397051556937386500844890959227107876168458320960988996161256041479124843545426187125073464953840002938480628095426333819181537462108997563007697969764033995172157581306711957259330835789313450537495075124803358519362108304093212391506084258648103195140153256131830153380716919083952282958341194196783881106190330807812134558917718394057625578202186160422344713143061549777524910473329935763800336198995460768345815149264715315611184290738112066756723816281794189857038162957268502989518022276286709165670037090446114165278542990845556657905553044753603128997258188289394587894609169387558110363861972115272148443643723700484106940096294521460728080648660532681024216542005774083979694468423236982008494909246313349215803284882135715025502326455546915962677853025797879773332328908244318310842415342549379926710493882596032573497326991202688192565266953048174532769466135064050668377185377381626296579337712915290738042049250856117832802414213714515667136644422442190171879359720181156875084314748519594900758175858958414517523352989570367989916468855682486712464073675500166527034600407977132940472197965887367156468742573422870546982376553456568768545255590158184824858264893380474327205451017670830062725414626891383994998950573317925661252631397743731490318419559285953648412553973661036720442515092574818620535620572181410253664171981052246499464799693773190453029737798966413982654374973377564670700504519920786874201493216325045623761564230567704574477324776652648018025994488947813077177664904674524983832664574734584328364149028549946515008613217894961445224395780633881687347303655393764026606166825140413054570091566875533815619786329151876605233080345159687749538745635754376592015977283014393657988686985436345243704550867619745498724276881472557916907426985749373255785214047353710968860010220721391919491544269306840111359691582158920025123256396245800067423778217908658000184898272883322076013982429024118262996672550167175501253221409000982078704550541586326083253946574373193319142684214158130042014439408984288440157514910372235395075332926413138389509091632519465799763053927872806242277247073276305561537597213856199832068367689195235988076861060880248458668872874253923093539172116768615109169431842378736095915242163550659982816045559680177781893919963255218163300961620605205464916175902232495989244935227108070012884888902406310236758468547931936598615453835774306100890629096046192008352909479842539848411047006492788358494274150096776865421309116791301996821797057789443844252698685389460529760772932793824495745973823969852900128966537085772141167441905416311067828249640674931783702184232135242198000119354528751986797034249928983664707853178541987548581338961704317211559328743935043261405068572399662102626317273536513935450321673417500124211327765718294550601446592393379190149968594507356331280014280811789637481095624642930421256790931810481904534678331874662620283132300634851236166941311729083535597225584090090691837687718923292952516114091431425616707199621275430942156136449778189704521310241117678153352383621660364909647383110155102084911017712251846084730398045560584354337206798981748905904174581674796775170316468337980228875157328620243379107574282988738574364998192368784574207307168681095298038407244883872871244069094598091736547073295257552737195459064139423066311699146840737103955515225476595842107833649165528072822503994043054527547847729794588864611353841888065367359385639073518775368468494000797508858372922373584760451156567737006436593282667999305489676303340344739867933111128695580744675460722400568844788308896884156572422425289942795678585826693588091615357199279399985737653194024323950716098479914079873137474039228265137692828398702526343783928221813461060805324941066017726753333479699177703834132530707083231752074548589587186078371781662462042707507597948460600396498929383970582982517713946757915369651382099642855103270366580226142714482023015309857323832304418226962412224086765471002149386260912194255109344780300810600680398021880431734882427375749889005151214741958189357401232733604932375395963511976342182071935487995929489511327829172296706349082217225004072277013223859311711775607513775018065769108421951404741395204046571694695136724301074482375186548468510230450037543913658195423545451764543465851319385044410086489293109666612145527023034339192571558168501794267286386742573841066953399475571833132437045142396806904818656951011362768803871573117620509883180703396822681126682079498287909709021198818898025385972730331875880308733936871559193730330451756970626177418126980752246347141988900080865263955040650866775507627085178335633010973735097567115312503531128935433378436719004230990331985724435865696270720316933372119991342377047289863988509686555211602764691832967878090368613607180594985727175198610825011450337490671221921841979465841351099631774020534563619330027602481607762143250105475696536558434026520813853615208391951791860799247043931494157060534619814288372883551046625378414125333080067366730561948112781018669210497045521667643340829956039815298499246248288092751423017009930886639792767474635739400400393138676208388498886592139699313697494611741477893373541517811653045916794397591172440414967733598379944105112597156873067788734159328846289063417280949876177112891957079207728519774690883830209715867866670547686353662548652186208771723914256559029683855154032867703293924996796656037366985387748131794457744378494578031918329231528150613785365243037721550914766812229587722286106082428927534754955343985231044866042070979872836876990011882582351837678125584596808935996389840859123016847793787965419275741242109960127663292391958375218020297601527059738585575141226971607235666175177262638804294870628750700111930977462461188468703879349688200774686461745639564446556725560455094319071390407465380970604241242207649140517578834360611854914414085653687666287049966265279421994632087279919989827869382071818106385106098864248463007075817943775940399275129686478217240006260324352763443110078091202864571516070929203402822168087054414270799941595101224363144964150373501939974223419936208374886922944157901829024730752077059253955304355970117352176579662186723931287764718685805722189448179168386739752574721744994282700137640184296809555168431698401737124740495566630309683097610963680582098827391606038712860316466552809960470390519893270263283975183676742331866451722979987707865761195945884800066593541376408742609746439140466141352774332731680640475381737904944487963476197020233596974677339313239255341581990912253835744926008050864441390715124623643501362014420366389364086680047461404198185132807264698779952942186201562066553485797361156287806858978212059245222631721008135168302949818872234217596786065768858691908447728009619609679521688979728953593539140596064317355735422349209397534147623297153376790732191533002836120181156286320363577255777052123384429418832308937497498974312339139259740489415759294801161260117071253599572769499618256692550291795146133065892831118751277846134004603952879895533875743201386241258925516167912941335231103801964854202405584751667197103538986408200524718407992631080275087051927188685114706277228625199713382064864270864795706507332313555204479760795293104640287398560972088615217726493435583416564843558528559953709422808791821663658771508243840874654552817668393251929703139939010310832387449884538705484385007898568323878760726364506635348780704831526520756964094408261111569253339615005756045728101781723907539280085035915872457709839133237323311449655848198189324482801821951249326009955545119428375281260796121652682309192083607718514260769100874984143812392072256362763630237498106551877929619734280945667764653774359323396865980275539813607651234980536128224548827526109002298332547131149932938107927188478649658216639987779066922334330429102180953304095314981720465223067511920490117863720436904327776570618717992463203450117705204351725350604856131839559226147435968557192184583583367384428409222463555008078862560765251414769629817327490133397002279864929503170653722545723439193271122413094183389102052880950091111082800941366464285584579079869892421525023228423416445370541517925761693929065586706860632933955430272204764658539389449258188256905025728986178327451690928397634731494492793914226959329121452626987197759600185761539022337142974678667668873809881044842525071038074120479454367255460555046383803887228356962775267946310553685281372385947976642899969648593287619680697189878341452894305232929228770236907984001910016102123188683474721523648489509899838531586464137593911954925892884418899745479935421022524496406856636652035219506425888610326923086406621265047268422238928997832946461049784661120624665234487015049706936827744282088915450332649432557359441431128726917200935382490363078475425668775262732234791163268717415694558592572209426269692116528963573689966417089377643379403626444664975511813443552195471986499312876880404451612806822210837397310074363299152674591724742172118732000370122413870204214660626087392025436470918646846864464437215284693042743804301683521194245795720879348329133892574657521098114514521785571275536210374811659291573232826344772858032207734038221889519215525022286777691044939593321478030003202583129816512714704154788653507178730599965412990288593441331514262218166567348075600278116254815400078854234393615871567462369774350998004747092829266681047075919224304721869117305480381270324701190791769230568844047420503840459453835387893530311268010670501128043628294151742010879369844665218200546581431012031949352334178078437877969628106627722680078875456644717553684613720131561228210620387612389658551781053644424442320744346646418940992884485502763488507783567241241201246202309006311191063835437551275447389292266710145573509366163892897212118817504770434772586625067574458812160487230559971220919680749176897722684711937100719822429715425763823306768726904750870233339215310337232463025105819122643012791758600739475159401341021490730273975316367398351388429736647955661752625339516525633134680630483109516368099807448468511069261970768135718084776167669992889703991722727629665143930413345409801731516319729891676728301046725214968571023415537759265299916385962843467313763203055757651916507522660329123144642363602258362738022565464322460984403777545087835884870855303553431879444096904535418256470260809610571141228444261471662566002014735287420232685307278689197647927796668128907993186247863654923251753773173924675314060599239031188502348349083986058402938798956176796686010644603847418133333473454665014967257780158787796746121578651853664254622418544353359678475696006222261170650582408825882122167525553318051641980340999184590885591403827818615965477756344123177328952658876955071527269614766746742889662306502350316107386470207234092592401157458029337595891822931884202773338166844598491930727688700575187119387792891152478345506123500643781359332377471488209040894607921240654121328906076515099868378619780004903419935897825139751494111696613541370033399219957077329995655180245289127005074075879382006389101419239374206232550697248338921891694163278615597419129951026641686747973304257800381635791380477423303390101996302221902703924519407017569016937921395507777138096692663999929066016365471251721314419140207745923470556544580402337927553030491215825242438891231181639000817771226311880256345802601517957293673647830430313831491596685719560739707044256301600769625457448642565622319805999116559114599219861526254884440325620741813501686600676140540849625958146849802268682477596879740533457854443236525457577021025578011724756338680334931648705757921919465442948811012925534692630271932778142809791744653335382539836399438793520639042739864735746470415055435538070223159524563711268295851710350647499212007136962184234997401939388407799710926831014957115483364186428888030603775207635591494643285137782254083708747047215348608854525006349107508027852811694154389008628109356409061635041963303603347674300814466329075488946434395880933154803067581954277734287757005302773131089045240922552197604656725243233764386145485635583367411124140191147262972600167542646003614045693690663952981921673993385724443008015962747034805557199310543799536645144212663907053289308325722512451292759790282904487774301038765674470319806279435475005237671628722250390554154525959419977742904987030925695090113569238292184016359160152380116502562021566091639853684063807864358292562232996973466365015156962481195106031925519987644356197344205679408910153120493360207016928326997455371547709342877203485725603889915451876739727157544761566522690278385624382150171128988559307893781251018740185197768350258583255590510627499263143190335678695582422858825752655984717513515190705689796602673887840168434132106760746035262556052031783308524817985868169299777743013617720441259219927911453951922555250460545118981209789221503166440258169884188739310604939002537350050143101063151243035263358711072249194775786834294833898216442745537487658656283712571157359642511833251034688315697642490383956444904079256737364549964591844202470492003876519119409655534964731418055368721347247854443617979922353498126102009885820618547050095395678092884735523689545617098025178188022605229975234471043419388954177185279875572199764406552521556369022990067808106873615066226250285361501184989374633421896313273416984856699341675218551681349208415989554647715341865623030550430038939668728865606395770731529993242858974591818393373950907694437336692350471641260649260831912190346222141535574462244563173462102112333673116988198995610757275280256947589716472490123062487630617018872589619699416038791498917857217071544335621888691066421984982762670968888214139786995793448746984077792922081389217677690451492685810016866696516274359690496379055403990736946291831490572802999676190518863653692238598496885946350166229266262375094101879435364215859833980667741130008411684546065201769690972660535382870804782746344912034881564024676114614959374213822573591305983389941194387897617889475843478281418018749954982892999806122364916333589644473011157922891375277050742904256849216424559727522810521508507564743995189328472426909556617335286878917532425292944887224007365959413877544795237155164118687262016800593958242624271286623462533765422925311954349013402749323955024231699413292432157433066345836810179340757301569528698729267936684718989651983370222293328990854733559143718575828969049962004222025635022929728911325504665926546004572515440180484473898716194085209788279077071921243029802224723460273461045204964243982701984462930292514127185406079426590041833549079197712513499955966837864153746192480002625334425812283341818939978690171295135730111585040578737281657538140888001249651185220570870615891332042797269738274919252800289986164325646034059105164375923808666562580259917093061751299489987790458427625537712858434126657594702264654930286320807240293417656431617266710204600145911055024940126214342723194856279829233594194885761594093331901920824045994748784341948305207890333817313479390243463930413341448934626240634936359374997192532597849778769081184584866116909440328283580973481111369395299611132896756250396454083162317039292395315519083276582554273908755641260260268137797792111065704514207776053426061905247427280832815840157501287532546234019921162575468519844702463902538370073550527953667017869966403995172691531453788605140169183093580916455204864553183086960193484378645852042228457653670951808640965253084758778862806556614041261222071773017021250749763414485396675334423883428394211273327219937940316903106188629922466454964325227698430724173054720804883300264689110465495923265866818776417463686517058627151740181921575161247268049872364513746204379170026555599047807372051108450202475409418462030433432330389182972037823783782538711761375668363640464168452976524830550733327970030842876964842305102931312463131543004358207879051255300261698092294943188719523440304674162881693429273772490990782317648886112322449026772677967846127895888072103314100457394303352576997224152179223908909235687807043280939896147886352331059065587708559184066734718375155634568320779908579425446659849135856072798593906302606882214645479221067377702732609437939622599296286352129494547218260017125545261627101340514780677491740003811465274685151328053691816590403820517773565544831446202390274187497230263759767006002374861349703020154459277861047367073830120556112209616846642087745502005768767974702819862605280492458973334762718973732121995360100282820140489922222126572633606112469060535500983442535399974539857690955664624410985480763183361277075018014765223697761959963380914825547488946834154579680024991334897817229167157608789075857373609076803370907498863178997297234348169538741323644897581471278490587444952084213187539306905916032534938383493327880927158088316060551095907836791582910979124074531282216402668771079531320523737059798739889456022653224183844823358454416861128479786783240987090665470305870374063921392083665715081044012783582794110868564867629592200883140845119861647204880610694844524806851861590360031257632421346025578888071098132157362422436751261921823426152147130796969861336575129668138804269628835853296690400623072176978321833044207952460178621745258398778784733832286811923700088762717889881020274099509176306093692501803036329069250707864627052517796569400043240544914395449091452918257905397265254743651225999761056187407507845231183996085198761913907553831880699107263164142478189788032539874776289487189072372012408292283030283423236101874213125794203262910942865530166177946739227578953581185255162477341466482256168317011295942551399949400974254203393096464700364886382176404440471872740145126490497948657446982126102805010933363743324819035802673818545136949083670519644894430138740236752392358466566854903855047302368605576426690289631273590226329329037259773197269317627607249702917482866319031444068653412195743787474214329983788182445224494847549532244122254155270331617627915919898582373266339111963284949061885388903886683137544642900473329398045864820190567828820217169933297111162637809836359686372379752771517777649735399796174346699139183668866581003087861829352618004540025894447027569121449019186343599387284655042593022799483779873043013384676192316907600826201062819773555190190311227371926989773508797956974171226682536706815366631519135694969115377261353217636394870730322832068368826708348740819346823503302349639041539240249987234449652357012881486740614577834861188453775615184676944891179553817277470356013972941305043328218693577891439092287554653053050905151142511273943451513903434240426142578386413585546691857045764617245207334250406320984894736387686373027051173869747699159703883052349932303765581155571666643562372938638198307784225434027070298881894096324923031654559370304550073445726052875784175621455204193225471971006817713046899957189173161824010501107011126546857366600485921958774615368743805472962573998287653642917669429588240032275979025929692575688893950562667680002423905975654397767145194069700985949970502444876049931605727024789332122615700766838041319984011049623097951160503998892210844855021924290549763256790498227223153260832063655725472055219140112260462386591439701766390794680291628241576168134187922624069683882285754413525457881441926245871867073549146719966554448313641259668681000519527260362922818205754032809538493000812127950448825884903626921354584846707571690577478288933617885504883290862793237446106465444665538778590557666696025673032170922922517182783542796887815621178578152344722332429553662444552995467572094341904446347796199022600217818839334276840521638192151414919494772201589532806453743161556547520839149487869325011821567411840074575268492010688392154344269992284429422902271987379085269830307600841605919035879856353244871468925326632668049209214457863352502667968874479509647219210808023644038410070304685610758469973271265720373966908132288269345978264158449383805600364219558239528161134223370318948781527467125999506592458527929335221817192314200529179765326273168359763146864202063930784772675279231537412996441389157313654752590918023636591522351034182830465461416788455611310708666738897747560884642852089421182460845467457012735205619945462010395881445888375413098446952632685296747743310919782462504621181585633882688574029053767397867071599658191388006646377592846778164422051382526390480474273205018256944065923838509175101903419395885132798819609059535219072283286060692673016208146917732619720159753918528260020869966606430703043830208298908841237191339486700685264799105649895589735037822515176508350368126720993130873841377300862498945181568345319090772625543876882130804142238058055413694612860597649382161422960644361121486555263510896606265973072563243599444669362685043766579951689747442646032679953123966775137070838486205381642370829151673616810372021161236543205026669826567203507161762978744972322711466626442396609911998226284416333571472161000435580493681934372692243766040094188844057400163343224306893310863124175636766806070717195683462851140351807862154247703517441021114059041496070884090279209688818724079940688267443684825541676044670398021503729113299370334758242895115150336061710083399144310210565863633778979985890554572610609470515227909229145537248081720344444345584304569182948530273034014374784808762829362974531068163509384335357959839665851248302324368125457516513588483460552364321804543738138488620732793254032871211993133269592129318785128008420188864610443212274187888029260225427652214435609843657532494195631258465351389832767815734178613950622771043756748617435901652474330399239513901340063206254867822461414290893889326602071330175521057637443644594594899804646301706035407967177071803194509902107864373020182040751353598204638696078523898027018418034799171911352033433358289138630254903157707602338265184208926012998756827677502410567429721348387600920482742169002976052367099128127293439318702810928341590768636680814312254503636966618861686980901217187814162522010076454623455084290155347762649240290138946407272629321034551708813271670869762256743620013424598044576278894903390235302471298032834123587496711694761123369230353081593216810058277218403108293240539480580158895284670085544643714447823398315575567640925967023556561916129259417840789929095983433363909949097876236722122988579917206079937036624563420612481872387352390249089086960527449144196487305311860488289906969313324915347004714473248661671398478201603356446101764030706399017597943118141005842070802860914706848556496049533473739985637366800862706600756000650233826039860478988830322100698799190418631634936662911541143274789341299585265209950533097257003466121143300793207743197226784815304814373897084370881546626777632061803321131201030772695802317779797653752360886888152519988296663700569367489033551497858207433190073190484025166099340475069017274271230007568367056202722768842446881995094172991091840704024483946598228358868779649571812626956280530228284152372680647374168335657174978896998807164138408888840819961235847300169597118106514528875542888092304818687602989118944835228246474034499279436092054196046337719883888059587986248884745493459399162816457518641568523143013091792955361859151646212690051736021897838761454858877949876987443989947656465419407834528393577846651938611959428293705790209159001103739045249548614877720033889269613051054303850196686953007999453064339071241348525834682942100393725992345885217054738660439395840090606928004116929616752522244029776097371100117223442397353062039837056555147971956642967290989191887507965944417336871353522898532955919882801191247097354239606615604309376909388361305595840310571577875812713269879143063271356732255233226715475439933821941423896898744725570774433646283302611865286714499038404118141452916722590391868453920373623235027231896998339576844846799105215190674517174343193573183478872076537258030400216388680476940528822388847609832159793427634734365860177198538198032926242785507328622381435598419569939316948128381806096454701257933884180848057251533461579302439148088612576979796586315412829411225045227972048592947247361140731688453415756596563475387254448212280671089210114824868222207848012601543743332673445519631275500224629213498669831803501106324351628105421007861621483000684671454179823279217943682339977864214674906507956502498950318483059252014977494172537165104029429093106556076904156384848126042794646365472721982034514204979675338147675537630589530554055664470179871679596104485535755271542609833524031285236266664703030506270774901766240923590365469990775874576805558713069483551128704832920630004155458482709907721174511084601949378402816114582197018971707266535595797306392313285190252166268286385114338777955330992739125929507551781781789101702536800364397094088244178134583631566544870250468897562227467650653547083932134686819975993567538969237003203033692856729923012542168905724368494429013099038578154084662126079666818300022562674812398245429921659519615534771027711765566045534081713784039355483120329338231263618268406899725361607852652577951627374690785146135597322415629004223613764787203276545885493553332716905795892684816288250929231828043406211262237503871611923187033745630458250085648569768212675303485631943805125801113007777691191856238940622832303185084051575411160699353926812605368793624724465160122487284396334241916346542720588329335703133325786010819431083256208776794245987651527517367588872189109369392318030418476208534747179137508888382861871397859734342419963831022980398407523294537008293051594571895846508078319933023950070378851698897338629263717489016944365473365882321277393588478342859340356081757491874573502192602769186424027545454149883826716791183604836048570653734957168447878721008445230585342615497404670201635320358128807385924437331629052854300055444983967105041533732898088036142232936313470849994691952441851442582760910575578275188547593948225308551984535738590757272632374637628146213278132008239245681623501478491743324878724733709112942602129315030329291860599514479407886519885635080832458544879413807669852437230803050728008788146316131472177851489100636814871181263101182956148148000222351314168301713711802871157113518669919155272794102310657379777931495417231661458604333731946697867175227768227767047470073742173345690224325333326347949486251451814466475106028114885427061838757420803650038015392049680381792657500141840561400363244182169533182313251959260243456960369638978589993709132828338318513349139824743558506441288092094784167974494636394363318774704414780260450135862255859259421755817853958229065927508325775103593426489345390086242760463884383897948883196786523039764824356821696172646116310238291593330908178271052441264348717619970408126427520667292095313558743525039788350030642263252905602513394405306234413661610900713222220854859117002021282986771515123713425382536553193418952338134767558010804867541026762055367147512973775137243645792903474356484748099102695536575384827314487563666571712653042605522239986807106350546492385912519799504945597835031621089338853403337849988970203458843993273554599527866843594852328901431338703415432579884576135281231694676384090068350808577660791858525004421865740535265201908542654140602802763389098490709353004303687293827745601562176490014032197637571176109690413970702965820299633584167977693413964223437954763289855743211704830352510945723547447773442189016172920691656816690514468609044884078097320208710357693646473146598995704043201045026266279910631443043355789039778347729977705579141121694825506604254601286403948693561556043235754688633777090276069414113205806823685996005349466277893444107054768879679456137715782535078451152775394109979053639626693592443519747038218710917222189265512601590611532575273295439618283097322128560883457386615813062136762103405105948780020189736915016803421292929573301989776119998539121858940345351802034710563280254778300521080315792264716931010002790553679072712624549011480492561792137694025972173907085936498087540203160427721426313994192982978771879882044976959518314763766625110379699805014109079661045636788305757930516049281599019377777674853480127884712276059293978627143375073344821251115586457799675926193388665296367060695087538929056128406291177992979727275129273423498032942197455165255110748509951775750093937591302863446627854330941206123827107364842720093123665324361172485444490262945374638183276054077683136562238664461028677543812670738832828202550960497006878834061321767348968837067215315264500251252923198721365889436022897338991366611359945146641329703440492866197074186036946751670059314053954300751958514605244322025415740361069972546909311703305254368939210411926405467665422036021129232566075346326498988791724917266865935575689280011554799203800019394827357258153824712299462234474356690692469633049793498336415018635253830861394284729287399435376948928743474305329044513312509562943572432255047073745807124377710652061660611604818329131087019401504128789551609272837245338275368615231740698151180927046085281131888958002089706258664267783219164425478792995542205885745425348957641317753323359198130843248069766311520964538879767927574625725040298849980698788937840954991222547704690669708267126647171167097280978846002307883040437710732567563551148181895688094432025233147679352920938915366581128366434033770030236922806882361547392386048049097228810343004915106105299605099582788874027621340367001395295372196267913218875887469016838585096239508288160957998685088645085639513122259044098805605291757180903064302735263849326004481809188335158277738289356515161135348292787736378070920701273382523407847682150704682141800303817025562087446414764364186128970233040903691174537738007360089386731716170280646481758920735990141631557694645210422680785002551035915508210303928588173788329259771571332273014314707557858261774221965060259625478744219369346955174507613742319940932403294623437474801784400683940719452492222529562047833277190617305172083740843454549206704079826802408969255655756851494972713366380740619979447746835231290624138890742542723283154119250359596634469013941950697060475405085723782293418166108542720573494945719955585455349050530262009100138604160569785624572103118665879277801173276829106263211460250765380085003545564353730122683846199203319081881523063906367132356909198099541248281178993162681757431309888493880753295248423032270839923650959515837468367243080608270089987642015384294447333380479808325178698885069433585646779421708106140624704665860594071800268963224519446444857122919765744794669370091196110180804274750743946577950521558697662997954406646103278259792921493376876907761199800342440601004968666909680868058330025441871729432654560628872895936831282672446120888434464398290963237726436616516347363182909707646162277846376178592774246084761664677508972617450367874486741022744118020119065280798606606696254901177709829928614556631659316423157700912366202461659379106647871326406604724298465452829856652215049355906884963743001739343068204615963893801431374298137323533353827287855928183748397266358701772220871147068521767305817619533536248342705719617600247528440305510841214010878742856344773109998991363642809104358659018932746290334032282379185608546452674984149205922594686214616055527358612040376281243197228274244225331541704181453147598767047144519961806427766179276938548559659655546088331903111342463604899196379043770886554298935634656611421100939415246310336315180196880922477058254568519588238642149778403361217299860520663818325368887732768449799747791588363932439726662369139825375787405935375513091597469017344803731879275687850550750429292870951061136185737866651654912817136469213562997432395569542457327506150769579529541522875384480104978417309599973544240183879505796624863978154568171936826280193285770499533889463196499772292217276064341625268261040348098519432744611405490693474696016368092532651101639910774356351487400482826540538971142404336882385814561836179482056861963569406604339661701296816260122324327391055696789458174296733693450340338601906733043409199163599447223009012565271259628459538639558724485497034741369144033266207741147622212991906395132707779195203260850324158474953097454318184482264745289648515935405671888000652696390659353230007189239626565227470504404865066037364524290111977973709004486958760658725506237638881696900289966127390385822534059005110541974882583952983555927082413192502900010187140221046737438946919734928718420949261723246446184164404802829587336401822993475336542627736827067684319757176829666812357575928973521875810215229536988241326507611507665533472096960532815333624565915633635468033199208983790567510697185583099509454286433453985024501984952643309023905845227332782753514795249780324564804886207535808342552593886108928073098208582333864169710140785515033893335045373118492670353349253326566335366981572658888638463508180382961721512075158399466227694645117750563606739078064291247988324216031498067092131564200497668432870679830462530473097247180269490634847369687128963633259096381796931007311079260193784028719215685623208362186526475913734377688071062195808705695265114032735505836957047542795973729720434260722582925925977344291454081008113526650262298870121527675286693390266371569198986375074901442891469600995965392927932841947460777064729350257650395141031407125300343835620885578212735676224047235260041914240668911091821846171996070460643031821241450529305566436811777961123914242824187567786728502100763341601693699361260409057692325708250788258806247337404761951093706530003181792808074219001529234477096290637973641939785160085828376834348488585724970951210923240492267870291967874788729850828739347679074799208311464684273451750576794115750430798748200453803344511037780133532114810856060150599135970818012605183321175483188295639260181533190991137934544067251603626603924366529021764092032714452725832715979202078415697100537395657637450010393788103036384801198826628315911561743158240849279025734117431465676662490709017038231490928017374447880013222634546000934738357072990724077396119120375245339337420078879722718997188151554283668478233532852042037656412376611541813890437505623511756606186681428401381494209681055307034482644410529345457736821409997739573243323969359615654764151740539499642186006449276886543650222940800189692531598067602550074243795630271429597409030651803857769830382919581327910868948609134218416947973120930656662468333468550472510188807536359840805629326908939290588677507974518333044407741168387547522803704359317790474441732760972438794527341053384657376026751696156303592645557452744489445723304467959934191446209175859083224299676706549156320465737193718902873699188809376492758065468018919378491063698806527847068344055020803588289511059070169696780774415043150084800629469468992842233807189557368886213697789179103147016591734051617879489055763724998007398658426048074278364325932690950828222767448482230795670230098340447140485700166489504532769354296771198999210247036362650209214610110945914026906384183684991458761436040615398246593139125407888954107505887914995257095090608049247797708293369697857169329150452183355881635121319887435125521215151390597978332044036915980489796586535330296631028222953838154508018535087867311169006415502887228214621963777806332332935267701832270692472428027599825261971651747945408797068538479371112420109096156889212716359433534382496128203099369211818080800130505965974672543886156856116842090376154296914684020953736624597132826504127766945077891961628431829380027809437593805014525452622496605901766265804302412040623264633308049146430894052412050001173923859778095965470748459690373926803823929623409422395989103551486604763525224865514460497674057215285884573391252369629357219214286200771157496258881221882613506521047931221333156566906816257338578031519252835721520899361127366123578470533726315466836199160061983929362498219178239774029843202940890971572564750563272572992617305916019549513260390381067182297570002474957061856283743802095916807346169442612159002582224282926635371398777036163428853130872504138398095350207885422776786749914378084401754530182153382569752015045721074139055568255156181748013040910546791485985984260684007792403227359258455614645525348143816250292115851384462960031975045506246295663632066801147890602145963176069608017168928891525448418507476912042027769326585387120987137543382165525561454463455572469449195538736970886195997472500226833339535522797995905715985982919572926376178915243439509629570259300187753779921811159922525974473843829210435910567478186466250025383034840227446417668614649902877834237845163637977453699224632211748434505521293124082249012005071649443008082070262239310175382217857689553175549732618360243279578849324807054907023810501011699355773059722141195689050719341494449396558521527241388100278246119514702421308169520830351675136588703204965180613475239003486946555298077823346279190857907429812184792383002732133300471903632187637168550855838630248257150241112253163163458346225978733086375178341646339220663189485054016158866409824070308273436868814122677331842533122016659878236770600350608648549948743482268650053972694732737326045546327086818554749954851570245380972896957156054574310583462015925572445376618310507431180020234574926996832545922204827873196033859504667602316419199889149560508908453570658305859090991092060186741252483422958745031075268259066687605682924054063683883084047630941069231913890853328670091665254761358603907195403265241912758878965721901219752461062350625968767166830657188433336744268537428395095818242781789965830358434504386996794421534190123324911610978979315879329778300477982451716193483218867652335729270630197605134277271677730533323872586219490811139317104378693716507337825891445521478854159586768408078605749205014932340597804138524837336234925735793286503794813344468036118578805624792251683561976597129190565863263011405210254316925369628112434964348219092339572702312369830304284904305652846286463126169829474908700402495871250871453058647068414487207114589263753676666010888053542274895712419947248903868310324504276753834348588410102113929669144270347785385870923967017204465566414878835092509365151583603326592732812411231789746078694804881712323799893875057375739789875210297159967369370110071831717416483347865033599444154355322165369693682908972152458070592028493102775587613660920205237054987713774117900648266667695900676278349723666299965549860267596787965138437915836648949831937394440625944351241559817460689458873563125677517254696473608968298784822739556933040041791015170050455276974394457851536330472563501550962750240783678830073132468213197782458645278998403597495747037981653561857189469014535656269169804340787351191173756454692595224218412213427705525020018180101642971339384796193465354172961425511555582733918695592425265402911783531411080440522276514268348032825236874945260911608613678328852492362037409785954647926747823437983948029470045655376993814792435171810461624340986889715288704691065959986496126523146300130413363154317681479331702444274548252216535963357772932693712214088159568368735449492959044654967177147628682530891797425185725587596455993608668168742200989149342943642729924001199367673591578171408182058185399203315242030760294521463883504314289397203278667378832344586559911771700421682654018431968056429836022369888513937320724496577632569424252503535387431733607090637091122907578592421293598391595047537353784969389474103729934984300530134521229952270083663383581577855718669619814983614742778064011839111922467518226275208162472362131321389697133680770393098444789400535015914053811669749516109398546392013064391691477036722075339864254126860239651065788904526218366717469543001698886931794841105702245428359024534920095522914517384926679246408101998625268464771325029617044882132119432008600591288061911306710124714767697515372788233674670305897923900988223704562769354832342743132152652705029979129505131997110894183671276472505942075928879108692147811784469012416249836248704712674279106586298580518659523493147292853297772459127233432731625678996915704004392476242684378739620719858515982922969253151122037793707255869947992789489393507948852204685038162250997976796975236949289549481775173633000744828453996255809761677932866916960047644751559217004524642462848321352736340348438716505113827403970415352707700864024722464096892156382101977106564095238192488590405656352991171745601831122495816380921354269235766016325026570073189593502472724765172692410862472210604835808011899072151040099611719887250120400132734736544825800923691245441288015236650411886329825582935152088192421522525008405925208707780653200291678715874482565656056099430194794405888541953441717451116162872872303788891598920396598941997644606505337018093821209896305534506983889092529886209728390164178525111800037511180990953974615670899187935997421766247229616236406037435312601617315490714237278677022706853487540094987833786938699688831164440241244115469670789949355137418574032125710029690809987351815894105235427008670927338381947336813405095209670697032685284957012937519073640006417912339683014473074360503336053834689355504724652346637643563557565288575814079622282015125121379911195424941068908216783693314683292933024194911742235160823651861448159113285567949596630437496417669300249242187138829450072026901783812924772086684488659530099949328477718405350243687282305368251236203099312108411152397481269260402030314083891146998604275834764820816582584795222011226761127936906575527089677491407453002387153806283118282151572157451053499918704610305740096090873642047374201849657522663198046831631000076643380681506721594373298368859505642663213175758412299851503565474789482298048474324942588216166618997549193437715528183278374258851669965108534793415879473270021967205779572840047006223050869472971546760958525443507214263103906241254765782228547867842975299724940092458390677554412104860973956010597901079615570697884247448610689820417517187302701216672421144882666061503381627065747035528043931090853031489321219177605173169173092165276292050910164805505195985538198769908525298781125913709946661563526964923141301512866477867905308830371858007912952916020481962950606846450315389267665635784981650785265756084030672926724194012685716901083067151825328447380357367805830374486168620394648899267743485035340000032192847389569121827819884528457261456718643966341039084110794655932072884242145127508790214960369512645975378840672359916091428308843953061010546848961445877006136574786045064066109734088735667315399104464880574931731025396632910530108202201687733313673704206225256716038195329086185526632715574713249745282268968451846681161307563028963934927130498954659387101061095427630890250385815552695382226323066171086713990531712625094101598126437148714611086644346967690595845649235503153644997375719427896875491161108304156684601211900794855756524805915960625451597800800868724008517303291450292536150477502497055207711796465307276731641104406280780101621957808524572708289454299517616029824665266642465644991301081573516654795909578002152251054097280465890462003162859800014656089813824124909976022561664691802290725648048096696968462509603433441201110574396796139588995515170728578031556071461645468306157326600060792626711011939291628163878036391955442754123102610731326140356380989633355341103111745644045331049784877333313304735374740003191858683870463296023978451929612473017872522503830278757862622552940979434132200550627923131664454650043847929659505202949900842735522350765119444474178086073742058484361479925079335247460691256993390189715760480065922183362585041897950474670372129570151731919146284336175367563780539209541498728355026166397386260777039976933939300733583368355584163377123253063536990495153186933029827322607363178787048118819619691174867369811289846912475019178568737424132527179770745366481043007419882517102384208062101141337780942010936063818352034692117549958959360353613653170967933527117658578552683183406566299604088295377071174058377688658445538419230635104106814184051530019306607901897935395193695835858576670762481830587310137830354848427384753764963121683478891888249687115211046069918302879026145436769960978832148134319942907277652213635837953323507014731239019082705630835430978597055364170316142243330029681251913410831765978078514710863582521489187914694312478379152408909623165980958905408892989788208477035121510409049810500589782550180606037109276754888138068713561877096103470265626018802510296888220230553444073141814433305388906341188656463786635739511979534804818603513751854645860135118271492581577327606919670370267102913382299108646029801906093976836789468780177248812685792169002317731634996295914682109765609600350498274279592286994281665288989970102328733492282474603025752264218880445682048342814135778672265553366967895658283782981513339810443333237771534043502709393787693969629945430550441721248339770316372872263456259086376380599302623916706490331220493101062403676906399823043779784444159555363451692170386919568460605335146231542652507980901512611272392204810335435980901633036088994213735044962342653378134099621288438471812557753158030249206744705026772326316508455311391479703061825919442185016074742079597211014096447701263149280209709057336890921404207295551845194087959001077070102139972882625574303505022193581944516488252331257678513195181826020555480300160516489073517633418921144066404961151430142537871565217330112756843303033925347060177626940778488836005322686000969510895687506517845310941353410554975440229194260811156787023246365594147887931996968445627974327633065311235859472360351179653973428972977805723366803458869193111174585275914360856598287045687176653288236668669173794474616688785868327001276281463597755325651650785077910798086017692870656102920839581234667279495921564804826996451305748204318944517452039072082781035310712751573863056298383868957060837729935025626363222526306463098853378585170523268090963803409235424851668833865089662285441906378417930080146505871853393469995698315115794525821314043013632011073994734969841346703716435806568077821268542791541257435401507727668780947713561764648145567560919380530925254469574683898515916486603613496526103699209769915285879693317596439572864654049688448208783875722134637434818868014590064888775730413017104666313485104601059229222760577007258053499724001815317143079510905907030736425857625290021520460846952914157725460563584911091524263659664450291604144274452597282153856947807217583571993371004732293220634058405146253037155759011779687114854295106079396933026650964824869364211363146705654924121839320629637500717155840850477210061331684255652329798354376473020164082120880242251656234650297544400391962162419789202844237408026604447712743167563724455408341644841663231194574114401808513938878234077932782784004380291969651007871937232596869708023303083454907881791534892655568074213963021949491646424769796270065720953282620040112142279697222683986058287864371802652488591234661664756478837540575862157168751560248694523900965961068328421044552725706297976533900041998134128302043776975627729333119856326321239405329323857689451557066247202813866499786757843582027962167442255510208372721545962305261507757476884699957713429183508753349917290180439696088838254592560417852395232301494238078738050338407274616474289418944005888900199726594775260015569219216059548146105297935512235361558667180013826155013103332925833511275338339352274519763659863579816817789952294805233359298181597497751375896815327742250612518064944532521153671932048888192230663017775685747613896899476441931299254382589908502563979229509185784540609897018650611166458448687000135214991154952987113243092214307170031849860030543490277426758298595065734836011326794336646476127623698526745246281744014894086693651379054156317423125099099927437309500574209568324267856319610545360750593337808500129725318361580289304648879641266940319827881103563790335407020711080598822633056602899895629189136949880994849406875381729044433802298724754235628074029997769159057450035844189532864035419708029860612547736997851232469360140926877127473373039697467444975664425494526536680370064432080337337923050939051171575428765507069108500404097107279592696820144997379201193916619405000658708991247020694227207810113969187401716823606613575482305518082378534810770854312491354127508905326549540710955375446382560693451925834994240647055197022848464353645947525000163743215518565563700486068030197280265115958049256731600732185088605389701021641896578637597643094524558011066222730365169521629904289017723520861014021634131279779130915827807397781163628181393841161652580440792840242145914073352746396138249604984913205179602018490042569177308820947396743685120982958888606108595901584164283046296678295477184804582189357492503452979256912230948350700947972197485819786896462113702438063033050729806271158832436871729889520543896481478660893928612777304392872276156858471505959582575900205798380599068387081264013080186643579079258193260560855024772276370076168331467884327376680619272434185562907331337728311895790333020350126962451753172338906173976540378587673201669004546139809628545612561196140419814839863382832330223593216077019626357793267152738581187836097950610866680606886599517564978763753353524785491048579870007446622084795350407563292892443882101797772406559665194652062704010580899280013649866128704470992007679678134272090718734007084636211245357301312583302451697632412202516740588320690154591186909421765453760988522390336352083763381869718998507579502600036000568158243363107321343758013909968229256178636033944298716099971708473921343889387580718692919386189529550426527216994700299233818037047482009080481130539039016875687281967723763783118912789355038875182642961466001473496504926754047895617645629772785930830186825691881595468508651747977970099646978112814224129734402645485035989753664198461932496105207729296878891265722234009047805911907231286451772769554955973412489879843048372081924003167235696652454042298583615128856380193288048826487819091721680380563160172894619391317118504847582088453779838920316025483969720234790444680065920113451554777841579366849179393346697649957655699486398794167934369069903856461955517196796099371750098872951174994205270352998241526787099838486770687188759899921918984727078860247695900277595002665236012323499841426578858061975915330639562633847305153177554314602639917225517401807616631511962822206075752670750808075352090747413295283145940456948504445604744543470712041161561099029290212644143606193750962026838816274390132048068993880797207625729685137843819155475040231669008942148642705351484651675193400969699478360778655106412742337650084260935929624827366791164407640322202970444673491472791179764602322747827209171519816485346719266186141291840094605668044457218380264285240025891449189512746281011950883400933588054140787652015974030393227851527063174740126266516090003895557259057364339862664276147041685739837227638009553097537926233097339899666808545757274797829532055684057311775761000877808366529099554659562368724200289388763474045767707286475096564429783272378832127063247299892949010283865326985857481649247397914816105116397097229996480663475058865017018860178396979641020208336308251102001806503810533529230650535088923220773616487663427803265942357551759223857528483131733238228266733859994509239973171152362380491262723122815050934301339756966962671484575634050514774774107435136724436415136637008613315312294601704609683370215970197228839955993567158968613323001930652206022998469364852398374625516937842923052035125055519744562634338663929628423659925796464902512439937444011406047452845023788497374579508377698751688684773951596264060361801621883021614524626548892416708076334151225269084419966925713035058976570581161725075940254264133675528846384517891027427174633092481794584757717986881663001466188754040463836134907618186133166795830702634910854534207911783115988703950010888258758954684704059423251709903853008865935596434198402295470461904279368555576602603055967699180275473297739921976540814170536133290500311985022576454525197133729612457747580348992643391531115949758027135113433123698334985438323354555961055105157202487399010733057861176445816214900483429884986933738276393369405447692423483511852256480453644145872296140376778491430633452161984238975619546041765611876017816513140854986830545180815709864281379908811692515173834729570838847513422114068398319399221913569208236989159152363172711740853874285898269572922231712531003017496319892931649181930984912715171318960008132923232739097730141633781844052496363446222617322179287066393959354019954158989999796643327759046658183953945133022179439066846719729768802849595855079174991583291371371193423198807816759977622291178336177107914953282571896340146837586800060619023405820366873607938543760882324315542728763594766245623259460631194164067565885160494263220085133194738242883301903768760769576407531463177081767607418327806706195364856448667334187601781851784020083557854662912854998423921720351947564375830729053943996489249961772780408189751569364746949483733061934799780513290293540034011854298256253569246337798017496504159754681119972304886656067890402345690060459818952666237805883178365221930045513872355363056947484069167597954889881298673030806655264460485085940547607741194716797325483108035212427230575160232120759607060923488905980354606890183773477236402760174521869147760635897195048040642277585062010044282166734577472164030670465370290694090358459763389122886861340684898026039813529570851615365745315466788838951063858423384269297355917597876289150826680610070026768840814807799234916632089404058616478436045747741430912289298033968688952328676936173189822900036712623476496686739557862400592749946406685236523715168757894175824058808859864847158090045838217264154455199887063507564695545090980482181071186717054968254697957590947476385554309004470650991695381074043206423401867135930642347006036252899641216241851948730244210530635014841678915514329541191579664927255619711547633531167310439880842860276212761628750723357783004380225287113899271387749667351535659198067808876741954924285381517115402932279559156045396495220003653187309635387931693134993559516811216244313984721464706725720686346929207433770351394351453360244707899521376967167442099261834981037342846639228013045672371054316439058128084299189004274534393436354836098744396631010249308206344682286502111981455782945200203429736022011825560840722200397526538328451150740037438209234741532351321086763587913601346647120673724952175128256442664535454017301529795494262184311158733491120753963239677771846106934285708690081729788306698567590819670467249080752059854253988424262921969234208767345297877984971937768332651229373596341769769067444953678299319375982706668088138376767357811091199618996065248943631594294825144867738012872972903225110939733506105365344403666937786437433813802016370117220054771130184725763861880329992519755942449055225948139832451587572943303799171561924938810121617997796671219574099552262055257788094759196311224822178714611389781411436340308685840247156485501646103550188855517458684112331695604033139949833241304931810833474682586918420782210300041753258345612008972125600216305514836557092333288509797273162463305176898830245648564666018460223978483384735227369802974958917841879806290700479959006106589860337538741838819760464238163196348657320137304798232263833720621556151850793409945780638081099705988386541108643372353687994564263026965082903648242364887619797577595146978838299673923361918792401632750271036132540555515455008508752381594167394269887506989603457178939422148970682927572563135887216094360987080218958179673860250126524948295936839652599131145056196750315699445149389412981804974880878008046864457715134920748058539241195240092930802384012240747579738219613069251323567803373663132268048154600575736013143806332713640853260478777201841575299189057173093285551068114138175939259130578915034434284727752015114582108988510596090541298558652011314171603225367246945763546018713052379632412512601560175393172464322069997559453700873758002433116037315694169203452661914108140747999400590033990718806580689855267412743727194047375638438931640121593191373464211495087529257189876430990791796929345613587280391633672311959676883205339824892953255968649976370490380781401336538972050772092550706557639901693083697918333999186607920274741824292747731587195336306820814606568621456576259902160611515098058640162467255360916943767603903393818907050514811538193293625512007980048139208665220210284173308373923971488452194227444587063280530456800588429974414365733483824664382878728478485739266281767035168455930569941499614752269485487572493329913451472952112235624725657936387500682984634253305439723880095537424429633853716547511543877300809827356119340563979463944425327973444991600969241496218061467156924836381523630810171035518472392514601416306699017007247613914575197838052526718044387167786952304541562563254346907813513389011784184826319027296204703764590258639471215265746812481529449611107304996005817742404422937676101231466045459017290341892257707849474813777536884883932203347286172632474732492976618481122142093965884348270159306980892294547546986937746614244665023500349674352630092196717181535740925572311230285592231397668948046033036241761346579080574350057590693822136489162357184026172642991535781984409582687144912788598855089178356326249965658140357886456844078826131202498820534475769497473306919482582006788938123224670567437266797251926178688942510306307626935222716047661424071866998084518288403416616870467917986085867521560549499002622892330284918518601784952284445370744896581467601403145530742141348600351479369446565089441024741115278206100271545808871433771394940625170834560993782942515714026459641434616614190363961115749909842826224325840074925939793757198214393632799322455858765352116158496504431986374375880536134769970757932005824666855854880538502790038719078585329091573636148038971463079186857508628200849970788454914312892285192715787407668138188760102670201422116390258882748892182315168390553002703316536298277208248301226252014336712815544056961364447790587490881891686460096566921098919433832732884515126515334114061805302004204967958669157369262411580432933397989401052831889235504297964085862184956443025171950806506888960054614432277486775452976428909594412114549711832399698336114520022863390988033337296053879190006942630652140654310678633167374964565755128993708116911256991942965318884041647516643875899328844420573102652336850389317929840630483307947468651647939284441034736840590774647741649940626145090215405872014990245992980320931613858356123103627011481783117833301042569945301778217178763355838241200356443723344923890922316722426125826283090749563569934506242494542924388401496085489906268707091347658262424197099366537920550936102867530096404153754636540582913324010900482818364451051241240013956496936950816814143893203764589192708134973608479479954352491049257123085124813316276518216593308529778997282646546273794895863431228339375304298576911106484225448602682001843730364098725690894238482553097716620693799582764715030919306923000172882560188107148066565397660400705028423299728103016787846565803644222358273069193517444328223116865233885870126127627768242280212050930426265008390961291083425231951073587420360392078717565273796235780723220744414676070604622534256519610451628305708869069158343709603198071021648943951519505816916048481024734352813569375783864827971507236721532304748977418167556621296106211589817819624292116280147449831889253318426391572026210034192632720143775933003968256537687756143690843409376359408288901036422241069779091388162190057473700330591098768281310374921939829932001526605192002526536702081757906914571488970599112026132646180530431548111853715540359555340223034278928515634850478943623003577510395350225642862451241800176071588033328130534260225006693841344700912031300831019839862381884174042229706051128622517903100740125826090385852478272287164312802875196305591942762785355255003176661935542563448769008142050960751697601348642611682790660550798852729089912815903596031735280047466981636329345738868609122741153192669166797710072931020876390181520776376463281735097797813223065345005323113622900681317405364665540073669817557949585058975336711448960624547525178295431013770529401416056029049562897734467820357228932937214474383932932899777718581857200112205848540272883195163569541310847079475044073049682620491161681550816205614438948037058211772757734147997997730115229618960930897809641790517763461828037958644989796789862962013472165329684816649210133445963647716737235013425495342159002769373841770290998381093985200926455005063895739363569561802091559891112013916690474765270419695584490431081254253811523624731996816940498960445479616188381223840868801986438994703561082099918424809972344917582165799969489379263188598322042194263619198454556649608678692822841429903338469808494316361627164922378520017369964353964908682864440464018129271280469073680532312190137917483706883499695438280245334755654555169139983408650212960925008662177441191936769472296252471737529028981259135655136624555400135980022991015247426615611146031424427413731232890607117458700986477896975078163205724561259783191837895057656044766207393193323133575129350735395964569295357301572446265766575670450164945460370358796419021059721434082284383691319911162087750459282471773078863234709794664383959947211334240417787381625363083057538108089907775188413041454152523785709840499288620675484882423796507503401574347670550052431287685743715187130855009856414243771301980611458954106765094492508169932293886079830107773311126734186096432554535829397619329443303815576555519474024643954688189545892939615418985416244495825924851184181054324754220742647105874049510677799720488918717562663601834753866152622136073020632316748234744733615473406956128722148987016263825318867652333669055965613996231199588312089646178172235389905270729834518541590985006101795052070735269811367455640412054412987906560062510283803271547058321492975899069857906560376458612932931126166331908819480414976626719394468121331431970624734199211416112398343558049127358373675580494193465716225219299494383023524964680954997927306314886000237209455981474775434125571172553615615635186771676622402216393546858435989472160056893834433040159629898205788217441238242739103916786738613917001675589531651719803515898144474528513252134273868727968092157937696154784835681967517235202359255147741379572118105712372630743790896538492490016329992367324045514520811062274477715780059476652729906760328694680943755167371130736879393661960548071152266924892065054894969637218847583230471549491139406436050499562979751989940330452608136476151567983461316372346615642380396358179558729488818681770917722820203271234143688038184381871084478349392585926301824785957388874415921852154294650779038429362808502141163689394860028252153353269524033861055440889780822221218906602772456365638726342095225693689665266924306251945475821057191743569390417437742757481520437798289803602900485967707603791064866625129760735239012703883985114250818658198662217522655265481367827910726990289096063500085224465871866041648888854485441091494139344726668753201487198938660274534688434828670039724858248637581998424171249628422674843545537646664137123628270452938337238990614507869851743691560588707495346549211984931684166847475835423658478881862171882439145149369268184174710642223129471452443887571251642545927021012909473032847886786624258596461538217827603326701783407861700569478464056113683514073917717039111229975594356471961105351683126802125122308259405900518189111888865242230905311112578528096525261737875625577938297377599817344828794479656074144704854034809749583636909993948429083878865350477448079596857075369179051403556901944921163170584848528208679451559778882426203000350626185567581653583149044489606982806958109988149148817320487392045197049182760656923649764512923373623379695316951091783632937722657768668930622677348874068679437530915488264760611550920565859852501918656881069664238097148198946573945813078075939821090300263200808036217158101906302457207275389127736769377973015805272548799892994865796652486596217417536347317102961452656080956805755780691780076338714939732066877719060872927133558042213983040358903504101099774987435000648507434835103435702300590490109402286873552123571408232402010840388132085687020686131620528643847562644913543578862914176986103971785942882791287964279518603342921756306272289717009620173458551445733390041160722477121732111583866974137874231700889962348327451630994583201473184401447156057367845480624814135544050043648786669512282871533173662294486577320178618128528379440835188445720741637524065629743772669415441452328509306912476904044290172590879328102477208574151403725269050640774431307176228746590440182231767293491360329049916436047118647041399709495896350168637449410028541121801515043603601879195992012821521008516205555066627761378692244857424562645920738020696562752203770531836620191758861935193042299876899227643802200896666465871396382961714222757199478518514031920707106234837659413019775886737435756411786906332815631274908006313671455971980493382551286581874706784012192453800618459720839281978282741184525766255232367499353688401057196390879797464653653561511068510560730500104687163382915644671197112908184665087028335473918632665490322105329627569257491148306489181543031385390121561186540407950376839182070461160082114154818954556505127529949236166206171086215349620698286663094752016103345207959866978560242093185910293529705857169982040291350349613000356636104102191236802690756586300742086809642034892893210324613872730117800474220869924170096076536289602673595481582588339026793800968346369420387712030207566739413207418234984412133864462222334490277704736460461225788705129162510686878177091549860868281226503812888820390650515122505292875110993386407694979800626062806173686874301399222384187164412894969566796261710572200130346824021234860531050475295905896671898956874046895896248115229862732492984878912033417601993224300362077816395587296955554092431338166868193632279032835100105091251177621882668751451774169698018902609692344298126118775795223350135639428103718477812999836270461853140173889828889311287989186261563178232088691537219263103159897702526811534686598837848633263409787712914045420640052373527382719737736061784584948839016457923807392632034435255661737372965304115381681049994641970816624568944720069099327941779782893812208051814668013631402500476130753221146600398980335349321132070582421337338096677882882824843612028293032425657306970791483849209357381858496534789048886519452443663772989224259554296186514869534492990055244559966845919815123295997280012736069505618924254144759530553810861949561474631089435426841794915389849485068758939494928488922404628206657977796843199594513004964541360583013163567077714441322735260978109197707312443317776787464072914234274297662337337601623989056037600571857574337475445857456499244314242383051133153940685105471951130247200732354093463872015913386145936323989378463975950835046889462585948317284694185067012898790827921240707856430114364537726985856486259221985968795566551821286109252757257353687524729677066203481842557741282576989236917203093527796747258624192605701860934332206570180584096676221568603721197333453459596288087617438902882098564064277503204470681211745758937065095466659749657454155576166131775992404261901448725620684303923447714393998320531859491500766233229008789443665792323265013109644339865727407143761087964836851395527737791833534651724671477334632366447741631948998915213720084111108843099137832242975966764811380542517419952643447968897692707587904083691934935575270402141570709914492131975627379235804105911968499378264428831532102831235937608567073485072281827093871911015212179017415886458676788317031556250371971013399140461703086071020698341043466769705487110287718778519029868671064883016930595232859199844642780802366432739496491879387222151616588710850896255211953126465542147760171072551215779383624256042226654219603687545613981772544156175922418992232293497214853844132078949794613981237492843139772367405526424180031188724402845717973119973961311774244238669345884229969599494910860510230559887897931894086629805301596957121315818915006564100168740946197150187270862088913032313968872709673584551117029435249381263912408701439244459890788373400201018643979599555823824685451422087641043772827708798802711262821356530399538528203241063103411898795657935320921853920234357240231027286711011978426951683840240024440297389255584415043065858852372070020508740278834307153588947294995893721674234831935652384507572067015893718968698160053371554859863518096752112504037886128905595699708169290916176329323824348186039430483124379099655547933368495714782056057774879787016389373097888609195581635742853347339042908110633303631569326080773650596282214191463354103707313817226353436769681362338918532587536504660863672466755285787688089011506480296230486990070978145274328770238341264918520895627616443519576591288778658936870754639104762343485839081134087687189170988014000273123525611874214995590403676200857678793575209539344180661476820314523156300333380808076010347219348122296912375666322861267595022867630461896125947221046720644477633134096679218027419469134214418494658096946136170063648909081398876721585160149556127451927528354569149560621585047071492374235508342228037606002777261262582976842781218080957410799353868083082423415911476660617006977900572219967954179776955353095575900798032135187934444471155709501856634247738789363183714953511724527794448014486710990666451356066455983897627934252926587350430039199062068366823079232331025400311907234755732115223948135273103827103984859276386387839138147398834461190561389147470142823789951515681110540482508926443254399469929581300709650464718289772764088011367373446112530089324805887923479782689346385136840769514531131963493645223118283979708251221037951973732921746752840901989787836917241805190592374143415069913108158572466601911894698654883853653670467467312747852915310075419165619863719169766263646660838659770279577086075428149831760685829786978957911714365891448746242485527977765832664494644590715502135543816241179288220859203337229039142826131042085284138040859488946661078446419963325587266948941070454445867694645271040957670837286814706868531221725882934404714483154642240959529233169815858401972463829365928440814488244016800875515127828845646001939841874225401061636879069837235523183261329793862422215700558946810204474615143103391409941620763043638041648139905663954945797658675819580987219070088684624210161166875438247766384351621255497210599325951773773270635192638824138274626635211254391548363131854731641081887806434504927732563679923727346294718618805900983117809921724100489728093559347055194601187923699889718017449885906897563662191692542262612852406946882420801052705758065881770247659917504122032729001338915628277472052717112151452860958285739928837858013812011399764826720529951717564716295347118630976023781200684855383192033955841797543425913667806558857567405446851666521669562940881780446948424040260469542889964675068535061422315012100415737625185733569434251838421499038365450193605217240912358805237215362487452604950136281415941010656248071832742115037663850793301515034636282421624058041030529978966441220727273086119916018601478044607944248358722728568290123190999563738190018676677277152352029034263240160259629199420915821553137531629986803627167822852786289183045542219321385587211483576883373375154920983852046436784708341637581183422614937340457298269245605484468480353062809272178408298265997743678977480138042166566945244508679759691227423353723728142728662421731304981855721582019831894350367384580896626572638858461299955692077003308272169054397827803701842802238135761766034142221584140674984446660539494475769809668760772203608269302054421348177076477088526988691601048152974459914825329774576728215991959038777929714886417123276408473216632682115979960621553148483663784768091084619902399641826491667763374914537410791515289559924896680341968700412560603219707387618591341311191529314342108869262168326135260145278126460098655396491763665216080159738944932821043418034717454272367850295905831206236689764381310106685780932451019492605568753828593399251680682191933295099335786587882469514424714161142076317035501220665144734344300268907721576839799828636222256894842737776244410808285532470952880850797987336646325439926893893080059930091871437010309606364484524253406569543785664046830876043916922761102952499665223465579082229472416316634642943237186053884117753066491569259488969278488447691746696012422719577446851515619933620122978456031402488363741886842777578958717287778296982348049125645499604600162869554839115347046218937075088635774372177210947888562697517514844342560482488370181369574633002842106781995535461344981837989598322731487002700833845074549333343900108497241981518364384613138317924565380616367308741884140074477116969563355352612354032259212972136957088520542523446932135071716962879537415946123142415007925195819934132381824177160099586087792858021059518630879584954644598994007470025200068254250004610047975263779331035831876082622066264181103129396470039668315449553568649023946747437013422107478129288948885338760526820350193520559784657218449400775288818100815807958567534657829122112919334807945346670262803545023918468780305933228851161049618937494931017634245993569342544322484988184816439973392581149596097540048656003250071552893910784499692424581422680951340789721005583746595647309455090743516224874494254402589648571507304614231833705329883982982651264943455568429596264877908759587977248033658286649998310338746757170339896834403150650071465196698115448139494464560413027683901398617665019798717631790412019277381591991328315812369305278417308082468571202600881312408171379494170546848919181341232546996903486654491095983770290502719971015527810393231065427984178538037277577727596763235738167390064912253182392500795601445582010963582545780099208125737973534743520911275803042188468096648845870909029991462730535458139020885323868516124569770170494805409125194320930672487723704830767617604951014455135403404249959731252916766234532430760475515019156182166793419315912674046576839343876745453054293409642988914251709704804810140166158645767316563952413394804453864813288163747067143296121720518300907310948159384092350548501922356912926958020354784241599982423766646809415581612833470054092887846904054114216858100761922853958864542906440822056153272657088110946303284966872190904598486260777086588449827402818364427576337698802593243883976419705242258634226638626145047538684397488229158795298067218276001020024836624848285456028794447647820772547868565496069727705798258481637948581978265700101384247271359442348498022630663126712532310156431407732973800417130937650537005772381498046670098969848737603020434789697663510526326310758764897892812513712271153481443833818791216611374631086149157635417344532703642929252972261992879407948325943391089330842393409874954258225944471450614177126788118701478632947579693627129721308956118092592586305437960718521103741285021520500083827918289989513374458897016198951628976919008670255189982275539679616905097532534754297078921874180272983706837152338596447653253520385081074001420737833441155650942516928819260286392929007340107132409414860833933862602199470453409771715937500317115138574864235638075871401178128109941320056343621832778872742928641512213349713706247027558955515024308918968910908499323696058939748364828037765563454803225256996637801497752958644621548144998368190356458278595915497216041453366244065263578357402561904887190961291485946991845536179761873265415441249539608207735098950947856007805219842418742868330989851112969526663141965984813562975406065475468103619366037237818733866437708181772442478152432789971307104525389406265925351481618162336487827674316574579507516487404616657894001763162801321805287641585920674599210369339018563389787956059411212136014004215609496615385007341787483965748463850990453460557412850715881745164357293748015057686826734191828634264227538286678836622154813975035636790734102033102320510339400739001945811072872038207805286815112957352432012371996187549941104914190248373773984675776448709252874681333830911714768013929833718961776573320981890801154904854622552072194444738656629665077662081374629401836386240622616735310515248249549303023964967106496762650524809972425722154044280759965389710515307626244502377712805066590673994979599452648162584255173648045238600568259518928128092131731450853001782078033894381075082424721825799224879743661711462690093237070030134447372321718910489416937421171822389889792386724731385928603349761372028216136141218178795659223045571618544750471826673210651707498939821090527550481713385654189605306160067794343338477098531612759334049132694520558357349455350073304623048253632366191991340805691645912293344509934660954135340736839857533962198553441200499099585703931582238086868413569770455451619055133326801935400617595588828183669540420915991669868041809354832390255120861255645057220673676079072648882134737319055421450201822449243401783005106234798900654795172979460961345641606689939224656663440078460288392702036045627154683336321086967264958388651242874871166635714568604090405164176311369889614873877138967467374635175046489876728966381987552727459070511058328699198232387246747022927051341196935758944242730407196392184290888501747179779997928141731861775670319898237428597049795909232955045213013365285367146252980450079597506518652123019969381220650297210506507802056349627971111093784408534009905084029239660448565991409331040496717465175984906446400818918444211195694231595017302622918551407966220113470497208033255655931506848863251417653134562758063210028557679558518206420086202851966749189027534528036361723236416956148925072760589285894979178561321684338024094361713849937312459216395846494177012965668142940891260767908714466735473429602684324869497382468480919866238134972779136268659158466903864927049458670786837111590869037557704477741509268180748145249390902121923326737248491374668330200470247130849140066210484737197357195928621888887846942518723033905911631892352538209000457862108586243589060340372169153822555854225723709245274662088413053980930343174298352383410700498084323849379589822950389405624880869481512458280869731939123435388693872159615534837304940319214487463468067998742133483175756339675209911732456773846440989426706619030826813489381139563002342643585008396481970593735852363577114768247354556205114619671434677749814812112533491209828794504523925975416656832213466360429742723431495924968769153554258326838116504456689278773634937340162417438143540158968452219512313420064420055403396895081703878545030485371527471701743688729867158441035509482042878952015038501796596137602110499780914948015110236312078720646848082574518523652334408538918169228347920976916798410575477997122337039141888141271204433502515428506286612353151169551234791719235017868239150634502403296046890663440512486819769032124385316152270723736889136044255299455995863627987814304996897936024386550334174048352571975847797359209795317865902361983075413791988434954792600745215180889621815284466849245339639363071609669626291961428791743412936528463275566533424995087763501198813689562328493055991500418885220639353636345816696795465488631705078844448644359211554971723723663174772973091061915407895620834606400011190992866805793965990141513029232918310072109986035642847820679731744187527722862080877585207190708468446351682829418882434378963415770146415418382657858081120171620928830185071578246293784837779260448207214151208253125802128642330070607752368349393244990003937123744789671303896574081146776036756940229778584250792893982910314879634509417199786691902758516611425509525034634292193137173158374335990197733565322833601331585728526312690193941332408267819931446639268764776378660834867687987980823944411524005746129223451564438443517341381572409318457215040235066968407595156929245454315514558445593035004421590511639823828785856585597479382069165842807554173153153919510882602495657093427342403657216512335564567814937493852474288256631399448022655672466479060627660172590804633049366507242100076679537003299069578825688145467584669237757621274878668792353952367033908696173817788044809731274414793928008839765714820520581332050848087462794630947567183615974567773186407075470175555318697093389860653150157422855037578364111575060588089536528375316242878147235490848676394517322363612337443239544818211471770400610991134754928878472575778791603491121779368167334141191127425975379326153078133263948785640792089211409525080621263005668092981234868657236757764272422469195653737094109548441600280761906219544077396977062159253041071491839176870122857289075101754690758862573278557595162549068897721779286375124139354714796342345303609232694571428297299146167572103696581762555514111573386805792147486525619995933058814296978321398891137890796605575961846541553016229717120636180905028474470617631258128721979734141293382327723578757647624703051413963309699988806765884439639970725564826268698098754955083808269607371947675501359659384649263746365251451114029376792654319788731111552999807490162363201441226626553077474331012586547535396769685857479835151509089885314086233237925094722460665433212699419847903231984404396775046309621649144112588968760436461553199037567733515007815520164493263715630277880061786510475204968068369529058511017834716251206328827541475246048945794215054182187006442058368445530114124295477811809043754542917993357831750860589347770168632321922537465626344354167340289105238190609095080683048116528892112166754760161479024038126168749555228523339618637547317616379615997522511663558869021600784460794053006928405637314805217219679096455518632217106524045327034324780608136807633751063539778813426585011145800956732371932859506860406741227906810035180741034413856993475190129131846950520425842700629287555218497495976696967692823360381030103003591930713602388398025478136061268072237079258851722704054119514290984147925220130467896622458567218855189410446795867509846712040419935316772326642106944401681257254730178782331448788980236843842993670516610490690550911248080889317944579370027686838534443883103614591760278806336935333986787076630901579738578085616616241847419129822604790676727238064506619521543698071645417724585097229059958755378894924095022650530563901389582306843474646236383792775689519830807221779475099974553152533303881247984087223269204280105193380897086569820757381145790948099405382626381139464664695772632625811538600235649770665092051889898481455089840173938480232894140292483142805278428360398948473727186789851622994251837192372228059419596833312271157413754110807118934559037578040644719135101149238149599018579252345310800840295479673106975969780042976565656905168355710547836050087727436938584231201621991370416106242692318052051270645934383147712042127727138280740134483097572002454595878276744932935366697803109972760076232125960018611483824119269367901885780481660626312833903173662992836379735061130468371537785657116431556843331297154140314972872391787082805101360579937350862372925826393253158696410279425995342111303773294404297762066080372055568550944066102351855497005120331407338135526419439707434661020000485603132238598192210684146374533644668378987822997822215246660996095165046223707301848488397832770884220557767964767095711399089014616289323651629493840672450574872670034101467969528907416937017924142820220990385990733312458926048874316237571995316923709087552535976151337371930255396968211646930045715071626875576952817864701784759534021753139974369884002251172943059663831042914738019201411177045617670238480026456706335655114511551368272678233306626746415388264635913212152936246645385020402560494674961645120955616128459763211083922810355140888408822068934589156055823375251132649386332989239306860012594163582484247906809039563920323230909648596026042019941203653484197802934798413481528227968936837772847474248353752070361830102055336981724301283498377173239117981578365728215402264758634022087470778892207935923693960918859679279997164388575406111120274186062242541123068204141293767546466485056814482619580683654760737880436565139270192633453782985878061315189757350112137523203149576653913241800187183994215179791643048788310721598727162007762691097417735473309248905919176139558620913458639996299739775709959929513063951971319948974808362579719174197439378852912036587765642205028348270673704443278518543247306136705462100224611950794545649290247294812459595546500695213601293313719838183510859335425186481069394520089859547101358060771894358963497796219341453500808636763434666037325584603086239755014362826133989992259480096358543932849095394112163092598284650454347035126678024971130142299797166289159195091853223975282070774966165583059940871410351582778079930979279765395123819244940915930836069959914028764324918176976070709120708519234985837222155038759138079912404171763324249529203727284772741442025978267169354100225445188673682387601737818254069943765447764266472249179986293412506913483438955276158922576545311564021363939315117079521583198999655687214101259183464306577863372573236005586452868490034948801780994751231668769565490385532306913432437406361819081360408633166799058733161319472537131579976640502531980766523942504463148606157182992439197032011756178847869183392764315790335172130935690600289703474262549303274862208767640021742584686459625522314385408607216052264683003428258390626058610510139955794197376567626121546851971262497641574668341229456888266140719118770711217319658625906084456083074524091538757963145221668786546330384447998186670190114965342650210998130050283938329728110430131127174569181823488139214174217435822172144829546854255589070257885212642350975374147597327867216174701441400539070644403290979907877112137872410540641005322382968323947009280400410543919828470077735109021911626092253182264865817281963382549462060474978174350981619589393984493479261901236396994314883981897426931990406237427379000589673101500673295187805403640422934146735363769396046656898188132940323566252622551961605869961237999454893872628867540861962756413950523663761299219771871358270453292300887778231640990316557675570821255584143170717189800220997393368601506036110460875140121885119166745212635805943161114838507014603290727075308735005695755150302938595838677344726913314089322010492471623368494270164787677214200546858852185949785737866579750775494303973578482224773444937458149018684503037892653329173560405365505552386048891484105968584524529208671011670401302077203224939094071521099125812378981470740459683041279589702925272533903865029937859645619011139405255648945215509723498774019892465284761058385570009446084827915769541138891409432835118411005950323930369966802870904587512179370846519184944265784006057950135376301496635134129241690070052624375554693453177326896475939534684555891147517752590882891016825506103378702838323565583869195546974363739854180270381310005350359326820545387955344352326203106556679604540725323413680206430193613070532943913626763683668996620351098705708531416980398067281670997469815712431310019446907176548511064641794316597328639079363871370999570551315556975820637683428073353854861327678018342309931467832045513333951959659442055818237049565975202533978923611412123588980228431380956122719114357863732481125171498157697660142106888340272397058602995342905633907836384262520122237289051524963978375989781901659346725205493464624880786685500443733239767102878108913052820717037012789835668214586631059564606994994489998990431225918549359254191491152586285362304625701145919341486524058092208583534644244043860144728591188294884603492246032218924923853017171332417422798352132720969310161726221379615682553531903249277229587641502728502650481898501936966641253152469555371133784596422697312995457267473865748077032966583764070520044383486925759648199756396068781974628864278054950306833305996497638320032035729981813762781840966245214040698901283050126199735346130660926081679377182025900234341150470839440224435577888811450635206642033508605178401484614303009916431432520987489912001948551610664874839938741794423241143565453326496536589533321626807136953566326686869646495087278184148562443963114084288848886485768916012101115137421880353401995305292122251654715640049794618215011711875993279762876860895830905027874347591959654589842520659067383745238745594028815534262621774454921617363036580200318200889976582528419708750423111071878831579012500262545739423299870256439179341949810999135000993841226914338427066276769922052969195372127395593555170734418323262033560550417490839252959701455543759271909140443808289999009275622565782490835427718590318511352726446339829160903747321781085840119995269526489974888465573574829647521098887589539378140512605818670645988615723812104639157316305869415946630767434731789173932995469348136662926229542656372488904847892521121217310893780707947090584589827720032370237950198657162104805195230756133228657352855498485483048431314843734853351879508373214124183832104831526270131399737646277837416591225879178654717840313850903892592042576642102407412800457637920276525542594963043214271348355233145276203836538603426709626655514051987469932705841685127964404635163098393704133832683379309927428389064019744493694516186119833597433184189627599087487923160255712803681933389799510013429902297788419976903205288600914340334637704103329402362007384480602492364325409520025616902748044643982805724041037957952543622569439746599954218600392673310606916742342755707968222725866121132636940019259850505158633605056026024312734154960125551412348004790573611906731529766436331875436681196236801137163663852258610064491757998380549208236009398982614271638040693092052077302777196600991334194559584360646334607626757203390253755812208910946768324162147356334848333683888030944919149573671441320935556498816573170156862098645406722050614384240025283739828799428175782229933564146667389900251436518627670015992440028647189436410818018506000891630624409653185040741209497677423408647384012657319353447371917655606165377295914575563457375147663715338589590050322461483425718730044650329522555132471609135050841730234552796458595124606977742725776704191525008797348284331268509570307133486712785692759231299350115496294087352369539361578520078662552443685454001301065622757758990522017193061149022955963805357075166962758926571925312492648065409103414704719267740066682430502919226425539710196337796496427572230009553298567054832122403729309065004601113532057391216102707103578666164130433109989070100871206217922632023639802361209159451778704241956516571685709580272944648247498449787046544154747559856240496190271032067445282424490745351883207197843967046825217800183046519516090254155875745226428718901781158828856407776657212110914669428978988566658028398009740231726205667193751690305206724312047436370163658067796294586971999790198911740803510832019092870003319363059925759917387527367655779355193379237089772050327480595591942604820875923487146201046091417513690213333655201412375281750581631888971478019942815911913049336466437908319190663631103802000251754237580227760211613980786769543691722356880502438073263441104402741372904063171693233143704125914027392690215767906168712763539042809039774833090683276845726320723907148785466517044676338424317901922183538046700423011714357561332657486690387325650133433357724054144294508891613882710986922920733062863371144002450753303458617667168999763758169779105263279987616902898946583464926776293126700446275393883758942948511780356663887754228153653607037240536802899336394813997444137999687188417601022406199559986608802046000521576231974932270299019054589723547268396115215050063755017922722751879473048832670490769642241497719895236643284223768712715757317615098922721605317907223838595330043813369059483402468274508388653783297963630829412754282244544042036451860985138341480844331045806989794777481058562005604531983307401812999859739677682574302438638507602475724078728788367277449945803966031333810143655160688785211413549099438118119938850691966439320586841522589472891765373367599612922157367102979381764087553591342931336991665515058652558020830171905829560077970836851876942115432709462740764484413845820658305329765911098674318516155864534894492525332581903792110009609149268706247679256948137820625762143181436505280880217486622440101169040994466501624875937632556555012177912435165830455553865344798905636879198513002836679589775408091283806880580633409607484168926086718887269768862348831430622000479010988503295395837506710119674884905330164929813639684446026367887185654712907300034143049718832773654276796884805997265015559122023483439218058384601800644567127455301660103623173074589719386009809118059665487267291791332964599185038571072557948000850161157430016442385875161626652829539978225379263768317441202991147661037254817540466342214153177254363536882863549743774335857933770210258740251015628523185673147291982460047826208230177817204584352512177778010437515175658429316324980908137744566075335190221816918837032374382759288367013454503528702114319626908834237642656895136415007544326749465911118874056793664012465742663568706767809574248773326464266823302997357707516679891001390826357363168740642899761570843899569720310475902995423777388299468878132657737609428228035709453135120235329303092378835446004281076253671683728460278644039137346008792647685426295999369091488201891792584176758411005968249986713611158543344448553603266667446981169482123260040496507746462436601585590917468123088828875204730136935118041938352266538444096827219613964798111609669319411165755224297769164645358932458157132727702944460443162651244060289084320261297483381688437283638098939565478282629197070577853953608290642816382274952539289030330080733291030185364088652765223484531535531950234255405466544661166230910472632347365498225123484952163626253096028543860944522295238940993239905172964766419607608099135433457678203838698561027183989248143054092771618362630338822135521706579256499325473282020031407165761100179443385799709103717063055663619671634049069130274332196211741581695134822773889585814855124257924684245003656624266169240910154603691691102183964388720797447420594685578032506396292710144001411127443308815285285172510195131127589612707711756930762818120885899294036208487845969827692182320918869306985369714055331881159908711972476486451060423988088568359877373987428270243015191517081710191874078103968341900594269919415910434460844437502358560803490228059331655153381497207083436604604070929404731162528189244715135847235420778860815207161540456872783218213360815525529583204789681154131976155501849653125355040238133890414624690248508177101050908299901650459029763292573355416669610276995930997005896004938255825471764385417055555539368704410766120510597020259000817283641908284237178986718866333573868708061829115783790362155589614122854508539693653730360073047993763705790050696448724529957213986861132960745415607516766915870558093541157505432008575308478053182805011679566915053876077935853222979340626434004025820307090146148296067626660886559443974677069972613404670443271088618209828777351434126515925660859861807455885264708182239487413347828890494222497816235066025342855405950192222873004788907844126141892393033314971819254612275807435146016821867812661483827991436879047218693342911077727774992717920230866480066404016502801326972181721905212039869061653399870570970501865067801308907673577978268940608748357964756693292559058982181410052468290436165483181949774980127309746356988883866091754499095605310905944382951239426541254348081745354558291188807973863102873591730407506008762599144183910840842526357031958914030276536837242039062116759838707577529929802323824859890778848475890112467198313411763959025156049049624540004864993818856310809656533472923809785092869067372243570939377046656211627887236677121081781369881007210796120162388564827258871036318328299938308090306656612692473808720889198537799532765991599689732955583915946952275260101211201789211091661719148151230544034409702793934040704701734986287029468392623446416135916558485721724246736881784246214379577858391429107671835957781176970816255769742137694083321785939097137773062690767124364551882581086544031860169776851654391436765886345887703636395756025805640204270034444590795704240601094751622931444495968535329034816339220332972464832472885242723115069943986576740074919249207360618883422443252269812031626551732058814455903316927817600031900496523157203669094336976834926286484001589934669058754258450540167025213139698768847880397402481480740160696500324210267239170033407301957061301845543569018659838532330978169281601206594009681069900374466945624381394007486428153020610649838608127590194157393558250106783804796846646242136568643622973298268060187851581072527882445805150839231871826455283332925876588900374335821287495103271201429051182935743715230225502735776340168109193155642229173812669169046137661743439538599169026890463875084871841492542191063287164699189263114692932022874326684157992310073119383158890526081416343189710478688799477510439892527350833293112781270228997653006736776996680154726865497481291871575424809946333725508752713731504843630103223717822252965879060592990990666883615290220529992124702778303320050222270319987838356775419162605612589994128567709404332167882812132307546534873674139388919823700965925181359166305441086081257968755411729609722484534024774881980410837569887801043440879253326928206413527525105092369350803663137155367217488529902663022202146961742788228637851804751547021682002773540534132280419054685567308289675254018193204598524536522976087745415893375331152641343682627618319041458380160658964964223998881043675219883924274657082979513445719128899013950269079849811875887170743640354474846677914304336135090290615219301649783617783978335293338774265212409211531774965297063752617701556551261001879924510884129623301733536709756986126389830027642408662126548089928773044374503813596114934461413709560191408786966728221534965746450740136393030698597000860112555304464475861442457506843353948208216476455156206630451280293727958671230520375418535993696190860782640449806610783977664324798866599620673269417773059618187808673404946563995063717624408196571224236321516514664393872498184786475210616510944278988237933660065315085627702078807304139625540395870234796660940263409899117144552404931404973555269072409764114521174847898126927144530496975362318596027248926134334508585878707415016063933463942494990884764656050911266449740545819279111533619214758076421747224085040200616667870984311567492900373339059191102260807780535835363459585572811226547925369276149442940059302286558146384873127821259732074254404849781387260904976176072418807292520682546451790540461497962544797816787039568749960754499364891049536673345580046640051759049980595632984980911195665760547149884773459378073603438864521037004247703488170876519004719824082272418217722295721676472165435757810438108577831164708326661474805888210378953934155642865954075092739901608583836552244758088262673692876693930153637926282819496403876376809611406577256498079881298925864186189899196104969658774260910785420479525755093339801102070112026281431587871825127356467357576407805070975877997015212654721191799177049736153549044904970265055704208701026509712241424410254300548954447412487818286573205643210394431328303414357592959924412018296230134484939329580404148704311009581462963432677397737231247658376845816704070268289428399154136853546161752088916504366226811782729332476335559740159226334458645398593215762386066858866996691437257399853577737519964193913296930677524792680705089557876448336111572223926490000502837500856238311164085279580637055630243261712226766367933755544913438377250801856963735720381892322839486933562146843982000511204775422870319317244207271272544118450764507070625233826725605102837500537667441256567102465960101195875856124440998745341641426660277760941804525034436596402135641452266212867240311069299039035855458929301336969042827353031487748255153052115106373787507298015226435405855025100538373130266744943824433620047867878341795644264146825208893069651093925360167511582829856887793209282230836908894948809070816173647469030212753242165819186899043727703611777768673019958205418819469907352649781959524480315342891702113081901731129257720010101206027622022363756042339810765151960069734311480410127788570432643239408808946506442663840623572894997518728733650450466447769580069163460749026972459598856784806326023541246073307308899171287012159328189162751877079841454283883772237782298639418099964687777568621622346666621240403992810398132604057388240345837533370821364902305442934821581305052459311961009213241758273686093995295608072907619181201075272919856744307203071901462172152425035080355208297559426326716377609121870201732046460035900261704700504186154059400181330749035218220859683082572473282111885505761174016977027690534765438876063976491675712825264651822149478174975993999521241896544415668245278288393178594026157183543624747912069302524098654088635134034676557253175065030748321397903640721903763295702563531764064632514561056097929065222133471166359071772433346483002388434236474116388649194478684555799842871364680994502313067272116388907160666929811223208081228656540718721661374453876973362085379490609405329764877813807115533150755005355807373396887183271746454250215137515130624476621296480582199963053860920823549244278021682058974559499807601242377775175423778209910476541320154036053715780619410232344951294375780732661390535043825496977888498845412221529548591172825114962362038480288482991971696347377735217438860441061932825027865861584315489471877595115973542358916781357852362087949106717256149809460602455487497502663838493745573271161529633916884476384984441680973405305217209463304391420283351789540547782764954918171029438642601983388071696778074390447365113467328633881911730698228887621020464276952524487919702372754896387145699044040651098549856086092970432861589259919680208644609822036565761717711073963508420633532304990853591842888431945728027349245986511289790793576322418410082231671359738462887994243804143058939514816214974679277814821113796747029895462266824600669697512929399670210250215215562581064531159785296527750523132137458626478129322099467745539529539171709132763901510590085790827940549982643054709568433738457514486205251278524432130265257018947595823961840772314527017054330888549692263162888041205775521434129941102754128522472602862272289837025521629784346060851655611694565559068709046595534804912962098683738511131560938737730677704582143851366329097428876829469105731028022440865680457959724602128966596027597540363262335966730162041520581697480023916452311959270959911495406465656889309552693943586111382351913613097339780014147736567883184028715555226732738138679964836624090472317841618491252997851052282460028586260856808878757363937637661465043704596054054766077290696222576139644390339600645404050802354548389161307607637067811958229404417763706787891692823426368402551523470303664638427885408433230481565467695396244270571551016492409990419277284983384634002964495381737735115359847746118661667198690644442993669780679910003369107113702900078080071457057042610927727738057435637765088490448507950612870807427954851490831915414388786637592455415707536413906951636208545969323862427963857366335368232767763858734142045168861465128012434849932978468206148495505733363368182848596817642379840950591285356900408828197675470962447874823690488857924868447861872829141469150548528357667374976822854868948884350589913406118393110585656134542095579528015736119768501540611868258070480814562898670595837789290142660107061461266156468029162878277043561300579299500828362844818504931703612188203229326538384707326181173897080163459629970278974852538967859406414352979666408511921740262190278297927565580993190153255415652982796176615574268263985923590036702941447254342447585517408147278861877809460742250636415589826853678441671485119993172930563079652426486720822320159552954767293374832764355040875002022657504398696553125912464848544834935814432459817289590601343383091533894261714034705936251541967261028496559879325558917008139375011130620870800371276146775268003813269269652888475313201168462228610949978892011438212302543260412348351387924162131203707532568223664519125475222547914787703466316395956298387469099635272661696990152677990572605090123250060814850806514212214102039130682461320763036460605169638326015244585454986566728114124768972620123724882457508529172057861761142647951174964848292889239323945545898377959948579728862285270193907886693273457780364821843331463730537052602739743102292367176689657766217995262986504346942285460520171387162874416286458528645314473542510439878543659938631271261026315712715780384320681189234169964937148479793968059972133446944136603573348090622200370977136246722638488007399295856072844086178265851199340580690839364055769411235293355145068251421209521486586871698014723545820113221422055709451039004455124085788399244234060331963186704048002882827898994886089240416734310190928038960758978970980097009001241595190128313607458422103864100146175190452378074738627371234039738898250765618672207518987474100572803887044904060659235451506085143934871401585506949379516570422888000884882764673306236395183566720084102653402363429276920112248692930463497420286052561851741780602904015482952143827121861975040748659602643930655347686428651422849386848922730501824962025430347844645382196761193688397576876659232446754797378217454700192574969264430365996585361092363666742897966364804384592608036408396733881241332526935047982326858222760078465097230276880977355169829402351927896350513401497369354333377508515418702407516279503459452904520900551294038679344645248000427391028916692762970479216226489697656977007242564472501104304465003872692283714949195225018385985035212651729561059200819370901884780787328476890769707228626506016007563879967183173888479178192432540711394711340989759200105109688935672459871442749940225724791411513408056291124724169305868086636736346074059071273126542810459867512246719791119319591862457463768128761334117500146731331895955557199716427326786349312268587419353744998913665208514109366267055982349632294918272621445585927495119024921500424705462914762907861829438075330045771541466628106367057756657968930050832443449370610735531101397819758272361189381786267581058295030488498927760271968303137253432466234447204635979914264173115224227229658409084056120627897352147773688103869193024245854746451885881117381079070005810562340114680396857601623310307785006192185107194166932972894807720243171920459095083229219740556163911736811324978326085290455250730873010654631243917137869566388829387990063439179567012937559504971484999325913039675962596156830576454321943903944114153350760383775913849209671096467884392813101283762585717264874039575582329479535204635076319153209173697952645595230219694442424717849900876490416985145748322324431157087467369848453859115012528131017465776599131156144797881889556316759572434717551516186315615911723662586447790568964509827969803195125187562172370895691623698407205154042011374601923683349746667438980430166800486304996119087564558907799237627923801027488516176251123410595250924078807633447179052419026377781444407795625109475828974114468560617383781159576564954360977629451594802074616494509100554186708138892459155542561206938730411312377374297991852059410999377866622935278606294443517790042120286159613293702665987481576321728034615461293602188287167975519002092085786475024224458051294909826457697496278703161109115174744563637546442945228208700515051459029872048014853399148487275013958251831748250240895694010742829753778218260323255845869317580398832327579232544497364109139070498164234895243561347926071720115849756472787278986668395601015405249161846897149676004029580821581578233504080997809730360067975934820831355226807606588560037115205174615518105588103446822771950751721047042825754523892416714595820202172208461803662174492679211354603048026538970252096833689334751144344408933403996891378025226771717645954134239825417773357576996061188515486290131994746671874474303836025124593335821900711647426955836281304128860520054362489827837700919351082254292019238045656634141382312091344892599659221017672411963569196847327908853348902332668157042610636645113072202896511835123452362267198548154545987125766189505815739450582033151999714262736578344595354347083961181457068684906846858798526715967847245551032227576564992499333449924628209247312401737621410697516149706447525398206820339752080895949992823848088029499741226783950681754467311818122620717455986501899938424402631121155642098981778171599937354373669270005338774501399288683659708099681337388531158755191874286736035433254026411608960282885011652066225366629562956763010366389048230447313011877237116901360714414552212596449481592851485963444491350743384262395158428782668055007017119231826376182051451147002806626298985787538350699257976668670686738104080172327906085350299915277005669302408917099623662562973373234606788120461512332519433649687829071584472317375703441233113297210547761872320357554681774152051021413410674538855790386344154384641927553472404688578300316001586668789900295272008822873456236330537000005411377942725444886921495867075194206813470968603924612794557306218215010753022313358751742501473271619598729114420348761123763077157266944653088040458537805422347231425102010493819304049963355851182932734888243867447283776200880920875648475117938793601577815324894399270302808035932298177839964711795877443554983385943103178606998836678559536422462844249543403983868781363848026490152342464896705243901734230592342031794457777697125273083646411575654050641431569652259834848871492261718408677086243959155754946568109587418397897820362812583131545943735496058010765905806676011776671958646039780143426359162644899410469317608564219524399406489424414185068322434303112469237464087775304341609256290483999940336183054702427040165373874853944819227506875377109392028024337708581911025975798246271617470723584622340788261480466694903106334832480964388091380208496944081436465988962019160939243839179789935475320377366442025424773013057770751328342732973446620194478529135094792785634185034370201408269314292121501143869477127173341176135408007569376837528819789330321255842213679374602602671350743033579411655203149952314224335372040498049575607437985467015998094948831487933673441523664805908486475519676325692686868397166719741997221145163161644888203395098755290384455807587008078025030846116102802613479735440053860029827925090526009279430779059401925217211896498582954579709967872190353200677974525086811666561810942897589358633778174150327812401814918569274709725591529408351275539521721069560779658124521573231433243640468828610371947354991050788834277777922760767165582612352883739901992191322141417481923650188996988585928549667583313276086935048049332215071760462423400955599341596850952956006980564646990708481027041239707837199872334015422987678916951724126385556810669654435158674138854550054058727407089581642238144962277835574277927093754330371456048524501996240809271861612042234039904449712054983250871501753480437283187827276049640608613020004937441410582518699320574442322399928802834938675095680932893298710695200698367754999836409067242487332196024904776760941838591350977476095276353877396060884505069503358965315495491803363903414227592284923131772013766469876118885472324777480610865732709518770035969034894928862906170954235036370838970025690780069388060985074195921244976947225803942579564654914413105088803473718527303647314202791518580913976719650536114943766903060376365645724824569778637015463412272008443689289338420737505038815852343704698832447727367741414413938645134129385769646818621884738888736053820660793197631882906420112656482287994945499706176020652040062333363891099993348205985458085370346447040870464409610658843369375714881328612354764136816318574732782320849280086370058187037627732131174127970175440830682365815072533028784330242739765993105247437562289547052563979538186970496238187810376217868847967000920040150285852448946264467490901825807810262739726562648200159252209954148062837362199487277126600548477534968235008121058253634964475140742308743916809976122287136825433472142491805322775495575878401589555853671271461421774123216653970514167470952579587901641845419590422398756410165955712465544705537976764505282530429502381067135160558742589681098244443544940233631998488492868112846564748410216255500014324840402458402829466415551059723703681776183131561295675799157870339956557094651981644479716918928555279445728679983320471188874000048386307683906801936729629327828328694848378398953662891496263731166782604063719025024134854729640672697578523762947058312936307859653785669126924392234356121089737362786600037847452169542996626193848648471714693052368960081140997318303706443979326793775487981778651818119682764413500544145747683867211360630512413644369295254760268030571407415260470351094080845911022728928400348722184767531922502759527991383224698317044167325041550520559984077078992370052141340054057456939701155743483398783328820359025256152992782134942130738283567535791874018308961850009727548799308185909897015521116673420790642985773093949752037811601458357184073632884053699968493972887727513960876127897330237323856862145304923538117852260029708444192790241436204625825284679059041845965115715510947156354926770715086262813341969643926133167853199990988480177907879136524893064618191577370723963196208017153449958133382323687495080889079396840354458915787073921766147753076877068364702996904669664387062567005471083654782234538297996603173790039863350117185482697933106409571536395906809091204004372467103682274551652272658016203860814241199227096504432507243194961230679473667958408592990456388780364409088842468447291047581286320588210559883930929554389664446015806748599350297003680990651364154585991539613837054672389095772503493698660575177100955368502302204114823772610036808095197501003052749477569879916058630185509985245733772771565063977110600369551134723518705599539300249785246873081267691088564723401985879843979682950757867256534516431339464605555797269522090102057715846716731858853001568363189399335649173518002866578521923355117234463028599151187104788913564157428031692739929148249533533219937271664390404124556898363906992236158703476401376641478098332702143334214078019510873331171627582225234709761185229949020261214484644406738293872325108901015443187184282631531391105206546355081150472775320879929061448958124274835964152721060951979310139873647149237308014265436276799490012582995874543032129723518387364408960560680037254344689175680170275172603316813697905903025257892397894733910721051884317234405729804314614668911058439591749193405027199369732304933382532901837454516482139940813697775197193413500912248894885514873039988552022996826397073895002601121086995271637225573639958419748351363564850656262109068510341706816919835975013897122099282040280643156577845692108357656961532708245985309474088962260399902695986219634879361584983805967609787133728163449926133701405613086027265393199275809581960136457343177655044006040677839435805940508912139347256392508706714494332373890012768817246985478402542328847848037982513508236864335177579239145943339350980404971719710757422572545806643575815397632851788473223261781945784660706816715896801978312428753519266547440420888192179290353614804340428337790026918682620798449570679760313733785615769290106852626455360067565039907032240536550348383293618736916350808123811510466159555324662657275106471550400778827437183792096222489236805659837143205008494288477791263091710289260909607955411141920330404965330552115914209756936839795027789225535441732320685218966104141147755057059169879358310120442099635033831070416712477525680650573158939347891222914111541091067129998299208254364595578145264923481274147280979485722773747396115835744700059786405285968342557295227432716075149883779131592034679081970220664087487871866120831309766878166262143358346089160787957805917231179540001849057714640127684636591929431452963812515018869058087614501944404878015733513144714668179120668717801514279069467158951357492704738310345752669272558829455920795055165185175302183123318013515776935418290545464279674662814513270899497826096520779656304053885242995510496817852343816962084859469194565271042162573628986915006075917273065063413111576513471513739629674051337603079886356712727491917014554963868482172638400345126027106642981686515665040459910969872601963885054345236403710877931840189147357502945836406545130585446487853614679333207652083331449150985919719874879953340070397859738560509822174496184270881935192953393380769042266727851319706207312606031048750457364888957119379376114581542487275277786424984575473183586494594377911374311740267651091100909372451690806816462756107250054930701496599429609285798055983498726766000885954203677135387224844724071454075489158639256752468086349978505480399932765492075602703483353285570752873383295577345354328794298953069732089271977493588167958133784648550479970521262036096368288084860036672902369596295878529969041264962463877313565043814499292990120876327524642680483556281646672180240765612680308896701413501325626039644789979005997231850364829054117232574667413441767898232907013929233300777845346697238326759289645067763656707052116534950258516568219694511173541062310112845802385484591248634230393077041229610005399633621314756152959709608766400709507890407167768856539522352681911160822263676697972800207271766174220286324011555161886654608231710899323205626726665536054334227212871511656505272298709439220117229645112593870329929176603086411747457786182850341354788295758248657865535159047078376268675483078668777437176153095982676246436726096028861530856934448688625906768458835832479744368633665417869978876645453157036597084937352042602035419050413103175504924133569212489543633127544119796657111170642775800651140298228670588743339149176875940723664054410632525468432057845220031011067865119332304977012533209669780914226605494435681437120311499821007293056976533461792249599718375197974886563148195200554716018469356918377156271121329721611974785825313263015318442567952179587972146521349839778757743319447696324947228454207541253831607977733939658059957269109088661852656731593572490465311106497708755004697875228719807331212957640733990490856736523446259410739054269227115371223230998658110118898125715937514519372203508792295342900010103076841765698642394335342051723547504883144610489631133080921191302539435304148547041286121786387287417203037200470857189028695483252967295810806324731206867167012333381497138679182302948112516393187057546066665176772506894661329541766297766489994006016889122196733043056762884197587939707633658128660354224851375735768785683183899855847759799099525743825332239422534910590693069970028725637582140324161927403309772128337460916551646358974624342403760656196104748840572622173554154711594074920803531481182678117472898293984300206817224694642267257483541838968677121895029799004407394994773955935252863123255848260355436500624874853887652175664067136960759400530219328385359279612386098963898864416960515496903103755858754853304081780386213615334919031983678315986252313342196693884934563631936683361169462432378081524720587413536910017164582618886536606564452762013607018121661730405851831832276128728813840000650966984756090703367772647108404237285646310753603688715238691154649091175981537271586226498157851947129720406715066117315360965755386162183854672219156247377456419363322742104461107280325928477382150709545951255944716324740475128339881505627729721052173280165085442111672207834557681763525352676318358008808502100811706727001363762163985132473381790570168039967093326409033052961532593086831882598403606292685919931548525028176304827307302739440982110886637638258642568684030446235077609611323084698043424163272745488818451086036426631518499279656666913804233565534260296065425779861430610535384853395717323644169826684427674937904091434943349203992478589533027146691971716547856285528825861553173917691511108119416841131032727191503650489758789320316370393638447818602309403350809140656953413626444518817745282522846681066635347675514548906161454933772674536381980009704944156260788132696428725653323376519244336388413590964799174853007016974139996584120026386269070483875285252461338623928168895540504909595042006800962012294187344813942979163439974880845541395504280975128363286906725496361924920775898299211882182619845699375509857065080350136133199919520270309946330977080075046769788681589181107634258466232500092413017977174617105854280142729999806621589008754412624723346336277168715990855565062912429892758987023447085336779340894004852535116657970671481244271862266333861359335199774713408874525551520689955768870051991663408842478051818757886862838421127192413859503611796464098704569607881603971510047191421072847485092334572759305472727651567130091134337820475839993341201246651801398230787852635387523238810700575796978287569613255054672101015526953878307612482521009097806924319120472096876820279132283159582709646714491883139993101562457917811177896662579582437620938635696534456677955837350980048396206471365608706771350397291971470179208374070847556647663431488270460894688273465493018341905618439608232570597046415517797386439960349217279401432432985796623389353360000714285729232985032207584598099577126252185710893621213495424947828813127704720612566830022563890730331542263631485978408986309735490830475338617048812105967280841752852597169118002058031474468904102473865636264043671857054071811697968161319080660842508540740414055423537064887811754512089580165816814502495967298435975698451415942936548618483095452976597923852908061432976555256108803796438194757407948899592099675850506450099633510160629961679409932509142359756115727059426050699366713368042457173496702164596137089016564244728433968298686815444353273380235121584845536230725814718584174142810669383031406169920497620769102418675945534312005678120219564778285150405337683021228068749858767637285602318897380114281951919536479817379723335897550985851041323360666939932679763328780035607127437302419114622362460950692873870428924271602207872558379515500973213458230271183488225688511207524301823160423632599594996380838774503937486893235470328807041431721091517929416574880594929737751064388074521477287507982394181344550401698275553717609558232084602416690098180724642587884435252952784300540705562461691076199247515702346749879026679803310011478569594999310568904575871043266917331547134220870673343493918568807506301515690961971761624532398116616453619454296994614801638564232169620138795562741309363743160343444638034214319204963049667412008469967552148944394385743281424486088733031349241200279177362575429258496695633540412405940229828521150927988660062423220358142917487992069197756940970641311114788925668945627691205384346610056626552519822721264196205972500206558708169502368397622021267202223990829691864787015240970188550094255160861717381019228322756106369581470275487288157924207957623470607793599584083314924639308919510059481561136908954386072207294882775834741257312012691114684885802913436276270617034077608937293779509054170494100626437404917157789296897309158626182007675036747976256167430094129992275125805291019007791656019177647990650008674007388827900015754251481757835855566709204482339302144738759031558455826219168930096789983726581738645877620105238964500919196702561754709018397504104351608227569031511638703629376451973465446524463035865427196124512174121471218590977591300680676370956423533651187493441023671714228039951743388480942700663744708530171219617536534899599292543698258520074310163384553385978001979756472043181346976749206119966181701411705949460402825836382996335007694405934836036520424087135545801956049531031049870864931807833039845556975170005327576720015442715002716789613937898551863154019752562973514462441971915866158986087773375256616024189218210693634787924215070329945319214919772829497850857501683963531933450130070397727101212778678507837153755412605173230619342998909470905465745141408561889539338972848800314095739444246804488951094611308261150448991532078032768983464326292152115913203888976369649544420766831181848517624758083950229479889079718646442819771005596570826379066277943772938324650478922581747848079900543044513742883349803963558621629034418979778651505851868510471970394270232835662653670738219338538130393858066331980254657400443097168474775042421203063292322859848253111532717369510271417170645967435505427708924998771069938367655584761053682288615295271728843860634965541261134190770057267963374675935971981818028978783721321277059821426342492311351585381115748817631391970432506046946483928377879229579422379379976854411542948341881036094414962455847647507354981117777907280066700649316832136865888048681140795142710762286775631460550329333961517291169149755906769465711122755160677790345695311443542528782102334120711460518858280989314911893300793544565033991122767448080695701544376018425811421623095942655285661417911832037135491067523138731111058722426864471656296536146951923171346079264575205731654742287819618915721282986636591989017622935236270196750034964076628660350615775167611791735882169198790352999891194270303711842866057393378176219590945949061877323135014293387537114482985490106612016417684754540270779328917530609184275871925707404106416878108577895028121743510049188735256205411204859904498067676079882822767799499851010000557153819364142769608339682189642715751887006795279995084674825025079458788287436685583167892588911309937804072868672199071090182211310677827480854956446825867118380354421834463111768348180975231052943843992109148749655839894396647796641498849714293505431797243941265618911520893974706064100931574221670161192626820558778857985836486744985693289491524064450383582974632967380374245434712084417912409255767988232087828468479904102533642944223966751334592788076485235172508454708156273841089734632476776919190967137221493225734638663198598777861294302397618998184472171293568019192895804390082769972845968878308165891428180677492053241792040286061103344082214203811078393421238037170563923760792119248261579646364550369246925724977200315477406665394784176318026757366451510328836008713841439154775491469923826104830124833356773363464909064394828771163410909898009389102944747813623972376242922736632213664734560550182983998127631172744608741633062886972756846037388537682930740277516892655236886003630348710669353528187020051889332087653568096670829137572327126128380121197142495455087826474140184770298568656993274591757650693928854898121208741325921522244955224964920968533021160864797948883912448470324242869894678642436824607954516058296943654001801930683397359916478626744609480613435350910558277233130921866195110708766105178535509158076856128390590174195498701931081025344597854045425132642751723084533631161365860768139705408707510017932703094834059301804234846020591894344225012806208465756891845249653658867426792244889568189109040883126363951105157372224573496123669499071070914445469100183259310034522217351857555741101849022087467380322460469208447685631383236659380783066325168894253821598801405192480375169011693629206096101581720230692494375599196910088376255587362627988689695738530574786544130309933741556888278707739666085000539165943166339329740797792935085886393308115618800534480629232224856159139773548757616338638113683085905166606624287447326354789142920091379121110458696787212805894394065717727719346856380358135484526970411460632157956193818140673812838947424621544288255217155156642074441663134405916214205823673775323559853087918104522094353881694455115566238543621376894338122463487769723122938035087984301118950587009896649428775533933895648738163125910800100990517646418135749693122775573803182294912542431272385409136334443317556734515065078998122814415709349856786892022230477329808849967271963391058872680421834983740439159928163071694112243443570136644473193616520139041182690099232651539327152186015204334022023366770276303884421632568606747431076747827730150843420571217010052563169552193666268288081314338397382683763238350075518449968900974608102151138366725657407853911419043202600067713040346047492448647678332801006329142121003960159956860081154731885056424136978508325864188909143910463089983166108086256781074364979500995055163517305193544184759898995859578430409582284210522856762591293096770265044531497002273005376784799690411156293734424517155677056564801749352507949951098059781447872003001526561909581931910898857619826932717103131897559445570389735558861156149912853841510705823655204977713820745174586944981368006507454715603811815418029309362804406058719977836621306598591890355237033698325397729652624321826427563908066713254250391349820564735755153108574717450510756093434554801256529278092079497284061338400701730812825150269937598775585991447127825866328078631896690983657202326541083878827163006872567526344397312148319464941949411557961524104993170070862023875538143422183586821430054351959234283557015189072272537243472326605017638195651853340724204305908161869470050315474686856628670211380699220013128417551338708506665310918472102074918242289954107211802049673219039685092172637181046219634079428598598407241003896612277900500852111741133239078522655866416823661925342718761941229604987801997809768571081509430410517006715104019764833170315500273146708888987494101368066653990186251776915519859613847777053422787570842451008042363280646235001911915299434408777133382875921643327584050633224097193633357366220878546612504311400088354548586626468211500992292184003167295366104764736208675080147493234028406432340077080788095562835050419991296693998805850742610189959022125226070751931492637361699042552746810616504711554278196354857058117862365290466408345362550935869568707121118964566331909413651743347959635088510785195961239317787579389607220772375756750657498438053321252045630264284830769045535033011629933042661612041241190664316978938321995785715072326914328198678629203815256701983595673208920845593360182483105227097837995557886249266047146884232916332156508738551298569586724753019140538405086698747161870106284668182859989489237562862888485739964042452914298502551339560289546046634320951352799730496903202586753355868120806660747959079228051354633433667814432572180132432071322855692673352335477416303336761029852160112637377594342693089707044090854040100150065910714543890745949660985027914757102629139859092721985044094126302986366160329488140260912149607267224703114913094084919672963802805942247845966026855887035319896599725594957404452812749700694343989254787897562073507937993709755623834532810362228110036473920770260944305091220700415625147049081568968145057086334684778186711834845550811070059672849138403278119518614646836101124251234131958283543618749508275879506446034973556839226541851777531659149533748498011896414007807662714262844833294276987830182445874145053482848129838361042210782527976110193821688475540116551889855227229783666337944903785629186493324002869452426648587156599411316339570491832609294751549165599080162405085262475562687894030693750979503687854834662063719507636444853019491429787621091626310546927531250331973735262274839619440103873162099614345240950966645716315364677726395601198048257440151371583134678301553204101560626631716299500920649471608146070883521772871734251221636892427945336210700045118015583880120248520835791750504106971862223285163309008518119454960490305831745570558163346791444660554544977834932470658102937302124616434125631247206338495966081451790575560640807868163598310284160425198059837749403607215073189709131230179517647473104859927458167670279393680083434620496783106536755953842742379854208271560430485501131126734632906758059974026484845011545887047610512739299837079282513312124224292197963673632699166294738478141662299186170133267074498185907413848042125158902995080974481145772811549734089186186027353534962182755508251549236721275730283484535415281538917906034197420279009943021711505588131199033011972122364169149064431929417267514282305906630261518265385393119075759642003227477285299326274165807146068504800739524925872928639022727134027651997807080889567329865677640656245096775310083457081675163144085776261252828970620676958745248538070378527197759230283740953667641093548215741892925730532440515043823339778155078626359093972839553961288529427776070615465366520243927290928670679942407979551559674278449994840087793481173412782870178727367522200926746113953506445716069331832042422024469992892341974834201795393702554587529558665665999863754905711403471524171156438534814952656263353026389289808375119053567792398197226523878862042117111916739960097867144889894846126913340469041081988386476470044483793174736443804597668369259251091817958370275299743900528195463218558318079245468973145263736322138290510127714097060104127748213226629077724578812003774501632595130377939295174469889230565307704169914571643223170875687480400439033582562862154510830309261213518260543953610259501808295928370095337826144890452656269342110463247221713556062182303690709401325843494807927964999277030263173727607416278469374473698850922282705604264903932269398797387725344256932776582276363816826683495677707129899625041686607566126549580889587146701826307187892058182938460121684559337302667848571345244655273344020012647963803200161719435380998453953041819626241770992817083775415663699099954753001498129150640302590060723995879142145407277332303852739027193885179418121380430149208721266190322600350809797984606934611570418571534956972056324319857303874979346634684809456844846037860492924328461658741381874587468343164702874714278488279342240879684681090720304908048141451053503096053640323602113018312123838496715374720994518589759363190512413851940980214858167102853378139624799216547629805444351360364360721808906267981894881919738841368073511818935917063973773588638630239183760738487475220860996558600146011114240806309154688751055284851535831920443066940661089109937356852070515507885177359302634577824833903420598978849882729755763242071696693165227675805973741973483006180580925998552000703154850526522100618847960801323173172085332007490213358445273242006490540262566332795396773708293316019518884091715423680623999500945925512033719546192665376569306758302199933904276695443808652477007163912961194845749327830921658621620941458001005824850047343196523264545164651363999577073959750696565751512267270572307267171141249571249699243432634888218791590745981197015473646166783744445983477016685700746406694184472080035343812179596216075632027601406456080599402023199090589893836518927693764998728764163430988209508259666829559825642469348422719509843110157122704070068342877617147163639871602631391882261722655923375094638755141698579596788033008698700652948657191010944394730584235681921801195182533416717634276176469384168964970723472363149483687363263020766181263497900847318605881749543463678217154994837614853545793351967594634040219904713695867342029566114672776474004612325187206310949801412975559795217011311679679428320379097355603308594550713339449161533041968057919111848031574089734790655094193988466033867966695553078412195180080696281448047091039610934064563648590953035838879807491067945274168414731566756799964410821676323227558994752776404887421856869635470565901412776320481423070738822834627217478016086383421071228794759006838882247222276676660592761091472312883816410976920734860557230657355627413897312326876179722572243409494159764948962543983553049528082686973461853751467552293924276871513388059057643725227510355664765587469124742827133060911798089628901609732415081095162053005195744819346186443104710564155988570383996018469334341181391494835450417018844667926124330554894831613028000400319552338003756923054493328809232488530918118687491599412259082677365986178114474006518269186275549290849420695506325311498305922148888018437177674359027068256998296066320281014706630958096787053914321870307365956590495983542688891752389186883386012747050935104977243355879541887615608817889279796355954290855086393822189303069295407773471496804551478694217865469890555195974625509061968232318931758821661589710346633416227603689028914778556954366884064583492956464989272100445079442659747938210950601629221992173235273471783843215091621758930863374956954577844564425566250272929890433786340600087352428293568905176429579814395992238312727847322381455068001279414076499111510206009026822716430648292467511579043785290744538299101516659532462082118646199614664614267443958582207593583302990237680397252282627434279393639232931789168348379613528048020247324479738712404965925166298137719919378011848073706780084343081356246463285521752391202593418593158598672560528814732887601426690976617859144239714922496976091123237035877390641779776583549391094308071449384154278945983158006130869209430913160784847628864696637461296556106480336871942404852475089852345444544039887650226718096453627754147051004743283139293747824855745495092925870657637498726278518307267872463176917558507899997983582078975257609203872053240465941670835174496904277117044781462794827672635951604255154134673563994828368398236215745478824937068512356896945054251242584165993236886371712146322883262840578919792033260010255255396425148630657693291730774903766765931972229379441916717350301767556861727522120063150314484516309887841304499333590855403535820101551085489287568114544324045673589924379148075721027620001596442210936552923688522635535965086322392319640154043083843117708466683047950763740759425925371541874770649637479486168886169438391008788102109076782419971971751926519136867648448195110802526642632443102550374549862302299045002758207722962568257185259599694967687037974714147608473104065546523977755715657778145723655021039609763221162148386381809342819963238364641626712971030644809880238391264519914453662801614848787800929611309798727715561503259530758873908005375800078522219668800302296950179737144991733618878643390442301065521091949243380010623618016645788215728187215105389610185939245271395938815394219086774506248866764869648188589649177104832175685898349702298743204352896094020428590049556046234601295467202404401017044951816135762294750666047428440143174393994113129878218193211113192395697309319963620560314869215293314476902777764399507083863180921675595769318203793473844573127532020780645477328516222454019265212733094071181298351352615425926262848120369144413058900309139148638153554015418419946766774289825908712289550526912802341483775852662261384327130153309833072556646552495477574499014725228770582543455201331781906138424631554655974450409532234765070446205956397948612620188042226037380838922319262869584348393130925769011874887309854697031943876622548402226379786146266347429641533188018844125683938513376488844231026148979833628469046659692910222850914974860058256785143200405065186377187056210765902864622393141676313336431879452021328342958875692489367633288619387000228497772183506075493966584733407555040344098253817768469259280963888142302713426273827075295930246060859643552983627597812299645175582603793868985642251243830663045649074857232990167184727138615298655913973218442846015944274512670433598326191333952202279981260608953581057844776454671472396465427361568251803392707393079136658365865378473591860836445120504793063136461127373390397478757424437259340481401630147417357936991214139899966898349421003288161479785345394009239090288470908663221304095810152932713429509927767129818792017632033101787444506822758545849232188903164393421367962550026818292233288418117468733648863393717319339790306886853906475405886355478591578086681566900102455051486980921248357224115425164782365994945997412530636114815948604457929938467811610737547689128049700785823308228976976511335242023984448262769174052580500941051919855896232361968478668319655772634800159846624595476483872295542201052671391570837240221064420942389204822481322531391914371296306996884002185585760214670814216938830189878705770107390350630354373926280867152779032615263414244987006746321722568509809461937215525056118396533204280876808158996682300274320525865141297262970894837413948551623873725181041240738016738812644874699790479437136799967743664411393303021300619269009997522596491490026143813984668557858072450818850533312375597441007657146992665908090114844451293681644085706484697251498214880923684091067949112560342805511880066751928938725224246012039083719832403677686049388875797327867474774716107369096322401995013908977151431958673942806838035713080694716632650797626466794174205748185558066998641212577754796868714548092776451973810884052477680964751794282067303550432701562785314451346489844066776340470844153358027616102167131592872549108383645349255577177373816846349469129292542956509791942231549045776704221503700438673984925462812454879143565344933012282330973052147834985802614586959092678856409099648943394751908076068338793011392143101606400118992300684609962837598220394336500328294343432603309193368421293556057351046823384120378972098090021759795256399217134778145692012889015827654005702188554854250496700575324025541312953334891818098615504775111748592414655398665082863262827723226920045004254079221409604971753566699215405738065932628150856233444365612399115387632551699740663842260566664408553244981598684280990732330925145173347572855897703156570203689315481198219657887512318904045331484549278752873335524612959295028496062418653096892006626307098151348412856153249921610205667041212835228321473024501421128853861514661844726202632905603823931739938350883348980508732400125444076970242377791828409949840143195372071745098856147908027167470756277751931262477188988809711026163655386520466173776626469080155339866675200761674321633574874010038920582730783103626890911906569737759069401198718414072802157975132875102350656312519397032130735946799706010673815836440425048094342892366852899382119061403335909249654422205693817383799457965160179794269317915820368259821079550414675779985696735179255329837235171191240785613066408124336095984499819690195573146766856962188327125504466900303427127580107399668296252099841024897398584797335950294652489621562116097218102092275337287040067552628731193916519739887410740607837584935698938521642866677396993139553878383116529808393603456398255091840406578234693942236558864094790660246115868078778028814523201361375525250912599554879299728572543941680057786184319864594356738853217032150365555858596669136886585612915370650277002360349378730481652086230620599853501948308877974469110466534060866903672747248020196892589481667063751667444547133327789626138365788952818224711567194921557203979861433620084041438584926076844340668123944945447119519060111680526372501111201453724579524346060859994820867554962776062323800226059198435703403502752018768351756547520171622296941520276906088117284600880078018383087031279032594987183308951030351409462273070370476978468708529183359607111539672618079305202321970845783102935598521495875792754785784427746329273479820798106679504728917176609755612576671152401465173829239630542007900739194941818928162924288851120782855622690776147365257966441372102550097038989990532969326695624915247726728787520784308109566607202176140093309988397332289474462823272179938308906129866202075246872783483061832086301957578047504970106461801758789697478298651330222502080539799533363568370509936914215874688329099918511690786293448104564467571189056412481356495212773039918999159931868808931373022697883433238614865701918570029304980223081278028588859760048195891107014510059245025915242450816575324491117123669690485449346585020189532749338021165241690955263982978557624913410062812234069350771700245142101251715022498419588202043449882161829665985328892576481943770145628383541620500948375310546633520773863380943473950069284489282194821660524269803762999391392589310451020585172260727899669941246618272980565312866137910435323753899204579534928416838997352109203060484597952338647455328193484021575628008512958519448596747786747011457691311455158697340862738100568688220824712029889279096730439934756840033700228038055487393607677100224800717800537358907237831620522200073079162873108810115227349434477853513481689558251620327321545922181117326270680774274764779917927095228886129391228926758272731176011787089135601838542903714444989181954314048506080830288452699605392935317201443808036471040486906092783963822749430372456657529965119377046280330676736981042778576309928807708756463527287512460088495202130086161262796405006957099756628590518258751284438620651515530433507717057180165058288943652942938169360953942973073868901555038877513947327609158145806170445947797745339659229160690515806573901621507024485919254452947870127719649421401639659671890310968978687923788982868414966777110127232921280331640411407611574733737829378111354068323761102300915372332074136470671785429022465760444951465610986157593775500397910222023486268845582462714995301082672553073729207288412999901372069282583114475929693623672335702718724744138829536889001657327569176098270845265034481648537728820107102040524755068988144334602876257642431256393016410928521518894958101958827963819093432614487736984134473129893042421156343626399163458924104592820709902105218969918482276059999743883636270262118289822029729392942574517012510243414217690939336217638545399408872461970918380237559948018641571576720957161040396214663625588280310563738510711196431649918134282527449919112233420390202876952296601645623916520202468958541906090566013234280253749746765513811002220388473667266498571320557857769200989309026886616808070525879106917243156626290224363089537947239440223767702176577307533333796498835478378723093237227420996379604658955760972952978406199280730830638231820942154365844716657984954244181336568920503416952512855097109034738629487305493037544322709163984142536022121457592239082942003431517209558318145284728145565274197693590137162457922403579952018474185855165064218886106955429462631205251326424072516645939984678513904160920361440523197108568931552991300507933141837560164969243453088257499899923167646261702737610868620835151772354395177422357120043334338411408585459752433243074391157098853338202611934019922717570281971497406334697098243598474398092527342731566453361739358061777009666717769885811131242227036432187581235444759390038114044237260302345546965115999492018384244942286887082755593701139906437570472545586121042018746754319214132714530270555464573316410296935759302873640765545247385784500739227602996048486346152425857923028423165813441705437458655471865815558285879189449832795045001820744150405525710010021883002196948612063059674204311075660203467933369244051294291891927055008159033699082071739016584461954781045436125092773107495088673917950866992717472464724184113506601894802952486122940710099224722820146668916570857365748398069196570374907843560480138769228150096329433091507296523161595990613989248232545671355693424804314099248555925781279476050332526613016584476200695857368159322999750755522396500851052161524004797828954168932593095283547978337887432084981138928328487344312720170921211769607829844283536327165725344174804694945456098609747967802708577671813130112636000923339423341686839713924506295651066499817505620516304996571417273248125868016904529417003395151979559574377644683999411228234249930471210539976654191193674483440133469255629977922411312844909727745261900767338442303189954381475490781191128496499285000514849921764794013828775407840115657652360724836494064709535274338124204437228427083776253494716446011679900344355838528006791109919315958672348574077911173374992168710139401191136309901430102412064405128112972220811944070342105820239196204181240332208256572006361001245334224611024061302561136854111308664811116912526370761939480057674093058487478394517781192585350162366946678931847970292339290549028804572727110681810486605365213632691455559643562244421780894104455777696669390279294055785087119119442597406905085408567956959759954018373227825213415012562288837274206365148643207758450328178452304034032182440983212358680055084641583898978094212831179312049134466379804952048004680592205291125588797702785604948334472502937886885722775563036607566694450128942520349134890433811107781842482967311259206236702767519046507613780032412149193738773903300573553922829887616825269410626831402787343992472780073484470585602573133137167667266304473108710744797332510734776414498013931698222118429561774305460713588776004046246785260747134520135696105662160327274084594122612192795743307833281815813290667419546755794301469928633976670101955172987239956368808593902799756390268496317643129279567756063670980315100024278270482804837900702603078972177616213827273856386155819875206502673634628441449775795095789875615488237444709344969279442998983285699600488763677848912479444032315014577121597281952964553286997038681069032021093533015251675109304717688652345835373154413170756662213033346305376378988066969579390432123422326162410205527623361499784732938984180970714271697905832595228223460877418244558138372257856883396390642487807870583620427247637285214983578663713978171582861025958113729227444536864516020740030785212250817287444670851561516170108905518493955728079217122010573786558612390583056366819023383281674347335225106192722103998539604595317521644126972400942079022465315089334020697196345773518319732230140577055436520538323438970286129979717479675981244561290823455137003246792942844194467524337772368849972883763209262460491942314558811589989557698042227079004515900971443942473332408706956046871067444737824205514677983296637676163426960679810177475785859864642891590661071164537494838614639973602372688944844814025189380606949222256642197708518520523769112712494641410418030008563285681715525614600388999864398753104214359168451742752998113276501962487350007983401978666871597847466395990391881944967557982346910787014529021387860260431589606307715635820902391203588502999193854067860251275866665131699793173433687431512889143222510878282475164898485014305987399519210048530044467450725925922745640801965105622200752134796840231114355627721796769131164636706644660247853414377682902373352429954843100373724289431376186671733038073514963087651948346334996337538278652984752648724056690794123872169837954760262436848462036069076539770173779331044506504314744773520610290237139909994452101791285379211976612468826229151568206069228231943522604584236392023677568091300068833133727011302119502802310953019963674654635940107331228016012057761412176872004855356957273940314437366160161104670501428505811198859360489829215992586074850796940129774024033107182272574417001241292757937311682201400800409115175171094668299833656600132819450778319349867386415521180408712886321373279472820203069720426322346250551432812051315273724733230621864560673140559629681133967304776633786152998754171139722508997102757336410896708282533934511124456463850921409551513069219487965969837114303088635179954852560977297602821954164864889589482334889310710247997723474246382710210254247199795927420932114675002799351122052434285110802118985221012365605508646673259493106165759564899595446335181150130756917133207899700113624337873277248471997135653417505303998248117056594697349740510050653741843046325536089110290963408815833039255676586621998477303975605906703481547994366947267543820684147305579041234757526030014651800978644086058910278007009714456948583953022962775709781663764196514437730789822461918544729691917375984508481036602042667501269960161675144287269793946546044873354416871897295161016397039688360098393983914497065262363684537404204228365836743374782372733990715381783820160437405818382537241167847074727859768323955575722299671823272021938108320746724576973615689359453914587849406364458117766604137109849219015108127582769188352922087599987250299090926263296169240927618832709595706855439344715638727309961681970164276461931810011129730560670428427590472388837277553160971729086556771200394527506324310828632204110413343460498224560366377008036801930689220225405639664006715357200881905099080885048063703750176665660382501447570636351135184237214728204044612429584773575345267216969175283305416088179556909484673127367134900693282277356585345315280560301065185480288527529618874708586997721659671957223629347671041651373914378716912246288219030378178151343542966860290975064972316849686363800831385821602473992298414367726792536531786740414157049883366637300688063529907909089286418569482242831674660967048188572947525163843247168990929477807760891468391891453427750739645944649048415060094873818684067330769756381846328643162600243125241391883316123560756823928819968958763244789825176748706117460948613504019443330670931996483758230021820651473579864228455877515930937284336332232746657949253877144782881220058756582740327194980589669093203381256278189785297385059258276576805895871943774595211932506171740251455805458552445764647632250128928511595212157074057469071797191962930103927787621519011336572703744058445316467795813012043134657305986226582759182113074355941989727864514800204171644705324479347532363626970206334938522593081799209351134634809639735280737949369896513060503528632131201428567614442456519169817929030853070138766120282864719712101784090761596513294969614131224591208959098719159690926750855140955078047380399396924249632566269049127481408188506108165368270154189664051293080586235093241397935423433834575023293114729746049589935654095391620370232443514167575578454791183535093581846343180833258737626327861411368050975269773893697797171132235946996923970275457774290836514124155993290292482748521622342869128056731947471278444808306352312217783036266952455820039434176386853464670065989492095434575787397761442291533244932894832791779726714383373513752647083389110103471901802487643224785275610622537554577058678542934525758647729916007103778770868106871797838332182176908714044853823740864017020760144795895584089455101647444003252882825702110298251272343016918685515433295005379457141206612241919055243294057514143663890312356507986231959065279337737496299032687371438393281505798463688975292711143623058798803221449599395132717068156084136992228953725884513580800472460318227883390979323769704891959578335146948832328975143121776417669638207158135278802148344408200621753974559168385735908041131838164695806403700177547105681161100045859187938758563308108943649530847998741542282525845385758320606222754250302153559970317267095781819313480638371032716172629083973221324867116508309106460656301830399562838409613219010092245620509994333416445951041021353763597721674312429465113156510587055117963203535527128486944303653963963755712240286833338554049221200244044856317864303341146139099303286706965083868821101432482334691441124847370063135372250679958033254902931961422639771118188603647267446804613560584780545649177795104670053724541751888894650634200914528531863932453075863684247255398095587725563733550580643886917003980951338989457747434834884886180162456490601048981647634098200976648135792907216775083660913176697821817949968721342171362637903047734485389652559711457237381444129845081407931514808304984621091886484204947302623374442674776052324167343490428525817210604042827601578631754487498815655407118203674249923881648504519066622324309872213658919641371361596107564877186215352622660546775729895269542174470170226852044023682126114268245127287462552525216873138288269890303192727445093635117370096608134876459648712056102428617357918975699856487196105679606171748704572256575236225868549050654757885013091375635497892642651418683122809151487573954788730201757037615520845447925043608184269417126021576084437269869279279271368885928267260026723119745820787259403926616327300800071110190548277658399137973900001596690494505536700529672518167309781030113259772130321693076407475565126584546423061064391246821241839127719535100174195094452909043691028483338254215559970894568518871052952301855013013185073410017439129675543987584101776239088098437389687926708580906028633959036520764622602996184354756063240314261751889446898046861385142982612798836524041447320816370438870715323284054596924749468977658544976990184015121520151201100113132674907054959376542919351110418124891379960174227986606149861357030970968599782734331563985324907326750557557991755324645147122291362680341871325116105731702127430298952817868966384972634135773060347340808819817242841301447354344968178138307315338889250559452305843086884454093234658599567644774198396776421046440741033306413590886667238633808580308208070870520169511231459277355887055217321020376453964213583273794070528911746374132980585517300971597293318272104116196534215399451719504098904010809285440351470268021999814534088733150108109511384410763029049085843136674432149544931887561481173740864550305507439171597238680670010766420705664398158139378461442571387802634840817504942234024337109732780500205024120029524711126751165528959438896822131747973019078403647288774871801396129658419300586167675417548664301978174309151612689396107475468584598037893295160168852426846138304061324799266918580509728281508568124103164003128437085929070630938318467980561742464866078547488211674687599453199036814805717215367373504251598991577678247843387268496829370834680040576299966220429629704131228680350609952021134598853679836231155224007304680246007967689785989684709754903529836985932548704704487747898504866473963579729049798847977601200178869293695967974819702448097151185491847644929192669126043036315915844249766535030914836957705733032153580055708858825244190702168157870063962093016632033738666945462179298142999953646803684145377591175288726845447816813813838312402260816440269976213788620221979103291359577320176743364260195464026399788603444029507353737719373057755096008288461155614272332488171569152988255434206502428808175776368830154674249737967923691198329635867963013925344166272585404660312453974672992823309397133651885450024728296220841503525371261172672432032575922933729269371898425422179332797303583760501694882176835939389152408529330177851077207517763109234260099575280910860106277284417647753753061102367898103161618476334379075632838383707410842407262256979050849321165292056180859422902940090704650725968867209005568977127667248627029363238311591035362616993496454732914482507231665509222824133846073206104430112691118044466783817405474415722968686040624907544449102459175876335463263001929448572082816744426895631909990469033775487257189408094389468044920051688727968222456870705215118206330100692489522365800917696609407369172497476201299320942627713496405615616403284416252213254498343377887198521044201111729998251932451316911898531115111462898241927605505498937330116368240124789774987621485583533633287344514077899111277343440371773168177020039115490441438134088287146637699826361993192390255022395130217883850034854575398960629247461096794476897169972702804485280220726974462341041397812923016682038959172831124888523959347875320679079474317709570476510558030454694168038576203422824123296799713601509587335345708332788144787426663625719773013718318069952177293434008580644084232494490840191573237065448804729265509225887846007683370059185053053804627558668251267519862025542597743246633148728118929832617444970488822699710593930177840986198551288290988893345043043707316112782297083746298804666574090092477909928079910915012643144878149780028879095382807616632370985501291778959646591296082885660837069123280083780813964439290374372822711069016276033247057639804130666050791557499161339185504503982156354615057684406953636547168527105063457869016582502800871480894852207695207005467098979188669908238665707719478196243938921035590469066689035136262991315478392436007081864841969822672847373641630590365038241611321370078225123602636318016119757781188503713124511558538750554257356751097515691587262387718684467509077870654843983361725480318206326026427503303893235277787218742422440786021403727372953007393435652503628409414949292027113783175082119124312765169563632099414714175417694311491284180512481924677880378961591549610219377897698610313119531312643793188297625904096077851959754568723145257354749826306223972525097820621946764280132094987338850380055473561716073747503245941137655521127942343859261251926874236023831312832875295666321544304842454962518752587402489396076945025806412301644590217025895060551674912648866992206486392842123925913367907427183127933439198151966080617585732561867004297414667168039259429356098781288688108667165031346283391575160602552347155216778256465057850280363307821515337857600221329392483196348009872517698803317772243546260125198565212153651441471464832184531390291989756388703878067422265443836003866892358438522128999429302359592021920728961697693479390613732602012842197832931170994118122620715112740314106550313362011500378133642919356441916727047164343740120991617452313309307065186638489837467215785680026425269398221345363759499927853138380935799539843098626780143615490541056666228693792795569414377783337443045515239564541843801529727430390971569729584103865320615465259966049762368620540548225337827323133587543025363567731277211339590014223481273437901077836147018687443537888863382906293265994082558588632663176660035973736603553611783154485367577773211863987980827350212336721698999091689163312077391498529136508182280181164535783381263862061514557425007669617468327774260605620805772526454539946928552882485267675360426502335058174319959013013213394049784857110622022812516751411760417890295221447777119841166627050635061309398588006980382377076767721260290702277993171477069816597421665152591363929780998337544576905539724249560328941030231695764564897355238017629065711913549126024674663803036243134553900184459130327696349566180495459479644551820012141064796071005528122812406211448815108566896564771079522836341471624597740540974859368976048998510353603558188567700918807035051160844794944331188748016373625096780704958064132272180217491584254573024391723047580409802636956026128455397124498938714796559353123666847259833258712693911600794320420440925571938545016478185029444541897847847973788140034667618206750803303707867939263573572174725346474167321966955526927573679692622284691641939563553396085927814595705313230468091327602279457050188776385614826663217905162890670836115633438795521138086174655154588167458158096786278453073584274885641791372895773988752923594491797823550181171207170102239401877781255805881605869331571503617981845775637514110437863292869016300672547426840159607418278616766330362593106765845511067130369483757875020535206116029817357506857570850118019146763245406073867268789086076229192090300750457354848465764930250768156149992972314084754713305493020327725480381748874193444504899174227114937335603563827460667567854592307683577268631081439796326336666780536914579773805726645793481187410067290480739740611612003769355316046282277057662221006611152456132504299327274634945463713273588413099203662803935657158766390265123116663332139515592078447516666455794966519124712373836033559165682172068988284759529069363951003380230648872053412999355241793575986079252681648921191698036642783575020557596867701069868923872674946724830759979774350101046102885856138232714571505669968184702684592261364287102564465049902629799337331295679787085063388686308925136789732620171650423989248088658946838605118464844536533297520496226366824107769598579245401761703407434762319328447975213455024451669412099880727403582530337128965843721116073569984802002165994525840653620274617139336767270936780363192033987078262633776406840553699527175801309716477201240133149170770235110183210889893991102120719039078322090782094517228756157789908935477163048864480310529375758015016636264253677785226650622712209986037354091704178669178918293925186881332639474718674979314416874233407437461323190766090126979705788960010083736605502059227904967655744938137747777251626672478576661094379738583186133305620043011510876452371288766454328968447319307142443416479795702857334888422216506839526976281418379616865577496393180298713300219152532008972895498554868947235135057573165568175342983318084334320588149134312075453484748274527720928577617577966649471309452830137355537431402223495797410241516321430832400248103868127456669291225362540294842022991168560823700295632398668149102169884712924326129110519184531721170068696922953900091112821692109498076430187494581492395520106858823075015541260864367365737291847241642758471439399632162553006115498321727279968523362081864131718974134318616835765455088691471578639723284048992510772017126517244269306060517967174148826089308260506410350246412138214225431482679967485788225330145578299839594058772284977388427753814015622397720565523027094138800769456640619992881790996009937960390720933801027214043982271102759424780944552811248731852665517181669319510759357139755327043856568907847266671088161863314133274647827108619427303917875954520086368931753880938708821722789774185484292864656291417477540693966323342995017034109070886516290104545769879481089272775659768061840263796801879968099920311290669660895547515886640547273989489278375000173120525849804798646214946193704748834776451120270528792081510724953002970304787061263563452528727489212595588855926857425599471649930560856034346717901918837529995045323037740106518957021020803289933902497978884449080627499998938453503874456474002075284247948961910130643570455393428679561406867774108981590291218191834464831532983520930477948505680565265451292793487104312211782616285625240189032914379753109669820584906007043209399508865684968275479939017940260366254714913905019736906151301485776641270950902014232149944145156354718469118174037432093471513139720845515883756851668295805728389783126406761747810018536900892736423760430066764206236287635016438505598187704538563757798908981625719472526157149019188664583236001979195065596977076808553775151976131509382943325808755110701423368989940754553885208549083144103336854186867822204331647610012669085147364177194521450795881524706196727095562117100841669882612545207121994066440870621599491774287221629643544632212859498247536364898659579637383020828335909781733560059187956072001822448256769483647700114636972039199996974330829164666927477585940589664806304426631358239188865708109042523367637552031718336265751787861567276563636632470939085839505842459198233252375819546534890451003930915921205550619954112798493884407217632189777118308895760368283820713375291550917806326925987555839645977813785833622943784454813561332390087019335578168390964335390042127493450646531240588970920649982218879277343248002287234970822711405531868709193630340737397275908970757957434633627925530709705817943685473312475661337355478446519089266637977482329200779290566923086445772367447470320758119164989367663001418654494413156948854871712239803555034156405375627236995834297946102891665810526857081073127613743652061917337993344945438919843884483261450622466436954507438958330289519048449276980963302515058643856101313225449243246506480042005546426969844650186304822367313563550155505185635948895651774801709661260871837833348488483090808910029388165833630626742165897363927300848882056356588920668679590615266486693195892685152868827898326245707675849866185785621572031510825092038203570127701635629631702594552764818854487266540711047234559469095029422728815632540214592850403204327521993966980485766361602085415133275308621846158233626314051114390646022525373679420433632962602489152783149531731171662299180776341715520303352874540910399809698698856692414540581345103394227803379145898454994456170223873233886377264381800356374293077396739113374531007997476213019293952597757890519643106210053537097475969039356373248411078831720950905751210833794261151395021840454546251037066844396329678910482606604293868311190132903900591765836315261759363286831444639137506488660552075133791747965898378786162808188218867886098757856176931108290098221992706794751667316249194304802279152765662476779319771449281463895264457481787220089903599296114684100867557349117511647839557709544599353688775628111368361843271471745066796879706409557804136892693346621668776227234574889546488045653909556234892801156307032646670097565807573520991665544168422761958368087069275108699143167213327637289634138667565536974146182432416341952375709509856577751072507865245947669127994342663759012891600041456045755495754913749964684522400349846427836402561588370851968579879065896687865722482169736479798670565919911890196615588880339899851055667338151892701781636524662393172507569166584675211600739226193816344029727368645017838792685517196332843804956703568173357101558911488235792735018817635511213522981610408111699408047846282362745043012134686151561455876107682008756610474142570792366422658596578619063705275440393281558029547839013332424930626419127318534388526572424064254205550312424166113596132248701214622968789471437972779314753349778542607416279241590341296073773032524053517381442211705165101064192012057947731062340036493581126500872426389294765108428415777613025934381530696071102225545098249165058316033522383138690223604169366843267352365928583402686282086833716402469919461372890187961313155116015126577789535005955386368877447334446233811636632513862379335749251048215451565930484736894517713053729902128628438936185116796084053841676086370949893646819272240368819496371953965712054109187057198614980701605893463304407862802813339134833160763295140082069476206764940544609719799076017103403224818448509618905694420697951607095781941800688216556996128125709848351910702373155707187837059180920157149944552679991624191848595958505379077738195741636332692749152334066174066998304545606433563867767311691849492033992727742686635719388489405766991833636865805343802986889962144068649896162198509008122122806489552105716738361415343206684278888932304016025433081734327667820704334259530285021507331373422368065138887553602646545791446556371458525086955340808546063515629451279547417874942459950720063954402250476015271909792999224766255752090540043237696660275287306321591248399004673109949729028471793466961325804447951086293007442058151982750943976406061200098353759370485238723778136873490008849918601933234871554981361670233058863959656214017446643096761840017891220396330215619386746466500505071572840935589512252353897776216394694650871516266195502674591336938638763866797052276780366389304211568453362157550886294627440080143029833369760799044127438313442185194977931250667054048196930334279351644746298324903568482078952505393224788568762933087871399814108635889535874517270939751684109796065948619463613350157410557998900338680003432933878766141003456870061858840504661127439636662660649047800436565543136230680892489938525613995907708988927039563716555257084938585939750616709969191939464314179013920908263065343293179130954972855645249001077108743907690894543419682338322321211400737859960471680886100945977405140554449481883099759552778286705793823080916813875667330495058758203973506544069586685502791005757322446417110744418249633845705926619676973704931523870199528544771560545647096582509842260688065903416401089189101650306316277986104564146631746395070832874885843786125720253693791701610357636385042961133768455025022449891645240497670507090896767412506001451204531074525520859047526606169917946066984533121556931898359487510054529804394755202720621842260004449742968452782494384855709808172349584155570977796010559540011472880801861204230177056910935088252994062848915356374572336703907059721539379488165113682995502313930966253742034046522828529172750966460968387044689789326412068289705885140734316839639587463357665917934851490624317058091805855561269930885814089665382148080443488519850973140602031016177842310724765639954292333850126816334480981390970256730093665183387398322412830697737371806465275489652152504151164667789544554821020934075120602852054805687450437339550691179300152544130831213643235263796892655229142564115858486472302008769964713648927558411916951015080273202560429783685958379106261548735379415134700301664398479577479418900997631563519518784050976767275240476424731028871456797805470955991913669991490880920470214764075605126842818667193798658209042574637630657546943261012007975494677542002616424246789217843529887466889496128041408356768333793628051229942481840218034611525336833255490710855017481390341981817279421068490974274723651151209905282177173435247654312932041084439652998975666019579208095532104647959007271722840420514519127587388367432630820628490698824037482186949233291509798053169375293601198241851866206256284244363845789708249264513864949619919987766577808076415345166354719699119290241635722520994696217940283632137660052980113585419491434116901215668469974803769971634412932028513328365322990356346035945178684868013269759035873973984748590335955013942358717987543323063274421379535271939223407970698391342336936626359664785166405582994968906803892171716670303470224608428957283411450164507469486342293708360783078563210925569717189862890151844672979944651720644911130429455435835026066932852267997191329077109291142297357012564685667178566145304830455638545595576758821336094157944170622230260650059148371640582748667904988237948655573726009655254910457409809333955789289741822238377851412665406705045507598380813171036025105711285609577308875926807278725359025530287316159348009912503728830869341959982348201528114424796939379421786826935329613932508035102011322730398417712579185099654006293125395287963848127388404210755795255502507960240382320341693185703283013144110772705695980053837805967501255720650952194302981508489046983103959993802691089443644238325957930768076617129169770461911593942730275486105889781051032951277258514510822612271116127551715968019181797409561770151979550061555460058683017802570293580348595533349179889310678117383400626026789084132416893102200900397617190211656652742633889359259097199107441171998539656642882400708527588811712463040251336828160675392814153122962706035480784000652066172239392183172638087132083064792397205780809664616120491049206649180521220931376424554655036204229170569616783786049338118527337359663129907418423601443463782052537122377411346240731859464000526868104487260134586291547437091850408381234718459716313604472360227155470161389181945993598909008762415642744349594628790716219100767948557395169365035693742073263129129154714262666902155934375003934785584879533385147257985664603522043009384128479504935486645861160466684128176053159217892074638427546738509375387184916281483344303627945156705774552561219631162452755250946118401008217738044638856736085383160881166397527090605465107584121075668914201061907453820888742595469837772362730408882474429889925285135114981928270276085876606577355176674680046169352512873926397022392032837321929939768001792867704499344845367148959635579783114050524995272839881176151186344011652343571535847236748246535377933148075587465958355170184501860823898518789076708964308584468985402453783873678040306553649924799100998911584781787910121189803101608796401486548834290816872620163856216870305234668126502636624743700873150762065779999067047332202735571596994768348644857168100007179915749797725695326981009306921633995823101816833508304576287470442857807919902694037248808853171903701545478482000850445174539615464832505182547222550766193218588543356724700064278689048466593095827935164845131130293474217199643997320459519350429812532646774276963255289965537314109366257542219737897735133360843073363702592701259611230276909130478598994014167452328668253182726900645913418664344528708513492600748363711870133483230202026722965419609568392066298274282405332842650843753546954739398884260246619980126711435479617904714433132389520287950540296652055673274452271872153927034593913231615854887857953238740438815466377190045050393418223785856426761946775638315174472086286246192876180573665922673677964110494035659406659299814479956860815934065053812580924194340526201035722717055025243665777904000671880621544905637758921782617624928652947468111102208040006276563204225182025043032923393831553700606457139353438999390347128142367633602266212128587794811926129328272456972095929200850398793271360191915281175438670847700911698379424006174769363789815679891576552092798107024228842072769605946897982547945307682859701195715374284344340596569339798542782474528934074601788498733992724343005010350590541026993708637955446578563431748436369510070236167499943688468522533420883365451207829520532299122635596454791318692113437332701173386075401974829603936460372431937700138108007668212334279722017578789078285374949067229607675523940209826442582349549074873468440829742095031200069340949420342310376743570413416371037338430940520287634619748979230587829768656888926743896049726447948673745739854315589784981476690822291734369454408860257355778569158524884019205725902732289244054873250682767284331635540845476273202872111715061081661659701396441766991529143724565648265604779454759625320204818646320446360563582329568743115946425386104739665181548136401988777394105682926963374769510153837736830669067535808380712357385129112474498761331724016196894441038326224977184171404604515749971879939117567927149345769572245695249759581598524834014149192440110573823799773453583161209012930271849384681483805866684369405168663173475591490076475669135111474611221557373468440319452486349255726123099857739151408225334182917228255240722200514790460077929241478054944753095734704625049683110529102401203910744622687701326955516599415057003605803103339652453081199985557148387388248535213042257431052408907578114240117535251061572936740158876760704877059637352940940258475067211822924228884041182631972406991965300544605318237224807691173821619708652117794565852180746701364699583469818259362564825767746066388722178289781525333454247644836941671490972400593298167459615937957995356887749685637553636135468856468459398277749152205115565932431069298606372715421967494876709410557311152703095970167199152856722633846014235224378807343994987685663813731352338489295234553950564097210335135532013983598708259784507493556016413390936785575101020528117055246349640300730296591720994311377919608971821620495718500175154301811591108568629236417498270354395095466181907554337321203601611427144262413762065355127187160562129249249608611730653004500166571606973979054155150653785502068009196863565531214267535657310359623896384032111570724646546662646736523464983543744455806117740217929231665858302942021457051035169356373839649070291105120939024152316012069788124278375294045374148557492493570352378548525448287108182884545062332598377727614481911909183302085735811049789355685637538361056134721241743127022137814562903118412168905039175892452318632261135587444999705200249087401044804260443560240745584665030000968722671329879185799238389144101612665451459162643044874229321203388350289461851236101298537197467525479258340485964365225349401191191954618343300816825373146293224889692902307219516453056135473906916639564469318198552440650593455932790401141932022827422547270002112050555580630998374174893852471761884906465784924665392384282267584003949778074637041058985056175782685238314434163546241010303701989962269658231199884080107275368032064120879202596510511327721438193329288731249538086843199367124105746136404239616312159020783194584708967383770530809176132807245582966020893742464322954261402439482156303593410149159822122339764399215074321151933264777118492389752113343705190275265154982840722551635327943225668378913180189595687563436234046332596318209324865288790057014792033518420284214756121511200134228521930000267786061961341415922267743871428398531348402461923494110856556370539597804307876829198936917040759516188173310219050939616749992222439742825907141582277406023747021977209123505735176836149623186553022751733463352181510019112487750096089256311203750628669650994620992629600353595716870179417919081768661773124346247958601517135128536313749885240952808542144823865795358759430711828262433729091697221176070270923998941153161900922953219144461463420295906871899218658122548094738551276315638787831505456262950176589600620660157070105156049752745102868228684067922784962004005126804718580850224749638485430635216930417433854072251502723854911352264971858706407576993624600693750754068876548463882710119057360083619239672884399386449813200903259754535371252214343278506319267702016594552293067362599548499887086268004207395809869042584539514909006592506020141446190277548816419020389013159496479159318432198467397603722497986601442342035176364225226461672974051118080461211263918207214980860403207312967926062079823017047278794867780615001512573620683799236482995043804487913491814432243790855803008795864869301279319775732428469198243846191996938356489423187844717898840187687973336985241206209580746891162450667111695072528528960751736728003031576286756826524042571185781066654627496762936622310936864914583482275077231115824959072706048780969062318610953980384396547876687046166679386039239778916915682990014182577690043425541880424922991612000227421047614736434650678932374096207104604785558111972645221290588668518396249768931565981105137797953883478618035175028757861515466005222047961824631907163204249106408788157984955296812030687679550896585616703283675344320216797468759523508005468549343349919362870566997256863872690588586784283209686426795074292017984323468991876483727613233573759383724747001286569351046846627131132075479226090757310678265213562662735824590759197870240562797336733449632378052157521418330031265907341801487550727771827815986831412566868209351882536715661616274384024196986640041174426617710147333649115232394583986954104686674273168732727204652465714124068975777687649261367259901386237805263177718300550030699116943469794500678385647874699250262197799161095111710529912077255319619451955741182649568641575718401852561620327429044454282242011620046390215560977290073780890967391989948592758787203609005308483239165324923760820529248483162701396627437933691305693314005479048187868786546609460662578146328849686260747838478496788429881780302860688244801964667739865932967396821296076469224774109273890571869033540541206141880961742579673244709376472344797409692726268068277773546266723275937329595508592949982935010326997091272045208568120172818658522237065041299000536923282744231850484905370151000814661738807178554690274580938536799937752355915893796085994699778946622512360283332320641143949077697262832234598858848733641271027384953263579363488230201075300075314851241329135435719223944270615145132694165080332435876275343924129564524943559476453033526586435309737564321813835258000569543123318905567818971228903622948451850574465347343793227759388751545858980875824776120338664230738574092658163624440592867963214517767583701389172973151307343279208656158363608368071534953434094914513812840900182404849356351447416391585694072020666440517726227114170290858464844003190383498526640779624474594624135386988509416917783341300717972333933338540586172553812912947144946023141935526157198814349005658172667440961989227576135967305143032911640124384370441008008648895130795237189175660307189923925551956925225035404063360116342003076592140640320833841433548892474858403665474404053460602720117632725818034109855473269247814118116207525976902966147447249226178224526817913891720342862035158771525784060692242293576647461334835193813955805594724858288099760924720141685350727323734883583300903457519675659511746098224309183559096329179090666732261142668171751549486081467600593636257714114758840665928434401796681602455346356517885052289439607227142756080544547447695637594649276792625637789126843166884284675113029092813588821705924188393454818396591981364201730510207860376709727868797883738474828191811845823477263676180805614577022031651447563173954823957215173304833861874238886987135558877333471700372159030686503464304008341932527933804445966261665150491223156046015695742955384093079864160102242474250038953280802843921483553099408451329628254549420173393083133327721082023846511824541005638450505139895299646820619560992666360629178175930200385717512822696707553660005185550137237627975706453526803211861855499276999267580327309459426519960854077212035935002387343295320482448050467356473399519598886720031913993326524331896801287143630229772969869779255354747080361249187007643268452863189176766817050430964114202721635849313707705536437810865337032565851832395778939441542259598014540975248605118206832781057248057108781069145488936410958630691810731416466248806370499266346719386750266898959571417692172958623938921224001159292649122189277610402744271479976732003107218206941006941702427328202370783211911171312425593304886772424366870205050183229329757047690165280211298901381954186393110827358614305886342965320864147249192069484735844651709655913494005696582452786056118451589174445524622418906457252472554738009172406601722095725513460541128468873973734096251985587367331525805836591334370344668462613122500961887612573751191887060795965621250024363207660847836635998796480335609583614158410755430258101342046547054051687920267504792038008664641406202801549903092443510071621475133821472156656600967905974008202261229806782027813581305488730179067569615755610795874799135023599520417832112830083831310138279460125169972780373675830182484855451139877196034083473673284782221475901442751056162313063104467594793076135298999783876373194097335281028362627896714518580214408692155276017743972468722030162978311741357979805082206213340797445090044724622634709038226562599683158538466638970232038093483648877259325370323462077533264289035845498580323894391909376334877483347129694128008269904548529030557157904103078468848972144721124156265317103008070819050424828721744022117314417310614413448107913780532067388125371494345771202341170441922800277970330687739348745264880349965928791713836109459620633252254078633634042235686593474536349962750603382207085241953991736017617756809101064047105677639970260390003422217617852126698088998903121337850698330736226550191691182796608335498420751700143089997410573813043994122146302243399162438331975225465074645662759016857426406485996122556006880052826800786134090115006769413826394086288175114859923966723997483945744183606542151861635948825844432820832460106108313912301958257636943306601260097537011063744853592541089524954869104208118787196502715562759842647900059957850865444402224305769782573242637119492108897476550896093320364906613221815515362927420324824253475949536600330217346177638839873624823731296732302039275453365911360240142665183981056549097948231799536091783524527087995211465039433647815193752210164932389962224065044449982397055087233803012803125764213927418893851866671251428691201824996503695286916250345662037145660931723064184499653797954837176945894264906643499886421734190848576624410247652534164373676627779446689996961275696793591275359377764292830796732692039040364781837980957032124918032006431274137475163778206758025406397605750159934277106842695307157983304400781358018942837843730140538644425111696355023776972963624488466047071468271003080121152538614869657584538407695638062047994219011464268060135464925539645547755186795207383799574696432628098514161824810197284205840542710280992478537100939407349743418558969737336008517619838063893966881624412153973934122016821924612560911431783466009290787242508204760762042270382538050531167838175804859566613513314579360857097962188734739620067125825643616413505535103772389711169904536702623770470169400231495686135172082014694051130689517291127932161079063268641944597085703512935184528452622356824628335143963461884364918881828278041515688123270473286789017204232988295195058485590242087965923171392573712641327505771156470180836396139151720709261684891101304180740949442089769267301256351093249902210564578583438550548109260836988865549362060800125107422465113405596441303527603120175038880344284930135750036310876593357283846867660867662812907074651846007945324781075479742307397578193598624778958197893667833727098047704707775934419765857138348975167348740502067052685522399440415766256365591563775331637258397588299248989801680044328882432820412508710819017490296788836561862408767149823249343050039917640685904442459883451347741593865348687058270237303097564939453120741715229290118762452711874894438256782287884394103690544961753250794896919736742313216332121703076557809913462318542842812746297223859950518985236960840028628153336194702002799457752761578525389953867104292163628324421640141784374302987244529891387431118148262756533820915151435040406017263084309753373076755228041452312038440427500154817796247507190138026346821074210993766062223599686234840871134773437534619248268834047663384228618923819501345108440741226920286664546118761551329801705982685802134454105926803139473028172705282392800676357321357523915670602737107937220996690231586034661050729945987099496345005875878812454213476786408638268380159312085229522537392191546057312771870827215581000836920768401881171650320381291087524278095885388693312268258369853729738586819580550035778844208901394147553807189303611031928717979025679232901291747087899736960017229037256828863607701416444571893828575842910072889960995646060833349867105369686590680817710500601523146479028110527412981290083069657185336784540981187853444109040067519902026319021075829605576589471363133162839763992459653191927777649259768311826534637507547084589227623211317270546023988064800013726766726384169063072267592723333145018767411991724407556414931168067139575337634465559616800559900418385064820375292259220845362733346219156405006410498099536161584893121741451978098795527866381087200915040491437606298215362126009463592401116705550361097207166039633349156745670514030816449826492767951957054657481243334946362619335562120482096205717280538300217396532541326370313573620381262332751110838759095731350857890553118960418463861312860011262390672272436512598182896770627809139788497725881450592575655772065163598008264375339990531769298949407333053530328583417792612650780992704873804965348204531121138036097098526762042123122888707540553000787756764736813273124989827746123003376735248539079008703139593235546733930260915116191997339932499164806234527371981228404811370904561099397386259531434563247996988630552924446363824954951012960220180356656617777055488048614027134548744690329870732071030134385995835168218279022866996057462235772776567721183268310351146262096467423327622295035856770141587181719901190781449310140795286417615677973516404260076281892667668642750991750093498631283906317034869327742928880300739803877065489218501691367297213742364895064238490799678596913039315230109747214164379924825131611919524276682155503320486681498307031989459170400369491393274049349295367178827241876778734127295726188330490451519131491262726093947688193099639149559736453808597535518160202581141944950577769251404677505734855553264663409835437202787085562753193357270972386728077479756751247988908151706282637874976956274757801980370294743348494431700313173394409610132342074023361538068485575402148829034401227896866250939779141250561569109443748477547206065975478720285746022096105965449298856850673020472042116112811164091254470218046772042756671133372798901902830953766667746271586641994433514824332801751862186481359738122706660010733658220190576683374090545057436932542336924361148372672240258178385416717589556166452018575441932753130945244731412522985164808942281623859057889177630442688790781690247325110178698359056686131056984911257252272821463935832324164859271959185849829190976291118377265944251837629756264234395542919400649734891460954386227726101589350785890302429057495928928713925077388759642678136305077063984949437987360836962618644287485117435128014332887746644458313870769082992389457114914661220755361574544504760509207220751663305008555659159151694436364748327647574853713416475611450854105844312834904233930245131198585912492397727459224171455961679122205283352907405332139368937151434810296992846870573404916621930650056167471583779698072298207306258171018781336206759278528379034953042610005528131675208966008310686760800866542404702923186283200218959319455579407881746399294590857498739831789679294689221492890204317775421566955072110171719256735016549239668830943282562558589550460941823251332165245963895456129872215004737174879756622518085268773927941491966436826474327625596180878003510338724013818962241456893774527989680164948353042340029183821722170042332687454135465952204829290582445054956440491514407096289443064256270289696917048350480090168271677747102980913725241528977265330455830539830007860715570353115272513541038098495743381104430078640102000681061021997874216475192370531684589051297533088487277508172455751695253123491859905999907953148308149958486788374257472991465540883780051877975800509872016517399312196293208118909864494242741375158550566779462016206335605239204096741718428934697798030674860829336164283342660590637250139430971851340559862752798846371351147823470416275826562271464419910232275424720597538325846471099020527782420687425475295163502270052102529422560091506611100067877024602493800133993692670749580865964707953607860236430298297505612494286332483412183552418077038428422957538793797360483179307080315976513011976374502081058233437119473333243556552568362881888720267155096792848330379251279876977139921517749707105073229361606704734168375845975166835028073236856001504418024799657068940413233915255771393467478839250764222432190627246973405583474356483775388532651200841600796689127152529206349102833265841484006403321889743427259382302290955392321168749144600815174440854205517781553038447766261064292571225469888932762367185351024565457957569044758103921528646979073211015110137097798682177648266381573733649109228053794845040495220115118268143945735570540736662363241070088570941317410284356118906355650933791488119745823045872500882674551519400478334528893435134176086051172863361829998993393434152850455584703637781624440855008323098731118090809925576358072005071480646324032120796215993722159271004388698675237944823301791530215245586593818457205261648547599768235030532741589877369936402957289716126845326402858755129752406047952950110778995831013817342922914443053592234832438855214998006661005280707637366652217903791648803097044198260679208334437993447583351271944253378400437433657990300955312523782378885219642426817378635431228115430797304337185254217237547941637921340441704837628187786455755613403144171299737638297113584986206093249672821415764978559958918984567314628155814009347285367211023066703440566620743996544996672411238987666994038566375589591050914366505367624480498128367301225939440875068495465686911028856547201557475800209807709536350030171326481572118689822696091271793181690616415053308989502421003878177278818853610992326246861926118225283273675132774775123807758342761279181117457748513303746874496266384896503135593883064293658288632061661849764844318307622249625289287335173655573693870871580075801142719382421969377401218503601450905161903199092405167618282895586647355740946120604927289818810688128950482798956150286891479384010776282203430090473629784486965179186511833134194484489426602010718908123544597288828424428839310004698380802524880780796056077779416879500131966834114258710536346558990961717651597124731987333410868122202822261913866186900630175573854385130809955103640220516022943576310320705626123921057930795148317643835620604885209826690187086783266458814513983423346125824739861415691193073199604807441978628384326449288261120183569383825838439943380272014814207686022266452397899720871198577765773516144034832138714100838761332756734992298382217846808444423373517587783433335472442908689314590486743896724543870932667274801543720380273234262990186988915481341204399428198766956192650657700697717850721773883042661672110712487524025420996886755641254260489576767252389134482478993102055448442740870220845029779119077592939672428798335255950181181902401593885268189946961795117047731438842637526217240653102185748058355812717809521012601145074651680870923087130164054550950148808448836463900294081542076746605628235338918282126011737227787637143723034359699264084825029459014439470221881872044181819845768789383896139061375231068027564590235250247153421946549072479138764838737022119413108351905415481565710501991503689026717141897432929309414268794939248133248762857294581192659089941356498206009476707534176228557952620518169050548158957409043621423411709035620210958654226857518426888869858236711974381112877014524116020443718795663042048819522106308784125631915069558536770121770378015721950030632295621670780685255261095979454550299219582680859604889394626101285403475398518379644214567725505354296397580049724949505736779156931701075520665779636747059334521834183955464604438445907471073461574257789687475042793219700901050600815639886479893599167550451617273137431672771280608621145579087993207994251364093295198271374358477886523176151350225828612361613407960672590101704534428663608129523066847644031771551445393162576819747375067667857819105682586749772622352406348928140351180759952476532689382944884413116411212748474946167307088663033610513739466519929180882466387518751982281272717259848502844072768033880775807186411162976879508800725790721423658057493841837401592464871355291264868394467710709825062994179872921915410977567397455867453307865900310903203467238542981909275157701008444990704020638308436863820285138831935015029307158358791448620911510791973408508594771905548370549911197895364400871405337582836728808192710149682075647681123518925197265418905401663035395195258067655474411729294710299752340960336291889537765484902438910319581183028558752113462046116728644102757575514926235423874429270304645800188920423254149909620487472961428979303204443283016690846550867605171846872552941990400737901672640052691658415935980520505019073597671193109856151153646684243482830044818232799072761080334990174070271021840534498128950344543752822741357730585880665913868490181412317689255632115100674646947810798595662715566796107203553806407229352425224595634531545548205550774229082868436883700167976632619584211498100765708943032816449432200201802859871961982241011980723785242025908608694614235576075412873654496286435594524809977604909919643397080235924502373774880769166639735528403501010601494375238682319246755637803185524808460048933683609613205835961932746882032587678300160629342414478755609768681161070733226444787252001330584024268966638402781634646225721952099484532728724501439335932521680038171235558186521123544810958487875792271892768568520805862134937134637438668336506997429440893644465131734688769633875588471960141697232019411339932816106881873632261362857744618985873550654450991234928478092496351806301275914464507942186550859017970631339938793569732973986187170025905521440632236864332584433849452365063794365868588972764774021047144221849844864298795467829400807629745636910569281906728845642589852224183145823302881238356737095202521464039736990731944389326350586580116335790430329332791250334459195023136460813737045844310032150962144961480592008532282677258152383401678215207086978416851830934111273195485092471088837848122904053617520254483525913969890890620478679707104000765461395048122394537104368344322730304990009353263691479139779577075285919205608386043005913900893966274153898681542375242173339245944106973630619242912892749780793475448647335655781069238143564856388069658488205406197048610518556254783403341664344507302922846701861838424496689778036269851565015787508166677660677442852002178421815412787049308402289822114556611683541197030547846247937491530554207319961027820839904551403153353019205192244612747262355452279471294852148723365770219910075771309928509234239035122130457936733848266238797800488241835126732332516473532723570862910182444652647713816715554119977579185977133725335750516429772581317095843364511514796034681629698897847456401014689670398018106034654089193574591374579897141036330560530039736305658788217013299510458116401462903716835599384470447060478890958542702492960890140655697490907684707620884748388889337749713270579346491441860289932603667914253238499832796057102662729833107967651850038904866504872906261635406219783366587339490954365697986954867930155124479332123926882498402230866980437438673344404427621732043305225278861504847070907943662401802057921507644482430798191046470548746370231861320646195783590196793190754946706085211816629217598858387512085175977497148989044932038413179313390777309756099898560603103018920960635919091328957396360353178502238779284510150208038011480205332832390991579407232159723309407868195527614113699556580258285842564154355516383242158045997703670309998540899176268465576390589869486631934794020325596656567062391515608764974279182326345926035505736372698572415892034805370017964107975514081861175051627106191440384524438630331307853723950892477498533337655476551675584069181440440769402469669240855225076358102340549235354513726660251055864860260495106725019912702568792060862295926519738546204637346790217151084245611662103811421913295377635370650950793025022867359063124056413611057797338764668465071371791149990730151276428724791414961005598474738485459444721018648296183616248798365764491183783891137862592799245992106090604467694950649039778750061401680652099214056875542240309227056053681432645196442952543466596489510846710762121262865428391754582685785000736150811314650442862552878922869810313334848979471208055664361908939630486233281740954709104213309826803387430844372792400284995565760421997524661681292642182421011193244878218851504551471341526518657216767857103341449454166209589533384754775302903528071852610424236569656443816707973165841239087407566838016866138205997568962347848392025007036784039058582226308554660982436777838895520031600533647396431261425480142430612272524811118186548597082302400728395302788115939413909631649246915453719582969055491376816035216522309462200995698098376878720829415485192096340976243421201256012997242711273093367605102673272449353529408760838402341715316153093218463087937807909309511161567638541715448427057786331264140302373772403746759173948985496173936163497658070857487368396175656228614633049754643921039367732086356330507590840770522240084670000286159562844547779940204132261472182758582154420869854637117423318189981435257235790939106938727566398798605986325298431861631638077745024039059789669188076026581813690388247848837370889104704650649859043364527649305047113279656364307671517109368430259998378539593111772252932134895245734665158274369599156429950624569350774020677322392938426819340316463594293839201471087950917003286575307918762180038389384016706512727889142227972691301713525838570417472576389051213423588411328734138772271714781180875203864514626030304955963434429871558482563726000014411060410503758587961316941486888147512337614222698256385832109857283572790603746111866336778305171827005307004140783287138869033800993028932089923649106304558285000060159351739137636213208412667795304766587264144704941979214905674386473226344272090361747645109737146975570349016571803431882176555676865395727273194194511584270033363532842205012309347156418806476180656942116649841533804881160885812227481801623552152460240321620273660053164719005754185999766646009268825523523190684623886313492466372529171546712594627826774234417949991959564359951300137183379417403759007231616067737359483284296151373416333021267969847072480205332377933426630204754930029727046980625602479166674687189156772806647531140411114396497452819414950710223837242729113809707275437386975556105864665940216361549014519085884028444932633853019246622500504728508661304927628229661464447884943048636180769346172317611031902449474818240701674171312338712773191937468406136351030880072137983493708444247000611511315520020781471056649980711024928530805110862577590725448463950057386035559199165195731260218789249912589414771050505841849888978755152535546862629779542051765470206149307999345820903024681963679140334710229580857475812147325973114900515664258923806374852204644653248030888047699397518196712187106594989136742267501541862373863556499393983640391781455979728249474543980051886300883093781309453910622800380389141793501418548598857139149908404164563614526562780434037471539299936098017878050278842680319944796845707187503229603232296746232167144630444048137681608782641167141129358270613581534233565181034612262204522902564369534182672005570242582453870244736692286840206384649889454042987746178069481844196753178372101173140853477443670818244751314921186944582187410450825720148860893025295113679496890196585537257186568874336590401479922274308040223377915151382102362007001776584994592260203341392042225279371275060893964746957507151716084582337340236377480750973061066596494378634465699023141044639274217888489608547228426621722548246855364174278549017293212370415800816052791749739012002245887102049092624437703226555860999164123913112867851282084439265871600909721859543740880615840798860186276112143433184264162412840459452591871125740888348143539594980053152410750454814138367869612745392570264018830479915217290926538580585327632216524170414044961303177747020211006457933873286382045671801687068977131118707423640209640266642875283405588631894582178369958394242277655497713771526178369066314091158459395611928193964991575792780416194292368549163385703158052064138176506029588764477490506228047912200743320865227308138427734549071304492466309634814911234844961709613119292749041588379272961599420789645417987055155152019273062713228233454881773177688150037178238424543546641747370477210365610233651638559638415342317179981754728243801597192554916438593178478683642343049012612307708227081297104728504817838574895378569440218128529757619096314226858818308986057013063018405768483727460350767580872480220985712781566877005896994935910698195914599121642680717958553775498639354904589628462261355509024441561469554255276325365322428761326813790058988812918398958491623383959334906697318618509912695265826566441268386526814620032227132113417574150747825589184561926495597394264032642766155666488876103123754211440744923881874488192840187672301438654131819793201827325215579884356552593811513118933222178711912339198367504971818453120489914033530326597398305266314145470046495941814076287697397367832418455768037114919853879195650081035918063424547910468542097660044247145947320540688149748427375434784421850299352093990363265579986490008481773430703201013592359107891538437581653391680569297761742182781925301065804461111962092161121732314727290512067790365434887944632726827341584689029249897112585425086016800383331128830869728485867862613229676767978705684548843568496387088750297511010167729632825976586519857687917361700256926341440520387748190937533474777784258650148940479937164532896745942877900550611928366626210530158269000318692663477747616945552282493944008305049112631070607901507998391155098689281488544769693925863776496470819396554331444303834076071583217578094729790564192225081229059361632470802088589813693647925557340700951853629453625596307979933943519739855619622132312192354759181616095767811194097705295891980284254919819730091834967991293266096310678918133812039221036950986343033125178520075519330670094726357932218750701492339805072188664063523738387082599428107253680591734954558843344863623273154031258721942873038561536275562038301223806172102041284361911510631943326797723950506983139442840191002435194672026552957569262091951381020703241992111497806893432326299889296782448500278367759825485734655537442805982216141863287822733017021284547059012549132636082556858702771992332222697977193312994793336498663900377511929508103972563567613739022505062640735068441472854515222549831705282939363856601780710866333035409243156147363980486396239400092724583334632974082773046930320017659373534903622414846473850956167638649285022209634906756806913744880113554050874343808977964582251990184690542253272766581270088534755954047351223404312724083283028351125704475764926786057212887398918236636593794589600860204618137587768994531421405910587997557929628488095933805665582453537689710499308504414636262833344188106695283843175289050251955693422564620519231465044003637047763503411062554609254792022517624646934146346299800068390014152034947486273431843633723586976117604289892521403021523113780542194145176569511341526085221611908795396411296459303411609711690908385169773996888834241108270363498050781456324552956597652633169608487191878719394705303781418294909557912764902543627879248544007993559721433843493738326104674425985555629431563087944248941523349939867266883920600183172536589352929583040364530131606168701667589670547975461073394238918743802905602515403750953115481721039355493067952677640691256412238998185652990926311593531410922150690695610385562215609706948610356480957351342853679966520438531851669704294929857074612438244728774221633349351161102527690663822443104778372754697073976992617218524449884890070448538963685033522088788857351427813780801501951215568139939927698139932658233094200429520092883028270687126892837488992658836304949333976938022166579878630225784546946815174801405368031374518726339235667534426598419067264125040392952439044886694655827405033045400050720684818853684236746358002975358853259904954558000330847518707151971953266618702598656321139293040506610689051470653280128654391398667047392918295944516615929798740189803299222126170693782846155812882940759519364855280661542362357520679696488517369984431850258832669733322800600961233212965189415670939245147123029875306734638042945747243911528042220707301113270576990597095367291942623191142561376671632806701637033702884835890588785082149434001706340214792057874903088807422223237153047107253821295736157686320188250174449513835489522825674760081329128190236880169994137138727247433510491958467248423228638283163633911823832526028907575847814265235481584278986964897199090728978828740236253880069746472229331806652717487406758736675710020360434656046661688592869798908225628506032149636178338691646286087581256373921075497030576696141357046487829384310361718702405038775748872452492565392328284960272685266942287581036421580262841595403963999100551005248408594919013030148742459026634864929251676842770544055713691393532789183612349572334503093875519479517705238007440808222886984626943785180049598724345940305489723175109676445966226724933426631958078962497290439656217918968271737029436084534312132906125206673329325287282089198081685086684020044682682979742380922279687105697178054514616109803824350861905349836731961495402427539719314930775398023451934869823113256366505039947977985204195441105970792565361485040417969341277109171643234857929140198774027364990350143666328028073309798352696108679102590691378117312081781868408379641281208699229041403244214749966964648148653905960955075665809822551717647869314901572142293095848828888863553823109593584852090811895009536640860000648133021423271889539638121607336612364221549557560789040309436811662750021233056959689402840619476762254619536284003763367888179275874966233845399764380885233974472660219423218208852560988640275687453361989692955751541089310424510525929555276223592532146778003566037264346538150670175793362455732278144189183950944115740459541464739126680411535690399230681567364716459054126886846304584559033514387415138020024116958557732252495217947065593408938663844170178707575990481566960114826271299647987386888983314747771653352523294207509659467508343347543539870769548566228704885743906080924000770972084713128603071844511573469444772876114496172312932134357330454190444434692184152073464946878845353368314926375194332036918108183982507053986147281451328454002626498045002170720140458788205991265672524786258071225096895255702233778494976020690893430528231913965546420838110569924650628023825793595291635294062837329353675567858285748633756658473282464390273458377717515141347842991071804551401542757657800141631559411972691307675216299355990450613406338549799652977125786322342640145989161489806700629730366503225168565364069648906849499001876780201415001746666574106766701048681029852782668643144833866357492023776027848352792174208703894735959283354778963296060448245443279896331598819023669811037728635574391220152746367736965670667407320913162229811707386327904316330273253406701581620962648306739539760325978601210238940157182654836503060760980419665196945203302660920346000322412166684679263380516132474373378807175744676893585135309616052757485193283064315028806284586434077446268978871823336572564636877243737924822438471126653852058368523627544269927455209900048496646781037522790596835451254437822541345523348582808026984041887606457491377442935736812851151958335742605989397634640084030026538350814831875035878939522034481948628872212488369155955310773412520950465283959083613371339563563595239997335296860263284676854762250097960933993788734363412107771826747180964422645505224872875426188061568779629762174180538220906683801680053504588134886285806587892480856715412675999244523155520092354290002932666809529444938133281200063862119684650030180519871945770292597983605543485329182201207336486438265390582690310080359412241896323100515741283412960883607238466094869026180699483847258598494116433072019262966627166755628770956800200373237203532606101369963847189238935330302939511725226087102324054491310282105886484332642298415923801895757624125619953718739312410027943547275349576808824176066894719892475333820127084869003594680355446932107059227128343964062870961564635848936686665101368887149817557222736241454631764160145459589070793861137119535668416256968824069795479347731433060011799397376497543180666330081165142242152678929540689861048514814021025312247760454613086029031661676442161300162227176088265341044615567179738023941586967529254196739813872467063253900642097557617771816942820836177472804307266028609669258477679637470300906416762148932261793681289554818027017759119095406661941456879981978434407825047322283348586706250564067190686131916248014708815238179942535838907322716711323475795755855611067086329609622459852142512230691537339421639867241117333823805494366982078518433359144358100256699857038808851265475529554348102729620938144988557694232589362492983472637881082330677763573099565925862743101168391494425905931984013386417138342060935728694759890215211760782920828208131647923230637889826797339452240418544665942582516872900771278444287394023881828230424219228182060483179120590547455618723005450129665516037526676458715805158105433681476025168168448320331381597141594321454896113536377363316274978925495133010248352797930175985188201989443528843281031354023181929277654385125583666637354693184705676538284114254983727119454130401759236738429937451571581954347821424117034570748709006882829161830900022885749736442885627046994177016899020488449982346784518217293966133238791044514872290097545219550430892202385719841879320933889441373528192418024333596055918339098847396991462639858832448498117154098289590593079010214081238582648810386524508803939704528576931215694035832249032393468855440383512957852547422376231567578130628928222173446960804203193082003750139819626137560930219239025387054779299977186231313773620586049217282173092937979163125615830878914175565482846973308630239723892019817857304816940756440232934793767094160893020279615829260581853301834857112549951646101483193023147738256651204318000674604267335253940919298307978337381655690939910942427211226918908533988264383969387669107215745904552210123458702756898232729346895794692118782267690586052191869097291940861297064282087310229809353227631057119430994206345267652436355444793222536529546905431583812058657438674633052359041184313498358502770754983970985411348529065664677781118467344433475926154915694446787545829807267048832851442511405417718620735890784390627649581855786790383962481776197808204653133368785036449519181873944120075163370492105027556389416038547810694281407383887629289734547578133234903151925055933660689003078251274427618690155622036776236320056658221755185615850617505314785636224105528901434692303107907078695707696104947284435452522731452850645385399489249833953318817368087125630525357266621665738921285502204838109573159619671264254797071498294012068783784963164683797997215141898374059937326034824508972785101367044571413531400182720045119557981796863161488997129161140759881705923520634820881550891930179347105625500621666010104062695502887068487135269807575769790271366374193037814877783782695475566840012326641794584446846693680703302943796518123471680776688276702223611358239042756855516611541692136329632325533197794082488004100152611886923430033313353185127950876285787766594211718287670423423662503928103676805858421244912696175790444172595243792407583574853365036095856695589818293435664851474737228046075617598609607505823838392095449233219615377996523520566302527544840054033148374257552627500249794733196410695196871433807410697297965514069866670783917924449443260288467341553006876971808960989375153240471245156616678439935963269044052944107924262773238866590503320151605703877271452296285106857156372256973056130586068743674784271770212718663024136133462952608849816910275002386218376457474836744609055619888490847667779036120876718632995760954923065755392211680030091050306564063108860360632711174861912424014519105744715854824042642788962445449184461032224787921303851676217986959097636959960018474826748599809844510852089474893004945112706755187225929089106814641572794856569785522402354071842236940525450833848653681893975498667046113057562013721601023307274019144887091383388595486659537935584688488788083889855538834876669178562391993511487291259516016977747683837552529405550778278660180712179067839570879463851346983778628531113586535215890756352940789258498665664902743260733630995568973287674842204088845140910072974257374474095070743414603283164005482867224856824221881752914422515099357067144703294349680294368993901144177886659576266231675648180268265822697397304784841012050524947919506737407486691516017640834499261183896039458989865342866646494540521639041078500449494244637214024031226223057978173569915231550807808067077680525737587337126777423772321405473810364548987377296817621092824201014258678726715246271515438148411592296109713921369061989440353066329486478049539545568537245496454746704979489685271956911621252804746082601454283879242708385441822851214410472469408290378573741134991292067189063289469198338383021783110743115811033770149020034882687633672212970366021996655519699992536868263266748098536539368775518363078511625881914450489636273617198638162943287790433399928492764015064027782476153057618372682907409213965380068427256050213157351541933102440342962101595772808170954556211133202848936471327937477989376479897215639067885635060867525834630792174441147827054215959369706558248685302740788744103779131643785494512097366980928062344448276893544168629769765351792581314754641975378367640517108877696152570189050741717917197045653564081639321024858935143276344723481089564669804067464950050417902144967451265081623640654543035261544846460885506857178169497838100064692073046426350076405244234591840536832270269250528480916374238666721162060433758514593914920346972673401282935295897650056090700020306608103153923516302382942385641575500506730091839773869329628540529072946298613503005386602541398404903157741460408666054514163382618720414790030192034696168079387594555811237999182765181691294483878187852966476214031690551185937440461196923851122277493328672070200505604500636763311644364603108044852121575453558408421561908292659340622373447474835477877573313865528307202683186907906768475041798514378904463005931200299678531396359654041982229714285971663280459527023006815152114458898959065256380536202033645233914330621676823898442460915038977333112323897335399168629447756104973625121366644968018072363264458075662375793241472558902205227299368248139318045028975403587575074908996027224887460961173016520800792954042509247428658732688096771730532692273383389931849583652738460623530202172435072650185294800003749821234771204721159692518323236844635141645025557733642559480612307253181590099082599805381179220332471432423335638000647023239830663405258112277773103861420041557209258833317193150691768777187629601382325558839397322784224044164393999127377002528163849147975896120900857668222050957661962813463422938048434705823762434452491318584039346832021306466405460334462752112494275076700890895830890519035848242131494925599798947064086125526166754524617152166223477087558651260588709542469162172600932023108491163394997432373968043698879516790643501484343967193714538480643534250710483051426665127426770255635690649368055483443387612611304839961622256226173101854327940897144893800958195923146182955849580940556090354624423295828337582397636876932810794211097347992073494615867381504102636911268715171439102935211252158766839298024514657230082584317861788875218399631399605820425787550010328432664863849738005561598688647960363863137423582948428761054346984743332229278592508889219778510326947310665409357980878966423952522515726566801403352535933354987284149691822706031690564326381880443570361100384186202322039413953053595689528203517869102272000336673263980170379439680755969957885473832900821055482075926919194529778023211270619620228146725906497667913700761612633098803373495456419524519024846677656693351425373854815700921874093538381530934744887878564897194863059254045832642498205868306563573166871337269128792347622056538306596197024692249975383261925516821038952689799742556907330306082816430607988268311181441079379363878127074230921583338402088212571373093811023224199178253849896542594471891644216783820965374840358512002293863310830413639594274767326565042587304708991609861244476956498666468698653204531944566934415973257572214829539174902785878012228154179954003179282070918191284032513085488273897198548518338237043931117193589841381532072569234545901739717443024720878399570635603777596737629162267963625978490592078078796870735450791914751892853374341797676683293580732525160502528634765021961357014818809872783908963812823130962439490590467888872272158657352992065421528726412870649248667779116739952695186415984900944440260350267644247043230592480990729264214393156984461379484849305869999448619161749323391932634095543832621497301518244444177644502374366818828286344705100376982692465363006975528026661924531177987446820730470625779983134235979912472791126836642259269656996695557611161768962208064550746944537774758152580429385221873561815658291949923536487225629776757067605565791146208133899334009141280566423843597303691136948002386264628890957888250718578367787965215638133270753350509665134095663777794239534280068890488946355367625577808513661253642570583931962093446482780987228767005334812955790973213029025632151422637248482952165535559454521037800529155917549359534501348179546790859616808850872713141447045745122061023098548799627246475991420186568527111084920883525139776570338048358632887561681422607865171916243941767322856428580912760110679709770911042369713333938842673903990601295359478067339233658625830342770685086598726232876932100643923468380370010173890351423260955342757647949270059188245426339086922819943865428518873357041192516758877970386731582642957163297240790695329841008128145503653222569126922776700467573181065862722991857442379478363452282846674037323733211256834666888468295583725458468867561360618936708576719320888120970483471802086538917787977816851550171000463699222630353024001308613431290281357982159235035116146468660115290545322275246872736535671715965172171207086641832960489276780077501879457459147386065862606024027461065983279479062934268266904015861417650729324282450310343758717691116439671515581410810588187707668353681413519572230042091568308933513041763030997182293195841811221268488117623430167460410176491998276171944633028904305263878210183719369114572349339666477427146587307450503140738730494021576827400975867332925858320858177168399928472624590956108401555869848678859113798881364642101267834271129583172696831015864597918408746650561188644141447208439020962947085507262191443232428452236991751978698916297377900090769967714356216973171683311982735643938748281280791063133805007461142842588498708657733324708034551580719642677195282852327343131979863045200322401742778630613428130513855678254673401930385605314934157679982032088233856551042713987845441309471308197880493847870528799864897058422008681227293342121429622717761600468754480570424781280595437914338602693346629133441877605533804073948446698198972860144388621530952692197261471683233758093876774428860102487788518303172386299375958889526787520229085713767010893644579566071637893109476839768262044397638046759139111167510297977090264840460159612139919393110217647256612174825215962699270973996768294866930968661431548835044583678284924497781076814400216859277030042024518260489123428820827414875837993148097118911612967311729791009196185509518257060976275114553175405434625911434430318986090721706604179644708482775291171945041297772384371283653219234189407061388448059572734950703143321161698937816068348011369559616274589605209807863244937727172690080100926339979018003426414646822057198611828330769472797227193251751121171454139007985789772523288151418448305315799111126452278144543156869354593306047235857256409042596277233696535609698355604024572814324987256744495933401420998356962786786615363463732774144020541815878328386346034062012022000095483340241855059752625421220213719962665071166268788133195340303391007224547587459824165211641956250153229523872506055098642564608108164451135346585448948681388914449842701924412795383718691138547194241057976276394144260112716909451529675022990094897482907843799095717118002021228616369737083476219085927377265726148794669124778334028982057952305453418435765788138445430635184502794725397511361831844457247439062984287458152640202831493038978958737055421616645354186561318300947981558273447708229532038262295127540070291479748577145327329306746778656478960426421449788237234498538592618074659252008142167507167442811335935311852047571103807854069122056140973355098865289115210183668026753757042073320868135807008396745836420965274171540726836805741004847277884675986428648765788562793741730971128893505522539302856366345954186482852099321803577864624500612731906104684623568586687302703079402594414797130450956940521352840070448353392314030092443834617394861021585427085292536352076043727341661827266472168134129982170990607551691612375445886136485553075228544614444788285002368099468818399423196888576131273002644371176136797296579879284174101575414718716069973257109035781366072958495579916315986477676761970672792788902584880111756524171568145133113758707933410850869711287228668194460936418415898865085008809478508488297548165420978315761283946809304411354754246854804384463094082465714025706735529830392146893196205953338207299168177424350611315877125596944739223517617475321606694501509879304488105283393508307969329098243867195500032791541761194502869041160348335632595932689890505428622015801935749281645610688568711703932493633389720192253983031243140119621259440550672841629881606839214195576463167283483275570297729167876529956907042207551647957352412757636625869451676280959381165761281486821771455556258907951415491109320976876989951989685559377271947096182585590357118999305696423696425776432592070308475946123990587810889335779867361381111260114232265546803404924664474856646093451977239506768764516205082947971215831193698369161641302002462704295373741461942846588896664868793150342800036987648609407180387571452030423992967096263319548636927996403847719872951007893064456737243225526878436464906966744365316151036239232951688244280087974134939813228500960722000032692674585307834171752078072876473047257452995435722384920425893414162515188974085663652475445551647266505687810276175754868310633231006795517557023582516042091086676316935065940930684401869429855727792343202440580505228800687182803402981640030448311334745516653788179005432628005724458692096769162504051879336046959077403212566434039377232919606586703594895772991309795863510171513066185623675564801376376286914635503711069138380949499386075061344709846128424413741027737909609946030808598001934231610402446308612943385559650464804543395772808602682352311658156017842272920065939074051790631121834071442737873509734663579773271219953686546191565992743186633009053736991087041696307270364488295533933151065765212635630992938531732962003578536630258610091488160767306585124438107014851442713971941089777115826355207995277998406038680526555124295151320500710200181450617017118496906290522287274956963369282696381619030990423363156905769119357367702787109606546604269369479621688932373161496784136482919441314959621235641212195311602348248584020738913696671159983333839880458776714460596604173706249476290806375510114948470346924952377032811441723523172765268240928662966379492882601045053726650592783003641546021911566658998199322912871913284915761451064191324374065376580928663501475241700953426567962686886396301477790295290180208670525645715658669622598402227817735849837753535319071162409511386369303727732449087648671022200834495015696473950892235428857595822659187635623121135978948100821482039098321868523234526055803349267933566422617438028657714372505756910458038088476292881080474571136760413662939739407677005724313004727891378279735623696213308510232890653530669720414200759931898061576324912714320553532966518593709109386206035736194133803883532609581021394444815472141132849373712535773887633411811832537908737811102991205891177475378111418184294585208595104503289001359070230201244374180117071706161322442449955857488374074668960207658382019575236953022189533902695121339019219377014857172551309513039398263719197342382113237842857832083377502584741682718819775737008147210039037861539718739330456531797027880171270903045694919812607273799113931887244860605781508570577046550450419326869627406979855502372329361755427461025668785343516501408368395431546567819937597941122580715432302379677988108918656147211681790740984701845399583495840229445888015899701387715195366805453136385602929695330522919139601588892454070342673535239138199730536811872522868451876937017489897469057059543764623261639453966528202251570801044693664101858053375022062531078200676450327948961633506972523775713489183832052281412179092512936562994719015781745532631101759666437749552974158454217134074651074563950325645843702898310946029988019720657482926680025891320452599287210679379180632176906622830678798107838959729083706520435074904756482329173252781566792579832662624462951051921878621837127875725811516078816086359629132840078757693734740413597435884455225092467719539060928838265636658478875966390431471731173309619350799219563151517390801560145494227599847674249394824692633117608678195494108183957397436776059463501817995811120310891589183759351338031138061636705940937959216595309497584560024215487470731158476079245075034059919484778439465576116851712457482053142798620775691302536224158794149018419934328652658008089401872699229863848356074734527376779697092078557738662722228553544332333788728611312988557090768338376780499280026838626281169960107518564772775773522876333288972078107313811086000564106558861062806726420481483328398906807661895870483819192895041351264270389323028977137397634863625397999590988708060929788205189930358896714370226436259356222291633509452843077588523606828232671450116590755477060899211041133806874435151559554487213430563397039830177385069902148742077547596202881057912222348396400919425930562926512881137944215775131155564453099516777870959263461501168650642766184261128521313671749160143129637289091369233795858140897263070166558110678748694604156299469408244031874372306562077092780885084486103226792081857173829835471056617871407935744239424087371496633923949540534879406862743767794334022637189229114510126541127418848665371747967810413091475473058665766972393415054981109281630085587763449132348187404290861640539694784731752987168883926999451653801910705295315373850759576892351968433978248499886294790607440986093530212775898471934206478421759212279068093217381308619709182614454135106163793899749111032145039169685237057155602534125532662829522836028252307942691739390984216580159252526641464873888142312145591751296753509037591223297011172262167675811732684054599081088710759674096951036161614188742033995669827223750740487212766865430895787483830933015704911426507438562498579475160219846491745842731843737602925915232758683223611376462590252166145291074960727112404707309055369268360317455285572320710521911069141084701801674774029287630877564254089466663464921140174878988902418461844418593803114558271515725500730135165395913873651253549638935550449967285685244527902735331901400499284539083834856144052822339905932175661636953274607120431583024368864403661896975891956126296276331657379188893735052815106918656907435773050262954912245302515619671938397228291982044502086162746947053092463740833434496676312149151648303390972263660988567058806315439680237142425240103126309119256312586265643391643948134309459140486392518624985411448853067216061899292703833109289507886658347981304804439969773860759291689521185176406538433385507965830469667130494056179207189523246705311210533132639869333814330059130902670566644995482318042000379510408562459864809739274401548121914076928250078244606106317446621848050705240473703698598418436068760721040130783492066384075467078737734020762804119903984208933836184679274490224077626409135572233770155158474975233032312034615742124421838676266008614979690879398007216558154276802281359506253873166021234729847613766492696369711947148502027849169117635211579444709400901723840043495463501316271995273739560383680698852641800760553972265363306006769565954818468546126853160062857910875620015209901816483221527218129953065647727494420128385193700749053161954040225870498658207715766058457494410415522972255064293356746453134173018050164390871905724601657375343440287896141492742116506795046558452433949580235669074504550202143555726823329269944249960290837447444024981678491840224957982277673572342346526848581242008971378541109743442921106232543366536975617031899266814375096312322685084580591847880952344094646012830343828081143158511364393369537434212686974323389025324334285522936596546002606312628121434947173129777624893925992369048313031607164454956610316841639470909178855693136321757789028901654586540013314612558890731015354183777313723137853017300542603342082963779819661137174745406824537693346146059445632894357284147584228197097311693286035225592706342088806066209489745982223964007014492866464556007176239952381215590442226315020310543013174021546162697722842368516418095250830872488424051759557446426056194160108171840048420046674839302296278103761174930424918027075164888285888338519412214689611166978213082710023782554314708798980628025100859481686079491822132777870169759166660602022112102356738438352379183541090891526613222606311056294961135938397903545291888209369290696002885543456117657698846393958487775624014687309051825313590722985131848919939612055056710617080295151540716692240652572340726448890032128158170125452948627549346119452022585422658718505819942564245598305099568893376716231688229925391825138873942045507725185301753490420645412067274107364757561588113958864066210968679959389652665811466281317126806982321148271608814588796574887504337933178444665757619272050053006506692265465291454571467995419979143976783679857405634064066359873347525135982026287412683779763115675708247976779599146661761432964482240366791579336841632495785623371207802427779933132167992685930591445847223396861409554283395188016673074828466132700026186504967792126550721609022928742797256987616819837074613725692733214662033099986228027242059010729560323264835949329008546682484706446836794924110616133581373913128729066841957827122056612168696824625601936865931331123072180361797852410392461806441407274722932954955520554346275478582052455636977573001347235124620002333894891958982866714219674245735586862367038661121543572431433980674427344504361813960946189683097956516097521598875297027237354941452531932837143194991121526705665501482328667825800022213675863717937675181738265482750830462507495122003923007832628862492301610188682394519035646484255407696483686614753739970159776362680002145916896129508129836442083356376014609834132325852629068147541748554668372720325500165243733003830133665688828958232705251141548852828542424100529282947460174899367477839853636844568979480851301122619653134633527393867009512380187311717368523218486837705023344712704426636060054096827313856135986474101671789179013424070767083713146085403296645111797435246632868671015043278632394285838455551264311046564373645367303130726907276066194102440496064655113684376089157950520908441433310754799223165083043711988262246587224470619940358029069316217704079276496899969892875762297228080128066244817358070083079602072358738638238263827534619446256607173806773536655626554902338888862620360390076018558954985343435486423791119336660794502993742340618028709234597005587628146188563597628725009502866968922993006478532563692891975485204282473690570089490239131584633520996633267470420359411289685548283749725855152241553715998597670621651170270877306310035300583881559272783988070592420825133248402125793667920155678730821023823413248732697335264195460179781348091788776240223771969613918124937643044730619098026341501284983988166654983794058561298514095424908723703322077453994701142315634037807188681927082635049544765076546137850854730258999464186401335925230529283150741362099350328704008569104767332552395246215031161656991776113023488739590757536507197323273542012435035556343486685304905475785541893987031206819599056381416766266362319951702435583446087712180994191843567345367945922046258713732186829186394662200836585458494267125783035257389911335463204811778383954652354630450083757182170562925028434427916604678596101491831345629592720393053922606753730976037620398052254887376765039247334255785965238176954093620314133088662195556145863207865583990654934068025467948612619757533847043834155850748084279486672582702137454726384972108725000773676766688593133091270491391982887989006074367101052366000719782539945760603208254567874757122004015666244615935989883016932912406536277330772036901386075492361611167839937981706115580716638557811660545542698262786555530844551933635582474851796412261285062505229476600184211676530919066184225000628472543093543158724516404135750381710538138583564692414352859208026778353017146192789726297024093837534975651560443852268420866152765627610115550802994456466292115697145204647070830146211459283863786730624512969997126325079447425584832889763182798227395638080453239600775119289025578941039649075637291260396073582307186367903284495922692509556146354888123921099252849130227474345419407423175944744556286483482297148927486059452905371752188270644243107856045096226983189006768614774275799201312163376270229567858273815840404854836084913562505021814128274979153106235823483557840794355387529887127516528010637607441258971830496359667576944472151839251233544774525264331365153929909583727528289525834567832617400430437726116759880299618119364582126899833354193320207908619997423284555096560461614886743712055074567241092824697906604139423605186108704295407934199185097606575332774236465433333881344540380256374652394843277748128617843155643280888287894460933000382643243576989441318036947430094526191170949486823558983573894596404919722657980147994699135570199632042532412223678198722007523796584442900216854680114625489976041336091416479977891620490323524336329295110489348605479021148491971262411225191551099529302523910407845808621543879255513885583550592260567469332655748168589195729889270088369627385219422667668457343766897681994909240483027019698414470726265587340792262125869619097136776054282091601164603311109904522873676916676910993125007291829067494787487751238258428581162946716146089187141523612867082864089983130521371110647978788878354575968572500758650615482506160937360432680120008166687263641311310505055402966367673565497605393544337407032687073643955833122806052320017105791972674766674137541997290282748066051155688748620476607799292778959173830774975322027994451329361717385946407482208570742331053715214895660245689907559225400204689744610678507925525489274931290817578136033313277689339665679941253139464585064403547708309982342023585673942057055828440818989101783120405758282836066047538359445616498564333560404931027778684753154416915986182310589161130644533133134852031855150790751421677875664015331998749723729268787346324512029019622227997446283788855161653895095650788374390053469432839551135381412986572885513650879171818638495081647268731299203132553425592840861640966618656476471027296330464660224386750716440655756203558731000053872993980320533295693128595546753680487729588310814790544997577684482134921563044206847678206312475755562590929356263563227368972799225825821644162012597797804406303211576525184417072069434265591782319293993370182229281615337140437074016583199266894681718610451579094593360843752452116426656354092773773059957689143638979028135798314022186460887674123880754235237129308060757962506100495444728023606164511081108435807607797711757485180933262911023054495878843247078891662770096884483475370440792343080101385455703536362517676454541084820249821651099753317474661834027827091940032001554465132920185204275966574757542910639419131067680680479301203954610829904762695603762724338689135907325860888765882903949308567412775025825064475992493350171102637856159019965815283425847058861595333071785867924179294926385899570111637091692833210141147135671690070088334466533002355729309973464596856176036210586900969005167396473004449573095013425867394474205583724644844213157924421348561878920841008053901173321531862710901334684676694146473000642067279357634318913841721831288034002349115991050724004735402321290595189950419082110795369135778590450912885898175588643713568932914984597507742278700525398416255227064268259593731063578211876219888932073580651834614354484236283277820580586338763935110786393953495941252269044764852350753416642509985870160731699383486581441389746037599125942007820732262690422973310108174476111331149114537888300620507371968419872865906193612172260167050340505824026687054540432451988151147599786020022891086102806569792380223677870389768126637417895783672388096922572151055885388942835185140506519896135690492773760085509131358919448044677486045095143580578952775961851076694672598503147228880228305815335167229548224615373403797981840454101619007868446848544079547834401908909038247359210182679656775939676766592747737381250790003003158337414924469643095640147053236594232985860614542825657954780674992385823393906642023198039725757981554276448585163467291111425394306239086180318615003304297687545017280221260531130459517191601429625427459184619426964640099573081264270278795751311811456183192052973548306728465929884517553591965686640408552372474929763381979482039922563887730276465657194923255869617218929822701131769062512468024166795607053511853478394965457560854510698304323613116987603326273706744812069367600182431559185391771924976943019328677391720691136723454441364786804751872583570606786247013566496845280578673506164017671851568103289048616160088652846356790392361451182049904696606686242689812351357129831233561361966283010311206617293185177946290497034972527923982045892568422004544746543486850108187504699047329680691915050870790982934987575721238365687790936445164194287645455221400599316423320254365907901581187887491706643807277686911798092473048574458844127636491614449207531328917463605709974409312977737963823668659780528786227587095836621696808397639364583936346381434321969975792638488542279069584986636759946907632139629933140896447633287810815889339548044115974438265889215352992533769875371206239725161712518877958081160362626298654233214442735419596226405131131611674192681346703851434741690689286489196470021504506324864722520174605870802718881533065519500054480203185388162747009773888310435766867089055086157301413761181755459442257710453354805883354794518545835579297650108696260824623359570075249706651830411391929149851492611141140722737419673182842085532591767329415148298472325183413230326955841924152143105348238118789054773041322559219826331605741561524639590379408863240880996000278348427384490817982374703001019628896234657224202012001595739495956647421794652981889449272040989500574976683559296585233514618598980597707510585590784586215612661786649262930618243592875787582569438120174044668955378937934718633303556676790625542454348617579558295424279058577348674874729291855118573033459720950071042246460778083326741810580572219615767558909186585836783140831714467083831572584429452922376649284259127956484315924204925524450734407640056532472569851244560521214459520341296715062484568309274139400645028284282564997240153083352520032419579357824095504528360949208284521417407051847389022413077079665417708738293451547803460651051065583700207737675788705505823159899354166495993877656411931176402443406313789051749466039753288977283233458215307117402414279214843940575826601532010084238306420702982126906601354663247795804348107878017211738109678683743461703196578391364710839624117464675845684941723029340647698987271206295163826742874599631042119385722019958378933072495662880764201109068900879182735293580154018811129061166696635693408462891136003341691554345202538443995853424208865417506994687257032685429051293538849579051153276871351370093929946403331513521412629460288818710106865145675191363951756849694311306729136327741156189037001872520395177447160735724002325287934233102188026973831063735475180629295372262398467996484149142747901966811005877120233053390390472085822879282790541018820896304522081786374083883395167563942007280577465611271150201579232118453716442222697200903510036400908531122328371512255625193469974353555359408547189588253384289587683261636838684333988240007086071667936608038491243368049141671611588322487319764013806384056819354906491467917858601383834978352043599334787225911952693476995776045727878685558381461916064790950038662114646974742801314939377930924015827877755829842539473949954543131749575840513839104430336835237502216572074631271298020736646454347893840026296350392460962906928631119115017869342032950026649920643180695080673923189437771131478313522175462819293001620804153729271677209555765813895372422270577690757267567541711353468273795473387208313123130055777367364234740515523744764906944726205090153083194344150579015241267461078222385138457180317392073259602764995695326577210830012876885035795868988802857124806554564272762566187561138325513005838014889404933901178794998740507983959209321292808304390416873994110249882124499874230015445646438321885506199092484730801940282468730857176716606923196901058046884305070294168647031336034599869174995926205600622514609878514746245473394508887044752413319468880116165104771218143854891148842263676316980175436175747319950469943307216916341458609853951619858894859196772398709416758765606111050322923872525269896170556009778051819608621943190844476501912230051111346955479265609948332072975553193646063054473636055021316465917052129235670398055502626641566113109422816842695899270897680198098059410331577094314532018898076853046997648982416389994715077672963756464872086824480026164289401656923058554139114172436418721466313913940116294138318299055321209017859916808579666883410984636112471869800582794089357001461522356600521080833559102101408200102988996103268407753768677009630467554646247972168487789685905054583085652344879278249914454541988435975764853713658544421688386737811186847085168931844552450397057497552482664592975459390153004907413806081562556440051938398344300329799766801905499554289533133747033224439770084959966577316450189984624538733606544956040990642724972778667003249469893175361471368282324096551041029500579713718200499727345154406111349201413097212240523503535102886158883038218115368365149420088831336989091399832579478408664803046449151473107662067224012287752618589979536001298455185121681417085054199874619425606705358413441735696678076782223521658182109154395552789131918120324223091967506092458554974300286408153401618543751332316577308244347832166006652404496352371735118341797466113511026808269653084594426741858098866403075338782493623744601376375339303267338393891448553016129570204058674514183921858772183619548217153197745123863237503336211073549237174315362769878410205903609373111557027199777125222598895071983033724365735523192989055144111872448468925339270419064709956791776911642943577609317432173230125946399416910079677423366371460276054410020566599239678908456929067129471986567193509221032563859666429855066196587130819266080770800166257411839983915073647831888673708270656534421779651459179392795459757739706691424951225283863824263796309146821415585079731393541884329680139058898476182508880173744749988163606618452957764268701961375511100552378545782500775127244280268166815170980712126623034740499212752446527369898106388965480483363054596713567052450941187138938630825715069429126837357437916659376446233127121182495493169520556208892001919890857202035190736165741006166032769308810707164368956840079599060885824362557452038803159548928350117004981661694845851256221174257562759958564259162246415583682549483467764606941918567853716308114069093619882694895043126768672679275429698028262268032291771101801546502622186979389432270831981493611693257723608471563927441283175167300572119960085147459850038417585768060836946422711918982962690492248857478148355617302882558948469226980176084133868522729895096533333616368099121067638234305321370690281322311106510999447697349993450478843847282896466161874017143086321045346203316006225222089796516211068738178689926713178272195739317906242257190654373824810574432110979478382586191864517778140445898716848216622728772169140814870987246901460321868810670400167740570581832150394334842002057589307027626420860559916506422281421287978737293198596503693938807885038510025035231272815952048713287191416133875123871952810175448784492857373733077709670362996984318477232577684136182501747988331622194519009464118589867433058241091245392613581558243410231555531149746302575821069485133309825185700763958691069591690048948192030228155547221338840119939246037775852866373593791773383496519552784775313486737912634629253037333514287986928643930471335158722014059941832171045128666639809295530404083002670339020160574820841236435559531980594425712135701355418812271174865580033438966194911447450988555199535667210294517463677319512940766989808867603582003127240790108472877560609297442537842926785908419677454471351977309252128140466396581165815907025484283494119178341885283827667038396726392045506617456990347718056600074194235779505944450117248528233367483741086270646799737701809295201419569189466974550673048850832067860822496439977145080692980740050607216315863093034980259848433610638692132270225965907986805401923983931974648267267622706360782530555239258730335459022713490089755011066674624336211973449366773437171749137549770344235011715177165076088677774595014971489350107803677156454224974515112474287421994423158434096081272824232894124994041095051832505594643871506146690135542566654679037404412358829365041520566510314739992730313466949205046473326213619115249895067595170781839397186168588239911533318638037743318864680904898531369710554871058319686418375112314625013268753352276042133202080178313326532371557966951130642596417554784195678718444805555648388067812942666543931391704671477652506962328471925211564801370617983388513005185435401079130205159217662634913239071536960311614053829724327568610753319114374934037797378600715859542066520724667754782776492508211390108805133411595803474533526490282212958283911739707406109591832682692697436612682355580509769924946654081764721840890752450777511563382872619574634982656646591841849946568512192810062192691752801629960677757807562020695107567847415208787027150644990455546188460161568653459151453487180958815244898930480183801389863780568257810344289166404563497727057633797172653587335500077493218352872990440669568864146578006587446527696200364413046642084586630295901358299526069603749482543829731761593914292655082881552946242988269702196513225931019295749842535072736719314307531216781572572498194712648397439978253767389825447581433145975723111385292168730543683312097150752963594887531498041154738264490529352578049136766831257084226483658191765033600499140769056343015503717215791761348366461726952965062330611566793766531676262540314722148584993766541612692224865925383477810620565287297297682467640215123244153261686641947752049847682506992809778372228121708796203070515122756958892367084228028026592692214539484451169533411632603553935450430411127635783001145807581235544157747912809794061410660374277132607970082609812912628269292052280641568086587832052858023380880429001012565503745826897036331542264440659849568083782720664165143834916538411414726844701745878254392626442334783018534636508739602187622276670664279008476960579292687222724763430276933569342918590081136503973869059891542071717185541045165414473316214394975561169781694649022825284329879164093335312178849161112446156396735634209731463992371690096390843976464422261222688036501803846481589176338860731829169363287395256882880017944289009486351536351747392430693786230710074318166227766441124972996897823529775346616187402046598529437599815382643787662069061896617888325427659089445153836350819360463068783002576415865478528079652871898973271564669587528323966373613720319534672878033790763219343601308740314123146682261731184838277115904237340227715940229559257763176563660716966178851732662183678951578209223447345550377614181506109025893107586030696897178215111003861919309596408693418581121735793187938049055679836879534949179551402850779532382033287150802299089871820019672645234237035812607549457272954724996039661248581800889879545188664906966630820800411134652782096640034097214641506601248864496849448426013251246311203547460382579464377334298851946153790553802908217574174537615982219455421653106876371477275330380552921670340646094039827540518676890600641382188570853800083892162650885114502092761666472312797207781199434042529976436113942221338936002331890041847250111156307662382817861828027503806465298127583911530862726712784980389996916889429399414486933858262192881604717625966781290136377495132393656156540790207490502145409624526306307562627281920199528981976940117766269467909502718557115449549556767351314231918462879417112322990053113807231797146808722728464657207268180266694966179734102769670399628156900706852791659584023186845641844102770621900803451628972286691950135022164578419882744081188446713713087049603502274128009656647787739737587385038794409083794901588112377718744467472516382417453539346499343417632006658004479384714901226061698022335069709689730232146015084679408267972438962201318709139942950707139381825543905836952926310376844689092138309084318277887379607612280187712499413715422333158694861435820405237129826713919098205826815135301049306068833866749032646517310234645819466976214321375181816882627054882173404515802226999411956319848426326123385873592923431679939412508925791417735308860717132841844248983935967532199594617219323399919271579000210635253712017966855221120334865195341552425122407983923212255609485302615441162157227148573033498019696604821352340752862657544252855402831307019300686033880792262216415036413833292346954639281747023911346759889040177213367624143392662059362945052944266062456091140098547674072020853951502473225157083216815676908269013115615798310589221982563468984967911444170686444511205305652430011620678291104558046442230035092237342562900962168432256964128578043997422465628604190173088285368297758035570546378774889655107569789999564626796246938308469497140209290760941048553960396204291079795237700011047423377475822384563001699208197060599473818198326189588644137395413643952362607092159520243056177848747459511314293538585871010146869234522500548040404908185159173629793586860447954695316285119427215011799972113496958003708270913423756104890997346397175399662616020110650271996303780616233831536213612939265344812331721481382892727032686891332581456280916936790965174313926539712112671282436790471187815905426142329264155214154408779614099235991070682390144607148106178479858027424589557114118886459867261892473506178870781098806354542498979553818317535614425862908353536006427669080456847891247179619833628341647552347853336320323934174915817073505441756469753542808939173181286368126765233269428432977308023465489314510875402660540679913024605408269373125681331221971940308021087343606986524471110967999635087341971141729638669621979098955809577031248086515442801161450246536280387686373932742878744852581446725738316879298997433297688455696407571218629804779960188842121147892686804750842782542348186258066086656915349084423066066237739106457363680613057753976499026197726096818938724014904773898865590018592753874646651887766904025503518308208561716365302954698482466344928992992339324491710296200552030720331446044829994831321163697601929960385086441838283934350872773695829260306474481574927145371852448841867887238191940049577743918177913685574313077075905715710373380829949695297199480007432812457561384983260814012548622686209886115854618462893965341218352300078384460503938413848554040085084280196050518568099651131617866375518381810748024836094199424203841283301016134728159426603452948954870390591356076469357885966103086214260331244429238027792902580566040804780515207783511092631462666823930113963785000857945835233719161254811678760049160814711926222609528711410425422935862093564235740167238511908946623287632551154395422605757482641878778076348862936531657937651251656502023510861420690257804707099799878571242440851685467863297186090155322724205581556691955923271194436043925616861800268889964387626875634422922822804167988902410460692877402910252995166392252133389615044270931133520592920563941937612927009277846558097717535072875632780099213785420175760690025529889774739512675296665958855086937277566503204098768211426782628028112532708491231889420245107818576310126583320088787022526691060589196289965214762039858012427700258990404811330366385980468151807613984829393735404875708504358309249722009646299383013253397533293944400956131797579491948204112075239712036547540643408062387766890127693574813401711022989392432448744823171587992956951498971972003769001163323334510918944739876355854672441497827385365082091178654328969010647830706714057287961183435260923685060042907348716508672506705000136296357075037976283407660001368636637704560293467287770099942422387249938478185848157545921036115643214390577748713409569888672048144535608143460695178738848066495947733974323143546213185000665125177238387475710529809977984378240659699317874558637698682044395607997149960087342380899399875541481636261665942474306064193284248369183237725693022597735541791668168791171556690577348982765067522601915396223975340645001447187691093630590272411222540636049361899167915356550857028362338838068508639722426088691494631300114101317551273769747629282208033179023116074277285724832866282765699879224908824584068150862052909267890552674148601257338135524046083874901408721984083744100507245397622917478898235950674439906541920542522666081020587240022815413549015675424943083099047041018581491205082981757245371342522565542860021919996713646056694548039446957070744730122481530771471018081317909288440222923611523579955195218603314749020475207661563479311585039786869814905754588088927231853585127856017128914269296849844791002106845352505217863189998533010913235018391608471032356799740681409071279008618141992654369401895136820334212434322120266748697634415823961787741938323992697604725361725783700783919386965473259390818259065829068539205155377060309352568640454652726295001574852619667205590739041308527618537943070801096232934412340513310908358785112470467173420655646763017479976847877166780709605062087501664696894825494360073309067820817254143683257167793899020670728505537087821660109043237665050654785939863671605590711043560958032160093156335009593554349367617420448034572870541084361296274750707326500089433105773128993176943463385167225216376417710068389968418347030415597305300530271387422575341545214668205207406706376713933992446699250554668712153600730868236105521678653237999985935091912631949000392094224049935981497240254589165217205980969684438050671294771712898080115134238600439704870961498162531296344035680575164747374988036320997158092422555771359676882712178188174848728047427243291410175419640973551753826664505425840322330167031822593761292789266500236933542817137308121006647241078306497109681226786657910331332232328702235468418301379629903078917056102826891121453619465535976206463898187339376514744826526317956742814514733381432779859446616696176331651437175052498760440267267391657160877860117689412054494276825150307452625711271633776594995190204818129573742776751495151306891961126974283678014748079941418303952074827177312811613163169721638254655729713594361055913332796687537529029790536513775248989283263379420366393326578955075073443717975260964656096989700193439025417124652526028326588948528077149441219956268793532372120742716768964058377724186113745037577577231016261477579699231789199709582219600179701576875464780135147954217927771967738860738955649850271475579513602250847608289904445996526374588684408768014469987265757263925040568805909251710053476567501949011638538954023940980490253023092725274040088986463604848688598309600836057013837940013656259907511263634710278620701574477866255635180362348063765377700724126876852975589142247882954439697323223311714543028969924287486630026741032655618188007529363096537706073247191346009933655649268064093102065040158833611741770686203877531128708975741519753855346537014394390053305751611398436433019814763114885715279315865503255203509030525214229676540307749007440377410429124043965944160697712128077763805986989286070860013919253288857901927957610526400909322780033934716238071113708944963282932564300613799406690760642032441616292908731819165216477864332044233249603321707073373950044837059482024685800350189322064262408149928026509994551263683798167761679892078634385299429262104371572979826480447695155020188321105451803843142152918463767299754218041415163135669771246839643355769543960506372267185343542380545936029767942856110613222980994475994455190001917075147740917567841152908823835995354077628175685991427289961778951204704307200450998500976424133266105323132161300721637696052056363933709369274549258161908251494984453160231922923916767918099134039002676571299120477212491991636532214194526294773999714416444799248687189218803076845284240995775242358365769579592916870951263062479122488852000097803403952317026502404116400451106429559030151943259673114976355905493394284242905612577454271101540530087820442960309794548532165338150902611068140036181436763476046262100618781866891304454232784578391982092874624621383183492563573902048626033805881983800457911559400651249341952842144494913106744820087160179310963471104347472490423553781255669635460312956440247673435695506090539985363239297323189221887050053141349760622304052748476805289929115141174714235761388586605925897035919151346177238608866224996926688564281039750191698501185720946167370351477260692190336024856463946236037340384127928816025107437360621858784106982158222755058563237310684610957491833304691015911663451964607697502792022613825125630281776164148286447033082765927689748131962409666725140714603578929374532313235713458273463430834960250572676650814914353827571887136940211010615906169514772813139199379185157799879985451589616572697767361555198628538851423615047990260402281333443886845407046340767861034365727643762724563536836719106957784303405707057801301540544908622442364146797241307517301054272335217051806482515354489753988314749734669429734880727327895814687277256692235405409615463378206788953046981826295520347141918322507671963634137198307496995816252810659207178907741643278710904505425973166788437420816287089397461948008660944310035536182266039873145657750471764293763928756812513308512632171149340902875415098139469633415617132217067777905408095187227312398819984863617451533764524013540578194049499090624121739942339293014081710737624169268738144175928653369885792269726188047888756680269063729626002776060805650315406984378876915062366933883892532741062552297812601979634469045261357011892463940088065538507656666538331546269592693306091064276087339205131193916331970066535461117829208909421544871295698205934786669574601613088442510760853213668092922766013952604150911052729919492761035560097319112757700121113475029810536975730274884661775649480826047873365005661822900354487017734326501769692829033902135356042045880123337232979679122249320569090831905190469884976187884419766161766218519474257884869093639603514346407943304242668848700663940856410280088714285108428984602812203528465232960083417778253492641089939018477852912745579607090965456088775845654753004858287567750873448516346656838965887151657422683555603702345404853497990379467859689041723586629446867981418357238556368331761537421766101213574154864226903532012497975569614399552578705617747822967974261405493620424916517527790189519920342944961147421959830101082007127474385446520659324900286282103027466225208297289401446063114351414370606881713530390303159242772013288387022166413200389749223199476002193529460906904392024032268623722155801749872759017711142701634448142963212738847022258763224522431057536156371131653518087790837268216900266893988445481566806560893047898825390892751062686447858608904512541653904393060366208245965246113554866939892092153740310212730916313707216394655148119403317407422379422314510247049064249015738775074084911911052015387505356036219484660738646516947295760890392455595450824054583494607660122098970656428821810168322121290442892551570797704812381072264342778821284943398641474728275733890729933312410292446697423159326935566166788676182221476791105058857669627207968689936037839740129380997429049560793717689211514077643874843896564222382209471380998272721950961363030141400915786775028490068813821925556828319776932350096685804521973023210311615140719384773079865680722101069682829575526460535355642130980404399893982385189149598144717469870223271420192710894605825533922377287693122080516442140998682813992537592849585175180079330769109050671102985421996850334126334912718128581967184461971194506880283070692774400083278013452209106872041603735035269302811232906929380344730454370351375025353431534307254595838588444544296776191511281955510713919846758824065777955848370697381082624492193626780909659319239519640278339339395307117069837376186694118834609831939256736951482052373465250374693402918977017323780946683002925317183067004330495984070078628742981639036996306210195133901687053487681842191685803024880742980415755664288527115781831781787847450105955149510948318375209482926194383683232510405138350608196616154358355713338092898069873066792544678740927812198061385717794720092657744698265535201458048529462340750568373560698486125063279860783072368009432301847568062001761446638264054215603031241685717604759407883430910563290926644718205211798023769144041402000450379133829827401293149970385927157123780667634543302852015832507443402337813390080347138196570301045528240884334382042568873374437198194755249486284590276217336751987762963353321627215846098536624449889427510291331628306942762217351274671266264863044047891207880034272080524424285236113094278192375703299498095790179196108513321087372159942797332959440292687160021222814210835647387052075857193666991423615803852942319070531236984916582599912453375327274600039660564698931811307347835142532809323236810442378131577311536165288188992779449339132190435293067640328782778762107817541804943863387926323000890329435048783861885029385825859289142741427092599227692457875902589764095992265112286997851162614311950246169947605708353098406286921783356455686764408373981938367519602198150182963423369061133410350865056921779043140993057217077624298153723789882040379086358917330954121278113941509248631440371048265802728376671970268607500480621203397967230016333963657839975194618030025342853045571666343243298970195332265942897659548385082897184825286093636959180037556407997733268497995674395686060635806101862612520257365369443564150047101847160020560362082041440691924727939347203464958417838086908014119544346286335099942288760122770401269955033900924537077785838725534661061936099759783020767410554699865587151909962328050033497555896738737587312674000017248622062585128160863549646586172116932085216201936526253432217257715879297908831819154347296788850180804112717043461807704496712847636783905864957223719389693087334101472314070479858719996607431040499573923895122736491452288583163904598853050557855577772908210758796024042629202685672662798213345800668338904686066119777596618030795448210020201822569324691072035997976106299075014734054982123575577395303006739905423216175859865945744192255123080647795913185747945513909058481792806682856172067868273300854348963509710876905335714899930685420333916176505431639617117323968912631783054078764381411904232130834979913945207037672136080713425255064950728034107945949534521401672857154120544078695768859814464572164466210132164856564927338040839189701981073943910825564851726845749545990805487239211085124730191953370167262418737580112273040654103683417998872157722406754628389310906394721551833865984332864148379172600249268292467549706452912028553101517506739078261725942335187427333024055215949235034455459708259148746634924225073493893075854644055070878067260115553772250593168293206592500426399359939414196003736337779700120614325752604699307208471599684771719797580161594470040598578392814379511269275753280190164041707852443490547657171058832046384330842642029632759009732248743312951880077056912002541080411581046822231513290954420424169205351668954490166798778384705947698857920609197883425985090926586960521845154414362368520898172104508194051012484048259473088115499839224685061323710776383286097547204535191295757610136773515679321676378407248415686714486893596123804846568179689795963020761275320296193086015940067264011536658759093874029228018192271378013110794811709411924979818928916640604599939335449921861809480638496393066679104075519287748016495791044984428589883687271913303328837626295935618775421392428031919281671525943051260634529707332020449181959318239241002368329288605356042603817376694516709171117490778135814294383079201850546158390901419795015550432239916904334009948702945796678258515570286650740159972153918997679825964530653018331570428389806695614371544468990372497003207873563922566245505483963083264842495596104865211912742677248865395736198107963492002411807462858850397704875884747603409201399373135139656235082775122008290676243742611381335809518392033480825680079068624705516158242482977047665917339454354844881319882406815773014471011954983295668708530862771491307123616896299352276368823627714868652556476248972861468296139083068447803720892258756479340179818231009199343937125997212307722522196345984108167036974959571551397373633672849757931825425852669864062731901114478652729249805249447818350060428752958629999134517706404933121713646579311299086618710522037632763895551882987987582225712739317607045949010446530911620750915851567283418355455731231475031081376452804824231146553511139566071108939681151570414068018456395264419772543543862737593620403679831787133917681297846095635110066596652251944294294109315364176402742115477903127082922755874804131762732346217867340544522595490483437807665998285739387686134247361677819293468430202115513425306153804088181491578033340061258073788570285622780911717079507703288748879619355387760883846281485608268512257306268625418123365711060024482833470198775307927189309150283963438832728596197360709287200834670183330377526135211415488992369454041635498443383989569757917254623436347999719403570112473458812820738336670867263539659743847845229552223628897469652766559967004027117854624548411430412296026162989615019644709714142930888924376395479442504295817077206775463276357089722635685394016967149566810371369777486688703738679457793415889252580504013094350908324431317641226338925976862859651213612216328586988074900330574617110553073804245763037070234041924169152401575855646223384189589021151539948973953097773332470179457093952170155846110545997393848853790252702293988560199171628959945308701374945448438817870258396658504049811170498933295854497468626304531499347419785760876814488462461601414554244005549472120993944320365261432397241624608312890506689707898491074570907608640601149344737045911226967614666102305963150270136418552212359789190468688589112071199731941555114274769647738606167269913050204916142682898120976966932458098061363451830967722879358835011393270398072846958317489501250466477383204848423282107050436180606137070154181287216784859887168764524784938415109041843049963425319933562125499021225138847024917655801362862828884589624873535203476636312719000257812448762977769476691929425764258539108996114558962795306323904651103860926219176330985126450140695095160008533883087496227394176783369821767138885532253164720646900079056202054240644070821264482914296574463948534105499605871516933612775753427152926585186036704888289227795833150751871609152380336804601495739327398037298391200117002813034799919139373331612401170246601919868968752019894073937224845847228827573557932498074869045822301547170176394038318817594498224370935541042773736402486193826350273324098926089926998842826298365476555292608786049298393884520982157688087403294432946245996756569818210383038943160612677132261711713284382613772797618613799454332962005767276174152857678670809420656795925755377016869420938649982462941357266553470309901279849826530484926827162797075030077434076934088919486232040425858695414341064170002059292260126293717088124875220300141965922862545202281454816974774502942526355096625047559433559710441453799049076585514419849999586598961953095965544330812097545099068010527975641673705831866378845816509713513440443932283974507305822265061145050599630247280043041004998675737687334298581801684636708300817072915128401296193237968936866407079547332872099432563239075814801068044468386225393018036752105525256460661415086965688972620900711234952183612456367205936794675334650533042701629389283678559461448821495425697887912267289509298189837305951845808266210045468980569190692112595371840900499367117078483963958270357824718567698754182414106380612570316585424080127987018334421112344567009508032852512916993641761474704588638546770737134905443347764277354380401792232732368487079253239899554371320291364608346584473743403861367988069620518241206927965186729218096855502377688207867443953899045995260195020822798919929851950964514682548987246987046470356051052034596845477389302669246884098980122391279771565030473938873306400309541153507570358850355158980783519778750256233374269444265484051892642352229510722565326951569356514015338152262676972861665529528874375222588771611914422463913720734881227505830910870193822364603524520958431647182067952860364690171856826339316828702381312368278154960119754862920837224750653938298185906748843873415381241492086078148105312466324493688802728397897749665264472302189052409792635939905854989780273667697932616307916161202074602371007450322282840691802632037386531790843473546844903223118695657954112856672114214373721415446499535987905621267435194196262058150303266230208703431069369848609189792989312280720215930135778661067125294195927892804463041689965412327773203068338268279192163274249290601482193216283827195502846861912874867499133411197128570622557360819925202009275098740560063978767491421061678112908592571324051909016572528365323678309409659025129783799982897057821748286569153548707348509921060934327272716674823811800048992819792833267843183510856208373568768301018730140522828883951561469601442954268797988747069129085539908090286215317393850822594556137176486112297096311348454225379050236948418849089015428000758397520856777366217495845190207551625019966495459129477592811347682143451996399875651973145448853376045058610077151553124865007641020162880027064882806107483579457847331556171617779008362668337037366578276124955924027105427420436981224046246321313746310801481624189276037027250545471129350729202354660582910955633438319899911754150252390915293726801074219797767912652462112329734094925361259192750053124386256889232718298292249300887419729580553419136655018299872133531377408156953582628521447082111645943357654428733995550926220264135629079355469634282482227759281191178697680635504716434984520278106200970133786660427026173853292769756757369291454841108082171563246205148848882341866979943176453520476319670732651958719937277603003874673780864258602499465050724938336370438614853118202695735381345365041551340190559062541085371400773151490826010378547716112862544975142639868953384841182523155222340395528413408988160848024706057742062955543581258952355875310150080655824637247611208242547117829771352008448539233038183418746743567248150953315720086267880142001335718727334209858337878074269416557818730143191235420796332157393484954836083646037543136763597090490722601862500029739029306362626355948882503373256324620217037747320067024611758483929394610936205127908922072823585195347611044056166795988371845031931556973792499097308778037736129838573777806579005889990617522827763274074892552384547076558905190680222006479613281835141589982245904286268453325288539098120724600323173302335699910533118345038523252801211825660337018409432525754705475442946383985994957613617080607622866723529872607764161775576753521466515335980418499880253798491519881963445521677040406818800469567193834802322565746907470060594946864571324405635781886283853006634996225194965825742821199595801595718094531848242464550383818089782830237060002709314772286839042291164524099294152384924065387574945853980543257852343624747849591054783751555964963478175864623744090757345339286288134769151498073630194875404275065919091366566220544152132543928166383014976307204376999564164420103088831770463519385074473612289844412657879631541215876156674377907028390409556846299212434893755976622444474037948675526809210489187966897787763135859162627892260975784648775744429983917510742671067649166162978786778533107216173545193410228320199027196832852678169814416955862931393752065984289941037392745022711583903828356365317301391684067361918678785181212905859160431904258969689059982683933020122743432219946641218651008036327265372819549195660132767684266735206638035508647526445243051198803516395788158375539461277751746955221372446389041818991521284327031040128379713903106314530163572839162804462302957406912258712265698753018910249740630753094083634284582835136543120131792836450015334505534872533584592217970183431647976019747689845519689746600492946447645281339852919034763765876522110458904874066101948194971501205140008633323293373962794185188470592178528109774198007994811796244395834511064099839035799757078956339050192612751709927778939478406085907154629631488412301542142422155480688746943065273565868181799523242939481304687742442281038912783676489369191755630587603500973111223363756524091063619184144879873622557569301199353283864376932481581144996252034901318045837965451373289935520279644380764793717193493237785767132598829127674501139428242916989581517590510820356927190727133911856707019767281921847001897409277761693177313097351577562071068180011445850168902825833340333198587608793454468703647407665469080469698045202102674614606420276592127466373494289915354677033598074074008247814086417131646339762590952828706968675999564449594483857017567022712658027861902130399162978839589147727866618523209987409671998160367547029321211785989399905124319041300157562106634287428713913823595779133405108181042684663068318168660900788255088421353987153611504960683668974281549346808076887692370366947567794420996882227841111375873263258625032192346952130001341112130306607755365995274545337650600454622207948961137054598610004108583586075860818245524170510435091278399014425063142674315342939997964951585418638624055020429382191313494079357738625004891849695228228560141932926141644879724423158163255385909245873392235945625222617299127266154204868814408043663730721064829297241775579635412496403949525543928819906968903684620105571312966526294475878825231979631310946586479068212664456084246133644668390154531455612085262583904693062388348033890173741582352670164305331763864933014685181546990480257942907739073778360865381643774474902587054700672075065219415801401532773982846147255147254485768708146184357675311779604253092807687175726958502103146590283488905681946637766556554615940788275638824100330932207774992389499204861201137014266835506293360670761766281895942885989272392061739174161516815353016265465671256898765878293609479372569075736776349791595549628980045279554207025815367423449226082660381245346323148958983699261010712698188976308170679450192958240656136509974470423939758828850523084985643530614380622335225784146014479032973813810312634342192037688138069300620612610698501292712245519517157455881004092952683070679412200592093925083647531820879213468186848037137523109356955213183678616362834864030076912157108570312276481883432101604975950952687797885819371867110281546217741203959028888020176062718947329604899644608604460219645428593968052648631928666520410508764154701919183218433230321649719928328615343432370935446571722954686031058906199866759697345597520937172916048485050471355571451479091188999981856955347354832134012694243200316593353407118924835191907917683821640340837415516278772586493751934871100614847495012503881911709356007404589810289471249563950311949267592851499682488065517907557562485192410447273550923441518028515572499829545707154173731244262749926430014742410780515484521719312201866119354949341755551409244040607438264686281623832859621493250449141916484357808640593187236500496917495075037243047507458407773778079757457828723996528563530837057259709085443700353565435528204435685822949804120674515199458132342513462863339452690748254354687480751120733607071876076028848227606060258897392425599366820459321958995250968288543735068197404613286001015395694938304120308986251173747590105762973312285273531083520783646778284180871403412407827322980923129511260050025129677433021519714730388532152442180777215268756701446545916508950884868774990816529197967137117624875300054061910137655580913670552026969733912333085908980498828568034506369564050195311848089392692342014636262627623544797707507858179693020211451256977781402285007245755811591348225867246427741298883412072609457939874089879619656681653058208066360692246316719223878638771765817982774334333988354122807116002874739044003480527356153744952587271186517503076307122348034128719566065833375160199214540401942759159706589471666243149145690775742840576464294448226770007387803226106447199009640199274903472971032650898670572128820577553491273049110136131153099612847018227642804670491919515615844303266650292937236818825404503664995612508090657218263438377111843461380667477426568337170288400164892083282341699751375496748393588652162583154428675771395767997969884320819968353673887902344049907793360107941415759376266623662276508157878840043907385780167613366507769296169103360752329733796545602040895171110136455899398209365853411621532124891200467960546308421941198902016284607069211030088864119229873573912043350129235927045601647234910088887386322417107792705261478066453975821005560326086083564725065005617769581823964514023108479633590103358201053647162818422221669861363273092177837678791059936609921502581556427236043922823070931968932393960838372497319123165949399072526843880225495059645161689487435777931898289781669429618537791288188015228393914794670718277995403840319070481073964925076428726172700596539437177521376421003724680969609977651782983299863270424953835233335525618418213696043160691183889320424736230974848973482125442773990569327242032882642945544735385137958031915066726390412671852834963352229918964963354210712688384594059021335849267955655905808543757736638643507336757955565579435681038179182831687765044806637645777052031163927259828824983631673924181578010759037646353822679521598221392070321022394887671172663218784234720076365141081452522892209601012018212330845668134086895197017789015534165620419034429909590688122159794755377688401520486157005643131277786336538668063782617625061848151834305639685391160044458625750317283441093638424617470641067800746614885133406354698140638440958096691728214531743572477141827726580693893209105865091853450281636586649686525258444802183735277840190219524238287504958848137464335077903467731089558324695770186899330264528352193383242722214196219173271010829555771425905742446511443328731576622170568233791620182040489111260956557276042461597154707071374240331223579008894913285331157634166254973461559922752532932749202416542086950997439070687219992598669361403138991507960078111564064611334174304286507022586461821612184697257250212981888867641795428935921142523737185780639574497475482831581186027168008044310948556509764646232954839136902378722294734881112562922847805955799265751407530842658194559133169420991227888040036423088927828359365335769267732561355170258932853485634092816946974157847687690323982285887504665664612411965028106241250801401504391972055656713950383146092114612903779289257162123127977820394112638919267483500447572568009262943218440734342419333685167966039635764263928290666919246141176934375775270670145365425380991846115704451606113828155628707526264027634970146542058211826859216010222381685211598997248112618158126661940896359571312238264342231417145368191643661849210664036562892296448629375538605394023294867056657628014835370013423798291777678394866810454715351920205805907972508780306977684250286555425417900481887067269336983797017089125787916032913946142157968112258063965335035040798848000782143393056961011023336997642012584290317033456310662666260473051067640941451357429476040363940821629894710258264604192709722975111410616742600011086548479372078316397959367655003920595626315654296272440977622418564488762753525342376145045264442606170055230273131070012569913853516942122291233908775210884640393938577109037462170150272341126200105366599654750742720226690874618555865834176363157731806460461710608319607458056578712417584227690110452168154814792826348763017516120547997714846663294478827647992870338333227370110590804522137193732697301587853233398876502867578835986983948273120157813472995550821484692618432107246866470596014583550536992029772262838326839824616980707475070745872162894711926592176704820610404851736289412645749642897750960807219999308157243749549496083489591560579524931521095728129663865216475695368973517168115564177676664306087520041669844117197277217659725848177091746333053528353854813955259712541154734672569837561330856185947359253381188660924350330771439200959575956098873136025848830587186935573748959313986583336625137823891656617935254356028584437346644844750071195820833964356346113977820310904964599590404429969953142626485043926430390151446080439184396998109919815292954464174778066718025591001349504338329949109269448805756270768351290706855827268507295653650398353167646911662239402040238097863430875525903986779760769061663156438574340943220200636175782803049775380607179133043464043422062977413828994730924036997291857939107504982096744750967985415125960241704611142593952115095934968581938299437657280010038658839845613237011289049073441990475555027495623832689717169089074128156065205094546029072063903429248503824374890893587331420218216840084786984284400814277632875179932554021788143935841371563505262039759183056106342782885561267354529343104863138464919718260865616676363758873844735451932439143309072645056575074459617814293749557021665295165066292072436987565112645742442667549217070074130123708652563074547951864021451271144110459683505288305235689704597498649718110411898513855741577323044514594478405231296971801079016397061043513768206179527414073146584751345311433066108834935389055884459159270876144858039546190759517499439424728586133229059975463791182370309573726926959990411102391047785303616283013912183106760180145477331767930703556377121218437611171908582213761804524613224863181269343397686518152286030570093413808945062427782315498492086426067240831837332070273733437835698517472817067531245319841495128555581997517695826954406619022033550654347997765962500632260044779152471315132565128984871640436942882731586392241574612330001324366418912285460209495750026491084489360729820028880571373689345648519852071222066063015248848468356804103230017231903871439876856310668160492595259756425403097699766545515110929921194421163427186806964452709353901284876266082785744472917696078807488667795349188762447935859200355678381234161578908556270130752109917406884820625235923227756445554709350584062325083285701311715003304963504298870134459017199307180505306976444856592763783224827614008935117753244206033477769782526242029387276003155669060764618993202236210255240426101285753342781739048608930157049304929031295059690658422423570635293860516742962946357039411213908106413545224389291039620798992239066827652329211547294950634015617158244983622402712012274571795453595963431086948153159389188547305062952738529433332607413502181324275512882732602673305834407363056590955622254962454874366410083270095087152540628120913354980533467031627094981411014893560708507576984146454218249964292216210471405835126504088018259257502782253167649330623426600856760027977883512015048324554951680571967595018997082839786484846600513286658853897376678331921574054587901843735876458139396716580350994775327281556411870232976126129718291556492570647872692406122806523819988371518244015149140473300733390874796398902463532021144259586498095353084058381095310486056531213552133243776813940162442694237769898036714442514091710946108336393046841868461800220275831387269460512614591387797431057226352864599264189687079093061068751742923568007114214651835255761407838198554956255841798491414103929550182167791866377452432227677645435225798407824248569227507893108828733946696810516194214481857934426168010514413875251054872933738528333944526410888460415054307940371406406508401889187815032383676210163221263310585621679587537546245722109920982644684387784228191263806419241121018032222568609173730213203997010066862493137490805812254091099234733866742099534503924514111465604520065548353754348913054177913789377446759869981745295600075633301594091827513313374866817679552873472287023610441328931880440428300126772197378721182624667234544828654040121450578727887427002703926452229216194400166644869437794724211412537655887048488606596318551176154308331598680872568259801506157885717293668273326161371490627967511981579723580273332345242729738002390277090563947915834039995013659680053546668498178944514793799928551127145351076241255369681798527476506260275213926060008829809291937987466170422826074226291493672508567904597118352281375675173741592045249300970797223888520330837365568058961294143373426349564477161164717566663314583948465817290516487094205657469908849018928814944055419718794070090120099679726383257311259948487832998441861555916349302422218872055240987087421504529688738699337089195651260311539150387379816754705064848461291465198365525492253607686636840582524311573333439513251387309504275181445085254226054693734440947068535867395290388538518540843107646807534674083009499456234084145944623009134045459486782357899807495887340400038052366160583681834631321004419366642842064602763300934010049757210115375110908681096570867540747817539459197120506646936049479664593614429797732058783968915151933496029200520290630570460035497731335122059327287873373992189039743690030638783625563453956068614390702570373954664581631836321589005070674889657971868905753276829374170929826422477753164490708384366658712682009251691122983278024770336750103290827169251396327068564545087748903717622779648017934960152702212070902094111716895999565245401547541613976987121912602974170086859687855388899492745435506039238181032423822702513636428556148075510257655577289874209416675274447012777210946365698057298516287389441278474757822613460187821169773502361282496837677715040815987121682245521549048841240847040503448491365045739852718758125132801141013377718293711766308292816115186551363147247737888945666995666969768814491751191997070845921815498526431066631568331440510391484784062153397697587870011374497122226615762841188244925007998963005831678928292008477564115035564966225672308889013397098051388142488980005193314945367345454684959716429083102809319734715300706921927991898735510433366366766878717933347315119414161875118359250491747181724492132222436568764161677578183080930202284873664644258252501983542832766001757739222007897318764911023301213216218687913592318352222092835420777480317250571463583202301096409669927528454153780981630038640794588812036028248817284865856376232474641121621979710245040936562129578472097722257931372510516645317168422883058957961692925299231718699874703279990372993306179688700124236325008534656136006973995386915909490275537097481015778895165290762653129683141311308264091213347646846654224885965621494210676514792887147465096868541612067598824705027864689006592576287534047853764111512630549048860602168937977899222002785879585907458571644875547747648334522961159464148278668248383212983636032021998915012404201765412420131987317946613449825057472789719305558711432717894605976246211433712048796672573474711016017785239576292144773129243638487909176419432162271163450398877167386846361646481993563552528846474331394583454704431180950804141870078847286175456517905097979530362822139138185421632401431824590609757631920663697769637579173103392647499982905384975461038922483328357791095203158572485146244811875272645258442750831326822268978022824524015052744771829765047637718595835973896222110377603133347628428607662396885260113990393854233762053690587014789176074533082322138035263378153973056381494856499150519960411467685533576067533299252478119633317409355328635790198619299199658036020337558704825557323923196841244117750080064647628578474104488903385885886893127308361014495386566401462560317603517202280203176804154007686168295370023813589076745051631509104962409735278889489562970530802518468384590601897047394676369347328690423713003063311529163868220387931692440683319726844742294872286661728352199939044613057515152707675262899651327858450479817302558516161310778365952285203328483606664010540000486380483101088983160979515314690655793141428348413318483657830528601869324898331485887526486313292800713145797730699410181585667905360570702885809720973599162904278176735732953263511748320176244283102068973211039013706396668865638458527048277897940057418449655198829372512966582853519210732847808194678051337244051887919144730178614981519885548605964296731746210533376454897770786755538375423774152577685010510817899786894897942167491032796088121251285067571408578739436447271378914014387132536039986745411552433269787068119872532561181638697948027902689230662166081591927182831068939363121743490950081948139177194958969737765886063558467112896822717348990368659480099647789839931914299835819237968849659995198468695545973922877959019815745376548379439058786558170622472930029245125002380002005239796701246971306325658340675619623310700389684567258961247283347768097695561885469741890206001591777422329912791231685553818503415534228487093998883689158359562245725533915204393192577749672439112645040251271985718430213780834833861891381423727206422395562676186600597410702271862829160947571055735854746708474089330378241024593684353792525488815112292720538806643808632420341828896149003523071127130247838311463673258019986607115387856515777930515958735617231405520977371987765745877610163787005308237260979638786564740438461094957052397344959504479605199760811125836932952168251758136341636138504819610178389098600042670951814938836874241308682569874002946334934076778895762872109762110428156487884039748973226094971671127116695099289560676399109380602822010673379376430652986821110210131438252295627437246384623754875034015079942296568404947131541257069651045010627677739216817155267386730054900149825636414927226391411889562739879129662625435027228169892393817200106318811650113347963222945388596284705730223034221038612439687301597885900422723727659742024218363645921093735678291023125509572427984086879650592130826059414529038554556683934736341788953469931964374864618638608511501091395697108951742817480502321397132721704095765140003601072213792976722758715820711434851814265851273122164125434759087381452887070222272175067403748614868729073891409651513710058493381788743241182677830094948770470804886628998073293662186034285953250588684449332617709622165987578030894421822194530435957243680018964888411014102619897845512235173216237623937474715111291224775113612212024167456524831778677727316425231431198415583282479382553682085519388658709614442021243992511577238023580693074750707458150264911511157006575357963486315808773969368922162255740648853397626115934054791107142081263151894908476675060116435586136197558325683541898113682868160094295280553613406409858609841244204461159174685977155917856536177993787699077997662539463434646580999759099345647792805650207369161118745683273817259292903492933161414680533223302810126826933200757833275117369812987461016619079032920913156167126770664127644551649772719947357250606794041600112899573052096895283457389041830884681260124538117176621770248316480239446719703489632951324955705560077966482698308135704569177461818562964903430526659920058479474763053711700188605931691821706944289432632765421525817680616581596606210768014011289924893765542939072524505914284835345071352959376522356166226398603422738660215255542870985725035988072514758044432691168689131991141401446611381473984074269730291016663136008680180367280074985021505462657415191991346039313539982848950482113826708666391938978445110533439238644817969964872800116967682510690888389964583460255514330246264545624514178354081147140567044668433705591801098962409987416370012308037524466132370382993460961851004401457997524469745441489406306553198642072997780313032244117120604831320374513934071916074120245904555336340432709873031720476193717442953933566991601383843860734321258442643829879151566281251044592645716027238570267463041087945826702708358778440532282798811328651222890036021331639676004121496410769960882359569724115925847158637108399883807530420486226246106828519750245818543088298183858053753653708787007545114008954476879166758209721809222558410044338176797343052893136093355554320285090094127202139622677317749699185057879534597765388330775503514710825355891814150082519740196960681791537933858867282756297585437581194962931629788166596215158422610096253062742960629684038141289921840121918526128541417275317618222156219219051294239266069467970645527150912668823221548738427213642255913751102325165895202335881895099391931780324329379787536112997095384031128219955128193339218002993328219120480630871935246369430351235816433270088800680502253832979523582755697689804331631351985346588386505719475611711938948502206290352974425833756750283116540511432108219168109176154792217712965571844387376137873458333305917167348087132343244494666726824893902661207408014677211284926369231210275382627742453861965311906017930205225264885462318447362823508054945470239899823031730920879837471321005916920440432792342204176648178351278558944957054137113475017150754295310457858313310451207373179209171130666768077753682837670735087473636848180351474272951327638006630812780131995957005853398052737860068268428123341052701849673988715993149471757292609885150370849748496569013492167787612302697307914674026466718743528875200641546692624585344908791871858570714117195016141172991816505425675172319513854805622553738367648903081921209602355632327996850901090722260180357967479440659177873977856424840674013370074934887822960774381551238323022232996186383559841003453086363911349402779732469991881433447032305891561328833488368491676262478796999289559795988702052157049801698876205515307173822020493909139086086338208998745885050233267072757363823390632521446772552300511008960370223717076190865840406397922048616572277124532907370284648618940000822128411553619144617894012017184127734347757791722832425117022360219736388407550819601062205937730464919921406699957046400728455006520617293370335381637584414383914312443324194345306697281927263160114388146635579872517891483074008591311184839304948220858717827343576796622172667069546506161651689311721528854987088934390740775116722845698816355385117294863454284798992885264566695972545447657529577148433104179454481943930091387085429409721972002984545018829034801688330185323015720191693188764896983890223066614655063047624387741141200097793977195160902489020592934529473352292508959775688190920229747871973075721899609457742019707424653783732670615852695092657537224198446717031362138841712286764334154949359633272865526820501357469957781619318791879621085587775107438298074093575900360767273874915064388291756234299580321628538249370642444357147318796206027174289100637097328392176622484768727693994508628075395393741782027771067338136135429270968471546975244177540677564135777389268392513687845211405083483401955851344969884981876024212335309447616966945812105064907855958094388346222541591581592160545792777753052076477881906349558027726312406842680341131131368935267046848838790782895622402926245082557913244016035940294367244033922702339230903524359377309464548354844042165509097319081785034535419272598966232311752156535182777210571568654345309919263312786288435969583129035983656416040293327478733966488516692151987440498021621995145520724628142193586006041085126877799811820465491106848151258868919615556236473310360987496280350235340430162568890966394428650742874385394417307463649329613386511548498892554728371157280345210683927450931016833806701914442815700257261538956327559488771528526845397873124772821584473938092979847652836588446678281602080152350378400675080738471985652461358647860027133351380674380956863602082830847538119639847382878306896850240009716371447527711880111075351787031203656147882787411498270867969683345059784064370657601215103143615797490357250420561546867199959499545611599123121595894231309598943282410666988221664005186214404240850655075310661608205058873214039283016055885800060907887663949318991875631627276903395922240278663803254606704741320106923645963179146395680280407540718683160698122863217874778605300020652726225166021109749000809107697431286519575133365082556222463199508756178620858373543220104422553250182051864338176962372939413721620623222091370997816245726107071471876939144871418887657066083745790884294907032195607981597287980754141983106975159062880643120467163973797924842459879549599261680648323445053209977989247103571141089084719101659417181920167746929538106322696671877172141522475939463301727079781629479900463410700364679505212106104376139188773010749493415366035531720392023377798578874534511842093662854064339330049969421625060960528546153749112553082954708423929219370794169042647323916389276478557499168626951187406863833274484914873685357532967218373574688221409482122642104868472320271893352377061345831960750303698619226381695993591091983853022879319225836583425593225261049149463109791984218190300654806700759231681335567516058819142785868688734164255072481483541764260117839959108745475399693483284420330780208548753769310952567827500537563752003087233743632841229123399349471888798367508557950601013727886085493579416580869209914786553788010033874395656556773412159715181878459648810538602044917594457858170671532100252027479090787031649034994323953951605978575715555262660928318291323532759437609494119973665267325290586172498065116560072608784707831573264290922040206631218310792607535253632860494208431671726704198298794107280761788547880866380492498984212221482830980698053004990984972518712591230071025465961741118287197426906917954633941916473324769930785184696433926240563690515393998785107716931748221055651427765571137946869418439942097455797335247526273358220138139136934296718481228669570733001496681468321293226004507794571202177728003029691963513912964144454308290477253350752659822515754090139625909899298052775816639700211721861557797447838428187408297985040242150608365339204028712339247724258435868676777813113367343117827673358261093307708185759248746619653137784580654210605756085992347367690919996315605186856621244105998786829161621178821523205501123259362981669551466215220210259088297396575294010114067464341474079829418472709183939681009248821170318727350798885714770313153207005843791652460791597382582094206807064617892243312744489397587398529532913620020395447030150384727750802295211099805245341096985319038715033224211641080240515206104247744781483420850447341326014758662782420574393308788291053179181246892683764581079018891713178305247527500227720255035079303950455194424715054960234836392154850020260239883230534350511952485508824728619925496367749577078147721325128064609592069362561971487654495358366638749112709818587651425608014151128305099738227162282654975375667099955823845565231522841903784922553042632976723135719261140943937176114106886701509312197760499414893895089883312979906886161743283260580387475390883967843726364244348910400053426869993426942082735658066015855947471494206285483589933434076230898458583214943167609873823729818277758351110972519178023254206589554857749856892498957969602136831212554467482492643232952162888078272050631890492263643040762195350634145540589984133047402319440476958277068182973709549530203726891795394077847628895402822946797565814884020045848883259708331203970323552229427911008380592947638012880865144000384126331489836941708391922371098529697861187161582310085301156632142334777779621398173313241414098338911137413046094705801565283521599363193810881852384633532011424992876797280371370902291117652932294528205027044925650145679086415305608007593940654429001255260341132431635276826347233893813650357069551525134991732874870673552813235668487112150629528365262138738579016308135070647501687659127627160667746564273451067581249502002312071752103428335644373891935171505568049391015283755775192561164662502659373564963462099536626651340445036921141694052467844107853566820758010996203353380839512768617449276199363734858149584099866715330203851346612818888557471792893167089948254871338452909410787912333808154557875922387146473967665050216034161991851525715918397880225535565346807018050711110575113421947148325976158452838605609088561053327382377707971593661658254723431750550649715668107426658560188292004987320467011086655846136623714757150312827999540855962519627965374026291539585058841941121258902625397003535391180713069736505119596831376272258729084275022531710466625302111800994078603036284005270589179369049092469300731419272661298423541594383676407839651176208325733458127565157884698185343076817094235187832969684702560029463649904748376991936494788077384947171679125812288455285346998460278591835254928696163368350377248282493326919454813260235170843203621414681415286616513533310942080959887962235250606386307040391251089175155712177005573220391447176400754892559519632583697995106134509984166787912414639054142292919398429271874333227388905115494481543663119786212791047009438934672843520232597861405103812180189650940947909436512644976883699668785764023637600696455559499293116224109695739137153108235481980460841179089529665820850065607467814281867965231785924322579611076984302329461720828002991369595365027955907743276569459524916686474737183125878174633751664336765494351752190011268250314838932269464729760218075626061883782130327185430577369532818388683699238069010970868956754466987490120664864316031518971177652492188669854836928835449439407283117265071122322222740987983314614090495750285453428757792865864487979317794104674607321086042751777445764401255187023188957314179128134825644872958647022739662504861734263264267926554634123715677961938059373232952758959808279744396167967815718350342389151493135808469641715462632968739124713357111414028315888007936344334125616214471668853873796014524592420306906588504968339655134059100395834079446160227008491322989555435136713354258632745443957805917751079538626285039773941046266668115375056983188096828265088489996844835552050704444001332693344007759688584559449897087832865700809214562831474297114974573106863467530007668058738131874578451409244791948504473036257391841965969321122877884081577418979198152603727674297286217677147914946668442227745270497512482403366870520598322295793985401365163929308703338471532894635369635206575668493118905669876570573656382547838991849833843810227646360942987237156081414069418643883745292933266227854514054203671485547295694963539747499237492756012923808336826289707605847813180652569986913623465239604777962245865062850037864418549536946586022927376836118648753935736833219492210949959776369409249480653445832324571710857008881068009956978947010713438786627083329254622811966281944549421200333059454105610103148469490723031213161709031899707610991857696514893300798467993929729930311821749424519783899467322591911900090408677511504136938684776505930947678701837438560794521072659493378959512804391220270543677756303699033768735776224470063892714642433953893387344306819882532095669853907723847400545320497376486998428396044391584927322293233250437640905687636066641589213265162766703905587634794150387328963063035589885718027616536196515119033055129672742369855165703556725493466051223626849200433594404395578773876184538862080203781909629063919734459474443259655012798918455859136692027222266696078451524512567851311464809638663103929987256076053851816029850595723090520470199357334536130339436840468493565467146813394152860155428354405097117083897450417759638519363997360430192805996877427283566550622587499900228149402237468325103324069845440155303428162711075082115668893122833610941669732478657293665187626745831513287165460709540075803136640588015141042222774893351985183379073844630080303531013473785797953307846867057652291077476361830184657629009534110153041047533825233706557225349439683601830859333049608020839592482865968123060442316174197683944397213043083242418570243898334962163292921770673506558255316162160231562983351549090586581145188505210166139753056640176956027589873326745421208695804903235306678209644490948021876396581033877949434107867865712423808415890424693818247847177034597141397428636971703534165222401405130009130112824719827881901296213331576283957284120480433497151601453004286794556221351914684459423288657309242738554390273762986639200485385458554218323400415865306272625490705012833543368604063563577450720929663289459222396970978457548538891087988652257586861005441004442417661851692638941452414338713061393695238813007378777113790434736373180430624427304613575416896876491657842573126172695438440450416856163042942326750458077451931495195832336109577449101217933427453866677069687910530463129965429217110943402930818499639671803624825952499409134230371440980402110851211543899119722609772415642153706249649077727267017877688610063283034787396298598035567679616510154916378675513517515774687067312739209261563749370837664035906719593620620090945258994612809507364824377420819516902568343879168922156193793186151300800689247706696093007590327434736758863038412829343153176709951650611191536550457613095341689045127759811910856212954734797894697915714995430023423280863450450084893442820487887701539853176858778634762570299498157704682218055190716720628981202650148266988718899208176842545534301266081419173320755851544876287565743669627546895967940166137720169356782047491090014811883338389829692753769355988252454725837713071481903756698275915321041106328520708369793517410062387490209142062547182792401625242256281170896819591204998631976942843827274745305322365743608005390206728854592139954480183245357108988548961026692859212879452419562666501428288006250088134919538110421516964680735266472881128385784200792378691082812810948452099128058803696487097111305946119228913062987112878575962295364935346093171944891112200156965182061129832464557112077849107010874050553497983382747652026736953651587181855063033170804087520194720833581637280563704719818830420936322172757444902875761909709325984715322024920847685828144575660086951891985956251951865717737050546807608645554643314159125026237373589106254084881710000530172772764373619803539242280855042061581051155037117960725547020312339327722303329788170958592694466039688758033724029877698365338932944527973018762079459246728341972010072397336822003607154643654901278932821290291831970248947994864482161128791431351374737207216014791423883627226702203928540909144664485994348836994440359444315367502602545805884961918323659372424343824400412260034889756725296330343601873603459346523598908542557855780091469204141928832073025602156040822575789654117470755978264866747270171714682985346791901766724508348662298893233148609130476503347828336688065343603430773454946898105500333220460801431304942921445340034857562229789768882731873196235002650262459895970377951604748405442398998961960358274063594456621791735437795381721569513218705880982057060647774337618607599415954407631235128623141090379780798597746291247578506978007142789291685058189177795895181508833938196318557523213689731063796430688580167606273879937296356706782301652928266632463067026498642185805661209162650900791517724352406984788807115535217803336798686080443145794103317578411706623415015289504721768573254721798435007106982825037655206369774924632654887550724184196271695350470579654119749646475691483043837005375245267039876237014252897471715209650542347639367098546781679126768786186286704353998590378575718353206988920253448425654890211673877824888336940176236056275983165082458811535567743119781757251466855706748840237916852331731869225985747715142641132794730339693594686168156180126437979801738326953148316012749363098348839724324768452591814709670526453621329769172665445104076089901160735663805144881367676579771725740907330624458770910456965449430860997044807366659209484182936289071782206402464711066955192843922483844157802087086364167308464803454846554720894983709583101779809691311641465158878050029238118151030080086986498150888804772864922034558532154572623366069857137148811351377512527809409354387987560903102170267051461076740331132226366694183642695163966387760828620049020831026409287495249290009267416584083015349170989221165185248138024387730300439690895307175663039385224558688558128148266390211805025703993837375989202582741023841242069992195847201497999473100202955352815613038194652685639867934000857232330103495054698292836754590006405222786476817842005355077595368895267593652509404225675583773503878917135747663830999111026943430958960995942676546951255218027149592085512345005779660512756870215856035449694472073161595259828814472474142349071825268015504910143971187057306302348400909436252013075522913979469689559845408247096929341650321918266337129039406950917473756386340359568613220112820529135979279758232014499874433220453890495270020804534690976713694281690026442225910777303276670478916982872978555485772363985946785291150542220426631821866987976999382867505585405048694530132979043530066675781672609068308770015857315191874393955908397471716359050266495161204644430163938021000532884748788315789100549912936127855324713007388681163148075850415300691452772390113781117405858305675430419131834794059429339895127112165913997500771186364751277075616848636440951083016516964960325164440165038024777825661428458862266201653856758566293998334215070208622549522211655269293027225722527528836492216342006224783897639995165794187163663300211749897031279553556822715254943991347442209736870219644124498164178622271872688897011797081714047032134706936668146193366968897120806281377678103051552840467205606077430925642790350229799697455903641337183366879247834429579210621421811328197227361018737953603611716084115811049803131429000968986108527908507502897049050839270534456661455047239492966944954135797522350792035335670760371223420699277548719423885499454871655591177402633171211962753427802476219826701132986809866885958352125897437813542594341872918484205050235024011250796641791365040784490507998123598297215197670872977033922400900861149831438633485926653644984801370310522676127253434288090644765574471155963616800726930335667138613801266801894173944685984474582044342478661655278939207582113262200580498806040975716190059796419797960154360107893638516030511081604734721094680289480555477297622008212832015064678517388575170000233167902011225175316302626208386449380588708620016250280491165847434073172932188914542075660892155368280014371517208496340752351860303198677061826653543959172660685465324230538597646930120254172497679703210531504626603403648918923061102213100865150422469645921353790883878247558206213955455560564433000670890197263681919382987157447346406211055193891381594072123116155363210732451513879598739703439176283290501493514393853085229060723015263896424957477064717199845468110323801761204638394341328549729072519930744274589334238899790645992114144885656338341931085772714934644058402856988529196475418838370732638307783681305445513220575822910291207749462695588158368563501132440235370452574047406780781150980646506768514485369610292512480154040305711054048406032693688389381238343189063575249068995344440048595800183982961718449809767762167750236545387881225830669903694922554384905664894518593848551765810805356441000159619428845862188247434198812773812990652539947452012420301596352780850633668585154574591496634568609946360499180140054989901343588693491306329999373816420697725990373825456241278497211386155129276424056504482863140920944110426535284903702623964379095667333054427557816321225229745226009004854827479607239377189300694875474225849058050991391351413511889449468238005456569792406107641908145808214333137904826920192007834878092934741978315414672775662203445233188069218344753702252502833144788134355921768875111615090546398185552299763156113694847722066520713183928755403340862550109431111040942593964396675918203906349342932876831528623011260165495822366894159071896736891024830427950426012309066854253700519081293446264714370491001601585698771324272782283684874674250039462540659728780386214428939762460925161800581519920187699988268544820054945145549243826899398940007056480111289284658715871309321542548791862533539036703309727127797793778251275464794074039971708646880128698271972674297390284207619896528169160039701486180034607010219119930636310777594845931981695346563603667200259453844567493246291134474760508874321932089169253828008490916788939016191709252022658367919973231063918778152551314544455339204254177175022907273161093863116258077527116087367336138612658422564117571438197806303479047189945356359593151654099151761260976904083962947372233618964072510609282172768915793300888611243524137635205669906120357244512014881638886476012345064595239206742560762956921463005126648735681167562120790330268877754323049050359368109051917915486263313591475114297711817850685203794520134330113392290149485406302747339542911147325724737196241004391073802896633759701185859170157662590484663190744263036538207673185758203082960843723607138165899833613277818116909538281593352926470722767576770755629804211515836160383226521135810111687033563302894061537821233453269263062285718708684178354752855579354350265179883689763715706875285707166945140953937913330163992947019161259528686593029628643844569842964703663580063254127540447905500488029600439216694734295409848068796189546806140101626406651836973658992514750032683234469079497919952612733255162632725353582076191511688203064920558061792521505187304791263169163438907260351741906966854418410369305383468345269452885333502141516419919432238404436798775048811282458717652466635489771125656080707831855921482562990799593636519075307168928813213201478885048712062356320790262523175638825016538615933501545416724102917144258771111716983314786879259923110507546772630470897870677100168846214975033311871494073462657030857063661879868428240370489184875730422573922285849739534008833229283928329263912787777808418530503732543871805743264283328737527567116367809383580711253380560749088058623296215623537185194708860145766734427275085740471838113587972839262791337618396505274382142357789800569314769522071128635142671508662715551336174456010185238410481156911862559007777589210198944494303209723962474989790507109702595852224838158339401749397004569090942585525951695181893121040946629361160584714823867676239584473785695814172682235681188117095218272261252309369245400017787265201559272289154969501053150961511851883831772526317971874471199773510516386378161274758793156907549340067052239505565220982960990838396390727736227821491194994875357797618478787977922817547131058871618859521067171475168911031422774587028648043202761563635803347841790451163438277313041235086825244334145242263300810949822254129577227776398036353172188411879467926119143865603330818267641932038474911012833688708861758165360590930650513342519368665774068605936648361629967207694972122870194100521141487886541885901287681089497166682215871340191437971099479993091390320808036965231255803389862592928094370314621270960564149962087519298432782343376097181129496979541324357059653370048344579234148829158133679084732204550651455524855732137252370655201924324393071597584101701482254590069943096133948552655485993493788424024976623379067403852988684708531286809920639375598487121533759779301327376400069197294497109685670306045627972559587440032865486657778202521136294371368766455633220589882845049086607416446113742568856357386408996236807077592631033027347538399656645834497943295007898794773418940813389243886791980614829725935009364395586697427881594279442216532182545177153153345739453202822563566679546553313837281809948770089465513562627935682904041000260275166933408683954455740922707446258965417400595082695033060164992028507576959419771377414055644245584882184592201663035887533704149513313190177879629812698350010917430880128006535900701196144899386637945079225053828174599807430902388192440805085951819719596396510987845262706973831994676437111036098139229095830057217476682224803987607225995512567993840001531507891125047293108421473205978775028029407337177008929366931134937403627462591668855843303969213535195280425680456756968013470698119452172562939473697901256447895409180257380613072939409617100681304519380361336405351616875463957660175070782680320894181326496037641110744594486880093992598333485016657853812419381743560231088325311446793945535551819391408164340333261585426734101571529974503254497372452838539052142139951564659608802605920562068265959100061759993167230298031172506480300068405161791547546907718344080802237593206219428842174236408325417404369996378886793548853598761053394649378957285599752085015192522036514446468663896976887811848029120382194260090290452920966255783427678489062985568903964152892591784806581295821696324305313103240021011619707416225759283330953714411265139226111876009958575741162233105086795355890442396269024869596702731860958900911412509231034981970806774340666933088880422201570970580310620713540207158127546044790184126743186909067668012901058283817352904493555219043539343785494814849618345178029214480961589593458690111419786281364507308570348249643159466643042032686195078214903094552325115114042052733167875720172018996863890751859898844427422360195490740007921910518537571997692859511250697303149475924140298971349248932947510786532887283933871065666909124727813592107571799258408333605429957001295314812373931226324217718443208128023684031889004586597025711954256793157427074544486423750474143664756616013091832586340432322769117758913395770748818504054911136598782193162371296859573954165442005478812911283153535385050912479929986448090989059123609864671000156985557735341535502640660430841994927697586536144438691590012484641168976982361532286596913213571251752908454401783579678129853421423115014091656179803665283886019072096185289865250752918615419173702441415978566098400308812206320522108268545517003157400628673610269061528136812118750378912628229085314087681375016288817284630780760312675992811637843423668137217511308878922108348917039699361755669444617422032370684165483979730863360653151485098008873416033560100815471854580980779733155434920007708932251987456439388904548223930473464344711887354222077773249417069086367140308014629207822628120510823102781484579206026934296298450054561322803503441080974868606245981610501106783159062205380731238989625624659580933665333310482173645983363499350014309598537406765445505641865609222833289602824036531058608956795731240518594212626847443190455204429951006154107965629840749248470403093054757372995716925494970464125384275966342824940350507220198683816197658999400273456287341331924996975837393806568477125085358092090070849370907074234816134697431440082873101044447164424148337686669597303936661060116235879821749888257986012782875851981377114584245054069600139149290875053222688021112226928641978093051357726724700068426678670581914939829009209918510299796829126747023748521328290431064517794667264580320042722594519432529402615752576733173847879659796484829533213222323074732647831775930461307202103612531630777063407526797809273548487368145860127436306773234715410337994227009335210903894812051393567173860176393918641050375801058215762238054268645464392146884169512102450283407519631598384925325133942804215233523581671242839595297645166817853348659469394443674489886831959448744685800816665083396641235165096183904974157855689229486319626683311236137743947342367542144948031397416736269543490217723575659905894773898984082555672012989905526889672504521817823337781401053303128281003759838200159457884301087041243214967124305505304441335394225925291818605397432007393875593550206066103731716553819105761202821648389582542106094176119764751361477658162774682634607556075597375972982086227466897864268003437326238411195370938672366428377470483086555293097281967856732467329807039924118392982548831735181225985379653682054661962882111258652694750647354830160132904260634866647529874970100127345461610236906104730924324475446093807400541368256708834432164421597914433575718425495598498053997024189607690742632383339860771498096169756485903687288383048462372018366486872338998815888809072372425424884708608467090195823676077422526843541615844969884572544924528846559896493734791646965146776622539474599762323664873031302356291025518383970882824882164184585519632916203015088989982202347272455168352505056869825959899055458807756673992690157058812338601238529332377067415838221890135056027943847681945705851042228912376926581338524791083869766530289497741356627680055190417919936445466857252817605433691035196019363393691886644928918807921381071576561179735303748501700897703096970700428138476641957955556731084541510525023945860348953709228119516226275968679192588050339294504637717081521288211161654427545126416283979622197879953912431982367410586531014291310616800089539204243159760361871344692298573900826483984552171442401444611484003908376590662973969414639906976270554018580598881374851164190058079945266117508487320606995235154096199550046857584837490041602910680022282240329248896143635043422074277683345070690937437221115157545201469765010968320763641114909705582744101633277856242694269361655725369958002204671119467222060035481900103742181912395068399449577788357635376314140090041200136341876141496335612207146734425592692978506403085032631963829682841641475396981415088905310494552604585766461041166404710231566003677561232134403559613254159506629952884168518555887297220741395676473175530875611487275251680778367747734083108465226692498393100786777774743173916912908055551346366152502969552681210032555982560692863472361257390255463791925745865149017072960089142791648509693205728117838043794050087772189150250050040486737141695349339340696413613722496866851613116465359447809972720517889948971484741136928172130315447113632407963942564855474225991862540530342346775599126610386873763858324876899064282308058693074341721808722188179796346102880955724261827440432410522760567552111374986901754267753584126482782577688667657681214235708215303053983836578872867707345833127679723122940282721330988383128359916450701441484255396682222312259423686461173421624421187955669157686441664683229117966086254349643381284610611001631403266918225996635127539496346868708853469278018186135299286293327510491401617469897768078149597475962313032464332897636602576678059486601403465702871308262039627625454949294559117472364546248831578918033854655880048363046596758180255687131315029850863977718859266627804304136803278448577558315073470293672703255235053028455515321049309867400249890097568291752977380187231367299841838166379411625721313014050794907251080181229318889227887612982534749029297657964431636005139403257994336870108193128204171004243658320130177061406632978474968104531960629989342644391268213663540852107532743290859850360778042605479394791216369705221196952342832675375765214474757442264833171128391534518130404885874853753024601328981304144563076739694078574420105501963411800416183388405630282448875928092238474023500852874828971027917166011712940636732977139940094037176502588108788081749408577878854721115266992702602317228258637699588436294332619102431058566775157392807775547108202655386945085805409585714007798906155347632842178640621664486582077789922219794151281840021935521914515012918990481224765780993296520224168593671013577831697082968325311379586266517842404181803135854791996791670955583741959283012759399687608724387314581928792783046091625516713034168473889833420234322341728651708488812503706222293636836243321070140310715302011790795774764246110122207447234474567297798294789479813680449958834471893158389609121050848937602655691812708598865881820295942317744184155641825209511817471993896779562800630372178458774366846387213797354363087329262161072351625574774331128066788712456972375352408329291223257254434161897925871870199963491010847501583503922268037036829994983699861031885609623115775195859645333437344425616563483682060090435816031318627277817775889212281672357005755107409823690689948791381587731385622003742119866119477524261005668674023598520847987098193212832850345100281879819545241986703755412792656567767935096574823002266531248080918606548401842593781919684707432872324533117585535978673350194670942006024698665566743609233898451847949878882096735885813721906427428478976396582008433103173019300853417175210932467176724512777805948671640241097297126207296614797218476769980014896272520629111959049389359728884304887070688333783230170043726878909087378820445755437789309150564110014937507953921276467390749061578724542386946152326934805785726457752046693998466717506163793986287426206697818117629169121590702918677305726848322961373239761097291125374421608052683133373870881018867406984489242784798271249326765083972406742966984372521033460073195597537959748804642085115977387950200927058635290342957627900267113648201055527620353206366118541034977224511171541504679187266128163304496929122596739461212792180873308621517907852132566846659412100807161134295286474721977705712250722797639267377986721290132625388111258137783051386565675050206682328977236519226552952992024343176933013753801650839900864069970961771343754448141682295578106094738619773821003001939581329648313079218725516912118642331815832362307742220047859879933344341579147348885514195130231539282306873452648787530621592002682058232402133601897291147287762738384699859687039896574648852074544272987288995243325104623294738128349646745361869975379084257830552738261657867071574332438594993843894217846524137809089181780998805579247150091870125233352845627332761942059855162861329316365386275564814298179328953490054674550997582329165276115538326291842707839408557648212240073934374715588977756755045445340481586352148635348155969813001279778929321504444950937341456852761448796003526355123257212407425865190968207096944486851526016375171381216743521250751778359008769949934565763677137365309302564403259872085381528852405444498280996382929462418209620300722872508519622696717752733861365920297765185250692558840218837053331653970479456364867000747952022436791322261104813194402047516944217620828967357155860264352692060099464408443874354934868633820977557949620937235140034594490878569299387420906496480143628503344601503036390200766552958282312056023186482479643368209687220569913777363827796187836303157604934436046900141572805028062061158685456934478250906015389551222214949359172841074211672585794412526704353319894549630940570217400780730826498688521736871383300058264849057719787915217468970595078266574596255374004761839011280470048622392336262413810122781630123347615447304008617982661855517432300583523299282261440575718992955670537743210158826202692462723645579564714547074807159019995482743175645032188276225187085891706810304598323640628486182507428382817365024051550732884276439384399194799692628149766711879981609495753773386461535325229730289185260050192217766525613248897412709865777245677937485376750152039269725966723112728783854579880537016153094696050425212593615525539224563388377600760330882437452879306945206166701391966032209061480031778410135506587310050166648608571484352814244552552475914832213259225525092509586291621374071723233360116080828776027936179810847232899517527857042498361880478087709200195673137622190582853104296680800192068040061837307214673136109624557686261057473102538830658716832513806531581445412667946875352285769268429792064726492364637094599381551499413117506455066832025028608581104679366619223295027176236380089659415806679767117665762771167593890837088563975868774518982635465989720403356060936456310502186764622492579660911322784511165243617294590916216409176191562426361597767000491039248432555950403371608475027219473693868934946715377126864997148908072741747205933667656228770795980529934275643204429973839582063543827398188449379683179467686581392352922794754950425960832795369730685370366736682891958854989961331106582075709982928574644199496506832564785756656354306568542626731610200015171225424500897464751512011171913480985663730974198673166193455638791003649578491173667181844479680386751157888726826016647285903896926620515308848387233856004136936551264916592486348801544318570411108464304935181490675537999687618455183388497910292604651381277783531610691661218998944999848728026834793859618232991382631928562192357656046958825441621370589331712871342888914469722479843107391216587485799692255835458973043541487623869022154920224357421286505017545173680650965576986679561838647419241924482361428513659462860750288661734872020826979515430239019916817218591039777548651941423044587714260219609355379472319005917082625804943675916863370456142955395223519659217031437193981741641377933180621136523207173396725697679510114377357588939550869469660001612758437213764159727831772289170266722055743151860156977082426696487404273706755936911211197388513657533972043868244677663255852619003519970277305837239401616530963772381189628200197212125216094733761547006688268385456326436133270403137624476092414924916959247904699589590940743751803146332280009461811282271110255314858793299615588532956514400620112223004026794512510121063217156124485657095457394535378350932606384099121515834513260371526960265382225464436871690157705430910798388066767005812885129120367815427152376321695215883669401062024113748739109166102507245798664057658032549637250983119799738661002619004731636295012533987726422700274313201467420703804345126830125698364510935593454696830110352090987960220986422197898593791058757137975822123044277002444702949413158006880959402879768185074800846023056017206079921429707346399085249355606203107716897400329996383341946673344953774848337295656021437440537655752546810245706208028179675694473144948800985973255210600594102158461472820081377909471606569544978320558286061567508037583379766934798761528337429492740453320637015188211741434930904687824371854011294883366030140297473163068094884011508169604978003738364847744042387655418336341335309727422423050086928066476337336839860181894140993983342007757472804423990906484568429500928110455865436023535283613535787683106934432164448536726960215658108631302801573652835271719879281333486392147632379443301184577700947065646382918893681808690948758271071504774688538502994228868172059034698208086279867308155027148303712481952491513419071231011344323525090876124829671321401360441732924420813858865265899527960903408179874867715408491671039811319076602457285398134751870141514091814625031189058488613852660307534499961655273981831648828362965034096998667978635732410848214937647393545903391494765365915385300331373572789140535027077610593599454295435502629502203033322051567325191801759665920733058344505957507330009504408206695672810812986817805449068668045828577432486001580991795181100989032990350666949583941434577243227858295781914289343336976453601257714868230049656730511996730444358277046795467537951259807713725381180317369241241977839540739864348577904192818054751386062989935284329210324609311217758793491541175874815888630227026550677900959894529152974007660933297318554719960466673077569768082235542596214294837171579266683977045996875993957577673376150033770583395861219501663139613324844769791206150972356170098604457848670381447755405960900123335688260011290267711948896789411437079971783648816011305674626699852350692727270586727996693567000146535428949218330130213627963929863825169255929095665592158675932582616484329272684274886921465324423903074545685101823708759604944217263121470235867572269708328026624194633861417174474122085128325373086365476354834554155304384265092372746710167256332231014633393423777957525659255375912413953304221747807049944342234016969053616559872271863726515988696275228495016013531711933014747229512203867138726128820946286477770590435006966576050258093422516865483655617466629402237321194050585708215825510966940303470068525963756448769577420327615348954771537552040107829658272030506146287736589347932519092916876391725739869049872876402723182956862127146108246968945922893448868294552160536762920422366527052917941347131256674340569971728330405074228152609207060941443148530894964251726982169179676183455412199721113162207168652045724055497540172629296705379609087843510361730278293884811697867119550109962204813391338141126299796963163932785069823942887407616215300446111828470808083019101516335087175747001761796503498707282921227734340845318868557811858672198316689737613958988054184030536277571962289515200376721193906673324308229451127500677300983983449639845728297912875806142773548661750784727130442502614190671819936175940568223840153946699034693527112462559923270491943598820026006331887206103076264322327858189480777855149783671038784708601118335647168589727441862229678165545105239370568300907656500232508621873226732444479527953926297239553088863349191542714269967024590133829949324440628445931048688309624424845281836228941364016456075648497047847943692120193447052853254673820182662793791058969409500065588541285225138231021994534808895012729420394486665053654594561572230612507206561396114444612526718406853099049219651381168977012960352731107512564029141315897404291128917582203705499348306698317621906291289880260845315746671481618309890941006629858681703570064797932911235588830711567327790008433412597513705089024349986793598042265514439647598747654042192361871605884924856689166043277497792623295559379692513655874661689191955480320037462684937282030898653584882687232772736702872639938771232440707083077648492994014305949103317417289703541853740151893492520366180033795186357664873231809536447364365999366361199395818633506221401413378854091421894017694680824456087163011989400664179178756819079420908629177841936142689933748554928318833514276761945503571747228440778474964971805519752964619845240972352803519309580313495799432582966796143066843680641565974140319250009341660054697783966742287131981978740286396021207443263283308312939731662170266614146352180839630408703550190198261596017223701019272962551427496658621427818261863449337599874649415448836375459738970122304807242809423609151721134214270683434720110772934335322100169523560854651414297722377157606130164306804826498047617384206466195007710975211833638534222201597625439987471354412817590796016399338997651974537727907035797911848669269395403549169850061567918155850912550058939620461151621173731064262688602128509444100527768053958594170566398822437718036731183343475104877531632869071156928694526119970570961299276059134212216529704240527506624395418625519974445200981230414280607031731217394790117895467955576954931178933868223878382123409031968385057180322072695246823023985386378412930311765051546688650932913516462722922716520818250880750940112640100997166203024745902308069131035820188355334816026101242631332918434450867851965457861256573713362033585251686955073972033956605172474312959600097994588086345709582637509588230009262310213774081850107997600220532602650401295508157500910895353814056231097127322382329114726105959355433509661766551234320733890647790654690514999172126055053949062485299965555579359323712685548810595709840739552851441237462915591843850083033574128780021425777684581696582334426751044032700129341472662812327006566783515614648579016738640544343156780798474032540411967236575122543683608331274594798750652305357339353604063402875595029531712101511364427054948041345841431124138814533023605950996399640327711038174992678631691805456266732753493072052295686155041565095269402963503927718604678358454823866872793460376027116039535577307574432110443137336221165886182922674358283763855862256156468799914802779996768669163017661712701253655513301052290408420462726782924620472852810651369548253439649421445345106955293866043771865911019699678448856152671263838915300805976050658453258196419047798518383196503541679278968744683209919737691952792142076605169982016563934297095776037797722640293561537536352772924422573334495583831878683459748380384565151522206831185792825275613246215142208846392015411255089519027875758686906984452371190481313446626351021373819882106973409087906317730185315147698266501725700401518365408410463987441129916379983533096115977340603197126337396434217001642897988741464598839348173812114087572773009293062029482133071351746730960252937966034922383772635148498863512671743194063697260036210790927428242522361717558808023144060821705007359003150151116632514719678930524612847638314392964863065420240267537617828415787900329009765050466934315498594176245804670303596660694492205651994952517288185334539318491802089341569128314289624737015875486505814255791424682408774104546346037053096336529057183035455946303661805698661715034213848695739165848479142920073692571155262087378428283033291065475795343172570221552474302051833810146747265945266702109432271167419510098624093688596909541372922547713367125019459155433418586552161685709291981464803901434317409208721301162547847954466016768418205544117739975003470744125416233104024137952262143703162781396600298450406973696615419295194513871587612244547306597004443732587380866769452802655540367247957895014165283215209511738243307457081959304352364496425496956484022798848294019659996803504694922264916172563451068574057551650098139347230894428801317801946470775480611970014593676089679463843532365222240548604862573497222146696095922872512483990372609770850878959219657036662716819880329942990029463707342481318019305672318693766132481823335746450541438559130332916890366325019967985527688590252777682958570290536264740015851204953103090585178305593377399746300828851821853424310287028968060379276530860839098692162520252052292777835205526102006764542389884640555808909178451652929960299057031270510494887227239675858907068496358414246969941172935027866991501632313701807521835521267747341059147056640715660900325063779457781009177871163233462322856814217018201142203377468932081388786759178035791137754842493667304012591295978032846090196919501713940998737407939475060002557223014243382906365323921101290068103173828533170197373486835872884656690803395899447539768795352462643520483182020319938668395514924857196851349831166627561912775023014929820626129409722703988818416068912582679488232357471243198051481979247334448213292515951589321731268595235372066727513079020334560630943839309668767481009008971494541381069055211625993672089272305113642365453063335899870975565264920293973784023059351953227808580604469342981148023159394009241187149457189697993950611745714300838457829404106465862508713347212889093860257982979014104993930515052192532372413715689520403861827053278304978652439218410433370556594882428010863315950843343371120224906303205212192129472435127289903837768900949587680968734923233245054617835196561291743251095969392444333933511818337195069826517578970512070188255992646649789479913729362145322947779301139357071894006301126102685259892103127202292437125297431426105388056584589730997921921070193909416963262788874345405632240102330296434728740858333634580696214962160971073883665123881089293209952129995693270707031409551624210460330417218192443249189258704912177885866763152356744910226445368856766936128395084804813581923799530168818283787627006500911519966055862796334606393294921726159448398586647966150740786292489352264698101497468154877931581883873432720970702937918996788312293809083331574030511714126784150995750615904907107097607948614899060187968266421858464689328390141564271711360781789680508285412018926290978020108637574460449530671654367162494159927001856940921201119544380702651769900347212071936214139110106863783905239925420131055335953332431210966592793894693111533611931428883503130188159764686413669005091580556657384012833565519129068269638549113857335796742816385834970109911527356908655176768434579517033487350872639682370102728891360969575251911808331697891332294191137984250708900893054910573265183010922283869312876772299161756840789258609192515338680649817349749924350508901407886453736132740267633013424681832160266849621851244554808843550240023958632634964390747902776850542960767740506102565527667370330904196258475511009224254752714475387367716202330683101166388803250970821618803785348765717032593126409456073607910071412494866609897291292053285899101260036916660207748273678365892667695348059513980230631853162165182201135528577673289814584816637295373106464630241318415492379395490978840366522961454346517644496506942117378961127340677790877562317843669651242488765244424860311821647774479134252254771751788866505770366072303236688955813478576503637111602102653978257366298484989192055557450204852447692454830689993690784488306502348162228919045469270628788536038435378887661172367915177951586478291935567755575949940029298734320155436855044206918682934785673825507076340202826238789036729365095061880645979864812461922091211234231287237614758375383667823789356293785318266410388783666285741877912645274784272868792524606857933652562758864125375837213438571305476596585994450920234893603145920374367320319333960332975630411838409571103078380785591270645613615164085695771228694476182533511180763679151587958124103588553771263022946269875994205572292718782633057248954151647873030797631038095571860006007685606553533080407204096035423286805226594784065382021532182201829250262438435926523392546845500199961092271733465697563819431717952346612498516235870508702289014551479035951175461021497441063028209144934487947476007577485285424260728475788800618207074701183212046875298538051112801227953390516086568943493555191869945227312284147044974779364267448150334316097804683761466795446810257955420912416747761215288929797708251748206348201963378264837062414925328042304127682938416797839929043370981453509652303514160722451554438610894528515239890153968925096300443732538316174557964981434123701047733775371746394218760991552118676751067788438386256709620968088365957229875033514252401426189111697395775338754599276529104112524490942954022022003085585973238173619303481680538764868248282436239199683906890736147840372474791499850622103608301377871899026412270162109108571652788635846900572620451524022406198251785796192339330505284470825569277772346417325021270060937615208482006444352432907321390572811729314331170637532100095550335633477238485131312830954965016611704454550037052893018900342716742014736247598117848797896099686115443155715425422735444451918753181685693886585905201751559488746687071393339198139107771392905449261272539149198461266973039090252842057485126035109352915232478815063867365491189204673259547682707090858645495491546301133672406153149582585518293298698035817594137979193063002582403659767610843150228965415071965966752708679527858982140991464427492290222320045827257289374482931868266441887153940029709938373657634709528434560436204330238377031132706931333118138637421503513350544712832292706433987395238345699929798135009830700483263187682380740115795080056662724714756878579326057407737497321817031161968302548021481009120083027572820931314744496005687742980257523451406526531763517752235857709585315766388457583760845082810488367908836966694701152606533035387011257011889594991635658276183307787463875547916488625154675261791401710826804407620073449762682905114085589663328977918696831976718666433355290427705762257616326603329790665528609881193650388459881145132559134538625349807062926903984334429472483223827028978833358430830618094114903023418853956523282028748259951374669806753433066078188543435922048511711671151662474683122275241378670071214762469540536764360802018057087517988085251668229203489592275943494710131702321406839029696711125004251111439754892768475030052016142520578949656692995098899933279144442894627655209568882391636261923009055737969861160042588719554719737405227988018496936955736513721593974878999907694863785276827143929936493683936009324089942484603002080758175150737011825875252866236755683760071071731103698633458839498977725293507960694162201191752593597480771533627741702696911530598657655553452254638251637575125827397278837238670905508862584885244028579800843783525286634746005346511540321906879565766107797263299629640465621206498951683156788380281869558888186031898612856794595819311991723902877543966427761324846085412606223700573659706978522352088985162924676587798478961239227829825501759105351619583638010912338256307850692719876487378427515232450354984420090654504142764912514306706739962551406110571495905259070239527102489443290759141324474834747593329496707816778246763782021486233020029515861566353761965722725035990170116089771893259280867224179056767913020601372075809346873798628209505306586802006031904141591471898941966113228419220372270416101054670471284610595016101183783223897062639293106276269461546023642885787896207798225086459196970499189185756220531016289761332937110558764314334047821370055574360493110680184817845083757193625235751851830215251959549622465469990933127630132188817040183141932857501594403100249057869854752056702926981713296187587766422480127053484202025187893885512587048800598099746910474264595099730673020799015735731394397207007644435160432788581327514217111231778981898508392960155097146727019736898389850253190303765895444016355214990186845429782968720862089929084473037574590786099198467895447350629005600329535034453264548643215034576381933940167453709385236393026513474255746734658128075911671345698281875693161428496187598466626880339757386699544668454053494003854160454098215525246936871593301600900419785611060116221865291207050293268470586300179176484544791402288396922280542414033110187739901823322949836206464219860652758786207683646438174917422504672480314978168061681571667150018544274357975052313763263154940007386825814460476972920881700092402218119233605038711108071501375195345934114540130435650306340147287069166058227962327053218800341782427190116525133575856872656747233852527985223646910105022825921276701774459862498619191851220151885399726315578664325283246367103952066071815718190803985733785254365746100719699639803669115844701738544833210702571709339918096524057283477764708066709694628643874132589527077952732234105140315528606474646580099266614042037321730962239267910805251941568656300171486455272945482416555942084338037425238753471346054684078437915094393804179979233171014526825773767680013057564406184420612403731410613687902831695551896559912497855109319859468566294986380422388310453094491339252147229345292188881267137212827526785319568657003179583366423976915657203590695298474039913099622809497272115481623149122479081917780378354500467719964183726285032746083397840695603762729610248726790024002085740473726594623397952106391312307175852171924020642743169097053729964225957221703863986678769862425697294312441619557044686049087067328240212107780186889153814751481392724286482992649842237805609201737784474032995114119803056949625032217215225913900174940238564908343104542013323529755892430969815877370944204869427935971321125625891937697020752456492014034069668183082485629148246518390586881494255096309839591316936676799071659509181432594336146045133020498614516167051225781434658823031370121902288730463310360413443276862049177523243843253482303612867587593657019430709528673833292566375635168595060578614166489505349712247894765256046223993059384689169898533780016910464056664576061436784036746809856560317799279695000547558726838477343150452049045766300182942422254233347801593984354812830496343931292684479148258462971215905918637212445468495282914572303340798450123221652743328045382683448875959106471959416645621371651588557365296858874050030185503218286692973740051659040617260996557549735067659396703724023601571210282384295272548467253447337949695935600096764314674991598674335498501765369949037235235488395386022325963178729324734204572346729305872555892342100346564472568098415375049032706720733080186150773208294568703130558090856931146921199922279607631682146390266490735952578981127937989307896669120396665386231839256736491250357915770208135808768275878378628374268353702235510485182960088713916732453960560219295363417298302850714725910380358983944804897573867146288354594423292780016727532463299877747568250218123604996691823116189830403735928450398743590998545407329000730462890542331083127924305157438147199346555069972017858877854176376999091982462039455997153843294169780788274061024131987909855564510782646953702436668858520199193346535403775791998559584327617226740181504551662148169836115517969707787478997590207918933782890460792945352568982722492282068963533383560242749180528380064170783598847858076840445357174617325183790625109451931657793080104445316063171293307828264073406809643362622731293857770106191904543053731985442510156449744421054279120005649622615466202071617753972318126591509019393287598235779384508428496508745096905780404809348815055780238847444289958133223067859183901418177746649637465514610008177394820900295573578867272763569078405219970676914905524756329015137352500161385149092968235610457991856762815972452130218220128023798748651508844438471102253796398531154546274636917695185051009119257397995844504737693332660352662968028799981125170688598501958334213764091880103820891580008832840032082088806646709364204860359207661077504095185055669154114019276251287972181325268727214600644752773127191068722581861060838169913723121119982884338254908665027321676191996184965582919446108303425222048671552712366545727199814422575476852257258150769118386210974872222946074682176729925686458870359916973719618818005593063641587001790983980515638045673374601938828973869867481139231582877228777675469106428045992274493688116022178715095771096246514612319116182748980564276879130953253819933979750018434554630391581903370722848230536912739600698150620092658972346512880738993164770047001939574640312617511726847917939885022192726281214874944985440952253109846237039998592531220867001610159902574635859430034645520034423383726352827174989562122792852146395659574065036141161731337549710213072384488472545018852081758337485800598067513398937829340078299902831743257284370349079724115980040977308632953159723209872597249901257185002778792748451321181970386894448008866652654803276319187458147905854787137053877498172085298125660867642744801738021503615132473044734984535672726367678475328653943538091335749003771070395555442327636825587714598903569249115587418138186062293219236045431609479500447528031751592004158679950577542797855945967049493096127390315718813248187404710027508311991749499679162028695317100165600523936417868200486123829229632494813618481741672475646936653943259348540374983588549461069007922979957715480442652188426630594225488749535975952479564589584306141568884671741262369694625694067321060739058742721886630082815656670948681148453679244950428703754921055255585359777158789283834264061777190216969754029374377783902320141761337866735176577970830745887091935433710660566659497498895248280161294265849225356205008146712579212234617999511278284537924260111241718576266608254155349299605873412571256802182851129929997775326218877419192026785561737271932825336293788835494277208715862144502204616616788013643678587671078222994090530129079887973870583725781998536072783867904301920896474505300282272218506888967354647291735101984017462812375518001799297033439079180624755728863198801780969316396347062636006620441052724994896197624735137108818792268102088900034610463276163657822734229514308981353640848480178196260754531024108412778555492170180365574623142964164685560078953975659760553936694410989843535419957788165458581100714407324573353237355080664965245707951886370356513060515928648832987158708872438679536574789053091138601197304096167553509019204683180369802427838919326605619864519215490627213588038239866220457865770478046359042446040924239731192275010096000980449786353615191750166369119453637963598065776070939300854401443757693499239791754330744540857558271683840214349096400054070277151045354232858176858562191669599054911201135191070428428996288079247890962202127681817365990001362414868419453368918665565655437972106822343674325505149099140125503309055776530460213545066250809781792369392588960426678820972093004132012347990386573882333560224710002261289079424992671044027452046466682285429592194158003946577768942741722090354242278049114431555922259034526694366632653631265436659969554165782609335914885661062823719985826307363596373895695759746973168046011153824986591345976047678751870161923385998949652928363913964801832839310631940830009976809749196627973685841604025927015222911212686068653436596435937271003837798416743454017332438164932349501989458116601291656818021752921078887716286674585520189409174220878216220121847549153248835215020836081888962110046920773120954424133544260918590246779636394824070308765932498465502584367009953296650179072146068471343130419486571487618944274817136071249728003340231399251948769897969149241599845257885035000803886279187477884584726944375884464685738418669287645568940090963967893763635360084927365162707763317148319263685187649686678609630311092472908797437095585441889873562358630454964894042052915052894839733632834338881396926967547280644956532898145043365087337002440218985728104928290350582519308224101054382940970327436354120255221271881501207056253448037706517361620679945034270462062217995983655969559564671485846783154211987830746247472561770529333730575860754451530942149363260780195206587615854583427011466416909857221097279752045157635052356013850820119520015126368322044637302056326395892446661697044009562830233469737695485518735267152525058677853956313479236122579334048116463789546281588136309472862925088761965389397496356487504200558960648674186478516626415296664537536334782678536567597863620383848037601121627707548806090869603780005752679927568363262989877407913161126440556495945689082688053357820468719265637558870970795967341683794188549448403198527219616860410843840152341250039456417800445959571369925285611202086690874934577297129147002693033103377559586162563097276708501501156427976072327590900025524356711523539873937748552312889931063061228038315007445602076892967395394089091641999794973789719494742199370630939541430575607880249031993637320010158949612940306652394701139415028351408048998796805194311141801821481042081771318190894179583153772367801400906317022433108115389914949810787372159706267806339923766692960339813748173930080364775506799476678121178587114574030078796287017282516591791592594642798608397686038280168667524958923154090589265932789655706170700513644732301899274558520265118675729110771660363667916764467763245593538597473792615229473120443812649850345995557449066050699594608131560047799762061364874941963805613133088402322322064327445364293956219499278736435954975072600194252729640639167113302267314012496810206336062172215244023851488519165542006962745585716611354516367782942016706437822421844841281133300105006734312540693797928017946374459174384404210911116949556817079381907134981817410001415663785387523899020686696515710310589948725110665072993111700673019813074732281609152702684904334858883877350618906501927112319948526600700137427237547114332280963174418900658063212121240834238805620986344081071950423660036486317422073044051108138546123911393802654109225161077708201620167039433614063458919027495762081813578146148250052460247444337664948620439169951598257826689955474890371218837432015375203439135767458034666136125037219367808592630152980209323742675569003269661970000039584426284895127896962482631327570998640510077521875139945494906717414583358477515639142249201312608891834037825025796533575805558247198791461337137172673224259627705313194411656753303012977652654987660015264826157510575607455420002602957805285925007341421576756627738257753665097949068030792292902054105687901330721878785398403305783349250195436176922113480079227124715227677939249135029862961290506716973111177740866891679717414294692252138904380963164105906669728163432644239396317137791068279386804806007152676254847762622129315969387040500518175043022448380738280253628157999495065715572404792145060597467265759125572479398318420881691012459407544253141800317840281420219650931667337048660039002181134226126492412191704047474279309372109381936294258247978453980200621410203821691434358407924300009420464250789780700379447953850889946922229067318125650616412296627459329564253662915961490687081129351770293067857836828854196424093179441070602382621984160012924798713634781777855253955499877633439414170881685464808749999583611963910313867285392799442270066872612978124374947955636716418232699694901043199328308264459967894556666517884834513838283221472077323781446910556389718793031469666901866051283737069513382952301855694887552289374709580490582576978371234617346042036358443410134076328282227260035256252094224029286758920891864647487495742660789791666413169459248837553877894890466488747878154062708038919656311405688013825446877805251114865457685557722722564575435766212143396536588399200899008906904970667077973115246456810933166259972745837923369255574263440880820433319936826655518345575441233427358140578244280978869000752170761811539070147511879104356059899365337028180162428125970390948723336178088278612167796193714042514317760643935646968094319146259833855502530496160628381227957582803597946038074351493211038213965148866064091843087538238948814677873053278460747554498514980670512742224404750759572998147915075098148514067228441719848959468233036422461380374049781916198738158677727553025208361957314402573758405045075311755007455635152152331814027057059357973222538951697936920434556577506765810798009173671203911691505708525147883930914018628661936102427910238274753723541746691314230961272043118896519703280910990861132506295335156349427604240730564122763157918610119447026353748219444687537198285219292067159580551008168816854548633694536734925114148441716656677808495538894819215077420150191588578780981301927300123744044390690585564897985316652644476036995482477306602106747525512882113341854440627451568963477672813811033398882199914699518227585925302001706875664761233654979740715491979491105510062243957252785635857996179883427404443652187342991031514810853214977349619530022356136652186061697584968414410366123440871857899948248486501156788292652092126189825002556844025647638395968368164824466127171296107253867810459569349603486113553108239253611102906273895148649879810137244558378579525285782808691080004320987047605774149094978896264879781658703482472123048868684186056574459024334112260725073486286538291011995708369620449056701747546612350296742870570932798898178189148022557469019153614828127773267435699289267415168285461708510561706007478132356453833619753001609166796284332867902313997429576437097173665527155982172672397470771065271185642439957696124312014698894820768252377644810078585215438795891382760685391372603843137589330142246996963182563416740452832657420751430007099046826857432884514944301011095548940286379737351949479241637279885889852330726866855258582199724396665205056201700249177833639873911897229372016360418713733333275087219230491088539635329563340457794313388734953982322054664128799150833260982017083332724896729260125806706427419905613772316577585757027145736726865601595329772268225064241317622668569339289119951428987068375959358419996711134834054230554858281450765035268823707137309467558438049803042923912935671594538838008290943063407693677392588520509041102590228649465396465833372143714125298853612718803166810895200883574892053487077859936652502495631823420328700230090639493538024505069320702313202981771684030050603129076081429916869429421092604469446107328144773147690710251395383340918325367525548952169361066572735001974382293452989658952701487656193953415074782175197141194944993226494081971047494373545040465400128030619340606096207803508083596486627540475550792161621550657391762028584395784936103044469216125691185488099392846936819261634627927356338907851326981050099295699766067524698392704146733805666508616193748298710207645361836595154082855357090883484229096541850652755718867854911892009896816376311920415116406641032883772855371718711363467014214808331294180494406133785229682539747067951474071520893788067119587859518483518709928810215396027068482594918900800361627245499936407296799605992531574067269541289813725187585271886259597161783971538136149376455796075639976781617937346141677725165413773713120732453634089107717185922169335355043137033823834152366097072781240889480618810968678258422885264139160297447683359596065949450244441991478029568808712563800901557034083016843859058229635321643211107960138831184361181587231367664136742800817753070672810508315141274220936900305298330624167179088154691351464917844846787850050391449269996372702584531034509030283080652667540380921339224397976183108659136971806162828197944818238394755508576974653942235723956383932214095752196200747513102330784939719129242230015181691036661846126158330273891685136310620594008925773379222239529189773207580592026824334508554298409352161003647146949650884054548423790812623872393695088666322729572432327828069085664632522674861047807821253634412634748342525040719111973133925947561321720359093395108428147913103003470051040716524416348657689697205440602491298074942052338904996531732994237857439569597750563479410811117208127886833334900363634095888886610387905788285381208761567258707978663941524762660280584315334904011968904600247361303526923485722273506321587220959274081301593079446073226649596774733190870778995299343567683499877471760517862373084652004582517239182909390845467035179875500124302178010714713576130693197259127337570230327848771444399251075649858949264673356915254355387571961836218924498397469247773281902129169285622924024124950918199461148351714958086239603381123201963633800195772356129804394724328448785066582466473482471949509337326139430423058475575004694487474252896467429210450576881866784878002185820782086305754051194694792850225373669284773015622044350627570549473443977509737898268373593329701081357828219275196094504837059734531063994586256298123969830267093999219512811892893771143201831287973865669085737322338552516741932151109402126388364151357777238658416953697397396124707140102621371177597078507596521914659843765512306481746150405763211161571912801549897698991768967146239084321755912469054530536572106386821256744322756721324601460893642960012971693814923675321440796723776780341127816307316434006705700445606161116119248260993147426050313730639595474823945685594175427727493108586178683166718468104145299436995412584425347771859577987379534326196114850917963485615189419770720304039341163976923215766183193791730479002161091345256208942206448694115291512924407868702922655931019216251327886529070114297609648064191352026119602393130755677495224981997383526470108636409964386571633777327826486233524890392743256996968498249950533131153820466536549433982095929799190453896693749124178777868062942235030291081237021982560932482122295467481319211928303357154504537078978184955571386332760282653972493773378115816739009956761903284345689930536297157269691429532541266273729786596155524247295960232046031672365144396725024333845535990696187600628669994877287525828052494142817422459740828652468295344580421054987131650200707904951655995597867891058820821417266162100804375836754863615787045778719395874186187231348138742799397160860288342265245393871715594357439146506402189668783407589529389966751339284721586601465096453026213584898687534488995927207133580843530972643272122717438454355463657024688054090720478699611098827867929283582131293738633165429527663670103758221593573908466264690773937397642146273366471830304484511463400751878455457106328106467071135774502831908336546922598010246038013160869778064262799714206672292838360938950679644999110818686194168098641251686806920845617733159470586193636630847306815178596796137121223044492868489023383637341174794501646394855060014896500866538207147235702429940643979533239622993785129290579318213794358363812053148567811754026850640459975867049459709573228874885509950039477505166474147558877544398109802893209325242465300990835432321595399510999989936627646637540899766093260325764873810546961109065293327145294491494630520333372005687237735973751853256378169495697929782285961218356139810694968616268473534214244890239203099541011238114787352064270230876925737854390018793322766690911085957068574987958615665991140273931548129776992685733580974769941449232639292251766522865052532920338112385249080598711478203674575439191497727384476459914653095076781080482043739885022207865420258637466853074271330394468035243062798075474485380131806734387886313071751726586371784975600486289127895790626892939259065657691050143316566354277292613893895781112609474625265446314922383819869391728102796633770120637276771176283526968691180538697878870194599082735092306441206775881692673139912156973044955536889620326286812633477176498507660725010731585584776156338362250169614723542908617839561126603110008359611726631402089958284639539188587952016072316421108456910350189684688491101657467828625180610114322280681548513251152966756471533391140831423563268842010662201190545709565099201708967332549268363477875125045096496389946945266235979199459118084035753741511719989917590748823037415834713201500453012793474586629354883607968284879756809551242179416716510877823832309911053977731674351242313234652171544544155837689795464599579552877029817548774167597397324060425309492118849020116036585442596720401188246786086343942037269708231123093421930937773189961093332349595184494074723795643329848234407890415175215695525402714547851142182838199889390245286846931002504670265775590453593307346878137193237458283529195610886579952157609054772752545193886013840366800251654920586339506973157992198431444366922345929087965810356497946568613675903648941023488712240201457883341101880009317516908831495901879962691074758958228433931357389064013874813736664907376976915892307099882583021322605212107882942343539329507595120168102262475425310763304891877398902458463772550072939603747399711776601133161223620583760344773162670704366249969149224692489480771321638307089797313373259049202743507376399685877875133577166145333773402141434171365046007735015566244055812076940394137443282479076860817892402818101456562114512712365485861808179324757163124529295544019246949679334812092498299894411569873364051835608072939998403848680742136734398519769192347282692458329562771851916705406369942257149654111495436300886960138646355504383047537627295415617622477973796294348386910437554330632115949131341382271970129663323880598080322472350633203570566720819042761737065070685102705560667872531859536350013326337732893885987666813135959873899978210294551555323359380227595227491386846993524821759707030693989666435183982401806939657258927011711287852386043476366245378023113408195856322938778807167529191024574952902223165659738087282695019071541508607200076590406774334246293190514481869668617932681022640144065265545514839039859753561287739259773917760678536249970382215509912444116487395601638866308435930145845856867939323975579413369393194769712605078817115871622785924936769608209120331139194784510926441426830652038524196889061569518383870000189197080186605931462630399768380248408017149728952625687838059550900183900221495063905850031507947453960393564470681151929748229295571421450695197915509692490316033277298665414200101053351908700426900189238648060049462842526132386419181942706393540992054427941503337708615726067815141822482974500466785730952020969618106075027590082838614948125645634873730496413138231212760661604919422885054086541064860861811368841774851056412940204470897733956679727885180967095942432288207629601092531925185810224418852103551352803832090858328121261130097040649028851502443137052863148191824554357563413433266681790286217421631611085343455642307824395618030739554573045948923538601489739889328214700669977309962504077244900646100447886294245110539870761974556762323656220884561258548520116837723129786183889210163118537239227549604992095463716763531388273350989221125683503612465572419698520173735321384361276931469575004179443147840837012058431331692718744569540486827259976361878993347279519398324868798907979815965945858172727053603787288551128592520411467739334103065941676265221132235048660533835279376585407956807679005169614046330512624590671812368474619755064790519006020562630333599684862972585843485553647482645411211968953898816781368296040822313309948307879387436359039353292998936320107854545303636418020969370494939713894985760609810618251899280401585164852501875639625698794973884940278772721362764098365654951541467438209704814046449292442483867510754970629124693396940392519343955962301517675854193770008401307151230956210013417720967716113313540085885696902489095339431938590762924467626324198938069202644658425446255157892236208269572608977885089651918910188217738391200693938761673308421177387200258091513820911701929774397282630919985915838117486293841937065790986021401978201737234987841549767824463478837874490271920745001755875277569030539206730361040670646706961032942342240252557715021029341534968332614792552980284724227006011784712735253304603787694247973473880014162200774990323307140838938430742541585642760227393552379157587498615333102415037109725171652155496026571509921440066200827111099313666221105796393653760631094482879293222929152968930779103515854680180468157046527699134391374386069999410258275094804465644302502019569337448061193632155948023814587191325454309194355415751678463701081129625260538416689443951035475073590824422442022458019252573896566867468986867216821476754450221558934696923859691279460870172031050679437411572928195084537439880326224924873299416835344016368479314628336364304153908664943053889732575871180136678714953676131045477860109851758005291679641255214338477837933167645637948089661249100350843482923391504056599099599161528721593617466340882067440986578382866333134516135206875653039384493388562068546014488604694479221719857634123363559743222383429694787445106898704055319058279607351091283825117538347743487340882076893109200754315206162795509048343920405948216332690034360584713332793237770641091896457253882791627407172840391018236032197206223275722726008388354313847965796380165693496188095502279192176460143438146662178423421802551307307748594385321715603842041631023411789327023532164845263316278016518414322502667411913246929803337086368726980046824290884589391545264676505466442724200554681180886410014683363466364589736520701731195887376308507160187974068820298799668208546600072902800458396364406694588438440672112568873314945259197666438286391011323805310259039324902242082757966939464290980746072795834910422908294415931091081951577294987930455893805018014664580314734485911534125603902452758425995506798361187389219708997914214768320862177633156928512774905829153069391174641103036503261202164113073033025877030400475651163639684313431518560594809561852856402535764526944203945951095254258704017622210571216580707029872006669380521583688644776122234680811782993041493399836953428384887031426077768055265020737091371335230362652135099846393711512172151543711611914841592716276161782884282898641832245523484230151613961128378184349868242743783555250567661253928899752185123947986445613628409983921890644648467400219733023018167970898209269621639489367444696244549898120732914729532619360677280199938702440760470669824232349669893121606677478509283752260001871099383738436998119257796137747077567337750188619915272082142169630916859540179358796082895633076411267406249154067377334025829265613365767607265342558019839714094796077743993763630394725671464906076104661655961629984348925959249936560267077023726431270592679105529785924583744502599789209334630835554648741132688433695960497690791814914156191812677807902175077213782194375470297432180477505443249451841126398491569559648072013872341391794582206480171560037983842499198161147814978813968636071364181357374289372760886972176561538940747661185213935878488969906085264155496554332025548839886452848301631959509044318048664316268823374386657364005975210522771711537685307403415435098887163069214271921394170959549726859320959884940096433659998581035633475756364692955473063299533135163109611374221799660702346952059532835786046909482468356512896685028463027369792967662928904080235002828914104698118513775324944129417159022727488250431264305777621005162441243074788481257121634450057318121072928372397509326540127367773088301638924226044869144007004030982673186817564166809731582111835195621808565270968490534922724669552157698050278634302891776566136006129413010858879732510894863233239017142550592121357767627588093831857419509948767262625839345778592361063439771459168288184613748477123615147971497374237470353318845322773714204191643071881736556848412051578028927206366717364935518175765941952402752200871083899247752344821030417972383752444142606870697095452137118994642629623688711927132020718881784991938000597439377882500625190073097193658210674191171662406582135440150396489116862599599274236952608622371672773589159683662765682459100778631464208657440415323160270677943908376074658601875783760654076056862944690023895007028990291284976055544484776986441629256300870663421774141427194181217314890334679052201757498203304967679858402880979818398068572295090089054556281800165888244290998551199618891498811172795750257176792832695651574799456012863582469778777780351222975695156865187400267925573193894313701712206174525134928890346503737103379085217064982332967397890107272071179794727127846889577289484600766310963653529915816878366046442986507031576778606419567765044042216251662386188734958102875136362174855935086073251085123745459742283006892712028764440725249944994299795535160081689087564189081624194399897306700042257890127258805144753554806118349442346579432187324922461053444562725422460049498317080948805238463042420077742352687824521941602734610643884912103803064934128464846783989771366698798469663681825176426459782268397554575805956868828188273513335725523070945158909186895569735395253869085580382828593816718410691885330673072577244441018557300111520858071713478128734910640437110114114435207119423122801180173742198969642667348347446385764168373674697198797647887240206197661628195880154989217170773009421328648879311557541449324813104731403362664408650744715360822864998740191368429038235857007512676605168278134682475350868101602533023876604491556100314105586697654343672583972171932702302387611855279032602732410615204098800272615408966067307696720934532449552765577315218756283864068691307235929517652613207014148161758634052638960694893865895510620372051734271354538614381747402804092066879907805769478512375776908102107068438391663294362056103920251785440324548534015123490703390843460117473186214829757247367979638207848880364575560722874813675338906000261684499375210578079209722438722195576944498940864125434970103377521004799966593381239682796901292409560776259117523438479886957919931707115739574919750365536097253939613900516917939323247188773899662784311547113635636928413536152315971283767143846317927071840566684737605301899340303172913337142271632836656004616179848562607023505603939584796885623182661366141607884659979112657291386222840615833392015027775795751929122870687598127858042812690236842270567373954161764198190595234555725201548128383115320872409324493675519691649227916531140627532203704436011804164210200953813332444234272949407825206239695643182302849869066467920609480752043016833969252311654236954022369632172598250151891102528686988363384249695478166622011186731452907300737157851259794731597236036927305703021212970638844771491347489433712050287266022366919364762304009973848227944104262817853018699880627439240493880691770422434251509376071008745459297552227810250191570276690258193890447274744803889837139151433615858031588844859899782288011079681783177634971793712248605149546990649435698783851331367365867301517404665999143387908387566066739563544504535891296551775708936877868125939204252907202157668424688139394506062893276233492409649318729123084198891276321983985863342550342962154985355730920482226870709655262467587318680510853354551320833106128697299508959431814668753126783454718402422157516533316935529824088866418401330949310325847111615792848640641980777394162315712382607534149674195297340222557968824287406819422030012404629102072334057755286742223952719164979265254722775185440245441138723373024054456102892389385739038040056624009725242628531863855286574193139756546945595763189546225501211600666290299027198719545252082888658253586616332178136939966985544696429211950486506029941081569073814323230416378538637828962789838687110612693823968392634361738147581091611661883323311709426681651616768524342532963157351224862701504651109703259038441551418106276801409316366771235804986177868234167767908113995247550492720941220638292028758175212902119397172036063019327585050386539205904886898808730017600981154691893221797084839596912852129712529498980813370895288444988599391677099100709441802577211377559415561559327513289422035390577117093380267735190367344396631874031340817559137645110993372286526684351996319798101250970918163671921931701438389378231729170839971270750027004662219929606917295911286994653322347580494128080096369473758302196531869956383134771729352498080813625985241527970185335971103526438228508260720735924150824703345298303576541398520058813474104024430885029059621592505934703091081438254700777788191540159673587475888246151858913406128194484569783757579062965514168012244860679283173146116072774362741253147924674131701129058136453779211557562156060127922763426593934280813037100816797749735839509406610404578667640707887009439940360903982000183320685933679337582915164983671063431610393348731154928727878222087540399189493322302550553991185447111846707143090214310089337948692273356787523822181563514182766682346680261502164406074859975832372598138605092068894513827481618711651735132814771165320376113147598605852353695006471202925760276463876167548041994567473409537589322849928031867938084006559355191839811537181218157551105465052947733920904273030553719283568544708998009655986858966801196558811977342007451787697363416359715148339339043765791434096601641563706824447417943954354217108744985554572038995222862602548191713344635603179400723621279366607804692921938384370996355775441231098731631035395033896025848868039574067660275487310248814004598942848715775234156340431231707376605306422961697020842592807788867487405026037321715353238779796361844435064204420286234286710164137808788557422407604594192049594423122397298674132768805678762815268387036799000388769695267310856221740122626449808721051979380693543884931842723930316285133579227418253524065268250921555610320912409495240820233337516520607719801632250621525589315872372493295691129365073572492346489949862122169826044525419412817200881426279663849707347243165525685821373109057591758520392689162129584788358417884206618521386137131460736068460623440385556643958318301098737948115659897511110405925786962818693115667491853698172210064801502966344518605649968351341781325724328333082220334060702118180049902149655185491068373069044248412729020280728423022140124629930422688850588804333216814482786221484391560564723363343710372687496964773629948783577326663647206663539730217490559208187925641313430183393336142022110624263898528962243183467122503562459039513897691958019504066691020699905466719312200466998066790076624537351385057491542559223992901345278437234840662181126348080693537047093871093729104259878943449587486194796746444241153473742566967154657745741247746200648061604211037089989856845224398784045153814950997212761528293700846837698175848914216587321382145145387903934704961323769351287120840800592584747206319673840605527219078879356714211623643181090223068317836233494931953130783781037660884965018102994851891584057342121137705293054632143558049875877626695448647105759896809333128909997977913054793987187495338291672135317522512988053422574643466148448232900841132878466670528033039159481799982422253620819037386291406029841771921471457676845226460246336241925331228040785837896170120173023024879541040200849778084961233099955511253684183191516488071598269928540216305969827131724522660817766493693779068975669189900999508537250245125128657918641208883779969756001269615334004991774231857823691201118145758066415875677683012165092759570823844803251843005141119389662656760753899831462242419429519220147438338215355224748600329218819433841750663388100970948045687561559652217518607349277269881583310081946649672865887425352909122158628250175048458647583398945009980121931664687178803057902963202020805169612227674316890885922499145572506076595128133544034721436758430906213407165152606429517021976802854486498176164249355202188356511904456831017310686865977872432413606435115469617321825480405973309230371110505497692330858508728536176448195530662862324404919281486180593772990973089018169850277089903606877908775326386867957899790120182413756397410484350160170233997673445347816543922495806210454518093180475406395102112612430643550051303979077488390961367140339774742548886411036596324691213196179465130754168729366265998600009861358247754159227012226515899739227250237934696654506030715994366982313417748731359892882395163237215530698386821306845911458250793360026708799806039751485880155954246675634120992457362597689421600648673476585728649514011040891859718966604632864393072490592377258999087976862054911305164894151926116013730018069039069526087383599032838039407296271875050792125820334102290830414755495931622645122358947200514979542386218074194846830749629032782733668559510286331587475174027766142298995361545592927027882481327163327057135940086894696699337388471039531550252168113450121860543386905593979090611039771059531367775591675409097963918716034345139399750047942804991389493625797958803596423455286987136542895657304413788080643853793485857313426672887105978349310634811459255241599750756793089218738607213470000848131203068413204615770720447554259820381092633977535906612584064230843164845267538941938190385389702254249271925425497778006251277962728347587084664438254503351015438213381067720335571971682022405906145859931802901640471863727849480599366772142391444547117520041965437673771202295927240267036324335273888503217402963190131515818026365702796590327157131257907800247727326018715178122693583926117676940048486713377350024291737534023429349710683963389540337418283874230637354446872981147187455647788501849021420078008648075586383950183660255413305860266976471408114126257157674825239853662763305079374383680064440353631703812104860642094438776509137462083118575815164878591545588834827348345344025058988593257553332888298323849502298753769837927325104457913041638610959838326565900975753303674024352836171930567364791860781537815199999412958028706373243923575270874387469085798828547709623187400637661130280933491262016366802305577015057606238168410587104847142156802140553099199432775604706272993548497891316669904362161421826414013464554890239074878289073951795283077442293322465931270829912617267583588938672074905792696645901331054414804616645506401774634239642849232986924937495020565141841601709350368548909514390598876744956537265170932830281631336263764175603398049849255740851232025030202211820895336075594212826946506476213667593840704143721417970143518067780667109992909626306314284210945517370067708835813081782894494781284689395093235237619721978600777877836093870955796279654454945271598507362285249489136130966146214488147077299207984647631516388139303236971308586660091604159651735124489005513146553780310476943012825667884538137701877259616205320180502692487917901795768535247458871433079763929976017399618498584791330950249257317495237350242440415534386188810693211649990750563521395567189014256310808656041259520695055401823932710121195882997048688678495705985742661332566567683020586464840060854213849489409764958890991455846450006253314498606951047635364264133625818053568753150575091955351546930441070930910889263315998402429089690709525859692651075478424581264210819820463720764468435145030719036112902735241805035505054839117839507012073101681700045184255646026922368940795903722303391877126252941701615492178594631659818119359111039038250159289223816822509238207973529206420274642247789595803697212146540721466075040009280078900131449791795538837559528175230164420528820081606454328275738551084993775141456625175095606915940848323053377562549713990779127831273293666912864308305083094903734734568957284582849777622220096495733662092775169405443453796097368340028654732285663054101740435533336177744803280835903509493215277340959144297734664591226987315920253786407069326996857155872270592410617605830754545085567449616269337739732516514910147247336051353241883685951570362169794144162292506585066913352248598087665679092642172301248226057459076765066711130459928273304705059800118864452236816995442729687635091982196343470335783986771389009314666192004363166473883658183931834924036639798172354580973056399269116680652403835323371876376110375365502868616985118604060154809579683638351564919377396412451873433101640922226830381763812206911849210195664854783863536651217617552888246578900734870461011980741228795678446140431532277665304799751546700486548968967021536538620893135653912563651893704388435658360454347415017883010949202007261512624688729873115362879287999802159062929099197926321768939520995886271161890179747479612998888853139274523346590063951001278627550194964077936099290228371404764890475569261420312556740175693820775406866403403008989683449816602353190845811914383915260182397386532307191622483874684873057226925683173782486029787117953325812036583359004876855666567635912006094218330272457710457570137869711594056727774470084864126301694554292312942603386375060871988820622383598200361867553985541571261021984884337905887998762287076768389252256679298000209239494259945568516166482157129430837040338574724324402396939219435239739732566733619685769373411929529700532895476603370001921221127628304716598920309226352330363166716405370157088297425874695284899759799118422068816745334568705975839169363747275028039287811913037656951794624464065244659846791965268522765641578016928241109181348951698281691813133886370490662646342650211835956744288113228962921095001992275656000438722052436133373386654374036362040132391821921946008712300944849828085974678541278612743894375051397187550184594146930096648780905504107545465658289592375581546917584503421990507380057462756713275170383176264312804674526727921565722466024643947297790035584708965691533145004443904895927931607927812145134660482687614706512819415841888727393834208440629536259053987436763712863175708998784930097161562065348974172712059704658659443001600995865853858439491053742588751883351981331432782224621590314522973177064316254530557328717654680379678071918733170717097532774738564030270835783950484593886181103012467474470428907457967837925665619642572102854067141367570852970519728606221719908025327921587799742208220791481337985567773000557745825965241831221413610597878078730944095975246135398586502881421310867786322389364362708127882225040482211152380950309686835234411732714501570139793440459891647163472424644959714888536098866958613272262535465412101030806151250429528389955417257782955669157490902635515078332109143339858291810415882732805440961503419673279104493497267386720235197090476059483000655702101563587280590205412419414388842652166048338664412479833148531948292442584481711151993027656627208372985102182540114620698215825878635095368127203654342360334392831177819804452390347827641935288624003394122887883196453772761230122514018339990813676651756001196447914039189675498897589414101582013581247666137163654425359125900114557248260853610873023982393475601757616698973523351776276694759218223811953890695696897996068595671186615904528210597931930509973288029172146968542490541405935656780701102624276307101155532691346406580344205740683579578976256897083592007231406271933724763726147619499579500904019074997955723839500005194025297685180196199006678503882381147155287727290375080916677854241807824581209195950913261589650858850261537074565146363676451122614306852905603427022781485669614047072221441270597901032177753474177942638421396583200592371509441440370772699721277665987968930467988714181331770938240728367005171267504026560611588732283186583693500832495009841072717609539839400682636462313210777791511142597990998675593108280769642435952862140405087729052441675008952861707364604498842350734222179250297821410857027393544317367998829633795511835843425035779364600686447377474267342914556540184669561405873863874122499481910385988600981462633504644846666426406577769201124315829090232689744056359059783844958712800108437918395098437504696457898279301390684369439139990285946433173704423747351961506833455440942248889432197559992303467930539442703924686511593438485290870699261574039466577505541102302618167854252843587820078170489935149339620095302150602486625837074770241526479321029497767663085051552216561389625230738422260751789687041313348318776034490667878478195424223828677641483077819907587170211087301676548693365386353750853429279202720543370337708977071285188296178443779967448356163446645211103828462192872131643287579734992685834911820617117089545110064570007997954181096890764873968589343360725105003591094825370016348758041273642082660821822533647759853605276455447109932102819365611259622060025484262453458878347712364156251317335947145968854097391788363163292712138379867109943793729462432052549075917153845782801422224669944232115857850997078301720444563387819818400451496300377153795623821103009783158994174026353458745011639907450738622408700637337376133719802964836785426301990335457964492191262669518417095344615446017090787162095516232831757408159826250125793079565192806470416667902639758795967062862761341764776378041441049396617118803197379759669542571130464560013217678180073557070340593202642115834863739849250737057180005128784735999235806450403623893564226226324722617007882714923312149635121747896430301175362337366824582030105003292615749103470902077970534447295313719931072481503319213987255590601122153526550715752232085706174663951088923254833738703448903869439654123729377478292371230488524656397794496884129423401773546400871045216003565540091107703591203563422156837064526687368035908982366338840287852834118747782327900546054009556261931974995972002153910408455680350594827387230685202014612422393822824604228618334054113471063056449987607080310660985299032601041464306513424794291463224372643191309206889972296538512593211157739169862831569318389391167392049439462993283081852244082558957842133435426833606911879790879800889659762421989911418112930138638653376830401954498898288530751333567289534140213527960917440275737141282931774071843666443507944621882504415624692735724180547439091480496076545443345966303323172170904352446403228687679147968652117005925846167212329376053226451620991771933441886076437727000342987286638665420835960099719887028891455975512377227469443385776751512990422023980765484694963415949413571485924418576342617334788723730889997916830064164152581406018928545893414298549077639938353717760054941371787185197256010788184467855003270400055983390983946906916377360158112111707797538342567238851199887107093278194727763718304073468436801547386709863214737105184448749990982010162941398084189182302331895420529415651005918897544539199656433934874197489073013229914118422031993740793214765154760894919536793270815632812741892049097895991844619997133575478419340519327140661386782974359594408154662980240498949227716104256635550461350503749566549786869274700630538809333847559111574495180561640189603612600778751399972981161179128907567636974785832825377206768722814894647910883179078086290944687619074920010168515645495785787215858477865476408353498880582160945517039705570539185500731542543722175215315967210109050568760293432093595509290849035508272817737184255148292994248565206463388422067435182636320201906230362279586159102336314574747070099784539824269278203376369530200306480063245927771359030875253053635315198955681421973165604678664559350990828540760023019118438448062166491278099238183179103241536574517888747585218312423811279233218839271170197217820724188443584869338964533381949507324791020823851447506723503431541813461097646960031860208137819167094434891541764126618960324559997509614562544515636325878742340447730104299598001459048819581457643963490286244448950081401485318499688004501004873197372389908110234889596964214398205865294481928433226121062773559462504301154315635309736114340147389890930735239065838232888667874297074978865430332156720438680975904741450491981158349840792695503265397583966700827382027719056779714903258301838193552443859572303626045158141542025533751780746252669677086211758715205936792579964369323409248374624653737655092189927547247158642286198827737106738832132845095891082500663425645524800360038441979543659936720078482275188987314144483005249243140469089373800114883080153100291605016097498169839240901832744400863498142898466849056084809192371029299788452306141201537199843843244446624098348061071003531484053144933576142683995135488047513608384385103418419944582440847141593469593443697911364672174556448766972272581914817421458055590906437165190980571836127569635793696193863716433225967978784654640488227302156013395490593107970700675277774374394135739541494937363994057837513708348547660390029123726160684311775036537691654494266283355554107732314526156807420831829613436560804566337509264494490535451471881878887017732869456945421052281661337789508738786743476144227860257880932723147399760574972349422127661805015238720920352659020216095681865725576001244551199469914466708528789107037988854499480848155261604778827451552414151730420364185670077668114513713545846244348953866879536055591337361508748916137562749138762008171269457373656002595620503702404844529736882480240012050521589174999175963107483428591585223991553247436693135597883897690394940599021636730975181391574177209544659307771497105951896594702714318328609682048239177937019336041167432874020237126802804016764416654418314073908795600362801510790884650122917405806145978246219685107456782986601312028631037702431947563782097743589153407599130946529925568348721423095984210257554602104943580824870920665838114954355967514620343502531094658366083109262242416615370231532912365857629995380457224903059993480822074888948668077981971075135525255176899309478125284443849936645860994740046623502090954101761283267275098022225604173720264314942793373077921309302243720358306961088804633495138007453468508822259423181903598153594545593579944348224145894386682453935118649088915426417490359620633537072524472870543569451575136320331099978142209528494198316522305756653690327527391310976114184728119509114261642371848439007533085800969048572903986813798717542719828165443668134233739810632310902447546185895333427631662935565490682657035338504851977315238367395680258873860435856939954321737754188279270489316317249869953316573197254671451502037552403136774428814877880953046577944513148897766007550298828698268396021250617497881490061104794295050533654734117467036930139756170684247186871578383222970854828640246919725644953980384227981953673601297225069724240433973533560859026349992005223641113275066635979403081173600041998645636272799465824938950118184000362975543520482649770543653065311435544401040647663327587382269497850597680144100880991587597659323267586422818848839392881590031116930273315764062380337515423537711914357969655490361616434241156544324142340298160319561398131616921691372641458613891936617998036453091729591909479028946983161680446665288319711652596272528724702239392642761861446160589544077741513140593556689870650621794187150516597637764398763569626441645518791562936810960847843348436542305399976724524963587528688559218704084621451754373542077736570606299713782806342533853288093795977122386115554102912153369523021597873792240668149670675134632379787871624826580402233969892610678762396904450269016895929673653215593410134889231210797748868064934351611497055182830982027188026896128325294787649470395113601485283619646775868824106291092192980861007795777319982517105378476255354491625404597696277679649751355732991087069195345726689559146062259092387457561468339736576615891130058866046002978576732643116243360267070012674833853639706117201656572531240182688225555563058112913866343619414750998517697461649755882838328152853964172854056371244836136183976632218676550016583031540346785874395553390549375993336230536529828585841931268007455038410341974497919704450785846510290284508287765912992317218669465714800158610147794681579523220878353387070883061358076083491192590074031533399418454129153566706207880275539870284777583030189151860822740862791157759411596177100655216893178801967826268295059098207518435455374869215099484619019997309006597770627468747861312092295067322735725107599631883706710455976909200186349016815016706321769885900568698587555746553932570047059697231711866614233083442474240680126626152919184660127852776308148213088650273794830577701410415205266311563773711774408147853778647415050373222649335290820344360950961932423001623790842849181528601892906791010971776146077999383974890726178042975363202912155017055148805580035037352918810875796054302394429954276119606800290712901751233478787741275736085374306281501864403706133128210085572366626946024831965282606522617519599101399581018726521435323743310613441489760572245520908044745572945626760430298565354690980036477204588518927114872860725990857628052213494007720857878420188754131548124771749746063598165890751699625253469478403580774697944564672259107892694227990247260916619738223609733762313063619598113063676705665505094269289286591571528939486083677680996476111800161243337876865008061997068937458577648296430667012931907900932037360345519562115168207485360512096379116385386574089223584586118268359616925364915618362999158417408214900513951134669008838895712972908608409280301552979371884338600805816424585750893953074843876140130867318872573065431423611189371306961580284316014204518463726006532293614520416665312689382874762129222746296472264833487960604291408946554984102645053139130969821112216181632497342175831401026039520593279399051232180668343112903999916595317498921513566618273632665999572253162213510623063612796293662222098245228317102887843866395177861315000206871212592691837921017819898996891234488748183639538397517081185654938693754679128148911991997994875867971254967913723888504167375592196260306058200517049298377150273041284393522239246993688587787109994230449115342052701391730729295222130984015137002088678680643318665408116092299099303422194227486648805846529355674727501039454257861010070075493880259151690877600324737256386100924319882911019876209060922089399095921942333011304394772056621830596976234020271899200280579435906063271566456727876535410102769614602163215687192488500901307180729473288714863995999498183610350853786594865230779758404282489678593045453775173739129113017874133049043895446352099990258279044176465097566644903304504278418239660859873243982893471994488453817672400687305770143878054968414888811492555350662756597881861653517167463779596997060094175845112003900031805773420814624665125545157234480579719009857919403947429421251462491336918716392832313863503565599238313509432763016958194631738166117131650638237461305484636773226596522442655566325282863219168641746481591084102571974325967198803728587750867239816003929553173961220934437508824712344942687153104593634633278322089251573002222801314911594681465333080584091552980311134109679622929783225475507236428627597119700376204643519745417415223030821766256463855937168664834869222731466087174471386072975201892084104963047256647582989420142903471105889658946187177861203021021224002205694546099774339997805588112410320785854948610973825303855841599851680362073974049457331917888143902491558229456506887883027636641854540513772640595260730144170831714691176256924245820996114038919095904719086031793053335097196254527963226729453225833616275472488405432678424284348443328615421903309038755142797432376271352307851463454360477259158111321058974490566677835185010406321879631484869003128127965920560572638438008957694218349953823829179304328241151491551275913095600306593101783437638729015530600369726381959810244740206506442497074033959316998108399198729686488343546069477269118923256050068993320831210946532062144224228932723005346418328348262675069886544107387173207852798657122014507070048494102278330564937663438686559846132153119826679199930888932041857453012375398837146303665333269852397729037140189843896094861800442116163999221917847853044873759949704106793471984475296798541663167793095728788889317556546708531901135733800248019893550390139456611707541858552692946049789497125423223815700766169720749133271065657578275297984687087977281381656298880020387634156227635319556640993960928630786237471211008489825831178417853636715395963488465612725708545626569102691861048210972319462164353840906906400028584087705379626683651610401994351436758065517842437368085520488691595413068347219161585282967891621757041948785677413314342916115397630584858542601568197145295257069607445462694796790064041093375937087378813775187634712461060029471185291664634308572430509051224478584935431710654847785672506662672269577802427156262695959685414964029297194183155774337878694271508898031152112942463332283069210013451160406837991832081399873788958546480546762519061776771200523461252792693707269503157021586378504338999356925077682644780605463662921263933091159451105638792276487929477372384600902017979761709170998419911126321232921189085404817813348455651959207424240826648037951042525703977081394829192599005257775211189000776942793986279244981428902207967231529011261953110040114645478344363398774059480133846399884756748668361590461383359424565289684850340231176184227279710912369139084615794605622608697824825800632733336568595091719910873309733156700780383258222940531077248549514647886480429775525372362603194296666744554660174484031152516529658911878825217328746702194282333644372695755882270569571740525526584607276434222589636455936337075029936482029987117086050369785130897845606868610538583372992168286766358232059110945470316641769781145838049088113728563911771584527990519879610340858370838718625533006543753588965172717541736941861322774833421492845485761674369440815610020850565216590720341672276986691530396929248778964777259859621476876502082156830120287164542720412369702087300677956045907201357438933445048141757173111482602218386904426945695130567500509365746930001594037161079672557052080469218513577924544838877824586248480333362443328845866366640940687482524320589633832463726527807731137672539321193784148405462532328497553607068237912389860808076836628457122905118996994573723790161541723582142383095272725017733898052589248047129866369584376120619367934916475341438209868048561435904449532692878769095954798371331641146070511908397902623347521074732318698612086239622363952337777309819250770594114263085792972857012656444415705959854849550344324609934199872890744984743750567722074493160962110317169438523925994813116540604914601113168583243662034386287186039677841025213220143753530700118084646397824160711883219387691417197448994860755009545245475441396003655784092753990504311933219919304614241255066096877344132561828599862174743141219650404533291492741662019826629626001876043758271392457334332673190496605464687807559229458293555501249382071215364481460201618651712918698399251135786780815823555574882081306203290994444026532847552695860855085408334514730757020923017995017165135356081209692939620243947363692822490720059161734099768471714923581745826142628411708938682778170800784980643965431999127775673010527548278120089332990958844944592063224035076466108978649004995618387129614290465719142543658401722210039427942579545477785288103220281329450328281620526625296728521307587721909878520219495937890536034742523215812116869235728645397652607140055142184092310397357260148985128092263771577273173416808606309420622428909720917333100617665782975724138363572173288744330045515088222836691396297832393005143117161913073137343908008373893762819243864718729574066449762562159891320679702774045655939951747970431323586886882064323836886509227488335949069922955585390762554508477694434247514344109006276399515004171195297865505643602789538673275226062042056634356721184444671611470558876001674401908880055518490074413392872163017586391601311677806159749877774647422885068236437527040744919230058723594662574827445654119082984149559576692031768708867546583847710808941109105600367219548390355735357407860024160620614764833392045127237458075975584421356287276322764100927717932632590353204748717024633202657362458798688114279976978827780062609802952088442575431821295144776600188207702480262667475282903204878932770780128730582357092588305762871120539184928169452300913156016597053755809046021024329756798332936670275590832447493465753325922559870983726595890032050859416926595339357389371003422198574405994139140751453546807226771545370935771039670179181689437497239989007785865434913905979413084342715716873625466851723030013774605590215517691209329798952058100435167613884197271402679035407104996391202524893252228906007423894998018318794611678173819926013255135094544884441541706525401967464765591239506826474833145024394789206277604156217138591348492413432048225537110467862936163756638982274456859241469435934550515007042664898626278515610979322558943063884054121621604538082363535083781911248224560190874215177539492161528866943615296667905582824037904879433484157484220462482557091816863267837981472600776775550085105901700759922674531293171410926247037088492078812990965016595642821252969602941414749286660973635462909646591268442641240049681615858645317696515450510679877630149112019849430505127475607314389075310015029391441622484192882008149929666734686696891995479336033617964185032270324149686240239984138884598387784627333143125075889005902906072932492990691016027127813348631498810746981019966300986277859504821259706105714432991751958634711715375536318650212634848577713598389365098824565549313706644335015226161665564902355052421182679457803252906831209751985677691209125303979001691421335304266388662792670470812623322884639958165048648720371430398449254301181703367157383575060843199813857222846000957570240203260876529823853877198043089030860540011465077805238987063944068616938288994567361368079391573397903557503434706298591276324512222265659533624670339380991919905624544066686974329710879974516739977663229302084710173182335037309281334853267204947600631797881817641718294425420427768611320219207359650049489800846722650737283131776539496260432332966499075850558317871427921439995547008188252948916978872779090184467047560403435599365232548274526960515256684774997059839992461388452002562940714244952326502631659836361620519280042322521147130654435539970567291886515144268065145667307257128691379687236785399267831278855856808054574637703783537108537099278434278859152623463110358610161092414185982977302136454667032238457399671173983940469004620495607211867057140036114501519902253434122293415320858975731159910021184078958341768563584818274415167242781744144086911778667175360315747677639206252094021898109218910677924449735992037389143584267741664988672167099817951697340475789788386558035370021759519888612552441657040276507265498039731494847230851657321941019783781549049753309820498357083365892126998022375503206269424545628472609874228976856614234831282547539580132872052327369912921914810145897776777740278056917497123365339049535370470181784947199844674613339543632067526381472139912431319251447195651046229747150793550129724819289781699051664875732389915167989941376810059867260868586832361835747940219595348097419573961516857642997003858425696450584761635932010712135699474627142222277051554074652522658774401000216270668196289909750682581860503378240531321285380063266373933891731240369361599982564092004965123158015583608315537065824558006703881258268811335156917512081196089353589493905363937097744006981280819315734081192783551731488075207844516647190981252136324491830684114186488132853082295174621537474995553018158168263257602909093819106406016061287844406708957787987055001758403001227760996639130253526003788920909612860429844235229603243606018256933249305617689150150736731347799958051207869822511011122355192907872039802961433731568237879275406362896923214008334675823799882430039771644016004238691728751070185649800916658294741998447398298137138347495677792457602674601284888714509850863526752307882671158327328952462936976790621338272567209285055208983571237716053368621437837114340313030874570300179055294898764339028562195902549919318304256474919097110080691914991809341404952386528216497055931807259510345036468528602638460517921579367811318316021187453220560875602673234096559553655602384113226434751175351130877293324630208470576055978713168306003162818172500428988337919920813531497783080020352518645005223738981870230917296263194668759225132416158517629744034838326677395458123483412884083845175197128647200161445313158690396593154845382889267609789137164702162144192626236875061581448020145842667391891779561921317394008440170009373862494914849629394380042224368307435648824062402122222395807459803181393750606690008530717286266322378902222436729727185931395725676407202128839948492893556230864758751108428139469656916061220783332333304095253397041962608486802518792698033689011201745230896607903003371701555528249371811991346221352354587640097418953508355759271189127744210636818343744018993073309099027044978777146070718528093759930654984965549959734201713664511761348939717976941145761273982821015982473645620912439300721754771899220066329088483029012629232536947120446492988029646501144917588615892771171268084002228982977039990364338594173233115544538474186477920346864006046857064721918961950479713039608252239579583907106139560086825101522074567348674498402123768418818440438796673065155666285962266491003012713503918003314638683541746493693297352036801869209616278229175353000310881908191588676254735408318889152004941321605945935435354461738764898765197791204236829168796399594355258954053269133730388144541203909758581205228252837177174727514242591401787651104400757247414730825265724470105292286308556667345292257229691020231717642116248145730671527456459828607654804609716797648374453628037402422589245774034689189790056293972165551281345930135010669202913634784556449887912468685059556628380130315978020178192863088156161204746732239464720826183426235459855918245586586230154995851750487692369322707999960485635764440765712454639601422143282039715030260944436248446889590144123069497495040703707743277349067185424372141660011079344178642214623707423540912608248106560134641901682754925452389530465111003967446977756126225694083875298623343876326974074715743005182229308456982385913715151004364254033273338460354688799914226990508147239745764651105152865733282176513875935555478186574864658141067980491780415777479502546520738089592836892286383546745787166615423053733233790672573364906828606684304074848212371414546253335510588483071284117879841063418302921407893201557356030962110917822128222882673080768655264301394595399983339879268719535068911688984375729830952589565687037680444968388645180280047889486213883606272651099607420213204759012289855331677310970719061560511871244679483561170964971062332964606498242561943091846962514476155513596410722750466634598295134040162925179374187945777351617655943155965283813242465081472463427227497615440931799850357536613440870510564712443736395487316488009347630227895573675136098522654774082434542399091794481575920827101822298005415289402410139150335324466087685404422538058863169543599888205351993631143075774499034215961699578588775541718397688199069544801183992012696733673571084909892806817069687661384020016480706328120138901544414321179042135949184029732255205751106876511184640472422482692608131039122964766512023579237143607144461803762039270282348717601114704280723978466123336766986787094432850086033123388375536644814932991190586496392655072433904190729195278469431022602416094874520670400517106023295128908066765173781539009167379216505861311522682625948731353772418734442411401939500716822293906085866789365982766888054625301697760807850090019244896947532608263871231895577787640402177799122967826465324842927416067709527105613707207407251547911878743618715343255611801401365087635576054540927886752761785122721684361494202067978866538963802262303325793579586511355696678510582590665100698994633500318040194423480836345782233292499396238914533944897939269236432465793464682470996722634127069807539931243062067787435719936472830137553427244353657119749403107557189367197549875570798044588869054471759043097166842650390620438100341236900275126565869909273174754953681307326949689158380852234920055434133987895564594521327529562889182572565148043211319076361169088487962255465562393342655739083757570369962757502802347434377291018566671671318757982906333927640308580332778482078198730006639631497408351546261601255535022017280021887924271331585205534471663938581800522414059582775382969047802780493125407499719110321121983477705633074798581286926692514130538167699441161349269193427771746868464165325382347583517566331370366735698465255216818240241507852010596049023263669802191599041290203733821087858740875181619181972460910029559172959239445113531282290963891167741790859926897143331390460479719686996766745978846542242376072777034699547249819938005624645475267629167871624884798799819520412930960154698609155329849306720322730990605063313447433822054315954009087585737910636691865616511512955164835353878175514914180910077401828675943917501764719045207635718801410493164962046823564694940855743050637711320356325793183952708219198977826159289289804219002112402160578268448162548361967499519998517529801184888756873206116595168269865735969315451679637263612625424306882088828980852431669699124606456391231908512583090095018366819565423229564475657178697699394652626561601866654587263186949806275634366305382552483198544850918675357270123056746776996442953958835603573451831174275040082562900664794764534195892349404500736527578937450232837690732380213292241192078285268307152335475902340531561840509685621571654486090295897263889183448967315312784831083926776053516925749803034957321847930765265591927710855656962395466600821467211913290662802856943825522429437322281277531212597929867943400303226595560705986992061619347333681477715144422144461132239918652029450542353620165851556393261977639535232196119807587865631507544014924472813581365865676643957514323176749929731450249465775300840531371579226578001785724542639304073425477154311189051952969948015098318535748151867284596470502501054530424551843646405231722766708446702531541679264729900570099779034250042538800416034469954635898164622965596930621945648560256198655673666526147353074900009928841736405595261502403784507889316596301450412072166905702974674813962644353772856698377059995026216892372274877779860616671482073897439137879276567753901022892011963248368525131593120836617515126466474147936379538581804307360301008092346090399930697599139208798348162721458668700071195042295797201835436335998102017981953357891717391687806699072113297504700907729116092760254665227559679287972213369489850827186031030537664383535904339596622638549499956604187954140740454272499873683106201931718147953095747755190063381762803767862329424164590304289911175371042638905307821420746590019631936957128089145801366224672448942889976801536669043195740286762478808865193615215421023028295464319148585356401020576151584130979263728282100349444345427417151825877758964199601086752872611482260063366401623475632578278951274696232253410520967150621143851917790295958343951985950818643677439652016360808273497472207583321827458270695232634347450648935605385397674303528411433686624133394209015442588484181071084249923670248553950463974699824340932870603251585437895763436766702057481342785029569299924572723529752026348182606272183653239523414721911461721842849314322952345031385370031138089709901658930899867214821012205604831235826939438025981238434214936656789383563375199444730935270873275244949769092301989247047904562474573918410297203162136547623970484244618217745787563472104899120118904117831847273401338383987751696256760431357189498184607812533522240067697692741324837571883158189416711819266675597727544318096522780800988415363326106459305379334247586052798735327790951973307319982519742676639061691485916867425713524764394528819125324101744167696805410295276774424191250284190225225746898120301767426126735328804527319566213432169649407235052404534248828547111854349398376759858776649202641911045313472803494566882357858549998978525980023202734047231202233966012893241226196561712460449701307113609359373315232003218701675083360428287744855538865868034036134099622785827670519893625220160150781655203977683414195923458229761629673664795752504938832002964788248619415046323293453181687695759474753217798878988926974747412656032126604444174120901939984907515264188417627239450587373165276651864371817003557747541221863084007542194405657449488353902041646724676610957029500227971052159909889288733109678628051580687380491781653008281367519255008190939368837006269373966450495232424107661867706261652144530043769309682705266745397772885750482590811854022402999442438559442055395043346772875055245215866900545550301681002239773742524293612250665381235680529445039205951543562127249841884025970810875614427847017587279513421784990845164309529103851770885930722807129162651593247891850488307118080859032436152555736706152236218071329674304069848795846122203532625755621191801284013995423107536643942806188464085794068927442260062137695321044663598241515348525423441129965560894878747531040413233629488414762949486801153944185862691594391075946092405038641688954745162254549810225409907973279916348614691520205557550399083398736355105793987257139574470127408443819907111114408426954634738077070597945786586593978533501343655821251327642211015350391484580758804207384388492051813411268391670676535191351323077175312156702646382533785542121870231053162977181034982257562030723422305355591183105134686345231676148833205077023994705480222659166305184629880853762894517950148957232132742089765746079849685701725050220964463046821257154801100235332078981237793255775789655068272496144044365140792506690294749917331276058115053067387518465401473688714765686000988772057277571836360597016377564838949527838506589120193238663620532523324666600172404182797191275805275567375035590456882146593768820904652642234175918737941729856008263433290563082246791448710802316949984451992230913769648020967036216806613696784857023522796556930438565913325583337564889974464738400085106179429897647455933718377351285519191993080057243623311234846506073101847982003865756989360313994248760831110446741891576721685278981109038674188264396431539250547762130803149816002430320175095372851847544624546119547379510118392798473330394094565870776685252192162892120836553536816053117948349916929813722370852959705130279329161886130194146618044810775932992526794955760738781755915881464724256544810890657473250043949220399993270772393337242883720645942935188791589830310060879015540159197054895423361535444358965141118452741266305638339768942639836260328199831654732911460625946795573229490536111152963342149208795898580409967380705056993742451086868868352472352637689784607834073230806291167381392245191358097525237954634982958020455907482466337029918028793869544699272106277230004321795489726269165637614893676036336936686906594905852049833894375353892459970243856409419695941305596862340825747435497373074646050072255363738634349155311196038864187423005860860542848799842138021299028201598220030034267210729710214123293122315561099816134599873423877147078938853762509185295169856969058206121661769313783026811638705302384363080490317518010950313209612339780333759453140323099323151054616679222842397577641668937708542145194973755208646077088257901187013570795439006867753835356414483115669358886965780625191282953777058603106492123119443054097391401786357045472261716897423771426321476381004834695522624687669495639660156307644323107919210876012320627500688580777475510247803694255968888034997712367682502600085134552749740711069452908926097553241284290289634194042271071015041375923710334971826135933227473733893214558247376478499908383096002424022600636673579332632916983634236339796954122491906258782886884127417859108780808830419296804392982310131690052676730032016591986305385331055177269901925777600737104911559649492900750349895778682450555581035964415361481790903639616640450040339056394703282364361129605833987244396598022325707172350771664257412453750636858752602396958555619153614852936905875244452904554165620247266546177946427046150441069084463543017889605067177667462461310248758208525420411487222679823689566786150395139999255950025814868497409218192135314412775226252958387861365066647483843713899075294395395518834007508802815952747485098481240135462780519396769184963687692049969043549434641860411505415129253240449465733875715688005317077088480095352475134033620499036389680063574996516525612487019153222273213712957627199059446525585959654463779617952238310574296097810936554845496263663239171724020837909862649892387486263887156625122592948797666799416538548624549280948033219363324046329458970571061332372728509799067121792421192149003056630463145476576106778268361773582464907747568917889594388828781117993595982914982564236670684443451452861453772574000642987515804241099909502904407472468941414213155149495829855166178219661487336643960762307402583108183264790833604795510565460960817760122743197527379250334495421204468012789231644504206254827430804437599852318302162575083534924337168063760059117484464272468571921970915100347177062542949395132697881129329554470109536797877354802779929488907000697245225776298498799079705430899625453909330217959987761314905489529019587440621089306477698966971003105932054014157727423128893653203278909522304245682747908584764634642427850001522100884360630182071187775562246224418309598946948326410559229108042231061797366114783656766387002639385045766259828168190199011589254226536477098166600456392446161755167376718145655452274109490384451280816068335566645312025175786496854473277211480560983456302351734213639446380439223446409413688794851043313802576023226909979908252633148513538204366741541882529819517687078293138270793784794477793801133803801572377155576596549633626971969521310474550922949483696666165158784236073389377920062730379842090957989594634495460984352882591267935069938670064119450054647169357023310509376071915113811423343266111318164721363176269179959826971617878479807821412103680481822075258398682377148469503120555355815016699220616227010129937246401202128967144497069016622576934720003420748718285738984589654450907562541621710804798098585008986443318980939286826192599499525512588081933231229989884579873284706260368810527513877500839366593300508326992262284452942319542304992797492881887038142923228025393991217790623222822706420885233316192389069164746959463328632172409674135507814662378000526046226799296577258623372027475561077271149528601314699712339330255809856918823600545414481681270441974311349679146394145009615694936592487530885840083309365115157391034006345466868319748534833634528279629102876212054178781051247233337741594239775841681962206918549194748615177307612552397372701558956590010455747720974160904558636580697055281693530829839799824045954142112061663953925070144461386922728636095606120306715113103634603436252532972949535114354937172011929401153760030503735706483462927616979951980470173747227722219736710891523937971164377561335763613453527600098691490835471462280341229948977842630144515297848604601985337995399144191751275611381297652715936383305307505395953202350166257480075187070415240595395881128461990612054879547659124410988660955761958618357402839311095485875544996152919765095500448554239903034975518671643457658896087630298582639380692345509664668346474064650769586415783644611206682526396983622822015528190918439272980702475783760821489084382753246971590046140845604474824432835863286891245303770459025815345145612739447112646710984653112838640733340847757166987087547866902690380068748629440964799806371180266143941534960241548788565873096625430525760740011136845399822010701553768370543960481863957320624993248430587975573000283430429160824343313220007308986825536175197795630976764806088106450368766212204882179774334935019761325737481408822692186960136872286687191416028733106729197400955420695707187870199230501370382585027868395940611452917367652952248423076715358203872120440908817748085715850203211305344905022675632749468979425444122333782304489696633469786390113663074189347945320497997450651233235244201338545506721146954701370992209071809677446660992565777232482924781402594066794645409425131080034719502175893452434233377344984271906936254398353621783773254329606028432987765819118062941313172397104910046242402488902315756584490696328386127500934574544051586976185403923083875948684739623940303052409137325769400288494917537293763347992187058536622946624968230145816074804651830822589091785752209430815188926546743750735044463960162808599458237548742090240058818644593991346434178551004039185258862008560401180524329332091829578785024469406110918886665025545951863282136342081949945075264726583757068315793343249913503963528426300113854966988326147244339408369858154481152804627695652757706600348020704351521999443457918553573522575754902675678098754120321427001120120360454790467758273122613700011613415796620854935602578252530906002077304397592066711687760838506733250405465516555471793346868334572004138790300277431308693338487290237715262824873246911184958270247359699734010478839835984653088559007834818724923967480500006170056297380726039954169625961136165921844149623361989129738271291689875811921876456185427435114387348996207461323617270400338303651254973824512762256216715538164072866573728395360247005498789182880172456137518136821997643544823003201716669935607886088408787048059020528982495106927272760037807277133484269586064182315698610332619910618779191924106959313618018322943082875055981897873370522092779093940737166515959338587282516620001141983391463909977015493000897693935307158515996402139226304311919549739190727975416729655061268364039043506553321732142945648164053038779048770609917818195003096347727380649401767815012289262222536601732105014018911758534554638137258934964383494959318083499458517337191791992471043938230886875349727402569049566992124045468978235946600653027651633796720524427987283159490715533675136434259665881832889503458470236130213928520817215477804896059058020465672371083758430195277318094774440409588838934214184215505096858935365460876486694925405520806779299439855987914817630770030611680276431691485066774804930081824340325005852842831153021666683156910760799216879727684025966900354453735793640879423226404053005105460084078388637031641712867009280872663667069019407140815353779266388543914687854052775915173726376894646157706286700790536439118998392170268835987428363500413069160940698579591950535097063981874050673640495482487578199367373814246374204929782650937219910659758353461313671374967283058971408351946547100953914979759008958996061240265748397651433482306210837216917591517829914856487882325913608817189065012379045386527374544623720871293391405805719657019607116067192922884051661399120375099700076244568537376393636604331861943977856221339986222649659842072819628276160660439721838576370538613574978018153116050878871234704408086445960215132449776643346476100803365962160986253755158167190619931093010558816120108210707227769622187972186631964284143895618740130678274902588318120548251013776480602011183475952123812404863997721172841814585584455906517074416364102879603598786628979277590872937769510133313082726758561086532235270641208383858250169975374333805736323991513342105112025993885974296393737519585108484364798348596192670584317727202298679689084145657684211135894129438667644479757881840338781294342870526190796835092882591827902197204234987641170556001695492515435751593804329106554525450008137678114112241047200573692364809470606311375638998762493871945817602583180137057791818338916367907417149164126400860060994344251539623084688930202476115053713822920887172216519182409255576243114951253758119296690660525142734767934607742035246266240544485725500840417606725953421847446956909757623724739841677534472225058645464964036491277571302458325295023673553754261593401852884076787880305243496750182169106151990427815564570724299940323411951982233474848195761800789339552613057469117582059656941447746588864932923626080893978591755780322553381659806761089521641712988674867495585847370158092198543827912475100893296651998548315562788402592640737765983419201172841899620384375106059047506264977995757743324039116507009924964384146329020143874075197038062232292071935378215853668564125915896269116102421126776636668778000190836390724958608233682049649603849689587210348901435471981345746626884603118348741102202217881807683167999261271687410304650419996284574790964503833606808645206557463685486243205255224550228414955102929628079048797253689523485423296330208554958527470003787149766105700917282865979769361594214225420147528928099676779858675658491194669869795643403652761623132808976656304294557763128189564509327991062263687187026284221465954372192633490755529624602276304289343451356867588191264092044368370137488426202636136835446725428267502578480938934415748871620260213611990776575501460182325804163271608907490766052313913530677854922375785294260554971683146998086958926791851823774105055807628799762437167806632174007279097466270697277653385653193748733654722294443520487773599682037588646626336938690438693220063699379321944659533446566678291873561354802012118376346170008425498107548521757008532039440546304263322162772926194825499920679082999699604269810694539731953189223331050405970627225022044712539787867609643017890423731472294592693987660677963701113381035330527912480873731771706695485868299426040464022120692679415670091828521546978894232520124476233413735137652285348982162525606716937957646419270318313829202537995279159016914838158857359291042966508510536138250322535539422904914724567145690642291597457309632871103454492801878542589176060926152897914376640323960472690132110332290417571429047324008750294392091174267332403755797848861729383018194735888186075320138016871509461331583211037060551414127905864185818827342895007052502313993067082226969985834055879641483742409309997519472869216113542979601848288282010816174632794628731638594055477693080659934859015466203234994565726552391210140263509479603588993983081642666766240407063961728633967158339714308869277402110860032934683887219999063495408305694976877085716737411990558581963271231816915842333480383792179007163166405826219993554067850373006275536082347061464537440772158887835076903038942061318317983208108801728402910559172250802369076924678313578680114221467633860736545800439803343646986630162016974403426550636446914796640549678410862225851459439370092101009553994587916997897440800774273092482030431696036669311409328292857688088570756167195502700660710766912350127763802389972898750724385905470237192498781374084723491409947570356675820675477212759379295229410254264326114526106992832476912989812666848523606659622016217884712320582076012484134772815039712270700679168445693941538310593628922714730670058648991168408029397728736651379270318704266084983499446905697116771980757576078268465403731301668345527471132502823895631630179694294611998661169865421902642438047885232175084331550509193142495487983285488289614492626293360528732584594548196103237306618994748022974170393578806783951065190965915148713757886553255495058520832981021607872670068674671476030961011239315214007008267433420396245252046686664774166256241894704765019367333716660103400190961969870944072605826387363143252879995335495235259004401906958900505831769408012216980804908076712700454406447977120811428956662314431791421219493320724673096470949903945203607555264096246907776198662220097056120082931412572843426729237264784944728009022274632117339310504224308039029038403255999662466920126634609548936226952647389413617080269738045495228322026460300277527153832758477439101079750201366920230394666042410958765149062096434148209898642650475862987499454912527283784021609279907538679370668335500319160245699005233532086916165302220981355591988797735366514926607205966052462446265087332877764331900595764136822290916632469196326920663134504940870771132939747270873459608082746849581471699607126544492973403507565909439694386840319525571433876507014405129609190505775221998835280875560401057857064335688076707177693355278479434712089097469976292071173618820680892219677894958652862587883766831588070516793400448163283955326904247465813265011250809063893279911452853786676489036509155482628544218583831197499066565833605792645711057492315571465861934550813101019222585320996512105490304354501845420078611162497497224642826894878218916846242677985385141751250556375404703468638065661665527723970607890675859933289157259737504998986426859990715308054729426817743935767327839158306183478262170187504559630755607215387251755586913575810083562226320571815933804526903184145914885818313763542213997783742508724713191533407466311986159162984248946451672182935101242331841612483164245552527219278399136571288479380897119469405158898760543226219541167793370280244858307285675041393555514224089884680248020963222004484780999189838475693445448011427211702781253929994526509106220703439026601129397628113306943991391402581099569825237033071868171988016190748534839428047631084717387092112204380137748352616412660495357421179160390825242391620753081574158350064407873766781385610503902562464946813137378717458791366244688444934518423866002639097584991559187943232160512404533656970018777243333372802546417649393496148927915155876733913003149082331862806908055557646221768322920460725107614267259655902221080275226200188510992362113764182868971847138754075489971079909290483378971686625424638023035805369112268722560799344122271949873346181022365414265403968799761105998777599236435747255041257920939325766949860168758829758020704119164269557086645196210383000444829842678129605248075980461931005150414706835123193853763369855444991629793718603118246532513626528653522431744426276834769513942742077296589684524447334152521988224749283041062633719873467710039374520525680289772751360743455030087453564651483658612763142049396930706688943813683670954476698628442306014794549336005677063601110462195066759368541441511852817757801747114943709029191518535319312933633337208056781433685178527156408962414691766966215472140435460811052891668095755928536096735314394830580853906594319106767117215732395932231278827059772609425972681478553358860823812474061784996235191293586718726540373780040755647329404650408767344715280774860563735736450688828816496115026180315605849518002543779849975515075921056569295232901452462443858311473198274444087764635641591930920498425625718186133930801028513870538564402236933334657358867275849986760030142788386665347495912677116775411950225666940369249939486243517654346157093172007113888854675729973797715180584610984745728057316621086853379371220020347660303529839596808049912942099566453575062485534629343455797478977767883420308556277030506313425413727551423391797851528175117637321382167413858213760282457615970091426068476382090921186080350538653249378756807141035813240435327866567646191454117066827734293868334843638752948110811717513831591711110472519601757547926143186000669946451981912959202507895476897184853851800227552645120493380379387625990246510186392024254364254078114394708676900143720313393052116601096640654249309763859849310156220681208822447862207109416806341942360547604782883772382773922239986621233099548255250392221332299217615385418738952798576245962311645881928091088852070093027560020357085530934644718436965057818129342219186393167965606041415712582148203298010180258117270998692666330535803486055416406016447945106413974996776997095926721625324870340328348362799218584917777205010717274681736548621352340257693956364893394795026265105626617561757004913397888322303160436534416466612412505292377811469662162309485234962838770524891366627976840626554025619155714355414052666636840483933494711170568232234455133987551789889815735473199404634617467061393633807921315039105133378750832522354515771232797737671313329227398577360545039056287374600055531253663885815607244140175800098390715355575159706389745811721309709414605718088093480374273092761827950203210088732911503130122939129877837394702203452743546161118209575189822253170603949463966246186349343985762938759615251942774949732525526887723632211719317897679951420778129354248048959423164902673140045606175251199506414056323454359566907495060239432656445070115331731996563662083132851915003929611474514357605456900179461759970414573071787460843352875682712082416157937974890504117509077754931302201876627561324691085924036929308846043568250070589119493942648408379900572786148655816923350272582858167708432043242050269903408917021737193936824759964094955223697990998453866313197540214328866925390961647355934515669762704478890366960391736259662288521587906730758134696973231418235088367834056000374115756968124409100150724345644597346326889828290195059241439293858376952822896700042796894883119387426066524666212933466725249114216563840437131731358066407081779812121951621537515448450739791485934731489573458636694088670579311551897733412475201813086631122449768274516299110045134416124676710108023533704325849809449702166086576849282050570911093782674757353323672213713988243749783592200969389108839399916355176926496414136557799142302169621214047009432829954434130706908429664106788703136869329511962117337293877163794076077820987750089325605463897066936213104199514075574305556675538782271549955129274937504690055440886075663631907175690784588473835327599986048253950396424093607721405759966275762319112429244711047634164253853430681771451357698872916559488812918976493893365727574160144409724869355049159364053505715307507842790852784551639948802304905847545192795667698495667802203423956328408417310757158823355233025996929743319313520981331091676683319890139952768033675446148752442269073255835528579018386134087646710917450427573517489366224418571937305375076950649183202078620238413614078420101061085568507158684072708417983385706185632607774181687343064442209755519611689055924168523181222588300268882197971380153853528589543695157031417942824338726876114093337638314039756723645756828315282489548541190277886148878168819845419939554880884751488049057851494635837388077546319489081754555302633110086318565560322888961293673558065540759630302359962056169572552679572572536648023297720227273297131232565518892903601842865093942944162210099093953564561196706031538812740408147880238678674462783301574666307132237489874461608815011598373536832889729662604627672371303460025986298623832439537456150701367212270832145459506309947349468475597254784623723898883717084779520003896222012831138121874112337686006031774862807857174369808909263789487775311063242933364326053936041366528811902246814291342623497447361504881031857313375539419926975072334669548734635718397998639937535250766766680367092154130191435779744135364245596999818153831306961853995175774832540978224135151119214810289282612197134230271582877583997931703626032415179331882149409518148164535656341964724899411651452946083213909920366877901377821687384714036610733730777521991411200233555898083176800119651503957213217552381697632754327647707835003599342656526488760965312746829458951406832293766339856822016462710494640125527206401644115576229903252269567811490808385926903781426775252883909281894616900919562314532100084344092624931652991482682385080748556194918040816426406989762327521505683263999703246832089673647362109209297063899845451132197772946312233578586278437687761686325919884428425332973545203597438380142165038595172571016637299375347906236663994045839658076598668573481291088936661699422479669100749943802875007577483932863111085217842590458322258424398242699888942167152138069101735812672214710314742779603639096313089225746550931756755263783329708563618236192797280794074148838419126980197185578725455844622348091481186921473908002059661878167524984734240035371539395067957791749070524478163558057898581281961990871970528543036353863157776745774177578852750037123642734864292360049380251014260612575607612413439371206538433938591452329699254629825306036394884675772184003029519271503772007121680677687815209745608354104793115284926710193835131020375780786646212455194005546020940906242684619575617327200825986812741539661222743023016810804286245871127037270632952999932136559081001507765985042752394492392927880387548888110014741732705019190310227615713459390223129443842019683237236061106075594974520368806134377647929335383299522395795231219827400376142403769791910109869995581506815128200106073386952242216313687304991252387378760146362619452289039121704350504482620530921356661171709198334849044079176885792754124106769329703793508939701166713946026419550434259261892618653607568735651457234353266632185030382621268789129297260851379388286238082316905664258508245416737120291849571694703441847683426837071979660419332840532614790992382043967290226632819684032418341088271411420779854501093415372193197195582764482139234274371188251678791164751652479737948494235890037986016042958978986509531001172559352538367853062523218147413497781408595385610624074057273020024392704701718440457352789139027023032319450190172652996828337876355449001389834072749019580694425305681903267607772074648788290588602953918100407888825200446075886760444761172478538006212873786286033560202091937111157969837809087213621184132970825535208542575248816798955889639017595173287762261732003080552632531553663041009670241829628829096056242893376932708402703190865013980557964458952770070080782597346849621597754765497935814493926733780391653580734865424794781610858171232124180858739029585526268926988149883812695243734441642547310269075572476043164729485814795796911881135016002544463957812084532745725612053281597227868670560822316285931269883181365666166534837544094398441401547962794714219146607601469752183854109459216528999783586445822325943678166097749737464921063506400081870696733069579305612221747138396640628089829953009348032491634648586677647586380965320538758035176522704973976516618799226006606274307045199801690510495074037430157994141559279955273736573107167463417972030860574576238211692701195425787113995504750257598080241564552332715892232147847008698314124865327773076425943093918734915724778189406918433805391820061373530459801174001038846302016862597208766481669559779931190265154714823399809347983999640434181355847597342894249635270236292069923138402563839691622523739177200163912019745501757102801592237823137993700422163438449468272215055221054043885475935085022463602805307794799380547251836814519962627471008146372558788698546006870566359638072209867450490333937784842888912306304380643216928940754154187575677540155740015029444864216144434705717511279963881396082079612077981001275105657061297909055320386083909156088238740261469756286809415585446228884290753586606705150346660048356164166432960751454861292752303760387373840269462762230204083275705953926867056618666098520170263133192976262463085109583708132601903661250401589941335521251689745295287744111569638441592654258850687176041523331787290375940442649082652018279501100757857436067697356378249612984835656280007137048270104403928222907975069113231132180744330844095088292113246523972015996448656637611403365856072447095711570353051047883497205786257618577428299200710954404121969388698310575561378252451445958145118374157439266650376729910759184481861394024484919522178139805772423527192302558684965630742098850971665119415572383812789069817260729297088815545533118172380934079923964205545053333358513512893342910578969203003970589005074844754309902983710974389193879679475723881910510546180935456180338214961722429752287289344827861026221543387439421273821185222055935007820089488594854713563120693409824526413465512224897111733403314128715002057634191638402482778982586830222187216315903147199872429154817474345562538669323341668869257390585455526313641251456202566742335276273243477980561291661129661332625847790247951754877972926193468749303519702196100613397529865900564963333327760121508620096625902484047499051513059815393638827988702323534611852031492433364170505242530354621502620080002942055278274105581193228920516139784691873828999699274779297727885554323984092366490971170396566989263735147838031731760743747366739640011427264938708424582493815119454215425020904044982033232722143932658684131869294957063180962015759805989688139417834880622517061216659713611688530371051989318201805316994079932839986072168891223080771880381585202278109951101166523598529271272347972801976761721189372021240335661813800226047081380007541884878246062126609693187140221467453571333079505849407966179684413283345140311667349269222342991712611008251235491918127458319329900259408427662749559997479217162932119887843727161433489530808097731279108397415752097150452702862158484518564908261055893307101341083850484711122649006405466263420616356550172815754408155565420494018951812466626402359910985011271076436426969844519763330806893626341716972978475099499425061201633223828298580858327457541475391695493117697673738193352177585395375897445062748053908424761027109017104828348220682035461471310519337171712207034817077594835482374830726298239285069671575176583106019276756439419861333554572140884620564867654591343820495498620109514643495584486191591702210828195354293267458557349103055374164230450121191458316894703806054054724041091658730710944265938489335163329839068986635875435894115875461471329112914051166565158944743959306737255268274436746719095627871820819639722584531209795040149049600197809823189298807133673748366996228738730948777104778282843200994607005823785747579714397027340516738143315509190410419362056924077730408802896940174669774258270430946771605423360263855338221955229940873536955792102841131817599707571221611587568608260214370386968442397319818879717561308514059368328543540494711005258791389146550259863862780423005507476625614437202570982158189586919026096046053039005594231396082285388639365098549368373159439313591733478390995313020274143238539505332089900441722247657996740058538657808859807649433220068135380337532903362822361983932032550427566839144501859736193603365577503186882345174989711792662484459319566499277330455775027417023288545147128781168287859023873882160986128476973203295251669101193442777234031948148285522304050232478739814427970876879609730677708276777773835818673842008510308689241292102891147409048464818526175607354081253570043121583429203451008378339186069264852767749005210772622854680314096598927741638394573761078000732302726411548428294870692552836938344227419908497639326353653494578346532824341048014794181315552771382595962111434787606132231981130745927285310949877548098296482058292505956004383690269778028753573743504959102882134301579238390533019695584246665739342198570087595761549911538830155658517984406392778762615979674657474961360534690412992664988694118774984649238199026955012346762313539690143267977724184764171209425313653128990109035053196252541058863952866967696105064077687549705845359634153316436426298273002808055009952351205492701583857890170763885778771556658525142003922884597977392267228844389025449002541303952791850282457812680156458570890618667643779070379442604338500325278045724948655024003014857951410590886784044948728878544883241727025323801148252361799745389865035381336137691663503459350308972294930688833040754480296874452706398273477255403810110103911250300356454832929034076686077933699528374882880808968617975962252904566446168110933468299682236031842454451601376988552378049015946728188851675576685518650748074693170823307754973354034967215322652419904023176803577202835560339790872049790677462507710054344680767228938163247906573100453076664548103042195962201393434095546327014095977656114550243395040753910241404070964385917447064552122582429366171351491722571587394017193365958171369446615093197191346735721467983136409664523027655662493104738533545333025365798787378816636650636002785817295114745740934322243017502613960309595743243113145608772890888366373330730921305856814652428203491158043461643617526120500227652031687847922848901906574590894964286197747062295425158270183508891763776196373319960232915418762685444586941367341547609506860562808824080651351192964758326508710063442994922538549412661441495663673818462460097342560769370337028647321172200138461298146338349922304449606402606890916274019490175714490991172014790234757536103810386878099658653486024941232524346189962528113866702339220775827433563519139339469456749301155102993691301912483826936806350902400549599590256370782064705999287530712914105738000696995197594479676232082187334385708033333287424383276296060237996680328526961676643764229938935390374200990565990880832424805540664917487991895209192192731381689475657181744436900564219749503193178432101723688898595904415244961743712318356631641059727455442128643102794734531780394592173483891799215744991123295421855867621284228652488762672931031716735051049839203972061368069490472342706488977527949547606591359204115685586427133726030972288075620543339357053419227187862113509661895210113082523079314675476982987171095612419219502513953603422772147027502911862309853577916959769192491217917888479804906504353140309399461273693561786252549759514552368020376010725989118278794995715106662396350846619255838267643628197475375735119569564960719033377940816954361013013900659306918435932337631880644122902749377315832916283367914025614809791830470014368584597228070663756642427092664284361695205347348808348819270244025234201161608613848363305588516162767534700930154471712866824968536723536483311427553319833551210187656678864199456466018001965317141627134750565138244627788009813872577261527371473118204611653075944920387765393960125618109817586635853346902119953149037788223737751586308569188139457536127268669835216105288495873682613241981591755504231312087146961163468227113993102552639931219315394479222750523447077218923111770441651686015006934502971980815153103063303140797316497108192932839946115999446757082989712390979066313436373287094270001297434916609793328955722506653653390042284055441088263083883468948166470893256886387904923551816491575924133830133834325449373987414118720783393592048582036488727968671840535025814074779534748352073464484098672504516551616326736484682402614826242233934911547872341360546444271416522856146767775856759907072655663049147951033526728162619171738966575676977106596718660615799242163431504895783274621052203934700053149859443834719855919746728461305967850587746821391745263203835966196352500774332845060181669836600632795878742751138966867564168017106565446244140722497261582681811647384410420316098711835323570251289109833756509449306472666783108843796502710970266630562388652862454709093467125349169052126168018205783569211390362520528246652989764747079963783128166705548730518969948188752396298186067881564551483442295953359474901077922342129730909167217695345988031082813250253496195889885321880835892169380334554737938791665924709791330967844967585277118569436271802932330303579820776425128605881001888423385754433686523754664266999108404181164215335725826919702483966647696303936824424415203371505838011059646343474272311160090674556553858502488327781810614488583247580068965880084584873763886770757312619338520731426959634985081600066857986875993063565951828474137654352893615233792991785033876880726602505240866320797409425238809210152266477750509232659795916754615728500866044035851495942889919340332412914092766552676209278756742916873322055558819819711159560469718613584603015673561575103881231155810207599344880294009184311484217731586521467137585902483287704335147726678595608092391165534793041945908865176882538357985347533326074079114500215282422562883272316255365946906779461423470740060671523664808955078010848461401436780409270075172490564801879011281380048056292386745355846116319220415003194681622157120827063630961936734719576864030826264754220136415323726776451376778396185476569911953926957082648596339062064766295969586321628212939506383729124930306008119184443275952540486744564857036298945461764460416009537692612720626243721681275801428320034065380973842952880213979757721685605011285158353097709181518496596895203311068713047938209870901782759503943029975939347530027021386193855386584890600424993616985649374750541015453907923192570826062545933554667423812985807155686951575993241771124169298408750178741047462282645948379549055046281986889695057365867559345916009848536512095380810426456628255533066235007151945857768721183284395556511305312717740378919017354529244290084628232501649733636054925917479874816546825753605292287310887982983405495482898923022223091963134920098669695299439809109391870273510205589118723207165883990142473972860183779379746459551332312386933878852722894931587804367588652663064560425144512073278639913673537745147937654135974840878507988191070975875235480101581153526046781656241925385563211647023521621085012160331731596844471281007707169099802545248236302055863721964615916857271096011757988335041558396502593435095368372237484984152861519610160875174351111010456623269764624222407972975819936302511546957986893611903875476439022664450918545900510592682585300253704166998920026539720665187664499342173711395886270143381649818563417238361987168221977308460071936390494172596373199366454389264463650566231240830638282978985205046514706803591568880103442016695459345214127018898381414684818524000096270604169049056369705896378210879998277596127036189970076657659635492424102803325799327491479077949800371314946106215860574994970976949902358867972507891602589556453706546932319473368842307533588512780061687795761949875391066210388348181163783020126312567025743060068595365871081235318230105948375344068233117469144173987739433533624678359618783325184556190137398507169869574800788305276924826247900306822015596098797755709215277312308792659672431700037693881912817441034577653885696141706741192318843976779471181659466695575715265362104560086439270278709660487383435110559086006919122261126937292617684626186065965356672693682054073285556928067340962794073567989684621115938863851664140797757383209421911195118817849041222813208807339899605631490993432963542240595306377516855478594992267848116471577250451845276679812473525433676391544627791576929297189619345947635261560838477880430563578171229051884526636453920570514556291054946881023282464824612377978983454604345644430447182163994310128404885558686788522957602552465321660131701181861480939618191171207987102263607779035368359904330125345055092286280717434521602636781241004123200063735849708868724830500168415517902876892453495850511255539596717605495582324808597555246659045145458985980447248108966246512764171958884947674461873232111080249910389764240906773890949051478495048610708393034884334705984471965632950700748889238956002791540595387630585721719381792624830145725688077341669542152077764269144650547639741219454059222890646009734574384990367390125458638365268129629240094385772647171530003362737286099951479433924209924760455247893435797270289711371232667441036556560037340280144356109590469147233945095380370014248930373194208273169931456019793464857600835535681638228972421969428487072127408448284623156889322810796659860544379514185156443814309952715228069034428713235742074596958432456321731518746575867421486059018283448688540502932953968176699341984781202382326222727103127133994742585723779680977026297052767598150416307545686662094017439869520262619845965841521297935479504923907980533374585554618846248622290382011572848899257774848162946268969136529870166181198531729049756658915665585364878469216664287827834423019641089564327237717507204200187734826440580715918940993705516584979804029899573596482573897863666170465315099223790350549452320982223915403586040068628003140588730970042796918499610634098590686098122105624247200417128047769425386644105198528620781004947482232665110595795256071651608273669291925176606542143618240394945144266402062986228486180792672557290914017088691985867458300724143100295405017687811830245642491248793516781052025825908204477255816301355419578343588347516185049369247274925511425896230134401841448273140323039319642947560438139357715695528485493235250538383584106871779654458134736596028360420831837262437601613952887250528825451029132839483084461079235936933920199636059137119865352780248861305812039688827855470392023073837267129832654872398765534974370514352004230665644237392668527903459586225834805481261800411109611122483181303409163984972154183565571654560656076708136370405652970584947693456050721734978892006030484436109611605746981051050004817459171040375832509918558339400971350166233412811905083337318751035627433139253831071715743484786794778155799471957079637745854259297674832669496643599202097949905819815214297994959366995315758172012892538030978010868464427528024169718612664907326394135674992422707065716562301021382705141714530782211347213684710834568873604731585259548982768462744167224693308402090937195587316445093787612673763857236689461253755622431397415211359194440826186256172197791170205619553470242718999544058682734191273091340546484323390173477225772711875557932671084289490601066019730769952962033831416529458297342714669397592395080409499758363270440396743534420474561612370975793839984756948350183285385399921685699029301917750650880109866853669690541074799667713355660362178449251620426262706521565887508869151459463296222230149324940174229550551243339157618300815392901509872205001275722137745812446750207733468465496624986617313837665449212245106920065188775767443460897990800752781173995706818272909768467621564028179441796559896941954008521820436301697687568126933135570710874583679446956875906020787613692808834523806247426452191953902879156516675415782505572547815199248228171584852559629500648815390830381568038933890528898528797360541287797966189066831557972420915475676161361428851245255500860733373229083720562398135507425730222697136257423023938984850187598237433195375095523965356345994797717494291470726204649100348449777747629380680645533585690628563576476354832413370422882950056434974356441533181921998727981237382630151276785211620693885000332591086469072973386334950849064060701411783684956093192811151627161906753892629534012140526222300024371639100493841864239839922893533249768440693536420564981733806057718867997827570794029178436814626559835049483213558350043232332046013668026638760386533683035868000984528107657137422234403973855756964949739076438456042686029922595594310135568555155091971301723262041679532786165178122269207459716899777796695404846905094986865095001864380170592501865032891762746156600528724174838445060147779084005312452898220510317633434552196023093150512952947238014797511761448141424654097395536251888318395773582047379770845862948893960878365041031808180402782297825312259588645144322005311321123238058310503311271970884420900808533172012577650780923276913022820954866628028362513167350554409061209435124533402448803976877492672200187481580709070995234001453523238119317080406687119382826963476135666067899878826780652172581402339170904736697835734337364954266282624117728570709489227113508045623101920690704669955302128864210587948516922446337744031584673615984072122517283844713808736934663130536110083036700590636707141182890154940142764926914050692642868939294957114342137011529456900184453704769049104653484311273045873837761099562991732894073567474473263569589264018746901706170215192171395442570363726598635079686549862824546856890083701507415881957818574018407452613976069607452016970428706231521831593737457022299782290729146686645126087389136286189230731462880834986112960616130348070092994839875228528265269146966740721042976316808723523404312224230262378705712921232986611064084382108093637309006901391434845200157612727214485839223447041479472857150522997258177023605289764364124383368459008409302850403480331250905810243260650898374682210135552428747024709007061246013200894274207669521098497777418254435126566100381567424332935284475326420120889570475050660656599693052912743792970374947692622276148715847554811045890407249669767584722137140312809863945456184568781934122455424470268495756574417246133415029809368808829970934921534754819466914464840883998577933684593298206486197842773441451386449018673227909947239564834138388328346154665406411027582738063225703718979468271596575262793393278861143944120221614866692360434590034723959162957954311914611590004404567957002782037444321477769190854280516948171629050355633023407722535748921761152145417971039277339458076265285223535897158849749078721206267073048772628969994180392927252002097035504546098715646598619458994787456986608192614926259132174144922026671287326179743855504803811605811302320142656611682111760591835088033517262286544763364497449496883513100744348582458621685051860221100921838038659868227036926253265508770560228940365199053872135581588855146933124273668964347445515290107640252175112957517876521147537524402614656502198962523505620343356237924133367417023561206065183411298925880929765003984932494996993295175455685122334984751498277256236443480131706380361281607978542018901060175811678820012384328930739022237693776629627585832720609688786360315244279696780774591031514082702993091277776074530205192149189123103441840319187427306608928917761767310340289663670034227436864799641819179140962732189435826233430134418910984045262528240791130235281388430008012084246168560454147601281028399359511430938505084971568789809007084090029924632678755222570652816053607804181138476104675910210639434963400413740074966345515353467174382485898886481934575955007441757124999972166341149822063441388085259874842085372236716437707693202455898708636166909468067698880615047784954060889518320815291054651332610064371018422288932712837445150545202123517870921892164705414122224736556040877304253107163684057840372713755258612104871110218812467451585949051635629318992632111206406145835475290873438265820919157948412176421564406496307467401009488573809845684437828898803507163500558909248008660061832376352393063113827920900830091320199987893757376248914499765709012087764329674001872809676186938116726914272659701372417982030092615782608037767348100248920607728561199659721555658677571244055245729128062112986971536654186843234015521115220748866594412623909370403603309196697451119888640507370353659267069605195954210757632510740473165841206619868378914699295105871026550313107537363525156008758858506324168875842201590570069843601910237954855963341730255605468533759922264021973812637381330874128444317966978065298894409640324579491822282235273537329086704789190952705122370702321719730871987991645317500462235014856424414905733443747900103160969446851553736982768146145041205229168914362673178319104338090483450573306051457504167931779188126984082327199208100255672153287251435340809810478183879805683532805185730973622226114713161998077782086242115678777340408972963063982404408972413516356439704143226987481241315872705714186135177784668341682581340213531919073803222164618801544551006629577307626223317159876521325260871186681433301333308374170426209274253047280939675895271709065037409225869439561362828591562491775805677320334232801383948894355543051398226621181935835527328623370337900546574790751505959133870982185092170745691707171147704428453006465187779376228270343960011843742636705078491030162974008853720917513319100159545533419381658270855747103322566006968204705572599521758117236425597643117348022649264454135219256767751991805171995402770129977803226377432660309843803761725247039353295986998563702044718396629533149403841440897274344277150172442255597622631411680472171608688544765747734230170787784288696102343646617568882405665417490544642706016035215146776501161723418681051932324840085188684351771785370760685583562509903434832181904976756168038641833286782496947270729187797805367080503890523623918606372540158440342838052275147183532430653661665580479856332485581913782308789821846095856502037009741003727853146210648216188689359162608293659441121461919770564682106182917328326396768174067198498203493254293768142607378063231743033698911622364799067123848805927479870209332564582246769898099301279938563399628033875468767648096626927521305173758350510565516362317402687653334576895024701088570864048543889264251160260477855518495106443819722467212746646571376884387662258475194129814910636083412839864663541078698526262056568886907910837937490277452480923566101023998299191228831242997162478175246245728653775400058137774090321855137152027048328811132206831338766590525740862061827403611277647703588402180029792544257302283123769921772823016176220003289206238808578891716140671079332530257920380674428693813639583338002567182783924886275682225641025362034667307435498590625257863429243742669376323519773929312081266492941191900488637039513878686006317482101624971865833794300599840241710709350608651553028675214522483705083990449408050502700706219488062923853447180371627746611092645097174909449168710188617490695855554998818026010168741582692728669853868687496987114967561873760130258324592807768052035695252306127844299960465779875546826435196521916474787694810436327731589432301625760845606731303385482958085857425169089863202141435988603776832375165464341683600011010551780088593385707962385163587350230900261226165330084187443274928742929632963301258941031776464544295204284668371651604115489523930541167393276215130031897759132654536866946891556962939051436335633657307063492666684429866162052021058394009780453287395264939643915647056477013722278405848540349858773590917387949866386168954232352930923266117926019979388521686146956314657961073437011113817021906364801442762794701140813490762253403134739346937082842662508326085902702219057586553268568652159908263010585573055414018839117879827162871023092421816491046661268299769712701503309177987351503493417832378408400426183032774480119904867711275344445818512661114757412527923539819520680327230430193155677816456205686704095554917313569238132861181680282417210394671822770098252147730803759313324080931512203092409514485404861649814450552735777520193303238662474845182434115485090620612373596273633194935772533376070952025100461698099203910332928636471970457771337105989396029382631649710487269273950422049366614225469006639988383193834454091351529411111787578184845252673086065213049252402030161157853492101136755645277827034028515291012068953117948945181454693656212462019558223812107936271530062616143944743084812526399615208509871107706478355503827920851541118001386484678461410549961463236419281733693081267517167956582498014855685414439440672229705833694453569664299036980028012854201168500329556832091309604391786225832501001939244336827980894305482809954208104721225743394640049230306687183231731728146346470026659453954804781586422750581771139198630348279184947909038701727650791529197625766959366245246289109600242139783442767741399032282705371655323977054284166964733913736309863181629512300263887652961937093930986170075434169688593524620418123037099835491423144264901744601133632298476843497092127396187165708606814347877117062654717732810134540402282352519265913294931034718818019131937501601102430261597909504390883114078013314197050350941940014558569405844752030504027875749857697423310571092154775246488900241901345896307629861687256594197152279382481203709990674430864661616558597221145295283870158246694610479991060188504999320084707030557984972012222570797556037733986280138058150872545634407340781014152114184121748690995712148192262277854242442413906849276940275885336826556568653328665600367054760380946356729158421279603437786510549332362312409416350477414846091231843019402702208346052636457858587153916934372544924722237599459838141403162741856595248552109318236775085413411231722195098165974284085114120831143691600077238132842906603885579964030483313042768580630998288174930426749012109221478703366153023425214091867738801931976706835445355679195424629201977065136282894539398838514637864420037747522170958078780795489122412614032379958379023213971585438470946590754817266268208209555464916706904368594537882682731329913247791549442773911473272516278017810779727590350274457306385086821131514805584936323065486332729142437264280636370392813278899485689594015046910155846752939522031187787676747123128275160732100219787879050346949506866650078987588736828221789646327315302271168320567738668164596490819946333629203319358026110596949000376070777994576518526443631815823870446899160638110674357192479287391342908558792511764456853194702295933667048956680205135100578687385359022309944317495351249116812022501329096996023747695774793729269238345725926500140688314511942342974803036130006215553910823585291084837209421741445252634225776544575665523467591051338236870590107985497811959875413809776263117870521489524021105936912186482480522431362888961007696061211532310538947581817908277986809043141043536289014179787766135778049827787731042516337216010198172979701771283484113584693859064778425382571595436019357297466629019833753024793304392699248352783918364361650387223903025418874912593134274130606157140473100072193132966786469768765614879309281848815272022412250581298299230420645356594118951141576785437364458808405142939045060314201765702542654299137676228693960801233034922363859787691576639087832920565291291163478831421430788271103809351991964228462839255715534239127564065172128413613305626270429161094696270028192816147841431724562313173338575508293155859596247879636855818943410515326801390017983104811940545157444280841748224166436389414594743806277214780035147264861153673543141079164530173233461151061814635372195558219886057813891124926271668176448174032139120852706389080991737647039022698249040050273730782567719232078042743895076177452826748069978932310293616138734519564204675042676065818336766458464742008640290687538170869851705893684850128452259958860501212650746318424958969527816542077344158499913723014732866833982831826855946729232768945313127655420143115114654082269999601943664903784808373648083993550392768354630391727112220468643148824130373204553019907023210461460119784492563850092108443474652304436513881857733653411266673854586584310755532362747600753641869964551702174086003549202748696789309827458982473151325247986899674031796443717214879386005235541804811006081240855928267432440287748375330179709112189936440133549860777035365363352424249178429128198699289056890357823267034330706813824410525975744149507855781979230218785904776896818574096943782846916593269288444463004203115203482374191574131261052699356876085853047200165917359513295970291679190678461299555055449504041428823768267603166861670474033012755024596384976917612774949547672972557209557313293277645782066893519492771680805623254940979131450540193129722979722087517014361662026249044064804581658996885557517666498674081853192724089955109311738187964913163015916002347333011920816374908006277418351486295063077364809566654291334810453460138869153764595477460845097052095948954251595813058421045927737614498963556376285175788353351226877387586270434520193858852650644848315337868782270295911591460180004750546103958079940010549794704213279142567391483738012559148033585093568525492487422057981440911554482951129618693060822448457135849423803005629988231604007367181595491982981562398686359599547700153750955148995346489505046226834348761154580095383611013937583850449183241753383875774952577081042614261362939687564676955070276659000403974189811760050940799075368990870687980426877291584151101312381678135007621559423533879471636061426072736113846391673073096722245684250542210142843149428870037721095637940785271240624800327058307377732851135450480388881414389149058925989935445956333805684281463011093411719942967030128396621298017618986329617389103533866769250359000203837711491204434851347997959572717331234835114482257661579592188895852537409125217328305029399179945005926126472085250930701446400725439040124451421807958942494830140355778289120567495591992353373070403032307505163424860521234824940210826567841534471745818867640734962097218317808290219520176439199336307099807961223325786127478337387058172381834092654536353121038092780289113787171069186804505231434140942368154113105152312112622605064661468012846703336155225078179090861759623228882550314504977740474248073899968728167714157059550357968133617732695041026998682635087989647505644565870509326729165700670663369773211555522013119173851042559316799071123291888092409144261586300676505845727179895712595602055450553468440156598424613578062991367390611384948001311364865070554340956028177032671654818430273680866425354858096521198831082455079473832055906427278699592885550045130593511922890997372488586871611991063150272997820385892878149889451427402762499138762731582457474519492884673437827141734103873717579996178144843913043582708874844622318397931720477725380229664549339294500181144910713514424853821507599229262315789072373862984157428307781752077067133558869543012590174526738915583597040552796661422042712538935515607132767826714878724958495349462146454325242639728735807270879059112359226639768093211961689472416453070091119413261155157395182215734520609061360734854296696439391958126635853149734243256596740539847324814112190661912630182836089450614733087587514523745175719352253600417422603158329922083648283336609920981076889560694716836869209154856437367150560447421488106063603739542785938393290638022660110874376965233817093569809073227473061012977253746410528319017292706274300816833794705590289310925025679696344541592284322641307337999643317713469843479811593020685395380721582658235279376532745904297679373006936278776866018401345846988394890117980477408095099040013553862983798057675047538483553678800608102228154004300482128571949023208280919965435100915631954513406279384521490679318522915921253718867933414804911836253676569163505215581084000776802068836920240349055136491241707302485715266907890593169161681860410491643395363984136638271275199037231066831397750715557704251493491632373773656756814576144288686255479600461745154678541219565853752459923915377342816369782120619723923147577691908167773929099355074389847203598786618990130569139865355607030308229375380260844440189930970937188319909084309783698183837182136855830187177772851825730490743063485298382892115860063380334800655128083001890215119225699071560678749119915589137145748535948060749814999942378812366487746915839703517991884010995406201524384045931178520826690105587681861117639078014097931413969873392321390626740569777597877739132042315201825356881512679636251438346886834801592061945295223392574102281500773527930398519187041623507960765173766773819795821972863587889493352096180691219214199290149382864042501432336486007536092855728050071714359457792836742878698185604096394989063156789058378688500944172762293802278872761523775619417284235753237861064002250176869959032284634673465865846273022684593490387936380169772051637054381749226169654398687066008012846864298614192215843022493462507039098466979026024696285747418960955793112650059451210077992997940582869394482134372683028448072463956463535255389555566010712937286726896564096531036767978667906776472415136149610760736811091542388501142517523983960236809949843233504771132981520603173731185705756013087908902349617813058782039439160511481517097773054037306470011777282850543156592363059296932200230210565224278754488825711565820919163955434735479804965254463811270475516406513690022177484652789140037410146130531992234648255306943733000379190588942144097804150852332424934766961071264403378839094356166286052405128378512582786932478800641961167783603569244861737757117074148049124387244773102828483400849289718844214874029140921173589114926530272353774572089139959322657883061794559849183309526570490539711875296066973154692176219079518271874339056384713439565646987030669766348807751106049120009161089061523203804302504122148420506541689471173096036421004579144668032807847937674734325705553115965131904359911418148698646490112254780467793820660137711403432949191232455023938239926280544325873893669311594524320929948559388806826134922787178217376354762712872407796476887086286385567896302865567931687749755373790223287056478536784958022870969002601236435251705105062599295511854312688381540019641176929054335177847265697686343877195276740223761338646030205774750331208519954374623622046984582910333775132659699715326032638007945384083925068558315293301508211963401469676859804435385288281122771769080075608342123133881381278713656480219616507942291330755177728790736697404640638770990549521802963370199950505177994214220714349826032162346312404560794450153769571066651178496450284219078530320780804968948633814952222428246519695383855860053121088652189598848181535162141233079481571644127023903849637462435290602697495805773264095588865507083350409632109270451941049182343881799750574135787971653664653813080273388902352355290966170339203168444656096839934350303796792028604916961180688624853690522012009922760009306260266305241284436697096401474734854474867737752910244315597561203634198885069790792420744390650332043828952357840505734889321901046102479207001016915348617708029304093878419282950640068294851802059655336878360195533688891116801656492451748211528291511875754757731860833908310160417056431202167351010257580966101509209518308944470462233051612251122397459079832070221081988644729535743062594346332245443272441092001325753450086601113391523072186384838585394557485501614374170097551086885147049235256381393809342457557738037110452346956015559354290243313025202846055203528704594670440485974725045657022197407551659200310532361958963552203893930116475947661101581937285015998468842349538790517603894152207459595446131720252944492774811934768778332981118732990731843359791593295951003396908184151752632940671410772976694921476118945102315393437078649981239347608468575887193683298430293616392064630291164659115419103519854749619161634914433476584892681971382977305305256535864304035213941308910019520235692869613838029019825364598146013043692356424300781391228248329271044085838547604222079769526156000315899319208630899941937442687223777200780999118860801963175595335293410970769751212529126066513919317436983911323823862101204226127699149263961146062327261705873031985364325685785460526106444072846991421388279353362539445867784882731448055668384636314269355729620413616875929105733053784320887600919364186182271886585819599214838967280578873837773224832977737070612696891722685851060238095641134062891442745445699768476787189369945351092839883723422212457003663417334224081862495524527427240763433097832997627956340742004580321342770717225643121594482704406126697129006343950290095072196127247582796671352601195961518169943949225031388072699030439746640937499996886290722172661181186920403609901084841884432993509666467358120535457046190945266257983098318299259112296291254429986591799684438660191883893308174216609350562994607513666082978719703752983323601349774118288640687539367129224235225595185324199753523141913210415762329522035878665940718436985491888397829666206935855701127247543581477000038562278016751620394761716874124272827911519096211470599736384517280120755912634992444526850625328873530123847178067628135195717133804323780991314999368099783962404253832621896401344266016161330626992661544564674140500129857276909480894035031180859853033194595655073295166411072924315335207257355719958231021083940681240406920158815632255674491313397223638612714724717323027832843480792763093903423355341873620157155437495435299991048819762044186377082794110076677122195468081648717409946499330997354854819720461875907552919085692307870230906795316388114256530074799677961101793977710176008138466375258394465777388260583030339613478892893696535535860007079693927129136149961302892653173718929103909205455909870760236704934398679704580632611788024938288075621658652934239794719621280127453407746555990240804325173056348463580567437316189192201482385886324763314431330660381493005742624699081506862156556418411330132273645618228105211731443987919023181970099407894438908575992652296278502546404025025909696231021399010518314398520704951106222112391706633105238322572167518104722687166809467386261131527006437108102933674884256167121313507434992525197665072323634575809355173777904908951220296526144611570595865214771861802557647076384579904523746282667780724231279490653914415471389498637107371802528030976660120568531171007773119555334232131468211573935927745237094973535734049907755502410471058612458229006833217063112609286397785812930261528637348835519771657581882633209147942834240430838248079857810655036010000278172771870497330185481549329253993661301850254639449669422676496433654056995407963352170747264075622350033361858141187772723487824430647423581241218425415234940853839112633075994082935201301486807242603873448430558288603211465132631302911411291573768962449568931311640424074296436818369972567245697602005482527337318675272348545322882523375460487339051791956244236821153155449135951557801067087085338958405804699802502442026030570082915340422502115304051176050816770116013706616723984513923056754494025647456505647073868889222043633890027425816092705881709441899378991520505375924299336556550723612681707844610668181356625019879915549327659297286399876731135250597029684446969755927976950687700649916259263943383061136362627903833001065162992280591611002396442053170826762445840334130973020057923029753165633045478581541901551718997728392581726325024748409512148296603607239630154242543449108953604386555464897223829035050309838447291814045044697234867298687742113650206558776560228229207258318399852968672730416597905140372804621106076635416255312922201760377197499628584401637539143564580641007803385321907831920843906547652991935235019786715073705616344257961724262304264033544161255039188664332366535337148124847369478305469359650278398831033114744724737099282112744664749323719759451783283966888829984266451055451638291384881378609372460344681605900957973867325041751632076413293477801614216681186375669966062991975447345508525373484033086104218993489773755366700320837663974801538918113738592333030599835644813893149161142790882622310104005862811342454954682650618955534978303081117938806928985078705085493075060652062323148313532321092390549277787174435079698382464213364480307935162011912054238017534116048469679447487530236425500005593211690740660308330913948192140853900070482577609088025580713722276098851349740234048322241984903174236061795233649221748813369957507513390185436777719607387146621698078349272038239578744813034354455455692977523030688036619046407626275630355161265231061672087488463155777187381903174440506601849443135952409784621572546084932013909758947429132323504337403358128955711169328435050728428240429416269391444219440154072436601024370944611693617856667871010689737789626915079355109511219352520025787827624306909318656787805745983809741850827606549610293179315115393517445908094328439395288205277566000760894364008052492540480021463321975531646507839660546165769048606982609245545973157832490872288977659768149954836767820349288402232332978057788826863167147416868119358562948507523913893086088800493813261585944008748909077149674928370869960298978609841385291100662827037226270461865079399518531249365486715882721552884253985785846460035375815856030856767804424980482009081839920465903645514098259658248121638197910385288549452863531279157921847808599998308043767208519785435997442203936225563598098967578590191108716704182574072905194475137342767343465537605034953424145774951065211062185329256009374196076412642615871368371504032005039718989705656388125906700428028046360057210511304975109114352405340420846011712702288591415456218527146498524044943897789134635741692064630156200939475481127938621676481991891472162327939962419515204926339360392701832964983623292446145988363820017530561873340823474945060158327446970985055489156974996243449176141205289151131109401024326772525306528502677557997009360257610605798493163225018730811504061697124057236893741825700655989177825532363917817885241140681721797953068577119924353103993888943228946316715221157899271080380747949237847823301714624087529622222568455306353150697754117496743621414972244121272951199506956951969984544176136370823219996596132876188746361478192122085848074760671478438195381155899256098640627398792471663349464446105203710818525894699362763946090343503302832581317330746555004083881865899954172650132107969263075847456543779889529030005258681489679995239708619607739986557360434598765666993844989006610125681382725639606903232157993579627448834354339891016639797568561478739534640174248100320076912719234365550023046352944814621499873043496554251053201020652585575576874469537098675185411636815574770957193498200820814822276850908847186966268974512698832689262673184490510923518278569443319242002197205179702920292467051202718891239661768628646868444329626823354878118642245844392592144769877569271947326020829228016265208419059119657354507408357898929421381140327561396162461590144464255163624934486705399429945963712680150398969725637473778230367852958369452506134252340491318159547952607807316631107639306566665053728316859519415880659654721363321245343500895882412372546803856927162287736343933933664982236561637789437382770004287302193527616652581212864703132183426759724133656449532313758613471876394513932945814542634147443918080735538383802793119243023144368397891415026263108666676304089324196001371662871204533055492195302698157323861939380586642596898734348581490902473866433515075731440313650697899071238657426199720930593044556823567617127055998081611667143240034925992454842341902457713952113274440551183450294170003343002545326162788424871072135825008647261688366514254479252691479738075857235486297813867466240284033565994032203206362407285632799470310929643135158346256897210410021961590102500710701179367853630568301513819994996930967687659397233099170633344065652059649673309095726314815979459080557261928975033132511878370371870620519821251933287438382078155491580987978386888627622648221423029961166687744094516278076740823361821961742347128424280138177081909649964589240108720461342038610515526900407726568885865115531545615990707892685513976035909642853804713978389384737990016004920489049127333294090392314852731261465376691072251717039413155510061704098213282254737464811949800850179941516970071711134778867140037922693056377834766934306891669326329681042230083616621502831927612110890049541889410728500634092941246726613048350705738057198323858577115123167988410109283293518573919661821624076540368155778026238380123483105733368739200189313506121735548301122987881912724276804235513225167658662743858570701747037516849427526850649299187165538157244646610123022176250237415287030845433654994316999682769518081488068026504991934645191528997893524005484679822026225419460012845873227846939687066541583218787046159448093010750649767904714615138397132683404196790289992410044671320492449137445703635465708651054839033768221433854995754670944502363645791428221478196615266902913601213169799613317580647910557332953794135087483167225156933911398090777699779620486816650503076300124343827203497832511240927817507764001813339752852512686415833317556268885910214976156655875163173899163420840197307362043893480063005296437784442197003246385965068986203225759756723376760511293532763335104821682557492079836747954653508648824004878543129249097092447616657203636816457084676950217668960455904439799205756626315274673853888330975952813867347458569436766973673476175034270956662656872422987038893106555625966276123251819962875262662386205508313465591966930831127606857376665683631532760985662430110879713122335496470322967644346515636421032274687972749440783396333998393450348734275229397751412806238566775701008778321334904991878915682928081992120369266573500985598527666654623206822385047222576249236485802755766921263202703391716784673833859389286834257481011545860658064030360694696263797454200554360300848617915102927397698144630638168287354608423082406831703456563751220570327299047959168227702203124707886609122479920942271806411072852890854226980489233945860885367939500434036680052014834282316762517585320320292774893889603270066894517924795467456535785581224623796844384507721358144523248090797949505825742028791515062819922250771433668267062600798706337485859904815982611003421740729413257828207363009629228320855698894190515778155308856379724498000509299137564323363693042129838155757783780976367036346034842550853710969889630049086227548170663549783677984069666918924587146291525070802789308863011844409067513801288557970335865691895024153221493058998680382059443773004654069572214643221174288226488919580136893482422848772532790158188900217525739333812398089329124487633640871916504595509775557157153429582775598131783230826374702381640791802197302921312150084240096386598182052910552956868996514289907974074150428472187195232120828475447586122009921700246449819526479572688593459956718465919134708252284662378915920596908834589664915916971541337518816824997419154611365893313272398078717856990629363771373809378026388450973462924873126335550564603750443025036919744268431475732327005715133053858300487884273268185329966602031428240883135025699880409667401696835880213316293938749523146831325402882391562506597113831592695457190390656711334127358940111649625238079202450812232531213884947001965666683241626209579023321972174443698863820245412103207411820686289558921048364273021964030269817366424510620517268888692560887337933752487619166276762786668503831498595932247684077249727044588567606396551093620954462217195205686660365873911035801105951718353433646030567160076416957388499317391257624778580135671541833279878443128384129984282836884697695180056199115398716709400329912460525734154105502867973121480360378093089754922526552583299259325596245470028064326518415916451167808934773471429178981404448185534829927260125313014073052720616511442478588602317906261368361791775083703349120645004394040484582083040501969011224637146064037448587336046620371277718025746732441283485931370048155914803575573491359903163409302355114468911740033753610112021066842548407378777871262386621193059889264229095964976918918229940357779876877958277095536386401518308382062948193964729434623821169010187573045568157863032717048666809530851968984417578225793886071058598004971689536507416618735023661899700956952606233288926267405535050591172223537126989549394329944173519367746833107675269289685507768263596971387485337341297477153385287363960662016893690792974188563656954974613207116758296617681717274725074511653839407896671238992146391741288328846730944903255986646651326968581146100847242712307022605957070564490845049391862932792025228125440981400611547828867384394848731658113850681150735872118720177003313471824416660885222739278451552596129781834516425290095898007422856344577019615216884845213189080394375086946956316223269427255868433712634693839807600016426659188248403152121905217119970564373027226519189232935017428378012837561115558319802231186812967604700942539653513424062531796110372898881426477181558000619005171916090620477399835890508326135047132644050702203028321848127490796385036148156308472362257580419233915549118460146626608353985409358461725115336868859380815465796558638557326772608201567556111943924724661385338531495414806962496333770378088577981800604568213861049087966724701500378690252293870474977377932132224616674087898495276283363912680447541434524364255380340651674399317418016468553842267373992266040201492229319166901469584946639862620967940724369823074808552069561485655965345324180475389073252658361899353263374088089521469329176938185997794735372191075837089205617762924751335261366728627309245882748304965707361001684960422168346281032618137802089855125554497495002130615936646049724175787181520542782008191435500126609702542928384469707829168927979844054907257852011721954249370654062571592294079884606422535793952117731377219538276943541703453366436714201806576939090111740730305429871660115855162932870163200415517169117166669827157071472444856487652169568699733688836870849528187045575659634030798711099478497355940924147490518232824033420649315481546372529345374106755314422760175987746542768009416184928032832488345739710889019969979550256667270529238645426761348480371494817696344789615837974150470090813434172448760565213341968254952351801566812000493250896427911632248009489249956235899339003987569072454864898838367467409291662781155624957139450342863204122027742119751975057504703407095860207198722666821700553973775128427326051342485690143147938943001671127827121853479795274648766393386603686900664194813355487188796440233759006118719855951358812514114134950145162777213431202964609728643001863160058436696313579850237998725815111876609276972567408489679750899412800413465118521515831303177035101986400993073531154657960519264264556601488974002579516169214373395115991277843343814425202139361612308655982613345444709132810819907268252355626751780305148028052688299306316681809801748251485458084544642431829167712186266515302139956839576379644582261672208531907351979943642106144790753070692396878013956311580086964480265144264520294586655922191414281810594680362558533034227690049518592986742823156033344418066701039449120053359673779146013709154324142978521316591201698795405042244948483001774379370234760003684108209992205332624003024541059289728876118880552026720920094859415111210289521096978647663920200506849581811849207628330715987675677466051176077019319854148123351845342465608133190203916125143142674980186584753491128675409140479313859571934674247008832105090218927834463265364960596207341864230371071941826044990423818078526703994668641350654881364983527025552875158978820227036767879526530822439367941136556961688394722935389976878746247771619583597177750363472173266914420241100867953679655123010440086362796646414783561553193038284462192737781188705045127258651544409835179623847842495241619423464010430983107037254455562766137622297812913535990151989118778944582063328909719949323177427443710125261076273642964460573138692943967731052621379061806689286766159988874477739125556278326526724870827990693120803592538582670812539560366050668608699391999822606700954713949928603700026197402727999774466177089868787658052091666509581722759554511713792187757012034511672778116945869322034353425292553528935752064526229275872740427471895435769273666038506180146941092471689101358166209425496706256795622722697502194450829564052391413355236722964075026523875796965755108812776969137504900066834050073502434628786213520393418316865353187647061637672809710928882712291066064759070324446767035362796546656021560929144899253052101611123189599741272391338852447306820725728391177427737267358841393839004646160063264427112037565941905130298124933268263457107811510298928548663847497638780103878216645245608379117620336455754985025951327146352877891403743636504202503210156083403445953499767094241472017989202479281687886197104649198884750669224667266319841702404876945962391459200032869124778579418106693359418714376801526776815751708022273353371523937898044107503229257918381777879249322014605421553173106228057717179084818465553725338041897224037439594663281354014088761949626222559810309944118709448096245831845755690107130048943664260610116646704255781872682560146415780235016955851198078410618516978067689843696415849415681924292640264768935897134792413632455473639140513581183148082164484007386008546019599827148240272342009658290786031516640327029442537758042399511949536976092850393320377040258109677924297884620634171418030197797720234175197336192188002723412204482418022366933194042476421001236296676576734429462428027489970386997362185619850010275469152157129265138453005575199234383142462375071458426038072768342310283268477925185825329700469834540197459065480370551216838404462079469447023992371295114310728290602915529150375848252932283187687527950528358961596244028244420241044642349628055672800684537660935987061773351808802599711402458174238901048571138032729978922968309448828891912254164578569722224019554544721213452288434619070125022907307223797249783046736735461570527605937434485998054740347121027873509071684200528768253213597103805853921823774923858204685432492721623132586559730106473139973509479358357226809057687164502631440966075501972781000665999718567323916971734272334405892788124273453887725088435906015024146640193228660037261424835448590661427144696777433483683139476720746181244328460449659205183256930577679852006469785233736083764353304612802583247191372681067097765654544963845719385676473866856882350552903615735437688396763171708104210809416569728048386637351585423533657353277128342709762387989549095234594439992152844827072794242581885896444067147962937248598531799329021418512297762201674794063631857867807976461085131773446263904152822675603018142157108326431083112611678560496986018580357796752710937465074951142960481115260519381719886615251512094890577965862256704961116613635276821949816857263271838532261899497960148646847611224008736521479243246319366506852868628919701853391019326279065735506902599044053488677713294825483685331406963786713596297126620624752624387809010325862682228282032044992290484371597704337429816507118290123794710695652096129467328285798115221676191038490309449908337170189927060193801202723269869379713542394723389359332955918155792401970759698440786372607587142824993833748910605920309670510124335122399139547007004325525885293002061199245440228141197827925950018912234861982224134400487485685831194767415621774092204857774164799726790987668104520359667699008174711336522762764035420975584708936007830655853873349516063317702369892584141854311652191806792776179436421015122016797561478510030225317985131828291666346728487774724426456807049454046601717952315918044778757062576595367480050742591353743913316059041810209156156708853749616832512792113573726856649162110387668912876717295497141450668448028404744820268539913912371524323880710239479799489334056243207373820016888650779422343976788437660701520478778207130113959915763101335449662930558434654454117130209123619671091713203770970530325499274708837164018876641173856551268612241401109825539993074406978181426543818418710194279518996554270830633729027291516957264175328740999060992508633230465756845661923060305359950130525063505095421093183672726383990188722067660574817164069472462905853112287136773932779808119764153957580084788880954086093818996389794137097634224294648311776654039665758712184286321299652328658748234469431759175574480917719268871720887644682575890049940111340635489680039522671097248689492913646210262502454382699215696458252718347766279815605866828146632204687293620980028011930127767065957247618901424716948812698404371373940913099933884653856746381011485347781096283715162260785744240785589837449112675961079067654459597885785773121367624146311656989718311708325182217665765413105250532781004385707973820506123285313753360173373918061114105917755352551865947296371091122438969986968192982349937691230793929396913164648447647143083784005638780423604923435388428019507498003540957028583812847186078742983878594427085747973138960940949809051651757956145045662327102349916190356512680159499199401714320517762063472243323495734829998516194155261552539064040888501788129723248421065089206765248943283418080658494548144311652215260450558744384072913642108200718131598362935241313423299548567374635110077223541796446069105266535097265659858219542965059496351247501298552468977991582858489528539184441290849653891557055855328271540087015055332904836368347822566964552990214878771055407948859904621923629391621650927757440708235121278574896201371615858959188568519272638630045769308058772343854726018666379463848482236732092615824176634543284663190963609086386599735148971103863733939427465921080873350079298506761527123013476036969664774641518697909785689642038863660837826185896314371266497165580854923043754970994414479366674348499238738860562178762064122528049884087795379552484924072090333614857558855790420788177504469637221908482515814843020336379836979594762543626967699626464739543406301329099575434694097934729827344768604829420119637154733348138502019539703283745101581402561533968582791324123986315287351429048845674967190847302556818904851770389862136528848927797055229997480704130396692854951317325821256641072133583593654207664947091209618499491161701017186302170009026228898348130672077567007207344486308354387861621144170185985721201300989363051094436020485493579030519896408789867884941709582023953660755702956029833336847650628659740236252088738323749280934589603388603230369769064400651147121536895605366767870593882326802185575910232023312977623660180084220918480640871233727957266972885008782785583966545737860935342725248154180117286089563443514774706666588828094035994586953723611884125106366937517097881571947043671471067659863672487151088179052482365703930819548779802951920441434355648837530441011608373753958418328662611016219022898755522816262287273365714886072652648483164273123722592290727146469256208105681017053325764262038831933558879258456377729149164337538765009320724230293880532862576267406837717994599481867945718158483022551392167165125440385994206290337028633056646816271281842263140806934319182281996653493732670155233611057597997090621039537392848855137363351994350026597413344670218195961310846690369057069827552808061552654087774184897551857096539184119329724564758282076036418284928902816102250967683061497002720333167484374612936212507494018750429615700874932828959576095547921344992418261163090573048721180402064899467619744607335565662897513249866338187343455019412004595438953632325665229730584874306265727961880662867862519170485733573388977844230607564463167838552495185418066433341093283411062940680466950346676207491843692107493996763518361587887919720409792886096324353486056983742108547212070129200773409153989108545700309645422666986036295221061947422589768824174066221492361006031153944813657691708245193678303313585459057376273720061122383895111382946123168003726187284549614116970934291545372556916311041670621860584681618472965891899242929414215764713458104142646395341009971653373735370650980836313923981443884467506204280043752700955528236129663011602555446920182468490135457858139051998481762194792369192708320891051852022981472891129765474584930716286609423090377351245794670462487807969139972123253476757802183424787974549296178177070804578023818560913434626283716594986164487541738009799417615420895826245033842944187030841235258054046121421058981569382188476862045624995409691287529160780599130562757861134806078679531908618978675504177554325939063583885152764910556874595488774776186405196679351198053928695098928117001232318009989644238459824964113335009615148061819301651335327105333355271329837001798738455940570319373980769552602232553672980701501794721413068499452683523334521225019579973692355398172642137921677488206947600505874801944199658763243216662391553735553632521207464359884084792244363745048058471895032922928416274276868909533678777694332761190865998978983590572779139299599735744848980591050631843802355769518750095101113691271634173571798004178019668738625822612551187829514904258726579910816091134477256016140899003076123655628964913480767776300514574099555942027976607727906250443698875568812662523261581360994156340426778784549014868675379213445742191632679857134593458707093688880449383959490415157628683867759389803399267627691847966220088262034392454532440617117524445016038477081626232955380272464642482616463820684482035121908592222071570784550641797553669091974294938780078699835546513976236898178977909120608026492611322987281228993245942719345652578269575579083883859794033222632215195736368068549828553530958346446452861217726375626012984634594108809175470552011219455558840886465764125148132431692416969471353946252671349472489280340261137130354850101389975746006792402481647207502651721890837829876907335621639603003727183480486521726666621528771359696034146362586243118316969942140070492008959597766640006755741399425316826502468381300608812793605588303957944151531248752361779809956176268350117060248162490763793531766583189909773077131952080893127448812277341678133003990710694960678620514300387847428712626325710464510406858838580379761579912088730058031298016890839480851333459438755893305101392230551218540031223398819533981099750864056883206434127633899491608497439658451796995671341655592121893851919504219905792299614302127684290823000710422641507321262912584015477289986873899208888405036679434739355766352447738826605652664498019028570410238042916874752224222635525003810364253171463812600681320022280861788490285877122660973980949637436293451869212353663631957858662938632964182042822231629245963329411596397264246461289387295067939912311870381503116794806715315443468904243144122386304748161787397423689789543661818119693112519328172389721132725035138828851575774267232761150760898166919350197121064220332675040655738834630126042749283716535237002944192158920556312094920581388681569156603826671958998842811525045887141212228425522358117524343240871520156350234165626419006354243923024762127650680108628914264590559945527812376338239693851180479039433051447813522436079654157313140610724476297258148488619561771339977338696328111805030206126356598207321341904777659245502451903811751399351386009341885992994698816414648771158861243094282796653878724425096566903169947985864837932638814658379207964067830744679423746856653981902180355993288831192022518553657665034738916679743608824228371037877046361359374456342846841131715404753849716130571927925666476261275881636665531113395767326486654537591621717298821741631976776995194772581389175957448532613260985893457064773331408608274962511429159521813298224161592664878106095585054511077392451276447795202013150102168518399795379564332763863101230092131748624885395120871470864785512587460343496028165235147741643732946552680507385869523543838894294867262938777251695255058125438996395749507382924359218767236725289270214992214156728229383131146718131961633754043159770956342993938530955711475111325969750761732061592018122021014037467272776855932329958906639655370555260737562195804787485364774054662468921141240358938941432695343204850855806132070936889081668068767546043544481503123191090259599293775859767928834578617099950660017328969578777313503859858895015620458267676409953215893268609435356933204838008765701584681239915655976635749248930381054165004882610357790364998938264177867310665021793949689201820140238355700433807991363729535365808143364679045940924635244879242275105856300736711739777429870684088364353293125721717747415537683359132941660533810075698942938768387223306596107563182623401166579940931407953673469345262959551416227331673581076294458003731617573644222341600727282946111755279628943777441046669418747119419234542561324896881986190472846100756260560997135894597726000802344899169377150082274604466980715665029138437358569543980973431223904608840471680257653160176694119832154039343246098692152679196531747228213518518287278367086664023314551787734303454241982021514600594370408281160072753538100019182203352003413415606745906002599877105417105814828949021411272857093598819802850447661449097932683024750450884363079274035889357250238707473746986372243538336994524831272833816485997299467916583892432422263433346781961718838286687780920117904363935628347379165563917801691871724663603608857937992768147207829652154276537906491747889962131545990383519174115823273417165664325525725144128751216709686458652742499344911520658057772667648402093980873561889892943936932836436396996479640476020255871697960952215099036710846981913141243602146889926945819373727821581604658628717005391624913309029156349069008769633498949362749399761740073201977893969171765767555862563278909740928905451546642399669402604635953212050409041328821481185297199461657425120761827792258563136411207929456220500039902346808317611616480110290616995730556974244596077979261956128830331299523368911581549613266960849830592896929686412255289802360654013568005536144242828898831709155737383760710144170021437265899063696724644403143705252386757099190167529468113772681564898179751453098551289281809695148995641827241840671910269075874842664869228944605483097609794830438702308560047098451240639316469936604049818188775127257389376069063746225923698922536145963928701293905677963512761382045789485116968489778254163491485428098331491399809670435568033266232379512253639686646103744232955590971754678087594321146103069422500989864855960613629262504992707999900458020974281724962534315856984036499729529243657663353400609314930559314888235497724347868894755045427725631792694402327862211062979103175625333389548527085786297803148824154639006852783280972160355600352981254058479119645721008906810309048340798084454963511212155209724838796298816183086571901000600616929004765270422185430662711331545689734649366445694781106608276187885331057578013013383766142636167034215179829936687167775385762884899894512619381854654510591440064515487204484214047851424616106826834975806665735213801438307064266455216300075477949856174213298519763807087572582693550498383641445439389927422621760342737336695625402220834618167022430673338065104303034792163671093611668731988996516567246386830931586164431310327868283300616007016914976482441141136984852873081211802929215933545195797964756090156092958768881104902091601862560433693402491865537524163938027779556444867763406384930836815347217464470704013799963481872039785319722290359714591851011335520652368810903078252655513170339521495502652901874476640390227930461807948224549986887199844181503630480921815856965943847833152533088287755794000028587868132828814645103945775088925171531090837699836716941494020530943763153589522470294253767757540986934632493392809614042530902425596028060427027024831713055250914296989603512114049133514843521404215819805591824242452739553456364534341591163680602124809084247712200539371577603839916282423792230561677242743203829427575749746284636283435077880380122773368137648024112908106095789680904262393842428001947419052273428846029053475249966710675533681829877015678454120169497181139185268410023980560708855642511318817747935940784553824868602469134430208029756478127655129075588692899480408803768126125831989847028457497069255107370209671978451852050324287346253920597314616226619575220701897357135585077973237426325727765530110474525152946975821821600129888976748006556709758243566117352123856501861794234802612523194954275715711228068067054875766884973076197160954795270067424775021054841939458435924594608605408882105326109334297048258948758493403483901420609580154266296068422604736022307853920830312665794759078324582611415660717541903731638324969686769603255717538209092190014022528226249233891230304064872110960012611326630942215508222828418190838966185561954526727105893504122826461363618425785844559369385277395706613822091652108464725863934643868998985373578216815017644991082928980381372038348275840637728128199095921981161993353483129829744056294061850827017474598835220504075401970256042007287787512477829275588831656463596951180595382806526108032232593394444927296335413618520963697933249088026069586153367815408489938900098488330320155285894759118393373948386134281199847145479531519721281378247594970110324423782235378742707557283314421011850928464863455700126185499803633138855366200728259841775073846759128487997296439786710544943925026673419968907578930498051958608912725808295424475051488765747628716807052401943533687287824242679478353390161314372483193139398146262997572253433066715062735557561315569509451479051821579581994776121775250122096803530207081050819319782862048903521664050753338988668156592604570631821972074619605861574454916888358129047880397943623562855316009618393887166453856533905886563166767994059891739670580115305167651504745106088945837126719609115007918836212146872347954155804780043351121041533089935683964673475973397441580300102318771210406194663419771975772025614841367535388325001070222865744073756753581998508189249709421552561517033810366515498220906845480067367420166929223139096399389844157613784835287040101899393190833088929167967366328052262576146338532112120537377480056572937127036378536911978817660776860708515001235850233745419813505843759454525211231062601441323574948417357451033769810802073747965822213364170699871127574271724704588017311574654406041021204984210848614769082056389328960368366349191279797956693248492848091473722762696502057504025466933109836045800490268975235460907188801978079819000313043367900526448008763143852632827457914060033211207125099431578593148847440390467558077364555441242633127176308928725053825419271590432855161149396327992643071186551735103174940708396574893431345070261667539956510942483880080812756674837838442726343242717480040708261508958953307138333145247676579930941781913282023833001146494173860232970943848432406646621902229419337413639769931670395982313886050321194306500152745251137508102431454730708094894638006609733401114672291149140056658563204508955063212191616389134589323540494073875797202058113005000544147223962412543805436647579402639078993733177334315757998396250302077255490842030197186029415000724225645531515812796405784722880060208785661465718444828078118243391651034643193933442056379451560148968637574626005781615424012164069254789870727909313201848520349451649692751924129618543505134727412706238290505194614793087014512225394672603933898478843214172283767787767668598467207370268636776877970231607609867369799743952784029843616411701559600379321361472115259329925699412142298113369290984253863428575299664671102526219861301994989251477135314763769929069622705712830897331127313777669752702046602163718842260937531038615945693142647320370257908191080698257830365893486109281889884085054206081587355397961452635747662505441272741760284273900506895542953354748493924967295508037616922394905936662287747330878266172429636875639804565202836192330810427308487326109467569809809917594637853056019109142426995401442728780187274639224911090010148279011464448297061461922434152855388616326183843279589131764166708317544762936040474658922891526956173796782492696559540853337745730667186494318879036317291336586153350363767468404149153239704950473815151538352363544253317767073341695783010498056731019384307672946139661167280939964521633234624333301067085153913079780840821723950918629175592403484769436296521836748780105724846940707428359782568864919925017682440862247147839022118005092878512625828788058085496000189415849612673096126392847577355051681480667041808711991669047834250007099115593538843031715865806487508755069411845974617090959953357682246836980487254121809486419682808215499379547373486354047972482205261955963586796259484107407845286504484294283101131253764513862369412605431731414407322057004162983525838719176250002853190771406556172201213498557404228212499689127187074279532049595938503591311409860267958025870250881280546107427848488126352662063227162778987538176730397673053526500057873648290075822872148794554991190235721070638649499273139003324091827022490866281821297573780390970229870257326906608051792983553325745355086778721586960822821968722119604664161282843027442525046762118015396393813763457306613643245343372512695989473699191284506238123526508717451443355982116015032320774646590766103475398773286211841891975198943394313439851619902794738276819753568596489248482129909533181185529556118507152483793241108797879589632051978833859413949917084258886091370685552334542403195753430107343711678066115165912731537217868355681813099950089883358995774522930566394749705827208153828867207751911800329493530581825801004242431547977739524279976917135842197861695353607156221752634167766150611809737067248745127337153168342989127388437856212640406956423242176864090496985807732779020693842224941145294617614912937976198752719664756141273933796593549725698838822168682514325059641796657155165857023939520016166797115595359332224165480658783729561630611709648559993331466756604764790091873353152998431798020016421385643363820123561728000672089088066781940627437032300314336211495143129366514685645007671363333904463059200007392722389343865054426342766567298714342980697260403033768584931598892935433383056665410416468242967124513987144290296935101316328114510156111694305726599387780870509488095715555756074419970736059984017094759614722635709257367856678061807542867750557096275475807284945154032589705125557327249755618515240789905063967199022628455906147390916145987105141232874794176000574735294163678732360823201871525494226669985126865856429122190309615325208110450610794620351156654369505429029070455447517468157747816985805088006183825497792327559680752259367575750231639903381633805811405871852547383346772695352161048159336649366373910012483980829460807787272216761337282352750501274488300865777380651410294615205477922236191966360009508767904372195911908057806937281447928645548906610717212170225068323861044513396200115310944560496728453558353517380516358895694310262800396746487898713897992222469996302619833010649699977677119945572264271932464078457960772635567853379513629727414279743168383436307607681633254580079036017734383426067728411305537716004395302398209752868246904124071581031026661801367580527799186874950832678405702025215095467267992198926886518611804041630903015986559522228476564921999095910320338817508815041054980179610737869748750194080261944507726939648159498018050786049317807105200101862710972091381408250541739130998839013883090838485953322872987895435064909001067234040579194114622720298668397616295722451446128958279756994717583759568201140554096207126475155516987387890556502507940381832653962732617480441894379413146729210743974987759186461234802906898055082895558830413474332396909136495687857227911483881058507478143136624319519924019268080577053544213608363194786825124225040551666035598893211011774378812748873484357518882542873499760867664613310337341178736139055648680347510661112817776829172994202334438652275771326466172351755392874123730214695008108051727638017691779517780241980778688641410053516713211128606102914344157769953099969519264252498817494335552139411078998170720148237793887484723369775878464034558833082556213285586563105478414432883325102333906711874295519794737005517589421891824633427483427731958412677748246244706649355157851012751515051806093159415395133205345406927761228794777109941934767683679931569266638085865659376823210389259331859312033036336497856269333341655437743299787167014748366250529065189849218413092920332302727379095701174055514403172557538847123001249696304164176410832945473691236874105108216771861091063515394423030519422379980782058378392373418025040945862099217286783086864882378099975069361018747361154508422653104197507295800124555906590835797070301059272064753350068980762419118681612930835641192616163879428646833101616383214287031093104666563950011785159889593597634209113747776642076022675507141956173152190246738852478876093108076690691014961802256769929236305696842820498810946742579107606626532191840702260244999314710716494341416215561135037157553546791432751696551848256510185194459976222627925920856148927601443600866781161865768064578327002033097624121557527134280384762676718044994268703602805144160329932959032845445913630315073243896455154357506807894323753694832924807492222221762480594011267485907255078168539176001541056789220342948717435159540038935393403167767578492910397376823283129279444345433434213733855397212785990006415717189144604596631642821455789389437740317838026682492501084205586217237755729039509471875155186306597179770950741102221866269864101753411197625469761803796979094828588733912670635038405029113769787802232841379267928077276830419283891108497768982218629763086127302650004715503893906083738872275954773752193165923500116398524447671025104472734282221773064324764699585313988661521146002683485745877333573070579865289519201840117528813337925633965918073925321746336667515721757211310583830488093434180667307731975869189629559436388111213030177563740794308322216187658223570511375789555500826962006033675989114640778848578782739516852744123531785791284547941893227786987604188485432034650125981991511130759396497457996604437913729187572203642166493684967691589812358218186227680970998701424480937893526224120098163555707691387002191545706159184475540548519830058968250258181491284481378457913502038010667786933153771546348851307566783550266921113630580423356536020131237162822109308059952708187509810290173168298961716831393982059680081873838991668174401207059732611817907812977565826187700878470600897518613486190875584262004429556569344844504408619130831405616468040028800243452473419707658403164095388067738841731794910863370156706755574893716529235470405517560659601320057353251774774144639548879575617029322639333869571048767790745899433854541294826495593034661170973242384718955612551005507333723432442538254651139827127592595808720050572423522857951667267287908022771027700146263306403720396270556254330151107935900531647728521793866292814251121566286314396717866749862700746443071017514600301338905808301553557983733244163556721789508621433333306174136052137507950287285885399732793896940842118557977578788353405139234343852770216653377998111120573373537967235887370786609947039717967791384635800636291629072437657492133373890587933202388981484848607291479919326512383533585737708871614172879987960647728169825073932597589378270221691131148569319423391886791565336100228148687504308743499915396718292359753194428849683496659667368480361746315639687134923613194976551161067239852797276411300738083594826357403950296944236046326346621997864123112781450791568146395195188818381715652292392364725483110745075744808093326298363137754521779031376521064128885541182748588791159617402656545710550373034168368167157293546184605932810771320504488351367519234119490009819137585640786996141867196234591602211801123860232555258451058747336318546710817909844423756283924025279276239494411356957578663106524353460981186107341503937457103736451201594263692107466777305828760573346630024600651573581841491961261320568054294526149365120408565371430679250375907807063965526777713240354081720561841115339709590744722390003024480444035699143374776124629224153166356391122332135741951434561783130110593406503050839702704240693013432794601207118978088568871486039378651862477264216135556937361239321312711841354219659486427096622440342921960226845355818592592814115318535366895737471973707947964490254432197991512445811948868145180958978167651418725731351967605088369038313755899300782808580824228176788533057359418416832833932761812106772692507759977465082897764492803182087637644089511729584256894818969951706157318596266243321159400512079931284612071578452957801194676394082088864576725552465508913307342697636821257100668903727589817005811371847106224303916400220760695483378853402334213940886983604205235778051026048605546025151394120853832984162972099784359071987886791209141624749254463745315650789259791812357734848685819605305832565595429666400077070920618528689924892712846079108497172074592315754155605801883706082937725511527471029129801753063365488366655768984998208091794273313178939377133399567635115133596181721382594729592610791635277495347770436776225892199573672188168626464492892166917445515964322970372701768460737656099011199784096613294656654492722457941734975098464694367033612219077774164815676622441499001787901703854641632785607888223707067428613161841577670201698137259433955388014815108142919721739412290962099074321214124498211428349163229950141322643140059831937384033851495976075874786462076765725880905620545686131969159250726002924636088421012467693557763496378466924119784618684983161993060656247791318864281897376789648625410905167484209114068277340980237223327599076513726955676629460826051487525528497976521120166755254940515173769744785347093246321750718850267693978039113401436522016055582019711724552744309007526208916638013472887252205867684728239869098755120978303991816350873645885694467490799256787116371443641454579242530882125442814933578976805046373527306231903836017977108176000314705117475746193237481146969278634396010676639760245447511864653551534155183982225601462036120465233561927387024970658912862669372733608180891354368500434602594125032202938500564220813971160322656856777924561576434374796503191591160421277924321868195201287987620685770276283956389898404563081761888828174056706652839682689037039239711781203261595653157859629149750281172866536816603889616367648715923486355912561848623501246431595551866263656335487512859374725238132872281247595271073294919255579948237544182574524487079975064448009820748936166142785046060648346088640656667639941344687932849758964945502221538035588834918937899102104632335717340110340625713077192900211893402958270616925366257056256258002270721109249472073988404331797082367254057376626055279514850014815617118331088848639985240369617273665441637957396972959145729345039361357626783851988383422729312148649487695896827026909649831298028647563310785435059849379977878162740135385912364371506141361132984501474876508076303138663826307355903722164547268085748566429662210482041683295461018922382757559957228823947980092011111766730043725771945830217953045279421391132429193665460547935155289088814984976300415990412191283407148522201981862387617531062611706358033113078650511237329994611375439661858978158891767177520326937937376852752670404432891970498232424758649089553104957253742250437362916101451833479423839697242285620452242853147852411291309635570600185421158533496732924797206862968202223988581330111259182943051392600416831351348537181923884765884629039092641098421348432714871859491794487873269170819026945822067336601087738591950464232746655589818979595674450105745793022826344862327180153827053138543497421858480703800189786677812209441577564827413595683276489699872400991570291415130802397416462014318642477076392263583242385441157016315075406355508201037397041986669947583816483293678801532436686595785493775578500429544832564646769799825082338849138341440110899611868062954377172015071600595232509578868491822838711463838768983023412499455997576720153464649602059076187877237400463331103843939751917346686554457372757896145110559509848688179711421667706196538883764025648850400768834967978986143025671885492571830635922659951746598725844499023896376298331061410768436532625507292956858458527322280144220733631836110636580603140496181613384972323668640453178158039796379135235121163517978656837390823902502664727443021085997102793425939114752192645345956411778396370550243273696266688613333949029824185213127685722759567068651031423627358478191844378674741066021201909446944782075604736605063992700492744730863725781493315665584795400927886237561196306777513135109219663676107459491729541251799740107459780968911020490923312979707829168890427041181329441542571050790191554781299188291701340283623225921800790829945501793738470943985706512388829089083717158202829847895948130809084672858303620358938080274524730203085417659544854526413565542269904875591519601523839308341880092738485584208801043399284856634402529368150989730557404409816053073884391372741871343443984345711327292572653538535213717277822213387953804846683152072500394305323371534272572065712904226826032932224358381814650483632034304348854294460580181488816107650860155970997688921481624750802094045473855037235760434489391235982431881476587609510590381661898142819414738213396083633244133407894411024797648916488394847856250637036398665044627781428886905567674589784528188060413770899424827337657266686698052043812006378091379251002387709844960280899275326650431000550817122846148902269704886964711974272264430174846853571548022048639200582074945817498973216323141998124345603277251631778441968427952495400209306388505523904679036865259016780587297111385753916627431926239603335961251849442792730323109052030665963919637476375157618609440209902615780313661851877496001178720456665216890399899154386075655039875500847778279245486733458222980676673591539214215765211930388836833130205056221435503369464690740842741976064251441565143431439812030547180539692578480430691890898091177755824978108064304248638216251931349936114234398814832212053718996705376587514930781799994900799583077031392534152500869946058379205821424976226528274172435921389111110243649078255051757605053354159230771109956325992480084275425939645341980810366953121031951206121086743202058154902858541620411876200287372962428855707329445552904566521643633910292848254431493948827816173609213964611214444737604959000843721727778852807770227142277834285868104569251510421655449223048303087305739708217631568461186092823534344285587978613532962153346934270384611181713797603905897060673849942110480688661924657196294906345073771972494040388020574103052847540802314117168386420775200094723975038058581003906083539962117244596099939980451894950137915997406651269958027416879253683548014877024074576391213753001251723565517031143252578473703593812172329529171292480003798947466261312768400960295330883236403383553362655293010970184005915212233014880464339919445056884978572925188670872307168812212305790659336580264319604437610651011505664292262477848679777327192650459305709289539947029650297503271013098232993331760409885022929952317503945032094220837522715353191883013894791655632543088210039882396527813100183507038783234109533101791632082865299803358858091559649656587282903074125680273684347114255688095980480576112804185984207239549947231913946584546593850677789163312779499937013133251899486172089886762733864504119993382259741594218459791595290602866301019181701405570341859249306926787633809697923663810849350278923374036352631585222839247405857548154871908896223826662390518890732377027466127835574311407423907403582051286573549564190453344239157054189283356450782472750831591868921028583452929961848535475483351576088499623765664550317874118887354223784522841292839394636766816646113403087714181765755226031685764495164308052322648224648952313483705531605591814617161547714426066257508862954620050880034552484764555399884537215303259568388966606300730862256339034309968447493961434558967894375444024792505044055139674656742954235039158842183191606533488079882796743773210224198572548124359446976905875635459355022079383119078010165634905817392168242850333342202968998116577941325653535559455925366180115902203298414568382786798434985963912339309389227882328138083785935765327104423972170138605554456999199726874524584273852261002528206992565849719049745182730183568549392217225731978434197720817054355127945798280130863048501362178089631494885788360017187730143741625493103163028741877372191392005779185692492749159760085129471197642448403008628905631797666640715683531458513045916206498869758056369213867527356776993960527020146229474297086125252123584009008829148407845527471407786163306687209831880491087443111271775992721614361619026231467866992213863387418405077393844892519023206001995543815593162308265154712849073549294085879106846601024531427659062176666355480857463171691480505111215440358543100983149162067721334984158565129087332850429953176125977546112350724376758139972950311416247489458203007206581554732005231299878968482081812708593468223354510965338918044962026835988006152733640061057497747585390032008703035711122344833406212457263541810326029285411989012393652240448742081288630066000787325271950848762230415115320740624087634034697984330031981742522491894888429554904838616311341380422203471724941182264838433342157790972979131576878114819221233292777989268135119914876626929831747225106625898520402376959298886713654542651984502030710742036766023100827189074211441426577141544891156474437304823908481115148736587615069032736438600646527138987529856260710713748185247622874117051264559208480717856518473167792844637206592328141103957397375934127377516858212298426692365010353455678054312498075173036319164079579663699560129732235713429975568378113484210969581766664808506963723529896630628050884994159691890745168488744233509943188186852851574393987575038341540771483671559958435643932190594161747628355875165521705494110431256011935576713484379264308674123689649411956516045001289602636335912414403870125666395838007566160911450177585306678475207179680705943834434985336523883514645931638970738858161982398761867639607909321377776004961124638497467703958066863025784155338913573829535525798854267293528233915337607875206748893893449891250587285008937656819620337839152987965095198706402315841503917362853377187836344909631726951840370411924272004675154651304529683072185005082788615284345382953326301250202460722689835113501917175639276266866731283970263307256180214759166207508793068073691124211694338671899623837082621897383972555138222910584716338363268456531629446755370760701724343185871612027824172958499335428180092398332305918321320740581459160158520747501257078527783967941129842976167393566245618960376565315901753845395510970413812549599308265419986314970366512134658526323541645372041622272916468901576754710179285380077699529641910576475955713355494167170026184298385651252836418892833271064967939830973634014132875637800476061012323953424217743825886619976068264379395485407729946044574734920316855989176591470949354581816764061825317495583390348413920565489519157406965997300572073785245122784126089999283712719210651882357210759055038167589118497891704105392940210086916540316215529581833838800373477340749892185274367430851010428017875082884627070852996820354486760059161187021437245458003825436861892184250087614507541976698527919149377935855477649620897139869544044866682636819392890982606636090340997213654637681466860843920098633971013942398002957805854648398691095609857800446691273428746275247250038225583053634139815678033091017380881301078763779178690343120272323181610598956662296026056194140805700678715353706326943307029740325535149048323034414887901561179765031690592366315802025865546424111094744820156244044390406427542863560859705543203177118297250050765701237353077869302835912212939237680746213515850065990586403656338769515698183348803536796133510141523433408449692287042465608867243068635940964332200738670924771962003972422813901424425897439808160884734140041552351391969600549666966218154474035875940980171661554871605767016420032939758669067544518327707110391431854130220958169297544313602070070939007543011023667590681211657118898394634988778231963177328552404344323612140066843257817177877707732158923429178444529805753285817835302114588461230183368538790637184619041690297058411217401554524914536548294200901517862614560296648692910758457588403766358994346238098472017898038036312589609635941014278781644417751476619264026843851321631194483675693178717295976746348134830736838146559917491572209838740347992825528890290567327662325451279430603082401604924369709120820373925132828632798637194240394738102811017609075743822082128140165059445619139891013082974645600209312920365607236675925489443601835695192530537999682553588503781527147975250994807685360631501237709362480642311184893551502997173713177825473777970244282233018446376948408589207453590828887449632683217861414545231082506279156457627943240317267702288574003944312962705292365881223916703037906184744330155206516183587035052942904154609539073339592005043730563683228738533764155447764300048162144154033525767683021468648975887655409529530543957803135874031582303227356489227126262733183149770690239528740812577298055092071037979603506488424883248977996607833842457157179690272189534037523112036392748815559624040511959099416035290335560667844004495943904851388360086331161574516176707143276862727740612939783453271297646866507548800859738858006532326833024650171829445512774483086946712512266896284267306090230225787820906071315157178372381029947647403938554960779333265550355626299358462847362034404176696677629773270085435408157637346977019702788482893694333341155313543788607417105312974969204307098625925897436089548362765198394814938657787426494190739703503147429222603219946710705895997707657726090130878450966156032207594677751926671728251447658211879817847657164664553783370126774465868356817783314641601461456274924006397684943722458834073737233520399538582782629557074642613963658835901386500705930184975001638717710483471729088012342287387104426599704619343114452480161933609040079074885917005550087082787866262147168777444617337003010869140656746760450270514705339848978128471687223161873227248020635224608002223009039751948409660862023057857924271497394945165643818123395134211860381575245182788093041526904408043176564565737273340649470677796056857897395157501447113468517281614822793439293482400883902768864017681969355260003114671787153611781578901836685325670357074483041640062847978296687737279186003576474706975909361337353591971137763360401335772675052147144704763434481819321207693657235185079787186224152467894131599431249226233840736648021602679837634424927837975121170503019407200105268924967397942080429740225731839838031934386995269944375386345670984051883325696402927498931395150586864345902441222968487354247385727695752275496971635596740355090404015356527983146925679000044686942209922809662066561365646737186906804844507237916381589152910071091718130325498996487618119303356828465442748456987934024213143022880875160473359373621547336541020655366820719626805274404838328607476458364581466966690789284134601949887403695567169699266766433664455831775407822771470606142421996618025337073110734856997803191461007960699378510367843504563165845910806980636801442076860570679525235209924943288357469158198853524257767018830192728842436021487045468767730968086388945967743510275447646370339086252514911557601199846592259582830159017946417953843358421571197707424213415776686853516446423771063390113402790158292067661551172187157028643739072504870595892713834510856086236585069728569744623027848890920281309031869426581674507254103450565038898949640128092308026334215245944164935566093834408052590667418981481687703099576499064100321678699213057641637706244576750108302621634387401001322495351001556123868558913457438179578577657024232568012123925207304503800241611239013766577316631202014562088853819263466607240803867486419682773656976206433589762806959993324522070244174982334575332745728935003718952324831324013956524696038255620209863919027036360324181985665180215329273025896550725589017729619831280962891061654523618679678867566274954255813156539316388282086642689840357927062190655346028406929029654418563238764940107067481008914208891139340693203848645697763466753871812447803174555941322591052821567256384419002366565706717696908051498931994072527859547097348962743255624304716553444013848087086464371502756677921058999975647681779959060703429805941197226330129359438354469932252798669604806116657321486080708714943800762824740937574619712754471759850158628002843683178388765952890058642128980415739838871513110895795309392154690357868739537794857800159637471161499813207320966016326457437033937295406597608948315413795937537476472349244414523808860446974392599506829399017311461796797068732776233929365712732304136954987921496372379134002885733053313714953215927711479741117723654195721196991935843515764145940217201661031206390164810441594352317858450624072065616696279663083814778614593873691122128875757761566179049431848711747644853281011350440713205764837068632472037079879681059658864146118532734908488666303855548466989302629293927850273669002835904099456120566605184450769103746210787822252433740937888429200006346593760091679993229367522724016288871917184751938143749355731680871012129998800062669015412627016302724213996243404853297013872564557166439581125756879877982887483917128801916551465456748779688744331721290591591092520831819193951412553459776137358866848108524355505063118514272940470475311905049012678873026000851856596914183584061342601776762827686011472495837945025132535362660172159762731719148528025710270297588079022385736637131439447156385135384230156527344108667468580708484059726483322603221142724462463298288359907031672835045798799989332665922815054163918531826500815680681686961497500929047259761105933135890380107877666507937232196847869645949630892848258901872302032799264394257016873963737455835294548473690279502905683639451689818227397565727541164520358352182517749464157813376321227678921357621950765358191011800941851202705669134225464648987014207699418491690854191540741685019079645458673254766677520457316216333369408270556148690082464896927869572207847034332205212031480614359305359613092185269980841152096202257327460520937226390635687032891979652978895274238255789865273715210519905238312784083495139053901006038758523210994990589131833587606526429408225080508813099884767614874984019276184126397886489836016140564347119661457869604482797888186872963979002600112284252821753266507931141192639768803952760429916748732523725186474458084901257521878643809505757248962444213866299999802227379515221051433738808148705302802560151289155613693151519259898939502951981652926203295090577413841307071284166998146344173934291548848792643865443581049843570174427138400870587280130595729124009057080895337904837002622295790249269981743276235843082520186634612186773974454050758401490851146252805632343292327177530387996099645031693964611966515093674453020889230862015674551827415359265990743909551596685256773414358802276595205543959277740634170943175000316107663677386358723541861136172075898826313776388591140000045813711104834090749555882474567385391464464117489655052775231904930245976968636249443726516621598790757722324817172277805226796828757207441316955778770048149930777139020319994122711400155522532108761344935044214056550024550853857843547252600758897976277375853485549267719202757150545863212035257726921772194888302710320860194342654445103227110143039177659441057053156419241133527077830998405182370291781484797343587744910928499589097455198957078748807662895648715520553343271407985595802684588616555550889255921696997548964393481708932905880509886672413231935435913782561524570918702487094950137803243387840627532497566611761075036347534499445511700918553250059862922926780941628963132123289112127238786119494735476761019728139915485501928917699196907568098315980264419459185102389119204641823939737156341865120932987139238084549863374668133200755555129817486859505089341088544955983268399064485859433077494948055149317022764059672503753415178743155523902661157767838488755373684453058656001333670596835498617261368667898302345920441241950233442392892935347150790365854504846601112128502648413426466602755201345180509744180449253496646694950104027173719476434299934915771318433764948350971704170581017708584511932506145533644300575666936809947437151802412784518282449414842415145786428891596760692231518831695749500454472822771958568946672535964892804551911375749422681448815022689495851088096955870728075998407918486457070401943543647756412053259250284088499291614178014299993100508094264446960812044006525419705708044480258040274805208583323584754779070749298992930739620271917008371337664525370174711606900241396595250857812355736211327104817371546110258464460731398412416684551480049391745729945330861421325218016047623746138366223236860017031918005469146399406132414549270434063995105888708626044654272764969513941542365197828753302659614700783916056889549760860727089099965242298698246657562132810653749638476124609282575870646028462277415578576441073851722556003639837542885184071299756529816490285981785308844853039911078491504259229623886241988264661062778867433105894715152518895586027052725676260586149266236016362427364326535966634665133610368261042447373515022099017319569038150863696470400907867091633108334104989060240474872150866898595594364141587148900795123147813335928407522253958128745949968137411325142499786237077037674430816965342637466536284956145935467965907271051097867070040357737007951797519044408200369252618474418960221594404815031496686331405396212047730156862384610403587477291519001342403097916932615932332880812368289974888398228017734230303263144719099211459988113160301942687589935772906643315317246295998704848876140027025065263897163603664266158460493863311627760865956992981777055346863152389639842206970163062846289400594158275307526988702744873547217001573631321292715172486957674324470748601395392097755605096177962677682944787187127999758878790504088781236740145420770904990061166908075290511240765984334643950787575930059189353795527500702711622942059649062603686629182857608352293857271094899245357498923811256522247524420930373011228010616180727215297261976235495949035447425771178732952343877098246266187650422928452801796587952120936503677767097361957312778362772071131878090074927565934459734052395659344812977024870216461014396045599027560789984971755906103471659767757207681053564509237944175159675284325553888852885056532615407712108365869718978505280409351676729373604563077830082569166831052652192531831399675221775024501291259562148968027011414584032028839433426850051172134856350173342248869451673550060505330067687468752916504368593010548090662844146151723824855223787242943399712358750182278919286807973915861158093056278921564652995116309530443242126099544017047819507359954992093763426968713555246348255786019114748863165825853244149009041738244388275443407894709693939816666275785655083976094595789767927115174593068994399730152997506182844052058694144138475570396930331198125880942920551024240488771153540131100960190569149292135054453710503270008396433928499525143095197162111139659220340478377990024473998008562057704230042012242707504382334213416719705897822238587642478961062402797892410962359582017011235361060755401150192724011932679733117896457710348085017078086883819675143300314940875005454663416358258001701096660269671252215124866668522177874829029689878522951590451101211395072664439914101736238500610589432565829300634068277826759602131369392570883970273600168240982184445546385314281738912162098054596695238965603490398560330289126311457179279844827762847262148918113704888240424335740067355614131127420009280387181001263305373960773524731655660888433497088509604903845231553824216091909301801497368781734823218198899246715833406829025034875455121310662175893808456471141050729967837022407867990237565173098075750400502648413652630408225229990842057094480576191795543889159838437513228635009009038047574712868137974483535110892991902112660073655822552796788581017262761614906142704881047062188887598381988647488881254075182564962871903885892329833365629118711874566107163869860186987367819454639973699100352955495049515412936342699343802820442283573257343816846877787375409832878556286188837256449780653003328361955423353730914110582944493925323524167464529710403406819668317725456692593807601223226900061668728520054537113775093181078180762183305451450466325062934446438257952938801801004859182590762100696685394697156257196158618431306388915804763588694783942303005767412661706280714680117667303447808441251393766918070880898003829988877904707551364306660374832708339706636560921912045566109588733891989729087019606361714199081640957269890939725327730909717551173732746431357568779209171625108769340432619920673793754753136610624504935381415963063185323029903446666385150644592404539370626941389460462846922841193346176107904223150157933065657781056619728489919897906900375099041864646500260791347580019369211091649742933962799775447566349741537443163498373688839462928044653250962632180235885496456481758703444635379215443384261729606358198941733828265101777291296479155329922527130337287150177568653645669471630762648524853487800006826372020787965036701164529617640504039100066270119574873146913725396761435516971209835463279252493844491956992283977952189830818949500347909562192258079037797635167916352161979594255757142782981805642381941103459106619356165876657175421628451696305066105067182794879688330561391003836124856124964664250628313824635597161902427802589715901956752477168359715200492795145391138457291956242894594012312062255372741065305381155756597627576190557863459449479907288380964532363152729012605513287773329638780823990879574856419640821099473533964992453652078997782553194843813194042298187541961671904591551311184428235790160807979149105710759186848569616587060370313592219253848439142827309276756565170649276872749054246100434677667902901012975712227135172204227498289345958864258104288370060193485514446763173141664152529453061308327405033035360700714384777180293787550336585358955064458567208344024077326651377450732189753620368165435895450647304672869712323893009042346187984056095903737871976321394296169636341907935853335798507322124085595345249139849290703256112625144666121378475044889393775153011659430917464528956042772475579133290257949988385138238896878265758045664746516723874848757630037557631851242405666195600219187083087449933067914227853356427402136007399944566787530278334037084225143800374886738934492655705900381586966691906979253208120653044518648044373039043946859169613648141647400689254205185197027457424398854484914177187012245099907058375328851936304248297008021118127998167468973596274867259833644537447472562938407528550695681105311808360204231708383406141897303001640084874221058174038887973071141699885268951006868229551197205622650366109814876428578399065937385237472962177044583504451734965688496841690285446353025112484363697568245948307030298267239468210072848678161439973757459944541605911076079382103366723241641680993311128531586140134395217687625928932766491646188846073189290042846021374534494299174245686693313192107347924013459755460247649399282039675450966926312016290234395980839401000989640151932191867537017854455472169581011858087125475011869367473879335250585671688103601348739408906263280936969911238964353804684692081369490774620748777694447196971075174781140553989761671697823156534779153388919906996531808390505042470851903016078716525760796352697002047737661341308578563460772310986131814273989443576684395973563268431508415192277167654314609344794355481213098486328493436575540568829309237827979487305356126639809716196016314935262698861233630404316404650596143857650366561546031229671581785577384441142249805234525601547410856342380554901407822931716736693108300760225867697185571875483171631943525661845312376578366756843297326007446073960669905260019851185969227670754328334346897678503558074304534426982008244388113562334659478406571746364462738011634152902529958108394007839437373681242601964055985230989037975616457392987774896999533885417433248059303152111610680423325839243998121191927507356046848670025995548274382995481693614065981314351924772401860035321865789810039837883723713228049866138788017996680469510080897621598502265127642520453326378381113945443750934394576500681638167311822369603934695017720922190911987319413567033536731763900086568892536231330910956145891634129438171076874489209807138262660720473944787040698056808634449091131727553498137911919752155972778307609658010060826852145334885566220643427485690236903699954234583654899216817695556201970245252662797920653777373809478521137828126588045996082292334144811240791191132497587105358439255021174100905981655100798417371036770643259022748892444473758731808578251397469832553688613182194477858650992009531041850038900477885130474951837873485382419026850820048144197184175082031557498083444056703629059418281717395596250139672189130163204559010503457467287734381563639424702280522927731807093556469667355459261455730618289244643479103776476265800328660559235754810148157093780519205516117352548556841844460547560356337652770135711503265884950181454580945962677148752798097577337375192905398473841761966766635715809575416108037578765731866704034366531613984566795508255499401394148794692124956510968182603685146458001713637369240648513810400023777412994688648517106366929881844518362256339986321949109418935508792535881992000026760496235493359585640113171168836152113076037096576073372349841964076466928473267146550047994134453312253764614887432182329085517536186133330789600405638345148429602198770848960886932083268677981417773450389493118993675407602859374855348294901129320649005406872432026837283930611694216800020628420760309061160153852415649566547972927363571345480401360627669462307514148589608957021969563057189439320784948637389516711073030824774433203646927188540442601074082729679165597112787997956300181880435527041416348933700016213698165874427409753717839228562417544942832756500741864250999994503390436166255561338123537701847327740973246555587290489375030536744178411500609018907803447190442087939290096440033411790772973619084730264713763270608591158843114677312718081263547471752734591083534176951804781076775190610524001113782084720447312881864439204089518829375613118495493741524090329679016701569906322861297255377004218679587597168150060401130051656492164552500676760633868554374701964330924782862132627565493472518033016661250799046524629024555184110513869470148906631716256496418914007543833760443473286607207004093619000883597900167918077956152418821772513237889621764193763791681447970565737440956466793438640672379847273301971393552561863904756083589265043221229680563038034698162500286886578468082740419397568600284306285701739782445888169073352255332293339168000229355992577358590299503571498591780234057001427004780462949359147415482945671876549948001364212488493395472849854169691836961970095015518412688054855019235967086287309762921304282018959604731695403478424906462979545331071140068899699725686039235430503841961642995187027346484971308717414316259569004642276512259543858158526685278767964384359574205912869744840447266190729169153689647289286103294094293669131004459859545464320421281726859493104138881192309302707803228717097242529925965460624707025144071716392476397675713004911545263269015861043765588572386169644144751704275741515757529601486102123892063816286433742307462887052869367193361399987760052282165246610739102745245229379298595763930634888679023197395131005702911635209634910352503556287235003972547734180588436194109038651036713974752018604315565959026736417508765020308784871790340933757854965889392400990543532406434602221137318994150165007474970531756190095340039418061501717561813516527988552487305182724879947843183945900156318549028013364351088340059131452040589871459185916729953887498188262074109087011851876502845457700774124808571547108922913313642895026059719516432011147378625388767888527794104761582089382555838509893308003626094598773729925299491767047803078992378036106064545422511982759140157897442690436636732760556071863708022454468012819131962148738059131785707952632637635167267229343423748615920943246992135678795366209992561391490029543131827424098743311332744517665993844695252794445518757144823790663048465769968464556653815222789507522456564400213595054608802284055324604796070488185801166769176966301489146649732881858611460417537694576707950569555226754617114888372812502468725512926170442157076726468728888419535465366812189652413117247311670019931192028516161295319374614576743930338694145991772669256072050570207583105341097785878229347604796309693407553313315076898858525100486908192839450092026063912640085084082912039362167590992214252502449988353481893479258121499780938701315227607060757035264849682178011661179270238188632260692535779493742204161011602217606146847085458652033604932225636520338334908397334843876426180330654156396958593918119448287165567917238185139389901633386095101083404135799967172430482500060686675135309216024173429245307794919007896906786084248546929579165896382701829293122658206435988106782675755674319087829238137103426974117146005124462592448191932306937768329154779437986041007468878914611635613723334618427496956397066623581627649790427582095633936655297971247427132442294669756404544599255318509458832675081333019239293507887204438362157979291700649552387449864596739464118847998078244665527908167082914074299138958239627749392006280622125204833168946435222226768021262367181027165746278708881735292122445142772589876970720582013915166121455398941868885620969821226918832047393284792177880037225571553842307064614674546664075474752522011700624529950057354627801494841268798819120648038440663564481769418305829539424440633169722210194058287944081147343717393338842807187583358513949373514947199942696870243738232486571398037812068933196757929356490696005962259618167092755411097596389358917156583384409672030044783018281438681165760479022437034944715424886567844415902184926169927655822450831484859134059008738601286835157330182135791503415274728491545202304498753639052829824339589060934937638117832425491129955308064972144377293809840328776262350511157677454014641102929152824352308221990122777967657675282966976263162529823488426788608512037633240943781276826519952605235735470807639587019197893059843168692995984433573870821510225610583771631927162975255575159201943503472767574938858174171276301099273483106398786370092588941570725787829590471901743227102835927573693869227634715735603025827713727729314500199374778847692933598683015959090244112262886979464908979604749821007927253096306203751975141374907851466303539436558499062390613904913073101166870874456786010217745510610474436291764468662303341705986742967056051818125287069564618732714643961996166919124607046739650163492706871068038702585658544724783947435081294346836102650385260231881748977456831427094232711233602015421288366801807036658411779908151197991829333803456532386370021469894125735579720166591000184416746879788113982481564829102509687453621833526908920939822734399695911381353762815019940608264184671709158830054536430849841208196470985393418298482169031591549447728689878276452178333883483251713039880694101783029135833020723228700346684142309471720699416880298195157719552148119746844341030031065441225735871179488363735927250139681400794476509180611332102149360209788139306133503008582979698818924785889705087622602488227671918044065957209264863698873250408944726994361891039936742188710360729800902838244115733528042368157087937097393521341157279559707901372680127016727279047582960840959926714754644521576479576701661526279319712546535641433819025944660369220506972404736887602687934108058362600743790813591739854256082269039949816948220295521948833441773511905586468109054314034555165312663655976951801214434542028493034882794369082135666497553640423125102906443866175484877638493825342000980711647899815563291125122796856745319858896965576188458145928369067717880353973972142334451704727915040649421094801529768662560808604002833796281403409857158636904939708442071478655004855531642929453088509797811622201190508720064696507566649357912816769575222893065143398954083156857389658664396616835666142846138957689269467131972797974094004686272451068441354424386996244735236690682127648270222105014199968876621638802135299846973701662930919184865722554833921998002085267912194431425476871507501143244366527229127691748470401050067494983630459751130481060490783720610113299624611571077262442641889002771276060769058518750724694465767141179935752965826809640757225950759285075424585958523469442974524286516935917987541142726125641041155330113023015372080373166469067248914964750385879036789480344702085378299529803754655263032828574553577664435100334908182516152657469050073762643074312470165008374393679363745297169921313616813019543249680401497457935348500947803835228798200430693011978995418627315118159787407140099096327182153793458342837112330214189586179465428225008045595857611542983264308720235660728778188857168811949282527232989242722754151865627099246581946594305434465447850698557723544354457900292142003297991474053021038860225451544953127885608183601796961794526476251331216451845448503555071998888751375394372598655598309819321965269863609475077927146665399699360865516405650063870918243956424405825579698965649592730500391374882270810474812316928039516683807373652732606826997885964905698821933462315504156364923160348611904192603638149989844266716142001562797626300414740751720145990858142357240050275657248381217443376072855356384518441974031326459774085111829700698260496642065004596001091694068833225463235046388947874181949085674486636095503385762296709406167136941303680558931338214121464475900875974347058991828797875861469213732507129154919628217401272467658986735754286711255919156976264767602142592507080407441613520295469935377039999338703717622373271529879986301050508489112129298716875915440918736389719825805623346346810609687643712230327740705799115676991177543022801837658206937828853335290161723926251275594750860737246530065726743685727637818995971851689638360285399348976092187966111604225653383598273980163864800411726978868919908261810848544460832117081547046844420356815786377002202186743917615193335810960402644883350581208256743640726636378993177585431215118601906101787443419917213273794444545675246039454716916240452811740105618696253565911391122351234383394935309925553228430799112978869608081372321998754575244533600146475676943724103376888893451976681588143725600473530952603101987980132126112705681220516775695120043555878905163007834200733298974819490524901071878850456443074544072860949334856737208057667022894514479510703061404674108636713299254409591393424730846083531106236907383383221754708224002952842651137184577734266144050231066090633965233867347496918683206018626321023417802694533005943711380543639522728521879026371186494301388011308762735420007940360082334870313037687029068314449344764195103070859762351140428781673469488776500794877587163274107303813317844675631155683625560725114950994113690812724689438770888514772034995935095995381935531776153092634056360222770003390471370531619901525960626980092386873092852387543647267433310688880630742101452859897246359776515354603996455784580246396311205149133926330472211611059843788901359197403526307711812111656776937754677179864543989624380828958513553776081679360428045605295302743439686066918222642832192528581263018310626240616173278177588502547732036776383382559954391383286120638545591723221263905072017840377844865093642992062801530876068174742328332304377656247833675091952123734609370758614896820113092709698266019112769273700441109205153907838369539693222543474274002026253643606895119914056914399041359220641937743503405726794822538298162809472549505208066507416763202973074690963753533701876066062119119495282092304622846114266503191186393734194072841169635455202096256014094919377050437726481833021973074164593124963803310141911431765877275413371713782943430045476581191385336189852742023933446185794091230546300918713032016561383488877549282723815308262141555378868101362347016694597249840412277782773602994823021219010795176692301833757371181744718413583368696131284930705588216229700774742902869977169988460674606601588529908159711807280538977339696223393880531573709752502148135540593343237820490223397578684342504260798870360168098965060937006341354239197877209206263543309554011438896925553755759720215085323877719203098589736259102747716490051910313669281495180205042701482793221228267806158442327135443816219828524011543286814121539598152383597866402175087268589166836488501502610098152224878500764398357751944612121797588460141362588562320061780818527938990732190872529249769355991957869430332674084221921177206510927066606639375565475617487473014269206763640499355631691710848109444803297182764384201339206033216481071119482786213593266291781647412933352680467707574386050709214270266618527095820724273011244646732857889478419101465223970284262456840956424752434082168575253437605282103527214763102500520545389900395278737059197667980354473477964311996894739752310465228421663421868641670856842004107126773947207173295225620958156431338888184633490401564546931589702458312273888492892952305627260936862452144460709180953931730172755485436890061407684847927579566575831976693397399385886997036496242220943148292054523954972140257129749229539836105352302133303675689156458011029534877355664821490009231687144214536973774003070046170798429538388605096212804501997116719755229041047969453170733920922413705810509931961595258223600061285579245876403324766614997840683466767936820858581677492266903333398955571857871042180382364851051269971516390593639230297840390054560449068223254131026937886865226836962429172754570489095077311707597909618284050349377375730612165949997963541711048709281351451956644058295403054977356288776925220968598200540878747975082753873916338391408266992088744300779239266782482865211619166081890616667615984517014130397359295856534333540313675485136920330436586854529029414496800778229077053259361707090040218400206145191570478335800249013791943873271388247961853693309583852056956620333615430185816662410309396185908328864502847748168214745600480172578982250561940120864512786651725239888545559412021490149946929205221485390915735551082463012681890984574394194300898679441902245961099526870023078401240086580938609484606103363094492639133041800253424102007350166732260721977861115946161777966345322147576384758934091365230159794871246175892822848314615008460346815445115510476570078584493471304772023587539020853454137919704070204272107184005334512915805200862487005160871378837454696451116442745014964819316178981548767325190849063841292128303040104039682572881757273535094364240610942042855887672201051439058806364229203193850295105614508060452614855644584596765467609409482550592970656996188483024531694103874836586580815745367105911547335942879465880412525763608214302789800364586440267766706052438362464861442294333604972519515830866440698801113437451030054561207419137679384670984054215441656824262178166418264839895974197451814341966686187981487302134915764076185099124549308801153544854849596953904515153205583638269283697760783583828617605495377416721877602550195713978309434586281276094781842050109369546653871264551331919525203541013639145906419086169082748038453322446675069258541126473103845178098640213973487703489027587705241701560682805113211182318922559601494627561759525131681860389067163742162952450739887645249649011337073592365188767196520874773897935103415044729704281530169770713876010586571406721586531992897453881875774059185566119901277544374864950393414928614423969250846700976669896266251728596336527515917050194578343292618593799869721298419228991931999103135331848291789443915483079002084561423448199468786264630263560345092887189373842146318303263755409908905195507896482868444407535095957615995045417856090276466384097912211793193185434239146428020671845507174140519687162844245668337120756639669663440454283900166964903446186694560018333788188846823384450636025710949580976183480645004353798471348050953939740553384414020716560830273532007792459573395111426495148250732935705898308619776818063217311924949528076969621100919679225100287606761404726505530944182630375141313130747189533548256288360907740985046938591195026318463294006463454476600695626174388449492256717473313120155177196087197038557485452098674710347076842942184569862741694741956555935083577097612699670520724674397748067894156972888342742602652815640520424234680780123035496014679561684993467648459701699402208903093093679484195619460244973101430221813008386496455971215879661921411116259093736791792344438331272923150596491585111289756865312147373551048390960480442578831784118696928453949982881920035559923727175187673049567920824952275125474656639418390445136076169162289136463963351901085675213554840840797541095869175020830968570223342067314933167372136626046201069818273979439731633810766686868277686520074550050438623052285503993017762020825601968970236002496720859453096630048005475128300506375667453204488583243734101073459336222173486851152244435648812758460865947007637677577524508744728179423703443859378758602292209581142902555209206855897566774769184426358430958885310828916853747666433238891803657019782991647822987148559177657485924483246683483084262057766339198641867096777967561727219189797563761708523987232951186394112784036385929653519312207820790448957764480733588139574265396068755366781613920254689189406551800817215093274881634876036900332574218342906299250553531327603762136629086953824779434090630100597553623803429592957480983877022102612408118760726522503209801876177830482127651063435004539524402766189154434277571713106116457916380811063000034002013895996052088478114929506777822266335116373038840913297252218050793662098240805176413151426868017596969716156722284151196837091282278924189447143701581231330588432374072877565735518266512777294822673191858951623848933635361541733952236309042231833530953614387356433341325397434745943662194707777743415214638307801859275289203601428117953018145245958901525344432765276403340993866841062419446613442166503127241049838980097513065312072902481746813642719531412086133292199455942631322259793507336226678581411829196646531261731295327285383267498001530710476055867392106739538157031596899356319696757541343072697069108583935820225597359162556367941876964249017300556777625304077058470694723245846886555331125572616506433043037382745558564064270654865243245941233465849194695722838865621503776096471722726511184189046572395077644530192024904390669487887367887684968842941818518444872518650950910515414020927852191492391917439429382951348287952148454737010306390049315780305467673726020885508998706313900593958012521192231573992765258391819021455052457218550857050944455432996658661200806863360981819564581639633984614513396160116298475475340616358404504925447030487277247137734683697279658088430290121787374739632156242099848103030003488875501885712820360778276907411306656335502108444645151604157651249746273718530871099365583128515290864616254668960250576354024886274810942073225416341919238858271326197251626078559984189869589642853833136340337870368521718178190600112736145645948218035701839276777376883406123345510585495186703136302807489909650883560636328818698577175929319405253880135623731777910856013240884997250881560134405035768661801165819804634129319976322854932754748188557509369034896753155918874427799226952825696986400950771245176648556584218630402376612274820926333689219592275617726138253579896775935971382522927244987813878745272216198094633693720618598393786875862552987092644335497288000351274938977723860033837676572371456921949852766502820478054379332983653550629304288078889994393893475776483309708448007224217073379352797991369127148776585507882119781030637459766907095718307022254738106350976429849544443090787948821824438485665144495795577821011326940815745622998203584746445442719179648237006363335613074897619095082525815999766654978009271752120170935842785971577968990051433239470139067568621538929848056852573739239586744825065267797179226270194185843545242530146523041458036859183456402060349530306894149046090500629584282360123645174499925401664616734327854545331160778374807304067166021188667151583158118996670944745237641453572872001200891078918088823232680475447981919657435652980978958785923857444452553875593502214982884447591022828514406393674621711217502664178799287887402433004674376146203972915992269758077407510651456344498010028741835082600680073041549518929630956933321921810122819838304619475104481651692232831277190401988199584175769126933144124387481418648036192247805713685923084876477513753514343711342989024699541773160172201214544511480250892154859266147846958822132578880675262935835273010014147065383228335668036109475261858619042865848739201959598699048364742177593600694035376573841161936163823730077122191879193703285514773734382022291495770737793888296633650176551506127071287174472787728944855784326952827715774215103703703871290266511262203152580843563253659308417377274189276206380043772943751352083510776612352495329331784570761544910095911205552187095463804452759822902068040182958520412166599456035834748626123535482336265769897047629231670481623926330855169228866465803580013699924343868588792160679277909844809101751585183544496387854705414053694362177669589041147533119164810453700993175024615679529150865432347340989153402570045183403661776027847446499771754126723479902181358072550190297129078531029884672656164658228748988392040733989056793242976226481574703463963453356736617542296560957749653985980731106461743329422610485927000718204287356549501267767763032519661430944770921230590443790560752072585669796958612636620382807773006497988403407378675442762693753721257074932946526613072145909102949677567365627252806209765593647072164843734217770518331406936132001411847073681550464108098089736751783496039246845566568439213076496958103316189560242226213207836131251433229379628413379859501056065345357024654317574851049474614522492701287802598220564448436954654229736861228630946619562221341929995316146302837173996381396678201245922941958801780226622540798962989579251372456538886365365451517538046264780989738548759892285058828798848468321188340242486356583278056080354268903297009901892972333361938794668118306516543585223915084957203926574311482701427188815718574739479207333650535216659517428982735780520294683617006902445324572880166094518921114910067452117246965654221334039852357320247584710383972924002815607648985441413849040629470800315650999577792395262559105572359509799697494913965138564310595321419579046522358554272170323091855615124405798054004975830633818758860338412823997772017681198612852420318533551894285119126331428476366154568264597131771507054653459785697781867534350620926285804192216302075722459775143739979056533242641142357111027312494658287684684430548480544389112362228063037515104907729204142887378451760761866058507886612594087017330195967725519511215069597526689445550804614896444840754640814416061099901905291741837022696002704806696386381742866191659800538881799212685153345729730086635765493229076232349556437992772748284568326338188053340130536971627682434884542543779222472391380403048640935811087892498299235749270969303159767379110357745840134246889441487828649777434958608179278711635915187620359897590912934396178668305475685532096387654479515994997367603758995205736240340106463606933379461965604105073995683990034953457454214164491742037111947154493278225097951580495118367403740089455418246119616029444586819367582133265934746113324949955896053663316882096963806519803431851405131201279553864749805892229268663797904649264469063267672853618031561770255426785558883345549802619296597196662347061412403228485779857934921099171205349073344167838377786431318205652246139243272885060738623821081714005277155298842213154368442476157060452185591548582723236776816732141928526957073309032047141159603487904498148451594946005982751056068345289133086857738186216105674957135659883429087878834345114075964299553773639162307506692132933509734476829581037318974161680292795753905011998983479047304727238299088814755696941408937943658533741914007612805385559769136548251855475684300753645563589504381095039427464984293646069382316892715243694569793406792020177365982897504254112679031008402632443562232474449460182311507874281316101827213590125986403296349829722571053803466010449079502978906948979740981783848146272295761761365258142037926140194498119921090780021067934408494656245282621074822291210479338826627521210065561054022832312461602196745739205242860984297435417596387177742370590229755576428300910107677982996670893624727278722839723554965248043409860449387900104570129863841625137266187025741993267960492916335090420279375991635254668145666342228933215228380383452504792966196467658319897074500298297368663688835520072534387081826208226910459016023497100889399990640015143734712786414825098913764995614041431548888558844711571381328848772639373412004763530490908801807997114419080442124248462237827577441351931343598032215049650346708446142401805380813141449524622923076770076500622950774294282311123887400231995114291136322056510862241239086042323673619263027819383766880464181510784783441886116855121144288494209163386458588988325909918806680742441050839622610990778580625567125770627478095395137362472375344234926192883527697034130692622044775940119029492776291371053229913093300165716313452703989005390415950366686194406164550838631490478825356826623798263523764750528571852306851722631368897435214740261811095789231215569004761230403740886470607120753307204294742672947942756425392053509729832865971430572061483436059825713553658652550930207467739939208150460606835992814403228968022417628361699420144029790829088512690478898225384971111675694530991246946327200880860538978058972767202050562936630575426394629605933102710547530752646491078418102670307351207800077241474890050179413117221065782526207401142034834007435945567953815682784021718534806121904597902128883589762865142757702647958013259127959206350102672198504173191928129359971758168630847855551298058877976762235190898861646014947820429498986481028550972078072836778139928030300324594526695540250873886192570573928430159743414548109395700698580136472316659516985192346051860797873455684443313129741384140065464017488060265148934109371023793522139031552125430902012281530177559303606027733922661047563312763458761343941889412723660500146008287280694860682992090858056316189704635344903384688927350445528901993286048975603292123541512578707301844495086288270294999517177126619995305047272515791295745249134812481751702220049186827134704426407998096087403621913586680192133546082131885897917955864609446339138093356793379948902425260557894312348334125645574570657081403745640818496969171591531478788162832229505317189142551476768914818131938228990899065325289485892946249126444601643544515540476905803873839631035215910543625468196369273258773378413525584365884851290507655504372892898679052829384743348830483512681352783922332231035242894567806398493027782952942015267586648359923201398193462582717588507345992513636015511097372147649696436294953764968888411419180391492192963742791050951563341215349124305522420046775899454896000504321145756444530930176148924219766560770304458746247050519514038617465442827966098352754034673969504946839458317663255475490550420237981429721789634627397477520331322290783927040760016834837912154959670405549864770620367963868771573104954926547737714857590336226096843866135643580692692435428831250634003070341097758780686843257494119713667798534840017875454218982937348681370177123664522196859439497737237365864379989315738969960236879179821752874206564580526520977395061495033398120121442726073490417090061958889488258429732884625669638255343021427820097929611420725984224541655259851451895710959997981506018500122040683176690452845694112132244166570129506223772746139047648187675080636190473314035063565561777053438542223497615137853092759391021779172690963815372906341367780400801175514187755123679420565837444468771199178095776742133337098560609996100527342256990776501366931787200566469472053007665246120069244891695236965115571497323582909889105422586018877466868092442496698992397415919911661166988672671809558281875694574843725832150970103347044401255862960751200449822213720170297371934912015744654672571812442412529237809993841075842631325552763079350352490533276876694664160865728959309020995463884101904685617253642098926552059933918720287767542708291203514490958799245168834734895409506157830146054362051863250474062708380199094411107798547850046388784872421946136392023484413443057607571837263570699199639292057114013640716089223218372354197849135455050105026566141926068103251658293405265686875037411566681280231985680085315911951223185860627479265372024717925652404623407552899802816738481679919154200698759044805418390258169437867141178202999916834961094788461915519085352312722963108418893913300932297769606650451906283671579095774189496959445897611451839113941250165569039401581128397602190725539727885200585941681955418260540157390910909050670670794075397440672649589759416144596445078673758440548289349641551651968558321921820961663838467124042902336868978389244441634331301753661152092287493297586142168253774464194050707615685762060376739401645989142956214604707207208499994679704731287480234474409765922991824995988040600104312634006718599482386036546287810856215987072361885457084742552522811567962924853472102481483575026192678113178248437842770172968621593610535439183056689835366147454909316762983625829743406667409363176228699634064318515220515537828497340793795458527652698287209000327304784265402036743412455566846515821646829308414200301101671909623193015623494856515098007553726791064325605819137689799680494620095612235477533160585522148281401560820421304947002614501429971809536464636328147451804495958673348749519056619580676584721350887461833145165560059126429018696289728353847036828068422614736717958615163260347939610608308729004317718183434616394996947435922906799001399992316510594533573063141745549699025079291400699993096255410447781652364267610628641179901238226682372734290194822070975699159292916283949249504225749868460335594769840744132147973367657874644884094501181835040678214498204007862588093108774722649255526664048499745774254479021256916446695739036678696620678668439854951892159422130637108486601914566516999444485736543291327642264710223433082746927439649994384380769756821657423512191897274200671828839999383161094212116093524562526339450063684839945137145866186270830507406718563780043027154757292101333724691176804198313974749875501317632998375078683319688069629959862789191492341077786267938799395742573043162909067520450485985693357307928773148378095482473819325632011265155023608079237352569156367484927271915958994886392433763290906033525091041071540349321125900730175765657513789797017337740856310698513694839966555865996553520996260169523125464512966047619800978739598892908204265597018128497982752781136966232648809824989552021534427318988343385782786180090820411216997369157983406190581385308886752973940827518244656846024001242846818702657594185145558801537849132446689136447094424675811419309308534574333268149638847289147608774036071979874744732469137784333768878012285105056030147485602135714846558126462888411172945253210524768287892582942696143483650886691312754506846334746713190822575025187350779290717849010974214141361776958622803296798362840136280115510946812440988102682224732666091851731007359349146932697014986563268204190342313533111205416225399452147670476729456286923655817933500888913688819545049247564229783956401245768177377714696401297016000493145402937638182209504900836749409590180712243788709345300539761342938469584958826623645989484240583787849673299162636075816966657463533133539176112507025185636686442278520441573434028092948832010744262613372826092340311884912708069675097453846679087089146586193123218121581488071728445070913359475429011616619729069953774476408554702412644427847289229607896843108834599735191172734901733994325167595372319316069138512573839055108508477863428763885637324409702641982545018830841042344743785056583432961914242647239758181104974214288348268152496552376613167133908416645554011794260055815270636999425964655360324959986999034077250863139989215396939172531370297195981487708578568653571009194043621896669607238559775163245598125928027695622508958618699762966235461699814347311582607129631190320108433139897355479850093400341764869089598057495911151648197484052305965895878454236043926903511635525931195911163728766085356264605669765312491231262757297748476445342600173556394833224182350722114437680076448745549275171428906328252975576305056595607326207228932523527227396717256374053986858812844734264864833957981949314317056617178137890355329516293162704418146215085751022755470123754455750147880210005697268898046936356367917258276708978091146367945420114267416466316532901531390005890118145621297573248005017219260066351331985312139467856620861029569040531852536112170261955433845892698240376783011602287739099037793770636477240170399682149828910694645224324763809472499268004278094701999110647371515109849540243651988437092237116493113667522521605096964723583549532142092308674456564001431973576071068972470134092560658139388844457250786876342470119296366644721459380320453214903197928766680074254268812622803316341463059283838949652732054473485632314544512664874854524681753136503137761843005976827976612667213417068890323299745227886758507076006721568086292918273419529128807386519366419666817176668963151959099641423382746989783136023910048507312944616103119996380030356999106494497419222248472617285525803213707196244225301365412085947032211620244841953682719186335809234213565500973281016693238471402189849856555764822124464078531473841256347607079450987481337376024239247336020766541171854308217447021738308757601753996967790858115992445568369397836293038075994576901938008906785741255586757076568132144496272982274209238319311159850397047547539905401285448293887831487730023470954756649124332815928053354616526523780827718828527895160045049751406789091096070625194214486488915266881224852573334212089248436771245629371741583418874285016465387119242567834958701071217652869178953761288334160444869322522597090194020031987960565094858267112692956197156131189548319750669501151882779051372901628824879310215150682130572359107425040319781111188612887694947349209784393862735215694446030387185223877856494277278893727426988836755376610326447959560807975358733719408575209013657570635492179619913318288413799199041662238200189113574137801600143119357276744248901784995277010390836906879241175907769379799847297555195299590090076678961262580091093382883197570631865600407034924477254601038297845694558779781526185617669690385100706379467678324923829322663449559341954292162312721055540691214121682434831037966290853287247270468742539713125341190859136829197720730277163959389303918487552702584038563669098113924635697181999307824426786128248076580492444076896460471808230229429633079435587965141464250463390991102774980791652464790522452283290765262560206434874355740097877872378114159812779059650254974168750663259902846132824933911901642949160020994530119093520756398715610760228969989892172791347659371453671314511877062567279571365930693351143145296621336476529185134253963394042993235178415471673726041011168765753900808097586889360754147536071155576225825257182960623359900477500764536765792000316350825526270207406412350947371982221209974980813317054210750418232755864524302969919765077551019230675486075771413704950499469542292098065669218793514905241952645072972441168046225222895092973530603047793774047986776933805764868162512431088209766693407974375411610474766012509318233080017776520026989780698470796000376822704582660790154662425666426849401814834803305679332542538123715865925286633173336868032629226501805795994624704257562802506546491293139920522152146124380965261659303974604269839758896323147195162651125974142855633506972035199482353635013864027374287629945195829441403558280567122064993403608186473660020722569636693344238137901460900692977964162072084866391232415190337921899751657046679480987301988090706754928737431392014948441518557337055025435974989899975881821483079588782873571162204327166346976340419263493427053222003421640352851934272332652319944861397008148738796270452000352617786288901986213513709369023005242190213094577494183330173942529199222734662735606106719034407690241155260876875701991053924553725052657397205701295087929524838997937976351389771881117045165249757920044803702545965348380771871004620636968273780477589577127871892362500679853507168713714951105934727004335959401698164730012993820112520921946768303258653862791225810635710785881255484799933425804417996191445149714005568306701912103942696717590718369718660103004760209985739516730974366226874937679912891854845997995542335163421178251823210595560388609944799500722402544097855246365248007183231446055566847450081337661645427846396606204614708807876884085753392337676728350321408437729068580944353115469879063050787857183287919081862503158430086886341583167689421651701251028001384489838766938904707008198381679503466491416275881878901896135338918171702929276478906709202376888660092711484186230963720089531416249531910250673218934654948913679010365054635142709096133712348866368411741870305732454658059474782574592598615204440756930433040291190663013686135181169443476002832963545010700834602508574429693248396744158098766946299960297918349035440312365102099887557323396598874867747241388474200203051119553607356048568399276673745634707071833123142400372158572579795794641273210261157302520774451150201899933763390930383669965793362763751633096840469896147715247742867170594275896183525004018365657903735780573851869657327538237748508859175264046934630583228746473166018341076361657110966019476023741656919143656796241159408084484592044041419451138492695394187118957943526969279634816537158158739214477845870893456628931540471210859690788140612275037513289068555052085991242171814143433438969373338692983351785421996091850963379927271744159805670889649834554050210965546156601592367922657793029182702737077733338979593531189266182385411855436274236673082143392277208507014527441727973326883445681131194347496161517083634781151214423265371486491882343271844304326857168580696760949848414636016718343873585813756931331166044408888411250450350593764254126066798165091119980761276833805438696765600744868381669406936482523208744677511236461745910784343114326719681981815092251409983711484316450115757980347414817737805607609543052164087671323212236161016464278502550202145862176564835903135994845928888512464382549996310637452848928711521031093787457979507064709520629028646249004617385757851112504904061792844928398146569107944305664520777085519385511948606132038282892151730274993550833463833732679543331071817389341675815060295411020556994089975500247687607337651024736281385119293072347981634674831969025965296123360396275473918829706982860618237780623556558505052435355760173565016353226340272596027438892341269630617340703772717909371297061700232408065698930524298780129698256108586104816897460473390969297634149071451151259962384683535882731560091478751254096660179666141323015771805917604209968190843002524238095165080932582539245235577395770142866394218724760991146497076467445568729136319927122000319735306807737097980950271511463188973151822885442727782387993647771611100653877628086851364678334779571386065670716245658817591861498876526083812597809898210515561460343606056275526566776048990816525358883107490280177655252005922985174743225483191703829839976687595746651054615619417925884290263757493871158582662343616431826237418907410627656331910292500679069497498438431880934490157533949020910621189840790987828649087535591769428231113513899920029559427329705573660496125049106540802204792767236403079496397822640935072322247911633193020466375468326787164608281472821919333943823821782574623727062552062971372967934103873762908422435937814289023883016642462113460255890087995080601184091773993932103052696335323960071708477419971767568226374585655106515752168154126309053044668924313284488819806564688521247646177429445155782422803827739295599696816692949802012506643343491894365456336896325460753647601002534432113142342859764509103902571344577696938198706604772217372256965003611286113056145223201908045832835101155749865020133055625213581777625608654040346478549428499109394897871353544794772432643810184440442518506743156992542027421798884552057878379131398372572634591679198325419284365006943141950504217456123008777997936041411319478522436624237487071358931956247313172097537033682460832506013849067710858276645901396982641413172018762855661579845363860154258197654645657577453658054305156904805599707372328857693029148098309690937666039595381525126502950198435881112611463070813026456597627299608361394270715460299508438646139343034539405181150154193911350163504619574092159597339803802440010971287372736324783128331432514985419680730758204359092874463976903061748136953079431188432492504087082250292173492475085209047369093694215560655934898510903615911493885184836492836538983503587135794225550210041781119024498206810222248748400655371097177442403295845972130341500807885567147223368727783713475679755233046403578592727605041188611850935519885762239529700960409398980269400319552006101876437489391030370946337695792701155046201509247636334914718675979093839979098400353776989041329244362647021419035814960600016876809305805965910381448595997076415250667072779558851217714465974587705351882844121188289307486198102782434286625453413818677913475498829712605064467220850510954796936790273016204029519749913104163384389311037277511396375319325626699093438531804275898375410137761461669735149137941386098362700804495128360372799340890334506495869657898816428578308873435419175684985248230609115262760778241394355603109144764650581841591342295888427452139132273750863796845840746507939548722273506386508652813960435877409991701262393458629070072952648628151565847173885131993309965047057789352527585580915624284793586020136817034782636762118875430319012880910443569625591317121940814138580492988120680039588144195963402886140921358697060284641868948338694207297955442408915864502148369749611834276442384715133749969761948078891060316846177081951466627246438673272706016156708774668284279484959312340674884485874962148775887827754706739316351234184055874264296954872003681978615668447917615614004992167106252678955447984263198933053816094517398756525650630805327411788731477706354869224009215113275602756733265877417727070452465175000690913572498617648015736979200737585739156289305736600764634959189840956999085457123119219159369976923869768035957053470430460011739393805907731724665838885781192465886226684322274246999837660139814904127306917126197870539677708409510863517819823704336924699112069150001175853309072560490387297218464274189661780392085592980265533004488469632199506348917462032182645141474263925601564246199441070467260260897659803888784418339975479077370876515104085179406277923391167797977997560625024716779144215842415798154575071581736730770891375861208404136028708330043493533804300622151474056438411840531718154417828277809103188006209932137570705883019114978216602802527239880559876380271655254286686561612656315369495360804651772263052583756017009964532274277852989721319093319891277220392509446704832738646392503047128424256363402291713558632795066446869719754042913878368466423824956366067657179316188667920419011975339689158568734052370753059492540146474801408375764339127779020251847669745357136594676231481287634780921782980052239243066788871955919101779002267265473283716476608521423903570740090864338523386074493797214630387703860810603296050024310175355701861272636566708727264988952908924873791650381222842052084867222414892849767830502167034933340437267175934279210234548845106868533266639516906522121509887447778241160856515726106757763840275369212948385759335473511339712941868061256469759451469195281126521640446923604127667133334669396138342753817491204686508697289161129750126392382181768724891425922685201910766441784929948949580389202686127131201858526248481786213075435008013798888695585614467085196847129794640559187932913981405320413936060971049518532920996971251257782711001406420699250507109618468993070943382598142580644907026039027127113091412758535516477562343106844198516796343194634040885288931070025921602667342670056725699927987367215071536099508504801894223661242954645300991651832138573313964599154877440928131987574046973492367897580170976534858373826704872620940459916422594616153332265840981549645437874329815295624553005781894872350711239633752612090209698158639707299006102067414626018172398716332732903256100025802789925384821156430037067425263032378911320181521736013058129747542644926571572147093290609602392898913019738396145091342133463799045958058149303056133910288268459379629332415924384353991849906045834409610582373171972786988566913955414322221969428117685955350216264013603844586538481152690031530666251136328977986822834095249956759177844135275884598284916475982708297062933320148533339082212800425428887784826082527135930625581715529780156761094880771178602883039897296226445103420500038594928926405060356770263257443742902765380525992448544406524817507386507460737621242586240259547764506550220920367438098947708524851336713938101335553337587936103290674273558794181009969869879462001461318097077032882568570925790186074133582494819735311966615526797760992867195068158044496428365128729199271022012290632114866160743035459738101956431309177995681918577581556607266908733295559633202172114348780175987382589744439196930143468284999709578169595995150962295900314897252963560771125156535462880493142648015044412282975613797663290507089496378241492043952724196758810493079649418159299971697739584796011332507723933634714539553259295701841138963620736198127769114692707235888012860683345724578937222626142726244645761605990321477879644221791754740960661772872219945668496654013919507719490206925690072756787190874775405536157283384905645712269182010545568571180275697766512168408497468376182665348350568378380902669703742093911915174769795028381619895540962599620331683990559824274830378406935327971538084537429836201110701137990411145847305651230648926728730231800253555910478754401162574388732860022756584565006914291639960755695899670187777660701186875164288840068346405083616523917686489523704131626691647181233579080407502167007478556224113420737590330421634271767990511085285930947291241545401532584481004843807648307820056618023319945469415185359018852591229103769091926868866119651949785140235038780980982256765212623820360618714831785351715106589338787597258156608806378764415495179143306749820179691590986521186410149884081203907366946724945060817198665919213644445926743608964555574956650392412367039942504887860704419527184477436035554573235466686875693667346948258228858627207830620297239403791176031815715205576618691198533471970491148898141048574192417859460870903020625382685249095198746001645701793693026904521345320053039364974052565424706725769345994316242544464642536140275898081624043814634027610299037064781117503888366002400082617555905732708660476421429701070822753688490719501083335695302417801936660040341790472159828839002650816660649748177809980144228970770886266414565607355437697860152854625582337871872654015686813461900208108773203237688269755409678787071848650714137222053153230537283963646297746179653082808582002508910955118802919824734542109759425114413783496947078876145128263070953513115677919737654040800241866543239317679928687915290854055080048577335416471011076914681945227469081534632983189965217201365324814054182914433463815118584745425499410482550104744069618213512190524950876904494570681515101707126138596477963927088706261753685455000962906545037110404117110856077838613375651816170129844631302777795472647188402428224177151058943648847409852701714474719281518294890720089883272943290088728651310473009794469379227805887128460422724960311685418666760117523739099317334129121057498423812677669189709524863889856244047556986026375820006916241594053880867126340235533379204636502710756272685031615216493453548815477651372397333019968609626261577060426591486680911022634254374301489459342478965721990859802483027864521833141038025833926666782654768237232142292048878688550343642815038704910397759163154810849424798207575693278672796960782769892170453535558247263292843734424465800720660884440499024833337921264002000803549741777023900923915738030587273886784990424477201192507435997308020596527357125348806040981296511279188648374941903019910788077420831697683043469907704760412414569787917015324639925529135318677475283300828395266830983623274031720384416342902647150519113300839875971322465563374027449098127968269789311449062714051972517128091458545378770336600762633580505851323753312485740871291038669301652849465610488967751014144047812914501834837429181673269393445632258784426813994468398389063737996416968200155323454853340229532588338794961091210939323985621468552879300201429722191282474383745389569115576767328367714913830111755801535613157083300071287131163925905140787209783074992212399186910217183504237920253419941824508949342876921741662096337044015753029786829090730326311021768474887392642382765014609827175711885400019727295359491515045376876582831604183790771731494390684767644101026384533800261206278027237169484420185110827666272746481654487650587167205441448179737296347206803644972162600237650997309513063937746458320075003084926918767238572648958283712337984090785452093466127181468717195532635427693122513020548849081372528699006401663478093060185193219097431427628935207604875956865613214943960249465055406767985908645436756145828845271506936368407736116410271859568396500407407827391310047316285536331368582410638609336715871583943960959929158987927947939995074184432927197740184529405777163687112926171166666111697386614966499656655806447715836460602654043547138214392019472844846080408374986770629366494093119686412704152685312391241355239982444745870945641495131587313334859981423747555052726491528762213072122181289231523526081037143671084636525395003661331979418667077732622972496930373490597480235156143085162504209586263867385758081226499259531147302936499884218750480282120847762581934958059209264531533616984073281825465824824516881697895742305793398134202935755573481640295479351517026321779649174582662081513936267077741622916219780154364995350583880491783327785005891988799123502448546332150292489244688261388272590812725989983980030958270212589302184512256052346444604463244288550013229835077528496337373578153299995227695539785884002937587483047668646333616454702120268908729642330367813980463303526045787111389938830338077879518652063251965694969403985924510630590800347208791817684385710441551904089644818662895843398343655777594306610708468729350525591337407708475905367941173548889460543069890248816144971414302210224577074018709136460128304250302142607388722407140871580727005289874943564582052113319320352417948362849450286824150267263697845198019878517866744671801486637968130404570002386252666539082461471795143163544267645240857870222207977848472808128285614306195167785271571467533670652532658339123196073258269617653768644805105008673525869322881187149107677655273011260275287507395676651540676223403621617254797776359176259693519102901067395220996479953412515634222851442469719218143504155033146378138763108003642329909789468881024541050137380366012023435761052747688438729698624669439747210048865191089554540834221839369803202024086906176831433453908054803668139429335554028872836175868568984961076863990837689446371973826453894872969690679164370169164811616759099973614905074907699814150748686839303433063473628781859119899348538014526535710664635117506524880777527359802279249638732087166000020279667606584347293939056621346646157103365452107989751656944587582387308543472846469661234481403726092764322779922135567633423444250051325260727796685611419347156114477391759923737149235636833795062556345152736335098558256897549673125144073203715701658753532569516013086399708213700343306986927600580266944379487241213931742992742471995775872852217629567158931458708554582791049222194219550177045811121584923951582019893771019146310963424186460749767979061736364953815092594327724067291766308856726931719861397972301544974293466405848920242214626011672206795147742494333908454092344209674405925166242117712769736624707905524462423410256290762220274738579448278141343588517610783406177171865847165854774184519135740711795333778249210796570530190004297128984347996173560425239510435465888391039966671771529245876671032883070018748280287819010809744876412019355318539786324012590509789656251986035489538176507009857018124917444294596518976401919357238159558654678500249061908929501062058372078232112129643505520855356418326555643365729416280811012075920366129595658491044521602313657879366980112864380220766353536657108186862722011905775058447009116560425617365183231806744355548717110691168684911764542616191943880643588976641513780918860915391323104001662066145892871298492247029513639778265103825865242727244710928420527509711634880304389940006422788829796607278404175073649324314655630718975706095478505145625539690945434380263589906901077271905207958002582993431882564744598600116440452345086545070598347649303631894623672730494007699760153802224876106701432939390382461830716828149252129497697639195340520109771621395706714997658973643683388233620057438219430773396378102720707424724497374968541982832767282064504382309655447944988915351689683092768132101765638953578481054958335107874469112989448770198173191472236809588782769991196392606951370915982820250254308813694931770525701401069335472113195266362035681247046182357496004536386546344238809053749794393081050825307713968946724769649408251555586902116805924046756818549170065081423383507068394894804696317663407725714219720209601774436150375511532260233081493294668924220036338230583368416541655429658910754580200646121425351084411606314919183851693033596533529786626811208127077475595336076846326104906955479426585054046703076873259773696473333579753769980692513859827825049094281872082768996949660138037884145747475264830002513344722556938128945644215640616336316392880680046830316051018863599213965432021375333664267260819252306593338285032084515713469850693023305072153932625720155203635943727728679166374672781349166755848239516882057928695103762839673730424817604242158073544455338089041795452832681080818336658879529185740126335297343643858020260526495567344834946181886158164887224957752954444791205451329100846346979728876082907639336714302925487051287004389089415478941589414654250666586702228871418580201321459981230040103913740608746086243627696323855807422873644240650627361155004182867527487385065216676084053620025713163755584816063479582591883930420414389403673210891802829734945996610001282868481992479277528427729096437875265559619619637335076192467512933514467709982506737702172602120596990374083028309774879956886031914687626080648434966897867584755248225634239086352637777105909936436714776595794534868730064243379526559016316835306541342658991528945762658942681284723852193894741877991833320243439532011597220759281815667972917809294791745577355725479887756703220264015482035297271900834375489468087112092769461207168443704205575279708387509291588792508651281540246123402138996061399432579986387612606022566271884043794347601701903074757687665697813221576262115556166241086529344125368193631707732217003083973969134109824934318037425406260277604144582371286659442563703965980747187593724341667566097714666413241481867086078114805222626221452018127382059690060403075669025632527069066864542505863952838841300489946107714225970786316591056156026458848101857408744338537371721290342398410605795019474745817114070080624562996013053073268921112180655659363879769362574986399281916083151479651080414396580481692276659131382671818092272512753127401957808809876575075999107983957679958218661078606532573095373664307878556463614804210781559585206937181136102654228737806067929569099719117133809651324818465429208256213989813759274412106301092291200568391902192389914998018736650886409886054613999131228985741874142208611425195404293344714289138061757855515205630470196371987152605901002674418831436370713664404666536206304014521626218973902102365868411446247410788545448797510832693910531745188890807100766891990819604638923407154927111952900224083004512321254242305878351839893459332668326152639432125005082390813939513609215342199216166647776575248584698067585604783523826659992399896748160082976658098262309848916732764292711945778536774009731045354226055167826557337069962303982968542042292627216438693095610764888637086156719262321590640072470395213481222478140818939822007874472275521215147781392138211101350802753453713019231267094599101178052129221334965654648578704463563547020415061754316187767086663118374837661015488866358345093784177194779089923942806966483864667386484008515991474057538570186175573303882025667000164838033972899349176230094702889031040313210797212455338949237901115869305518504658754562220002606209303158610078902251023883356857293265589342348424265315242651035272208107305595507644758827257737061829017545196023158108821253002813883829888620071322496243042099686819681445361689835968180064856675202935980072271188969701561121975666693387138167146430297755578240814812405715647317049057322557052663285774522269678390198233179501678012592775014360109169141947705335147334121336947710018051576764644393867824107531874643213928403995432814099213071674138058934776224002266318877691553876801142779606479678923503771275595996657400877615913962103987618888802198146813138311234565872351450446336863433426305633993336592592534215573319266698849232080272109661966744510546026424107470077166590480674525779631248558440138468108215243652013850434295136594488599999414585482160736192085442427656843467350707689520425321941401200793921812542432528130822419897857757878433085319576921310062613366997164322549310950419215049614460506051198481379882484401195932077196462922103069957034067765723746510263416157105215945175342429854547539929283442542005479036563044247047433852627480375440765623046557969258415391094694086443790735205515819728332232532023292431482353066241463078556752170351078075611842246638819392867821841515354720452287903867256488766319354942210923435133828060478583961261651668075307706772785668101265913517498757724880322130061162514108653897098152126138840182812687777910447770296975434951105591679804245137136185033882094165091265676530848447551947119626995385700065902291337319727733162594505524522554536672172144652745148332437973645543000795575690096629489417665340908263740954907492037579910350165007495612166460834909070173755157251028708657878571738863923259930421217320210334416252680761016075957359487778338963185302582544479924426130779258325377793243802863962639797864125525833468324073042017034426383066522138342788275474743675378402553522327084960539380001398194960546081922529448525098259789154857846155344029968057861852658017935819609123570879186552073302246115077672743221568414739702369226212868922954039401503083559160530557784548509465479323769615836300295010035858576121283573010861424988177297522292784082845322884807899581197072090035859182409732405411263779169766670017059811590566557646283040386996175698979682744129463162151609222828157519473797473536387448589888280185331068962214271831507721645692749205776715287695719937409477828760579142908774693648455600119396386944541163995917614887074325759955422215236281167395350976495993062637287792316951003138085168445823949207693182660185878722138023401404565442813772753159797707068603525426256437345950209343105629772848144960473748007498985490208897845646691849630011847960659912672489183474655888138133544951984222957436376383024838967873510087039211029906384997426183409808253941697044840788087418309288423701453242984143988238526891109101007750165686400692355935360345540493905793540038613908519816614895644197009135310930314209133994171738630304567286740506798860248095427437164355640740112660200440859465599709765894688297292103662521973054662380223435769872367981418719073177678244187330142837404130171286336091365278728875129567452672690513952045345755027057015953147928746443984372205891371794314280522056701163750661000061293892759428564389975746744155185862317844639112123070584617009425437744086053747613911429706793404943875239455247917723772406324451681438721139682205978461364036072103751503291920592178971531696706153263605692782253286478798689370879325824798745053452653844925511071182143844407242338243892834886147261384764591125280445820150318213999733732359397685977958608986142496914588440460139505043570386969383903259492148166370024384890387611749439445082007048855852802744829894364306234782848612301571243512651722311023152979806403511108606850223155087758942579978132429132612057698650077904239891869655020288254331680790870907234094423272602863629501602054802077273246282737137501726075707637587447287942922602405604686292764761873127052754119394577439189403040346599093126108121541192303332852344532249651639222057425132384658931447001527789688150930431094748930546532995203804070432233818931630691078297619551360555777319864865330497095678726850237251698818413068373592488828107107805289002062012761389458151547771883683784102003697397317538691137085596502516793010491499838089039058782902840081290600487384437727794968410868151419219504179640291315424835391150752026134705322468217235066632180997676044769662307582374238940355424455687631401075653470079587728403560038134025641769136691530263553105152609230694014083150169659245346021841156443685455346590895715020745006867371568270355833790238795149683741830754781277968582315423149426322559793746783950449725783306288298921945855885053152028958811179881148949237581124898371762322839003272904647977480466436007124896529593757530256010437339298188749060805417832106046437361519532085546700111579404568651646345642594802159750284464793444230887584833545141305592315607525963719773744056014552510816473255426340674373290186147332600604603689103415355917548501392795021510185629533677212099429438856803763326840414024381562601465577255298702110775590792241104736096533630654251371109011166321086842167794161750172722514463952277167148026619858236402046259725507081849575093537337793181950866171134679982142582243775280298150479635709543382477385977613997685244060102095462735225827735610213238698909363934881253040799605272427733468378631861055221378138632810222947772130957532893724616280013984065312732656417004712090979201180826107795559212550609715663372362015573247667408631179933853417157227656151763945875919241512941970391533119188488528308990769030513182928746459356278485744685950421692581942273861782579059514228860132237301773421628894029232397996849134473347299613429828702227102751743328751301013014629870936054420927283760821858753728465213444684106071216940508813154821974693065184041777938613674574074364901752053156602373689048835535677705436057157138091967318078151337418677131376057706467273164303799335673177315441330506167647451199025670291455752548472136730135872945165691124911433868208004665869051923533969769654606577182196538006876003838676397521214242017836517546196058374016717629760332845132726874059616041215109479428375842536557956903939752962695567547273649526401772508990154339095649884245119123443064846373167229251205731725622242853062331016613707892059532728738519586558719045231519794141314523819714066105572264552658749260175799648840998179658983321408842770451066703663845522957784984572780912161552736299928643404750053740146220406243276775943228753659233358691068154358939103410262730208701329807510423670141696231522134763049370697043271591043871795237009622523236879617839613547150808656017261389093364728581818420741625499600305689129213127725569697852284509393336190441479738161785072458289000056795986037932708796095130257318256783839641538650875613567804404017347019039818059719785272027794128958258502968419354152064145449066647808848944768144331550463841838630248016788006570165592825105023932075744229163684877947868311026817742897508438667674532070748948412407084193148809004228137587619038117035540278021993401955112853250116218272428218758344646770365958363657117000792876748634976877933649133208649356190252225042348590694767837160164236770632558922137519840368709775548723257081333952207046100437734274746743114370526304660086369930194165947790685675874070477323407145012874886926717750636817902849385446283000690330752297073651915415825342180359549319940705995158750259980918190597868182358976811405324119770730012697096854318613996110957133424282660079449103050677455466153675167103421380372410633406821476854881228760986152760396927312322839745001092750949354296820045103012575399343726375100502337656610988392677602306544160642376751443474829759903619854414224286896056161150327047346943184082669808143952909833305941389671745473657108434433174060525255580698122649393440983529546951968831600899582164826645203522589579938753331117703381275855482073491757452795149585991764283155919919077851400417645194571086432338219069419933966167542391030961236793051047083179231170364218601440082392285790287872262918096879613538914016565130732230957388522957512683323414966002433308368579379989598591034866653023912786117939136191498335753414435136833779995319108810717509854272028425486073225596641629285849523637135960275553668920203624595781439085383912799469941742118594353906786743071719638350990826046798704645893553827697368960829883511293869644703431712234454798171298058832154545099447170039804421672677353969234772180187114477356188995123834618821658203083048856753169268772582775957950333076276808969757719204248823375925560003091210841160869937935851898834307300425223285245051738849158357925139070361095293877975574988706757297529464550711462197325619410305529341491273504208121965070859546802009500729296289166502156254032129242300526304538977256460285076394610989320717139810409128163264244159494814116311294368292739851669771398864336792452169681568106947788145263780536259698721132760131970035259095260796230430538852755227946302520324269813610852178373760913480849662104927150947136378173116499775402055791317034477340462472508004439382667292039732441472116124109140798641561910976324689190312568559802831204283646276505625810110458873084274141166464132140731049600622195256561763233429753296099066929844911036024733767655412335761211155031219179405403765956220169292343950366253272680101587276894849946098817228436367127173365010740270142069504006519745493368753163153756616141559201878978194032815058828793273417201000199994187637240344119038327978530895034114194834398034564177505082245204970877241214213193177171995047759960497568292183611637957104814662571413463189473369836258596369827903892355535305731694731712135432731704455788480864745405959356681152902515840784246398637990785412084800454152885371690651045387732896145826753923499006049858029264058516745322811385419880655897177452172293345383470173783546423089185874129377234522525774538775635404730159965729035372339850180360951542211256603634555450052417538842347175951259407387639361184416702519617537826697217980566801604944932303157327609564238710803753084936705993981219144532787876928769803567992734416442877410393087694928290859364145268113367642593287104347709293605833419197720730164794812948676331767527105883065951228117210855836889904344038225236556160889229392188162594132497504884106683202230573066689301215849870831011545149134277307234086229789334237385489314492526204066482336897743084137546046948492623502673448470297756070115812259729263067679946269779600613976130143664202904997791082800941712502186617462378974120097895924099103598076070973502325324762886846701721593905628541582826922312836450445516573077514081167292365827156331132032060595280954498832926822895471289086940106309017124898390909000516120475993737411723353900934574080233412989099992925664962621175686534274046759312705468405516525667423824428864458616150921298662089806923857858058159852099356253110392390731822940382408294165056522334478660115780672102944659981744727076488587809836191593917465353377918682919967230033798106789905758101797384930335461214586903669674803419729494924308348062883380597978084118259926820102106977402953971562273898971546320089521546399551292847324177161943559574760505932985843624743424533876107610176934255010086573725625351679975818378697687384851762278711007469760676916298276075986961613945154275341580883097018148547034285292265966928886578129167775578791554504224734520879410007661965409891094228146087016679937674223342908806567500740149599138114314386048434296229209969045081058441596272246667685123139267170713095117464172819436617588787099307708459887767139754930602784459877052689455955332193993493941169287254617302704976428236750861666006539379432012843147754201565946548844487861291220155174586806715796495740548907317502976276884902657459702108814391379945263351148827499411545132626509605318214227131387125890586581464323347239552156008598699768354747366893757637601005221741306877297459302135512659721131800641178925880387043010112346378824451608197808083997331571575586062062731693443394272717765780618980566902765643853530721485806310117520653080489310321319044554768948624644651690106571714923842084019125057865905562898852571775430799405762661302694005931851044414331261032641616297953876622501764578927661213006014667230833446852596257484484751872413286106530742342971949491938975745182022234282813874101889519190769860917999118323694528516873687775233094155566087501208330104045249953572964531301396581913069225781187439591277795038047072987015126667260173041577169657420603709895336449464336495326382086983719378466120246741479805421293500631937882487415063260573874844776854327872032139575910322453669931902473844142141598339843468069852473425074093961071370654371671140151710097201824181899370611013431315095894792631617023404896128981431240426541386083113645662498950989361549045537632139207502903099895404139740823053993397386469125996360945546249120492814571314879858079253486174138728735003166680875180592503524344472334578286943988032201132119974490312122727251363696753320826484485577729442977045213429997267329783911937470871597457258015716841491809029857712617420839646267067924466769651274518200096162601579592647249491895636337864503658129786923022868825576662541778822625898054113263946003480320204377382860903847757313292009638371044204662896476808097060455936881660713395862168447420141802460296163710913327886871941154417706714984676812730043649532131795611259666081274795023591870220162227579847017016562948811784444245849380740913297417491627750147549625254413733567619752805122668370431484281692740373157761237237567934924895325602475684236730944194658217748782352682357973008470030092299068189047455695801708088966940063767103537797793832154847891239437874461699397564039788087878847914503194655668306027525612973312477122535844564977980592188221998179022029870485002625496976195828690009940728532483084689856936514328727167122452329887511467403603599139109545672649394877245330426273382077004716289013661882588992858705823623120516520117296406624430296093040083804630965993324891844457497212909629000854185348209681986111242454055480714706687738616029198951809214163356025480912980468404641142608712700983441227067472998205535335688850272621294656662470052839021445113968031177936887678318029534459230733039375087967109588257544929047729873041359515156338673758301230882753155332739865847755839974890739259515322387285797459466715481235750782910854023331842545180446913019864567283701411335043198062059727087789627417909959164363179948365424763727877391756247222532037078498987566938601088588340969948890233644890517272730737413125466562077472264094542291906960780112290629147185107327061458487005311042459990863070962443486105056485742378069160157508937673477178476879288517803985869605161299305723204006983615569911397092146240644746934989186805652576089713320835680430221506188270363524584485991764676938417572662003654574843385439761582613349758186657442584169105142956967713798740091081840234958631997092410694903170149916146485674386608397283229830442111931273600983322556825824651645912426095532448001912279069106504641434855110747939104222747985653624097529732275036188068110304789762199441577505047960853965229240700529112167141778953150160910593465240803377088040471029607742592349809686636560155791826765429465667207198257357811060800153392807089148489609707592753306770161920705527595966012488327443785478057909008770256885383287126379725227025573025488570244638492320931132027841428697019147536479153684355628076143674520873248679461787435860308723764434282987896675280599077068526555677683002545385266533325874191261017981226137950544889926136281562083828152825550228510564767318131747075982116044847105895259050545082868031134719448363937480606813283770166783360653511315667308231682596680184666411964310361552155645528659557634334989814344003467825995406452186408099771412506841461736750980248632910434865792390881662474182426932646641551212847037191718053441467247535719283100496591945275605056274561423739646162621859027458361702185540975380186981271566028319661131544483096688795537255599176492976936842407428724383793463093984002754715284065780681387060766919998900332200782731837800309881149848271145973621427197386110655811448867640231817799002274577645941811880297099347339569018988917394742030078357259501023568800499284494725425833789639657860970882801601532585386918277692516771374764915015181999718467406684576137961852217210600944989293527168316590413280841409231712808415239351021492324723774532020975515008618651467053854824958816128618109174336562611611507681997695354430199423322565819660914927958161619029123941640103049210949106445574633701995614141975945714128881058698533602277858804360713234674391214170786555227723243990920906961013114819588507570876875745653630024690527349585540017332798941390102976679486271896737537470384924104747469349754306733723231501507084915052893980799185509195646510483492360932672189395243192509558961420856492561912669178491205595865749334241398893286780279910663967277896998590827885119701485415968095820573042805984938407381426689259214124714654000457894254463546868095976385947996407171204750307713166816058868259893509140825251816316657757571433815553445063498805152712302073234968050462063064180927804361712926042055582606029534399846512751021965203628267745823369629291119019215108479880810615420158784784641451846670643591485008392253503543223024324053215248723298723064950827809720594729386257409865471473775101420360645708096078733223111623027930054347024536694872279730696479137112094539143102894489830142059933388675469087697830427423972793851573101065840464235541888246378986182931278464225304015405763366383420521535775092279498707518055139642999484589905166104931325223815064159690492948258069974292545098208950177589706182742234486757958324585245512120274099349046049393784178796226133039879856815517447696438511372636476443375801537550875612291974963546459306128872259432923932097642868424749649926703005605490561220380896136023704964779443681722537479550826765017315365754638013304753207427318591732371403533487355582343952095333380551576281375803193082081980962439614888947357086993167453565338676336767782939271559932427185473346895513065229037954355349697698871087639247061535437031670690837642941802867578476336551505614965593014310060444048638663474067001799262716243387051834310478116857373315054526688887211512526940032215308331838343767180936488663284350250540689647744711871316735964219734720464579342081262284405821755161821753337066999824392993069376690136595512163334621978448951210586146837149331783522858954953056201590188895108188143721309206516933006760511014727134856128156579618739878818847074658064819453321190966080542063910772172368421288785636443103255222794791067949376677911506198271282527658022653221925001087037470189214682162045416981420320553852722213796813032140838924474511992200269788869942024639099815070115980064786290553853399679290252429388051604071228636611055645421413042274966285707322439789750994688058910013438063428417255366319101851262700002147200116550263059928558374396735052548695551261004856532323388350315845975526797130791891534743259830215428581403142031529437342036316953861127212852740577456340193959228067960884790102777942200012397392960946522458298328502688747404335151747428396211077899584845732894829851872832842631413746892740558639315883476852037734008942149477910744385894221586892918607091482652241083658486232099746684067787321509681275843595971457206093181768376129980200942100755814154569549762758992653575238186772466334246995424130795253931901814313842246701987035774751068501004900310803842743900504679690593841197561217460693533912880243556688787639657195970311415618524551129646734590968949971935485170979033811736110099420289396486371091392639593622012677912654048255449637507630108996508094423707466110557116080233291610417698183314123114189841215316157522209583900559923158472603418956767972720971380046583877342850753491126977033805420812944210205207880740676022288929904488407728775859096395033604194555499494014522224302818883533563356205765353123043546052057722266039465235746784121987130024838723552497225247793801011784734911627305409749307564505370746621823701718391671671502139825348804591942265135254574742706868656763344483330690614570189422869168421621809145241598096640622387096924077101103983772097165134399851785310785330154116913501998013833652898646084310889460747641540007844767896319664428415564289678257752492917836853142301281556657614493514781457826722246496159970555716125439418581340508074207196470257095035966744952416884311955398306376395381167044170972091085526926466001841469173162308358539244818538463722884353875211366972658009322442161510339220019035569573213892238869204296979998528789427649435359481153060732362158205949536568329719213847368462719555145203867473931014366016560180188898705560247396348222369101506612092658385640921398585652008627227843751966428370161733384146829829323406368674625953323040935419328327539177215640062796439983688692763743366350636514127277231025070741688268451809607793993789422207547603258469243674923199128879756910199665427583210398122121662439437060595792773873322510323064389231479777446674837130595308029750681711408823051005488332336864821624904368576686109536373894463568973449476268380988223885435765625918666866235364754851487396737924877823053377167557037770000795408711826674975996080654040536973097763242378745490642878650580280088739180505761016857541431091661293721469902591028684623817586086902015728821677977985737937083849651752321723227413907739033243981099272908690005824314179015128859896120057424366991012184575091109435888701439040326846677768642579217725276712400849709850119457662370089926406438491578933799882081037446778515474216448454440321487552254853805406490996114162956241254001835320736676752096579049356888644998514532972419679557994080107228774122253104616911364825770788465733482335896386701958306991333373057680761383351442193996999658556213198177952151133096891118482159099567862817120142567848522594584006443322104500099760877657368906232111335922890372985054091979038316266582554599923233188271837718433920162361186496407917731597502624437162851184585246565306105579457704686250483404217043876130025167220872556893995189406465693301727194344753822480318092968781386501349213611544498715080534759604216757457613672346327492831431618389571566283004535490743951823167282178164558784282971130763156913808824282707377692154188624035637407638957377036932352021939896618864900639926130617778950144649669310547216737094507879449802115700906455208125842891896381063326642967526983223071736469021962247419101682871337099983525344240730152758495440874398562307064897261088779489609571738318731611713346044428014361858427171285726973877002867198215201440734156008142313905503012790643249003235588561375000233908918066909897401060994004805398689379851920664480911008545846128231289652283554731547229708614269390244609925344105115316851189521573471931088554440982572412293793727250363086933310800221681314715830590586366548280246044868194051548133612857792274901995829888226290959551747631875331263160915387971053586087246140268562530575145481086666573575491180420723969378791573015178436684439786547372944850204038325305600104370511418381707615189388396954090939500339167915719619891454578595271596240022650117183891011485126196568003092272733538623765166264933221937341818236876120022654174555126408660911013855548759634773605705765864518331814994062388814140451859830561328671410978401052037321134631239857309006368834001472917220972643977373030372589900509644874159868254577766523047827588953341949549376786607876124882037127649352970312962574117780058239008722318484100432492181911795787583514403734765205299641734494827533592991964307180104974583983292065724163169062178996660246159464194427730147225311817307920496718984463666289217484749301649721011352121118403144794266474628003850489595052249894445735594797842631170608653768526806444973835366508039063290304666195161329725990293582036757949969094459671189676019254605866156840933260828462012062977144671441682830637878135529260693450696852948623069637206905773378181371227938624890218875097551030026311069412103206769402902908872809874018867952806007019887533663307451337165682743919196857541057635971803194874282348622896310950812153885410032713955394039985922747784345567270822096428047003013713663617818788659714726687617596592940288386897346099640312788296461707913846695506031506122059282087558337708700858698186694696409329412081772928966346061522075519443153151427472022478426957700429489242816828702845387443583138175439091080498219150063410152176375316183007664816191796985556263915243496426407665329536518259916837600220325360061862196685562235634755590244831853613986955614032785113189483406940465281912401063776700786071102442085847062268205097084795716165391307055037485043006614128012830344037708469960694189601878423079910029219683966549941324173552866913477150920090391865553252428770085982658832755270986743395899462111809133427805623648242532386768158067137415005355003159625782533605196845496745631172126210262033375069080851422837553936156302267612900211066452188735429829907102778356603805132899094204038345514075373944122634969667460657286415128810161956973084893571312509078470400989583396598323252555474937233489892908931159815294525083122804933146193273620522652663429787806632142751323510719988572027023061189335259155930199876649490770242266264271363252006839630505457985565316607779590081668659880790098637475710961783230773403460266334118488974274747510451188733638564229576447349600945448404154250062802675864824349519559235730208323876906818215176483120179323937156680602910836150271780425592432126683551153106488955542454527433646447653821984162045527338714866452571205718923253146065696697792634073349699153957361696189405057038503990297785193524842093040249948873839508021362718000536345953503544210178483441088613707088208669561165645439480375680398987799165846980630902435168022298691966032582481153464355688497633204604568976698582783911512238616267850254871337627073569959543362549075740746067318198374859620635441768046003734401188105959924463424334633484073800578256511854427728139592047114944153845759674126496340509940902168012485789965102512610797823172925103853101560809716964633382801680626862737710734023903844282559815394454244104703284586478283055216229059356892395569512398019698079714849162364525939606475392882218977612132149926691327489197323097730099239330870642176674078183782087040306238537711423025284217563582643313881103734178204139704391342502411067476324737472361069422561088052406776854743260946057579270093038949992242343379249449479876837538739278156413505518941026734344142342329028083232857545627939330710835442480243563368095719383613567794107314457952493386082832785085766216106521120375532184852718246372913426317052972683457328450286496691304468409110178224852591114900154598195334283981142304547560962326587206999569330056754151063909004368281139937690497849346810305008393919923600059642139675062730453383773140088882134164347295651404427155363782795064843836712285237497273672048383841050318470231412652551258138477517515308082265936685296018612750779327400652676086449464863663958962572367156404916672994033741193931587767702568871210593660477402453098870421519207987845068333678175061171057240922753235378052407148548600500819083993652796740577130593514281649789005639109926259372402035859563185002414313459383033302461371921866798907297440470575243721976647963953474408074095815027264136388495407600397945520585342436495684297701896081585508716210556694841140596131200000468615649490061828135087657478891887705360839878205120182370173669455555699566142505784252981220348599935631343621143293766875213828596022646361915779795738410625022486336696028346214289028854041543907618903626055174760843043609777543418466147277143209457345243575555889943295537149207285188960790445480571713818086618139614974880465927444170424923236058781515216295935784552995382488119289526880909793978188603514007413862624568022027980334028888546316292428285900162007691391601275547658338966331378488797974007395775098804094886765115278514221719813840221565605356831464671673842009075197357066522373356825813420767923914055047777132906543964162717473411694670069786444066619874970851141381100232733225988257270167619265784474378279323077286556664216328890729556361922454033305058355989600912528119593337978769664815754531760797407485393544783031760816645925545673474429517602340371779772259521439000447504584127548534382392425990307952431949152350645160566435902959977349647992363799667667016627646659071034847162391789995798672225120044407041950714103022263477929546740669337939049584337236861157003350485303823036927691043671140384687022954693094642602492325307291263797811346397177685692341732031958426721756338351130892674395482956507008966766061494839490025972722529212181805862888816893584863921108623540866791738986621175139809523147582386016025327024345139334490874167965120590973330893329553767211796263367422719792023275461042648008804584704003363497802386387813115509238963458908606930965558258307199899494621970483482821103015771367648898658222338143329944896060280218102177357307181812487465622157192779347213092108574528502185278705795463969461814603982786048283140360640752856062380423122475006848215003930947682468302518061767556358163636958156828593808731623294063465753820086696216723627879759934283809025588357814209804527400861303344877519158333369391328980375307547071589846079956444708136275288595644331544533340080759294673981030249560731804637755901283561944266212874073445506566522206061590147726513163907522015555125470540870355924141632254623286295696043591475097867075129301875560483841648006919021481145891846835608010427163006910556333670565430134990871257103749101307280550192945601925555164700993167580408218046904765398902070256987104593955762031203289443650988161752398450408835483377930623826357153873049515482998017218369568693289064533677420340402661725228110450013262044707211434938235549779539574424591828456235438355562225687538501282965459655963589821852977883366034040479747994210612241089180104249789603537159643949379126410399164141492430792489151306373617897425110970776614674254529268484490430007609299275652935686155343910528849716150361381854298555911885223643979181141445594367288836201268549703305968116516549316257931634678191914654757350029591152174877561200925062923858065705303535807591942399955307086147903300224516535389348907749532941310135352727674307160038023418412503007345751710584642772911279165342014898025553498515438519175687818841172936983573697139456165382417226037604216609251317061431069918256127944586970579499296993815726193020141360620789405626776079275171305356965846155353908883561681570328708889494842601094516206909073711180584707966738873396240846928923946579087592721241016807054742868915900646645503858525926936981882630699992475361580709973501372019997886354117852907701349295529236644454001923766910549390478119750536745245863085544046205144240824415866919797082895096613643955435030645488299501655906303328593646017825371440042395861375185013888500838777750756083287312640248329857383489462921783553411954013132903276019622372755056286084223075685418948253887987897431951727479314518663817903846525651769693529351233223353293209157375959072424199327768586216030949612882496760769884418987235905544004993097372847541224987806301736169658350898434760835340113348048147992288521955333183449784539547565580092524968619351554318313093681887715250497339597953077353750381042203742506833436485987722280051777580886506975653950774676544430445705306013570636372951077640713552587587675974932248813486121315189093184699110101342380442903698685528671351544551379938687658897109170631771841888139024709300532457430060318350621794250619709353536658672776787877375005560840895613140613599591713043375861760382051467087337917680760841665215060061934923345227289575716277092125140480141418549214404378377451040471492731117053934509637383509903578208125198431329799466637030158640412256491360207989182132365027534933999691963773162965246266645905784925082878536304896440677128586601727479940750555496075287796453400639881228969980879306311475012361818300804697549016047986532894297283407329211371246853294389345789590413224327011504600185075546442882087085146261138228211597091083910413323315463408754229663579048193968484588472198635471033575145795023136763582639304884063128458075040966188399239098030026587238297597001372932799399017610342841364958526857387491365478763295529981450604264287260190723615269276675373433845998960619636173998014906547160327877310670392334193464863769040581936490839380741047881002204261985067024745779012398783619877545227746037054815820276847061672856299887280985355886286867075308740706512961322738776107278588219466437149578063111138637798607505675128582026633639181207387125391819682840665955643141900964451134811123666008874670738051151433737710427422446814125862057334327311704037593695960498490251134357937755892490007313227529017205187809887572287382874170526836332056046526060744964263132031248215391869707225308025194823693583500951101415766363211698044169912444837935794998511852073436464096902932445367039400884265111352101851659766779195081007649459682224131181079798238719147045042762942948323464187950299251858412177454366262775583566710229972134677234931220791726627885555656608351142699933961668123286477563754328052403747539558966859181317360643296756268660038376667573695971183883197949297427278220885762950819097005220029343292571674928278316044744368503728432026536558860134656751778776946228946469876177479911807552456141967118541962935493905183547785317833995911425501671183635150595108175442932720792905350039498339387784156584802825320278498921075950248983917673663610916177305539031565015570717656168462507975498157540210496069039418937632790046241765211744856045805670172309713862481541308015903408257717164009443545922320679004481848016767139379708593416184953171029789672633129891413556972882628786607937337398408106248677168266590871155307136457877470403448750750238875747191565094281620615659261495117893575774300449102678271663899882218177163306680406686490470872646170707889888321107925857197521205100152809965727996171032703383666443250269089226696456190744226339666061686908097606822686786244274900639564836487899180727332214706045442118191507070476454520611692181036379065885089515673294480903848290608832568752461017671611943405226307355933559173685918794720220121768249715052229855065253696194907005902391311111378270604988993893363258515069283795758186599492661012754878545732469472338641472653754471153915841076169576199434843192361909622268292046981617424694712124247158861215754056688497872517790803086425283403562412635555960343394340178413702130969653764808755203832038097717204267100983161945619122818468207346179863396522494496637784933325768394456758281800220323041503017720348659596632489249314100079043749269353509745772195963137245375863428581046131126188425377853216028833158418906667958924840660607664670925142166366372020818124534939910874165535950859658369356267125211637721264394886027730279565379613119110620786716954300982905247105440739043703858611838745956418839292241434168939787757939004634745386840313955560742445330443642611863538637364112908888886110908776079908335253416583950397801353695228859916272514647189915260585483884697889473421674709915016005878582126742161264211147645987269714501964116373181605029977283603586772060461076379639547553585191766810118722305385280670647319847671845214578631385173236817640552153293757628855138098782870675214738726354270084573879545094526821985486940003152802236277727137047148424381251205531143785081622592920150571936290148560494636236466864196321199456560026704074233946058552610949968142731627784686455882617439938373918826936973257588331919735404981528188226740028701794622596297910293682595784041688492724694090889619502263118453993752389887967375191905971673239932709257990971934249292182769590727714677524557777527219977476004952089254673719751106489992984988350783351826678206712093588289985722967779995128527796335758075598648882369365968227773156390927115398202700533116401284466759489082971701214744530997567074678036183133105992292325138402078376344894327561034656192431555205476720177934143467361846934157045550059056058899346527044786223669743762815992782933603656189270678822096601064138643740125900811541894055682393122656276858270860618708535573981783118649842968758993314934586208838041646879605818895072877199971037852565027250347327668718086427300817079509800501081400677853052229715529627859911734822575616778018797904825914767817323361855985388153087243511357138109006519905351287843316746344504410806629473504819554105928727721519788386131290066479431623909283976275455071562743695891133611313342310155832649778445363792182791802204229226214815966886144030089248064298912238602110558342070408641480479624420778064177735569235058331724882381008715612208470489476748550219604250064295605903673937977141247761218876153159559513878260790481604407886385109162595920327550678024500721491792682987006289130255409243328408711700603566292557187562140453699831808547387717827429150591707047621598667192358908860243133836193464660575935303272764140095024594406966811247932281017029790123931031715123239697332272035753398512808220856790450722830798556189044238045687952683493126651544163405105130493976081015282174667043719026335640005436909024574109172890660497554609268057351658652615297965105477424174974852839616321824230534338475098970897545202028931078720844745894106485175091492155137868762325319763430631288759301726752429284746854379899268228194621401429119690774954875045020961674417791680300961496159619556809459468524641440694923584702903176026388063806049457638440577720245627374644968868586082000339291692017965581844194808355548359640025454051188176643927916410542180202030655094213399632184175571627770553859745123555318809234414028968681027222726615764047227038692751762537184565440239233370022060857588904093998395190517156363109720052156313255637280305626029040650147639561221958613362684638804548749611601351453960280400587463944805681888658691391790316009595987691182402738587793593271205684704262151260742208379468997237448265422010899871095602827938101306048648296514691498648446039662838977934859726605289290367277348052414967558683868803476858618418729859585733691360985602090957045506475554531767135986081782701027195461406834552610824864094980730238536112103838188955880739386244298659408498552973985866273534606081883822807537410186740408528168138729705440638389156858467156610933855605517156455945175518588441971060597919208824114823965508218342317708074195152203939299036347191548899547273294972555921321546681200000902266285925159289271692493479901888416000982340433538838647600005862944829996352023626752172862308619938299311260669803516588310570168620812245298355865679178683870390039176661588016153552317351198268831928384507530473824770795024103455597893230268892070610473937574561506919569608461656884369556070220593897112830736833031281007492920716778746039436658342245239544666802651637519275893701210932563942667334247442489468053657687027028205380324739673955502117185242450803390766854137596214305939919734465822107806997856249290170054659477206875820210371437446403463206623685697291795907207716533305388945347652425326335913795278144373115826641832474519152455817747952452295857853209178006728929704895456804502182315168510269240739054121719369844763497997926314768770269324208341910521365248375462226434810831635476544424444326803501877127118715006571639289021198943164114605879386701364552225811247689844652336617098949150023954830763259993395026623062790428126637637655807303802386251751764802025915515615681918580167131463924361491861684498296622030517620426154364101330621040128999954074906545534864874399709536038640901553762589974999490335601500393706787122647040504099842773988670842944298963347318350165879977373462580019581131713823747138818437498247050764732371495399789869527430258134955604921734374342632856438030313462585416562736779209970192533575626879766928550003939868635413574570418979532348407736209381948033170866453064897250673360425010266688227911267798442235233034783098276452363548364530640025386550374458560710102855065653724358576063434118737972502771681598315304287103017594164359436679898619733851587688990787227628003904315902974322586080927399434293246520462108455213653732013342694519878443296502017523994171875189848265611036290260045827632673147911990079988323079695193858855209589166509711580108025306927040548085899876973203756131690079154268194064639565557667430921406960596696984343495204286862900771130741499844293512689300889803188730302857885842601969763793847763434436391365095236805165864553764546435834241119993642934638744421280066773437773153310451122844015196568979532862547523308391183274976790276145202354140870809264452866150878322395402326329595758806603966211563181796158280102162520062434658353756331100435581191096238653305472534871980292459518005345504977936802985181818255800837700817509037329000669777289099400966037464585791418195018387323252111663280194906568017609482099985042226666595022790130341324845670198314752538314944171897995122484528638160658504490121949083604872923809625741230460936521761983804745397746061440778882446027107424535780136784237374139339059770120737785721593459973066974351725920800214676748771313638617156964903968556569702305509546019790436638630219704638333732515479922504182736364697611644723093893476224463227282987436693496149389906774605035057971245131106512540326995272297740602192655125896863972704171692321194269654495445405090678156597591193407122818437377021001682013414025091772392765249889868812746075035419788735031366716367878674318548625340004313075949591955955081178709124016635737018492485820852626400243006158747211110236618124963991336005179251356128103253365209844028331054602419594191070739511846048622708466079846442264786755563629150291629335277081157098246839979636778020560548586951978282602885653544671728339882552702508137357223542148278319791588902141110106501797404630864107688226876016118397312314813295776290667696710122969961364410818973934241422435371628467703648156041613230914519942718660200463309080899262918307217254167258151543032578828157662425223861973340225325434806572465487697797764888622844007896638076274774580892804990772978164888875581824594761504896937864571411831708869012514757702991019162927851070679050955400878183115684717409429885391110573327786671252501179928288227579814089321892261397715662937320757423408849033281597407079121672478343181497533481003192207801566565991400176816734492534961953248800345164043120727699376791499608260082202367086980690637529886666358033187445303518592731744154136726859904773620733605527064762934798267589813483689083383220987871508361805914788408382421352906581207794693940746720195406127994594472266958016346054463634178403763448155603894957403640752764906016977821440893989289746593499798065086190466199380471301715020061779919176164786574783405122759046510136221764238263359997211057843746593536405659689448707838104664677447959725578933441293381093073755209693562249777294686479247309473801101617539408949835933257825441237695868386980841893112767816787139585055617079907262143332070092043854278052390487746975064945749301305555485246557076114404944388877289913916543347074095546429749516227451728437991858606645047647819179553823513282620998512553101729605306704663530907624166566106737132734992312033032621768949972939059486156943969628440214562727111445392799580848865293873878239221540760075485436788798616193347860932472068548959332936953012020546530556674487422210662874022408693731524897862209712101329663945555406778781161489530709278264287123139801951533032820845422544804341670098153078748863685001072489379546595069385718384224766413656124169215952036176953124845688188453395330474743408145474343640906849007943452757385626827326288434981062356313513522205710122323197733282491115607762832791811832329034262790302735729652453101062685393035109169276295138681580440801990635289430007377432553420752563329187029337507882288378326093514511933677203387147928004843387069071476037364046495202725223255851106588143551374680074649010975272260882476688156954590753724919612646363446646991227082756106991354751680515044227761972890266553884808756126891988908693496597842014708336530315394797254606535814031244643515226476178935806460474296781432083422513964394671463382759565140228466287541897526558738422202198087234157980035347107984451379135662685741367091139703970391967350395715532654408011865422679825164420247710187674932111139563594300118429367659205541354180551156335294483713794034204115187719550419070936425979343679798961197235949553909903681935664760632603256907553710625767083298126492565464899302259539165721141856769922780515326074286547494057752445122858015511959661800514265109683479778086294414522327151988578001494505116437052779461541546209313711299108700366183744879425099608445513083527851278740383794764994692565713048769342602353817648785548040693122870753484839772403787186340178447367321574048850036682790067662206152874068743276075064517805926109536359241621679872232806183553779551448987160528009493279786053717587436168583737490645334595945259646794620819596037782328458003413299424649966191442045131227274288879394549562786258698698341445885497570533023614026619403889750555931795889995131895555452464522913474238799280905458311132517444177593973385824975446792600079644559402442147682692694044869998169852672964093787727855365604926086197706149871547401405432361050674171663041749043510422951034727563597212222280971002160718570252040406721935420956342898896542429707916684884069758837883976849809965323620266731889552414471753167802078749537077426015201978915794530588539971293551506761351951058026517027807263359980292965719366916656967043446586772346277218878926982632361840719102146838369570512151830242663285951832047197842846187801186233468772663052286248026373931790918295454662637356635085009395114656224831849954198417780406927935636673283738308369679397077072148442284833200880481846817129477219406354387975295868546815678266942954534591578797697481848371351395318788906266312688517098910359502886285565442951678123811177764074896298495671585975502777823179578903922140071838817995510749308336885819289640968970237314672942797869475275413995821207652963424420161210775125216720069115264826265471178620876095474951164467047044739508692356325897345617071009543209869188731999559268996522847842235802967154940311825627548966830106550030110525726283420140832129137675718338425946615165871245231068342946248800278235273965691712546858430883932878250118619972814106054586818690775380859315318734607037524257175132760587854518702845361322948988205282059568892200719909545574098411230542465429806351414994414096183238194986090783584308242284407973186235091656506265750978281988176862498187649293615955994532440862167099014024184394985174548817539067023856819457892414634885747306248060246108963966087762324415102652616477563183909529145934137255723355665624577741310446964190092355489424057478791401468126444589103126463293674710901717672630475569726970957845139925184890652888064581867015623713775375060680378926574266233572112947162146027164767691601362523814241459671059758063620608779702761371180926175217224691953904203393132870790262844573444231265978581467292158632427976661316843120213322049054726054955599527700693513116769316501674639674645113338442059585735517833076701982695232695029178401588938183279852600691554647000727292446323612683090950353645982460349614869882450847801433200343779328991828347935162207350467054128133121376597228683266516867915432462855804820945745808148651032546055479366964729054555865666723214639404150003347827911742167388827763355375014581802120258500270388287321718296402721476378489731852380855224116511279862690477024107926424095852295304714068846047036388629497172524468670421764288830488645563366687453151153843000955110495727516798403571631166191360604008856240779225335793938079422142450981962598872505804392212030098260190132413211865731165658333706770731240010878734265747902529526721325487439342760290341972288222674057407423921914814772478275329617806165674333958942347818358529619792390165447105949258182676378415584025689299028987413177041161308111694213838819317802491856113207863618069064910633613947806263584023215015332938883299048239495757124268585517443676109284662944696945467768774566808291845705753557146546095798751521796732201101026271903854855931275026404873218097886131597109458334939509913140771685714159215264853330058267621231785298320413340717392410567300439780463231407003976435549914661869878946577707405144341303226819426133491972344161558988302688910235334092229082338419743268644158114303517483796665765699879811046591719991224523406616954086649304571909454101325101926809225599699966603182441578227031771886565091985899862614420931609259232480274700008205728046971398187966764353835876395743829075351150827749338264517346795516899229932289991391678077131963821964101071627009368277543102272776748169585462274810894455700143116024649588605103090892919447968362479965303064169992602173409841263022540701802606239452911870512635502256943992611836091428773769018550719318781639695613275903217420034608813874037749055865470427983265045124782700919901065985373274694135340847818089488376612545633817647645138713181947948473401968152111751506492077863402893543593868255786084146977245835977942954934032734297733686091620708352127938061585049151092933048281426495802819971295326160054800218740258573816599568909338396203701658938081465434354741753498713023772033239835806566709786924310158485125688639076997012917834544604086515499769145012174665520044567286158456796022234517437227013844385062901535708540384947943467497844262798181783725087388383460172794882802293379117577148962748603709355010980634654074273468947895778833092247724319306878496916183787620507667290697463594242949184340927731840649732444990637956529450088914473808738934944397288539994877874783447490760806936217459936104217317743720576546091325779896490642928138139546734604218931205346763744805205029725020109665597360381627192261535777419149406439156497694544684839991793431676901729095659654037803526314239990648074814543138542502250669610372097185209516012792618396791205264241598955852295200697593272388124581180250093117588214932940281242231614082102647493165391127672096194938136810314068401841004850775220130721456376671804149335692143702364218736767374308388308681432931449062007547378390843114578442993371425356652904959003830604398931463456134888601651794736369511098256921433554914389082975704129793208791506643940841867234808787154196036705743200833166235574112669494818749545529798504872697250257936131180543211749815541328735517927411410549023597163881186560509004925283339222804965576745419984927328533377975983796896925387252792922079729052633318421270869026666139722602118282931766996853876101073235932278028689487661670155153055699739763465428315310572390420746721273165277855015085166261394069730110730236372167036656202366989199753247035370445893480273172161525690859675804160810605793597417572057137038402299483447365090072333481390586453611977571846445933157934657671656873175476224839152611467144256840826955702532625875485889537934721820932457018475700540107374350050328722496033761745410987027954666954120938398358110343023226077575782255290970496165169612576510138486432227234650580338357601172765766862449318776086046149148157180463893455075644962685851510785520151125268955795329121535832033048459567933971693452920567569819480431963127344172912034754726056899892181396983911288295276532992937707322488204409040244937304213170658068356499226015005753182874808802075311954889170717562866506687344444606890730229604844599694944963107397457906665808926384397644863604734382351011003798427697241007622459490197650800259095904727105910804567406683054135010482931738185658198616482963406173484436382003943179981926786649709777433411937084922835128242581480378284121713996986290077785906237051000447321435793477993723318242004321743165292447738329537714194919276274155999225894632549126658550458862429499537273980753562817043811517411202782504023149862515287244415512393768614811295747577659378357629396152019682182940800492517921907404803202324383784499357935789302726904961223399785700259102836717157320885456544228357908448071143997551955835088246324070424611489423641536146261837619814259859273956313190387398570918237011382145761970524184381619704555558920701545754020055954220857425628154229963173189919612028559655406837327773333662310365202371562702962060423516796744765702283171857341405530139294421427131671150138883342974587876598136238254336686616180971582691114703774241317238905932614216207220866570317805336742356174055087541455922790236663147311619109403597978751454165496737292013483736596396628263914249014312287154465467810678713015507692721123436572137238052887451515871995181101934676107939158612701347319010311177869776701942168981824781914379933542625437642715623533251722910151008987028240911566552142141131316751193769611263933464851891707657589987181370004629236151954995762743057816385416432166542920272901647790517589088045539325106473469743088775750780235490504327090277526355905474038694178364047169480182028383541818285246571002250064794467758632875418383972102489993828592754523123792097984388501257498732207519141319903002952534737109390151386721986225116231372906775443590698698858777555379763851406591489125579075535477501865733754812310422819602120547460927496563621436857029314791573820400700598287716083895492551485265081010566434423152399182326785488113660247069503477395768029279561905221531483928100777674791916207287162266941415570332134910103468906836080542443445691347328413116213185955324806681694390117087667768583104279593253040067176933508995175749380017371365655187677550860480365329030490480165934965745327951034206932024680415688517374758964454350769147230946940708686277741768326435414472432593973424024636481428844612989860378667536528169931730828064925752540489233765866832884785579514700704359226604321504889820999066734065557528591005937833751017128342228237636923546732229491983205603168645572903864309824118947215176955816301371479696739001121087820204602302866176320414007364932999140635069149899314060180264020310057737018537265413408769824124160555781198494431319935903979418086548194639582970705293016765559722933140277792955512730307402673959291912562788899402273328265522471119543174185904577205272844236754383653585160892424547711741323342555734342835175719054082210281246626521269692507331088544183476812058907837819460340821291687413464638344976214368246750712425822802028254215022776519174851033603946612977832763492639181411958224618115584803042666419377689054253325326990691970883660837074687230714589041706482933229167390022386945281405561259043266291316352789234184502999960423913347460541760428858435465832713779572544556423310342214503845998450457005190237067459831119156953269031627413029792795286670576660242347425618266004683794030696206991262018981108926058526521871462215919561364367306281265406642748360311999583223115974840375497002473144072851532389066015117488283312849169939169000331030875845891621742074251373206419846884795468285106253693728018830694291449103733029467310364705858584723713758066264371091261520076451871468274447461256672313445759095085842191097342164462674470620769715961626133680273474304123745928382561914187327119437455036337454133797481321603258691163800659374866551187933152444732318004442806538964869104445037962931687025720681367315285944649004973049382800162688709799007061095387930644472796436551830650570918500433241754196863495169851650773416295350096784454748408398663278539639139841087084876781759390312204124715497409817400654961967563716880965230251595182357787873727072508652586079795482696835767639309559234824712356002808274371356127536720733367440625779271399125337887521845085492568914641541252526906934849010315212331133908255800145583051104459322566472189119121133140731366031091051459258401592213758483378627634747494419349242095625557383113934119648965016947045102679548415495253590961515561058921222750416288151498230002083387598342465069264039300200013336804067252918306255732402851160791250075052161037974337269413826271225406778707365904590975943145215715265554221037424856677975034898362952832776701249399842154984246288808405062993338740477805558923465645539108201354238844685149535916684115634456732122916837367166257542093997243475952122013115381478101690157950085054040358859703165412136163272724668673944937792241123433549889580624160122547613881330066110731956772268266368579560873758921655104952890108219497411233728638621200943839950029465721068128595802197243319948662922107750420212055064779861876990926283634175799644805660657604960219581918656155041906905932000519194156965982949108673692504572614362439456028235285971825038417483381362116397531978600806727545778895299052354867583279720439278616472423491072997161240674061703338131518046749916917036241812658558647628695163380299122668216625033746417879310204923169091763653213671964152813310765115724708454108157125230211398297765824691335765723296556873213648032034102429046629292099310374328132664662663205245421424866906314390805280058446545110916560909789386894672818712293527997948680897763534176755683924659060776852851310993701699237222463548609407358699528875686240945946048112933022675339152170532469990216964451621503331156011287610659033800124839513922359490851232840378324073101754450799756132351798713044031929528486614716036427302375264238008896166766521431104740631151657230894354252559362964589221962333515591201899676017955569018872205729787815072935463426335784612520156104194632707955243943655478551530105010902259878287163997279897117132562443935174596215767479969923342717916058195387098525151465057938371021320531240914303000019233185591681873761924901970260924115053288144090362731801327700689017246709162420886353893007366640165694151322472988829136405153739904169400959986009685716485919101972997877729005261240030862956129484462138997911749166778137651227155204567351231318365125646989122623354808700558062059815966721245764479665936715527084457917788330442805149972117461323133788040869756976670628511891333943053530709220606506174762572550506636420747578431339550548886096160939989265774621654459030763665938470222072476088128510028812609540410844969052786091044957679934692109302585382173050076100477622854531221291428309434806390484804253634149564506400754021304744130787797878376813771581408933429811714333406135213590605957932035963166141675777066286663732153010252938791299164567305130225371084750060427842990216628852851236515909775613805101287871822940939509694185070226678074082487372463481404533922763746381613461320261469902016265977700708844080997158147351323056160408925995209688864627948110567019988532648386756040026480280907303733010306490950182732254941087705520212750454864755479070910344166972752519047896310585425591726696265096858631245130096992870619660847446031700420135376943436681124243592480663262731550574409173534564250644055760446988557459454293239388443107026183170310658618391714196762368237299025269962311768612151001566895063074642004239791909030142489650927335154365258205105120371809139860330493185652665740939526657548408898145403632286164248052591227453996237370841756267577202725891368225292998988634058472901250129703229940357063420410775107443298283072722995077095876682743732850209918019162072047273426877065786596432523618529910785197010746577979496776630975569770906893705695533867302312579582937167750355282805664046083024399877050225644358524251759565723700393561028153890261362194185401938068969633400599805207970738606670375172149226561828516095258053279369942422100041934821151394060905346179848974802121454288615371122674766162184494091200478573115562873064121250351835946260051311324900921262162102283670800982255642676320878037408545164848138488193901397892968215482957082907028412082547994634566091458317523315380476532602869592038688922257454793829253990713458152707324524905610714267729499274838758636875567007818572819153599189399381605465026373370688326055798042307675109240891576631586315274263598685284067583600713663259728573230544361257451756848515597167689524230442620013463834354040926207920510123283616241915080953453621991835192728934159135062014424308949830734817578542834306340579838932659421724096135417302827201467312115633068598921222966868376683114330686491401813181048907717195599654258600661238791818081400699259883583177400229965727939319341126974832579278073930391751163656507220134675365143767860440344960772872829531437177281552240567211996247721639322954004254027501944617482582233799223819761055489289993802309996672897154448750552199226796855889932946282814799671687619324541095815098616330628387898822368258959919780839384530773241388360787931498778913073295969966507260291347162669139428667824365941761527262904414023347166941219314042092557413684235903932259126708660188199395689908942358276360604692207060682049417211739379144304187514471299181066246474250199154618686166526758415276365516820247967503602881586514747297377326029341124997529288794774867452071820030724251195391271525743405050290258373011372460021493532747756741276871195347070169861310676638070838659970628055185211349921213067383424081520046626332257451451165353461696330089838409517999755486991119505780702859527324075578863988310946406159558578597064004175803373056235877422200882948641129306675634068021243334180391570974574055640954401462314747900862297095052070809901731362902854388765223160619448167565087644771227814483898890528985959578357940922338665004328482438082993509665224517288441219379098971687250777855808391809714735764361047115518932317524170722909354393980195731143499496060426469096614754968211887416204502197012751494404968293906251765993723157170203557621257180154685252570392902459126130311435465055858584189570557312248917324498854078366943228261161314002607712956982388419509935732748488548671361814752091415177505088735236696730851388425088594255400401401487518312883872703044228914891163764957895783491863028349765943683342516207162698412142358011278499631189293022414232008879713982364689127373067366792613056031161250126896768520687080162671780911028110485063855389799121948017856496923576259004989548870295641601793587443237170070093409458025559290510143651222162955035959156558976689591367998097767441039698894471864098352817048540171755523620878208279767600273263926359796215005103632146371074538378581200600978200885013949879579735141492428380249139417012975168548250131305704610299244383690421274089909009043630817244726696928295067303294214788933716796429477599820320311897256655856515979799526396456017260803150369875884123977157385010899112249258473569064307099027972069448522257018252156775441786383576587900979831349491853154309438085110438736194343665835603456614764292719521040162701389526554282737289380989235959212956956589181666845034449650356272674976012540432674606879809638083217366677602929580643825231458845149683808844675091348580744504455421745598725403392174846443114928138211638789084863133133154303305517477216754218052930380309154145056391849966548770614449992421189006404513874124451574513233893793061295150329473120386248832113493082055572176585250865687805568957945593399377477055893267590768101351704491704465438214340703695241587193936728337073303608775629494252167397822596757773760367184992029994382014280706088510812732778261181264242023276911477292315648509033893140465423853790241664305369252691047984280464870676813726356004974157630388238401939250746514844312869903625393888208192568569787267392627030757946471529599937229537323034500482062238095838054698868161033069007561473639490332178800490531940320067956555910743457726678836031467727017382286142443913892698789771328337985318974488562282251540701043220556791685131538506721250347847887529023175181930717379927144704339293166503457661145227702344291227357876491253564672648831417642292896724141451482803511118545285149407402248050479195336818107665682281885592695337089123522454593275640234776253936721990406110748148598543154727052001155553723837076533576054709197485383856410810613807504440444065292800661949616541949740563652393617393553871882752501299036035462723834409884361716990283905476870857261969598197137306119466752388851338234379455867794992389709094351047709200280523351726717655813624474452844054037487426679573764642761217382659384782560557265251610823212389544754515230724568491296605366530746408260865050338206702491695271707603751430689802332513885272349352097141876723121158522100540282493843516866109191122391458683238710782609867686756662879692011932548854559179953257914626212069998041783649238543490531331190582937452225542124914130985523275596855129575432393614182132837429026299608407241928409988140115624329541736497385749367246444557512152877209853706481992129794865791146914434683853382657457348306208682566721700875296212404647489551735605040393057646708065183238201850350225040547796860532665119252116445314705600264470717219457651782964113901420829177215051266629519606659415024222165432330030230873252880773530805206625939680879396600557828610177815975797921161476545329695842900023090735896522990350910177360093976940894794609109584483017825496002413321850269275935424824039303006603322560823434244588205402070383995903750399667967913552167807269380955081755612449933386345665578073498566311346752354961036081850158122172221887179520550448281377346550616193223182337488547567054930663237461348382067313159033884768701276309764646500264091968928990913581301810397164209471506137007531052157036035987602832992810082537999052245359783695230350288693367956189554253496337505004937884939155830787361187922230922050808148946457740271586722355640394272712629157960866026800764036580388532216191323949071824286324731091866789035601948322185565985347044327280631881266508524579865289848754104705340509545455417666759959969852180194289407708246897530396960126878500931461672662215026825509642640298163620222342873457308718878625292059105349454491396589700751996961932743871752019733916170300006532256382772594692341052688626111064496588598828805319148745026370749424684283797240425672936289501712680969526341580116521974838556630213029724543840987995745321329301940690009719944842947235192096522652813956591703175624178592329568346377293186572465576802929537075685105300499366275589203769774883801112506165842088710694113435340652422376960533664010218225051676533545645186167635313207024163187935345883345411272278165648350735741537441880871914924405337190933427603695657472331722692387495246170827366496652842566541884854320989402768885993885308224158359307049141725811137809710213023867235994639308596537356252910239748145453844276208556902779160689529680831140528072566587620161657788672953964500094321523732299310377770682641246430721932911144951731906837214307110928955553998035989003189149177229265409787336169097686299181186895583056248866630514881203022374083067713243521294592574806855197036237170209047873406515225581870886689263955109240599826705280871034958850080663244414838221137951242394325288590372803478321550480916350754986708109728802174850375141605715507787004812918625651261675772176517077177159657179388566281674433669829946821824410880960066106876888243412982491151663871373456643765022904404098546162451139499162764666224178361903121626006149603407426885887928438761666132069998324048398438676185965941543761257322030503156038389509321596715903610130139253916446425374107021189646297802153880728032004893877800031461334755694000655317188025997416411292328763057223160375927252665988473591032021689842733895046198421812843321485371874310138308339465045234637769713393804629151161488094971251769414386007626045519389937019228645752779000058855307542785303204290015974655594328546210676035540149790832524326682371577169564453492741139717279285112147249520075117401474911066964736327837014716286551371892430548848045661123394384000346080387010881994852703509099399883988555471277869253309652453854111217519521643384318079711169909632076117008534789612987499476383899834112794928240907920975825232093559593080093673068613910221910749144458858996051214285611086486239226716126470416222378627299188008944333547487102266100803905462951963536338808997126631053240644113600040576342553584142680152668631973253458713196832265617516000472344119653112698250285437905128441616732653214384997014208179330865163988435988371569617605877112280243092576770596178339428150709464831091277379968269573933067900241373715764987407266157976698124735853606875581311135166764835507318972778635934026360651222943394815765355584930211251074522085679681454821151692323853735345351545882102612884016416743964836536902420648088040433440715788780576272553144815979788010126596502708037379411847445465444708496696426979968578439782799892844325071747826608706950920765675953750724886623642856654071188493689670574086112833335471860327980342596084411160169327566139611725571659474276597007797173297929350527062267579642706116716216209707126087096603253992001790848645607554641548816643607912404985867059420985664579044819342798093398591083152259183928300957625392048885010968585217546205157727871088701471359275301969477892174087293542973266489361443316212997913106724343458770064870952288986293702817214162393466836842430514243187346119014457911241109870968616638249094353589570579109807569214558073418191120523053274916178288806023742224146841428959346286878816873814725453755196580278107392086948535083705758500904618969799734480091756329660933381643758366115407839279882804036485878744241850460208065287730611215686621377426528772568301361190827678202613346656392615389327018177715893591302511612638374796507351010150812963498867925247935984346397402070127804573123547596614099501840352746838753534277467204101487278186395387945275689480500285704195839547785691310486485858834527383376290357814030298936831772604563545036388170472650209796360181413576836745908776085200659663551660564891365893918094700923987755857672551552954222661829131482788569590713063871740381113060179632402236667935003464339458976488646400437941756074143226819321098762886080250150071470431179160213646416635915057819299466599561081009361772132861672842728485200773844725874376582076412578817902777629851061019027777840790741763970355299687583885348125402340880079240266774297762798574292789002105299263217558734918413384751987719670372985080685561194805079414164358059433814021513521525984394729829021524996510876725128313169074801286005010346895981550935996848666076399682629309128268655518701016747792986763080667513455978692567661097086122826823421204025824799141847503293719487482551778124853592159563734142061719194032795392600398236369405634047938146010538912523957568194359970884650879196030484162145241118000968470460649946066722114331313326515203959784870847731398641410844771911305604859855085111132588727752340477400296820866843542201032680045978981871905425752536661398999433823531362118976164848922089771305841214719654250288149009056259973061556402379650959692618025537470607711927967759628129307742050264732314289217106341092700089427028820623066402003727581765476860159576047712311587498451457063767669865953064909550168332243337581244776890178153358481414948587143114992247348798078499012368930081821555487132369598609171431414654833882572682131398834505905626911050436246892405603443478994838957757599392233701893545629849793305431546100810689242419799886184836550590350213770553081118135222032857018009667950038465293959127559996429239302528751463144477797845203652711805935308533253426032515450877437246723140896301720161654949937177601325410727089116914169854662588807323765736046553970355525179557460960103788009129512538432518615869508743486008351771135956319357444262108927099520039514171188859250081318975133036398321339778956526996754437054691686689113859197459452043139472364839365630359338439533927520473107114064368266495972597826842867529074378793078167430574818787290888857392365075922225892903988703784637720478459562136709603830561864264315359959225170670272071409691636509850983174867050764519055317370562195275810369907506389184077578147382007142561918569614726839319901200464600688031377164624706367602906172852305216274293375458627812904046809764159225085926276584766533305921711865527446733492059259107279889519585126016469491340351979949552664185420096854599790379631535942631173332790648940672377808184086720490196791676575667580679868353371124493504176169184170250708656140721981570663589428527986894747048616654121439491816170975522837320946865213762412112424653316830593519039390109688144281308992787319692685117927218189240411879160685997879279535573942703451599515081389618593923352985943775998172054960465941254193237311012639665397167788473632935766806514672180270722219485353586125418218070028302049325049459773154709772430684292694774078924585330983115534844146331917994798935399370894272261029614895860784604861399740984978010488118419128609423149870872090368078201878299853337323283964990896980309862753420501581058358580330479746421446870711149279619186730308776892651499872347383088835058931514946886615964473549368339323925030929438308301460765983578260929452752308590845863890281794164250945233007540968921686070894882354219934306161734668047630820603040217681070630462775473603495971812006417110172967780307036948475272416774385203737708709980640637344507514126344667320259582106422952766663532217498898830145596462318320434030758171658869209714345185989688878237294401019281324541572840948281074557271306208997722069877613655817082084361977190216478041932118311328789182238578184045165722979661404908513881316589378235812825156503621428132343969572844814575495448354839616215612162457190241019203687001583475236524225574350291871370338799500353405274136159612967664261370217900956494443331321239908835059167403773000763003670426854777859121338791050281673970900517973169377149775320779783663991842080315360803079146311949609153799771843500777583990166135532391928781183087781742388828604546541318858441582275506884548475790026086658802467345029489639818491960229548938861907297127370362004666467330823672514869781098177644445651800650191294519684971273044114302254427657343062914335346085427975824509391704568924379850033612815356271726786371080387308457513633311622212583029041920395014080466911586513047394188505272033785601771359987567539360422385469047300570397718995938930682320836977866931934678294705502118521135061323919581020816158960005891934526076683959998890055386728924147288665222622118504895412954433278324311848822685189217150828680350861302056882208443746264292851131161469179401501133880210093349156076397576504872220930824643313954182422512663629415956278499392166600642428686569201181289136056668561025573475305899916622662418629657842730684052353943254793356839390014400272024535072613066418713694248852564062282548512784831558574185877141860677343366905675655705724373106267714225029178368578409165703442583321520269279746502810844347622436035244297084384847769886315637652781224478736536430933916006392628112170608404570288867091282526965169163962669067130405296120816224403625151048845990453960304273263309225358632988607032152321687920013180044886944368123031676278928551055015115405232238155576949800601544283253519277681837351623257580752974137770300823254560788405646232597399614703070841523493610461076189414420683201615437914249772394531442770395998262826870188037724965898668462901416853107360716773733229555110459357202937793012904880287820399032939088561216871117948596619448904823992489011349333987461892581550330961005756186432193672840370092542341094969943396337988117614060491900158497385145658216308060521234979284352330852094490696479325213941853185090880403098972912313355008921581316083372952220204884306105083031674545608093552130067674585969169792386141381889324861293366302366863841989087203940659432669759272481834922753165197398496208188821080900875706876257214610982151522647220021072769398177958440500443644881285734343025871492240746851071608298965658995928829777444176266047702296095150272862306163812171845208254226172161418941431620056725038649270447433033729516215156584761903609351261162935186049875106292152232087066004861619286894539032499475267008652915974437052273518130597716866920553170144409035204602665974639690797500044610370628114006863694038585709825440983662676699692479342656982110445156947222087659969185831589126961217114452549965909039964383325587648209180006471091811950352341202094713943854157371032987280044946401695189689722074570692802053748229217878320945561181521974522099017296688110572793967417098863135622176458187657055111517377681504341028298955638033252081214099354731535608024945151566750637310590979427562627023453957777369039764691364610423143870199611310766865404911249234339328637550418471599350389400516463921458600914296765140516385068105205443084089112661819869493903441086592322717982712289457869985882598269080047756937996479116362773535215248998411072735644853194853872982430092556765303778900475882063633709146066152988091658924683560083649512046059682196156734313986726416775626768189691399812112770163535268776031399337526957023457316396336505886601947990949817885255126652064150739570276554457352754078126862857484824490870454189480438831421726029340210200814002781561773834943959351822480754695239859051286028401473814590128386390626582407924748755387511250225702550921309709294928486050392995392714136516144494569633438725344129407284801106004532889438973069711687978096811267541679936976614357172284280441282161453197729220807820036174437820822289671575895783352859945173887456478156854958783104530721872540948920668571306955335343979474615604401033363623747341117756401806103329079276111417579656596068858915120012120869910952834916720945593892052963616556888718720776384027184410367674481407024589611998186663736041341191963680805643851645943633435716567035603113929738395032627560979433588072672804549559153288020044310988203660252186809262944932958688148944301628870032593202837755695260578556033158573858747631986536155372433953609360356008065349002956989672434999563752022653806739621831917204462496887386453340484038673272333843596329676979088865323893885557599577493744796069610428763049111475393698490324271367224298288001506208903994854370748548032653917811833170205958558056112726231887915443312468808449634658418683636144412735663161539667813567436045403191312832664510119581051350537509866358107353643877913954451380267806034946379598791580539024774532932341973578274611639170061794431904923848070901868787981731917399906424530290390087179862072510644474615461686758387944790108196508720713190784877996119259225128396824401697156642278075956186105046872863735611422255621985075106678534613880687823510708414437661112929267426522201875915321349116611914524669444383685625544904473116112175223377285468742828283478204179167516987016595598815092888010091229536247218479159184436904669735781764650496789420981556656339791926384231446288588897688714686555960148932130991129239205721579062461419886393116285227649755624601553844402801325840258246729766276075350308616606356105062598622997244167375632445111889538319365276906174259214581855959449403366787280761846589515097493238555319779393217763446640643389202717752952088874041056853659500456687621158700114033217848095849661469765441370919515010855788296072566248679806775295207592246348722552480653258165873011263027997356279546977294785696303886421330196510768923105807929020521503065539115204402025670549781610683627647706342489750337178523255080110229066197699695032665595452999828775728667923840420316657510080442572665586887955355936865273539103270826645027605025997026017684199882912933745948512182056277223300338606650469744443002464044095243044975450595375624694335330805319220458299283760495335374538534673645965005135325987376253415595463917283070479874073961772369699170376603545633378816796585228575659054405371051591488946436469940014088107318959342854927166207427245497915332543473742264908806323914194014947372290273514335331560819132959623380712380329552085784506391730092182363791725419093970033607660962239715350443809375986880849993507168276414015588948810090940936226635058857780929458799515273772623738834591408885085143365717050209164022247183711652074735674134514032269738299122294297789987959561201889783370770883517989811523495573553690913764068596888414225350571566935652586487396181219748793965200365420968557996844166235488790810230167372513746570970515570313208434077839422831690148212782523671550618401073889166354252308797083751346541944443177805136432090194407971456286444935499343548635731088936935002318938404848540660904370967894948437654798030562616159662480561784631176634244123035584266540302439531945946926432447753497481158981011813097399914252936993286106999812399206380618127005729792760997512512372431198312149676695739861370582045690507373283046775968588472589871814290250609967695952809996237451711702807432835662144836856226396950580371976888289660091914236912512177591423956440019627634518211828158638425695188525062890570145112616599811556424943956491013719901019760821409598770326073915431828702513716956007219866639571507527257312030853395162834047288990377266817957094410149841000027656304860390252391492964188040421816856985246510678190111164490503583250279401381923492868594007891929341641013836825251513281612972918183809842566334526359059532715082822810717617768795825574473334340721933132093644930641698747393054607836833108073693671171152861244400144478463843159807413567336902832290125205071388699981354648884785436610493653264751139474237457143909410490150753985475039096088219938252362959920327685783314535125958323787199443887043748226464894451674152859949751001520470571730378266456190497357998679545630954884679893679818285386281752262617075209667680777100542200628067731757640419934071558034330705741066441273817235568161051301994823760771142143817099939512200716188021475108408146898478553817996997870802436833307957201167278274399543813802797323633957395776961679548689332747523162400532837844122933190703129382337002788115712417789668708694296524199223222833745653480348086878093112556098551968897910888679480629586245714650063768740330105316523626517742511260894728908416661361127599862832524066586062323711670356022008834627197821413504231964655610885854129735820413675217225811959497673137834530884723652734256318028666596750696856216602290518391754348115323178743112734161313765209506758080676014062352866323818997908035637454799252816847696952392308457220688748089472249795668365989813566027431668337683973758184442630086393592030550978730716453364798249589463434676800196076801202339997317098115285759073878569026593321905958925247918725309679825611042867906192626522225522233590239061634573768296501309705346358681828040846324791876360440842118558591298617444311890729990433856471231581413027646538377555819819401388243443131816769420318162332125138144895434791809227390735732648997638445994441887843428884170707834022296148849834701935639587905148282506465585073107212082469940559605035521305067055621338102123235028628989806331894834885848829030694356432301930216185872830149942583045930521369826073659451223962306674587304397713181614550578594635750835838317641993117135943393362852813847587475996969331715745176413872425060600553429078891427419647297637395677257097221755778058518848925195759099863220709846163712459519647419516033960273916294331210251546752181532017368454034492673136778285078489783148388171341651978888432846816876676041102288206632211135518816109179860086307714275787383702822353963091130492640034940460436335555727406134269680980889652285859629766560514484817873451965926921210267015456586969881326055250372266774502266218887170506316326345354709940432533094763560445446892233632043029766819923081602150575389121227077371056604670313513619626278423503770471190813735492629632071334350042086714121543980144800508101255902557545787952283336079774646399426695292228967351015953339952814951411353281194660077244311492018815066597105539115718046893922661760289025379585598337617858467842682693926270525043880345685540276070011981217121545682176229279623573189580425537527985405928580707632896702558221299790970969352337337459615012731505001111935528967368829750880907001841322335421536542660863685962711847551301846827461054316608728816519851521611821044043095383214077200602129872924009452923929839695958455242362941348938712066830613006553021889868551293128263169368910218283005119414923381485357264460687357782646049219941166167553194693971427464939492126350264986703129345794762747158342971019671554159547899504542862522924746174833160735147976520705634351870552814529053393219362609664487842496910928680042969672098327293797146667138003307297813882159402087277033243040274512909124838872948909118467018569699405007149008804027300011599411151353413738150387358219074652577297059426770120171158085662405918258604166945625038739234900939437575308263672334199089668990718998654703573757290793553565422193157059972083349923886811386579782338855389229308788295715828264306138218319660209845843663273842724550918919665098383259742707497495814481776106558004507739875531148671176861230048815902478336526157044897356019599560810290066745154180193643384485194975659670424627604655497037012716696070838614618162151111316468484239248227186490478713567694480114116646631063877161396892287512992546951921581613595412308756348140904501466352342299463632224558371125513512109218262314001937688040795580426818847550975496789555228328418200746675761320630726285020132256821188583341135231840699067251924416239768941680761219576530790523248211982598575872874116959895189969098457728064671337123500738683363839515526340125570176312494779933956964117862648104423354640040934818401685675343691098160057442871540782397178014817921049288483776750197808771967853725876937987294680461517694933538881019880126628437959755681994651049000069758019248737389276896876054908819209786525283894186653398859139753174399664230557106543250397734474220898919011819458855227431251694143005670361654551991297388278920842689448267547725117062705506902161065633134913779756851135314048694479231208705770543667269105404089369207652843551529758509492122358600629461662582005138115651116954432013885666301927771924800589242772052211916880045839967998399795895284347556981564899858568183013085355174283527002669167514146680655185549011101827304973940383403028871067585812759553246335431314510975119634863073628425380617418935248062222496312094976882758292313847129718675553944654644729470592959542385424144235792523036162897073759499109279740520737991088696541998842226857505424957008561490305607282753448446717677102892692163895774087864768856262757054416804247004859610826933613596001714446719576820023202738743533160526351330652438708887555265001407131642849426370224348657194985087462709525331541419128272531564302301888565124903605886325563532289060064307026862910179264736092750256608156074340414977309711790947874425708433105794511344705209154608710089877915453885796546281746483325884003305748055447018787315792658625969394362982378490305694285821948729277633217855643372144192932927925002230040687796898973682720242753181704753034970943567361229822341719742810600177317348725550574364349651038404773519291205997499145417930097325173914451554892641492989641768009022131996641838851427137077279874326526542333918964591922898235329107576339835947557726832611544064933505335724264256449629937100072545518073716364388621366680222907286907853981339640878669855674106741743673332286485936293700310957749702340624802282829963635404192984262851519121897420456299812361072922773566385288726936760260327736731097185936709555961454740892316704616416661252697570898767235395599872938719413842840115180963488692009976025852661747499318971360592419470109498370814042875605021017524377980804619214747189577474997823730729888490842155691228388441460408778167886995245910844672444081084804704203725998991681760770601651250549178872392190127696040693256952327635516945670157588662403902441970345537183441807366860646497327175778945847657322080634918753552318441599302524835079216612268430678082780832126201382026935807459692168297529995945659369855695433681890321833635020980760663069580035025818701424460502393514118687057288917208755223022811240435865779059150934581824518819285669063677517892833734709997503352969829807475187409835786638979476267758542899123607493900882597976898664993306934321484346751429682478384872260004519949923582797964710294268132422302240452628369552467135816500078332813179392823595282318627058100408928553465723654389656276381101445089648948901280439594219850240584683116875909055457735555018917193737349115042465926250481718151343157748668730521760255293637029513539576273544150283244986586536398304146071922197559540762568047842061079941199034911663964447449091359404559338507695240491528420119817335751338778170485003760461093506194150109894485106415888605248131873470799517551598876343659095797118236076342190409910886966943719771636517971799315508349141577992025323503493257057306322064681334353397339443252927443270537287985559354165490640231715042137670985210323785871104798578129939441588356755769150754853945003188645476090144030413954822482014588586502021749960441573239902712936013909190902716011848219180884997572166245134356360848484778051016940468263855961909921579464929116205550312849969959738413323419461529405590633932862940153142761878490560346785246056339976018651359189558547250010953318938423846699123836914860267154023714079377646167377007383516850376913274458702146030687401854514068843972265895918833374405133152600247684654226826072686840716847224287656516722381796184117346139969924130029260663510459663279490323483065405403096939618903087667386029385088639328085701877864755085484492760706190371881434653111440267487915184289244729233871698222603430640708280768906597539019598882002979525000179939034000146729492128113738090732091180495381271877323633089072140946311764581264046652092317153891973297928204399509269923554471480877486763792443745439543284860398770670950483818621733755800666964841195816849817267211503472141832030440126719043352727502686986328410320059465913886753491789728086662193390833585848983084701043230628288286150694187692470446048665540492833508156436048301692271219837960231092583313906054434172156137368151679119536023760373913577302243637211289489096192981600348704024489975951633326487042517529971396848694085467457613816176400466288653737978814014031406406077185961862623327887648518734613185448001339217922755498767154639066024273591608457303936696568829155264346010756222721461831222475214874073109085337970485615346981412137972435342256981963422172739342125337679909776055910689003381480104113445271521073288781288248603082927110661064994969693105202365976912096267222409654941582813000075591860542856075364546377412589223959159408323194939626080607484252434337877067791109473485185409668384019263383846249442817622963034405598796794863026948331269095897561028619759656656357177524086868943097496185582703024366393805865931684461095280591688401902596962977831265428939413920230195612534986232079643230807814484385920698046612167294904885924806386024620210453506766320063378810391403482048907158561470380653052733000608429250455510320239298711404204050910281726850817813194827102526262427803910240296664481750508938516144736894212693611137418763554513384716551284846666263275616362766057437389552821933820357214321963481873202061963931906387870675657359059070128033895622202895979397076493021349246257441641811507775811218912368189447322500124533417691061699357627649087145411841374593682773320367239574265558808830998576141658187102232823740287222301265258539047289302612109344776593724368229282055328871350255685914935688044482916830537078593648425979707802093121732977328852084492627562329560582833639782453665588021392395034074478706729591350782237176692828909847055855694085538212376404122325758876718805850070658895151707929121128231289100253712728030460422701831394518287847683223632924893260410105570332302650253311841455177242036602793529518140350044779609813199043999792078483356358133239389799872584039923064017174366309119509500355262716706257891220408942416247039347920681803376907631718097285889574920171269429868784370460875493473068260166777778722701364219404201930733384449733825599525211388710347872388669908930522502946349230749603582906555325456917534608437697042312547569782193381591042613943639974678012345432271089432013629840652368840426085060406650701985521917641174471778903184734412199462592840145103179067180245416881103972916668294981418632734187168815781972027832793052580724907978218383524005666399113180754134084688908684224413977511713912463489167230503512027689345015982904803176802359021823733969979710122843347734789119080145735422814561630417876935645349171468254084756980452212987079413566859690954514742370521769977759424590733284104065400733044102144584104845259658893198817003607362554096466115938186894813415483632187383026356600296514677567255247639735552665833286649674064507067196808130542733340537388634296553520666928650241777202108534767515444057543458619901683955807945846303269002166344808427954235782850551064709624403762723480371439474191176083234729233143313777830757752843678316852746523755231018264001217342050941348028721750246948665975696848116866333208972690176279609148988272364979785355950040491763764462185566785851144863710479747353798075159083443188466361287832215113588550446735633996725497849337308149539675928631085188190581278333169219415257296394096201031300431419269532689479824987509054106971691096250224016797942323757357483996544739064984736964403061157033787827880676512873033211001867442492391295632917500322675443176153964869852465808629106571457564603303843297396379270437263531261908026104837671822365707747363791968668207228181235529731503985395665519915617849715495688307956512537505723167321977298741516693162196039854746809120722752522531359138611449621658351915037959863136699580646801019257270040629774549463394247075578557358961950590032910635239366315564227628397734344319807139169325104879123105727131861618165457149865870635615307217709608208968140786775961894010850330625811073987899943335145585275099722472462730809646723682456481451550939866801285925678435492941187006281252336293170511971421722488749467554400645394413361847026930900365671851226065438548301797765400877552601525643868170739401043565312618078472800935169900076745223603319274172819801807214563139987598794769376571874171317936675985601104795295345571605988027577099079077697977106937471840148333227557003819601096659608866290113812652154927140486347227675680534476756382835928774317518493308448979733353759352791169777643665006068078068923495316353708982631503549431961980094599067934378855032882532464017843152779249764551216608592535869859775324279165255485746324538639468269547275304386858446615629866209473111142515544046186825310452578351117412605910366198076416115601673844294427893582671362762067489775618196457436875823669499983658396969504225134258830186474343494728162827756550589849601910154218271276953732605922177943042666840576099000174729391460773775837045798824794048373596298871641990891136791304975427327545650320682147122256329105199374362526371981973173817724468826774243380458090921925611319353587345343315095797566807409429265903323405240311439693591390473811146393769768829875588956720465477343672303555276933476510732377306618820187014308114651009955949121922266494748350651782309495440395197910641522927910114613044520657984644529086544083530844432036963993988069712357099724412138299328701145548454266378842479035475806316310392760715051231678502334964599612060657289337535519623359990201585357608279513335194777452474963099428918219363346454536417604116427408722064559785264212416449637187248513661405760527003944278574541287613886793362741137468933160283750794995643764004113907390395095542733131298645904500589080360004878028018645012419628926641237268800167479252308898851171042356270553922415540426942909811197163220283790461003762212169595210766163107766150745928736570578435081334194838736414433097399952430760931796245958745129371225389167023926913600813502965022437035229863929102015855672885668919925157596261629684170056071609552587015232668967556339024012090799249612653230750879610742786036024889430579049159044039495214439186325097784341023948359756552758555971074595431628724429294903436062082416503923687954644578075542360396716736354434122782371460109790581128818333846604385175956002821233229832362773748651894025407523317559933291324327960441116012520111902432447668740280768543450570001976627104617764437342380915663275251790517643601783706130654858093734200211569964799850052016480595528630488982093139135317780869714465474067183430767514138729373977763012663692558526384123083220284132040257861703510751410254656753722488948149505241082517299939301473065118403740402757707329101724405642897367146898768725799777926045532314750405250654316897837205985703375452696117812570221799439716232109244491346281370130540065892409340725719126698564048008489697681303470053345762023053949212927640000461591520554900187902237460836863068208282488585592544322364360807162210909952889360777649077863302824287922223056864749171225087203060406083367743686815289757907650757812759629681035076934589586098743648353478805028639219498611434504906931332937229723123538042853204634502500699318626203858130392925051887874508496807745462104509147724000673588751323264030977320291298791050976114194816422183025199439403545776324686762480795081199884198654992591050680086653762696415668823301776929736532750321364506490188808482765487844484528322902596997031153581790622718299406800219412131545948325024460897451110267330595147678307094353905346474137719643352974319646750865536434302793478229374318102024118402557820301534463284850601988486345438904957607535515016175689362157526074112926542337988537258025659351666663486113791684159033149680655883641869725548295293602296205046185709503193906375231795564917808905888082219286259141934936534844685395240824172552548167248424261888995083996608822293161460837487985102174596706076344403782284850822938951350735452198389624405834498682918022996037556819491574448650419380563851364347831254167013976766891490701540480473062973690614103260163018345510636126650792306224082068468330836127292754568822014440502714151653003617089393758327589998476762081526274778627119376240541930250551999228217072430834485501568918987134277377785023801071327858653191482803860705105074240866502770089551526419913383257433105747571411564694923464306793550753653837853482673238596819854766387010598611683813225441593374853096887494665348999201891428475488625620084849852865843242853909909499445732562328682663874126546526985481321610277478505725059804245651864486043382869128011967924997896915955666835326560428776034610082503097429566586119546714554326903884301003176527502006850744949687768188722378276927104237473455060738784754477951862443642503520375159614685648266796371059495722650431874142590765972083333565161999488693615024844754482939931216588870729858165102147710623854833861357123117760762874894775003388720962506962854049245229820074492785105034390751518352692530877663359452573051064796162966621325139685536733538951512932328277422958859694428451511815952256765119030785902937597534434556037994867044539350807707932672787767798014097434777024791095355146088207332062102565975223183409421329592664856805664612262112859200011195149615621815376239562724176444312598176096026672167410691562342611548079878628304504672503303571756725760124537937177893402360504505146238601641641130620837677747139868798763207268824114363266132453160670110023273822185845046521521330332973415503382795006350379755579512493631685262746694946250564871898376386462336462143715379374364443034154917795009866510791815805102044500003777072674690034563862597633082418513355037536662598742547021838084851699586352749381127499046132807469500229824715347382169902128542851132684654453015765699544327374167428218053614219043075967782862197371608758118051094771100664179788812007712427605321863979968365760525746459189547272534976256703697395261795932891118567420043731021978876770090937799695486394527742692709503421218545649200620293745471376471424631259779143507286339647720611355977322654879591131221483458374168634173413682134513342394191050165010370481887988240368311524252939906917532186162241488083688299279345854025642031832047503129657681452439919172174449529473144825679723901574923447970297696820565294676346072951404632459625228884389702526945794236044414198970849262520298763289779634964245167955986079145362954537255685778296692359050669284923335214667641962880284999182572671418893525287109893627886206520041170098795281501139741108958348232884419575310190920096208968909346290813932656223289776420105332904465143700675374195288760166992516038398099787703404072321092550624056097877674601729121378469699457053936013212049037565119044377518106325443091021053051045683972870738051426431006816846042622565707650910097551474328547292047565277895935902325197356308551554223495497309477471287756987335364817045085109052451359955733848545481475531154740628724224673167683673507329445684788407436005105885869532112038683570930602950538974649785078493617177706810315986023604812830604539381099265235855488356569685438201379368571457065118818246781231534560612689530251504138669355371062195898407953949279351152162463932062557093231303850039657100015918736541944025899610049542157961687287237299386869689090405220876668665492572344496213297495607275611650557649260549653175369655792656150749964676370853745103394682117441404932494562002300592306188598876941083807000225001819737063938302009788778601299377801451538659163188316571528298229030653468328390695797167295177768625466208564673736575604819606555830948109399281184537683493923741075363119957282501526044693201803467562281418634443002799925769576378494637023797000590426787133668115086094889022335138173777944396501938070143395661881850518652893790708991689246242789722147740442483393836362753696910605482012330928523664449609787334409611455723933012872471652018228856505382377669737751661363932726288925283610406640736634792741219342870565609836668663569553214341322615490621069385905273002199372387450062715516976415719402473610292632996451696517667067665652255406230399640297661941097104516260383699213799372940649369712027067605744486182176645498542973516624964251838827054169556419072761516621321411404642862683340302536707419158571075056067139762056018576847249236578981495781751349897302579811859991376973990128255019222429632989086286749230247837123921506197154035320120678294440969544757869303276297785715352985926272309981828820018468881003781095598493094504672392647636155938554575308706300888596145163483248269488727241553996650557163440082232057633038641170231376230520465339097353753894136773344623474791768085621560655825721300549095010104223400770661761403010743044545257219930197444622591778833301789872842761965589224998772523797072593603174254990061569505038225838100792500613526610061309653235695688327046633079572052752431445969086799885915358193133274908949656161169850552277176057923567292623821877040108629358213575110730263615381149104486598336536712857938921663254222999136078046043135444690878578790211614262194224136222815187895855723410418041068697737121923849643888271489324937277704719553594344858028643810275417815681069379937756466738154842095372821942741306876725825044244114977059416046326597716349342965632881742911856671520687741182930472487855874186374734507676784147993776954571844461105374521438921880239577159639611068614372019362747823505486400135984428301528378425936097113856633013096047198292310177444060259045686021181997896342057955149014792781227075532540202465900115945330080448089457654056227623804836344394591081948758651695491873779230954401142710722739556405444417294362434509880970809043055930959525163962714107495070028263894733244870673711569646510010791759412681081799115434717108405269705476408134045436941951096939917003943918130247042080539944221069496376921873901804997951384518570270020228947800102724995764607161857900910431800852241868517391542672327388304634925034128566243619637326471391027416819538024101237197464823027404367186113783687400327227024339725777059526890549789677070914751777981212722452451046902330589757777309998497287527542431584860648620173732109393363753982078719989867698778656603572678107753657647915094099402632926572998692410133608222024307872533487768618565636132055316654068668732078186871740990160401333003555413016199891037909304761270696293866916292645034220714360508315433674100916997154273741511909830713757044992298589682973648402797684611474316456982521992717469828950188702743708616618271279557535430769649901149002908648754194843840367625192422869545783584658786358205487553526670926468984889545995030946092124800934433129381525077825191129478074860242041507319948021134799892755396889658186125178453236168394070855015429089359919595735459012725362267072169261841399217162920657773920418627703209607459922533110389645879138867729420438476690281302953786055208584755059531743493751431965152802292930134534612083049981243095964492762584527477144127641516720862040295075220634164636981554318340607573858979318636954266408523370810338601362185184785674451032711923325191907585098805968646186015586385094894358483414590020378686000159046552944609726900982281584300567683505676343020160582554967347064334387716789445850957123827648700211599257962452397158285860435100944347600441042078098142510315203766474804862365089875842303756799369979170351098201446180640024797857964663293433060466923445473861515804937629913366564219899686892820669745793823918394792913451279628448769547502901341663722168970392487096418837612439882481594815415719361963736853486450831568954949783486567426692781293322062443435617075591109894991991922224066947945242747246288512618572806242208800581093355568011084913952311702243746862864166051292655554804810574788508407724324244984363651303923920674575316675627809298042207059102109139559465440958775118173316533330626512141725990318553429249502610211374641685574589668903966505113376106896796680601430182942985831321632841478374900465629069393940175265590268010581338828010114341971801873443723965567702015551005103140668795863153950500816443860124613898283807958862158029330873308848831704483229100113529822385426443708577123542304510021554715560747639607464009107555212480990754738064390384382309079392439718061595073384582387816937474712703978318588944977132656222447415950481844925063549758724288972805929215848816904107130216422411626356642024835470254295186851745803680531454465061413723618300043499031158538769059052227513126427674191326940147107582176776511967089073191254011863370892383111761334270141556385553870312539792254278910016321557108594664953557068385588501598833761718011586865636565489273365171546800982680531946689204688651054561427875349829834210588420047623215080274154173657317163092286335924512090017547324781150743168979346160578824384165024651714025467293179998505245529037768555003609111231133933768322870417018277119812948285303551704141462947476502415661596418927137505005747077964975446632847865198977432781712801233133882947935463437132396942098880689158042776472580982008457224656487586444207298312836171773162811576145381096951570734369577941200064614224815888464292462739030602637936405276049195361790430476708625464299347201348300485083082687855695208919470798271915293149430940899625642230514329891968951258410154539828997261988452714891312341799691617443340122360658074226485129013791434980848662320118644171389557262587037209366921709894384133963527201943444301983525980413932169882348463304832015115420635236736945691410657647321395025544361702818433073180505899765649506821407231992861042264761124341625049028548939953254688946491054760917874741044748278494705501577891650638272012178289017377395185991577506853432271565307974310776756093049235682070965813776477006384696171532558130295789424007748075585184070043606409104292984375798802869678882549271079431786336043028650372568255265912016505606699864715198538519660308811105348071466457831457722243488211362518344112877557895886852748183988857101868273352156861234981554010608462435848255673589647293436682461532518779908647715445334533829759446920705715250107401806027035751712394008373808818775745402979097614008992930021647531814300523026221749131393041422135552815473252183457109206858730401687841737092417238188259877886320145372705546930546285390953294487391778244896753825637697572506501547522749897277529864482503859167678820798366662298520244862339614312122498656062956926271132935034056893238669722322584365311379469794832333104564763441599415376712907341700755544246062707268817395752257000144956616803233444943991241720018707412118628641361394197452722406205373045381211022528910840496909613368588269894852377201690973811028188683060930837995548056468723175310189663379110549105779902090943748301672168043497911939146109411011319163852843671604468797054036709750829867808086631609487291820342236048192418050616124895966776806745602733499185375684171793968062489073066072978159507272577258842552967542299365090777990979531034113946435860534787900524342970043730647853406382532060929546921802202061084049070264628854123206313248760456585796416127276818995042493670635419095204910476359465544741018981451818318632404214864021928098877842669477478644514589029439190822866175512513867223302351058518518565097253696009858214802684253084546488927090811892256129462332648192236693438255463804675311507618776001876082478989343750591376550739221562857074176078189097350135558423532691346486804498960441853678515159454944772834189760906531995838306564270830599198328051945558848095619862370692209144607929760779791573711963461288309385716150195243471809489380668677218911300251203781872428662646103735225160405312293990744900664342373411079849580646828836908655709147428502197861540473785733894716905068680463510973107428837897423585692408385556794236718340457630192623704950025766987854812399904464339050881785202566223978034735468757212631807419042605359846025658459846239102168012184244521151112334671865714599337458211326958767605360196138407257244482316076185632695350492178450409451011647602437415872008845216819469759048125946820750610703242353849727603414615756687553284984058223964462327695648013695898381009768829762645381010994022360882674961476096615019780907223605617974223322840095219721368498059649752831599639846860488291873304264622013072828970703257515632248219601844107801591762311523110107847248995665699936264074750617830850736622511896765865357803745524137758571484581482479248547364253961076470007398639580994722592893308821897654856605937253367936221760639674680497160452846376837054122551122825958723610178909482075216018869793306629641970769826031852241114640258488189357165663406421147208070999398185238829501496404176242745155569985058935183360946446965099512103609327921841369081112668711529272493233494980706877994253987987812221182206628632875914665434424011675174295423085899081693727485780754479426681612641909692055051371101874359362456538046089399332879605397255485345582258335682804575420857403397958349197285255978272244805617958420721779647704925352297134870183586326721846181769783140932381509880986468066693979940383327609307652068452822612687513882514529000898126019194379011280954168450798036639055250733767330668700214134838394238589551916177752952952785281139931569789118705732151222369859525833769499123492272197464286269029859927813786258954517946383678672423926934163916101640054188903016014397862184381756680738846627490187774301962904297777349065705782045760450324623238762916703143135297205208479872910487387009484370664501008230873871414963248170748330819758356796458640340848251146793709721836157261739190234986227078952495577436514752861541541010004340312273948945025073441395831993073302421683781129077022469661882473681519004958126005403758727139705957325582438379978131954558756411571207778767884274503579828061146659337491667732969578356010626201249856978703876441270225115470547093065366916691931828347619797148008938675346019525265482253807752888040717909145356667631971570943264726325259609826806067811872683106100234153900026435393489381731363081903483948120338331077356171091268502423923002403531926089046956539754728379041065387989978663993903910171451595698945799601202069701733044655500620599929444775556517063046813949468122941128819713054348513770615209158271776443967681235594427254777448503249028359670686327595086895900778451795969888725743311163612761092892727077116424005341155232354809547693530321986694565446986845943088388950881061882325820640224755257454880750890957622354582658169992106696938127829103836401633614319181989671559678221438412793807901005745351570801709710871833771862997796564153502924154169620082818559645449413767119314821188869921173423323897997671433943751067463554627948478561538791710867113681155103860115526815591840307392362943802133793843350407312983657887584184503559962476987305369984699069970779320863601939010451765244536395705318213156466331481296090094128597701888819131195391733164397816350433528556621061799358166423490230640514930559967660573819002181724628241146884268805464907576209710478382011110872634412178174286570823426354192236964146831399658720570717302601119625647586216226497234523017603190497956473879291166427061828401752713868159287834276630039122142762871770636777916514780489794301476657960316442830376519485435654899612139818675633314439860341952443752393043379807679428561784052706397242387581588149993027104472798350530091727557048423830009107709545753865812551623147566858705242326288775074552143498239121122580009501840259148639392671039841164659910077211047265495240413135726164236003255319736549039538470197216254023524998164822936889119928175255458796328685300697465325349891656977676501796115380212952290088872218243093206566586800724026878110424785097698377367859507291739506900505723149992668151459408203388990753329879115433517558627532775801203833903616839052661683732152283950213202791787820443591742053980477669276843579568687926733975328912864179761187612450192157657164502442988475915806292891385282121426934050673228877825990022413525724808313882534081843229645307176930985745249578230048865197754526764947870506686029645532298407553334095403240793779333144349831296064722243709909172708598764503914050973062050247652961232255818408025934018162264908603472041930868360710338357604436631100097506014213465967292886170232163831076002063407455009739243526606651577488393858988268388777757729780292088169403118769389153966091068071188742386651732800138364273261051757555159585408292931096482364043990910086491668869298730921797656728845752099739387853616809805109575628402554995270434707692361114790828683089815768238620034053038215617937575916712297512337498443955537232530837357178587970207779382127553858759935031943197815812942156753027278379949524908935354113797721914552634123425622604280163105702168540805220501804954777623738869727415414871109629594953194617692562057564291391573753370002128977888832113412395978386029749642054866237450461547936263032952727974658335139678612160857107736282866516519681047860845322445791284215794427963352677481129415232530592469726316867266815217814267609433481476005950956002350403308258527104445020367722418904322322502345673629527228186359403198874440810026389816395254625188346892744742782305897410124810616481896634248524168711941874179790992597771504832361773398967330897759968487666580646705649820350789063987345748996272903580144953864021699512212971900176008933507533100850079438160213616206787108583309482376565418866779232021004509309432503406658806777116875390549812971234436208586632021812153792995686585927507456799197997906878813052356323108976055313903479836570022082191961912542180463755830195488258076768325783555744127183015562139176260053141081808263008913560268843612974215454169249313335438300041102767181761638711884121003078493881389050483542062255704933598594338694580314957641996616466472880581685462688196574665594393336585592483413040904699891543364367222089452983766882193617873927118316367423664867462466550680996903793765929014377581590432533745431791750524880991559493602145569175592682368942971062261576816707484697296012226283857755112890045478841271231539382348858982158186806566765370557062860638124778156834084190888880665690167294885316789080217394941644235210453483105791687355976486413452509453910590897692905884557377779567582173310871047392689772603435700214709844794217607045781280617534518004073079486373894657836732576022363054890629152862513110898849179760928359567920590464206068604770110053544331087598984538389408488278690152702743824438072515893318183048433397754658346349114394293901631298690395092197747754749167806306875664749781340031106872587219649526241432716019963464465325534433217431527647855640047518252476452032350871298996098847256190518287821079252135832216391288076207153418002532839430300688651943222414164323769440824612205630404932377074989169750096270049961569568943746730989413878974078532243581417825504030085919931366055469784932035606388622729583649495412731601486501116438492959444190402064176194098029970598093406542883192330886469130009723661576206253225727989187497939578521151977584320235133142392638212565821261174339310655512631841040411339265431068757323989143338894489200644293596089117555129510575171462170798650727561582963717556807210052761684780485692871770804278386049080676597763588209875526477490924759628149039699801571782300698573073889973262544268751072980805502934938029269968264900607093017288158730246454425754720060622756354398971081968086782321269364931904093262689209770017987361760616278647869311352975299716687627662642700999773167741387812029450753860554190809582170102680492351965503273469142181269549704064169262654094350918946905389865995835291654185324260280191484474499302045043424080438797227288828212116297570020329984061494106813468390358884551699195807420483327051536038246121431815570669223966594912131888841673095886773438807874635711014379634835086538363054671860662828666378961938854042101227159195341035253372511175212986843465639618574404253917598292462563211675471607662163660978942853144581853176736851971169684749395794546960344483297647284698429436643864454277902375610260672428695216096433188840849781289547599306030311885459819126861072342861818278616428211664924587273176062876388848234212504791141634869203297778195650176045305178760878475205714512124569834421198616045485194506042594353548109964158818082409155383796403047824599412668125503941065570226861378745617667379683217972731088535780728981887420914953499972868796989715969598634437811837821596164131434540811303826926517734257423521828446776710360395597681755116093032918145357162637000136393191723684322335955490214772832384082665437132915691989761673993162232225677624421119884675922072798966025839304406230980429303900459180687366284318551967269919839622300369656039831211452161569533470968225652153086967489189215502748102642257398810718019691290383522552525426102073758079170197912015576715890039765013482229200826361192997723963024224049113808021152653048383614298281418629145713434516117571633227732378894743358857282769051210035668488835858955901199137419444564031607058395153083515457229189551261387297820949029018339127065889382418755894695179097487540899674501258529431160614102210330374717593514716671293560316250329017622241075771994777056825940975897606483371456720888655774472752843393412920897593268141636771742909877336392458746981033070584621649356878116823194439393274498402158005901536814372067109910067140361768642223782246057506094367305522238074742438937561800786005279089681305594989831765819531578174625178958716914778450416383134192253625076023062311240148375210933253842358417011963585563955656906696503727295595730439167629932195802868002334544746843696308169951394605424281315289567837429565582697425763915435969484091331483814496018662507051361938713953514568918765961709417723402960751372656932071655576228777853720431621791748050940526953097208508378267841695435315273834445512129657147555308634000028927103330290283049595415489032738606515746160708265426383367366396709755561084361431224849645416870407504693298135694120344391659619745925886327777175610618491556114639303743465961814611300758713357481813182155933830312398488050622797241653589053871251830412648159916228920988778645240942705434149247300729543811999442915700887550887072259842687290081483957009714899451147861566897502380513933702557085206164979383821782966094767924393920518053871798651729434210050708508127889240312373969972684285375246388447778360898519012876975857130328274498356562556313889911683061772715419334673815618911159208601235493803773774802865449881099743991174305261363279816637929507326866753876029527869820023358983873383985754143885817865311026263731360454833591457950837568686165629013520254794143603636005995567566692583383884520404179601102799131419707809167403930382191607728105714977465430933080354817280345681152809650790948343683075510943132609745405186151133077370938944510730697445522129085717666214610652156737659266772547886527260306054069279729734509748499098458466861926847045455500575034767993285704382990925452039778240002746303056102477782344135748564375845476985833539616387900325028225586387302580038182101178791339157017225123883388114435708962108184074028928047253075512516587680341897170945704664328693004934426221894016685964057054196201441640035053391987717965126907420526694312186452323459922131864577875383515987805557315682047908314832084621362572847968106862275095745031465860153392948170011153686900208006083553004757208831842460327957720204732345918751388485050566524098313410810367265178829938476102127126334227403694922496380970254906984257349734238194661145450569802693358198481532998834522914407731004175630848826403762747591141486226447599051955503821814186922517959874222816434122753709463195038009881747214602688321128349756556014385452022520037330109197945518326893510938429500706206315118697537029100124897480864763586061975576459148346261642067077048569171870503470827866645911011305365879765423012646085790201489524939527174087608470715240274544108124625017889427883657508839227199844674012325536653327288132774776623034250474563582612321467339582152145450211502482321053167932159500550551384101146112282685300342435688425340880096003880927129532144919172195397460996952229981730461246606456651753438029354595486586911712312184607428577874387558260411584030149406103169290620682398260986145493634663516020416151471967564563338509425634234279469570829415074699615982427069426390235577636939480194909434530454359704785418728409556905758506663577481188267648749773038332822554415073074441666094499983607068180004233193019003627121013422972124504067057420515872466726742100639160670637701072373024640610443303239263373320525412581041892855140769800394440340953840719068618217966227013299598708643902728855837402303473500778023717875833547652783573220804738028039283267372011760152461924977230793470541724135600456329643103084729936349683324009498104660163558529784644675431809050877033382104585996204041743558833251260932052577464143647464999112293209583518029034036242489434490746128074625462238825829639445461694986006902660395515118837692591029866028915385382630168270209444998394078584319431792298200549696032145077972397712689191819191847830758654770863782186272568040949205795460206352629298326904411602619332626618230379638495769670725408237697494556195636346438301652112933288500030661011658063907895926179804466284675091726678296298282650044584682877718916926012055095006066802769704642064524922646153573346940836847417967419846121610937257147873680695419895650190222370687347620600744371761526325013840113370580946291850838611307820784567664071883431303745360261699479289606100698093286145276398215441648651253279024484536656829404527497821264397986294691885772088864647588064575612066083970976575822206739319701698605240481866852705890831909692815332098140610881328137111039562916580245218150621455492851178541821972943060221849420596154319150137798407148436836155113100812735708631624866164697180489353154673838641261316646729981722028193912330369899749449908949157920056538614647889799861618462537783269539675155614003124636972592979728753135634383871011133283697967780778892880049625639639014604937202249228549202891029507532672860799371542688486806764686647556663285183086325891904145545649642097617372127403629069246901879789635281882702303778618641586192746969962605860982604677528692780484813606639462430149134821331442946419983905886592894639365017160192078496434749031923389652893112157770872319819409347536084971829976385170060222361365385813658212980040627870253686623996965871351120936483514518042614008742176201751657212635533453820801958434820606774748366746005561626985660359355738911390561397486756605230272633011335694768477253793833136444636680220079758589350444203454164421667881377180353664031922694763877869497283729635507754315049151852101959612135758738177711815122447396143038135775103932018017913606983967305546703142571456289525733537334334004143613239202354724974855512897646716130841767284025866463111510149583599340624828480384762749933395632707331307507970563366474494542723428677744959605406393565350523937597238231537591224454398561522358881775263536351158653994462384784246682745872614756310748077829709496772742409837883259095693099870022139105990720852737778568046720934071654978214866007721757444577828291474054672851262383724055380699353161125366333423010585365177579231014766965739755920931706142599900999640590173310828012625874825606689304433864746599763023080113230048792748504579012257219695424150982899269352478138380655223375938866730821028488622789831159928569065054887807501053522191464185281902894736292202575763941168986828943091654912797192214625517828337796106168469504001576210879843980596442685309909997095916281256193652807379407235474362615906402594707029989689603223369113129163203104561108148192088053263633308979636191137081979339715012743867150564211229256250738553566863965336349791440455279240637562943268697947085657814660575756554423038553018966025861726235151251806326907328050379616846205756892584453384363872304389338150815454042736923722088357600144215153867972466022686332295028598516519639273722594846914078404921473347175734192212487925397418826257049770267525008023254287868252376426096696458210317062535944007584629688813429729381883333373706031479978057604611189577476353431934324265710073943874746514918508308388219705843609690108056534444758832553979631456735093405633137172263437665201315111945612800495752328421706496371975347504519653857884904674117319809709698746280735584729692967181526669645867336357459394577268255147368593186607667025367842523605683072202634170283788063721222018325386417975662091474058892708768786622135727588028989712629397228478029075618974150059235900005976435881180750037665979202489639464248151110788207225817993458083291588521875255379564794792436068775567440085570520950892254345573284222838002233097128510711834822277156909176871743902650905353292393557459167687447418374996031410554862464659085829920722848252917773177448690881528206547312324813670253524930509480500102348128087655806605958651560489127528463116242410209152445518908178411594798833360250178148563804115286641689844001364023520229281141033375188668076397722125145517828668450076862608283522616991412446978122826739873760432724548814844296813422836799697650049593925060484209223732298955079290023402473950948177661218375361535232513378965520317942815067534220788802369121268767779085646358776628621286923154563426994069379951587793903730915508691869496490514703003861607534952406921549041765428410863822141818598187913444241476736469145284447556797124103350584981012141987303158589696807613198001593871695789709332759505451230320582627630699828384529294201250656681353351891195469180375561693578154263702315446967879417493941415179800395129654000912737452263234834932149787508128360800135187134115586532342086450091285177520786120731905451632152282913038551614563915383981528658984442899314422698023337441325919990893946714607543177456295277008212653375377516755512810189127347863041450187173367398333854391361970747495341879818009977909145981108662434144332784947823854002787310234784564125932069797475666474088414203939606100175552447658524469989237222820346967657651904705531796489621677694987250051107272606925214457366504385367409211342564903351497255353144024681832851884686660963575168807354517746695272774686724781052878063892275509613170065677953622149400738714452087412937300238564640252487655894727789109799237282185637630587046162022951324110391207964711482501909375472141028671398756066024756031649107555555186871491788047478610634434835687989207595983827796468863254673305736308161950637526097690319466578945784219582835938392246846881281383539380628853720932559644149317781133730881803390999574659165435412015363596731856988100063956208708936039926991294099022755916903342725884326815429283014182934432563458101190294412915773017648045560606242190592084046643272670219520192667046925477568235360428270935358685919354829755181225243067235677206518144326894642793402282292514891156798019926878570868302810574628745807750692248265236767188331807362048455011070691664550769642070528453484152736099014271361715173624223954936397249135527279267256332056687578745701617419108336579656930225737076966497606543631464960663433860233321445752629302246855936874783905363622573617291835813915287177472206755314797554025617447420235772807219744656653268073566424050815441372873987581597919172903883497263532741013105264039959952875849253707693743228358334596116055070911789765255894930787922974182906888504532349796902923520590432715960160147757527385243559863232209099978632229635522293394070225810588429957873448121014999913326496479610711733315463747033043834951979472235945926960816556585215046294789760808890157439321065559789928627015723841053354453170248376703630528027139659303446362152810779525197522508094812247904115490479553423302688384687979771807574912495689312587392464605451312839386410025659160357067098150227438401086391666351432468776718562910499786461013755417135236252528449486508844957642734124056761363650830814897036064196549387298632159479284339167333165944011766424916425275424661859607852614414472254992158191661895747344619029613635985314758617912062471639273780502340350703557757370462840166281023491522701272333215286343048311101537632413127520713697116031935010012222551494324293110006733977801484757822875142067902545549329973310371865148533453958468262557030777280501921257768878097844265642501024037464220422133940098993297228178709627184813459823714874515635907292861233045286415714026664659334550334685461975945127108265640559085354679255480777126902858009358872079500084590146368993977920411014254536282862001947362522234034892296261774252680299965307877721810633514923803048832530122142609707663517442269692464984372442068975586556632805925942650096296416581389444993506911231499747556553737291842588080493333385952428299766303119823105388017034425070707568199243286651606754754767402725149282996761251392765830630593310118579045156974521988554061313253898188103426531922352628554777542174759258803316615725284516808147159929498067866069528833796253855837519344464894040486874115902417645463541118875738350246732697181237521185951021903573302248938719637404198380202883844125273025124385133183568105621775249243567423313433375496525433960576146655772316766286060128734595679727449078224232294876584636931700912211376757653202575246492959801601593225310331827509541874657614331674192809746428211522454816196302320092719901893936514796640294721657735984244520527908257770422182104873620950439798770321202592837524271449336316156120908512666179068023321933444428632268765199962901074025570198279958702826727184412285890760910605923809604681707841850652892421663806796562296192102354387244749983015487744802408875391600114596758113066051224888131667314205408678886727971097358216809471466244027798777867698090696598399239470453965967661405485361298494996541303902669031756540503507277467501508463279312517363568730473864794462770015195153017985063310471713786800671516044688787150428230107364489293867739387825743105589975519673190494863221971527624374561801090401193448736092184140872853446618813974647801864392942787809264133489312710708434344227019134681428161848658851946706662265127342617121988433755328659107983350495349839699137273423148637107296649133007676913489899185703005168220729863302913404644311919560106271451465911176438315719337197923102223414240214866485956149338678250227094828775652082155003900266918874535155376321323514447412525538443055849729752885424832450154132010841645557823331848831458180642746494609862299731385412332476250844419877888446646981887871748622127647633499216827000946278282467453161239444254945449414614544427994779533465585847486986358946730561969052190147362249753144921712694721981003042039220967814343120892296744999460156740072022175834297857809832993250257873919138475277570277668664471080068931641747515086494793007820405181389271555755237386120104880544873246302112712274672098988498139601514294653376622639429085135595306882562056501641634973604947293110624300060085250224398713923336147635325817392789790696384010667108261362494898249105402434339524879731010727816450589867085794495347054130320032130972377196209144944549980082014299307167265002105491043124726431025237449051904816877239301009282582473791203438009901003468287785816278621225102714107183269863772982710987908041397802505214465433329265667969647639053911186285651695475038585426552040581779103468579943432906300769064078904223997605012367130290492220659226229297859049826481845356224782847087799746310198413911233825180666815054423920493915119809902654180545563536706125783916435038273782065404313669007589303610007824482938513717035700770922613799974517344015303735542064386938023386840852871780537002887151118894056619427880124232307511271217714301190240013520389009371983494913832072820926566122605777940356771243094474552167226029032077404064672175930579566788322032033821541051747699615007591254119888862509624551267146101994527732129219659604305088238762417350243544613846388786774401787506486810532594460892849617446585818044478529413390798958071131344708146219344999470657779853562106953602715434838196896454347459711097129929673281204046509366238163005138640464798397103868840366048285541607170104649344711941139097154365514607591331748750217967888471302794471141559225790956749561385513548118025038979951225031563882666927197463439145737268353489485647295322826524230802640877318120644675291691116011458411524450816669254132067058093426000451658519187879727296087141761620784177296458478935987983964121492357612295630629411145797205723930930624799000340099710694325909412973495821465032153539276486563158499188412235397073569913102845618277454688117997053285467300028711209566497792984585781590426141295818006447984241654948264239089164896204614342889269635567684005915703885640065320977131745846938199654716626732213413630076857644984598398217477431502371168604300683862892076629212440369190357188149029229605859655693012567692416438154391828561521280502355739213274048699305201392057055738162008648244031184257568545594654480764722901345921645798264592058050996381419609825857066953907880518918132432698888137068257677802993339981039852091959943038853475170717972388020700372775137912937994899027753501434598442051202774104713055854655605972073355300446047029554740181296745765700355129080456457362698514537301590998323899180335068728164372786331419724831365109210179302145674124371721098216423023263352009019409152248835375566092807347525541351683990803424216214389802083463327959994224331169686870098699493520290000715191007566196914550035062755835909449518727625917077393053169167646622647073684678410941785884779690073712299673029050623997269717752032864619413402983406607603398975834401147538181819888831233744661719062638103739536584244563757964697050393900732927157329155611741827809027566181029019605182360571129368455449946915433221435989346893014065077184621711572002787811410901909906307928055521221558766839854195482483400236395091622326126864759034280138412313909454398238306506071135859929268690567814370800318445395375906898840062314262699140645029925505824879442977191074478547960247263639412588054741506305893249850829235239456462645159883357199258837028365228451210573025606023410856890559836017527315366409780254035503713707617336600625442774215857247200586294905180590584625020067214462541319007735666358649526297330751589194391576832609125018019504439507706546727957111943108748742919447246316014699537254277830596743588708795517113189454409728999090403471951839727819140421798302495000364670152406327333595489869434257030560359230516559471382496586471679493114585079653147262251508584878538993900358759120539742319454126491800890201290269351990452382790799272494120123331688596459116209076861473014379222330304074585759899615648069797949978535720034912894322057443544630056145727629608580109344364969782490586171247841923589287966515097912624437521198342600390853656614523557532089205919966042174937372888362158135650594362165420319595417650694080065495898106359033654132855525113124660190818880584916492283573741160198956788765917233842980409911430940352996051896223040913643916287878933562758317802768488934802840473278370696806276920026321064718667532609457509321082236713153485132278402919293488004180461778170977710132311941424469858958797656073587535718493284039419990360506821792417118862988232272228346284742268427922650634740690919178099156034443317818857867090330205519708218427434741310513575456231029770440730733070116359389795192145029655341477576580661098400979904033087498652905851373515384332535976210847132081285549244964432583013585854546556904995508334761128723224434694226510808178902775434120594487035585021358824125920099234350583768310691995243466795326043567011329886043889428865842435948708969751383917345553644582346769628588701603472919602358154426792080137569662871451489673353725223053766884617950938473725538172930937402456970773614525331809791530456912677246059803602742490582804437026489682884478165830781552272937097153897239194489835841252415383697959460105001672505306165993200571410723960787586663433203624194305908895423458631000575977245907450178339416377840190468557586692693978250583130509720431312196307302952850945234322099334281615836930605004331894959578686283108375578736785205981021673897885537390221827561719612315561686573016693173473471838877551737471031049538895619297859275530700945099661143479315314443131679673458953036039842732602543957531575314009494300370053931147710340267201597578350556469199433417109760796514088446956923090504989887703664035279231803397748973549213860995827366316555669119073619477748989064579323594822443834382572930876047912507216081615401225884162812380688067900216990512005208336628565200146570973647032070686322145422547323030652427128276604682883981313757521142392182923756651984004744633788887137043557867609940335675773674139228100415222469680505685545466990437761743393921305503717112511915295720170753320147498603807169125920482468032982233110223289868825347371083999348953997984726564174973272047606135977274816418131427368592922501502469151091680659017507077977483890462490026608823812960434596042903013894248798304286177778289442936526978888859945554284208741421170714438891466295541557339485603395185618884914212622400369086424303204420349244411861667549981596979907407404410468424856471740702987046400817917946928320291650318767332756243760490571834372379668955745636742585854287569492675136208815973137230561586425340888890340298406389820397412531743790670837308190478171033863278573049433332041349431076545842773664633596228089527773979555267737288396668106269947080179274726576790228247542215390116830470891195723956229219191375743245615123885472867260340816473722244697471389494053939787159842458231195950661692821958220075141146716929174478657347263092004449750312371467510332786625242418096479949314189825971094211458489639022882710856604264360510243114376588415378671054949169831601694974213661440048729375975663799482201160048541726267718640423503971756658895093588716189773924410957278884880229983178298704556001087195474060121199591929112729110335482892832243594448998240218383194375052847973329819289630301289033963274945628581839423808865356546187793749631711088922739925955397474832827042901874395217427680617768571956852533296473540675882305857785361724010526284679459834020505389024699114296952678093045134162886598345729917078942188838643374332219486075089810108854238081099698823868922533973116433275252906632866079434331836912761959633079927124956660226380544185286345837771324107874676282156441707600645381998111449639833397821844857929349379507175931785017113873016610195947032310422418417992682395446195464954525279617280458566266442992623175866954279058770038878918662649579313248982316018559400093273217572594651021878998263772210537592016920058368009656087396358976595092236133496017300105511003200057722217505913934686537322886712792201649894268976986633718996614465256987021408363583518428501379763141441131650184510983819158746814323925620359696754085672185343660357591413546016066179264367664377181351286786949498171135719803343438402161033874016002093411692864978461005667573367250241560800191757492843625939943892181414741708786337638781469463218277858517597249952422314361565510362787915416625735043906486625972845645996455212738219005291197686733059678449357197420577065373656472157107686507265999220441462276379876238779742334399751148807234832851832935596271645202717259414175993408287321543782562982770168673987007007110025594100047037412555040709564289905002857804323885217936200765993623379870466568377896193715109930377320750354784834834252738316975717738463584669214088767377701161128852132264889951080848606732217426759401699109212559035547154730168535135999889922459647934499793899534682968363800336224824262104508651809578198535736250070919928891895686822952328281924192724333431802652481577905113658061314985554142531131322403383001576817794658234244508691581224052872375344156524583878338292299968712800875442978709264293616804875013633151655725524319921334134909133559548001520432263453863695623428520472372869166540623222227135373080091411310593438456380851603591201625232088279323343374978946131941044325434845254865111949060179273121722698090028120050366096946864004576681346788035157170142775575634294843307873877614860378769711278752038124157586550701986279953072087005967626440145904564654871880768368747504436592998058572064214537623460049363192926132697796442068045454830293605098090452595779931346863787849495531563570073698004144768703381530428425252255725469305331855509116902992997889306849518120931694761475696417074840495018308004439524433461398699361975738179439306948972435274482431179610937490987828646418401492052728139636025914591156383400750308230747462931496291850419940357503206775204813009918610975446672384234151582767237066060090604430100294464135405297385367322331946942128605980112110051200821098133947631641563993594256260564023273895580516200708226416084519018931065359543171646374288482951269022807434547841171044109870141989980736094910119715165317916991757029614023945294308042410029662923042724247157232715581557234299503398850030699007510161999028858270462816788552208903311046886122565503481511959870193584034713239641028200660678052775478930447929664875599397580661254388691694798378443193691693029219253393460877813551527013552399647843692158268531942175130724447155287728654284035688510756647210636234672674294776442138905723634145759498135793920079451525020194598709057811435901347790219439412132529152002821359856109694457079628588092408666378719806147875142772255199904252850117081466483999235957805000298301460424767489554595551835979948837265731242891206393589279891189210941098074986302041745732637276931900216543019870197630903647981114268351377420840736865898215566285981422683309844112066506309702985429317652802378092039427025304196475204461149594249128623623680064235538666168610024353776575952634741324557355549334534865524560196737837882624480467525468278805445529861414510649354952943399074194503771626286415495719587513006583020095159280453618909148034270421274163610932865138827816047922143426797228061764207353695631023524003260994445532855674654048696100644448446753627115091745359131445819695083670282726243899661086927336061158749438658108541667881991280952039855655475099051205134993977271015833204554590366880176801500725704405517846846299242148291084537288608834183650305585715656324834790944336446260559791969101987472418804948744142499592545051764974803541171719527801143313942859797628374293700182049317133454518999341381006774592731046360245267279578024978519474187173847046702356034274269205100177418673764662785856791324204948317339763070113147163104719640203571247957001882901465859596094036287753674321608091126158001736980529991247114444661585325725465384686989835223478273181625580087456614891731000737792353077179571874687812015913767997148730532572066843336663569310879600780352217253856008311767257878430716946970302907725858701411552943711817665786165670523026637993998222393520804227894489248748437075072462564053764057070976995793816057082606673994053390230429317793593004817942925409124404865647437347622517107919829172638931554041947335235392340912560313032515177215978618285935964204633156131813190313087998530211265386810599423590564231504023696665266036820976190521687128244270784946181344397642465223406145628497138197275858645554986372856076746504258741069987291889977612077739639531538186353654759938550662135552709075693176259669231787329364915502819251161076967055202402003195062085597069720961843730990775980339825493701227650602243460028217186184649358714542577413086646505728938670309647458132379245711102396928354455548211817885869651772862496370057332060236756641173086189101689888262348195074448537551055433505220835316307100250056400654274717505498495239669010739469978703554519731527652019605780820471047679720077079088941663486026161684440247955807917380876182110065519949314653387565173215175609522307054295473282548331105549829289404535327675413850944138385917140406352904456373030392826373175171313084464777388227983319310804931207341317563854157368562980241987049407235068275915294177885400011479637313944641485083890118031425477965923436497997157118559445776474035592319414682145062223541661400731809926973535473817771134193880613137259945906561212937885380281598034186704540299017226201501013846161455689303054149759215644345977470587581534879151952314976123079125851264924555014049997935226046346073486997166173625668828511131774057042700381899056625624800786809245937564197585657961280464914128827509907670945307120815929045382278260836721860698507064372299492936018406500254282355966575989657210725809638574793642165805172937476322804687078284924212268887401527590072521852574604465642179962612175418788412435405534228103496056580691724384151112118420964315726957786551478087325180203970068651907754492186178600811038972441739403228674023392902393697858615625186132859590515421331149440782865309983817418395856144064933346824228401050726003108421672018770859442662868412818652517668863194821328661414230615199700969727188449978104735073118305214337481151442117096603359774060344465261863979679816104343968889418262068551348123673086205400806230336641455516935574014411410926477885679091458652306038991875794763067926714992271878657276466401111156430628375681366691794235493865330400954590305856408954721069388204768187201262823675414787829692649942488481865023929530976033658079798790316073251225358219625264501177041618229256937384572921240315539336052002501462736828804001368326491969389829801539039189524352527630250206485377079673824095940254842312881508169484650959148143508261962567471672748720752969957104541360444162367122181876841657190818549811691436642628373064860734092218013118720622437475599685210604421553270167868281817340064428450939175917646732483947920254204341136107939849846393476295473735193155429821909856076983949359717010803131357213959904965605794406967873998417571989112036658046855372428681143479898704961915761252371565471299138804266320748950159826622249966189034430977176869792940062789293868278393747053980978978439674718311130860840433027285916321091436406459230498556856053608312874558776518582540265030102003670871770516729488887127639861072805328263210189465235384165402042720413284827965824108130441172700636872459616619694099167345833136203377806464911745314005336851495841641328576439238753339998638236964362556518165937496485918744075225349747435480164722500117908106599925191908854064417586583071578300958793058189522850804953865382752409845793172950791289060758634421061478943122407939896431643823638396704787330363786533496210732386297836639893093017313867920809234291842448327918715307902240910244378323784025495052202329786146724057300322700053571212296069889277095500642280443457465605332697798424139137368815183767437864186442404350146887853752352375743514562628881482443650126741994281596600091839897140963312574266261793277885941591073551308703189534019336188652954628485028842479739817616322861723847029977578998647294739836738949094208768374137088061014914515704809969644823107407993481763420147050871763333343841652196330052272470411486843757680448941004841399645156263158729848244944760831755930100593723836730948063219024754650826418876055598473848074584439507501116978476190475631826391173919152768585038068992601785623734327722387287892654404395629549297522500859996242152445138278250761873972479963439677231149814477772086862239320364308156359483646457674215462648298999504446730421911856686006393266133567818481521212344717552317630126956011863459251506242141712526208658168024682813918348604204244356021000873274065181507503664210417735968321507040317450097064963043526118842704406864782841921611654961587663122757131748780847782823137511787604923280492814891109650888166263072246346166561786702200031418293073907511389579838048655131750967358129673754589057649556447585569052630768778265139885512869378783035070448182617036088945264711882957101431416689134241238858389630896063258361645957447389880373099640571090699376467067796250814871772626350718837368681642826823049129633356996543197301798748227382993906777116854371392019792348390990178253410361998650868673664582858849856383540812822702975934195015437207136830222664247651470582515568189610357277189011832577938941053599888589565487527300073123078007566291480238602211624986950373943602739172430587115669488328827106956225587529349753826088680110683249736101785096673967703179401421356518048084309604003943873154933589800594849497355461322651739144940800030745480777392369205090931383599577352486495776273458525704504915662429010706825262302462515947726424279818425621481255697415720265540671503994545043669134635727255314333909092877104896057729385704336227120445641355337632392282432472188630221939716382690574200297157763784069589214992783878132862481855503284623088786216623626814880607636995544419541516906459983909096461235627188245513625190208467221482487652297001617523231123318907329759843936591610882391761705403797031585127778520953865142181976496327192707751751193881126578526806149489582916922412161839367175626970253796816595779612553863297119269929642446771361484507085751292466314375408494203919199289313786313896103488770639359475119636136704348101784284931741603666654430792652544475005083569643199053521397967152294574484692521592788102191837888674803390161331264891698863300354456848825323656588595216407018184157788859811055436142353033198732231662599063892263139812287532894129327335310468108946055420566704303770172355749513779601954454683110574106472100964683679646749627457726687570857832648406011468190977649093855076812535598331334815515427723985390822608528641999524549335894277302690245206323735416311065727719296211221834421972045536445165748851084607853619590692505518453221743752591538508061992469605044280896781258761030998651555230311982866357141756230822152795950518531236370082376237395781954931117789158389982477117511908224718753506708594114028225904573751918266903122496817110614660003658991205090391870356282875988527451632301283589900609539790215760926178159820415159340841404050969454479465718371592232618604825277356672055280319569379932429305221182052365660119260898376871480193890132208012026265029914199479359103858828108323562820363915055261174478497053675816707618493654788217157544040286484032503243770055269626974386243024192395878341587818948171118011708598614081348617085981679348270433202272972325613420235671978057016285307068369425016980238796673529084497135807617242520535683444629296968275134313814020397303564130775100155904121823132278267961415483133411373114093981958729544432670744942208520384596063213662296867591915392621963385950271222823706036283124095824330165738473935272563878355818386956062810803922611204941826632679394730992135902255931728613652132262036659729463919355479807798300649817600363528653353686606998233570129495958307540863262140102551705774203276394321394065975849550428396193652935576639355573147014470685466950939765310805807860786674166613148256555494991859463686250168369398410181896092424717993672131453571575557995173204833901117073905533537168483001987597463703541405232275435367785654432943320989508205083334480475765094720853009039437907411564800382795335469500159728844477740169700230582777035235605934139672754204865423179377052082827894243162333409156548610212047109638547389367232466147887019460395765969126750296208709105351045848652007128835305700390240940307662134521274830809864639297961393676155423434327471187604906567845192923738997226884612548526426106009510559176332140721686747639543345915510957715474949108012876608336317979706870780975092466182292269017396694973845704993314234006086524476525090840600000013343772088597403908253266613788238329020671399404651198545322443725709610137116382326394698642059452681131292842441513128831725606335943041489675263321973652263315971217289737547123007054792799314716261559720081863398303254329061104183327186266926802457976396732992054937326364304643631440409643055082809539904142825732419847747139446903382471349769492304217473281677234056602000175649146671381973187585424537624801178141078809644278291664177462685438315189042518496463640740995014344544020850143237963588342181725837653029382002637244233114048807325279433340093883917439665359963794826840120221610904005301348334192167698334381036395912251414795423407548014644377734779531460085065044286340248990616794462330223007213794043085544513688098073745746143529083143256024110897492046311935579628769242392196141177567131657197029716547378612907317296542591927279178745181110787748145103144019028409562919402734946385225424453092888269108068566920949233966602475773564585707390021490449103407090590471507570796609385912375486341862876852869455277678283136461365488693878965967341384935623237849073506973478330610156244648119031945678060207936180012156545724189270091595342552852007700254543113255581148987399704723427695415714165365225948491776572530740075511971485594631046691410938526796824260124277354122080778937624947231902759025781954248053531626590378958263645830391179445280990787212352302827889324788887808876535647351258164275788238769352602172055258461760210134493660137754428276449967100270107586965582524774207187514289998502991450384644495819146894156777012380353889126243709503574373216567539687990904737433031817015189626046508289913999478859646195397690160272096522741404508057768071234931205946537014187916834746277942536139600682503039197963978541383981857563960510760415991529079329515829064171704091316274951787327146488818189176413322786076667741742996265858304479835166961872502069452868335295014675249972674185387313532060021026429423189631326318922245975593398000029168790043521285660699767381606533398960977920825967329689167223194287452450191469002339810720821593869799497122208360310558452611774502177950702862066245330666696888175849809867535675540302987325285206831290489825219715016686173225335735903546844027912804388675879846331816666586801521048822975676637037227521711575612446146233041419163933263190354733442863643608992712520553178176719299924820244390440419050936942654305925455550484625759903602026196399021695156228335838294707717061727286218397169650583225588574814800649301765855602395346331541940105311708948448474351963710505557616738049276041939427007801194519280456254784132302381056928856280543659316908913887371725428683031971435179599140414611690961036739061217332987046040892620070120400331129875566800381834005966042215656725169847711091878310806468727731841905597294434272084125767500712248882425554887972601992455190483373636510526015355248672907573754387451801483581844929743659530495020499948763296680167511362034429276427428446124713129752481087544483485504561645693122644954287860680268492041937643281222794699581701164128766309292650573589261186178794779116556400732352184168966417286453069560765325401838437942900777870177131079378850300356644339479997899403897937487253222488776342667718457025604143124371092557765571383911740841300207396658735103952378577599129363144497517792588422550731728853442751399286482852873928509324663241921231130437534351291282114097863956293539862922872582083783208706657590548411454613068835132788561100680566990706428816434216072343198422107567104693943507503690900605363083696567310566656953395339494005268871476166443166156199924732250671382982827323667006345571074107905004933341993223438143156702060974625144697646142800306643542685402324745459473231717787004995715459853539969397593889862996975664674693996695332528979609479068749275675970886338526200198326297597293991317210112785889902820077065283423178111892739807182495295501388219785325030987894110492334763933233312986520638503656603853933014943965309537008347566907346469965359234814936001060209925736835214599335355784494801530235094032199295686152508398749331109460132207860714138163360860509501895694673353131269815745586769809680054071434142649271732384984569819565968901549778034419873144327492388361514158878327876296174630347446418290290833449686856949249900816723983885532852786812027753524645935548053521762050481991814297097814069552363434316154529990924888615154248723577345972797145568460412764754208850086108688342548917217903934347630064977183852337194095332201626731637844277945568436628847499409178201644281155723701016376917740265180025817302641138413168474869768777031883499683075953558186404629812036772637916439607636713255751781356675504812697923556709250545880646459205370287827349730357269714924215974994409864347587903616355620395115529923267498815978753609118055469346521143342500392184560079705964495098457709669882428345478015608634333318477270781600380038373061950032825025533190589892178931134211292024863896644338698971343041878793076676374010401856513187018855853897899118875636508184330645853173454265700472471686380872808904614664836462845833990219169710528078390144121396295913941805330643872750064250334295333660943417224168373722780487812070459083652917862310507037834638300179257027161487015130510397657863293940666075598031890651057803427071825698769793583610727200899782646288968807887962590224682960344826558026700461503571443340047766491235282484697693812863678761478396435489490497438126071034520821152168547307570448319298316151470352259013829592558095226714628130238908948556138141500847161437210650682755883242637653895202547497910009900106498381582804869758608268199074463019394926850671919632068859295394347594006007380752295746009638341724270218066200815327209940778976095766382439426216442681461210442724243112452640150461543825077753413900405155380411221552195391293411040286551714041938262485503581356152165678488162725641832362401077052500124323257645741847446342047241708393048516823518914718381180296837108372508681663905606648238171659349106912239684561574483605549648926227565081489276797156484630980125711645040788945836294787271133440579299813831026935964414799944395973805434397480534374745680537956611539930287762735074215829655865106901896391326962662279557059596544295457803507912774853215903677773448573753400320246358349137992614149812025560381003977534337341011851277477472296647845928173385722031098000277028417055628726342727129948148207087530669625109709972082495117405101409002926331039506313978046327579142282051032696451742662249845167888100321646031468527159000252850050975955595666782138608991252547467594905280888133247476494139121901008921053194568849628446174841768222849213548073383553428931143122540489839524423377195274998574236146964283347876242795757875964571992131380753160976280372284359299891457058851679565498039431204014912888341969675887698402990427965550161477045011955173415407831888145603421013144028650754426046668301959280846608012736531222487918498328968203097378851286429231493124966337621892608528941196900433021432006794455846836395782592305217328558767221048283839385051865481916989103900491812049922257290091751596973920246544136562440800812758796234514645258754380723066227591913637861647163859190373557922220531177339511033649223822047782360627517006815010992373203949568692311604427106863789320093490231918674960330606279055869424647433659086414041063534754217709700849772749430525631177023956590012431601903559744166548179445706367207483916200410670158132275555348625125646639088444603693411730385717328074829588828387310856727954601966130808961807449570248374419023408142600954996454016026251406952531532210706589901867895190218242039653590557184620097744288556710691079956005614043224933339753961117345359185037107975229206136481597879912577696960874945244336390768362615208603885217667947671848702461741232385153154842705753135720038515662875273966083715874200072636669523122037745828380339766365563214153876852028423517828811648294065977409679035043437807398415728975583825340699356388942578290489812521545520094499290511357728271737782869949396579637237343616979236444931493251188454888146561673220620741653847272063448302968912049249888443524195777358163254295358990516698519478679083053584327778877733821970008306971368938878893520318288193077476640407629128222702929084948932702805143869217824466086283199331947481275936355627918553862200976102982088341896087880377828406639418646643829972215686142862374366243007815679293629378245907319952045521577545686338437889715240399717762327401719390464308144411810596005570571233204112148189483096156539259218454287733678666410842745087494263476339597310619380547660241326860513868631593396104988408393207180497016122818773445076384697926507823469835456550292724937668479258284972045349216905510001885397666469492494381378827764502044494278044592399696603361860540110215902594485371575415247447095877198221420351528071170998109903370903804646444045893689954140315501896122496840285704027717729269109525572198604336235627805666796678942653040126323989457853128058129378557209065174054785992881474596908125951002098517785533290298434454505428494579099706181871645055790646764438560902963454272014241232577479329275498649107374320880045423473183726979592031281013885658616680413710415211006857695122368950338541052940183136075233793799378352209868940341649415325707957731389381982838486603181574371428096988605907187019044519955583333246335971393506755068006185075507346833086456844459147851624334927465588641928940432120891793377797243726107110465487129413367004846902964976765536163240063834850430129213737088245688076975336001800906350003402994028607028276642122000994502877827656515206540927523217522764047239801001176291706118716333887873900769938746283941702437209660826241862715167330075446355981174498528694409820976767091826733221470661316892199725523909116862057547827329545821631320789933074529380185080932888025238991806149123981473984103547754009485037114668976481817372335973556396265465767880349881664632906353155727918525907852927372833057268439710756138761063099900974659026729684124264524379721914109394671613352804404686750776664697128938897989910761882106952926270242895919750194322751903192855094735295235481454245832342211012705155012372995225683148470965770564006251446880537723064083884082657630400415281959586200572479610235365355512994403986545035433282347482327191935694995704385764360558038135686265288155989858201333024623292962685498088054588068041296191675954928090884268787686242350099590976890831617871059056654862194092191932115784487401683716145233682053087072460109321676219797128628013292852321173955177552861697085951129351274714810493437161887409550084952634287793891080607076501859049727872254330344713102149610348679882872935603045444934489858200369144444968828370070483015057823775543674313313127739847875559033796789230971096862696912029738661460059752832048882976907833683169302768364716517353047731334020557701335845887684086974749479603063990809181633586581665234950957438102345180196846146496996378910105005975343255668166437468398810205152227234346890744420920430898465813618644615985795283240796995301108255507994103936832553793234932738250477942230198872660407845292878948152636126126588314240998999041585804100145238659511425311233989915221605506330519385632672137140832850140788046391396402908139161839974861300028037217457935188447140155892193743410895523904061348377922415460148019257251565861821530088347494410441175362930820670329430220121026042108135476559545538303431214728634616298845633265782471554400060258205372963914963351870220636628774618850469672567435672773398533986817438775252250231967782935585620056877539997797387901885977796926149449067215690573937196951670737710414070337715981088595633345877010043883193187771496530680498036940166774843911650291329508517062920296834262223220699453310056706022741551356723604914115401596050512265980184620249410023377068336133412824121870664073489288131885388170282136779882952354934715427237012286857485293957478083957007301567941732343468248005810340650173048492041373860208972255500105076775916687272647744367853000868267310043029701583583551784142693142075066149647174132193315351079347444673803823692786243473758210278212712860362696801137962676579782497605713938309043448589366816698190608264306414361808401051519846775080671297776025035034510151365046046599869815557576659181499767257251264757215867470697185621895529092177495348695944239742839781654639805597949022209730982716221300752691970217521256339096013605557677284668617108110047854696146549454688251917314280148175779605807700854600754716350830455969792793822672465889816497807899069410436096239589368218462498529935956110808830562679777943300464702352574209672882721160283834948181056124387594782737107106685238872421121211300101090530272766587014103062599447342039703053148117081146827470062773911551189222398683377053922959454088768927312654329026584200324612898573382742410618720726704899933551251942960513530093034007215315134884275716641183792392917778601896409086486191211078174690094259331393885880224462906294510658646434669073812487226502211554720780381438474408001226840151135954439006602023799645504033425967568910816280695189247256558927540354571273518891409845310666697447467432667228123013959265281897630417433970448892214622743626962853886340423494416155670989499903817294312544168845527398617230831928050623520622060111260164366104780875358824627584988493153233864991813494947654581617308507150261550499441943343081741800576475169166464414249422196410886272443850008053587058291345685808540916819102046727824003873380432985444974942046539791324325448349543358501316023247202025854138791143142041004151597919086887995357428932571423008610346276532690839903557177439518023949869016526551613808796208417893800659919361791437959745689159783943772948659360065264252809157341139658049989763776490323801334150935720563965984466536095218726956500382686562750949442165607530017014790663465091427820393722112369145017077719548674539850333235446795864773283664337644634525405468022785560687737629116040851706128827577752796632028848760022666072182353992034521042421823253638405092626920863548484922693494733012097802725007320446697049994796046755407033482748160024717892133626413145665050802384655509977816070294625864582709392919349393449614636273611872154352022712180271419967601296432475160178604209948837955199335488742861906311698025245294265864012503241063278187439504612911520797346155946552559342404860239376879084818551705191935539988277427004388928278347823995220123124325322668892908836892148873563386977945966480783162160268415322115772494512973866127266211601777610577184115453675251752207859666761102964369777016131229901909593275436471852961175515194666301974722013588278794597177171035258258316790576495855972933433101852462825190438704365048751918244573709266300102781032398525298378042949599345191672700085172757547847486403341730371484362223854868453087978139258803028368866193545378640506931134663076115606729643626162638607523129034113696792752764630830978806174332736783589306524190289051352843364011794474266503811273731105199222871397414003558151840514327367546536040224740365386789019569481468533301414361027717855364997248350537027467607456626355374724083997632236365627991141731623260499631530191262010171101077797722066305674823599532376181156016216572738509643167087680109299133060875282018362154232654638507597209499365490077112358291108999787698423065001181502466170219824670617030714304735993970114708420436269295628676124136191398087610277280715603931021608588095416636408468063322475454165209977518570741535945191971049195958451502267940929756428935871456527376832643919611900953012728478957805032785461403584761538228499913227874581797353458920960232439097381066174667410598498884087883530083964351683731252896862025550243910201304357118777844639554114018652175492355668485870247788086765022247354710141919438602029399985970833666372640186745311817152551289502933077714041146095806521702520168557078470746013798030996397511682060887879594793944777981748686248954590045533250930193297208193275156398515848046423121097479770172579895556802720113781513627395069554041739376035483346106386305134180025842223430432226529295829303345395915648245237744310046887276624578264313320146545077812787553340908312777231158485650834916298696281913087261840096741443459099402995187531552092369395105456763502983632407019667838688818611694826491429654826909593451799363206341964012832784629034189059580198832077411729205968656670356807566375337133255591766925409714323735906246941300992271964410994984491147857124304880777979934316606412962416366480938408758218224288866486154218841887028469042095934263720531787217777798786825643289151794666277770054372143486574968556230866580730312937769478541348832035837248964287263244503219704369915162777043278822418447715466887203523878704411464198460836701462678440795495384359459495382233396465616616030847033395445629555038986838156983414661390006910690222132525224367183819958843149895186492482151539272399554983687863809684530812408915807650283066146263971472318698586935166007103949206033950622505337663186380520596687853600451085849688140773949650889093429073812439991297032971697282441862372298367096725966817773616579959662578794421835389390016080730824249374206210178436608332027287844035182873582759624140385118125647060971058843633575498099648728472221022569063382975773595647690282268798602886701115802141659998494061664028302197918179394898214156018356859109484419022145347711218775025581439251963064585530344135250195624492921109037292663144907807853818331545743994998368155842420959249601094896585763228382646150667485088195496275342546439894994335211904448800749636016573281129536355340286735153894422998070661563810282580643097395617548946374723485512568752704049306725306063004663975445241087053158303811854645667647608494988466252186566838489307803173036183163791880513949230318283915577849845097636837766346878455207511278301648588716924527676874372285876017409135954576840081496903161795698291766265194746336092779797468425550480357632398250770815903868563586494525401685933770474147226304116041225614560319766201071006630268758955684765825287676388990040378827555895319882354246606166419426922749327762738367058437849505889108698975825843732189669551559920123568374129635885996087412007897664445350636723093619929840606857107622412964975788408734068064114878565986078186604455563679243243313693183245224728750365713687135649379294981092219948139949009190283904330271806394712856107763641812222224175025297404488961065378036900140422403029823121406116020677442087424561062455279733675870652705561741134429092690608074224145568988636760586825012802609083760202508644649687604722331697152619787755355491734358463881221818927113060061095893881511353200413738348314317386748426557253189221501434675709760338510091696725620627726627472380853164859548913583305525912021641655193839335444796147473749867486891610461055619623368717482643875850782363485323104740613149567824607685823371162262266213209339488609090718387202110624092824107812770246502828627174687186011774343623454195140631919913211728875604694831511616771399547516041027613401843859760473778797991171473975290049985164640346393696088467145421018430113281441855435868826329673382133139203065155679210827272770809367213350246732764171585090321919000527141820634262541883131704922947533175856571055211328501173634325486422361498104267712523281384075799192861124228883437206256648407720126867494882307272912469125782073679938608632107488161305145453446757425315008147680200232502875115613143945862577412681168576113155394394124724132965006037413615049407040081156516453854643586317056182727894516697082254729257472405205749152018346141190252218999099613436485778555814086410511034557410264549139033912441091981677286708365273519319972456155931776507325433003882447856547320063513950259361639242487441399083182080222072305578005039045611566897981027753893343958178141599018281541971586173398382680435327326252922089618690675768932899863824184622773224200719573318931596491023839212036636876149570125334662129206643609965911449516083111237550767902642720896225704560014752118893282833864987910757438698066742339990021780761594359782057532732042504813520878988609576477408413093309482090751002515054972051411242316440760457091277231968704870554257338406953098533179034504672931494617033869449488743916206899451676103844687500844800416223559557671441687777722660434591054682103767288654149262422444971947257131303825246352909755154250431184666600573476543172966896950975747458681923385135042142648439039176602509478313091208164475206318116501156758486707517874548080216698193000196860098694038639831185864178204139141604562903868440879888088660204306550034686540694449352515777411836483682292599342677676727565699250274927910821925957776431466004682415531612658128520160957485389602838262731351494616411310131187597539023340772910169580540208771896182950227475033698930018440431620777924769603152019247421536789021315925199755575612937014835539731155208845172945475681161720495610600321208755376014211336788101648302404168701709972570755552511580380451036486120824143923528842768505023883894702553118321181635557481670482531556450057626558871754159223169136226376620594452716931657825702449505905841102326096723631592767041794028794715111505519869563825969391073067935082406412550576470350784388557802932728368293599544738870270370945709006601181704358666528402629903434876632914395002401060579396934216286057779773774190498408958887814827057806700906394324946230680525453575531829510169687979561493961758313328654239560879066747830135728085202804438063519090657676533617986205821645242440714418591307654006256083528618581546890906612363000512015995140467878550130471059992997711965862806552936724996165515128696360992865901339186220610027702279012878419913200593913565454652157805028140073789906654584618434320363234501489813881193428195820667435648754812137558585464187413900371717388094408986921171347329858925062976552275196990964833270886668228383028318144165332194850210786180366718132421374030931867850637023855143131815617214972289402416803540351789030184811383209616763972140593946689670823025042670253059553692807181306631691770075254915356125163203092073441923073195523363319546315996576560755927270653094334301178182504383821992390801229817354865845910357273892775833087185325373599298182570579437575996775185040613745553177531436680655399207763369044446041092421348348072910137483505253972745641089166361567756038859102021508755774250149598428221606752511676120521547689732954950075375065347459229107756724549172074287098040367033012007117594738003780897391604270370894653645061447091568054948350325303010441967836291767881167762692364650862620938407093519939693609370204259299779611421808231555822417053115314459810846379799969015012108727932523937276078534516028908557412572351336723263620461236418239232583056968108350719910767700743677737945293861590286786902250837657295752750608238367342881047008054206457453603656118814359187639425112488078976318098610131557294449662119390682966637074194290880597231572677556345751005939057933749146712497915299775516228674038960584027741903283530636017127938417707096470346451604841357284545189195080829664247157765105818304476032433109176970957327620100462729682733566208720394696873307880882001637540261713126567109398483652188076535366502287147354014487344545363259811904048707886521311488851595236709084070040918055133596590920006057642695820386462336483267206373841333296636960915526356720852970610095437885070125319333501243298560079861495812147263276049569125978906491325460685348747964436910184682285083568669432893771128032380904762521369785212571539500720747578228530770759307242652529232551562003916903804925728109845818427300862968533804567182023481108785291052349301679058264466654133720233882882034687258061023478606930372968322363442327830616981835764847284933473845663551301623688894121354745788708167553048658096184754553706300746437687353061308999686656184794349036791506784663940933268297991441969955996672829201606577347683111838884151961448666081747472530828276058722660672248559880684903970226597231716827018014831742484972716728439256591250499949745215427173649147698433591448171381429129131579786120235852392213537992500253502947696805665791270391732368392940191382160411690040442740015801514618747585255672772471410981754568094043545902019998432098509405921519248954993379280934712336207258591522552969026675059189531410717594781227815934577973149305362452524616535322401839083932431112916444543255835440093988029275728746747942172839406340085276775822443697669584803098771242334802633797821409900396377096166934409971331095895770494493015389622276551027507100470739967093227054334743484222225727770821475926181139401227308514040875701549406772531427174948332922990559333529886714944666483154197810951072839936398738128991353210030087032718502764243866073265710518222523545438638221695573087394934989060157838312702792075520568031644527617538016857008166065769467921319146800987187687222193932763741760340056198001710954243712201089107782897755515505147403438773065049705293474845240341092578192809504488191488936495045746285015096106875267730670616458109489825964915837527953799365373461522037513707146278780244478019864105371889937673946493995615924399937265831793233910500749424740523244054986971719679703348816326014698244188437336504148117359954331766615249178467198192352588342411358417613424791261382146943295620201019309234713594047634660914742346036591597451599526267517382412537184352373322101211102643055653864816867567659497197039256769015550323873831184639104741877873525325858548436746970996723790425265983290610029555626407777955502752682430755458569309836507687828380522084387103816263510686253133251863421869697079122797415280904347845970319129860077060428191432808359876476664879997251333743742138169547583479830186884960448004561308432393172917423198958588634171880159909775660429897953293345823750587244703868381089604954297439760901657128107220322430071587231074596444277009254848767294989403091527525998972223532757562978908389168457356097036882387980430305809979214381695458992478841448104856896457496604416811923943039264029571471528448870006916959447894574308150603359362660559289228572210518448250296811929734857731995800641789087271626561033543887338746609735308668489199311518256086084506631289302435115454565869907853944086928579619902637743823925685657897037845305197168293443410569477152229409019023882289468183283575937963301784069280944022645771373841652308133096503126085229949749707222169816935331105528977244134455454513334451646046327876667703133729106626347146672673031469795335793296379379290884244489713914630667885664668335670746648061622198467636955964604169063701068559764380889922252409453414821360369825852419655926624347974216417866428181966979272557474689322318384750809941812242301258606752414216631782547287650167757409670338743803530304866838449559979751479580220151552531335836782722569677459436599649042110081692129490597072146706229012269610426685333915562139740196050113139332294293080119569867457930345414505124420943739720950173343651978209173113414459370993933413791605607252375033901146848580915035705941483955250099268929149970918270416824175632045204436292048430849643789287352991108097941679441363454737677389337417987639116601104694093345576671376933157259747699886686792437113209811941036418588722567222886946570623856016500560466392387724963345944723356549249512964015432266976518963557567840960260480972689273170133952489868569701770883541073363804286945638938896662402484517517472347666777189884821766031563439283924547147426316108823569301511630967345124054764922582510183446133475601328398150567313030648500371667096411778198642628918088559280735459720911603433530748150702882644524109335281844757850291562107898061252039560661006167643740071083172342762067011646851965791489976583829578354273529829393470431720616185496007488831701600212795111704308307176993742083831148359906803409054316960445435578189035968504503320348093613030043353817875000754581922347362490564006166654478167922870747136352169146081486208760795967439252417479437466227277791204242366134535806570625694894710351682383171500878098517001277382062712980810491178938076446934568718810463730168419070699346928536696796964410309175682462621517098561391784997449377961870191337038897841231141166467155519670328494013985385190925876634685401832520948994853988340989557767718969996063771678884079655622762554313034662272921749501770320289969002868985667277182880455871593268119789457719913730918024948768628766717928461474888175836031652128992057785778644759822116801866462262610182565532821181102839910305405403223068267509640549714355266964843261054772304538256218755609026545757167344714639049578291264543808816357194902051424991548418151209380299775835216925690981717033645703228060614623530594139090941699588267140116322574189013345991082618576648550588747981544265718852228230543368292040924797494353847077567234022586669828683807739784485734110976098841495581721011166639306173892347880312027991262683028379660923098582035955737329643484286598321307167807363637806000412819484701878620767532056240265886708020674725229866608352001965166332535498409033432381303685447150105789484224764698274026296568174659259054714661314236736314814309174315688710521434323807421920709440926165888978315244086769058801979228861131197378709957930853274782054384441568691033988481221483226258188136407451571380259185678619055922287586009552071726055333992823918440389248102683804285178347437158492179017029559500846838692373700419994807452246004573758389847854195782762243319423931733169443297548714964253524927327083505526774473004495770469148829337924629107695866401950662040847659249173145752344914599772465226125286308859682498915162423603421248818794520121781070061594189544566026006054283915269514996918362519346613491297116704712441653874859820056124427955513802193354346258478395992044208166572836585781776521625832356956173089466488829297199984666169215096870130722413553940785548403276934042176135104630960854462322893401368430574662800718680612093961970587722731956963424121162744992178941261953967527751369740012451413616218474381772537214832744852352656906209779755490709929366979261361097593181935524000260824377314896832407040878445856862420646724370054375268230614269713476362305814853928814128413363959842819530149193778224380449118592225159170612933798403288954092497687936870548035603978222630342015091336360676369923791230859779676452813778731190730348291223433511498932443010934626670395977460876179501424650823182087033631258242656395537982299813195189221982100683308733662537332796051094116461911398713096403943283402814455384659506262954601602662700407194744634111599231247352924055304318390480363814520734394508147400437139104986199814317843811175283494526599435565770398319492640610594840319710349800220539248214988981783560248459075687498338854008986859342723426783659444900986912930110123985807646644805124147679602973968895757588792590929135318796318145266414153456035412071981986964739464662796145618945741246864327280524493329784236060494158214452532501634596686736721587225832205458439400669152456221524655420612324280105305446302216919810561724399220853588143538831165641552361770299983056848766869694088867186835149382353966213985372220503374539795445070498603591382954002627452245926865605221425859704648023017457225522497788262835559252218856233808228442816725980825886449193190326937839277522229159152202459130978954515109080987466089039872668023895909916869694801497566531717959330558268233950134517928557541489285909897406062998897490419439150659125824364147222516471534833766556500328731333206858093448311112184490428727691276085931898160217917550266368100274731397841604885943842619532437786673488236149707659572423228172835966193355220639813354498370153784687493355344047920480810832406533124519818435298138581324679154233529523145163459360887740124741371769974396271373520353318215604649261385943771738076117361990286401232454081074603132600625496880067204240895895183185590959802967797213541104104627132121290780516191625473676044068462522142663877939311246304123734841427686079017963939658112370995255486536565989487315024511896537625960955434698871106928173512931405988255974125965527630375445171909400096289482759621541238123002169824770608012356437985467836180976442854025463610965115970266918552470787893668888326819558278719325789295416063524274412547985817572604056345122556342628302458480900022968254662490842121628868918768689787191035283679147097954301930236586576919813253794207491314128040511762652402306306466087790039146831401639944319599455453049939152610590000959879584480223134416739327338623089362673412785759134599853944206461903584842941020261123126067850677628970934700684587725993917110023878654024453487685971212685236960230814835672858748490186814427750871220374301669146922398240997727833369123991927373660569406297695212565511617494582269965055505271617620378201068508190033399029589843005780788133826689664772438026367954053219552033717298623575722664927997323183405431658621830942840071915721738285582931566415803533703483541723463888922409191779349420050860861899818044576942535178736817485429321848046298392734118225636048322217614592480223712373645285159283904061632709580213740268870132687381033548957658224391326959544279426085665647153461175571913588585874727289357177169653013571905553243426348680417999981221290680550060561147459633905173746013829836766984131262035818102047353439768751773325658830273471892178581210234204852243851875998488342238379082739189507787421123199677124080183109109024432176371324482488315554389538788442265980748867371875210322901377839065781364116483194925533019560510133507749457045897196961797998085393765946905917618118294399274251485576358847801088910774393987338766334832828389266391993987717469034731870604606102256462734318513187925049017877879098103068858380617478277118145728933768064293168975500228069817487817247052449358101660894587022057388232892295680559465255323557954699428696692243210089637101499207370604625343188118188328701221636154634012014642977813784980622579394101919488290678638309854997083330895973957722535494863126633579591546763486212105861897445609910945690795322547564227443457398660906504251102260652862273979947151744218373191083520247194231641637982720808805504956788796794397242245455102196332951174551986789900445527717041714805875621512678162861173106406878877768357745700081368847032759177481219776093241502151945094844775328022296605189601104330500409184801793285292329218156611450946889851547117384537725917337920253362059356648607105482427270491901392015202557616449490729916128498593731816683177003265801743411182863114783622807246544688904021639111272301457726851641993670276842480131628418326670808636527175506151760216185559450810103240018790562562562288025827689349162531005864052612107963161455373739642743977730934939534413006435131201994198596128798596025190828913241907753949835207265632263598606762681163644719782872266936828206027852416294614447245177619188959664299266619263016020389905822062358274083055669223091048784444851451842918918222151937926113437897004626575184609014664430484939240628162633146947478920806457826411680007439926408123359973744851086625353978729698992467491315220822374072840672939471844807953846543778791079430092576613683191214950321684992378381805539149505514175632737666914097320652217725490738710221814344693314482025389304714250005415631722741862411906269116011091511707125656076730838358521764344786517974172667235802465674855088690838282516162826561418886164756332485018365496196555705845425246422138136691904313018501543666081887794613228901681832973393155743628609860720338072115862465282320027004548272149670493936187944428394633264043815934947429033658490878251125205727910815440438516085972473899687358163421834279080671395078463784201974121692154890966633922400373805366104102580489702991920742475492592789479562838940300970528344317830285437917588176174625003364095818215232386122753276599238214871169582198984368251240617064261515760665238453351691340760918362481667792502444577045600902513501705931320080480743802639595604672707992672389001157298532674638318262885179603663556587252368328578894620841776127010104455875163065423229015100346956809383909168381216267548727467095013561420915604817909593838580272878217041413966355598806845056341448344354860331300532788598058749736224849564035477827021265315227102268932218090648527959083538615675824286460619903445815385634585917184967527383460694749399326005638520021255873230424324018497257520164769394253481009065609822225919227469286101276505281662571483696284788662963957820043693599027196866115171970689129122837945214387445198851214051722542814963530837305411174439487236788624155821104279577078641907149267776021720031297228586603522062908598467368357409166219184979619808209822015866451383140823935284478645616983369307820604673665174229025775157969144562724896255270590004966626077806471503304186019769519235775984948415192579134003962219683673013503644419915364441047073879638746410006570221410181686085117073054367604617630238613576769155538155610796969498018557183219904910732378533556078378054058539099396714052685627235027784044261262045030458840380364811007857043797493973818186996509660858776137578789734214333736761241171343577102624913545651165433474627333985668290477060811368113077996274156403087489711094209576008265506544492925282902820950641947549709306158986366418876576459847209711328220204008189784422731751001782274211392562071777022287820487639405309277366249836230645972030768855086231824827841727350335298279137885698879807101489394022143596163429419289233381071590957381388245178252270319474159697147813120539419713738507589439966574655378950808849248194127080807326307048656092841952432766563838953255740961060627434778381913625233115226763209193110564993236935944780669777194996820199308140752146189262853733781504352712002283209324645639606205448117790479952847137290356461244485668031976031193261639943805246014098499971827873525235769661666270065009297603019512975982089002968110776329812297604110680305764282066454535753689383866781306448910546220705813791351102987046810358411139711358674212221133925932369337452523960483529772519804582025689798878941918688066389922710204154913264483359196689680747780294071314499303753784441238648450181551567107714478574373922083486134241094254020704513351873101087796453727708906338106043062060236327275908011777455327328860241459224255789680353653453456105287534112541225523796940641238820787099355488204391543102344573995385830506788381269819725094938271121954635557353110914736397156558164760829618589504465250901251971563067259563347072735170578203708040319009263460538461763528952039055478386071826792533050866053096179999334171581403335840933843112483962882282031506097765912011361876726935515833177613643047293741790196390805535481816310982274763458462897395698163045698123091594321278457589890129632697836682048352607858006218808395020897887739843742401711585830368395300943942099824126417957903421932349887759139147938842269890065213577475296627677678438065793642016566297373640982508427818365132642100318118593150347633790422413221960445165961596592732137880177375323772712444440858109986857872769891795932576205876768474947661514620354609270453757721997891928787079099971580171969039778682204873929802547831698937150605639636549050712015055982188335827098618722162662244522215556428856822476181960125477511178820457076854278738943266355127831564923870549823547367287447191906752925901504561348470273518394544825859424810396090051043959243704841644326787108601626599095251887821191186863760734647856189895912416303276317878790902009227880315396442652880530553897259288794881173857019063721563526076065321970927270249972324814354695422747665657778946198277655086809224527916760809758214553556389880374354146113607696176650729479474519606659431039914716025674649047796848364740589774492957075815227042815803791203203780576150524047788288781312938890924874725160738606695879507412078196164522065606934251131590994147969729795861829110468915739965348947531125977016532499839050430902277442444012835013694118569574652173680694666278931816053233495881918473107155114171833530373028126775249067836049785931543112292414807194759726355055391433514320039068475465220488860711460584075059699863381275579424489910502583642624104002903149820415625685908658558922324323529851033119089334010311814142078810351979094714883398350402622150484597501679171258379228375418676332422488582919523039847500240907022758590196204605431218537334317026567081435474468112946275767323614799167141536543121754492915821042305716595947541647781364957572547357604047086732314269080354946546797326601630046704126918059299554144160608517798358669608199985159746394424429828729645919862989809206778656022253701506277909029266581391762529080756153726720830682059542515323161426610720981222978041754765240392623296323716943560773611918816012625189286117244678604839809066913022158990306082039936399967981220666080854725865753325926048096773479153575491346912417713253355445371512524408372473700136615031526030869256460987483691676251745723382445106046906422733911673382358961055742153926898548314080202274534546850607915351867553120320803743874769256914149518297387228969944069493995697815806076424447197080976035510908587498934125106732519197429143958321284541962721842589831184284888938653391881394300105656752541572216052831050090111527893988844051561004944163031847080455119447678217327498804860863118242003892196032379040736719514317944210706836784681534487177845148562357514377514840058882846576979667218595683418276950442347113796627335599452410580127151496449642420059799396582595063409657538809878843172457924364232295522849303342362831476224507286697981882910138347718474922424294795312069702132313750579981261786390344382092767741630636550023365480044607122512509528947115565383714786296130835700681500082782799687674057012221124217657323271301096135029013110758313154604754734780292656674045808506635185863825798821156951599997178038291309159748403714091791042494894675823256538352951976809985631216764122922490071762628070729952708602044221448336648390001894704130991772470306548979987534658905554086011537678948533061107138468100794331105478971734012917778267992508336235246136297667108927222990459402849261979095344528005943907821039598707825806191757128179916455849243496602687305944941113044926399661738973918741212784518301387149927397451850659768908843283279853666389549448921881995893394137108016219836951758065664664614817764798995609203699287603098133655728257238623497136375612044729856981916090158579276355738243995680874378130153700558936521359668951550830126741323266276385808366843888426986516770479255740682999352921074381948229230179721772442299294930797268880607715281925251129997496222353820688119587768531030956483725209571447999020311590252354987176983889473557739680186373899685391099013600845900719796433904031637386823668370053559911623638065008467434310211167387396197487949781727434090887407587625811266535920931438906264848268398772327331483340381820176456446284504713515457902116564183641100505828978724811882392362293835150975574523689475078853160002036940858511008836809834360649635410285823666926296330228015049700655133089658236728234827033262843578463066698582265954510862193604523334698986476057471501202589056441402682208792132911294252476729065694527211759978509135781920210327189648402745656253804729611407647494985746072432145353723406670073953152392750046917980592483878159966352937543541640325359842269907915405403376846276084508801516285960246290023559906783133663655347169769943196690491586393682568463569752582626377359516538422122117113852874404036740170946281232921163737769633876589984047800490308930674934154715134734442330469376408254652716384578194012592334843318387367931420634772367016359115406300470797717750964537389297565964767033803068371501053454144079475742253196416835432861947112113120171696741185933489089427987646217337420987883733268831222126052290060161056817927167488676735646805680515888245415936952135515208126114071128169242771466138472264910641306566168193394948164814048428154625677326961583728222556584932835710896085936994522075642649142263062975209460908368498390588342460076571680943023991654157832493418989603116609708133492615237033260513099452536036787191337397108354520121111816909962804656953618734146452981658562619699835767095635695270368448190806232554297153141572232232809709690388883416781649887316938013095811726977791548071643874555678394611081661971642039721526388342254709769889107858431906915820673197501287620534703311985902116244030046823490960197260505945562883530310470644517315665688513591150029644117016309617156818508137782697997394602220634086452019868218876874409909144284487383602817776790737497655398030039645598610112704035111939005763418220830891980334135714964069185234766615971580579879299787298509837969220182754466843543805596935610568517464703830507139533881074482465974501699272831746644546231595901369434623774374186894989265143747453107686324440306992293651489593569501450002832969222906178302931973566005876888224225365275944011547213754559105728754290728018986564528033434592166097977892062238058664071722559843797989680660963806916058703021256269715974476388940043337762829556018166006221496267394595919588523020584605587824421138152511925718924383835746542497674189487294034695932297894851246294485637874349160929614404867538953619470715396857328864124144435405898794510871635039513710805097237663486364066287994841660884068917261909912025406539043116007904655973214925046615829123026608140770093303196414862313081382131398736086397164343765600684046458198447016313336011095170575278584953819889955248009250221893547188240120511608122564181591948702371702030059758708689289137644706268730470717640175656001238575892978933660266549802078624766599121066219751971573817492949314330245803771038370004196295663342840785466822144221582260397837218772637399238782122257340837631003391259040627008127051795033082733066143069756025290659029025474118907161579476424824754450204696741748438310218117441523505032882034687381744683787057956351998239530102462042115775105389914130570003704251215881665508798984065202444677583674611035210535035806211624969262585325054833799045202308976516672403881468035478541089213322259795767054129085738099557325837357294946358444213580351836845284568324668882586281123413930103490844880613327450176213419344576732004333520799949142602820260919151247964325325721797779728449129251741329185628079267484296081672670494229642119707451284028540829835316682374030223117079980973760184123263958133572921689498899210904907646152915770731132351661918063301477998458639109819909380232166157797241342621777320855735185176594109020786132705890742651605879307126403703215576625673960394947377647751081429711780437174427140365145456895463110714059902659150261360521624488744786381961533481948293764744377994170046234757974559059411327675812420401828653915230512914424479747903158103164260252559082137391840275220951505576231909491162169166902553555168474413869909404225430237062221730794887968845740308512831597600588898513694433533902341180866969464796964351879765844628146671668028032358240456114514482248502335911353084430132604537353263626783423562211770500180344473224994764113853605001503577135679429887623063187822982944808303265777875602411605047707173460732603610259424551424135747480609336354663586492914196616501405935606467249413845535188603507252154444054388850272521611234188198590810276667224030919530404104378142787565212426949766115053150219306451200783225013242489257148139597419926888269564510584073439068465361336819626631953123065803320500769738537258406034521845465102433896558403634362827584423809019214415323919517715375743533907665992835161957950858249246970577413526025433126243886671550635911830604192522506050855088327022242178059056280478382442432236946150920906747750570322711864490006649322646653443908741186080367229219804292759912146765012681060700868256152978015735446427526473543328735821729033958834624214907936718151132846700384526410419140517679169882915289355951231595946199582143036469069240858788760950034684509483142408098470912705531226658050810049780942832188952296146490176272181773962279953339427733481436738796877143295970967465123288240565739042116089312608957577249521512746913976604594280872936328822620505525195135792060020418204116964140010277297030487136674290297802331224168228238236875740968327973049181497983468398636491137473708463620160550214119598697862230383984919323580124471143224998886416144840512971925670518202208270519559013687954185096191098328180239040733603983938925812790568673293846559473264469939302684960904494794677670294584028395685752430191457692506243441477474166063971881766113919938793093523687525600350593137953705562578980073187258524426138439148963446154482946920767108012873350658147179952226387385617015371635450654979023515954628181679567720635174698893536367577594860810431159103771655986950928797666757768191004156736685201389044170195970428730798307406383765969634033922163052055874940165008340294101992119144823205551171736437541368828830090258690449458269279067670621217499570916890579305063661185487428367447027818867551367534828020199895019753342661598024190424279255769131771710761918832735833849312824862885823294361984299689708488058636967204941975948019503535958037878136296262373245854082061358982918146465162176074601369198360579067218714336716510341459557320188361753845672397697293566068396839498568134875862488660210939916014696942888874021602661696778617047161416644649311579268545808664239044041443040369104572905208785030471951509931715271753321386113894233014142046998930584512200489096134042450822654838054911165816580188773672942663967502097716230564584867960427730742747361884794396049037384154105998775143718654528206073935370900094403403436277687027816856841487170184459288556328359412022328369841307750113940801223259297996404325996036383486859410009851031668060037102460056893696877937997578742021768690336250822146134653373822430576776944885397716179320733599044217080946261160832906538450941558614250431811733599856861164575829824653390327020175271387271008225264926164823327143541898156676626267129220636989401678094736881724656417237697403982103745242529934051969324313770383214169408371084671338609501211222706255079836883585880618911711023332984790898238080903135097061321236883523836969242218224911128279439340421974835348218278047944517461416907673228535145022944492665191966884578387545241385393416129027216118436137830026037109291653913288309363242740387806581865944753793179033817328392873322274688307415280578346657301084669414240224650874467669018441590588185936596692661173131224885606520217625151064453761431693072048046915502888072584565561198752008725592754479855822569972833590948954628350171317164972744887931965254470139085765392036086184267033438963929953177718115438698858517242967244694695997011096768601934110857991901989075059646314815495698607687109922506156830022619808157115696186594529905255861599268093711108792531362063496658020006499047183599048023363495899904113420933283261288405165712268965085404140722476351840738245649187648366523947487066145563773579198112974863375359536968691323097126742288094936063839627918530933343695373372383347946250628182952563874353803110437057953430955718441669670202269394835521686016378141691927615715424069028927910145518579105493159215402841355157292278881111825648898586338230845934090115784376523280855315203534307504420836820300165288008789649792541445301210683980844428536203482948148031320309967573712521643370525541018373269761205554646535911426905999512268804935665924256694788267989880828576010849284447232792817318016224842739147609649719084095046824699849603562682103901192576658958508087177889326586591260914373947384528030693110917693526260909558700967068860936060049313122050355121085507328487034421103300944191006656508333543307973740055043534072045191605905334629447060355428274050509263514109828931342337043578252794843382851970637271329915567043846373556329157192080132090952040111427600426125028537468346382048087058629801654027400462499042168215212478750768554727251694852942688463650419265904127677113102087895664966624017354170694836574786366755453276526836405553879152845982138569189103051260501060858043899138563546754596401418915786035540586200438407408052062301118108170336647249090747345857400377104010365808360548874480350975507332041539119363446917464542491198888913184784445777427982321404931945007607178778692241797115928601097898706434792263467695218004401224336972892866615498687905300274773904996749966307419794319227095293906895411922410130026038372752691095950333121662913504245996097699310866383795994961718686573027345626409010753633552664613716885046578941306598567231256366877095810612987914289961824584911858981758176784326091173039076740540119828062933425196833373316650317439801255418210569102243710086971133945887366163041729234720621409210853230130653327354819041836006340471480946608621562921303474420702458367054563196611835142331639181205701362341706058340125164732580627012426039309054803536431439677028576819166284405442394576578288828239297407755179340424090667816406786258929345644335339177839432797831098932031808866990864084953471368331594306852818111098254521282697667236497449564653798807467478304081463501977425714370442420609749738268473673219848290472428489956087858728869855787094115635866969469386224386342745222376006864358157717420030720266228088305814310134792023715778999827396693527824367719522436878898403831592158234105961219813676237962261440131916840458791915045181430107663803769662407201702657408727923339011654002456292886744623591289222959739924663149447152969463882163323074333696641180253611092276210395927825284769142062153390383992904145074916260322951231799548483647122351446416553097292042252959114054641530155480150675885782928816838206942463865339882574814748493048947156534563347889801331082987699466084449633021048741664473944262917432822820369250825471310669948114648461538531621144103751306297323728146943249588499729496335919837103621979994270250975801102815435659864199275131504552777515810328926711955359959459121646490343909908186218685897593770501022948071098962491560451723709206013310969845732993161958820019778877354296977929200590444331940746174436434889975602113003095722427465396447576403978976117224053927357515412382079176732523459993831511869007628108638161099480756028489188803542555168593715857952960020397802039336970415710918954630427679879846906816806532919893023789701672530864955955327528680965872414705403983211180011654828027114616833209098992939671548395524536719433936492657848999922312119515288870915582218739229973156927527615362554490269704056320380038156295609238228254327499872717612879608373057553400040968833286464023474825720306062610099185794486322149381192498553331083062906863392805785808488158292271603913429539850675187235049929461786805580584468957511473836743286995746970142494937587526965343555089151624111972815266340134092863506460307021031602709145900223452612725968344003236713488987281859950690608239064278186010165897030466612619736522309130818447126882820256044158267698861054411339997679894875560967375272296038624503481408600930265404855660501501323158911778245588731597248878590461150658095299313054138844579935693404595027386917589833623411948056111734744149193509116435036189568440334931367520507049493891216134314619474560243664285176568611115671377600016867648370328889787576724410202672958007038212911766700627592944572857127184645684900227575957001739214001838788917505201849531247374983685286211232478153016734855827610896007575062421119659032593449762574612423334005610770596156031924649345082755735240713577761602983538035972132711522830048270182889101660794814131965130480017525014484019043343101848748590786807808073510796144280602656128733560441338894226700854186315109645989483258683216403141977779462119776397501526787963819488971331907822513919758135859470127426058460016386835312565618690673313091607930199215456158158464244178923631441848540374818458265959403691271941692166309958656811679136755782078693329208514025168684961894528011438523187236311579441835543036889990868258101108858877548413139507754282548828783879405435575658565130058519950153709921032113580104491190864512174662160951838338908582909753101313001617634988483014100637423829565498461242150932373250053759815508062655816478994649369351693510640357050047066622786902307292363490128424573523002954300034886318736401955644965233352812349165265662023358249204996957637491726051078169188025522615812673447156169363298838999280365987870236105186665751582830377459160741713970446542091416171831736932610118117024102691724752402319291154494431945205546294128460158016675222037537004682055257203067496876097696124295677546810238996321136461765473104420886332055563502435768305298042070206956751428361843984340451135824570915394251168344787655828093769456240486112540463711642799716256505966532920940609101453621204838452404634697275509528270773336137525028780794547166133521670979181001669506453631003647834591873392992613557011432817580428030843975307061812633437875101953841961268451523845647126105622228779622031081150596551380136461085123503484839972752555243737874144800432824949640247008051663090732091386367732207833528894793175819338064877520893789355454281575097409264243917785186982450714227780176748219484226694029054470473412919695220056278605102969843526216366574059048345035618957970811735449640289836614432185185427449347553607174849056957417120639547276076492421665495629296248680145031490880098640974739610162828585123483816963160237874225621613572065608009616519003387149716154680051142141434513364756919623779165615151278634900520389437410560463929263406197438605421441524473862687446214918637014604881892760416302729946234388060218794065446660610837052583336392366209967433963631478340409916377133350302919165356663775329147104191560069887245759568833174936766057934116740816356679254862353534841473905589885012354305346874656471598360627702003572233343989325870297765262969546140032250616679595875082436015984788652898463664230545444849757920738178913328121814175715907803372366262468310964763565150022726199128014948811967078132847381551508726035864332341246752133689538220982660515187680371109511414076755977728573371178139942368081377586069208972692736968828675117201694250965110642988398713323587274799104801029767677783902978875253926618525962047162934366927469013872809099366151032731931106291943422163882666404176419456274945315281401052867166578220507903428617012332234537409937244455647670161881802151422559064430716392768998562694305326645934550499665996302065058572686492597047174778890489611783971223499209388956390089315633996638399062670776304524092278364359606804648461087161855035473058072472064955216122072192074346392214840521039923916950175844222835884036388811490740855992275581154180395996403231235271512855640024434275752792251573532231446684800042423374972997898119348135490352718912960827516762289422986748489158657250023622140362723785389835603878502750700456353775404314965997144285298663058266849809020534152680279691783587767324775786972204053183491510380447979176178875063677960736242233082082082221452432136170260204238046819075286689471954303607941329312743312536801564911310006231706883060884167192413844804613942099242946851866511286596787840186683629734510966875208515590813472892194081137526770219328933053925294303943387822793759131852123909273037398456368468994984447574820595310190152137460952717901378900679539310779997489616875352649458002534391422045120421808147816774756073738773373259373417029408616450291738092851140000754764236272852525085786458792763979261853108065479690724277897472918745144355878872024401126615646272240011968798009471688868265821393847736028520027689388472688050129233977369747393067829134819878804853787907053043884064343813068043271811912587487766224978404803389947087357052455484022699411463513259244755188785414319163777759994945055832183802849218388974157688084272098065291930554182644479499752453683025810616168882789183574009644813703468189229717884874737714834815289597752392517620593079802787698749134332015791193949243254733750635584261140474679588212983520459890278432825695312599728995630162567803229215927246243726740992773361610123846202493991377971529637287399678386338083836906691222224218952231858311323292713936844705443561585580276574488524807856991254417070206510442323686832302619774028301357946262658191159181009327216886398170577341879375482597761136408387781314790504771873536743330015607712718540100583379702220343935272996390792505147737054793620973777830141525633165070052712250530430462002232428771141698523409143522769423565242671638282955665349591070003584458824234621988665818116321028727666352461631644689898824924341289346433490234818968737109942472079623182364447524811960904098120296964134176889546740936644681823099974735264002640191280485773856288925864886447650654249608437457782159743009850161580934228756278308928911059135458806618176757405558212245780047148642391384148878795541845628449481040357290287595548258416472143423861413697659201486946554419919950823539986605135861871800198669201244473784164388294794857492518353049587590600219470564946806432661503007257206014615732204042485574636231713521121238715075606567648089662825407964268689428252921863629054672355173269792962525628077485515449217730041363067782292729818222070775940807939069640720267767798170872524158011681852381491982555807328320227213818870616792597274595653269811326664709859750664320957748055795224376785121048645410123824532628689911902552363531988143242278485008948953111421283310578742999815233793535965511624861857683948217322371605757090057248438290766298567268360594041862027268479383501160700598462371907825533498783793408017454131092618373458611855887490166803980812400247459013775480688534166736858982838505718262154505636253350439669260857350173122210138185784683113876460683480431273494274804849214175877619791638163866406130091622732572047484689232172357394958221217378532647239861925802589480485937979601724516694240015949017517325855071792751121173671544967211115585363185412118161899206971769471400850691223054773538333339229663835963459556692582033486804780732214436319762593654095261576413223915810877979227806847392465858786400507652051877609373674821661666511458209547821711859154339711304088071286053048881740414478540312465797745273376815508278388606921330113223325656977370951520991420381458457724578927054152098357219324144080818781351801956422296366008267976566874483069372595658631087206633599924980515366738642634506752991227347376054194783637623910362661846694076546234237164283000799277066614540293172281478753206963224834512082073363626871043354925227026976812344632752257182582504533602144886206988461976952413764832987069317780270789648420883162922941129318254594258921197209763440971638114132047905737951205955956020186651514722518383308577224773361799992458234243402031284983421289298007157078636802218321795867578891878740309163691334323969646034939618071258622910189661261880154497414119325389931967342719911200174282924938080637678035602934142194841715076080571387730072985119344871894363657804106696988464290055155147299818650921735375136004553658425406804062595634163591855711076717612332592697886469621441739201115429574848609347452312633421679328558148736258098941331394298509375917758037770617464611057620597617773502461864683878052852991733695030457990051187291347014336459830367635823924920586716835736099757004169266382599837643383995583304937815211351721521888363921550265650301716415802948822688165002439169938292484578200569034760820079551128168120851781850134442432859621269081399990199745238854942588812298228597085811130092264088285759778794533509675434084737950706760102646834434356214663066420120139159949623607676745009842222623759542358092323178131872933081690890055862369393432461946776802914837832847313626517400910562024749307552564494288741618379734056282342675791030023861537048095111154705348361715738247459111124962769898790606576734243029805460567295159683200110092774554891749289416956399636481766155330446796792456491598664923496524656069758696516692183398702492553002242373609829794174597286948346191933708919608778399999670479103095907770915382328016459996365401021134759590058765507544377493858870047242228756099562602809475091688247315088904155454011733377238046140406483450704402920323064868211178107630562738079445660757817907421121766053167711425146614199000886885943583627169255124483921521571106488622415358412334118235008649910476724330120106178526348738345400532827321905815474315824459388284029001610581174402306507999303795731899717307531901416187739229945447934232027278840062928928511695746663784183917542498883705433335412754637545697172646207682950065128042339395620443549325571169827829791222720091217347321139536436850002878937860794945024040143458775746943108559327901147640959537500636442225808740738587194370106005218895270366228826943094117528226273573204971936086626664631425927909674334958834112596303465667301324163804240488449853443031871499671020056663619984021962359457914097041202105035322514268681870662586064926200660743297947372553825268295579923146305439524833882176092817664615910280298603723987105879510106660673696274426639215947654752186536374456167943573704145388978345671773744976279907283869041233817546445349218947053245222230000512554396560781532014306295388873390289795204076175226518580174219471822082759949794997309608349859251434739642995614647174949299079949182829174601661947240278786640196763146869016899483034338133563704058222518034083027995646570745158368212290113465375572783105992214753576598495218078581327039982285844856220065929312987712071396466727691076286110758999722075011019031377396172337777765568996517622425709440522533569178167550344511370286128068292730058252654891889728270048598913420481835707024058302114738124914085581258983171729106202425511398615444299771165538917912833091837080065784134857325313977314845218618741948916787528285136799484951284022308327103160514814083991866602407245668224057722626440909878238656279067518727816295216601224551737351179526340413261345704275195516072179365031648989827060792328396496792103976550677416807144876562869224751875212699503160364962974801510832264116618834671021558088181981007103576759471107153789853536099562401833968945564203866998298239456960978130999583852742989783950150230056632191265478289369368194753519510111797001830730031157869783798413313066925236582601049399545786036640928705520999864094973922918225887516385614921727449309670276972736767009457279927894289530568141080183078885787629662229397708709778921779438651428540664747094291234048628581339021574339399035852485621031098361743991688434510617806333704635395872508417308564044704177087121258107041508572560517349511395203835667580322039971765868767625415965065490478031651569599554902764921636021014554922056318884884947788953900481286908669159225850671223308614881182761185554304017871012909392307554505891702651443091878299407497457170204229742604623560884191549980571035781671218300652224108690933060067610106740568900407671560453188629656414599159464671518260330804485062703200927708244425186383062577659262401754449591813021134556203022084757532552058500066819955900097317878116863372460417119099705332407329789475988267045376244659159264885389817281665680887952379559748048028352184779966856955786278470330362795703019814151102061080374367491980921944342915920432615313582900328818757153494603254190458689574884288261706921875459472316967640481097821851599709032620518235361416925577731373593949160281089109171048281151210168541487689139479259275177935331889395927607776886554622900172221873548498260063379655761466549954842653550034731231636579516511780998653811177376024328240427659838602362446866711749669222247767214285590421899250761310597899607629729711944622525860684051658247009244647811439070813290219477626280172229959815935751588938108311956975377636908284827570145942638600377763070844474388163003041197970188353822208464169046121919383618673693992419375992391625662903664565247040093544523118921508353251826192170865244413652197459870821585648153218468916477407430441853360879234425787375050363947582399571633539229006665388818696700527187043395232459808237687370495793756498196456397332474192793127460585513844086379076048162460242719935489806936924006912429495733652963909147516094383201204885404478211084646149429572070109897156096926146774190416422805376596723532616018494100230693345450853167574068745503686160933366122324611121963975510056762132109172225210241091516237176096969279302794206826705010115091547372327552423508484689262983159204468919557895747959716251624805717215853925171122430948531579309401726172334693240922996309411273044712317765793408453999118220054743585970332097562866711621845576442948462817788961366683363441301592014956025262018713902690852468871987925228137316076257429969156133573738378241602927521321517036186369299271675337796352476181546639778356116509510744144405679514526972819265962604986200465591934849333269458074619418367104349365577845241080464208553601724525648556313507539173179707326851632699901416738751537215902882146886957969484997085032900103967675582719523781171519988902296037506390385761704857403724505393420997420700149460268530163886981443894971202196643913240361176302946656139694954418049019296376994120780458558499540265982079713735169214783204353430725303706625762527329563400273905665276841783030902241982291990404832533224923773892149585862728741091038503159793575179998735552265445043881271048657165966188405029310973726285748365436744594511520190436809429244063359020568167035844822779100090474617301990587127557066914446836133036379079284950741077998698128152357199716260838466843648443824616947928723564868520476075673622198266292599882205661862723866694905166048027553727570445185590912343995076864936005634232405387414230570984107981494506931080841421066804132254332185944601833340108323966266036647163132951168850918686681285264697354707175924759669076768138402510743593559647948110027745633933159760235244851472710566859341663563903082456620769532748531657070558307744898112591481983226490077148066969175908293127787690364360317363172840803869296440518785096575459425608431351156458290646423591596894675222276388404986573314276603763938245897841931669438220040922290098019587430801831210675997733760901726251427276255708151538498831901733046201528896113459044229007986420742950433859333895487315870897581952493943417556636849805307625553746199410642813085097679983149916779173180044040287536516843134225005278242782028331782688556558285911041728944014000692135332784880684383034516643558969891544857458901950417332284673732797210276091984284197612514790187839704031279126081594934651482291134139437355802998002450019893371888175481081123237749936042371649153366818017952700912978545952344168340499052618806571449424142321472095911245845068198660849759342399010653580533477684643750782129467781732010497345936248705078024390886072688437927776391744750874422774792467059344512813738463439817677913559820232865203311757736479975506002029139435282810511671718548912628180481209546397513282773601952517367029291342290480878935861949404372973023436966366360322982005326774974553730368661903429400892613066620854424925784893061173257010026191369055041283333746817589208911262362094957438157218377737373910297789330565062068668371598525892338834154262576006987928804044742944833157101224343222510054686991485659152799857888794741532542718976998156947205204458906636335688611546903933352923644442756417183739629276493346188003618722630830096279797812672690887379631364447411807487667451763742754558029565858725672079653081335331211301890371909491457310481970184675785445154966996163162855931399030312845947207535403480114917847498526179386264160719911945417789667860984748000900073987214151238380840397364228983354335949257699454955405083320224655750876423540738436384599433666540104277380810996678528492926726685076839641147383872540178195207361154064936431799095166956157838479524541777839345125626266671692893244649885024821348528906703292337455730187815083539144767914025095688155082134916520583711085608003279407391469268046006558655743800410641008403995408869464790950131243847203954678340063198654787974835803246797124506698734755784251381525955267388703116635803831421253044558040513650022356912513522543166288556854011606764289474402470965177968696791382403335666093565425841244093181103356488665800425235716877295162867434523506779072473305568043802817759974200670593669928536856875698687072326978491881283064461715104050407901797603760674586613166586831410882635472403193434379312536856441031168671896236027940281884470806876247523779777070112614645583979878039660560568597565046940680919367404298382094503775660256722320698555190142569908304751029358994680471418435884505514305246579867852526229126184106347194575039935539387413654610186820243661689518305031217291307417988698330042629726363887560684139601210213781382291324087232059072190392154312612235616473979285968886962327640760898318829202245508169455857219614287665677292129317600846180410275828022338863002483225922962840422218555710695567847096854326861933217344649238235804831252626662433801165460677797187750225906961005180543563963738556574842830441467137288579497612724137063676467508716273028611144489309006605018799811122049785673191610145802140250230111462230567140829926245500768353902100546462897859729446285512628920805669983139638966219313711601880488092427685487318150627573568763480835569738232296151903638891639745692962852485292280485153120692846014822601953295644246976281913667164061726937573873770629299106598513250753240266663418243349531440501903306888677592825250113466828464706477721434497489020553996001059548348327044533628249128982526251088310036538681020857566920698152692026668077590254777623317763274904212376116849994276029647968071379687366810374915514988083049600496583975053497418289728047712620325791044365402680436990424006411526168051674623765613788055233941188878477801943457846024073433578598014294072487275683800268212528994154057192058087389668373420128962398303509798486575959308916658407858689484216873396024793450772707138396331378016647513647521932600896927515300557329161033646513568567718701820780566063213874257683777032568009362663597554434041021205484738325850879796080448057951432566891151615027289786250903667491388929968315510158944356553178653264130168777457029140972797378745580951824082165959483232668419166069138338950489809746789278349129709714178651840548310456737919710412170530382163016687849086635938901985771464282111494203224400384077163786570539823926340232732873376471868885619426193442178896826145897067505568869730231599873796641936617462003679537913180277451891956462730283637853472991248045845823743200860646537090109639191347866189018130403951862241584929237819862113960508132390496465832906915082927105157055551221393513261985232599649351243779213163560772811429472304931767012314979121283830651963208263207206286769982690143071949952548073589986423857306350394883394174112039525347286257318485407746559546217046966547910424622063320721655354803867912960040566970343445699309639511343424675216582939824929728340973092127378790452934481009846338059573479820891791776578908728459849648484460235390028335267593749420627260651672933908796554068329306866742318557947265729621300457410810845405340370427885564912390589665314390226692242842698061761486463392893514368763713894660561048731984583715069966996500282687205835872975168637897240312102444707284514400795014287206934157477182828010303031532744889223892528785770530919508943994777137532961880353150292107955292564623025325837250175506266257513009241861116116073736544106425725055517881163992983518675814856418013079189165408632795207563499219423107311934739094863142890525386412388090594822029672698203233609281395528016312817671092693880847489361944153388597348445490147203214543574146366140605196852197281014387400601347514368580997627740949827928708711169474156398226853302979764333337411035703756100813025337274578912798777798866563202367209941196899744214275197826382276325978737541206446531787032569310770106312619381304938324676245595314832547387750084857669819385434449623772602703259381926616771124294136068110371200728250745772440497718384321829322940347895574382750718332249822261969864193748258637289771823834322734522773464393063258260264892458222349310700457915690950898639523230907565248446057390702561943183361396468925533508231181549769116260363229716890427523408225151450521129976678052029603510219455648391589570413851337909573721002593176421536475777223621294390098932442970075996109991802733002647786394033862236977476910228125517120660842945547651860257846861651009696565910259343125766178749434495479020086608102371614222952293106552510034965832781136868059798446188784807870403353214604299436933199987472125940595442632679645849533876870823843211293436313143698923991271758630135098457760154675792436449447726082348951091666947846051857665077631497559363131934788391558022293190868577582269181545812481794424278319157408684798468911613037939873802033281304710864539082766765171567164065811705989409900954966903423302255524009807222841500829576563756933374884526792790502042795907912704045741493426145714822660760265659038119131474009360063174341049497803273549800042434663904240129276357195667249715380077443775110106279935127576112815538797591441180214896480221901431464433965860380519340246415803650895729372377663783642918179826489943677982721573958397863349180265953292391349351026579707626455010764950042539630067967514531819211864370281800106734744092258150058354617556138237854809078096993879834749419210269631932839011074496338268505911555922930793520941657283717579722075929961455958795718827771654435853904557841438678114327289401685616556015763153842333935641891571027239275730995522808943104678912569331693981646884298680188827007022771215804494468611459492035394734875432659209542814286454554597333004811234972962716615895655300058179758828102242592014555643134455094884858378928085823007467107443456526274279742075834622345056276913490363870791594502971709246586016033522727550507342996919041815769336176093355245456979435626623833927630112207874631188371593694188691513072397527336166336538442451574144963134088073482933378551033199859710835713870586136667987116045199334061677008336417225612184914316060110344649847803611214087045562791840511733986883065597892907203233228109287829692451231784062154707988782693156054736060192271022846925690755397233561213752199084962376281688790984558159055834878264272219984651760182296507317956184338108520587942408337390587499758147422661175109412105777566885991538759738730744958824285824875580024804266796451764464144308816569423470283986640004085051403682011285296385041341588610198796908188299548090884539068336246741448269170114750586291850839354554535271557871200429294413259295504196798284183496869091261311001524444203972476651905147568072091333335916001712424855226470179647850955549035222880008061119268461928661407434735963114555307943500210529608669213286792143204869264999759517840968108508050166892134429370174415088848172215242356681374359149096459727796430512727925226042367426817394720126632806447853571524042234558159012073021619742856168529772595419679626962350505007510235956155730899567861391375758165863689272482003836242449173999686927719775966132439044415375728165166213881998862683486416808921994758550774880323185684756841503803022686111154294984906599778658776838275714342079197448532666624573249762433621163942145728171086714745466881044960427148553249079874838291726621569810094148302449463044260483438749013022515390647596890946847700042806032736848207450607232179973576433129812516893743570189584402163001968364461955728047983900506805071659829015769708932879415358412265506910300649940695577761569991703983976068333464827906232472504435977600183834537979097396373128369999099498555920949234877385832013233842365671048161008133529948162534593889299729442781093923193821024400520055426346807493676964282918148102277015926696700886072213946938621860265728220742304741440109024066982696866201909143541738930945813403327614224514232991685017779353294971401886406829266686684717055028612691302163095038848434339461243091751585499896825512080698157275690182581980950049627743812385988290288312664088865141006385464723549310906736415854151531981589909057809673600079111385543995061435778882596295346510518867193724520131938077269327082123284132781153399305076838554911423670053816057452690679216454878141290756101195091114899465830563263080477548315786399320581984296731801598161902947933808135702000347265763522704494721844103304210462367433735253459807760758771329826592974492676281523403278488192560536913889847095141453501910883847507036892183549201007357696773752980081669493425524500600905651381243766808070233928030454219645059138112646325661688321816699726536295584045615230555177293393180252213873428106443019766931948118894417702253832443543734642968385138687135993785708868754958965007513410332826111070958341215775581708647318380284355605746513625812028070146056141896966371859341983831165619359714177520204353868589139699347766879731371653019825861382390775194384931186008720276939610582587621197436464717785888582885699600353793781163788320232150924201838723026692057183511714401020629702648504826949550677152652597430985471924093460576082104375693645986700608873529563469471952806380231981191361240330331520747485400225341284393790429569030365273663065618133805859231766954017950157797668081694514811059498110346091092703611895658501473453902639156706459406241826643122401092433090436601210172576729632498070928727499755717250036028484132416222800976623766391431887330751047713180372900729221118831250865269898412728267609260938890873509798003015034392103139701372679603147198762320557743822415454594916613919797668355345463023798903942744853858817778638965405678073424648811883159909625627172189715451841886863649294500612924454384251619629989359154614666873259448110774576313248760481936150183567366810186491570256592714211497001886386427464453226008378790361016027912922892336018656076230982540766535778993359975211390089350414527939972896694297130009402410607068757526104634369484706585484181434504934212700823671935689374214878696738638111047959619426160401662754221356696591320168358884199826554768126181800621194601926605051065034030711093007303441821336740674621284028887666669485200820148572371395505843254075323451152129833799368017507081899374420808970646149787478043261269779370886128664045966002325694241975516407007014323336012526055412391995239561273780319216526705815700769029633166346393212952252932259530983001764628772851003692468877143689520840113006245634445758218057193628207301144610547618930954553415939157892915939260601123982144951054295313755824950163580251136514029871555216369877702455107876549878985529991202192550852136821584918993670907163003878218821712873325436396766376378584590908515699422913852994999438213287291490244067156878968677693240725322073024821528029144890142127452072010530065273597775146329203144114708520639046106008234093454811268092983599712883653010897041997983260354239743939274614359249396331977687675195684334383053484772597250456760769429530407787425043239547535198631864781560455371724307614238782381601251506803441308730774676900233391590349132200412158212036179538672975907732499398073350550897432128205452156891037904564122779607629996538229284100920374858792701850977603182844696742410794115210439039641283867434333025391051449790166899933419830362050971063260060737357057246562175867026465675754609824883254548388006507587331584211826250801187845980747752423979305180177819404162391212334824049890054510181197764569152266383979160759724945760441895505300292008998864690095322525298940917644436709772113670063430695835490888144099144274826325948304661592816808559100238167702364958320097890156159387931879178420366444491685409306621321550525550393920614404555891903756626988821475429151919571634333576207656918396572153221976134329692449223220174323464923564016819059898484542445015355838817683267186646572216695333819461998260946795381697068418320961182944848673707005876971180977111729591489209289435280841923678202668739456943158873614319629885853342352146264911035601526087015717058241833893661953034755607403922484150840462700740240518384802662805331221076934556671048175615653651122946058361580229721864040185305865587933325143537267996806918029008362469228860391120449804349255729118703100953628670045435124191624430421682067573561636248150366913570840312289075919260378579974552376200335903225237792027403600530638663508448477973976057223933237204381764408325246064792065791400687789572604998696649071108967949926312671464082220703339867906253352510348804754316062240493270114186372601282142627568405619630983127467827527092234471563431972235504366462948482034581295927433348915821758953013846106615284035498607848546189112800611054747938850420422981200373051334660176625957754569843627403937796855194956305223549429351434481525322559346695087466622201118341057993614087113969546480891820781393487877638193416414017913941618409733678495400286972690769156361773119534920885341845647530810689652129949225366244643645152603503285216271876327988963331344843158963954401244256240759632443647672585188712844367291107851618184485027185559629470326473671524666455004571815463775478204157971955418215345832971390471960633628557712216774304000206162463045612196310244870614164341302254527537212147150036453242454234675196705094408796108336284589195688453067278418417721094231112651571435290755352359058516991065521694542392180123142189858451556075712860973113514461670681335331301751169293866532909259627411887090684162121842046005475766720636914275340653120375054679341129414880657154885472993187702326412756865360508909214412802697042762148177908792960701967057495637840228117889830703049784576175372515216976390376389956272644274976492687472689429965235994606980864326072897627232730573803575507612540248869360154040517172320327816694475822653909921679483023427038940590219173056744974854898759708416777851638453261712414381981974188516361805693882970910614038856349491727389764574044525878233372710100245072869699776855561326081606088900644715495961873257709007572975080186579392743178541517954933086846168364852649872497830421729978042555715752837098175816578895785530654378556271196637721281815040631937283674530482402038340193358650714148284929644854823111020267584769638409358978858448794814910125450654374599558578488848719172632703772808325652119127340956880200802199941888019423705687597907021841707070610721636668428531228632081999525719460901994938234768362272908378527814275869472039656765210566829282941936800936840141467126387554046509794539080603415015490126835379795836449287210148282719345290217613827515403929048934783059877013042440145030251218996281696426455947627757161779144344253811645318331534274345955227197178170677687627088396873475485545757773617043705237652101094813276227185320434789394797356365983026809267757624701383019834485595189839855139517603890843813305544461385413132065923692352855411875103176082155470464814058435753998802990477868499353467987571879212128494220776843209026058993232876146356073711335064734932730702768778873809546095906539021082042130088380107386206603501365761977691163805862389151247252504100259337605880936959517243469528424369481189233617739937038785435477277759153731063797416254983244280349707667060144099079674053080842035184216150037285379247946973415074185551556979936767905221087638158422085568771622128602796535636906434854772757364360234531884906105674760780952579593267632000091306175536159460958833207371194900992286189403779406112383626620321676346927905812499520111513510867056867666058154864837371158929898933417018054278964764979377977205152195343024679953911912935357454028373398597171722923152189384982404091886347336562151412865178500557104192882621134352082227016728422114364823125785693817919669529766225305713851341119027004341705541243165686798699830381422567145509588316310740630212188567575901870472764450431935309235546095527106125207352379827040160863329963478536046256693379409240768102476743427366952076389887745871510628715836089742915054941278680052392570881384030793799432941821882559949808145086289411693308668183365920878845060577802518239608675023475188991827874986621333034707606429720004689390727961691490154185304403765351123503187329710770374988220983176578608266659291807652431198666648770590897299186664622175557880384523385052193508169307817991785793938838701716959922796014492620336885339808556796771861187476187354681366869230519106858017167421450978237359176918866683136473486872583286468838123780320888226479539118197666654721570557457648123563966166742833502369150810372452231274948078704846954739102665135836760291792876273242130518327553561139903971146153622380732506138183355907691254686759217795102245576136552139270494569948980553277743926878110943106509655417872645068152122890471640942973279060116600684290371715399070410280089889950436497469623706771122108500404225678414932288734357069381384500286205951751472489489483352263614630836419855451662433440924173025617202179594945971462368919534775452116834639854033828252215106252771458481519361223999016318944887167886079018992986311989875194404912445432739966460293059636603378021120453031920203456285196373991669110557599928509176516044642818163689775982548471765312839623116844556591082133174318800332327846272088359043141079764090162611467628803589859304546493526349219620886286292580262589161411878685655219869443583004539488722948742605168258787075891936697509177928052980206781364604605665863727441441951430775648097963006863972314162463008875649385582337469364316587286764891515997519717597647745308002523201973348933839130006833652446938958820586313937475029934151309621443686059213801722139361288075065685647509459552411866351947101575005010996063653819601434272950999985528938647380996048333642357389581649295284508208927712610246226301477969503159809230153448118275923635004407702176492624874697885733360814869148556820895613892902299236761705904817285520402625335693671863071266795235138221293690347027151766600542379435458573582814364107941862911619455990585918103648910440850939616457740322095936604773276656855125137666435535376207551818431543591503572643984139157065339895178748818755882237225732768551588591405016821638204789177572909243262126489885590636943466795320262118921555082094786683403530705917350063113893793360534940433114410416229197624807495739635618261296739860190961209112195861452921296916351482294136856437540429712613065283246215970154287828306414581509984779173775209688106403451348558329835505401554295447977686930433479737314503722774956141787783295340270813021050363373804817558105623465318345837835243029122492875024416075243790484343011676075405863415360554951076783681608306473019683446168448100995918157494496439639802108750975197068918979952906077122774931732307978727356275194152100536109919464400102565432731798421175046365100313199415272453854076670866948594957833426006697215428147210317192498300617870165059729515295066933503273817958673110495670398953281200138646990134880337435976610387833529274438311066528830485460415883246158182282972455725634823566886447224943873832898355921998217357793344460745261358386639465222677385167227604089556763594119345064923632060384410798437525228453923194139649705322334263193099976534669976113174995254865570779312343219110555581887904258397622507772059198131064370828275186268638445370173933592875326853339641125256864504901205176619885144806232290284043283276382106746759185145327127534048174287384719047301080131921419525927342145002806508762126814011716040995307173153641404378876354891925640999055789435100550958636771587811838228891680382246432637666212688473426787077571874115038588739071166537674872801791647662192672090857463128697108607299625400422020977715745395253552782280301046547152490429450444064452223005583575068874354278168131292235080762885761062653992085775768101372486971751177392518143683241099673110453478617512697407085839407873992649560557369077199320498769654129927000412737873790005822044147881457069742453443747373948432769978699615325444224257938748622211806887792003609152423492465788602124982082691737271619303309611029025522718869004986536713433792255133451728925388458445375554299242705817414079772692023296620539464322576522384098834590312016178713298541968789144362775533021271106383866338682562566165644122499716307961217247468401660652123763680634510503837863774846130639324263294299059164594095144332743017635267153120046773489738764639104204818081604766596238636593863687179571154697226492316751861949098742320660614972271032952320512495072923835163412645085146113687640811130077995365011828051826275930520079932282842777885356933408454030218097592632874083628954723371696476911176680820645759167096189124482917123752882967728872763110677099710266781557903989188710633075957061013320754774055580595986675863937827510304583583362023192405936431056114412062713022706989725962931097619564330591457269086227973381148224001262899741955686253479744018410909494294848382715967561588112009115226030656125773352624500033369679655042569797555917463766987945503804875882520188494196135508853048448174684551355758666503462359848323517470740281942355290687114087047018862529485722843144608522005492311801999761905878903144236301425855835435334540846452129999864911700216359676061638245944730167868863975807738740794838252340097539654996694135947459652365173873587195648647613595647252937101065854573610230144029197001623078236251558154697430999486140844544519163227157016292734666442478598781810412475956542963314914894325846850364216231123908629498631075649286381942007943721293817913208372823346648148612150535776155019791195058177755787998859052078900306894603296503637718871990957022116897727165155190749402792615716016933853667161053843922589420678866620974884464558418597951749365950013409363517950986504108274704298499583118969922331425930917883290765926642133190987904863092532941970639817797361257351623393046100330359464785540931791532963074140251536199063428652898302537764385191945339052569442880408949384030801422774117186284903307119939270082429931744211411208705650658301327285719271829666788239808185823695472064121318242173770556024166149831961688628337250724867797693160144692866007973911196216262892873101747016499768863902034037339750259127557631173366034057037929939877616938542660541025604264228644427173131248007070125744756485449996191756981274578439387374095193882915607489179982130425710530295583026311700642017443452592140466197391924615553602347131008800459410000498609559562167713063322179701427554120553163795324450165913970327681044508386366034865167059870768044579067091490828788983453682115554227168759291369010069397513249439352068048259269269675198580212262970595055821385687503981090445542232707787905826493621623661480151704819238484522604592761321508542476236785065954927790908058010362712102296043847366867188258163776514746887201857128321716485316580304371968180576264183859890099642773730271062092235657722543552042218146784511596507846532386134930511233758383365189998054142122171869528444741679563947605331599091100205638170538894415462019446610295509396209871207742308916720718677619635427839308803405296655289905933507097929755999598589234220920636133679528502947618424742469185047042482735278382243121890873362329394201090323968396099751644175332442306856549058716618965155203750215646203781249124151099391258645786350646888209354416740715524134264552020598322631466297759249053068158244027794608598970962789511447736875102828258215081386880778488526491332068636774044612328607224533669108242687308349443465990938317247808148010841935182635190803285210898604641063328550815827006613280799578742854614235929194103112182987326117278258652735287609531365512185103600561654169222074489179857294655008303966139122046525471133612883215921799893809013371131489441295582669908965173709271331658565185860611400821674725717840765220519696389238855668302407127313696707808091832738733189462336358836717450137818381174662584329164364446802412141214158444260441657108001862230820522167697988520099959846385616617474931046188740860592985292572892926931615828064205218985705876820700310346760010653626218472390308194510036353933762090319624548432218907791325504175988492465483581383947067232966348053689862174024149825691380929895261956034705649624792805994996623947947084003825416976771445010365316505734639904091136592790667194512205313244092355523851659316431322233604165641111988245552059355248227664349065055316684516613393790657142767507719224336056224682723300430451226466574957296407064349291459711080859534899636105794774037956073602486169983482024915241940397764531025500380494336715365560055744905731470444920421163424828722988622032863494361728640313166109981313788086208348574043631509347488832815059692660208884967492705719558097934876949496471396651576158588585389266049916053009389349343252943167564878343971561168057957894837419168826111680914940642689412836058937077127463671378516674509054219993211651831618282929395515765732841072237061045020096797791729408118246525617257943459786190406958078792254171820667433918296839716865174906166091918213645683349058682456857335116447191923604019862898168956503521615199506676773210148855680891967952058277097725378595755304611074820094815097269738101617936780005449560538780891507084116280620378069418666145619338988904884717488741736576584659509244063074694645629884291736795045101815689694799700935949238841484737685227294680068487753950535232888130914040205716269405262647428429907387019530454583181949546578134558228671985516049476453500233533441138092086333769926554992098467553204121416019315134010301335175240065094210766792631914724418152611115776531752258919674713727913277165623129487854832977041484682879509722786816923940356109938043818330180724269353545934899959330516518150978618651837966117553950440072956916953410119715248391816306965873015047596958635956364357464996131265651354376330812053760720746455532113174613593243221560738334538045231560265792658742273578619321053597797846235362161243586152938049789345496853185096977673695542584586275279488260058462297734654869660280236278768481836650122511999869726568816030398344445886539285605000344004318985582790615102999245536719761290631749921222538506724877743538026436152031453537583467196332272721609098143457109958519141014635479083045417317357824636152375073923471923598946893405459227423904310971496265176246091400854524767251910439455384696569044453895312943045956963314257994530493401996318961231525259580770586714723975299041670923127793490929959783348574929823959921493554450320393336426475246467342565684601670709917244678933952472352186579053524114274404214483796386172648426112367340419229166229796300169179332807465699081508295173972094490669651917722350469574175579017186042104940769878818727024700551207192444280742310406299998636885014350751937163350288607247855339261948571692621030063077102631578877435323456560294375465362794541867184844953285210016415919679133310594578696184348541225141772787096893299696898780678589854997513761791343282032238746704944751301146070320224017682774502173972348739895950217732760044411448275536896874771281382144624840979424975998555268762404659466373236034996747244771505148740910476956707560311023629076873608624180723374244164087842004613072946742732662470258146014252877418893232503011650173794607571082178084655118254754568798315830505015652404665869659577771090619455415199575949576138814802958689857040141898859122007347573928385736644729965943864576080483602213200010579804441040925454464561084854149875789460629624929551528533931742672431171437484460001328778300313442444797768975256131632013809988182150765883885537498769220387909003095724110951732008136236317136308549437178367820971425026839618877211357522546654787283343668070420530369171882323300762002665505420574109758846200317133453861146388931567157534470266723298569835159952280954954117302362192580212560872208436668672170031504574799348339437856961569367227338974637054117335712320398698942749314756544084808176249260280949071859115499902180725976890410987063828617586097267110399779328397912029057299322990962396304255815421392780117090906140215747466154289174146859659389496710497016189614086264110039853580573757411098120878013122580131554526806481608718684166651532145160125885626296719045510158603401299999080043328493422069049658046381522404691936006465049266570652003760046454871947468300346303880351560407893712668026828311846561348077719308643338888551683269183754332796434478495980823239809512282542394582726305369957467353943744469007394528741121635219853231384415616479716159621075372243139836475717344187577187472216441641335508272089696411194332333559701403507734243799472587122188539366033530895380345858115505359690318885840087562047361818706281010545886478070624441247535592314102847640040741652240404066159369203333771510720717399628154412191286344864820250773225033022406384986163996738287756987135665509248400846207907021090910273232339436429221002053820322497883643924022233339419640184565837641784713338980636786207179091706518100532039375105735598715798349995112677026415516839286231374533038107106066829748281450086685343507940553762308182388922781782317747205217530836971760594638035050785886295498062371420796450384435692055335431652651169857734269157149531915899579100451962224867794098687313875305664917943281546757944244650765966226455007515172444689277450110928484484155170381969020956595727063539804926975374459537056679402746584005273010150330251100694208359759707205074126183451863631937143000059799398515687541400930868100636184986670803149108994956059464734826954249726397685989257431921247729147284164128229054910649059598687736238969641957388779667005645358803435957446098856035964159899717255959445239328717835838623100055761349243070518137894876218227588377808360096050837876567994331719460683573719988653120509141265109717213626842252530910881050750288469264220617342825427645761903815357395589965199738803039632166676583883582539362371588042483560737292315521159407832901462114690280507460801896417973951706378115677355010155179105873878703772050613542707887641875593218736782616233068946760904781680920292310169726852843747936281093213668957804844231267066148907364690649091309196680905543405387991503325830889870029789804217373392288779937474988032188690728759600648533034299971072885802241560519854127341699440435157544020267420964683731079393730559731086492471604607412270592793141083420131800143330409181288581245659252503881923458304123329545544562807612142122399007761827673107548034466236244252711009614756780694168379596722073886494061234773677261886630207830063105383629661923994246077681108681219060160139090261260028063987191324202555772502561533487128157270601893198581724430190647418478158596036385565786240917940590048555627456277436819752930542092454752856818976122748951014899585909407382366225439100678706207285037519100096600100162286803981070033435340714997242389083496201779404788548220259774168602766905078118080542788226960661112031486433932806071080851376868180744291826090506964873280354615625459426697746918493078860358110595511963279826166627773520810743607163383566986598709700436559445248148233247439391181868486888850007659931703455489515219344147180864223157928303634909148806746279576984132580500386517934281902711643076842877435669537048834949495631860917850330676606934050088729013352632203019143017806303088656340629769429092367196510359334011202280987527474112241300059481050180499920376193938964568180630013912260169295780173651897927155375115677225719251896773420626342331418026129143190464922405553588354570343960824418096106569025881920736853698177679191805876605602042017953955263451455116512290674441874350644608186346512888255426912071334964993573961384297926250811963084514670392380947436252971951297514872336486031988806237727907246206956029779847862519599184143775252813872686492017794525082637488093356476800841230976151363081732150593326156148764483957942245027712287272413268948074972103702784389954117107930115786157641076812595651601757242382693869812612842964120743532992400854373874254804252750630793875512524556480494872279007964783248176055108148623145331572664428506695706127780282050987890303421944918179092790782249263642270348713898811695620732943730534952939129426822634596519619544335372802426406595194214484945623348153745095300172516763518080458024625167183905007328563431901686975791889294700828383910908925417950867798408048402533300584600226324352286612535091413265413313754994825416675101103508348905296775312027884290568039256220334489360866087688552675905818200571134630124114538258364987442631717894125946943912487105878066868306355266865650563097286976148183047478838868215266247816842491839948666033392684208834738980256355556016996663589241987750241523475411942067449846614504567883873696340995019972865297164283398251985505281142175742651644619465584925418131162418201683008347936960291089897797435635969286176081359915717364480308804150676982967500357907780115199840606021442644884597173222235269444965572082343432837101236628667996320195493378175335446550042522142770565234741432322850805885603843073238390840926682588318535511356629247654027721892618804232584621620224185408897730618304995537294893954960886536368119578461008758291073762459383493974559081069398423535996258674658707925691706174257416622755783279829262806275098259176752743274804828929936571452157961983104144829707657086970346781528197971807666198516140838226586668814940452885845204392942322682603473115885262887804391554662066730175443289322952431031396946452200960779789374470405780722937622745744712877548310820233466914042559595723594555797490437231888877697091097495676375448853793136420190073083177944527445970596413699284106279348729872446332489731841474245304531934329747070412789646927542039728916285442202235147601527940499765893752690917683953154572522049381768494898833277210393155558368122577684354200995044257715296021875509345372874467008541699764810815187727043742290664152826958393310383633721875591953084912311033269427258779755657343014670083403877411762820943256126007684885662146200529175826055644540275149027035444781040505633754606099751144737244117845070356874588956043004677197755359153733117292121035521227693858789373786826784434653735591330916856556906911114348901681547322757942207795275295377625028609339240029705425007533234337923682687966583109711962326822652554684612624577396435801641712326291988987319326648772474110338249542388757733377374398975744031293942245492658589623975782238517206710060786985519329638483028111137127123618868350770830861430205010716538544902002807563570854128092465676442617433336050196369291015911205270403012850003560806971926361108179219526900643121354638960009907411580445316302601114668451798374339691532456943276355607640735279018851436122305660650177568615526254711808551521488687086873154519260690581891303933347539879301082532928596417805610710188809520940153761787530414576697151636667855594437075235177258711553963934812750497789064594942010534541145628940672787099992236212401400665967106718352818234558582848504166872809929702617617028702365321751392108788088555358655579913395647867632532429826168001135933646892867256541170179333546464316024385914204953160142287505935797641398236955552535950561786381810955316148227728029917130186950451901698474351801198383125422603988548300711563007493152618900254876012582742666436579100007790874913830705325911298756077478809919488575119951285692367597943693018246590093963176377703597976120777743250442884303718566911960779432729777410879251806459319652685192118245490852459579550702122599641012737579158424348431746188323809744682625052495604313831371772212054061793728121310624781824315997899749685134109436681406636353590272792471301962158496643490751075727940040361824443708771980003787945944020452772396555658639541498216321389209246153519020156133045042821372139642262268617001949020210669113389178538770276935641780663343157358027192913728144664528605676261048665759074742754807298696466743265403357238231150633635731685328836332021216505988052756696892893600206855053218933490163606882990389461221270842744593542133490152861304444670201094435805198801848883480921011454077661911527230961440208410851927411499929098982308692526804604808993918033730478515680111330206422137582182240770961619905424917080465566668873132158240929666419254701657758145830923557477702620133461037154748875674134157245989043477616312773030426685170905258750007201473476746820107529276714991248492965834388155308405265049528729002514637323515244837818396860436545593283432120450252842412089868653410057378567484178009970931337649881091097298815444351501395633092677047228814122245926177311389252924221729253235928733142341216598860471132635517980342996908980549074960154098823768587131358447366892290195680372527966278757588300464430623184721712037533294637573548955229851721712963628675887257675134739924114064474934129882207702007619237920821303812967783697534472158195605162654573415133754067752792555568854714822491335608203939063712569991568642203779695400256339232875022125321627122128590977055181168790930566023032810905729793289767390663647154045274889949199677401084396296908164750714411355747174464015713121441970715278500746740245549534398812574860715751841233906381265629094676502721575423985024282653197447814868564814513439746610435206472092117421765736480854999596779141874249041495022926677776579504163849846903347526031087582947455483223095069628556304374216399267888107294211422218686973504414625717205929988606956906336390649339230312624282279599490235961257593406207620962772827859349349311971869234553092207261285128734424563412244154060432875712630371903129683517821971535360597765857287956948116150713925912513973599237643707261321475457440652824652738151859209184753937350730387238933578358657277814358608080615882907546215352573728118767722686375658604408758946169410983475212541690703604057685758593002558995775948551615115411082270666337173268580701469282865044698427106579633484321958793449931011669368313646164488247592972428489432428228040933816582671307012689947886190541184751637809458905295695855568204701077707863778043679609839009999199152504681857207904683335620989804856200881527461215704267010990754985982086599182152889244467077679448692090474641969140991152287798684742557080932692113994117701486718087282171309036736444069941038840435635457515501203647414905178559984969638948683935488524538688800788529907967539742711715204883253100080255479468469120197276986776860237085615442742165775032628212322023651040566365474335049576294124857178404210786782758891357548595809446102520383780455645727691056189742513399313669100329444461628362959472398291476599188892897457595803303429985570447393092793325105351800002280630314694666842346213701031433717277994369685407638819011651884464894721096408329332494146986087572051089050081407759054730380437444323895157797768736803726162247309984414098646245593805082237029569577469555273220167755842173366271975593926453744004688452222953038782730593385677006960478377608316014359142551057177067320980207710759171482718973199551804003032362809588432393128948173929761696358674224961249527393696231995485974362198213981805922164547512149159720207110482268108046278353705381330930246791423698201448085998756656451574661286928559821053655552798203415727157803161461095705439193934123158217465651036753873135186717333408045239075058548763467849870065819340827818432516890950931986477751402067952010064511072647842953325741278939504845561193070837462295839223171239648184964857400503026658666224579715208980077666219462713699817464884609811374981865977753046363864702104742795385357906359148376838901631636802417491943267431204503886052969148966208762901464014429911902139575886983596524419400201208968198246291506973541099224928507569073473223326874667321730868660538687774536660539419180077040748031411317703976933764110390228789419122028457317944111929108657971429448279075253815573661421936189549070851796138183355145068667619367290690262973386151136961048927785584180390803091942683598540501159957557973481921110479484377215628690220023959349158110136188420065755953641628736306089912988312733543657444078537991679058753720560280672256724681744016615424842597425133609177399149579160904904225345362793273913540739025879369314246164770815968661915658826321048174539176061323141699981755153402956813510478840204065431904563972496121860623379527489934935575696717716939466327839800910223356743157292417718737967841410369825389427224696387162414007083834876128182416799048372125673500567828304500398820077926673440396832414262925396157025739559220085609165374225296223774709750472551245954615459683972003452251935022805580817922927126964588344231646296191610336634348496355586207484521947744825481936979921601111558621310660172793334417270809700919851364187316253032594987731682292405672547566202363186453776992896284247683636056365094459645034638437001296579666422640847384545897095971323552528397917137530739485371719183887970466783482582226394219960330232463351597885610724823567256259424339829995027515231921958543063524406729287143533970238381150441171988472200870892054015081841099811899230793774092247923052471461946344441522709383731830804138320419571033010527641246292451407517697400640007543790014108229966618761235401544680471058825282753610845751994705170704531892536571219966842763585664145824416577287487726162800283002220370413993880158553052346180800327456490229300622336935996349962091632668936614750543954788363376197518042491557546878707389884024898946980277748322988323769651523466538749633868488849087868646741244117870228360661827548864662614603073444760715879898781987751938127393517489449798549823552363374566705645082495997468223996120232353873234713022590563479055839434176961700189333581762125106848756809249804485338739895920368628515850762451159042470541829532556558523964851486388016351347482669914324717714946997349074920162309299514216974291762833723506013128375828559925603174661406603956097749151781471881263226256995905787352878502564103242284822925085641390960336637644921326956259005421792480311857297346993384831339526558433852964382328312323922431201195850436556059621141997489670265483956529073270503808762765875281221181628158259747898158893732176809857152284899120242983455549092541019106345602003720287916302462162857921239440181241856304493904069935714263043569866308949151306942037736520738849101544276609706050599911622800636969611416038112193755444714029808724304051971098639641167473517656054027632023937829101270228856887315227606619638562973940791622847457516066512083904221068565626601964957259179209942282329663769524633319092623458405783071867180265558958095493353838255263796720320695024569520311724519469523639145173263537999655172255874149672195574256543096286181398730819890438093857109563699775842431755068606045126050762727330117763986711139731120996593070468806492706927934991263120196862675151771270078442136458118891184770617144484643789522436069304792419403929121190167763914265198525087979369183663750687944667598623405052739127194509502767284675306444062888306285980150537644628697749741153563206793107813843535184267223416809785872755039549139215931675513220444653723978235661246411739362198157739270580287004017190808937082826239140812494494793836842690868133831048924376209103035973010521612786659893649807323140336966937438173327345587253657075051104423825740368350363297882777725461686617279440338107149648978649838509579359614507657902092545388658446982769756292950743151189376989574935797815717993603564412226511288473437611585284991998136351880777794603207129523708788856170372551206961175586707433649752027461874127132755667211160124132625801701510563199260821596554843431066024543211427408212353444694985736082396924312640467372983256756489240865829215272011991703321227141146616648203084770815994246416079322827262942184713417257286572706362800543223938052794908225375864153764002128335450584652765289964827422860118638599310908705279064780446362285659703601442552768963545008189063965517706154247845545779489701005300530281224442815684742024479059862484560459926508546565173746438118500905353440406665028505887709152064621050573900852692592427637462173929173707694837048714379453276334475692386887478309573363669439944822767788459952954776905086602555926769806620562409165947374594477818221069412885221613223230799024985162123780116392947580543112538262727678246122282583852491149375533108166638619762667278155642033574349103881533981196845358149595249285362392229692507315485318017801848435053084821623626023699989666934271707812398649322886966057586545962358174336914420957992133210614597243876623793429117466104779590572600300193645972227700256534307096877055192328557173440214505297456680554486895806312818263456112251439379182963653166364934025351992257920814852288557134020843700948557849690432847572871883504247928364007222286904923810253747129651729439702054957717790970440537538921952577650079492558412598552390831462395078116768327782359768118904913016131146604717764477461572792193007232802826482877314920839479553306784808588884176747482824873383517972983198846833654967332044270931484553980615652786123677897468028692193065067641800854922921980323295378414593892888457886275775539972866144138861762649321027791457384639926819637389412920547040815295066586682884686885061513196513337004942432386345103319754355777691051548657339032046880610258255529216675038494473432164987965288722225606739367987634573717078495210890932003039936066127980305775523280615715065558913179030378462756709016174805528903772968990234784074298674896106877685496026412887585429907568796787011190062192984032397046723854820540116989110189726501839041069493984059960263389659502656097059183554910450373904698928786600433036884457761372105636136047375982245697555878193376798155841350474684716673476874883329446839033543443500870822827633526322152326501028132296020168351550169817564273175010551484378327401973474744550687756243563374705418363804537247028877274706151378998246788579750136510799018993001807558020245152436727951625473825584354573353251408179586398286150288482053229789756613445249418027790784443872126057686270962719298642092177195940519537895256007472754847435295314114967883510300064978802799162291758001857787745587113843280356636934637177943851667600321338146285994634895034439293545917385383391855383036076020732018990167341218595426260693032974025244330846506750547715517387543364946813100410353644926210767863365621515388114529696926904096020349488951122945801386041482295699307570055279968168995401441253069903972652768870484373473114854975757973713335704939825358791548459426646249699275001047731547378117157753130538989464745292675526856939301556920193896435030374907738976571832953869565083886117558969016582233898400285579163885575482733775361266033211066077904093284882675144749911592496666598296324876684628367744769955840627774513010170875950450391972364085423396931888941239959461566036473781164714092002283789465023089480869399921568712326177756900190230890923580049993221142728739111866756739359223150996978597196291591015760642004035579761302233908437402723868890432432482378207283244499137908695310332982109969537975714957931556820266672669852748887326893053304456482736965144500414781062161203865187641819586244374979343269765475583924282099540990149927779878670956498774659476125907568675130292408500665424620129765071359253872863100647491674841286468237113559058002069154136472660590982477711783021484144328477783559742382023229194644054883829592431982340893707615125222181185704322089286661431272488424855339442826151251708569451520099676800500697551373679341547379227074368363589451043700189589568128142423582866054479359643394230353249143194829223933801832029357213651907585986481294815958617912442340088893480570214879032986351335052905621475762507574005661219803356513795730565625614931698091275225403685069418190594376792010952217842347842139405647304134666879175102755115683741390415377540811746350059576676225157841310435065770474908176508736590942855291282238851522937027599507461662581554334985491545754856716790751055405709066356388595116635717976589318492467903825388001743950573141110889677545828117889300651384254390599719591591705422890562625456280226805378058609939292967004588986415594320827252546702249867448093530475238348894085286177043385166717894040130353614351684811859077903849830535338294086039663511991325752584132175402839299939611423293719475921510183863449809524520012042896420991547142132525912535301544907456064789212805772687253559872885953443446298612010969018086157029350745961222520841929432818677010116817574711171715456746203711971719075550843933900247452443162786306916410431176922940195127664105827937439598231494701909958429288784809897574798980191972912404202308481227335420030594752721733733492610759040208965711166176992956648111363632626027572523372132321995170059638306672235406859371750793883517218804977196592587000595669191901904503939254226400066245530708745698410555130156233176645784880214205274767352108160138128238639360474757257984566218549497804108492404032425398252146437612936222053461746502121741964582134684824630406308370483105858619069670417988281548613695188400689648026021111939097899790891759677780094574541718547051809570461322026000818323118887442246470474956371924426269286493924425023139401208032176263679453908896096534131598425255520002936522683650035870990436871666101047811653384811488438959568847097340680255124198691540394654242780971244388039350548577594842162783291668062346260121264401131498472248019412856585493118361870664733120483370656651410386223142644317456594500521410821665037884592078935130739744148704592094808825412854455212080465457732316353630658258916030281494338743040526083048767373526875783400564592230455282060974717861776173024880068319528139427011413822881986163395981571936262918734809202498193195387403974034369596354378782284625158816641549708960523969956520828368016618244586698161517838187970987071573035618030260043944135616063290027862845239498522527890263266218579712497021277537768002115230058492041979923583936068856565181563706428695144615714571930691200473064107105061305848059511706798051051717508273302181230689533579603471392440161687663757055389712996733821097288722909921751534813321907992556122075604735833386199436815944114497488480882689270593322940769110978053793776516870358531792463579570080386210102706148559275088362562320017183475302520838599564007886885787520916258417742413989530720351951434888628126692528579214903197548041693390863286639355464312149783762186297047004710434183402815738674940566116012781832391247535010738627235763832063092596796869420036603831224690458616564401031582271038552332267005241447852795949302926518504666392774583943852319235692064265294780921485277791483439167925532263652334131371687477142414338340339778293885709400089872282322261586401316016313623771810350865214931558383157781290565087077753925214771331045289893338191511845854454509348187629359140617911599650843919029051506693039478225414560596595484738884432161555935601817491735280451834409849336406026269537670642764321843706962496756289213402781329809637091389735130225612872514734484690414819461410562811757150092439362580237372687358903129724605383890626334349383709457099902223825758689554608353227170245113292956907653595969169091791601136547402546264737906948350275734541201662196947147733914089448469981157470805336681068193967213477726688423594556567337783317864674520870868686092087742851886687525794446048236799651487861042875954837597351376755999126413268949598989895418332554198693394975914382229921795811206120451398283106620804662120942433839218167253760801958750941098274449958507847036832012507230863962736905751148899461475034339408156848029222258138336041948951764811974594568342679891383845343028104697364253595391099747593363771277782287558880378388068492367689746358097551538759989333381303884689429219019091478096663758713482016285348722918490001600317877397508208911305021945106373857467167237448767169279435849479849879156318767380219728820736679019693673200918634722332819393196181013338389214219252356012752166815550801582671737323901830196279597413250543608523028795254380505464557523479772231933452026953855834419693433019024674684208906341846277406835486333486039256720794117602294353695595613717594552098357344912378994546532644232204106747268732552639155172130149653265159635430190730757992967311019336143828538646261019169526794471079183302116656265493414593029991994668643384014348178819586218953986659048903975429922916323201964420270712097577341406967870694976710169334066675904190296752600244199933176541171136984683582881680018810551525240768230767017611282878520338239325706271921616714903478994537373342777217450133045294061128194674718472087884332217542504278280102674476749729136837426035327377466407598413704046394876715049235511439834247767298604811189421588758163439657660955223045441770307657527021672498251428231047326495862431145124162107276237135440116802929764232876180698281119451518710583008996856206597800504376255470270662295122503171172559310213489557717417420143363799105089602183835745784558525878647305116352549910789722777472982274057788539779262337334805824592947207608816008458469655532990494105069377205807467342504084558088772291605723626960620060958423583757458453837279705795255265576369149342698551880789925151939918761917047284610476859017791444599781817635550258484578966611032090845013745475313218891289054642866739386958145253186468992216839563607429407828037600351126512066488009161590696300441493779038047406969606409006188456014394414875807348435130916195225747642302320792424335346807304588361709630921203205345650313550316834450127119721397818504157374034996391593828841526914484737878229823422423420847388760176762831017724685392716210362217495524301414113862709835795272807104743519702399410529947326227386235717063004986531916902942889981225202357733328096180753613559584227840980879778097097134369906560635016146117666483359004133378323270981983836546614472633329693668877693926506596489025570396653738964667287475609152072257692305832256140978436433011677230405838803176969779790875076597149452237339158808547148737962394606974018510102113312514905862984596178045476144489978697599418460411480828427433323164478059079971315274012517070781044880144986735908481226111766051855567656403135623727986226520249322805930380395134068411124605121757084724844923368743506144371197086688809391379944348029065660350528660524368465823262557533696513675167605342431620618967520696199795258412742678550592484172058619426403148750502554468951325773963797197607495867871512033203980958555780971099679552918793506640624034532012003079135264679418511288563043648994604534450398351951684918770321196167200295297850541874409955173615598512196497673099915405651320266714694203350894245014638807563915477892422051407282641489129169662034209408209289467795648964951484078242254193915588983726290226428543905088885587653403677025770559199786467633040264309301271941816554339645307638572519525924012036730322739594892111352843910856735866700601537243841573724740206772239994789789956098590300439357228305007077966105766054656129007515934806637090844221704226457108296766706415790154377495871725243116497330612586710004754479863104120865174135349968809193451157954027279864613058969074003232625381087049845658312248148682904919468407919934796896574695502848337064820205351253117811685761359118378146405202480073881835030035018638088580476200905987871161550780338961724188348942897604257973033538460926458102233905768556963981923510770656014137515860564319765404155768138783056133283896898235741116953684750853352758723420744173024558176239326771600876678181714680298080619832363888079076650940590359376441537310617570034015309862636120409586932150997130674560948189807296570834971823292148942508733933829267993177452718797542705141916127094959613154022600364517816741474110378359449315342105308552547117916122778244682630977628848316380435205443596664252519046051467940133343574027789862098930100774183079995315760142219012763811335822786996504916133271440865941261184213648993973603634497729883392962731083672820564905326805178457113509345425989381523975038103097022959711474697495571104500351156796467400852328537350584011718572657696174386345154726143356908275527119329494377789667099039860231390856567228392699732670084448171544104460671127140904461072960492583470352163275946563729097712799006772304580724608370738387584693801230011284141945809523859856528521627560884690630856068560199984298790098480543109731447360412163710421788914242234814334117633264658491643890832527055110269467913554313787761344987627822146791050020695863791375096069734029975014869888829465649335882152692274148211402513428966409247823713598871790727951567626668552702623384383902491219903213861216999872997177062062555870695674457280170907399199692517824706494979764336382691150504701717426544191900532491390674269866717026324375944464552357131567847561328740363169536384747809091981469103381926637479571071651865659965832303889190489496648208532067281643109725092110253040339829627733245602887866471292180603692814534195986719371319756301815210147204482705502956953213605068664127784925136232909281334960249698446227031687814822438933607454933179749045749015297365002259020208527498756767321634282555416463863564722299188902063685248635846805215222241242895316471269092853102753615212574756141458947382074309994809971643850624724510162045993185793358882687090998204321856835230807285904512133864066011225490608513996380214456482124010586171786299570518556495589903982090378530196491973906671196310015657477115813805240452579129075426412557981691425802401025499770751806164229773996329384449039078003254665503930747534649037407285032795584055821217256479198335741890358765669229704826543489623668733855339326330760525179961963334138377488742894115267135164638028983200928316327685630485354864310416554586113335807351969175547245091020913122173023849384922382750347484472088052430783756152152983376435991071888956241322421896779012695199047070293307870777279915608436368118208235215455180543781286524349782425974095849452652197638357446392339786898974099392187428153176342803087357623103250389785516668104641095943849149691817196338871375017037900483518306928516338747983672282341989915798013627866560850666038707052245062925102752613277452584118901579149224083653467819304359170920225313947660139933012149030721524442239341199782143108625920840355608442133927526129794764445493016766013035122707773939690671833309953349955245558680348990199945517544689277622990311922040839511614401060261601157110569789058321036330483954121652537996022991370907642493326073515322664717762263364391021990435675811598498074038607820238961986269182226157052289274717882391835467807315218915277978826883022446856822358648088410747244487415459867467891037805856593046002620595292664768057758570015049664094204779031953566950339532385538967444505349660819063244990544221778801707254561990379226223862093776220931621223255079036821254108246820663628705125319821334064295929478286308297853619425651108756581998437270698347333515779536766328395484500591993070855441816470296650823318209566485891644484156023453148043391929112090931860550607115456299742877145807766781699262417884271954891831809998250067370501549494441124764634355091918720919739958166502475427657072131636753046938399658058238406904208788746089506123078772701593924294575896320165862262756317467893966850911301888252269341150500718773723536346232244913367645331842848890129900873743997865009397263330757615219397809076158284359600884961396641961313185663475129215050635299039520031112427917150241035069747038277270417822308698991210295970001089588321221287215714567688250232077415030202877003443514293800355811654597930129718261175389980571200126686026093418170809850089860072133552772913090538548788800101605868324554464885619609997592728899847036270850102397171716188313343089136562040717173013558183073838099482486579735196040375004811711299644179276185444575522612097137572841440149582228822208599429898484493363879277445558641006217370990537312589681316086945995518694075342262160267676189106844307495796783041398249231472923876034999407643086673821166236619054941067237329843799066474355690474264776494787599733391182174585518241317718758816019315915038558577212743126673928131429145169894142866612185515119402379051463162783557006938128803090376591977490219379373488185286341983871589960999439603735384946902151011218813717669657309566339326911247525069315187896831505177433656683383936535311701709051220452174504971287875489976221375789326635100931057117142107940394683375950462125350592982016444390125366716998591659810091689957488289883796201567916827229520049612201286698922516405498920384308335503334584381131700248954558450891702563315664245763593880790845007473601777482558690550227531308053919123098196929536210341099233415962779916829238981090623652020644430613052190680927846407783506419386272103032902279111589421226686474204362593869704140952696324989078685201067250405914083512997840119737391462119971296724173080524028733304761870771156032539793213300050251468047507277437934363816156648352832409490379962770336966801336010294937162879353808899815789023702656728129137219965019452991934001637184590174755616673139077996312379373913964467388279250234214700308928132970706922987096089750429218851756626980628514758036792588173636289028793177131277788791417580225351104320592851348205988270137045856618553669778217135297441461990833311808363761567939643926044626165881601386521788269049337604011381330726649755987293763250822459736374519686131712197811324502140828019618790072305528096929993200802205498360174342571503917285397634832465253137530496453404177512839053737184157720877402427544630956152553696779079523212482144652812285487967342969211220078932093056194941045367318008580329116314526581874780927150419823342466236041385892462157767730859332270855062397910227074196463652207046610724926946115837798620098694397789127969462304334265829001643819797824947051079557515223976378970336612673099926107304175761022481562474325713295694801231555877222670624930083794225789889019995419271034280373112295942585790452413268533405626150576438944998547235326190915150609540350537275358117864315664186802184108191864130760752780679244020376879564189869422759283207152059721594763743705723834114358809840612254086463974207158924254886351657729471864268399211954678532491670165146581973824328762352783892994770330335079029225137936335298249302960751793306145620656888824965490346421572710229468345653202187166331667263915676044907040415636227589485896164270675194523596372970498612077885424877976832517914139247996794745895461495533577569483631088130779789541146174191595252414471616571431878689271941265001068644542750703734978059053404977838288176290086853457666720668935851294786031486971262876193225279601517455765529143302472103427852866944660074103987864261890264736957006309085155235199242100009593068049976551358425868335064003052436781945289968343064753316757863504389882701949278440747191225340914665716421445892863774670075855198145268654414435814175128610669962566053612000353455728372626306770733145469339798181124449175136857602252583314752438959787921195742010624724660360731722208985770110598949367417167996363390888146373513757607534053165717059531372159361661305934229990349646358481903201118928262502562084644729082219571954214540337216326813126952662551620878636467742705584889500843241023166080374258147640401252368329667724938606687702386209245608443332366843770608947177224234998491956962828798083091130540161913271536277850388344435149050308537284153979005395144582486352553998975866863628497133093026004786931909184226523055229652523802460213468676163679426739082349776794430701630537861208243563339089848596149202178677095527780313941469963231965053180881095944484790563405925622101927350799250266303492926465281988954733515268536872675496204153454227181377687906757724285614386959066415852876850420017408210967363479643084275314003843113353332969733345263758136645489710600442044056768484171161828946387796536965355321498273846940074738611462357047287978875603815839993427036733277380051176900782075166288315755073244690279275204287260441655339725339057378949099933229671273324583356754124069667807115609345399234329772897808440863448506431266966333161827644690035216894016661341731838293758169862312326839204701312779491532307647890865930787237382702460128136122838846544008370717115057801317356368740271515698554591830187039377000195617673702826178028034174909882268582662600262163147902022255844572094059269219047295242964737140465413861007661124523361935527560196194200757073476549031706552716052573111230010290574850433970304210262568352816250757250893083171676451318394537122442220368352102003069308396249405352908125142943673427621184700895762084485210292790294149379760985604849444738461924524785410431545615575696931333326340056626655563888011132204966359911533186453002414131325964449939821120276258166416934398180297893370220146141863130137095633847552042108706666101118675153955741426228092319465772219376223818064948421413901769765839769296557870374208924416224211534020855266203632702986996157711034620021848105904550920949293674190683565660444207278509469935167411880322151044513675842554020334735181417667075960311087709397898207261234129626601343784194744950570877072675229375970924397731405243730369371539358817013919364559668583313158987578022278958905026191526847744816091929192314535844661487723142559011265171163364683097211564402185728002229151286285290710281944901483128432811802490195488304549352134458780546288824690093019524920609228684225515528553743253635758388544862257685538404038256457496238274008916158681901913796214351992662931798709522420900733962298171843190999962534860506068905627347859748528838353041048063664072709392294303437710997049929998996895307984622548249243660717231312540268338435647771029309530887043831548834509391955582262372097620247646185168116758943436981650783029273426149552431175367637035515572801517738063058938309743277798466605470848745121393665621843884495911378178943164838581141617479795056469735182686160297684060976925276924777196790065673738219879457230408702013323072768463301239775610972814220929831185611315338730662831898213348425021252092273140784216983675663331686918626240601755854735095240426004478396245653107543748623768313135038787667322958516221845527742080785304706984615521206709344676450851861178119478040153678556379607594292406452967918791591832931981711171951165762312207958334262050774245814963152731332724733352216809996863532971586366320788771459360801289022385836453567002629374613580520813783540393777526149928572208422542520725386516680790484514630630740909214439816087615792141707156548090548169212616849688859011516075853679900718970653924226468408016957025339181206873807145931459739188228125167018000541456546864960745006892378141192175864864035686047904144703566028543935732538890111046135953999220070878795381302803349515717130334454980140006108238720672267362317789623225736745896220110512328446593670483074495233307726957243047010124856594640246308508864505575104692002111873762845588249864111329005680286327524968955775333064591040758678378251148328969984858902195721359946968343814632037711200478618296962544834828173026534490094784422394166147715823061845010017861831693697828050247031538635421875011248346997566782672338328995329359340010469060346688624707205349949356066891132833086827944026858682080021122087844310268785233363615921642961978808723222417989923019368400997096473053799943742312061690577801502759035373927519019443215958303335578170312231152215172707844637260661458336974171362662254494715752430006053834814058514518405753524922959121980258283060649136672730309792539631502341178125604297476488772182081772578086096791867474438428735431738976409958859049316004806988977773496644181869738551129026796069173611538181493676954982157118877355004611610177168972395266382630855005314093229619619022424247506040034249895205901426064522417457537010865388830832139171160896332799557802242097727422355751708348298867397278548369473610561479171382430908815970223029856309672573948077518063622734934397312123143723233802015677116835571632891660289892682701113654592326553565061286658241898135256689365082071900934804904232347139116715413571713124871624362937108321945312128459583811834467168424693616778473470547987434486153149810047893973852582687507893520333241216991567908255856619936632245279716206345657758994306802976851834319262077533249576154207986460689063790440389598997294629373475563615703347541767597771936815894840086188209097292915688057552409838429435988983770974258792207995223047955873860477480767946369413544044108045528920856412568396953630762274569865525533195148494119153692517567484460445638262515828348562039437439121422659516363506652881487185480518933035439514544729340312879262007700406528114658223119073300773089526159237937969948193577299242794998966468770059533175528407546277783574284568997759964784398695683389626371733086946637363630905224347819529724228668054591063849965442126371883519793010150759815680806006800568671653535900796771757759081315346165278542580694532052188972782301175140067191739535217670477303402948427921021935691680512901389210062021807981072686499226560260329344983268222841714946137311189584335014748889240450725464478699650015315274669741198478912958044978682149349688354069474603952892539106816702509571778454336763700128458744822772522909825114074770468759239821949015815753085107744841381222709635237086417836754879890434033080984133794678558160472823780353662200201859508066389535033184255146267518055505302636308586938005477196456824400662867460171725846530378250233573260768223267987060079305479978722065309468085459279066636315511042497009929826207162417330681094535417490818788419455336162944393512556668417046617141852939157391551646886726535984693393776108949525497893963523914923008487039836566918387587882690865605003996332945979116202444985227991675257138361346713290109977496566514363861013231985256861818691196333780789256903302045859280853731221204862513748244213519315190676243751861937177205065070950915199590908355872978745930593525083879101009943510468679176216538011226379916229725317126249098699749373889116085070563605601816147721227967872935004954980280786819993980735586245143014960108036351609842909795452147997316561903174591148611417072460158853018960322049869333312588722503900175681584273221392219819179236566117015845453108000204906719463787180743718305128974680936754302430562610220996183924118984206005067091752866055677762502989144184998323636683693301324538995879853724548592523282596147661401955151017900450883719059079415746273954364384792501919005791860645675317153821178809150079430092017222265054813034538657423961023156389105710917382961496012905700266793238119087134600926416609226236419894301199363697862921347538131067741898645756264190266445610383112369390645847422914136088575341911692230895803212549222391356112542589687933711476082214941862626279428477459184559625880162256490457576627101744877747729971611684256422440810802008151069173652580458200288796317618240381493871643125991565350325395965190741881525882351438561270360143729506191183943346404871432458054108791050772860413312853594936435501897723739268856982279402255827179568134146835295873519142035563637612441212103340892669936956297764518631670852322612139784282705971890047956259347320686768721327640198879545044082612201271655922739533792838451112597371596426106682098645783085929355772304438456356684384539071654746563042769849423589625813274468174336059658322194227211032998266590485384032148126745973523108545637443042208489099010093041667372829327556547067228604009666931339769526209947970358913421323035883332507479210803031918648166010994922833506801563562492726046064335248149715217288672284623532683514335539807761627871601940617585867742316519169164363978320265390303866302048149089334283470709427299102028360366973984584370748788997212320709226708590977367963362611296698921515243523915306485427999339399789713321037825651328143866221618971917719761568714283304011839276621278670024734970910051699782551376023517517786917716574103167969549018557955623391721176976274277473438392935940297893619588721925145393083111330836084850746294386670438621441186323390422560261764036709011442885230958401273388698388317333243573306533816224148358519695451864708946346393291387988526013060854130153103072590492071030557663977166233152719702090383506975301916613249020789699471191239542634171071040199675960613410843414951139537644719631325574998068436186026413700258462175640139160629956054157785633700149985964591707471257121127567004759405745573517276968705081814440081480657850852033552023365689753308886199527680388987059826158079935714067938226948610122843072187326578150984051029162310376567310261357989049474323448233557390627109088216685414988712345866380044649986794387510083366523878003529729951868405315549346694798304324668053983521239796423756085022804827508648750816493015203839503824399607795043856653571684375179327084931904259663952370202842437915920830176907765689756885417550774670842418059294224794562654915829164756973910528373306902885761002757974253186264928496766626819645450304730209459110044213914687816687739093018304340646970227527440002128871104858341875684385231635842360869272722748939135311774196145397689086429002175760638343972500245449661113259178697090284828677852860823943812562628813038363769117429928377379028086860153149357231949213649100612372098112450747078422044011832765338437223446086417752628616927432736647842484833359229563480083120935748026716812199170509107268079065653676380196108671475382910575646517546424126201599328072234719713199954027929566648427619366368608952416847468351009806225647374394310957682788658120868830877169049304440633517698353607578573369538028285369602083553845572991243196788067634205246255955102734573987181125069634236530910436922052590098031072969011200259356920299627114579900783482043720925830256212324082891362976386173095562440776617719564611508027554941640905082411842171916815539197291425353553816896893569042416700253858406037596778335522567718477351292676991897201500954136208837390453683045133071033842884669174108291838832907631678903687688125409107522872151090204449900932128257392660393184332298560872398740287449247683895982286292201564868740126666679302937272671090860758461085665841159374619587084384604507018685415433865724266190954928192142668232839498897838310242710444304498691046053313741397563147683182777790135459797702609876406876552934448913982190248336166080346993488035254787788542552496487274368517842181728910071627491652498525438728602082139619481227804458227354114065112863610058577183777880142596878085593426289303062979160652798623940967807668896948216681732382527747676478523699882331363854787751773877599152847195413896197085680462856396263313656276084130987202527996758511198479629361473675957148830803466245015858979044702173787186618195207545192460380133197563157178505648671407358573778558776455956988292259190378807935876207640150139613213207461689576002110103191958764850785932428045979849289442063291476683543543455099704037271293039913148967078298193285102214792282593899676506947823014128647567565178595757618537178420429339720829933220891150636544712208452198018216842515421865207149787042709163670234231395339393013427351911772055094096151852244220585971052654422132096869759853673014320733007965393727774186200395892412868051648430841139312352167706831239271381349119845051433173408231733083121391151563488555485214132429230332648883823944403825178265393409667928157227279319485146806436104898532209821768993685195517167714945649907233771344996803331547953532411418378282908079954726267047371484511979371441290029459841837741429913958930448939551918940602671961437686598478713081008614102672681505670701731897598554291592447430618361174138268501592534909403954189342242683118781927707639578987953348246535562571489221981558907081718379922656429040914108283554652392062101618671193743735171909011793533094294635865159240117234732295670037333264019022544896719551204164040355208386501604473307218640614339779243736742678020616714091522433084666140387392060403006194098176087999126098517205549983105132130448364868486956043053680679331768080031134838203196434851789240504060566085944469242268760932298806925725145563051689388040462553085500318273677119890006324889564319198423844660795063084917042281215809034495911435259100672814142345010827700275155051541484973070122051351188236067422423736845778963498407093630399949085352124558554616892229610967827019653827215669792183807342841504856342376367449424488003042546896537671965869681130427977923439773021860399306369510839951522326271025150801450897035224421289689783047857008740990402999513843235646886230318050285397893189653190402059353328849253433836799047605298430839138625100270956461037363554054161071764359901138760723237763131050024020686203730467855169062735902331676269608373309449388793389276038792942222027404991367564506120571213541196968301640241679569776965099605004467846915500788074264611499885639702762007233992295766601424867462235095838318327218264244664136809761504977141700706434080463002180111209120074619278190029873604452608831762978508259794428286330432899878244578986657465904001567522629084161803001285338714872835347898418457535965288130851724795842946978204681518340056059275764804119676294720294052920043377993479278150181312160640114380180145048194449549760272871804917018857565369103851004317232954115778428998359762856005267094287721047768960355596887168916391445732457995391613256427303352984421463481085429947910636072167624795798318554528178470333084501922332988822609177643819905236192945585594445467944569543038629060710400823161059550368702287901639280903623977817167062245217677787396391590868436364536818869657879601069688154364870811001605615761499128873249524898261171999622907630944235535101800790171159385084069166931072237379471341292712997096247620489672364363850783269978035349532009381060114500513733111001922942263313620229736042508990865580929857816880126674351466698474998698526337064659600312807701536603860639624901813346367096742735318207300819191944063022016850361240757044682718057428519596060230777330620416761067263576784517161481976507977641489965361039679477235931488395892022186257325493665974523143011144599323286962118770994719098144003798403886392427497004554283559204430090750822419240865544149700983917411429794905313665435743678719068646793700910824588839543699216212785239068599133528097417886407977165613882479327670959387397006212398228850425500547115265548110251752830989458787476659544477567762552235531795515409548767637946974271803709499634589263862718539914299866870399272710441679445307342188983043792679844847949226328214595990961689656171484750166854005084612742559941854274295766339290892316913461011559559955983780255919143597007088201050752718429926387641208776721558443735013064498160716004443210110851849448641302031586562557631852081160985239870016473437335244506921415317327589660612037578533916476072953732668265695267179387956748353789970514532617835937392233366601669563954563999102913984470070331991126126288065392141875989506755972218266322960780871525936548502597094045894247251172723869615476754749636757048286059046599832757316737940629989359807634840623682485065234420180931713853194834334327418738627149523543774723247617713224532310889317906794915174324600769934122630528935933558408290676857879887158450003303208936671692874144336844660881609671391287410485152696379189876006071750021078453841870885260626228615744406969586935301141642021989033111099829539198495628244756998054573472767611400132903549938889636690590998490044270458661002481852204087825164814899490551800014749159649699681482855011523150454284066919664859240209952100401960415836529075435708812559327822316637530527965261191342487335805594568826462023209791463108229831241131021844327623771531128430989720487925197290496480826788878796083310407458502225207077092393874573230636755269085130621577554458200972688618657019562345756472231948367818820028038429156404925730676291828122313022775714206217672066313280995155510011756589536472657712117212187317557217534749740350905487596462203355237786153152058573637910322764675225543903114689327121524344942754711197665251785551061436426774990607310751765643900550232501002091126754434902575277756021688489285996442932619126584285360903858452418010012638670877875005787874733163983663274159793421015584522756864371313956487648812477847312331909691511010340316439020972572737415321723833720088485388160366682260030175132885788593936212259008583413779612422611127362433468649295210755069364241818973983208278395873535535327129611421950307024493077624153526223711129349961573609513681698647568879727532211289095336313159765089004717331830081226974532601345095999679834083019885565692016955955860734291428531962002147313140827590516202914568015152375874330501565407489024129413680999734462454868204194277724072642232330663652375043157832950863325245831598267552975214881115957624450949911296974542973715944150789318872243340163480226688396015595827611512327841283731087021489424215588408222306323267786721195872967378325942980566694248052146906973412065812531400783862294098145781828892796174863602244310166596730692498603779472984750562447328956601113246513669684895173354715023372150874824253019745884947396228836177731539404039881031441555316916538761217212953972219316222548392224405628479589325927963845810500621351431470429200292630699185654989518705357870328756008360674331895033108185806360898910691773884957039416022566654314335363085036261301397701670498270196001031807941271196596551721561444262766833007058629014621669036704134224512044637713522374987219279859504753178585781423228520493029210406117215266585095272457101474043780467476474277833845796340308619778132186305069124392062710750890731246175626399188938091752988663517832982176681263456306816470281411539756031526380463078243658996727154689796758209610888061927727653229730342726069335089038211459170531032332112913987103259392969809106483804361834537639729731812950334912318711240170895569845235351474437309591496524529150129776435673512174068590179501792001371674165225183181425361509865206752968776729251144603803402028866089101945037303566655661270340916639704161590048609890406007871555459972587350386588870868024417444183908683875740079395585551899093622967903113055394746934258083050802192332005289417538047235432345471082340186852746887701534374065332892275128252032600585220932190486515372527380893144816229701985513269956492053321244142879486762398833868047157779905961609142594112926274647664949331351584094639593759001241110667213638048930231897585925046591898315488052102078468089390617657014251739718730694574666706535191890856756144714474933988443210668756753525513272564702812693135895330893444055692372738553455717221228873352969270283583311284798177466377555788720455646209431400674658122816123055848424187088600844049979208051141312937684548351600885136164850301048483405966608085624032459675485571193214564101229465189666848732353483433202204063112332206659314997437418382769121460633719734748021166192205791286117791788332878934544904799510355046478054086313274878725770241938478438799753608491891742980573393546974849379740691314651923491397041649709055178624488360560625941007983408912581727584764776724560511582036416939488266286800295546661962901166273066445231175535978397450525922420291478177811820675976724454251829667937624004126129177865566278307363238183896188308340510498140948015912615094185298152759555841088835134117858563837094350429658583234816353652060604301324630452912151714576472576881834163041875756391945964669204834240543025850838893031285539854386749002636024204524346764582785355317090745342635159042957259977003290110529297058401745102945111346515142881001990175539466672840083467695517801404859182949782479910482692052580153471072986591404954759787680329795868084664432549755148177397315630352862504311641491079970465065470104748319979990229890963139951871813834470996505455009793880715682252662387763763463677590603960627018765205970633127723765308146339248630208308157345628400970763998862324804053913525631972591873181806988769778681348964972598571624363298517106665731123450180651347508930253306183137334081311794131292421576406893237279602417780554615553917475732465907536420976282751174801199307715910060441327820719959894916966971982772873596449424040478206777929651229341567123638565716553984142664764034282948382977434353608103755360265370307954207734729303561236486996868991259555104030893718867099111168940239262062950448365507940203120710902005756319631451696833612566835541378802267808953834784487576206464864991270755619113815605185232179332533684514758812171432441722987821248668640792934070497387478346088500140534879223855796315510609568051689199344609949266278382908974197458756646597006842711801922201481255265601994443764388318802319842452753184893621354560253245456286492238554585732390248403706227333376022584513515305715707161169012306496629658200888995285602147508989938619495648351884365937393055277855848877569348933627558888708142966850690010654215822142257565034047884369509295678500533258151125140083773188021126603428471012868959185518485092293981980078592544037958513822539462991126022902250323094294378286234750969798803943926843688390970476089423360411616658445812838363092382099752206204789123506015385568824965859899876558571343674100180292055657645519378565758660581582814639437253672171612251271472446642289263213504867158323914067705286322365788566376507018489206848144559297795146169076248328045776602593399448285233170732598218723362966186138362428325846209321082114271687630199087687852821135153390606968582507558714895948580905399837721317733848364752812613596219317717872640236813646976146311799837875519668501542263746033905971532992615238922932763741592350089186897831481317226921752700479751179038408429034020786522143779810080157491879220279382624153006607416320501450830952165679028709538256637221354919781068768190273368971101107102798604324273366345939629382171187692964880849617473166633617449306708022569197288366775329458280736279953343048430894101658591238258380107070757156875426444209346204299928251810021332735195529386659890655608762021313453175429099444352582253841100972422477056800793049992032355887854366824488937410313203638435157034452138727810259986076716754179193646076524914247888793287289988504902213194575838842384126060152962955027640651835994379198046628731357417342385632218261662970159199224420921145687267597372155454875182553644678874381574988466900511291791531129651766239392649064768754172574850796729547228882493815760651537395589914872520667180944730590344245526191603664955215205014907755570140491656389049317664123957143678645523669084199065474289538272472043366887342365267749571287748996153336354170992213411636761786707844689424202759041768446346416719037558086409815718888472758479863285696304097829452336012063134429242902867679065282887043243432009922756740951152999731188815248327736040638810516930730513100711715812896947712854064458555721949455682921054220680142728175372320103930021789672320461981095723513738918719472850789134375870678488491165065019440487877937831699247975789422418330445380189667049089682760322795023560828923810500255484383319878545907924119417109015444238917403879348006043330808819394351779278265348023576916612817605279432818596325573063137059645136710148634060451032417792047673148636618840332313950855505414946792057279168542336339732731911324712009616571148997058113747688019662608737297433260143324864481826618320787514369366742580595788884049130522937320998696701246115609046603378556307129777795998550611175127285960610633255749790737615128477643519961650944886951968182375408281776864328340485199865507108131482967320238083132832639621191935417900126450364148244019477151324710913876367570913662633337096599388454645775174221478319707435321107323230265384401477887695895143405098140408763622137407249296218571309830515123438385541158305877819930990834862247608418470463818542548119361654024006619234058806392379246429313149290452027492972694817603024335863836156620502793202132112946095705647217517662419840489404195519711095210492347196044488711834784754838163958399132514377496780315755854776289228668197181984154226225825224025923386449677400743574202314967587171296674572389936121613946758279247244996811147599269947513931594717669342530185484129123028684266012024078414004423412143961066128028365589044972913775440931201436074887952623366040034179416232466831084725512976444884552166419096525436531298308686598617700468326257906219632900757893293623823949380990223727484271237287488944454277298954878885566769725676574696663773410383162327458426299504591023762590534018264821699415866962518364894463169534936490540678128469708327901712419986422323443850908284491374128169239444978262320749140444418363798657620054128965492877865435483659976358247754506558889743875392303808606704703943500080044106801341102472091652947151187767719111507274246116515662081736510605534051351605000654910235780810014905541151525866403264674349215660636019425312595117180299871732460398054303713545291285258774042248296219519387233434534156629986364194936477349555974224629601394860489235309773461792685093968273268267675006790759412566979216472933408232526752135699924110666865318900182363824236924596372852564931110235652494680734792602118755453879417125666445315170198337996324287689145628256969706065774684160651600273035345579530557447601740425581467110829565137248594271611374137313828404434620058605001450986481634543696319554395478384640640255551848465271388073474638171868270628020230565580739069946437356713885318325856380503579810614343402767797425528378053328592466639576977310938141204878590936222113560338991468184075436258139740038933350809092981401099721445415360536797572232235613123156244619450128212444733390598270648996091135287688131214385143839279092889693616086754254668045781149457518712328591397268661428269176043922924686120268713469762472660937561051979889391914034557274607709922996490749539893526475433898666380885006270132932389913396359430684612183901242583494185046791008742481440170962518333796662098330398281359345055526192515653015451834235284709654073784295197774629167228529862939175095555972665162509960136653800300552202618859688028712157701573937549675264740399776832603933366656159648535392034515447381331302516433395013550870622056528115058018083043967395103559337425985439021029607942706548989751766795323363574203457015246410024459040502285674035434963715998660122456948230554367048256233413712080948033917093850823468947530157894695469189191006009217550635207748510554418328102966157562879796001755348696353800427907314910497127670228622602494693282361944988679277973786275096181137832735001895652091271854962888266284267820714061137722610660855443202559074261982174101325110474532490428606478870268997758428588253981743935448646569935588138234726624810831788143011706083814983749568792373881756083627592301958126096049982901009070854730538731214722890261127486925351212610787280102830864217282770921732612531416563621028866807555402154692227194522437557463113601675260735604386411020289391402475380737473837986820939973238246724336141679354813152281836178040436664004320730581671666546631120998378521965625109545265892279074663980583108814902653417426884698049781483827699136219662941536071797424220457150750807050095311670227457924503565648119324297211109114114971264683151171858176758016685653382270054648053175752662873265448365525790917590635084698762361595290336360908199990027705029859056571252605953026678724199658437668004239973761540730961783702355661285186334412775943120171650765116467742508823795341266126813387037367362955096196064077541992794531144527103883261080884080043169297264042765487737644744298083353986338207880542535024683066516033464018140465903811429300042088392054925917020901330019203061987597463809913617522537767497847914380819835181396489413719623695365851131669749947839758318206231600261401307545759711236082331627581824501816977993513280908586902173281063351125258104212949599184816521619066426591708989776045721158704875619232452096595557034281321525282622125751517496716861477371932650106164044998127876385104929704916203359521765397279571526681217192594358368515729784475120124180663826057898654917581360637243936830732233329634232612951589859237659150118449991497247306759163798626212582204482558408235905046092151786892287293861061241398740343406314813064129080161400986689116038639221859503988158064128774529106162071044447099954155681120309336568623059427857745549576447033218246351663497134208900065264928002876353665857456162701737263383295443684561559324938838778931333980550432067548905149445124647525061984041464391613851744365029209088940320070573592718394806662917536686500705725174816937730480530576532813756525363571327598001631840828438883473440873922088164642159387447832845395562850442805221978744298187289374731958537630076301317317900314876424605069216967148577206013155582264326015584059649422639741909818750818586705046019774245589021190829386276979396777261744995827498350585678364489847684532572483548028038085544118826309467208702041392652432159633172708020280209993375357238435382376410230650829252729551464364391296619171648917274443884925775438678329275665679333518870349148178966868235857852231075039337051601435765857880601419397714204274780039841379445582571490442993099282417284088138429731825497986435568394965374633418910570090643799358061421378601890405779448035166854392778698332582023816336883039156865941604953719549775864794103271018299771751548140058029566535273125301225261457572874324614137153592858109427405365827834815774612375549155565819674365484553817668309257999882998956055108744230488669805935283288004667212641283792221333707410881275972363649464938512338867590384296254939238180952405323723722714081138576885541996687929085689645910966225310203317297590904865279525626769213394697895038421313106465738490392669994009236994543284359961819719206907814906066321964994167291172793417482458904482383257512526414617385322575565730642042810052059860242757312821063178717348082143163442029529607370623048225745393996794062260679420958213471504246930897574785052213220536115702419568855903126606861529909416026222116778804034207653132973375447886967424785899803736662053397310066277992856720375908139592788204251083874579001306701798883282779776375764327588590438936405401791624520876502590887871806125617889173432972241350218285120356551932292931465123139321416331301181338453117593573021829104006370359870389777816219846835272218163559446158247820243981293222891396512592237626727868163245144716874437426193383039007709571134831613037191155998458501250055771815768924728816595332573819170841896558137555541287305043444155805001900959752850377425108570002201891879012842213965688920668728615621885230894776792466622524490413951397914223306719268650861421650932724003660566347849904286822356049655985023901813119692532739521328303979683098478784238440253374054557718365260898004720542910340238708976542881789500324095761703603432923161448830035080376096141218300386615556619587001581802283073682948174988057828907680117685710736089563656250441506949528642799504447847286869499035132885477124503787824398233018174319805033445469039871449462257274319835894094506070756521469767114384722053057750155561345009649093715987630405267160382443283433575486234035093194955720368376476906125061459669198951941914381310854101332764356260140237801642712063023621545675210550718404177629661745830580335341401467638549827341183380865381975601526187905010645387825541989581361255183553274875477054320760336715716724766502760058198021474216846539144821465469544159609419974787278663472382140822598486431219297398152299596652193614197755720999682792752905914867443843151831956020673868060637876802164911839497757077590681267881339614222226255553672067493774793533485900005276718574850859475648945217505484742888334044012621546820458760111385224521721888420087828023132695989106569944100130126496286595002867350738360718021361450479929097548454422214199740588443268692595650110468630857186511785020508286114542118691834469142449845394290668819393189154652497390968813412049656299734249874990246894284301848052815609430407124510961763144916585932393314188354169086395456557057309825847308599079087278987697769299500686062477153025104468985316530007822304461700603523895285048199180177177059316935400338562130586500275952862725760956904845576580047546966293788638689597249332274665624069626519475766566842313917658157658015644973260920992513945795246089878823685945339387904548598178453378309911146781873121855700663076523471215900361465287601569112336673666744112878878836540215827454593700955672139204894249036252830219244110146681751661703245636228849426869157579670785650470540995344970572233513342312665791294122273641809928375304582905488420650856234175494884598408703324587473026063147914269746923412800879054464575789653610485942869275633005778372798939020600345304691947702862416633690198613192725866135350673263071034018296389304124690371768314953336943073222549460840669921684577017086554327622407809882660027499288974352801369805765850867043072686397752765874628179115122751294330410557735173580790093463858280995517215418200617257424065197868393787523217282038250862676273309757668393276610190133848577594617406525619255244790832472261064732138771108858404625871975088818566323216452303767224172849389516754803168853042522481027929547901451006508101015438127081026335275508772242996741095770714550957347687526795965901476062074151179914895785534233505499930977714748820387343574305634492976532738935512130556237254031439923339382811928547284020723761871783506605963399267596508765246074784065151571100032749243360257802272961468901962033528802021233426843517622049465315886257366758913046204647067963905548743717474724844877015118836731626897045687687105419741813850911076225207056177526097290710856720818603138157453753284341230541408894195119554191180498311913172743485854806286257122767099633861006086658320747139753895602780642983799172059738661128174123762728552750060207304573883113305675794246830906277023596239870407257943579301231305475528611562543595387680349876007063270183811731843563298454979317233507500234446582861867198298684566802114939276769850060092187318659085793218874872729078307016913356353783253624969993777732314786494636104109377196378764402549211585930029567592460175487352671405855856914369520701895618026250572251098421815771531455881351043795399561964135567526970367685760983535000148724201646505874089164309759752645037017040667392991670174709417490759921707724183566612158599310086009115896779273066843715022412528128610528644869516604999853535448524547522093099213318723430759034598206960699728095155561271939755282314747219438839288996747133460042757166862620470527464942020276780129499159189576195553354890024301980056360788178681422580589519720285323529609390459745631697959828099831159103497972871185923294624846857450631651619890033090308732330861381225262561794036086401176413439765891942244449341533047429121550175116874526039303618244068924612747814925923899640489510467094102894252665218248907641077489263182475300995868834977384817762202885826477909279016504373876539871171928422348259770959547566174112413889788670372590372255899481236616060725601927649374190638711674995552684930812696282655375360684519996074495467600683069441679062725862082886710259717801170714433023688500907876577018056594095941996593831573683905781466961747977362816879100668351173861295871426202265934152417958425649170438297323900895297101799190777092745538693717694645596209356479204982679160879903883660750870629726957390398122504707537356745135950442538740707262050043633801528264767703790629247160005563617890290956820200073010818298912376901431988739841432435601064559968753553895684379088224216940537769599054619314576409189293057981965432652269284763707299799519632068430270843238908289819933223134491156488429786598331009953821181904573675380179245752838828722898551763628312330810510828745513156131727580846447439686585887230242153145932940378347282728136081421034433439042108402228609973145578660022044585039647533506438435091582559284528468809410373320485755714698246253492611526570912780857807381120747296144871861756600485820400204028656735154320335703660378509792165377227507610210171808480184758242081657189017757287205779594074550085838674588692263019819755221605732710587975656286975768418844014530768552827058245335198778002331369327843306244253204507450747128686401363387598358306713765308428742077713127901434079836076959310332480087938234300911813460833965904450004592472273274547953428732927189596134877824253312700313768726671653273588716907111160014954623617914454008650645844937970735196562415883019196719609276275984561442872273302098216580624691513182237338513687541973752757483323799252115782428364192621978988734032874959830284960895944335836315422245620352315883443594484077660542069360251365493369555069774781706378126351092593902601360369268438756134222140309003650009342810540300319189712400116041673489020454841456500216733827805260229576585116736668270442754862737612624138496777598251692402714804824892744420105407470379954972644113339326357882555893350031448626200329054547126565766660415392379741033837227606797428871549742525665453169089240310271837796718920030394439659693070096685153635154376005563485315981611502942420112464404446931871133540391573312355046852540076753335649236678575881819537690163144178706452306557243370011321308763831846535773041324192699060866153880235424869907833909946767722305176773402711208320317104366282987090426387363668480843812797613719798578633794470050814416330590861209376798794945491881028278172158696351167001244896868062385282328126982807804736620192141165568794064786235528527062814332064508549129402126344257770835185935076869260299850275725575538112771302001616139346312298236286837630222321929039204268243858003983753567027819550791957651000473819746505923923042782438736887065506020184324529137666664224656354053494519545223788417909382670005188788733526898561912975476199019607173383997719120214565303010278775937673354624489538403117045757344591910142915025137833665384971035959023520198481914323581286575922482601620815074069546119381528911125071835398076983969797946796755102210336340946699757381711467506467509999859793666403461255645072655386832809201113370443632562653436009680850454920949695002396755400173203720806154578086392373008868614013259145060244953239037287227280243104142062722496392251506834083635476737095273995413047515632286868088406511795055277170531375746002985358876934238140923893324946785134388897097831118046607206560063745157858715091499003061981049996665427917900444616935835559854507156751679166612433182109335101124020503876987485753958845316261066624224241971998805366944755123875739993371042917015169728153479037300567204848310807972976867253257311978185084713425117061039263139385668595550816917431099621325167480289039291028939572775760104066997903824880713949870143381667700022747062015564732971683936359893177080877776003465751013234142941589981258884584572700384504174554105313653990920563108167654974865852872394145373593762805244025474257202594656994479364806323897045595787097929924182609717082245314750843197764179187569951370872580657246739368671581592279496876140243005299650216114246630522279705362409822707362152680267745743244893737233610435819234449694181434940911581039287938365032791792958595321031285184098922023445832705691924922353584607444545732512420224200043834926115746467331600115364178953090919218579407945893860973769038037122167466786207147145880145542284985082278072217660783385690416045928296359765010497019732288044369001606289880978883598910325299757959052798939428778325250302952447531275969555135716930571551567658577075558745004300288596430394437038251998940416996115365156071035212825904218844244920286428329112715129407547127278020759456901601678269472364891688761185215664385538311249564947747725450696382864322282005460948933100202794147932129797467792515307077426553226599970026758696260765602742120467941356205504819352578861463241010504411138733358850533766389319025864923327665898110822274446165432523656945083670407021164896637495121832683526367295114131861397473113843669086049306212263818379145366851132057868352725620385614483398102822108941348140214621336184273088694918956822565196979758476642020037468562662992208244959347627136403662592347838057063157840543967176592979838887556179032887832003241819664154441605630460886899073902896079633149953446478623767817095630594056757407576742972889068524847513664901795823749317414711797927530693615184941188225053042653430166129036990175731121518682177700184132515456614382231541591654689229660492975087062150247339892195100637974846578555860672578536337792292425422366075507212171982869208408632896993021793209756848356317025911640191681239755403369250780705808135241269702799126653964659838312239336322948897617787779828737537274583640590811462728915028618795155812031635004551679692832512012498375865716078733387675963003085214410566672120535774829945370092781780486572790950595481232050814769721599269688993813508765021596295867991388193742698987041938730387992254493726911682588036904575351159282082562823104367396605255598115014383906894131692189299037801153510804018582919985982830961997382373788186016099326940027171418337477703864598646020341439589701659445728045588486016476350334718615322337699539823818393475262688254079599963143683472446767456898000852395927615763776030575126628996976621407240803965124804328129762831482432425256391521142738989064251734524851217597857041990730187236716316138651537130909354742097577133051070750556873508848407569958078096230154037498387349550362494913485123513204524859429342009656546674422458909347732260977599374755416918644452269338231070324524409113004297296777488809433411239019491749585559887079732702039722696536496386858300582764951270674341439507163995161899505485277015172938679124576932469438632706101088464472007173875851707339697586065088174450129480911738953359303200113784197361690251729584331573789719786659938982806501928297073813914799637792384624802091480821166419083766027454746169100098632503324455897485394037018696627812284377940000627935766834639671989789727177698565585673900593588786897449793821477132163403589313201782989137171386786946828989943836074722558493642909034679952582595587617399410105955779871711788514724108072804908937534306595197147597711636218991360304722661127703491395223098476292479685170754338180810809119819635936463681525536653901419520271742430669884153086113545930652353873814167430373479501390784313611324041609030474179847068494550178002730409596408073724470519961741579458888239377690124115972314931086405491647627589309191249710977802106790585540153146055933968458716831975092357417496469886956364722820925555882892434880952570292492131747706812997264397717029860474600674608356706361065346566037741848848336309427753029958988884870879121846111969916518087536705270008647471193405590555278265047898803606708638434544165091488401100333234211742729942859500021424215635505125635419747693883615850344926079786711259997706552947561729523611510226335435081397651438264787709091154467292800444039990509290395169616023000240727413117166462400989599597650449716249647296889241016218696667754058599743877432840420199531657860306461502364305987719371885745262947517216288220163810633097636536096789228163457155564850125243338533994848204393497634850166190902670229460189947489065795975381913985744023341764425519856599066630472000619458682529206425112808441030006043080245739020852860080194558962330641524638457847288255481967547927987021545809727822631511777448145767301548942118882193421845020983964623727770818833803738170807385021134511903175101477656118988250600183375849868477311281669414084943845582926215356855646256842483961602051031966063790057214414112974003935612228767655696848282179900115219576539501198220024603390838680867429128835692002944824543572900205701061776110905052036884684240903522811760847178992093407138242851847984714477749636983853880419324555947696910078672604549985838947867759758217128408847202649037312632848068185795029208057691693254430962268270977495219452187088944159337230508916770322087059979567864150903714881237663848852157152940417872424983514571840908025183909374733850735871519459508688294268721449245436512133545893134987931926695340817480757942212077626105833974638945075498339085490947000474033543981995074554838997440694769975253416658648720287732964987965416153085063152831370409911566672040055302558429359029447021736445569402891574069650458821564694159975737224875562272672887699769927846578353431883424054687780575383822839957519677723651075029374588281937051185261414631534554717827658124404902448458699139594592335682750206745836704979899082666815869334602626035362061663244023663755228465106991593890208823508836272063327659489841814180805471017069494283080430650402510829632180731812071942868247622725842330194401258086986584710094203223800970094728059604515139424769781047759649977615697500863644750039697804769870511339189255318470115721820134477139288141078326001311262298115336610203523375071440554626107349964430558396094118369436478808392277722883827353108277473834484177143054047158781063411648335960857268555766051834187068053433425678016454523469160253299345816740486151870611856890180572988485808640419345212492773504704128322927372252580094276196137884315826955890059282566966973337186668664736165952163320864130112319264591411264421676690646044936558713889564095758562121213716985896765875954988618578841176642088106387214311022824246666378414632846148388016254660744735423197220477527701498110734087752552773040465421852477464690905715471496203748628327047317749813575461113791298017191445001805756643920166019545881922170182665037016821977533703107846700934650929116913641429406274243574011965359203003649802570881310330604562061706337747678266668936736061878683776259363507466056733329928014933063747782840111269673145275055279503334200410476707832271742730112998946343495315775184082496503247190908900496376068104659789340585708692901037662832131996288720964411590839357266514490510244750434430936618810953215585588421793809903979068006599188395039116473651913541421135362764839500328169608031395792188770495334534518694201012113062666199869715057796521472322243970925804233410023001201412944392384609067748976707226173133848682032649171067004403710257756316676448314409319297491672623740886544477811403071166594660085573326974490243399384047731259553543240017764101285499617738490818582648986245250887823340816811163192874252604889887673155612441249071435381155600867124362105225575909790601199252052859933644872217084315790917773980320921831843202365194893288664147506915975635287763318726969466155618970012890358558956313639859121221927723684285073903471472506897378479338346803188007337357783676133843602074681586124198951117014360673714424930264332319154237483553565659760941342695498942132768510707748216419640774722807373787061988941345148495853159201603322991210963250995883043189956672727438407923336032421390269300806903257315987556629621761196297167845297752197500967578423768936376358768472195138713365216770952268127033183804342204291603663894626700114179433649343771916627274018327569421341959779520002984142857169263849862929633870302916554504175925956770285676841648384487850622025282121695821721235662848237845234298273740954144480982699856587444766168989437100330632289067694773471368778023270587136233509272542565431539724044314269536799993609196836684400639252442202071945026042571932794542796994135612607264009379662697889063957263459834824304986051800168900627640550188682473748406869526781504105123891114828484978789727862152733542314469435040564892814575749068275166167716567699620530991957220407796152618187458215779578089042500845744570473164248338163242012388572968203850022559801756330939097741447903322264133785945891261689259536768876080122467966144701194416970703756721261941564716677259347379595056725023568946537528060625634775442492326155846471890811503210507948579922746256047653653916467744216390671780686576487143016961103698054482960211121356208229589789301381768321191234510363331953178106629043450376365492900731634625721503426452020674406302742127309205156791111225581794208649357331878592097437356410701608326907983967333996247075549595185302291574790523966786531822956478884941981769960533116847433712677911336504636660053358447470576644982759856795230681640614295678146900374675114639579815466861365972363867045201375938455774906430634608342669696313771999176193630690364277951501381182936604878161538750415657550259592846563765485621047696511606947517687836024403012425725417812310918211508241863398320202450636549634825773185033465664036526302822827135181462272753161062552183252483098143489702067311828068620830504300549152862452962099507749095993637483994313279017551819425720025146116399850520909874728434465722193652468324541613756183840710114965038515633414466210369300000625436716648820405449822307249678490231528211602234252522594846570598906443352912169859417807440948271507915084361751721853366334523644707466286841232127998370209974014943567580055457600170539912586600545463575414252577657909515139998831852231699658595472354307206436272284771400624788876019787219530640543665565447698362545595681930450275037163628064376157316038553300483860366751306557467833487913210301519478776560724685636313441486678939787565697214435878262200331978137619424945379783131566843115848828275849074911829134834645695928040281805978187068484277058019258742062067269159117090305581760844389602456219481913050568379474164900621046658199452135697867623463633888494148103753081872398632482752884141253549078991595137746087999781034919976549626800369024362835686892015234525158969968844567543256148074645986691250397708794691891086317847346567941453030069922103838525984562383168901513748000032407301430443634937684039687560507751862219387716663895842056083260899005087115215839557777085650725168951193293101658862312906695266978613990166150228517041965949037981432415221720606218354406661764869074632571671083537246824612193141970361697577277075301502367523485117632727772900902111536073084984265980543390984171331956989773555071792904390345320220078559078605082084435153222610076377543949102656561423866380486968929089680414745663938287531097287713777102771060319671360089133197279654945014682308102040600214599563606711648054485429581453775069001599245395324452534884180813524378225994217333883905005502411579412910976248516797798406856682945855708746410196783370589392787918935479622026081632168095862735803858383715308922806611331522709037597329463453917991822037818200409915413032510819511830598076324734234038951641795798762283610228674144507672041048029217065539224103090865289882317595511588677160800080007414539634352999623840171187638419900956581195109682418660501279161595237300681954138547966532751834722729579226637474624209070868129009839651289540717706564322376856833506937637427333024452617516799689881415541389705171737804298477786955235715244229458320571066316317060787008367899612093645013146271499167513852277783154461068941273225605062126629385663495955899637770665721894132588411751217253943653277178142618799115431570279647231516893053749668179766747368414636744556125647451970674325126455173306434716884434392553470273168781840012936595093424435902557746622359885946832856480242946449873403201205497429538582785335705922522610722102897586458769810240261897221941040548590869935752470760279482610051740978139288781502200513904487659836261238010035273173805278689267104580076951683292020079122652031361831067739893369562977158799867572427108244488929230024224207151479568274078420396966684656342657665630035306152122678370138732942853341573569534086077985411602437015539992130909680099655927727113702441996044103508767165714344900084982588496609983789825611597269893788588073575859369811882651596292057886974420971443414975834958582946045117266538500156742394899635473631643108156183150676107477510982293754959360782426798392528938351537965650545318391515488633706494904522186305112846465558888317630836875778528895935601009585165928945796097640384151542297100292755090672947292071928040851558340212225620432680189492875332672495147101816298621030982644700204953711865628007403707143607710585918010049448369555935729556709930603225143648253819698183269110846670018835807349594487309502989888142069690060186471688805269766845826525048233470503816182982120564077656303801634765434362376073490878249294258573014302954743572542576330125930930108910288199970876814661202752179259894236212160985415450626144478866272231654711282488012458109758988445806018649965416182246068602099908776290441280511601810481423198533963177754765293894490964709670835444607801365225790902849493042881255022834160145214936788676995635049925919593193668305128395518279147716274082706132583142082631216789085968863718993441157160683334625243234763230339756210590934169963848054770669945376010880791528814364896579560792997281587869392517717384895081745292855551184080017573398525135084395603888121788155707327421969542056216194546435901841825218685987944920688970276541241817043369049246626864427804025282948472756388873337940886904089442490833194707943331774496923116786298437188335126666609721022744612558249382745796295613358329171566819929677163325624420148332199248572658802134202646815766513337251258733442311876554003610327039840210293559227269461342622614394112915593776996923940603850335615215801184157434536983594634284808663840066080371236708587205056618288056966415609845453080611324396658236313404789859431037556804115414398164194038622858729803530528692145646496157105933427251442777991447999680765239408722823760845071345315676241396362652913865316093270623554295362633416580821131981890538706584514417872393614210527623228297946733046194110275263153707979277263573893660947982358115125339358482214385704581157770876497393506784618968701770885276900812257232540793330195251867862201123217038607420893850098098335830651401704116756259066958629294660912296290220605797923694627986593419347521399104657630467667539308881486072410719619257728610783110583289062362127692955186011517149589493148302162646795161595999591403081109630004181144144837076528470907303185332126177544551155757103074554843890107160621260086908416573046669441826678327849340519644227456218198268851194983144668845433943445477789576105809741025837068574400173145413815142023980817570838429190189338376173364251256381460416683489604178387317778502577219004784837109463162840228485922700601071839488929435429648773841127865551588141195610812733533838980844447916145408365702408290122318505562715464077959447425223329811328501044350342036933580184483075234033584207075648055937939501847168065225589711213823242609336033537453576185166454207447496515797745316515072608243009187660782187761412455467440939365097974620494438684318068696333027577649075872140336628408728790913558796445205587008302548960625076987426876306719159561163554897457469154535202087534705119159582823781385378175947285237116914717926291902792002067161000020171008349203160182608343543444437060948840609509635511046090744351659226374626294639888771102935632918293327288422711125311591902309253605211349313854084020524112571409011749592344741260240892281601499609374732371354404852233008253619575047965041955485104474347371210245131930487198696986495246103839049208537683509721327991978925649396095380992318262115156902549815034337615941341597007165983839971717010399092971077193166943500068145432307958708718466915415972387918663917155045112091794163863438833949583145674509889106110573929519015455575364564332452281978782532475031923780493208974147895642454945802347733464397413153265271719203612822115719176416874465985008864408020866694797925404142762945401222834393498596591094466232732516878712513659352239991291200588530687804295755352875909325897377324581972450374174499783757790330413411384400696823940090896536058697566820095542463289400654335825565172285909731917876235119153482192280203599116914962690590001666909031517742621116727029803411509001673535298822264142987440327651305755755675198804938415483236404516566831078255814619546198101573737338497710342763643000343733650321995143433900320126152641469247122769275123700015294725302148099706188862495788794480327604093627571655164324932840517477068195597556431023845597372133504489216929130495593434090829055449923832716472052819711512678233500430533331211298370065851646873813400725089522491793609073853318021695422831514410374672189797734695135703327843033011849467865546454894909096223925514243746035150058763793097023915697823750979051628442063334219775524927507051227525552918750009163549328153473063624284292375767883033635857819481152817747429437717834694623758694619959575280218690265344755705947154105456789791627576471317601235802519652068743605415952524373397369193079448775802018063852946376362594119883997597643295468366224504311017914633371660768489092335822988452930770240982412328615798545257091753028678037899895425094335189263525026049611923867054762421991751749151655901300207140748196870209609098582093740678255461703197347049169307436604163883647117530131792776751299236235597456201062789475724078588478897440218504122274961886410428658154731392002509596363190233147071426785014725686938401347304859083319856217181059087904294458611314879055610111310751013084884783165467309341232779948514330408575105988243936054485719681671088495566985334346641823984423945954107457404985428724606922609700016647489703439250975230042052171996171040018385039875425985413269733288899658550795013486931798160053471277378259066446028371775261070325263157017446941943352526873533000027537550859813900660142063828653878735550503225240684382410191455039702162835301889543232532588927426571158927572592050087604569543109616073760482831357461059271216355102047556833812838232739555115048066758603063896753400918529578561699315190420772072246015621792156906787940182245664023373751142045224964113992752049262024793606957233225647547977411475171253563826197643228678284070757794573115008249281728986103068558738024890755051931053935153196136826430876898093545305122958806232669691681705292393856728641922942855626486120347804119098649673494494758094679743600318577648316498135957273329363636295902499273293488763072464205326851984087483564284507669195348886869821748677406153340980498021062400396784710470943246414947379110762988202044437044875463965344411667832394319791281101658255049672071412931600629762292412704867099984649936455259193139750450131908326991593452232669946349748756486071024983918614460398418378079847728984472554322005987530437967625726937074574716998255531386005726505398612615544382615232157778277417571778945007459316693310550371435206937799958091912098375771009378744642749503286668648375088964708015194867365346806187534331950111099292625819648217863005679999317289265686158773684285194006216325167434855923229831612466465417972139862495628917101318334174789240181819399280753200874322877739585908265970763396275881009834568540154122709462099593619137423502608043589746583024898731781915444507144867978246874170362461973198786401633291688451978773869935690888983134670376144813968157613761452859477380287072582537855390823279306468348425793799332764544659630026368218380343949010387607305545882056611111257200886105007636879788656867214570934343598882514025387257687225467875184122806373116887354399476960576348071021892500539536277060873135019897997394802172580798458368855729271848643710973112795833285048133200774672040240546787757990364269871124816706763896434376384230910706858478244998989920768978464942966065212101325051883232554940642228392894159923215778085542883967841825661148608149820834658327127213701894830780413921715546436984487313382322830831130744597807311109906068712646925140297915593955379878526767783033715199185678745163079756906766545130480981611860241132465797420127918415853163592904246854393863484027349557983176008949432144742525340312210132067474229383166125972842327534210994636492087108539543886622341888935051207492287870342813548368212348325726520230121451429240089360956540604044209592283154759475480099545556616984435519045098239716697555338162444106686208515076273439728877454019514938230260114730941863622804990996229230929745776116765364073136360708745016692688025061086472776239567924230839816841669089920923802355700762400248819569064199468704700978178671896486711797978871840755816040631087317462819167230600573601291206101022015915185391120225464804397940290666833820142283060215613984505023741287596463706726761555400729292995371965369301856906240006731847458037143325445190621321303146162052368852466589962405933321913241506609256036298497542985658172966006050234544690851832880454316871909061298370808046962152696324582227825870955890877578087878732549244995957429151574435543635506665214456351204917207866610603997954132359063664278762994235869675824294991267428682411950264913167638307987889554385861765397690182435986639729087731697080899996523218296715424054952855871395300315136497515292259262803698902264488018804060697770530357884295822969586715045636200142718783637597765195372112189374350734392555513436218213190080311443508598960280050474472287229385789024226839955099601926411135322459930571350938012533917450984086795557752109939402023876842924649355226939335556810337635415056142899225876235375630100302028995326547595369848372693089285593711452983709295644829069517355504943065291721653411111804414230760102488121439579597595356132652685774561536111457855903975098499235977853720551794075168936927346736163158490990236531923120192650584550317440505023657072819691924355610461333271468213870668542180164841303526808678813306125495790087438725756807288625031434775532215846698818621326172013268650851538524794507764160086156368553541620308076638855120222343919160112562319821606363144388192896014954266775986590519566943735810919119980019715332738933566458994730515384791657630954967862969998159734367196221753989767415375118845296817882239087418222978779263861086873920238568652217012745355428130427295158397796821942803921569887165532987069270958786573432225097975765846421913874465291873812292973208481253187656830377066902550217645230225857839197524357939217611438452725547068518969464647785091649576386899133095733596963954291065407721538174473979204139520827305451975627693985678758351081787862749970653582894802976037127939606536214804112785309785474853583730343053703549938768766974331589749960002997912544616731118365957037020852913179962889727992041022612310070715965885850472064746824467395964782293600343892857204822374821836567818218178039141915860345531548100474160960770355763428929697545159135337517588446431581976793479157870233795574966004975829666744606366824762980160414063802255454224287083816814390227144083383438985968214240569841875253708083356856300056603376444935898201181592840067876352985590116099020980579083397602205607254390825016072569099346859606252430203151760534360976012826466200192858555500430972465534413866998436124679692282921954736281529546078703847304355162141623023498945763189892299398529159285614002441904421953300095324476474729322638198947924702546330367044933376818991485625133022073194308470842397872092147994012839420960811033630384292640028309205355615869977225308548073726759897823975720810456229760229329744564915200564992300190154577675958552594826670055956077334842328037337446192255618109004910976460696615672411455727001647439540234215128234221687458055713215976715361257819596284190830198076576053162944528910751262524396601260198333191911236434289366981955029555831909117215869210618615318093879619075152464969980879632103462936761485867071056944954335799381469887042291512549814480055939088879679631830205124854991788351210983311505634003480244272309017542746002856787074131290410395123832102478081634954909037994305201620714831191247848204966160737015138526917346457512255611249353170448597847289165475919980031842288144443723563437732277497607400875783309253864431107691405618075452339170758070300449417215681475835227227991452665374031424568475351479263348834794682768394026166727039646799880862157684467471342086747614126535014530558457632255429628793026175596624130249116122646735667979214059813518110431675222670654039014205501748201714362458987549862132405518312162590383903064877132357753466455096776140710416062481326271677043984098732342671374012345501466316128272389754122548979897489548986638331778597433448608562067161960035568847557896604640431836137814659624301365741249686300145898146016424254420245896910882777836855467989791996769965734475104840642393079261953424374695528623539842616640369323958868226235770969365580971026181610705934768207437720800300015215480118848688785250338342402951632787694799509431066271965003425635788372757882244344589946424754462645019084189547127358549396730377280007537107511060341905793255182420435477167294716478820335245289443684252638349909615321012647638959619378284517621843470859815926062336626274232871898501884742317584979718683755269319343232623957816284737232158962974322242946381395349217260150588916061398000057474645688651430312800077325024775866857757740669244821522339735751434103918458999441585361050658441436971864245153948342585439305848014085606206517739068016016338462575244558907029857990679634698504119895025662910623515720732213091716219294516923874789197940602774364122110029242652388263189465033101357772368360680328848137454424741907958640529351137329074174171390542024975428629257434123024655907753725546298216016815498921482290646823068784940902560255075170239526349110322769697381327565239172060500895462005326218654093091460647643089107190466638036128208133905225341686527952575024635808614891215968713318104767230293380977866317010222471457284856773047670441762596930303409914699701986735019963242787681938810884724231799210111814506367723162075549933999248660648400539120020363392616095753300258978849654894705822551113351386450822881780514783946365151327853861753772053844927389502231895654148597202537274063433888213351054556539763842400921619784121134625088028978046303926584114240973645355527522532286681582499997389808219473136098729907084886159968023996554768895640800561280632705725361917560372130644509736391597000068851792684224960990317302631872120642628976864812955001563739810776302578172774907464284092460057338736306102562378452578597737667529487700128301931393314450259926579205708842759365838832463962314530785799159649179739208974197209657188965733754162413879369622216925246729019725791796638207405954842707932379878831555686056061227121002486527903716104468576502953343243930642335381033227965685064413958648748772396034997232958841940611411462723592590764438837636501472492432678624343377797013384638985780324188160128539769151250774880104515455182647792300222738230343223629479293384745098788855517956079878509540631189183167279938980412920019362635482436842736329476424414606280630445737642422167793018387821634182362438644824055844852265717635435237078654086832290097621737986583808726471327805847701574885428342116909439300044323776089929647285741952219794061562778237993192417204466527921746246222939179566907130382629664133967437419245375349893735141214160446496028061005539729517456059265411078164129281398834042979122346863008467616927512287165140034028294184855008925449033070400224589344232459166436166718388078202131962894332194469682672632837751350535598866638365701180945577984825813468371131675041766975771335649845401952150927698346944799343079243798649324214602972981686663009911613954598305709771311366472471595677467764089157423385344643754735363675885950473999396289671355178370146416527840767027643881013933059722681766349036220843763595947783834876814556964395932228177145576526008684199868199958409648060235914952785173998092419060441715793448694850054539546990444980144228418719095489456942148101430637280754744119569264694235180610972180641832298025813622595374269118785882593435431886144489062875949596056099170628899606446380127009215784336841315284841972684149792398750530902694691878166293115935771989071227479622776054976315082650684625008230157045351666365002083907711261908542335204481957174597082394017600977071173165504684144117188490476979752202081055823104345643425711421019625358284770500423347330807879698882572040853075983729774057894690351215130513317773300381756499038527286812657728170544199870307015178410278730778646149749403390326022044342659669737763932482921633367135555930851783327439248560295015363038863033934095722261692038184911377930494702677081657131811778246138496998348361221968964454136183910463828675437898865404800082380508885280173984382151714391451727481260896656346563290494353104204513615660699007801034007505211268352390840563395827784388412747572267354369301663864857556481714696199807860052528390153250472626291067521664632271582094261599273401753857002310293097735679321955425568480077107798578615933610942386693183053604683468922511045550056313431555896012050384464932449069267360777298092352200071016762852776702194598236090422709413366024627624333611656067899122971466108060909424571773064211744473871583680151059093032055183440253265567459500176939579396600229148297966642334312971141795702742957707107543771392553303549305713438994908363533425972505913287551812400058700276655140087297358503672723533151279375286260461555772944457110572642571513309509061440531850888787480179898782526345318437568207522813667925804236576760960855666344289534682391168022950500768608542789210399381980939382291747510142473146127178470449212496119163815036969686349047536156907112881630447879672892811875424980729806777762200764374006875467180827699454060014891695976859459260166104082658952290379076480109289273975563456318409389369305434182301174937355895955567262552622656459670096317708928830952270355167408880719856679632499894662956602590141425555693466744869389389165568447614766369112972404812152116589301304694602933593999698267471759679516472157235048722213605482602100427586394481212051778333258423846861236808881918407701942716227783450337802871920511599707024761145973547838133621210666120108690018816526141546235381641703950122894480673039736931505352625417856550461638671763951284853311848915933482207420322996419459079001083647880925783740726655783751727265967490210632017330569217857671722070177229539498494751701662370904393850393709464432361563042536490211975925448834992663996818277640804605463580796108942673188238547939180477510433982001478822007189671177132322907320378268374436551092321713697271198449581866621647068099136019608243072356365160561235190185310663473697013246878835262751715525555397115482393918241130946210614883145748895339509361203766834939864335430028261411930451032651029127904029873287636342507457097925386951389737207966696937171279195168621857037081397134892080916826837534028801832724042457321903253431428709628483779113976256749697554911367681787524500237705056212624390344012479286146322086012426392855221839556333646325009155521504343864048920014535617147144506753583354632119397694683885861796883838801476420582993998014219842241753429030612566918069685768754569110335672341942801460636611181465263629678723062962438212829378866965642019376822638487296899930714102668383514863384532812440668220022755551506190443891863803092072860460422867382225894160286306998605921826704202298540969271021957885479777018340471234521385131043519536223487133533373087355492309073510808407539380428225382692110919031346100891213724710165264409892516178797269442875977621697217396583127166686815065230293271270744061049793653594675498772578582797540561676760340519709768784135694113307965418324060180809035764220534731138052501269870551571150449629715729636521494895164657969741893684245209042288611252911273009587517080503903272097969072468339816324796290766757018746864729065450038655175033516597961561461775456984172726880563406519263194762307350352030187265167533832529015190453356703891169896564023083249421938447035345988762367397590797632732643196739499192238318478374541120631626406584879667979763832582235463548400762214528730671915290850254970718381365582331128343433748205886644781614627733472963436643154518607814673121595185719915198647751667154297196330836799642224919565328024399000671635443095855112844957829928043435396843530630843242177890316752482269198102289911138109571420988990904565465568707745441651184416120788746618120888524180942985934747707451543556355547891089544403331678258345604585503904974071265017128732443006855561119623023660774779404921498716779514853150124392157858403801946379298966843568053930724056489650004335372821274713838146372560298808152614246055591019313123837701242957847459944229307479192412566638863295935536530261323915927085230291449101632245652407101035429224469004237392026359355611463343146013722195228849218971380374156902912329466628638189913612142144442165616029252366239023312489209513269071371746221413536046556853851797962644256895745440603355942759607970408065608421130793431560262144872465559349551541497649888279631014263679231278221967713191984165083233633622540115692659194892307603300538619200371146815031329524356255627803785125255524173106787632678155756727855018301903518774044517792547163743991490620462047208621129524426826963319892185087573910886700502979436165177166559669230353455816183996016021221309963787093299283486928888621349404006232870845502311490417110798751766048085664021668027866026400359620470363094084765304430295783161437164880292465216699730775776788037824608791925924001139514077305463996474808140729376447329661778333743392301932157616913949837744383848009032826803612468078127030068320643062369766429549578534903378586987541989936649782916610135189059105169028190005461787374478265207056197834335273285941254039733481431174961221061980129503176174063256284616740181672218073083789149512460670993497507880336270038031166100126436977135578240501165315069995148025773593568715830642096516631812538539033119412394577567913370286348235707558511247474586490434139044019939602886434829340144156983309153379151918493654471801437789421561293547914289416431998326301548183805255865992029296560761296544196737458560734519033314864367020956079570941350697547370088810626951517587987559504743259930866972926489463715434819634258760961587300652763777083322280760194559122822680313427714779907061557976554825966470314741699047146106990265240756769213659667147401875537803555875501488467344340661739383376858122796647325773573867766615652434119250256779773627218887663233181151252906895061162507931614073448414024619888152019671532881132268643158355857378799197840188870490137319815290016315742007093311443704221210351405201830064716773633146133872571379783244418876615878715141963130024860031812875089545241045453756908363274911229951262330796924620493224794863058776347791372293105997165269063905066673022960550117903174326246821152370360680892088659763373927410853389809785292714651841521095868122949624350820866991233309335061009987805441565043659577034634560052460147550271576653383813763183658039938049143417064136563760611801098007522976110133563929311720403814672884335197665389031562883591904199665710311811269393887496279772175021965355560566929969375158854896555920956625453741134352004439847343727697429844083303469312409315441100854752762453643267448351630131461483164802360055221568178236404437146786067984197519139639071913530513225919342133912527921898998724021603394385562939165338039685016299110059375820532162029654366105497196957275273167780779411893692418600522190400573111667294548976366693757907388243721601261580400212076763180429890409920360327297366661748148329548572910018650938458631920481327419889533648936945029278163370210225833759230345836508298616931797405236538347025567649422087636341383530743533581084478046710919574602130241604106063157545418710835688462639389173337126226062973559999562244170010306838187811228159919880297617831578680926720711165853197752086434749174303091498051613206340385766797371923076996613079823883659686007336509403814153104613705227335183500475500826476062971245135440669654122711271045264998722302255330556099495259884057286468338467523785899025214696115006959749203340720762124462589599073104483068978895650908864246791092830791045117948720334464113512584181385242942637615420216020590238340811751481393088541116382156873798838798917305949675947352963656620097823501847639612291483954169584446646758091344086808701032708798348904967326289267266475801284722704094513041697724748277827337129634336390560797345937478253630900286650202820029137254201083903762239913792080344431872992632443080534813631370254387902107645634939318148533123274888635854379561987332904138270526224262300763741947474389004761038629890980821965869384751289643917140593360405921101781316283915662784139695425668944360336639098050182430140493805489332712639016347425353094973743751056748841071898260376381659155248201689262641647057990398844392975364421331495476883586667038257966600716915600717480992563160751721736572460656077584120499230629765363582368555742733021097491592948584306376478464380257285000875415018113190111102629446239536566528103365539984602651363255061490954391695250917239628686343884331513290920939845207154650505919399102597312940364323407301514883648496360220987102337566805674539668906765352367420220937480168428247262564433091815423427263844553430047238453904919956200355492534013120959519009632716226499484120466142440845097651114029141156538591722271315645710420659154767457563818004356784159319465726669249630003411381970903469813212135531134721096040766166539137584706580421273103253918616401723718035468120607001057718640184662941438957288449249223784141459516010235509916425792196500467848526099539986388081369502066915660942961387260404461787290316893561402900169512516830364373069612012041671327101833638733074723710801082265620100887044863513924705424606592670581514260423727818697038850733913193184210446464659766486158991314716101624965844071893340489477402348468059829606214291952951223722090532196391902858665147483956899595122843130861099184060631046570165924059792994811002180451719562237729715511420566208379619543019065173299132085098906979239933282234287459960965099617414575155903510221415001820037190526241510395312762313067864074351493413649767510921198544512244503407786893557606744842099250120797687523784125806091099094137377572397480509815440123243668561880178584065904223236104271407526219737315224891551860969730531333048278322765070762851593262770067556270774303353826887485872738766308569132445042683182876458571618542601463985131397294678938583168086551120537494935970007116038606584462725208671217998967628063081114514468121957107168329947056998935362171492430885977302835471812750837068461579323774127985430753118456097079033695146631437360167335006034599972720747371461019615779826849302055735320437549878041064227520940090923381648191507878965737102795076968186949870585706502061028447734781288342950257517832861116234945067080940946699503142795618279366554834449205536843247759643494452276266216345111667837406494021482084189685396013257865555722034391502783556837647155403599090851764389022773502871060425121631050468460629551723974423131308931449294585023534803312167431282985975756444429363083429431433637200591302342194325112820869258298789413587930011305856991253071399440922093569564792233068723414803608672572654910087393950913986710983652601749980638584079310762020094554908414956377389705830957124656531816325084563529149788230586458584032603128455938513930300965439188745053208790570094520841058709969496738829341534928060313948327479460532843432908264156637196678133871025365427581423057895575605501291132282485836233326111146070279607641246598926724786306512502481895880787494980483856529979974587899213613026828536724795399881433831063135193966223285697105806115272911688057855075633467685654379730257465315774098371634337695592161286620932038687569458055679839433562073110957336865995121339362543350127398291962383478784170775708757028736333577097215395626254733118561027651222965728026491810669323331665978296563448090695760162702252280144860568259696221117318852591786239046215864810710451585385509974488758116002157935285593981223967449610733944942797137783619266829699127480283487935136588064640088979006221958387111282498316381014558406871386799409071265709299457364919887047414662654485606987531270450616359505408423412264584068226646602631885231993472041245467172147681518295913176508791409617272989939159586913331796823971475279911802916140768908167278379941322665155950413256837922107494367341130636646099454111220124706777738168162222698441700634680378999477451942019841959550235970914122064213596256426406110939952141160713986118195610252071643407161585960003717793050013236170149240142957084576004121032496932302221910429016695868180576379565159787667638563008348919054680331308254585737294848741308757917384574680506185052709425252696200093323668880420818057144575189454185320203521240195038550188044923471267048472524166594590213678856349119678779499062904139636194738234814914408526642822918177584638066673743180104007998278006406617562147525257977770287598132610274173318884393167795943205132826761244998885759152562604697410659360491288352892345541243008047394480737973404794213715606391865305223765065029174672462947894046586385323183547619993824230854054785294356529767142481943453556698361885392935681456713907449273128859605363230877439837635837598458025092218604221948081951484706028960480547932620911759211752542948763278946538194740284342232867043625555029458914584160525158891209524329831101612937281302205634045352700419971264938853683211382157267226708789550326542638244985610262034880139894603095029214580852818678678060726839536644127008506233068197307906551038837577405130448981392423541972617649280720996375138704382795669290184718268807445318594253393151137560605210798231482105532443902070942560173934182268626317823985637187121269913331147323655113813314738584464283535394579796885393747311970657545079887088616948337093948115486336895412424939774919736108658769858968725259610468467151209296588203226244986635762226916487805318226930892800213473846036680992684682224417314747741399642001626641157622747690994736334411412715265587562798662631653303539401810271267355283066460400562790279499321990217966652746602358839752215005883743177561946144045141741423584156011213349785528112900487805353829161890002551718228938931149462512966428025051742571368766258457244848930060054078457863048483829624852875967745022593683917447926153950349633466885524282822254188199319004057456611918588137512476238931337542057565202682456506035020455532327122480722386400878269878586344649570638235737466476191514160012962681302653901744250209976482504475493486393516916000391443264216559676724561397705871742085819259281607061699465751314905939405059247359074268777927644517255889037698654511723847349871631398801065668795384646722591847840611830734179518086643445760756462454747717627513409075369911219743222423940702529727310962003085659093645224496455047004637844249612435306944129315263585382168075294073156424395361802582259662630242305699243763685489641260863105566290582627694800289804098758442831708517024654046846749607194084393598883378362008607689348569236433767522375447216406575714520388768425156650149791670141294871392901083980737057647193743726409119384805813710826008746847495252173250573834758212795708554632148689971470659222903030865370947126590624768872412795253744858174213862807866603454374103658389415833030795442919394420674359069308613924610735231979625155906168851813867352861944275891433850182323561356163542300863448972140722394347040098960875271926332798334385293744943068747242595750071643660780635623570780720161372073706302984150161620991233029090487277602322447662729159668311465897006055834261231676145410484355603296556965657399816306121818772346617500952537573423881773769596792857092263423033683976451736905502974555941589201683950788580491484018906220409178897449599357132515226467856436358527654449814104579681145708482563460881956784741679077199489050128230372421931482848863450220620487483264770302874836956570459381671007438243642319628859289001390707193596308991200239421623580409464819514935872607165907320762132493856761582138083760163956902487215490592202619996167844000101884602371040814321258140480514411060992697326203727628530444922477395833311974325120997983519551785095679808817071958192850201802233359356677694069226831836134103287503855474210855530783754385055423726201277379152038284322723171166157961690129624320010776655692766909922896159659850780522562049416564098041831722328531930901825892240833980317132421086855308889067534418009149395520845410478171497953332350750706145406102590690993980668409790309494451729405688963841753654951457431615934356791406686025497388860715550935097148982689422762606684479928991212527755929316518191373204183251385435831834111279217719440567646555308682818840537527541289662292367795293527421547035691320917020246695785814914724826668999560242124259614729637163315631953054551565013814468282033132320109241179998818408569579683019691722828719612276417162916475163890788419664667569468332629431536530237184000102008407074789959331036431369181796994972262372627263740536433935438065040422731027789625481695324668594601586837071374112356313032515979553950671085440012179862192760336740573299306296600297581298624329775498056612638739815662525267867967851775304905409562337362977579529610863581119042614413030510948999453898582030868433922722089515239769038178791692517268527209510222046267043921623252469159027827299058805389110948291997526441753816221811198040785080885853591953790145805806307458664108203014045973753818458267732900869478955017337929071123621515450293487267953261818999804939568100087878823354157925036320793864768515004825622291598914690425470834342978322241051187390430552456862703971110316120899413738853425232225080727870041463648815598672540005985712426610669697790122251971687382258530755848991470868669693353214369408742602635315555511683207105357278913196944101286698301895205711051893141883828731902774406074035535444368414365938562438325836254464576147872643965563280529847016481979657429280613646932089052494755350133320794344128011611158569733997414739114948021309178275102271047963849924004166816660313223705881295019861797463309006375230518235730792255033563558837327048055640156972141170834548258411818411960863679020396781123373478159065145197488896130871997004929359214639917088655628316742443500380137396260653568457643499947305052008186975403084777630539086322789048857617800873755916233994513531106717358702069915253026394721439828180512348701665950989899261612077752684460032939268340749383630226931561502885372567713524656787482810323787653993196084929514425821079946298255474505129640003128755898955270717710112874444284650539527111859370834988750648415029874946945565809195763835489713038637487632703078425565809200439079782059270168353688521332491262546447587162941881953589203562516810391137006465098615195703423987367102136538398919481939086199016596287325688581170058152452105053490406232279784809420908453736869844059400948572115579029846392470841018602707309248930065148914805572484017533115964133086825724931261835611026814932284251759498738016134653091367936270660087496957148847010103629333681719919504964298047134139776402677478780660702263041129436838692731222752608603948458746824707642788956693764924855894951077901846006812871645393038704706130509239333919277503303616866926126809080512760865211159484245752533809027676220055157674357053212443653966773446545634113180713389910479198453038542905859443435879034859662954372571973457310402262072406225543556035082977012920743664348675685637758835916009876202738412154365082352948034109628751119945227402979949527591944955876430968962369827297402592340505781123168469077715949291387467881798667829906498916069043872418397951472629766853203430840998658542437748804647485220946731320186143107781399114679191348511353802220400953550220793903750633529004707777641311140857359052746124139102236184490087344525193678971657858451028042131499822659090927344862438176770236874318318312272065120419693955922923097974386239772341859263815175158743893107158366706242507291161775838125305818477267829832045117999257772045440932911567589536632605738962271499541564028261036639376353059905264872557269683560251170436609588915084663905114882941470329053013687724060213634409360806606583346785200297505139790158880034472052839833893634746654450899322383285495161922704374288477955912934170229405283066986855522070753438141100739511953192732161769859858731716000090847243197459671804218126242869218831002802942221607412481677408160592306008572415237060459242402108662238130220342811196344135663232163222625262832155992641815892424885215214948968194693024211392849071262563048849599484427408380903101580171544767123428799545614897515070706295184052743216232857690876340692440367783281938924570774985834745375374597790253237050078810265343995467088025929808424487352099468846961247251482202678841652834542725166247841041125969009924696648958772733176974839483507640458721546028258309565861946954858373778855690912196437575189134709359240614138688659373805603463007745464713116347634503575709118616136918191613802558400787871644516747239454984229872142082679360412912422973651238082086594170444951821770394456077776628829675153486827829315672856008497662046772853476644734784241475403236555701104699920144513128437843424854173631599676719775643348227458145104977958725964422605584009589967067699578410128967734870487812030520884009035333641945693885680607950646243361114182735753002399001634028804280651357601597062091980234718045529465261294858584079380003759951909031533128880478542315059889208099286901602000908961788939008630573415958258066706786152025087647827983426378620789797777081050015745996466603619991960825353177156957342701712165839183558688218031037121596926372912454155633136221169418459056370096002526963887993925446449154500198632906501462816299858929680603265839314767657931671954270983280684222442400669396700878747870339539135938386612648170228342082927254732861000307142795342137056432180568619021015820915785311862158548143082068241962465557227771808177928115838623432872109778198507482948248005594462343253906444232949806981099923191583665299738939298657705833245588164528251175603329374390844135185372413343795220675825083129775758474010119204463542927968432069343597510740466406683458142436432931499393448123619570282857285256788034119950038699488965951546456241760521318248447795055387545775727520879019289876259412620681942696419927584886156610927562753672248754011686893718485954769487618418356674772159438795250173878829754194717629252401971608669461394346428410242496511866841072545993343689856802369298937825737341879887457039584683339469567989894892461677813987099844826543602515083708112397130567506239376272125111401253801478055273281157172431203592693440180462961366469001869383412947205054449211442955086743468631762219869241899433648775231692206329274278818975092720497111845069312361582286818434217804239018997346355844581586198873681830853216878259169566802188617840026474482530596148416195307374872213581539898309874521497346913572661787292296380274477758394543356990449477454432266044659212256509173023474711890728058147304628104378305574876265791084749476195015315535848793347826053426228499641010874680362742612343704488267452595086460136464892337385700125744356435387883619919541251592114280399042385936247948279118740430090169615009697116361239322309925279768847530554209895785838259941241620207569131314971462649703597160159010688121441395610308657651209536503358084489135243920036166346646977681957557160458269495701693138516741049117871568801028516828683881210080014825360371332021332097044193324193868410879504644578073397023780475963491681118493327827066028122408008526249461044837203758509556252980258934698244975231687351233792352360841097924314313899204593989314780691684845137765077693441006665644407929219483688845292398237484244662371254109634263793704543869511646674624317206682238427174122773126613267020599240934846914918067746567349418616376405849038066440775829990018916888038125605971004651085228667806215784188993247624042115956373908827049031722506732782452586937363806642496349773091068812170459824135647710277565273843368444081450522638159245278844160734784865729906998984134362740034712875092573503400630678695994482551989686785754587778761891465104372308963761321773865098585710121637402321140849187215039841639890759119939083847492231692922725477376537840136357843503905397696137973319470280589218619434136374765730022311790402871153061537360469411680078848861198712555747227219496283411365947589578811523864040501612968578138105002370187618765067623408981575898655181389937903874852238446476962956507879961037639681639075734517454427164599785627479785555818962685668253122978998985736559391469590699825806755343943720546307633211666330053157894054432928743523315112352737865406063701966248539829872129665923574108036710727173189598229719182596621541604881675375611437653977054421756351049881359926229414176651387609220284872611168461312841618702991392068777706332798658947960041385997295908810494936243857994153604316477390871823573913228479393206150751775947869719432568762412850338534644889419086693586424512397934557386078216129373537105329462931203561388811924371525179606716565498101738779077886835283851572980702454571539319865675730922856744886528491927856312018837822189322879059045964347399138005146426634459551310828860002016217542589990509060020194582849504431535933579579678755047646421182931026606344569631802627968843300674639523580009566330361245198908201192716346192857672700213212204360799982881942011071968462056546796262791479671585050065973199482234625910086886719530183082271524898312683274599442937503354624417877295979600823133498632272336058062266103073637998251850395594462571677926859555113725349192573569522163902439445395869532212806837979484097155781540779044984058846802461810280948995005264960431595537620480823059474212186346951856537528345422554894248901724622395723881458707383233252601908284902462090103849454240559716714969538496465179462803010531098777099033536397907666227796826897085111367064887185357959628647232051650297793363584397675882561585071235021078501533269465257797816933039134212455526408677743096031255296916608054342029235162812532465658521330936240249436606850262582558872424016588688899301297115144113433542148601827733817575283841976989782673243836204134291319398103596240356132399961825841717478584432515408989987260080060144805305842359377310296476154244212612544647286117222436061849066393103065839186503773745823448035662811968943525714160128703356639024925653661370737617973728680585522189815168798752584406836691319606288010880078798352551768543736825601939448271287157987302242121093412265126535830574898400380140486628807660495826272684843540182216144671797039932556607291799689215299355192040697271530771713337954672582300125339791887684757176677135551454315143645905207312231265246250519137673709187454795438378474269668400411150111133105994538865164802010188266357808494456866664916582936676818498479898003543708253822874560420339316336150250798978934510451419330564644939727450742958178650833036433623714690484083263693656083789072610089864137385851065240829436732187076449554191947666992254121860762725005700981467228751724646615312350277527774212002529650271289639111566213023446515574865579128108992225174810922473890022052760957015360669274028847040205234005306585978447508981842940387793903922028642344379415728409290967750307423835605862294648782142388745996218517822281518104700859585769814913947304860816391960116101299921363857306560668617612891866801804662810211006309504277862647586430027692722205566034582230595349155443119100592985969646020253535967911862532928851306765327904067475699675634842733297761670139387568804326488434989689797980502135410341548028604186947615188318362841621825386562359482773160379049652362719914708199712988578461280040603077155884257537143454261736910637165783793375404677743118246185656647871983652124110074397050652607651652295524583114904446755646154349517502546587126081805853522305377393811136836580658916245667347981502899384267417241276387492565469273344846142969804523899563500669164080503922350762643864431569847840134369378169387757289313106243787327796606234885777450603823540256256159368076855413120562100695659520843828589219345573412054678543146368633171494741701902924456501072106896921272977579025448560396782958306978082527461473523960233708488892833949250535978346528657636615981783925970603561152794814502676741320665737438404236706508944924189509049238992331663839662610800939297833342476084398501636712678794724331811714342727199608812815316647096647853382554507063393734483675417989391817762190660076601493753415361042408155574876348828717776991657016380561810802722169571068306029888901512948084990035342297024862859347599513335362172407040047472935539746616290015374043706865912061264341490976086605626201007100997648228836669286419620037434900791498723549015564321982439342375110031802886882317473690803096201765901200337209534447996747457746331872485929867524870219241746486312634033300011553451563075663676468331854416483255972847262151389920128051561104853831523045536946265741759149269037659286324804284367698747432686700750028099342578605545351290001963020890631216050246181511378937385465252733039868420510352762204481773087054207737575184168639699619679010934926545970330389576782521596361819381329487515632994806233632746408966355910636090452674063355263484165840269201435228982874319564857109438862299016125927867208232781068144520617180992034720515150292460310131481972055055786800412826695227929939084349534171335719500997288804300561259339966847716551500003573057208936565948128136698397526158314279486912006206344060910044731984939150945952951242661659407446529033186496022307840153232448026609981938197349293222155669973645481243212994537691064517592990982838992080391492825469249872213213562936017767618612457383675824849100301597204319521739215828868657502202960449897859657105628073688564573488263067770210153006225154547985398793607050748125921880215275978650853499625876168960995963485201851176140234033097030350110697743884721226918806718762931284841591527373693107570007340713421613906509726065539687744702147968806511443591339072422921827978257398729501180979901576131757184658627012500020692355096476130308939105359664489736899724609619824045718419341031551516405171507881972032644940457976169403124718032038649571542830431684750608322922453712704826712853589346957478024051830856661096873044424942849929669372423735940565348352581512515859815728048886686812962169722922307589894508628998389699226750732692888266087070050316843901488786642244990146989167605430669349050864793526121439947548748896789806601314905234874481023883628031533161431958142836352947987810404546230671049850976590881960330235318993061057282180816476622521034127864911621321476036187003141114008919460082058340797038878565879367202219286600061432072398196508135659214165209045435287496820517016596177770797091522528052463379024206193178929947671761010292687485200328481649910285196981685554800512607293046005718777096307951937090755250201277266318084403842690236705223651185199939189798832084157914285156264598070800327214235328448310833027393847018309698299636551431664989313968468698556070894489683852818473816831255648598054597914141930776110170274420550706801201303157117123743329937267786330785629036312714727868860603202909260475550615448590076561614459980756292758272018688433410208047843948216160240396587981440676754941988008094233739440520685221980074825726692649818457193746051168128258186153918463192732809384961792094064195834775841986431309399114176541535292078414197323698497748497354326298428002298043278019967239178972223976385457654612678527131134048491669308553421891144893811443925466225492170010057456778787905577870190889416074743430637856133582647934207498246590531801934767077976959690104172434272734647051882138258543985655403168380506130466752170463802423712226869164602899609623968612066956080940329548982845707049936188010324743339649462194217402293606458836340737192252047199286688451806687576763728765820882671046055489755116906054471299007823568334888768295895344769910520695005945807141236419416944639870140821100842497462655943610743219482961076434421936885825161564337798528106815758529110669090964761088344545427419146364620054643657669918569228225044844624567852049773214575676596646663324339577473587720782010447531650745881287400160391246173104540354473716831438470724671309767815274472916884769321024521548104937865778137928070897903755131469209407910817761983482737707022210625110107293512001270877472114142228190045583412627097209964924178922686019904031793440263436966079914225484683090450530965896087825814194641189488280615663417028665740927248278136930916013526404954279275905912954937849422322116877748124674371608749551791370521947009246111215609275701560618216503056050824499200778394566631966580634415957283202876528462744766931147940859834715373215168922989345873723306180903150759776917001176052439461754730721944075093957371474544912164873795424544236257235793707585538300590486215879695180464812769808884230825508495832503793384903760240143342277482813101362015788737289138422348261940083376122529320456362070497098902624813614716245997561714891413594066979681033239027408734646351345485516715973141803099509741725438413785324439886988084104010211474635401526454079326158806603908119765590477164531968968740620799426674509107767139512039385308901299330535856930504460678944771298764025485470919845065823002541362270910105968580587757811648270897294317800240675464836415678767953714057117410216096664627433334079898658797134817621889726639584884427504636627649112406444548377491265833965938386348944633470938237717406897802784577145413004616808701961032097704812698801517638395762583797681599478486988424321893653667071921483196624005513513126253075448862816467696036955284057754401717874914387442485050796909337998516390027015600295445273703607041719699283137473206846728442626930798936625214776563988833252085102293173593414090357069724736836660409632769457982837565063592653575811038845842377574528270293548758848411110845372565613306840934192899042512735325890246704985971358828569920582627033669106613890263904171650122354157133657574922115095629039981742209703222411537249464943854190493554520865787276065218830583143342704271325575114341988536800625456662526336876357490728298773269011870158535983968904251216906723337841681391553544820930037144719082814464368695282928132075349943488934203813974079949503584272907262452998692409556719497791451791791916185442849270713234970910448159299923448324522703362959361919959188651844936514830278412331657388161524270942285542613488185097387766221612623069633580899382057918009648075890158627729444668181279390226598724544729558671614711581960676907951294389038694404968968906475531586470357264810492342022090574545286893878393472078254910383989471940451948422381626421535253092941953616252256553042357348035170108782689107327124691279117017604678123540286810701010412109960903909348923376364341145721289386671065145269686057849185477335374615860763303639097803925429763698746247673077623462203843122184683301834146469778971312056285419569452459026119813476158073985098301595152892284123721352094696593465818156524923678097622647906624174244982521169168582579361428622556372508036401702088128822587608030329699408482896063848872852791287205010460228412551460869693769671266763492226091539597166620998897078254040651992353582330682162361614756461316365371248702841899559888642415669404071712367719113495889697202815633043547988613635216640044826132719182574945090310079284298268312152642313513280205271841426304168792915993766342974003273535268494568268149362428815915071112193651430036131435314719216236547244825792598553506491531839653070176931265260869166667932426362913321450318644075898174938475451505452210403604862552021904129641964144673136770207699860975151184714773193954265083882000176880934200819629418368986084361760457944057117509236753425210289997220960975372884413441305367179218899439307354808338891854622845739704437484933635638970952856725522858712946727959280590517999580476135835587840865561827795363495847940659527677867398821191236114928196679674984727144583416133972767240256767331469486260541544790197434247529588080902928740858796283585824670665992621504813491475502071784179869002611413605615539205204968386161878151466179706954912734443432705723973114457674331393475144982502259008955842843661652054822467135750843156219703987672160072145066901215050067138487021178246908598369545921873845480113715034016555888383067297597117620345927321703337335499965422481724845461142337307265778209089143386501751049528786204784707518364047379801681020845047116309622657145060468049574635657553987748660995216044897498012410498143344486219556319555233293442950582071477935943393059454754342544960886026115391747618376217740875699728121792808615355736129529023264132853344490939390318259996566689944197780543921226546011839549695931277530948054268278017352504438039887026677071483132239069776339768604062705777093138825328503588106550644574384796989689515124482444562199362700249568947614830790539162725140609668170882102536922916636117890347172102192514470901886695141359665780710472845206029913373793875618723104115749822151367818834398546243095340764454258903602367100201874680083344964587750145850777145012413550536748124507567367672196294879713035221475421611231097290227607675315850758786824737711251602547556338623423362164312998807890330324732049477116301105361589586965157527489353237918361133810295652552229243984781032499819026921202225816275833869045875877621586846372825088472620182811700244676242192526310717391477230565441199236618465710338785474171068944688300516013732977181640287790699073834465974787927987398984679728299287902355203132182526115769105115328394435945430920961801473348109618774233078635239538449461115567138300169169178306033166643838955151149622448480333967246262319554697737977470741153003299550350956484097153572578458293807233973126768410248327944396536967084551210749155389622115961119607745560498555528585060393981717227637695098988984541656311957043836985958251714711724529742490536629248372474430042334637423229056391757753901469536914057072480279678208647213853222162609469412102863952628403199093342500644630231442287074227804257602266165998377977761754989167029443191918351677288315795916194766064520852633986146764784929421315763382639469690854961146723582161644393590095027239100873327954693067516798573641161192138663340983373492468919047986346235576171065876672860564816296879951215387732311954762237323419593511748736292987882809775880002711792129627040824356013210917956725238667138664600153230150233384075785097756826361034774993080311088863043927007585673947049437771244336646314225931881123194428274142009408677720112049827156512348604685956834827503509099930318914298002094213919142813103141852659905976956646618227161612166750327905453220724298296329732292674780040905293929148481643525892847808680865961284257906305468709936713917328479100973612305958405460214919874322040965712458605850238045822795304453010548767272612745254889673595761584939891849169727496033391397879198766887405110869730863958481105863207549683624234157432457043206636900901949950898169042243414176695074847024327085183100295084760702397858267052869338304259945521242555332838335646941466770478520234056139562462356686995134551326491940619098162466593116098522749043995567014214988875438592670006444144272216874726472803195097217695322807356503405839073868966734557609195409005769344173796540913328123815909458381169585238993253041461860018198799787495848940498762901491309017977372086851246298698270667978660183794567388110346043444877066922690826465990820708959823608847425126011003155150195285258430541950356797308664816498831534141056736179806910158141357773203240394018590027134473415983110408763629736707390972816408549583212938769133250495585094441529941379846883113519061777119966396695050158482171035630894125382934723698307385485316305117857080062217706248045345745328900381490903463184944368111338037906499248778646527934746939883924367255654753959497425499077637188309717649208934171279276484871153374809765486296177105774804789053980091818930387982772118891706529890830819084495187160684989393810097285525043503745260624882404815970067455333323836544454984863163549671732324657918811386082281403156106883486596872909826672556149290819680423876929212850923256910220325586414432573741977191088625639818786759461154956249862551416548237843573392513654732964956169679628911598292507025025631790487461181565969067665000375730513064662954843681207927063765092684365120281361128583526792040997118227861728974981126867363997991809309103073077142087529238152862195725955616355322369565922155721603339305388310474745499512905275659538121161843404981150727412350962576142950424962018308518148968491793596007252826040555876624069929000142315166083025807715675220886800253040996405101638515187758562321003806001454163411053545449342200785766036303578946062247858006603571381134901436728171458211950212920683801496893436468891507518776387468546811586868361851127749340028635407235067261440202221382210497989580168730248506425214507701303824254489658185712787600730122927379319912122858679301697388524596009745765487433943933333911688133453803147154358221389625140020098276692001268510173354808329343340622604596709228438644588645043225146339114160226966546512697036135348828465153579753634277653036883971727666393309288106635656515246610242433584108563845681834035696977450249044310266863274449042605935975117851754742757109741568556784617906033486532311047101855895878544156759143262229249273113427027545413528937996155086703898696808017135677313055763111242517171514601757007845742507108814508619605170511104484667942945337827293742633284656206253949618452364152747397534630223658380605768345371159282768634737552872063369946891368168046608231730659774088284064654288195746909732572948111698648077515135250783841682677919811592907525601559698772163893832768103159638583237942003366382816464776654450247404660679421531753125860655312269371791497222515929661343466773243030650833024078735445950503824405180488151440922316382782629042030540038324201616844141082810666832394715776971817814577208429553982554750194213499720583212057293408285473769276163321747093531227473815416098754635531748183995176340189092750006389422759718298336122999652592853698518006980591529290995395758631924477417295486686060188956779668623876175457541324800708091773625946193762127324629227608389905406611673479324005897467942342236844648116110778833706790018863290378166202599799739322557854607340360386285773038770630282304509699341363513304534895736298741797540733951102541498491482806193287249497585530131959885034840050574368638478740860908154827289496017549635202983519528579506481979020788895834909694093368907104727394706507419012203114376251687878637110842021684610464570011135911164073211966938797146070320881572961253331585522713160135898644272268132672316181043447091944212433699684108452109718274266259435202877485294827396134096449500222287396415550405203430444451733532216314468737128393733954289447102766560155827921819527326321715757556150818518072818608433270072613913561409825279510810328773681434663548402901745979591664045255846326049803174312082520166191635054495243906100380309590570341941439942370914886908557810845708074644431675616553733472324545167513897211338944044413395042389523957672555816327440672655852957146043550900720135058863881319368331588416394720396788482701879442660211780024900502718167990147045623757246527746434832374303284345160078025386116677594352731533450686050510418296006244732363456237445081095968188307612504441320434587013844147686279336280598758047874548615424415416230577112751820180615558188127819733190522540666791626125331799701219483935292742728476436565095779247189263137073786840195426271592571054951225547042554035405426141045218241371549080227147230050747800877282739233598775792940010760003965450592334322694687025250284404911712996176998132998658348662544043358979901068645573296167910346755355356292733495332149500790171660601982291867030853699387940873491453090988173598659397251291541098519639304423542939233784995353777208305866095791997231941697904961899455101765832355526080468103963176781469913977274584167778401137832063495962747627201730090793403912594552237736246393239214617632962101453727648395946932776143699002105269565376337522764946464353933028121403825374080499541272418634670029940834302278696573704259188525565997090968474431111433335569677862911693481421038480976718428100959208185477865922224976097022945697046760822015769777485324691514764858996312671576627835920800334218810048862378810886537356627461664866079018006629273307613543223959280955966695374096157312694802331663502427790624682943965211863172786738083996934069483627683059737323551481826352072290295439054339106732111144048068831966224328989263583084202578914506533362309721604275456784661531820153740962609187768302802189496448775753843474895364258944545464732773703748222193986585968683195802343461583954452765801196564181277278018506657793905751240427356410249376689689783283833625158750900865464838571419176666104790736547282000110947595812068828998920223245659097272896340285387071523777780456227706434871340541836516444218132279298307616712246510339369303112012415975398683361535489587275116606486012454114444041086319610641878711234607001047292620673144160943530290139031267950175685823407978173433958751717967312487319554745565969729220623313631666487789460856061824082746880672951596466630100222561756439592563761054280089734430430475217346177797409312113186970368081040921460119642612374417184721992002165836971810848628860846031073289154649465105580976721556774895807725749264626693173584267277041279944524466973502349206662160327375098372005054906813138582012061461294493727134105011787202049493897417429820707608567125817772143459041795307659444320966543840822567884409701487657609735757062908486143836036038427278044750519394302867223343996531177487556821493376125262849060343857527440127645298484387672973727297081419192273551644872077185078528625752347379178400766952453005121795051541591048170883530025399998736516747404239993098307380515889309056747500499919992360662151191004416816125830241696389265232219637271672004205982884564061645785582954865403217474081281801635315272391948585030978872271341265961089940628209771786050982110072288587288221557777485555711490974942112939474012912183153723924095387824409918733380394510767590400368942636340932149353953784612785038091263592913288824731590920266055715677016869320277501451435281475697749929524624340964488020050467448792562923715311766221440367885451318192581774872761003150995399382993401971689887459656409895037557298000909779489546886053513787436166477091584398299773823955664483632018826181903790529348044500328627925546970851253308411376940988706901431331626173979566889303221098208056366415776550335083784809683662557443836995165946845280582074674153581272031948465266859204810105529467118610425704872953230554921645024069934235190541280268802715833576119519819574722333863145527784236036957592171076447199823432995494975232439751194622602617675449209852095662474754777550428859046833913700568574280298192289367140429967319808665406378545625553894270082034459908932242170187796896231507634830204991616208404563629730302092652500733663261188337909055720179912985745874061360575897713340747323885339954095421002918414487413126833623933946720470204134265245964960742259813363880217162923574190587654187883542369059996333685570221046867626879279675204753560963599011019255774604206542513147390266576729619003634845878256513079138524956585721695011052185806965474704006317984413753734456516442641543995584397229579428197900572115270138095349830648932922605071731439213289913107804274069221833142317820797422475749083542473850418517564245306182695556072919054220611534250489165331308764326123995361660576144141615796746284646320512215682227621914653868320729091923242899104766707682306829866301003653260458440640670161703167678319914353279822002915114018882156345404873402886523333373917593222244178397447104031037010916568775548618992549236156968443858419484487660808823669128582305882320693231585832615830626284681247629145901566987471331485814789629059499922705657790966554758861425081944914207746409762332331185885676010745807876534612691099329564160131371243505147676597911066735849914241946680623919987697131170113240837006768312551326286299266691077225656768200520493700493436093754969656403758584121609678941207409952272974763368029011341365604007361810052179142959553789362087289367336978796782600266547421187202476625205073487961197446995799604908386809867592148656107373836072866469452744434220439149231002193233750468774977521252711408260119378565935516003713057752287372894555907521863533495293728371315655838275187331765740161277166951405438933581951083601463529908885284134485156067238482202886071429565237560237766569260696334978266650901683890268847259602850108637100494048420633446611503929130197142400514530384779944546092926159603413293050133497051692017146168248841400303642909122011394789968676794893734922328423554085412328553192140285183440686385699392395272592845389194467095044687967005739121777525094373820086667837410024927116927545509445713454291126538981294470961253832120179330040337315831476265746231348276080296066177892551879032150260287458684714492159451376272163848012911978485177299622434533604492068485683798035699235756886243245130058815502141637715817620853290101406820793156165178799011486048093810499031895679019772955592720188447012035034011174703772621843492135451415482557491486725171103836749648332055822299256136823594904704310785246113137601150463892450420019919179690533128944647733393042154676381685201255273612544478590573150737324417556211121146046619025076085942810615255725264781346032947957648494452300550113876174459197727673950996356985388958823864006601208042826946172168334816556182270482973042907824764549452329702965042564747104329899087733469422191346480995585561893512193475909305003228700768963074716475016369490477162415639733756617608690652996748102889781640589883573390233751940686659984748180776965203916581973745254414010464535432843304845766159116740155930783386589616357854990000401818075576900262281645437112294036587175208355552216790805207719534325134496415314268612974248525350151078306384415230313756883772612501661023407668311081792227450209998552669651629895918372694056752339074755522494177786839169385713875869180702961002366499709937807644921886811963687647179974713347179686705567270582351887278868859773758019429305575112825320483005544303703719501078657754828524997391544856641932519726005626997952493075277325396974336867405199739147228072340204723301617835025608009172608691994314812535865784682353219322505566308978796094558100958869368115989998594367391243528387385467329615606677007475921553061331783802864908175891695047003080759185134864733036097979598826703633734648122104495905891411424898588946194812292725890120343622847332057561588173270289533921126050605682182896952373597045212381815818843704029906854525784484907796190868151006354720111026461422390255191046889196644611176545831750737338148590336030684953866239943005199550399578045166977905244594724511863761236244921436269245694109834160490823164569432443706075327237757504522427234296942290446200162611286540778959769682443170223551768153670412923813629741301416952635097734829474875663620946605712094808377709761635440280513156134105532429895078597412345422539420921634082076939799882450340347731332239945659915971659034763215925806097071650281897033263243646568834057767705127486024518454299066336791009443965592007036622485169835940351393053166859375172471509036942055851019010689731966334863626639849295287055971999795473133518306160317470142275584982710023533881337654730661548224001032348630906006550703275409126189546949575357182105780178020271982988821228763706855924512793491520565824262801532197207351319595849406533198434101403779178155641224887354871170630987201479773306339348027459815072528445327122985285286071471181616202223159008740548838291583984378963731853315515941098424058235532422322397854996939357535309317400609673218835526995618784880690605776230046493199876989665858112315553422352565869112448034357361219076401318020053275191992851168420978187587187066540813864273254914994026266511791282249012029993329268932177270432003765530140477788969808393399843261210771931347562435740680995421378862652298295757603925462516582841504199150567803426186004644953150428487986497482177263939151124890844704741852027213467127582056648090219017779520293587309873602531467797366305290361256316182165216682404878177214931401158197660359478349550089903893713301800223228267226511466571242638162080897705785616549858199893228955777726578373170550026440699415969950321136069424087587914470729459381071371796664386603584843484576806063178464671868946519936814495673537823828687234147408537548333025726793342217777406134121195988560382409277485055633273988342490239129886694264841852343290460346154106915368343463359896725793154564561632556848955323375140973058624807655810091404681462865028413859769944293036617512799699059031700188220772823572296286620027454572386071970187950802758721775022278584566419605716169396961025134403143031180745606509024935690167964904357197484196970422621889124671358369527836757261893800195837205249450910803746046179539608028694131040883660663867660700552770797809277768886703423563351316616951792811478084133802714556758260948193895832853642190611808701842888391585295432316010295092688976273913179177492528805428941271763934716385125124064590404696115809771553447223029865095098490201138668078469914130542501268056544397212845760834833359142621897432058034571581719365609150952115040547436328353053955983713917728414170462809237110127001151492949824452399460241290504656464459952389582621104237183320820312577175900568261298059985005196282258351598003846127440308060041679875931201714441594990777329587560081737183312563665735655060450465648953820767127891397635226658443496267991272949619436485557899327108655765135812556734980705155933241196966382983793576980929761624516120797436291628058287519669247595740735536736853432021074649526215115006479360575029651728262939380302160958665893234412773246008620572455202068960432893348686214725761771244824838234466721021918603571090141774147321523519295665942678870553034541705437729424720990639295578473239565957785595387330635269408346728647456218147982024704748422006705231191890445478956932769165341585057193730719182138250045147087522092069516823174346916384453074622505641814016192703405685783589718142241940393218294512536270723351531423228463991804350945183555653323505908823246133367239845305399847695188684744270631501738392610300500506809989765751314074102862185898244762666240197087802165317694646552862811186694871346348163343078852785049743261256344304625959342225471086019834066378861247075503445021276393382086683687716881172075618235809622377472404182025293550661430570478479241653140181024354888581938206652071480872466606036243955958839392000520889776376077547870817303970871053082901541996231798265317265908696506633247627675949282038805761909556556502415392638209997650948942948751820474721856714026666499071911695164192522984974652107885122451222676562134976905385536061890655521981646959967025080972574037742902228024535177135680929444844981960114449048848751295804285149633903476070745701792522342917331467153429980944430165654633932086759360373761816550913544478492105019312289256771447951182825193394593936902995053713739389814995985228364212375266870784715739237345766810718864194276072249864836414488420741568776739367168801286410810357552441556139279195768880856041988561572024919531648080344092065329875991037004153033075566617300121037851502599049515644166079213170316457795595122553699395088648957921488973535128346985904217875956267170691345113853862660165690649128059458954426219529429477040070328080468396410942009024301952202819873831439669069920756605001258726560917641480083446968077683907684867744234509016059115627521039404446235284224286908141379660489854597769897149580242798005786533454006638049991896901408523845501297238661385255972078044609472299811209803335866018967299144096327553689970849787174991699663739588374831652628370130944927727845237054703914595665499901263565883810854388981702240305975909217691975210536362809530760769099967609608064855688866193660544384896209585767845995521861725001439729738879956847278956947998328476726085586317137252243100430163793605087644065224408178521162466021876365585295662261374985035357511804959590755143370136064304491802886248714290074887475567352959088860729898809830957021192194856674864066585335615618762684663373796450782885961801412845974624436096719366531312658832531994295826276479545781915247989758940281007108040439760836075882578205265452158605096639429703716393391285446223104231626381111750046873568209788670313684881002940215068482115106070444393454058148640629542540457489612580677929645973845769965162893901322421756660918432745013063695474574240752807905634966145833749701530800993310816937066536941305637678836075890778656445674541535293733573712601634113863375164831991792808175913813303384810492611235812567424587269019428397171989119536823635244360112835600915231767777016431440783052033940678973073379155140509483443543432875796813195637564760661759676468491595018346072873977883095632284720151632699305859880186403589900017659417851843430346452772629078782036091819461592138693881995477455845948222054428365588015828959195848465827865141548216559860121622648588720868631421698057823748654588740427523572317585447218996563627807555468943118278344001171461434883468161358908846327948985369646371424992761210296673179029884385242957908440638602418347273405961497686552809205956020907356046238534540507409166803412820953191396524819229673602624424679968136742865062821806721487485689696451127544449698525258103283538083783637359202069398830512148279517760212468992857627012255007778759642309604040842316868561531265192135195201272777155327497179169208270692535686405398257318226526335882521932208440536655070106853753559021658532368560019175834095449116677030723666094138630730168264102594944014586660162770815037374853288138467378806007594864665442811522008956326405372524044973144125201548924023318449589236531486348994065402330424736656596460861031218355304869142133737248568791506760878280393561064462449624694505966682024176446697470605169139549567337341077335534819742812807118696167818054316508373773001021718326716047189252357315129681408005451860658880313788998340307557066254652694006373969989988075284965610291959481169644668430263736094200902865387642405545608642899912153604966584349323812233925158766758398946878607543957404061433599775044801616525945761473195257043587776089581297818835887628563551935115541939775794389424706561612365827230784893010853418473484934430191778961551590853765735231726550270936782554367723448839679642243996370026014520693383762710602950048821449671330153211061727046767936164395457731999639499190364266494319872558518731616635191313614142633451079337371794642082887853460922050409295531848265503803133879149144196149450240844590136143618238153549769023571048402473139956459163713204847643861515575453450287747541800635928448378964436728846190306168433816475328263686548447400739432570047236587292101300434695878791921562350026167191725912054256223453265202045721733406712138870857956774111905083332209465484333367394135059999283760965357306823125171440271993378953956550941790410584685749451772004703569797429571670033653304027125992755332135488168675182679377413368075420278254464025382500256072375068704485482179334620343405349409936873321729260448552066748164917481961482060771884652178272916660815968103828793067889720456530864106745753100273353491694292424879420237156043261797206177076150556691562596005632939723123809332020165628538714818455200195694451754472138685304827466689805573836481373736416878513214303200937623847828052964729554355440183423235131850221807938859525040041886775236605478571237000875539482269726803044494132187051711268072248186913374039515526843610577968540169918995962099679299405316333272404983515254284597779310947565387428203392374946941289748517240617009048470090393354221144289930654289756749490359038732621529035544747416027987194156868713882537341048044429145629444330177664276442916789037525047344055277422702588382486498802695785589421591947750540720131615546440126324886787702513492716595227923817523212591987776604012942870358351902643016611638529696579417009897303024960319295022036709198033462484463160290024757101873021411076220178699841580106292483579928043285220188265154971632530839364702433161127224079643706478848780844630933272793327066998614749841014328674527853674096352805864507625736887601682765400055970533657873035091181315467048188047047332393146049461833144803094863780039512296730074241454724931558394443466118007045953101873092116257971114016227442238332863583856843665638876395598412513580758091233652361337424597708785855635623989242902717673520448647053350144675026984689844496227549359369358297639877520418565736172639545595524909918033326784245696221699431620532926949572996805205435560804893855331638190124975680102495064123516943221952254083556427065554491999989533882385183152943111907542125593609639615883063995502882966523202015449341495763914782872673868213412632234194638593848681891267848768870674970878739979871894532174546700602277564766724858560199970469949103683590358986593942462660936191285282707930957106242646992143915141181633049565601186393041273705992900649803279424306062265709834109430621057437623857884300929164935380158684952228237709986340355114995317741799555827641018268381277675017334342501241669454341750238461653796336788671937765727051034659627337308212919547980937008180863715013941965728487168570404839146111406592088077427030375954138686526901332710317028841003735409601272254445292186853473610637263778908745138831373485790638856156095865638775292086132852626083501464414724749201377144734578331675592220642355188735774229752619143856630752330367516006963655092571793525453498985921073120196047094696813095345159577937769331621263261746326856308072334879221398492987690492369016325717092049011886121435675019697413966452578530300034428472126246004508909021137820201723032775480216486892323813219551903289772891243191070147156231111234536275730004871355063767119611628765067068653349465340036256756457463905102530987858964095360133658756488547133319468925869704070894491603213245884177750204776443770051729200746241021115282529396956495967130359735374750334430623690264324676341460916489071949615073946253217398259383836903302029365632146098629540806148151497921013084365006127094245701078463096311993808083263250279759056265140818893257345861944075415978806953823712030524113421579042229627011645607306342906308749110663556744057309204162295179537264165609034128173539933494807740615734509670540379037518278459864904328444009538941186527801282713844959891416944005580179002762351748379797567155729133855160226281471837383718278751267827642976883026634038386201463569456008284032405774807642820532299746658503407966721024383101213038597856022201775030895511116333037676091204667741916882176542553300389400848265470932125996453956275852611407582752219447413635870940448468535277519361348569982719566859703207916410199519692535098331986439800765857007448345237368545678728743454078345188187565760157342683675320683784176549632779552935093138521066859584846319676038752491571298475022716989108989189031757384461403690313955159093450105128968443496039065215129920435830215959828567367175820708349035797699665187582322938723344222428399572574404127077719791422085901632967759761907405574752620796942384641320417843996704222332878940955686955342314386702430462773187292930472425428707879973537997995542897623228956955199169238779512310806387622447666822594631095448532415679002310114912276471607768605586877415168011659641735517846711892206778319717496279624121133246323935819575886845521135285490481596000212794052784905512818387214887384642123891186264582388389667343243458570571290813781665826368166224327316054973855312062341146309380259460266136434048594292761734307026398115345111507172268623724302277228499677722215719562741679999080525810044488940220024896598965640458011332213612486593796591201206194992414069648219292610763808805274814753565567073564383544710152604526962530024348508419281436018690087841655659321118304923277572987392493471437529285042356672385840172909585757796780660852299719857703692308463099286811462280492991438348026026817320751480289195327382081114516889460689862322115532555476279934820207721071549764140257685189349168466351430568203652819977117342355657756910901218971017466052958394623672407840948021741790211060883538080743611521384817042817604835889120638451425230438251019827063132336747410543566392400910845191816818680140121095027443029857521760824551261265463780992101394929341327950824388731511996974122045241788395906255650909277034632634694852949887090797393301052575630399583535399756279410085572809414172685948947880707695514743889311827922020604541116305890464738895169901774286657548874831438328535665230135223143375916496664838721757903705848075582825006921421466318272843581505291764098027647399762335833349069627206729960688768284649843518132390200011902975031410858003568357787671470706599361130599349624160951635284964167440952986259905143069646468030016099271808789121593644506290540033836259810799524443816435981274321448121351140525429485551204840349568574788010623152510517463429730660264170012097853421990957678578319849985742204660747618184286327224532608357716844165295389468069488764477413323586483949370952459412761092817593526451279520344578327087512014081503895693797150118812282454315013074157386587689525232317685079777697695912291235321506454517090942826176922858108843114613994528081598653968069700581610018295257713013263369335631796277715125820723184891056522389662357383492297385737786557555052123738816913976248407109592837239904910845239670855673900651326671631030712963065733390624081116934750089301865619206145115788648169887921003011849168656173887103709527761378866139572049674846920929535683760047495898198785781445463977874582791495134867314044166365315456901329402926651124198799684471954068668960595393607383831583721500011301015092658468142620486185476151444921193943437498828614002068410890324965998966804549767235518496871032627349472772757060926197332048481869972239804833969032221833527209487247636606574918469194203890144286516100360075629490375038842178809374435778053964627269471338227424209832299866274875598550341661754106741155502399652506125098443732233205158590936396938673504840917933475372758903303563199443269062235210184374484726058492289478582338480130906960729562375653168297894469829065605399855163827419039308393700576506865523522412235323567790225583086642445498680449731973573203988010756002834018488411026560260300090811169720652841047259030429074786735481071085445491371740448342121280084317745422885618050973005362398681297546397608365353240543234839182015665780781041842703024907030212157395174036667950700384960299538324501642832827938796065772940012774013250010763927566822838094853806142937930349700016284145746398535175699204632311572547192050707945646302515714154203704133223939065751933590335406512729606055636009856357492930279264453062238066294203901221535119640180355767043516396271440284268417768821456539514522620199353364008031085910084310407942977563269551295648914298849018826474574646478264526050940185694521410330999530366033060605766163453214153366363267854516458289534901131754284875578851158140126066562265412801580836969511170672660264147946723214669325706477391975085396310523298155746998094002888160983982448702722841291741794648115908180784440814875242970151426814216297373848287554596156893799520930683213577364157371006237721237794313130170393012937022557600511222549864617797955790701179691444999281425052968811831718720717570119193928665997400944061060809949615626749625782540270208475168294203526562362038304984762381884623241377727846222853115691931350863501670110654688069021422901896891300160303643362459496938081034525655550574407858322355719948096626178030330812914912199899196406493826666737771404216476366745761060201496403473877076792166969411230053468188676652250389547382831212136695965868381838390114947448211920623120909782498360573702581672565639130976154471758758784811747897649718370742527568786323809620344925530939914600086738380373940536374058750676996935233967415760159981510585845599441601648228205268635288589053928217677449006682270247654442781102621930326979907414801309480667309395484268015382987551098992826757563961461975653745902548801703760932546127880964575633797776479226638910988241117758557116616594345000259323863472217870407962751514475829814619135023267843704339111780486641978753579989894993068751853123459430348436683424621941920942247576845071242010515351357904518364166426725856140516002099637554248090359990333278338690164367549779694432347519053967199922043889017417801152732527727075302209757406236186341369835659145531421331229973853781356604642467034267430471745032721974202932400237009949610928837397795303762940219469154285258006822564645627367753444307788275117368232389934634761404306230155730765757688213514959187434669131255114872766619929249502444039964453649682107057307061439044732994406509293638636885808027377398009800222072199491544810530770114801448259129292008064184882813290263713634287111406483202185405501230542644328129353556819626885313962830795455065058000301012599689461344726174157385559348703886182320437475073917416132378672165613305508161240749235739143560775325492231775283330812924968024804563242583209236625028409825695007573573536675300535445573490637381790036019290471927902543090880048265569143127539286240026101006031977868164120386386761870859123336940926595044000935561925165016369579655121284306263203953381879536295676388127659966366717303751378023805598216817723012262721230947301883073464543635693686573093981034773643545189663759965156896411599895752076988969164426658100959679561497855995434324525935041964465111909275696383599990875924829351391624502991643290322989149784919447139867796845397280207346697563580036728356789855374113634949938698582742758518287352637773128004410125956170101467842429070360308872605867563777283506759391039297136233259706662643956394462619653050255388759859221462259358085066676479015214901115586449470750391165446947586030226396848974297715070859083264554136774334002788182865040300551430043779750782948591869780372523635099780867601238124801447289408889695157301314514161779984500463141657682702737893656220673007679732535785832678091847473389553440835483026640703651689271823569656418262095261156882186498799338665405524992136786059128269288934136504572880448970544834643787154362135273559575106386598439387399945756237623751819650183375358078427583343795796839954053381528138120099388380598182577994059646083314768513477510666983973729945477243576369531262863304100850841759008007828521319296973631087879823201272160654986715488791399888549384145281685597717502268991394939410717731130951151351647054595727782788159814830817758147332590892301280777776099119943172912511950362808304765819881808391025717786442644885955156802398231798330934029016526830174022859117336426068554661275934621433735992015229948198236572629401302058341377266422027864664174770433361858734054463396640827598641349588005991134711432807489920459049834275177290682064025921216632885371926878962454190963517655266657095198074581275170528123079618761772857076385345190102149546356171926015705213275204145141889404658122026328001652304884358896106108416978087389255774592689549326042084065642924023626052870577244017256099712234698357896606417783063902005024166852860027832123778781439347503610912238997386309428148635899416338725355384383440892948668968473532477103566406618635705622483192886632046969142909631492936493392888928683409641803259579349762355262073801923233733812704403179733882137728031627856914915242769892927173379586971231934001646059521091780265187492700285241525829894891451161969829342654425802509856854591529746888936948493221728252627102956649337766562261462530110021559062064649773753665003798729950038982872153896132246508601458754762788843902858344962483529516180882620534703246807136422855851955510496825657357827921844820046263074193925084429357720288872808626441998733571295890649453097602294437129385823100372320429675835812034796094093931807639632993027842938434042842483349541342912372102683298734691447691024846868861397971556127592986356031879218010364490035176818044004041784694483702411078464305131495522697607571094170903666865996280283385314522505220620073784031921028363119352889207625957742609887291545045710345383827835384435081518412333698292097285051525969665511116975698665043332178295710870874930792050872210368627595416320133610802670335968185010031440212435811675710984384635758247863888694640477805031640390836584903689623885757325673231014508150076692371847557425507062787653545918162391353832707350870939197604356273442644998419669240888085086970060459612466874643080070522988115943563063328878518685459786667562650202200951482625399912234352247307662615763372483258859433839323262141106425858266325351707287303265099999197351241173761918295014446226974492314664689984009131334461161340056394269624045263435744903613758176805509714428920121290039140048305753433043728064699955580048527179724577848325900194054351886714664282679701633778355112905655547811495798626742565477460407799984941937457567126876216683826287571788417734457405064079765875529816776463894728406232392833044138232904872458698703796284839082114420474607763954427515008691683746543587409027843430463197328908221256522145663060914709293619541505005549872701867884537542472439233209380307780808370116144329470739103695486784047999279944524510747053497505661864321275522456507785226985638988196613861368114296910221427387567828964825990688211415778117326442209469905415675211316925930079658394327518988017259121684220404107741899030496499101951973713933620755624561060506915245281966869779396890883179075502749919639443204711794756750978629795602090759915403438294470489818420697525844299493749519132655477292745220814800554102585817347413977850923455267889132677657871838514901941899656251504529521744056158615170680314543059657817275748609805079984613320402928645115539059491054947984945333150446292347046579453316639885539112581710986587790083993928877782755145017530601817040133318069117410949663926301862091617887904863653742452957784842605373177100610058904424400335451251419942538065693646574740455484016464982306222211174324237474640480048804546755217671188681002877434701176610994536998946525305495780930911145396873467603562414699292923036219167113331504873402439033704107737086127666811342900606783945612593295489862142024737467073941169735951060474325383918547531730588629747716309079404207089144921899177470237849469846917039063918739892445390417981633272853786870347916025606850133523257556201989833051326718546019373110106392112896212114085451409785716936253264261075412848573758271195595920914381871289505243214946958546806264899036105938794197830101927952307913821454651712439007051475648541206150225229995000548447214448073858154624588884859312848515524710343009813498766197672777661875210616094557942152725403067815436146332181136746102489218449866702953360792970404457602901072065603637342440981092097769437332091647454335453977012255843022687707312960817161551635444909098257686720514546291339793247132939542769613188270662258362939259850447800240951800583853769503115317330312747864137258471950302127404006660380313674869880793847751381339316399326765562092424874997596977973332706830998308918990048563606842681687627420435583275600653950038803032026174046333702423785026372654795274294620442205900574821110633799270895234982000734688551197978855391307440617554178106512907385825980266961832218828239642864484606472015463613733372573967615612350591475684587173344352642263177984178197798085427817190402491422616172965360555599814667010675145318085798618590640442905588431702460360343621244711792417521475536541208592672527358668022485834145198960093719428715863158704297030376775703114498868834238965413708081261730005019448842687459763244279272347443410818977519689674849062671775395964078476142754967556712386557594902997887147577449211663110037090279203989849398540016829396925771976675901739799744435803177749489955815812875376618528915187452478343504492025810564116731226624510599045346168311570070168502858722136869183454746389476995998952646570730524147742747179717388232746977145143007598480405686567152147456071134819350307810635182810316572061639733467620804195445957912091289995641684811337901816733795643785163304056440106642888682194113225652256565233089968528269887861903803895020135692489311567156430599103635325359010503654679845545833204833676169681553308278826537998928946470873962555927543534625560969081718264054821419404758927629668925249028052694204149184514762431314319702171650891750731789096010583567526766639952559384524563115463498787508434658374353538704895484724846854790275205709594376714088702795593338244007604896127045341476982935380585314846307933007345323551473599222427090633578792449392969503324250900906628185960493158699634606228698442509119560525606806092360731505483962039938949564689796673455554936245466211748552457044281860203864199552371721301961666646019905561824561454976083254505068107602280093233798082354611314228869504396154331582444527735971834487278353170875209064233676547863099685552830352852448322885515706182981369272523335389381363640013587032482082412955529592307551534334373963330751258389499114244798378648809820885117261822104830030498686080956572026714864718567953707902994588829760640226008217499105753038646270230226044020869853451582975221258415831884022819294116424900124369957553094543795872781476597537876830610940737661478316870175898881714650468935608761745965680703270361275316047067087051140097468256745747297331980470172961635103698730064036835739758751281370881936665173104116736851510842724821322647511841424856459979702647161885788419030699944016478450112233599990133895320655913596202293666226715498067043714196262370402285596282622089995306922071400416498545376871420733066714548030197614069592536942116556529730687447033256057395731632024334207726732320097058154451480454531059674817528137430654777105321057511211269072214333880949120199419644864081277974259573242919567374078697528230619534987217115309965105279170622377512491167659771337971240108585085392619425706548231591127917410325857516849215036343973747997752526210016310561012259547734921408804908448291459709709412777936188591522494196473587155529220595994321027780942932271233816698466585194583681232542100963678715934488042697623707304229302773159648719442314467453764456730450590143824975821118811051932334274759437793296251409243180502502123252344283792418583482090468399306037093052357779407344780271776591811196661642723182855567737621727596185210711504482144801346901727440097460059074976239158684851584641973069545433982448852213719963908474352928186668415502552673462579739841230755290757963301676288575567993805470594875077049549796021111374668245198880989456443945752515447172261169120632341516012983063770955489225149621709282011077051531941465212404861732404797078432336141200705393347022215316973767006416506671616895609396206867069410716452814827306599150807794182089856890356461245394432262333407207181651627585791754707784787401064860936224781635618879099175342942746461902227436603901989244042443879278359475406452375368057505315679135376175395136025161650617471700000415025938092079441834859108977258657692250962115484018388334797931749021617934036088574356909584861025649427887017438611198814856763887459473998381752762016368769647164248677519156181902404906791726295239704298809055141688968215026433032922835926594469753174384661619347709057924420038698774849312696047475750779610920635869180354674309517749281320914080728609204930908774089738578035128433018595711998904903568114625726920809670958100237172614377479526072098556611206098657786404313045667210476635136290882174301130161301791735858448712938061926182666059912629594111518290618590019447430012348037538814345950842046522956391131348312072031594392039975065108280204556471849903959341609980480126837953269040142285963975950526105497813311088653477404749801049346758799083897650379085127417601693955849753979444915897911001475266230947381052160110693901571766618086373006313709002378990615976926791231481320051514390656992004199525904513460259206652368388430868408201576959595844249707784116830970356518023624835965322024641345710873390527050403916152944409341556868180731406733914928735431302663029977156803218625505245543734255660094077575011550369244746262978471463383299488253721855989968661134608227169078172335886088841757077068425471189917699243713700612196800379300316167743660357281681358820652536401380889359932654567735353277760877302409629336766662763431311662031767117297300684825980049828606589255588571591975320328789022696959748441231677545463039584004511186104177460900391369205467682494910488859849213797499798187227849395558563064507369575361888826928191242248479635046655821530940114045733351206831337359187354866548647499442541216515534514326629840352177771320862856980382735092397319498926515840186820841200990525367314066107382419007093021205533254118789557905484024728503889883548609179620504463829269171254153006701086834699576225878757095825631513002094035878287119003397770013943344597291295216301723358604139328112216081318204528850660920732752786162557372315483674311336068967137188958922379776206801393110076566434677304468319444156918592609670698405076263864992059271854921563931898506918715591353804668803873123265753308736403921751666505191946420055145886236645843044154993254811508487028866277990849025778967260631183570159416456424420952397501269679318677742749859288484135417192296972521250940499787355035428340687041179056306410004543074435643230588405850942855403749697815383462308841971558754546677515452063452987495418639558110104985182065436388715778021775199483296979793039651148239726119404672225093848126375127201430294391090367730823182510284876753124632916912918852850892634138102875557509752062840009678083324927144633864986724588919937279727017417961898158246608217622989584842944475384634900280514357499395766213246375251687886083522601007940567122161657972030076904452555479565370151261079850685201029859653713716766903873223868666518880126847668012707120259490886116851436363566888365111682245562087122062027533974000170378447960466797501117367351976255213275904316475720811870766459414568665121732587943546248326237122765704358227252333628423043655581829131535956731294370006862483231592333480146670056558406675359273770511290431692572237387864484810921988499567388462865760846001897296808393840833690688616834958150899848026664075947590895524182196195275637374981522529189732141617178147144933504489278230731248236400839332377838259231656993637813388295956708086149837388144494852770855539076401166808261909710639087279622781060812444673899713260081727626186153336936904505998057966462897850922741447813773835638571298352593348536174883886689107598349034991163932899086857201122389391640063917645720573705378854846752668642080099592347737684664315063013751958545183866010306881724039393017059161742645202371105566451435165446847814060412801525607495300704085902159143573059417227495380705195706554398555659919771959628083926820211270906276111848125962442912501857435018503930525208640015747810559747173301212818585527116875975117995604546225825370183911763316444600972941206668301884513121918466660310977787673324262545937373035616149733339107083808028055347119531101847890728365663308217467976033028853736355854438559753716224600095792394852314833891182382651420236009163595835254243029478680111371737326191535944897599407782747417103127810563938029599182438960428009826442749832588927454134808963333119498847256793946225374395260891924299507694715944031613812149572969911354179055462026236595719354500067552712608415559841583308777942330605392041042294391359307595516253404754170859245287140573628469270025527159011434798581133978753717209094018200609994704653035613311389023278023713505210911203398648505780063451449668134816089255668908642046518471977552251437160815930621758542858674088927480666406885137361719175606473266163758846514516485477261834349983246849726545440844597380442129673367864428766556562657194615167086746138618712403017103464987530848703132219739975612094428726279187636934919039256148874252397730145515481858529119047402414873762712464092940768094832868288174695598401617712953623615632368090013292195942791327775261371809102564120928812860227336140440366719898667483963465462842471064121568556140916660296693209992901209567112637707842462398308606133363507125626562447665058238745017872146941785705296328271374922183478010150664060074649031201667111414390947803581677953999797420082355888657044773374956908320712836659735933920850682711599442442808953326577235495499717833264645327672618251550769353482444411974278296374091761688068978056378644743289432113759576099432669785095235501328665780588242111138176758741720128467577674422518715413592006780288801059157675500430815584917564259865193101362508040454656030357543754980602221246056774680818149352516772447904631920021105977606111930896556761139322080507806534829583709532111537332038014510406345980597652174344443065062832608606077292220569795640425329670361640058514562376648935132460006746129976971764855159601072386456894270887582377259747988165991219684062030080383164250818116753264658611437453842935604047339165296228497189737345841421972110873622500639081292148396391255830932572628423345516616881797644516774267079960793344829296940519494950072922294021015863210551370428635031229298214007959107514959461535624282373870334429239438978607333362843465559715153960873538656964738398018645075117339538183089487660821523055686049670416836296548951359357406932102932727242151322814981950215376303618337461844578349514668791965011498628638312948536174234158524230473150427359580815628686780418035246691555104480084507857914032735784262423897879390946145893992528244356239711964056374893891824078180727633104394296244526355444188012682572317670512680203308690738587272903133008042205290651161076232430409482856108379031009087341944190939162576260341635685790447553889790152304230966516360348208266768226953877826847228759360054401769393791506188452338322174378710785357758297570741907437322588787795516216441941707828572328563722510197549847878658330278792970823020599747101885783352129155429235173048858086679078242706249250418779700527523931996013998183215814850389855784159322761699734235486479086191123912552041451835650418643042929906733742671391985152737190254597034439126623906419144980892073567418256639435016606384336709112207555187326033968239284895798380693984130512077793022947133054890959779630051489934912738788256889037184239616114376889300371211038291959531200309860395754552575846361810038959356221374644021503070777246558082079289664682062571513499101170007996953508061396893367330245503169590540639857088301160877911314355167235367829839307595913477944756656688931282670531958168493724462298696715931328000029619135487829125192664930701841110319123295533644020450835600497816203313289188423139733768906775447042939420896527281003294975365319181992698913241402678201754803381515842000863769215550771968930366979872180898847354049059656759435787602061590086065830778017550602183970438904148554004643539654995553293238076133935282535679596338468424206214339629412679472150438920508722938492255081870527344075558928286122676851520849897692684155898028342340464403845278344343812344224545725898066486189129002567814519639244847924712495892627551277792222217701859276286427622989496612133676845382201364491546066703737350572514233316014042581482576959873160467269809080373757222807086147859944848401799543745279439683272481540643458118748750703247334106242930912243283550588425839319560145128618732438213949088595022027164921498801755542674782204330805753325258150904081363204317890461060240967197642392898469264008021245861457496238162605431632341520016515678610922144511579820324512366780113021941181698827923650536321904991562374182161550301088156493257064298457589132177352682536954072375998425208458661803246490928347049592282784796061055401209152434575196808097244110326405324276947009195398841708891299287683482709807671480327728595875692309181552052260680191997131723778494558567006125863186279178535200914695757425763311409977428893141105106667231680758240204486474955852404695330192768533066340409464039885210009058499250037845981808766408782113581727644205970871079297590027320039742660935149269916081637240169302164680414610355299735512959620089804330853207579793370432550458981276993615069083482817543794971737524945515874331043492270448812310964881734222150526396720747814450283577037228191633375950935792343625276743241391153736138472584310901108972391685974419912029030661368083873236975132412869719048070814778981886793124631833046821070522115932782482648393438034441994003170291605661669810959144366378594223194824993330861737281978262414555252438401888949790747922596015845926841551686179923382080077199634553783725433625214027239335679443008106440907502458920668467096472533102916156326378666944563804928645821680476624293952346784728604655004713558178714560321365609558840647872109407905148898536242867615048256072106466494592602124555110765441840880082516745341389873944920064231023787401543193180308204080054076747659148149273595761949965445750571989002850910340672084562576242586044803069731544240894340536378265759268575022936144081155952738642101695056959634004340993753326828970718289252141658216350017995434949256251014832146901086673395769429166245984809590881575649249062288087147991968745939512280343651334865949417101925772204335830997344364701855035252963389014905771882115022951464874510664313042515437312859995800929113364331562036476950287592666712664898050153796127428796289620820763224125721799251259255112146609519607319173077176527105367348258999117968511505278835424449999513778842028627036094777519791119874062683430443936321348485807012587835140899518992238463926034436697824704156118940700133130821703986844433230467714942349045894018650923144713284690547628310229068797029931196767727178893033420157844528164828537796189470622109869775391905852511200819497842746406130875134692938366736970967923756564583275325088665712423855286040347626940928203889075205021539301412923202256442510110225209522907574470515041915216986313178982699234907697378731565243268400205677945586930066222834570427521285506847310711874022272719775591159969518822231423391173770823835845660807060395208977171583878612041604908043659180544937490361707919669939730144304264621802988882348617862533659444715907649901047441768124577120803856179553133314218740235674232416763644403943612540220800269502472861378818585217848563943529839259469068778801117243099178471153524632047560657442115665333695085418666958662444250984590070212335070356765719983497398419486849751969523207760371135360963182519756387265578911528770081889348979596371444136924603122202262884813573825773948874319332228987560291641766175304529964302526061196449524257944225495507375288548143943483785221098920780935603876334472945016907339010096589449027181032681932496330357516478719579651203591757542207279725807419644356330235367510427722079616140405513279117745286529564461677899193172320270377470464623569909249263540655972264292037171501912584477644897198092286040543685198223592598029423132372019871462155562683359354353453018482048860941609545291253277383600866064497762253448823426634678276727017565300510505228246697158488045350778785575078805425897895849494853655731498698191394840088735765873311398795527958894628938512714424517493191813826710784515958059325281300970416624647567846360073815257395427790349659409473547156040310115161372066053933732748079116120829487119206051632555955060435122878654367055366577170751689509846189772597483837043219013792344711972028992578061884283203075058482298918582357862976330773807034417207134108532392774781458032873211424018644910199160923304862608305471529528062127322593424571234553344887276777357172664654727938041462650421335473861485431768273211528205309263480953766489662737344917211871829531642063015664054461201107677488794977388131839584466827831416414864462509438836929317475277490355385692340406175791820975896943120982923305285919583261552986932497724445650716399719780323385107325643007962807192871681534233913942286571847544403936754512826638109930551996189117937630621561080772715674215966489315180703321945559961410991372485773505291310105345619739746812328854356848848464681964997932903286500038384316370397148280977268918250057650077422621388890317272755486332117126410564005932723739563472325555494412484531293746700703533807276142796158942255765942669979398947811638428649094916827284188571910866835375780142190007642502525244564630082987765073856168130837950678986900981889688856138928645316363348223607510850227385282871073837548694477225783308600559367046382271412269974669326670795147304259478316671763988775173742156500180545660683451189832552999587674371137851037096612084719197956889845277351656596111506771859129161519768411781647809093079190070552787562946359440155668614207401053091523892594308702139145710122779606482052450746837726132619494304467813111807809380715606565605522990571314919398228592752679928034842332684600874787747687079955685617345116793900621983884096100324960915095156810675926127268299748587632355313118577483117362184390889740542483010240050563845762732389191224356492187671641426016222801716389174711935771869783432902169714953549469621200777443319073066058596802963321631799781289170392047924687427234331548976047880099444807143789545670594145000048708577934884552599999311253315553896578506697241041644273054049722708981508645990054729364664926752744405532212278780533186912553326037221492899597219928412486083324046905275989704545447451444916499927411652620227105845256291277140091345293345069147808930062077926650224218082144221704206802202852094256225928677785837730529868940768102751292136674621680812816479243935907019460329552286433747324717972668739924487793660578660617413889192947183978519547107566159033450409135930214837931416590745919622923244704356754197960434267541320632273194536665982982949088710000197960874241868102868434579351843967640793733843414364599613824643801224397187188694140099735031783468330422790692998468200731454938362987582886237834378931953069271804217597730789537676408212358465559557390063250705830814712846242518270262347071332782779044989401867953952480048438519387413223380229513393686105628555352863081088839443870142602869669063785816876044205155963553349990204954894345250289012750114418038003099135801164650713479542570688035156017585676312934306465269501118353754493198504633023450633745940123523575558648506499283580745833148915750242759622437228010717481075101628079865249707486689300064487447057675284109927426419728556120994438333441572278157351455371657822491911578406140225929039944609998527774992483337372675035509187416500927776703542312399443173051997044513111314626145957122448874992386401007289513926041510015352727251786258541506326383447451468956074756521166352751657312494865511821786339133406104197769523078246957085606098072998118003344765772779774420360567028657327724888807605580403175750547776507151546000719795457232673341276134863521234160830988607283565834572951859435164784730160016716401856790781633701367903717608459937648829368042451594055150131991915318246417468258622591428370364017484715368541990987343351958869347357430705792211827982936810210649545001404591683594894073339452366110481214110500545036634380864217850243668439585225597864501427521350044453214016799577334482567089991200484976738838687958936145901326543322857620680737687436549383684353134052483381177305982830120939950014248562040898020199288162938113270241483554445347546118988320785041124735608269802547585259704908535070853609626347133516938938742258132579317209770826324215423530629323602285196451012765947511823104820063539016424781138683936023569948703908303565871587958427505647458340622367959199075002727804445447936661711869156551684395656049352382666588153907290222110422118176302032142331684738136227640525974735762725690582289565914443563855334231483423492097512748631463421361556277067648154164811454225500770450040827690688501080506761284545401196991886878337725229552986019168991355053869644811848456623394071421124909428241039497982580212064208048464828424613978864455760186934808889862145998684095652200873245688398053154132613235423493502223942600602605363822154033507116293208892565442194627580100327686759621601615757578537268989347538805554988823948634165607484609234670632234269059040825568055744897200242332384473730292808033718532784971816062583303361211766245209890340436240155974185034466694613810524135460827618741198722723289542904192146192156217170225063312568258002675250525856008243982329968212002808896923891519705382949312198452514124424084045138978977987684141762041739544964232675120971682622237811348915917417732486158265820554368050945768110440658356432570230884114053346178576459465342079820553471267414731003201831446121191087880956356820620511754064839116424514096331815880838539598746611467415451919376727864265706975586539628704015934826789624958758036109329645518099350835959200734379546371374235319303985042907957108724593907157929491327460273655198624368412440657490129530181732398112414245310494147426029015137847013262924859076905239035369289599383143920876305709690232377210999473913174863853631103182079827956103399363578291729946816690265351830625031557279799994941277094867776932632703056546371831528935060438722399456417088341790525605853456845400991252610037652223838451966865576389315508294316062758895020478749510210732123011993656918773926380236444840635400826312146500402974360026833178508465597217430048896722063451639325343232678750359818697216041189671879416464497156549840624983251874549169962328181810190671290821751291352670189821395633089283590256473851166082809370023019718381777723705550460618462474602993116990726895033940590667143353931303450556502594968262866803065865591584601865629597936615115303914547212892464986019639527820360076730575795603420077240003350832966066772768712643502516752891087559304415764861097487541328251806725652072396446233799705678645848771742177723576986141354680338952451321489318940888556294314362867422289552187975531940384287564724274987539225899032338738385840063271411129915058406187754136699079823287147043806733055847123138072895413202813183077355862196366342296735098863518525368142358949245236153351808791819683231861179422218969434305029534587559479299745798311146330564627681307164846142975213643888203030441310522850799930949400217931802250686845410201585888087064579287145581094219766601286186701237329493428420926763392748815616771010041812744846281450385622726931318150005854477121325507251366029980620063008723685034338489501817766796433728339461637953932696656792909349929071852453989356863346992316585799769538763811446439063665382745271633023393626199841096505590617730234424788776172963215479157074257252270688672293441928098565551060254217950730834697165314023034574595972373769234123996731550217256210769551364614144928456121388258741709187932716892785527835777913495592516643843225819095785731453333684794168859881813349064549948344732264118033383994321879257808794623317919888515733628124175434842501543614840613214886245848401837820440569083708057065582929206155164692429501937777271165288899919898900128463527548287311590932063404221207654189437477128800808857341274231416144128031521626133421182433326744741262056054427173512029559336539509323225350320370249077396126934315683255020989940720222908210323280901399513675071172767825649404602664141141632791131238406857827783612880807621248897566788550650169827923097229977471409485347264132867899091919207737165600209867135592898108121397880660176933383546769993720120793856750175820625458661960056286873927292121671322243816183115354970185351438344749808507617683967923117582790447138312184912752606020989471284481939547761891171178782292436513475153960522862012217076984784583163079064691338119602322317716976404789787572338995609370972785224204012506708787785026706630032386186822077465634158527699356313466603458806104809430481651277587819772005565277491656741235856687573827178204438155844741199897988518452546726633708643041353307960720806464785214713836929193649505832556379029370609242153821475042666072862813768966420213780903391218072131989220032978383006547336480542124820577282222618976466884051812249662264153301532490316678683409468713412498894603163468977099552526154503152773398688458762617574306511121016463929260235849795935998908466936510286081713602295555521876352993719066953600034240640790481693310303987528069738184601828599169218997162227278937077600089263055593002366491814858658359120712153920848283349456552941238688629762966661647257246470437069736142393419975396272401558294361243811364574229452017280908716050474314911979707314549174428931422563275648194930194532027022603354974391990725445831608077461410243429308753247534412008368929532138658337716279786331744170115510753101809414905284331685166104255793149067193270086493539625493934999341734459256786896712057747044322460296286897775375882729404581048589994654159250466714222182040647577561335326317725084535139750369447736506141969257674788093245757426136473919283502011747816246560225887333131039754236454219670426831057220859116438777698100192044133387066992291003313419292425586700246919020509280504203822058472316119934087971316966672848991708481362912967725551013168216197944122090961229935995363131896777842082370078610449322525298402163690219881390789371580324523946728910106008127618609452635302308897217432134545052435689830849937033687174591058571022334428917386780563611223202727911333469063067027425588190662857564105642951418619474773831520454272413798436201025436040848777177398670815586237067209631634553265140180778557860821755548855691228037023148335073133536049516250761588287675464388012764478437836825317619955191294491956593755837860509509568873991933562722568718225197813349771282785437525146223419001295245490518728822858194899184927996125504445439304423287968216394608036561929974276950734557518016334336717373560262975576165797520446375785877447125494392093936628083391817999076390493085786950331179842883884014634930247089737155150431625966802479376558589493803200681674749681244937699042605045920649438735947041215656905258872068096202691613317780637623507186667947833907151355166187237255439862160718311461388543881394042031519991923614440533956088289338259835074324401638588133604882446405147132244612262059179687301208955138586154129142721126159532385753913814618933506697719004120285595211627039519822550006603537841548769393890656767774596101660673269170891472994340396495905556817513132130189683701434795048397712610600201391929940541398493540862242802258660785346094523053440289167627847007446952014913020569647028844347406167242132544519681471989910226214334949833615397430991091794984479825793335803922233177238857249761513430530861251096582748633086557019387683909649974874740968045885224011688110588404067609297811173129350619880199389019133761071377735021883903251740823592695345730615215426435379233366522074236558013214107107550102038586424047567162092782750537666861321524594181754198800174515376053234337854321933052163558632391796632352617207256980569147084441118158977855899906422642603780198484678105231603824828687814694425085204693956935637127365511616699355650891420617656220746900254413194566431221240303954067863284249813895901967932209979111756374049877959703540437208240907707913362375694302592547319674020247517562645193876297450287337091103917461030267632174200855348058343685401809760841789910431717973342812937853226717713487103763926283019715124428363544160176991720179170305624310723795704038002863803803555878667431377441374648587284182564187227472622167921314010395609822545980877822097494464749400492146214635839903313658072091824966536170250720028312621413556297137663523318657459390570871432049960932793894571004673458783162911880617041353287811651472131602575298412647860318723193211085439412558009126850226353973850995872465995106186815758871322102419394508300983535772970021000942722575837364272695187639638123123147800309683382032259466578004273130692318983428307816645959649328876079663726123662267926632932618820701366286833443422843981846477084453664354200085525382813766684426151104525461827423123720574530687577139977386659011173608743228344235709144809528966410581002220896324360563599440025763794069787955808597046820866993075721028698264017103447230858944113767770846327033144328678432673785732907846172883761537886552726978106973744498556075574247865542764630500697319242910562665934874469515881067371376508091789897354901428074408040403189731665454321618378664518964635668434330395295456351309036792108850971754998445107542259516893668656695771576021880420129338091347027130866279878737841249745805407962213779437501260167601022993659512849740162204804983615770784288095144943852551190035573780075961915579525281656419374174688402630348729517770252005299732288655420444888550654156379834740470457589289304924656819491177134662706015034056177588638669795411434098655569513964301067962645890181179254462675345376170912452652075631408553672819967850167906528695900343887481185655527449741169384897318561613612897586382031324130384467831096121389685300738450756188034238271397121425927379163773426777642493745982046138245406879761950071677828133919419190473148440366497697512687009055528880966306748307325007117611637151604599771583778330166149822968832446041560301494482812468312756349201747694115566371050159591078710693173455895305441851108993599240290569969246724303134896011634894176229555344683729837553965629646208872078151765632453418625722043395264929559648216748839485806790245863267784706360821721159891471319900901291424084120908527138121263924936671149977362131340623286298349990207725525752084498375692348519027195764548657891530124768489491877680694817591810455528136323645347361870872915220832176845680889868053587544601061398472509225514386840505301994868620704591186059157635068495162097543285749133928782111532020332200439561755017669010095353752255825575528318980657593166029461158498770866874515032845807192466718262710832775278762184129999032512649384169078325878282381985704090051872883534505499342874742328368970126998521844391838366748200832837176111608367158845445943946394714396065554968765707797610582996853153947408572962973382084016530557543761444283965414623664003325722579892643711115648251054613632306644633959955648974771248646866561336754230150773923678269982000972969971847310563004119781308293523162997561687565961621380617494494557547118049551261811249385663317644617255171826166135438457565522786828791473342770261369121304426820446218555373728601036269857059240585266867752557301845039121131271905881945329468553592785679646841734084328422103136111971669199980510844540806745113023682123391270208190349632456515514023179383335347101412660954515833409387472758681064133815476951569247995038105447301869244549902791356861319783944769527784942419322711819403530029677961016095512275314408079454067321674083451774471160754623418301879647169270744884613928086027077305021282731050006154480713285563221727935948757998317831772105114882231832785080908488878822938753641141457669094444928745442082093404096592769676101612117395283933654061123944984832003745424752700375252576420768124968995736138272918707865048375242299357875243856117297372676918530676875209052143643222964661630685211546834931170039555363072305068120846705397605017878947638315443428417459108930119927562152908249075061684277286971096022303810635416252232823364143164287260129727290848207099404748999627173623303770201803617530391190396592172609937128888638094178316819611131009617053742445636619219941518524734768249736741309956029039878133992052097089675554304214587154859123666012691205739501633682705576067213022962389542635405601678717202439518591636283291029479241107194754457289889377173089745189441798633127295839856794382260051323109372068202220086488133059702146909579947861349912673490312665229495249125641901739403645061474505268675349639075368688073774933779661458169652233091380614719046630199514842509491817683371558031365177467355338217663034262127972461548314792308861039152083524928793925351339201052022298934854290918167082296213549518354388534754937499238101365293661487496124025205964746942317249149284364199054241842432589561617108383430112102994195100511391204670711301271415326631171556363757393367343729416881536764980712487442146441648506672463463614575982199139767898140207137592141917784534078496811370933845762767456783090083127447146121983766636447994188977343579844846379413017854198529682672910429518819785592447677145682472088064778669145756038969890688919246817185250696379683331178154368972473845908412161369546888257269000257604755261112428109249401242505209604870718063828925905786228696516434792644167884704578659302727168228742365478206648434278746601119012034532081911117143203105166359120702449512262210630624453120961112106384196836147945306519560783096065967536789179153375001956997309973442927073666083249164419072921992524955027487638730494107840414377135692042908626874848398926909419515398317850082950251556002529888101050512686916099560191569556418336410081755714906203618905778994458923065555494074242333875371992016521841183097196211398387701712907895286651140225857543265373276474441941849029618755047295018031157477138009891216546441979048214439538494987208623109126873083599575966843338538016222604738622685088415823120557215779121977172595616340651614885760987845463795462116630212641951821569126666904192976963062517868614073754084621435970064605222409135885043837836227056694425125295300117521622046321154182064727581765380639785060210972982218699373177222254187185263254927117428160473925193354146796572891757486151734265299248633906617301925816486888261559539321037985959807152779830141453256087408816040294999645516076143216171482138614240770400751836313532597878662010150820075459254669079090467231962339242392601429931088528213790707345859989137556037521044412726926547033954450470449055458892647884976434406968455061573239458247351292532540772611002879583477252254066455360313563466651486034033804049452568300380170121359472151153695172695935847018651482418353663578000796099387593422937628678313012571847127212705162624060113507042392452348328114185646609860096464985462247313372332044918634240541091141204676827729851677425675298602434171394087627411794354019772799574902983165020422839934519920863889435924631535770573621162468906587391034966944120411594102369080390218442748296601810368956508758031299834821413894655655619887855163197815443496106141012692095901060105861216081489488013922177802491780765090312850931797842828645749846831108808162987482585222272097995876147652327062958519495066195926205976317841569448338355522387714020181487605222048794939199542066977255130896666330479919046821005363409370165791414768386476308374567388642496989971573977293185067283760239613337188785277780293603988430874460375345371778535388489978449353715325377030911436669052773150204163819891646473671744599287664789602176379534144165231323366176745445539734640845394221257092029917057951249622154341515818237085008857569541927239315772344557377803325875315375527079103290098374536121941209495720338923076001892720293393221692074311203796925135489402176305247683092581519527499210359568352853372605988776110433034159097411431290378604957863222210059625326043095213510991324134509654743917631936830354904443787674100929153975140341830741173669265750368354708755740986987508678864144502664140936655582238617880032943602495273239810777413519020953189389029849509107102361060408068604980616461154077257018653405205652795041064633202433066209515608665994950493468283942272522418636086513440246172905394586956974033239337884552046510727256336556123497459752570013372079094783199299471672298891027238074688906908574088366961423574976680777066926961054903193130515839200879135497056629496538748365886016440313444001296765443242477539444847427557095255948347182173122204643669665028273701180209858831003765783829179331059828013646332956254929224122379866697696994968909099818943941199932558200270949108083927145883991591393400065998990078102130684971460729736637233616823673568950204724145708909992339615886345051106620512592386274077939990250347960353576640187984875311945749873734287780969143197950044942675843725577799936610164237110200608481648769253554268277228393073968910920465593149355361665310693405786256281388648635181024718322852850432485471976255472239041162776184363205115687800587371279012754292545839537188986271233627246288978411467363575374199973281427735734175755811902486992131085468573775725989921022301570703494789265227358067618541162075299669705191859427237712786144435982282804649276204257909661105148954108077298651028450732875928252277361799187712718516311926757007113674185186125691966982909177833120947478832342192593151986325049446267130058043739551205104019971198914530894626009225394186359377669624722414591906575138776056508957396459361512604807073564483543065081458314823329586075841463830071555368628183243485862537892174854241918605783314804105614744293426287589180845839851928499000688338701692892156343403060851018198124722912703163127585338782681410097239705534141397938236368492770357035000127509868644761438400624993974729115511496230197310910394351604637895430093761927252022594524825872974621464191947840487577265853259087587372916893800847309139360829631110929733923652069641310180134155090979733076823390381679484314360846204938907028474470746554292036387971422268433798598058245176557670808324966202472366670661604944826585331274587559748638585955120694019324646833254999927687034329399273526643900483165814671033508313572933127526303901958916633816723304084725892488961140464168943077547575286835449394119269744090439974588891552761312415245499841053917483319152275439361839420377051671024225744249147364749345645150474685748981935974886254507861644678035880294851312575720225765898609389448471573914766974372259783469667567135751910799428300123859901645534430790514276222326048184054073063936757987785450087553758682016840119250739370051939988953769030966656192058805902984788228638471317918289462685787319354153155340124148575976168281131146810844456948057660656049434987352915034953963512909101751291126133378776546011732775078591657348820658116618641401152573050842071620650795241805991307207944645332830211115085756241707500876335097629690356216573977983377563037563507319466342688124002966295537767098388820121921232613766483408823126172511740802836455639192217630734523132005406958946578110779330679519600048821772556845416783728151050603850294502602364570086672383386726973500066087165679304243232577780907358541567638627644673517246242249007297393037879996654763434211420545210309931311839276959138127435253425535873302322140025144449380015401364805311914189975707629530043137234664513237561712118245358775004055570021939997171725183301463019196154064334073424899752363858133699482226036948496804202917912331898790680353584262724607264756669031662571866118635279880608207907176562343724954138989466731208603838567458811392264903451296164145827441053792028703395834657706442585012533976860200785568822970137542363193551892755885538296504412828965830374669882222592406525274780947186318700082393676087231452538069370339300814952575702550981306632795359738336355009755152861033099014771906069046990723900766495739537239755519652732529506417973664603002477121154412501451224192278256602074704442578970628371617586809460468110288369852242488996966160886421163669435443890033112106027673658392926231426074939389911174324839204028245953569596873894329893940082287054562802169508602565301743654888913892595039567299811194960880787340810546627867884859245887858162518062073603159336098764567546971512061489943198662990461794470305524828630416534634307017244983531412546151317847342077972868887311660421237030351004530755328909424692807803655486638793856478804038817967792078530255351185131638621387993935976943851166158065386874423094919558590414377711866455397931055204207967492590564555080184447622679457964108183308339619200751715066209990916182060434439460874128418367092786757633910774891028226541923167390523769516102292043125575106859381022713148566966670140634702710501692639642506339677979676737983408157312058656445938064655061252536233207513324065627242001848946171074676157727410051838478335744823316002944206077293158991310956949255603371690332038782405080639180787855984187317875766097047946516775168451136223748416786992164679200816568856123181119106333299289954632317500468471676088353732403479844617769877123645246020052767530653316757154198028169318436750197162491774540589605322386905837946689604375468959909939173953018733969359159882793056562634048911449917707907749602438813105268763992015361351085669987088108234484437323880364739518818539422666990569902033788783954436694843921277051954436390262327430306184170190393635085734719221422603424184153278660460074365955628335529266969231499029798559043363822781908573507170978924301573892858524819697112233456599256879075622941735386327187820159574778382545662243041369180823794930178978496257567962555914215874303088457101583940478372101028697510472725116391034314274383975070219743631855206733913605149749402992254734711819520889735502218656519199232940507378537556409696896560177420774877787620913912699799389449506420556113580490715895821717564144025792031918086252013397412396624560960148766937691636085519511076794416579185549562318081444909186366044966723268210389986959924527028595777859341211750203945809989698173056279917756940906154177450500298342212241900701913784946594751884951358925241447209053061113975374781324703622927213813902115412761778254328232803833602338643265637572326840226658241961660482226058989750718077503573278171169314305842789915785840554718532262313095043149185435840385888071463634612036525710368496158671071736242379189913016304136191369217957270321402399426176506281373860615132025013040042041550436358123811061691566936978848404001618393256065149500800086063733691474277720605202983514789900675063428798150466575332556498517633280460120579834218029217062816129942002505945236746679727404885708212044630251410551025641698385628649966853503180865775587673893032956649944622706912491244706118799539430530402124667379824964761743198779171804993435672753807031401659535879248372071833279374318587605400364318410163429001690169517959742096657929257576080149783404994548498121438836725072236815799323571877704823871949174019659370076766367191986898746706296577162574516907062325428810903209550280428283513739291826006590742692947679972394339133281008497683352863568810885645843576961622352891119530655973835257802840152967231514910975839976042041307702954780455157215775736973050944791772847176667507974597982876858404185733255865887259539431253119362267370822335243550276268607754704425127706887101572944920052910722925605853589199046110793269678357320004581777432804807811008886757487978008471669414223525236513267177004414679942486969743651977303636070458151865656788240619652583880768466727590816058146182576341554052352505813373168714764265898524939669408751855847490711835959969207755919097249314048071417449430624624573528443923270139610109859019570880854019903361415610574461823593058968056642895357263031512996073243995292015675315546588147340869924140876806177586294518370674593483092602835365024467196695144513522445704338361008324812187604519138515659300842897750083053511733771129136168169365674792449370469584155823727796534818301581051585341713533001320415775227521384778075875148864328931248677584037286937460837519203496404432978491700321816496101341289360918897146191034868227541793101346677140464714163774300862768012917026745770264845497744218741848912712658874676501284912262704247390746860461029775185807252682784088142385272653801888590677329481576820785306898362145655183333204359528509685201689853864545191809946352865829550912341380034661475102059436732943877317738228349442057253315208647253988728132404567950789372736944908447339095914697364124649954632819462923604464592086161274941850555818560793413324597098531106113888096578908283942076025640765467388758744974254010945791777091480592334327469979561557240917091390571469736844979605052908594683660053369641639029179218871221049924630320652713457121524319067216810125504096802415207192670976340223072620517259049556814368003202402880015473212919685715268699732106622157157518018116510174290277818840359244412849402274386361691766005196446744489040123950179805543842806783604412225666927422242123572906029636069395674983381443165593217875838899424871082116189017005900958397796059332373566594850720837373666377778500869657633479927439283642842414022709563133288622995251945731943263442100173777392390670682150091102455145491278785096835544911617392158281037085790378166501518466052856048303359171404307321438672110714586571620921575276262353450525339344557776357955396336130795142182224619431564602472149780723754192588098994808537009673894462022805694843382496535889162347128833407451840447944108664838065816436972817752692467006077076364623497497052916694048185352745844023068468832811473329888899315335398455811904548004228607526415751265478578815334436730175194016695346464833932277212762959630964108286622764472442296403352636769722539920855652875073864178396034855107899331780013627092389964717457673602706263810377104653684168689859355544312256105974621227858315153875590635479435997872353195059823599227274581969804143202656348446924683566860277935706608896439764461431353353530809095008491834121571540792095305069089080333482586549828700571140407683077038319053395984532598254966014675383920644026770813469245140651086747053685381736503781233075615235360829041792566655899969513280013171276979300397565318148056215385599438139312555246524917002135905919258366783794216869727732424895459628893401303586046656780302359653913939112856288442088576168137134797913040774416234288120185546075280733517105701122019851862416228686025547578244209599230226057269493264080199608527884260340130166655590013478976602246697357138883004851631306893023391373553528092608481827947015788550823670599577358776445575969658511520624647187593072043260074456591784562751515745365345621380385852998412108136657556850747599180845116583486382963918682855159183294159411507190332290077085121970583621537065235566699431675113822287950115867179006813517848418568499880550812369683070780965286230766530814309025357605588328832959240703067015357035375334156266379067981245450093783099335927678490825735011187657153023617957601313968637506003242179488064429900657325386560178185044789195852362045949906681429396307900122473074489599813810618363962816242353650138440816897409043180160872096154910089157385944524383897850412700585538038685076971051067910185904935735140084961004968367420766283548333310311678572482003400012236052774853606798894731138923772228210966320899403033419123120645824488522291337370448343505004116814763821564006331129853530355295767372362514982300364776526547884150090922308786084458546847784045580369511701593997130595966796613930099344338184528985561876985613218443526186565881695511404564175636133851162140017548185027642745810801355611777021882863933991002409539716699480036541334555162172220427058962552457155236900032433566025007297879916508550116633851519801426527730814175269589764261863128394862882379871522074567831578792993609771355004278931363303861816452391991435553739513636131719923224869667780803393115611245711196464346685912043368998724131104009219276510283862612292502233842700844941852436710957619488007257518612215860405062689111015388804204529511050295248118330263851103711604018463208161279015834425674468986271099455414367337969953337480492592988124596863790883353656886593454019465972646839218614682821064281691781847436650677919530342226906891267053659069967824024818895362078163276484436758553021935591001874363003797517278324956686277653566744429450138883687669347411091450382810103302247215095379380911010333984953667911453878320989648430073132857606177558056483139769687755875426983058534634995539469225333573232183493009457562743225386600974899052823569718034493759179792290777929275032821737147486934922825957077706428579816438739449447445962597142068574212542139010596633470447109822104260751644608750898794860444936926504947430459909967176324964096967445603636239439914827282933754782504209232744653621398046507931324180141642133423049260391761647045551722860685834389989332476503981797909247514639249135268237058171547394869376690835203144293870435242470921037551252169566153441682860442085509936197785236440786080068895505262441601256835151447080931096476641104751321154849266190152435007363135981065722306872346884667221792424803132801999144455108338038299937709528977520665887208217793692040397875057564715287219738211444821605019605721941413992013154655177479532399582654085073203001285032353363392235733910401936192162552208317299641131439016694536312125067107221226200505461992181731822812805894925814219724280535935607147187247194927060627292590577588961414021042625588938298504799886724782796397216440344129122208768229860086196340101729574012320769672237703438275738317208561367708079219527791229955218197021816019050574338795817760813930364443865130466171541871229107087446778304217729246833282708188846195339299110762818262551500777713453200339372147344123088430087421327671821237090477252962333081989747251654359073996252056209726031085175876077166139349703655014985642619599692843354313118643144455226495983393344110820549025403656093818287763517723116126928072401017429566892499289206144328032022546981232492950307856685718752819338589656996225199738124963006539714619276738310244956845110080065156320174493047393305866818089965058224683151916958763948947594248301267986178691224701893028829074881791605191133596649640430702890944975817499853792674228637376801094071632125339187912397043349425532068196280465949399272192142744125980903594903286599372250169818423827955618795976549396415897353949035403834945835058651163145006766937503132799270186771234502529932451288138992079534029388257003670189580312623914777889225712679798697753162268610745787873988948989992411326946123583963012434067705266048048240495054818443335323135157195878532965038945404260786656390106804172363843713970012733446057939749256043030769741585650617489193884249366252759414617804910819294384991803877503969904634735714503827502051054573249883497229474397670005303308098323440226582471243105698040742511741729036232500208118869012788801958148589104643450283015087719979262280955364092933584109199430134333757592861569413525067614266940711558964748467243795617801995089384607977191045805818727915323283031475416239428476935415598771019838117517463555920818685290383114558543549276216815524347031556625214982659971988029737773967678533376409063555362610809952515067575788177137413415826598704020431674884206289002319660638729027535423617146066507354894258504347243476527619191773996651802129451553559044318794957759824258474007446301819714132153474231014531806753454130885807326732636759951157231399207190044412764250078056425357638951576681607124156954838003320500661010651675447184956194163529255822675897089075519893460375489000055726747622979107475404963084526909894915010583568848307517874477766331778247525234157113986036050344113792688696281718019693500501347849741178474350388929297748412378877647511307199640814862588005490293952233958092266558261382963087314053776940284850784648908342028356809579925298039171256257920894340077856420865555103293124363482092272045636345351444734139739171094545677928916031862822174494127435418846155667535702671153664782042508618326333963971598720026591330236897784835570098822589451583340565992413765879227458715354519082766450581825761534993207610100042460850028592566218903453801407572534876211973645973630879572862602348671647960910879583805186264639397400679865498867166096793861629728997403904196190231118125094739572510946058037242308268826181566442652715484974307189733165508361020580592077513832120715065762979821947313563026255166340223968233400749788323182548010205044811727369111497279194225597178775917978584209647814737935909653156827919489864021038521289083890255876215377018202090169890451774798265075953506797270031958947753157447731261319023689694118071568185313199834492327485343898349366734408848088989327910103784229146717836940868152355524429400426004235583981600065159268441153377493402883063682750062063195941345173785956764201078681466701609202357785112638479228173717760498598974443387196255630069105824239387491075034369931371952813824338791316641298418478323869150654855348934235550391655264798364676794298318877333630634154325661087219547351790564722252104700177961813207928274422904166865576252571701661188695765897394591850702217391957755178604565786896850189710960449996080804562132857625875724077267046556597780783348544893271401865623662237416414788301497543334487822254823076423692270621568279434184418680476109232736205055940579739456413305232733057324947784243090999951999603603269658742052367529237113052056463716120702371775485370287518363621087419550776296133249850832250861586658094403290064400661465070208402311168346220067994289706113630551316741989845345504986017948583941104817650857201980743499067772632090381863380066878923784324771417522390838038273252550280340891729679038660913980759729667931413791429847491854268913342995045452078526874660494859562002880663638728171901328519401887652344310313194231010208845973326200864370055030776083802594642775222397957340821801746267115475830180923956848720379394843925923790943355721194424227570464288400034167095792421699625397581854250726808313680794394134392372080442542665232871171852356110157193838438184249800857755910928699885676947245407268969177933095019632856293584461475424963798655713476968395243892181033099497385536792907213862167090674895234871814768784260630752841140086655734537753947444330581557790630687751665304185441488998960940880092340594360109360388960771311084413435280466011911166096115910457138622042532224533404708480030258260318000310865549132759468304316210250256650770055861302462602036848695872974302793495808597989497093982888315665602247285372837973646568426727315211671016459377111645649964970888025777488408876802437630896343195030445304853088641701067068592098827140645591587957137148531016602571647145211665258712475345646067010069964359000269953515287698143093738728273948232686919014438929483414052000478432733260331090841369166949162327059984032600275117707447592042125548074768325437904774203750751513958568327172690718883855696425980637686376334389360190086872998469127563530190727280507167570206883355194165798828816616396321841270507818275379479590699903696383522525430272869182317413260261250112125697010590980032143812728585090384818448772087319619862399411397489804946815689426025321870367243250367004346482475745155061545343771007510272200550170451544994341999032593413989830694316125982344970676821666682537898918649142879924181507545880098074043693655046352666767623057986762307033789946495682538463511479265928822296128850393290186092671411063993595247439730231464830508653557125890267509304563194974454156573422982158008549560526893303891977157434744059046201202470702447824021418792887197175640467040473998969782877164316535951915183034651580324042722681877975288310638684777616632156020681623688525694952614098948305708656429537250658607454126498065706462582286676735506398999353008769505123563100567989654670998027265111229721185107059299666682632913550585985535721545542783330122158063139066730283513048276713763746007266358997756059957425658316515057880690800296738022802751264585036782062389737423690384146916512591089810417020398616497895969592643406886709189870907602696994918572299919616009665545300693440178857778867852076109609041985346920691931096527582451950306370310635038720833101457789991375934425180920083431989531838480933398321969500090266744477935503041211325221901379337900283959646586121152964712396539396937608501579845415830131900157431873835002950061621827325327738260170574796477145052459677685618425608085102287197553926489210677888862668756294306637337970749734846615243128637922631617076719577609260221713737646343652425656161447577416849691575730181358216624012694466018257852144854571558850732160960266915316862213748745889426682805976426932667903610014801106223186782424627196694099805118182479580402304650317973911704062973789796064378441210195078254830263583551929346164774978099079356505658762953702747307946648459542926705409862260676235234382104395311328004686178278623567869982830451591153674509870391150274281678351269807804977808089608717832308517585342517661523916486484112240403675932530090774650962076333203997211893629866591781670275942357019761894203949048750222575640526384261531674372262104823878549401366216294871466514847331475057750160149414363037354415183449702741812055598057694649889871385879855140998921403038839321076005379416492685719527131147814777074110687773332072210548903109559336347824473374881474626022656241083894520947493334129109936194555128183864716118737245474075241541017110434777758044633740943915062175764112531165220601909738829703488033666956166509881643945021641208796511804497169720388758715810443276193297485306339897655816901982134834046811839979432390182428510663275035611186254133376679751159603318102738417358815614623661101563857850135667813367970085360842653022402408130726516124320919270176253574833811437084366995666966868923529130193101334539037839603258842873612685450529522280394299868902983850918714926189462526177138975376456883922243753888990701104251939981475533490047540192934573326182489561633786733943467803138843193087470591958914310522219592226027724054973663288842931430053199838757129620274167168923083211204700458185750629680918683814751780216555880411272917410580319361626074630000010681895474966400164319796858994827006929014047064063841388504774691955423482082773307774078653817574572341574575690250924188624917177309713066809855996112607021353208157566570508973232889034078179214728268449026242454595322400102786777601658878833039645243941305521639240980664215192446224967422040130104131063560683827781744435896843282622692208001425895014874886832907455386859323463141051250179900081998670910466516824573106042276100228538449779089806781987703456992145458694890337965530192083223792063093976353233229350689285475218747712676435415777068323045836267215227131677279612294979437752283781173006560929525021030817189021116035264433884478037201883553451060832041708814035631300865149208817317948716585971069303018232960787101370911664757923661023471837547679533849667090051987509798723829359954964707970600724770351009578582348643490058319997473329980874396370987633441308431762305631058121807296573996934485319676537801934414036849222579753517819800965529076655724146494461063450536216333235733920003881412612395124009963329006572725352482157749840214949303959105510096793322762246022921768766151485617390946670935097999619789696158034701959935304159663859365234744365096201507060511592295783860737615897741802021595915111503253228278542026570414649064830827050782829192538944719776261433641787885123378785132075085173332138004959233580543888601673259083528536060418135588971816966014781586867934790194362737815202126517301171657850177469728167298345370340097252320632985223545968641382527308048780952420198089117498790778522462018473355864090835018196700635122387261338670959395323340636883867854009892600473153271623403505865494148844728181298808143005529518289740745506536393824925565672876827146246537088539294669168065975808307628785891684034512322879428609512532498301770338462714920652651901441888413908732433842936345585339016280933934350419465989686436657559486556850474277860217595334259536333021390014645913709079423126151829248582273901896099329874356086059558976216968546930458736448761896690998448422670712042184313195971880803487421910448079849638730513072843856345370440636770059116555274644507240309845295425107531415003782544507079276463440386921320679606145880660590615683542271057533827015498480864874517898710167822798869816325570291223103752891306566230999230327120430015268863939521635879299600682103224291155453952967836912608222127355462589908135070363853966086490643154482519033917240066703926480738188178022132710286100087239632427010412051947168139081886982354690253204898994033173303287017921424796970428400485695889930340459421489232095421424823491542187131272857805042835950862726558663622524166245025222385953578844392092533524482591937835657940201492136673567642751783284557924005736739911541699556548140731919397256027131731683353934373047925537772314260872833199413670338059293873822832899897336971085421191297713165147871537438153403430130589512375545546123989726043743049307181526547672912055206434263127598587060847944375282055719179920081035195176616000031159003132545050411758217001775476647613654162972622871939240755130931044160839864839723367641322322769151985953519241857705846968001443035598710500626284574106000059147624896205414623838739561790471750879939968987024608669633316612458043075764913271412017649748916469207976701020141916870115096748124058316327248438178632523657570477376013801789102486404828555441358866556920943584049583695863451634241382703664724107060473583952969875602331950613590161780481434439217385229876767480513281011113794916994011604578548791524724245471965454478066168739107429311051670172116656551878240956856661176154858402405679212869413792218607768647793545744839013346213371886716864363270250680753824561522207341175771040761903542824754471037090846282311220408872198404973239368182955798393868013315769525730316048172255687630748212859165141913845728728154089779343988475687347259496459245487865515903231662984970536338687469586756674596393725739726812195257048284603247818655114446241157575220403787842538297227631036612603724000929931640782207225794732823726947842986331676129202157491997551903836346869464257706777878742688382483604213435499831833268472986175887967949387531526945322981843080217600161683103070918611914390984466523892010187664157325213295179331248225779911416159906973263957476874289657485159736971834484533170405831850078331408173407206713350311574650103040533181379845667570874362317412978204225478571434934434388805078989624432525188281880230529241333607333132172579932616756754154087744652407080429775170107801173361073782211648093339117313522821716797200934436312113479114052368472717988324757959391921989313372317684851061231832368172588354367343534791022441484727973301767797633232650356791655918865978133359759742064901678628260772871089945933377330472307367893892637160907583662460574624445160863314169953843506113712862171867098355445555241573806444140719359987771001112919983145354451347051367647941064514587934898983449047185718872296168144581513691957578337706345647379728590890304828470837406460041041141872745662141346529681203484495522580499558840327482400291583276249928358862600322967265247884346366228829110778964161124216301585001427460893640953078593021376733150768182963712914591936036852610582813957539290062368895316986837973891486291221189041689709471779263465345615632553077383040461196371080640099664948002474565326856575805345246152887841995776473192752186379858507111668722918000111087658090389206108007267364941490397188270402630870929951264408473606047712874963854957618939464052897246904001963162448273064448013981480019293668651172580023611245837343674208850412136826750620545963752609600873998253885546381742207555470291633565544763631780215967493247610166249163690307413342563059000547543774524258568737358028788898399248267961900992167769499572096374609280390148457931269325860083047661121102552292473613692367559802127700391734351296394784560480400547902565144410360360492909157211884442186301962311020751841862933660244153549906572296282142353363811102539367188191344672253378293563648781037839558888877649153855052123851864259138525135084442868946272458961824207943422216357321164818356343742042109055233577452941457873656145942635422546853865439958989713441723453805778800441444992244728381304630946205495597570947524529842506617575015926463543993561083530934364830256122992719551249665864496156636832720714205668020359766964788942394680703488611484967798288162982968458233761087750875321632758680620004430533708020477548748043436007173147384126129467008894928626097815999800072329835008765597511379012045555606696265951215483033848785557547509218469098518461301128991880095899542943563489240065575960637830464539682585368059876746773492269837460201365015456262690980015914552744531520763165210313648857923187157621508863035882848818828823839271116939104991295801665754149686121584123237100706582184868116174797918330974114507450627792548678825521027518761884692923611445378943338063538651065548673770529136666885501623770099015295380482689641887063878278545965886245046901784510830882092169373359090561409565887768597377145869098391858575078968749404986160359113903481344636235391248097981648280777075129707753699988503812230313380614085376277631697365811002290438807151708498131689277945377408338105021511900561217492807414234327586447020995022007028452590758260752341426808093944550280583880540927388081546230124172420077812782797257715697407036845086811757172850209012887827386060979809694568990866037874842626763992238242604197753574957320160139501074788084051024985148685084258315823751736831449165599376827004072527448426374945506394525362156236904849451227133762286872893946632274286358574812534896082365916030680944056978470910110551690732238845885110716000590843272371294702732216457685251123982466472446278232290160271730891768209208462442700409534357301041581382303517900186848485729784978966244641681044518548987006471683020093925718101252256316961299730127881594538430143370508478782224847031387666314019601623493704448683523902627066506820267890825844033031418894491735167238593550036209777334644199991955318580780312002798160047419751504465923449273566136201309834852502534847954085997144540769207148972804460978952333804354160882403038726364533288640276604936739493526318792319509087674338788977019161664452330536467774539193485216420651234664756047272891874545690359013062581276349360903694967300466588170920473929141102467250464159554210282435112227510894522495918954463348270282802783018094706797934444221244708996779254086269266242087586538206824928068733501049572309988918542753655496784825701424085139532425004936790122379567254231428863789676942218238062400604650927615472516921764732546918573911859727234379622808992820964552144995357001265798817435648246487604406717352853633770816066509993519006020320569971652138307181613360668298758243435968003069509162985041232049175187359461098280330972227152003122414483583557789536793389015136349369953982898705005226010857937963702885282865455601487906102588712351595160153379497645294172141415222492702247349537738568899549211965902772724669895230293429840334146136770272672826763586736727940495224675254923769795736301460138840295963145446264885743799121740020195873288702304701503886087913752720393465639283850444665604838326397057662490418147672366286713682755653199228605616523871449468946707294025578677896613704594944897830321882340214469297893595709175723676881747995811903429706855225857226284942229156454607594268753419805482060731594024693410373491109981482756951563845201210442992896674114290668322871659422803412502941475542624678479326492128709644272963630520182242945070945038465994930990260946729135142437255185879804609740281693933959258774248846887308312303317535374654633484377976450385782980694249825553946158115835065129099485857348932106109247659391237785182409536549068191579037727036655430688491105889058677563592440597631909704386780871175774340602561273689666930078218997410308867972461934737103524800703667749331590746446365659838625038129927465776585266684013075052123445491576728119951111962269137095261517291513802198928746544271692372826129340953660293101860066814603618393349639672346114003213059698031002521322581254348041497673285409896839698926528291976481731277688369195206098553057681386955726024839283299665900842871907255969633086926926625054546577776085607033246636682541900314367025281369074704893748248048952559540075643190893226766456576524460607354824589058926309918034171441223301733886027789666723520098050630682129500180834020229485837742013811573352874841823633894248241527382012305522294423513708389668202629177759748567231603712325091598628178572214349370932013707889334351351597716454850905733564404584379350614360707058001633053307541544552562726277350433004356600667780862273211786652056759818365546712377468513665654753114798401229136408057325858854789101806484881624715488115572723178899092379564828122747128370838731228582423403234960846754996024738713623525576112827319711140986506628021323936193163175579759626816644390326542422380945907327632051147884910069160549334004209003934056786466783867785055151851567241235717822377825030366709356951803792450524610347342701909816300060843926720754702045608785138416812411793750840753412889191273128589597221003401273915971461008062593416609112063211456348027409371189602917394736572509230670550933523770576593931085738151723871735518050605098423236737356047986381015650144690826707872101705790364791493828366077013908216181801282413275050516812612080451302543988706590362576863363952623805406231024867876288221314937469168341795899702337525663876837837016007441753218269903591247207679859584447963220736028124673636171666679616585823113290514880031753232363234259023593999329837461099115782287713216446423062113408196366516554258891515117272855959304857194497049185761937708722275907656216496782689751802897684869566275051784382797555866086113068010612524445125163882358092364242911742574139065952920540653949109872352229783269430358809827531703282523576082093852843582082010370544706885436399899749280469399266461593932066434052283791905718438074633613136587181439235141715323249001281387124244759361822122042520686913105131051293198951715979431661061662610855812639960908086493342667550626825054822726190822498790262349823025801322333469805655377391268058620847201309764531372227705750368371997844440790359967189923679169737356718102752332655846058929784884216422546967206259826572630779603699384734323842419056298352884495663284547199688894774317657855690237279034863485950655092648668448310340756327493371041824218802214345398492079538267252935365532805553108101266971922459102807618746106946397408426254491444847071327398944387159261429056463325755997031604518824586092140589388187444740374853258337153560428838337002140345903173879693883081282207817970573761534870263505481226502785597290373534941205813776539856454302136135901042742802208456254643533756726491670601084762782126870907008807961101280303444523514092850960883567284129566016342856304919585711039080947390665630109230273245149409808640681620978810389550835030612326405104253978368433317192763152073817486448323679059326088009971448662737139261660645462494227869910354203319446272921684404722506195968632590265596564380749314219874024696338114593463408911214709177878271828008972339228649277010032970868408603603377072741385595375843895355467650381487691876542407621209381749871375650408543472721887530691477281609383102395682993044613195017963336839600716002291634016341474819009118638613434246834220595200755103958096103927911318536136942534061684282038386639608217911266975689193903413676320085745072270222607804732779983587074693663541920036078051313719746395273296843276830251692858361421398720214895230603239486890920774609685611379169004307520809270802272124188895673282998400779709692827974886421550266691556972447308056815250260154803627100685317532223533687093028023297570577316648342039883835810380538702553406910103170515334477223454750310350864263267616890925408944128385221325033438167462355950343741199749939507427392659135701264145022133754877542933856366171444784191733883815096655850021149271515783121477488172453601044807777854449516251542616370339398965151231698738217997351057592761960924495789500523750067156231661289455301334404067466509612732676379222118638245081313900596891406951241438861653795287217052700409584728316062195628485476106175828567617931282040062050409367908196603137388254512848838636602076743410353635557035974916319493454729187647796996504602210439551136674115884196662620253876354669420031886313446856464624098762960342480196202305848350106245440207235902560955209391995678853141923733424858938196503002871901184659077363642716316198857001544509073862218427133274998425525659232580796666636912101877092412304322372974378187424540929758727198427688771005945438504381477697308564980865160596711741381275561510542866319876186289041191078772645807460451369923464589164834109465881104543841172488150809531936843606234641219005512236652221104989250322474849613594951354767402360556888742907594387946459533729952106452676683179389280483630673183233160170064821215460471950051351958799552352748039911650574201807691278145920056155853917884971278716855405171307497133583512641878691222548261284251236158124854221912599831387648659603668080866893491353406564450738303414220957034938316688584485759753058824717460404672507400984524007352505251410396457658379400802354159304134575764870165704933569567128752456744553157938431582254341414674998827437769366536573432460962297978269438970349611813959800030949216186912221722711649702077817451754840072077302781640101768943980082944688190285978293953096642271777217894156502899895392598061212583771262736898732877903872151914408864496590148250364825778917772257778130653118492322246259824334962740847663772402657077805038156903784451009689017642521949787752318954529814394189631409429428225178496549109504091396260199618422370838919518771674602311863539149208216974528069736447238737963925029343695024405989383962314794825286097270894663156183738023574583881022286414914436840114767952837313893424701699864891484703421844016005346031582582912275800682265082431199287126810287153034633739718435900725000280181004876619918859291917892634626950453836982917320038470190785475263366900305801175259338575770939809562060357882384827274484640500051332856673330341862522352768638473582108072430413419185372486825434212654642865535111481453653757216034707598926640669474342010240996179328957564787320847228276981825911171541720708649388501890409509451486913531844133600087517745324366618737878139263961310485825489771092785302988087586844211966325319093502443970524152149342177665659704355040875659880142196589947347376154561777838490110962953525594516187724747936117811718161038837586497496969594071712102569469083172733371486648587935074722270711279731975620540833186475500128966106669119125085430667949482706391950726524402210198723755927317409942404173571251246748642776714646457409011455797432805804750162327893877157491975152824873496260978506326716521625929923666434568626305036641111563015179422430515954675939401178034068557495838207694789701050374307555085716092643764680588287197345153667959644643387700835803614343114016604082848322577818946232716171962164226563338749780657230145474005978936906083440944149051486438804404276419317337049254002811540294722415941605456732971861516559413902116325761599013327066247234188887843795075082777166143415691283222960215556450085080375768346055587768048801813728504002595110397143890245841458101458933022209930461248335329299926197315586963530731446444121469217720538215382189373084531758194278177469214733753924317844119067081289962569489604426976178006969780219939961533144005807485097400007483011966756663900390475166382789386602381022566346842802914151015400438652880550848263546255893545627890024953991648689208176455345059716341915946792631552207019383014559964340596557831561268580889572198537473254130538979539458087035164407792792813419628006809384891148579502982632360632486357603467813794582675109831857267128386424825938122523334902894152017422472511142532527921545900795026352005796302682514610940885761214233750475018774678949235884628923830855391278059702548827867137772613416695514563063758105519034846819837336674706529444489876617406814311348259946236079607674469664403596068581657112833935110440271485732226957669429968706176175414678216019629978351490800132591745632654889542393669786498769981898763023064606763442537977794265395593739160195483141033558110366438516818651087767999860301182116050308483692958091219062394221861076743666236507349266871495019093328716289235517545479815327226730361022549277853539832250625028831818974560827745259179350476613111058315877445082119987472568451407591597484757699869727095191204857490947611680431354649861368085642631333141846582873160078081327052412243025483813706484136280918955255816891437908253060266178914939464634006382165694493037903486358345618012154010958927440439135785807194788244237215643138689603911776180656890677570711696015973871243701658053048294422448844701139094527132702758974899952207745462648145948754153071881710178717704803883864579916205723673913289570451665168636803848961247409748624214377286330884029510972064705134761252876120097562418054508982897897948985150430758992887643871126409469411495036100025827275938083733587051130021271714271859584807087740260459501270618637331099799933601243846161345734051597499682485785054956773681431937828479595674459226449567650102238438819564971814518771980170426558757821481907783056410408400081052471804068007852014131940115181883021025221580411194610096920985654685801594325491842158269108563330782436556237755403698007201898986715675996538990299545821348493197386712130370125804451831206695079602927703525660123100008147371477155262488587654016613758780308341951806552626206014094537062130729762324541444443083676004035776469461908236206233191172042806567864148629578288565983102109046853256897190523401506965762200690098991985197042034737858294162281202283388514279134328017012651606443718939919301862676633259742302681727868226329683279642882109857689587516745082678363597190198676447434401871080059265547421156618798373699129769340793407994690369006199081248548099733859505467567150150853354722094654988847822716795420194440974524101266016679192792898382581969304349436699995413077161840318970709868543242516885483487116045313251967022524306213829979318215966538903582405563360273153100464046998560168430019888115208811347229159937459454677339880268721038665870565184206316730237936472865701256017112473697372246881191927065463873471206357128542351893964788334472314464936488657602409341591089857862670355350730614763875100808728546284475741434212914969548552446959163820864418701026407901934392722609753534374859135712040035609307680050057473439492673894909098920020389192119734425677276317701268720835491121340261201503875420818556143430017236989933652718662007770934783721474164341384707512091195199629640973758577675409810743037786693971358372225082976092257319293700560702743631264344543442423766302633017511396840051839045800055444054521179792992955100376264118952594455596543695062426198477280966479845446156328852937165954739701331378963511143439941084832114585443628721098027980218288794157095671254388071501787862728944801975733384981558884634833157327347921321376143299995877718953163935328242032465789090107976458408088142715485308231650111759963826997610667088303288674404840980020520903225475912677772580697985804002621916050817772291768760597279414884992973867339903276722312874966630887451288719739655780125679373692557221587821798006692305566137266636924228772184008169105954288690987112150251331093414440639995598964374308633467775845602552784317431464798344116957649547240946716210687707583220390519550480220787375824188270076926077575751413500388984945826415618698073436641128182226127220735920061821401095979190676232235464545985318751162661806077566292635570004379743094999826121258765068866093280354442607428016842573729846048643949504466711749886582136184723878643888037124732439652800679468702122068267245605273156839752467069353155888545139975128413764573057124891423807889841177691684483658897947644071464633584716708983951370172456239384784691003442105026167540887566692921039966163641872631682464961100992865122248922126164521815636190889110665522238267060257714405858351985634438715003021100242910173079268057057041549394647300836297415537208039498694523272837939166654616417191382053221450908421722122325671279223095684511197615139958887192199055758185524894323058667574342064342745104873403482339858446955293629430174464580140891814302424448851191928306977452177452911152500012636644613702755048167296670216695439943447376463352664247473000313897390029655402371534938193349040226126035430312716485248347172383368868112634888671549423317767603405001952440142529855282545072414107717892652416712866676669311576483538703711652425546515558694149745214694641222603845084441869146414877600813764042672286490192739333302198675724235690531282299011641158934199400894858526827518952640975137650869225594609689040980817815786113692470141652201866799114596545866106095092522817020457610387417893098615093809493183243240698862244062400992405411524082487410216019669615267419956216180651766073158791131575222239821725443262217842667316621120760658165517080836375900352388084538161288048935668203575061379881963689263926800277784432396409588121144036558962049285717698289678078344592364155694087071902073195686959015067681090730452945837061148018231180617356490776923016157470529160215549517441084198983558845855487294097272521629011484707800576708612676452988638428646283033442367116485396356725301372817349550577848513328607918401122482310081133933583394453861486516066422498191608023195786219831947092741880366549679966179958125775134922717987771595968635864242740884522948728139563656794385151492276074887358962430964706194925599935612539812271262404435772066733664384919918820237059690041567169512252677065521166097734106168626223287181776805489648786346006301078333363908418261002431698315027610253709963574909950807079374711174356946624408718740240011339976787052805908647403959152569824296811851079559856162577861898380799751836452065265023157997509474891287652357256874633400302971834681532699163223343169060854927914524994094541508712543042969149502289541027746932315521847240818549143315528706869663664146856750762556604919407580839305375253239348664918138820203124955019749085752063970229454164023605896658274615519766293319818048479292413527854988052708930428660954566677278403422303335906439594690587111193379628367141868157412476567108542649666436842259661018270098807088584005542156460130068077847091562694132851281158336536292917450448464375219917724018367147160884538490157386707958508290647278126305993670565399860739577775192093663005770426933837832932870640771996542871379030434705522607636941656430685789892171307024353684530899545760154080887887418629933174746009751146607725706747377304921121326028763706522147620506270916877649237910967869340369782591936483574378710738447366375249237830888624795646135833352151836728671113365564770253927009618692223779114804570264086225127013206265131898436462540081511927218571466396174972296899827948094459089323988452345897390154933887995133973694550227133945419097958008767982547188550528719650472011055130456094306615140155469590576637700006488381591543525956895485330210828744670780777358569083614868029429702354596965519287956083294140827085308275820940701683009663960991577111773882650815730851633090581148433597446076207766817317868080796363459298514578460479270221334402855615774291695008559798949624160240931062715656365477475862799966544774335629445820296667447329759257668718038792083013617209103257774509249098954571155982420828581099656368262008638683711793069063051219108085571097423707216540188345538699530322541183029743251632965604819487729550230469956726471903905035727845070889452852381785186140075847960002074377563846992735857106937232161183146282081523576979689296950781755224784916572926894745952318750624882958955401808876286852731123338656474318673159986558741311137472822775653452486084112272160276677770103844383570345990852209969560249414006261763034188098559893888588211301934323202790801073116252768724005298593789612522709108275312304444037003284869715339772255811809763474879807828815963282043748009992562012551120237904754814636563697518667453610064165224525021510432168275836181409528911596807385290550040507227714050967507427815719597458145710869696767899335309983813561990782113921404714996867898993141909422728260087229856501705773131529443601995446506941004350972585623484196922886867886420507880173450372176718666069739672236879629475917117873766965329154106275273197377509366067394154837654663158508084506189833576448462137583564009843130999512120247765141328157916465295800638998601861726643071362942201631781920494172868904994569422361435631989031080710555662168387529198548587131533451501910909055403314195605659910229448134609775178715219061084559163843420522133315194015459580239437767591006073784201472205947062789886846410315049373782853292629842087964242055990622305117451851869959468257741895475127673332885122240408462717166464505660559682439203478266017349100401486129379233689797127843226590166439198824986561403827931036471276860876242554885964872052450992061410922298688677766468110919337903947459067826459473650597830170556385976586035155739963295108142692692787189142787882875564181403397663954692467841308041381104540403202143876561197548688799245225977529860516174144738512581371167857566942561059171379774355021599883252283190375695188519468391089922619308343234467239067228756072824686004068181957020004361374896738636823487161611519778952791678986756747059388553715479401371404900996761708028966537045662047841956699074450965363014987986228967896720874548569978942216253729942724553991778359787248492206665365715852858672852376443493066628849480467114598620501082232300656577250728033297494832876754094120370175347391326164963538103770624092602595956233555395855052607378530731761847047029661115198660437849841968628948137829147109704327935169123853387726384277342499741840150774722894862032925129341204240857773783514393409541168512101941512783789165666293056918014277594958697441865116122361561691271907644629696053918147762481359862768607960208872419075868185329923684111320522328098503241826734822692124287795283482049716803000492711583675028561361213211263100360503258571177121906398687276263746181280762215380940779415794611496609784756984824705822025683028079012446272114537135020397942359622974527101224566603804770535135817506633124629384006865087130450617725444772665406971771165494399366368626592677491536624510727898120496018471915173084931379643088426527247301467332623693060424070263224245536882780934183431335072164029065679564901796378199743648806526935836316052597379124130504052025137346786089820796264116520529579634351250966908947874428919634309748890317889496044106930968286962711347613906711377103810204349194407063227551757403047161198566345173193046547229851548028840972420802302304299161715643945919045581603584661815582775590645081985882642609523863233158449311056268534291746829426162344976719789049404011055629329673577521125853279259194906171599122725586210314733822503385609963955524949805667020993293433622161502845469279285646241851048294863981681920121837603334882642679064832084174741101049056495950318427568171485072932214049354760536674007605386280598588892153012123635379690378007645326707915469100600100888922483955426953902506770338562395175201236980939067186158726109689455357217049010549517159703453644407233266520902974697955784622900197033794781468616382823588587666250821791816434985513820360099383481800743796779793961432276363573437725509038301947043528600588825769689253763327639516983254068396466627722910266682378328392094997139318950397714972325580622838293533434254944406839734788156133137408212392829050839620944804129964688879215226387234548363527668839128988474443125797759559115000464700322111414660486808248922259023190541672529967078907294458540068294365793175160224154085846289151199516322072751166035287131549878561333303595797101174484077429562573400598675298822434817979064925551748427601536024319849802196105570963050203125217942472593149591006039668075587796668712368066272810445262452794995296696380950540734871954657163392919156325514991845840902521237055477464462811616586391723043704387100816220239267863514827713805785584265553819886775093132337196966949532518079222079899666934374666986655164268816617227892615884802561126807054588847692048676725790534941174974582537725781649766681828498936461401481151561470875263004706945906384857324941547989906296480144751679431241336366813048791090562681614367986275231537747588062000526545170783998414496150843552239356893920596281257346565340300736314095097755722065004991202427121778503432884412999030940915510742645488731232335945564662989447297170169181089156543261442323316721013957834031027835095749639550138406565455803474132552120368139128542220456286119314943561309803925358508549904649795790172141175463096002270963729190686843934588851837521991820150365352571090794201616707582505387305857905533379817132579286279122929366937541028795560082679712982331860201398835597856403888440988555819431166283489820360216998271722414145426841413998165801100945237964879181148540447353492800637598058020098015778973903666297081536112829139764012926549899387791924879055121361343736410891157019567809549586276295762197611645100623116301039410978064250196258272557914770750994398626416929574337706102355622754437483187452730368131338962059384604837210731811329767760288522681806453162767744899314367674104838943601031019644712509938554919675570390513406823457901085333426973906950832489322176588367662368996471509614972290468573953004175550517681843418738482129890681046488206700351013129069737696648045413754078749275274603665781671501537191966426225773107658514100196850350489308516558348117309522514359714171973814353776756100802672721333206484108659629095913306392033502812183564130511947974641035016029176459561994125034618109864502936356377714561324342876789639762278370432916090811116624703048010750895744106418025476033165280103153097486245138069697529054799965833699339772948690986527940970743534376109286674239931696073875667705709346125326433155752718747401681251248700613190816435250213494194208120578654436999960584011726771681098180368828712470119450479002639056063187266198972326406259630995524471802323975116099580921580594247537441328459114777232597997395475877559033392492873022357278027618877964537345485433876625370408139664718133454697919710697642661786213801786866582374454608003590614237182156427318414337868835275864999260623640093219838213860538696915442743182378837481676519267257007178590990824228661171977543472353138992212265238754155123871787158528426903363987403955225166198584472598523597331874350626805148468051899481983666943823166356638002317225459278625576970728220885405146965802522596266324787623211199424866038972900376485731673361933876444773519267751074154200715349492689236219782113137115551735148846021366176193175546162299308519238215806042216833189385971664901322890747071885193628939304466040682207724168577479290428731004376947119699175043743868184886385906896977779865580067319032619427567430930660839136374242810579695400561959316822509629271856158381227103105999202582695078415995694894695828427738779516743906143844465261695084451167513666869710605775844580917501111203033687636506639280269826942599213583237413400920923211253808066153759634719745879573664854904655065104909158128429541853292774454187203266789791864715444889482411100937979030444339040061633841219724378721506080853819686086230634651909630707626233950283832428043410573270644627971888853098686684166480189951510786086480493409274136922253189181006067689561848550555756657013249393770473298752955786305425497598354796995400271431730816487174205928265466833815162531644728157410879247130151101656501632029842183852171159655090678622108312955958511595538684849501227500942789259060038199854188796395108236682584680920135723475150037824621034711560704491761607085127155996708377136235314139246536563313368183996366754930585294081681788859072461360211266946981977226933367308175773136959703405027496034154976521844886542143915506380469264486126254435497918335064287308568847072800907416002076628903165374588980224537131000381391800118068345848448098423989080131464644592192677739181048081876288998338437423633417676221449549708286748499300374580295271496082036935500135532675663464621575799200705400751015461369584503182091846744935122824468847338818309589602392382360797723469873372178577829264452249031630012547287148791890496326450512084407411326525159064225260924386707788288050057055234770143410905283896153263185030282777690516187937580977912776581125837280486206560034691243193519343573053726877760830427601816632376111648630519061917084327605834396181853465205536921803187220542887725070914841649862918929386248306697994380616377720939206489295462926603224335952090111034417734183378836939106021461286421717393101289542642740687779012689020641290835896478929578718400197533704660848683834159639229153959666663495718627137017191961959039417705876406868676136771601332449986169515686590337548181616267242975493404185200653981137707589587518851726733617348124458883326168303283098738242313185843743040089580750946631720480849067590288170134385217605353034473219820278632393716331422645689851431368377853966368333765656126120936375813410385114771040442325616013092462216844075508910525083719167846749629139123943413248594149586539102833737505644037484010502055611761414710099091025300510545451780392804009692027511541902998670516938753054181103534938867150429266348742701328994189691402277316139782118833223360342036517771799139663501159014576411784119061201425713095151294971307673522514872101668291963533692863886155853255239993093729757807561296351307175056933509140045503471848795240897098617915257695671694798377147846736579195559356611556789618038486062494746960688620323154940164799885180686936794576232460849495743500739770352274154636184370231149461648798427045260682476931866372739332630249668598574291339013110578231685613669564269457608611419851582141053769232238986568409461213081667652407721863945626209454860363128268338011044755015755895968103463323212180122368846706809959968836457720531449167781849031958285209622725463652925893720534908278517013027920078536319595782261891558651774384260108962104461711911708986484077980149867482198566330973128001927959999965552618023254094844324105937126605713612581834028177358897875078188007445774251383708029063481794466811019438425268794844935159077795709461657104777167057524563777293103908582914546229338159719355164943723138539499955511713078612023408514718786503427399238274540194746811724514730710806721912298669459789459516371700098682567976632733194459625625739778510499203250755699022261524913503585942766574149010126478782740725515141133237760677693047223883987601019989650747800709886308794880466641441319308584176496510929130040949435840186320541702736404164529454153616594592731747027231822310425350463354344191083914592874028060615705367092970300917317102265171123310430149705793404453725915881938561985872649852774300766613290346142070830559794634333840066628067571009439428123914891524088192784747006224384914832544470286585797874453842261562371908778332048023241653046526121982372364825496088352267630626237799596949009906985160552100428412604595040562926134033465665786239971189411257718479720861043272030897012708373092912953357676209466069264570422245189972408556725176138618451691398197322544330303647262572051803491122282387276042664104040067723426409005629810272541626449740682335584904386677376960155171068751637806595042238910071582851362208978279891635071865469235065770422579292551096408093963844294998009792826724013755946380661648819381351859888060965711566250557480272718658378829205833605498247194117438300385875019098763448867614868151092358081015087944356237228851504683500572928840088538271342915834605363236626240879755913646073112304165917519678131776782563908381239235586959816214145661721931794910364988291422174426016896921498681355646460519007239008499968143009389326986460083872955575852510742502407578232004465933697018332228657792157209334431749046256395357565048807994948345428604590430459824429144204788170240001435975593099664339110424062925050924746111806622926522860936125413288435244362969511477591779796641498129293553717829293503382915501629951322447230421228084190718776049637719512290052932772377740675311277221444969063771434557707854245083113213316189680813086209991327047882119302340047799297498156893839242560301169165092247375417792894533545325968976051087011156134378997798028848712886180229361803624699545727176998184172131856941891781514162096769073212324982447650107270768190084079141251595222822097797512691088279367757676039942577650457118894377308729170001117319722253340766209367319303400704116289448263614153356492019185050478436017110511698354941890425824560052391975274183410826310213124338716227524885608492028571274365993191346671279552259385923892770353997687657892604571882855109815377368916411923425955705910146713090977543543145030770067135904019275848434676944189659324639972513945808880124469351923640223988660917059337508779254999561537396136880516011085464995028065545226724568597736421759527716862470974673234768768113141002417147834788541820677037306470230188943145210361313021670280082284838619344853392935431982179276435586595638532904524879652041022246847694678983269072618250069592379599940353486654676123861570285017962977817420223237630342415901479421201846560115355294099655429395829791139847641307682685181512217538808610863137736613855198078017147325990958397454891897927384413853315979039165830358173616628905829092296930817480691951142333323860619141238804622067644619311487282171084162593237062105604340505430277618207889278564209357388668989011303377109679722678513754736502018190246420483989586498175989480413778786827055819508051355940372213140421422381316718596328751638997946423891795781266040199729019544966014824129863842334071163368891197190362493061390098634478191154196603269931721974209227383673127378207630095244029436859312130486638343709217151554604022798442536019805075765310405827256561989997012340936285461883560909124157362733100708651653450100286902906484584160718405796066825844105091355854191485449517105467371016821647290198772823751313081372206946386577005469357799789830822195886968132241333903142674607068434132456013816753680234228725417513179796258376901476372594187822643866047115665485721665041935386439764449513836464523932516195416405313777314769733593356003957629531299543876204620676080959750518040847472213639765061010465203443585587866609037179499644230277348272910942309373704571475132121227373029955492183731425307544540323974621554788028344095782460465948844459132829882911700631804953654890328991341012090084505552780626088592491098896808984308303082660950036914495612675598040887137789088448563806013899369498942319689499500719142112901431423057640522433176073063052379954098734229459429436532342489573040674539016500931107403319352912176361271179771941654479633992463847164301585185473488220032189698212835334896098786063559158434558406708134567923059880760939479046530678090806644845324874194334230257455517036449439852874576064605733216516468707225885140767003144238840715173380904052154396769041967502411980133844547968435176804296814064861378869378430488865993672851557263355234218001053490871361426062902743248041786395222984692803824479998189450587779789006558622278153311116519422228715725103884814162878948119067723620192751251770881738633485956910931424266824883158354033406166083925111185725880021155840333890614099483908100676953707671065163351674227926118508994819779936219920202763641196849578836942409638033738823831656795094019226359648041081803756222259963805209412863667186891897096669223461951574038491092914928216441123595424184313797211680725355543755602011274827926901050730119228003176385925543087778177350459304297495703987468804383995260024708854671269102774479564318146813452701869021050322118857082241689721960299964694063731658493078037513872926648716916659016659685140393767533611944762113006343606376916419466163416169689264461297753326209332377005943163641071085925347137053580782511859745258588014173083021700112662380912364005919696455823448290580548322806888460669629143010996439601002014089727617148296832071550252338797225215945192105307738591423598753155606083998282021912623485399720953744643295101740107344314730494060925799641002131264198025158657279059086131543598818721155243234057859950945633090721406412268221362434326047831149327554801349050675283177238145943438609622747731906306182090216025812870345872006280949776831879974935806187605615632700103407110583493070113061448868076592026172857633888874508480809779115252831929081758812205085711024654986115560683422200724123555318748750127009404045397044620662110553405334565935458751214589062605301400131109361787776739125710571611903327309880975702464205744715558717007848831446689435104237151070229311127458281225073663668058235125875886155473493532185206950007233149390556741308324206029387303599003917720133754367067075501796744316724287612674767088670518414201274147560611881175172856260925451754309679487900304024981985316558394854377383558133207397354514529243308538575345922200998609408999450160546363770264958291956587200154886177475084963318920068201940424458602617190910861117995196979918362422438873809572352206793438461163801107003085060170520561350885712342733809048275038468011552345617077603070137153509468955270505370121958158504616352094327571448105437720146114212477373534078796940545236790976208825595894592222749716834336096370783879103496514720853173644822612384553830698593342812077423299496024372320092095889718637865118086719994920584058568824044102354380341333240968151692616114065895575660241214773107385157121460609243102680861858928171751678930671357605014632785931294393732163743369269372052809808005671423400017062309835987048575585381866349916624363932225496645342292801598830323508602722134201807831518134927017571347842598505966800761118447420959513864673453199255863027117281467527485687823947117734574975793506412992350261974769609190786317968077214614508902414660323737342236464900515815899346315725856147300171384678871674810362739232935381440310012956679890853900971687629790027913966136320525993164634876878243915021886266335502601211668316910968055789209849102046312043448838970750752566081207445266413536944868773377765850438754722385107400104813849730578346998962979524426032101985191384322656876838372451634717307943283383080540741091852536991976892976865049524445785528501905762677961107731342825049732798367137041221570200098803651221151610354889103893568635943158666073391214037781245392851642108090298029495670053250999308606153630650773128884081296698072590825564778703061585947835104039501067538872806246841029852432035097745059764683866424282368816133311542868914373529248540504067298745191175225630273877899966012318450540990182772040332326737954999435670626668902752607149188638104620356284073103076461703440403199536157808497701756374198216778392832290564082510462492099929914521525696539310891767934909728932729867083258905736215936002718800546017299548337615066769557274278448884939726845510731458607121209201522926086006839592040023905255288670087579803315655875080624986006246312627189722103373251578673773056802787256195741673524776438335997792023890694895052413780334203570268218432516956717348349479724345766535927125226133135514192617594041531280906325812118194068869251482652895898628629994603141358331091983554084117290216277457831791246297264156045875443449841215214710122019408101021812866475956553902226991335155027200512934371359447589497702210419676891806821351014283474464029444686332194013653661062262306591495615115750191932573399018543354137386379495325939990144639608906960093682494440776411228462499347438338290459039357103276125790418029406512874924105332096254683880928882886398189138210517574723186906536979765478176274792708570901709969793598856348103004755221626756285552681164415839377416742169447337860332782912218655382273533605717499310116734978462211878055893452586678126046697736456246036112523712048540520802342150790999447520356195329757990577015063247310457417758281844958449729781710125982368306166347914235354034261594198105941077610198165602450437364949628866232517883708498602422535436454769046207213511974056921509149403231657958345855158480488791707262778344703343267836718519753668260254344452814983351999047497003864389140335614032723664814446573020922541015286780424640910955408813957732478876788701000699358991488639622300275612731875107696048115496742374788438451183128009283364766564066289608996197986230123837136497138072197457228946487823960701601375944956460290888713408486676317382833134233984886110963677926131415371589880039439407893814152625385713158876263451542136947677573411981133380480445316533281098303861787656036552493941557660094246923574921065428271372776333093068420075005146672000108828170076786969727532325949485900283044473263296650419622870726281788889999905422592640806458106234077779821691416644888333963780060357035338702539913615028206077074224590799971493130968563985867422396639062163799624931460790622995585337090731558974455167061365455599096269060082301510813353090961402737509348864655962727826994553552246792654699448476267215971913108971952555709176519099267065331973380437466659503644330776237178844370228410789454537613325215042280352056245325868728210490915529158324617538461351349468288897004180853441136606605526817385379076129722265196222276759229535162711226757737513386035297026338682270698642609069079924176167551908910135120249618807233300314230775295006671283003545923290574832691515041267307824514639283261109366383008425684906871266317191418204684908464199438856810221615843363437941910760061774097979043396031199067717357977940856103931419066211773201400834347800456473669156655351123818708096270954508116213134497678989582930045434647058944253419628167591217853488782750588730298747786886083350168550831063927286942160399729649501121581406971262133559247054889926215749313540681342999225725688987314226335576121332617745930834234348027868893006184763561275602285092457966837147140138452025928158675656296430869378444762173439608158832461836354205779980473371746502798421352441378370966423993542016570467359397797224550707319604458782714063444575145235818668128520624791567275754216355651227272610060542614041404581431359413063126247474414346319553057690878611017671029968646581799570478548641799385816372898479340265591284982382399771680003743475341794820484611093488800778215737212801794071101453103983231060196061939939752948350310559339582150626302198028624266218023500397008644129663433704719823828543759176761911358973738300761891449890808825017787781199316297259270595569151212408911974368747000356491960758091001409081212203119889406272741648276524078550225100657623277726292336289096708997495426360593975738407625093197322236724441788557943413357738236264269504899833519901568347972513381003877189650343685397491793654832793539078575500983755024245375524676682252610030690376363942004097534099325796488994086176203685403796177987441716382157386263089938141218433627582993726904427260368035891478121792018302810931489913356994330056571995718933332125696992994017469807122286063403468349895733061999870928667769658302639430007828106634637702520350395620928054167407527767367331832640313759423692755437418237336657599830948839112286630339985508303304863511258349362110652034196056731173527387630367892715454025405142291647736258374556623528038094856877782754894205998158472928101787149330988340183064729804268320263719050872268496217182550851785831978431827518544642812508469237312253634470803256867212585679121687806203059675939150958569309948870136334274619420401581607053967984377069127187739876420637081685834125868325461276722129148094308591519930742837929690088266048505345523803701345454212551618746840767506475565843216091065266156653801599894284845796257048092851870274903214970938750442467623626398934709748051516971756396284738705775719226452865407654188518399856752842002263798148382596901250112099558530184118278401630757266871897371609096881117752123186699563228652029455036868268691614339201081681891936356028541640472262936046320760594641176815602529525459651039322212061179309125473246721639171093620079498128200114244720169251053716740026489826396975180201237146362559281670311098783348661606463556140996171036444687306152917970942427149279760188693381171075122467521509838762405741049339792910938039856653659422554414793320559438036419099896012617031313091727627807462313218024866078242654243102983319168583012490349914696927457653076729061779616230351274196593049657707260173708259797407690082483755410510637066312516021559532105159787204780638488571043456295786178296581573406808086745454422433234017548038530542547327847640229051418312026575212316340682458407001737266693454385588883363731206229627187394686832917587776264661646344019869681625832416042388084312571200872091263023243256626629716453954835154138438180171190872491166565406209025736764224850170256944333448641711896401689872397409203813834281200306768742147816704229941597272144538259608130528885244110003182588841644847443462140232832485516595069410948186608308621501575166329802013847417536620421655857717764705637943112137705560252747210754056328275868750544003586969702054748565448211067800755462814241896822737436172127937859636570797761353242501516444069863139076764253130290002398893680928134290924518467304155408228391082262397159762571579031440214805927349749954140980073125082871275547482189349633431120080869656225150313674045372534359989593095123087672114779795923440644948345623627813276442199639404288507769980501679880470463841387173035098079369404480252241610270363625377777996218543872468803894503868252840992032368583965542434087438689203120378607114422649589087099658741118630428226493575726099077188006046407850560192822443753180699486196754954244429115197341035648820614965717436709286989528461559899017200925558208198269303652839101811865219382750579381748043795968710957808004773645378038853039146484747888236940833759292892609641505777510851831308916158010448828373212567179696904057507985782228112804065379314621813784592864286781580883423974125709009170362023989774823177620709211497799104335907706963203142217456095171566754324112609348043429372183509993198366084680829511989299907056289435553720959924609928601568778518315820696123237445551802957229127222356282399941240294820134931710425978289362494853074087232644353808347506625685462954092343446928066969647344843851208913181655448735051882813652198148149366268968341080366981594034378904047140524109777636201032295252923527923881737695107534506379396436866601751410619954882517446686358065909085524724268389160937452737291686658915086524926214378127486009529445640391282295190349985354866510154717215955504952974458903190681560688259797675516369392822992454557991737592704262938192064369491745907123286037043227564916558980574293339670103749553142494371392582534820752965593988082528076021351938895249815680237922034923170139379328784273671433070931592941772135812393192616352740619166351935512772652644182638596258160047429002974559580969626896680512663538458991496852659695876371022506347770152593753648724407460951272149374621315198707431197032555021487211156026429644648731923200991790859042284238153052250559286333945551843544889410492380479643569346220039137073822328685921639294769499499261674906421782717588849936926352899868924245624105907286232172756682538606648162082166536906520076919698276561733531964252006371628669633141302567558510787710044698906991354414389748927101502051955200754755715544042168271439971868902750544281397516437863321719828004731497199473845631102242720634568857918689415897016495373363317929921592030364691761218902441615573537340809316835653770731113508887329187561525365215434709568264581488129485171966315995168633514257441654489543973933105031342774457336791010468612604631208611360419968618537148322398560589320716055467885381799772822570854477869643133946009486253403255230418427238031929039665591929263591457818229131555022681199955994059569028543220448415036152110727389218384342174590153885302169613368031760573597104456081822531359444868810223914132579719532000552407638810243436503633985064207690568288057311820942530171171410499850206964499032685552833117898808671067283006224397286887625619121545205802204481416137860496409091829785491034185472247336097807109460814275758970936268338926004931008678282614717640629878088853382421586312377776105841262192936790397174626464888553241749861981538742372515840009760299783447444915168573483434002727281896109431470583698183923196670501316668955883430432150809852077605529842674438833897440144953192507086449959210795500981702278298221036483483895799192831988943526400861526308890327548098794749464590959645893108737263440125168400252524361525586995087144541309678443029234455435251532748686570091293991347145907838305543831951070149623841737528053285577881025563245757661182023116134442748297696750233194964465875631746089858415673695335704835561448783921458245909794741934986558304144095643543143097813292048490464875686398892677120096710291720165959072576678172073325785296347752907880844845877549772901451492553105455263058355735634377357903946693223924908089773248828650493944469750550364878679738214195561500633935513588395315776037854090569181192234030598444608471575816378249191355871932884662271411302073825551371528740001611498638284065267664901633304310384291739142560344863111773543364973607909644296060409774821224313079723916723388041069775700139810979277431822020937772637280746069677308872675332623970615723178686876654566718477789134697389590099634258598472957636108442768773074847488209616195194460520743466454222963367687246355216446418404555242539150555676269094211323009849093259381943249263124080154928263834885200640052654151850833239797727998985365847516433183556298079087704438760530653703094631539644405973864809358947641091129348838801800611494572437717705333273510069230565836383522761685657951539230414433444368046688418865709416128527653285875602991537999462617386192932529501633712575774472871370457943815838582922771462740782942398933835701932087532821522748200401789868571243194669936096398854800009411684303155697338927891911408981996052299582526248973545381479922573998721587928012565134732737162690193347493321126336398417015790529416905665240285937129352348006912071594915622178087336899652540833758307374058920356506026159195343778146146338971530448807025351198551975329845330086506969721840164068318663386315866089792227391082372635730140465349733051988963582442029919622486527131039971623087010530405555183690256225893908698734728016547981297793429016459572916935199486000241074976776612429674616471091036541846731368452873983484912478665427624421124208883966543194547451487908435127532559522395690934304468575111522327452950101703374367418716494718170543536421913813146770997052738237979953642797696668048177034039152114406589175394316491478887995389602542618290261745654306935929206201518594433595371423556770916933293007043372101489050187034805036026828161688499267008571157601765081928036216778000912915460464294169272117149773970877890667580029679444456878733223729955617680308329545262896132294302748046639024446759266265109283824397621435295463921629545134075254879048928148222817807999153846876916541502102551593490360983666632131685496986134305917925823560451761868866657505014559115015039175844267795387771381454071953331115851034363274653464921450506624216380434956549220039712954206785149271972865605766114581119469450811814061037730969613403487189203843181372622482269098585705395347146083147149422625667539873044356458116791141391829234817778846255597436660135721563205928504666611757187923539403814229803768566071591145827425485410552548992107298238985959092537083161520128308021009809158089943436627078645459275557096425729631565601505626815753324714519916826513298234521302131583949754585960008551680123089412895286535821123818601125187242316899363849457688534586333477463315619049104563240035894599264803294499115407728744492279828761217163085376134003761433434533911477515548284334574695505343863574859424347969829232714403704037517193958018996407556899608738487067752435461022453229613607133612029704382942827667333907625115744659279079124950562703738408589440290540340695011907309485919675419092026317193987817859163456813508481495912219479030327656629873101569211607181634490795392901196094356034652788095573211157530976329258694780674866099020336780397202298198410249779370835462614225388335256000280009984413486547319289397550461151185323326982763785019253464490562633624956820823915436594164798736981672490377059057903230282497245521292912747010423586277746829805900011093172532317817693316808884825521989351131629162744462016028990625589137107616702739345307112590899942851897348351407809119520311123700930220544851477193065344925341552225805149646023273970241720039742200440016512628632734802496941303903794639592070289638675331281682514761308141544149376928673141218153421657439215115918045957369902636027116652834905009083204437716581703391273501808432561574238104849825206762132476500474407829110091372773862206347285270913968632628828891903719699141820508898948455099075750315146365685965784133881659453369378364681209990019460362930260183864852254635804016530524683110491365355016652811991977820320556678989218721446510509767069759152704558396980846447787747332111307073157690603324074094993200821919993236973590796738848572421933984742223476000902055721632194251919636941652579761433661392317938672294579477661114339273035428053871800128964809317276098605871601894176042370867849408215230628575444434973925936406860772540346405449825287725308297987907082615533977617830840192756265506097491304087985510978458905111102315635500752258288765369550702619055839114607883266571060190426892179456200895562338078969558397655778335633144332514029226883544381750043601163673449258536722061635829068830975781305044786837856855729367422126368291351553239942613429531388001869820938371002236153380234995718132361540000161591708306699986679640384642806329891520437118516688924709540017798773262268224255672267441536669101550742866428191710704542370347417551919876830987351714952420305868911671233034758566941454872291244677219681730530713230887146758962101296979770037362403006230996848553531369838150504406617969750653319399553413181967664506223657901207916133906921006190418712053451443531874089542691573987494555917551767850244393659710018566695259148064305102499475412107646382386614300678120444975133744634137303353557660403630141976102107716052369814066907007453769590713795068255646123112611151035746936578481538487698059354844065422998859146054495096037993746986927295207350921163740787631530080094271091024129418587309421398126911382890184037041479280267758849908662071139115119041317722020441535407582286522711931366905772856217662810655473401597895817535510359800183785491769793442143474405870661158868902229938122906035221863272648230827736071980669428109591759756606932466015202465960837804995788313182173032665638357823625280715381097014759086698404627870099116126826209372343776891975824302464202747939810059867611857056552749125503655436884899461528950633676905598889648842117175991933657211019798865958893388200248024016408874428078672814483127111651916657710221047692222282904946453637243720113363386231273181389104670354214993702575325045416036893288771588948050854325868566071527432324817762274883099336323137633133738048211155454693798039707741477717073234586316162742324806552342874346345917585176135289721171539988962043548144103454827189911939108318018012704754117839584101074605467667528120847888883661598486512399232633679514572642300299011295211054023661647947175841223335892197372074285239529966586888265121683366729881328515297925776689307374478977902220012923315015243934173948936975824209343743563511849667888972635454314321848752892472679697394901494859759518716374607594894690418344944222937140422383185798470854044985516020169596110448626244287097801817464093797301190065028543781102988038015729724820850936743592136504970057445056320178546210452956092461150595993157909424104341625441557491563083715287595715685449054079490157426481808787138494498102919700364649110140320786554211885252638895010707315868055707252144797854459529901762584517951330609999554410447997916266816118372898543394807566493376224669576972139644856324061904815573924378989796351070907966212655034376179606446514173547732629974067211614400742869892885509448325920251749244053615854040114361235847855287188131313649593543032414920954804001635385420856302515267658210166619001829766352246413286629740784959672992062803568419437245905524025166861210886645026804849272645217291786645715585630457526711146993155040081248342846225797684966715418537049934930330256198560742832854124971652338704939778276320703210381667135805210581905002612113108420029829099441439874333865823750126951920328336796200225823959086324860826278852087944601737256112563706534496443013736976285844072466220925676687713988732938499939147795882995295021921054928637661847738786780045136404403475094751828286837812104452438478685822480529456464739410293881375502682915812096285029204139398398200906602203758431200316512148348869654026629170238178986554455221284094546684330827556324525211220050252134840430870574593447199638747152386331484468502827405800117363870496992896572432347330947216673826995125536808009300601638003143589365677659508193122235637846448647746486942678177327019265879522530663076175982835452799759925031259876058783451819853581989570051732231761253000970096006823539674096653345332404408835251470778552347312613399002932597215533288656320274115642436073896368234469275194903251384790977903154413957298767480174964826623964828207760364336820085213505357031233481047172240095556296350249110546669808476762385213506951740712512641499729438980651649720452050280487320468909413865132264291362485805264211120177501059096692057887835752301635457632217025022464138531947842834860691269158760315566544254871277018843439405712029968251391432074131098842931092035819414920582533225173428847850172160767243551791963169153149934199496629401950481023975247846368574892197517972018724974170004315148213898425657662303531256228689708347788145037567425635877826436661527294549684889078164143378481822666858538760875013331463744944197704747155737389631431144655887836638925842500057634717441423044483948001073528896598308172862051334212549243940264342144170359057597518063946845927276638971160880458207869757837764106182999407035301134661629330295908274629399634673808451995109398684955782873665993775737189110175857076826727163927199826360483970510429448933097993108108184031814386134250803989989506589951482326867924002329952558593326284042900240902497958702850659501308676478381946771929112543704076907911666331775565959878145527429949542196254046828552336590833492178739570481606414777588977830049053420764434409245751186555055060848211327497831913847728031587152685323973846371504260402208653237788072373147777668174962558852969179775882260446393365942773360066675018821241016982551803512922023941495012839575668672001361967899994738849557831184694999554831011073393158584140279101860276258823055570790369188276151634779084565845844774661629787213469647664450108021904497966035209567610642304458019777925876311118747543870810307622192198870129612437491178645227194161475477294779813899023557149385375625070566056444109017030939920375103733340591588903464365262109657682968561481881880377607422048234865155628384159937089579769221082591791947548544854899722593382312704293139917256345572893428480892814908695673044871610344071520030366505627600945008591999906679711553419970424177509479785488811466220209202990101422523282013549296197993140963945330898611021565586380940454627662044303630705755070244207458485482913160651881719738852216458177168743286933084747352236565161290428589099875642949072454084142609440286169019647988428297796468409779598476287711145973514949410818181977731238403303599699958286258390977412385406407276785011849078499027488590134484269404451775641802544508823388927416302516668455545161220263638150211683908161980202180473521015279977116125965831125645091079398920823807776556101518720380492675703328575222930165162932556000023891497368598311335430123152999724159128649998765157316629026694675852383689681069595941991163059082682947737691948563909404500040865735814024474679239937421946094663468315618787448891685865561388285289747074940440568795113527788224758340169101292518891905275577784044532338162833877326376624149306364563238373114629204375171436961260543598654323359406408365862353545199705082147781463123009384099119094117473636727003843774766782293920449911000595479842041195470044978777610819643087596331125726248959296489747070297857501489626057788543893103328251101961232254306607465678116840772189217491718908391717901311379973408838619245500693784951009049308196644603093010322602296655833717919871102247168339511948096819078260609482870108843721786809895630228960751554376654355716752626224030873617919955503844785447628207726248680480191327515561129295319525806575333112959591457108972966721423871725512694851972874152743465747705746458052409457587606275559287023962194854171082940602952593098619161329878990993639525767716744047130080715134637397561160396292317213279774686484105855023250649769944198743258321616246883213649383495380727966132116684656738337477379126819760748302204467025105830860153236231980144899412430875016974260686436927051512514199946095575492317550859891330649505573670149073325522481838309848940616270092813726727787145450454062103482641619123839238082650619649907211195866849769212018545444489077311104962653730749839522419068302842821931521094679341366334163538071168135914464593902358703739264806311111853338468897118913128510499058128358962512840539492101877100464952665047708161327070218764720651437040742038292250049034960161527394392424916550171284310984328396902590328483481698695078285050088027409671661606238547868772778473661574633727046091943170752744919708783830717053880587956585334907331431317735490593109913548930757471689302634235710656747255706891945874260225337573203760431259315101611456621931433712187978921408894385174089117129823585193568881517817510514004301441260146614429794556613211007052597542932163999614113168112223663218242158381697008202530986331887265884362841942416014809843502274347339806384245933556434643568154424890948770956303578306950038157270612566381507018337934862231506141401162618615698543595884961971527292666295885196867809433665372852373337445802049220949851926306989468338845768813343108105013863388731481235683070121151690957387008356550923115361769217094953073469464624145336339339852681104935341774587651565374924877002884179517230487936221131847713602768361735869874903346359915478521134018882542507028389665642617657950589921447231420362438582633813180106912618032437416621095153010123661515762633411143367759231140629586545173202994895196780939923483571029063635229559751980284434163643802065289798792822147547947912547128381979705314665463133268703288056163359471082103248318761141644266913681044390666715114723724866050869396030814259696611240046723768249078868966667690426642951620075520767417861582747715619557697383820855830458202287083463621694833867650200426374877203011265718761371323713275641152883394678971714153612854779546557253767106705457107829043457010224909375372115181665643187853469032965265969467887448335349263839690584013402008055368097251799885868360551325637529214928388562657558890465406949377897102661162632432014985941180013296581135354975031778111924936239202189375329964001613849948148372218174392017260285933959734277294779690512931165023193465660571182875246155385662041111716866486649719394000297931175931096372054170806192130621202699127627724449064658369435474307296374977003445848338758453962695520291035351735731054361337618196451338138742958714910796773849041464274959686237093406967944770066950591455207517551456037861542341531806701758024986745575668953193814197763085599564280626305478111083472057390623801466106824477189541834920703153210726541299248029869581514882630368923221735105532148271081939743008427805730686658330800446955880336218120268557344689230442163474858058901576506473167964709700036407312908982293141602877683318943481685578494127043585268243991417452026421149099636399272717931357096266123454247909619645936457201692950920111712030696542826854278733254175483627227464840501501117680659348959324893286836888684832892767118629718645628658041257943344796118339881530263406815616884783839261681012384905724586414504150782632675186121594306258979646521670779622780702511918516227764496687502394337419963376210033708844037061499650755331374119925277099768771342479726367018969308076827737910472843889124915565910629840718431960021772465640046385815210682430607600306275202213459423713619402678885344448077232737119666730260280047969351371536602701902289657460920315624315259668986708246518991669328966392803718473652737731229280210222498949315769300849903981040885725558087239745156866942479231408639689218809706945227926781307737795984445880756094917913879002403776430784529918007946803532289907381264913243277004823605988381301067321297806541901460804184919892214089356659969708478142742725281665551467398414644638094176040024193562152376464979774468524282688986491452205265570970145045088151972773161821623411320011220892071293184590423558163172607486939885687107259094521531745223216785459165727710513714218468395740783319318231750969445606045800154277457933542678080850335599344140526944635045674694514102299746706554175143986997719892128132333614025409349512586910306832929257152111777152185016586327038006467669482626630434692416375889163095429957571850966555694704688203095926305151573667057809888926149220091262457931159614578039746443451355931848537506003993670184422097868003337171554647017923160936806604171046685110876257522324411553152296222743944883769312546726733489409756319408752863177722613130505725859740651473332389589338612310328529388374553755149589849083510532852914663204248352751454551357850593241406601148884074921545403451451480879863203705360427216269145106891260001357650063856957728760939688709534836490310969492463833194574909627051523335155743091700634437525914194712958632197544774574443085396765302935917210737478795367495263169027961505482141054617694587678422002402162768605219923301987086216473255245836298228334250637056901559800374494666442386534793418077885492320050276557089024587163133201813180203490459878418419930238054180887656025050450312520976724001096404087610918205566528920031652289449067690273258679539373897031784804283066793939963398888461961575802065454040284699725028938632981040733133590836201832459618872709775328816440573153875166525042236290031190717794534085797842497418771271090207956638104204478036629747982680652145613264599352245947751024564821106316108515587686196022015847968286692941737322656253382821335931926043900361653393459526578163799171020345558442880707413178103810223481390053387292685855264824491787047206091153942465082459438610260995902414199456854419435025744043448267860130710156131686945929728333460770916864292015474607388411160154340312780454696213669715714266055960913734412195399569096016322464715075063689624601816072311632810515889244255160884544647917996337211617416420512214425455279973839765096313537437520378956888058692180089817593611054950611333096005604452029714446685627224601193895675889188298653407970229784891041665897128075071054425910386762681719797661724280363971518902193266248593491296922094768116508977373109525717935658712238687443191952074679513257305033814637269348459415556067993767626827487936979276204225574083151585608553116674829890647674655076364413421192773204224660599432529683329726918790548870653088930422055853200363785913110406532637281188788440132601847514282218174121072642988923087280703313508559879751810219971519805647663986743170348631304413074332319248622633985677304185849348704722299494194980578095553378932985471629291700658631141445023451278217675029169154619401228537159080758675821449870831883014357211910187077944477932627097917461937894227863371156924813688344008322995668336116663740636221713915438105691781969040231041678502981742716386060480023803422006399417771202250992588470537289769537169661203348337211176533979484786344974066568744652800442442026734567335030014205682536775464343667970265014688610302138400451043245572908001823159882376958125616907551542356410645262578217557947254423471612143579891754418008026053251150357507141801004828350197555160988733806494533501852199267401323106325312092393217677737644763445486705873879769662276829790850123143115781767369046697164968358545347816452473982943876019973962290970397502650259326929054615305994479079991079473154166598606747222945095173513515695350820812224805039247812037351069043230152209712596734475677601075945404756704751599462128193375576347124166402541136014053106287849765450010426913700740414162820137345548579129513632144851003748383930376495041308755170228078021403938775514759537716439705912943196690583782128742835885937979595004431412424116120894985261252429203796315010465473938153525497958254126963814618186048860629902464349251581807033970014715814231807972342976177000200440592910446040911296619336483367157163333856278714218975878615613563998139433974700859100598854787997518729076936328333319116533684856091095855485774873748328696105822951366184733961802465306434205692338585579154762406767534519478032529122406803184670643977997251498255979242060006570196631181293460462800771978479370863433203982867404843430271493601868123499529189429900307559164729790768093568767846835773586909070146148422601560540775437135850012841915582123655123294199665274795259929928417982716279842015927998983581700594239874553927922517514075592267210255415099346168537452150242397292144806659909708318127363485690140703560669449254831837359779664823928044182943788475615919282259116633500789032729794322645014785165818346368820713185881282106272484684909634252850690808569373651126293647219359117421387151725513091714980631848247468960106252374672398357129264505920403819373429272289348070763112157297128092442933669480391511633859270304000254670754830757788346744086401162391616067342831727146872751788084502296693385266177634436771213375340515290687443061292583974655800201148698415298077475639266367151471298795898324391717708092169898541590988162603641069642392406641238668424020094979227234790266655563897164206011598202861837280569046661743866251873508066736858638075541862740319626827629799939288078755376056277736431313404955577616885706371449093052003737556216973744026313567786443435210547694011072913732454090470273664786717627646278909557581562516629315087404432803808974361229184314077094792542767721548828200967561110823590865529327412594981279268404804412977918249759885177802992716577157077101891623165919599275850270029476158125430978044831985050457010731540581272332102059604988590928311623835586021198181354315699373934348174632197512272299693509657044886222731240011339730220984263475157536991223960455942985129616043703894224961867517875376719431588965439497383682509391535470218986925825203806585986651048398673425892955290811303085798620123543869996592541358510682095607852108140007470346295069486717103643951358535692327469568203845816588882598050326312958961170808151216204683151448137428316790105520243465710728924431655983482989249182957274085168773736393527402442162572061634613633315140428402478733653746597480382841439946503491540340183765213183534574827589315435409717767226206526621163025496489414205239008743032105368603852505866009703454911679941485344889080212514972260609922473262096602890510553922798219800412614318324462694900747571019936498778137039309062997141469530413076510131801423614155040374517549574188710003837938434992631294335627407390334631244973899584491917786347121796146632424161044289200080940839772608745708986861228221315533846569818865685321559767357620113706969031510208222125741301836029313220232657294305576659491487405478975449197918247119913919261996012685595657218798409169034880226094788116547299997012754452459781408810681383267312664881464699417439349586017718694953187446620254749551414412244577845801839902992247193730823480689082392758928800217318503956458005762376645543383753399046763552285442491181308728150973497721686309052877546405326456525104384428109754881118337414491620092343036698965949036791766977341646715242181534255842131602657895246599948976138394720795609457687540113731085122320490548109706256163052412906443510707667396453459262655746427657395665749335893246733743153102946422476459981631431894942256996020748573799372789839256147265098713722961994877164106334416818239980464647956509514700545766959008291396903994204802856385933482663359949135943096335329933331022127621619315163308124297027337636303907954918315344562047561632564451353991944076269060088072045526839714474051877421585257463203909953479474184793956980947568940143598178608662233141843454126152922276923857015245373978850514937407123741300996813355648804687230999813571822398184663717854990042605450233996534735092775296269949538489867956978343675941981314605044757728506840255692601995139814006001575947129783843638984005901760328453061722765459350524877801392856792452216043538311616148815037452030596650034316058100297446971085004817543099310282291077313466208688462248827734559893987873393951496435390436780183004541232521872916193393616855629791078368817165093668714961661719724229056318329909362740620742526181672402561834561215570383695043539019515681610948231987902141157629694674391543969022394162264646811066263963631671705405689765153686297082994460473645478398704934971654324829806738451266098389291749767737906874930670205343912076338522795607483774839397313503417958101801173839055723688006415788936537264080560421822122246320303251073070696333629607640094106409879397862493635102033123165475092729390036892955209036453549680312327354687179165041848459581213216385712250436284038316615500883532062910081301235680206592528494651385537843334913981566370965687185018696976818831141123059068887569540722412253591087699600124173532234001817529324235996087382293886743255270150562848634050754019946878503427481141353982689485395122785624986886078591739080253453751081560295905991935347281953029451541791211851382176355449984199294828512006380721529199348950753148779328052904069732167111936067700433451695967333797262663804816393348865481398028244456213155764291138545998718737817278086735910273267967108814375465605156432148184022081089551782142065835145882571687344952462236012951864089710774998006972587944778278447164658846120302650706686120767795623641293156831646584135234448165365078157128414747418309218230994242740965534730215538868016526909989201064635164752867164635704418331819301407670686767409464026228064145140420570649869727582188966097252919040403429579152553766262700811510311381393502092069073811446350183918776624884740835171622872643106287606969849625603953775934799443089440789576830896485433657424396409408354007252724270925709787838389520818777047600104451511119057724835037339528845733114261886407486823881849345750903686797665255803312811389635877921853624088077574591291731300375324184160008415385305372457739503768176693940344747875133220428664115872435087675099613697934954439483747463418094582501016665144191861661863220515388328258188860541424419783367058814794119151072339554033501956981426905026540898811196033126159717962427592556517860128449871785370840595693175571085737273748963491892605393614462126119496527084122040358124851464358576490785541603478445817683159454824529840980874573350568475464800715809486154053903109993179598216131617752824974272216922356902421390731854922962486585039530922091384167667895654650076760016894767714762802224771058103685985846315756383091377769425443765322927960749566770505888103597237084619976353382317013436311086757035096349665388044761691887961849901448337539641108844106407867869220895026623797924403643994725300539930223715466575046905073340529265505905508542789141555496383594153553140881967485667951681742475463616545940297432387915170101755180814949326745892620346505854773441343731101479132743169894467896091538058831719545636997779597472439962328311791917017869029594149814588941716010423942816416914002782838153030939128109613724293267969646460936968378800232955653414913431934876928434695258532403891036200540824578326199155474972096070396037312981628686231027622355456024204860227461960359691068082035866509516336528540940149670436152814465760431153899415375913880102759580930779804717763152602531191489385107732030421080844828614279123447775341213489102364544892983322852784493764670727002938526596345650042613927191322665353592866271626988338403016461901026542008021609248937535418225786970365417392150326878077589413803233742838770852806104686388397077498488018262156792454917657951842490008432166851578504568308533180375423994209229183463589719351104626397722487761941784108450666477597890182520990845757960088851382690863260791228134249926553634478456438397939494721750484868712675015582358393171214166445103158449115072177766882439295480922742318142223287104969735107998294046068590937071198971865022856049993063251298272380424778742760681779202111128038723488960958364019844147998782583784616391904898265004345551897283145089808817731088520203087810864200698589076343836287929755716249402325426448271816031065568528842231305523387370147403893079928169028703568585068374221991550392359908218098895840129305875171921856327723786888307506429590419688345766032426965861756997267088329963770772472449622198964657105228387493401387952846276084604946481351317877278370707905686187574729372090026566370694713601580085582826167596444827250789263983645652252147233703476740461172581844970669081262509135386386646701021181311269987152914355629799064013470904606219011357791519743234079820841071807065633136934486221201871585240862912676761275818382659283139218159271586925886292745532366715865862933783277000333018165569717156918983619288716095574780310514406900701740410443132585921630449889673571538614668210770134589612987358314204649843779259601830464624790768725405326655240270071167305578605151984546403958994421613523455003207545045755730588921901851422355988719236497689698866049071023078577246822093688123906463321989307039140589689236308461825151300703041750490527425924756017332715763567430908461575444835393923767837639784496929349981222851144723682786868335841918198524587309869968836599448916579365421549372775131784582219122908629390948433820530104508295925598696934748412266339096252785766292095807755729072675613349163396644139087763916450903074981696029480544894616784437323608570465996969555830606358334133442537066839408277976372036935131013637018563186303075376841742804872302391381467110336705739707962641224157035765828177273883408726153542360925791147666465334977512252550965618151427220720895753330589270640111964888587718816019416911882019124962585326046418081362599076828179064475714874225700357537818512215608560040078611841701000888009619622746601388160937295474588267885637933434400315669611824302365021340552567662909031776194033505598664915194697539627358093333475431024142951617114717925664218513813407001719530084982037347016609240845445228086328983744825036949386224462550194596121773709097375245466116333211212711930740833916594630531981748756576856347307158791923098336457299761074449906336925907762252527118703882924668620597199003844397664300648878953487043904870065047751696863585874477093991117031991816976448449298260817494002884336756455905475036228126178790756269117097249845061098068408345572091802594701185870454661284758013294606560704468374153280282932433286444554972114476950336239633452675992408056247502567815397792256798464025825534337557183953183829994136055960172364731402619997967998427037362105370576194013805041961102081216153174397107823896046240828039464821971639645755592979942199974272653599105984787010162846325164900527144010140428148194252482250220343064210036667794332604186614607098547553017782267376568950883017029030978617037349566919820733466188801887437120534535145885209966291518076485117021346630459748072871712928749769038226200637389152749948301440044586777671407263208156833681686815475850005392456567738530399784958225182354314471207667477703109191487680419486793534024686071824896277505915489158089249668562418867193418829790919905986617051427944098753687782478943080220571529240459117624226958381130921028648604067009082725797838537609755347457879851999340873649025242927306313112262355685048526882436617077011396358753024073649704870829329256717917043848332944389518198765780802208451048226270797205817515037472781252658518803379122053287300239569598991998940342600692615654823149785543623611401930201153502830684703535631374063652870485750643060784274080783260728787178847668262395990542341923192032473275929346868852213533745918709806634040081881239948156995392532160348710188754901575310235193896102751661685226481239000694668434265177814662741112434435663097579741350648006102827741486294615138205424837253621521895801785940939172556225000010492042638639287299210720728191927794189228142285690749066897515184468910325925933763915515308281221854522108667103871202616848683729069996631558275544716984197271353270035155202432821079901925181366207629297931497848465264004492332293566945948368277092063256161986245191050651595241264767391700577807773866054627808347282308921884319853104992147031813648915160585976796644816886276480772534024929006082978698232637593554758875646388499814181101840898231287906418140979656519867294709295651968084929624294087936550842508701675191082188264116879281792402011260306780070772083295078520086944387150955480829483329655995201944523126810446904719650631304436757760308435273064172992335284022701025477787118177616307073753768573373998148513595849707330749192526101421968112352189962407053590745092441696373741374330124223873756616776098727458835993085105557986881240435371012351413195351309501961879664749180013156609663201785363621059856271526948217818297041088871949175810005278612692309946209378600793415173127566944155044157074317372374501739653116472010969504138887725110057563446181311266934758630646739488315945205616987675704488933002855287656519376325151684074953237812621410953006815530568043546452263232661120332432301970059705504626769838725175848425364234382834723954056303809990221042571594691827809610414427548631896257433308472290767523619294257592181554853524147467314534527323719462324814057630611853139608512731470857572821817618500198680742207450910423178655340373592092919245393152104938975096431701871413290671155139433312698619504428586483399443931385171557187801061513444443378176916776854153594256761419171531283319610086933013787149775853077402942327972729938603406645498611414768492913713820524736980218783984267264060533291401589703862350715665416155433479147239689355445698770248316017294705950802189738322492387315187557882988851701216984304092041233692157462442220030434187134194484703513133505979537896509659313876863735647191123514096574228553894513757239820700318097211857992669842511147131447379709594711357848181340391058489050458256112543962331918115287711687415512303800241977497083780936993740682796336533515317324371697013784704476144654449015582554293691817973547341341713539973185408178115698079299570446085538336375695253294508376663250893275689736862360074989729836010983563544852238720781377646149457453202431248538717695150355973685545306068242108408845362773073969205876983599005598578151688599842290720719460763333838224301279720222652876293647576979862070490416289061572796045170704781968521357202549408561595318316866843350431755716707150183009523644319684973714592853809036989050320653666603511922235921086872147538792819181125149210998472341876799118067356558631557559286125182587277710726733272588914904174206419543998372979754877758287385692282920003015918619973506011128622760473324972188060917306864403381044568665190108992070790514556743275458878399447012046129825197251570245207080493094820230868272151542075476670337969905960193601328370798649837982418320108544402453418120887334840341162533130038502355410978808150719120398003708140463155700394085037753628581820680628104343689356323708902455819872283550485205764520048091295031061658838408065975468288239029915480292958972763428183887781947619022991167063623456893944764463297776798951614939607709057604388825459628975199096427099845742115787655563841607532995677582182169313249805622446791237578017679285392398989313469924300654422044218961731612237490508604449436486033588984785299719877239891740876283948450916510029147649980705186586011963636037079286780286227000845131016275950078192690447449220677747510518025394369920988709778085743762501958702519414987679553456445788189791302966490579811611521222469809279929895113114353116431258265652795046565426530161816157862776872692453485986806622954970581010406625283713729009467402012288798823391559108434050393256962805227035300822354642798627851630470584943503560356988768586305300526256422595544338700220424556451482972749751383137180699956779105642661118983610026468143202336296871916528683326766207896069418914777649569801594187772300660425836539241656984503331215351606216451887483257484093749800753000518624799344586777827416859786008894248663514270134649072932744547840681724225036290910007865498080119744289320310963864414895744381669500341875475998507318047939745355538214402785872824854965711776369486084661466825556075279122779230577381938027989773585667854844718903346507938189358942946158452607358126970845388513150813496543758734385028610493788491886025701974452373151709818849156035797344294404862342278663873084891553527232422055019749366907977382217807230621364048325335939073846536301270539818633665872887445406140279245321768407929530149492924752817240451205355399608150219102095997104487065082894276364329250763911715607878734618421048869908046602824097575112775004465453019396735366334123703652755895466208977685845035208999677306508789530141765928656207700566116875030560441940033803886839069867422110447317821439857903997431859962425527092949144811816401844331052408515983435614010284690132291688131662345220900315803137431736330632058267108788766322315621560758726842354732180327909654669159948017286085330502342610925779085530642877636280552543548867858840926158599222925648898440893845106753478656028108269700048783887077956829985197836786636896476399093581502717391060925690179339512141413410778601511930759001762723800841666384422109289130883858209968547249468037549294289308262443667632781929645144507472624711245960669639090186442761788550287786636661551553734939599760303578024405961987142195007527877576010471080419262845580566348909959983880679460702346875541842938436723922626787005312579127959592939477917842733908127820410171084706559966261048170849244362539629828162924022162629077473761225977313282218096427700668187877251845421318936685347812531525102821655183981029766445034181126488112528733016022196087316680177551511343184648312022019058006644004088953728306637807046281580473990784803283073072862804581307723104053556911932884577400575785326035319006457055478140159998635112370137369253407566858166046922628084122840126439519197597528753499586649302320732560421831188546425559595015753166350369547142577968576923621538044719314703156371876002710641554695046688415350900075054469946365807430851347468834353380851169024819320222995449784308851688928236588797429779906485529416405438370469270796004881810244693178104387934020328700880724192726569066188391395075997768607389763084092627882815478687660395200484417578521086238208000158822169833276911423800108459535101296826962880164008826394550145005141169505066213257254022640844496200482745442704364199892242990450263745931932360834105849820378444291588134011442924561996614967735521556706463917448056500699440649620162962388875489439038971027694903999845277295295652366058402908479567475093419993967641529724110726745074173637948509089224505992582649570123011204626380012668274013544442179158434770628278905190371007602495838000275916724615864161541365753062349142531390602069337718436863231532152672714323724007711279696995081689247144455769454253257563438915716579529021791816448058767157393903135392492704344847697557314823525430119894350093858337495847291103474225675242864876246587593674338259989722469916929122884087857723754217909238581403046662932739939276629287405519237144368399659405217249100637636907465988220038695437231621072570429618913074674520944746861611261698708219033630683007627144769292971491083450235692654005610235513686347880418698303850755848480932883500565579250443870483240217618064289064273475429494324100901899960777636766298326319269121744591988805207372585961507693208019091208943599653965614077630853934514571556287938345899070731498483239336592160444546554385384007452880510853339901734977693913777990258431846866204971613612248015087368081396807628383106713391497178656925962311341622960673456967588821504983748265718408086425285758377981311548340674877703246598683337488621851540149355148119097456071500411993756122901218156036132956541228289525456900762187444883228503698635848619137814670451023469052779362236202134913019677229081345093649394236724155129187024548427942085681789309719968491659988516965190252636732043267492893093756333481520799594372199477205573800616801205818994430507963960961876457603601486573564916415264885997926350767145423906965621168247394320637446041852696394312378666118071230095590050614762849102724167329637784932635222843310087829314636432114752869613628078645849032863086318760374816895518518742549929010049792427754243985561990019681914327295506332753088937207750563890954333114137189073245789890585335923977059397884279118019722421808668665969944019675218902261317766339842708063254643544280604119279542113213791367040266537401464381740329640894829729943958056083034999848822696655042770815128860826892779290815837937294238684180990524763379743086904815544853589766013191679783715722271577160522293563992875723542824927137335679455925193998678704045053690535730803564947530592166712523081913492082353733928533665531984554162086256218482469889153752588306592423896115136586063438655459847951206835087926375367038510759343751710642531563657831882610809543249724162040843423725257941335627517787629228148352998664981893585605403328838037917774723626846968308390838521329930571675048743914353272679747378772326103164782219282965100478835596516495428088910382219324279831381744960644849083855811617404558953085248232072629624400693223281112513438121995601513078445461822623688485350208181429958344970042116584908917284060223617686167845673875685806534897800098518463275587252390415727161354827044735090456066713616208463496492667732989764178206551780245271285651263142316973843566582775435143841097589201087420894604009266448054285851345986699965309556818083593957835769394971725506243949129848664644516686300388492409284474337684852598556189880596457933792555551789046686452435468621355451743539790223944255594724639442432779205832731810528468013096660690744013826151052915804725118856175150316455347538617339785704447992848694225221022188213669326715749290618314563286809011781300558023114277817900632787265135248908602961103990286971296479131139214191526684396008061169456003633250963119795332793837935879457311624394160223955391480149952638503190783850428349032732157591105293769990397356789147817215739095191227019512732085941886506345088238645953459889971708303061146245064960544433080127134444958194196141929824143348554107691767377975868659659150468148220043848510136769428583613254480975983335029215833204382983501365248768902749214355431083730605951564589260595093838738767734675330005439499753570228239279484996211056329562814091578583637882171677770807215099605955657750666406302112965990899734296512692578064509692599837991300931605557097389769011240448770225835732833005077744807817601092279077090554051233474564636258029444582713196745214014326143513945987286653710897193709301143207702361228904159520520464376898870480434801470187300464007564818028244929320016399735333263389361808314647126918785804673035054848156204035718890290268264516283651904401920201376741234701756810320634069733018771029381434815501854389815252294812998697809675186796723820679573063565406478626533078802265019963366836449495778113403602719686260577844584680195613271245186904869880221061839082805920712088387340318040163878921871315373566003363683599309767952607202358070704011453081828054404435884122528274465278027218780175046984867752510020515042294702080695448412755998618049179111239885000781675454516489413501545637047170940025003708412934483825715358977088966487965028495423099240775851812358820621182113988770022048042695009631694469811466569353400451543252151564665619982485527548481993755103023657843352330495722760296118487555719072675986977737254886849880978319929421233189163603351221530827008862589761031070533039807442998197907492139159683536016392375062955778423407912312569003471015961675831028703167921364182130692580855519936022571914097386936535564697106791462790569672768187093957388730647241381830180824828346071395190536909580586936805901039461630238698354074091487517965970760350046293761874321839622822123605976140119164619174567788098930201546851588282202437896284660973066192381503271754932834006662880781170884673848561929545994371186585780392773703071181448941123972694106121071327271525776819474740207335685942061918631111410166737412587995162574268822488857632803390488236409410821653735079512403706599360623351922254662372516379354527418549530048238092102460912847491260380464592915022464402168248571050729533458028462967450520458559916657294525666217731025475460348969177644000561296293128470564492355317490860298924896279503611099220941999955460616297543791339720541160101066976439773538503906149992918417568083414190526494846278608919454560331738044858457494511520170475706138108162701320877490618565586163023316112527101460252622776432802358519506411176854012548760283239388777399925749614794805553157212381382645231041300507221718099697334754927494214532012925596344765602558184296721848584088790940941251437001720021406510195565333808497687527886127343937875076246959921492569556260168795830013337295644186931111314789697303357172359893568881883366998227151061311302154603661691499528653568842936912318563604743549620012584597061074196867457585713707744133846541070619635286527613410220213808995782787283204804511368099409853458743318371240036421112358860446877395113459985368763931111804114763064919398113226967043156125354159710987231136405560085633496262107537992680314305321760932539686991869426501623140895850787122010325458721759174159886334738469832078903185473588310390114312115414391739242735479098927188945253724918899458284825265863626114613950151552879146916255389285025128244989174280663532180737050924091967483147235200359468893380439542058434319547644663349433910666588458565728219201298837020354522790031298119898803777826801738842472223358690902050853624550690213974705359710123806666399924995872757620283524250295853769972482384986271362972151876192662859598192832950011790355396916112567096513352972790514561257011542288514374519293508925946353562393295072724306891459184882304867912900255183975566319232622607254209269754545840465005736039376520168617015242004075735844481341375128615945473858908803795422059039868922745204802195866686062158017833424831804037826575028262273531031727003824505161220910499626281508112930320321638270439333725923335548710832735560888931980456174666835861061864294537232485200621680149707685034363029795720609256270966669829747494833229366425470490991472792925261198214169224453647247597932113819164822248118583242474642572626903059031128257604370008792158531209376918498597379036702686364265459354122327173178569521933667674854929033243130055064771042724111122651240970150349197414997174071688398443592926458129351547567430673883088864331740311376185884269339439013062326752270584566993524142953359988653844647594958910148122374220874639688904034816893276437254215671815700395870567616220702891821943375198934439025743515575604894636871350536366244069008953417203729056896237751363477545401488173412702617700197802840195309834394379102411753615078017826060876166863797114852909511261137025306784702433844692966201436232979974614324860414438466149050855430249453713845860428135361215311258761664609858158989108483619956898853623715780730268271727387577589059587387779442537856289604393318351537592361058523935998858862762354548096342337292216635792956198440899718280614618912330605669534766258206342848284224343391368745858411385137957955799278515510669676085315021226740615917671978283268015694059003755646983188471897524788462856670375978596140253053842772126722164070524781460891087275821570859803591714193467196906821519207377991878896387166750485863026305793365028331650301667547613057853776467719507224986300235073996667943007261666556348239080088694133199549059615066786471661794520733540898203367513048965025166727784138151619875998078905705616722648108782328824851099702873105519031486035959099473363062814132797286042904127964655376737299966370630226638369493790812342851660538703839680566953459092945759948849618200045436833877366384329254200673623261807638869859968649329056219857075789827971837078506345623698446775292473363569493531445407374773775628331237130061536088394945665506940658518505871563910710091697455771324650548482948657109844988977413528494722270280238870109446157267397235679510676938157665725783409213472973593500627837935088431317102518205465753299849687884175954436530095378019233778679363890945437492539222742100443654773854862643932609672864109808976824089109545308216972120663529125182559322655194223197692809419502336311054757664061220692339539453557501694833103133651946506032951774263865438651091724599175118690840132787587775028900518306305838762732046199522115746058719438576112349364960302648656807589587419927189728570511021478191087422341296411186182825151067708815707355395164499619943284315596757003814338251025510909480226133574752810793880155057893454473507029749102816734834914953463450397674233531856037099530033834490387511869293300585976821612742587242400042453516188211025802515061267148652567533392530656510601065394107913417884185348519212195281497314514939305146379678745212377464460330544404378340369570315771721107186988976815055823910319715914619760811382455255339651154991649861459460092920497710982349765952810460164028134316062508796254798261823910623412783576950226840052643386817814043363497079132457316840943983695136177455766490592003580408357577348506326592559611653834810763595274657142681358408555166182078181808679529015055556143809815219305919442804470200579710196565549919958405695058720985007284782434829909262320081667488496699653076830273842804754955719230573113732166461058342085698569275467347984282614640753518921826130688350564887114943561375242646271763785275879255504278833892572214195095471488072214629416130551121248809931403440988065241283638125885636034955772333601401965345450665484639934222238296554459712109445960498055308281249973071360713289305702180280120788197907800747179076109171260267534312162942965350104683555575663247917552760894466125044156805908091284662290328630215699563223882950656784525941274458033288004597482261763915016645904282649453882012129396671628055241762797628904278846323895549041198414074062863898483402340453155926591690056956417112902799666140760893159960804808254438007514842390666660527859385125314960527435204875271004636864411152583316970982376608385144780483390773680961651530322505396431311629748989956186849650520428543322576452873977262732277352797753218200188804434030364539627675326853884202447400379592136911972963119933348849800021560827055543460744318075148931523023083719634355652082082315443312030510975189906831792992671371764638252093258471315841321354281901335276295701231605712312635594638910401318317966922794948306345277606278581568147676944975826080699980945972872678612325115452128889681070741075409964566461324323965030530166115346974994266868554345713823899315185075591258780361254192136784276765368931289674437735274330531485801335212655594278492942367530638063539938960417719373551522164213993680550968676870532951431594132168859650459722496093584124814965151054166499466633499169877403464100050787237598509985004338473113762569108881621857529409145208676464405145652797106369306602216779729350157777396257963082204229339125126847854277034394438087371340727964438637143632255748302690784221721870724661760465281165493120430419403005100877198301136417167758952732112234947797026137186037260708130747605920780895049330328257318049243635482472443132115300253113234378347435524655467598438036126158784333258162713437030382426220056445545405043330071740614437992055068491069107555661647193484813539000600387768578105050542749390768509748624194899168376462908495023928162373407028818070420281417626042853954894029621179276217335419241698627462018633647267203827925393684944899933891805383868406923893483492477237644821601617154430496127941200414637180581810660384851349756773531711183729610696200878862553155376810174620815683521417843691499266500738883982755127675032142197892641651972459550408862546245939946709125507989070619450249000572059906007814757759201556891474222637612948684456973630372258059806890934543053258971849685469542467146463626762270446465870083741634251751360592843162594692900018395300635537853568232799152139273060077362567849601357756018360065887397188284251843319729046309091236071139240784140636631639396342394542237589522529550918534381429156172193577605736871533911220548683783477949431548573385310255530417570481256518000666201096832713671161721677405658400639288336630465841283242575120727680264547060781427125570103551182936531582095353525413804802424823535982453591655070735411632472848359664112807217183835056691497747894916448159464167819746062410296151143959424339811772737360538738096813385771165325182497825120324859403795369339710458033206054099811580289541353884645305359600478599983189506254969646052751097407359875277906686676664595963369087666710530223222005495674047971226273022300508879988015900572005658920095162934008947845879985275017548462788180594228239816204841256063850527857319259980634301757728728601396041203795131546132759289256876605320633055165375532623605624175688784263100291217929168821015410724613874744826370470418706517912031168755057963663565196776128808197996064487351255726556117021028534946750298690824914035825959154478440495538839879447108173175113839353056031393143661281632790767728073521753023231467637920650701354615361504035677598043142942473653913827825701652220024829390609708080353922545589986245961913572980055930841756353901276443519802278356721074699192940758480744973302035074328038864834914058127276423911696763182526090314337547100487781306319477607171039865023630683482134010834675913356238581708877882029712734548518952154573817305597618033334151807073748155247123228133659577028465224786417161405076769310396186326001002288767647098917488644514887487709037741751086938704313660739185137116898261654513270460699303936575867107055537561133617334794664923853280692049796649807442429593924204692659976032322409419213417868707773067368442208546909508731343067331764461758680477335308275430869004329275905606264609727004637820083139093585143001602860606413310607764549578269125530824344314673799817423746156186128044197871096493281014796548597223549172912432769614019630594078569852583091633996623192348446940120243699920161781726062934300087461697860927219608895860937993397509658643194038846112837082076226459998449515505683104202023731833270744203139736115828550968894400194879498801059859350294811442562405174316788112178078136142335793829044186266986383388318711521678485360273267129943711619483973274882844897943218431791135899834283687437907780801988180532000864329740162836578961233141028836233739586868065085276842869618057221883987419568650456575138684915684513605411639331464480528673461336449081414975689843855561185023364348700886996318999091192887322916066851727332230954766978994467049939977044353879989019793814665422112710794653826496199230326301507178451898174763087271795205590911973214749307694894776781507160443761705691794341734134138513087479541790911975017993073917008276126940688816218954335712965938088126091923994734162614580759686964992799790654575978777752627747972940141767616139495649188591378565611631581111313868174171621604938172446520822910639719683831851723624963333105721576309329167151647593265879577116214539548249490275819363100150113304411371035417464925507994384321350745640256044077258949511022533373069486692831327006585209219555677682013670298757220944936854341819439097553963715651259732455627792310361657809491640774242344316567163428851155405034070294401589031491489938009640227764684249516541465361620629976520430289599201209008180625556850132700950466121782214755937893082986868962086952090159327714655871439416889885442423434186431426144822686720800794739917430549261665657517350049833858704076595383239367337646531412088989106698782086076608482057543216924691089709456787345144070386969811710284539476563148507889060319481889872764291553703851003454711693006748117675647978269820045318807139391410200027599933923492302281606288244882249224432926857362270867136406715309236892371887648761883886822594550893797819578312200998928232239439074228600198275460346291619450073750965574389077841755608609906513281289824761525668324140532820708912362137635258392308585752838217523033038730639771756650975665909409129956172905220039667861408597339993193891185292695545518856641697315825313890629900996302632198562300075920783694922890263993438992839622473034378747927773167238600058385838890223628955466191190043093446915017588715203485566926085223441523335585260195433176005039625349200947773059929299079987443389064200169456360772410170934209201876539497301768379450922149632805683552548540151352350384011030448100025244808988093668926174073193149834264115817249217527168858663853096552777105522463423186504678208560419934920481188840015625401520619116728019540833537871258980888841973615626965622220072709539859346663182188246120958400263565801957602341329124802541982127057440841196019726581756261719239392940700215018829806812255793232365768795090502995976027830328688237611159688693283699928424019603650768181324993228544717612015804951103150038510579037646584306395110499807041854909533264994393271040171897401359973045625266062982256946031490349136334450284427448728958138761242469457136321028503513149971328637058161921615596977646517797759363175947313246897705688706754633401533387415659995746016772561129478164678405370273407676920751429286507903193501509282790039828333873246692409487784963668007982895558748501048661427012253880720821815110361629076678350022323403116194713560853130978787129081454572452921450011006848204555470914729796402997063311712928221668492413875607533349653467884844337460067884851061188501749218238838331672299043480220697116598054753890050970721149376602043518458047390762892611792839992418150986763303589904923921340790005475957182117759801330286532707170621088695117834828717642997942394927436075861200825391657923346316288340038785966992932709640353248724559406786297354357461988821540674357920421521981056831044609188091266697965527219151389579752608459896246152223413536538078748429723184938534048737519456989819887670563833490222000261668991618027344150341477963567035527352338213378833725367297212242251765538887169855095778287875837847422270053603534675670814345066366001505034688144620451976714318312596984509398200694572285413959174844832655009457189037328445044449112382116139724270124505754789206388274024418396150343926826819962399484963281446529022581732751217000957067511838259697343043922962777602877528185156238244456047659891573592085921583587487907923071353519206710112952584859052555177652907411158437394629558859182991691240834416156657199425267211444999884292131644521311575018518514974343657573250415827466073976339003278807237628696321676427673719657153474610225000001883845723963684987167806208157522003534800685950892308736060899563658981870946297759544940838633364048386689924782444002461353114345299248841496197250056019962845324762817997363084544224816759454800309005606370414720910780517456733788432485221774194031074210658034668267563474261268810234743815674219228936017970870066218659855339513656024241432312679812434249005124278067920704171988724797909274539249799907634363462925220703621463723089047616261540018259736612893604075042829993713653390596253685019526794172375220323141749528637637419433215728315547136208190660911715557042393133172808493391230517019497735203763014009823562548817948955194913525965856756968919079264498163229875054364465424153709539012468909137675395752612624950272884450312813198852938835264649470474072161627934833127754979008234881814141449222485435285541697500370284262842883110945973897254603860015481602853436075711900980014913124349349020589728870695496426983827655842797117746526840316111037381632412657443090354209508443448530024442236464110419411054632992268538901187973424183179629199653388084033775541776452040390235708955929608897664535045402596346806708776602081793047117098405087473355757927636004473530872035302294063260988203903296115154619807054391724025840874230046065514270944753524046827993919724767906351709683470312876481148724568796410513805540827119702986336082471860614065088232226591520978202231399201833851885827363423651068020000065332305423573227734313375587893118694751712043290577216630952809519641967914988023383559292674028468970833295391424001735388909679301855023592898544544382980626898629416439737657147922982881721934138807572994054680752769417513751993742917696909357514736168555640884765796210770685088340150063450187324953945651060267888888315025593912085259243838557045281100358778046596362127240701420915919831470208314605097962731316180193969415257291090293318145794441815380513150145948784824892835906210764214210380485544818260825950941055726884062397806221881087237558635422562972309711494612116338133171293589446206614410141161908392627295352349920270018683983190467000323506377197969220231682239254680626395003285658319867880566658995046180934993228622822436047969747617378866263576061978048951068404149907231084026486653840597990813073537219520488571817426661640130979836154432047098745636724033870749927845297251886890939442613851396486840966923527847078016100318561560268238029893016273862232008549538946061620127426193782233088676702443691448185638394687443700344876589042911855663700519335389137390510325025897837309123550089674484546015103387424479640007828375883306358456645951902783538708013233816711900652137433345205613584788840515414757160844347603627250793421776783986646491456295707631370998770713611469359351367208275213625456740793919317296408555575026908480693176752684332805304163380799467493618267295694738716246225236766088993168453141269423960386240245718245565543969773717325458532426592389789174139385871902961154040311229297647699922829727030428228646386767075931212135699072926897310525423613682289702838127598214417518161855283297025453341542127570200171181887763608715038529483839807067160799742946122986390297430881021996559941340851038061788920906935079195849625274085238225367416134490977146958256580434458104216467964113216776499828169390306311765092393549401275532578355837496115364955547227476461749627278070456092285514446988027181196959888171874058275455495805897048862544234875303804887113264977360557295322673062628698599731951637664968827494099634066419900913762538738371052370483658909280660959954424247672548843584400962015910880173911249319069091365351556862341701136002924261676791116039233512091676090850090461828240897769058991571658651441358222849125680132772991871087668980201108427152704086365068642811278905373281898624885483464025020686625088779192569675732456437604097104946618108228926055377134000576577137874812552332225990529462305641511958154457242886046942359850081251357884674560440318308510220887776878151415519778002737090977723302518462258772303709512102214024970817856094155862301903165062566139524808942729007499473121905818146701396105307712710790527387305843795298735426422821595614753852645513763502289577691189465185418641041267291292260430463389223103355553054911873044432009588329362679401792034404157144365772481761263437897521732906670865889847632683003698505763052259581321687977007001493294786614822220308526802951341142674404533463374714343610346121484220629965935299567609470921574200639140258314317718372173655406531035708185080823820019925707075632510721361045389055519103084468628915308664550781733025914740254681210109044692898172407796540199149082202955221656787539597972477042876781986909040227557378956466410960442634448769825674468869173860244477573107124192371649083817367958242851314741837449894661422619501002336995835218748109587648192212407088515212309641271273632366114891058412717249963937165682045255841365371162055911785862464475045783236879886482234296871242171222837350377485076571089757860441604653799860025834619400737818706978826300757502562360837934612373619525134243251807469423472308219357197362592703096362893321188862654279552854962156097663182662651986204255848408199805824508511994798507839780685225448930463371887841146228323013932417692213017692390246805645267921893878104402337581068209395857473578441875730480451775371594622099308253415952095133333593506700964684936734960334407191516272037572149914322439566277379525873475061986996535005205665575592606457404258710311744583847200932571761138185174272984786803322446176138559463831680734811516331166478011481398023779234386178713058215377830146230940816287149122493638844982410683674785226089879812223625341571862942875491478569721842457216657297085446257806190602797264450120876673593414539457015729582760784103085619102871385385250314355247935381001054104906254551277721471249793642353034139208057416446912120169020433435004470028148008934845243922803822929578712947124834817336315916349129712007121395361610620978435893919856122235516532836145606002234507239097626424738581626612899435071429655056963522027307601099228756413257995642051712531380793095673826005300062436029349102652435032740824863443073388897525720847566774754186965717133020045341155193750392555152375769318481358859012528158512689031163390795731181825551417864852464172317415352649807621360793505336686873548937931169791214371067799115637187193872487876686814149252174768476165012647390123007517315292639949197180726372389385589747009847017357290464956434085702106240018677947695225022912298032039341491002429085623816071497707805904813938074006390312595670101648323875347034397354290409902219228837471914860212038880989109920102697363098347730372025962719026109344963909145169980945020189064641048383891114005044861024967677492816758812656556164681310099595793174411083363389028156927749252477899494360047879048782374091638406472806036562661190393735219889488484247876248339006572710904475827370793338339637919373941440114959068433266296287692647598549217007128419180417301714426705641308572171084018123279652418529805105876048634480609335680686772694320082434357568563105098756542476301771088091771834414249467624829160953132495620884545405931699884303866284182668773959126846131148612826229320512922780323146240104702553157048749535678241568485016983069227396541622634957135389023837362215069260981101611268907935998773872828825661898134394446818573416071940645220386086836780020190917531430688396208517243575209053659867329622160744346858195240856262777747386869034150377552866183293745592841448054346744836477960183296377432478771120539077368628889394482232750315830756525429727312893323726161424591662749140177665964215854434601460525080517192607868083336498854006048268598930672429717390804196426956996365331372662915351569450010928591591717839204407758585859442220009755069969144674805123701893607992052081507576386450199374788775025808827683706123200158719207562361468971882385425102424722314576892097761129235451268461530118543309395965429229190961036097876149528652441421678354150643052873968627218435976456168460965837776786984189014865328543378360116928003385474064376231213361561755983070618856098099870683707002029548228328746297032044790492120217358812683670173023163579958381086166290143158012278982957167686229500410720794417205699492817088188934248805052027183115290462585835391022191295957168347740510204436452251745152786685369680487231346588718152173472271619327232534638246017940089129993235809015286915891429430269729750508639484746619037540656330051323747116937519797291394384049864026819972468198904882771093991261436863349176496646484646036295076500776253265610213624491970550999211029388844348716988302332564758935146928176818190070239001184332330064673728646624345133610033379249114950088196685025459657784548356763606693915771633292834565597287875329100135620555469439674148829323832012837618069234703370051097004085689915677975114824274582519247927189401327014903728069771677114595136153624337225938768853903700825768617011776487158621147950862907993338117044396654364822420749325636359445403746772711162648670860922784974681404272745744521888022396435155092171072369961254648989656140374256771554087952074450800374438365419922150150362874032493414191090419107277139929320001584493205066374824673636386970799441674724369978439357858279532579237806951542726040884649243667079913733082900874859059194883265541867403261637247062580455034996912863025963422287444763476197962033279213014409660917034223595294964423189032619919242206100508504128820436059851514033799925348403952375697243711921560775878179693133353646085786016904490892489242618486900562723298886343034108625230745371437302487455218633161302384802493372589180492330911443067585680770845125946544169067047569409931392088008823920879612257799912473926583266219993412824809211680666100805548610562969211853681572467284150635715395089712694266550569740881770559873495764487162228326867520283248662055812994354380773315651297018567300188452375703679689156577984525522771129066485518782152478912281210336733930219293532184971983284885687584862369161319763485763754609348536188331490180794393068707807152334600337724877728607935032489551177220812498195632332114950285296693709565545780796823171251031972408933209636694772045056475848706990978820017238364911378493293432679964457722626172798971259189324609204450077603764238812714446279027940252587570161662405629757284801466943772375508970437197924461724632789651124604322950320151681324871064031577481147082454289999985685995310548647497851940362247853154962578174549725150323863969724660026029757972313112692449669532978569314979795696826429970354926729988125585768303481380413749895997905654488583173110275729670497626185930821793831396021008244589647123960209562394050351278402800323486619694457601833925341332310789841374087870237564095160787288425106978225215771014558765882430031328042559580300213079329480904458037004197068743187638715904170974349004490208927449253146357577554929456998748959823466302871319000895071202316913441200912235084405412580565432933760677127592155875920140655137439471913553395266749177213318293826788156344895551666560885074679570427541286038256296717487146364993035042693179160086520542795487943377813755032269083292469310998903072062604838950650588661880108790599207684314536499658323464242188455648807975667775010419131868964870783946137261244140318328455051539033971746932308607017429287145002677684800648333675875398137683511971851048958554087132876009163557246002063630756271314759331964951334283271656736191613037978098172589828245125393226734854244922729542222874525707156230611134022028433261529663459700865884586843757151259805931391530212314866524529557658059056526732793329702710529609953055879210378481367253900124408918059084009675180820974454618458136277308140438665994486401056448053550974491311066847581697865139445643916972349949326417945432428954909719831281690663918085157262765995029538690271617236995280243715067389105180860423867116375749244603159622420951551627549326106708394969771532051944444464195216093603959649349556864425789856595045448021400757141753736818708161290745922515670959968295112669642392971432265412571704935022964515895304761389814540285839342974193747824943143096204216138570465582543324716887909772014716582466223051915762641420233513659225279321844467257619299486058313172463190004390198114457045594220492011685038783773199828925988171855575959553839769185800932374626762908302965911743653372747381722230574314735799224264440007604263915267930309942997318799763794179807095121276225269391042309037342150908827576473213286784956590358123241856839978644969434858750256923915690947383014083345806425502913833356842802532789404666222553367496443061686383679364891693045211967536923994631058563379782955394811418818973418581199224398113166489809203654617055086295069055903625566298232427157587380617153764293957398769646501225090458256161980246680293958829662853393934598140332300553718506527497991041259750796375460327257054006277959916598372255017558537490078140751358535911098074851584765793276783817686455647156742650730921361435566812613507484685746407835539186524487225061136153117879440019922810147586213987764371240101515494608085544283257516851980105781409582716021040344218512418043907423214170192820375092191245774055724236751170841141675655770918836132311605689711822245276363716679661500893338086034592116140667904707055066379505618404917922664285668931730304220893249377844284232925036136351838915044138719632872468572800326849302219297140205423848798710769339940356655030748851554695278060418250349266687749705274261948718867768025523231854133285567273535660906330461746237425408327041216578835125538295695640323371727455706104125282391748196181849266341994586280971293944006963537285965973586457442329015020333513323061252277562980202127508650783403799416321716789392696351712449812100314442247272914349606912042507310760129992390919294982037110494242543154161946422071389626791324025192859033484218596927312872345330517213419027114927497090059557694111741608116391873465967400276529690874069288712637602549233014949955270105007432364489890428071049944687732687081863312342025615662038849741397156448663785053792005807624325727366139488591068693283002273182297785464625339641259853883111053641479003729115937037206028437777568157338688766698982875410951302518619258647527446855937608792842530575107417944304028270441333825372071397925052889297298247612549118422156809369130616920444577762560418126856220260690399972423046785454489227129924447053621684868358661851709760490364440103057462580323230377437025035022816113539970689885959893429381132933121512369405853328477328621798385942098033392046395922898419301384119044013372967393394934649390815960194130962137446536533373785510133851643174640580067192070811384682272429149520999734015808272204250405398874946016298377902105754587974333507631331999613619030557660066715551379810875732274469037007250390426161071511037059667249993509987990522239657751056517373177683463083348241554230148650734841422031289412482473547219246800920228363661764217933271275652599667025349355195153894432387384789599097516844967493566277323094035172083865676863994905431459329579613130788072213262431259233524373939826482670079396214955491135206470026027990382749707186064316871446243258120236116807370615060145374607070279723147536381452885657755423410219609173419545196302880169298821282503048817574439717850613876542097637897634604123136201083308413407628394230667157116368655321249953724780948478442102848059454689588885458842986436519323290729693428827326762987079680816416358356950939312213115491670840808941815271373278057062086277016516247657746520414315359050355160280735887561297895736040912160316980514010845696861016588242645463700028997887689678155269719655790471244437589849787488535030636915407328692964931623647177274701632494727804600870066875022612159213236057408958143415054163785179193513825108585179964383753384540185057232484843164504848482430050528733642407875037088016702492051261578373851447834616463337988709940394078576184084895110047532769943108104736212547038230013194344204735994574041729375648392668048169387522509735025063416432834628666711480127353024331272393083425695337907153894853723475716931908006465328136387334894777177583378370951984611307980437552912994689972729978054984392997858692553421256904562219142828436389411210300741937324238152370327604814349676360086444901403396499165763178701463102379970089779818423783119451515143792561283143866584790648514231757674337122586052422379797388699474336891537539956978208485877966677339244694852589531251885175255622371796250517934209579344944342683430490299314447351051759083148253063798582346575650874992771355389609044973924276294466683729603076711349667855362335627248813485190688187980244568027422981787447384832186491678987058577377578635196055165894509997596359085109620350747525222889865280729351940975288008244900965335371534669299674753031566885118860695371484859785319427940008694189247921787988470993765202257499678793034757116474635656156091495557817226219088244726233930162912467611152071053210927112467702799103582746881441399502230637322231899726769762395278423575821881274890878178603177029291905897346840216501829985957427554327622105381508971037682885467885507023203114768446536298507899115493103669368327117445254721996939518340149550613947602827624228799633397543828275786173951877969630510471828169078553668704953444342597408419178280269599591090438770960694664983221996682203979547264047423006325117175339783031153287370876572075133746988630118774915591783333961250311157025304809453440921933383716254133793406042822709933546756375464307865532189517481073263396580536789199034290836602790554175205214044233179952623955649261785014198327011614763650132291443785482407513997937804782293027691917964901444741161652072196958843003547022984253130923355678049595267401212196164075527806635093831913543689569386595839392749088613863862310013155037523878613060932315730324635821441771395251438887848425371483128742674617261215829482433822262658119369057764307100870557155364707316215234459104591960527178583146305039010115978544089854772336020964096828903102917621984776682991512969938664192791064620207361182858376503760733640868386585992928150378617816239990227899198828614756173639731155999579940180543067481982549805633430953098124274967863816184579799539294288578625610782904712728840484692523539078896024051550380761123706673458166833225185971507816954967805563070300070841657300043430701182341938029157351866226549560782052146823668477978791914863399196443980771436318799908031878942494157137825320684538564437638300506463446042003454209935308196588460631648298117905123879506533724393366075833737260647829801856059395678216214888137145695283743339906035049527955395249131513016246851575447418166233997872073010809620132708786679253521045979228081115120596585349950901328096766677896547639392143217300414215062607159695029740540611611376962595531425505932720059595411632175511386984480824357206075335709079886240138469151217893921652651423619133915831100055559669875281161177011931207478204981184060711617967695259201193591522665158950199049197692193306147419955830144548418030314913561129834746034115048204353713747500381168175336090058332126062841800359052161258520975261747193036336513055288367828727939739533059418973396662660379837229712479066587135747923808784159267316435921138796127047304218726665863168047710320686383792069732938952715802984248320237527827243984188245876740457667163855686787430593993574681831939467033701407448862364678005580731724659486503534481412000286614694577322525646492206038731421487672684779247527134964393541812810626980834766783262547510406335485729045484455741556193047422314894653616551280164846134997187050797442531870762557493799747468726316118982852701359294318379044734567470099857537781804945310768802916795847470286144130773634970666534148285038041438966930551692656236311811721121912208222444522968687961812024801032389986356676202264218787133538593819505702699795101215740546598431698647676625951048199829323712774131217216099774914319408322865325624515259879385209245663840073555245081074551688459262803030931175676486789537775260236447686533638232850494388982909726485064818584576682448164708532577062861522225099730305543913006314117913584249316893221797330936599784864703638422189010787353085245359891191111882245061764498587714369451238969595755283251857625120710566939676892502416578023478285587410728598887784255668510655376894095215154630982881111711385610539829734610347818217659056039488224475938588158571865093976575204204837720376251147052591862147969962190838840116069326492312149399064881296568936637187512417772760562675835032294854571697080426902046670513175033840522382136270532292322372739583797008105665489345659180120191087686647609009888155050333827366067511108519189822953251419334884395333371619888907665938599130467037931173624805689010280825144524792030330224662945932357716514082782009600454700069808180688399609012094858867131215761267111193446271817997301017258360904188813049569148879135986966964363135106839775173362369008499353810503898789469103063571683706728074684079013925345230477086611087382599806751380566216306324159178538203521061432548545595391995348272518300678755937792381885015857944195130855726918412840871075889610810649349076143463006556031078493532854362280911949060793318786834745909119603550041051568106937948602942645928915921631261451064264957478826419507536549288896131209852530822260299337787408545976674229448870571480337546471762610711144139516290457281339634982934549573423090029921147023181771511699475350806995867168865304398881607629824005465967455592822810150348877501804224423521457245851132421976704083239496358645302863255647820915991360181765850043583815576518472737726516000762023637762846454562276174345152533377575201583338150502581975018644954370243720918381727983739768501863193074712746615129998866934008155392112192102990971788808551371438409865673933457279796822126344783775006028586935457541715330964846997384673990344971882872491593901203154887559085276044629181520062674613241240141448608578357090737981006900589691567419271133689438639685699889772993645148063464298023866659721829005590325194110542937431174797169901207665541708528663519495565025702993057595977213633359474006829485543471562487346576694469989713849613966021315274735043333803135884966615087923120790954037557339471194108447768531032955793659755598477362450336777512052766315633685938214868210257620332325276636987606361973471994373279749207699266528756333648870085177659058155840500615913001167310642447963682119254415689685087832566762005145783704965275228679389095583582862629963454821332412079174338981860399850422403205554842148383000236982675927781891895008676613083183836532503612826200533619809911041070381348194189943718915044099333036437011167376380524486767185738746064757535287558682417334941037826779849232309163373540369487035835952213557068547628098030698261994559627211987033982308130376235926780566945667709164383825811850739285851630642101260223555153173001299293984233395493378579290836861378018905522332787464021338064460341128260122033801717012542423682851265153631398607604632481638620907230186557281374818398909647058045418157132592403499176250733254341939069448302276362236370216484564511797965699715522945936758380862423483575585614140585024390558747639175293800288103317556122899504515350787426923657388294667386222051419524488762872095885673403038861512912844927480688937408446556696277957341445477631189455563795030040153780657185250424849063101225448659800273804141240172629563127478803508160187020821744957324602867073836911172458094910890272259821591677542712084371313210140307083155347884959220719150778282746206975190211763665221860319663969045290228420842653558906456279152168529628899100656344374085968929222229037330518641564672981480109473315000926683837063640737102464674770705567561064713886014915142192001929790222004016808417790473196576511723764198887286169230700145915631258561370671613005480500418270083434723112538676273057170970391057014426181474456919055990190848109796935780801421892263854991655566565236439444622518620387929286166863363256111824274628262348697865156121542153099755711856264243197869538711115312413431450631628788811668088744042497215952397202942441197833790037701224471770958228750930840601821250082196636438906592690087402857402432560167335080612520769181518484359221002220211468468225306303431686623381197682598938384601101479875043939518998882885854404155764173914509523786085952185010069823339792569024338938065783186372060289441025476358809960379164139867625901166842613865285747077732295849943349286284236571216327165623590905091546238682152925004458979074921455906184843464863720728885500459262513498302424432831439629239253655680438255995747463366321375832162785720652252688470542703365988943901350741832255745588257440122870556639003780102092713823246501580096856126562978809647245197362333279003554549556274003912285769566490823570768367369901462545087433946831534353633259903651058498979104154013004164135220117155853333818733383106219625111077743631354545092666547225674606600003166390399046435822185808039716540107571417346168870001008424566032276595234806732110499089789930901487810400561722286622215019004731968416745998304727349318857169423610240116321662451143821863185982608823310648805072435028187415180707451160843919236514609176366236005025621755097130583429972300196780205872993300217567657683808421102628272818057847396129721899638118804362791967375643802729899534339318621164531578781965727499885156759816823220599856013199123354852402061994283747272690552436563840957964515670998818401953707726460042766483747572296570938151498222489687853732481428761577736698016474504249609946633580289111418247146872717896941472993617001079824294344939738432484342502831246033001127520155981041675762886090239794363250722939282667408217792436057956682984527173008334092238009791563240030519842427231757108066249364678098200515910136575356409340611714999078211000867125329395284083471240364411100733335897924717055275127573629799685613768179437565145903305816501059616153876688470638016946233693602384709794496693820023842074529851418798066506086436999435486174107169693600117990173135988460734702487862021147961394154412560873356345759333481442792289655245148716299294443503112140931246205834442449200718036101301647036686340218662309757489281084241835067125719480629814942087419784333144101876863590555447378881892002197814203158245217441739501204120458997895307961476357543669715990090632464444128369129763217288289853111011448615916289313548385344864707226488816786667811796889436224492152738485522565104134511572781326170576794225612762026170278653951029656482335379290798099607188327111266629596290323265401739874157150840396197633858050590059736846669174569318559966325062776849037188851652509561987868995408098844395023023557853245949787570660937140358629273910052437292892419579660055487526971143761338213442511203423741243330274768904116887433891265530168371037523038700937917901157278502311740003018146700075262846785999458833747291342755730881367879897979975240954302443811690110417628273556563454333307743253657699767220485213362117297597318290180931799616861262460425779068480509762040002141780004955490455161023622241180546826302973378453514962060728217437919380337779236033045038196575566625252050979013149640414078147426688313301467169335453524391729606317981294054426768368300885857688836284647854568397086520103955792405246439662383939353162958111544995650059777189322564063926357318496106003517606862930706226914812073267696108190258936226613159644665207058448982590019516428141504860503064469882404029303237812362787779951487773234518560235601852512993733199914985658028802742336349751212110647473799745083854816045878578997751218706106823574524995201820773989463505210597881628483634231465884460562967967437092954152909707780546041578247990033685186208585138449194226731698284771518905318487169401486444693330332506680707468819432284491349359482612557341465111497331009280577089928854664045100991518821682047244678369290400675612377132825780602564216051388206055426417619174500647801477665125554157928300492614696409248209917054789225590984778993982138193089821732353874915668824605330944443651525873097993744335281104173027082323414115169598932134098233605421254193601846782774886854446154209969075210215433590560643042618453246677415357859346151647148595527276038522447724388467289690204955033158364927477229808072254892647809945679089657130735329043292462401849226744301063397045077609316067450377117628456066292371712970222184162180233100692783355732507980340227914016014130190412723702813122501765816465441918570156624364018731169394024060984758490219683184169432462720941870012910215060646158534000257283510797268194739193677668209769845342332386553186505254357197007284999803441877002497642344882946435536269705150634753341512680134327854980584739297174438497022349154768301416915351130050819038236914791876873204013534547589450781237173482072934132868211024293174742528518029722978474200006973771331079634065107773351175376525554060057734493355094060878018865301065510239316972582418848855337603228240196260177967798498744041400325328797631578876329424046729797350370456615960418659016041569486110685206404543628952410640390580999913965862561320630890433824584865396151787626732703984245760739891584294964507287186151247396674855284882332915761445859852148777889525988443942404923089694569217253501667181870385543874811156447497345557709042226365353581474421923759152239428652643422916229419845981217381886494613103565118784706935484714090883815261612101109337667053098058338646506336877100073752954687383122199615725011782978193523164794484141792840272081413894680344269149049145843393041525615457866803993790578620668657676764689940978270720718473413525849537013405168187373489428114876356499927793612495872510668395129665758802930715517078932570365157575155401557784161568731066933679419993703202765104832434170877838541062181072824774067819948958507987709781926069023987528784927792554587172288411247029938806018035532717707814694063641554764053974803974811973061481126481641007745882764322411331878847618369983861415044835920772510891319412372504721437588774247309851639453139754944725009964316648537901527702688993483812600046721792073956620782791357509893830095267336266295021089127402556984063116471637801264507130040614240513772722046304008462872942403110132448222929361592544293951806345542580362992355460763955603636195077364372281651982399855822344852997721540024796433450558480517166983090688133715745273244835318116036723007036412135169236005269303912894000719394004679991337596267074848967935610882008610370316835517175728795664015185863407523336492987625376487356963466403267438103150101652152267187935963192320273936837825331017105148682331422923790131377204250367373275000764088630659042606605622178011377454846511814687023022138995856968151311460699350953167862717173141479473706341412319519210664388433123684723639754667832482448369058804094636552575116949411711711029946059607779192112830399757096824085135223500894143641585325387338228403033652345171017484827481894012192414974889926620971562798763068100920469547279174893268933757424825446662149641250952624087966108079815456270012588921070485067777134051235422430626459407815325875659240831332480679708781579435806094452511314246556261704863857938372229416962033371641643601814501971212940562067105680297059737299383530921563307739151106291647658081732981598464733866702006838614791336382944425202726857040065182313137391578763498250505284896141219236957633982495547190005787829169405720339706775974292766387281576133267702656189119978305565670295355551858336617085160651689892721371537189096703431737457104177783123383692480210521368158457817670106894205651353010817807042456624600072731974555844681192060462446366835807927787169568845919341172250905944291999478931312622909154265201203977013416673893730710889117670032242376081709544133392797374129451374362417976236324231723750518466082611208264993629308689292405133645369549099203145400002736345680567797953517866620663563623934590976144191316585729716334895028629391262090016911561666369074255063014395529775414107575229293966281789025071732332040493119376439485827235102782313816636402526395481815292557092332433795549146586420585707172385084970852099908441234629874819619914233522031368156630405492175039887406690816669464263425915164321194537904507257769828773561877344084447065090124849830959675167130821875354952078986221450486014122562164286282451293607227069425544522304168268956927767516011776226074527495963405261180871921605461877369667676175725748699075429069018826589069674916214261509444060087020496582733958286123860614033168078861035548738301614389017660146362023348442364273122026468665424737486152828619444619140703920797108487162610804190574358780095020404784133916472994352377017997395831751330873898846960653767755435102353404764651541980076747949013810854499787246063864559516947588672506916717892666392746073621228341606145483748527281585362860061342668397496829431179336442588184580380045262966646353209200236873515213677477618906521012285673254723470472963301458503368145222525328034368314306413283602074612968943923373774388422385137729093586386605927730085834518727715198049128543994553757379544786438003532575469046066821388142910287736199733889673896387726597981783055639885004496829592591031701103167196067042424719013648953595858692920435084030431438681117685554425888679431546604590818810570194852684778588108800306567323335559284563654876519859639423004875673002438352689224916638947976543477826925747089010298891352192294843332100339579748178118723530278472381978584964009310582564561788558640187948475398720411688216933017546204492953302984355236114759796444008230595947463906949152296971037713623729765031984462471658929727891841654956641878314263974091565663685398655911899154690510157624402766744567963869531603595243263631689204481935665492489459204339260847402124617038226491898577025358808234451523143065600949020987229439116913051114969747221780714846415251567835923388523664895306432463615345970508409811746151608100883981423639123238489872832941183132183418728603560523230927142004419801530391448124002318757570887997900560868439296797254563813614645698370008259264634470605747167074836216071673337349400389821015160580429973489363733624641837609282724095528981662647008638190495130303138027258205958855799767166892173564163012205429462998604466950696779920144595360418822407089604316734244787069522995079531677889103807551841014914605385141593722538210149123683275014459022509823591158649517515627329512549273294599491577126398629909831588715935538690576208434087681590654319915669385229409898753329013212959379646900783528476295478993951149774872076473477091511634415735398812971392152096916920929216935783031463172772102774629399636548460344619232720193090106459207509041427244004859026590017952802747518423005928477476820145527321526483032258733071121838777650137221588752690192733622622975448499732137595612297154277601940274099915782988544881188586370003234201031820711202052922755068392643966619872799806303402091906041281584766320015257475951060816154866344258550669160660985116961768470479864704649194183497117649106617617423627912943579062990510795109733464171180545010500033897160580490559465222051930149599734849415053048968841348550667250687164252553040964874653255644931485141657986929744588994200513593842610950009929046510753553121361438548604519689251413050128682591429451090752340467682604487262392514818692270159915294399615914830621748690710718803601836384872286931552459601143063233801602216703125408956943454811475337257928087630500887900361020377611215279145978584499938979472429467327297943956384544978322014159664441357887472936719751680145553118532922623033919422866416824844785976514313342151345175513957309738798950778612651272155736616526930471148739911892249031980460031713145539287131883069864129345046155559683333525640656653830396603954007725370371312200855681492065629468020981310745180977924156563159295646933024908001656754401170590064803121253639228813728317928086793655567545280691950762576375350437207264192642464738835447630889288551464340673155880714219921566938532662866759374781869245349303606473922841182998722026678658917346803244511346728373342906697148448990427679940902585245375420044479544565966589429207394806687434731918632674686343506274318265101969041918641927506224841650270774808147375874188126669219914256647444675347625608766247208824865765605490129678605068887199569760242600457847799561602114190059277079231588311161744363451700856752839548846016759321449838372796819389947469894616124061860147239933570110560388694323637432720839970530039833005175753348210147883694701410989288296846095063252405676805708925242630382014712872244230922886309638888426966593694936944760901357881876073447351574845293130245945107697795643139844420820422229456147806382866196580663956720062850305781536862425888808893703196451049984694065857627186449290417112035661910620333005861393259197289873044470108709142060373286391276510242339415936585050333104045695337923793314193688141672452981052026530336466918652841447489894296214301156553852257342411343689768121882744200699899871290902477392651794989484394530524286427141846156251496590234628135843465838240884847351256578390304574178451831066406070604961377409679826093992219889263557489028669013392845053830271862647699271475554541607425202364562222897382693538359004032906533567615700323748634441721999395333590660039702744641176254595096770478834580728048425864948149790572894604060543383067368461558194073979715868520938354981076184372677051048866116676792643863034344340830674379499260352456563958335296355736724439384703268906817515649205565658843153842051896059994903765169785608593061883976866042226025169367794551985263875548055976030808788342833425380531449683265289741802558086443447688640916472219844192064588134209729565649797841630570576171326282714782120167487133071338970255497495679355731161701568529194249620143247899486578259945511285919865243527553110334403398459005135387816019957387657249680870169588304838074031889706076653552939322890464870929708519929034139805116317550173544791116068464091355049595639984451817172597157917439572116207764203034161777814205330915583567258777243439307648269095685579996158846891563277690382414256957070846445451739587226648201415577321434569763870490294590151223883594214675883164785711901201687863895495737758476306536106146167861529357411848036184192946586589283540913206186851312432350563744211230573839655521208033339346322865613410881315217501016042324053810921642627214427672802318293036369935154503133243510648216190770800547289137642807476021646793896354671284938793584497529283953311468613043879122407778723534819026603773622172458645000040869185994042571512291825079003587638329677406950524793744781106742222459587287208565446966802347166721789174263638912185444550258171581198237637425012267374047448465265840414270902021969226789340660810435260184847574711786966215598487306669906338761574482759825728855927104092698290862662670613278707645507916693612167254881982579349217151396804439126275385241033881423213741952463823970069890887320481755632937996096169189662235793323223561364311508379856704187618058040466290539790939314367244587692265313733636656827272380844869484907854134784563545553825132590367487540908150143804821404371952275295428872027914004977524842847159911702445765421342313372452355065202098138458710704205761224073364420480432416326029202439651846783208900073125651789497823272626424970962804662911247168433359568863277422153594306707139736888235880570551901017118074801185757861950216664710366804998262477016454409049802974255707010867954123453756553234648897325681668413724364575742576069711187872062799565624249514342364355179714072848605803160943429419154127881140072591305606480802692905524923139293941990077185558590356632458201436515969187072349936531326030502983835797714916877336908813165454670512952540614581312955379146146725934946067046467266542165706498151109726785160418914033792096378755242664399456809669421875552046403718192270403017220998941444082086875670502055142893598233143967912956664133358001812239577241268145438209886000068696692706804130000744648787475906143133598876748592204177740791381581943742622661533769541523191918706444739110696412596375089931655149432454716762562334187881529702611776520177340702592200567828560714363051444201592791871121858505594520074703230952446343621382217437338007923260379145005237225633687507788815880984623549351331890090907715668974521064219509286741696632070229878838878674554174808632006054007620100108570291612309891411720808160143113501006461727711641606873006135283261843834430629867932169699930515143623429171268949876346646383398032776188394436256886489676419788667923392184664619120865332671365921930514122391141828871870991101700759987456366987924411282218199625815170700593802514475504102286388470548665646619063311966570475009282079967784807381503690153416986432216150403337104102039978789915239574743470655085288619884009968808794221573790066600297087277729151553771573830435061994664845637316793313633294145678956406054319580679199461394148649795921018177070160100911937074868075339199905973227517282894519152106888995620152065604636881973698359467719503469831466262663140335844132878761872583178432195376886852430664470945883392362216323173269105195187212351963485884284988750150245437402538779914340998153637477574310690831096916369139320346011086797933405202421846442479777136806158463137029379241603890201293743827418692283177761382192509030508878834835181398854119587431561269866219833958915795697561525718464912523554938145462845860127793254508367708225242729201284625810709585176139761862654680266782691630411854515343737077232762016616853942370605306658861176384993235943632625560163659298545316970818917854323077614767900673220817849572084501546170288029373782704049245582877107271327214685740921857471160924765592471194562818741222103613312797600442231420780895532868189796213698848801738402812549582792072527214842636783804725304581857302719666919018170684420555308127264792093223316748710907440505513436305474905381443986565582384803315656325465512031091673322341152734039003771543350340064573809752168603912686805163717964292372087277309590263008596869758902499865009132353322637645745771843993561217342441333972891793929480939200667919759956063054729595092393121862259830728272356662802148179884460844688253431853669208615847501431600042840412273741566739508433121347403439653218415092734558517862694418012403434364266667206866720068818733960278200328607166683546571237096191163319499823511480864579890071135046489259239836509070638798693490579377273023348231481057913241399478398925931636326637408292316972583744414502305295161087330445660167079144079541347030112841043797829990701275356527377392711544418105961861139513287534641378077116788106691145845321244114930633421526654634769935260641331985392591299183782927278352046404487513417901613556549829274131588853333722006962432583417763460308879829834590842485857502356444012098693084294729267111226136735405043973024904082252560966165967703010518634153080031888660863954255524279155606918815472246340828458062258690790437383279540836708200938540955266619710692001676187741554189807910293045041540340362337831781977869509776854640222225194531466346340450575298956483918908979242144532951431576626755451107466578169409459047462995034752580109378816834855898118953727583488675633135349353702287099040198964262448373019333182826691714601075308076367396990280723139863221404124490205627183999978945130369315822092876099956155550437353946795639250256620717490694473588038306634165663661053807593668669386960920665741184118391308773998024431533321856136849808072361899844335767642568315848011646028159852498426807210078221348183126769917877323653530893929020060262722496854117434800246306642308578593845660674321796346350003356476952342829301357232670888947174191464571426553741994614800020920404609671484223599181252896225332542785004684081320753665146475531814649073180954917598471700948053701436975339652852088306714272162938288943894635867525751945309632764459769093946580871084988504001440780192555059508505170891736953546506536008158138986845424374768075225681361083462206930055186982871288984731534570241577929371605665176853755994165781383579005623227327963685109292250427218752718928833541740329302122284930750139871951490572810865054177755941152658075447145088083441191525003089834589529575681016337814617425085025672260913998207249486894503148313745209028490622549272149441585940263268019815302215798670856480227383760256858073578495908476858672953106327370304806195042541490358145860483730032517065254010757133284556710595875329320295904550991121856328792140782712705399013677718326154950860776391761084087829511020088990330086940545811137902511045082640301897727629796678386262635361759981233272443962164848722571921273320766503797272203367847056282780295194087600451143927247743190870802447009368107009143267391439407001557269820536808652729987696760557185894521692482350527875075597611369553944946635233635281926494773829066924678258278303920892531907641573202246952776010589985902599906198961068130052015149654680506623418593252338207486762875265751064307365033953329378513848244572741060325728602340930687002798927638918051811423556991727118300011941366094762590656608199961562303874444006600460233887286931938494988658660780869606239535167236397712595968570908658264357818768933801102529302676091940904668639174089811593854965818503403316224367686513338988394443699724109854870419454990126471683557800790519970630283318013104631899638393695350896538452916068703414852763095869777803922717308728449505722263028739733152874304131270856292057434428135373156980239182934611221087228095366537254641338958829062655438921202164808499102863973327093147619985748403817364103938977272632534490916745968103374809330798415712789743313544149199231390536236021403805206443450047827961586873171540908091944563008038058631605421018038151939304915316012960031927286278399416235754329148429390546247371015516833579708266257409888378733223412875277382355827110282657968482808522701527528374243822732020528810343214471266204736654740914700227187412952843993373783141839745399834884181303285316944451074917624384240482899189486137125511481807101496801855434362006283118431469065724098124995017985707354864432451688639911769203721667333460891932193373081415102674742827545719557338272092843110836437828526384705524347711785821296662907078381516282825484083648802514184599938026768683185309584947659057452690958848589382597426435717560265712262421962107825829063661823616980384129300250996779216702005406393835170068388748079894705639650827072948963090428880423686716043787181201238743421375596897708478080139846947754859650828839980322609882667200803111299015324171478554805805089650248842255354434815167468698122032824464123275583293393647079644190842713152166519035541912046717014251866572740307466082240033808036401899769612010573277880812604457569191836635149480745702991637162518177487337817683656644966320831534470364163888207960801762724925702497929783666972431742670315450763192114296128250351025895549284267722573135641852048112584221456719344117194580051873329441789959240338689438890101058801390055982176667721139444893351892612929280050682077816203544945617210703837695911184261360307684452257169422716919253049413547061043797934473515062521631223147052020179549377176241002280028031523519787157573021082550186451757225550799172192918980746786515688820617275632844385549367317540754619637050723899899453026211246964857275305584694757859021561608643008413873382216120675795070340896497441658581466069542089814002760626633403844400911798985599550093710054525679635863696320865769376527832239408484882312137498737866756407924370946668356326838861017584794520403546570745661936247929301935126410732126906819678485677595386195561772555446763358997011942788185845399521274759876058468865082245490767316794111798874057110732422627365241721002201442459007337574735807060167206705690151417651214884957529409925294574565767507345776148175562831941212487375917367478329516938069941503625618015831261918221528739508032179697860321325073964124616454526115238687398759708994972210796933874652074709725572428946703456305655368516550858644321520810026931754723768439482323412991916734985660529403652402801496157198988839304115212297761174125592113272403370529557700080002023955521719191589386397355421968608473208424897724354305343512811773459901516418544389107514912585602046091650157983853774734707088785593556551473729547821593604112181576380754310412972956238926933754099796412058492906465711576293508950831965356564581000227323192309466462302823958130548773425403708216756079991466696676422922164012360880408606675041331040123976345206952960581372210550429802945011510086996856473420598688196335252305741308645228804901807021402903270313654890254000092037490566630288722685391124156803123905267569054053466718654828673024812260424939544661161759232532484533145554585498915258779118163244470568784227118300790414969727651243892350591519970498459683786338831092151938053639607376897966084771230335266596309599235429537513434629983900135135837320227110804578129073952004495794430827346780893456727487452764322570908248083268836583567794570110834416213571119554726766179757321885477277670713114702585259090694413083535146819150844001661569971893052428442482459378053188070387503652230297205701466922750759501300068806952246686915048902114155184805996201861027394333119443652591496048395272283281013391314264089510996570728496483615942832052021845060445794488615433207484882434626664151242760260093993491127038363506405115895621876898525174620537987078240644730395420371662203112671688750395711921276759561599235923944729613331966295470798914645651198628076052166213884721395170071349347279825647670044250673112182138194450802196112932493039695929037560580857956715669578279306004280977010353606963752078127248636726222036372414978863794844869082004232131279621327017250163504630237575501569637935840709360508258552867024859209094163559745433300045919732510095028313314146901822428732982832616130278386375119963276243942430669769110394969544126947716335458710244654491648774746652774016763384961589108513712751005657817938264291287835094870558313453197051297382004841608159643505076283384764461954514534315253160414504157166716707632885750314588692767300054507974222068988360895114377774825557313052512288668577600136817074506421433511596018637161090436099526424099500946110062242517101001946990834805316422850174842977989806993802336618646869300475882706049654369295032026289324480706446188544924525750155847182558532299647155984048190364144518435707506231485282337564249346862703923761965163103462900549906385932762332511458926636462667345489031965068239045396647488842077633478898555965252515072690543260695484670008731347929211890368445401938108550484058778882165481410376128769748073642128565243869286263006252957994734270603416676854117334072066946750374459498913976705682496897041771250272226269917740455439003824737118543957838615781597305449112231807259617781055404501382184120159406232040576722545690083892367366738061674557913290836850966269207395473382691949182839863940425605282079389729834545617330371152910358981885932897299347231771131796079078488208586086500535998424532245182561178416136195832927045738087410063918385196716653090515030042747211424344364087725191924490554795494930714218796230794015752422631774055610819268578187628211438117201673105414035893896443429694531609554303028371240690147386740427978720545634083915885187769996075305973743985622153917872651256124122594437525495739612252540443014620273223763082122840127776076231810073751768694888439114454910592726503725864904115158279931809754783407224155310715126273279075853942246926104280807390074589936824440862022721131677456077395086911318196540103447803325452351612834479326040647315847797891458372166468593738477536281658147204844456477374442575733096631384529485059867839017756942656564349732745385799530112949132932078204341980001360849787166836057990588448941587085071225931657090694514313653203170143420409267732149569517282917170081443732355377006363856972739647757058753014931609629167980010828267986707594150253149256348580488307948761245713224976455432728068732391490491480320591180261437546032487804236253171193196469833550659450531285639862772585336083526401028568109841096682310014387014962396701381638173190055348621942692423951795133068207045177415785766031779471189527412052585705865175339405195884434273232945127463280241764196526399622916971752711788626349133348915444837209985862707201238659082105728254611307660238908480393407360702508923344484206002303599917912345041763074594204370111550421566441315573673578850034601931391027489594030170925393113254901256964102070382064424767900027118031537057053955651094457415805310352726687894453793505786245137328981490436339857861760389296030147123714402810189651897442242174370851004277517066169050285287576328692446513270524449465584070191635794055952824423529781369687874567736578717442145955687511053722251526486510602133189543757393539944325785533565025622378215894878365031108183847886057266148104252242125591380943560938293665229850194451771161795123111788196170357201272503026179871303949291497066030857758619748252677965613363699971259060875086695941963994933973842151503154687762661158983361192998153846183039518407050489868435518601996149256958037055850732537255010918685743701555587788818281268996210026977072707024842606264925417043225690772173500022868829804494572580463142018492751824963786952466822121970018939883264997225645862207694575988106177069209116863526316150758349825981795554651388621600194962553891748310404256964286217264100873235459077115018961258731149854942043707561204727256394063197844303669461592467376601657747728144309881826203627658711162370491569202102370197905294656539237265410565759603929972079008041015365286537904327407326999267086700909808127238105026864372830992185691812959149843607581315207263885740043722054021689139455478842476489271212874713280265968673152986081746798634880482668387188986415108362811905270662809548286833361727847690645705659821961216530107331491768966782692573338442951001027022432095472298484904355230830922794256743998561575312218231348734227305918662307296418753916094273635854145927775827699069063016101662859928521052816856390976262138925806980258058075321734805534174663365899571622767363285497994991375712152088190562290879890687623678600399791769263132691423918364628441971642097683681028311115185197061849204054391061809475843693489417891604057569022889494059846230226432339790264147915884971654986753021172284955099368467086046657816691293995148200039986141174440343608859803336618089517341082468061784557044865561867291779443585581536528542536967911154849102761232311367000792803697276718198995402983596540218550808927233719777210069808221445334709398760515048606097581504080071675019082799485568964496012637654327033631080234434782674538740314251902438478567158247906745705541456408613605321791546595392871519039593626026892587509758842507711545309660758128677726681045847579922989567019382777955409426524394981667039111460427893593092056402683175065205832903233223636352885038826797047925627666711828524833227572283606769404291409958034625975295812312257039637357929688783153263824764616602402309712229492465815003555847129199939190634264714203959356818434104623441128493207681047898387279218287274148920126561147948474076609028624860705442769965640038539975740193835215912407266215624459894503194703899444609992443864042635423497545024328636217180529988079718436963566044695853141717015716581406825922439079582401125806541481220089101692117178681328871626377996364348239997546793536768446844463393151388733161003682261443797079484030065427163775732334834021279802169318482198085153017910281779612872078217277430696291659611532417183711199475373647949893693163083018680169437006704384180191520903276850257228520524728611496115988875073569260767335976582762034085293913200700899276624832996438151800049428720176610424223964035165059665777784850926653149520751915067203512169806655799869079850846937091731226549216508525463740680596920562785761242242465362457660361032316884058111370306419080787090028980924814840597598117633812200867130837310881453840470587653176113800569551695353849798300528127255252856392752260269899184516210584044793041263969166930039414583199126756038038956130663065810294969954299898711831292433672711339201272210545723772364098607384128167149936065660958185091840967303657007504667589135634021398968854778044662037475146166282755555075798387827205554502375221161880274606586194191522573764302313081449035981413427092023787237603404631757141951227710219278841368764711258649801253981736906346822091966941016376165976671879670039633281734858530092810457795505520163017845824908546428283354821781385058501279786186521714458167692022197249157599729786319587958816419722814306332531787755841781111836515419717830740308100599126591997643202576293073516290064808195515218641662434644573602049813401039472106491234916803641412882930276188892045581060409533663146637346543135656342010531881693159800118475306546866220603966044476493334307502907059555846492075987272114247600104870049176158578010251060268758876815084951392342038776014170854957345016611565126184409347870038919637885622347601238739522611512784626509487207236146800706648370984709191346895320166514179915855703482090886164737500932218272148429241095189387248244114041900963222868840339575786900663538600476574508606868514501835996206799437436258613356538426959520196743274987198247404470857005563032244645298733954886404613297985863962733536433213223481238431427898888572739876794288084796647051448789518390634208452644967942734587820714023108150627233918143217825256514431053004652032766571390391507105676653408754668578451438450884191101620645882299795387220730922632550845017245608498407157850224547180413308280985134183282151652374946156585696662885504029932860292215617349425106242659033375428303682259477990039599915052290985882532138246770714361411006433600819100901028724306789121230521581797419551688498152637538299202967090984294703528693848897487911863136527854382583075000695079526149557925153188069312680446566962128696928424868150875441326064041637861497044376320922860546434316576671423861300457593208385228712447257670177441968422393750508022172715901060532588365434562813425578611372073956414573212946314650577847988222033260382331439050922449424857473152052881401084183224421589788492806787743763994567114627842972855712698713200130209741636900990627599593150727832015306693640319879981091122983486055160403926941643719545078779854472372186397103439219345023079539323154342543580291569653927936735445936779333086838437401662739006664449017979377596478703403701939158634527223426844727154819594835518859861751652402593550241107695106361478787830205546839136532474550139251706161705168050793834569686279405800229165217008867310612959545304879556517390881787990031881381270921552909711933045240010020662180158889914141410523567691464382181139351427713633065242660866714115459949826970977715458141346978505290152517216426458980247457455179123828750024122866564587085304229604745674714995774487862758751533022270400210668950242181520356828586614607040506281337425514726298614501291364982653066101532810331270436486624081492194215472987105260402740196158714015874466218371080423518993147900015794791629362127853035505506255106667541982899454864321025055950788825218705761720469019314723337079938572924235252402139776158759346659095311229867848679553990642537267820006420849419329069561799357043874183179790233846457526888854643363946595298762143532725120463842031716195904680854643119871062658271292575848803766596033098664510488346590976878603795107154990618445982024495772914328626254547219611210625826763531735423085215728376358744653410157881582621740481333395141344331786594305446317065912066777754126067068383871221557228121856694212955392976302624864294742728834578981187865539901801198651333865717249342256462543413713092965316639974333765255057586563996657698259257211550712786735053589624766600431450133276121298152888047877440823936278153662823984916584101508872129519773348050346455527111643772535413735207362994928262022133900837923187737747777189232970788549282501927322389174116179210736652447762611329539518252411432956684492525721138806228338848250897433373355017989436400903257323332963645047402604071057695947172047500327595343029505680702582406448711234552239950698249618098271972324693027377054002306114587093239603227078551074944496677060149910380464221507018717505966986554085904594189611203695806279161695930771773087362197121588940245332761143828453257254884741534954571630999593457089463246550856136077196174592341126622215110483583374233565913396856345139249031481320680094359034204513160860093441195666372140760171914565063683549522370215606879516183252129607950058726261201435039069034416818119939266324368223630575308028003717302122811581388720289813454976632290668976108542209727677972123099206897059192784875545086570748284697895655734405709164317238789052636649270613808437880179815672397234340238160039221360626977360881018801287956814274693000859308454271060586650913086204828150828310583055715467504016699925815254853415590998077605610971600737227806619862403495441631057372072826818576360314000427010454209209449876656869943314775318194721588422827823513576571385661513091843620599057855314320444394068405474292027622883772271495902656855476836117896325548595739068793490202453134187420557435935923897200313557751456776037445657453599877361899098381848016488968556749422650249136305342052016348715325322097817547206353444407423153376418644530703933036531501160243642959280862446253793283522329962769198021168726328772680079705494428284602684367884659466664821133840706807276428584010339720670083576411775610404466383975146461213275970304392625535981057657587060691083086473578408572968373352372222310563244786467271282453071185920514501656621088038207955276351629114085628777249378493731310549154989456418089311210035040031692566652669606911508677296364924040794059679663996988310827706583446143114947188052136039086629042908177260959328553614807747058669829092911478596642987782402519739144079042366498158304788214148135318264332707948139582524656850251442156114018228909863412527820379465942264162407121106373233306285982118826168288559502650862016975203859181833888795750063780597435567666513818898831499730325004277372778574741505901565743965177289001284083728693058964209588069661034291860392643742743743420132517223516786567772209918334667799939221510262360269879827685065140411984517213552749276898714430624017609993150146392568072551025239724264634051804964390292698006498796564466520040369659033267648281607490235579483854506837904245274366278156562464757073712040884220475399462161025720090361201972955427083569726658551157056416710026749042245120261460596817658944881190615748520218261757876816402302683166123420880083157404252483243953168934147083570486896136060925115532328199000364516618145209953644866434190099507997926671032875949924495790047704924067652954834901886346865262890418802489113652379228030446228153014208214778870659893609840031903115301178226461785547911812453632327779480447677782804169166218509834144441956483707306399634491423577495523716540356999942363358139999352326780794114031573113585969128738602048672220239452428154606672749648639848299560288398228769704953853179137580041934257787214495117420812758873929675372939231956321321421565934312061127726623407703701253402002166734139009149025411598137622647744726289065026936649333828864220132900849254221047930820231021600169020942283833686351237822487172273560501687080933136489396541974905108789933122686829128149275408702638685358764742418003950008113628870525300923778859754412437379690303985179047224376332742099646536310517331866599249780869471663438101094428510893218951219733074069832490145977656514149070687184084546660735015436522231007640387220159718882353158041892432532579213508940071576509782142229901330029733712932750651311777884460872781877432414408401918507774849109490072791007399876221391483496857303290936417139214295911054615417997568677543635438704032317572686478467814302153390552349042945143114745923861337592211247110951291238670109629629334981524534366697322328657325131337690499981603282223900946259189153454790859717847657164361094925770073645072602539162377407722137960154247560154542009787225556497160415042288331776606143362290136206288235949035295642319479860848600313405455176098456806332659258919990383889876842340055614457852015294006073161849026879271281193531748290316621849677704766477120076813235096464613021313091326812615593946604203589861671977958660344582423355168785508716565286402185340489602909837250150280254528617458665773686808765479860856216611952900944017373619460023182330743621533745690868677665732730086456193097060979362410961208821032658636804449179270265507835766955076381594894023531827086827261708247943637228848258982394840440085986840191146330783305438016148976906901819129779126760024452056704457141153888466629601647181782094652464144648660381244289129076020587563971262621609166378912300083264037065717833193242057227464420417740398461729098640235105487791999626827670570763701006729627311495826301673013208794979478515528706267780568613686349979290781519212544146076040011964998077576106195047364366387985399487593363187343667446685525327005684127674314476171614745755922091956559889221740804453003290426719751305377305254569726995199625139734399583035267846719994728287586546235060704644880724940380348424578837384205306747184326099740264864051949383957042941677883308307899179435041783637183354545423826518904823883326762806597147858054614299378281494897799405013196475546482832574783856771478044635341556874272307758212272176055976049721254303683809623956328110798700748283175016981937033983237433290035381653710727647582675267389936426716454278150742338208557363403937393371024606670387596497144857633358592824043787741435278161299529924832547178259795117347536323290378227362701049663360495938544399903530711029616033821964958941351546416072856313260424234160369405986421936776437129235828165601207677045285692714606628358702958570557649661242365107308319795213227933861232343211943044486938947617889055028510335118943808234639776003859212388466771138698436962150725718316663063650129366957273880253683333405173316650706918850095540742419870582265225347693325537853534463062417803578412699797691298159766362782342321812259370428520655733608058863747996153899103524298144683219329635956127611416804928511795543923318685017459214353449585043181520000987815564140818254845939690321701788462182740220708348971162096691735464048869548186044378975788657583336247700213104858375462382023779913235055013900659717185536710362829920962936148026351663158004414807324905883160571941380064276896144371165910908004820105373403963477940716732018462258469774374254385920897752748419807784684004264944327088324261277669400244765124171025256226746741420340339030322808413338476920754550829735272723603662267558618704217235698240662593140603557973757109695054686483664332701282839930789935724763022583891631242606239828317836306621317692051947566622499311380235464469106660223408131374619977434000723946853361950410164812649536637505186202588923202025182783240108767397403571236267639623201968923842155719233906945032907613500211811996340473411870919471369979500937737260380287785171366582695269192663178634943041484408268892021277042335596471545468095933343222435552382291367051145961963387984031768224160932370742382279736966403690036424319086571684049530307861707045384106115945525995138291302926759124354288865228937668346929771712551479391723794827699020154192881373468956430324308889165354236472057341957213349637663645930378444450688317365662316398977019460963169662278371717403139075243166202636433427708494449709582439438943733405374678402565026556195558368272655233200596922700160140926163227321793974548519496560576261207137279366648501292201761161749412133388950328023887064131556904626549879372197906147145359421791066143337965565428650354447491574487256606385945249454261787828586680328001958298379638063181045999185818869534266356676338464581556425076294655214188218812685024036754758146746577155160284729867894371467967059348841211513262092788048810401130309964991421870183244014200015486349005423765406090655865002647723519176880370607488840744672353405473511446407118893106805628249930335613064519273284154239535383926267449911708465218225585327317035780091145452487164681216002793135748972189733035128058627942285511087941487818125372186485237657601250640567108900588408626031056127794415816137346186780910597898201921948680837712728142331066898294958100026040903404092921496492274671542713709237225462439595254230770154230534131621595162795067854895243718750877467687775046020110490962368958712865685354444096340384470735491248664950840529706806724543010106915707482281744659412305369950463761962700546647682252336552073828181885404274342915029424166611993865020021291521595685464201747006314468327017216587113274208817150735960693623716773033547640053891221668321061454267818313019236340896496241779181489852132886950500585492644833792232994832122385702565879382321391618808487515804416169516887634062058167972757979967055058628343600863337644021415927595585122712022519749916774893560905221049319575741749284448765038880134594153202662890779302561283835026736620909502725144270667990616291210509539192793132569343385276642335898182774589546921423269561863901642879969688154242519075033822010222810880300761011162690105538631655073627695100681301108906584446884675005253504392297420625226530907955864642177672134849527944966791098926921191294796047625115442313064269116852236434955999227324843700043694124025724958633872829392032526978766590773871082400414639967419518184765073566773128601451691411251907809289828585697242499291852887851933596827058630297237863609208086810824469539908049845716244437601622072631863577916438425463139058991072325519232585403601798533181847792730129378666565850494413226195033017455952097793962556925053221448631759651213765063138093606557551455507232867253942068015496127671751894876342581792689129374072483509316293152582359156425112313155526634823529524758154736556102097391986005081366156355648546125631619671219749968476610322949290483616951348575118961964574601082274772882036119861189953387951294676187803414913588014712467746891837041031311477571799355566650830678066259158275977516031965838727475979870401748649595544090546772808552730280973536569951426651753435727404663459149914523383846308401653136726726351304629833935940615290720966814615620266359544992263749674893723282374180252955954232318754914278301878321824608797921581658891590347075259856831440417618491801919712905949492366917666600297908986992685338079751393123560930151849520485825872416021315308787980385642744122638324701445438375470974489094408962141305621994969691761981088432590542636614835047756190529999173700625956843018422717809796483348032938532431639669129925858012677549502133870902334151676477927904836582492519186076754847751208072502173453679746379082208594686583793823906167932085289057866287226265772725929350102787267394146220280810697246153168149743763527643921218017054455924292599580293796875550452004731519294097783289277418108487826812424799324123192758984107677546276570697958276169357344390084039693650797825745613755973599470389296794223361325947963723730006009301688533300597583099303467788954275671581438854088719307933854446225027388491090717919636571584745391065670753690790147794955280124939198827644655779977519257672850688191440625118797289611776147278085989995047081029291850890865249548618635444683845714919790674923364344332277476887012603037165602233448656451579023335027417769412240084433493783595342027311382886959015897274652191988453277120261270584707697945033895509906689571449719066764766732227583567996064128625139070756325348042774089223451881755106401138747121378173980744810850033201055865496723210486521411840323118534176969190409881536205809107404839839421198274271754222721577153802407561725421280198467096669763388288554403428396628635458939686656033835534297532473775281423797170486048266445415125921179891409958765730302385042044000194448690158068050970000330455596929144604606000340984053627664696915352746918804479772082638334151350740031486492686311067092238679942639108095393216626159772082151766984414902571455102932977787107755926806290178483584318631567900412648042824895819810540154177173538774097810096352375570559027754966385209806199759794645969478409675352515583665574773877241575699786001298776425081919925485048825492326038915452793638923353521073552222050947080514592913301256036833690679814391972914209791938217745661631602094960262676605649525295010622971811620678898423421421768120863099483475890354706015719407820743879971154370674084378860641259634498464272053570555892168237516017748133128442758746037382185450337437077816911304128557040054472969610664157027459682584072280694903865440283054129214490825541684330794400521794273514448983385282990625378051064931187247755517715241895399757412309306502376355606021525400011637664411419072500958583961719508533318472338992525307705821069161379660594857787165043910152606597873515809158251845656703816647028910157742331811578542410657804507267854721961790582612844290493035964127386747620971154393117420472386067290323830836217693980378132240570039892255821917735169262370933754563549266656076057950861304094396092716931695881588737700524441892565842492706121486252746917281531702906988930127553872616471318885314097560034692705333321873981133692296999831374222435097699454372656100478560493984352107023245829524013059926828147088364847803721602416245594193265247890494669095456402993110333554598448230196123225507680893989375742231744486044347131904474205222121082808134635134198736850227664956092054325674376510497319586561384327408603373988114068461027456629505154065403965623222008431234413686288241210482532591382212275841940272121398273856912720309637112209999873077050302996564997997208075675441071253243747323361131342854923323200420331409959885666515336802692955972125719623868386143421309426077930778913331602874055909415537748517834419311222310581894023016409754383963193272018896214883435842399236449408013211876604533618766697152977714272164958209180036790770135486129500432047864530766673539973258029065675618431793875130019692454245769541306067638369149618874903480171851344609484883669927209788206086870134891677490389496584469636247578300635368198828141753705712821605286385540471732595990003201061948516235397206858595208565631125741232503099616212764025493952440019593925780062345783562121444659147594528457667942921008288488539985821916028813093851791983295245742894540065835169939289040665582889760818601011889500934177016523200663548085780509282486187002598085076900642681965930523691351759609613289964262615879533433811476479097919081758436118567261429376341097706360718500555059226620196425361556724538892899065299347250646304734192246569919718400038871894686182088547191131090826409611230264447629566116925307720346981519982209083461657671345300525874758921008295606943357648204111864487801164532751205774842687189833185411891625834326369424554204955395993783351858623208532190415562430618167420706368314029921833790943015914062486024072635726237018680670616484322287944124264882634614421008128462410388759325780323424951242179389193775019457263789522640367327671453848273219410700400915207121979051314561502991586141388496416485651355038279379241635087743989517320544392219267419739421788415603955750839400324770462445395645719426639854689758910555003172915361257194837206519840999899016851205810511606305323800477609658407002471141194922050643270412170544423092608127726601907831435026382358207046780086989497781542000561068531697581952155089823906930170099303694459485305208801145529339857320183843546205515737536324799858123097046694586009558362140765910398015561930502148634003066864086184391625478038202751217100453123519288066589374652345155975951111948994379904433656277936860483293501375226975756904082978728753641373241848064833989518946370259081936053524519534174947757781243734322924005162945637114264874433270855884050107788252372038567367156885324228951183652625591669750724583704123980767048608588093291208644851443996569290852995780576743470772918159839288938948597939975691150794639983788336645797516797308827696124126830867028283219014275640285176196305461521380706021148485362875515799639807072431927503702666496885686764242773185798370716590744829117183719851293203186013796011127847490639972547909630938191597285596231776957331949572166679721605017725149470340114630856955074030715171524701245909009618887967422460710423499244261136007236579740984565715978917725338456509756375642572874642545842264034592167166628816169416501689704847145125131786618886424686504989533438351715913964618043239308126708134966691319017158368997907309612777722465165338483362018118136824620275955731121645180172411948684535997992726295699764034376417861275950082714087033451599546416523593272506098306582960715315817612607469432732997184209133063189271772906006748554311173884616456424713537540414276051151837514012068332163215451110085414847914489742185420547283434686796594679454196520423638802428631097920663637431292857620202610878976325573825482976090129252449114656767818659162368888307957822481294716792050814812195696180126214760518131886922206661266316900315124298227536060545405479904292555548962950613930315376345608115823079052534048168232334988833955101380688592730962682172634058789601467836341370729241393402353019777326511806759285926888228108550588290816612670637201221760991689812818387283213516070263233646130817710274825123627560601231572385029718797679866732199504425789169724038009416505842507237291277474634859274684734156798637952096676156321712412718684722845789168557139592725821785518472298869967444595457601532628471573007640148543900266288239345396167947279355127764378204485470214791689743662125563489768148284955614286068747241665711017224054586713653278974697341430985527462229160335946719081014772477121126401146985896675752939428349759358989380004711847644603815380626517525416141077186963386722225978548793356552956473285572076779421748025376332277679514121276799058781741699650247662534581813540898252782357200825333170642583060194142862274300796066897194526093956879367833869761866307075850563537119253391527625361438438610491373406782910238595532648829969814830491401008398117137280721250925628780347422482755924099788340165717379225908632011257172065451154797381479384085224213603684347833288062086604772309267004632890947048595404678098020054010228538428927251905671424595945792510657266516929883059755183665877054508034400400844929672985423015757349268774992378394168388063590442047287920396800483050178614966046844932170742088142977088979062105851522283285347588944160668121969863820608826398869604185595901106115321627417939637585359646275478960148858895939573478146977727294237197463664445624349686215673572625194271933863160522593907144177339231265746862827098935778813987355151188597433268524979970741975908057323142031196136922801164485553626345605298630550968181060976004142359270342488717947325655782134313229420360653439026110207703516207804326779285118319107734961468167344624935190314675506097092741892438858611708532101405186539513815103031538285595590955193355814877471268657481687703276582895620446394137476859557785215075729514247320076186823289822448972099156162583810204677707252336488210315983839397526955110484607714064196232952778113639443571595710647384517382172816277497487193765473789542982328298982912842228571817374319608124574836162509777251045257944756715753600786166046631551030523730033380385435676541266900419828344625289144181606982876093865602547016756516924884174151542924787137503699451205142391884177745113491589257606341994292277512570295390772050386854000538729644239370544608527176371716025070923432782763696004518339149308036350476035084056738304779254747754946894170311999975131201087160112366645682843144885179070008765402054227389388884365594696926228948514966089174933762458538948056069068883376004101643572857500755466131734304891438263103834670273060721037623840002632874110514395378026730931050888471920530866674017544175972012192980575018958183615295890741382488683452751713605218561910321332371838565385768758996930679185167417107880040413330477066582715443132322483860768026256865301282152758836034054276701512480748477675116057298866141229850143821570394816301404358147053314449183932028171182985329897753141916564947174354909431158950778206628714178079186360206363634514158953566520539257295294943656486197459438969526593343013419523040555763248022839728286831917278455134363953895213052787624155118818875155263185678955927844687125157592708884936677264901183599994090887551865027532735964973824207316436238838773374213163045817567697406156575191853783330498538553261490284670743081467113722096697897331401315343352669413028859496458338764913995788907596699547210071205357016546277770206154207780795868969404483199516138097531101317460906089654933428380497851770350906925773594661044741000630780242100656705398400648843122272254545577374888035199109031084916891675078039464606981435147925711615830709952451907581045105484345046720372092290502756052194919651856942127517405083208714845025635691737040961818614654502150131522581374010308699987394717502384385862742109648764180767967049503166504188599929128153704536063700754311981992367209377312102173598357688817148537069185959514244481240036552923372756854176431333981496331752886362903713616631811637611594405791677682522579758174787488505438198319238275800159676505765023928210371489101259718295263072467915049893905090010658375513522598073834898660520885026681013609391620687045043960576848885225635403138068351741197190080809219973903810509315144476948611480850534230094006285152721487435535945093601382795487623466868774930905504994230765417143907210184472881856672522262011830155359371344955699369332923699899591063619201044978143722456206775171927324924888486820163455504028369484252960610395301282881387925823875543531701693232343286589744542385632462844674054876494897283586804748281656480829711318255869749825316310685396588887461236586190516602641271641053653644947626512876189553369369961493937552382750003972648385736819279975617039079215373879196652474466129356105145223270093562653001804359642969356676682252665848303390564917081518574757752108767074016713857047010835359948944233981127233326270328290466052912253240236821195513820546288263813087958916834781085888660497362606249383230312291684714936902459355952481106096923967698249817747591573836071197999153653810056506388805684815958365695955309265046259285403623612345378973733531425641172870605613288409224684596942221424573094617797388022881629859561598198627413272891639662344842826739874168679304708180543966571853292915019602383367743800497578889550490174240019033156342519995888978165414412777854037675053353787983978672256121974875084172979782715780943720093083356316137995414799427132409113861322586815341276726413717260194639988666309521597348766834380673789669813472010056931051455749024669231099162146970928613966223653687388879997146762584173802175696992296464838771573484907843569370896156055588063653310008537902494058864616964466908501813276641400393592148332204994526198816324239686654317026008761872142775245171794963401759511064617178849586894650757746254288594616824588618279628439322611622171196271063168375123057254090904718246087834382410064569245159140466151567437527167723827477233646877666947137403283588824108955574092287538088650729006125957333069920213255113483398944131620836629165633360889503113013442777419460106961656144881060829213363519003094745110256647628349791738275208965914722512060124042635195846700133453803872509772702103202212068506420428286019130648518131916727613241416383459650943825519842783553703152438717116343986704677694633509611577841751253450375402637897965730266747909522194963899580258431019433792001160578160550056531568903641244784717922147928124713983315828897263863651457000182974804559473792756920093080707760105375607044248887808004789632315629994364183448751291765180175568674580439416745249497939579948669690352050322140594101300595977074432163446419250869279694229235115534042994812697802633101366791665342252530511274155976006987529067589371421618054902211757704323095355856034612655718393101794630075962265986516954592876950548366818368362687370888362304621601878606901612727529685078438076090484407046378407825624672207745757787541943832108323539039978511436858961721372498553279058858573764708366214860001058947452729051390090557258964957702854702663678492264902283209996638272446082807999763802265943727896774221613901741075756408577501543046181299953352744019999279707986881394937778664956015664260726906143761397450498978154642458541672146505332163328653580688360686741492312663502562141469778169797969824897807928776206177892586170571832342599742132999958601379180734390633984040763776159939351079127962278183045695557073459523487617510802105402111695825987886173368746809310966337943691720549845275271573413584798208889762759436648652306292606657365956629119657925186819394812304598386588595467529207408084669797745680971418047686793184814568087622548981619866808002060002307416796763390511214808745320171757067793563677153595920298970895557292260476284588387620410034514885810272246541506997749555311888292629824602326052401986706305336492027019454717250902471081949475998039296878208583648982392362930554433442107904281959230172012784782875672689661382813290550877030655182489222993904563745626830026086889844793562111812767447346915745748846195457870439256423245853587996430426036842286187072594402451139971098004905250705569170302593403326251368801336543978628978471608935641834268252890797187559373852342213425970679005899943045368731562973861373107840762271095019029500630980406969448848232984129019114550518779394024108899394253012381960538196698340874469269597670443395958039524903974364045082430424995219297748716993272430462619290175784926824506809326060230488108182104601561271349611723742387495863232658568722550497371879983845373761176573176414734820130392788367234043785857534786420632578555733380054279012868870347150777372417618079675200884645742442107176804769233708618532873959596224246944159934387200679484379638727858129579822976966326947347746580409031819808436290242753096718065364942122187571388768534814785761994795184047681152849790808008642378684188228310020213046143047029490978438430359669322710351499801048580156449166236443804639917059951523054212552928901606516780857928494448739966638335315874532053492552230888496596702885535685775720964306239038433485137531565241284854732699620427803751817549687365360798081789290813424983668789360917887634580581786471190591902920456575360977242443695120273443876602825174016067420966163766677379131708347087254787949128998303082632204892336373521580987932417399710000829401360161323495993513072383979020993387323597466004336895260214871892601948453318301383564364354105483144053318229203159223785559622425611985288161254813729018809996315116348178288804663153354204565226935233352505797835316109617974553279995952410245982133413671677564338568556814342416194805074248240533674993951890528135508239119421360212732492133711186727212672087467125496731446974436785841266132049034381399165048956956108876589783997392671285985287467839789526972761574307250839253465137414692814999192062222180117414204375706111219407860564237827418596326691032103396038777995740572091190828068347714742696685067534809300356708389498598119256516237578555628628555617010545106811245291887829091474608498247520229055925670813610761822253397099370766559618028901449050616436288876902624647165193943784360939830977636438870697237314300775148506496478835313989999940444057001461090533770470536824133679253589895120280424516783643005585414359705364430188467927598649188823388583826894476713348897787143456745652161844741795985349491244557152549038683190815770026191458026252506760781722074841129824760816777448497621773380126600237621963864320446356016013178093915461891300803758889204853448054913787275570178279506711961222937046885270281161931486878353531022169166923546021461562450053090442532107976719818251673552053215917601553925481416474654677154228468187258746821669610071354200372368705692262749910910580526850035547807929546184601205396836165241357011611665104141661258023814411149029573712917348576829267920193778171438413627373229564250332923166857840809016854765026368755392522887136965165649132976044185840486320366259273549111726855066686960907244117695007157465917757671891174212292378363344475501079806537935675829302280522392241051699464499724093035333321936245475104182650681648559656082345965894821890312873371310441127960903609368798913041552291360220162953243716517721820422615979440538655276413486605987119713217539203034568572500064954856446967609049180820149517722512100989175115853412887833141224956830380467909060423936087737836785551084846541389506319990180631345133852215555506674080249859799189769763765955341272507057184404939832963572929671320116506213812151483157864395119050852743321733744548232463285998510746119160048714430614325171495114527549660099848936131300000258409311831851285878562664653379440118172382489260977970827137560401200163978751602890386798281043898485296654007902071166091379396015248953296574281808437781009567565417908816945843167043201837559495682336196971435850508942503039952723593582586012048497314639000377174491722125831419586925207776940807855434660010325473899103179459265499689382657412678720384678482830016956882554336962637727347168794306788438157368468108371859366150330739513255159216722648351011719916712823162458052888634347679892742612651323804954226557793822696225553645560730969941173148071878720919803503937714251620868966483737478121143789648379995236646576442859664395501979424184589552240990522369085992627170053105917775203084516682975035724039558193268693300136304365823009513049574050295304189040640214968507197090063545635618130139091172345818282298268731371524637997574103138595946647574473206841817399707304255067877795899796035898036284961569826612662675845818053497121046556761573110611742552023465939250855518376396420290988882400949240255757264085647288218848923792243923414643667407402658617358981042418142684052535579205933487663353862600608393093788590355492565789641596708280893415939725689501105273513466838310783491514631842525385045578749029753711187221858531087053606875340834472226895575316657394851174654217232936788863496647869004099045565471064714140429577882165010066299449389673926465042202986689051619848009971071302806272808245675388387469411321599330294762059374975651219181908643198933081216647628341616472538030403021829110813423915369115274600498420764787819198521384642586382763345901891265561067441549770973778066814027763941427248431612127847135364225976383406643624152182030505523488709832444349803324072381770164052179331641649982839913336847233402902210776013087905232769286195031192703660449566179124024078295103867845269757963793755333647987192538837051200886966464064892404761975340894164050209728649353072984573704176173514040773658239818255334156920707071753448042807019289695194629344074715052663649679933049545896325346885790913840145361209957920806547285642208012334492667901254226766213333954127910623705158806965823748583361202485841913298203569009602907643593080538689499229697058407435481579418412053482532161538462920021257474559831250409870616739331238631314324851582378773150655443142402050621119669370930241247769599883518918103362394638871045413535318026369152582459584858887713239752694835703541366883334713330957188400292007277434309601878857770317930489371365103191170624190131701053613786935134210216716007208587342034131105833787710509971971593825423546441370424537229356514368379371170976207192104333033591936174632959360366909226528155995528279288856640475465881373388057306712067164217835830674335836608726548002712270265374027483615612955481777634823347187899082692078227000870096849881294206869568676880030713183079025716728809930769994450163577018876951284752326257056885818790001703188725722371083292347182649832093304663722168359980180170492526188841787539947152595839335856264699514994425805025600963082587993808349560844099977810979101006870472993852585756899712402394154747594249184338745304204263069413975612837511921876892562998117446027828201877360563164555623742287343888614097112439988075964123053025919322795105110138786532460130379586757398083342617851091863211801712053039679153895423271130320319613229992451506146456697368286157153854112378252277281067922946260372221447111057152134515786965435980818769540833066765716729397797951085083961048123126684588053914614321859805393165876498142146101035567757826618187584685444137095715440424637092668630669819649314015440130538288040790952362302962233475014263491763860476614310667370542160299179548125286374275106978636399356180749945901218194614177829698035005385651602999677762365491326296992730160698709273880010648810036326216253450605012575650652464679079844218412653333599523641045971025891915958503038992158878928594314407835353357344658685854009838343749226166342492817352138041269898965359186502871115478075678415363505981758889804788159344276482258728390131870553085916133323010983084299693608783761033250681665539090105679187259611020046687996061565293911073794656961312825497227631709666973268532440129328656059445460948044963100669935592472388158162017310851263529325502747940367935918647133797871289854265251307211482101408613414539746775084738312398035025128023534323626198264006395623625649314950663651596845235629436327936122283481910940282924350481943677017019572306818089617001034620362695916760867707168729603265482173360586252648686227426838892477403387991176478445897373836590637607099808967827239852839095992517781578499197275091328894627299628092915367202466792397966602865029886602680360777152170635111772143287003030304726430592982632341570573670368056020461012662155339817746430256750010878759487656285348543742382506058689813801279050946942332628601505643610793521183961236004261101295106582112944436077901172960479350303382739385732204839751238922102145841163239126010902523061172923160579137559192298659617737091552538352344672166570943072092682397859341177884271424618888952907764051345019700018084516452635355887884182620145661538235088970773077727347063448482632592820438962707522577998765614461942277231542646832673835220870215440834694074695690732784434408427495226892641115019143711900513538623968997114118713595373488808713582346586299040875520133929010910117277450938686130376290644791051823838876083848350674802453210418828627574848438286765633189521545707822217541378347586972246551984588951072974723272634855143965113459227309470221336330954788059911596509417468222880988238207601022683262687729065306287869851076209697637140372373257991636108806647339723230028431927236595936391387697916385735591479663547606896358489309376057851622558239354854926890547732810608788577850089007188503028868616880994976303019484910175935282630121898376055770884968289970420818891317458260281215375217218153580435409296519508380638464773621879174212414336245905307927597110974990438800412839580086102174808557150246631928537032110765631940446912363882043945140925943613167640360245271200473093706607019122080723292663741794866378378569569093296393794243477541523911536442504768118155307122914266333718954507728354479009560647403682600295730861306077920644570327796872282479003970691599079048218516691489280183462026706560061652676280865522190515995698639296957083134097060628409060998526888771936870022294213758623553486156240180167885948592539296093610338176699361521867036875263752710078768109329237932034548484195962331325050394623392807689181065218703256396282507426251672631099323910034988445486948479002437568635577197862507648866980454549996304032351729111764627972919368825639693164548661427441214616457951304715216701033182754120389542759762519776802724693211050996045335044304829143416753028557482912559239548235105113276966880142743115233261434110980826534091109584961033718948600348732304331855286232447379375952787609911228571624670255094053931189822440877409961207123150594515154915747346045913331841677538045416928246132669855298339034635630449546951775953688318910883558784683928418376458661568933399541148470056085219296480698654326011397035944466202790831472252573217890649560380489329774475232504601201969661969432244569358564668281508875687570800579321052932721554546777667563651705649045421775567974562872145397229344012710669352072091736475833019608346072992680221733695449875981906189917226768754721189454864577984484297242093369097195457958394705069158217536039041184971237617853662721692315706035347891465730826245195326763801702171269225052241081570516454762639593465006831763153077634241926509251265413628509055267220739890409253952739563621657417259111198640225471609035367690869194241933444649928912728060597432988697027382114776913218340305825206486840241916207082006421515459654090645402524232999614060867517032232469854426702590291058612807440503989801557828253933866746650945049481115511552436138908364997536982529169281842219522977199448964556880409748519648861727696973601119087548147774459543897686512404870712832351246622508031746590137606527366149405583558563118581591348174136119560780308842987736760136698697884536728603590179803765916055772968750848406115173890108689938476691389192672259211583744200386131935666757218933396702422010820240766633655825427551586944098800307921251514101798858966364553100271162562814081435427670259684508100063919856612321464028997532852975588999905222653747624336770231794619794465142737018413933485341630196275313067543237193828500881644917837101699438203686593684851668645951865698133022571730567570780629667268557103897202582868677891755683745385066405706185003905241553305779375614031955641112001581870951673460597843961186625375553458018666133358639186795284778976273260597368651307337648786766723036711800127875392895036535977052819588699033327800424501225061519635571080222481608199754928023385499142892520141688860885643576093301638663911873530073709918384935501108506686337569051910833409133418070390922578523355978429052060852950846921855961209084448462893150289234569514110736851353533717790266627349292148620222591707559641734138902914478232646693634739060929065275501985865453215480297905466762459343465251093851614215704163298630517510589070043822889124253998521700502289303951639515366319152659485694669242355865585250954341680211279586603507794311133195238405156503465429490875591507043571294613031604744636104683318881139633127306867288287091484361160927507700302555590576271791087871654416903517608530001251082113131410936095404661558474587940889363653442028839970694654684019468022542570547390461238200194331778436668190895765217905983052908779122611072171882369000718212538029580507824320946901451740720861873856536676538576621377958820683923877205894482579741204360297465201473900132717140069677250801116375313330629188534689505895598145098749030234150586730083871055184370752368556467027642565211419194015481705618605929598623905469461935965105191606977223777832944046392952122096739427946408230728923999922212394886082011753083701837919461869117730995590941451868714968947058966072970234916624878319958005985901277397530289365848890466934664333522621855989790961111096689344727246009629073508754657347921206980305601557837114887995121415292553442730476955880969052576019618922325843185858414905718640499504955772615906758019903692893133986371768846063017108490175692182190338574017073395086611211218530587272286389135274518489920856437206415759913001851633087339199632797893514019989227718803615194514711990160178642353280407868927887367976772775887611603217951336144889325428694714852606845353572905102887915276752296487109829826009817289651252175960708062406016661351398588490361593769761809893720854449399534689312237507224716039496328497614080099657940137254638655603559056977002025232815406456605406278625776101897800175838527168458208348595515482098737574829809372328769535223247035851954953636772936349351821187721290797928873404205797640061036312755471766363317291117530865807121189411535855350670591589084656468357361149489425041633761937139916799483952135080389709206456475625834976562996660384972686096076328751202255479075540357240074925151372047770577075888348783138183079571374206669777409660455233229531843583987996963709953462553742035151749560379615762567580981298509480228220383260008332171811470877626583435240991937845065297372181989623481327853958082025673200148621397729300700871898273129440550811038712570258011728832530720494735842398516320893866492295000678531919616963642014426642620205328834840969101647144015585939211559170480001086443236054017018480656949307350956190177333757039825034387286263329445305315071120754811925734558707369302694648160277195758836899729668444828573025662128062521163059458305154423034113726694014099573376348095851584482518148856581707300997248548886194256643244881794091683171637363052401259046823431753076615787685163232121947343779159931696807547923044323989802176815074842229355580210007934734857927208803139558460643779582311373691446806876641881706634102369185806705170953928866371802456879635418156060785170967446732987418196317637640321683288972425632303209134670819322006535613271350259911735640284479720758399257306047040770102304111751606766213635409865999849889859587086818166749266466267401201613115709064029289881269259328815417298301278323238329457865924780392241117254230839938023292829168484783432851553398665828562445708371067972620772699050229510731730077907131582314705617477886259376323671070839475918232833760460073015710965043624383319086053963111637764483366022507140192901162557319630804521670638515122678073295142660336275804116354630493625079278803237160560787162893546603655228809090128083133512101690464548150501060923411357189061315709675459813312761170777682577742847051450439264386359583267503713683220984751683376234296732363581337873998279689861663287807957850548675911790920935135467765949745100766681710861930148037199645793827590246897616477613882698222444897360565673842122999116532733743106388221202646768567690760193042289473779626894795787745340890500610974298050375320152536635969446548827088324756927724746282873677392044521880903872891770623214974340673449375325141115104895877972698954229619106782505974147253960667524755518380157741921249680019530833541637331764850079819987246492938193953913657718278845860396107587032743761911857694048605577936108762957507390598343626399454116462572376913159537941662505084448458299639033776383101366871640767289656505486494802920719503283394774428102874358784081453507636076611972576731225546458448065480242446441433018400704357878250634712548459110251609915593978318843198507341689234545447859704977722327491971592171360237608544124428886080435982904852830132950027523247244965486307017281223334818760015853707023241627087917213862693563693767076553491730881484698878788288135707519810571588795937657160790705693473628405232308160751868223014432180760488545661984902685054747964512222513601634360556234268159519753687274943599365521405203001535043949407701320783793783442958472263400681749629769177511731715377853338198506192435910819122539511301993983591305595713077562840514006268596159244051823684395966776040423941859758981554693896128559640182553190063857597335913397770689095812486741460547273816302077386354497088164601749636585340029137130240513008476092466213238830195733739174296943315252569500343632525047658255575907360246122517739321061116350034307024974447480998273780770826955662635379270674181256841022179038852504706167055563575970360104286651582078173865345056091053490831915540185501813682928969174210005046433361042164562806829017015757292244926063003688565399455511915663886748947122873262290655089510749361068912870381305146724837514150881991612032748955976935838603958392660796058214826557685561700240012023374011122920099801885900504008089990428920678055482271458238723626881789129758755077312745269125602085782734517470861759572973771847266347585963488596162113874095651737514951979876091693327893926464812869106705164046289999270542966432062674213286930457392835774123864701197302859141873575141367786390026551121871300018256988463621896798603698736256641204992190097396535930112456940087047278942094557291320860683366902638224052363071764253529841493878128302897601011980564738577887349696531230184610781886375012322182021413199963297814460122358737483597202101552015962666339199478489593026470320698147259443220260081191379993309768886700534144347514541841946347195084491092092524763535088801751464391018030947692627498113987979102777072037853317770727159830524501978628540763299934104764408277972053710262847652185928584397209615296454948479381417232398271636735150546991114298650767528496964745517592623367554482403283228440817381548223776225643423567632376262286759145477244327185669651449138910508406667857822513034973819529740205730629746729893319119493806231229288701390192989074891680699222834873890401494851743703036619228095389708562845921456948971568751785252647639783825112237444829548653036366562843657878119165533334709958066171139099108512722081118778843278488039316572572634853487615753815236771322787583093831798863754668217863255546480484446164302383658837565662015839314239831110654753941969940630007265519052357347488473673999729777428637281849761453928468728161560721096830709084739027171261373852920980804732633564154562878373771146697476550108220503866295010547011254700671475536480144764249095850707312092617064006257764956285270377125583724608209937485269174932764724894651162222256683133496995433498894969919333747890616468515181606914812990511238243246607314276487981597970922456193262954179804748873187252414745211142757788313160837897576487508021706287078640338646814918373097839546027691175655587601479632188172833177823777919464501545663880248719823550864173651738213057942000634439600331733946628009788868350214545928959127290817164406282777613646843629147609655626898128617939695934548177023600586683807096495274565546473988265663077255208950648347838753593606360403914414031787725384616728557940850773279858765713017787369844319503230814823676654058559646403462612294931085096007198360439016315182003431320574906140460757374921253730520877070656751957129106869524825767366956351023614235662965929319561379564377171131360921645707105884115852356320009973007926208900325270309432303290206900918600048055795413924620650681183497508167413668595463409606093757444735497806111912998665575602572614735051612676265392052351605173782838215108747236545049576335569432357442844158969094970097933419826875049284317485770123987912315461569383847671182508202581521003764215096665898242657770991722683027849868625448726311971014459313941339252379341672143477731851720277394796070768531549608198226720754348333689416130810790668684084307764329674067863919321808341528274419901723652993041567178960330249887678689918659958650385085618182826863276056659484793453414879202957436302648084436574718348578517596317268994404714146095113975134720112082353295518539602396160015849917321622884830921385179203418344023426546471341104951974220096143568646715090741548827852111345065516738354383862221407565347388091102917620657023753051853484503480414538990963888571096570225010022171653909741619279203014238977887905870057949737737568436093805856493163691626372142100986971425264483481381273745704566897223295642262859584615031130081401027326212602614604257956252352731441756434736269414707007852483478602430803265296052869045843831306937905911714354446420008566906532682015080059720845469303663567703070282622769562621074928320597401541004094087438933211211676870628694959917290447043898289625617911776071731731015452768730429217022918183791100984073531540966936313083807632675381978172105508202334776018300400420085307745831930259221804181319873701928070569727088656576542738995921436155367396220449929955875305162521750580916326658079946123430071779242561908628177585399233419549214530967538738149884496709762730565334298921349953823190091418212648753296827263717962039211130930092966535730561044370742756719696850145914439591381926618433673394214333063669864339144737228933167207477472029024507412100283458809816368799142085342863630304453582904604702258898459963963988039906786924118431043033196131678869442028726814295488513454692779647183503374957790529660609115815682338188259330491845866083430155340507167064309207308881738407582111737302829591231035233069439861519326232328009844481525358671593595426426118501937713864349490597192192067298268035238577677326832945871749715124474116454760541478548483994164208753763277319850248397614401328383062085232878630723568201562088510726338337741939644687912857814568778649892398287416747721380249184375746381035428907414504905589692083111484030389536149321752092687103693907600453629967612400383210027540998065560211160675815054455744661573512033634391989471047262456507437159921605236300864966255107175177110633694059825557061289079876677073415244059430747052252278557975542590892051488938905528156627705270345510025413627892947857763503192136018537669001384291206073916500901262782744979951011483856944046351593365469679422997188330862629352585836700455720444502584338230411443697341380178399973779647537573371309070841771272874065761472906743547714785558911603247082736858679971799145060325273651032400293952977086190952777847977380482544761306062162104389765911606424917000981402734890824864954072246487379001281739630589552576058470636254105995431774572049560285311601038037326035620306844142602411241426490099999069029401865350189992337249633995294439885360975929551896711756710537101343319622964532099607667082226519756370478190780700127961461431102668771718595183143849975554954487961363770437917551227831625627548689991727473827604666287306971760697497179463614604219322265019954678675524501483522825579311593349279982542174099308086089729882343688266256224996853614338819653486599870894353400103823395386318990855702789708760209626579428297819235816346910768932714485692787370263819777173066301885599968925543413666532509509224537759791151654212863369235915529682919577840724625901289485121775846989500106677947444962735576903006186693937144410245603171044762028395338454669331628346041279470787880966292330224712078139052986254257300477873877341937092906956833081435426800050005858673284822755510327513126243405693864139425251618193391666210849355167174717726347348982212812277255965795056460447594184995948956788304604031600498227576690774827014545960975896102554374548823165122819807462795900082933686905322163192777169603793066616686532928580073310583195604815984864604486092443477907243789648447989074983499557651189594053150561051883865648989504696932271364725669048822828777458737968364677200181044262003992023108085445368176589085352339876514070625942680671483835411650879948317937794706125106675747557728418933829348744553239072405572659066704756279742519205642634057523035037633826374675778013437024864199734460192201770475923386674623198984039745193422528205030642899766588910713306328141338758028513121892988234097131044613181945246534155500807678807956330453572651280440858475689308610611082043566822807451562459413377930153191831188571320414307443264028616486773115367785127457006229089088930390341349347280712774265978870598797173796484862892664106422881363354518520467917283452854347792409026315957126307700916050543492843322614975385343815215462245814128859225251831343651961581311233789155795454158267798040022357165779206008865981406989025603836017136763292933541235713531203254850821664360221778997024383340376538918242711392809203766277803802610412903685941758346401799691336012855348829542889670242639980239917802314399708513320780832637248856217689546596980400492239893605026971640304161141301350274854967508954762020033704837363624077455124609744023374991141806714467213275388809061382832971152043708560303874315883951571771185611368536375092228545865773361599821114943735215728916028038591652514671415078978307330659155135340075276344349531762530047152115041979129754153182053646645699496637830716148994355553323941106492421331289766347108726618602486809604712933762008224785625222023895655411148312417364379938061065207129510499135772839208508439374016182578873859956450685203792355824520116135957034895043275606130146741125164653207488866272261359275328208739414404112007832663430658200728186100274733330942073775532702334123240458120264089147159782443992765444861646250337379541506546694887484362893189373555836368098023337606741662573180494410668114058581303117545978841519100248432232194771101212484967019012398801352481607778209774633484028471673925594049455597426077050721583030901083045353623175371643749146044618041727689308389833215589274514030127020634991145372285378596732884645201542106326934518929776179905456032439535906073590441872237244929014560578214013021254849689680111060879532876193304635924488629937209245316082377781909169485268258692041729616530349879171505887839367634297574339736818698250103059763250864166543753949269039809466827763715904019290337684095634861864184840179930116085522834074300557891776944763450507977763311230636894531629441741465697026811187738713416999542877103900063588891813749787801993950142441934941553682350917353741590563624107865166298788389705681063374103338332702825877235897273090040195568569776333954455586997892254127256710606509371408295165597829266930551928503617621800222841459692612325008120361649384027955449085796769818630987579941615756598572012772355265669848390173742596004746431592480883504640396261849290462554252530615490087981795791895901599289915228489466300950638578063856949383725478528927824695343092382245575314862086585977016703444249345510609898266780178965893156139325647605649411485900546948529441836840668890227651502594190704013782047299610927086570260839509882862758289623737553960304765305099236758071175583011024015148422729340050416395678246378782708040998812375568496034245516344966583502777855307418237057585953432609842403058341566032814638587085295720292614075508620399486736127716068976519320137766385853487611969706947194142670778751404131372836163095773551649509885422804749881456426224797744919285146169564504888407970363861897237930097826172255418586682184608575726782115030645184971396157967313299441502708150252682736134755109461357281831555114263375658970792246959727090944115322674435898151742069049791280587039746001099986727423504622019488209726884745634349689766605192725566449359441732280642825895751654546345796917584847779943561509302831821753590581288281922253983528502541223057949433323691463664451699553364666383454535328042212513646462023679905286667598366602873850494398985064607217592187589711374502633660819298827307352511912707134339431860283551487180395437194674618379081272943567889489898748183384265355035198293802838929560453398712556207610746240399240451098902232695826879594063134032993510441746221700959427302305210175740623334652020615068529971958680917947612850743013756753754276095925702533922702835135840676877975802375106723945307720494888662347466509008046095546961366938733975810602775745735350552273521086626923505520894346606763919978654916491701622104468142747474964467559438335024648662083656764905914731492012051239977747769226226019961021203847947410211824840862747504821320240205422477758653918762653178434920695086730636684409562932981101139956443221150188028161575839041435149961343410331463247592256920128657171426835958433132332786722057216194138264822523853882812288022468252056799149045691060830055041667162180980962303957566998113199585971625098592347608109022776209971127378020459079704334482126398084080756721548378931411699255779932125263827805326580855049150817566209971325779298101085696840301239957381978329811835578473900793163006014732845047742492222395933765265825585429467650987948785413546363934506414383514425446413317507378363932863355359734691558615635404143669525641354701167158063187811877583389266722398583954015985920922386947506255060233223417373811453482766596346758669399751675998206853217508292816821662837053891359257503563728026751351115397319996599126153742832163328122005018732496247076638005749979430813478986015894737666570890344136179553286893623032137891481822116471654235742334387843010470819303869078308109601482448824096149734132741592315604605047215063536726496336612860376159200301835565770912014337722802152788468586927565927524661312438745281433110427761582229891174949166414501681312420387370483664736154701998456460515401669235169117654064957436793741851017391084831882839482491657906453891036657209211201143148077593542713188915076268147107618770466292730476964621651933772317049150319492402919519368048782767537099015120969350621144774747410341766933279801535097210240007495598380082018707285535107871146833006231108245311377557316117358187333807279986035577807929719991358117194930589853790904599654892423517519616306655760706474821938447469778637813540602379808631657795448002208106240564927646191563852421136129900570342538268579519337383147517904217109608483751883466415026331664597281777635388924727727455275292076944794773448831583478536515360701062668595338137318049391892505050585438818570260296244843217518799877622882173284947193199802598148529001991052080724708114839232337212656015281592064666777180104693082136274545487920094132504758523784890971497661777232257049146511877284577296132896532512489418107033870013914500457968274952005958925774530866932615547593732676531174559052960772962582703448095948773143687375474534517732809105886197458951192673028220185676325018766714386661183176629128845769855262843296876041821336887537714825714494756385729072812601342019143299900300271500032591066153182825074395788519657388173525322117676709132451418323332942252085281838283850314764374737902450188335054716131774782308210174528326141905877592307108901297528417761458395581646658134652805485985976518381709296656710181905561684500589324513018173146232759315721049098411602821883833126424941939981023532043452934072862108113032884616776765335718426926280557854495143092926600740267859583772294319924746622196322906312031491588903955009275985350703038646467352138191501652759518771754310250829010696511423748069461865202471408742933164632118294641615168941360051548521800890901702447512629233054403106440181384976858660883614790244141699696803637501683643884480096771537102159597659439946252378025585109610222622747922310679786456223048601949744867554044751930209255800626873961519301240803326224789733464815029985008100624485080175607942960417375755984501088932315288161457147645553401329458438468075246643696654352182701794350675062730766594731317649550339899325673683543271068499971088779756851576964091265042983238600623960974889694511986675674938731455459489106426877451194212275761936360530695481670416356578336353895885769002168501176729850947841091242072580235425984450823375893234013218962526884344371858261875150027173874338131072756482675486269764737887403097502199781381202800058388430884139991287255781405893194546013378341034174109319890630049992264229058481035331093101400409709089550684129956245463361184794603985223241226456785880258505495404300820468512735613628057157341122888128363766396785730196447768110975084567027259944062715917415924637989991093745267818234045845176458656259736888499086878311898452766996164123090520403540494287617392493847633012807219471064637026977524506836308806056649716497676428630456044013722072517554931544079241044182680177475648540181882084368534052998878651029340877334755209620708298126800945710481855523546915044426922134436230734974175588125903701547814467691951347079047965574243866848594753399529029471138383984085836149451044753991381209361080319240917678693137287655024707995928624154896769885398090769629240574309419824248057398295903958704923093739458077862325334723431316635705589707251832918393063150527156922106352724351826906465369178807763764952931111838280622066334881998484942202503708832129404090358765461134945204118634142772972969570772623252112989762978851382203053356671464405129043286288317834085849284693071062851448946744689552337865227445066916692568730829619699689746662020224128337891074081962001254799976655780253716137935423341514688659939219189360056064739868593378572875419804741339372841582637257692819880080582454853632917341512007954422762392161903713496545007431712644859279818691437590308637945848677516485753877936124345809538382315627909684163617050434433807061945498558488997503406725228045260540423643342149428114933040254292378471677169840776186320557546647867457003280146339285948604726848574969351279327934821301883388995915255300271369632225560400876953537356333570656032459335605690372351157413509502359135723274136055631567599094225584474635003328732530938281371990070610547277792357015880949197485330652366419629978540704980031147626826537979834801880943113267725295981112223653462843250081805250476440082027989244092880615067223302253379846650186121209640791253458006745722912621512546460243218293113069314628565830915622054504940884799518942443582387939055900188670155823625992780986825875546255588485746999825863412559905499120418794539380364117575719061786210164030358143519276049263943834850140878039597431105618514453955930429406704401392758118425237284725393075765433788224182586426675537573827960226005710853825854096254891066382288649104661155672403441659386985251215367183474099977834910353130246166233837784836008774079505858989219228181096993557369371325931047030268514227315260226424656182929569910262165105340762541407690345874284043402264596261954892854987492195514415311532310496892572372203692840891080467835130736851791240677603254266072628184510502925003295546800243278386907321003630686874780920479715360343001553945446435693846132349989762779253870781754088659693400877880336705670004969280014963075123407879921090694034129440235024069601322703666982866756860965006879292881996555257066995290597056905229632540367408982698989917576634205823171355484239961409148707490338587939406931238628161546723224920129683074621372942897555176654946232464985350015353650571439331262413181537092550947723717319021345460080859327739465516810565877669125129992678103912763237090847049707957125569329442949010407405987434253789889466829194171559888002695951969000894978183482564512605789484596741507398316406698431290644257169591655937898403754413514682949268088879136512066803424582804651446944238527263606813088607748849375929766438326138826918227766026935659873134135970549142877430182430983137101401606419547480073948093866185962882330561178931497233579706382788625795349920511331414615074849818943993045060495329862161151453376777521047479989256416811103600357220245773366381074824518424779766004523594793138308151789941761743348417830952427354387646864909822482536815016044905215095948992758105821920158630814718264791709097969186962717876524959726337180792779183228846065728933768614130012671949081592605703107420264000722309914142058867058728041910974700229275802280766102296191579061156288216912833360065890090523598959731609659769233422077748926694326027644688841815433915452094662448792322978855424190883018682648084982958445598019217655445630290577693388725092995086316484489763481532915658090973488543019963041211027138464832944305163050264517255155547911731094262247518418522072944385215559856531357212438901727904681835537492589595380622837003754737587120980268090651073028428254251141275758616346763673776902072633844514148038886668908323562436737795336648865491345734788943182408417215688701454057539825651299224986536288429307608256852304614194731239018262282805532558373011332754910129024815993487689003002631265802808825448382737216101911728142455127931096781588415552835731192401394685955031537744302979194075470787069178052087712095779260071598750234091626028934870919572254334159022953367307488287601503438433121895847701436826824166764875427247708339837847965496635150031197750739951898196968392171908226560850282115993325980704952041668049687465338358289809708531849718946539577912695538657677621427767608125934855797805765747534672152917546502194092317527359437731884266029942742927159723971844730856914334854147045271221795470901218619641468527914049951369083362944989753776841455138111472610088013261283919477551783380064425367977965500009035651027151141768354321922659097275863192170815710059800138294051246769277193340593260588891375232599117111688849625042614768311880542265051098094238428082656516325852080912689640731524187612268409693159082104794212220816121843317031292546011864695311148530580885533125787224546424729321553570210842171252069618980889939864795069964273425326019432082658169797356266468628296671467756560454156863697862003183791041501939390082324148154968923493035449349825831138828011818474779442485736182634166637545718504853441145417078064056046017753431354704184228182161896506474565218337772518489052362769177277571676507163697495894296257870437446931442952128353043624610724463810770591071616231342542861066042159840717162072717195328936786398290125609790191834504868549832470007030323951104987116995402478502138893464534918850618595948295351057864683501524049041866379984192754050786258413375088366649439984211623948525803303878816726378195339194875767450048036247004265964691932425384216090665399704248562501508895491524936669037212375910701880903376962189951602512090808244987753934260688770622566751341175387011424117667620609951492465672675576031067311125980826787533740277656943579444282701262076589678965594037660706842110594479012224787153340810117285067023446222125494420921026728180616473408779258873571179753151537175722229894876384018428571155078659930894534089376724832057024148634398580402007706684425052412916140710920508902625437873987427540235732595840212659755544347110477272726514748364450839251354501944258762699576869761032005888706818559875428370405200607248699740039999272056657622368098940315174645939330146101891438218439242314786076197705053977927050359799716915140896060479767439068183206604575408231797547451493168999328271434599082890648365995049490113416871943482297773041761181010925867162082796362310746444037259444516217682063608444507262343807164975363197270752084894384564719190892342417351949483775384875187199129154814406493338028635991373137320176378029362634175243766549356721435088749195133984785736340185636645798261941127195623168097192384006602821663713980020304174171366927102031663944569559171485195025955026403395852521944959471907023587888082031662630778288775327120112966283338910464529280216439194578063138072929302689274835494653841973812635798557116245485008811900396259020087704282818003218699355163116404847658936750556177387857585950603823322646344570085722788230994192976113318486883184390908072055960082960313714331057651232648296263374072405281255969501370100166921478807822269549766425271199758144209844496415517713743860567810448954950472137916767902477799442096188421546685744037094411083023951698992471327696937295628423938127765708457209252066889773947642932657206767208460291376489053540410801365247608317318789607501348615735545460370792980428278521933075357870701242035071378622138035174157449424454351596112602446326462790825773251469486983159471478811364227586019765118067563084736019132323628601248183660510008727950663081744202870959234861785455978821766964964986454020877663352863787283358372645704268841800046764609452333432794346153590910206742860537487805801325021828029514363019929761550958992535269323862849398817230574498886673690616627003411143990304177293303411746029118094607649658365175478901355824687761679814193714249735317029857887618413337995861284781023360399671105068691755767373295582397856490942905830871906003099674224357625640766425716465283407778249805312672848836466852516659773256744593896431272289300674365696847724463938123546442855656749151575106792097291785057347037878724380058422054394719894017735402956633380240260320506702826825098775729912655078109662318324377597551889568234427722217202103144831079939919092601810519244778334150195119527546839095924594315182414337990710997319453737182688252691233734808607683794452691264884142520342208780156168380425609773996076230963390008909879099366373102856951932777673942402158263289556887444203472195767962453514025059263006736492074825942712362249951140762128368763761091240690743317436692939240632119165868830501300662457408599658462028307804712184142300592980095098838326761598594845901268479853813290641833228117281179866038121280217169970419563399884503070171317117229216225937058145033961957319638376772361727957546682535150076181880214671858870131406569170369412913044417394469585809580578150227560590147189285553376042549702652526516690283837125526621181101907673041267791424585560449836993415078614637693688632094894124143818297215486316021306295349019247498039540004883517327815333015102346325741636887967974465524147891742065139349232267133353001850677059444914986324496360886990022103697296689958510467300370434529002164376498898593838307989890540742811379924523133298026683362025255164562132359072196854700431032938115384643355375931399423187719879359335350097625867325044261162755039945393297559894780377624693603261710771277892165142016403826978341475554942636808529595457038229259089468109395185706618154728888640270821038502786244901139472002929428574845539739028224826880087230613080803342716639774609742973072264199253890759657419014603323092942057352441012560452172995492425702932611568274646859165949990130255449071787417694771046734407907192393036384055240498910300745513331255113409833481489978017693556675068802609667636750807773692102494777471287020738942075959144982156084676781922602665798962819415185241343985114354314030222742120420083749568785647344084728027568803769668806022935784588930949159489125167538573245717155428946799360701569939025737927919044006372215147053885365161708500389588166985995949143816000525279663293997600829806675387326495804252396674504230812506381604364708723983777551668286401474810811550259318521836132375737957496590020928888042482270337157489140501285188176759897418066717966885282107424550236507778210816049439431016996264203845638087266038831170138365780403921669777017520331276878445695727438144726993726788193979285238630346375346293505113662507467559027363416463296705885517477671707379933534023859188955444100305236873907737666320979374688694884271633344409040248488707126335362613208478951804582147530438148965706238291426502730220809074368529970196596171046034999016401081800703061882706532652159940676807562538328519780269994031246172353488316795522667005846654846541938864274087250619251381546767158246834017990175876880817099818017452917379284473451585814591549274690201568603828396835282750641374933276033803886423919125075124730625401742807909256288364722663741932802467970261977085996986111614693368683349802542917395728698623639323845872058773129064287787082272242719111624593772794630423065745006334861622084973879023395094587415704486410602698643529283870785928210813462760782300992566854172046009973770151639117807329446363546483953249751833277775183583813236914764261407886406668152612495702032942180163986797315321852677526879905521941377095640802354975686908353649727997514479159214838586705070308979186043859730869474734634731388354691553576924440611798130776081178469487786071186369309191912942226883166600735909424883892259738569025368098647274769227936768135710172798393218739689590397163873819265794587090571776966628267783777349513007038372893791389378311732949828805525803568335463524498010949694637307875570428955558294763859247429782383128473447559601832378743376765364884542729842011044808017915492390941101082056581765280833358630393080092714221395640358952476378392920489922435103399714697132801572036361387261022289229657942273791086705427927049397089739783320727408482702468810251091231861212133539575534309319692515045554751015707867333508637210812062845150401739287456596038582243477490090570278950705230060462654200577577282619081929817166168955163200395186104916843960484700891423634513442913340433774607427161179020800568466584119667998809326955100318795853953742286563699800128018063746741402993048147547189235483372539276518411109588755806704153965531959837744106213365442970893496305205901492607345859126057703165043559587348065907886535890073818506269333074234590264432722264401754790436416153173641686255947413644917684255864316189515496455618434200492368771419160559736688142259146779403685286120512880385205536086882626750868814777702872344169020956767229592609678582578121494786650404030116921197659977992035723475799525875254271392058916214198105700169954974527895395741378811637614133015396394165621893797286244218351192337371084170636080934173826504623744236579463713932510675914357484530104169383286959311549516614040068521431382218196244378337351671142211954539355041141430275099973468934984865146008739300325400119631899930314967054296371066400970866322925389105996860434696023814272977534566941869846988516513209554388730852119328051104382906464128090428196557219492255043571238635351250317731849636257256702339834131677453535261531941612859995520016863968380370790126643310531287729455800312448326746897144336644062989878837124099233548821097258778917375116180373143905679169606112718157936517331202780186654182850041696785592673694748161253551853827339511923224646843675558943900740685816892610435378316647507817299978551843980139142718777060344948322454881265008295990890684632043975230903427284692478377767455031195174532163063946076766378940874179671625159992065919541706959236820235461308394828841871479904334453538828101002814200986954195549198216204793136194465807331137515733559794305506317184943586501775308519228591398681341847533543517460723719391120178051633459520185533772900360399195628247916227076823421761757856747645040106484554905678705169198566471122886951572092479900679563737747818959553598878030933697774296632715341944493092116692444524398902648244494372451832688027479592238105559656848647594772736614196097401691499422149568926848740880279923076332688341093692670627367856801896949036598602079709479164908279515905135724064482693665065949686768202493021873427329604420904263188533989472084981865299367573867776273177403202894471256453668959354264022862597591633692145670361929429205012461680623109849773441627153035112858675249911571391067331352308942770819233629983812957636209815561049301237807376770206140033397666197785054280654412272999582008776514612111654453115739058015505541346939472249864833307655781616389774728941315721040082568378370686677458025648967605318602793124923490245264450029466023986475438235346236609810891356153390922051390489887373005973773927086937147531048216032767531080353952016054376094001313881011366891111377195344309875925300585887946368684710827144231359091720431050005691897446786860210811042665548454341711761540553483753786249111404890275198874430277407820166221730418064201190152460243693400767823777124425996148102177461277936464700541161006660387067039803714161558190273144192522440536582375209957566180967784603145131057305152031681688844033969965182700204518285510508222454820032726682352245441823541569644155852196688446100380115343712241745458174722615220271125522668819575067680572247937717059762951284268580252843960194291258029860440374106431284576631102231532551223461866041417722305157796667360266703243105176070941459924094363117406734676587297882350944857288004720024394151656337652080668882083456747142012246532049139482174842481179833774550679064136372981387616982306174465806655033928913627721385417442565230198478723345407615670525845769494778672488171701917878445491805557400009504814620951459583384839418977257607309690938612701262804967416138531104434877381969410905177259249628375060620846256053559377927364574428565498343562399037333068777048171131435034926687830156100883346119847570105167611781396041731239010722167267396035429294177814822213607008475699231092576896353774308558022837331323322122918709977052615131218418049320006794101444804075765977373273836575810634064102224557516507076883388669518302372968076999194079753889537457071965174982511467206981368826533403680355250459163495466863356449024436239849461513056602774923220510204925064014389714434355713477609329658163422198705462964326084373430840055755338777440703534301422414772664312264246720614992502495720419635840474466572655844964348211023677450301256518212164097117024104932719569380667077596577839985014422897957462244816035025184911438484151257653222042189383914867380552538608677877543086144529284465297531331641571850518896057612231439984127639287434862730341653385367861106230884538214606597397017913561747208448034650886223851587341001184991401996123721513962828604508452113392154767458212110551390810470311576825439505170181560996628504301000643729079405268985425533412495745199575462802690537647399129491331761676840650529611600073060826946621339956481443448532581054930027773487124249423156467145567705049627938960838809772564211103389545784936544885121987121190054419140622366100268870345861227319953589700368170052614395777398469615673576848319751840271085728746327727227322238797266808137410102345439105328461584163903068498963162470000429677200216707152702116503914099327090063059338214731256304066843283061624632323551028405582610674925953044823917720771972263410481040945018350491009131691095564048114692724359961998206225126149414254587298594005467439331896772316438902097728197265808234882582029931341061344218841568277645502030141420905360569618432146781178246359359155382906390263316019896969993335126980252977903875054363973794679280367941689628596707439675746505505075256749430021918858430751508881103850897603561798623526799086443636198525951573591294652417115363356673186857543628251512396387460048791632395539053997243161350731368311711834936720240643514842045659722014936445519573377328976815169101531198019002273887802722560292464908009756878508070630789517290571180986496006261443357732534740203627359405302885958984975586174003324248921724457396965289381730108826017943964878707614684062084510938074463467895057591489522180051103477636058891682913477561307499461763567128718946523834257269896058653564674783348445112225994035960816837857051643545660591076770000555242074305930398716657834361919090802119484411841514338982553979749059558782090971608427829338828283937975648713639864310707229689031343495686126524452985049927270608970784210384865300878024543347996989444448809520735163272309485052402810958689853510898681695063580263928493922444105558807978649489754502392261094425482684781538993059093408278304905942646498403836109651659113267847718655038424172013009839783407609181956717158733961417218028334808170495922445832435052419675542623960751995157131052850117541073538127705055034576680947344079605166033404634375448070259923311893827321956022966022016558291828914761069742139851764231316810533954440133841627300758329185559371291112022125135071507935633025217455171313493973255531202332133524288565556425167360069376815799655560179628674564445338442965219693329515981987849121146016225650066075939310069716226589273994326350345979013522528897647584840796888847726179383902172766949456715500176011268743701870333065032972192707668245597500886123007824679131528582457100345201951362305099085937262390912265468247948008717022160870532896708817707584636561104433036107936840763267841009584341134324384604622925831569431287030599307466751773355376110676324950162442905588156559328850048035278565145500693558065449882742841419643865171549797147942819310624194941173114590037856491901694906523427066635159841235595662522495787210892959265944758004864610206741470651028118101139988374767793052608278943532530220538907449708196275229616756935846922832059950313690773746027330904568175369171889788684227513160324313584457878124649014131775026893265694808734413227824719718111724499177839126917879069633536476988825061561952144291397898964225495387982187707991100156887840140630517900191727022031139011072906504937936397830091410362585101582428626910772332846384821399877870895976518409354830199362814525898914976457068487490113069125900094980309089000053673274165887961683613078909353620717973955414777786262496079230102598911201551615755479484917247210439924132163921153526587612482690386104960211121424163534080563460724223655970605937990924116355588927335483188865857072040982359710194616188064620044282723685665959311016868724753568658788095432714830472748508005289900030159099605492294709052600341190117426514472540889602671568061455500341340960899641933804430876299589157172603849430620093237715844208078688125191440438702224131322673713654671616240977163871424216468765896029560040460029247345194255447048809073290814550038624858226740715529195167493279954977967937844637252722181984249079223270059794135144359408926854266400377124830992728489329395417346251891228395276649055440399027889344256913214256395658906491725999475631167206062451150060868732510202890273408301992659004043422718862195576226745737353516883679361923601303438123943089349906664876003499324959937388457193820921064944174356271928085551534905699190847146995382694359123313547022988416564100394723890885057610451339249569930697435341025210639417498292831541843983850793540957939120040675188400825660585785464223807404225921059928263253105185604743835442859460151912538736268931645428842826535539277666471236703657707970561980724156227391229632899500790227447692646858140011008102318043794131058220018976495768566997241696352236122167911477072680739699084202637017362691703322866539958218605849351243789238247660610803772225656032445793125854636074447886493712452078535068217473269681548159007274279812310612778673070303363634211518182764672871117222606908873782513505538833525477115220470822555256553727282591588579676388487897262235406929326487419009188012168298691510652140904359128462692561307312045870947215076679353141055918787491070495345780500727242622348822598602762292073308313641584321064560873505788928598881166502606188071221602915687856616941178920821782980252688782331264253304983032812336796607454814368565948611751519672662438629764858206902815200845726445914369878897955022963825910697873854302810250466784847198241198007669793395680737398941947775729964071550649961725806564396745222454962886764972196540297545166185934991127928256795311144031603463450321591052560766539938188620692508768370520923829947499617986598731082326382727793814047312165715113971367945471982794282531007299004141553498177427137423601877255234563906964548201501749583684866702662679032590863846655846755362451819604687332638126485389011773462457373082610243942284155395567455733860107619801257436489724319915779717439873590967103885813406527820737922635748999586097845315592328627197947181128937238771311905242931346621222486576735568827181346494697729902166989847526647227125141335227654010996252665856811246885385020392387035118157365334231978047893724691832829811094907619420581175017408981205842150743896884755473620903756575515638356369942074289292556149165537764003841230084695218851619588666286141574275599922680361338397515776870270421438356508195917940591214865876440918108399057656112975539908925092849324826176888077610610766905391120324538165171834099826670741937310030452084851554272256506736213776710086127750346850992559627289656718910240416790584032055205432841766328632565424154673896451697140545988979823537211087359215273268664178012538815975390117603229444964024165499612841822909753302500454759557336408941757424966708088729393798512816604827251754473780438195575134257644460300143519831275780374074749508560459599232319913431459774744341395597823304629178456311759056671148639368620210382748933604770215315566827602180066044241299295768566643476098255648240309349675038497068412024116962775992661977432449033174286403967267348456857841681018845116791185591273627972486727687178438712134651119922725626248546234309370177153905453521582609488870653466106999234246687469200342925398725205540807229255564442640590204057640298207907770574464096141557566163726843300380994576154449262085650234968528230324449658517501353559480461969721250198484237864037729421270356733542872712074550661308797747914259422873544999849918152314067076140888440523215930244393336803534604834322204904625456439814253715505400496211680679905426709756842071638859943807063737507914774146503742023268856862282578696864614187736948670916740635679214509872399549995249116214215169138411908703468555643170180186633592058863010367685509167078610416785308170322077205091748549561671056187185812309127669061859068029079248986045667786423789008542122693479790685240105529042351737558679281217906383517492854621614413056414198090755464891612151102053627435819186392982658275415127787719704113746383562914347230793931814905115409795018507674445529104543629002777024448696942642938164358795371830319817106940309630340022075361234779334852507745806472303247760209433620698897149865317286267302140379135608911051084754407457143214117139576885192238999615651857691281700071937531754508244523291440092716949741013683877047010634235987243930457234092812697506130857704562613407641408982855336452092717056374186702912624182741466872213850630950423884553328556751370777175077486540844875263689464991678689125320879579943279233660515295221659506850027218655351093168377494277329988805281910152286178672409983263239083395245664985692500728192733990299041926766942615296118992973652624241628621181549837143095816080830661382738646847950139958819863627540879716204279035879707231536014466720345954410461885193145979899682995366561431657332570754158179060535756204363925955417381520653247186959054862941492757851321578375781734097257587337802914983522830870485651098840399894606019767459683579697882304440078645574689318192944839555958667456032680606837954942135060143465039547084720759531900772524137240221606566518880353715647446835637882899943021972734824355351174242595899520267504548114901996418514860604100114127205839260412270813771499096741299145665632439988656323308288504244367195331271027336173785145537574600749320957808185291351696440619685267655003963037307134580227905917881118806823731503310669059064448203378805268583726107396136306850231859543990411926835627319648284454644921613798348761413339001443480872237058473560190222229144023787959454338706730817042376379637259017754295778154914458731554923090650237782575687297276915131545506336368142489123907108879201158717936209628798904631831965054231773423959009841934070179810317652710693529418062694102497999371774647753253083463867779288392792782387941583443397126700273140889490727264267657418105892353079673963490550053279576647106043661758317578117491265449485728797570501518520942163091805631281134182067285761426598712475906771022624048919083777605845042991388309229768078446012704528333923838675478209167744782500601794518361318374865797158431896564569558016819406738203677707083118855420781383116046637770161944132197590569684807703117551050566539153600581762050841982101587692331463692457570071933468998355116601158347943114456259187130448269643180769645637226467412387302594885074054583439902151780647871784026408468267522467082153836332410155087078136560338571094643969910433285002664093564901344151991775076756936511160218164694425443925736128651342058731115000763333733399335872186239118338920605199568419197511413668647023584741895218041485225696228245283088829878664435966740110706001325843822568544550194646861732602050266557129042790587940930011913850751010834821239329714718471373562296188297161920485788442782595679974626636201440915950649992975031907165348584676005624308131362660844820432236665280821941799032049280536725873508147280640839825032572602801393236529031917954951262085773931297304835898525084673168854759471331833404894733195330858083625235516570544587632584187598312440246974052211240200873623912088138896123891979189654364537735390008777630592609034298575471794381342754836262620461849171801481125324541393907787779403193493821373309368178651415734590670263889578731193488834251471663793547700024394656864498486270168832211249372284131629829397819768309171966723092582231467427825309481157390421124155581875920844667344747578761729134871312962954704427932560234755970805198845880497782064382919025130852983771554459586359632270284566056679775957412513559227450645476322571157134827731787495337051274866460693389240127429966207256615733117189678692577472137886168484885343334220568427673087693782522504853984606111783539597266464041920393375773119098321799199330765541290567842004936148447521407514891497714598257358070350407759896034964349982225577169535443220375317706315305104119509601895760529964700885236827324326840509645694426221343359843790004681658901112899602947680650139766249079850507993985612529490272101769476901337204996778811340994854210684846965477353186015363210774257062922278229756005722443345942967189854988372522590465867906515943365359146481701502207327926444547513255400544481182850815139635415761394074058135684874573656703249019445003188537600482855834177334913504888606724670110177984708946292069196444821918376125818658809818744585875756502789632031842962148079121607937491694110321753469908689167396023211826175986198883276629581509006849816909682476918795685551384652085340509292461365441330418578147313438321628014028535192105871811803252306208021996120751468765590376001580028666699580607547599506592495638878117346984419910216737284473712515290298166594059998683828990527940728777919960418202781607824660320899715437447887250807439019495067256688834874718780967786518963854700956982715068257964527998260065321607238808369135258161851648221997941508898042566391967694487190798098904325396454802778807693656230222640250112176078223052553556655735224649214650201748282336020198840276256969343693226329112113551073892167261061888140198697321271358637457659013686529215458816193257926500371030321151834838400733344085197451747919541616192631901107322158474729593658268527485996021633330515738183883863422543172057565202236927750527222293680249391450512756840663138820306472102026102296957063551008831218925663276063854608895479297561771247717840319654456940412812762822320301314473002530347465893265561929871449943802191544174877711294481937423094436110153939906377383316554528262631517919171695896524678337823488347517188488866999420413203346964763892322979842855167031318263721237010275342403408343835038029365053929876190704521284384837862107837435912822541876240620237946104528240834977247978878753270084879203955217233348539324906924372780319222316306528493085362630009599867857914553205704660241686980744584427989668322538151513914659326741400948744370982179942787297848588635989084916288106576547733046783055198784447914082846543063866771453684538478275113544164289183272363705816735786576564024967612320742811063107133263040562556729374278990483410677715939271791993756784059828366905939439379791501538973167775881564256130135867384915980152581442351034413616146159854273554920829484464711679602725480825437968577456742391776756676447942041988157630600339972153912056423390424385325754985037064732089460537481215831227223838122615056404904767405704590805425352518688264173760805583509935763207055056239047495118879981231800155006807654861868178464184900660304163193195769277231464308369755769324778073009359990496538559966591708351030607910189066667782813610265070284802150971750987323093537808960242213327257591374314998780401498154815316094791571140637916542163547939294053062739463910787110931025933344939942852124345774423247627895810074029155741590024002127418190295904660394645643180585350475907386794318934442705830796648441141558870788204736241982640153472137783367217671176736422698804838204716832000602148438636918950329461301824754064252449293619742527372774010529015251300043131660479097530989577348826548953217527495814357492066506465444076900457381878677735443210034927928884891309988066364488216801521216016329803576643852874913620009426896284943722887349306584467113761024314872695354547870813904660871008151750316191544960905242766811588406777153968866416784382601295317390908587345202016045575494554951764094249308421053359597160468053524613214985248759038596791955309989691587853305155980890389391435870456354475607213658169475774190816999506681487252386332521037920172556945810714376664732079397213325985767356385711315779819488382524218484100424055088360197340035761802512877728286367159812049858260091361931746057343839909715043559795207825708455669630320083182897530809158996922250398872683078590545421772313716381236580811856842430394955571018509788639422364136391677352582062911233650285575169512168897881261749948671210030745144922409405542640091700920088469296224337585088462167110999797951308995165230084939558596619987748400988383023559177886921994136053764570915741786055340578116277125311602059657652092437863894960446626385496575976016618279700994944242831169236926615866416536491667018822349894803972281893468496079084626221429937935354320487267297393212495503346845509860221028087555859005701411808446191201826642574727327208438544023453486930480802558035532341641151850513453660153695941244148944283968178336435416836775797954317127991385657129209733407263281730997099061989622466019266017510798146425822579126289991499674409299465129305029129787068987322988436530851822947123297682410206336627743965223741524322838692484601499855786151175028667866719801949022441185532384987058090956615693110304952815557238957758585068250083213870203514695119187290869465024000874302422694963574025727344493188013597769850167517199974857078115545108936241953970369413933742390975810818326391419640476917172083528156855233616736866580924111451988227032180936442518340199356191684800902787752330982613582968908189047324850139816388493017155441917336481291756571675980873244442731681144102288175386223560149548257522288280639253933599971347169341482973942440255074049015880998259356364914725919852003182785590151621080570651483634384440319733689700588574921047165157175414891246196139568115243901331395404043358450800077785685592088209410688135061814769869399566152555918290171456403487238275858642606624586890128014928293047823617815083742080643457607157073164869724841806918805782458341932141943817885422216669110523063031170319717073158525970890160636708192176880666475450341471412741957808195727657511557725961215915271701321605931544815137859771599705509865265186178069808733064484109997508742641278272131617998889330011446713847739512959274750913126765492807630961042701530038580477129082238848688009150592922340136177777734948551415021625684859080248883684122410838722252100622988041086936396839374572663929260338937745294294962879143539750133562067652600317209904120154053750503175800590935124206541686848355283289254394409278105469894336068128330544170202945502435022610424617387892680921682763607220508328513272174522437911011626486956726518773566623312477362963193896616258498689413009601900685756456023322181459128800515303249208122144955317747746416278160622849353571134474467426337104007309737339072577941816434434681804245338297965138750463421666060396915102649400762864630371569199068415362239694825421297785812720870351183704309704242804660263605234919904580218908399281457582634738912944053941337597274496586700158117951201622688494286517422009812919929853307096559216493018021327705102314556625611630706355135740440760725980505090262697649947155499746846118678996243424892873582123092568942439897417728796736563142710702127346182439796578154331912787875734654802062684490817457708597931546291922831452980186597231114971492845434779162054880201935965392383921158156471190169520269656734694485280602813136707268496554263010258290145395140374838172959979071675456033649641712167659051452578969039973914722973618412930655195378668913942022329083073163686908300304442888692593940859629470200205707197079389319436097890312009495322808683624981363642795294622898742022769313494152025773774161083059414953801047840323818716181443683973207793236239964330293046230513386798716825534234397780404353643348325656510100542473908607514999043537363902259797862612888244446330879069269762280205282922453047188543699737105578471709447813483222847058041607481781962386542428507174426065157339697674555149355038597084632908284394950138568925003756247107800689002802303919199818519417250764284169970849932435760040787222291232552408442800941891973672770940002064195452500694258390054209961486616415948629936937603833955943374089787866630658801433791565614413713845383087857936403355853252065579368362896544051567191605889775197083279696385644362118618907877419929378388451814647715451543100997067490351904675310579496498687469195341024719097940170557951951453068708590209712349289758509974764264450330515222228887937829195545783481621653299959074744705547830019738602507957937744735072162666122167080419753658484006324969668517118187229422910875159949026452553486398806808022591784365762858142372530615336039118969897954227844834576493424690487676305256684897285307413166102662379862393012150720202838966255645159069062696730074654123946794027330982809810381114551408505186719874495521079043705295303088884555281423787215460800732157477571745526741385238896411708753079001571556194230829031274863674175023469454739830611533459587139811070895373051293674336565096361274677607438932403690396535973889526689664841205554215487816584914517891195278865258111609441584603484973874399983199851799817148102018183441081168163103831677989919548063492122837750107841340464085293944745988954462774182825077420634273430410524950320674614175369873273296808967831306372268598036964066621714765641408966011419371685316615041190439599266983723830069985653086918525149128950166039668797342996514508250587422061767141382561353017497447639639134181758347695260636594623452928783506903823789038547765881127315564804057125862436319381972051918277786953985305659006231759916456601572155848104429439161904311911335083997850965075480320119279052546035373769356828130172934776287986914159755651141549595161630566243935997918543975601616984382164417144827952536895171000490022230429738298807997942910793410973781598813772022381571326600900508419492598803705738987774702731317872849080622603654618998670133578569508150952272114262909281584104000864928883043978640747955804486123746696054056009424268491722998156614714688469947224106768784249933959392006013943688859555118309074084538201536796307535701565837947246289866447071669242586985820139229035367249350576365285828878244726298231926810100448569106979163981609836609760639627560146841333307073675542690572357243124406651992630117398235046743768220589644703143517604044469944767319125361526684875097018158994693409094396884736907076875211936914199640371962087937143733633456253896747950714403440805491200089461327100545427918718819412392341248580032031013586835020364327108596065555283755365508295960788774520673351945239572462600626574802268965612370959685376182940133201015079919010087501276826763435551862843525060287667042422571641277874551414578510676868553779900868595720086546017936170034242499397814783176494736954384794268066576620197478768383330982251321196867674132689059098034104496255769747535451079626208226425386336970943232126320946535604702851238487690687535303348481106034272857433943264769426039047441152820896404076247099239293571661676382936245322240936437128516718269046701594023559413888253387041315063098853687219074593210218421644239419780755741956066454012965561128487980534387830422126099522821643903605769889366328101812694187664869885269262446250769208375157584636537476429924405844131971124461196900533897657838335350486762718688877866980894028992678656410638570577706770556689536251882069288665784836849454299063707147435082493641759142112351504918910829382142400898838723508920321267508832963427724561584208983702195024446943254377257822456572353449219420938235511726795732101276665490069586365340163490879115907030933226426457625795016805618230327920226224095494180825567467861617112364260776264783580515793065527500398652093302127341467731263688201456206340658297307323127624826054845669191149351113853296297539774712413828990094528065948756424729831380604813384355819782677024062799179231232209582025921274182127176045255347581141627648672841188067368034259928545754602884671507156076383482909062698258114253492845234415862744605489173104552587249469730537065444943790328377411398304291034827293777569617572741081027386488953802209010390308053563044316264348254788624373755319654511901166904661151456908872501443044765911138331749518834735004958827483888349031082288147743356862651896374641430961375773443269946759272595859973601883273827032505859187565526300827577933826923947166121475312890500232822816394291841940694610155631839569090070112193335838734087302889879369417274268493538954385720279624795276222686758330449830901715007706646725014603736276759011397170224831819809412847186698033763200917283899986033615638795507929930989290758148045984763008864615403235329225270887283313605530955169579170642857087420372997819185618143474293689581018062033134519565361499909711940940098671577166651369552229268807386629606515040448438540150895055742576756748166079598311701164536120422811947590007664629109436873703821906582224504684423085638932880113979595451237845819104314966572723811164972920528252446293744696100374521452525650280691044536105408200699577194350517424081031268606411997693717507652968003386277297112673611712073047956070232904192378578676046319616144692154414913576240825046193047593642519430517864940046898580454970961745021768350181808897689898610481560002488676293000402996397743186069546308564494977577622136278507306731980639275922276654688314606330176442642331126625846046314647847594846830972282662682181644735023924975503973236687491864882652109766565550291383645158761655325198694224796583748549691559393322198833322889624639741574256964010050945202744163013439664808068183815023823333355075913411475169902702247797525307540417997826465799887995902949552053983278876922680663244632011751159961199817097745510859653602093372989843338108645077697085537713755716531451241651642386997586468942894717556496152020463020879912761151783476424553941303705043376994913991086799739010094390910330738877575893260880870404379488224414642531204379930056194406855070348795831390751276750674989717024973338217387790710467304944442192994689492057045666451415292105396501639862486297584414283515530187832800808249943295370536003354125318626935204305043520400780698902936394238115068343000049024325884560738901474066161847945769063753737582099974482457385717978848903065836884996862337542777548975438759882837360970170917165207860765186708684027769679354738573278443076430879096655006950288739168520745247375830736407196850119003840809986270927523070048660322202663732484984746281080608490623040915788112012697454116132084907592231589383800195237505799715018003986322205583793620376545899328346582953779061883135290909762042836037626760906741656707074998181455630357758836591065117729726951862753217747882990011369950866823663326202562092487701571723839707605857360772885020488245280118421063569836903374862353838031366002410221735851959441357823192541150049980569374507725666993838754923391563332605085698640293374828265375119267792297112877725840958075116264125695934304943547256733122996369269954668985262398720683707541535698111661349135893315821330560525199392461455243044211851646350531549875242962374522567712502261741323975835559705464694098796962164075029331376873688873558429480794936451423064780962570405332129688735660737649947334804110228672435448312277363314292912727036683476712543549191003919716241314391808605947459214019858082557828926741894408336746724323609743540285965770878982970541759297517711276281604790833326564375535195595565416816274465445435070413328083986844410229595691896821335839263397108724844049109047652434469553485675882454376308331686537333582169390342596955449463259049377000588263200975113460843904964506011393969948733379918777100943775116484718119394661955925226764917034419740514083383894047099863004889632639543145360201105891436699628664243332181692639041095607167518852136651462616539972022147666391907898313007640182580432280952274698391941688494008093295598285576817299594860564269580374581630443534393418044393888862954325946843572122818088824708245892876235175756350572232393586058809057464191662001255398568860948575841109637029064246707346039064279532265183886509342614494894047271541460875480665915597823502391520557631811020372838577236465125565646529464489475540602088256082518758020442094550367759626923665907252871850952490822302392651890048681586321316270107631430589074691116597128182589473117647454805056426818302220024183968858802156628997902122618144797859440171169826472898278469161804805658338815525124418809183892759560461027516166281793074367486431269503434264623633846919741026356129279818233591422207687995090187073679847579151404317663097981273824615234870102471125736474657373298540931721380840648549080924538454832194875785731033234636904847288504075551987282610432495929834176684736583757158448685167177617075348199672793126139256454209871003810009983025782826741658070239306713321509893013621807534869314451842140538968740348722942122433792845093118272734692435186183332007524683406688452758780155763737659965369528452540122651117941804331172826790891722866989925158734142780103448042006313924440067834350980820171817398438041774792215460319966787034126125526680977159653900298014856299649684481969212783320682933169506579345634122095977583231943809641305622438816750796991624467533600105461584742923786472372175099103619072533933775273001999926244633070768919747758618604368801204388349100785283268895487581542497815846405063363404124130856293242696562712077643070309020880796861684371365991299180061968745496843918576526918582612514918730991291978494031767230071757179028497060344761227294552477754859168774176852202444854009800130680138637463088634093090912584913483183022408858387298751804458061759367087912441980670956293002348076020784413524846428912855799757100456282923251803254966706651778586300568777927945063205922284062923811599662364861466172478699176939575936190477163524965104274279780866923042626764920719984832858167515669710306478895873717324263311144093818568785754410181228637710795158740816878491582479007189563599075505270500421125343284756814671740690322731921282039352079449364262921274765265505108018174148884091747891186568202640744551598364408169931388205080921238542316836959200808229674056282547314565160407387961085114444627236009840129810804632407576601452656508409238387423061367282039344792510183123592099649847516683114058168370351206210692010264674627191017950174787612332666593985653504695010930259532075835348982072323000604225858583195471592812846529427767049456455272141299050993903427989064411035607044638524444054921925220191036860963781288155406819966540882043172653154446380223374639648101191398083412857974483647715706720465533768842365016268896645904191093799342447591200918670232936889433809195849770985104132107277169101908724983512822311078719507455439997056328344527756722939443196220563690994710828991851016678256134990695886346767051214686252741234523892628002067049027935578725239462022588963069536296147539982721728201520301895680892742185796582181625331821426223998416495804427539748554617018741018760853811937489972355095167821323548340190635896854915942049670214231619478136655078034156294111984983491785414291890143494053396673715680801360037713816480920877842663185271763072561713800713432916333209617159812479430764986868484630442276322561910911892226543439443586805160307794451400359262429602056915527115485277801832591180685037027766705777045760880377341023969575706656865246535084761739766428232800736169187595481834441739148614939025883874607362836464680863677218834134024028045810483329696924878058619610298772774965863804022115110757187966170670618773107065972473148392587462884710453198769745037543658435772619556498323346722535475858200686918097708680049233460982139265692585375012856379069812165288935004995217891013208615635315485429510817955913484220474487490464919704105637798069379639152780616273577742686270849629488355810462168000639765381183203511730872231656744504378545964642742582937505713293864238276258130989056086739862208645851145506399167982922570027015744105126683218869282675316404649939071621570353610531392016172290914810635429589886032086055621557238044612642710804306956676038886376269043631599448790505574497642758481574948429619403709755307960562210051371724081903985379438072130028757621871896139035996582643107735995293242398977194400054241327477782023204209826065095649444175534731475473706835536375869450857221224719980977973098563034121769996703274130427604606016295152978977432910117437139548696574215653151571862075514100579675199334891480192102070255504274770250805911447021897935575740453416667333801640844435650135893640141246202451255607548962510388628932323492461517363009900750503422937511540740146827660372325480733727111085869155370039992710222444019818510646756941665217240156048912430416373714271205510397723241101164484345343701444236629168527765354207495884541142661776841985284526291978431836488819128833588399406947015521174338278147586340690061222455386623889139836766086531120755916212126883573745735773469670050438629140475034250724495309172793198156405128287031782147544380345836433018904491671568171294922368404459878396705324966825403471747322815739683927050013910957431284568853045655720582438037315295559545039568398625220147336088746749115866059029403293722345103656239139446007383034147252417198823428713220645380860770490978289889396457667907383353464453599372509531127878140146204856884102173036777309619451495956970339632181841574294960965283137390942547994087353755469504020120769659425510675504664241178611129764795094942195253279229732533406087714267166493616513738490123648453784403472632420975259726576627425142666710695642397204542690961267143700858078378332864866338828494593516119669090309164229688642897773256458924756005469439885429411212989928288926000129828775914712027459547764320933444378030450466765604253223253354338048579124055397636257273238393582064291438115881968678401837208304753596382283193852088504707985767359592701948293371256761833955571197742535518444580561911741844076093293991747466032842575184692978500723946217435900115139281118937183551267719030943655109284572401713037601908493641637050901284318563115186478212731842747173893859096698948187576750064850048197382325171342727805204134910794430311454704310060253755130603134988322880409910141323476885527261090207727378670014713187863066651757663053917362182013775370844162377741410358148353944044409865128134404513949256894450176806555304156604434748170185997326524924536642546332587007524667890034725361000319284580872613805423861667881749996718276981521729935191685028938915922629736338754447018040269501760939465307174024169318234776163288957250654981390795743824286069457184373483962112995744660375455718086484289613647284401667993874685762745146745373114236899744185836277529079777608604907166909468928359161627889592053224561221591155093706568547497564980429337909113930081191082408959181005940782124564340008882427704426417242018105062987911119253124700779979411078952385763087863193807084982754476657741052454881188336228858798582391543266624681585064819748929275675904971775601205570173559574737332470354195491509438204799786723920930758187367257530495403303726228386608292647028340895676423943388510704908525727388611887242848633727313601732915295657593826281942146055509590501687162813854243539822380328265434798709763062703733852343296453336909858123132783262472288812844453925884693700568741975596615405554404998937152000454768183970097399067434945357868829924747215885064431337607898268613279134767734897789356169586156077308738426424088080963734639056377799026268807763725720932554966958287376259101245108234932574688286582461296020781973169225917637378826137595437882700168513556509962499881991902279504822101773758118545396737563683411948051972097861362066150264899606089925635056518191104406546814993990954898555011302436312848694275557943285696343229324978159934100432464135230206755580235908217292389231723425627088272200164466098730192430376488781787477107109099439262882026921668721164470472555578162990718859195082404425195270526406932338951291347519069917813111779252153426918932633124811665183103600562741589067182076675871677471528225593119381974072190133533424590454781461818973296106267091374060421228500778456474471711428874802698763125276071607558844409592886535270051001187330979266597991478013423169747532985265520059799652280471979381826732481453709433438668904576547268067111994750665346394446806017280406354429323698655700783093321038457295497714831088402516383064565364829383077054094319400422342144875036680585709571930134545880886853641937448533230905462235869083306161115432833361284159064053725789329926175142436588577384556617473245684948636634506939754858834391009602852471771227339812817134272669474491887267373798144247961056762511744322854462900496343945483772228284576776512984454735354223145665995048847391088099289249053323505224655801007262346680110048736610867157190824744999983310941756524773511289343185681195057020301226129913937161767043357886655843617042655518356710631539444662122079447125420803236157356375833031313236337192236304219578430899490185016001912485294170399334062891475940539857818359803230025486233892244009708602767800009184006568903613782268207287592606834348838680186867990689044486738100058205049893683809499411522588028147840011251912420726720091584369228883092224093398477946588416991945457539039133697207048722854325006724850642978601680488874585534040843442187796397099990786506114487228183616959147784325184380192296006130717816293383064842315589236601057064559776386820790739438445985019438630202062782459202798235577123071393840480468761281633765123011329125973455046177978740337903226952515262246275628267590307716988026813620742565249668868775763736553601420224505489868745364638179473683941014910756879604824089797315021562587959435820416730333210026575837838084900166229951702065294437220876532729494130185499895036881963889513524602765270778694547910480253666106780642178314902299679937520040035066630812137062817345970376345257647391975575004127542247320991456619525272842524125259375111372815679262128281991098526709045011598370498023795231050897482724535624874757743647913574119641729634115687452473380914455891897928136215371354916716903654214476762487248642145501695894019572362657046817124474575131665700449616328541983225059429459829842647766613087145945100164337818102630412307449812146900555947343774189804472763087583803342562678385192359779914734119975781796726532964318282745038683887545892632604979589924086156775880837486111030768077756165388736411110908148617204862689403871492485496665285311371371102118254882735028135369516580314428528205768149764599275994309200301199966595567697057717819063532965734629959726648553430642939180193337403192506689369946923403108570150988390484804722869274712957119726894770972536265062030672205998469829008722450614005691254744563308550477424663062532197399018768725316199938965887334854696435388251031703585829941363849506228806321214598239611422051941667671137736657318038406842028059765989360758334247452600357346566520136200477482022679655465984108550383347688808408629699091235781295049975848393263297333689819833198448935329766215355708875751665185536603619143224500844421040015552685410675089947816851442289568225274050390782314992358389305855155384092296770144965613025409791558413813496292279927050669938903760054971472582087929098789241095298991717153295053449593594344959501309413103898853027449273514765972883750601369866370277965495879435843120954112907658281080823735731048161534441661863781744515935188764717144590922047681914139262805138845875931847049398894447223174057564820916204828025069647718769055477720174056583917628108797519788198739049859232073455020237990032412631979990802923677536451750340214893352742602148191796210089606775268533814741410557091760783359600716037545733462813324627036037181027663908399182693492446589395713516484836955133554628847143724486414846793895681974075927897938711385980103549908043415291650555728931318683300321164644424574702844159700925692810332659832602868829528997851250833619742642658815357375716397513765765003954504770051644566061456047733425071289550065954670104164043229433454816680274309712529515061566318219000634635313251761469710155373769042759038789084016206649648782416657514573127000489101016128431476344295297771499731264873150545551918425458812458062747277323904918122980824627918071066883189111189976365091338558152932140436581918379819285534479076904657047862210061092975586039787991792899429877223907029028284041755286816903459326825651207883733930198326237950627566048081889864717205212867545456322462566286609661121122841477540903760099306914434608390738688540942951502941998019337862108455357299878117691629845600821124082640559868113883561047622865272230194647072163385573213251252914423959923830635459166909425859348603396951757780963927769919449309282878647933719963965195797323655933590987472183936986136741305386348072493133075049390557129367194395197738962048461550665422185484485667421938186495106914019697331631457708732263888798456878741457844433820579785406382537438653888551885977958606889674396943296524103539831194050511627423687148936656423655453650897282381675685421591216425663811856397370778380568182791292606524651860683022931319007642451428504587929486378950571039686171177102779534421057704564070395766212852854816970353327184332908979569640076757090187804002559458895273618628281661954465821943641150975757065291411429490920554917875826323054781737068751457482169017401237822923633682169052654404262719486793041274613809652354153776336246129389495274702021833249274946438258907396966008943158900852746360393368200675107267925960089563265033280654815673545221503506582807936291600809694928965415353206521942492320603918554099206458226324088741129836566472322763097636122102811252776450670207544519430583031362589305186228063399325641842050469265808931176957442150949141826150147188957052721774090741363262944502460686782714593220031923912128182220883848984089418432276505934693086218001578117707704933890510280772080958170988695478110128735421975408530436320673804882666891546418832202125170064727888337678079011705930595179597265514160430964999468324721003820123817737419158407159751486825764732723385698393215901404892176115106313414997233216934188983265645638947736004921700873902405366218545801733271451526525517289553743159368624426408277457828258168923072851958922170396200416081392858192127720155146174107076137844977734414005119260933555051245341012297746990638772058049870810256983204036761293622170054397846851916112146048998688507218958635567612794993808537523652175527419262590820276478864435543392062516028888775808300352126908057967268223148925038262094592163475208242891823420785959870038192291415841693414217273560643239570847313232931859415612526211116306794035965225373335300067002948905960560715908068408757610010061303323584796137777993855592710576163343987432305567666198967175522181725900851678087623653798011414152421766814472625272373479543561287953571912155622546235445968046390843094519806916112900603570940956337572226832216362516350069819921955354685441158151563331382891265136163312823305786774581221063266946554153249199363690052529727908515327431983279456703798325724026310019468019026114018938847191134773768622846060744132160594414285441165596783241560529593841176497221363339114976772503198387634329187840356013889145659388365552281966935854916649226364498818696747649171084834985650863229881870658214570237569687507719053032491131896133618467902553028003344730992673563494061181111192091268456700995699858699088718642440604983067674224413606485168802173202657573584113223842040904400026794151521739869292044722965934005226415541721663302786313718376816514288004223635352647036032551410825789226162505703722208656756307427374222125617961021984268671115921143056299238675055023515506650864637397438125066099088789729166643882072411482746788027539921103466861255347715021857737347076105086063473312528436477794668804298768066940973202427822180015976447878284190725781435377920438070509596972947918105860113662844605870649409270645647410763028322218527290406549321261323833855270902887070173713947735230000420387646322105261589201961467251222442107365853844410542597409356461590285433888295996373363680231704844867326640253802822859211315422993361742473574958277471717692463179081274284350262738230534074531922899294017939503166216614993813421709056021363583057312089956354320397867505202671830297129557740827939748854325523961014512365394979133815301606758731009634129386091599343536347584543399545622234515715978296351382453404783021699239657746237112984145980451477852785343585442955286861397029748337143679591140050108522671236357653365739906519737098985004690243940136680299996319542492770972576909703009838452950113342257990502905286311798525940953241299503763164434909808156931956489457682121861939058240707762762198079633374229548464865032210315000054374743078694782530389228581596046877975637008929672878690340872822907655086857393383590096541886922213203173139713019953253778985371172597000725294844480243202665436588028030843688960126791898031214228961208980324227088539143977090573026684453249510669255536994694608349263284708212821648810394428193325505241214085065867148453413228999131395588887870019323616364114647307109010495212039131687166697554299418472247853669387577408511330645475871799153727300601592173154879270621732288967221847569392955024175130622010584188001955799551915129790341389417220238636961001376965135281743137011936387292309347831909435298149556419179977821379509682566143506268251042237514137307698397444423647325437259717375182480319626992051389503775320189788445215709851586691695052782204135837624400253289027868127813573987442678793431057904974270089959554358431525591578568137455205849869384301326355153066923748302509108369317203798481499176611312583921702286351665377222044374725769224313064138135217332707033279848947722497699628046404929593707765701071288845911856196868691970631705027183549352247357442084510277952819996768061863866072988422781612784780231293828341699781360555689602926024597041186426562549778619249165623368431606554337267747226813313251116266890466724896490293418440252214589305739670278952044132627130014157494768973129871857126921016818684603812184045380772244868600126828332683764858886563682863412135922279125823143793965549263542205522079441336298274538905562995783897991622145397213630168106658563396162832746902467071223447719440589902117431665088106489529126529319479136232287950796806437373432891307902915415570519427138998809325999205168474284775687595641883550552333478757502691662398743940130395042119007169186807474666187749485804088703109437228202462517999728325248848758221818025322951563910639551166438600704926206781187987495672259712642332342048695383121947676340011536019245136058176528943608652578943355799430294856996484224269676353672282968902328378408239141204727131709906565048730221029702371122541230935756163760798836226518069801223718378672115264033335756801807026721229199947803175732376825768267964900030225179692557697024134021677423244253775149847244305788534904268916906661823600104207957561545699859257899052866515295528482075717873423654740310309842704170361986327345749568281060938014653407514058092757827249331780163039096692201196794726904823029980603356633020911584410436118727730056214460985540508534384987670412978053082020009053642452154487605508484433266745776170589143267770836656818981213621745718852615207223599225967615442631459421810979098766814959298017041424590209406878272434650961522702181230634399654203465067685347814288055865509618067230253645040393458440661201725087781136011156724513717082331564372867141008757369105184556906354003029931154433236316991697468532996350656541947224424067324044898994396744216140997251518695978282235546738423593688464916885202899339453554522977320794654142048216045798364799387839977614042563803002822854016361401097598938177647039973996191584824001101258521064050670230791389726270403852864846730799851725587670670233332690259406981431830481807225526036068788096357661506443504729225693379094985659080140982525212282169576096808279813763370421994379446995879754988060504369344407681921882914770384789143304135859504430800416066473779123449410646102585628606769720143624325623829152114016122950631986912234171046889632055233952807070059100235615910699499236606069958107327993620325877516130045010319274493807035743201141771760517347521786419933621727021556980795850673218488856785062130137193654318389560175071361173092794209840784358599086338955975033189079543381097257486801832124734462786282980735739801391965539421903055453804928517357510781721726779636601509388315227512929698449242842075461132979493615304564053746597704697051636773842755688483580401482146762920310252471837013918697451029267873198577019618145468490833151798547490158714427490128145210149725581983392833988249137784011911639507726332225835883003923301019388978909799028778633555891082406939791351083693800041582347267260158824693945272302271753238036294603938738116526264828189630215675048612581414281107396880700297696660164366409351360369685373158261211848416672320949320314651726101800494881053006046743307234069210571934877593897656584400130192128785290829163844084193223828161860564324069825350923480082307504494989051575137851556841169059016074177549593950069616551285421570353046691428522746104529278409432391704254078469504632583314507364304304694592950960777181944191464620242713634931404826465431416344109710674257974929092588902487679423138496742116429399575634193129025778267020866843656163883700906344921648702388537562609950942337885439516622689028548266307287321107769403050667779522845254290476397562497943958570075610137515402476471752963126725637579841903624656302206770910759408013360846468684331872772324374334651453240627118525536819646633357794724168842424387095154663759265032041478205180301056264451904762424844854470466520901845570952299085445107654164210404189126287091900097783262822896076780001329121467925377022826576086372913913155506268547603676228693195149658236617294046236993787877836634466897479980545952582099440410302944745393818733490715850078546268490979615215018592499092177637272890294825442668927529663584985415871471224159794845510051190483624912569291042431734036075922974548401567812076845578610422745182391044986466019665064182446378434498241632973513911998174466666764135341947420407839388104794044677937624706293135973595164748193808041383892505370921757075418161485987532436629703712039570946289053289687308382485340072392011993321545499785605132112223877012142797978571894965845817168700134652884524823159248994545249569812692635836040544209920649349683774460281777474061751429687625074186398154950327520262633126985261298977842356534506817244678079370243989112073888872748634113474111641990637953559975933707329913127633840934617151308967068327295284364709555334683661871926668844088041392088389751836205169401858844610664880915893411779124508522966023378400002019061010004646791391741864747301556282079070855088575156170235696411421291205945423622469033611116626671542347482378826206734094599008808209547493842997842495528012281763604481028398639019170700901099949758266266116539622158850089540514853824935707964042143588716092769707310701413113125118285537991819077122495841439930893542493732497422367099155278365668900286174500535540332176342205915120476672850509818526235351092602273466461455554434267010599547371406609017536544932337571409723418601538687686335125311405219214716662368760545981240144074310303523264849493592454311998858920666018498234889376041473763283376861649347840407796429858403954646346495183164441215346391735339048717651685486596035753787459870232934980975193052979713189676509484202801320987071141730773852600255260365063261176295878890768965851168608106461181938693504549145491507478721291224836257865886000176599950739421647864430583621087395625707046558837464356927079047751926612995258277391181389816219519765879578239147033934460693421705801836019119230697954005900284096937299178849294036842583170834257971598138692188076861454408564450377972407999212191826816612880675470501689545770453876548074773063907053476556048590943635476564032488612256710266432502882382116725234310450805593149036805879329672260800147631131346339189662573531173913706386714429892343952109265825218009262028243351846458045387020064710915442770846436718251398497714246392117586774236650558017099700930997113902909946499093405908874928326585226599098499324031480027274960411637199049870517718584708696400875967267444930106290798356262626967467311613783243804821349910621849417767276078998800945229042656523740778839251036454774251421783122141924701854471861919985884449324450957312795066538215890005423171695797074341180468949368291347932352380519936056317095395447056182000883774517385882501534124791541385207712876337352677269247612512947157781082226536796314455718938814979616398139903089297044860819950556117977047789220662313035611677878808515493214111252801832797981802322360215879840850224776234945247450335275841418367633290425615391685811977913949442314913535195786478255281560566010838459470819923384604102061627375494204253853121685990022422879450915305271577846419447468039023462636866202276505160239537644699021435826377559520054526298778348175779810135248665061577628088636351753229617835833702209561289810402074032963405073535672361343515127410411566663174567914169186260922323763839528949438981533417786383296477635114569841805901211060194312076250127404136815000369404419522167099184308458098008505080870434646826612583945197448018657425153057147821965922848643499371713461378980193821365404511927773657229861919369344048203074136842570647315308583438181483664359845305928847583472254813967021242915709669659875752507305632987381405232851098860449064149687061106187686005974555542899353473530727607483976268256143794646533840869571384005488666217791444756347524091415760739928016232182096244879094815705896878621793079396343360975408906161168190917027615413047123333578956420836415951062871157958263608664865307553909158812931521267051989134665218971672574916734207592870854902954908305637393056313597515623465648163961812729405543730311264403253093614462623976194152860851129719868215828390417283389407696694321037352368471395379173352716589303366468880786002759442346437691017664011799719809502080785414008783941754437453128662598858183485873357227554240042737150036485393158235016313233035283787958805873985133000362028588997095923265081093790524848282579865669522828292514047545829261870784145738281958781372680795676370581433644144578245717966876282831378168502597229283591091023706812290265340982923027423176091473741061477841276379420156036162505468638411285842711298644969242874772077263234909192117255581057520631239699334092414557543809270260203206760987443080673617400458344906003644369846785569843816329563178012350512087317687361307577224366598924974473860285967816760864446375909881455494449866202876388410723626544001043441209580326494273842643071043253823126828739914514632165915525178311012833217782519280951681767317709340286475983097060454665261228708382551609250830478428009543147321264812634494818454758923804253010025007613424545834968492171408408050507891861709035453900270779108071525753764221795433877704900873635460410008548987337914217277587063794772074205793234210695954104389281683484178810594202449901849616016028774888550662439071221946899492915975125747042982244249432662107801904679041469433563294123233534708879024874562136754369486483823412777015065684266345302644207364353860749700998030515917476768513159437362595154414121025071808325274256997267556027318262422590705204856208500765506794373402424685840456991084748582911791033117742386460528760151371148634916616557548619568360276548268330932591754834118665666614513123942891891864811142274233010424720968781774420051964512895503885029101176851905246673533494658480840357358765961157889667682550197909912114518979108664324124920792228253248502193011775667362546631522168710136005250849804956231590667425152523850479291809149611263379852183847521006181449645054565292919215568413849871719835004034576581446358016566597485735547443344512714331788517737561135302036311767255828403048846630224936609151200988555115493609348177654741820890323350213266065649458434185530634358590390514329630066760898761753852686054558283379339104838072557984292104087340574909760394602834600683903478710539140633909639708870061182678563039583336373825011475543470133558769160842127185262906358168388088248021927412014379685252093722399542879966254574994395046781405085776222479556318058788741677772610481902682920910552653954762749749121859854963692364119166936483608887995624093260566349313877943195119116196773977921813180652646054968777120734807325803721921643823680412696780414558400730976953798727273555815656611621457856213899600323836732302803630547910743420282001050902199848975141238101435584245746555911466250757627768305313205415277134751951661909343441332693295710152535611743531389971514689625890149544586815403281521974484168765688710168073424685154815813875253360337877551941774786576213081357839915360764425019448555294130751044777861439515494016361652178836798700383236466898473886551761826689299162531957597422995194034839244323677712581433767643219708033394322253329800425074399665560065582792255178518089366484079548894251125364480804894117120875990792819367152189291082668115653350110846686473754153475088265085203308223832940173587316882714064716203340493707350377329672606966740088449622755833422819923659771997904389670196151821119173919808139200771577451728827841173040064769605055767597564531970956076952051848117775331362098049548230216326743634786781263319633874067552773790786178452546064510012952076073712533148494428995817127736206779281317537243387477735751711159776180008032251498322527619095270774679828843435228873232666344874358666503225520572520095054207214738904089924941056069406682800126062664487450187722229717925658034074313576737204292521084959331901626957187922101937416140384894183371137424243291014449242829696354383783558506162095315503262784507014792984548249175630883673112419942516682028677001810644114660480089574787384531273698239698848861525427391992242873765013862546451353990783780324883243132843832580143006830634338764743726456627101955757873141939838297638492178311066641498346119056575353236386481177230481869055636014806466177611292530756194931669613129353674915047218847743342727402571556791850260652046079264903802892517397374066310602164380287722137123606334886018428148813771729302546003781941547241048413834604087069223864898226545023249305614878263108111614653603836159572367157443100788147570184275474360993836177035961620301738376399074796003785444512724792006337125910257000466038319132475439817119951331198609569184676370964732759966878392903004255790906640277976978951477159277162796501018942240369392404735144232556676285353583651780726824267486812775945427241584876499423003652670950316174073928523784586635453675876090366902336021726683154266960479398097926012963967650127164333856359517232698036911997946075346836196791787643245548460506269771538850552573309922136282279872829200560162292383703329405425259810689309967049578010043894729966562868886950378713979660058764143546042825686992169462240688692264915689584405268401189471961453364940044675340648476040749460778441659959490803375989960937717714983111870749285057733798263162475859891663157827621821526011619852312861012100568592274445523271209296161673664154700749606347567367123822362598774811415198191446494153802966240895172140056510865878346675405397988934860796695726824118061913359594826807287820800359219104044205059052267672629219537725356249587392563144029473589204957742870091951582682476613229610958159200780790529005669924616698832365046883743006933850859424683590852505513568475397479667197146721889255768159685804786903509146379185586054573572000141088881579622243233883448869548800839457556798377717298569229141562389783511834164821846747965268772515904772535976678057462084970033580061334707340989144682536513910839431224916091238372698558889219076809437914919597845112059518842686062267609391794165973115284306220640801506496540845679672871358636511362061408606630539350865410821066019329067969776243823671424234605582875391017662625563538625826024379928502289855008321753288795590516311328732738524219576632170239941718912512912066816839799271288456960883441829676315078036103871798325730993316383370607793794204896178368609272742117516606099373663743493776074166896615453158416853314365910883090928677276041185887160600442920810392444438906284004400379896643030077493822011358133254487404334934839603916404361574570347007792168941361744505376828504404705592252021289924113649762228249805371565764488372582857670888146226937915227969322728800806900123280003006656792924855469244307535503179024444435130827321105928383013770585124661473100023447418402746377306781198628081350466997394640776217439906708616230908624103918752232754555630944334527760759207062425737235488452653433365426632456151724033105996313489549445799185623053609113616592299646635282209030219435613416158519619264052475895972730425010583469586472149391638223155062709585566912227093779124872695206630508030044573822409353283196028359423072708850488556159103194535310351148798875120595109867533112764070609651181132572142746972522223315497825539606539318403544182173441323983048953385008108257497596175927990772210941816797255255835253699265346174233739064286824150324022164818096127886663957818071869561622594659507876623186701295548042928130825490927172088363081930657183021564146037553217976109805570536556039755575426459115420230805594632859823260000172872769577533885053845609448685930782670206002411178069180362697793179849530415309788235301811622008661004934814834393048877277740687051965153413928276629371397183951422418188997440560677081602559660376610242748007677075818751366710902005296912373887206585886656357018577159577911561726307517154257764472993076115905838746131226477694429134355328114844506029635370950844689780637858496939305793002070697936986426930161913114178184208650240606240225854805477211426510277016314815883350294525515889772644224054818759405180413746184463050849732238388250469295964857781054785339605766810485368490197946510453282755920759241074933600912018074355834878777430375197388976061895807235389939570868979167226683603847407361864887444459407884408216263206141785919036184514053910332759522562501280306157586092488242552663650926660242212988281953000475468416354173023015654234209202218593777229079304128711935692680472625454642656328997005996357520258766482322040040275561733093179657501764558896937842132046733277912933613122045282603164152621736055265616664681225488857310289567126583630602745646313049321657832863605118438752727521931004134244353330950299656041158350947678113392576987740895324382096743900172507728447429905077527693577021438282194672422845950898226659697049743260145729513247951535799700111999610196121747702703329244137063391171968886631085037062969832074177753481448131195901603812218663665121556356801364725401011295126788164271505290499744369866186407446761012050188543701689487093034805087744048680926487516016435902265273043939578669354543631442743631559842476050780320535889875972980955785884166091832171647138240027404380553254748538576226140599733753361881453793961132652018387953795853649246717388921033942771875977716548783802366413633252533442918207823075639684701753343888879715931149392730457252739624975470747742757983045733072432069953992435958546511094620012764828707768155688841746100552382196632675217679503745385051923645274044385650534463557751704540949460373000202176566581455914032992487304748722406017533454994386837758322560566145539220535781152371875204813703009780587215043202624442436404479015024327071064467431438888240422046713874183166511366307422651420439322381259355425908765271846648888546938786578169834960035015065681653002585343539448380228375437620845024067773881587615865701537025613862239391169389655947008636036917958997056760065550995003759036281626383572021595135790876432997275995006049699170770248166737849225619054768920989166402532611951900318074644843267655577630879075263874846702973127003380090786316159686380760002973732146495705709439545159459330439631401110041876490014272717838174833730277516663518046652774647618925819534175820044796431713161799960718704355612461225652492767938753290260915613490110300608749069129015023857124726975507974142503670281323640639670615946542537870011231425988489449897216727742002103911978594982132661546978663843487677326912755317017843744200533288384962440743082485524920936431668398601969780249476061730574266866873880315548681508555843809498304225423694611802830194443299461015186636327993678701710490204953329972621256112762374855011621593365359111649293117294659899470791755384420764715528017186949834479502880560594195699553307912472873500838735355269763752281877267240423641084977740076805862123751315253167543002784814101394130550471423552933323585272334846419093513359332318164019116464943196547661627818966679933628364121005397052196753630132129229312751864287739135973606388857936786825623070262146801119528476730468318251490448104286410663697488105329228346676807030100560384174356869259630135226060413321653798523606956237925134069972275437401226310462871966723109937763631603358940697914063050286313008652452295385846815302347156870639254288550324602957815323313670709350480357668736956509990385377397383279527267815879951448581595034247915571785602111297462049153931096413120916876138960534945698531787787432062107108821408497870668597516322850485078343628421104986656037043004954913044256293253920266759326411184770807881777065874056261497519163208703510766283971750491340774009981434675243642667428606481250928895735590531509156288702577754755034471984420134021109214978532715310448184656236392613554642155225038004673771845441385228749727629857038836372675826295957418056947990173743191742167073492022182469935773273621607511839519914818338944289273052663991835303860145373864590795182985602035945585464761577313740394954430813016430457602614119924870407845715224265445474029498107468593481353053154760444947601776770298806869076268610323654451078556723052383597011964779373359130508230129625412118122108322864219081033103621594159537041110121603574405224192108336099608609778126427646298468083668461212396116634267439504517916345775538282274648914811604734537178757066778296147676253818207227159554480103631729908184972637004007827066154375014208360531705998183350429963049200972688443279676258504658793419391560450147903113424507143077091757537326840216773398609223919085420213802719214968969869231993687277794734782272461149678498235113894183888897363532605654293957979148678712186296175902914548779730039476648138256803894415007033585310701240666365436304925517363456450917371054969526114810047440882975793376003646788195455413326159251220727610951688798136722144097397031987849423028183316414354343258893851612286491914625661977087358072331583354574144493259745755837862896257876408130166621804262519068390775053055658742483940719124008281274861144721069064985401163580318861377762391207722219105463725185421449115851759368591742417735781015718387405364746382713154730829993771422805465010038973568947729327158284416038759344085579367015688055522009407712768077328712944833231845613055272731384804201579972036447124813769195631406646177616905197214071577647796938252482466122973407662693794028072905376583125782795703813521683499330669117568329328753120300252707949170490386962672626914423550544891567036655760709005370345889791366412714253519450618515643477829022263914347364808216878768726554292845250611450827167609683440517012815341628024775754316726303606263130023538082788954792071824255426373880250307234220911905956182648907858390354608087418333710134249592314460588775002463843021037104707193152322843094503575746182069807137003984601010631547872751429110185643726625958095550662760801448768425415875741411564531068663769360103532747429198258526704748309129768356678649022851442883521589460364855971411631997542979904556116231210701418987500841433168439172531491819835018526642807223082334065667853520065791321117486774055046289762689932361992031239910964900624033415255053339146290890575492827125632739088780283272651703190040303364259584692728974803402960673920476055283176308970523124028512991285572707810889179872396450526514100460567894162902798918542038257113097782270056110720523232423790757436335357967214727071896026725793079928897208448547624442764001929956887207596975221734667747661578803914714492126948231454218713109573642863995060909337541890672029833279788818218314591283996292346813082990176498587370251220561450548346130567381975549756761098187659320341757644614471001996142749879712804315538061311039465553182381127507921304585634266985926888291047762796479674083341641929729885135667099776037625468795583713741629682300320976358155015625752465956932003443456990759416361702628874017803772887980972632928182936359209798686319316529669902957837085011170009076198033136556691228795609756757122483487063715046724275684253710041664704682311487787835143654744258799168175674453279846694442752144851032520825601377768649227173314933722849353170401552132548764291888802156893852312910452314804141151540999995611264657859327103766137094970268537377974264920552237646821378809371133540622267009707119085013944651876079500346246668899847775435414495149333232871119034142056902828069616111561378354300395751410467618872776493648845734787712979054510501120731491536582975433905661317692413780178937778844290029833968558866666584677597022267246806356370325645345578072342471934470314743560514214492913232132873164037153284561633746517691324355432128633160670545736895341700556451034873441127443165270494976734704398995465287076466748748416244297456500043688288179290529503525315891523227305983037510925826121031443620736955376534506360737437805666028774383380236127017627856118735801556597406786553431108008023491285751881165806830876844038953599567261296576677635257256202658644360159432396043436896327065201098984704217631812645156997794151005312640243196520880512155078045122439687696973497337175094667691998588555589179103117097776765417363365742956752563130913931903818130044532904779079898227461584861502783458487804781022164854684329719881699770459655924625209654942233345567333440955764691781775952247170075510803086707796017449753006480411387284337613280256205180396960360826592744220922954540852788691984298522314478301533759526231217637472016472999102365112545461560075638535543727932567737115831426282840571006999030351802383587908212095249873442756090749484911077831816696615228258808790045084538244677218847525229368780750900876034915075447402444748065843040298491418279967646874625512149982318012535885957729646358286371470820119526973983450307006108731658396349785190059686967839476843532442747697978196676175835951872203733962223611961778624222119705417383056372291115551473712895338375370522078651207566673489259630098711073152073119779178028176204503278838308088121851416351792940733090443838945290045172035566447242694700106093137162605553642662540619785707150026864629849218533127961133747617362445295421129577722767435714864293937396338926905768496325576286214270697400891547890729095304778232480478484206767750633807075685213942948139859353191383625351518352608257740568312026246779135254083093530383764573235872908595034302128747715174000958901350513315779467292302093786858958654328915161350009793373459109865515007176477424856323324642235652544158794476660801253724967921918834523319034215738161307512655560177924818578706091326792017329043783194776017455722346501947619601293353882648902414564751538460638143429973572789458090283339400229509140196911479206481126939647321954767063382004693756225997520633846119659644514976094873061988488042914729550038855797876047525912354576774817122618245123447645371675131731025514590434429861302339222597566014880168279965926266655989590301410880188353135122605052909217906362461854789812893111493827378364470044852100966634120299556328507471218916556993013937624935443043616076344560827559936865473959677162912908674905257268957736754244960582296226488758522812618265270725022331682012259249919009805258528907701059097214037190271887813075831298020752423669275502551375662393423008400158887461063300658186183833233190595527597692925825818056989338825428532107618729351088421065317653641580094115212789468921885904057952632102734310548601715353348072013925449152197029901083598259058249936986701871738232262403676631973790080624481613239094473267139283021654338268706330060741123044612170046608535797861189143101247888980949925485549479597357726024497960264836365430784589793875431023200257593881403741634251772128803611395542197751729230078511187462543947290880304717040110097890964305563945989142213588382470362482706432967066210316833827667057297103411855568178914943633989480404476509356711422210216777721453280705014687726470024933200693686364738993602672437946655537744751205542244131825228916915262018215495012437574332834453093513113842027395423093841671145410578815176878126557075350677527794229918743068791102386025644138186192638816341045341007011499881111526336120656034513500260361918685487274468249957076083420959598393372656767545166971427421989247065714272923540836652279925672998404234093362273457480188581000727341344727985846064208789329827360177643023173481559188767406461717014640337835197754383036224062714657505790419765683522829257825625704813107695449286774915403335723421512168639871110784847632143888058434682445055177394608653177049417024124141818500746305212323572071957109230066628605346479881335350502199336354534303487960694272580898324795097326022818732146781598335995323569611734603738307484371396346631108442639662316045277847133143939373969350945924291914907395855713691825594036709254560588406329889083734041679096212271159870653076672590393675686316973974565053547508759159098260224457666489079829606968696716912011451885938047552449585622042753763776585773309425658797506461051667521442062996826514363255928913675040038450526902036120603560574489364817843862919283749830577563795479698014221518251229824562314480650945158042229087728989231760820354559823813195198202847159886817573714299009402708134333762885198775342233326931027887153676069290498539272031519039622142856921238223343267296089035433983596799450151874660249695880493655335968676845846692526082958113338712563447458342814046605251975008391182818485669836809500366093469969272532435246807363391690374539868674670635147627154121524337635835506677290094318242030933118716878656147072559919641920937531863124252609603450630131114535590077980905940092402116419980120360234316486076473848702194180955750636766158278360857528200427561097064121324688156775444055807011013128150688591115058013304975069148743584589660732914974557868158465988575675430536729029915507354720883428073638579882902829684690332739124542185565090996327071316181782862802586296105873790053031783429212274224146887396469424807257547760420171980037589460405309097023004208912251247660020041331023022893692751289050850132884287248836216507952841694831741545899230515164157657596445329423873476455091762447879568153753065589672410909848287489197447706796752545199831076266159697798239575917251778304351998962805509758943875357151911786664386561687452523180826297953565110844070385774023511680733826454738088589272430300314076481630240119723063782103820526774383442098674365778511924059115011836226408962399218377969951956423172479192134006676477676406154089384128961711371248435141585353419751867276594300363447099938473442414873319918890923399426838209746710563521767755010341949631664107430807208408588046938264247341895688173792642336585952240022884731292494893717818499129579840590972932947903470898507547902734603452231409062430573343757941233151452870375991723211828988807961212658417411775191650107325296850299460466799365117878682114811760715768157614259426060746958784271430801660913726044377453520941500762650402889384021004447952473508923941768963234849672104779536258490131573058798013973227521427651457559383005957293955660004347262401662047665225924003068660545668986412816819535118717783350753906096438917315059744265092304109823895543869269725002897421355198850893985525639051733962589139767175703488412812804192999363269321448928449052527910439087094990813234644569743359558397848308033745183315439039154870422195669097242443303320170199354162272787254744072571042823894414045317236359846874572462035143683286037329850808347094346577861276828475878165754156688826818019818931038753538351467825841249429007300016506493213410840471551997504953373679628555049853125018507830321343199977766385778777333751364321905518722297550401311752339639021352240581423560953119418977651749803463685086631880000815929592565976295324855407698630144917384395591175187326119236384712797060804428874116555949806549206149427683943387902736743155752646755954261068952402106538859781746957096612552058343411440555624475677823913370526174189404427082714224850366908126385631999698868940248880230846192985656077166004532889912432762175090776151279456221640121232412832946662056793035060066887549647866304460277730520164142195003699399573950895017395880947869264322865426279897368303437206603238394422281051146705780522733336707692949807414246534621971173214789812071069788057874993528939153555371518652617742382974503125100126564065717367258021934588268445407711645492054172452039043787399154544188602310240433811520215602546059429324422039195226222577670019212413395780166413575863474533832706450123174476087450517854058314695691027635215827335922818724855871628963651688983078591260650762390233486462695307081265394609053359161652309726879277073120457681844142623354216696300305468720579252379885067429329872221234802540639934938978862440036774003860318445356917060304124759207060773520211132737329632062281849966766763725513399427066854702612876534037634511710392147420385689495223767003177209399069162448699461761758308682042127429495024392882594547030413040811806860012782751093616788306108724827531866303276164006048912649741995688574859987197621846546203457108752964014133064256506232261160216339138504106242795160707400026363073970323969241226787294835717217692655798119557981982218143954910352251639231715894021395331755131312928253686115137143919959281171495481704002841982042180956810492926779948674647851166817674488736260745005930229677533325163171921400092723971781308389728973528461217687345947523939418334102422029834168831891906597104902763274764297834210236225830269761253443176745797891057282509334424374137038017736469617954842053267106184365212918592253914871765361627667547675354060842672922928765196603845739941408044858798036031432093530878727500054044939640695802535245634693108509760188638430965088402685263430217669005242197863854578434467705688375871083659270896311356320148188678251288721028798021178834199953075094844440726042151332064750966044245228907629856363629577649393539026053253577046998380817488465481914067757554642258917717958897826207942559899504523838745881619772479603339240479538201819793200848673238009671818971352819370235215624082267113741072023348561670974766487416492383684861201136096160050423305598203288479618187381958969109332527227460306659297618027853061704865062399913235663889120828905986782053029990434914158713338288971637192424610982284285073027748756518462199845686613790282380796214258451390716672921446200751430746430423211600709470600877502348815725162652015198352487508343040857494646434871461982849827118906140746534150085315629560409935613855076159062430491671807080903685937238857289714479250659090406786430103196979683137733411020145345680026036920514123410138021572814101607993737826910172138659566217848897523359867991512138447774895709115021976860900258646321173268892892617740312305648206758152738206966587685626657775814969216702046314983146279114475402641767487573172457119062622284051202843100198186802559839143468114817293848302987777665939540266860294817117524353048115252279899483696021214710659291726294804238457227804523028946697682933195065677063027020925006725728565357008934907404926177840752462253097851179662976608672001181169733555491607081440062783648138194460465850073479738267971145912475976133053093885327054315225982058936517709401283797060614133476029828068873356733076650306690070582922504371943019897088656926161087257035491279583558808685607249502361428527624697806918604439097049655188425510602116403744817697916669644645046312443251795614684441159690397424129711489586778958075304958625849552130073671036244799514503741829555017443576447196262934629426483978449551315478045460085574155636794312933058045801697946788612862532305567159875994244100862219524491244396162424807412759112323606712871735750189267573422566845377209479783263838888758171518531130946510366586237545910145926468452397708088505773347559494337474144137171685036045380075772080601389139709715027818199455192963586473804875887129169215797228576952578460567775489121470468367759095883108103856069721402587153071188905325965017670039462424865543688441336616675216304374383216158204172898671779580488234812006987334048967129103203157636432191317824395869659951690887146452846712086193782863119386314782672563825823304522627634751956663943287424929216911340014783023456928602078314627117001211269945095552817840988139601468925040835201903890097425089088956446817590635263990446344091317935974215163836082802922475889810700265765318831890864729447952859237898693150953637751260877168331193926107721517363827370124314219244047371678180590915007146857916254812896263823975737507948641824589196211147404676396381565542269300983246109459836008585609297964220334200353394012214558492358209118494153031652582622121430143441265670502234991664882093724914222899661830330195820749098091244552474963842583728612341196222897439370504619022699831753366486287839568418193058661740301917724836364201900740637059457910143986970780656877086988630663078162159071781900688652999431009895454012484661787984524232704990358233253342730625229101823220008633710030867634943556615852811279697064985289581970343711854150331439676861342375045364059033139339220512340480752209061029755102517513033376661508590969977675209448209069924413919681537569882408828301600622666793040193572530925055435002902358497152002921337993880186197087661097673146589940872354482792383955093141551495095600021573382887085778190297083726977167302938233295655128048230049565476979212609519168285014315800634490954680888546711271886886170786898826230695534529522629609395051170142972115173354349387592520690427957274046182632119491527747991942267613807017703236486646632273245690228093301894662268287325604291698376946940463044442013131090475626708705554030857288707371603100741995971964472456831007282734308697469355152303012391439648534966141747790767748391724225974339439194954841646117221702124898072812803925719809324235907811567371315749021972124306286933259193666209484523398791098527726074859400956875723947040571155863600685983240143792590110166535719123629203082157329591062133494657252742218928527279618869030289241635400257337694573384213939136382728562210733052229391307983486974834297963609306550039984901060050710946176778613574581363937971537284982288268835413234340255554534177854727930080646715649297804642171248530670853779850021461820261769295367895450807710302444913673167382132437532107133742453952300892940024192339421314790078468484374706538637448786535777489258844286142590324368980332554122206085954228316521938538117558740661440192474212737805496763327496113757732492274559871435567286413700073147754461081136547029928088827519938326566057231859420203937551714100883701655312640973277120243494711780306018444652910428696999513016569710741425921547520952363319689481799829330011801098607603365210053330262428018389563853397234295199941457701443963895272924061227220971508304505726971335231122532958326548314324505647520088293219968874071352009263572838543880533824276955248933924987682126370088552187210228725746273039953967127899067208373291550023904503928286760371745950150376428645564184074504038524075318517055417877368913040831443818218651768400453268253535219489472951417497882351693520531627624183091731855801852650465819966378715678238388782272134342014211076581979341217848901302871319660830330992621480550594939198168348030893710170255831610458247530464556558845418465186777720026227470125529723621671331656292035120187299502237747981107242609153557817450777386457479640902968627935235807618499389740741952810944790435849920881112151015739194574212357640027662256635092581517301275564617608263220169927575507654895691877857743540938537464329619183712482244705131562865623250465574351074650778867742440209581373503680631432084403671504035903518055636599010266746401293058209812843088967920890721263061861494532004920412211635154221909761825781361027884772636010328951401794876897547238811615200580128175223106403881682655087504614327701209562821192888293080236718923308936852136431504756422532055608224738461445388308404096708066660591843790222086728639416185552253970226287250631252756060574372885134749815571825312064843466352773034095213010332865914476286327576882403665394454043982913066479151068775273852207737778281636073626555086648570366941921625546155073422139008852709511617125075749474729333472375949589135335882550845343378788945916727750993784058103359848755126992924082195615136316750218908704876632177992051858620913993296206054307981006919307557242590528026689424521167937378359790027601968191359105212015728417757967549573567633819439024296872696957845358403638618396729713861905773193585737546956090136602633334547333974268459646577961595038002435462272736834929849893349166679544665580718604648364697844438140500113628877062024841047915998302378614450531951488555040859717533879368898038440799021755305351553226648547711760032741217781266823065271030614019616431582739883684873024553674703621799084017517864149493206051591651496879605008169132973236689628394280804530415214084127242634414501995112857029394191975491778701670724169729902633507271829868162946530189008136023809508317811892937173209744940988886145704969636840993004469436642909090679974404792280105399085505487853360289564665447392465515152443574654614902786888294785353600664458773426556597826828433420475743957370290992453417155594888756757383860413347469434996230230799588886589766461534509857212421103658890125933482499032612601115713533412998489977122246250757840799284369490735107215153329673031988779377642898779308985964974216783937335075649985361161192182697594330822345910609100835267453875615800701647976366196586984798910485205605011567390004690879237847662701858890687746112303742235874798712833268864061321061623725100530782160897754932189313274631532399868140814440130745815575389806548374473912774860534225012563725428283691344718005070743952405227783020913600519258427001579157356788991184944442524363338581160555732883026910023709578793505241372891746771941912074590466095328990842395064780191602093121408380218071600168208112406549708014164077392894466312965316034581583385198211621280496352920112771029959069651251061224047081441893721448593230725846816890750635971942522920476485036801829074324551808581985721434829693306201812579369737995286655132005919422420508150555917105210164987451635492583167235939779280535936438222633720715961465393045139335956226896052713479190014273068274874972229864303188623070453355871821992325784092185790989074204113724994547787435510688243767447141680611407788142959080117958242071167534343181664929662151333918038131937550516301318239607221652955625614567801375641529465663312537065743155643338601931111096402936684985744189863675938707399243752576168899413846081144585617480843132520541313375123504506786162039975348230403933142217523862673046045352811670044055564419064060094042503767061520922481743984771510966396533537535230803487445221183931087675710312840512168889010446198359908233428782116375520641363440740595433607613033543921763959845683698516316770981779669932842640459528183683709258000029944457185219181230355051208120174861339908579852982334946900153996309792889162344345218559840503741889331240764375859590300456067157295851234192485072706905770454684650267313236421621858056749828400081960938648336346662081114964255513618796587597875344992088107103899385689855385155428547051332488846245761444533200569187681380600075226993517333826662365035498756694100008375527948887414864605000270993613856669545702961905546910708268889122428890465317112880975557378100909217808050371383375948491278932446734685743148777048976217347623334157761940737776903775441558025245178907591668947982434084332052532545811248103508920971840150697641130640826899611988825984357189021944532948246970117531763944382888460144331470015671660153454508247692689279626258608812199774216118866009123254793074525252889366174450952015971393179085594881835222326984715508413903873152952972868481360732948035711795887090030058055938237742120794450464216850067104884629009800745073329529278255815347648467052757247807356921934274797069587340429445692103289315029388616739976823212942777509396696629010397663493523412766891715735303326656807397796850011744006662115671690447903367038650581201621009782866051038005671760011224537700695821889121104066189838040111204863201707021168645879394439439553940341805879752512477549236613124215380257215322715414085714755658332356774368469759473529452226185841115711647975360221332992223576634660550393255455678557887043774014654602499123380742707209438510052715166235541405340838376794651281707749917329288129347414309289903085702201257294475499118133524688239569623183573198006934774230360832203216056602297591745445616069757829020973964269536764868623867071657197822617941837133295750065482986100192118188823478189106639399733741292018327680381177644935144985605915037770620735172957592209192919803501949567828217036692141881510369932517651760123260696938657636774943561800325228175208625254503976651002510092412188448368124859291618513844701314537914388644834570247172509708070331535159804692982260992604728161636162444509448364063499694123940554365452619470521358756588934074098278734312607851722127172285982559354200900786061253890368617605294913784585593942506624945188352123923951513230710851938524539518037203182048090423222691697619806872209833922520520705390413051018148571920987095157283374074460778267839651212233329923311288718944364560212613194063561306704467556610340092447291746125374118719490906411533347946537176064168097310283841116771778549160223654591844465483740205077992315627535500747552308576596445333931458262899105052902164206727529171942567855131131359370563589602603936277251374362046311018729665704497874003533840628093021405963203120043902051030180033060130437311438322643920056351205419135927272955213353777643626113007412108789588166155325499162806160783086371605831975902387285648056337169315934183199632662592358284405712745406525854974509866556489021135293009889705172031644676553290703141710912732765172606035218392266363820450780789458395048980794768918862021114968478743761016124410980697095426782650605706102298717224220433974057509991385596156928486223873416623863622195334912848016114002169773576333044177270178698439750156526171684370145091504370532555431508326838382499325504032941251784310198651867244698994666417330048626939272500078981281059409846388545403560466845099766504216761909075172018645178908735976759099564650168796151370793368374469808809508990953349491038146899470494734974999346405382633666206085907519858833220808205066855403767937075038316846875418965283658489418189117133415167490448762838381037270428407555017239510092936385563941612578610754590641928314017794623944427190645187115780218605663680794912108550678458709408580998881009529386085189406706815573515678272661515522937782006156347064379927293869232888203549246397809726022856686066272730632514524858704172153350670884369104293778474705274928477033718734767542441313015839772470269740585614895183325652214457021892458168912905643820126801294340372200564093338991445061503262054469557829650990354864870660335378497724070625901212877390053361898367615404154052506292791677772855741075207045235948241649855727722351712374796109662165102338945016054956964429834245037479706648469254752672614017421350785204655825997222267971102548910192072059028189005596018324847133465662785483574896802758083747898360611870478346949012896877438651951803980296198773613755456389470620665479070319894774135378379845784838162562304168024863659589427681404884330067703928423556572218700019655696339383092389077413507705549317106208802623024831882333286361123986967289850725149170701416730054724881951101430696069260056622338513852209623197733029005097904476175650300170197047958226805883410431528839252679166997327759631720098486228777619843440976928387579251769000834105663998165805335336639885111206982347369473339208324614848639856794196646344510833482745108760836902605569262881427532062568854185573255499046652972362974375551906362752508730714251660716944821796951696682340932519692429205713228292645208249136277572253965334677751028595741331064393700759428789674173190956611308043889887166353811551402303246016992063142454663879546281463683883605887871637536505690541039440534082788019516325120100698340676885902309690696417998253389177786799745489167236996406809111361120936383548365976168496514062557118561339305559952724620733406027897318382605293014734696051048607571767611735064181969749745116132468079412056970637812510949686953939944789786942547223769016653942944329400961075313478507081203112822358847826099533329690295161261532522564596176965323758419488049308417040073742311605889058133482514629721171432725550900226072185966911066878148674731965917454021635698764887229232021517673940365754668438892367476837166344756670250842454612068111158101504250822553845656876542716087629820050265059246735854445755252034085565705356106091687334232568202970710739445466870534592628323412358157174994625079073266826495035849413132204697856082797460061172933714958042751110048729506890353053924889493049945109636228161421266463967902343212633381453614377873190598991894965160617936154149647637744531622223916594014014630397923642315442532566581949266309111498328822852981288929154470609968138247122760849849242331063684858048426207605476425526440860361411967465916810456682467521998053048720369645540847630485656880450626106669903070080742781210651974192599407541302909971439123612855184162808709046417536125719374374450028917558706512594666364761131839314038616527428252947393478197784072563359117797054539015641285389254425125167393330124296894477524246967978620719169397825620151993406573126935375750643550062446425484955549399840952317160746822546561817732874546374041552922581269840622032474283310450565638484816331749149393934470519957028109546575390827396669601619038192108955178551216579821950827438732946957441255005341627291829537195583232924741773567706066737283486366456362647034546006230937156797720920891045920267250400858453205686429567753266691155128141991602742435950732135102806744016929813595096355769777992725731954510836959505544620613690325214631588658990895556896665176529143427959284833155239324375136790496937137380585540647386512572534949614094333493654609727112847983115696878940700928043157991365322619490456043337623836338149530974030631011128422597860143394480217388924626945635972749606814293982581315998036581278335708707962116338289991940242749236456918124815252706688148727056375500952602630307329251006989666841095884708490403940102245200892137616821296946103423815987905208391888034531065830353172865528584690267851476164999115941337880183835876369702859968523204107270579762639265003887734240340963641642819755679515164838739390552495261852968238966846270080777322293299788466997138702541090679408216113852848698583989640551678021952169257230744286329184134421846504208198639538745004819676656472407841776764905068399589713540163451251201097154867659893456164308837491565165305241663738333885429110281320199981034827985704821236977894270479225088721001038508888353161090990467157387462752820614385051681546892829786040985141677896082087991139716611822159606117765365507106078895922110234909866964283687048022262335096913734274697307585235817393897039400713715827439543173307721252746765642123541759114063199746580523591738205661398525636137504698881640630819099598404624620008989791060710832064451897058188232560877168334192629543671764585551151675132265566452624298295173007240946536224666004872156813573129661703414081917750816790133509719293060537417533621103036130152455236703989334156454960191983957233966970068068914059621820505585585690976809146062592490704659906792603026280876752222102565460057838962927189092401769230221417930235392393666790024380023800504581714839577984245540843892957868594202398091653381374675459163112346348324907156074979651559796905419556805028196246355284717936956361545328263081978751007759169907523910006059294711080988090140163293715904421289322671711786296023543216386235859993758316908894283340236460469118833197124751544444036200720182488094765946846578486789153853010561991806645255488669295709881495442131599555834497439244674175583120421860460081438790869700845785996058483346831734525117033599137127581468725803948831267992603902914283999613740801896288489239057311279583334702296847702751054264612364736552301625509977892640477923680398567431977702366497202466578737210473659194772144923484740176909491966427712740126315184333503350256091182487459040999843670480608998791262969171999917633589477496842206819262297670535531466424754974001629766099646173412574921510974684087085313822960222034684430594192003499414058854226261159277514782151659248051902878700041433513724084181279611165620000934232698356378908245243971835918170727871146970516837438421647957463753740809426385960875974156710840150741793386315184848394004620096768355789072106821894957049295045087084005001100639086985917765996101577032601328178308025327559556913115864226513315050978436383244642395489137966187781126870588226739409157080895894494354099006831894000635127745390870967414151238439063691857219065436118777342022781924304830459303959769446884574351504990090917095650497277760166082425344826659749434656904072469878890509528749049417309395641327384311178299896530968625501833022367021620566046009801513949279535434430123376214006910539334191066345752316785356389913174094112810287304119525639883835026882882898242414636365048749875413482162575812473893832856546386980639368110360211112190828389782992291376249633943909711323464139861936795585524544047331693479402917624038024910454212993327843641371948528227045225394327915168022408162366148624562314458411382266069691613376118154260486585361735271989867490942723524099257017964004204494849627481490019783957049733363504511936060919848407507159325392095720476043588390492913133666004477961691062909774000242561117198980973711524759211909841313195289208611930750589954449868292880595221889809373262579456389589262933822658727908405483199579297761323731111567013706094440112670953969957008330480745985492985633388248340806563625397315463395037797881210890578343872803127444162833494904630055089862865507818791117936319244465081888142793892561657176514887891409295965625903878881513209828997145994061137169784561866391182276900112218207144616394867180186748144101549932665333091754579143855260260602189099192370511531666699155487058933451975755007380130692361258651500306156566037632301156273496315745502708447019510852370367905281475485896031563700702730284786855527638343609728918387136368341039615835430662363829853436477996061155114134755339211285089122669903804950576006335999026821100922342491016173826934686482644177729987000569597294643086921712530500310920000930989083162798045746405708923253072598800957335774324043349073367554216737032852488361833635999440106172654030066641414983305068295286108418699783483742362095187189692969733074935401465572028486996692354413129033947634916259736321224647848436420457615505655115600535376479433775702960079772983567249795387716988405945144021434842725352455198115652361777486845152629735923450449889824254031605200955801203887901115729390823844754623724709058489740624760101110020883815751018351946906256029480333693404383398658968651651974350302879220207054881956650196171508576629476166411194624546940070893582411012815299338678214353699099136319733471567236625045058548066436043723953039566986995690373511720148289791505460484652724337709708852620497527377295576608243036339604499843909402258251302814781596608714074786947391572854160851680100399172735837955681827172726390447544311297395339824685730613557603445680769183822779204689040931520499878856649922747149641025338560675583593502994299693785866155664784838229966540287412329063489683354754236819228225686326411114913675828074549706166019835308383264102461605836454867942282697211778283144336297238379613286661197929753025804612142134345194556796883412323503588698028195863514967599110320547369470165215226216823945190679968582792308055281352836405248377044587067650152284820225847732806009737207689104844414328376369934637048454480478760448039442976299743651866321634851828629649032362777897385028832506536089854240671847281344994299845280389437513806772054512846297128907330007355380768124894420422729742484536555867238553146357479666336839561790256741510064805765761809069668600348479496160260047568494998531080183455786468226252625930257707008397056516111783818257150443324851235262160319359594284583336554972130284906381819160551047282289518935506688660533971655619151705930672173811070413334694561249249182118949296106971726821390238541119497045154444840201355756276117343167430007522274504971117164341945620979966532455385777677811718748519661049043516495870952764850202320632400346016104075450744360277171173031868431999699425237341959149890928538651212594481276899579323115094209708106962262061247632977940169132658367088675058133698806611160879798491086537623048428550670792747930471144495591856312233212519545694110618794880748549984834169911249336461163125571319041572368609914316984079807618269091209306097045063943353240024597063321779352666531245373341370207273960345132279242609760677252714568931178599279552225416343915101048719208291730627541799898066045552787205102874388824276832202369376337592352884194160934062379021595599349810203584527720104298885993273198405614304276936970130946746704313982826769455958151531403823998990586409217827775798142980786328188157789234420977881842874433378498302602096138509576555293642865806096360737881880561740013346729661806356275834429025989651231653315532234235038544551450445089562925626774138674243827512826240001108526139890860053897409665136181842975268707615937460686703340321502342245651261004403616096563397353836851967628116482358579802778413321077552759395952128779178186678011607371479145872542336724270705628696923964137050233932016477475053958519149307961205467719062926089821497868009574931525102575178461198016482912409053464937573398020909070242104094709896614416845130651134029742090373892253281700495135044810156888027536755294473771274143397922115596774064692286747015840562511458742269550209765315277564784849940797866098755799568076112086903644752894393225071809735303980781902398785679501576203119060747735074036743680316624562039546979425395142664323367055764885894971865366600468069149318453841111706991980769837444319774251413744276050424002959315258192058118723335456976388819622163250469594906088763949005514462347371715153810246751494252080844531686483453476403530008815358456579970931606794095524754833131473927256859084251412741422035472018101584074948500429013906100202731132657547794448281299602274870445574114758529115418378524241586875860852359972297198470749794745879324320194019600415679195789392440790077338283033391185126244133971497220509824548957132394597504174207973431497924426568843047211273963894965077589908246741260031176476391136912076695817059120016135467458549393411145072839491262435766489889213385188661314841502836022148117602586692668901052608638265007153087966350892052029964915314112721720880348223174687261568867652013040099069927339724252764426160393881165966201885851073372008451927179458348450170987074866478820769339749242213773872840738811051308096880937040085897718153506244619606312519270522131275923095759069969031188687896261067421011629074458979301163055835089388130640774935583651038478376357701275255892214831844862465421061809038615095014927306023725115288560419144898726958164876119166271949422590113528731854025686247974817504658572012898189097832718011514065943268220005542037286140321566851134386176201308410794707840510919964376359742291431544276299253123575373578610848617798379836169506689770917990597551385158679378433684216488664081542178917169890008859397497904553252643166094410639872691488854809632901789235439415978098173053124946826356229420328854982530180909424548105647705886892720472314743949735270249078380009037636872634967104203101104469554239309628033785242954535786161135041275750690176118053481828295054494635857919300150551846732213451728139331420409822412666370928014980748658771758748174387841666567567015469004264824845836028358105688957962930230091009302359168338132110964166238555637547955213483377649554072936912526165195038612312719528070374390372107088265139659888927909079252495069593104768496767193825584436159483198798176816894062067584663800652156989945310820944985657471224402547800969607650839563188923027116658171767377857154662180232979147277162774980674127898957234723358330732537260496673152934792729885448631165693242995077422917317495981616822914567449069810959040004116396673876282935731051354590944065353941865879020386100739277462324527075464771456972975685982436014244869002968931975674016272909136361280004659157693316736798926420330702360348321888354820282048294207523401666747008970088600485258714181868621454741991827789440115925687195423155844957249800264947365370077937405451232951948510357741275347404790473035124883434351755778888758518374184822221444517449165237300719998874944417032849758479478837794325780706183760036516027758634399155935302447879724468121371516106516280726249523246799591656960063503392755851482071717311304091021630040357946593702612733031023702756252077847165787905254653089064822504781640525980329654527708200445701303585853736053597167800448971886695426860536000843981327316030912462576802943631456928220839047893422052598142101832803899009404965867967713747240743154757151309008313238645964400896895375639124623159762908917534898006349713282661857553738832320497679186617013003283073282896274029159467331546294214807141205142539122260428124127267035588630808289783028708190175905516712625944935352488787356112222097847161140753887776384225543575941669462692383330989902942946829151407342350928084722857374034920393891974008888853109773952857192563049113313842996346666318028561994360979749187299087796349651646914251434868323942180907509050043945097039932704158355315120590278405378846798944465203626593229301973818465049735758295385613015119192799629066708286986364292916895657620015864959381750429119733539845294775187413123137821849201653461024808645452871162525327202209809829266987177291895619482091713382712264970654481391618767067265670881598996470441477279050218344184382857613810384332708059053723779918653142323836006799973329357637559817886817293426162914277839698389882591840918552413334431751672384996491978667191597038827787572851263162557156614462663259042267454788345295925938210409026967529356419553667041382558350123626131777553865559797495736729186955580783026086388088783682493333535996298225671811487610696179892296429848460416001696799752141938907949058791476020323828429022568636245786413218531678599865524200297625613326136597151106164525586070856328961351284773430154071609868701176304632729546029504265294091375577767204308189960991538012945709644937585254444550028600215847647159078930745045948339311474847730148797844577306469760484059955052054607716237769182183734523038967302906016620263026191531811720526966466126961023480794842260424524504122923435154397881484023495933018281491290631335199663114670473609502449186342120619014850625740562374642025932772049051041263977939735544495342326512496912210514934031227913076534574151693564266615722412531459330894442463103788816074912250859971790825979147617449519726198019907319532192837881743900305205109785191604274575583010617141974208888650980896820851239984360809183229095097104831958793925773703417095149406998645399890593215477089925491298214919251470211594807378477855275613989399722806441766115256763432360429180956554716607738972653740303584945071500724428298425257244691283105226228929441415637562762311349612487990978503589131924833134850893868028646797420774055416887493871869690837981216429295027317486016961127964657265377756883191944554164967855188380885804801078328932110383117026100871148388595845137418339399425765880475786543603143482892464216020460475883673632594206389653182384648446095144040060565211545249233251396846099724411095306725420347888876868865288789826938358029186832829863318513827562527549602384080277777179202388141796058173970048590973482341588512480719085632393915020671092325349227311402549675950888900435644895477240261754078762887398170046438529880929244697877458022902761361463796389159187158076475533098446756966294514753220092390641068196901959802650314512275838950443278648528154599387377626051437486328384793574553159868841441748441309670150924637654198240846989654435439872202270080414703985637197506949994035533519951813230141519305940714836002704176486971607543633228680609258574952589370147252913798243270568960743911807038148877856067867039236126586285021030825317627093640960738390993801488648709963022632039590909797852409384096402257184389233109774458099225450264606554160467988696468968975261908973946751478281810268507263709414549761400209887208331549085456018906875274795046128677007249250490644729660444032696672272956882535605362443214459790250644277227632745378470787357101270268749774235287700636866966878256386253178535350297617922920834691959389503865416810532243284163441580574573462878383810562596610262747313769578766207156842794070880072008889789580827152432408297572812159804958654999885448156990734994380865792329899264870013529767624932343527778429233149220908107647856278731296139143205471858978482757598464625343902578920625922417541989593792442998427673808683631836075380512655396316400531217497904547722241125803292101617950346271100922433644260869981776315389159232818446777241882152637567137978045022001371065757426346755106687028014942135600976861259323019986298494299511061133067620556004616477143214701041350418117111061302421268224498628251444390862034332014065605006260270258263608090903701993848853682737000336056317386305122438759717268687226434325913853321220290753793050502165916095960117000657293324840923981306341101824186988674917200230052605764412105358312493342363628002221397760075055477682686501366674535830184624939686829173625988567719868407005052519066045582689929174955541127122814198046687160344500229221818936674298878347459179489573300563017367302627714572488827464331600058386000560637751777425510525828980959760848641860622762223515872286016125457502773136217033253690360715033903336947931335253997698486412498227736588524392711509387091415314326421126744693855803125890695062465205826504220802772944999530750372009072105872965194262979601229300673799181311689562575146554565380376640493390306716560107739610241913149698663462061994334209960681916453800574657648537576190188860108261690134013281280933269538625077042467118478857508451617855126381092443449993472617918866048680868017998375576775519346533596497242529391277603056726857406524043855497311989620523890875357654868428076866476834843086544456720692564345101858985129659860906553232377265366352210419931467535740144497847141579077632145198868676690627684025971890253487955286782743383288086836719607085773826300426522295722881020538279586016499656880923281140534386874311794505464400483403832355653997304931896538659808889266054535306665359524526034345785731108100970697798860086941410791522680444839771330632479938434563662194091832018112479061112306689111445955906876382997320059271801014896409433138678885189964805788074672618103896978183183583728554314445013065319329700475186620365939143394296858802128345443052082000158130482362110468183253751946530667843469280822665958995512453246544615730079751669378157925167625749650797906574557881442909365563376858215762166411874926529119145642704702549858335845384664099362342677779713901278859714545439821038650273035665946930597709455773720198407098206677687864609379433656169866928560499267470535890373831233902725388322086929105355849904864249996314307423950216945914427558869723730716162908898538312215408864182466928397613770790873056863863616753925949254012225162851433199079190994203057852291536556681058956325901612287062614365693980420789495401067229212637677960248482636113530328549257286798115430672460245435462237147242942860038714131910725766933222928075769662072680949535227152411691110937961668192343053788918117067143938622723159695722038297025848723323611151433433076189185402589289369778067985285658968992931124266176893401565320997764629766166870254986939568645999581849260880792518664101956326438706758729888300768826056084592856103918485278609207183704148142042344676212975314333680572101807504218716202144065549333571844684995050663908762118389089942885024112332938875317172154242409829112803599123821650980521789931742826981381038305385649737508768430201098229639843885071483899226720373365306801507791454902381499752413083899780900096591725090100405823995392231724670283137630520927792017063162345146978919954345150081741183562168154244631445243812829726998248051645145716611796193987025450550641436284454346702113305817380994710234954397231878916565021575095141749314250158087673862933804126782965199258273739054081248506161873892535422670311023524343586825325701105168582914659251021865146428006367511269284664602963613788925633780542054813063143920537937227951531315383888875611379932399852647090660232026274918784772101502896492161577571502663616811563682535226166819986451197069928639988402360418067778760726800036220746709407625108058782798695151882099163089750065399196090862727487867045892404763745580666548498100894922052901555334547912966401767339547100534279552038123976788586286476230499451644054442883827600189213440237532637908764805033446435069129160222804828283344439907763200594788080336923233243754001561916256204522016032161192822181758657996868173591263192504365829838982455936332183327509856094106523347280362585286608748526857046495301853878601598467617095220175961496110678498872194585949004056319818739771666849707962086843745012206339558176604380097910493195996193690015445719289586853238279311266502984878681883094842811647484021498854496520238543126686710359497469176333274923396517165302822683851733906498933240036664299284596501862767875152881832928139117737726320313407546947913665339867174599070628988566759116996644028091553245719692975828025473811799431533242806724190681502966081297485314089857087005367187121735236799147961718304931062736836523974574569982442550335712355497003087913278209071706503570195340396293488924018062786009420476298678055700297177923030479127389708554584922376605487551383309154316902827361925971391352584102571682049163887738321291061404215521779421400518756709484140785562601331153666546105596626956504082365133988789508345054855063720942285085889924879696775281123875461691250848723922674112574781777661912103376244812166736765040729167600796781663712859528245162839500484769385183842745827822044136272823136346346088619877300637685301420089615305024819626305119159303175767436653331084466003267590337729561085867445204816725803142526764340529184157684845526883330342015594657758605817075420951516145982773461361903171425132834428765545986115940075205089327010481792599034572093786770023275221497996018897056334615605976911148515303562358113606400027472899173974527484668923642372168545227170543473433960225875072213310275819180053791129184860880688871935709912775967113491308154434579138991160457672506383565744287842470489155551016224286133283556210810198086955364758390016855015178688133884004994839524946873388692781414097244528550278637388690582738274783955863033138529816774958169587098278988981705784408177204760012335275331715827670730492869962918838749780652226402674311952164898492743517313723417980986121738977703505452767621580041483327786788187698702905354329053660876721439130216020795599524832427259495025978751520040895238033458310666635705575474006006764728677298242134168285539230978653400145046667805205641331102279397509930766023021970960202094109745824269685434423651668282498076819348361589610110038105363040816585586309529531359160135790977013489576180765333316901199013630659683750076784025512695205685119232498252726470674738264833589150207322260557304383490501945868925435499911741213626976385135790972743738214883556958745526953312044674076891550610783584326211425455086199860488369419284330570160215868043471047514669906640450063961711346012150973462393370085705851037397716876579708231245131931712552952625707779624245787755900713672077968009406481290734593646234921635783394530764557524122529229699850913614122698712472886405505794691893649672520794417813962208510994664288426090136444155145376018765761390114607420798023562961486611840301956466091762060143377684199890610669665765319389769534949219241571839190439792463062201788097158767234829814446258375769804744551739751768469038511559322274853973980003367044710355712390022258669119316046980788393837869291868472275362935084727429906204261440167425351610525065330800801991761777228549209896957293297687434790017413477386659075930016330574303168791462397397559056795783188715398287901064952876960098176840901544516284351107682965719265361412631204765573537265385745113819950560296719847035292473265150408654928392797373938690843225656364822941650508074791218579441024573171874848826217880838062935806733960399033865300048801889516930086036844286448152458013440533622795528986742810941118785146566012873426590970447393492605122553188446756928872442368967997657406417844223760245785026338297290713257566637222154134819706377138177415120388780294131334811765359086826367362571322557058826914788533631091565735916510555030374627166002300334439000303676613438916924254851289255354722587818285099424354222731244064860916052052509401208120882233988408075178406102050516750217420981038033612455433886278909408358339474258644786894829410987220008795865560664682964101026531517027695370995958091284715347648130094171432849376334499398579089527913256408401498578620449557917833130791184644958987688782505071626711448821448115832300918446954218766859120440220591339968237321475929931035943400748859493293860131668622076291592009333536200423996115418963360444168192144129071302862377860475283647963221912967723338045511364645157495022943265290401696401768070858002318637701722005195597552207601242715287888328086726350027280131774398470389359162077916994475327794530818425627436703016859046374953903367174948127219818712926762902493404047543655936482075225880232948214090172448954084004500009589499911987861542536656003114570380074620272847159607226380161184320882335083647632955342138252289282860781587094554550406605831988871150241655465347849672221590057556668475251240148378573190176849892571420557350865822248742728988286683598100756418831665320729857698307014133131585290996418887768405330402097779894182164026461371633905213033938873107978888725462196619886058682326371842048954498280004883074603152648437943255756353585944551620897971771865666168529253168848454751769361400954658994398649655393953033606577526953837020379545555115392792647295540685951887189434430408690478946404575135982226534376953557239380936506180801218687474798592110737597134294267513735173752200766610927443368777981719719129014930649284129650688200876204016887956784862669614395656960289757626988994107644641293090427545090982383954554011782480203971142439053398610742908480217795317325795285587262216866127724375555068204598830287407975330783861311322751069639953440322163005936553018182747495651428378223287409380806318655021669129097312813389671619988442132172139836396507579797174311850167702590842561289810009842818570792618467214440450638795166860389325845422094476536502049660008847956542167894023146211032747355261954627406923242706785698889736224146030326231933209043841696567370526751774939790677235757418711540677026257671944822283693238332241319801380725284054517748590160121829828491518105263870752538804087584102584539244911483615725068766059579238220777492271152598363611595617136532571029509635062848517594138510252667827030003140820112476760358048503135151740615675972201968445285115191336144865311206477871455511718752004890262189980444360024562941684107051139787325905858295334848472432745968866369483765220200612232100469832077528132245457073724708322075446621992370615388522857333179013746425888822089555356066972023674266133503223237996991906172314521384334458272276878242192022698070219111191402265662490205221776133651534068923154361826937778018193596258394778837182408338970386893282594716138153447199212911984582449357803006327038768318909497672410838197098648285620104490379980458581627004743120133312164783364572246486743640329540666767610063180805737676095283301486738187493353492062224824553099772120192764283329139512301592666261624675603020799732274017648307338793460152861312272141717417457125930391271011305760470776921338918587017022457424849348342461679518519547089483255787197536490336460046966305530108644615567793117471883058861090572705756659504181448524278438591058932966995153804031167569876022252628241817427942880676863080716614094878199314643235967768932744557633440446900052211522567523732808479249096408501972607585847476101421489983915657289775886404938690666891849679678608223668495248174538774939339755349501797236548547371156420238958379788370019202380733683139514398191679183033678435347540006916213814421732072238876790507171244450196698760849375932778346216956118962830257607628097836315854997773044558499169119296334131436416790744433204148910172881176435610480777881665657787254353333552199554485898905898858520704643694767540242214040143321333197322332104521479648955661879041008182193484501712116662829597939386893786716754485971111117260234552168798769326932374306602887147715108756391765767031044524307919375257627354169915415473902495716437934313206448925031542800097368035408316166180236087904041038947227218729371001069277038490718452093549990139276072691346206396509340998277988102535195297280872988991764511032121145257254568792315364763767000626040415783214410022358057078530255645792387753384238776571534509200460708684344882633899724206138383326151609213874242713249566435879622620403672958362193134178629331481024474529283443279955690516176195007755155324989827741148398505846696456969870144358780819583378827158503638358535664569382871744433379340311713617806703679147585296423041545024798196950528779854674693279591608934268235552126427531600647298023116642845733554395538918966353658172994189423246499335411366435631564290823981984608767359911319253503661784445918210434489851702064386387444608319569537755908112412646626473548771963941964712530756898989943715495292203808927527632289484476171109634057826109583180861690803169557803901887727372043534890095371791634493988319102981042777567468302350552247690042333334478728046166899503956296904491850592829903233627784155448653218901562949975578251537409934717093138539762657077978986764409637933822816158489662348045082253389482556925279638954776413975558855095903234717191006986514131344361707077549181851273455943690782529084948071018762096483680772731260358834070617071703166011033775030846337526568380920541943948004325912188861784352071279743439884951643874954109648981743297174479506438386908035552276540896968995470713886243033122416629062658995843773325471924987579228725070230377734698306478464461995374611928707304246672812894071777224255396395607009162583985496969989326164478731467018217959557473672611418804946874502940397910763690537985166973245035520667299355815880745113432187930328350128434912773433983509659019919070515339533203361303275019883908453678444334451595913297839734081906241807268442357340483144420074965913231869429820478564436009879432651611376287423298635906227429333581910829593928810316628121723926945627449027431927174095581503863107459349932815730458201682835366390098451317816010930619096289607359140305290974603975099111807436377457965278298828573503445372133311993811272766228748428114588689863255314179673829859798496352718958306928661678538208307846234954434359563178432378904369047611622043849575733222315742937137212736941725936213244954278818914203404629175627992891042916754801662771132689215421050883378225430428760150517119160714394990319361240436372165654283617786281256164479277891302156961683996469588746183857474854121371027437926481082460323573287962290289377263973145686899673122958857175510781735499649543254907150961866940132147565753737978759069792284201958039811158787481820699744814521573056401569580666949853833861962260310472121685011393170192564394791732693249674274147116721694950523827683500761059084452446992646316236137212221946528055265076157835437824962027605904017903786481085015725605473071265639106155758338764529822891261368054467904696960478790826135646559807378376141446971967489495145256340447188216188790007321306097266806875988067333814831358212131840474657946946796030704520621465664678060680914456486651472587034058269455509349143754546323025707428361937331515165493542290514190264287525928835235210169294202927873591003853846658722658034075070061446134367853800746541961972835213172201130483605827140395294436874751388755081946784882874421298645105459430090679355460888761045988680832785167014222634312009089912770924501668815408705079557469755691302128699911792524418192446802779316769165725178751280357802019792901451935696260738709177252334843170134359969440766459447878333808085067706748904460702319723134920638436527155977122231819997007764620239642208568928218835673379849480879045652532240164078561931844641080348110330567897094163083782781219781985492194174692960464471965351911248121328583510420691026922100279999278260515933647183036429891816285555532829835300483825945411912599576292504282567015508554586413929716758473801096178192568321665999647423112886546625087920221490273884025938086253126144619270316453094934868350031311854632614942227613824522166235894275504023255429022107514741610913147291547223779304300694531346845976501030878749864635386138136956906237760221496299956959996921413775338041806857918092861830873893433431157864565005117728791028599103063646056330619990538339499340888327518511156570887298763762409762029940314736901957555559045543846315210183450086273518916465886140755960787622788330661096345380942388110523985245389744450936563830727021400836035037095894481822600617943930903694866337447050449976026605195267236457552064020955822281771382552157198500746296730223857397091285798514626132338704355773234041251639658385141293845995635260556286663381026835041326234438234415432581279596074225559730749623727806661152963293421693607070998090782378381537488283635930278544307852706859564422281494714298905191869777693885158528662889583606859892157188886636459618139216880328956145715267951529358186465451285916876947932296392716416317153846733408765777430947318938302349590131062516410700076080840827453352861616767605572882365685465647988293015570850637470284480427651415749678203080359598567105094041624397053333724125768850016601018491350400056799330095154070434409953558534563368187460420250184677450358012216279632757846014481258689126336662091481462046805470348437069976272644456029705265544242993495397401806274599895739509045041065615002809996785726984310785163039357954666788681782820818943203014668105130745986997581269171807102627835805717500644820798104582056247306259324480911442865577172333919250705381612654834046899634818876475517925072342797460693853926374125062520947145175519469994574135009105590111688181252793449168923967870754021740252507247029100826480031769378269362359247193268358583983334318595852990335576106612469974110701155992191299717374657478029735330645715067472512832183968881623447187802641271185537460917844315068138149097169326057669737322769784228774218861084135554234050059103386004047219346908114836518315806620779691514513618984800630991295544581712556570850316609346815811582477684274455913009246394514230338703790548924278825354449915782122049901341998941476786832877267259149797291467559451257376222266553420846586205951871440404312607345268862632424786448604365574573479168863998283726796581851444972026085159099970470214834471712161146812535394758235690271623076019774971050772837242858657756034467076902045238168506106264846002414945344820880339786594708071441152328203723810277958105404403910447253973885200339763545258199835390429364473460966504274443999596188280319893396574788091588022187777494654183853032835466740173471426989123378413783949072171675830428719036135464677686513205576648685686851995936221858124767120903319076402389680050831197123994610825100660688343737456208385934509746813254308871988754948319127089789725903975486368150247895246596386546706431724090707230124463285776928378675316746635189066625203426695705213661726529672613529857602301564361067036970939788052861466844775230897121559364439106446753142270870323661517710427659151467853666659902945718460476542658047452874598018078008725510888265518447834060181617120364968690869586957456330073981921814972930988977072953601838163168200861561452968325975942943465867385141732405467647077952034978186873156946021979770101355226341473219452074083109068161032035098537117206093160199081882459794439162071225699521429343320497724316855017165255194616502571652756982382027490251747130384407653617955841619938237477975844919445749349276506212170320201397604302096882440303519941910015186227529937789328655563542291565286860236785532081832497766742496126435149478803544727176719603092756963277967083961649609042381647614411407576530441073775374443775631169191013414709658730292252094470378912489719957210573081671453805159805288753764898458022564553475034417260233903526343708656554947820769650065870554060611581639517828090423521340784421562194486136204510736963126861331638394948241046408991120273798167254954264498663050093185517181316925121427626251436238971369332656583125205913680578808898329839940702647789935385382445483630654043354129015378912085581545613819028417279862006712913155006978485165031595718288766177716414467523885940520221389208463025753354691027242521108499033745890976599305789513461127919124286704778445366674357067461343196916000591700394890752205805252190313194644373795953940869928374979793501761533048060609835794389241805522092573969556563002105704778799147236064455057396549441069529485293373068222255099519310715262840477237369085296869468515410177966084069914648808629746171531176231085132591640224470979561245393260364296670850453959261301430917731821125691740128089454284303444095842029083665052232505838137167764349117864237069910421516507286301647093297611094784436310529555902406271425799313046941254585967223250848376084075242597818034570300315855402643901311943386459781313968622139294175251737618321726213176816468536284058877218842666880910466516659142762064026337285837846373282155237356675170740494097623655140637479196331146602550210868186777398673951088586126056480253873341276998188796331704938017068731181814048712256665019739522721882284895406659348225760617687136094573964332325024685964619680776714605069517613380805101394872591147723634521532386111028351947894383531579841184101088902112803110292428162436823186148231796764065859605694842797880812058917319779545278746427030899974549267760653776976205843450142710382314640257982454093526897413726584659663095511325907856987588664283825126671427313085545076259651054752508324688783439090485063777308957464754031669020361330403534562645452922105075683078486413341076681608754448675169865693717819976085807259291964281386626903146246649296765305656077770023656800757388464406061874186935312065001394225836047465261611022546511038097903404447028690508839787647936887731778534207547278807711948715160860892611257383637203142615573199785897987130231875325476054983452122393486819937781972790981200901166119091431824533097498649875158303835332558851731615773270042212007217385475537521719461981079914543819502824398786250163261551506976753560363148688052401730301229856041487485841226377858277664537122724645723353448722649367418123833887682351943915602489016585828042531800967308032502793715229245726070263985121418575629370686632276003219469553993785196074878588804426732600875252589380554887376096731808621800545600620731703167751368403537322838783104738736739000408672404823340560205552870688683541816607149488485603402759969727836764231356546568231045502662207915560813771562870206032152234874232076670045169324135071981693303494476683835206604930090936679819361084405076337747607879655475724154059623929969092128036362027825850958645371566799292212500877401596810298622702211291785799550408342981115241053170812546041689673172911095694806152524028834300488266384765815281709728669258560395085694754455978406170552476508901244764286081034105724903511749699508868913410844164590917260064025275291887676874104890911608049429553377255078988831398934748054449661655652218098403851049830258243477363650254055642836015081970188412718711952931028104599917565425327909655572321485462321770826916294158072156995271585185837201277799247789021444038473896935834910005472334599739240635708723707583285893570515850628803717222263459980092844582325160264785744862650572120810976025721646797263673190553290400428976214685028318001657123256497463071909417445635501264826099145380537727235282418475325117519006289916793299702038106839240088564220364998017547393799971896607935692309455988122987272231032959663870838800683577913578670943922135987032940633816036661028402791763666075397518563196955042266357213014925941645691079404955833247034963243687751504761919870775641650635024236386746618797690020782345788723619149732606238955538523109491619734721833701835018180487268912638140538120196709795594371425202066735652934116973322963186473699973242525570468718974251442363110698200569367737591316386357582747389060557888782892486279284108737111130745721335550598394738861152152748884805456090875608803466882640250056193474502605635216320859232508952747428282507392996856598458850315366198425872769171954079409359835460286235649833780271021982487609721923334701850126093870164307397010589072791473507887844995945814371402827008501035719040731848119507495738662365905238719961240714820576928406219944869137783544283648952449156990280102353055661534541482165663994842963018218557722549483428254001533626860944867513194533788289273648342776373901579817881482225470936548532239194272164450959414098015789936957801130989949360194290895581573352842903264808534970549607455667396577817522256202703572704769343892708702140042536145239262684362703265383962384994075067249396456541882168836417767201655218216464005771017318347336556682398165027363687073731779447618650177549855452707448036026933197811642403266351060871239586698172751800927094170618678008261813346312131206105082704550823548897774803902378416840648166337890193723709778634150768251072285393275000951730675042568944806892859973532888320798043134193099837145954456493090719508885173073266256569087739982037772268933569859730648194253482408941977268177023166333839131779785324104635107724205210074500022726559729428291950064334905289886261665146236825437947888943024057834551766979209481103967055538949293650792477183111764297020590301396693100106039233015150073389006431968340768624358249385920790383957557479290447371901459996054681632351202869838635334913960377800501381747570635372921992298531264384371671979875775086945839978100751525089547047549232532297658744925555445613311435520881073514596698946060575006931626339744594968951079561423008196062856430045831675482396572650972050107689693791459911065971833400769780703346862138757054622918591531910822854285408197173613966089241839487281590434933900838316085208665649627881806056235100020111371962211207246005334727765262248599489158156328984847107862023601357750410040959218702637443532083768291800234676293474827082384477681393078185619952609237166147064823150967740587180178375453572683099740234257027231415774130971271470976576094320661109249784678403627459645946513282241669985718149566694441482121511385932711586754991051210361268972814099600887006084180770822838887861558751919663511514989936500359201079249386037295435297429926867677755063646376765894683171031282770192138394455344204908044980935131880877133396328707963042504159359569844574466010814816111132235294539971320318499366017153836732947944219200810477399046424142442886072615948820710961138303734183015948631006904479414915473887657832754472378144947783441163224448287530735582090054394443421305589205374564411298086581766911636647868895963694182828866931892927598913062178559981570488984984514435040656921477123102103944143558330557901158930741516218436725331948631301417751327326925047009068310447684206687634998614585024309211748553394409470445355480818671639320992641830766821557885163830820933595162596639494122403031745407004112169697572575930829090608002111975940857478579079701419278624081824239718198390061484988999469991852533029013735036383863468998449044291862169944832940276191489105200462555397560920054812275345405931864545346739863140324531030970927769709551121470848311527706523436443822035109384631403584348751607540472265807698167613400666002152346354609339773437165849699369947245439282039272054714395660928430956671845115346363731464913930072525220420478384885535707519211803245126097894977680394205995850866765547802173870620765193030308544151654058623330948239326806185048888724416459744427798208043960113171454335705560703082010498502771297254821299250200815117867389350837393030606160926176206978223984204479650697543069662636551247559518270375810942925586886787238228038941738350570674196080790916600996241641858482438165656328990200082695461328625520244440179244348113836043800469330707223180693717130576285624563231360564093904606464993326811841834207760312716295984845424002041246006806754007058891265242496583994943035770922906174326741807528323485085222378668253130308642247366091117994541255285742369743980062509828251692272962099143682113598652576066399807658044063632698375159958216307263726327181760432033306793305566611420035528036249725147251474572680483321853053751596040186363967422782768435421921462578247149518593399204746558751141084975041346485720303678118137328498064487631806462436007467589774674536282716890486839421042328975078304512325326276057648816611244089926479888407549502698570416882588440958832080695279507398935565053147234996804071359120357870775714487055279124061769042795163964687995958173848665164552743260887934861826001040776814347399175646520894913363290778318528155765232846980969749487530187464842695614074195123980227203144699286301627527865303515089241472954426767326864881987902419777574233090828912013756955303568412610535742051558357443780260173687899477448742376041277104263183633161783413344677320892198299174379761342801938994172425085944321664631927898304432372179401114950765921753686882249372808853298404645967441409460736060432003906746825633890402650469455017472544626711043524353240869114272649280981960955031125937414417121228969575457352521710302324852197877479433026563834556300297780642275102531512938953060586465214104576326511407394242206453735246273237508253786448263064870776118536480401830330486803135380169664221539513914336066758069430335752811724315564360350885170841136610599524075750129810201376673622271087675585485714398519199229158508466211630282773976019285581035123839273662348789490756225623920479566570715410834941561434145754971524444085577987137999387523649753673034584503007696957805857975461371015969351005455175425580801401946749919188427287510942278455787829690921360726601746502171297014241932636642355974989558958640185076901794392608456701477181534151924525683531773668165646899222264739576108522553415176827180844971985778217175603829362211378087301371394517562682882843074351943112951802960519316325084450760990162842420106232624610343771780074309778404566668895289337662911687890041206353436674266611737049206823403086361947058700135765395743418697508671980356967256483317675478017563134442199723463694546004394250416615785763670314042671953055011176102812270977309489183254603912324968259292836369808117995293154858224093514323467148792159509229262513890706405227852458241222365544174043289579318860673684358178074021184702152189910724908046970720731496481758035916805326447882033780734243787797596193560291472557603800560282083834808997125178877678391209971198861743531963083866119263691384309311405002160745112467770315078575636694353540045232675588868635059661168613351990256426744477959596169198616833238061873913295517059693394604003007577685486983175188288916906914249578224006516792373941595698801455954274046403376052121538030207792953304133371467646350577772863221836562509002578495287352746838202356641658821482526055469067409842577360596814987385130553666625936573455415226437665785802350061352834907258367852362281856145882593337629310890316443986365759177845906507710640998558921138112191387565270868149465386892543971553648586385867881487969631327009141835443245117749926469266715994902985526958728610655661222725367069078301504920583418658443714431914721065738664708144545479491809790414231954138192313780888002215931767107015333090495655922099026392401650056615348341771020682074204081847206154625045662260681743021163200455590111155746758246746767907465436719639227145893414225299796104835039427650643852701180113532924749262399399292582276075711591148415594516072836887274176963721299506772052329964899391551280943043677221130738266072230493351768115448966858585922840990796371927156870701452591140792956092568900742267866335474810434476652881147000656385546359332430057652548814130103912084041483722677218734473347220424938547597647468233086497453875744141455359418970432510891206587640359389540547542441801336643098925789361921159109047542017274201996393167217645336000413739436050734376231792427389156049447788721007900853403414009917783024092627645027256975889259068420667443188312952035401530611621456712256940376995444846696781657057819749291532728798648891492698145667968703857582120277284229540541162508330753746278134779011366758304999134234492513843393659070765038460055355731985428244294290715826947863289538091099911544556817224598785357402446676947102504604492884796615714973243848742973394366402319131915626671556719822491679746720515688926019237566240139323326808119239458535635100084475608485312131331842518598759894104729883370381207396629004345020504093426416143878869100327452549946013359081277350630355278893628227018655447926583624788713792276132857305769193646409868472880314620309915286239555759683611171320962001849260863002732260245182092903856124470673734103494902509776870380886618843486318368782491019680722135325035960253153014068164691274635708953694295256492093902477337704666995640088792217059467594437711187343214705351869935163353740187017062036101143163821057202228011743794335555821132837100324812068289803955299341497000976728347261217131963381787162868706686330218782517226117070986260398199705921511299140653499723868880314017876464885744593492969719977752877891316247611832805803240500431829120796012353743057741837828894820344936990044785890525471245349316576634641461382273053344669999930986171955695559034406622253767159164423997145500258179681556976773775154918308052065666859270172032733155388082554096514406881189531070883196334066490194197035093988971890343963987603643996527604556511844047415583545522175720230938254786463148527593868306381218680591986068152453312234248992750909454457946660877601127929669369564437606397885848465459239038967905672698816334245298059440523496345876851725313260347179879889447323852132607528947297386276357373686388564229521865106116921110367514419736895157358652321903686967945215350126643540652320797944843268073790967010428482076638005540418464756670652467212626497576675123845259665791794947942599450704549404545843548772128961960775304732206384622938844956726999176954281975027901445133435906255323450600756244322796480206218610746302550976042405957049724460565182871422812976682839246638379394302209812090434484726704889119415018431486767009647301642885309888285746502224008867318555507419847871114748658834469010035156417507978456414016508249002787727273406527450404353915903040842524301794423768386178199794600251008175356717400195555764267121858389502411687844501717082974066809955867508141149984076110587095830727179338229614753107483735414473114163119925826773376094166319293276268136456685596142095392408247975788834210377284316388616220981369647595867950215157824893219965192500920025402651847546401847762837974785825199261599227985545275579372032682552483857267698876014957486103370007757638667750272018552828859151752394604427910701955714055492297082984976632032120508775012940837532265773994855660105710954009431388999258092923883959877242634849044178403951340014363049068373574824959179958173360622727372819712818570520415119143065425452539985902966327946748074050608948071427679120177424590417646609854359845070430904541287634001363727343382793303891664241850970550197518668009812204583192616096833081006374705355767698316258588862350736441263583889095189453608135053088232282107698469797833690158702212407477078088039264471527351672501955466483403821246705649458561432073768288159726280105093316049560367618906693792760368844851758455679436622883262767401535089717278866446849810826767341113546264567864317595772338511811356957456724867290460447485391883403160332250982534815888398532376933800444769107639370504578429238208196719306414658700442102410702103676166598702536021779455502470827144569650408299843291529399282058723253476233992131597155887188107415749378561449318572058448114687411777551786962548581149797884102336496356247240804023843172412624180091826390660672577769976790768329205440945870517296308764805005712272673538171577236205375864560480803075973440512584406842154188631385903535899589464462313515119763831624384626572046223527041903285961526707205427727123137202836524652597439494816834862467939820589034822303080549607352163633513093594325400323880692359995952889957485728351823834289551167815290766971357797860691876540697526269278518622035555412565852324895427720758964175927011793910835267813132677946933758920573848928554543277474734742016175156836487321093990054009054038734559778528967599107217728254864455458923564174128736803020309259989006539714833264938357540255692073615046113833313651217035120642367383100268421044677654640796537775267881872862890332320456853838592330160040739545409660065761758403365826540691008822240087478142587521657524846248645445003766230639289010332773445027603784831545660294917024503279124052982246817628634347283198134892617800668563037751785445986785141275422756708798531929947685327314799599213983264381950022375671490428779734393757285884436773447412055350891375673546025319974984679467349681974552384500357381089925909774803989890957944362242457612735570318346306904641344958229968454543469517417730566624680922890167139431073282558679174891882127728117612586804193166056627538454455258177828486511905190960976439943409315529302407394282752206823004025910698755620748909004181649297989875528251150791574500314473176668237248595406538385497415157839607183831371158987351678912888534733161576779182863119271490934179471679513913885081056019792202934227782317728682043521290160891614947217867614998448621435197962971087370470239103583355651437801344109364358474463716548277019482076752392558355419853208873998186490359907845053614412796852614228867320670563745851951082747981557308793222065885574411933113693706159583652965657291443355178284141678423963646621585083844821290997577895230367054251525243316548486427808204963089735618755195925166313929392224951392608647599085222422685163528866321629632307686483756011131605355459681190528620662008765768761119908722193384959604591932069637560760632427886657825448539597296004715749498843550081123563685811752653601878624758626633914152536929790599585724337536705333542589660185227241165722187097361873694483458089189681145210639430280206084301506044829767190148620260136555737660276431200220439741601213217535711817339495869102864310218459004966655827244721540803264298566767069973444746083679249921546483022467905153990960196564051275973600592453365000656187263974249107143407444397009129032218644419044880600493975396928241455555667430237021213164142604907607855505934950733312158723073748624676448063577346838278860250217201815433576265259444508369219255148116055100515208610455229440610660477583311645316304885599317117374721897618323897426630977248975039886419943482956579707711967127320434044431552351071597072219425671005393443153720143456518891679259282478042222795596440544476894361194584043765190921506379874154917335391691656150236905012320551187703746246234992852187684161544711844205434494676307164354381687383734615478152296269494115276411043703522167314026761629723661170520818738665414972152525761076455830976516691028848627997307954322567104131310446841528006703302190013724382635678141569107791625826565367753044371440318756439161085335340214066518009084073996419713085971031993353216267660115776864255686729678166706371147618160011192792068130053342378670495353834648652492632656936175388276388545416214625656475431157088857453390653644027871412281381342810482705355220734009271141408477259564695476053211997512274927122425226715103480592822397798112503419467041165504376790421465226328610628124565603459439973479540761770935282598967662925259044220906091013147125512460493145220144770348821835331292689227503920087332147745488156389770903485915902633936274747226354950370025857130795736625041328106566827225493400054496235778871290521663134014814890808729215974531583335976425645646794456824100833293025502705558420329498400786425093610570652418791117309921181067587663681208062469634819539763983460952984791865017179388679517155929031910933668928688882619405349010148943890600654197389298157597727338928142719742418937685974753930702387293350404912171283029961278563070581025072558859041260023910330359884824143583909651109350354998077009757030657955084254246551051073957708258375228094068382967525670001087757666568076464210968700568128901506473443502950440578458183934200852159703772426382709990498633619578985215826254896377440709779212145409965145300792334668762946518916401159360270995370055806744910212418420667566198077657936729783841905530241615785793045788061632001439863720113924615992471746959534976406659325452681126630515976697976807959328239531112704283758562888841486425473526215224893602145028416021645272413875571573986141880113755039751765328714232082428912186179498901466011730627554902560921488855040521784417638786239421830344569012229504178955926701779156919571539711690566897436112712392334582539438116864454067880244311561480663241278510742942786770637163526663986165361688782016682367457805779747746305490239187122730429125845347913846122769166298615326844147949263925589910386791322223075143421906709407628048942616338102073257656470778428387932529326103467783771980577315696818342152078389879642271955860791810555846695357750190815041199557423544916682291022006423307636059711747728514414617542234089210908905698411642091597633409467705378466489918131177274335035548174643785827646548451533239012099433179477814585707412266586185036518643139326706492076701936070480904683076874321590771303734489436500648032345379419050273868884808029446222459610748824686796141463100641488848237626627964015479220550480356339010857343297203661477522160343007873773027273744584716808167632650841469359643236791136890603851035531675712451819305712598984951557271987842571210337749107530460570158145425511585346643077777066140130672363400009787330539781920391391829226714944008565484069566358104275566141089401791805832908534149935328852969648414324157398552326782019428356905452947831364501314100001509326199085902675665746646762080843491462056663390033186058883935092928863603490919208573311113006012762745264237354339478342638367622846300420758855643832006642129765635892870057490974696780203281187703811905849636849118509298386109548886460731680997088895436010196829144304309516250608233384258309943740486018821545100548160266140026397839073989880100031970021995288579890501848342049621955727739914075247844628170097797895414007717240215420399541777049029926914646832910550379512018457655118944155176160540594059688558892823051012054924908642805588965338562455211908341189251772421555363279377272279144414486721004437535413324606252335619220280599522179351556464802665047872831803527528969931480344117179061026414299713953202917558641200676820272733236483251110958285915672579157481582935307364502796902569939190159623302298188355482995386108319844198056327546720320811785963373553982335287189369071603166767647078648675585859631836444839595851870184760351294078020688495112271151615739716374963085758911168548041790373204448019643417512286168489921524776354856105036789158155717680622514682134540638021098587927663989553681604710725929740148790783729175741257028094179313767487310118527509206980953447784677345249439930835658168855361332767788169511779744682753629529963112708792653173599720600152513688121320994965711801433022529915439850253546092494709463057860390521801710664131028701748856734090342448333612879330101564627774778013836474394437664409652790803143617793269418380669091194579464051821481448465561935606365703197176297523809997453447826744582516432218545452932271567490792646003410689703946447082114477749495805376345947061772999306944288909546969749221735815258847392425558688883244603755027605716764086703414565487495714538210394646700419265603615336679378726156669375819261022243383774694513083924763486715540160456483340288108287225803400021131306421223967851299674009157148651326606357489850259139146199040935430966647545349946120822945829726482258496338845343873061893690905885592090187646808670904345064745837133545870743659034640034892808893087485892365370072904893067492787821821592463178913668403378759788601392147451817844047432868924042971966487627700210739758108929041855540260832887043145027890411480024317956032007460528867286238913614843800681571392832771144835461574308123309255545589492170396921930543150605832466828358592414918192425731437250586157887083556657391797553717656162054892842597003541149752579923352586412047796745298658365883491248158164217461180815666941384058862117431249588512440759220094169967671330654084559516813618785234063219094392930004736025268605646392889023804886320894171640436538055319512436574644315755608193321811712694186610671314628347694712101454691224819501740647238435811943949144048030476978701371820443858904397127482292126616361708398603393916372880914061534075696795431505359004087903119338237687376060015351153715494444132531187659273766206460869101899108850145641493426661553130257574895376214369610239221331998236618830486113853235060892334135819500751367141415680922364588376513917884884971451594547217460503743193498488909790053253646327860076554973216761996392792150381269080066558089637888008948047447307758157097549838082589006918891090480086507936493407561446072438614921069014162374751572734834059875698947845120068954888780130471416444232503600345173946798616907826649694357076641862873184930035232144407220915029215944463149881932012810480097282549430929756778134691825131744765071674528747121929696560974053425031214495029195043498206734826297799331230406419843757330629841936250217652353004015120565196344161575186052863318684938553781026389011744495924309471777720285701796682919566282535293306894826715020271210593300606004611404807877899336116762544592202296051523371939322167666850181603031815305945547926619566113282060393759414023256345911675190655804026480528784837804273296330776909129515366510824577338638000950237667153155733008167093995626830829247223224908826124330182725533109039806357016690596132276985563706830037849590524198787891561519914887570555980400873476149207417155106479023157601024761585169577368884391239369140394811110182489028324240384780111598830542668326778898149070262455022397255768549628195832894764843729349087552233488977400942950812608277454471219472185235820136194866265975954463267323750115753452852257765031753290225527396249822618314715846883980532865952432396031086066821549700787464483908033630602361497620281492590711559137574060213168509185619600236046730543868383951878155440081888523295843680842930262182141073450962662675595100082493480172876098151488851145387522414337793726316837410882843343465531587594248858335593159655972980420323784450751470561779332281635602587509948059068737146072786053100308723822122021074090741517650813254728302837133264607899103162889197332231638765276704293974418604715970900866309475058462665276039888617778738871640001918791460865342988416038259011616836194902666874551164966487701434978567453445736591485803037989472020473495907634644790221974080329085991649371422350460275801364928957764762960502533767662555673987892700655641515358097052436233990138915472975803171977434866853078739534752874453859803777431223650508935832350310831225945712294642939176378449897943720157387469223566574307202664104501872923959986917121309064572489612784227291273828919152666569004246423815532336678846251073422914363630229127757128546389144610640219393408424864918293106591083651529449446713011456760692638716721770510475072680285870466133603252329888374621283537393103075934267590445121396278188048171075672922116334705006787773574644810669904820612190530755499065743980195825722319100130933329733449106676838695079575398296518347636580865614711399880107122423400989620608487331169334975979431255513159162000034392524831120185699405809606363682086580413772259745818749002057052308636305489151518329253172974636893293621958453036980126634151246103402525687324443769529642252142515194517536257360465979353058093538752397515967438460093015343488573287851794737769828942911243904289454175289542233348713301043283087747916077464704826130868350608268470876789562764358097120293763945653732800701531188357674955462638419567887936555914112283400280445181121400123144305819656636131448671896082861015255437169560275122048759741912355643097706348969742234243219724906961086702340443618965206050897694346770601188659287865836471384478355969773193605611055570328589753518604563985495657381010829665382478389340000229040993546061948183846759720362108017901883371945625991530893892379788537944359107474991474257106641509360989800547499829887798075101679016300744361920371117014466573608532864792214743499750396577960871196644521044256086376694325643756705260567299487719332504157024198364241802280486760743547286845491299285992300931917737991064026336902692282249981432250221609504459410673205448700101334782638824671275789782344255519289339420839089739717677306258810812638958718501281673334656387806664344901684429602969183430892276560962159126107612421982918536987095623732043532493153738884239871301409108588360737316027984221488157737489021788192774163312569230903491699676587976037227530834733713404138685919259279614234640471331809586961356204217854166609123947700196162699259218511237657254818129784511409029125410772726444029958161707540194183856225290693543722607513296587019141315391778663939239503456030555927173674798083879237228804324858337863658456916554904304985089035666259213250276509636959503013873856791431126269501176197543242005776765581000446950164229149511528574082501791463403974171685436105879167054545712567793434501315504001677360022843452884507614205506719850180765573564438142514595767160511104651730511147013941604262041230698281445759491259204814462593622336227868543960080211925915246901145912759546417056632203659258387485547616649449957588847188106592664955620430981127472119642030907126784443924659415426584179405098632660017227982496469571819074584893640732583420142148558540324136568452209494137193098812509867575837022852105675062858039715427132242802297469209695628393122645040518062857515971653204946763542970232501356609932086083628996042990332037367593086694802295329722864696492308952447018986043006221829098540025247796496078582303223927797496467642887393803204183000804323874819638223587030066059680165883470181027672579873003997260160773428038176538834422649995577130484879849340975923166869463707499346326403187610272982011470855413461755561776430203017473046605408982142784713946244697785841258988073623201838080675403372595302021962097867152637378476783141550361769468346021434804804650996747262266353623420948654228853958739720771953941453881929230387923823939473314942783544893570281163509274659798519759071433308207446610838976896244608463745022106549705767255841866250196332025882318003526976025181186891946395803054526277617617991886672616450867107131227640053604443513623752364463754508718233879359412588203033331103961508684844824617619332414200205121108601236676291768371943672166297778825477307274176755468472264676958138771736748540603516851348008111053002665241777595727655228109005574420177676752651436103735771520980022962551837576380273665189436934903405805147825137114029339209378555870098179828784383895639164473809676417842014315751802982079200535741504026453407569970763818830466179063876666395354114775515904919825251018050739437561615786133284751602954282255808800567267564090045283468552576478108957428772450209915325714063231852666473120978521981310013695878806251304510739369100431112008341009211542079817274384298922610439954231506205312793902884184650264778050658462412667611525114321762128967782740108449859987983544042715788636184906950880638216613369667680692784625615677750737125320393132804560024489560422305631931339747825480306489414126620286607300524959743146998508827793023265437464031422932651112924787257342320602913417433227046493579136985503536863192569105929440225524023645718467209617790598808861912480240830034220835653465576737160946080460875160874851198718693830886922615081435016340223530564801046496929005381002324786026212456784945826161251389659904629755306508297592571266861044412042576612896803969206833266014764877034127802695194057897066052238757416947517443596132253266842041965588374712570579991031289373693867897561800430141093744110823971187134934147893429479741550872064421837850487337978064237973308483560512276436227803884933225385767079712674193183150816174446146370526085963012343160825981192140236484095271200917757768832193699510141388742615474910070949743222866365921997967849465373536179215758800814368677220497666849151107367496177204756144754519463998836133876125556035909595889518587901596756270393889537372176323559882267052510442386412970204432188721835905904085237826831605399360212700684483349559361693162699201735384396992459916781084257327870168823936034564110667616193479275274241870047814279680515211190475650459304257533468940808996210273740446253823785737688215227017451644375383405604278111802588931871051059492666743044484356181509282445205366135994595513822831589832077567972496730929200641470133588082196572775663674861369872493561532830958482821350914086211208889745662774316943503291183337057518517252220897330701447597205129664298781678892940168803119273015117372717530973613755016779913688398873338759614632835647592165381507148037570276189515743880158270684801672412759804614484971848703991200476893653527590746469691176750545784010996582377943308142357763625727438276481982510772226785961190240984094740250051613050170465680949801217885595602032282379369949976581512605167822780678113484887375157279427264183309931750421182158119469165928747722026361738699319474234033005028880048889144349249768742836138487280406684998194095890368023654284258533548022960830655603699287254020584456357906242808220663855490980434072333553338058230988826301088219589159447215944966423100143202608881235961772735289831622244836089873993688888898085273404522552288544534715300207253762050817660028889192698922979517840481300595111968341241635635568040734300608237927784747038415948646733462713072468322317768781236758866425765218780237398893359972801482714478818935151593730909763109947150604472421222459475470169890345354887371271230591923959971499964576716861000748484096289046678643924005946560301237799992920756909981015307425798058636060982013335166724057039914459088660934273770288864360789972431833835368454894095596413484694960778790343150069012568868051212708549111214377935551938034811703589864470468544270361884287459820644008404822169080027927249462276675257976113287611572991620221976736583531484206004731701624683521640287450903844161434881990993718641618229278067829373004674899465046603745054874614436867767264818668413093160484117808885857500085035705475473643837281202309288413487994979209538454101540432716451129569957220795318806520697903025129193696152871061519346692049744770633742917314761844999386893774539072731966978881117065648761138411872235171798706795582483652701192109407082885252898588873768792151899070454219574635690980534403531694636781984660212361999544295569310250330428838374885485956772956449929751656718006039665660660176136206150024954992997187965737755645513230616471430889408989743486625307343633799298768277080362425097426312466056593796094291108634446621543632233038161481099844223161656939407858686863179144151138506836704118468453900178260387102888433159057274994843054795431967939794098837023671636466116231351133742359081525437410398442702334762418836558492332459607770194022634491616463787727803884505469315906554195570249650606842641967674600523023920086823697710177880885388535248998211913440453774701573038157320347424687866637760136589362097812678995899344607396418917876173084895001341816912249764705615139575348747967478367786229048892928155144927175312614471743158632409265107094091236192580692142536379579831174627386205321748589678137967537253364151181292112272609168021931344268090320529662148368626213783671676303924572156257968449667827800412631281609291025091068926374987721064963331394021831455835174228352639299903346328503806019577650266543761322890552416021551492615737210088707279185036541276644893301180191643881613182132325251073345680789302890880806057677667317117901119487701654189277421627013018198719376118245568214773260780436776836802363259974948046486455183658460914263927476911462448746434010593845714268538003807498047179503666633040938368631195315625186111472899480809419195667704077869553784387578355194214070643137180256649011473454199206069571055949411682017060301847666623028449164890705078677277305279170743600670030015668270317505173261831646079012374910427136905723479774206977137354063476002756882976791520976266948901063655790161819320169426833396089571565484790036352530625597204178092458605599967065651692986170390533581136579960103278072017520283552786574311637310400411857784441231991986212018655468308467722631313521343529445019609631114766157434885847926820045439226691928237899689823297167240777144243324491722911866171676921739101455990940352778473592623604347139026611841358683097861148271695206605529346968240882971081705562166609122524172397354720288015837666809845426021900201125921058114375068324661492542979488535718121762146430380613756925103380310197135074964957690023967528664052848419657005122632293302630887510075029805546208534660872748908718973323755814332440295936180688570784225701893393866810090586793826046520593432527385636809707077840379032040856883673598571638521676795295678651460486681636033263916289852292702373652429545005717378136113964614305197620294564176260717173676850894488352582810853292008105378622793050972373961329871963331348634047861225731084517711578011466233796827490732215919199016263196553168019776560451218704848000229755597426130732984248426695791961019953728829787887279735901255819300000580416477781550825874705206312378059120316645671754014675863920989226564741992191774812946434828378143614415002787010693551665470077475729318004563272780837999387217821109467430645373667223780913181011720204025698915028869347864751849122806709482484440759839949510123234480453422959600818171203511716153100729304507213328044797545333168618510929933146420003596870966260654522989776949542956153921747234046981566640548053310565867735557188631936715005910728398003509435328928311020860264560941373734694733637390830931993045545256858155250131124070197729989673475564994887483135476254919494226232744369247537112543002971294894946910869958884337540198822057218339360353440345909821461272107925067459566188924543811962064301893700084276907663080474454397001414900803023823519915102785148190930767197598738438542531197322025965546245460528058692566582064526204036693858662907337487798589233089996284291384370203109193586226860732026733460286295609495202333751557729117861470515745870527461441117744092198559994631116851977764262682015112319461754041238887337920763780545956576584184681098566311314651982301493964545300888491723813483401429596415802231824746829901556335431580905728533800985019332627570251435321140988799592567604061282518815696504711278334089992011268042646246445500584342372659850788119011183809656418835908976070717413962932794828005867708743401659620543302245172670336022676153004419697410608230489698271437482532029914756808935915541026537593950116203826163641701517903484959126951804622738245201157687249590547675284007746009737877821743387812025351826708170768347028344419156570603100994894482451768555071286748315908169692273200843285955793746394775227265154611328920860015769008873665328659772550147881300013379386513356205734747503827992256624676056043354335682275964532134300218394561778943191015117735616888917759322136504481530113459269176559832163556533546775709478040262667979356001123746673603219105897247089906554498276660628327689165673257810643609681977396585164627876225406531533028309814622097015535386898763182994082269390268973711235975993310164828253988532485989873251725832654903362404901067943642791806954366893096335097240004158877937137285094623391476964708083828538895744774389149988994513484678417294438186689733804410338290394137761214600037297819909327619309963789200525052477580945940040021097865991879130615236606607063306241077448815135280198551031563505435652472538920304511955677882183584697062878529201366285136073518611106362025401268625449239436453016886937451303297031850682839021914791394634138335665689487817522758532084890075673414533203587659909908184176444158766867970067088068867663865253406126000138371866119073348131738564197347660234100600969801114854299667592061306839055831126202316326208524902316522281899441839023094141710296190199054171364441079798049655684704816250578518885515481608702941870677680195478555527179776476575963864856608878492458465573833158983841278960198357220827994874506084040473682561147937944969852721656646041444406581145554877868546089893186796040221900877140994225045995571972404648651386139798352699723891742254434984068048225828974697523400258151705775653939394621769224178237145332454513151935423500833927662134483201313840575231439826108199131825353042263198617875581705446829323568489034824755435942556840611944892322094599751734276207510407587500526861238652076908681873996989395836101447850209666639798740445868879548683935450746626310767111727287594860241499199671541324972977322329186147479855402485380904735940975041764947812449944323954656051799220330542078156481164662359321536482569492148512547857405557402495518495710394870222693601024688305262113475466009805038055376752042083583432729871948366060180571731950153812204582995949497469347765119545416631931229253879573790532824576959112121204053213159616533872834551755121194427697554924818901631423230403382173459517216363315056855891857877210347589644659193802276950187740731319048932162105150415320035780532944259077265536034579801450783726619213083900277468696157543271205719219747827689193865369543065867301047699563616315093156835164333504362708057099935291546457596812632647823246285157016235332934670296440136724353557731993979141512700920931057960097090622191620699101241301478979389539880555629988507603520167183572539204876181893329204004529951917062999452966238333718888044082599752781622696652482024336029810927029316348398042002087896216745748159914223415330266560855376351317994582057228884996080932093105070361900772783149858673712448973712048584408432975431556310570390634188756717468556065039850156931544664377128082751974286078802981299393855013525004777782584285909506670621302391893628703753852742858458963280980053169837092599730396310573154166636237687148939820496200971514313408962667042507328223994018625176042113165319032533712426806220562735391477767237760492737914738888722469997202259348339248616414176482999259980140316235443810614880002979586265469546094664916600623899970178033132979130674290921800754053928764089664134691179766691555420869936691113883494656394876285443621217541647262354749184752097656567532552525196565184007626121206228418880542027263540964015990650400219011677625578860328784064851511489894767134516402475716968380184401707340493243960043746426303514803349677982238433239531552319846503408209314632567732579789412050925388305306365978194313609808141435388493745287838345213468741413566796546102345230529579275831484505299040376795959563730965778832892991061941520743203081284376958253604789970825214974661144391519064716756127866947783763606649877198583778631704967085504451860156273433704863531393580043830506191075632337496860303040610882055587711562158506071203873231411231812544435825591376502408370949880196368321991390030880558252556782466194829909363286101006025346535405005555228921500440750934290084005711550320395849546405618932070709319150125143743207134988994205045357877084602820004849058931523399366663195673740190862962105251686603510318796623261272752206870699727711918540492906353705261051231470432144846648075249947853033558932164416556610177271842816752272109154339195640000497535737258898495302426896236715459550131095546614539483411205768194180989536488330144611959768130790268668909485503922119995446791985308728500919728000240816534098165615294073705310259356801890850520989046520920899352606400409897180498481979784915305643972529252046379082023465790074155252937596328992940845403650265367520979540891210130462246205991870232053249155041866724810289049924700901698222580714953382085362864823477689577078203898769853294806175248794763642807160489879153286269093874412189383214084459877650006367463956982179114336142547246834411789024585593304746635798100955837509495133785101639277789781204170560963788951540664698672643339740947741685873694314716386766125473755292989802427337151584589933083521815830637651254469175074808605794415572210835023066923502886829412300746109155661088972706307214094414904240814863895434644610078061974337580371432740831756974318885727377004459685815739136241122264538773933720806467113876864880327320597229677796316613066882967263970449987392905652507704520796239158771182890574271317187799921354718842464696215591415966419211446046807198935398542386161436241817614895374409902284326515578232140777067801505323436855422495166984539893020226125667675473815309297035425068422026654914143576697366895927758317665531742265465488702535090070082872843821676714470368875645275359347245980324892944649444637300419692445104674134092845650537078436089239480137476027429213340672021664261278774678678443808684505407707976467025850665625246065795310891155164513977974587086901628205311802291851104125577609572859934331371044158071649266391281940797561905945802695931289443180863493678238110615415004240834088466019518124926018558937127728816207795322405567155970262033379199268306439489011397015347621488392872249733492052553585392926650430276371680684268693343763739783245370720928549799779609099808573586285813254112663695367686034866196305277409142809055935061383785163281934646947098479485070737164365757784123731665880514091044027980473732267711803291271445603193501055742611060493708081500986142540666717046632625257714768971519764197821151121820308698022314689357430431773417981709995446415853893501970944614326634500147708350023412893038641555183136931715127113959846372687923449422136271495115767021975446439276115334749503041351559605273077521569454853308616461064144753003260119497315146469371039590874959413235472486020092150974581124938580756459237208710505364921106131354409359563694628528329228143390319484802326602214851963830270312204887579747581078426631309889875436958825000066259167670270335797588036947982520357620896292149459675714446602293055213930872569816563468716933847618116691623726769339114822295138706164373767615232381665635581645019163996174127107911304414241693455414953881383040585789566638678032928146910348221511969131110594934913077151373480024468834951959752366195269645641494317706087670501701683835318122635684907421027398988178983590222721886774616885108388819152015185112109149336969313160528630335449965156560121683831956972319242180373711754874996750382537070433906415344168558690385087563184601078793729055769731595042425527117400413282836151327990334540510787658770038958647463822591700843437426209940035121794666100568083750662632853653472436588903337640004788774119265346291752406687466714399404097886323784656979308595901488353387917026406174394321752843254101070981714520875246182810943536589099950526035435011874275522560586100203904898647843525790475940294275551858882514309818335949882629223105398693558564045703968287815056130658073410267309103773441831858835389102787006575177195526969408885580108009475541840892971944469180227024453082529872314803522760760771180037007205040215684403821374750312204958934010236315618288091662032913319118701517998009186285936310137241297145950897485711681007413165823408634176505091677687224278031553233417324053787072351838754212600917229189116876372335226402942749017047090673064798880599362555932098215369549723107592794495335112391551736444531111705213486515246727423711497181842074859790179109419188683018584997595710299021727250269321349136114976911071383324999999179934214550617179736267964945780807760230240153038848797811734918069916048714894773522031514993558834551977852292066238699837277576190023914903781778201849674298576506074904330064229234747157206914543827495813418896040467293145362008910312046424657306254823754469066857768443670526659020208506276326246214537927731162915381600361544313588709069581580135166531795307141992126200697729883167983077748869205075953352857642789046725256911836749394163544122347427566726423860774843602790068216697946861258873243482646553860979677947370977053277817739874702025742593423239213360313302569397583297112932121795737797565848373518983758760848112195905581026791702479750385594707248801558794075982017454938958411892648415706724792007954704301257450949178774174162909154526711601901983478459532291080219277060504934257840366888375928043394973029528870435543503420011757778042756246329096503589627348168884800482735018053225380734680430137654273749744100757304465434511265796885072320700803377006708737131970805154333050135975866904618973249595168224935940447362570309463882004318511458837141393811746668850916527743096757938665615911995046843227112302195337226677859988959922012296954258374258776068175160331191324733640493344388467806175839143965777878383454263042992997747126386237285511349543053773050581806781824473801084176893913219242413132650899050162927587014486541719534617705914148046341356959224369357448259288190467885203710506450482388104774177255395135815636827187666775347595132652910034450597123572804003123367328957704565090685093759335697609638316712849003922777420818945002464942879170507722422800013832631778879783411039395272599603834867934448452867621323667788780747866890690107837322764414245844028963312121995921550879944757585800957952311438437776524312939817590882697981352893907823327814469056237427623256757327376430267113834926168630023010013581228864635504713286418338253589763602554848544710819359632793379155543401994204392701871737793437470954260516852827860878277652569775417982279532365956321472230648326692383524997873125420880456316069415347250148184252021595435170535790673798109285037870450931793121073021101667897423979969065173030531708685809506738331339146576976071163066981915913747492222761429188389478709600225087568641519723826383490877322446301205572114852337799467349230058374659091527478740081788756490293633605849006998057766086431462352676549521646360269589313595474091639325257067089717148058787146024015543733035921176050520698130093402030200939569071734791497141031198105815926037805833149336813520269305524024465904779321259398817977123946610533555919040836861410841193284486755989746152662648439358416640981015448928194085117697850413231493552517325857615088451419429900689042934260450106793513105053198013623091815296833854186465525690026655355390873258399543653927706197072497503407578264503297926504344780771195559184768000268479026711112138925423345569385393926244696772183076114452344564448582937876407142754497237181160248156025771403428992664493301362854520839957730245703596785682425113656273747418281404035511834207669226920328984560994328927064264213250253781850697910112719862830562860970420540517132916720896997116485901535187496637709106494330198201447621007351076479942067502720713515677030566068202726841514850554042872056100193837819075393954948155896029353543536389341192626571829394568255353282572462909374430637265722147955050648528764238228339019060204374972458248381861424529500496506556652152840137543667363896527101263514877172496626711405767843219353982688861194078107550858743913564074791468838259246346743288330541172678101708896776163662070043343533463031669453286934518399233617720363519834062591926354739562632209820314488058668250745683770960134817680768508591053192738266728690002048120993198267391309906940324369111354152227267867597239189509875565494862975694477246353582595430726096239614755553318961867530153817050073708480420692829002206782057975308970770626305012130279082483050486470918171787059409762472390888325634792586651219787385737833765177987572219232616746848914440207643259595755896939685238571024963570447610006472938160340007778169932837794804284896368992491434437357085811727987867660452105913540881225399450547326606592567003468807355009950908655607270694189752881146607915305028087379231160804096783318745324462433426078354741757832729118651770389602199739787627021691282144315816144020679501778840788020334872913571519804187973671398045046342931366243044228725564634442267222296929356806782001510453823991667323825886800481636558102466895690961914523277089464217228577678854552115205535945904984565030131091066274260076812858084957451634890764075792068246460758283094095494021892134456779662106672532589142189381575730422335784497776162482955096669611901474430429220838886747635895152136886915539368120341621139877114600111201218266358273834261495531784814654186760705304198343105350615613794365482315428758524095895914938482013797828561541068253747941606454167906983677211755569332181993163136130379712877232350960995116371731305131790487235338220245183770314924080006783648189812040534498063969685380732452025651191264006555915490345724151538059952688465953030563125698114505086206771005298129069191077330496863539580027702503593482960612085521367986284614544178333792609991916425924176335008283646831132637072897506895056074402397291232406546999299389929490760089466681097402345607958771110946653931515043171411279538832763125405272558902044936499440449702899398875162395248004710285218232919324656910952919280853928570443059552992877257822197293739359007416007941719157248727355349245987901691798593762866745686261945433091193524833821984119168453462115700684782182655389398834709552796126841539383011666427700505653781853949291880829132342138716470189991412058784670108150255532176573349699477116452107810281398144102307669488972223444126362073059178740897375256151908758760889503768053593583746350471694056316593997582994699102016134073084496317523900650086066776494179725809244718854634041748799817200440701022305434301230238017955542706516584383197760523736317997158896546388678576098914206261308316178534143521846895174023714775771226506948052372112226606177703437432496029839246478005874404417698797528740353744578356758936402011541099922354669562556313399289361349910661467733204096362472363342082009879441444270549319664359305403577818136075176250313284018228593049366262750348566696617191207113967163724736487093758765636165415871722844344487932340333080468944921914485829492699317091429978602586236057422046819942367921280707747100457106977008974776733602419221142738925235701779766090353841153896036677348557335347709827048883785169989630799927282702279146216989888355266232044159407084321201293570319315701837581416346552091249529955271317195055649374323000773606258371794529078234273292837787703172090632010430952169409774197250671282412405393037677410821748185159502096089694772603790021031065350804733544444461226620007995762561516003849143498234081576225550103130671368609122075266439632622126599309138944052977765402791918563556722257674604528630064643463575822821364488274117389939072532184641432073104908284894944886377350570576987021308966713047887815125850558006406703467138306583273688535347950406609590375453293460459490334673515124060663156089010294123048682250114551089572798529777353154356655733978275849513553850211582986778237805508738008525567192923730789509847181287743124355039433672523278704176386792954191758525826250975029395907702571251264505771597609966796689053680327254196829966054186123101712727205898099430459873827547232231017990030978357039661705027002429769012865553560356760183872905699285169605987228441391947152895343148724919593744945151543966576344190534212202869917913848559716187718036278182197902439723941195241180979980107561194000233240514744862447472837486362463822624616372129129008952147218499555757554940248555158453449268972079551852148713335078611592466611390412462810432526734799388782328033537614795319937863203730020156165152131643329021095010073131191411864635047901087431942570441067598059889569884629591976309201635396707669776198171296870076281979916235541430654265525797872451633455982306429274628051428015372958277075899252169168315936230703914387426526658447109473288795775084669776977836028951508274403274972814361345956105262437896294801301660079674795109754377616027719635312876859388309500568267435949456372360678688072295064884064070513830904358101237483069920473645220718472715563674748353054441348695001152444398361876916259350703429425112788035700385324059626114853133242345767837147981783286084193367098897292737746875425946639680758648888792790865714575614294726515030510312248047816800755294495269892748724471933738637297847233084719067258551521992739400232978712371083000527228988367632403819812996527423671013657169650292171862530075920322521209538221675502115504399277289770326245169923681196770073097936169260632850562501977872466369723018860271928071498203789021236094061637557664718601218305570024945960999138313869009793803924263933020457821703134111450012994175436071721384543071565292238833574969124192531824740461879681280890031913875123627780523496816433901251042554390421253383756884529605529727833422300176742636814773856465323391561337905092305551483627465772847919002049599232029112724701326513204598111904687928999708744879955761802546814859275780355806600821013824172818381085896167406228850768217561546727958836913950835166987687693493525325905462036612251067627790492083107106499733342133870012628274988971079664767356154521558700895040508609687241836975196461557392435002175594335318780640302664375210672822431745567273911873414147171281839743804636734495895758671747633836953668581189674389549221514372330377727623478486710809719513341872766327535741919091705254404299353065154520036395060511427530585363692440016934215138502705800716078284365375223033071779056637632469064258086318581918896700803079204723575121138381470546009248858230894445494346522073675949232610994121083550212011484397290616994450989873636689860315526397417778574254018809738046393861013243064751447695457641845406899541636509031121155623442984810790479254530480094170252766747630107131722777401081272648445888810124771645581831416011483949606682977064716392441663905874227548974651413488959371646293466224913919644970153344995586074006408504654108705886105377763581932701510599427974726520450073681865500454745138912285465599966154150474506203441943383213823167861588261225222997749590177265993834359044667409121885127683522595021741551096467864576511003946117510113795099558305541286046997315769554020546660400817297699489817301507801909616171727156365305882929856790301687974302539004570109054408241351343749545626573667159149274392851629281928256911339274332308331843714000944253188000855481964255211612626795536248262075842457411541399366110497867209845797850348874453214883830062487259657439615268913602116317755887923829973274800381048297052954247940919022781199012675776758376950440627906663288984637078000154041749009294697622117187080667091072583985895361478855189222855945365776255526568891041038400483014598386582472870740322148007762733832295478824093886767811913109068940292431484583809248281411969932927733327867735345821879588600381807027979666654396907937246818608142782995507611276863918936791181775547967510446293441148682673763028765667758310552703978859710514012106921915734190283492699290724623996644112768412525419997438481554045720415943842278648228668053258154636070859776776153539138006488851269709941008272969391789690021524622835817651058531704782161283108492835703493869987826305551879416143695677375305052818624753121159474917847532188144181679334892351484522976480679516805407611017490084506275470617318775528363467297755284806896592279475950825033585668492020362174354637571385664952084263103917637942910251115693452236272587718231614544866300290522416873046398512624483108487720453142580342592308925764638159806414520889640912923384078371280549952318632292536849342154940360351058224028587644447682476547317777577782768358733594227145849211616291610257918907814206150256503855831229032092719160755958106348158279832917525011190480526380466004862893527659664947245565496811560360653240891958361005053496788968584956613268468883427596379714783920607358963249194854367109628388460959829367938035158306324506342325903028223465870957095148076982017375796634802992219661364343593222161150956418051470718580336512421035805734960073164879079829334431253708398087277682769020179028502906329989691322461476461357043933521337717170652492919010972786953553422445419411594446664121811182820521708779083813238661617415077700814409482777815377994483151616662668093123689441260941726124537665435404530873330954214571239249885528327923236921413633097272402471479622643675459636446596867840598089724304548184975536792737356263249722128650848631636062592764334456229852014762955523603848107170540734686928318489734119391093164567574988012521608317970053121193234288333001363651166131847757459686971148233944692112794553408096115577676900729189141232329664930690880597002221809011504627285577875583013577639329823364701366529685998186184015246286811927946369524737882293792513162933636558544382866385060776943157642725996750274719234800536378031163599181387714902855354491580747798214766217264446463580260223664917472807463439168055359688489176026322176259857039948474515156399586255123529690978840107296273661546402215998018684326796844198102449064716222089971164384809809612959565712063538053058521884423565696764928243245682849438672350446089196764531024717585320103625943344596730753197382566152810349544599071849704586915507419262910298080985809748324087154453267379479078105115181328852949216754822006640853457076405643632126145591213889700327003071102868862471866632140392501653557732454321463538914357532750476553865876345875411370482633535122573371164874005083029105768796944529755838384517885692209635174837673140387772950592626302193535320115046992405302763625637745259006845289371458799139203993121077709133390936147677915694103462651500316862067026233176013588312378374326613442247743507180210310728305605529034935092860428110501742039562719201176244181244849686260385735446227293697472819415888503097576560115397557484074640046311129036350111310545137436146119812202314665005936850812611954066617158868171653084645958015406252188858776852790291739269898121892771419795501583163395034574488294631129714116858103166047740099198325126448485077707151194635593383649325262976725675801719661924396808292674795406277557175355426492772544205583580083951655044864234647815755781766760682328731460765982391712064391350077244586339671750956638614651850204564572171815721995862532592707039335897630935703065536342468002300767773811214602383099994578590454472740403682977551902882224461738572246293062368834090240533746504801927523656417594573062116862572257396052085421648045556897442662246302921581107372825197016397485388809131056477256936317861420521653102408202359083237444423398646028640583377562011507964732412072399203681532979403136178897052211707004175327137938294152410561907121697971362956655280418130907354455898684650688957950944455131820200117120461957974939242346782404439813691321680094898598043343864659869839724480777064090036128137231233957071228525660566462833111997743910231819766688686758614445130033184803453109071154287799712254471467055589022102801774523830819542537453176331944627043835254958649880025214784297854038195784453165107918940723721747348401779852342283469731298043609400778028434723036978580975814775052841708057186818650992106999451953627682505836559458493969225114412736122172259340933799039423736758598634050663643438837150419525560980165298336800348323769114912364002022612026131516924305298704392351782969922291589288750073243361203945286092035291969106215781787159113565524266013449328206006300678103646467958600567005291748594850677779507528446030246041646714119239986034231942089446002105840877565963446043559373128072597876666644825589214484150102079878393608554863882866775471572392632303504170856796988730449096426099545418592012395828298384912703999162539585278378348016399640980844983033530993209551367358990974493138033468005217346677793946916918404652918929444697447432038624404534075773745811908221617182875170504164583710414732022935114547720450078429141687703482974838445329155781298608179351879330106335557089331506847984326185736866087200297185675267408292711572689584672810108686947835161798170256796879864019353814394902146416881358197784181386061744046508971151692566694130221306939574416674270486151331555904928044051028534320358510598973918571017636798530754115360819346922345506712685131160794944526661961979709166700270883449358210267651305835004047834566720609193122717379718311076254605585462511087904748582369404602855832071974837741978658679348498575007809666989707363552728447774797658944321515042548969662512700617540286602432691325039352973431814772817352318678835049047414094382048272169684396793756531960713617014262561695772366907494541665629657141024104787845632301208619421150665312359892690631385025673522735107267209599810829814869777181236904349722513827469230260239305938086179089329312208581160833577514064471499204078708757026678640621060963064562903659990474387190620990854924536397680357199956245651730302569600983850145542058851431622924565879515281126152684965498417307402255948615013899804651134812253933154053182454094189584353359378044633945450076731493300263672900701494719071420800378909589547264496808329556264593419317997920988008012663338978229558230459669417743287009143761104668044043955812741681039893154174111135897003506734916427972589670785608447561259451057741697018557468013710962786001100379585935913345581805555330525983416608839583691801430754169034663217659638067368347693332519288324710876457345573769393316960346570292768395175425425427450934279879323477633484204148020614375144543482084471344490451982112368074595007712835636979541967455845313750506845404436814978612132340169086526922069313344425536130619092974469490415647979166824936657527647273477314844011078299333527946461452556541496575102164354743048657326825739362595964488532901083202722306026487842850107884543713264905159632183881535417269045846196234965271758655457261914797263598186319827833448238373756645264702210833381312453796765442474050957309907987663281165745146236906820655873223932214274660124247404048274355525492579498094455524786183917998212352671701254022633502527441559273027021011775374067162936669476596961505089886396090751211281765697582772407035566722211233411422501017000029213320109527618905224694012221282317929072355083450264566112352182630999022240061308932265271120539473188121729214450589054192092252047380407602083868181330300364923508460836723698903288492418368835983310507109078170114988771773961163378387136120053596272460085878695027039597430663569044655151539354341851151522754773905595124573231115833914534715842607604586624582798614759119418149878807163347343087112432837354008980667342865471936561864078652176472931617622230482702817096419728572696053637193937287601325924851966248463325497876434802671852802460054013801476479568350270448888960833431253988869981804071255072004625449785463289528469800122358866295024991169795848056978526074961075921105060312266497891076673391556210773482367320566133918582810770645017623052970046644927971568199959932464023561457177713839231667259662395054616363688510826302419086110870418834427839815723677512331843506807761023973951172682904660360837977498878503379050822372438614928699648962774021818268887849050005192696262067764199101864754242104044027110936389550355489385994242890159377634880974001946361062249340179891084811860985720390349608976348591015637073716872568353269784643671851172874308249225001418654152663902363824164342687068556627046310580471035730167598502290811246208380972347831851046117426444355039015074335505933452325064044739897833635652785783891693946819182884889355407406829725245068145279206050538032995824447289407417292612271962709234589745929388188105920381886489936847222975539917279270685773005506026203231828164260890418542036569878036739391940696621131521086844605596639503624639746463695032715912201030024401176745428911066971421133421531013831867670336118363264867987804927401045030059762130639405697742072326601321967278675071115730163889427997559562591299219905397603473475991466828114022744706656904715212852809274391072622017861534058354550600543751994135623848577722263709490796450667520585370754433876568478166566196359662654343582518938533755292380811085350066685507553639019359615460237516944485781867060814218791109819338737165394420531946863580531235083816548409706000908935754675758736598579582141551725163369902321864000193948487187859390103361019297940107154347598158666655895140186997080581590564923145973008149283490803665908942124310919645218945245702564590662369590310861536272311594798194944341230220853938275429068279230424574546803229571435800499530004524404405045334975722544703261382317148054451653949678496021196251340029981601590193907865340133447476496362854927976357235003195264177694336843351582922002275002572457099215239541740306414812890198637693592260178840865622813512720100405847173987809138016693182914267649181412250773892804137616487402992704147821448223169713713446677315701415927277887916508840766298205783213985713615439898051736658249028588716556708087595397818259886771652470743177829753842930913277369831598005033154577108060537313648478542558070458134315855608004744314443561347184951739770621961086135815926696437338294424998444678273608554232195012906346858292989073070117877584817807768777610265616637011333453407311627738636737509048832193782482902700148122674440788989285676774782332636360847737145427519000917413800058848935698778852519443565098597483088672712312148415720373432704091426977233501554239625705739359523530508458762108596965324947009962130838978109696283590727099390168673125568567219894106451739771938347554567806037429881318449126849602987091239609836677292947429767241844820031951667300711496884493338900307442024061533745540009275470508448963561791814188754353180489814151981039795108847739048955449485543498063133908955174176173764187141147052204143813617750677712803977622221233444226667725160787011639575601873217167516784122342936026200428523230176458051429772308452005330519579860836315864179902610929609557573434523142444867542334348419012954824848804289254602691347740295080537282870222990788608169338019196729894685859931604605756407098368576411748334492906672340913207467927941680893168454476012174458511715146819632145516797130329559115649712817097858087858961145292158000943546430205538742882661840285441437316542725363332009572486973015576767034808708865156474709925371398925823703421479324470825966644398660897837234126993538841820929120103403731084021287711863592924360222198982157575589578786755070159481922527489530301334674175711639305008892980894889084748664498720977716276638469523966839030659505283055195543855346536404059809729208132006454110462522955302693679258777195864799231854554048036276437265521624084275131355363575787430674869229645129154168671523017035716232074951606743507115072549966573487875655323064074707470656371406988162424845710731847802036813657585560243786632959272619397982709321195814991540368112267771296119241151100284920659686123578413792973718772831371841757374869164904163742354268708423129212380474061587138743833624005022856267162500613435543303414373829415660495317474539662062020994496134289280012501783410588221318664723690850991765799552474857098477256432336397330766179726469639431761219410974464897054101460351603226648673843565110470586802900319038660832973353826609539436275528817809149995527004973685471267662119455226443071597641179294470855818822148790196792778242457629997472371453928647792896192284468091076664768341358847396993895099721621823829320337557910136399241483473850175882576367550406547164237239105336257335136143682918391394694883156129724499501797857171889033253604793598853995156015382879189435791979986395867979284898602475404167966464927155098707450965601542141719135830430195950444052285060210666723349349520687359974862303636798521494416520867536511852506134471189698178256613985422136107420297968006768802894477381932790810376648733282332418643383444427377156277651409739819070188625488758799480689605449560226483235970919040496897515843096341415282534654014318648389081470784001841739394512855882581763260682817377284178754193977840472747782994840200472210721528354123258694884526739492340092846592468914048249798470043964711230422383843553701471636519566106925785941143153681983113251905276449624548036232854702335146038956701703507808959129183892234483703253270007337470068900912488940795567401003390214640491840923056621130467526044547745568182398475988067878134542217629139048012850045175990701107142927883622941839270237221929057082953216155421822780253201717748626403177969279528975133826982586282439699875660407792242997342593195567096264308320540603981286456611060198750957958739322461321808217422544266354913212425575596080421673794362066042909478141450047100968219347895096892278926623658276110555343154089702117647978437349556952947756693007949936130241038622774323721598722322024920340510564314360058512076314367384978129600390861312073125382842403373736825677121032553929098848664498786894489172634917303649882240556929279108297551695088162046730050731589451550790758091332867881213030921354246953793204462250195397644563176256947607919034006767416054937554571577952469482044811983768878223142126973713574673264241913172188467747264816131951468482768941184255707982736022522980656051052874233613438052003596415767445514496481174568724960738902186870878965696618094300247857743427363280335753183031350556187819900196661652153966857312430299938480575201040605218155128592297905800067370083591648916400655745386134175063664045624659033231863641744817212145615890239554690073269454602916701985117084722040786892648703752577088568733945744293297396957328793443368888342984358857753227718250977547362142587428694632057932547475796440513287356996927691759521148537711170560132356798118217466786213242731614824849875603770477292573244077625299160297729684159531850265627737129100865923935854531141794015853702933359533085098061956597639960352552721355552649164601929436053720042361023563529947770908525084037983582719962502101081713955187461354624060390528584526759351277819799065497134589279578873162269653982977589350568111266817335592067443567377973838829884562102008069429637508655138835588591523544827750988142950307102581194215460803425526140859984011095857677501736037055886692846771250671672654039693359368964773024796848791834314475804812103253108343337975695447181940744377358106798364343597503543535799973990473733863913982998694735605612098862912475937351593027457532344374506878567129657447868405789571561126462840229639020942415393473889447975228619380380766142525126089057337577301754284556710284799138407788392820415952206892975504437266036839624930466735079326605742219865976748174893484825552941841140905941070342443105680757385814167703631370593911927253459811602249338840413368469414295591221183227192261831816089832810297083304972497258598333756813815368856910262126688248032735162423437054641750854032858376557472333311514533268344029534278466200075328940839196189098298415550511013723129907781365382485173827036360762074710577276590822413974900949597690682210502884961062524579403718302481803139496748525166544540372900494577969789197319344907746207257330177422532833378148088166856529318341614943280341374872322542557506410875612188704246458954313368633760449690977056410627583759869871807431830670214420043183749334970620241092023062967805056991604533044470960170929407302476611306407038051938415621128195049023560842922772226545060307723486936143697986342160474790513580428848879495807845151199131656304343163126710575451360698825817063464906536150882234362005775310484685434242106049738587380391938499001505137737399863155778600598923948504258170991859382521798097756828614763439421941806016809895039651694592419132890034166982999011385467717568464071954192272546300203762585891402122812055871972806960620441272055652352718847063337415142895736530861889769905100154244199230706564081199527734806741170436960509845821809446477627536286106591564543895280947115873668507922460275566636067630147883260817356492302374761881923596435678255791389726421790274715596366271838341718483840458438945185262497637828954669473547207517910018526935724560138748963295191576242818029704514955971664613782438374685331074858979484566003101298486262597939818005792413501732123243810561623502168318218445771794297058001171982025955445195192016789086739531512610874220278507975283537757546281423944178103981462322660334820457082504387682370249530000613604749197445472779579994068281678443858450243838751311125625807509582575789804708980000341478482987054412838234597628673511031744974749531158544854568928903127562408015856228354918786677779830929583987679234046086972246733772745712352026958185832257740988329723073058537393604032048116939539777230552455550897160074797875244877014219389679085708571513129734037398987551418988811813502521674420700169830573405271707411376649431162781951519301958072242878066866420038310800119532025672702635236028355133162322993205527482009413959132097497237134434467837662358271085401844347432800417931054121925026711770506395666482979113307932485159280906004911420590977073853345595646575525051740787682625789923584148707899799907822495468490435969429164222905287478848353510143121074509657019977126511934650734124340252587727892234042497083905474278808698715868668655361825649335865191440639881613904519835770045659138857491494849175628364720660908489985645700921811795367441166267367454545070516851885435551792398631894771864144335653356922956506993553397895529649079554151411576539670412171796530313949807657504139138084230590313776628617790547337152006563687825360797123478272505997173767039460516118293927271030043357996183916730494979987032672354254493170394997252992128671977504921225743223674025063012805981850028080705165836933669043890990960164905531871872930401069301695592350999790284001245186051819974781448287844588965236070077113371933162995760163727196489958440136226242623524460220542672931620382920325519883994122028152606981668647367530905322087675389351629997315121747058627481231023133156501782609109801981609019903237365075945939968208730988628151182845586030554331869624741009845589768680917926456247660770224652458386039699666901829226208753560871553863242077574791372071413510210117395511713793119756630869634857565403145711884458145390161476019617570603966384079185188306553937637478315415368174510265653570493864298702805962212913855008221050482299089790279049805402825543568490299881735309418850712918800186936119534992072316538009279275212167746729782311793914339464991129711445201676772303027873674953925107137846511157559175286013396918254005137962453639851951367799858409298964345841808871028450263881986432743337665426637722764835539920531741515663395405405413514532179907721764427462819427828862281748859419003687121622143777588509789756910011002937235209743146446225806927184804628312174300893261870167160012684601070305586560917112248109961243212509153185830053012367691511461669720759256275585316389445056343407315515292204758634782028304150256037759954897786615912885933435425503180753601599771064666880289211286517044541846011624239198661015583237951106213145294932109699502488431478420285288875822488623441246031284471185753888937767978914629305209852014063176343083608324860916157087241149855831526137333453384561362152890922640421178310318136798929423989366760182908983444034530819145042638051662653501420978691239532762859962469170214936835021500558449023218869138281242189479123531627116205591113315365067147451241341453516587246136201173680945633919032291619177766171817071783616451049713055016622737724074588444283150538100971035126194996023614301014372390150414113886234644970538102968168872007943283107992575368104255892860021541398640170448460009792687266837307358124870777133213185339348226622825200877822995833553799147114360356131383873064850147893904546486871866570406143901708823258205170374519300235861531065051025782517372487103860713467118184472142466328159544661793694573896476021709133931290786460750831430279291400187535346037428515812439172433819233398727640858282747681927853142414922542197376448219764093603537192383545215408784022037244750504736508598351276420796321178270834047289031778730591170097941016914256671664594227582753620561688019772563034977897471028091540548554041717180560478540868882249004986555166261277628652530003572198785480390457025760411396696767779760728168147987696132258011131447420914260017885536558503164395451770247973231786859225650676954139153920820865612146728808265910897877297947538410337362750096035842319959515295336933064413538444159660225178178810319393800216467501134571632952187667522237213504420975204924378304081026089501279360957050842204703444245373915658545097740934084981207437212616232795523341366709227419994828099315327887357333690871899203164215002525537175130644051745311745660434785443613330640003017599669978636560547237514774734711607356311352835470815580424030858129526221911067132931020283443421367829370757493047451421239602803079258005749397449343754250951631690731145189850245267080504628208434898835090938434262193841732510174096587509130295054529172599300373468178567589684970265889610454896031624942884692815522710844007265738724856028181142577666511037287614842752081242658158397160876585510770408651009426567085493690032092167711074509298096418286502506464041732674902465140669683417199335386512770975167291909759136262767726714387498217413527869317365441302452492624053003274683844114916666129098671691231419996320746136281726600262608399414044544322891521125976616970224261803039109496242029097237889454135564817635840093459843929211671327295558041603969316616920765573252643026641978116645986438062391978960205282945078990523013223558858572172792338531141010721084481357572811147348858099797681909029441919890386482507741689107214738968921326360726593502758242305069293854581047704434688260559524841386758994895677205538006507213581580850503212724903165488330537178543256880761344181976343508948975171241226786388739640246635466779673434927584026752540611338638536618744492145593778399962504636010345443704849362105508463200827766739117216526812717469434055391353633456910288948347249982044745193550185893928217215778985979989705837786663411919586228367015393532871093384399473940346170876017393663327695611722892562155670025195285265914840622942016549879459091702108213553849749722715929350804272143635788838856361512437300107515169168263683475123860004836546248364738310352411719512651159947338984972217756142011795733788886684835443603236177652350889820296129169838045517968477798396192083084088125715252210648979101922725472297838966175729547974843214997615418458240455362109002202780363167137968836111562766644115576327675776735357225469715494840410884026136731656450069414711996059219456705031957393105375468528367232530030414791799588075926349825797281823145548060814670304090491641982708955888670738299105317451573287987749166826650216188481874150770423873533003198194723583357362159686481557425910332782727326738971814990653115087001625173925224411986241192459681835437221597223365191226402796134073397328137866963517443709355653644309494253343676843954185798947007891713057590178583771744343823137255453752179829328738142245704482923875007119823946754216639199297972429125340784216464931921994657279062210268513221275939332426681431827368652965365335460794197804202532239448057324194516083401696389494115960427611499130940438403915095504019278736010813620951585027676434811407502649411620681684255703851016310197014255348985294916416997942807616604103896086933786464456665769483637672613927749239401644020701809122342376423872888864929965482339253436430586662808535820327150387037261967549791468582106192284820952155866570748159495553001110844157631032197505789802392793663635957017049949206178139617296731933850665283414602111742227832346164640381876668224346913588936539652414628149924103797144256606051532643540240492848874842731724977163372993244288015068525903365539690683749413181637405484450190322160675300057731349882370637234315251211172387185010191505640997882811089466575226420100870146465438803510403646821974194576245943271189977685205937206336182554609566115764396942115302081024610500891879328325198558510765473029149847402821761438801027487177262266441224131951129068811353083079581573331170133310102750870838663900033588743444794226958166506854427843570674461697033001497603292398828796586532920424272040177129259070008813250998589842885032178582894248987088923048151800619591556828753805903755116364100196057070759076569453762620888798613603701867200613799863210651293352744627912639226044197284443281467374600348122809986325713853499629496684957479079209174608781655332559517386614136993573161420747213083872064862934048296034806235351915099429523610938806253075445300202489173774434305654160121324667943999498266033724107170356215967266903964117082138470483236373647494824738751913232391697542627884298508823640746736564201991403711055554886771232814162309633758835522610460751079808442397104821392213503857328474001312035186118020606668215414803801228800526356506139929643624218268721816602285629403276923423846674973845253599558724482589631566756643046905455492760927834532406664075169549990394326397963136090920026155724986832494516052045669429271392616062430881219943819959162828995755448713999055852997154272306721064038720912385433403605814618434002188429152951150304400057412681693953012346695981395920407598910202196452989666918400219998950295730732317579810172008165197038054339453485555107805160208470277361920768197047075142632561480989502463604470852163127667578198335962306769537248613021713892334434536105810815691747363993803006579341473397215636122176232557717511855684389251395812747096095216388252636021460762178260740183352790532356226582562199110817691016448990595537611446936477200706939644223446846894159997025763975847754306342743297922374347520464035926890298069805272801131123742035165518321997091378275016349812481625134982367672853273223419161183326833979281034333931288772327436762524871189354614772720849045064158849006830650706341656738796114393299439036112000977090290923482528927642048998745440451847115573834340261128703326746910764500471311178816084903225891162357947932298258830370898303909122187823052908665340740405387383137562717069723326052280021571632167644742299982506052617860729483782881848623354077683336050877187738732553737124473091683654563765268120872580688318812088544505983265452517766623568043618101608183328937817004279555640291080646019908641511330052370936973585723064307050802732874339669210881541395560239896631662856265601371781135854805448007385572635299027561002394695444283857954312270592037300383843351856825922314063158973068851816218406755589043279847473207331722660731278082600105127363144168409832607100680140393285386226724842915052021319295739821343962366227587413517165647176592258758932189221127075605386833051332929204851585937938370767027507877961115080506392321059655568515775747553540203746460697345953937956199132687150184723044109706116875239840999840988279600124307066642189901238844284268052027178398487746972896849106655719692517515197961083811414565997060723637827797342548290196530591948426784975717026427435126581822668950839934830594684633593305831273174871316311213846726043633512608328799834032363278634770858327070085733647198437978643059505704555000000659105642309745101406510377152854109187415762973166120175343634454939202868459718345844471435807395155926501894139494747570529245196142411097210486230436613292617164606847554643990967505684262746033879859838250789151309177126063966095393344014783509543878492105921149622818475069172141559838116042670748494371024898163093147894422035239919884385169096339577848606952963271410415041787255715225746539322463217756732718665644493382054467131281930733298474370809097892693506798834700910514958515639185462114267498450124893032081002616862768520364842876588429143932931945638200242309046082452510385874782516279350676862693116023453145317039360420542921455932440289665292719730745823165181683070808336488481716678752145249230848649286831563153295238933091533257078817209438228218681732810213481425792147728301431837326742928388902992991161217603634229264268801267687479581191547757618387527014702514766354967549335145631194410621761460991072777158749892745581647548308390696965480173501345905416212869908911069772764966027494178561057093030079060080092034934191941799843981994778768155295743302822942851344465389474461608325585519963572987862244473296457990160339180068625391585348960490018554059691466518955087494404680768423355140690668250680954117870252914049361813867038249025277493293891075314085950544337461957075939315693278797523374428878101136996214522910536976735003968625188140826166434118061318163875425484816709226668170288122737688539550393587221971394346395327672457667898471584366817475211827945478739880122023075957222244162504535090532094236125679189690894768169735611116422318242345710999906984050622779281630082617340329020387074899563319629327215210017939001072048867750566755764469280133389480538408497462213937822757418549971243269351800085590741459537704350617041598028840804789984530630976714641820362154771890754805064427249621072489363527602289869894294695363002703559692376246834690329153602992834611478699799709224454556615038318634856008211929506921479166918103122727632555588183436417188440981172005520606204825656324729406750458887723035195198276142488447902185149841831464071830126581328751531449614674411983250462834191818337463638727371902192227492721790170546871234802349107076367812225596988714434198293424907368984993427313004139524930756243440630481580855704948459792585742506665658889604752972472644060078023273533306822188491592252508253698521499382117104453303234164449015915604137610022336718429044914994476309005960059707746186987674871456385151226473775043545204832712166254718410384874265590525437264762844853453905394081490814918573286604492329265188113008281966036339035221799684394741577014308129505596765934601558219549241955700732929957256328808092523667690553653618676436477627836623011706755427960985597239866074392520147163356777594219491043315656851958248942411291098468877321186191094381441203350640487272341451038683625843292919532304356506698248615634910764819830103183659208157336701319553680217456689469478634447238131182421574766397167699575403605177356643043974565084286352174190258610879384102189116141150375428714351814596441791357586588679691019458297913974192772186294751765145214440603640106975091623413102661061698607511573507164158988032658393182425035773816091879872201876266876317790632201756732204676366590786810668468738269724150171917747457164073982520776177233404419581681549211594175352488034514996122204597110956950718677510121003332692902439725358121204200983616099269116329734479040801457569032206728348208662312804363054123880542178626605432759595266894183720506474886042096200819100779823728957908544011336130204431558330774370119664526160110325797902295318614966170296674730616576655756289282659489978314011538627682905965875679136478804328922511818351035462238187855950463455133280704403651942760828115274031503344327733035493934540195807979576984526402697760987500944916565227370849984311568057481559327709895947804924066327978634631547759291090354541866009002495553072941034967981502176804450945273154607827932732599214117893118372964812949934660670780485941161980231953011212023162629725344849241598177117123604387151560959119015512669489825729320975763310352674728929998300540302649932079621264978822803857631307972534726623769795434576999353432297775960009607826161948079259809844700772720278185550149267122376106520393655677459374146087485551614464357715473103996442540773943264248452112970951969467370770241327755021435909113128137782067985638380398396685827824787729239155278477044015888663929058120942209689998665503396899327833436284254320802759021744277022681319128839207956065404097897032433282365655647259575892634304678475925380113884393015152442734295169342138101944394906410581521222492468279474363196246563108033758733230478628521544095641747891908840828497276412296496629680435740687478729356772498546040024465928352373948423244345768363115060955510287837869757202945544593438825618869897733081736137029949204483037401458392587286322906342974758447458535209629342027850890688824640577973909168501094652224090820702399555854722313555493409160811637165635035894808227212642737850608918108709918165540063530087083805003711351409188967036568951220060907662607894399655299448587201758282472742958606663524231096668043220279519429558140425350538256024784245300728940455177434605827295352363791800185550874900372129162611912787363575779004324307426528405301085292682989080101889350448644657334313675765798857244651829777307295403392798203853696669711725975538208230431750908349188619186642352261411024005046513352860059994976693494842371129379772782738933465287708407742098237011192596640120634275917888704429494022077368734776314312046161689908150136348113718971974222103191602422405335537739199340561030657225384506117184596092278361503774211813096971912967437601516859222780340446516408554979488041490005989665598847048270159468130161302899446692580643104964794829780674206765532244006318676177569091078412624590036474168915016365328001507977468562123388847957829289072071217774879343529635326800934946993681461415952449944359408268299177245302597690407040478058410789881900069454315004511655862131397719657094424163379744176031836753298159266503679393185589464626365981989257230618076565058626648745180098719886845011452442195094309921531786600007478685029130728833198621841822251471853728943847070714059117509694296050163860496735204378215595014424237900972547974968461083395166501550867435361437290468040999302743345704434707666780751890411297379357227642955242485459065408690336732940634503293098844898390814967329445629478038652410152579018431033395599179854722653460660974308311370869936633502003805309845152057582636232858508926144088205681062827067268899451658709675983592975504138412344258734996402515851886523317302866598414791846443381651710094217198947972801712367561833133776472390096097705641304238421684556682625581923853530658613205260688575705459198791172940793941345867457103201654303429624380236026785354024005840187749209819033990368834301969288934927806886505842586613323483566917310081535969276135272969485520192850042379531079149918153578258602688549106112315604021031862607151358221689332118897956851964358875458732373415517465005599708488745530163521912257232974265335538109305464216132443529521382835080602634485809159966551508816316308087501566811210312324133345004427789346848522759219981100562208469028940391214921751787038214564822468781530975512081520498018431959237501136667912372826262197820950625022965103354779394805944405614184473348965736724148648146731307727069201855393851362560207588322070412880961918275526109594472698721036521012686513029864816297766497947567584924929627819353175868481541951631859143104716150395085184450936695734627806684738713865009495088260316706612015191288984664282744243251470723352718860103069461661642986552526490191858176520853420535168246692995808983086731035706409640797201727425008917968005313329849780953656781518491866801965195126106965077643734286676650026163387528594784950739373920943285794143029724133349715941532470042248238238148217522177002446733454362204982590056725859403063666656691205819624794644347269546503881102856825377621765908132029351428882123876681881799100398806494709413893323967728985586657520080872349024280675065252809130685793736140333518682312117935741240327769464938384359004841150621431320680191573917451077339171553256632183973124384995168517569054391437871104316566150602005371857928939912401410547823079962833943132468562540666047951052622629479139212995604135483166214639341004484578699039381018159222396709800862968380681585574088589169585471099530559518649823412961904911323733523300854623667445720791810746918752873016082684340198051549168452932035119880772353860326335765879912142632059170510461323137354357293815054504730427356040643825336614546453777313688139927722087788537578588568303085262181492946242326957785098686531988174062850207030401747069613548822379111240133739175916262261092683555581851440837847703361360934723691668976422625322825170114100957668526023430638425879290215470525609067267787730626592924263745713250104732389945063038267432612985421887172163072009054264181007156291805372919660135781489871802381031878226551888478986445015702889346471503340180386091474663524628011615247082260194737240783114595243771591416642852706971413755705850126308066009913399931959527031581757334112633668163701970631290952114394303361271474059858083415654541843334125253902042810784452464716519487980368904173944610559272812488899656524453020548520392428809899138457918424319108699749537025448624866340949091468594372921995464028300651130195815852757144132127629355801866463908481610567720002493601819419921171629757104577030299200570748113640091799187384303573233777345491100054172699387291747688058750701203260532976510716502618064135211701741188344723949170363727532842012742787631503972291900342192154650406288869609444883249777052191690328752303014864925811080055383009752774460314756073025158746882337009895380923533552130117675286842323510458403423270616904777696523894275835686538660922950313551390855948902035207207790082033005103520207350389018268943900504309059707252860324105534485224427737031955524390447483348189029230754137234881651247860583409398595816408482110808475135408738586015455658088369710322502751698496967660673667802841002111674149109092626255695558587839564414210658353185260713497560563777714234118162649362427387760039910967119445976334940739608071864823211334918075982364077232839727862797374110286320023799890548166602895546105751105760938475833801395093025883928210890538311085785641560037163925674265112924151494433437079703930332020316333129171875306606123464447430035784574725890455231002485164233633260333825588593188172296896908061871045375676735349805833616788993499255641625385176543148923536964963061922858505165345545754917010385331435614392000536674192679849134514873292144693411998395546308910220668071693211359920238973756340306594073313763145547895245191814617214692462824199019168919939637950473143113782535031171204966886136262717327775910745476610201121857832151320875626289416807098940023015684266804443139226417309016799196605797491838741536846368902592920274618371105745804133683594308857903792081299163558685348560908117003365109566161591718289023426782076878672183198249389047798981381130228485114630776392665568410173263247765723451299469970731256687188367187056766331271573094609777112623459205880498807138719330388367682120074269023015637738210492328757460211745562561482140094262242186629784955460484344336072641246003369621500899232742277192744279795798539106664525633416476556823481991065346523305828740761467965996720919560055265997144962032479198774117621640908218380021169854341157690774728296404902884292606004920757482948696263861575345397968596639154355869236737410017037946352401190777285415808006113434000195500613680476734052531659119952876879800084377582792697887760189424562050167599922437412037493895188363629883395060486989136973279748101146104811515517551049935001692629555374995509595397717829891206126182952447902454232482490185557463626591924700860342532233614721669964826524791465596868940986727335113615871543323403031922933777137126995716377788727534808775993746467757318562890704531488894509792102706482093140255878021138014826101606412281139416274545909605349741277924509923852228163931270636216606553570846578703512998622525714357268746429409980278971452187781695130592033172951336539352922904605824842999327637914481330796304891364036331194592034523426773530203318229607696624557652969902111457893268095426982108210608627916235569545977639035032434782547014367979068609629334667494409557738559550250232306855427061840951654528523631198242226166913744652888054807070209225479324403013807611993940419714471346105363022984288455125156890385759971677069899099697462765075367785176759510003732685004111284882472011710016811210069638586757914420102632031889425962153394846355335054912552122009426998788459020161378017944804065506110183509991361421711463011480356630039049433068465513138798157765707277340553201074842744685204638263386259423986736143614877090635129358455319425490526826729640476846550333657980568236738609659559335448258088174899517020514875023935739715156313783318839785715772822849257615310204228545494245535860407708668627123349693453497123714023373689145372404320280397826179416404216012599675368067322461570785600500846430794586671064322715997760272493451654641305111536367483082912294609256291136313025547240030390524302178624805376846318712223525058077115097727071685884381505056508309901291847358418553912984113801949734256942771137159927935026089904681064383606160421142926636365530615520426275163886141783868719765428708757497923947397132611462568408617249206745303125150243943984366841206593326835833185173931696427273245517134779007079097345463400121290509584108332456178073813306521536118791630408549578388509133592543732889564053503775913219689590255726294587104912555447426046479507029939404870974629492688856786936219983679755541312861528939855133441827746772200063206424208488641645482023628044934318553231085143763556918917068391042421671174392911323901008708476297770262514627180796868147273670642590949079155841243294107266666155348507726365804122458587393442525596218230488756963469803057390628144388606890297061509711079668908077089296672233704627891355296814539755788623598344907884965642462015005261556387099978939810063038391615710241699532244394539720869787844596963225408072723530154071020630008410405780776139963646784657542478021195128691811343874119431034374899012891025768174376145099230089257004073983381463416955369742456206700992882458458851670455986314722639212605485853931020343630235681907480258762276128354555932923668695813719861311621777796666297961905226911417506455326775173386723815562790444103940793243324561206045324789809640586267936430189006926564447439763985748705820456793044397212970422233409489803867322998433349417031510876205297491582294232656491671675253619739223927985321590830510449077525004515176882970987963384066508206624154933893700084736739478307963137124958245014404130923030450041866485429669915035118232683725164368089922196531558220783748238357697292700897570539933812623119775317972268858736039946076012491522096192110583750771396344424601118109515063109498774370851537013894382632750759914691810775049179747711599417600892663136045806224240103678926924720882547526637585860471243482381033804163564838126961158639497487640695607629495821598713770583784733290084606799833147246256422040018861979262396912497537435162117483309668098534359295460346116335001230320105089337448254199507275082080154912710848286364912503139031955865306564282460675794792191048301171564436166474616633000486821287078830288129194928657213865907714275240435383377504086660465751832425992192470575689106438948507292696139673110311211194577431767471871812980303321158201861733368802832067824771121420794979330703526033884261727757108963292076731527420844129005151558009298010135100558196178405131736736383864657954871846768015276180806043340760217497839393514892912013628612273676826836668883543331217836262925801642546324435363030621106779312522329893713623980901820745631085265450644433142635575316730546614460993255748398757262127510218295933690285238944548097855987945888463268874067574818470720133406740373831567160532387291338879386420956474590136311357133955112257563040814975271549472358240299391324852042308642285326907372163666080137956654516771477560824221276460440823461408538957002405663877562596012600309093433046469864012214473803494001162096341495724681583111759393564218607592238408853328248481075590513021093546803720502523872586367563474551998006292429962261543673317847283917214624613117610028765473230694012755491023387658372822135937109913856276922847930994227619143163002491255148455974837845072433872733746396206977984197550537448141851658105905169507183069045832716573938137763910546626156867157265794264371040738298494293390573195494043683867078198833952602519269641341325803327334735087917652711672132348659516399318672909778503702067582860806402228658282578075815916436633044043101399800002003555283975948993207289164762642551812406910907536194755767023808296649564865095461322717818871933009669529180911195374034811743565115380167100422934401603060928319263217006560336253384708395811267794021719841306072428458469492869204855190573237923610847708834261848380087296978004234253151435228623817982698573764837451373696293983298839322144443275378590226354551877226022170696775635549028240239791032602261400943508719858116418283933252459408802992134472827597835055700074220271806036764021177559826953826857428965899582371932852308267220521389561482056558029927006735788549064596239818605756361431679536898507609246580871655378222652785331643828907498123932085215132602280972462738905020643804198348875993700854983988144763047193436775877756792011143837241230876312470567538597573459389816084454145078339957117166938300702166924211280522230905586306835208780191338576837060990456070683313345723603818509927287280658129556277669475960071180534379362554673335947664193442171750133811842107336710790547113067643366482720371828563864440064747723934494692239258034634723925414224448354944470843408183765205814191177867344807935888933773889123792401523625248281888113166208666962218559470575063560713027129266806167534054944231704940928366227104310158605890673918161510183759519763440299419387958738832043614488654043865522607620702220774999763837560304830850462487316557400299757535460712587084962046776911263004509872820931432709393858006380361659966175310992413209059647987859213563773657256680145835799021770141740124386697566280778382436695789883663236048990318864389756287711406289954587980771355771089111378348072096409270592616861875809153668331198208398514837599974172708282184999093535309186621582952802837877276182119563366947269066640811182759110735067145978673672519799530488829840278452119186510250920983824839909500323845586313896054069326667378132572410523132670198150008643261768871231244926556780240231867797640132575523436488823784048616999757281593636209844282400424886456207065601969634675614317616678668026024696379334936375776658570086434975696315421380640726113021855003903907079151574049315436475988226290372775950113948487447065670439517690782444013363842823640383472805707834738940531806000784376067692948096150563300373603731094651734955679908085925452084299066617343476920751241106049787317122033152960404051639693520465534783660593892830423110335047036189702274814712082512109878997417063863484953727913150051384013764914480641043989097816276167328503683307293518344883252338270204283263005815216347249007541050059405923508833055588108745590485794737365832594998482583988596666071868844470800964963276821797777482410444506271214181871559007959994048195494627834201166654685216784843560189208172642247658505055018660479360700085534723569579470805483766108024117829282622297767763608852036471618490443504881342019230830395296373835847182258299352372088982966529046484928107104504434163478839452563005997677894556970936908029993583545332566950451839644743073608009322136863012528035322615830188474641623025499417456508237461548483977675234186107191018616928177907785583598171069747950452608351860344192283143550116235175320962448576863055326394882784215927686684240990334964033009222353703252514611244389042192871679488640775628596067354464601941676397885431117733244366477019178536190718838403327768529975659092769627313030832429118874910332516910422663098966682402385183194525722265900085932302147073807531265346846735738655313960655430491750735069862727295094313660776928846913810080202208473231459072694353336475477933869560904538759506349088217553357260333993703278311709385705299611101218680141119442983536045169011753212968914494828638701443505933607153482229798993870585812020868193624528714767753991800841718255281662271987197311129879158745992843149487231230663529631648364789583571663795564422188385284119410190107293159289537753878280686685739243507114174240881810939340318666381097292601200599447434421105456669273278680700650282576388734553248351727192808972581197509443132222289522789707336093476601552433711303566962809940463496374473796685253705997292562796117746661180258295507605402755828222224714895408206919804016259669176432882876376469075795407074824502944511295869333456089015234484426380870225660664353148048953222849204898717123141878000084566960723218008046404844839600779307395949803288438353855207094957163823967456191501285358964247726983123391312686863213201741080719236460461904352606682702107865161252947409565132203259095773336048711695327991392579317450183939093334824259697740484106662106741689818722473720983134408347932751096320080037916735854448721190284569654576686245001573922253645730996694470431824474677426215539094065697017263324657555510591646724342709604819539942577983868060903289913087074681875116099419197395935690510832455733767673315951876671765954009994854775865541365437072183577983444573280852565300034412348452706254057026354426425499431122129870874189165921319611789968669052002428262016720161567414728091137987034957779018918105857304418535832453341022699612455388540659422551250241825055362115337740500895102892706039070949854002522699420837566415918457530598776217950614088869927886063716227672500142058356513489091585034823063345515215151432914381416719545020232007769247811087511404234714355788243837571025844133286652397399935820406283300011414030426046327460157915418083547482434434363804997787355738838777429223829501695215447499583885756295181427882198660984656114891753909003868473869475442111736962725954031591226093036861670851628462358178272730553593460227925410180937884767444158979486494522629216064600503708654449721344585228846911635049332259886442521007731165616795638866127151406344533477605920372788397757297882937504752785282093908777723285203783466626001737925875476395409992787908829787998345253160767071546030264913086441748657729059525071292015238388649076700131465016715838569479914198493386348041789002910306924968892841108543499127047386749092688642504375520971285941111047960111852514186513380337884368315770889864782512639227157240477605435210374362366123309345673255577495278888053629518048305628952045488415393693988368086154510905512603707649140316264395048888081804271322887117381507796846909657600686008456205005674201930059908672008012498043927818965325859951405013488124791070987024369527104343991886346801453335243149920763964942972973497196747319210096753956445804013521600432547597234753754051731562793439580984209554900693323464930146682514793883470274788846829625226102397414452482828430994337019453280256302941172268588263343966990963088629053951038200003746607772211090549056211227102201646761445230827378679774962643552125452487949551655972323527007275107488852708584428505331817951843227877790260803626929927738613907232323609542969776098107348276304805995196837381596733222430315167650305766608084440665206136430114703626181861986316765153086031743212880529657795446988316022622434041189918967815296251106546344945215717538956939159813244943802871264480433672152999430755024709614303850393122731014028021961087321077380924941382600021757870086145256189790790257587387648907579175094487090233198104894333207399333170230058149292714381661637530230505819510637834603475554819364254592764405694225082772352153303834585833081520621268542174453122785605130890871587834154971808704305258192741520159195024977894450741404431457404542217396834603098195650935768489920730689028529442450755500329052740819897276263708423440458698189863986086042355839998038497463846222724820698813303087640967597204963324057216011257089837842728825264108093721039966277312912986516251739076843709333257154914305540472952536837895620827499843424109252009961957757561547196844911796586544559573302807667885619955420270582803735363178395497857408648647872188268900707615054605877999956446141804745514609262054897736024132605614489442467990756363282309218989553962235442335789158888298438675699053226215062691685152402139922539237455175392501253021834030360354362520166731498420783825522059810854593918961050435671775532424618508417177510864950640228587743460354801564231596811882469090855376433665376873756339854743050745696472385620103478075296299010918572974486784086529240250422989606421987223377581492528574293061541533489233722130636264457011140436452923903586748978925564846010842211719046126635644439015108595223222827247853777695608435820386500601715006563692752858038292497648850331617755009059435418825014828827276454479298979261647417752970479778356020661902247180499719635170564646059404673182782018251805952529870839325551065849795149137468691739500435220017378435247417705556183691457323995035730710446158646370672314528939094873562847398792991221983958632040710640135076556294620870160545350073137618547799788568385417655143702673404119218086730542034820308436054798712822222217899500263163718981573740795331200912619084737691928796638336355085390509232901123178961039238539827409803929321517045407307329599028403023907003652755382473860572222735850129832801929790156502164436265490412772015589619088779625594335888840469667122306336419239250837710043518428468578401570906337452692660340895528432342164592680185633896415385547607824643597908466967457817552561260726949184983822228303584039961959285799318067044776615870370022048366479410850971992978773989815273283228473513820669528165349109393241899786776309985727703582153861721992137457550417535675395720737615355660300553817953348290538975338988328752407013335865007945400098791595854977623523945933099041851615624517078137988760659840666781197696798473707508359069169993282351579446448815363282294335208304870845120161121733534418322735787034023854060491992773143239364125675175747004351197400169156305913800569759964183869474913305723540742908641551249674027898540868617721293747046922477816031478268283840915558253430546814499774057852058126108625139475378829172075455893041560290995050514402739985632749115080965046886889681987834167284741191881173831990815878812002938736832347992529555101492031870823891922612511078285918616785077173598368248983466318031619053444357438748133258443962979574600939234535878691741167347999645136986605777760741109961894003774070339211563953999956881263598983475989819669703385779990088621200057932718875456504342836027690121460882038640058481727673488923686473970595115659963445900214238338043380397554313878650329316939676135026776565709575500310766670065211069931510244907500313377868600860329421032566114461874244661839664306528913722264962465104720044526385459228312632962025883051362466444670745705451654914629852701251477777187031526230371698719696017961494437346477327292935591698913545003501958169628781693833722058298671546590322262258940156549779399819823427094794030918976070659197728086429198880487686437000850417735668109782404467195135502633911080295221287580043177547495536237605840911739707917115643782153096239266894626869143061079070376967737089004322190042674870451271981821386720359580236923482963334245069303639720249790031897685635456850428389815852450860551416535278726951180595949443233016390674049110933342796371071007360443714908148101038209271606017195306590512354459012759231080791638755599889256145514697373349895230530059618195510409605596399462731431420406068596040162961569856780819206070638097131867933279599377458938685113645607758979828392830203498414212750416164041785629664265447376758834832019140807995738579913265790778230671086556610559397138265495155657524264069404321228827643858173824308534579127554655937587101783168529440489566533081695525711798089654362073362752759316463673032089986388147431531141068582960732348702834432731476035896729754487250864752559254224148193461568538040347311628011219340344600619209972602038738154921515724616227199188447489601717029635843534721269926407018988871628296216391992854629034801044283048079115486094398265820094329998419349011741100269943953549753663702577256356508974010212328499263473805224888044826821263465558170484664924540231074215876515727387868151012693553841506034026425512462010276593514317678718756778449140690377386424024655755559799190767528404045596452558997270455548785058731568439150290901879107468298514225292054393789918230035560995403264242475054803032360182828629207547585955059564158061621695028239691352081892636051517323760764700588725538068318963945451113010418932905807922996861340452407319614963199165813072106164031938348218123335894575442455585232426258581632104127634325662457120154891912228222692627677643482082266499496867226000377574811358355288095806271739312719562542374038960594707690030354341632522102144518578171433357723469309483494437535828576574084430642713041726137616061965024433876399662023916141004775171538137884380899159649305487892235216465090611990496768021704005961252148977817911114095020677893708758729276095568832116222080233190029240318463372185773570900720901823750461833141436040067673832691057756890827337558112266146849053489999194659994673320517318700150325858803757405319047426461784300697078214582015052889927890052335812052522563444509616865628576066068495350689729232117392260293981243517204562994057912853227168395104127074970266605033160082339450287050725202259588725804888186330226798109624250419857833733573505963469824331966211455345632339419863820106696459975933071037438073481620770208200809722583596575186060622245293080098533052186260581112270804138748755109819896618634942222731066460783064549971465177756022024577292280930983311949423838332116766550385367249368416714579093971994214459911423321876225295574924957494998069998127378326749614697060704644401613974303481911047341325547714468408928752034965490106797398221039934823136455485529136933713212577653602798414669417912607192592013716687363020119557583877415271910360704458042028195878210703720137336746041148827605168740747638617578728129162675904703214195593117269300653951751853072007906067558290404538547093950726394908697724420886182891894623113669341726388855762947537795917846493320801265524212957035504385367120008059593108555272534373504409944355236816511958754819039707189304693719040536795499302643696730561669853402527461625967058310473424280630179562314067571105610892952990138530834874474489694503958623925951750715432103977590620554242665935911857726747447403588579365364095282178875034635168386918084913983335039548270751606479721394367971674565289778082039860249289945198117128221422343726354905684288350738506912954388787800798588694919314287102981011326069620866771421215526120981790791958721906595221939823462379799496484127074607077708217390795453892392575162325942816772959551327384217882310737627166554266384041170288511251723744680375282160640216896005528968821115489278176347369741000446802991287259993713666569770267247270299462280399283743934059751630272391342415452366133412497192877881778731000816353925704061282048533183293919188963288058710042524336152490898126453388081972164559187042682855681744617774057312360301242350205039621477263788825485099843300000613066757988804263814696767009648137436735239298523897284959796423917680565005213547656075899418909320101091302348495814745870835212375728189722630208210762053543324681053938887238768874571765718673059208346526546401405327974767957388954246078244362085786733569594498129504865006131149093042575362357020289747867858760641206605980170512474330329586893552400197723426899131367144248254663523994971285658666138927317637424484127751768349150340189197407872217754457923971759902663116234426954896363964952418507293936531441698459835735950794685340618417304600396431754233870350217538626278832344024925837578407770705551166974863444413993788266260585227795196842170100454747933700627393473702223080729696641815367574884439098945132169767174811417825012430837860635798160706430439120006856009610706446049010742292080870724399050382176579320591578345498457855621057356206073933666330120606300403771361379228067488944373581417249670864495879073660826300977044863656842511120374894404772919094810845527517497131900708959170039174861635514819907950283362157582284945366282442863423767465004817437295847553738891605014891133634680326298279464838253627755517370917616399977558967112983532241913650224695434791208630835142151320911095522181505943762659035680789961870622041463057406999546989356838376230366294152331431768337513111252420939297400091589304101771098810607214362615435055688026052214474354452325686189809055970058846836654410335232778030940094393191991808303857172621463778733006367467563192600031600945066138805929995396059054456973351181926591881465149482055039585194051406796298285502338398958376429441061397032540740026245608095577486133138575294277419195514435149733189500274976973269039186003754789071715104622234255299206424702681649723331745610682055444646950669743358493894399020287942109728984167670956830674699014143633288974881184467119155840683479466044808297262532117400360799477639458770294403251568040101844486929490779107126262696880003165153114823352821386689459512541179991699363325544425752055524602728709698038434150392095227013525268401541752603565213748276767989956782883482154367763158553939060457700489686751509953755231262547444352989083633578996734021949951862104666119700956485967364678476830818374232401332217085810614763477974417741822493397673100836698913664094176269179021855410561855030600547602636174089938962474032463233139863580920159819470044510439819581016477079751743328268866289480031448067576289014684064342197645413711956509921214298218501819955695721439570364521802270992522312136052926753453612247669725432052636143397824134731400665294097128997502856558310613187216247799833224618357834225482902969443647514583572322182747872129264362867854479523735791524934982249812059054923367675953529349664569845199880197929914640656747166311761517208113868554515235790600088417328052696777509076952994138268527074182272869736678742743901411408722004573212272776682818321062626486576081633867126993818830878835063134724175642072431297035378457317976227539581981814955499183639105678535034120681397779243816525693473637770264122909266001758826928644928338449214678833992051272478807165570848850790310682008569756000873655635583702328569762961736788165015068223088647606676959911232593412945263003861369353385020407572193009894399968375965572990331890799004082611510207223708417398953764025008822898374389550472197564924327282040234193841807807734147790530311731746866225625210570203948286833811128607889185548341920154791173063008230426433414595568048988568536504674824735936262557457454296784227553008439463974076471256870758192331086539415214712541564228101968298495129973649106782623408761735306786926823468321942565822134148622041657456336516668538711436698793570122907850041609253521879043552453288862475909769161211238571819897300885507630866317609969349174993834616567421591359853585603124899294846321355265017750926175194647141427452901048553884633297604462473753323897518172830777889680520078589244179975062726256322266031017127549775379542139062783255717794890245871248611951317810545696337206928297343203433041683220258454795414529712786397771026958443104428374105024602759405396543902905869262921973365722064939030397976919291252711542610640059968828559891941307219107556033896440939643368269318921531261665109375307939300568252930882952447955788019113175647907109809549986034753084768022755222903048676840074991136146219969737861746646309817107948948848964203462640972960961354715536319139379648823327699436686748160476570862473332199538249691635711808972939118159211960500516952209722344496950193370922705520354076787226776245216452221408411710750371595157126360488610757632149404959234647059583319121118930213006997715764649781764615903758457907184205120681857146383632011799098522569272806389256701292112392267255588806269033780732051787421251884199599401956035249247280899260707497840853322927109672231623283056619162866053356722832063563208641121913982082319990897651445502907190042341714470856910804758969036922545689846527240109075915302985054863780708108204118091350406950290104916043243067306300087102571833270896997247774416326466824559236722118817264336964380227736489322196710015303094337956138825469724688881938127618041903160727009699562285755306592253843817559202013328716820834358645545129715363555496876822928205477442067186614628787554753192678322340805734238840349516183090983300528627094242824973623483721951986909798897818410805235693608339074543565739289196127397032818327961698536544925266498914738597851663122800508585577622163649401211680698458279343028196772624726836356966316529250637105302118843078032985316527625169059704976924078952001919600390337567084995025218129527674815750326503871230719637302760263234473423865686160257857372397178759858215281024270521910105744966710921685788515398310535140732895713593727094555446643069574093443795714325161907508386591414350326356635657156258050166234343529164097162860703529967740560097006571538416051500561817301118544088392674606723948695559059063126656900159786193420986720719036223521373997120644874255742355241928803449468745514357370244012534724110805647520480949051885018960164595451576841825658748917943276135478477974775417794657089023960469718013623168311222966532343610235594092172657278995041169722522702905449790378194316731658051180793976257199273342356665742606215175397648824467627211013466123960556649526697080190853952997132923529900885978988007561129904331152534285779713858144130719429809485566501963595731820267002502840895013390570792436264101214992020415741000934959834771927828910335810710164228129272276984845192147689779685581673079171280545410418560253230895878147869870013486003974750370537029557811084722807704675955414321062395722707712692860241294544587785786050405228351414591615327222060762896230104599298952022245801821682058882425565602576445904925247637372002044888322321000690686695865785952838825359148699073617744815801486944038141224055246448795077179323574791134430333997676790778305747749434033007088927075312714637299749033908471874364471157586841692022916672096670556749613955071445656682881708074052552968621322564036530489471610492286516455231727485788985140863143964509198743660425102537263629022360666570746637034946997370083418627844435226341831789431197370372082745400839296025565808408027725278904045698505844658776156618024209506848835782915060363401204896219208082021840913700598537295979136220264989789912486222910229450969779361549207051408710086585930766839496720115378702267709864015836744041989090179334538913421334454561549331772490518713218926371062575848724814001083461826302337595391901784262311768399177512896690680430651656078521790626539840355915447125890234549925187842942116415216081072920717401499422050078591908935587555347765844947912651521530894629066973624365632441924692808867921727339061198116083992913173429602916104437122847952864684414677462326529902143227058248283299018341597027907999395355620239361835040930272598975976577728519373336787800906636482138204571892344528303024265514728760515696320955521290351546170916238991631737521085106205986493232491189348094441037817303869288623920910144544910312540889760067923829536154315776417268607445295252630367429190388911529181763099656094459969568640963740364263373274963667248693002917321645964376379391894185257522808541929990530927168253158614601695930672747336481663596753456770186694906291289730001603752683147646839024214521443301196864456869353184865603228748236804291866999485246938350019164494032138614860007571231232298710644526134842724140671416387426741088563803636807513268480459929447764210763265022558328782957057763424182521951000279241114454107331548242304380586183650524690992067145377289517691715657140893067988999052139320876124581888329921992190140083532003480798167073585067843493114041380554421747570556105980822451465247553303822561510870336405712293759541797830823582481250790151168777604947094414096338756243052472574045297365136317908873041270465385312176380687309339310008977031016047462851766823771042374400763066228347194483886630785203602636062648134405645629991069950721703910213412280847144218702928510169557424120314523662803118399081769381853916481148270349678645303854271105716127027917042075862797274050357451687064003955076013427489290441734358312880287218126088630299429938237745835206471266262396051830524590073735198630290022786865444636421494362030877213389557987693359981501368652124380523385304213073660424309027390715420240077900277180649787368517567046553694723179147755838404727753761612875614355794065385635600886906255880456014752014723275103771552553393696424244991958192446145920322977913501829419457839208522209940802480948298869124101871711092105590773973243641224798960619456840423381595396443305775908113517240740145159748992575392840187919858981454423428941594855548505529664911814300507595963721127996035500352360577581989054956329242824445965853652301469751116253907660263119900927888536862322723674638599754953456627842989519074449272452575841461094583855950252439396067906271037216520789413738886919696207226901874919136388053110123127216090091061554459296074977536245835418141509546569060123978823810928564295622588465279603774086017102137411126876195480666558675624986910528754146040195173940713780459330583755422311042693518903650757973191141011520496786665682012246495600307296006153222157697420145452098888281788690880426826865306754340541545744805586192965905780559087409952442648377851192613133539610743072836079559543491828232383028868162109735073413501761556061470236179617819306093883401110484605294693575605110424201712887502512198647929419617558028369679913843495864172109934510436633196208138227181942161415977886156137445153664070809615558894318145807609463363777621547222652562783497385277046867652192064888813697498799636885659910886533664287001006028683613213677623750464806169686557530996289567548310461009174785008914917847822608386801979409425930148161405043036965853919994300558410624949516596810795492995120661756256086089973561601883632957522810149019443557694254127945085415743328057875429386771909140495123248157382014267819271891094513589499693113133483568022556483207960386825128326875377255351681855887295042645318604953920375142364650080226966647774050532336161725275350244414285056138229682443810935575958123363992356609979295216620929354393739452716841932025805445000253033740663806846270346333933969320736749897797226725338260494549819867365249400391220289181582079611603582986073926949229934183398695011437637866935561102245752812802662345725690690763503208400985795319612286434301712682841972296256769991692716829081289186343037399189778328877300704258773245567525869932918966376129061401453593916667773125658093181769291899561667308790306777384937196946771617791723306373110699525446225516213122850742804994865777963683025910218659503364523707462030663495576246564368788078670616453242633123306376400883595226125691029956039195423786605410812280469575285773066959665136044230610946846458325757659690071793830102183559716948224925577450067825364398999117493979691060225374289987867083264320018694473350752268967281297329220692081125289964255756579064381263820046801577775522200797885581469594488183536561378382920852788627974280558091198721219254288081026965259103632554363751860989179977475716410743881703871045187358510071639349874023009728755683849063511441447787325009408940541215961758251685146735456568587167948844135841510804309399891479190826184671935822069565793435795936391966272444208824941971716247769294760430961796343426354364153776313089355441207924621969444567383685960739154276206369866579252713537668557981255205999365253587032650689443050577869754618063436759066983813300538303934229517586178871763991271821621699357014270920997742001282053074776382267403049444589402515752795363470684091021935533951306085059667881069712449649939116394507671578315692574937529286479923460030381076657808508043095629149996843292706710854047591006332989053023734721172364044481378515369599824262708553151922839876992359114032285098886909723216211346168287905029232109277252223669086793782182667786181427880239422135533441952244627042204208595424527018563173045882161074359156567493640042297454031528756826059031118224669560533724435049067209512342753159474953486180766664255620101331119252368621702483003693774653096909674696704724718936127446756935019316916283690771340835645130743139105475248665732340100865559379639162555810173461431732076436706152840868461838880983083625749670345217306751923044243726326454530165183318068645156284593768105152567815717726976644731659717424773255068637234286261591505798674409910485731940558202307676061926047408062555649211565155556345407802005469335827608891593447064164639251322662719906642911583058421408022061687266691492419572581694670931146637966971504612788237031244870575863073518062433541267629056609995498843900341169849424085449152056114157124396349984530296589881776082984246617180931343083393616587251335349937587171291773261346079377101199882800002585008225649144821210866013655626877373182731462036479940108176686961734599346024707431741660564488016781940218715375814348333196315141198998263368792367016015994491737825408969705595037172685433535170482834605115164875183819776525056659567871550196835374615270227987899776026940843469404596304863262097146019686275449400092046600916982021900776157842198082228318291225470258365757866801199056368221883476055483042127941592532532063433081326789618591473421346594736928258477223111574209013054055368322620273223335725613147814798224111696536505837055853502798314078342616336525819547785099657958802209233528353071481152342472786157812773741185801021462919311817726482270940517058779401667621566615129417966822578923707602409483932298497344230329867241094756564163086818282428764139308378642908789531469957862123357221775025908206117970889089173286858904596736504237563295930765723719329039210518733072735777042313006274961065082941588359912719867822655771250439371652555932696635947524902966281117548495058000966411236148134894038849086701510297978498093725055571724574656713806127425725544428697451308003014993869965262795054881252686485587176336253423943107991343513783024936726442343356195709475038027475706776109277630620949534300266513155014714014581915061861757981039569935952405799065812205036091587638333175248496789690247094864767175273934480384607846029784217965443977108008498774393178262917464413276684058965580737443057666344211922130663663453759136848282625539713371855940815754268451167427776647336706347429401436719179169809787072351366774757013329030659145895942727479234065295331877858235108801773392974723920528018675754112435849705139066927043931667953675889244380627477372268808545449070891582140395406379764359499622422621214722248700022289605832984572399104060797209880080770456873891378813822165755937312004754565688072063002655695555447695999984405786491719974765510674337591773950404068169783190486662288054951524433217274111688772328204320836365593923334443258375216987233063126826764232501066552845155754069457795826951293660270727714555023347781090900219486325665062189389471733323855193890086834579090014095708774145156753048144463965268912767993092135463246090989250927396767240322493882423410900702916883785253967494195353015543709494387035830688434481007646370129364532932870856495057821316268297871247169874697396926970066189049033317976640068037148742380305599268765588802542363457591107468299820351251369492170005030965803990910016995517019932862200988374638357746438481936485636993868772889787174873372535646770055275970084741097873916840262411447926220883688043356658156402775993171825700070776610395632535439979426712296502450171874336572635819094122044255954666175740776666424800780551999278506787683566706976132660673717400464482542366801573966351893758214077226959288081885178785002243905377434903243365903703115029070605043731064729159285601463639346152988570142494663139077286732867691186301750271319728899329213250594557002757801909951032592265173000450615358342183743277131228969021028552436021504186218636868664504012147004195747404383200793694520580816626457353149768776714102537367607301227498362504889757426578869810431949648373748523213296933808189586229717128104790492485351934302913403477263244063099574028343879412961295874011833182355310489110708439077246666005650498140720612021171732321526082745310266330103977389578584972590539347936413896497544103411753238784010682734053779506962933203629305974773421585345958118560569699553096419510997223829882474764545218664102589034635255162615105882143090662359678137296221602503645876761176359260575972438256008947759708334098022881954403929091815233264938976491835820858869668990977792882465410175393435023119035475942328589308686679136690592132159807404614313132699446471557792148358389142515092132764744548724348377365409690741467166685772006140385802972998592443665564030680938045671426440187552183218696463575218295133500771476904750418337760584901282640445410516849281101927294674199013304079796276510128552574237997028994605558871293395834949431245697840866191601328624507597195388967643093983271503981662885015725715183490177581424462015990292239951191751833146409821093443113683374454766767235879710134727261731795086331779472352329680785893613801853562781458499868206797890702602078595522111115125756425918887487946181480999846718387648306482061265860064132640043277427562817501087976530715839651797323305633298760545750492971698280271771130905481624604049686648677334391907778078519311569489739312411160149788097801288152654767261517651505804956556647479191509861923306348456080893116252417095228635584295082385871704115631119497484439589290978475381076473988410996171250862744541419657137982206268653697039015434675644052897379728929226410401223784679597372965681091106865304642095585576936753688465426835724151179566354971949307306996783736980832489580039527088130041808029259076389165929481231653571994242897963513930993230464138450081731176872134002105611173941439626113573276938671897533624571168620197408473542902396276023833434136293206574187110187098178240349608362650734683945278499398922821925017471420610229572136194525306016962141000366620091844931746056115212490211761436185371774237711215934066413101258821097349484976577642625315563806869345197144788330705213215993509739653425414735009520314790907266586044997785852982280265453980472150326409245806510625063592664934930017182184751680591436714428519897794315158205352855357840182345355069732801593897295068275330153875748738667623399781618781284485905259136328341757705308628003861797552375258572510934514290265108926868261284979383164707018660212632365933989350714339671584731583786616120452895738857487272113603280880299491397709389011553857740800567314542997727558724592352075757716846155232170461987712821153251335907905321254837218607876816161832675159746833088437648721817274885616834074163293853795802595296180852130429571796855697555218067331399294605835508904457327556844559691524319050799975481226928115428223088734514154800548263580906139585559948781068062481641477917213963621116377901685382935782084354401640592295614003086859414410283407665217829134392711575719551362833774589515972603107934704339867388429727814404739912012734653124964165196434504163450763882163468712425369001544085788495879219081249216287313503562076026287872181947081318537553945059249337946243686468323869211823966107242216422425598394799177304790006186269459610015391477830439152060058130037742097421172759308486697191043662992617748600438239385129892162336195239825630713458173893356409776933477397269587780726598386235136328482432263509875788649247338901079183314175954162869174574158758988131355423372122777311250657507145488600267018331314974551970952417519576795543003626317743587450840760281416796939193647982513626386608536667516553717882925855137749402987018054582717281837888376267640841018125839020343537076991506244246099108710439812338653755004242941685658850737535265024292877159623757226529620492947434483908785562182820216353428604518525684594760640956585513583554027560411265742572754429276240807520477386034111139342743069547037570605696981878391674095989630559034369736248466114946586424339993104401707018289962302177744737261650110688635774375933662829797752326036818642521565273365626134750741196704093439223822950682346077565237743519036138916236344816758506454587883452553859192526576249057232637065727694474013988615537918543154587018292693706645258105060232078068263383364880832264539398230174959701614235297239189864124446244188186405258066013255336243719010981748714857224149005131825167726294126295504363169439588612201013051878211415615370651443322886410625781014760248272432710775770862409470335522294375154066183711368168380465668846240926931022460879039657909051014388744206593935139940554934785149445025416311900897956148901273357190875055719922501272998223876656976859099732792882276197598127621509883628800317176937157366171732116784629601193408429731278474944733232656988018614521558755569248250702418596279783215665445188767482649129535860654210121503004789903561603481849492442254025764087377364179087499273098037949679459627144083575401510298433538441991408148682813704305863596151672641404213488104017927121535247656367364520486831931100837306530413349038200943429487450470669913321663629656923637309004324527712776756147526550923829575447513935724072653454801352042760863103276473340395769892180557681788673261356044846337518647077727840507684786559876736151435905781755650315221048290016746380028630987160177876025746997620240064519837073609161971058838453445995677842537819442555951190940353936860816776027859798170107405386530333889046651004774907481764147803024725253238887692400508198524811293065679435629619292636292060536809864371228200185668725982459543375353689485177170690597922450281713447758486505915236048875348022973883725040321394609496165379700864972560171590292721607314642477738654089348382095942768374772819315206744112146663564173574891190111306280438760476978571511724258402960194515148909838728770587942693444741613970217517403638546756732032658072461137543452343031657204566518863481286019140608982956089260206762021212544860370316457447418757462305120538179612097617467600088284653794330175383367348840293441495317035105508847391250763807738531099144531334022269048233609695853897222006416883709252126057910061978517414005158222297927799083625899990104534521262589361398282873301151071013717568209090035563860407112207402734558638834380464119870925035306896635891181356402805754748730861948491715898230516368399060938313106585090119796487789083348576073547452806500958485120182583636419819495070345711590199809360375393509393604630772544359965458778994947343198417021329676258391035643403716920930862724573740007771113456362213800735885853271677293505868461488847719727630171238820507260898364462691375824232318765727673077850741690847463178090647147227352615301339802846864409267278187336802926685524285106983773638187901838742529689858312657811758986646876728805131929887914116693372140054672119917174807061716526796560433720500399845546226270012684070334450044273626596379696991284728862790580869533702409069811994770086940467198085181431981541026475491576442434045275145035221738125726371166924869085191919189055374098898741251056309906990412608033566907933549383076498615835822179964294683556769517486021850482767640965054270452588361452564403051041845297957112160589301247360303795833249283256788269824491821684884670840926619272922234920375874362203041416154280436745021431638323172492010722495966095655438928172363673462645308752329420241577810046710768015991742787152681246746793988450861184913771964255010955292255046364684117999476883755019768723148641373887096081094678210071915788747160623912636761537959809183123123723872954080648382463489478217740881683755115408545079294909545944600224710581961639681530526831512452354941163368857984113367489843228100054435260223930938489588500483210542289431037388936530040708826066759156772946325484410737592697436827663433244113359744966526016259278803363354941965608597295766465950368128662597665162093815219711377973875056357347943742770445309089931201434481695843674640976751979257237971995652273291545171250845709170870143819986718820764075294949236814647455871645011578367273060189341606370926346080711225242554990391474409076985878901259002852760724867503141372844908858752538508576996138031309691141478828974753277246203685934753327461597602622023792347990212959722599767209850962301177330039731611353347131294627011662093694860686003440470889003365999994897645271923067963765392831943738725618899090746160426593817279580986962786199702740906108986659368134976767097673001084473719683979772738063792896277003400789595955620549217559945939830327918675016423888841901189379880811834996525862530347230170255817269270968507951821938285142607206316093246673907007636495498059187465977450879892021362154104101966327607252737418352025749774906036064612602289804323192139470445799422298826923768236730457138017842904112534895618806776700048784214509898403705145207454821173686035748243105574944809395959924047969887506215022554518071960170658790002726174521105295456550634106629920100125047865761718488620066703686568026355890849603796612241188102567657612057012189281174051148518454623386458237381633110751234736663211490377236133456300934598662423421170476339554631005677134014266539765369011683839537089054705558293047753246179363661700764430215995302006095584617580629852766780003527081330213660831626651328056434132421905921309096228565038067654564543222403805010226330892731233034307021385461918674784208696626422238963739676173254469500025693550118906336163983257097009306797034470147863300253984044227019449337622778320182071590892784589373436514345378142088563028400387684144755133825416701460188642186833723795157176671046148511323352058390549912501957384971318827327061090837807555223725101777024015056202071442577882927051811328621878616155327162457586092159356756191072788307754092090395886443649675739734160012794542789874394440946036389397090088758283786168745175596132660120883711684715671510463309797364355848086821243335952505510110468897876215830917892443629565804536141773077991385089166171059350197554564656341655255216169589901780869208005466781725593780871682852609664277198758339593661973968679504420996232271941829363464594501804705222429330934250137468334490906469083527975305907515220011585218585838124980375405739222064527817638933448706148323191625473399771029057543906958339642277804136915197334152250911639167071210718907604915398574840021970685511242480811346450173178573253553407629443699967976813295029591172123843628248332545203601717656809500481884123207643747203029405585724103011956524777860528473831966539134715251272489957188295454492119475751999558230069348525102833173159828788894996570579834268371904565868104499159214859218835511714517591428857658247759365520669919454131103229680992923549496237646190467515015271181401324060858688319240255218555247170298630242537414104095070840279088922460379731354765789396539392478379059565154159126227228511670920927031344696559168631579697726380534733035636405725301721903423790569887440946896486013588151670176277173943061749180201143088602351420724152826756376912272906718674880416047690214464684670540250544839575140302481823842212615554410787563644623364251147376418319715588632843837978503961881892889019502258530739108238188711073330694439770520090200088338672243576696803774605192352516731842667343044329216857277793782906455066372099567141025965686739651744610266443957817806439292458514723079982769516396848800299313933143720736380972857624596824789822174791540759200834863483903607846192606992514493300888955215998453797749778952339716606280119321663866543318213112978176838419851665739292186907287151508386689408711509475011666932124636511403957466366306042374157619365434197126742562942992006450594740698791538682162842831942785559800260891881813868366098741680326100603835093942045780331570314429927084866543469331031037322033978480119363218265101666332524372098294420759476970369359340436768184649850292299382436894370258123173833586229702058673698294159573104508098653516436020494611617728932566116729954596058211073080343033569995540879337696641372939747974105232545185048492736965916418405128154008249618675501786268802117564642151656115652680389527586080407458918147970059333464726379734561676775258101363768450840630466498026520926513775491964984761921946256274812745449336974616943437283369412171815912486780721046643095899912979944576929929580923491016305272562700827578324542278373631311045043039309518611308955190626314049737319981002801042206467896873773444921979712832380412420394886789028823324809432385989965016336463542907640558495221618903902523118518595729195763908406593177715316331526518713226065740819871474429929363625224544769987360286749751953373768752700370772931129983908144516608191519165216595749937392578085645768588870949031414362139083288358478789097803150192707625623913641834872260801335016460366398557677522945595484295589161462346267175584434423456892060671231456712988562252257847210600142324938239114733781249229499905578760921842792160960314930080808686622634770685993319710129553527168179299736426099051934619616890172532711738849506275224679520262100658308945389860537639901932565474507908556467695659407118757196982172486650324039421536888579946581239264150215380012699010025129228455354188833811152086689280887785482520709509964994139832221492459683836399891755733654419225408292443276094048243116613247386250712902772361297155863309052767104203396123826427176594325227790679289638897931058366358226266516011012112946227249798706115513963708691486865654597076197020101818941230260061673157633550360043987543350579310819575599821335773469663823293090491673475342269419401626293498251553273956923123268173563858884651421768669350002036868415744880371055856165089638435085285720026601798467090452484062502798289076322743777086244796932177678701874114703113758378678224744574588105980714128917069853115244082001734035357352182380385519024580065566430991995726835736061735960286277079805541985946625082420535905398142239080713833145251542754077499060378339422540920182924644946841772270248369408474118853393990805940838857980615943904795675664542345460342154225889720976411115826590529840580299556940847839387410243465731900641911157982092918265750361980047290877664868046553548765393512547516226192354984405985391103487806903378491327487670850286772774494651738118108159024727318732801392763170682880488482350699376767155673009745642759066501966638201996199194386401092588966773144979089260798328937112651645062424392331673297028210243178970659717671886030920807221499903205034742968750156469940260676136380045653245820038507044432195394412132111822745072252576052446214665341530895368788017768877780470528941105804960758706733412191558859302251675344978100835523097625832461986956828608470380232344598647849973287803556280057109155995208164882044651478136225108379976047251951570316745554397326899293033244163663109132039243297970367792613612280939208308339618898434995887292459596512528695240334107736038269333165601868494649418087767712175600732972080188666561332176264850975726282452507623987311160236029173842238289502656217614348003133116424679991301550388105491952031037233021174092383182600296099289085226742191376723659949214946529892313109605130002945564481185437858152961381114826156844408143158787591876001710455636066395690733936348295715578204383157153990344084724907934766364112012204528396521417668056887322060721202651448092485584873096620049980055251775769400755371463165411955691591477005141080330508730222857565096068275281709299174244665898116930282148876621378926077036709042845223641652303030483468697473957467687831729261064212922768367015114359125662271031464160614673794611626099697656816683684719640693006018647725973736310062211768231309841376256385627232085801866183450898504339614473144561503064416014885533646475236463114942866086230177326437173775091897800411970548970725983195516935717850157562321145224837471497905743835053056198803726094693281168870146961587885542631991970501209284646729276639217482238024417097916667541672365675025515204861747406021944977913620082542011362973407173677447578243892604909944056055756858633716096370729963835638841550741433141409446195102144228886292767851735719480885602291537646124127951797482769048226111543320951635873493559131342264654332541161073817187950621655612443505178870916656661598134907419194853512561762028986505742060438394200037319089725586816697542750321950652678244857694690806812567037052518487317636520153060832103920276168063247382931337029402114445406930341217429706519155136701519688613505397026653085457426227442382330560897440805665446231290679031846064392709190007150237444242061108295202229716203989913083213676791665214314095689497083845204021827467170351573219859036592830268976621739403220245813643932803767209258257576158315178618235318385228028608302933093229842392049616715668130948334109919499962567475270880607391734493977166242644321179236775634778856013732471793469286509355649303337407020551603626752356600865470557753395387394251557102997165069912214373538480044409109895975692872959035757125823227434538137433117351877734753141451149491127586041596658481889319327325130086277584122929716488290323771340006188373754812012860748033294312782819476360069654880712946168313212158880499381483695471209954353207024656839969186725646644328591225973585621874405521428923740248551316544853793778481939761158483559406662937704289698504623377574250774819366432509352770578607865804573525631537385630042154500632001142386052774181777158774272847104882832314231662336676040252647922801321128942583871824933947756032284440294955293352628898966143963787776143660873657550438295217400799200993298981741276275732813525531676928652887930131422917700824172093349624571279435871894032640183943482531372162868973653501620751516416377325475152364166606899729922990235893360868368844412301288264726918085832302605138133372300680617747102977135056044240987914986415330940553428505463265234453129835306032707655013781631434972708161996116008658148941893862160487562327349011108915854061298954905328350895028416461658723592013266210591408357655532372144362541419585422021267396527843590677723117788380835816440193264724115041429387071932374448756500677259167281476199390046107488098879930723797127232223371735939938958810667527591675480357035380682021109714169700621488937327324793350992411181632382466402015847157800080094417411204603910793989075530670345829296725901036679835846535744078577629125423309976938444520208317390569881590606987151757839737754026530742810113234545887466398789170378008244697504710998344868894792479609049483470440936384978399388321032120361032053374918915686057473748836495842361735218679753010685963484052582300694896773150458734032378153870383376887900229702518365880002024813904818893072412610017016151214170830965258523098469547481717622019621038996414250610598737394437119133959780891852200385950814433009707823482698162894692686120250878961359423614251415909316456252330857953382753798817116715974183814367415316015471149877646737351271333979392478032960899517921403308134627794424185108101304471725978540474523586138667540868760256066758051114750410077010499217292830128467355529350252471729230179097961011085514028171683601032002142423721682433939106269303982953546472966844167843140520990834455037231007740965794052098317267633719320402670335007454070531604440488981551595985215285751555975976904632896032464310821667159054093891250165407370228118668709875379100145643130773816557822218802032109450178170302829266556958178693670713154790336806408581855646340341129074174935979747088036766156604849030121519474325388496637525295136626097691903595719616199145416640027191924014393567836625553933125112581814222556413348954290274105153916981157907698150547584487184202187721847132691200884506945905632342605544821285164171460532556348205573152839383451183343225292672180068773326723972427692674674281008010921562094341562509025893079267128656008160966444814636643196979451994336837628532171977314797109933419755520542809703564375435688367920012694987640149027881128730403744606281026046115674441643451116714316012251029316270473233292887058295878319242968392877010253327946895002817395931191802442063594995754569624384540602045023507641129511094288467811726707859592964453013059607342787078840666494303568238215466642923399910845992696685753664410581902525949731107598666995199159405595953119563018157045535087423762391370720193769312647490766299261235420385325070378033091139941877870529946274597337686747928500783860773452303622700209319145565231522531273232514372705210797797027703375724769096654876400441538689912635495071456647613441910242450890200638441614457547851691251320127436410797646680570530724820143044361420417368748100844621017910925959307701235321634233560167150989059649172733195185411242729945558988287502247062436993132896916125159901714054034515606928837098265196712098639299071550368619652408708297888284381385910207955220229144023281748323943601047355881083228947923630196844506561965252276727490084793548216129391539791058563080771604643711953520124187529061576916991797083988929806229435758730316605636378613041066609191615763752494570991221577157283508709068155226640301397362265207997820148587313951956678721904551826910965542438795059135397644305289278455988493674851825308137140585548441712899514775337657954015128111334742505407179876572739387025415738321575838642073044709642177206160983468556418421429134337319065045550294388628335383021085417909440174005913513848260142298296296309884049563913249473867948146617847663514693291001415219413835927100475272593401551110617359163951019854530420013831517694291372038748802124936817629251630315766894653618498207757275901649908450851266797832329331778628875626205501371002150542016679803588070639868565365586101033301826366326408567766413963702359060588921422039892229728926401385580519998759840597348384975630431820495933939657151112350774011339042620547416265922078762431402490675703914378417715201377198139016425705335714775320018503931723461427537259070616957805735126978752923094918836214246114084671751697523412478805321336004466957224798772117877736227959173037158045985793433726628151193032265392102280385446868271547364648089477099476079306785851191299318025137560481475096475730441667106428511348706776756575797712172680200700451126858467944261936330301663172325608042956065628629018655479968528162165579017201381379037009048772466886943854016382891426588178714309602415207738214540921878883790487762827456654850394294417044584561635210191151159884154882819713452435360789336183552191026554087545658076683487250440064381942360650346613228354024666218371373072250785484713229834746997567357431945318796187351241722207136088446666176777677629582949170805401307353487242163400561185703765722418600189979118400814906515073036196411960088066004919790769181875786065368197354820763763417284265171288480552306138258441731747737108929035293010781640245774018120513078727291081851962439612685845939210077713566768382579856716519271932338170014938205531450015281283464335401573023784097609720535666174527679010654624142092328613008319699498490458555990876559387760487213985641318621517519853367908855950850524752200057623570219366850480255962210046655987898763825887411995054441834633234900303742208366709845423095251867714523674584978205862346764495414500601828717007888569504108874105027454303729612353344234905005437700332751098735717036127457808607155382612338166641484194246485130089765679608067806397325906973856343882499644736575499777655473465731108066029842483213599807582296234299058339649704711086608830791190821853183084002152083104763549914159189083467725422450882974996551375438720656057589954028000563360191520996761251801296530061733786274973936513862879250308670925619012127640904625341801834619503465249861952340093014451528621015283268746602370861561521865617681524823841210134365775384311874741329345135359402283565288004278622842272815251568551606813980212154981838831218522648359663203743464477681318766906608435989127289898368846710623815285054322320316795611634382685927717657298162581255121529361426965427343120512548353650866468190246192010467221212315949587299754680602284711880737231913506276308330615743579786936836443569374855305250107781979044395297262607249245495138130069987977756040525905008613842260463512059841239745478716697314205026941574595356500881201848954650045215695842420513159408108639299888580418444456969167704269590114990435444870117719371964428430198064968938108891973013090530256700833137214043263850518364775154860253747239374997922266165194057213833145462887917960457201164784654037235166083292407647588266484828354888061992875105506567321717436044312775549276725300562839008609469758978600294506356598289847468562464753621801413108414449284733039287281359576958038327247643501517486864857325277906914316744171055713013289649419181706386143951666905288721698097000484062307880525457293443472952695222976669100719737366868633248045761380635646008433350676879844108578274806950064410051124237799232343059709260239772533234895181412172151919493827165113021507181051354448542121359925435711280608579737032401287582075259774466381377728269850451709919601764124575327500378394956091522343841235794527786336949594812635465961776027857114791141825797588422391847970715046367595906844894624912774637215892269323723627995114379791386078625416560726500083096608751098543156380581996002994549822811339790539480847448134967563864084392017022666391289257632904165648019280393386758539663415620618600501908240958009115846129606459210972783824989529085649086441442910761317872368635251275390690521635272045704350480261954574357553579496487212637439063330769561931990418032825957501576693052240506254852095683777736602864714356806632946974958651010528405002053159699239168499343782464722375401185498541848498381158148040120832732473204010669308077480158276854955767560086826392684620622643570277099911306385372935031056471441686140477304031270889124269716313354795857575170728561221548160468235859323467182767072115575834217660162614226949118655287493825935692872114953815956527210040843251489244045520413978689557538325257838151424504586576140856241970937331510191718531637678052307128779650744134175275459464497480258649867550581353884034900295833224876055201117956053477906197854762952643039278213286515579911168200930806150719784992366408789597640343997487020484864368863119445990421314565661461264427931988403045305547030274496533145269668339885104583741123145540062863211682010856442301844012870898897773207989362599172429795261682889379406579521857911912880008133257421674940931117232593030941368598212975579881635961355653362228575086011020941314145158377481000567313710186272302345114868322836140766288674986632552200022269943429155619102854739719286059389643350195160984362767048366055550033195301740226194366670620593687098227318792561681155779862935641456615903584178556030675508140718377406527815868070285222148504132427660284537075497844994185689683080654144373129923218261222909018939068869992358280633644346051670387142000683632174557873573661824036063913816339950839559733856100123478428130965289303441802355340505603352573934801252818524624149542366999944164252367268342651892903103349562056657392609048878935146630032060722299158389620867674722872223711773881276194867165751596460821342728174691411408002941573732583254365401987478459234627563650180442745749083689940362419806388533841385414056311691782330954875670135158637174842910253497056629539549267727478653367338127348430695236018803476293816756935142278943568750485321801323053182188612702030499447552350027421481322509068977205651209511825503729640785680082061486113166017475415676598244727239903533484776413528145605891209449138360442445238563065132936889133958740788486210247224826312138128802276960253048127765794233234053307712384805035546526909421536042634006820614036551587999719096473977098255092704809951058785237717720638298916662688148812318090834586127788917032104029949985673810365591754090439914697865282550044996957915643306502508218118452038595965671221981762449553471167219828330414967424705135390066707512926391346374018903834099639865390681450737342044856141197356581028244849987853851184901027055781183670834098738537224068506429185704597960230894635220745308927963831869646368938331183010543979143924626729534546717367043151830136817106024153666418164688948832767662410953350146776023867947399105968418234732475020396825059806960535511319452240010968553578479825208973480696548125392834623133461173812903027074359261170902237562165623098567765478747898201942335642723543905407538922772500443890879891374061554152179665504215922056924882371320381555477055394088728562115583505670273694396674523193135927099731909660838781471529616277950742097021958033841555497161073143910825906998355399971793010764424662452081862248013074292837061272753472658541209750376923322034356398187718186234220345057290799624991971282174850188209256760344128203553675897736221909582810703637189884496112280671746305621988247230907522545721881213702530119704961971300776183694738433859337508815617626844725460805949912375092063317683456271679065975042423734743318273219883325496184025416722076236650116081732798221469986159889818619679555977149023351678702354104151420783813212583097137060410765789673857583779228322833733398234925287683469198540871301872778329727809812613499803954589783646334546143572279619680441315445476929635564085220428939103455121351642456456610617297228412049817252838942241225465447147005403553696121751182638454369992227239623062569318660649264228340222344004261914863619793622339093807284105621099901916792450488077769240801004326330546237137118988895913775148305834782806603079792148531253489210552036843849891115741498945446737455417371988703484023741293000182951446608016579659206316316409458420650047406109099131172447075256577895006943544819718416708221917214323829061178804530981861763299448857572181490119750474207930974541134228301022021649340830188517666488618931029261139965924030024642687390633565168736695698868270995871681242478250673593869240428665653970658286144129722251356362410148696409066678717600130541696993931303356449205682167633904612733172588136194120508151513232589896006866261019343009105474535505805151935848655441924386207899714539171807018881621355851894514616264176518269824925808875392201341538585260172666524313995008301349426795988483927738679155407369210884099017229660097011051602782292186347416989581374366532049946177579423797979806413026922527726269418171194279308619395542799460875118440129104510797286564058398761049318915400133653943041891529685659187807843413756203356573325073346134526705984873701507786133244298000228501482044860869031293348093643900416257103587014859359860853848967029115678723232680144534528653577805438773736432471404644189017846473880498564429681334395359078976069464774527078375393464978610051228359138065360246685917211393613706213200881601644136120589971923777595275082617504125445106732091932805657068992403934667035970736352163962875626853813458026424118018948213557225832022947401142823936918547670663502102600043570480392308173476207550492702641954322225225619906529611299306638385645220341224611666789980241872143574866288821156148113842106536347658971108062246378278508895602268305969455951600970271956957721613667213861906281487001202497021462510507320305639134554771834174093974183577229087853030368390106858090363706716056430592551457276669615283995514695301225569040754063819751382908998949775674200136898678030372497022678509798323783305397224233127891648748548229896373621372863669009258908487723975865055146822713095908606078693378678906520899931932461888229413619932119748632464285808083966115529576237227484621809237632428782523213886816710180311218434539539964510978285835544798929928912843012415385523701298552257346996226663442203080470566637919893649101089202997512491439762815959625580826370560927230982298362963997512325939792776464247358811943965718334115243895281956563332027872235429129154680758252686773147651810107698560112930428710483263953927722020064530908299393591903163464792107216622412589085074400740276424299755615200326789903661257398490700713492258636869430008737019037522973667771311791842140986049215358782896158604676981256294212873522720540316733281194426034648197394737468819169355687190179639538692022217709382543459656357243088457883266707242619330378079037828687861827104658301513831600006753885642437701607609591085467368365053192618965715225987688737930436565549944753717218874674146582010059339498457238214549237764903257117453019809262266594459520746380456059226994467635696001998943583673890644113781620840439912962219376564331616414158843759279339373561860939161563878076360999653093973945345142569756465825291127211037673402057529171275028897685816112150991801384097901756121359570029986780466930290794413112851052061761742218939714207408843725110828580501306370857137808724759890144669167859442397846028129712279381906700973294710484629671117367795412014398340557172040965722530800882274484746910420948373003165688121236680327185382915195009869320214600279967151171614223385132230086118739611755184998522591309874098467314786490497696620713109169393625024381661408055211627078499519550566421815220255754839944073694173586425084365528007255406071483908363457959976981889707334128528803260979287215185300531795880768268714135528903976998044069227901164811413069179593479558855496245195855402879886096128312445315917545124231653752198368945168324704356360054881186772672633191883424615753775834092387253244478366996707181973584003922546486645402732862176318765845226944735275331010715522021283985007116252107891552222502664007669921369647210573886537116188872189712651963793767540694437635550115199087366561770046827296985193093327313930439250081942043103082033939604174102614463849165925335471482659784201255321293922673537692071751969097234312339388103757256856663299564461636916577667208863006972781900996478295257610063289004284772527651732032424687105655506505785381444258187750366499909763027895115520796483985696632218043479874532502924863285768214339329306974577727268214914040157537867523763005339589714561233895687818968518656156362910856464053147383833401200056992272403228543905027004454160328723568826377058908427114483816494905610860164320356418824139744037427572648815935102402884265333556717540396615198117080387141787949513821853964168314020961999314460380230738984976640442735815727869515541725432064202542720546328385915036043358946688608661032054739264378950732926712363288145677854535540114225399380889035133381793626926694782090759446549888416187095998530892700089480055082765047785005974055501229029600324413399462059844336741028144247074816332840120082385218915755629794432326426549550313983743380367793427160623181830752021432912960507075944259742372655490278850001134697677196082834612265446761726823117250605790870613106048964868484227354973549352050391453678000301953756534609232492584055423143275121568030599641962120437376774052106704362378891593742161510431524767171543089502567137666423440890863754952128774421350397669516737252778966844329901121162994438139182100247691069953994673185828071505078912572179498078572173649578549404913306490175239030133721578766244702957610614157102589086404528971535660448929384508529370882527013226370202706161140856889894030251013451653268092410447904734360454612170144220077630770036965958658088249640231479186294216470205375815449894164312522410683320978270950608519980791082473314418359192940228007794004423404357262248228272210179673007263580036005767196146023766879020128317461841043843128494152744823016681221775674345477686238018867232570968849254976379549539250864137824185786312127754413168239515194761050712396687872134804407294772946274012081222439670701720869725735558226647568898683480667089863476712712182605500776880280181851809826523071986666551144751785493488753857141986553751504224888961332078631705831101362508244747334422690933665569875752414036871631593051196274545284701715564423439069311777957833804777508430772015440208052720352141153641877545095545527198978154387295869839611096823710121121216862170958337895621725317208773564566167077182321149618013659776913250910661286555724564962783789783711526246695023320829244073443240559246186961835782011899800505157687958198570532674050391573698114772252614500766105750999706675855932355281902422840579467523544455755335568190460570941405305612783355371378603826078419856001504922636178178502260060268846256579694353822080208956154255589424147514331170127536809990715238021010013856854049581991458899241285911646344963163093144158407264062793250563816747603569039068782022025425610831452113502139979310509230691430906004688485191005628157020486671883218219927956305891405299283901428478101096642782164443591829084239049138825298872219674107560362126407484199558694416027186062645374824893358198153996132280957511890852419145824305408092169077612354786345862333331861868735689737651744653904372586211177661886242399366232008727321846471105719038437522390939823656696104232707176856270463830163925947801219114067736118272636809190894504033097215741194384500032192269863579667893961137154188415330991263037736473594999242659449212240880830851722346028007925986959302869686371343317230595120346433243370247425563128701942087665738262074454903413087466439783432044674242985462604286976261861105479177513800996517902035439898896202632650459753504877498898645797853527636265353129121398110344166298179025915253867498700304531370092473998578973273737610663836049629919832629644257041524576984578797001167453891618160900564225123650716188155338836790284853871993345496698961805794606412292936797536907198317149105237879508636841403321667764137194528409466929686262812356944408635978729619899179397593891964476455502799686159505869292678449354907551934450099681876491226920814703278456252867078388368571999971352452903060674837678791379090382539338461193672748920172209560939460956631216273683285540000849436875479504289240583660512842818161581055513048783654413931695289431338592215534292787051900616087361012465614693737255074854267130425560922467563100609034158315995668283855766052115502254307714691438222657744550161847880201454107700640801758485835766731183466980153498621977881100087299990684418680004643034489578302773722677942131461078018312036479464614558117586928132425913576461722243226635805599876987751226521708929137647500743856696306194492213303307587088160236938091768558686512921157321096143743467606322246757171259740672913736605023954552450976295963049944711115762571187709784526909195961365239271553126315031676430927304099660688757249377896956395849639663483971542086302419112591560950399418749244136021663256654941628600781752033009805003733200071749971946181424112589564881316960677448233927225422230430492187566211523956621634235354444946305090695840027522762368301982011600398403870828379250870829598309985989043622989307773535624086871612230558221744268105507604738157386562613772888870959627154369036059954136260755583531836843088605651167343117124575287791164571733239043306844804305699798124871493849462275223815914893080524570940339164236068273672855604618049640281610535143993240319576169315320110442221900746672346875780751465852237563065440793524337599138333197432637431124942497276134078161941305535535911536385379792326379770054512181110384281548038510629379481116283766981190095116886615550752365495585014715899722732067439671070834704140308536102634813160488075410048445871253729254095322062435203316398925383275936065893078869438459716893592137309282364456366284240769350571490969164934913505637852526433855231004860842171295158765274375392258163920529240458705833781467909677063680360930543735841474141560329540419583681886951392560205557375592595244003424678955056612464167355357228219746885813975844556726669519056504980006873735444240425900837618333468633970365675899162415492108897795953277612683139125402718989505917714272820686629821569722781623646051589037100949970604707106069125893121487182865536395273095569595061490004580534044580457787722476809499734013153927337971194476908347163010654746275415248049516848167997114983244512173205336292892579089655193133873153796883924016148565143057824622172254950833213047860891678947186523259588737467637668177708147757657190835871046529188541022919461400229992346229313889739673453323432147367380263367051464575329022519948803367848604527136455121633906047586142780560307609068376352612359472526443373914112005861507727736941512935668534672446972306514344923495935814210885338635947161152022597838363217244748539871805146987275041657975140706500035079337447877880397571350280191726425412432500175476905339545694995580731970777072988126522794436572903199455882001765794069610362019441842148591478881906800227988595780447226494723487552747918909674750547572746390604293034915478395080075935152888414191105271031828653691659252876916945134636174114049622065802545112118495468420962406869779968110449923428270909661630757666960124759276203146717520204363879717432470408794008245045107534860293505582048533670120090605096315985505383466896749462597539677207612236293811962922178065825897075775437754629114093503760176741785665344302906026573767650429684254467264860973812790923027676500072403478663113436034294037800670790425667867953328085393675922074190784135305018765016254590280875640031343882014621115095403788047839587392610115652281659361518160433181342659126519885463490313607980620158264491935542493712938450621098206682873724371942833680982035758621159157245387085660314398995974118650077558678727011594748148064211047570455809507571668813889499582420602524922073082114442219278540279724452340498964060738034010281671230220478702311878962393759843453838297629677325140533460810026090242667400247874103080283418917412006587204889401718797024510679383077144110170342683635074041031911288534408712591574938408223395555379561518510777091305411179466455238618121115106281019578967368532649618165271405900942069863914825416283975527190568835357380130165960540768612386422120889746709787087143762193730034872305996151812024907001825323496598201545225907207994397867365489450598409445285813239768742307912875296788177700108895464799961939424245222249875945919176493499439435723441576000644400787637507780058394202125748546838124830738582285424401794136650003239697538155118241144937420322763799735776203944155284954602882007451156343657280339918405995329889299259182223925127204960641061684124373358661846385797177859076347976785150978595817624128943199878713680012937541882808098722986041670864486303569024926215140797334075960739396016119404441710520170253115178066385252179614594059386643408546049955703762312570320572921067969107704396665470797028068563501819363315415520190274750519201376704986980483938120383796513626278234137256961446812057431826732456801519607431931463990645149619306437618125165244123610050707055564315296974064295281273195717148007901513267519275301410876959372285707121493735858696436261138241759339961862962542311025435549055901622633060031159314384294154041169024193493178361460171372975345643096606121574082813011093940414192743855363807898780326593596338614908942525007507015922198235111049880085362048057674005054432857893378701925859866265726777966028027130390804153782382557816686888526291304357577236930762172740867916942323381531778263815529245429277302146907894921647940026221833388055038051996943259527916837134539219821044817213172344811204460070098260834124366833230394250480346820133115748410595604443220934430587917689323710208829336641503071142955266027694264653721031450859572317946656734400274529382481841937989525012846701347296689003924404506337781937335514545156863577867385140215784296378761329424121946055897275251598506656628707647979808656416168427526873562721478666077400710406945845158235863492984318659330019054923997866467801172540118781911960083543431775698971117148628510807633722562050571349370542663351403700648349886804626905118439036158629213300153092800395981963889784999265592143476052713577093141147754627043464415123192975415356587724248404220009852735972998913099705889578704852282563036763173463148296729153311711485714014144667308975029025779973965324457416782406620533866427568612850967695802700184230473935699533164446716426085526526110712215339882227687532138413849577423502627869430500600702052355233414924871914981202632786937088929972658133554883180026450144190576904812617038553738167867282212780529923404430267624610065225820078571600184213650173059043533753536054856077300223212837034508318218926203240253166582063714758036901228694760626425757115597709074088512057950605854435059348334625854988208216210699562971287659202947293128117859512919424510188910441963370706061995570626428528934128691834749956943008706653913612689586064968805610671994304008407620553196929051466899599630981490104736856026550599149999907971002542317611748668288416798598113988396066069323059300103840610912536628895611961319321647121109371733500347703491649893980367218179628697308840174922010560598309729341708141148258293593947193580687374201458796501301779093637863817713868093596111210068451726881121708211161444798017760584245618441584396845726697728011825899403870472090528027922361637258654175483241038245337369442823075429986186751700568005070454647514726054202262312577023441298310223715926092107290039327320099105367197990737288845632876571831434931167763435460153983561285480789069280091014415423430799224095267351010958721900260196167679654581064640744999183581927759228547478501266983898176058675443590631139748752203969148877956947003268316356815753276159732062109943061527964815746243180862482767603965112434798112164535144150041012265800821390608454401931981405967328307797858303696528641376944351427337384543391852520333725883570393528917729494458077527846103402804036590121790323064492330701895122465098376165784515216719090483442617430900030792614667372775110947299756697030740022634273986274029811130109582552803825103279670905650116239689830689035295334722512829440194659056086449704393275446614508450795178506350889058729599402043728519768176184441559511972588785987043367087352148435333678546650276600863473016731645519417783911027889380318548438919978896663853011144817921573201177218310431029215807300816864415714407737305908309741084684084226874170712211857237415166169593294971795817118218240021038896510421533697457005667563633855429811275595845072306210108648912932176717777808398821083860593739023246796542414284846530263814552701530487052230332526739620725056892534655777144501762204087911741466424790359472300754125177252180976316944948271493153055031759019949638241079301348903232659133304193861001527182615951989740298726301605976067374926617871712556063844855568115448413384371697525559767346549109096048537414255402015319086857192549940488328911125340093897601215145990503444400359308876455015479724277217620333929336395127267390598720943600029534785828806905528375579975683947670292044986471954808813597731837968266574148227457742241442896834594817655611846273333128276513079684771679423132241027662500967114238577955525911091785385063715151891526433771425444969943664561658954399939710483578094611771892684619377675534321658444874656109519271676582238668165236257978460259138926749619528812138334574425083931626359040155779267596961713915528882893631641049899099638312527306498908766989782810620477500471613013150723692099178001816241112424419973602960947082954920577334364790062205560979516843871451687154143408168148753189910187485297121230364848639136662296039861880963960717122337273729226087297692088423718752196013186047980087511651205466864670362624746500971810344368890985872441572743796712395962564868611027244194720597848458235852585141743037744980641204619862451145694647036653859858516405933967878514949361065288826060096656252532714046984238061082331318246289086019176200831757454199179755149978753268910259763784734481240721087001077364341077254637240839387954653688988252215368321670329067738067515445705481949133073773467801383781676331813045314985532029741732319100501351311984919764330836420838946959605140148887538833318650299946274123678073610346642966318098978371711186460374345249579297244629879461634454656382980633303471696541672504111831520767459704007800198800458612271321218357766307404454096374229790780192588017952076005469144066229386130077513270626106945997029379738622468849259287782309427723199445579862410754574621063506667428655379242811670657430178520516525630946747326093834224487232307332215013970504497724672262916674703275349709784451884062961030355596759725050237322857576136860717563058572397065400395508863952858604859419691845366349811526635880680399493816291106112274952403069646240108629576673452234848087817570310715280271071267859342028551981656103526745937465269814655783352952165627949655635095869875974059554175726069113319262998128284139661934373736185338823233968426858409625992890215416444756191249287298901221723192160039399100289458020354649732033976753366339991785031632591698991968190522217604826499735245746264010574344549799326957090449068937807417447206372438958002645522581941561855507905156931581249754732220906561311874591327355174523344814038511819589928187566735388875870432842769365989553843064772508893192308771229120884594100658658881353107316635969019018747394848769317469123219594747570744354460664436120203953060992369643055010937660142038678257132425515346188908541928077435284456129022883482167827541616192346249706108708913250468274049999491250068248956894010267159277232707510810190872238352086140222640556489612454877826857719326808649190572997117478013613366187966798370905575883398717145067810029028929767260181549087366823321730766587528672122105244604946120800565298254803228922025249618935324438770056932950889330587922857457298863273844108211078468698383396182579220363806308178755804903799223210143542094792052198139819801122050098602670298354479765969611128181205820930539020824658043482649917089542770195475755186692508493559443211898880180690414339571427549162581491377523028507140003073394934123725160888432882542517298997125154699021240681059816985584981904699224709972706420307364587462630005508493583339554408631979774972250781413825773880859334307060473080413528596470131208067190860519421342382763923916719506749316107460822058170040340803587019998670899961541067314295026852255113463129028563430779931605291504904848582573217507950182747871103878938919042661681449565434213231738342751445782200337136530790525240454406016618347863815627832747191279877265884906557571477272246457526247506238334186005941521978674962303052504389150514963997088117947052624349818168103609543544273981923453799635193150735678770525873170644479552305494726605842033100118707042626793554863239038749959405957618794278640561835706534404567941656100705522563890103068531919044469444138784086186471746340614709323414274619164812834093560945336261967179675244308455924622637282378314702769437783517633151976172734877408583973098820600562697283246280527964477319646014409970297054947415953192857482712176594823669257017099198403670068024678986084977780484737820035057247637762010488703276373712599604620824318646960716230037352459492697132593461933074766630480431664023176808680401104576579808749903703352443051510546090145069825489390845999375394642232474906938286428068228371526404562598062843475467122057740511263403201533930472786566052104221787318252125369163482517133898647875604223346679267559466461540822250771897278926585420997539936068129222397473154850284343620008250939988673978796367898521483810731037173608816195166335259004803567809841438229052844341376647346006685830810569723517488414060809685055281378212145855604487402060052402077528813994579117462447771826882941565475465845058510300745546832330090969493109772476978911370261946069930742097857889457946482159711184266248148132808810207474275903004143618406567796784183479997027634109869210690651860513858346892170161944810620991873606253800891893691949679295752626336573191157083655261652726235516135970074432057538729175735674455641445553199858398582515900925981275388842681395814676788042946240695106217308405098236016703972212099895569303926655881401079642263779981378817349895810553592089850224529578748536039292154632328530351056451464273883121710173451927158115837769287326039770527348021501133959496945683992989664391543541373771584683525867591747560968478044632448233440024788648920532657725730226602464706390615810843083312072396817737660444932551786472370681876057372469068592187805438901989839724683261663043189473698550143539988700011055635341511530243520374478368782853109465652429657722665049496280447134892265656770298246085261690153616233464470818251550589958909084996473695838929436419348901089212884135959916622001181613930183615836681865223757423566626658966085811410989179162987309555562994795146128065565225056702963340127219264529306255032219995378295375051331729192999618691470427697722317019805964399498988255632996382112283594385576893656333683622505316002936333171656148822061371526175723840955721158839135729539245728389319018736181405878241908161374173206394906530128064650489906071112560668892061829337633033703787476464336076600664752913169153243875206104919140514957131397465374557280908690843496185188600487019536105553483475729082218086361805278986083837586255464180945113597174321958927731273551085559447368353071663906502934168206850466770659808688048037628560344023410815735498219802245220011335074798126533176020757976425516854889565020971879493476454096480165055006917430556844073194275613708210938356284769148096416000030080007002273287042842654242163027562697622246677353798144043375076641115675654589947025246430073460704758509509950095021520721188305511513905005216317317749849350936684645200657579191840831479235974972345036567237402467558252894449486461332805345509331132124518132753473421538607922842199119024055773832549297962945671619924225160553890073499591457047112774409111538425280867456829026951808796706214564291757423146138675699487188935431086537338123457203387136785318260460533176011306085934304873648854360981811142913997892370292680630298047561433104664482329711020694821081971217611695500436454270429024050042044414807675805951517972081784645073731545971080362168114183526605491010549439037429831038685212584758210358958498230221827308546159564158809816587814503152454019325089041607182467938727689047384430005887213116976328116632296756372370975673254615895281766190632990891752267118843495389388495079275213168701434860419535681601182965667419929978358166147956295929450820567459263679106139405320464393224923588075871480482064239584433323039094521153890878866035238805042902989383423818155035643934940231341703856580515619232357234989965285692358857040258667217117150501900114877690038147069246561983523848261040363353016446973344077867286621175687633441329676234105382079019118441404477145154675142207282308114830941616965314796190397445157754160567838096056115693829979691275091484213124046654513490039299232972484055313912062144385968020451053280145975667916139038070669178326823287925563458923196662226251878445439114947651359373224072271922003962308880754580486495857899288566500254980972823116436583710292189819788635055779390032852999191945929705089511844125687542200273240340390484285171377333871493175303846668930935343205841743926940049123402355068723220535256562870212719181738677774352291438440919753116423572636162878152119618478212838758819383114060301869877164685495291379807415801784544986452465485655642336243255221802061355884332765076905210769130205361988954162507730692665261334659496731935430311551661822818747425529706414122043379134237445348949083899227257751962623700510821967078950084857664755566695239554494393163512387260869491319325739012058185980287045857660118288509267223052440172477863379074433928641386435565346862120366423755373127371706341327961838627113551018132744954307464565849350693350521599217211658000759061282568998348353307448710940976324057003052460930215373159831403394889037196435934665422117053331412486345967261699561531730997395096050367075212474673373350881058780988047230324737017012499598152648320872285990911020710142343167266914004640197597720576716256953011001213702842494816853531408250773230553452812072251617970508436612601889271390242289912680933205009203002596451380175864064824870715731112086543332034878481858224311400614345159256240788538775998525196620555049092722422805541288291846891348589763070884970728277256448125430335388395201718308209266938726320141155933180197389938342359294769203668203288905521373977945599585559348740908315593347074938329178858509609484448542233961595111141023608405997618469046975154065851628027669173032729715819519664573349695806358668090392271865762114535720214956086793202946886309546555604254238078309978437192321414738423222533242878388638164289145161718625119144581237345350064283512541315869750527568693743590916528925757734446348854249836177724494868907148100996345884121922699066120949102823984605898756965996665838569903435220031264680279683900012662540611118203336856438251413092053676299701814867252529780831393918177277417697670224113881694218075947926620801577304748300883212550018882002812086331080035709793986790667134943501505701441076042426069495606013134427777471126024431433657112527061169253500827760559215254703407623934401896793199510479791897910576421519098499143475590095308468573659656067411087010901391050623653835374604102226046868623423805903720119966741692803567023557043212019756655013612478285888516914128093495481139352024251126385130560478958251899634777056891045744432827695799196578791456763503269457864184421243455096485947206459810295090230111253626567061356718022943772770014513311008950597924613855551269066160289038670886276625297159689145755378556984186437977213021754848579810669820615689274105462517089415895477999854234781482383565055107592287849983884626142826355286683860500535967806771903067631827412071701660600812204198633499494846263907446971043958033740311580285329030049767554940979228562350668572651828574736333059247452052696855797638721045438238638945514324985105194078326356108103764823772073877401517478618384764191382403766362234116637898488939800136218448961383382811181790551434680957541079583271675792817558528300613331968940426660388080894460734164836231392401548598826373881346216154671355998477710145228821483040869857505788647620206939972758668837392409930483226922554695017203661096592275962338894778818262039247967330924602925721625360894658935113036987991892608639333190736264210507873437218545842872653858532612150132642123303816945975593892710320808128370502958174422205182767965615981611363025662150021381411920363490006043372134831116427934887832027175938217011914153876381734359191551978370468985727574422458716556800714858555013799924232956760130201285264836922907387606753025727872609310776052577244235578884224729704827468175780450154193164261635108096262373327919969636358670754058382337220947911988123138021194618996213884270972990477474197616326793313724433785521557870136811471532701398585968627002714909996097593700786159929258855539865262046203369048640583145533400041692462966382066475466277845042718422093975749132695073189263002017740329432212011901906154750432230363462833360543653975569406935542426821897697299174756980521987947185073065071075825470471266652209325833346248900189507561387984675291626742046239451247002735280807605268533786060530062638766727731103512921166306664565853282928355051345536420790891061797818557480827025281906692812947026566903130878109627774939217872771802385698363606154316394374668434628163105780985777167351207532334013014055850103180973220455386678388957838959715052776398159940144749658594586116624736237083961052252717378818376380112858901896775036378312538547255500233813227097299419355118542580311290528370596187384907135270214457192034506108920919671531738403436205839569223472237114340195373803136973244273247159761020185338724220819287059382863557419327488323027646555172606017343021231792976380218895380879070521155937674223887177386688536126382394284094376992836592804096080401364503439975347270526048692707404984190425613567999973003434822029156403084805678536332476167437419218487474477302820401802157352016307141529815715003566174115733535312595468991795800695712700998382073788757160064644768887235003893206137677924912884452409333322414793445361531376610947880320675304784407887093890339524694665118825908549512406591864566861311734305340789555586910700076021382324567367237641252147879533328077132145140478758638422064150289201814104147473757273065051620767470180371807527781434894454256237089145885337074944086957106454833146591029507409590268734822576199079633904689865006008556586689861694045757762661973171308143159097525461088056158656201554202533122942541320264252865184600912958094267506272123494214439714745539231490313338806898574627194197343262078004166927336041221388757706180710591438922946428899096384528143880915516935966221631596993022441987041004566897982979452770636038292351083837565110887228435774046097749491499322696265182637168917863580986640875498044307939125457648290643341103439141718616446926827805277733949392859830527860045711556968393788238188345392436875190974707426566385233766002231366969342608481757794403824340888936528121819890618893965781575322900061226675689733629638513564910230729360361706620914226917435761132910734750790486272989284841866812832866023695669784273187665459458596888288866753787410496275042637266518013511404067612905778167844866575866292664216230078943194119205175546516351814775161405383692143575294781170951932066483276400522421817509056633286555182789061289120377172260986500844901733817130936713726709816331711306852217728892144010267563668936570772503666615869556210742421624948321150555944400401639859462083673358552438816968094370484520902206091312463879735181828561044032717117261474283767824081304700372461901447162563260476511114741381347459323550447298257763162431625743982297126769710390877555172675535914662561481584488907476420981191103964240587324882493201752240109913237917897841570888555388600909415010653326841413540766067890556211811653471516315634846293785043737431055560263498944954124202538616278376744153845463222111896272692558668888176024005755940226770841295249307569508172053414743693591301398086375673343315766753727134989004660107461149322889376185411619221868167334284611417713281146521785936259627011532305666470164641106486491370266665843281769852174221800375400416642275118341154688272400807160637432153495737653070578366854670763228063643059244152921014298267543527506281537593354165750026335193697190790003334059609586643832888821970144048735864440933100468472358699002420697033949023166290889047242429057917303080287681268274263006030061332905991398509411169152109228346109543521609659213074778808930869942047696425638924857927849344193679367992981341484357012167311919322436605855167949684388510367420479277311018128510305943309519408131372464223297389508327087952635117256299630061581192778058099166442172204471675089667399351716093674234591767804082745715631857481990015828582121122496819592769891505972012869319759654629679003785445686875685253912761740973657886652230806727038030397860163053200628647153126882550401756176467564054125615862411435603532033996109690304443344270612817210231885046353071859992782104464350142061337823099946989090094044550191428942280567886403533176585741895658930288059524117351650715951195816375598448644635436832520005230610011957684703074453384994867223363185267325641119806791886631920637682405460014170619298729600009260884105558943048751023823575933091784772618621108983141534990072059549776535989598618386662954601615242017942477381175224682373324758925149181675471958458424661242024586097838095143879692041637601817489017231118140820522265985844996102624963099820318463105195986434486969958846088018798415720764505464929694070277655694083415985067378031224436718098969140990264337053986437689831259729428314627047698019961313322374770774182224868821946825219701717002203664368639409365651949472857940996747088811189044846603453898566253950278743851190466924551039023079788649707326510064084286064400826358662007591272429330718114734696282471417113468133208274275192416685867405680446843751575161192761515479682936305711041688038363958917336259712698483722615299552049747012383478081541517583543501611717709616606808049169972888982036913504238170585764632844553054190730144776786180414147301590511708919653030307113127729520977277504390777931877707511106322739758666595011945381518530658354698612276899393473283241729430121544731978600005116709972621474255799029313677116155948883023391197370008772000010108183867547367077016520519810806548834114001752041663137246253684313861180247208139708589798226510015320496465966110346178455247665607555774915145523831146778997865436601503288274145428621802539801836242959267059837851741687528811339528697858458680617555985225701844900758422672486407268998993285751051812755728954421758574817755418228399001297128378872571470781182969530201559003013343431103637058096067555204149190821446269774647037165099257320345374542638937339990837871950788985327019502244077580231318861404585290850529158156270104350591659500319675751722640681504000311551222680834956847853641471871459014288975932741170136149976108248040622288978939852564904076907875253084519634954396644920788235579581308277432967699976742154672721360007691229141302713376535216789637524886076951122001766397500058199570661805042532771925997348874752325499967244654452102099429338994684741678896260745483390879493082841355638371382559406964951745215221963282862354273379066405355235554902761515772252172475190427691442510059738387372021257947955518666709899631383610167246794119376853511014235830270174188898190115497749816895160553163501271360026194844452906027109786676961994023174303874614570630017604557436503603936567430884817235055292034615052319215699997634533962949203951951011771569105999356176829911527406617135110286422530389188843479337307738918985321350230179449242666738220102239783206520885446321410121436854223585442436988525788882256018623009143389135928312964054134543048909243823845656990736005106556269143000275116506361015434900618708210850236459678206937196230463539775698130243754971581583811337880631713064554667467854861838820542387782466700627133741759612407994934219853353718442571114841115899942093639983269680799872267778914016924347324196328205982951093371112089242028263734193360812012939220174037372547893897269210568311934416695089472058014723929597589352002205403592962321792202840844545470930431721789694944681790634578721855823631248757810633367937941986369134654705789174346971039499892548930841386243145966595691702964463484532700313948767174124802361263702798607840625881990845463456249679451898259651555993801983152380822407449288509396479861012398893002630342386868766035551771044848836425835482034989770678368945933520843628989161432701233643180471032405272494385509409785978447501427134394209468219709917286460986969081527248016446770739741614122247866288337500810741634383913102487412072247651637489384804889905413820877073491721684853725199253565710314084025670622970237341499722713409299112302915157995994550326800254894173273266025996971719903522217793266168050539492811883845547400673452395625900482648043441255340308474887745140269000626094723965201700740718052095228750992529819202736616881490617389381202947312626076798203345703074272608095155539848414798515967188811341596469034322008463053850829245183159635636492048166448226327757530028264875840689899518188143316009235376338809807643146791971501885331358394099665343915168535000547031455890204393230246046646158263301613675398107553188341722255717474288310039406612223895928271501598647481405821446499557202314446568833148649752367438636341032866281866003164234041641203436767751823235241460129747818371186548034629259002490742729654984565263581862908640903471055820438434438559393656620377322569896489397791882621665973312075366304359148245814134161307076257657940947320025006087168418633657917364368988125864101289686350455697306491221062156524895068777608288415567686254793792187658883061977030254835010489826019984711866233369896801625810024491820278209589590373299936661824979954268955350706729402101796194698957665199713466903738654428203164085881354541309675816855997451149262485581441862361321985780853481007038534732218034952302260050354864006036151787942613732978049744397857942847255646652896349962498162299439193619976417264592108940047157667238184256737640964518212864365917025151128679353638630237432767527763285056894953550586324549610834359947486184383637938977808285169755677502356514127422448081498986261108669459026925527086245854426396032121965715316167051903032804495835677543213480278960932262794008934690674143577645927267685939254668034541324543100044225821825714702213755679164673864975463182122901959368932601871691385534592672925963221179728858247204416254708463586488464687699636098456787822718658600691118583737595100853030742083450465524714159525520951520094711384200548593056659741824518806873296911621812414942504227169710209409592034183590427143810432557123754394617243366615950984467778019168605089112940671231945695212913229443269220252433309487908368493885359196466253046225560239255903406998522370724143461480884230369158909813264993522084432294413545646598370563432741073601128175458079642145076093081805492788471137603386665567602104103453328568585477983249879423215359163822937041520063851638733010245927200775178678341600888728284676401404883437155036948594271914380615311356473168102549341136724101692530455072803980708822491492098045522482552913534174388807535063928522330248258973348533124524131744426164153645593884882610707085174535021748872722269078299325334264435857502668234310391388706516230405383068500526939234766529026729839108654296357938313088156913113005737790203420772401235777658774473776418209791022915748840480361502084382078674455388570379979858404810611586533474235964100896084664470676681565018764381455465699815665904701333072553532445562922642765232569796799096600349198268332268166229959480566701125574546781029157706951056083121686638755311950915187615780172936769073178698630750808206694838089199840464520627096322017095399894932533894526117819892648751929183896507866157807359024773595239878833228372317441916802901665329508613301693435788642816774949077575705656074612986090243197344294784641811960019643815487095220714834020426729739287157825290285348311309615063308405139333624573733678788793224116029625776596980852046687857795454741195646353509544429245173634961918866727890514590314723580527545464930109540600227465366909515373381145851053143181814938171803893599472976380182162592335471440363705553686169984095162349909744069029043631976375122122047662128621971957749870689814016007848066199444123610819904574394879214402441725016018597317479772028378364860119555319248498872565770333544200661146480541514850817197629243521795254903415615908295720950580742840575026792758697701466118108608016933713276436246723494924198087750009335613457837040869833894317719484006474849863585688991147588578039609054649337404008284261065980109969497315261572771994942714107353884670895845594241050183353289919301088606103622461689445538013579462532694895805180371421344734171677764447667139914196011893070958628433406145126405685304838974668852666679256211204795006877406137610675701616892855639332969313259582645937963949680250398574534435344012032566559313848179783260000000824662295208681396684115034764256304169707441866684365848425085434727860642932501280703029881731788899874654672093369153816829455392903007873255772139601529559300335528921427235988957561079711266187155612251560055447263029785634238712936225436987445007747422443394399570119422374139713122075694956777576598216145558462168367592772640451716610760798129486363340118481721556460846146981212617602127140043777580445615344621155066518407550740255733151132989233632388488175721084349824367631653530200002863083881130935537207713275560151546801744182456407750184683992116024930467743283851829305628202526483800703014217009008275666385957572069830266606635945759411826955942311911409290592896437605715476901036587279301334494233147948193833161517788080576387992113397438542090122435053513048233666790176192351661239788854907093935008136753842870131590606753252470303340724044933897184638399594272189103893701473531408037233380391279889478134178410327445692900146665713298288696657969285514431758338332933173788443235938551219475550815851152993379081239023203093025231042062130011711179638786147567445006136956488151688489747328065826088824204761839500029402590739503986210876360792925494109247085826797732898882921185674772312883239951827395596594627976950211770630484671084588366678887254588022084296779105850251667035777803381559678752022760390348399042176578368464189273750221926972914125536461313016520492098463532402363832588367274529841499104220853110325736127378904893016687873265352209361313840964843905266994840742507709640763262497994116912981893721981673831792957498318900825369641610821394172011201795609330899852591248448477357094074908990076938196811727388839156267109384799410456340165903265507341950604890338055108520054065554513669023288043030041815428479475180509589602185027212006768195130828374833719886040031826095951726014817832140613693180695463439642904300723828200222112880587037192695656702518807706857127633046405590778199572701606788108695621474870069781144472630046051816091495666641987322350279386360407944645445524204154837123758327456288396286762269202550615810248832813278964047509061516084036191860007799372655753660037411996089179941118909132538076837690344819317058072471964876417616468008923220925759316683788707658414321872691486800108784484139740063335717152627873397057916207786405098811472285697092219267379136879273146064538556767362233189657222679634495325260942076864895622695093243219291099748412720191343011190530525218664289852579102139982120052917041313178858893243675694652294309900582112054760321835759409411234407343403431234162926093929997780754871404018645310814555253921455181076055482469173973170444159507347732592954136905525496583453154877324318135512589240516787943490606888828727911581972732901615726274957886313058295661173789027276426808091850921755344226376000947634477512523506098490626085866056071054072128756408367379914523199448620296204029619706689111846625590860414311096595247199355792735161777654516592856371624509961442224606248412680207619729564526195042556742521007085837446128094709208056962961237150227527276501316621297842221549603768843859332021845544343090194503795769193837774994219626579296211648231640691922531001702046194471860984282112681734865929448944172348615491363907960545177032098207657860804247147395365574867876714057744703902308656389378476569501216090395440640796504365157428266368693416640426258950782123809666225210372223233447970385829351994815807331732709571375819575176867306137562760874382445505753866477992299115885255474720648094024584647554792256915820587744704537685461335755202360814346354978166702771568172316525966682230964620644242549874064463251467136544662745757835447643611279375129739206307820691810785201046995972773713732132886255571179564938006902210020980553385116768378482272799416089162716799440958796495231992040268092684172873827086536541909047428596278370654107500834371867828643774045924917871918860927498764200550302611746115448045581650933671715653207178437289979526177761069573467904874143003750373326442034115397417395099517282788708250207217463195003566626020833154669409581998424681567013498650509608293072957025562529865474647602390142179424809637966366512459120054361340956175981935492867869553202804917938241821175347654393436254045998176702954668829651207141660790359820568970989832116198509022304718335086238591144684244233593166902261219772161976973612227905088381737784274838001207911266846780316137303104327868528812592167708200057001978414234288200976541996699096813032200599905979434332206967343370346814541028952230936306163305648543558368718139679973879931006387109211319352831243529436878345211959431277924100140018238651930255699906658719790909054599169940353775080194356704659817075617033649030088943241901473735614069869337323118221051512838107221708229692161303107124030363353835934618492909466814217535935158023152882973152118078148583844835615544870792275319910072980411742910802993247760590209580051437750372248918450177994056614303915799215178011005802563596929203348424888778092419297664723633219389468164986683899397497335966337679551408797720981724006755246188887088719753343594660020128384480047250831759862561961766211339759372358276569325261497097260533466866722990534322027653068996022307885396059633995560401186413453976204948079927107063247260313101377563289761492024889750532300419742966824633399196772522130750512570240033523192154783639567002877828516984141579213898928811725739654936286990166465042456471913168460695373008393218174279266090732477204987679353511395275812686269853118119035864430250552964473082903250901530973862791128974752860348313529334101130654342636615594926487226407523228864757465603295114741247074084800006142795990224005816433008930746453945253588449814286497469988673717922422179926153949600658480579129761983473657014215735839825333902773788526716372972130882709950687507012007419425250259476842904273673942469386970166931245671620948261559697527618179037719124642180532868801754389905040955281136093765423901529674199084857304332651484209821598885558471098063489382577681880800715444074841902278808686093763010423737178736629389944982734741874193805967575203996457386353155023190423119907604101835216775166319992627015837700563954388022227672877895257548785750543703847490030464073043738961467527905950747338272229716206090742022874678725137027435915810469807024839897360122839894823284058490640858705109356530292368102583964247877630236441159080567897386145196844151696740899562254467258685134611844746351404106753642523951511704452392994088464013910451194208993735424515250276638340189660391863855058109197592621238564338267154668746366954939788173067672103885104904972230254439312780100663895371261761962096555104693854103634667036687957723709306424816612557877787437677051872817305416978648600015636468225451061714190935536041028950179367148607170407506445350058908034277855412571448810310756553312830118111628323259908219605392303727719101455196662753188697692838318671100651558110451446440260060427476760354404831074760524545697402476276192609086826701168655408375437350341099990637924609563838687665114137609109992948914437803370977212484700705948203769962822275967207764074120956706658586207527926605268673635398389532167831772235322739263732541104095492304069162794624211262042055268810212863270771447886191218984326816217885826932931174238376302903811399138375729506472155661670078083650565582390239871635779090616803447716170040756338896025624420878979839238159949821141320386734964046718676376020939498874397303980478864544465147876360676274189362512888405947515557532099034460795310847179053966959383568449578754841972797036919934761477244744349729435783835025364407054257743633060665737721065309668439259375790804773388987802184106558446795555499147986878988216006443869685659381366768490029835806460973627170010843575057861214402959657256975931549002361522725907278873628146186763630327463985938334429836715894167858714814035946261028793970032940065449026543511473345139723053871717468136738759552410705513197356903323355022242912247502474852899620189739319009087761365237885894616847792024285315183443808865245464373619597269044816308665008551508811765755076129490485539876243697401762985324342706327997893133655851605353087233097927323201434932733640066785470953931181366303830858476030969220915978823765846507464114325730734192646167489007019698822016773443495832882487001211613442021010635266337816505228768674017756573597175024957496363045710810121321494722162521588421265592078385682218556698715357181871856809937264981015130754360346730582715794304894454831055618570957577083749365325868461505050115396309014514052582895667937576292301407966137042000511643531226559124286672183268652721642176178130977863051832793144805871935629775333440107017595237198871604060700372776287677290273181000150888455901569813232626883839898099289219000467153419051041631767524529892805158366903678590347761395027597827441044782950854798485346603184525977430189205507257488807577061172616901558995310253602427376491519920206862731563891147950915148399743800465926330800414211097213331320282456422299734454958442438334154875882667137683017586304198833330872302826592640261293108258142597240720106664108385016207759664498315264743612896150847472900397298368682142062084282183717815570445478010118557745955113450471767275407935278193908716469446244072786505446569184332967905383763888915314548031155174882591534602576634690124985182027118065297244547225596922672437599981078145522619056686885181885712140117035074906377293938028696555900467640288137801331860819879406569043497548128962243601028078737107243300058045498084112213819087138563250962621038016079594114255705475318616230386370520639229856351854491476441705618998810493694439995021156454972702787042710709536470742424046319782478520867099051859088477632093577958483318827683069411102134681519372676029769109859646830946271195333162228946631847938394445139504609616328995669854260631940693831567688785561783890109355527118096975501312302581128658876475015454875108645688246706310330197869896249619373201251439765783710218041834831518208039498295908323381202895579608876300182766405930228687270046078881319351232759445277412894593850407958011693116628957918923397962951984434299732789241806917483615181063430710840819592379734620873719705259402492923865138935934456519188829742756978305606649499440947457116256583849551476744953264386466105433970667038792368508737086892368955935241520412281676952769262949699715868095020335631315191185647741095583703988473939982129750828918350704592557471268614306594508019841845225400968613272724268413697336499675101947937695267154495044956211593882797191050530830131411346248093683604444168329740891645350639991848840953641102421359378418343288270069548970955717454847401774666730296276372552173663226560871228786224344110104021556518329651474627283169284091712435076634815418036031800795187609910172582734501026386225402678847240798548481094963453255030622460480566578927870076658118173058957345533285336319819127801556962835099534832097444022969028237428771469599233058446132259975546293893571456917966577116548749169713714719111268048755259734458962501184435241067952369418546479238801676525855750930979520674293016559226617470166096377302842461906491113886649083275964685628000372087384766171769226332322342889141508617477866712606607237182333985622388769232397852268945844123749181104485013462625882507386687948020729069129972568579020521148517139196029818188458807819592913643131696709960440115654993449328829850906872831215159770990369289937994811985580680065901176242443836399515666775484957667273858307001413005889024670526455900558597628224403834651604658223354045917439421463317846553405751340232804365374755529528376368240325027782127388851742537947779938692024088137968755454215586717070049615760708601714512938308847670404472635525478778189807129496623244423000952615466673550531768348532418056529670017829439059158598221983871192028066905445802983439189292208928361581400580684029159557098919049000573536233071270861893057917819802554909303618518720403847628015563419434211123169330654423658699879475086330974480748873507056721911871346266009575456802589102255710774070834445494597067905404714332890045228815619831912493520001223336475491345170109521224844057984903296664346171745641558096386725602753198287362212000717860512957209929576177330986264791056246364028694262090345109791992875530036765193937862685920153218670186823655049090951527914253669817490191575547892501164295958785785126446456722555073789706777560038878410702795974085654817613178113169787595962297061615097123228399339249173758061579452000342976041248799854954157829505288724859487473569408454690118160219276645948095043109363762669771792026245241403534771512877300920937020683666267256390995501794935541432603891961574492217907965975522810137560062599428197986536364096962054781087033895771685418569884924048971409114743044631169011866809414345027018280649857320177224783275068773000683629899797739936959119253956419141520877010814251636496713341736828613007436726292094129448052496814338865572984295992817934043994992844277599981416782793791198013414633209386568052665247725499780390623051041004370527792292502512138140457260395391669611671140734916938565355361383308102198783169376480138295289514165405173453323763558327817156568308767193297070936014348666720671028051262939940586593813019837889470553087415681800879057269970197827559029171911065588754082305735180525241352392811604110245372176546062697216881854238437910327832313856990461678411034613275058432783125847691264411295550719946219499681535106859281935550297074218735425915461916741210964534174891078055342211910754143909041074702119679763980015731224523682437627784749329182412260707850493264204181157522042818905706837751897077712236047063027846491428185363364879187264301604479542277106511915171208865742645557795758687050167081422392837198183387151773171879954774589519240927373363534296462699546999636502531223245543122275984424472843294938392392728770302926289438956372156082174678905621758916927573371326335343116814411239747867607767524426572818408495859025865504123958327011227484423040192609842533985487867994071858144098555305032272345483915283873631041079217004617302688565148566142600432167127811771258768244918456213070376103860547284679380458238100017906739569384338886582080656496174890998784728860424706940880373738401816643975697294946226902874569251573440223586037500933506853582426801598483615845428741122477108452705679883996489639092222243288081765788402817052577840984118512968531570881439528406134191997095620410414960556918952502172689058713607621777390164338712735164324972187256555959475312570653531263042785603054083499352375883883651741571354910559925954580096487758949279350320152109878229602154688999929449635961045403323889892901861676058840883136017083968635810177998457406610839818180492609115588672851116402049137483884682502341435077028991137308393926913351046153077277610773548492971888009285720712316083789354182661802410220579928429330955015852222145842041937253014778034511489468516293137178989073521173552330358107995975672013635750935722189797604159855813142071777086846730571253492632027229017281571164602141155028109404882546154319451978126561052433617385862991460797110996393536847613362396274603875140429973797714186128070677214767038004950617079274233100549528253808309289820952937573950988235158782459700552094923604500413984580082934855095465859709659196091573839598702281151277252494639287210818755875665499065619583086580568163017653302999749284996328619694525359928500665759434081418790779824640751855770747548082490586031060117863520595886217548930470384905196172993875134387409463935779916431100605251474709644845522183542551424555974517679562170715616564828294650037998411843564811556460717260885240981201502608698033388983145399255669830085831039748091960955078365167173826649049688947319261952115453772594550884625096859505356452445829545646233689727114485115029358048450257517290452902246197805224077672408557511640223915157133604473025706787085475566667009137476633001869664455052614367507296729691084743907564673797806213595313780140313477787897826163746954390466930243467417518231070627538976109943652912653926869257410231245172171650360584790253300842968538295923200162781839061788253279458421539348742030294031468788804640813579492343085837891271748909444265249671558948994210146635719495109578050034462381676708737999743637141626706545965759567842551086790300802957296574461342182943476039885086245213852611768639922477584434336407994726618430324257754725988481926911230265539014951278456196739176483045352209826454888650913386993220331226987014999086322541929615392225820019941685220873117693233857101407286429432872895008876788808351907799775341783368113503187686247984941025935569730500389846530032303076928377519352457992767280632269860529803109755379782976291564175836864772522523752841847330336028963797704403174823478940827652243061582692683846089600436685147619770594020389808999751872908191413180863698733276345259489170723055664029359695615231715223722525415605819592513307783522207850087245051577575907175148893085743081966899887429069186459266898148304535172427577036856719571469126644502481368124314180076393480853796712601107512491798207839216919297514208935133086461186970197657242801923340304845185947460547535507020571867283185232273565311410467772101749730280580174273756508629753357020914905906418847171665604337147006495103644531507139123514067396294185021324206727346717551651890981853730621727864355409449852131134253074843616921677630652427514799674289520158717829210782782393013338867304884438075256760435787683925180300134684206029422837371966906523180058163669062260456391397668696813680896464218351944844679513444635810061580761731476422376077675692424119997916422496790756919102842169803765912310803039391301830275492188708445970069473215042554595288208707242461524213632955163723966584373934099522180877220601587218133469090111950642250001429131349571897099570675421149888043851598975080252215254464056169888963634060700411811593312745907592026284349742258578040534508764078522813277872825831018971023135803999680282206530925479616893642798496902159170311517962925241216194214484656440054296431022338338248830828588886597342127247035488772925230288325304031488009245415059207477933539711055623751609297508297487714836202713309112715421520885861236935486870922322740575329767818331102604163074799129450930853371038329811866734559500226214956477983158622269846415199329060217998322277441377883647225391472662366906878589422591785182166022173760139913643690026375345655820231842621665245327489000581592879678639963507133633446401918415721975505271788947429640177817676937388601354182688398780535323685845580118071486991229652982107310992745133570871760062381478593087794881545448775613621899050348413160331478640074000721517435075034640185704616176001500690312300028843816218026507880842206942656195105082837046140232638438665803577907028011668844835651923815831314873320536312547561901243932345011240090379382506310933277838645200424148458765989538130574007555189009460680537043570954508032986580603678265538481144475965436651686348866604429239757220243746192689207810978008801836153802977347928657730792741318779522673452467570777874316972131057750017129527458372837629076724791429522736117413651359324379115965120872344862800801757383275316896613846687607414229030034309158376373197161061255169510241373807836107463219963283797895185021845182486277273238026878005561904237555434973984488573885051638329591229283086921472145765710047439910490639285934984695597010664454695705951504323460671580046426244515390839789970782797939350043888542296097146203897019001485427465682556942437362297139938121773301745100522978982554392675443793516134644502439903059284799138769450253361135462732537123594123661719902290408679066302392372707422470395125977131327010609545553925527492669223324425799691221383025672111698308389560578491631254411733650034292549385643530912578999815476816068972796721543823345547850438312991341137061027226390695442430545912747012616237689060580065979970439246383531532354774734207242235772415901780940503699825433670923981795581638342384810119775842132454102563749332669412747786835777609370008798516326763490960001647703119077996330222186992195576985687969371262232280750777620864793576221204102496587488191783002437214913913560163380880304608497432331449896475870628076692801212396885374013808709074250324363023009946313033271233576118822086652116604894627893599360193365715336960185700284955986449048935012949895730790588903995109835563443110407570158688440263458693434462747732713372275204626171471432507648693128267733438432066748557395994525451796910100193082264913447442708346354630726043055471220448535631265452087669110236479934915044420213137753269958930830732457928751841331536645548176602535687896625477523540599888887531193127097723122326276786714813221266019270353452074454315886079664807102221988065989554570518366375772546147770479546118625411427645952438410362477285255672484078677976482644518406701180621012440691405706044581058033281134749999870221635804073050195328230882884410286633892058127563599922206091741771723385953981164653768477642944232912803881134587069946710263697691574478641142323377417936785845162015883621657408751964371360825981890870775712453190700809137441621890991022524862121598660912470070231536144255072327287638561530317888309142574829014414295976122931971038099364943254230647262492021949629547360761015947544960288186978912264544060530512356799167396596980095248042229134788342444511341154313874046353146094728970855657224618876427677358561126678592812948022206030420429194704966745610375351992015195178741253426164229376404488232316108301391882169984104179242004195594406473217486209284868441279891934582688824566789309342065558818968626838692067331333876334376934771518141295546673138595866190379657483206965055502617039706834781384162728968839913998020467225254942785534341123358534761966484847628711171554532986178683842658275719248252158161541480322174364025857073222459226813380513373378549184039429354513407843657294670996500385139312642888709933524386437085566121086351851106990265225576099131311889322295266046275969986992975903378173069693204288199590641046405192374978098161049297545149038415933718725642512824872581293994037565254620613671171992525986919110956074309946266371473671255542942449488888761209370659145309395056412779684679515004883390250271815916483565488600059893576037102920053784704557162445168425827788351768168617051700337576433900219796934690437470703243181919785567935149969389195617752548366195449865664272036769045405588284771555939344265224410142011428759840257632945047725306542598048063500662337186124012688330081863869474456753408068601726905999022643886403844922580944688590178318392049865418560081839390234071684448983196789287508571938856848366870752814443558893542167960075803647337012478817151055213246537309923341306285676762401038605051950332570306421151240047726738682778912928593162703043740127120329963247108285675921747038127864118084346483689995098709588161995773985628256003355033848769434659269002039124891688394486961146667432547451130070536873637727807280483232201778365616137738384048929953423364378534885898477851261477332454172336540313988625424407968772511778605777331349345160177299552855868625569232516170007542990852898525573004515382002432127710275347840046903282434420610324814119666942848756149213779625251561602631957381567264266873897573555148134172607015128188735509181409494245575574865706763978884414418550155569109685766794378637972164025121507068719804941422852697401321753278610989019323357426009283781056510735042805794295782990432563496296911875044655251072606274245183648166635579667529958076234933979890585057426440965191656656812338792541889188254695915080255475609572590885009002638561875771432400904847161312374772104525605199612626196625076281693851171606880022187519496783089080333447831013850414451142529988362389653446270507610168875811770814228850490214362027473299290648257942118132605214271772932148782928443285807362940118325322890154477174402484703070353735109073634473776423522649709864795869637124409322440527295459547099489861464810002468542117611901821884790171872702022377648840543583428557343464945652797179545120100303598489653202579166274247694523001441863791018273490126548727970264747866596745226845302025203957711253920969497903728194108882107170911736886782497661917670770877181137587407197886703353544829013383650038597710747183429773231399425941324691206838950016920355056771206313254631451082260321337677771961265954989099213556539361790622331887687074364889303396100457735369229471859296550711562652589265013891963934568353807186094285697458405985521135284019461083385094549948404877876518604779696756904781485290976727390755748811476917459988930157106834946643902291246630188035747326150128412289695721726498853429439603736746402170906913983916577002077546550602484139296825720642048489976354686300336817164212694096664123697470428251541006430827092118156816645254712283577985795771922553663487651800340285351163461922411289567727807939089796532748156632464012881901251510404086907323442084257251656397541935811780528011717689944778440763041288284951060097719245023165938355825813458749551852859640279698706053038951945830683553357692951666323158269283233331193096970134265645399896027663536043803116263319091229885569271617325246967285003382365957382177277466660826756528455182877225838475118698073700107716491528245778606862230875693862599279536191371991157217718466495789290623889688186510772800407949460470606753089516126728570515426490941529654432091631508704704789069484590011865498463698794282399224727830528337863639970655046630516204022666712247587047208225845919989185418320510425858317880283264495120003361721193880918321282679837131250672367860431448321086192003293816670604906807908319662957086403507156082058950238491961783885152322513819034929637607963816468845341940834459221180788479126778687455609014531875406161513753022574677711914347275694333713591653621137597243486497319008689918732451466152173168759789608833912885548546978761169958282865306247307412694368300552204057370684022088831162995527019336355547316175981238576798732019367759301199320948959001149787890415177726710252965168730937848437000642779160045419813777546666057637001111502314586659729672505420086412839714620282586010495662628423576775657179165271357581578536839901603503383978115595449157224235264557937413414547443266721267757998636913172891236059196725316376963806034552290825047944853153525557000975668231755476608444367385094025531326222268694137912627403502440085907855336656596896500799813547734974526814531058066985906420029511195317161926051006464613199313927957914751456122629252085031015042365775998587197675943818310514667948383942804771790241387748741585738143358688127480957762370143660236247186394664825855504177480475573703570421807806591733454533577567546336484069360453406073499758265399315130151663763458145343994561742115817649888016738659407451240550998448003814701480286028821309129725342070172975940126797595026677913410555221337479918982340936551884665956281876283046779359208553615549479997965687336338654582952112328195390845771308879845647203377648007793092940065198137677350569505967743073573880900848708704393139702262579088525128911105012639499042477289652363748162002829753421126404085283408049496987608012461087180269888278079941800029019331161018445268843952546544085357256283506245121459952031382670973103232016807698583256899186548158758988007793076229655407392183081986035828866166463864282408415506044395009445210123625374460422261107659429566676980996031103236923081342298821032569895406913776027402930138004281078752741030339929546203594418309963464460742838129084426868336575091760535624488770512777774529527146174235787273044523300399138217373920861002702771857188912233935293592539061230693958192768219355455436883728152807734127991688210103000935692005293753437395373176849724297932219736957606410769045077128634385412972573666061988195051999471637132108117554114655528882235843920685254247552593274257686782558055573118148780356033994370076722139549671606487896411757773256999197309253766377843451789730586014045342635517020647657391233423115650972372331240772575710939695316803760985470246155915925466899214619468144033485961033784024892794358704714868752962864246532214776058581902142087889306341625278488305401843750783980277875584290496642535646199243015039455277244496626064028617417893118663647234067645082842753337377533061223980421745736594477549228534843091410309193297571049974952021313948249005832968798033124419830500239541604529786338399553318389491338643425204339772935245191512093118508245990654272928461774294689480593810713799679784961724668029401920897918584283742033440229285636332971950133450780009372445132010508757664474325509184070119186726053324780170373911508859369834394971332787246246287212638937351050609950961023677920134311859514809880005872043506233859247055449656449573481906593259572894315818918597649528617617357079859732142036237577967047175009801094512259837476370688991965369726263009418543474295948766268937648126205234261599609704249375731628493809223319547889962600163428346466426609807009457348714982538896581950210555141097483311387750079903293972997307342208025941469396164414287755122035827813908550459021801603074698244564920090718112755239015289327190976342129613694284944371188706637570820852550087621810110577788162049176730393933087084899434093765247339026675700661652033422719879824394332611948094489166657545797083171384013674359220318539082109670512059478494629744827539742644114640783990108929105171557387380017952623121080390315312725624025348971914900388517421249957747208911839090367389608080544687427663153083844644725059779765082527561243207867868458254820614831006539890023020179399851397446176395471121869942760892617589903875140590916324623867683538293454836542388138765352994791001669407125408778112489708496966156627973038279853325043613710570384147100423843190587767435398633060447009263419172883870264105424563218176867048711626666723090250259334387279108343449693260395808440658455366105724016206902936110628832992798166740095527600545190272934167979386065658128254661101139122819769232846474011547038836857722043646955477321282114126102416127994050375743214542592816916196173670527660206397033472043488737720492509746566727482499361365788690930246792646044280047405720838136835770112616831334074102925787487151938217939127392047236649971379183443972318901459344051463301786123292787393700145307974508352543877984678475828841732707437453418549817719243582303575042810632392832190466683744322294259935569270852288636299584438531337187250846863668233212226896646289568540938950158188715624263391134383062561309283587306138290165424282765144458312920075182400475971256389909713456348599844445730719287931616516037690623932701999691312231365592709275346548460910077307374255830514060215515179467693065427471906496767739279060386875452716702291096985150314816931429808881913943241329811207011114639684098644726096023474376025592462126399524643818168326336895100602164307605453891792750385352884033068716773068882655256357842782968489890602262915068115624835145120693905259606730285909804553142804649422004324320345898150289642702689058466758807971291453099023585312791674398483801112449462890192914718625466394347421398206978868326363025682018005729501986877124314113329070753806523023392501283592793355653985038053928266153274677571506496586855776095323298944381442145363254571533937075700139936063313846491303197182581379381288980254693097550695667584741317707416433408853057764101382032886745301207756435567412840415597837505158108183926766190853975689247184471903433482292132118674526619299835420423289507613125652993590305315629197043880936377838690034068132854063903621224921493455644174476252271607447292385889116505218172081200214520632474152684611224843083334024036632599723163903128116924332153334397967041759364169657013769858626792223693562385525307708835820559077649350417492040573392011524381112250373722200387751213513210435537487335614525330527711332828294657675234564566254177416179789523344403558412697189530437343876267313812753119044605005051710357940104942547790021869660812079175785055516949329570035022304459046718175916931166824649833570121727998293901372711587579139916272374750456747583483150336337754906854135667735345291367043611450229964800135247814677426219564019070145928031935889258519163455562355412831976478021147465972167916338485525048122297465123086531251412682663126827024417764524614438156002380824735693073077599970778147422150081714491775220617313400576313293061528043003668726237973823609320017371652396074641163653438838262960195607331676845562288795845384050887673634988129379189508570677343964434873401433342552865809402813388341322568682993212166771423004765618609767416484052035499381806675344143517104744926644368803271521944046967824918129408941882663696388969057008747961363892673345731096201555463445406062006269329442641679887653503965755429449067997029418258120402695070504106392265802538065430104067782938960983877116090704248847904982767224526161131401897995780590848193740541694318081019181708830482984234019599301057452638223561133558525562748440343273131574134889524684785822714833828951300021349642833732106854078543984381566909207890715559355527762242149548765759419435963666892577755742537025542693473462170642788573041801259555737522451360951760063922432932364804579090637604155321690444635832697580825581645647377926088259311583604866383234226511668850212355910577743910087298657281472612626486422119299674929551671920065659035176837131573324020342760427573462667303681891895973183060693594550388003245200967191441749201104823731946191538064558522543554102559346938872937986421545928954281954852542724364747869943171811777375923297103460178489165588276363548168251883900177774899616210318860035399895740188526692709910016350036322842044974182161581579953132156408314505862406129090285369553135746808069385892868255249819971392059206027831528811640925942580846610848969410905406780518012617474603374095288854793305617204877976507772439627831672450166573898000516576939875616994584842749084532686664461423801566890812976063214277459904277807255139595710453959645269708405651191415370879690787012026602408695608590433441332983895087815367862941504278843825760777451229566729280828225203853086514194285864251018846953358115007687788812455375602652028855071421560528883739747416771008942161097791023122235156348961895577487393603229203830236024675197213698848284881160874833192202512389507729185456983438471695261617761544021763611584643072859848142030308929815097686243485882925002130458552609488071860453681527457555738856570417025005923705241092240299332109045083871640200023302385100042520748118373570320895586410419825842808852111351543467758555235575433034031495336742614418463653893177064663432710387417658237518907334587891818099275689355113595902060751405765883393397666146719365208885932351628412784186514712086527225613679497835041079679809057811683165265150440505938772678432615573569220331050950296537552333723124148165726349444867763665762144261635482251489347342120896483722461044727794534349170720562201524644943473351719121717543062928532205864447831123758324787525457946626012066328898765242267749526717020205458108712780470297055308040468866830361196880654223833300965386769004769994074954284685903504061888135448060612325192068661982360830057113931560565821900965096314785370383284283425789142453770907564788382239124270399646805711249037955908823624209687414771356235035260443516819606992227280216554475016287527811731409783575494651536105985502196940227780790308537798281844377390534474606783075858805373859730321948248046890953440623962606678761241664463661003139458071483274693495863107866941512733613497973141637546490855811067165903774275811779707189382969715531066656468535655854678299295133018223601376837118820959488342976884270111885988106368781618363515391300390359804906243242038905387021503467514870993447616885138645001919988821801625032080301074066959587634526903216902561922689822303229458464377445171552136646725364027718170051623474401240787950896185634231903275280922788458139709676641769423187836918107742623350238954027784569847182534524902594335589710119132869557047281167679225016266559705603154828193759747754290379861247374437274814618742690092438850699695808333687627784367819740080946201295490699694571177370698865932869620719528912516912377444313132860179011312146068513748494112201166672875618990328636369710480850371390478309481351483135303457587909911100377599116313323212178151888221765570876443491924411910905639017784703943960162196054896875455410556455196310849670124368329430992352692513256657910271463429628610714809124741960919835280474945066853543869866032283292284437517162693497279557789242308509742026871372203495699485817765227190996908769499479526496616533089508906767993333041714790257237469694224790441898542364239101846685133570864361398788597791249852733475356189609220128074372362171891733340727053596278334413968767161888340505578361174904969169626274414275837858917506742078962298424654743364500282392009877251149967691712988579842269406315900695175634475349945698584398347135595230074800114682843490051713159495868154830288593008191122455383857396037107806090176940695068988183693376907895940200795329713145081594329913823090613364421245455905381250471373603488830328513927189412007728019393231950778545141862618327147378302540944782897830715670259505785284005635051080641227241015035313927972117280501427376328389012847954602034670227423577018033959365121156547292026780240753554718830483041047296853296442538112593036160068571994354899560554750559271161068751594061706002536183461255651610801457284447833311070798329875184490914993973809859255489202364364618004462989228613080050303171614446319464578622169187928986402750850909257258992745610056814307821113106391688870196886331051032634164325042676115046352460733115411930104800180959414687775332630312998706516232536881794350867837556659138477376479846034702118013652551769028759678335298924005827277732010673228604431047733693264441678070168794822552614512009006979054075681721070751034454474505653353311447087772869180841499135333784784791761209867508301911542962058005418218962146559018360045312174047253393746666352477624485333182557613699600520358557897529525279085406878489885231334937538962868379552361993997761544154922049447533017107674416645119503378286888045638972194439063948550946241175012083971913764097357014400454901216914271548410190066549161140616886390508639900075672753824889180715796481694281886447615064125165681085687512964164039344002435467211699124234132250651215291636592883106281510979308638506321911836791455113590908804658206945379916350040978995370980523995914352631866753421493388973816991233189127915602937393476786667991496252067570344014811293386392288815726902901657389632337830098657666617575592674075834607216237662781261879737134884572442572557202798871542012653481136584523357172211214435753774886791535978335617945515781082684540186949642031203399565523858623977633503293062618663953530563781619690958743999188933425611990286184918589509874504599258562133471480144734572734288595151863525981225964001946494994470711815661205977668104418857185690814686178595519464782114152067865356124941908147706506800799905829441851259348043341531063021128415011819572074841950831594951390634798564733461444890407818694582597126674988503996282344159893013886001686245354180830278563269781521837938017478589889307234427701984458055735634882452809760236361207266629802928183564054504766869429256399449477263788079425570982564347354046410490671251895694542713068559618657884912823203345165233152476905371065738104735972190107291598681551211046959830651679045381612600056376505641130270883354874316693780678691444144551481541037785534347173402650159164914924309908868774974653628889451192734736289348516389478150944450211587901692220071541498752612494878795442707844800516622423473340686295679612816378280737632558814720122176328668821293264016956577006124676413113207329419952170901487830845587997457328631450868452987584799347551239463269893956402521703065679430019970650627941714070095929827149588851577981763806409507675650237770927562199103284647371281590928183366499093956043244912246524222975937780359107985043602866426716613074077293520578282605096201858530965158842538307564362255709317137983414231300320454229514351968176254303564830983480074063474962967194037283922354187854974616713397907309534917696938536015604649796297718897721905338183031089335787615747846194880178373580035458188140197160377889715328019905437080151100628548228033043276991899485737816345956349451672215736854574726653271329035484605007116013093864935025488081945421822433564603285780491452425064113512474784592404828716150607629728426820929253783301700268668569427114850435231897524010673318303875194935171388575930541706971912113625400372001671681073826265092611525129897455931454221464438009619635910916597673335883537727560322511799417060421043698273716033484941256604152295050695092961316763280897223872805204341443627667483890212885791178744823413601914195424609305911670517823486885941035286656030816191185863480925009703803287190967029771911411083015546516443013089714284762488650023744230024038182646148167117036357172709953428300578158950478049321885144739073386377540207069080258776677431059306576711562599929615040046982320146758163391971419981108478636711699325052518260518348031668750419003347894976560299021950838083402493247927844385912868031028532669566703338956775502660292188374836980216800147908740544608493120271415937651947420795253506548028094135114919796287390100308757978457452771799780029383599698155066967672276476845503060358204000622099499183421441409203328785028875657015980702864087049723854264923450489384133218221903247709590004593480497389436532753252321472691583639458797642663558635891166257152897631066131397805934718866364909146509686236484595110496309108379985074362390770676972653240223946750746438060447268911936341470889214149314751327882228925584478331520545620757103398921320248137387748467955820558163176967887438168293557961982204574724180941497619856849135349154212177708313256245802634183881275135960131788080893477253947069392242933936358327363555970498580240790869477908839777465232379607430740531564186661568189853354436496466471829087554308883098560050505570713943760591714550299762100987065712648347927629901194763927398401721229692318475822583147198901546867270748309750180215330508500953335040984385297958418934137846304986767349606959475346162865868557650306980691002054424725872344515732140943018501995836923243462033435357582977034900824514060790602440525067907520313266187918959424682114069050218159686014568100847590151119687995051904756188444016655833877722643038678124998721305941174972031371768111996144143105729400295009092430314737095377024110613062313256400202863515826925678875826777404349484494123907068798244111069922972979862283517619263297074442810386904128381436775437030874401642346302074387200280084596235072255232675340533685529162666118053962769764585697398898032907353662920039446076543461861002787624237479389015477561828911185379669317716567103532493562779304821497573880987069295719637449504337625205758521045637240135944921517777872337464721618701488957708048991617599972725107105533612170623249257856489617544847668134791804778725484788896972437620600447495799222083285235875649322945494413351034276338420835527790073517219910261000788039640457385046336801288667036709971706989627666190724706680602847348868431018036318356929941951556413040102746231644112046930267818597072920571484126425372739106113137743933568933182450582078562027997606313749742819979568267180045854233250782778602130209738984491030984035551148594357674839695321002891885291074637019734971402506352875391189881728195437970763393792692800344333982038681560366580652240864306070608705707787256225567752592554515090651707031477568219144849527773772999607921549679054161611927288407574966653885214878880348377485629858718015832581789612657776432031607127241906483360614097127540372301247850382148554222070731978829622108267518582464113010461238090060429562921696995190072365741858335752218824600921474352934491399519062761439500696716730096950975956988928556221485001521204105966387412886772882971893902223735143139721175547581477139511021452851844263852261077659777347745174048447530359997810895383027117743358531799405223166293297091045658435516523782548528231975399868157410622522499338975648456504641355694949706663971683210444060433964903396759508809041499876684156498146039977602270286499906000488569074339451156573104569520851789015610911916657725317796100006808536657845121751904994719145648355183387101557485182172293058484795692296148899677637457703607206231329283595890626047599309312922790384210085974674426318865641446431067865696379691729843694549825354042945060832628947402443797250780749812356486305603179069040966883319291537141191224183584796568350758057597990313459037925353788947572018726115694897091826495986233093127712693959062501721405620560694605803925946146247817158009598743757223380120191951445970959469184876939942056316011160297049636871417008007415952718374862226370906753524900684083531326081309901690111211428747860038949013853834130336556828553669117324501399441591403244525078130485192710034090086053816439783821137370276570310515363894308267534858272677204876911311543789506535069082455653931073629046210423279856422464354309448471089098679641772422734437269987249326304169476552298807760785704152949796131241351886882411286369338641637081476640605935656933474187626529836204163124164807698581178040273538044654462288357966058284890622552322227569483505782422748335499587503318058887224728267435968847834346911349953085710495690039873168809820688649361460094461308523641648761747530133098492967776106576133493526184929914360595716934259991082151396071759446307484195723791601680833992163414071577624040705465746718325269496248961943744749906344580667731545391766619893363484914694691390832034310311670446847027790259797861299611871306236621822253388626031561402358571158656016051942413478975648526055618643800650335090534121009571665673719935197440961639973474601070140715744624152805924602939889266220446995759452053426922936663000498825149266286478086057412597993417816634859494276781183146098527569562201389980237013233698971605719544102886039398436516473043232203099401388183144600236935930386219740988365409617597681587243052992668044056242224041092923124980985380687300683558581930173483098184667228110211646009625220206372075697181902506292328957934569481272373583274062724530853356589897317549190664179610674138376963081661651596352050614251909217502924352152785625509973192193707431510076590844013333097733344460270073594734946575086284980528533576371985308636499313323096546835180854883511972015758958926839141632103360332846361691887897481886709038675199878717999554693773111474991241563756709232725486281522300456576104333718979836009013817590182506699266954409719724962518029210447806443320189382382710845621378685110972537669798150912459822479014015481718302300651165498419928846956526483951600053369864073562953823053059526307417289479217437598817762160898756570586652732281704605863623170108379195149488072767985393350109778909973829133668386674416483670832557884060096547936907992216764001647559155141092869167943035382784026707494580033368177654925942575823191418925820612386580736083502480453903881738809919376109828946049010903835641831531072465583284274401379369784050999486453420951012768578299137531948686255772051578468176433505278101972961892966396242453529834040463333194840606655590000442509173612496631993048474868358512631086770101193148680455376477419045660245181883753831218602644974751720374733080101527388200755180745336287545440676444591981464506161585155778090386716789744543082642582730206980046753852838871300701375403986118298450539185488180975901440096806478857371758577330086022173429135802880660538719846462572269300130980461251439900530321910439768176880112119623944870003851686845061744885741578893559840662849065926373001275151884237239739180232140028376864889802554111023014868295421023638175593062991550274328597042390596030781528779078837026526619943831031330918107072608474287518413359816256779911841346457351154988916113853571064964028181425559493883013326333976450113815682489628481086175241733314531147768125862104462178675311555846365886583990985078499779516361045617872957295397806142174049239666241304976756860626387554327911235836185413830876505037406379484388481426185174655804072854607795804745160341457449606897782679740481157540169716843993223600549301841315831695737718752757229151015602022966606919383499980199828959859657908147492740221488204104524557188283446426918291553693934877395825940216795840200245111425890098635384397255661771690958914589914958924187993352598626313790131764163600344171629787246779683027572877360072510311315044393775383120460210115156298960973211137354201262240481907530030582183079740811368890665118776267559442056469992573628189827810221357010615729581590488898691864798050486712573472719642879432847556886652716279869325019418207818306992063012572134194691596520558464456029256944595589930416880650891001837728797947226801578542020923053281462771425503209452966994694597258586950669425009310389638731172952573721477180982542208034510894115968902505149578819056837212059062544319984870773509468823491013519006291603598379435229348856558896321025734177011045344543415740191900165124748762887565804233365449479510004252923278422348204982889453228380425640559673120316993531599060262183679971726045059821200167258372706834225587552142871750937754566740160104091031385909307162422760793669424252367642852079925509182543233197841079183339044866931433587286103549728355515604058957865693568096808286273704652615083943092134709981292169076796405592871385725872543709705116704490197261296545757476929357125105778904892775995044114652125866323122679131222832922756768636721043373666608513448747681337770508819581461488047440426115337959357228819038900930243978684884260367594285645105808552940281257128454751048187304317943452821592939959547784865955289860093840818173955516663112569698380895432432281157726101020406572957268518129477865072453729398846643780648917089564637569285770171273560619672528108903237139033157196505345562424115422905829844363866470492560878634043171174975171260960348311096258473060638877379092603282873669063712108226379511750664354712056164294301714035877162729520019281835440466407592201904075039319919175229710091038584079065873851626157914301427968986618543338729802140114541848957881849973759084944454335646370167051279811666121722834303074758286075229710512442591816376982883048627208002353604781379979561303516513417060637974068119652050615471847838056501983104809868657122393547768004364670958567424115900108825277814779745877767322433869054723006189932157991103112921356117017431663733712819218942428858205383519773427611505851293643791264543238133275592846963890955754056568092087312216567940284749248581399879715074725048486306151049662222141457921549832059701505015055943549137125944347187706888265993559588833923017053395900126005446556819655342816563572060093027930647994732365320459819753532018139911755150667852522200645205230997459579024206251796391824132124403877982854114708641236870985125680027807643194544130954854686411483148589446596304108877506885055252595836698175593710819864311710595023941605795322149913579951249311586933359405529170912440202152674054635950186326852738732841230537624846463283249256240565298983460124690196573086365450883590967551919211589105620020918716540465018760520030387466484359211055686156585206525216549529600731645618267739873697623400477296503896908733684814143158743602824975611040751183131722613878032616666027976523817389677984705212721020462170391657362813095990618899241961694967278912292739073770446122053711784466110038439303079692068159544796286504577708588689043319782246343077281788735843728947596841709890762587839213309880093987557817771226240516471928131414645465401286729451959094323764186968007228886182163911712073592391353473923619642631107981043084643216039732961507027039632401114745838925428728355864056307253177305554805786836071080711610363338820600140411513130683913299039196574548142477735561720084482664161272149964347494451155051661118674170726066137481702266760936203339995410923443646176900011073528638666127408205850291762695300169017776267867907175593192204904694108747854971803694323026781710398946117635022028350820752857072378486364024618590591449524170062044599552827018013128324457411014541365959728612201771809255532538961344142223409873854846632802558289111943352332351742767305441649388593679419474360851765282152157290087195310725253862582308595663584005352076292818036178488585002516788766158881563007501970671967812302173075777926900264470709405272964715479595921730032611871055705185441559820120317266181463134317795698580686055155171073208525167465162727662417889167761653872535493888802949641366339129952241485794902312036546770599289002223929634579339375463128901913315496585519649709197616119593392721704075376810646709514289727481410340141470747954568253204982422098757985806860923792530330809742116259569622047559950932579475784828494183905145273044429392799283914714635539651838209261954466554540062033762814587270851381089738930896416394166583023932029922363179423872460807818850334086102055976846365861009598615317698187995797851683072965597560918723641418440945743645270253963595687450986538862467170118946030465608792630579574502307729508730897577944233492016332566390283889439834779655180047247214589111859529205660626380685183656203886636704887226704071169340737444566408482683524513181909228183817004211529587274203014803658012118205699584189533354339421892210323578368006416843759359920935459362962960206352924722250297643986100904037550015002596152813636344741416286161629263792377479026778955177303801605697458036794052271314387306574855902164241124651674945526534071759763693495445623941099503895800536884670702982204582188798975021886880774007885617602329774287153227272733716553125837608784934555871022974448016605620192000999815157297833105695174582427684593611770057764338091488595662981136806764175067402208984397449948803315626883567515167821563807494743716800796048473719368961727967459356712978188319601419450015689010375260870712182737171849859383651839651378587999479301311802699816293807634905490317035364135233456252967484004453068776819862181736345992568913003657022166673746262440213354767898881383853319939019756986897344630750850060207091780829524345669420484181545196220859247075601185733735997711760537556478845682779434499886650920782408343862368831245660005190527533845284820842836553244068638076875900220043613129374802958633385697221537615299254468088688512836918114312657563388374465283465424098680318860905165056934967430233539626075074782814122226711756341314186289098653869969786565914187910927005632283593978770633860210105099108981421384653841570030756556969242550016338324345126359531855994006962044843911932252419922623089066839747121084703938507041350449920759379448795139726518213857181530570902812058684874145963544883324891342004583129380445535348063560875868403559019647208189550439329895367634550214401694639457677737915200757224549009012728575221241031826928266586387362276500712880584944462585237371801009110662965061436842281883469434977769919050398510095407357449560227045410285974998029257953044459914595137099753199495492493982647530127308066645633082953355258906864316035579284054466790328006025622902431983829384640553291089292568724702519732068087219280716523376884399107539372968457535365258637736961037802575907595146406371202816907740761360072478724910815128751398954279442969013292901093847209891165462033499853857003185602709047387028028621285704249705652775627413549774113287994592777061899199051893993083161147734057877641363997870024134774934069031726086031454558192480897696963979226745390146994895346967705244264934716351564446247677989274946335410313162296730297847512434768591004569377826086128816812722450835694525116775041697806280016107629424019229246192326655970329983395158832905658149925185191758074790733196671670253536745710212247791541040253978055024564510614609431048054150957711635191929682319030474884897309470282266076396525725801896366851753696771477972231738881705957844748935470631452592849955971450748096955639225732112218738611115909825982533547566747580894931455932735382079384060752359609051705759441223964150905605799182909548803116879039332240478552872516575317584152597525863197342303308072350100638879198080695859281017243054833024252380278847901732380094942947311301785931924555400497594425790919019827741279769588260125872692139992051011547915003584561792250962175319167301713447009404255545052590237702374505922479895960543115752094143658258418225639515071675061068164606983975274141390665389675230585660408228828178067227152046902376059596239306404550876870783632296494166165719521031651233906875421892560727015766606268810493640547644291915484176923312531822861519249414948342735327279211770240741616223527092421192250962538695587210027806493460949190349763138753816799964815296574057995053021269789992053857121678198281811934495686246012598767702184020539851629306950052408100021854531123291320121318338064414860142296385891542639194328381407682821396950782825817941015348554904546316453343881823455567786950762872535357748697507811877829778397119400058078594524143728917775782995425022458903187390209785400598846125275055117143286600261836400177514700726459219264084997131628761029772805977693293543610529216661336773938971907987673037005395558350098438050446156625542663022662729135866278757021527899076122200506834087380050837981960410981748194452323935114052527738430044313053512971267401440147899276540608075672220917944614125977975922024474549891214881052512814607095730004720575514970547662001060050664379988568698190132528786860090885960453747972094543094266720289048099345811324656774820809131118750706361856166451325559687802647368811259191316383038425752187091051511898653343608236611608942634348626630411127918487957530189815649428173066847386958357626547576653152367657360012454900620039119530079728275761792230382507685885403766768312288438651072143482945681951969761928333412672206251778085793752407874748415154849751705745377837864029572789216485329220103181076779971495717144816498140382352582263921611844653034276813034697918489173808655439074636167657868642476751086732195938773454902408273086119324482083892656327830768930472165644429839292843253710432950390018114209447227615322909032679198637091191829963369658535781719769783422332844404282075462464826483427078631635364560119239288802836853756147580858728497011283302882785725406537840285341878314825194822476501182408753211478860953317862339794769436332994111809595917421743705727977254655431255167450837335700161752863116295999696591166860232739165076250147448067678713940973697860616080590317214238344819703457428196597067963189889046252271726211759981186324298683423492679154145442263091937053796447312754594098411966655591201883895980143170111083400892847287471985908726222250231455632487400539360800409634090025886749396850496824125369710796107575192671561929390756261089869830949684108392409076886818556889542887060901319898320684723888134483055049104913335359784535985314746855964288175377945945629814877730554776429924765834071672226828185613564228310136677805531271529320314845970558208858980018650680183944051840144639930254040073310430751372683266490764894792899789729876559346148807733505097150640675950421427525657763429367871093149931812580961527752597976815955085915563676531209311134807693586665504881500916115013838132701470875079337227082274404594518287050178345358645626450709077865504450048710064224595520823829994276843219918907551275528573389143725976421127810399872663672202836022550674488063759741240577119976937812481492418113457430689152466623827238595443678729840045283659950421886960549084360191244635780004409742756727976745960937489799104375315728622290061993569734018785372017364799513476586313525352672194240995618738145394074207706532050096133068231655264422920944702755355855513583918913417861807185378424447864575075266909492099223962160904203393801963772198729799956354397295644659853725397714743730745379225692296078570839959300326717684727735695419840566873572773678280113045139376881995303786716289624426238412879845981987498843459428124876630877959579465132175798596624999807081534415383741172980993561706555523624444193309945417614890110049366005966146323026575815199860099704626929948607150859974809016833798468523812716079601729635194242947756053260765116741394976212110733542425669626690652352477694017534658811661170108590366098551613739277824829472220005121691764598123024887322458754663187171269310138783544539835323143484066637029603249290119871829293925299971830577725961045682757433162613670021106072008779071195668400846098491299953168312007491491002414771244778776559523478044781319476713331705037063707882169682004067430070480034704509025540228847732720986965747730919860504569388584766114090849065564870130561250704956496471236797633813543521657221907955168199406335370232511162864670370461675033555687902615335754177843337276438513612984088569308369555669123845366667126595209971258007578182274433107270554574531963052908417186156289305525022777221072441117010143560203125051783335725115027735591608885386183212405850826213962276028400120756974594006898541080965526929839714559438556899177869399777456712196575226629788497121747759706477394116800137122391978911275364443521836004623298243991154481817208688997618402752166513265553144595335915963232429378172552134499972140181332547433678251696278159727613939129951452443345273127967587944715891797144629368155936394049544084705020932029204208629945311835230265488210270543310836103588007596383630449618388291530294884588276016778292417579140512551931434649318632083892515129392981900619909665163413058393443344458480086445938404878696779480228108224788330581315587342950612418036151907626636934841778957264858745597672450890977951358988680856797340950754842370840355539635773121166012987494282755459652776563526928367924916122752456419008480711220120934172445724833157588183800086885093424299076070671546852212511861939549174260490646990010979413448198128005561428454733566198087349684186731734984980006112387906297921392805006132075027555125756201674618040756940275043938804890223759783010080552592705158549455753933459118033947186582638403715109940429099137969262702195896168459939793361643205928403079641821639685603320976496867127049978160938240084183690355073617385324511074289382880659948863844709673952465874911803891797220150292196772445129729750319958518756585417946200218482178020882163875007799997946718986215519602853719336920664485043339040489775365438564400310734073010597254079810567791407213786087786353862400590134306508215725465148758698768226567161707664377139870247855404028392904742786353456479814399644958554769098162843581531502902264747676932685242494715470538395166091107596108684687273280880259207238324324740069697851359181915096310865568985029041591676200514262438165190936136067262132765380926119304095427040210381892007542499101589390718819779026969570643283449856141207089329557835332204757074710323058508848554068838676748639454168534116800044063625939273201668449504289095594980651147805800260302091536534577997515805194481079725631302926345970791618943260947160832974809061809254721598197329731047343316756990622882301587584250448277968200835299320996910617635861417420194860544503888050928690580164607695788978961708381532329686183823695331382216869143664229796730772543584759053600874109933918642961780522305950390452444455275957432715640409693455120070331916660753284992764576120165240227274572831868728679796755825502097503184698633472246913896296844222771771171110085427124224377590995990374836053538066398971414043286244408664912744807416552680321656367676574169740655017611597128371484145964069501830667162274794542749163881414461693870208576947036121241388710529062383135366410461932621911353498550266983924143363041095752541449229847063310393003866738192144008423833624163400767408590501016554615865443072073751792570773571616055951295763737718252421091818411544870244927501367935510421252447754564095798937932678289949371762441242726845747294212653697218092825654724793667069244663283933554177983081752573077134730097309271480348786781861126484937492462099387540183769464471145728374543258821979901912152521765316289227036065937904027610429739067512518523257089973303924579431417702406747925352245989436717970177113349967053026152349600442612717133764121605002924799350013015201287185046552932552191232161679124224985368995138495137651532829580011263524342143891046108462891003332526613542573835187277174627901764255442274736864284152063181650109764476132195542221126418641038813348660796458691747134402695427119986352477069876444564478387754871251186344570680727162018665742872616072503506327887044552903216801728826944425213835162547668750922279488709736850185084124029118741515465257553121608837532341232610370880408392010964205507076876282415256862381604452905949171966924527660331678887370012321613062403163580002000622811086186858696278308229668706783479403465515289936200022712058141955027238821764269583131748416046124466748033076289853604993941441395690534925358591652653091863317846387084433568251575304816927288689182981826570859112144155511225284760547868560198309039646264259211077814658944197604626964284794752227556638180638142164997024450953119793135136662507755698443234521982982425682096698846725455079484300724981439297005787312762504040446618882216559143495218486588865915435834357699405084846537041146038619298197019380168446362627080336427294913838457601131460765746983594000419993011965305784594912772580625760561943994610559719425028416025472447870319225182752590595614822717560732504599879558322628892717880937860942759997539010307472970081061470078814075925600821055141827912844830699139697463893672853545955799876339617122222396930392135966967229348158242301224391706195620393583007468668793721621983373398820943630591663762726800394899591147658055138257279374794151971765286952468525095611277100349460370530962251905447660011994156606355615449926804599107802968949014368033638732532072851595058848225487200179764021515880138291263710841203332911831699384229116347214630063516200617338150599276772224955384553878163570804094978877105433975272914385557440548879044899421492722457251009986144622294947573222708366484922400166681733487327541417902237473251041351846424444268045950590519138761997352546676341246929046886932924369966658983729757992895438038830692316523571886669906537013696140479821549283304350707136338787062987699342183453655806909009484625929409367472463473293150157305464316765111804359929877356750461813160498382307429984890395739383519336195399772095353326227829922149023868874619455477268531563253892238081533136770671200976743956357868813936993530897357977434427814646026506758327666981605957022776816088085903542613903194132620966588871617738867288948592146705733889625542507846535839609535931872410417949325603894414520285160604684549730319886165262098629576727678415896858942852681671351555497416657872763374469311564165972857826525387387005512156177651854622981569886594774527633782031654366558696320370297523428650786310123732506133144934314570889292926661507662668065137603888815197184546521999653404406612837045817453034577103021967611751959653748053885960181223538502890007576233887913035307246372310341124064446614713970424219766429523064602196447341202744210716781282808681673038271940252218041888487487964431281091076749245238627907154790075284649623972462653034624404601621247335786391953433845388064093459208757425244988660608349497263657808463653474615014656085440630587419768398264577691094037226421859640268267289795600111545876665306308784136803411314835906050033394183541082917015475653360000683477465443249813229100928710553552393800513636914263729558027622566691377683864255340504568649974451174743406658496542116684817913965272781398259655364886299467931727937605679689857002693859689150002420770353801587125318246883675649287932381244022697145060467407922537463113787999843197736483764719431647655170864166393200725779327718372363611513076050912249007916458620297450511636608171083365899018822278078825827165994944063588768157644147409018265563492166199146581609402614607841869309103722947732713550097013573778605819484557404806513731617010107186752528867372249764919050078737833709691163067033343855502459978023149443666316196904327275326054056910824297083253176122332682768206550452212114121925426408557907996607511080756173088268573708376109235189395892222903925964070619609587605004341568674118744258044071507430694942204615676675808655112469050080631925703882976458076108932956908414172271964152408426575729532555415582032907785827005771437286563679217890535961676647184996506422051501060827772068847879850229767263216332891017421906423841856141386058951759816918543666149979322524415820628806423777874261339358883923040242397597685680248194319447412317820175712487711101760570532855647202528651110689502722346377165472335178768144921299759678979737149573996581259993314057704426083545615297630082240328160020429675757084661827112819205662928925037320758535046067585117896558736716833037908650956045800086118166067461251297705375994139599173156631764564468667857246520148923751201400459374521198462692790597915946522588680323128455395699391207779969033385621831544785724865197689494124299601370306060695718099752641762994708057890285967703100648995951606239194765039805831052077747733512774049141259492452989552449091865912086432407874438629774054580898779878393716277066758888708265619221541416975911775523923649881231088291349618917857534118071415962860789124163876642427289637159086425400971832447670935425247617984984138232281670728020278831883798066621573367561707198180204426091209099458598106728291030110013549765520370378692620519568983729160517503919485306116177758834248989693896769858416305010945086357839499470835000908741175877896014696588829731557219527691559740351178684691997623855912751351971328911214036689978227389598969397136730711645610497801623975576511803166349228242040220939921038984558346140170815648039027679437935292881580839934939795835820178338877620419990883808210085833655384918107467163467186773213982804841172841886289087194298612199273158298454505902267904608106798556452668447961103308198493405010757200650433680408096621865495162885021923137875781258874053991564590891257352221690859900025242854065085943627511483457987172721671181937602880535705618994022571210674813527087181534705166652901507757333829098409455665147220995955621074363134629710512326269738246662721192868588499442234970798590579403447926907208399769869646654361718285683898381406980684904136956646928885099094750872369238169877677882914446585959095081084680899914953450267580727137090609497247505101635832122156558557711655621730101980945252884974766081118411713398185065488642047497883337555212106541160446370557971158121681950448524340155062350359349482021729029981453774025976487328164800312291979722141182787350161434018523120550595912585176751425630198611875202001700744100618076930038790029674136523448838366841698351269574723280735293406934368997868210471312341505271167075202560648908721385832710013912525956922433257897286129129451976018871161946239508591583663491364957138148134220899080155263480627363372804767420599381920426417422186451301028615295845631730361268601999949033925352890883126684699342683554448111784562759372490909179475300322355092303644673200434289165313805720293878311867154649226484222695342628211164431973771277667315968878269984160215418805355922117774855775170278064640799354315916867714958034297515177714621598402490454203345247050025593659086692138328274133290174117385427083358206261167971433997385380619794456461925106834888806356052801115399216740317281808872206585022286525479871418515613875668271737175823052518353366054207947076901584179518401065668774543641181178636163951320367213268170996988200864492524777013341762503685977229755321025256406711226411810812700490511080225105381466577931951826525007868999077206221734792225297663963560509601773630161280312505363247803754656365384498283772093978899132683787355771562796917834688005106857382039101550112271924052534635991731210635232018226898265420492848490938589024213539767986446386818054066085687776355906139093736123148255102684805804009140664682513713421400917905953191844367250568788332761218866332284636558726479320410192387450458829144380056885473117401225585647135149369609796735338428150227174367788005233368147918918968140358102909237276320458058647415606858682575984293310295071474861628519282776114677949208769186378439629317799754313453673153390277236361420056793207735087693579167606465279484814884973799570645985522523256826585499645800975874169814411552975486201088444209789924854824206760186469252750189443737300357234156271205552242250496257160452848374765385552249678322957196449315000203164937654284582918709221888841648659545321073600333583524105351529724062360933036890288845693490467628407458828560447825234149720487457241938737082353281096807292223681439730740322285763413584864790710766615871254157365407795162846457438776522533497427401473316893151505151483769817697923911375869901559656023008874547695141377209632568268367844803495890501014720351461603077871822866459048890785596813935094809205007203228097271751202423800009353819309089171991805806816807666370603191476161177723491728905666275259681708745429426889599326822332713826749058880613898273279966828288879991099537879017227236164872367671290925304762004234686982763140610130117543144922420542407440827979798149903054868171273709571258220438727242734482671229535358686135171323828643285359299642507208497531511317141113895429238093019786451102707037531978115051309160761405521666233226682304490428019265790273782972122970668263029277359163318643294188484248776534149882241204765608125206340776065031020616789117558763940256702498949078239323127785176234220809298918835502635813029462663480553425960143871760616060480105787317461563642970800773569350770619804030953902254926544811252023585473475485633503118882559818222008617433666228106123446205533910961866416345052376192713392318229221585531940628869979647143745688011066422678078256181140668446858592952835418086874648043572346439515272675947431404095581685272565926183270859341091171585584016055999394615717462414918350275348502100229103373061224440717176653826794245250864290208263232619906292261986651524030580293171790207802293516693957151857126328733947510891862608224462916390351954325512767055264928198326871515158417565014106693900759465151542123116046404858988564536504818873918213109848439755567628909636741875207980613840829970205469880423438646467738031379223110172729995673194381909224516509985735032153569287319161953151527390755165177424249573567337414579998564868585140600621830156817940076966571950701329331106479807666743944838547419915230189192359276788492795497406735000388678403029638932952245199505926983878227612074256227730674181679673334884598374234442874533219707924451076499570890367971094081091251140980574035831360104732010969804249982320488997164740750264695854163473457924872274130720515950114483180538287303890851380799130138441196221433628467737130927976934290354870441920556158189374522531850569193223119196144310881382582931311674443471220884108822482647896967090760074191105391364348580296809185710988671766512806497608737262362516033835070932123396795851798582630791037126399888321743110316768399279629543690897462048850279539333218491849626339220406644257166280464017305792002922409664513637436018527717906104385852653160697936166929351951492646434441481259605490154906780589299476677654707614192071567528208584658184062611899885873976394272955756463856204819420239828485204335470417022927065426047055712944106865925528306438785680205776111046841499355338614445427452865988331623720925797341344092090620992849933162094588388699960147523988546881165724277201173945658235168206546421303168942731790380104129350045790049721758060124322964791104901826041781957874058922772966999289153519733547487547359923765832330091414977597427505777268115957893841512640071953371682974863782527992692214882774067023131263585328715915928648887977531167265556097977751950886698209204003895782377491033700666142168644382556460745928329266132265798943594134515011155213368708579193165534770123147887009055382607166903805266140995905231678339359486471365068529258460020616477671943644942504292734345541246802091589281429490811902472473785575246594964088196742055924725558027053472104218716025123684467258039563866790744075017325192242258064325614423441007666882083797922426131150466881079362906275398884287583252898742910397009175497294124953460478991873519882152985089874146518625166124682927324443059470269997786171719420600875366922067895359179055006847453425183464906821971002434312953828093940829129740518590849651051145038845519140843760268195206712305075084829777450962732477627853058734511384998425263111316147968133663060723407138764597769962984638447138119959141497399206098441557225992193957785362590245463598523302986146129727080637248879176449180012368207996266644511956799717621057069358776293887326383868800741968394659491321783494300291928006248087610475321390594299882738575216464910323662595408347259624369592213306758830570608580404380069742574051017334329710996475892240586980855810500139176179859370345641287693928775455867015756383383319087801451502700460947946395484210319861305182469237481735270084225391034364750512692371065697572909402407117105948314421837540772694472566539369553573992353172141992762105499665939818015296132693887252259343635626296956312840148103942220714312829240389126507139507392884860921130155634788925020026473627478671787766816517593291030126605373717907327118754037878270164685297710148811615502025693309768491817203950035941623887455487871925271506551523268419824345408519721773977731086424105366776252880974106986752566259910894617145243378937317404961526310702072333693875482611918101405121628953000421845369543729514407767075779272302237853677910803477840063873904648617408052622468167886487466787058361592472996522440589417174412173974948013282684114466942867697165434583537396747867638276588151464972234408066276754330533084503859889885319140977231234860308510998048471809966903213072936589126665260244476033236828079655094813689526715578815505655975577518709978684212922983801696328574044060510105552717700926044457438105609168960710267599595009347778521740500140258571949541300453005600110553340131421228431109046033647255827324220464073675856122313573569137305571695819956577989284936460327593649848403048561738182896169863923900963848445333572292099103582072007635342155963989284934418108660185638467345664645451163638266602180458913036724007733067769151201382243813474174719478135370082699111267247352021586701640398560658688025014031664539703255423842379968905703724339733309520285253500653015178956188123821792893575568361961970281683568970352242195212771725752846001052865057824123995613664478767476797254539946712037269691168207389347825959753701977295555494621998029793872293660195431425783871136492363063861928476006484867663507944460286803209169456461217646313706963283962178724587802603055903301929977015242589775631918097674229631021081027095512764705667321736727047136968933731257899573466495452766069851968853569428072524561272127301395994674939976716077455880521221295063984822358542821268205862213948888502140502749318079239202859669003216087016727132701653579136672520158581123521059899931518852851705453949692491221947927212056595084819114118015097971361169895885392830462906115404507708384782458952482963811340098116679421928574241234336468787850582204935393249403935340333569757804889091582876549139906505993841791987877740812574579522285925703226510806045028601876551359245041116996166617066426629915335927287608304123637040885469177947119426284358374466997171878289409688516319038493187384205867862085316917385062729676418801854568507153241574972072356553653765841470807211762848819943999032414175985691593390630980428463758849517669002853822394355845797438821530532788724173288040281484585863562292240261035673699345015578100578609248068766603948274475698483118848557348838793182493732734808047623876437633459223081895771006267132892143886789369070443122104110068850549818438849642588262207682802222721776756252608169530944275128882571551876553267447825024563950174357197847076612965586945122307884383823245641331508818000866425884614164336795880765475233618160507399944870779964088426368299882137908486278073108906235485846766870102280796878813443436179692040845244843591567334719511242202576051920150360820323968927901256802977965092438439964281561997483848142268611085412372785100491954448679212108287288592926633827645295079088066642493500250055992668762427665693570158158351908423176156087708058893547913781601438459202989373774123509781146597996306587176826772127798814358213733356103739576352502942249557938038076338532069274599267598540680952130182796943671515585222036858636139603167420536341564449300312170453499977671632070281210327339141648850519909331568032876629878637719645097738013658294509091622603368406564508161996086709481794516621962426952093731632603551164853408435807483344139231634532418443736411153140880057448998946685296151528009824978871800340077979392796236863507754619347682853195101347948784679535063269441419144955392447991137520837337508552949877382175845272247322823056680887720149544749427194984246329686246094938886075583388364965665729094181720484624843138138777976445618350553689032596345512463723069074125335429781437376028013816757703194304018734980548983621140339538958979029180012012259116205598365658994269537880187289615499466101731347974335546636426929909640683593388997054653661221328746496332366010051402416634275826612645158103125122589777525393271297971145656708122705619149785356107841902141945210344227334573607837536388495863732991975344663419975152378308864929743168423209875682194920274856019151274620305444900014398922493228572938432728148651929288072291204034060990633655461567921508526352276920406315382693576032010287683741894799059702700022729445589198165366378231592867395773232523128081699512956804402643315254035047070248964339243566253215975668813773150148682709597524471836144829031335116278075799321742801792973812063253343800518193085493530742548969164274632696697752026206131755090176242106309623949956484423107420564006490033541082296637694701090339931103813332722791567133610242856614491214483255390489716331125156329003368108206627002259885430737533712043787253545785125981090480119232691057795122419205230231789911145308467894960149776293876565500871031757877313547683563564348085536703514643756952996990973875577210662399965099208931226057605269857492755345362278720679484289772877693130565618672418884060955324252589959153450113744969494723029228941980267584970715382711203655718957755077264046867835779124961713849770187851967298922180623538819499818454800044915953281312339048050948473872592588753203041299424465135980240076554292166443231628964968192882372833404580256898254001645322574948250787063405147137579268258974364678051028514450896521824492568661491140898986542491786913833079192944490583624096471287219035090477014992104267261652940305525011657799097615789902239874849489908497133680422761891202258021553370673953204964556051992505831163793278353832769761162403460541640947337942989441968688547937170747636657174127621997704598965243009435380610875422207567236921283362264286686147006232135858479335003577040993071244051179012509890453176069202674018373056467309379914429647805098724220067477667101509296058786478858544784654628259845658163394670148852238318647000161716480346821304252892482588707423279356293199747292192946974450392777499215174321817828625878782422813950928414200586123995250608707853939230787957687168986102292929296382781523235104598712382828387071531340660660218987444059134311249360741978887611941592304339913248826476442755592383825688599615695768652779276307277815334176606252263643422965525774542942324805249093971355514283520606047434674757844087586707894274990246198931016910806965242984824316428792503293970593367016294012596208430016538993132619035855281878580023190462867912258673204827701479758949740713889818981531310593416399104802033532953894582999342202337967311253347326472021794117989247464457037061214208102066407505315471980178686127321570299914242434605451476428414025252292942296334306010007367306331703552023814359283777134077374832387760297986301883686420965523939819043566475796643835192083095358218069284417342253851690766066976058837079689890909103404407425089170939955555954020096630846074414069801147779490418316925529464639320958349020182991656951949879578117872896964818351107013568315004117679526293294726546243094625328310937481895267519416589442717398823537617776528155626194083711615644133776723633542247301996680104527529153632054449695913576419937189115098738349132832179191672028943801759815097942053091834444285905502061693460487526103144804850350519194797487965854239806460408419431340228371752871474435967067038402842282939678367709418029956933318106481137924579882452825962127021841145315080776547307380210263365300390320759505556877620583337968234995364003341596744996464482071514817293593866696906177340980928120876622348188998082829268065127858060718234807397009916271754772490325378737492680672246194364717738187676446093974225655224511128322766410466984623655003098027470216526676100520598256310132950663523915000337801637472695341014917906782438158786524448380655218106400503360210080701135603302601915402475850408556142561128965020485085898609516197321524818276073155022053991309729713019761228477431223983998293662927463755836548818977518091230007371558543326884605334506933650755915838818799448437378021144433225114301323263386260818324268808671322804615065039605320298698844776035419761461441738934760936215001036980286767054053793954719730775006458927494218543606394671350252880590408321634284199517772318614867951343269279938459681344350949755983737257304224929389693904900941021530116294861948039314754972896462384530328407628080919656124684484751082781378849260835779326346505772297650219889254438834501867245375722753460647338911395881638234606179300177807518048325008159443986526230278019257092975727260284874055427206326474899324736096526492468707352763787695550503823732889522120482847680406179709353669021261053219886437176901182815553838996192113209612212429604106194486689282047088361677091114638105988483682280989772013746483058744271773384446761572052601195058183560726746454236686453322797313261420890732060526059913990106779064881179458531688780228801448205079686200323296967160240536494982723338210822073945763539490052362132100331969835400013615473183653436459342459771412466576130234798032512474991965572433772797780118104567544669907946032898429781579815716186941200166017657348373919872534636915155579380533792186457145527415173277404972833698328731618917497608239979398932737737575406571223944310649341446491258536673248494298714746306038302516263550654204555330728007474669477463080247544887064650359734840585610700208372817127744406916624582756820278184638245903905559932918012758896424949387369267843296740473647503788516903884022143033213110268264076313371624275849009836456198654175299435261154323556969528481535252554004165136036637466228211323128731263516209503769560413343242769231050711642360802709771281940438281083119377523434779545103639673724838654644753283781394306582665072933352146664638757260469787040520064822290766573416526599249607291577586575457026099757173535059941306715716288326512734051905672461363348754947258284063539882197911958492003809700163870437514403760279083475506864311927511652994286444422312816911532921707089790749702900660895196347238762087331910987937539735586505851714618206796434525883775114087992728801154855926509818653865377490212883266624143170949687629952694318911604307096307748414719680564286186496442276097848702416060342203996152493440052083061167174254162941261517202488546823074189944858013763921991251078703425853237386637134819098330104479695498679105126524388595873172998300933103189054223362280293493809410566173941042568042342668566375991331570043704061362305504867760180043262785355166730642313549426302797973790484794696206787447378895667156889155230085477457607867401271174514830217319152380398264376845630293386526338176871535443323255668206249656062073693702151868935881502356352859912762981136204895742537365505005387301662901977597121002725224301759556691668181742984537104574186326889580027999705976258093706260089338614493921520704254316844266244060181665674384685518647955947829104584203230795331017312154851988103635537743050558402815807156733569802190172618336511628690527536008333858713290402647367010358279233419306709714799841427783725390127504316803762202913346051246787474955951214414186663714803826864555266019841113405216111433823436337505348587772743232406565110145740501509750811207332792272858451677536489064244036731868201060440512092834230326710703452155855100981677082760562524738226130131482430937596261057242605061488350476021580439780839635556503878050142521182368696162116580662943542358359402207123554935459347255286644239243362942181376367958589308030284010749801163271317200664008612580700593378567020148492009933183298837839094734408352566972994818680664920972223326096889578800622727461258406722435979674416662870294201989411308303481702247851029646486233021251528465670154453806569083914912404800745066118586753189511182241609479108967235926933563208405575257598694736908170862755741003201289751818416327687491028140630024973042233092607839278531108026526988400181085839461349882884298479825362910296737413363592623845675234727186156846062420378697430140534571721727159469007503787471809838723878939979202543658353880174719400937774472938913350464448391646493128803484588473529810767914621151640948888536612670172419238814778950327185763253542807158413294230012799836080324793888427491735473149828941890713779582226899332851359999628079148452184187799819451986709553260089626131114546255686599292544118345257539559879649543506840957195641491380653902384465476987912664482398947796561180100158152361485678780105269983406467096178686799128020914730653545804898363247683049128215219455538986603808999673078037933263317650649363577111693103884503691316180442250692170814409229180543483413630446229517376685557856029574733181998021666457274514061257354480700002264545957516579350771935813506843895336638203660737612305517910207401839580098671391062440454140295849188961302977694011662849467432315133136948320279941853330429329301736895358813271239275123180668072708572131788459113006061268030847671232965818135837707363949041811021291519624665730081081376598901577660006882155290744157616548487253008112437989160937510554848306574535927494336396776575600070888763831576034957651754833105748795777450768204382331071062129813534326779887934316393079991894447885125351161662368543620392150845336560910591041453359061610382089516571696058246251869616054984769875541415499017667799901055586268596233832356937854950513394150429387951868283607679565694186621738474729735307541015929834987303375833014018193287445794672070511932957429275099305340877225598120857282108886485361789912730531543362518669726006265541770619684229081498438302735473841883716053501696726410240508722604244142365261391880087950482267883077941036919362186442525101736634041759146086910963794862054170702498472480979098850582836913253579686093955518747010179235041536943568383529064410548661870024707572823179916759472731228940467829259757863977188925752805207432324122969739966975496503595847965347325340761655594484391716753877853321184833450497231382057055681705524376394950784721581500466332480349624637341805549059366233071698204024594434308174242488997391420571031130530522672287248587809186858998605170303864152119973409050700131036667305565596136538408020587280276106816219236530499256492641895185355742985556674102307163283341147897156799414233337710886966266320205610793129141511602688039220493605383372691414276839859768865275044378771419387606615370417258674228412903427908078094984419514661815058802845305131027935653149258193775256234611682422817352111142080414965759362836070505596224657598769530132175720250962425364848936639851270971180768484906215532152443281561548305845910778665935640532000364526302714292022035753975979132410939052526597512843696422946415752312092398855057127790066895783216569336973084254895028585229814863273860921786039259359857209839763115555103614551817228840628652033441816513912943288055842723881941236401653549794423212585272695954163012867690901577016533974332227428124577458280119562444866625667678764827004787172776122584006793331958512920806902823689894384251899690572361138048136066807445247235353629799394825800605210969805693050579795453118915371805588192490860432301667828657966483359399023364536917203499543736591019123288696151908305132589421934101612978659280699185771980362499805413345327728557735106215565853419932066410682489503342648241287276245135000851890959120437051288336484412922915044153632534012511403998610896901445630732334357915143630377606114120031133364384211480588147971590185132432102119122239003887635324982770496992109554575427056114645743598202303601782363840588902073706291872008501988284589316880387881392296947057892660781305194552744231661942570303856113961332798018784821590607963509622492214998946565370137527035610729163862765645134666061221542621080607821801266047002119319045948812650360417675587142463294031858134274948351841586512557448581600711414876663313644404698956182672214009293256405837787996526855236648633151776533132975920073636385446899037423867269485114966896396752647667887498293960515640770327720557716980919977758780445584382734545440643084243167176031325616577485905995381353935884339436165166394065940876645088831977948122769788031120230332158326484967093652043476200353001921251168237734935835938344887604820331197460365643766226899525219431606415837992318178461185135889345091820827499131960911153266175343612295065894963359629103200524015573193887582250475164865761129181084304221614302691927880455831590242757098568217717978176440216098415080171841012678597822811748795121097100607221603885444932916501223371705481083595740206362223754056280974274950679986597343459548723103975769970944164745011741409668196453010711868568991549365214506524253237435976953965842186178115667005264982503059028317282952419312519620509761747116794268569214553724866237417880607886106449262241300730662170901365452664977485440736354129483394939701087635577012475170957579229941890239042739018161414921435758631166815513803357456503092373404471190515675424358324123979405737432260575811972024963666331698478503067869531462062656816629583168338132204308734001825552732823424422487394199925354224874630164912341161586954654438001934529855644538120391004965534452141868958951526744825748047484905751717313270095730973680740340150962196636617053827873844612194414693603105144595402243051832690358642131418582537451475153738224411116075876667637205296190233396288406720599942405619138963791243973561082235349436220287488070346656330918546568259193610682230106355004681323336589631070587201507796535526479689185485868451938390485532766110036338368238336406309692598954448896947426487184245836937816062810039412678118104066357322903694576211022510136104965140234918085783915943458100578406516893077506748404834321808227853671599129396716678029669375794223852050082769820663931083140205474649578015503145163011183501886905781460847434108084933093134737332363860205014083849215254033833109866816428774034368065894530388727692126696956124670034883706242087942733877911966222701444063758266201098803633201649750078710098849720410011330441132917811281532867283309105979347115045012213503597572428615007988480707951998909243222614566041627002371590067366825493849832829754987271745719849239210917646256769823936072580344897328537490809514998895448972708012822935351374283839188492334254562003550457315838887255226964830781594507113740037515966895319091351834462595635121683016526729151386749363891315102398171932452533703665859969954454103621721678382057873904564638376889687343370733575583598768167915623618863573987187724011676415170514515151356571125577127620892662969195662890504013934718481579458896283708166394638908534413252520114041097293023477892624507719216154728589882108088873653003175086288721862381326433943454464952705556716715737182656831719992068057050866628877538927535869037450653429109494794128192802117587241464948534637229308474868576476686896964093458377814244143866225439249948418675777034752675378376799918643416824995801942842838917365776178664458060422657773879632968722052650749828691388927264939597296372961984600309390503118243465590233582946193434688197811950911065475347710984710517020489326624616531392770660796101979827851478256278473008592760832389335686225658290633446149040281978980627553781931819447260328410944740661767714414418614224884007331070863214266129333782730129060365609264389454917314120352478594330579037212905849922855187235347422973944729211278555852865648555272062658844759938835983428820087811983864005863369759304325633317044064683545351020269034673167566663084926963383725941396604637442879268000509934016311999982418657496772452808780353067652415473335580012394417232155907410901636273124996200035055526417620738942945079795158273571565264587847344807253543395659658021129320740924153378886636541785545358380246752989324684436575005287732651147000759690426341383422018407839411649781108701301113273443430595867361616257432597488503208790808122990734757719222408214348873591024497864110931247080022533298191717184342075571640117326779828589122760966491108821055263535475605880443698056140119621490540054363681039276529434677470394499760956489320248496893364521145742000320859048727922135408181121849705830731529889238484854150002900959224934904477447690764184613491077754039199046183322213649341727415188680456363380191490022782222520367938349328156951854373365765046729167426939314873614624219667001642322709598417251288565870555238548511484994027873014621099333995814856672061228241906746947726557906133061247972087221039266075341567997226454518910914397009832662459322887413297525652728406799605843236194134221429504018957429389749530579141722897873777257752687353537964223051175472369915002208471905399196973643276561447857171792925432732588216740099891169443850508117739800768245786017889271778096767258815943962225225386882336718438500031381867286581506577108369441774654077099538167839523161596290576543912960800186149865656846219231270979241045255562066929223814689975372144717461354685130929048534232630539729239836399138428737629919401749743821049971067075414410488538497191589881925814629638227205885971932433916400345704203785335310315447134678012807291986705559612837634683854644747075733158775733268866136940591619265127599119641334079144455259008104368008416861337735387187219813537857078656158999175383859427622289839477418374511300916603763551298791254868414902205382442670604903569611831473498795587831721062571006447268309309605205787276161703911408851657357445622270057652608494887301092549700126708307761749785519276875365553534522076229437799253229884247260128430790007735168571288488588018130412060428250619533413388589944745695986151735961931536531205992249716015961766586628201618381060239516696642856961937810835001398871960586760470877732827273112807760781512278396735847342676432924508032750083162768521864517097794977989249562340455860734758391045937995824245048088176954097753286930906107917263942169897936624909845503870684611598660910115236078576608109330299372040613816780803995218010863791233378393127792347202377787039961961863647489479606579208541733595528389992782673570412376826836489586031814659055360323333206950046797689474183195458175793970969739741760323475441201619612241585995507248428057524227822303697740852396143376827434485142755683702955814444380641500538783184367006466516941543591169093368269431652764843592135443463441743579759446504462647773974669532722680542683848062663092479334932101695517185661947792713222657404079607305385560473373845569489366775726356832800531634645646031035378173032645205630566269326667716260242995510767837765803279573848874892958525689389783202986977758545973450332663756895650768563719745336569176536517937493008278570003023088720171384263596459417538722666077498772501701248440883816425300869316841304977593374442492765808541477903166066543840995277271702989024234640474458712166753417808416567907044520688326222139422043177638464940035766063134495180548415051126589736465627525925014220808321560607162049559437821423351121922879222210821893971372161284251713862922690854670654604173726430302757132168113707694711298149718792824675094324370275346566578676400294586280663612556627346752824157495703801496941253686279228241377002274898970489437163655662224337169117255257048552907367537948506710177278338236991013260779652241463367675461385982012391797505232326870885929896954893238977744471158874915555213671107902404905819001954280754140232759365640671018699188530359633718092345277194610662790067315529711425535279292770236457681501401611084355503969095744213160988249227163858523169498758441944896792285427633308672900242371000115096275518585249509338575808803082825947097397438456706379966218174543306015052526080969848991272408409656060989110585360749069614450392644867408513323098125155684718611775367486894715663645348244947768008277941010712671691054182032018839174064016254762677186103675140376583429880538884486038464943938539391803766484656747398726926467180164458716146897961409925208212317793684646049429360610021514968969351024166235346753337546906192561083660387033964664593699410725974355037558670744742175423651377564560349017131786681742151591754993517204597015454397702095883575372431298762028538777384812047366091198733732930050889734136913910292898627295779229306288882473315141961705157574789126304375966531588294896962791493038970942633663572829721252024518085126430414884041082824141036010944486681428130762503886052246461625536186956067816672926421881354671265671251425718673524456180187941802224932487541685076054907130640147461095148876492261057923751764013731700086294251302305791331733170353450967726346340161846947672569922181597546025745307632954999779881587985972309842557262733809317490338003111535899921485905013325607449395910185362253365374819064011158942347537106503507500945326711188678800534207245420129996609939880958036526487928167437418360930467186077082274722173298212990683543513158415904445414416394641800670294321160100714781073824411439709071294462965493579042482907832536039811288939246579002777007243269323348218976033420227369233299835147961765334907965013505240131249107679769182381703349640283927430750795627950023037164778407684643279786950277477744498405685914474746439887292641052116707392259576716792320093988482156329175787953711354573590066792927041627156291715299820982636216527022924990421675968596253701975256454862997744500598217474830975407080450154466493156371205645672410089427102199483213362870909407514106922637807067422347618531107528043885372479133668733539639057161010697596017241001934990886182481598062450104223157941337476901793120028444513096126897529539635852816759216771953270888932019610207799257159257215398623486823298488267316439070966715783520308822442384439915447096730300325215807979076651209890760750298714701775463688308017667693148137574474043606406039537649726384864178589976434658079487830486468275580859138690974627203510142968817960719531994083156602632551140401379367327920478109694830285473151586475206122604042320572487521915591386891325483025616146797241761708947887507504123345253408231834002291005744094952877914544808235033572705159069531332915151359833284483012236818284229592049796520470084278574331355250651133367822574194964852385649758754579370730780758266989861745722669052819504912506958234671012100675491373868407072500403295386865687181556561816864324831270556581923198673794652509005563266230949917801709672298254243406102813896436335266796882205893759922651727001885294328764748666733869717599044304570365593221938812555055074460154259332179931223520627934145276842004891136081247707440546994465897652109817794498593085531773820617316069301101113136328327228622035464028513394892516902100583184527566465629395956620458632173877108992253853804611820438534957267344616086676311928753821030434160944271230619923947478020478756606941986287693585597915708263527857150182023685360585156758809020837380874967710240062376988321423538331735223300217157810316921194294446116489714473448914947379990475119069543784334592454649782955359923975382051876904964973319672584628281683806175171432208362670427536094817164811286394991200949933629903742527112316789279339047792487901244062531416969272886502855626064693757767043016509453614606396645676256627829046306673712691562016144677843713083944210786073273596980542288986305302636638696194272331700381687023031698722901720278165985973854303573328297982714363837035744909541211026388540436321873427119136079887147410846499818795010386246002557804616476112819177796201182395132875985093970721032723459640345507439949397305711541562474228653499014659195662109115824064359227226373666535301623154681666704206316033763448342397678330966843652671572429314029070140580265697311914100655958207466725950423782749802393260797211863974750224223272164211732796365844613174596837925146566254331343089811034206956975816817184323516941590259715814042871918467043537073420636841186789723238712025178052200728774667601933319072560507338365066983433918582507513491732795446058944730324646790705369858654145982505612268575130008105937492211568854547369849800981577220683865958681574801328306171912194983137642434853593845263656572683606754050790894203339791516184017465381302264202677243225525398325121962540063744734480289088340145666093693510235188802798919999146413853427440060074676099773208131730037003553845197616405531915708685043597187754489361234134174292535215991217979465523742973930214272630935529827334434482653029885106767622559016406931975541098470932307221607452178958492437942100225595065806730588658105703850209850847820185511465002847477693350115012797815946316783995539882168982098912329549404163727597295400388951331989052101067419698229919080190047022756787034860370805896244056879178657106283210883862012587739415564373090678304721602934146194276674426899802143775823811068169546399699718417011689688605365848660082257474358745052213707684841954196026629278613891532319360292730926328161246380404348038065926704711977770772221682532521878705563052152306255944719373979671590723557164946792703055305453108558381027265230903870657352249034073070626996537889205170701430125147182197077452084899338736250962875863845900039811337008907870977274266112749630026422067132678168376462418633012601905185213781221308706371593790488652300238551951875220773484251154518422968064557810043046662807022015042103189548426618926787412309133665985770332136749975714140442958665073444295017474200718335444025654699300853770554116547396761636613388685123778844143771416255251316063051600011088224930897686827052404844949799985359445233537127862151416674068161742792671668351577034318069636439786282428121671634160129742733023911525668004323833445570911088294584652359456568792123136280064103261754698770840411370516743662336648472323687985258736995671739962720903134727957083769682067470243161138715366234904186990009785712229337178876284318677542098548172635891831896102875819900198980862945829721298188541283478513062818739391443020128778728016232446809581985689267558466068497889545476330276317716528314039138885213881287476285346377267358243720454142349759325593914456619844873147795384244252711502425600558866994995466966550061607076825339727062385414014145075145279997236412583908813067707145332080330671872336491548887225361928038369218004954232657859100958388117610580300612394250578722204823616554472291619662682572203713728901325523698728163009680724328566089951287236460841468537083477437965204852923265043140559340617899533857383802366822683865530754304657444138025123209322070361392533266985177249744464037669620277061520838847438975551840873180450249475666549866233964460953883942594048428669653533217912202764084530154022592177169270234729424037242197881614695274132744260604406810201303569470866906344191183998045151899216640270688343075289783935205601302818633116679320893973641370479972425063770659472143197464149047477308812540448864983807658223299530012414006929992466312791291015460601764129302430184952867067192174229898558205727593390947305416390163940594928834899443175773159322130767117604974555810567482937726413005184715716829015542739102412464307567547270251703886431896454500891089682453026362639866668155885509492825247805960354575133277004638393541362854598547059177674724845496305276020328183749222445685098716528039879054147049502204036514256894276522497478908599840433020681111195665721627820010786567657190094110962554976847746494887223952434089132105596207430775753951167865209176659238358588700932004279397336467754963943743060071471748202709838832542754747837729320688878350788342110443583319543376203037788824539445516086464730660601242054321799653668638785285061467728454032290768962118650297455372078618196379637919191437995995006483655595599816205777539226551125229574624515478899085479880415242250634671812581995117249114052984183018247781477187482361634083646859852696178559744243336858227284026931665792289430412014405589448798360289755178264882442351036293961356495644238906241411952706072828887639372330570029495948992943556034503760836478587709827347850456378324248833338212838479784598741528390628049433907801636276620256338467310671457658398370964606860517129314039035145080482287900547008898744667403198336003947988168129719713405367063546504043020512833679616337992714759870050932685222141803867231023104942479936725199209492745997323281140801032791337404237077694781442945550753337610137290197002202269496802756259685675375087057991186106158312291829013052970480129784932660987751206486910344061248654350221655053962099782108025891527856926083785766058829144589649868202550039985391124158685071452579728775322078394785723319732534611301911939647929991121654533074860517327515459574430277306791174278786379283043650847501383727761734618559565159346517602569510604588065921488645306493574424857146325468573641132110332220632342686090902983728613217424533536812034846862833185542279781536070050137354547510457457022763829074226453032586010702999153516055195567512247579297828540602766809996136490964124571129274377019969167244324705052439231483235454393087441711216821500860330292157949459624162137355693811922658412681548270470133741011084302366104680946607256941567776632638195527550363836808525939009131979663245195474063740744186798059791806466180856478714749617145335913368522761920209249038046054219158501460118106194914966845112502960481241111241596432575603277031718797950255137151960135178328091107117854148960790084356544927489339516228139668190718714039295436091371375854095352783158430779462688710418975894230097771809743475659743516742858817710066992179810557514155108297770693275512828792697029230993697284855234119879841384293740430922728163415717942726669002393682763693050351347786109999616097445794887240533833994224800550027730900448473867620371436870515473471710366048410201272331060029953697029800921107001677547018869308843146980424775871725630424628372835937450809962236757106112296711982658374497953672992143057929829795759965520613731381130775273539812046251944123211554678022289854649532648031933141473245008631067625608602901860368348884975384729517860728680399507302280133348628529342214772984609929353156729024258740714419193881714904357148573332902270537999028162701036133041250856215284952329381341938873259657860042743395517490303670400789038059926773205637522546037301176082567700167235869196663274530784177441594650826533754882988456369827285068258361225786393879114304051974287576619936890932009870881424823853739381729757191459842250036066438191405980596686782541622209346748680502700365647767822776979204539436902847067156789931255467056425301120731196536272959015970087365459646224479714785672802561463704679634477148306836413364909021878389565907045125395660364154566064039288253801107431002414474978484538250663452541290000148104037414123875960778218224940152917826515422341651065521059302563093821423742552988670099851414832780097816364945982986308072835962132159022606127945056341210638757674842813449223397240999741516473677172944441052089558091725887245784231950872601690309072942737865527856352051941179396657124901970800232944085444115819371590552694204077907988653758272901971888639349306851520161146442048562467861215659767705466217512274637171235285168325923565935205481347503368498276577084163677597711164057215546453768026623538039562389898645867966537449235630870680670155683877739398939303011004481917814725623322236214697858070531708923663927263440149718497459788777524955737724726506950684617340121469897172353873974870227582536508472433714568808803404892329916938487109509757976897965923191640054988002843537885831324675526730148498719842395276453347776920670418140940392922433212450490797138995984404803172138320980130527606721604906617039210263723190326740605748433479619484065408345769308961424060533131878333608694100554793729484096433650787631606723159289005085623072187059314878704230880924606085244392227766458873540695046209661135799457568807434082410911708983174091473380969262182644678340174883747816336835095307639527773611951891474579760529054087220350013174196177128379647513359184496524856159320264736086347610898732762211036162563913543430558746988095330174960315883033949370917190420876034211814533326260551601413077563283378888154932886653231006565156102339779750852606787776241136029934849114560015797144345755563423830891961332521356705613404726601375753369688883714542930911241499159527987018020700580139771158551674071158389398838191234631151479345488023807618002931188384529635300385228233220914093735707251210726980181290554713846028293469285286804394931240599839412009752155818791472086442220715013389848919974800779605800734615685144782459811867151195071100303186967804970885787315615081494733936301453820329496447261875007251885496054735937408918752353441570956923479912664217429279325146457206414051762109001679077624239748596405650295300831436318046951074715039646019003351843731662218699056073359494381753813519901427952992850668175851251851611446199361940975245347355404968538788170301002067382480874814936168615376984213668559632473116343022986345795708866583437832276519413355745231891445387473258073810961700715860098800559921479936670623691697677948105266417774610883767990593403258705764193467937507838801328892160594148659129342326990017066206444977842785236582065146899021677356942217981908125028907706289280394367954539114389147994763660298605891078303166992361388415299016210183082337481527381415583803941076672433681433824263855131909568652531950625510137074589876866170637279569898860049528455335376913237718209043299514167367071472282933493821508989836910048081475279955555342776299016551767316151777566596307544490694932742933436889303372339697220605433778304319459812235231854781669391603667050466185997975841334690544543416941117560249163361906247191769631566185733086420635885921188761968030531557012972365842500182693175408139654445737630647123401065489065070614498469826560367398689245106191029449873318305213826954486827055475972353042651548991112006732119242690099565462571390075697036482338540689539690544280957194201617399170292288478126293766841352937677688016228376699254392385078499091114873909178236409876737370530455876328441933866866064698299275327213767624812400914439387519266473186805744309876474284016485713974810514877688501153871304735633439453643347267115805563043999650007639199958359250268717084992772088813500908351529688053244767810085118194709479705603423908395326456169807762134092956508538790872057459115277509932096494405278869035176013053858254280845850400717668776508955216352869805525119268825472628507482084784776406831069162171352944793857933871422663811534462807121304191193979713615757024059051054503005922380928051955294658106608265756400166791749361504304734327630731938251448759349738003661598460915599584934665006831927241432555859966004844243454577158166620054786182412971048332840507175196917284027206808520426863642885612566920801561575431750912962343790320146366937673551772402438010390920702786625787101885601012804541125533103777824080493698768718657316625430379847123467100708651920308803032359725880451695845639297478777239899872105531262798562979444177218941518901613858046431074991588434994667068597460810986571442682800539376299066465771720042773121020037035180779468563336124888992990894971714684529664113113785062935725943899456992340534988572219344058322340852806309033973904660599548449763338790729161796292620828469470234849797433781642851567431414026979848592793172524550620180440926299731294875268390278527391886473230416401553237734722287460187182580948526802749768798207387321395346283075212120087574748242936037128254637971150608270805086777876634338265485669319335091612797602458425594549347462322670725869867027657821130072413726993954251331749085299967151962059103923688017887648795111833398503160736977835226439912492516100130031263074385704779963881927230158918272276553053459932801169345244694165245806677097317163874570354349574810962660937145829124172784626128622407325349606933219452677386766588612028647100637551938118285649635898563398056831118152988034858784438921828331018897586831607725189328747403276985785053890116610396572398738155994475575319368346427961174822106953133804670937482967794220164365893900473662662948227386805969478789662920945826347198933638964421322060726952307411959491592280233719363299294121806282616149263235164013823428202344321994232475322826775518056223265572200861350422450057048060004295910633248301980750717861310145427432756806588493772947768226368646702315879832254614830487690694907509167199788007719279807817300080472820576174481721146100322679460640715118623389511785279139209907901205424723339788620095037087995188610783425388344833543515395629696090930180467786591544874840742164427620426603760807768966770731697039317073650809782777559555824558229959183267057023130351382085912136817338823933372820572731224134381772369126347655228886497154071817989381372870799789117709356360919752648608749473629170997854544439281370829835362755841825879622097408658996537134992450752737333129673962966265736155353912095293396856288578061871197397554281142854210393008824244414538528693312956124757776495186914495157511711905658666326783120394021619388054354648774800135638185483021513003990986604408440553700277325764493854797853911909657480017361686157577416830002672437223807672663137984118161636088590493245088247058250563651422683178847346542146475027695883799715085818134791360638464551586574550840809508321671043587142297070015272486887959151049527486576598536604755070282179120102300394474795712678305255197557381237701812652739269860191603289530381415701403084044668188929231807869943119553547960283941784325948182151657222121312981859621032700181914645533587999922057201458387374007249121724431541838168022986309608785505467339224652940062872992248358378034280605581309089625584959767845694536333251556431133429092516119963533331863500947752638585199470114754507636460650497791523237601551707247383828668158625074332873772314183246714160118497983269893252755575331338338688127843521139128615320405923127551982367774810206190661775078830527653200000513485745951505293033077090678513932397227407155637655153191056588947161070552093916332588290792022571988326665820830126563153644041146710769327627538228110376820449306374660152622027763360375957409422282209506131674615020399585761426913245872316071395474511139302849699119771518436334385250956576207795996642949435065831234250544562340548292799111932515327163405003104570795125433638531620511876714767763534455056458244085560721170211834008319813367286133646674867467174695938402779932014677649372918693922537294906189455253211853807740143304575527913712463470838772272109052430428881056746049608590620274305968362097984195810461331151266659207546667389937050944185960913154997831416834383272944069406023109820565642049639099161277245081023001430648696821372425078392338825068744328518220280252297539479384639147033824341021160914205154193455588059514616469138773284487867605219408449194359182300884750200177581666578106816094027522646856238053235256011372731880679053414951019574787616808371916794777713486588521948194928640876257707831534240055428872834381867523287422080850841262297424144142940084500698643174586208028706563727018525926423430120728244787233689557430201630163725464578039374830024977851036422731166372788206693391879526658762646519696585390497340728204591348859139491159636157726841786818583677886231196152171624567039448482718310413042693923391585265519123577792360092837376129163174357637401173752351965339324552286040685030222579253197464693940188784590387908085041062720507230038860304051005768882197499408449785688512267284068389616771812125578722433145237775408361565447473395449763223733008641356525413055963487093591034116626520627208582318226505482127159621439969352183120134282689272211303698164093828013032563438305669920987193953258204462318463347689159135180651900563821653528574304765087558530334815232116717299491277251883916547270393463039022294337297644579301887600074777465236947446095923817835494744291072076215794418750856567296565515048313088039071509354779085810985236659035816730756420182247578961371382045807653752372780830714511932002181689285147084001412712877248920810382577991686574896035830323008678142874258731104540279485898488888558782588363757301813298434826995664040879028133068930397641735741438366662720388034566997522906065863818337397691654439057949545885768604150007518045791511193951284384483357139444131766348357269456778769112198440488203480091605740187168021252639461790630283870814858862606913801778224304728305442480515706452776917783052815435748773286250236083275849116027277043209057173081216682395780948714398964245737637971079419225303797147775847255931475249447157019414707945523346479289281492678934586180818208879503845269031445204973653924488828495586777590726756699150800655430008507269329112600702304245316636500012191376995133956391821601878615617798725428439079003886292143569107189863833542012323869435177203381914565169885821558550356405498925221133500794188234682181371112080785652479900860031639133191764689355119514788882549743638515693513464148662534813480875093249442245742652147567498418230559430076917699419720264873036354911550797216506696182732427021327995619312747068674624553577058998713683972272924555318099793983133526547281903270782009803862222245568225178601549508579662633650498045171825988814961311536802502150030978578581825755647357469251768872351817647539994923563686222892726900334068775059562668492448841010549229143721265892641676543623741818380117556131277571753772704446694592645893888847498269848962158846437510879271585265399489422378956573152942338939025925037910516738231341388233193295267729537747308374503487469844083288197756794547680901856898000178614735362309988282864891407066049978648913074375218832142198179034471394401010140199177836224185243927070657976963756631100886618120925202813835878713144591312904331529531301819801967788875881153354460853105874552996474951452443768908636058061413702610655131583652667822123954480786968700318818108460677400709176787255019776133180203289324510296723099272797284314272230241116396444418856031082968969607393520838644727941425144684537542936610978068694617430839631008724688249252510542932570063259199360406041621474595885301281155164444619746439655868229234086550805876215500612134744366193375847579213196195283030486387400120652354051582495813546977706239988926845153329995388469227112012634854423816524681243409965377381669040126262404855255029356702906119144512293780102904789189793106647922392752617259711283697823692621316213798197300238435263454082423894873996531779679879915537533574787171820388697989088340243769973088250571873646306789706139058972785875883120000480295308743686954458441890935320065667872192980694407085703882031736330648122683639876686770687537215988296614181070602585287037032261580795054461783838165453565244534599126544364966146867218071878829526704274739548127112155470202592429880102821238217386688082000735107416749758000431665274164980018355383630614207949661911112928178642718292786375330665516084119640498314517230086361717234229868182187983949656537327335320649154515707847265246113935723284154103495691328331955959642964555228528718388782323833836064377663618993366938929868025442876334661870536570256256136238064217419103864631842285401695006058296571758101207609117770809100315778940585981918853914343847730356302343545731058644934604330272503246347777782087823592915831089953830897847807812259649192228268109347708118786679593536268556070452646616585118564129486867415839618798729034965070650705916734842322281597937285993920416480669775853520319845122036283222349142132760057137819369912977305309227962991608563125151844518336341704994019533964765609484752389112808596077052858412173323295475602493516826419654384834932959623082319204268981528085723083882456214116654743404630850469081696633633039315290903259907830678125576552206725457907057823776694795911598095558916918045763496267575167885486083572731489610516160609799951801593695449323950339622679760177646970698667003672972076481357762821772840212951093584439476091338390959968206797422385659191219159849564390010243267761686100504361232675310457226132348930889446312893043311994759514827165414803620851943370537894997643945850209523697971584540221878085974943433208725344247417232276172297542630925790563629863782196909454264123218312931368292350587579480399487124986402741853876063615961040426535790332749892187774914302882370803631176429608700312088538121625278034194959467901720971211756885412958198172466080474289788052911751625252652877062932526727531750148999498002391824625775906655761302914519883905877900162878810258886043296415595266009525591303725273188203145433133777999456370904120195578835453643285594548242309286364670137634792627389872231362886726609496395121869421938949193402344785231258682731773893548356008463374013274530778617243573384677125078268837003075843875396042000549120522041829822830853624665736855024745986261774111911206534078821277400404064763072012850025338110021436182466561237321857034165780948871996969166273836629121332711755475627712995385536974105638532577026181462516304468455587920620979838745892005251882407391235342176135920982852518569554849702902837702237307424548128471477041522664129196319918984760724666143024338003012158239721750658989162036330648360888866475862672189240766404539994295725461209241899348419252760059498481160719976750406898843247216336379969661871939507246205873370820597766936080490083650820779064976830597520158099481387151044065816167124434345334522003809542033531174686381244088954024414848506775161874951609663200675019549094203183516601745344864647337043354716684508223934105229384305977229439942563032476677749614838678159860837394273439314862956679185987036829264540238679214332303786856714742477673579505397244584809397578397794394660783825229525645763755996325335158278848791509252710128401450981427933712149825739678927291789965771736604433226123060316972797114329564210399644374938598561252493870080386691664624259905359923223671503412224417643490031747929247160218280989421343297648020371283423751662562066189128908603757690284191473855182125060976400786385800141214217698457670687631109615631499569507978169208297384566502797003344487875503214510394451319779463990159782867948151023813071234212884390346705155289672576699246483708021840723606437292209193948324606707506784604527205201961382063978166937152945182780968337350739559634300427113557123263842863585880627240420917294642904519672050077305069282264546122268470397774227496815149260691271284523976120818751753997015510562669532779926344690062091308896963827752017178128436150153509639810376320600458223203510941487121541759564262620815417736358132800640447301489030913489087583502102970391346104823271814317609723312842782833923187095180459347200900987147211459903589391914908099050024466843831456180286695254816970960880267184854097632339599244026030675591345805691353808122958574099621815909354762985291824622549678484842832749269806919930920223532127412664699413829569893718628330123061104115307046355276031853077004660598650681889571409059576413561301805843752507368561826347173682407051396114212850596186047987998354905715272093841603197968529041277892439062607893605499469118439144124603050477058570119528732473640130911806908681943946791998177748168662260854132748278985256815707089008806802304118888999237540307228520573218253668175444118754358087465510853336282907309578257319909302267709823140617130325748233022673228976216946788675431931406195355405708259107555008668718770387017572422730413217125599884142720940465631233854131424749663272124436611214327792459647221362258245627038597730225451427757772546721801325683536010608793364041817698715943776057810339302734694459665804667454755846693364028822966060580410265064352083314597674847459620571466374065032719353912987405220364856990564629588528407258722798617449101733531064606837378596078726872318310557264718678895469069553063923449530329849283739780063312418228219113122444246045892481008206348137827737388182156772624607643378883647485094088070878133367465928914272072329980473030534855338026827039573558222280666860896481476553684172004550204450685473498138437908931097405579945573375523508905266383424167002430455439682261888213360380894467708082779679742017163470979572205483925594689121415655629306777867648448903347581406365492045232397429779145314313697837205790785148873185026205936783646637455810816232322141428610568244026734071250459845525065596397975946426056554318373000259528782156552555060704620872001555207345509503084738897466965580468042587375476920744577731656888374696287857448648299072320295427758137926587899744005395734756552285069076680158099775077071522886770846020077887114804712027832108577472717196467151940916133987467131629224152383856003956141520887545261534290683374180133793668457041632903814075735662473872538323256018960537087554178257419006523698686216899518073376423767454072580672868391540227959917984055566836796716950958870211631398971907171171845133598085715444002921875406366117196451932653504914335228755392230792792169675550135625260808845049572956061946660131163039997838163202580416764559553042798566747186269306774982544268888119507337702384549799384985086251858211464221841611574951449273340407681264625512357526026492617553729083763722156264103226674132286461077136859543275942933572860003500267965802531297516412689502201590169850333951556592028758450694794689283745693583615479947864458783418487803845809256300682363775930256226225413592877672901887675826225744539748954288149911748773942361161541828368991221830456406684835103529677196882364396479822487281021142276474970754952402806958078439976977666101765843623932678700158890811687765590064504841051663385220500340190622907369566235930978034582974821754709307833756077641090801491462583757952477507371524877456720507838250519638909435047701320201959443273552542502503468544782577534559166254842323582511332826892337014488120947940047318316954943513115577181901438250894491787888168326680639816374842846723920226667581606289242227788803928754385822729127037994752239225882146242550411004711349692211208399578584575189293144973092761178742876077026633873900474003423222468280635517524616382423982884943512215283771141947987009388939003166209301802909693203059221288824505991402541298498958373476655782400119236580720700856521570046427086581097563856369584247092035892471487652979453533993236224895785542884281069849095202734334044522217556753440872066180025531166641499981752027439620234828221585867077195007541854247935122019062358204527079206754237794308134242345626051993965396436665714133894738255917090606644157277710946026761639897584290308946405561888310809368390389985361175293289068897557277278395189899067758236164496696140404705613857985328564537109198760024298289632573536453783447648054798159446704435740989731099713405822728142952254998594941803191418071435786511046650942026239832247284657406377855648171420304887009478928980178054034654027234007008438621512375235497558503714116460241076313220279752452891001612217258156113053206140148347258936349630869457582223535288161257744448091129747744292018948156859556173921763607454837953685886773744886723254367428623584646387397286989245418269273354739395393472686879549224690722349211004619770659979924967602640437723963413409734390837155069283466580060092710545908666477569354276540651694534395529123346328205960324688514502890279103763021724925793599192376669296375540317050351172395461238333782415848979591557834656820785443573156621210694468621376657149144105882571841527273776417068668040898818573566892744741603839609905198832026540085249714010330523678499821514004911988279628591946874683987662531784897297078522175871748740888571646901985828015543788327934405764227787968040227316910292587240217341923663530039614250864739419471823099878091226758689462435545109111169937691519838635082228242928913339833983685565071954976225638997087962268517347825183507996340856081898597012409714181586544536328990448612560427850943862839510987916137534748545278012665647130220773665049001402403616051890841065203016599685820946019490393800489975598678398036414284872578916827289931569891393751750497951001465879771989457077405373847140203428097916658453346615492210026483791652959398237512066869980898607095610743832350808216461147219244707857511658846217603000922692589456026204549046246579239799230497412112593129574265800859081662588034483352615908321192410840529008113912019295865263542037894177127967818904674760158625025459472941590711064216104115103901784064738911777440648727964576413015178776988912028482817224610446036166130345741704848081697226797476624564261775242154968876820452381568163662259055881565659799608623244931049199902019102022420227926184605370668151104351590484819512229573692817212925445000017362335778460296909150764636636828887920009860904827017921646462258162170516202137827042225061935656995698327215609917098675068104348970271441922490114432421350122904246815141195118668367460442842424190251239978502270578940288294011730396208575947695480914232501266540577755463639406048065592315093751452302327415518972463589586852448681989657892110386404309937012852202870620989063459420011906379786120267378789171764066870019988750911091623770855761759378669996667176795557222423097118306932564683655087248352047408409646335171396778841397700202561562655131779087687476801400317791123645652140776666333929051415082073198806275462036697451839447988505620161395788510647309940788070462808146891376483391384043160737406497298559148755266945831194969707138573076213404526587343641575318529008322520259677209872477474920369663066863346828125168526609677599203554308059148563091236834017855638890248679361564994025775424945065519442815475254747102340924099587474913756416094968163087784602856489757085246025291295538896310589262383062771492289804873736937046915408196703093898771370677456226410804448857373604091868454481999845904610201866206525713576929704120225304719808006665338635498691228644756898396615895459099163234628358635248872127069024575558653631393638082627887521526118190750492948214326327242616315962871743026843560049361675493206921962387652558106537401421111954649450131138970324510593003713045568880642156167257146997244617549047987931925474017983088662425752588317152433369532217116624815527960598811325119972717097913593424356407681735958319024275891446616344632903920322099763627304857521187793426914250010920826479685341345978789705995789561028664113556972859367801574555171936386797695596309815296237747000689732060345676351527609026371442728213378011032814745281043266923791633496359435551942427408619690033626936371543558170102014813968612743375240206651496211004726442335317110821384376610205155999082850916155962548482591520219786597023568728497892583527483242829122022076445709223894499287042014596884962421898126662514248372039313156450747407802076557686181020780607610278318117362886168344901280014217538712711049202400417219255062171770714266180165930254903912257483364591512519689081118893589507126634585576354055235814244961312376798466570932190577532426244146523943885976662688205176937283140077502753579829574664921963496260135651832911562624909030453829539721052526383307752195591528550088834667249391912369258787423671579577917372865237516489026182343803987747323689360866452261448491154014742410165837671403661001064407490873719084330991618040122633012387648256016914734617227549731804097952874875228939067949159606736405423806006253356695632984641198174682941664805799250624740035903694705891909844176443313216113531565799517588022121158284114047453974956679625689381993588249173383161579510294126604034048720570366294945187979123329761463994526543321206104969813180959979405427954605227950456659586024786810040323447158269232707574291291379259878474635124338535430410441546713122406915960184946245221197151600842321203141984688635297065350964172798017326432840853468227044366550358568569191739021117100533250365906853952426073579126160760317872842627575032240197714753531502467899057888118007103901689849091038051525496606479405521458610423317146144292656354345802043269998751269296735990544096943838478682635626704041002680176290457624882641709789194598629660943399068728817760276716385782331089989426107471333696193948819088001214098138132899888546799560618834825074548557148616385394337518170304953139831474934870911288461439582796672940083857612500755494270557958509320531927236186169290454700100432613577905668255733952498835407945667366887432361608064900196490521494436602387591126718659279546991938059495490302753676932297554473317759971869534974250842984389784355742597504697968376603777548209301478290838892917923426250594876241767575211773576371157285698755336067778871752111935755038252427127674645103242507678789530648563473181376742657525333818796156082056175253293455983738216545449451468866483627460213024571718142316549331535374840853125448156207491112671207323750010090776894113693806626236951547600142491043823500860908831800907059790677099951919967037109748669575427446476500172223867053939415345197685280985689003650979997236556121636344264367800675768006019785947102286671501448331797434701980151586889825394108823905689191774543333868396067746040351455242341275402324015224942289291502911574047265863743280386745307577079708980244307624990529607795512566107905067696108125382903013014396996206948170462054381614540692699390682420164577820070251678541737976460568743063230127022175653916267505863811962330542187965712152043202611538485753938212718154752701676916999683178359990251932831811129476134768468640899875141955447940518282726876359118048825827609815847300994418275141232266185065522097902426218328412495752052340140820149776517355095911404490187427852845330163991500859329256467133644390202631855911645261627865636595201833432430649869463004239866484702142769109417155637628291534814042747361257024115407145241178463034938435134203298638795219341669825375476024704254093152693452957131874519086651598490492098294709905784938487312809186484981719672610039774860007553053984339661696526559965502907224643286205988236446087457032866322737819531829786424016412300294068978986305341032873466018969045563354090245587299201251938144728845331945234658058548213451311515693270964620954950077716116116217293172428061561074277345580412152885587510498668664974299861721965092780508173879502635077720387191596163301882050686941330546248386887554920086414867169511720889067718257347078682151245961495107167187013670018926206463083828273936414418696183521093293620614550554725669396077533322876710842279071404454763248999322254233235276914442411807126171261175066181755777891154562267004117681862611975357063802080196157503093391178334016876743793686398970946091962991423224861729320862062951524884665985724203007454221332150896798078601947677072304544796167937012117503277170553794760353832543113749698530446922207010472132028087137667176131403558424242019896418650185130749175544582541363886564549974310253300028637830640718415421176863261792326154058330620568447369160414313236526104047818820751256290435420955290083745167229631635988935938129573132983505279778319641027244252338321813205302103863937648297078513816952937782262378506245324557905404903669406097638538224555447393451499853883608339527329247923314495782945278288538864913626040497823663048668266942298737657718913643138727703718256330040539386213804417450664483719308975504599194369205941306910469020445017778186480929069528575229695297444210053353858311835572247286847925828602146642620183422189043724049288493689962664032056082527885478989710882614427784666476863349630104384371146532590165313741536568577966525283107901384870508816159779828677871297996023210569380473929912966472781550057404076631105546054309284229852445711903181567478909552701985497643261631354807434553441052191854455015800914163197862776983820172733751594016619991373983869516829304934391486737766229783051130572138511211260881845176028325650317694135340119823251695258790131959952826294509027429575062101820824685097184394062546381720176608607691445641947172018101359550931540037874192593265029995313343185370149578455540885234676989104245593091858908175889243973879832285884249130546915851233353398330133934677863660226973686312418175874317266823154061117860304048299317065019871200072469575053059284571441504930038640384002495948097997909704347283212487018986346089594078566225417590098837704359828522982351236464808923194020922115637196052870271944803757046460225390150913128068726921169322761161629321040811767705948731087562524872004823533115499636278545293511382021139269695275826351675864735582385640941006048519483424434344815586499569041558758193808033382201843929310654744129567021701588629636833724450910432987719194534216281262485805514354931052828214340917399582761398722694012311671527606213328074630362345242038720203080038925819563497083265123524443865382120552808353772058615570062249006327394882187241653591253061150671568851884675973147237852310414726383174072511346525987665455161227473607465352699675983683467660962064713200575103622190264239171612311517794319519832833430341840391484422951764713176747825956784318148481153970674365448918676619471383355040030100066313739751218813487247846467458939737303633353755764693921873504226341995899669716309236347191661386326535882660514380771559511395821466588312033944105403496958850278650335460422220305218473137408903825494911908496941786277856611607527785479407506559944715358404612231607046309653488385528977626976031837132912169144423518936713661273053221270197728236122027085647115606743669133719081564829482504913277847058403016847335870384073332538634122847127662185170596062091200330329892325462186804813950783644049625341744483157860802596206290786425405456247922463307916887749105122334020243907928202043640380278437330093021820501347717238433153000829251369279258084691699848389860716888692222015247325250195640894014596912669361132473680852169059547278190027513943142856537988532267915797945401286149181264653580414570593908106458869173509768104825791178734422627362669300163366657823803354801728460478063598049153736488822802917855289444874276014983752463434040122692742802725463809114047065169154268887421003917999148442611906420553512254315883458116520563573767120383613611387189361478115865536038399333992867939210839989203508786961665143907296420637232219143786448736760991780771228952573279414807450046718354888194513491783032900587492732997202879427697983098225148700975248149967371133748362349571298086716512944814685590586909005469372114213218779549196585581518834306130560387156599308359025334047094699709920611439641725837219844139110449918937061544560867974506242477943342891073498855468338712789947743904859454853107196066374804781245276364593224707501920473633375518638089484754228712743153951877475776715811149970596017380287169727901982867735738435177849030794780025190392498610006916254924288740079839063824431267005984005334824217758391734815267701617714016242965657857680148441118715281609696946309953964462561356653575261770398266517281461999662141312120174816803234656137784095884400576939458519697388041372675554572073197357283159555614491995360931431122377314604309029582293466399085229567378376395096949830979530244717256220427160591993965272833851790751666360693813207096557120330624316975859979247718917597542314043661462672566496266573004489012832234422463495741560811039793974162519884004586478890523325432021660884234761832353393474499413768307355160374772948900603864948783961962340933676646246075204408953132179667774678264871338252739848719966155426693670234022178271207185343394682120522890771439926451110449846680014757314522422346415801618386591907547100918591270647114839413189098500064082082966507129486861118861242761979730654687287888700150323994041497254097193509400328782860642517335375808769608246757178470833619855506670051399619552082328504278041716971971053652211395539891234195180089910603638943461848942555752071880794101809417253700587259797913323999824676605101460871530384986549143200673122021356546669549714715721924771560333331229453097470497750351720833083473580799324355557828205106814541961695462147623559158539426698436182445488346803682499591307719141982151391859358358390059172447403045244487145322005497967168405878860364750173126574770988378803854527198547239609621885430492411960580168614663719407672881915035569046853934404573800666456264977619703099196013201759816825164730793237021977827514289081398825484200800340226890968169807065908335419628623811893997780017018618783696844770185438769755360114120267078420914188628781699413276659838702159118833500624742956057505809131832819362672781910829553704075460380573348797445716407509725535603033319854013282862322335732393722603718709941842970575999619854666696852059916091731050747542034284937329142478351212007803982225212140039125984181911931512420584943862331409963584750568909629876327707802590832606957780352055932801019944850030831953197737926547358714882575735574226851495336986079902245600552881803925325946247882006501131795566415956331387792995186137283233132247096544465040623938897663011423240014876741100368954976311464054224772560473625164878290995412948412310192885555799833213488361769392386682000191403987953974331281266811772350123275638915687179539454025851643905892298787180765636818973537636755583446896210596143750461133327466450453504963814587725424824132788568150347245615841147386571771329481648621921575629386296891739788618136915174711456228958358063708595931690698885091252656154059466864168209167324246259500189964805923388285162090865959310105962805616663034163749389751795066156131887279327365050642217554710499284045706305172877553579574918088970369566373096662042191084333431729854356501582299459703391481961885931129649240389210182882757743117045830008117504896108848657648809764683480125717202623896843571356465705762591742424519589019665227756429277478334068159711107567176578191382058306235364007853287057433249441555390710410103968691328764307881425979869008731236110489836741410491256514003804041896068532703778703815470512107985204623803964434413504975760918093605107943190588873470263910900387748886330665874873558245881301445697731526894556787825848867889086368399978622555890287940185166331676176876656538787358074639837907670174094348841511623383405382795887751831188941955594776649731944989274357578298818643670019155378664829987828054472105987874151662335209205726788060293573442150598155427529279557306593774713024294650175143194358516460914849237187322788761082551614319982892381496219158719984527735336549470619931628096298415364891271713324813405330343546506439771029970758795519525931320069825319110574294208320318369794684519774037217796015686113749051106706925002597788166574431743709770985562729694833048975145599143643977119048581415426024290435447891944134116912102029830276556138222200279672258681268844058149380689539289165323729508213678058408072498679216698090244776870570756148418566051524768673983518942992173185624870786692213669326740157490026135529975198908582627406531797712702958749016240333966039823534904721687205664965710174430345023388661834723389800320916620052188207934054232937338499062628160599077796111560933632920730865817866086042375891164094721290683498999905510627866656154002091904402678759543049365836934497429346602620184143919152208222183118688079111910860191572813278219687321850433845048578699525592131091990325974409749782855441118725575707321963252928298905474899119170978637202079802949927375223342992174237800957496180040819155009057936723844308764626922153095306829475212053666154714676675625949585060687520455579626250602324434380347470441482575307134344602524646490927521378430856039069427706040289850823513599395880422222050590091013869083744454966308145276500447768957749307214743019427909423326246581234493722814479655807477807386816850809926123954751194146034427335331493933120069103928113477021357344736424552058041713658347852672430562711259464368306912555478327343495716362262701721399679452919463690254168346630464505703812794109976957756511448741704397887966579593025393668679523253336426290652978470814325222004166678437664207997235456622286685359952032300761734998147197347746617470630352745013923177066929726877981796997391787264906116354248255487374647953936030690952074533843574274599951698349580974553446440713913950123448210758838109361391659412659504588119519432278325506811576381947382635914482375724803383591700001471478353952455896249073855470665475608034373358628223637554914128006569092903153896720461440250674428214116561821477073940820381773135795380465311226365102976821999521040251098010919408294969025912670272372804789855401170969069398566835327314968817617118943350921941758626659794758979466755301021981120824872266975462234626532059040607326817509564170785835579054245794912295943900625627073517972429977277001800519814580516663630220684348737760563818559585263998329780213137810726707503800973182851013387625801453986682102134276325349611681572202014839471729881421698912199767049983468935141468487489644610029737514972550639153222203289519906446926380395732714826334587471001518511849958698520503686837140625712888665219587379519321702010733886659264704988853096465730349421306923576746325766002012666889125114724543006192500821565269881803738997088908206175711772950651949653625267846257220042937403522723800468497201592557090679200202026903780428282584713768734093961473877126427437594105283223982042655319833605413077747275621193208383480597216246826519692749492016468830843027542905347693074799211311695529446902117796205402549267351521964016445029638294736867062434908377739489584489604160485282163290614525141936454880717881249674130888700874256931100719322713525981132495199832253348183740254013070661837602501440224708747528542043630151934601200244202434612268719823494364386806451404433278072698820100764614809918478000787187666514509075921551375035178339864698692557465848313832527616863943084675489869590994971628459823155627615210186985681511119977659300366949605278340212857941896309273600953453706192044802538391066001004177691244545055761213638671512881764433311555613646542603704662522562981146749433232985429433866273471094390171604307895171962956109152606643054448749830699892954345905032825891562837409857904721548484490965389094961197827414188469356674056233608930185610535063259271616833050114940369421055078259378851271571278624375012675663989212457850747745180269418078040591247903121817367058674706545274852270039498852209557576530067277026397470214762551731944883809894777170161095622466029739118441405327121796512485800341593945590494946853561994802412025839593073988889789884723912610697328621086440171181793415783901703062895856307144150522028554290076836434747618003084056599377547070053939466266096633267930270481316194914940782016592595941373870179094419771931670443960781206451212223410081125074297853449666657270250663068821231246540232211583928175724131680481875702195826781632019259951875119347471421519102799736160063551463111934752103981168506566372848119775760569179239094581718236630293933297141933503884629572703983647994209504846029912706088243533235235305312978983003298969793637894764330509028784028000135711198355217910192328358966809687142833235499739337791324579180427759635828842349464486566428031251082295574900709592339997964233489970031253601287277948337056389528250780466898706790857366729060440835317855482125836064225898554471916628364093560229120690326185704461629870276808007853295293773920598257392854042622238916099007287505048355705927065819384989326134210614205221033056515897204786109524804841332282650690378365116368702537619703668247743523110152621841423663089917774560768215405895586535745488559146671614444078948591755968198207585769591699633561188687951627523210956271529093676164366841685427304378028481345834512522020906686477329219469247614097511495106890418745640962164619284450868036282736704799338883996835111162603192675065536752621516639312236997647215050968427973548953762500357188550130384379097195978536720325305380620978630429714170806550455623779015572756548828983622981075986361281782126267752175442340938458281668281163827270057012915027614846883215147771139227600360914932693692454816223855512815124676459141227413139297923247685597058241009122416116660723936802254561410582370183593995432436552408172752604752608799066534323683378664073902877354091393312512412747056623306176146653448586417168131621175572584683788711793720889850211769160887830788737206096778944237204005584659882943056785154694834094905940891331416337610911596226147871531873150145925498787952465660520894052882296172583472254812620920731268875826810211020803322921511343555235381848371452645906340401921329274380176998332616384045326533053003802712995101525904221596256187253349740745717608235834535859555033615323217964024844636388944563709479714188358545761897220312652916813329687610050721590746666481586679406988023419120986214843681415806266312001291903963203115982955982876947177316859022353361955222261583351530143618254131045596585103398410884233064482976294497927931199604280563414920168269584669731164931836850907041900078712179470480850803386438934758748171550697573822760091295936392464652727538792645842356241879252388842665322423322524599537639509188484333456992677691732337940191699432981454422263527553356067230690576459378897639914770794498924543811984328497529065364680495137429118788595804744163291870714751521203770383924665675385161143241331675590983190197753037640969460953052816116955115268106619517700228843540511187048103217644634890971648594180437992950789895292291008728541205170019538944319633481259643296389004714811849420583377595793014575614795720181966069571182556284369863504193460782993673505762419496654184770277358045192370327110029048309880572286380065009634573857543880816497097888950840091532643746561417965332117362399971283410955430772287586100983893714184199845066470152393322488401267014018771096968964914623065431176575149745273584475289386641167058633983998195098954962501014361448686153961386196705676155411455414885154435445537383837915736494647038527329821225039248144592265708513398599582896527589645851461315551104748579553331054270988456978267490202590911154603280411757258384515035329987096395086250855730784334767708504422597670503773827608259663888941573509705351749192749002853232620413473879829042512333041769861749286025924705818260348341908278668002021674864483295606262163583738886922381892099313593991338062928500904611723145170551308100432323314074315078195397168131188064733054432396544542380624193253182015591145331841930267738169271706960686204753095041197858444253879537596056513538093486519648586953789819921897292489684080805395887644888098244315445238086454492109308877920889347543647847561472711008464103104117734419803055996592938765310306175281002587496356719560766153068375154608449396315109466553887767821060897805368925266180613752760745173276868747379284621414263136111424365642608531273318599108806021366178201057582680009636870300954699604498214394687366837306724885747902628676079846205846567955861976045491108735947915726687185040445434908619883736126592045961835852806064921922290166408430737617246862741097893413345319787884532358084246775808936545152520952979319405196158276840199109076661661211182478781281456770488672322244063234887651194503851888818414353092609772423888687800804278056293287995008134105983275474101642031379171110674055214244193203738417792140420285395469777101110591527008411917092083874874794246005289022129517462084954089553622936041857190950329231473431892395363674101304982732730262847550112787620003974058188777038446544908996835988183313834753272590474434375789153854856096620263153831695742698496847624615794376225486752723709936528833225860249158701686660372769429362350795164909516922051388067489850293342741373867077919316141204153938569191145803069457511188769266782888921399650697893579894340923255220628103601891964386303702279389876485755136278193028702263892128019934144603455127984550750024777108745629429443196241360953630134675976899512365430817056721908573268026622627296906587789875748863554283670804879632649313104623488501042321878785057411075074919132292984156767310313685728736760290959318579350436518969848937394370153419508555771279064440910234420417452349063234011439319620172188797513778478691019632096409115548912425614304235081785996123411910486976073539004892471896540481266343792586684412900541583554931241247171730192382188541129106372226222207929817015152455559119013620571101012333744732605236476954918431502328981896440592726752967036206270844742278408593851606466563916440711889024686572209027571702810010422408867458277164625768645414619561960074919128182304718087030092160681842268854035716703936527938351923319416222090679096964799962265612251309602369162499062065224829053668112243899510044230046912575754293502146981045708761374722859940743387806225673355447941615460414316036856338226254496791760531605442100936472209188125527188110203656458553404832699266108578142375508002721176218921356160792653649101648597430955369997462319857852551297900810383052951706898832462989738416979999750092919083822466025405372089871573966228034963151861039826470240505252060429502328779897887873764709114886799117912384748318069362602053443856454607173385800713197384861251738174369645226388140128628515741214474873564421055330633154807882407104417916520112462524805140092559701858450118218750259828848943220401508803925874288780124655516593610336219696410617717152840266579732842993698241659903824537685361837412821712960829741110809834312479131614156209600623167455742588759553120865067946088748807130448263729805685975034314071977815873567167652004730790810654481821741479835838252572132924685738750141742120501962632885938737819224021652181676114686604918233874373669541118005579920141998394011976949634200825707202272953765199772760019121640771471089833662176804375517449935626743485173076723689391130781874372270452365387845882843145412879938905826348205286622113819798807427704201382481678658392422209250464525934772084511769698906014584611810935886033170233623889872656358638889483730313877436400723898449047260554246067776295305220264658299698932674850439143789710839027935592316971917875183928322560732820876099307975009491335514632921127252230117285894479047586339931869179140418834152282482397726611810721108763444722710524556798375927053416404833002530860233122805481963804161218497385451608820685659915574151909333102058090935148368316859339978905402627113722397281405932032489462628909693682369996558228908870303743995076051709872145348846426850353060909993045667157841415408852391450420285911468176450777798475970227741224360980468804478819545955206129283004327951054136507008783612831929515625543314709013165221331120690947665342112041554840671244321806647732133470651181253794752078477560390326841054795915833636967643199045286952164778354685262436399981740725863182117886841378710428976979286889509619695570355588015104773222889376896368490975170002178641223901617101148214750824203286291397583771037500264214714865958494856635476641348105939525388616190134104518857296863606503796632933786482794928024168167720022550696960999434733199885661076369854444934186208823526735935251726969509350567432286472008720300986819883151446931264611772514489805836670545426156824727102803330192739638761418603725439780677330910781565593230461712647058914646702896910160134889517026640387955552925817938541458200821858233337188158122162187037219610472241120396857344208995719165434433250144272864517254825528574375030856833991222245360297207232771465870034506352356617675427462820343765495912421872865870277392317362532795891530078188964994696105256084207563794744524406951350946256711170248129618560133567746601888660706785340660932025451530892188875993600203354696240497115281047443123731270481354304162782415422946116891316507763092723988757473483142981175528299571963949219136833714680658537924205120595630491793556798064808486788720738571223989201580787395707341487291266838122952365520755736994800342892202894741502147456988639506840600530270887361040437262650594571679092876949645720776348202246327586142376007586990587347774854807568069014648971574112157291176749697686442077020926416272444703580723630913536202768746430689630545574096591665057856690437494796576603641909702027060741942081274337744370026163863537709470970280445079046458456144582936439589737721602608666361523322421290934880426212093905613319145192872860363689191734421108266014311883324106027397237206925010966192890933455917243656385908171450946822206780673455963470127237100535646012955991768281634697654620075956425831629920178592286419176074251075573781097385304526111403661985169050434827329222998143141493853002499639855353908607472480398145387204801221600536229263600748393956118591950514847797092850297577578375134948416543606937545582027841560718218754139486349185397654367329286214069330920885150970901245082731147393182185707747213178409174798167926285634588973200173636976037610215906444097003827304691656362464896524172832532913048057381688335784172259518446034886671280373152372704577552266732900058133201170811551733065210247303451354488305711771191138494813959109622334441585719404487678765280231592888961605527830737698639225324342804694370532690242755715555529067248029836116950783536670969273744759268068725644754196180636708604016949019386498010449734295133676026818344556393915196929686437019814894447696438014897694919601294958800922823501806496628160734852698838732983933097437458564757846717668309652187911024229034304798219349331411025792282117668463676214700704435381531807302128651719082571447561381345438399705057622028879265203767807107137857909356604069044452247119813459920401488108390960968376239118106180407334359998221115692149569409266439443698850029872732009789848324756167106836891217597964951224982212332665432161832905890261265002032877540423140452476697182186466170330139650852520469219600443573731017840841646995046435935501808584647437613926945830605612111318104114939260485452892630036885663960060982719139655838558013916041939059424829986897007429958476167509022571788229215681133291975801690250323689162942954040259222472006407785300175806714667933079249417358258687339651098700577796754597334153275359568371089263934729962690603923110356378268282172809452192280817594102338629888070348343446979145525005618167946791651530344221228930651579935310654974090139404206195647216520615191380633140047993935341320560654325372990888455004195863711342356126057312586131625410181802383849539061219228019808109620808346009601825725336487572311373723724943713019519594507494831304495969985132193784299301292775670532991970474799516038035094701784866245817037591719814023384951232642981536326461167690246276972751557802579256628140450765508262883195905645730103231179357831834264585824217757557978446366212257696295319338201534848195678732902924608075554344141712427520898696237557081176065850635067247841297958398070622883075818634141259592821958319431728049091473656365885934096051957221365197718906288936095806682834486317005980656910210539863602859428192617562410087488543374586077703726987946694264122704761457443453526337011755094528219515039149632911160363851230069692443098331059008554685596268295770056084452956462323467459603539790807814890354237403627847279626208038994186545124485392321644810976157937045931087252151762032920576299923580122310714168807285283393573077189997971768521151657500452326522952101603558345762318837734748584686007288940817219371228801243889363707216434893422334925135631886353886993630363973152098701193379864070870323190277091877776706796782255101464714499945438888698852996605206434422777753151994974555093987909021808916837881966732423224222743092152162242870694010748129098969899952862756644801380577183856136508223214605410841843629969688129006857787610766939323449251106909248922988185778302525954016527708775814862625497736008218992975563094473390359426673478959172806216966665573357868846829474465067456323953910878561074791447419202952671756111272542317157142541070818476957345791868871300897133729207983217039316687676073426749013271449809008099911145824850198768697193141706431487792088374106327206428597689696835027122036391761241193607343637214581937852056685457223208750902817344038252795021875283270223338116072905756609809230538044713401449681246926286364460250372334617963560742945790177475222153655088804942501362547181438168266687500473000160950629539081596016594190168055390364371687035315487881388307369114267020061187247043108155514106702628230323042120339211666116793612358661624908469275111238084454632914459312751420668746453426400428570925851615458403055103805081051732982891353410733505151532818606229563394479600524897881500159011640003417318533110052227138143813108422656425171395981245792910869904663010756044395509728730806882846287502897315005427243306385768069493729208265610470402532118360532234306792672077717651567920583045552889262801480972716504122362048257753217886546909424239208798206181006793562937205956589180579822026092648163566055529409981885509182382932370069475086929824650096764358623076309269989744105304435784143099930501312853295886978120607321720535941946780711498104961426487226264179353813115669144145095617415955105358435904209628529728870847637478308685794454895718839661277797523127567502925943345547329109757500429473994293150296590761635301456091782838843064735663459010304468985138472886681189006429652049196013445763002229432433787111030449176925747869165973390540758762633632105421447908318809574017515556940562966439893262927972181493889937406370970606100286414810272451289144590728766955461300968725248078434787078499892210274692693961459923347817891738631737676282147590721667251516870606280106521687977642989290103468381421800023081358311596852959792092171406314520266784021495196768972058866476887791959086653182679857644023791711088723565242210215670169735976931104278724133867090760094053193489037494102197425510157410245861763485414794986213705842450723029670338118638986372506415014619006323973239888533897183695218509317419381876255843801240980037464508122877556679893481706347848473215717817992952025814074682624692225490791023969398864527180336222323749096739321892348605282031461209742921660570313355633914995107824520184603631192060235060009586771815054508155821061441296849977091265894871526320448736008105356017431944120877521702826769658512103590145940957613437625271710023254969721176043966644912583194152936515988306953148682951857167611756197566750623445392677106661911719829397013595635980845213689908886104898653031642630035100467333288353400268361986874442643867520269250775612396601880017748729193567819589854194885630246172807747107285636602013668014390899177446249524205738104284876840392861523265035482404713275405805374462859508820621044680440383169419583319028988326114407693011315673752162693362052013819111937319820765069692775567578249833241721205149237431249399311258619642687022665495419460378887383567124552259827233467831161603465607048234335404593151971350822483202878856505541304304771906546405481499541241752554711257125866780553365097421318086087261526682106707860818697773625528867077940865138693107054729635358179714692334309035366651603198653810105025810701503365406372136359411597152252806408263696133821711093045830845865936449326275606407015143175186366309793533593940579290704979702515531728584895663736533605305141093063687043544682012095485883654976627875722905865708615984603067216202540816146946093656113088874999887437756054541674750337368588900156002640290614978687365675283286909938513274665983410067321256865921712921487160522353898891412730264914534852234745941764236602057488129100546276019384900506262047196793107315021753506852179121562779794165519322908511209482600160502583381041501437474950637062529141260225425650763798568946943924306116144465216141259946781744274999060978511934836234576633956207252176849434581499513327970617500168131918115868016164919820222829899820960276286949817861878538616571739010568353215613619082000149389177013547709648869144407188412166222401212307137121978872912362926109241482677033647293483204939902427145350865339947128049889674724520422450563079793103826495797949602274574023540590517990160226653033889803104850385250281201355613478587567043175433540570496742387386263088196098259668536035613187036153479466274249393953463244181594462089799806993343582976048942605915680356563728022270306726743135111077184790361249586532750474389515155709002810839511712860777411054096368543114572428394242476929777972501633047520235242799080343411035103465748336329383350915407063309198458733251507718505537717283913810164487328624265054912532087559829362647835830883173116239545781353356511412556480157645262924282449025249898568302986513451729814956050652295229779508514234136571813201928015211751900495260811434785562208923259428944562686903833044484426340746194729752017598870137635401056586810967033804653333826409716740784280622143034856281424154719148618927785785457338552919808678311114096233667568224744338417518874692977283411882453141209589074550364246589288776618929590901283259920012251471821989751572129909907931826701400361112847817573297249404582157706219534451887629909859524095285579932899123380647996918857186770709640810051442103959663003998969786771443302037681956292910728939420613399569125455845074528911732446344246024268746917465962499773050375423219078032821640701609132436430454682567202271854967212594308543371159367087939975504515611880797716794227032383521165628192077879423323158703295885646212611097217919471806610682078027826420162936878930159520758252865444392712831834038868531262732515374963429051242451126587695331818074067514980865617600314708920028576167584013440106136607959885351473199788927009183473508704133891394092907859922304661280760756047733960999098068241532179723790413324352595885269468376527723868044872975579041418603782010268123409453223289541238010271682052068615502474940588226444224498663277128012184946374175206545063246627359567993932180777213400432333807558691607941658249970454872283910635938568763759314908438643175723831206419168557556636034464225876206959123116587539241300080739204072940797120326606353052854376234210376539577840941652044054424966446199375114892696057701176436043234525659104261979145691942417185118097265460541426764777953472912911188518112058882367503369968965922195869431862697653194224464193196791253370969697747721023394405041878332566891597854791986274543512964012437802577092301244730616792801796741801142862635957126733509103304472560713328392594642305153037814276613046041412106475287505560614022115262576393426504701901413715233221824788647549917832315204160969008276565882443077337455224128633008058340459495609758485820376994808389471224121589294787119101887049426407761503988673255222150206788235654561234323998481326938957761079048278247054464205751068913668786053703722062137244374217557261069020743706637307653833022642919958341515279352804776816434633314355648117727949429912386422769275065397243480669590052822611544631831900639800377670916418952272798761960906882405328364507544296476302661205768711906954991386524645316062502892110311802476925752374117906940281248575289376315378433369976827184481739331407418919853522455740722870714544127361164083610778532086151480077586495484341745893071336375418643895957830079117625029884547567665110561649299771258185989671255719750956360627578971759272042237037463680586565977694507584232671259645212636181084703646346535224764416344100143862214327424910042373667942843750947338482560441824195133440413730118898352251389827428819116343147495262643580154530419527198161276188410763989261147502247541733926776378345482179719870191859522434929852079473681994982296543682663489967104090969727468121662607768696401165289511086199831007065261552574273586989839340431170342799652726319138091863620298246615777592975861101073909860951082631481329789238142131436660769544219789097223881226436612416051814897767581324678465574099867927555265367384853503344853517425215891520863283659087713494594787726706766579430630709909670124706020759375657166448073954146317729328193859214735516294740612596345320010546935995299683929342748889105514222733668934761832105170577469967209671897111839736126010141712816412983438160865840986707021327738662053268982355260497662132829302768737704346111693115464449788535193895033674910656472933914378664718841952798471559801218385571020792435723781618290929870182032852924906388137068423850856278552080850722617149393391847984096968672914469599708562638749962591583845551029156307990805247678260392460648416151517846442870763116268241355735524650406621836387970055087549356058856306523116468037864321407540332054121969348824518858615784330473856410455195598724540211986999138986613103435525951086929137807547626726463315980290401535447511941849757774184824539692276316963362234289421063200232751143054014908653462432356544632483781422264688371840533762652744955014173017687469347775037602504263926618966040931707180650625116375817911719462273589288542350701974798795985652179322065947929835910335432125218471142468765422338342646291701935432466609808589341825673462375499789657290383639057057636511950644518702987635412097320571570503103432542932013481129756778814676071726119335828279881152639960453112121638943891800086274370984174062276632114630187366504735034504696292845762261638885338839084608010810560146652782453668947325255896497900379905194995240211363056871125500368402626383640293674586684059455062975627095498999262783010059737550471099832305540411581883864783798714453480040748574164765192621516043459295568973840727351159079736393627571820239179323474135879487880204942563929107427994884838484330882852069739057234252927158983478218009697402863962749903430805353083525298662106072518631941097281455433400622356404346145242299113026925075695089412183995049399144167135972580263763801150687130042333307178720305025571907243022164525204323915620719319520036772198377061716113119167858394851856741585666951446074937516773530246820137404375226021227972437562743139242060273511886232252513091563030159514031856650757539207435126433524326573547944305262020916655022568069145676102736387413468878490005984945400647867158466668730555828317521548381935609287908741115753929946814652304129186555792176165839468813705720331330158713758738696308860332939974019303157930920036123842007788423329207206248849666139354801614165989790082690506814032333081136657013271670785031578574288863694956279328545539275857455614018230425448224458568753814023728424309014402271303676676840804723089365279537231657746064563948076368953740185114533978408664031652416939164447376899060867735022911207642986473921667119432748308103717842624505751448794993822965365395291160891287781495041059937124494439652507946686493812247692327661922546039061582187135705994003136363620116057318446500154869149221176340368622168799210738545752976344719870767802342628802590515835144943637208886867278869107206189435987275231740168230750044537114578936925452269236783905484406493119353654820590649046690595812586599439419302940245506140145497740091669919623858981845768480695697943550574900920997082338030288155855701936376177190088724177169678607958279609627653022364932733397817007267621664943034777912948950395173827678280663756723986946733764980466841586675606586531853135078714446277370875528391014796606589902890126698181324600718449768389922433774371394889556667409159942134306603599534497823352543562337486632468130021418296490779497409671563134668657683250950184046623760800580920997064487684678038648851579213138330392913171569128600277871661758289793529166421081987388995086076286012914545074848041152106234920643541381215493765503755936271929757284560440687918959309837356721713117695990510929828665165833378303380378017102359772301154128315446303215561615560115560846307774359305872165020798836971540728140741540216524669986356299696245917279805029603414667975807953092796264083287933986570280377781011155209308328933114891855149673009915464122012690668740226637833745260712966833568051307488308755027642470825722714965826705208035365930565272899396424098456100115390980240413790136585907614873333923099814782072352855724003494725751457361461412945045777941971398244362831561645538793455118487112488664160230068887070423597898007686839902387446816658662504985213125735393561394329588936087095550467487556009249045915690867838137465220094108269502327482067920588157623279757423242338869129664801053060999554498308568507934829774476895684639865495661028009560308858736718655410573625166168321808117522207084067790035897968160226616701345097453102116911347175632140780043635939716503278784637218589707784178020240974930530258319730669137374737456543811697926625067689013722913443746401794009949612131142117233129881013995759147739395823385062857364968765554300398635322122541705255664145945664472097418574923075337482187600490482581744947869463913966348691337996545909603236669770034304691874314694358216781139964254139858303011280510443182998654868022384788550576066848643205858593487907075889337835215205854957501513792210322052630233638900150259443995770892333349785631763227599476703580749189391684029164794131608752029153093018562781120007691974968026247690504044384272327222552916100112002842115878689563814965623529466753124669486896300625263718505154241967691303484820686884635209288639971608711686410215231615316882940974016075994684550864113392130994626170386686925625593704887577818712149876650812829941481351782986347353671674661973679532183599902781756630909927984293936414261807575085056345720336292120207131923304931048993476582823250160508490920465534444182318948894183260759880782704939196279889357694243496590480741242049884513993228374040994682953314188995837138271056381340024202019160542042240283503694454197733941031514455243347465053485558857397758030258221732237741371935117063649791709082502631729528094906580762891505475723274699793467700505872150826493779215865383543928601842204747622419822690364586772833714101283886125689627059109049818052051080456202796287365394196935848764099327797193422415401140882407372550165379809649406545239214904298789749422396926092082569591428407338784476073856593688233859168559112888103919233239755323802110094071189226506837366955066552589389693208165686602910291503402285490251797208943283819536833272962861986230820917096069985250679067596311902501174042257635255938243980478190591600757065377638354029390954854616914491323508351850462624628998636579767022565463220093027732325420868968204270351398440025427309066423777139654953317335237635686299421482664435738947938287670396111313085768499400668103488866685507526694020610851319891419393403388859988545362885823090912034070556141926843574357578863630904263447082561671432493463152546531602527055002506823741018412916462256800849487154592967976383967229828857906695672613495411750677188626978222618191898171485674439371392113874788380833948117423776360217795717781209472153615123319723263383898147266681858600853710015301393466571241280767453227956653359419481083850771967135910292537873200894530273770119402422040317255903752169545293884248306397357676811843442614189795205187928139530678759999743683944194191960372369939147279202979440175622537348350382256522722707610154134614347187137020876800196898575571764992745393961250182624567539095794767823034990381502930445359028845776817168633553782971314752451963044533088361655295023324623532998293038956638006062732643268445713516403127517716672834274802416622511902671280231748709919578208895884386554739093510050542460156448958284229648258703494296829665796112905223235796417807111558703937048434343505644052303650513686656637932445964821489943159490171482345928786197681066335653513169322224359096348829323314422556384044609776719943044343740057094229947413748750427349849046773183984344782110280555561683747724266637198067778227608328300110967785235902414854425599392445620178257543114048912897566191196993404564591418355898400516952849392437231263785666643400208117544714381221266461227964756104847964624249110519577095540174368385721126729379712106832873728362373708405973915218353326040917527850832621596293745670635089699085104022559923496352724759025165896414514798224131983290338464006861542402656262393827803539189446245783463542604640246883700221682222771222739521911660925211924633254690824744817813044891285080850188881693786684880392193644827813196035537379842845157582835980911463025621799097439194690363474681209102589820546589981727013983254152306479142923895289813792733722445340089184012425221968633410630695928994170943920673759184839797195553886186326417340186242590712143045864018719230245547830801842964689025191485970533260090712912624481471676004121468443811184096389064552499773350344910791557756035753977600201531862918898549451592783979070343137566361604991741719512923710244981572588740409101587317427255859907949709834757760154886364277716150742950275288879859508564297475186284592511423649785288013714321887469078189573087671102746845435163510614780671260565820249351299516435566167958678929007202944930438092157311955794895902215263423611628530564774212697997475774033128727204070682874834572993346559587585960378318482041333484043560020087283131522194320881821929144473606310069591471043283447549271136509160197403360837397693086843629712251576683546478683581100043734008339633547285618188336481821430243761004669836714588795739167206692808350571858143515412237321571840421183811414588955632381840882541505564528488245593653278528288011562791607262954147750156801789958900324603831295918443847441903352786417854725796947877931827769873805362620620848989366118237465536050665976669193992108603599593548355827737882810610730669286178643787297905216032701453352890619994197541228483331380088160354801345465940885265476654862581698880090331705559725487047321284973241464566276005576952995590951308901907551745132332379679344307775332527221102688392412752294674483475511656214896927386892980578214200888026162845681317814652901760653297526545806587633695449794701928580648727301155009649000369644768363742247153224345332177386298392359465346802760132142164869048221088534201847720696539078864915930995653868220910126811720480492160001230001562702951181559895585686544782398350118915014114441356697722396808501504706599387365291685842517666515230470504454751859545770490759620861526392848928321977142791866068989191844555112475060185329455721025168074779664369747085861839786383934803182696859531490395585608820683706356836590525569141333447392532026614248288765328462369054843745994561859811842552297727495688157333358823680081733842549883482223868335569423584635575693146446886516440862750890631092877838902387020418021095933380246246512082205192847535087954887108978942347934294485610486011245264595997752007498237543649003576554187330636601692619976182507367291969637723610854260241685554622694341572645178690874634375099905274869818419664038894069747123634857954639060475290870157062529925710022010851012999744055741996094118500643758758317819532652329594742737197590812539832541976726124435470120572506135125341192383422858039290593919737318281943285492464090180281697130288306871893567359894693490351823491111803113183409518180125815198684747523820745862181295270565956996925718246445358729196821271975479354927683846186755601609172807669031858069656315023006679732536090293123945411212827223065668793446881743839357125321791438515136370930782264613380495037104762792230362130200769480583599663810111681277031594613602242659905848373270204127648590671983615947049431650420709411713695879080439693600605836304077352403309091971407324247115699012382554446128334046428923565633057657146516266899308077618579578574487942648658218459714105891790069439798390596789651055790411667057854850963249708333266619357448650337840552389873593740752679657231478931923137007702325605414713204045452572094813468328366523004353112507128133165426423106617070002913518212532051289219484271851939342493982981392001176363071695207658259217565806059642933232300635743054252716583059776759614852682763413156801194174574182370741119406237256229629932489377782458427103949857520607281879615960472845861975796663554728069004972909740118342266975461037762021994568917452901877749412523615357279673814998113471744354864265251882799102061055236742711881175411507021897863024698563914727777322751336343791982229715342164545170124816246504043332578351370068346633491951320736007083505325913227287853934603427311552076718305392692771234921896756469341761391659674128110545175585002012889525576236591606268268590403385229767275402382021968989534091083737120329453927518513731624294175481922072942371910541925612175099365289842288060700736617970425835329409804798421896965677424238881944699389597742359462815819504677844588292277299642785252865649447398997956017870001491627869265427579126251263569056081288623777121246556275314967789269018254567715286848638902900890432768573819466891583812825469195649811538499546248045393223918938412691007468815781117090124159754033157656225875080878657933813696257008390550809978581739579043541204998236313089665817910706253449190732951450458957532178093831211499908594054453557936830908690725178373046007893521852652753763738398523916405889670217971009103346949515815959538581072514231444097504342281026086948423526619446375049598862867596602304279567540487329016459205105587857635227001437710224752755824128316352203162655302969283945365223564877350707592587484562559185589359017613807972744678773771776186457085075619945291764806578436050448711869615707979778252837655516258483353648180656591868019225054178872593028083104017304027613076605400610055325268370078864914960442552345255290749971353860065748085763396199690158250967817079487002254691035216965824648298063079062913513864345370874207880988903580885077209947081280878270926840878138425455999840257451644915639411629190668160626225855952241607130726411008079573493501515532014467133155604581744025160990713960211632838206835981426245251576964742756758777828207006119725089378388001664947535597201464380900420766314421131668507520771325260069786204849021265877037983475728999371099561905898986842404795724676205264516482915790211007093701643642493240150141049703825200268747676691477891193448255333028540398479123462516165760145819371629689633162700052136728647855771191263091145520098932180349295182839040939989553440098077163766649574503514829639450707242113340980336391208530878872600081957038698490432274223536273406517482816664264382963442262701529115928196300941461642794262975110125760243862579597873400321850771553264890036600205616038878983300167688998910124427021949342480304492263742344946886749957149523025520475698360015919763024665236892143780737498973277557420865896913341397878010875379625015087312721117211228222629964074170952200260371746922973498102832021801066444151626217013303806048753469485417879017563217188556024699667494089283155259812764811636105813817235306916534814794297674653817359001177900299825426308352075299357207148955464834497815545297430450826108647513918064720969034920507256922398551192519902250204943418655110728493151480435821874017527902263101078780288545851057213079131933370745864756278801888050218589151332507662537230666989773626794040615643254630954374400776799485027318873708784231201842333467823899937992139023082487836922120928825789193092932389250033598666431565048551605262602247062221552516339561513124487727541401908959129539507488340476095338848158666489961851302736857185830224468679551186848075655555565411941117610168399758803102264199695534810025673940187306808422273927427533217733407050264321592741242334419842236080207700342605203392909411724439541657465656517259099574049367448233320426755238655330487106664827845839779904706681638976256073116718350513255386316719801078468279403640072982545825381780261785318346758654472745406349586143843127963827054351439079927099442580135142845850426218360269117534857303687235018457551495613989573191533430032444644211934774231779215982234513397052924443200972479934263665910083832087199307511459209874699441199512704647316780954943767647385400585945834106327991803326966919806698573658128810472463825538325697365880935988701263780650083035897876694285246278691886608602167212299074041393656004242140353006876560885215281389825904303720452649224767695845183082391458581399699390586597173822475198950967460164649000917753524091960467125897090900486919616076827219951773660533980727669755622256884357991170013580783395789840768532689266942962663636088942813435097937106017807230954834698277695516595921728972067743367861216720603983511564218997062536795450137701978323979959098846146772633992492031443377128293755628612528813406438842394991540016190456151819443701947642724692648443080155716493537164296466664669699200424208967142481565066684778498180630147046044382739831478256519291960361462962477766410995358703003946101793791857914249102613103112344552775457992980650000836090238309326962770835361923243024569132481168879091624971167928732437017834556524731445985404697200062508869444841862199239898865265594481047753625713016025396130699174371134076928865105339788951656973059681399906513664355484232423215052731034189753682092179524879305814622862110389432566397250859040087049562489323633946057536094383439232478826144706906959537903990733590043918033802013159262220240612257208881741409101931769815316886771886560988429120246633661489014342781608989319358098469755068991927752570613973894874693296911082938787622229687036998546761368574311874649169607911440078297197103524370017901366817483858723783750891489875390174435080718676110664027019374600009438517608860962587064623612203126324403008712112025643668816207892513703421854933335192623484372140015153450859646752287456704837922875793184648651848650714159698292755302376956501538713639236044049655381374863362440360719553517978403252310488885149902606453607286299667681113620739146599275245171232029505680197143370764587783272108752880556555292979219079237515892068880789759400147344062569093171406992839181393176410974480488848033968060175905652177488864900481527680761963612110747201817876084974194471661583782634930068458064269106903987129917290952997417291425072286419242071819547539504554834400306209705342551336898634127226533662570549127927631949186885614106305325346019454707133000702938091262404027464750349235689294559591877385909765092667442455294839047261460609167592574746909749429894500763140848410341044765660457117851895347569559070512278640903850821409381857789307508948168164380227233578072107403137150457447319579589797070541358453435447252710262703929525684913112979325348016531194101700514720355450814007723128145896807425806825308639996220705745100729294331198815991662468086406000501793485140588987214240029822724749048225605488809599019673588357848527453851997412083139078738583511794389759496177053582460152583371804468988469105111221644052042283806414018902850576044051341857568801040395718216662110616270018759021611712857735425116407127723417974269427421140346856123737488638962187647047251253551127225561827624980629198502899440653181368836264881051083295926586192822853387499658522653783943819804379518668968121080608857415690104472969160871696595518601385315764132050982727964418741217167035041321001619743759042470234815908720555264542129672321840407482891937328471504250447948136914736639820681864415445605298761546195760317417197030174597413677047224964201773252199215766993263101778337097662099743965992918468478675791632389463659248463419042626103096622221322490621797565946237899871537330407585686768509017401881453638949599013804149937902018571189282588351314634618908733540348353952824314812538757851608904981575555133627707161857804726576591575217150926474760167334980950682218117844678366428022615641060073389996877052338884902456087407528417972872431640876991580836320370127694664400781588468301042421131546989128306945149740181514374039448926044762398066968308303033224784851056041989923867106597448206721540140723622012302971095127228617034189156721928794887940822585880376090816767170000373621128070166045462083842557974698525159762690147479247504919143550626546034696875135256389606749551827870148289419690428769246283593285671506471520331995579944275164147205291725389216856453245410047193371324984691352205682153759384388706503240254569918428646364162637833894446711508609067918681180529647352295564695433990849254550812705870790652945849656074550808332503400622464236893505898390390771713566747268926360810827640595877209057868351127466061085106028889955429112648549555909201923916545938540099362553657069657328438427503075973839979978377990668152333031204818568669563474817984590926230429574998122535299442735019095954478360210065864672633220006702410239945564260332623037206934299841266020173888295632328276832196225378217039820345311687724347141301656897154124763549825415049248732707058671687441885454576655433589933037583103933555350267865023042620482923271472481618322585790403013061667924833570490919287148625336710785715348614241820275400491025349714756125749529469887455223617296992417404373523053776930138514460692788676591869582539768069357915296141770261467912347231003887752925733755190858139649019960587208119734942030271342972821551690265719845682100373367345887681164572124630686362775835241514962228475616496446028898224769668312310586020263253376871488051776431819472455460217658078227083981676961365056278362978197999705519730585981508533838802499866418951531365773258976513956041248009302656282635832967754002860355991742828882905298363554136685475050891954285685466488451986853465699505332702962329130922013675325651864618690392650213198730063414942421682382437129797189429738895786354796510920301228791214528061432341926258786832562677114196929214481533579396625948916608282775834137919080548182355779276310908411655233846782438025018441005170441656219879416623213242478277636120043872914063231387227574896656817873631358796368019452390685116686070413790715080235618502475521458203422177547509436322063706120926990027528172711993629044060571224645359979010196803346050650980858355834467751366530695508887092813314997994811707671332712329733611095794564702284748161639754333421621264802165524999424498845242870225597725446241008757609959005547655249081893985886515820661452844698642058625295993648360363769258180401613115718741979755391500975329262755444478061865054347230039290884561938181987658519778731438561849155505064437775200990245746950357731007969248056585292268134885951822889888692709241018768827043130854871618613654871728306491118861954071646634861667382481339480326950305418329755316459681006205464991969630629472171135265225832900273941658227289227669772929081445828839239718003582834161522756855394475869860087665556205203839382784190657789196934471135526762463806172528168812252995159313174348156166723829664839056749941473347309040818138498205172114167233906742085429614527181066196242288068180942533480125768987981602278136042563487140343607265816735258667780726350680473544109183325576452341820302783956175612044053363940197747084888410184118498044620672791166521528600414864114502022376851078285523640511381188230477248914120454203267357837240914910355075879171901900063536000418718669865914991483198231024177801052903224840428638348365908722537266916243944018926549730212370112113540369314116789898816855673394828688352129411589031895128174574766489720429074506984258820882934356458404406040808257385262680383652686798469892509317751643351154433413301087925867842195363297509734449037058733531952904173878567539808976194509864912932168955340421678753834510237667543345794758111951905137858215093529499831497819226110399327409325022094590882659414773407925540853244492200235443748535909840337536579556273471294591176061975734094163751645249307352074071461540275068793855942613654826873391492170349154794622633796064083368686387016367527598583632088109825900464881468614838230247473651566435234369113128237167343683914478294704954495699026415787622550287203377308451635112688947003824836274362653718773649461463005077613681323805716668046622379086196900683607063254156643864997806279264087429735591317144852426129451083339703658609166183343632220192392547166462526917765396891884782217064412017673223855487949348306902295656761376172870292655888751220337235211724107091961046686927387893567794036675550558474088552443722165627090783808549823842612289799724924146022756190059794443848682167350370210023526629040877494901938868120257618934419914474798434554500524982146940111860701431974466002024709313308127346416897316233175172382997913044259182651605101536540230820851080642475505829197197995508903489055677842837752343010432273221443503874939867514013012463638951259744741894493699335080196504928051649856571892581232851848802502457702159797047089134462050367265713392356422179206696625315881452813919805307058084640815279766801587785732981526052417310052320304196503934370531974680478203621647626495393082741836136140794102575308425140256850680723999321641878865985584540981062790384986710809154431606533442991921170888074023752835876260580512777343247306322629536110699461395690338371875400648033070086658153506281227435147522081543837200648756104709934533035480586624257191542230002207952459777490893345250919422159337872091336237084091743691993548924855940973848233457008818887262643225150770828851871761461346824093446742590847665828401202082836743439330166331784858561217655773790969617488842997187547409831238219223430296160040103613787327369464411193760197635445316753978923321270460252378686606600635043021874490324792278791809704251210903281118668148433623172611766088319911556175415226310903846938338351492641747891014416523725734225788741420540026793504691241203391678940847745755477333489963492014663967749831579722124585829107924075877625797685437844897991437162343397117063522539688790654401258240022607706422494960599565321451408282381680176135756005049240237238837076605949543075434228059376804546336845717328757117415395711921852698948327992146992023759104551671058206809991175052664574506863880920122642193513400476478509328725936270092827206799407071490076588765678882440018668726642948505348508382968980743214617923160298625569461540386789749863367807032814283943494926356141169357924757872140741993032159793941993071814783085148066034654296650909882244191777830126661298765073873276925913709097360876330876920800845424797249613554115159628085360094663049232051361261510986310982692522670899270622658361126829565578338675998367546644003230692070167400854519677224027827763168911926978319073562085120215238676928037847453466571225224708345378960209444067742431462793804416313353335989523857334679311739833220801364153195283168102269927577087826655778039941014123359777206461298179362532411660038401770320704533302430227695676659249267406834280769008592529178614780347226105739506367539954672914518109635285755743371243549667712172051430036081924282541005716145177511095994160999067161602167941379969638171107285451571584607767774904290453378083140049375617184822934833683605580766923102468597530159176715925871032645580241032855999353960251710693595479834548417374538378972399994611687533229008865773928753533990993299176232739028532501380658291339816029522114108845640876236767767110571365926071812633742252921058487982664045274392030632255958416302084707387961966184487603381384772374011634504574802289045987907483882166293487234537976404178269475573116300842353184476707208471993810202641764824852635401460013489643895942279046340090035598209637092942873931649604122166423868380612104223639758859072895138060272460685004129070331936253953789215438719205896232071953244682465415567959780103042114050739799665757990937018212564720219040024212665460147335719930457744394904209356516391901023644559287052710352979965252620101068522468784768945773071573511374288847942717899691427193249441124161695138267461182120717371390533347271155400220571712176488608521027246486014283699402445277852279861137298663869190483198035481965308591901821804053156443051986825110218773706160581893796571254765714170570370154652226353301691078924055796328950013543016031436026585223635154132553559734908607364729903358256346818432170279653546392086042532106007539273415921054775018251927510399650160950475978783534077572747703524794470489224986775788308089469518294168360518863509739465973582521000318187174660142479535019818088144341115971624146884483945967632692064022244220197682115219731345258515180357619911113415318555418576390024620364555965179985410352296852784641216885164328273128436630818477378068305581962385571975844358949034556212496987250935563899707845229030894842072583933147695914436457566641750784051577737802253479312425157281127754366477358744660744439330294292447773464970798740249531207325921575688519923263315932214141741138103392502649118666156808785164688796345927368180879685511180694624486294895962733986429299693143096090405789092813973799386917971614824160428489893561449460528330304861056993600400948739061800258671023743160456007962745649539624075174357413072247986292401065836163834684535171605539436051310466071584452139907414344712123302300388432421203468413450446041173547896765517965458653251734974216406238090019262006203540759221978219105415026613459414803911197422165332858088603048044301210304807915849102442927807845802210191232844890152761802671277867606906616096515381823327925325339767255593594025603737279919188991915063487857123824958054763054246569247198016565442420526535995115849360292128826681500018667514186985798823306073313047871272720990357665295570667592984146270981462630851994802783298458659378924363364966974169792222002841783687996152109885379641686002296064381337666280292079113555393518178159220953215652433899027477173871999126170843522594887740077695389654129334940599944399735734283385973936291864133851850593546900732098181159572558732709673049226103039481162729076640997781736962615047429859984337418262754664236423574262679760425343676410848291325466483460389744968199789074136897622976681085494280151457259082967960596798748218917635433070013105084478824229796554410641057548708021052971454427589988688522463284891434539438161008507768111399483564670056286540214396458237634633121196547824921936173699953431184571803303496113451498153682389200813093696939609469421411126640024760032395491302939832467031640854401650954759788194429879762028452131050752841149305032756413438174554415498330224143056443048901319883047481147851993996769709217321509342188351923760048261390979930281922653238846890169885801694063896458516807651054551069700323909205644222615043438551756654177821798915019941637468882917301470652734731496460903127301047943215836107806706405044724935306849558540052541309791209461101736331995742187135549509516283980957909073211751830687911419075147501718662778452229070089093526986633339195848618829793081006744482637074487264100031722501189322499471939941356360009892829171875638091412486636933186424713097427103606447892931456043691322395636055062214967884028313383293090795528814031914598060445257465849544968385231789999994300109778871456163249395694998045536295924507192780490155409809275413091567936337267296399586341533068075277329795847905007139556141089792228871614117839956604241406187530781674559417313941868596176077678699356760190285936774949883030613265123299155252146530652788209662189535179739955657677560976166589218660161124411002773740984390965372296247615895789012729698371668108396289698831885605606493120808657514367882125364250800844332376837327012123572221318218143917669909874838750024350636183843148535798767436104991848066524880719916844563613312817810054874032743338069790226300014329370156868489275538162336921669293985859593318495576469373284190760665855080499723477103490954317133671314751197095482135508726034842080760726813576165697181690860054882917822384659938873269481873919460386145405802567226534903230798058994536483130501757644187156491227968076730675129878444197945680748602770522587689655588836944043003139323876004462564610513093714769567972867038211333806521667731864622473822481023769386834169873068126100871358973187923136046384464835020622029183163529140314514472939502924844582447601344999093132183869529624683655418576577101331627678602532318925848208221704071654731122708243856571201190396258546111825701556342858846153476287598871222668178150350689779394568367597750321575052917533781875827378040809858555409899728151893858315960437089655715605375311718160799438473178438450621387478431700867894306147330208036131667183808064314320097052281067107439306004630233864308991310040986961267472227528743196980635332864814861398664838675495722421310684569918028859018288020012398774090305195289268571292626958261138063134689428046619678328049543933498492866306589325283604778007917868278947265587919291352629960073334484920305408120830793405931255737045597535457314979019650999149477802559098220051168277539648985230085627276243333062155867791104167093390867236411076309105144858785948350540131328242865653350368699647664358910838683296181421902107661148448230694445531241048762156932951059711583192021198990919347550562629944707741290940470986907833424254014615281445555664641417670461893221027697937838428282384971859516882043874121149332524285310551298250176759745259739926503130658236183282042196227278896424320974125954919202616371309802226912911180997285736571126711848524961622816500470371395168428033931195476078591530901076129175142065637137113164735247268523446924736623379067779593577433901537891551422764491537604250259237880040528781222249508236615274293841712131067396670030082363809565997438207696956668319441588088971009420748901433712947714440841017731192615778056910666346237388241880321173719212999784574202934933037046553061251404229718114124022219764811942304295274050515128540469071686846652859162954096206229792336012865137278331354781533322699055053388217824689083896362458647910350579590460438322735580803315851248343534803306289448806574466408353523548439862061603856146842700830562493439798250113989118628746052572515892263895423489931703104024807027495515133057895267349177303558958658092504304167108198168300963340208819528442999162952355106593540848996522033937343053556304188957272573623715271962132772175464176886627065587131933145397544811596413039321275211125739208788954028330230960664782348728436011498560091232939181032005542434453119925972898048599625472869388260519151025109177631775767875309870336667215986724590972763738487232022737006381548129647137432770071178047181891917164487832421829262363349061522461347969705835449532027982324654094933670869361101125026592405671292802858786245327895511982821309701797504170342144957873950414346435269717456203255041302959586661295468235437371801349380635876396608407255950591385529082306383293573421744350853971899327074822739609570497744490382793006481472926129508288659588581456146772527693109037984930548978231610966028943964380480049377535372312543293113726741333742643944442341691656128931943249639451184810360729640819297225140980996195010991422413827733611603327980408845116501537053794139316935633355594513894333887495787946156500483729277296560489828938385767163904201537596198021789382246942138126385611756317941688331644380236978498587050235050881424853298597249925213198865514262446000884385227536625894741111031206142437454231022766741742954903426492081494494820875436359493315389140145470413268072280200076049683182943779995608757830073572775131372532067688197198573576874601892407379586278970768694473745216462840260286530919574403676001259871519566312696733483597808990207924878236525658878480518303514758209139361226487752672604766816087615944070597750649371380840295903499259512971448014815431181859004967169242723194708770517517161653402378294377805267381956692954991501489595446987873036492611024118993697298614277538716523024026566285312319172798943506458114817396451229319554448122311288903731358026069473559767671424993070918495588928287799442107684150090535595389524364274370672759615810572832515743533042964394860980077420224075078852451419927637786069664519004330167418108296478901078955095032685643685025769948626782311837303839199694526863820830466408118428262915973021007031134796715177557913799690579907752936370354344468716457202619516536583618246045003575895565640016245672314696197320743594707992668210581668084737668629254605186312357748934675388991706576510118460388520572113561155829995470694055687441857998751908934245442039147441388304704493674198509026994198641489978012938238613169361646480278639519556632298605826318593601131658680391581918986952794654875343578277178287170085919429021202234640613573616558911853814465934953016123692094395492351624008591250638998067598960801209917785199484288635718451618683276946027873216614426223721757780208223819395807796257983994278636562682015423968248947577652837646660500073107395298012820212490482032282673649637034065479436436265617888458656290567352581277004399454418252070686918313355798756474808703363609448732966223013142639585181514962802308763002850136486751811638994237181961865475479248211201203192665207424581196337921489416253242300832613878787072203523385201244554805176366179213994006196472223190763429929474182699002133911154478542020086056434530167529075583240006338161054521298676332642029943192751581345540467523836356431181393766569991526439626076655288500751861958871705763816479315600288119069310808920441377468837836101491941114226924710931057984989187725301385957616344682071123358154284460471461611654128483467065010592813245577778782219199452429847029535406785360971327434180386737371593641900518488376655597471281643242567593820242071831388371120759956115690679122706729952200849782440042124841020971714221205440512409093086528709893233528094421814627094428903444591056188303043599794268568166271856630190625713606687367795440792714605072508958886653521123749431359594273106932598390156172370257583707387165678547768584667265903971352745283594004340799691638450206440044547361953888671936968332961130918548959262830734026341303013240690530015675563119349986245162958380293269599046183659281051512354576683895624630553674112935100906608566582050928213481869882863385481109135386978533461936224609215682911176350381624325546399353478797569404222661230552052943390492452948887682582636926509789445679452354332858635009395946049109797675241058894603184598714408810104274014105691968063504105265394478248576614827429564641762424013746205712840310447422079762708198854109987516421021232497350718021771778432390840354875864689567517015087081028733876525945080415886254369710496375660148133709053271661163676213108404697859656077729370467758658111008501255353306919348116037225341056906089288241428480032178894721962668349179067578533806372021955920171274284090849110984979380192182687087899014173340024072454311962257213246318097383511775014555160309262341941258492795126882564829897440743802176425716702226518926823769550998194977580541001438245179320421457730883283319750672264325441337848426643592778408813437237075641407909836356997463744394436996228793830408940194543319473112387753157039747810603627208336047670967338060759763049345013011323556652898940244189305340693099318195420221919890923127578463042561055405307383333326482815399892580625780439114195228512799198910964915120379669165541746994484462517669580628420268991167585824294930674773712967575681511268700976274549574983678010028695085930246981578724428304963633533993380238156959658968949415699996347790523357537942166611703744444596206870651908242876382750043303162953918545088467924404278290094687791039108144484134868678782519403786701543715342025178025618066783810647617153637915949531136410462298495911681447444990227140739347103454135744852871524115323096871537850917110047262342840291884449310401077649769917117884375258277282444433326795082150614806232333862879575365748604384491921340542208359792281886924327515169853385137979617733350423765368889988808705189957561073928572464239012144828210552737282236777490048568892529496927683214522578757505278150566330219208091918720837626278005963606251355281093102993521816702526158700931560219076333800636586367931951092634642021835171513008146493433720210810075157111853909577923866519196113669886363152038976033998225603017430777654702665278837915711826488691114307141164357249736011880474881408339869649977591951539862312237922937890645014208459926203109063290098153008247819143524156005216440107964417353832044973993066516829424490308592903152273932481594496158936913120607465669759402571139802909864581012912392586325745019431742294691538493984900421417321906261768742378467145072420183845140681535337410081710834104278346675904714928948173902814455354771974784297480333544305727887386949919997717827150490775676827647238221615529419331577613989455054580094658986328054636099984851523129569185189064228268245293579317129841174777041598181204242886542253736331855470725404169570711024768773024345447504313069741266431622256559235723588007214318492477900604667900300588185448665744044021803659052355728025992133010953659024134093612056367546587080383084662057675288606457542279181826033994504407248938093296598067446652436656193309104045217782744456631863190049629891279892414321577598520495337417198204439668789905508797869174267595978933292048977647369717927722586352745912578988163666863512111966826491202296023776502933673836955524765889745993449688265908569246884026995634683909373318580492641231219308642766757354156127354389029085992929055742864536702258124401506258770515875070982060691074318246769900684714766401766196431006464355079871450033781008667149150438497996174856273931706569385675465928831419543677552688954641153060983768018971788224096747825522891298624671329186872959698392544297323423971495657381653735246187686880322687415707128479608051698084282664225724340614408686788538222363851773758752280073520718583812157700173661149055713667803893035517366905258510684934717723772341617730580967200118459727431643680523177182749611965132556249597871380249047813811906378011011958199562551531335145036694798164318343392157356152401886800503557536965970974255537228319590793785235545914501071424045915370861880085698686361851547029342405734154663230324246571782971332498501648735012518199109812646369619383278281734904014413384925753059013187982093065787417235076196344830034836607857837893978471812808181722393231204050160354149002099241687405602936429658515367835295067788209455796243188579812920466060416418373903722722169670445400807350359322902629864172096705011969208871919558065346541525624551564446542139825638858910803565693702941924578989365147948963970773269051183099287711683231817833411791640843719642068295733254468230160804662758982674139796088137451534291984656874477801206961457550358911757297347113323185499147537891571716118404616936694047870809914933727691965273555239405852706968465363811540767340994495335562966837041743572092649774301328934873153459310414675338581400702249093626894099234591779137405071972913103876983038802591124772988548350881641704254804797347205481728033418521842213848134447841717414150120219904253590869008111823243582133631704862395020991077284497822552265385822731045245224182438235556884254476211791268883262086858533339520612943848518495069069136792512601980668647539994051819509492065380325800362992476191572606939904701057277222403905825428472316106221015344495743647067581469664901983337799573015363768868486226067177204808401929275878325156195595553075522215221084192478365396171889342072641531987143349447343506724862069090383830509295596604839173741261301838238000765131841087529011902921014113092251396951617364128766464884859819576976125237422367119735223250015407602294204871562135676550329010706849157133907862390278283836687043218273331783845852855288268079312652390808159769631269533720332589102182833182826382458649674431869301815728227147888401364724157511286141881838635979469714550750261690034733035470139232270504733145899529903795316633570763229394194691538588162090019920334911638532360704454217243824632204030922507920301165440311072661371477192349335815695558904856270779794374003662745339283187248804099404130092333796520680605205807799981653987053057337498740529111004475068046234861770746870689391667304132975050963358468905302019018293973100259664144394147701716450948015558128340839058352860915686811141726447945646091690480184637463347662495897301200937552178883570324704330959777085392868046227940190986672373776435862184879285263317610327618452180632432827469808968828565014951190617611938576861952653738048322727088295310094773794629880333204343168311520729057824489342441187093995279810403401318356681566411989405046677114680254077551912933613177014371582331055979520083816390241306192694217735830196998173943731571880125192150035208731670215158452627735041886635111340442908660093994942993627303151800796721651133299390672659308276193036184712692951318595191311582072685249372029116631262952134463605549299171167357063984726150949904962416241608262439849737409523088336783683753131061717994235200791860133421093948219223962649900038561860665651119664795078632676135586432110529185520339394575993376057807074309239132311232803349167772690396771753164318405511800323588930324832509660284163454933837871055908051225894266767476124688836786782687722534012754775303017581733634552099774966291726315251791079590772778160593686837696299770015931725408365148939023424329876207585541849341989532036810909534068421827569207932307881241348508923472780974265393735046100902656014754931044641064272028970571665344131555947392023781333043292651597122907998841253481442976412183887243820491986064284101315590720749295138721741553072285075013824735701246908473613454997897825659823051442423621116655820910015645933239691195624364970688927521908212921027201523078434908113101293647064946960730392509386731885396540447538881887501070253305852613656447678598705239251428994873532390735394491517897512116294436409682802185081017836498464855688771474253262973821903976970628288471041526849654459720383199016428546404188526274729763419215281016532831344286403792428026715511762198813506529479516980986189406852343851135594679547190421367508813109957046701358393752226241251976177243137690287117006251026352774190304971034754891573928408161387874524456986191616247706373964551965981205583232014262653969211282850018602108780105647957633703491494323207019792522354157756168983398988008316801954489305023732467697252535812334318712733084847559357706979688556350360804106087901980062978321690879737648081438395066201063390670861904577280973688631356316388532071519305292700490125185509355618431340463888823572790038377990139289387734698170810196446078415689480715597135365184736944690712455049814478156225333588080207793156234216471199519777923984858005159249234149600567104900002470339511919145674769159904247420125175599216058178612723811576133002197747972221195438531100096984917164843203740674814086928400328330527053508632711676235356135744177326371845475275790953298388810067235953391371088236984648198429940929291558811578443486100684138934724482743261164333744059117264507962036516019970335957878923276360588023494856651286646488332547535753990516038620830178498378177757271903962623647909682382482694047160564101585974143906088807759898058762725953063956088495068399055554660041365009417940568347434616995329253687143542873373305945146284263407810630820180154495075618135530969954026325921865212927083883602118671646030244300870230192849057344851971238343118971141948827515322200078041696349841189904640748572517962562544811707537143291707471017438921106257764058919341901662313259217406077550510422479563033963533995512807185186911466669909324988262104043071063519078359356288349750741823068421004023794362230508162416550433592307015556258189483519806136589885361697559186897279078718524361722689554624166806526472872241151992424575916083756848843639310102262106056304872478002754228001443766805481667340897214443698878386748851824845008318444375162405538358158935379078654133691268457551348813541712006222837622963109830660428780501232225822265972131266267929473943089248975194789851808922860949284106206508140898073683393031567769604052871619042692765084746796814474532831085785815534311376661082780906359703929132984712460788503878862163178123240280415586758701242506866015163989460860424079903707132340067701890014921215745078941527885287026203932623207912767296624778390353954791931932739862855354354333635627974461473958990892499502790576202139459026469228886643673387775275646577258685695065974471259738703265586453374559053440470978248194136706929078816030500579934769050325148605270715227997213631046860552163159717113865404825648209008582178324348144536023146720785357842414424539191173871609853339628493106798083683417434666952736090498560164148207156095695715991168171306699376861077802896811707362239777557978900833897927553004493350461071391581803074197913885106052386329710983594003954235484093185939823381510869141235918876787539495734257756904914006275589028738448529265770283328659492845205933941516644088110791693452691747170258051570821805022707306911481194838513648631248811962891666915621386324000062507242344464927537512778839860026693358178262941357868148865821196066135386326828152287959252862550027896962733482160539874574006494225847394768167872707573846460682481966826970598747737695035775252022328462534701197737103288465447459366018704384814579702428368042637048353928030491662826863931002160759883612479607564813239066351719794378428603558323326006989302738608002045998896776083641965370564413426156419358708834150908267959556739911149467536055412127430591209235589076346660678665232434278693004803686658447589094859736862332777718440321270614049087633732435369802666986455853150404811385513123471322253780168505085316424489468836613448353552881807171692793809711811691178815254133639141116693411472438382860706264089827975792846404162450648967739736773569021231550089325195452145107729543515155006517720973582240978826482928059154774729159870766957956076280035219953734523866482338816279528922704511085398159845998707030670190446929299036195113968900733423033986678216777883387281659959877025277574307110371954107960399796913122945312290499960116230338215672612535424866628293870033081671731082822740852688061009447426756192518043632647567986438623742241609042337275430163946468487161298093257472832454630736030898677812262044552667837456867077808624895482377099150623894254940343916974354469457003794571792579542394542509459112500830671703646352622139282429835724761532327003811545488451625055868637165739866531612810771160756720870761070704477585703834903518796175456528264926706060457732797111882657549461451694190497387367056994294247265831526378542607851659882898849396681011347155326410137747427041053241923163233257319851562205780372004359325004183322797390339088143338096159274565115764959256211718555037555511019365873371019012447184510762291100790315131715167865742385844462213333715243785006640435592988593220880437921403181285547161378389648890172208488898319155804213878041539505750178736054629457329950285468624688793818744590325012291125883809536586275775209420837791332016060560305466630574790475154481821324903713978708762254783354735387777527478072627955014950441594237489511626480054643706990699876050786804541967724773593412341013710197637562029766027995371300189739933252543193053612092289848128377323883836125373339974555314941001869861383717290543604347414769419844475757815928885813100236299721550515389981031676137562142892369390800224378719291843052619750107625187498839869869518139213438758243439090016149477575515913842366118992304981380813118651751069474044008436820129286181838055661289138083988283661858303876618752151684943423009482161945311668083736944999950565456800005214339831286292820448044978771589793092204467316634415238263793187455180919628621723093721662005695654578655033507486654301036466349028654121792015253510982064290018144101011617725039716148675735620686709897361160087492210377486916795924181318100219410512162956093786449969399632674101551966497150678772108992542336161669029681079970309629246163528845378491421222552352206369370678943174204839957815107322155288788612361124374910037317974715033231687735387093477609953831468845093063929646471425021708962225659393704280307878021899868859539510489233416106570647020555553012960835188945196030867869137801556298872395080210582295788551276968728054692543520661268645392073914059100135663895276185713938543815095455408924725635714860044754776476350054879861556119853019508719826052140339117335020189651976659106699125145376281200774521516934332714702837218785787009653334389060254735093029120852362529938569103407104166300491168200906832025350010177345487351633101176864843719349678907727123683057319597040893856317527269621386300179007511376606861255392090296924667134637048315106320810592137642444818493236821224598344724373389074898915750211544876049812466482790548191212040232703234119298381935546317557574033865439556254061182030685904304458443480528886701961867780874445926043100202031021116323150858313114398576098988108600722505136873570753567376248513012526180517991500298444136629992640932870085956086089188877234153358534233079516347811683369636494957381649223818417725985706027591977665190118848282452660212244693341139122611632296360961041384256674142933309187474741412935110954870309137513636014713781613645821907210756288892412343691391419293612301039129800388026570329296448559955684413214508160804698859193408221219875260948638242831809276342167319408018155663405095109125162878939280864313899641229019051302864442148599644343211329256098839194908317979272913931576630684395932002851443023355895532117118846750347132520291723311311170351962692902144684180216441025882163440023277125808119127115655472378692584109023806050791357968812274124497717309250270675548425735200395390636572455917871738100648674548602426595213909509164054225099492108230270774789606847707551784077084266416896261593113550410734952138488318842692097713637499575124697570943182907557322049819518286294470990865467203151691973904510166947014396366503361977101408848270651619298551322420401760689726728486001550686369037984300259927143831008643330647571330277746251536880616139725798639152495054084136974225472574937670322153644118916513860993865996754432094282558882418653835160853550775684247571833451164125815370317057317871959385120612430579825538815619828401123733758785061699934082290043129281839382885603773137224849476317371308584185780059321571253352976414523420895314385982472464404299071246127818197633043738719980737933171213059694513717138052996784107794424115532303666528779325177538896811261966222679548354515200294777029224467549053933657364282750563192880797447384994178757394508794315441268619370504612761839868753660804225325227126391711345982976079306787270251721161366010751917406795954400054734231230134765939606427607359800095261952279288690494698439186104454175298724167078340576861229419747998853860722300221025297588990811771853098698463443999518505697141058610963852161465968172734994278647754008237631659238403781743734062741622879617927174758286764912133847683599950927140819447744262749428709960029880266335256306520871534234040493109327972790806029831076712646922999731552141234066571183250228033030589847320031982327911771424534614935391164119087598390221706460442687645001978366771344565847285012785756222732502253293694665585506080079053720978870359021450170715823020995941345008368778734435138702177257013236035499496323921971778059095888610678561203328784261680183547872969842801078150981188811826104833665957074441050255952651041326519447839022575245830524864500634105415062151559143692246226775946302289808648267760868099670355626081141676424267885016671655531881765395128602431471969772821574536205090514204543558281718189748648333721349214291031113435070425214710568573858090035916890212295714221643522812566976880434518155495986466700585899254372169525050074547871257692949610718873770697921836712300495776958977517906536349934773992151756298927284376747704890649563907501038808714925735758004463141847935010056629526886239598063382080602079093884985031877639538261423708567373045526052659040184389138903719339484884868023678184960379934242958706925907256882090643008942008788080472506694351589404974689915357535042492791586239065781407567449860309951481125574333567818490215734416201100942478441017213223902090728890791972397717332185224838722994024404420894012297296980783832068602701669654412324427565432030493418869135858568202672871266077052847031391807115138524108096124873448501621969671837175348234850552876904715334791041004333923034381948729679868496653364136677767951014444564456443577583153200483062356030548394149543246558478447371744123752926561795044739258162547290067923438076760730084527497781469607104649945922140863865321818797645556946138617872985675232829532206525781996138529023515272318758835731493087493906997652934779306881295270219598676439240763545292349371368550234608116214318102456835421207916021209187681623897971329892812478690281033565196409356531015176664552177843176902693164812561600489880100093001344020666226122456099549583946232787593779964258385226971477568011589561625850987032225514231448586799896277892394259944328933743437528749961775812349880743619932266463203449065005177707923874917866095311366484708568605071838298423943087847545186571626620610905291115520142801903506118515936181685536456992676192747875233481195197362966039018480452064406329974704185300783312360930778708821578953435608808578885397465841342858228570154737955391877906508521004666394344404754660186199613644770177224816194043699687946453046337492520626816150082128547159653322357081985060407863985221624788545793352167026502258500894002741163558100703081092892562804153463223975859701388533702435123182124743683447586718691612346502213929771788046739476904067597447495140133463638736933951306531024798247285552589354849957530084886539696734099616957218012281147822665137541803382571810391545116233178627378427436303346152875400309342096296980501023235674707011883682737879583734052867910785234769788876053899783456778444616143412228605767280619996569981906408555469160850493362000424866030304710749155412228405252582480872765509765427291683757681524947813990258746991912467971651742573523115606956062902729884393716256489472049804398234570817652651325861618707259774073217170176106854302452420799761544122012621492075709847937257098048343399916570079160193247983176939029742405790011995606446548866338087912294724882918728379505537849642040931114559638814812794665880466663526357489602909822295064906468903662314575048675438332300141814228794861572628038221893886055277916662881351654140014736018414613087500156085458989770163545609319945044606935822813130558790993484996922098587013266858897003323043810500504423453396497566807142020648038809924513596366962951710195991026325259120410742179658513957570335344926612668561061749341968025634021365379129144672428815650482696325834555991999528235724866127663540160241220470049940606869396102100275774351523621343802482400587540967751154581272689934205258309416133272860750507118708398859402792798893060142714436930468586015116971456713504460638252700589104005966250502004489839785937986292890960856834716509482880580271865726636335971022435577437299887081284032916464577997810763282047590068833254221693768168922102019512454632099084149914136411225445986873981288139312167588526091650830093388736935138613594602658747348134358939669626298442928403579075670803515550545815336775478627356434092761538706542791139136788567668792994876630564071191949840289880268152793595712722235368631948262489653723905126313815352406848759221054575872264503852327285190202432021005526620301995479686891419361764182193654978702760833748789305757474862846346115253969600470283155537181284726034815462367338145317518952428476207953884281538546537629299276714640157961627630042974161982621587776109888114816848649263694891976432034518636271213807764254861206833447893875653982751036808239353235100662582607447794651538920225513864502380796163512560460441445215179790991620085237187535683410861618667122086966582239379087819957103410227181091855343183806374308024822488149436580733629440273057926307474105191509988735445188040066463744896504229814772555406715618826569928246835411442501614630169824825623420953148017575572597109854487545807125199627496364532519601524220787335126082124370499156980148497689418455306906512059518520690174657093173777357357679073386527193842560510035579530893052932395507458717323341990857119417177855694232207514376581824805604023511449555898156920487824605845843551951936049312222490495891402993542356432918442282006015069281569471190711147213090293052355490245892275322658711226637469276628920554561812445022551966220729231128357656024202547221046689412357397055604176356953425137770986502222122859633041122312895571041703298324143785151016217139623911632427054756542476446420819119051133458546809626565725261080142675632629497343972385696529711330629010167839573757331988873618939793919384814198890892903559613826875583264453881141873913584031168743280137921285660425058453085266659760873694848026369842128365949063590052050856141498301693149569761501214474705304939089039595145482364977226502413627940210233083057537556613143828746741558893025902840315351063971385127569514162479145832691515026303466373517164036903866923246141002388054887723107506140273743029159503990101279988783398743921131124781645611535975295499804546799316656060488990478158675299730967217604700448340328056501323322518092661716729049804677286745797122345331294608724117892954642462171270607228681991065352821462636821488263045816106354006130630283481214810292014066191795392553479843530432828093379182448463924064297060841912176353174574963231333447297260095365349826396539265961401732512237918604076394031455090927651478431036172324005032194383283796218011538961039897086602372420680146026596893783175957698261790263852776654589490761267047679152159853898160688013190821978552453119846477857353954622997858480756417066645571149114599467961413892877030891955013984372839676593012634707472882618788835693574274996890658931395098388342605276420211205934932326955307466284374283691536449134667792800111173586977449235278268914261165569076771218833026691569862284483106479237602113423197869966884019297515986735481120765672647727279027049947917438472642598374624542154004272022977081436126517089143426970386807841516115173610915406047102994876465064813525655730479321427359524533253696092165429700638964791979077976078967776639466019480578576470075802327971100772808209125340228976323374212061668673999648692026565459579863325918731161233242129910503971854412237903173853367662141200323188224761863466096810859593060116339249135285970825626758525669123163350505080430755888626397523609504474762355389720577578292134116858504235280668451184495100458983915350321439165153338987272345612966700866116044882662046699339910156755364901024750620130541780411157049697890606140758439352917029861330370859925842155464218919696803679201111952018835591371176577516324113498230677000554783333348374331306643412975173132441694432475882848073428709174105165299234204282434605268020083678082185225185243972790521969163190696224867817592413243408861439585860312880489298228973324091988737548484065957846587480708174186856044738620848641421123884265421823674685131081445110258794073327863291593568292354269348030694728887138211962111111863041452533589250821777566981779169016561549341381470161305017815229223893937254258271258594982689389895227795752624493578066170562352013790616353056958217645183853869581633629550824679158927428086561956172488210539687372443401014019320055198785750082248455952628637745268720315630675455732891592177002034671789045459739595634719696136664240256548054456443524320235642583726630154472175197160543178637365586413738767839816698350246226683072490711799754483313096409417851397903582991549538907836955392370358442527619375784523407133261687838060446768614017726551925157393187001206614571390927449702972613636222642382076450865554552225525532050089170767811800084070372534534781043034860112152068565788050715392430727799967115729132180040580650771050159887501488729673905263885588919478739408640153090846929193334101413750532434689471115913783698698736081309720985933004348212081606297219303326761049733403521205961171150962022949075082215738261307193980899707822086922327322397874606845842627585557486265782826176070913576500639255856265755835095259597062791265775411755935165334350755351108586244531401834559120332420972170752623809741056119821681779406441830466718255865204104177181379302711195744244764182902446179125523812791479536171430876560930854184025895846291204272279833006426271840308871612984524914018904289747143620103208889676915145461587632263508830672799436361895882715046671923717899528134433561869476650808800152649123659186496915836740078290166301282338991034994570227658216721888331541787266683815000335177322533971996104199411687162350939597022497724598283781932948111119856143404888578580047535629465291245847813139810918680819624207202602787383486775078209636395937936224238432104179356368558652647313689599524255853633151731383905635235265418759308248594554107521707435875301898772748774841255796106760759374118575311059313287131461072037000129002804745138091078558269613589553015640310028314832164301298576301219268172631877152115260788886045811694955645664860604650209316845870235126186065797393143622252204357829721417478858612109920943641461096158307535296965968048207957358429220418121846909138155338110876982980924962027217074977515346013282130059282614805041602048533288052839053055325761486768388748262555089844633157138182332134094772610999610215331357885679040967944842334153522426872271147364280874721072620911210169832806824133635547285968247146999888052673750124153264745769994670560925370691620439233947892816211467997987531141926094473857554046104323499546417523459041033776059869934734506437358792069271259697315758310088253244741677424868721307276232055185158399595233498651005754673920789603500743453177583766881533252238654083880409490619279099605110309517202082536250563821786638862884361437127731252971011049979925211027141892318512567109185251238541889901835363026771656836923225451779948443255112327507717206713540577688023774025475298894977251316241655428595307575888604326661741270417411667689792082595699099148198021994029315879571557927308930984959029315962289922420689246959835140964010775835897875540320897256748330991909127672576222820354395641349136092335349379687133677599601084095208940749732333382980298353279410807565065195019943305640849170389808707916864341176489620778305897234826949467822911056740824483380617378463076465350932711589757587239909740534867184490406182140804173195040600557395609863718812544786840448335252104000784448483789864694997687931881706279142068176768066540696478436828570313833152627054819142466886261917832038443864264467358033409748387037071718106867854161674168956829893810935163973862107603431539663462864170794252687753683506252018986003914145500888834555842671533747962734142426774188506498941913244922212041142581188676859465375861859819742510610363929752846971659665732825198804624892530043763031918228941700714055606698024089587115128456425300279350672403937548812068374365799212155359596289089170022586692247505487428163492848406546206081675219145116345009842038168756004401306465406072956443203820869189894799365652639112145682100334066111819107947958801557057119510202238082914748783898388283862559298677111113749792136712553100751654251197755552492752463132595018933623254155788486578463800437296391628586020963342165142719225069456267752905770563398034425155054843815136914161619186216561773125951688121461984426130115745209266318265663296721878288694441136851426100703990719146093682622967188534234880483289019241354435533661191433685033436035165790505206564021199070376575657291972172239993625642145924016156208394673383788827551892914364921941836002366565244010225141930583350550397666575195583939649304998256330636415850943214862087876841930643066554127686292721590198567684445536374487606228440657583639155204320589198558543697969556884720741276798842347966338248538089674575107089760905176697502891501134069995657705573103129528349989041027528896618892354550692950543436392698313363452578511141264541716538031165545548728903838045392694889426080422208050615478622029500280770486154478762288108636560520006757620992054409567396893476782054275733097383175250066205113914882004267535227255324778758047476164006190553731621116376504700931957687200460493762474753475712984524953125326032080189906170340358003459351715895164082029465514755007056736170763538478664983747292095495828874813570052137309160027046350117603609950429917297401288572212571310959225978675915470828081181162204766440201843930308157874946919764752052943103344572586588030828629796433034852243245648855522362706663990877003275427305975571351055848803731591429931252292767938130777935834645486082602314784768353573632773974516772102774965136361717836694685465878063371723791828622250835186361980758683932361986126502034675165737957818483983567508715587387542662308477439590818216196853939209305247543540290423039019505049702697441391154510949180289595604009406641860154713443942338645523462704440446583972528453113137948871946819146924595789003781712593673697775436630845396640476454659407072011525691868513604022489872734734523870154163404896935861651662283815299624353898015833320561896401540897981392377938648706454021647693759953617917875096972015388480814217735770536873191053480055391970777672383896320073130001612301487578800495190477575055237417338121197929115755452553095055396072487468496611124465245233033962313832419802416791633631445148022677964725840461480130186415411533224156114754401186821227780157110523340856861420645749094189403563629131546467031236650278006135867858758668643425954229909743395482621808259984185401457933467174480991145821713079644626037430581954676626878035690809694578452280280473290417453778101253709438117164600379746243603460667858840011480655183748111915868215943832127300266730830950366253123799301943806826377156713530051099766731848602910429059983959696530369577801058729395094531007350297709014252435523780226960731651757607707168141753988741700860709300866560663158896106795680333433854126562002808293712156953502939157812654351199253686269004849116720754460920304548257389965623668654236826251362506801198914755355004540342716187664964891388149979696011881464293521152646813979772648720504153846392141871940204510524364458232911947119947353711909931081552355499932049271853814494763262570120239454803420079457641580039268690619150719683908885800887190010871683202359170199498819633665962223915389182565132994306841638944994388093030039529313179066733182731256223995253845175347087110690414522633536834878018016926780217573361354872785995627107649433354323847672401665313310222209563448232367558772841754260468278136133418498815913513768750375141615386380198383414238352203072954896462281826769941833167300783637934401430632344788761843225241620426665622574482157863348921756843939497597312920625139849166868058651094241410771882688651640831764158549191402038838384929593730632802915688846546464181430981989451585842854142791001589059516408302653066952670537123804368829618050645412427633851231786730636031570120965143813539886239455058685771185224964533897526669099329247078017382849692552849063724756084304813354389274205328298326717774321229886109468653263932268021473835033694289031988689623649242010617555589146166488425618499632170629414636655950564825338192475107980614937811122147939593711243105592017476091940380204324891364721310570000184078014369870181448478649599495969397699152925348992555489168462956060093570618906575500933613095530712683422253227628972151589661651553855062870954514893827154487368011198254489426509995717936185213594121105301842857549450027670928026072061164867824697158300318761513979002621345481165300955939269167744128263492060806257155731715142108392041212536567089930539911827729042680369305294287839380824889520135858299599833671193622780840255811998202413026044471092615320312243997045563546900378027521942011123179865645921928471400974398621534476748998619363783991671660189150887054696655286612672576906631527678061951815135596860687939703002728010178208304674404258136777161653795149305238779816367897177757153576637920916131202962410839207333936082427874902134135764817705085219273009367842090888088917481370432729215793590197187414009532399465287890988802933420202515566851803529691895877449881402199949781911283966888887182310933078287094501579084287574551874050717393144249455045908757105887915896886845240067270464269429112638822500480479668040396430735941110273062262777301962781799006374409330108706878363793271020427873208621135066265452204179061274509165876595406783045859401028612545877890780856748656454048092861529309866288629622079327320002497962439777178902094983269676230600642339051035079619040323231469714385819516310474865962663142875810377336799986261694693035847501452897304336745006237741421686326963038294446718128965507571296784249658675054696768014661837547312384040459491282946429639015350305397619225734819509836898332499512432773342556446023908981897592921262819603914918887723449199900704198658530426555756000960522385450289060668169713936078396434229909287483756835547652112433870273271339750875072674958039607968881293699458607129389292891784834770079848613294147678923566732354761649208060544660292707390198335670652139484508144576102161422305477225972525679647560205268292487368035892586006498961934515871288586012463165750325417878503789184724599250981064111921835950559131135673163593343041979356198997419145922014842372842988055311719410411459281662096376644484148858430491530526261228139398369192068407745575020478559780727838731646053323443116982169394165842423841377126427332502728225358945170191089616283839820844334137205199413064760653371580528599985193350361393808740011971656102769621516024615390356617088024008843287017391271543326182196847886233864864427437819152629440058052969675718030914539635662530277867642130309925766301632550435108454847135025646273549607802667898877895715901315280219639875295697937478019822959773836049067767180285345041815307622240990740466049939708835967129635180245034592084313225953367601224976253744242885945602595402374261251893094625459962189155109766064088132057681521381515531322239122302532861430882548994480044637212115148398154779230370684085930822643696517931601872287428520382725829411826166647299964422440978338750684986028456530717236722670786439191492023657431777033738286713564188780149491410799978350098242509463034735804943572057993155316384085122697741389154417164916755408593582143750849061976209485469687394394059831317160780148493689609432485651267106046993875547498511657199604103199749945344382921137370155630778945186732293381004046369008005684635942122846767268415168814348173637964691175085108907813893035809945309807836979116332524122895536172898712383772397237725999741097343383564069955072975234875284168581278663268474657450199390934173832549175714579570676111659489491585876121192529758026417235658823046721255573951343922874004860318788463055220643821421479017697315693388289983825389739339535541750760980689752522767576308331371336840202981432032277884018547355826715034248153513495811619396836781193050848866832848349596810932848800645271286618578532175305310399319148453676261502543256567801635259431454592803570162908899084731539492609869437814678309653608626087291716165799036369836528370291680925868566287096030639443174928098374090477623306897275662988713099321467167939277311729183673586993754217245082606309458997977455884836995886164010294246638628548752043514058938140270163023348151210878289890566623097348589602120366060014343049726100814302303066063245200286035032377244969809684563809381058227054185890377569664098274441826258185862687371840480362460340030205928688528686373857647711627214792735268882329692458272618384374987358864163421370213922282346683586487162771564216460042399066882244563084912487260311443186787920602101755393870879065969023408188060158792879083117262936305164120597316532551263892048240165203995531733608548972011009389204758729994142332466283909394228439189967031581844809689036098166847927072488256348013644621397669919945732267249972666216877095567183749358083043178971901963610689884088042053207838772310072605517244854003856355541935395492809906432474198449301070502890403514948564862000999436272552805672783989065207470257398843535381810281967039796061543460915932805940245128673454803061392034906403600878844852651472846854328074426808186386247150385507106759111169494046364224424490380251376812740573927360526644750380495450059645575041397331692234530021625835015981623178531665706280728722414294133408358763771133232855223257812442948942716796742216047158947379350874002487407716108393099001818210672162153080991039853401875088581618965160723859164214692310385131216161702436960732590945536162585976054420838317881223703459670891867834330850218653274872908447349961966410714330262003992711395062922871175964045600403733986997427811289570727992740989788876801625996859526580942855160040227365210154634324897967371909930909488208040453978298348440453046299424140676109709416617962996315279782297914970689395261494035299618579775397047898059347033236364250813595562598427713372008458483524958085433902649214732420071855132247975884249808789679990332214073985081756398933291290493858805511735804381614994555975614862067768862033436819214368086150847531219117708002042275951863948712731584081176345286894689269922713656919462415933752698516461627524115517343168771022329129886997749623964947556016766515128859895168140232697274582561377246566272853648280478352331746917257198416225504577264445892463422066226327980581733521930577794808302997845828143951205809153022809571575683997830727802502667444303324008777555263270003514686848214819734528455950610283779473359307015938085193831110667855379150311727188215614731003868119342726618779055123636056948193977209836209790822461659021008502568769974716962710355203023876516734728812766372565633321463599511508590814777434840180769844439084620695483859682810204004088053461333203220576491880892127207380487955213576292910375066578499764008746314658532261829822619313815596763501532215797566265089710411632163744219537692242443917729832957796120967005901993673558744344265334652187691267828321795311130217028974572317605240452079524699796422241657126177669734451983974530059930526460745594477099168069968488078970971570617789581215938815202259934771736981909040782627602108988258837636991425749932453315227046998580668588688536130057547903610644715140991506538574137276112235121848316315361338215382439195258462622263172225226588703363691095367077737644552656244874113111630174592460276480421692914322185078604712729498453271065887836911997790113966535331416952390196687516571318749608333644833147210198330728609960268021048314627640235137021885593516309384861191953985314080014171868734420258853785768046704645187102906990391206917575625376458141777228108172126278791062293717597061446560602143732078445634103923836291532464617583867383586902540780011488400956874108460378403797074422070193639078859357576489775510608367769602886312061351481444076547907909110666186230552356988762893647990362000325852841609452459673025341505245631255257449185894443906966827687953443178166270424471248608829005396204638608063087468733747437693465177110713191289415551024204782403116187882571464093900719531578981624243310117320095317023143392260699828536942570905093214073269579496669024734997918067172852651293686427299259973614055440831877725575661348025999848350093710645732002439300006443625880282639011003418769930294159421849423841860868752612747792579489572471823603010777955629268408573718090514772032572110778966411518849329505439976615413992208607434005299163020366623377769860217023774234629118571518020869392058778121714793004083594475648756924892961740323806084647732331473670720522624503121370974517763897290481569360989864786398457318174393774185961403874343929877287724749393328753611794322708322260419868964369588125403640972045786400358540792402877811199699239228688823009161793046895773982305240526683753433060313966899329573718684558288350990156577854452251096703465161268264922948990700088036935341610121528605207939750401542054076046062294882489426439719795075960428161585001782757688460424657782176369327153437429558735397220434627234910991434234569146951008323031299390364189438508306269080832106877674987279109888218482369199021331744067646067631146270074940322470668876115451668168268451774671759099863544180960709784537353268584741052307969662175953400088317310648340459824935005660659505445041059987545182603596764947534724113655138831391355916742133385869661161247792928157746320850183896476661906376560935030902240979612878397019609891082960799731322096459126650074165390283222738757743617344250370376197122795924843011307569160180600766282625704757187809891992454163108945987649864669855992585436487661448202447955074135308261167247984147920207928641648357219907659733981415195649365331249719874679446322557160435604727485804139646126324944705819411305183473408349610415154655969384169916686920788021878293168898592929317866597949224043007495189915475285318480310838120270315968911054408499906437247516931306762596048688953969634572816313830866249821841117764232768423506106817317933146332231034003557361822193532186851524773339441988917629562837193469620791863989452035588975431821579350014202394728852163952332285975459553192415020779267790247291687270243473593253660808238939485997782770473195752013561113174305749307944690539476549473980423569704852455795598193079780113228336937647907910105171687988950472331519004585670475115878116942560142712859384756553278832762450439738749162672284720930073050733534386214709176907281567117714901072397455628471960578824697841364643384620124877527476875686098851598632137303331445826701563485383764762826778445453730046462485422812465609025998673521680885055588918287119578980976154445334951288599635213822856626712187854972379174120581534245984468332916661901671544691933416632480430266519487699628168598800566773757636521830017822421188599852175924723212158818489808922974158963744128927507968725835020187765337032765415041537139179395455199193631704178387984915280453104353245198379058995693696410901894052992380729745364333767154195764650499524156559977983656504588043266994673299530538843719190612473724154982785643880658701366715205953514661037102382478677322507103834501541170922922805179026532160714833129272472001033644111962379294878309723126557472385722297944506701989011931331118572127169644031561085038848641968765160003697393515008258547299474809439670817825799360985578789908789999446773970876876470474536783356951011275953970926879890001917740309054189462562584964207402418169519687584639880448483672768300447861110779887644101636743258912401299477326500495934061020432517977711550562847261638388742501258094433716932003538589892523723459431083243576909054830442226702191632649450719980741360942946673624748805490174819907887038202102602333454408230720625775338884721147994827905054860929388598135204721417176228708465024312170893512261904398245183758302094055967586852974019434207498765127326971955497875692335423169545314417862598840873790030637539485273320098590418068574062859930246818202387715972599330986878966815784586816810436691074083564486715894209342726459028425486542403780573139539087821710231633398706876330697470411651642050694397981222641514309358004528148613151264508722076576286785100942050412317569749176253736741955705746448465693673496425018513004403339673653575986355994365813121853388153340080830364607045152888317151319628069761606003291634813106687090285449422533074094453650383216926251281978975813133163065657303234800394382686609148892182131956407271577042584271549699029753518700344079993400453568493390594372564422145923015224760538599751346740293867843699597080103758090088094700325732455078525830976170525644400433770228958596606568923038499168562744526074652077573971334846874652161316410412896536072377200448493214209489022602984065985875806334690715863719718160448599706251174133924861696387648116934296241218029120886598020162628647226509280022617733395535172206304182282545588072853174110033790357343846622899786869457695575295957572486627231400332601161959623237919844377153734186224669071003004695412838094548621023796045249158811385229655885944497943252258930355753433540643219666841207072456824373199754903205247697599304859296343946147354389977021070760995860967583420761113582771274759563791581790179534134850344276761097392993287329202660734609553487464786897185685482667610956100891757611294031557769585603110834960058090248351876600130168646016563737491663933113801546624085378949436036051765322152190725018462938454991504665897396198447000247896396322986083471477845717271385623473951929368278461018517805707218354857742207142767360480531457573008979843033196878406941285990141391048882986439398464984953653472356271371414144641921685753388932508059598891831367642541214966095410928555538087280321978282388051403726717797455914425577391422368564127373233543222699557146345368290222109098378114309280651206421595843837648576482598469945854986231777210157188257858407686817335602018724988033316738730608105798769893867405488137488831694082354470598562451860700902124639053318922217413582835499001535450573077651095150633645132200677916351315015543547197338590216612379740626059884749602119421795317703050401653374841791503668968420695201110351080063117450595945120356920256490858527472899249508070033238077150276589468985492965635228510420770936090819640460979988527005402171746620727631116933314026037801026678560203325474289423308728208308093981733172598072421334727937600900534142593735893988519400204442251028138396265203570121435944014506875950157122490901756959192443888541707401351269953317642258495194638739805997106060001719482762566750059325988687976929077318101093259213462416851612588772229475472692710940541844715921542212843097078935574434729351604110533051719996540732343515574266676071156895930771218201060705222343253311988459114904447558453659106305033895885918172992255188350811335536160763715380365007279957324846862201429857709811782438389993424714714103248313610555861310516208348574860224304859979825190071166367495555583872496252258293264958865193280855582590463291165105260820485178421031926719774849037959303747921997360160054171326879080126420938287801628658253253378042858048351673105590970796715299063198670746061339891245059209882519598291728757219311124815301262163440644326828280473830025103648707359161477142024766256657617342713304590460873100591414532188361542384280921665726947431026606372562542302178056648856710486411347668173422985366781036475349204852244213253253395064619635259948646735208539092417776905377437155623528283304762793354499581775780993331743922255883758495337396753045312808365164114390087712480464673570994531651938552935634516019689712567957641378185339705498606507596122999795072158004472824044841458349538568407772101704708604548043584742551889048087923697659670004840693003686958618455706744872319888517233550749529937092290294210554958966552766108714112992335170150730235708173098489996610163413429180962558679462158627071806545120876139502935385601101941930168733602453033871527911845122145174025651655997456474773339948264148545285254630630232756172994818721367325309737801479266004121562742941801065529412172969821328866009884204187731580249381147643855396086489082030745528275418825537937115381838550933794467636439742331504901907225797009092261793297724780106095195145269246736546356385552977585588234702571772850141386646421564795205194518777540536743306479146575515682949870149879768016036036958522515906721492543700857735652770259480185398596651892253119297227875246918535745942256465968850839891725482122902593494727186887399591396770851711971924638064749800426625162430088342627900632322880964579216090069010743655660558031407899782830321387774112856703882775472369741043980826583286226833875145660596684206098583192367334255785891504596887657068404423394996523639855440270191960772612091614118083644899847600154331931239027765693248291582876617243790234325066076329871012054837272618045734247196135286597267050949222688441052571284209267299770715027924345301843707814654660316535316630108081968212269340617374313968987915383275263365355739116984939492920841719755847564172683630896660319796483156987252696813185443218176068581675162370516707338187100877201854489230470355235273374809406239477115372799392370577019446580332474090601880998933544756086553106217703028209344384556461573856764444500412892361877054096761048267681693306772066827059981693430871564677807376711601652599479212610164054264176387475089540537776613338664871368280749646137732199271153887989794647499741502671346600937926307968481343046524251343231304492624065308296988826535842227538656847913845962242170768168481485379319260549690013791375903949725349632441010218831670126916223905481456067555017858380877049351330902941420773276800176008527456406756851248801064440184723040180792981983257648472780917982013023222279604645158294340582820905792366018426005072508390896529056572122755663636999812149737383096630241929697552332473589180111749710094159140887501551078212414599811813969638546680601513713611421525091201790289658360311019561484883891218535911497745192942172297722611292479230917673056577465031254438018405562765097718170422759002128069187025321320068910173906579680977465412977874875474514729946269406614531362213527607275428295243107829201402358277610914269350148103957642323194913758275544115039302098176433643265200043573179581701701927680973361221802865633206499938728877436674221655696993115101724849424324455322154951034635160493352640941720205299411662002466841153721386562175293615168628866756422341892999689472110241179026381197932526121189141461326047501599245303785754275063872066683477314737321423267123575539118481717828192731175698692908828325529795129364131260313881828075367444785681736618451259629486115920173080777646437219122607243073988399363382852562118837923800542650434915995864692102942802330749072483240718617288936593871289498268478773920014285958003479824526801800304290210002123577076016252141035507610419169513350126855099936722655946555436774185981284315848133202810682814694911147937806861298764085935398515726452228497223420396853652336567884042970618325199229457138562535956539975221662521475330000943883631742120861811765221789806962552349167580175054838030574533106697046995887514914660825741878811572203278437430746033999306723090550802953804586877490293017032325794717309402073183735235603173023687367293939569122979344939892684635115928061990300233756929561804827025234578393093280015783993243314785273777344463731404766997148789436198398744469948471587408790595729408085630723739138103715695213530039967635585452128201291751653579131360666946716669292743042552898755085095606060713698471557282867336955743975635607409334833720638305214808160321016408076035885008694379134343712760978043122259295707684627766805554663642505996402681333821353776597512805702718266145974549018816529076507125180197614214838747246276101358434774924129573464104956409792106923405877429324000670730059749090492033123789498115378129792381032328293180211615487521338824324724151661889751787720885484066006351359411863358489228460047611893054609992239783816250716367678593068692617301132435994026996288421696785443743648345314238524142841368087732608814221570990262216719110838886456273715857172972549303369924132087987743076454454497373083784744549933133361063997020784770946474020697688035587738337132045261342571303320857490271449124670116944159790719654713473773020956112249882046877304008989896590669094910689517122775716994257405696761331637045280692952145088674874375948475917919155050726486099595717052344377846112877033244734230215393671111371514387235005239733934660007573013989431913190540628633334461696541508572724187435850171062755324095539255356593486629457002559786777703469336393968357938651253370311338934636955697567892754666805772117946018147249893751557058530421529211828357607566792051361134255128666745900456717939085754594035011281167894836398797508019417929284541739150021003845329602033874379944230050321471495058192564182801546918626486496408915965512014733942316763036693080607959482814048403828328654038184439318925650325162965604095871973855070563335677457015443068840296948216425821948355492167150158330221396601450519403875666826868126007151591746230301219128800496774028397602583848285418019083578884984682435910033557784940038947940236582981325693592769188664648093787367955801644629222188916874760361645432399209502407820349634261580683762314301310898659395164062827526601514309911955448561761651741201930723500420602189053400329771832082106462206425792486842597292243361285620900073431674541007799677973787777495455849575465918440542952635503911123242529018343961075690680671474667781552436548175629487468175463127851805349202553453870785574925699528733102461751585170839669494171534750543310680914212320762321609495552950325348983938662594283609185278766899988479257754339535187022936844997637893597425208486334863359484978410163028893004201039739799060590055353553758082222378351599660305161495864436437208767167465304797614825731381036887847774948785720752333548928770894052019304242290036706578771738340540186046836243158334909089311182959794007061334865372798589017507220937791398180895771208368427581657647223024999167625471631598514314437902505977432406073424703635122364791500771359494437980739663378379140500531917801617356172373213492798966313822626874789682766997661087029084446527360902221762671600241552416190679260091859926269800567694590035985606360250118421479570904730344582378441913825467596084583370438343456714003029191536823349180890215940032655073309951085384391140465943550432345395093053427641672947973676054298655877855006869961959299372068997582382127163839674671879549768380411909167235007443441168902208980699502806873918504202337317310879329818422149577111549762790325246266682897497329995538431070276098874177701044336659981011808283238558333225917647882601841840596011605313637262953545758966242738442906046454732912774872937020903316894588207807271300492007337415262351517149785924423009511908608347888795751101207186574423776106545925157018959109118807569984883650305152264928831767082222136856809744681463013197236885304459324256040090824666085134858504476677536989757881293227322257097426740315619904410989525015383999127152475350285506873406266139164305555607655273048028475926926957615922578081973721063141551249170435658281970764645608450629609014893974320494823801944281625386774191419911149613010800677118960083291048009851399391407303437348075940474611783666059648579357065180787526897897329725093656746524597965038844408662350100274388369444626505141407002463533979952460714460483367586752024136727327403026607315632512235723668521954355788268611082517391611945500558471188189980763249064449425536568307538153815921402372409209653754649783350605817338531311994647085477921703649527876775533416623818025010687674190152787446218050846635925100233413996504851609366647690812407786022173311388529000830456719242013072595512798599069696352959406162916897150362747778822577616439586230860197926283722668724133412563658935958041516868222822594964586436993589489684932274004008006856684097101209035200758228477388584965632673231115500862809005445576879795794626744785990172142617140203835844262975713624710803736800080741101932109843782743985427211570044937923480678946149794036568081693393928334896042876077329869281640136278391281825953674153423858659877423989201852883431789898272390913154137226922940648402072222734184675643004088911586281239992517188060264977983312442443718887301108201510037881390943302930588390387584432276720733763555042668503769645538398350865708294627246956388413276024483678062972089146664721756479590756315002328976173632101358396769635654748489421587437539063038431284741025723153738986985189119685307205553630532980310255509169778264515720611798283569878428272575797094958300226175855965648727374791827457391368217807305126175520688018074082533489080585759614856324956836385590626186770413330063432531064399415332885275215740825661687304653712859303115447687340050405976783665632439050697086497108715434601890682077443285582466509506453065123093260479992825774292283510725956837726977069501650734792209362546228220147180490355293859262903403590692345256256734931086296288766701537211349779538445588555934036638678052342737107122057039543380631777620912031977309298932974522988153115276096427895954829868413665857143253678509536293154909006939055538518639878158211447518641421750119215600658387387993580791711542900970842788162930101860155368415233690430972681619245049648383784380615078693597680189007319554602035377983325907389043643778418799445105132757445529098885095449909596516556773536228644602688558775861552255239484560745241169783961958566386242031355115616605461224282821490470371684841998762819852064153325551472188022451814575186262911932335014928721363222803891027472499538768913701721717605807134650813974152422478050249197928905441514406657371870987831868638542671442262587540954199363685300645001244119999302100495624124785308392502565269898387822230927761971513323805272618211450772677617593066353465725632662380521621516053549589693057110835370996202686521419639678849382150910658717458143436677870909802609545890185187410777540387810216482685153276707895767197706619598798777204318980667554079844621038801624159147408790652819905365394181908940449501621211162331340866243626357456948373744579970448859468589886619095658138133895254549465663468242014291452534094463333132266772490284524809108155583924803576865874835358869272546348448015495601481749304838605647148687304178941997314514970342962606452642945406014024379946282839681129323125272271508143718007822220355139302806036865367985510525548790863094329656116370976314441517107310529988634295890624683206900381324467981319175533092419106901350640669328358522937984999179442277154390507168051788596742052823259361368092107867544813106575199033322610338315463866812089785822942352594167114862168118199007211576085115615308873153291899365985664524372310235574911534024879988908550412066234555557872313687095059298044697340041875251486920735000180364747108073899334631465907951298851810150375176206267504267999772752800903979701202305565544849644561476654976126340318034600062867238703141147382605035322972538838859352113541372803163644522273820062660837689260907236326917983055731937015988344449713350220527647243653084494158669845274255336753662044724968060144326637230865287971149018273807568667684186613632026714727284927900319515820060513661062725952341370035888085962131467357894271194131338286887589156930950407747070372717687561540127037406989874413472662453925874596876925444087598683782281225051531364191283077265210872760566547179781755439109192233523946850719978330686554695909007380669971286141430855903761138229765669163933305691060844048134337601121618450735719273945026658304102430229593994079210857939305323971516623649675425587355672610162134894208328399764769293342413505558516471395345271432617334964556202161167157045858949677935225368385022078913010620791936469749452266326083002798738790214386101391401446161448496844431609968239256571330189453490003067337681385157778909469072044413247299913478331234751488243128078230538984257399690214210587854745139907856689693185940401999354075306581044541039955526079667555302452548922921348750462282448265244112688054657374057519518488881890906190739107323518784790881751236913058302201306186207758364532924058140457785120538197741049178389884646266040264442957452778373271622213918207413489500005563102649171065866380372741229847855050142748170546119641327874670750262993450518901944793818961658276604131049737456178000885837445407715484184083869600525728242101774365490488362796897713576686970773931502980117691912000321241498153494041154480212606953103728321691643784233719640743727937648993107870829682075916731355742171966548030244091764959953027152941797984633270242111288421424109568752061794976363031389558849966103696636971854735422714448036889650152678589853356191159294714411662094337620173301688119030901494638054323618518088456745324640366522581533863273880505877435141044336111606924517084240014357163455449961056569960150713229830802674275530653206864578747220481811064899214252132514334521480468678411878449349867029723116558799691973837600466519061497487233518052253823578256033571826860257641381290464617979761589833432910861343882192334038611625774890103658295262972836626705396683958780091427277184073052150114782524112201516249841921621633660481862474005944535923455764072587202192148857423451343598365398664222428046672456745267603520224275791116059279895755994768939697381390621277964026405848053552934486912627404089438534974387894438982729767269380363495437971425944304730844942415629091876198588377446729415580942505196766937066310041201363154861892821173553590183679989208380338036423870435773439270887573439619166612103302609167712682984253584903813792945182341026392921684203861467553184960854738588148976447725964752759226325483513990624239770642410596355117419988443625897148849587016887783048576199978955340779759211639212848613016479131866741013316307091304049981356956766500717611427456090870695485661321860400807324087113752675944152821371935900841015634211188689825662839221811184555662366016604435511240138290473547055005282831217950070509486339242448348522387159534321361500530559970149584365533541942791517810784898844517826160923786032717919029542590974211635818726648689069013249387664026434889842387118871950605376429585133069006998550596399285185160173167131844174573389970918110749403055455165649561284873644060965823823532977458753470925190919696954717614493101103030754425355181256843398446405179287981633469788393901954962996639848183859727222462480143778948878793623099375091655600035535676393108592491881749306414840942227479542072350403403204156831641216985309661515270536830874584300120664371757936186749407606542897504907608349413689568832856444168575592189414614333048589041670500891432824270205275702928935802141045751778099721873455984277110958660327817072715607243979060578140493142765529292134327262526249677029217511893970810687125944934867169684334866129250481536062247616797449104282614165478254120868043115204647354983493831749987161253268963102147793750849124409154456246577674529256448741978074575232322582217246121470957553170266797277934127430007002272854733867951754387194211639448296446433503099052512435975447614399825799969523084639070087655360424112387283263373108922179071966653341565651565496427996112878032274188181577409108871642756305290879585344390372413853534647284444245908800106299883246266561337809406688505993427339340783410229496738612986930246705923134400800593967515865647471121808724587847364446550246944023588179377864383770209663467540872966012550200206820590908309284903765441059581396731049351502237268998236647643677961345624289685041949285313576031159751306030333040701139387306040790717071594569017535346805590845535533467325493964162614208279139507627952576301646752132455917640485203651705391168907012869633337307868523049405436445275745824327659496120099552237377543430705171292668237309131401552160076332476591173507941951567762570003191875720707000690303320153367594875711574477856409429889612080054752948847087234122329470617217604318286815488519287847754981947236142119196995384648919663189507997094787163098237508529552329173211616278933559380295219584601442888652052676743437208688848852995810412511253008160695897811557225990609186873622646942877316582913355995454426294648490069215071625930680378265411669001274997569334785270205159061149701325030660308667040092098212189152327041564376643619245415766962226815224203674769625088421772205976144004245185030291448455768007511080061192602166504953088756155082334902894287497743608059150108126024718555690841390219124217443194705405442625909617157347082944787808910044311981184667716452845846234689535507389570185656028369823597954652562360139876508779726812755433877199014296998159609333329363491020480428062027563698650839665796949911425535452173188156861266190047786345760007277081211036149813303643899597732657507219747311975074027249190888700982553152274523925220848309019538778244414643062017362728643328042797656825653502751459520696313588177326129550627795398090367036430097185136166918114097534654659865763115005002731867332886088169216801931010810812842381218751281065358257723640523320524745951055246494637175134490020662316711943615499729743162279997727379741466160869399237307138171652001158822809457312316815204058418460423014173059741495682270858040102422619286663054512874890905529432564824744440164529351821025641171541445037622688606682790320467034281513998473423509659729433605008185362283635275523284078770714160574202818656113927022369222704757389832488020051303415634063897730978443886170095796036942981487637110008338135168038148658877618627273292673030781266656627213092475524421662315429113686669164144774304019794519468714652397076824072926710620398406231515716056326251077197398118217496865533534313525859619338436929311899253630405850087504566956143039004898408156630468085660999531090756421253812624280213862968514701827192774718014583837712997550686127121895973300048734084356748259603896468826083034549562382596104624109378701534513961424993931670215747999921874665295752182103198613414917705188147381106263833543304123483688047775668014696838697270689501931424691702043078697226520830173250655645065263771012435661706023039173678218650612169393112211686467847735037017483374216693433601143296244476197648327978005837454137287076419167412406910605056807950194273753562925701770173379701130046286290824443118007041573419522248151647676663082636531888395517052613481273090583758516357411880714483502729628896219637744613274946989174310825056463620113569380729966213648901385828461293308153187845640921174802573716233564532445559777969034829496827861009065257846265771307348306094572039116045122472349163429330989671814652610302681838957705907824685632776787222806287054660952672867693482744539420128147504132517312592834205483851000402075264602106705674947019296880637054631431691108645831912837437316208622664936513096947499328051718067484786068740155121960996682773099802990697741066796531500682684773485387385824247430240018900065853148287263052017797685026575469306575687287281023276395766615235917637621210357749076624156561394402261967013996526108117423826657149815033241851347192498571040761755671865870381969862879615536590518318600114282982478884319002853155574724565037015184474912849879977641526183916904674680366097699559319806660487581199509717063702683575100044636839132364109055977846945133900487820556347356052418677831564991498844690157133181683172885240013188566160894428695246038483048627563315666128511561534188731357246305809456421546616696767330691867965249458252657599411946337636313115053045537475946463182737900154559447725530273154900733728326096441897188075257126022956791441278105944790126457685112397863657894126895431165821071799613408158467898060600263603067891106729821539363043360622803793556980705978935238541480366012981460847546027147634548165168833724755550433440353585643315777277366671792685296201522600256242422369856919391760323134121134785209550237804661947426078892412095149641436740984191770661342092109831321499844071152242827654641576346962776941196968437800118056744223544321038163055364633641447639058002549910386713158716820993957981526994825883723848000193899244912628522204847299420768613404381678107082092307856353170954030270846778322569757431767633905950361980338352183583738274986283592848487937679181560761450217412577275291388833894313484863501726664993377473864081775587860636968687404207639791021979967331790783927928923290926195970311960058996560087084533676611622669181949787852966713128441923654083196501802546398443213889951954356453635688288613033493847183450090056903497071837924442062708805682923631576757774275275759467877679288716077360134147711881621121274255452728144055627296933531163022223568412620831889402997186957259463119950956985641740035985936683479647085514784183086843574914348075875373624461789243727675934209416706480626431763588668701800114985324558262791555617509886466794677469014725418586782497637990584973866934904777807758561961114592431999624894266084668379072282555346534482344519680382510887610363765399914504257521853508448400739343407916667145528698539317640639320301265452601884900161098707710906372055988600964480642076930760894402733183470579105022859162506194492601737176910638793949256887620521398334955518267002293495329421943035720407820976780876091288790035032455829282327582444679476981777468614811669888633581838432218372948497330019395974294662720042048432673500471139977468958469715567338606010644852196369089995820180233282780423746603784310165973205916662480433963799839744303516735522563335563348145551566587500271724147879398287401465627690938048858966379245533385690531092279252155011806984389454781597356715780814097516186604416676067592461653766337454599286618666353294943023961314292772858243724440284171115262905658749055301884044033423051657299155511495213006936436382686221387532636997469717064764501609298712528774416963074058833519414728677384767325922348311478350880350421841520441425892494441208192741254617859346925148708232065904315753720577925514342259409820402951125383630016650709942689324016587137103828160824141606950326531465902254222920136095849805090508437466063180469075132974146149984906725484319915309876175672586896709011490518014053993410345238116938326911133802100762721746640288520330100943666530401155332656558348578433061635684867348026738916026873211255150375956049640371771283638094719311262876062650468463529926021992754134682691903295282186063963268824249278478114310136952765540648475668945325602438131958655223954094883227828408241996610285940245039447078123539598261067763640865394546891004066151100760644054103343730582248942935474537974584358650200977317354334363878081202472970075000069875597690626335350681885023940214713091535573067783686182148655553563584800222518000787672878204849077537159002830073848722015063056115892674278182433128254223563874480846222821271063753105388314350840243683103309544625738288259445937032682086319126380657627612011621583610180151030167591060486169677859264079193738759520434683925014316489197485863330030432725655037521238339465433196237799712572105618729788738710325827689513337126828008110258723477064646814522123812736841734449928283403421022536560657487454761850689062756949148594961837234383626791016546538354832014699742359529715288688018852687910003586540607119296100937512045980404025788279786090907117550996486908476311736244253330437823830779491002299064168012168031181821399744461338126797030155097062799302470060631413257861882732498677320868582654384673530148570863181156179838294382805319283996210157719510171983492067148600358614441372556390849510370156548020931077947252328670051116326878676564376383424362853313192136598621769226588043629239341236979886131560592479366158367082905735017880532014710595821554989488299113212330772789449535773248273479942645132286273126061945600260656923487485894999907456775064962262425871878328388392106748780399491268339548674310595383450909876017497062621672638856590070747842360519684630557137469031824198571851641029870018956384146797254380390068255033967823363091866844567412820405699282622800492271344980382276099679295154536825434924595201235149638431423393816064622839804470027015523574386682797204414773779981324305206251373445321017976438971506590476366657293104073318445811939766483452347531891905421947298016543117418175642467169698409793477364098001558158044135624689733920906253291337404552312375853328415121101003214472586166005343161893455650044010281537960245602475921012362477431843999495602374690918602831493234723223841231834441023610646650528870863709486485503934205072503939006080511086541902925294918826109345019225403797861162116682558453424813441851112555907904352446223853028638087456731929978550994622937877607220142876574935163274706221050054611691232570131411382149374788828584364237122368473474129441528701685604394937113053002995603153100563101382901880624021532640824212722296659486378058588719800388621478216980507134423531594545795918075200722462624238011283964773915187684461332230413591438274213934677681938880911551987184447934778399291100523585730388074694537861144452013922519854891342456240632922233604361744414355610588240004613436174235574270293570872735965186314460656422283277419528719124492027112373447685405994659747581374804646530651107024372567441318030771341762597633490012851344073054718962208838844785552138163557843886027133817896326889749180112800942222160153134476433231765877558941203480509621052617606345393890836526638681706048517044257581393250181206489898775976197137604638622179342476061089355682900993808378375966216577419617379384892552805525750429850363692632697481014229861192205823797313417887580148476778974134868697333866363897163383593591067060236878282297294371990306125859130498863368481151245246529026566853878395552576672787324485802482208026575805124204648020429167183740558118118341650513839663966506384471271482691340268278660666854832335119607259816252472244240455272727912123291926977461728833858239214261453118980465814486071881368877531463103426073455100094073016861116771881899701997692142022482427306581245532007390026518755226427715208998207043830264914216818551104576436245382028192082939219397678408567233611322096094027067285428620208360627116267615566398813285819005462904314054247000000980735176269200903518018540193384461475353663900830552675008481155139463781454839715590200213903992433383487479280724934117619456464049313980163414905594909962547380157558061344072727276676661943288900977746808537028210890194514076501339146773330827482373082840153176787984613923945228456538430897072652943319140189435049504828032032787144063480380054068627353608547013876763529950844973523975884273130376364830606480620452743863194302891726037202826308899315177931968755695427410468502572008387682985963687099795146264836927896359348932933532512604628456743621800214364471967997434119262604415829830840273216330314489466644479852295860875911233149508117913887936301918736543701046603344867471806418386207378308713985679114600626046209292198722177892761604274193428900185904220154998313640241124929517305590330503615187383244027950457926967980493191898133548495565587385180001103055179987495960526082342075609441604968601025509429448403807588078951087614880464119188073595994712236941488378875162533289177283562394539003783327230905039074446157410356060242832458020726390759314021071074427001283020453302687608492771248486103803910187590776632342986107336499104906867664166051837993017906544707538007959643892657143578794727190367058628302160864625656384940703511804396419344822617862665496287310036855935754057935248631119435370495281802472566696148264033735022290151608513553031625224165718956548734692055340308870596891553017117872085787356686762807087735838887728486120465806413768391047733559524510099351437696335895682954612251348607394329563936389758200420230952080486994018987061693824946879394522306876248795971261077251560900952541671381847773598524902526037342956477768118915479030088598833701531572413789979352777206634496333013637137582791525164120018973823574738866221296416612510384772024399921556558071565489688112838081237202110696995912839885454143115321466970376523102973168513724541941784901987392637230877374555497914946437995536530213161410640764501913045486544029640885085151338738926462120006382875085178701857680635208798105061912601620582373785992435267649078659592111864246276583652217458791825457119040432105211555122077942681896512775647857861802706947592570810042904302384588474493056377720513644624411755883567462524501781581622086147537157640229754037617136873140272339063808751471474821814450142323117387531152827902782998431138545459578367058907365268738101710399977717062983785175541412463363867646960304822148930418455882184395239574861159146384550938392829120419910866873383448515044778688034060478472843683984594702307645422814623896202541467236568764250381437531474346727746296727279400569958323007760184176689383506188867856447158229870693167895841703583636207752147288061494290699615738920365653162078969690677725580464229983313247035081314646110373041705658425077325440644609819719563023041695060867011715794815535002622923969041765621752726851609383306053094884160783072856984918680453976813474323038169918328168427437824883526238237120036761635064268988477265765066694971579338571245664421051779795662856491289224425438582680158010171600963371706982948243642459704805738813927883893301951549734661463429377625915181294676955802561383814692978282166620970679497362673705567648720112798790474712163365952535943846971622061959710746026995644595993128564551710752225102050860650503425029584450918402216526601974656533432431179934274736115179118915579748079532487349598943043660080783612906005665113653854480441728888828647210146162482405689552893169476337035101495362742398888206394538051132330791218932131151181150593860237311893117629775190995840160364228161278914949045733820909704769325582110328698305067609826685735654484552922125748465262472672432857575400303130029718655672089052032279177785956233469385775207143457451221851783969675353944626639875135150150854007119829295022077136158959953306010928464420434263569510884331769234725096473464314243766210871981084826155289624399372193410988304568974253042406197251689789566775680452981498656574244294799481310544234476529563950987114894720754064640364892430828678026265450693890598255277566685725655194058195795464169148379690952256517229939000648579373994153879827838357287777366442120362849704503550463100025651893060616727597932428015645963451278303189218424951559263993637909162317486054387617520841284891912755275587134188753642652796119917077084538757774579905023799778185638685927172373982655258352518103847062606384935342203814378069003623016210713094198612033332834982506295067166013154476298412797777379383244587221504576951504629180520593132893859957923389672573143189594036087697602710313474230282265863555244321001125108374456754896938774506044783521750397652236455152992394425342795987315861710961416794151699246330058283355082872656612683866882914452958946931396370726697680162241608838966541052949806898241197756878817882291046420853629787746900609475234416436270459605500383259388914434463680345906917460439765090592820710585693116448821002663065396292396946731518679985486854117931544587518603350304761979151218623818470986544799872247171553339190839740638219274756404339760424377502293371425964368281104750207316720605635538015877070070422990276125528015924425358978836110703054351985964758907629825401712121242959961194013510303291134348699077085467450170451113360835785024750689161259749596570030415589006205622605278856891861982285679107283443923196497601010092444913599254612970042934055003122466358039282744400843052554952674056135924473731299584462301913022292695852689658065198562189710123562177086023316933090477190487256346004842894212263566135400757981847641376540134542020138196207302474698221152478641653529055281008351764992336388865448170319017144817687814562991398809949407050300119916968204489833688684599480073393747361939895043431120986709274028790721836200272670811336710662810472578118977395533367496153535658524267603858682259198707002035841572509548314277949535483139044670012283834214816981992536229313662316249317081154072783352533008781015870028834052988873527521180961345698657467437428633320473338630136761201895547521594054394211627347032725431737967695052415969961852391124921395949156200072482386611020902296030795832794646537297058709748537935371426198372011442494684506884087249462800272405053956167981206995843053050050723846419337257999226339792462802743830937456920485708085852130861195443505673336572658327528691233011358970929714800923781262830598709966608455240830233849052474460810125518794840621861838353024570157625915361732775646109963569758905045504101310119375466496313083677870110364331117216355824729407392315635668647087389012967606032146927786158446759381417759390261129178638298644595309255479051223627709606370468126992690170185694578057306551009760081172076788206280498120547061008687337292936717280886102135352173195110684962204200650989298231485630897198277112002492322174563304688814894536919312195734959410627979577328610078232120302795544735093328839233554808768662864795481480471604644543242271094446932008789357527425377522675599785294874211988668839806917617804085075688426528713797071994047151934206499138212698926289701376734468502601744433642848622985347791856586572820113777016129367587805418465354257469717398073554934031692260291628502268952845595723362289586140403247464571538856627259223585937258611934398415663638487781710197443012438622499568295222101137049273530068526936702158948946793247840796333985915806744342020337278710293555606209374711881255113885028142442732408425145880022871372331787560647506272339255646571940481787159347762414569417629362249091974740555818033640676316400446290601112127452981078879652210120025817808312988908639261067579356380553290502083861216149762453306660239308810739672320049469012881152144596979835854329582465523537628606798429037443298194773873757384847082749811610675262169460009833095975779862607941343713050921765955626078779233313473818860949040385988042786240497976063234629796720234034476540103959640151858219251695541921311545553206988855378330237066938277552851889788603067015346174745112621643219847589601148750233235425875015603019430564693101866909438097588150502731446431459217321352863234178326132339879618771624262036185631626674892889696277797249058905703711206436896887870358279469336833412478217602926433673773372657295274852161282361067619412446025213726031055866353784729734348753853000969053798894661566487273905553941777081915963259324517277093866841645039907908891487002401373895160227028593832991209135694298092470940129234801801514890255818624068933012004024873749559960958485329405851284425685860803833434553095764984527330615187413330699765628035111314373065497020543807520267756456794773717210813874621286857720028453329773707934748787639349262395686965573928958755197466550464563483154555422833088606879197695833362116589859235508475152234478935444522072745603606427764868173785660301900300785204544496603794638557039741614516354138839255560214317638106333327364628675704423445494216363779045099575342640624789592320868801029817345276518354574300761669365204117259575800427704597317110737866562054332460472341657316675205870507556420242028559080880998044796162440878863643602313977194630656616746923509008077552328347270076773756229744304107440717897249575732148240075678428770496104321457423994422843063045334847855269495080869547187388209642016681604910912985057361766809018402193158520076547490639543299185836956232869495914125242522240156207027978622004978959512567171998072691618733402443484911008107956180698833248768359305106159031565720153787825825252141386748804335542465079407899660262530690861518996885290471853174923467569414949648814682655847160015545424279928185937823833699771058884300263605552068942317583287074956446784227533940132608285811335439205491426548969863122877621436758566944013137971877529433081117827253968538691917034842849689035600410614415927373735603090950613204015106956281601672019330962568247266391121186808692342070348981878502502771959381225610781183858267133222270734200961261360262096122720959521587011041361810266959513000018796312659456419196988206367948350968844485678864690992236034475133899673671201034341379788980900440083151660196828378088097056257350167274362589488061899661947312208965961692116388588128293318729871077970531605429991565418978954241640446404369327344914353612184187679603843720624747367445977850777441293486383893882892834395353911775176331321041277905698046415956802996044267662090747790333843518985767417346151734060305772483996306958338668460537812305904953125431791693600289900270807590245692934765732746041658790835826192625689385016820535915849063012100312383469070655563979486422142201086207279081881497499345354747407558910782424315522372648108696697089519165808633149045258590248873462462539004308743072388701918122838063706066541180397207459202269355015389005468899806720014354905935437024067192667334826416145130844783658524164844719398850129357840234740374562872185820062194879215469471444058654516131947242106416709067665212163231178787466805915181352320360758086451923053783481463883336062787967953234396982954194838662897340168583208000923094977359565289288901621158921396841539175018482354021203705760635182884255165191194194032399054349460822975241881260723063011352547766912837596397966944257472396590611993627780494039723789387672988940182499171389044514208921429875290890274851057878312892700891724349508766732387846974243230729146234248768036209012931747277444387298908511886408679608836905027742442760884081665234426036316378691480567295636883987385478245196896211528127945963421189997634013622035516311709964282715603935454826577909537489738575502877458962838232156223363663101565865353435297978752824691364070958023769432138646611406265593169174389513587741078527526686125123044093179243602072977751377293513844699509794347506140327017970074319356469346129438844895161089537833838709811321310572197391464712182546090373269715953356914242055994822778993916646399844172370368134772893997093084671325727430386702062661852107752670712393424074479932751765610763467380033612097699860334920375575350317636064837376775493661317303376358501635600987017653242369962391988273688659571048667813213881889706164825147111020435407819792800452790326207733553502765490705520158848624778835970389691857967160664792279064794619849136469523623439160255486550267250020560033713337000319631915240821374259429970833074541650820349445081914050188262155351446626057710486801440135417610322105223352568139441461074044299297299203950701250199117353640846096281200841029368563883525856840659560926125017860193501268438220364623683397623375894558369461935616730766657367098529523434638661376114985366791512225523447755274481675584385042441896866375704483651431739058070014141425965184864488608870197802139924874215717822772631643610174042277567957161673679520718222455677078210152976743305683332692237480029227182350570938639324153123617190408823816556085052396636665830854502377289082799963550969048184595930564833270671541521163765202553670921070655037184769975318299897326806994150041946813047484440836213761504977915491956376778745042789904524786029097538118855768433338687790659623916121296948142474569172286996761501190815312801306763522277320542164988119356568214984001820634765358193790137930311888670344761424859000388310161060675970057750826575250984543751076037537983645640483191838142075169886970371452552404676491572040623223314627052574798091427753791258132369207509978590667202817031385072321804275970680359664331300934295403234505731209696577876405986978035126342168107640587714328181011296777190708161489457452614494019555718986395419469575722801578083295959308894793594905434529824115381352650755670133714665753679443351876458729958851670996796136988618795967518594579678276525167172203624801803435331218593759511864165170129222581488118505314450408479558302119414007471724264594652769521998634685649422600580814908874268687067231113164908748807382572637779453009084947263323939988838030028907857998801343250770898243997839365010430036401627318791682009352143911998064389959141963189478566288992399818668394086452069631555348957251197382787588440935602164510839358062936048557757542386889801315895843293682069262937689075085998255836945665548331502320261895524956714836634124031227138041107645747336650158195939017812088847134810027486352596757877020960950724127558697251787005990945986733427810727749601658838900059066230578264775440585094340228450890354480517213665527696321833995503133377450527063824153157673390489920727646181676666496783294485517972232131648949130576297500660968251124384429654748103968774717488224370058834545379180699457304154292806108683239642152438976777751526178920097134855751494519555506501042594855463333267259394844731636157718199958500337259859883168953384527000879277667794181971521613255031285992181403765610836672726520840504424451901861973339286459275722646305294986941286419209571330395931848058620712339416605032527880805071609237621882213372196048100484241132859366503409510643466178858811587941732943761967683515398141138602166303954932399884365241650111220813298231625153354938397999147545330278631223486598858346315565015936697323887271064504511815567626266682369186267839486285528937018801662426423576146494041480623032300748347524421571947113568219655750355348212828694768099282760700507364496906898152901965767051936270216246510819401282379723760890380512693027510309284609471037000465061434082388984963529648225798902508468769866400348973512893760296750187047449228223420646941678931801649265857100080479051049725155775612640237655846971508590025739884969213612228778797184302314562611272191266493724414722512399563040547932048012971317878584116232310617765984818551512159188550620074405450200237851916129465886199198114962976349206417671366303039761218586239762818020208870658310447837373983868826235713718968725655165717836112702627809676216147622249813715456113426564168380029276992266147850407166216519910772005397110784782312872866656452257130121454104682703042755218231876458005811546198728505457156924289123494078239923169520580114233582088241668652800434530086461316469122165084783396002310351414197784465289059426775978713598194192105559822264585602312640737035876906073369898083278212448490804627882029414109350921921652920156368979694216044580978551480699999768770043636581733887967361492986441568350109178769740179149794469060472815418643313517061330050401033767846451329221483867707853589937494135762216676798217553071322433115234754304253264719236941061598634167736113514073193184425440922337886965964511146712506603364466463034160877282327623261284954418665067123544067553782022335008633112802705142872881036128724459258368837677000632255939417802366337278868287963119340367569269724152236240424204764080825756238401081637736936574774652480406165245406904423654574027674500260394676604477978603466815740093774036476452790148653374243557785899133771251958893330255277220440210818051744922200183525781657231852490371237506103013710779718949376392730077414747659520307537928393508229897537481045078094303930048071756609918409355572662667842017543337885505417295478978129786504996946589968957506954600501803910957630792005810474839410328377421259564099882643277574897995119997828659900074718782243466242798668976558979348291841380935425392849759036948699450361458112814721748235882817126954524295757971362248193242581646161147636835801455741239791036395825878267983247595709067680547790400897775850964672007750506937105277951988963639906606395452253703180628905066729326820099387737971030627228201492986075512511046452092759405141292609469076596213897544534393041245977405505269662892014962797908091319393076068118478774744520931301706660231170985372152123815849829192920504878020585926720240838404694479220246755401044961638630623741696045127757355427808614621661813453004614884166543141328632821533094098768984196586893127368161331912302271291659865209916000045470604909200900775140737510831119837757965026159640684104846327399226770866633125696482941198046648619691947936426659414725604177487621730032764627721059660378454233606803859651706044731366872621061438029135356147670132343681527853375639058779722967039845483147491277254604883694314810286410490511975148275806936272496544704539582147927417121608083462478094087453830215087268637594723738118839591355111231975140750846959729808671810807272329345494694711561478268437214991746646013488642419450844490826110549652716145609047120188775815705876673927477034313806693949011584716358140410752794168819306480624263067609341409690339391109010612190197615258290766313228977068841199882176390441593720628575769943527582927074031606012045625071236472043352011549457507405420672420955066268571806977338875300445426040696210751795078545421669341969775934577787281778489268732329536665796251431249221523736123607594031386316360798584486139225685040638610482185454721242983311070686976099984777458995759727259405156475120868024468335906824762140158069075018769509209752626985116113571490775269150787721902213271830021266047978804348419280270006702215906693152387282133779585769237627024374013065169350819529138390838639453956138213968507576444997887961502472346680780807450898494599641837930391146845921051425791177244117043928962399444017542531443475383119566334123669171992281006351550528164752020995978400860110080343300395006950059495374419133791287906683914011921200019297186898701627912344371133655058885902166713738331967449836661652068190892982275508222564162082103824735427712028867664904692984517485562352973758486800527793890076695322077585575943486156592943834014261309586171111798703020978749393381778810117377168630951327523070892880752944549188779121133428476604024591822171826041161217245510366112198830111428047082447240263259507395198264040984289533458537176726239795091124600814516033689661966297671088627314621145849501169483928199534489151842537249807818585510736250670133856465450839978666114424479700185064804851072305068381313872412331082781162482777735545416093096300563181645677368173612267608778347333077587724835207120409863172781196068899510233375774263910339352056943618042496090900024152880812683457162186906434886837890620826564567935887542972198740519389172498280461296756378075316341709810779982566782397187738939451313208293151173174177751965667372007657876552824678087905608862212470296387606146261704355888322474561428275686872294586078573756613621948703861590055455160279976550942498261212667853637760418564522483496502125270274434925883197989900374913121255375776950409447355321535393344441730650499133300808124170175115940451657887952343767810089950058534201134645752027560182329735188834511072880169567164198589268370632914699528610013786046023059830312794711625646523558430948026269957033766899353542946988364951428186653587247396962256536069419140067327508044891950304285288716183904893829243350276992759943388189873459721850835555137699779030892675526487812933170734316894990087440712755903444196889121982578885108339258052464820780879564601477133232183054800385221667646884205068266988217746525160076296692081483254899786358303141091959870239620830175098975618607057017718825642721040878634937863478886617800718028265176765380723583279854544315454045532520130226947792022161099601800701585192991830855297418308020566701351201844993915571276518712296509757017382377731502481260791557121491964812541144825475942893203451839762324679701615683572053926831680898768960752694686661830798305792544724557928026185702576581416377072029455854638818202378793222750554710703524033975693847994795740993480488755085968028499452522862655908938796297776098697238178044664730173685023762644968910413946376962394360790082390527064219799635368602758847098332012495618958373187121464883471608267522111731653343226980426482720837062704486665222091897352655537587000005535907782415741005336177692525758748818119639434548658906627416350659159602023032637023963540031525759637645382308218702469960047352889556227681012657311205498945663076277640605622537949447483185025628364968827292788917226424597107830298054716141251484707903072916186696107061062489004643106243875083400386493518133738156853461914699263134012304284488096839717230426701932798841370268197193844016578520420035745053239544155182888595545525018454451339821447984478120911902035039697053964944000408967712932103970520503903116905192425903630680120352949897844009139175103886294826681597445825058344545359695226047986048480178186718850549236553909892887471410165993462254401538923892811573823468080579237193198665084731722766266654796511802279724265940425542287018733602098811265905122491133295967202297913189708599465177564450368050109627982899657548079428780649979246327423666496428608484696313487262073657555240409988517720692163288877933961031288436756478531761208304197810956943711301847093884843324789500028660248189717718115101106691394433959577938390022510836509092599007823925923069548035943455943640500335565066997808753801230857413158733477371161447393491593402197734582666897108064905756217354220786650510520066676563834341684882235677912201640149342322559057313260274028899317640691151727336638327007786779337219860389880575213293147549162935553324656558753730952166275972611366049259938586020349125792632695061408757442146953099545828727215393248899202063924280310270299356453887632843691491582474707588318503483215836522563641973013962909942830676954138206988245594840901392119752385386270047740993052297755585036163359966944438788672884427576387878859520035546910151589153652882797930204483402151257508127083941509295098035841551170306855425805944858765065698966956704836082111475740180645952663896341050368572115513572015749641674494063329710059206537357184476957581865727207358437237071186403679690740318684885667461764868735215239573439754302763530740952534828968797727690181602344262162058132615350496822670265297204423719764957172773854468241916813479981872703217250888988179587607421697000779213823197719624306748281862583993645399909296357161130660681218371195541291450107737286015277998735033779491279942467463283099102795454903056315412444116743477861592945344389866069497365885756762962578267968481826485879634312784601640236890703841242238082754032541327494046967631299937931963732150744216169203119998283949892538858430194213063551058163074035058950293332747126054462748638092723023172879295459549063093906734786787809806386701966037486012478150733441541740613428512624927669324201833392557480703279921417942039999061764556341620312963632748122970006424063300407274666249562463042307199752488533063439167442175916514337249454826853147208431176426838677915792887539752589842899916204543572109714471068147531854493797999132692246924582033196778929046081609991065687221571749589541722950607022715777055784194548638725757063312854679142346254272450240325956285957966976768454185959187947515303494617564059447127060369849196900827887277111663619828546887218507698247990928114752576957937120986890610337318095782326272617638296403644913056072909093666715590492688691327368056706963155623881313941444021339153967091834043930095890377946362934261306438159750524136054391227785398174700927112266985202561186972430817729724658355231188134730744397408653951964536176616208771474926697224878870343941654469599896676762578385635911169550596195936721440659812752372800399783223950765241678852958722564979164690393670789200463628218924138427269420216550570371308762828805403555241846655493706361330367048144867002175806546476156004391377434372086682192260564777121040701022813863417310590396337730928834797623482642950723769305450760210421798292037673326507629718958851097387691933782063766013556956065866183953253100183860306311164556693857885099865681956828671222948107751197080925700343399912654568846864134379339160852448808375697022704486443979566293313719196442152977808396680717919164147935337385458023399967895953729209626874870207162597396343500274815162046790641463981884941703679987904265708805959486268905985088480189210763360575605653535794318528483306051144044639761919969332639550877310471770595536925190700553743702449630243853318642681119536433204385352693507452045818832518833488439119409269336507704492409836330678254649479692316174697193063462451894450690965725888139238559954291477327267374494423993625838340800683959432089693609746944783385149216384962729359803774885246804841173356068528399862444806910292425998344717934845685988891030325723011698631587520841507080752002816310334543321873841420415117978815617228525597857129807787380738156180746569797660676649127808029530405766305177205058581513544094803692070370253838874940534988177594404206119348788375080981032711193280846709491271564169413118905343171772558976198826645512565324611214044179406514040239900258295816940872721388553031521338511501191078041579523706625614668125876290301414480800998930477285632185104058213683657913919410607401436732967985967682443902290640619078208423010706940142935101610743451761367390727592862394349745823571671254333150668627449657330888245884242297425612892075116295446920965348524266125727604556868847956611951332146126288782823770778528630253451237315617101601449205075349548173624379531185622034826302934899532239162264945705963468500416255888661074633965683999165378794545816208877213159771862925353222681573348832967397843301982928013627385962647288389648175922413732423104626507246637985005768050588079048459441647937347251138566337035331911527319438790619522857896728779246560260738922248769304082850151669598738267228247019044579057725401997530675453323343244596902670394450086915960870191622519660381748896619274606283177646512384595515325544155607715263059455430889470715818982935126008733287527072326013885645555109147680973249200876507820631668918252981257655746555805717937762247057201499814940320666822443665085285855615464157829735981761427480910679456067842858421039540888414274012177317957651196108598344850501965324122675993740928462182678713570565790574908730264595985398161368943713252310953321893650088539408037343763002776562189799296461420822420743106871604008789929551935587684016569128856277338543879889458533531229831167121891858870128041794578184463005169579760107030344380094087583845375061439629770322366889865090068451070877562009110399256526715509588760348670818735418812382821338750569010979341954671367157787472669490324479165629835011181588022556265726850388253367913723143328380399359213850085554098972160675846840433483802632616387622606481313361419010220686212377580936791040148568896616717993970914552265565172330233911797827982634152337910186832130229286804786598274688515022920464737656989251414714421738434114181680883945700354177968160677872229502004682704590429677561995890136868403936613256718771090287057059024489745767725067588653805778428672438015607798135867190641354656610078349297801204389527023468258488659982093768290611787337992240490126892055981209184651371131857471890073170865464032668027687837575302467309169366339970778055077956172139601611306809041484970323186713754724585327561266508392925549284202426334775008672694971583226647293784669347195030305210284686833464066807174855324015062128822168406419212888338370829583541550288492432528911596762061275024237362855341991058712371184459631370540296645886313848900430967399368004542053504902751585998836112128792817114866656286303869228663125470246819807607549783711324004611736625056229602524613358696269952636133176385553304886887650975656556044694183146415238477622786111909829824000443976223596557653109314271758857879277337646010358052068411305389619629029580830061384911805084131118457598286184706152089321406036938960659696002429387590289755125284691407213951849776050320897210154616037280968704635823144495001430162240128097378740122695024198494520341607500530094255646180735023652676146606056297446046112203291767232567300229780147796705985842978043681751647102037561401512339988883834278547602859662641746710725830106430921026493573358684446545177149080511643496165545025737075095957323477494766618600689661655424569375906866307151227647227712683509587095721753372840218652790482305316972557887400241204082081725990311224287488699971744568974956091018872817165717609564976467271057478786514417606809777541441625626672664730702131411161175168332358738699507503242025777361480004574186156121322501594796373723967167753497681210003971787868929117256866645478359863710781956443104597495833311029959788406428197918061098896348793109853889654978811078709644360237638014564378778357950261337516255921774180130373976802999596735691620451834820889881758410713738851988705549602196502197717978435868658966704044827751992220302507954106072122758691847329726709905159162908869576298449923875058962892308431976029737944477527560452051694966133246644727509066377305308084837869224681659113052130246783537772940127131779001251890955666955898887754632804589936767457373776952536441921730066018884916790161883031381099248693919290191497318209634862764482195191967793929994758903129308381739297033544469482654005913370186478566200723482091687610636796170512414466762801018178847982215114259889688553492501362887555497218579688865572808938599615584479727774783895175639182143599552432644964256932461145626928963895286188759180260362750615490505086732789619073121876961527362153400416143050896735333085250241142641408854665374681239698307131994421528835327710644193982923827933001102321460386161711631668153159624502917911151334514387092628760129248160564353798267694556471350211321148582453046765614737989393072941572403247621795817983251518354451428843270130653328067729701005199173355536472011414644996448380292528262951049739073318243150431740003515617655092175939132664359307318348010051234405888897899908966957062166146666819586974531267585815175323349602433177524113199778939835274917988006288353644533502900169864211736462990368843006615640567755524217307030339885197881788994823477034111651873302797750655518789937807033366758265249058504724957606819329804808292341662957583908114207232893618032604450300788575284016606420183753880132430891946075183370816396521612599578184893808458323146020004983187861038150670617822153731137506734169985475825444778979942984479092379620353944204105737835784655260477311161897844274348092302668383673210891116052227761786662732312100581250380174032804808053493505213852051741106740475890746059798655156811268070462782312057572496366129276567020640333138432820977388282249101615185196075110707600149506178157285286295976209609918396216305427307886927573670418048156443685709259465111543304710963960370124128610615077707210173538390441520900475832470436327538564194073872896775508097430622919361669162738083503257605205444129673238825336177583304877710244001146602230349057702378876432281648961158973678430453313234448370181936444707434672693924565199345865824828517274824952815285618444630524216436889385687392241338290626810384931541968529946212375710690345490064619447993624952111522801130036743420798301337865172496023187211628007011841266828212559886128643754287868968957959169970641777668979989980966439311661149160468184028520655661259385275020548356807535605733456714421632208242278609724715160012092631436106444672559712486294295976135331401450695748967805444005995110242554006496553453535832227730430654092344309462792797442175560961304133100918823884784875072662873170286807290728165829454293463595453600658875290944610773191200469349246113392018131061045907201842849031855430351570343980438097602973647551497008294277236622772761691137397933305992353504859431406879210783812761702189839427226506123738974434042970716200696890502740331569129140884864895273774360535140514519897885460030453332235865451334177423340228044769787363722663367536327247067620993723678493127262381383457650815688237577010527620413187028752233125117554099497684569045942724748803327491680457797095553353006333215993691540618735815521344088145360936431484322755183585638602681053320171678272376181930608984539215748580755867867814511077122288785210430075230577657814989327666595444229262928646094793350314048204513464668647531317226910991091984666521082859146007888121183042341332292453714422628242732978905317708627795263087389745414451970313887479567790845027930726716716704553803078635936730700948035975929847791991715927883180501738250126293992367370971158789695576219003909385917004144748165377311156849372198909531785849787697099430736615657513906627510917229634100255417823329608540291844435746459518018575697092578088130370843559617957859934958783294690709170075956859435293092893740809650893223143887628853146913445846789873407046357611626451059698364471283824497106829572727235448904380449857883080342130582180986961867075768159098866456926955374130180616052158528373409468230850156864877681959192723391273493944819841077818719931241958950510208313404255506250878268504210631418310601899784488014854297332464199625263943086976735780386023671767220286360220958233493754069466807521764257660733410194999999564694749449771455764086835945467820812092241598800925781463152036140211334043807199996607880456558850942417212022791237835204723741700058687048227309353369550205915800006139750823913729578999248038923934627354971887027682648557101508009240465432788031985316460578324546545701298861178866096291356271854913184054840438865435541651614698000527000637514901789019759671523252193140835484119513712788634171177224145059150156277792696328196974481145070567011995040618258836688422049358420719231880595188603743151920711691237333647524999315900062311426144734465904360463000784135029491778759563327960115132131653545137644464371776347319571886928964426610145412400568301149997864023038800780602894115773933103811945575049791897274705428052670849810548207555742950323129449788041023013735036890378225668438397038421580556599109554295237927929384718918446465638296740565235294958023869454347466826000803314622324654556654814726040418244579181008709744988962862048042617582015062877167168663963109116537677545340441105586251761636287493613769257128819744340576697494660799386084702881843151023147668922068915021609882383972671369007254742750711258405542939078166478374044780832128750975369917995425000162342831187893771520525804347622190177912191640895859967007392306460886373155801856090375248537013303777767558318222770672394323280979075869760416438830179921777938640937158383267324851376623516623624308934627783795361425717692441813431907850333636522234001254255545399438796940163592941232866294089501523135809780356633744434012899441319210914024408108759947291527206859300408594704245527609500714882059152293101199943032465064507249092984778510304080227847219339040825913036780288508489125004127401505749854232269799125366043607494180657388377816389329308344958517202935697967436344818228869992416929052688265696843700732923859380972459948095320180285231347744675965995103356054713968426832726553692245170514017640107705346187661489489981674404092974469364320659518548632253217278297364987584938285753111952893276976989300272374291650255457608905625488670749316937379426999523479300766973287242111919849393091284180914463922647822953897866552948194189762501673048798445797794573943075893255460157862454676591181415615726348281188705766448975851346278948236983152400996022575506594094779917208264353234899592085484521599564532524664791166068976029346860220964049101238011685776823352249197845303450350247951446911132606010096500219351657057933467262114600373050906942112397683634564612561327192095418609379703806822392781208011005798902993968553780156904059659684235543013768614063284920069601808330875121219845667576296068541725370197633338530204448744231637158004552909809201196767167418391647816988497302136476699651792421706938605670856754003144463893924080508612734041756078060059660397825624488256477535740650666784914388739213648081112590762108922021204465158139145345108277578289388656193992800341229701750751250337902661173074834691574633680603026463060672324739900520240269572819388310779104038906339554206272157534230956530326194734777316218028487920127950967310928329953999841206691016728074281981092585964100769256032931117663095290188007524061132262032340290719396095103335500164776614874534774885134667018040898568092348042101295504794984822542298445234146420768697395533788618193000854694549188734015764355999516552923868731672822024669661024056574614700859622995444999573235857743319932987470011764075089098662812194111981356985540054581245109659922248015534315219735317531522791873724671289976100675854525622732067239125765058737503081617187843445568056536526943652639417907154595881295449273110745036423775431195985621269764195341864368557296733933784894029400465264429320702649034236472631324515942132941700795204124286685881613509037184925964134359522092863880079679434454297038195963560381200373171872702576181141464450904961767192714367893006346391702622805454533869255450314598822672913333278576643846609703021569983371001662403173527970823684536289598135273176367213104019636798991098073247105530156695156536746720411716768980361478527748041843900160132312715553572338775232247309342415338664836966068100829335633521052335147171815774763626307570290496290286265907549332185694661153700285373263628084526327744186726121754908593058072894110842666560471064880393386876464770463265130971081744870428083963036938844067902254700927250773864520322173347909401578018694712814306935052770074095075051759680059489643717788855431974875366120714753159423933841560180231583927963220514742768529023814570641784039553417899661132873771323775206000484770478634797036017770681300517551022774746463807406769107836761872963549357987175897111374461769398453602709704441386553193362524995088492874241600634872030952401800468292781737077675091312618042746525796816284206577864181571212362373688982140692279036731473252644957988059897657135701383665504417853067956659435154196954400401536453634592675070954935117665109219434959748797564069879232402617864931522607805246809966741192746047474166437821221413257242754849667673270159355318827940899077273901829925730363271821039227434451872267621227746694573072247176159050973479172475754519165394880213988204995593995724310879719973821816920836127479397463995672928757307901393622627672757000691127249645506859259404704480737746856031815647497313445879609808111425286657637953845678232697826604749217617530838346278401562654665499627964112408541079653674206406975437603093800621630249456990618324033336933736191941475891048066612152271728861391346262840653828338270238849730224817223541640464114911945378934853454884716859437637815986283841957577179755223388132706803250745865293423959805616986184638248659822608332877771464583665966521997616488120484523208985630130947968430549590834336925943867982797924555143967341147244171775101703406382210365389022154516911152859219593428010290430107054957600928136098203931825762317624330694103366862533043244305953073445830403449296115861101977306281598961336593552280467724732993788828255919208391390647649925990345273370840547052285825215322851405057889046922360031758890966734825336292421997440550986225968465670081067631065402550254749957525304753635792463590600564675358691293691612957231300072783275765777725988771545310935215331666034354608934704371406392347674346900057557320111641466875141822086453470086082929386107294764473331232123326564292967368554155589994270088193743039092783750140612383279164687478852799985873025490054195060281876730271487307531863923052580013019823933203309482650682908223542309884761821787709494262694118574152329069881388282134590259863655751773268797895724887569378727868576945264787226222980280519191098507839163612846805877379173255892871653013521373107401150007219690225279467520306563111492397093334791996869298980840899108580372800799869160640623208341499612075438219464317991814205170565573266982786836787996910423008987404625888485942111539734226235349416763064221891843302600483295748599399009694701544734186719365519479964670562718167361944634223620075039176369323857941117898694856888097662447621810933912934935507163124995339960304077460020468681032475837993359004395510902626745900897725612131146455108057542996674386772335597748518553339552144469954123241608612144780222321886784358939637278675836461163920565518477212304191326512094038619065586104042138912732341243956680373379536208755434803894214283268263559371721439634429699761148290179210761101451912921596999674135967779119973120814617934093171492929857475387216099192456613733137052970064222257119343111021812388370970137898634483012762703560777523612587360265251844479566169117918087355116739020331989572099804158433535555548364017369253809061286668732318641565458984142344131311685968953779121661997342814003830464035446791962582298155487018532370348197850904514137887814540805240443609109418428017448584147198838256647603505237715785106353123621710704085185541178817979787092042552195126912928369306140881257201099626547622444083832797104927694941171359691070594651101435672282334251868345548791123072130169788791061849295976564659798314485987783780104015952373354557034704454482548378540424056431567609008351978467071480197740399924720139329129230445106187031036125716580524149941886722069488827808184383455350473732448590700775805602567255536564346793940001719414163952649168642325739314788121184894044999796465799871001638314404175842711388598176004552794768567530720357527715942280224224929702563537832766902103176788629204371984892555494257482743002515694771191478100060159691292189432250072126034988104873833712207600159054034372999592667168138781252246755054203837972059280420549919952769604943734030615621669084797489844512634929982234426877073181294929786717715736044948506186386119534815699530975985666326894468918897168335681064101636547904193702802975641727136802615625813267530031953236763507893352485383393985215660458636619875518004710965729017353448370682296484875267473155988356397326432383605803878005854641871349779585313628413908397032112272967388246284973279410765248044609153031573764235486006729114354111759955897318693239149800389618767079935165950112427819982126088881810240362015200754632016302205555280671462214580348492403740599358026433231175898957395486752735042703058431559714553572189066355534212798809359576482189717808221015606607507355020948354474320301426116748171103944254942025419990504072778859580476087755066326886670342996729720225317953146783763582957250365072792440173910244079759622601388922294213086711689509403798395109912110802973600931186280495393817034275162984118835391415300342549278815753939769125013748699211360181438257146078850214068758313331596300186292701765302240294745209903056183720042486540099212477774062180167260166741695842051004447252904818984044055391246495424126979427554495353669449525844095989597538636478827234950068763493689658219265799792143400373511491163930072480704444800497470140029641359209534580253688445313655677985791277884127778010599810673658649395318867711655650483880515074218188082908506985559383678985508492068133934924572949911755135850992979207726821956383988218939743020581821960246349856747040534994091917363414257316811803686400412344707581442489811184288047200281734592994694248431598601157077667619421469441988129566559667930768636091432086683069447131200969553684242359150272375673747361378746011061774160999472564862075509825046452125461199545521233628807604774469922282302755100736418825465105564088344599686431295844812745048608433616103754049337746919254721932701472228533637460226978853190779007399174277428063586882497159407823485488216397715856133770304581126813823679597284981142821140372909243381980252339139764308904578394524285818457778593062521959932542499792197364207493682432526858986788139054400186707980727655963375374235751330802061824802798014126027217906592014127984115404713321369518456268741042539063017136757605887841483257089808881039048017663195447901373582394165377512214289676813583358917497323328075984958543636212966411364034027541302586149442479379526736921092944543677894013842097576246308010496375950807678995564953848187996607120455650259237996674351722662401529353325457773916269531992599316952372486107125546570583933748876530699215882249089322306647175053592497173865453322106813545808408522912321981044928787440947092785259348058225301699619767993431670714334487397067001753533676562853676699867032760821555842436612202169535920198498320035315560542797749310872203636773349401855684826727516897176005062586158925081005691008617875176357220445703680613376175653490424682338422966571675627219577512131614253843928455071745967087428973871333224175967758144558049263505529982637892629106178188125988442882436044882229547302167266921649006501869021057316219465371450475228439766616992178635664730144344385649334942604179077927290166038624285858752226231287662839285017072202186283318259548605546309401036214435386620395135280170701260659448916671659096282518441491939627976149395800775809300803156742317280410769450992915097571513856336334448674191940338951608439863550854070716878148659807857260103397717157612430730335652191314218696057538271750982175122235157850789658758007437702354803003988077149445782174592211750588408084196041426572164461766335261509312723841895172668063200421364053771206202094727682256065401788980084586212718704075155440230308517031269655916937017161979538204659582422604926584373142273944380347673083028560612524078641440649395460568076079181208403933012900733442872424625505374228548658987472849240717306345278922483279440588347026197825585895864881674896157172587447280573965178783575845910678872687514316370755108473436147816361481984149713524736705917913959477424779008442105634685395867212540845744369568205831171493496213234162114926554410984640682494317679393533804800623849114571357842554232586944088146864127478809138314905526567881626548865223793620941857454511629212230079284079312414019950204608783843994911785106048777253037496315036947661812601595506372934906563793254417475361094004006951106906205173662614765874286901919006862467029467391315022899014788440930579002767933374993836911773381719429325445114462331483455729339035237823568039060312272986787307772497919126832590941864033357686417558465765958505951810728390384738223749660076964051476304544290021204751390150016946401304141425815588279843900207193052249052534759892975510370133277380593729643237692478835637500490070071187116085244183703316895923726941020404513611218229039620933760263566517892168862973246996777184700122522246521262874414493198674189440771173798496500432579688135305730072640901911128272542214110012126659814933013117130731362799718210653186737353866588577106800383204170299555251929171698042588248831229934763267294210717658792922335354775569931148862595878380213616355016991527686900704625232427881614695355005706596726497906939795901110849746783426203912092544766714281598471436647573577788019832734086434429126550950675370546775642429132290360506498417474501361544894450565362425178023859860806864408204897737344753433191572889697245622069153589878824594694265101696232117532590739045324892249626150410447348351640106344937359250602823189848921225543008588806061224409150758037777241950644684183387632751382192436583597481327009211069871470144634098757702784199440484202417806362350935245642231469426827072500049103643388743718958232372651970655938802476245484470731178365703059487644032583808137491445492599485327853418627598761304943563556124073149856445830999697812511409905515359752153401533391641858343065992168478834318685342892457676285054690963678127931093182791472710360710506571182243520201591801925156317986204485625245998419878304170863419591854621790879346305935161406817118187812854248418404350884704690326408500530917842488101282470081209050439588596558964129420533144622288788273198283475426513132630672529967475763602407423168990717914363848818650592154459699747171043421703260027123103903429117711487968546664115708968258142046416860750020905856762579365620094921975558698147778108556007686693733185591648481006773734040213955238818491218070871665555339101057458647873995843413922444239766048998120506242009470874511121576145657080333552359727419322247159381992289147742233754560277402578957546254065150707661171724897226765568938078212808499149087979210749199570810343568738453752277987563256352854022495869418302727974463139563627557143094796207725040640292145865308998996354523575347656841136221286852666501336111359459132811036386875399666985931857289071964932273276112163784054389593309444347643644791368232768312441807944808764641357337629088789824907877696352534281339822113760275360822095265569751724918381188434503788569624417569637729142790549087347180893055008069142461474498604041089296224472793647693955268745150041149380069524082685562708955117885138266198028003265529680607878769365789889632279211240498554204978259271186476064413445431441706074711275114968536393464239423655826344780273919514745414799655433985388752981114170171448179597360328327157062407029173778408879964231410486960037921628585483713028770718682700934330970084419624082740366543923448618678820122649822382534582983195589730189180044112126320297527928990431970792371662677515982103710163084312012091051979637480234052015324536383008963119597274765688856046493543758121767094579249737035676490226794013015502053739549794390851444400471399989675425515401404923288367001381490019074858764061610476093026744216545703512130411364926036542033304489430990551546045131371647021990294074862012140721744120081303576400652812455833070431899467580315985246699702470121691117038060538919868885026563690402949683994885266209422216102577222728469322784150958927562745798113837292220275548226813693283148970087533133709591661744085904850526249499169910195013859420631029456693736782560498091285845345364128511360475246517520628785714941696282750251401770608819333548446190974738716269562665966322665727242766289920232133358205461054071398468582882413730534599965194407909909912241477279510245420254073955607362053503169853158545283242756482596427546117615029787709264891413662023734237107461971891290676620457612980761448320794509301212320322126844530620969275918122933233025478213933704422049869781395013908509781167313816270717477879895800066430957932253036135836670605545199715198919233382556128623784944078195199664605979795527855746749547052822346196931476995128043887944795222187846435227049941765951710813974557376976726041371660971792817006669922131717015725289756538265558858109685129073900904832565921275812067235390078492295911720340878501126859227122449865448952368886228776455283938205456315047960011600090056071437743274213820154640675292891154815380745219298683474395868888991816636683027718989125825037976909278385107449767509325368954208500177269400416174440745017754451120429572955599922929800010691843310875658871955685014555847135747259678610215152980339388221563988240110896796699240705062436849261070942198704139129886847483815476976869598807321831668498666890020022229519168649276974262226644702676678384124496489749347142053403598770150741819710802613495915521872081062201430854167493341372856146440079079848551286744504721070680016770287177633706545745324655176255186671461974461040615857801879915968102891870887699075050054245576765259439996711271850606632774900846005246543041623833716143257225400722532462421186628339428111496404570715016419470601486231097006173079227148457636328134876493413536853100661326778996368647424095970803140231837676987608165281976509136584636287302591628659946155123355094789801398408184916848822142028197516733215367330184531029853982714060793473068382344791294212304503225551689720420098075679789679521209118762744851838754729042585112560013574579076075601384033388606385042797263981010484493243847913021060896503683608015081336702001913714767012441922679784775310370760721271987860539575594416021648139435749761758469852868658916455850881886910279599625338500752706237673292711135064204719614190860333754093045607045293330431322045696684153614037480799821283679151846729082633640895494355853619429220712199713145485448924257816368626231408973765827681018205680669902394785484670020512696915383853095098741799399338748177529499798770044816215801860485693717819754461900059806681871506330572403589159937558697936796243081445294423030406280944873046562562151233606997328219028242546679079039377763838882665544227428016760205240098205026526495058726776204381258081018280221120085209148842306124264185659756802562199752422753659073931713451840983993612338635857610635947015678512461385721557255542799208944123475186670800701828443822988080438532949768943264942575416015156331967655862090818621689529122558889878851547397098975585161307771245437167498240846987982494481346009416549761553607134996950746705838660151121034867753063876007669364877008208620818056467898401377662244906075200601789121263517889095438760787575804578601305520118819553729986127529039056131163786412612036030178388408936362011169283590735182435054166965164423817450263890942310211899646686074175809204470119997239900257644278631587900674171561105589419988127593109332444360005157968471509182103936171046769404269062291492312104128167020463787183790561354478289087375745079072266425660006300283798304531368701386218308880347839430578441175376769552072660466622577530621515673914693356235521132721922024594086808803973416845975064834062555960689786827691406192548292023675376006021359890229756291924966140387863237790333437383903451860844595547122123551756146533431396545073533140527785698835236436429063237883658771083185199623282787192819662178845132883137895541511245525289626608611479410646141854991052019040888210161928656482338564253464814371911974835184229031202339543497590759446877929232036371350865696245444314613400704940355768451301100425520863293009444170983696521751188634769985238329361205761428322228502771163322603002001992424972639285962641631781047833018184011425822380659085526217646465232235795497492319750103546498327338424263007718891372579157018341293264310062727345015569140680578600905943015056927684253362455153461461966815969094506227698472758052613086630681168513335133211875086448003253723629971845248480438300518711204162777491374565016773752313066138269546320729482637578282090263276614127333968525428886175392045722725676297259626724005748912662852135217410215289065831101455189405988397168997492703538949758460290725318166817944011446724331025831226045765414609070062976688232404666010904546831750314227872812410494319574301592225877882071264644468069751168817809216964886947486746317957530641126766920365541470241080359001555515867819630403353963767934972364230133084956815415385170523407281065415887364197267001178603967994662268833023504246529959776404437766400443515776656667538678585835309168512089411483256890718515615348616939798260069460120083939970630406474473481868667031602943157479496171818740501734229405975736086619816230060498056893959741637974891319914377581746961442029527795606829749242164669486674960192412719947661617961514579866655117163172146251114280313808283372328951115200847974858028540030367145138437943557256791515586687868268756673480446275706180745201289247819481004504405708561160153975305125528487354824096651299159735984134146020463853895182764308163952636119964482445174018742415421640996372651831194421518088525853004209969654448892957429083550005161123879683535296285820944419405635572642599800953737429373614908865581501396024633827930187581649091637334429300186816151984187952964076214805126749253333261083292671749525567033421456887255432062945633171519566329943208818518659890081316124144943932283946045980544747927269267329129890406314316773109755066301997858420441734053979939313374499393824595496425245235467995320452368548102773976927389995157168250756915415876293403243348717485637787586866843237802905048860295416423532236708388106940007365663108721124243127432085516521068203830979392296433549780861660153300694530644681873126068459177274295573885804979882934688577194107991126575241974366750868390184113399599825958125477056282257059984112287593425855291014050976735678310410594762889356609554976395813885253310396142407516069175942156796601623454124429219830557166210969212151684107589622944245280936731101590237977854346485092687982817503080289086554541001347037724675920928447865925527559683538325142586202635180983922834048075417287543722248336678067686572031421719045523182981935022123466585878533155075976409506963107845591853897449272723496326985187954101939512910381287719215223404400519145697379923250619594803573117817168702198977497393276726223414229088844945074245341963048754282691578085332070128265428538069696837823830950852714796912287600021831849067821520756120251866033173771281509740909117127208766926279797180306449509036608765416004104918747254015730521972030819192277150410404582154075726724024238833644592780944567732772045414480605239746255086391437665878876300024440084610643179381156648799458732761094746434421885867670913779708472222198436675064125035356105425133978723523815139003287550002481031123464628260739667542778663416345158264130445991693693225737348930716181217996608208127639219512749388585704113136221723955611931717936982909195276248873715534422987042488609050090574966125887631065827191677914429484579877260129425536552284489229499777402083776337011459733989121153005858398463662348914851363055042268208805231329181334866450942419175716969283070621318817700218128672896993207747365281327772327690917579873080419848697299869069017458852984555100016377159747486701709337333552029014919959642663773713078526050283364108975277823104569100050953692860760306456549774245697016224292129046697682676599450795423697184260634293543428055417172904601293288935805368558151885210198361690430640286440366058742571835904446619219437847847418324438732064638972567630729744226430645616821774368594474865007125454209296778851802556486998392644659826625020947359110727319986766637983136413738169528095692665271758444947487562196029844455963381516670265088093914491308799838297223627310309530138865454448092094231237145716283759774236268940872819722003857567446777230355746715522198336331835784486126547952484986071443755608231182575085908901595770885695415085417476122347251617513608956219912427671349899810653644911111770494186736087782708411725726223466122896470069748065028442396519308343537580509522399875967752414656754775590313691770809918281550625680315227976892397514704650559498597505077562573908375454970956372611002670674935112919140735258661011775883173100461833257638680680813445566619846072133230811720034265916544276230025460794672020678793491790974423182790757796334743319517291632229617939882808289059632140182324857044957123154854164890119413147494482208940828072956774234549675614167639054160930548862164842606638474460160442759085714230456539571306200391399878691837833599771547278469269363126743413227358313971130435264626090716079248402346971299381663560174265300601632956573188304589156148851979117723294496312614404457339560301850162584784784000027896364846418576196302924501752877583706985191179049468232850401796870687752354631534322207706212359609930507371490286336219885218584128105925733241828630369096055178361606752053795727212548339869277256936527185126189399292889915135498326326448971667379067670455209130788627299441571505091015775424763350639665440036253623865137505439495590396066527561206958279579410697350634723152055796233218895496365173255619990392976959080726658213088704550301094893322162085782843943724783187400380529997685770775751157325329823480946871798460376723689495185480370195347216783418984231110059401487854394489376135018434093801019930777529765963704246390261481285355208860359986115495056211401456460580661144302642448555851938635513547368130987594492631510401016287031137761468537583298731308112040227500258399678849962091280315990804045799627825752689712103785192703703511607064049490848105852841092610381014458402415422071998250682381942472296447409277697727858802907385403177864805482684262714870693906291608272347560462310543388522972787458497717649353261252498738811452152359885443014743567390543539084899475342697894483662031176209292149463213418444772230022245585354407181112198345584990943091977244406972779504668281461311806495161394914469894721376959395515347374337348223600919522942500626580095243631734313033794303806080553859764605979410789679131041118368980380746948853020229594018856052245755285786974322423034644001143767203652049576813051551679118667666070193009387913722998499775681120865890697367516345833892151188505271531373472070683722571476552103201293640449700843564648434490120420590701830088057198025919005327166212031268787338182956431035904711964652154516529294956200343823556662585467886718855247312837784007062361053403508447293327663242070890397505311639258665955069617816314561996155409907541499432702968896730446271973772865467111052435993389182641705296159996950966512599119453323996996283750072447231514778976173027965903906821378674554017703608495355169458769810188154186036314138049649533211315577155657761548793987288287640254971863650402302392797719487665362402664952846253690603928996526617247796528145340333222305582692286482930347125904042499525075884050507456892934927412215525439023177326754781201714486222238795074175244645813177803845149957557194587056110035601547147483616379253673972566603620101272274116669160886809829829471776582833213739779456057347400083723352615111078702902724247716739845062618213667329200525639708813513467531976545143430582965489688471177274102207619383729363555922496693175148823464385398561692873789424631846728464826867171127122384100268694019175815050946045794886564649296901448287488483883474574149370942325180411964781874698264319390021847783837637685004056328878734298519493142956445630167946643244790414964826968065371889514891567843229733425866585962744228444596912942344301815758495571640138489463135955222439425606150365568328672402825654653764714686708202066816059693873200458231361710181918470900090268135219243514402602770206421391335378157401627322176758894162587585855801728221444737917547750216681962710770437392084970318230406951537009804435039298087617389399260786972781792854531443727677123055914840861841360820969972314273104865398079432458502067921680134858564739486079958921804973112631740219185391365053868377245327541359962868713955883116526833147332596155600623407178302051914181958088316801017705511440186679701869351490886036488365844320489408331016146862992342434682650195895278258447170650386948824094053186227043079532026141531230957804202573563704517572594070711609294175638599337217838511093970651887438532036609933672937056532726995294150652200122376489757266468588824181363089145167901094749751959197651084488001979799284103402825584459315964469394900880554766471162265402476363394721081084334609099219999803645859329181799677911950615349503228037018223437142365902612155036809310063905147795805762867081538148407305771057131471437487689172836714945076447340973636261303260077969270916249269271514469399976698761368897136044264116011143714819861906499963868510706134988922317306397515729476711190022867795697633275465217060460301682409455175105766455123122555806754562893291615738994208158762251543519548073526690164162263958153089866650891946638756885615902254697287120659479135552481773315654918646764009918933731646894761715553228726259781013875351075916016319639450614765244775990666973277715737658423713458892283264619607878811157228868044714827261102996560217553997453157505550865975405627531558431576852505895461274906301820232845870827112267091573801724277890582547365747696003037908736865007977321095508685650011232903797785197294123434960499491270093788984734171326821431135216976644624617793677461245160158002118721337999334116382067233148979877134407867223007888733906065132034587555947423764918393136801832047402404034073742881394658467550268898627343287022190504911458821524917362096808284136572327842068969100890194365252014322319314221517501109054122142080301502595703894167465516030176199050612815151379305874431625789997764931772800291203033805519045320610473365839768299181787573398334601973053172151798426001206229088211009552669457386217766502240691260097481328140797451149907339455448337045892347705641112929257110193179078141825191154402772372871380488877726570326989078168253518993243944966824916568917837483864318338836815815322969088032283539632644505110410377434421258785958645537024156047997908240219829291683937057732493570867723398835030622361688174817832008504829361028440650260657008580008593235287817532225072829996839806271405685968488842600618546135290346826795291719483643636148814610024478294829449019395443341262433353781951052126120200180207155410514799120046228131378922183155458149532124163686604024979569872648839432801941835365732981235698438071113380274946285000398417791924256845194079041926629798441873037295070846995663070842155798667231485026812339734667998278072219850991263630694613916452463769342396002935539205858421646830687646227525315310110616295328737585472921172277355088262234916721638187311255981449880795178000578502040844075423760212346632552023377739836899200366124293078987492467977650965671137643391942918242205772030292858857090740154227700444347495844055157093009520730659449475195576412251930374980584621271953400084055214434781224467051415787146604754288988141219488328363693717305312641317643023081600721235883223626962601779414175294186411351629829695018474109147171965066807524271100270891190560144136891681292738228979694349263929661107621536827985375384052463461072650130948510034555328007588338742935440744197884239131795193201239270757950698106632545645370592233816905359123567061279661536588569187597397363105030676624768346629667947001898420901513203484533079695629165060815763306106304475784522205521561176964862061504852977335865817517143390808907707439354277861013715102186030951810457833377274097558086378807072397324767847284510456553071289091396105765282944073776401075653704034499557951486139061512776619334388527876141067248338462748232305741812813383751878752954919064589680471968188400899297595289212007653684336004389123391933100121539011707713277288404781309628235853838160512202682946122865054843558833993090785847291052064009815222898276845121173599684247677189479070216735551857910432545970619996948367717285976219620203662847787636688199230538732516821782998731466824317087369016771635158090123835018954941137285215722775557301749352330107908581442340638964449924850630545667634166372983583354802646313621223903319893523225159695623065342080137080766248285319397927303046120345911336293803726421370660798196415934167681127795869062804365313836831474697197768013539251274776541978869438614111984456663298107092258729849800772062538269985559850935467893448316641038701282307155435765516288025925217684591154193999348962492665351289518281488985389930181379569531943429174070179837423729670736101357618467252936252813603992206272630554248793559521796186272347154308382424878433459877385899137841090365291472460505125202335176105395093787564722220655635688272769131360941246755004190000516728952650594162842813321666806971140846255031627838061782762401315625405690385043058646365748203453068330836228860079107627034259463433249623644839829753285521615558216425740726460047204980106485545659162562317321790877877451976773133831789417567284472670661557497545544617127407337137230206442662883223783309150062061878236614104979879648085793460044919813532615156550778627539183479794783292040245367021166341483400408650685374549326265921684215781341124459467964614065876471079227161023436436166689162082725019810628544670608138723646429081893007566534850523866790019251480586871783814015700889231032145924207507227170482818558611987985277806676283847803015759060511627907464497716510887903618486985082127767761790531194751292570744899496821854046338056544710460608516842395397593513201170889404984507407430279028770608413296196691298198144791951558236632484341577575909543867253242751222593536446325492908639593478168772941670288981810501623328404839644546007519072406730380370767959406628891248175537729821657507959237612852257969649734659298712727906275178826346067793157398226842358618110210667483308962509122140036128599455861150748547788027338668864542784561026528558831853861720041811994094349031656829707595229009091378597742894143749469294526817866776862305238430313550504788620517947529752210191864291804723193228246195906725428872820970416525710049089746314236100077873470041468058254735517128289732456251403101438977045174512062164408586081399117899512158823115633308563475354154625380840689769686381430768610247976711364055316014153071698998463242294277618461898908993807065314041354429310463745637026068799888094572713818563685285100265673506380462247090867472941641798998521044894204652619971456460780291601042245858382489151467915160082894028548323317245075945152559609165150594826434720640942944521049579580403322271561960633545968347309418672411931592065950591064803098393804301270498598723418942322510778860272380324167991615431656495073109968480824548137033725639140363721746999733577565868437853819731331559037091620056527530832449199626120114384961543086787772205103785501256723642193757893042788389109850080686635330968702924355342848867342566643766472191778420236919876906716499215437076394260126733951225814119827331246988169194148399352807538499586776719018634406527277156286301641666403271669377210976881439314690981032577513011957074720297073202492947048922430455534001290688949607389201005068611475599337402164656285665208729425646406469266792868290179486781538147970883568606732746874537015406339998893474477393379886242002623044307194870726805882313167220566655562209205340799805283570141383069975807621402867803334110829335769006500566340062897955670297699009041299404046287291157958221097363645088433046197053311364084609643296970617944669959326353342160434347830358711206683586380516424883725022770472428304524414357769791069464723943509578525179084369657594912005382708148825659653223785374812010146856578906903379025244043819868708416203838429306008324256756312644539856890345501231987449478831914322725165928867409535312207002186466945557592321633819134684231836868361201096298846129261797604426871976556872170544444362960920113312291636810121776979030184291231452396269870349130298801232100317041984470966011235955605131786203070403908963250234779429265087362181451455530411786825555659351897453178206265225496452369998667381428526910833081196881209681510884843747391708300334241731919785298870810909178876919745988158858782113539754323515301915083507443400205021417747656421868582498280946194156616641679640819852326924831672770896985402224367885832742029810352648720710785626207024137228940096071345243437126621978113766253088922036070194067336057014654900304558809345990303462659221766240388287232075465757975083058156068693275166753020426221443294152906037556892449035973851902651367318987627245014816001848799738939317193378712933031265980586744815902002217742263605193264272030744232786740830043293007238287613722090981126318045277005558748901567521282705775024139940708557446785320695110660211551326672861791442396220331678051218963184915894529716730048031973559430340366548515881504870026423550170563060044446882828735061668036884887536653695384475500455684574621065527404411241336248163707130321441894031707370106127768172271435673142864708307526324730091995110827038249132032054395073862845223292018647496988297113068634695841942237368212266112053010687267349872400951638465121535168269959344855097888396456092725119129971490589747469047626555136295400166048962764333841460116255356768491612150261726852117686594156647483380060323775577558052558621764039472156927686730534702812410300918802420967655933645210187785186328715623470218564623180764414327556840423777884553981469932831749234938042577928134609491442391600618677818745296945233537594657024640289112216005993588653609633439496280909797148900014565451288215326021021641918479890776378244391476277682667202076611585293334552799133308046935665927657283667402124948385656112055928890672366876437867109137401698454069571217168425279761524812096256742523317328745739765843630072897839759215363348359814832298406192431193896638129954188916250671870558972582110554182186798119504967189064660553158078647761364065902144569883587671295108394100065933779663848680411588029436967386103344052835318642365492900687940664442463170771852229325466619931940251825830566801894299234315385289082159262971047700910682265685585975129094850438322667430520467049363390987155304953490500941215323592217498092314234730151072048870065317789631345088375105660301895194174403535092616655477979588128310253268635792607517586224685754220543778414937991530427145629752300654491356296560796315224756373705514765884348092584912245188168049131845599938254259883264003014644377719476665626159713199162874741098261795545217985345504905908985517636524008659426682906593403697977562018066143691182212819483324539224892707897158251833323188501470623552497683242498034982229976567916837255069106206932984977127288108392197007169140922253578576204892062636324289035313724878353303760106849606791735480175877541048417943152983797517115306944128680618551985630375291269480512110694546117616499695017104858654936608007073619350907873845820432174757392997055435127488128383452387816521720230455809632396899906616265965111873590018827515631365174583311551770724346286661905936207255184543646019712595551657968585847047588651780354273610857596833879555291024017739105446357591258882949220995761962117905535222378938435721120417153914974204906094016598483867922241082744106992973773591044640752772140348733941340399978330898580286797121884639916429721894964725798756212195105451199635853536462789698447635177365738239655960512793339149345737494587157144244448946532771477107278458757402389154608099776535141179467789948871448264712033678240348208837425034914348706057748483531882423021497365828912090966454102153167611466609257925811594702851452006895329828230571880068510607766417514601265139569501216998108556624847220737446534154445816907063745790852307712166911467086586311383397665334824943350286353556412597270421860737231335084268941914828656494563183649957131147074987732755105706828272941664465669340784082707512742763510614689008316767084575058117434740447901647031774979227973585615585105925305668402830983397292548688257718012347348055390020523721951369348892807523884335324549834149259569543539221356486353966394769211462878193698570268884539069897543895595163234803839434475570695178813173328748186731780910487725326490820063393580088672803191684464002172369066854578587553332912058281974129564484873290002308691583135027096126306566806326970848482800748983799803129141331368842739232826205148674363416382876497450140020851767684062664933275751361598586779907459167361205771834986367461081796325686847000652330704582297836389890120598812104359138764417234220286271740090171665293780787866410396088846943708661983203713754835927214516733679438448408325454263621624438655165675464399450801798359164599035514240439937179674881983371925899223815827646778771468356845547942072417731340529401387433231144086504020977356190576479313596844642442333786899809048695638420210289835826783460255581226097043533165586221650269654125760519270707463455488802911364423599172938329161387571643421547323896688514310232564847382946119384640244229902520691951535007091844154898210536722083830067137173364537461907772521439011289026975203462287227029357275550043372079381012585377864723442589841910019287338523940555263714557643550358386523782133311718237489206630233424185309222304276882453032823450648283890604451520156214248293544973616712081512613962780028526537630976782632449156788735873965971886274461839697248900581158257436712406103996801710614095428698408420190331894469299729463101049662311671088652140754843785064272583274208377527364724427142571317683630539014678624345684530620596141708996653166751275760103319429892595281098430655249660227603010774390277122624554486803323139436531032657614914263982991378301369407620793395344955537690799159950542891413853494035100623317238052563599309246847616665687440559932989229832058371389334538821308758882332232300872562346283981124587379887299270525910181616325998227505285341400426887796971020233266565767522753395064026907484712204024086637825465602956768117356896960072272423387607109463360114295227033637400275293937317994933383861663034445507854280719502429526703017971420038369837682727826123443145501598020403560850743827300091364243743111996800942833369948179631022327719515996227631993927659424274409688858747201539541494213666397506748859981965224807236245718433540145676978748582052478257316914562140915381175058313476584863345619616628765489710968228842561789159266651352299259966936285960551037921109886168754550330036131370561709181169737168798915860578024772120634108940933589814280811234143531951260060380729749399524411581803219512324875275519238781135827008388795586818553873526483033172120167155343784384113277018176981067900493185294994404616218755372987531908905370400451709987476588706038615066149541966565171927005358221189993779823054023910900884673050597036185073065014369764684820075726564032556131513772249052490721953577576413026182373554527836968247764902139656855483121671517332038252840388699830103125492397330485811554122214994190597117251407248144665403389765823586637805787996743112613471670656163566346419620715508840852560594929460976427841844558270452174896835268194521150459045526770594824126033572889677222066086809825415277639916885597540781616702647689650695538414184453604410608053311357099631485961668651695529839441726307425703359252680581481078207527824295288828543660047810325417357486468015284302906522327122120072917964045071462312999820932283961469472424884083601693311785444174650158376663352679848056037858335205376247287159731507380417766934969670047546333426128444943619819137929109611233014903242374039087117257599538406147145374676865170601066780469290160855770254742912037987848157927374634729460959809605462063932087508920232955510475826832262360903604774093226846331873750414492503464232378656623305061485374526940475664856728140869863507579176945785125145046014771417444927865899144320273808673809414122716681947936164661782590392893685186532852493452510155320655046125107038127978213253226346784661407067103285169856645638320398077004648403291883927973106099413556964868282090784988236757116156982606092357401370114709858077199792925196900091141501303470659922659745936464620793777079064720769104086877010659972282038418982648722297548381237247373691045505855434485376358853147513085953533841524914045485628170638925648837873990033132769732212442663575285899653241672271690954106495367024913400359434506616803312235708407168263735480193571081963181570647224127068584145566770084385021063588772839798482613926339041444840872459624316086727364020669284659074915179592819545568074939661062553872408245605824486949738515139297595061004445107450270244939115068862484569869732824368203374195986420009673450891947431216615583756117887031779565229624982687800327617172834044270525157654633927801824112308656819976866114921105064701817991856289605090182633920759900273016701869176600785863872188518542127976240732248893656123043326810931238526532397126552068496351612355811769040936709981137356407168229922084301108852834572596536515280833847898877855543337497012823414827588662443919909722269473497523073495341627700424737757000639640535736261915596096325884037885642600446612899494718963233971592563385450444548109053941610688764099135444014657299791132837691609063309196486095155540831883371805828852903070831072241019923169087106854292734284160996738480374030697964573556542692163350053210787562079274312982718503628165590001781194386789977710886160566128764574860628970807068299294439838894941249043787560465058398469768424668022982873787851989290286494427860242580490041262334340439091861673933869970641590507382916363229790707927262151852059699048842354600736579451584302866758493522463390333252433265159994838202027156306837440063769732506814566845957649608448085759588359369905301184590225804587878052224947119952809442187329402050582413455430227427066234675732735024062506884718958278607335580429419684457966909446437324410751101002507315265239563240943938327156805244949987979495527090012739123813979881310820424716501860167254889100813745157173236402262663552201884230390409847285807842094348075371191759062005002628256404274008401146211739821978722399752024931401987512961652481340837286266530374081017864261107001148154859089887984750928885493136495621123312209311538912339947244979978516666970999099487567836478509211694676430932014334920253616169286668204727621995660744866717729125640117650686183818016503891289870502019768731904879929250062943699771049781832803872754344302652796380589488267138647512095233424161544969392822862250345786568238658835280865051556647388380833787136611878648654426178308628592919036683181359344548437024972623617978615564051555243507679436775174470333302753505160592561900518816933219509193497663265187266358440455760414455778236993727549869333322650446755505419623482295525416793838571878256124696333125409360770251784449828056071553493521917967691239326391758459445145514701686712327519310711300521000619110573378518451357012402529468952739916393501400725893717308265840512291838592307618441505473022309857041742017532278602146178742650800249684287847960987579222763251505175465566194098943088614817328383120451472399704924056637577926785567457574799975935979007981606487355376768845106336348399196549028796894825650018561302417872038029731631900639784741358726976212171505759311786147574043390762428862423285875297368751249331763322712656219564092515307596459575653700783450920647235553695685215560792194671245432737673504051026233678404046540904830014974110218905162759121712393311230040676852603557167383547409934731699888244725586664393303720240400434670800893084091565722721660400692496594072051621552896954124895797755627022651116122478773377693925701559415842053595188106437180871975127990290139543239990347528972864206883512685585771029845558471978757381330741419845454521844807701388514413903067341326601889007640108469353535408716259660369579771650734126992999674238595066665824667432730648398227787319668845394867586497360640814680061760059529447764206257422215241889067152837884814605219476239012249284094712044335023104603816148750224534972770666163358442088307336856089018152899196896306144305856620931811068664119110737601492192598282082796367331712161192666595583794801501151094280373121741046803490464092424869359144173640468636725299083872197023428789020399103008810446630706394796979171785275295513439562806142900056094915776136902273867469270560608835155229318086324495457859494863740619736134569165816740572280974093176162916061485881450565614782156191940296115399760460771238262097464500118819082542867989997092282603467668672743642505690850026126801815614331553442163805104961921501925486518477245088720661915943590084582240631586631250007669148457933246876216358482416745111075872792980854507710319850998561194212784456805688568911857591688283485037394600998579676302281717805707163257517119054436666255444332908449866202836919316951442138667243057662631011189171544928787356492708562954761479781203337952598130059508365761978056663515482943872442159365624714437116349337896427528829607498924750980329429910632474613147608910860302017302035804041889356895522451806026506680280051495420832255943805003418865790642526264941342988697589422551621072664126578966214315706685221516056758395121176756097760232725287449904416722039766585368642567193817641649313888262790401525911884613953060750495962873199416848789662432124861950779542186193846846140261114283746892395076883965410457649000012066463987067171970544435517104112244980406480290715352284223934924815343870741994173646173955994448381944033541254658420234936766424953797680276944752903025651636989740486715271694608283778496414842716349246176388501926984510605636828101155841661267120914747138789367072338404631012494225454705313494206973535503851106111929814808452549992301097283737731124545197106825667380395805275285919331380641718126402326512373285296908972681221357610590176979023463254356476362906927868785436422944375012909308760773813228351146486007241690646570352617737150478534944717472238261347207074797831785676571207238398528425743757198603696071453521847937149844948740461241238857765158148669327909284235134573192835473668262755458742644961409985821985450287199605496809480385143722272026537368191407390781912582782019719756904557438454361729781347784848542677440997791043763255144746752605308494858563570493159620114445984878725412895582326784657970926773483200548757693338593305264895914924289388759400656766997179182147283472536096318730400270224648840808178188996934915707619930985997674077033092245020058269731166600542976390259952202983575889078992114466766924376630195955295971585651548682697917159448105291787775372839989825300679517243513022335688614709949843072170843155660217663086481226321909151608583013531423580851263345056543947170801227298629135191782331749365625919417334643177679356031949383920703522476089050831548139147118741053142789904713081649873680605132132482718407462443102249001154820971536199510054415776977731645196678386296240071698450169135471326323131013648972173865683814393930943657807119452540352378766386969718029642957885169256401643966172112604996811409212801881251041070208105772479526123652051642436202697363061100897821171413536950952922263469713004079261372910268890236570006746269664871278541506410197173382003010195223113596462038544470499378452158807639321959732350998337006630334810843802412300021944011173232781111894679687473337720511490393585965917594239751927164322535439230233230780941156568606127091346973081882240063234961246771449842549617915392850433399154332610353264070213664795533393604649486224442636247119166844307341529221710767236624424145762022511298238023700656705888883980417527170282880827950380706399265368018011081574473455625284427765756836525838809120478092374081218726485009021640942641485734824115088685009337465610068707050692540327808305337644419097723541895798874399042482278639264725024542814320039837233256389753772735897579406696611355367585651020574281495907320721683372628376939765392554139888181338384892806282286696205267453289413039119526502846902327103234615489442834594500622433464091987306710855337571766836944621790109708526248463044202645436290582684842384105071423579086352778115243567157776079564746519452908790962301871253442806440956001831322869925606788159289669440771393956269966218833578488859546561928394875916354535336579031702069717656297619414548932612534546211070060109535041800590555866654426970672005998689869127524324087711663732354617256397259814519050049708682269269209441771153571220074416523305412764293024157055592258339189157296243252096140421376759327829065631633638332092993145995621087901750346472911795816009771022258801302128240994125349926130936299633784876690989236619440928212276883528383656255643447470522424236246416143479408344726771800801957723939241241969318501173185285518997952375345399898739098354920745964572017563592446959338087617096588836748791388538079072630722395531040460398910735202472221848134519491895465024276294368614276105146333891902536854448440758127222659719709708274920343786965459234188290713983465251767465325036579923344023299771638540798755986574914494949870511079933016875943797528981800362849477065251690070764808833166376004015226347416926976114301897569155512478376300449727921869902326546855309404188919980829257000056457999849505704481554348094020289156774638287716794719142448437471364821026758303349531685014003048671195477038831881003691736415001339413529677915299801735141511616489582395097324230341097265016686886963077900627210547350683240296009149717680046042709281239903060397285445145168599795777758400224533705631267433100663699302858075449922497310583640029371384716601971715224751591262591226830889116513210987533048747381863969626997253753043471954511627334098992387144813484127595077156942958440624528831665364775354777627895472280414926136123567362661989203120409541517685352797499752725837165793979395839583499065008798957506697591380275797325825444023317729788442924031543643199457717367780599151901314058885614765108276111547277380068103579815853018998142828361263463893062523877100297712027292548178054321377278305901670006719446305578006894405014829440488368460204982494381747303017797570238580628336226791883974932838346172154617276023630380597885446034199063838226527819112542688205738261293482164836574767293419463553974451825119148104551065565821026490008883800038503538734469968786122864525511743060973668679786210079454545787625471676883497649461903444586379099626515804960811275036215840864367441598752128512845152772848021920042639792935946173269087216211132069029189783857898453014144934992007173698166785190278320580420868069601532396158560591390331713461229515486535674865941493356002668295878988275894705865792801422003284831685457753153743359247572042414452425223561568147955778301814388076825422905789819515286546811550377533013620388679371018390644206022499060520398060956112232958864714915556886857839141874852316126670744287763199068691155950443535091581614991328585853506319581914715398299841351675908611763942332730713446844365294696368144966827053190632027327814320943042569498612505874233588583310155458998376971057356913567483422259638988048949576679096707166914100801345821429909946452915040492629708300821479408596704207880993055876191874329080721813474948025595546677028017801663571535865838270076277491983913072219779415874546939363530675721019097899936879424791155978423171332522477134565291074307464782377424330759071468249681333329372486166044573718229175506010075515795166983180510342897455116762977901812090540046707934839701397663207853659242489550583202415325170764255467702514508392679242631424191601117874989373306970708167038643740830362263292005151766313555731465619896968124271844874524405093975341715699473538749568760043692503177251697979678745070088353798316363240899613319002558774891564420265026244638720418209442164834157560511182966876699518449425972815799759836655715994443379858176994838417543383791656322325904985051688930240222726813068350726031343991198047198046253284365780485593862864636086304659847370638198980800044869035846466011141930430834913529510613396465280499231096270017360804177564892391530748890491148440885974726884060199169261626498360198690654934837816917869731763186144651202384791720689487108792175978306690725420636550489405960413001598330767660340498000886651280955907087437365399982804605969005940373405947194435662999119985445640666885792076746901309666737710760223622139953801524748426155157725789117964363468817642793741144640468844027591231710442952038580503330779057454435724366563395999150247652326339757820033841732263708792384741946201709407220942910690676062144225402898999432251409471167189354953391513999985594300013712180501946786216260684430956780810892939909529364294747495428380222745580886125701240785178085064612188218055784030743926340145264576628548781018269457948205737510574266866491179553440613587322723235126774563209179088365706438338295236918480720221666098243876860019300453918918702996379950983331422192452804392666863286273172421255776046529920284940790373239457405425935578049902623139059822038084169077735783800675376117107687330403123418520155484810759689818344385405286847918095899231506546526951169922205450979733595478896685606977083908385373268480122035007954092643807898937301350094651519947156577702779761685252288259114714729353889734299162763302338919628803704813965636664880522619357258903753330044402692982623408348070188979360836399033345145974968456151583783484408911524132203393269787045858962819790800632675998973856269045149731083569078824834139335419766815141271615501974160166425145950480212535844488014571650179731365514425920684160724189852884930669379704491478548932943814851060949367227086221268256583694317163331229417723653053787839837146603825589862931349889634145272940259390339600829060430098311496511315706482263238014108791968515691324956833799577223810088385442689515336406933746403088611419156395412701938949708606475329020384951044652662443059707541005368796356764539357225211261779887686628910981879115290411675524455542080743017226258168808488852017157609527916688967108984666550665505037813104074915788193400703273297504019001599476334663889326922090916394594078644847582667080104900924794474585687120009817944812912231100372053179161035885326624710925701780485442119543904388331600990961882956907532276798953973012264514978572855492658348212694738118055734630000849492911047831600422460508061460732220249870746138901073929393752031705181752981434458546588256272729568823574445187613329715896969671009752891860894904007523248788478179951075555102105419909291037876612777048281219282933153709977739039175836323429881770292122315157672938968740681721384153506084414677062464291255280872077812212222012935876787856301652340315111481263480814659196042324902585876213611602186199461087509814951659524450787362258534078033777877826784744599358298262219406238884111159812532063938835757258161082525882130868321995333068431272206884961805296255012059105884458374153045628547427988058518979015994264021983393728314664111330256263519272065798650728321168180129538669605656109487954649516391250688517389380504068325490907746729243147816468494201996383483264796649642990536891054274674050117255629366748332876953259638368022097544778893749028367263137455062050744783661886551881364128859049756411413968533042940772705599858379995596663454913202140793415444912361765308951912713965752890332524231942490900411257358826232627024629472008790679752522597384277283965373663629640931810713318710614741061215917229978277454760630760491731339463108012813592922072178023655705111018649561505812280009757557612528307819153756820506581521656734501632411041781254185372410602913679922368794163171935592123918153285066612770524346023962852468266956735823948522686118930816396809649130631901000762195252501278041272652606661722352700815629845310706016858534224301294567232928223461041332476372243259442824311393295377434616411694986708593114111876479040589231126125633663828243753754212933474898753478418923955328471146413083169383609192851119413781605947402687194719605944623100333263390179578029181349680286561190664299646837827842884713638084679713771634828127258064076753489050761581870321199380357238016453727921764145777143515200884286977100885791892933006565975905236110612886205165785184903542789158872749254489585777540466699083696032808411034325980823218165803489857386733962090409339603031431803000465530783921047748158689195428265796455193317305123533389557874299141720474749609543174066202486807967086772443924569867955605149668125964069753093406269214997539761568962306016934638287204782505227030147414298695164164434102946373408157561027615479430580878189626982561985358483363833978053376000772284299074097898414274105983331981091603660828068769887067685211370593450472914761896989170061221617725948032071332111777659698636338179165826830917951351809067312061404648925440189320174027199713911323547136791572943722159919201722112113496588403475863056591078607294863976014068532696093045911234055657576999538922736037252220321500667662520849072865666258277346579052491887615776215035452477917652204416653753120581030780061313300373510007098303110744645449211562190973618664464491719272934760187005273120301305386970499645511616377172578966228947759631551886714317334452164250560647988912319684061309983735894586377225695753484973480723930161165390275550781011181069626993809935534156661186244199331605090467703487978119373038040068428896866779820291975247944304878353806305908945167917941497002906931940187401015393587710031298245212536830113768038605385712402519531877169063729887010973476106287110657334200755040182103810307729327037188153507577610962441547340746324030652732167490050127012821114993095344749762905630075096833071294936774823827306159765255135945440935853554913622652627360266984879298695232626058347635778344072292142973072340442547108020352428114708791483913336270142062799487976932506905310441584759617611192438858696275024484691380180072447648320542718493528046322944126983997681887357893743213588918300537428247321785917691874740578698735260689255203268146896870234636518525088164895538100252157347534490486241775603073177896753179959878424810214181371482620772975279378099455780931401800905048883086961438707816168808943305252438837989963510911907865582547660531182328522105571244950122657032740310048571159540049850338187285254409093667908591349682713348111001363950425650405328972605538556764047749168027289354296598275138278050633190491522965935763947801946923555004917420264182932925047502686707586026416357643646403031775296609357212991241263542689929653119614706339438785571054882405846988689192642092335505686815603997344110467180001219625755771670990499244678462907078658839862172701513689541467121173459749481158238114048528376588579608862817410584801680297732435497265336228975396630897351812505909849959451170483101872279157536370931463941613206975984069088704040391243607592996558735125222115582511769819559687926703594969676865023309280030929577469768654612070484542958978085028260062697659543655403945536622973262948771836963713569204747422556688984004026197088118470239299622038477585207550499168784387262024674400274335083864786318489654785236329298073041052045695327594689526971601513964108472664523637246623614669731263102994643915317625524211184945425507444864311189929213946983839220243686140067915795166938514612027723068799865778359469882569046349260006476690815876660958413961191060180339935540734361801523826582866677327353836419313816356113688267011260712372328523952678372377753033989664272771011647642390168117247063559910050242176294413309019537022939377750108391184234988212814173503400178822715999697979162205398163153045253799927483004514941964002959521767007742718479086418035964080344277897311544434607076363197205901032916964208117304724243181893943454054075181182377565526899908441120064868920737651876643146052450091036646661519969250125115078922410587859443921208052679528414999633522674803941183911667883913685864551683249351904212403760666642077459465126941058930868195879950285041847688815395032435134017984085063149822227742444893309140680991069216488724540750521121574371886914504963404181663183339515677482827904494723517278175960331708417172023994556098693296703882003170743370869098729236636838489743928037166523114039251411341313577543314795284059591714021959963438948732809036710255711704273380327504545704651958529695697028754934581294687456605273459544533208833287269250388142710024821013727184386545556822232764400148150849058668535832758120698034579367252697628008100726971579335161736298249938990519316302302095505907167851313383594785601135024224089133961807652324941496964747587723703576018698727234926252593074701875727712439966849151053798011413698328192461849231710037189902411981528105179791327966261405079266819909148244633600723888854842080008985775028191681489124047278162778590619380768520130051675294348330927758859416682252436350989275056507325368904221326500125223800053019273901313363520293385522074969238551750729256139603280296254133381333964728511192174878611061944677672623496633120657033397939254837400428196607951115132495285779660943972707744677287067121769804393235161123172003204387694163866050218263357788234764701927920124547278996758638668523152958565250157239109110601054808360466825467518842523120878904403966266762815222753028341670333406149646784090149547405763839335476203838504863811462600643859599823867311916700096876142849036932789163053725987737124653084450478511927580326928022162444616140962298037380925109047775424734698100031374357541309595745897202881629718579965269565607054867378041637449218127500607625568387125778101676244989334578481216861548646073807617971061950931494154821144775142232071992230205521919586881631853334645080262866686758913466574304848972269565362768097935984408859657141882293974893940392439740284959507085483601630125805931411945076512359093882652108652501980931174809817064236653546999836724375249100403419113056406080655848897097245232214846677461093705114310413228382505349685397023734017591305063840632103439407690317510223142474523365917148800709123526045684977952425489679708512067295530199620113157566160532853992593702048471709567351416655195408810010156793731145117007862335852228501016517631454590009336092615813572636939222542169479286879606320191763845127757992809048117378098983851129293112399828895219320663115342945125705319879763828446099154900304010860414675844246283143679677134752174774513473604246236736437197801705111203775470356160201691277381202330817132746552144473738096192385637305098323973002344442500256467307214750233889639180678301370152903441232712175366461287326355353793445749638723670646228114166747819164968477696669961316246788736274537627803894607908512073651261702880309255420032678662170110229691106534408152895708694155050765446201714158630464342919115122379032651261830835568743932048748310815230227887480344323721834611896787033196399071574376902583268094771463330674572508559832993990370779983684911349025358995156858006220348852240513997194238819582175792713964832273856091249841047734574637931082929586733044573867917684128729091295961315650017446785784149641748292259763293887885083078173072393275267525559222497022157180046669983533747591486490700113345394923852890961352554365813646634020340393570569091910540825279724459084603574314805279708012015688276918685330882241347887367710990760424875033692620803433599155345198750829795241067093581014764781210537787985666612147258326653111838258095817570936495001597853911718460220132991355942026683853018596798555239823688224042033801234970576435941129321810354315210281470398588948153304444584107994415442761498151336797250980610488495586631665740342636661959629434283083070668492615069226893262995295472678031894100805874562246810633133790777532759669695135532606166242261253873602910660700546222775097202603149751468100563239329709153689341021686176610796445670092893810851015245848751646022236469351572102710850384820386441091925287455716195252636230655231464930067055142001374410381670104333156425766666684674018156967918136736942735453169309522619500573130617544364903784093133815749647223705870044183126985344598531706032839480791667097204994773622903575867841584391421245232557456237364243909889228896712507631154287193168571277399776019254072739258559207633564379210374900913099122295756537362239853337971258465679553542281179537379421891958140131869515808762138268170670952882574500142599912005060965465092044925561200286092717585601961078669426102902468118371658170811138144502590840131247317720123495626274339308595586335238578363388684372868090293861060333564888664612479497141276210859461012642249530054642280576023062072195498556065416858074959259923772782339311735849433341363704284251365265878046301047633398771760155762122219808016342621751509067392980680565142192545692606567320829120412009686736361222363906344698439183849911903656462822856999124810294835302459030375681313148519083273806446987359853838522180098582950592513666727554505949878417611570162130669038416934925182078114376367710633477137130435660766066341932015639994932037202770744329331752718560006194993790556008224764483043368715457848343745740718372332623549836794118984848438592754899812256293538062206808363135235887460850550621585188052683870862693961060460870255962348430760964121778382989650737415940624101874148897042305866333406281316956265361729761270567968925240251249725444836497769379357177419711301486181729953997654855676630187427579504885022550737030419409054033789782262047005232788559189409270501101661066400231709328355635313513707920271827807544609783399683259055013613664530276725003491955992483607982265161168026883077709587330752723654773034461586878191046287796082772907072349970070523092155743225531288542463296931403248156905204545565797216960090197661292255054637793253448994050301931274612630418647200199643283231357135742083686857355237673591879905228872971947438557421958967746210681676587307905203767396264927885631663510152803962780319568058349307159944414037097679302311635829056116873202155729186585905675271261865487695060110744077251295995755426093559046741789639348042831869231605997302638661528994498578957824972663686303429966037706060957710963847228105399073933647449986092348066594088115123252599733668115153885133529303319800553337925320579728168789120140857082302498739078879606250409916139018085368982732460955158705433334572370740061978000755749260435329707437473358908476920359145251090954013231659946234840797089532199558251293379528770743121087251002808009916591056352857613370953286904905275983305624743217202371168890373156758341328319526951652411133340948125346807671096353261499651564144486169370058221116317450864574144754473125382981701912609193559800083266430811731869103625465713556620520138357868441368208669568542687694584481741335477909093138395786492084468162434931385969576634268246620941242714102742188257731751151456049341614029607732792831198231347071156896972385974164878070882062582774757485778084818912816031607800652765255753604553532327251287636775540181104618369389254470743291118048143827256928996401753257277312205966515970704452798746739532051107710517483648015590329574678946679978948303167017907497644323666382072268385925125187989777431747956664105579415858459287312506130865992669063086132647397235416299034125592145020763485314793815402365811496857445233777125494128683775342455480523896981722351431405483076151169606184979723019719629685157009567281619104374973219361833570040525673186209281043316926257548942701663346187282864796469755375062711486480533746054873630103410660602686156161771125607043882211438527392371044540429084564309847235249229094195197207060688174276823703973996626180619877245304962692969159009028536368954842084517283569294455597554390477760122350323869628418642457692676640477706863229719222337453747401656005785286410431061944702490070426795145220844107389611727477030801985110261891500045977933265095134814448330133119204126646302817418891307195344487674673689536515628129574518054603451700197770230799836217622774550817040660384121199846489720032820960758078079818452582930383806848352674777942067013329521980387006867954504089140576990772959456793302522457575347765169932582924468303779557414764159646071773755450911415505799792942117710274870895223879349599482968601042217123351315914107913547104099875866706449512430263508749509608372067318543254821204904190811629325446170965686802861814460173338483851682602418963701846380769365395342793898473158803242499812405290764534845110871345624313379534648592727041323016338696278280524369487461426663787985062473989182972319191410018283208765423893835599793636832082808602462589912639137979965725396644892357628167736959207732138267681484316562568394680625242840267007045223173431827290087657088341590010667156988973207498743498894067501569780333754870440017573080078245852424253956518453503000443029531785305321966090827793887467140884668449637397964269911032072434262963141072794127034453291958192866974858110104908089817895804891500423370748581005342202107793524554718260650424140452764875752135980681288259010419443413850575262882848543117490710992965443085955614160917708033245186848175065960043880189020647324574519183643868108371646145385078017336534193347363530469100411850159317805940005074487208369211641004132112849214845420541269696488406663211467699616325156760402265840001478279232839148111124741890910582581743193611240299896377448960293493452758599795118821231668234116811086395106506905807904540069482016240289804798356401823388045383429932641036018013861763619651130896128705141741923746814610938714321134248887802357197470843231563876927732656109757902943442542292268481224833767017561801737637482491895785487049293624121634632888621477944412157758979272180332490545088776423615820143465439054544372026972636773140781999894650691604059809611940534413156125892850220964061576256572465191735343073670510263877134321133691786388434309434026672863957584888105997935165109082068377410310600929883740723830172020467893421404535723105832328499440519758358383154181814906877059327891774897419504238736804304984373340285086603363742355137537343952444312749612598561116989543769912465104460356210281190873573497456624999772222801271043921192546107193520977415544433622395292859278337644657907318601717874764846284852387345567841798278738171216605503806730177172562110073648316868721458790441441301020228186455770512458296909945667143364531847830569415108061844573727561334746462645213533919125657819495438124049729819572098051145898704235506429826837155401750501275988208293187049706297840094980710909091578042778980976582068152501238819416978346273751829896913266389801587039201956561105311180573218373715027464983484820874429410046641501148519931161608458882592887072923827706256212005759576181337384917680634002517017237443225348684433704521347682226053647362700621629026121668820579052823003585957276250476358630238481297215678572618103604807195319828617450067859356590510931023663296071057929871361401307409310013268288488583782706208726270583983055293237740277328810784797699884865394335144913468978772268777489775838811355062114310456527262552692245049290781132997962026781253548758758001822489273335260885314360999692033603086935673445106281324445645020393864650721064973232838508138659583983828655068118492374613192933457015231985523982068441128033362696410538727338571380991495427816874557266372678904572616180345037233213151691181001717317196509576648543590873468328791214214073014775169984558666070292711284422672641656871031175711650661080062382383183934844925489171487446897838567026107362555283044164725682674251761900391960140465482955516751881785018379544536982297260618101952641232960185732300384213018282100230537147477991644382875143286689633736218504642800268609737406670739658267866619387768653625178938374717369188160859053162732742708907409023782030746629066597262506560347769697942734362277053519761151511294655378256796915007660178735914516362892344243191364302848466382750749786342932535725977138820685252487809139498196236790315714890345667145012863680690460763409644276699823161272493442484723461401606116246612007511554627940231089243730010541826281863695127713485486713243629210232352992496183370959806313353629220861165162004970690479943982695211644212465727894510197496408656734696902245760343961298005040240559957646837323323463913647110175978862676290907976952993088963712997476462979724855364500786858095881946033856147849917883958930291680257619377284361021990889740444601929981248471821196502175946248578973563419993102191526068329839648739427234554247168661816493147707490207125714357698359210202355888563301185497666655861430604844076215256111716931796556578949434529790165572937203538715624611730252068286636621254480312512785994113759638650842812377702414847011906936591766388137470129047102646913495870186382902762000316976035129492081595182996463143319081380625907700344906700355786192114220421813172695067722929298611801116039603682196465345534180985015794709202165254244919158052561190531579946435065809117769589705749225630584618961753202293197116695150512868380778177871084562040751173415779562573762626656492254204318784682214661726263815833820011320893479844772329676912177400888523013292826912799450741909617157394854087499672500898908848500024723118737714858195447438164280671990959800442363137379401222808310355263227433141441235501171035787683731396097758884094690200146084633120980143595543699342629406871674980310662687568905636048675242856379026227315385481463876584051867097851312112908711100126847234857077097801767530794095800829524445028743994191594165200880358062100136130374826002026390099262202043675120034283063428897210166457545900706788007075838978288373569059085223211833966028505415283911517306978725039016689041177170314964817533612543359401367415987346024652879002557947506910713847363993645315905631732246731375096501402107123358732343893208746866269626333017612032858979316087273444537067375131348955541572148493340312174670341362618368994351088745858759942694983236649731084875517275956486288898121407512092326340105323519374775296351674821991123135559445197400177217976613291683529383111510339013347074499287611052862289461304620395359325480135093412088002199002885887188910004392041755383169607520423459126537887840433228459890746840730298758769767276707307870230682563100734393894331018015300842301717683070286870891348355989437047185846836010422974940306458069416012088955659779583960217064129739435823247361157244547847366935422142353703707211337295670726835226051818855988403361272449805249989915647543735487494196598681729532031610942080228029961312055321003225430043789234738802638051118924813320962454182862332175449999399373348828296639039848458315376179651073562746930960482881185148895745849297111755677151496743586533176497936172319408782530008517047748474864082707957995300692043518477039919702780114499266029600514929399243593190533428512436870173852250543705431260263516605405975209837175964738554869605571475203747208391876340335104384046505275223325085494568522818156386973641882105425852317590555321810353728913272725561272019867360977778178647635865006045754355917547122810101737796352176696009048597887216844970543685533910572204820196936398961074868411434967932777012767046689887331590184367778210043201625161732155955041837557306232129777563832963860751286524766902120332501707796239634901852274561790813137109247324173864880816589185625573162313002812950580557699720521633216962907357314551954405301958528927296895326372877831235134209207401998717308074626753265344342230436263102973625514615139369671477126065478425583150223531842060986389803933955615582569184299874790305084497790548013982415499284784853229276856023725024607563069924743461251631647003984568160920825255822240074894113535347833001797027079288274714634116724204653939128148305325091403314648460534101242361924214717081730458118709127188539955238313361549463639556124150069809146265826886437802966007982724391294090898313292827913933253091930784987068583385800535227662651824778271864965329067593490742340253606492318017585284182829041235286439481471747293729764668232636512804236478217794314867252417238148477366819645459500385302503800593036552637695304857957713991271306519455831348706357579309739741454679046027935518983653451944532945609780392513020461760398379946078906790343940253412321393410440063607202132406246782123590992466157770426580015003903330803507248890605631395060776594180052692983056479209247170909201413996013790648141492748775753924676842680494902701046193522749071253083899398774530960319699760618052118081811390386918318275993148441867199921565952056067572507043032010907811906345280158508420057189000443305740131483011129119571786285896418036074887224951932811060324452861385123274812180717953509700791528072303437021678380682562123398363116875136802345383672932609223908071192836069472482148583206371600318636984828756768672771398707505895781303930921997255569272212129096827915348030040670102297667969328452370221356359911518216976261603254377380300883895687651807316348414587059924543136255139512713786557688995478673276106466918561217909981741089563711517437317911270111033504171435048695977784950118876214068234047048177037696101969089014893199839305486584531697459873205165578611056182140902201690886750872795052299658520001805971643310211844664047816061997667369790904410866866082251139460567558889980495544450010547391161451601368005571540212150282048074807419669056910290182997799299194201398047712915040405546286322411907060393136207132810978387872029951346984366832210224183989475274788242875134393938922807371530862651407534557608681814263376527634072343413378321589215772282657753591721988082760321208600671072080884789729669736178553794631093709204576373450212947924418229109307154247400571775138891306536467008296705092008528443433451974956460449188377383703150890439155628021508580917552030279176482988157228173630019702481165850547782196474681610180977855228360349737615528924267626402790688708676586107557733587699466691688726464491311237492925527577903487063455345444304728085333441425561149092010443351598832303284232980018950622115459556629777946808467743450281126470553385656443002511408950676823019397942763097563418506997391406314639403814518709593634225597423929592945093071622172190244865591808497976898802122902213816103486635688641305327819239388468714796811397420602707709203298143979313848358399511380621024060253476406590535391761441145860024254067116949969431202528629660422651840649977568589529209295526650918902271581331656236149894099276218333328979845849252615102279333393484583104164840247766971346976624410566860779564631032725120517193300766941930585992480790764849173342990849772787475053496899845209926335900800209828591868793730723633140850983505902898179565604067837921652316215365771251005785540470283293876256900453287169472191811762233680186752832388009230074383169179980725067538428564491141522235122548938452124660931650736796565331367109519640671208427969256350596293140396665752579884896279688451879575536294093129027674564606371421479385696671907322455073464365109467588522742765916294609695833654486702195326667809134033267925694955441622320717964771034435707245932642522169114740190039412375063425094918737862875059053382964286430085171557251738742317970701504744269996137933933815891496719294561993987427148279997093177686202299883672185612104139871078362694072460631707282493771200980659448017704614881121108075678735535779723548766654332920437452376874890478612877351810844023951594070090496035208409638890783044942801669097129358745596585628546354520338542690373599619278884062354076703008996795706926598165872389156189437124207507628282600900268020248679328520091649565975959882330677143459054379672153518500972323657728151522602603802359423856423313438210710383501597725433067720617176235003796295128858591013155554473736720548491951352797615689924479888291160755317452744504598003147589522089630922058222224506679594203188435475169509778469361514935468870880703883449624573720943714087791643959818047599421745124476602535253376335970099963026271739753072296098192363217214700840693191668854355878049073198999926428162976348582425689724169016344716906264784981863044055795903761047871606058609373508243002205914970301192531436575165707249778185992172158689037657649319989669823319434138114243523976105331705710027836451173677596445907201618320826322057362706502105487369515651506944682963039780516599432532140021719494528557085284858182532875129309945949196611102542207356616447612222434587041922577205132028725152556999141622148703421464462480831993785963835715509637167813856220574376244819763831784679747742384739583067292740194275687445375695764916778515720533107004170077438658906362089277937505048600654638656222514051809982185686117906606193845706068716901472416636276681024848153772387572831532556209368903467308883189035993204109022734978710758517365420418904816837571666194377635870552276435200562738613662488289448498999851451916641990173409487239227537103663338796015827484548835496715943254701541061304523994480374484313376992716705554050087205333377251619539237486476076317339509161595619862781814175949914139714972726960379746227319729242655715667157676215437145447999184479972170325574312860632917857840851406843005502591600493094347000215631259526208922673831766541213070767846337544772839078137912760168443133484550143722022800524570424270151668705638527563496056479557173694698500003005086484590161734490148601501672022978536034200857053784391833811315412528111063124196798274289916422962152825758265812674546969724143702307840446656896674651584480244214546798754650764520554028154269395878733877001620740640550876864919528677418051506220258615585147598589833604543209334125994577813040033177023152118805222932506475970991032896633744759362985511718544172988512861225285573717572924144320558931020200252938900779253662558953061614525620727134641501031347219324967537362851250106765897789275485147657744717738068341990152669564778496803340631436513629622336070202102447580814471805880733958369829023096888242977821439323074739439361290022898765885558361811461801966681948724162382701643950323404944915575816008875084927110348096573782046134508928919885877535103530630928740158457911321622703731398854170541183481194833083491797546451341379226549312532043569509100877163176062624942672207554028205907857515184864830335597137563293282266477024919113998673008729010035782376728863934272786418123509679322198559091390732221273723534170695042994822293060485568599380282509056657325966728386302144082964342765691543099974658338015273435951138615662187427396771327061167512818479431465891492064378381344755144652328711475236729036297013671843107885058783578156292809419475567101985440507247981218436843392594488820704673683563339045713015334473633661788546082321173308821153907026895049042972196325659334647008431326950844433242190598906196725374401396919388376934251056862603410389301698203801625373561632877604539780890331864944343100144876069992214924153653602113247133126040257416955554294923812197759253802697916065581783970372533625293794924218040894587357355602808270636270761108817771775796594926216100209895076116571590084994081837313434394926450813793872468894419383352355561698275427361225105991643226048231931011030075920108850520434610023083413695474524327927061305935019769350555036474615905761106397975213092557344349130076880865145775879033699648857323582884990148194774572171255950840335581717898465813437849221347505815321008250383006481017904045523005429129840049579028645360439068272926277635383308810575317271915371411303026936262585386703774271116209992602468441054100379609103773749418413412712689300166872433255920138021663396956689895781934425652387220308405697329131698680018598661863429568443477986856133686357491260926127743582581238823244896937758632144953814502603681828047451851933668920795716228596316341347515249999899220432105537817443997888833144764631623794527181538447905448389270066606388100744348082357603296574762484499255884017193582766190461444254573114978518031531147943937945565056131672760793375563221511190140317391245764604263883688208561176119898490730725667531653389403717649478606956280509881702559656677902245353082864483274051500744590271875805950024122542985210806981238670137433231507585936573040761156432406184962598440270479136435371318652543513228910528912755248831378502732502648761691566335244324504766582507128145276845588143612269755857447121926916935854309717700071619722243483024971259693929155106038591247100805601390784301968593567924768444778102628969029295622388500770998580979100198788654995543074170575045712333980294876369095763416478301752891733702630783309245367603831163696413000766329671398322605557979771253120013118336325203491829223141997436321693633261386817689907659606719693813981969889524443695501883954916276739604600099586948344580124941005235594831009962749450971867871085876815947593250068633830233994548534585528941523578696232222808913567367082759253432469560127523020254899209729025925970974041168482409308292820612290740806720816806192122251097701773657108268744658585979401571755368088843656060058125773564418959046566695655879438268472415738368177769631427802696908607064454902600874695666350580117573145990359147341309332020786720295277548608417774109603564435221911101047916021928436620392884445800740314895784675620580058571292522650002200917392438829318968497655627328096411982408947740061481065253295725604952548524138182345447819338127322788635737866574088814704962040077987717684623096384973876857646040855302840673469258630085224606540722890335081962068820225418478941408450949982901473243631967351163949007173850714294677078397679082020232245445576019378805105292358187308964290472280005208701191003932688784609981013315744778649923188602951985790188425952106062588878293774226506345468276476915473133352237534547089327385582816776609901457518022260393610961649777723731050108094619383805534933757914507411298647626719940927139188727511180518852258322120641620134882063093397407622420339379550503915739360431630316303034166554286411150710702528219909776737078579000841493780565246562989826146229434747299656910384933169221284194391726986466722092403737740627908274200072387372570227103749726251979435026829329583381341775176199166740975516450530393266270249482191686376529181604758146426248184836135620616070329975624180258450543743759537826260611313842066234577983053801780416780472159401461128923122466762249657285259180432124466871313417494354875078256058070698354820246121500897072705864300692403844159065315879703093736892558562635625927577678190498652694605450329817353765495212268543159858061367983127703007744437780963890967255216273668096805862653192320504393748827729193819344987747738783271716547394854079193557421160198280990948849439623174081025105009323209971289501613650603866726410794264717544538225256719370274605601274073387347333302650611359024973318323311345459686927057358616944021993117029643956156997938788621372883602563252310355155103486578855551757545365803007916961755261418983276211326604370944070459759114403973992145371654341885020170713657144886314568695274736057628083969626658925678223792661463800054730564071099633656845365333599296712760422128866456876248121284553118407790912303159828097747577527901883947730220810189647915474631889602745067944205320217590796828653785956933575819782979404913353685371169288940741648543015019886464859209462680447981488347750772108132145681031403599870308051009603813945057549691750091817866129423281951206889829330827602913840656117364816840278150540315888331198469862426105096123982148332185344471084592799427039978869802771093802964478958991939237049901710772658372817694314255374704205588910724679858369599505542256998027216937320271506295355560159681464836356576599089717670292596180080645586888987363524618123011055029699307355786429438233295405611921419965518693582076039817283293774477152965799904455041641047380044820095290254115730050214231965715797467635559217038917353386325370955542397417575182753082363420551822720000350039151932884360063905325372053571803239441817906870822342845003646654460597237384760381267008823311353937172366814426303117748118306551422469469705316314500195424967893039078497763700998072274029984691247266300213230986507093417690047802028295552223425581993987851950913698294381054523325474179493990667814904413622132920602065391575525074057421678279926480807036985052244215007788169488039487476629475780532307933201579039698409086363253407125884203477446099936523734574694009028159723089362713858375431837223973866960984708092284961585122643423770401003535414117485891989919155288841527931542242866824208845494153350786481767560325184085317066827546055880628740476247119662511799350203677437332763259264793190155356458973530704968065847811349531695216022278723102760038878714544932112851147718502352438551588347702698294992588839471210645139041450912075819197831248750332848455743728014783072466378258762617645731943935158961054080969304400036462836711671753898478039482721821324767615776353722876967293826640219405181058625032808711547007092479496469763436382215963179876533175882452238970011340274609463538678657106664040267078887306476171305942330473342543375990109563863463957795890184692816025397053179990520505820083692079919640894946553559125425734456091651675542195448277618845772498608256468157152029940066764217196746812350299591902641180133405961465291662025637908657348326533304688942822128248875394499273895031383252695715548839109611881620001171810152758925460216001687833745026863331657241989199543564666881814329550740910168202436695956195522099864828512814320426466774491286683082615301979272235227590036674237083728910007099082423023268074736409440211386401744844723304170168318047048128203729538333508854565448576593572179781574049436559850784615872210365791836055108698415071335464778913020521750012262298702385531654749615063733680562951768431275662538157527985946521755460511825231428184219012538149552050100150559272879034672827199798862696472515075787881159013527830845446621156729058363279360637820991033997339265004476761711184909276688522299045218503454202351212310810111950764064194728379347809149994623157462780146197453267887695677904263489050561799697068700043891528933550918991057383194522299332848899277308768928953640322720502436017262711123524762154668240520378053071516723272731591412091032268812811538882695073143313572859609508071495838135494304347564622258666010387123982812865184383058170258996059920249237568352271457210003452022979474499988550051329209663952832167694346834785624398842754936666292608810451021883687371760929163386762617713463337255729637949963096891578536806525410731511925589660882121338911713580853048680660670784358398785300382546183760173357238677844598066793107302460351348275981423694166226817911268526967185356120445071922287729140658848875163580798174852371541722926266668390288101773139565586476309093824394318734739260769006140309933621006000045464963262888749159779530621529402864958084305886355222245135632417276855172551783917268896251528519362234001503124237434889458549941208643169024609027078245313364627882594733455744566213220903216960660446034455880271110651548534561665374647776351914949303817412297918289748102224172358071532880752131139576137270113641246806371407777878611607987042290721893664737325341307893054605786897602821852510066569107402766735884260849128931071967454161868928202777777209895864138146887932228603423492530263344467997314062575133312891706450495347856421293810726891338068992538873368190777110848101449328793449277073884076309471134913726892006659895075166609417532803593077018189597988917511356545469970497750195527236189387781567804631947836280021882038568781131488664834119444616107787754411560993678255428292416455532768307320753569376523012469037395441482386621606309944463497514487196320883488174987031647900770471050851766407795324031247138085737666070906212049672348736609130254951186784446160196807855884764378982387689971413302664682628418976137697001348698833881134960023049708066388312514332248406052459742478151869797509422603619057115201205546639818058853062327449751188077562423954388830310750047160916426398201441273396699384640424888792501127199486875620585919508762577830212109190275949737753293858115026139851467456911616614898818449726803493076862370773440139888752483951521080662400552989085905549765152593382937457356063890276439290086457202762941586737547505320225219037886961924759016928371123743561125559651366917624971697484363546059682515075151039924462454839305994226328484925256058055779717905713792566458429822844216839822892006945957789094909499307982987512102098002951236627515017181536976369943193508415190265757759237634641073940197935605344565655087572915283001330441847409834028122216092931988408527116414762708843227682712074858048503135339409830134972541233293143120710131109378578561242237973225910110379485089880491108803346701797283199182953373711562909962690575784906656171818914767233660153695915413806337781092821834437751128445605490990780460402626718105817515206550904006247355422938593391540821104183483240634303385484062046030981046956558458739586993686443813925484435777764152697122385488453677777305129373871519255456342145878083859101609855121849194574216545357952959899367705802858901004819805020980105496797774095941607969308329718279662866994521434803944303785192441315504947914023179726361826481027239904583781621440353394117629903124884187400363486611254445416721910949646267735514978992770537959881246920246840133459429620679713634847359350829806773001086504724418824669417503972551537290836636197896426719035598470260566750979510835393070097473415071183867069821966329215328043827184122906410040061650175022337192108296502080626712907276868665796124052882806362512789649953966594714101217532174844264350484459105450656115381701214597200485346886836514974224763271636195725446481258840564267795109081930608502427499456667281966757677161076595368068514395038406624479593158919872578633195161054421629028432677628595760157535600293863235860327687860106701144996491621706980405874042200000394691259218467155787787864603230152270418930170401271848219906263978818373687505697694950211851597981414855613453124245827812966918730947783733628182003520427702939211282518284709075978925628868975482176455074163348256720162814990032752693083456978712186298332602997229782160105039389813080223867096583024792808941230046422434505141294792072969264345821287624527372425288454804913083082908420487475972332045105226175515535214846345479621484377268466721513623877474085333844911073955649316284135659276798721004923759934490284830376988648646440995674785195657766915961256913885153322535541978160613472222763565991127211178510394200837788255162065594952990640750901175685598693055155588423396568444268449814016172596107008361493699631110627908820781898772026819760874977350243716558887323370123816812444889867849559545421114449984881088867584519653831782244500415204649238099967164231879776544549263999387301635881053953448046650389347001579982840105441059152403213677338150933615688411586617127214719504139686777373812197965643216321888602616421689779550189487624230983092336817626240311750098046600523415602338127927283937591958233304311506791888635220794865505274596982980117532563382484541933138599031237366812504809537962005110658402045155456780263889671049078676781061943309852389253027178577815303785676329806988984894991052441503781255651297927730361064324936683755643924351537289334946068787302478269351256448970600728876455406677709060039315195036595694669990192814132953235111112450637374433808563807033059450595261769724036272544773737676037045377237380528251110053138608245730341272591892913616143742983847876003437105928023745330532455555660237293102535138927299919762888477631291843095771171476148107779776771706425271272229438405902391176105327310446827401678065185962668489573571890843437697190230777540959044157798393245668264039900177387703453000218940045589554010454677271508513857666945381952375853555343281877297109539636818109785811730577237088320777889420680002810204611903099848647357611211548788061608657181450783244477764309325086299698049373269629839783788479765390090455946832957822829993552706758150183337338368541864713167890319835979524725628602068637770959853586646039149364198074491993776358942783114012685582251409911216020400856839785406498323239733319166474924953689914741639007222272420251114966926187058301437930170317361151314290771998625476832569118336062216377190791348629678650199183887332384693611163381980776411545013668089638598198957753461842461724621355192690265768811414074644407968566110924485920237769522918103400013931994767091284092031854035336177713811422389725004359890079737690712333423906762528805654566027454384948819315740939743353665792498986229768655243098665189394349896884639978458915540547784473186606180290720859106983474344152536624325109825555831230838976985858693918025086815056327597589210111117031125814398414910212703299810038957130907859730149078177372498886632173914820929893127275807667815575663037608808712028271621384507957139816613325276547569531349600964031477725688658363868007396317594210524886438157397095068570414502993873018734069064616406765164335511353811975289238595897571541354263625875232175524596210398851394172367655511634214717943399334697397661165934386375950817310629768010670147638618215993082770971746366006885364573890633873769551174195055106420021632968714099074875890052727702173856241673620470258357989052940440306393214756416003782940035051793677062689206744179623154208545050033769744561818557454773163975259752265107241782198962714981124071535383638006668271780635239212623574573186381677131566681447061747131876409677220579861025536946261634340571122762436119474036161898802382959775155486756473493651709419688214261163046248264504050735160479884777023900656363248685495142444449025684755241338937775276171303760487406770720522297028371419432602067856423169054610360390470543906271471052946318196703133964322682687477548724934025282244274284303965430372416883832220660265592775613441889069370441328081133675444385110074297731938667266479127075882049660673802649381051810005086064299411230510987852799174223888849360667124692926168340416605265616387452809659853293641407454328571444576972436167617168348240650543423204018157488661971789547420695547864578274223115271136526063103739394582794318210403845760901648505379515793609948108788898549027986213710037331638039209991213558371098391934212269127839451406936298224510922246622930270205896700375529737736070535505650746386686329858487100619643375879818600362221597933486295233442786902639109092728099064207255455929447970957526528628889171215926628458166154866948708549390317676090937579746334486883511726990283077248973288376337240408992811844402815380547561834010446525084475265960498092907170965741597490715089920598044967300853275841072529994467250056410324106131630470266189540932755383706236809139915629446413759843960260543068766872995967620424970211570913670627351634834851040991776824001243887464549695228893747637595903525214328833909110294834971634389790644568536681735392798722857216608666058818297207229563047466527951264328727809495146743648969240075090693258900596818302167761510409826030655557639797942121615528293713784923246073908923973521777251621609187288978559833670824958580245333936692097188736062987465744932225924400115447464657024499548218406465912557302675560942413054871245617988998945508895626739943670915354880975370164524621546408167810900211452580217910011285758810167906370365462626483441614505618993071500346157488442864295168678759345796830977319927057678371708378091783783543044978891857137180327569195056179341466474647750432955691432510111158531305102709182136748973226711043355673066190051572897194176229050184755076910784602780743427473921645341849027730432742034664188875177368229767843941161175828697222961805020260697901762431801056165134668705190714638285288492304037882419347116959905527838725600860133742702185812344461056094899380753651659675227983022710989233923483674360141851729659896130735194403628288898242264723484939767386029620891137837844472896210603786985191935768458416395712023580814178238665569611946601004410249899978931721682595316298995560392714919963638723487291827445239922413935456915622116504131854306301024809707249277878189964965913585999906345121139063973772118082242196082463198850751214562656538649189384204670569683880908561012655727535215692714879100318371706965680963171771432559889562741857927327849877892064571414334348195951598728856257661327951747589722317559622705067634478843676450398812421370689822455659972018499204219683960125887378965917789877674360115133699771864056500307100760565673582097741988304727910692739740028637844099255259942738930448589421927675066843873695449371232461093359953433027177790308243329635998702674245146947668228125759201634732992701528010637815129973458970034507240022121923549371722308563652628829199179095326804705943308080305965408829282103940297089373329403511737507080709396648350022681674033633944801051803668554575210176641480476391543591099721799057847862538163243412892816804336187052004863513278070937548967332683087372822447769638090506654323333613907667043849313098589981925847232048799926287747461316772103091363585558362832003675864463625415029085980400552796964493861557412403956640547324075561475699202029401891221795008206747735478105129912698170601916301140538228906298715870588284664270885232453716804875319602732868065174689740528433813814892689740697312785019034435131979415241612284440377593510339372069942640645713055964745827201617766690169298679711466214465896919843654100031005570735123287076277344159021674488439802652455517916188314045436771384003373979825606348260101028824579686520559247709996255957586136837047459770188146591658458356508174771357117281343988447328301684374957169884191625526214954246781255247254040502153974285315220063509950680963591645785118218283260216320703695732786041486226135605403643160802057994188433244376834920452851347195534497869112498056931395792317592426481470117389897707821213197976124407358354428274192181344311454634597133948762365151708064848893480907466981471110819948891761957625117449479157885025936526169889739635132589513255845780959466215997580324634995165211507883098212108778720810719735236385091761720065591955150018957451149778446914986913717047745703495605858928194671661910830380777966401662947247118999338555672847143372175178475639780864975680058874053962025189114132628109785472206878959069250883830551707463225616571629855773973690794808288270961421495990004317162840334670890075075060920393597271980829135001260941010067778859856449070567051267454202653431837039101344149298798103253171831177103975830624831527516574532661127383343513098151211401209497740475190188636776293035315537904097330166390437671046726221087649045249758401091051967349592211713067181554437573664778375532353338722293871812949412819261876438356059369763549818802078066085302163536140535381734081256721281875532907935438929160594269246016397302817517001774771966879839424319473963111303370820720448219185975737300054993478161943000451699107292535686421334121416741348437576655133335323056192395859090723671347897771002608370458492879494478405842128117872265312769087796468318304415827326017438458743285806691449375829051139037718171370405418236540466388430836846073314447571913029565567076309265028254341579095882744237930545209755602878113927637034810147249181857087753513905414149211558502321324883647915383775414771376450389034797625052304967023465420698781397838080700396661657641572236845437265768840456483951590557205962229639596592538359618645889679944996867874143602115115394754891149291271284287294481160267174156164208931778734974016581685769263223380438419983092215155664010646041926447947924219751556697146972794154255369032596479654611668184605870287102618793774126240810082289692951782946434624401369166476138040625994367391156141764698805278975817400859424666666204141290747235804103253199602646452797777948152247771154530833935140270711515402328072601683294173275731520569365593262386938421478840568088840663701274046118348255133693537564506476946827713735734151404355764327261307528685560129950874957295056841754192371380568797251936073220635029663665675503329210001167571826185006425790602655390724757536202888473210745481585103085590260406542978299609392191290654675281282548411865301296105515070943484449744175259751944287786770520487268458096590016507198983087900339049228191393371926272401164115539037753185339939144557891954422092350425085839554895909372129411547589011767533654008978705083135443076142876808273697396241360962891903396935434459764178981818658845535062444812390229745950917669016783358789082382386808814951877486476228653537166603058509133492584748339656191164562483947411376032717175198340336457842162619418210296920729648449969571169733584441814383459743961862816028248644981436404121821012006520482373776758726940066056080247356386261669443819392478460820984104756020487764193421575122829620701491778593235365586556216450365330508228914203112416222852124144126264992330629302315935128488929754798769656124735735334398882883604247347904248829193520131772359721334633679035243652145427876596877297581266097112278234350290916028119736183500421771060691458679319592479455814947111716408423878274151684812466418180399658186412832322099730569248638584012495648525054620826529692993050243650599013634226449098918641805101966184579229992488859899641721264343379769557250469308190157606185388410662971863460100690146921681106169406029894568120408691298211342903181298178669048023117735367601006991935562257234747435180180795704332832609883529637738567592587229436447566372941102267005167776279822210481492931295310521470621250105615525408199061609435168608606240116215203575771389884331989480578074602115022927045346270583084742121954159246193441334679200428040582705344906785393273880441060775813775039139622325234189932102075047036606821601347842310736755922297718928076045638285377503999033889129755299509499397789113620352398840170369024902037902620986093258826796821798797492350069926734372510102251306251570141246544571285919376667089741383263244150714415700677595183632912427107504941558097984222046669038291349131769276852078540568136916015758477497138969885715773852372185412108433116173107152442501006287164837654649490565830704619795882871514271626324027245769906158290293879791361275558283369947243730699173102244865034235966718804006472556300807212060189619633103246869006234637407233145550737574665010420857921234999330984776644587515114430706212967115275874411091858669972859148534273901390775350796537400236952948045079422130338257376456124430115085744383021115733253375949109810772852974909132604545724170231269885104047635651851848521939663634086035523858505437462021446928607165475539080917808661277210519156319256656772395360408624175438221302114632632842508542931859424143468190597276766697158748101395485580353742168631524657159035227244855018670869908031323231828110059650335527866415913873559227317295195836975827827500017576399991522411333721959769613713512727354860908561528473586297609252445262667436714783118399947319470827602371319424459539288544609098766646383828109873733714722200423166262226255031589459165714093609209147943717732225339899860401170578419407564890352135476928295829163580750329051227597285635842276275068347024995802602298549917309198183743950335788933834885718204693244839237862483102651801518750320946502405552565039290195542373601112497212317039353047686546563192687700286244656540031358932374922906369826098472350170892115925610110204040978813413850393537910880396642147500374611080999135982920757022934290196983218991391855003929567778616560316765926249639457412897841303080897802778525537192065141752169924780072196483024934997106540733848902443264353726603180270785122138971051880136943636817167529507938058043874014761135931711603125488971017576384983675986666682101633869800756717948964549013582406155228959565037749430445645056356836543752481431970106439130113870107349672511162491184982306977738660376112197345009169973995350061264127033274716487812142624734965152010022550675666910713589353307362103688695966543808817185218935607703183950058643677736768900553142532282176188937215458754498377513938539122161834425542771994143810046937946006874214163228672869668340458440449937023913377445895990250536713379139768323345636245763288011674208384581150532284680887660787541467286852459977809889597339223783166295341136103486252055710263148586048110163786536648631755888372841163189737133930402403116666116882870656841083393490156898841313779309622027144981458872772158545008357532091176031417598125318046592932610773139303171361978302079419273249023009675678449221528113372705661430515799371522025218562817286069074019223186075936161147881039756846363669725311810520006623991814548070357908232747016263325988307952869397594053159010816700432644132993936122286960110978899175538116540845250648975692117088903883374233802968651411477138599703901698771389829060284358232530738466839129243010945845938292626491155787186650311508860385226777803728598091145742995792430447723575478008998515606361652727604671444126450118229241801152218915369700340321410944957586729151235194423965317746143570116769624124161008467646522357651617344448972683112097223338354761883613393716049183902018780519183309604493018298080646161175310872619772251675856863689018277939428365322922126608968162132817293051813587681571491822786424288997924824772819730628703156844196731731259230678487846789697889671291380832862320254801985163429321084563961849125493274363530546290419254068145635406074333146576824463226309083170777251820060498192433382829419426699837880041031474807129187115707218574938707853383012344039864753635263220351593821855978448790698647705908145159453308088218712594071511568584028787856836731208977132451463472240180952325627525067723282762182987090957171420254184452511912873944087048435332902572735530040956794773713030021461669251331819437044617341058123604992645323442592990089365478008025631457132315460788993513719230275928454006378060200440249970970057446343269494430938874622969072415504430455792303122887510339300286348871929306773103662199993798936295593885095182983001584348298778670012593114025442059978388363868412318854954200772953606304165671051477121534318313649327336789901775903357893996825443429056360386299281238029478821352195467100536462239963715025167009286881138773232901086999247158887776737487358107931746545001844228382111750270320233430212770738211812874128016293420273575730792835485140761935482476778536503836392404936670642962741161311427423693662399464113895896682580013797567575152098318021641699948988450050692929371009585437026254674801414019451391436590187430486622937428246680221263671643993327308246538362053511091182265464056120931425099472141559287409889372880740949276067641868948407184990177686591633619800399785030559547868335475956459979340777198113376304481706441619053917322304534637542098007303747305078191372099790848957268755314778507900616754917576934093137181013214909755048333585507831980286006393608217110078377469462597288463276081455842920387652746860393066232369192534819431942554843400597111340314475835724573043929169243802093356360665840645266204462290250897149956694132565456069342059155887189682772934542356416477080056491045443687924945469576521311670217712875589627027346119453693487107626768154046276192584176712085866734419370413464139156616172599039032510988762075161077850134807113985871533264102914513252804282761795444539724923906281558980474206334227622413076171875389571657172342607726770160220821548397393673720619979737763395850919109922960703482809100165217079740646581306280593175021258268303739606612631127790273020151892580180795530333963799655834216152325038146077536371415262394649725033427009226633729502525510904843360017353843537953719933733483338493609220624098383856732983967133533897041542812794437846160167045075243464251325363839472289251078981761003081324016146208781170559030262294062996843115273066755468809680939661747689115580511583878747317922773978372186326536726493856905598448593725385654356369861208604043264551880882741688342304858554581114115062778845141846139487798503511826823460060998328998841940774218048657326268094017115748383965280048579704300175749098447427136474037199384522181879071419177254378076374549875332379586080201062530686678904922091723506221352690996007946947930927125930517577312195917732671675670127197111332581907911992926919268148163903044991248408631305296695003859367273934870158348575848246904080680140934344157075528334375785999861929930525794559725901438608627090145049510915552958289933879318587938108496501259191483781625892406562617150785070119462742429096949748037150833010178276962089278972858338551340191837848085280527530543885194124551829202721992463436231798880144165776339471611720409880760250616723731689142499834394453333445465274986384284895964514258084106402161573407783934012997313385187003423666618854238660968098442688099841082672999601668480998485454469330482103150001892038265368554249514228272863686582820716457837396738288868945484500733305134212534970795990708177410105063369501668699443212079266404455686666400390002150566984351554198822406819823161509872100186764711101146068571790228369456866125970241014922202528960898782643983579115359315002099860822326833868202960873652886788442154816276144171558960157068184441954091892738265429334121583015510164206529135868153453510966854186620424835049458414963901613370865855941988782934727289056187492073978550961561739139285818795819833758656863888756990473929567429246860997032910716497955843755502360730979308141856064667485656753292022790410705114587538213607577888249849007769604797873596594045267114906255605977724685248766617045600166568670124021185043770009798588361028981817189213901355255020346934852196027042085490183079476193001965507624255338271693486996119476052375507784134729829001575478456373938308362413664580037918113762194373586425275110168182834310683146697256840999202375574441108673674932778998526901745317544079937283489372900911443084514092835550518582944878420569229359737081048012389622600868379969022223469448271844378589166910258644220654379484429184579506905931481514780026888189646373689495788288840917157516214889573875509152750170194857417908603054107710860578726248916860803080159386674633119446015577925726156336061081572692887677667539293818515325760885514617858434273181248142641633324248453979858063956681917881594902163941189851509609512964773100194254703617594408474772904921920543505826196003295352227551987327101215674713283827223071630979292670449767461058301935804026972646695933154959878113828931201076715385103134682532155976162375570558093224680502013760815505666354778247292479553784494071536281596780595491672621567805703960500036283044535125076921835322836688402892193864887921440286837953223019928152296768137641709187514906959908384884450524968233540217722895406178830860055958985102740010711510181140352570935333755604256632217010071616467323613502785029444043996518994611696309634210787944915936387613207927242843633427541827608549221927884142062659313973425235615681918290796670255526194585399246280823011824283807118010214131890172175350052057190045010716282104229473608450780248708294700835078511703318760439324519792386489536285638815321369374529970153119327221256070272992000474359466122081517635403265924624564149672234442937430360104620103321103194450588158814952521681244529407530657107123284224943185512079286822461320533420208808592613682801875323441927217804356950874369187340651296554940230990349337908414773608060129760623219657857635381395746884133739571691145171841601705978467666232888249121767032484658510456503852657072098563193269729157655098854972478994472019546213934676251416153469988872483281385989167342249425851488908958378284943081557053847122612399763973019871088605857487212970602725422184513164837883891352399845439928056462982148551895287005627231994540070147685346747581391303733644205697589243710519853176305880125440888644896247502767778284716360199983832129872827451612270685896752385184175743583013090851816459550520654929159642267823456902636425825197847936666229190347519847437773985891189766989300169051965647773608183922103794056934721579993329616732086689362919570640211979129063014875673615701966252556207332687818688567327693659528632058605643676834896583790322282355652057450188283860867262178965696105087379399159183695392605918410870810683617526373691805260015186921291155155000691834162925238358655436940410646496593925250902728994480177938709035362500785895294572043523788413403424572509440768242775796706210450194058388201882896089985462552072163183224240209384164435292672983653571109945022164305229517361189037293772961188867764289205834307288532490232479096019400991498910876361126808317547343067467949828491914550223146763060956738761066272818635914687542756928082667276345896920999866363101866834568849393291951176869683257841165088600457364434891135753095618234461269548580912494632424168466705352464795933538522101978330241397043666575421076430904384411548923906542786598823355413563343200945122210777751422900075089107126720702995804681199140362834839876429100763894679030153493285550745810972818155538383728766230137613900695308999070228959573737046561727922720954338001703910771141424992919754626249365788958089027791748677769497730008932181278092897423552508088087416233235923496320798329352344331690753621468003016701564079988439391416903301469493401192619203305695948435979997988511196994217332908568022091541710801566393971216243962464430786592817699671400675422407013793758074848288091869494576694235670824034781226801617493217376076295987080229422569044958854952606825208434084335547119645189848068928109001513123304736318862070987085661494156064923096323126546201881295073405943076379859816899437768406539810136924795866388556467238580557820669512738950359735242454301401019584750082541162239183260278067333021732941011348800849365661072997794450427971291055639825214414745159785090454874285136148001161214408845593184838073055428997990442352797493530345097464717904566988260698328868880624797270814671620040228792042232056918889199200724954190176818566698438663627086303232146095735457827334888226375893148142445640036213803026284782329231839770709791015088020050255516857800053430646730290795550874712558145779636923768607427018292624814275723772940977716938812393676338961867168849591222068678129517409926723138474180901673550603459698338480857953120254090970638410697575216745523122465270225679804538305053585239283925735805957799871291617941725594686622207708474544845550978784795052189141837325715529736752052873909160449754681161163433825685360431607703986313757776958664948990000267504273598281714924551680040280449509940131653079761413670337527159330634337919246476991874368627483700873241136812629162041340917934596352090731388503329946189289129216089861145063257037688128281470433023507315919555998973527548985468022570529430335678954602363163708495159643393864104892361336634212555487184350632870447896358861219150832211933972140451447627595354025566832924492146518226647583818520288744999289035780398404656651447361786972106931851174324853615686323574328024186405430639767811709311838162323650595645265759089027620440873137197682533581099880553090151119192029825274007596819949744659684680010475638627217472933415603770093675682292827499602529019197492090790427199568986229327428238490668042971651231723294588311810772612850215751864670609955369764167995968415143208036309193141378596515623938591947858193815024528811992114573312823645031872267355919530788146667015460302249910163672194323921583682192986272944193169103512096952978910245072141385579435111301361906327946170547839176008753535112112186038682039738891711328093798146020535249522462971437866816395548505043644850997712068306271951311312543342464491799675619040913350616221731574486259636608158613520793176857108973047575271659236155986061904156576340321861005656956158405368456172247535326760265705846223115162311154009876478891694674919907137072151613932991538399281405288941788983488825705175063770955879520953036262568616766647768684274596677735874863535615056891284923168897302426208505547450511349223899299133905079786812227195750379309991680372234975403831972084325803991056497121990424384799905915859378310104235427925256348487620919260864040623506361543977227673508390695310400461546372869626077843877726229982582942932201910607065423913398187792102194372341392508699889773753628957703899608709661658316811995236445102415170811274168663511040285416055462803408952428018476625206471044324990575234334231300852079872764973166754852379790194519962658894833512340347462214419937809166399842834855614342259947620228787486372099363573030905256975475376085546099033029193207284752979344359594010179463420927051270386756056922376778083551919458981188194118086950610284479868913233657235828099234044681537671328414081687847982966794487179495245104047962016458875786266057581795944735375328370885237401887562262758515121174012826231664359590515476183653728649178155610698463315758301372374407723448090211986057449879442667746002058088156741782784943213157752923338966600587622765281311144530161787035858612495488911109271542525495924289497143562569125078561523663457910855619735817917830073084428240021734751066715467762535546791071543132731820430403419385377155676491774776608737591864216082317552301456931845958823798301105236485448907244873979233353859210325045117704308134540715585917554569255841355738398874751416869562657758583394092137631518364219597558532677214441718277774899575810924905770563425659497330500296759339252429742706079166155592914721066788021217461034069683585920419015824425157102215090255965100670777464941507342214792091653743094279879311705532479680641620717106461967426156680511484257319892104043176475023044342737694015393905810263647812462059622383268539406595269997296154193004866214647065453298676118417992156484750306494511599952983848453899635766361613295561238913857791489561145996699644712423230716132827302624448593046550283243273789523304567262634658494167047536581703576183747708191056034786156642082055872667916329625538309566369783685723796068991738409784811929325616663664764078506894781335166430370420012653540385815961653032306272904683345610369104104754092536870841771575009016397365151846379898010635992543762345754619422809609302749299575507656458235768256521496977995846540160170805689651191159071685765668937845919015751253615278083642853768622228258851688179281505350633461382773122151608978589062808195064617542732962058881324332153326190704826133781512245868561029822403460091528972934732531530194304975074823070684811452844492243812323798947519665157760797290837591549719893574596108477453907664840448163446327210179167824551306059269265590038068725848248412500345428443544455306961687476289539521800287265197677024218660826876889645256733074153720311648030694372740510495746886532322154542562534024817111419918204077589804098968679059999446622081584787698250014505958772989174082324242126271051129551644134563110411924045013639507121885233754043284523039627881156576897530981086104015967463341244619489316257831530682156827059182183560292074738414214379476300268594068034532592766994702824697070435318498819004134439172111631675321865773397270409546696171652140670272224422108054535997807673780508836875816242698492986682164308201027515331813907598260820669910556148047347026860093889879000598488423144503734649561167775061980061880697717826950999064275452090968974319974187721799894583830721481537131327221391795912082854969249200643278304098778844531956011444570369550617450287350460285300315624759978300397715892306882427623041912577753602820815815165141224279196512590490561373295464436755422304741704689311211030294102568826505348708612180287315659333592499321092802687074312405374161277636092777218854364101666108720202952368822402320428264212631681606519967217324497842594877671259006133345480317159950949851729475537093951458251856218937678631457334373046233781839031320399995201976521699409108272506711448863900048690364006355465950938467621985460124365403239731946157494685552231219666669434718162343391220600252359854418939353586402319713481111034070458766006004228708032520696227472173005342888220364732241470657291457928059190942421232421029880087294227461777449213194032484106880017489927210847860901199438589636281017174973668830138205686506734808463945285349925128427499350827916322308583938894901558259573916625827215982939044881246440502307624477800969839106697345645876090833963023479640447142589447116092310448950093975365279352711888565521241927747450805540182645956868632838356507338881199210383133019311246070086938615365989867932882495741392839312157947031128307684796908026783872501245883140675098434872350946128307069430960881178467546860658377973628996492924906729116858548729957005003189586415274234075180773537752514348816339074666998788644952167341761025105204010175388146085654119297131943713123822868897172405689332803504079582281443648551088939722570971807727129292489450228977761726756157431708759886732252728286313109640471405604627715758752528010954326171206998699917224443365041993158740638850906756761881164398361991324727008073128175391852716655160944480072804412189131260342815995554262812042891876947624868227405443701453960607006244830077099786362073078564860762833951228407892751621615376675670299825070763968527599386990502167990234129708217020150073420766196092058269627052792682967933142875284319778552805281868682425501317722855181779520324449925312004899720359981087722398783660628577060096775371605611555799095088314500562769465434464326062526768472853322258254763003359186997159410825160324955816652636631634091860172470725040122397933511554187771318302994368636019807127838765814499434245160082640035786921929400603392476871456979309263029837215696480378795882732979704602388720733521176209915621606420859507244862175223100743891431186975631022247040841718048989381291828501393167953782650877914518960121880176446191863019823620205287049412388711887068993894992038783831499606733863979871721592484304780836676914274896297928616013216646198248981388565186845367288291852635715525451685321634022852926285897335281570667770040833943265553201718026105713001048363783746197855663872662794435618272908870969036513234971606007301038714880553724222666357121290765416772307309992671157860865410365330828209845458192074456412822448482525058856199081328371921586893335741860095836426368931652143745526381073557134786511155635528873206778691337317025470250116177612087978931309198722301227922926225880127884528767969785358428365421091769497440855480489050079012760333290982822855080068108697100815940723706389435778561105195435408240596700428719432235567665888975814934062952491049678117627378753217121050172951119612048567828143363821609425071889899737682752869091670755607292214003661550865248935468431013426025608087841358122396263865306768289630545899643808305383522164955494650377631016245342569915054586095321744960246825425975935531091461011398757990241589935069120963896820084020018455392858284727187323479066879562404150221813875314929948123844270069145045287668901074155992076220461964038346782384525980516350905071150539070666893529683052642471379414112416429606086875512840195615277178147283962252508924053535214934884193533232569023699559117088712492729664123623241085566395280137456371294886350474689738182111188969585053230501079025908893752204683948477123474065255786892606642226006786624397279940289681469847477688136082285189509558190702577923115479331115328518784108656981434493060056635812102524729285949708289663240132445046858738243012832575893573798911461315622585447795791236468943762297324812533658950785807810290678462456893824482919681278171149997652987123251152858694608863086988382705525633838237236737020932551172241538370078150310168874956253308047566242830885798020339079307857385106754430020113744540298856723981230873846136169724609487606465705538848581511733964872195553546850423989382623979756612067100314073700219362653443211846606153340311438519185728331063096775237875409405807906665533375817728721872015847121092814057214551066849615254243090012877795544936127243447465149912660984734180889929156077484175308726315238385669230766111174877533163580960677514607130410385444153904138284514861970736331532632544454886534249516042354572544477670218122855521037594661764933044595465961265271845131812506234126102945344114384963826157524184716638768123138515825702606191600838014031961129622991837454285610526180483425192824646050790163594158633683292210667223345344396038439282360679802292547588397148238580621056266427702547438119147936688344033283268964094723626654766974275177862809328455451547543933244858029889979351027438274325678771543513223487456930211885713289546158784909283840811520258684886832192054761613270481157453478384884660336859881377881761403903656742715801061350945656801561412294450668590951630184839896617641542246105919182472578090619559061479307365233822876555759769854222781571269365807211174940135717093189243639399042402589356719339512496414712621753187473674550038496678997199001706535274194275274096547857697023282722753951415848381168920689813633782947343581462964588189498757592556784626595428910605536657406262737593082319142115879221906671366280611618007409872968631566596181751404605596539961608440900496965058632014477753212387959571116480317305092028339202892451618555890952675232028262426193000803698978256738690218029869377820239949246811435455513901452991863306022200503072616460946418414967912535697192995764370982739268335229941726869001399307023346086247300675383184226194902694349716307859633391080760228489401118320759390951542420663766022441248029851609283790851547330803988120903560430283727257964538636713304422168960480225949561162093662174563902633660946232256320972591444397348393559444104172400891926346752858424424013372368384924344941860606657766417216051947450458090607687656354245060621263776476309184665466406026175930267542085582582955274895849911047850767131259728395791599169467707323362503491970372023330596824595107962596021745736987543500592678299271352650296113584677277084432035286862183847872074937789959841250555705401271888387110619596003494820891523591976616500762261946338810018866455930767815889735669969072820390172000402620874016218995001536353546988360797458350434146860130904172883515008803491223288357929190822190826918993428137964462627540348057718734436320605123464872745824279875041065710704462459340258879735403649707301316540286024218334219339941517826199727280612387445374231880300597856587253629259153240609214081087450481412416628845728937691314044072640222970581237109120632873989219839230633970795203971950639444109321207372839675133719011292738714180792588116600148461548099875712091348361201350129412234275185061210219305217859062901956408273326775119018435110283017379829913517373799454953710840460005819856014094409744980620905755354546416107511948984909475583929379662795374581610106060137506400989588719714013237201339663809975270211043928130570653187399892894331286640053180027561237186781716503525758436771952326736112816328953276288460676580597574029744223334935766581436268569579227357471941253133742918565643003038136374136358598026901171446204234386567935809098436684818345228466294123996183539895288969431213275695894521286079411268919414037539426580189241632591777755973291689565072872735624260300305202646057888450295981836764645255519385448376134170264677049450369796477864913702190997558976048468463549595754973553652946882019310055378878538371285017183500828450945828585037645756529885637435325062368187112639027262515463780763622810839909833746963774600173544642129437051783384964531556755518675735004307036069952809621177578876145003622751470245486055217422314355958439331374920716106627637440853255041942188594142421054243345660609314211694694096165868784878180228841210105099183356702996216091787645575868013033179368178303154395476123827906785002379635389262229505513292775713836191191199023553395249317745312437981662137671769987546903475168715970883555629194971081454185755234757403753389334632250392069375266258480387923031806689535426892003763797128432854989409762771985578186381907673837818941567747429170601412381932417310576410711349823298286997869692894272116765141064197060288446018097461518093911659661387296986730603973471698895807846042466661663611326550804629215860068221773545805131375086051637072202845188729414698597256651086150734389293672417936354787436302750891857053714600356989840600582402506033672309712966680077486588104663076385870975682921161355139102422869278222991910354370428200790446465029573171646811966605222980069276966404669253988584337231773703241471179837255641446881708172940118482121815759212044477573103172702214267717860047276341299758601750293127833870073006991672186548250052545340165151406035999686494284368542171297926277487748519067530236107618247004126515180241673266605288822983275678014973693913640192695839022239200566143429826482227318546318348335589906605224764508172418279618646125067672395234003989383337079567178819702063923175016233516449645680354533437049453831257436215682422160963258364082845919199389361295747734242640441224321121697217585435670959663584591269305601911295781413503406981881521416804474117365453642875126919413332999441149274882519301818540143641415616536133631803981479836855588295286675596208626900053459765834426312142122344461862552537759655844249083780539603405163739170764128185549985260587558471166628259596302387034400816957083120195383193961952106410890014880212241341723649927657269235696346301969653862029759114830741416192096832982496703708845992244053703175632586488855869887094471589152747468717223020873381982655744670798140573175497199091006913121387406794629664430087872221132221234585123760972958069513211751901614379547493390510368728748801660918828362669055233543984909298738439691405772894164789382100816678936058972596683453891278977046391577159403970321439297134801308889153618940079982524977030012863112908617210121866588661666146917498546043387108813046533272567174015630514547763220187449580570705692292017470764101869620458853478298952939408608067273011415085698455588083308507868571454235263218392798174098648415606668004058139510736436586721649549949437206099208350699012694262197102942719875847225720028115859661316095795075932607437337519452237648754580511152476875506617206921972442780790767290250094072045004126382424092653105693818018824491520644501884434391735241795521883674341210990674468639007080960605616930694764726996162922807644385955527163108645079592234346761233601042904309542275532319964195584098296360932030078328031950146853762781859858589090220996080643472369767814916290070783163396535818015060338042501539406828242194556173008341310229180775577699651079793865868385599213602559614999037895335892811919085823118025734039817741005488610426420086288510938543096825315978648987424107616275750569475282900377580918461313577260170373382717801773463150653261084416824643951175190055063918251700593576290996951131363974746717138613065790297045458032204278678767909947461684543873384745370322400304126748061799683267761169692112793109169436035720672165869553521217933831034569831759095006505970792855183980946804294074188136438161649345324217650549257661960240520182519897283864773137702124818595108956287505256715043549497320024478858955750987463434984765138892438533353296065514607470802800596587741500314013681257181725648788086635900355526198866163974666560671991153069226561245970760447443776395698452147967598553851866534364577955400641295247074038406167572238455655087442483390732738967772045061499732502544136953383040796645387878112815722028548537945861333760671871217681470751713242216029036845644493190139165516036325308830056871767245103153973231218311504590795315266309105640564020083384831748427363400186703109545661023200197798124531494624438896265381571304389795205739060029319477392595147412275574439156545181864492742719514540746842764718584018720506614998321217308367771996458534433745599779940934936793219270980179560544622757659034362106992539667527382353851257905104966222359467498242913280063042395683001042760841435595720783899784105899004795195053781773651230980149130224594050389910863220441599672283976562932976227280744060232481119735186619082957502647827591256330231932150309319982182674268815783967300108616486824895394767812291352913847941274570607654875064574288198438595508956892073489353043409649742037983939334377479357106336715988290633711078505254116929828581448299339847956705749024096055073004118918886106376489214244044243327745862434011823120551696465084786614848024924044419844956511839564029158726687275381188348646076734867815823506004576446500656636265587252935759646257340283070311103859088124221023033485882303998710167355561064758234484400242324052590669467530878264941102934006976765383387627507883606935995078966084541030343325944912453008645747210812583954016596235358005460177169820079830873315227103906188157382674233551376893364049424205965254753381604673560234084029537903888228829387476964412740889313736633953194501293923715690230658702423419855165003884509226961214701378344466067939171369023754970711251291459689983520203767650851088972855935815032660665117662062254141924888108037283879514861467700833310012570966669820935849657059286314336713881069913493680846626413223000254079247831870342908187563902245992984847116634079619421780463741236362933654451096987629682431997498871377920966635631538473477658699638639619275101765102876213643977550229010158410285992489306130177903584116248771812371711780300413549340995042852511891657398527110149456829082818938156172301679090150190727345701675562703495915669194977206687135249586049003788994075616635797353778581090391873318510510923186264021827672825965990521015692178164891304563809125564064779354698857909121526486128697561051049233517089482744945085469947307625379544212314268389645300715159065066714987017239095628406191651522546689264147410673513627721100381431851863237994162847999401080625415139972529362613847562549596121717908122605282030898239359299798207153452027482144563519337362146273062467033502388917762684755483437852243501130867301525998342403254818489987251562865249442276332522270423342513353030257503624379758251924583742708882937492158263687010243278731118877140940930086118323539935538589938482551881368332597075889722040329598991116713541291662129572377214950542585081383523275851721219058342687691624295217709433369076713452062032790566582415283238567702683970401545851438253069349130865038277330961915336180440421745224962947282645922738923980481673638567324669768810644764907482179767780156479784949290427422892898018521418145481208163368531477247077684959300352548559983806952684593894418567834750678472506196869085815486501601203100113289979806828702913969777912385721612238894486127162439826496694167757293347390416784381946770484890180584485889010743373717292992027012768572882480131113545691028642649075046623883790290946775951291708945948429202215226691082244823532530746585416443743577539853254622204976273340967761258298109361063725750590920474911814386780346791710756467676159463413184613433869299792549149006587879838306645628008790049971896770893465184639445431274625902143731892530986659481701433833899622772211318138219405796177908192677049837204292486773047735328753676096778832460053317660924868127047185124859434077154400866751287816949344156159515163901139341999506072134993780319620810666973757153265919476130406685640183356604073192870089125108836519777545190902984939340759125121296386877024469536158123499802392719170688573922258312826094965695365180207965036499635661870596965537400729092418665951024263376931900738516533982606009363051570463891706685362723191010312829304943837446415173167748125214132743430511142524949919053770700517797080428180181058327631600541679888360899890911066787148727052783066335158321343225289340872936162371279861775030129743602124997061830773163301940429808450020986277607425004892134687562828432664843743725257811880405403831797516574820881013278409292296879569709848157279270443047737553212969083706890897406656712263191320856355635551129125289195408173745990587534876490138776313068622371561488020408727638565412390125400939873607748753042517350650874339224836329509359758309277575224925103421743083443765345098711253062612412090479794870518058145292935163241285100978173606737109312885090058585158594459561534817165950071850915152925977923049955740394233111195750932708763066284423053225232505200947558873069465039594477504073313329627282178774749146310589830394640342173736927976809869016598753301120309096432522715258467302242329344592235713699685107113690509005702227473249145106753765341265061491663586828332506027747414735112684505482350243806871838360077184812485617053956526652670076583394908575781069059657656229054572383174095280534434310867525799158142712891072609630570786049881713799599331786133407435820581146660265377683395604906521965422653491039622709481871612266801506736939230364328104511545026206886997144292456046417899030061577988963343967388702523061148284201828440838966758945690979848578050799735328404155026560855719561872378574603006622632036400257502874811131097030367340514428680161123351810834392134183112422896175286189091454822814741578361846827212235486094265655110244559084261278139815919003163228581470069195453948018096477265908443377568569908807753174549924401743894748141510234917588809201354226050768088440514032162883493312396310036327444557216851227204230966508246388651337411074119816440804442020481875952068609978671995478998168670495666843638734498061903990619313013285597474869358750992641521163832179717849274885497043172595152704626029948921507677733969274436623823908806399022876696885202863704090927065746605959603293723616287823186343261116587402369038420178832378250553374057362463039556468382875433145534162172212444240298813633374986637445841387683331474703772167537747823126728333743219015368427525824095151532671865806788335270112307085356558341404785332831180688148944302681676434630834602520110477312430455287453406826482214817138723819378999509298193836627316467693839618270454898985462080425049091706870185415991841968677511471982848303534995603675336600440598236159154997399666491276451993418959800934377317987047077107574823253611228158911305745063093117135059409994813804549652057023191097579973874303166336592934141657187076713385673487884691231592262980522193145170769499102344922226452984522173773858321668216738703636523218586163464321533931818240785667865886878489153202245253150295686645063704811013527625552830456724334580064280136244448123580443024019773214334275262168936825051779175546567818477402443884593740665267241824077595045976767172753908988496641486091853247134768018819546323721602399807488771994305214512628899390362039895129670314031209057491005589872198852214947185697602537947034442961029613357045787814542142644561795867223371901556323628894233964897190827693903727092286670681912134249585263744763328318723224815016674652258207519186094402019519669574317938789733162268450757011562325083386771113587055150221756224334125485074429878761611882457180373599234226294757417714268068562552735842702734217296458050649108478317687065618413541826536130604094791081958820652710404729326151354497321103537066957876275009492170866368888936464594185078705486154400548800453950179299394956199309839272253890072450756120939370440240308154454955650731098700800983818262634794466759951741575032332650728374280452107015334656888897444972657527900688651538136655452544807494572577662658081517661241755274972931094996659214142093958729033736076768207486529151714691961639023524135108444295835418445478131129033329346477774040567087869279913766612606239507908549020787728978770462508973195213338236234432527644968848510190663514557783296032183667155334466047298481421518683535013232995265865956921502096468013703071378836578636394508485480182139847480337759941396816764797747329644816006216703198601467934678742837879021462515409873375897581400403807496418078302896230258157617679908260898610732882982890555516966362506298310534796647359972954275148907570740833509504926257216952209749762146683457816509641206335448286160555086439617715090333134015500262997707061540642262955824043404176169995292812197848034530759315722158271542828216912736878904214553765136663062350957733758255433323575687131146454236026539572793462634611597033807396401073243165662265020721407448471522927971054207950564097840102144168757920647035704950699130694465217998317152137803404128385473882452704229248490122032117474257093165178451128653246469672744551009280460104441347861738145699316999452207528926435744430989606580027476508596012065200058650415475314406417916908634129209378698514495146273791816726097505443350262344569325772786583259508940764068540351550461890466237397471958737132482756776018841199886692694858192649923184108836234282257894534284153435117795202696021251175922670654063676987414051952023724446693137548857072063726392144832974037342319306891063438651760941749774648787742037967578728670268295152008080106933934642011671759273561439724436048142710117104108422709655967217878500216128805416051092118857831113826583026590952749765211407373996978231066911541620630374100221508216038656227847833159876717990654570963233671387783096645085961464342357919107666915459470411377825146864993276035253262791772916796045459612588575794370828381253975627625251981947333933033459478555546514169254106421080558055872252384544313798767512995598988388073708850651929163365281290277612917150586438169184423367781953058246323940862430124696931513175024170274230761693334025053017816407350636554284426147801799249756624776718627675730379329803044469004095665721578790599313049793170117128759491719271312903718725490297544664754268818772802691400003091883178200241481405426292795131216560318720932204196185437172427805802503803744889300045316726042082210192473410083418963518378551503591874512769543066382034906571161611688432854462279266982607101583859514351962116922902560323539111494070578000501846162197921816453261363228935816276832379773543342527470910762877878192287834195016566779661839604696288336378213607993719834393651184957076149815669626974299627696751745669675495625403654301989660552473225709441226136775795485275019810500387745653388954234729981053463398831971747305579058616111126433680520559429718652022189482381455989901995705422031864904848914629631261116507440190972504639514534858975160262777032875346012811038333615715266177924773743747688381620183413318437307748230407031096478663594117041695987780015775268486141672454998425426502964718554713365403553133359679306392365780388628111916566566542816402100194430535675504146720879104059016851082873704090867341400847530341346560705865021833571664816269928709100949968725075941734985875307709247960325465405701309913931830261737259198488289103192695464381694419326357799951856350558588173204467734612161882353876756282079169640972638361730806152417377008827386423386450466856773167937930094994732916094206816712399287100014724338346884071510776096266946016594295999895842135858186984048375693106194966897450962124992433825787256647340659821493492190829877760713077205766955630229474424084835478869904371873754122277368679013767292685413401108037586751140039963582690796346977134917874576656559015034048401149136749562984367585220383780076596918191811748978846317157706663611265928277559852738689859360247904577467098560233498374257080623660229644646803870705650608550065004055803658578486346751454079871675475861595501286169847862199159103043610578968850069404767605334809728710902718380297141672255135023420326422669663757524586872646528213997100723324115605433844171506360300112317860122396530189517008529795440463582792371853939594981034626153019615429111459691672769306792798376347681559289148883315094928120482275982482417123360691763363045628379300439603986641395322386124969101602605552221432875281197040784740668285303207373320826019332809919956523330172781322809407013669757828485817401269337871808669343495405159784704790462588059251155914186735647989646687944812038253019372413098023459986428355717458167232228041996899693010287842008151752122404843985229569785717802261026531854744529094370973349895215292870804418393745935125467116055518036302796051872761148699697346191437790716560305600191992428503313820698449117015005154214593488650374149062810901893605292194409576156975115947688559496293214010778628135637572306908933355291507052847807922946800324097089914864201777702962302438368644469250963429225920734080340686083605675962981083884262415569528177735656904321173266701861625707557129171582919203388944725692340874444379699232605061262714137745813223334592235389137731912168528212556568962702253666997248758321427915203376430027323581828926156391503553444891922677731165128657418112257623088399787561743891365893616486008411967201748061967702412061677880496832914735001781912256805041328387599857238973765001334152149964358417530039094247024891699971530145545889553399937363600177766041597927821575931350173630106640905464516056512849535192536300343164552251714726653865724153393184471241635446385417542544731155904707922699832428459190346674357257694434251439100852227334256082409655811900412060504826875567333150484490067160715278616216527798972502630680940456744836560762421517132164652298610340836912436818587856883958613302270952587134738796745425240337079993648209778338476139816994789908134521634811879050831238672635804163859836192206864427916877756039804776256445611237822751977494013409994288109261711918149710261964295974594375665048831692860843843251018943395111875104493294690412467739256507336765952618940719454112711441375613613287919766790404151113459633150978744097287303815028233289200369981779699267911854577764391376551416262245122377087009283727365118576359425917867014998879973911192560072274397545586970551224321326738862442708689653386954257208703268301510851674609043191997203178231722844657963718474336418734094508802616482576120187410723872575956062945754980953721988725209940155322535060499285896855135151643739620640881267120693995809146872930819892323161942756754819633139220134407146419810431448117593814618958230471832498155465044311324647342033507672965057798131145147514004008191839419786023253083672573894705282783045014313636436384280149936168099348450491607819698559394877683744109094614000326967986959196169501375459900458252837611456604872782833683009801122863988703759777820367910176062524487680131953911085465872055278457284206117079929874359702689404680306011312965794199927484720654482056050749028231826904761905702515713377265617667734884511739640474408196363455267899053931516594334939338004557956106660847582232198024843309683122134225513752059025154251133239392773844662037349587196495391530213929951275931061749687701488214783247162887803350362024134895563736865964481995518690193225714090013675766379257964144334353390072794914326789128776008781162888410815791578196887475490496333960058880711567771090572568891029708491644047260902297462669669441285435210337328865518925543521274552329947448073020559541827099247622476659280597202774421055819455094399831224667105007311728266050860610407282661831465984000990705940015945461285805444805501059862582996713638193634344132164967099082884689787228170656688839929749665096277119409386654849352720965213743734385472378181390877469681585872502788795917310895279087638312666585765293393812603485219721726299110750960313564178648430535173297020877656982515719908170171221287145627492670148710764980701522108170308341379156157885899087794973340672619323028381781487862893783410185851248570652860325657827229236922053476007727513387354189943669547594042486935287080445633586678268466712816688676722665734898689806021708056932215397975509703230424993509393920903677883219090429226404664935194439569900571828648740621061037521835488221409618227833674716032312267800944242794676212362314302846782993374073723562612165223601341304629236733073862133366234598277386126216979102837549028865245156868775310456710319445029519435311096276293812053571034020030787286515758600048513003053626861458149098574135293524370393087332280235824808300866465377879205604435593855114701423481408853988385459750174712303688509598418425729760684498384636179074472132239243939535575362385635934621480537581387078898378861080610279695592309918109954930907247348563092748730197081944932402144524994036655321720480187500786376846659783513687694178442264273970859637231102222983817533161202124249192727405299122749344126867627913122679974044018098627535058471982048998251611308718114968250468961092468688023976889298962641787741487101301590739481651063372323256314428742749920467770641107872122714434591162468573064569836247380319226412589078079877956437578501901383143237233882803957365118297423854194610463646971164588403257587693769078942062264205233435143961224688862021975608924036044868151392554518095073782259809748036901700882380359777104615095023911294903438700626030815127243582006119881725238787755413907878873309388083773055992694492680046659753225649152269698787308620834669144923088400309870593931486222808964937978642591939351341417529070591673948389401845435344808257888829386014105983261007725451777614109718772141101434220881471463523407673164805043550706213629143542940126157951984529104700579902154328707549306943357725635141622434083287902135772759571322610859545520895887424631330412552876118969942048555172969163270478396413476412009246029279265534851833842064714333317507317634729770676136013533690867923461557809430112473640508168623948865113746979186830142765875713631458803537235978025381288555483287189818238131455280997891539460911754107135021756742636117686412804684702203418792301499341414013527177274216807757622362950480098262852052092333192451119190674174221315018958354453083115089564852736382297323361238403264969668678347379578459000070263706721678703861577029041327984974039796309037634751566155996298260873895341940855825225098063827618853691975852224924232170756591962992674015411763588908644274754902317007017746499112397301944541235268619050225426540611963676646533485240943644581105263793146903277388966095951949086558418330554774237117808249896043603618266530704661003162520695619265593747885220204030676951019167818881128943316206846482838187038533762563078423114609443597684501802988639132721033384429653500944340133398401689070296249785632370760078531217678276757389335510060888601964155705820583473374325847959153492942874814644548055940294539888150853093995511881217893346169658105339814885048081860518240340484443015172867634698994071866372362199581000797366226992396521641576435747637031249237878571561189550365936087722684105844459115326770828841035165207968819360177153637884205874412100888722337407880819811562598112273196266729698515559480562293888219819602501876161910324989725157900198595582421269221214144375924996160036816676233433217945781842287767327751887897064242902821581178068950700624948123118116411385298114424306090938429066441370977438550262359972129887009187438374086291173419313948878869063449231558484457761997228340057656965282679195858797006791013766524818634133635342453175770359872725449298759717370401312744912929180509254592286995733903174290325337908028541035215961648978726574819462554823221225089760146313549066796456129573743545118348889407534163183669013408015528672813778759071410608292956711239943685272766021318012559521634532890827618845724451125035537689009293314340601918626677791395343674363778551555536521139407967370991500661335839747555359072538446759552057506569529209879344183851023804503214306801809185143447155053330906277122415679405491664624885818930308556512462854311417720356616095753152519456381527441285289037047968139454483970726780932822265847113067640895886482874580531461056639085236844268789464993370209475792373386898727700685268929158829311652426945968476340583581229913458624074010845621792228146080598936870761569498034952099042152345497092086272113836052681762036858259054944577316900727322609643677290929794101297715491879123998654482130234037444128050846491589834125825795639697476030409344056054153047646701048013719364748438425024048731104989452653263883650213592507178057437761633534544130662215449147133974022908651173262837123950366623113642688930267922544742158632392322179010550300683076188630450960326907517468308518123566439653862973398850893624492306281305737818438336682286061527218737638735626301739022024939859409693072088747817721826456914922845255033728552970411094867487428578722234560743558859803760895794832415603967127063882743583575515501382639743202352091740815737989377684854497786105942980857229749878417693975273192010110391708261350038691186520392154007108269890659633794017236808938974861102414853664083137605930806476600676105108036876785976743581269180518900053982045633383390009456259938629412968462053355223138231736006512386517436549734477510073535012182610154030674120196076729426715892159558945808510206491653498364384728140190354883587371173307541617658487044846747974782093181657713598760313925579529955544893305454508227003847048419358519991735990295027948892401771062880852845806869821470207273748276708366719688407871155006221737083082598620705630777853227427498050169158860617032918560622514657380986775260480194701831551892088411376218982639986766876494556769777372348120460274158554261075823048705857287676036864562177496768867703948666655796595575025642701636153254144606641025472321476818550791382114539698606969819659475903661714154742224688905128370306996292448180226655680539735691249135578403507054879605791237276187422259161811506989898997115314570629711500207785490088777725567842166382082026922639541313431937142330969929807999497646521502556753539096814896353459560029625308676092452820626100363923995907073342525576948638433509623836727451467791547830212391732205739480917090953457805745640056472749079606697305083492678570620292255709552989402224474293623714608016830930434660170142261526611363571742783899479560712493884747970435268017127241702939268063708576040730939572484899102653798775842008253823093773521352856566099357683746652166381900370851632937704358170987463935911713985862507872547285444001278397473126754937868745774047192182680316282716424220788722701499883535190540346386561469105072658573494481835883042002575595623341616026377407413614925876978374103543618430187647522001208540259477841498843829029196177539218526833976734076647436389910314916115997186648697342462841274399656684024634035039630061451383989306514606757959299461375439074897105756433344818140420627032795333417563098993294980665403216409647523748063612893075437560466418107644552555747822402341297327711738762338844611573918402728619371416680293940738377323197493064738304854092741172223088218381725261296147626190192975459606806362359143292639875698788146506609085775578887972441161967823622060602448571285683136480815944450969077979480329372003382194044767963092395114184715482788985015555710189918665241952603019446021574902850641127102170306722519524544825802057994325928609870188100137042474265630959521585049415094947521184437313660221555429972560035750904381838242386145305869198548551482174581274769372727944857124431163566389893239911276645125031389299937043363244090043685635542139303425947220337637131386515320407907381197271546929450232076612690678357428650155519274377427236597567765301315662009982782278015011908320424117043096340455618722111694083026724935544452289815414055118826329570799318445002147603593236827927497717388895503657144637865684163283988636241023290574564487964250287538503613890339308028366150732947841723669173281383441563078502596961772402560715629758030719899923675035905923308362647362623479168423088850928988884787187087780350363008068177727084674203066247744136507075332280987375582279534490420712475225941403980842596226945711987625705729757577363318421719715635598423898552138102296126935502794457435839383859220753761936779313510832150347182403766171768691808141759230878227801157025448905847874365773372665702215713431222450175404575976271590592241620406527408910488456100970487452789850491406042665075004570016205412792973953189189131940253297184443769579397629104716916179639079150459459117336912322060747166190681241673155051138403846159609530203849864399247262778088223245996335155720684956161514605132452661331077818508432041282517982142705631707503381689786422541730705436573592318829669010003201967765581499995884433394446097685185142197940104390447445806070957759831558743018773721280596466410483721920882439204532424905394176653896355797612072555658673844864007338843459354759314790945020649524543118105823805998875555567929850805077687427392884973590798833210219555664026056899481746238948946294282773696686945371475996694936611319113843745059135977597720755152153929966917747869313264341678795078358799871786746396507681786482809773089421942230656774994424862345038895696429104677987157055293989517244479309418079642972373717018438234996076340141851194654577224056108485475637302377768293561610889296906611047727682417440630654187289621475146102424786851063325204604388417771394670835870272232969564996083699750155491221430101168816956291564421722285268498280555029942291999531204276086776197220773922795718434279498074974400030037381395325336471487976566695169111879708648662043750593683175288968143273184305909432596315428312709424793155874938820272505311652187880123181203998336804626881388206864243761126629811191820679618021280744420348177771236116046705514303255671301486514734830863901388716483168327179390897596355693831202153943407076781039978106652999460387565271330711320412660301458471125047626745910050897102818085004792693057514418784943290926737867997920892250229536061601993893565216133864398207630487765253278802023637419752718824298108375676354711184943058893785682422962824626861811166801695118233512306372489428801244548320778045011190082156091834699905196788348780394673964328272176628119442556544772119076350917469639402599957813725004450044104394367891732607443450711764091347271358575475549562595059874382174889044686667989676373959401533863781322119527741492250689810424585623855419384727976319855596144537712030652875995514406377602672357600726784408145303767394667957734356755350357451309763814747270932243483360201121012188404397721680447693914961389355199462878956415401812012464349463469680392504481424730953067148663469149242763144358754914492986916447683297306403748530509180107598742196566571459485248195899872618591176795281923898718545632875473663970775339641360207568218633660121868191066969711166949026034777519978501456321850916610096920012227122247523838229466981876180999850003201182530944687538309898256215643494407459862150718641591382287022067179958532439293199881921502405773110723044142743949391564139267684150371430136472716914751938377478753170122918927929807472883875061640806967749205332460476962664282215104495841855473858248266696930644554858003781641857952933201427730077389790544978997606155742474487312492899878713968478180826770738915850022372264977622852919880488131018202782039590278086531835591898630827065875196196678932585531686673301091492558401528468709385850335607157110493540206611654177978130365154249695216108599438628759160439235599369722719286150301570088825062640482513342781483787540165448002281713531821369855565639765227770733079805304595437487155082134071763383095879313699067416118913338874474604733289937207110138081605529133761712850809183636504413570204240529085754573281069070680671904348347530762408284467048606151866562922356826276436283018994961097798723186484646862700528843515981508727630242738276843709672418258881413585971029731086022096591153088111831347460586040296832790058172531051553663268219887119292688199695398566145955992866062875624218973519857735345940821936451091600408095252120580296335864270631333240804379360203838974718929509173676810108233656821180232629133732584259709410589432885684729555451176529293635346562440328956699513917138232434389622975776885397121912736970684481282189044220449530936063595711194290760330186713038934145185424049680582544221421769830377951757596900309322233077088102216954657295764938024693394310854461785863397039397490780717138894929649771433567903703778078511946421003059334101999514361548602466114101341541751219715554786834699455989405399578629559990057301198404202687921682714176577023080175136432217122333011223029200896257236126239117953464990572266157722759521277411780849516792150275413533924728088726432781582322992209827145869279044110865820930714100585962980185379601140116115072636953517292774526133672565721732533276678889769764981611367289805458961514165795585956357672181544274228495820350637449471073670904768215760811022569288102886420157368289716476012099975597234385469975210051715452974793604284132163166325693660820910921523970150150798446353198087203506860998659900579428834498424747480981102223953913139999663529041788938927467324128736945307763977042676291542201692002385187973652275427893554194506273008910521058880688065136337888742107392749468250206066135590126734676162011571237062201349072759787231554671995704004318581770235414887587523036646334632462014046869715362760772283231744422467079955596396914005791392774087009992598050349235329261602695775984992863117707280081982808967071631018998215575924775618230578384957961298346141788516790626653887023986344272464100926570834560293050290356094920004724115761040843608329597441474611002086968680944778145370565359669801182539298565284712283233550723137556071457690286963834304148868132716842183778391432157445925320628365769679262078921567562544735784782061310679170760091919354847328074209042622836139237944890182114729088509444506499072942063861374320722183263380584268651534328181629425299412696005751520973564967156130576556658907165936381181472945153006217393888102204080277437368818975149499238067398386185769976613028648808505278683090459168085932274985406434645287901817344106136919830391446673433663035678351583528749879777001991010833192142683656246380453362203391075351134856619345419644059196477381672863032382583448738233735282924439637511755847344156196783937111898583418263780639601961911044330668328442845016882222105448744556922464091798038288266969699702066880144166784589258724376052077649541259474262724766763819421480817039243256125357120193405066084972055826625777706061533525658556313344052455548303285205527219810851603848217156333986895009506430723080669620964460082416413082040731253809235955060408754788413391487671962654520903811440763354676606618863175059527780412916946454554008625386125554698831647238472052489480723067124453078538654261066266173496364868756767488714106245013243735761479006383503154561378163970305031305275276613946818546440341528410641971992627813504966411598860465702154657898602228681944103911010168539291833202574328357294622305467904645513263022592826325667370993466890696981169769243312588478322677651938014740757304676881901704361015679385542314064932436795137609055598146106637592433011851607939895954833649342537144227013689548553100118232450239852282839791875762480533822935354205850168473296002551444630023393297904311798897854002751944151533969258986725182975382849219260786723167248870780738339712879284080709004109324447432715303819962714763567377853028153052175527737125820792176745896953507831948948757553454932216532645998831051510485144505599265104262241333468040559897737246115452713871700421649696209698798479442554835271113147079743288021307166497435550554210919486144800463186334577530610469132641334265769232100249003553261519976831190695433956296965728920876627731558347698357183254976092400509102547904230783784729766778143090699113859448272075366977614401810553341596497041513282008147625072104138252798308400036898375800008452091540578261625583437614929980245659427914944588646240997137919171106135119739100760978871681086595442699353346653799080476772602256124002818435615066158761434606968249758479602363118033316700286624395763523382039307721265625835323778548152844831768516027709091765491824586356500601631321496571469779053709056863375823498619663613056532463201059777513544994159010580529660025023597793792603178168033650294891288241945198453123298296305278020016269117899045074174004985825815947526818061141148193262522848311333010644179965855235495196131295651209809019151629083788592360805694553017458788473872391096322956280083845943794713125445184688909825295643616401198395083043195493206025983530687517534025605343956156804051690535625836619402073608657471459924991662104879924421418142079654781578951822183170598065876004650425408812112270049099558813614349746864170066305303762607567490125378806556394791768539413334517011419185063554391109569345691696445712231956221411019780898710486622090189707645693573511719096033825525466628436064387480638187472495675901585097130408043996756772167372166882787381549782636595071328861860814638433526120839462752867608557765099877073916846947073157968165579171294435409756929424696893895039155667358311094300635507584148189603483594148096837739560423673082218574031425902962677972930999107251047015457037938754247282026592951839286108144978073851226710347154975485178641763802709867016890691319023633772170006211254554291697829455915255300746833503005179118978633527367982555391032429895687558778179673594888023329044717656043161210949246446396119271091516233772912486454233532397373709237210415915496301694721816220683358776011819893077212266487784478623833143456498281249735779490945212575153322487519767662346782753143543470992705600254785694280533845006026056048772210283184265992774236635986574051331860474928477275903619525704017759963255576079620365471735442812901008546789587319785169266271437731669084250855132989589709167264053257296400202684545202608140715715673246535462471910021073160049516527183092130621444837125712845257329410083593797437601240039464388014318422411945845660961202343179069130409692998574196909791280649317604086182522458144665786697454211656347177982393553452443402043579720584993848942752125341694135181288750843594245939250413077255451629586571302008955935241202512069508875224572551510205126690013309875638559866703954887532330599657769810898565042451968233638412031488366100663895016141365891925595627426901430270691395299112421031299200497647571237498189921455699817856736629513347362745011061068539402019550357171269326948299916228712951447129669254593103371301664866737602189404058801873836764577755375875744242042269703241917668081244199740607104446705149828639837339339000923964521126194194465702310488300561788425532113289218680001016427937149812426044311946120055859600096430849719962466632455668443906177953576059397972787257426043712464310589078983879894727402674907466338771586982340282759354754103353353392290264578686604938509892442133443289844807066670050657475228013111148525182028188198624120039272310914969986847141427996957841176738203263938061334418355418785445330501734938192141136580127740466733254641293441146629002605283720099802724609472138835024041983491023840543463356144194258054276190524525170962349422102598089486579445348585343824499428314721369082821026612616658569944010505301537008477213758688422675290359677872292991485166784113499278589640019143498928032912013087566072363434163544137553094445165061189280806025590404898455508443084905378309141036215454234745351078610664509525200208752340926729262101379137720259893724041716752842649071911333653006396388902485507665624056638427605709779585756651274497833098711919792024328557189812759450640514867734866704908171539816077599452921074783700779143796546991353274243502171577430416689561168385808998903301495671127340942627562625873655147358136631377672863891540682694030989751403761187049373794874599987187829665330650781983553934451922378060923351073709127116704404988419430141323483225904655514443080618049949430523266508022391079402341683798528283229394261627156800753351609918646126493479282688989097496400918642165291350011365338543305082826818003201864040636257619758778020602712045819559656236277318179569359138297341740199812816286171179038702653306969491994913698955997240326175451943464578499164402154782977690722546048837050895229448804587575887597619112695256754090136194594851784845805858470722602023109200874534920165948404398559229821828871799197363526896816491160362483347312775368573262312818502250160044080222441824102681828871596726480439651952001167234273073408933697922960764590400207730745014786981326179761052666959109968050565932489514903031919864348911819353944167558334645887554153893134360060662723095793876101072730664388139546257285628862037906700332184962962301187503418474368845922684426443639707316614165803915706823495723750338585726869347825987010697339941239176672390014980828314170174067301443141109647168007988540716383035540764369366074833699653209113267697102273553349891846631962109295424794806310205152608124691671547738426469528634595297399267894393132560380417818539702674223386883184319729632014841914045780747227108956060191404431554334751370730265729204673807448963395691733211895498074082676015327818130675457102009127526999898551917320600033090469663887290244959349490283238386525336127859725240735608953730179439941833848380773950021296372584813663358219304194915830838014941431773347859892644003758059049900466673762868329509952326791192246305830006476887168168308391194994894416712414386166331837568043507985840321206060530953220840765816168856915590220142038146544038222637618949005170437263044459254396116944074413685809888769518655322421951062017735575697131938367973667286785462735398290273920101704643678743335678187346664959797947536771392762297842511483447893120390013910519375102396450943758740724576062657406914458775882767088558270824434201254725561977894538629901751937277748188677949843002552111610739411056199255294244234164258003524733251419725511037145108273657098880897187316525900926089354436583756206135590696904813012202503130447814496792375486943222803075318518172590619365649682788350132255941898232902815926717338530813503176801252562459515047578563601967050798200853619525295868889364687429060065956194275851698620523998641919718110835423878556894830418464385258372981355856533486206264198652086686097862466840321752681220292567183359544707231746994659894301305816256553799762847500146305731584939324084629766620179876644187963866609970132080197425363793155628109230908693398985223276736460148426561772547603270605610356496214218127741218412018353460155030564121706461530142405184088002951256399209278895349304161023267989695683441078625267621522312762801327874580177392192417240802755047693979393190354495551128052824232373155431909575290521597451728226543792990675424954154485492575140592570133385827320775986941508429221954555873392593435261087079473018941727689745696966511201324066250768628071270543699300650924102894854842317940272954864290668269154929820785583907431118297065472216533203079457648851169450395952049703591821703711276704763801300011089694086630770972537791644683018151816479791595636814116218064915176434843519177823854599286000219115076800642114792364757410369957942845304103020416764062543595655052116535775532462379337986029014020168578410476671574406907035751952493998702245998812676770934988791530564525308824461066860974504766693087176834384153796730872854136416735224257927665931284266890352653027127860477549381120436274716839578429550423380653778977005782834111376485928568504167203258251986038538958449958993518533025823310222560259357308328250619806498305357082336098998143785844553684284213332632825581712955428498897947286688604116935682490585182663089757636467707274419952755529241154590722635435012548863530888586068518373508346818908745035877812166743332333196867703208589122607770358305596424922200484532387927534579707127623363232660380250833513288969429081174051002117535239020527099177139632804905689506925543463397329718044420141693716492630667396102158546185043464051336936442366544876606107172705571650500523776695453266525903772150120955006432818881713742892381659537826106091959400010152697791740141164217984146509704298888252202446087215927627373993241023197768458702839285988568086188072218424286988585456578113298288040833748615963523839969326011929952703171990987791756954935891262509770119671335840935887935710484417627329806780265337502424054610932547570054957548530480841986647351094786884383668838722886937004968422359275763582930027412557203554305856343316067324259800325378374988941290916401262135048490340859957446541339676191336710221305230653125024224807984065379712194824109338583963660714812072504246498168859441765299049808420674063065567421900356245132297275978988428363799088424035238271883644610392222675225894697143717918400987198685902010706960558182691169201045076675534365258651396312573360593857144098917728572251515404775934970067976831679633768336939262531127896934299005439221184472731111757081478849245854643167135010359416210022124177852104365270757488372194223156884597110357648898405899720375598460623742960536240993414117825560457310503599147342591360133588498338484990339064721507453067054294905558594702259885014906406973031568039909817400390533393279139705778906888093579268620627435637730301977233304992500015633524110308852795258360307588629622928365966370393201797604182214492269080077540195128744430906780768433633223702541033850165882322242684237667419623633412556249090810949756613487287244726594451081141802875904430778538798819717673303920553964763137818786262085215632983595815329794920886461627708404082440074439754918304735669772988679565299429218254989154474099123552798542305823207663938679356145593684547558447097095931484974710161707442038475348720553855446941724174258366351633566431120434259824632198754387075325498132825220711985741557658453565051531682607571932441733117045170127506387702573350067807019474751239785312295595439511497985174533936030611299797885142456899727317922752521229161002843794579511202865531653963277995639435013971744325507149854770255475201135454808812724161386283607640808939255241851805079750744701872188557869381354377556854952078732410835665930528986479259172875868603396351323872805987165855355426505243948985820490016891350372172661298785825985142845341309233060596813441874995761443805677845584866371040214855124090689390638852097203221916160760129401824298543536613605450979616084466242051883210905275933975273425958372799621463499121230662847064404142923474564042251831626616722294703209564663736434013329523853675579564445332685348840984846601279842733691023862369793716721365026010432149429430543974402205217922610356162379260185980584972682263075757550789758788764688293194345384872267067377859034976472936984039337044658631777246264718061507229456864119362527532966112195566695355659838484237818378125735778674138779914028184000001520935373420764136873763135119091816161857527942469316098974281488394428815611031837626906019608670601279396944456531059664465816398712732421759675463187453863105548486189427360293672590097118625345934286720793080790917926323540039811976933940812238545735084058413134457865812669869608181027548732735946875675755671523777228728021206165868497297443110426065299839956963419841085510547619293480263334381644370353155305603927375794226334655695658502813528087769092364766426440539365616333121657085907217739173198271339240316056080074297475413758904152972214106214437658368036618535279584930680123765386723573320907693030775895256845947492082704955554533817769727385064738022542153840215276748688539516209968549584098647237031107599404044481390826093134334761703049138383646475701648906638742054031643536238184414223862540369130641678697556625007244837733421151209370993226215456048632794254219619563176557572381933527260557418418620573941376481819814504587060275108708204228227705935842502613370024406041989629543939269752531220297186640609080801688367822556175315915861732993270530723326062229049168155432075639961647013296825768391741854141702734557639165758755709556437113448050221616437968452756463593279046780421223377344858020219672236349571492150030280798937425638610844712648752131075426481189131064474907062139525994793387854004904894163559239428539305206496280824938481457385798291334050464955722058377104842031580667617606658526014710461073749543266488699072065847999590486335802844577325804236942855259598244315413527580123595337085452908519256845488666877809688915126321672791996500269339716183002055015154489790643406703913275644257453840929428898290872036145625410079383320297434787640216276191801623208266415391412295135214267413607917090413956175565642445054540415122601353011406926760754725721966168274699593107394901602432940801321906676992883156954272980198717836737355847308066703053844509942022182096785435252174647577950367917862003867518415052277726002648349168061246572365952139193950321394381753868222817678211545331469874675159097070502057263676409458765456650005719878812273535700138495305020042052381888705680348602718897879370899698326944277117788770854520969111251194520979272769643529996844933705175478487413107472583279796333354648739309889197613516716020315791655334182985282161609305808095689594324112501449545148656429066892374416486356244142107105762003151617211790198867271995124522095012470264110795581904942692755452580778538819067132692352573880326057883627174429675593486299135336845664180828771994385703421575275256506560669526324897020421244815569084671123185733901005956912673471120721723647050711924873694440969198423867026004064763051859051484034313032853199675633433101060092685649912677073852870232466145924142816781017807161627574828903395981362454517103265446661032729215144978707718782939152471999049746128261271449534045239597243580721493204160463468143241533856299707914556610879255353886013505046292646636542825968479929703103149183262566062507143893368564834135133637208445461073313175042879377767103442549066851518896581245858671834101209479615435023065479583623967277217988410740448784571457145167003966845926079852102703180187267182489690007746371767943480531243726062026160023070533052863898361324369389858236848685052155802167486606246555336182691654374023973418603413837925815060614482561719507391586995326369761792785434939777149918829171044652239539510963970884985407571397689619081083238522032858969988006083455323589102135714540888694397012747134918400972715829617384739670175040406729371938151601840342010757629201616348350889541206830489550767294882870634190628386767527322815924137444714409138805121161456762745057839945788500037286659978226166952447187623742125907834929665850898025405683368870907160843179052605954483244546489067804721690949614914269967820957155070833967875971410033320453877884752972588898619359082464438704868300658490513059092479614605667122989276639087928303291205601462688065708192387357449644148191115802114392083834046755349597521829271303618474333905710136370218012970216008597431108774707878503340556875573232544422720037256570363522948621622380405261934663166565364220928881353780987351448527507966282460523138769510151327881565365606673592218622513457908285974626274776594758958076426571676842441422076185238875529679516584490592368351462132301841385535931770709976378073361249542282473006916163261731666647727469289481830362724011238707998055715074261702900685665638133908277672337303530475511329670692502426808545475769769492044492067650547022601418733458928691502316018035267146603636559492450282845434788178313354630234022045275515820790618917621449496517519307766839344991442147991919918694801822783834066269420929915048083052383828403357997418835238661455854776451473971342905841025935659118731771684710528514235216024284814511243284198513284120917340460000217324256344534542245942256586937178761127798109995829783029193300121301938710129229570149637726704579370868409118182037434828459653530418201101018424049392029457456875442469764754578960581537627201305139959958701559819473942726183013487633238918224283114845209282190700124416394233501954648505711136794557867886889435848140969424368945177269269933793115753133050846905110237921255803037786490302168332705273984897963200582395207962574828855045351138623230082087666489101560327379998168679025002709924086652664958616061038671286965580392516942276734732904790186520553775102800754928575002265552388951381305320454159719623438339391272570313678656777297939581952413398113351433252616140071277705036708333917586547124426470918134458330674244600854743945600351169912631281752802750042659677794366674759983053545708080939829873253491566580806140610410975395197304773172501996721135196324040225461704262149303331050602838591656654201794473233803883818937797009571923955795363779521270446794066447218000783016181612470182113662546547526375077149324087508605365360644529349491468386114264788578876619049859411208131682959609507481344124865446110029638405230182738401995875160800015070077433196266824360166606031022957424654678325030973278281516354433066748210159232779267188726160845179678500243435949477434935215933146913891906958691455767223629795217314505748854093254525828987611602307034051992548189332831837798140059359541912521011470406364744722308176779873073749695996636079719341696922866501651821355979070111638652374483668584693037696769960003850436490945716087237030361516493480730406694608526506495438916331350948953938916322036426904527290005123962907223999210854680899960506660500413004037707636519664380499659924709521343061597626830814780680304916797434604450086668409105790549431557420117340954088862550600669586818716824448358857298572328836727271995388152236732892376449965542421028641598037880260471932551445616634040690610352415367440577250953381807651533695829833456232937581236060771598721594932090319068180379771675087476793121684792092540259461477823037741980276144931714747077560522022171862434054725350183669541179991696269370423863659138022747852514191903984489078407583549491048343994132249630492297004481005695766981769343036402225358300239489311428862435057825809384628801872412635526365681579603079753017532236448744658122025406423803045075440953682498808873649556681571169790344511840357225163983162196617314319772294625335528353079478631323438527106975892186055737163217995566604880055470378207879817725789164288513926406925033188128532583422596828041320374294997215875296123069272753253624356394535355403012093746948350998496194244580968643086743036141778808281973635043881277397845611978834518608750443033172752932150975626654085702555040204734336405253391213131894483141507400678526890007942829341096901299057677387501817491634642243825624930536050672805444168629760453517440202883398345865015359655998278985251459571779921960665319926026843635231896069039314459091799783788873580633877983275862082995431887937897006406502565182018019196276797147819545727338382178504215496811083376578603726634177809678383269503850762354374206705929319631269171266094234769017425673933293541601344794538840484282666338182544069825221326335165074356235847427130676050108021656284736387882602999846014414890548286854928896762453874267434890423680685942084888679021435381394064785687743981435242251946283921451059050070074002750862073821052245470905349432742459002777191501949392590651782630951323715215031052624732878462417499457544511542069120273431931033779486116656079577276439814125612886559892553818245303013024842315573303839541818458220477280137075882493822171912220011614553920590616848514842918596155180198012649145792431682878045332436106147464077165126101776593184694759607571407812412424596076733416928897081074372155804629764001442429807841056350346022895336009558798256050457140169327879792357567234629670172629913502769340808868710058043819514960201360395520276139324264441283601802221006959403504234423566129266868886886258958791957006693341633047311557703998143427666834881484272395390375199067104600458677864188991955872682847437614030108735841669447319506861538481313485690228937098242714284151328035408094503193311595439184681840638320147496020710845390107316601597311895959051585366800578045772200057486433401618644988249394742136722342831259818580969653255495288116016821224270272782414656908174005472864568656763537883849436663212877019035070482734500839866538613764049503590688784904105315809472130562379621743321562845148825663957850196584128294021863403956310134609581094539941458695323292715179572771918199826180963448580507503162281111035913029566451845589551608512504956344485626021712902246950376387078426774014539454564801352791665885017439972397554526041260503038126000469969495519571051628486979763358457832839209175837007363489285762000218841161939714544710673999107823603765261758483068936624245735894725600708871832237439915658620595852831691752293404041468318339175476197917707662017892605870872522453793410177732107252400799762465511372791722373374608164160821736890692798967082769243312434907028378574721740385577257512023606170237003922568479418222915029225566389243675520443878041860282610429123862929498328990922995527759326895806749746759659690311891401524997814684171908704790943338048581603359708535891831925837779290067401682082867642672125431387854747743491195892843674262765039559882404117725096404622316716361833788615111584913239163423198432209922709029649886310870990789063770906727073672904365726671645613761343859254419763552484368704521161959027249028091352475705055314511341420520604220757650137442728764099144425789850383448793917837299334360165505208655831708369604169918828053573190626386128247684055379287710817249935213608301646125718436244101124661212815671838497212528429616273936260350011513609929628167762349079632021074239820975771452579543689662994406526610613971564917987311443234779370921541007076125632165879938275229739638594457613977821634167576198119665577099532136545526090127134470346205176794700704854835004728050424386036099188731021276465797699685604199842434121977157739754313346263103388061784523569897263229123127234382979912333225795506614386340331971764479539198343624422629337745566850187411626015859500598045186153949181524223053208157452274634055861930548245032537087093915789643686114147554660308296057324201933867649056247826677432551285853359436567095575421446682525220783759628339580228215572364228497897575640307763576466242411375854649756047227513866986768745993975139162295805770054118773333894645936599468950035913821371150660997131370353943946183954292826551762686167870042854051799279733983620413629858227484634856845652634121531233911696208321784178859551064587378896899954525166909416094253634442276836913447112055529860748625346052861779019877050466332006918852004823466734971769224008824888530664241452811573661907441111268851483156238067832895318345064650786541213187741356555983038563077601547164459890973544679587272868198723588400371097943714933985980345593113355084209950996540075168922826604760446605218734040015540386706653722522838741934518847434916197641305883093349540504796459034219304663001664823128219061375593550978915969571640477142590883776948332809352736561086272112034083714395591801679549598592918073735375392701155028015412484345081180190550909077514782909826684631421712396650446464812080005115468471048368708645894987923232669553821298297273100357520894907084139994583887132863953243087018512281974817587824892807139969964247292735552294518812911662962104089723270532473089994084938469584086735828629754802023079742893336368515847060780120132291918520333125602773853453704622736263040345938303403037334359291470101541570299972929230905421486413859699986245585079803850126412683135435919685750674669189326614516869028679970139254810244839725468045856614744763762596694886831624004571872788237049982747029369759830988722979928711444771961160874072419421316130781872726741413516580873234739634349720037373893615877898538571703826842250792560787127369416503113772916274990176737934060992465000136920784865727412740665806579793230288481110357140230638479881388605126099424645746206258003507576636975726167819875381217620964629311826250230300802108550153737586240590633706537715057945043354899285093955707033843809814001709765385938551179299689462434776342317875962060839448055872131616361503906358227194086880340027739272050941344936671995147261509816665673518479350912807162284335909126181705638610298741426353779824808775872952101630647624133868501049003644592207417373773504566603157656485978596313121158754663277435958554011538322631405300803065689730490312158865637643664668384551702368524683606870682985431154707960900125262602024692896842826168514438540059264303633731051430222233542027831916843755867602776884710191504796956614731139575172001240421284988360875179289996087778894326138290653419530851288132656738535853174897133294455429220324965832816267281474839084129584760140586802611020390346624186444358881240579040538914387500238311152100980737389526523471396528296050820761798566488980729533906362925780212959604368738869458383257295429238554124273613523396372728280822497929342050046183655602513347002307379018349371436487678076393604311335686692603083464490382388854408051311395934369772171516367904074545236390259172666470414973704657310150312678033946346023108485959034638938949903326353319799661562938819672683745964621258583047178666717505244354727084512903158899036154261934249785811298847268292058056447012826809301918963267575774724858268010380800338055454596950403957405806817718591844463640922233636092316161027904885589425634742025561147385831248953244985859251935572565524372916097042881668797180676600338356610998096932192879629605085601215262894594940452424159610695963043909093410068994728603561238524203235272750942668232266893440317401531813352855502072080877978037773019367359259661009625512426699884748932457400589241499084712834432212528593309999735809464919850294590907419241410267528624553307991474117261982224108112479063228216556756977229171791463112445064600270559845905723829864066912784610208292197348363629294801007949805651030907342943464694545656027562411730768869611871369840760946118107831483272729597872144176409492160298903472977176599300540136165630768202919012554335847338727753928026632143014400167080379734165542069702902387716483448108972192024420601802366527803844836276898284680510698324420030128729743102942237524517347763440088586868606203489114846267837595725623814594593843367129899384702098490456382393674095370673895947184490568106844760541049252972993471513096836348757736478920896535092011343674472754103790797129052718139283227497840011041040406807439173734350696860147070748698572712301948119694036675369907757869657009237432557841976495820078577377050448834785908787050923049398845492016470491179671038685787552614513738108840777484441528001092306027708144089601440002713056591324134420582423521968220776094218066884063338498838120012116141743607742903261787724468170627674798301812250206245768148034952637914232531527267550267751596310116623113904794830630183095144606773587943074511370027881175755047098058234732621480307729723638625496531613224702628622322307621836059809792943856219348190292242581175370781211009474240310377889026753140552626608397953663700146163336544330908726917511796939387164489560724992361245250211739364376700912077953718471533067435101345320724861826541554177581614753608589080499538834291544282836579423977243618920510870493098389807150231274551425733691884324443087965645593496723193678674295829230858203596503544148773630140647844184673202763696571424992909922999645870232000823961542216427248269386924477997317326032849927627954478578947319782054595515327336820812646371471835887174320580356536170497604156197786302724991736934088042122905142277262077189772096431617246577013265523780714342967726865024229314668645553383700475435700084063008278141831469977575492051286430651086762053653598576167804952713588468516746341162386315793084545494257192967884412026465613698461188306913171523338575271713390395586764800540043675517397010817427595379792753980430588861043730616515313455812268635451334241186912116665684767162875396706933973301646156229688751196608754208391376755117308920169111927508089267366893911250124475313908191164718901007184444585681727469807840607805140087887434973691190377946253029730617797557786566162742464452537855969832122687667774255644776585048983361926095679497440000850851720997408146156590757406871030484820492675956930394602335894228363407204754742687068019966770769936924160254495517250800974497610588445081272602187834888370083947390098184509174078326841742016146789808249615280874554298525133551843488075818674809425737851731836919901880624473921349123269501070969393852028134290568189810833709216938635338028818350078232692134795669179584576875105622927025195572348592715145948597370183680967906611785716639238682172900727070873901762965822469107513672848022907301284578110683209001413831034454374992918241437645426490919848053122599923632472279765430959200245539570794278197180755557776376202663136290392202525427566187054093584595314532284613598825679185810154639402324177683228985909764522182844168950686550685006315767258736523878815647677009907454224200383739107796377384110277513714937951039189563180247193446994685731415396256797643211534726041583522938712190974685405710359628509703084545661423773580061820009562325374746833005039160168191823411096879088351232522894557695482592984522176161168206495439508757629719289449800488133481804457209269833394793859440182020210203671837552916940023205984950332068638628265218275475707782568292129647105670781612635846316439342529376228336913185694242784544941899526599233786882145708095999450917361818852064963356630419014411558936396286516942357397366113612439494515717918054606134489291418004454671654343426270881680185010175724162913138151274175018160966769324718786315716485173439061856816259694372781404073945398475056320023788860594173900242425775113834870159375252577079051927952323941354784195795358700804228614932039911527301096622547154646753961840853552889530587338271554511073869378532808468116394688501557631269887854142435545416295359488051255556788939080334905667438214482904991221859779963818365529423423981801400973739241456549523244614186298809403903608969127846556911450977822907457285729355645607171799712565815612694853376144953947221795549883907494175607138889914623761778787377018159136803493079441584057616768858894065929722004423080932303400499880122251525840171269840878182223834005783031499907711495820715126170044280954450910390257822693712762958642495335502324160391188641387653936333839229896012997422031097579729568353836099735863293274089227999951380204008587334375758438994938567421276311797198361069318707067274312671463966913281572677760939973146528937761858100226789041026491380622094811077729931287069496897202361644611012285426886622977206735654262557581363885468771232409059024254950596964652744137254690981001823718646451919265203924341063910574598777609802598543054429496095493027826989210582821073639970049627643136635977421639977592932118165091834730657326012937536188167174668462631704124826766836109078876564115015631837795329793072639997339864240014055621877751309515499852964494875628669728196816715694032219423064020203756441201059844478508388920331561802191544088912748520926078359280137836387585743110311465256346853708148716166220834051735210500650698158540673054043410409898280404769041197431262820429604613722645279582882637048170305868337550017085740669178085935664993097737893510723189416615283953860864756555080245911660546637367959454637603330542651940642112421095816143478935220128280495277805446957681904061633883580937521876527978103854852816778057776229922021734932445650762260813623526676623184198304717662396325569006906513229236375271554612720967790502148405228535719472812342473497281972434043124428316567777514419803781816793321753514376158143586433998867056544177277452664474508747997185496895201327087354426044753337184640102674759177265067768887307890203405986353166417828271960867606723221168118558359220177929124770762976914573330060360452805167004707779140839392406802886818144234175797748955520857010139087154629166125047090350871161036843166766580869842152704806109757241072687819981365311044160887394223055518476982852055593586880878624878196314772814618523756511443759781028845237208593197115327612336297252951769667406471666349452152863036180035061658556597283151940582794475176623990135825794670408602764268626064096717279486036545039236333292482527782110969226790087580970303994831834044638848421154594286203036888737885965537161605227426374263008388564631561994622808585409969593985521078988669890813591639082301194057250897493989302145908517769071212113435721455118970445673836064913370686713999774702918438870922430196821255435715272344648605152960275976986102153600356227682287357241953794609368525317552180991923632488773665642061315113599260022647670691723631210244355366640043989158792480545536639577909761199293318105561944728424480601202387041134095693654951713447188838515345163553059791579591969172368868042406826964627468498630806458237130693981974465104190038304976858170459608879194884083385035331763163595347817825671895582874380406856852981890151737675526942849412568662773139466171348064916913359910083520476692684943180117892254310060672834669333282477367574870088985582157320819609722403620029015521398355569959046882655071814315008656019730741179067403376049485104964885594521342046635969509530457928025833030326262469212728624292641862158078218150426773400275949628936431281580968552132423177247157449432162762389982171504546491534957095708860562132385195938625008888435145212125205493351049241890632864368695231856720174732552715281959258633628726420590661508452388269493915086757410505559415800241348391887146471338361278075237866580212294511582809346936719843008991537900670574594012391057657037301738790642424000284958844534243320672367533234159182408721491981991120799049125766718286860942790387960185408169624956801212910280091995669014891766784535991995504398417676609385798876557232959988291972447395989089566130544764792498790652382792231736041760424926841793251811565140709774097667590175033941711269776666718781146376761582096471812998844355514831750513151077829135830271579655685890248457034210486408156797553318722448929601820560087011773367301032558067159267570597446462493449109370389322706928361123781208552379621501235482301657148132601573408372456973595696857265269767445768961930436113996746092736176498865378441560667524144561244476322841416800944412772382401459498413609114612346047825212611167995986879774830614355432290637032869592836863422089597551754337190485205906498991838641246661693848922575343760106400701926792372889776113542207162087420527850719252039658083272981470858218086709111015956320693131600415620681894743244398102223368093177958145966508512121932331702385484091647796275150777171671880555976265386196182259887961269817693591291350167745153480109533898334944733579459179237066841634844878031782695329623420186527029845332368650172910232416791011642371511932257915524127433423750178165063413307634100924690772197975255161574622409620623218831845494276343664577930786721892890302384231438233963839984005168727978159417502338340038976271960147005164576091596329465060264356688738999475043146269374537445246081732803446718393501869315636243607693160674393544649007876649165092807767193683266217959224247616449733659785309222433645863478943814092052133578719897252714026947706047128259113382055688805202527962195112676818866845556809156119037248836590837764197258131819124169941661863667885508359883952745646430017776532315297122043415364438481727828282417744143956301049033707121989051538643551360047045802088247508095698252184132154663415854790779866641136593563167370835313639018855338420337001882878175166104039520537947671340528429501610685730642874624004968011155674464020080313907396623635459295683100056167104102142727705419865908321025241314612957229768908017919286157866409074529405286411771253918312491409433293003732443055158872198445220130967590084253238336367656953065904146339701020350833218980747563911804479163983661342472255570906402979523859515127121849849726942603572187377516486237473872966471676710955028149930638352737929645397271238350389518148339565680714311583025037117402474864550077517063391282264132659616141042150680396436444058743966880789248023508641232508869146663225635214369955355245902231922362190235515612027998098129423288296974631529117390645169949978686227365089170738881388834269420515676705296368687377798303727784144366300714873916648440627849337732213259090032363494976503268549841584312994029429967282567749950003057021356040811629158630600010546779271145927983470160753717678581370961356164865089505941382330366726351076313440442063426693777035794948616989867214920811012581959352301278889689557796196308259385168639793085179004289374734203217010704803514659751717047515342595525491445186835725003521344423129802629205599790631909035430954595499349368802493347803317143937996430607674957158257251871955303068976844400152313089986072719588859935871670344227444028111581087532906124745148148323755417678246078012508794143085101386491354318957598489534437106478856578633455732523407371907442971296335949575851308159489687665708226635429395965599429453158764628200922924935686204003375202195094139473034582036742053913318976053017224313614443956028286925667648652542740997608502431309137705073417396631233647158412490955797773358162089045256101681774677445659879005626556017960188816806383949355357759707584417027480525310088470109127418521773921313368594315869646910567587813961374016744040672210076038488655767818567964639332822434107396695528803263148404095976436541051114833926348575225139239195957191349780834725651105060929343758769348549344440678936621486858609261190896101621136746447524378513759504904413670586968504937071749965550264921347456773912053594603176462205366529834117493874252503532982049876373857385407665305944834101814968891428143114215557586236659883023947060184629941983024597390525616030558151963701688597354603133952764310076161981209680987730045144493358533563705932847754368169091353146180030616197608197645106873644959127566393256010176050827585193525376541386399932023145910026401938163688324748383127518846678793398759448769772393836631800901400685992548380515269511849259930195078385219064529260799821500818160057895370982898592494629546555345831899219006788091739492253593775134276652779711457470131052734493348719548713269602051492715754258023916694271382889027636485888041508888382128451284646881241190130207771199247254560063711737046943664395599149016826502567424627595023257812164263890429090397159723830946531395324655423046398338738037655176827373195189204326760030998417078396333990713382284665300902374089103085716831315928699683734720876522337005967595523247905271870142498783603837086112821473373226871734100360217977124213011373403899063667764778148817136569874255027347002462560588281502830708394782578608007865218396901201844238307589287402439539979717151818291495967723407703134260373306564079734845427406668753747587277279076989299862322755047947730659149241806840051703002389186090553037615766914574796599675019580532074124368083301461513323858811638499967320794533789719031576981705645923392918536319435055265803507880844104059015100728437629223329251611499138047122142463781610605711580172738910734402536038508746613698922927908011522715300353930903582440693886394898372191505523879532379015840886707361101488134423288346684663611065653239606999540144278414986256170758712649399224111015975172473752888683209193767516107720301242272072855835087314357178080605974125247719849538625460649094208014156859774544224489148912726949109385180992602433491290891900536847586376248496661939845190989179606426435101038533102582300627789776694157956975962891979756033435174336164564891252944587183045853568459556892825541019803956876726729942182471335324125797641865872045572202211759984923717557274092972468365207125080966184385367312585960647542785760992002746944484671583093870491494691009674229463670116750838893170052704103822069465179238058234297209717141296492865783221428443377036797833203719035259891830855733779117285282574135284824442845040090951072176638479276354625429985759918793034493963569944852171409487120492994933464733848365602687310076497474479142056111716811691629101801727748307458620405701410144917310784628131796578935131407720423590684695194032750407129621933891481793045967430603663118494026690963065786438557714737944526375092000383640858361577141404170973112047846438527640034263990108103864679851895895995802771511019965808551651989750557968930225190783155244231640931010023188402351652798925807859687531983509996451890477773282659910006401940579940492379500844424426685649161023092064948429549100512783425962170993476716970352725616731226668906677759950903665526516511148326388313236236929437156103758787090222799246068959775307454584501030924945109877821617812730663539088632461156850168609188449211432124138607799582927411789789541595267221321095272086701480460107031610779687576181591111840045042940650738074679263161107985459991746933872592346679118153988929288621240054584367643496294972671108740055117261781512297136349247220761602097090671141753510760119364241515418915125308984184118991038256373083839787729361435480930007612266240316634921435073020833893077418214736286461810231767890002439246944695243979749830798747525534796626542008362002462778202202527824211925406810395328449515042152210850394899328490811854307196544436289463970365436782935757110354876817458496351937642665025288208147021453781178569673241990783617012242258754887972770112294514899133993762016587721383188234097316295733931487226836660324445999194584673062009306027588292670388865915090432581100678679096153453908300070419913204205731856823321386142928003492562758475372383153798742181712126499480864768761204945590831237795064980529118700803667362386124798591821303444466345497432004427330316277433591347132124436702156506225658691538677750661128971619119120647124617309718475897654187056481763668915044346671684881763911745472631523373777323237243583214399302069845269142401265540232515240238789524369479947072140615642019005156838716090442622687507618769353643932869981673443015106028913359668723896826607158887660069005293124008838137161210166243947049299337368268360749137136392349416408209304015573850067249403741590735834375288386049132904571536003114835828618140046971943138839975658719982407864597659650575834247044781775805500790289398155056097283272725612312708462919597581762669013221640753777668694635773596494628254855396390428921775011130403075995036405178096656114170299995368463690108226822317825062212894376677909569278210538138828568995743956503232154912035138677524389014664759183130486494345241757804248607969689307424326990413111734024988124972632869085427592916399165994458866161459832136144904260800967967684187971614624387987716792162443751727420134782797276945242916551821868387225792805027676771252471283349861394222471820926740714339803113306585336710369663957987550118304684338257741514237948871714077082275802992019941683703765187335531147804227164814532217690374682631110355040319141877719341427499893557148159163933985638397085404991135988632338148596051144036066785185408413694390009890428371305183763325130438117874721644006257874286919953455412511376785568760586629329757075837274154430188869711794325720618991633754361071069801984441377953583551323642102783973976513795116596435922969268679010515676454325327525520618962490751526198476298714523242374130980151857699988571444325905164085497101499134676114016558275957083080871894776551008872988984905839333497724183909477295615666784362766527767481410793112353407676243268517641981556797401644840328818094395039491836590699197491708299845739464514668459369972847438172403058786472044367463085233993219079759315770370489473702721462986167653286826384888349143140700467527734972484534556249781993023926701766296541397513660459458069472490373537141596022736829682799861105732678300666038742162096421402778248318444385752081317270854232182385583617055086501762184431319496350084118505855940718816145657190287386364509313518343884159194547127044721832938538202974706158542657918109949233841245569029983444558903915052333108124880459942757250193206483180108634622068746289343003667389548029263866128089636432659427170743846522573905519805620803463889636362010725205644394605973541367813286896202768054234924438803706327035666547542894179369954686466882892081709513171284920247807434687435309110675099382169692494039019003886527083396143070793560656067334668090482565382254726439513687892681467497014066281123655454303267100261194577990347673195075937241157220517785341765547044842520497490123849713148016521010196671726596256267463422092883183547684361278043069840605558775589090489802373860039407619371222931027147871995421558834286302337974686225402707559691411906231974102771713112108372466018913189231811367706261202942319741298699047437499350053573156252745973032764551224493689218240958679444295287647444481692748424146693139297063406711597584318279634220105627993970671386540501036100822837479682320492203679944559436241310315852316366401129961996431943709431687813176280080804692063814712642011370725861673092969967714972890373859097147373798848528354104737302431957708702726433403809009302455739380479323150651625762110550894119912832816684554229716238784084967410238073481951302458207337950295463580998109336049417203081332230206182369408363290333577336267722318197032892548649745501303015353622891879263665131794134373719023888766068591455520364796948697461539258371755430352272613557920976060177982000195020710848746888000476219667251312004580106579607107274976796334757309901453105731386474953069117183497261295160746281290786094441076022818494928403426132909715920679865823882267057416914864510161896836221975853794863942357481002440703964860476188496345943155665734509426780851383539848844477071077337410974670674818117722337984625605523161021821616501240449079139951236627810795967176421718399950563997778557204750003739951356839134640016787047018535860599928952964125696332872364276591878471961774197864511667961983227269479119574636124490815027489748959300030050369749340677837968362638496080994165959781571138455774989638565381206696882797560727730749373335330437473934470513646525231803468563847969704636541661922759117403086559905305061236665132179445182482870316448385781080234286213398714307172749560712526048144662817376688721764459655399561563343863142067459404080623214358463810490281834325322402175316316189158986828492277367131534287456852196193747184373531837233429391817505281536159854757594448401702085122273204757157090659991438976801305167822806020596622622399507141530186935780185323851902837077510043430225667959373319772844439788009456737552404524159785607230457230033782278312232430487387000536589684223618553101811725432348700065418727450887695748150148703552533038278899888833555990248010295533308472352740497174678784457767993961465128378540626622511401174617419145752631443638263976093317930499570549446387823479480471348612895244304510259162774648795169737364142364936539178812061507263372506747416819256530134167160116569579444147307616749755123265315160330892451060095500092993933289607240441293255517687324414930791956007116869481241520192716713950420248044315933303023784229886337622457670600443345882612717007089773946808621759146221793627774811496819345063421317863653708103063601573816457984461110427219396317438952361002110569221729613797506348870311188532930110722506552465769529228206717000675926103037335702988737043195217548520217490390424282981842667559489812497320303031854634465188548388769792834085161025498151345576627109667458639283869165574766998922661912114126747930731247428148585851987080255293701720966955618591306630215912213295745110709027321511528775540766929959204852425021726254010562176539399476107257021686751594853727849422280332811533948463321504491618115703148492769965701911318395878566300269788195268356722993041642297597038804426226686360921328687087832882463851467168011392423269419515828351463208095765137560386348675236623280919735343887009397180209296003849663397697389770587271061207100237705975090243731212606743003710932516280239321443468062398447378711738800355823680310508830880297479181683019651299322126596061013147050057891526357259117835392049338926328539476385655813366761495356042423131262685418941388012975435528671246158945250038284516325507933358121293505261388675654871576698784112686707895423866546188411138288634419354532675515652045770021748622948600597044806743935752112547556390110688712233569102732078831877541669649769349571637452355230513442436388026476829790074686391885986853676390539958850775112797272787802585291717225359325154563514316079848881910952876849608088627423565157051051087997565268966927329643516731832793743721489610569697393187817900445320301830222054810038228964348218121021024133143674756673496215181868301984789195137850761484055275388946728519274131675311658693018408372263029095258808806106946787915655589318492146726817033688304041064019467420064485437842600854718550456686725104234559911158632825416563307608054145526485022255373280181665507698336608839015261633182231136675665734657962080012471660054491705476167138974300520293659469429982410497441076286800351116259122518704051350273421712550188293627817018253340625624301307333115611749581977035464857372148533191474666566603916480544021726003763773442538646685687414364932427487321906729195684106663057876935488272639755990742346746782029108114766656860518091448531329912316763742783059454282736960450262528987714153582969339275604560802176548843806028412407973600556373995971360944409974824686553536261837777086897084350197323822711198281660889780518726382206984065090058863187230335319539256351282578279085134167401062173637224166933397448869607226391494762832238120711609543910750891551794408053221409602600186832456233029714576216832594968772932109423550169814449154840648755956810286484939565404192845311447060732118947621079926055066438570058993992284109660496647675029886658802322496727034384500637051059423604672520137665834799760937465228927118353281730550398763146798231277353778787050837513528811390175656623924751676417346210677103852320552628287618004552059356960754056532690589638951659502616043115709750682886051028416723494783662467728417221199188756919401294054400051152931345230438331842610646984362000169309945990302061739898518664450731355271413309016080727781259854158119715968316360191220881288183792946505444339263393698185427119781585456593511881014154209479694366615799311409346345467306452983407376592886919778522246147256141281803559176020808547095694051462732513576378664597273498255800742258917537157468435103423434920765610550531349269896209252141882139133191954218328946581209668495996308141545979657548784409505266324354715414762975741432597668138498023571452557251589314083877223884513070127825814246440679723618862728946947983767449804268104244751083721513545863980688049756216586196359668128630259461044065119090524698639305193833213238966270892614241133125567570107123575499137593552058802823932223432819087983107371735159971968334496614427341715372620601158872401314318392921052328260979602471959764437680252577219980007175835301137646710573820593059124435783871201886596460875560425576707831960716444139328379884674626948463301421847169773006722265154306590111505905385071714858777820379569941561555821956737880525354051479338682713780061132340018688526937941163365525691531335686585084912356111286546192801114768898109718839449883937482443207644471258279886313925937431654128915235644798796711386407472293881845324962597247663734212795935760050800186257090730153377948116317402569415075460807267522813027021162180159251728297565898398034806370612255621142028399617341428327882865946531369441931842813989678410530273878383070953824489974258649387971426188216247347134038844171710398503908248149561182216405471932019962800561033365348483928486569596190248825920947012209049618632803716500695183223105883824386987182451409432897388215781271128690512161243844740807611801855263278158037415512261784833053369076624097049829834217526072292056932474880655279679409598616018106788133654375963328706320783867058026228373235028348466236290786801132790013451072151575476372612122434967412495016965356150401636563343600778392399761496808233554528707879100367588830877812566205792520693667514850452410082217899978629209729492911395214093982289046694243027630152628726717242319950531387172950082391090213283325494019548618035524127932747078031586588717292964788397486205091659381737114483022773980209600978638222258182924239233719392273701926085156239185827437790756073941890037470585255949717406969042827361607184033582400096392608444665787454813418664991144543433543043641197568905600036990276783644603985099377676658646135224787855740807839928049757203427144810807648615926795936700449876512784592631245040241532030854091446460927498394194778323167473576796155088298053731245571575534360062468782465937446744603284616266519843997779747187901019078763087261551353087799130699445704318993553503227801145726299735943542608300412783515497228784828792951107252273090549620836547287823806673634532508372585316612293169229502004134655102924894059602881201811363998657725071506176648393415623067293763621303834982829213183906222759158775181627863152039789244105431144593304202315120953778495274569876348465604146867709549878091054414699908400585146645978857127380474817734874645128778412284582959292703369720706525309176633746016791533375209969602772422710609012418739248190208382095186767526046753709853263190641164241082963990464849446732020627730909335028706942101959145771459276851414740015161329144123553301717158453406478513756290321483323817867941971594139732432174006227913239926182813686217108014873876028706394338544233327205148427877374898119280167116866694922234031532429488537221496944354698102516159441016045610857374224692475079929593038575710023229196959786005388045498018221677003886109899113054584280492263005336490353055545835982093743807559043298064795939092425912120847761032727929013549395006827814712051312686889382711556195426860740136343729559852155912142995618806023396066213097957981565985230842793111657206713771414738892408204623109806707814526478357351221711164470523354484411133823937057509404152628505807762876175136314604533112132740061446058408431539626839011539096037513424634971927250754813870814091571019064552904281454131198520977234190898766399955461839850743430423332813018066522579279618796444894503742502139147214291047257046443321379050935280608694643546253719530499530217932168614338600106224476307303588532291949891260600492801015798530703250732426422032569286117444877680353838117872072289471380880507769383373416462624591762998561416301674996234213738009287649850240103520107990550624867847740182840365945329636829552880301140908093688213653626626920734467277258209853979785721435369109770351677425174920017464995786205424574971765532203702651438938734345030358967986676177903027406029205842509130005395558102712130827817554430768724948553151773933850196451800712508710455439466437372366667750466673865314940910186492091688216057413054512363276553182086922355982380303159254283778806309730625003526140194002398445508457603196436605598948727919579358960992723623589648213133575050117349448757788030322482086456628380568575223900096839655664947064358747254170308109600521810897149881271628882679505140410272861189089355631432793682880021607631538687026897691908992012581098568094856357248965384340400483025157486794336202529255333187278178710705322960446702312800603246418163100083409711849781029163943365696358728812757293010511665800160982181527852981819539643812911745804783975815206420013523630593568032451595126818763932072120943302797814629018475950531326704917546306470607219718575380324935958335193060186944332667456310061618165193797597429153963797957031334944513858125515078994474806659572865715889528698088713072627221629597927720704671044441602961656105746801986553911731040106210714977117342232755450321510548166715229914215265504653770492386700179295108796600780476518592094115930511624995819965470910416632230592578959441789632600521473862535666610014310762847354162462221781736127534575334079758278034118825554214538640187216829178675323735707613363023611560182908535054072926762806898953009925640742326044564397294290684292067080436228735385508664297638972119447107992152013225026918133414851261162790328710543929822610245232570815883934069591898009741456877720325463812371887463917958458711130400550303164283299315714263610413288768635848291972530276303607014774050475310686447859768394707542330018430989076796152953278448101839591307711200600726746487940749764853493407136679689573785006408783074061375465130537492849006438424449842792863759145693197372212467760980330512687932297688301388941678764829001101862736181706392665653913529926497427183497601097294049426460010757551870688582364207803323134897677201112536671427619704624958671665210748537815159896471637292559015951722485251255109665196309995506637861761488956104375224846472575267682733823502839004727256770545127563179015213855847390585264587481462184842480152626058517942306181659211601264337590510572782293607117844970652880677049340713879768142908089070521291758954760304606533593010405269520554137880394366246738283441615857887985026772533960036512989462903753557931434513639509360031155108802687689657452948040509656374842416748370695938898517336005882438441891362670720728844158960796235691996132585654236130173233991459131096303180124410682298166998869702072494413384751739180369563226695147390486606154342091392303014442993706485122570224537971192004193266340601593115703739239864746337956548379577930006839999130543759797254770133859888491180609885326742557373151083148704591921599069928023404383165348885974542379888754447549254382761082822902057007892124687464497475067418591229468414557680399241685996580280671767226530665585597710775020248139353506147757442271303465505643100174673571122959212159820311045288588018879005706394958336998727767723513568858164982270166881206778328477896611706371616919815382505962884874649033819663234346943751638004496194386063605530788829091805948400147130857738263808944707681189631774351402786025576833510684140081260391453192809742959494520601214786279399249249052600109209817679877911097662757525990881667375103651324354900770368924180046809035883561323102939840403027921949321292002869979809635029569003061601464890373716145751454073987518269075941698766001057019512131393458124952066007346662251202766520703322117885462893043796590458379273242813238667245719254040511231367202192731894321859783270968174207383171984668628187074360864612898877951043878149131870662100369196876665538724350093553863078772525657274476576668454223218312147851171725527185241275347148818973819249075540616542102379770319385113210552075698014773409073620067042644307378934142791393936900685164339098097968547550739985269765192384161162001876423194289659720658641532989133923268538401911186633237354581091309072099206480986132631285687356000225052675610525315471821352591560491020072361890260761848585605460643003631176560632635442698253028392548745926123426287126333704687908259132044407074399270851738335011242545779225161150178621940077457852896731591727107786836183850167121547005092578456182678254046356914522609678956217866311111615824851244894002807500242266299144869228841901629671072712582081080042574059733810360467006810354878097632844499979985111931174607105631520974914429704902092798017528969277030389388058265878352131450378047091189202267818596428551485696847333072045444746079452611756514718184508461251434854529000180571345349416609494336098704222928169511363504974979541035770573328093166409667826347308745035996157991479806334398237134456324882754572893145819194777479363910910000966051676196840450588310525184637056865387268346675411777615117426848695751218206152766102007391764595924885969408438717200923591486543409144643209425122898540043942492125017815266988125933531357949234777850191346895519745112689541684544407793257281209226025490795142407583797231898465551380653054758875792885135394170643182509926245981956083731626723038269470139995381840910030366259660849354695493768652360052186352621746247651023249871699539216953000200925066902750186103396889226038323873852034840975392683074023621587164473705147311601960384944804484879180208909123026402077476172932161199007054084431572600011482027644822056807539576267145927459197532243753457759392802033863791425011383626231247107525271181199505586407622278432835791373018595140442728980365898285764194475049478544470236020098872642793320956573257191666000618653364656510013788816294065642947087651167353063269100214095878932304099230388279661099040115521864915818292195337797181828933762768079413438484045842571801513389376368554915087553813983865302895985465142260813677590318610865884848439944187302103464649803791351289584805883198424636387409325776486144482720482323536993641282469464121093634970599498451676109170691387143870129106403969013022356131889818641513587973734044146934899831687817258830029369877786481073845237782322484565194318814355021132424322868392803041981812648332523643461532805249162902588650893114452512497588469084134582716148422072401196700528162012305996348433973747525744477042448712089173957871892045673405821571210132745104630080782810314376109728781254346394852619609007459635708413927682907466154557719085439515140927670478655544248963854135596302564650552943116598892496412794520200194927726270873412666384428159773543493852488395506105877134744353990267140957823665942522603104844034040011966488648071608969651284400615872425360941359730903757166828795040072553629339827660262959432919087551312729038759930089311720839259967473847018866196389673355480161977371849897661793613066017414662513723276834437532971379581357237960168966789923401648683555604682703339773068428698704171751348140928530704284461341318724967807994509236474814703237340231863179822203498103564031786192774559500754441512512112197845366215405549049620824448837781150473659017176952605073834036824022666273383752847908999663229179571129475821220922295910305884515907332788925606911936473986318582363325346217883898246447747855385122149280210275175859614194030234620998734336630725561071296909811791473104670529652343960630069153058618281874688072112149391718045144858136765992671232595887068392377103658756380355886756686323845140960420629435105134669018688627637017557739885787803671046813642956787743797352568073511785121690531530226656659197648032234992829918807275131680910843177151451903742457270295669290327387915787507414732988859765512644497146004162343527875757981558405485911742812369036013276980831385174972439192253163543555397799981044800202012708730763071341746534859509381839512687259626901683807761175091029841703395004031010641186127690272091937287236103177146721879594883560382179486838854867407556311580125847061753135292486941374523446990181340069273377777359480357208448567640607624326339572678248547388597600737238211022326264983228251104563039727993611189367716783933061935755260373242663640528630880212545550901870190304614094961262924512766168832614123743472993999243596291927991714627546529627084764115975026776746839159443461867481104702074748918007980912008713337472793401456334574309033223394468948937590370936105343588020853065250356397134476889193158116909378136818012907957034888348988721318989609889055735819237464444801245015808853955201548873781821099195368845522768117368387925550236163634085799555363213353416641226647004941427611670097993473188513321210624627029380371093335234439547468275934456434149018680375254056091262682474572837357270855112253487286970242280938441055883763892335363886133960500075450454801887865924123441241452974988752707179092895951981264727228902914753019521033639611363347547283559486020676594822011922949236691706009516163079734572608978558510852821948527576374099008812932334044593490855969824885306247359924890041649444257733817853779076516799445425735529106396651546933310323768377430693104358690969701260351508113311208161983277787498597800047799532795300107728575898599362019805871333067481853958259867345003413165634579439597659929210490900225824473013706753663679011634698516348583665774496296030071885340334941235355654847565894353195169315755705633865399534787837358647686611754834740082001891602204954471270542340830316421352586658412508914695504028088769786823041775775617059382280427609933964898290420989274175555813059286855147569652841168127351751596924156853124750150380873720688359866586677975988338962419002960154305589916843386929150805680953230672184248639261170859454779635818777641061972930241729036954112430996447312713576705513794711708751814254241748979427016028855910688512818592213837994140800039364766683412318932083630755350108406750479434027533420927317493979091100387408728604130817952353869648594809004807401848949725555648593230270253512538625763954281642687776731868448061867474652074085894273388368895118814503749942176605880457563885893603059727647382336898467575266195017691952224627324989267921621622717995456444842302418476325807769088215563547413903186415393961799692921380083758223899559650512902672311023320051783005133713920294034133908318793733629927010561152781473089154076419231620192193551781803773989118028115687416058346481772854680946763182980779201865476909681423827356017815198198649012724301097828848174799374161597318541011817736090899398859808814392914140932928900018748388525964502211545971557206996313862695613902934150684848417145304622520199020973914138591591134380746536407273910647351714043316167998562881763218629067956756524170914727499068448324028251482132610635054797454394721119703185166052000516723426963244650048390867158923980848345641983362379932830717462886604991877113162188629185352669781010486600140555173788296098431619434372982102341984260145669322692423172967219790563710409563017614126144547371569334017686554005107194946192037655888841788992905713072948358041118870426885121450473305944736331656896585314881966190537982676218724988133473912890186419323485695739606089928302152357333478398393533461671810764130767184577886897992993548701466131434765285885543085034433648383587717538543612321247975209066292024412753949098569075686875067669429695147291409270332665866107081828740295740946437854481264558570483756421200646296650719533899775996759044952024157112333317659557776946809406167611935762638732416611163153163783447021417444049767619949644375396256753617239609798672261073901401266216726991667649123576028870392331079476356802307239258267846786079217060709540026000886857806662169957136826028866014648254829861445562408747436095364164370450543419186672153438402127016927717298197390062353686765040058163390909747031023603049294542128197324505989244112305551219064699615616547055440640245540391078802889737542420413749767593078687139785277318850042553492241161092102230160584971810231260123561044934227196256190402212268719505742714985347262669026922365761900372244790028448133856610417043375533066912867737829481918345991710076118816280033407600016710248292224194285986375790763278125611478953202394971869958996775169252809055773307119798838825794547838477444360120515061590625812520347797078334552907913825179175834797934679431112846230487448771184541192894152753799157138707487030042929563479281535198633514343714337498841411428014109717780164827277666660130734746072163680565632600637145884263794966260794920349216315458581166160908887777576124372318415594862547506541264439076328800103772488120180045151882064276223018632611072435492312491507009855047480197243133677599842704395745967291485841160918759985403595556345049953789664166657555536764033405034678563945182534896872399652879553990166626280516116723349573943518421018626697926687971901240698958958419664476410323038011747910642653331452751672759225662488543731089054218107922937696840351494002274724759726686043036142930228228638089430743136359357419077502046255842623318738639264238573380093594620440892896833036122667741940158579234031142147583212527988441586216061732334962051285072825886268281189071798183922940451349604198733426841414203969316038878885239492688036825259326962043285916848330068022907213883178698093895950019801109339073405075895699372533204038156312849037081992774488803127524829960919592126900669191739307508800243894389267478376205804298402643443225358905982444954997228830250419357393955720638652628280693243840905825140459457059660053008949508442727808500076645204466640517838721941712502348645845587510343355384474073018141261430999714809053669020961569425802835716533605425017316680545503905286168502959009277103437895318792653340616227213024704042353013853952900092221125954019211995353083954810397229277186943583047438344172519504805379160689194340052969137933363217510403576243703122527174963423127228697570428671524224264263642615542516933498585684118237745159606167900350839426992383044060645834834924437354633001829324096462883675592854545755972917814078132856707819125855599869421159326681534428630021228618324723357277811449209746970375564855851183910382177699229192544990779215980580645820695918776371544680737491050994739665801725573659345229113953732538236088860117984516157490945203910959907799796462569330782382431516623299081438687473176866900826832820116488557911686155143718327357923874086354118174774917551720419976324509848853880153873422711875705896146766676601440862884403305782997152073023128272934108295823375492482050242671486358149466150110311900044780870191226298139749226493105494349056933598846817395465646030592320891542288922724393945570168016707570562474666590493279570141132953550592425915058221623298754746360064323114038355164369450385806704394785128779156130173116236166574970264266670965039605067234471864008992141604759466552070030811426535054862584304188925086584919996947402472942090897185529153794082863080246579627555249686533753383729525767363833090648991923224863011490722528556920886483831074357349097414295714192544846781901348042077962488609968021570389140470187635133830707227527462404312138469084926888810323349750493334568514705675535682032007062867746710932769023588573419786535536744966026669757922380443281162041534982312594284089577501991585972820201801108165449951186584571841587187675954392754805795021584753026743438005672287474210911425954521693979220743994982409319144732705707784532729914584261671192856194967482863394103459315266585675000548597861416732849296963523552122315831055966934592381504694993076896210157776314660167655429667728687973551933660838461055209576940959343693818611223175511728991513388512195767962787835886020539934668007297445251986883146706645402568470725416987502029606000012482910349709627959681692539191324849455050983036757219662059532275886463831366851232889299047645100133246639693962454950765921777229859679691365966092919274249392824864978602467848676313713419095923623719407588877339319724316402088384682855967920300548312337157442959614820309056641040741826938635442952480509971730651159497868121978091328421059076023969704491815853092254232465863484072165590955272620413347876839151864434684851123726809180720095268405622599173213126038570267772274423163953903591464571214513322040065986983606008168500348420685969889949812868141953285301504152393609334735030115200404015546164303610679960777962012220842079566698333422891610643980557356040743643791493762949575970647965095534093119889249549538206481139363989255033725424583351522393778146191555004270294574232267305985296642379992287846404938361473302248437922702974773104362620449747116742524434472069031175571919866349100853134795140994019401131289781343231567176881963010495007187742604393552366564508473476314546112765428177892223656051714539294221137739205955106204021464416828988428159259268898337014203366094868396394696646844203492647758914646020985424409783432591230037087916670634559249367493112782218047698356613405638665847954336229968273211625878882790828557428739484307702392907369719562179723322521920840513887495163293826401756847507350384871477585165395183444541717029605075785125630099861983561591523061228553794667550807589453395283318753763746628839357890746641013320606896976223078693350758097476980960333258063924368962400271036137152056041762124703362390621779584865003579119859774359320545895351678281681182889940968109781489522572338807157024840446170138792482075212847887246162166453678375428477481291002926936340018448036099689579952165536488341101863068189396739237019090527021402320935670769480537296045515165911591184330205233175536988148922828322663309752271473009832501552389542394922241540311052375325393665690426283375512613070819973766245540734483773099472858078953361346512978560578935565127461601363936569551509933967993650503150020005334905618888753214110640018571819355741000863304677666620283682128314830952513719516438214808585627506245021734823834160677242730570728601622575269509955788512383106029263698446647211516730686623808310883527408579779685999872984973673306108870847246700059909802085382451664358088498091028810181893115370049967896818339803620077964542778835761267004382264194878490433142808372592589506220290810790080488854755016787762988967172282713822887119626907234126946737695454595529224694083212901802588029397754826845659507908476786090298772254486369926449864272575520775341657427817144054364783265314668779839413990788414290003197162436693216535877232053674456115073001834030597380457348152168938472440158012045277297177207653889630804067867470706422268253794637006990176746813460609307304954900730887969152608671465730047247122524841009638530745925375570184410520896035335536728899552392881826702492987690473229394742203695980647296998033551817061955127429309018118676907178942789713095680003758012495722657721958370883973595713289694602491462010497731984946079572745326307860937775736622403169308457809861535807225551825066433293233326151657585783589634839071273132268673939174048525613802341805853398527945034733388229105783251728077891583591643726996053668247410306208776836192819148564456781385534436892364796911620788681149626844778801489018500261196846864207467378477860917139696773040374041816135062748861644571506948277367306575275038385248670942176051327263082522895976129648904479032658556032364940195653168739215442549726689336357417511921126738702647614833496769546019801652444105197414062288482864367122723445713662001863784083567274228568898838114473382681146222702654115220204017747216242482069677417736551289202512552702754781320669894720916585522499112982974474869121560371450106813431423741038813447558611419767365838140525380817364750764385505962133472393432421037556390765163735895581346368256972892452336141640994007348275809838798932615951563872699802083446321034638785707987536605244189319737412452277028094282273281657893917054762615611177713103557100161923133784479997394418074807812863395006011443433144268669116904483218822832101480019238309482077012921640871382563430720290966256217166544183709814790965749055638664559281434837601656478711249387075881478442870104861960461323382788456735534301297183469353801560020295800158068886854573299254071755236585904469410378071824036220190101467596212645826871657003602151697688109256989948283327041916170678183785899808369258461177999430541403406107622163810794077442487940086107261670152850225278243600151068168393425633236072564711170370987517644713504551322692483834970398535355792616792547285558356917435543236099048672050956142265391650549105058443787937562194560553953216997147586264805633476441678071889029209765885113185296145872208939268322416456060587121504727615872674411206044784097976524882366532343687519627514642298004638986306739910248029413349103038473456696422323763015617104586058376486705900029727173730509835062549063653093732105201202230501041367266295398122975869807033750260024508730891026137975342534781519779253800947339422586542151074511476022499579970474873314626412854514804156790370141122162806950670600249807566042535318561312666156032568440950791352577094151607549477204728139914515788658786616156772653918695910140848184002325681540609658294641253030853879167504129131981453403360474991169217303346962664001207208229720625513008964589270385243787208990358149111534498798124717399675539747369594875929099098470370172447588877205511250900932594806198151172035696982960884367125498712182449878695947256960786917424005111420920646924837630708851755947684636205731520263301924575126688283405305603320248282159609861964613187640470532705309463288171624264905109790987423623616771126877664847938636425087041983292157562034362218377584948445068937686485439236836460846925236352240017675658811622607914142840519276176969252551019707252979246196889574018248282595509574418570634398018994271789100650885924134212701263122220329205159504267364777752010168199174303762189700017398832493681500716013451304514370067538151916636544970047726077856524283414660867729569505023990592924492852850013420912240429273175080040586949876847803696927916782058709389779654452984580701181370182268862437558236002668534176076771589169851156844644239126532848523971291298359852837845455078526237479643093315544466145199931078280277642196818657432340017349200762473921188161661404537167790274361245444488806766124743204054708750681412594099343219877796145601628063370044889902195378135755184971167517005262897905928117765008904163753170441330525558861204815331468757702812984431501084417263632852380904669168595557229513335496148282565876994627952460926532294124175208539054000663758983982820651466838818196739126938425596743413804695849480039032869666720273939768750463421609635078398002750807777758767847812326391907834283864218302254467738377789957689783337213326519905781464336724890409633439995992506627593985969566821897303875796576245052743393319621759445889549998347371762870122886507158174491269387751753506248785176479983699391758728444498034196624603750430636644233063033528064130484858883785222615571930664347318825056577416883785634303167440496562176717594025740224730404256647074861848267695299459830646319165664478146890387260381038869504772994070324452917041291562836042428398521879782421046884392164408691239570121224838837784827312620297514378125548484321607762378846268736861143047565317878197018507247618926541106128526003985781802150379300442738406854128616079883011971651035854793995172908979922833938588529055167568650665748033533444300618156773090823712350665558754335311071234318363877373653560577485343098706002835700571633899891718650093945009729228882697584237519183228697967831253187884425706641154589574224854925543609672308875276500901373678573614948703759711396970813163906288486503448648218019870048992144835253599024672264423715067804178844031819645142168100367977185081213759514986056578054000137075375814762736387210513603198794705551839083262051794792478004751436233928095768991376834156878935720630644668382956440587601013758771885873630141155708717660130016268934145491939942934038291571937415796205680719566929606187169146650800340962556538319223768455094924427067483770459681492624748717041632414011571058954191461432158654387785542952110394022746751197713042501893839476058809662797558841738893627119848315762556925693011415399800019856576660093563022427217851839663713326707992938190694509136535894586197088117878020129213564468523952729813325573005255258939553459681211403695476806992897191348540168330771674447452080893874222705536196057537909627235244419459231012481101534098531385682855130052420022484988337031843794953979180972849718274591021315301905201027671109717429737347780657467438331770167720945514589455100089847843121148971008619679701018498552796032421588535053282653347657467518859355311290895738351600633058622982863190756924603209569773207014023006298244681788063741254578010697439061205345560852629451240598593836043833920770054204310731167852201792940111210386390697705430709019615404618601187219780751086427293416089980537790926598034039899181948816785687056495068272653525627963370970069368421919380928247180701633826065913721529695961852324577141030817853395901641319409246015088342127690672732611832134136570451949955175816710267281644931454051412228296063311483888089830281821848093493044094162156200594481954738408856576710502317580759118590699266984489366415254005325286565890836677786574504490325886505249025134648795537305814815725463861721627499558344936432110758373498172164167172249083568656920412707392579653743683853255649938974867882151591088153787362594226777686367915438273825214675748696838193186984500519321763155629692303744090944064731830659755436522133271025811907508170093030905856192409557298592217325816188806278864861931284781479596552245451405114110692043096116970817316737951355138194380904061770646445338368359944061395332330000714692083018114866232030032055100213899122431560815490220529645015262497700384822164728304281010107417541357519837812143307124328997093190660281299309648655134988929487329137856714648878756494594288312476243400256203373428052649406062344170762401269492101057214986534336688088117443503889303648680605798236729280867631589885049737007149820087945462440700099039763196442859398107137096106372684003800413505288045189558469441168551881889731706957079530987478285944264976922632179580368468390017453751056436337840975793475306767404780070791935620231661316682601611691537702372969822827090062088213283733028466764538525609871716897519954861829984473205941346135184152798492432483497765148449737154387716534777556373579293570094369873485408135155341438354227726155978239816113257221871675089099947523196663137553088801140936264101959242435261398609956789985261557688136749790465816829471540685226071333097184486932619413084162938022275927383308596685846914783308087995219392417036474386108479261815270136732000082618165223997105070388035876592970197069072065462665123370322905690098943107405270039629759116685491666382529046782451759256961595559817871313604383102998431864150788197557434245252758206296971381222184613700386971908252452472510191591961471350938532749570265427429064459532932816657796723366781702682316162361965090246266285126393070768041447926877291351897427490399945423938050891622556633766043987857050730802720361908257180835854711548969863877618205873548396652952726844084690827885044115634285789717510810159658970472600435522089600840489708809261468647740746468485182217426000958636354713922216042946216439628879050185525546419624270301054760521588308886132828398000431557364182022309243330204982464390812233930397584953371031814545471806259685754699590086803994848211422355357384948811421460956819433295856796113685680390978821632555591533544402308389649377575218744708777737910462309609408369265786835151947003321886780809937027032655490101791147982432009635930558886429128605185554913738621189486343461604082093865297982688455333522662740830289337359518358098905283122529879444439403491772174263798464878174056976396902819080116728967932563583310042878984532502658531276112460560181279513291157319067160531139316219030718731043232631623109242262156199209696829481661027447096513230488788737275615059022636442086833655312602726005201924549604457925617064817640637253932014142981585790813432810911917314391693551888149379810984299072328992768712173389802635401569948606520740210177700869395342332091477230306833550409660152988731666817597820219309165187618810121604856773659013390854418978208731091880320663356608079629092723020365679975999033110240272893454226645215995331518936224965898635649673678889629559313126633044509300496674149064813267542909714353551812433525681177465247492088832663534851470705620835914348997021238927990682886028438483465520470030852491351565747629972488321862426080138644633085027955626723456488651030389467530786228890514133969017020262748838955765463084996354216788503509397578466813470184159959805760342210557853165166980007822498248416274563045449975629307832787365499117775766683726088934470838658460981876594217214713182802089695757189832507661746652917387626777000010865520126255152109029180534752967339227990743851731778490553397462294572208094709469276389360534998632456586069006509676357312131989995404409726715509209418089659281521590023120059611590972090422983836736336486775187964349681929141094821357553161439738444335902022610545044724110563014831799089090627048546538418532430769420604327176723251495464138413256878055665272928922485537226258048236562985056629862169228300771919230051424325551306192718843236855386635137836986564883208350714097834570750511746964310917658731390717057970437461838232451659837530189136045344953375808690216526026829699570665737426769794226075187165329437017827055678639231932171523900829428327514393087181850660677300666766430178303219490649891528087929810675658005931206408710285508585377984129021983592790036619206055513895519974982610025081335390323674579450070838472329137463317847386748673665716349647416102308434139049668563630575221134683923022316350739723660629848102583487233456481912888301508987490372505153410060757469488063602391349197529013200653912875355019963461731063218323441877439425555208194897785574456793757395623926938168252345745902450399350744523689920047080456559335832466335881506089795203820781532739567468937065455410297134123274723354999925040649250880813689998351497550605594948640771040012519713418187373608785969625474946545751793457481821999882140722950700026840809035137670573724607526012874951604153562980709041665950494685696272513504240845900787044239128347238913748455631084012866534272918457005521140488436208717173930033446576567368481818755994284741020777659158433100575840870338305754501652802066080525475159599111132702497660395648536978482182568314978437997943780982666149349739121618070525047674601578302920670285448816484442210470513284714649418277324268015193909743010616946298028817162754716485628353546419071255055540551635804482469401436286106475431977793279003560665080810971504194524634612490871718704780312013090849655362939546198133808660384823728384509064500140480512500782752726715511035465781511280422569687756989164926086949946603688291308570895344680895375808940658219019697603392231257080432614102298472149254425511839310668432774792069341862293619862812304234142090788559217173991496895218873415206781406522487897169500254277415869752923773749032456339918315724596780219529047408724764084573588047328181764959804991125600075206191818874612975620586179434035339075184775466772267665116615732483101824658128058284886937101760080713610103858918779153140823403303864416688244800403613770080728133908999729887190236778501753719301270606400526441782605778317112717454247853047219897674227386166643798895218026818797265952015119550897711997517697980810507792358041793531909102590178124964670023453119655710081933979089947997243579034055353817889986879659303756489930600913680610539139807395477530296388855299233376984135771243883092331621755477767481396081396270884989161050210548562099891038790732966892862404919836794897375717652908018105400363604267918229530039233397358387452789378197797380494020720471784338937861089497056530619343226318160826610778960526067086826699665285917825751446604794949862602397106132508725152525961793734965676789706176959043873739802820574249939272238700847853117707352156019648427347776052435920200649373060508326329524330034448164064938355648222505193573141267750712767904791457558591044323118456599394571991356646938232281250192627292791875978655251262396219475396418204604517541405301840692413488312968812878727034832210261473697293576648252615035612615419794612705312310196110052083240899618179358804089201391915999910852820870934282445734521353598441863986159868776316311399425373786746622217219486740783889518152877336003570250146332796790752882612821027485244594436633040384465919514510613748957569135278064179255147046390981716982362234166236898079274769538218886474751657056018760089605071170052079235812324318981686506375081972001679643697022512035584263773270045421440790837682211875549288152212111390522776373908633498780644266857698457178974228505150687311968274465506016451208219330818750507340065259228404360431375981643964738048831486763622817572921397831672413373453525987239788560136508163803659613363978874952446551752209500798935027372525591323713574061757072932255210073000768319558001320746528501590681738915272752465670153404854157791293121410660089642396818346394924746437624087743080017840754265803613715287518050433306143123532659272993472377009356564342942496140772687135884173153736755218197307609123114955075917162833657088275253835002509486972376135787935479590597742157627556154392511465022369590002607132509039176710646431630304551592681132722098043733209882014442451663593088765915324132128157413881478455139728207253823908436044573155476947904307399479990142677279966861753660899937986670944663771229709799628849560726231461921832105473172756072802605633830023817005850733237443237614530193003880329743206642766586269900943200905321766873799325246546379491111484766338087017344855346156594771610209691918047485793620148913634693850601885135342606557324534823917654676146637806265960422060247809937702633689277047827730944270875661502533642368981431457986340667739329906270552396933504621215195900640427493354711367527383261550051613809876490328591481576291179855684530152763896702478974846979767030459105066870698352140621373793224549628456453568380396465775368890596330185626924579336693786266047188811560411792177496119943607528131589208137459560764213946888792185408885450998223072363064863815027202588564199898713356697219087004130520400890511362753153584852254111114682788860649630859366582934195728878272038693589824771501274789391337142945499662882313539132586578762093247185316629792815977609390571010732353033394270616275469265010775989455468467093584160451602717692717662878642935297961294725335779393596069710206409253287421327815165807841403160698791665871796376516596938365602549128531021344311316060569984181623057610014961173496976240284225255305043712697221526251119046357986493801216712751408455320473616787851923898822324902466750612558158329930889133793609732716369724547304537160261645678054714805559692829674828026238861638017063795237650262406193528542547570747966182802969297222456167272776563292245239448819737513287843060013676130221223616684780495371115516760158200337401134218876648488710586245386866770312686074755338060607730206382678706250728814457182032732761309984858787716165223397870050147519333535063559901682496163627164735783495081027840581520944985408719464318602086444878670718224518547380233538238858294610050957410809524751664947472348519370851677125085636744599568225655410231436968829461642932956465799974514161000130427806362143433053462493752156433958100119178778485066547888457127457579277880385036426235019776149676677750334290280020314260380396272811088203731211307912675482458576256824615219971367819966856621948952886237757763013113119108825470177688944144609142037298367579176883569342719592953389693709037522695693525926633474478767283689437788500177706876670438124661107253287284110821439023453285264513066758403250987744979616862694820471965467659831541147645948545054905550991669026960383440289611165284502872636908549937856668476431804429731964328006653416487885208652675989038178375366479421008080450069793946198537636410674077583130368175071499297295160348951215770257057506517374125132684712960867909207332552927577041348721808803730818529045873198501858994504323539737084964841296816628325343699454064591355359033923160833237222734059854446969100178416192715021720624211629941264765887112357306003033589133548672873311826568777574747319125715924400344120889253052591417328587588772900268015519523364008471396095055024401547702555307613545207476835128600455162080858933656389388988556430556090373663239391316300708108191971215426191562010453970946263051284874006813535825673117532216074105212145113049118411039823321829370440069710917586883993812045607118783872736462631509918678201702621717430951905075751863171227522181202382301354005303712050930719542770429429455274389454064258713796424230818751728153536296862575637447065865879476316836725964920704249293980626677247552516925001877861572672943813132183034195933895350069370658349215084669189808953778947837570114739969885704244731869859934861798612097940864292909521535171363311114643857513194662157065863882477352452298806862385391956733961334106873908875781009043148388758111683004984787659897396178290201338450308194418934215471907822928527479429502207652195360783817075134486234593270711550263987614266070850997994041906726970384841038729269294996086834283066497677296508215522749873930336192546302628328942475639557431130055515059681725776476483743714642457209240058034498426476267138525545898596439948431321408833616298658611624453973213031305135940190997637700644825075762835142097528458629121644265982936485075822966070195954316473604062990707380192710687926506352209005485927211316096019742654659996095153253495561065712811584127133208358044687107198003118732311167880828490301244213566448288317487488670837173055024566308716012194397902056045053839341048376774502840875714169117464634201922080417950758750941231927932871500463207930755483192096582951067429537213241039540896839886342721554333840939420425975366477014759833942170939081330127614035704249262742410504012500334591879204453275986749477496724033452416467372093066007072703391635266160417146729789378888212878596271440522135471425709592911491349291414148501346429810054741170047336333894849184221660359571951575324057671426997969802464600667469906359789659349171926468430861119152803912723959387786030039722098318347771006525750593368724971797642672056740873213680684732262201010974614366817266606475347344893323788386530515832929765792385680819674237584721362112884166398339963633918508224521199223753705947949484929535131561628080740938996702112308118230163608355411626013935818282675864733161422523367379618511029576626750773907692092596674046752485265272893942093129014055877623183397246756599519754114133154212782952314218233293903685558643626944791854968710243804077003331363702931670886603147746586532870361030725280562925618545866100581635424118984205205161696238344741855429687352225166392377857442811430651945555877229955252014140587630165304663797407691750869824829989377929768333037510006803054041855270315866561831564470805959879330737089734418741602211363300732258935172578227284946250413568604166912621175877016849850393136043920937079127001915932824584858244241229462038482530229834987282432318774178483251869257648750230767768404993299560853643685797124930156178507138234862282143082351018516845889801672967098277239984393206913739135818345517472504023288057730229449037738126281254693078472520894153376616249380163514059642828301886417488127102712555365581355140095547323140055877050580737518741004873266749083018030341103368394218985757080589847123822749902939305929503041699798158375184700928643947634385710098950756810322156370050077273240709373600903505321652732012595362383934582951751440005962477115412558406332244160358553809796951348469563161880835690844128763113113421204707952400179655308669300342453478366516086752768339614587323695852469383205200599120688249786753617969734885260377803024244078371964571055462574099106386241984634532545372399736581578570851927993694692505875515409635190120910868534534421391860703670939676601909794676105710032740995916831333478849729245204993347759261559329158471118745862865891541808208182981447131275023751783830147218298685915450089415852699723435977827521669415774433717733111107493673589259575867696050174162803217045891480018369409227089626622681812345359071858611179334709441966493160391214836377554274221740465465572255933831208943575693051098583519219183496416656517326874323984227157615500179138727279123893613833856360867094979565509921266078226494573599909174935404908890371199221328151358959471581594055142899032113303784492535730679772240702506694414250661651592631746323567107691337300202966513157112054017749870532315355320915777280388146573442521697909191603856746755739776233908413935511334164248452703139998946056947970973057097030687871817043486043554305804724096309695689059769642811926274411906332075654265467962372259499608405299345039289581960445933106888606851828735685031009619772927832327031613815358938946479018932663328562489100564974657406598537672331722087027534061491138950649028330458680055924735789960917367734300898388095284368752214489629549770736862036512882395440612586671487032111398771936487747097252864269910458324035314847811206225135268393867963191890542889977643266436342049065869415266766204617948454566768620503932318405447461062899525411262723957019284635731886561802056344655710663464993520045271979630803371907469405752801700177582730850960999151836531057630385710449131812459889393703656154032376637070273539484078010479413321904402075246841086241513910310982501245771856118973850059352455071962632878918498417744029143062707529785703488550914312629735976737101131075568493701656231508332830625396760586482795936368605258796221882175025391006100073370201635044550749756293372394443755227235282131908234232704642819854601300774772223503015379037867105519085329027526777776511973015514701054016151978186069881259139513464180397999968331139054721006630080099701427632547768818786672085597887803949827669371501315642806891820528584677619966756261708137847977098994270868386649896564136127007815611447359893215472953806451869136312465729050093121576593166720221508447966027396612799360736317870861304909825847805844600672025899434831012369614095440600613310101141058088529328252900530439354494029052940561061713785552337014632566138211596157707094541680661711042167327350494242141310135428632264651374184718884407899265579711177865906978721895113485816730579617490981757007213514237251820293416986052645768662807041961243872599651388921323848740740835698644793029276440190000450964948998622795074807378877319420797046554558363269396884388614756299382140522649824536607850574976423840360005079902403227453659674227689440132934168978583411156428821091913534418477215220969733947362939441088040131280100862777752978634317312087803048929985806672510521451388928170225625474250604694790076600161901334392302976379598435279599368902312540360067891318411236992139309513739421919475668244330183962931991660831613382599454546464158907521418481882045397660372140809044892018652350894220254861013308912958085421408477384508710046661563263513540226782312389654343061543373777858132412159152340945461759074952891399990388892640021717389854656958306698906027120942916059716058817446533265554084609386626685059104294465007488300715666622475010698897525317959535662489784657878535864567667051217872035071914162699770634772065584968507351294324528798273621468528950613842301962338590277052454482009271098065365775306352626722388506680730812633096678828418043734193586895326166079114892202173651784195530239436668939490955492619700599478598693225853173406656581595961823680505658834689350074379487007994168576015975785946849099849536600846580087266742739517196237108404266759412057420229742347775510676252446075805904217966669048898921649359778163219211931460163957484615738642921063692751379307840303332924097805776659635915469785780841667795933774872464068952269480784107730778667319252083091744582075825794809069147926055257339554491985621717212712115134414985103700447845003189984462433552005295188391493698312820156108242028427623273986806601714312315377979181769593173105728866949358307375359319495028791864009635684525784509600318971544517881902325435598791062990199300900104679072834652460906070442793828550644966994495660434985527167397163885940750193535797955087794818693380645284881617321533504611396594261180280446861753646100288430381098991328669366555874663022186318545451742009976845704613306834445180745056305521963312450602875592520559231429477852913723674104230928485088656395830275411850053237310222416599510725204554209827016469507920689512034522422336803999965478291421125147995183052666269074392617149771094274382377063465887512128315765454915270469347943687507386506197941797224998540536479227212695557855258244005010838880260587196888520994266519760924146895562739425323293619042161997453334512243117141058571035484219480061890183433764242093089035483234127837848925146301166475744507182522151945848930457659144985702276424996772779737384100884302963501216148344164215910435355358192786473097162545859647365455827413844129561010269046865795467488654686409022200216070067712715140932881015474570878992735663422525293881164953115614161251267411532836719766941817858342401282899577590772702463900911130659445769846027899072529012816370115680873361925049460755793018938808416926599851121864013957703174278287001430051109983498754105800239056400184887909099142571418910983042651747149131242633151471969536255127690429680409474431248647702662079709129360629323187532402735296395876249739226422581564108872899683514458992216312629237857614125950828352810668044711631595552463959880555762455382405580353783842081452909088491047110007240950060085099396719771646076967214411394476557748348306822695527363718355253697937204669029522853816371050142023804603013890574370360684883240650998976360958590337629773236046023824797414152802464272570177842678220622065897545189400762082441048551793025085448369416688094934040105843889465993912139108790408404458866814790537367396382513818526363949087023688487627717619860475236090017751129783662021886469643097725215216006358249874297564611885837906634614134069609074714000646771055211344220410451270257055618093858843390752041656562141210397892956374126458140522958324933613055906757839948878473807902197077475221761318833117502521224424964971704960442612344049800952251969578961489805552891002023202020121276688194393798204250330638538865328275837015958029175453954497784215428875303378802226851030085299657679273937516819646480442429804879849017626571489775446099271746120425275735191528103638349777496706167090000183324650496171092278370194599606436786955964672307607930038524263947797781961297057442242013851366234541124060793729163965332717325265421495739339608448704839779184195827895496818881384583095645390018616048317771492628198610670864463595496181736375272115400387364768576533501627883135619059080407919524590296378319473249422601022592276905319175390164679740541836968853438011276114841516980877162391169415641834816511312011561017529084077014996383475668525242855143913848915680359888232145161743048161977564498965527723969394646882600645749845902735597838940429513230149513298105759605472409206969653408221697053518412839211190715693223642530454219857855148726630029911491351011931479761221831777615146768184837135995345730078766707106938259323263812362246316345886044502448968785670845564307232459088341062705956505186660277547972362568632115236791916353189684882401734956872946791282688458301669152860113403842672710783676032681209956401448047367150128460020543818027005662284582704843102771337388839563219541955652249005527526593376974279927907614413402585114535577080005048013598949144994738050147524044088422271505290562477054475118498475231697752598409335314711369800351463854938646961477089140379633117553176441370859931838132463310265076794046443523613497850728400510990674110415478834179448076636213106035717337142611790483951527831507060976348128488527432333467052978260570771618605422095673162966827825719077645017149968807606516686398939975538045526024148564047202311946008237032383488672516136004730284032575476851740895884646634731023417797942342952690789839680491216476188524772112201366931603084237475522042049677074593893287351174763268447234350883731011353518698022265810036458662464531819044973509669577933764540974274995433459301811011143684925292157602485944154031401241983635828743116818235985566914955842244735767636246482715706267483349187138268867934542087605186779783105890191691462908472878766724836191985980705610780219210198214657875849215310280958274276078960044852173372555757706169884721758941018587813825818683162734124383433472087646710018389751655285710553924067679211128584465027330142218288049976102353141568889715972094968494732282297997692619415927881820333920474994033236450780809427676577366320083700529625461244273858221161885973140358335892182149141951718311943891686239154488459981505599501977134844651019061243233993500422219803119916212602919486412815186990714727677758919013677333825129522675069276657873021237966149051126719070419684625053056258402744183162535144582699274412815824989767283281751999373370629954003272851474892852479014842441628720213587543135045824101981262468205941497902895487732614931694550482947510350894893749797539057726945011531474177559887740218862949262497346555493375341313876258564146835712126207316360447315513967838410608594059097020956687208747137270168795464841197545365699331112375349561573843342250265794750279356227999100131179569450693109308564591005833537470437974250548510538502793403758338559892738463301152173651084472048784941548799555766277619254877668422676838279749313725378550423506478122509198392218501654083922506963573566383316525952459575047643319925088842540250377154810852609878981227945627815041467650857981088027113753178631341821914477335246366997226488010118100578799275733330194042064044404742279228217643426311961686609658639603603553218827582754535258422647939244717559901934844499132336786325593349114233087434775461704559974750585545039104831073133536553366787593256785015314340454367345907348729422795315249013314229901870308160229359529947029386716924518209333826557185492819480791373488468555403506394477154071579393021375164302158262382327503751418284491666846789731369917879906933279721027013364810673606678728776762418392693078053915479514809683737393624394862122006155696768269282476170948835735282252285150712031517050771550161662145313987569321600659415208847865338176240878070962616890997067226096688381888139830365517121189518867899707869333478550371607289754630157678850465741470952707829363761530982633396710674558706011181842442661492116343888089312410503386961136772017253987561559887364314629932436438273030065697401461785925935879163804303974969947344271431245442906499744316431301212494841624407525742380224270172488077034577651689753165289938366257462093210138312432365062217711133991615884681900775222586348431015236558251435481480378825076472769689212366062225202228803602085071491579758752844692373992309926198170715824738973260148270487216049000728844386526206356169929328221001422218888379544724907777448901851571413245525400664702429606425399540683715148355609470971194737725674473298177342850486156216677915921772242200711381788714965675167303155935947987717876688738604723941561727822094593155401268704955391487477312649444581666113932048756600247222696700909082864296580772790962376072770330088876063431840941574508788425013362820202168355434084832421457521860718107086158856587693212487177634410947268249623694935648068674114629454339649283672101457884851281334938514934539090387584037393060101694769538433204388704321812728026799531896280810469271914069566482447314375130876589801601544673054590820888340391255739238879854793839173286856013533051442038862771939479228082460215397661137051511217479749463554742333062707380387133106996038481708330587453058374940195472459614279301291933320825725189987673671678108936950575328625165940047395836947369145787678425380509311222462702055857594549451897836340432888236395725187067084192079738709478873785891085597282029096526608073596025432209598132776355362995684214032254755344893994602280895442730070576833682053891501350753759750960690999316065698416638701423707489676358266733696186131020261832042764743793214841015624001450633789286429650317362617960836218332450154812490469196535688478593027646359310302532985754780725950835272778677606787153958193117500121855689008543293605575791184427424185212545881031482330405798514187991596910731276752389828564990083833300091302706302159518519110453325785150374356073699126898606519675545221431363931182851582612574160587336524366180942885481158376497459963652207645617583144461262042732683614388616723056899828698812843243389294937520038691112086207490589118298486472081384977150819623913709667503399542876972596506881315132030047184259877378210610918801199434879090118906899477227385511549583251066901637989673532435310389659891153301869886846466432934610479883448255808839528019607231461910604560989971591078741051924915372748747463151817526827589749613344505139555616656145135368728746467785658183016483856037464798864479428849037049578942242634473106380352698046819003774207117598073269747941800243684768570796289852520045597836274580690983603740845966109680093654939185434192296640978187571113175657970322529267396241628107627140607238882309697007119599837856824672015674476278181696936524453629951815371356908975001115843930567881505955857093834603123203109455379783327053756957705019768048050771127273494545914857275339603684062392965334980845205010721526843630297558071884688684204584474347614893059335605970950772403941795062151740859156819794167570529485134467335135475321851586079293241492479887043758307883646594540720114405388015163410405021767590169929575741683239619673161240809487701656694442996342408178697347958188373311348544121938499847070325555711531431500331181375148575878305569486450027855655542283229504578515626492925512030056354805739445387190964226635254091330295508701318349173512458845515755940652920884414826639767977408629001192747896684249942753140235925842988685968928154505514915128680550454205699138055750474717832542830492870004641580082282793529218277601443926297522673851594711237237338304682968239823353914518868641693389933660803169709808002943882679560062250673267863977756432779816075190037576446374997471504453957920188021279613867674370249955287287814843736614933797533474989057292225805832758620527208414950780702585837275593069180976405838699629210202163765919271232992611677375822135294787740319450377262815821699479447226826203744886822481853997853728705976331976120404032133726692016129554956842444586760044828064225921444692989541465218881675873443633983141562173395884699050854140303923799875457222145133902767300275063512381665315442865330403572491897547284845795411921949853734518338751057248008172998193951052977339276864699640741711023261264489411130169898489726355301416403811589972085008022121979887363021894642578992503378258196168085306236177940163844963364311456710091317479959711613866682560899811738266648417229213084336282375674378477108361113722810167783326847419629692447748311544745091899265689597221306828181789385607026562162343955841141557958838374890225668473786173262232993080658445830082671057878905787824354324495086929620947659332555769114207228429444685261768755649172437395673708858396690988004470864598748663697243304935499231520179080972368801103388572024547286078560329468659052793634216072572896517631118505133463849227794917945823941290038059179074424918362346185356979086157113936067559062238840821411089375620152454496050987850679141583045170374960157069649938055350950971711441888444070142409565626352209960959314858689316843291366099969509726935609369785324207209356758040248902190957294083659862612767815692792409547869853295209669475766690617775171649558212276615074931804768904265949365149765355835814639823522332179316537588585746967155841299138215823286753600940928850742658207307444746953103536086015651037845968560800311066401799119116754095462054691504097844581368086735660600906213891373107093390170718441817283854473144043607389940779871695640253724714346138726578842109543926656639611464222683829009722947467150306457902600077739139192998885323734332991988221573372888292199394761845924203195487837523682379429586847862179399092534183812273370366975626126641791015680898306159105268982885182386633659291900992398917879861953587565175055350214182911688870325037983704669644855149201774329919819434883031262446529333956366218066756765092445780757316631875559893218943493503618026227271161241745529354134065637303864548448869213747547974418217603006810049330437430351230739703355571331826015396073626156353232752060285891059041251123341019328745223168175747782794935646750885676471334523160702976531754031612055943109756627944068519980399115044822297568048434416008754941835034669164031106502374481396656351108935759250677125063793197000110570000272450573887069672269352516725376452311490569019200828806638588746223580319978794361721564754173782623741479649435566398904665174554188182690080567339104230196623562667607787338180050982669976021264829484345469896041343658106517278411712884697109676352738335023816857776186576963551266896232271371573297071838347987930490258117488214527844058528600933180279833086427398094378984078483595532951998441074911486067073676287571256492677753595823986296973709377886506349843290340643193883274923149340719435336271731022492038561195636131977349480832829383697028243606942905302666346572687921919391387792917020137028441441234576848230714547023650397025606776395090386339090878578636162758706009310678761238521997981379471655362514360830398867543344795345623709776502742252283376888545151973823715051472621230797900512364491345316254252586432100138284869836867381142881618872334827119515433275485474020880223024796876874313658891636376914705433300886724255334134992353203495349546878348072568220844135841120597682947967585738718039994098685558219788364618088214488257606028989606582510767885821320460342135064661040678155945269066586045521227839081688338401799457892718014388935276145466747110240975815715517533186590226431820572674199631053082627233331895944357673286415329339943403481018291132955052654099405674490410280554869056197296845757744503235654743728067411451817741960139364095276615682119635919938475580954899819805075827207371954919735263552670587753683585325354779580438043009529209146432328012901178758478053015850183784159460583664468258663725340179378805777798053748092936580905107596349429580541801469453116229720613210010139121964545112324239394500262943734375027976734230508255583821315560263783935895433043763199038259738434881940242178530029326236011349061858047283339722216034984429800659530840929796695648495451990947606910048961891095843825673765824463244031856431177396787697723977518290278969086218655017315615879037718164861861330989273240466346213885303596080383194174095567235172136513514980152316086476627536223158151524275055424495891426293729193086821956689236487393718447403557547391147113560542510954978764851585974889488241814518172938179021984052566685384073701182551989881692135852466984059486470735609766513429277433741695879214838763154899426875846085009392452232833925482603683831132156123197349936575664482397305035495433711612542685143047418369632345546686820546545922775367578010412218072204638177041587735083571495205888076774970911326641828797509364763371911211661342543406079601109532598654421350639659252292056767747784736580294923169004784051586603587521563769873312722441004659151614468404033269995746706176971469086975715834803834731710060765565681281744220290929162552445019572945983823117041194670797827376622644755345281265682146142689775639864955882383268463576888588793354950741454466865693135984348962047449635327816263286668512433052459279450390045968735926328324344016149015030380298519933434082693014289716019944587855630642092325380525338577121632290133578187103995969366738668153920503455690964328774492902862563692079860425477045947301411773192302801043337807161498889987630671336419759933531194062152103370141709662814353120717887634996671691687011127868787343097702999031542043032792937785806372596999187788446714674783894674584726114495605875153429341364216168191178635020624340232435973598939070776623202135047440185721043869279987359684191721545217366970386856076398612976941524094192209298074211702053094754747896601234698592339636709736878136128570840387863168882770750853706582563218966931621410933080225247103472562356908441218642779791711289986698686352415934518508768148677459241983252855674621672515379371633935592088052002319255501317461447979787416816959638412898860586126279316106635405331226205125162950598039993192308730310896899580160407366363965181460094445465565568390570500944945096200485402501911278930177712322528332282685211400600606110468644299701408649257739707322706708868560111233113587526452870955702167510796902696835211690659500318800180871527302800197862256097745391873368757055142242518598639959488827773786486313206092957465525271764690742049043809070375501090440359608087831437583021580718562121695208022028734344759382649931498996433635818320475876360340294771794740152909886025613689767598968641044395226790357017621792581138289565883960153936812632587875893843478909176346027460998888048893300018730484310025258426631724339348416333088300553213902922168271123697093158239323761294389524535907502234871246191035109705208493638392173902749365618481201899841758138965345934204128496134196662390947943244416760762709493437356765610579612374723920651561774323518620902595518146922953971292815274828402523290048716707745566467410437123583402126975626740071703793180971530599745867841626750048067613914346201420259004814126004840105241444339157335589842012363706713718907308907511757979222247371640849496177106612000933318283053939597148536865578988889170621584733216068597274797490983591691050228004003592963685313131113462942185320170892247243740008721037351917878413098824399194464778479379980621111786626975322555624390038862740511386056500814928505170338138263939041495321840036173090659999014070209915094615232971967659725721969153103437960866645509226754586673710496705497195934594231396865823379992701434735388894852348062440022028893288408095249014970136446428799907944767447046451394993757516534784696874428953674593740094152461479303738619606581864616174765180281665347529610399459751461342455376694367017328309172312391690596852969315119405457181541346434554125688905755640899202413417380893710005248064766969373488798004160642415020426296528364482171561684823930890564029605592997093945992938395256840919223318586842872789351528254761151005993791535097698433679247640675632417823667459666143695076082249169612876394310731919319283261825314431116584157458438302264869577646620429684257450901865072807243012678685244338683113890056300352029629872871054347672173487451324307044432186941087393404268584850493550396017427173449468891439906658761210139335180646529956071386002564418779892746891858534179706155761855000434380916407092848859556658737565498723469588796580846254376715762988086033713065089765083053179285477921359753687416011080603806434876197855801167035714570433418995737130448316987183965569553777647429788539254336697634330028149221994996001847532793247899962748234309140515667840292736224429855737831416415930501993156148638083447684613562358054851319512543914666773968989741973000225292284769942245713134771755847662823850798102668604902398407377766304990362848643817520096475593686699824043390411958748283475610250067631006669844356350145673492468620388617010331499332991177913762028625346971220191017173949323154878515028134925037552983308811821712179822243125308764296639386849487764819992178972622574212885688382489453157691644647556752417869000976008583683027791788018355374458371312997912402465276202731917692779945864393947854333139281458375389627064884194515463946249857021535158120377659100312652482434168098723333857488482527733528467485958825248448603374424553247812291617423632705750219997837826718226128181196593917957159759661019396433714472458334032332840658223531049902700471585991852341224042466797071108940581729731201517817136608689289285710691921111185504264974399520561576144616493680874600068927643623420765215231945170556738412523763201826695602316145561578957481677316234236613306604779333382583174257783961269803654150917762133239095951133500825382401034993984175136874141936227370572263300576592059961981840762805684450874482115004153051587943542513008386680012201194643861830914210294736225629560328291138248989513693704471950990232128996417555187879818559969864691486678971163513663397523127617341092140716679639596635213633510375548946958157452893552079387916483022046909303692617973852133993020375046310655182722678684849565511851070915680415540566168323260115466801360403217376210533629617714256521731554188973311608811164915514808033642561643313477129443344557266135496325836221447959592355415182981675275935306626137392403155416768810926937203458464717446964284949644242731015997188593861330391351134457032740216940250282755416996611231490069888265060622142141133278566134987746002994776792582673568784451484582337389293221835043617513832628645515566364713904584039554495098036751490409754960290786673675907664067085750791891002102627336709792283589246865879581763312581858550695325053012174030010464058480828368141793300023773179905946423527169150564310166085417662315739381649155245328805389924540558744542660054720085296701550946519108461735053514434707928767551240333178813735356316632290283497881590022032044214856837846314658550944456677693315758846331669373582779957025718125482591189189530404154387363915915549076024329143322351354025722723463917571646588492842095204309188179880481202846960527174791016884045539004166507163285197015575228820295329914188832724502362980547498059665521475832831529144420713875068606250393893019414886190865649256445671406206774370885417472736707462904013761543597639379212877446660539306341945703867133992866338096240937396942653658427131922495951056616478675330234084197057747270287719910859910668422304898738038443068436413338346246988287703467406683647609599337929449808134174544807693298784157731002079603961935849547259948664487356565133771153536825354312931921599477505145294353730734764476448212259052303429746280074447766445904123173255259090299576471457352336202094553132908456126038753795668839563348153799131678605278575489531122691273940469669554543219628981026067325694784896942715767942374291935493618257887522940141715762257780145564667473400712537352164745386178714631162463253709183894368088621686740333852373639072980085269119303564737375719972937077509200057558810751301885810778840272420992398845162144035418951964436735938515611676816463924504668359311673700993791725941042758669827418352352424815321127188838112501563653427929778570834581539796557294269542720752892943035676067065992969599424649000576315804513580121445545001677417148349355874423586640746791040159883306860827577091267878843173237270903845369262388847379679961851198153171341285512414311793379630957969849762429036044706530449334002360843196575847741280165893086228697351792729446354673032435419433626379280425978448283675734000658534280593864414543049644473865922912798848497504922867277696057136130477424958557506335492753957402787841031057719045557689837477370175092897427521183299295510556980685502225008374952918684865355871506651485430065549363464598349249714136927010466861530082323585893491251070194222433191765044327881522091572274196457793053029778286748904553727934556517148546237451179609897935621816554175320279941279653938325445643382540276297210648838959432871329656890472416097636593191851449671907643168965091608703580874483712578482738622202553830536915537345818980929713127668965430765381600254160743310402289667590355566316426050975360377838628444653728780607376686971697617637824976468062499973212846227497114669194348943431724331578211975227386501920541450015163868357268866161035147914363196661489314560497973889059047516477095009816853778658054902643142943737009968984232633179569980692584789469121528296480648552071896062697204512852273488866984892427972913116263623719393298284390978856657707589751708061101410356485168058723704116121942633854847668030430205883225481106421591916805321560795852719241652303016612530275480086772853081787992355736431258815869412629229830223178251289571154822836296125057737315646540704600120513193822494413999436148850818099546377687686815219940806678417930189209550686208854481711673943621835695285785090439939427316581297197306883693499177454187973881530408116628377653675086334747731537958064888319950751770133416660501258090652776238100465816555580114342514646630859988678441628329693599414148084576382332647861632356914684818774971141565003770447953734994525747990680909739215462654700523059943723330931222356905216565133035017054296677773402799396122719818232842409104873062506480249674914744432209841806403347107262401946228519734103435554775076264517632416614545059662944923314311534170583472453816344947695481055337765524157400342678550837443668893048794467551330275366113894308630983385579539490058975991009472992857598848658594579272168282672647802784764899108769980896492876827814083011931388799317817917252357268169613933187789213458514009139171503563223970874467309964486012433594914204672142965416876117713159830266810022008527842305918559340786266655055101769703920337426082929051323844376269070075473916146343676235965039088330871042933422924695034958305406937617317374783256987447857953575681544835299280088732888979473895013132219981511207074211514324975362645978679771822193154083610527229010169482624371241807389771141987577002904227679227060747220908903855429916704474581283672619194240112081651765608951641374356236674710196850161179459544647735035050495759085892028747938649944291257477639161454101705199661545122829790551963995563561190660791140564974127379522764501872930250523560160771620478724460175079130489460850367843018614766842901764825433952954063630960837856581716265328372483161333916930996767617598129287844177346638869668163997410131895185429917235154836838566403125142458183239316056210214584406836615475172323537252615569361462278407819376139430037977959073348262853851312201935044807490347272828664569103840030935397473386684890896923753411161985369941808956352183123554978048136784926262253040600724722827442915194565498159312533368300282921386498904889551134087858132106100684428131834975680130627197883349394439326363118561622738970048627748065465999992736816582746348700184849958262203799340912277240094865195206862035615929195076078860611718900207968058172346444262959379836758718002855390413377148321782799701286214879958334781169392276694542206291610414203983863913078921097110145326333611394980414377815410943563729695774359927594716738481271435168175287689205146351928311753776553161708471693491815514021154991851951469707788905228552950784001646565384702332424632818060441158295761235746429765749583521064755362936414787296697134629507884538411452721197029805342523109614317206615044634314135511894792888145742525322075538818038311787922734896253163762015376127377068126297701380635236179590797633772584218082953105477951459667849220743583165022343710538274061638187199759480716473640467543695081842184006375757779246180086392401966885050297928010995108429362702209505049701432952507883198522814070192221521796052682066579765177034688779596210821269214626233705021519821134917215117217095249830512787675026496791329656150170386473035210663142918974574471349992049954587483719338210285918295623348777484564627176729916857827260653507619490927827319105875195874357762544284006381065471352676710539399352046527880443209641770454197905963309075260238980068264225713738858170667389049683356003904018603621489188755655736786709969472623786037895277681021683764723547857555269739733240305559197688643229760209958738507993673596606341511232823614896094419710219830463523065496231742164345877757892753055169354239311916598090872470707880268610790255242527706447925432124361634344410503761722086811205668221874985196022011322198438590743701928580679205473567007108150019887712782912405149506865808082750049867113950942048643779112695518684673450042797052300217224835941653055470341397330011637762705303078114161896559705711848805128893998902231045905194002896998287276831770342389972349565718819109553984072005535336074651048678599012557299588723971987807188019722527185129249656345378764822461267123376505382240992238495577477402562010506169724431100177997693943211141954586744340421728411426139902227954617251973006020676245610800202896305275989013636707113888193934865522933933820300227679637108522595891964658204293551948974226309440890237547945736749156789777135347972880493413767092325070459547763826171102878405716353518570750387283210672412366829812775963021400874958389941594068560004070288805559636746715514607881600820090194615790657132928529415651310765784113412797898784785736278020906035226852916825415258722325656431879364252341053379745659769146115911764959082911163813039134313083850967845332166500093519799861234947851855423685933565809734254573144589746536076599756602559833665600508155695306662836488764583030140252944321336942007983184509116316975549041632886820230515845322213307835645146232524878148121951764303778253809661379885567535367099315287729403708517420727790032943648141360696774624672856921596978931815059033969446796595628195569494125482028522434887341204846344956863169757642652915521494450278760817073912402743773855381669232643406830678130205736152921657865547066196397693042297882608628383283624209811230756408430180465489360855344987307526266419295883426548998337101332578567775161111733950002356363925152338972861567125137778366466466622801465800393095228272223971041765352707231120207784626177745687935391288151391101428985737724582450110417306766711689889316622740321635136215658612013544419917718079099408141970058384162957393743680838736270217067766564822127141589439899831041085049473273657780337184912363248547783716836028791126729653379973369872506154384251510378650798861189005003799331504478862124410212966938326132238374268179141190288457805286143498411554600647215966529233231050141181635798893566008591103361697907398129003586573865501192564764330594966078024257027930812492941748364571039961806984897976888690112517556890166093136287108521128989714747520262066165267402826880025141454473858295340490328008356056087607234816303042128166020506029362661276251845901206574813197826328783656238941085216088767778813821688040933850147854862617970993861672633333551686288333570077108275001289970940983569622424114508329022586744349598747119537204341772225420340803584542794089310032555047181651745473649193000721958658832718001721741036573951840619173610695413212036123724750908783018053562453988345324332379449272339465421503583879412068501980012039433284288683139109232864777812957226593330861165110743167674125543121431329029063274887465114104093068793598129937502388728665785060189552908696304997145809444770793773411440925172034966654520543034800186786866724141511972658309605519984779107126979504083349506241206073741993901638315663358203836128464714304479481994647070975874233143476597847844978680182104129822253909552631564383824183923137191594047473324550557801358466747384339378983853166909781226062971166019669154286042785754442653439899646100805120240305110803416009472837134339733825626463547671548463817722489219916575465074705110925285920696368322389594828490681391968744838737877997494821520779043977787463003761139236299254016406938555783398030745165321109807684902061546744685091528666663478364450018094462331785680382926297669057475146457257079259763896095445931940975971130232115155470826064098546394987048042487321529428423132877166188907746947560452177537552652826471375387712360190864339003278071989710315951820559338339069560161616482854151484923932191537274468418478635487127979121888214794249580487781991172930878769285886272063816073318464073548935071243036295268122026584671504741103305613244568561472609284874595901988103870022744190882946006563233123378697290199548979617379150550207711135738871525725530784729611557419659119633333792966004990166243279800849918888240263649013480759396427279117183729257766608767757354081429803906639242451039697593563913333534651483994007834685128509797966615649625293531209645122329269659517959242316893132443414130384073374239301177500860709026114704409285349761821876452845776945252024985597567397599459209764391296376155877729447941584460486208442046215722792469087834528700324862899361681146185043525677720381045459883953293146700286109895050443367453232536694136556926793502964648671954743507531959129258634990233294438965642394293228477388444991619480402007525991216518204856552780035519605523559919498903607595396864060558284596854610976202699507048679145389514471473493761801685658992266119507353116584876088581382276296955761871424793912311896356780937681688448888521877329981734857501816482209218551036924558974051848604733955757178316332099222697853036705508108027330512210135696636286224406852876392164188424594327154506346776419280140807310859104690243460908316136437595140953069795014305680580147388192406855150024286008009226738810962684395648843038792827743844235229922397470367896313734408447942161333881028248041568552220891928089600173528609966419673617457349904804851892625519438967588996901752779711252749439768643301428198092423670077058817925971829560272553351690989330842630651874801420079965208668404923123676702782523185504830292011270403477418351727958391657943348992746234878667285048814260122055567586184671551343028095666769163647244614598916916651363157040080921325783021055656435646453082926321814280831419764429091305706402722561939870377206876857092229327507648314788379412449195208028704583398652967197238657741012177377226733942144857629718020343305212917972108037337897158771797720876370568752563746632335061011648503407223397471746596490829805674538753674300483131489899253026117136459974488438964328452211018611386454875675668083436515495718135176228304088610176400008906891382218627676452730437332134263860200674526982166824287949887960312197503454667143886632034886146522624814028412055891616794189419794469642890088063545910239763604766669742906151638815679997534255912963377202952242947439918800671579470157922642172961155514914142436066970013987679588683440158736534116432230781005935825872692559428909288931200840967711940404390424112921401446338135264179889193929171135983765741275732525487963048252308681705900101170259199962184896589455389827294586662222703536160899811498608632785639099062732402039975834744949991546484168626416144763835758043099209976644544640284919629782659853865392791091347515673609078607772367007933681593555749577681577507310934456278895366241451751632291864063377420872826126150728891029010070561859086092648339727282204965363642101879848419586247158525956267913256678089430752565870314618264601073893694716931277752614035224521599334001211849468226362454138727298975770931475052328266715523837480030858745324080084427442872865798006659689919514222044719646487163850613743889719476837166450915364609351449373355157616268791626018367144255765017566947451037598740882902861442068781681244754620870007966609283907464357637598072970073474846712791708118372211021075459060377448762073540265241548027487823154791615329849035124683275295229698913417456232193930660603554929914624586664925736805188245306922440395716702872272059919388410263946163131560766496887657050156270654519401635106005736029897190469618474366687229180278779704706837305707290001804095591660533056743592692426142729322747165549189239204878995812276830900403638176749232122431055020190908364388639657989817095896813192124794206916867803238798068543584812889676479083851142645465665433387636563924852335009410697207551449997106905731772253498223048019506436179226513171898495963103055803771884911337186202423699655298788449543826610437252010192011827044920039146717933068696830874631008796413375831470965951944043666727642376938270736716160329420548189906476485624207306672687207302090440814209288254188373558013570913791924660144236892010720508938312324941538633632324961082806959889574108627592048076858977006558037234912676577616345515835742303819730860955939074658935795133356971920601107817419279681548571090647332448023394582761252888923629453584649063166948761452750471081725056219077196001124159426753807184731581109713562827436546151782887435947069953091448598234538260145079169289945116687940309627982335850693056913729335538162997827880081392675305910642445614964529569553844634523146254195471878358909684699805206836410195834677999840937692526633833201397407808584331929681326042039383059587403592986202017603146347446686329430263422421372860729066557495548591995598407360145438687472607756709169517035186888506068729042088915348249912669555340410733162184592818384951519422642974889764461259525606920773129375316403204047326795492302672908786043941316225494152811148576068379768554621657425012888041718134932584086349755499947828619810463627817704208614144530320688063406456793846245486132033483997046460031607704489880867638066633663217375432577469961613397506115266771097002379814116911179182749794017706426506733324123656523864096942210837630671346135216233300197129752536380601788013838622485639471020093188842948878725646444294212745561057062385299595456493778876868096636204985952352507204693591146237307255327806337189136058259249491761051612969158225557504039395478997978172894218010443652803368879898429835978792344812421598055974577182400659651248320802003151488674515366691506215571886538209952269829584285267439618164039008020207936102671231648097148518158989258502235885016565646353789680730248066269433140746279890291418107094375514379805112319890193686678514980637637681831172327058528268659820846394490751363456387990634770271506213950318540093782480009647791795463203894891159340299851185083479043948009102449276273785723134206540717195949831843165140916566998020020004362477339741504022858103271384105534626685838334727646110978023109009041950841520805859441027861720597225383484590003160003374999465263546279926661963408262361276137540073939095122644335211526068860469600575773389890141980893712159186844059767217861074029967669528442739713289732323365793932445598465446985462302998534788288609930000121224515300198010719877469381392307522788480392029304067005649351610563187168895598563105744729891861625210006136740917581221033221450308810418094079076251525553165333429983171934651423310104764108873350919108341613086529277828444743274641488712334885096752095019529339854608478362605250936116307452318993820937443348060394498953366168646711277291369443445046339191865876391041903807839377449735606536501573421071993217590238831856018341774065295705475656411606152037268925813803689796378579926758006928062755247018694355575193553726107674250272001480831879800839186562596382713066794998241230880478447862651713201102469855326070226203569850906702428255286351939517174296141785340512392606968236514590820227442500120774745749158293470504463919439322030589576450695179660649779111603406436296921013715797917025570635548073717386897665225368132073373398466306323117189585911749452770321810006048432578099388315376600039678929404933023352762773954341031960199715487756102078656006848554511030252167837861177890828053541190889258996870667562682935095602882377771758488290458009035143766569472535747685587214397001125785223510964800580973110810339632082696133090849046032685496083030188750597176265589278648676860919483964139746078270013154103408609663810215476909969250861099662440033224692421958009529119845402537631196364807145015814631960151036792130122099484937201021541250981005844650578371976341609430331931715246268518709486108585306534285599964515630871941556484348194645212146963510627867700655510294183976953131314016205697015850527127971407886961261215083737789169475026958708833310918814890715036227444130271870778482853265668902036087959412047061786025148438883087396502009463355202148723701564284388971325978700730934582059503208424407364309359471293899302816730707599319406988232987097966884252590324239207465826094649470951315127179443864342213495986947723086130005662045732677473064671243373214723181459114133115119369545428789486745954906105275046554902276758344881933995122672130416504640995126481866087303131283050473865397960973755937103602251870062115676045711022432007627559444486411182479406872893644010213371772376031368989377454269756567219249968377452962046018031617304055706041910622407050300690716106799184182539602382616056434922137617528797400312208663484564613395291035073804246644282268515842939458508821243897385303216695085834412711889935103367188415147238920600492795304167135321865227185998364389002443932578857777903540476208819054980464775217532392860208788325013127491569486650317344528438208312858280043305364917288530131353090441316466969768648776322633735101315667082922719755050180692703276878716274045227861675490958318958336910249454869613875395403648548129671417331642061749199380024331863478090741133970225813840663427661470769662426290193684366941504459774835160569575335694210234224728291972188685656069481821354529595039373347172613860255488183132367914672684469164347799892128371956465293049212714662069483035006460401549404323562646215484401148474323258455827342908606807558403132577607421358576344671567976090787737023244376413220254183544137589709630067592763071434533272009017725933356174220904595453787478443437406283741737463002252160656100935242242119713815213414938177559245360343158176734614863065471251614664299760608006407633591395620309200683347494099177594320448709525188247540381888501503438607413381121622186821853011178631907601468843423946657450137117864402228343728020171466418184998455165446372278200803802896593428847964626118481633640134627856305097247614707067847261867407306499123511820446319784268796980441467469591020207484492101919755740628881847600924788609329607298092197541707107700137310615950573593704693092810611756847840004023512506670746024218095005732203657691331893010885213698644645399998297041554819257985089035720089734070350142320924987042787533076121569205313525282206945837963906396800131818498624322263971527108307474550391473718089745024185533569455676711786629521354917391982677273606090525759943271854681010272148382501367457501066053644844372742962242928972519823818143867735312315238253675943320030567786814669937356728425430284589014450108767481419893697054663715462051568230124976724378087099132860530314552628550381997295401461998389219928565406279505543959344801572597211464063794820898257445868928507434998450417625825634225222578982216832191375031898919632742332808950130527477534601433042727857950760669891807202105306000840573157937176104979385078225882575674270054147925683844309581319355283863184257383777023147687934144312423125291231970316004954098324242585210341630674228072439919647975865481642512387863984663324003390066693695535108536078498849791667099159543930139219086133661887496801123015857445086466263061319371432865009357419017278375114508468163661349703613038790890754843749633108484296397976670449225943582364868363110133121542717184695000493310762740566658064984418880882865725990009764660995423594797808233165177227234917230419037690495288332978669036807465232969585842035229685032518505505717761924601375930353985187151823605510608807166612182257692781552827925402227379128653944260662635702746541549953849949814495726028815138065483848110481520311544192776393475512195130561275159322808421549425429539581303706128157303666032418429767900053862506636820322454910422394813954272341551737989558124165718423381328783696420016132795916852782645883016133662609396172298461760131215235627243751421984325652131783948569822417109924656152214703121946456478560100638454419972637396987231122678383076394746396449868893188380339447430234153276424533810697600408103739969320607012179806479477271906761309209190873406320370993710561386953576143027225900888499995180948017600132704637737787614899790624396614790210453664451256554162684449478216727969274372734029087500627509086685920077051631358677568820866336376019307029488728492975975508307270551404375512336335422425975061226476706981957604013791894714358377189275592589589768301040181698251644095492840108292662817106250877739350325042863608420302063674029474255025413791695619948832146712081451474351911288012550022111476511806001533889332386363236690714925134457217660712815566224236176402637924082158102934074111292110425285312239332070373729827772964048595890396234721107943794443399082487035354134758242838726949632843805256456548859135509699995124875648236836825867275720206853132459206136799041946644372077354353200507549135056659074064924031601468350355153185924958977399185590739027301990773409198998684295253009261695441954829781737500365649364583846231498703468161234953270541306798986533579202856665402661777376702324945130834132085661880697124486135301096551813117505514896406512009318036353823232287128046399354474206281476639290367011409357215183810901689810485948472126827954000688198349739722291530795612461058026734789420533904195234071246387330893031732919740378961024439100858120267494320578217375834262043981614566970661292551943378543229001468920665771024239171313500147234805716674559947502725437353535241623795501352179090233088897498429319338114325799787076332330809981052313685222063559360253880300939433164208793871320193013420853790182873442057105389276898263276418171020187057990415849411203876975913998282469246304648427550118789818013292950027795142886969841932264759579026896529696648611019326578562469900210200388071914977621980081130328507714616631768069395937798020219718293963056231050109140699305100201996614447721784956595359976725933254718144937413675064223910520063749892364834582215354551074850553902072662586308962305343032699819607508521643597965654293176171093928483670821866001667956751813557216409423774246929212925036286329907526417939326046656477901592552628789691558583088402181970460017387517529156708464086300218752848418146498804836724814151881028791069423235992908267858039742536698316275679685613436825534998167048387443176835701144070041550684963082227176380678984710321835770978130763216080784233970755085069036830631627840543032924021212233928357516650938005534921450315667401225549807484008297184135556178247709929552773685053465592061218667813150613787181700814458789796579438176429686300982240796280320451791414637469235141387003054588756565270249724851267261619218416293833549109578292931500440127188751698382776812807408196385439300216017036707768333813696828645253360939419898543588682997812039521493871259030114600090178425121209567640331115222607492885595282600474929900727055969654438980937866756354559817063649099420517055930303988118912937254522977739890196354958040666857722036539986464743821477013820050451232481960835566627478552310563843886265307336527142487624051643417201482173508407987909265802133228455629530444287892846309090757096846314678820814094334260415643500255610389450716467568068771136298257717862437032921097913980610230467043992146428806039266715437566179781844778567217584378251401290420499161118612368974401126634815954708499507071658785128577276328865518988414094248556882401714882949670931981074215468065262675149188055609248104639178518821361701932708619028551799206371893892211508890837223150673639185169994227676253997244725003547045131505289543347766114137074333674045106824769631760061904145154926562880625949091355869831855520995103309136754393393502615919309831806265106976049565967807831723112185384031038333735764904504106123020141653970885536965119182043885463842067300293088795231899365720948347993227449633713386243531758920381109854082835737044121857016413992600609117026823160076370394351660249328853873355086915865063866335202453485179211068299344815563753320710211743259786864088525194335187989112825266738454334763667293013114021604014405140358153730548938102492067120266665587755359413918789608408156846780092614545434267599757687308561377658552747457681026855776022119090546389847868965621560435245007067329128086838903213239481974088781255862793536862463017558186437196747857004813982935252858245137711933370919964074605079228710863687960542147686126738891329481690508718915027817764735518151624374342565154890120284078570223156086178674171998235090014977338753750699485821862040487643303946708167952846202787231948283263287805817482747578140664082257667822626859547053040165536979204835822964880108850704074868007458089986211775825059415372363799317020729454062032937923375904699214527957108380107472394879609138219802863903861964191938065625338543495138269851123918201117524576727419067086881391267922722216233901402379383713275749741620650013143015258908277329464814470126871170406454533019427309657937564508286576722128308771119913623285764176299278724133945680237639169059872431934838403627182875101824245115366665809638191009985886532858206054579993964877977043875044417204285414814020290162666807089953970498198367155144927303721864330662708535455619583240135145404063050649486509021768384033979015891246688479601174396978358852659186436400390931286716785940570342993137978617530175545240933933323432604375936375727412365512787405960640740139741300495906383620638755302432742015317515582715967606239341890455333816737255451463762109375799546773783048435352184608762188856360348670254931111992721610007493552312390311336765916540367467664875105425361281696959972775731636421624942845971786495236103466769919221297483739798402722537286336727512074314876027664585771307024155100726257251870653911732775816694504073466125138045682810415580914113726322965103803613431112669465122759375953230464002113123806166235819204190184658121780516052204483211898955974130131032604373795546440500797003924602300478594796147485094356101435672748615573662949406677372169675616841981777171351377616839926614827898120988522752075156178070300827528633946639086143715705531147840410112012864711032601921700904377229991706706755061826010029935504025824513454034421063751075500639151482927162287182880830082378681741881141484698798976171340192105340704102121825962911178978593945057745927815025523652314619111217309037409740313880862515867715196582379529434285576519437256461771233822683553498703968262520470675718304697079995905247299696758547490302119911204273028120066435601693304687745322348027499924765299412139634695170759039109289177466754282523566019996560680385487281798433858715923796843210995152397154661079098721097121842681451944916484389474521304659878232645577361000762751386675745751602414148634809190121742825832492262829398449692667056477215108314856098757189671202686487976116396394467315930937923739232742446737090139660126954545298450389185960535342731847290170488365441545852475638021362215135666890659931920931231246842850608564894073409160799775956243629862549191393950028697032049526128362765122002983508525346576435258915897340564414085325963805352476651170082749290479621441913260235317930406999964682750263125866779252421784622852827091404035030847812609006535698632807307780633136864591434485492436250242446414517739869678615374294553830253201499904802009790926971499207014838272067446296036149218881121635347063212897596080866741626646326016341279809481836447777976808169288234118272445558949170130880830217120255210337887541296847735733504424284403269048914395837015006121297313042820144473643396245116277463174731852607598966017008318559643609303771614907475977405649593941227326996927617875417969733067612765023112872546990042419310939749877930663159307201664879064639365502637565236778910572496949942284061756253859469005158985869372390568850162070138212375333425715407633643745780767936656763531417359977947494186015329134492344425659860316468236282053433769299250447937296443567221375845657837761936663180798883573440786696773810245044400349592177477448417779999623398810015064702031804235420936755250613692420929952123049524350890123536394028345727223934137056046617758554397978904941221848727638133490738327572583954370042916595790726530013131327890858176470105641780220650627867120123517147042881626542472198370005479392628917285044860050107823539496999873738507506874540616948421795760938850380959793788189033820396229588922832871689393448848601462994105532162441574127166110883976354341607342111616934351642082011466501676405355497667540952435621583905411055588685176964923849776051337491312632865809662487882981496014239494419846967039003875627674739900457380601181819546805663857411625718755024804440076652622379728090913910012640264854815052099774184546291591518799725240797241616274816024279831895696280397027768646880778813091163949264117006995738701117657767680554583232348482847585804663790856823406637648741955102108680917599085961337807358708561268612869045045485649968620539191225301385071247344818661788012386655386223146377576470013672415769504293018163353254312518094495841748080720427676788125685429809296119237462223606424635110029381786741682353423225499875782316392022623578134354946767816225322644860895854644735987893972583860814091914330539444662322520638462503763218764887731434676270731202961863748023776388147403501498627539614108616548254528935291712491368640421905083966370197819408272035149746454816883741970539595158344557607427431510269006767507718034137066593374896900251203456583598740238551241069820212428071749265444009245611219226994649797313264170586213909963736124650727562081390669990222186796183123595710877381681047027929497387921297599925811366417566936613371971555973559205832440497537140874067644762860310888993394555566585397450731190479259392060020898585413894614027184854818020297679796712002144618811868340985136940142725356026970192546378421288056757075839783693560990294699098235379127318199160466299486768795766960078913483769399918592083486579333801977799451352213151683500035500788308704957331725956395018909312018866921497597092934255909033044558380165094748544012733146429453152999138774668267191588061445635897230091035864108680476794662312264166504296554606151873688232624065523912250575182422052744494544843200699709318411316991972583400632032598717639425366660121147856513939518830818245479310611001778891925034507494304567672348078227692764849656828128897743588983865065662212898488846559047178373438290832942826172379903745373109420714050050514045342254995324283239938712441517316758263264924040965740951361189170361794071973709965936135283548462053080435984856927613868825227113079810090056298679779396592967903920354667297101312264555937141065819112409054844530249821453002123291268160407005974331754732794685227460689821735742806828407026793161327571839216593871978334046581017150791092917941443196918448787435717165619438199634100053427281597801783787805650919148668441523572587994791446761997472192934115915564868443840364124090551878455672790145467189902124193785512337043901061563567231113466504318811821404027159912756269879799495509194233330655512528373697326173338477695765282279968655972092503254064627520501890208680087744444248595098147254861066006768049146302536247080263256362366424121392287959647679773128859347325952771798690628993964356458322143834268620645178758958190347363261219539881238889785667750834697734273809517274667092130443112083621133168284364009497575610593149408886223859349926916165858558592886654454076732492024291704403123820540787445430859601819473858494738248132756769536607392812270323090559720030686841243205253099336071241997048963172426019044017204993698767324059511649796538707497196362048994283943157771327548871431933584993616550933291133911133648003148929274019814693166490909889147677580448140804226510997253794831944571313592809076919243393360405718768746480809363966490019128805436426642047326903844946702337194805056977387712570318200198489946093867547596073770074866273242677600613287708634623078336769855204003539621753136184197033010754245984146638532979983529724856730661109994920243326375578638326740532570323865768516547602503548618859486254888643644797795196977377774644987292955990501330361833388277564115772103987979493309186842604433747252570243674416896392456756527476535299107572360022235666852193748144263689654398527174586893906705889780881492649792729172080269318312295437825523996274914713736727389559395346814576893712216185602096291903897886103738972144134615201485605045645914844976416403032271382742559192585319003761280751580488202477385949071505409455545653196737461107192058206265127646416470681551425931735233818132625106302002622325086010666079090486873228859873309851633388598053967325355624502852803399717089304725843922193247431068522791105602821377442939590423457053732150737895885368202594383158984843149311541116225523227202514087778459559215925212336985387267174557075631868727391980531296273066583122777344905135361159136511416264881815154651071526042942373601765561428908139286620412179764100600349846382777151149932605726729407430150952470217682141181724307231142262454687310021164663767564616904844926617347745620293085803282185227867300792876987425435398883446151085912893476878665529839341732302359089113768755645367468575434776136311149628521164456135625498161088595767911388772577250507899464298667028323377557403334300817816683933998762591091410858880358972114998649012109040319551963800675171880072860666012585940332955819849945787427298757689127484120307835055360349198533407430993582730377407578832985679615757006101791565207597633101190444986581095295428390754116187628238587456903165255054060441246581117252227297715797370082267918875717456690878224173968544575047027534110958427083661047358930636649756092463332705789374925195644288065032464088661920167005055405514867430812335162407971652775409474523683927571851481967969858688485775755934694070848944763372530655638161158102592393389752622820201584733748178765562708073550144586383605344719272794762994097488677697394952354467347376071878857604949577155044948531384485845613781794631995878889857204830966112618076351246850625912058611828003600642421071770832881885830758161700384799876323636546497923197390941858476989135707111583151000838012724665853761785280362142833702065477135493845782680717000958730555408417350574715679442192238751727309808640172251815408160170593651951848847324274359670068717096684688349269389394675927823331928609195512823396472368077886813895506414426198686045305367605115941426410349768685108448277146252589200689505253290934245121538227238374510578833504773078544139913426097902489786773286913965333314756864074570107252640705958007714527273588813962155366926916150827477766439345976585809367604376719781407968845631852099812304305837525298746176718910872908011374440206205479077845403854854254506018477746135308855274399850380433998721977628470104544444488592842492566487960520098584144261729536823170620049712191683759864987519542712408302382057139840335333029153754295322871385830245637435628240277315539255419869213548308498603304423091653598670390561470610466989922878737723237402076326277547743134582058481622384930256981507039657815223262168580463389401941222971661725673324985556777662266151133369528655118589340628653727927301499143264157023503347832277203190745558965097053921861311521758063022717079907095908562389447316287728751091620033052126496436303355226567912745551312008262785592445925388287149797549124138364919028235893753082442187857921808723008343135883670857345924492979016636022155035165887385575919251831723832290164427971268905176915669231823623209896727824991356269091318991809829397896772788528056696263469800104078216213644693592571260255869284149174356211715860098742167161757666743181062966013988266525068478035208874947628887525264558776037155084198979789375166505864756807016520919004767203780761597399001737916062816151534011423888315128121242455699799563369462589414482474355407089221735065336140792641538220269280534019928591276018007281786386022648420356006900296794400921553927334708827727120133444038119029879715764930633149336430011259769023804641905615947416308791087747295672887794577208907859659178244391871109496470211806833358429750914775116048377992630682489082203491495354698897991991947611870722328088168195307910171701188384573032706718894367746251999060486770183883175714140561955037128832726316127487722410137493025312012673823649510025231809529889523397462089321307494785169944117793937727794651653389905761786618209877878548906735694731638053214065364803349924497621581946206511399071690833398095259162129310713102019432357224559232285647534504636884495872749692527160984133804433283177514471227025488098583726009522261350653387411724681485826296923612941043119580325893406492882330903394067971903977668977271882056248335620362619797045578684758004481205208961394003615253023836805437765274179149888681553903500982253024438677969247130679624127149256512989995724408868615868124428211559292793278927445817685514287536660312759032405913888980675543035920723330000987069816539499033969498212194729609362579427068431888790230043249691664904568194078984358350506987703323363414678752079900308108632068216045226209247885671393750309912792054446602364072281433246291128982101119748611570427990386572244354797687759384360730831890301671698943655588334557156438225554625321053267767104829113398349815539727521571405145235408945150578067212099818292368014763475699231215655650902293204014902838360692621880578958932389708054477687574904573851569358003876935789817469923311875353861875457436967088399181509617152491521170902050154758905964653109017095334311388720916588646676216844467505992065371341037509082711258476718431167818593099890728416945964108015141951567278601361463648387466675813302034945789158618637763355584349722788801008540688363343491462195804972364291902068251579032018518601388908621956806475724064526302041753439660166458051212485750601591029881198945617052354499706743784604951236123857151517216363151623214696782147468991567895910948163310149397819257260616126242854671128063499563783902727640882139734130803213411390373583740423229100304138196169388934366999992160569242635555194227037953157215259546319224509937499601724850205312439091975904109583577948048837438893024079099360905078374047037483661651949431464713246615218180660183218977809227176590450359636444127503638290824347372499748214608505271208921090327532654777231133275398096955327143505447225377536434046281634024611860314196743818463478577808989201038868656978328263685907339094812590405583482435261122279964983158214393635854996026487066706119336224802273087538776889791438245259986124452105002257400771762458562584192105447236929171618517661719194416540241739009454952896166794874249493580935558659170301750096778470691752590165964286032489191022380941212723621614901936707967507506765546175813457782011954194801840416621898470918339999987328158471398285730861685985847862304274624678842588105741893694521109363314648645255612381633958910622278516300542654870030224987769841997355378433444305862826097459637919277871747275230220480372872621534720550139142240838325640872962261356297342002449998301934493819399892324883711217682104597695668653645948535256231529935326675231230400859366889286847137058031708411624149417406880072815512284016157417112116198328310266014722463384158966472415461530762934339271014246102554442146207225973801538126104814067686525056062986948604617630868542686633235760669403277408488255920729586100914634110426449105058123599516007635035282298078675324773542962674699987536617765443686182710735649372437796014527688063834495096952530379301691710930031018595415299383133906438579366514649639911177547903915970721766744942345047823381501713557215394570611906932859256827689335879314284938909841215015749402988062199056930712194661491455223242879539741468394852472697300534705942307432132330647996935650075637160778055579249109154003367279241186476819638220343835245943254646084021189771940126128570589723297679917533919988884078447087595878015999245709874151206362513269184029380160724072391691990774991622487255793564843515537507616236194445594607210269823235541388538217388720489946976010830862635772215801910562206148634253240319001935562894989316658629774495334704336937727641656162465718546053049928517071079920865144651124580888677837257109234429256886832778123774794926128332310578360389240712136208194646163490939589222790613945052406669729186118440819495905173180235740754677378745100697157950954524522785890172154685208515824541852546569447049345607487308778769523823297670333063170448437222428351131435108753673337503954510171986785646954007530913259508866961903841646522569675422940486261015656315269856671396435525332884124588826742598300843242535518636784252096088618594780192581914618444328956139240332873376443968926154810144843847034815043155771622578573605783345264255130444536966918462309936957742910911046675840908940599708331468658224268412442044267470194847538987819526057260443345535263120532367953466662155912603830862163666637826360726466145628617567849520538375145096835906450619914370901045539317163815572175650918230039909250254355575557700337557606172088613007066772089045314511600381824117046734951953514698871275073698508558379865894249856086318113148367463310963293923088843104912736858806173766698666365148033359334094349169385231594897913011096823914375584297005221561955720961555104235491830011950368934592408239845833358916061317914710492639282536806592105697893668607211261091244923609121493496730705455024163425904218817638459970908834479962028341868472995165770461273747069978180845695609445582112038674135882383157865527751969480713351381440984581090355208541548035108796770112571058424240140989676298328119298132858212412140990266577349096152741218873635714220523144079334487908833060302190086890606740772885078178278517962373071680117967836985722146112112154122407020943328183813079905401399490578803810330686290191207136419708004954921636792887124309871338965064569301618828010917216585215881058994890638872838444970344662746556648613633892241818588092092456649408236952288862666905192358195928277128906472134824093281814999004421790554558473602304296352374608372435853515194466184425284449028048065608213838792432163377567892781575435565941579109375300940944505286251216537281837150222461461046928942468253873923913909592213609617476703749628784369299395632772114061361029693738770947281211960327203550732743853579885631137683123658799846215809530811613928139488657891748272805196081630851499375099527921151355885274879407197217975315464182902205540010148213037067158462381479831132609298385500279358949151477070743154475114661319010875020006401416552098244847704635918828228758013239473681776800874892453445715167246928841691335007193251033246307192772017823338069205323725008179168750541312647703024254079193737370588643451289691073055878062193397498329351658251899253462139710278655530574193079276837039959376552008007940061970053672652734995730232460545025090937449120198365494278138294538292601340465210467309671863447265207445181703234133669405340957417793195732543580524943170906353482351485805748508943490363952194901927737735315509871333637457192877100008740834345162425215099662348926499499349045170149087662894544155153369923173232217133223971380859133427112959662915125008176530959865429580074421166730345518508230758828404695255434445515187524812778141775884389544218211668615538101010471241090801655041611623388161012089730164058648067279636615906046470243030626037236031902724301321603241521153644519224813454072876186696252220354993879491452030074389567534903728066729170066682693002902781958131439483725665218491060740560600752063126442707799472896741293832044667071051396687956743755261827942191251299785996884166859999887348529322538686942623608410781184184240912185210656938016542445551342564273034241322419807747630597329998795823565948780790557368559854495092296641098969450083398701664085680160877219570646933634556092934826661349690783632269079353465088655591124773917571645920410162704440666078282042869223293779471810727717229241058982699869748414387158473047396457976931953542227119214262555902278785616618218876188003025296568280026471045275902573977034090241846946041843009086528135366444927295011062105889415497216329004958495817934518946035345814565105604594735414186935227873634525718946898998590153180701089136841942957010612187262159374187878548614410837217368486236600234624600121356895262868554600716685834210235990896262494286419893004558768674325262196955060477383896382110626903266100380613941333730034775796831589293202686046740156126822895702891513128845378895553022164137451490785420235181541542820173160363534754412237386885352866815770630475417849122219071362666110051854155795895824865067799591437574441087019934528859283464721484882358535734335123774011221395589000198687738938847992664432934385857812414372522871959131751908361258980252196908089845398250871023972565290632759078528922554203565008027809547581910557557056660789059654879022561314100845841456285436001425832393437941852422383311165260913210847611015200254716454244096470839051097835897858768460320276927783150847457013136386367225915261761857452481905582695135834076441167162314832406477603248684588903528534835650205437790790005530308330290785151363259845733469821854519229802561630334311735106995125551317657930110727493505862768330569438493080991965823065599365160723976038988475635494186259212128391852284307967505031175061599087732794197777200552377716072132812910845011163930292299050113017030173017693172380504295898549115803758594953705980575893027364806617549836004737667109000774179615484169685351140381756030430490426744825049849289945826820344026666423078136087015459184138139164338852943919637098641680234718059763329648754957217437563066885253269241987106059524233880686976175019429629464255074924530119636375131498569793000422193559044888894048959182383470483455310281923992030344526540603435416956507589213115596459747079362351835759901281766555467023802332147600254940828185776274944640500081127834629017716413651771483869039910572092295282188016241002237880961886378001657594714515484310601753222676735344628897246787476360487435567482317510534161686277046224226172286619540053192711119940854938030276953115057711634672923220686238062272972622275205510758908638134273941548129692990446535283677976867568046759426846920345717150489796698301302603273724609220742932795161968362517479635301699246475793891344467951200677479704644022867107908071949578144549419985343986237719842628042013875688708948831140038914111598288299485240864048766758460609856082443806129450560388156898084983037751920215858543674301135567716702461887226147552662379327994332697987775836843171754302130202711295384636982491626601185443611006194375942570094367504410736136908511227446207991500180966887097892196296898220945339938433127335226980214142080214638281435917554830928172197483605105290273190797729308400984287795145338463007423521974162186973732835859832086312201386740226925807501862649534949975929244836930468838689028816925532264605179852296774838896693198143157563331474825260692808571573893396355199463965014647509791149806796924086853942116163621787126243421739669972455783490332123060273611454504798285654715877539736065311193065838309074106972679035790948451180364215629066274159724931710193828363766182739832265827507663414123701434290990987158650220492800921024783466427693269505968137799121333634301570506352161097921693911674643500603088837295261105539030500394912600608352015988505540859964195269360271495805196914408948324679019332895736938396049450548018712649006995146330640879897036637058463023476151741457412781618570102464957989963933474646514050626935220646970662703089186904399094143585966545228594806195242236535266153185308654839094089982009186865665227252607083235402590942769161311145017666103961061993234451149299956906457570566950907509413298975854145311659893535539556240992848068526405277079201154213160757190868897596202657646231335233792920932149409945014565352114302637717754184663147923738965770296009965620526063582740851380804743567321088224261226839895900145225674701277955241129165924355361261285976123576984541643414871375372206360214180116312591286870130818957558767440093987537542352562492897216936972624077644686482962947249140617757126273520520226995171370106789192632114616225648556775772158396160599826333616619732520199215961190640615358966896289623236580361699005945531108777850465708625910458886698682420015713542821798246033762489514685446505600511615579202801800516447086493296782828458679576541058651185790409400849875367138554207482265038420874429017267969225524543738928873587761192898160386901081224900640007450848381226746189850066853609262182223873046708716558267924381646951559929075399968751275025605382161912697077516537180246073301880022862966527970860187290655147335357698811277749195278222935735027937571333768353980063863811559573548403331267423120518962156871564419079281515484481756300714701530395852672208643439078882193424091051465682084984957769022397494188180105116968004868166320032574362381839112084471068500680807645279968747508898989153700050595487333518871579043193468354340362741891428342122257610076974787586762224190603637947010443837717042154456594370295661676966424562554147736323580156973679562579122019035840889574859620426363900732042057590691407933800407198391744034890965745062420382384574264739603917175394099956147297690594486394785329291016737970078242276056112235115625061762172155830368989293595832199225276936520781401182527238548295319904385946190081524340904396262859632203268607108395733611353419691821272003593601873698180593608310045425944408302821690601660217074018581455916708535819573793379386111011180492188585736024123845244816915195717864995250089744628013613658385168068482317656655269944365093746832828077355354221723863482456929387425530514304108786847428739104374712818702671319559400100714673318132519455570870000012506524704351553095852323739991913969314954246653514227578097966739715418641067918540046186082290818450057237867403819839463270626951930923166176516067685346914216638776343177047592249361938144499399342839622789548115103287597577423965040794087327280171869378195655390445534125916289408779477142853427965446539817031284830215943827636999502240516850653327585633154372370443770524443632934942133951865067755340405491339360177236125571592892365626925759532267200485236663411614689830766935924115419601277750328814624656018770111042217884986607318435834741586377773887104714955451933613239819603048074555832559684198678393035377735155967364739435992999176999465406160912683092834440068200099347821280209623747274972262680567483475520933648082581292439933224526494237715106275289082496633933393157974504666742796207917031623047728716834690555969243413163624312887719963090536683118681628246478849207620126152041988910232067869539672436456889990945003245579608239505275048984455522249797564817920820669882504178102632574181941003352027800799757901364724957594978283346712985517323502101630964126255506208366050488274755601719689537913795856204396061476584081711330570664983652604632833954943335035157192888063288703929770193939089759709648723378867800685088042320189621369457560328732991706045837249852187408094684062046122112455576483863666626528990533719676282721007959048525449602738758893027667342121562143335219310673556872073547679739008278868612178163558240533862032969086634334386363146807907169994101743045005991700933802282162208233196233363593672391528359153645911071280705864348664115716957924531355859423523675871922676695879963522133298446129344760891493195903555575194783656642754165762095829417176972037307309244015352516848591864910651643910796026981532504528335004564041176830157026857889816113111467151211674807046409332432804052127608613563516824234375618360426809316279164709007341627451456444655299340795970347192079883006541395151028160229398080257243361857337231271280524493393944175909446657995809877648232307676342471164350746169347372756388762456786146356305698171064071279861108233841313850455827989032875499676902028736415748570250672527979044169409740731999513630191200269915913589082138437867329939467218108909019911128781386387744274276564068607637328103539229421131025592740007637518979623764593492692740878067198875513801767598858629028044983293159205564845467047656981997872776686400166279291732337735577172194253126258067856863443467792070317028878455477788309986620450053352342258242832175760597382674284585540476439494295634086045677536225742906475037516122049958107900406066706453052928664103884607816627038558935232103036608241356990775119144604541433738051193950473878815648008260371339386520264916875600207698454847977255633514340093832344133766738107030603527523426210607910669736888095164762092388839770805500134494964882140629696691725260444298987576138613772003334061254070638185028698453412686860359932787607642047982388672280970788762139353623511453279325132869557728390774632248033372032191710602199684693594544048306411062843676657541237306055991507286606083424594081607815284310093039708843502143807518531427917114382140515052854033189289007652860901187091770417203862500171508269255991275763061185947124145079151311781182611363606695071625644677122089346339732412379609776683443559193687985982111523039153275532623813043739651698376740600380234597832329317114783132262655677843377361649068634265249586611753574993321274364929666033360420935110193295920436589803942930748479480644990551950522417413976504718040213755340714782871421318560030336136603263483324293044189026584217642645891700676464542996307670430988021988128866591110171873836164855975934524426130846306766169726353380832843321662767854535197412029083513475646561508842826793582893931704803211434867640042410595269321861460804511568716169936565680579176445581735678754046635062017477477483683799025580374526598912094173831418153444373085859620611172607886284450571803511175706808632740373279239758975350963461579781130626188807147402782134878898678155126190888475205774971706985863326811060334188842898468687939055835638104185606321383172696134124527250169372324891199961158461327528410482882916512403504063338902002674855509520200773456468694360573840275175826215786868780301016058352641108328347026530243255462537067383703995273011335011943260065922784825392520982827032921417795370488096634829356631369375146659678884613290353228486417929611337093546492388658698206681149389761503238495942699042098395044912567821283984416129910281355942053552560791482085504045765846045450089114087173632209162812749735610159293577826537170847795571972080360676817087347525327122326476791139587385890150736622407743288951351576040248759032065528624164894556698806290680957520193894077535302143073807557412513556173947705926714863607114945904083677032491793289372521366871619345033035532447581628103589277124995165000806487872314315077082761957857232595295402335022743750811292776409633676010947425060461432951771021298509660616675998954507836469572429925532168088199372905199955789062932808086158899929928201554546942674736051269362761725158064694942895655660335782321712948337776964206073081142250320674433408816347326498558596150770081257902442251007500604773840083573595537265365274287897061498051989473699229468267653703840660194661313196675762196416952763018298152692222164365326478523658313113558833751985811448919360076887568940160979688181704591875946490470532081627952388888628301107294724332140350407947617660577108069795444618212811326182424801864174371322986940098437607965009528348019811304967062558697947312629783023434663526171875638777087114218532257649447762438314587223470897971287022636435850916177904364222249773608229399449435992275626842709556640377266911456059055071436385631772295509049875151440278969218908125602834301154848923468034738555084078203533416248891805583964483211559939009008657170375717728024341095338693565022862295882203867974375061023034599515759714285279243210358306347876502320430129611543946064970396768598848248842134704994268584024922067439598724037750996969564385304760513185686114898034932041199861298418822686386840576634219685764270301095044466319861755868708647123002437298778350193315924049208329462584051037377550221988852077148015301126692872716281141495221038962760916510266361762393172173463578163244950445665462835923388734819758078290534764818021577453513847711288391554393166862206058871989540006154220638514783804155161339635264902539247447474147447710583827652656166562192781865518295149148940092596531742878520989405870703204348099693759680625674518045403393894822763304615470438667798427639502167056734820868614214751431283077719081900951237120224233506278529096660113932899510201189815686867674577663629222460597468616934311828371878443917603113280400592602570343786240712528192314141792415196490239048077952984509390824762518883161153340766424252361011661618961659805924984881624866058977873529505055753815285784975901338008011610858447980243245327636784079662589147867583302317076334069255054435646317476926096428629811283941666196246827776750890603427217369430440004831890852614508033311496800257116296406062387363310403369989688847876485403017830799027183566357284423429207731757662430005193526998982730604207137114947517457452487374403962005860076700551275510863093272888375918611522332462243183696399837372204617290390609521403969476095168018952461045897949202727557814023366327903267184473328093836742419072533513593761711649310439102625061254108694433335146543938994533493177409806449073392961342906873487470290768788355321009619049603809896528001118905634363437985389474012980977284480406555091453252091920622250164800955652037892713337027017688065137208203520319200098961301170001576516758328818638337613715118233285083544141715008884074641914942217942679977337539619843293533957460043380600106623724661138061541255488842862343797656467430786190706293006170897083754200097827396335755487856602608931885501895369790333790559606822643505777075000406967598637155936986587280427668247753079960341314572481161076545138464868917654305681029317564613983753589849421728718548572151163489599880203937194720302050219667498611720064317563796061648059079420542681158998326612853594355419709091816639666860043993426287533447782784905254078872939615500564169637546966975555940812766946534536854177079968911355854498445143278213367192177836844386297259480144046866753153978887306940799954674135719041839157663954477557683594968877136102882905431273471987065045822406619084592333398087184268985981608818969402491567327713551380275347484954717478978965574914449967556445565187318559148630086579791815393575912048415195380189642070228791896383867125794584445666971747577209859929938707025912551647405223401230695524410665384118229116977786836761087854867415124284008609414582779139502461021584693733950602323919993922319538911938441607798372713425940646574028287596849221985231301455431211392376638229456177429705982364390370515985947553350448719870422477564907603620166748335357412678566041065762506750203300348405451465520582055332395487728280208692547336822420048276769239398030789576470149657827422550347110493832886125546380687522488463573294083236663771073096394722393967622872426930082663475245301847216969612586574139195080482860183971679445328934235343970598902806997959288821215452672051231635808291350861551186231031326547452657247309901414796256488658309875318358887021327100599793826997000220934207695048850885685763216756455182977913625984507730344543026885938680569940453846295844027869827394683675578580880476303634995043012059384324970178709425283941213627384701413454833795792842665839593112822142221465174259480407602833889611228708869201456601829054560351007831045373508018333183126855594545093661608663423143783291575141575836813361913545830408990996608028113636016472982029037844284020055742049222948300267465183553114141697335553381089532649007114140794191663872797792236918742661905539090264646355817536687799714476125541028937744429749132346841177944524976802749425212568051635906205396998533484017173901463643564306641312207090584502513619032775919552581935276365179988395310747303887329488727812714364282625455109442529160834818682216872516250495255591368700911302412337641134359872456476200738499778775289330193431496192681384918845553425779057250703611713201969298112317972070072271209044912769563772809572386000286854532467945925913066822498282778562210358920434049472451755174653616718455104654869060242111599965691079268978396296578667849682992402236932980101185195343854972896244004183646236535054105655009159551158112200530742017998405110198830677022056013929842963533916302055551286854806973273428280735038660172734534022849862616284220676856318687928455109349194927478943241730615370245226457046135752983494797707003498762614293752568832626305842992922600693950439138719168605675637453734477530657251851515834283772020217636312360468509245086234647456318298220385211686336326253099593009387887008825031970642371734156677103170421059315148415320296249504934895724507062663549417505759501807213944471628942643759731256493837346781996884657772496536006651993400678966145109429046036085190384891088259655088558992437197402793906704168276686349630043851897948862536576889404643499891020775747939391804893831648258292030412851338649079237667484199458822373074733778323058479185146600793485617323276275512281302082569546313792938982940671217380286624856755495622812470215764393302436130370427052926247669210421782142738063294025841329623467173748261065651018939995908736280142432179878874215587921027229435528611328319377810531647262049017153242159650105531938329005993262666934977553456099261609331328560626398007376221084793792940751951597738288332550930688044616070972459549566491216949495301770556607481834902254546079149490966356717772482573183195536583108774686016589181705556528103763322317271275326371098083698797174094860209625833993055777424677536872406209763987421936471806610502356840830035584526428488171018279565600156911500058951345149464788839290858489307518563969613901247680991930499145196250872552636187538116625638757057010203955268843677380953209117179372079870241624154909264626683130622007034141026110623703281306091542163475764832081857330697583922189513050931997804593779529502356873106739203694250873053840939410511816129410199156583730376419327525046616369622633385098503039267850967770881074681110969828542389695984398618453218781955129311177530387445343654910394483367040787165930792800839171905752888781280271495778877097878871736837156390001519285341794860277422727259627320721645303759964337841852994815149078729480870856209435128997349271952183733958597443851987473076053482390269847350865375620947029427884802932355268155636649281791634312488340736853212082886758293530273813812560957764655862695833417751588399099508433195946544067357911200911204358731664958220310393898138579254121625758876858056487918028585087114155982831580959178908560245299391755107943812409410782805369301759129384632265121189477478321110462555968811246683017337496594007908411710112648438883471891210335554420296940599016078826188938098346718995968964844871724258312160052264051202235536743873854008266813312782584712265146750544726835003089611462072904971320451915499864481633752218461848388516100039912863362479507951757171147519657853621921042046025733001423076782549243923924879628506371152904645688205472833161391318579896817872002645616935341348720081614998264014591099635513206542131161506805318921667958180323175048410720860265673918284036483341450373067079755592968425634410022644197201240794524666676401307084034036525616555605511415264206712192919480766583713747213449004448696633185873855802078804334310035214033235703824627266428043194090227176371455276155024392235560978352797069852287202846315762722568030719676008002432426487911077442324639491852346327376892754273616013648613025364757865310167845587616888229708947581678180997570822537801116249258660784295992684808760975483990806936746944083024731297250969205821481644785680987552346213108261715508861238528589626312979312257379849506208903536969113856567357071376003558516206336184833935958587136632385938229294120780998260965238314451210996911712947561020808192121227810828442292442014324575712153412789121130725589826675117969596347049506899326038031214226696660240564638628753450552215582308550159229464079069056209620784877641091180568542808940272525454952981524410008635373725581533418270244265486945169264086558950095700158552924658282366479409274075566805989867255129481307037472635711888565045008603324416743675403341463150720102092938585834338681395322030338669684495212094548550814394371402510633040525445231489693505228909186953858104234665092337868193471345244300499770463454268116158210553416061010531323912331682364042185749445669076904023419012644040466068179455931208782856321633572936666772596363225439946749599352421590181746566354371335493461023673780118275140918388697381221254717979361322276857748325976293112446982895886301331491567387438842109683956382941758306799666719703220992937376100300441879169744205083261026436415296084663115213152046486117789596070972398624466624651007155976124577974510740132507997707705511367567740631605243017738493584507827750372089122834092796354222718028835878913171132328194477344445163996928398795207024847630297087309736466969165473157547480249062584437452526690523076857858710177869595087105441525627999221033595701555474429356573414696588866289323408327003180317593793542103246031797389705682167878941849093327093833757035047871810248861322812578840792020931372048469551633808517109466830908696663841466677017934424280763657021982991174901689855050062787237744951706062778886345015340701195571242945831875824547985288085229110760612202103050990273236668116979477582514567686730647793396211191203281432583614479559084073702926342106864569677139320470011415293997777250112088720194048629581600610184037300028362793106516932473941389982375664109016466190853590389318777773890323056320080789408408716710093633680580679089555019881796761948630002634694399839963446234034505245642427342093056208495428988115401796208783871686267194110968980047521088595764967584432086240514836927854525476128926249578252952787641666670432099738456960166663159765097846377953181458766679239416439387742924740765706492263552844435014383079563975657476903851828637573191174245170042861471389007873333301278729488301302818934461238988892970597242677149941131553137237093893408855793682166667696652081820167550696912946779598940432606493109174773868002185460411367172731463664433031953953979795076263789884100976883626093108215787041111095568530229235306445596015129432620383153490843607452830871213851535305136118275824169887752962779404733129527287204019819702912355305425529478051578863486521394701921760174723131172698471126340512083448455463232154507785563509104561702305577552995879874671820118115981120307656835075990275013324337414722181138377970905884206077444650142772902525724078644002551857470394906429644070436096968919544960116625377200856958230278265243308395224492338021380210478801999507687057879702993371699416702414840279562926455829551570905594073914558922343432713714192836209764269270435360016250257505801815209637753659421545255084813011918592068342533737975162833654660787804284177102371757714663179674075070289173868113519594967535627579996153041999705325520561146561850286848409343955607418121241609653423262114819551752802781663164310038382562942570778681802832562367853536925569886902405107600389963308433219304437355560750634080246948211049888337722096181405922001413624137146837142253127366545730454995074125642717971602053924145314819280875069846884058066181564925245338632230919053250504983957863486650505206573821053826325589969871307728960787825983370115003143225218797252769104719364804329806417187590592095419412217230753839141043731895800199077955998901558711313907781342390738991692234661567182867578093240788688825530820961367097169446923275716929660927443188158862985182824501127118456167114081109535304653579210758628511739277673956735606558422725457137373163499135510073223559751328271254957127759977067518775195114573833599289272271261322079630782429000334828196095585339933653627938217910134464112762955731591853205274734789746295759826944041763917715922767946520346317576029732229827494369705169155752807738522058432919954865261992463545960197730796253446899519599545205646482112702665335622226921079998923039679060700162013053673385583297394950121478069282286548144099341011611049154511537900471892367747084476165682708419887495969355547572659075978445438685174543183602803077076389797039967083322834670964208127464930540387994987291976995339293568991815092793509274728682075446690471263274470238126309854913701918495902927442560505655771416891746405208146398220008926789591141912886164636103250262806497741217901931592573296395602960168597721880493164002886076466671127208400626816687288089896927482812507453487389679320719398682933729303182577506574914241143324364716693421689877643479003754403407051150393176756486032483537886534023373177521373776428225008350625333918013883447134597209794766956908980659428101396167865304767140547316581893776818593985329824687170421263176438499120711076764758934572327339071186669653535245327895743233373838020526359753884569848165928232397318685712901640866752958410455625637317777219761327720138752077850329747408713545424399702891846133415505344254852935304335425426718440973564005970007811461365274113212397225475709048285867386788309765569903001058750689132415028487431900302495030300133099718957624425399927500193043776862133186552036352247271015302900341589497085421653607997102039926183504242067795745330005703368268535693102751154167495242975543811151866129254517693258699287664859640313127909117906412353290155865077679638673616432714281548658365949804566670631448796348689173691221059019679810474837980302525375151244039215838408235067739631836091079584885077673639203337887513238377011985633411354447035718261850446334333133517641778001600437761360873700391902391401349030529856132934431560033589832206282263003408009428656546110568892641418281943181239839764478100804913073550039607235420141953899141704259938167000980172609472362291178279729878540597754980199992833539289401427273650222850167840199664381009968370318288294993355356977591686182450715191736745014628285884535511776929684878881359124302757370357483599269886828975350000621577518703949903409774323184838289980049879710217833218339674497325838444072738022242195453672235755377247713847221573422317839261707942169206695942769416329341159763017098762423114940190478366053838495691346340206012749689466679780206450377624111073691953422616926514374932080388231833047504267143709741296132602352017951940335217932828652502829272335391689188456118297328849677018640636716226024706024827600394371929722493478233887583417078967122919083420865858097812521489886211574056971837909318980366378989552398401636221698304154552158176336355097650653920496533613431855363257327857302861797214950772977977014758933881745545473542002039269414822204131951637301027983482996020789461508769768547504587668646436327774740305804289897698859103062204958056065391371851455569994738301269233522454194289343904077681672981136132764873511490969964393408759923126230357452718770989982615050090834489537373180272838367744023654514994698679022973022174318158446780305098184509346359876845043125858971126137382994915020268838287758697048437705708681176984863491522778763717743310074374259900739240489550552112600412872821908436098565806244111893961424649560141954150233329080210320699445886013827031535535713695785344585161784112553891264329523232056403556130122727128512066549811800919906921224108172032757119152332193424045766900925787004042825908962879458788905216363544335038538244571988825916384300006971732677420679150695337768059795884083995246977008338538546277721264890037007000736944062159392564532689440817502774212625442800006823364221489330859753206523957983844376277625833022222598904386977966331995826193170845199755717815806900485100818186636565075796630938093925055610179343071544105989715737427439449555974030651205386774653522761220926512477068857115669431459586808462727361430900899279194495359390836620286070808973127913312882893955644656333144100275629207715659107108345040506712427735017784159354136664506007318962841478788610538488025589788086495422545112180726160784199014880926578772308517533454516467211249317727282679115005265872338807227481801125660241435868241632221618722746114749232033204719932169630481292298642615564849391885341639208086790376975538422086401265180301472215547213781267782830705460229607227039737247537473267225107729130897395639446027223262575291711011030850924525251931672749460106555477024879550334625343080446781152458836835298444840857406552812833712891119253915208236049302088133192511802323109701752240688629120741756967792900216375945724060886468195807478500438393360374693021197946899193094729362036948339783095717593450035107863415328242663820386122173965566007193840246097655215988094900254192881721461988851556035560798021067095019031551748955140675035352735028402709310803171957210262243870683130274537321738331881191772285439946959256748048303861406788308801738210821690331185532428950780171873955113543390716105380428622034767117031838473380037360914439914188266660698517820367113193858395108203716274485222247461007419334755805229569902129846155037072040888479323270162587183478459764242094276038300775650244949073251814710656985886594255033296260672460728965350234934179551044937345916718063944690710877417882671169692981762827534541305306784798101828291246941062789915461886445680981180912343207306693291748212264554645461572339302776447208305471729024488465544102879046190576637059544927496370101604828935456257720451387511588834649749206851792888869389485885965537356702253681269676586912764457599265434354227515076349539990475739837916638189178307096198703787346176095995456385345488292151872994839606939885158672512387400201571643247111412113955340086038011824613862868816145558806028707855174925130895900775984873991399318256898458985439022332356004750762431351668445598236746836725341668700215328686264014837907930203562896378267438974715497679167585409453792798822956983598241806019984530723499093805031376795435390702418360072889943522884253971521718892385689307112044031666965780120910656841784208595124906942635418839682319228591054336496345006896860590102622909238216992874618094431118755580602565305156691412688214993466538762140888846494573735568435213162302574405650961746240440325636211497128530757348095951046988610148316973865105721754262910443485597458028275580159072734799375328436213915186043765357712743524410028475626804415052322093021923635701600392000301625352990242728300721951506671399977867633415679594087934137418806073155407153694312685755925602283391900330267025431200473647332133420740020066794614816782172175574735143663048509310864902314671932364254263812173458587250354336124478523750220957086592626839939254119597650153006623266888407018534210749994235746384917740887371313534769402706255056218214974661305513335498469018587300312304007938979922549296350797915434682018988866420765509295092562772560333320730557812053315628023145075864638162266467196828451890192632038973473937265438767784255830789790600477086274870089920544988129679010980137942466491213844137856967666852443847748590429671667674324952965673443509637435165543947298804436840970341697872005668143454904138915791574891990081043212121188832025998405660981356124864662840765180963783754726658784511663903219216873851437732738225574423575555348971262748080925091134342695899100694107771447049614845700995601142276006616430655232520978562681349783728104529710136383340539924338408601515305501892882220565265781935886161468885017495172545201252415195418125652941957571475836681898630600533699320272316843979711579850064231974855646289156683828386749780066589701132079949937296835472733403749529422383983576334813738498000286430989788359102141925168418014658165411833405306723076031012625080326295512169474144732152511839595684012645111548130075368116311879686110064749988777838430713113758128289598975069336460043603868750479540496796321421032083505173555969002480192747124393309379467363394432370976744877025677209094319942373485739284582709959430069156302537688061169255504104334704337945904543001356703747417662508550046856000134790274836864649556750762996158759132364214341443358945632795261274568106713887547581722308371710370537410232991648383920316148088143134426465417251881436086753394064154544721431401349083056544564345188045318156811479518379133875260713030249086696991375220635151151435650995257627609417079050538965935835082233277263938912464765840354006040741372367985924721525340330175127435385453815148277050359069400429080429095933319497246798334518661580224715293367403906067134465012870067718049727963616821886170408580352149195407614966302081795036048119467168383327292714794438315253432016948111431995240892029304854759515657956384383621836129115871565824525015406571380600744802053329914280640738821303202792998013364106552991143484181081293229939763113351019683002395706118400043485955973157867713620084260782675207812845312638386872740717373483904668798869642474660012507171229704407848322585254554691479397980190670976794031941965440377570322095428930497102540793136484591378886428421890106131497989494672329515287660819631932133192297856837202602820859370283685245583736056845312752695709160905233466103655830876298226379492678500420765443374020906868287809774631654928572984593351937111155179737862919135437925917613669127562313545041618413442224008974951795559696421421307865867317320267873663904355469292139441898305731540017838033938794620463975241223103378041281770366266763040830133097911094225008382979215335002377294762331730288256535065322817417872115403914110906801272490782074621907218929171262874180164173995631781432248661901045501743801213395602764377171613977704834273182328713074963714849294883408548430385357733314996918503271890030590790926884404374270305721672989176365695172564443811305839761973240559303982156679289823489239308884909501025943530591503861939418996096743918102950662465342802541565601046056321515337984256127232117800825743389979110725604274841894758174186776829618879270302398874596650483207246241270675863878872346902654478536075574698565350264636686041015755768138923254004987898703161079457971806007304023969002965798442410961891043263496246956804741673882908603636163991064765678690343931359038786891895596610667198357709578004279668720826425952371578758946429025139332162858701372657908528910649677924061499713318202103687964776012224435215600090681185049562141560301755490468277823219534628110837387581807335611284082710979001960403271909988654409136135439988385127219233898832259196211218410714561479886687673889173105688049796840607082552587180953457049314733235803758972761378066159811643466077234900492597785191285604957194402576509197764495571015736836582307465697992452185593127127149915017936579131430280005472492408875323754741844006771431849164315202884482742781219702106420045771718056283356610093803967690042264093527507553158275565631128864068413700371464894592927677290805000940023069639595683790259616158847477610457394194548812012708864285258498374531804125098355539010907690159745847696973139006602596657960199135683214669399577383996801120388255437067938033292948652079857455925161796105668100257565220814050966458743431012901563735837251658713877974831906121679871191334220545976884256623818579386646190446499913926322202777005620491067496727171399174503843009562515291242992411342452853331581434131347644942431620196271357035254393620480047467102064933955642207520197944539847075530158000505552043703958989925902643555083096951132828767278513905517755393120301174076524192488028438368089855198225404732305036629107697618923329862858684216850175586442850157209445505154745309110422465052213394655040450358888487436492189293177397383156336598751758857171677916909033298028834722611101722759130810631675534203203331346309886138794989505941022749231247278861348547936782376565132697874369630865365769042207579310686868206313509054157772937708312682796479314992844719607252539416268976551864414217809148935004302888881035535768905509486839818776690024917164532206407020433084542145660055370445079316131263673570537844422838407679297936490125866773389623592108001173611006764449423096496013102042276313692205207640991073941825491979573525635865450879781290685952642023762822565546715384933934221963008596107163585578569935999677916641646913940672269760035751844668047520631358554150163761253499915160157797240439441958694744987456672397992692837523276318322414529751002878490607659875121380871974444521687583840128666311605470150874700287338127497176658592474963809406502689810252549769585532383118850077264108260591436775294901406343362891117779041055538295080954155013354771969574544337572889780586295857589895829320051601328140525617064523057523905539519980530133720740355433171884294147538646390913575727408110478577935423611222576409297205485312132699528443722674275478591731175582616560233082106578240604731127657033220120993060885152876653397615727587105501196894368507692424705841470763959500955777410331966229068442202907194208598580976411825956339500274073527810925470476827873261375564168509954778465833196983004725767571383543238163377016391439466802020941106015017663902917355258941289428519320230564557472057642649359198856408769276521238820994842393199999741702854934278030029604074086514216910721089108854334379976731634327687024714859452405334611763458861209816236631952837161330836309692296631868218097075581362302263725124130570568342237848316469306446168612609142438268565264473754727183448291512650970285255724338687878091109016245307901867582685153979699395334743039316174385863711934622985373310474064493281650323862484901744363493934222932191953184933978536041070120842137361883930773001685518036404036505509143601422448353715671166042688519480739424581904868618667868742160320897782124864313396358563185961048744093574005765599042499482358108621397836215121954798261735830210538107673864121508875141550419410675881509955624208787183705040127544983357546149709501320273870901137299810953080470516646274331387797884169741835743371912283184196728978958145731737711974470206902058162894201430302375398657034781161527179897201774016035903651052377755827614145511395315348607552020246954070163704757849077830538696415935104324498159350417408189726914131169811412454078530251369515477105439298403029908735277483762583441440228406381494993229193002886542867053142925273680812056441913913501022436560879096617479557611561689024391779314181625968017581737233473667847590714097603753687304527446811432997429907886627016102835128443076937828910656773271776700126660795847225475642236997744940763075702792238005473651928312298476443998254597509942602252227667025093510439269558823903881672925988807097607728265982816142361971085164901480599709922225104817060469979114815534242679904098718383117145601934061282511467876832137877517438438539491288036211020728528397406281036300917402276278113184877825166813363325981830456700978964671583386848000138312535376702870971102671167243552469443104670962056879273989764405116038558380917039890747510840383545648035848561338081187279082081378537339321305303203977440137468658744870827116357343086810891271943746444215787466871004834236628475163506849335203508143015686756632512226242775068679330761586838581288521698478743146476047723589626741500633703079143504558761004748384645791769188964880833589038859484016898126518797189260548362005612817994031564239580220850883211232388555433982038693582179686388085562872810182563782575757688529456693331316347532860289278946919310824820893051765885340755612508603902813830009825312949884109568491286870961744675448261981669834506484255877485230950478917227164599444832504301388288060575164687715344893977152974933396419965255190096011486092157540574155632914453538425997436546309885953696418700093412982059755493742745044124564982257132681508505036883438000368455741098111606864907189374691118626709431118769360750642927467606749377515783416003813641382312155472107001141366949554706652840929499781409522800981746383081039109897625427110001928710128514846283545118435571425529345405575852649171267623704565395655674073773700208074711505617020132028616242342871024791298393581578827885637187335221731983110893089169425310730847957463217826519070118862610454012600350612002535477971012497200521934915322154249532298423515793029721203129454857539166989708773827905584502199283385845899922016208838638480694621551901343037948436415894129532232210788379168632902270285909929700404217431368514601435902585805892183237713930610340000632703053680183386138693053720101595094688845261854112729527037768437184925745820438681980066140228994192843084747890415180742021792989268456354114549443365359716869314478745809279652804996884752025996574546095406631039387737944129182514605497750819943643287835480529699781977633958419365380096458560533955336604821491677343670059696790097336413989241436858677436771233156979656403346057396323556558825117851494570767636878004055109601142571147266995893285352254535697060604921715495761058663382516585403402149862620399474480653645189146984727489760778705087732734280960987914149519148191345283491297695012777534232397397346964630574544862952304981839941362684957644856833872753577208305179159966719318385150679682340696131038742167000341660727274587111397848005281639872811591168261718404924828787132664905512335138837363989431683767156116251356665182513256612219475111050248278916333444828376504468781636941035438442252643460136927268262366515967993826368696332960533188694651391768121690415537812130016935642563925480408462073921177981743371334957327385294832419440145709492609639729512011433452205957106208847545102470710261451847005564421725965572014029322643535197279852956029261282774239963396467380105559023102452413067504051736498201786984102916045437451256854618607418471987530874117132021536561621294454914909483507662636251265044409436855713483052597901495536536469534250760953390150115859687325737224169476067738746075361445471085867791086865555336263492929389206170546664321636905629584536323005108535396304394975189534143019135035730090077946727389617478500086917946112421913035318765927779430892630093865065274673469036126742276372570107529063349063093561970869829314953818597166739024129381823178183557949341466774834706959151707062667267518320801044649176278197563445628298520251574105243078223774087337981137172814190917805808953225931971159892329435120149253968526954532073681311587693484874908176501300978690711441682450952630779093893405098441861957898777391191433570223598628798499512564448353594233825498386772601147887504414175756711377846745750647407000361289869180673711893222698025140661861902032595734405920179471461841693641994559106386333767359911073265908582461254861325647817714746538977373465296793102350331152023727175145194077060291562818260099857416130425193877149715713543804298243305766228738458963175687930152571242025212040559968781807497373713290269119377029760361381522265222302445798534864574753067959589801776387783583062044797303782230320305021670610379720004411148339359451943456807084869754481462026020903080447605428055701526718433028273146823747920922119103238197688615225048550537783093121661953473233716243791473053260964657646698048279258018628174235707135281860123984220037524373576920348425508654112430054892135580743164460618770886135545986960844806396932723182199891802628544855936468280985552539435453995140644681785497883110320118011574737575890986138615098183957650769064496656899380000995337601186498045557147547729217043700169235147780167582246067815415471464388456694354344809510092470298999281509217155904021661207431119824682765955435992180905564293752201380784380064821122580339656121091399635839272633926009350752550979899641890062229785104686730173192936479308742916448979704064841075806830281850397996140000223069214195360005418263861563468546410999088755723627626283968578226011763298168359823197865088435569294209242724097431212188931077870172923886197759642647092330526289270808717302509582278593755835826501466231225843363655729482593339807743144287825405352618933018481203660755604084263344766015073488970484070709669111998229047216765171389780728077885177896011891877421813495526182942291901895990964903372059966391323804827063425842614594704349236325869631457386814904404614259322731471075604116912467844157316025747195562383642695607209970145474611181102430266565908277000163975552906194311411531187670361966124713962777205315660630879427269269075309264125510675917103938073238524981998507237674134813368770031288486762045736605197203525284570655767475898985586670636412860892992302875432747924779905643401791608226662946306903031929667610275152084456763228233028008757120782608623577990464579943137227796631184358180600721354366304485730394220060575588048300276589087912047371436613164108046313965882446016721983217661264791005488522640144195622524550827154218579508971676021931020141941511717628390650607154212431617012476105865428796078994013537668131174629666147310125418653955023942818960621991002736495782926715842634832293099247483475516771110519437860209718007844017064203362626224480063475037813202786446733090025996923511408022559781252338081023618752649188947421812706800708058675281867709509029275189547647840135499673679580755342378188126492052149979087312225398639789329218141881387917157800082888770263529037110500532404647067911657626940144444070665940742711994190710644275623858721584091940067752199080446794260290011850641366981334999716157833572260101860331752289333909142350916507534475752307677881605899905563852428555240647679246111638332802835384933636348414246719199651484931256422511895438873144980231474296391695189121396579816062814201939628111545985599138577658150435614174779714707729719673237395517599365165185062409726358854953808356741494045633322610419014335949748469430344679200911389597590007186726843070831420339006177033353973677882686150860980238583200902096420011435997960149721360011839118293698481723589705311457873484505062358233885372003338334132525216438416431715307704757857604031459065690871554114142406806005194189114556337786087156519223272891961280237200399025943066076155987403375796251375257936204007955499773636258114197098915409132283896046957776553888831036848479164780965955332004832988136559449323337540173850416802745149484142142248558913676602041695652114399761703431385200035419038054050904216998682223374712242141471426208083046520032495910022832230850493173518551607251503569971542474901573598751338938879318970491910000805802645319932363776944525242235151528006859217282751066186133491437102535914867275496918117899495039945915582923809145572269911203972727163833320729775357244188092239846119887960588130429666829849029278880366294658801732235729993396232242608268646758721498098524643019068348108949579489992743115600354178403563661892981405543332889097915058521901040707136773654666384768339307561442748013365305094901578378797656149569823987330718116799573626158382558393410098548717646771010940227535428073721586377330142866446552012951058936963505083202140581030379632436845630783344379104455498845349760967256714637114303307633266316678925691743333785451616186048499315588341229230886143086894002818439157373742771797814771487182616432137349398346497418466104483893279965263432378177661129973985289879878471799861485657364820522006830588129380809906764221673415344503339656370496550860825837631200458638528098652767334302748592424262193454406130668869336188705575927673184346345719468612042561592196069514034356798358479226356664480887644725073856054799760011592208071171633023952808628618030108837013624865835844410894593543325100444794631212272838809534080966328725938548340739700583521398979977812516602029290124672621730618753309177103080729219364495013844708518297959104817380806714395532434659720021137885940457123287274175915810672441094322305706587152000674880511040237742585488227682438740267196447308354435578255763253221997613107323014881151065527126490102651950756686834652771003334336749724302346020653574072199589654051290530744308921429099872010911756168321805758523244572754026315759942518152712915606418233732098786483430854645747500573979886301368132195692941828349556168043848935168783959946464850112460812192872020409796816029376194625326316956866583916824913219744117176160471687252557180956105491358885961434459633040788569837911604463007683075015074520892434178758035724921816523044897980927129814173982723605120326951794189893378190609656037340684639264459166472157599567368848028930234790536054852742707786296628553942449003375529766959947570041851818873334642121138021192883508574154335776846689338214233841642587180444146373891379756626717708425011232033068908420330260539325781700271883998761330629153782821680582290550032176068965850170578689860347661270004004036406436449196879899716542485274010513231251036637196203334817072963127423442138764268966248868410945962954702876712583134883097577841428183219090461082379711320815217913595029226090767848292197638760310748022419331460063235578169703900989480530773145710071033217964092200867354919114145823789789064439698250543949376384948342187192110119085538388508496186074159751825227807428134214024123805515965186493689937689427604204396554743734299526277865397498405832314979422727855113493779433528608440269229574021021604176519354469471568658343212896607346838978410284752144844270719924378160678871357077273379194419928926483785107919959101104850151116782247514023686917545141966618639825565010209012686928749343728908454310375797613756509916515846351404554934342162110338536716254408351002747700897474683999516695655593574995495517484097722445512447845435204459412513651143433579055058298328543936324894518871871522191271032074572443911145863040346906404524160579484142378407039442146436106706739036266505153843060921781589919279146053889135187612327027173813929014930983767131441023792111686896408388317701631495987628274332628513272104384662422990649826720060615723191587602736000269246031641420580902447483955978873349598831765981309080159045626181297526968058835201587608626809301077083802290796151578498731554406961094140595547792124231132951515114684284648883998556950844560610091012038683582550451384483696294148777304242130846407925304073344938891401756979133102500033083111180394561101310871466487433435591478371008204713588684006048908301455061997585738921743771043152659619349858790939356028686673693743747467928423591820839468597589738110735216801035382132152984323358444142624626068981698019101946347120938936485697702866882187445954608699086486192925235426666093500288961531430197380553903607948169337847713543645941136117965806552301437077541224452534698630096336667477665442768318620304806376284154284531398847378610432741796582917325216260318001270208768556198787368999412146862152261295211525645324527041714864734278622476839797361955004820653542421394462494423539371572058848282658006951704154748803572648653403658176103568858844012962926390348399747885423869446980282607643457634539102276141711320200695246199880616249421217988423609158500763585923614529441530097981179512504503910933597232794660486727752294570057517640176568346129158948583388393654423231302826981063007183228674852429180323809215047440669798415607182855273446976873162010468401010965643125726876337906528547530802496479979576644858620801265466674339765354034190538974549733693413948553000716522190279357161810547381690910112172956503752738133553353743216090325244726765393095626336704803926186645132531647898542955916074414690199186294044865045791741575600941196759141422443181602062038260622573940787771977068636110961699835635978275645440155114966647132612358967772166404842590147083504128454055250361942579015887061958867062799091484388401590755902606004648313867949000658395374737285857761309507370290209980785898858815491903290889110935100772031467238402740538911057774608717071221064079944588442733123986249275089071606551465957567521206706160358211111936739918782137293540770464222454273086645627526616531363999012348064568439537483681897398444504010943794067772885676170543593115161531348799439946879861725658077766625237638704860585278371759451950930642046928505860125975243834762841625085043829740936984681761673125768048461332465356599419963774005554922769095191826402453400144607074466490269367998773363453993730937055255692342841024593420322425898877162683770918670053928909144104063871067675691167708508541791455007228162053327771244939603479824751495956799912277166008426271713404784725128810010135754040997948422688594567886517538088260054115622283885774680248612332074804288765184036433621689362654572538079110695409260814695367189939276734239144601810863866897194630319082858739766974026708141862320830372979745810597789839835726561216994627186225203062267864780281235207334088407637157650197406734998763669177625522796206948864075302832305422351500959984130881144006902469504315238156433839933108605646589839037150503029414670590776493119287384055020704328015506178448118471640563777230075215488160072217305209650409696907836425046632748863113345812203512057963896360972311038496885929175874283685333117357552627750644517495625160189644096539044583931324479729548849377847113239443030571808450080396944225265959777726699720994110412531839405596537840244644209703292807888539953802219898838623236175527841878380578743984877594881739422817897564526298163100002330741131807017674047500719099398823242258212168740780034731860314114211396204990782886058462858029841591724265041237467642401633188068749111157255909073989390826353402410649811105308740513174728194202703867882920806925350116083594496309820897721982918388151588466144854416422231950579837037404911303774328861759817892580953059434702336029269243108559017688500711076925445727878562456994861902643839975578991416986750812277786530691184778708547515533561557983409858993638539861977590884343933511025166345473732867795884609453530744391214931655499720868403589741616874651784013664589491700822746308234099295543941722675377920560563530785560774179244626374024680391675221835618203989532374601137217803885965019476314302576895394715856195093470415519086253773077790465520389504830871226240399184282755007080537915405233459555061461991840352287204485666105361884340299356631162999537209597776014431676739395981056152323370389735960339324444367491660302148021424343173774876627486942736514756155491628770513205158412950114213270834274072616387114771638776211839593366329824805055279281679959237759809961870941473235436120412530710770707129796632505079448822455569053371756048819425693711031821613456938219619813639926666374246680263488196976068106415137825200151679515669656222105347063982621620295548962202401899334526005904623050419454008969578543541153884564963028346526931420613615894792745386523690424685869789578765982086475880673766122877577133986661307478450481708396792493617996573904380426022397094559771902301589291876752653455398029001761406493545389476329612176415953935806519812993525558160473849416679695626904971746857389162123122685116711995770190782212054560242292012271002236804933178155010185245264220325550742089475799707893348037718134392992052654114028512350291600268900254656060790720754938605873521678096434846119449784939764418134306054288013025355980414832439084950156800658246995613904741166107491509787438523757059764494987353234526595675924529510235470144634143611304544621648023018791918160698896621791513438812661643446909093434325353963735513648106376507552621644308720367527667045336407862526665387403752782844946350576509117469004820540098022389346682200221168923451210807382166108091152649344278932858253269668707072242590033839165687063474625019171159704974536812970673108029788139302881937952187216185866281120875348447542570988368999993221612751629807401403627407250808031904185897306600873612881569034400696412219398957034464517762508674432792325794116675634404110153647907679128436312889717417432415643753685815578303755599721731392613208613324391755929952720109367130750234299001512955553637919816443967556351177053583922145723988907283673760566662463561645838688139535597917433324213909143290340826836713287468411175203875693933691966114165975980269379482031705662090707872217989395291363984953659137791903134424463434395447344263413765315959511068445275221831727444916492755317190432922452011062136428688874388078318957087826219733020113509835940391461258186803975893666224408454758081429061003973676047669426388605179845769091605193723209476813920417129870894976596597302458145418402827192851684408659750141146972109586021278349443810267581607938443353542012752510728214446023721429276119478987190737510101363382368536363440809173513451689746792207227733786624307951287260659769395229756665205003481536732627462774058241589317783841243048055728554292803559499740178141628957944274000890479969678711167622135102512551458842750296640809455067629517978234001977639565085212422123937686481137964110413212176939714935929339538855754265941089949000244780148121756128070082313731054741280128100269889943211196049225374269926792343405800879071033713290704658498595534750019336809545249969892130535251770990702907784525673632499656896002201926984595805050164415898086222391412363690821583207023254226589803051032864969821972022020590941022575359699457593872416738225659861583657517575571911331398216863790194706820297540062203692552169565013644382987155712482378305803488432828395198907391228612575868114621851338649043198780504023722567320517348203981129028963772997886906676133410495752211730473911941339740998175438295126805960558856364540658119052763837102715867999965170212297422850121396811109765361155279795953791371888648899718583156289213732783800319084660018351865188172077265757574910953281489712120929727227134315600531215808620695256678989723215823903280610210495692743964437301682592439915349886444107739195962122669511995063716180894959036991175807112831260604141226473871421346321426902882608674151056665240480507561073622337063225790336108082485920776608992963478865786031822002622139325181057946459682086456820956218437254341659762260880327454372540105753414171765792134596899183551003642368504041720891286738574672916119062534428614898496938884786718582117754522473838055806729194949036322135924876247123803614786155154086638619316935633175054705872391026460121720593081815164444821782432671952368734437029630781105440104259387818950908066504100291635675091940855558343988755672343811749567974244539832587094144902352811193888926460743741154795963175065119717182200923544083823407612428097789952096743042699985136291576148310809128206867624513339628513435796090321889306244614621037711046433529129498725496210156602442743058939836061007475369100295893737288498207983468049084114379281035699066517667761552714648710436991417394114403379278025901318286351568143906891613690133102863676154101106377316416426579106281629886413765801031957246732495633227714471088448987664888644968992244280829672325878102162280309443278411626433775193996963270985561972586802214037598965057474740321057821430899633080936348646617202445383222346728597031609228284466425698029189357633184074843818398202545827132534392614473554926290969178546732258878344764727190909941474861118741820083902235382281084407070859566629175144151584825685815611602583996674009503080160055665298769979837116754428984234514747759064791825612402399791926076144718220321581913558746165341105070672307234221813684244335859138204714923175710009465682026986842851363917253406079033047841778014655053486175392964771405201593929940914558880524612763182462611319588609228911771345088774556215414003284389567644530815067646668000293384100452200800840476224818125143496537423773321170236346089228946427346826682708365661410982478591533615472400679529860453030495686624697554693887261700400457160741078982815014446314119028731914574739429612019275616394709315464565729102652241397617547630220091855010266132696266093603347831831839565033606961670270884007289952376645028545010168372622893192170980049839810291326703235844576807501192646338391885911549372127688168688558624879490377942617330423652172039417166493147285259096983009411927885845554767298677582459540662462532454057180137757730330010192737305877193652024379949623361237670214092689509104629569305439722997778800686939307219565096948777629016534371998410614764790864729328679424096316167953011618841197336149965558625400324274346704437892255469636541132959209939457051247180850568425956227256327580607512540205492776887123542948496528938089266060152371473060948893227723563281514991386847265380011842294672149338803546493642294479536010755502409320568628508092479883445075702087226266479338539659594180211773694423102928679023996001110444113276480722524007122152922192261341687575786122597883285915889572187344028595036842978851480445544718661977375567514624844841771302544664398157466301032176166811426804661604002080225441489216324206328412372209349501687075096882141169699620317722864558998288413306723168832815226939258493555549163939376243490779861966596074681169956718616630845221434483241431891743055867147725954365937528764036136822241428252484890875665389465282032368128533060916976621603814848476973175105857335346676130647833080908219541013122206914313057059275448311008117830394159243918760056473785681075481796172783408464373811415466551595861586900458995983520823128987081561881338911181109428375079684884480471502517538372059530742585632718229463531860947419030730725718909710464661047053330137468901026024452610883576573399720211865902921015375045145395062850441236165974792432341111392421936305908920514841711334625041060854524552255927492761124020499800318445436546357772452249538789498081414968013477892009910985818185439007015306806259885832077621352848868089667370204292879900116464469243917856306999976747684612446008884122016388895022119735309523632061657989053355599188214878832778851058749430511697463884226550825881691553262828889767247277866752786091616586746718928605449424201932433303767724436239423052812395344384528650150216175357688344457631629966145532451551226797278142955572482164399342822373535955758622023602591851097677555329810152939789152086109893436037556200723927902530602648041992813669291132661963641161152038178306407866148708562750619510319269744460901386166986542025717207169903651168534051290761766092874604102239030757525311846683211629433062154913645268216029013251492822165303609403720360585256635148885505000903175782275926937540859077015263428504433739270085607083479814535636701729947426011008815859465323579027742929482550956952930355419444376692731712833965260836114748437289532229736010134624461951855191265395791851595850281438074903358822405781012977056805805512778860989128966299473401574862565297158831516175981358216642229923889038153114112871585664084647994198981901176615044920953983188616658703693478220593462019112925538383727421169852883888427129533784223998498599953796205187399460431976532461569296116176277675141707688418002980575243776665696967032233687227604852816568583966406880856266704775939581474571462931169916403710015766528984598444192285675653945582987546991802385614552535819293470865155198665119201111185721128660272925804414843294229547649839313904154015790266455071834041050157903305498200197432670184061974112638177839325042667361605658989065562964848987005487602384951836688263526092679554677640484559630927746160609928297568869999852710591016885059033154263566001725355821624437083185157911592447113383191828127169574027055978571487462044251523810645449587141357635808823757677468596349747476718199294658059307233491488804567666702392854987545303933887932710897881365829250181530072531228753667627941218431639178670523592595889400157219984945225847519886547052084790747935857820677202395911959504471210304532027204017106942275731350410239767508023203395488130421456164247403253825179627631042014444935210871110156373973925303003073852205022640746586961952986388101538227326164290426012901162941666459010771763403977994149797613498842264573614243820693704836310380329604805193249458176447793682678945458874250729709475680308757957507664647206751514222032837144318909640607789870412876391349421379142216897125022998865001386391011678800463773435417692028158147766481779086680842310999784643989132105130456569479196936743635845769363842766747688891175573797226898155081056309694229633526451390116955028799175831086708345641981798456748934924081230410137877513957781939304868951923899469380610166784706592613658124824074601501041860358016717535934159860604337333666863164957351648074789126343223084964156217868796179059244360336268908805040071615104295772294234646425784732367402661378728979191872617674971565328301119759829308265866321858119093931825132539619697648859925917643950346670893007066714702745002740089033123609311096708020800401907743297318479125952759808356257603022876779972031374809120514341239709942713616080337925325240962953540844811348589004098058828509174833995649528607575520617674185152817910818075195526023021750718569374826806008033977652772771319899294363457915115518796329640553380094619337979017385931427956708165278109450930947102457991465489899577431366292361311371692518190107334902158839300257563914452531980157425534999492777493303450411114964747478162135044001016114097207061975851528215124809347705108944520958482189570505704393879419146122057514364233673140457135770071173114867989631075558601016512345499754636198755247943052533419554449055232990545480158631807023510006986019581379274321610453402897026228725038545093061673540570358075442262889275609329957506824183780696942157141446453051916781634446002276352398897462394674851648286171134584686597383782737555409657245923272378280531623160492520250606255829202055176043984898583658765253752878694463094548706855006095051370235236510384707106781424455549617586447991412881938961933260425521719488997876076148774412496808686448989326276279651500369092464809221059924592637400774572053739716986171404278385159041381915607834590942017055877659773671289416255997915644193308583893112355040015531551033236596658263880318828056064363374076140117559088820882560165452176271986001473690094973971864674913304995848407458345014167838218434305565301713597316893622646875937899139735798069072649634380113372202713417074580665566123093830503637878490357248929864424746506032821084755485574122707711923709654005179175357987636019002445774237552481688532298277931808396241005832924908714622798749809290753097875166656550751343960571759549319503372038217673273792268507944115288751456842523199679022440079804472794725624208157966181451936104306923972921637556926024340761536248266090562158658700107627961949712096107618232684502937706124273128855373579937034365531949667998566475546466758992087754955830138804547477298819911112822694899466107107299521515814341443041619362930362252513464565481461943092026077256881150089864374076416006125067305787140015686076065854400383351513332892248903698660974102281935345357130243307275647061447866419983658196500657305480217012352198228116569641148905829454247711353957644385891986601537590626777618224148280835959166055813479132628416184814793067754675304145753964789909049152403308471155911113716010611464307631227861452257697120588700205308417626055811658174586265432413877052965798703114638998677016072571329044359869478251020155807051805048998500652532345196133313568246883533517193495242009854502179552517571891891165203088590509159674663268185580732407915666214415381463832837631273520587898956514090427395471841308152379039903038532064749931808078937947818898862686184054226285507973270840098145717437631817074104742835249770674535413863380146900808861916933173275114731898592564901961908794356085588839905148218168558520562479877393897436459960492941686799118439997311134119862265924615675195081813960261097382914196943684911008358295763417701268343371209500378202470843798003224150157503549495218091359385836896191058471303388119621327558541276790612267824043240151099110895917524209281741396907605760208368962364509035347851443439864152830173900583097576696592712818222633679494810353484115281537930062390763820431326333547269498568184883619008443472817610990228296710109056520182305470249994422534855244692757384255220533051196211979413881872157453931408864312674017641945738642089056025854762477819736877696881329257031180995039265556737451722309108218279344861570478152531522123734476200389740449500857379555008092868955309458347694905880047776865594918205351763457547863301657052045756642825459676469650546110523279544073916383095980924913006667550611230403726069470864244565919882963505093489778987631683732210082578169906960280314994697896653033565581674106190478649491164235259191978134049919964224893865667505395714467910658147804300991462920744441983238347564278860196679910008594468519156207282058986343510993286581942578338406115810130046143435642750482918588214360669220499537164802219259430587388087755800818435265154442426453484056114515352418888332761174435220835855744196520234069939793608515629915334438933218128017766714301326420550233535795834157228218659031215820595451973276352843497654312612158101707718597059356840558498269104130535457257569932168936666200610276656596355752613880940526371873947298245481745357936633977954528229201393742071571210695225829587641847232837451202990596461895845361765036378585262860944463400379085808234572872796981767875096532224668240975355878414143481604712653265725630311914860041095974136642011092685573034469718082458666193150917926737237864513452119681839302181973481377916724230129818266452081425714313985198848164139446664769180410276135798316552728663812844395523308321144373054412295126785844726684373092496829089947321157523454316318186342632339722224872050273387967695429152606539779771061458609522628955784708497533871913737372909044467320698102110380005377672540723535279101688631722831534160147184651243029036622130807827205186000965830998579674375066115886120995599978954612250851944820031043336020739523686709828654846285805566763368990385791267016764029019459926479231313318548224491160490351382740413066615811900586988423062487809053000867126575159889941205658432473135509582975472215285691059436018151093422952231000494449283961818224107660178556439392114466219369863817468720485168901664692112617221066024334485906898959618357872333198900021355581011024443054090147241157087433094478430764867097258341769492788398614764139841836201189212788368458087460301176019525461852751966143284536831527245680147610855692021579821365917383006883967315534837074979951098824887436556042079012573134267099574442891266947449507816359135309537101211260912104014439524274789863228769717573137755511368586305586042261590140904655077749776934300848092175079882633193696683900440879913585090575596494941861327707167407752368862150832742697926368524359972164322763634471084979424393955261253890093835176113776662582691132209481294647993203970829610920731648645696888061776861072287987564040920251231888143045260716038479395855496440671768093814626981994095654073761046013638655094817242200298834394339697350163394186378450290397795316716837943179648983466430799954043981434459618384022054237486216650828523705711804334360999065727737035637747268976760020260661790189306811030012302517874667918439576835539113643266718350896985555840597097100340295308189762053341730104062893395563031520904355891426086985985806803087832806869362127702093353893987358076724834255117989761924110474564968848746831904374253779104416323161092136408518948800819275115275568097418491905215180496738928598740768925789658736592177391357122939109122029222153001827460361253218989355376595676794287546481135911429948025989823051404740586849325209846511147729604342428891659781128674200318234246242342544582638699681293856520408943284222321717139677008356192413277923923549181514332950904312755138904797420791011767926078671624610358379904720352156809103936757682214672781050220318634211507305365205492813725375060287499772063285785705007877002625158512610221027412471474017025237084632738597971578699920521550276887973505644808781156695755737586621998540305397052478060116635885986398660589151423226173283074796258534520300222244007792145450043283022624901829388681483488620799371771475547684796926788927936986646697946963709246458468485199555841150378731775508387731420719585629209936999364831004669644612002634888016924045936380346998280734116514591498781419150730488885287844046955035963613125789116714223926624108402525633264242775001553062716315466080124037697171359779806117311009370046630566690881448639551279781850236191017594059915431096513051930505314817497587168535267003280786826598407266101567423745464427214260881582503903431208687728669927032058674412149316544018161241830160002423649325872190847952800022478270216752312798475996678248443561102395898176408289949132821196881552470736263328462601050232709360256823170188702311823525330857068780912952666886464236042924804937335892580600370968533825283494238146721080393692186503765199118240939720074440547108804803814854744298072682060768472887757756106286373096182883084924885766441372488952276407462469091506129249650098856084097399035820116446005409584569597015920915365071271314539977010961124433901867045421828422125648712694985601092226375944037400162139288341295837388892977864188977089596665681885221318050466577852717590363624552994770348824095507912308472516603394371638885586955984420571891493809393875789835447566695969032974814112599311036554864596792442077100294584526125458047336366373088270903237293146290351896346235273832303480245793329369747483633853495867497851150607037246946790111583138664461620004074293799732693841539434615956897312727236037175038199216587277487229205498653760014291223389718379690512715576057021301530018996690960905956940756289788461718551329392731016736731196320892617613138682948421873242455197100152501773090450675852540107065051455441486968203589993842799990409238051296320724958749412205553162828803718720447977265716003753990032380349240294988019295045274644950266422573192164388439378848884174231652196035521405650798030068535227540707856132971620199365958734726513300365157933383112588661479524372157914224640449234953205391112471300583846330250345711682058793464274085325777171445428135923059568908867185736155020022240382174502326211600235710943456346684315359681340391585266607785584989941678105823382902851364566930014673599192320206868029467898271106938128446666506092806406589666741372197222890199870811444253518516665267260302501825993169212472693318751239786916365212412654803747593064115148109334278151660370834461693276303100556858489824059090046239932586468369923812686492071471804544952487833443343188847680471668217685246407922431897720077480462937723235123350341338538126527979775360782932133531967583663485273994372455505092647941295479412167926531698813012238207972037043249167587005344453323502892885719913519526400807923331807325371893434690180134668703107447191529839560697538647591671400774702340060258448901379126817760176674691049026078180477703789438816861854818358299944503784534407911093798188748168415182124134021128231160506985501438960611473191701922727913724012242162861367704290760453738302088924775607946910482737250197333781041561186540902671909820963464129999784716253820222366516532428146548533149683932141047709437616680440708561130245183841006234010922502687941470105007913038322398048541498189306854740600091320849794680140714974540043996608011272301869460497792869706007811176848863175166380527309680130529996594502222774111417175907813616307411112390252752270073252907214749861574775182314855714144499721432516776817598179717544679791589004738251015001415422060116423248042836198963351086898936564372659147684407016670031353301527504068028413761885338852529495490006670921765355534904229530967824806934073234446211278219507566835212627162112767980581374529016195772747467397466943682733636501059930366043875501634295407960070241135899282148690486619968690399978499592467172983649514826650148176267903309205238722656324592192961187892647736582156593654263574204050322015927828277437304210663930588026610334681922973624143268025123394609178383988759580803729608023286963863157961958440838603867369631544262358767197710545410417636331753262189529601483800810246465466889131115524690690426259179992192407899539603880191230202499952433349587448287748605103368988277891807128748556992699908013682304354410709361411857825114679466659782624856261761667068612904518237619657403524172437542951213061505964749603886011860623438434562097318073174882271847487247564260183923572957607268651918632248577293311807954881751284809082614445487375057759929080190757062789718449697014379840911440286873975112565039126483345408952476194465142055757296524042007115519911632135685473006598432542989538271141512766953716973433217919767536032472887493098264862477261821993851063930590001635139735072303607744145385381080456089119922176006124081837051857123728871822745207024198045534154584584347426231920425514920416637631898377637397083005286368941076973124815820190423667544526192820304499810590942844614243222800703614121583880429800852615915393928969339194682862283511491455700429929057695427126875080581862263176042998021760179574966990534515107810238601605551135110548656116449261963047348606035589154475368786273246802378035046899029078233719933309301162986105705138164651903416932296946360944000665182219701830036554349869872446883379046687024277076242865433147134788671167525282524585106248988231237236715638826183026988854324382043157035363077446209195794284042298724045792417164367860276248142110458833455282543871273114564559607151420637278216322684865396069053574298333273452342150910009047640932118276236153857629992891154430855760972152401476583241933171426098564195843396042276406041080048059213379897044643971827563731006425718208545379446759268088412805662466009604005284877185684713555027647338852163295075478188722803748093729862178757476505890938451425169694493339859303055769071289105677193782053249141997123501147962213656109229486269951366156705780215774042541152040576947814601193529210340533632164044325484405870656399548532000244222937254882995397590226908495552022163258613435302275764836511467473619504208892103930548903100212321717758825617757195971811993447289630931147403912121697459267802713204308468189583396422131207270507609515615202557482988210624465520999717268720065159307521374486470065670421133860758069198383308390803984925845674480151274924101743872774813145851797776893411731508650180237263364306799423319265552908528696173473936956714535028060951073805574846768458023845339894244381142065540452623014074424655120508512846151879194246601933121755924586689085177651562762515869388273162317551920151454859573303870017405659609147044024313703023334147447241802221376140725362613146176691631869921268706658292046968085221787241983242586022536041000557972802207705869042695112117300197566694390983484278003184491656369316357380285946967214708529260588837631822768897118621939521419927927317563289165899594300440710760343753103886240755931997878589813886967197706459625963286305251648539037905874997266116641477918911517191474925824636002004616281938296118526280656614174026054811602521402862629093458620872073834432483862024754108812080303796906458826002163784146881540766382586380535331276463946441115223586055697940271088230003991416419036386648695133922106101219956920709699146721799585392383372878658051339505054376567298700288336858690789323631077399069878447302769230474544549825072702711104792430233672951755474014807488031446295686688646579326874944086671197919621016923751207297928331203582900852553389721251791978422017106177045465245672607315737386313408203344803896447909954029259932066536077476557755897843593380442940240099223598194122655721838397662040808797255641707021935720951190548218816524009514595940828513982348497146071992083631043277025808106628472348120088294157100394404956927939183049917709236505330075915243796454998709862531841263660758993112303357701059330699942742130400660758371072536929752850147317166790966143566912343537142385647589904504185971514527750720290093281555520587730599888285756658821776536378831930088632028724115847781766046385493661892218540555917840703221389182532818803355407221076009213836843290013971728927504777947070682723691042139000533432501475380420415208332589713291404528816799723637718435875081753266007362661041915432302911178626059444999404514201164522526383029372235596811907307315883507684252875075204568526510869551717977319469350948468027863664978175536406878686847848799705501912923883135587876385083923775204625436459434835445765262736840457681709160162984908377247158631714015589041978696878390205901176960294290345385915506637887275523787986233008658282138760846818091463163368865002900359423609497555546387637570450426331050814213509270643766246999897397199284640800262180525930101043563052247184703807011288539703729645026817505715147813812644295799407571110400416470392518860375715938184147741066373532327799400137677444388515836085143511957509038724076265705050538624933732715915725099200695523457727047025887986661312373755484696414287631018306913152255790464744648905233765213804668949768759928406073335965000192316005843927721575957340012575924009642445949050075668463911893465318905513043674695775111966165071069652276778606385508171375874302949754695615467802793509324327558764495834417017377160704307814811085448451635624874932796994266901083122020482219927869940350205649051784703884561465101016887298739621041242512460459085997167363225381616136070840124163329712210853993136575820052193476919941200587513870662860038126391981988348252305459811799709287279811948165319396318557057863023895714345378806744507011998479866520521655440408943226686052098378186315935544970516837770302625167358256876346424736046927885239007619232742392373564205976731241649617085274597015882588504490429394550582670454090293592534344507177998870081911210056942063669284604680905170113443786411580499067532061409434967148525945677407995610650328502404707621385969490994378288545980549615176119740070591622617680986960093571017311839751760822792818519131986294631236822115874464505018832240161372855981589800243656113787324281630550388609010001580244850722727082540944027382559180305874125097657012137928664988097470858160675153896866921723048979673845712839808179586094866668083708934733862767132386001835243656715431588409554427892990047381552324963257309155504833418501554322781602583513296359188089052027171002380777240567087494916220233700271306889112366090831833424276717645271940344759490289605940830258009950593070825935498148208097757732418971520897472542682918257985907534188180592657046599725757879933525767263241445776720148818792413044365074713770776223780733469276493299453101727385614074021562381645280641094729616376411420688802924938235829120923279215743008195117674500595986785125049873009463830015394408655995475731513573887312106373532364282802389424490483786717132399169752807103571943467324204266692064650297298367609179925914193277008049451661804665320187568082351780151741822096753941892969815583459308709909241672632165091373275092978097817761753953030942776464361809344697479113924506810742604794886681731073916740799091159565218580204067603954485658344543892899606552217223730844639105953545331886916736033213406257017655580836678979422907887585782212636270759856325928412257819817430004328117337965337873550870826515722086268373384621620623125027360535312335000966895418650177027208246467572912628209067469424201284720668694266678651166896080762844394173835866845201570589383167730103053973370046775604227175904792769290659468200836090958679056315220675209967088711906631979136819630849087836725058692916365128305420008444604920135880053648258767870864983678984416338399675335703993520305249657568391502553778815846675751927718854382541697301008891767888016243219755605138747280453854729282888937331955794667417872079530930545708151867090991093286841755742497315371296070718534297653171043222138946978600371207068222128248200563637265189102461272507448728324129739135616219060597625806850169678027336514697319743582178835409735877825480699983520911188524443941869230726167589271873664470357868136113477546473526644073567990778193772029949647073106761145647505893229066303820016218916132029657891986709651777706885574233155870889398087467669175252979058998171300991816742636674636980213437247331938328483035495609959205108254778273951606629541255808937156207695931688266660443372406065039081008983356027557444997370569086610495928359114668502036273743093421003171069977517446105746884162174124771049504971635143648802340931772360952193583546384354709606280923673765291583814463026259698768725479861171130467032231650936617122019514033228924123067483435543776538682011453993527563731369271291696902074663932854337465567692268814272539018376450705175652120342422138785396627983879228773541168230387754887748469111611122445673911326831639984416349343151315852223021872534889467688726610692308723684032845488733200288845143881047382524106122115133956330693785583906426945846465177329919218029654379769866333701776250103753466734890496619397211468483086268416818294707212922708711513254519919212358226572503239287097194467129008302417784707765373977167441250397378967776549101839939633167003029446710502422828039508950880093153030281060237284808126227953888002906228104567489618632593341875963257542970277157192147040184242208761049517507664031768799722288487056350631935686644682946991430602994001796631624104752936332127273093172472184622456381835037670844160296379392195527779360761409000629501194312271748436377792794884774960898370533616464389971398963953271525562605411604581736450394900779086273670334064545555789278139327101494093042643081710228682232279585055368141857100734967739530084639767641900054045342874329085650257389925112503437417863464311524100917268228579217305137025926113144045515563912418108006080308795315525148240225568709299301954868384388251755165100633310295728204531670107256230663454996971405310160466355355844881658330380987769355302401063170394984926989194587469740600029644620929596532935276956364810782017485760155981755302216405902318026978237794421898006532620639629256387294227468979929216248377838163539549355995841781455209298757862966839015584595849826603572686625309563261083616905836203639399176922485338716121668194271937442780903946241433237527979492823461947826478250579457601754299841514011435768467219240027645112685982616821409049450493250869519421915383992316491415148576388208742441143098514271309449654862438269252446979132976336244764084997319177840105062357166654039455757023851848777243848734662130524406348179097215107438358040124094794556603662583430830042923170553665914210616826838594488968701787949465030569221969861593682984231009244950864610658767476543652432273323211440744824644783926945281216505938400887823516845913107321454836387707156044654944229984067158968663187887502333284583941170950188932986319472404389724701407974478335486454678077750934501045911314112252880136785680635669282098557223808709484676567385421889886619536071069863970985189289888267348235973076992671615046447898907858081082099082061454823092866050848190796809660708297530589407308017714819137044461827432406354002217975292853213146949038382392566513402373750768916169337576380733879811757202719568228573687523607988627484878231390706347625597814523087622777725203111938480604053912838233728520330693006451058922959275233765442630091994783654331953766245538754207981849750917407159437415432805138518722381606288044571699758265104573713805012845048466929916291735136094097878909910493049570044142993038600536336667037973826557042819639875802485859662127095115484087554622854512631166235765480563780743640150733318398732177347081835945776724887392089626291675651303405923338663130009230094121448808951996314763415369609994198049099469262194413861224079313772921302988461863003198296593004860458510635471914676130497917496142906526683410845565299510307467001602152284284766675789633964563307630557126019764651509448343379924133047772973018312038636263466869924297113814973265840346267254173947105679185528868118532897082120600819742905346627071462117868728127038882115392748963164378427771913002857864323869464098944781292100865739609774654692448757976831282895032682230783621044933199842392499900072028372891469701512954952808364595898763173168326920478470179549504251355323504387158730719127083778538456929870527060823653403153075787920272956877540576139121329699355049922611302290352865573572387980440975662050300164077701701595208498005367287678558106131316389448366015593164791392328433721966427769161941732891899358838052074866370000087142487895427035926009559416101812813963311003873544442708615944524079501696296805715568259908526597770364089216766820107957816032532100677773108201294105083393518898236740215763645163527273758787936395623139162258925899792670982439667491052533656429358870752055025572490411372919226674768260217232460982473318495413494764239946449665172661095728608578679482009563310307124958206709442580877375907108912289720995229524812515093850051722937261134443052174986821194583031032507149349653410119447537407440214951990064924596411751320509736193911987926440322635569559423178304633790604485020540296921259554021628364626272624929522698445924661236519727510852107939668944140617990091591978941346363721870704214561611195902910705197180954346455520598049497096439464707530671625907468016521246416941929304308345827357388329779766294019257808222361719881045298288210111358867619804479651050335206677440978995411219949528604369101432789753692783826511415138862823530852415751972670843607267263181256199256744846914428150610814249529999127803993393400087852103633271491054095529353504555252410327891196660707062176806409776746707632361931954833284614234427659405224368939631355222195877194038123964854225668839213364253212509237739542096800516872907539887067120675929647037136489977526383790370274576223416663456963713477922715683829972907183949941011619924364587710158418981740258422357635105520231914543373718956756714661502534941755317174534186721726907018152743845235702574266162497110720688776336237769343669089994927926354591199710884236396590217836737057038399692149727758266795996385146373338210175259926381979179612222980471637617927335999924844662643881785009333264476786814288114365323580237455757002916177791292114055279657010074189902043024251837816256897607385369286486498736016851743483340130301591670550636654048163042644033525254953158277656436160584160174636932396987136463298913733660518007991070187255816637055344359710288608371151696872852576611264853034090163873976866845033937571714788925241190529475123052441816102446421997403545569762309051319403927002539255388756293132147311188391342578528410290006453854763755347364013059086570109726669500250574654593968817865263864932793890995497233846441130657671071951633682425534127145090399102069222453118482909450973923301593327271610539645912501852097234223863432845718575642709815073277324074122517070068303488702051577693050112518383045055197170715754001366536081698718511232844945463423416774824487281014388531100723972266040259858834265723720825755921027058017410193029170035734748295471935726845241694061752424488344931181957652447112023496691009736413351369654963171423730188544327064630567973292970553461769184792839184953742235559236327183619455196330930719070345971136916048876584953023582598634830178881734802247845964032585286781107647105612360809319133795622042047825190902266316762434126840788957231887596661036948846123441178894553853379879635288964147709742527593721431884586786527731968860634252287840705370468248119799331908279489877060608444604527569914877243482463175934652146030263854802556310979958990304767693652579862766450154244700643471928012441579303533054941524671521948461028728748550911819148725021627988216474102509025799969036277102067007223348388153436684627936336417003899539591666274232586860118713259284034291482391596006296022330785811272849851641465052579183187461821259412287416357980857617853448369240608665627401590947214643774680175123416811909850018471864215085432000729530101271977732449695150704661106382428980897918688219631446008171947828229590084259145567581763110069201072383892969985655524695081745998048833235307276672486878951535269178915714780391238062824159335146030530590576129705162388933386744880412829734389527763133847361063318181682721845243564672145394934801039176067355791020978512815539947153110595917869227867701887339931757294468893525345052849448737640443715345557042146160193875975160452022629870736404769859473769393406191048038506871311200342199718690687119292632591167385008811979506429225769068908130453220977706752187912790397835293787086995068823099446735677962747722442523508655734775641326859986491191726427793292069513144015191687602880992859745749471229210327841099577684411427592265388732861156313279783660869019811443980109082451765668845218880535241308218596356019124344193427606355475667076674534449459314234500081714581384827197273350048466629312332847158505941938903795697870870127036221584616728333937733578380328064517331948916195170423233728066650132431626956123179509995701346112512867812050480393533350415074207440777189780366241901223973898644349005803485025604277796142239919399259638626080425421751441865237032012035212682175660393704360741908573066480902453340697875370195651963700432343068600408439397654236350283144464375540628838022018601979203079032849678870766468410759650937631475622339837370305352382465947244017394176553208995171637425061028144041354545699935929741067964289989050289001274055732023992703769390384671891025915784406056851208071581323641389143642183787979151135854359521143919593320411880739988874132033738639177220058452551725514332385069581485000770205622046915441478045164807256368034725824448888991939644697138103203619799467545533677985179604332699809358073288322420610304949848475022585902118053576982993513400517842247713316356346369617540713070121339087819209974479814014871661641679596634637081198458958856012130880416944771028279097208364890121269767969345420322783501772827099056763193461034088072561105563170048643139313139325152383529173046048874116801481721308124906350466560356028543573354582762308261847038583558641683324662449563164624460379075711602235421121532409098888852890209898926343389686930379132333645068474590828153641905627405365036866362831257085878927625184224418085669577261189126761230263109025777485170472976744482391139110351356337766130935048278788632673056040637013808057176859262191816661082773912288053837934205130750575936895894455257846254805959188084656854932397102214348759595910490642990312506607459882737286967909510891259144329526428739912255935019117027956270985781085144757265140548927319569408938206376700371507341144531152914814652084076733166070717409808761917018753527029790210762327667267449217633774115166360749835013620835440099171344018587316905226239997055098315708050991982620819079242229485324798772892959769883949117039349001480902820417754882329047829182287457036200181947904618436187616968537988895941778319309151862728472801692495597559712686023206609583152321852136507174966195076294195769081949742981072442872923955302102829636511935320454457180782784882085074372336637030499357890004792028280074014862790385116047528903903724522828429489735754214595155981529092982412652679508819655858495765104858169636780939310698485224801545876166890800811022139314356584119869841141965487348609708396489409686223660509904546658293226751905615538441632998239054268015390340990458670743228958867656968065984829395700996065981109330995514395144582064375115231230906509959857542809647546418736350956644573584728651915544188048125270955916191150623601898244115705025927467857807269589430161547616689146022003133483689936683105189252915886608961661574563530647424909464634082446475670444829355912852001056199941236891049433054556791887390633211202136121654928947332021898280207321105562664003562254361743084145293017655186884652068849567579090103346493687638986790733512909628662220335652523572179681298720807368820355318278783413524314748288089616095042761721891023877067602010834859867321007139686365622459757687009624602223587761501940454881434695653538521998287865356052472123955384946949174397544615156555071737228075535529471234171744819514541909076779926935565708403762067342415236255554822513772926654111706921366196589555354282391940506103979892097355104694067444441175752676951467847607274700074024060187429802939608096596499233308596653407598929011188117606262474693096156339729903163718287735195755970411398135986804798998696281444814946003129563992675556175453507036196089158501166893820834825202088724227341436638336231890981221338604790487263947399691379902962447184623129359279841760483222558489328284860403309937451777853558264301073788240499115284887420076040057267668777508485114313267234020610854930588901620200442945136846910649046165081835941790379420069519122558143136778208124669726615183659701017052219846598384955414536234567069889286871572124077364103878709252000872219696467678428263917391260532398324115411107996846536959228997560260943343716153912379150974263476356930012765022552131887411351375684006318793017643411969904475220297121006381312298779167227661366195039436432009531490969588966452254474064402449488172189490403619616162645049597181475839664512053694457542318601615696360312156042983369176942320012797137146534542326294381352041821851534769416396517276074680963274754773804478243719414805621985913557872647224349392838963842390391213318785342863206068754065022111960506101454075663020559490447335128342661531446916949068208337370439754135278067584262761533416240747288283345882288405075573414192375814709649921400373625324296309784961200486850124377131942184808728026056629334458383943336194430620534352022063350694150449126085496273108408973552568277901005553006635942608357273026984532601173473590381154805345156522995348104224540637326204485265709515814430798538986181592192072237914017809817586813880412842720464899040574559340445100867707399968055454758200896676468787702421041820391644906384614364726250599675902625218737488563391979325048701979253809884001664749750401922474740019761678887723829319478643210531593805307794216858176252363293559739638875069284900237319462752557557609496607992141784547797205333385323404899662005812060892642093571327574486394846522977691856848010884588970834339819399406123954641395376470439314595004297027951808362086660401300138063172252598366279401468058054063291270880407440013182637130562201867245835100753958462556801119008391487004446123104995897376356169723344590776642431245998337964312667590390077813762512589730093343390575320699643935772284073630948732530836323293612067589346221545541000121023753521104935777990190695529013689882167487054473062687441157527619535246047462722203545627854978742834583263867658387951963210396127128378533331169808847901441732695559392806670346392079200830077905469642941363582335269990103055821298889242862656058911083515904224264006613002298980601997687973659852075316135980308526940570215856431006423159585720881855422475900416161420868776576446764403138577228143058739360070910462717951973185403693246706043337747771789881943978986490602495222660553020918775729066859993407769913642127076063926506574001650639482840087040733186170856901661585479157742670764837416112191720609026655925790921935835117359959658395958443708449447964020187274122681695182047648716221283358642515851276522989436464541915913452524353090897633892759345071274856322548295697779903230838099588862637267239627753346672009013515065409724256972408213161644750171547327413575453202411876982084316058578111382873703998425440093063587150282246786563605881685775127994232156680004618313252036691026183381820673966854761932787621021889670835393135230167827298052546317766253114564826946550633904240502554815901007466742220548396012293834907749882925797007338827286406067244637153939357456773892854333251198166768931361060923199228905475892488478212661825695996484336739541347035217042736076292195097749665405699607959829310551636203140117000706787097028297873389640891306589334240924130804604960587620930749043726202674277057786151066968890149735973339765343660349632784082065970714522053384448647696700465859784774033555666723109894438183919253983007474121232477686307385764844038102166389872104998257327918628621241336877951860348123646565699455392903536469242275199894710826731374909519100891353252116004343833148190898584533550152840241975617147805580181121603369197692927861020707831407294244648166170176538179184838189298109354680702209712294554601465652102791202207260860566221052887698260804627943838683587004975712532094501702762752932941677174010717836345459202941108831725883857203737830163735666103412356507601158971128328752862693330133870047264515568159523064401511397623740531754408491644467287334003419580068203896520847006353712321156905804989450949475476889266734842558521365514448769479355089158675270413111935990373907352042314415075964209692516029313240731224780314867138750375716584892139886889852146362449309222467983536124758443081737446093437093652609562258878977483862946141129408382740006158675439475863360412405697256407425739927098509112524416790682010121737192371552257812104791254802875845441934233550751803991713889419216898061466507796749077681570005876493963032387560202893534924596144093373814204858270016997203505466061888170025069291066954577182678202710826373545198989596723268275047040553604620088588154315838876900534815615846129163688608602700842623379265586404764106264556418830183790120671042876981892608670548821327126473200726801894151267096923797509791395030558069523997934060104395900434082927793217446667483433600982665291915918883718921613745912590880611086366533279975189936313560001884719177799825814725900031712007164777050886009068746970965736234241263496603029818059978522132049744720883167429678545059950021952614160792123466674679410333270011848380078547917481280485822276108510746078267147115947508851046545227974067045300204039811727013105111297613379340372437883646136359330626868324916761967851921382448931185070842136736242262058988904405921515694992657107745371998634612183211047495827789636054383468475515096378687657637553681005719132068631803080137799593573198187241735543418859431774802591315745895560179003079719156077131145899922815517113210429027091753791389948993270639382876534550555796520121037251522436679248695770176947871613521350151505214884039716935490199537520200327254354598748048164151011307334219581203448102832805299532942534288985401828374020641243284462049539742327885163539416613268804562890303481390133232549189990325049175848169912279062992979876465217858300488659045950108097430196482844635853820124327495028310290030897766771355791753640860830949737183843011449784100530427297471975851828373602614270531936644841103203199133157557481442017139410466406120784673167145671347994885530013041651202785976048226274407607938687461227588999426874637442880721333187975321420089662751779156721730242879076182295788912091923814971586510775437374848175104131272209736917965468121696376725032608594394567050073860704366461806065478641313106344964261170787684819540530674364289770573824398631943330242160783615849758258636306113211208506532258831003622245205840824721344365402635619287134316358802862459431058703790543227903411339878699814479599484488995806551959402097648754077770267012103571499119625135125742618906684099207247899309733328376816165553151129932351371897109793003033375058247340199574772401101207418453692447628044357700905503408907277617166534124256975897667350441840594230848793907572639113396606795654559670168681160206687801896312596487437495420929796479475507738420636948993229649188885568035324649834612984008159459779228562605542738511171768969172170193999838228815914680981258127143629479676169477048210223959173033910564139099636541308906718730838318411800542156204644080903475150514918431186888152973567915903031396911974037627945747526544254186015068796997058759540675415709156426073439355298760517039238946615631220695406438682601679888516775108015045381777257444004409155730963331611607757680241274296005523620136295916799128679753907347924441716878663882363709411253597232563232068252140698808630332039751950331560372324727644719965824523406716493499185283340047403817973381491453342649485453919968725108692667978274924702415107666760586633582417589394467197662926731268314350274543563793438883150467447586222329662731438183050348150037591530268589129207466528139865640546345277365732760457411206039547806710607070753305912658372505384930557309413896000672922790122645828429483703850234294471093730273087073252754513610288035986385609383108498349246942983590064622853192823244897877206119470042180766355498505176136095600912431821557322258126302352713134063918494136574866830231591512600946064915058645782304132412479071756083227764942867168056979686229167835467159519362739366815871483629168798830774225196542942678687071617241242237063316575788880872778210714873588374043242617823330177429078571080623015903508727424055457324608306646832009135090938463911456750847074708257796846602735932433051072328212996079274023354593627314649170679094181898641859174890295399311812985981242265902442360139806431601426659218113817239211024708225373194817364441905471328161208917798156139556283357586405715497067086525390365910986291643928906209037460056103009377666216219107393156576904232001365421213344445817207069808792141656280519451532156337905172180795644041655869663528039601491817704740883129957224505197262357361833676679479565422611397962253356790617426637243561556730490274824141110155132812044448795450739528320037883966939389788311496108934665579190034736834626436541020591711222890746925513101805034057271021916712900871319566509426449874036109057287783856447224044243851671614934301391489417123457866122984131890453862616263434052154873228485988094896999889932191717527069632405241492336416258906065226996881452645935930095228376012997291311257300443355291656352986880772396053180797509428211933727524664864854836337771855494664978832817732421590237015419377744159509012991977639447144031095220300015383382168524402919142001750105006561896868434686018207491942533873409895340051873462407411186862339318770138761426903080425773642721548132116822596046687886290726290110867838545193370433476297843942362321720599261882883598097783023747483356374589493637179071862466081560449877015476063699588447263739051122325155764699461232723270352190046210325184694455059899346067750516221451930355004357840731641207992384371412402705455904350813861168328200997014882781058405475477220060138472721787184366920695445832073934578142176665252768589515571995943123646489003903206217457167012553124674296658322858393577713216083120090375882632082382677473519358277689396645761761122635144361690894550263523998456340749244853455166785556530245059812907202834520106343317374615368236123971459437886841240676894700848146391056121806922226180085612221371253663677067043105357790719651936944633696077893464356765765840567190314648688100224731366320778016982645049713440819344631100028681922470592914446340010923709342576824089662129070048815903743347704700592576880013235722607033102614296373832400220538066342726604294033192797387693186167720686595121131599101986678017168826240092622897285224734504149451208524508708516462222194980011842677422315049294816066516991065645778141581435804429375996844447610178866646207808686055559996208055349085512816995938628580381764570292992055795413519637977208372555287165138923295321330084364024957798586172626560418407748494096847082241409311559231951635032425087683904307388483294149028547024462308431907518805026762305502364989114757464728398472614908529675589742277281551511049840178184380564598414975900759459613700050628227442886412495357017418285304430070308770230532837529961368062008286611175146275397015461938449644648857191045401266383467588089918950975174500634035505861179204631887782687072631857030488120503305735025833882697934125572712027542007144986204869670981488856269400925429126205904905165069747169102918330961425122759108790206140633209181827356549594190533332327911880173204591423509411297498159945058625648058497799105939501129070249204491380600073187714907067074130917559849020617165659545683521704840572384170376457018411558676154274869584754014388178148401163015437348474339706918516449187289562946573488154161998054386591600256839398003586524039779423519184693803034318355583022531437884214868574206498476988198808501399596780887522700277582258126899557122139180364691729288514426182677454748072995201960190234081484227770758243030707712356914985527145567993379729256367598594660701748063200471249100175608500156597150165537122861464040116854514030060178955311277223307764278799834855748894033556695734197059871498259003410567150056335182888258887550382227459906629464691675328263930068691209246327863076807944844330085723197849391972377822649288622651040864249807603438143469473708586165959375017953687838326782420100048123441664438328509974722427730120344049940462743434886707000719644027733396002467641484757911284176354685166744723298027200477905626777772982237821840787749266064235106575420081234986348781806191301892494905799610377888696924298611557319031170895711023711264341124604086403564487409729057972475761428943852702232235540388300102692881264115983427596675535091256401793291202896810638576609106186897046481956670241050796070061617784520660110198027680395674500912600166655360754755101341200434928324588783029070091480825699887029279976928943880868147379708269213348812020300957478968200231115283016139320091760888115524192304598138999494842687641192764946215324833667436464682946552103975290495770035298359042255963097171613610356927154762258180430900345296260106757273926222079346221411501853044388010349743621209037581483805118494691392206952748280269040296012707729236657940538051310318468801529669512126544069529848498629578525973368027209560327015329785399131768855429644929610598859952080612270537302508672627972474278613246136983882902117541930058525705738029050320875178494799260236659983297030775466493064700582007264570467262530673833764828617185603963608908318894868647302082106308862395679097307966692516971658580309708694670291200085187798094146059264714929390120919287874334767551317004962932062038478154328870452198907052922315614351236213696025835944174211691230846175109702254485492456301413679493999613934793188755463700047521954165440977407558756563409449164549313506443686859443042337383811137918816415115184125749186040890659497889347282208909756657084439147913662313825957051199416913984259225566279938115823482631414158796975924058070189930412203839560680306553199390951801477482118637964347220501130072101860054958322782597812582330627396803441582793684656628464368818328973369554759906146616303796817504651472950662483422832453757990400267328214050755445028917665296841294525686171532281784174396994672351299178440302753892782042007012499105132457166946258897351737522055497101270842378047649733006248579983656293394549019131509110754855500393974321016009272960557478083298872826169586403585031753796022341951907077047050316408821543832808747254792065105198455915085771616266063893994977912152171074579140625802341708188509920689563530452265445805281537212704191083574358937214359861096570298655183481929800141336961163839970095021885625890441335285128488749331486807355860668558548395441719733966667246865706635860774349114957441084561737582067188119410079748142182053895026779021581144714362110609244411582487336920681488347556274005589814602201477245374959953969740740152353208569781732391556040716832067196571669449321195779377106055102717525111290234722104585376342265563648653437217450057395962818798849179184723879535329173534794768406590649014164860868892351056398052747220609910429253729718714573951429173534848591690274073945515576626194355159189042475042129007043614833502313128719336517202874960496245144099525331800230066978279872454215797122002901727489342309376384745893661756868130410280339832669850305192700834674929418434942222576489272840308329517109212719375726245229985539932999135369306319541732108573846534220350274462045830151067977083360569792275225154210539202943829438113892573239825091805443389470296539234487559133455749393163865334083662209398347796273650730960183240360214975947461952819649040815143289863230334606446595274624163788886601748442126963404721241158386469314684972014737782731343541110660580999670338517551875724612898180081109391317695815541979541144533548189354873389736465481904096788911797302104119623369093949928823363645239544798562125791258672144310652665581524644247975619942496712503321217320089746332426355938811695036488282869884519815102965896226247586395231177463026873571600937313928653920554965624975302672823352935201816281542065989583817971825317662748553956879855247332483932884408958033586138033618186972667213852349602003194506535717674524239450205179359428265130087781983041382613736513629055555219879823988635250451240597855480821498281295042804637502649671489834581249828731117999250041451142302553254685234606948225332154454514671523407110241229226354842670997496172812793287055445882819811257614388250367301190591400496015832613430095078035752635834288943706278140728971875912398683584626498964552937170720108339325673165014236919449580126103159314175692134752414230067474974256520082183440679568507516979949580241282183340104386938976866149634449147137252706992100826214206993716369380253764145460235357233297213543105844723241820822333924678928580844522241918068852480051626929753214984293056534975519012631485225020680535248408548920109186104456674968011855772377288960259206884162063317654916184833669680694619417402895268486470572293848872716262603309093713085785232527595778993039576835039635114920153396086903246961178309760436454321398031121965775192267876494267571932807083576140589515506806632490345794194876762566800739081924230642263185600867038863756779111405476399168734800692001823331266404685338001660866073736805684770039372413246623400776306673122741016424959565280668612430275937933064301068521640639696351427036061356695686698846600972531666966637983081800233709557707641343865410049715332372805062683071575500838350544429776667482690259384841550238883596755101445126357717161305686269462378378247465366586988714200736864851409453379721757602552031470505277142193699694306903900991430420923343378381699066329464651383153461876493267062092525062886063417908108943566846311356589815420622417210495112993362533175880451128851303260514492940416027372178888759341406753510079190497535975592340014175261232783985643106362804766846192680000345840629828862441347613413167490661566391903825457076134912555504115873442010301918392894917911420382187576801694524465611963269857198152101371058326684259077421305838818001230799612396611816840043766634801215899658616823841791174690400068680218049747589129867226006845028015916253432143529541625405466727832330340523219088019312630784314449097987631365378194937132650875887241584383301250824430816993532718748107204459430382277955394352183785389628127935526548573453319477495265098867936933241681711303375113120344757111335542312948691336417190689121175805305987346850760791381477707193207858782914509312430406949461751551878073979597647944913650064209596279110809899519936409627397091679776446166159068556119718317714137324284338903341744879434046157746988635289599653329099545101941878391785452939202389788522539042606364892454758625935532440829787414465068564810774068643000221312342402894583495374440828090859885551616106124520572235769440292301785724332537359729089824655389154837607178793976717479195879125114739080285154379753049592632837694865560665762618961839271016831984725406314647588502462485506956964043994589032782736228205818108546798647877040157680831439420480207943194303736409666865860114407805943617994248652726173862271106954786944098558981208605580835333055779532237233888019557824757864044848666620183653287077743797321285471399779521899011089193600731297809973887007216844102553117464908631261565765473552884377506989287060275246943882153400917810594385039918192107258189323048269707379251059662546871284644028642604687591626179350114226494780372167184800213317270962637780961917956977541155926819706153959035749865853186837432947872901056009862285037767230162600947744685828467126357772341096077849411010924459383070224527557562977292384057325345925713429660762148911998414254480360261824324534785451993366075610132637601816972735797454791091588971815664943517585682865766486871689470174103466302470321521510371624336527347097601223584351039709358120617194175812897902321765476905604388029355128055898087485172919952745609260155684765745646181532810265333198865995507881696599494052822381311646425933539786802747377930580815454078548231835659081974689810762433991479574631497329294924231959901790933444214781687604145201062992824113078193169376015666531379237940186231099499830906286564907967980993502307568943401112921653907215708005442535784468499472534102568650189530574155964197073443967446251940622807301483946564924454390078215797850931072751550558448461130259319884072173255244519679523224211622593171010109016571779496370879916466404859809291450237445630450110102819478257270321690590898825002582902025263198083195299530978537058882328386254424350881480113791145016131274432596401054512166789233378097680409088655384589704525946483618110625237107327102740610422612561120195522643579429486344555799597146426229543795306529759576138285440780936964891490804210497637092589779843057875560663381080554316336033018205986311041499070601010274524846570834167432925816381509365150760406746792973303751282329874368074491347145758169423621554727090333535516330082427298233157421173701110709215227104105958139427858855066558393096423457094974236886105501546325075621063965364184107054281469238750969413222038089696151407837767275008988918404499491372359884658211067303778062488963348452005851580166933577387453395132383833504746513278802158702668565520231890842637356082626979127641004745233797088339194723965103468774311063176295314340505550382542838035221764740487783213494856994682337388859293622454772456546473503633192533562519305968429060794397614776012566153854162994328592907755398474353135245414251489980431614708114087396816025016313787635182677479572085223349465557806816927861870651095263967717430570226965897435948717302171544101347046794537774990087316259194190770407851952732894726347496473032754378355200113723669730377064172134523349270172864705554653891918755066929619218605472464303184069037630755205614629743128821888970458364721295001530740923216788705887541494822937174975940509848992866050820180246475853605274969364269586295028021330209080969428158433622060190476190128846776903086677864213372132951881271082518228510853695876683771300838459299162099354120202754130936688470903225236035113125617165873827424708077887193335126838960398061591564041206406223190636632617666870226693624712967701195213329531606264577369559167453207754775363359936988307556504403982221593669582740857013789701780383082252028849166291659054407296556234917699019329179037294768982039308956390763317878324191390238385147405031820162539645503130551683019619623568049382102233219076818982833025152454386093771009226123618374039903752093784849635366961088481994367359347198619096857659279964744248214698479755615097438875183003153027767820289134814870709323127819263674335851679275479442329926030090187459862617044482725374829802211373972827019844554676400910658964703290991415065480002653653470334861034841223031246575293148124356397520741706481470536443758517442208597983422977249956274161822791293178256932558639910734427110556920848330426827069009424022664687077326659081568852573302759356251201489332627429531537566330085901855468371333563471457507608899522294162892085639808624338475695860422003296653193694985704321863055213174429298680897439099473139366819146438359868726928984822565223075622756852883383354122037137258046398805530507337642863720526744979548918342978868660996986269603390653888374999686190112152959891522972107942222797627544503777856329049916188581671313931078868440660043845609613904807388159573109375660841312886792752451608042256198233719157212818034311846784510599633660469741981835126133363097111635182873639714787008823744186520349554660225497787973892259688763606563922166460681084042509783847718030308898586805953836531952682547425070978235239223059085085698229939603252781385644211982197677659493640612752115514966732436881701469387540874249850215528381024734352379028556457229137779916289654033506089152003732124113512892433809337861922062648616292532008047273048750607974485269730840475959710738609858963669122278366451160966048166699095564751364281955388740102792930424528487970326414468839925662218097442080357059336250290051357368491335284354229215571594421893969264506987625309057003376463921368374138910735029934005808764014043233100303843495204020491897885259331720321378695444584578092430192729715778543773895844017087882004300995213277187248733792003586982434029069088201902341926184858735624332946917968390490902886071393984073003327611537384846301414712308436783261369992761333042236107520175955490772794929280645650125645513189657702715570795447619306737103575096702771029982633668067115522461619998819293967163980130967486795920145909367019318452498890338505743912306679047917718649475584292440826637511694136280291851077105102203570531704708991569080615111319946739387601702425601345005723034814873925868502734635180539288832430705755143116393307579877634484281890222183440908976681897114508565847244197216360743998874326964804362248475242661000742333926077461450400808060492573356712415970168268032677257243874372509836187089555456738702915457216282176992188398756158580476221830701784992914443534949793735778016285597737338581133753071904262799441389455321749475759820708000890884507485535939552862791377140253325819120141752544659823235980732502706243854398427120115512883806023408754434363240414579617603213757029265669812669595181164145964351133964082813462602360081478766829557834023133151867438575964003257576282752236774924717795380242791497160815439404656285509619316376975975599336991518369061728634982254694469801164649156431159567983502020482673790004428403600083625391692432608637812077823752655706056707599688089852098336572067891279811907447888309878850142088433822823341862728798566637238527225019518727439646380423117515387494272929169190475592931097164355148999011385011374413600326493823387324843545032702787776412070143778809358413927236148291685236808035602254573070448034334713665689854654461882096291720093868379925568409756222272657906834165844628014538861374078595621685978933860337321812493408452562693216534942111607811954303831732469690633071770554277204001338502643048171912594561245931834199213066911397342855185210689216483293031939029604939562284372960087177068535213133565260463619244583828471624356119396087444246684832720412006805948687201236836175040982691136552737256240302473897257516329924165692087800655998675785818163046970798387501492675166975332729251811549619598629788439098245649674365891065733861846143620067598720320332218430219259611546554266895849461528450223153823503886508207162263572870409506631379256184224293618102535548211352960804162074090563691807595790470114007183541431337386227942150030045569737386505572535326310883232277083564477001160213089714314852380102960017662651026854416294753330887373990988509639488894837502971098581695302730792225369359040499006675708221472601444114462249047410303719023971893734252859361016207873446466823820254264960599894475657749796340597211057545048161785167200898076646867963276416112080926725649446557491264985596684238160326928569697618684023837358139898127921665174444879904194539372765631684023560108167282677344743947364367451266674200612440943265070351178777217938198309272256937121091868860326454187659306014717726919401717337584842666620542745798645579005264930996869816234991761151787089724986919039146677813215989497119212176769379876750393431681453097172194302909469100587379049259056762922563589363548405570634021436591242787967135404206750677187666417179100624289770333918126013915864341128624467148478768809484583781598039372830339855657283974832129099569494683354768829656966417413259091732319241933371223819248735915977424174602753448830511343923045746049489784274170800232417585618544682633065387263604042730699857457048663890015737141679005140852881799438836457583289225325596767131938714230932648379956326788069657849573320603429937627312122889719815483895796656455959865329551828469577748529445121580056906699503857442505686786650156226982145451440193323393576283248439546167575415312722816337734634214991328899425869408123117708214907599665677632821093427702823056138826346079524718205350443684064813550085514026089131588106330112913611946874073647427922345715119680970326086298940502936448005573535295258863509744402122996893028166017323274246033442206884225812231912025395244801947448034536667649566012630041307097884935065157325416067621598109793534528268161652031429933163771927903914022895563381478595829427781859027518942433769500675905259151532858612738901734815877594356618593766661088613717029795948251410431687902421621059877074151776922406257860661318235394784156906372846473338526327367273111762330092673216673811062311349931885480315660488770138170995672364313355711424143326033406740896898437288357020403406803122103602133321429046599040992475066227372400622590971100178755357368144605534543187487470813201121935239757512433696008626623963832288334071158001556572456189976158601484876472871260825394596381694730150789523524610378905021641815931430009800543327434808826700107218302413604615696365808196976095025696662379513411137726316555207350095199333833026606063571378065615287496713346732086604584428514582818635823122378373555191631268116440378758441586534609026839386975818113007384099747710481770720807681567127716208632210089022196642877019414857150080884581709376010169875324438200549198107157537462115922013121719859535957874125933081667672299153923631056733810318903193427940872286905121072003190113392276923066540616447294130346139518663394553234861194311923839498335927397357787927948250300781923764171920559204449247494392131122400824102134680682618315247831099397197690271042560778309490713554439958936918765863323345315728708921933410748064962285368915764545955312886635789912331617344803322541820129545706106603940020412519688238185145017570792101583043641131215434562369818902915279639488379641065831271334444837881571006153286143210121438010309288901810111026897725547108416113754757936405354548037698212933703884517109221109132476056960285716850759261762503580416314219549189580257862036571078041498003048775457172187627414476155258850419977314568677521910681611009718578042269313451432634905864331574358957688235203157404479401136661980959495564816520151969789197910225152904487716508235618904140781635107534434098471386786941777436967235429880804628476052984945818999689620700637394456545155899117776338340556786609353569746667815561612931069300985579792174106306736248587785799008514392879805029781675691098363928454032303969706277444552676664885884786885543616159131298950463852493994804083884003987599218611844285944207784431279001650216995583848972425721733519523171896628047106413929892757646159397267675817090075966884588845052797400897309102920617257069493809882656286300651992941058583689192007002523975930085285837198301433556560378861752414983677651205665786604840615058940398474160500470955305021030839636649809812063685337757297480347016217919766178316490241368437518758417020098124401834438798640054921400200908226616908551193146142688411315966815194647127023020310245711698778269356501579106489359137271482335805085339559374089330341557111771863247063900912594576850227645065734241122280539795253546845933734808121450911599504734125288384745368614877430019334347002593384288740027707898489302634022590783093960475716935156789762116713855749248121460150236308321480177755425257965789378290373363798537814572431851541190852202303255956812694485338310831373714661062705105668742415975470471907724384010432350030199766848987719387914823268512081161603837089758362404177866920757854651415036836102552419317099315014744154277129463749648591989819187850842949589421447426795258272124450418520417900450177139282594853949665456002248554174600914103258179744486038556230235984868000994638524001751531746530027759352679805178605863336261269656994748605547347156733621168962163085142830369344598879704203689619070561007711179174468607094343144624426257619483017743146253746442957279447504831406696674568290001503520808334202961972172888735859641808373765043120579493878640276324905935217750040027509811745475657868905749665737759491475095242725284862137456163307975673126644143091586136615315058194491622821470490566577594794417315574225477763887404703196478466846553438730175791971841813844684041509726480666469089006585868388565129883396706984295643366803852839322486217729224394137821495122519421237669318433345481586659456922449260334132521279602815689372781364051977502885750665947405069335549427681382445738574241114427586839385241845345985002468735877226301016812371169242163232856975946790575351650127230170190205174282123849749407322844749592548172090988738953317233845333310235583119121171440165979069162177386164613051700567271075269384065427935767179386166447242160244234641626245216540608031373999880498735943550516287126082401510756298676957167009507444481079648764623826758617067263251482571795447526419586417830020972627420292723089244627758338272017117749539020758007334552450757205127136392832264706696922022506949771520080892533320513197257839887638046901244276004597833983074260172230981732239199663450164516104172281717259870608211130217376581019571882320221277788829189356342035396912758590531194646071189353624490367740065397686514218750950226594194404673552756433016110758793249589674422583135090678796807511868794992755896199666428732284729966668341627332018196146204120509079407172542316793711973322401558902407302941307566910393256292364799739703761334983259341222668958830286221879618289488273428842468123857236840471412647625678890535603425011681068782011364362387523831488772181018924445386374641995715913842385030083410441130867990321045021439087673901578158132167810411201288638820482079323399031833642412778221372317921930386815591498863706750974395894400333365663985732187477365671837607617287746868752180025956414736361355967950328991283405241808406259940935026523656026237211222566113214776939647939021116211354565024868276072196296282266806865784216630047375221272948053847793022064737978155144732336450589226069015379754673176133400884199493269737859702769265170196660325123217859604003923697426749593659165448637390130243413950720979996725295820605267843601992066361911443989065844209774196850738018592677001814769825242816007175532954284742966350707747951753582984583475924301395215569726418399601850145328373932849610871205101174711247560793010658828749653004640894089478820896620641533436812381669672133588267126606045501192673098030865747085365413708226164992558108716645002024766184902214511268713943413879272846440069947302416301561769520517214990976914117627745780284111806716527566131936960312388654975423751569540392413793868585698198328347439399951986874836387253621460579283453145073098369702320703560302477571409263663171918452962992826443082438841837753738179548447385689227673225516395008584664030894059384122108077639687357309879167550062124538518208782759444381109572541497868009452349855203354250189337523200214718754598610842004821906100994205902983648500632594353255329197175021609728627850490229342601709253195253517814406926992139454282966834243079886048558234614077345283547237862042817826257409987482771805917359572086892893222894720440670916927022519052282205271932008842632529140395249336543045896103926402196308965506540188281469315209664382508422139578321173219028081044276302334308281392175837514137195355874791615059196418042388225085663751178350451852306483117887977648088930519739286901119643438011787738058740857073208418882220233872817098103047177338735291979039285829992402566278402127534914198406680040936376622174201712601585839692455135740871723245947189185919106279680590609800268801585904836958298556866440324187273134965771323607117353839097498358615240761420872098830294163997527719535813623891429537392790925716453200868482688230784120303458521645320027234409582568990917195443662447280008451260292358224662711267830781124337874900596460870818578176106148241414350244511261242308863439846705431254683819707996047224707580807947490645276648910689814070196870698345083561740858789206493672201793005091858078705426038958894841773294494411948764446093637066374645874744679864453422246709388915100365961486586654892268216055781007441773496906398047399738427188039809758384970059379682973863848940614194542258494332417823681553779696755290994303014448404555612453566868413851488879203654637812567806556462516382761819578297701411098717542304268384191273810563531286361403065169171589285635855127385008282686246494882714911121113269291562330668377285089419252476940902594327522949390094686028779217200453992042593992484944401675268313181921856596056498380030619391300339575305641906457489116080629010593804515304223149832964112094433913472180133367597214246499327482183416976632421278363528554278265753282889357519532141864889025288351972445354518524707463131693170551256233845029474205934652415242765299369012816426946418685377946895405226269062168572205391627504697126500843427685351573401349558532659347017333723930879354582871856370127369802120857232278040915290659620399482455936798017348993259260788279404813498984513112911110115313511573237332321623733690872606260129850626077181004871305884180280376075913539306746622168691923858436195124941361866907818843816119182179635786868201377526194248290661484936007468773507840665824699611048879948397438121280686397860366596906234049054146229810585048859621287645271797056232337556165993899907082338162476334460230140129148690856092460054660625778670278039179235495774918725885022537185056432846017429500691011905179767372466074020370624933115424064109750813863837919404912795669057215882475219256623188561753025136488364925924604427956826164780145242070017350594590198898985967861602879285576583563095047052723105906743377360653270519599199764407592715919173065748977253305750041671814274553712806973689362837677647543719841267336134568870767887535826862657968476757406805204617753410015817237493104069483927817292513273752224068060883975194241396521473545173887760664200273367504183590333252541228811998420082170508278814005297977709779438079500261325386807271695164726954620409544103342287730321960385145197763260447102320603012257949659825992953754483752266385702225031591501573988908141651148669457377520999822254445358989279723225387755508826886134267498292278500677933313626693464064307869161311653001286458678719872202196430647427511844486349538869896416170929144313867610339387110460819072835560150457512641153425618183748921245420858654032049553425975825338556503519177528224888262942649952983664723809182921828597830073307447531427521350210635854531238994860520187264155184931783199260819535355560084835337615924866289163737771821906151903049895132847907201761473814746527370234322858383285009335458345402813403983103826732168437914637366079421923079515585622975036877295419830500508983566897701910951317764716346087738357050628618847159988523267762818451008381287984949544265370114891332131970393218334839059138059673100471628821032357043441264022095189935699230082545457336934065036862875953574738604853117801558027940312870054617782519941437087090755043298535869899069160375615025760199286120142833172614033773427596207439638384532024890833550167806758877295719556451538314598977913384126081553924685699067331388570558967911749756515303641979292179727905705083593119492972989892514984445362855819778751251241545554593396431700427203020904891598011693108290652150660774419381832220520812211155447760858566059688323964399215867359807345110243156311357508574677886036092356026961807114090362069230671920052133003694479847480766045834350320083076260542479034680809042796143927396585925647244814552255256562584125331589719683232943316148226984687162995227917767544167973226025684129535503858763408320127125703315307487326342774486538674235833460484071921439032207660698148509039768796158367553894439481233318717043312245525014426028587346445479796866373951173612583630825097620024121812345659630483538814658673782056520912159680482585889603125546039370209467150609564612931549572928949726816897700009402578026509686768187995160241887116612770566701897251843697398808757211209221152871172995152096711815021874516018960878103044808468066714620623191824242386495909935077298007395760580531689785297454220004307476574438281315846567853710927023346196237356814002871871711573841158071658839022116486437768645468466896321641362563181112172454064145890080647846133635492410340233600824851445851059704496398781004906326225214885705961755834712998047816156308848003314425321041519486552750570523920575044071114277447713330523657318971407663112659659879458996255458968247684348546337179270845948066899175488363904141070355816423899414223376455011365357888246139470017105531549315898684419998065889946097939287105912014280650085550644770119897208046683286715533795158165253626176250019559583821647716524949142095573306761630566398746883215449800230605885186350968614331944010899963121280288204119082941549670825199842839868013357237859672213904137888776168940854169733502501206900710142375996007170447719626540925416691602827214405024837657081447410335207486088698905244009926954586236532591894219679276811666805620705278483840922840375632116991664170188500501115569669501717630505708476321586760528449621758710840956787688194417221579982485961043542739928043891251870830368693342059666380751153877396920345885977921948622271512446287735071565652188780638554637101069870696444203086022517702772658179121260169406111185053109593874855159467062891105470008633457687661835630177891656778747229005980960178956083877283135802468376069123150241504603538657321290523777368250743799863947464754059481426763726406068774484967086877345877296299926196478731140435552753027992321887864849542096122365887729359757815703971405110561106207901697900631684052247064128365178636014666185426056166635943330140888929144961296689973260185623075195545401442079093607325821151807244233777422949117778569775076423680398642590973619353356022129108470845535842763358606041248953770401456409284256983876421082026155235932916360032844216331915295249948200898963024298884432022603135518639961589490409868868265155136596742808381895274629417821934770314528698779272758241480186160647624273784337547707147831424886989865792330583834416008688975623595936542984833684832220544957653909456094487892823756902504243028260442376744215770225547312462442679126630533957346610234676383922610568295351658035176640479301952218136758459763332706397647847437820448284525693448600598005301593801047659008010243341083718693876450004048227213786190009851954982539539412706416826919691311923115990857072680163262215879290149320204242855302863005269901336337764060752725534465063914405570275383490575245286141336060319771069002995639362150480955564616360396867925556842952172376292164785920244369942029046488134270569858054268060046792656817697258606595527597818738688798883888253153758872000134869325779450423080262183226203260070242722174821297933878336880850073085235146677655179507118576198934524579001450827230300695331164230905933922665643140123304900229566905116601243401738276317785507959490062617356219135697093575377109581508399122461348260571495682861069142769773914637481976229363436004423944234699716390594952638948598157354699464347947593254612103959407025912293926217273015868321043501574411311305009378122004285317999172459008033098247611387565856670922330770921014190210026487453668594161053614938275929203124348682824955430001976303082905923547862066732905019581227637859634596750398000116654778922463347063955087857782317630163591622280694583564608477654047547739363443098942217609178030569513076486067654570713813115823279030904756498860031668766687241462584507575500380501140457190278120576530435460785909416143454126383025297944329834973675510429193905872374748098979926700602054682676971077861172566915741732134173113684188964863617470899666878386069278506568191911961874301528836839831878830608868009943978319403766671257991900110533141351358811847584080899052477455055535059435963880357024249524627242864766038008322826640602174306272674482288525313362424406484156519406593586548119545369679562731086252604221930668332945049818522153815120160972045369456882015574352027744045093487693018523220718940625973248603975409031545557663101333006748379513957084096657251699234120029472725601420757870852037803698628647552273853875937387953666154866685373693570189483616188252643522292642727523155430839134314137726191067862027355061971421363897833058529423285080716186885757803376292668746547198186736859150439231264460449752216815120082950386472709174245419070377300883636756559164701986204700258443413364766849616107004523835934057299665383154293624472150162572219889438968658402275884544249099312023711358734040941254327289426742119472519432487934191603611139205238361916945444823589950802359595530584028773829523982189174347350597831244562359926279743039607789885897271621744235017760334449243878520290350031785678738831647895712887584050318782781885962460182938107275036089816277374993271099390247284596970368773297343326014141855407524991175156568385662175909659178416932903406545108819377781812111278642807128157917072510668916888319854334249829640980533387253379304970380526684158177813904646596887946686091567092105254704134667213741500009160726310385906231453366978577332381982033522296962136959151312074374648040062299011861330530178125972120140454817564898359535738022529850853800077925328381453352756649779958322917396224824945419028627253303686790225781724999562005283787495628835334642136239407005793733827169698753480656512287266127596592976598630138871169362881463255829529927191983568408665324360897498189094558610835305765450432615089809071624824753375669625967471950077945167804062204682774724895311919181214009148513502244329467035854059383880165991632312490119473349472409243566818572714809071220137619617619022757842461887763142144577063159486057366946838968327986087125957660852357476140418397609737019693483632387471859517654441903709816356181542154381009481098764139218084983654081732503278749493218468253317536605416668946091331694373064785228993455869172299820841418527737735609251304145184196202635897221724144420435884342600427203112920233498200831001583437709783801706744204241420546996001039525318768576538963060329013624649067156103319355257318557823467532158460670625221577127494066451302299985636904906160264706503995923678861547055644589430649177285249295985699658079742306497919150049594658814695066332607462329323716671970406970746952464619326165756235042836958342225976214266366664258865104407192654918475792011768871638069535589139311378736873239906182773206116111077857058037438270353356220304909080991542788899160860207818628719613325247883266338144283676638348396242577736373211860504817975905740092530928989146588695714020718612221335901029808651247754112706527434379804609166646037943739224076240091736983795433677312021693170483668263403464526422730161019207336211567047169446065896685586773043727145660775037449597220732755706688901064894118127782031471157152184354279495424085850980291351707453055347392699381634606647252707780854720022193787498578677339269579705949695373830463960484863308632575551407246730994245197055454022133724664401215115896760899984841795928905309768772145031970755600219186134089354772071534186745834738913781846836192323265301681607187644831840195175530054271839598730086725817111072879063310211594087260935557375798551425408838284868822111759796846726933158271177807190563657304574662497988328159457423958503031224145589072157152834409512190143276054675765356810647060321288781146628249139789868684830428916058766475302416253098432158751528114761809398772183406306509389452313697950005857629186691194709726079221456525778399443221749520122590524597907987098008858454831044438995606943145101718854561938982068698891381017729426991283276891589621504200875079811002836712995911634311497133704657042999577608116435220055900267588833340757718510716388765546275296930811765202924659062590537802960395110514002277044504634614145674719693920462961047027136935451752115060683260681061321194744516542270747774095553589916731000825743949770139104748761932145671836662556331729621398665963819591615597359901714733043169777387658037018785466683139571814616537020674814292369916293335679718273642419095770544132095482381618585534115362948794552773845092689703806300397367527858718836509731763370227349267796499751624938681760403614072700061084491538922687057984027932635189611192024429172801891485401576472656556361377564156730101372506755305951461153135389241747046485883148651995638910813282337976855872200721107137739672332370586842846047966444079183012225740882449397858618259065387021775752223681634232308955622003522340855228116975163918288565364318297291594541619104703174338053413376165289063847675421469330830765672489560657659920881676055693607083951281299195684712210955291745497849597719339735102668191135842747030654858674231499188984356625148399271912871792349839631348137353080269059215434546821343217045844075456351564944949314907164345886328053415410302261095343880842820208750720281794226177969736215132894428460341632738034634063081574078863924254191035408480292128615865552542529571456602119292751659942900796048062929364902403911282450569267518789978949753684461229868960098369357483756639482641577912973597241515851204638452358488435992070439547043587383020588232795937098663484318072168704556741836310770819585656054290711116915115114328125299183121987555539879319219623594636771236881227762680450360332461227105950779234147925972879103199751305123413351997912410749606882717790728249701657852162392837005230131855247738778313866578663245834551290891447181178771219425491636439141448225045328162067754605289056835152020628948442174486984012946384527671875251740757794371313819924434692252622174053231476147796921171155541253815223807162510346981285758294920225920893536184630211074353563218458258669932724510186984569842451266715528474803769360256652822711101485733065743552220688233642204893006328953572163095342302398626066274187838227646627289777271051306654906013944709379963860720251856983557191155215236462734575064580101399493564462184647883159917598282239206089196415187082295920707597601561253422298132408540195726807767339777521875827829055636266886645093779790033472196493651595492673495028869001559095838560356158743332414765657545840695522963940804222620835977909626742847963402962439099590872095787452011346909424344547300919584320252870829398623377824631361738685518292128212445641951636747658124452797448967464746435252698039656946460870903449835000744878035095059657036764160077461167984563048592083096066483264797399071010491550922466005529995556875604550221698649504124458428331732896210223245958066432368825146398159273236955060669210973061491064817869435344842147376333174516818530955725484603002829273713802957579902417265284192136143269663652236291339462496468005301377571945105752815836697293724243574066273166303154793349379306121183288808793062917754661828016841833595878022292951931552271733493770504011497823114844502387632347598022571721588760993818033792678133973972550607390930108601259448872177599323092461610160114495405329987046875762087245555700068571168313787468321597953907030158814619747636098896196993692094190627930928087545647576742769144862906232025168856064116302167728477721452046036375076185341613204047678924594018604184395138998080623628557563373873601617212632239577259945068847588180992175046058610989030476613101711901438837345474373289456295625854735573016676302291714770010955589369205520198626636885918133114964100800071055513020013075431965070526962581390109210649413282222189080865956696417096508445111343269049627449205188234030857650529807394876826380965014278973859258882155771805422680780445514812342240974926733177310193691372457903435836540059412827918615850724989552692226168906028526552047879766194985217824648965324934391303111214055577899068985282063854011854328316549672991992376118009993079002133399737571195408147563375126551045813675107130737752492515168134970634140788478318651380294347618017006024785680998990240452235743307927600887502682350762505822574801645416218003418642613409990112177609813904564441400513949635947260443022667608740488420704260165003369608180663255369974065236361513420913604183631995385116118158447880848960779873999197725325263571253099961781097563225660268496457277320442862154590113284218378385875537257541540194811570668686087177942262190743301128608709771949233990225612479955955058543697732768974798224248000385028355976622552022625290395129083280421318083965184593484938532949924490192650546035438003338794554054556737672035923878119388995153089502231626342594987793483925275454476183409367131772184164415491142097846314899060419655371157930887475890792944672211516801523642806785774636067361374843159363362566900357646047377524732752079023948451834818351251050211268112571525674630166931290269462811666417634255705568208848710050119334640145375498173939858601092003413786370133501914127052866939704096158729959189534140666444948224278018737417443926531939021785297398321757200765672509360145842115915725360256670860906811506120789581445169601216727275740117061014646416975947870112271822474132374833908537793516900240918412364821044028014706782891483160253309263959026502480203977016896752454534544271820143307104536520278038048679440936585952528758547324072712946498960940925821615586934023781402581892446379599133919747279087373269790120117006924370672122423174921580322169104307885523231140668681235076081279511225253465696502730818046733381890033474325846334477044314242145359189045995453089045197655275759067591492436307401588216679971501294556146651743160138207538037627085474811585369475972914085453773403809364774457813237764973084317819558095340398778333093999984824726165293872668315275860409587859200469035014524418487903070260636174899191430146030389917425398903108566339475835765343903160165204291755360402434593256808983359306829176807116466036080272704531834494067005799861867827804155651502496012941113690372608517845707150332145864094135565249689480984023828423051481160115361490032827143585580375234033875549992233788912541634607979152618402992556154573330743145828302593887323481615094619574574624199165545159339855852863064635985087164051841114166096240223929810107667907245884553008600801893396250259321943427450665030381891517532780866401939859447907191472189066790306423898738945727949747474541598659872845696721633066214738583135922480376858273439728976326195179189149302473503153486582029661111154957505047908072620229132027350986584962988275108793461100523171187817634662607250639835889816255003342620313972958560770456516210225287202128737349016255627638838161529385162327083976172827783981974972086507299482851538078767684974264447160160937778905724714835335495170510755177661331136068730621922395212690365034820071376407505773291444095887300276677822027771028987453602907031072377884946171154718409588414417777289333391687769803180407454919706276022806445089975527858247001659251911446273646970961014075478573418379048064976071527741852429719160002696885438570893817017745421051250707516392844383018622293872966783431660888350782532688458829423703410363913914425054667388998943812131097030221601725857506085732780642420973642756274962954116141832927216567290312533196614584239219990702499292623871770588222945766480369101452253679630575962110449588579110206891477868439726076735677713892287494111198090087523687835249215445456248064237598364061595521340931789584928479502286774150550705171867347109646124919296906775899374625113133012093724054841185498173771663294042453698154668125839621203219138747359787068151411087539289978410884800431297892944845395940677977667007849042300444287780151836964717303520891926118136133778506021429937201838458109833845553462864945398340786192421007705783092171513073311694182261234114932764638570698572393115306796096740543167572273074445367567348872170761006294189404691651835177848718172354561204686728580650138549259541659297970461576484662325056476133059578581585037487935875963185452836784833238308519505892829333384309933761724456736587017679041822759772356169329576790685255332294203121454407836639387338256309832296280049810426582304723277461885099664198272112021782084344449929396006140817158137701586746849524815252032423818213705465701712495071797185150464049507467936067829187716121481415491067211788998652313006258432463334389881725546423903252090564939907817722360185122122304624965914927049190235861225665690487224650264307530877958704450214375131161188883794663839025561677937818595939896302391176171533190309416046023935051081733931507576919357468297303100800220974534461988704293895124496936668908236098502266738959092241437257278762397754879082177632606474442657365923413183722149491884349173418417415532207858862980479090624799788915453880312593474186829234888080219599785298918852075880515704978553341688220597374876995922113787510625669696074358921280906114957143387764601609452869582146796012880079575302347217085013721088676132399421074008406243768642234989690611609399501567910197782138328914214569411533076873877203089009186530243663846955628157865740595063761042063960034194276422340623167247752998211770691787695720503378838553254079269455843326587073641471279065410405549340576088739429999645762520936098430258662192553862586609595508778136547333629521192650546937491323337530494295535146847581128491487573280366758980145839518867767961329948265733637993772861921167340821419452266992508432283672704093647764066232207706496842313581354939239462145577266712983386940673458117748538205356566224998753367464184400066325975126434901180295300406988190568106705304675232101066791405769541780940036516150148300852964330724794561190469705680758843367509855530235193828663541103608591042707007394104563265607548014513302114433099138328427809084291115978069079851297348242140020797614327921269407828232522250207749663748307711106188551692079337731127999171394638777049539627305650856293191056138463404215298179359230365243149442630771948379325072067331812500852852222498556664080071462617193856432697522164084198050971075383992325404769717608084816039081446404124814835411388993375417144991913906374275484237475321608173843598474454432042926880558447183901397375686348820586079047031064638550281591691734376190804922156880444300662758245257333662947804903606379697407863168153591641411844373726413493952798163775699522500351563538869451812473947623278512406742189357730597496166929784784401298503821341818948991083253617083990996355200784549316716529109279627662470065276194583538274669418127965543268218318664365749861024991214913580021949857057842607675642116539299242556642750395088579501465491691406534231476378702770606379709006650029664724183824348884915867958860849498605398417425454749130548025885431753501148683851219383884420011001531145505474223766242000016222137993000287243378722358698931378143275974678156241088995895446911961435011109015489996748362676665763222831080531313053853681237184059288277465054601730895683075452990553200332378606277648539036480198516916260947606454606459054595786421621104268258514185344372965380495712182053196249708364024829392474154500429625504868206550197682174455165813168763559776957537052922865966037616888023143709479075494732540882478158921993413769603849460861726552116814494083346955032059651936142016107283990787987248215811863073300707295992852575710640861916060366593790836063899613589517353661733343852278419002883725876245211778647713283760046412961758030186730910934812313760370689261078756481541473752442484292621203644416663934811329050563956355834341321378619507076070040736143353586670486429195818157258815940914406989195329886074576731290463143027245792149459334463007896888469669887990888125124924863500390955012982329143441904053726551412682646856137318172857464806253286089396320314296859200832002263155810725830240627178862615868026272516074106689691832901496473463734028722599012338018906823094946688806053452577062615006769622709841203896597759918029559329298779009482852620023396234526976220460276644576721425640983493053676320131333133627495961223008483455760276372926523155329312863024306061892247350584833442403745157007485359325199558264923355450526231609108698610760488007743612663288576178356966665425674682873652476736841779021532054870644551161219250861892576949368835862475295645361069056821644968685645344448527713439458462017443644452453377909734622935120705577231402006848121460522642497588071552087123762499418759115698286882547064236536514153018514215646892175601902410613761600285988367261940213778665458148941091462997288376128376962028704722781432227765515053286141702643048883774199288092619396887834251182531658789486958363356884161906474025433966259951726515333731771330943123545353423039470924387564427608994179547239434271655296965917452451110949400816570154084335603235168242707209168522305328872683673937283899235812923907105436549225444754601372956711526428899697729230986354100883949440779629216729735360581783724290773314205992959132788693236502169761179508983050086907932486172783187471488805429710653807360321525692932239598571181983522900118918421259834202410561393943755807722699392047399574021375784695452655686964525290799547940364900018294886650261582788753790452049349061038117061509855605014714984599990808796583457156105611916069851763671839481452407878837316416276278198289115780914189126209092545706379145028031428788197340661780112604332602963724277984822604083006136379849824300645204675783397437982213034118407232673694962371223626898578931468167820621938268339257187375978638306214660974447113653475699282763876503368795155970234516660562141406164914659201774343479141244370431499097513720350195757893008495144472310363552413745807796179787478848895222076967031549521823857832396933684422503091406243853500178022270695593688588661788348472121657599804638689976460571353430881308780210122499614023133222802275121520263294697515698706608411112518586607896777208776693219574126730155520936998158513414882134934590241945090570517945946314771383397206988632462976810162509165177478098364553156727250937555206390972710248394228249164764262246091283409457822292325407043556184798016910904398511567672080244981838009410312472751819873246912405710473874618404259396870824264942420957330870777923444774826940035801935906464537253150367090659216719326462970552834231528187933094093085061895415402294082513556734319068185290116777764959836652252448366931366511085506145643143090981640247340412028941680765389083182705300710608219114355101269123267994897837183213909158310295162349996761887792655328537835884176755197415057299114854032757055177500938951352976043690149804269802554489595024859667281074430073355332649886163772646707261849110398015050424295908032225190540007538215540043873323206266235528241689354709919914091300392859339826008129729526140074305144538810340862016830789700941599558155877734424296784897356009184483048713727886356872961659956095953306107409976624130401244840147333612474602014945301182251157548232773049641647873948607466095485544429218479032108212926635056009509895877120802839011966921838658140125125711337289281994962798167643681884129319933110887763667030192519712866731984097235547750578125419886310968232436311669457219278540226904913218322220455751727508992776146389946571345417258989711588303078450348737289168151055940136101781088122899118632417920170275227409280224049006088680229908394066567284328457395663424339856680270361526785541630205519286143759658476460025954572845794271965452560469192312487318400457933459109908190396479794243356565617456795730164688621357158511090376289954499856347570106297868510497428542875844243670962603589651890568633758561505025020504552539646336305111605546407762966252738492805558878891260639215093011775497537450577415684570681122374352656017504371785542634115055245298980503585230854945902723417655860796629223465271308576475544872487616273351929098410951699747680627858317329003948943003671198812641485421056501685585965741316558398956837434521010394584264807257996955692136522830865410848510216132272378719080062976835974298867644729316131053746899865357841532691272572721570339268333400037570154962537809703701159221842453633664437308643690331555654393566774846836822791898573646490456690575846616942413437219690211170078632985733884004913135465706084466682098269541986080753678679614707304924710029020670442757815222019457260924523095106314176395837462103084910121028301062980272421917882399510215021998476877719702638675763031541136838482157450444845184302066743050912403330845912885577770814679479152608369327249375624008676756110341025478570066186058034324216576363606443918928412484863159787324351614551346329990154452038553245506085106673373633875550811877321349683657303496349505253879542978136331579723642564681301185329988164054950727857527910130229919903930773688948640494641830615282819416074948808914081259845152179946558031271267797277970536361392186575984321776377721658658836504793786684072977367176406938831755721700408218085308943854790276119445382074793345471769705244704263772991702279643355515969574193388229994466926918595260815728456120129290369896878226057605250592452766453374306945034083869182175527303946771691626255164372262949534723227604911678949221390422550789986540763701349587969139390470661077797494147659657801040224818103696735279545747806136466972863199887693826237365958208090955936809408053770259839879059570433282650487945942637164361068518651813418526477825754576516426559219527201214353936754164663039083678592717629424882219071930324853760770571747595536027744725382970310825802958339674246312953193546600536071279970731332579763996373704722002372142494266306772296558965933767634562471515486869873309278825077121130083498222700544065735334404738668158249142775930594189377872046269641498382953422048993043426994116798999884179476747750283465328105430753653012264506871119552686597431961924796802146897375393156334962153437097073298900891045873730000794432272962961606568572898855097359912841657132358728255415662105374321394957969410699248287240508462746956283678685296738283930651342182707500431389300234554201630497832856102482911958467184263159315110381256882012395602664442731807140481638894700990827632424489853440416961598105255081132544983348295817964461788226094729183800585166100785602134078043384556888255436352050107975238973771217661137776191754282623782190250105811462030543022464432392268308050396434963865048817491669066425572187960654875913405372676081765760974877558057770091106888937718465093746283788957143809401513677709883196543507720572254229831695502541345032150516625661271787738871320277683934892282865445574419661460401575306673875421424137808868182702597415707489071942422981152452355854200815410741914562372125519735014357822186250845376199475562306791988451258145548964412823752778715747333300061359886182685408095806349585187061006166351245041153909554238936006646780757187684876923199150916766459610163274291458864532639982783130229149045948908718301545305970521065906308599854827872375879608352488309755986513034305724464046123644100929377200727309650514312381133537558732390531835217822756047186875083684064667885918204406651922284973311032338899326000988930662672869815470192530035185606598636855809597492578768390996906511028557510911104394734886984928841357844077964141314868121222251333843190808251901067323038973980925374947338290975585616829748550640666872361827144988421431247539579551430151752255554597608281977053353937870965273707285354559085985554362031146698709980745751509790817360855702271955579529557750963824327740878286948695214704889782092416703600401535449716079045770192040700319557334573900976325621998262594710436529709239634190593185574311424168097782745498869618967772236390959477386743934246793630993304053256965216710322738536319233589819056964365927345728786121912847132584232302441079178883928609541743066174858728962120565735304974995399987516876208274906417614858783764472750030302888061930958020020180776341842770536631131381786827231213288593015483256600898562741259398932085701190655496212331900039426877143011658371103486415355349966713228842255414166775873367611385208699485985391605283910527751922109293977547063916248806354673255816855589611771277112314221881998792453875150932778205983863181107345921725950381804235665414190104751078426136772983758824707586453564429872188241751790967517982256209346991698266393780687654236267139574173058291515798328426309842935179100983531278176291680506162389426726825746246813751889650685338707976942483987870993226338153696773024476398216248902678461212756483195432511711622823934537557386388082733274469951153323006231356993556162297361753773068517106577232692574245767910333212114762035687246642818709057171275461083086563269836999939561674136797790180246006052859967047507965418564180381050137203316850700540521736207726824850123180945737562779337384754113192894600270355156133005455501123419212427943669102499269575541093106402441898388327434382206528861752086647904870322452952078314751539100782305677500432099666537264241927033912492191454320713469326583679092126987017225527899743454475561643382362438370401021636642549218397639988363657559788027296659097859138355492153787394688564012989222493515812177874526349263187508984568448334910112429892683546943465601323618361553706934612740038900017989853219602594908777281228343938067723869915441292863214978060851870652828500137168149589900930363014579415495928289335748957836925354887878890189300233316674278441386839338835791062326055557436686385733240207774849496400980345496906151277963595095429605204956705448026246484010608110773460569765068943786436846203100617188023122528578359143533579299224922924017812605108967282501203124391141303052172556928775798281132331084111464454102074269406755408625478243190817474426443728509252343583993402110039246579732372293741523405699274244643723889879851665700044610655876093403532272183093059574932521041677926124659124299444035757187674876193840595035096211427763435538700025003626342024700168961086559643415829099552781530727280709531069599341817842569313780729242423587538527484500543419058106766996853279194837183639605226611900865492239441954417399391639530108342568976147497867980613214348201823154369503282649788758531679938858785059068880459372858165087763372230665697098695885493606187424489211458305944013212354852335252247976496780465289615821618017517275309121514772901012092790528396947900004855120883085168000753769660386665901808713012388372660653828099631565129273324298294604405672751507947099347743815911296529950470990621252459688556117879951489911324604044495908524855363874791062010360386960459074051327557105265201822108764513365544827991500507805004928352984460878422121334128127796391180329920036375958024883242830412118349559582656059858962902001427741093985026237495991628808459764101623456771431200562334937045140314158437131368364838849922423265791584105428018652330280852027354958954938625921499812673321026422385642140666997038761979957751974212771650391250988757772383754392839556459499299437363946210620009812737493739965776841228243715911208517467221037650604171025522210501765825129020685618588532714499227064067977950719398100711058276557158496137290216255761564921187281826012350123704903208986626426213774254669703035758862741393213888789627120603209904130155353006605584779074848200788745573686401676901241603058013047581343987420024623234176260945144848000315971198669922618936177142794363578758451223927362367617541005941978532814323385001482120348026652086319259816748332511173880277080008403353036611366122096555210270270332597704846786971685579235658057843101121615225696727774423260280794257516202150223402435464496057122048940814734831784351455072397079968621480342962781046277541327923190526959474172605482068332344946837959186309469464619831389879700081524474186251021330210762458050990379092710719406751495448229486641730088098194246588537452533714645058575523475103083386207190282075828877213578109550667432229157885450619475490368442356398737950354894429666739734686611938657296399788229219674833298025192094669537298831810690766544718521061588976404252010217684358124058367129397040255420555025078186350788855545569236170819807795622966681060190919326357534199629979776780775953150458803609149082796360535929842110329605880678099289670557575164601587512681270208778001970114582212175522220543952240939254212728855944795730939822413806473607488381829736376558315656438861330856924884700173165207733115216524307965913305040747770400418794494706244547547778673176923839317058090674723826430477779028685799544744220975116833022390008192043041869918336014435623015706860919791652216688982136929497101911947554328084147726618337871092255242326216817083253701890063988655894459558595742290675407427556210354583451408184903256047109096654750031245981642848579289082206151191282970071054544169163870084329495352489538648252502677661346774589163559286238578681549578859052051062703343571701444709439040820341368308581827491118084646848383915381227462339158521698507292867720495761342339467597805694302483532686353372091197484901059178270336469074362188230912436704268699322916182415511257050070918394706338032945098120477289335880590507248956946593333744782660049127918163534683779189387602518880420174979125330027618041101438913377431955673353068762415836036573258261134118780766561786427939856014730795883138341449318025290223790989494622029885821603964593519966791334507758538598938968361189126285560829254150935404597485874077420087552049990499422824434165860368104607730322134818187524742179918298300320923176448673256736536255335788712808534026256514765278646820121759995641055999933442377235652625984557205407731690354084717585961759834146711822555507257815019211784115280418037750609107129003445765235128884512793674044577041479533081248518544410476439950494053446379731652051565121667246779281490657245674034207129519739120210330398888377776264702751843126245237822411362619562118978815398479348749034339212783336996162671566502007502861282853125684564078462724207679467381556550488188040376529870938063613302045882816391259703929288327975359146856273579989296433415582984420866946588952970792146251703692868356200092875535193153447849601626033365649866743320381565135058665211699079154135047997035503826574565185737711871822926018862140843460831584055039994279565518729211897033752920484066959608398262375448501616909789518473816761155478583018607680320256237826641809434558820172542733917785267824251700070923703759736248776790633250809145525971957735284084098498361641162552768508458730910186673332051112854290069475222986703516800248101757299648327434216443435586168585608056083870822845233847825045951166107884970182740830021837876345517309475930853210733264699919887533208124636164598185789023403038090261224401756027171293575564127337232488813856887087323180282132860243550284812710252257909425164199226907360576649076573604855521038048753373937273855454918988242109731396254847091536919637858130029731039257283595305225127175503348122772391790650189688929371650917522354544790803054872981198430604958504400132442045280203239351880882858043519823979279305211599922859292573510573268572253364926235603715598477658116028111121313258737422959819446992354715893717724191924639725480460945911502886717714463998910459692926067991296016242375278664101162083992282336491644436502001053657930915938542911805235764706589065710789456485834450480287597341175753603961641765558779172221576462526499884396889156310611253684839492059073035112134733517922245420489597002863537778603492292119871612735113599463848133682548244468981723218687777502257698582344366445664887771013484284616632996550984138481766585051092478757311522303171669307412738011536351969566882044985594053573268955835211850964521317852570037440566000446579634656042023046473285058695408725114060256603093319835181437344516159673908009124120548043967263265866786261402686987705093546276503573171245604281951852425143176633995602930634165916175466083403966292391503658104644496258982893402615469901377581869880037192014543612076721734285194870032373689883556365469387799568850140742077185324377903751637180618265387566458931728440080294187456983930192173731453470673601788206706997295667063700757637183863964881799272716501233806552853986330489613457651512716495200409720708145664512885184482847547166794768271658586844040384647684896394920666965404722078798946006443364277331938566736300389284528373756043952290139801850937553943559821009954660790762313833481544045741410250464126135878264136976409046058480453137086357848930576105697720086077908746350642003304533189523513975724556320374682483257069126774708056756345101452330623769635396931610208260375361328910479847984352814147540173175546013385513801817295455241702507784680491616836728082537570812685745340503141960229339279330949985609104890122179358919192529501974153545296657905188105762269686965627304364228789552561024186508756862300030065391657545789656176974031329714729700859427638423099986964508468989771522254263997040613655491486464577123334999057089704446049607104191193770878780910442545277744342677581345950431557084230885103244231843597321901855511181478654566338167915495089830022119842349878125534702862271150624202585098854276679432768592989608454622147101728200374974527644676366721207694679394312459662884079772043299498271891402887672907756787489820191255828410192986506638093092799672370027327472728871653492743498535213893670210801691128305353597659733492564017485070640350118901072706654475127040255194915803332231329433964492053458458234571059648579057548643634396201576514781602305040812259898876418932114465736298668214601390073679202635151677030367446478521528257936097567032014044051137137936427234555770687568871790167834109100001436729033540549512868625465700775308352259200331972962664931612631721429813301248829678385737850228044750102494782615449792755803301047340137420366779379167882724794057687776663335582588454406626908718997101025499659648343049038178606269838108245038703293220128311768764805263419436918733913821287274264573921862271429734461287689849839766414572805313875902429510456013000467287069946582893970383968358514164142800674047532277310537603236949928171095323974593576019573534166091557941699096505313421269827738136154901097568068290721876029291559276068983118924794596422077611995390556675084310771831746412991960376095465056670964125442317565936829029417358675722146354921705925387472698206918753388717042748866798359284585569937709308397263912008387483734501628488042293333136295514213987476593544003624318036182188134720816596361014914067781956980654806447604515464768944940373514546797642478760345883799048721180077861882536189535663909605962344640250264910308603669347171971677041862570515538816134028778512679516292225301017270359557469269450644190618159864963387067480423799855981057521660417301352670234910322160408066150761342922368766309751057119907495624835679132785877520945939201791870919240724274177386862583084732899409638252742589037981307271692910437346970573685600167138947274892781455615951467357145154195236200868731831018426596243801440817410623189532121382655869262016802561392935094456086721385583541339756364806305923558467315785743829491620157620540693262607473471152585650633594099249694606234741731253895495431603085254017716302180159719223795490926447794076470531271431232102405582007172381922246723817596089174435276969807918701799747155781913776389158508746846744532600936684805292723793297307491077881219028025757871309548117264818691604883600822958409734582880041420534104602677712518833510614694176692364371688199718117066550543287141586445939230612153195376552794602514308304659512974313692254161524986678766936902633335115123102241928804508624911755657542921566873830332864156877629137785508835156664056339001537170850827105236240296048603653421062758694857459464255433741344096787653793163482246629015263645159571024138082455054588885714977477427487727406121691131956298675222406199324046743083078518184920157736232017486770599586134697572546357799947106405776884684553334995447246689508106827481119668099603611583314740536611755562185103034697675795600896735775685183877456812883963515765743059719562820269804916980905801701241230109683323396513849620677353847768852163440263756962534687583781838105087695473079512219168825306225384999199178952972233735266007662723802802045925048600107908034263291992782691207393436789307594994372947803852634401605134087765315983612390551426252487150262931024461377531827195807206970134064416659886909737055230544829623599935662647954180308520062962335763773817957984467530750925922577392768406166433997807046351896609835481577310808856638490050930635834656688849930770959248119515819725119585178991664366128872333652434386085905018878276695385289591840084860014274669440767798640030034608169630766813920612584243913462750201190323148978472934312128273486574269044611532057726461491163022672488312920867787058496788708718416329013954229371315669217903682776787597295061999641002764241290892181264283865860942301337583791943974183693909716842058475618640531604350865387846389510668884213136652161381927823127537539671647209053162424037674503520373961610128682175416759158336312918588750883175187472166896579839458530397042548638242029148692777290594385007738298449543979674144471478064321194201210816798652368430375861066055900882951566410797910367698911603612641210594669342841328191171723585020665941800676307460766943513892587731146939622824613497327610892071438838027290843598653580715204835715655391904669871449727490504699265398307559414515487394935990791650028902381059633028016063835755472683142716133407976203945590778369569221568551200468020504026039007828052869831236786357957606077754085285059988371255662831870738030101752110936018738077947062152939226382418921992076335007783738619284165977846733879875438241724278430554247227815584379013897148399659096397617476485952318500796069182149071919069091360393992794185223114470894541433617139606329818785065173390423433760603012433392902600800680340133772614453978240131410167045657652703460221114408909792318442500469761252942339058234060190995206534030013745631254553675745008071439587072507099733101948447988487277112613892772843497924731633323998318833502990694987955914492195645148858915473174414550880731968209963340105910054907127336243618860590173383800001068532815116909290936361988621982650775066518738301752328627397150044542379575467314666830798348138023471437506936174421216290590268880497432581959587702997599978845817337619015509953502138124967989537051035575295535483180595048410929790842721877485141497308780593265934912963504485741402251553424421018243389771101019578264223664253073088300856357618011650983652911300387354153625555904934524539822311183107906208031725812720134926608986725497260413517102961764386638458301443357466963270335465896742424588584600041551339936082296988949753509815777035225853148905685743065924145603363675431863712645467246700145649233516793041054259783172920552200952080674971890030841536771287715775253884587041584114034403346886308684516470233162427541099198008232426848004605432684068846284215509142484926813577048945548551290640281896151363843472470580364376159705893759412625365361674761796110672092677723070525346901112918333460248670032864103626951169607897807236871736467124881127076675365039325097849465943979933854071850282820851781296194822198746813109412453255150840013622223260382111464700772609626873514871851686367355584468891314587094004880207599546245955202521826697874787721097670994872701358847378471110858516945884825148327115137232908411624572459862048170280382626383796234875625798822633601654649464904326200685757843267611156544352536028862384171924063676307996179162886117848017144449652463548545595055357263500622269612099536464446118102967112456299190862584484231830275405093950666070963826006027986860095771301399301521967267999723940771337116628928281305952305986974551031633887585595278614770631479049890414764170366973112766608045108351131832594904674031572336336608003027530915454339898701675602479888238287294107502558559400765662924615517486277210334619171756687769425318534639233882572232930553536885618756477619147850331512609601432079062998924226515018868376161438715252583468291152927065673841070808535295600028595480237454557429288178521633985957409016411404973968495034136265110329604712976696982506734814189826729708140193062054003168535113190452726096274227250240750417250715845757584656095570956205748227427556746153603820138568495103762520726484515983639977493737315618979318807087428034820045773480581688648387257843443529464869389597087768083688124015076555169717920056742692865258030250508241311182215155064752785748776040517201031747894806461806176903300163480479109314849668847401611819019661771367082257354669345449792630951965081107565393764535596769016918179023671100645850063680291827450919812585377388713431616568962491331792623668802819989217386646375073752435109244913518230896991183837232690656439194980506869400812754778301314029158513156189049925825375658717234008668612036764381114890822837863488738578313329706139266368397865610106328454578620521973676535355802165126760017436521817013973366095810774855451366497903059908291741145261869748919600345060563110853483177945200798994649289619416160718322161374366537246988187594097847712805555408159393326083494710129492653368494983876936923159896049557793568593319293914352260600177978662707586693341529595540091720687703714075161282800812575765920746403642741153316620257237776224806747973967271492339064373322454335011551018433231933842038659509689421735888391166323941186190786783537092137292826982079767924734177645892877145622087598614759127499004566472009727126944641206480258578147088272983166314145448891770665456499748714203638477933587171373887238930214830135367875875766787125892371183039252262571561579091780349279655769388196703272561729642292686469232357295598686055350124176722616302593973437392171589630898958042505373977854231494277954749332520704140222178547043335238677305875654254297395811237361041728200708121450437581821381143602148744020662899311322747088520401484749372759435509122239334738013776056308658359793039036697769694577573095231650733852022588874800207860516912203828510775147136821858413128547965078657929856386346683530540156678203689243892705448861540828308807111876672288221940814170906697857703054514730923307231434627543393144639077963492827617142210572529763901481067340255968612741048559025156471127799454724791043268782047844130029712437042837496593561039927913532414942039749736778576795322442321893933885599453859311545221712132630724784454302696275666077773441213288491049348757771320908880048307223512245345706714705981305013555868151268964155647946822459134403042302664639513421208726913092917630087353207773734241866355987878544816219311015985219325300109966984716568967855477680709354799479124897652480273032526411183573639806246433482530446401097261095852878514681334541495638095247198862290710134293286519646957835844286918256333026856970422760727687207433136788053398085464025858767004564548749714161349148445552823324900436701051897286409403995864772738776199503075001056084904357615061810067177207443315766524996057636237204810152658991912509465620848132016109084496550008959110711495737335180351657007704804943902056623978164533951404694037333113597550136529102136507324199265597219455911513710296806229005387573755042810000174316234324157225137573572779511961285329266335950974974775415626705014636871193141472898501223501539668851397649584418491576281122946597624174525666342509590472937576193502899260223373715806532543639596436986587577918054242620828811248263747135837475295480315891303756390379120504541358552642265338490327287640639213010029554537589952429214845856905757057584427951930746840718264915759887859738405352311811888793135281288427312890704218979164316964916090597266991229807380828573309007025104130861000852770455389309965972099719870344144283851843914035999333805133099848160914723661201252569412770901377792979565319503095843853785637297247820734965704338292273863559000792192822839222566571400462440297382953216170990641542224994841715784734339561069223188752247545673304054856302471944778761988435538516072816316804679320799996899877682432713619695631320774920144444953921799948708470048977777348998574764956662781972600725529593845493549697755699673715362442577488109197065162446826097797553952332400939932235132688073078508691645387637587929869000624980705315824143231158872013950684426721240987287402074425960522017416517420474270046551201754515027623960249618876495641882564433770791307166715976604615478797211883896736633057872680404801987990400565719538867522762589213587651860963706941750572005369023181060071452117935907083653262387853656263066811869166598593913640798816330302600390960386973637433886128904433422332116429978272118809006755493078858506479555728159257640204333220243833192999357469309690209599732356428610614656019232383839032955212716941384273475949684617860258580493422473715093779230450025051574130126840860259033313944473314145469317033722611829148489437977150791110198074283174743436324027632647084594397187225355818812930520458540431517436920406663320133018264609245427285513835040404374419881959810907601813094451509449756579816902744085603654391262632083457344237754419315289402118037645997004448624058596394932667186422396223417957661515889851771107707282883833122924733941493035762939565187143990061381636552834214866924959835595191089047669680123744202946918650788140604589021069116929047540395681665947934118697103738925148923950644841628955679608812013499125576161540349951596380397233305533197800132813215437823743086457807881482246232075905026766667821080837897629402289693241968145623169128500232595652940338117654655537391427044177226852841497852269414109586883500972234305685931356524257498856708415459316601997992399848020609984814454777239609684284890855990407242924933345089854462869750743244191690379668199584051136636867601835815889848683191885285972798949014118033692457007180817596215730562328919148298631834010728892262026018733343792066720585812833424777854301796986915658609682345830572808150278037554157473007085273345535727415801943021888561350756291088623980735917736373971240592121942334989476117573189576125551161337126002700979956536435780666948375726283928593954022515696306067801376179882623005218209826084635517297078699156353694145937860377753528346700700482148463562990666305938191461638379790685391141551207212931335942472445908889488125293512827978466002303189757167995204074570575942637762091275216711540042969154783370582803680209816160808377041062019578421784848352991744167974736667597117710401649001628869435665334124147388688866703793222676451785528702638006240448547903880767739841161074912328886127411590358823854169817131760972238957856112449562283442541129883744707427848335663583367725206504320705272360035996826670642546123040727085173352089140799443542254024776190428041291855310080187330413089021344306022249450176908633486836464334772503780432258217224776235121469728825702875532382286281790263484211470940987220588467396942626453814549724567236384566334235035027223949499138308929059626276864177139197210204061610489623129067349043736788529656092166928351729766616199647041531934427465411358556695511710269925473315314892011999865645722327403221037797617379467516335075800969651161859706011579405624218440057548987882839080021219307147035225404266822341588436399102655479753284522891820266716499277835048511132459874066020543382319013760956808953647300444290626156558283979465516389406272781685581471966327125390041171995458523173372847527340558414674123652304848100333896082086648982587921977052555283405388707377191047984821489144973232778117212987058700633831414759820250873983620916762347720199751345450202060918276030500672285865910041279625736402347724852934937958571941728122189310759247862710718823644841295342376514448934634744747108124674272146001451337330651863542992339916119156285209476846023907835893458106070438961328979162257272520250275024612239344537297568585579580981968338974337018250341239382345967783606419732787609416660210888405175718518018385745281917079538882704713983081346907195647275699414709571646894279364633964586153942512200151308973617585478704474503517690694335373615378080712601149112619579035631342621138462005495919608380232777276778498763159874830485041312743857215185751430219258314846492677671875462230562664852913880482476423773292698245706589142345902087271081575066916880820119353783340135977535749409037915254980423474465162574033404670881145724444123540469803293145753334285794261809389425750908293640122349577860256212196423096057109944935630754476417218420916373981245518656554046741581867298199879210304013294281079218710299660578917882235067047340207735854794155760594415878079108102256149227384436383880613532852240783855064870379988242287877534477162855710319243935219899365378778813225926959345926913843814658154099385659274548868469854893863437836851143490390346027385200182576348800778849006682206847698871121122735337251078616491304564060001904841902662493632582830265831002850687068290293070383247907424250717435885427450019304835980035538350002939830278359388624266627631519438592650998370882481208133259650524395639891781155542672347607441165178978983274602850932039340252301353889758256581995924321751568456794601972169613958509897340002906540460700749814696164903432364284288182815454266223608999560812493685904480437826186521510333374778062754113141584780718337549643122053119654983548512147870836262443580864029117998716892374858804234000037648661109547087112367257564300903420554923332481845652477920297397758879061183537468135068021674716269122282196122992593976725682672449794615693719577174556181828293154862008623543827243358662048363397620152676132877289306993177726435732281679402698922503671899720463524444588623850957281066640955199148107009280922098675550716439148273042909065298223144365214714855086685902899756911367937312487979358139659142713816237238219558615887609566557880134023627960308613268230608000294107831533691420362622332113223468666022988807806317543895038773543352569661503754324918974087196641437056521410008597695060844662864060190120215469278679638445149997378782379602173298131794269999139279847698650046438778535975886988876813350595717585498173292347702109649319868643990778174704810403971221004543735616072827427961647891119465837859932610125723295282679477173830303110291628762620410533052108391789802713407318398053640982076047464477548050328338194241661818516026025144068323740276836205254170544924604792721759972099304369534055092372083428120320650361924018209578183334927898057409863710679870590734869098392807917917239553077261952234788230265308793262111595840184743939572615414982009366988747929708069338079160237745145583621527653108075788658242075275766714181664946140937877773624505383149056285378605157731276704826261955646619943417696737705442762524627378654478935208144900535135432444613868274458785423417102577547666538100117913599455326172636751416726543384534539917315886650906400040649940828579822157993799912652669585678835422166782427605176707561041176526606485439032343826199684890467176844721226727535982587995995649093207913615528095786999098207001331064012668955357111192869839314333932929262471108504687467802410036778645449190345732433805337073078622365683166766112722586318491304004453302742227292256320274976388397837135528795104120479152334239326212181487992723896025566820606824588868865158013702713517938079727512046797486794871461633228570591092266254042061894313453287618906920908818977487206908037508136524924315645526602102977574035471854224390540823502624487753493278390324922053662634064364237267833922522988081284289399669230746630014398458476846693924413399770695872879001168665009213416725244931528848062635415645138782984084880397389149022909624318825463127301242628014896925938410954774738409001194748369697785713331277588899236779179337458668802807152655132527423319531340483217805535792270724687597644577918624103393725881563733877965237681446800347398394257714869091163677793712308739431098242804503480987634096546250170678954704001397656765608025776750847036889103508991098613848936917467827732888211024370699374176304039214363625287186414440119713549485705344499409581324703537149829368487824632467395778024058695293916879953179747929882406281272031552718109867863886296290110185537023127037902658796005605201303073614829284285488833023920056614988987551990735331774854057870723641274255958831905968188244643457564359970973752922832963023037073913173727845111731887977341279655497748123568879331127011966515614510089173878399136350422794622973217317057351569950285109470184112328264144164431068842013852790931680886826037845863294241801619730950316892112840566041319118220149788843356026989387342450108669879709286395187500483016319966502774105299077471960339102484015626931175919746975024729793815591774230225206120614028974541765616662715292435907112097976829280796072420904793740632107303627615987670541685790869054798671628396472100491887880489991880096533497695311533905674843943529013902133351671150561946773422170094097016167360383447518934795286961723449442875713690484819426219291798374379350511035888531693135586231129466072417655210781028335922048333381276482559770023865083426601987309237426336871481044474165715948167820295457705090815248024079754472874260767909615820991339241185916420386594360555258210280559921795357016073403964823500119873084145393097888526443736744174581616710958763292399793888140970009389676406626573130342008613506974655061103929124668583286791593715103240467940046398761082263118618194469770766339153040278604089664729112240777653178969707853898555555113356451517548180704363482623928612667801085050354666948961342912428681483786044362575962720641897831036616375382957747583316630007952838271232018744410627823284024210070697559320895787776385047407119110657457001378070036471322820341268745250639401107797272477169445774443922107332332843426633469369116484183610917583970658223058552415878723377537311585850512289936899551475001527133256279383815248085753948125240061963774010741317696668520985900389963471167961883487612499476147863073627114993618480003011761993412175974493755984343940265584130243617736701573699181089722154201522118198668698300692959793700123696364298784505768073140035540109945997708708589735111906831905047148864414444584192335336534932720513649380776092101431141486400230199827566121402382642722616917801603304180770944998418664376488513147246912342544690994301876525537583153705856345138334404614508407709702890722470787054255718173872059942756942056814052723655792447015395290250422813785701731654276549714311865827111672048348620000184753844378931497125270622318782928258029007998426803141637507041515959459739918266964332585954408873585437034849767362629189997410082212709246107733524732892728228916320268281768796123439025913453576810846645990333678183391230027000436367386444359767472879154289152957828238480356679463693568784250244317994388351354416752430222768259106406229396546962554023332286017220492168860243581519008540233556313226169250637093269766356277020464639760728774227677912812687425539944262830594498653439079109024294223057763419572233657591850344036211222353781728181146601031755804742565187441345459008563645005539077708586203636522702757418959485430283361376168147762777087013409237772192189063158760349471613036687924903442687495749250042637608655922742160075189227237939818791363856242832523152601724281303295518393139235057645329299711269955119895559648297900489854911999162640758094785843001846778193720842524089492781674380182306895767303839720212541142646437795010382383597561040756049413946108876099844826703156783045527975137400248383093506687999785025253519861932036139094696819353691793733920209865384529700937797432433905375331911712973310657916590097450739096300761408571677979314613285477368337362561941761495366580701821003992967397019443475839267664279127494754396099229798731037993820313760205539599950781319101683802578249529962329552367365078484228935791565651953153335913720638556753056823670220754410240033576242267576599881403193169111764347047414527107556312731393619610448707064644045413658404707783836017943647387831618523676447144824345407051146459120941646462193670671133935256603827363695868973513099207068360010190471591851222255169804515875429114183639275144300998022750422243964013204621978970154449240938426898000445399298648579450244681507241159249764272609225752711968679996093848786386126960017949763608006075780552892855659733191376644354519309143884294279326655175202699933526429154901729290437100346182079662433671443208325832757045370727485681975572033239217247579174104746998042087293050084138657982640732640653347904172891990525099333559363271949501984265571982283206238977407646601694752839635240566648210738095768949911489103885863443872551321566683932155573017829095445007552801699184254990873382267246003269395046871859331362308193577354406975314053461031977470996436260670939645140910867274285496830286251578550855422683034375278566542554361452058010546033225265927653771819539824170794891542324064130270614037136187446008631457411311835268602662174802761727707381115023410643918954317408436129429755115389609934370833244036349358451728198082359958794383515955246971291211024935587947060069471695950439592932231346191116870367393193866214704703864713045122612555694242609076437704695432913619306779254026629052919477221878775578323422269734595592841835219033195400224740100799336386046572490327939127534316723720994878953577887198353327206183307670647441773773717000588319336559803011051959499535278521327857549616314784872586345492744249301104340099332290283077421694748947763925347081761677182124039101056595861103472678397548501293035600219339084792386773539740638172011792567245943149244337414591545993303470241106712005387716544297346620097140159584276917945572980527646589302401589246349813137371957841417411898086661538777796843179221050991172516625634923518169729982897359311724353188986180649102596000736589211682194113070396283864292928600283545117845512550218475835833529225938137346681650257508405433340308345598606787878651043147845422123479156876309341388838997245872449207429258893345142361924613734047041400180699433389924830299581922086006896825682741961035626888117233916046333831438980739772056684943441692602105890546696140201439858576303906265091351743119078381708941840790349055208152314383747452480249740894988245472791178457282418916583517407462179524684698734895423022079177600987235502937080808018001309565774421212017349088550194091654886092006905490170215979315070043349524687248859933673878939566927558174122523137563466935591788109123658596761262036901197757458547420497708357339598010957266228385565549434920894177141600979695504352326255252156752110450314682662634938333824745882610214990736147300357645028344762527825471212693849146512963926898222251922310050205463442812804547034048720338165615260619664397778855147736515158854447596391201796944947282037174919996504277368532958474615778583701177779445010184280624891835844727082623412271786502265350127724882858608435665841274072302042779135885876363148286265120466564405300950134967456407904073871686621659095784148669631960739823118753752391809926203303563106099394230616125313852821968793266252814664254828423494012538243985791643653817977242241428855804266618070077817929934805119681724161783740149034255379898074664605944404063777929878243264131440347464270050465499061070866551653694053025500543137333242169313889061542267517156866372099488014727508226105227294528332332920785661398714262254905695378550620580186104876257092814164142173558596817100848820095051839749030467435122010060808736472681264344260677408435680330590901933953556106208059699489523698133435206385402778811448570961885866233499397307032627328964980250296801185686470582093304939189816851834033615706596930125893939513142715563399455313023538854506391829602224383444976956165255678005306296928566458339363777509745971880740386200196651532504304730131813602966337396042462704794455438805418640280831315504824170478340873941457791026169772193536457315806313716216799709522090908329183208857239366609925412380539846641726082085547890879968804834867196753926938196022785574260771722285322291818518788638090401534360261011860225024141007174056826959451091035917005162811630388645886680928414584245618719654051199591489982586371519053100034658535810583373965751153558592933218208633543937485898884438978738135060613855647424651929058330779218429754191275102892363662524451887222482131652818307070948485826567775243737034615303499868513926812978093875012500512091308138255611759884015463014086777192334484033476402467655463683477719249176392749100866016137093479433486680691454851875964118795899932281249931055842272938475826135078139908418972775188899449294279146133215235696520126255180098378324452043390315320647613981074218078182618374774657386288248040956339170523361948305525488301356028556445436042971557772402430123082718000839929587993446909498070399756959622944874308328494298195505191265612697281114566792589481098968336037445529330919226608038442497496190035860481242526360176954044484242269367074256903210780038658617811100201056243994555317525587124592204950961808976961871832517623251618963829583984145614510898019093848302080562536637832818146726847627745532048595833682731655595359038173000034279104848522005610930185947869478533342794873789693363683284757213178732932639986138485916866665609784375863667080870688685457390810936773847007007197320367955997520133052955007820286181325757486418553220139565512128037173466294650636464280029984767477594170940094025993557965600576023957724585544814576066287239387306598029467605544750464439529809675720502906294276209733270860327356655717706140310540250832984934130208232845488922886935048812617204972848215135029498455767897653415264998859350870970732162191172304298321873234111268983884727644863446897424630693257307173056674736070085627975426496697616637500612201351997834058747650561335908402477204148591600979421165934378038044621042379844438850989727529099719135794030751315179407728618396603071082075933862560603874015640399794895041500983921725737817455969827078996622681985434941660696869335555617761329536106685034172208986020415171934501897487938748683610733508735566562143257991205310801675846037891039018156249548872994542719957634422554615024158264817040578738362885995330690689384863525582431842513346035243382500225470635278244208577804917705956744786022991436281173795348620457357990648572216144205099909415893186438632723922831090147489952298368995474557438432569479779573569414303578275403157947735032085301697097467107416684936742718059021204751024351893979112935698232926110816812058547855817231072143952832115955125843660909443404785245223163726829329890321038653969613940951253459154200237992694685697233016897024920725637004837299462730564770005825996520598314694159465778721140493056609682511427281505707046223757752571142795353998444358780405839218241104326829373171192429147423342480994211873912810154412505865624725112841761639656790445570215006887187067480434803800738852031343335966331142875829257275550805460079813281209530837674984879811837248726922410391602649704486265372014290131052956423120233445522123566452340978589069569074156449455799592834493154724947466046815312034143527590154769301914396841068614741491949862756670299507729464482190101180161883989995151541276085977723293983811817622505299963815652125722279108856145244312845979926372456647462675008590096595262249983088122068860611127428410704578843329372944940177198657912431667612196125865559525269514788037052644912742345701943509569250157986309921406668225438454956511972804064977145537818825871553854055202780279279767720998103275042117888629102033984156830495176653008403655577062117490149041789693654107508515210593453291508578094984933512340660878464443517908431151946494304483165088203196017774810858441832453601714577525680398133155683860664393925386265702654951151494057950264836590783079008246844350051125038974439863296983664933240638089413439842656461139411300034084903201485546474130987628666874245616518176813553916854652222064598591743797609681744474604109462297037842280336444468013543482695702916171478758745755230163334413173564458664310700273148048104607750132878503251855456106923389367508617520912284487420206019997116374108743713917038894194591862319290157172355672732317830760497964540203263005778877459513380112419722250057341326725985756912823617968693428257543104580837196983530585661914737701707755313107273209394513080527779879066347791430317724545976635157745648706024279236063948484257951007300736475399659210517303761116723770952170750247581773836433935965768942673879165099194096931832968297893835454702939031584029705801035262696859007271925049554217839665726543006763360047380450093218451417689438511356279812333883981416549628341428317592236809200821690071430722749864391115697335117010213214994507964845732772368057706426106957003096997854982984125664319475972858346968530428154168104169058025366485767465829427159771868643286967875392461325005268550447638082208808410153591248690359729102185254088054886553918678704712273988527787746625026654064998828406760853961432151695332580474801182282580879633769672506032069506617945192171442278988534483382878169851472751313553182333037691859228431383845894736384556171372836913808996521231610270033699275752140981095099195200530798303171829715983710691568524580193910743682200768222923134828416046256595718617887076107076435174484231040743259423915233758012177326493675593358690112888672685089055813212733948977362633826099357464377941127071386100564322755488799986650615147448481857187739017055362932455122179064621380795073559897605457235831270114819454216811779564804212460383753907050222000995131757919972180985226659736644328125771148747452915377902966219835130433610518553725800286560141031494056628686971723914228516274765831839806535678011455229990622979498434345678535356165051093881923691610545262628357138254491161633207409045315517684611512216643862957668113549209754406953754725379671804431198400838726660565137146703152149994741446878188018622812208673039669378319827878088545389242078953680489028114451128081760529739458680290259696639707698871692287222208080237578714973153928138797145310561364194165671423147916051109449512054384110230832388265889601488935437019309928500273115486000152711228167287447386954090195635672090097927369224354602321266141716116878363524212291083078836294131962380128568003245122937836025667974632805566960121118032733262935006231564919655780724355519953633058678044750551673719866612690705784370772023087613478890597239607722893607504199823910139347864177883632445894739856037200846047155780946864093778740369058649772656855046237028068780776290561729099013901843267016890085832846869673584698021291412330326470452899897664711897530667095479707901494183307546389403740689614624832477074063427196930403996242362827733857903053040598925197774431985738606633252369303139696741016178775072156005825672045537253981689480180087748844768099114576578489785214882424981871729340925147258359278382811311917091201933082169015471671438415506313380181516036856684913810708348229036492445492787320356839169534600592568937078444382251370806441900429338558837832629455386881322780935805654816796955845472548042916677324455900547053175469328362276769681615010116120166370383151113393199351549713860876658743143678673900811944447231465593322954742619758010885705499165849926349747859530537552706264557182804729357951012680624191608766999445013272408602508171752457089592878075738483978596770472018645487093476472998106736686362053869693598535265623829586134145775741104690653469067515048365871250576694575402003271942942489595058100503963023645668562258375904888431453192711754750710204796181594334646866882380761823712694304830704311015254124134083877190228097368074509923462540306377783401693160275691867647524222648924792093021600075874546662978644789324305526392406974378775457458923463812584510803635181873994084421965023720941968089776165044469341606206973325174057785828106526191842078193631435922495485242686557590947110651438883326135270365578768326377169750224060707102014392669677342387670205404742679954955359105435488019181302412266535995008788231998582682949974588760134596323783966048889054094061696319956302061391004949874990287796502494096577296716694105014304785546437873494012341756712303585275769667070491813119992150647368149597314951378028391624152675909911088149589187034657298497156538409383469814745522932778646423167211387194153169064111944640206547347391405901667068124411762439461268522670621515664990614818051479410650681761259878960842687358877198659217625952067138973330134037436715023159507234049628255805260268806626615273152916951195373769384569225369119481839187775548199287092233126658822989162963639633488024201839746368527718530494980826939284224889903065340626208819526652642368191163019942702958167596612926495146001139376173050998560715792034735484065343966955926036559929852641826950212183477149921109773573261095542092656870250755849771478061778535925891395616531755262125695602992876916287710354677989761385769562375018546837258866773246367187696813112505938583095118600045838035320644532961565536041673051589844021416313794675693256484847772879143061745905332498366785898478391705461249788025195475067652581105648131143792218122038058156205306631819491391772255418520501732686210155084577127412594987876518637072089112139312363524967258308113293864338017983938049642809916809862105026161122113056417390167964396756494723916993371542071646369603154500687259698348755751723975868174936433309660757957957016323809701891039676189146300945229002225440113367194795780702436689226591280729313690338548810089081362078559745487420980798798532856849179633808539948370169845736851695396040328350650117749388443869045245630451471077767687543265115826465214390676208987143661835271992870960310313735520380108017519657518146471501456277063706849089779487277774980956582042596843447624375812703518335601938550241449448532525338807745235580932135614389586521610410819425489374426301551295849409667335977876383501241700818754585766082557450679369402225467118843593509512965263408188391724120348461346437997533403201773769704162250342040820854788274859804900191664299797819848460523089384440108120703176372236868785263440375603704277148987945157140992755413617108644110942312009311760272089471778002840786149111727577156673797697984757811623454936439761098037581661860478220976705044979764635668362327853186316631124960622023374571617450935693822431132493508206530975917438589664371805499716816395411404025590979522126365020271860032413546637104361988146605918469759516861428943627021617947301792970086645650667783131584945306338866615029406745640631305347163880327318795949715243060479699217935841784267295279349448677502909022423169027958894043943909008023729521291219224494431032804550268729412018815875507182958614436206933368013131696208788775928356954323615661733466376811980416972566461191295220752899041577080353090969504684048539264627658771505142420911937299179324331748022158416272030591919824907473231367412173523432342330062868883907750407843646630005134332397730575532345841702318287088098279173894166051321362512778355235413913583209770908591622518021741331754663131321468758846062359405745083827173267045184603877170380481421612486788323400286901643114675285794819427601134308879853683027978801219501433606714300163880435757653240697664463721001845869591718932438681527877943596278410649845247527171672362691315225924381368659997642473359302651169292630444006620095670393242001005419043050660588181622669370960448114483994694663344098412473632854001418103576175482600538978027540005415696209232852262127806765254498911409635515146560443594737898641164886771348657460164123847578586649923138225624586556785657153588790588415715805108509905986894382836266902368092482264262998146673166098560923612013067465065396583501870849101256237821204649966129425269370742607920757296351088911189174962760516225245315937453491543163739743227874012418941697283202082934288515435717812379916727287929713020619784322427462301252315903411796176227826039084448219358722482793287312452961531288332464036101134183347413024214329153736471356503402829209788014311213222732992627622536293798855323550331314832604975324231759723200917466733102229542984177469586575808321675855685741557904480827155738387515222226307329856063255380138122092081908013124856511979170033062745707029376843656721413232459608551273903351384973947356543116916801075375146504158841984635766519564520506028506338717312598721193133474137128976234554481750576605397090464859926899540823611555531761241264428615661355390819738549074270288985351227167066663439835348840204842642572634995073212535792088172781082848524749463042382006097266821019559467432497800470335702274070459737176154841358579595163375116922569290788152169538321855965949257085082488182265854611043182882429364496953618262344399923684058623396817996581018080541304209653167023572651712876632547391306400043804646552963895186521863686674861063592806349959767594374096555743825610155202609844823161175186535129353144336973673592147049918443088868191630498575375130789342488152542196507558939824541944362670771285126147119323359817514883501956024960414174027537454073107884752886197942297437705436555600786206867973161803496283508176158802486944448739792523928146151618987836502412475815945888814193486762002144791217205404232538757311143116634928600390707049009350992604323598152108533073189149305335209781600438065683369329931848882278667166899598050640763493772370933509433487333582065883151880402503939527461085225518881524093037627658066815549129112179733656143311878973607084115331219121378298089151555555949088858443096475665230791167620623343860941477890771414300451742439678408888118522443457618261237370238652305848408735605039832135839630037128463547413507179641305439746688024443489756381853745710485829253703361805666811641281427026737013129923760091544461294128824272484386478306453110270722181645381564796312797140738701328557369837557451141286240582682798413350923757344107497742265694143700683344902992157623149667468209518299184381504469352262642841699789148373781287554392761065019090309159261673561066345508177833355276372739699096800183646530302899825091422823909576848116876281368595241264820055758345564293515971124335838262460045681080395242190416225048687782890939396445184176125432847331615695620298117015007018307967902481076281907723414244617503342839074175652501707464926617600116201560606183455372707239492424463959562218654634707704201368144694303881793554282988481682465055506984197697671393351303433317520399095257340585242657205431203387892975394605431799763975864578952188871309455649662290012232935781526956652147576050699322448278372287544770865422788540462274448878385956972938638581200532626692123309785406621526426229737856319059898677765896592370174822939076265365172117910553672378421533488706872079749865197361681177080999440297738611665311391954901253924015100670568613214457252326195077100384687735250728872673460459768447037291518425161986147744395129533808219103523893896632648358794833679754820241973639281918753358625386628557046536702503600640585241891039576778000582077285538566632962894285032260612445367139903330726564198510198301889367362092262087313435600345978275688786041320206703578104928516298663191311870720120559120752031986138182058640732463477933181678898652123925251509956431499543068592383289075550031639289689302825090842729187963267687352799514667151291034336280157577944704753332570815232268741580607676325134494531389177472516227695952632388905402262963803841324406786064405894045130575799505714584990748907182467650153623811762927972691184890721025952039163971654327771102710361039518417478442768914059187670909026530767572942117777730148260927269725675419660665717154475636656771150020788032348474863261947152865096574916075856485887039693035303620305632062308202523908932896330382109521618891909733152103605779943632276092849241430437653881142727032480103811209429682297395487531287849823255839894984221153946305909560005521169979144013097481033749810321088791257411752616761609565251479975685217042546408994354463259197955215451715996023769532890564215550462102858084779250231945034527482277386471088905214607703453848577034949982722514704349444638380436909540511978197234646572577207784432665022787036413073806195727798807186524541000815038188617809756914085638764937520150089082602892439899309492211557530179440067379660640373199364724798059355425978515352441528654901449856762063509132493572196032576608396827442643304336242862206647166156377280823087602648886356527155875763811880538568547481987552926087371436380866960608183958226488001131913903386099951479866933567743827233710794531737856010364367281832195973568865643748387969070991140921793038342118700749438705944540496172646973246146035867920565232118305949538852355883318336268195659249351979044460039843092620587443649737465422798686473304431447345704719528479438994394732753367866944976085306502925113462568198962418681363637319926853367142296216417743413317887416066256702577118578889081917681707872525073426177566035400701233909265278046542456669959512442361385148416142858736177708286299794673961762109406204451623876474557357065271198423887999632374240728664197742904710399169318590694038628335713529479488684817862619709966610261211873256421377235717458115360009095972226012461625876812071983516048957004997009896311925605178535812315005430400976506223049976933164099810335304921353433808634202561777235484075519259975679191229625023140355116569299244951585272634398860143520932913112172386911397710902320357312802561198667169501265772345925695527135483328818666900000144260524635819620996066778690249140333225297264449038083197158148474699553976281390478012719927625181176474207280075232247573220974547932126890808308026766706675462133038257201471628127269872442799752931296596603382297041491304878778728504931916030634916352637737083963127964389340991748206442477919660688624863465072735652831438848016032034480536074869562266879965607845652582290210174278865592094189149622825053674121456659781789335460306776223346615055883684327118999982537277343866160601185163377773226070381061035672093166402668634618980432743359255610035849800070106107152541112399173268034344724211813722267322210367784574598147225083964242039227877129010641031776640974235884528043526762744817713980370751991535814742874873006894169937398158968312276204637378966194935303754296511609100881628915458520138090206349842662994540467321255218493392497812696899730238499033912177090003140033377590869822427089854430717048020224673494693750525870416951522669150782934349491068593716998741107106190745034708894301503537086628245534627319041303773031192023614442794949665174594770431473255621546003077025137550692343446674327341466389070040579391489362975548668071751289657002691248605831717153749520131076750366727331317666295951109806403187022197064482924862857671756240058148380133804172920926750447451066712190696624430854646243334504171542680091371038248317605480066646966697629245290539746912184751664482663816039677267019668993143539306595990311820852549565042921910872681264495519726950437518799577722951868598263107646263920293972744244342840833124966052340750956369343167519467783499233185403149893680194942483469846908875329740658400240311212366228401768021969679005008241954591439572689482141903152517202608071394230146338871022483864889613650447990082824374219764122777975766019314204444219927970472735736822382503299110477156816513775861186333536411458552763840775303393231177691587268816625446995411426259357464914823333218303088024022894196545970559604200489612928011340607529187019851111957798667512059238756259351520019675676052978421322581196824976961334158453739583040718955151533230256034746940517381012463200750976121773061349731379845680831768055003907490041913934969005057306196074375201231215560536322739523380866049154630009206302096500388777529870152208062303954055313981173815316874451698337709905041717804702648911540216437599027904859222827928912495980557885003087585413657592364606495231302725149123994462126744512395340448456815054415131209896890685730961933484018123380327721350480339519588836959467151958387886638534359221641987295284993595709393434552477565057501754028752592020183351117037101789210691489087142706852080005031536203292982470876695745539361141983242565492209130770975125238925756399058619752010394282225312860300672847932902748830233555170199545754942085206215566240002854369478969920543978362736383375023405861322941179470543384854558394731435218734428482743361028040675078372129683097031805179596288261066781659546388056307148300286206651898332785076615767687333241391333113215616279498550937978480384131294129388409040605381919561006644557870689279572207235358065016385280278930258259293583765313883501263183258862899114296526925229201894517304117486610027609969470876013677410264167601553454709625793022846330376434315626909007919751079791335431589474050439858775486513974603566843030922119291843018526508732988160621252042599396184363194765280842714375600214288601586673234348074347474530819537433880511267142118673603770679336283473808684333340974040497627308157330778684709876065386984779254564345161323575747655473166295668683320941290225768294010369828950461582092693226425492189594700462583884173829951419200262194624706862985846258322845841297885312708691663780533711940779266276503355483255606292480906310089480083621594657505909747635593922389096327803816500152230867989733725791081340734387904939208231863977670425780644048677830089158779418338679052008381355323801174669991681187345115707614107509249183912664859534107516622979567033462813192099680863028059900345434974883796293844036494449799116950435309165189407938513725619172032681126692925049759647035079220194870096619870323205666793532970134466530475086903609391773611392775577046052325603237560745418142562395067355800698855616450605767051267676009334302359717676855054655752955401540568236979032979476265098168425857861776245392791313291309224518379223602751926502129579051698225353301948576900857291374690573913008602523890213282259874061908767111904615402634253290963495149788114900742904201430210744382484402819818597417185838879402373886640264232256147091118066113875015213200887573331323302250788022631849798110974041980911612737452378569821923807566407153295681503202896392049235219118742331577838230592721392108010500385475790645786741100038892214387517593460674272116318743308756490236966868622360482259094275652826901882873123161937376709794510651407543437101962755704924008627312748648408076355284828999779246640938763479603124250000514140007306045258869779320632742863943516029001346681085913228923013124679705739284019369643380003796505272520639398487259847847789425049129408793238647774253828653069027331485896128340177104582884663957167072699299841105755897830369799340252786195878288315351580183103973706737630126898939018987450596244219328493279620991250847156074778256503180826310542986676991588002401989330046366706750882690391803060253795683717302713189590762203223808848972858248165052659128282166034114878253329382024303271283683307999606872700895672265488894161272547957837005410809576994145116289060549714090966394270571812586185290257719970448486715336798636453140866100941249875140353295164103503024657325655382427464656695372911223073331726720073216816146393912311600555129126286703036477585424308442258169471188309396622770674139398886640375754303492362345878718946285785977738977960094635803973675310958173333370561170399978774456847985240421698202954928467370235703257726206492614473110066428108148843520976998996890115399036794095141677551817141133630398355740474738440801249990992814448106982461234630576106600840575407114805015499709622506809547236199501654547334034665131245547117067335114278095779447538869127500366831153254211872414833353219443233748915862488307119340077484041035441792276116001232986473212487840752164019823656868763407358671954336488528575345316290753923454472184021069630114964327072137261126926189259162810398338539648008040631325162781105119207798938625248996822738010509422973496534293612166417612050949042985545033957809730937964899643445657720888543941272610244846773499135441396626935592943038964578290146772489632647470650912279803826557066027530086898614981875997860515743651081739542334145931449805654306956214815952581307351770890766817510760562067258526408626833096288418586914749313724054655453839245369685693224423426489866031937454679116232726245745251849381239227506370976448319974936990454015918110074426763964110071681144080825956768320825900340912205084501272657372484481445397175391676682811696403884389303205102419311706270816589750060027919876111683940052861801758649862519105174697842974626040244075781744703284723592154131312978137391176985418423334162006940543608695529157750679296911426758348532382106189003055078219704637028346308894398917172218441365246267591392474028122956237038179260299942951098231619018026911363628224662480262156040516095543183356008029457600545372847349203224644893684393370878385878188322177633130440739470390375946985628375833150285497184606349592780068429521309906751407513081764560785348647494506001887892951628992077487280937118531090668920244086019403977732343826200392858310854822666708218317660814682974593370127207612815011853180031449593082473442223444382070152750584838559733339306308411661448428121354859293115157324526314980233895975844550078949988198503040686390268506919347858607235495179840508529450719129843707702483477339162275234730025111099370486736536180382184035172513271780362909874734746380003331892144846893574418903925080790688932796982125357064275931357862742100391709495405213191136498423845763265730181435065540912027367171529666669579559328261327867545658796504948281556992256770307811762608913654518702881103334784415376304520867575317341891370623631700656337805625875039637704188734221704500241492199186326987608821969431126752109129557651363401857632687370610365397589430224956461878100013044381855415585197609448598424165731634881815242567586862834987172694052045218263084521561344414684077554073734891746477705438834361445260678616243666978932833881103490698171977217505375154669058242012971306400147466076779056350444357526068302855106543986155966753748973282520107082229311344968795289067649972696597515012102522702565008441429022129728778770516476721549738495297365764374085019011533713235293523324725783183157170448928071480614674276902086182919941508592356600888724798382455562680568018200959666178708423911641781811741830036278430735907486158633268137603343376350560953577451567314244302592740789035039762581604402700578122316377813814872085846824837630205948566675952224826305343237789862078791394710329179499802932758768226430967731096153263320425871298797021424652945652525800267392590126648050084422298799288483444763383389609351355008243113003030743740207079403145798235663572035041517516522062844166843435487649357540539791218693094290822591645705037970855744527743643152710822518479799279038530492976934710257505078536230648664752251840470998985653629126804085595847896090170637562019986327707928227936073338577061748404163755659214828269409631470581242134035421581237239248104434816794149915409161586375681246151380178816821455684761624054448674205538851381746971447749749275549999441884494843901553518507484350619447277230777268251039099742839115802978662807383331322415612609287816123371056531292072239641858241922002636340068956138419136300468850841996329281217106059772332858808656476817265548944437852154311640044010456817267429957791215977790279924410490732038694534398059307786309708428851407880857461093163603437419843721962264134157037315819853693379587414360611502918613080860332283143257643718526083308608844005987285006670556297128028286198354851876143166377444224162436995806699142716283517318157666839572712418542619234037730599797664354473019197120849781091815350639685546245269030035653900084536451143033229919366946936477942498421775910405074984492656449312287061308167962832032246863141282364521215408391330865523238595903551739508765481857622468484162058295548361481790828991052848260597116789174383103751533084802029922510319071128424324140278716142481235310558697881819284979532941442897986876416558075101579145224204045274118961860579944197864362005183522081911748437653772042800469154625587905871382172436421627128148700855858010802188812045253607602945396441853621419231124266935076628542720976541852665534568093816769518593772769908037315490357603964154108893842315479409426726674524085916224526481615493118483446887517277662594268516076918932672447021235706842042706365912447569447570989544368615056149054383731124449318971784361779519724172302752693815021680387530856999467414861597791084006362119812914365464564897743095195340723415480131822132399334156885698123305022197862062733344880162551232224340017188089861661958665541576858445547343815375055622096738385749970089945677863149670485672124642206632992337642156096582588927168267354389483235281778279250935466295810241216125645080948180940937773234720576619199285593910595732895545523614131240891956579503480252581212254267588069319224132124054291536203154647546914409668106665504646675377041445525528192302713891700979508670427281065192183717744176176182918326656091606127721230846319659587431647760639192349806672685293716810006714595172196005136878825500729648453291406974935515584009688010057186948183491960828475776472920991061267125406957004880995199168668231236290630707817011077580207565343469052579779700025658655549612482096800461391252593819510621980368209828400907343049413596086609179965708655258704197920579004243682353221769615803513399132190962660964428342298208753461759925891808529312666753298365960517580843812989095707720811796570522070054912055825144092021961896123212928996464998485701322859264512760891314103350631911377899105832241824711810573836996910181275411121068504750970919444735831012445724096251048285748245114583309267389451079349564974420641782908695152849368923972703341328218038336443882304876639601175274976782769382399482747325511021190981205406540982378407504349226625314502498694059652499654706432858101194288950282956157465026163805305735855400178065933476523167733287865860706996367166050476617000759436968038724357236561740606585224729418197084168514014273553395040135807059037808124708683534257611357703044748185671645571684744812304179567006859833596604649181178997283934512230543400661885480948278653375539408327675292476291843409450215248943253339943300986763297545033481799245679540131244890970331104598561554372235110177745342154927277001108417748327257266206083841340683285028171013542825611949465590484247192742428896042724577127623788140538884046245166996054875811054176976323665043496767971198823131403756073347809290438306472738507351057226658043666079293109297146377325798462433871478950380779216815776347876787157072995487746993081227434382505066866533882932955290388130653069295841745567050096655418614891961630299661474645622661439919253257248335078332893872965705992956949536924000084480848922764841589720056774474971197359509266767691764267147312018234135585738292883767170579753538167044987908028225507543129332191952919349818440101801262440878936422196442098308299796321989397757601387816872427039279796127380989576206321900702924330171935448880093583876466705355366173462168465541556207324193880349261390256163609748207935741512192493341648089340813762053318670550744006105448479798446892008579612201935923254325113986471916866801841336783874171245985440929693193990067759078886564142864916063510801336209483182669359753550601302672753475029394598471462458470805295443261965034522704541918135585795489427230737561912795130421531013912826652869926995568962352306307399404987188127893600543042866737205411651779628413167454606193729612393739859666874139683742951357813758200002394608430235961501175897449687554760467925195361026396775985323074476602905933086874483886187289843998601499484798620564159035921972133014250408314443014948669321719538186525136727773673833094574094240140706378388521549651456023840305323664304855988588683495677888296113106577406418070127685918832358428621473497022967873839528391541565967159809344822640628369650715394157560979454766466997304701322830609512528246539931263105693835270792564155208866122936751644848333190517508304235505177217197452882231644627981050747623600266113679080770131172468797981210942719264979374301345751401529030006123695170335727797595154334651051398396297354664754325976917341295975026895514654235253683580778492992353776132209219117944666110745618765023774929603712770974948735759118419571921925920101999647702668162810732810063526368658747050427209033998449684327972971938551443273301446037585535266150469920374570755765410648003299766251377831441249238364445466280673502125871862561590125940624422456623656930132709212485164568223452551815453703206137761440643780492903247813648136790342202914280435626339487466527695524273471414963973125956977646453287590220876836836184419587837797819018639314802385999948927558397612142574475194092658791683958134106576390113259514367813458788663719631636548093882219905893359645941655688394749366469298068845709545740682430637217492804099086049347225618768014668093290954034180252065853978907212523438898029641603259467725245086874901871360885494470104948458351332093056260285653358919733835107487559782811539043874319914363590571458877066300139337903479998148707541671503460020983709424289895280958724012232946633885225448856517878212221897380213406039734430742601173384043746601636964891643711152868057262211121504184804753267342105672778033662075243741477310822538609064127167081618589155476613752929169969846799214218441493981781118921619813221542637064332790348838460291475659576439163406799426241596193428390531589041017783077910698977897693978656673883945981682153627791661301011195211151005928999586419604137610026772972497699541028108743525500168431483357859363129237542852650717188598762639787601865780006786341386443025752431317548843926579728091918734745777109561614160737279165429523701703956007824183041173403064080876402223572071857687823762665749837416390854704771412132704686474263410095336415136922102259108964608422733433356799238548120117107986183254214610303817245076903122402729042376288895749890160098632242631905856141207151621600752057641537806288634341519815160906359498384893271439810607416326577053295914600694654894470267517297802975634878468918713902875625392965232074383003752418321594647934896021540899094387696077622836495171156420372316670145521272943126183329003083322456501746052209211129738573771751404053582259854978666491092399454904673039306282425621802419243438380363454402232864752327387414463333907774235788176154977702941990320130750812672141942786034546816071787305617996204304431830813770887122150086973130177042480574593328091224768896310504923959854892715703262103212852789156875352476403608497971219290538150195740846925324613894094988780713233022997897289152300582089176158391198113584491618784204606101580521944750045695096934554668271580144710315635030661593473180659800827078957718768959800138510531358070979991319361247836033262712227730044667392720087821536477523883880323170489359280030199549627491791627707104610184262142735285769262230447250852261163516782941664651928811899691363170389874312169079585088349359872504886773008211277912479412819636400197316172563773818171906261499811217586624285772867051434810186097327356982259049557479984234074735837055632643502115716169702738880216120102716396276281892008887663360792352297958753522487590741033701384639935581210218424521756767093563892583549540645534482375775880913278288986301397738826751183960187729439290465920435777118013924534653373467678535992900987120114041091763791777327481606018995258492451860618569463597948271949109602280137655605770347374899462990127010797765979012415829609111585362007882912276654698063172048337079800959176563713020572360911225069140332014865265052807919211775135659115854048984441626338974724597181825081520903406302689785066855448412583665897720235165662396456299929887854573430053250557784548329484920745727179061466408001885094910506956253221169142338554533470091533569953335679790672866991008399883046287600706347425008839334281478572136442025664626752591820562560840923356143232586689798810833684145120033252432417374017976660407918046079055588241991075836447317693630609287617092197631777836533107020800347145246866360821137876616714286000509258373342908247496128274591526559254053671300577564842282898297270698746279470040033925331628584434186329768460515401091342799002699218292306010712816869826437919558575384804085564909058647324851285972856643476922942856814425284230466961894200156188937788531524550091163851401692874702407472145957376161743314614467135824611073706740679435311403057490529527710509231087608714468564529026243970187414132176576831897680134145710809595568164437640105668242481025068321634206367484269331553908061098508390973217664896576367537837200884213858036909539288777017068814876018470063708457764596828610350236444638783495134053982890929804676036566913252217520331669724967319460711057106954543144144691930502477091185242795357656632975428424878679023654911713456449741975750091274698479184685878950635379239744166709555744092506499827574760748872372210652659557916915467679766426476036581916684827324455213508886828636571853336298493982976283777438653070688864095497027894101166714115968938526241429231726255313047034231891373564905462468034814541417029523409658044182055231522103011460911025822970469572693925220837122904851295369475417550636564413886372271670351311413199669977738847424337503561816150231588439436633693791784009677773512386696382131620035034364805048143320178119439275772150108515636718598426077747248752272200707865101915823257916418114295326040125253667506345041708601859153315615361988272269570715778491817536450874903117562074696132402279451991195094524268657698099000854914395490203233759289226760558229248795910118510260067728222365871873828582042666290531374137315001335336645382260344946296836050290880334330226281592618582428012354685185241546686486719426550676876363984868517055652730869755793403427067851308964868582417571745017935324825112962938536025437376656835907593790553212658309788994720778610255818752716161939555781318554500457456499539676678184528733343625607876359636801730295617131479604129609823058789980669691497224724096515339064991597021299593728805178338647003076439156321329686295838837752268469422157070775160117893661415070192231619666921137377601470110275648150858813188298385209085933433575499515678501003360930588100347565889273725112761704520911885881715629886692298879975048881020411315610116275039675822997579270085312809680736225176140323547601236642999999355590042162039251505139487019278418787242382502988567190028572247346973006258561075382685610994968036093485911490384937213414264416129126841288169186702476847831348132964554109515234157916159281269661263049475967524282590780486654253639211591471261874481566845855088693476085783416101165298293116269653012237347027197384455907946319371408558719927183241394012562833341936827282857113316335240014314281817408616110621475447675597107488829767345255893721959914105220100920446047322887615345264656723334652213779835729987348366800939781490776999934481251402176851258716104820933305646897141516046026141434717995056950717808945727691106013108031303267893301231908109051808779748251170296381475526450534797494563923709617508365166459173100909159861503362498505759789335197058077905211230478158656571268169153455628069859421748079836617751978643311644666443905253297654632289820447389122817914616254304252330886597325966648996395643414816434794211646985652013913898786728393661208273635692011132350426931051286826378641522583191849369543083390096555495346787901838033791695346041484933847042433775345441024028230106139465465946422209245056612906631945911115121719414975456152553541827822174302966908377117980489024831566693276705297649503178867615947482586897907935096717975628931963208628726050422146357021472391614494336227564789860093819573556616830528594530820200547199272697811200812549416677314012767993067580776100430305359032359793862430177719609887744412342155173275040790626738383685524374776358985736812178285445726823944097672660762685864297596878132985870454037703875680872728678950806995202440619964072431566103831785938003125293193484217589595428698902428188347278159575361986673553573358340083224623239700819363043002336295854260896335888237415370731770822837803743295874089376501592058332670145577324237422061260526025396199932922312530153772844003998370908498030516034196859672108756912847573892256859189178704322367951669465762862974119585565341226393630097263460035514510017496170551530855405218192541243118049287292865597036099305200988070812996645953818939167683627419563027734782362263767898957138476612345939071011373157342158239817162397594709817509663734693382514853886890335860058155122324015860581005134972074907587799837755541380698885771577093908064395906778472224267885328346146241471292801528367163297988718175153766687528018113727787870857030869777687123485728293585029994675389753735520433505773825651924718525453772988284549087763246225492820717123649190713000708640873882089839195752880098561558657108890754967469656473934225069500640113035702147498423068570451315714436547237106578323814265715286457807015940319790465894203015292059441388007480547211986477102596514770683727150479419635098276465231788154037585584961960464233521282565004463625754002815211804146525110705862621247792479622258182436412134330178903727784197764642149834050911702988832625246455669271289630343334624692114742376789715993415529776171336357388685770416791992056197229665534528423872879490538490605553907117777061811565578055652319900987137505943437846300063535909475868499227586427037237833311804773552883998799385694638782827785317388972534688723621354095678573980630916230664103210710064175542612632360954358340111491205447942429037435917158741336641230590930015469014513185611080758664084406898411726165556880602223705982095048548480211918715028848872756043728807752325767700412676576728188704799676194927955655080378966765168713155158443359722280326543298343684158420188428738177196642707354342302304200780040086375471988044135054389050613100963597774948313746771150234178781314620977572554542667802459674125775119432847174176029115120942695781353001791555634135933749719171780865638641206217280578136037022537300826565737708116436622679881115700237495442103708672919153746368854455276029449751214486865011741675619938533538237739894275661377280085876230741783183809513132861127164965826987733298385630287988708924488843285300980861260444239600306144783205990983348962831768686168768262876176154727023486693766629749491735420059681835934885379187082124615538620356303644268320808018982534949820753854590352504804835013246569317332857877289305749098100087267185926776288789731075015122652662654052838202499991816856047251686778232558802972723483393353797109487194635534031344631679120561742045927742458161275030415653437667962162943190434135775028981872718124679348957502450889132901612424416011444830718339465824282159955732297917232088065123998869980091648959452282488354332247769263376848284196647504114825127645753974260893413817541046018918678811009416796692473007420653206387633461627532473779037640490782494871751822397606345861922846899188224593224427409588466178982476490793458037067314106680988896844185865498988142140541980622221211492250649303154558542458783711741544904891021300390962468631376091562674710595733977233993889686084199480060925594328319105257676541798370720029680459895073675247945996861167556133877279666987419864556926337704711194910610625747728911781286429708370304937495969936511512409787853652016032227358093651806486915815622562822481426058028106836691060518691154029409225523432902886836525797425133823334068050458631222906140256240848298185790881135734151747127394078969816589221402555296628574947951131533562220887007678704202284903248601201527313458255404353431325168623313798134971082671569206348870572002193674917335203795410716495291739859147739174964141603244202108235500077239595594197013181862190158424238680904428915039404686354597181199616334097384686002506648982249671628303498110324931931665314895484825928614037401143459953984816145124512019810928376175054296771864204600681743910896224633727930310693170454383399794853347133522845286926488764739223886770321003348379771820628626607411425153818783532255191164920830293239029962873620898999325437942053999797756145664552299535840343627716355746796848264330860809881526072115216400409817073608319833167293413469146154225911554200419267093023396254944604876544954746485610466277119979917517646104498401254338499467804829206227696047060995261400005420631980517469180750811254456370809770222681428564423904291721121408183579602244723469172062039663971005611778386147831094994065713858973280981214237542532562137652873173741147860742712216065634855327011563306757050548285826226391419273426705980479125749152898938756089851324053321482948491230371172894295303727672777936762637064535435502614379294716304228736505677150966815002384112600498650933873358694154547519853550637040942454805217595651627847883039666212213710307278629654888622760790637065088823971350063406186393732112617644858366683072830105600381572761636058940935280659850220097553486458432917832422241365095020126474245757688740673661737029368722161368296095773599814979692678794747487537816053404085034055006787246467418213802843794366587480300161488783562838707143619741657089157337525628145238804791194827377119761224917855892972442564183030194770303557890175672947858853533842403859031384535126243084036254480907522851969018903279761013819922773921935216186262204745942555410590964817422179172144606793339642643356783062887839871345471389337623770352332349111029950948516330879111605318093644521241841616892281457974938861256146610731242538039589355463424320602770467005546917323626876998240864591526309296737364652201344762594590095709806289671567766236748094594693847775896867530666784550341806570599483855859509990115400542356197054470374123652332097107304619301733270072470886534709854090779073564493121245189882112660317687726083544577690899995576185319077984794871521230719831679286435206990936827500343504265252246974043752945406007195460444816730475062958523463712237587797177902935307430424617510031181273993459232189770779369061719929723226075535503415551217140164318514486742225098277701030543119563468756410955346081044706811254421077136043699796159685428609605630889897476960979384594751184915023722047675208264966986917111319192121147082641593085979066691384640802570098300182046371213967858520926137661825133801614224868035464877435549858435741835675223120397854499884107764601073717349789095341157217436064820448495305737655732595426032455491016604334426938858621561448765428581948251401134801138248428199958754341660726477543681832634405559386309031254357046735666049284313426176402788026944051045349545899169811332792944110802155853428165022095553411876205836087514284136230177943650145377977308040601340500703033957684029371713463763767996126389458105479256119958871505928594754780296414116050112501105655360122347722349788652470111589183511663075390049929822182322578773451435298849186604943638496047381278780423752938100427537741832614234045953051541434144592664321428719257209829804567020553064670862214287894018064151631103618500211888653647070501739494039161151653903105181180962732930932744592589014552236861067398872610358662148508427282906248323339731930718549741806367099549274166880787316705258476002317510563872209879024183079875976264517727740953590957779883121240515253779092939192485859765699331560459458555054573047914731212523769759724300074939678161109006080189753669251122914561240938390447546219932673070707682390519419319171683713900845891851508541882266334954238033860884976811931501141221076883278337879339496203469621591190631797008491756304783726807565391994024514585753486380656602022638165940996456738315976182982721169314638975478941290417622986243536428051957299889552747546315504277010754010360831482104833186406023533280413729826372261667281662489071913968230734000061515991680646921900002543820943360647674774088704700575667207153578482050131112372390578887600176854728137583769081988586451415349948127158698249442643018325531669339249728369966363530432930803507722805529407883641113215969950791666581648533726715678201362221439565209687947876595770769944093456381720152198080612543250176834577131046009072898614199603233576290406827973370574888694556111438101277597811365606897009744138009236209267974652582282195514714292041697593345891947135130362744714029219484410915301967229991878099909513281555303455465999387616363720531926875909903037679183660799757538554163258025908461603226365657085409038449891605756906819982226404728914788243318066056137455420393037108948260496090583168487882981159585356479741890075071791529084124762249583421629307015245452064989547554267816060876373686820160938595923020745775537901323968312955839680193527301000412654870882999829861127720951907071431309728400082993754144579608049932338876570128532192204611769877675771109726512706371778522515225505522146384790868792253588083486507868540781118429380787260731199032606489157715381454126259210888878818123753146577498444730911857433421469391578642113575699638848816848127659076714178575781377426359681879231844158280142124006562206650418258183893632579375311197140012475001573614159996221218513233031864892449092381306805946527597287058492146464415810670990474335212178607055581272453937161925459147097252458724410716196194009653539363257485275718561059292591183367545121507578026964495339925662400952738768763433273484196608491540514832344120819219990016193417107639143658415277709963251352646882066785959863210778887551474921279286452965557315800726348204330948468210862598610139889746807431285062942663429128673222216534540364933641722620266948828402935599355597769014286184425091090368850780366383240530478532111261476695815273028446460415149652204560622384964207845710673482258218059902266938413223968328731614362784710311629099877665637794883135488811435110159674579816337788830767287107173468256416986453100708387964801428563749848163921586466118361531626777871682200771532841103045229217406007372956538816527975358820516457887600771484069522216638499600789730767840102492475297042881925821189623533253679777926205085091197179270344975458641900952453250961549980471013587848420993189655757629252319225826258525141468927551707979383225964602994339946616698584758018458680032921358687186573760131611725023018874049579014174100458268246326396991196365445975965673098116215004987704864359303309743587353595165778936411994369498257502499476648765051674744334838985566770807942789425061691801123316101491164062807448614322251650928104176946065396338704214911956774722095864106296584610310966108194772851863787725174652139663528950148256439719629676981757574701894635957118904655522453002998389404042615813805055544918256546942838228443411511619973659595032648442625748860801768623569658118227603045230091687446282127212171427702487739220222404320944648651656967330024623651458874699239930106266861098432476415894197694050030869281133648427549751018709579709301204646796105669300738317165912152764214041834772339773102812066677691109412601142046087764784504395806817588099204386086401975204758686023279170440485209897989941787466208451441626226180857204574707790128182124009881249054673707566941808907762620949064498593128931470133180532177788750695148458468127017519930265375753021184508969641815566385707842220318999445584641995102075066392337768082553850031242481353203543593766642033231499586366328132099752276346987662049691422914224208900840099646999287197496348001958238783002024341338834168356873967494436675221245363584162840422487708981804902435864431224388673400035292998618681994945067280820765783147568726782455891036426612114530510717615084081639153018782894145964737291684660419893700606023209748926619072596954908137303212757741763755606310224158621059102610762328428496033951010726329077903097757211762674517351824954323837290298567853664054542978560819265123041513336747533311866683744209874404246299741444588658555298152093279180906087448598016856873818580346273356989715875516769821597898097408008591217284568986354377954148351700382897725314221681230236582978962300264815940421860112437632356391168469709634858283630332487367426907447846420081147141709175184464281282688133215454336338255101400789390963915287444556216940314778496616039633997445759305833347794354407173400310860147014297767525819400805042641129516853235638375128119639326324620392845581479325630015814421867585860052977105250611038543719489337701939324108564162839491282872602056129150506470162265094819653464740955359910728255405456724801118090898755120791627030174533872375273780038870271053965166244485137886306454611690618102807152990883333035038383890382501177713431127727100057194162154018771029990116376395351007801338254811726978472343774920671804876877468824929326737915399402925517060226298753099957705681842815418298749205801319323057959081559853551974968855366336476910070205972896518424829516225462531549935606483059184173463960354750552410455012640073009875010562430013721977602644635127037794047960579209444809403579555504303716185181983066904118911622478953376664849901458267802364898544738233242246057681386025213366546834652562813134729290699931512353459964097100614809375343537660499909267560934788545249392616371364610965040995346535186664300821366415267598712190566814343453759912660159007964300658807244936743695010084426271472627794181936990688148817143112155485491529555579340680191318499883848712178036220058269823236141609248805939420917633389176237116087705288323349234274027878483670212056447426519668727296803579468699546234207924590619369143050538882608059566915280598652059445205232834701094021815448252717648880475548266359472037485492638208653964336174623202370195533861442927260092925229416360564098887407903992277546060157893356500538397353741145508626889633906307236350436880257827533560360465409245557240279493349147792653697899228602821848234889370652128239731657472599315296233075959727779034052360065617472448275953477455849939206438554474355479511573519441201480016375924779635651250651943810735654125172328407209262928572350211450985803800247463927674312675430007182181001443847389977390132849860787443451715291492117726052889737453677605009718249248090652626855811344668126378434254582760885153979409668232656238575887506283238549544893126683425962523101504669120560365484189284983507064435407954680057951235586028437876658732719351813363367819817272045143720806041296607625442439349226229471384666462249252979828795020292592430232822755419946129511540212184748088506080876202667187122469056151088085740484672139550432871473115855019628973184325552780648438343629000550778377656477994203713620242766051073471637792125149098277930220991017098674395784364034550871205778253296844291997763310172627374562070415328810738244921621787838162821021294101678283604038962699332530407043482397432700026341544273691553459182481294010737535424001770259898372819636983925310045321921709590090246297195792283888606967234376972481616316989127885703182304561908176940563222598543238390288819855227705685523469347726468398995564906341099561052039386640338733103790474080482451025248991290590666398770953205681792962456763329282374753465139824319866319405695734927685332367339551404507392266337143294302944723720998614232008496054863486140408589575182907752092150431378223205380759393503809132868693144994390585056095061575026179549222550156332374423295876523531147740595100345925117601691669813230864315562513548117926705597448209520406782792181940843614013451292019774445657706039393488871789079663805888283881305438087494964901614921451822859590558315567208016269854089038502089853176070044405467821127457242905752644523371268619643645378252248626710340463132679618728792384569853128997737775822672379362725532409827345710241698214617314130124830604726766560736548832725153470906907609528739504991449258972008124921415641418085294345071891363069631653864927325315776685061700624988321560601466787555064073364287636077618565013643778767391564873612138538524686600361030957939265474910908318331559156516822775653216242565710983602237837236193334010092956284078101244010463198182281804236575434389616251508244807178187719898370497107154892518658231495417266858218371189163439835933116289927429871446975136441974246347960690113191616542720750608499119018872554122261816146780725020070092261067987302460877853633288905556188956707925834092200335415679180964556140351196582372367851666558406184367583593031018899391025853251415986938298740918223805990293677311663864555269295879790493797225797582631751114440448827492755147227818810690047234059907153200988699307932246480124524248528543392682146718477159706310321508097127116198088519185971668210050453021754141235261330494424970310268002908817750475322754809016678577633619252305962443200808042580348927472843533623474335205045318931456935486733722030105580685362027326970210142045655676619529639339141002313884042815452585394477281770917001506423333925591897180075564111033119539348918243507940066119633103407330423713876876595647544061818086151382042741864266823327174974954287347976879604227433332053689889543941877979708852669250356442419542639977873052857731955714674093641929345234298362098927074611967891890218038218693081599954399641608858404405898993480841628339728117328109942631203244021374429141188946184244078649401441476760416723839225538734168201363434623761651680754919066976417681167109225552633372512516047145263725775919996089386929482087423110683428532263314288350179886877823324494400127609689312891535973571473370345692892000807020666343110104658900399745493540318102229775362737215777898322346630125025183499700815838949409495097340803927986732379944448969866868797028224289786927482209327472116572165346919773129374364683370155943337450549082693127887855054998668096868475437218922091259110199662229107464668755774562204146020548335787370611014015945829689825149827125089580288395758176083000154987170411195867682689734542990580915271678547260504603411260610733275343209537850745589340680521883324613387631089653957358221905558509283278399111376876987551354711284372634667371148267608736279787704670424878417398549218415957048664993240583361342925701964686548723221072551509027730074498186643126299238392271095523211570488679376221155698703906820153375481566341234449104878952892736762251346940881311588875401835507601879307760779433979525809327306507429261556785947063070502449093566110933831794663233653303914539061577429366366448352021041022333755914465092923590507944789955638906479790557860257900701640437859044236172613917727873656539696259920467058771707853460898506774806108893068020046762310680623232888127589716263038499154164458328892633406709311059560278318054726530243708276935727439395205412593331375998055044816912173257566250522973324400937569122667797837380940419033372820141897882550465128675749281931327970783100842593877190453418459439375311177427288842688223942877099663306407996983161131979669950577728246208521934261165666335022157352859942476792868025075445547863711840759907190270073448828073232003950478813856967414422494876994955491292393496349396106370987494675632114864054000621287593453649320979665427033381522199844891165725572305891598387444627490132540689173633503099295664502541038000189643449405807458307423809714617113478657628506963453535760345353795497817355163790184039019882808824460769040629453503949087296889403431840026146713279816015454210395946536912479546385029230004998470874769461508800841117626188042829145512036630705671252501753886037294426228095413898091605833904051132410764154097068862963614354042811835454817523480543568774093780407787446440728605314740947677778084612963217574648245528312493895799974537753581155183840547587708390523432367156641665956475890831052760210548833996676122964631159114339983402491646196776487507675197956167049330966963054055773910524809247031902265229570114488262337772346017778020233353293071833110388538152773734108229902642664975033532790699558779826754695395624087234932199225504143466685390746818368299618320837270252533506087015775720468283437625895798086482906111478021960863292051693379404448149754968907472030744428102864387176536783394921499417699890221786564269304914535167931363010090851711437695648590930171705683214603213209146441662650622525993443497454202689375767296539671359155088925442997366557223953794729963798062518244620663482423486032922736028991868335697720500582150396649433077420555337177802752276376263323634765043439526138392924886204250499057942965809351020881565314332574914298412108315373863937067445678366859843617231446983511925331863111547943399456102078556758883288847954557662200010008189815385415747909402012236920273467393516616022404700171003527895678047306148367468563618447147563781259406279059427242737760076876167676848697554764132406533563537283019628069257793600928403129341586791794717828237178322179972482592789960186527301276278626340202664387976074639313256138655441662062187237823278302970340275198511350298880169378512410779307659594341061304037829680492595547971805569929228029744251531489468400087087887237175072212389678289900933767625991647512010703179559085354437095233043533197592358826728119354402133273365595522606618393991931038713794818481153889683547648119408399007299699542662095819422376193316696093938551479213870377523047755448007762431239331761312485842726894249425291464988481533067166045764397183869683412899578281816845558284635861349881407813489341751949386862597103409399770607348113531518666470575772250125405326392845517893797150694861839185568687646023951722356952335714087282036726265148688353042443498243351726019297552233870160202282350927070441353361878362902768860802087506811710929474178620885433491725527541459604612788000555656037463199558118304434001858426057031052550316922360807724364901393521517213964849456326209977395685166965049167000382630166918726679514855187400623900113163987432273845703182255672987439066096868798156445611136790797460739323553506703364026694949387034537020177672521838018313071113798198770591654860703654504742387208364619849945187376445927629988302200859411360043762912876067433908028125079082024883129567374867861235793674921106610349555601280141061186315826456843644854993494772237001078355306951098440951910801702451128527366099476673991134285553152022677329164501553590737583147823750712972753644126183733207230007469445725746729825005082866444956208908944080422721796269410505110035259624160228880608667166691620221324639299636757076483563128992052698739090240274634690114725723078224061954527965261449729258914355841635578115629269526505666723066126524910620817856199332977560924819041330206491319790463941830957847904547147632094581577990104804842114162891992014948334686341165653054040609854105833480233034319724759380909484854656249539731168535353760833390198116848957777447583361189383707506991374683056941416060371088664090384651466304447279069969919349251082117126050060164844560759405986498670632113517240179477846680401670743811758286086694738085917705158364420639481172976862188314812234106413157074491164665312872107248151269541272531720845551037151504497537680332817475031590097957685538599641946047334661180691808356632494394847224979211893570558482154554178687749685222239713192755273588621250878631720101188840020646453390781936652195008383169399517150695889951511047912184634321488798784591634610402972879208948577824474197173481133399720923310194038844645660055196787633346987968605777392666174615313479383078758178951499077873089095316088457844337102813939582812884881586388415220082117223296967820926247428383168673261667637134718865250868800857831154968738058285606196057200156588793405266193105201988702487791363385049531019790558501037356206610637407326522186904003193392358310960582441470651050560624197350492420464878718270665296447193523045862873473228119090107134257265838889054364974419418629981357865277996323427275395653226295620932070579515705653240455642072101476197339609741689838493265802893074446820401934848166067909155666320626302224571368721756572925034266917430958963143878026693870240568829615691421655577617059089277460926858294198809654826705383047576626430339573813102925149953986600907785135028674629311959950616300235122630278760740487223695256593131983953816726759880147464764886807249195849243246576309557368841264387950566823360719399016489304661357821811718078958568143650430228150015534371223595321867232265069034074696924970710751152186940943858813602514382795522994304390421236871641225838222550910476535799079418117531779262994641171579660608253160426492653303700395380761101687634981309162928129781936987781970238485099489645090330310595748040895782430362272313353043771218137561069985889727947388772719685327019559056522477072098923776777736697169099969966939049150799964995012071041007752303365190624931632616650158503090219503889854400846346014056966177247889559466257423201417803598651466803999870363610625854140314276174637310086860893384806352086313523869704289825681840800427911868155408523015271417797740611138126789725840392851668709798318488622050885476895446081492606879201286355465482750193119735648348842707728151808804801927508634091128192744038019456724305317051035013957737375564837047309496870195308416476148602515441860475959166243338994322022564574794661556734274213642684241277413371474909567009181215843042916144250860570084109009629261410816371753915146405612799514767855541713974385329912027251680126472925258925593087198686061798587189763556709954658662847355866968949191419714019772694248078086715653519220869595708274384025320103278368945350128286729915758396728952661525763798731902703893648358021558675435656747178032337161310328819258448279046431555527769114867540432303730319419507279395361317930775935816662498464956841049999798581098886229987441996412195249359143269776188003887365036575034554790969006258769970227153420387204067944766277473447822003031402199585856213213270224461673444968394912888441329757140908764309347847049951112438552679881501523190822175742042485804872407759635067666425796492719070343509121801124488200385880128831991334963676341316357193824030224372535837290570903764916346191300424679656006727640580865144935795383035422404874899870676868212213806415485323476177477194023127004961564290631720520957277434853204035707638812894059723749641111239638656897830530789126944300646240398513958447216862487122519646966497964566089600173730672984779286399203581301349438922101808103905908201032823571809788102598343712679414175728896232300756866986385795825243172298062065378048346351038858352850393360846102732451621923080899869887206887276058973023651829407552094199432109429875644188317770909677614511169868799679802619828301885457571604913160845903808636284758686803801556055573798283759062072979347037801374070325330127030540836035225436599813023569275069793262713775537237445259081714918769422934063832639833610922049066072112061176421864716528268815410784293860980165588489594719250984944903323806974075675103281672802398700008877769055946085346736048587951412640861874861728794398009531949288567114419849182256111791849814668489993182096261036465228618822775488949772913514310993230266498549110821089312740255548623517929670304450125928661444743443846482035167374786375438857851683825601730637850763017938845517250794458062117811844041723691002663530318341076578688644360698786141541272761371528069532155181016341143761548353740885315555606735733429252515978185607748344114567568142752002011218484190213013760020363529836289911981210270239064478042328606548593022943784270975268006511652563332824182553683419505091289221445454313691285192223184302360444837218371969604299066885102658346789549317583418276318442794493537562811562503021679512199543941372066942062497823817035196705041565410739897871371568011500120754143806078252546923329065350401123181796155459760653056262295747340529095538157833581117248595338361844788632527804241540442491897238433474739718783335217120838009841809334052749780690991982351739703895563514146817624430008027368701535742847945496972657561084563290362212867481643376192960253706188375679599168416268901691509381096809397260955508026569254605111130380776128214810443028453080018707249263959369782010082636289729337993221413555872291495324772066424151436419911441900355458152801370070513427773162407394038745998150844785929467080507352258066380405509407923241901477100064099248655639618713437557146558470352807245962965724290048777764476702703062260881880576642255791903302218113734636481587275105561618973748303097042640631758277145225641015870897865335682534632322363672999858723520275796400920510406049812808175558761150787872311766158509654019067661613942836481528835027538707551459169939448417516913808815640934973847420607255125506468003076405895374728850475975044562780201365795960466115916795997011658959476270970963215188775071687067952134059748221623135405702855666047097945448891160003040853876400263532239020805063620801778688735220537155982968997348888427773023695647685494273994874757539732977336542290382947594897287542070467540504823466918587118800034543775648267026645391201798068408555139332067514288291457160756063492326913968312137275225346041652518423339669818361603663664210134720042370707331384799283457667680806327086732719311363849567339473522984789911808935135315052515672760787792419126961058230732857856040026088480252882623301587466466055612961096628761315698044511639818206261507328432610781964293243278941934722280928276683955144562139823350518395694285501537974886304429177570324354994452798177807939205929575090076267481021894502573728028121438287921392498405710377687967014462813652259282811040857573084227170503562571360832304450918615621899260910046080742846501328310010540896649446840426040232281100456619924972908092373578737484833657492824330605453553126633729574903142561265261090599115075275382195679309081547992535853519763425274110407869970606371706820926243233332949313742856069684729673194053448407044397339757756690163143528443855712975968834725429602289843778720102973554567194499500878145203367445304637501560424673075399969479610388019797552882412127358548756364989677496031930919997018144122359230260274661967853661808420144826337760569280688999128249634280918008174678610004730870964673051770900886611672766350640618407410059895678791249070855742262073587481164597396501984991840302750926120042363031764289752679520680999399094933409564234175921743516154575085317414470863707996888616479341838898747804851645912767178449876965533619862274089773921770855928397096837180219269078984036839393351222674604226579880457176458719224322924872481943114998946478185584030282084141232127562778039917972263030889152080625423608343666098783955000260731321648713581765543542065228887691920483685068054168177021646051418616756202241808705904749095800783180134997921418198501582146857689630902747094363573375697303740612225501039503583609781261394926192487648189575356403863094431521800386920332644189112716068086804434023605310435436510303486501559252404561706013971995992003120638874725558846511075145189742940824477594528260006388853790939069142356035617512330386038890497508164100134936832287038347392181369020710604108386582259598656617491870498626642425986468270556442876692287093968214666838875018280405379394884790415756590373060764718533897744949547796670786944896988313237745175836359868956247210837828682838320674556887901149016774144234409511640793100946378990147899734379492860611736703591052942145976486464102492780599962107272647199686833130967668098722654509550674059868763043758904317498142263130702569201837108233274702368431089233159869024737959726144929542644996999017078736654042177664190822417093990993809819158168589089749232344380638067910041126601324874834641271222077463082909863212630529397707085778467953753971395072148958869051512334685401504737596964020942891120890015188183819454332512686520153544221325235112091781375384007440860572181766186325111920945438456924406262881468609503938527967591428356090145790340796848669613586244162166682099457303176103757897250448249099109857799737231280225986276659413771858931390434851618507210899888496537101593152584573027387794394641821993876012268421693240953700085750963295156487241161615020191409430446182970922171501409541905681018539585360019151626546124515568044396470214212383529183418864096218702260568116212780822429712465257601355456519335299553707433777422461799385579288468734445414619279800718732113462730155093813916841748467699289265658563956142963716305612487794333035509052345385364705888032463185297538012822668456190266378402913463100534641776935705731365554825289704068983372144058661970500137449989944332660258898494348319633000939557103675676255701933343880176893242174168418388039172764097461911875462424079049145244855361337140867129203407666800561702200425854735512315909394185185782437882125795876288741287507684940445902820571564225433881911523537373426101552372172014472856935632831576988127550796363794548943051985821303003630443577037781579784238806899840297587763828727314882369545643214444541583100530427873844753476012630543790793743736513204285767033767611082725784847757434034801287026423135245356745717916297503080951843805146922387270264313153905177269982352456433539492414173145116637880642718435190499184034748777654015092617788314460392184645378060739456828489825154676305667092255590039922597195309475608074690877200761368023251874068671167296225674097972191805985422587372942066343687656125199366478397906227254028114111656106539539329197496621369536450480253697103520132348882901492664857881374019965107876109151890586867828765730968748543035477465016429611201645248844385863952490269234365992815780392801847134214878294966008193487713202730621834940644468421895086954162241325884944604949800536393089753562559720539712543200069076654282869859322917080891047985615710263815682752956064107011346370247500573255735397531453220695278028866673144070951778233962130062555227392945982672151088659939395291715199056281349535486099905522090695697927751795137546278712165812566613102778962604652156671809985833636457082150535616855680626657738758273502286927392322774916665074071501920438835843654392080664012468313710681711768961577733346203599708613721127036475696719334943635918176825857571820052731166919959001713949533027160596120589540683164694705782758934750295264684020232495433200672556237614814703593124591399426974667862869758932041801892647893028931028394768781037834927619833402456719703571922649007262662370808044456109659567513594480329610349403645085888255449871976533839461745572538488390368210771057843837354944306289822436243554507066519493911055777465008014307912336822534498610606829190468047870549712983609207496326557523140128475166796248331099458918422851495310582339772538215866671766067186746600479684305402880809413502939046763326279397160047113516132817727697230366275565702103045259996269431062751491750092064458401588394201230169621630738622658240814458291539977297183495750049154841416495476284441112674086678212766277149828508297062209787457105204689132569048580910085180442726075105946927480535908061933387333567669154967418962314216385620987484788040020371703729171284680050750777605918235343932154720309022079335931921190573213117613860510102253697917251421457537314867493417117799218234733847493966991513912488400594240748257374991816614493838241145975474950563654155835462875230188575918962109227844439790847599663202080723002621518926523715909539883254390229882106998310952992870062110938104965922302627243795710163421477018350614090089432570662223678662670147744876135129272493028750021134251574163104263888825989682711159986225285899814206669009784447929200069205890804216963457044570400537693456043197203766537805318356823438529944965779265112851823031237676503905957400849354126295059885795878620309624600851048332761724375206794621265869325907006331589165612591447589400262144435689885792007267248093764095234751965208352906504684262511112765994181752770100383623353116362661969304282839367312813144778982184995814372545462015096590407749366090376363217715386701624467231761837866093029253894042856997525609800227126680796420487912535951491149062564997242029190747283685070230947031167899351615949301292693020269982341795983914325596414488301870980063194226958276950112302521565856759303021568702182694923174835848167294563302146489504255274425473316373399905789042599724220289055658227918715812112794575872268367751242101397753663278073039009698103603227409920641727652316154711069000080505005212989645791498144574246377151973025850303258054905827244345362302929768471365675147694994320591501271878655401220838249048528790848586603727306945365899518165598175651480310133617952246792834527593637411373065027429997170560468616016102673545241945036789565302871452483543796791799833817875650154324195111465325401406742926284787027242011864240033951398893048991091027450262485046779531129839604629541413747610609989788092175890003171376059073258489645970660715932324736735001168502632318702904463960554569358805861952035104847358849666563740909771139984515344543858046590268369685779647545458864578940049805407164901427888667846796361568698546158734336613381818177705320092497378397267262694624301640772785271767566641529668070715694802193275504294511706344682897697069105564946810745112724293762861426325786540448056009469244835900063507236017457426180854561967631400418328972303076594420224762760958368018593481629321000483827804636764981851280689862339552650729016833306206190328195401023868570246279589323257700416008436909246854979603030347725604212476767213414440090065665615721653850510119542314813511885511083090133890527456858462950468722460619050124746408013908445049082248289257437741692579868092372031900152372692982478854933899286150186505903029472052000767457301360196430958834032646552556433544488944844501386803747295939964680315713648548277632355488191597841781659965621733842235823327052437726728069066664670720305253213048988139546851246496166805834674750340231229164454212231631369931741777014031129424095474370736860126888055545444782028643778879432747663996303141028359903922601387565542403482213611216082335768804637227996970228990872969867320978936539837343099799168153441507014666372369720222106878049420872358612736658482798047131295478646141617167619975651214869701806283988280564918781350705068275369915123847162176978814005133684869160484488539967718434312936990265118598995068894691497912676597640599130624712572729886206777198261280564925083483353577340817720238332806155546293510117331935427536116967547981530753577831165299914211087324979950002058385542058129250638045102085774037923721206887345765750454311330004081610271702002261417706524472751539704455216942648247644005414790602464204442993514113182365677868327125187520319558079903377879591147840834175942508211443080317196600657634289128972630889315742102837957644968464727707669362946805069556764584902994663013389851228178794571109214945757448623557201835235272146087905902347673016417382825410069060563584188214236250947113842755860203038462639828393841255887650369122498334344828756979995358464813557459781271443955454148082176496046292803095659956380848737199218815761445598341637753740200590969854984691214320993704459408440709158640917690406760807250059051416144181765242749304264876519513086656455046627976719913529889889294357895939264888001594804859244184321793462672400352758299429565063192600712525732130943873829937162263229468479226263390048677729866190151784382210962890760033574901608169222202626228020296701006101835845875255795364690690698623304529143004552932548572281816865598184665221543914247060245305963857289061889885232037218852881916292733195032482184608114696692724290657212019603331671044166107938132774874046744245714117197332833707413742836365007980800567401496273303403355859293238407029700533201610891320981987981314878736616112006379962302475985059382709073749525415687223307472279233425847110962125782174861719592637049490299138497009452665798127312959970758238947837191802399752939126059205603173809392926625682432352360077841245375829952531915366638714912376664588007435362379877962912694282045732612701214207946862690734354218023677866815851837914745566192937005282541686980212146341471312257813516255509726936862945603430276753895785142420614965818342040901266303261886823721093451567281550940111811522941654289652375397608467101949554520540607135959875689765295770708091482629212546557507570205754395363659240342016178649717660519243616118484220674291543436378462481705370437711632203326160372330259388751113661052758665500542597867618060123038036481018616745484451375223325767642751586143965852503188037693459002462106775427201987629923175291430046713256174691477989191642528389417324847871643900929391164085245741155854494802128854989286748894723898183269333650998152151219925212377546818831553873971770065259988515254474198542498517673641276675906948786870057204881156206212776490340255316564493222863539952113509370266890050669703900807356089922216421494142282262943027430335132080729523272407815796821275421257748937564798440961117680576229565633860688307001887053599018828157619283616803844269745559241152320592306881629859895454092145387994539690931850408203325729529915626028931628429032091566512261928132208300434063786834618772971344783907189130492258378556661519113810631307339186126633886636888571232895261766804766430509446246257537160659131960440815591180890725474860737047363307645554956284315983958298792597570882498328480062611116550576428490039537975102890424392381870131079290381225193134219903443863078052006479902669003935149303075641553952508228874058079429537109775544603280500274361475968890956006417824991432378055156032774008337985618937474187994175743339207532554793360182258885241969598563260010851512747988707102513466004987672939498975016872829371632896968055360337148963117747008803578380774812070590623612236049737929349361718136454028263427370411307240564453109818597863163502934869721812768610834608588996304071744570552211504051491207128007073815470687887070681423015024287062954476720008517996905743223299604280595421576242454746521255855334542344001764246173873146345233540735396261129492152163704437498908106362781595613386418408878318774062369910419173766241476171359902892711953966885216241426980819731280419984831045928408010840153366350864413420666913760176040058051297798867536018207831075220915464398096137094842419847537411223970397979003758924253507252560545953550209003447595344211665910451974300808432260796020928708241334804905915637163619687846606163843305665756164355887958270702224277651082616630420901336729091340679751632392570966811380993073252907475231418805999229284669308969911016935685692762436536358895905854528092169867456132560357422351507227912424648581992197188175625330265024877886696630133926282353016666813179542313210370449343200669730785790432586915722657893700815256048398854736597391992778508569362286612915154647675868306442926379378033814771776107504711580035228369060137433979449538221357380286473393823476386759541956302432546433740056968343431812487878344952940509486756391023785196903405908624905762521401277943846586908554412181487289878877809647983752038397776180813448830223538622132286594952397254958514399546419836674490576185913925055030855888227532740992269624060825605525296623649712060578225508637572307838671995009778345342294346206158961499348651315366767954548247119307115597911477508417443218683201963775256689601707459610296913555145501451969384235702639274866489127329435830337448199487626493261607747432927940840841132055437282794059433498239290349372064729291212994500987953257129966978349884866597447337194690171300147971871737776302920412157674380854639203372576706316724476739375981053603268743912505369433025938214027580202003723910297266607917447195649944668102416813235063835029258285001997419883619746473029257772372265455811282809226446324463230901951728479476824644501484610153281841781350547679892028214092048583089747997069041423607605325617598316750996692657334576553008883134049355523479343291726764075195134103661106107030792015875691317044699993353081154017773805775546638757393165312029188055206737699465769802300409388098771051520326602954763162863515438398174469533450586019318467543951270215810192410672235906251525352902057798337204244726960738017526053783566304009396219236509852696562602253238001047404140338566820427707685350698388429803586166930394882452769594661384585239862485511108205801486785471544354981381040572894373845501302729193863644660363470624826290145487488965411024709097083388481965418146839300260836567948426904038750659457566677577767892853575805251084993965213515333301949893941410368171028615688547589778709191733727061263267708916967259874973951758137168521130469819470553723921772999765896876604979722566444548984341648813442789626143970920436915720903461990283297813077858166784839979012942058846067736914528408409878067735834783347310313966382671689869434754650296991485038044204817854119136960951013410024792449640039010973577627857270381372035844087071174101061907723462973826762253596906625378862208724595989879225534236132380841008235166088918784830586840390491888901646877958725872571614531960742418237166649876176061092151477499575596381558872260708300909097725704624980266481333799099967046463596567116644594292620327489301633097251160976047497243988719212570707734084115296247146113861618063297225903376324729559746519610924948703164450687650431361118381775793703766664821293713740960011085232458481605746193016028407538504795990971372242560685995078688140484416537376663032168103174235137383100313478020647226996108882093702313358992946657564693548824628694410525183348720358823976464152079672321394268230079591060888035613072545578814311386883357039179052266652664686089357114456181345350920713717726098851341154748690977575072972209865727167917880603341228685595989472149031774388010256752920845711894921500420851286836757472515490468175905783178679855226784587602082945422967651016805270710377403713752045028819023607928892364177722532457974377735452471787755651154595782069803021300382908901682933851734169494726740682306150055349293932028573234160137668238584726815081423424500079601616000848179542916050169245086354902702023139574610655025292078313558558249628957681147688062068657591943753070503004974982121505858429644527898066384701416615269019037409148511415405913440605861550515182686566905644327071785228428295301689835981636399645089354148158443092933246724896293148235818973479778684617890649750199159122067154561804989634581689042891267915500480192227094190762874310985497818202315878515514376176429036890081315685387160524683900374364725883999932766941819703899364380897628032110971233549151249754816425921820106941689058694262465029395563923743645216541509024753618814793239556659746286422287188344412400212055315489151489965459487977567335450765314553865989212135155521544684982020276939341922586312234132612531593811947600684200361875440335693303940630946153024571163097778547090753466812531502098602998115181216421907912683064392023090423448374781121847736250576460583509935756103323664701906151490039184140618417607238225108929249134262575236207339929891619050712086473659046318725428540829896208244764857162862653714590496601448824068723313969129903229881738984651752933330917515212725662669231400208454346711217339425842279440789048057894392357149505486208484428240666063695887962886632594056267561802303081669276622728444836600042775320475363589922784568687625266184444684210738523147786155242235803314157790015409155548666992215277199774257798119456732172489267587532865415127122117867842049400831614465168167223974377839203735946451898527542396963924221698794045026034964968646383954644539575402456787183648128331020422901181182496281532557773309631497280208451140914069359476630564999223800009244189380594200747005465193093748570472619424701703774718838537512729088808175493160002823282195771182950108779491659280971273029116844549382841906559335922582612000202417387876170198558087903187608491622350182083097936112511357988877475070315743629510944296975080952312811708170573717889856787815900558317140012560324978931672906612070916373939282279818817940809011942396127476217797307185486683660040338262694705519514574014662739489885968034098545961923059052236050904815223292247276772849593541366460528965319550792212337100981640547840847060046955702108147748060429536564416331923303991424418409791162498345046965479834095291635293278201802989510524763262613155543107893141537658696309133135567647630823832216283426951561085826040932869019093513056076508250411679184582964091918835880247154759005684809114508652343107357610118324869863735168526097023147197225084363282928050596308772617987173500812715036005618407437707554596819289192079556863402833461009177916584929021134435692239118232458441430716097404538338011912765480269086592022950510733811231212810343500574794610321405438574983889435874218017268875017044323298861118382622578384279294098692661628841623801268897008569151267750901591986539428417124717435082190098000003191428427682662975556650105098992883658699384200087586043857958337311193550545474883072421806111397983614647483122711545941232825498361681885535604129572669071939031956982305834081597443755545484362877856734387607947183732896463915721250391957329818306065736875991491274665937204257096974831502952272599461095876604916043169720555900417057016016412175521420570943649284411281636739277585980897787970247901588565581278214383202216543662643522625157338170368397442306698717045755045610556398577603642086636830087888065556422621772900398188789340945885230910509236605183710986713291220481036656928904932058869581913175442062164286813103213129359001530197621376227136321981222856433084379473813063506109482187124572471371110746841754592327278822969685997899266678851470187266988041485012989926732516399003948001367659762336311214774214672816624678917084622811176198067754863923387773113405231026971913593976558770083645719441496983685369027174611870232298582618227771556676547723664966360917690519454434246988373929217890679936761560224676934430503049863582545265716643061328957882190473446578965348642427663614644787845299992680445549207607978403325068796325320612764628072453978028683634549282348807649802028653117567191642730547847615682990062001056471784346159603386295852695135863647251026572928302643200843786387934028790746245754407276149922885009004806515790151236618908752725674969296429709302865232911229373566219866687943026450430929829005707478138633095030885181331032637304031015551039435707567202410901116213795114230528374931346170767647842792297322984766752917854970949721981168910083417587545857537981997086604223202525810074773246985520434777140946979826700074520048045193009669024518728723051282139596924759085198058793404070804399850584374134691335438905371585619071727785036073433333773093340858178023626578015279114898272810231389371957299001712499008013651336318004759407588235330268337437634160151637050363816389760526533871728549352598052618520495637395093305723254376422008431715051261019064518569955963273905325588674197008031971105695650853944045272805209994383361864464164041570574813340626613222199467741641984415476501099321068734392558994730973126864874524603830528832978878010827833426051621948652486269083631736365137688497264542828165696143416419161830133614365169845686547914110548277550844731501258791237921611485207889432620777157640371628924041254196167269468069367462540409254999907436904305020005015918839534861006627206781570860432035255574964663385150429649475333850055530823242005219896717239605853576457624380485837953782918309424859439158123381395295466173875688580569149576260425116946600690339245193903477108637666052693770954242984904084993866860659970258121675780902245304247496506510845979456184111719579656503454391568606025255013539801227666872317461136878063953450362291423782584454627607718279306024193382493109683917609554391799619324678891316546366684603396167954929804551476249709309689027730911271113488651105618301636433446742327028999872801251566723270756181912035073972424490217131916141596388100332123444678613869101059430785079409352100200176792407546424131148569854293287289679933914376351750002122751053866602973983946167080450671607175763438760002625980721393432527220674733437166343786955918449864444680143846214357576105783562567982205786848589506281765247009101305242473265249204736607077536470665310383266836346795225514870567422190749357752441962931078867019123716132520447339467117144871778743197881082115265048038918745970215877496519493241467627592194257470953954328275622841337527711702320549798291113505052807784372866639595006251638141705012657071685372844646745023041087960826055453128331120343856237126883993711057024176222367330114362782777710838080888820372172811623309450009700860180266415955796438760335309939099352422994094177422407528856347368164912853894096554158114184377510197590674434930017942121503066975354595989149699369132389063534720936110040643578002130863661448510624208989585783075841280974203823019453443809491275116654082387421146371288536102103669306898832714859759070280745471074464605507724799677316309086432044331535485580504959565045972067906654641054898371187446094073187402227478313186014343827044631449205581365979067424734727022112086182094349839356986228946221790862632501375173493543802012894204905819291611887382697898685199245059037288164792612947719957683002171544111999777420343442880220704160808040698997242102493400634399404698772937091013860197289466494705710426137538226334680427377303485573463040635035687120000446629077800145503784355936404807659731800850646427364106380792519210308755534820190239819265376246963769976795035868752060332215151700456892779329241287887123574140472954455910331254269145430380707766393883731831444592853037557254163257241680936269315373983702396758677727825885046648223187372175179211109719992896357683606077072103187172935119278883430145311105754028385743581294994042516792185756971651659164316629875468498124544396215331031746985943656078661038246881683602516286420966100986913660239734247861425758062785754597942461763119923271489682663418721868219324597331831492045028588299082303928501538016845197579921175307218226976569828702194123833271020481548777683511870591797276113283410241423429564238750201131993735765106876675106047247804883380046669329272071401203959005660951382359888672685293675082468184258997722085290751032428241261885441902314831584698128609618871332610208157154329716822280259430417293242355573898445151099958935726063857400959016440129027812726431512626583175072459363722163552723206099650126568892267976390426903102863946618392880405293396205400575185874375789996934000920385110764774235028676418636162201079231119001234292614793715369834055001831125291539248301133571273650561244503559383951260463971403642784204544443731494979896620721542238137097000846831011161486446127265651362840703636929128730820505122269594231912351480497129398637535562242937620720932730515505182512311331994026975399768410506629734505513764765822073537961305222393292018589637966643889388639557361689233993481134392896970348653993840627460223829972406466167704163844706869708946486868634199191577654566850798825936852915167875195774450929948865645446943461454461630672048105463166389940551031978670882566159520557108886666195501259482572907102387167190656667639170822289365834087534548953047396815410787793413329477558900858357229525615063118023437704151329176696985902061261445323373121490772232235152368918251736459307693149532059454547861378393876442294396198900425705363838572197302462538154141805301124055850808409461495246808619390467587726050736857193282035187082578569567194273228098486674552047946716288038724603187869402107170162943775478438700408354112932994522858708858322108800587085141081336966062305156311842331473413202592023054607878426993228251906083807014206487840910519828315564107506897678605126231953700604441632186427084687099312860218345992287666477561263245724337578126015930769140014849078025549224998195627496858878906744782347298658981850272071853618194364419747612606134726616457238097129175169035315680251253442889673472160760792678815391283094003669852672978268968918470820056891940621425068656249833263444908718068651347826730518876174149779193053462433023782990209331695897847444028465416258983741336615761351658130888422288669922897923668644601716947100876828708485010900807055127342714580175209786689694530993438934118943618643433823338198620826126448091099577124809284503181617438993951706417739079455112139027418456054346519901136533898398864469384406819397001200189305106288764934342234810986722456490620073626969024259493081195455226099882355864361571952694774322704391595258826409686429125112778730410919472899240027671790910733429197111594084723846273922682886274494255958916259768922849322017404295686872985430384380447916428180551750446198094355602053618861512784751754434631788843760802124975533391956009165985310048866450221579638586723557421211664831417432118003214696702551018440345978683554022548787190826635390500475722571801581415114834862429998655489785277909259012930082999498495038827665778373443962075997414478763664402164955210394320773810868735452528759782589386379532308707367537695114104435690366013697516650921082652684691555974036439858756331957552939531242917338378009027706245647978478403625195744664847972173318265702835667746229068282329809621639923101474372081959566399211005735059056996913801047124198303993457727491576109677868502706955191983222798672591736739755290062688448276644749139329052420659523324997234394905036919615353276800029364125212050391234681965315217530135088350446260003821982685431151473850489110884075125564255803562976127568502417672085223181897447536234771048764548180737953087293252716694439876727408481725468540052425059288019665698389044192889055703426984056370691292335149465360927363340885073170492921994653155825104636503044892511948481816318853781867479942243290106597753331662709515102776704508342357539514890101878180177697753024978973982391807918389881500954502299735841061433866260137636842124130885613424610835628991553459241276822261706221588482575342558450699087459914011053283755135087566809598944754625852981995677201098893272141780262404400200901760655705712252075461463188392545147259209960754578989691466547507687111770998119870278415028695015666253532768720212255552958510020065369925869518763092017527655588494733119198992587980900466181907871492833720268153621260296370217672187430394420129392978459461839677969571264625268306833100873010606443593123841355761800127871364244524067523682347296962268930756300782016769508684321434062778490970257148046074746392843994413511699366186090661055208183853886785850187085738931239185711317500767062528906349209608650475673494717775394817146046018566485046115539759358378765085209816684527206286282488624090617136013505413347110912705172996411925358866315694380262551763159010399335755586391857497730008114000161350359680788167116814498923953608414428822435675521581474619704950244288392490674761860417180786446108354049167262262820667222249935276536360656200144943059853647578905055318718345066196555346668716854925536817304883478038275804629163060701832096251178332125202558712561375416050154550258811555961399996701189581944170448433844965055037359630518133221950154601795359899044353341653414928701511600428278491017757544645146983622910456698244819545687894981454408642096008315327809823801948683475659023065093435056699925695494581885037077698716086650748376838852639162004499050664454376950630446234295126048033540027098993990909828486579895221519117290301066571557629804449036373456495683482081465191719133897519109002715411075655174565476183005682143863840099148835120803107755421532492330926635787950355646030744805342624496263891946306656303092003526953477382195616690133579525539911141946649720832429068718852488546709764684570879068411074999193097282103945146955900254669160656358370885711739781772833596198737884081797256293697755696978035479157585854981698394972795782943515849326225824800719117883279767624786873842526579667477963301619730418272690138578020747639247236810355949177591341832450144987077016042915903403281585302075597716050363536901497702788339688123262634301364475864923749324486045178170687703392670854550659274660061308149563069332077884580427270654505136945231800250580689567414778046494907232982741661783499113430935808872973769840000865454989042262426464262861465600113974489975381197601746735216281626059156826204002855387056054108028836885541933946310421482936108111034104860016803063916419268001489969763847616775550368933851201199666873602558324655875601864643141962420755631180312816873043760761361007123340265681726664672040506353297540087990611250128749801393914241177041096698254782696934062650567776728226879251631624537902323725721396315164711638016882854179521176383404746704543373343446908465053047257013527694549801455650369231670112356169966022374323868153045226197007718190093970470524694169645483451780113853248183012595996963712607349098446884097614207512546132854925382578609340164970153783749464112381754015919293772581538964587115699053863708445549895471594427683909564466465618085428191138218989485178146603537057301562189682685874900724582002081498069183858227749125080109185533190705494671577819407831291990832568504063428695448349458956593212304985733959433800950526913354263547425832443204928681913028255874304606974046277646002909686038538083892655264182141706090962229232794395052599248038370932758734686521907139283005286977069883666268101686706178989752949826961597235406017342913374740178330925101719609934474917922434172870803137662053619181499784981747314492848796950187146001204104011126769173147255419696589748229880174793244504516197405487068713047296842003928539987631704820220241803440335235883250111435184985557357555447782939701760154907846014486337300120601851800655956667969711469834310805021891777309665653157573155469077404276024929359529446467829332301388717499498264259211720020044610439688767156210857520942541110704056698492655327439266489241534089721507381348961099104671029046507253704794899257344459047573468645866329346076236353350706026108834903829518338277698120313768656435431902674567315342626127543674245218974005683178936488790727865587220095866970455808664583181628174493520189166102360262329588359267506132044521804817216536497922111065632808466574710006230294362627828165210159331602479342646758302134983874771908213757718881740393223786807852544558779979504824374567273446412980189445590145569430406674712615197885638500029626795705281504017391520918541628243352766700008700569077873815263131555316032247775020218656777691533765145409254246270966288076335224871723036183553202642860961224002469724192445899527602200190809561145341351532904757135074655198359112023149085243107860737174944435691350946191451573569006195424433864384543692089384065532254294472549847480338285845375837145246536216274047113461658425877737146874324273313082087889447887869435528060820734582329267974501303561258974667632838562236076934926106275498675788556287385964451535531006263658784613690975646375241499140514503566476594432593971801635439768211256569985549458381673516104232444181625599090641444345129283944570314913721294929622704270109182333885423223903622528475303938700464016233533234414501287418806961732422952604945449453415544369229170180993138393152128179341321229843648643445452433366515461535806083268377969557422646624330567923916421109445026781941456755318898372879259903565529249862882759824772710433399032981196172782674953473007806915507750758202882472717864421308545734295783968082117092855737203504442138117754100715258773528315988443676269159696227770305654387302520372275038311349282498942070180713252247248176176958011958917120457748213434047777937648961896070853406435771302418509248849124275024092767184102448427911616782107017288296175656432628353514110132994275121221417544925392546162469096220579868196396551242161028681098039610652053358627143791800314550775010488400635739798653985261885468667603568680386941481451901552337984177885146385296624955006870155040726797949332254533964058544383351122821372351328834304097055960949937885263545444424008702975957105521265676758613123021676408808268183466866548351173468757955017682506839382192484669834391457844552240295632605986846100524876977835908971755585291855236266687480018424779979104962733862971963602058510959151954704390472053571304384516112437366462686026782150328084680828331668685248201245537271499282878454460150359250188845405065537419708209270801615364406141424469041030614864269679265314811615644425816382220495297491574606804559675906030009858471224292618673410034945861529201566812817500866570373460931184902048427523068321683482956419625049885105834725587898598972693289751349692822561625562863562597697799753374380577548256671349269163551466944841352739603774248570497371145375938283729284945029074536033182897293652384879877194884951734159943873426094805663025438054984315155070885144855471662087759204581602254721513954081165127530729031342082898539182282461000809903201561501405761887304074383263037764963827941533388869719572212856152664942493252928670800076331029890897868307182117495738555627840609720960898684867274618067241677851272988231528362442323860995619229562367270348491635688386210953797462438354993909200973531106744239503645021102031698962299365208645198369720410108399099330120125764974414697824039523666350619413785376625521686694194050978711013853383733764258139628828572201166107118127982631449749173392093859836709518367068984942007970457766826502618021419475382673342571231358579843636870649248854819062940902443277489164483417452818272094855020923593403692118415177048923302384576537528408691124485139499776129736437100306891759407693626245644534417712764555372638348696991014054180123163133650223438817189293949260858030905032260366817494494593430532608991612312440343551540510043061778768099581322300137753119789474158265093561166790347217513607412668124796216879128071526279356883488241651888963933567129142318049232019054411869611375840430018270340502993135331519269206791032091240863674782361124131334861825904279103752347309233810147382480962966846222993366311231826669911241441837063539963367968049063126971144538874000978427964987904960450782978800448521905843275054826527845110362214239589406115006644704774321066860328386867752907133205516287692575781705917241366362853390808343907356993320470615578055882517058472962596134762098452861801760010027478981361130880948585201331681893076802323137628457277484600126050177905268133674665598278332285250427425097792023249806032700772056192631074955769361516448752878439871439315987389576009936902245439411791922373800721927442281968810215193700596904301903508647269626392737282932711248321631183729882362404809564472606756307723762745329776881326669340127525513590441276752232973796133093933476747624989122124124414257867160899845188632057950055316652051620350631696462465769937344596571279194073098497822730362476154661993577020335234404962266076552088954761789060690878879030343823112963179537313987347046918421000233684859875232302321229881749659091445915621169188663088875546726320072995149360629013948989675969670706333239326399747840928812667337477543805252475352401398144589340422781087323654085352976614033803768027446808257626229401699732107897825949947613003792224136926541422707820378964882844730868246269028703656067513240363292876170530923488334209791485501142370257472684468088604929253574672970181978757384777538768382691697354565133184725936154535272239073354196152833337194855929040675298738985239371058407015732785367164330876607044175096708830852132952740005813053444071720859555290660334028495972906707724050173789868555088798434933940697782450823933674018647666738438167043036156549346142968309098579890737395224699513521924045240447757436683325925808153152929113661231378036332411924928266676835750988183710207617420699242037214796230925806121655201383694721716699817162016955027505466657764825011756052264975915942201351029554505161024074286416516172424719500078802787903609318812109935094500864841599018118860922386450165179453627393920390368302551087689830653204481321648739115134530043759940549373678606281626074667905392670767133967463700206832172718109824160161344266566323873841954079810517297684736367967009664761124573313612473980379562014108590464882607305369561134824678996924666395949451860440185425096404765671427889009925919174318886506908515137501421139840736791969573099962776628765160491573077034212613103304634502816649047671632265579493530682623255884606902386802886522153926378373739235538806006594533061048323679349001669068374481056342323372185645709053801387440399983254034079051903018356976709769146166848249467720653990132787638299421460795011249189698358996987527956889518063749753656455180521149542949295978312083868273647046946136615546389887300054368966469837490455016193204498956957393578484425842138002168168659320228174318161264073808939891813545669957986566333750204129466684412510752552166467798846023704399776612569226385495508191403937553098462455100823226146860733229027796380463685602905837542317265969137158583114409806066472092984943696594668297391207703357314010774152506576866197871701601124523706415469876600749410419157272935951164965050958104204324028513814701813949378575734566911642345942516990419870893904192484421918653574679191959032054923704312007616611704010282962950870996890067929835036089344448344275731300761708057831974045629927712569420431197982746141096425340622864552301836264840783807957542957935129731089828886381729657258233351950139588509353463956455763393781664654464464686142597602372820044210602807772323709102727154717931384518355108857075102360703925469674923431159336496722826714732864881967536042893420477963039881275946507311703446014356719971573756147721549074328744316227075944572700712402289378026605950271792818874348638533244443000842104193562746639701693623128441294941864100760981847064459616203405341770801425884411192103294609069916614180490736879991576988311843227291305548755797568709863743330056954038112808274981285633303525687335978404370471098902031352672519302493003923257602519854242222539872493807047755087162992547462768401849685993807164553156878139381359031129395136146234272271639413711540951831701806885580277837756069854513348127009843139760821204588693980205090205228509812765675019262518003826305344876698631605128367463247254036673735038175391908283346964003706839281087926790910567619686392990363716551865161338046965855994895289242523909529093946211982917099159961998304004259857385158752584056027282017942504255650477439623670744343693625824705195403324983739105153708419417145963959872814600494110339601226094959847945712710817444043780472663226503801201721648221231882268624312962817203162657829446179595631046684213561326282363795224377755191287055620571525808892089840610933668390770519731908122568074905126292243030417660880865706955876312098979465172446660657625729275060804336603477625769478416977733497958368118348978198743251909513276970652091560808132117817137592167781555877686177047130022510181848993537885986672638851623967972569621551837012560766611752060190119867934984126501296000011837888202425444428845607582733903392294408412359427536552299348879850322053446714879911585443153981545278641203683317264689398884380690457363096375002782123018466683463289126980958958763383101217310726448286728876350768151321294013115844323948658299842845251151651243234343721182061089807100269450927823925543870321818898497088247886418313184436673194786394079506372513548018177870622274349825154194693467314465480342401633685104666062517875788686728703181875767218662204835502848237646240520653797532872536372542727212678321984971102497539818202392784365196973512619791141898501080906313117739555490118870732961125177388699862822481848862685985232113255793481441196344341188296785203940464576813626071745233295819556228372289387742252839747202770157369980501003146920239537511508498510862286693390568740673075053009479424805766555883313211725755985654080961044397142511747485390512804681214226975754641815817223977561041901411506382990696841370646509788180276484465298379603317070097855470412557117417594007410457925526510097317655034761608499182183680797980831697730163017174887379967498011947995810179160232167259766683368885464918930873763965188792920899719015446373740710349915562437156394074893803945825623914141476786381036280622055203262474191509272614464199458310570049720030881630731916532642111356058648875541832397857944042786912620178700624978672894966207501101770687867437188620715783707437588393728816673702673970169295801397703032656104065002096230797059607738340258103248271980662632407707536942282772211766100852942134994390331151559834312608491682256097307039584271051538485986884857380334238798751344239595568342158776833848035065534584949282105457311687285908162879893572256613814687229294831800165033628577564973017358025545208032203594692552951963049026946626831999789112130384266457196194711470498890693423225173382471620179695889541117835800824790006856920398591018392003375485257109257119399707090266189620981018066267890033194436466911944769702064182126835787723274027441773734747651140774093250425378373385900381262298620349833893563547507778953293655935486390760791558573616373164867733633677095642074523074179718309226617106666886997896535288950428735545862952597019935387925029682037054643155347233059110118155866537342558254157137229256012565531685937063184677498128290314748707215161394761930808199133747994971325234895703717440303092624247381638253122722081825710982804428859525091032439846924343352479685956840250078567128381042806728067594168921133560276802792324686023128749603297499428142744624079065437431984983449470951854485412982093190540733380728012292651990311884236998384081901725988613962152927783037517079401997919746156906676029587505595965509580284881411356570013517396927644337243078710714851109542915063968340828386244603016392838053833580218572581454690590167756320543640412741545855710287468215225069188265548046264353000473553275786187069140023314553949210813116460115607085420054796525782067659709964822691684642069677743107519220683164392781318110024725433695146034401804920943719662428688829605264001410002352621670627876153633619163147054693224574553153954970685803099798122741866960662190820386242381309214675589348646145262155736440759755640514903198917023188687421580948167659241167040308716462822487372321944595497803046879814093668402211477844843204761557101678114920670238479305110012308649802330380515152434951371253139007649012621565095020983945372879644892049866889365200037362204723990135078923192376058517462635161909540150340823396048449814768811700398956995454869569848834486065473222743370555746457262757091574674241957539016485657211518563914177718589574604465905157935991398274195335465202202601951413528197519152263802253776265824901553094243627840621394491504435411461220734222184423717291456083629262712546430447373837112714499436385819300297807917166712071361120177223532028517239954310570030974470115782934120431561560271185633704742959910026096607930300575658320166956391674341341235975748390273717418229026419615901307826897450996637358437884398398501860385298856215818441827142672309922103334793182196365463235609344546178197975945595162851193334871659418970941151024063874327671716994132843809161459497624611048166485343996270497016692512371231923564693241422289316608340098138615935909157095081476443665516470671790619836446194635383757014125755628655918936523877126706251901293836504033253939111131464877409006987414190922434774946403149681927409351388362814446852385240106311679393502488374136387473052091350355222570474883384757571572448925738522001320341008624938623557062052119077932355353809079650186805208549852050501732660306591155583547986796253295062695638155907414620739284722603793631305328515246349943799033441787697202203068994452725477664819848454219178539048067002020057552167558170512812874047580403221240594762267921539130728707843677311310753352210347183352682402212489722855936312043365569698027366665398747127306635251640504152728798133000448211650075204291877482844261401205947290087883463144431793880783387434037758225889097745151255331690142342526488179628748677174362603522749309573172194401381938712086730344599913966557429027268166854412946052568104717924784299156345250695859086171797931750571657128671645721414401712746185893725592739052169780050246969395397554804394051063893993728027660030311744090350682262510830347360503014010068831337291736478567221732216803884704452148759401569471797966695378404758047340022517046849920968366689215577537045862365900723189422425965090525664309358304695747083908296590125349928894015031475736591781904563027469225971270771054648269492785168872603282538039213884555586760830663574436097854737796302682755993824937036079889162801853215222078224515987245548159007652138788898400555601556528218328852427273398165094472930657323235063704249164587778795613768400095250335516375944316221008854979233818997081020112292184085843799331373819537890551871253024863120440221024162112661446176134830399638491398456910229951920798368584259552408719790470812519807571151867924802942550367929031115891904362994631941098741175860061165146639947976142206281653218738899899655896329139053404797611875925018447812004187869707240661560971584832223111864314363302796283212784259497835637172421541630609083344967127536059498348466910683259492299044164294770852852943970224839394439744552766114191324870040816625717123141911127600906872140553559505215408828381362782744402117255341200693682879664115215934397598309240400638911109067627528703600759970169009543324269902209667269026590759212680654887898146567213460230336923499581894400095762808681212224372368985245277992691673752800130583773171140875542218085078892123534583046798183410816850128605063244580436514185853952293608349029458110217420601334659177309857584117423277325667838995416535367097939445778601037351027697523166918932291055794170257714374374891593530901081804050953079630277995409573550858835516139473404020910082190612418716844198391051648319132285045229695706326028863096969171193462437229367671705686795277132602882731766161963161488652305004761961459685865423803652690606692706568969066998009772770563393691280176017322032166027470526747438216015589468368312228008050700927472581359382569697405679940378983540780740335278235969678486916978265310936885615719736262803009465557623613105496542433788670719200439570881498664236898719314185273833694957334743980088794467912133803756634747130178069385348263976029982945407964275045223023009824374794075945051495180523431477823412951367412860766827530530804732057841461020750019587566769424601883196639450654783970334423113476667474974579279412273770544194962471970085051871009545073731226670870331755740029135695067217058233098250249018101225114327919594224752937187912251643271615506596571275189298390485747207839337238145165731251271263144213021313057989629474416553045915190713684010670521324502103991339114715515369519268648613203658506411972006363692240883368638501726996434304656201224544641537819606002784871550721810178661476537271715937426960744087044613188699350643965661231468139129147996757628356867345291771298000159340287927218733518634508120915937223856817975618752975691566505975500554631563151449297062580719553261225126793872705247648540072048115597507821293035143075222449338288601489978044732455529154283106780544403976228295587843119208965399668592094734551088354639343835022150757708881446539388022308300847193691573089928498177831060153982547475676211282679350704611523682889859946629124350615580829118906316308179526081505433921197837886170211083724196522911167426156772831447040394552740170215682771017767375905389813854062908720757912718621045192248377519759145324971482945324395871917762520259967410265875369158365861814832606203441113822692086024774703557394992016407746938895207344072561660123838426327376005915230208464316476237675594935325036448320911156462461068788531363169171770998088160444690439663765354495643310163087338514650477759283982388215782513829230367345774251481336573250469857206715186650650421716761026728791722571339978668668613565936411661096238055808166119751109181246070768992979546830554802593980845050769482232204824483417354134362006618546711384556542116274353205291701185713783841225890456941144155207606918323344040226236156753108988436912136638615589601465919036135774051674075846337019100674404556252854855750483303028320355586185814405353946313576061598960415867535854584117382670163621761559394783226176660448392123222361908450969881743094339587883755813769360591836191414405845090721443173469292106437731401753397156363379048487076656173558922990854121500717193744158973801745518959745142861723404309691626215205797245457428280730887489691340651746529951265957604716279757894185493738942740321622413882580398875328125283729058793161508181880369387946112765008519463640548236466368760747773313905097916888279263912770813223761584463525408033799105655485718618652668596757793770998020570819933252894464040610407295489044839062566469462360791778444010203467218176152510836630161964472478738098430187386091556083864411240027148324095485349516844992961743709568076630243321435762178982078860338265027877366693238981916789086135875594643815044061919123292725082105778132628571867829508507405421578053167322425190630263475879868048467712539828982953032933123165268246843095124483373791498290425272539858712932415844257773645617367240036311945377979002149491603249681883035593574609089301243178301101236172362550296279751426602174239632854746802968375099765983451054762362073316269390176103515868014801648873464975779214517629865889971686755392255506983498468114365155513115602904274135259109041200394463878057172370898633510171486358798621939352917876815472335073058370803260108134137890039419866075843128385963877946619784162759398132514943094750395854942202142441154084928882641956411824313805786994703996868776316206962244456784832035430330766899038453578600201771179493024370005663463163318765321345847219578496756871542068386416147217741002919212993406163819675476927720413977172354136131938201639930205095920403181000120925311942087499024940443358573333864121224676717848113252863259518168077449477298613363631083595718275006075191951137833144385404340063559913097525339482400305861338241111772601246774843582199034850382316329780922430798283090751040268048553384000860794396776921913151750023931891959334591213709660868524337331840803649359931989992309263755838145824719297717498493214507114434898188709232429932325385560109552247315625625363351834845442874661259016373854394765636724318837303868416768891690901750428028807853617486339552041468251540104546328875475396032389779093600450125221559457298216385990764965776977937370376742796178454079010926409779213838962604888668412552027426321119144015670118165726758980109415592141058717276036388679714861512937578893583928646786883187535736842102747854309477754315286442652897974365774192391479957369214563658321568406270390597024609203353840740359672249112421312888491172164232173603509631473419490498961454878134002135281359613853155481738682566096521334168076093349984775132212351898201649835307133543814552536172716673196731075956577161304215906388998991680961015887094836108874552342759688356159072458114231823740246126395505196874892701622547921362753877379347756720387289972603424370340618801144276873079912318825907230526247317343811990951705414659615514849298698300259595200810229343297232128039386876435670563023904549272341728581413185324941537217680030089737721551845489736718796271419853851917128069685838459580789563854846190428349345047364519116886632412974467456500322093553444376984804723242824619915890354856930818198985803506215850288992525336590637743185891904812288485413768536496556355874721470668959343351023371093103351174839126061894021483194752160080612838432693454994552899241146507692386717531742904576070842149842851972650112801842372011103997136906003155004302303934655832833445250509489637592283665682490770231120395370676009411141784398057684562604350578206964772555728958220380368571520319359100552112393412019603303606875410001670525877817978325285204170355533994532569918514131342393606121616549878786125243202458398138294652921864782228218276643082874723035159850858959608868062054466308482623211063725956459079743283284817557057313030335916073274581024419662988762807729202182790176138109669657620193441301109480872377903348000328307154606544127208931358342140563476274205940412671674526165240614579583758419057141990543105723579020859146104528167501321781125372605847288486040587880738334574902232115192218193098145559475003995134040235397221544393678403860423693535681643313145867809702430670247052163503605379427819680127391130398599212246441197106234587735390075752047453824986486322077144259730842873144402899726489978853619623770721325036166063059304939637505188030815987681660211455879105896022099417845313900440233189988062087295322384578302035936250145354938298153972634878484358709328544605657024561015271202592859550616116292861826419108039777357883289352298692303531972774755531614268877994900297168690040623537375434683108953776198316084569949858180187302044043363911337604581787566236437798839966430507133115688825168162602878256907442238794974435154231959739748471913158489202479503657474094254578979219198786152128739102891934471051989374516023074564787345392851661712922032257066548310150138209435460354161007982347704829722143677925599766597828477294176381940058648381118755692961498026071043671117092597924483114465079982327984239415833060656352877442080049126536837874436443857452705730246176367136162564150225606876969280395100839275045531516637995238727036552199926046025039424088536715189474750799607591915822558584110703726705425037314157201007448050027485414903042128696926725812753765934340824282132447641223587087609873546727817658769218507931612760345668535056137369650056477473158983800176659166855797319906464827647334857607663988707581075999008684859044247466181388089671289356103904621618769937481594914384091364591268826123875814345664404488686665545575411103156485457365202847293486372205973937234542814057370245456716949410969233493946913181267597056461210968650467002241471809704763823712780097958970060460675462630654902144525309358932520869329435644210540741753276608298043231607892385249192381880070570324768395575806568174207977183731755655677775415651881181281884147934008578632149849919893148400383124426006844444796043735579875098845893293372080297362136929769097423619163379287143553526236057188850448797265200529397019374344408888674095123036414931071643947378699276034165218132600022868500447577701297614025601317307897521842785619799064059558539454833401013545611408616587848454012362886219842011977440203523503443420952659479582625004019606691957767412419152948840230879343167931871352056029802981526423135005956988730415255335510731666257053138012312065369664592309468152408905831413944797005538687687431052913160411790860055356271922749677305913176458062636576948724275976387497051077214670396523147127088582769539153760509157310105093188943920781617946952728853971360652057498752869921100965473999563698374072453587275151684733747526963076602407169859401393029788926848849877575882757089196823287930159443087403022145023007125389058316507240858476886785420035913684063465316408780691328016104707416817924412496979822454001173181100149409823719155064924049291453009968073441706599229461611556104783672910618526356681251005183593923596982974474189147527279874786702155158182993459561716895602411550681672208180530477005692194410217739709447981999500820720612858872027503526148152405693144469305487580960578822538307364981448834370249060430478224926517253801144590587358991570830395163453352462786060652852140205492890796064060361944967656744075012961030892963081630749090326450049762863319158793300028940780728586646722122505808467608908042464554214627183002422109060158164990988261293996443273876595177553748151013414898558612488521050593881254602526005342611717471320004148064477376398038656222375739513536999209692629312236623434687546454723210080533139271458054429107740916350300706242791426911354079286298164272071013962391669075375489853295835659601115725439959432574273760751269615460951559363897849912788219474026430213026258774709171159943876727792766456270037726414012772089308225377082029049644355174837680815038573007729891160147959962319020187296800391723519498252460083254356186949588992714208971665896595550946175174396541116378108029157085029473622329172977617969519694720101188569614283734714853595742012082184090035691593596423375655533737576832867414187957394431061969206007967969981120628297513474825211284514106977445985042678869946268327317850120786293893775524474196338159089509741884208872951839221956896669193920239595537178041304788829531044876762065240934758681300811195191640351383953490220583231530224204955282277404154602261036492620010896191910671855710551870616091725232394740405821000805058980666588921754848705064531973758074153685164425254710743987723728658682609442490059066542063827478631853043233927156803181232839599487967331787765180817831632781771545711380082207945964413575797194552249072883887025603587778677852070972954331772253074316626303112462758328906749108878854758388750395594041014277829203730723422250850059091980309817916617789031936754811087451263185191595048510478521636785680990094544509143447163422523952792666998885062796391670303136857560337518875639174374473890492652254313497902840708706298650148097733473255542842805402182062658334506904208816089118622564279018230321946618842901645779665681885732372912099511102735338306645131502511849030709009068916225880172937434661725663854901029702422554628722675674767178902106851228106282280547140580386915663925531979255324761964819925523535543393387529802518226097557427535095503632069450963265484804839598512933283755816155298403265393800136475228269138663651049876483810414827028802168741766645273334685211671427265862922426695249031488774350672365024737474422035888555720446704743421981202186588537590887661429914507799297067185094361205540147035334619373338720104349911468537238013560760905050149852375714696581287411210178516338569106532549135732945900293273896878399569107496075965439805801685544289593129530959664261562222015190414083800216937454809960979257138224215137779590847789756143311308640681463944936813444125145661894365801992431366498208265478034643298589928612199063337433234010795863972008300574876903890421327603619339426762651492105235184707568709334051083782728386707451288943461532988235380846824378834431221798768619272719418484021060596437562309294672292963908802892234253414942918891826057730395192561626927407795134499835291494765849010559342288924627001216271158382860414915545070730424850940416443330373852962888831419225709822565187242174046685441457915647078453296070040675740646583870097645633854750010096561026566670688510306584694599367441833312617900137094605884825869399629770918977215687227956112335686250773086441769652059274449796634928641597897333755542868901605055108188799666338650793606759901827710421430862134478938327666281676761257956349742667433893223627182666842829459609429818022125805580991852215874564349932932061238731786696280071908313506076361706988492466596904197133393807432588970738129140797618359854927466655175701263847415669245170709069937004904002542351005603667976201279219044943444000041558661784132804157700307518599211034464707277421837676260605743311830814616347371007017072753886677528070124475668997606407729235808138325954419813217723147605074844191500916464272314927052880325488978181046677179022570433447899846994546258996417798619065229752070503187364562096789726997124895290452868547375464647910375884182829414165567474943784561161883142771797752131513792369790057854208507972624148954594001486397853773026920101629739611629495423428260813221924458193598693204638846793966612106385169002921537474860741228966721563869470247012242248598584200111442191578139916984210877296927480132523095956961386789007228149814398223489387700926111994129225587231828901932567584367287895341131596119744874452093496140011590203425036969764093385458556404403322169400623211090532858357818391426744727534873655014057081025644482128017453386082381535000264917466607668347308966379146457862449699627132988493807835727708606242681391924352007881811840935762704418081653184947872575948709378308412727007065733371528982066390371623363266978096351864573519479931429902594762875706803414328667364127693727212440130655052376994997261567593156488241315949039727755574971924500123962892647049582709248215707352189294814551580910247873913521908102065888125686713213721913569688766494286789423348820921353146012244190176300600607226822981487153497963213255415842140235397510550609313177516992478326089492876517375294069854037918550724609309565116079403396658397643843901996357607777261408931514964457502786170925719393893438267941155788902867903715529460952520206934183467820740277901027441578395422941170765405072620290891153723540726211383734747089728794005777443506410630806244735699847633102652989759788237632190733421084771146493794185657529643078629642321948339837599193017165299954470139036968240645970201360747015460829528647057164861055734069320861645339072204143930643811898109549488559509556646908175936311970956979096231651142865813270179795077561442291371991431997718374528599442577682620297983674473940081058153748977269240711481171143951979384091341672556668806385682436657301181887199710850790956259033058989427496021358884334194178172215630375106909626956852196199474957765280479431846210388845572531837482008372027366011916615139340919487267555832007374558780743299807999234726025171097554536535852982376190527609184136853821964165918143160675807507423481455862035078307984253241650020110836257894995351760971167303338546482885929764808070695696460324045701018543740614324613493225385629734597552671921146093499060513686327840373942998683904697840546356579344377297743594273605453685865590100452496805856826501847034869844556058329886340613771984097008039989450892781468554826169381150038076007554014453387320863128243817614279700576236549534199103820708525287795085743459090191049505558683791618306877650848325587012391177943231101986716460633624168091873100591378372988672400837984563251925322833800798867444637530432041734031776254232368681273980556069662928806844518430425076473239427063324536334496479353523408278725661500050133658640189239498262778910102013688085852435724946948184366754648729815693105859641095861810976069666287182512782628173877333053197379588271143136392404166742360751478344710391911788636184467922991986458577851178339654059946899818721728109657732094522777688491712608559869181880102539676934051310848796756225318562575941180465820034753253352374522945865790832463661222505080805084358484881066578744274064613214479609329826474357130088603953049088203666623411299537975578755240376129946990105456243261749324139165818866470849963268513058243347851583684467181886858266208983606115774407846594911372365742841450489587280610417546692150404980801101703450565114908558369865041613502126930330089342002308892717432636325302408422890743675139986245598807344986387685787049201424529064712651152662333061978701187867975969486330153458035254689044113455581363068381025912279431276111031158694966792989367273829426709611510414050758979008908927055213213137207104547918857395348778441567042258529130609290326847321271874195700580862180659857625113079923445544395862122963737520772172115588526780108771655438654899066033442732017010326006571212679055269560170463538833404394698419372249460043001791465291611828734334308677402369488156132910446825637458898452071893472723545710530026633504840927707478701045964075225790590003906169496806826506689601199337323722198519390694007219323253387724286752963625276799244750041242970752920493815067174335070537784251239068912510215156493966907216505385501019030307664182002427436695116279500937778886632156961048857730885992659547726241387063175657531976692023521062102951895019111466961129636285941777600455533297367787327370592004325745806206890510490740228730742121225226315662134652127579266091139178476672389132795349058680556115825185318006468899099229485448068323693427554839577177765569557099181821679452713413470974243423672034542584193791166641574496362601510887942275143795238344535990171704816687548678157000745175402560020807061286662713465590887770765642669328677443772951624074333216941289097555668907790492124631342259703930790650850510992150892435682993931018345740170661642033463580350633628336405801476489017538779224351877334258009967389110400882410688675249234154611055222603527142632166132419096652171483964976269500082424303097259464113308925081509023337576899783487594453226973538943392118129691945988578466657753463054425170775429550840938745216253479841586225771057090462724869138669122755183492384534116657549221834152365293142607297600919617097120288103564975391014702316465671569596365986408145151684082144476454203295239178160783083645529015969623116294503033407022995857367237461753926708661325910343013762537722039120734027337816834739595915594270719711510821924067543087552179480557954117495105709455932115838139946253144285154889444048808998240036224749004165295761585331360739905161387753157925487345253163167846078377816696188752623728493108477959122186938993439750158198403514249254236283474489159671391381845330619663270339873936418116850035902785434962918064613279831499497851327212911184140547985477192939239624452329705690886271710261142925941691345853073901634666013940015980508557337831498504810033019933820786442931867919454912435332788164232750111910400963736622297593852557680317539630800188079382672440581555677519818451098127422090747833332702989278339410396179909972032033638899913365664587231028222799498006257331730229340883999676694981842954782324422033446947011484338798323990876158214398693365764468796645907623458507873815455249701322598911144919120193432206315804817511213247855955541805945517227956146085217149296224007627769657707496660924643515065624661634804983558081099597929444413859658802276459323798436326889004097616775105343543545504314541334736587732556039540848169811003316149958973344159283513125205134952131180468914228386151407768833789611681842388608461950514712680827363942310061055566127007722271172279906275420448875688969811473068954668381503982538905773168787173477850306910784453612894957183259439669515513142112778051101788068751926499361525223618343196184108723642727331366943026782131130844770870711129960244130042854153340976636802705333326339063582601616451297889191698228354852212158489062713671126767132585634855775112054206990471643127792338341792491341425961053777452120424182762562570339712987219312101375578701874079219410699052911745853053893961929690378901495159631168349469211744104765541381343918031550329895548725530921317981729882159330861941247018001950283456645162218663686825051651163913522065874476070348667686111806913699586052322664731327105704929296237531932481791298774347981838287150942563688526545398242782485942633474196223429170076423659591608072977122921009649838490395244401883925023535734864602954008619537032962395244255023231345969492060394413594756286665028801806472265755571635223204293517605438920614655421764190259782267587966692765892633803680740892702789877735870240389134945193830005698631996649150893542511449295793241566797836057407719592108845041027074917241132004082873672091833112226472200134537119824432432806601491994302304568004270001609708680910993357075867631070125324172546775879300465140407939059311486691565689846547624605534999624150180290616902815330568793849837997256355565837417321064545609338707414336919590962528282601637433697461868781998680040815618473260089267461513295637317071330186667770374304172203528723384458012278778565475857611465009670484222470526112245278371437714580840801588437702032848942487980196909997204585833842696632650794317622731621773736986626318344042205336399464370176481011898276734978230488234336137503844720007442653845919924991621333514841017304982237769272268126956391923311191735091497863281175354755912214349537432354225449603050907716043103262562840036156096576909837382904550206867430144480417584007120307401602487243739659098853595078757835348294028489918302749368343870367931284386090883534539806757545250612349871883991596586312926678634075621100693693815103357133800960857789811557283029018675402486370160463471101202180535919448594681419344961857099245886996523614810080329998841277772984143397543613672398889619989070973446668152044605071181737667833924151729203279547070209732766696757871921383608656949444311181366909580836773768186734965808451999816478364333606639058657322685576360644582916220222206139435430979452087944340238369199003213463130388844623154991808313363256182941161803462059782145619983514908393271807070514725146548954561772414918661475188872479063038068425059092961974520770482494115626560599553863473000147083248070929163837794876196361996545985643471808044582886490941168561415656701930832894735872934355883065410546270177743786529300090314197087933995996912707856428624821557422881781340148761636944288934797549559931560065352055601608061055819486638958415117294197847786401814027204933211514268863948977556535781508933530861924436505372269928681173696258004552140026737790409232823888065422633340595142541421821072165429045724219774270356330555405658278357843672640899040591608508971331003889691649767980033526779177622196078539354733425277089170241848508872069741003317024250823434029928727036654843750205048095975481391251008178845763023462559912115421691290708756226053153812511089641899069707231984442711112583220786825850601529426344427329011791627262756021663609963382487235956993664540993798603906718640415212260035537139910881630094530300055673328199139011705850107009405556806609607758034272398597571676550243831987409360173537390012765027029327341963964549005589934483020875188669232604443151246714872377312976199517258509770128931964757454127832490172367826644153383905920214144847921285017717203853535894643906572074107236398969438071028738387778708445301700251732464076302879546060475504016547102318299526423623536175829282545025576824355845744503802099627485579347265454379960124681616211227332162959267550569095911412164260214433566935918451447254167102383236464635842021693560068482805093252351585726538866341899679094787925855571808835425410891651430325977978464020374946226406295665012804503281333169727533982431678909641733752137859396930460339934976745895398728399460759661062954498308447331922127387086591522187484213841542258960018742949792856709881812827479565981589981025835572017631312617304908073401666466084325752231050018164076902674370503891533808866527579486538029158395145127015746359415084842482540270228166683095140888086486168554774806804214631414436666472097020560378308408396925417078007593437691220185926159283921888378500699605629374450599614024863390079162947369067729125855528002399228909403114820811635580240359504053873889721929884715847977188188994357090456786329272681238219141256210456176759619801709493937853375153245018031336162576972206724600873740571922924654639912156981349536641186442732785172550320747572799664171359846511884262412142705396191338807858174865121868704333652076828261062753541867154541969444023496705544508185329962030647329850122820879532754230704246430325468495603265573871668652576387694110457245915162312018019784604599158052945988533129527472024422367677461487668986746089807052997946710428398105747744884919942394824730567446361285886353050394067327934741255997560401533641689733027149775711491764708406939242286706342085553030209771069923526583542301405030658577934491578465157600826180370377368975986806226678939735500442090198951917571134982515739084614796779038417065865141830216281767135598943177177287029385648695662841520972232597485917739056972278505289342450638364577878869549583382435098563358458209107171578401552428729547830008723463130844735682663391967784059419449875181254762028630557534001093582968289784440018308502465407218143578542718263392314686187065584826106444668351201531512179089835745165074429949875175005000554526212622301971971626770182049757615906018560617283712231698745109212943410633602560341511596678327192021547131137255904215445109387127962648491215345052681530154115027399230204434784071666648661833062904283138865536557699463906952053757922220790351863856509940509523243256111845082000160835692813231748901137040848856904643434587095382702767820401750030149728460790069536299590826483148735338848152209683381191584001800628292232579523005805461676088709476784191427306154394502331309528515511111058493857705361802722049954274770030503996618255990312514536005976161841189251284612040803216555926723253707680758870671005031643399553871657118209961019679565324694183436376379922073564782280426896915490090273448748183232572753152725017893856609283194670255104951906598481816072976296810070033065081032464568350764343159945625179674292958404484449502366142690522994961877958782383402430143425194669408585570441813043684903395586879724477728365411766696770212312440727994677548293001282776784124642645661760832689120052066688273482518196872692189550559870108538786996479954973302181698373879257588361163343230410488537542838985524960838592458396345133944057549241136871721911631274053136217928769715635933017042131238981822332444079350995168309434272658292455472228520664783806741545852323675291087443820292170765246376473324328667524358771002487686498445724558388570831607513623962679759675636457171146673551154552095881843909733051987075597779679650242271552226810210896640158009289478813118424989490581734713322776770171869832830159379773440310221982722832778721106514721771813558396319406116287135581976967106185642399013938431387893199491146354265524716451239822423758645266707094010237666693058606063253257371441190396097126506043956319571598635924554334453833332795192200114939771875349819837595011729042632058580988662579111353284554382807024106038910592475968800048748699419462492767206479021586100047853227938615469922246579911025114380508103058700671418751894590044369025791450660370276365501304609879825826923384141353602179665692973659504203542311888683979033448541741860690648076698537088953602882070700938960654089628017658673711560393060612182839410201409490056768739512019161087244463756493150974799801338616651699467800063053284450297017591983583973088973490429492977550564817193766414147478973767074028055783619158098921000471407725734490065950067969556119157821771074859957434785857854391205458268510304270312165280108332067666753836052931921786178083288674562010941392022073231877891964910528607569331528428685375197460054885272555668868458130005038384649516952879459736284144845506998776140884794712626997840509951327017994739729129658376122621611661775685883952072508578474462400748911236025364421728777423348450724332340459143087739470632074554930105165849777497461518824074575309991963822484929222352830805798761487095340656233570405155070762465229057059346494416842540003096591259280340661032282347913073629562223948099820165823230470727800550337793223445999506148922867470860561854075036040555925456212112743509978260565706427677187746628869225196421102112442109170836245800461704527630487821951385054341181583189654506710668728593601529224094091698923172567809363752891397521079638219221052096316134136355237957118098969670364877186742857750410158666985351153737446815476077810841048324340713134548873905981942401456718146587498245456811514392728811198472517943119640910258710735769008191745947583970924556914376250350926463320243192863590664963750426095538516271879955652213516985537509098211212737538804388089963354742337338669174380494315760353959199525369169731928315339993742560218721873612712186193754276770427855618643936051241947162496470779737756434828658544167702764287701370796517918143594768298079367861343760513567372776218501948979039762617756931576308453001648894986507155720942693731163260266303595903737900969171644541550114213575666723202175188027448172235749453774339285305100416100583528628838220105137975320631355886698050201656680704723000802442083373141913012045342338709858540434226790270808594659465364165763560417353636731005469584216817625190571463649273412521136181541182060796040292397695080102697429522217520278355920334361602655460635471161648032230854962279587749498775764821925505708403517198452008999615261044430124299577828400431339292568159456437563497928021949968018990768704196600491108287308502868283235071925769302033614408224186882908342071505641558921593633168231570894255748165446286219603170203774999201348269109616087833903608438684748860824327894151708610991096242631164028021427594480810191571733727617067726281695772690093174969147745531268333063752000768438290901480843129499143082581615086233788236473648484029615275909022606741159123584810961338837313930846984556553451761428013247145459911119706267140780231696578501197368354745971745488878336936018626745641520796555667400180102035830025191667527516129820136450057458713878159702187047420955530659196133022864923846420032329922002625719634468661805276660780198078236773028002843179549824519435480080428040170164209293269037922409121012143436139312630441509705739668143597476101162609360863292256392745781212186415783324089029068464940510647555737321397996142178190786517819866927751477191538599509012893911711004402565316040431352300663399019325484253754868152517870808018295534397672199192036461483616253764642965015874945195721913181751746676930874122382743413951568695385161453187367558798835361347227777599038471238808600969770097528894264814397573857526116802349829265758670676967078364068503332144621508019672971371391347312231047140685247116122641769308545001489370810555099680830652871865853700464326557964482671305242137708427748095940764365384526180419594745645994698350258223430027938945446401389473050562756753825927113284246248847332982330823362750233151277056090468927120842452340952166045817094616472247394359196347151077417238689315517752704248006849903822552261386141029030504008754305839746774249415034702381021099883683682562057579045409761856714061173647679357896631602391501099994330309847578684771175110448872775011200346288033988069741537131857289682772284537394794777377662214829889469973460859677897621423160552164856480441912395724220497577974451132765231271947868034901948541370087277918202480177432682828100263764313672880616037553151404783918928972688752149649124062914133888859006696365091430536852629719723895134160346997040982272279717139586249944793142548303242434525964070798196306142167977385472164973334963586495687915668571620833593739589420837112830590308167652097752159130158566572955970402772678247881274234936507621533039692977388612282066214273748909968334176975620030702284907018618328518112353580883696500469713513851742603822650115786413284550655962933986070346779863031353735974656342977976057059704478391011277576288911511788634969937605317293032603851013211302560415531282453588092876157908340874049571668640259645936684744024084497812199877038515460413724250085957656402718560056152139078232637638224679738124224618431121867106895535099771163123618699973587782731407010121583261875523297795130977568307247352481553064960204843055607415615229105233871971690166328951212092056671131477532326187559415690916861217634259910945897421248818154177114447884237225214007822840129894395895005128142389028847024438955791843219333161606215051138677143232100743536249897812361563229117920713760050016702804775211713092957982021073699887045945824416926415927136629083483160622499965267213398010455769126028591011140470641058048390559658111817415182184582841555595068350293675110682927113704474444536229535017167784130391427326151931393663996167550401355458266816273777219940280693440548442857664975102335438871189072741159371731388072220211990776770076201970969255289334280353588003767817431579556072943168536831991501667423339080714005540688786836672003549052065741998001968493637651350188746644333400365229439523297189294825233735646637307972678831739296726354296146366642106508576145660083302032628919161935466352395281474364777906897255452731525181478246680548128170069428804136510197205804502377484234660990768119150556489318259595310415277546814274505659889958910243590316517735375903609075616243291802034345064804096441956862071013459183263529476612594417336387642260565608655563258513695060005295302778899184384056906142617615239202951899028477719291026690338040476713855133705232717013835019772858653396977366400517077793378516606769036025331361521794543334031616401501397323951267385687284122033532018184413343932058923329153810193084789061673227738417789293518394081236895136867815174512258969939602959694514703021851919911234104881017893818618679758840183083198936639876667308104249489327015485775148965602608223309981297372285283158727636059760663167024617858755628464997202205159811780139253268579857324690009695612395364430825377652746457186539719328354123339597644387339861176409605127501827375192116771123865315614454548132902520762359050182115171601605960210300399625231558274359308630018337440766988401927418696749007902664429985102687826012875689758357751555118773468271246152540700945587529195295666279998436811954876012134895965929535533916835091566882643391217341431504427013198563904958038006377298064090798896630888690554360476301410146118726590902374611025992188945101041506040823204286059599837653764525395171940982372084387785867053331455459351688277896686030059081082603765460821140188667760590967995111500294272438581205561755874938663631180323805769174334153140539337772616371351826386308553693659118473802529053116757006960178023175563043452157868594579433231116452266035210318069122435434102806702341176769426434156721328861915026889798689534914544418738690909160001091587733205310231737524535251353032152157541648460228959758840970330314358177263495174842105142746182110553955725710136481861001361714058035805370350612747513840253620043262089708746750314361724744195761430952817743103305697547062227604337073434957947428801664497662479535786067615996519561381083188473649000233688604908529341270398390093367424617003219092250008560578957416186375494391631974926346020775945067797981812685845221682896519969227946656375171622709434833498335381785639178486068094605451869193890290420413762216799964050855134623989773101571875653990090985357639697365096452031397166132877542844559532498361110279948315496274121794939344732088212653688141711229560596674567276341353911302970273514407167679551863155811174213168051299496821369726665270176632410696060277328231873160149305863362435664817933720678463685473362157809468928345104768745881707820549929840721889426824661842992704884246020922195742401504140041601428043914363296605243097675505847080639291574594687737442407926650856882628645586286914702605458534590359085031819577772011852498729434787535186922756655201404083380379460008076308635992956094026116173265895647963998156634774805887111515791854150423146609222726580609720534099441157389235820367425018306434402827849967262127094477481735435743984502528391508474229115419893897600264692605571341146939712977272721762917695413242011506827008343165665177413259931482215494900335734044505825657570668482002142592757229468691064581460305282899201828179994891409155456929832923501260715501995960494241432108071753515581071179717696487494998605971806496070461365396012551732298893192649732822591121181790914069581173709818766875465637383923481344232840429209785691152564596041877089969776437217987675562467557192277312507617552202400332344225883447216078753928876412363024703396110790380522879652068868954710164813748867961305977980611053328770518007206084255690104093743466722806438519313649081690796255242203610319634441205585538566475239128286066285421059593310386825953706946466197253004456143543706602490111494992953176615378492233669661004265319094559477167181141546617614126468431939198395036812732328816828352866681051694540637658237757150907681587051686336910950732741030754323443498702745362849420721638189576713635755134405055770451372007660736866714413048739131652027717218517169875584474447040626814158761316179629710302988957123615592313017495302974498925960845175797713781387696667472746906558904429566217949240916258517036695603604376114405325400497482756741691835281974229123424537320160655736706624830468663673326890774986482780694405642354652899072254398394645034986257703683740372641972867960216170761091695436399221832753281741884195389340619879959213050100269403986946761795701633369919199094557993710034226302233176846747209251109269029601533785976534231475112768678247984211760090718234964914347321567861995422820201115003183965452598722333116199506678447152132990482268821151411229325881064767586341199395586704553643416351775485330450934248006013799164937460859202216079360899611371662618218073364261378872426191035576012726140991346529706505305995325938310507476782770005516720164978252241984732719179167978971055284139288678355407243579252795496339953556648736223805921666260578188944595394056717636028571308693139848176605062075553036191475597621206192825128414559856947215623154712082472977713205536569590917040053857285864185798186045345876351619412275351738046178886883262586265006753286075408240792266266005266884447700071600769655801202691962416661910756688898145363473737189496465667404446176826648961711717577885379545138735458848721978291025142248401528240559541909734711464071984303602286108692600523409419109201187578932981451778197880351393186702255144010036643853658144424710004326473884793764584262663998597264364651884551795931874772974082973093751860945424855359218582037024042388537156237510495638677529113232977493992106285184316431250317386155602077480885851479908993392210659947226119370107646582819733103085987037887273294436860194752026364722523319934441824391458377387342589867589958848598207859797261063163716270533484484126638370005011456259281092221904546629911721688994028458668710336292366448870196302874186569443027219490396566733399013060030615740274786249123819341306281459605184877578999954251080084002421917368011175022177905348423490838047253038799324703700375200681257537307794229872080675594035562788092571417322680248481198411072986615884607238999154724923352004885072434082983799057023216144723227746436992126170615728339871264007766524646708563471882264290719509482248325352488038563867215810104920255277925149375416741429937873421220070094738783229449207711066594600098533695749006061916820784392184764432568106843654722153116079919701614465444823052661578214106926186229879837053025611215811273530500206821004613393203103945287641305584277576660363258835334797326225705872704325563924497832340528938413080697187307400121210580100886051881076384820282464448070797130426441481681016606920219021227208056533875249734090114826875080786457442750965062765246841040223472768398109637782282355101421390518074992776796710353660099805755190956579178767614642001238411820117918304699444571929087388294756935485767018325460676324729207475712865591347188738066737505217225083893444069739777398785131432583189487015095745261553436183180895739621316144022364518561486528440875321307542655751519780513489975999551169671735115734153780162164200297245210384393855375824372798723766888828595852869423791172970383815707052626295392149545510028435690211041311259580379937161558938571833420972435468086090660278539211115122768964069195601949104651033728122899501015404210962180525979610740984469992462581527147007693773225833363154028163758793973188190004399437840459292783171744820996309130529296771700689159520404225061490168636563015104766752828995616859795747163742154786531490841868061071508119819191243215146807625984743678439965919622830311728362795937759880591623041136265562568177157583183716890653224236347193965297956393489867020037486533988635438441851823412225904777582192568009781435517358773903941462112431162335306009050600479441210879140672334405091175929518734703930733027284177743297880990842920324535901936776825081066896178033906300800657458141727456433416578177722824155312791543106569581038975858413057144573010466711997919616684185851446203384642789268364485957037899832849496523521046916128394790875229588083419974556852923761152472135999077332966046186250619617011291535530218205012080337499749036893186392062137053737767755002447592234329699684355649872912458804123699164161566841555380921710598286406472282714690129465195528171227641825666768660164844010608898412764727191594248688203203907676868672390585125531679220441631401257523669004857493869107851073394097791980417179453514655549415238386345210340903135048173027066509689121130787197656199548692715504222920029018930294885105759805663992596654991499419881449734690330828378016997400778698348709207768257265037648644821288475365679753569516861211758421071021322876653124323567405981152506940499774014422582649680478526053714177257606738740536820578666314898788293925825399043901870185633654319124374387124538533166491379790633809886677256619230331000745669512250370120447678954723881304873774676511038391081868876870430514104596760977332837434978099911064901366629117708958978569013413001312638673389133339852765207173564095960457052088141314005582353881304340936253987880937639153919371979087261572150146297086182133769852295591175242393701741459110579620094593526299468739934400357943015891327540747913556556261895959445824723969823496133370652852232572734905539472107600876933637133867822107146476433766216466335396496257087828434847768897375093432248285354661108420067369166557668691744774947762346437550798693657001258364474242074267982520537077453982076990158950455398217792795477266650171420037649229330787078258468943435634367044001222120513291698424241243498924341491312812467806372946231653630683609718880353729744709192861677559038825434086935493230917753281079457858239030391980850887935371305112243503666006819607664777198753618049184590557127723317757497085723289545966547481030316035794803966095997618528026455496018367516108380134240870138239211407388272476790260788110080317861085693057237526698846926818942774467341713720761438310164416953705229173739200899567246613002479466847808127958917835777045711162770315396762613773811119425536228542848106696119909798949242546107475125129524672154307303645653810499697124355946076259491393724897795201317004518946664100600239055971621022597569882631577281962706634083484328255280213506683886194444283873768036247909849179683076321232373269567775029892321232294706880274907787954866549551660860777017220437412225765644297959273318814681850563739183579853331568636138997723106630264176534590284922569670702253058242974253200754655609214639251157998876122667693875458929144104372372672222046647049277872249503772811266545408318931492942269240228037650082593884767716195408347746988314630785699139443979299271785246608227288793049625981238135034016100493428735828814337870107540379351273688888763770723217100465810692655081257122892291996310797623051375563775784491897049665471535587374096556472233680109084646022842618559598781747585291778181417675160679360417480137515212482640111979572607680403818221752866915944239553609680368143088741024292389114982418287521503269180575119055589333862167331505824643724943395997095138831873733875614963850031976906961861981056975076966417205728233525484929467524330747236592226231468075681391145205815858774306719143687119791041642374877007043914281017086687408438482942575802277815417192571460967970444294599309195416136709835337999083346777129346378969634864002773662283712204791716110184078042584440914317275343228943145010089371801875609910893298187701617713463661701935835877822116523878380519275549675686730668928072596647244362112643035666439310857382786956213421083050454915192058793174226761606235503822846806808209032050404382415616618506431271278819665571507912145869760910307974069277469332824406227848611130103465031680435418117511780156134326695439486080383070801314569714923369406600308201829114303990419528941507420421470026159520911765689579509178765326170555208538492662773517231006560271750350692805961181545457591227076596319537447196549359375338162159565550290562772904538449506779844935993908671074279123968087338288551288335185447017739051117824328268461626649830110917611776639380999269167473866903335989150724747820770986095250219995965195759858746760309854145775206514408811313023506835731946987187496769788928003061729136602896483439434295830368243153546746292507371424906856701568837026137961192738225125943315414408440005685636707080768049172462688099653488608322159672546459279486589867409349151803027551436450081373036139252539053738624382651328329054155583053041221728795088010880596785393997407188585169835660807265654747426492711833135169029886700095803736811548878036545588474788784969297550782602837846811592610702339676954079565258583725441413722539322570376631602726424603532195059852960344137957570641531085443669839836002603335432098185579604892824735712468070875243749894297395521300280687429801697824657380346897973615483533192136185988849388006026160965686089510820713719970327634800811777906769315384464513891166015879016686500167802779289063422977497020904449594899066910747751694542274501725077404909966117110988034316923768609521880072971148733377718349804531510971287416678678894181554974603148952496993742478911169696851341803209099985033677252166190701254243052109488444855752045317004290717700745104844448085454449138220342393137910528508643152205816736944269566564318911860397401941098596695085414316931647021917844747843898846643878930040186363249235429300855626132475384796979581633802723311116622883452253363253281108960310927875618076110312514083169716861016062241107355912507407145614695087306463533170081524403721119989709280186052378604932355425512408903922549897439399019949311443083019161590321858260682598825133100997877551473367515295515581997227365030223951692451143073596365151679071349117644619870118492392046018062984652505311491539195719809006478704467693131306946811366979976719575629035007129140026362851127884682083099762997130502373902681721719711882399958872783824948684598175034578619441105972713604419568055227005073020458605768106258110244985590823429929127180550615934360049556423210017892042188056388662117110880072737161022861984035355862585386052499439879897210553576105204694996824991485496406450870003560957795242747167590955063941034740266518991413076492673138679691655564534059823086714122809412810299837786291887541792721638045389129519545016707041996783681674642965259248138342082989327111611593898847331504075799030419767333903122223002604111753293289749149938670906445092878298245232059853105170025561668417806776461381377969634340471913925017239704430099525980595207447811568359171266748692040066732612791723093740416648663537511913707667736152879665362523957788734369908423197063330811560544287955013110741588245112865752843920522796695089301622530565077659240277954626617240071886168178807241307330175688624192484719500220564022151365394505317033318862821746130618496419711964458073974811401643857356875701337741057019451114043697329761207236107444096041637625331164153984945767412328515421768955165962596145010133480743784284322248075770928007004163805665835389805674098790427090953617599073968126176109194022063777557894925874545129458193642356647412703781328388857013079830630276419999256966252719744384717054219533258343992662631835690817920667532530408261708539021208785115408020802024318640915077423584752691731438772604116114801141334236137105714072879584666270076262788389542828149081995086264532818248753291904628927053900918705108632011780120209149683266850048861890606924369971548184722836692270709598228889215992325064810861392251801339335147813604765715452503938565141310364588585807411085096470458074845734430964603912200599024747889235324896227523399281216232922751159099454034257651710349669106231461029881496909880341997170706810336759459845725353551722133100937901219319538394719509194213055140954240540193134930371621454780773911732554255053922431442054369449712668670334212070229280077059275995817819620926771056313704597139903323462100007472972118472940862459149264300046690679030991471751033611277764636406422843751949930398144509998027485794528041632158629141817632988054536843899997618956492194065183141131143113905382592493887101473890758584945507627647774785645078363455265127742844797992285307949444592525903293970246354761966242284506571412301982072245875899314121560373393415696482873038072644901511162194639043276268702406454420913291090107817928994376735551418847318705888742226798742639202448037542037509290280509302329012519435254378566924240207852254342588946587051108134721319142646297023821281052234840562225844957836985209367813615138206962513714823010813514617004640877741302247155937572022901256031068477005677614073111898654970612719844622386773529940908005032236365869612981699821781764013523647507555273625685391095063352002449610426631846577960121685075099895418840339103329186133984770025963518826877524716550096826945889247945771004524483168867688530942015262995370271791805186149179809321009858840721971324547100671933749088534645267632671390020499107490232146205568277270417633469308974074109991838130259531149417823103572122933103037054863986784176005213652505870576673081974768771581257253361760632942655998674298544502102244066486263049068205142789817915968029431541674419646660163226338727202026819916787652593310614076853536320493145270443654308725611088778851787868448816264421840052635235526292258899638660000595540295132044507508492173230434269237809765018393529627254464010384970647554156863230258000561532014748011131344572046840491196650300030911587413788821028076642010856876182293451920947061287553682570933840512220926902518180146069182376572311535694525911961979309120392614260300434510836428770116738850711840389030134892686524890647631551566894355558379241836838264897461032674704090043789542688361055095063022887745163208771012364569278772661887096826817391125199507354624263906208854369608476883819120459326842962598030425165940842665608300499071345392619635161190520239005094021959511491133648636946993597388188186593653579349980951066725660145885943192158122710918880107797844555412646189686563697120001198852180858962338229864905018537355037731926449073291991459882604986869818740437039330708970253352931081201783320454859213356863431633122645566160740430435682288510260108167623325296265983777992232668443251153639043568745922541583830767455741192827460623255492693424200477097821144526561864369391422698851041657967636485683979985161531457252218683818600121351433838581700069946969048455616080339847647902158806792195580467010206233493148071122384734526081092700468935763331613478099242869408718282270854555452670685538383008047266418805604571478744578521394376020191097079398251642799095696076237241990197328528561761533149312011337744544738643644344494596522450044648253027397658311139429674420072523715143686897441633028741307051555764352972889733768149457390979261014790676849602705487892423864944022122854805512092760801725784988238757903927764890568834126858543360867521026856267269930357431076296638776570595337994238530870186599963680768707698581914997312164461673434206499690705446949138954383395843918012771355338407139764092795908082030178952833096210425111910107732556604510487019993450352321969304778759974425481627494390714342151481638338125535866586826415440431283864324551365515335020706794243503148426798141663934077593295045916299261916520863808277957856533748946888934692450997254311423691852344747354302143069071802490620469623334494055287351962192821740819890167931881159833530218565013281943311149782289999986110653979037272014794761563555349006527226223622042551118339815027240216968656699979077398984330703626039679839285882927337722946511667492972979479808298590016846851944437353267241749275935898519691501431831320832759357395684486858587780666682349551195028688835480440467641435376425588768499796871803345971355062419727789037476621918105869223662896240970452072643848886438753170461431000877249705916724446092921332039274629890491232801031415335526055592501651751516530085511749388009354653108979231983060391322535224057563447716397069807934261472476460529301241961139866353287561847784649599953008116671413182238712911020063698764773463389498690073562209971035769592665240382839711050083482616046666395771256886314641395245652464041052852696326597347783919687894112436215657232751951095835454774974467529175048403516129284284691356259471602088626711280687182791380434382325101147270572626353624458875944114040478158842379353529275615647083226668326259311557469670942868507916107932532385385446371772736607761234840492561239597258575484849909940514913930461683412173288714795226932003459462561256827540565944685947699942901340433549524908352707854699273234470678963390430220326973345195635712642597104483493062206042960873804018002397162650616658505961244055063863335093615950881747254308417762974483132392102581540199758612653697242093736662301834547925361194520532031279758406066934622232558009884256101028228009937025521339564860425529532477439801685851654477269374138075013811131916015007750249651923288279224745285229059451130261584919242029537015434083762993350048066402974182126624226374153663672005303395924026219455566101386368986201771177883005170462784095437616016911830229816355871909927145379916551647320248727061452159698157108815977951663905948657369987335938651474792760540807464314722241558110191844012623525676135826584412620773674411337328864558011469444000837927298209977691679793371283267860070644918478042573488543848435374429502882899486894123382349103586095129486145404325481200186275174384001505622888592786802788287155104465313938084719385155548701730544886942357025191812027096628132028221528919436892530156879694275691529988329897487618618278910945283999088356723101501308872076063870304917222136491113567851118739836326403055454532353297832464196476374287133784606156131191208378509537530753988849451229509380777592304538584780829716439243184726889014660145588781747449533257578694852476751908088057717477261327699858691264135336736269603810710667891414009848096784147609974714552989568112377383319797245134376546668558405985488958220570980809734398172744345390023355584244243274383622535444033354408683100406192285950584159867576271871300817864353811240633644479591240812296428568297391106985629824207629692786917175349744912798522368834819500659989617858767796202630196913878428270587497324571281569731353527730621992721266104728971144465073455020839467078486256364916854080611097427570608901030806367939172137188549968180833240970782282306234113578061446584056916191661017993795196970171447843545557952502394463295668599116260637943590076462884398376429143655137090364568141196210668191701138547958350395053604937374481229447189564490302599366248962208144910445751454066853583666419273855001738407422864055031020629581480136061366387467158415308041507489112268842685694721627900441017886400347814640395402046156014626584471114022246194842572393246109808556506967758604062010816034942506148587019348359048846059429584891116787562163743662670339865027330162810952076157791788888848586400262866993511245273195994628847761718264656189120654217433746866235161768152388626389575196776552099255276583403179996564613540411623973746524712895324043822623744718674158525069885204862005190772183750575319100440593198481988244819791617995632038312040992761230253538270217499919125071103409138152638291578594242615848793835568309786740501631462963122657578280617667330324420542290286576320755744349863375089454904152615922662220479849385054551490276764488826420246242420105574260162255094011120740880075749001132682886499653744131104906865806631198723422427545624510702956789611448807874688660127571647302482181353676553562013816112359950730867181442277109323691091128103357454065713010669500612962793255850396942009986979280280296901374666884608044118262215039826028242526428462674217988620714587001031385854017028318325632951022560478391488039977071963237126306283043452168966992558453877225471707348382824251604292106392686006865936138398092013724544804693699631860802055884146060247552171935674928515903343532349511512270242064866413308438458463185919076380069507213957984788774780262549774186875880225455795285271499616384397024051573743282641927463241419492829126413812784532989234867835897861369070040786722146247518987915390272489619223529179512448559040345060087290690177495347551015086646472160706390902160272454789303025499415523483648854461170529848300731659521912736728108690201345767740428341514154319598385175321728967157768443358820890234465806982706809776377197381325405324748591708958763051968304327363376180588092385680270248079534866832782348995072435469387401779005195974572934725036440656576748241781933096259249273607852321242289528650221693795196082909103027163303105389932150315501862664114267063683762760950792983398108723301186426999024465905509963185675016697061610819504079224194623975888878750190917474882485361073936147709545219521869002365287342818924201580986976937820223035953748806038892938870509363498034085487896827478114063110629677685979363695687013472940637227010042678701201797374059010703749934334129290133390965883619306680168412346535365325208128336780575960791230110418048052348274651903705862769841151189273241693874692205840654633737679512094488415443937767785781883482096486936257595763381060509785192828864783637826291896855650852923100995489761340629836783669802411530646285733776022828625074872810933405805353755608878915266812155932629214128034127210288749719231986755877892107138664947059160960017582161575321365197786717963213337624508190987804689357265368352335564884604022527923567593419740106088301708391926905673690083125643663646543409766852772994644493729485611745981563450769743223767950727932891444776206121891227059088753689794982546662555242493564416011208624462730787151565147568743366634515159208911177163420937573457075366511321135057409396495940896441362059816305494064549972185055435475962779540758732411855548802005184473603271555251331667374556504599558082192254605733090382817109745384152516478075481853827609224395830826837488746556751628809273354057346378821171079799717594955814948673376654207709511294983436781323601541374632401428424205861186999894615456464535584269725640922184012228810221143979727598824887526686511035823584609534778339038953078624919232124848409131607498691621321662253498183375046275106584466092198326490987374837897000791169275901725277061847041646326463999809450229189125397458332208899275088220960155850020487501114450975770991836970462295343341647386421675704491583571900856268565086591299084980048079172576153117647508392273429492993687901371415848982248487545010542271353354790857737281835566158797172109266110910999354389938547000463922600694306364816970211222737640925381947149046685792073542867834727217464197025975430714026197825007419276097001186598046255099413301310354026886787611233459800019841197919421420007659253197126341425374461135152436990319517107264838581876407623886475004756574311036541655002715241496987652850084265468264612441939189948263013328421351272310328001077781225921791680963774877345078233629220367473783045041809724981804199568469809255599320091183223812226164513227702128666639758627948094149541138556121344070934237838241188619353247850346500903969527816097590532414942173006191607532742019068498996966882918509571478175166160229900265651923161713918309201557934484866117647218624344081221736681491407705818950769113677707465284158933494936466952618607078470524047186437328557878455406335991088703484842377300746992450710633144377728457142836957597844658471722336094277447397537711455875800382732932806105568738070910586036757990099003223052440384615557568759364264149953137150888106445099824311048048516035247891358922513692506815596837264809384878771728462420443802876892166416857348330105352679384580655428775548851770930878327020842066159650141623531844788022883276923569385255847579082086586655347966119011385183069732917832962277928353822347032525690489532352695768043869297732510488832693090844301724777876624953742505075754852026495870697330734565088557022232629775433866064131767361103059678437719558946850867791552532429317569287800281837772060357995985696861807649220386473042943672703713545794069713274729487195574481173192828979084666043739739157199436989006091257729432649797298097650658802194299125934243684582021106020476698259445923565076660528293334144857627777291774373806115476060678968495449817565186521546751394975240906702869897159570516832550727121516182318246138154091505832550774474765778353764325079438450902871761291805243829481344186377986802845121624408912175078262263183707503628371907010086004257315739026773579563083179799012490549115608104409837315203294671779763817244566833860495397813993362022719311475375789366518396639870590108651979450794373814526247836021230507712410743690728873179706129944811725094449700555833081480072923622986522121661833353385790654057897423025379269017265366571800114621703691818109149227889665311587536059980917747221380118528463111238747031926730749740041547083667434466569997588611609500396732070301542806808782695068909983207135183395264438450254868542934117078400854857333744190450326989695482853117830458373263261181367812478436379700390322904054110965990620958930551239232454265548924306690537614524089066552252129020636863759015510129159613327429990977660943163209094544823613134154151739867772317928183477042139384808216625619321677433044443267137129992440494194772200374002241542966477897072647455690303869355227804119254997226511928903127130049844189300296306814216799588757505596185468208275653588679988082799921651046111301362298977545174054343233777179389210346680013115220799324111971400683345873297118046082346622025247814688468742265337150335814330291641631406839113491354267612928711827419706037585120785429253298022819243854696570066660671712086055752873633924339861960776673888674440558772337907218236520460128919834662886832007863096435345210074211203434552649482713681628445245663986535827455140666317881877609784353920318648258039349651351988145758451312211595586827561850517333906243514436224317639931652316209515366747702921366566346540225486542378303425983428796341816348849015368994215832784938168875551460963064411951170638229704295406678404711809429239353964639994599100000372825844200904982841093599856530951249784008988506219445073040893558874431103460877498841053679014227019739818826293165525989245660580977630301431416145966947721194106608000200808812929684381841725713746684266341266664310917998398035953380381680209935929051592889637307661192549203629643807594696513466617238073395313481890992309686570266892302248903218318178731465286611746061219491079135494531351445776382207958540124288393980357577829531018444904091424270706703885665450855503176712697524862081519158024025764481596544265556630349498984039419870689660314944644936927419849252496040941036845923044673348395532360283307668135748398790195347279251821781797358615579592741494338578452638140568475761283153019059343353773370544319358872747740988636583293549176498587584341564336890237746509769885140122901676347234853416428479582474796825369883206720608469457100005122608973093083775980142371123422628909178212031073678344562523065930912704760525937954728037474446409104564442543572413531272189453640355625666385373931347608980084150718801309404882505372362690227997915143614328954041352606038088332216510796333440393535934470206700166016727114437839910050004433089347057776918600674392599501372032761735060649433454752900188888446260882961600141474172999715616295656493855622224792371489163504810027459007895715259219000325769691931028694044781717674972827481403744330490948321398679316788807042655847128920378730323469733316234586674826896813493827496178197744188939257798456596246841031128434840032825950569962552297697136291063810564377965239490303528032285573787605014017954791920996171987734308677371618421345248501956834053350251768850677219445674165263031812872829275663764229772999346752803795090722312399323994686305279588690023176943429788691010674344090985601703332339571334325500537259256283576569910223128745719958711627257650244625930099655241196574476200492570334529096995926000142158519482010438310355540707623145815399031148820314072448048651014980666194185249703810659156815430231692330027608178509518380908056489040338555792569054197974377806273317193073996583500965763384049316710893943802991380771453562796233695467888888763396785988740038713747230816369847031642231581981993952504753226404583184185634860834680494762306194252428982389214579785637945129070719340226124723467450173653603215373799669192021591244707946570006696033908721053914649210314671167747001302526589309236241494605979710371879311527469647168655411074661964001031997834568505231812881760378259910489753157945527247428144596120582587186641903061144074545026620973665697404521206368444493918411703568501912701955403936250976378473231267030737207072610832658773814787913208698304563393180100528822694809633779109766450490974135486882289804295967804363786676127896766707474301336856954824034887478658801974796212511766721412306759403211805267436367467266060110267699419058027337891881300481068116519732705993622796180505883286755547754038479528320536775732271693363045351151845142946871299320485925222412341866985934104259419698704480053657052482045510408541887611241239262419925569279102657022885222250116128007755412530995700000825095014670153734988977084099060315615958924721658336141978802511082105663393218662153509347482291314878720200777585514667602416543726836885113900880487742156764626897918718636094305591203475491046093751062162684562882257120622425699594478190632033983174163676868494875944755368373034351512726866780021833536361646911168095302322674207423316772120384902630770429960785357215789453146987427804893592652051891663411512003906251084479229947367117535975923649960261403137499745760880934213490170945013392243795978885583387944065331018028074557379608838416723302486728544547576623733504031370760776097517695288433750459560074939438919592324988166789739366007284128385504591872700991849858548395252990760439667163349008686749700916189378093266572968573430191620809399474031543386541614334500495737227258732944927664209332411189962990622212020745757744925936201603913322359954343555196633914179672107038663762607446542189934324490153789439519798903704571934018252364323244207585832082140605839484078018077955631101023964518727579990129223728427017790072746485991671184985415739274160041600222645104282496313930575889297762405788909894042291785128624207142508920970615503138967429130877095167938735009619365672212103839506709184285468928437733818684116186608820140910260078622400899041308526509891720524629364806247271394163543924089400445747304753438123289026137945193361300542160365924207042964203023587037535408709853977464191923055533365099540432398512723094809745763757665596319243455003149958118664850746345154617312813365282017034595371820101133983398803749715291746804819956363973132904259004459015076379503998254136491310780666105944927677882838384978235073368853186639659236707360312846362087992226775769454204905044252990191040019156906577845399916488810709616804991007252180307839950551687353877060055925241422414682604910625526484074983506931385384721851288522633347242010408450637136041361727183554489474456517796768187419081642365329708609664207608763184205802114607043149095776892881445517485193288100696156475221455334747784444440842059976645706614812436148815370381400449473213641532154291226061113671247561684586698391202404673468062586766039627968904047723563951020714808214054281226209025828949585141159739569224293424777287078421694617762552604524940379508293774411225990903189698142417941323029156847714931846166343500016665937364494224346473029865302284220202410715706624690626842691873243613687397139460956570389129566030089472132694076359645304068320147066508576282583061520774031797521259884871900758040376545511528742746026843703777092867421519279942464490802959628900129102597634376284952195315720857117333933005497812547643060549446061196117177387849371650150829651305769117887965368817929486140289185260392820143445031951858496744498047363267969614413811940946247870428692388347382717140887478122970692387146486492081123034666271037008390093042623902144035160405394036138829727546639642198161133137464546795272921608761207166835053753434583251473140502878660441237623557914804525605048278496322336195318291108060289575287755409809677139730619740867107369015581305190772041351006370125462463065047812141615593857664540265290032600891386532612742375725310784603023658384728358394480350816409963001270350230393108942374113277847779362095359796619587435732591240296381707419443302122071199973915554382738402775117810283105269334050788604483045007841187594876986429538160651841808372375927748061704672649185177542609491496693029518933519678730590639924818830192892771066919954687253388985198735205092578680063861689933058469486315714668153141073472322809522577403742007515884012141203106477512013570109318165421987833467962828669393437420270672312377902042416478439224462514409932136173581478655447965554792712111027550082623381040459462957871671691919240261385863621699109006292802890519381746348520845894769966833117749232742031180452750603455431564457566863350344703248668668194726216691550467186485045553024755176136295065454543393873295366419994883036848967345814102767866276136207236032050798512818330147481318820578301402951469867367115834551353846469090843794615811459826992223124809175749090237506728086430552466310813731642983666675267134760581260770728458420049715530320738911141768067455054136222076041903354630500889677827077452724014520205795994946923748821179310094701409904736965491259808323185296598876954477750194869854678546887275340609883641958419667302428571312114272357517452601960348867239890355212512376691647226524482142500301459829398220768615372182777815489190859136383825034711356827538169124286551820588048575915411646416786110095335609424804098272614414464813413921964152678648195019007241729004500030815428425284586784363576667522629308764626937494453813325773838631483701547948572974966183266652079421355320498822609144579813089713960653351056753850409647928592282832985714960851887692809831786171545257887163620967375795241415421603039999631017528766639168385773810210261570613993134367940555697301912380287404421475899930726613923125176328091112417865784072702848148639385427084297096813427386949870873957033458224456757040391593610234949043900243139346762231489936370013113165995363689026587744944111310104711032364180287982446483767762296831275793489975869690554617608419413879460699502868479539220377735432908452372879702267670177075839641176540238326298839652843363039459781109295392296681273412787779022678518480278287850057823087412792255704813726746728852849496825239838058755310402143249905106069583908200485658173198433974447995829848759012906508529602841378291007016954615050046667111472298617025964118273965351557047386282717456502057112076840171498591065933912189795084008682326703134870584383127368942252984552689250325694399150353119641697601769835020630772497820659879209625886051980767152302232742732495792331478020054621404666767957625889060504003257996403836239455607901290108028805455739487975028067019040093021187080445465193226074940453084451669561316540570207313185975338439083280504115897688456011757455330712688431508520567727162268800623082311601211773724395034833883356710104560639756521594819995104667507950745660771516798086240169493449312430972450533718481976936885254982943145139274796387695231236328841503846309225243314534719758297864589333134011612651727044610734443711857523006123486614615172974556647197989965601745545205571218648728425631414830188288023200841528361624585137451226414769612375135309723464790453727854924532490101024669248528022233548415912006732563640898456486307551328183220372062432988858652807488397892847845161175456295759730798415504737853797479399667772889538612816011311679285283742194640093062257848610274112219023855804133798220380256851007025797100233130629531559723283386185094066495565095351869974198745900964420105285069440056836919342070216582069088485880003446894912590651213396122760065430744055122634674196532398870556348355331306290196010117905020660155244412069065731403183667000875477938617650071116036734440266100495468659934419969794835570955043079827506445517216407876134675048977176335113595995719446323181381321138990229893996839033529673212176940530012163318326377720405674338779416083670407874730932572421772956241619169122162421815263964849786968573496148597394538299492726659486172697858069518099912679124723715977907865198449495779625882289843365152644832246038946326723968484415352622742834736465901639837107938057957477686611761756744658235703414135981921855203358646308906696881251176096846846962304019981064071531462526183259994994225128197793477494688716318134866147184061764608701784941626424808557574185421629668479340847387242915713932164783660100237685187298977659847382768062290027383044907033975870941928709113991420640474616923165923714241021454870983276900392599315584469274678476484526264853110385837857310681673040506958236118567126747802221641800099179622708253443119187239250353402492612026444591224013839626198451800231833034526211203583610840498225852113914623875618599446616002392138178261132804999367830354156984353058326363745105755368579517775253496308174986968077509491107055301829131393960258703898251710329424188297066739566419720825270305656830284147190202464331722756551504925312026581350289492588089512013896680938036015092218382624228907371437522411076660701997608939307781714983389112865969854008127353631619051040046363324723869933425978787291173454272749482827311847882963673008631680347624732278650667781184192314830214574718692498834605799758319660371983211993274587205640964929744766822617013127156783575995725620818896208400573550776336760155100660161800953530019157972253800806052738303303919462729180854421402235957670044164782443452377508991791006083698899394873619307280365600918189452393761999857919960097943076967993650292681028273518196077157193405320673222925795408170850324223363106671545810005504854072590292631849219988341043383718900568551098832225575526660000779998557730768133662843920935196471352561991503432067631599494434534096028260087990163154734219183664882388768056405150967365329770218523381218762292291386749557830490581528469001231329663435921889661018222105445694610962478942711704563532433138846408031786499763446129239361091419903083917282690369822372299639853748787782642716925932668161229275768730330456088354678202907173637659460308564783814448145056574071470425153181105053866741484477225656489470236061574401930872663282671521500053575740917279889293789565552760226986960741515042648700759642134324035856206547912130409224151355197561885249326702227370004801066450828740913768323019801531379488563072149095249050139641394004155508862343825565219260836203617650230299729748992454800947054971869804702796716245705132407369031013606192620862576585191225971392577349492979165718473362165593575822403242085837205187947262785762907107811383805227571552703624147587737283632526929013024105886657509505061716206138187218369587478923892118930845795820646723520366040324779094313043824668493867911504037953051038319577390329888408370977642641966925024383722554352135595832586486172981040045208380496139340707836552817900492412266144861889439968806548590702501385869212080409182922220486825410562336072070518782321755560065938569075637684317412813248717472215834516841238774465756197423649891313232693677684573615759311912561265162093563903487525301581082516010847764648647602304869485605598182420469986428697157449656245357276632059370790835346167458324481054438934624273162168320630660707544867309415577396058806447207085256417502900098474384679898570830975430576362412963428298460154008263332251436035465812880129030083086054124265901388288338497137926532140447259771642297139087061877175034094033488147944752094094664380587061494368727378964438996819632072348674774665795440736075002133942434380508566280292930986056425165128289211985808696834996549951757006920039455797030636603057683868672184338784143982407714170370734817768371175251477611348639892170236216323474526624262521235569230691538201642738333170299555861023848834367281503047923724146189456439044193316119769868960357375536217322247871053263796111632182167981560138271195156947141215503442750732283175388246840572722599335672853422821005083924655177362666995146506735841846516514512426170314989387740250882709831148338062141515266310131128436052056942389071874370922574843720697673316186078199588040918580439978741453609507158177435237553416021050746431907656717717845408327462402441433716317880805762471169181492280481789249592626084779467662461717499842776907350216954374412030088989394872349552472866600709634536320041097341392189875775714037850617446930056708606349095219756129543506302295714455692262061589012835344462288954250858950700397768877054494073847327051452608797253520297805575787080216523357189515944279806994226605186046161795267260647003483173299808175027388950968478509841398671298227073124256550715909393126071753011893722276247105614736971356039051271254876946284861463527226740486697072222343284865606219157847012823956755420422665655288093501343365824586582535172493742854227388719792453615243770499205246033230218392689477191853333616928474407998762170323438069283522956239197760117438097014368057081447455959626269522156735233781454947395833275890922367297143552911392337282668687556873168331797910956733387965978204980224662902639933224583668255641683131684728966208705687537867467128500392036847093563456611960709930175556338773093655822881821377098103443906786287564880274547886288929195974417440669097463034755408513713432994869142566347316306031705781984462068119487279713261777290993414849666726863850866250113280278778257706285882256766578895084347082080749826831936284970602311178946725520389328118437261084249250951805085755488423665308881167244297439973359558831890918422896640402096257594298516730736829088107244105042805265761321331577272660484710956261674406191527478384584955449157529265932228598889754000357730741343209692767218088687634537413721132936930368577524359273295840587310504839590232020814550205098483234939026026826322745525534308971778112027604930525887827996537669898572859074764226228447591796403507797372473408532226827429135072264028885642095872708621440305095581499338916441660759234793929658904114933313586770546081734691527046884418532680249331579584888504790484326862630491397873519716680111418413275634077463067183512420489205200456813026601390371272752546978685812009593620713899224941537709167664708140176164546290432773633520095317746434128435569103614124069631312788320151153166368478940891509343060948917136720400032410724573691552784628587642418790460836078937298460667004510616887021750233032497278026376364644054594578889345648713125184766033536295652700161920260114035046213604212420401870902319412991975744818956337945798317643752380512535520500116553271071524698078211581481545199614170011116959012935569349086693381418777412398347581850654550850930524161427256443642617269133228838512731514901165416126194730273681699276066249319126721086959012772577926705883526474554569537883674591718068235538920483585170177443407365159641591251955566084472116211734647068278494560667238057752938343288784240123419312885341044864833101971089561426393526201868433547455831283093959407301868550423152227751576843041274313299262145560138398338560182791871775554474398682735647593037248494150387620484063278302262942730277597775322542370018047484006954241850094820882877734055107499042729379649614914396885670116385261336299257837744569751254047460264051370762189741518730158145568119461287257742508859520908220568183138197981820494793867755963869878792891425329850029804495005371843628114261903576307637010762564994748213008584237508977014618350179832762437695591761795076030268744956869194861648686894709147317538620632262575745408793940291590102968629624011065762417972272312310747635799890796676939629525579949900617355124072233261288930228849482647454897102282959220310258729700046607059717126099439371251045416539137368673626124795278977212565865957554409166757072072770367664587200296889823307329289986350259684333649098630421721388285284035410537400692136533792496047692084879817583382275144023920891867134991077716683640671632410754698124110982020156327736086052884997028853740581416138844142556942625116708550163905752075836927156812877707975510941622220612156571962839605931426977832142824397287838384607358758586556303388734947284203809188357461078962930252366822814753317913625476292456038791843584278128632765015094984805477792902664298551184089484909186192901453119868513152007262307593860643388663021780905563357208239242249882341004012169803532790780901408027451410733830481052531853605511408979832510514170738069837297059377904794016828529634372989591350804638769808774077281492573694399426148099740670587084291172189208513696189732035364955212045193787968081292185948326960582177834223463399747904999841231748215618010958938796794950391520362668426473194050604696689242919510436643831009905434649101873452333947746551960370124746392461768146745098259235566064605510450114118648001041830538802191100291205884343457308751593519979538716003239026513905136479939616504589542590406175984722045586043764669984797153000237142230769819358696907802579511205164445170292037602493794296772026511678204156817201574845914151714420082603240372607296655524724176371542642493875191083037463660394337366706355529397566112177195220377536303227545594649636946392321464466278320694856517317161043331242262462842157760558381486149469208170388311514698920843692831039423580907891504443895821947199140522615709601283122523153483243886551914952428272699816059085351765843112891726728569816226685547388121321704243923886314704747743888005045710659787344563023981439107476102867747049960181872488569798924121312294951846290938104016650167000557583025941141652826470239481786357551455856242259920030416044679172922496867887029871713587702729333141259899402057564375809684425756481932811509998043074758451486277359498834250871646287650712259255474882860797456769717929905059205604259293638000262854453137506986777772424271288102814113679061182766082491367115591348103739186571699445388262337241714735406334045133204482102935984001585330976673895727856152140786822132375353939945458470960494263532973342595684933364780390097441535911135866950327225406358389486545301683678621862451973879296441876493874780402649834581505347115960559657798366213534190243304730395675976752428930544484154787375436056403304802661217909827807316128350246224178281762414143107566327625093039858295079001174167156198364260888999566370858540775336153752662530338103658243303949111871346465828861603117588657359725860173872939938398640924374399189054647824922415810605925438482256538182402756582630398495714915896280944567446516464704938745637203409779672411779857170149072876777980593386944122094273447025075673390986812721785380280487431488335099879964211047500130799986556443867845160731993773047223689591806325989316475091568593544533885802187659095213024030179822137986938407156982910814495669356533690466234393795065971682009325656288729497026842639477076731761564370447517868562242093176908528569271760687919969376939427721211362638080372817920105591958715073771204569232533095071012228776077302212248432854440041659248899157870213737499508252643445134320644201653170739072100774130372044840413305787049701645018043850366114541136145395960437270403740099564314673254328282567934619513319693512175539894778664546532231750494894508786409790362669984945647195241381127139622034942167844307965519617571153535702505151397487423684437866906835063126242209086738536208747135511533229891466271305038960547915162314420167258648082587425718078638199355736586322889254192917969262655158726623700031718164440341330584440354318160930866494871514792242194534781263751603738389959984235304579794261323417235305060958439775853580558256300151562518650383512848999066755554375765181927772290272054640181588951641384626265196017312038329155259956366973499879676087273307641956033630152181350366772147038077491436881604131015710602753062302291901889305481125038715602240195903269191049312994970028169049817579367599090412720875251579148875375670222877069288072721104471673260663360183732835206812628443559053419852469277787389264525505541454727360574400127296201607871016947679566605821963160197219814377262708691132074523784609219722322851411208118044543949033295017064628385729867581072446086351810600547706616088752964345309719571667566674407105640797419704608294197973864289466805417015511616800287866438533074734065371533753642174367086997601571335462155448616910988084863590050961316850109047420728099453126952571929982860332550112683649861766522155667263144877666824379710218002318008348247818637489515477526796188106749974138868674774509603007324292231496510620106067911044437310741732606616519698109216850122967316545531852343107834376145185227016853654448079898030379645919285354732897462686057488443421393525891135742561683023415858565932426748562477072214394082120659330111145523633564822062362777985629106862442943366607500232412620769598318093758938434221413922806346042032102786023441992842820322007473072846700317970501883271972448737432465469461229649177012923950139150543976698732243228004997349501408666781228249711933965354582108156193231041994585434760326442302393311904462863037620401299748344995440416723524708545286869356812450044458572549022944018162405256161293143631529975567189743012554027217818628898384613703033007093556536711302372265959002004578061530056914511399398086940872618731061419624115898802914078474708196661226162602217986663680117804497881793113761158389628016542553686021052230931617219514130207675676883549290428364075505575025422386118589780278244540245253310844880197555737353944712957383898760391394945713873234428368784478274391729151537035853385711285773003921053588114274545168869839135678822268305942440803640697131414765738678818357245300007331044708745277340934369220514475969517592870086546983384865441743055467380453183568798227946509275784415546977410293554556355489769192009415433347688227579570413341174570984353337485390461110946358324517171748561313528523317828499961325208955808978012662194707947435393122787978793230454077122864456820199787855915142227422620061816501576349671702257853492098538625561189270749570297007939173474224142011810054047909199692011941119607941095020829536914252557590007181635191156418301809093137811893562060041370958810668697598026589920745063755024897348947523058593041516480248162500018699954275408723376313687447962090457084529978469843042408313794420277958972733924240567363258616436789933262473426935864452122650390128972108760183066442249041755973826303966946669920477448677528245090963406281041962073971898132043572564471908501595672177542275324710999045874581231181621017451353749154596513381350262769661501837875813084792383884252281417592407500743931398329128077537770535075903421449239970475971709470693219051641454343473872779895519598678466069656006743930011630031949630883662013028109432944757731524539135693750226198592959851698822045293285470601014163985269084462977783648215447766771008541963345056288406507269592540104022516272209660956070425675094416743979692247082910697121611872601279806203771462177193182976545841180258155292351593578630916412320961241114824495659606103744949940839077594954275715194238444011044171243936944231916100622285177696847410656714177219901732002479991586345790007200886808578585025144540244859760213854816208687839537144666083202960346403966920979811230959353373009542442323654644452815806093180729693626447174880433905816106831813063828479242580264980743711195040124233003344741247986506409802091828006612293922997819436025880768040360195583510885816953670574316110870670153648293350375668472655208427249267113503095990847887427794766251943718911001165777602904677318342033918776639076984773491239905678589762343412062257417814506437947166826806801203039784278335837748660373440876322570053329323402669438186686815089680588714362202745588523396664362687240535476247790111304934501082119855941429588303073599510099977198723686708982743687611192520472901425316890488334280510985976357994502309317269650415837677021425636491518078445026612842932157320660550757277352822996618866156286336108627957084640293268341531979530300096271067499950799107894109122902376382613503720364265581877744043304032609387763015436908987447837363356370403638824804159378592947807497036751012972865504137179977232659896493068703841390999717074380211448168706281790400639979999751146232540924827923412831702256108220007495246019363173627761518495506787320956348452177354837232228874337917391227452533928369145902321463584019888074552096054365225548956495810561552352259949392821260175626022662720582192791103088058372942022134273962255231701336821035674315359386934822675565027716280985048781313138379283488853760943649163592932736139254374689143307683992658058060098237813057199435987093730973815126511939727544947860768840261067075884769591428592135794925333231800950034192139018991006049470327946572222251597021306725622883027400721396573146312300424566171764859175494166672522030382690055531126341991031502720264198651109056062534247579800772427186533284990541663038256172392922194432719997752921327367543387673969692533191144767680231346831707699877738733458658303868373734657909167359152001408817393332056085868420666532206600456476297478140835509336825617736202897819569724561112727138921684438940233000606093663795346685289232327481850420459149603939157636172860635750126428616700376700238306504882163403707645027443625504902386530288587864173926566628805125000676302489531277250498448463559967684834664572212773726456540567502278587288774069674117878486573461397497341275839276416460784255103594785980014135492684656800886772587512246286318330921087381315642624082721036541267387292042268792313075794965193133533391735730958326853710093779018992320536848579868351497684337263214973683302777411920060738464321407896247382401028234401223884718769417846949486936243179408709723990357347302760804022579523654654790049545926265720060207581328991813635003066291051425691651213050136104871036732982899924647469624719316645734137409145749568204625095087793725855526131464632437271113815711431685784361450697803135761113939523124180722301424358112864511597969331422555697763692412991147931325878096041305972457743049651255593010145212087219438500291375995634666920853622207144890927609212617281224669456886953837763703563222975497697013654677355399769655812904222595237154589090022610114668430328475737415290643085464927948685422923016580951542009857190980511649666478666809389404697476469481228682752480379532433526154430399871659117705796111621742953547165517920718194861803749859309484572233116721634337136776961367091987300654626869501198459416275232659441616515849060510647011959683850462131602168896603645265065527030998652274928662960650057838189965131747669053407813288558017932844217901706051399705607140368265538089430960837014137120172290937138640745927675373494556009315451841851529523709111720828879436473627482865846938110852672539215421890970474145445151103271442395651640798492230103718419888126802865513728476592022779295157893934658079119165244621138910044826007442696741506902852675621469801430431887144121748268434839936396794836498997170880938537387761732843526948176637542488470982312555434636999171034495385161597229831683984734304561714526230389719489776985651426410111190431219322733184332971940673485658511943563668682056384752279195652629567113020722893893017519716397043714442292665107773289080787233628348172029609088514929387483073798109584720971035254890951873720333087612957808213740052182808206644171384973830756291361861952659841005145088040856745879699065285275718504738727835159523673731161750797797380831122660418166697833158464277318640637038544298081825726198120291413428593481706649814615572929301459297442021679407284280154378244295444917333464884348192413081450130443951201495458590270325496481312480933417915122459173128254614091596581571023761878319781538199565981772547027802892539885090523324840276070305236107293593058025028358697901784062970420615663399940503265931056808371394046105886539070978912450953420843701092218663207854548664205285958880511355002779687658757181889196339933879286517468135505966070135712797560557634636775281690856532157684455426318182327526146488539033495129387728889192956416807414622706971189823509540825892333183305562601380109595496061310930138866103816903449911514850249704176953054413131213245883025024943481064679701182601341863235453331745195527362411677184692625074892025162337896218992827824100406331902939884999722128691717264300833794806549859890376359144971583500364660488544045790067665222921190583770871889579030056733085868154968343168298338561729970822106527823947008169910600691284392738923939345598816191415141201954564045708178760938149659281107433798295184646598416133899792189608864365890047599392880488460442159980098401853117102118638264623604995048388142847109702880642957410097301448680304909463988667206878536199777438197183235838685290124169058341346412094783786986738649342059267053207616155811714855912917458988884865165842406307522625066308162376076302409885392304614723561182026827966199987180704044345153187430341521802524852548285895977892262693094614355743866773527464521618237585721773635117331581956610832851977562484343788635448352515843588695995407361979652962886871936265851523130946481706598349887012855870375667659996364815087096961123393284179409486627719484998221320099032277116414136614177905780263144772923590368577711776404424646157330859897434338421052402956082332434445926544782984511136858179106676563477687937191107348553953067506936388182553111026597956825983740981149370151210721891596444831114454705923621314865131661514055746824239170131379773455863461840761266527102644556088319022297398731315565543595908390859667763671735926410127923809896614975548996134149263814391027923561952054805075055778756282800336575689853704441637206031100411654019770049521855071675158862923677697916155149397310890689545903715679230593265189066193705426468970116452200152257414686619648700073899187611905734248001580027111978200212864532224860206471580760711473871850618061321617850326359611399391874410334426380377902519747749297929274262692081666503825236852077659076186202264949031995022486487662258910014525853478533997999693422336272877359548029148072714541901649651531714518444714104618756889629143650340624258233197788706024896764318459602805905832955287213539922236983049699380768093870554128438963260462802849369094921120122833842364611519069945110944069431667642134605231752916101084563630336533720169810095594555369415640907277388433108994149270385796691786384150879454343703692073040788452482368453305017837844011849189705617875062293154475054765723132664868104040121029986191508044067302188343150737944335238889210138554297426738912330158436379203470995545803196928338691047843995649447494647671138446250841542860618840641394698210187017001912134772221904517885468604928095658359549218999117145053348130963787943908841470436128067149842294982430212002873083871348596759895048168368654738881843675492673697241572683016270242466352628531967938246836164557500562079817729879828776184414887215869217777329626157081549513517915832597121106420019902873350429468043688509584697284643843349911460125621633268130228420906368733885980144952292023548353440910525449503695044581558192729119621837715627430042619079941665203038737328304204432361235152345048781842517490137734629030306577238520521031599546534028976701243625279662699477199442344167086467192235492786081834345528235857061282928171028378708556009743198384203214620640144419163446741565504565491901341804795564516456593285845542101830939914523114617691615659222474840213229807178872649212638656359085814070650867391517402322325371095591152014114875128080396820737348424223895539480018780032403667268512796828736733958683009034266053432518124752724344060441248546564904514837830533171205904265932427771032668334511025871209670427899831416710028356625201479053619226227844897374492312300692106986744824221347168985839924316374268146275479226704326585002992800153699726640628146622674649920713699253562486216696363442973569176557933524807579402811604338749057397472910677221622880482012480121608346050127197875651043057262695281523141638542659650227557635449206985968748027721953944655108826178596108628654340094786342817086790856449309422691401570881306703086675625638042521560540940327993780598136393554010395544903530194488900448431501844501253915744311018010841935588003453807195878861661374188549915316407536322355919540198015380881402494853766819842738920136876574710780042735686305304521050521653090643991471091191734373169144077988739622893179931556613321791395440150111277274672934161573194742750852234880076184956455371550025829643247543584870646331036922749041999539719066413191360129921231251857358829953675413208625165528909019402329461136396713274668403387424992918059292344146023804439755166483012895982625526869946419419141837755894882077660085725955946135652629821379026526328851581117349174160520442060980039638272794129965958615155922267962210808950292738632318616000612119705286231702949796234784053419417657565345532281021735844975021534366320854943096125023226486878201856075390755928875428198183518991680686827753793823479720288398996292440469579677477414349547425705784001766993560765417055920157758940854707501570381142026637368776201382497315492904187443187718488707027055141560244866111528316567165563781286352673178248985706838651733097182598130801000856260342759688916859705708968652547033705820853013705077928471844645365579514746891461955149326484279789481494795458676030126969085920243199729420366279597440467436006725688236854036675978760784533877261723129855648902291901864283693443491489381051760924666602013782774713527510455863713178019475344023471548276109977967256421605479981417625663539271123513106273090919702597127250627016246769862433170103206349594341603514615858732047139782717794914354237784008170516666352809583210511502774490821953641308002771398411473448331550549321251807499893255927499892145113280059549546987852015531345772349099874896629290776255624355036578072223727324539359325031868519583092189490946923423854870421365794075946155211322932213772028695852428685828299261699308849275208144027367035423364778202742255422103616450173982349733020060282151410895637708108934956796974126958131811229946641970162084637769475730922020066783625024844289105986898373198708765501406162263896440150498678385674261912945254999152746501957262052183107004979724919036345091894914122541918450166879088647735784099999744712154637853344554906581324412055951813007414543782351272722376622006792356827949595139721855158407869086394101302270575396216346727758351634138077283771028715200271727197545672876287720442420017190889004367020116950929690332035386479365464488985346338957630141240798389417032198203742772102114529307051542179730011273878574836969158956398225577753972677894316531282701745327743634572747613964346446474426643662120044727181438643313187678349884211969686991178589579622570275300927603148693949216876087348024643079707663036060180427898153516074555797094338248713690190624637091057850710540145974416827382525956360113944413375527708008746073468977203074727051307318222337842809351872745827743836878255565027102650350439508069091269395678601016747927986993172255064817972179711967079393997042994654497991584140601191260745292224588387382796596170934215600073991470613430462137077131773507455650463384518028988240909550672823315314194768477558951728537962184248198100833010300450255025988428064839880150359568690654237168202845061156383977610379613695604327855527388412768151495152979497388372650093576944841617666004682847494626032287555695581373087689109057414451605658380008582622164128022549721466014906146816893907632488883834243713285311032841415505356513051657763791601390842428244638101150972634444711205419088707764437173088748010866815834571970679973102944968203548792635138399276231863631379773013010004428476420366866170417026994302121487871945575959740325837021065198937817507391905340435095351478680758484037150389312300430411464624763436771077230996018464578983866893009908572510657707922669735153420218428818613175979005478958197258208494566450455091484731015021617820349591983146813601299137027698669720468968004609267537310619553064952029222438093521343301698107107106581392694479884203287376717934067970630146821011761868059306096313114850308244712094864459273366303666090960591446990772803713118911776914310069203128232265759877354937512112017697572819231109665862993208921680841289013814278367978154477065221025256825058652272690298215281663117942255942120109176352375920689193453351655316642844144245560822843929813242242008194602111506583394412556563034833762814718495662912692642028466894242677971675736043365021228437354872205741041955306152894491125456800532976133951989220775598535700606815209095621947471715948183119993778892969782487074721536490970457278393212377510110363517387504761459735673868185111047657440295805502139422531383217759325095076537497012563470385249129351432233540534253535385754146274765263765335997114033312750306963934153602895309774890162822868247927828241524244855095624465964165688651027354866476521475666466883940273757515857372537305814307929072626004199788895535849180646694022802181636749849618260897311835363310242386124889246444952555792181685231156333673875355315489552342385277746725051465434964291182709756043168795792499936034744193911599814790132933925360668955672384062270178314881314660452017656889405795382348171166543932491080607543595949178481618299058953020691596564292165541640997773874010716801451123824510531335461943776302769665311084777083648056543540479749358303568946212264574319670819644806122994997618716970818674118589994837243339405027720486824689120634608160657477576780916214941300280052599192651192750543570481249625580458238216468186110783701945695733050558669445266195753142653107398442544749999758998722447499445001376433502299030532481875780464907845253351514646333355457731585233220752042682893157924437784097921569885570153603265722325613179755455970922584243289868677321864640133363024234600902085218283902213611599527820572492962961072331524905170710829734687474431786103689457601375043830782317367416559834599143527993797733392276291551931699015626223302950712945656197505651439055475975902109624912967368390050480020503728328604837390812568868969792582082929081161000009681319186745620469042554217466633114848454624739154061917555631047460540752586444529844459574843256428616462109452848145904737758336453088687040282825260722216027456644308134702882898259221679171188888817401963631136555439187111028681680874376955831533892305259545440055978207215033789755703955455854535612972528538810928668753132509911131866939005173177376019164818441921339377358142519180438967619214670338429257172608301646654855095570497264838027492527992380356729730579232453483266061113435212664585902279760881202905129316330447892304302721531622449297823295019175998706295466001917941132037861821835612120948944476209632488925005296699275458881664970080174323397571608519093802444397948853350466119009193356375607198163498724342787241744525093840939431732199118949518886531451795482159311327361234123115876517204970405448787420752874738247562559752977408888624335180540924540366531136872368234799448308785431173749212755577657592378021754981408207157450049500032145051200206429022542756247801830097092478925111077051056696472713443384510963030593716838838755048656342110177751522265275854717515501767211089386312126763532846892092199114225507911487029022213877335657644748587972845732928110807122134781014206264463663249029986634344968556239433441668019194498631599709974574166181781172329296595569744676654516610791569789317757892425194941430217807974361893661698433268496836273804282843212208610535692448692592030497362711670491382237011288044001335009384090448709422707543301131101367507413448203532943539483043456618000835500994860497869689639540789398670212892579030468236522631856673489110752249476554752683112771364987707997816036473314358190201945658618620304054350069934599570132670556444034553703336248723077827190322164432127525786008108442598078778040004041862159818981101717870845799795751843587219717915593914032718535790478725919468196056754145586817560067628858788727105207626147002827179649437166701351074026403562884167180511717135926437308221144829509031967447026820759243540788023285136140507719321694847406523920119059437025764024936062602922959866848279729474868536105933048403854366229351542796390854672175384157578067844712898865338935483314694169729630413246246500560092198161360642656178554211193649941963693554007130306055648418244982119936736569467046225078098713125586553381581631956852876797296528656618019801904836147678141874108163500684381519492565255281560083086972614694397948221996934025505454681242390183288251933489242579571649962144929279500866411050077954688108278822649684930889327321325974241331224879639989762841834739879855249629770914348140730174949039212453599782484314985830305770695076178883822597250481421683007465476438253948839851028593520921363439568517800906692268631705320197284564682124802185248108461527808297691120249421587508241813906022368125702569792457548325305582475645327068890472544094957818693363786576013523791481272166400341572738655871931304761388466588782918647621360602093045410216980458529823702279636521402111286551525228680699809548899704693233577062535563797393464343859229337539661125875806667270984907759982141928123480229876844564022202111002828092899130453341429085942194807527116554629589417120717574862565739653068791979693769364307925056784339951809302937522076286967201763135738536261606240525885799419395788850371278542147689247744499746371971037933748865550782584759680153207993909545788177977798352672406505838369304794706454667019054325180632148824590526233127176540648741215465952824580063381147201183392840739534308554501673198702029036378170080121128137738388380772599605350449415011643039833995336024549297170856173611140060127037523645738870495230033265840731602354691646404723801607500872225691653366596021483597928365179670552161193307423492841966185330264058382242956252575005104502508689630157537644153667819695364394938808426801920622416406757897744652048569431911774581919532726331478084228123015460201599775146959659062386582737516249479188451104242042410168511902650573558401647638223372215235953066462880278728504190851953480711180564819337728510231578334299690353592352833583639426535091050274146810982839479972179165028427836321343478531190354657292090000958940408595572521322731443625608409564220249350244292451151323832188083488303360560779989358487082518469375676486717910772478505223609413636629520189668936638712200358208146845872899382048350920496948402037065862367459217064370786946194283956156624545366263693891297011448132804981854224245445489917930780134836080609367819055772571028215344534615948220856833441953081634917873624582580465701727530272787839124200102056310523121090003051158887841158056411578938553906023364982598736714051085981145698873614453226411851516153296961835819695499687689281072981668778179397653827734652443924758847008629859639075314452691849356937851697096398170257347126263971896213813742945135604810571555106792865974916984108945422748692297153055325287962059639620897319607642411714637369272614847850937060415083796660420607788023108915337866671911784874373515752920302433895545044933515932328848724517622151043034951887723453196525999483711654654186251317968694959357906104209193736269993100810201418316852713055702420037463107605667464949962895852335160545259677948716311204200417446098685703191695671024511507984398354607926805902580797391177420557122974924195563069880767381201922185225399432102387818304102780282781288880507605658135884429007236063111694951521381435962595887166327731843538653890026146490645730337359198400285115975434570724966209774110689333547962089551703934003798749565291354736913822155465517882888577451425362211512900894415338084932780764741344944077938824664381379751132954970005341549021560425420089920957138925547735387121621848614865672593732826194259719537959804044759216651739026891792720961537481858532844389275958543974931162082815193076978201760892528930481756770387928070555139643759740345783919975550625351163071201402817393207366945203177891901520338465414267405417076061464072339346555026515718806619562820021596590827437853050062726291800000931719833917662533911105360646674155904408647588262010406899097017593229300949274322776605944110019359846182500843303721053294176191562824996627749361110426362594041899332164067433201873285467851580154594909189096741258315622850105452335160935966317733059379910607949972081327135064063981955025257392047281209176811552105544271690506305019437470207724845307953369420878545732888727449661483354362022518761349193835260934482901108062962054200670693904366663658813597440026640866526110031920763656439405324976564242367555187714652296121518602489155263378100739746898423461769458180001088175500283308436228631454739351190014718440993551531562605383743376566301836785951627284573519553944673437029917752419655628770785217903715094507062448765406144139896861243799908244202372154174179612722387526757866504985299949897671200415681903547824473987696955944783813681026841038109962300757945486491645963150691085562929615215633133081193034829471405809170473020851147205119486013381389105682770146451542674261645740186846211104323534637638040433633204860208446278327299136963832750461108601652680587820665490034959279607886729328927759405984103514410601221944095845323125953938460236396161388184703578500970010495024858046012723739043549059364203157001406713590305945094510407311790893445428855937682656068679600921302171717976841259865407013981806170179527834348477225933702485733042996749019426783459349638765551952382570441922175590447019423843959734554511828606837203476540093179136742986316026372514128555633261836833473912711791066280728443557283852412722869540004792999299946004947887342040394067268364143323934177490404109935105265368055993420374060830073454366799475013695557131816047078807422523284831472274065808185384820793779002157321612652261598724292138768857988608402028174659805203799455335566654913278942103617951941445776489057284997524683921503126868453485982465183181616842183665094278048335327896550874993472439989930596363378910283655898536718730649452438747271973704879772683177506466360488088317447750868483149607978066088749338933295028947943409018565200008134839614106740268877963612249973474010904059131064545668955962439287723426075795115087634606018554865829719637862478855547099971699440805085515896924045012910038747330204413803780127020174626288129952783285503218906295737185201754652503462483004191162296043651811482241996051289461662019692572909163533754283813700067990015619482387161369750591655959210208955590048608395107950013842042718660128382070017872283301549631745668231527138440796931623056630196305648224317258718889768322977889070323091223330698052878660597360493800157982098973321930600403593284704102331764201288631768800456225034717662121470068115367897252966647137823513408233762302351932995492198384171218873843933201842524279446446522096732297573244459286198944918666284189516493125589165540325896597436838654055375378799356567149672417798688780302823122215660638738525819552126505165002897244535891993534980077406388344267298821349521705838146881322355068796889802768138317784571831476041542007670748207236721478117061513532663116538627982963190549192431423969255897312772284320071975371452742442526852906536007753279118147920440548769089533907144115992870414300336966120952163421961934138715195782089701442843720266278605655661037324969754455011995575146787751304543823547625928887301781207152791818494037690369514761317766577567908398514120565020906215251292675463382827586617027747883266610743923843225322011305356716250272977863397447241972405807926475064303910093555639256937762351444896455095429322120560334419542887758875018493675389637090416447623370116865943164672010445596807043170642945934921516471755765954369559076911605571883500169015794790818391468320823600889010599285526481036042371390360865205810431096197478532211443945306995594598508364504770049502582527851746487411667895150461415029285231633625235897042707809890074052204598224608990058519837710602599425948695007657748337254573950674893493707581839756575833904512190078629852774320320870898152739938037251344607824469218239964809464345350099617099491855291883823991144554707994771192160683253320522315055452826801450857062177343801321261694863926748669606046530675636160345170820673404217210376105331416144552310880851785289751380724708409735882143898365621689350910480832629711233061294347125177655541989608805918730432028392697515317019760134767683708424227388473647121273264363808082833232062644334066149619647274982208689020116610173368269771737193752497982133851204170721493597010534948329324186297546212430227045354713922423332470114873359047380358959643577760069966186737468243689925339614370990201474688773172672694511358607488884762788701809007806656951668540406449253314000713480676657736209567487035527317255865406133220677267490939876364509874664303569555514366370325573867650083108684560991764105499160562215224766630561852887418942648532935574257458452611747461573128619769842966333937505517533139282608117107237924744035088750709408777655319270333259161775066299785455620018524395221064727820453775742316858221250572358214213005175296479633264989235487985425830452854223848693164856090445768107182410464083871062259899779981793570976458123985665166560987628110377964979873301957673507613116861967647952902548121482058289491308615524154451460718689018698955618256308628965729980670617612348081643820024693934102004321864157762141007220224842578004162313182201626526204930304598880218037424881174493826287264224693413629053832045814585466033833990082800547051066181655407422190011026829397081836770595444244645911344587336694250614037281127728118239170929098245800949111156724516008345896045358964602337981085395282335021046718923924862147508021956084774247754320045933359703257066854168014820670429395595898772969302375981326110655547331283818106959555975903034864212017058122767746050114741290460168130164058312182448406741036989857486495515908378621020549856438806185319902950034931081019949619563689424120596513117307762927591879972410920451957411986574798424292107852436255084715895513630957045804746821017678101819189887993118692795790315809734719378731880204691935470422300222621249047238420679546732005378295563641506423884629993323278576267201823241338553421067830115679153848374367125379309485444387980669064488625464329473100851625000989700169443108425539512081762971657660501284831557829899038828827669676636217140242494328801453139876699596022107383724395024266856357522798925468505115852373358288547137389631592062497675835744739611277748739209936549051229906367760665167521803411304065761112056484970499477819969463489196022551540833798494359387183056294006386171290197378112516627776036737149641748777706873004071031314477273931465392116733078195577693069536420332223131838005183958230688066474556754950264387810327122115135251210170175074669809148295225502577669919341367825920120183199884470454382658298987424499802138272343635292480343016001278477671061692309848370555414849906984003760041180144892853456173144375630913112104067349368947455331941598712204417097634338137553063370646326026407962442581899241222751466981057799508558181630835711383608238108316541352997845086286932241386438118624842222691217590568341306103684909537613313722254723291532749104979001635631923520555875548871433690250386127372104269591417366349602629689367004937233197198244025703575361702029465665842997838737593082809777743588483108567222154668709405550286041094460276264844081019820772987509585081326289481092104022261024970366263860278021252628295594429033698410400125685471530301921638498224048851242389069145431925346196203910776427429900146582497156527266105429425785603837891602731868763761926039060820945838543251096994897764026768976878503905262538217306541899444595153233978176415844325891979344175645580974704476547479276098314439246872766545654118304826841679624787612376212727382101743449639024923575832135515745266803443444660215571864921402581300609125120422688775527491559730070448962595354188969229869720162157922970464858656233758784036870065270615878199200355448452791050330472752435347250160233274052305810659825033834128893461049212270459733390173218113607294003160992237057181750997531770382442563487638406535242929045131824601356425746432430984524160282557879344568500905755396451205069357013652997648148355741130286213539211829755645201252659518999338986755159975514721002080692777921679973791021680448192381324322897638053225930395673356865748413866668567089743340057077782545428593774614410541594219438694169988359790228341980420334415517579957257389368544626109341323944838087498226949468926795632894800508279663159834039641692372889197921832227828755048220296669037195548566765516185585466488087053285496326882331643580387588478441263353254906019322882580007016687489816990026677104177813194370533841250183759180609389888150695337869929925090103044705104499380978451275784187614187231826412733345035720215665415348463608632015278480825731681687561214173052632371694672473910077750457498101202930737637590886298236059354193504215243795470835343486987497691641192243878520130182536901536625879191496923975200250679143050577664256582710539410617705318983308170497947927270902096919060549913408572781231615430560223578724063907882849135644620594978391198180222676640660993060185395265102098117328153206346850491778579170135381283811154820554840738666913319781265060612510375266099304101692694485142778680313274183188562665604015306424750997259202943839859983289390787372481057102275403759874019960888815763775684185286916734040360026532221454171771098721885512523986358316946119829414377077278999641516264686349321389355577532882350881969378809650406780165184571995227711853740760648814360600870737504436514598791200115436908672298779771498122608508420911502750575700286790625186956463714681812447527989788441641279030343837505279185118498715395324006320948575192949819874119076991509931635517596933669488849559989025327428924428175038189756038619882322640406802036803867946100866190841896957061906165779305337838856717697647698172197164461884771628456861334431095555898557058920870154873240818013618655310226389511240126406681015163470358496331758431429649139949429864369262709419061860824775765355812419809315236407797168129255901889315783774763549534997137880331310108190690254822655353583935568556109354812599863313328225001594990461359871983834689807493367096080361235397123540885706522921620456146589647083400662260393647178133524819361562940203756557742153525841092773930860992756794035712409348876580045668162425412910751083800289117669100610185924977600538192852370371359480874691270684732442337876139961295074500476488540605682895744538639969004926933179079669393963092600014966561086864687580634036369256994504423270337092132051936910224156215925496834837200235638297194029154238124028295396183006604760623306217652777438449381603932047649683458006577097840631416435143542939069172885462333584773915369397899045353401040842666130911925840399110524166265638072529872602380714454841592718002469272997363117128146479879422876158755640375404673623048478817183048090831589500744724831589690832471303798838068611813684857966172146668136088751981557547069440848619163333285974136707188927437426481371216765608386750967017189693496941731392979120174305043817058122955756743344248418787541910257497251640647378981126502016768033559317439683786525222191728892223356561582614765414287689134967931660625630363222847069816681374766065551281016895222516724248528427180812903516271332579670561367327527446883189852095109445185076433207465249858378189773651138640425279944021563729325374524693741430634524567757941838213905427527954379994603376894154478845703021177736168273682577775119545466446374300853590696398947806309963646607892950993332004259031819034199082167044677564159827538268534121188477325494154221128903129178848202085031159067993838677881226658479728027279840948490922782891526084638511736740201241190965248758045195049503396630327521965093659560343608367936471699567348651552616708165754923291668376606474598466053590016453395768116797736327784283274713317232113317349422493175149015811442290829594641270664582477955447359298067446973889822108459715530970352045466843103783466506719113837501777630034088553352204158171214855395539153023807294905115038327266862643153537749360607857153052142456199589249727932246897934122547021742292439819033076829842499705053013452292972373041411445462403594547090041822937219622315303039097004811756989476943366165408964291717051521785365278332741106423387851477047350508152186250381692658639271744098482263107915310107256159720208523319305645283829835374856816139982240505893220972914430137652357669232419492504253792499817486847876253799440175204336021694593795965039659104548088318168663478308392894843635570832477662187688211525099467625074834319296692418493353090193348458841928616970789513985981465601164097047566840899829083313944836816981674046886618512577368840086828796647667242893787515503330427160522796774527914186549309151031679351431948309214103838087141465706925119938668103086679283420446952366127229104460252568828237115246913644522874820130959198572636633976499732832560966077771584688590971423795571784602998507578951293442827630131532185343474825990849130182110875353030776543192918072927321708897772120985864651463742857884411850112785709759633829589986900619434188792194517861870207817102199731381560689879211829480949194783864698868115642888517505891074180963430922307241178244669613599129087093858221154761599936128762568995159524783022511375693764340618686535180000259309722681331182900153416371817897828156886101901254092022510838853157363374949231568367948023852458993561610236193517914685973139206482921018122506416338308903051280024004912895307959384082231630510972922283796673725318705255323508664806780410915828803091994281802321716522477992424852578236142852473429547691375623710791746007012543343512925564141652583016560969489960006969202973173102513781368023430850829557935266592731487383224767640975483597212797832558669510976689027347727916867181589014291093091919981293264899666575160775909240825827753495993552167905808551024632068940128112615158180023011715269034256908427525096445771023790951804009213879357359370359049825324179873822252090263853428733957818855313720081330298098457862948972040588721286800462162096411322722019678325580722805776566456274330670422367738310930323184515981959608306742121346966027093979369797750391324272909660517203599417282197510148100128942030045092328784563019115331323873170232071354136965801474205110813165087612776065499046847187388934419712678979992904020816721637899878224868580783323728295792134828212367989808858176098488753003179655170428326345047259862451404792925210163247806366530375366335521481766411389796996393224176783434621117528553592418205134810111562289406488270375409792829706201779701599301628558170484213099213031666422290173114557634163524505271090384787900062314752119859004294839835532230508939893369607881497347659306511133535517722891041076697082378569390461973153271306085239045499570736548073563250513346406082499091267755132313439939052810045675688389917663272228762089703623509141766913237531650266522042049582064347634946878529982416235166969156091269026013911703832672627206050525923153106271617368973691210110699564574247362968370311396670140986867063379646407253282035524764768128401607457708305071999476897860464631547454873380749872053265526144821618587135510349030893463700458141013797951624277901715702397014329800560343715500964953296352380739456440090529024909634122942394344536353843799086785079004734814419820744629990660036995148129463128676328229429074185104387826406736992555359419737157495493432552414958774688526394827439061579934132286120910510089630135624898161385946680660209221526753365332933671222608463414212140747106333380256846792104738099402700666809928045946637280922054577188395383671772372079786787168686116824521838973214585560919909290462438744646965769808519813733170425565261175610519714455380696946027839025584174066786973054396759130151080733330211841214988308373022807722664159278699745260628954456696925568090523233071220008641092265770867153149901025601783142828665139461696101603072334527498786595968656494724304853351445411591986482016170627407192105040549415155307231638086515876478104579323134158254439531865716268859983262531105438517560567986459788372359137893750041093323194419897789813884207721360444855564723764243982990296417302352389410010834800014272330990449530151956141361227339156153513674636584190279529564739286950631256132173823104035863747320563248187505033356451618190246803263282860560979513084351103145904113464119172385115476972419492447973684947149567715064753891401316811756715355451799043578977725777908989991207831521579703669942897501371629382860102879479971107904348241342809487622373369584354414432022818763673146688745329660383672812534036227962044414566418041823373227940395709129151926761262692029031926011404808028357736573353542783029001819965590244732226162687163272782192063691690443925745379938972054918977506740911449622537223599837271904312928190954121981655684392198695430256790334252770745324845373377252078734579085888311528221438617007683402501746263092427613384014695438295268216978920481648001831160858294999251317961566567761270510762563417935125314961411633869803435342543167025839168783257253415172349486370183248149866485943728689279119975214516841733199557193857952142364449867430019132415082992684822685298426503894118400962152641374857082072729134979950284385887164893199212214597336041973355703896033671140750427825776284773734789733157551884494733495598343271882621365799756525634557621562681518056247367620826270061241064634600510766278327659048460372937302101531069800205908568990595589883308054067557777248418802832975102517329936272561832362261507247886396345455553458161642967016528818655423328500889639010834513280153278904448905117461775287543763055663190778477650570464805016978320037257736726504589078845236973990090387279894920245957890143075229329803649435882078974921587242318547551089598690014108838544946800872671250782678113345574230972691166987672337785043625050863849986651203248910734917206452606509405198389521577852136458159026685228093402675215913450961542270693193903521910055499427643309036973372152163072872089852867607450053402087843965229118801201406977407703039378766445345284009942128528361249614078889198371971152919758633190340852083320466857411904037741905329744247074007868762025609537302038091941141662090107460063681282307312913321661898128570717215360159978219894618257905006113848786620440578005200947850298763147894500639795958870225513192143183184479795658811347388791035609955332238500934905445099121737527609952446226030545512541797282065520008789151230279152217518382781782570596276753012126681552395758461193317441819660426780128915308190405760798642904484740950981312594921884098821662094211741759480877786714734172190736057460754165337963259939373907232744923265254033528364491654657898724230207230944653839030046565434448720023270202471327893634135438016786403522245709146853558097920517260717687609745129166394492241906655177566442368357533068409804188963567897871741199275019165252437119450129477234012013909671088254262957202537893077347424358341482234595244695107259191141134939743511137715796832313675025632112920916712714319911569419369737589917938285634663837412933796286572281377121164609586227313311147623109819432641752250516949357317771986730089539337133285600794355728323884223538780832447966854546484916096628641340479864741498895025319801496058419736332048765004974915239502298610869914068976518994920468196883614418557587685494119888461227130534730590159776923952795893655457221886623340220181825425802709126117716026738034137346809992770626260616333804387656400618265295587419174950859599963083200112582001176941425378995477139483806701804322398865261719982738865081562846642327374016898563007953500513332197848103592045098852486836814527755764467577599727577884657882316398211410073075471333291060472186705085936065836087855636961704739298034013501703542655562188833820334631928689525434965284433294541269694470159001725520211178845121619065773666771659721281846671444937283244321779450159589420079797671461894243198438815151698774644079887708840428201030938861782730096570402741526005472139761132194043099120749026223206190826605858262494221176950261696509387315255482876325465815451738435504054508604421824591902760338687598534218638742713938286574280541238226803475417287964023128547712177275855453152319162163909252202089932702946116424546981877461500381916494606463466344597383451425685009197265156384727047216433503478897440580777456226443814931679335886869871342950059301979938370180764715432246665251716708228332598247034251481524215355651642426879311699142927568066921453025113312908298814432062475009173234285163239811549118322513069463038957042094434456143705517253569489486978501107956027039543961571309183084774076284814643565389755950488583959582622656342256828576692190439267013360020863530900804503020244075443034290147950447543237489592897670567656455333104815013997603068240418370664823245053760484151707016382703717201036053465953679353510467755202873235819165423794640800721796657215896910545626493904849212986245065648595065639408798396603721394499835231596199273551307745653284710431393594678001070987402604414603697524150191875142256655092632132219051069947564660983605153285979744960398494614585472953401048891077973349951137119972113209957468209995435589921539037116432362657590079048891514411222168020773065284111101280703864681672250556738979030942077621251498508700153308042876152833799309529395556656370668801889962087295767980978669523775658267521742991066463431046842345272881430469196414646211776806996649911292303655977587254308052115031662318764290314634269114225059929859508034082463440331296602393673209064000708769649194858115998758087769661807421346996036911930764922975519310976951196552398040238436341085860730371522405846994078842016225080407496107889881394509757152190833213621605577838949514802340266748133094429990122884730183276871687486280632427664372641165401326562629091083091612480263319881618903090953095897897059969720482521131291628340556035668664881061824026440568068163837501345018515738819121894242594646566166911091535734826207319815988577874600110900625658936638939857134587305683812003251462038284908911464556122789846678160145038948936617582154878089888134518467732179480000262021573096181270406393587828981082257245297759940761381958775983919369890362007479406583043826172319623610912018876778612582867615308092669020410085116838829577420079349698354377118798503655594391605470482602536118947300868544683778521385637398571571210650801751038727353656302415118452351371278777446104484330826664132130989310743027940760492633198706923181191833704768858615271362684247162813831126177093949891242161746732083084862969153415907413220317538036888343050213876403278334347415418283903471949152805678464373578621186149810943419034985960076538287273750565300902201389620673250318845711716716653795600112619897848082676976429704522626485203559441231556772622067369059246908630737905179997468958714701364138882314225992514638205551059259110626304168451626267372799830034200430360763301082422257417610642050337324504800839904885414648888097384161813860095720085643067586080079136569838658588625251867898461256376579235891710511904075593813143895001297793098851074694184235280867733474384447770943732943278661721967308625746984425881782038771561464030185865616658240475830108275494101302113362127869422184583748109446481315734729677191915352502243149377960834768589845992255835104772996198222339333851748009587771057422319930275890391161752642437467289044472067993002015334393850626837109430176968581175748587519361784092108325384684014386854206081882597812134388171121037634545241153147841687180190250547667747759653578569099073980119740987068971754827448925116674666043885240495724569745910703143656180608921474116993527732796373044676236105194335673371608158353852240053500174414313018209289776522779702548116797902915865245855545026822655270516746159693957333049269622232848556277005874070088325194850055174171047250897227466906321642177884164952981663165985775403606808987170302972540857049697414910788670577861036460128059187551164961990740958693159136705215538330735538664227484005771600230625702519342133733870625253276515640898981979055259362151516114453648771464166432621153415118978384466638806433677813053474338517767418741607749654846081357915813559908588264585258036499680087373677346623165487862427133744719380260857301102165013606149080046789085745952100171398116444908502031951435289452489840880336605192423555131419321944436237195464113902402561019041954568606118751666413038444349588457185964902963158991538324451571042670375368324631425493119969114379800083241603782248698539450446879688696265025497658833701035558933788649393573671784128252170134712508014858114787149114844401820155359615507112708925786213197549726743818605530844446672462254476077456505821747558879874980602462930435984326432210988471490883399426781011029144184558817335860495959954918241911059137219612769792580868940593362867134697182927045225703919270379436037179659138477726962348683622589060902031222670808079642825652421067665766544390828311347941374536224646254564551936898140671288518982712747786108697135268987248159024592585816145060245011409502860187298186038901313812014556206435018459844478285320512796492997528656070012592618528660635674323905559180116144177637768236403349814957140108311651300188669621689937281174316015052270312748126085074138099213610531980108443645043147730984752892372407160586355072820411444367135924599872975660852103987052177593462380252164249666862343618621931614617506471060145862667194648136435976241334132607954962693962297842698887636268404108810460912651994958979264370203786045623392493016874366976821632441805109397286368141499424855875695900757685078460753809843379266189732119773101982353552552224310189719482952820302629870523299546075866341463448378159793443748948352674125787284298328953206908443058579045316268950740432139501746692822174261065541510492454802510576059056313828975136860010359503391929797244723458926789831175605764595324109775952951110049605756439378266578602963403154553534060231943044306355848879262389499355627645781588206718518449038915292136756144656912514631366835729451700353907084408783075355854347868326140237411632222083107077346635569328771042317483723981917135658747241024765962811728372914204875721909473217376000888362647860172464924116856002085422907046471322099110301480965832847275612252412931890132363740314073977004379047165774907582582580210379911600034699642412888220144905285080101778966706168023973246695651664604436172541491199998078628718073281328689892579057465334539748706890572418685456993552393045936073195703501081543384235665039893255297350346891774222413158798495735358328611358108461396510957154423798571881669638010950728181251547200644929651829169439064165505870513717581122236020014932235654521813928456901865539875703083771509801998951452554672734414729684088764468160055320557681948030703336784518143473677262464266064295354850317256723652548728169898366140161177737222719235048957876682964463909247531310490192335937703849208304597771899035951683108227549368083135346660206527587476471811815943989347409736938094614192604834617480619852168366048889534815059087339482181282575319492886796925187731854745999348622193039488168597172671366394384377974239887427799951519269492300506360155233530428228857020948703046950350026398725641776338647071120736367844489380069942027815404827675512999727308454813496455563046228054070373113892672253895921757864021269478071485259869882828889377322280200374962973922313832509665159727678412214880681043501928690808088644251962326006122118254545249882579614685838826389007078755622433065099554254981937384780829611713499909516757454432222913933718445225638631516879065647268021821559062489748438163850575186064114425993752705405020652046844194902598483913668843680577785954269012162345096304741339366954316190243970522785200453533859694902317310471498609676094386832999241268955995473950901768009433139727011309691757768422156443037837195514566159881334894984169829570632764922674728408758960328134659850937595043698026103298800371215056895181290519400536885884054813485517506463857217019276631320404389598487558473993294348120259918543283215583354624839967701451470665788152378612385992726371549557472596044897872038975227280428258677016639030797756065385038626499861098713281544189392929303615748046516526059430855421464541041090780749945939589760160394954072157889936162512907193616763392350125005707294407936893759614535943199725234355374688237317068889607732596176673588416150068840178501488724509877140115727245006001623688836097567351179624536201710824607967527786722620096168757138661049210967356556261153942454798115868827574270144919995814571320847890671849355414654851871593039265495050370592581000585229257440296688185693608395774033390112984973417260256979584459052131328239960343862505743122346091247044367089443382230437266145664914218440327342622070413418325707752644943673126902927246436012074235958386959091379453896435835381275567498139887449705030823682193027216267342704471478828656689106266751309189020049388230734782963430576393542964915399566272547279094963768101129672565546473231666884324175652810905541585452370927325381700680549744737267624049616934870942814359060718934216764765273748934945061659282913305873953641399817302559766619894632184556495334051937438183927993709974747328795744118419870631786059914916623773989601300855970362059852021043029764762557824358462996113871887267672498701350518102126241238125278776791098273191787454954987682593201853276203685590494786095870341964550119493796304289958244574704555017830288464475146300027749169805130553343186692469611954647693900819454057149311095614711622390283016046631686449459271553472420347042383628606994193231338684116717485239380995805872355894276362379431378257807695142556492931085033614877153247164544419854018518417143026772895674824922795489817392016599578665720082385056829301978522252400295524651963290186688498854434568813392773541064743444636164553826204733855580896651697751477241150553071832881566036682076795951322153542849698382077793008735623159697475435454989154394512472901093259466639712735788277831819164566709366625184958835835892767917524619438648132100144531548183538761931010203965911127155956994743796619773596902428940398142974023448003116858493965328707168849871109625200262621265620944303429361531290121531975645278823621194516358036654387671816208474091618834142969790641925955812092958731001482661869605082420819048018542748080120073778453162045630970380156459616525007803202863430062811307543845439116383918364870474265114504493155809696004655380321752008786188407445586230227122664413042937415321061474965423983553112872216375607023816864624614625614647346145659831683756249932679772926799243703897671110596329327907989056847471568944484773963686984803659423535587189285347466720786775174906970106388722974829779159936788952286383323984199668790860122821081654910484263456962225096662152553873772678904058803259224115046564453409238526235639698574163301839853836599812742724324596031552290511922236206474134679190823405388025168513330652676304856214781511591805842622499893434897036696518984818101710497882594506047103331235760075868175529869972352329555065425394777395335871546025099529302341086313493717007456244810651980702497802030713901290194371419571907329668504543833486972009309108527106382800793781563567437768651725123921617826095882310979019729355329028240201694417052994428968263549314815265129372606962564685765920695133910120271889911446525918932214195912541535439071100378822465598259265134512560996865940798241547049249335618227633778474491895819371464591166032298547726512277671150531811132372178351694599963401587079314089677821489321084130595068286235425979654285162661412420584639519745475697192202834780136589602550267568293157583295723058978408947328243765689142167137978922396855375183467647573189015391126591747381737658484689358686341107671879523686879554529691416723651858270433226579552581079511922477929129509935026120071128734290974357594829901363010794687357335771343124506339857906015483626948068268893341269513279124884126761821634588661576699706121593680225225712344514104923482249537669466845375454239291260867778936570065527066829330592033877978536843014461506541571918911453160082921102173113183959866992825928069641377703333532195953849589077171395259614744684761874764750087697888521254167259043323745556505767926811342749128317469571552532233879418388628005596830126516847202388801972166701896864690333685117716939757732134253222264687714171635814314094225561777727768146888756149607010087619357363349942382852379289323067142306144690650702812741997143706696210785688027240240592185104502752709158419070189024391775071469374761418988894438753436728706932908730557488572294109851755024288911417194569010428885447531732218182562090312017124774810545641924324412737842825672774393615312400347608270055410377701038829176330008774588175710412526485954176444540877660324165710222780714589558169562034205497951192131380350054806287802177488661844906232204644202410091204481265672095934141900482388350033808769516710886300197070820672812718801025949945111578411144721831192132466551522246446420842900723545343691176439941538594896662098434333296537069667648404210652677385052474977394955040766416065449867710893230794080216837038057625113120569194566912564414337155275394117780159902544888752740949727695004943042285519717041446641471236601003213963671384212039245462641776035218046204246139345990524649795512574268667246535103792647504201579180584559329006055466835844431811721397524627016156834661948073939336260213424159007392810121130158831581837426855774728586849332328699321404288385726809563446924418304674676901219072531044624493087279528966285380273328674449449728352898538265404609838429249553945142474143988858756367784456342707655275477039781080260569030863480040877830347933655115500415112354586891762593581511759591092020087046042441110992600615629624394861985417684593140549066027606306584178212616448203259892558753816906902745844333123686434025322053435287058573334055919101768873009992117377627011794592440916526430549339073274591870528173670878161845159135328151710599937284665494667018695436570247353543213939602426278009237033588573239017421006784166470552172076102513702431669224113434395915987428873350692960262803819068012469035471966080722057921334503406914074321375412210888801753629237352258197913334627963515595609065092810522388055799011320735590093894572046581241119567748345722020025306502724563933842213298376527927797255216893139810118332377058355279223087602822552643143564060223384399355857334027397847782363513713209301804251858771577593431626119142832201677849492266091468736127472008712200808797769208590677654329961534428993888039945504458122482611505220253435984241379337339806461848950617703719225159215263560503983240331693648528638186882886975474682230602993588761974265728782053692893617346279546644263619466683124062101808837429906556640409844212759215753491356078226708175262652404487108732587103073363944899750617462925335087552856608368418506670628232791146438235583440898888256896711008068725594366997570025469091554019051178512042298432006114200792322143612808070383953455741168291989165777605895001856660534971923756901284521308115859570226636228805055712402070618396003945276176908427393505752624202930359432712632289829310578600943219758332377615225335421234863427370749085212832662738243384477026849782276550587228235491041840690803019120932029800601885969615674626231940944187080385143342991959824315982521772525829209218326869589793104893942605549202807922155279748976878597302660029448042240617201077279747693680315735639440750335619896801151857405204192338401694534019284759231578252908860023637474719538104158090508539251140867240887498970518152985777034198876652687623007718000006007688812664033134771972957749148598020247440485629193748749052917817559704493335076898250609994680516158346603111071591548355558123821376564401555761403699857150170111728659491561374564661648395803779794062473431966610806058477275549586238034978554061000736603520961363536595173377715214947073372475565652777426248662637712226008639539942818111831698600351194708048921265331740142983698805789304686433638519372378582028357712335590184121453363345783878529033618700385690054207984901164640406447189739239776568861703442750592981295701563672362163218028012802750554915779821999240349134501841267430818896680523299764846141577809512931142365907829216500959041751623843644854157654340303680506444226398821635455686649456474534265891873151855082239785177201377768499084296106303424052976819681149965922771132044014880456855528218085152483512666749519934882870254684725108745256444013068910629583048095345323656389329030590142849327999927682212257670586333970542670351688692157731635562335739591829990415594089199168509526669007804670479191781754164190440682495908259288191536595546756352217886934789246705705087318966792601752155578313208538668046675346155401308939216161357725422202166659365561428961809800186366329125768200340696012172359070032722482316644984697528127200440785605602574238690955805570803109997771434477275469223205345214785045684988894327075468176178255423695640452499261186164000869836816454726127842958952467663456847034590851652558321824711574950903158829683114182182259280275067561648328486164319213011614560527015401574050716684772147136181479066610902970398958654579828126551851505469058788430707549936648632354596937040715056426116793955851159988697398125373893704083402693759315779159535168374554420147573603646107695570114810522943832924262971969038561839741269908026138043443114858774915015680239184688317197289339900465747499805982456391722777411163536893585172398334028035727540053979774393008494088303721828771974844501490948941990198246689814536692279922517415692123811178280487431712153321054956034602150319619357191461111402953416149957518767271336532410441655236505223777656710324636377349128715131664903365685182160908895442591860137973471677836698275385523530959628518159328065189779035667001035143373485876602237141980001839056733480075513151236729140227188163130321715856122915665411253829773430438756237439556643372789789854640121806992618150397348955259828311649989813862870150944962580447061363685024596885674590526898831373672693668685689080938584405345845592454891534731537076191155219481335509450736463158392566721818461803119867883844719125519549374292100623890461030926706996462623176691674349465401247481014719768376406276827515366175106910431909512703395154945026880895315169367621583465771047162210108909735182491655165788537062257964100693762326528198348424315663731586322837950646225979974898356244457051407207964388929245184837922624719236829914636381724537895174077901963634933660420019716406810369559361314548593053339471998952766967526512697963568485441073779058943472861524386805659700740323841894368677043510891949284925011918131808153232297440557227777749998864185240852689875270967130369367486651061221878866351827609435733400216073365103557722351808200554479799058401079353509768057185008912101047765523859692896093317934512627161372700245915080773607592335194604398586264776786707785022918783384799429546543152526228356984557785260895657595472318730133646917982372651295682503421971429899320392928486665745926815411328312037474786882507707912333635585902525392626849575132680885689030537215333151385420906010542244471763335815023537331437635619442520836029781305276739364785788791913527011453616121098227257228909146666086893661818978503444897186225934996604268314354771440392751574835918356168049170925886560520422197801528853370314462610281021599715593516022172774855977301797687042541104924839206350607499350755063918788830611758507752726856756959817420197639999712162923222270954968464660930534868216780171155078171642168705936188194983775006538457291666739028798764377756977121964473155245842923874303824104617868098598498542920686198627604279046432913640846679783830595378482993933037500557348212799701351363574181390381136531813670898228771607735622304134495611353820379272526678531352414568981508524206185156287022277575320751238378533016497097951781744095853703103645878600311976545281148223234356197603014116184204901901042681426095390513806904234599317168703153221514997461434324523506028709056797261283049974951469179763788293698721543551767498345326522304075054012599500242599633970405590519508357981512628102665558607063827419506664340087485251261491013198481743389543915970896841352157016539988568154084231640036526982080435229060734163063824139024984306610183546415069740997683789455356467916834037438629299721351983242012054952931503172920818311444145098499078424005102791591632453817712269370497171266452333718976892677057636232043688431215426417056256237481539744456606223706713878315695050908436481062357434589863416933631865378453824127517666503532029106157342005910057985793136939270132591770724337604312727744377280764448028221539352107106068196888079362641971026745967133252062156547353792818088092826118372430618834839234236921972945777388687570949169036561315570872951703798447471641723853127500932830090854083799089146968540292433516543228915861049252950177958209548794359217778308939038028305066441322420298766718191661720078469070235851626563973183249983487132707891021969637141215434285042458080521720051735330803218903704374893732808426323078870001352123955777857866040041756273790156330614725876321027087201352436569026658584644112377977756291511646671457375340272488698354809420020785443381458795288232627099593682464594213995941574532837825190173327907565010049191303082204570364452337123447093453577399280136648581767884134756056633979944570842240922055674137617652411286121095689672010321000770505349216566682398928916101835561816409492215335593055830181862416877351208868537883230352416795913188086810535623825756526087167305260370724199296311692063529683498799525597801432831078574336735745068742058771433334086549009537030179776173594106829174304082916662410879416340966337522124773179219993120280138184361396223497890604135814131149845518617678939457851279254469941226425243786350490355060277423694501239915848113317090916110897935596210470464397610392200909767427579645909865958971917887704132699795745102570780646182167102136100149101955011062641711321805835921791697386718119371470854433917681420970842734166595578364262957261110275026143790684490679347265714654665621367829261391611078740340161132371955535532357978359707215302593008966792283303221131608842534488260008058070807400981428618738709855100950797981980229556393158235492332464656272331841846963724467018456777262583325711914967561438580768042768354232923888863542161342282967682620669928999468131625603410919773522669955567794796003139579382292475612584659262423255543655958183507340206502197692288851458839544636102907763742719210362781686607301825984271041085849334499325279323037709072862941747340009022852830923102545435485692686875316930352881261717544700601334420591611083080275207360633422420019588476279716537398178625471739456474905296500146010768474847407125618748352903797507570142560508568586435010381740688230310444561197185554857956091471371319443949812155323640598249747445202732647223088909309840774174235009907601099510895090104790710415112598142885432409168520559991117911533344115525110890307425305967029307481325202153597548359911289176389925311194910083281657438624033780005026569055502242098864326911880603759060369240582952788832272378612669044068348816726426856264089078971344801394342897605295777680912763732697385601624372494775350489807714392101740546817710596665075482473276040154528386695692571489116886638902561828510327049068432010958696495325087465536585012324705078890443344545421367100871745292054418672919252193645556943948602815155374171886073077020816290470046967394653671288046438838791866092023402997472500586004742991219005617571725289851301974923157999862321447586791391649735598402033252336192765192497882759941565098497039614651926711877199981161624014059554769225611078609739831336460842231764684325076377898294964252463754372406499512396452889321149180108555205804029290119871536502787440104104915161033108516504315517696719555346861953976450745283091384055253163794516166769780227944540851786450411545057070233708503537919217758704241958522874960105803807962414609724897259803264470420670141908740070820974206885276670841224268838630811363314374531842532007891274844138150731585811198587547918149485278693754124950152929231129836685383083010555731170566918882848082256778759396710159905026347289935393206003056300089270609795167994204321289819152334601329105066243556408154860189673951953825598419247263896871771909072448107545389148060321399457189628799489931118984084183162020735198947687106972053951877404044600043938280533895978185180883330296872273940202952972154836455976340230236879111230127814106280981414261109121598806632576127120088302017071875075190004315918867700662869606874265894099737167818886990984599142222542744601183058769360542766412049856941753612963110605150564715507725398450683610022435057585712339167387339559761357309593203834253037913802657048584544716115353833275593661765784187278914020911098428898355335544962500121536584933491017206463353281851607990164423463478790112603934043662082956929099555817034341559429915194473736240636022119200295988294245469845546936471587994953335442313525827657189185212098234915814875807000397943105255630686794679561337417153929569134156113288237865952924499875528399233725562636898082693439794080631882186653895653139841196784602639471594192019064807817867310468774891557676140389093422679807177479843136810825553742410923608053276148523130571358823047845614080297160839990648785352084208936658122861880806541039407080331354761516665650365121916775917437075543251211158065769297684349545197823472660417403205581221958380242133087663707725887635533976719125909212665919249428756529580648073189251706069080687175586433517458234257659721663821580829068057618685916290619443169339776177707605848418420349563739347469756937016538974958344936221085205328689085961777024708519488121838844771846215522743920843949825924991706558068666123217461565720639838394738352779036805229762985403356075403739916447678866003338722852284723162487680445339115722684384299194546177302290685773011739808733487296315755490743019267012398989344482983695587969833432235148043169845345050227652666441857810856634055792090974505985705550105346655784960269822276399566558005461447547829808265311959644927252268303366760371096711627265974874389370044833338181847133328000137902375943340490301212158537741701893262250613144710898285504368871129795669374644033521491236709980940603011715645167560366631556043464956473492264731453721460016598156288293654762948000683019210564591980851437029843251564911910713404707045741060545064862427043956349968052078433391745786441618512723229667104957987848832397430999192512389190905941638156450020715931166793486801393160148515343666600149046028112019305354624046714211660043424212980815119065661991132678010369939328189198968494069132775325840619646117621512066196866785625746473368662688602588621985224279279408601704203914275360028830818547739170060044306754088739716398679946796573480480175217587336820798864740474001168229766562578526019233562337808924514361896257168729859014012090776749430000897293345774785692639607187585553528121498255442266216137988300355364539955094376679271627084856051964275590431336021437134153612755107975744034096852333100404913408138343831261991919784874529177960915493332825766896353525406693781222335181450747918944084409266811494845341379340525384715632135347126117649176425777830039235231551819583205361914231036101026773942309996473362997495323293787005081600437892721593534134039615996468713183691773220966642650771766629596342800393121021062869203968286150019990471410723114828849053799656392602886046111895098688919897968250398438130117152990439514174744676446671744659066300282044745461244986619170796462024126862128636169161914573727048119452006461074560578721671796638746030395088898440225954740342051358433068601205392016171005661279375193061663292602087758169480241189391712249651307152139546207901101645599318996812732066449408808243482470486630351307428360043665014925311356056646311706628010057210156103404034741106925799968835756979659948748134412153284598055365067798850436166646939870883094287963061941825021219669722206356453927479011608749337250632080065255826049681336265725331532571148321085294333806340702417831285094717447665370911582552329306803930615736232607575420449026485695123604076250489514116845022776439893706139108334067080502837367861662931812292079006204352440367900276424072184848132694108820969417088044619150676746642993489117100862652551079012997982629335860793929889803610743097168551549754215116292542188862601376879123018843799505457080895324033666052719527869258615431517663183187228947956048931428053468177075753659988782129506366114256905812114859575344371650569823934722166288403433973722135248415526687186479054860754383676085569075294967164611673805242800242406993639408313638813982323140667316797741216038735701518638212431663501014857730768011984669761122206204451730041147966862153368250571102927476767182587019420182727540350666594515590026360490093817233671942352665217237735735353828029711530400691331337120910938878205509334024160784394676700507556221166183498296230114591917243162160387115269264369602647648590900913106993766935244843735732559732279724926000443032093513666466673899574348581825164668216468486381679482047893628353444180077981919698384006070317549468157212958226697447318423704367681690453316609664634695015929700107998130802600729278831469887486146041531552676561196261996045771690498266815325978389707247076595553546497596160301374155767803919233052267972883721109584251370118275761252289757974789552177439409158967462719695116962785104421657676114914708789335031340582129488660737587699514152016462924681271237133187346856190395196934130534245613894576036006504682814284548969515369430120947691058178148748334493267483402317005159574346160185431019906893318461789804322496724682144717654516483428475293670675300260293933544106397733763015719352182202636373434391068922500324849631730775261473904658291801992429844478961821155385929181366288732359807569637885463373905574413166261340491889570940605376352530269389274596720468319293110576832880158606296297477208400414841430369225806117902365890493917946442933803483963752461241931207057323893629741754851245832337186279467889717966486431350180799207816531775134759178784109481807860798812140440196674711437594484969249713250692092896017654501325377626832318552771542554672481591315749302261485110957398405539203013934160131041054313797869513969621204476169673910054351886646394071435149715048488307135514882391676373532862913282515020997483794521683506240930834103262111510690919511169758259037065670657689691740535189007143526092662754289313389518172387639712076113174907950979517607563255720284193741269891285614389406040353686842745828328386554470672586309560983000750789785752804075037781470381188033957602080169961722854338487375162949121909537981603629101241855030262212065384339453643605089684023016184601103390064312228682351863587080775947824328669984351837268318882725342292605522808659657522619127269642231483365852096438585978056574146013697998124906511036246409093156908201639540464456967170502484697055253611600757877418004737877848961269239500551531706067375799632360844580436378093199448500337109215710315190680111810561635572097079174299227479909724011611369890833662276460970723205703777870840767945866343116356022496042439541950944928292144963355126800304801141340961920967278667416503915982840912048307285378594896180034942663513347441117448750358319820361067230677146019839942852618014489330925251185601686619494653406454842569188012603841197437908462423099822086629390804711289485263742257356932533880248446011298645844144334593690401708163805926004161664680403241493707545535066954988835177270202547070779956879463623969927664522047062025239865613974316744109180154429660225540979093827447757359114853780128420114536294047922340074262180527827347689084074788668528315583023317458859429542963127487103148922789235741118647679997371321572473175347249178151745842997364310819177515757660752963316255068664922598554292023604166329759399135219588578774179041652325601018367074950339085094707089172551463944085753782982640042987251671054694082889824517657523840319345996531854268068068688616027103586905786377518037093108434651968680373806214402886603832565321663797197277962117726748688961118096725954400905919530554700032124958237234400056708187028028441737482042773964672481614252984597524882630217754248230693049734685083679973470042568200385661320318405661859059307137540536630787731028225514011619808622202759479061627198963311641965868314671400194471499492687591700908832758889825223285342222564398981176974254122380681431794445123415878605895243155116124095681466495579586893288712948016634010111987857536945861990684946844804034227374674098913173620195501868225234247416728271779514638818615688843650063876144849422954953029969112711576003337329593010755057039424769833889466381049590105951249218211527387633155068765616391940979901133402976634977188194609944664480595465692459905167976236350658258311838895644977384650086556007743946428913788762093365364430892515261921126864224433862626700861587151373817369513312167387627941367828871636648358159094379654591753786030769813577832448342130559166442270829654399266847244391030537754326964088522507642213111136885482260991025536329663464251933861705104707152957263780719978082384794015284134797451077048057951639168482746453846383779968746424552624498097332959086148393878800707594417947730319697682682873074924923767709029401247292330300416377427221431595003626640208532659593986357725507681523671571376736394037647265165927164400630785357847054742527913262129035276655246844677712192591371175283770069453008226496539262966323371488704922817472742809308631264884543197608715693737365962940703819544060937800939163243329745235540148244752044868494843212334573165838760409930100181715351314775328302292743614926163826823624970278665040313883442007210338601612136665468500617737003845633059213926164565888739988879059536802646859897299128371934719150220005745038729629962126724440992247336893624114020416562966390297644400931415235734128550031530736269583583837198785335245259554952691638652995745893254642591364399796084584899182945109369442943152726643486369320700366831046021296955721244383081990729511831986416784568190334638159201462520449360910058887267718114154710687515864090197504379561696147575152107490746730865440878714494505411562144833684268626970050953989217021372882739426908155060093062648022190945336105324171314146948784558388740410297228216013488355805803493445374757841070400258105478782069905593338577382702131231189007599696862880753110543640433130915930405401123854502170498332433253041671613300342985645546837364535854255182259807345866274301106758934095874245568652353200437428275835520374861550580230266692464875568711690404264553313277551837143485891974722918434345164348570433469745935033179898589047433948494504063332748023835071533626976006557863978039959061915239958734134403468535046989928463247149294141147517095765749669108980075257415928016485677843841655150966614404678737048624508962848449228867418219093455663934784938444200445892254652574296005928632912419079678844955627866226000327430707336472942702277962111708985086988112299483278832347883352792277428858028934270702091465213169191089127517557463301187083435075953335247483542257533623745498042518096707079720155010490003963805227164937839582738240203491098959059472777277032294270874946963822501806037841427015927756599352328096386966713967217526310217614694905260250259225488436289104849910756902393579561436152444402498923235508042441214309672823981338940214542288742794124410825667549665215076002095932466582390524049571933938131763749096476263985565433318967783523939479646246514758604625248809602851731717191367591457064950946658673984881949933282620897414153646472592548799952669112216520812160922590295089901375485950960077237279393069087000880671097397506042992058253174692733031142126115018502510996486270760411543075923248529718493723257513103716247599440003048117399305112774573058608157182569678818978257257361794193993049590214396280677770706453230219252956733704576500035005057994903437293033737065012162481211869081604086823251736287361027582401194946116953155954704543184855047480104920674160230922549810698673642794499984909010374920229232749831099093149274613852711148179208470923027685617579823138910099333632494523762344998718535831965011848073981022190954681310800185014855068667300442440439579034105869625101233257737793152861437984917020510450072988678379893181315287744743465252347552400024916867684875065019952217099999784906320804695811460001460713010556302646484661964339075934904744866642752486933636251139484162331691300531136275382159037337593810564850281034222199902456195854843193041506333813814626750701736382595105258891309208337172566663310388738869030373170747339658313210375794875189055320444345136493988645467372200888937230600700562217544604975828047913534286945026283503003119535593849380894960011922136347599468135038645960053566712099368991129628222349805703278845504559678299417621463516763189754131876896649000584867743651799208374189858971166688120056067729346234099267876764008538249069039407339903056627924171958122083487655798721080228303996841186666927266578901461706047868444357443024021699410152231421329744060164855076041962630412988267380347294928329254145790852744969057458867151512011374338431196229533080726589552142816535473468505946492648221713963232329987947704643174517885272954773937512572849594230544159634210782554574607687815147386446378119462879322366842147006349700310237159567728019224247410884444812704821454291731511578913356381580550687311344064893758725843180307821956701515199653959817874330569458151317316680268250597762677360570513355273722900642833341342003281541245472358397394551142755499750151303509352178130967143918827166615376538316752532609400415511641726662097203383946846733766078241733205146180207051986482862843651385376725219547876935297113451204482174839591434152310757202954177008903971068180997398128434066110233230523450338612511801351555080651686597228020448120095645257615233636966907683541510640125255484050680723680085866031315023545073030470706071586071804702509469627168017998750032034767723535124442124328252907679959382274920311702928208900197755816950675734030136667137575587518090263248978542052516641567239261837671131511191542190793931979106255839063469470098101926772917706878740782055394292387601847334971527319695518409373977058699818884929054110115049955173528789415685753871440878852747904957709259360515193875568628616915143927491581727540779770544292831071299962748690541632777195203697406062357629273186358864301286598247954984150945282320502311584083603087009351654133684811055640523673517121673585484635405320409556673744787200597613130631054864021345657568981609773335989699529428214273626584315600495285042800293723977566176287096994800619111049988526651306593683365725156598952603668803572404873268951526338941134957762143852553376581620889992406149058311904747819862524631541842247186398065106009498077648813729894630097774558848280556992683453990094971312294880160281267171139224496080720600568799716127352179614879518051078385629338412716580636400386504968375646038596104433595263490772655798497185738180290342735277646704442191187575630399597105663303630378793701983909552358288772023199210644110578761307435284354700645948502590670396596517012170426685753741248605516950242141715684411053202148855780190235600571444142026378313058505544178908082167996204490537802259103674664040768032296200785178460993931858769469264153444151352155625705816459577559671043301519136012330699698016214334093096220510832738899872449493117903713433877725156632361670466838713868055725499673700481481356287720859422283235367012116108663227660329869460139081936291701732996606992082036962550006584004414064070148897370771821390098500223308534874456104902236271071775062065922831418703780569587000388191805606701730118583404469978412516481375065025221336315775001354417694298327675854644683839094698327512443903960438510911103940048528260059229508231013305316835620473975328875234520980724822599916078832843107118927991925511841041887607948010567584892163934565109023128359116332325843898640921395137603228128034687996065588374964498785677849092294307934110721285072225396976561820354638442760456596107708475684496141779110710349393312874904611522808151509448303081285184097197042593706202512040200831833650138253709726114521220124078088398838744707964145249655821020384054741355036832238386957035131635375979158486423027980995369124132362575971996754334239428846317614285062556395150622714139597251226052671940731169683916390215210295442113417077597802277349901018500285904859480547096727203501458438571516699068967190693754599205654699785754690030820149407470836058736997803504575092956397664721923649004564319993097276362223963601505952651086479331857990746566518342772148478625256049404997426292124266387487927555924354574499098104752458500105161922561489198561976240513544384424163534179390265145914152082090984090344961505806705212083958978528405785796398531857694644592746123645431393420459342787462733134282832712750482649967875032111104004112197051507960735492498489131489172179531731804699561858243548683899768430959300120930217464588642023965482572642646646120989523884077764973730141330889832959766143880218192717745149532439039917947583723699134316308038620066025859640346830677682126920951856147701860146611574918405840746131488417572060366672444972816020404501470169594965783646345497285569198424105389912648059020434776158062914667271649415985077256833310389628051493258580081498461454146595047815099431600593319581345073551294845313921932971298355949513297525445381063894168107368317695189278515224913762361442808812854469784183248579568286299995954586683163185621557522388858460538439937543006738097529398371097438228519025076462364110463604542242262567121180751924459295165123581984488887676191005725724599733374900192182912896540446275209286393068278240435708017424620242048081449378153486473980097214132682982925399413646785417008497011728905344559314869017316184746681985426750092958351286141878921261974684324915420965679585873623034381920855945539736217097626003853068146467097789531257658788373544092152626291610330378480972476847932035780314800399337553149616297965557552735334341433845652663789769616971112778072734840158237898518620214791179321784683446140161795556563197435599018608431534095973734494395852380412621064131071397980250181589779962673453369760928605498101377721458308561598036211534246515745791104951549555791638392329107071956906013743101867875107543452430119427077904045696670335303463905757908819364099468572339414208532491398117718785413494544169889290103012046425434759676376565732914107933352596880544138341502154252254051767357506803643692320348187803391384185986396043988358767367858222870987908602241749794656926681997535009079278852219608036235021610851839818602201278832088880600338858171959375264162292593581624038889681989081546669241597602545468128326446662316254447980644462027919914410495989473487630852654103412443837804920877406917966112580264122483190307277039906998896554833058651619827554054445322205185605352905825751895362283037662966675292790921617320518958307120425775569530112899759169085158858486692841419363299569995215495942146918138002344702272588011182415733963325141876913931446562493868152045609075677491720643011503075337728761834727442909499096212770125737510020558452505307310695448562627736240144761190134140864400286085747700658086100499891637609211750934555236252690082976101077308973120306148555824592376944625865081965506049498954141363480257571030313240711171422421191375585847368778630067052378189855687647370063748397721790336937302462123823481712260016890748146232344527667909805404830321789663598746378959574269839839294738041536335987689580928743654709445259797716496454979374992828410127210982477408721768792560010118036978431504895670988463285772158691739049963227933649397775975720705703997823398759284858509486336723922247904545608232330494806074836585777514233824163488805192258094756661926978687071856417818216474810195800370382307404757977445051716244425519958335991098565770205131170446128482499710241693273752244599825904865476644309434822455511153584362775000000314224644596692363517320523286929620811146941905733646232254083078810906663480583587050382267171919060809442875591897555135900116478749966498622828069317461250916131518313346244198233024972274163520931044344052195387098450688602450947134122447147105393679036070136593968933303431779222970216833489036292358984617917293453915480362024444971600437390970335824708523947435841164648614400519844775647788878642153515116083689569748984516981638526237269006092336437298383822670621489450484763260509944883470718069405489944626699016034647838112798100038414410665065688390659213699758881748816166209511928340710248638477847548218644118198880374943876641187581035404817586368261409166011505167266904118383259038394491369655000621688881276390438201763682200489817301566757676465645378498639456179811864526991972102622646318972917998687188228958740185765852069960921782962812446565285753461177518872610949576672814459586004353678255182209070242344313783790968073966303932741147181467475576950619976522620444165426476996046575262280661894441304001707941774071563918922511475223090314304626896826227535772020933560336790960211788862684742864559435240526022291800179935580614742151403920189705076433693335899581301675036494427048585163880003572898164723506037105244078588815793592879368716656412107457651877189763950294435380957751784826248449790914828646974396021669283682487579873264316680192006571270578418865242749576598249512558456962353645028564618789541673750017169167337618583487838800981489903732919060757271913477163592017014962180365285904852654769701771899739596425616493697487930852133848835978077412425936155522587626940443470667173142235928128826129745717094871191438874678729994374730431038340217716721901579498404162710948520707964997627505750856422157652780738727043904149247763050938766457193268851353059922388295548293714091357453405688728126979033470244846601232351606116305715251804946164055617280919971809033379848733956329089671309663854528494781987609518094681072072030445509517537617979325680294994299657803846710079418228646998425210231521765936238789920199112274150177214081867419891001720863950757461877279048718846960098704864447187432028603489948766163795974016352925736442117052443955456737911435399094475021736279002123171102196959875364065094007792747523017446354848661074618542422749071056862348904119577013414004259930022919285494820711171720525804715478834973279000780278016379459243953122660936314484441773462473761458320171021444753420517974068109428739505248409124254708767227225445821552403045870356637372865459877620440438197063217704439427722904799799928660901847164033185964142146190307076246813378687955806417263553977291336615117574165681545076528593245394769197098169316673568674008019731281633430113164136480925121519793877644731681953413309044839169964385175915587651873523929949991203243747422815615497647925809564518068004907266217452492858545490119259547332137476456869817132960979626166824209928452117323764467038908486862317016303508288851110915939427926822119215853703057141755094878022415427703649635787905139421902300078201743575864753022820233843435077366285019444507025030313228291958180636894942736442182777277913777271005614312089686323062623280781027743398401434006788165414860881585188416489482517221378613314251315983884855033228113209041426420931179041055318173385035071146447179184412177139106807056347189180732679643059207465416173968608370858136599452798907905238409464518589824024158018330449169808804976604105868702197581803823953091936310656951941596663788943736063585946722524060185707298514592415662849688589242900201570173755093463865843495780933803569680730803015513650528721213591190324435713903245528913758254331653892846941304100487662486652736511488544044745900231584376126058604921674569478330424443633016320711184799697363293782344933738170831541365236790557692874435762699240115038764481374393732637790794923989299279328803515702261124965513574050582625906688104198780532057357632979447247171369828132248483804278013493813422284566840908799348665616888812347395639041285396854488663630945831964760904889938126110253353708801426785215233077495591709637533527659999282049919744576095034706604258642063272830967581554878766922299916182988106312938636087287166969774758214890555159200143824000191026785233736238416226326417806405601628455545185146789256021828986396413400438898897129842193740038078477854647275660313649217784241723668360787626531864588012981653987173379185732487535061642770297862612590197298044432898749821867234258182394424871419182762377589534887456617999867601012014023021530635267266131590495762567197580584357362231934877647414919832375575150599559611369892954984875193112108696069158134159026376598670170326390619708434778104542913796781695297535758880956831937783774549511677518314113578588680732317955814972325778474144107118747467855021273225239021338175132620030756508403173891964734232337635209413895290008124927296300029064522443773095747737051900061244243126971116524860976567707881805277359510940034513797671172794380119632541289562706193353054985649305154403757500314408284063309756302016126652405589743376147027214792691506633202432194927845875840041331957856829795063094445232727563071163800466806856852534484136374361437310038204793395699521085300202481117079005528418732631020991707403556924240196595674155927534187165038240108729053259208044004642884908991372821775437174173644335610264764424199165476735743295264606847267430852209023689043626641015773293774647477622352013118567553933288922052858274352356185382496314675624370077969200586059175986591652948376102868709691338477823235185707207477684223721400051111225846225218887933172801949406059077948801241653671326038000261423412201203101382833889366276335931827900085613436622058954706800123068701836992317966547349869002121491008973099618529134559395241043568262840735136022153014444265801162697943620869481481693483364516837856424259534291672407786197714680246693091451588897571167893205055374402479027134764238167273770303671596732901928406544989996517374141048727294453991797091554332811233268734125920438437217955002564461543226318967281873704112163728459925191274456393097757066607032460488605646341406683333591926562414869931538495330202726110510053772989273839797944182450612360452251419089516175794659788467963871460288688532907433287985943020136696462661832723251405638149257601491416321273726294880331594159337941504355191164236894895602549529123265873162307931212963361161780773008539464257565658284059162652574212194345721539121464433293016069487506140757023614731914411575327092207362581219703756593430631878156639759137572469550953656731380666579800183846244318355309278638046600625636491045253975463283759049860976393338770945088712634145913431764001749468136044926124251880010001038632358224772880326112915370845386553478076177210714963833616861663572316284592626130018529105391625292377754163509365094432458850995886062775569454967584731961963712610218603454685635838001631923724530788583811905924715031509862553185437143683570893881173553651130210817127093335013683031704657669556151520832155715282262870189236602483413102642789146240769142810079279068367811339890540003277944678683331363941925629310514444361861439117326650771268648879109146693033050338376686203796497479337098262462263047006867910871142921093509409433537484111879006086878273017535023744538689100806321819149667614649449448546032693895437158363423930651484492680953430699015282643894803526390290753655119344070988559260866944200986625202003725278488820324281343307371551372727642924659803218572180988728200440216044439488523112133905229542506627485677674840120957645922990998728484933483580009903893538748561850927237557088217963043051824582393837370899159723006974877535903797884391318535652012736452753716263734110279364623286309622168954519007370989235551378149886011963710065229995459588218873861377157097851126141979970235896603518718804339348903814946070596190021255563568734913396078565633856731909449177693262789073632280941232907798254289719351838050973554452172690008260739857763540888054672789572895332265299792381433381578441732423292311470214846768150208428665534618907134519162723955235335820481630426700284210005471969433227964328948489503320028295257950678823363504088628117001574622532708499046061375224626084973006991060922221513789880732201584329119173160146110630924971409576734712840926660548327171918226210397446540442810146755100784482577349521638156479663800381537839356548422531589075623459704723538238947797005377606113539779131051998936877250522396711534547537675519130029868451693537273991339425986435748628168639546520356890199819290358949806603867012731924027497369321597842550647410966229194297234145160184997756240710920235557608210833717206957285187955415534140762075226251185326332977628623811839071486865683292500701777273300716307331175453180552507000466390659364839034491335323507454583968784949919468344838320244896066710221303726669124425548188748900184700644388415050777694611842172183188854989229559334674041279111458636275759211743990527793912891171665972451951249715307907342590560374232927083439722953967056526313849518388938670321088459618146152827209306911815142975521558091802177295650425110753004558997621789954564514027581761477833511197079659031531304552474323621425584823327105094050601742286957719769734450234108773528851649578706726344599844129615354805146448632044661277044227351464062464364396151399100762278444164385770214130360051054715003782639565890486459545126657118591644043551254390608839490922455303765233824490890114742389299363312742439394289593332962960098304129436704184785083319419392337275187874036043583280932366200902157563208394333765782514258457599167255311746475133854468452680861858045776866796203246283450395413950742519989153908449676008518794941689432316883561841010321037962899744787797953133869155243018987501286282250074959619970867812929664922976152234745017062045911381523281141745894863098879709052716269721174598317015618934731168950090409151043448903518913107709557620386008955433778790813042193709407334589149335708253576794596896420700863594158010248770933009911575352012531918466282804952407036774500009395061115977503516858208898959268418209798048900691292971082933400924984395612120105083241516396841707362748067525940539777312110272688553819089143072350204612035131887626728923854651910116990437323918588645717617893490750146056209060716955425414142560920919033947405197070824442546552593333598937021411192350128092179202808468019883355337868516433264077311559799636982145576502581669320945950219149000865134906789272756776817118882491931771136577012303882436112445942868448848528177443169867841924526354601305641634813967863455361098054778625965736367826803599056121238311050697350808494637737168388573771843508566044735638078672604964205504528851258086141421365745515182623529754838229678128702629424062172909882994971176644668151265699572909050064274289130231030016291751020637897352245752176749920784107676199548310120121843040891003792601595560795806246381682937420883509187480782550583530877090316091308789213517468386573898099813041339440766085008229960095974386087924705926896552336041079663819694430640620865370845167400640861099300085858527422972893957993845419637838076498347026676755258342151510611160733665564073780815881717678784538550670234153639656441519392639146344073332184030594765787947116761140505922727947407016378618889878756913993199148379557183847566477802437037601879353032062421768501861565057263864049764585104492139010040878486098704554885893165276565620620851572629676880886530347522014952627271086401079693800486138090506585511285367521898359987344879343695850134388594151722901639426490149873204174388730797778121618357485912027058610060805488890540482379393623898279554811374136124826170291956155934807795914719758003596645145688895072403284036512510054902321658416903374201085343989625711944010773313559415107784731024716867280364288020095572903090392221911556084596270893682872851766488026789859113049077960134646568589266084032099668662343292541084487611066138382200732548203262099498521704572774468338879876297281210032095474183481979142906582941556955586711740727831682564116741449177016061367758446027059695833719817147774555552186503484426625309709665289993991088940269276095417257290291071370478891967654787399014684096560324143065679562019486538936579343124572650143073111730639724069812122098499410758259528415632720632920490674434365315796566279449741925393102567091975294234674416133837717698464679942845627347988794688113734359022872334538407021900155008985146487649042920681245627905903862262017623421273174980178201996350567444080673811254220215375385716415548681917074721829260868804125611906002208546732706422347096805074591753035674648260852895698958599796643405326996909838181592471033881824405039857569867620193318632949938718654539981760548944860786981281476172398222042519664084590682489426024313761371128967392492444491957283343396375014249462256413399741861021384509747710172703837443110507450282967562785192135869045713191498427518016140002805354904109490455863309606307732144171276404697255987246059705579912201725417781808967873166437710853156809893743644896929574645307482689875477152268803955236207279820985855761217017065512835436665871842817043552159053344313462144991908458678983712246696690110307705361592109822550198987050940171668538518372400215899467488282317135605881586873428352525024028510162558060717442132501569129331727440496095591744868945104148346609363239349330208268585840224223859257073210745035068422029491717724033275924076822111990740050748825678463389714820109522331869067229695807141675710575651544710265701219628308527696377061560145259749709953513297777507921223752900324432540693703813390896121184917787799059818068430347513929377750076522394436450146273355408878216435099472804130024892538301097965943138917325675886213198398892016804385431393572193484702132069884029030463123439850853492705708129092095173804783201701517443541950423160156514089226400136716319580071163618042271820352225631328322750413155423665341669100742937497273728049312446195628414778431063611626049868322330759368218625262578989078258923552288379380043027286136999711391313969216702542317780838012329097683017320068302758529798751040069077480672325684846873600980887390357074443384833797077323300674286127908634926083311194434415340115634756723087892238694082517008297306749452529110016508328515137709447213541203777861261070794898025572504589470633263074845039003556359440051304825120763919127160660126910623096435016509361005693374524220457403132571380919694037331865722788982022784481205031851242297125537569275323524704602891432929259508776746745198032291777368310753814622183734233536924657630610799176838658856079306632375941804208879213025308776640776103377031354574397041580653135202439659169593380778191038486397885758602530028744155521321980423549093204093560653305456073188785080272129729672954777033798151639443102558148755337935317952745362276546587642861866755378763066159723803842221504247347007313120602590997393879624911109155792334490379546277713464152483470493378078181595365105689166487297620535902237676425233995327528344433636934450901172973548743276305142225686871777594773164570476883604574326078759327088685636975609480147820922514173408224420710480476157162127735300763516524441116894435034205358902363259172699926596542903730151848736069244028207291749482673798792639487413198575331190799940673082211452221626826181783531200235142989011197380362511599178325225532229796336444811192807289926115544254772569748242696151242657825544297053369870673453669683892406930972893888639999217068598868667109942731348030218659469715657678088658480658234380982383472009353905529431023413779369007639151932485044914351168187710255893341801818104716352686111708072785551980009650397377970858078965009995927966938537388176499085817123749247097220022776270391314578496290594248854394614638062450303035464943499421469104999795183778958235626022683273306684159405866530737533841225108763226508382707342687220326128536802625108665546257461167716293665298463313782504826655611912532699201209152189554728585871576771274170658959473552224793976668125212706800972226942580948656805723205057509181880390572705831824740893079707549722046607044659217351964812747699310106852165842814047025799156653245111602187882462454432175123084507050534076936526686536938835087627540822736976323994167143585756718232281131439589397442205208940119564824824677482940333504109889988371198293137494820432637796673960925876691159381498357793398323144334162991416633078336427188211374442868454150743651759363224256101725965316134214216631972269903223383140749031260290339422546466102399905502969012521581416577916555602995247645228248860688356004953475997484157677471087863759750984317254300723714202876529387351813481631456269031362294583688115139232746413770938656028835221053540847222901587673947730085365969145272811871256628560204199926782987412814066407385632341297657576133478115606641714801602384866365995729194950905608866782500357311660950392122539981472781266960449442042378700124859506599383690303454718716612691279293275803599378464975903756556939486314410843758111439808472222486811098680916905803411915344780849626879324385163561309962270124579416578989323044068039507507127794146758221659409711229610103111851503522108415951534651019090031424112850625798026474664009927889721576912960410036979876368780847498957783130160693190698358977366144066867954099384398549905005087446431897471533297197183092924840842951099491056122713932792823905683071557416801465597230435059612342235572327219701234705142380651905673199034489741945992343055022146740083165969818411669304724616784595855808865758006865741298737251714653643834231967559824343184353589969910505753364312268827883903735957903972188458577953788433200325598766812934509127451925268811693959674582930364613474434165695554212402222283066104284416711603452882524485119436560799467979537084734659223265151237560922915513100024507094088964847643502334813972661776662629865201081299024509730268627945337170251283325076129088248447327110789852733031933144458278014921585973119485445991255052219973903119063112924324331657273362052678654023306244968082397500473664436027238196457614317199920268764827949838581323528932240981623960670733510279003217527794551985925655164732816313096965020508800052825292118577679780553646789919766841227768341301151061850293168898642233535131793686758522956664729148859218303035233583529149255603858807235896563295979970431633473380199109394340924777631799569560120233008402624683048770644756845373177557609031823780295541108687315912500533727006902133533211582379374100152874584795317657853136385702931739951492131196013965451469523046564503811712117571023767900760870733137406280000435326010860408751107922689055688528042908889179341695057401653606380136009966853141083684834314084763449976020162314641040757928900066797311187680500659732542781778149509955092106011160859381357957462662994794665625615939897318484564104051120960952218584544973657554586785097206159484728735912421619020980076376352201829244200678308676978393478864434892064163642724511231649632487539977332171879960032538276862388998328032339170451662240075492872818123579935728028140126116824015921367101704311112221965656904071333968409089440127749553463061869065095931264661900461204254865851090830119173202520008313849317066047188896797549125170892256384475213987873473971191523405687496737557850772713035879925614705716419339413397714208892103580585965104722456451836133512018659717792077274476920785952169433851196059402199592105356262831274263637250047149336287212250282883330591729863649871968321063606406860665822451706356815763811408322705677745656095786907097125342246015568714321036640591182257926913478138852325864246885085430932963180437575355920085703149735751810333157789290850891253517297033022323410885850282571421269179608741756935670691016312652425564774683228136062137180637436091291706466807032517240574057691999447359194786688849076279912952213744627931672608656028221962308496279290236890163664694638932179290043020222382361897677511285417893719249548198342348809610211781009320856649741990551469259041488206933528244867817665451033478436297840706111032743668742617356555846977193680583747298710105176592464485290466216049572047881772556310098383948875587003363962466793025670037336196555103765639926258105544322673673837324400033540867585149980239466829928110236904540463901411204595776079798917014043858257564357876813537138242023576522868038541020299993820526966783215380213965883634909553118922719542535808062757684506200034383685955537615732382432987890804186946273412188550659051856865933367672346436318261166248920596018371373610823632884413895947862110201015225872139567917463076946844969301292874052066110299297648127791875642065027761122317244019899840457361195357422765054221922097968261934063819763447018451712602853779653149860799431154366362728957493129516544881165407577077628776781377882977972576234557443123001130989859329696955915126446308707235648326502425317201184739868232774881573461949262499430481719748145583206082878260155558094183659847043802707870605850690810568353411187766577299594142876469131482680550787980445057811031120051606565848366778261660277770035373924351789310097185436223508731778501794787841590489716955554609593281567651251525175304180187252234548063659717630241383339352939570360317341572778600267590520077837188580740163862172442238560022225277419246957901711392737574064243346396323701595941578637488249625451961585225671477378971771351241040381390410017422387352460800271387706993966819439870614891938286396769637653789568449067261951197077864679984442473458907149876974376082980852828170580330486071565887244631137977820521664308958496904942420395221152517866550069364775653173459318448491878659219906061697983273585525846587503435403236832875327114158839646087485649783391308409119615574773616806732683050375420581963695170593090178543007476069811461511115137661516475207807160835587623873466931106783261542300737420948009573641986729119453154010511115635798247992719399696834316569404501307957170180051804519902259068551047481861289287622600898647202043085458193426482168115174791805462997000900653122275839847622185937651811523256563861762894136569065340730803183080198185516784507954587502115841785986432688215182342944998001385455182431597861846591031110318162459793760730895274796559423277670309502665820257216350186228846879552387108454568747204277413845934139750421633863817384350367053192032975729530298294160144607267305691288013148879168812412554513980571992109894011355957638487223022877625955461245324209044736092597239483248769192344983215862263295716055529213037824527902033444528982049379716408525220679723454748830714330335124640263264551334800322643830052664836721149010862961318318522463380716927930258030626956199563598423128096593882881377478201843228467643747488175301882506226973783134686643165655766203159599712416910909119708457401790491735370603695260031444280361753479482884016118184850851606359395093906253503381601598390751695101784874712119065549258006681430257752565240721917503276099731358371590566401942367992541477168935279852012535638671554909647050297369947004956968604072876499987784255624476026207882617578772103759147912859811325476682380599357338809939626438267785378830535951615473683849374136573829755569234505965843659966770356058720123864151409763951943421399543439968166503390747112626306183812068022288837834943723802279842351469255474059509358631317829526373009538875399456169941603483595069860257690871632284990691497396631999071745735793740312433639561611892954935829897550101966801746379399806137459262104602802689876987946719325550816423523439449726661298750366126660990025688495024500716082802658264057032693699097533890090243076733590419167932346445189536140866293056864589254921989092090112897722823274827808957913340457109055121741793100931530797454745041351647383990715725433167283305884438845646777065941380067943859936699980019617103077565469532625413492015616207720305728956225908621728789704125351060678739205539486620337325778114947382045675211644059281609652067870086067130041196141702189321384483625296350088356877677693554021259135143388277438331800938107937768095115908178853060753828839587508753511999157926259675244512392923597217302964310642501180733762110699709277246343000676197911761675636933039875864926428752234498167152927232777190479449526979738341261625506548808413365601589394645353352073564440625795678498581843659574862420682533604928070004918143949515944843374273667224859674699421457905265692183322760965742196418543373211732824445282380664092395121069762485694790860469521264975000708859131301226439427027890176249266224325929833412309998813337506191340845567305243188060497575919380607546269605931842692174641549324757493434008536958157856279751479296820173793748375296580012788840455362539051877731075948298763981646981620232368903555998196534627465674111114468741992828709201548690497575003300135976317714423904710560102582021675305250753213762118174427241098798953157021863434322034971463596330136601870892783378524799006678299962003653338519458933231719387669827753333144814890161487976561455556887574113305313782016615742621985150506313010531468885809743752446328780142356272686670263423973679275258998558463020666149976133964237042288804528066572868090662024878712593089430741834738173182564371171374305966785462022887778930282507816776541286202459332151329638851297382984462245385041002607772774418343053120074887716513370433319338795887780082881029092176522456402216782517718778259553998320696531317003894257951898683939860642187904224609780096373699412918100362497889271625140348016993726807510645850522370859681744728718100598389632835498111084048031077086311568480378422945897474522725898017100724562270830045395856629393680886464243154599374945638019817931805674510293120218485014488233740138758453114031137966170435293896948807184345396443435456548161564907218050832286702245481381204068275931343629981080245833417885392876644999756729219573448801010255157407517642338639924736065694193546543513232657471867410701188278544240118479078263872546511388480856090663173849203177633355842369297205938779294848808594933058728606972063621414675419454310051940879318799128518872699189305580939461466407922235038031222539459849124844976911404285617059797632582162010957752153738972432489153416400924560281717489906266567010785032047371336041698619173591239706941823291502316744696654918888646057887585297926624044368899099213394634551388948523307981081296482721099376892097716629885143638785263056284446044635473835940939069422112173520246962494654775551349576692550950027506461472654619568803452525600873500523728018195464216068863168475328501479186936631349457725014444775177606856613872812229035855336472611464933609295538947519880547596358683091378146433912092704103348877666140560756791689669483320467201315778518618180863376286880198866051538104282446825600242075556251956841648089129613399258686803646989931498064177995118977195607516895271012041862401720589578015591069291901364497788604243105312554886275171469771750649180720599775826295327741316848216234517241750464225902274087524334527685311640320528632267220637151846257718066219902507262501144550187379757352979411762462274421533637511168554737178379201060684978647734953650054861929948655734518322317275767109515998599024190517551517446509693033479620390865489127437061599651615592602562273613820232192340294184524499927858130358425751501086236443302520900771589861543883788180287618495161950225836291874963389918271713659799141389951098193126298623909559732245480378200910369240255450511193850258076678605239076025123900163754651771617393799286576393740297837847792977751027606744338671605769183963536266628293053322771647647546127627125272016191242139528757179306276284334832596886275714900743810164451381254861909181202791512779457582432673892426691716991745484381369332577209565531549435241853423943345509931095981213058961439644045935200984615323161825522006005111155710637451716338485366595803353781488540098980976231673112555204179053066342505585833307881723676023837497904267351494640256584605594382052084022669612471263107762190462329336041667261994434065426322694548358038484686715461779089869559835089286423011344348412023888479894213081359667307036688895733004947869105496640316620950753710025901665264026731301991927514252746445732709791630685264745593385238111506616705852595074720328879902865771043040737592578257023987346498062648544054773544926579740687801067386057234574926618557215423604401176864995815229969424610121098207504023014246820838605906570266084607961079654803617121634081372855403366034452046179518212407204535774796480849200780598547759057787879790607686178749794428438990079227414986187694957324860919810370177101256080935110523956429551580983517888995637898061790605313027902374178517078547422173632519381970761328339977899103545457370998253110312325751688348634649551867731336220571699297287393412750166230089182455771747214419224696249524448901740095137223460562110288013292323969014854595112429153057025338332788845141459728956607790780096341387610247641017690075095996534711149377870107556557609866739352614038167652430037366430931361560456519039832648730502463819886846853315978467340764635795199634765576845013403705637728342990908267596356807791522263735597949282108731150500422414607968512176159715591850768872703657933284385792742579004271231276725144074125524039725086715888797400060207015849946345879093347597517233039908406636456701028217732250077885258295796900765089060796924053746886038177555688426216120722050946594437790446883820875128722554461364115025993827713660435760011907141610889854265004312728816023034334413851084596016756358616408741619740358048692012611930641691349675257337374087617411636974144404431606882611204600359283911122058929857625450634213775331594427125602890689301393877654588263186610221791369489625860775196884829921122650389148890816558459520925244086497828115187979088298012947998242118237869066079859196938329770491355823779721785074449195019276300016885459863162191041399839381655063502257726660278714608504167869838685668871854913108731935562867478549690592817549178587256096433393222743878052475937817959606288979818154932470483756448708955443584451803797483526031127504921144402682081830604814061857497197418472078358558121167165070755002967253644108884695980220492533571769399270076552016813266306465270622364317782009937188768354159597928345980562848195817792624448241033702091030440300568102893776917397701945055879458165422936336966144302692244806664414289922677566774172155296756106618263952940137783377388383770699939921798943253404136939065948347366242962589594430357902045486908225331218928707369102626824019557092334810628103534663074721098319485256806258937044809874355254291111699430732879609293526473899459286592410558471277638415234073937940014848061270198949349357754749214271032649519660487809005426656724398429730257746586409887178025600163175140826300484735221341832856711216973291243312239546436891665981532062608154191396651422477852043242162172012007431485746985828517897552528345146860102180208252449335706790127050697679251535665911159029045029149082464247213320308425805729277017952501889350744148256881699606048759973255921416775961889024283131420231181751608233987096556757082837592364186094308550213646135107237381742935376930199877392122017761356303631674683028519785160057239597063691996326388857526586545878312807658955759354133715982129345208313159127166501114994429679172091965200001904388964519028518449557347900000959905688639115650441644365239332292728317989458161807150376950890068566690415790970265440309124006542147034394450334050678748101504558942985907270673767715038118439274379977598130548377107367391374746512169466182164544938427912579485344518828981045143666196193321591713056643200387432303856788529464314154455784057782426909543645488652346813193052432886181232067707073621260099621520286113905886881690376056065525859297125913377730962776281220836200936687691646352505162267685826660602140869766077845685082331211755559333891526339661463028887023365169031764042961723093041785988976627491701375783374065447056409228843965004550470453750596558332098385240845320712830706056540225410047553257444785244682119420054965765576358321959480018603160446017338371348214366686395462006738849484166730821234875959342652778016670020788421391157879499035932183810451777722853075820602906527123092973148504051869007972011787165354946670991117202021652546506476719882117610147772528917998475565944758906877586378606223533696606133811932830981415861728775477177301324429391390949627422137795998388035846769647392820981165765273272394102048860355145027429297889707866389753232295764866945215135894898071623065837875649280676852114358843232552007128789320011044967185475250648671417372373517341211741355860554905586416426966961097601953244148311488009171664654415047984201220935042646626213797876275051979932788382578172675747328370258446502810912118266949292374807347490703509060730270673899172097099078305469041403787050517767088202495313786667202703181000826627700284360587670697979121946911363189648452430070802922573908927686121003065255770177073944190634316685555227571853491687096767346939097001569371007121726153018147383354562779608586269225195417254497687545926343973966684868384108331060356946297024993592462403235110679902903377822995899666486057203631578196738216932119056282672451108248979461394611964039935571289760595108241601822798282070577071238527178386231985962487574535854128763515136645830148732961542232524386112043337406537390411842718738218504227647044044742267179476637020091193874073549153835235711954948897962474074248102128391279692771089427860431126617987630198762807661478457202242680254103635826850267731544975440017611841227098684230501577681211596273208131992271243442943721873726589347116530998067918550655493665281077474640016369395348142920145377542446935421827392276120449288067430494451901844800799233755710385705045745323250261681081432841680973169690059859502430644435368908317317725030884633656456683108617265185272189822157865383588309891671981060085938557312723880092608117872756497760964614360514574084163993722232045773402328793734428816697506677763214540811473544279321014609072151817617705365167384091001027428917613834857950765596231475587886858797244609115754639094339245074936773729692272102526376229059454610044179204508317459570734354816452589187124766441409994078870596343176115406722523829805797957815991659508909908102306997104531096085331461932132952368700213938485204478489566405124801627668080075776494974321067014188314827081997206725246976739457054113046800118883473529083768755872212125329888652817947367125226113873434810519184697535813507919659879055369794313097396515221540269191797760409623022195616943962989076277433064091412306077909519734085731377684990923035931612379462384883163157127884992527481105213189993069559328129515039126857103463974668353267608588600881209347271868938331057080011631027661908627845505614762246817671187326518338354236961881416281946384138565945213112744257495394851192618924378670682942951294140742361373981071462148172088257305451919781735877095802246829045873216809409789074331385594338259570707500950703172153312869139443966492049929991591079969364053892146330732390383951511761107939086595113038725979793212534145849477183570817125724488486653974955149945624516390826701902213886505248716052658582304302432440340699086496949835460371040164768593019421813708627204674287831220393052254537132979129483233173923675812524868931845435443758822371947418805096484314007117815192530577202164880864223411981308950499487533616014769050290768663436364004395604926124958428668633169449406057233505779093594126556275002808543293618278897685525970972892797500652614584470186571214058130302140171771431262147740773980759162155052190494988148949948979456444878207506644855671572997289261952475108002908638136657386778116158113324527418053270991208926785406433002057649214631146038545485755941933463795836695398655613955796110694235142640105668780543644245793130259521102755358321176880027255849289537471076266193671460542993808038034893611632927119679775245551177243381826330992202814691127021326082184557072880980297919856183639270939932271540487226352964876159663347964171104611012796489618507028611289387383173469347034107100621374975926707020266215228614463788403945614716317479703485999182236695840353330539952844372128792127273409688812283455769586915186892018609439490690393896016125478477987162480903020854109180324763471215345131301547290435074715026314513904664628301730436601427709933928383524623662408999454061944740048272843042611910378036884013236340334424522185493794186166667515984624832370516639718901207362032949037494918868358093929879187249411841460423542158994268198047777321104414640401551435170546958138243231136264753985556452140631961505418335102261651324145801216238498804114633671443050636714377812523666689672984970853244206875849121922508041168263665016930106526503368783912220692370843540727417194940028587722924764351711475111738832491951701599457836976687046408601592065780456877217349011239623872601825912403227570525521972287438308496623516718173382630975782110981987191029804195783291934214628664331385865436835400540159719449174273634429997442389772422573603704579640228109558409773845468554496232589706174537290840930207057096298976031432608450024560731645790091327552776277284842046403136111095866191924703777305661428528724581860189602893055037221376021129774228334623465601280231859586855910318117760911138717962847694875564419151175503702580487451948473642918238157434269307223922665147645032825544009301901875025520258346895126396440735416878998668981519042950701598534035656559301079985359757711034390395862282985249173551504798589797123482663567514875314860121247823200769700935298037981780777894202427521741285137353281971266252943479857225549451554295732940139381487160780503376645914201921873915716145598479410142406288483578510747909023275867451402917393269196034316125886776624710267609472280054599308460963046514014519878690562616688904524107195756579623205792695830393770733733723820667853992719193910356746524275874676501259520128036729848599736747744077661568822188098090261160044851901956989916563607471957289254178027051870330851140298332771817869371797267976897418262183276650662815526104517291397216809894587309990043304223632821964543837142323516650160680024041044283658195620546638531274825312007156736624797930663720107024433723832632921233437230270568920762214013463796196444306424803260115751155862737119042275458623764641140655311720638196766843648355546136306488111237376267535477526403434719353733182093916866696768621975041662046025875338261214080689353789132363010282931532853135268317176254938745594444639305923706986336730583014807946252402402490628748677040913315596394178208573504096919955177541457622630452631055915068559671048390318821283060634820124534052406493989774911876789077938495973748955173527211874612373477509766842028925310806516894058203697615920195520743240150797857002865008253264592135220627007630508142213272437260016320259495024947919786165568506410279044435487076784373713632114725959169764949268703231726055976558705068261610846347916674970558270918885760550576805289701412144692863674838575668318761448837146504352106206615240395593995953105832040728438006675603217200155855349472721533618225543753817926309487243486683979161820382039244302158807702164329532698114033237796367756452361840738006969047108350343115587368072181428187728332634457821291000893401214663153343458274263009768298206116446134403143585742925406422118774889830770645450747741501045242207731192065754882982375368853923130510239751374909587373860840704296390408650969693061121642592617161410167620555387195335026453980306544702110889460392965356741257741467668937149452679780026153224192719575446649675941241977979979735813273752284184501682367563387879763124264613208618921414388300279331215325873845100586072515131010583727185519306465214518767565960182834217839111646512982553167252223719475811486735548059812991373316649577029857285372021618348450369861065403990720975483010445834174118313994419674684825029724922503194190673714650570026765225395608103518562277443852567414350949805107013225315665022757546541475391445280203478548677966107173849059384413312257254031590215847692971598024257761623866699883988085480085388682582986426476262589764328955159424948737646832869693482805209104968791009704644889024577697808475647692432491016586690877914565282462269481446024582258973714515018006412155521585236666728020254346339502720237340121164705424868951617159286103450335147267592315034650891517106433355777041394014207473108683851806091496791278770789086722047709494487527841767851970021610673595921491790663888620947864935567166322609428763987974288540990781994672208905691673900820732501944425121183103056886898000368867534184912442614970571740623618768830619793002735535682931824139769526250082611258072925573809208100614013835305172775886387929818226451154862879534637791600381840660751640806413751084547154566541536310829410132946104116772592068115392611517987893591712636049681571395580591904284754673148443622557604355394004354791947974040703763500480456967361180185745647946135459172301877777227378435023878171340829725421621010094549280189026103642573197874761873994271318289115692276855723668332179562280174833613535658803606616197331774010456455341552519547839395125091555042486486019979352329273362724538225557054353645865177445744504937428846124338674184438050014720664432289354365017386650738930089250341975938560801868310604924982304693167277649031394392285639710573901012316808386328898613437120744228865264332832778501644007111013469636522137995744062864150313299111029100872321052404784558045359756630756179290558044456676944069084975488937854051549456614914167888532353359314597005278566193811156578946581886582847276858278164141512778284914427129476072582837807803234772685667941262044737714494652900639447205324929904386583670222233546318718482845609291105388609659963153217580714350116400860826020123929256063322364913949340211597124326851826262136663721838882750184169254187131153831238786832792259610532270045089101470822559821310654338461186111036495638897383554248067663195838263672358907112394164082181123818204449295112635891308330989853251148695250084264220103877768986422363086793361325618421965623195756389302422454008981222825138912134445220443489755587117017278049309802831969675669265113030244299500357236159552356989919379611546873046119183206597621903289066620568186487755974136672379102664950439292258509424499886656548100164360940623861901575932822531513527090069935380782500420370443730623975076994294322571200355966384431283138534853531710132338553339234213476536843872147603573064842386960871401078398656540366793485421597343876420377541642142142653630709299619115308730707390535159790708548064289663374304644159958180103796779892616124520648727464771024654979409460465637818535375922102536579788800258235202169109072947148445138350895015881227849471045443261059095719764584008938095095215429251495276782971975287698592372491695306975724666550320658862284517081471223621979101751076333126935176458366557936413169194198143590402218510392374868398626373692577061750216704840254878641903524727080184629589745564517880921710183348703523473172969431695280493750064088377954964187845255097747686017497831335030112265519564121850018292122079499990593233924458322484118944964134000932463342955204395248610013827051455337906122477042906811065476956990830499510116176019676057445744473536353931163744677935371763651977772768774915691401979357296869854739013530527133795984527949306624111409474004272634920895625290410128823085778164579062751683979260467689372913155885419381947542886612731127662371588756637745278420767419320464297293134496567499848418595806368453200231301011170596962850576182498014017778097657989313148270507647196074679143523391185711815073374335548413923630612708625709263964415253032267877306760457159019634052289070158503402496551595754236674198889020360612794210554231927492843872218369209479535088972150910676419055752036017414571034331416160274443994535244042259514406785447184264236005462190958071144542611544812850669693699558846995639477142648419523842914940363742147461158990940334206411891368567441644311801890776687017581379065682033214905862889584483278399033685178939070540982675339851228836836053010994875929082432795828960596297823358480812043916308776806261355141234458248817682254036865587418231094582961118332100101877193439073778303385825454224801564277570671531306544851686029357903973723878215563425312670577390430306902442747619915417829089730427731232849926601716971547049518039966294911622804877307157139540643111880090827714176720052802987369309179040478866474096895812653205375654519111660961750071618041736385698612453046506789489934212282757154074615941816438249950748043123846759414893872405324761587998180419814069563195220424148831113512397165870507583119539875910295777681035792103495442869047807490631648665068486213580689475586261419615975589576940712557745107844978380498964069402377936764014549556674343009695814633372925782736383324111193569912181923826047725765748943249187846747195630006845049605107442174312318344238941790087683631476700545320184512944322328642571285761839668695303637085680214221247237640220985769708258939042972101749419939749143630720311737596194821196430439387590039083025760565379915202888797749185357427039179561769885659108060962770257622196112956257586222306502629703816211198137101065533354737900711700380505263657554093719356119659025616436623731594890522293273535241300087558606191485476434987786843416365905569796623691245097938363783933146413290321228463824470129609450979076387945233886283329354208503389557049469515613669513018984952076689581864550359644834956347891926234440791552531423820881507467319512329472642305875698466737540985022729443185264646434420597209939026859395083584765841347345801694306879285928370382038553907435694172742495745322196863553686778056071267915934305840040724057978768552108186754627649205994429752044981440769982947782638361402450386343751798453239162932550197682535181402620366277299350735275513172189861181595870244910997791671284134616097583876763765501525064883219582464918984346532109702231179685550786488161624221619819574911486570684932926771457094501762008367553551355330498033417782246462354936215599386049220859262149727919206547232537346351835754482326321857488954996965920456664565980931148153315129859751513003131548077168648039980442017665733278997544161268249005894485301343266266560440299047089602616085627734091575488686958227049521028291604593929306148193672418737344590681312076583033112773017568490679244024402488953865452445140645983466941753370513886633124118891351637043418519417294681619863653255694899977175690279324596115114192415807583255829499481853533844681484754075079543979844722865472764115072122232506853666779762424139714533608597830928120830527799870662250000881892589920198387499633007103001695515949769291235425117924270130951204886711462848142408176916332858894901947442697250919987608456272860397990804507436394384872639972565387112682784493306947835860834114972184173693070716919958296298965382154424438788849301671363223605344739329059815432286344476225319810433735329259260305958568276137887924435980114038958938886934220977885325213305659192642038788850657710505427200020890232175190189007353760100536991151579314924109636873007325120466625441847660649823402161704478311164093454625373782520995992033787773297753855794045059229939169775130950867771669198199146105020413525244782271691961608302700484413052159034929211278324266402315517411644311710280304881175300807135575079244212152134620116082875881084138037055335588183769443015478810312831162614112418456770415931016039612985678321667013850189646934716335332606503231323339061586785133195571265279707896484483259211588304645318726438261424997537479783162857375154559417204566128942629468017777618814322644041812454432398170231137840476852080044524411278961937929263957666474210727618653764870810751110156627316522842294738982078870992279109218627843560747863309995759829217584090233969266219117641305040205430610343916484559709874780930560565354807321569421216124286895016502251330747367660475236643106669448606794679439206256252626165018468860153949235862297365729756318246566065583707088138570566747243736066018525254930229568184010391174146038364094424013119603363399507635734242635526651200782006409114775196853991675814562022312019122267180886343182079537001614033645225292033028637061775269610509808650904221434975903604068383949434167161973680807297228178431035855569270596988905028668322872286906024157746841059863482798474951103631972784921334350374126884867896168439184546920585990577586854649816156068454002813489146287083005076413957784222432895096556730112450860928962363367741173710287508849310911985082083078264110581593928630995572480097679327851947370528133596878179004436110583602056813659945290545383260155064594430430017455381126619604189831066082808688024439233629640852722157609188167138716260775583896882246561027376022909938717820686519305254021155344345841617238468530144373419808807828189627520367600628402182946071529525513929743583521116285031656443035594383358015937258545798658650231591362486080879252413564369532662650851729959429070167756742323861208167223191789430662400003055832461642805702285169297903033518741399205415417711623918232157221604357034811217987277907792542469756149417383960427334801190838250115905820725349930649650731904066591653645732640181329980516027793065902492843205461950458185084886477736277146595451229168959500341768026344426745237788040666658706504214669398804843588476764422924861211768635449114607832951425811979854886963783485759835671780370635898851125748237975924224590100605709530133001864008202274150509718311874331756363991814102544576848015482803573279458444324534502520850949543376122845197686539258252235742734145703023707071055824040066489025445509959400911795075475398666736482266003279318634344280501552143409934055609294671652788334093153775883447387066028932868467482058156392155901294732286731189327402351502368338029223115311192991848832991840922984232722582119385066870833483823276225616279286784938531924230878073034742351487458135153103450048659183596394208027990392967725744094080222458225984310470653780624692214685546324124759120105581096886671106300229360013025389128077517780498290367214599302547737397089052300414556493206376919427402408187768793946614782277030159613557533613304721581999455767466453752002641406853927728739437078325630625255858917346829946540306792374963857882574980267427223033793811732978414421472552804827708124101064039872612708943528955402172922344214542680852218085255165905169790230757258999485917523227778170860439087045188687747073442290793902454928987110474671412567073985462181652113579530237245006134066557296249159156104778536839414153266432987436843030973291823613430175212077195582160499354342824137120486458271496742836236383400861131201109337675250624204168654246118323557440637587453978868481965148613172373188860092660842333260332023142415348583579111918763729643616888983868493453015566780555754323436113688992824401633082446236221962008876149096853920798992858627306794473773780500441035885360260440466590697406915156817485910184710301347885257641319074381148881761991301588762580774457685161422227464118863569586103366198949242745179184404950799213698549859552446861509834154675032025533380870401317471071032198511438331748530131565049558590329490653527504917365859508118123054703070629160824656326165891676711894787183090282105268255763622535796604440919780112532861011337388946560412244277878956841313734758555290311003737163210687336816511233877921931675443992476927915887086668271183248187641809481250939552487261962365868042520114915905706067993164483071147486840058924079632310351640479926911823829651370094690713414678212447100592156846202685979129748559509463583011116644875301606631042121797052194650270880505689684628346048471282036419715477931666699442973534914033954388851378833440737253105362202187838138339862886023012795248284161827137072074829079713248484329459833942254425154114107281238009662461075152937845535759723962236254739416851965399183286186909692724087892639275315865082934634081871929684587376170943039323717358704360826584371167132323249815607627113222999480386909935370810508571318548950851383584687626260555179957183936467447219226429076009048793225821679191428049508593082826355807148899548823714362828543707723396961382956533465225329743637951964059954059399809190900315528042540250797173259462243554499404586948179123149934391544688729806608163425691057435023396425080437043981748181845840920224117415050569852875511690258644653091238073273920688820712610930056395165966185055774737958343334285410805064592279898859572276856409846851311543543122907436047802434309981491474803360774448712990574335452067158754446847603168562840165943922654877437838514954159287705638497431725388237927452154692296563663452437768549195729193576751647170533108142706886725043411208564904497569649423762368867209011507113376210445036263342688285101087351322991226258173624306034672621194080731657274689207010512100788843514529316416490751427418809530201930989537639944453729613542583336245822661790417519087635323696109190109052962371012414033127966006108612090826017790395420313958870231620755828900233325356825434570161636962933929766285431501416784842256423815609366472507169666943972092175342345115958436657641487771278458679511652750160239817261820256929911198705225503470463139442097571591254532160297019475569316310825357046454896369027332574319688096657751214749770567733578736863155634256072566901502275637695441881562266670851972595292010929712660166520599086190605286144245349675114767202748543657585716973015487655001126227824219450634694263903379372097009211501532438460456654098626324186561940114214377502851289972760265666590552319335221823578804300685608050694017983942478447888826469442636040962965637661237655687858486164151350324302024671346167701533350697619234720771611286489702805292660990476686538708252691290074275605683793874651344729734422262174117387318057708913393418972335260442219298417599816153207429919030296561794326088834175067289664575547035239378297354935890557963809086204359347218786744835716303895617091121907005123902939829483211967818966392970185657503857550675282537754187337437220119971988749688494779014944962171490112417191975211891098202721829238189625353510960403811930892430090394162578967173734852157639033824108197540402158278827988836276166360729710549517858536057989648079256885731078009456617823864077460962871112829064526363185517878435602355347724576005280878517051005038131089152202895429943924196750617053514611546579647999205447225678137048923063927828318272497620175236097015816101874484157408815397207224349786944995217424641176408907918584343284772721841954505879125133550285462327333487866060742046136029126945264546661974161824000307786878545351412005326187637633039904659550640833835017747479428440485142247893621435290715592109206461101983716273918314214292522309688337657323134817060299963406204891446027209537682991400773725719145350102880756197167966822083270370347614595242974611640166488783287663948181491277582802987099544638888347040280376767342855473150734306447466343004442736599075848151319925225412885077948540179399697236552784964887415373899444487722228513204290651180026755688836735795020476268394270419938511637426267782956424585518766911229241246788896066486668628027963954499172910241389233558630508012929821172440034459489044369002054336060985877992670860172363098004848515442053776255393196692307812679855407256795780786249955454127851339838271707608562222036136450313553366368451233862469789144234844193755563843565659834766098050360895580866174587102574124797550656329797961628673545068638020117779736361837165228085206733445667598906528148182511749853697458864071908417869098975077004924219427952897349696422487764109461427504284919321167253584082822787801851200036560341454183133098492681033333309061817076474187023553252515944973246994712831475961741272339499108978782104258712137022121965089593889110176355309020080558587429799209629382073616919796165606466632642894175605014750380933410741889063026287210890507077468046677936038526268026891550096763079575069118111785979023529431302963636751076880819853638820410453144456145474835120788132811233342825551391165690538728749200240458522029591569643514697301379136163005360646193245176583058362311643344570887317112165253366734364986607697030249083122903081591498894170394522560083275823260930441831837249433956305636643691662951538796375678166928497328982953264907375174382595091122348064534869506435130673804850603257030314083902783602763906768167972850434403634113841551706921528440741874920377802571644112124309602219016139850338249597385897825504166122638477062615332585736825850289350516500592641094696863366412329457683473901759141316317629550050331934829425787433939671368204727785454742754441041969434468363475033781332345989706154670590404403105056925007924423278171871704886576494695343222893460785776042490781802932446656675750570568740349601858323456595463741520901301281692841996610743537376124405157871619330546020525221178871565654808026228989328808087533491177704415200777005723681514802594639063180740101963203038141857669558668248297893680714240022153294106040782566277372667337156486710665067462291495128003601722784624703782412213123739224452886502989269033107576849400333196231509579244965381917399341206590042738001368259269567263841685910771421262087167457443018933730389915953742623619832305847794081856437614246523948461785308684049073467607805633891938003955958325764408430218463250236075797201091263239737124590237232843986265101392675211496206383507768506319255703841886944418322305388565183034040119589799140181713980361511035000273136248112603091933665956430633874001813239845196506783264093515689948182955351096388554507176644105934071176365827284576633136083955205138977613735411568133543603947289389981936580203022250751478493366369552380194808208947748972290783933754982950231508840394336863580646147124067759549660936093882491491136653468237995057930671855479295273713646725212535752835999069064609500518819763113691344059366129367612339441736387333085880825737686400888899436348942986390786359563935407854874107808144895440694906473473522536391151016248114325063521906465656977189923541092411996902857414115573955329072671677759466589995076124241131147915346772140974295654486573095389997346373881958911030534493388899442397403380245084468894371716367093937095900060104304860249999589045207946575233919396642798945638952164954998710182442421961161325824158934745432596146643543821248807256228940794112373042705295294796703827208748594082743827883426470286468471869625116017655113276704922722530844909288963004350063268180691863652773544298643805047784454919688016651307808011552015427938360908272503153978937626446041730914995204514424707341280552556376702723852971408536259705419368423880145875895542975082235841356334260555062602678157800073819406169443613329122365567714849442608362515234450558529160011376898077716993578165580103635633339834582255113378827694749900426003532563223245211729423907495768099024808722409814433234898534253830501820564979096326813605324595704249424536945245011642221448475125130113342260738123876969063086266071357219912673053029000263438932293477492339483407678973212206787794629500235336360587690715207804561068761171603522217310901286806325112092071651649870605819490188185767720467413965953563158839541239200969698571856007765878051135437980593524303661733300624062220242878643678104403504789305513724543893634317611823472668874805497902719128686554748698731657787253560528311592804032519925535883133314089059922639368050586873178645274807886872483565905849968847045891557773950161409377567512412638752540120529707005056452071299158643954388029835531470208497484733106337669192611190362666989725801784744661108270332791585166753585473703394425419123091928421675445274862108896240823513262930413073267033673939319330106806328904582438013478631003651510226799673256464294268733400730325783166393395541094685095986803998263556508030489922401639481110811703092236260999940072474881443934291211836551179894204607602150480605970611698762375718061275392014178131912427195198893676121468677570023657845280302184817902700885925753446044064067677263313977725177865173053852005140445086041112455353104343198473917463936862007766936956378020974444824820287818912329016218374003397023905063585724256380738399646405848867853759031676245259067551085111291414261002270670152612668282919018770138677835296970125637400510812978234015204720158196297319035425423206717810077513731930757370249247962649826948991073431242864139341082578574799607578030157055261923408994707831025326497656458968753168367225977145852576590650434820065820566338903774148329279815167676008039662461806306957404260054886516215083453314312766577772096098629901623822745228557852496797861414606375157706931081088716252252791660669134326339244305967575967671131742638123239108915610934256892736124389619615856476409557585067834752273617830636358067176932369781223855628309594250746519951219702644291072535395427461934242475131578859283242931062258775528222003940535661869522250533459633541110240445578610239107077043947027765864162163713865427232009680312424261511061424506769964817355038400407260289996341124872102860242683834468026093614280939432947061888951064436223506234850286411425224903698382023897972348184254745932310822516526702176026884382763521829326181081682066470176235399288192044587313616393406772689961960040546414499194789045356245384201808514527935501751110266245715532224624405475857140497488014677070907472498279922855824616848477409365683308242655953968829861632264023404578998729445397365731237800478120619057024751492091468479313249191678390735376754399270729217307998705316063974217563601126115854664211083844428287225581911999866227507263231828391968537744422922431230898275625771116189859933061529064180803438187742486003778959973321804521682197014171164707276271101068478545097136364474563578997087064433875295001724458123063968963929434080780460752754518563205265540767347102643061463320765630004370860002133179137607256786879163052478332077800985845459155948959537746758885802310626042079754230581796411022261880561953720029133290869609842955934333968171327962536141921044950793402305634843343558555276977216811030922363823079048824686168246553144183889210831997320754318822595316572171577320325366713589041145749967039888790353804470672508611181009186659420998387158516707639380619175246420953050401503307351929235339782714411811712799972218553822332405031165349976691793442867894441785402330959570229942494981061996289866085402755556606850865206832286557790911962174394787102898977524718085443585347949076285941529810207215702802591821499626365174791131084831991905752176741002016264204777434442061057989354150318207521807237837111461996120932820164002715563527527111078844029748063766566970297806603257413057815431805005336905080442053403746964498244702472678524892128200324195886800585973874837947229320741999703823987251988270984962261024267756533984466592693411417473585832501406374555859155189462449727211390852317123524791932625647408996974956725285438350291989990993963049386749811512886236097034233911354660195270898486255679490426948428904005488038019955827094666733109564105614742445723573709470660188059656333371070120349422726237284798206054805800344788255216239443359634283989809537609597442205899821989632193736962734014596859877876806358017496509802514680393408675507701126019838337453067709539210836347300145301586206919093714331753801846718032906557924855136588855983627184174754375189685945618964040073714347198473599127676195495239928434592309108571572897894443492926885362202106780179621878694761527141327625289068302327922681542136537628492128388740108645594676584477613019046698094663023478104751580768639805734950642745124577933467439398056643295313418138729690641104317244727169045578112316678165840243360395992003907126510874566187925596435988054565172240102226027608666906563783833692787011944485510190491553409242023001485434837790414099276700599957482712934636402862726735597635477855311134170142989830352728957629153353462823614935513743803655712968587434967962799147661973538544514597347975437922314068022713449518219393368463297114625941370283339254430887435894148854591500691356966843182093451800857242598561873066730846135020199332708433545019878693353931799835114249709701527622536861229642246055350027406341175670843662242153432583451838163807682789252842884089258948662702700974833893384439041555457355981860701627582004745797711837701710532527913192136452508195646174692832777514508382346872446267102438687800099672287298766155403569841446049462942357091194745785924193653246750441037204547513892801065725159618584590434807838046653626210927665885490359551462853538794326502324345105521467956110050455043148164146102897074822097631146744741693526673820209926935818228977515638538358895188963173789765828278886929702722713582683735013411225685603556050815465038350038508246437028141718626244136820093102684093076217161430113203499699996058916736711132655338318688676191979059750027570423645525844989518833926168886103349809682457295366229209317566791699555101841270540323337867442472486069100878784124159857743431799363987539301619400627342286741926806670233144905570444617717840213306964898832291679084593434071456375099895151585481460376857985131730684391245852638468080296906508970560270657573318827767973889525284550780877421480044113423029209264052988336299746301337928758519468694109793831734246482243275299675439284255149528205761749313955959727802563039867015619981769080504292283486126953544283739122965062196466626939563825366271740916551783621376391741128379519046922488903791259886601214924907144618835680626110544860699124559256762364959593894291128744424643110640016706877969804636295817795237483520152858251825882067373714718810620965728248062732051770906654123286835041472930365431055152565481050079027014935505314132498139132782253723470830390622478800724527291974155996008937520094392844025813775562270527099759473345423681095966129194746212552384206934492251132351895381791378625991421050236343836458415779798917351330158259578008296337226947327579587765192726444765103479745923929824855012984181293060083552704562849510011855248945365682971287722220977091287643440372440708748034163374778660145544744493771037953854699443662183360196976017741606097960003265197828167879178971546748589901002232723687284058250257126649912171885278796945123041749554868033820854414119708321087108752924816681208438376171833169959055448954884566158385612260841001123219745465411607180516864874620391695759812929655624403754661712773714057068880486616115636409045362155082386692145535330111946700685033481158496519063485976500285971793630632563679904036630988816437475387445569645835542387867643282241778362180850181423654034979076608890921244751614587761450304442777291612344473612311626903286451612220415047506850644831048270443579185572664083110115635279699936474441964634739081415172011031300926512048095288810895520623010983178194332751594920279511945275271353107489184695591994836650639977633497138756911809155122749439454463768212521926065162952964107879025166169475072051770211588758397993375705649905424217106435873683716334692905375785434965427070369049927144884733662672701247821165316423434485929078417424909057539173916361507802882262712045017479570843386891426691966821211845561449020470162314421377219398008254455975357886057939458069971356028583350095192984555645487758878496064051960750519567137148634072078390276360971796098962633858887932677492765841474308111702953637807308368181612828920436743762611818249203033027192613939609573004817010704167049216215454804590577822267399933279816566810076923621508096380044552298513855255042467759883885731950352236098179120578519970698335614432531046103275316349261168072599621769834616004596802437401129484786187284720421460561713761938158555574274393073735791787825564415944456950604027390238358909352889070896430054682511512487477368983324966212254207561598449534436543991790634209113457045446153719534890733645546396604288533897667425751197459473458043139200686970232535250273195602293471414583689583880054934753591374619154677501416129946614330487600804169265537584820467814308993027345663524292206091235628012929695954452018485575201353036768387498986547766507431270126190631109203996421069094531882700949541563832383208715686164194460972958483501909214055861767359115584956283209052802257035937504084732772470262331122718215363165108388149782086298426396064491964552291344814505063169010353388287012493478710098323424529510116091401622404922611148335223686372642199533499575211080291562007607607975092570694569881706385053029237994196323157486844163559122148757358317530008225277809086026756431834724624020871011002223118752175852230960035936565741977508489159868846565649535356570221568109740089527067330176819383462233063952847994149590156132247373788374522709261474936576751445673116190686020428011314585644296427007809009430061695088588507341849248398088244489331336620082531779794963413558043063293467054579742624975652387855155342374136205300347293500986595068030437867157199840809583249683099405542525794408327565008432873953501698767558498254635003130624100723314200917299759063623117806615926879999051913294981884298253694275820930760774314800998530404400260923411270725594712930049919232519927101751976187816217225563893808829777021751969954733019655693432385026098274622348556753816312741078397711453669380787069816425827337751871176448827941932665408360186579599577905722265758524683386832982522783146673958314251227219392979465008928252074594521515550918309204640507282596236392625413128135491740212531308699032208259781729917252128721481039674224748068025982691338986790995351843929021602917006258313457058834618921951938437427145028295615953970564798701491355495059628414577925202158938393233796646762469497644633758272836422502263532175842414943752758042695472431942062525132630157786090371808891170011595159094726740300514112466051376125396188397057999386082727425003262313561768191537465406129483072203435502083908927522789210025652778146949259448576435576565157011089163304477988942520161693650391109887044071726199861220821690282825247995797928318739444942436437667903201486366381269881262901250316941233189056730486441282808046257753486105295262605004261289397564577283082351238101493005162523487584611890614270291776843700376714844841492169078876707440614386407260564771670253942625258372335861531923824346453820731302335358133951292661900070758272097846350745913572052999007712210411840555339201943019288215820374038485766180086677793093861409237260792790430672641565427728012083496240000690624403679747180646780173690842293669858175171868388252870488056562557047313690655925115556232605173011231553784813912331274038032801878667307649279113991946583544655048853407847112588182622084401603741331382486372117287997529801091145270276913678291056190326939223010948141449047993075367633617437404612920648756205073336377257926826169768514694685265741730779106859001046106370950875159369984166188889089238639149514668021155781561827350050928635120704397836274131027709258969067926426143386303389641209617320836678549175167907131555327457101244563975720168233153520845716494945981185316141741152805810136580361977845114327991953907860095448301544479559289887735310053563169473139243702083941038143838525629798750299110582312492462245403888326779034254381049169097596942485953832283547055232906798940984928588319762882241006686068039560123460351166554655113986061847490014827242059959045687951482731134702045950897510624097817031130694080406929954525318044284919161804773473523316435972189583838717068281448362880949672560133908362627257824432184215085916944988771887509128923087881765143129973234750144420637650000601633423693281266185369038239855073795466648785916821447336897429601204972711802219458082355870945636076012325021916411495242878882212293671548699856709486486571345626082207277036372103415919001852999712348227127209342957010247347551969334808703120940297324817725188279370929804756482783952793005266727647626183152159376464950502664653509035474038054648768006037078404311195135818575678115932208045636070865567611908714261584735885996628193623269201616377329410732213037281999153835884969798392445461554753217644511713222668046372550755367901732183646126884070666997831642418552582475290822166082940983202303323325938780157271662656966575501834060765707444453476131202294893548066717789489342564984220226800571891842655169060418316296524729882914197707075320097738904994126640895717552543482659751222540368308377235034312021819931056136525184702369017532827506472124729351987681212132408194408152428349884201409695312056961480934983513734081879251694759105787716244750821461015172251729531571815386031048621467252668050246401501165765841536672641774485568156651921870374681980849597576262770399020045432115317258389090135143759902186531551739474341196174904591577763492475612860413713100964775033609593751501047764560618554258301885767333989717705641191186070662814918391961891664933693086806100400792984038938111717785303672437513148281842383091128264019657475818337445972455468030927612191831228194895974821202051774707239895533867270337031916741181751438650262764827001366239471754119947230322202322859814555561288779870911934720035222086226029270421345949452554134528799146966925057784348150905168994618015549059382580577169799250045656013813421152748738141612388391228074522261364397286100512857450570485642228770463564259415820154176065428279139260062659428468895748157503614570721447859345526487152997314810521598767321780793326795851177637032518853721460688606725753284929651100948307114599033982475684886652325625758162939317883818614591532679047653826063042880399907339341977287819156338079135156693249382437937267927010818639467689723800458746204906929137334842189882308279875558726137050986980386792925338992023974946707731047182855780580329669522502162394183737125858033664988159839958025428009863337934443710404144115153830809402567226902868652595077691939461447863831233109803729938037928117794944228557792968264373465298695102508288269966146447051437329146487723257067308568143084025515396915291113506478303818803702375465131432629661362275341254931562652003689305132072756780251631241676981993759777312489610503052365242194220688548602170896092276725167661243581897143577982481974872048754019108660154333524855059119839788225702216781172638671113521272093986327555409750010314148398747205017999116775339679647436791873286590408844429213977451413439225686698190392295249789665164595240582695952652804948060507847763464424741441061565967874360816981880036850023869069878032939770120682200508697526860757351184501901937761659139183083070663599191635045401112198264532967020840301643305635716497326268119367120868409429008605317747282091705100897830219663986577457267206890760608040188926567574120814689668603730743964527126301760085593515427663745926834921403228806577960822122218496655876540843469002121269205145684342992258251556296904751238840351131640230850608138322333481371585215022408428123672749327911068773516002588699705912696998091299154978929480291092121575445233775737528251481405221509462272586832040730861389791881155680446049181539672279261738332606606219637659065438274108298603449858319592836483445303664481849551402967089826972528588426601078664324023170668194640671470832076924547800415596323495580638024454708154607264665164890926719470538518933669221160549256831062164550270113386617924730198783043278879914126873639493961896389009332190089219861587587930043160880150150669899100585360285621128107629837429850681883516323592180601522178453096841633059893510310841848620978764662648144058946848590832303129102003680238503628260842514802918905778564813256541533290617500693609696656872861946517688629009185517451843744066754503480800504302841640822110726289870247896962872284368987649136620268005585285485438297026227625617686118966458382870125020074406623588589996561322753870337362424883272832974158318214329793285018473966329453247698448204908717496343086250236173248749566445811424289902922070347488395078851290543160125643007528382018715243313160138686539517884213523314663787546963821511499779365455502116377234897707424061261147631425272127400114766890711420643735134493383437073166469716125972545915822069739764236751509547603880866064033614505903377885507921868213894112857953949583787068705682120175574741759646928107363056574027253227474395167804566564468082535478809924131610980113954341619942232093874375086810336354974484849298585039211968253933574410771968833000704160281168202424263316989000825965421116579917957042127602406359372991973481262752512961301795718887506918553070466753980373697016061328743840687424488770432315591611839666989158642165317961780272387166196210248373352830283053308051568382858296463583208390240250316863284322536401264228956999104423005083894943824543978878976274192986919028817639622424632736288229170210985611827448384132473482391101992057871059629211473249690357870603581930679080293793070685808728728121720942166905551546472820854419568062298867393449727971297963459835607643411364133118305725684444502276553549354178224378969398640824055204619592185968939556050152455888235810479789819421972060301807682810638675151896448042767710924542398749641209328624197268076392972248960203863827407443158377920124250000608854797350556680158460869941296014346842554206985107756960960770061377340149794789795532837944064695719030600963918431291075867240205516163734252752061351505425266378493039975103734769134538437027563307253812920660826530799624622079937113875524740609369372833652172742685404927613497314564789416285376680995004008057955320302248509061790917456752381195297139208326003101109924082282568944243350141234503153832938484756406030846552338350474713041527488044981840633791048619021282814810122255628147397747467440918852597193921709774143046654390774918631083155119522911518035066000924080515035886967161231577774805403268973383301576515329159943086391296768612795760430073103018844458686858322867128958830795449681609156410460282383588835698796480773041815862160956461306680228489572935054114119480608589153878598939659631304653325302097166717014778582648782619882893849218432676625284208370846590455973661392021655761087384292547640896969896301258380121357066269865876110419779412743057785570829938124594603291739155919487621295573276183160088639908396394191677211580012617231404394957390951394924407168693575612682110402618271908473688738482298304952340892943359779014867596437294976642067823946026223084578529698195939720424818629647051514089468523107892847655015077635094927408852547685901294307127145529559594450324301018210389153332418737674683599273496606075840159163133972243643974466744721537719080732507949996971460725184279318723034354144307080111836343436007301289626470352118124124395944812433498264110892008176569605955788711256400360505794986385084152682516646743039141274374361643774453707054765613181426962217027079596358405275527884560953037536745205966578034233338308902983270674938656540963093783367340310981489488917189815681515405930630121102552241189131404498733608181197006205428714718852229371746659336679498579709886421203520603177215293004428130742503032782451001944964594408425149495259219865826251781422915617655020430448078997827641355841293330533557698441010012066347553579399179169622371190496767779730547715502852706028736200071065904982757887011272246508749666362837935617539928413555487938899395608270239575786627192985001656486789500169138311045464111887960269846872274109164477318434812715277913614713134294088427952638736743069682771437485549493530707224018140143512308600157537756452772229594658174819083328336973526462160885864260196804870176964416379067207821638282139699267951860809831866748457974028098914509254024883848448877510041234689857147621841544219946868109066002797008336867064883610078764521430115944112291517342018791050855986261635754416097725927088803737492802663124044649144152553462971449387740662813169832870253887553314011271174872376630336810274534586785678410376768718646360579658407491640768866261815267532989363294857363265168011963878744062158053195002136056711780075408733523531865113131263855766720702706702497985507069111975388240292877647737194803177504829617962162082858009565992944471266564830937518395736937841139992029122796065355088481148111882628230292011420161557762050058200025470468687601261398067603871324785731979729521520690241700414803289933355414039903253154506619607904882023335333810541258636133372016280997750098244420709415944383935164390099818427226670987989039045370209265542725189114982084628202929155081731959150097846121521582051300912471630714230803504599283508531732697595443856940981625700959752934047827800519840754309930691046460449143382887900504840135964533227693191733850716002138526290344305653141286618212570431913258485422352679900317073238593028356613727194375571010097135483144222942163560967639497420562679927470022138460675533027708209031052312846511542717720897822656189859166748124247943688125731102139534588108374179571518922579904023821191202549843343639860291657382797885319607438649810472406010295418830686742536532358966218186204547800629715673810529367420129892400695864104235387359041725398372270521519136645656720165172919470975104621053706840176580984890402964098778506786613120661216291629536753140029663717334619691648599840833577814280837996605707293264585185759959519366834759678201373336944651522874179866365897394290025691682822341430846181225008237320706689670302671068663338997557281555379117354347109602729873513020706779932947109336577463651483139314476555753734851601541576690185887422753426469704410790162654990868463470650310428389202903314628440231454469660633298657689874384135000713591125392752566666892290945356854864574621535411186926046098065128235439611411935097426399816870775568038102150222564297439158007231713137127718185955448971587238368371026879124760964078407681875414159290273815175055314813993409460762938242421417596993747552238246504163425792447425954250669048753088638980098709953881895986734269157710400638662918189286828433722644595941089989165355800620362724033900767087798267940175322237020801744854175543364106800089064275689429238816519182014931079380808310237671042128813453939801765924077932925062254036148054516386727702158432371001666897218931956418898975330599694079419687948723016373443809703106157167138728738237109860815353726237767557572570971358996608979381003684394414551171272975768147824445851455919737772255297770070195141114552974736196766165266724686090972655202364561061994653483968668781321561095559121357225714231428422190095211908983240856174637981143597247990437392351955009238669169833096308206595395982758955557043888367469642140959060561415875428788947483943675513082631434175773393703743887666629888926239359206839358161177580539340784573140627964581602241227865017827125528263204505510168248504248287314775280799916518102080413627939192027327741268908500712408953304551330339836631575924633899948118710016244566333615719166608987054459776836929471818355838362619525066890240188553847092529194425952426032076142767327474807223650067518865765547819713758393103943486596705461419391262660846406205861525788695758777750923494361707461044022255723591792189348529117709107099551624399541976584073515644685118943949632511452034413656463572630872658469906659941568189932214914359210274842807371119249335049789491851277967359722645452985599766771083357933860908192674096239074146671665830538013881150940204801326213818636606745703822508672025348026400621561576982310701682059187555911565106340531284200888105891859293637909621117286100243686182980684477315898136165299665050060626720951936236009344183617130929707156427758644533291833602488484021585639606330767682778222329250325254519935607731226721095816578965069227475019640274226781466866988807460564047846529728007286762845102749227506860490351240777405561625993220141555635260045576480609107550158150932667380881465183013617701817806194874439351846718603386996020555235576106370191298827328883950992452545550854143269237978212629928645620296050845908926542698623455428389014664895857720781687995516097222818452841735155621007751564198465516778147419357589992505221046744986662169346991480442663050389023473239191137845128902280970065139736686813913707826574830740070813332252789375400733024964149287314169660503973359255935984458775823958122960701842936113687115242529903494767832773687387661578225339035094238512784884601698928467563247140541316802789380461054671868635291684291817938295103881362360832930866704889611096766227006488897003216821532827986858351286303421232611512312686619026242219598849119897842743810817705105218574910968757284316173528783650044023760645926898587243006305500710634428845600854818927047378508786955367858516715673635035492730946738769886296144500680591440396133721101320961017919990222257043255478191943045690055628238782387712130847132102443308981814752443870807140333223250576785136956993404817102336863805944193278176164771681083097567223121202949079109541575735118779374706295431830431558533390239122645946208407959698077369514402995373497532813067141404590040899115965876358356112737469843003562870284955936156572833974092534437577260404582034225886370169683156697483363566344759561500307700971206426893874017815115007596984912103478410240388405801107896840811290151190072302861469846222590655014414769579904861210149258486563461437871577118995815309465095961503622001804094797944173555881940443247549724105949240062857880114956017653095299736904849986808713298514223000746914528589286334297337809715488940947243228483952456471927105371088507629715660868882412190290164636128389259644347472564549246023572488444521744458437146344017700830895898240242717097916055783258625833684877734014219852717784686740966663272969048303701102236039618848225126425233401129619284043013112104344673548837932993618015140133082677654404310072044772140867578146191972429813908518012685097380883037222747937053841387214311533240387989425804516545789231122213613179148787945439012983954644127212167338657136798037759984422773320073809063099207664673373026781799916560589171883305416282194276401700633715349668963291523436674014934958844526575872062854263971978632736179830525473595378887135188303590632258245750227061271198554230766830227616580320589666056122496192295442512629793242945846585958125032933884918503453057236605486694922641739806410192006893298517307367768566543991755322773783517272334354569797890707312203753349689284618729341158406715392794435005722111549699293368540560076744813800546169669499952866343807563276344551272501036743316498914387187588424569286411724987489458876917204705265458343185269630368912330052564092023165714533589564171997946849984108382114564002885332667757177550953356261277703467004810813105987924731421005562054631772210312961389532940388673387018906720068881394706364570113408353712090224901373045506886659557218570969327050504439209249551546959858086149248553171140190687337267230240947198860796977471628103363873175496407973621376069736988561666611173221952387505822762078056017705733101788668199225923030459765711295527009026606882890294477450554535730014638847478500307910386947286722611975847173086360093018466516432290145277703011374744251715195465896267569350048983888490781179298575755130388473130638257782007338219306062466719086019304297300193414074217234357335994654151030827882504465487960909982863901802600400261474775249599867615790843951270926563442759676911142110424103694144609429711029338123847474502239894774983743905503412755163909089687059683604496957348489579806543451288600796627757245978460310556972281837756637197071312152481621204738729157945368773122533346291139208774642859249825586993700702786223700920574017666658172930574836409886296641987437516533517351620449489135139828399955088782475512040525441973183245108284508688640470675233161387794197944337548727341845138579601962182906966691483385601536274285591348091858204138188571033675767866365520777153402009840772356264333037739010082995828509354296548339370436870927789578246625936608061304835370227750240665875717919416854788418538778854274234054607664892510828041131141292838017967449430967076345739540022947428400882874434225540008608497847417108597822443052498569219477427085986709725383478489321075888728074022389671474534436857603761830671387140487519363794384357754588366694490003828290834876483105137348520590391594909306902583994529504578823221714052385940076224835705728972220157669290151759471481593305728441163250284056107353320500817167114884179690490794334856603811867080500539816848233664013772662238339883991234872888780946326004040216708148285671508062613789245437354098086716359628704040735002450203811961620456944212366715199874425511524496748378116366163994834443187274581077219555516199223174227265713609911761170236270400595055441700233505354718555312770353692293811494781856490672778698791452741453498767453807332456284811820629917984087221071498757217237447438954777084762861844422785064084153407251615658039040023500828517926350224536517995483004585556504486111728971401315325499315952251405139540965935620042959454594597914505206821852802734473950852651257548033899878131525354960710984750657066297792976470276713390958613557086356999633703201104605078435459401004791195944313987874390626660233343392498565292487083734988241192923802627125759265008098350718889126244199679370170197756304868074628420371375394698614312785802788724120020162890558095586873816894794764808315281439482120537206372659155950776544453443821075927717692985450597367226354647589691821884794615666473071174287661488818783030263575017276946567365606552495598353989614456463197381844237286134663032785997858067035346585386139064906227168480183817334612451717852315306607262215634857882087322315794242969375413435582662491684007497218746310537434123437698405524787673628600257974113914481702013262794487666556923449586642743371999150713574319828565239013170771304839802069063456372739268792451478199640229933566639901466162875510058003376844608326322012415736749779351669729452482153725472167020082798636637095316781695560057434101944774801722603350677652637973894121830232939763749969651277977624306641512527939558676733123512844194611649015180201157368882107426521381529486875912281692688476596416517716998623399229805221932402110349511878968682008985889642539312385186196546255930172422266971925624735585188595258114001770573119726205802729222492454626659951547865714149910609762759178480495806620879392946313950803430777732585464131224958428481800286963877287514957544491533161005770950432148217041406497233047642565426362868180224233518604210896475971083907938376296115700721577799755013298400867135188303760052851665058586701306650100202985356333688439793263152898514320456507614893113982948636023845602434729211454150214134454845808297691339730702298446162936317760389172022382911956266606901126155385578604045316638297225714426598474818746884993706676892106497347775985057384216053092559829670269558268909393514601699092580682824830251589876153453435221222013599186537299051536901172333066090120092706207709568682664460683393750358775895824580432666549355259012439947013838345892987862594400697915149283915314090622535047727908442168050420001860645989978475105451230483676417392477913012239791329569902945021513271324617694046667528529880930815489910703071786383839966651658133755363525727229713934511777203502875344626945388399398755915083291549822333983483606401789990595767062304225970750750855602115629979558551691367984608510915760524484433069623371844358537388293918863090281553842582393594339381224326968064553219281806330773354125456436840418409078854925338876019859114347351825415843780519857447956513833489317327525033384531964928042538479279614214154103123217250173452466605989948845499328138589392571430166251417444273856798807838106505582740760299670163528095814821748988032543417240447485423954711035639368223369324006774782889974448265303824401019006483737735937672907496147726195794760238132807945978223202095066713579069022768706928632160761541390734722136179672249212566651339476632193581481959540241718723775706184910842040759727224715767181220150763763774298757284450016442008955428475895107555556234627892161739318545208954869604848584008105159433759107035998603724535314580710462358449943910272018378283558391794967552209821168200502116276149163143452929446521935583656492777054390272677885055015321888413881437461161061336065600665940343975627807568673570401481134967707656325174876724377609017425333620863221352555468223517422632750268153916613341170041170966077378439223928903001636046231442125453527701015187424391329074871306485257208067921528911837001085094493512378304343636300197930011388535818856780226375676574584051831700901397546668577208010498273508865530894865694967211424915155376357634385464789198396843678237439137385474931666755583218826280496974964469793815439167297741207160096550015791069683851272787000464757993538222759281388725667181896740974490708768924161946041151621988052958528389207713394948515888492906027309454921983974202420830886236957228603423799432620004991911119086186197565264048075097419441610693924514051715101917840030508646380913519296483991625956723657941467611295238781188286391101310197297746153439912754987642900499829937957117143342177668613238591507287822091451957902109479424366736893297910764261553476478374310189356948166092397031367715006692398793476193437561981157497083678275163334653510436123394653320889693896846108117696544634238112706035009384611094758090291564033349222561602793502763602145305561287760507738423068882082463381372265815654362659259777430233616981075748655660929872082729211422359059637554097867209353428916500405082536792247850651303658515673399483261824978781981350468066443080307274930791307262306136855965281415255681570209112487647846622649343153517242741922266813589341859628492156557171523134539616438392004700080033489480256391309287145434488498812221255959044349912909921087264259481377338610733952321467507393602525666727878259058043023704507718443472944829554245583910765063240503266174305801186761863993801022783021683444891726675802643939674613042440881252099140029882363666209981863245921529900041136469938115828054466067393954976774002036632069743182902591765739132592407180697927804127802233113422285356935523532948317887207091060033186318490029882846166178014180257768495361007684778336823424605540482882810667240689390704849808403453421273173050976675036303307420626213849507077931911068600691982230189621734776422133455394394237846069416251616414535621436718845277824042892571569385603491825918687717512820137862414766630721328294860387299571016646211660557433216108908470541485151770267414267966862763216214669773120489016668781389315989107941773918873702472517749015617987184328302130085089123389057028593952915945789056884136964817536672253819449554204809755233895001874253001891997333729245455014293638298084163898528838017796236339824957665568113935472494771432309668184931503091714971711526491562199463727309342830755647530643434929983839982932488683164756789611134253502188608753919394609251168039474103996316094566347769325106798818671246162033697159104188955729186477973478247463888793260259084556444895236325842055679784670282186499290353444391172740330217956682223205842763801631285388282855128996815768323773216476546108955159889371933336648757253893206609901519781658519641392422223883295224626030383484621157619942737391173034068168574577359594817883405289766231828400549900718641087166409441318285124667348875006017575355368408071071102779064315319538781771592118583851542284055287332184068671713814984299531652051593590354909207454307771701911528295087290241799814469586439605030498261731145306315489821068112503701630151788948580693237457353338430518901483525324114046010482687019502468310694308624296538164092036894422877308714329042847549126463688957699265835760775485369215698111662537782921546989024400982229876112456411606597976673198544647079975040291803016456803968618862333012924585010092568320546386713731762066526806252542072799797398632403591026077321886358396486047243149479695803321869488062405986606369709871817469686454940703908199456977165319875203948455986866105211532947658091438189851731296380838131992914233613396724469053894731914870546187373142034426554504547949557418080403249806261669930195052116700910921804888740539661160618720383047238580442572733350638242727339986719016969854042365329440735598374855655471833186811769273393304277358091901489549639021165130509543458642805307371748562693254201161927409600148303505695791315752677531738661860778046310792575854569321552264107431184835772281949375011610141739272868898048203428056429269651994719632812910459416088801521345230012458202926814583303821569803141605809156565863317130280691387450737427084428582591059791650004009935788925705772881977741953628766500908289336051778766788887593504330996158513382729726293379109246576254795894850098654792250714064573718660610374985984362890763605429504413473771026646484281077863060678259030430240106220343699430097583707628295877191434864060831166003501606849874291333837692332314557816579707195615503704858132109757187404209307173371700728641549172649382146453741040692452418346445543636371920606534391739379876062766721437839879293300962253376024260339711594356194425907830435318770773685853904303112634010985492722699015368167346370682547422182939449677516817579164588427120829280340016445286939226577538507973782304143926855371651800465038932602273573884971808156604454836450864694022821906442394396806479598475794291033693740172967946371104069736296076630876397705008214182373038257344764682740449229097253200955377774066823801439452708167117963478035280694221195310876437566961530027525745061409259871213306309806274860125542870544497180842194095777357175196427167312495638927883037849567629199135952375655904096304260092844727924845939253344452851913175524855489484753402526325896049713915756241010107885491020743466771371368661088509506892865711424744513087030587432834434939024380815645749173499656017541275764063718639726019028186245025875538993179939694921272763611841147063673549102773204805132663580316662207620605482727143334059308264886345133203396501996838755483418744269647229250229555657785007352832283951886595970759558500244465079143390164762700507698486917259498626044718810909747969884283789617974791753808801808682070642762711328845177461495181147226451332077807673347731491064230794792816755514706488449192751719020289073349447551070886078555468864328660391957994481881411840417187885554999632452012462004743425583818434406724043677947049399013309664386348329220225197342605719904784925278980579834936696582002499610423964583319573126395687025672112429024641841401893912808139959221306410514233633401709381923706074585312048558310479794973998360545276442824911368922352190829591775244952643143011861167959992220573162785230429308676572183841846488702693221163894402777118352926884347826590148208407554470192674268688181433226801534623404089743587432600322697485764334481580303859181264857379884655928929555367255617968545752529599915020714871530701651851671875027570488360669452889340072368267902251025636561545294543964692868922527900374989728885142858119873268697160320060727922953578707067838008058933260660552836236694818981770687110410066420180804570689114105450574918859746629620603245465943926528173815024443022220433713745435221881813989423454189347787351034391861778693928146486263605430625323293214986947277131684756219795904661990750536532116612028098229036864357135937773585225912847493442619355858812124744187693415844273969521455300183044109328270249520526076113548866349494844555487257188276927033133847416299307956218822691147603563091432652767042515780147926377936119809490473385368680355178710676913661349121911239656385434326254703557589437448695653660511655846515116516745094582618558758509453791244992630339915108470914923876383061178621225325682692593431165601337658231119903238481003402987604188528790882331499661049305770939763267992232314310269084307580730520737166679117896527192316473444819122135483506207030560687141072524807886873261163190190115521365040215277298518603978717489092007679657246351773858635178938796611760081544461051859210843813112056879601423585296547961682721848547081892351687243237747154741962170253929349948744047928002782057457530261574037940905578549448804344235993923693290157903108799915003910869349550031858159792230476217809564624577466253588758598164912734227557773361840943820913506134813694500219358515210260869056512816257962373952918021119664906382390838652851799316014084385443010836532982381645863136985233509914519989939271947077792054462193273009042266740100085496267753439932635374429181917613045408881566909259146559171482246322827468103344296994034640776020127201414874360668575265195701096517389759034013187025452409193800511314986831331554924564382779071837603006760933499121060097303805864417696304320506189097544193358316955356581389984933320646328163963650250730954731439084255070093691276026115719959232136447412313744414446398378379161583807423199679668313401595820713719711118376530183067861788918497987594724291382528019071083022251148387074325287848965245698541142193730462882180182790166146707417777256764973866439066145579216435935449544326860560950902971882945677034630928054355612411222826698473725227405591894204422853488959973848451545658855119390788739976772531492748368967683729652869145669510689154324330645641122700556911010648238006153414770044008922878449541238258806986508820900194267132448947914553518036083368849990897751844558057047140999130888321705466201049794864960687092090324375628860694906750612365245657073830677093920612611303320799485867439705112019811558941795354775236054544801832620828253480162586420933326565675893976840072692755792339861405586744926452182478299382487514588824983411274675544271399022030202521485527203911277569245466182587077886103938652705803998402241177497126902590923124044314990604400155395145776379437806508936790543927224954182085086228264644997429978573424970362040626995557864957165383458807201628115115146176016896639945568975133749021436454553982267323534961760586238674023430520084511899504310274707620415458311787691255444223873543082791619077755842827436252580044780515482158344128891132029014014750781490264810342205734494110006009665851591979324498808626944777559422493385385393778709911641714881030093522061575472354501787442797293897504877378833679430882424423819413671184989849239663814047524033112161533648946803930678127913512073816622850615774900094847278383056429886906851565035753034463114067250852566257190623159605433812827341855222664018256269974790253515413982513412680014773095228397942219026308718086124150446105381725362983956177256317126647402641479716508329159190030871335060505947844906706248821986370685239894011369172805572409870467363095270863528905277902798028159456283527430281108060259508061803263080070741341048989797757645189888442297983657501837940319815663203708890844346861306365109091753808708949394737694899962596303564513674744049973381990547789156961743815407905819043801030637823379696908867267187448553292057424139035100933501291888351000862137574262833790907731401400297205072509876790854982385624422793685215314072909927909938365854774096190296507002833400903490468725526362215083600457965638085724699159278180565693494020967988917383010099905913617937541312608338491320067860255049308190181725792668099487467671914586892576467898666451807661108543322094278836642076173582651996225544783423466648352386848701312255730878012597259727122053386642512225343149206334868325888210508657770670064775417552641702548151906957954715617572285704200863606080925551006522255486472948332811422689704022514571304869146073715263428812599792930073427389488273828264086946892701290447078942725939145416165343389822565271822029965824158005646659168163101609395922961045151727230633145245187371632352713208515923949972531219202014257884775875213375633485818897068013773005704492775099116608388448295358912215002693615995598763869124521921366097098875806392099693189817448580521971551116800711203950091360959128572851278530543060178474344441167290678173853936272094742560846188468926584236720652071978210974233276375150107121818385506760148525979371096476697827971786682434560526715839330203584561214718860943686324557505420305673915945517766361809095606001614710773796637561344564511401870680298664511195217996739252673292170096251024096698878414310898384191982211724996951233948669738902226088778561724580714961750593605138498931433180617530141371506653759508118368420851236091033934111563521757915373537871065265247690836739091551289654870936858521892886030082039728927499034294062411343277051508463269996635869223440488243663749360236294938367681997085571872100689787117430941421764945076182624346299931524131454366727713002758195553534302207491558874640557752987585737319584413373205285987202750570636916834864360138463798018635391431626308840535869124928885620104975653038856236249026577544294829312908164825559507181016714389921502482408792280414663430332841667181394669161146316657891038941086303954430089124800102913869545539772924987764414677250806712272333633376865693213155038579958677305313936226681779815693916017587041461203756848940108052203997547392551421800014435366806107539489280546416934234836008902099411849652838113829471477114360760802558836234933767404765342716866327118938188926503255371325464374253949680596986334102639656533267702938750812793246339157397464778406787532654279501992764506114281590734640744130494108163722310176288265065441476782881249577298811500278783895410164215050084868911878020711866272601132925266234390985298477413913256769202872750604213904138396612934614202209813230832969589165049899931028309303978349026527652654134884623680529636952692843903826323481770072442396533711852198811194461617880057674383849486778421054387550077929822030405573551385510873116081599161831254874752867614193584729367944531818757297609951690170681504677533115982704133711626940844830399058178538507229649848007963697684476951804241536723696797022119500032264709709120545250613516711990960515138135550741165977087919164619851302437234332884681048958874103811914138395694003415473965218359592659025955899788740833016528359861227533519026437134248802854801619611178302782877901061007426276647377694434317153796878568465008838465239322612045699467022394771156907030221826319059159982600451009733283439555535604654589766494739931633526283298345889830986755109173292630731698102293136889472761819934000336461602800029570756730543897966488328694048150088382608987871041834440924800014148895089679693382727827052180587016247513849722232435116337450258590484971250641705911520008946228144495601605861316466574789745334473145535189466873208511434144535390027055889445896313797571074046768173422229711463528089191161460009710541974001872760929761146007716122745207029410569286771172721113268159098086325506501958902161631237753574721526536713651559761616070061206843643075320801157563413762624128015028324994442630188632146468574330832836229889536580910593308383862042127981331205834600920710151080093640621622378665971337276245529357645004177066619023049540205339954226237223497136829034333609701197651610695287397642043844612079670256824733002536757364519767318312583845524763328298083241171784594556375088584359163087800981045216586671579906550011872204962968046454183678648155955835142264387682054171658242398894513951287406883401201053166273468271661598269481993303254044387987250257615385064636707766981994360552464094757904193447148922693047727448550897346560752266922729916299809929306986620635664884481224815302616686459102228159329212522008333523043579476450243269687686499481418572902836252917047757989719313666743967601654080175064105443119002808091593461893524085214376030280876112578487303342613945408995546451309165967722642649611979117104416944966023811169542825249831817463789179336087703915425576654940963709943350259735714718681563444261014233492870890893478779674901089524475496125976887329539371775348360322094831022586356567500743249106381386027592693299297133259695041059802373613069398814287258027125353670224672349237109797566404699624691184063648689858126910255934217171399968399790736501404113351880324631523797290823006925422138624441276875825966932626880308813029252378780904391941672963605680066590734451300683487576151444875474859405433316864963099104964614780580331489346160974925354354690773751898512724941647023126976859556971038018624687979358880110189628444664956919575479217239708781216625513166085870398535139784513959413028925005618248857267885440966398179992687581125497127697241988354338052957433423129768611191993365464787101070251855337133490020367507290999997545908737627891333887430387868060879927653416381229506059826042577331945312264830264055251375352090911324118349235628982458944517814788088045580897487046829326007799004416839102937845451645219746411503299435116033317023708188249964293071422959968051665146807161014805371264568766201368511126938631748209908476060972051487962252370619493320654843742274557697023995077849050423396342477308851823326512892093387049330963839007546031858181287870925116921061793475867971271199275835451754500382843512343229145964762620546296923911707923518331518540353857995027090935533129462188670195379591702931283428432867245963865309611740039691585532658745103088186485674111713244866392997665991081215698720543392632039498399806449725961903029073052937471891940733267006657436431846945515466800841544972312353566926442169309262367490038679255384894596381903030246966551711557815790370559728728668871089910364143417607268769569315897845769161053861235272423059993632290685064773918286034420829070235290056803143180800655936205748040919536577656030488334553674151707662588550058541198118100158452654276121533325977269906495153408932239722433709653855153694278449312924337233538586012588556820129096658093534332142851087799955890472548842602477655913331874288749670207252433711400976521302714822240285172984510624256945690965293598879077995052646373489775504987605378379446494168479521121143723710722398086531274010823440008844985169149921701862697225918692026899922088472987275544814737168555701332165461533274810543749761081338009004851546623893062740636249404252428681816872145427846965798183957120516783605357229193886894011342500974742615425206309927634874238813304071153655237133233040534196255407749376904838428851830162649447401814373046392725489971016434182252914441798754746586447823285489657371690339960286281407512162341215523666046349262992089779607763753288542490345121558401919754702428606609132441867028286416497774766404689672199861833343323381890441780999796558092920111917065475196488652543070719348300188075334973873144635750271474211439040690738157326010630918577738457768453414200062702446445933645920085530091822281604358732009512604211753357717988433432306337038949394129604078771298099366422489509025168708862008047963247564241874388954538164424593438168833277446253717005437200151613958744392891405641619114798894240491227588600937951489052776489840834705892553512190779259822360927879562140430301338310084469972085211436940510497408107565204406468787588626180291225371217944513558843493741445469866330937665729287541120884118571309481741475216875260734131899788501167207940743747080451854630908778551652023999729824233478503227559296103542630101135916301872834947760684394830254369660607147011742461976440237674905314047277009204282114106515665535875747602894508648977555502746343613251510243070219223606987212309489140423745174191710669150944209232189531633214963306183678812670544172765480156753574105459858018136952914844334428270285721397434684595875583976591999827555536302292973456821764086126403534598487355772404649063106182474564911001687502776326223780241223813116807753044900905056685726795689979725004237042439714831639020931449260098558546197763931305235976366270025737451266878691697626334256459478380465859267171173660906150889256689582491603379115507545626752569872380180982260319726169588647396022149714803098693424332367562919230320980133196001165851617521707820150903203632933746833554649858914703853020763589517216599643692925910384826108282730935511626989830104006949860855891167294694078408753408738623563000811059357642962699432496300078583050629733001265638105929641332260234171524200691741140103151513522710583133991775638046886669776128015780915721356652260190548677566893891796900275830115413570284744545000183002255767977823860236705816452476692299975216773030422827684483173412509812116544077541447172534293518524102998052183386825015376483977403303131446320803402338536242338781003356654957551521759504463587583620149546197667285978756707783077018954883650705751110659818361323099658433742289817774783104708875556741635057638761435594694391125918867593088687991538717506010496578553187806519592482950981235378510642818469108219150156806251571624956434509326245707308770416629642113806002877653306445714851926068826327076292697880421533366881529606334980706214686696308955685674879401887049578481067448931828102314711002534148053385751866046776941924759719388751533225067911676214622936886481217952432059334556417118563152761537007273603908261505140593700386477364650217615060775466964814101491346782880663391175335029603978636476401314970137014369234304294006656715506714124832388070201812739420788110571275033744950462415743964042931812303623766359669739771694910844539705897178854205723825992893234871897469642161604710382884358326360188790402810239708852597876080615701071282342485408268090072098583685434330054450845769264112143412251138589953922214496729041609362522030370018840207071835542915151980900225312298033395245354122923386250806782581425710524831776694945293758377513599601457102378749062803666729309387721124751319093459682080935729581921008899842751683347724663997331627660915913454623475453425550932929021971581839282362908758207257936501128145386387686081409061429855085608139947830709106123860812568861744577947932346905649357863378251104590079462381825118326503335238654372945624104934692630145440099591379018008983689474840631511176296061854286607290813599280689226825919189004439521398044063334280161335744842836893637826878433268012924634286750298591915922882389393164500302299122736422352902125610707983805272436509651184993567563074862721905236883213222784017755233316111681690995612902831970749705877338350662043024131734083085023261034372357207956830448817764369908165962635621055099534116066741132807848390090712342394870651289110390083149553543870608319497826158058789590076072172081615714544142890803214048030667851605777402357474873792217430220739878158773325924098096597557293234382455935033127756139367386810091628062582709561131202417394278177258292222810065339912242513694636921626515313203317781627503097954893762326601871304365701826975619171290378563561345904849648702374688173756836874375394104693492934321203735383202027707771856107612081495554415850289368261992612811212629476258842346968076073359712395027466173041813697663709668404853922293001140592186329798986692212886667315976237776981547449726262513737074634053704716806752105190005113562993586592397339025201266915183463274979653961091451904889886986172573796745087869839316242582056244534640490302815351074577960661657144477596935993310273282369425521178023864249875948824946561648505859859934035927989961078061645338689292659556711888917761002718699633174974039088331659460494549728658659271528744491898527328649678034591451421360946659096459543232688584059392758223366493111599283368894110928653551056286668181402495983470137691033709879203049586537084604188412310515493043851919451406362142860527511917676559560953671006330696765461942635989980439285273621127913430310091535106278503174398346796710989859818759658949118236082760782454360510832346666781347559112279880882801132017996637749179333858335640853552908855799016272950998455812608996388362915869297638403864071016680495574109705156074343038393003449830015261389831688768942172733477951531726243037464489360226243963187320377111716668276648792084372214139752154845814055532711980519503147024629608285619743596721671427056067735087125507913003723894364860966533475969882029412593421950875779388036672336841730651017460265863192702982211452163721302933059057094421515642001607856029671072872284833894117283954366099242703904147409323455715681274552926810274779760950868044228418370132532729166395379359822685403772513906274277232022521136310268737669831681586316282571724701549202414743619418915676393627301130252472161564441071060063338016995578939044337619491966846761807311722816692516212794771154050987851222682567674216628412793005225605679751518949565003083002040411330773562984164836337998725876632254606416232676938840867746314488358683162432924593267312626769459831262530661290268489351444122382543634981466876472682544655599052714668629636966718503090967155293923624557005665690668297768801375017836919131779920528836608319207758053347209821816990430718594379493033611958135675696084686024114088030844524502088935661331907879717861248390189088496625000981373605370145646160893528255286070303281811004823192097567412356648759309975623652439467084709857030618710766254587211753963378067090751490470988952563257923529484640566271183707543302444584346942962988399194072608731953562922526053541394178765662790906473469572723202120327332258030936536777683609483264101374267529175669491120676217790516285301734078860799084386684183575663627601747357322232970684058483088113616395779484547025164322149409195529388235747760437891091691844614640657045577895990801041142342704796629485451626477781022559956520321298581286405106982740843244025872444181457577198249509056649508335133235672602375554914047886045636352939585876550355064099419046568481006015924502653987283931151681689178630684764134788051897161751862688218400825959640733837065936808041592267910231253543331016378435769934656695496901240323098904925496763136431204385734813987038143421646485114353105746698102790777662492401334923200460846768735099460120371262973897263819113476158975873210883635263617450023264850049214726885796730996486935246338103215927821452770363288025689023436875772852603776161931455513979744532722769093504750413674429122659338230513427082008413642792245672956402833208202333920349376900227157059782719177977965360466142709561078856749153821968887964175794206944579740977827127728857278989314975742929896123084304667680814443424859012720392926268424586766347138013764265684844662431738070310385834380060765542311783397029515937931612890388475391227554376957794270373846014605769549959263109141882169374286069529209625382405238035459082520224248697824680717571663041782156266027770917444006582286011406802253904232036254976490494715906157342639967834135561626145216213824591372737300829454767645402649484823854364972061934242025372959364532813131060253945670268354244811082357229533581130995632917489723495014860858368859358408147920042425241278040921021177909823223580375154742634971791995907834697551991501347227587302153951136661656383966152083476852185977913979531213724098460151501100196998863326721201045145634592976584544781892252519702430847870060630089769905079180816588803005530639080127248494741313929986998958502311574194737201067172005603518934313005483418539265284003577921586210121384774261626877973201864358834932578793869992414645271839028747789967632760512081298900266400414499906285981250407971260109577405331835122805676699308131723645038728907082733180546245212859691811487233535647213436024308330878348749397167297427050864726737504871604594726332313699418834829421958185338373600158545443815689902074416055622500964678003259861659299589549955421506115373060205902921194987415579853273987608888594735393671730011243039225613746585860710283457665671195050219456210009670047522512777366774934154065135908375938833069301211115989112240415725395799355312907961064278154563827309064901744791016853344069991676697567734928990098705233118887597287523151355288774340102828799857488783845759298172515365883471121028727081322741845393111574004230542476008464493242407325929015957990395768586558604155334384866215516783823479514026671982033219280178514377486780289323604526218293807904163880756018680978831358501041824810495324222964348945886685410942305024743928975831141983389788404485598786189198286201130654770742779146922242552185828783995098030863781502932826369900980002414372199899974086074965797278340400632990596000278301332062303558650783169665400357495808410059247884506007181682566424764527289290102761527928145476085822845435586049160943285836823557767581661419025043175152625780380070847643699690362788058319097633670867070155106035999495278439790132439557762381184959850088934281570000702766502030998501040903959655973753906527139203533181207191992192852939501045326488965519602813922266389942123899719999669415690093023912877732837132282359322268057562130036320035922903535945611054981741061487616523815712322704226071696761222450040285588251014623951181410903946106612649088342828865389120970385082029585425078050822708153682619103974923835985953827417722953802394840159381880746040764319518905298511441802040263277170787100411433049186978427874151425796604387819349857176355285597491599591862691408979444345392604620457315076174798279672533891400988369163846548289007535670637322531541216703344074861155259207046126999555161018296488200537134984963411183452147540158767509861696006275087752205650970044051959900040189983136696915336196552194269431839646882671414097137790272223044560023977986971944344317474709125118870942931070958901327170670047993583891465356339135479897434891234917570731932103708974811861802238526619507843272536861864603555075261393169311849443220630466856690554451152901450082974367290194115361387900929535132642254383983514326025200171651094042645235709154908428592861059312165396266119703091880256374753242297758045749154090279939407881455200172541511789071044365359317844776370175756875589585946408174808085781309183622400952397901375073607024929252809881524548260815298142511969502536565024785970684046287511509344009024788395612411200957961753899511459170858479276215492016429190585787591327677325363819342055541885628938120192569683694517162944832184042388813088738147676320207866656292869334119470725904859210519761188531756918717439661863125028768028862708596952371042351700125940386369720211065717897114736229744046603549227982952111435854318420393633844053048729554627095138565567731428708952812463850832301848976116991936409056227281951489770646666184843628233544208455055133610339429635892800242072676045883715573277962947176990016786100380728169124247274054026802981183839406742908891736416270278004194410141936135157137965057154135166384696962220189582710839711561080672012549273602598317294357690516551334659280460131934493346656146342038476576916932471073795731731483268581363041813937198349147191176553455000091682857433962790825022476426034740257710449982068186546686376301883872102829953133367278131215526805744001798641527452445234257622493119791918654811797803377799865856787184773432267934181035074075396346879687521667081217531991561733106325235231431103896573759447306299150227885651462820211496784950338741233657539841645021733138494723832480961162881912726320192063779059472732262500722444928948028801257610776043516820760747900765298599526490104538463610641340780471123429689167048713210497028521940750357023284186561013384753893365001441208273516251323702745683953456775383031635732070952814641682104138025983231407438650981979077439139121929222379166700703437525616310517601266697602591618187299016897793365016977192708509698459106966465037297499805372244949505209774291388662568818529644926063974610747554605486017923440554931494505470143429980839440567443669187722403534740397115991446970990672735002820444903421373357257275642006818690086585473432247277917055878035810629686753404571083662307134281466103474242011751384511880327324226025620930195396558996313691535708738615688380689617120557582160138109779043104083889119444368933568892208761710980176035693494561493452594303102380175944416279083343899537262125294303064507525086323955414686853965577078348271662176903651438852843228537786308894451077247484514187700471913051134953983893421184849605355125037259955306000098225099214186080918042272309532442241038581779330568274777510648190457119783267393105840484232669967577254528554775361841296572073666984369808883351224860315711896592516738049084409606782607169218297604133811851955976632756693648871083044569378644240164903600955372673451681783145279981078341861795777184573228986380563370346743499920504931182293060206124219527372225290853651144674140098747825791870223266473329224163657236948239699029808148764479670764840314416499587390658172512157968843714378744264499615060689681747079368199027278661652216381361261194988185126042097051618386276387618644783698391665265072174704158178287391537368462842467799004148424656701948900622907790580488225605949127429370766327263311391253361962436070270539024234534771215570442907269382003118071773006235469873293608360727804542276075280777665151764003850307522527225084943615778635033092080250856993806140718855672847758260468047090311614315155881202867557469326154428781872315821715769068191282532736513198142030685129419365180502642106078085078626257271480632030510572931590292023391408810117949565436624850627511306092327848715393179580103345705033932444435405826639420874288343755712323036261378924551807284530011469266647243235305818634972162717903795375014577400780158656214926725495942586548112464209753435628699315956216179624713988119850692764035697814241376025897493038137583095490888211269567356904703044381116464618380202379696060641027467042758506066578880731974132547890350835192402012984925468563934007881845630260980882235805314564259861499467162598258909592813261049241872966395321256344848171129870437218682158997362880766745691230568092076936853230001608564404480429364782719847522379168063999369226705463980453807905877798592793718092953959523651012046092035474999439404454521019752729888624844337746993547927381613473862699744389682306545945558940085160709216142697456442585126598233344090767757758882335534010803561957468792356560501419998192171417009513772151968785266092649219412445772978716375643401810891591036904648217422686227853206206589291752081720579926994090825290373816442660056202956002414223552429532896520259000060586356934354230082374181729134366602509778209866428409792923544908415312406254880041511217765957824689862954822214959050289731267226311168887837464282979847863228166791812016479366633556511273036830223065156139459694165587683186489094203105761443666142707024068357734807738980125144792690314292841228986815892390378667501729968111752100091435944048127367306885675863841394955616290242794523717311647320724438667423406622564366169728093871985801030567769474506633357716282278048196985780798196582911777422587577669882708111939851781575903878700822853400147215848355683641734361372026825605413938357236187572741474872350313621338886997684059622893483758427564384718993811667351491877549780023438767114558045841743982110288407642988037979013124713520313331967232553755163065221482976413346425886425881731793737894026738056022253332799514570754980596082924523911429962306789961587635482825541604225239675819904712693533554727531349534902800739957268577045894218510350613492623699306376523561501321938446330816640821674187009593357740880515724340061476568040652480991051270085816720535218920907284148764983328037280946341906652276725024476119997278746219620353775164245501585853040250718130996071798725985080959505409154335629244690442251457698628792673302330416591798844513658245552147916664672786755723451645403343239012245015806263896926197937841756454390932851673328912280372819260305960430087981740977826729456396342131720374047244028690867268747484109250431158991751048590789580566204353112314473599344167523457012096716129636339014776187021330992180560207820432431775767620330659136835729211544024632664760267113152025472158911792642829957425936438023318578561256774368865674761924352406624603492220010378007840938932503657094222969909476600544853164879616321881080501821439623466279741510933329370849858356823355660931907839828435382510508761407854999921925289117481295642656450607204198764419923468091765105586799454597993789886646310153515678390014440794355861323723609346986379929782961531036504676822862557295760739676532438442225404030034593260240590455080214812374194422458643808564663702219547991087765905796601043937328867428414197455274623077402014878699583645081479287950549930475726102090882479668760089837419985374467745725989665379237681361176845345737375141127523254454306619304140512102819450087280876626097724004253805689879740201525297194869878921967043618269035216584448354015341365325022849073262938174577215647597467538862401079810434424883947256274947075717751268363092849981638362198825787064122614246537686696792648077205841280102383079948199501516677252815425741104812092835289956936738818121997519228244674022473708770964627272867695349425205158717500871292112629931384294037562316710137891986611173480350726197258384079729907430121295587623270251248351317707067118941504110166231914926084430162421932613112745811194749798619563743470630411180881586460772245839248704253341104650510957665350235024918997859926103948855362467505801198711705832157664208328510694562452371169564332551454905208646058273820333571974248568493121163129067909291038657412124145252055177483210267836997174503392763068906308238169510787606964427665419995140080907799561601584336845547060316554622084873382240373808036766639102869323155107716998792526273365693934942813545546161592471869838760950638643349485681182633673969182047249365079729587466746912599731106713328047872108624033536629713030787686385855698423948040590642260043070389759247073653143409140060971406829285617509567115118071162818837512271581715486080087467367784085314371978714567820815969605048361065851234684593822529883150851303428437264532435023253019562974589923410895280365568228047135919301232176145327125233866947589685170992306162065251989064889435602455924243722714898127673978540189463633579416553002678176966111392958166448879425687139799710946908804110336437327679915792992754346531505742898403028098629056011295418617175846507829124188205039249496997042409691128870456124948587457828227246488535791961113087092373486546824061751388489227312786065047052028003046424339506602352593756029669038902489482864637476389426253481134471329256322250314706442454510616550393025420583143627886478844868279352959897386705295598619724417785984934052339400426371362214705927664707219716014675671677687708028439377809269646356787848644451183850086059697101171279699049636400816548665888138283374826243792315205646572651266524410056962816326376005593107069377616607969694316983510366942417448514099285534911337937267837379798935242339143054705550575876577321470354420520062694645001832721460971813232957372142626065487661153481260643718962263348235715551286611399195082227565859791803030405865075739524694111534926534904374908171953092746338518087332300684289564825318128364286928608792102840129639866640896620144016871341308684570203426723286757688978762649071480855120214492558817504212242870658696022476667889565371000239022285481594800988944588767789792384804105365400630975252346821524228554275856802354040216494952995719882275993088868413151424117010894766966129986938674126697284394986005179624035583558425978885609050382888977944246547488413194636694874751027669097102701820770916984534233047276717322701307168220429201225908199762768435003605914916017909265703423232739213063092524051270060051441735987557440876899506261703180870042436494084639901589367620331260049749132706451698865707965924326615309561804434571911732304375029234169325278750412296435343736911469378866109321964932442203496217394022179160173679248170020995270954119999121287063867330000353044970674242889206599421505535875107472802164171810140879204838508037551364587060887552922997276307585179326771600271442601605400703933413954780755708123799389710011525200898217224169134101134480946595338501774312974712496498024852582412123618927407164320568409920779149934600450435007468725083824038978026081918654546241542561682417476953411270482040091920179328828106808375078662455039790121315356580847679620754360425537590352667470024965655310303549514310517930637784789833578031468352876511776943686880516691493018242601241515389188130073658063377057291011333955038165475546221098793382084142416216608251688355811685618034681706743357122383759809680083251645500631628323256194497067739710503568848022532042617856676164306472528831674703822116712610841704414630884670421193539328546939135378085096681061563208874731663750211006181130813361898539546833937148947227062876925978846337579035500019547077974091761156595556067928942642331824040346250004722959603413525033740427254776613578666389507867115036805295455423026161373893704517330035164455882799373158209050759730760409873389528249290718331988671818931643550552468994138101220910754195969692936491313978617932001614186283827538600605582960371099690773434200872570213475388844635663790443978201993817558494516752732512806136079097940383189844472460140678193259372747029411375913134612824415798123855408751431597682367868500937710909514640147083300743666677076778822024924987532452921092178753573227207535266697517174448121132529704303428354394218002952460995841471717955615696979706589401335315409002172210227939840986574447197438587539658999112142034959449651631606784290931536954648109453794576935872030394914964786606263069012864093442168923319271371062515715076427106282148681319270102264046296909719893332962057465909555671560421216297830483515700749948689225114850294013188191899805812795374944697818978545073418703673606108651821750168479208929105040343413862940047663492114009678881868914796485516338311969306837099896368751581168975889316593578941298728102469046547058305708719456012786266332554630868159693905000434214317335208839184123357516633952522512250771947152496049747357115413930024059852153403729550794513094753627475921464938524795119748471223228619141513598497625594834354455961009559949603615718452579178005094110275992196286871718631987348263006967879014116044624815862429106025088871680091347118374388716717110634136806508351209481959716003832845948175186054834090943490767540022683361618641514497746492753887224845617731710576485366851260722438837759264194374596648085847051566103122920586463659143008668377692735200641333553410813453286748060439721996387494757692207300041835879111674496972123493448831009600598250955646108128424644305050505880012203287674256569286994936240251129361739570641525369688513946501923819750266632814082437842278891056686823362037608685526720906791787263408337761328350172314444693479802284907798628149681983485190179458859951162369456593889077564743878670369635628819755563646259604310499051933282864906467022913178904448733484204948176152835685601061892848570136709210021537414108427534957837892028349001588084762619130720110619250891160218743321604783164564738634087793004868197824532828171019246731029702298524112891036501156408140879570781932996771566772363765137419227959444334947749392123932093011575039623101903807977577657975489945913431294372902895137304896597301084318486133765920743165208642568870380404569709334412038737204067166418963727016484480010428136143952111145266237940428256397064849723333024836382532639101699406896793013690227542716968644848649469156656851549112166149030855946255203665253755568371937024190161321117651762818196997923026831038813940368560855223304773595381818010304627639277640452593882951731677083681872884874536117103292577336201359946399646081163289043384753459213358986677076011988634407129724511547649253226694308450223430144184595222564503141374559688181982288783496700113289528786547996471243875276164140823734091919260464752498131553138422517560400169266178959174960584360301450683876806842516564419783924152124722185579696265259552012344753205909416266585460755737973999628613355122930979462613986324163891817414633147942461852543170167872451605600900993280613640890285972756532864442362398730575324352077272985011035419578938752617843973983514679882666966087199908027906661017251191386987085406513219102349137794925764026540443369270856417766474654573190403831600147532761669940323300888024045131477413700661451726188849576534753553596049553230508316671998859792760027959095227003568167159686084264820637834626904339284486691983313549621088502541424886331850701503741073666903911415944419301131275924030666580760034377579677722168049529043138484531659208936284501178550879656745642927786591036517280246838370883456931701383341743487200905806812598175296429834829898220837070163354842729786767202818407572483768516071779986436268713152086391974305307015426534533688411712590767186853721291787041558765528215985528021892729246982737723562916361854867679364835660475043920427385393157486221611934462128796914538443745795918817867164212264806714136830846943753873819345511176806225121357733165604296158221141022675170422403408165544565344329087264842603959560236284097128574183344681948036032281490586820430133033529686373112545094793285446754303586093574597466808400304322918800645715102255186595963711090035407666851632615819539946946305434957539477241744734451516130812789183922942437183254546053163742126399769773427134827502640565722138715662961150460141270326288289771649715130890207161550895884186089108538479523267634179392778201619764050645260057131406046206752155471197148269875721081174833249449006630234633750840620655595164244199413268328596747265432649170261357373888850417271767486847045855248723247919204584675731850288151815263040793687583968086330841081140867092232516093919955712617196706995470412696327256799751828616513259649195799082906972329228323663864322654680367589598936815007020879168111553768261566872437058834432685463021384183525739121437265459311757283068243339819460118562509874119630269758954178720076987658885436328733728555537951140749958917545077497129655460913100962948434747899601764680847730669643938934688690880566515487003951962207083212665941778053388527550617898034221041331018262935800598549000955383426525450531378219122845087986922734338144897906628392331470612208605761617129969529470237284937633208891070188550911665813476967856093605507964707896134401947321540333575715690057501914348774276236541326748468761104873510178482968988071493517578456181210532396620292623426276778006303015129505705461552961916921365112065164492395454576655370210487568198120621388324576592251081389815620303086619148490664381661620288003030225044847491581028048345583937609002249045236555224920815361190900269927555380994685675232101844783757725866687671008510559792175289503354267818901277148336273150579761340937418542085425859871189071071847935850298802896473838505267976312182073838885663644983029955520779578959637554058119488457917341594718052955580904037861982408557265909368791160688251802844678082415066083556619612815006348751114981302161290581354154896130057409380691997657849484764866192930382060791449084689990986551225496924191479823220573178615440557244824512558971086963719869936551043798550884107856032603579998853653814617010430133232576007000282269774379760929707435476611052539018245247399396284578275493286473005922082896899120443794645362134893563300631269950483966428252404029539513828385478681776880882835386153764692372299283891899440712990536589922735093088251698250510318823131908059154759898392324309196239329924652205124427631563339698952934574774522782961173162160670977032579257125229175587543365958018724224691681922576775592064993273715340782846023098749005054180084484549059232964547659586931967130145965933025402713426918848698089695601170526707037534797645087442370631672272786678340290342348311592985706797770951836784073102066625004555272305972917950728415430655477768600351131376845317376087139478131378858656283725936057130389949695846406111315598760630333672018024116775232840215096357768397322119946246480127799858129438564500277370384159536196682798824505304165908092235856211623001624778346523774847464389562384154401962961904327519445561432062543833440143970753955096224601374619087878767308386489502506190778684726525376301457316581830292704137652183317479764060774172437650583045825449773493613424518643949342257164113616845907409403472673623553146831746563207720760818199496956779633192730958295239786906183106302596619140919014947625297402464562950664924453825551014196273719735145095630798777063635219029608767094979579094394111210425313984109035747559475711866098379719003537434767592236034947153905592099430073688637519651945046736313294642556914777999188069375090622439461145218294269197160713036619386319628317812240304811207324105973603520089858734017127301853990027824034542216689074798987946368518993068294680139682484247642020098863518779555178199189305925444967346718567401569198820645282461256147359935793870572711406098683900194211625972817921470649340017277300820098184557150653309510993086020412880093264067073927017201567621866354433740390951145688448782271864001821412148720615097858133612280802847113575294647546972749027091057852115244917301650631923917812038142914297841042751260386954368685135648016509701422400089638993760448509625382321657032084019549393174482394194643933718264157143082656318710107594881927599537868687411795398920727613707280794366205022388114056258587183978963442185742571276744207823972159693165508728049522324414025189396565706155348592469130392466534285008082287342768738291129522097325140741549973950007398199812722402254018744684151674325254556279963636415685550082460996036226853729952850554148914483176736318785160994057805344839893804685741326004363610175033875708522997057053102562606791512643464304626667329764209300864756437685149948253202811332573816587144637688936402704337565096747661731535938530239924077298957969244134260957934673958582850635131938963253694789007802511774781203456471773438127313876889158830940751219803699576100689234192554602060636238362349816914359630940349363673968824272144473700576093401313930300361176485769212472767140636396574811733183180926236188839261730991350101808679557054795742869471262642362460176140202170181034369431913172139076916749166715757442229603509785686579128840418568789979053895639593405379575299353399194198913969843983489102823031636073205905066417026587613898745814244726788433631942119436954760942426817687695600539993509610231990976007157140060372024207750212498891072077162061545281807985430355671082697044936654113146627512774076839237645511991674779558023792843862702425999114212789997026150603656152041934796520755465080852411767839499089744769631628740086387796365696539527574194884092143335122432372934575308461157238001449193126238134420921681461773105040134341049242730865608910645303866755536532771663947349535932870514248121647393695049658367164346784646639866400114666511107054858951299499363168148689954886036294687869922051119937585645129514842434387953452706652395873801957822940712513524665307534928666612613109083640552022853943533380083825900239344334544163023331992440480866438844407124998814717617057217713237622428394970230930978115413354981705773378060770551051898037760308550972567544287394485734153873940017618263085683645099742813443216959825798796590316567325383817898605912041040796404483505063997775482087747087312645410729340959697786545942153199251397272615177933730284877285489679853284336461310781180138578688275772079576373784346325015429278844522328582376205608818122938708868069984090425206384600661413846112916963888145608844329298145230188286116484946923588381683439529905183555675646486031038278542585214335812113084027708740066897125482499339152603691562786641475056299120518526448979132597322764567253171711229832514772926072398480882837074134628942455179074480914143934362237355206369260042861224197309724137167834945121155739265220219425788461203731324269673075673708476208763803329697490057726001333882298943935127615574271482890756943932630274594377452168498824242905896900081595625752163740234863655737160475259064623580910439309352855133054943176886011337631662873609374998983272251549695445953074636254492633424994477005892074561829731549663383432042412473406982876438693310639022913453472099588786476789300995509478869609495657511695543835827540564816388792914770240042567283804371575309852782128933829744138732337512955539865671495260570503338210425870181858626923047023122102869163970835566387765441526637611894781294203881469610242804292822802671668749230522984281270997289700807899221329085969557032978225604205007974768022067207578935747386650223178206061339751680770188949569072568158815337558793924666859652245836526204983229545724484763515501504341025102054232623132468606084313724853279377110209831022665565226166595104251783542197630185081804863406248907806263656114867139995300750689199478660955158715914822504604582908039438069468291339664500538374166811653930706229897019412489179545686777006856897290588911347697950090672223382882762128983600330748668905550535115964906068501728752808149152803277143860166694131895238027110468924404144134961948694464090855258879327779361099653586203640131959801614819589181833917377863976580114227868522364968908541408787723193505767918525759024822747598699666321349556546890669979745688531505189864567437553824726047464103258715274884318071100286718440989362483210383356237309108404781026966685948826216830904702806878643308663813099682031451990765124982091669108743971251605100113745380421063926015480093884418875153950411700026567008376413087710572804079677900146209761405449427612442797898648004219695846223942729675119535369517773574327076562219467034478844857406380643298096515871210874653183249293748366081943451843956507887620026696095910495785333029484407719085038504322667320356462547905224815341692092393481978570337135688762409393534690163363570055122122087918321114998933476404019024107803519793335044951719799550611954519145518845290879379928046658609403618713973717928288085789082608487247807025924016427456913868173159227401275527930919571075307461396826706274846160432437597358659005824879161898328416317923669781993333700231602682679993755954730328270106532552343579362917914989924699526828133469799147681285238622780736973970331839609416963172269343453538013140155304798985845869330347110891243628392806724498532686629144261778368981946487231346851306275874205074277253555013539442647741330873639129463234169461896369138991109036249714653454364466446740209987652893690574500710079578070667418409403482729460299885148140064756054565790514592531856263454173022830633267654959801133178369163726533839561428312981979509082495839101103227569564656526937549854647926724415018207576230375364294829869207984582348926537776927731015387077443932068085889120628486385211933587287665067158811634663660691932733881271863612548232142722323777245937262524037685485261986566123211417144331070558651850002339133970239966838925945653364348534604210530588064764667637710018585113947218094484077860864028177369307548910957139728096955599284987025977629057338499650153559930070995888399005480831635674986583439857884908822528995141667677670611077567965056050345360946366689369812595702383875287930207078337179788112009587500349466855418813442272556693159446154869505807576691730609500273011272907002424865265100536367276102398589001783716178857521124505762871102232055789147122391491566017425365018586683317880094380862034783985863621806210893993072421488244274542142483364210564139666973079367173888071952991020531065912179224833762475947371009169753278767497687461119125861560128383341519923947667255803308904268772572480425902211991033297336260301396107315345739812929038026960144509444189157641178636723605506275972489592980728717825585860411434105487570671274031742157249825079181591261823750077917607614475553196157053827529854044156748777152267697564419692159694825773297361481952943096043908659878226551665434134669714192503230119852559905673929726381126979059940005134442315968680458328664746783229971291002575738360849444014181711764113026148337131906253261217346551336246296297899636222185541157269985060903482311196793753028854154510146355231614942282695364011985295642739333357867940704764900219811118164915662510904151993451860708606770642716187149125063512968256861222327039700728859903912254451550450639390764517682006978670524620480371789554295459862685377155658733728733671011345524298455606625087488135713506230844807282896960220918335191184490921051044328746299471593889698359422618409226151405723945733896962455777455358121266934325537924264995498518574083504210444466451062512688065743085783373038247468677585596570108161506810544185222541877034326806896090561428996673833520451050742843600144703656117128332375033827072262582932507607644302445385498819830843005881282382355397635720134001731652885688214511261096095398311450256649479971604940822975255192476091812356448395176891173072894951555627554615529067064140854350820635151913345317086359274046722425041600567795421788934720734556519207680478553722648806678616307137570306543435580499521871904745456256048666475408660144142627663288939610421779909702699326343434817492498530849856175380782971054857618596913964374887517406601795349994347419028617339098121298660087732378217014746550355578455942382419934956438330188573740004479524482923448072243869930419172487335680921350282315312761661845721307710793650014091712244536003839610327481871607369134390252111188789290254065078741089938205556298670692677926162228198559680772332332568916710908670480409644806000911959486920636695415128057863308044424273265451382736477318594854350102252290455149757597495481953283787727786066806130593338118255656658978276393564198003889429687021065643630299587383752240850235951503741359935681384558208821868518812999800467796016331800085829100120696951887865472283394668006015559681342127452879728668444059443534559985084394088017689070361062846256890570772918728384766282333585703250113086468947717419653211338178979181626299397592574686383176614245008129263695631222456516678950997269254754828487316150733561430669763061390404498105408833024575290169727214222347952657302331874431569127337357736075565387291444752518312179770348688920360159255764124569421927240623908891669901063699223564784469188669031698655574348828264139632312402306430949858576839087913808942745266460388755707813882495807166966990575669194732989505733124968013387770625119179397472894052720642665885731890892260124584390006015949087740124714745233909808633007839863588584105277655867324595919793427602435574165084939140629356282497878863991416885232599375619662158868934380289231102734164246552261372008657738122822551752249915163773537613250673274230246773019075402015808697160468329394695971283117850444066953453400532429114301814755473025542329755341650584035419308370875456902590057812055827241726963377909642869831544488256665132936763615030045404751030060550965174753857033591349719953372387729064804331959787967974353769603303097239254646153605603538023682837642736924590066832590416401998107109795811134459052684221849905542427029272458857557078539331859632126512949648262371696393558600816870290717648231154260087707681190176906371881287607037272593186468351572603956693676810954252202841636297630240469938102441329263954722674617083294488472823040208345357453256644255974211562809206486375719739715278077070280640594142719274536891011867104183343205832864350830370524478263031653160685042575825081873546555572703392685167232442676378400575961337735254640385980118344501893319644917564133253671758118734903582391775076001489663549769932968973892808361750033802187942569315735003418826244541438154346184683480322194837944663694887012798959250103191744301750826538156598971807248615466026566071436140070163072635728896258597542819483116413124769297017150249783963777421163276304475630242651439681581202638347406342767025744618648456183290667013886558927272581459852867314423394209404755282267101934854250851449471844397310317183507641842047638478792755766955370544728087105001614932187963108187963647464150119928924337085563282786825279684963692442257213707958154462923302470291741071298649207787527567083743189860203126012206971621338894078380448482308586236708952979983047660866878170614856591032412677772289443517133948726894116871706149918171498010788217731897828586906906089089149503190000427251025766016381939883879738762131702941747116488311664130077287184691552373244485776648529263336852021138336840225053867593629418130806680400131419486803327284681061219924300572252443349512617224495212653245846053186835100505410920215373392876119383000537921734780039408018506576722429900119084114580493128614762071510855087842475387613310059184850076554178234443911568398295827227121867855716445290558208197856521725669175447883068239798277562833881623063058335762825421918061721828399705621397023727685349182311961605339753456656965578446601625180391364604075781979698993114163835450571736359383290658161886735000052905125419631197387337774842990276159097116737855670403246374518098792029971459621745457690119593544934607861008436474785963921716429934322871367984414107145360555184691482411723349216638769046873981551927703126527358174472851983265441673094014201091820099274884109611566237282268530992722468277102412551931647681441767431158434017468368357073528816816928547894233153080742402981634901047754948407645618361772988479971692990789954394924174224209628589130008372394285709103284998761884740802399655852390463246100790748992581200491597140287250246037968412717327971025880545774984280244744418358748785366108573321901432098621199152574843607739111391156568075411062638565038622018156827862505904439379209761662465503793059225679211473291001242472265617128989780462961216586654641491637243907758003641337451525097898728116448507015440218414920110255371835266802949557783983537896322155116507804881448348271199962437576987583059118578288002652812560095225709199267260776444333553049519237624347580139268480669668087323596175398480939285392032738350344360923302803817439877459904149520123143318061526431730716622512672227799052878520462223031569615490256915263093103826740395375773492040741883675407327045890235754302559922989605690264661552031845947868616878065554483723488980007591050404135944867952239058586888162340590904967276565730859046919031962731519253585236780697968408783092111967150119639419678968385761103665260529722152317758203118072002127387920730044609082260076113242106358553975505534100007596638137251203285080438223808323085467649163672487085003859525163937330329181093566389152927991172241020742904339982436943805321392353730254596351529228173866055858925452126944076745350382026950820941600630545825036583037693245515526193989073994254040569662723578033823453895846028922561409904895759051262115875258404019215445455102049664337493274721425766440681281332737840692204390224773189671239745434384269485792246027293699542026297723909109465434428600751507186084174323997026240516946323960392516713300210640746141111590463688018300132247444089379061339243366940263636725732665407007370799137941738538525446454363919388619524519992554292863681718743924290944367036030680784442056632236303037168642983183765919169678379212488685214873041823519935380934439571260843046340822713510342132094233295937688622063258703482527927831417439865112777934931272561242388836726317049092301857717217012634577631742883983544301423923311243420667474549736080602099265162321899602527073572051755618944835512959066581791148163849544523694748787496682449814396088635278892960658992333620208316104497870202176009142999800991493797672516556122771658439450309835688270155106885653813569799596392503621309292644525928160475438348392987302838310380280789938100719622234702840732261044103491807686593614723569072781295331609760753242005250770653893714680902176375002878840109439450526874605535616011354009044574191511978271996033414216793801179654630479691720215144124320294369419707594507235622267128172572391750718009942967509910001958866670422145607301803658610257961016570238342266214040526253242709407515954171100344118342917486996478435300019666483574514827460816364181803373670141707966802242751513154890503467359209269971578062067165735988488122534856831377618643259342029230168843917579871118611944567002785976192204180344489378258109744650007266819098335051001095190064452920799103421483474018731288571262217407909521875583772556802975027554620168186258922986542819467532843941601187606067095707259003255676432673823769215090009775874922036500534147664416284763428663358732719888275942346561227085434792513970489780164448526957513959529156085229128983647423898473126846956894511178610257642177384414388889735666043790799007200522714635382735695030263533724025357040696065073794523888155038619058509168579677572893820195141728467565984823498357431132148618992767869692592884077834987019087239899337046255003191734404185158390481763792632320092967753251622209162429755142418868504278530936459622027321264072277013410524062132190694655243753411805487966521207688728356852830764550269611445776008161858344216325032308702961226608470203893146768447711776081564405719174877505452016413968519722908970152715563015398677375372521657571475616503440505507374487816565792158638400671559556878613003108244296737977991611526163398256182424157314442725776693353920049736878834389032714970524708810811814816843880343995216021516957659490396544593401163357083062819236803173496116660541100298526427049523027051527821288126558508103559949245532177402588418777378346016558134765810148821591023519031743883868757216869118898791609003550613338419723054909528908508239346404884990431019554027457595439672069555358531019061694410380385841703639174796591275942279049591626640359937948450240860991141741885812405450960572284321612182614855043827742178717455911057847351300003886255493358332346571239708083075690573531133256587511802694180642286621597444077930574392805476636743449588157511791853923657175251450060496504380928236625497981099482290612628702244991340948021566082401156440006400644552972023386485912131398756628163834548812510217855487946510401408156254025295864504155454377107471331353785288280188918726236938416325012099731386649172992601037626013838509264210677972028072873346286133003027792936798434915446327441557369041483881711102428536962993965633179715807901577206641707702765674720497322440292450358723693840612499161634630531955739172241053938909966918303696839474112079720562891832442943050806810285813437243178035801897121072371643505954381785371297015860471792892604435455641999858353744964453585513137193394911337940735281061096675905588868001017545833555273272659920347014869293904068675585100762209365529619799390847473348919539220374110548098400009872606008285172716253077623330505255027037589710925120511186169562189321102871020845125947882692598038466228142893940596324602141934321863239676266309280333516194937478375128230886155071077849680377326051059709095099144642775320954829280194288864891116983486814139005143552182921343756505715738399719106000011425499196580781084517344060253599669685048191424936663642060231677642085576650520423837448832902264053629495750194470194684752781023721422327935030766614873796359916525015445682642892045772583254445789891197554788351557928982402142723385450333420026535593572807051110646369175840883451579136565700008732810438101476181717071259631504429654513037893509343966339927720541043022854452193469714437929441143515441476916595545504513295345221417610340490097963312621354460144626291760262644303561215030073690735751905025694305607955934516726794231722184138342347479811170736086391850857122282197783460602036867536126889678614766460711143089223018325478743535329852009102742285979759346113107533946185271720870017211329813021938530366300604927221956787342620612358490687859342994702686333662087390073155167741605632520552811816941634491457055992970608481862942566626792265640836805770252136446272677459106915818577193812277638295525612241391323377233465774841781558661624268289724032003838647963280562942012137307233488828036903696141001066279551199507962042130342667107357041304746917770767787464798473389796353913959185798709304782351727924045544435310304513064449614925840583443759752854276296006239026874512357814902360583258071813336694439877384788933114667518352085777215028253742645292386937985925451148165631176497866248627773494536255681662179036084823437852513309886061035551170206650082739078920249530239467588832824521651882476961687934656006384867917997316611065394974090673258017255189750466636727730986928091952227692550422206164554746329363975682306253441532027979889709748510679276147296932354107992700024581450136435641321265561802658175455030456140008350326301459906828815141861785796700244610848754608516176112839620635624760292288838062063284095013653323520328963730302546026228531520705168712249814405193979504359434538921407531892496809743093967861959337105739755964545830882999653299503351984042185335005728713700047388107786272218688717116031677997416100610109788570423574713490071149985911253272201968659782938468651790771199442007829812930853657856618451892560439941961837880595746993660259344952663222036120397742276311808926058583737281462213197819240471570276914444785085584519915988513726486642897094896908099407570062230596597265000232035197855954472804042668974305592725643114337731443108203442900377739999093149977941687939952590634126515212223036820176209946221298929031347787201147700807038476529285404199921032732150176716226118606300922694932446298457714974225636511909752326567612122193341813777941863743436562023270469157940623775128480438991198785324688558897789511010817953798925640395133515807359027536791916963308033549225472728299279061949633001782892466053681090346838096749658730889698369927302096235968750439027684397934334365151480728375828455080095673221166505325152953574186434946590255603088486049741923520450057483525158889299879893840788336179585220161040811602896891039780611750882767376595432375198395168430365056880033776982184965424227833351190177187634186786020151820072918777032647374733561101386638801887574397809268051524235303021070299672991477578568375028635612838018924605387570770276184112590645493579291990787456538301182305251921507171349059889518216818191721413325975970690488310281795710513156311369639959238135354021412721111914416826624269203561989320980640222354452086569520084927541576209366790827076817801872962689622208253008974328097998508105193413685668709782943614430985259104647246289221598433023757649258818665033569364322045489503988126265105608001674609748756819281653339061962245229156284319148681134425747239373612510884291098284600358667190007741252077205366834036711534238398897275489390749562490103324293298973885357953138608947033158042448307018921154734941110792138092165187980111950092197580074386535558830045033959108955542699168352915649586992100048468652272588338946449277143597484002497882463721832632172819871185896788511818056317812380029527446167468172207688304716553973852173510135707011676856184474019377831911414257954439974405376630090296128426571405991456624772816775148734562672433164671756799212481696088145374963054329378117020950771175479905655350177023527705089517614832205027338795988651629197670374287874090482932258567316055511123054255668956998983237566084267750342436491773850042536285100860733158618707340382195709536045949112636441982801741195516804647632048083625908650643527892603346858636567423524003713417482293003593327490344627333658095989212885482275330308690831414567224387972756148696159195134123176258258848888495328544019313858598731315865245295027915397185277867216683167267065924389934898991131348560398660945451448403931192967243621702598624290967601379539451181847285479206499457858991022474000422783880890699910586456331567080731343228216573756017641316696893938026423194392089964201818149393446458506143847023176618975502420999759226392962264924363669018071130224245822434588888890995651440618773614707441098035672754473872342413305337204457411499407727467548535249890660123433441198184532199651105823032269361135274869738893207618918984738846676779654094041810978390925750375615823857446500212405576286449857819856704207150084173977085815737533020169380372030380191875897471750069394906478176543421738570335413272341172459700301910874568357880568248147957665494863387255963061544191212278884574269637472845245013312455677596465201055441441072024036776569292722487043589678708416918042102608982767263423055386202003089435644524623929620786062566680174881677278842115912995623036683420778677000707421068405861633376523578160430211548044305064720133199112371901597417280468637468814795094283938107908000550751030591225875206707758973923757726525559902610771539046980945109178955133168996352625266547309920469791571853927549378686962821488657422429050485545715086191097684353186448482551419637136437790372640149193752557516920484371227378048345964814158565955458724592262959280639883170589864563002848163697615760347637631561484414645127556315442034938307708700330638690539750653423420424847613753157526559413741645787278564197815164499447058459204466510778430378806505070491824077262091934474411573301280601993244515313276243753393817029266989194248631988961777324912869305307944925273443708236447588756233902869243924456920455216162305526541067009877436587905998469077158868756575565971212459808778515247422088408679061754516006627299053153169458454849101963000048752527208421692414065118628230346446175240498544635268776234464844649669595406925573743181750940245944169176391750950672158934620795341188051891402098255398304051241589782201946169459606104013175504071465369863359442128529094642271174498376897610668779118944309409467899781853068442641081497318670717403148101721610788176369644647822608899033072377148791014551573083068944603135815369186249864423853694339217447102896902186115583257221745324845131222022844872364677055632285644294270930015873571689766961889946361356981983232498954876294595255764053191673293948278053230382578955105940630052685365070112901442555120029513923470266573584958477096425273636240141618299117773538545763859411374400339415711616150766908635431494263493274020004341498278318711753712355159689970423668398291727409913205366435209364607072776344382436769574523897784845903895409399253966398049693376021422779629764396335656224684545659880393922112398705694954686566772814182804795011556739712010901408430325675053016537863651883058808712785685355883031732726735663428755219311452348704023199034405034607133759620443298820994180071617402531409797407090450927466702575322830342728589285251993459416596113972894134617436501123624795842882317799197100338276804720689700565873991270014409681799486554646975071697132203052902513294181866461422499490942879937288265036215407071549315675875270975252369669958792081845510112682056861208722810102953884124535192676802262166662003363160551664027668518977355317888875637162004406626904658090177758224358980061451147113027178160582757465507147444219590375795502556308942360757342748437802414795832761449680267299889618187536514442126905907107695228788021674087882219955372332156793647707665517854275358029780848357271212375973745047012679163935449148529547235342620648043565722383418191671458626142713633741854318877178239685286804389006826846911974168511271082534275971361883628283706037651835213048928728030516211063434564034159502529220107378978661731217953825047842488437719683252744606519989308719206630242295282643916557024221872513247944034054981282037224283239096089752853105047198204307111299865249887537099255436731421370534310856495951239414014826270021022064158478046797174629522132017589506845521981423036975973434233442917298540015539361526974655155787619245735828070222622626713299665355626594004942184813343747362665957540754622042889378430259016959776581680843926423433589471280097870991137454035771945910664352995730478619339363864423529182047096638459451859089305329100708922143018183492976663851204037022513683666461340263498624709050334182012281420146281770324160260495561781383745471681696201708837657398125307018968418920961925425127604419277923216038447495419215862483170717644352105721510324474819419516310194196076349524777786919662734947727466190192485913345753812947561677120186465445404518127436691064627045080169319029168301218556956965834449495103242038637653395632010872003783866525251637772085609160068729624559498049011967586622447050409179899466216045877688054071896885877731952956614602324225927174905354399355759177471850753923578154049240705093943220918021600244857588171665818051815760350560112131900825428142579025962236441059712912902578408650788090776962565747824476008970680045717943599953569438365638919454309141796229159605144455517898187804005657292188139252725254952427284208046171668818436339368554585948917492932620822566912673561106542825554192879645331899505843476343715532846743042856833694370088339607910994527054472759158281739155962675727705590417934345452380610275125563116042302663049574432673623250519269025795156130025317526079429785871413041153855936103241006947507928359665750762371661636760533673804506429634511938473646442369571136363636876700862855781062117603070642322869978920139808127577941336131776675919283333800256642315604607012915464812304061874090349721438440267726636858090747109550403585337589598496597246822595396969862595803819524604685095981084499501868214278448613187965089204476958243859234277035912509093800834764138751570898110572626527666675883969022266242893752996887694880287376071699691848745523514796309043797716346187347326124772122427399831916103221644921231302015823144820009509484808238265202482549451848027270360872754559317083037277042407204711377916422905436711864455288870408700369710972949906360282538022562116483895318926929685462226937931101885019739128147867355422153106886977095681412903090369435966264957690583460744380414713947040331602636018735872482137309175737552781529578675341301366077101461024299648429493647162059774485808110517934806414443927985359220815968956347612390791941567813467189410102188887364992459436766313929472419694632595084535587649008293532766175602396056006685499909972611452779617429073393767840914400339111134634522513206540328374332442022867897444660296019847975765752682713517310263137008215895129145773158124501569068122013938701901352997167932757177032925233763956727789252231851333211357620540035193483252012930593497612993709830276487269322418260967537777727854840601400605936003573162326022684658114411260493041618789658091268545571595063937361437652256308162778132003018344092196957578327191833544695859843603227240123732961297189691272432335250094024177112791184684043795517292200261758925688139166469139066898773755517087376299381794775840825140191215747175798530229621813228777542776575952337919163471478314510874059407300848580114848360642659656129922012347367477178649172744821766971278511458359789114187868001720674683805902257485597973407824713089861891165408888059121150619101979993860858420496436348634744768717244651258254807239980255257232923316648358123852218468346559091623148949709859087016658984287084042882497265355425676213000948105656408472114399452777429881399402711986223043814453917580445691532369315359715071321353214996477077753656713977743181079831401205675200666456574996614946648432685216127134450145374818390702576026458988222962440934529338030126971023970982611498449805593991191151123065081884340607600491874272029672235498251316241837119322728524114255059834165841472915571987387274954596758089584134394034115402712117285839204382907692888048042837613476042895003373570352358073405459790783041889361482647776713075982979702262149074489868957335698987070776690262801777119693657778215168202755073832042821925362097981289400321397753853878483916515431053934289353513749885162444192132758120190081497718307960983974649025369268539146654691307717589095382337394164070195741936756681328691468738693560043457570564462398398684726384414957874918493239086038854807823250760646285355161843647412438607962214136654963608993788453102283231293550744295338583901714460180967486460974017096957064588295795153295351324724050404789316372893205209486444254658156659048613758150509315310854559089009569578450451714084262481113003857845812548659551793153609963616154641114465374747337219799927684378898848465759948685356215696277518470208006770634209573097679316207860123504815837413805751800177421379112126199936028331370080283910787365999372642103365719264506987928135192841951242692449977312861598239714150210303534939550861049102232933339722367579832526072455625924609876404737474630667183375249273371994298976755830043796743586007832545071949236260833425051203235344432739814296808344534715173718001798095976522384001622455689946083470360457601713594247314983993875508378355649755540272075445434328453930255675722894721495944484487260156587843050043985281323772480044014878127007385424641001707257619715369148506968514063414730456281555586712244967655844749827379832970859208231019146845501439137486518368256840732970173900280781205987028022314984425676545183051240791833607629904520298294381163592094964204919381875042115361106124028102433355388987132042774816755626308524021130122360847681791956333169117200302413276037376291713223483241349575923372376900020221488397052375175166581436290456937954165137949446698509725158532922948815705165421324472889051159867319917401708912006601400091806435316896852730583538847259813411730702827664294974784132804331393566297947014894355567426990266226767917603686192557699921137637235765608391444109910455497568270940062878345039911474466048000129190906131289478808662913518760937277368920238859293514415059467706745188279852909102574326987049361864067472870135265916935450189108748376708198003226470279396720842001232561889424359390387732937262595265075858297139825115703917560155214926597921921171455406962925747577496910430653444514280373046485549567202816996355159660537655769466566181314297404719734338339167116993043449389645985503173216055013019212655357387202849351988487498329528370390695359996401070769964501780159110564714492073071783309758322678553180247183811004390024369469257907363868412879192006832602666917449082399903606293135365884650198975020621953010754189140861849751507393709667434494498553825621887165742301754086793431755790257272467877596160878281759582489162143972137522488567942200076422420306050430604520304749026092142189768093562462440427959564257196686695411513557109038577912212948022358720106070465549130360238738823322708586675225058595558494130277001633604330240654170764857048781396360528443136494841406958442068027766354002691530360246893493076271154853647861637633880807642378191508804824780171341519269804818704334706538934810041457457265467527157401694455310518819949371550579365915640093311330233555057971359579267460091981256151576961782828567219013604911509848983670542442814724020170833785209235333175658651832529079905845707304795812829721622405119973826132070827295580003026665092978608927023131885478708953654915150023158672582342100508687159130767058058178730150024950897902320768561767822422946432850371245843809759327478697769810523240738774420088711651111170296016865172545272184612525133752469409939243027154506504702876684377712852437672641233709194279256714055270297590464218433568500850202932194998509857582240011856481323223997653225051212156157707879860053745067875750148490036919136264828018384897074238541512618969090978552257913387436882204522757240632165313500544474458484280374037002226452314847778255960654156168465714574384698477085933009779354829945974769012809718380247279174086470784141256215149692762752275275410695648542387841899801598772524100772433503727672356773793933864299186205739333727817395897288805821091840015817179699124014320162578845707375768106938844701722775957267765620790696674316580666504803394447678963547211255638254254528981207057010781268296153287275392320686372779714174500772329251496438726611393096593850618400681568520605493655900169040821470656363834040265998385393884673035729965550877255116316912946358557106903784693247100959036951144432167662667881110356884809009290839012602641209561062598674696546731385995642718466650929089386228742404697848098251988285052106145323840642709298857913261756425898641408602426599896714889036857745151519719920665111110229921882548372662349901520971175125671842033940242083552345300379776279784492790271257164317696984967227162342344222741415666722383509233168638003108817092012895874927423281353447922994638126664985229693212426634520297188546770406154628594568250502788001413465755292080879557186970922104670869374873835290708391803170675972934859974469569636928679013585718236461453296205063015117854532179766908530270129174278615668548275765161962874894289376940311755546946863277527594991469961241915724970301470740611361651803233809684124450214302029645504626134248673835756127039553479919706528297084886219700834074171710878013599002221035414434041532148194462034050046480767269386621107894969757111406861870882562298389625923208413759399498529335416423110530736747260805876218459247309273519059209249559842324345513554848596196258125118115293061914227382462343877868672221374530803182838838249517152210369555433051256077707816501085201178335058987107810127103439889215526345339856517974807087998578634452577865394194896984141092351030721234193746559195998741801217879983600429196341417569412807272557330152982869678244555724844187315410668972010843181744150648964084999603850795047153831512207380269532458249221634826862465204298582670150473766094092089626278350205512059897537591510259896381259533292563850123352802996884509899966966653455417605447575716674392714594672189418518850143890598033987475553455206639082359964738799649464720590548493867337634468928499616553213120389051810178461502846009062441673074606833790974896845664361263122323160473413254010800928694836197531910556211059201380730821162611900561691757537164447861450406635403938112490600359476323090651214778328340553808028794514792731248327840317382427781568711568869347657776244496389271514964270630915925853101460510289798127076793699237568066070740635098192258051560443160403319488719638546285421572432922877475385306883030975257459156677778463880328287728087817170638521962189693087850945461594336022095974652351241836779436338677668569055727546847176669048376445615376441521206745034633763535572719660342042125701101500318737391439290463862507007804677225261265682218486628104160641907697924133279048466899541107068460516108004899963748067213458317632054734108865341420235986730559140872186679743193394527907701933441521825494616189210009988628723482487473093572502923277847635266568845252948311262272165135033629962566559273166458964179312593139157906450854443811377249627583501770444735252078706063428006099400020431469448113809644414392957811667890581471237693579566162847142011921859990400465010333686250362481974134315953764977007777456150986937600030425789078161281003366709041035526138802375310880331729487416940336312057299983653304270297594603585289808960641747553496855590253649985913573058075885747480685212171546866008159269293737941743230776291855709647149975808396346323307730478521292156460379531160558566256803495948430675120223282089819433268442853916278875524768573027642224071321713939790965690759597294765301247523463804337403504310588558604716066943025357245776132324465330459608851001981680173240091178096206014219055344961091631231681393994463827869654808410037149546924166422019932216003827193389987307940634639232068447506422891842005982052316522722982331352009989588378953507157375930319567864128376021818869300143119248576715216684988619585043016712057912094016006842515836846806566519227013837146930963624972214303431112294962597793903296195659126520162324810296921856489815790461059309955644091581504086247929596479466975470336428075705390307851089813314100672986869732271463352292726544835457264516379771057676576767311481657912590263392059675327784965859014037536194853999873329772559275501163146994516235492355864188750056334072063541148218390875077605233508290582358405416375410817957427194181698762507360095301024776541344396927900218294160234567921656968792024515173243059095478658283942946875281572499827181037971536332188669946625947947831231302967108152714307166473114376737490820131735822241900962343713830946199245807291911869075156334650627039257680752420483948789734218925283477918800074080828502736109682406850677083902320865812374359872118385890976531349037689474861226224714606597075102044988316288030086698666772840493473208296851449766925597726644073502601149692128083147103563368823984520677826284219917321897481965394893931026508880789813819965760601517590355792207782274518159032104653009411876626991570029651381146917171398888439424711545447848846802134455855446408150862822054996309772793230186049275099575736928846067448219797411975845680490564121308935490018642579233823814228666657052411586846664862639674948286017089582059822364733799877992878644710390881684469092467897654451290677099407330632884729840803387593061709138414641820417680634805015428773867067035864932905094840336935608977758046443214542331069185316621002964584195247003669647283259055069255117163240589931082567133931872222900320980993925274590532438355759350033958034792882324370005335720973870513243294894037040620024708263494265583191816973742078285635088904125783447450835259265879858676707659710167556253756813089635545629376473489351987541314883463938948122903115995005734069927282290566256536485410830230987340497101531869672264147264980143966215690335029939671959063829594257783964582828615349032904164900941559076526188226382582733888529819021191098394714980094074180178872422346239841607654655841248934724189806090032850802430902739513794261990079134618420669040271871362457930252535786960925866846355630588255035484574883382381626650382680142466270252692696666111888808027941841810680957904159031181530195620319553556607226727240152627634204429556560034478176018351056389016859762986668569369310948016826552528078239607676991489509519064640752720691663441671038954260687655962839073136357512207103264136386756286772347831589832864878582717063342406611180706850840326829213434913711800868473785408899699489408876224753630548479145414448122667889073334694575293027163090518959409058543811530035254604146745703412010037880465633125174895001126865907859188385879597645946977369581346934218012660030570353754117991579081314575146515300672123246644237342556599922885689469763034813739643869266938523363381042095272849368729056120377291441721847298516410531607945876177043713255524790003203372428851273784270119888154886666224538091306123233414760443905566946964857055233720846801928974829588593892665504889903295599540666666275726859764144140632773605378129797159701843389176345897859358326895426366112739102513693006488301545128489413131318057172132033469762690249917309082005613590794665551086546909173550686219241973109268795552090391987025061111546633500398891851882165253761832928123951279804091600216181069976391770880335939258168084383360210557389810986298718238745273346183113903330824454255582872450960845609211283035859559262606946743087109953577317658513162956212789334009792449026048783361172243404996534631204842932815235572617712445314449014293596686914075532455516623310911713859401420028614942495075417096764945267374954584184954679041427444160629133287688613079815168551899794935714280560906102105149724022543347886790504914416044245111159102427560353658500992219061142453153595310803551213621891857202625393442117236785456158163343632716931664882206353818898819575658372730337438712981703591223238676064464043613858538965947217099717610515500967371741340296290865694855327545877257431107778451023891564552788612653909632594925269093315727148442164908622007931513140947756036209806255211078212007137752045957097340791930464453105230324871233288700328893237606449128565813845288743458057087034369156647783158393833750698233525731122665027668176947017622531827448688831862342486808335156653565882544584383635105440483579410208327872910209944756219630681546656856763561194722611326784142397274312471053311197384593568945435850045824795601516587659635062432458958255471371781715306736660842769610505448219771507203137965171956689863143607427206832895730386355578487373583994645980720752635857605264719713702073808577207969568774528654810824551980812014145471791920853358981326199581582361314466227602252016060490124599322930221307326272075811877170026040340844607329912913721040103218036907747684329374973334824633896580490919068247661473718328853726978203893839023692376614134700738101643333074556089294583038741010237389668939596874044612849994336390641807399796404110833176556344368026683381993950878198957050770583133154416571646211587519167290714912642354523064605357068873186818618187651276625682219188165767266472414770447835083688599298385737175633437983572683684558558951133252205089379668144985661167258664742491974685981286036975774386760989227950231329077662244638857809963425373585832386872996674335357530912692007567335286080032723963557008320070405246359776439159781091976598461892104799175044043092669499063593076883916199558578968448511051350922129249494281397847345179074411548121407623001320493688822218879524713918142466605763566670300758822260705707661868884663363994948205363322522290335846682493856017264883157142165176695594224021672881993816928804993371923992910754354624831537270149562297411595407372732490355236431409700031524772535939906887720049024678281645154499862263523874139599503904843517271408432526909292834552298170865245121346182398118565157771286944823372620120409731242921371925935482362564963719221390115732706160654332970129724559911607798166744268889122115653273503211846613123036281946724260871014314709797123216472735764206115261659663438653259269051823651329079946880554689078073559100114691032848641639311028533189079913401951507177147136835890337975802559971215773237373581696013655754851871574618969233446189587602525535428331217729843444063459640985273969985789757332631160076617696484604344756097087851107640034178381374072883253459090181995000133126642450478354356518589125135822241767398677114097323947756849257823168608143364313448425122845432319726562736669796964756442868182763178572316301799470632712218197382566728436327414029066802644651586131379060690356821083923015927551972156595163019515096369505991917740036019663036605846071402777186860579261714809947815380362626383827159245947724845168102929853706378725384583130443356574021445912509264846873244930884554705168793212794202594129365034483947389644775810158367320164420002731562173330827354886891122967955284584465107447234028007287213868955786842526788351544224972489047340836564794714981383036701236923150368171750317384024743028599748688649807646632389102079428322519244783569470490487712306992984289817769275007286414215282590159256694196049765510836331200754536608254260034030900799520782513504941231341724976954965136554825163111799361930383151905822087486387602190939971927277654890113316770869100832517834667748350617290923488584424101074726619149584970825304015964058785567918676544392696927608015050950257976923527035701764011725406531464859948044416245660817584861288451477828813292924092559327518824848954743875399535343388139550968130746302925322780368342489929557349090351463973794753542216053322886590708837463375475868322587252510207659105059162717687578837012250294097519288487250006862141269817422809407139663189990305192566074031270990258805036776093946131923743283117289260353895876219478273007954586790929126497220659852463132488136279401366624142354408208456155721059007997441958700871413424321926105471943074884797299701774558115478803938770349721185266927803151991293651945986438185666385866665569121987737388670709757869392751037644809109356264012899927181755216844950490832506647822530509032662857651120085113727873842891306805670512408100193110661606165547401074874169798134518027223770794967367328714101963960067022529921190991540601367035063666192696791632446204576811617028661441432535159277737727770063522721837907814271069617288044890317097415270724449060988852056917970942590048400844726737728239848590016330332701404353396475736369142819783003068258087716653658207313030015627017286008532981700017535970795153173629500204922799989880931026570253766257265111945864660785973439524102056939719368315597863463976808451382725939813201716754493635339152232465428168346167560488077502128694473267175766313817911721415361155464990732244026643500818154432551263509239907348073538048506606166312834058899926545868718385674714820635098239717684594499770281348303489398180104773954087629496032262359872645469561159231646954119505035882731097383932977878996656894632183528831397521552594009431226156356264670869605127222131068760569193600389174713485445217996838296656111814538854915929479549434468099468714959770508713402743506648610041715531648405904774285372472699397048114627011702764194253388104909198130094501420189174289008612142691215838450931388438983499856689349391187008184340059483407345453627772664958938250509037031606213809218189784457450204005718911557533404452119461612867832477636979725381521699207535893372774365828510324021663791459463097181598052407160278602117436275195516576496953968426112933659466370241205267629604210992153787321537518660209387742869382702752653960990957140771383548673321243214775626973823268851189363070660067223136781606991950152612841324159821589879994335202448173344693473310499903427592700759312749191263415780344216838767041926086928034906981670061398250198204234131733918754114814837600529182722383467070045399868769018873651736318541866421137743292058728015194374487234164566552391763501521013339014696481322778024517320821770970824702909478289178476736912638772201480043082218062465705708234625302663725320662655312097987299355929773344385344330084124494977873203779529344192256974459402680252276185737838862624240710748621091173634854827804059609968320636630673552011158363516816771887461851254684983268083797744069174165114108288330382875582408021874123449651519096080806655703652146376833871536841897573197024630234298880352541597015424801475933518286073291937777117070330991938955001785828169231620317097071367954535229869414702460354172037061866554854215726852425172425795485157844884558963287168833573744816523977636166832711070238907485721194181967367619410130883218664722284879996193277619457413162700151899675579195355563644749862666246891246949780276575909621709451100240884016980207559436791055884291589518341997699169240459604723329309349558811031856973369025939026157610469565102262412996099639869879639854554382202167874221873382169965601006561816241731631526422540547375111399209147724939150814502504430335450331764341010108825810115631991391263247084827873477214064027789816849347680874011638366913109169248291519993010995758506807010957886934957057845927272619471541993876049303043039548401698563509095984949030797448078550704873366059346023016194357704785366157418135390540702517478349094499501327111569043770908373155443938964099316698167766696264692093905196249350698216251208246883642494691493274507132977258085694278770928854459493564398952749890808861250636236164214661587494596716935824589798352238381090818479093114114943127441668171470490677832281571486457862591485762732047455912808248052043756360069876796181442604585793540940353141503766522233329656928796053970403580693196812985028507519743965962937311134504286203809488134984148230007694851287667932014145157491069832975275535527325912125862244232138190853951306120510398675752522330388671837814225788877961312845948299217989862267913420259283913137555474419251916751045657157751405536494921708193085740139106149882149868166984869304998509373237464739339784333098490877846465256851064609679933438264136755491078086039298383191486762830113159828079444667667710653810910979369902668511805471700278144673732080419307399482509532879684180075498161601165833416997909803208892060186004961798461803722978242435864388009404087825096703830147833962048692346078332322190740167302242325515905233578133618335211648938581882598768509652944719188976701601673477721855889291305631811644004016611110397668023694691968768475639172639503524230245432101907927577621512260026315675379966290411350001402997807509528234501576765318629137359985736722736839102767014687297324414015043625430363610778080317096257704445385649815858874487917640896125757653575232174649935312629523520279334661465207147846658704520249642703157727340430728847869332127793010957302846542820320261585304346624525156123191201005818017791046092194972785792345878593193270667234570786559806902494210939861176001057246653651872203365935079694241073855431408488191422305147749827379982777701038978421693966415773414022731597962258245033142239030023760822075473084525316221284551001009357132878649976132575190214879359784320207220413454493279340871914215089824907656732131015007645070869344103835893855853941916387596524536624595600138789676297552287183272136366049108980027124735610006149514267833034353666455481337917319486662417490444459720083979147964750942960796502830507852805796796314702944243169806018378360298530145260340505654378901354668813404372892457000561924677920452539684753599866868735981039182232966178737313915599576047930726711941161913266443113297387335067434296285159341579438998479453798290980442789761234621003286397443971883701976682032439861891208337371473308373487714106198164195790638505523602403005304438787274511539650714118255412937377237391077051820028361036021137188201120751217354203115290052870617006918231207885769043354318454070462958581680931381505476544371164245274556895704768766711793511581279585083812246839494917511001745930505666173146040081210289838527425557777493010875077893045693895018894108245420470506256717625516999584216380712905790286972498344601115430301675652147331371337140401074872575895870025420621283879533699810049298390999508398841444351931732025232364026594333273705869351581910346404408051186111651002954713486691058287507414079708811933789299081273296333861460394852083491734413632386738345310043545778078567158395875354411032323842246249025414033955699466233803155113259871136127533851447973831784501516358283041882402016791501166614680157049686078454492030837173109538708993427878214823868891759640919835529889423728511558835668850806646590969756051469249250402285288325944554917547196649611145444190706840141007995756919730614621145035192824310976032141993529693010476916883440567140603556786750008668297864630887951330448179193140560345148695887506679582650415273196009583676277148920745489126038645268720133619773725415979944411537996359860430949223977708803315335353941292889385676474946453540003470074367343907549358188673984000952890367180383039365826535597640027020654350847124293258318849501875031116455376775924554719192693928490730893332215198733081068723496092645930929360036798069912181160410585614345253460257812385069565990892102030253758358406748681611842120355369999708323186066904017129691951291491939754694072291144353921880843563454340662136514564825412977757507831507359662370478549301687326100036929543813641901574863665853875165681541169838313066731695976538391435448973951349560534361968491065823525125719636137126039857254395579100835530580437631006261478047805126402127486454464327602307407963584173525122102671036797724816360880744949473048089565489905232065044082889316035453742548891157810060762481754983556858350275381335899035180676690174086172672905642078981000828793681839760450030424137858573489338903601639925902822255599673775315031731224707716516009059562338788318644974298219423101422824440894443339417746827623071969585752348500596044039583506572519969021686184217779304162482273917641414501999144960407670192261815068657193103206999227079714258959441513419320844593288144317254859233577831839958655621121087871826317154520114222757785857982391219398480008298923843524961828903166008722915690487803815032719152828327230017177072839550385331654272835851179975721773345076938367764079659942623566004692947473918228646013536025840518683388438909761808844329926710703378286973033178027683934892489559013252998163148118829059582130879558724621191963561752244330474934598706374106276193823962668732106763728534192797307746512952410568318909037362481279339524576707807789540642755605563496918069444440568781058232259737963715438856689711006810404959548194572485919239754819666706221163082223936788318457957462114543477912407758128269876631153752203007737505203957866457523131622987016162742056713020902325588294996188265224837797818919556201616495573027729125973327389305455497704809756527239665827241251262884072567712856496777477252800313814941879448642646398801037059369726028370577464205152845554383223275471694134993282937896672618087131748829383610996920771822191460295266279609227723939498786780292539273835741616103059003080927198316182614941102408630530318121675387579850756714651997125601443944159908977560548005995593542500152281946309761527101219320296717817434903208585370057323132679805562027659250751589653223441397511437022767932838338524023939705028820089934371288712114300663085326813201427588615072890995029950843078099146082857625476523357336581281525964133958848323753127099429423478436004408973776914396210298044981492392850784231461151007700644644419815834518382623508177539750248646484414875547132867928581844841137448467156769936632013066119753815002150619673395633418308961823472013825565389086282956787888666601707577624976571353905173301914704922656939538298288373678428581785531949723431017443703706333552645260107024459811359605991468694662911776848367092522844282437389279944365214489243459008243938135318382092724184507832252880577910782958278423597497666071809881074858094807799994512945112572019082037555637127691829665578858201533774557945029205871707753108128401468920948400808663957356116780073091672348729512468576093330601383043925234323685215664596331547353852631563930476753471066189248223711608925797690892505459273759224890155004083163659521069537410554319820028922855943122882218024973508466510641812879976071627846149120761208216942293394839778161373739396781867622019669868040984830082528841407211818190021435675020765704788170502638315680878907461798212594626208457483896429243597381777020680757732652326048026653746758586167510487374967535363395442650269534891689559014168015747629414653967380856791146265674359263094015376166795214492144093146780852122616246441262398683790372040359544481290735694027765240681352668361781471017463262097007904566604412976523608310248490424748490168159875203364039715688624544344738979485540504111215918087920019213274392632777205554146209661507486666138514799763019360285730549986206151457827672576602414544979996400744022282806704775483179067043276886939589215111113136462784560141891808341704967035267937992158615069898845679851631225575544382314346951917702778429565194406686415379891987603556571362055350414551430618028829650057446320210307292674876793997763550785452831982506004993909183222085360038096668223277421859403310112961020370968503877447540134245371726226967386808646712848757810471079251995715073991228495991500185035355923233031985341689659437623120037627940430735426005589899672998108514157694913684537896081686822343847055474445773401930292035499996321112004091433068086766200455115484044523293651206738320673481025109404160087623859982735263463259353782853446319717160621688871607239582116783255573239312124554963204978798505704038551490807372523644463841311545505487639113442467806581472112876950871573778073078975795255471984943893223798433467599391237119388289781071153479332807787268686448742345770292781759947738063934663653232381428153499483194626037053022419395958953674534085890812172309711854337576826917776519692648754135948891210933632250782935389615976963759725941625687994486810612390483521762639766851975783801467561171075896854913006655428500797909850718459524954872768607911739541779830071687196964692979521683324707454844407053089988162435306107569579099192584305524290069917139711117873385575926617619174470542382977004697894457561349541619271354191670888132472037307483125525214908497972384108438821847094052511386743862645473596133611954389543104296821805231684564275966218877875467888255046501070442738911824003542921542103452768054902029186159088247318339163191197377739842185698329218387104209078821301585041899583744815096722024472000812538142492449801519377035972342734911741449202051641040926508276390203639771344411279642330256457297680778840765453967933948110395842861124414751702554138889662602309529312405707432047817324227946200309031920751263222268362402079109966844791191682523477387872151760120227416898567002443652796345691762389771030324072831913566704729596783241965296511180885432715440359903260528493795677178467126516809772403859257682280290651085919191940705545109102015006524471419685809306015209324810218855567412741015195623011257318017226793615867184258608532460762569046688538286101813654155240512458004013991209745233013248070823192370463997752138745092790231529949294515045045464437178105617232297281616688656261680453010141175507115125024918176798323073265262858242422600007311154986186700955804941063189832716504635530443863813987819053973413298438275213274870765272496200646618143869648132103602197066683159769903939230507537116570158677583055635770677671269857781927150265066899285341543284664722233976621934930932146192506617242529164993742230607338518737053996343439032362472583438371335908484499561175963950096472656926076286195400854595991505726076735316315774169720405059677437103273008695298211089413308882590254415414441881480877017331779816443169580084983838907942094216105084305070268959994698374047138688611058639455122180936851801214154870717490788157465744546585457469561393776190912631231011542119233663256058395290596843564509400377058029502291210424822432215943679821805578928182831230611582642192463147143555808841705017312854835746058335283438181895669015545185179517372776477025429293930611731625679395824922438544732434108932711805295797304837086833539641486226137013881481646445723314923988019009489883562018134105881769785434654912146399925682497073746868375641634645678622810719301669629820989094020398596645010504170511151817044263723110213295113143315546410914628450975137801935734658950150635021136047650551470510408578320024043675409818249088210185705176441727495634097231268242659901147771366503877779338971980295775189079537549551234151775854351668564382751742446538733275836004712877376771023825759195367362770239990757156986689283575966659438645086835363137306602093966645764087966213562069387591540879337567576090557752312520498072707847226339447577313902034082698657543738908507750965298402556761435257306745798269951141006283814838594691802082797987457402313300291025210226480335467391953830395487667171855874598780309970047216659403633632564972543815436927064011219167360498751462058887025646064226706968497023288865856557080854259108008106979713875066792585010373914566949925826517598668852290249862630323907539491129988516084480970239000531860617942282789333286576469350722114568490062592527526698171274086115289430556767540128700732392177675896348251782769910187316429435567905286389806444518712984861950347447788792096836178404565272475168373979789146895260775818695690612918269525632092444033438628302260752420255935330303142628918112713664994025583194239450427786939858640295963986801775290059078299645627348827624221123183339566593566788885615091127824071509645247688863679837220356933748717050452051754073219724127988337970088144707810617604868070539359427513080060955848618721379668164687635874776172912157738161209614297032246089266591417626963204440632843422600466748878078228891888016802199417412922125972586707575418300067762126291855931232483571104723076993627861354357913505894710589079963310436396388697958525915634432683759179882809123808410680042264820483028381754834475935743451025881172518587214759578452568611862311755117007521176325599707885558273770192925490879830108274167592237462614225228237658129347782691449430912495451147789635503446019220875037186960194761839940948213471395612607824320057350642918663918194386004049751038289016715316381431146096324288952856549616851581724946393924901688753892221105362961999658306340361793597037362678166235406754320551826727376305806875879587173640998257842768906830169929697958149628858352289957868437333111566966701680176340677006037967135443383313559252078131700504806488740622731752104879599573438881964462795792416822628730945092279474278751724180935434571877226843893398214658181052519116078055014707060824087241992070688660906021843042723240753804175783926569850628417696645043612314568487382932387028912165881238503785011010068305278250951477779434664147162613114044416034419628432051118483168955039013120464110122809487966785269283975453017662731775748869571499872742181139511531401385579053017561805873386082355234265896495366571470724420357549048488314172452702377135731696065915425561029911950086469053944412825859156675816296791894083138236086384038587912856427919918018819057146018217794962277081437239633471722242977638187684421368741245998726757301985374231462225826532387523675954628776776179052903407681831049666082508781471441976372139370735916457377991868599272488405504433420167602908247646066417605830228854390860471757237995964872364025928324543501294172154482462655034504549625489669756927439909294377109731495384905999235124565836517752827109959963212274831584312276793469363951578457235790532293746347666509756315213135506391407685923407006366399076872179404355732744095473978606651014204052755472908176996648999531731812698849086275290596816185647751548744801791321718538387935009298467276602126935180125314672677276387399038791193838099109528601302261029041660099891314664412516507563959786168598520739752915272346918792619543454386943743190516422865881778497754593454022440353823239175703018920138367431835278085774131361394893750772281037129453501027962751508266157301575530208272310775233536508567744723458464423719088395424787555683231251183949527901865059832846870186616686271629836613947194924629448590796359577845529812862376931922621076632120044480975002024928857538964287217382730442473979256687639819783453358472185840317576422806920057399487813243278223753471899011341867710927535304964735942207658625063269087074804443960078964252769414283484978212698620371622460746867512543467342406679016443925807419605392684423975999197139392101352793561213653719238106053238108709961219087356295304867712880870221790906335037273649132246924527178161883325701243870944012455734447377875849488158562701693244932871521462032470808353803771755554894827198746094321882888052386722895511341630471377658084792849212275321081466792300314956955054120745114166239691638525106467534365313167312323938416460738598435904180105782492558240344019415077536815879616860785979704215132395807053898596947954686420499128475997869274314393057042917248728303899943996813889066651916403838421986875372659737955778429994212551162618365910664619919437467449079681474219796503040468651097818586706771331670535974046798266483896562381316066614830968763206898778470686229877453324136073242528257411166967478608993767763861570930837934261632570208773181496948885930628496907822436278370267810667494976311976360487426320066488479808003539804472421854304393151347197305908134267158409193028423851376309385419677493612168664565878964863544324009568076534775738039933548745635751320848509062857228468257122440752573211153145025256879609386213898663793691695742922891301510525317940386522426413417505982924343111356279769381569279734658819649675082662290912690972614176764216523589412753983663793809489291657913722828908344196574512293767784554239391715743060382873075959243134905028594387822346841171267517318783752585309371376390803066565810808558547498692732588291504557556200097046193504726489421968095598906660041607873978053745862619391291099799762415419735733073672295961522445128644295551855526314550963841530501006411560009408119317742220340281988641637891903158566183001705454020911205277518347221698746230628919321475945167340430704956568648343609804385225524681296917022500224430177912191756480365504669996953206458133153031712026725182496064842364843609654735207465854694707404729337675843146895036712272767652413739908923433312029635489613944295377404812196875304832803572825706434953437744628900898239450431609362074966393633076957725481426749777663295978777155644625278537844807324899606116176329601690306729954252082617364134490282545386927247394646881116187426099683730218785950960803418864034525574689790140946953702409075619168895069522725647579564872077454576782798017223420780968770219623521262532612488892730796699342719152086493486942421432231676134010496182574387424561907922188008384180146398289004480026168225566861000102655245760115791407050990642648509903748216476454059012415153792105918658317572918402309333031437610506325998810043047043239278325722879987201186926768309110387718493977829803616975856872042519171396956492436402218024277396430855188617840233359320997421298171623275826201156356888014468622181221323410323735553349624644723605831522324271306100659372440147616424392924639555173777903531655212140852178563822669455076459767805995499132025573787286620770507518395517684691905909213707316730235364597987205239767839959702392133081507114264215169410570557265429219153533663112450302469506884793186006148846576256387478844136722594947859802026534712691469529164643277280527370936781863748448402454325034150638105546563467686402968148918474425458482204720221297214107884813497008815137762181395532772987764557415472766667769722324359753479345533578194271917615143086617102902623338220423467745468641162800777741289856662147189338239478918356813661529354540351241152280226656832809166541230878642112616582285808136896128761443118009030318869703482981098299468275453667402551905371706422717402830596517833044774968700984124364015372805932372529431747160360673045916831318538529283832612324471955167479159942690339617984637153933382457414359395340460904293874298213690059091369221580500105349880641314349863097634571215650458294672750947408465822467890545644327006069230778099978409945133140369230326463355232010614096942341980661298701623176252277129512822424549006605283193172788458612147170896304397915562634357121785872669456823483195603091757698398701143113320917398341242675554161796470479599782736812016418160385235857481048959585506778204524664858416517205420239388677067508005110866879600086412928959788634936994818721890846411552413949504724688455547357016926029576668454063463679517258947802394217805903231433816818113506588405574624856164150873852752549354923133660755726743886414834735080551777522913484548790835291449889863975208464608404325508231024183750964415240022765064151814062499889620924704521415275195251636996005302815428442792777119561540923474013973956760478335683262043393877636122028441301946388120454711185584933640988348638562093051551985584986206000490227715020107554774313305685626555836265788637113632769190167150036151545726924178636314517699202750649627178677883350690006699142752600484380959871198426646830641757826441818397409229934173563798319118591829891310908209338742138274345634965789425884861961714244008634439819540364534751203798106596711000915765282115510642426050773264081307454883692925856174874752040550998855405508729432826272191247562430253365564868331725523567913175843284038942049336735547151861568423140617598239196261914205998439116486723971227600006249845621842571631964386103984404244098403427190790938979784686692969060907358122591874584628591408312973138827322321514368584897742142408668713810810807261702220908771544738495554235491514195519644236979478179755733807002970334033441962969743024641113421487953042512479055125853751264927162568144047214163725297043711826964091440532048177161141064676721279167510939258602568819943396085611743992774856106177248331566474517684615060083877081961627983576471882294125899951748150480804958858709807089851271813560135701562693239985983693995824537418155283717705318031626661567086127562857156181096197563108743016276688817750607030200347901871921299767557876899642109395777612935016458202476498227215715975575257401334869426646458281954543939031622431787696212608731638723268659008383711920360940053611655514227559953027533595027080099466269038098704513210920770193324261850552557068434640025892450999628539357142102725178484558056872346973816701241580085647412645698162334643459190366355267147747054337859960676657245296892131131083838647878903964167598334633754731441170021875150029763024647565103350336318217953128692400040891347295324932991675602040118080260587341133614471317523466546907133605652654146305632080415705645858489166681123491614672394333368192132002258832115261239009954712407373698435463365563722551366863682069814212889756103832891948082442210734559355773030260954793419269391761555864948482500957437344631152348427100596832350960629149792091256738071591561475832216444451003900704593116303854378927109747547988287349585589450231196308374103537253941004168486777713833101558152324830911766852034731532054712901882932941983167976159980710615137237965029722549269828669305033625784771431966544714264803303184891618771298975435176461827945547189033877839642769980213751343401293602149815419619430093228268014916004262378252869822720202392262196833255782434060538194300439739030483465773107437466072371788158710142141960333524373930328962096484492981368805463995291515478271599062380870126139312157999605463959342134757971535458239049557854123144246291338928068907526990877706050520226022243057209007562963192423030091863537872044504633928953124428671566427338152656723783200292982653167803716507518437312818669033398102008861059628302860869456576319342348502155726147514460605926288967113792293428126760030652633969755734409030277105804301094267690340866819763253626167404344892656017175701009334714740766204412457975424234822602364151073022646785915729029020080192051912675112424448241235266845730862703226362889024815427152988048602099687339292866306554834152846859184315178307002774190899257888800476435395186007332668978136913240973298335003685269673555040205377861027009906875599754513737472021066090670524307236136227881000662969788312234063293449884048903777169159403451039654499585835912010560050039761143377967151746938112208999795931569641531909041624084177170741207134281470785217259070013941512675729519577359565098914730012570508736344933814946668766739501510084568726419058408862322671915317804335043276251496286908059817039362557132399441737306341144045436583128086941483524740693426378536516176944692285651484807432468009159286346849427692989152335371393278195426302456310737931924852184908007177950074267502940375556596761872839938575455464472820176117208181702647477998024383652556879524332304587184338361538763035984991827126357424680764035074501171452274459412489439101094529739560971338879072850702032399325216846146831195860627613586269182411897731160115543242740791344520930029926789876764556654698577202472862504456040879498992195104484762437712413655890509987286964192499493489467870924212883781946287956573439344379185829671139471602456267752548441264988796377786221186519141579645823358014530006389826337816613677982965845638363164421979992225854993185643071543762962822279832143040438093550935195149783025485159807152820927210827256126397131801892329686983062446445918663383195925296610693196731458630014434530837841745871595013649493935517295894497875165773810443990822577899059853539299906755726057566979601083681672319421723326599759409991976303455545485991999403326154305882259871762346698057758444768665887620186158525064213003685989871327566653541326264467225000071382590034399204619627208489290976131892654616644933259277248692851479481321368999634859160643858363864502122502403998132368199276842171445940548136414541811717688268680941582453852184148397114968553682219290288979767915584807559222967985721762768203502783877292686201796278348645343241481955052736066571359793577784234339044751367336039288948985977564098381212913017552785098412221221333015617498685877690662934745514778414066597009819664911894407128247024085475539338910243973236987760698534236592119995721757380469555382507272819736067783540228460709293109688694083538445737882814561827635409151171391186657517439812973732265208184582032629978800664920442885593056232526747947897995439448129147474403442996405750153555485773770527151025624019865596717363243101714528806215936889323335984780574675374955215177098165628204233072561276265929518123222269597159392405643724073797159011439768675793976465180994505925784200824425163248535053045571729333897060237885696697358997920079282809083429769014326477778117506665312639673309351007226964888306711882903352053396760528348442812261104982482648006618947375787985783083427948480957196580950080860637829308803845125200250735493059727775276403469914738195092020736432865664552622558473426986741910093605701008037485648303017748530715108615010228310238779521261956522933190795587807782848414654168601259106665462305014229084767911703250148037774236741547288288124810314944780117636829118187019844627869562001088571988218071469653615684965473723927125983205721220711974120126225454775317297466676810812887668436273001691935964910878040089656934849820770328380221143885284923486789932897396053206448987451043469661943932237598541864052621910288407904485437918726317550661382290476852892134842272070705641953285947985062775269629189703751293093943326842371881133332717186362534341809197553790388529110906011046102840221339549347462489866969754114451596052085312148438458545177437427777761015898854157920234708992018107147742939306173054516958104401870982820570058782285515156599198766893838332032372023948622207484493146897043116182181041214632474255813119340450143074435455384246680084115932511234629480762798005159695947190282812681754564865161487698029135796145028061884038218609265651503954374538964174522531938633712121055691778436650665265262723616127726015497115310814836911508661701858481495729576107364653905946339368185960627864133474448492261067322625182138364113552385828682928254151043760963418838845351973048494749189628119863641613952953756708733820981055484948543816113598953943820580330997297770408942435183921622392811697076859534900898171522822638676085239867037251697436967465357226203553085732398378019212946414865439370993148746445172620765300500595284516659716211242635403715584597313954987677622492356199175815040168846645401453171221725156871814059998787003992778220958889287433799679935920195337913475992259681183302325445874803613423726066186997994533778916370674684403508842144211575289544356009789568009631078025440627816799595876147559971630224393133178081518576934430444578292840414294915913947622168185050164720211550525796300506161054915699508351181050493520233684070972586596973267384587516471922201138760612545440722352545794903475408599365729656782105444449406532363725213392702300151676970717613245757140282711403975014846745593698687274059901961422447429215762914113979531850942915251622537015270948040302258425099939856286917159610338723653462433665118700386822334648117489556410688815503227782362073522645843899849117767151542990388579687383401823232970658436174716731347322698699443689469301072081000073853563061624371289179531596488808266458904311891263999944338946017043351105391125577801769304788302327313693649006045365949639290435650045492068156247650193695033857427300916223534939809673153622547919979933356619752454904595568157162936808080280339745632352819367011053706791230035295934237631724581800551975663201551937750121431435594854693486073787600939818719366036627379676295261057924633356069169287963699860865361561700596077396932999976534289179732007335049997682208428782582514782697024233397530497977078208417523257433179470383292040066746825890169576054541949513057062412571512795632555032423715797988125586121949940436156384304832824196096329631571529442668049843170807046411487453879927495204675918342070591691394459112454969069926150879823807560176891644271057141511720850692686956107156120742118659770687937555991997050959273984599945878647391369886057885480082995907226808359145264617820646955025250974727854033076853780628857835530374205588063970410181832716148995524473830288395134334388976240494238537429669733714493095209126241959382874902731726754343356238556606129702723971215392624634042251422061959591905418334485262080935227287622950520698032165008908756008023145399445106382001524048367175118983290318540252768448025198212671766459519191693577143497042841360167882858101219918885146376745330942126148010063127236331763517799702668439286635790616375582745618262967180883801411552951279134481370793630813298346224123640392737082108159446840256478954543127399276785279382336458262116704626044026597663872329016263632162570964147182573171549487456824629249033856001397675653045707450664109362920276482485643244729252119085151548295185220952321472358311210170693439698196377795980463422652866399116826798957104305403419096105745128677807055104383934739477977616789272478611209016641572852240142551644362811403380905736834918146108306032384803028525296186381987012369069898747644820589332388660666953849405675570750460925393206567000563059122629658051003327459701421827709247487315507569325772890560036758056191123211004332444795556516601485017250819502971651602166546798152150260379969791000555320558295517123308184654357518616584491292423452230643405325638797971792018270821501489767844591068798102329863410518211836380424239980093165807036332208392611930730994236646010172909988537356645213770009623010947387240064431507496467673447933705620903684878067757005387883973732605478995980147139816425754024214467980034329984542598210946239786300248000639721593077233624182498369268278028206667282392591839119249148043189818495594319307536308201204516075490287508611198320125711828044595186641239358261690500694452274953391467150302620970249974490835676560885958087324875740952622848917147485623402000968686621398000585080267441992974939813648508107456590092747372221381604724607248163103933578815998012763279676916536670704243779833179910446592960980830858339735589368549215497117300028065260460629851715969314737874734611180745698463756637828438629800233548851645359094050348208326960748210143944691797231167482263418626591036111461897445833973696239640893032077444454162904393546200423545808892808867746810575323514766810564420570521231552165294668389046690917486117599904073760353985715636854871654764147868104002503429790299303455850772935088110697650172202879710592867140602073282486731777165537318247075984309447999983305978074290264281855402434873915507188478030748756149182376552179613286870454309346131440973876111542193623760949449158214106563004555525244788534375479451914424478834877204857620355069710618569499790853936767578438303878737028823281775779525244620717202801261738051249973324779956056042644010765372501642581434942268027407887357857890915287492066682828876464193502574807768886527956631045210651747963361347237385614550911772772235768937733180171480740640241446081418380126563114924250135845546564438405539887822570730509203288467064369346422795858984944146735202073972029446056559616512079058337313493835630544390759563418991238432266968142493575078031675681302264261639514457848327189222098147323196121999373280679852022253762947224467250518651253574947117613245513349535815706082609131929598640681537632059975484957630697144341377109410698526827997585403273355270312843834977256525844996814855607043739380217953405765924032545292833705819080707477149939339824380308197104265952866024021787067548271453875979522904926204066410912029617599063157402900743207929287947395111781777745741645187757365312872818285780527952127260613395334682737075858121883834198570256413474334187948134131903033340037633585194804997535706416612293381326129270090150087656113329149156697292047905154631898204891714726803995711942832115245754544688841566441202122526665903231227700939904861786862023749731042409454722569966464098069814300630917076388587238456320198321898229826138931151323546360024930130373312645450433525663369553679731506791660804923162375854880182345723347120401044023607954840072927758643664932409582066731931655226046899890906973441843549844139730482414008058151788497289996439865069852849434820777497569629632924605666829810413384659794997461110149063779321248581589627757430256457558385930471960502942796288829120662209828045688080220489574458262006085718862560862153077452214301833941013827809468544309911649341815515690862504194187194908789977159066399352085109823171316262465238113046458333025710915904904014721154513790367559485615213166360814991608603329599518504102751296967271610612211461803790941262686975523999537505698531494297279632194278287834420449225146875773275803834410839033679788380953241590580051998519531255423059257447250436345764906748494182213765602802272465558337354784839380020637720486933146968487856356933050339311270048108351006527241595947099019465631000909395023380123168239918512849563773995293041805202213695627097934640801778785547210203210170551399499453089216687593535631005466455722444581103296434784872645744334548125076443120213576910431544845673419781438619882867424797601799383748748293210353551808560197763770274456420723041414668325840371488363891722467998580237642566643885059494717619264997762488837411093609346603191844412332821428592093944915430210149375805122890467721320735730112936446687995645345139590583060838295220157243111701333781507120762240138547891646498086938045834382133377757086446637758242959975136631536781639642437821996729457841244393157539729658401071466652188861102799890604069022886322331820830889577273926211387659391625339761314409247365698744901775924388503500119779072457150597229196107757698304416488367244290646816027901810841562681841731199759726429012259529143242666357639594422078896967714496050631884512777025157657250825579479880367259151579055216870358632949628805358379782799911304894451667130448572621792510443764481105493316775740955034617934539887890926349784503879026601692978709595099069542876888368594277210258218556577679140375571200873203760827435545839375559714150662266195621503780709319076340187028933068414749552045957831343137737396278386731225455360471099781842842056454518743118455258828215840465242189620613616611202740605086596041653983374426814275445592098031441642305167548330670283436525610148864765637941566056164722465083282265892005031913525677907787408203422979651507450055121530286507805560896184514747795144658630215848073222819637314149063799642009488757981008963541332792461318969512101723374667204227517762135740187130158996794269499085320460527599388033295593627058585658606045217935539944522180769530499893339970077438255439749442524278316928644229241874628765011388217750437492958854511874963696841560422544755240337076028888805295879443860373305482484444124966794756361257238840835390416411974561999225696572157391145412192594765601845906114260557137653342982720509738763057894690269014527059868380064270365960754734349213581671676532458308777372534635925914257915416915002199603624715285093821153643445712992023525940988146391200810683443358961584783742872535017407388117065227525180352156242232168011206919341545819477499351850806681546223142456906597085913095049013139775869533571607134220457454632389206694972172247171557790005194159755425941686830447022022146104263408694048839423134891238702658666001397584394129945991893023933584281290371767435046167269083069393933329753338872990411424473277910211052677113411517315892781582061147662501290634888864832583973647560285048831500903449865007200686069810184800680726492052948357040730215635420271952512872407995570447684425050162536901327497720311718020757394904591213959853685569286420691144859294392525740468811292718108736439704732036896629129579365510652785175878148870091852153626506217707075662286594654701158652435379910141128830374415974433904603167809955544279548128370379769175334383626063595135230241456095824720313174181144253199544306351318483225294642927516442064582859651542736390532200271406873441401415209193550248182253488152660817450271707418274214365668295027673906008725280305447861502116509643504737401637915015820890491020085528298940431288178601292109883327977204428425689650393948372468133547262252452515964205885687546662178178501179473023271985719614690141559518464704805552393585107307417267437388366961866369169588233458097050673076127538844711643317826487261608882156712120658896654601723890516828706041285223976686361760624228893523296426014325843082512105056685180715455243410654360212672629478946271880913397840188593717181457723846322633360283307620658739069983397045738249848783070159018217215024171053136701395740593021189886778039366948703796149529580461120654084321153958289239915753319890793539992742770154484699810842628643560127086220264568357398055625808214148607463511523138846694266197954985223560704738159454709112794661766045239199910378864550743165464744877546634960127159912108544187656773299106204171413878843185717574938006424381787611866766302393083856490582422516899675132450202089489798803105811940112669308273746889226276328710204191162587834878495689357303332883344354987016276245964028377971196739684896983360083352916644215905554215074013435254871199359357626327115942235455580052386083450286241195514604329301495116782899505907935816320273027608711020777105614838570525103689481201092550575433986195630707247369810274471918214894186423686796200696085757212190644047252361069594595330198789293381540713948416629109261058805468650866259436051866122162171896200107888976592254645225641661495448277931706262691229356733826169180340713133498677598028961320421111962260365873779799478714625089432728836829258057931359523256487124733958870259988143062243513522613851940526247321205114630485908513273465849302771518997291222528605945853019174700718178288228270376998295717617968697176047334338334705453841281367483695593564204891236146947829164000633616428588957523154899740655435349207457134447619070748601312945743605952398854938807357299608747010972327212941758561899770366089669662616540412350999834335358878620208506200985997969318028443376128510927210923078029027260984890519700290350904681573132038131516443390704372370697388741633527274124522120293870872729849783132795670790487338560006407324670238209981172108523848683028034430008428269436657288375271390751923153168782369221677021309352096650042741921767239378952975071245837110965756178999280969248022975525617492068656638083182145341134713284854593631801881304685685409234174678146161197479056427074457466991124320014168027589826994968576911343683123997397149873144451193126535088281364480934674876205284702062097820318897947557173497604580037403270215716005451848373941322842549338091620627012616667085862176632870027991329835200429013140784366238970516751106016459695353400372655242866299453400666533863279415574659030784124284517798520716424569183091762753059600404548189423575545045265398310588210805841878822822478436539985774569273786798998430608922383932960560663580866325310298118693751096633839828014634420216839275044358008292730577747316334723502682676395877421785969494527395501562315976904098718127002072817816523298102693501960597834941829578171921898473057219895283568786346660665461044393028866220225525760534522420023361581312514711893298720086824490053818974354431362261672199788890186689302756673006936391487413120060864911633367196363367078225865815265070270376029899500730187522715795672644658112991563797932473317174470430062983118484363930953201451927299614179558357418892790402328201832943802221166699157984634432129180368834296039207512875682779056082358004013974339681236672576787330028328726406050115384965751227959525508559409033410322471993757262442516396012896126595741732005314991368495023392204263381956571227535533907477099233893047044732725305802445187733536388542936088312973507648588822444447051712732993010664642480906804895152717314068565012850909991005230068141265862827068754540883260696505417890202626583469113801652037720172088658936609990941770769486869329320239371333185935116385889456444265905114835754815892246050695490560170516939334880788185251263301212805773696748734004563623127246368284779761497309619763734821945772857353162946344940682661604676199060658349171240452242625871049686752256072765046567057598720031984100577314253563744570025220002705957359775717736036555184136116841259030125357717279710997012448573896912160859685148551361163668025627244013222060413138858349220961142083874014034045849186180525663589726422375728279254708433955364188816601362938031922842759993712062839417305133314858140950465652045195858133553877095026327102700250700871187550300891306803336167459717838988693175823333103079813291211667424387188630190840402391569645484440329728652145118560121743086171339448660741346348761009253096179284600971433806842680050901208551725836855648790237409285222691142537447402165601616389300982084521418862674591705375773964895557221121828235577242831045267474303395836930007964636282773317232388242760502385141070473742725134276583072292172404541184128705734077262351609366936117532452295811833103976656691053868895678539008129228328533096556270835722540818075669244420951921496355289381695383862640897799510610541069074447599743528564372368390237168869451532849446749749915632624907359701364815679695504803514369537756196698164935867674331074564664516686374513250545084249363605193296112600339123493019693382535890144695358225569655854231429456876899604773894699170941697214435352462582030829668334178823230706101974098957192763010937741414033765525716305961058486902723832990295126777544966178885456858324834372299016462745675933576695419252878901726495306485219075845808243020269620856863457984751476489799342156722504991439906922567179725757889749138591032476324563291888398723310597754308689738299722845025360505264382820458219270584979605331556455734651617040792199631268236326598928002281078026821506052161153045768426816192278900023163561552470692538521276366485913242778237190545354596973333046578867634015315419226065817994411841896462531059090727264196270097542259613886120756224193797816817927658963602190003834712860524546548243472345540436057810113444423687629657361347306465202277727896265628468829324994066572151886170158481897474823894910967531861283126411340624366790403861113334863859759230107676892781761748033784232586846800551988860402581792827604503273244829601991460337473976541527061076722497257327595171908115331800569199576961333897068045964923999603789796559065849165454591664468298780292851727315666477849562248884938295157034287444489959675083851068643226831462151381764144745310366127452968249275955759061637843457415261324469369596725711967487378997756827026284286698032334367668108731510747458284503208160214749604435268116170365811943260806796202839106187638975638600713375095402096518049052122998946801841356644487985070070029793840573165480812823628481695851940656051403347011357411818221027402047957053840167648883141532433630268170775115864133569295686610155532567195264334776296011970618128022768412580449217781945641305428042533247603005441915209388787733839292422807515153730345759558651338205350478748758292128759952237625880504757029200181543389157327385489061713098079635817587692375677324112755848133445880996223928608581800787737793539335104521294865113995006350174543991979400984693522516045709567268253351710882157539633470261238118567108559107739273408848686066497835486722856619241880230035037843633378651912211719171920902450436519304391166160733721139598840826498278264422485162619744926340798286087536965035101566191025478388959541310952142853881287125136915997205923312440662671018573570338909288645467611650008759837081743970684125240514116999089365948951447697304074168095237506744928733782039781317114180236654596339340104809430988515149707895766610279777731138040068337888039452086842515069173761062053890039117290993702434770909131354233827128100798263613622207348270498134503133855823359128849541352947700045985504215297123460882877292423977605615329728706506391810674517442157048573216445439404782391023640754467521632976073975364363348166848617639164774095891128510103427989513729345571481164558672933418416942779209315072120273304955180264631250925416486622752800760585300452149494857199003753299996367966012270584331849643704110784130227137315947069705905863933955655561263381794004231323101070139107359431719248836960407218755033680120620521450936130966015141078805894981462443863065473103886338223687573671995346310470904649374687810367983142959757448558368292083381674672437380508524588692729117592411624836475437801884129054709238311638603167101850055742348903761800190418174104651342121003292194372380123656360525836999143212389010976479800244412400883179850492387448404119726438256677567739142491858760320894118683534438020167470262011821874967616321923981541879173197072776058330119636763208112167053645570567056381106799966722979615626909281641032041369868269366456607096134345262839792124351560574157792170262428890593271804752394469157108733602317632850522304472807447368444557713687141498123188627740952649933117831112677804985982525291346239972414819832827205455693210582631984443730123940677317785351766421691020608570977283872697465276670439907036355679588432942586004763981791271597684216530890945196533365433554412287621921271782094161214366508916309262516792916337921966398860555388886324384950747612998365396703123367084529575336073273492762654290591167981784499865982526351815212475252438063679906012751060842437022083293867155128713674351272455989725354288146921122629166526298398701819459181946688314663262523028202809908385390492818154646795361030001125473871044518971220432679607266147793958088103544531247527895352828670056903854789527764494488739426220059510644989351070204601866995962703608366033288690908317401391886071966902773632949935060252383239430454045734639660490053588684187757268009660978302902466529636655790205111535592933786356280590582345510519439904471353425116247344481488903640386273661209881018354394313418549631918078289716792968641126058925128006066223654356519162885284706190569911155043290895074263585971545072958987648428129701952986693529461315901812380912944391094668696549520905798271760438463519845686945457331575578503194657090631013796585753124075585051267839425081607478413323101022196678686146211272772467109555496024125179245890734272966201116933361579961140030721038679269708031894001459172720737846942725677364813005071921328236721627165137511254069778837844554978461276744865092929493004274367180850592070328179317007797503293224930897630275090165685074305300235587047678027876563720083129022827051326134082635846233829560660572870668109522144823782434839565122067310583421475486678933128877504047553506579820741366281234058862681493797597807242867163410578328028150372725490689640553143273239672208933258404375833593177298101523829358518361578061237711829063112298986596192767690984762262838063419192065608321184982623409608274352210723607368336049184207129119401673583437502341225835307633484240040205638766298986476037275635747183476338643718075998545945547356206134461896724892899410399785723200324968272648259407968364729929062283772901326048244259199980220953148927385882852243341857979719445770346905220018213024345996123378229555890814653441094461421507028388065750508727874871665481187260047927454186363820207349382969705858070370918844450977943524201691652171141866547597397398356206063228454453997861805479490245183255522338346741087070264756844758313434832954885123841497958798619487005668652046446682587201023179462078403302401586141716866786888524446270244808212006873596570889818546374277664807991068047301920400357973445904216048537617816449016334114325357628361648549124378381648212121722559206581713935150949477839186232308738487047418907489645055971973990883925043930202014026874711301078241688151728475240541416329266477784294896568501866003736362427132912148377489332085782346073095728263134553873196476564798590593030363193816259614892396532020069210459833257026687357080414523508810145550638852163223184166936082241101424159483857550601691531287978961946065709791609988218531653990951995627339342387339790589598726317273727367759884022121633796515429963877229250555182768047554612999402363457755347682618694863766094469991082582216080403942236309817130285205847483151901524096014085551780182499853876300618022669988133080661774607727222983707598700190798578546793838028666863287034478186629434289686917420122035166966967608919617022170914009295064630122656853649852282533382292812830885090787803845338244392375378032564087829720455414542248951312762868126919151799244716615609648080778321549470024806559066917032696626032011465212555501532421056780073388068397054743656675228025031308762154744570276029598684508985925896822519080299683182645885722764088230403519719731403778795352140429632418030964505968494647068555270235888198231319281246822552936397924368478622225095046097955639145432919515856555467840923637697937600865825716373115207848926749491892973849293465553407968453579657842437541709718668733582482568163327323503426431856208333693672292769803002712136541930827817549872759581459903457189302294038091923773803310990307086923939635805235462153759669572421045523802143015790887096157728182592448138456213928416323232985238492472104009619649955740089899521439695220721112562646781311201698655339300138909263519804763354555671589274198385151431322040225636182402572531815362796426707291158390753324770615015797549805678862277471518150755432609633704075180229702421777663853605221038317772822136755049445546416623235660985131260601746579582989932425245741571537160250967079005562984236487830713340815985425357909270834153239178355533023325876971382520567650937895364929514235144534680435235317256691485620286530156845374797471571734482214162782064146038956037111217504826434216686825336207896829065528711647489707965795679852320789114046333892976125682877853720214729518961220844055933520942072801171277929353444083064336286475236476097217615552782310809578885552556361045551613083859161209651371897859733929436062867646032807590020050100360429208364906622133916643547504781060139724417385659061636339424774696736841118146462880195721142752341996357238438947391455126165935774165547263672973006303051639571227318354131265053508459728914104555877135197431431719488926574105310494520317086059939819573319252083068929913065087165435310271459439633571429485587919234230806275593459307254668654712164510478280109374387362641417372922818609790496551457088188447198208371318148380661774990861019556404479460869971669237622695495169919321906773901414732834286823596062893881474424044190461535792348015041193250073720064364609200029621121684793067676903444481086371120236042462541729681489368443119346128831324704692943381483875089799639587323669728283511746794087542840009040980754500601342594072285001052628453561572419568989359867244552437016448407611961598371870373998234325865172068347341492273352605995635551947236241559595668728342038713092083261443206245196007035785518665426293728581476474389847461470576386323507341775311703811263483669552405087441148998435499795055098586721104584691750264544016429625026637705921749728027561880838295887663852999434804482930214518533550763322642660472235348032468473811426018953929837687106178528687094206132871565180489946166082086599243969802761901330620618788805592108888082574175794026839303566216783810178861779727398218692395537717499653792741828565439020788759892688047304999785654408899229368596512763758279975530253304133042948767059649380633641097017912331792606243253302977020541880343423206008159772471930502611904719796940946387056998442844408410247905376540246429498159341616929772213806813535617173806659492119481776350575173486200909118040634247313832343363275961895538182423627900196529887154674264904772787285875890697108457974514525315210587325715896813564378308835509488988803174749631455800740747488987497842399337399583159402152814474741049498302433919755439644349914119645892180551126302813030824194672118375165132807483844196376545393403332030918314484047022607547377616648654562809406179660470567302511064047855564600861748471429507805375567304648592679641977662658367230435031981279415701413600574396404289787581948547722624133548069929719146113643350644176711079523692492768529764090603683948464333002636723260766245427769935878878549680737409729509446999842977359094426565318710575441105870120249252007736881962922451898188967780549367525077600003931815934091355593100026431764730954049789633337195249074247921604958176516939461390649284391465046836189189737203274333258796629049479413113723581238257669225867878204060346878395867445729038714787046098601101880396518615177841216978620871802500017413694536371916906473328941410357335306363319900755697798887845249634968789900059178984609394561719207461900379150626397938486831235894960498948258386835926292853582923610250060361181279198499407586776089359443771528530653541807104463878914111840679931396762655639019846454037880626294146821134845517906563169701577019426298737955116673808378126285622896661903636245172284929486157626561336263916548845265175334716520210288728102518681030203410939254683323175412337633435335745276206659770828134337897387745308741846728968470665779513904081170059462891602185213111579787992262261978588702955168508804997495615069620231632453891786364568898332900152083763591505748433269926167632131565135796175318266030202270860426516629301095040263873171210044988588345657391697341238652087403597098659047789633049103426119776024149259578849247462492190326142440915375350178893705865303011105083014216302254186712018179716838096660931731799624152035285933926208847513717819942408080117575922429132210655753507538732083240026251488720552026558183545641322955481349172695015235961058784509709232229342447475142104879732060776792078213935242031388357510901639449613865832528062366806064275845085156759605944582575667495416804804206354649293072907197334515919792118616700243398317340864051240924160776018012275139791918277762283947345518400284572611270327531211021806589036032781349778260529404016669138150639380474798118253691133934954328703408322372683930984918161954435715648047579265859499030757419498583622551742790996207044029910024748232417632107836642461285576229792734283381602526790437211135976184406394264341979523283402531203414086265501603401077112333515775158704760405781188812582270159830612258065363096383214336271182758773145298781120071215332942792314650448368690104371275696822302461202162120383103288735618812943356888206774209713058650095770678850754445370686574413831540368454185537875776940051149138011947479017961763460721608849097772014173592075360484881347774660631751665021609535231920326757814483948779843714777975894218544597266112994989928215653721221077323763556594839356725774263520651147135848681075511892616751973922949662843824481433588735087613513432737227231091436925246932720283348671406385429214927460851408370902962008592448786669541845515709822730111621613282013156287494888712028067561469262244775251327839300499336526464180292131561242768317243897296695232959383604359215579902114618951727653064112746317208480279571070544061260621436980423292560778448562499257968103769901733663662043759288053900185901331050696501342220072029288907207493901246607880248487883367270134408782402746664128060471106353906511957386123666944660693023403890717347434998430676003693045823922537441085480232231930632776949094429428085367203442275842374557313521560636161488941606868545148419169467744315295403435965278961049022926026506907773563848373739367188547656072696716757760992553559330093483914732305938562474772006715611388993927612931318486229428470876024591388232563625126961338659636928085096610296947342495251826706373727645745474107592030160386045621969225027541720555325513894538653725632882457604947201788870172537504131596131124696577035963301233707193963136546521633968408343312157796371697434710255607483035157105704475470774703892943371024695592704967821659971021500532052692295160775850596053243903690896024459275544093543013431998222955741005150349386966700436979365551288983007639820209844888111136415553592778568596087145175236067243404448222935137946949536987696872952783741310554807494482091562174402572756032233098506968220579008575517849162439111251205724925841060513984797324521493195874986128740487908410882119054720496365902495780161903048192915865367227851051338419099342333596741554368651000662954019162690668758017355026870090636062176137637605213069794261190269194862635541872997461603100777759276065264685879715306612652443031410076755868885534030846077744748958113740626360145725069907968016880734694081862952898850913224300709789789544255461789573201685712184977594709019845299869521895683819412685598574526719051177472564653700156664539891985807037755437705013864854235956151641272293785722855142600155836690950445591618442466244185361625508210534611707904166220927994302520097585844052519502748036571593196524763470177064951037892807096909102113249045210375141339334222779183343808589260320572858766817307686700674873496449223864114063027448506327041936423927399157619226634147922964181087873963347641802184061990214997604640114742488887626962612920229663436860050926661838614583531747305027355637327133307132869202638537146404706567081251218344276582856397538447068885790765281337578489424154717185342928406128137317989008630019133049251353599295723123190307452921343425237638996595926268740427112536275439622858464541158806490042790788734567844346296598768495915675686932694748227607772526383396241817404115730075397078859047292950783272118078328882754648348424820456562442542602407609871062817091603341446235002227005441849513969753286116836939030211032177219190260326110077405302469768450445466936162350270796067775194162042527466231810967973955010488847655828472644562141645368274208176614837410807354213868185736461766372652080408434470201872518496994250564667480352765406208929701976935708461776427839751470204354651074176624384219949506091512115848553602435882435384325914640164141376687319201803283819467335234438834669465642231335014982681582363111055061752378027929814845296661551028568873679183758964670065005372380415103688914976097736519363585858450272816323271352995082317131034273718363518330035823123075479225242391623935937846015007911596623984689508362637361199109008275964102557626025122951020799648078765365483998743527719365654241682140212213126486097154905422083110057255098444678701220950797186025365232002137423518162012371607740491191327984837716699675521054517430097007476007305422159609628495515059793526872516344697154133524816327569420488515756446051904335557966801171999519919979970193131718537400245137837454437513762639797800912615110689661848537271513927362842817368285488727874535434359437955738079472968361947955046765116243952652656789326950682171676890855864798551191438141339215142216649397575926962501808671212713195495263287470042511787230950249431388921945591481780528441131805100201981074071473205051648899232654061112406109032618747670410540266472295349141577345034800857635864432291881273409843769283303850842962258240010982101884641476839357834522849352073222221983069695518398730591044696144146261705138905448904931149440805377848610582053294808232430961444627015986620873745039463704547459641274083392691533656921446879140700188794447004176573180080357140604335326003712503410134861566950399846395289803621849732079506716292351145537126677181726336283452373487333320836438839965395909294595841229080403600671023937388009831495965385474586907008044081906142807532542184036300358457538183172263256484709997755303058627888701697641517982236462685290085717380988512037258363390941447886262198980534773394958052735963619954137756220803248371150419154039367160604589342948476525365203447502337742127909175702836323984281325168697372288157772466298243287268526509472206189382878549705804234043299662524844690635423227548964041676666429221521670899223180213245561784374911110170355787658752680034704465557676921969735195915712948353696534961374386670310669449626621986470704748110417214761079600122988244780994232344125004943177619042583055206456441628077552193868171338019238675074959483657114823994505541329953803419162727026040545699042286075001652615759425005664319907593736050943550914862638331914616321303560967701687366956517718185620880839330479528155895917001634605686629885670316726096621328200658525891143684318035083270163765949864878431340754192408175695627152407461065654954511892314866425006734945432783603846737591946011813186360918306412240585958304349977126980238742455000165433915931084042528606158635130428131469920669616084534568111445297660462679756260955962312438236384331450411331185557867700613979402791913517300993997090249044888205484040493924140528493091443019963350774511155592318904710001194802579581091516599389463713285232764273598139960886452740936831971219678436667251497480649429524306334959337122906511884503935170335732529744996752351959329535577783849183625104630121712033811571301743415139321506122548804988885038782389767352981785793868922012701164423523486760650935161429484621828739560762639293997544257471593322289291881361578943762335015230406856441977185954199024093592818028413584061763338390658949003467094434380949868309312587148844548892916856574081469505851458824120812896249727355107572129856293297110376178374650801802136192928556569682640803921608964910880087442761992259321496935461921519140834342651610023410216834323136838039929975515381725224358547893734837177320415088411983961897389296171500757777825057112251790159389701231645858822685218592792221503240519115983332767594871488513825193220440190437487423585862641936812047363408431937047510372960819842907266724578077462498380947383045409168176255923975848473872830699710245831703085918820711314028856023822384981332739466130165736216484106384794233348112219513227074474595931728556516481154734558732318419885382795854560085806765391269110972106589936967591746576389507243936760466107215518632325362300536363053135591155876344232055997862829209238047206215295984765939130225666288553002614011088553966668266349990161061272256398167530973211196651108571787364229002460967948340875666187630441489094309044111817498774692591065014750383030996140328805553279421661026626748433019501282513700569837711564992042786400360061210905370860407621514076278262294676398899233123609837377195343204271005239212508167627798515036920655973144104763490922005778076076906872896604715796050593641180865351068080625108962968442566858938731686516419046450703204085578597073052894474995809405810321393458142595894845193403222145308793355376655852398624542759435683532825486753054335328763845884780812733112118781956377371792116205428094480213384714828916116286339883255454447816687422005911112644202403329131843785474931860986973677490215371224815682848281396063137776393235890833795465151473360751208028787192438291951601214128512668267746619456091444953561998713781427351057375594441706172273811340173949443515320222906181570811606036772779660277857581289884993657360253896710287730078765551196732839074920430846399228451758323839309026686624755724018825781788810705810271286009129504091637296482329500116860064023567357640364907507447790425301122693234992790116806675936938966576166085394034204994944785589931273585059446520540808177999912429788151480494402131751391854023757370956284933477712113377335059059339630108602107552550208391638208006518001920811331519481322427886066218130663184419472609254186377630556124999833870798405878875710390636827552581048693036575524009328697087394991985865868226531715021289601348063918715704079107827116620953082455284100363542870500351455294736750808183950326087688399896368065664564391808965184578161920555586625036971504213644726849015193805333839322472723491192871925685889353793949983799577273556202994503006926502528863314943648122002918661081142659155476564027020496112717733804865391729866970254657240497981063452454410866573137600173012917683715297039610629018796661034464757209328670349485312770762831443665031697209396093363580386169684187737312512256305993291156004132300903804310326157470114821826693743896661230900887957970236436648364734330010008248191419627951711151546772663137968514806636460594975777561794059224084507274985951748601695818147227422010948559541944106121161660315133362232268739317327157702431179923599074945634824244218112505370647449066511321082391122320502766856026024570333533153587537171106169080894167766554189382063424413504158363798184633389510695957552708342094009594779670048261641830620830001073430993207570065134978287706612008640929782341471405575267111560175435048281894690050371090627425048073320608232533795526024705746356481158687040009338619703387063895787087963978904481494177665228931333154318777188586265587162813357665715361038307018669195865021381567616585237297520055348584651485045850202562610386862146039701517522126241027456000603380320043157168998423273448381664386258241708305906669806112069315795377766169279451207089146009825901056466685787663280978368475971383274393936762417141457130203794866771079668374804551589179277039692425455482666828617277008531933395952505710130427379226941456861976760028980418710651840815820112828210501345960664595694474705021161283574863847597585430835895650338818115191317239311296286172392979255915556502139580199556879610969809159330434047180995028570545552338139634393109919991494309073126506429179278054476930723474464153266009638304892895860489969200205995049940264794522690838980155262407844355048593443144445228916884002690520299872529659768228364785207577590547942087701237294464564582714608744481821884969043065492695576715170463347513566989041202326081603444673085059323851348751368596820667565511536292378249820177626412763157281196808741185503656891875051946438657138013840389782217096568485856947825890026676742840074669821147318428910153416740691463102242711051563181641267594866623460950884902875766853933564333559398570109873219946307455409467746931865560042962320937693143767390397990596475258522261868594462944566639320922438494590776559974855672298041324808176604326165486854448788507522427336050086338572757838583505885522267172761400003232226922849866671454129857226420980304167135250872686190117976707992924781229834583021587175541096871889690446301649440934458889548892823408419091110467951452310971390411558198746483465084181328398869109307004951217479330239158762603041201658589768933042600184868213529508268450904238781837852526935153185110136699750921449828528100779279724631030708962875145522157797795722084711701089587304799983969529890859563127443431179872854568776505966392354777519253213946871826225452480300532057188858360983613794401758029018302872542640283445225740119331260113971362704354491295322408080460852239772617265835888076459335124540555927592772628041262744326345831212390838990541492415810472447802930484306430407428770142678916919615429548451706024817544452677967242739248372428452461224103873050063394516916324539996998023537011216433461522402947356336903790953539582121270682832990415193854291041714940151110669179587330508606533171681153741725460058306001785701894041523254474960416077160275221797047971527766374703233314650815439535539482227089328824103155761871838991736965840542803698868778495080732488322874852821536394764765043698794885358848280040280790533768829232598671515317158385138652660453222075861795729188851034996139727429389508671131051721712109027281306819055515297763726140684825233881434605370856003482792892663962282015899659088448354473213811445491198094893922984390706384337313250527887396843530281161369782448228984440138375548720695164941159361801319166221012434353780640938847983997517956014421327954267011466611172930713470570988568269034293748574052907565363563001482093844751035345354712231257035219678738708271772434838610160807228693777210220064272767100729047972438633931523944399596594025053439536071855928749155844735327022307992543937647035446374466003685449047599976503439734157184865624559927379869335032882854898007907657620640692455764996461442419652108509994267739139013022225338492618678351353488650317303948209475721936117547105655565702773856315105902579362959659219955780294245600697517763258946146053269278510617715363423225360560674337483149088798488998624319780263900943769914152943145646692779227513196111561685601752185051792470080633209991376552544775418217429625035921554674558649899130963662601805617784432406869243868968010768660294869476247721240186486818915223334477394058946432969595767520570421760914343656467270450510702653140354178805978767243070108357947148067825852051303220149896530562510116991894243516540093207365138657200169806499181921615428246292628320381407835983436112375291776288808330411677041379455728243002532980584305848684634053624378943629320431075047264349571878649544546670478435727459692675540126378301421954817446453470992952348565875600032506427847388533628424662892300782318775168384434574681212868929902086525055685189850416738780159625109461697819853743623412234368936501054675012896948230957403796712909061838671078218534290863137301284218940568818178728991558868313008106152958720093093720172390159870060835964533271610891889494660961573597521701110243052509083782789025130927435222847939490706777476541373929049867562197090530207449017513209991871874964157253382676215925317288239711525192906994970278009447723767840193585603538326027554437900687010018845271950350188741349182626093600706221560609401737179730157639116036799123815787869817716827708796463817475561567112526171120995478006040349201937404751925382854719974463243030988147877730503287508522457016339497669781653417805633886227737941216545020498590183825600960184339083784984222382382044505321263325321477134511454213950703678736977624311162122564310104701934178447369041838567652312552897945717826821817240490004900429863584402249158755660186855693898713201323823849808691741520754398108060976410359369616266890774284851150903204805296877989962717927595409144010308076939767496864855414136972798620303374983974844755079798048447583551257316581327469980195458006630982470424513238283168698923489723247670718231312806063187669726699525241994962879810398684752795088269561759412084924184819257236360475946643412735634705086392478376383450207469374602934418525546195740842154798243035215000150132466607804924958602641916069353136665367873657909152473326269305068443379806066806966353236189382863199193724511314375603295556361649637135388441358157032556823008887571099854542407888477311831601038477210751212093612840385923334001289020379581869449886330119784139040049106745303807192060267965653132640560498861304467309999407434501024933189248093344567279561444110425503068727127896392667569405064801602913014392041706375213978310062628282998101694987738971944634192331574258999428753083638106975029430887664911256471619575629928381023863769459404639970787599584536451123495949880748788027471022169466893752485054760281777723087845629162559797471751829041600974335588207829193942189721515023134921369436944870312658168357851310134240137570639486711012117562395599028350411007862210692436401625418023648693231419675576274436256069124023785866407185434508501932720955516105859381579165921299918026544603117796862744770573913433567784694869421223327223994482899463043972992090094131890468434019394373678167387957991636362656199539538278446460448889442604977300219962299150755032803077481720555619207227581016657582064990318431699523859560334324788300703302797094645974806300877036421482356791613660514591759566096533461532368785099619235942693187078182126188195232231148212583630741592018206050484425719358401476059127391487866423919201416261200358607406595690743212494702441924652627207846728581704857168306293824763574502828995797242601402737413455863902043744844135763684919785212920225351361363053440357267131218141800734362036628870161923244605271019708366772483475851922435833203614371317643804534669029905239423073327958535363644615533119076615277644473970019735737062672254540847036554559544155745980012043076455147503638370391627330058508642927833002067676672452984931516593201002447937434627772761416788369866856048367981670967523248872242258436827792107040300170527183583112659471785725925897196174620588962893497358842954656291023018424479161783742422441118009442129120455447796348067352506210367849174518985237383139281162502664500773812703445852865794687171812131691388834582917799661252473947113792870785086045100642442168162360619119223893874100778594246881570193097143318359567674338836543940946544097411311805671832687100902487256474579802669982209030777354512360102815260796780052084435539648785299654192119037823584957459500017729351059564633233485753607433097237052659179708468583973235893260015043594259721116714671097465096574522616531935840010405669804839043243256566952917472052840034703919163168030982125269671721000651305771223640698117751239405115341546559540413616476799447870978552984377784651728100612438763324706103617346476818072522696525526472782058813228150580451896812544822319545188458717078918210372903282212619472799438132454360131366003505060347052586504128329275790946994902293845033818521833147128777980643072242155997552370786457481060245331192113721405575338142465199099354431988354749643161493405604454417862239740839912571254538016802882724868651563194098915372535516212578843376912155347532763637039895888308391497766952767489503373830782389989194473324211013237829481595944030054895803689456908670799233720521181123250140954082543567234632551582656251580958470110580765688390538899878570241449232555289200452834533017819931403045979860920204118533399133214928794028877916324965553500856343298454208783508702153180102940932410475817700534086085903339688447722239367480757195387283093801355360146253279059748000113473717700874872122289283031230660599707011813107023830537967440944151456030739387981616826499958665506147545511235452822420147512266144918356363016220771148031576740277616295339712143933390508943806794058755017064238110784897999505217499932890412746156648097600106573917560839014670202773680350141971009113623641667893781986717827371047239057921598569974152766231966577809757644490033183460194146809592685489545915808614067118558592401468785900357615481462629918098664571233165963063376634800191278373595174178101440583600530456558474286126494027260197369510432998072899179669463715306693182094030448596669342679398244164764584735226772091922961384660312784548872986462917100651524606130169106830129783977990710433155389308843769457982355719989934853215139678671073784962969614670519441936489688113607422906385291034218782182519811959753823566706363265466099342539736787110190871641233702327602749490290256886635469015892786703472980714507653170046222712164358560457374482727685172294101143623841296228698573130756750673733790379763718067035635256756228155308353963881252036743730127256036449206447661348259049199480291416858118846253200657740334576795839690727210881286315357802605046585889691415959710935319077957196642647730675858074957154566607653753017159484535924602166649102365707493045944350863044180776815550536376123630181081597736187850294536629713263217222888340038386003800837701436480920505415152803580348012758646630287296709385466655879380902676813174598728389008570562552154206569869143207103337945474163438426143956856321895467398603234815315939527885372523230197631549982542631687851265801642318886501999926670290569504394656071444686962469918845649946004362863039372733220999254360033331590181919215079063014676147439648012774883209143890115098832792299123343454086634763660501514142451450488550638158490878183747541244170086447131545180945536956695085482332689601592104663500123541166781209430531815884236898613066830430624972425268308210931788727579683376822178553465134899520070950710692763200689146772404059982390540756768290693675120417449263020408376305109779290221538396058256763885156832795716106108673587105807387811922714299582455222073888155363250529537411858526908734400250999920213307248059750275589918545256092972131971785991585051885837352230416782844364389763996354117633961231744677353155581751330603411423487813330138200899710663710065485347722731807972464227636476201458821967402140187701522352187764695930561380167400078885684224114595832498190096689648190843260884397704120763505393903922329926679001409360990092749485460649867189316979256093368167113079184395415184972128621355534728732684612215338299061486771058275621350126891580986186487273538706053242359134031414100597642520774072193923261391545770774379141990871356558431650181987351366254246513795061302877351508064094780885425760945031054202361579546616051714010208950880923775812649833475911424099629013602477294851622924352355106644400920306188348963601986224604070050859801522552030314884262194529770490833781240355506451872595704819786003648841523432404697301401404939646580821689269311330987175837328400425946121625388656249708289798568773312487879079421344426220294988528246175604603539137899070719494808734896941786930276817157861946069469372024160888458006957290561957820139321242490359514104096260599413048953517192220912667221154644690382448356074855926347807277572375421145218907435006607790769288956854629581711900541271336420261086442307029393125744095879640997767579554916716435878156815230256378179052919833118822716104970963109831192508490572993246179682984931589845658974178612868800253613005155483078622949097399789168750801444975994674980950065851442070787766564865750341663914198320185014524319848959631765743703791515716675823473359813985809629104220981096352597232771275687108834705716265618813076050491908489900991371062211100475091832569098093385665313734947065037495345895811630867041100032863023146118735359750392909010346751486662538103963695191273150131965594745692096090907055703699364262210775334957309618404805851945608395469552062154505342851719301231778942900519224160101308261671949667879870123440797046397776703011972909053912902282937921228097434724316619121618090080833692756087037838182009971874227188034865340522665670556598743591552447231907385008808692636918137485506824024238620838511385019494402763030889060352567987870360404488028690286677361160662294209863022738370348323196452708815691153693477583010705355530810614627406718287759998813827694859144796051853618124077852542524152612223449458915530780222118005910399952650177723101692284515830690760996828574308764028712172152575664589566711444670394597990335783954637195085973230541568555911779569520481998934132055571722619669702224116374468916941852790532572949489708679224909879982789310448512874137589877459053980605072094493373894727376217946396633010981612635858283978614491491817288814144981814640386547647895706449515593117168994137873825799395274305493539157172742994271750610616759130516237941178877710555747553844583209061708028148734398465800414752715242444257773036918484464413044886766377172158562987813232269215290372082422372328632819164316218611157877471224704265104505476291200797377779709072025425504116002872571847821264780405891155957881352447736611232534854602228105082149952457442481615379360224913277691592406258172167687381896095475114694006757137392608063485294411911347662614030412152955388293260680143132728199253391202376294361239613600836670491247595247335769090133661815222873673709464264947869197929230873219514022507071262878488871634771641931743759146626105346481613089081472322405939545089836373428749328768616767048450833609404478968100581774037442695107101086155232229148972072096401378809621651487812607246606650507628152407123563496367046207704102849524880149477764316431039560688687085040195612620535596576715559700575370888616076258126595931305785612839658297860196929454697030834069736111150739263331291821697307480065489977789567067164850662431910404839195232042504927784087537661502165366886772072912795632766574559969638074854044825111334808792300638085722064014682873810137025216046865527260176489742509087422670331830685824516613802544163383889396499668383927255664751424888929455435836688941913705763113144363765344526047089433978351336723680297413172318447027744117112745416676824439227077131915768838749301673872470404203250751460368396605440102965751893364249153186484147625315855140884048005875802334622926052483299969119038595994305002150927731100079749879201917034420524617160411834448218282706680009917480968564074090011611341403562217887747603028797318759574742099502358712894561412095334392557657221829345993367863271472181163967672753773709550571370695026022174256121588888621045667200344634702969621574961572831932954421444175385186532923434328098534641656833589448240691577758593118213061572527787488493314290255375006754526677394438722321194643288754548170520185553801686319394325130385737269457999306782340685658119315962650989334477099361286904803523336312819494943137705079821805002790651227660425592646315237235568678908094695082881148409184307633650835783626101199797432198416468390411226178874867601001399015776335138542549380581444473542755712641467231270616218257550902330744789407046397219405004853911083312425631200599607651472756596754323304961775020651008324127339341209226717965474171819397402984947263016269689939908906855675195441745501202177633156213085323713167618057596404543015049626248609207454458852049212587878340364331391559615897434563412779521785311102987180623843386392515290014732691595578609828805356847914439440751079055448492429300024570934922523585234453263034806957338292673675385884461548174570280067238687708838381665708651172086124913900784562798984706138926492999938830823915332399430182151646966396639735787753598955717338947263490860861751990526972898949023014849218730595205042653188008295056962101839069816150609145219995831980732689196179497011329776551519881205540533577549236792400696434684441488126102739565969642328042213118753475781143152053251699565910765464393320826635231083512718981499633416766721939266346999264937551865019515652705235315150965583080843104608044759777913407924668896926356628008324773320358502046243009053702152881258298058996663759657812482975915731348489793191262869414525021137959577958206127665039048469283022298996817941952461146606592120847673596281519860580857252752777662272126963857016919210411357450758677930123037799266941896344942980049980163042385395204754065105506005216591416448160825813175146305580018096402222561372732377570502260163387645939107174654219265964098320387578843075118233455579398712074076450672706774495696888757551572557019755870755597734867242208892820457399160571633469816711909204214237020046837965349148081889835111608993935934306671927182550363541625714541181478774439231456655285533137819737396265396147432395319983884342283021462274943240836646206556752309879055628082549037530744157071403506347863546276709952111473666433300732932182828774916110445116594459307694830940343300731449331525512901845736951081561335674789719265687504828954194332547947944563953433281535614854763985002390211204822952393569490880019863443892949103950192011075075317553897054081924536529894212062397386117070408623572778430179548743539761420105689536417455225563360883028911680426022867983833506490577877349016028404996673665305624143700226986338854512522276795245361714795108486029119862629249084244508721061407575107216243656320182387244304185558177988704609597178246889056047286598076326146118950815114260736190032283246988136270070436322192066984055214003770835885866015376708047326050562672507944289532122144356995997914031599462767875831777143541321349408520032272295560116638143470057843851078273140901671074955430576977567123048191177263382908361199298886840137832644675516649441891844717967991274035810872700947034665806937233902990336300852684345340621619134494161310490956059448146724709772033008775157446331773682455273258003174207008389315276348844697422003980692609647913647164750312707368904654056204031221202945982079153254461617647929642104592167004047704581401755539241569668421746502772568410358534543689378995859941354207242284229166573495976656079380837377185762435297921817137549287192527952491066969981516936006071886310274464676625232774816482860376679494462786826783880461161909748459397109025785096222676942158089536137703242390464980005317372434902963116245534009096860163914933997035251947326526549737567957041352152591670241984210835199687405453168908381474688303617364195962500744989060290382409798039979346596476759727906697886145887205270632838501546895814688370502581130140267681854666981516301362185204491292796637244648121171369874836650269368407538139146792595866451896547677725193570663864830579030187475713646848659840379329449657956978370206361361678682259331261406528047903621742371876729493998813723413148300408784853977871490309537575955809456898002713737292325219989587725823187440854825995679251748005794762349577080127869178566387242160781539370618076288610789021899997334422629712898498492985524140355368055490246779787078204628424953033923693694282991259276435077689561481092838738275490856721924244590921912550914287703960912057836354400402120489054512109653497040706571788888369318599318322512416250639935227977952550569452354295706810590337220044906060743063675924585420635704429351333007297819219149224167470324054786936889487629754549261878058429072393586983815677684644116188989005682962903311227119793489655470242215733320760798800418309849898775776935752326817107346958623370045126779532173258229188559697151907141731028840328505856779463910859311049799335277832029619286742023588758299064355282347687056689110889185739420096470219721506826803649567971752511235302972683617035414388229785677753134530708357497903022401561981964974303889946613399681301181875566674490908865031738290653465525083323836410769954879241967398704126354251550606835329794059610150384377882962004598260073038532991847992569167630654886020252749849889181585136257491964975160244389994391086039370820313335282287721733516391067528908991432463186794512512779480411615453401169849449026272588911865127129866514237288041814126362990204811880588078320953311512751723463055560224102504646398986088809396306781741990990599010922045529332506646525141293273450631087660581154618718473489736871748990773360810367523153895784700889686635139190437116371093098811078167742141978988138962036957748726435459391073723724840023410598284620464253879986965335758856823671067481153515676124015221052490519575348521903522752461220504175412245087247706176884288726299411510059340367094112891286615862839908390187811594338296022378266411598919832352262813691493509541181248858873146815235276319022028433544081608850181975729656205687279707046713735839861565738945860521692027858189002234528363463925226918679542109963865603570215674097153001440553272900929494063202281542446714627997363393017684443517613824030714737141078775802934266036831825914903696865862467110291206786995117759934654265378243221667933102538365102827325653219642746373144817928640498716349280493749158756859389302819788941896175990272453473281544543064577270236874943813297950803391324597173729165972403990585037794567495374388681077252949442672491865951910074520815264687954927356175757868418146819961685182738355524743479065066060012915225176706764502818901738239757794402513879027291570615827448603522400610851137094124568503237148273706636499979014803319618473715157229270413624615679160076838943112496288806611607061986243500757898641456385225794261240298390646459893553862782859133039467882198525099184164631447209203551621309351129289718585615848610769679412438220012310372509359577746141140850870425743553401636406102286328356973582903050963690812724870300410873222309211690380759106296401797925265867012625248969507405910415555554112314536121048826619703973943849101776491558801077141112093054193890064103517911869096987200258695796584680314138940125610199569515708602030084749694012785629341703369821717181196864373819874904293011380796876013688188054315886631464243477491531829387020763917121197371201581912357063715977797903797276767005721207208929343312376248399878520818058260101741559373565867693625950416298782995000602189754404461744633386612493302842144829350164729638352773946330356803559388453095448447542964848149852890781441137264328145406349630646922475253498630024881232036338889347987815417724271996009289923505578582649101697627681482353074904271609852744393245663294589337600951335363658724080580190456871542157467938725578111408480737833975049352449353928418462872296168198719480238780028294043031108537058032994105145060220141692136293910733028540242943966159916252404508707496936239998753759144773161106379798269535254920241937282250927341370849435288837232200183213613309631014339718821697674458969881327962323269467016274537768736957558875055814036202413226065550059415957587439536058971803864094359972350941984056279320366881858998444122070806572484286268794168649948890717108787397882454463205718083302998950492026768698294478408409310851085301327480189969242127560450112163078577828708209860717562225116180101562087749419792440134848902835013006939061485617159039960844695225783691318698873638512615792160307374578029788410212755426212700668860341669687459078792856221216537263103178758698355745976137697939027656975137367793694926683111955971964151712988660392270875231356631596511029717661898091798267387869092554225095328696454665124828987313406128714750894456890548458965554093205454672685712603990436269128312780923216506977437837081950230843293680774626540279554865371752506541704307917234485319883192724507342727358552489419579595457561318587048922999524859307081756405163270444926230334287059535604469757344738470948353285646730232542693881636589479050361371990163437245332038097610580766257518393488996041632345666931152374165494228447844859830326799020233921426332356378046104164575717861582622506526070337660251217605642980571771945789307083461887630465263484255536837218533823858647605414322539538017922576807207591860646203682397071352341146466367593421996957153594088681589434827513697540941190554042932745184479333591961475131270137819897898885353809966589163460996556378739768781738691528580060601643719173651431927353400720193114532574517117735765958171431844329174455637842536348794925416428892444352038314788192726064682384240694316429540666116239862127039418444219849936008429894542769748646399579630324848228266932455328724436658996498522818816543883843522530386309561339706975831819820720781910380865881095438729251252533381487303865219803897891631026605880246753166568309907753121220136811143915006545481190374688373078887751936062406531123932764412914094888997258069909487316397419177255286780738482551094598680156603846452474417586302585304514109753880325127343270792425473053005783309318511898012124768819555085865913743991577248665461625740184279410507365278240955841399228401703301361687241300093726510730622429434469888601966886114644746968490360686606515179596077164570844696716088863214789761457800200244778747541465434608013377293259600214948438841822112483766673924522698799694409611959618978149512997889296293304476986050334757796394008453492004964805401493484799397177820528142171512834498892799994308280516402079264744569921585482677059431150731975925675619474356290939525249622770460155018781517183407735396968422610384172420994644151025130435416722789644482465375521333081691312385691428803353545149371389953256559334761184161582402165387005006777423370916735599782163943971346457380243984126942192451866787030935875364706255362359588960904265727052708842228428969853762767087657515022336712892774539592800385388817607707244506877627060545811788024127081449002354967116635639202249517054839225681330450265081260891605264403948031314200247377384512571172149291116152913063183688500065753138160544161526604518685393853895725268030615385338619224284004947047139745930824196463444546991595636458934588826191771950465317432262276594736266711151878560208535606990450127481163069759359610984581868237265445410752568821601578672633252692167387061567512705176224805402711818161728638121763882697597423084538502809131008164831952878592624832368224066150309402495665211452865793295976054455150846141091268917127502397376391801007195534595220012709383628118333134549319940660917133910534209622414735267436492332228337936467567424583551296691940323803667398884269708193250349491196474065004482907356299273904128283677760037747721888198407899356601071109600089585112437809079300738665340706567347099570595856538871326631408736261415895304092772853894031781484388183175478166818059226462237195586055677245154362457575067673974800464420905864990648633249230024805944862172359294154415847529496519868016972432460541023413430836901138285012299481661693655485090838601927743377979741236957927258396160917449284779940842341623324385672119498048363070266245320704482519669688320263494113243293616339838868571072806613049230509627745808765835241654581291297850426979915145556110208938528470784027507871015922298642971494433715588398851182550235796429493330726475129961810973872904655073948832025016015917482313868253188940030523292975307386240668535769753512742024583749290753971956094768505738151862366181739971480527189595811769907347239750882556816184046797785182479667063191319124121512373141840548460767896989022797520458163856102838335719113474075210251527095553833684841910130567741314647471895939340740373643705137776845880167006684606506228288964141032931078705387215491769394838397303219486193768752191865569885569081265927197773065607097936144385294305438231078838035763719694036568437533988062881759781605763731298389233932514285642129455166109186978813933334218818943055212409070414736913352997364885287299267227724670036297934448228525434646814218215681870133569402641047424577351836622733004253218661846411011640363042374687265254511088274246676126114854431387177275808543722968550119768667940518282949825932373310364537770881448031569674302306276366753221945955883984641889751089996972353811647960604998494845251748710313561382339859139406097940436201259752490430924054592023409985455663755946685659591264813723129697444753744227925361824749566287418780402099556307647501581791407092289594440550208488193500956570520293373536225690377568335267267009123348709905651711093158085299770537519488129550386904596583277272799201739723145539172932348041065998506148661274178344888505680186583082892751395749890596307822614001281104546844748393622713340781637139819221937503051474923249917059811264032453894192309806255362091170689315962431938053256710713573494835701293017397009515743051364252835795674395013058409808262415271530045598004407594353758515992639811583170116957828853097335869396958217408645453171624871185266532319658919669063423397536497890452329020235924574297758924219508533449535358327745821447203170436017408513398259051114474870414190568788482228683796094439637530571035576092515751938118219676427363145085271719597734333654070549955286875874018423561725428452078939783106689091138732607568758285719385047604372111652023099712184672037143650682195620292866682425518851936828461290410896421801484387719956183429432498389646444254486987419171613374233362991667046793553976551117761324009616086115647184869154285486995569046065712016347876555900459179776386487564496358833055260886430824263535209452163517370893927590241093800458993631433744833121566129595269948797189113643446588726497344326931640792094620004328242111515142397624693245724209687103635042123434287268942207982087659262267488167117890536495747409444372693303206742624218370724419649939589262059433446496680355847643942752610500326154252268268179334641867927357419893467301290254596342184068219700353806889603648153995847709832115395189131026274959654024615792572434326143414738936970423136712063951932527369243295986376433043951004520099853415219462541801420738030164311343045440410125215819971177091879243131305840473910879616454270376165919972014611188944997627630093742757425665718616716030858578482217842015947812478458638274323731994769370335955001701625542719003530804765515526715768016056206614765102494002277209037569992437701270117387697230250433291882709999620319521337064656612260406010539021258984483216702360278962121631999757413368111823205639759590272673224274447873609556385519572017198572123287697886124976761762733022011968729270609343974383757164120732859782890878946720145141084273527657382973229367683240176626279906905847368798388687708411179968833993233435431325627101086693356724402860058119026592875462210505614043624625948199037548848043770847701631903832603836629744614456139300917968947953779384407487360583397727301832970353004368672358673552542844044727379269134122628161527831745257581906913376387650767220830133809283648913930536817278740855659647505769978863682927082528339158633248564522966943600419255752611050705018872195495635942817333951722072404142721528399954664438965227203384409818326592210366361974158163369098497237058619543786055192542473697311462207197653775091992796542221963439497149445599614089301671532309207983657733727410390811132356121475795661193375614680917152928385923351704375438433512460698641900144761927851264152757677818220729959126680828045223295007181762480365916463521827630498500885613283581667226844407864881188468415431262014304928437608279800554127092292099390958560261758928500031146997715456386213006032980177358284943718139292099282599477950378519480927485767360007152018340738347059895058837665837289769986964293461660742693049501286044313500785837437452016762655104637467373986990254495663709258777987355423275736807691784916725081292417907137933205660235479732972144763792710513570902950639260721381317708403935452465015381945916732059659225172037562563464192652932141898478003378354895903531727683243670987108865429191395477656731920263306634772379278765202386547290664940861157400934892467853098858340803536485927483541081844882271696278970126438781561226708383891200921787793192130398411340588928449283305230612241786907764502542702219289134718727866039563830979479435639387879373307294713784358610942876809086369778681044620046443104421509615837980793944051073857060825723097556638201647294464271104147642035754358401373722543551845183014698201676834661293050072648513110639237611057137374743876665381505874717982060647625308189699701306552955800677171140176559042952757224879824966955829132376020814511354709558149661687506706312306565991322423450289909732995293675254414326893615989952294025180826658858238483827478467921060916126492296733487773565834923593429780644563993343271729257747008258702216063655115221310773156096361949818339235733776972339089784938461158478423883794849045076608400540127215378456816175432069732434604442763750195388144125538209380344153839993139055423001939697619577202334008015612836415982282119791802790973747298477959300886393589316116152877833943672635782199779415855687090128668360658838747468402693028316019911759012231682795850035301446851388918782586469235935076471223854607916325892801582977139978034774382943966450163254950771609175003486004441485050781606964115965056026100846422560214380525810925334000696071929514428801994037555865483178517164294727534443146304416404492765478342069033192385874723463754574690279598244118922418703173150736625137389430070167212486138066730525185623070236686860264515864676651073199942313221076978289706960300564784058940343868874957555520881826484358937057588453828538279033276948956522608934358238437499504455640769250999307663169301049692434833104107223306513416761679892795701263089140184949858107232484635982387679875792001883864042005738810972175321243702062754517850910186457611870545025937238720480662739574847459221108649447950476067851173717706019952692342441049543261387719900102894257213740423896690461271801113630620680225981996422357205455709658470362875534195106221757703979832523102574662783458266650599011893340604586614127700084245888435518008950465767077286653402294713099922240979394129911487206376670686568026861817732745579874955442863975352741588263750563518815276198614185060216890563909874604256476165855502212737440164726370471050306134718247639944778332205558367845150785475575609382055183029752242230248813934365012776845081468488305472804896555032105668799601841411198848736041126974930961607683983673755858494475950314213999475595498654314435877815260083426351967767838264574738505162404006262404596432877483521645598717626674998110210723351758243321263768050970302124569016256336291021803358658546899543465826268311159872665961084240057345072560898208551006406839432282834433510526112256233877394107922921240146042347541250901642734514065154351740601606310436646362728374552574688488529169440888224818707731772974018575862143388948696611882360536494732330078347559402256784498692439993054853285975754075024634691775524728952724617001952716464070318067129097529047400738271273180403560966915417071028114644356462651820253615038511442998646427058253505004157468651526090097530096427049133949066670989732074723728929612094595489819164963926006635827240046411007419196082608992801704406988593084244370352149199985423601253170552344098326085943943241293143306663291088676305699906705019213865434950709075485370264302329306438191149511003433148715956062051841021069535352686495156685614907913275668165449431256652539659983604742291830894063727269045318883493030295315434296348399007021415474993243831902105723245453968586152563429384352821518550873158658549252310642340757999047950502302668699396431263287373682583602393358939717979831463730978772441937286476881054042556667312208759909027916579383805822002170668859592221903043110647481638192220906231358614331317232360313529011090116570558422789839555574472214967339713469440835406294420308576526027401646587609493410694921440305704160150667354299299568458486027459248628753338717798085956280023267507847142240314107740535301457214578215991376189226396924383200446139707244072980435281867970556377960428561025965154075083336465784510350802034579590571619328232152276031656064228178940533490640424428344032990210007299030576490978972213135372161724100751848557686684113179739195070810293754372809009413258333471250423172458306016989484911355105744919377075128495607628853955802621002297695273274239339200626902475422198725788583307344605275054303913754477876871465872867604523896122199342264151217132587069004969194447531450013200655031787124463029453470379044434688083802007579586007523132887756924886379126998960054327432577793900167706786634607891545951917675520105984733392836947874199139475778725751297592841925460137386420025945939661925524067357395731234022505490838926449595685976899076694865813431335933761165389812439550063768658594222882560650989622277756011132218419277431024503702191666854812645923325283652310704434821532840180448238554445801379660719421651198574784709187498100777830551196296615119933576287019235231754433682688935195656000429873304952705480499245420763564279061398925935384651739881221760727802755281557882758458701827822100943672486550629994277798278368147524026561094669445163592368636468385688113571184311380248001851015725533378471543519467725255029380943796718784031052529589646457677702710237709651490342663356666671403117452403908354227063076465041931128621091962539003564441385869884480484579058082217583553546106772491868925660214208725513994363834147745742694849671456468252816351442833048966301825756247790657314696545479258532022738867369048359482235433572194471923962403786811805429646782100062002331718496333555700538049853344728383026833591930819134680606901041665597505652707824979785971873345362720747429092616067032373697894235655573951148846587127746414235667996702197146467189399306269697029095701764010281321125921915881516439926649441215348898109050819647251177595140216925158054799491692763463921623632561196854338206757612419293824969268963189406165525712670955934217002741820606585820288522979255733651975041572209603134957472625966643361691499888736344567368798089015977313247195469782141608672554710570777831069996605352806096694148849645421761429821980867148318422176169801797324535939309948815283606758407343674257299901599286686003386857349486429987894935762617529030012786337091639042833921733242612170877088344715144558756487256732558698398388784777978794990930503088228302266075087494159310361687101463680487350549524344140618316678996194425375923223625920135560048199730676910440810780096411130475593865711885416344199960800574103899001738272569781798267217898030526595832920757381343467373991476766884190780963492667515909214684296326841539846253683995058173084156944474285776384494600933443950702860541858274244306437680748193375095686050886712214734552491817515202089897460828137505605414171007282951384820083624445277671648564140018647342495608079803005567475685484130346722544375896845809298687346143748190393775766333875121773521213375888030729474057750984450180868728566757784697105379887486405747877061329381807947818331042803117709855687469581294137454714322101752831837578321098742321787098591808523966815956065332917591827237008024928590003932278954723674805731208511903899151183128457525426841915800920256516485452704467469710468209422354516419994693848066271554640837238093913198076881624283022824285829936696372307889046884771360687953747860023417170636203198138566044978119686596033006447159615724865471371826145680538593061550506291648897304553904572215250255851641170004508666194888561997330502016363205678703250127369313326933798234897229307165332387804023957864736022625853799204754781302388950394751456423882607481450186677510469875012231184388043639116141568417679911658878774128824252418948607572644057071807590117914967696976674858610628680860040179000794161746297194493381557176380752311929633237698619166926895874725194092934987347091873010565561235485680984874865494708009849092453794084559509778457259903144193162682325144706471045006038010226867106775722848979427090325782021803368437624074822084724766305865446506521772949867652777409177904181185937310461115579763992423376300229699370583515490490174705890232045851225067283079726186981611195594588373538969809987707076375295582400357482793196282263010498663903784438642533188433134172073431494316892775211993840360392837343028953854422527543243741342945534191488094278947541672167504403314341788278259455463330102433257982276860212193151057837248529648402124752116400817426044577378962745620837600860905917890724212270322151261697509927461302209731587988950985213991330262967412372431373769412439076304761207328166412601287186215529475501006749595404900828520554995830922318116548821070619138337474492008836637553817904524587879828400248702964018745755351011039892631126218506316942860000307303243198553359738649020857953518373321552788244259160982479467348930646591244046366906687670502560247973163629944676388443711584286261083773563799841001645923712968141991082652403157445742528442086949870217343967355960702966456241265611855643092354608578877200099908280573985705502846404671485660484265145567286838784551052988908338026996812752217080425489152574531041186558192261487304288270498347782436505149073575311118496481558093571192943151533072858637903135796108402325279938368897766705778313976731909144015857617833656378831970211554245430918598656158152691691301497313180798628240675636775875620754188706365044336477396381812721996883904124446712500210200941180960470555196485309237106269950649584077756711640998879793684849609174043554726594283142071364843261513769276072330368420954105176571695297730064762490283014800626418226112704840012396365419455079791495435681006472465753440593585282045616977366623852420951124086666946568574926688592542349792591843058209167589394358435420764173381318713886415158410429117486915143855629938718198239786483355196472630519734154072591711087057490419902255915037570932042978440175291465554752337660678405697563329149819130657633060324218678504373498976333885175966476881968789978700696715091761491100275334110764005481411536783268501217267566449462892360602471844876252791005057218442444122365936480779225873178268965618377261615936069445631117674948081546026189394390821851031365949667253642653769910878764478593229173575611073866714598179029599863554881329959859806598376130268731775016150636469861575863207908014450243772631221919761863737425433784132338594122814369283743285960322461150074784278635427276999232557412350252361376021146418768978332538090661301166479291413303706774152232841937376632339953385526235325513584696048986149016429520718542359630651518296408137904596374771382404296072526399025554354506987919446868223526926737059241943773185660104079826567346211851720627325505296269914980972572101479321903411097217114086499198432935939567658983065534037977620129250858672845728216736985205159419908934368187246066152045002442725971178288465765102362045458173389979765826862824592916856811477984427204473901452925375801955082619432500678798362711488026943210309072864048357917963869814063900592595025035651761860905199716851911211519098973871999848611534965010148354151613602299318076752337037596111712252776444734845100491408458807048818852662928457353660180770046839061205968739105786132775816787609428942751248016971960906763321782511921045627221232250299643649117047228158148634264848590492569603777916587041467325175092912824826459325902606445937959606568241418379252680162250764152110906280195824120840978504379390903742724874526306391910150922822900790241098217139021630749802604714719566598607577199329516754903606733196812476134183642266051154005511117857713896265557057582524526975629591197139938477002032789682491073377551884214003942749992671182887356916046122384397617653010322551930915512541861509443713724406759345295541777927539283820765279908599567839701850466240929893274062182588392655797523722061936553841523479376154004757275333743488404369223445811167305209074568274056335232837735146523159392256002320221951448474469310787051324073641515149495144899779336255137564828017499210480770796243003052914489029052126905156294133007819443591784460030629526999330608468948907989732265195208949027061873583188666623684262103235444924611360040431816415315403866886641466126914663283990905203189111897577910316262424983010819840464401546290897983761508065615909335924938780291669865276795165593817065561586446524371643413293992644722923662166128486938588999237256634127347491174567698080204974232648790579974307588759267647189880916794600726895375443514211996876627420433863732516646016777858623182391691287549060785125437737874433415189738717871567008533561449582693664136334205471802949952283303354289844075078933115977834716880363417931910512270708682906127917278870221039700356184657095925445456703725291971926486524391797757013079343518955082951642482818069835202982371822791809228977435651374136622588841501333999115022418732242034018279084405784312774813636113228383157358805949253445999934014760619775376191095930804792089218749883468664399848148028304974888366639950812569362912186320038395290645341215752588958116564976566870855670308108123512824969395088861857848445739514899520430737549921218277326536214317463105804807227399231178550390546425618905833004158319511326850643675016439643913747323798904168297717866083004689390322000323280775473844154297716692318442931110185498985967598429322455070335305319295725970682639197147375532728420134425873870675496830410325991124844351293425595180269301937258222431566542096247457271115052326846108160998082250836897189831091622445746400344521072642095502254987659079348641322408595705542237495002487199172226578459107040099176075348771983627039590791535186963660003284285838021335956139335074352493632873215751941822481823376744066026409296296995013327627631181797005330301415021260018580832500122991089857423967674390595306897261712674999779250623485019730484692124649434138173442725497211057281361755858142811498964739144109792665288717831646755834406271714902550804255837096536929758643365058439992742459268366319343540791168525734343088737283182043240637249899132402485443097104728834078745231269795838154963376634591407618662959641960473444454734126308542406598538614235596446352212456675591672599808422231650630998502583511760054422222474093231028632391259480299731847453910215747203487410550051644914041997831551234398938631882392359800578135617900509358829117183383586026733229632629889707076537353757310347102155912312285161197208322814507296379776747093541281306122938997226437029503196934544179901349927734577446842279640589506154772837293656812858800599744057932323634636311270218130510578343346558050355824341000098531553580489132743523685952078448014985017652378429768796772206696899685625098995426289699684956231130250161826439241889761158165011767167945438463115377072217752588530123049003406057504139289231081629208563051819741420810725794018256195618766632565113759955033319493576572224728671832011669205639624293305068255122299122035830998742507819990971377004781236021758533551515402294387680629536459631914357692564039134615768379175369768674412335812484829316960832523302396766991572354058921421925631053299120140299407053169996220038056503408534093289245658354012430458542373593275580989358030191705515051219445825535768876201003026322581678072651902198302479170380807325705606427978466749767462089429160420384158889351273607083631079795492150398527133534662857993856230144403828105466304219239859516397289266265374883499314105896335617666356578563021130168886628643116071433897623154206114355398946921426392587330443579528645705808182810543006973646935471489698270468032476943836492068975766953832462318547939993879038391182788809764375635018144296038776510617028960249927660679660603552132549928251402348946461910948532251414086969240312126297204313242035249808234555653420200068755608105922311282873934527909775014609790030740325341220959072096670210160916257605331640362532066427376590429996271522073394491402587178630813591615515181991376619960483638880480716393167939043852679595307633108477730586930775141306504052503808796772915820295639960236426855511079608250581974201046337375549347173628163426627957688591485010393565202659854954372804131931301262160582844091990393639034989341715402468945199128948933978443238445199440829492133442997435055579000956433354583508390836698696485720961809022477233358580847478123332694590071774447452377518965158096509503454361236936278872337822638303524576317626120752563981187898161630442954391244272898422400724600772611180651936265663594777470932920916832948673046693300637927867631594158663968961711162222368003529281582478530687352501905140799116013471915563670329080624038546894617067593001195301532554390928042753113885989512774341240093768565470566486640353152984052334649240788456908130990048891576300534838248976922781804230535754554344673925052158816740868602866630124735099828272742949687260389067738469595982319597270737695311338941928664128770982762447532499533539505514198112915185082490929817855127523292069832768478541637133883548586853219072314918947234002512624493343191108700631109754764337542997508798026985340218567473296372310426612908431367566341597897728180730646316249239884258967429417535435097546844765204046830761703338056640066735669963930655445737980765028888653275368190520810185403939995736741392478867192895589466849391248210268876950086009470563645387182711054799080867132116197003911833890263774562104431167836668153834378781003274220359222157575193637964564857370106612157521601055971029841067294901476227808376469270237987749271784399376692548920594325901044245317211795356469093653208188563114494994820670781139655455945976413734927775098956917914623581975854476779827426739745049780563384819741015407792411304586963187972561498322273897262966855613206039680009762846099131546842540943667530544643038660509236245259668165860071096248256557684359201218466313246971096150724004101074830150832242210039075979606863681306961879728286394952375336252079323069390774421511291756937962563048090449711765839006774661278025803434325994479738397891082294987340694491609533284918723761183615558896409436313203251519699164028881043810261111175357258441817484411679278377512424683668613276421900890442504767080429355248000525179454293610806171003237204287538402203757885476771684724342133620228954254656242491342769632654688765742277098665016587259326271232362316350213630999300938560779367137823847185699990377068985097385794153759516364767424768982879109205995557724912637009904311297532025103783388820927139694772405129835363520092449902043789307454549424487870102781761948688365792314896612175945747304649744534195103102334498026392995653667127973531475531787217586178932851995476525546195904346149796170289113848048617761627314990496133781340119112628957592254993491368328578389409546129270385375268314693736746033264122523342257156161900363932832595379710384548611858876801483584492322881445021007277777605270939868425006507541141459709323910685788120016141929694127401955622139657244048196440037717649962597984211986832559907056371993094817377268016252515300667731747237773955783010357444024610740041274863858445724976836668008308146549538876353207069500599713884034491268473173610088065125010663851737516507668846303781516971959447840022267046332449711017266754700240414793505922125325354377606518374073593954776505626201910512469181258452038449624154442089128647609398404805920059618508094719289403782406798258128949844122061569259056661447161615936719594325863137298600670153716179552824500478254233646126063365826590916742898240570398431024730987747481634626762823556263908009842417439319975775178550797058231627358207444058050871435083705083219269626989453643954215102385178716224245025345843143016245721536132365944441400681983310989489198296453180035929709350534432331061991618216738541528718755624782482348391068613298389089229280335147152135465835703459192910484674278637122967784045323727349282044060347026962795135598965942126317400896486723930062884632808722001833318202296192021574120688114070256509723113460418218979609534529374033573830513746268163276058715346818239079962943196037712772046688142543736950565698027120230577011194401785951407699817856679043651091627470062992517595186535993369097761882471820812209678255945437970868716563505614272388118616444814673969273509538984930356882471703179795096771038848018261613303089786860891314459483718701975671295831634729758665853789373491366650823204397950523782318188911996059268568192100555965648936035445762120095770253251772505295867512831313458678830062506720935706056812511763958668864596355916216513208649295496093456407935784080480850551977541949477091670998564620929151437948582053590280210661568412454853918793448100043925782297416215864286017123579959142650072767776360220875558898347832196712702277417675247013601937503772319200355663117779464085282730343830602823424271075665657454220701009970256380624046493279772540599771347165779311467962412916415969084272698946615794229579196455641387458515397882129760401845710696598683199847191215923839150322373504622572242027922370948626645160782635467927351649233939061461449555288633504684464372415870343900608146212076351051902000623963744810233299601856535293754610149762617043995373674606950215257179126151833374001781086492861201355306677167605108362589719362375212732705020843860781805322996873360395503276146658703699782836197150031186943781431888674868630844642470263181700830732756281026743706900399093148736799166744717832961144632866108953026517853181382653162585919389789638068765442737454355464260728681639372274752266680903775673082721171498567132058578635425401286107266785368356854733631563160854100790022031229313412257498285708094435126723810764189019242653911397246312693151327646468258015723127597531263514140209969318134910565770398133389753793958472296931884422981624691064821847776198978345887347429948468338196750682696929002208049588755705323667226770150614123633844256643941320185669971687573326329094953181663168848064488792287836161727353979026650792582016800639766505596620084859096818495317829737610633108658438061573186504974093550170026154597616930047793473012778560403798544907825004089998395479506234035972429710946682432951259156290114335588151245895026894423279921845829681778360753980575726261507442457165981535594055496426709865529913011949612788667882596807750471181642268052460528843940794463113139934848924019189616602271314737802161765807356184794854743607029688181279476407026660577632357133734987276639008472205088160416681714402088068210524279893869354459072784601973468780788318157856285075962611068929882607549397377819041252948500249860741959596965893891394447823177838592004172390342673529214977616511444954272243605265895107744362471846004853241457610621246345748400638541742415091344312659558395920420011177146125999209548894195207116431752881582841166859374887081076725215654222301940889784291241221008596948330067334737774256363520941317614868256205974624988038983971106026585603387812052191430746931507086041286750856908407563195071657450897328134435470913183165176461142099164725161236665447882691942005045878244366214637719440282749004408564274278672140537717992788946729943764874258549094765528584297427755956145921411827168876300261250269768869648227290472616088346127680969814512846797631020758221150494676481242747047071728717037311358573099893445397546449370639785061444918942827494808459238102635511877084546296633645709838000049157503681616535894341691620983464990399151215224167201510883722976907682698862769169415379287291155782615272714018421505660920394122614474499993873851975824486281901904595991993342088287042725559053554039322609296902480746539569153518418908443323312347303190575696419262618364786474834048362757801481895321916428049991813942829278672396069696769787333090903665695739066564324210928080010533496253329886922254962546367876987575832632291235822237022333947126237581358534106617535223299402030003501410620257118310961641790436965458006734024479367018796027169219872237289421461744179215441441777874011094308277059111532542070853017509089737198265386411118116095422288881282643997706747306455245572592344066347145587924442786498732425868888723926447192758055031374604579733603982553025992997065580555875184435761460761876871952947904721178857005865431508394902420963420407520013016098976332547128562194089461778192958855376647914364670068282208190012987629221545940474313232524581157840806602861633328060438791669531061908130219843861231939178639922508166354066967342912238976360035069385350832498821075494853357144183373819658517796917807521342251399105714707169689583840503435607032982398584393377359553506587391743052223891504906199373202369918195903431747086764331399131603059782205003875072352284107147093737512689172963230956076352438626407356184456452082459421587790094110135579388713253589715244048894816204510523770642763336293108445575647603822920221269868383074644181571217627715069244872806285689459835367958152181417238900086033830596811828215691577674909229088842924461619671106981132660953569535598188285282943941339142145278955859230636028153151223494256872703654954423799963582205180838706937909074959828168030246773860851936804179821981660021567336753955621912842278942970700368897535828375115422422978567452052414089185117359501407719881729269578718331933644650057721642057212891986661951495541390877819173743860738580555952056683378884027087292207179513062923855676792936694033177847763967652534208962295745042696170025402348068009710702502726435619649447903760937923717607244067136801969107832615045165980830210398855902219078139044009661114018775363720281618507634352257721441571742785009856094803978303472900858492091333309331747538429581256924103809510868913605412693850170025296009110573689662486268793170995048174783419098613216261438390198439490180438890890310940600164723904090542193503732220980487759961914484268947600908420722934416697976537948835715617326857741885601456735701903958575534504108530764789821821959790727350342663108218204270757384173046745472972655548446004233312596599543361137302061329523853973638291203945551382461148402391453133319342048229401018304935231508354057557549843014641732156252505816971077755591387324100949073634868357162349960137063221669266490287833070728229407831685015297297670724588346476256349054060507590970135654433352817969450050374456056085140282934023076948724251134946462752114555048442942199229661209920924699375492155490185912083733989428131715622342718950521258863933195224003448976738631443193735636326641750361914415628696704721310922374175016817941178898664874511498393144129922944688461988817083532356269348893656238876803436872954686045884906247214860549956310016575170827002539408217461255630397883497310825894802103016575105779521557671721378346683841924321257587325003628154586301692707943067164008658765314072957348357841778993748716592649804320967396017526769202860182910086538845081266390719495379966009592412167142684360848910767585023688501467722140572663836877975259661885666090362904333003116211810023035845975301871601941381251156513548427345631482428378943275099694197283689066624041787389055807344416678765772644200603113553540643872636597799230790541983594336407161924557387085995702542593101809984946447765704524796826961629141688790867355492073108501421696905988217660010962655260152306188244315073455228508595493057750969559495515589485675029316548954404403542097870991560852368203668223433314898105892184512130434249413363146906002297159065618122071532232928986961056259752622359506863932167577574348136386412687278289488649765731488798489685625884875055689714699462738432789545742323765413713368969929485337975216352654066363537757294588205335607006782594335662676080694201837973188496034709732261252848242789642757983106085775044991745924064688685999862163627570740489832789179048654026573267553431349242539150377745789354450843867693733622004307659919191367475908799684701307074367067300779322231229333755935838316534414082396819724468896738450263401675773249610213329990190074123220895661245777734315825458645719988648881546757653771455299201849049711586334473072836792596736637263640233926400600213633584582548433308680305731583026456837153584900122510328171466985292857800175596194592690640945143161824461497237271728444757567326599510836570828478482705079094213671660536416196849049185287258096342674014501503862345891766086743101431935149072427250954272249826625317100633584379802935695974866312611839206743856632605767970160751283495992231441946945833575333837586180286934914357070582546311225209531911200779602330152354462984619640789860377472950707748739332782630586902787487560901578286406788644598892519020282631095633878627418775231836085110828708797658124583683954992989326598092277180387954298642563996364919915431152474316381923049867070717994053326578514784108928351901035759531118585061971590733578724354331198715235689038805733674417191565377973368659689077944392269697829511001016228889960339886810146308185254132958206898493764944428086114664050233051202254613568478875303471321271436320038410807993137878789283077383591789720213684501414688907212929453909097614853115855490385769855589340919654118025883856285814883734715206537777694663255044882544374366347915001164530781891298308027667197394410857176162022510798363239198586345318576505699430224428351812888036451298109830242725182343804798579293140972203339321464028781547447332632619163659062320384882307593086063433668130225468114175588360649533645957262395348891670752532280667287034957528768679222929762308883433755818392916017732486032829221214218289469959509733353210254507379588799012251571817196131860442927796125661198380193881358414322978760271981960973905780341459345046621870257960116664183509367306022682700506687755148505133244834197482971606103738492567345597302503355180447902944520326552276267444406321896799890676037141099968697698430243694187445671848456925286898488841207447509425732400082200084152841994220577784959844932980197909818554837703472986728478426594935765213418356997482604849978640961745456079391392828723942709399691292048129767321144736813916718938674715534152315985205127268465864936873582460710558247494211077340268114436329271812056619558416906045568785889071526337859923181992696338541763311274902373379765223448985413290525720562449340038647350826051553023081608060308865852509493098686566013372349694752507566895175663815039569684343666927260573559545127805850632515393003402407119828139527787229977865518067124047166248904297874004921714749775263272634735417850391709538262473824653273053430854090040565278617771747918841160666198076742666370362390231284170156660226199574067798603168139583141691811589008772134319665914302778385226645074007055984452866062497815385903556103072288916449262384287796220650592314825387351928929320999060750484542522535038342167073054334024182944776503171580566110799474850657981031580288538841776201083182216841527007428476044974831401581262951886388506776380591717063687510794867181374767870688838992268683523023400868949477878981846515860961049400046892377322718639091842702479185866369704862483498053391061067562073865081869780728922853062688662592712763371074052814603269721027340123013137205500145466443488163698151722019391425737759402498594730879934974970432777551861200429683065141245801136773421853477421334106400071891606110976076543988253918364410227609636906459653829171360139506111396834755339321256838848207272298168735526015762197900560813685350076775904438608352744345229176679844751033649052014427743210328944819844682034107862258284145175628541852688206012998431903018661272374090968626726956347231019837352414624123108517153859889911720256682473227516794452828846120504034069677755113834266590060677314616038288367049242930658950274628952834070791018630025167525693189890742163328945544455456400546063169835947791096925762023201023567989034820733211774193193794895879965028511875548586782123194639938184980134696429846143000981134561768382999507248859234703027404078485376980365780618802966606914749100786571988847981712846889092498695503404966076745327673127854666406430474181111496748079645135393385734733081657564229394650658913182796344958155586640692524096358759643304267999002538391207874388869604629006800996756528910828912660411728623745058116418206003008525359447455692876287908496369774062326224492900442767429435085204741853503666831098818296082805893366172229367862050029295978848420138841699367931161677004135242743952541133835486993711517914217581881895331295131716443045214477673911160743965074821980931333832994171610144194016849478371804620071508258056429033756675148847373235247996546646639835621280661578543456187492450408167665886431196494004856289506439583678472285364181465001570506549901536841732299441312246545439028462248749000539825237672148394611723317244566994295600822096088018358662289043988465299106299047067341496431477281648011099841127220358304741735274941061167768379551137167778460603201624108802138115230316922400492152017279968807424083053813457896070405709176738229853891172459456202207466804791606259487063924985839376378939669897648706223688519075139411891760039134386299113129742583011780120561803118696410001929020739185763857740654192256919871290950643638390602032602377446441004485577237281359759542244347795310520009393986852091779807844190187710465658254525142429309007703578828338281220957580570322905370986486517355224009769771044794902086575674294472563853498688979261075581523529530458775695440536317528118296132124828720403014482155937546042592498061666184079626200330434104855026608315816543757975591768940558717968498144777431407006004271475113719797810535429379251535053548677305948213715704006299498488335389376969227403846007419362935291260022101989343997506138563669825399634228521777335209525668216976229814568062333335212943333528526671847180341837864295898691114730140244315657096716585405975924793945283291815397808980932216740641679207290744940593845593723900839390840164269318895387882454677039201289557527976303860441018845933074951320194682158080159785852775292957272906755117266632945251034554368541785983194356679490353909646170762403721311816405553328359636694416562223082767529215760013241162167814026734958000303103751419165429994033736104306902070023691298807322212537322059850463819783045541196834279809072201304991784045550484635796803887360024144586677806848867122681574493376665595854056117111090361610742312674639721837676484909011237360109752466711567225522605998631270112418518596284525302205954260776711429920780999608741486379140861320827078018581955254662428299738990763784897934950353466228627029088841202210099463286757274928688316200545099700576633753560564502260648677647145756844225323714397795186007162576625051903984898184001714562706387046562653978784490655153764566898879093936659054979298419697908597088775608385161250162837478677923417925211939944089128575930595940691566332262045340198423478818457638505670695393393615500646896041633590200101800546519456218476161946336153330350389071953738619556557037920379518787470335790082948653057186808879088340959474129614343375155532443669105689523827099479801689411388608366626665021462328913722079298490916660233741635009206591542712052413568472615105085028698633878783201193023172974414358254995369143032085312671934278821016337040884810210600812797458830174771908599349660245718888231209241946557809690436946415264822545616764821076611000231454762700288992026950975945953507228851159014137606064085854487961573470086085314904089861633079820628901895508809011944636900400629395779069625827863493753430199293317722288078760270569120494009003698100487704035925898955500816203772866042504343445767722313629787273822500563783175698113228425888295889220309620276274406670488244294053566026984866844919838118855616208689235460169917559340516710299045314184191244990141209000218796912126908708357277936835270841248002530163336882540155909188451214622829540751641599218044379497744747377043855293264186860656603229467157588034077108951206414063969532486226272224662103630236310348684804305625437536352918863253315717488205065093124621441688095676102525781188530205218172075575286738261327962001348542431279490183233935449112720769931867677002896868391091639933182577456648805622950445627762394865977407316175420495004413872795340321240826055073455477473634338862527716162871772320917365852549468535183747741135528172434380594998278263940658875048517625021138995162100638598694660746912275038066295120720118711409789655570355204377891112234543936811180441523285483093157326707051556503525813965763712237023624767354469196236620174958270600033911750879207203520881755099358192708219651149243571031163304207403619198304128549445171917542955012701056559457834654622927284289167631891884587225129486626664296219885252857351744981422124467083626955619074744111926365807180914273978456105845219365876030668833559408203178901479912848285051194821326264581995011042864264666822408458020990288971257571422860919816262048103887525857216260455727340878918798096107533426922951179929143771247487787793263798195927954858170598228792832238288814682096721778398086699634785361167105604742473068507060821582819890420362772437439422703882146856101223182773822150114790190270375496296828972750464197562180237255035821293980660671530055674194325729317265562845119148534016465326897139976497612762073396166736564829071453429524791377929979068491625354425141291000657851745087065728377636300232417696965038672393049736813052888435143053800266160547707052977719785146809746802724587792588807880202151290494584985644943604929576066226902054495958186675393552284420761813337711346077438828173711717509649251750963574888738271116422903771080749227155887691175550352377931115871220068910825960832264288928289462007822027241098885118874036091601522185945340168908767479483026394591556795768031794815295008142919971432223854131105307934103149004051079306594671001299570072960179264986469525328271706628840511973740966341195316043533222678389791642685371226021148886648941805882367396562286756453555110177736251443050945117924391616682762076192471463735670297858728076069088521912596907275208878485266849104399027219121830114976610493900059028498582017129023655762542591007068002587867300465273595669143734469793816153712782228206591990347171255850126858948508190739552412341740899982078990887603869720595903724052944073472494390170875656547451641815660108995008562567024911658424192503946461206311658633050140030728235038704567010978933709235932919423814379100538766351575310092924215295731704505850429736162018454357767719806159485526489394398350855078884552708363635069396789406539486026561682792747313767633831138417690771711174254384118360054769271533198926195893578464304870171833284817920039216307276149096595430788539414027855064371201360992818563992634111656733041588457877677130166182826384249078926295427698058890061643928378405511045850418675290140020294063878000136445859733768488288176936526518864946063000745958348445389969474164084406053916213191115983928387347328969528207490225905558535944270974134226999295411738311957333830125838700361539569030732694841842129524707082637998493265094739611621546332742935204483678779878170499126623287667683491010146297699144981748158477943913532954815078665029987197887068151345239458226105900703570874661878697308179535588010026373475975126709024224569994835350757180696897609828060775727514278540276062215262956227576378231858887841567606108217538084356631908916659812133973664421645602985677982966339002333704689337959866015176400549875277131552324446995512186152457968973835713274212410311662162325066459440786843525260802322337199609890471508336918909420918993147831197353403265506531960416672954901755407311050239460406444124278180283692382766649829571430003990141490342288675094669268205088039437190939283713713136610784775032760385110960278172900545543800159195096815198290550175776732521428260403674544630170018308510584452787933807579117925175903985026187585378179645401836604532925954561542956520314456021574107299479242054670703254593324705085703199260956593570928043673093947227561712504538133773108098500781391831601673828288758228259902208128348210841884859468822173933226823892387442527399584094630458561394918087235023395881773369076306941791411002071324403344985176280332114348864893100883624852324289652971349995684371134139713541315146865697308510245602497179316847499750929112879203423636553686541882480227744194231047066861849058509109496824745846875560359415935887064273839936871961037359804221077282910320667611852203538240745330315196101738522680396803184049328836333608592220057196959046001307883359735664170789373525405597557514596984472163738097834679785145216779696586989875795062191197439267985066123202168560814033083895805491289707875025208032670541233611553795568545095753231810606718398956166579119531864365733562604811106011922416733432143518581498149665520751624626904477024123434808978750093060082413839724226293384135638099854081350469269579650796904591807608755977949717653782895867188125010648121082739212481480243302090730305824188117085917933762263152946342954202635154093647416750382078210978188994707091485217833950407021809003666457720577887886653007899905375246773551958876673369786973673390917159788628656567531725255899641614246477263677419043556694975479338502288969499171190476566820537771041508499072442478098561186915458338448221356687837350143424502944266886991461460409313011896368056717469417295574432232903528922609656281509399029289036628062696488177301716360062961634953132661317858094192033489439746141518629052496900746796808109765620258908675644998197862990427555526493297698008361065993110648769282127895060718168953160323473098645544892962885095523741498951034332406757139457411219349488489289626191152540399023690966606676767598221404560523093267130075199480858144512477441217626312369069422548062837564998827265098382935681684909899653789389302683219511988261029758243858003423999440123107606147265520460029574919392908410994009166299980930877304570903981691383195567417703284056850259084564779556415912435533604138369205576730234814540493866590739613182556377272542359870909156201525636409391523138692474682058741295980993694033984974942845400550926667201626623470192755550733719868447301934681719343627354836411261192957028273346754906734441045753004470692584288246608705022913529933274527132714920586187657601225091999465590809131442903649937114534310832062997516445897742996727638168961160264360279102022937098164654056836322255577613690504832637866913545367175847921204938590665817665430590953722875763204431946546726171743105274759875805355334843922055692148002678264763535217855520907618870109152500737377915374031244117384178240206945700024036862913375324283278990600449807894518755992276885860288758606093200136418026545551927196529997138348928239432275596714022973055874215093523496567812665365944789270140087777409918245694050454979958303507718504239808383018844900581211156574482863039123618778309338526580187133906735917878796333965119364961507711361288052621024931377820361493052902642540615012193088922502260194448226205682640728358063927360427813094876711744750340889503812994967272962178928897798983576729756304482544640407615338501068478548841451786412356712748923812985441002691608072021981453563137229743911772533531178019078613753135436282663090110477481542723989632549132324496749654649725596387389904039909077642258338311455884818568258677290926750162568884591854221467692209365901608287757369528414572558925723621804785953599096755925938606595114893308315380538837650008998629132136828236156472277067329360477695953625524024610211489069475031024624405556399636242090201317070824076725831071791886103642578542140112207163346569942362411367547684854211060912873120122277485514301038662512774984383291684310069529106444292129325714139371295687185882087465188344788364122155864543267744047468976491081776331263497376984083578290236959527772883149900843179502443345870205912744793578054057529102635234816316238341211158722198403242908203268737892296120143858851600838552196825164446681857903459901522309538494447554953760147454698717632094002770511388323144932384810057224302669590621263764261572932223896025362840141921876565679620453811947761936790907162489205438387966136832466828943204257797341134077830530842126630289435163323294483768512328421952379880852840173416045803494190475974225520736369433682510019739152308776894244597994167811758003726669570099474033703276687932047623811803367678579077645576506628043160224958395612220603997752414861869393414854382514713906889098980515323218817165534873581059060928190405269186413405328963800462184441982788046518250971627554832705864308300757426590554012558811822245598005556890814782103046032295222500207047801158553439787590573697085691271811442234449199322873974417446925267176354552144977377816966978944734814548122751342822734685891371168874565178799721847933690221502870603189145841898128167217436737327875610662896790664226209740009103192985144401932140513439284494398056873391998616978126603207887552421694620296955247776511898386061567698961275355433525520332010512772713661580652137791586601389083125691676803131001853622556672832814464925733016279073637874897622833373048098918575846168666832078853955736005218818277103564077614876517241380811034736775101885429407149145201052665147446402954829224820361536587529371571019909753717038252261550772177642399413023523593015591032396272155266852661391588096627779275457101128371459253561539543194474903960436357388193139266269167034002272908056225210777882428163215390931714733208251680379875631482668682695421350278126017851749470393191384659888390761308232401839149279131947828746589662568294932766204448877581924824858293962416720057213612773046858048844392956031029707224489520468668855108080707861672407413379133048869023072123194200363745751743006243888272649598394245637260895873640020061972578920939203505234855143382978530432040397468622176253695524915308612333195403699445045799480913933500993983626866414892534664918000785157553553651134985760849257315183018570207891167328661185598583950341599970002705321794977028676839580682799941219957726014740995691251963644603675785523354899931728296636225856344076243162815368509245436665986004736582316408698916842401064142792286497376188192325874730204326737239911395695450249147504594894400239734260314823853120557136369713598998160107316927946745295310160303594887582495714310146282071283440004565056065034884524174255644258113191929275132582419778985949069961260670625694067426813359729003049594035020236110257527146454850507979124515462866723607342290643756813013077127618707196652943372979345407541654499635350395374006304069938382406664626787009392572888934649608228176420468719000379111179023919335405073790372453584500944130063751890801033822014802324025614463747754593709296912156431385593246698392938237383042077912463123827287956056300360889979387235305241722759007828192820472385567891547820697221943470239199746536932661255544935886511089177200927056387310174044889142984037965765165688936849164017943303901104450546627142940716757746084422623925404560916462711064189947765952200340621673999834878805218232375011258218818204152794404279399460123863731534334669303921974283633268574439195793173799247198752118996161289109926187118801649065635691811647492117858238374758907306090367838788577039202573636457302905674219212493509450224476814209354969135794000387603474732904259904917531667089918965999101126846223977675763921796643973888184819673848843884667802097339000832054811062170083275168973656731638338451814119125893107072441386747261420349291615671641705254317934437620599629035097526445052208808599370566446294465801365137954497242822011001212368984591142640031631182007483719632103693713030137620814861027010352969950306430128608228361767285443887607216608183275678216684474026120943821595397720285582072197027077489455133394287785088819182681496295494898121135357850420999141228660538313632651166607653648128014471270389386099973694047845505295845913654538623999313905577027245241236005488504004561885688433222403734730159869242796635379387779046907062780086133429699483876918096395598313302018474282257531031413647494819648665329861559676292666662830070806569884722217762894554407461246792482375686933572889590577498643560955139932056948988861270419811377465719947603166567547707421028622798503503054145829163425779370817793100091958086710634945976939274236405363406307968278781305424343742151981000103696798130648805972881826523491282029139936807964903318550130173254714696192276794771955219318091859396510576520671383451021232870674210050488055297297272078455304778810346360847714117525000983534647155961664293288696629094803363792479977028767244780007128691522275265568480373975653679308180079420578380090209583250707451145222997749062798870294138352530127465816978389825517255784574235855372156487343587113664337761889226360953335255121327594346508299215608005218963226638228958094749182339606572903530734660513726219037858793129156703095350496739195228926900075296676638669766546160941309966092482101225001152472691943802040107135474277722535844956492699579997632087590577035048693739181104951554206674779473533366228055987497542200263129502373533284634791495505424439605377825582833302328029617859235560599400163643625652944162903771776859916976559696596229044069275633671534051553487827503569456795366533005303886653051014638967586125621310676988792351836431272742960255770841527072032401577133688781579668661095516336818313267270153141359620827675873477938194533099856940228029081126048063464584867565471015689890354799570943210488074701653784274813302732867069116023096599117477020179590268263089025618569325383596690525481441712780929727811506101063881831498957205193924156886102960901501670290278750864269042090225274770752980855623840627049302932052892610987251134863164523246295747630271281344992633225246558379918672448374023586718963757819687281335944427133273961587334477815042674813321742149302295067422597596255905154063532078630039357267976613011823410176035990676064910834626305817172683405332293731128767667584443301088940049303353234792022013446944475996108201484600934037627835255706808333822023356965911829947646026357277469789856721299608634407512977743921732907695898821626660959455294219236830181869509433097896664769092411700708780821898233414344740162037565622078870815349187375190242047903231106864320051014326097672843735215932817494146180999079729477777909178517036541247627812536042576110108308498606266267433980049675180472135928481814299402972120395257263855196853439498313862429337516759754933174664380977089995654026078470817797658951050204973656944829923498697326882240348362187107471743895587520324356175999005703000606464234494649936597333645588045229580854114519065837297080420583194420148613316184560634922636629056166635790270203117985565259268376092373696626827074586433658445913816083790908913694781332110364158883538435637728766888681565110467004220009261759952775296278481702670558275788701385710330669173484732359955780516969265337944871493348007913623598738095406914917898158794061912398302085567350845020854957784407331204139017325010647163095324809678184980813237256021584849194208219098276584289504223918685408596886401211051548525285405602090542330771711284742887252487921887805627863073162242879326660377621589292365309877291229972806795096226789743178067204020281187529710494693662301135387605558204661989678141088448213357343851969293799947171411703739442627412393269358405006740865062917378500013054358698398805438205965014000139728512536848673405047899703083414102599477573411276838253974153753638464382347270180756106991075086480592474529897740585475794870999548314498101007992895643732824787547854035568230019312520006389915913688055299463975926908154971692110427043034088315061845452026763303631825170201081128776717051370916045861794833274485429183463410086778223377734543988013486557790136238283933185433407101801280573226570068048753861599311858572407854361345485179346675204606020814758353356952853049660199557643377393463120604044190677755333975338329254122716747567420638147283567672680716677242752737051971638392373805702519741076681297739020779091616118655101312929450717516143485364649506780604251978115312814865350660046093352439797079734559699154458116719109874751965924306939877478916540884042606278419363705806987381051375591615314534077639246393671123569754438340735243448032160914515088728662540056066963530184613708073004456368897139512974823589233705764600651474623313008033137069791669469239900994170649560385606666450306634601259830460449943632833564843504106211409346803110545293872017504723546008603226521301091186694789303525200091704666422284656514755930533935114155961559620872095547623124130898463061845331899385924353880578704570270642436119791443792697373650241137600753861657159936167109393630518948598143831475255095952621851484656895171793240452416116323668378008406461926719289787830696458366380844509066476965976656483760265574401237886979350705779372783229351722911149871177872497801829802216028046490719876160881161680441859663627260891068724483819208590055792877888345835465548268090002351132054392225485807201228149976892832320272270371615031846580263358464697855508599492794149455908353081177461184778143988855705343571692144344414477871742880590831087382081218321197899872119919063856841968046369568695543439663208444856743795871171944985318749999777708297017911009372098869245432665566481297742286673164520959849820933906716048186097186843901536698888241590342399102461485565597806949309220486919608927947630549783444471816931397997908831144356168203234791387585402524491661173665260254458147506151751444485296453799174639691893868371128571459911170232375264645017155645707906304365650630252977344512059140866596406810576166344655615107389536014533753449135675465948720702031782740731832565811524035472909911613793857794365312478762474662318447259276226347393928435289345905368997674261783759910119424856140577865729341861755993014494762479300549045356819198208315829741450153180523811184374432442886560169337880371937380960581638846953964113630404141188014661399544660479099906584347258835994422870698742256784882335683781475497468345522737734287260226799392669573594297266393441117437580284233402502763866710913674414111938753579630006304558369846401597691733358374784007320583004011474203369066434117509023246565822624578876076735393899872216346358366151924423286256205283105267422928585630674846353967551927316463625463125188440921427344273658174845541384609046746942914485356828340330150732408570960692121963311339326056950826746545535815352455177281869684761163164604045106735978854070003136613678662329015455451321391667495740936784790735301451876089031360760489273550479401102116410484083761620114834093469393837436056704388677398032349340245860218130710081568466904259840857889344879341201570265475209905858246123783978997952848999520233543888684108905913010813502395201592948460515533902656879874963765239806626135369895651747882363077097158567978988181316860270905572290330517673680646783955020757786961150632721386063668521300392164455124501637330072404659773038742218255290678002139323589990526489515751855937181128344248640403430001705138583880459660520014108469274425346751691281198911917098829565948454442277932047165335519221544348778085946671186659407539547934410258244736249138234912267331603828522178617030938565904583017320174943656943545512116642733997361409706995186163456319547171244703888048792514354594219374877937441974761533240938040597420060176387011254413479744481088593273412064293874500225475724584974637210277321793575733676828666573822958140775002444896841201487100481776818848110268387928287120039749869829698652865905851549407081920297757084902963185474050176877096508205888923039419836845377231417607921435696857722668333507385818893366401153122342709235672450636637751789991265536095796230648614536375585845673014248521146579206701890359682492427836444678643986217973310745276734324723064360100800001593772075581175363815365826975244675104561896895526409290248532813158094576363773793196315099359838656291060600118291078343739207473718370529198686175464876543860063412388075016301023776681662537204310097565827292018479439356615909272606285819081193945216872716028564062199687575777681921972794480429597634401923502193969625312768018323776515768972978321725288031916273548938155824161467659741037845227205376946346233467076432761425506936637138574137248058166264280068484105550558102322705966414553514039864603505811296206332022350772685012028027776505571562562408523210691800031044980022928169471100710949549667517810723490992970290157880455177637155731587931183018933281036529597416356267405313510335082690121906008984466771259687377340367473322315952219359727230886354621087857421981556246060025111751425568383950370819204797074116934762589437010443359070574360279698155588631241195461088065481085553769025731920625163553468339132401336037559581450608099973809155831387934259328237160362757538076406818741496562109670624647214063630532432470541522456877188121879606902807074373660850028967858753509326866639331179988253830033065287422070303642024572615328332866575060502887389256756986085179094105337185312229923591759151373735411488170562437053748568392183699156595653495726622341912971654147050969546888684906032492615270412314212275804213077826403788757269032848802889588274814925123903224239595696076124354281939208845621157062231658652300023978808693637109140055349781513218640544870163863969287090966353971831204518930076191727806437113385013227666024909273125473153476786898647716486895905458274134981104267656875067108520463076644844659126364027984571585626047541301310299010425003687200336319654104393949377858368410600197431858596791087331847207763985427555369627196650267383928146783268701156357488229330830781775209939547131351550134539118967425228409633915994412436713650773843131605444021771119826946371013729629440806202322751207680333309728693105295049062902663945367288362298812767374724119025822591293017133712129121967772659659320438859490752625890777761576253937157457377229615744739701117702584473135133227588928853184779871399326539628587916592950098898889046093822878559723056178677779144139051233281536207761885773766341255409808730971351233053966215132884048090104457064593034513055127538985963821468269892544138656980292843064681607636915419625806464293765610100005100642868627841772532499293793866541300699243652003575811240002401795716021122897469326132345709556661219980159767687674749114428061655804578850351946658156734667070249485438751152445131107171582588370694689743116197535257682947539154569786781572365574407089740731485360728427203123144987984510325249885802267792249449991568170021702084353319522986785261967017109146993548810694654243390370122810574336067176264206155392773440253623232739521565881039204250766220113660742606802805900997154750963864733357917768807771211490467672379054057894408769677790753470979896842819742390031710998324666160240666079230520924992164688422862669164334420720588388455905127799980750029827279562397545561419420539078039377271267113211830800796273101525569607069019184731678216694161300064626148716360222724389398579916218479034328723686061461570942647464305627753224585880838062248317017352215292561405480472978743335088631261951315219348553095141212908636248619730501613670719907180757669407087510482712107620981987447257242203798571358173967603566559853719070335893742629360886801700318845814257241653342357585110269553306725183780535492794369819560642596303885384242403278616807071998226175277308692181657042362303013199948064112679556658707757730317440239322808895348283289753532939198739269846176921588082352332846789898786086574481179163483465241848065411954743101132251316405364008675631552143461406796735732998402440078725221303068097992846704407814009067577073977551754964648464526916541054106822231638714037368418842044978007592097220358353314723768866999480013836299005491077138681894207407744657588127279891142952327528799068731622185667940530350503545153674778531499251775253545324273308077108286749112646486259669094836012125070099076678925133437515167945267693547281346251650417117836393527884066898934223435701940147931492658710717542551011023109301546895653833057255927244986613044521855737030461361432012291638460837792339086597148630760929277528685867550686141910811211183790334898893811883217685264504153546871672475479174804444829792618619027840341127019607929036154269151406030023601524810976174506912959495056505696343106684256709202132996750626857265941509661352484140963317185852533380189816022138287040196385065110762218199451151176426139273863736559720423392797697433472387388329304619966710105105608138623986833632327329599560330639389038983358114276299066158595490434304368275225327073906949426161720200373743355920055730537436425939279024069078599154797181767959207541716561087851776690347217772951923204111141911307843564439493026532724898956373885338415191334557373963557221333487031967436795322422605572524841312964860995406697811642891104749451785769161049022111657523766734183196084228569938495762710541414737026325019423024983441093571295496860641121787589750219703525798306212739551291286734930784601563158211126573312414689618743188188990011783867209580628841928947752413416923144443532241342650760206631015592639946669656290019798856974149212661548949260142912340818877928616279603641283387786300440993109095404959936253485905253436468158382075351386150961986682994380011999198072046784853828413431650974650755179044260322002798843436189023100657144539689631603780099465932284427289928243874021629328715030597639207165317560064804434821090574588565164026484585018694521504748243712291930999878531204123870289104779910656521114280243177637262097513816551972670624315146538135808897904431586156328957394339792673424237558996933514614155406086807126024553372024625656972855764590661898015293532394458530049855256435324592002795523751520913886077340682481100888998874338439638058522348426273372537755785586303445815972785163966905316317443596004590245557252067355053062346774520437544154697903975890103735617181786132929328682125422254381295729943205247647815561735394738712595298630116394869117996084895020413465934729702845010887971443127620222157103519172678394708251791727607306101830725307285082618398566571403865145906461408205628548941472103457972187482832469951783141743698836993780211871427706655321465984014744154473333247181747931173826930571040015022313432003935224237679507741692799771541793811391402108102512889572084592334633600756975309395426535096936065133570455695837587192530881592230542517952760137836469644210305235445303445049548567075635319807652815912872623787884962129531698453732778018544024428896882084600623328060829490234120392983961524189621550431322421094223284674175513141288296616620867566163104892765827547282982804623921096319003188941880751201923556792449937639291853300035902521440906612889841601646363415530685824941649010418804135530037980590169045186951290722894220233838075232106908309163644737437326092332204792731129784913900871310007252604317584694186507805267182826986912188480858995206518164390913428986533502753143823243297368700092082606762918212092048030520829113237732818461727401450611372742075646401982397471692627185073275852056956048520047816776695916457447776719581950792397564892639671627125445231653046102693365500656777437560533628553902327318820068523059038707067332889274527454659749850099455513105027804542737802777684204196643072126915002269863610318425823080826114367976727591075834344007705945462822372233571783177543402044590664389677952657564555411202194618811231919460223986997992540753315534445737088118387596461556837100766107374083787071690612287259564200003716874960396606908601032434432236201740869262089046516931696125796875031504684540719875371532411834680128694897750618323198420099628385880605469504575014418946161693932379673696252193979322121868970047236714296270333242351387872317946363022898884659976583686619881381874745549463218845652997714738525451569497700100132828548431351800709560133486624890179993078692153648343777341204113945639899661062104561500926724846229214057268253147838607157384427487007390136058745168801978896680198860841539258449014267619788480054999050664028275360394729383810770569746276407827987969815736238366411370250823942589307645485145675866722390020536197741719997583320683807638242357229335107680577052445289701237974191860362312989295552113264338201415881362635988855270580501557900118284415200347049756695458444405050533234109066772080042949421412547745440482097457184214960734787943447881485280232380619246588073652179112060620706052423869664550814609694799958138380259741218844795470749173664552091694834878523767900094854223661573402893983475707873285139039705907980588360248366842575248267721550262319504222288397489474998599968419097009730952224629464537185336233264043672507023538139695852844942794120583596058550975382309722227573771039548587141758729317833552833035411063371299595280520545692618575951772003913426738874556542651458638767566381195910167858399971066247445496579381804818249185484453734732622647824108253300045879579072624455381272775237403788703830376084103328803593203686111429235578261504670894052989149894611804493556180026181593839330499614571945133719525624657336285584791216038100605020631999905862702470866400287834370743404246100618027576604448524952851307879394449846674024331676797099691317230435206636302435902117977311394915390756073001202888478002298450816047775279961474110810531049085479714097465035934952710675612426973513590262906580693863453020331926164288707640108673369453276135320449951077614493200676669838791927555129779481208894001882074223072384379897112417606567142524149573526020184160091787987206728138948431333173587564852740297079252557518032611344946881921441753772394637897456561501130181642323298398681726595215618788122028420641339356224063824957955024709098771928722356519370038404380126077329938743863353651485245180467929706274020589613283261796867970722253803382174728607207913087473806238178257487149882921163592125579939874048535383033741170337066822193556292394176194107318534333825823052646054436883230739293213410837913341136578031250467612489202368078773511457373407718676699957582069635413725013143927512855403142257582418151184687509949395875389165183992539321558892225865661403834349107931959628965452692188710450068974873598010401183670983339888263752464604984077279388372785370329687573453871600528497651016017371950307606583788121595873536656032739255117564571221148317910554616606924394361613718970163038348114247702875206551683273018331771848520551063226427794459936210182704110849363334576644885840673282479140482106094537158003234498205346471557669639868137003478914529060400845501249506687584730264550694733666300609041407604468461330119479684203052982006433675489655578998679068969431671852497910141946556486254054862954661838800818580017958842169273129166087063642210899370065731427750099471526594445464928134753951771983108130203978995710779239275459910492873391310008010666868843074477698192055967113200568845254501406316643527514120003861327414061649481580289098392637329296490301998237622629425087528941274170161545746449061792412386964126823823971055274946362279937014427465973237027795980850078700767821317019013135583000314265526798180352095643390668923816129532974238932042384608007660522414702157029701475007106957839588299909252527569383575984190013633230897614551813530142938330913248627325355602299809892776704332621104437686761813582846006355929745553968412949842071604200143220994969457943099222606334292672151960333299960634407360949829113185871002357358945939356302335960478449406223747309882728824554573966112999540233682350306928781649367361501382757215659999652369445808274642865047213156421884575991426333423159077786285335512330147698111895588402475615175142115610623982563045838347782888742576183962359124411222996278484673897584272430014468460370752421754047291012885572178313785204817555788553813312118506469043323690429699799769852253700497157123725103573435574284958391639291296849240889131982539745347502090961902568687885952745330472611006071631552529174281461815398942436313568894354333811487412225630723637437543043491813743727901271945761189998428610653359463381656816020843332363908749495475748232390312870208463759948412183583109154770753170290119400003092160482077364220416283116559972790403854051940997608184701705555670500455061830866119263315871536103039462608195309159224202393049729662362371835089782450563611323848607874063654715822208753148415614161766681378526727044975884576074856508454682518018577975128080245826826618883936360645996868268480744664420527933179100536812962924496582942777104606554348439935183044042356178459107446843228007663503921743561217899183013382534606698905206155737325097322445205777371507955713750059081672625244512889619863830106115910424967105720696515614193770637961461197361215298405118139827236250761396673932318163333406804627411397260890513957831826677039322314582793697075188675692244799110458820170499000325323555852527209136588260641534087446614749488177278438869855557931613040499256891691288618522850514430405255945832507428758092303008963813731669364115229478095961487521724482224160384576972075318930027516296627689100229510183569915516257244631241346744569569021332278152041253693088733239541728040004029445536413222184262497299567338529867831041856332703238691788425980182332746560194827711133671005325242785463826707569608633652884842040975327285023154202250632209807650942029673207234673391776614865908255097177982892794603867920660774842490829784303189060722832975356147621172756302551994404475914890652434100165022998396196376662880635114748065990845493316197631137835444113751315984698410176346738109527535941710313662988438902398133137303592848949028941413582202765725983483873477398546648355806739885126831963299521588981967713027622790402900460698113696625891941609694618780701049932378852109283391359753009722837677412841785988942162999772342020623818228419240710280843923380781137468011966168864687335971420549767123075765296880228964334575348727690615375477609114122432719553780823156418672153307080590571164077700627751551000476109483739842823092716856193726779351773372835716935930236146965978610542682376632930370946139564121753018034985244392657160113313607199872852063533187117260283996135988698695398286062451872243617169944776152301510712708247619153118808741498605261555174323480956914046988769846526277993120388694014565588636040292511839094388610595158790136623081751337320739550475138129282224183016987093033411024746269894621463701052348624154287130914296387275757452261339855792510640663904028400483622918057653332025445873850547077649870051486724406340208980359235856392881666640038773821064478505919424336288008466904818927611629098247603757484149993024232634846298464412169219345276262628105231837520476231595164590340058505783015629871344201845224066677098951411022059310085277965837129146250198730926175439954784417810462961328872653332281246960152872145289423162682178741999361275610633742289904871593561079265540924191025255426126749882061461003106488464746623013494876843500284960592387399495776061415646882000171564887978198416235419446055754966010669558504548905192301711857778986649028546843384785059195415948859433588713896759230785124132171643629618585289003647910651991205277294350725028361810760563366000690403118360258403439715896478090256065259614840752576307253322431012611762321796842709869213178031439753770022520158411120328000678740845655179383439138165395783210963625345253809027236409841706514648579593221781086569241988457746922685574883029355732279748530475843631714303354059594206839642751453967098901811569025443725425580290259640928268130654734035897342281101310291705871320040541300052960841323071193942550590110790624150020678101018037458519163193186944147301881866533468747628304298352125139413642701082769153107323816097776012363433540082914362037337681943064462313058766968275230005397105049067882379956170143865383824870079242473733647418020131937678664352896611207852095891188836918322415268593978201884599830576306153396915104563348089282340736712727709331242476856379259503109200126008983501478939449514260185395768050700528085106442881305798863543985226094804283842695228659537507449780095119302399726515887379691911479071657484318515417307629002682250831884818016830856980558016141253401146283353041038628163457599389542716599757924130886177834399048461406627270021010889823931634310178103164798452863605184410375981440936141254749640148182300892474650673078747550221830405294884753828728164249834341577914674359590984419589300321879035897444323341695154317676640490130111865785753388321467869531215118012960146388747596509898820271322616839762657782623389401379973281966647086064454357414054942580374292111122229534038626271300531245830541987381408302625391569899015114690892304507148799754190951132752085229270171163591022730971150550613106357794921114704115604768280086691632569550007377891261088153145679151582452776933934333076255470410784428438463032773242865401650851018498472912178586291209835199165249301046722112444298374505178238661240414143077114733952593468119957705149774881686684990239464628866845183666358431362734051367401931135564218054629649811513615840743951311745231318197903634648260826404181644767766320804731563022199490403216620742596329045665213233779740610424217430620346066447627944888226720399084375206846975270057558782740087716012672160246452468187525943088125793814579860016036647893298471108560137626278794465196496439804707000857978631628517695713907914165040103850032482583743274700622915430512404062440717404002138034744703928533433559163952911091773428420960525793077445413506179891732175127104030877672018922585644386120536590088336924402477783737106692317100968330084305419805561536551228391506752729321388553967805546143947453320555718537104522479846490761819578621871237756745883876797927705851435507661063044171681110477070971206900983675840681591025429003849786141718275457578137202303087169929762110729118480543581182010885353759556572818325637105799514456302389426717638070038812834910752962121003169102111646215451258983483306910369994570933699187394359927655678688203464585144612377792773894353435008295001391876666248183562399422713549317034920449741925888421202799939217280118989299042626427620808604292789602269282462423944692404360025256410154911050885418735969833876803700525770925926451311325649251493407138428944557511905800197419938269720516424259827875621277770137785117754243227424334638241192305218669492208358592660794126873229579612832497079313823152673758780303115114205347363550298817168248975959847228917304465933578984324407197435886116958856483394654722259258243124146560251323083362296223350913365782182610516477367506926544462938458806457923923309694973230296394620216967992970344796882919737855784633758035531768259983109326595109836832726845110778217669973442290454937995444002091605912573938930704100201091889161543519143261366020086053146986311617916051299948760257894395336098032884481508899218111607232530231868947448600664618111309597615474623974645590606724111780795329450470512667688942425509703535702844745249661715984478877193143148760480989252517107451268113600615901833337064582566469188201517654879170013164617093432856467965388741884521080371235917258924346849711303838149609149496138697184142002268659939831252042192919781774044071010613848751271787041939070229666724170778330593289566775806913487254436187468874325749590986471991101851570253506904678676267701388040891160813694128387775994352985240969495675323025495209905722909917753457048450650906916030403625431201926218056490048138942949494942096681012953796956701393944115473343114528561684468511771490765404518577948785521782193126878686672865731963730925278094920259331927179314207023305309626756280739557052652102226571434111278573995940737803104783065335200686123479421524781013404429711916368127902858908436746987671361466350387840336375304908485387082792350636175125388079446494279881071525163006193199016408789965968660271601141137577507248527846017666206022356691388004600097085033852503067099463087047030790073796002933616379176310107753209466757518527473104996692869859024209571984110723006199493964518557322415139212066260960130741924032094429354249983650512191000136561182239982300054179223388646502353392373362845272105017080929643016980925152468210459305078181615654009572628026235777051883661498234330756877204905715511123875659654895960274297617000746987316247075424635359368620185679609441648805998279114864604541921523855872102871078451055568551270912620911913180782557096277142105735905376530042229846049576967746362505141373890864931413380336515857057304872883284847267011709249602887943116847615141639998205378914365800703984291536946964000569789558200328564463669619583431690623143759019825250866692069926368543607098991860293296063863020126022834447755301205964992818326110926021011162552622900430981541114501714706543199653142748167148736210394471413943824365530719238101344391248676755460991788137593699112257797818702770429537796734020928491634895542201097496957999816615855470936189474841125139049582852918267779051148983243959586546845291301457286483538100165781255932515174832166782006248393877157031522951474908817769494092234094708547642490752019416019478415528592434485016370662263342622476191685521332590000807610992843859097105304994805664405390213284739965809448747120862422796476107731393726952142341340192390259780287451933901749335921076813679986882915351141192022623166887829564829559280599207412376449748383706503700271084282109628815651548675881219799014817689844427761831662135052316590189067939893552542366956929503778036938858901597541562900613346690792890313560145561611740181268884196190211818679151676991586788545974298134257865443582086613595656389673692622415071184497638163689168625950460021855215101740637848322035546130881886646316231894539018037027457081087381942212799855471369299083588452278821912155322068045477003256344863150367786281793641866776050596711961426348793955237927781955209422997385715726323376277577584438646709589924272936410731904825155852200633880684094983740533237614654991363957986110048736180387951355128969493008773742545649589936726584963315585947494194454652336278152871965453749962896934414904775165033190052121251434129028082134866360143164855008888228315409875004512605669222845627724640072931897496189033482380491760598345147130471892564900052176581734894707958653353068353178372996183296807214433836593289278719213984141466497339647971228533429876018178871048962228360428659780986173819549177357841870544064659275059825820532562319257479837415352204457726231798967851021298052951974615163570322029105899352602288472510885234599313347762651231112888177947314911296988934987367513901813504477054800366107658534388295174490423846735275206649329876790585617725895594036804656496030514818513326912393291567540221592851030699076383790443345558206731379779669192095969097018314060288152046641331843212261316876180807093051889739350302295373555414276184516347943537744379173076591838460624360910579098774123282190029089319194644333602431268774883218960342156481859693507937671833628275798833881558290956143459099865571542195879943665772406581356498413843761881338486243870174163744623130067560626417152349172726456202915896357094431953476870165771403061128398902742811860675003347025784426919737171683251012673238024000831120676846726379396301375863446574514238939669131744368444020279868447792060426261245238086792807929272433423367521787242941260094220478033246544394901222405017538513115247814433011955786507240509327141068319269192737814188965379473254158882989696070335568757428978690847896746367372265071764848342210012433549395097539158311986869027160512689737696052655602583212438437124541037737269049445626488734486482416206646841842291574079714722005031259395159816759546928999211106108856081902347591929566155279516755607253432300122784157701714766583927077203297615253604518108161886041274023393897474553185659562167115573100072108955007350437792348688300187063143998596233006996837584769303046393460522220915708317749809348628959964242002567739552614420922696329505692639655582224169161567127104106314601303801104926043945475168451511716570926105281295994318980920115474447317911798370012644421269453463054393682251240338890385627374717859887612840788113712554491373128573012785553763949298383253370793929194182496240927040766180487217765390070776847101314262516739903621418671457820027331547397799141255376906220982467321664995838017916526351105550170277397811088271446575781643620496204044528655823454059741343518574766776708680734671363583972770993520200215372036971641488650141346138928509151260589923010705347234642890076886156000318725144231418028854584553962473520056825273517943149245837607611015190407826190040021931015335052013168697444102573088316313432486030462964005929201938555268707047713857415259723473629998972477655559801678306623000428891698714505292321727126354495051042317722270940084027646259694324627062206544140737246678198980324131392757355651464847998080434654026194799386596461635318136794974851017266561243188307358027585270369893989144385257821547964944808858043149544133072055730404039325577217081952064626130642476389909083878314003364698778658385036646461244721597325279467278926536870072621845668060387209228075652635841884225025013659717895261346440121717531762712295072916870097016872446091555468960154983333150599023090784050675563417198173863408597770897736785064375879410685283158034645612702211374023664226413245568815985690982157980747365738831261318690914558316741103766264818364688328446345045047432060336421457414339410688095201199435268732662487530337784240397531662065180186933764941142580694413382584783558862704568004307625473194048879636574097432510400854036715627023142470531177911627561710412731284777721205549508273717191329164314020130446563850275385682420405016053142866607185368605522573437927070331831323036470868139888979065169625994097037153476833241450818064495467891394823966697046394515663729088023541371396440809335390703187962273103954037260306893317635769429394514739970846318961940232292829156651302136042039500180631996336750493506062985715669496109566648176016178940270577862738095620804553952546576980637458107862562288506682513501549264533714521106717771487377324812256554611801457583594518910448133280483618390886766923590780574754257912608025829319350721966742964081183368926296522440294896452104431655226896927528182978274017400955753598949019663020819970500882179885271755577959481619109403717910704751657730824931651452670615294604102563919488294934604665409344760849298910843062364632548577084718579035271955067853430763943780385270804786499246136732260855161993884174828881868639097056640764837395365174610128674088756327354869588762496720835366417713971815904918703441259279069400522512078531329372581120729884131776173702688862489289487070874931262414018675832318608677353134226048874007585726198589472072595870292906251742204518804466171586726132128639022603497928678518747665542587686284805815016436349532476473703645817195557545205581489175322541841550541663777969271549698444504734078491397409154327254294095845929600665147319995223301305707263641047916075622960182259608468324693277513055231017172990501185798453841652795473074432452304826998114110223079973813528921408908589840299861817147524225513283328746108302276824927036715695518662979553630330460339175391747259427238985350842820271028532405995721896875338815320926597312333698549128827183298631947047541279618575857099631019600717198737782027504845015870734829427233379406264966667515511420653509003532074065565622509381662481343474358196239391077548753616436980197522264380923934576091656120567143128780508868357782689899781537173012378772486741404773426799513708540632987352023832644347788514633916815030804265861944810234382795099176590982223422233942281709431962543943554352969914483075778656533336212467187599845580072921488837561162460786255277583760168677345692167754348956385711076137075219024874936807128989026274780521270965041132217073825388741104015472906487863779484577056401016939596192022127644981905644457459126817472496206848542529787662497876260349888504049768946353665455330677057544080218854385570405576551035261280860450202271114389759520767909035934163202365585425984121438040287631400255717292453638846901542239929261739958732927235296643356948999738310200573813685307606918073667807231603151717715614692142183492345532618750439805946992054655145804612248881027773046084281984128677124604878242348867065057618994186314386818581636087253878688560748499003204025647134301846708724763667709612451942213025627429301131184659274682397471795757003476291848432799486851769333127996718292441974781218265509549717124583072971115066182269614163959302292300382610333886269642322698880180022722053488525926921954190637828725926484671298283596427408003454817892684259040278019751833345070213552105337567828287430660674342544891143035085917342068578734215439970815936890591167517551815944671978743043369311642609915942577255904471765187527433465065100205421064947218858354066717646897862595973287805623941173317618845886940136281100423181292458090053350326975847395186029957325312357714013788212513913065476431602354444275859066687534124833147351212507556972105727380687943438938627657123783012893229006520867856146340476273498479456123113489958816321936789235302767898697868447592898834307808603099126484387896757244144471411137184060333002252571055612276616568975847462698332036500016213618833835108709507154865222288456466925860466677169289814547769871694980273581387504168299418617861306546069288380666815108724226777138613978650493939788437769208926746088460916948423974429263591530389634093111477570578244429870325224773054186558084332160390703157313012932714930636247893004484316160937701976641511250617191770634474957847104561060852675385470782392469646599678517208212066853265302087875556058563797283549146408228667502783918090248130944420586277466310572131117437240601038929039948800878017136107729141625759315082355975395179519896826882660567320178898365558812897139570435025670923005643702316472076131686971276614164158074246649469807195436568916804476381320697691473859628504591141203435268727994634806512110828628521636588356963483123776187965264354232456715717767298307090883833196099793874471728320159816030306753987913091934062182434220098824576861309082593673874163133546205119550661270615222818502347363888373801100448548207561776357305644485547383127061471365115674202632441920541998014314812268721586000277307855392406231426752776623479052036685491590787684101440849780207561622466701189096282130522213799165609585492103200937360531058987623032586061255306987032640665990333857000066456031749200918174769573181921586896325839906989407260559542261913787076668302313887153970170682825711042362960256132051266287599407542157109013537424680121014719204218397192047798428565176068217710963718526385591412086123165055595601918377518741348274620826057656287743798462876150532060875018541566621651002502254697039116531469243393188689325064370179139409662355044572179196241425785177240277280057289214903627279367224867096662564089401565399169284613858645478753520131047339198332918652650872201129489889067662703658133336191842131152837865376809438419590982384511424111670518485937775928436925251018905478118596186177919773651642448430894800447336334468025457064814614252530647085931027607812928474751411642032371155183362105993351564496380214574217935118352226777103114200934377333657615809555762879856996796854196623245699625927243317208357012399196169495580171022355174480108942008173940146477466805969037201843921945194351026454421109448230588652768976986144900351711632376085751576547237821197956156226929062550171950137118450476876557838952729295245417842822374373966715161590029530776750101931021754017629100597076782762422716925155850181543354084273475460812737387823274072729917084381111699718661081422015788390322913955777934552627012044592022966468395495505326862034985347175627078976186155368889210991283805359795033108348646058618074252472562457752268130042936745838379178734579228812463006203331412290093530561491499684700578935013207627497820350688192886851507008295933052522091995540190267394745388068276094375331673135688404791102600601086654715752743430214746302243551072711191646644246546270719047618053072395391982679431025183898393309957038012210358057835680750105838243758116139311910767693323723732866986566729846572086927093728297603193381226500790439498570951026060494583185307006458984825531131781220498475921070373061918093000131679356401859319955717787586226921705283859186123534530347409041418118371062334753785060365730750026006805497924371570141835297150836729563270746141578745564945661724961267019588249917048138548856269011948080735517606320296533240087183221006213228593242693240290544186276394311207720881085725315792636998588840314100280163917880986449989324696579426647201267894459604220003709676651667913188870174096984952019337270943845207219097502775708125530752116504430923056360150409689642759734328768316196749643347460159473467349430922683763589534071578993585176643011494238559641885705410122426201200201287639295644663994966218217332807982594142512532278395201333652413612617367938836662843065367939762206730498378446865312247482740736362690430128148732159748720149228561641717343605880317280419468683018116239223182093130804995118860485469481100342021624634093305345011165428518128994199973570441595298270255787200197171434959490457091073288985841255573524058743749196252863632742868795778070786682833284287009427384141920950719634843180296488319626010510789992993305214418947681429129701620962208046316131275011953250326805566652376518517818268736734339421688386112869128455946147996922551152646788916462644792526569011227774753486156245198918032510735350577128053831724208358492911490801724836941855588071062115952656569112938107089739358223361653885026651520034503278473592074451643120564277145376993215605522594232497841249008199854069225647580579298391582039012008016652716733222461830625334335661828415712060555474508079775543824905675225963529829757668946571331464193005170292627105725526670358985526548258352009374313188300582261950921829298687812744443225738435937964733447555824716010872074577181625870687245945611753389323330021919666030664471916055877235780688904909822055345734964176143556912401548205732734496644071017397189009556126044133357553867975311788285989306723391808628224294214682403915743443428916528130357668948948161858750801627509673482888721305874217030303687204787345717068703611760050972464767183704147071325152049491980358669009688531514236115382895313110300068766540513645420192927923568098960798743771083162699312168200330071189477413125691388400986490802161447766784650204211442253327257533629422356840553922164487659968878785701646991492276682389824755779721249180959587285288055448846922526084191073528290800074352273099669359947653677679487778356117121010148309766523467242878804252647610743779642648740041070510661451700793795599717453440818291719429618876302291164849567239356932673140522005450757657753504009523085577771415026739783828719416682881435327551139835965220756120748417039470886190429402584336830855476990962200669575545482162833356511859742967985737693426718688304752446658334986778686752971915882292685501153135258438184453205516001489229095737071800957427603382910147094446181649152297727362457357909989280896638857937431930402475769075781864415748878224808655744222071685342581790303287268406421480835662298590032343602043833725809540267080949573807482325792994471445246122545054555311433214802811513411676620136759470221448241917166105459358536346431437649965022061624751380440004134997315307287456798053850243268153232312605024666875828255239654964557304388290837399421088994198915905624412842975648573242299745357176253946622916536749912760912128543083155377706177540869304244006350960741600556896974972899011048675417512183816720112580097236690894973611720277449072702793176196345551972472930681121530669203536921943433504454460904205217655518358615152260674823573824923336370873328873595526323909818495011675236856805981097767717168920287691479958482668798538299469946314257812287678017014427356166966807180055745816891641184259834645454138815199002514159931200844647031958900018535131919838219051885656062856740271154408826858818865609572752170006602909804122528824916887391403661546605401992233130284650328532028892683864367773900840209100787619335276044684698401434391392860286745170665118199889154067486653241461904068323562405909889267025052710745655978599676229867935047714693730301866957934208110235942017897231608184924474845398682917768106911619094509324955402473772352654966843038592038224502809961996789791817054010818235260568719782710630169080743016439425290315657166804409052277438463004479886984630717925907443168577108874835966669986561116613774646151608750373596311502741600135253004108918828674607654492938718260253392252890141661418521439399772526543932618884753027020508793170061933991344658894367916983601707888759681506300370334629964612025499523773585983092233240618214869669692391497482733680258181497153966779008251776991106580602571137693565362225272656384052314355590067492928387363679999003637854733855108644305679288701118044566453839591333947627288947939635163297812324575865464026643720117200087828349042120927717791103637801035282956561572490361014105632695419877093973527138877437311006548460103411227650517907614772629441043404416169760941692253618898059415090668198774172429727784441669225587074473790860498771092521529226065988046552437776204658073648382256654926836333219742549469520920641497520030672188338461214906992705571876665769747861173721052618251446081663775138942716556322598064133141238155521607233287604258305586159467334544535677179639665520365001974947168981540714102470842891794660034874693755951299461011096627842927858534651836519451679307278852402093668886368607371662837282465858220726092824706914205932737172719171521872680153353939967275775965984363773964855523083929693397606934855089645384243065123382374680971159263905681865451803366556806355442217127065305940890924392562978357679370596959927159163636649026255204558234738232099635388925166445393745080973245154847677400522516575538321004664252762827789306633714143169884817008079828486574153391115162273845089648841273634621366937805321682597813944232448966285856961956135846281441181800137341822908195214609642617784398560658689482681860898407956509373751735374009656868578044319596101379704707783248377006312054070866386822273244648082693586374991216248202870613679788501789358237183382832982911967682825306131407279590073393069445298323874357619472110711573429771351999257528926802599457695324687501739224677161376490270934143017155989272312101183521275399453312240457943049343572256390315562209287981937913867254905146121321146757670752183899835447148875907788027805273379829552266220009698135451412131608298254075574424807161156942691130081730422458420664830907892983784537332879044469808544228836193002461032731893178554478523731672465626553801333886320844316773506940577776580378121033102213111159309608749321910895216211421278738551273510715169848252039754871261564642718887617484484987732638627248692301937289005360338269351373749697826293206591284787046186250594585350456384270307558486001474471887307924229047556722848688025151701951594407618051863023286306020837999370179694060370906608304246135536868772025956746394562573769441075370020234787552299061101105155675832463183633099621108120947678374667775385525084172472472439119768076303600017180485687373720432266726675836446473058728765597808058900920896749133012960877774243623128912676309748168233777347144006348210574445529147363033030812656102152481159524976276514873310741514856502131552022263636976025405513908069212286560326370561798244529171875781629980739542201068578500152933610543062927135987412810779954932348502349684271511461414290991634801967272620987129577414219632797668352820616696678600200977758577287363108028346062341523160966838954041745607219794330810146743085079323127787526887175989965979978637848445321884976599869487431565399795894278729021467493687600698112899887495795079438741460802283749523888122454452342832775880061450828197651648137238629597687952174306121289701767417147534225725179102607730175566653308566658650929222682132127403246899191738730364301295962704617284317951841540855044499915201724217617960873347699526005369835326501396254789235016202218977192402699311658928250310301856052875517513127910931902606434817968073788240518468002758646551550830543355191720471313576684333525943946537093406730254872159892131782184780016160790662666125274643872658763301717763648447187984745733911607084676826697098069814825309764217887900249294611161407231206130272581976174768051273434428262742494682208748421048408262337080729155744684007914027349054235919363571969116412992275703399799935519589873831319943989863302065112598502530634992754922258487640152628323361195958233335180701055030200777163414355680999636002608200812785536988187896078355773198841498794799476266595860669539559719007008983355743371754358552646858351595094968783656418432242255695324838669504646188326311783272548747234993116949347074000057380410762853079123608730835655497561199920190515663113418487745034474393846689413622635139476280903974444221987908764055571439158734434397786893935910446410411322209168563029783234108306549659197277990663649154462337459542684600488444390179126805266100939478277288596690752167817716303581855264627252332336119205596087291886210845236416668194931769663993523173436738194677384740583369994680939183419310666753708134480047868852835769657540889208905522404561196457353237232813214588766095177997594751851970838958320933731097233925375129522687400879960177804301414437850173422607076964800106615913952624163731491509208005804813955799365247406811438785809507012421866096229948628354195640521047851918132413207629781288027077790314670269436938079414240769350513997411824691844955143275654509931103981932472556248848444923177150865254036832533576304976645198025600240483145329707626289552739085475181261651574551939966149467483101383669435609669867398266383884646949849408961195829936458328207340723411229518252053452608014737546339398448294800171420639819797079639286040094390692621508401579471224945710104196001007513614021548859282280630313553747139287163403473373052845591639049554955237543126498007413770213635123221038750129361727296463539311949241926919455262760151342178546970475590183220320128176312259712992938549212315359715304160883553525359899916502789892148034302929483688695408364552568336250581744627372740966415483949187247360056793875042208210541968809604425668209038969687692688684264984007835403359489497066610601728651885023625667081045098978995647496627445131415840739294057796205356406648808928817799558782223893083908452004520294340117617235841955596964113247904870934986882784326488867355802846358805334718044276723691856578842388556786059194045835023977859855167981088361887447683602266618964563722748636810252238771241769623366837508268780760266610803388885393901983617213064938001190971466146872523973251572223153531025198810282688221059145005137632737913602943110765681487260708943435716703659310972420878663840652772702970093186436887200831832457189809316714813106940358682569454689353072025139778428297643726481782345189920701182602853806489908748695116188392024403078356498235194572670424338294096158291561474189547987768657038474217103057176345883825756157536553265945877988432397727724258601001923294573785921654279716022535586561291369028621567923244373206196377876902290979188748254180167611486517555218052349242288842229891373342766318545912645704971479132295103972675426449040322362828077353731808825587295386343979412371912600533035477236540151891465049096399686258649883238343644738102825812306487896476871880271438080304100708795626837892095895909922922006115772729568513406649886453116228751925594604316698470138518431438256128611271268297963791351829910017984816294023371156278127323412834770756064984385063021170942116348828248667183095690775642380838153869096982523045591157566113775998491184576855183947551415251506219862563019788359782858022521824608098236342646781044702568159319989398739387465384103918759956996196318370652304905268940227885978983326897135598150701698791207134652299239425913698468716196690801296719720198789779510444410681594823386469568830943438963463381992932724106929308893591603563459314596363467006046277044248727377669828851470584947097674999654244325058358462803223251255363220680004108969890103563995300581530244430119742757596198011176700641536328490924014866788269838786584063975909687452052944169501386338308710346952346338112237271783379628296373986605213001559175679289290261613127707595739517328427869998506326009380679399520882939782201620917614273467617127940025418315932513730197665038600880470601417931654082237361334788424379122448609426823086693568072084093690894711371821171100578108027023043052179705121231840333514561524369131074346266078721600028456539682936109007390673265347141364891013470367837313898492444229183011585787783231148396590392520512147336561462770002239032563890737267942742650940947283404036782107749946613022277826260607621197347224252138243049401811051929044839233942008968745603313498658594189190206630321221448882888454918759061549018999307602461159712260907160567078269348805827563189252842452446230231686214276310070274977520893275989612533330608112170876390453298776103018290281092957387487708051219071874398983253863990973975008474141258063377362510045651462160805528993769787968559241385544654602132659769460062212570475199186831951310823702321648412738838261533755603952811340540728047792832892494402471670119296049334799627574546332722194047216437845123607126705860707760686288597808744701861400703200844200482489285266885498865948543678244932025598552048927326827698469283769142481115009049545968670565385768649294683550435605256142871149532057985219770317756201930121378221969052841567643429499287452442470581927034725501683137313499913142876270137459905491921207303359515561364678221067751306363122969109165118839160526663563028025256535815498882413841278640777586823475826063179755514582512783090595196189207560662626720859323644036166766313424173672838375556929349586081730822435812431227351593746290051594242550140082607325173577072607217058329832667826256909025360370504456334464849725064057048838997030944363829739528337651227425840934662654986475908381731217138583148782389371416663194352589209054736398183628400676077266701467028320902838466876320394735028221839437942724417211909683707735852973514152565047304699535046525040089612596469755901026606859758378910999971727717951075717120517843452711817428087524897352539877139765207989375814033087717179123469616881849903792107892714353026334501645823331032206228222906965893599810161035848586769187920932470775051140341481029597328295348368684936068541923612943318210574705017216407711505835742481982335080189835185263310480201860793244872167133776885324442154312698644688225333682106576532043694244338698301505140379313547139468026684221547855777540060567480216541026718022432772312200918363862025493955603254227880452981884926823218380256922928590084839428187397331340314551240003022364388208987853259880705723976958625908918937551520531424862888490045017017233322786610537897817892210223382336727530908143428290086240547971061070998825286122953689097819522846034122731745386560482237942738546653957226720432492960935383906780476525118665880267245834925290046284227142184104328214849880746642867399405309594619130547213379330625738302370361823619883702691500322118571564847014719714757635147709392059263991987163242667826182612285325437142125112100946596979746049230692914017620028794517938497311028425663160079905822498006156426876083580167479786098645800594654991384106152893263984943768552881064355906422744944567402596788775734465847128619343234253980997447973467907328064349781311502752259209866934683655716190079211104555373165959384526442355213485648230840240690027690512698853756375366799741896591637599868321635460077355028288210582134723861640266002039923323093463181623346857876366109711033650939242525975116790853660873944793525132016896596124506544767685891480571422576456777664596450357203080925375128035153126503672197091746890412289619124794330202987010153835924602681308638968091921590576030808628266526755791965714165761329732573543031442373300768958683500884907589237909442841686179898693849223912606534308570828788358462985391460216146169627844132124638479243530286412024227699807050462038455930094505331617038396676536968132109831098598422367545046221205332912506229662027761916545085928068268238033803194635265085273073777803393903269570158293183882023007392448470099745336478713674144309398016467651035665460707035688000800000573184486035112747273374836934932095979940011052890796835015149993554118336434839985495131255211226002963860099139722447634338856629454167917896748406780083455855230068467030946953822453420506867839247151412597792179861607766382599987478057013881584456355390992983707648655647655824005519042181063058617880108682239406926613954239461526025288411399514912709277758798299156283806318995701117498507795577865006566698081193971348641746581422809222656807400844803696346703522139734415387649837506120381096809467016324932470718796802855733428065142766164990867167101093275080374001236498161077381721457016605946453496043191719781091693124424832504397157476230424056134704202583744544943012441887439843250225885641330014278281924914968268564224754198568284846259703670089804054668865780738919581742735017835581931921537850033151704349501814433520110242985139974273861457826134735303549855332502756501004725897385813092537963177644843781760340875606756859518449277828180874930660982943595505774903785772215420026953319968954644898447713210074605390935815642154676488260160684052514889044068845704276148628772335819703763279942814972713496059556424146659197457461165801742584882610742525428597222901659172705930782609504872993196751321497161718951706597004906312808153652222336371882127398523099013570790802605668567014170751120076322974588981520813415921681281531497215802570028435243319486971167082936213514919494338895459055361412073943515757562379626512205627316109334669029438231884581205920639143037941427536909011592249597042920078926486009101916198759356448247229815389687957490181749667982495085436903878156412771619482365489258399035288169184311514198363922690275684595765424540034465022616147138323520168317351651168984097834327941893384083858480949499640235908140493157234693427217562149437952123628540801836134636592928866508591552790308963025939276234191593410360626547022750191809316940817881329873842850598870672167747609391538603245870714329153383964235535250657468670140610475496727516641043647276464766410793847249986918062918863246290900097763859258552445000409231118387834468594408896102397080141966218369425505819889162413798832788859557380106545795598290987292466733710336358832114029502889690090257508689880198254972237045189904050866842775676289737769381036921233394969504508466579827151551714231940298376675117141923808313296324168454451309562234506346517127250732895309948535809422217201143812236916120713879204677639671793491016196120289913636906923890014702562904507738872117368774982746401919973842725446506701828392921094203439512313124167556828706499390134886696700355520607565649828567390966237175481904686201700530111490308881583706946520641334138919256983804989454873013066781784786674705648489380156137901557971833173046498680787659087751149631519354939691959252257289090240352624657200293763869915264637982828926090367820043322257881099898932014655547934547449325255532240052940720927425560389840772627481771636077022175371091484632973398319408391965841668525896589604400881855788099353861719900113336722451505196759818440066148859855204816151640880381430260990917924907936484227921155790634256284649846508853965982718370693107648213681337825522612367699489883870286180258194808857054036515649182762878294876983518937306750836046878129206948448374387640673326240608935672060804429748017811342602655986795602674568571336103646653222712340753637819433483131218435843067033842154112106627704618131880160042988239618054235665977345818869038819291555239939925588011053481634879557653914316455105829367847057463183480824606172606013779359437400697447249476194727167455189369121440701490863323347544932344289420718203750645671286064459979371893529548974467469836095225875337277314617542640635054267101442253513655209803202241139354875473697062269849424893316998291815535809393733426516646203556992920465121161332483903533587309337708444972432303575838533629178852262759832272029667864339208410682645000311060435416985499425104188955943358299060715480918733279690468640946613201800053579617541262697335485969615540577880459636078334486833211944922669873492779581544838104270459213057011720531198572048583896134777070098310647664760099320086913721991916115552064196936593817990653928500575632975763304709330385375598020223363391457316513209820749250234110507489379001380960757527890759821981836726511019976344860326779475398610667330772533424137414065819748187045215036201761945851711535289982979292952618190346745625965049287503338654584396373482501105126249474404177957232039338633464158366435036615835760636954730573633123427778533792512611748830590813522437184601077289077486767193239882145266430998904357020773425608271498904322650722826976833504195199639726774814095570162901243453526946026320938498911778075218021465891678099506106251578947257001596699102707622408388295076264632616396968359733125661551292732854271412081086024513791881872502668382618616128941969305858587765996352200069135223397319375060808700009619988000927256114680636016410668464251152835052208870894489898639781861945525220158108250633845915381861557506638801958516863638208978229067967760464516414919234222345232966013826975460253304437554272571854113432074319453920332147751908226478525808426456299273892692395223601946809597877266246779199865318178751497837744161633966659238926424165959363462301162302753159557900698683358761499495025208859896253626258789528790256637733000577500829484402731359673618134578379800192357423623725731459584894544493435490270296848971269685996479361114596157094570596462316025037231941305380287711899052213026614362941148407770929762789409465703069862598188584321949281655235995234227018541316991180298530536608621021929625483589526814182484492644640093912602521846728031670966218643489956527361500397795339410734715010179301032506596553187167632856493552777838999613076462244816533629512623674955424795483032659753271644611308791616034304875082291095739958813767099727450320060498146203442772073597560943046496540905769381263649079381081911958037041194606804721660732336685585585628391867146426068542065275460752595377513404034996911025185070862555697953910142465932106112483933738678000834932185678300662658414535437403360431140888422136010931731019157479589770829943996971024787099141214379557422956136472192881887910059266017880765082676716341540545600909150988089134432628913700142875502467487920608665549327594679900071467471453147780793806612369239384871289054338031231819721053293414088177535155977565404161245645135306562016003487577210864799884411002947471509810883738732328028307328369139947524667779735730154260387483242092333552581634708574681948587537101700850951204813076000164394810778515653992795891574987277647518566205581724256536713156206072949788215381279451828833378588814659384105467012470445263073134983195933167287829271928459293111613921781799050997368414922892488917808775189351814844278997288702295505500916993536405528747396606951451497344666144451984102757944359904234846781413822917536812734023227049338842051788477124374852174354820536380986561279289212437289634440134987561395833781021567243268371915073674317925389754982115319379312300126160005549070740863391442215523266376694721997720827844857852103083775534843006045623332240966260697952101864151876050778671019998822619049287257917712617677509851355880882892652038330010010663351352091120192755874352106746905786370538139444942596307568065810182297463032098395203457731365444828924259016478429960292553888001495254082059122258979263363928856579027398035244994627828570630588637264570304555891845684716505410400982851182161598156871321811081509649411582413936388357235799342355097022003771405975163872807573443053005495722726326470561142109303398673407414961347313491286645619747358258368256309255012255773217729905882574474045327463294609729464741930902856375300730684013363787175144876243898774364789865334920041952750463964236430779114283086154620137275069550821750523044442007048192958667729289169285248631466867319550165371034983841077895199087191102142886131446230632577286540509778324362774723207756403385541310446019256944545697351056479226698704581681052214652102075942511310086303360542928163507037287765978037199378866702884945485304603757794342233063848200953113078601374062179694792757792756463621353396083590732003898849960613732601359432047579047675849283165437933546564761980024985471235330886971381591280249438052342407130036265367605933958922219152123837835543181143595377828671652212358348450671733528657876617210767716423789716844007645158589296490198004787496072298335162744217276886236709876542427544816983807523025289916103219133950471457936209364683014635046053468406324876816502029020384426983084487245034466126964059402553289396061920917752600686071357722032242392216261232930798030031544575465336888465339104283631932669091857205330817616876613305959359269550358407088077746796724958155853505484894801067131515540239228331003838953857555948182662735233685928909921232132120137222343118753179975510616929538484475116663700185486029433024903330677109007865110434103391767941858022636543687451477817339349817836969014967021878386838702237433111829214751924475661697106991415365711166555808680487287681319214235370303112112445241386403961819602350733740292769059041433818089079965130345312837125173270888945943040986985784397930624301435770444100542655598228633685474380876687423310159574505992763932332233305882875655401112665157717191610639567482162599853607289025235707884858405017878379761109516799990095677846057999439908340497923975857444593729937251423030633625388649658293300026784849396447992665847921832863434403852877340528702279651432793535583522386306633428342017835943177470753981625693072134113185152961376284181000617998000176572850184267034047102275207800616556364074637541797940716460951873344930181746842213179460649695539180777088197320636309817046823729193725147314560506977132321800858679983439632214729963606628956990503965854913955160836827497545014298777973367766862572881515295955217256461007726846786024385140913203976533532801924286005622489054315336586322526128132146655531998506576818944020286519361617516939326478729981371931237407664341730515790223830698204433153019539616053651573716109095183655091593878293454784472288872576912437241890776884041215109134924451713425939765356473309337735723258417915387221562689804089459326982446928492013451032851588986847035990875986138995488837643473727634009643362503953314521747793950852306164911951513645481236365389066271049112400213978293754960796352360557897568417192787876682412691268782433823147121471945671106734695450194040325447922525510971145772445488697753242178665548311455588509215663742113134260905045794287305917843391451771280276489387913406244177584767762024861314553790167164522435294404865367943591788408571637283518204843584356264724534715495369964934310399213089274058840507157652321078295328010156323088867884719312118998972555018540085046970609038319263832454156623677220805226270338941031765309524880817800118173810516484975118929243036863113037979816086641324041138666980909127373074548655446781808872935972476106919395438245976466587976434557925725696516430139957393617482808982925600647693501589391851387713624784958505541692360592400867918713162993153889722603970923579784420066122115602755720307438028139880378562959745851779637310917746811684679632015312517898993937708899658751174937554618472836923732352538581494864881524009966353090436332445062428525423560171803865526263456716759592374127039803245710096784958821628945697138447180622213057165204313878334947036768498067246008292198771141744626099077787527591564977091939348783493066954293901633542052947329278698726856265811677240025422236610003115351524473315969655150612021356606669425825672134858460842435454547298774430943703050721699500153080435003995405408868477761830224900100054768500378699005881094873505299122938348440498542240770221712383147422105295037134846909057430673341163983852154815627065553709548100067022987283070541927400120081589331680965208182804742129766460991765259045718321241008498969068885621539194735967433561830838279762021091518171707482336849710287819113883715030781502601987917338987743373366356367355035756345730169464576708833161135538949552792849395288186185073572546270795918490877374284775270310639118730705890860612468780184986497049343250845538291598283030050936885235014383139429682373197121057398350660211628058639658002667296360479611696637761542571627677719995174084163169127593432901210801425559728251167878317460471151109828094241771722881561495192526866033182323056203951478477574866109543719133375433237755859989461829451959085048664295916393536306433484864031785766072951291398747332145664222959425922411376811994313980424431214025906220739485438266374261728369347916121328514671869192153049547229179008852136741317529236641097442854117141248492822434283513824235487005587402977513312758207147620619625770128870770702102398321111571580310139661424750109936665478210615406718879167284215689541549241542884952630482260160355091553102598170747149141694626717071925359893893853489497267369451364453743069881916045805784050200254125607707440284293067097255934828910480127343481993271853549185852905059792421462779129687413835326268613973601796055781729997587419538016010824552447685752178329562946567673998998964474953917702523780730402364048709893371455405458368384353002792631020182114074278869047399778892410984055371445489023937981007978704341156501974966644489214669537050248269493525973557205309498067689348097237828337720939407799774864976707500992886350109059285815406535584907247015847056128701227357326098385896805124971467110355739156641400380759845923801532180960919983255855217049408438064981249526487834130637784066248614248326394772534741876308608324119018287397239377013526259920227223050331205103441986057344760296531609520010317690581215611902845077261122340646132410417033786956555236600093073120851344118389324135174320995283906919839422361127397508170059220304642701152059994150627230695981129460301794673091291637961485232192576754862804291935104780481802460697673433830127336462642940979623276086490814159981942465254059350581522721879156150967730751660330725476251715019316135788908822173156317455163179532125331093327100061742979661630950682519402880992425350797451785018853826951827231747761342972494213641656825524859833221908612178078766983247855434014456472791710831292715973797172020779971010159831499632109092390274145519211887151105266178106678815174315980496375190092240280834516050662530755884244447455838585170922988559021728505005166631309537924245733981811706324547385060167180621757417973455931357653022438090573588104027149628122727831306371943379145131761373868549351113632897039972343295573475264974440886044293952209683005779182925059339866628642993188096878153985565100357062630617165731457602208210535188379360491351614967082253057722181668602485233940423465090596435659077027585868657693537524720057126396694186682725028966474070023352897341342026365865934669645277230684561571293444892791526579224764378195077807114258319953607586693445179074786169234917286158223043929749916135442632197740462504200296988861372373354521066784480463254116746169633493586861918478258401925123214831257606109269757883768512068172595891578395336199653299242522438379647909579602485320282531923257960910593677888272490979775429115925595063992972699062065586963307704547641734437063861172356073557154195127475119853981676879194904929520413592830501100537336938152756032805567273030838461346583623663130418232858365211374936374249135861861600689864548284149692818492421170108326346479410898375856752174980000876230483315751079676653350929385489454416397930941895639656528788450290264542995391581978455120388328224950713885356526485863505733338311293117950742099672921954489014554734679062457624852611861829392471424287666163563404019808131135275721731322036802392432907920798310963377892650811497535467049176232904870571027321146303441681379160121646767694835204331923112415173577740266528064164247046367858499966842116158137658038226397282393611956723836440068555309119633444654406782261394093800832757792521900694016439007639247172996407997623408852497105612412137100029307921431296866100690818358915965091586593475683835796109471632583685185973978975739894689051860301514229745200591917951588187961955251125681304029147050185600651979253875299069041633816242898497452864889399506684029397378044580302912816855024848612160957924644147767375222674780139529797771920475471242063689972847919563613083123516732118630278411801107580594764178139316903037119322542552684964044895868164216213194185453797904329923063379843558742839282287026248831587320769364974543693251411742930583231144876247041354695818172835630343219404120413050061022516128075638054948701735992553020390280890955600478436081914282105118134034070330764434443388615417733167225831514219447757811694652435416290625244655153611600907871093297975289903721423727819595188845599350684835118089931805069078634356586985572131807513194777892295201526158750806963397731612180486491779583727687794509103945087881789156886908812519626842772432656387731398320542300901875677379451683020989435155711783984925789756444296757922330165776609978120103422387150362187015407039870453686993318874119490428126153457435235512780151405668237486572588542735588236285581524621962133716932861638007102810581025579270526714519295360414605971989824525058699405491273898445942887106260018107854150307485322457830539621377043713855384354232077875164505278506949293170278211308105701910181437200305171075740252716260918927276635815821400301753306784739775230505921625153309606519316081659604349543041156373618489573841785724965694545697084688705580560615717251077406645372777523562257016171461420372346235341028067926517753149485272528942662301670720155755351685561855704032897772498321885993131123231511380191210281622663019887695154048272938367960216730251913266794650662705730190983767776869868475562432744612257424114896799823520629027758865309520712115070742215998149756486739627379981446241530901679741182852459378827320146143389275034247054204489348612844665540368657745917910554592400138515429988322057673776832491455207647338525615441526997729136109120508437657117264893575244007250647845296329810732222795207087380818293398732356012534064568547473858897050134952338387225534292861525281974057217655617994719714955528953044911672298147901115574193395428650561711868901198452813168862673746332340511997933003394028406077654735367274089014849099600155409976307018396191578390183155860490294042229976254230492864998118990369952801138273717151496001841683196558321558695042484468943381977983132774350188093385679867803824035817949998672304430171318517223917391659699185645109782312240165367487028780383989019398496435763792069604204674742144311567338857863260770942709718659359234120115705320469777420194875441396948482187767662853413173623964692610990587231882562304549262482293224477448557819318841432399589333597449910212012431456629409639139478576560851139486747092109834733786322651140454985794782713537142947851346839682091482769084185842519543863272213975675568846383304534763093296705712933524315799186778302945118499378133864022411193255297574234181808045882416140335767971648351740381518678080613902745030695323278737515684363471030582549318736032628330099679355309920846218053914975628076294355302239988111749785154027274793596942173632617745294025413238906305001376265779306629734230673634849110039488341813370386700181068386285198616719911607762946935399222512152769459272155906203516070217681531745208053595131417225668419077628492275897599909964879945749113245297815863677291289835573245999785260883034241494397222148294884969133228114067328224560299925423237242411902141896207940447760724762628682530078663705861364633272313965526465692919557533267643172170776454367191032710370638570431785055293997015302447523111988457314546249258018440451845994293950565223307415482984139792515815127375673975251080877926312544637706444302013701598745925591272248706008393445768435884645846486761007348192871117634268796355858052661488721497208182166454480810177551291151174620006890951261678697903388460616471406327889945800997624910279488938763318611224468656137154392842344876256134417822375563665376053241228558637870492588244489901770016857675073719798403031502119125842755603354823197227050203177449402583508411115358174376211834444418147736959181662767237290371941644591657977102587067021925735911054639371369313160734700368881027296686957434903727498903233503569629783027356054997652866034123605046328001204431872311208277087084393876122679251375654685143435967035779137461232250695631590459042754939764843814394523812606907187400208946409515118694384184589533602246759849204780606708412629651081193145851688113481682062738607964626354150851392904855655938001478612395414016778832953012486447882490362740142452729985275467543116984075974857218384551852855270494836811726420614608015580215083986583801390401186423888773103471873060938830108412499350034430732208588954590781494583223245063777630361277814121300348047535451514447226955789663293022784419338024452262735531160428717540948523560101427828750992924183005396265047808299464816091476203364551817828154378284071206657787183376033759824375134040923071678335250742967138476318978146045677607623183204691127905435510391023180997028601894546484339124697548273845734743482731690896310939130586245411565539187788084362783822829150283462189948840611073802607843826152917259477207389081348364329537747564660549408816738580716260304862466316653306833112299153310759318198792129340353520150156492857686743397076232910595456315125409171035748392176667670405936221489756975750472468284124413875453944017393630806606178213240945134355829546719728633770787220702220710913802080804523040700747600345377654163141020469574099934194930350712255305384262368038395749118207265239423519740666829066032964272512472810726000891031718431846252902295366164499324267477885719539374003353120240630740030822919233731571502073997380596653467718312726027968946821574666318833105410069629521519919493368894721300448309943691213667461273899053776430076388558813657805694659279426903590367368590958475691091785644620648279013275962763129668314874893151001780751925934971488786316678877253818055527574322017431195765042898067415043085938462520318531424664478289475565499628595691705966717627326097999274264564894605788237372939278066501906608654456090831903189138074759033800964293320047625469054048996679243019879482269932895517317662742534033416931189338852540793478332194871677970662173106330760097244639774833368132642856919748950003956117479030480769164386918321406800911504114693722518752864389185653774442266057750193573859272663873181112910901562135787589179378994482555465783994413459044716794565063941849668359210868364100796653004821711978635690667331110137148032052939286614059086203225759173902991880499279790696822469816957711617149559624398558911265087261876654238325165081066338122473277543954444192940486826033771259934813905434982177939322778377401616900779376320669568149619475484797044694329564537896542374639797846666747435142254352790004286370617864018412176547942143910065852399442821026678075988261553234742260382188313862434738470511060919080066624848651528849364846049679976237786979644198747841131103180508915124827072247702496716899243963329647676213485853974621403741912008560391323993341497782840990931960184183450879620572387572679738329893949532823054593384758093492212077606006060954939755314409773975446002039572673560688972448659676047953226421955442423693556738747193118763507643448243332004271760092737913455343872888135924503736773381128697186755484469369673230489550821120314084911937421281121715083540612680015893786462762807600647829721534565571643346939100897265627856215453169191217263102039010459145997141662331364263806301558698571862844465412049097902864746241679120222551147297089671398375087577915666588368297786117758438805977179224029524382365915939221228700962466377560237697255798000739353023485455339313225830793235750547725724895426124206066071115488503595048405090463154773288916394502953588539232288712335140179707431136576904482762456467196323965606539793268262915528083290375666514884148162277399799077210869651735778997620484769230921617071428277283653388868962248878872878757642203638659741691968066431396848831202985080331329518933887745667439223601957932916001365870273926258064945252220073031503867063498023273800307719760755279670223594829853051864226269820282145229137885381954561473803971463227398548481817121355977679824720940072847735389362952344476986646377458755833616939726258407997940080044502633051930074299593876201268590823083075872505487266231683106663335213816263588543811256141040613209652012233036284705503405079808345414855942280795106370854633480974805541555478825828521028503548582089735632310049626032094520762572929950760526653965485681799266645615383574938904069545139666899300935633673529716764924676110995019963805003349778161863207837857865641552548825699931244758418918740247520659009702338869589937667149707303535966144508298068597700368477400933303917178146470212464275626686103049272105553908331043515284453686391067563915234049358455808742940409522176837572380569137774332157656627708610088304794428672699768967734365089038446946409910054860978968369132109957426525719301771723542985497423223154085840115258192399262789639336543744592698014122056062963115846032916861587609002208237444675025392435472537510672598926068735931280623120225036130962209972699862898735650960859959410774641374266999115050773620065229579921220504155480173644957435366827952226384393778188579287764295441778183277623602682581725926237565565434972189122969343180358323483476723571808903718965828080581180555276746557451817828779041684366200447144620129108973374195080392252861341838159556541674135834284276497572501384016920795353171141966743034719550087291681303297455058946719289444247651846137550127321658533130924674811334057905200686240830412601094005496530684640004422787811106008568845306910538706314895357905681017355395237680786955689404310922875007038297378529168446756907882868586695288307728556775961896512158429977197737404231622043092818393550259570605023931442121230573979718127467403367291530803656280965026918359887329596118789694265924455790779379345187946873090265055136566461623708472064248214629874942485822659171689631984533098845783801832638437346215732934948592586553107764247611587654432269772367659106062841474979602382307726567382421444505205278371588214625058834306715774239612021389815684480612893267721793032050266088198926326156382855584940742505027639616638594302558670516480983193486712945597642607725441299650477964024334999436235738733603847640816045052478027168907155111683972047549715647555572179809915821648413251246763084024026576012145233121285371997058339001090346954266439839474823466734783383763684206474064551533680528064129566916841396463146642801939059201244249597372775796365768707291152783877722004697321369788653503919799436788734687039395367349699451005381311938877451654088267777169176650937908959184426966626524879250549693223831688310629338227373580368871133794361199502469942021961060536924245614529358149342170045054115471967980531775652926459847611572994583948846078528798422425252880037317956120753832689242221795864159822403084228818470765723247642464078306061681008526866351793857454440517175556337806240437985585854700158092253904594716854413730619886097588632334373116088832889814520330644303760071809592143884308381619971400030348611052863625504212119133726862369784226019049906789454722401288730362976938800388180444215635599481364084703277224579801744601258915871024336819652041988385326885115001986968840239182360622948888774832193379892229313309889829577622878997102575479909802610701649331443822968052252704487265477578302261142426890039189879507151696577932517021864927683709603720779520972083952786781899825581031323725041744136926489618072901200093799893109930674007911707118570992330557007671098285094335544675542527059887700266998282344809610346007985194376439035756064942666555316053106776931783438361126816487888384774310239257835048626892168684608531706606666569151205046430306939802015554543444212071527743660424089962390993548265778558892158707456130775023268583552628864313617692042517062185869371074078083475639292247097395411947046418001881717254044649801089449490923648655130825664481515758594210838093952607137846260034069328051022564381520210672467126155773028487040306299790482640747051601513388952906998187205509440677806287556128185871621780730143607191597983129439082161361765795453054885813358854829523180297012474694206328195032548016711108204490301143608968324382985867077958269500140753757306021502157601641638619654142671118194150962617446152816110788460472581373800606409592923415665053869559406193641614473463423671486173554000296844031270534736808293335193403931506479695452575423868286374917603097245704169610630390544283590091801387459684494245708022277180717769709447953547341396156504965919712209726924506817150851122660160216057160674604049885590513455629003879626105547292110488022075321059184408155566391482913799086778991152215248665090143311980186133124089460413293319223990367460265668843575617226816835370249626334336798977781954565438837636835741945405604383939062587321020953331866001007055264179512269453394118923298444267070295565937940558721932714903640767247500079594865119119006179318742668230180806577659814844679878436369357702934099225685032375101618316785002995068848026125059444941539636364449983647002528948406244423267437532807596009206577677889253872345677659932973052191958408453096388219429114276033947982886955201952629701912262794560487830400717031270193129216482803033126198390781107483315464758971810280203389679105005778340922106453023629132110201087596482769931413833891131717248901424038034015434725945709461694479329438001431006761662043083078258294392855285952320163247548272085321345577643301867923170137268851558803300907662760604274246029085514387968940565689840370327930545894425097083202086253852032898261456795662059067948127738032186300436500452612337855186223506801672724374674919597283439399809305166205427266688665647776723881431834665167629819868036607696900071223911411391558405251927262084843722517777574437019658186317854232687323075446657929383471469809313253945919984049873797074204328019152155225908693306838087349015695231955820307279769915970462028467927997549949214348430951887557221141998305465638514450171528505410265409145811581857526048974953523334943420745533478707176001010434716061381760892052959841000423840829530278348257715061542829096067732841628153324623116957862046841849874002263684750589317961521687847121584427979543198988061058864740049371819072591115485976650161531601165755005500544441410808173663956174067646258266512185050874459562731589144199529114792056437171581286960512679693300390210759661053678128428331801621570414579516704603324804091485054603284920309583764859959287598056293069688892844306808463431074245299818423401959612923331193366864067848750274876535027117620866192036033492034027647704638551577797562924239969547333863879221863711498061882446799055851266799755926213649988430382903645633112911814896945164790814431687367949307493763127239947732393153739596199680414641342121851432087552052718916772868250690887386902336157011763993097889452069089532037591299000134786211573116068363136071316986020387480484507750125886919036038502288721096474483108087739108244493332703198165427668821769162795346992687698557904639480296553533838081279393400498568961696051971370525343424115283446591305170877571323474957506938102833489608961380699050794075260623853784887355760740744063104855687051376688196879300021272892577196487297828426628533542740292707818080462694089008541522962328388201797028749363293025322452489627646193641940648875325761793359546968103909073645125610595065690456300118434871661518876364683243345780369308819312432688765031252554925126911582897084354144786515923383254464541216840377784762417248234175482394971363920731366837968913085917905449673206641609444746537708313593804942049742840392668552390191430965936256557160775254911845611496849574452415481088615860212754931525775283861683447600726922585144615025126566691150635741539774948496833919364275684059631755105568041600122731587510675322153698610474221618344567479692095769863437366243957503466328501752928475212182941125310693664210119878710320933011036010706776567016726165913390252695217754045415414529065419085909155485756969123084586481176834055919759161246873158345276285028067133692881053275503865713380370891998666393657304878073223990193031344974831607267138163515282083888357924346781100696391198159742451591881303394991629498303485669613390057759672184023326778000861203127688441946783275157761400117376511842471673100504549162607612511603214064003652706386457539132965352272662436368551878404908128432312479001064897127308702121561211224695653788258689217967193781707812766573123952748429479543604203046646298859082156303324152870787401775074048943649960098692560475823961448962189773694794647465994515425764313933511359129045693972134559495909315106691049603892962049629413462309084032505581210702820565321948790143991523013356708896241182287218793822235997790486923851096451700030157424082669709732569001132930773082321887234440071248357490637263744146249241137096926704646993707458035306419756316888830362021304492644787716896521916608708573420511149386456711795950017044882215203042489286258456670699465369049087623455300718546030536148423310077417655409587638649195191703119638109440144882982598573851995798048631810480460258392494008925488188585152374022879356588652106173606492455278024589934238553340852137355569257991385701087308569593237446549623108236510202955005448595542236798569076101100502590535118242754156641629323510629981103196768517137909285055362472817564392977616053289443665582632661261184530648394816089653679067357303843939082735216690789037774891402523668062481270320670147395361152435295295435636938319174868879484786129105021005906489263063879081185097365569224054016640622533425190158724467247676268632497090071544465560446395516849770204746955880368472786897762720279917052943218906057916091181426216369438105025142278183948244837620977802334335324736259838998841132095888208396986782781700322270110761876909135083645800150666669847437705199182721007924594027861476011510884222469270225912391407316603876865963543924084789948417185636829380352570704171213291162044078959191271945634083261919086385221270244830894695799319990785018483097492233492862124523960010543264138658546320731337904046025315703708179774956966175488362020961283741333418760504461432213606401600148429570701489236682598774517511805360979572699896734775533133393169034850254810444789931778385334798657669049291253450099721425190095557940359292618348542077542502573880465401412633277881440973709099920451089975170359122067266183637106127433126335070833279506212992481815164503510750505320606249695977771213156908603999352020617597536309146382038152039893163683045491803649587674983704487379124266332747473140827347545762965791097686822780139868871870423606129390165628326028913472557157487541987030071713368656808787245618828319988692817409697226220897584747961080681475433433934434440352653575470249854957602949465350891825827723882463150156544612963277383071829182180750638166360834716864896278257736428344274263187056760631356116522948812026042539990251474856634452635624366748913549089276405962314906434044848080586480517519808049208685202337380991765547612011751056300505506883120693070760866686501967976253683612438080495508585841836235558238537580922247737390453377255854113859280827620240137333311684504762226881880886878441002708519937827983190439197410905784656896815067197429415365456365080375788419991222398932510516689634293461959222587627703880499393223331217362115330554214897038255922632577162611512145254383124550986265827238248861764788650997682793219271156495589999149150872882177293311542215912686446453602123409619258188392035787443031505342900435165723447056682245434383109126359064193694806294202196678202930434258193332119215174010644250516471238962226111574997138005852513090613892375927716303720068187758167488389153209372927881814068662193339989047614618935773363322209483687208014821118848096722188830479699777339362842176078582197278097960618093916935686194159328523389962043163435731697303580350558204583741855196336317059357427626696627148872152829177157039067726630022072037384560633945105442726731043157904146879437751704952544480513220361554925815563383470831679412298433869510030551186092362549691302508382397048133114656435930260012819726785596228594932713364774664459707004343422470375712437789783842647409365246777058185627654987405865751431689240559023116415483863579682500662009198702797562710390346710529591334144790474889584947343674102379819876714397084291541717084451501729243492474557602386061072318010068128582074394244619268611727513698619774274382738835562027117384562802110885401921750178993842427815664271933814808555467361580938872360617423007175791730951147082846584912335261163520747624400351271529470289136747790540049230483184941167402389033713960759561271021671214203983207270461609613792943954234506732583437765524144220409358945359366001720988644323886856221653692501763414560587024310933366817143298158395437539243565880538362543566908897440626098460060258480824900950446244621575150707831461718025702442595400154502297146872261955839229594103915313859674312012210752506522078351543223397524327199665884173807184755639686998697138544360636770697196320650218798001547374382403411375879520584003685977990063007662885677908785930640850779819450241545080262510700488775729587307539227457870426583894095935827661976624052609004330921417606132466756692687536909796270073220767400728263984802045147548252227629298003541002304664426164037626903047621348829854675576110031207268116539850841043189916708968075167258171975953237642873131466575519727897681628080184167125433893358202621872538495141289200095220222130216283626185651378447931983189144646641900409822007351460424305540182944235127514533213001895328425349658893685679134382151749449794028304670041866631881125269597830332619282235514512754788581552471754319380458772543476363733158670240627912525741062673805749488277694656619170432587714521328163462324266575294433809257464249401258786430391947050498597941354903474313470247746059830668513126505104780077387552067051889617517165367111809082851908226752747528244901294193407235364868164187275653666094829934834744040660032609662685034321044363635611413696418519651178486231937512642727406373662832984327254114933641089418668693493092793733222295074251065320198602837461266705035139205236147272919258948145184454848491969983906726939574914089900019460820712557347572676526231210352736474935411766615189397192647382375172491895601107242095477012128941664428447885761311711195606125953861442650050947601295426735052135323214348786992269711265739819055462939362061968987265914924181679549456904731387925692190839279468331124279865483117269746058283385356021860634867096220161364912796137503512121880864392451990482070697452835479292726253114037329956061803090455978877348218419854165086180326963134461313610842944783679968560543972232149723435102015201457134544573647357350908950680654792730635071359686987600932723128854054114123404001910976487207241031700325909553492236214728522189357586140560951518653280453578014461148148925105419827314582411501262517564201487622694127809202278929385217470548765261859887417590569563032238541435146834253093021051866425733564700822528944830119139390954879980990213211815806430407283876058175417716305519854173519178231101353751916619717791768044939272030829561687919869481432747331759451565294037316094846398590630643217842796676876330935273287498966040725503235995492135764993453870777623635950659839922425931746691322933970101543953248767031982799292655011839409240686144685055145506211050861476983971400484350770707345034774975928232834613080780355849094473034294789812851488943122169885472483732562886287103529005010280852445146882927782661845208774103644833717291632489409621427317103692507428676359823184213479533042090501162974744925938150228197921150088835379842073833253814627996348669199828032222552438610889235416025336580073473956906624513550958930405964137786900548286928874903294980583336307687575292212498038723178572388042191023797226431981026137184150573776412003565389496590310666190654364386970869999529326249983733211183015817290997913817406173873731475689911850428751961486503757406866622636733231471033177329875966044766832173237585194076495004183351898127994443641075075305109471982569044038883933136733647087846039385177797006378601009846850803688340803268265746852183564964212445262192614887213482055736765545417373572446943556553512418966365710804084101202831720812255321541300050911805198056079392822529336773264236948300482318504473552717813793494773195795934758854343755417767303625411889938936658959752058415463945701523669091418551778398323252160221669351416064464900939820932457236352278084438150385521394385226717811301848841942564864176312726212091395578941963016272031698909563994900067053914731871756139178215274256501120625684337433283128332734101300821471359830239923253265544559835586763863284277211391602824641924784483515977603142395886120526679798833395873925472510315440786273164401464806165678007678594607630098258116167279745308801210305184493916289985364078624329806508509862834508023802713227191967966823323522241475339802518260513286453996380379598051317473431738025177031883009533256386910402272787999269543465945635734196009996506263612796608039551921299634143059884573349745960510075188460463799530325103512807341491401027407623836163926891410502217299400391509227630902010295123553788639768632166963441333333081261336636379023231922318510711587770685720420577060670355695111965556444479617813389642766809287666008783597426140128623903488567746856286463953677786006909204870163623549164821832151113119545439780783064365654222016279702260183447201208176096649490121176992928306086397754090042863573198862078173898476248680493754824129720128373698262961153549958654503543576811047331345779499970732001574097335839291473551702166632982576040760782530267647339841170089245168629636754360430266084418163437702388232203622985771660070795593067926465761988954905401580058024439580981838715344563984110640709317727588814434691959809461744600162234177552329373180287334254165449028216589385436797511055321747371875779991180016831456397642167139326334564962045276816101690684927210763982389144794708785884557522011505571231921642027571014801342823817853294313102684370302326966869183726332300375683611903014549932295916191794643587825865492616036816177478615376613445135364297465961506762691737707341554862076207041740825471417719288043331461912446036271071901958288514051839965307086183387879591797482599588830446246408566020715414324307071293450815604391350119679188972362132216571808186721998035270462195468955871300684901512768335947038501201523830832277225844457004161667280123925365463664139146160766085191535393830037923251713400661431963714229248141607625238600602686260365118456740442859775469006774670460464176926783826151136226904185142217391998414309934879792495974213907517352584337421659318825140109975802267438614049504860131952046503377904700648455708873939491513870914380295034123929839828029372199142433646276260342060316833286877774288921027525500856364131872326199697956596493056492502994831152506083738796492517798710422009075129741823039811413328726813593321772476114380106190703060026230383609308615980095123253766407008736493975419202997641315280427584179019156979393056720768398386623650813922315416915312673510102623618486996031387721621720427750021710163950619435546108220084721418857478337257366103992599984170450465189609915188975783175274931482081677176602123092771367626732697136090264338326682766857271269640905634130913343887796929713631119884857878290138635752812211128666017342985234708735244989814489140889992574415880654835845721594827529099156072040703600554805073797852549312955448799140619797168591391040263610686636918147374097728612890605656763433446172218761163392873312107544675277610779016922198703758096914327116539624443616475427221411065572240511551494707134582060440225781281770334752222781033556136342193836698163926777921348933281232568874020426951468872514533097556380388267842515474902334821743823803145143180515041612453770317097326249622583409461793172078984191391973970109367688284607343771928643414452987765440232608942712753435116997585309275926151383804738760248911409942304167695225286334427951333063216138597120232591395173821539653371844029720657810845014457588594661069124959570601201766467908660249111971672385391417808250105415730734805467026920048218831658188419360469636739160225952938835503510641162275506011587827721773739497584011479426597958632862748078465158239386450563277895198389959710054580076506309761712896886897453577482018110266129675691025842883105501085660218355452369599649926448064222276564863718868191370156646578959615428070559349630996275797829699173166952052428648902678397981664894401179125875007814797000933987191450536757543591402555669091162150368228435527847345565518230884564304728237023528575681569762253718656303666233346421027842331393567892866362272881220870660597548056537280404697206853086767972780184816458203552382526377209195703792419663720219469753075222559294314781574461917911466256575200312254544056468335294194691968908896018654983343354960335227952538323132993589915552909477464228142013835771469078362386628491567014283647627041492935766049766341527916025553532450636704020912064845593971673173066831282702100676810749782565242372090750863354934649188453798513898096920361973512723358752213158070332696271046098562892066636877087551503009054823909091018710625480962798845278111759059244206401410755803119694933086459364617625628591568881706523754754825581500596468650921646985208257301470999011550069133368680356370079737535206598812929493883691070515444471399010414378581892361945469326407891999123260003423072488953736830688836716305485616046158760632086729716383827730968459509744512992670650495173467916945270758292669189378726657312605294087390726147217498321477273997856890127647527119956601585049662686888424147366218691389967541629478604853908138744756611881807528269160477488457751192400624805195282194553776962036537714629923022651592680910843355190117455868809559542902239022640441142290786456128036771014801934514670879362494419874316724851433407286498778074412000763052638784923280708928954199365421417528201189588360415845621832448193543440358412212969845891437809820022453632171609572379405513922820116991395004746258797846718282743224063728309682637333240780837466829196024372201467739101568792665585200620658718695574030453030232669144958551160444436843229033649770688793444537410953686647505995333072866924121592360480116585054770207515334960619062185590873052150184380887463634720525442313267348067876945329570559251650287527945908079088967377642449017511778993380622944392291413753613601293919988505848685037136414589617204899756843081237726767689427205188304346662984895326133887352362499567007761088141507322958003326570771090221384435220371487624447506244256004410589694539663902709310072379155906531062297533952069892036443130953865023849372011277970804581059624701182322004943344782725971385833255567076592384320652448480109409857259671455201346261718889231329783181782708033196534772965650432879345334162001012768612111659694166139559989910565210808128252398417571851525861599846231196218132014693016679732233037745902037344929854294255015789501793177909612932659994200371639803390096891825142783639653412231815809229726039295504233122714092538444443431838575858675883607992314134907755635450986060923562120402988220625960144843128868492184476337410649543442874527614547951067726955325209742182632344686158285735919383724442146866244949976024541490523365305744370579592570883638289295862220339100717493569943064818670438342242699774305138290233274719331784674166237252320624947346458919518367167090010130240733187047679101055790647374977617114589297953582209324165508311519877950416452720315753771750396753926214116498587137948438495317239028257351244265628704712533161755834003522801222734266373137149579195997688930309844126513216025895844767412654329020877293263841142792780122701195395796716793347483544651676341582864370523220574116224128866849395531802248694378870280028792125579808634436550850553136886987509184380579923403626591219762427875782087692164854025680670513423829987669559809924497986345126984946941031624215656771457826931200495380521075533281751846511006993011219878549319815387006280634172286782521370814517564838692009075241631889695586228705194062753037261408836776037731385518696398515589956260261441620221637618675235540532945192512785914765744907053067865920479094226324786522492471524407008317115903142814309929607128242476908750564893256516713357465543069369384098231271459537992413538097365888719974678409848867310222127732389485740595991505965437229281515169797830219731062002212782626758903283662561841033704217323538397777017517172583343365089513018979845076673526490100045988254260207380115361901532905770969825543859705520830849201916662402365642939247310431868505832541970692020640815463111425279874403219465595415316684937479824873197661052538854097700114744723144779979825546773124768471505959705707214603019062485490045642870838835485953862595140805220000227696406962589190245429521651106904737810394443694256655400291580114575744911718665040220541789951140641862710954882699349972713212581721516661655107967765385692475589433832870019060332179277974489318250771427707925061367178287050666644976715662773042973128357022528020704425068047917433445137621352507504875345995130646136038908602741719614004907268852436880152046172530596165039746128882213103531151963058536489430285322223501533954995760593499161683148444094415793107033227719422550187269221634678547521154697539398005499918123792614677353706674790435243351468828426970558437576252002314311667054219115101936687440630682275861110823213530727877778416212936386706488523742931817041690168838961710842499105414922636985024803387727434163759636012114527539045804485422600668942446126748256534476422988650217466713084431146524512817405392905088542644614767680764627122185683855473118361724247650393022883674377867583195040216620227272713265385723836568212506056460803212714932047051731528893247710289334922165026830001590790529627650026498832751483260453534350995657830597789339294177706164456665436342916778507948231000799816442277253495368217538653389581771967873480044044426072776952342216397499189423463396188830217370209855069946075495521810599062397339643381227654526157046743951416784080290678841171998480460617345723667971061230272560274523664714297395328747412530249388442251750338431279063380472025591704604670073677339757744957623422652114798034557974602500811396057122452695661651083812554100103863322576428468415569685004458529174637018080143856687559704493191498206610084768294386950184833703275302420637691417651971299717343200366548933096141436324697795866126729247470856006620692465059601135270430232579645315733445068052975757601229256755190817723658729294315219471260930022044197911743765132627539338170121109890004334839301207152028474948633253519531785978932717486279389553714765059004608924431189129597787125645828173057707450056240533320730627925245801728537987411954588685144876413951335641421626071250245392091158399805879502665586536117155667973170413295539954836767819852643360709279010362890098473399900316923358141834024812550532729030021646606295803392452985076754371118529441635629405446711065194149440744639926681533872045005255267899237900603400676829754249835784373593427415012999887530808653172425338177543768700639183194312359615850788940370279187347771521257412631174973162221908927120608514390278906707530687495127934062249932638673158001409591667909986859592344831905449328850072724392132493525039836516397792214311509557720252994494891937589302052432338341375370636836668226446971055710120878969435475147537781416323599699932564487789974861944796274756811529246706705677015758290766415467149547632730358414340451183566125539248157559116732443291177504679949950398507763955804984915069848543315149896955484663819155819439325333888809237469470935197820756650370905813894643424221423964917331046483079971881868570146314814365210933141645209614936280507427098508815272540893488812172925948622945035890661170257654757413571407142750818216602253847888400759349177394865644641169167844752457133960150259648526770086291506589563764992821960024476176340439939207977491754887077723357480098732960455403619264211686802748834789163823363500284827117409999481262364464943627452622970369308455628171371377061826222295435504968852779785048896662428019335597405281747223865265318422401990134383806790539580059984250676164749403735089958267072690920639312949292989538727328629204351205097371093006604895601676167495064356443314561333310574649426464219983030771272198486520942372708440909942340113344847108352247399455844627146063840640544594396620941331923702618232450438095960889158471487717388814661897507276550378728767109148562223279775082323895305724465438840685405524593497856929472505077803690340508240331506144105655443886716373067822179067504095400192274990177401430745750587261848625174474909960291286046144694463968795023944383246171425359006834903762782124843227062176986451032430212686327457763301399092383148848879514629234733648679716381699531454935571548764490176026113835421756105535285213758384653019338421580754201133544099670134345378829426548262156156306180671109988842262738220754962886692491454619567303865379650596138491183851808819661515710999507119302077469818895600349329104642394682890778044779299597711740099504998502173532487448041836533113485716407031405185947309036784066285832783562856192952399538966446606964177356569728910460671318713452068397808377135054209292289916705976748942637775514571873947310281556282127378436213365207337883149745903169054977587898475330167039043304484722708940053691657495613993237451165452819264256660541906833540917597321720134060196191640343536498815616957823286153084473057421197439425057895189884278260380462288727866962407967913323717398788409008785133109876394792165639676165473907569748858713312703529238404342785397097306397001186465441823781161834677063140154715700457395957158264609082077318284547437562169384169560374668078285723109718108528617028642298195406229496399368321504485365519644480442289309331783467502556463288772918769406144326720804721037249357502846401734292127983256857410723361693566536014901936124309094708742831819844103529970705012122881842564867802224180664146158436667265944838046914678749668498633734414090145678956937095145947474873853729377816132422200504510610786724509656175051030386298474715710462597604715901297610732174776117615401018354294513615061078367534951488469030389019871403492732372134176482684918256415644680054636513870378752768619360427662497543634187844723907037460516799557070784920775019655354222327427618270053322312583328152913483076858795687427900682550944521868165900915191519156420624601329195700371144231155815377325781028712142421142138217366267120825063346794590618246970722097841596283106037393385019557524976880578734110301630541094985638672809514911260378101730454822402297244534515857851252221826311906975707751291385151342506133002687738003785135920058258324426053657835337903414390672077785283175841870983406740928595493400810586233629611015040901051239524392012663169184183029317026841532494880577596381578457396953190702977403805844683286297965266578666191583226835595316910700978573376945391917260552308492252243481214551101470783363757318398654548397200718076372850976781624702690141643534297856442282976304321341683773248822623192243949650208102796393691807967915962468604254834459035070604469706072446242959552281308543960152174556883655380077631002318286386043329413510021301809308061686050172926031307505694995418021360433718920534502849984598135283776621624585350934897737803286359249254792607244696927055039379309842865354933016974210425260505454771214631395998590213922793402900064407205793984843751987612409040582194010182032640140111296607040421805446142064703011885567918897719191205465690568594729148571169644175780730612221866119226296588325339300898104070671685658428085717162747534318302257596669371910782673776569655738260069919004713500338827159190893813083994310608577526181845375669450850734402580435695833322932252396156854945625683007283785337166804931637682850222322464332891753021926982725690379808180047009297123761697143045197292626170838507513439683862972539893145703996093142706716562244554180560449521789946759212952752854422602502634523584485978314825543131535596279584282386985011621387499788835278875867690160806483527766492113247416516195663241460994465858972151274323915053867547330757171875284861477076875187000237538558580240782097193317561146638635589236699914787060127871354231638716177712839054716780560645484860594214650596623763841156669617334987480465978992619308778328943941760118750945952880126818648662190304507579217736093810420471677624794442970920132861207890741177051441516376442032045781515970610662246882250228681131982918107711218817607046196704155107039640522291917523020901355381487726549869265632282624933816974019468252976595983483245138035836670050981498060983026594812254561218695362212156023086719750673745027334824629855311353000485635201470209669441359405633563712028406086883466975649527128448692121255825117727511986982246421384510411964110771009937094089932996637738781230193701418865499496629848373951907905520545503319265193082170858374518785622361334409853817229270395527052395002506372701002033917734042556321579429754535010603295810502620560864191477304871828546522855523296268504292597282973752768707765962708888713929405032613941025617709836288733388377033495842741739444768800321392377730137247672342700539824863969679838066799155763291118572406168640481490564892451541745554172662667790493052616873408577338414157293593769925308121927414726854041899207748121729922935945490639409840596726782651292625383202149114687473712570291573941731482785714148414917511959407399902202069642038178143200512595038445460007499064090199630040094085413728622109566356661448715545078880377535501945354334880877517743620022223393644040893131187586991248289402754077228951982340615850904996183836835362057814738062860770262093731424767560725610090759665572579527517000277666282056525512068006909328929981439731516627029447332325907938099367121676669353942834750378242518997118049065906184905861602001813131590345842788528061303220509098857548583094656540007515738941193630101474938552696285958366575218657677164630589266988525070496146135350329542014355726474410377236862632684348567385180040696157151589261351934481981061669094020426965422571762114344218320209756176544893557284732821576365514394576697748359827455569599448914374258174119694912026268173331308857384201176146940156241178250212692548576046837736049762205443785491166350182265073610698620682996179388909740329086026223049021846605543296860925046340110866656522419604485727293347347980885445139955874757461815623550793199452380138678097151914959957806852902806030179454029444910972505997441431307673754434366879371790919192271310686126184965326888489166480477173399790107979955885790857022789224401084605915907362186243401482267270191510083276648646638218698413871282756812683652714742659010282195460975472745059043533945151097945046237003651049868459791281358826081512666948036768961880974098365218016635752806454945793425671388409567652044999995016721622618754264676672781177916018437716613632644751012902921382437842558154740971226943977183386598751241602014197670583484082128133318162844370390160282917241398921284667908102012323927917258234797332781766165760615908049817625261908912098331491883256100634407225970907636678222026242747200909613303394900053796835049720882430229464887414139446995735925045886857680434752001490236286532525133930582745443327838165386229798583935395470226678442502368002159114884542990900725889070845246744949284969678383282423218542700712641643142510121633044821243890006883016568657239044095330758130484552968568229228343669491696733798338951585274345997542689336152661988180380068273823994157120817397733027676337235853990122946006398967721003259213075116363010215831880279141669377376405008434028866111325564445659460190156645078328991224257019164942439730465904301214064309746953778692586286301122271936470258736438720162206652382532896059374236041178386276186273254353532469999796346727021670446268640811619363986699093495114095399594780890928889494328837365656478941307951354695387252314555475965626163331543127771439226280841398269315859548073095517300604269173401133384246920643755787200309049898770821867690232390145633823343677492645755168345507191508994809372748539045779925548044719979000997670995043590226393728359127072080506824384701871353873161404239232859552487314975911916497704851985483405578473682916165672494877632384119790112130147031944272095435597273316543467197208864052937435533090115649005625348768736117702074382186703377323356703704223167765810052137035557352821465138726324170137954854656605935867354227011021361439154193497054392244806551264376288443682502930327505654381405047701390978564083075188409475137309136559081928495595083947185161742526608255909812636145544843798510956869391601456673477772507639063560232122853689293999318439860083091974173042662221757232707840716531414986370061209576838781898992536750231788798872177730727235579332312343730598971907503882061223991569310954578292962942999002524769250402556384399683198847380639814377734016979258475362663215493453309057642614562270656057275324273745483061188157922094394057335239616494387775672633743685947374952912055169446799445441970140397541446118177255504972166535341942536567189525364493513774958448994086205592966267940201788022172114610070806629404119581744660736133850881425137878711747150595928289150106544609352236057105423079147729238253409610221358190276870585464249790850933223444252197760218948323247183536933116118671725131374023117718968808925732356112010279076955864929774469772651161175271179771955993509612429338079294247280854336693593303516599727967802403478377027048110372033176463230698274098810991422091215098277231421805174198677564028366379522616289944920483995389081539569591176088317634458291772378794584285061792134719803308336114271457361130948108856805315026863071395048950329535096039624849758109899126763808635678800732870503393609416844642767130637643488402638422653173033017189082559829799536196607239129324106616741651171224062441551248376526724318174150553819511525487939610913966966476574314185815823365020120566136823339796900982284351319354498239891082681110676684646738507020102044938538893806068575404355021030566951494803445544272880400766922150819614431484034024368284489394895250708458660887536497270434560050188427418658115992536528972813646111847413440001826984970199737072059947077727384492453141065435333531716464289676050668376102863348355526255379991140693751552701282925555010045077903447625411998768038890837583459296201308424341547418993519027514307998727499830985694916313145034067352621491725715212494501438335134606351640944957487121944866387546502749004536740885357561787772609638868111961424154237588065502564203015562155243861227351189913269033803313698817012797756124579135250612147444624736686779280375860050494745387072066467553053411601334531605425217128868316853100479515407340944223465192368639020529512799422565072184701098070765492696095843509810348123536362343386028514832488885389723087743254697992495708486831130712771061169812256366924361645896901002608719610983101423574582166732690212599797956337318676680021562326335796411203360466946385282919554407778139168499045037277307578420793039336418009109808336758714875616520907814673395146803642135769630794256177750790047938916466742330016686709869956328508273090146477971693301389111308236096311661749786374405636264785935043710751016140884209846949573536129462516839755501845718020204148551409340457464877707443491763054158890278161791968537781644924862735722351796335916255348037382524497167045209705892718916640358920716849411282903444897136615007032346588437609407417083112624164118324183929796003379344400162468187387066883951980446649217649695546768694405247696330790673656900643851200890818200579910947196270358758201118181940533921004708911404139584743547166610267453442269825109228352453555062156435934870772372776713063654291259072879101395327156408956339033637258905780700369253057469567642520979678082276620099476258620493992249627679346699882482057230748151372498189816928464914251890390746415079589132582175984178809192512212862227117342951445368992194168951082557113259637645978261459472171713233778934232880855443490156847945932121552792960018079012104617563652653803049693687484164200738077896960200495509660472927808326440682239566554640204767209088996995630921711254244829237097029300570485398459489440375786049860695036171708070882979870783682060063820023878376997420122571948633687556743765689366418316051620310375399874516175058590846490572169664370604707062047144185603214579195081434942706208036741672286569746521638143654680205815015119528575220108860620357341784437113195176674345712394909153350005255658242035324868644411072164212447788417042789095814358449893198893979871235374214911176194013974498283796525483546044174415286733862715919066823763291870422963081303314149282705474064200581779786033780995614854065940579575443380533156142810402995096006761568931212779495795038848584347340685705738595873156932896848346611672737671307750392013587656038384572719795362295329252038242755455319201315206678329044146629041391732499448909366047268431831164574834869626660519178041210562426203188517250620862403995136198973554474367029010411293559724329764748940538756173458902136128647248069201808421190748698212031849303995794242763603627688709846604796208430552679124702621488180661581210923039235140191404319725573158222783364072385707544489952170064446469131771126671835048011974997873186498531201683302093171075328546302229224480397096610582006696610699939946692055046722988566908556030239524246345998245983164876995077983502871018917226099514034166417378550628144739202204984699570769817655192997992316558065543939862349913268273710313887554184696345216406756029806805596305238370174107150074594273966325926797004048393734635495096590572217427018476566183443254071201359079672541642345696471194179897287381051204271515112766541802679821501175064920199438530832679931852499740324247895408616612584960072644517325355233911778919762009366358046700171931890224555589432337948496300948208870537429660385085812104619705047815078890337344928772844214473204859640691950316113135783119394307674452836376521568253365254109387950123775473207224853961465839701961806801824858131333320296145310761277681301266132542831245725281829253699080578955610829629018690189438180039615805868930145156773571622652274686816911447431540566460080399811844739460609777996678053279054112748055029808852037575584224341813910257496845071557989142497035970758154633335841203904248123263623531137957067298560740404009294663425249609957920052478827767902640413576722087068737242454674604201068665007235748582325892631173163833690971525528216876343646893007578220503712797987500321615230682841640449801729389772231423981649838530658590023686751022135713894327089236030796543877989758942250456191690003968349281506197679729991233510328123494024022909108655887739246056198381981033702903915115588338200386801323841162257893308756331943654116019580533154266286377263338004561952123225110256683104522362252958012008639515574612338564839979930082149805504088122148319415935300320953825045206059958510232546142765434019681497075174013227039844438671757461823234134293087141559674535944648992192365969613507491793074272337357167026878665959246785422619014004196633656055227633955738650743681851844914140286131403979255025404242897900192358217807269935216108731109087130834854704582423854234374485661564896118636755672005469027199631175621917046971680577443521586402372915649064273713262784930689869663063307125500407650610236224938702066108724465004036514170124943038378672409316426506049539333539917183632756113400624923792616419794282852221431029162732677109064200173671280147696608445422452285751322628265467329327957424555737010736113203272976653927035672063520527661582427456718571282535964295730789971635074287436558924591553141104096530297899735992761409391553152142889633318592063313124961199548369755747687081234700752285199620236054479592261003483609697689883946073527499342845260845688713551040993327642894420795897527837945441166209581796796315735463545328630068089453201979825955491839098951399168797414344252936912674699688977895107256120070636507783663216338869546067862544547117348806346403056664945489388483906073601271936596078489159453508256969574956349865705158226712423601409139823092047753193884313491869400633777448864426065551848216132209153032567878982008011894826521602165750319974832281503863098416851994146262588358917199367947612286903415024513993377896736969552147220793169454831646604490539442607350850252126177476817892527288555916220102841530075157205774182340096616416910784083117578734260179556486168186082812632181414531862852985835319799035947286185068145124410060962896192912760504646939590531576225521838818173583170637849754933900481194431978968502648480155371558637679290100725974822346029739028026478093812356470435963618861363357922055800533479007504323484781243931172628789924218896645240326763560845350485949972324722831505567434965330526305710124969484557489463304946770715081128941374300171277207771740615455455677809092121559747215066843161230908310059786771160432796564250825364617251492972203980613704488386269552857193742393517286363718281969758317188357603646216555369355178530912477628609990636174268023910915054243745518105755753416462537647276663484760352675025623419615192554425057964362846529213246323645168493985433572331662203593754946540992689117196915792297633926215547079188735753291042048634767797441005604353080922302795314625279836045805018051014449654938990917184339588473393641666016571314368218059224043825167609555082642474681559102440729486210052422853745632641988477259665138997661148937850843130607755531936254039493535667470814584203380324515612446911896776811554688353830184995748964703228431213412258056718907414883426265037185426430714268796703710539925110664659360981817842371693982704701272450065946355347136936076647123790562823475899543767953898961445518808352191550868333501660688842170681156454278266412700370619733215659419650946681633503357786905842051185263062025319925054326817276456192706983961180931957907039692353460891640993290634881990617455582789451771849283379777466380366913888038362521574948500668241024855177011349364900100716461994353035704777326279320014219957378405480911805081697804437321243127970175031644279378233844074969545637209655225499026973888432931643707010564133386099764222865042628181488565235249159470384287990716495712421412809044777423527221458205168109083559556596373415282843402544459959470504866773518208753347440276387582725622991412583961126275947460701077193581830639535026328437556845830103872181286467796164155687674058845885226612505511731064941713317834297197637824933736990548811759424438230049907269674812826789866557602269239312938842408691932957290774038752166610451706143530222108443533079107443314112410464638220989061700940311720441360168701649689135416582484901220021265385284980196464769696388452324744619870395563470257962803923254686234000216566087368790172076104427216818447369845951621748508147025479625834620584547039510113536020978960810781549034049395209033235829786635805792436938248943598214272978888776765443176989507552225125571228046228512910372191225744299391492929313409646289619294752111869306866443538236468178710409450490698568632380322915721217186895055940089171009708930856166008536403665875499834343170651717570100246248610839054225749241922374076529181717135528936400424852873748828990395341550165495221148113085916039289822577653028144014741636499309530399492137020187609004776145712473567825267960618873768100785573244599141774918332027507494053996818838569674859930988381789090255830869730763544720197623541135847828021597542202218581994469159612975216469915910473838387886513916877922386281068358290661261861456596786455373729820806548990824517013088574500535101709902752521785124289889973785239938950098941003029294424145438920361679082882548694530490651510712314016046163463520390619239725957240941532902675887562197677372758854151540161191152408531429213514895359410512506714597089012804286175883055920227125982482592330749728780839338269263375373755088260400786714967494951475487160647959079510695611435672544814603249124679312807326643195738699162004106646607428515363223508641082757666580147248129185782293937188595171957002292170917281756081394748243429159019268061898051368917576947825366472356676867802214691296081207855365594711066021869294595937314210543242724083906012335669370162728323794591710164384534032511155553091841493759647350426779136836490666714900268660757238325512959327309790397857685818398005976957227019930337173967706630762189921175465299801920757629230401732570382830546018360438314160790926689920751932397359363073313894752392312469138307322962693162650473614303538311731418815657533811969477887605621493900341544102233226595803204891604849733025114067593470146155292588817309739395941672764067693316734570326626685454211480477115290813323252336239186117422120416704097309610682915231217652846427461157838580079416765523818982658595986240738811348369770054887128220452093824420301865873238797340793691774856992939963630563907099478074761044155982680298286570948599794580814698212247069410284957625498809709612839511135148088167061324420773282761472128789159362042015150657947399616179890792186149291343845980180052276301489506232529885371451164663196995017532889113788542774079238299628508476449601415839565723256442444795751540176430185305454710276972644016360569683262745626421583913491305525852782565122178831405090436667239086911243467986897214035039174002100857694881116402930348730147275930721632340705993182899882447906887632010195043519159975225398885984369692819713405997208167226511673468843293295640674500721724039336452752004024492127444924902210474984061209157934402885276281554725194766254677558585206010131612595907186964706758531481921976826676418946083424160219843421534714763261038814177502546510097363879514618852795194177318230133676124461198726866263039076996036137420349286339387111296886632505797245422198475287976277386259615546384511707315818198570843875294366853790256774903756446844117940515507468199279871996960083655451780056571244154909030803436432319735565038621902097631811761897714741895376966691673579356243781139849043485002373453966345549973045893256021938959298498276896610783389703293699290337088738384911100532175834874674044197270934826515440913050177275231572765492376327452090760025103614845256262643020826022115219840917760369271142935673762705682912183853347847317811885156264698904710399777962308822812529218100507320731145253429470635951890757291121268706808113414089613055391547909238589913385196415407618606772229108224166492233517047189542157913098464888400012152426316177286832927860499268952248578903840174999575941734495109140396287996223655960602271302783995826387418767741858675409282508866659228806457416962344205820282873726912832071099136828350279912453114857445736632805811929838121446372005325150901313035955583629382669247827185015540542235845892623435758932732471605470644967326688826223129336555471790715789260149285273771736429197530188702054198247176265485624861961723603652241694411983409832018865724093932360445722177670509671733796421632159639731334274243364144491076091273409914442511986100132844264681937613939434670198595224396400420409217952487443202243510440762157174299939657751586134923632902517307186593544650766447190248188362043726755804238020654064625457122068504268960829978667247676906586904558621039749899220287287002679328190476530098704493346377723608749795409857958234975756712840793122009458506073976355755214874719198213171072369155897235391538755744449687501732001677465793969573301858236175790464298484206848296629867211895594118354976184923795797139795256559747510947354543063591998981202860409458044415325048566558470201933646439915877214143275398147881330342406079349677989105249114189057134587210469604883444417029347977449484264871902070848644593757239755535090608595160126588371733119675784304339401649859645075258451154290732319451825595468123166553849638945142276861484355842954811685555300657168353310904217838753851912837544488750681859233291927225298013523296811297330147229172641896893331591137761419112059759743951320525884892699006199836815026882981651852376622128539024148729883883612582158684386578896517731979534205775443970062725827606321558886398083361207971265639563932112287217094242727547032983310818070637751999633569262932189331215723275947254137638713362857619100886737245105011018516291696035255581701722210369761093094429640268670025408058164245813531626456258476828314112266521351717302829691831006219703874562226351908927603647583210808276797667188145370557334428325808639102792752201244666529568306894507261277496664856197397053905907825843512685804997898643777852057840085371547293130553034056178373190370975772665271996995161511763365304146855916521644388208730398011123008629913391677206096782530382900450507263024809540175104069335188099355971948438785771679981718918825304591088207510681348315885054949383198509972912546959670515613229946825690268731782677649663413394766080473352325713580921414303752721980198027151519358801748876170771156997646550560963011887652159543980269383598390594652994769814340616474693381569483029367704964920166988508914354357991337252830575593781994263263371888164269833546531681283001202417666474302908242598709563022109462427548285697001658573265486137691069118830664460703547716590311652310306108756199762133812993498488600876560324233775638900674476945072330325853778464273314113615729595423852222930647787216814333392892892246698870147848772803134295559323360878147884986048727761832074632634093450204524258304040056664739627992275525881779078514566192827961687817820107859661426058636852935417721202006175555376302039736684703552875247494955257045643480973641288400125199342444785393502754142575490268902018841933911530699976848461993361367527353675494259936758732224079595372242448917269244972478208635739076244622803303944155192428262025937105098959176463490197055136673804376612330174274316290888339644712339058470186153402363375998699474433033180264851997138648849369176627796066566594207096826136579764475697734085282863467759895433278309915732208948989204229083969826501132067832028691832928174974597840407369682784475238397240920948531454034723179790303666811603358241905942445254800235042358224772528577885312606352656439804053338134806819733491823494982604903396731805114971028921696432613184861138682814428162469805945629293408586838712217135213729903316129119537425138097561338155694050627605995939028809189251153072257305667011296599279622964536026350008131030707276002574284482139304735750970481046565333552356653766374574756127403673222895610220167451976564929425302821221956155101871730449891662753966819425617495352100151087533291479242162518730563176173141197925640672786049074517488545799010353374969210490306992903064057698912430188606660500753554276640001142734958281380356158879913468203181093933829090109604284785172328627363462732171317346249766422404907674213949035086906899094435651887526521848759962618554927398962646058998620567001675750061221984502576687065997859913279158251812555846449660240864666721247857636435705879603605378113252387696605229078704499329027405421606794743043135981352305778286908346402091490911930988775121338913159834195419844411070356590729723465401410534671660837478191091422385405679127128202486205034658308512058765514645394677908622353299567687468340604019041847131051517367572954029828285831264665988735185986494199675858661562541718285393759334957657153920184530588451835369433430384471017433716113946742418622559732581233607906178898009368530041579209804996077447971786458010250366004340307403159750453380503518730378802510368009628705500912732829913417669167471527776554115705469655859982897546139994744152225775433871926862930828227151010547434406131468137118550758603453695509934207223437925105593248147124459424851860414679796897912176006719239533862794885775473702118102067419548944220351580524807619724963446350036167834485785751742178324888327738463807412096328788776970105349348919127997890508710090017333504322541553567497657278827755577903393467153770137094809755287762917929467244819220172969667217185035767195323671945581663587861652649027433117128857971323693871802822242394241897090840545345710126592112757977222470806720635436970325251927259335830217717570140631837764394628941378175080488888497980134193381681044347263723455124920774011737072495536944078794906358823890096245136006399335537166779232379883420111550492297099728413322868360323161649550520361942490743869800960355214344348091209669513391532352346629320834161132662056697128291888531803578416378969734819971457633172841352689898285024052983702239923316835124732400095001107975674425726017868028048492856286734377174382002520468653277066945859321318226450760488985059353361701524953173141115498260253142628457578553671868932985333763800981102584843685050410997038830889884566395214154385352046200779322501684919858972625660715964888502303211668502766913613836458979395405807595463088071030148311019850383210427011827129638642673050011751583001829339245658756444720655907911233651659178379624225619788918091134117180088622694384346144723076281332283343889954919025951796282354054266600397788245019839466636487593523564853995353611743387448058263253927126681461386037788182544546502346394891689854460111746304038902952971540524197301110054220846770079450351583999042758374302231677531277453821750745547666664124086586885448296337887564457688997705389836155644967976173864125975629867513823530240837542983008714006335489556897377282921396263123638188649858092242788157838806066202051953059870576527075319401379271691724290554515486123938591074049245054427510409047593012918078769583668471763724173320447884352105300535511560661234388900426836405934265631912551616953649330598845811046394601359012218312572966318693187054868990142258350226653853635242255218581147667727187755624102275176907185640716297679049559976555721004697856892013351791538373989685509107601915219130470897912990544006744874448966691782440944747989049838539751318761096973866091127213998130847911781510312366765883800189326917402942906842760525652010805875544130168482180891541043221900059866192071118390143914724500202280771982855182105318699721909826704904214749833188071202374095949440744316866178399985565273937948436767245535165215076260286952894759081519275575575938636759640891183080673542611189138737980969714349777732407936756225198160095728953939676475616155702446198557958631576855368219374042050224249047450323504574549422239129439511738336489478614360534654961462862182850736255037281797967113116670515931415902343796608285274095179707005273063663106599119413069498797127390978189534540045968242600675376827735844807338562681322678415491300367198751299658100886355669039175027812603294979883230996444386081016311120871167137313996241329589581791112621289127588455019150255102022009343805703662948313490837821951873849148504247033558525614499430823230609357959836574748598441420884728583370395120606209389856840685772321786524006573681791442002917357598253980165703260763024670982616114873961145823902379193427976347846195290025242440931676361538822019817456075786286268990459062900627599213968285465162775809427951258127711429712261204351678318914412928494681678204296908600777574328510915028747942122603588487825201931371625759463279666254340376712671109239941759618027618718652818872973214026989707413266877891178058984246212544701525507121514845462526462230543693730614483875841720658838450129095984430729092593355657458413218675512168529564878235426173155124265443100092236450476783711095890728671355579706451552540396654612009109185942172449384259954256266221573228354318626820381406439812922705242457082622600166501463827193205496883546210393512686990836021425662202762531795112373013212408062940355138451756324013041936885578553838548553452474390793599838112003230286564221994822480698905913222064531891066993797835398566711633875396856139835074269833084031604102224100776270886749468379650618385627691326111841056153134984556630916370669873421632025813539033992507856115098024568434006095222618509876186889561174596014499399799712311340009405690861652788825901744396687798346179826607268188703616869408083746192212061532391553837336464152973779058585051592475876462168595331959847245088719318047489079525889803594395348657868401946628347958483950776325965115635555332812842480251115062951161440780116984465213360675934831189854921443033026770725794845954375940558428833191419220082617242792254757658354212640029714723144853057508890163120693722401844347331348952875856466633120288153558138352725130353731987496323117877770781348088009109169532652207756278550196785791800898060343503589793681753694449568098079127675257831649898892236632717082667330231692793816371434615238086577447690489784285331534795658210972497234257272507222190153210442341000117227816845907469353006159795873501687945382604419493177552808659643161641241376868964376430143126096311268657922969397097588283844302485637561374819711126286547814151343099089397082871100367091112004675127229182074889846995765808548311554854700108123863248049268147458864810986713959986524311025130237898006407102656345805610962702058199209073473367301764222291152977256410789194290611810719732602911006870308213938353704750359992000397179806108308047518505459191520097389134925408473116062077565127805899293848051570770404906075548347362659703237450559046541504628434948596747522219016223172697498211190599452950141387297599884152482743571864944078378459138712648673718566765883381580881496423597597358668347820937162572312176326259214033548928983267350758379704196274836916033501621410282726177319761533970971552320733242549834316933924736082308798813982817716850127704485804335982820957151630056501277018848234288441014013679969669984214350569923744274260248049018142988988001323466976028995349208909119888431280073893675106012618435434882353178912473946992804018315921865456913208367915188732994279997378564465521887542443362313281900537102995639472164295875810910157321403325231655193400414868520885122408453588274986635309612368127046370982132360107318745914381686470671296782805102284495278829353409943893018753633752628997461479958364691677516101714161838834427076633479988078484068235382983985315819721862875894976686511751408935353473068205983663299300459940668406011210797589742729471304272018115361409638843628857863136776750514614292821778664028581628006532351504703407446264700268255909331988002672167691089270207490770255197324056387358144034990053186508906518154378205304319042657161927385712029550889311477387487865922180473937934309453546385338386766772345207930240095655742592842229858299793253559676150834362484301233544723444908516451932037651514427810287037480702215340046945826857356294526077816024960198550070612470068331097283860839993695794786018482312054623171705439261538073288410522987653424961647819542142991008255758171075435119103511673642462127599870819709044723265929839829208776338435264570941778204764396991309512157765608319978278363270924325565414342637132389665737288066702172908367049741037157792939239196557156720951447438808935169080474642098897507137230592995553934683454397203187865239707882191581097396440899809708968216822131851903816986417583590380831401358537683027891696907086947111405521423109571750326128968131506505115939913762315505759614212064433786801264718922083556905639219761380047290927825658079832530451069128846038088328258697060306446979996351583554061261328400198005614358057734001259733441995199551489840547177322287840050051338083593874444118101210250894467720828622664657230496716677086341287797420526831843498719921136080870484930608777762265768871766752499509336069905576309206291105754885762258164185531458404639978954075000859678994003225369503487548181734058435329172606453824535484714717129719967634615982145744591564219382407988151173664798100538172536142711668543302466211480054524773205920784088341035143219831367079130643174667211717457176703087057759147081954964667924877528142744549179071340343546370718862945986343535168003065142510919268097077806406177634437453242742001599755845765073099018910162359277136269164001820909495893597789337560131603729981528486846450995217894202405274209317991497423760792130210085017054112164491409003868322858525696610309688260262344424319232506112975410293783396836552233439303108560308680878606216142350212747982200084694833542963488177848895967568438985593469722955768470428225092000016818130937941865369806422821440777947359796932261654820801599682242002210976513126758016565985864078417321524094182509032415689181532739390560930714989972763435788331047546076913146379524227397615935625993624053123004793181461124743210134814138239577323166495999018382660233005556377398835853474030799673802399411576948549023330388775157741979529338683911836878191779789396353412284669854316122484433791192742826538389282829263664385661934028727088207702464715247500351346571880297774341662482803149241284231858620876308568867100250386209992390704954353092839508944327224239214149071777502699078753820368165669345648183363743902647363146200778423548675077868308437189622736497205000779603467911328616447435523512889582019912624188133853212033037425453206370387622630091248373708413506953408867376764495973715706102425000464334312549490763334690866494884957640919311650122553361735912159297745977281161499968236728935455802699501282234583714701654032776789390282363577390883558635083347355704981981499435343560367039661547641436603291594633026723877708101505810227434001131970712637500461806653207658806364456928807923426481219213464829519804020387380835977636991551064866945123602458218743690123228350873392231247924273443219318596183960701045846762327691812981769905746309997602673335983833590878493824699888677667186051755303252729167637062762486273955563749228641756738993350353121060118937416813935744695281064466675888701325293106761806497346673963249632121871828907981545671443291580414087058252076153341981347719054216546716530108412272861701849609424815949154828686136746262028090603487651579511285759890736975843368724433954768511138317434875537408041650116582355385486502460203989957424904174734410277922343207371111942021425298040496996468385321424769798333773712925912375432335486179823740532214738764408910361283088001257442186130471539704478953330743942337849177107644599998473323106781182654650395332809529388471969484201443104949503551761515404668988967375992792556093018158106993920127958989641170517143022364582579100064063709018582723550457873839935568524548764936925052370401390741454168444144936792960073586059036069040542070860540089651073021116140937823598764975845121744157265226429868653625001712434772988646081039797313951774862311113932360396107001464763969430942729109140206592203609411531318397266463299263379119482597503727381079381946260968432196910570211017795872560626913867345258924154326594775507875563031960757873297207750956947532199699490565387734657737696974346361866809751607408913689883031175025129216418297970612641832813081964635695608226377641921961893138668731634916134209806488300512641125449555156588351475240575549603415597208982932276361227063604443195801120569452089479705139716052871958378325940161595214357628001390171516729746199253185376859788452843861950686295739105717936948226185878140830131674589390149894240913436172416427483014258669156219295223397507956871706690887063422773074177535778630824910367510558746974250811724191239907209195361513407864333735885621861159760156410869214893077010823712941265189470180403849573593223417453882001730768169424469928850184140164041424404564819837192090410328833626215597691875878184389711260256269891774648107357138578398448049703665442971967612012268439071912969731266057040985205550570432847141585282942130306481618316921287931843215190427304681812628070577405564573721922512065866049034709600988911623914025595280810734144526970263192238037585522296361293184195016163457537181742777772407468354111862426728208771139554568667670242957829555812850870248309097897902593505687742223144767153186109623776498359833070564390505108677043458910109067472608251552737909511211960995989904001150271041829852536118302534996788308183119761614181925318564349701683612205393878057962000193209313134189878951412675430145686744529568226787694771637389888278433690096727611553699798621896924127022436247672138586992345202594357125699406423644015569194924238717835719493239013428180777968434342950680532462786748034326692178417835624741125421029419924827515281266004907382512916994770118162208318129301111192408714766067217766916755799225385210443440492709426630199491583532897912672865021878314425677199222349294606151159000879327155313695121535202848006766883581756779481354949020584831407886688838407295442705194006801988368489238685363383358979278291074239101877240513891789114503790146660043405684417531584808078124347082017636437044039207639856610738353544927295539305917790341483126090778623797204088150134410869123522650218667525251465243511010989323780373518389928015318262880869808443661934595583439074557074415620516459225194749432027841642825181359464368946099437223949204480656418020993880622468491913233636703085118138925047081240142604328056659983833204513892498702517027903857589598424076730923567941981078490243061410018569872877763094543386386612934523722950893782759412366838306367091790789390559076124671334333938519669798759443514383403910669509301119233851531649561827629791277563768105426266942865554227306834115835846136370827067721776047494273303774620611126977444663268845450634519088646886579707402650644575357567589014118128405968818272878394114352066968910702501364363531351481539556385739370149062105650906276324237169205423430010223383841778201414833806540517574808835390110365768420473759774925870786939865857819843640823788781679180375371765416001632602092485987420131329480399990031244546662322698127669860319816241441964536070248576262030527128676844477259077707110480899669028081851847739675333441173508136588005979327189308039823358676961960879528819081349097525383159532015068330748409489137412302283899848260112744400889266929347182723439989386283212090070030333199976227089526431776272767973110055874445258741981953820769358129316484151455982715932924809774198724107778697973601267691012436235838330429775036367025268409346407630901853971055924825349046357033472881244751230712470162259339170081518407697144934712821362208380827464025132414984374769742759049320457636110615532957289120254208526635536646854052564782610836618817224414588230005654213379446969270913522047626953157233110043261926075149041928602126887513953245444622106429780446946089435776800333119849705964406277500464489913396823236435916117434472916721341544706983734645792808518073647935851983816055002184052706849079981051528782470115176428801194567132838572924105346809062240719352607826254795174543132773912026331911085180820096696381326680872548347158127642972115973164876699331279320332138497040823412731065459021553060753325485885517050462023060958203542858667685371954324089709449764272111547418472262425384306772836900345255270971215317226825146253432394448173405159811033264958357335332065611053285581329401367709337209095344348911627596035884183016865329662629611811104595366428564667633956381323186251377776755061275428681642861778132819861902502822260047236384247779358287477756334212151309495289589568727012918685367767971276854069927178757793115697631854983691774242257742625430850077940701555256128950849831244800560921110314812172680686709023168844855925593136359396880210969740046742730338348051795110685707417769786722211220089554039895122933312474328159871867182226353082290017507767184483945971815665478202776963142083462991569146413721701951018022710417847269700033455020189559171381221992645989557151209955143041212244715132228191025703788454892832763004223283395802660156043655659550093928191735061319429817243624498814064409411529230800811900209386862471763517092568124421547464275431674491768123321786339720562781662121135948081609670679473719341489610834353734098819209311422730290438125922951101146987977956682718485479844894090188744635641684044528968170123416749043563366435606939414333078828151986104692058676208819607590318780087537902660615397449990950043158738173081170316202644573540818734931960670405335919389454420872067158626681634548352629779644902965914381835497688517155030326557108113454606461126157819113109565419324392728768571975607854317240282860889698367877949414369848266228749373470382197687577737160934682448429526893420655271037065804129137477199072456029422195439481431072576084461539480494594351201525297782568159374625663036499599105026373348337649654929651276706853327469557068704991395951480506860464518511758391675679057621529781986184687737170008403214595990392859366320308521530326790859710447389311737358323399771451462192785513738551437722878307640783868975468704794957494486868445792891803694410253059403998629530500696750686703730957410005246889179000986605093108798653259237038103104395641219713243180609362336470386003963251272194757778631082253106505012104302080231954507110983807226106373382264152243140084298136147078353530568996511646447997482060283854303382867623082002366178686262274030380739635325253276262875166682523557096616762330103576725386090895373098254592084793557588083312062018410428798579771587360426255557726258323691482259731423377948705150891315192258794196189855052031167886964373201461537120389354398626995548919906310697315687822520700440405945507978504933744533721759883912424990340561177139749956151428757329418529425613839729420899684487004858497413483277818951551971246539668083620484055137575819846401480790296299969560332147705420535609379737909814054319360250034269794305647021203433485079660549260089642883248889233102628132402594613443848725091716296391712401423731575888493573174478362665072121169971930663948346614241662881917948876072671747929894583439750010096804079947533822945782631891233100097866208387264147085026548385621563960952055322028473870927547512347773242113328937474308590078103487528620436195146913569430801982392972749321834515739736151522521383511039880866568283256726581932379657086879357776261156287816565345948894606596533125372060592907305935018467847940687220977356899644104190166877802784395347248356065876298118384018008801565180820422234455315073500125285831248772296196913410379701076683677820936504981303520757129083082454391438476576833020420161684180370221399940964943983389668354439354669396099953255207428888675649437625618473170488389756560744076287333145343663044088902996848103892620895169904564859057151323111279385020226839280239375036545546733076885911460861104777303884668883642598749923912492607749286686032752520818889920434048133615039792835158359531040388096788824137950079130236712006971268053994697505826538786749952748697896398042317638063793408347146215870781555427672034846899815867037280813817964152328497179020964767824614187862801243691650647471408048898220316089884176253005410982142180093190397427724612251375598037322212488472982322388456068990101740740302905404268708291230097211848245873482920007324394466997741133452503872031313051832620983496745654464157135909735738218350983068975221096446576283168087122981911896743006629551651311223913481103618746062744036598575554416161494617574890092037500532412130690671423747061406681153326038154074154721399812017127576931504948380327989298739528724930630506321036032841194648082635676823567448581169610971216641912254996636474245290930330714374627728588566634499748054051168333818111659609510747440413621332226119871708185380598406764424548985453942502768753319271445769741800840771828819828448754840673321962547880310162919090886892583340118724834174465649650499685075288794182036894443319549570194089318694436469064677946642770106271641209331151335869758761089328314518511322816468319665748491530874048135869406510824410200274835992019004287239131759707943748504027897049662597274009410688967331267261827347849408118514804145781585556817615895462788064099530894868188187004177238648912400191626190878866724087201121460703274870881198034358578730844813205510345824109810681763879261368333714404598436676634200676105832699971771392761711693294592393418879034580684869342840003539132071361915498264785018755850537590562563612713810630632053916317613935257132401078796408139303841585249430439446058883004840078696311827109820556101122108956934541358839828152224704124917721432863593399645241694910672877345019416114362728859365169973532854552268915346251618878283399901419010621412883419676942963339274206001295655613246130294315435935228334002630523386947446388108957882141225604001899183626398539249505745023661286799358546682349300274066992176705284993588243085567349147384869024128619866962215280486172321086072386941230381765162247632904311318571050598945065420716481106967280934424710840130695652990952065064631852334063466917802282880621565488116355308373980058818285868701233407417797454428322806894020089506671144267840198585851149249625429681741232976488535646042500327198083973438904551681968473647535793415733194933599457089167531495357043027282022636592361390081530747767703482195732235902112280168866077593711661024695168958547528594055286588827133236643870669838743146402794229495814511490478725837366297063986420347776565374890253624429980768628362398980557055785466204556204988682825355814884580354387360687190287452357951720716119123649210389914097743372666339180081871481369881957037750594710214494195781945012000167031845628054090825590613772954255115562939831324451277466886500469213441103344753390616577397306716289304293568088196779153886410511390580582347080727788045494311817583716065078425665349718818724864259840300340455572064416382352959716081488035421343175771447065538210483169543904032771734757446149947217671568794108927654981114050501655479808090678059963590883944315814334175446817211375626959260969916834075520130786048818683206331313565585194287146568424125491406756236167781015952494162130451860006937894409021600652982267311725031659891727102895183574430150263717142088549325009152588469218892583944256039411692457354274940442739001841578941208929754450326378172772457037693439220469031351419693201441112842474366849155156557517220905126886526774016164406132544093562369472886729903110491298756658595147886478263529504238838246289322498650305230037449547515950662693643787996497785371976077958328996208077441827805263629547996845119273352266178297195180794675832741422988962993337765281891100505200728221130775444523223156529846881790785207316923074121328898821590030379540505586290608783251649679506573916309965105936148574773303731428458368328632894065041061258084228701281176405655204805666858366647594776833107238762242071621968217330926702045509884860780111491878785916756052183790225906640211091308639545394265527888773978034941637537824305224911647045152480928103472418321065762556027799651645811117320874655151481210105442212258862326171488944347037769822677122509188009746648100276196486688613943542752642346778513288524774783089291625357062051001053454710175528318924294439028677733564334480968792805183558029646135507413180842877692892569229536077030738546172321951410266628147426899114122581856685670949702277577818610686459714247163493459442212956503700283341791396373575186460508281382120703565339466259680053558480720474964670216219080532931853548187208783894334980983531984993374783628045940945163785059692086596289862179347755472465778046427408491536581539827949250742952423903407482344124387171274339076295744684221131333159072228184803897871135499430139822076364151792511030161132538802672632197074505144976082491203331261685167532160746241962484498730418552492972885718967635655553088947140077547011873448320071583278810779397259031791177285696215017531313459121644128712244794552017637069761092335245474018124627403315282580570286747679630313443291852569449831409926307304673515191117401688764121407925081445913442295568758164325454324253599024207562497962292553022314980910131458433006176542060030450582427262000002844072117338499350956573634007809007900159248095851293816643452867910672593868724890680395185034185196352306481850982201448474952297435479187965911054192707383832074642580843042502982691581820683823525707792197603905495151033967881339301238254679204555595498024262863073640971244104130344539102003032332761834812742880579007447642625493969149919436075223022548158069609825112494760389890763449079310953260224646114221453042214124082124569824939719837360874332309771175483300671432039215130539624795945562926008831971499771403860831937935892990853664298026287086796246354900223551310326162757657589769548638570930900707403375202943322722596149469962304123563522741197634471315798476915673753518119559016519723248971046567330439132163345675475372625738192090128963270757236523369334405076684147439340247669183969605032166192592057730176651780810063989037762661300450186182266899321119552619476666236330547590942198489014407893287091056711077832069695434333048621575799044298386782017988027130102989955571817953150721975549773236424375256580569418218160471035119250833202432880468244062649942364381899312871154454241917181252482164066681782622073239398318230158937010793705733850664056537109077962305696982523291342645367946184433783572478002497160908313538368543410289211305375731217174742197634864704311373974368579184680301120022637658026777746718012237237963691145248193379366427286161901344556733414187633236544406180793164286650658036194122934068402629595171468912308760207388051200392260450618033199413438480798334432544019363409921747466032919294014727262718747157372801579023973060482790210205220583103823074551396550808210285781992245194830278796468443168438066833074605250923347185354523570394469666831182849033435016082692402146967094271341544397838743893948331485420972762417339196823274748195117578533950781941070727921526618185557181421691493389383003998256424255047362434457463238311838013544478342757471941671067356714447155311956044607417415233039477755030038822944227641349132168328392094332445815169451952991745964744631445140301630655733734252673996739021575175217523751932993853795967668095281801159962578401089804681857824733799095104285744868934081047198762565241535586707868535611190194693591857031197842460060820483975924897201410407820909959147410780400110014150066086370144727339460377779405477313875412228727121690716265477248089468046944415914805668856581058439087679960356281190588158558706892560336700612597026540194224169375910802760132842006759565646922960484227324104847829170204952466713715500461077905395215666859165119793942803448494256641476997452598595672744181514024027866952741805467248001920223238210063501436962280419188108159235686698940684984640329427553663274226074784203164358223419383122772813404858253633592339242745697877637614276061328451159228662483081039435890526356408010381771892285668973679375090859499176689235441774332990916282516942192249720448448807956563093039869509673450676568479429719429358758502359616023015653413042153403720419481405195238736585180160396769258114090984506725647512085117373252020058634237158534670020722474512971074379290936835083373230903285315877242980120337523350696693307455990920932554484913425553998376337468285012265619571522187669101420039926400873863234165953026335514227557545794866509943122271967186222624090131096210315869070363292265816254478139103052562381359888262753786380012967740208264307711119312085847287980061212009597353538121523184473409102214803996124649036185889337549964733570583073517796557694439618303802929219569704918328661420864670366544840100011245844253913128135603934018279069625491638751686984345165190216127227811410815720330328445114282952792398792399617675559508784572650514386316670062909578663500698919038675757667876105837937309677436463406504573466219555044605983135267937544654577012589799602010136313780311724883752208595341100166529042440084324082878565447451741264593602098790036181870721939395066349943714035526073181679535379958638700697639462621390752357245016293133953621650493193339110987268279650738307522161957448777260064846811864339848689715989592295394560013632010927097900993065285119889720738186820002409862070479052037526395186846224201255906529691425436513575908361422113330020776372800643692790543849656365725859411405353118572678027210196096280809788902088880310102873964236166962304411042975584441824275048753899521345713039073879343029569036032221450431539895020661563871044798059258697843446177106374134770741242153377997739378285003968654534307114378147717258624600024152745523438952658739687879722417859297794657837276633929718971653098601272561364949477821471778588780959098537242536473325548526809140020920037277201639179484658734715820359881655029314328108152518046362726593564713166518038668319248606827400741696524423696341213938993733339121618772461192744704916425093699149403295260700065068664355550436862197795296368773690623791400500430315229933244934735744935080370191929238640945935469472096597056898990631471644849482939677251069960673835689350550855958870571071919291565965101870350970826341885564008334500633947889130294313277994216815314568381173001893158700171878778521163789733565355394919205360147247567490041190376958871466870761836869033216904612178773806999507434351705686897616695978251966341558464193271456683403258414153981016662926347278086374849023383946209412026492219919929447673222316273031611470569993629439721481518663773078642572701297855462201403764727595275451737642833282676529694342893524387121743707943814514643588037933702639047466360825530828170221483766996825303545821654309036182031432783478265229973883977623205881540858734031407168444842762625522592187930618467451450145212753541157338218137054779961439026857740899155437554501477334194118879583052563414204924361373231199646334741318960106740824293438138253109714795819518308284649402496241783328100153064002607236532560513276792009600245466129899793197734207843203309358394190293391634024980249366289698838239428187326867179968022433174879263568366114650664236214897084559725324529166401450949403041034610642855314068505927634654987273284049354521392801269760138423813902847876381557653489699346569427293433807179172213804205158953284551966001229196565121629646454928560679520191589663524128721822364010951014354818591514574336374450626013678847132896681664062243871310184682754572908165121696696520809984447890431953256452713174605769512780714283909575418887047110266246191181320415349459294648772087247338335304507743092608772102050058184256063105147881416025454400390443359391934256092409563645446026655631643910340896798408609628178378817092462358143046845811743206954913615193283800113035098420813795210210315538556499164618508006710948654570644665876693723636953876889899299631261622660265184399397419856522645384654077055282707100328839710588400686906871938371945252708146179549384729002398465758228470913695471323624265629839943523626275103569500524060084389618131004825492479876612526176963299569136314291131435853110930776156876197695788453378045295200461051475292425988652157939893365155576173730228591616850100917914859630728329417255990616180991549748424306604224941988343251694576618263426033482615678501427026502030382225886053655639126891423189996456142334326775877344115258816709928033832929037200598565323433938062891637404185221971793477593878307440648272562563025924812091993070113455293467243474435925661471097543610796519582830647627020530421454498542437556983687355168951881274812953376046423967355240526713453535988413091623093460384172016027567624816410274694777649009659508699599674521805569549460144871404077251686902182417249113239969995216932826656003253098287570736849918611611099427437040325310330633077957632720102046490533555981339871887264378659976057292308267514192344951842092692477390185772698211350384725643912368590472282536389301741278994110737563124648854089075323896931710082810819183892266494636258813033152274224132684920232880683329205674197009825123665145597843586531478750331517144319236592053442415641375135539820168241219300026429646628109279721525049534494852410211162525159594502098912530972263313449416145475455584449387616020474062172292307517267880791870402809408356930869075439606037274317034981503815414211937236174389189787595462065719682266780434009410677698421276573262771088313841505179669736589491221110062800470062739877806796582594963845946595957378483778715678453813556586632149067804127220217067141253317457465201053555909661818095027930192040939001725931217834550790672415363614249946684125405213431269758034827858412262928408825382360363799566015611579419140263075397244174733692730565521152115665849846809011087876941005629340617109683104599823512798530742073879071782583183810163773366796274757639300517260853975284176035486510727840933773178241494411375524191574144473882439781282013444718075436511486966614283895170721630063327789125352645879296604696675163361273573427165359673168806160683347279362927971825999778028041855658789668628112846499291230044775007469125574000458583297277997452764088312238436290532534792980379068632759798609861368403106529674927927580896840777261927644027686190748819594484948831381113310936769501900200767252691930413752321871835518344311005059234938534713294723740592834740548946576876166055585807003747614795953811230149462370678927964028535711254555665972120587917717255189810171858832239283736277791607640166119160056859074303199153828274657730120429861817368050868314810243282758902867854862830749971298977857095777836735573411858531465004514096748291235708609988102840771984762542500976829367897211189302809814158853256772207252036431527499667661228765011262006884057799767104412660574109453211953735036224075543745164379564271381102518704511864540638739940647512254364418034094956847426379851267291480127966377959786936913569452374741570392732995889650048552630601912983415141336530798079233198393837310092746889520346996219930836261451762697462595211667678912303439875003063441196901043044001662829942909611835785375462379041902615612520249044880450528712356123630098965946465238567418752580947627878652092868900248515288952567001157907208983189742381406594904217202159186158301343567385945419285956885343450389359687395665455465347713687181759501913249163399257136520651595925801680102123634173096825443271654190523136074434454856907480837224290776800596279225799326964806661411145895661358614291613577007606125731697114136572445835889321584515930458632071632412222180918144274638204418640627425807902355628302539570134531252408022689627312648770863509121842917954424878369406693910122176329918361776385636107440484686417207751654216214323557875526232759078611830505214681321269804855478559363339693411173772451873056508808757283661440940265817226068269116948589736842617283567142191489598609444973960771659616704294379298004716393923623156325261999415399109424238435272410385702220480119330691728442805150693100216585356522229634728007117643117125610591221474915706195602507029240163350496687864889433403024816710577191040949082764648421886443936277632866165151058777555118492200678661220547650159703234728473314147522957159305347524312786460832316970137200398180798641097214447227623563109388867947095509572369987104176344265083562893623760437262389756605512106406198186570038697238476928662471281160492831778125332371502975904918852325946144952028810247459789455002998591690119703043343850836652792295405422425628216229391265981932085475015552932697288605122155562812647176266713561125251633330183821266904637965197365647978340688639740401648984295013089175786015720747507861630218157554489013358205026838215892135506342330046391770377067675276061339939461401932291576768288325036844431666902885286869207592969965341851204804289959001520875917559005804267641610334904898680148410233970229156370610069610643051859121272280500949755236979922078588107079760622261350391468587036688815967363996221506755596285769892276082978379441511789322737699124974031100141228462148748219272815677981232284797555689460245033371882313218720541261283343270228585942510634821916218834800119534689560851090136500889256637929432111545785764617297264300417486278287349167228330348557067871730456163506202429651127522322481419757744440282060882470192242724669929278720338312461816016175985566036221896091368361965983679860240763228579618668928740835524166194867887696344615590254711160568357868790638139691271549558398712215431916827015048144853411752786977416456841535624562223231140097438193984552559902179977056129963908617457913898940097412128773532982511628877671759137168009128665553806653799851645818409791897345946062802324309331782357834710414773778529964429840933219161125371230830953145788046991481761921376061998541178752153413871047016850329426701565842161041741032063299024380931745563793012483028654135790806098440556502267629283991926709313787023573552647534815614945206898268684496640869307825924414009422131339318951460399557227737336624230424279280095792087539627963138310783140114484298065738080698920360592948903294113839844903332005929619501191273380235924500939230385053955116839843737806396972608273033295620034392831108095913517404431607636216701131755937415267937108598883099264518354719688186755954212508051271959944834941160991868956292815957649108124826806965546364096939397918211335670462592838193169285459058193523047968350569437287968610553718734288163965489153760860428579025480978934948939393961409493845719056324845869674796984174829055826764762363716244635407933633461560399126798239274382585198750266738125689641300370220590565457945494177039786811176420784433648680684215894937456700684939866326974869906154773851916263672937773495829472971379806515353781262502676151053937547481003068103015968212905584401493113585201878112072199808393508331386747920484296466360125236288300489511681894227959936719453082987067856158584226507026883056606680432072407893075770203074272824019876006761749625208371251121514521152997232378910500461114616458113976821348744086997926354682365965015491314685780190613879450161330012248640579046245070206545923036896616862495698069932820024672976782268431542667565515882499436992224555656636078583749086266822911370211551276497232033123601414730218502116899321076926721165606286547469955251249277381178468365364241575936058396624749482238015794061576380232796708504383390342091476572913496139691457246347529212511132076961691740207217585190658049365568917858499019030361612637310449669324254682936854502262974131866081752037320761877911375118352630061442862804042089318897100628360466160700281895607067104501181092400081473547203499996422879360234153719253002913933579095661904533778120606258559762860790592890827926172379343486771975184218761971745146391043673458368766654157386413380958518045981461519274392406849403665885085006552192670643153751623186329852092310810390347375773989499366588737128019974689066102781855535512013210203930020321467661648437941939945374444916366157798838480484652229320610684548839473067898361864797670663395330974193134879044395143557512808264972630863251699126833768245949255908400125155135954039722012642812960467741449174423969493028102186948962384861799431841690238375609740274083548091951881178910878815285982207591662652104853084258660456235201093272257169206173148461841670283493589920968689176353015844514631275558973341751211514662846089342442896021589208223579172803013929231491705867074571223504189221438648814039930241709577866468538820114421776704896746684558593485357623284161240274916992016743466419789969062543889357097777202438706339069173248263293369573125852733790682220146432702265263734259973170551811355994454665170632213721180991839535570864692408597222920413009552266697797441830028685691838012061419562003842452571636764197357339704075551476525518571256217332627568350644396668068065647834399232049732259684827898499998493259669452111256880986227051011877668134151550041379757958640997272447107856008957267071092307231603393548804138391715634311535185185943349008239514794516346316374129784190381661770978800014323018851255497443652401001260858000221485221110632158739400541180777270939971713252526974474434034113262175574779713163085559146249245190444212274883155066031036700420056020392753259648802221652904860600774250500177695370276317361834978253971328440248683724420847085967028165587638824491062649908330790307894842059399167277076653523572428538582031275112204129501106901841380274113648091070759885022402830094371842820912536725799459346774720582451609817504614233767310651009260116842319392529416026535756864701276848809835691714104872193168400361832857155889549798858947321991091477759585079267072675197497972470274460149928066484188270969556869918424204582501636968778363788985173124039740488512345612313516695147795923343436519173545156527337452388427589817353002449304054228178096974455236922628594031390399743554302408120230044172562056226382868875849279233174542725362605679005935174221743238553791681359210443948363591158074850856495968841339789304725701187650342034946753562421162205021210902477993509928464536739563200006950330606190474774641027323033816605005475217847897837130775580781321573582312048574982899664351226919844882948535271151680601693852348588382989620625748908566754895406066017508088076684403601587798430387036687940328294507447880048067805892279014490062784940725479162808008725886588646816691279963504565964271426874826587501680806197472539994913219600647311307737166059306279789162212126647601848135711351120224002338778015847593892464868938304050757329427046307814040307669315788162971258227178077009856129550306688860064161141992740124443143082572834542258581684210149063572492228529012512101172777471940996943338819685487672494695417319551796821081074475310774936664911388476715324917915580941105586327472745558811402896600237930526238285584711934141683833547789706684536308727397653913820716315974859701329065163724989160780396302374780617717410965391465930180838072713660881084529287722485300869169167112099865503318078640235952363289014028964210894019464234519640686413175810966136924652556114245301898968827083823007925071469549103043916064176492222616284927053332648835881871813604215892445188870513787006595387807469104174435290023106144869636012193933292569970812704298029959562635439204665266674085140501429953746611012390756494529708636001781737189208576147320979001716569451874018456231029740406559337339759698606105279703011574175756727685995391888986316938068647261689704666616704737735163766889800241234191842787745361854380103420583756754009555975568931817644178753939479281627815658052181460096402127722565562080176451480601629606642643731778894961852743969256670488846220931856886353962138497321797736707356778275876606487176336332572052510325066642419691655086195612747930506097855342390073436875949530389225239435328481374741393673052114885626340914805789418496240578638686322164085123543315033263556712065469421424613555833968916918506901697964269953146950785905969842512469832256438004620681859514020469369641672237493258690442857140902927337688493489788487016728912745055313440432954534670838491627698633167158774170671262723031482139382556296527979398603566517202620838907230654455929520718427759599898167256203426825725489242820154113815257090247737351094231306979246455642011318094472307640832856579766505840490880125166577389462584347308110627641603047626195127607750373723789296392005630225929048581829617423071928358227557818756981702897720310404561253894570530930100814744970750880906858050760151412294744346846484872461560861328773862737205220696507577917383444812385255664943315226674483781535010512446222087488615259182866652388782640559016947661052381513159247870566292110680151454295200198892633084079091508733518587504649642902450250414834148156909906382395729691009201549663571178325995268619224658757507225749071612308427359709831999528379678992075352973657273479642283562621596314476688731807388974782272999670719749361120392706084928033714457142240432490348758222898608571376418851370120011317598964677199746331897068322465182168920031200682877574365452706940743454272092972316588884017751614047818965922393601423520074902724278880979369044271399131840241684956230499071946771847671079389527122108592934495980339082177576375640482856280959326590874420043205158511593226054904757534965750986965983956977456845113098986806904315897694204178856753466539522609976130085974957335691267129228362815524330896027033781954304574276690470199258025513346846277835552994065233361309559973295678338302153202357827361173810766839638311496427596255031644027933066322134385748202793495516938186092918358317521324348543107970284416041319953503778164173295801794368937034367864208142055013403319719886669760529692591159913385175270718858582134037209180428060411111232780866167011311066473424592318227515435986652220591790869980726209552917945285182562881360381270176901773374286546881530605683495265268847515057963545599443710028604649937929879092997611738637222307623960608307244497781174517839594728365794967815861642251941350133700591997115989966844840240596865267464063122595489268474495123545960145386972092480628037527482559009815396264762223301944198116454880463021913116460104827720169338004146257025654660164650743189715165889040624470680821411691611761900394832005946407018948515210557955924114991323066680440214505996878166978905625598963342413603721993297048366563458534675059945812845144986778124267838811001973561147864724677606233328235472157196864282971158415930923413432014770378797683884131757055510935746090002911743111987760681311471223723023121167845348523245343224260585295127816536814947866036233926609318881541517222563189731840568415518307089834596187615602403034094083765817586726963015793529386338229061313485597223286748775673193160933355559765883935815143461741317559228909529178717656247748068016362992334082217850291634731408513556279933262523241735521511154246385889710388036043357738725467425997905499635800737200659100061047288324039486279878122508411933822034868997600874169583855251466886035234180697171791296562302953498376760468101693095819586848764893968816851218126451068220771533717310239205695560934806347411894125736865093447891227225830268337982402016690547051431984455023338509995988435163862222559882290478632094423227868109299043984356485869122113486226524176704860952049207475507504708712485804962307184056932190831364751048090761376839747308167967231440308081309336401134508974283211810010142399658694250294202576544146570314874820528712305267827999457323612129120481934213834057880085137785572834328968799387510741767820642485309246904908845221620753013552025480472697739404195039109609925376819302957565314695923029398854181084290220585160444038213612702535164288249565037978118031624370275470218665555846037708736484482208028704750119371212966781352971802718961224074236430412471745838649698950620822094253261428685545721373211794582057567495716433839151768838305074799030392067112724684487298616660448024047786402560427614855106050398021036539456585012624794854442414236963256394117073591140024142541564476429341455564797725727242342924727882130824619669114535281551332499362750487743855148759147644645357951148514279370728124352801556714651998096956173794496679965633518639060873165895779449566802416088224720681317256879504631731110547499510018570038969479361690969002112196381130568921312126989596149750761653868512429369169583920255383443526920603379369486090071057158299477900534889170514884656423299366645900910140556449320762159354306513398686975316265638918554101747890279307882645051608167650400738854011868403409790686053788030469564157692989509479481849456269591758306588385811001544104413662229034498944506825877768268605123222987688086611688686407154150347389989088339204952243294159253426113713425869177405375266330233656289228859028139084960847014156382123966572855686474275745732771752584855888827154969873799833492415056247332293491057992149514343161271833198147645738417026812520945440374415103929010678348778661936748819965284871149980004474914836254667895336408752352209568285055151924719441210479804576579906381126086518137277143180154444213693424245444697136272357766988730087371911831697886228810315567793011026782840373463114093805758412058273991423766455821962260885292957735624496580704673067318690565464868919479811680166665697997344774116695237064472476952656109961943944342170876500170531088725317502435079027820262308000154624125519281642194577806978384367331458863847628776377498718997294862523589573366143837167907527326531584347299512570836582831329611927833541517065856925306072119267099413067869192034967576428427540614626907958941145575999005624329259035115634236554697948238392892959465618534007812977762822411778701072834549529969307792142126546118686206140904046747691409119319796560559653481160680494741390087141137263071861286410922769285039342573425256330730916726131935378166054177783257948596479611924927340702897090461903649262111157751029288534320367538046211577571357032024977195653576436346485993124399005280573068642663029942127006225566116293713587394295934897475282972040554124888294147763766584442648169541633294902115420766026043451479017674779255761978591314635113513950317346697532705124520702892435868953545044979455865708509884982979594489183430245640015284273456593365056302171062532956328551556081367470621134187479816747790580367045835394843095092845408788904121970555265864318449454343808055160341995344081431997962888073986490344381594637740431253498974788891642355833260970282143129689388165222015687024683866256302591360073844606611028702068001966400228374448033775117329310295764553038733291083535968896842845388755380844861620324538792539739721474894673722763639665916269107360015930566821420191085848107618755449846454420959085688218730486057044186760261761253329437643268482784256572392496209016428816017787320639442110044460808768429198763286056199797507258410828377142317757833527245679521188859046382836109644314834562938726108044735759167988938956014344563812499145282130035739992841722561138566901854386553858551669867979423052628246510100358273331252109515534319823359966055360345448709930007866126861415528751594197004467107760837340580345455742093022014794129224405064109903474137287365406864716477221434224672095698391209154452601549929651940621355589204023415617902614131381851856832829763146212176852790287668757211324895191191480154078087893741392852379512099630589925024020023486326861998337485286459757981249349201700811399206895595848599875522835502093967902386692864401110360717560436566449047667721039524273151411860221293145481134024108600793911656804973171586495501186258696571043976719218571383265546312429510689099779140631843973439378848753465775742790592926338869908192807426569572747622409279142503497292212955926839168659413762390308992219680825882123030983622714280451867901176614972644896606598792473295430037638561816925040780252749685380135246981135315495825260570534427593635439985315057961847067025430097869117883925952484944762248642699278923622682940534419466607453397811027255745829810454241726626499675421243126487436958774821901661746973386611066079643269822841690938719233082981346447457259529227221578290690918965851863406874621890274310724805654644132425323725518044467245166699085970653887428066646147193002814982745252127471664781105542129271207407712090330687065707112572676385895297702783280214906815939141609137584284427324507281248216076150702751694787044971277922780171594116497310637543772658913797969985194581339520081138886267166751564662793185278400564953806499399494335949281803430517218631947675889791372057167760463568605563385484923865569904701490513512111894965251739839639891225205041437434231594804341220810366458156992241939844429921488790450453074347529365625418707682811633488458265318227048507986556001221844290715379719797177249776271057186260615533737267349699133597878282669511433455693507226511934652104625730738403929193463247925327126527887096992246753863038659499049703923436066211302452342268306281744484745219575289428509630793980592071393839966222897748913873831130216058731114303724470414576743370067075635213380257216788725212190278621137635969156536785263023562625621233018302067850071575984546184785063410789199117133477140093778296406278183328645325721280758221221642572306803761024531887661171296283420541749884410907618085725417440201706991284017781640297837643608926540514935525648829181550443645992294348772490817651922481320208465286923146615211620121865836067686447105498575120393276953496505189871574491422948940341841748840740290989037778405743412998124595142384115118862851216918097318315692212729223825280480757148000260509314126562043943923985466753984384655058333710801911185551332178174071271906415202428509902889730053067031449684448831340524403540713610208670913709046850911537376306920742654144329627043196510425296543053383228671570844514498542607589095271927254915760883156787551914410599488684649227844141862654960296068871250294050244943767134417514603524771119704136269453789551027304419150970854788965383709755836839888582618495538510737536119416001449450571268038397401783830150505782452070903077356193166038477810434138817487463993317360588195475863136576428689348248409632406900121568127099961185538773983864108625177158765435574883436059731214014539259470092686617533454050628473878141255356668362707221144834855724332414090989304909971247474031258146798696056374333983950007442661304557303582206994191494588486300772955338484404445224066855977319312713407178868900101942767048993832733421597195292518696739687587936179631783139896600637385443001838626931078469803358137211739882267774553860956938720785041781224283247204463997722715546273190233629311728402762387665709215104379510251280678857200750256238623883761959304561520764065883808484421243802020017852360222567128606159459948408298954116500038831491467922822831171085113082668518080509943204462952623395018969491846702163059076408367488446543242466655342947122174440335354983627819942849409708765669675078042315702209545294849288474297329877018750783978437328409058732511149732090989625046499142196865074143776562689967082253751899959777431369274439473775314111343015573759766293847972715137742624511434548446107810521155635123939507813294451499827265447523113357946335399915875607019476114466206078973426441298519344236349750139826516489208270207023541512064757478507845410984125454071163554946250714129444016421387837876232057892271570125490218539070232292239487749781461325555052785434198380436293315076274045487514139599830192138610714119461230486362632785266816879705532951085759024933759495730291143420101571816885687143836972520893151156327536860203690771279147649591551494125191227445869771192123632174964030146549855449364759790947951851482193700040392248682955407570601140023616609697165629838176739000579727657921642189305701922125310704280968819632990798047779892545647355494964955590288895216813045272501544263079240870521630985958268832747621215484351615960680542937715309665384146366986989466542401320162457685947657957212294945789724638543266025262605131330751832868008648582553671012873252709179759771527422159956003901417745862067310733798262116993918787460006467486317699136562196380065142139276423167576819307187347648056491338482383542353805713217706789917803806453522706450181145017363794267297792885875364933079033621021093790274732674094448554250577973524560388981025335658710221624108235966701322041824037544237117634659345824299923843148812469061817368674476852661768751884813607422337365785707917966973898049576977954889951804830562473680289582194616845331760526086067117484429631785480402138401532038554758986747705702359299126063665606969402860682718330758234147473184372524329515055676199777267342569796057638446016585622296852071108285576976929159359423243100350063307929533261203539221043922840303265066157889753541962241646526073067137143863835205701997726485527796754641868315728327638219022714569308484116073524985458640013095977952860627669806400372262385536865044862241430693654258813558301055389379213796921047583481073877452488195067200518517066938537947793483783925624243818004777682535471779808064578765674953664156668351946066555082207389712994610822473129395529136047898179264232460824524355537380406143776020470369050589465292351737241808804752229206229423179591689898103442258741432300016859004351207340282010325815942759259079448622331494729130676819672492156332397749502784601052713374619437744498176414605254108552202481650149926940974646276431410824149757783296545754677346495458825796984031662744082166901353161612503940762593330749963186513211359280131317402757608990452744710434659458643558551945177605299071190116135595048707181851445814524498448561773874225589295350435913056524957684185141190918136711770311638613107975099846263122271881756785203519309988665565499282037636994011469500578678852652695223734250679913008526016158670831321854050057852116762859743253083474475556458358989158532378549615456918950598524099014810145187533436896417849882412595226298938597638411944787940427524399811209143792777401153017683952614564571770363301325164317165235707422764989098384627488894712919656849580830422088163285403580027881333359120356715179263270884213943628587789425637218512939308389602311197414643022780271251212849860210787962117672627474060486809756288706823849580960760555611475020075926320415163419664757730010381987826336901564382031941829108544667469822655855000503566091053581683183793545621497222749227384816555163437925579606575848643632521617645335872810260028730218137777679694194178901282118357821568028572427239815486475973001318836704492010419763762395688054483821236067149349389362103322023954575295191351322864179287148997021195619304405128636766841545178197982293122012640142037963355568405133740562816941476363839888293945706799116283309761172323251431222314525974329781976052103088793894206776474513204730978164592176315201524470622595236585790749817652296675023496664854535249702149866766659291903406742392076531114693206318190412679567562603693855537771341667436705715327736632671328125258022376883855978009337873804194282915032121439331865084214822296842421605640815652948968707458111076814170761712799284415322181766150002159221133022603321923664442666189296474401553544932466874405717268572409926996611622912553922382956353193705558478687495227030943520215247228019525701957442892169667561013545099634239408449816517335323854893884030708433618021690362664650403388613165183121738809375889669226964759421295863493831051280340409762506974208705281663691603631462322399783109342466372610815540672029897248117801813106525760794179574832120422611518854128568734370081304398833307346662685008340450351092971527407274515191833660141817549512158397880634227230877016218774573822747773990364108676547853020762229184738865418626319115384757055417806623387313658926469378088084276195017478035727815955877106382084923811939616717594544890204043608747206243580833788667399645567030886628037981876015480398816021856453095782941312171529646063556745008096090394095481188974597575974357812917533070140182852167573817219157371373981201715346024982058179378637175867974936648597282427135795359118604168770740265073954929868699517652054813173722352802003018033110062284630409036239013211881046524230032134958250052086884368148963555066247335467919372969249215797725973471516005929730449899318924829356360083165457914451745639779823036954066383723505456219216949560273473550270887440021795694617277041255974511988988966942047122862502712678514386533609596217820128324825959154051427205198210486597924614068417957887500255981782378337558061256643209146245941456648648923230877756870325172012505851699155040431214865021057767617265317403774690215733882020763011985816296629681469633706692596061153407324940385104354944241360344035739905609821903300479360357851656182902103332108322638610861965740465277293147319320127390638867209187466251684620386623522258330857285914929418651898749231086278212439106128243474759790256256984249601734675290445546822329486087333174832743752567046146144789741226185588062681293967049616101933933057190533636893827717098071422557268589047039597365868809802759904921808915126170489001651043526309281849876959389337572677979218878779984289717299286949167786270650007407972008767843528400215797506905193217703779657857348783282880741278397393093730115668567754305278148439087740367315116554781160308887748523063341169178843730417035161135530269007403545702637914126346461944626989339451479636589513598635373549606435594678710396547689957884329584209807298107176541097905500278409722659594172963281946759921809948011015838727856494122252796804889495853678366865203618636384368366558574111601253528131924810175325228226690694344032677974409466246987252487739382262970996914092189960299337596671613127231037513546404205572699587709791838153679140056752442617900924246893379740758522361396326721064510038057978859600337848240681123938547669280635797432980973928889206674043040470099954928147141308020455000194426624318326790005134057370786557973536636088861408230542921443430562937075728725964487518756528731065820765088753016702176156607118649339793802520733545308265355488008438482641609930830928299145165770890272009540366339611876988878513978181824237594101230347938866292122983454442547408884466136820786737465352975293257650024278964328133850415878539505170332297737576034162089647716636682050906579661463098028729074918462110545439790521357360206912581337605625573412728405284547927271972015892139584445492837387615167584399500824179995548288566352821887379596717962951649786386095490932327662013837785145520488914659853095156808614115405304644978505770802678181210619273250543173641155797619092646261176217205960478476130042999888467310792556145521746664415347341969945466788609877467905190801628349415777161049669753605846050824381533237851504426798143905765695750736710537085984401245157643261619793137266374269501551702198473158796570288779638702197181429087069635731319161354042735979691364762729098770840231780777767307224486426180679931007768110424705893335999324012724167805995537413580456324744949986951100199890491073135430036088887116140504186832887408661998839318513923465146604358025907782504798323058635495353722992885518611524279372841196191414396088674498038281141738947591899266166377205021455936784526026869737237868634336616993214506509993892322056077533942881324098486304400935296979418973105200831721100404356991609553012545880897925076940402183545206160894394573310540626723013340720281242466573488662447759043821494360206557145777391468306575625427786658785341286516092822139835151797694527793762008511486828868779043118917667402902173457631149965567470742774194784549871770701046483566682358045222008799366266639222381356227268060654506740498794349411048432145587879059412341630923252127409705599675102238780260825289559852323235048735885302016809275849163556832178947132260887123085090019386749077388413538849710051629071719349880462779483082341960382143841094791130382209810525376000647934674937887357103888213254783313254393113441535819158278683381625276542580437163046505927345694984056899928947387366391343478280303003261523212193328969998843664077973364065259346843815100206029016528879615269861753991113942667687126069911096552111340880641648221586426748503918808785846104880189446527225331052719360992182979748231443720320720793302924964635240569480325599795030150228888367832861811055785811910512386736709359415737239906549710158534525938867985447002695099072565268103762035836380479209456166628112532779559746091358472481392058879657546543241775413601529967422285910301993131761801375227916183063557284896397566509199228152576671254779969945867366127912520602145275565152166163211072473053617328226695139975152863066844773834209549840514203657121508692690900352355176824873027402843954004299205927375305489617419725837167686075878657013876894369981886982290387203009499598444073525589609499973037331874535338560852612350147733193317425222465156891363976204448981673689585922438356911991305493447041059767567210792370358516511312417044000086240308315260339224549996005136941645637473533590424408727298478154970352275004862741825125495979620150438300059479061185936438742828487558893613248070384066646286950438126066332457647370461399660265378098803654802202775240811116081057134351027312581227873176865826181236107409541200632399377024520600948217734743851697767947457028828292945015357519045963373724412752154141361186541833466032927279548799683316022190806239124338619723706238729541435842952929802514775123045581150169691401139295014966478545576982909202856089992861146484806527564450275004257794468601042154639519054158369489179782445348339641468950604096131349658392001792344213542326488044792793558665800973956010674833982048527363353197301105022853058255325001082856149487085175710603286617086487296949760657169511513054868404717600980983909453344039064436888945402909578875068345633394925719811612861131340054697730156572192233156973216293817505634508423985568824875262011295890399645687349617182601436299858823045570393370494284805630215008355672410342612115255584543193769219921716338557686875264265861832614874883238792143205650143793786956533608127266157734767789664768146578137035752113572000335163383361078439104900203790627483853874499691105443361011475549071336539884159295622150508271981883620172060085686845576511574884730170374269454541583749678380897259265081850443795537210135073937556537298470944565680827311212794755876701811867008673284222369616376302170799249655763474064995689849045078182035348782291431753255501428250555908792139065447849922433781146770083033596186366515068529662226579094968708638526619886059103549686583517890603743620595326477796511296148738161922100848987507680961342573104584941466245832567853453081447480586583967129603208516380622259534178871761458641515848288464999685450022477745235656480394355907549851156476959588672907924498567140001206906965400762892106188937652972028561006427459637926418558116298271210075861446314959395001605673223962352121393857799025023344429254676558963585551455292429137713430044684179489239124526987576515259289335269977846293130234349121303255096678658713563912675821978767303287832769293627226858720176631423967236495776403951608972038183362752528658222798914604712401718788279111084294189327936457144479711203205519428231509817966870086275540557912467534653701504596040558109858540006388411824653483066394745796744722880860059129852780862417142913641924466795203700500926790720604911764077161975422833997505199928068982269665046489511467213454323379803044215713115400130132415342722377239435311174128988511811275283762455115438040618171169025987997849550115677890344114026326713982358008153889012196483877973363401717761779874082734111017007023846728754955604233977352914193709500792426411611651946591716884125115198978822710844888851811851309482521251244408783164378486225728342313703843660045118067429091263709586059282702748228061339610314287561927537796978246947426269246223428655388307631954737616681810309432825576981423574665479063454875316794282135161450448703964812000297849209335656552192109616253391719716706388621076487706449524462619025087784850817521423821534924673220025368442910197218541810663797807551254031906929941742601639765678037786444597176579274814194035891579389472101693494368661796529555074658142530112958153272673769486117969188346465115183280989683962167647836383462559885721676317687326215253234373276787202623801513785656724862094337495178835949859400091671183602570532792805436071018711051067320051403386740687816685019857792841305501328659434974641112303306671049135649013112503331866851937305484337211840626427417109948250722197032476731747868063897889109616477272017349250851256159127185756576088549400144104391877785149962973583953331013178856786227282261200148113799438572610800395282878481955061361234066575845142764634328920521691633372816471535942022613334578777796646903139790891271304538529956613787588995815701949368377391895831603100154981708024597665838099622299790231254870655699319266363368313260105776317732497865769448768414613961984509009282750157268642597670016217438036854113943880693626392521940856634493111438007007708778670960934685054643930900979179617488280902701531853663205952767303806415665042997167456524784156300121503448469585470366199758180550346933702829854414172900514391309292226311897128086287566729461849893012725171567190033602835289632892268818638376574863797893597064107230674104566650253627927640694197470132407036899822424023732061588795960219403979468418371306659095577904087011902233155624284522291448099436076016349855091322359438260140941265115771226786949005272747544486311188584074843734665032284679734331134797297370626882709206029749642765310832727108269317248608766628187900190123262890073852336866213985979924506600213813717978083585608239066317160410905004679616849970175178573304448222125669064363394121671907547312900145711772209823852136359911414884193272980748102631068853348681657411576777596463468375446358461480303565802392450398775129801656847616694265177486763972968018141134426204936878547918277842415854473608264634053160807516496466442112282247265922805368984917471277321704826006815413571258672223628353393423592290161706698808160555607907855077804405294827019163293200733417016323511356216982398973927197109470672131346169626211384711729527204990469498206141299170399324576583074292561528839167677384109590358409463437616778351036767735257389826885695689769148996765476718455256115173593877994423083616763098451696571391681606574875474387301825689759000777061089903861898253065255380279737020555791278274195473965431803280135708997832169237665418453134403583102836106520640374059751957889975333672351837444240172450567795745600330993163154909219678474304283436032411473580341515960405355314153989170369386874391177931000978011627772650656623576758662463718214945297628184144173865443906546268122510967859073265557544400996299310660154105377644365041689204257747246727896730886628628880204910758029230787184667321590445789774024435730650648967618336350107788667530748181131479423677942242665745602867230256804267900542743514696423461878697580305284795194929948012396684331397423396071811139334932810442228887519725632677144693639955732354098945841336955878738342058337518643767700508014499516126669571815826327857694086244923543168973689236807565839322972262449568937911569459723921262769366581815302295882679108588638331049553104257068567106574787905740913429812773926316781915199833103694088799509503122457059062714854553570953352673537274414879589442773617422927730643735931698620341262505464174608726290794380566334800646931524700034346209862735846221119582590638663019358631225906192580979559117916628176558145829462906675986560638727310818731578863956062307854070098951603841634275993348473015099208146449199871330906024398226567923624188386750624476750001255079284294148400937137029272865266149215160888665775700658892173915591832781742090509019660918723099682956073546115112864794680528954028067032665081748401382157166204654807885408761492663144154152015535668857067544734979468899460594242014814385351460938007186231715651873515625208713206715683846468717690357178494045260731148719181119966967599923732402887472439303119678071445964940927637694705696004380527330727326414264488049575444701496104857686965372635862548182699264736767107796361372101055406735262631416455634648977228510990621496428764055980130354036253113376239220402237173889351005034468127743289335211631648914036379149688346105278964058074480553231645787775720464979856211976441871985673225964849045786568830901902004870286788107719566848191504446570024428566675716715760028177588673907784965243287547693404491330302024552991141968434443089522222828026401615013894478562562994997326752754365731047163435438815599829712549434846129711898297176134365932345081402567718205482453731645896002101600328370718787022820518169203120347407239901206731389138883854647677417886741701873597174647428111146948490837395737535668234078575816584638968741253835654492646868379723102788991202791676013982019056511051852106494883444874533383298867175647760820169754144704067412716911692392160470470523438191279870207110128539132052681065572115855713509803284470911448954210335990264455051387666310571850722255876870085645238666656669685982264168481072880441760739791359215435299027630085322712272661857499182501933504571412614404015561557503702404211915569451183247735931454800896546894809757006623029087150983811521311326525728476365990570000216126536881650321170394502453193227291494257615904437821699561124263664780185375598302948143221264236057712688613482001296833955256852157248237173345433056755108781270360122685336987466969041140806900529304747934521374832601855126463539503926308496389721214389060348692720987014303158918170492516765498272496821245349914210079553569727643662158800962507409568857763181048461244517482752786257770508072876266170196428311610931619463923852062313625385982445742870363975772282213208795963638023238244541958885019574752244498659219256664749064505264602785122002401435605276765154487341567052414615613269463227315766167392249027931010129729610657275114718356638866924806007493173345622631877615449097828923816091177775143911104599811838770418938825952811554223068459667086172872282287691824396997962182283969582978252662630978865607901055538018028968653003883958405438446297699641787580096441827684521880602278523558866303302399137611252016970818570456167785993482450761013184653389393480968887620365770347436289670992185182699644686958943380897986538443660628135189623047922278012139200653550634010616741763389546712112251177549530135293323323260930792416920343607667625816448926413479078324271080032821608604112154789814608770304254170405283126063255137313360982552924921923610413160987626582780769492016739465030378469895289170532598619163952129853524438695694618926962266010543024561944359635882141053857411271255033841538613975849979041502576085863152308701255948712651515947324381564657553278765542043827363513151381907426164501858991254942553804219378956377113233217989698579982358653264189278413900183100356383111141197969871255970781730780554019350520964314583629420034234665466590522901169213631341511361891440818064916784435777927411938204926693961268078035160485604496735622751770534549945954059902237682539831374867450051735274761912630684668004077629658852257345424205323236563103277436785695486832810947274679494069508696410277092800731858768768250791907914819730499732022936923095076313084486048013616001076100973678292321825199778486611726904295697218461048876873295942648360376874130726856345740498460826018549907201605563264384267379219302162802594725733021381706164217287698061478378618314055413167969563434848785238700423400774888807428850561000908984531880363911617194523005113618094576258702522382380062925819118280623496316082621439161837675561314273865609601099407790017222545198896960614062527079196004135675544858762486565154435918354824195026207327750774797981384024016684045561268305270234390306143039232575374769854390188455929217167074710149921983343299567145928717077492888974598011028253533596498695275133376372480450495773393822124303098514892778969781598065332013371331737312311226680026595717285466647806010133823366082316077420661568896918598189678509108031762921552028000153585258524846344444356269327290616752594859586993020316294806539533717574597699444106488438437156752978885159743282981106579404870921335096900942365592375557145243268878708116734834482510207090858199105457656187957835175288638412310662703178837839137177287973069705514816739955743339924318216933915618769211711729290939443580569233647241694537133271652964024466991678686409098987071308569749240878223329086413677712634830425543229167855746387852750049284827053294113939642166051123067896370207182295491746868431143775870448734649473881880654891295452751902327625158281785066494029505102432048170392524954501749323207837542463967306505367245919857165216486127732943911267359043652545722677329399116813880304375242825096060173749791679908746018048511305666904562831299840494654451433492518820290043565318815112376413648498463741021294755413002880431784345038962590364213793336953451801117252940889107262866569706665565774269755910791687241118203990964566882793143015087177242039781918848835472104810770482627503903157180137658430278994683808498934181422888798939295739605730492252337118732382440486054016235245229916543468625501706010296719451092441874496303303732107917193882000119259604432447834952506362314369599344042008478098026720164705358665564931652950518110687987408615235482798826198062613861736090861794757620614285246274302564663234959121945081801061115037825787350209635380144792257435543186972674231691648508796794779810189756299608035381683194837524312416134035768247425880017791822231512508722434344255104303433056511238053987382322084103498150549493789082129802485517223869906031874569513198357110103242537059653051666462608438256489376609763448810560396064078396966474028574494258715645148679482528447247574065045223799292525346971755483938919012325245037097716245574605963109618334528031143408114644720912589574399757905492940832324948873197139719939536437967185319937239744930998312667678664780576976089338313902865991721865294123334121325731324779703056338668739742179794687070112264021856838443948642044129069597501766166411861983555023412256387441651884116380806010536351766328542790631311297047044265423557733821886491162788822592937436244291645731480468459497282999359737521796542009140816815432622959921485827806083359577644230644653089684615861632215235902356746477359509073461314695189770541533475180298924703173646011123895216771923056125185797410355279627746313681766962613798580089661303178572788786643008638107890434191267374965967576880433391133448722124645548767958866858861007957382296232395533189372380418368673925657771670540812433246954404433633828679010745062468680603658121722357993639431926353986100480625592985865430107382173124289303047544713447025650320573391918637314827005547095014613948569126364946921725648269076222752414766104409595550770045010570321788002663088061099451024180747411190905697018834978654737947354283529561840333000408361275089392295455172927934844997329240099976793689312327116786378467166143851985591418860097373553290181369714892978351397856977547426194409997449899784399483307827503497699930203345915214461659048587963877527932004165025202411398838281164218966748143451794718654187540915824928491331372609021988239846437957591550574176920753531930727223849886188731928231346663346323858531705148730602399688623656391931094095366143892441420553716454221927753407045893710456963712833929344864377407916171655967400903998643524822996052158896126072780503829305713304487015637844685109334165000260505936737396708194141127640938490161624767033317327435991898884136473684880400999275723462849363089532813203369527433140305244355066335912085735845627145927407706818318957974700440828356841498237978611121102350939872185930317474673568288175505292957801761740588847246317796615253479405745779682422675869273109748480417202800941597350115017126554736810950026084545676198786796662179510506330646888858470278740529989174458255787786781148585312245263600865840666277483097051614116237398623648043016570051130629109025071054382719531991558875910986356175381718389212791806914975433532592858368341836622914677336315366842561403025701366985487735694238241080619936124205818455781157558363175579985326751271673503078330739431515463270799616063199342627252636584536210751768103183851250709736977477421425452355172455192594551433818724500336145153979117868588307202908950234978900265775778400570482956341953751694360626904595093879473795134198151292161710052186610856237079396273977717807934383450185081557349235676036594068820563031168396224224687938994913018677289984096573313956740914928271916136993847986511467856965013016253159157356814559576674292119070523253758718831040375098913839251953396712604434212830761171697310805008127234950316423047058730842452737370572574982383138549469608873839098396936342244648941925520859522276268883811210549465731560590390520799451302838424485312692921782881072933231256690645713077012641018423085010136283763317113653463737618423832514218762112436968864153505596434753426578007880148426582161847603900352852359992117113473753970055478807844852734930015038719493857358466098474564413093618766929388600374052993036644833577814389152916530544156385761494821676314244403211374611797752557356486514447365384147317330478962902521806405402839167797784291538622055123766060226151708630852643887525516804264556544376592169671456756185929221159371574084658876430679650680126475759576757156571854283475722028490544496490859870711608132785081508889357204960342340937753677205120553394884921496620750957384817794340789011712981514328063736624106607522256370938767899178696289644926291846546590016174354034794229659490807345491343221802942191499873504419421994860957947375734533296908317834960999287627992721486674979357654854503418134443758072089677909779914564207239355958649998668963409495932593846727403770774018415770801628462131354463063674938251540612776548109449815444693162016200403007370909480971852306864488805113413005479032659688309969895538186994482709013390702904985561435817317290645605695107428244495734217026296958224857112603444418119025606751684950132231795057270248736788831324293318285361296622813921212470052309386876755455898070552517336793064295314670368535756647924021715695684694344943594430955690053531830401165493057665435549737306407145343999689868485353688002590026449612207880522148310528655732185560730416125324237816015840669356323025961483597357032474315142362735984546803609500849037459852556605220803786837242568905278977044121543334200628612205151069112267857728887494174122274848365812128784761820152499336405686091610853440164539334041153808270839696008792436838808528813736709363343312626668431442077014827879320858270572359554639116295259229384765308827395600342610942754258040274957917860352870762196883172457891188387689336265354455325862705453897530268979566165890164089304199751447216078341610521844352818105327873968637303941367433026983850564835398346528262175138948333449580190702833065028486639329188229782008987743506148991907744749516938111556305497341560391787735872384865121209455094271152946157621374871339840455155817408110558852749272519227186786775707506759134726922542291852395208863936818762227336749922830549418106464442549255213455317749485922737442227620696955220855452658581729317600729178264470295587276619197535002709239061439937968683137184481618555101288835326014923107281287591877198208838445730631902611031738178871184806974359195587589771177023647021230709455525239996290225498548938983001022892066308094100351788739372257505491970410363460112273562442110296306669257667849092351056383843573115468263303105876003596754027416791384245481836725209339928075515255095992897197919369743987623905628586231370324812255768710988344787231245010706611532118641497844734359370897926378460985276426522232833267592121027168326466047954548261057380408063119450363281452923811992442447886891592779881520963537619494247345519273467907085787421493143460653510895891580032770954340574076988154385443716011272448592398345865132752932998976249187290353009104342460289467036306254516771108290960830181164955881445258797633104572445818154145098411233175519640652155771159816348211043463897239474089942646782963940310942839272291368853563011963535685722271554421287575644905565576654662605196603384633356935758091938929253575684036413181252606206314054416480143566243956558118468336749595976111173915321405506479087723834772507784630595675649930304800479220485531195180457203673613609524881674656756849042668222776430984057617395258967920012128156058180930480520004009207754651948218884087629320735929645707510052095186955924267723032138624212048635163323016253255406337846507631692632825542204343745167646824513782646966019179655058656526432007014140836277798873486789728414315959283042927260740911168002099031728662678885555692763483097019925820744991550118782779439378695481894427557372508964993561773613427810984316682239970837741881702839848717517900849309839651139330197628386077885495660336407114196893018319331645636707854561562463606846340073087345639912962443568916112559329491657018270946092958401685495985274037645307973973662756063223627050241623496070696470364968654175998192932860647598624312169915199405827817086706882767176011477509379601552265463857996791189144779452128957740520265483487773909917667648412972704618299383196034434719319870938554941710985884483948232362535127768639397801354315871620377691054873168898894985720650144274692349622914014663312081211266350172991021582477897841885927410048244818391392613064018751197538108885446036471827549937004795953305638590589407381361433315101698998315001110264831854498581333524445692728718122529395966658397947081562026407908658792042301358893012101300784223812131221001574624834499951532249701236888310877196164650064472639297066940124544348656877476305006769137828687805281556372809195179635908843592903184102493302135228489120196389879846457214546102750859357897668028685875592525343408020743721564542289974475500283169279883142150354666283184610107422529265307571780287667230291004949946402650834627010523676047531907891760920673132475109870487456262656685690565042016075652815206316656207033186626757803830936531569595344097175148990252124723533337243118293846802867955641010868526489736639003464317321670130270876302118676984743767887804951765474817912755790897409067829392242795409485682258094172392111979232768837381875331996725987657015646727592392339460950732123194252387313740277735299217907500564569325471831045717093176050597638544338237569623031948604699128786467225065643204797450412570906706705502885297913711382880187465702621949860585654624537437056709113408422837943241673080335161746948119202783790879179492149764428268890872134614187466576724681090174797580713139377043737721198159554446423316499572187025460770392268854039586519176370080467898929567883808738471151073524522583550203282532665055563549932320066054154877762339900196651509824293678454398676844239573450731045508390443558029367406212170472693404652915188981771986578352702945276686679967430022857588776664015681985275274741424154213480922057517403812837919797930749596595043635844355363777442874544374039453901961490234972881194483545392929883970746644454698890950217667093527235234828077519546453939893841923551646006043849477290301387242938993147357413864098706079677656411068544651003733535646583240399574967785742482194714800332215923104253092302186563832829691823099432133759085689403076984758788336038079247577071360327319520503913700463515339931715421753885158998482206727883208710821630858382283118350658441393066461812739804198423879582193412544043825262302844271430010380204712099799673931128085993050262587786350881164091114309321942226560570498924676387887723250157477344388541102694209197954398621240818774720008692792671851777342350192291288798137095630256386424518359827192595363505401273240159730732923474287858085735315592245723004977522777335361929375072869450437423692552646116529008528655800824690087462947932121500742243980186391971462541884970933021026407717507398584619752465842216139172652005263930757612257303800475318229905133023604066406711021256956147846091346831562234734000925449474539712012388373153702731497871321936789404564730263705236067125131065910240904632389989088924191031796590013751635747653896995080375933921308973243891964223141597946515747588897940108198403658424659115870750958951765110651212253338986854598725908446180016317828559486895920446174244053741888465669924217136184833389930622575725911789036250329752576789942888700772606449309410831982962136030911491740685672922554074737752072971367711846946910678583729455070502084558819736955382999464718665847719510812813078668192040772388970042775785959800111957883042197624165510236712506515259105146831943818312425306720531000798752244326487345412585257425514204598109468616055261725163209750139991250588542753475671419467752860441384195140814872459595422504633601116259263068021204651832343814083679725361625957337645709620893774317372544740568535558692085743145021660083321468398984187036479791459504769009648965901884677321601809307721874036927188051852274215974464181949073616354277503606070040587782242085921867563673173229863848947638372614075808352826790672946594310427361681153030043047651656411513730323580246479136531137192110372068487355729697660925341618968061469910848174083007266938807900911261211848432270555430974230703666364441458354663833549541772806144375642668298778789092713416912278737824236983623246145552674073715177222257037011002760228954848088935601488246117339612927196074231241559403784224973294509973522891517636652833175713121400748520913524137294681957180496462671808373702203221406537743659641760723293064799103744434985274700665274701628050697935045442365252650549527024804446954747736246848072223868141500399505570686051953392852973952676292003359117593632364594778031889661862669845162053428582893949160899154216495682487103051302029070799202792072356350209415804408292195917380620457159426414981521013000332571139076686718826016473029856850998944721045047039542457662767485458156146392537345996597422985108717639918995705365548189639786055051883998873852883404064282962818490860641329797896690209370057830887491268007519403526642638411399375476437283614261003524229701465734639760381151819267534721825464041283573367113475972184268875852892605664107782933095916314107346221885569720331620058368812091178438545360120264935703494702194271362060704442273120465359199409537631433145216047441316703151555346500943070662938208950493163036879728554756603548971425256936910495260670089515882255375321622758684526144211339435158597372572376507790513408052767887649575066071627112910264180288908551135924016790050007541097323763755777327618140877179282181713647150318428897332763879150858832610766626595372364984952207133196326032777471392818991650718225202628147424059675094443336582812797185859711349598644583635224839681351947692711542020418123091894232026264515014631610395885403250615692205619710337481963941971506596939997478492548568273937627481616739993547608260497652856067871455767185255192442922877693973477902841846099572225345957159074472810738699676976646023450157280019414976346891026178913128003690049439678440507429302839995135082038305378892569699750633828267943817589711030932516452763761445436181372642394233692766838532387594369989130050167234633368912978819409197056133385428054118862058464495190320964466372594164545110420140519101485047966705791708627733413460579920298554025725356882211385983351585424115846992556230220003555691631455257387647295221313692444211479993722663416019384200686125445685189131158852916893224429635400179555604489833385256862694578669116901451346118723398259961938654296385694182630750743262905839651764866639927438521508291965138956322827760888381480363611526714709410611817322693816069708570329718045905973883320984987280086203288277450105179573572202677502831337732222476138997985632406409543054346813752547531642719000016619909412161002965245322920014430557869081145695173336102538811718306854124144863647309158240644576212131890461677640492786180110718617965429311162479433608955414533840276921485117804707792459552131000279394774067439563408919537469465863041754855212679695167842448671752977069150595641336578464669509802733067250455355265325398345434167930167487885341117637689559553099324351266136632578614551722390114010394423726441182656660798284108595981054419338118919949850330592078698699753731085652443163559275111014534096097968807200997271933235032234851448274801856309633772973430896745708496192942253862654605992257406562648706572666686082324457850479634218775578757756855077385029031148465046045852651692357826116898514209005018534458307728975113731333607666204409768711962574292662047309630095461196037703588376532568322363142388386235764030487116705539119086058203174225659410457437345840219117439727600980167563265197585215750602371540060654647793437896864333983116519309299338190559919311656924451010583537658432173004255017960257464676871371308108162860372279534811922202893416754857664723561068785957816732765708005908393558094615382575118241024627356541548222441892094318030626259003554804258244858698574541594500996099843724562053190190874813913893061496367105615220117327085771087541932793965755125304221070675409666487438881332297921729764911638582783279786833711476807441895918560548671117841627237273705293180429994241495431606489027731949162411352298073705405969054283733754484091380202363538393255859861139818389800651072989218435491470639831088149939330106931638723253774062761131581485520793556601922668987558833361986067387956636067227665858322214056840707012885291006719621459755782776625191375578587419275749560487259521985554665361006888652019631453835681959256691248274604423317532376827347687203788910137283796483118795167018279923374124969687680550074509907043065361408768130112218986316157028046005562815920609333833253608049681308716811925206802760924089437321748912256790008331510883111326964701732180053344321629114431305826942420180554349195936686108921195463732307104102038233129456894023744601648101273767391085151248226649062883732435460244935836273267638992160448161476196345605664487664224258495153026410522289526763407966579254311545228043592294741269137153694767205916907889436759391458862172778019417871740023290105989853475217205783493636423369663897327934228453119633293417414308970580203113884870914004084184276811438582744775851555612762586373938596007424877252286716706960400421610940805666958443660373515093955248930148897055371528943517855337880643095737685233724267718014364131049860044143397516132394411373986380165042914115376613043440127053076762019682187551698957314130563075518074979120295862362847313690113815858102938037000134651707118571591766520971365208593544230560229221076371738688009128666263280980420616474656303318548077558252973410485878565801136815715946190012520239802884807193842905167824268842900134310409359265921291170567881253298475992008807855517353873033555606821663108061916423027628844419132314819930870694742495412570339454628223144675110669457803759176584550493197077607733827705068817397664205948243952132807747194923482641363018578284345170263534238463340246782786308396104601156026427091505529559967889043595243817258095158412241065935554531848975088238099158501289747027365287494640054544922482768798575654041192374788679849747768925943916151012239830828672372111350830278594455378437210922482849891078448363890047721861926488075501080532730149989193025844309229998564798351493923253860754681802750177469650749067377730566639400113969036883071371580161563773372713554173209482624180287750461679528375869868797154309177200596816732354962602030408599705341927196393784782225874218906418271278591024206496964483195801763260188700777847004622612045331642363512382215791304044736549987735240613324676893366378024517527189923480362995012085992909391915425603189146833454540956961625017669325286156653310713603498241364421219689528089773572790570594657006500837723051010038993236685306140527829795596064285025080532968169901260988885826091349685826259567424283601715085555780833579016165164862179155616413448168037036382484389051714455250062745413131527824705001214371963056976974286607683987365524705800174219681252508561870251506957163655630346157747415851193071502018612474732021874469800661525877780148571622637912006995637575722181349608203891075089949620827003642677127228255641719626160705095294167075315111742097495859242381401696060025049939572297735011183474236521870170186993417432039379410891211600007337507789715082182874466166532828981753246101662907095464764206026075951571256938062332701586267482113743497838291712880934016878535833793267235187836862147748374979255733565054439319208173296316255463028667241634349864713210124635614419172037519017587162588356229517082356073051513656880231225713956367446981002441603419358781320580726786705475255787829322466213630651989367336862311635818407391443936480188810987304892863210225412192668283051256632175156728474449869599907686407122858686735021890801276108725686765632952080265239451738194338969985247594999793910306201425901893806696386274919861927007730801614852944255112910937758623723428811444166160971127396725989315215896054303731413938270989521527649700442334384992564714702904401469717661628449850198009588153916178435668459720634078704886495586433205871424785080370177981941602812011983715013378821023182251712042365274356278786581465329617419812925850250493701411700304954815372442544485127023139216400197027884595633921379309405848816920665993887000421664668939806471684975476738633852352668781123183832446374902443791733287094341933771228513688354973603846103996418880293997653648034982302952882937506227813737042006982815461464771800813987070203280706090363787233710181682314522095009220020265442395349209267598317711650486855448078048032766770963452153256517983405231899972259421892783193376005051519325457397603987956487291620958689125324448393258836350137143678187487061332474467517385388194578658585895625686255050351296863407047919691217859048085706579897092292103099484738847210481780874280600104487577961776498891544598044332083242274703243629445850892616283767102197043896309129043892476715787288730443714448859901874406084987488416194166334967306174862546582110400573710229988758925696589943072059645025845866813018718326293597277112390383609356889723301308358165953806391138215506052187362988031939486794739243381661223053225548078892689823928679675756173082334601824052980978429494687513137762556542510300574776094600704497778954494330264489140804779988474040916338241835722208917752210624099592319304573424187946849539049559982341841427983658062335639710034415055356150278335851354870320410591850695525264838293792872333028566698754216279727212188859831224105935316090570134326902362598143366729391483624902118343209019807666638277306907565221220909042228429754431197544468518276076618638963811177909819083809666559654349615526964889644305495908715306307549975979547348274653539666661708288212903064738683673569452079821948938342396309891555668390685632613851830973358467584097916549803349414058919479080889980046512894113207250003325862007322604482818379801473291113230521179107757274800059447463994498132319148551810235230089763416542909075985907121101429033821340628873354836507276546615412432419489606400977567316269481217172986336576861543470051160408065017117821149475314676532082434408424142829344534999791311942875680763627469926401631884402479348032661600910939938288786614581684652205841018793219571232165145288867049127891439072416326216302357546719538758710106236174565028131419528091853534818745166079523138067666271258871592492815128271384571404084287191911199755288231425570139602124524976106962858200158728298342432760356816941587104384624638961512645096107096775517029078029584871105626308013382959926919980865312669436986403204639162134414654671488632232179603869918457100141832405892901969092744782069370547890592598817347838327802126294477548076907749211448356924691554376693242965592759914789551162174696923616743488162930689168978395734538749035173020831526469846478604514875468038664255347089577389784294004902264467837568358525883279154912480071614191226988515227949665145168923434313818647046827081843368498176139884551976247203440257064575035679178412830528482057694341271164911666385971438708184709131668190926689205071662827838327142294040297996426608751396833274457711184109019933150147412764229694279209950208002347619981577120853487966800694527384644741266782273530588248549566094260174287275354589639700620477002391165112388661125490430879585991887817252171936800463251600325017143522896978464997536278696267971333236908246923469319093413386869989084619458820536286117793170495800042744620641913005671142247094135428627257126192458397378189637081827697867687667767690088127771578418401409889211435674184252205965908488161961577136661401327664762019947145967269825898409140592846013809641648914403051508158525670084737093252557351691890223508010021180814352476248749320957139889372229899702404160041469371868350024819369732149771979036971544269214801312768227307015947550479156435241760581566074729273676551298131451440142586137440124067512266309401606607665958809531750316656652938186291147428450214741082150040713575872437149567162058245913499965740866487716292892115180000953105620944348022893585513503139415844700710153422929749399595079687610398538163311054074908595512041379349840913764406295129081051756256980038530717396734083958200123455782232459559327295556285981574289056544030291896577420261501877518938905401127349472497932121221435338723685251881532246492315108987041564775050481093753615544337626616296842015717081534738402962660258321917890254654768906229354188192990697497853793043094859486997058445084052270689294080969459238605927148599654924845840526396068678794025835367842193445256594114113530149525176066009648799979313004575351782257524451180365992020058554435582361241931303128192203521300665818599153048989167580845619330872147910273919224234690159331340335653112346049751735870585842844431845522218481920720809580741506855813253944552922370533990912486959150249523501389780350460363708836507693562328028933166815013972415887462115915110487405096782018641698204639858470890050776647968644250005813029471952528669563138935017644794503068788980167149181500531520747656916249610098061895414996015597983231963323819960654353812427230758698387423887440304666914882582007679248684224958766417137931494388769339079806288647441397318414975110044666508658614321896432068014279486095177824786311930105636024766795291544769669142767560932080193724624132213623556936394151620020813447542921263805041119137238140875506210579455268542296258959854332251329953738913452552251182062809066639595013663350681601246403995977316831781687908604901441966423725805997508851014348327766316351269031472186890098779478647813553728999451093880125744834864665422881825344777859189858207091657619167605946339456182062887813026284522271752799169040262580238584769585883515823238843291489987456045626617628898405418526899772280260322601056073007269568074854558746552347748915383758651813623057860919305950189620981835438624970002453287404084743145449733340592352624931485568634480921482279596209375426661964021735172864645323226320009525121028477194536582596042572119356595801127823728357483803039245146297080490118004846616041357683402751144211832494950813553183357670386189343228176097055306605186146601428158332766350139940515980304588800801965573214640555698422621702140249150692001423822139259780852306845199753943755502097911105279230533884034365801796599659124523070321146613522442631312012382494611106118891012717777901697241128304050159826200070136724461071724546127412278308739064020518203177960466872746819718616312830171297047032736808981892025733047626683892791809193154119425230254088653881008525161971847366590197066651799221590813624347304562532866120475223901092792329565528105134216726185423180782516517035958886744121495755428080268146230892248587904095153265448566413898214956807382388059693799675615910502818840937253997401336648425722639230610819768542322733673725578518898866236645532101208508868570109383018675009441157895791694483602268669737206154649310562043573517058953225590387206746052232905901782665431093862874652207942877103398380897724974323030674571909827683236454429573536274595176367283675335883710042442791361422765983431095917512588526054369416268999597121548752111989379366908230157996004630451626395874588955321196369989851373987395284899668876146467484093919138954752957717356012462796536396248545118169707285229717181934450663173868670328729147728508349667118744763656269857804273118335109872406926344343487637065870012280161591905828924314464156761204625777070905294172432237476104395551431813141469026170669101511012792055369006401421860165126960682683490725370765584880110217776046464680270535684372974906916910763493603597295445645211086405198934512586774894999079148456103580069825648095391544031094530385700956597332786128545815744442015529573574965482741997187464316513227792132350896881876083893375834652701494088962036758800740794218859888467140013834728625354093470057090565401280604122968343073434237460914595376790798536459224409034803771656288020448726275662209841869587481138461657127731383005037397372176353396270081987573554351797374184743343755684133585826438214736217421344449442851796172176980695276631549709451992894249953727286858850488182484454206591164736717918172433589219222177645634717998781006165021409537320912702701820596595373916329835217412764328775116468609435050637520811475877400449530884521279230046510906520576474160011086914459729915508970654992968371224161544342470457497740498946461048467288207373210379456049364296266695992322106585725118103615684230399669879125605345344083077803429424729363003932939649764996580404526319035486331037791109561809492032667614881546958528811220124915841494707454001517523975685292193874235537640494154617460733834820845213894454804131218349673766333830369047483254494223388974158985259581402271809308974942626215837530965904883502371754471214456215006107359536662198867326985314630800303476131215144586651999756207285611138016245249311104908722208576654185670441278414319605693014897433245876732432123679147030860199070266004626446213089504157695538963121567311738641633735163862748774902731475913599157806338490603255057009439559735825442010399831505283357997634402035844112662995183282297342307518419049911818450308495667147840837862058967879917035748784218470569464872162135569433449396560645927435491091762412737096699078463723389486921003293832791259233342455302984069239250374503423315570451604306309511815704228096171706155934981158697375602807289494897839826183346661065458129806325061740942170257752380796764421969374544098718660944345313588050148242263553566996264841152753980508576870175619831847966856535351201946625365546537755053415136127463158249040173591719096559897570095805299188425049077822489139821366835579294033129340931513688049534667799721873333863163081906276484987022372505967463062137625310682659688195925729789501497610395292571301537951030326411293217784551782677586240074371004556399691175536817469434590223527984924444867487053308422199378591380925757325915022136578181639945634862543199906561902255961743720574141676439187336465751127903508624426917587371247796849434280196435991210819696160134489036510604473556592260442263064234303548074426097045046415433066592134036412726085174447608572384272120697930404831652700251466814954130485914499455598212564794854785038968974245237650627194338814771705380990326145751491592886934228610983170432839968457694854558219810789429432111208989454243727226850273847165982362018468661002635106521158514637452144961342917520532568818396638708502414794508140059126823175198857545359445253058301021153983221051811326874673873956561249072450205352937305418961666309376820124011055079977375258128421836235466101100991653410170077349211668805362926196152817648397731840195912138315125708163208023256050198618349766133542350550799978516811048014413219882506531950419926405304551876455856547755626460951049460880947853111952222479610777055237891532806971974409081059146902672320816058914236129899944676359632013694535167245530638557157598918470255628433698172266477495586389463332924113166937897174674184906656853938562459832949438636477076814567871178451658319429024796838574535758839450927247908500384264858626926351846683469970528043045669048017774570050886757583286815510826458413603287291101016460687233734328282374611318576672320321269902288372091453423186712257214968534823594520345363373565909776717811463832661480308961244932020860115267526673409132449581097721519926074406909952036939393154255342984890665164115925369008486262086776408172468824819910896827081810203562728943795676765493833816230285573309039870163622861357617037156128147240269459866158899431370723621380484894838840198723349333742796165497896117868671481550438250499541653536451628825045431482669116589520204151262459279787959524565234906204294655400549010451621454789456769480794454214083073449490939935227019981249707349326162916173575820861572180572904074593320805302873664331623657270907341663845924669301231778259083615210026727951704898727128428940062109047859430782786330528556234171401877428348573487438715854850343062798091062501625517503077046209694363008370806048722686224306626569965183787699112237851650942853873375599579229328927865279886206414573968584105351417405124060050176420146833251466261765641954947085124082736458129549926503474010892360877807308068414595269463649022251597995197074947986846250231284480038607542169598041207899829573808125304564178633468566495126856544127011599413940765687581561495333645979943307672996442236941193508072945953215521936711325828540717964191052804902353332733270099831333800354850335852756118273074494547960091239408579229891901277484656658130653757496956326856761359194260504950389635725626744567707928232600792673430620936121344334396375532086795770738683691907986953534964928047338377515131472422522136294522864927598953811546593331158041564460433238584305257323349168863217224161057292658500582602045661256176760516459558307640607297346102226237495246958688404082031313840964789446879609482214668053963958353370183003936843904927406325691927854597489371322057727611563647391411875228987347735679202564811291116043098961563059485754558300007623065309807851771711149516991566618941438165651287194836689260845704336771350898726093542793027717396717453621172722322870244664855108686522877327764299304615065181612768894244820253754692578334389512375741084669070701038633389562301980660809335402748175215011353621315156173896985557001028257015627536724013666192084490195223706202062406989727016448315934768465445139449144504268535007244688617907563318221035536637285705447460216575507212595209381823585133960178709177830203762784773358355029768266149128530335264154809573715878299158463534281326252959093843116226812096361082404064349945892653548542237723449896894993856736046217094640660469560465033870130300579532860372780225455878294636052572693689894130098705572332469467155722585337478256267287512795351009724386645466708179272537092930251588980485607026775251438631718961459686406394505767765280357300701638823676767279532637562595833021249504214983095417412891936423017852840236318164687924551881782173623469474156213618185379326588330035202260033465900570433078342963659599001537200169738805720278770828515042078817751847388437034544840560396047740263715709458245301708850399525844690619007126246322594540482488177760580388529780327521628193533566343967168422022706272497406685287653655745600848487950733796783830429380419881107576135865077783344101635469134622749659288834433360034731587038985087980416465505022058281043196987818782227081334497740594032034206028328925221830818645039348704450110593556069428717318661605222961122569611626758890276810811998146563034200157714062671392989771259327317221000550936235573043239943629611791719801153921675940993121709445541628105186780316088469817380367732659840201590299439297416271883132143095585435836075657627354029052875851583924760706870213965538940517108888915686684292594702489377673078862518824613224408914742187915475525953026873630434484488951487450214040954532774743482525169821924351987401830269449348229370617078465188331149507608095566916043559736983839193351936932570696972915718069952198816453800863920398159319738111626319717437742726198476520547229816110722076638713133534943767594210310513586048080995540344577312033267540974430237212117587648872765774151849319672995984889438642704300770104180302438418015184822211082552766116814289623875176999519335263252578823243506354190677237440871504558038408244826525456101291146596636575284642632055455531888752211655184443546960511790222452469713393482216467588736130524853041180559277189762324676161985607137722929590521474203432041207278023758228274240757915369178426124302519140054511227540589319422285198537125744903008184338106346075720482734340417117290849898320224789165946964620156690345700485247083777413890176944826718737199695301569523784925233413578894036065274329670420345945635372215101805814650523249458128035597732558965126303489978926270618375908920706673003218529157578815508151974413525235710980350960794316164867427882985225363955201623731243736133891513119214059222913592947019638023574688102256566601883381941973670763781731922444572645352851859465655500396126363704260599491131604384596887472216824524904805892558489993527452280063361959083941972581534905742365804192044363012275618925100217729997009590235590822469043767320880168273435566082748909352954958636653594487679910755164694710180009806463253108867171649359462910856741487054949957428431848612841930724040412353040608168617873679690816246448314893786180626502695850761234017563125923832082552868874200716815141108066489397372582038537449640276850579638657578028699610026382786729400583135395921627835868858023335358456173248569860088066223035331565264583013059682708775291065620833080346127128786058553260291763184827309681211058018181529406533735745113922104554759961903619603523716899689456035167677782418280411785803034034348797849622177205908482569515024633655645735894671614547436055158276134610637518407975131324754174786987794363903313014448796152246336222259179828352001253955624275106778163283193710481476116986441643078564444950781142856858932114190914099878068471676569471702278921253578611351555115841880307689955207038385276810394165842499911863953407419411291664478156285989921123494885040989052567201229857541632677207469396793315509755974662857652235192980108007906205672690502728299788105344890208645147031178226007019729440467530780736103423622201618981860426600061977022279698956153169073813505269188542063830971533216151528486120689060881014578183478041736704286009202533528100914680546948685494608425021205934711671461677426714189744686021355900520763814937248229301496411489091142764095435799637931092086096634618150106123472342380535777428876802099491037312547109269510303173034230446816270711114248165002173914954859960865230995626667517363254123721172996594781498171095926125207308604792239111391560395106069831000540581180468204836639771637313638627704216179208032324555251839092498100145364433106747981785030922713400271110973361644756491184035171080676902451709900951715175967528576370597503384333636231621051637288273592093073325848321283284645980618776637904417703999524904478296000232019597898880211080896702101996945035625283851100729103196736164781501124180022298967001912925221345373916892355880854735262971511438765073071975502329794050859278214440552298642620096228114260831803044567257062454696706774331175969159272490421132733651665951884766323863844670143418849666451816494862883089908936598947117728156054524742228396563739753802680438835283281694800521019778328905825590802144148772986337992446045051827850014089971585369836970904754100051517929708720203288152922842931627879137040375142175886929135277661096553676514451982764817617651155446188282848028177968512807664779544495292815580167093757103754224324619360228118301279621608359323333636729591499393080117113817601911027726292287313449142016037694198456211141724736997842263035936816837609218983026746506494148874354736187605746447632420651002389305395539485805486071701181160694858345237586028274564980856420470374577603131144409853308890304508342048803844746019917157469434194743373561326442121993150344737050113416711279207127077969448385929737409354692714160567077164969864911436689335779336813261536962539665171685255621323166699876386823065437615977533767027007226412503932158190905544061941229668270803409223513556483945026497457427582176790708825297980098086643355408814857043347965933133513871108728529683248426233581953804237694915807579296286816893067100470183026150090512828696386811300555247332233256520963070603401664018216669062378360931528483156838569931058911270682739429522747951282296664512937915526408812880660756403699473261161194075250503603970095629671936936062240309751453450439599322015169716108584318771839162217051297388431704946559287436200540376166335922617016859514478778312901269147418223364528891483515918103304754989379958196437772506432860145662272586557639089524184002823307782214587481205736427783214582204796044550491323323081825834728847199852866862064815139356553771360736112475422282775352611071188171911653810911851987773265461103865009951195411304520382535263438893570528660065489196799975396434906626979014602477681030091100585180084089385622756776457641396302857310834680489869262393889275620879600977622863615574858932312893442285894108038993108022705786719508906387137924728051082457391181482135947699917370850854613024586934344646122477161672148332300591505066112708564088661823734610645079496190380046349042868771063022725630635331154831177673624974460412564467712571491261852404207670890947668230834120732624058546575490107290310886900644742583244761958411957667093770026921757574041558517881284899397989869207222154973216488993922628982320609505191613792002416046144138881519690891478235418283378666666706876262393006184061287383706740835245342584975970419037209819983155681016696225804674717809224822175059016938630594900276465507196226714099909909858928464719095359141701117518551728313635706289982391831364314745464604183861785055534562615174884369220585487337828092847982571153736204309041028608073667007261984543871250744842795925535023557047200558353352586246545962778666031415618336821346144406222919045510964626839229206708951726909110969046018747826223902691239145411412431704290614702732716398830241803961924496635481094050441316324674977639317157716331523926886576303677441270794549523288398290419412094647483992363968434673867466403440570679794111687710921245934340888727249149441431852407844835398539227250173210719242264128527271671393302920932824913823275225911087494937288503101254074345930730749302724395438608876947000163800449592654419671720717114525895944075666862294612238053357396815673742700636728329599758697009799232156217429267357018048823719895579581160281403187375153384435384943838669569762601634140583992401379331077875240304685455435208984676793868368779374677122361536645256139072170861478564265720043708392123743361253033640965403895778575303061439034463782660271734169806301871256596009276941331707923885494928889493513887397540796909418338723198879044300100200307581220964054922380001896580002198168410845649503951650462097562228812343212860006115835142432824724288195673864082428986000873864831644112514391492094130474922353969241913630435575601568696258115800334603095974363053190918658918677242427243521994230869058822339452597453309126857761663560429399789039857722743649118817565520131870837990927285183500360302469495169900703184143863463394983728275498453224240746203997152989430074610294616491404783508335541732576851449219625796692140541621989058850646633893711497825343206785022817451013505198037396372886718524029958751047317114423099156062185133861351242002919650911606441702507344153505796330162552582334899092092179921517435713593229846582969257756960048526668421565775654836764777975818017529706475360888251498785858437573712759035976102719022053522874132228752689989167165251811065449928501148778833770409652474098689827691467990868931048811928884391768505219549900006289811540836668927533409408125445836397155268176863649154470859946066076401760343521550769798186363012420492693947361976459003711089849136824687927858197895640648563696052268354684016940343776529623585288409609135875714481724900111804844625761588676065446582908244751585586890728029395460421419798555897590277217292720943485275165181216371481628791048763905586459984652996209447362584080335963708309747056384008395957457827116513416564632135779492317659823145868383625672957055373357399231182706260532225246387106322903070275318797811451553701705488365685488706230450982421369704878738062387357447399763341566742122192108443155249494094652995862915603757055210911680978916524038595791757377681348902420056588016724803056442336419752120392723151028858878324601480933369591015808315341095275889084603881572101854281916670408031954174207193563333697899211932016075594334600314397884045527532435951848371645102712571825669953180111869010620275630082476617538513711482493548193297349118771267543741661736470370077418590617695202942793361035637012107477485763531796335474395186605418228532996734105780680114517474845519814256563810871284037592511170378687692362355766587863260918687743096636268605694842804720056652532854263525779253728692643754112019175806824426817967428480206007216092472334874561238059259281089612444289760792430588967682448060014780993375007270127720617495848008669810651147551638536918712809200763136408194205188607593164431477069995388069293066821628542183642452078753398744362223762779486613366759556531614474850313715005936883352792090866445338880780039477885813882574407904793267115544967025220220097592040178459862944091339180398950725742031180841306349866688254154119060026151388132538358299512965652801121097110355093615140402763718479778147262493361294734478637670839608931695878497859917346274375047568112921789304516416163806497123723787856824558066935800881395884151094344224361866176200968155410765900399075673433372481682490634540619668078639503381592613334006736781874544397936779563764775134859410598669094635969291824957001682542809411795370719723363564932292700143344527075545739009167565141381018643625803568960946834084010952093510886549421987118505004946550241911688963260080722847810293403300950255315740169494229470202123963333564279202780168338899491216724744877032915254801390109904612774791880488786089746469389768015383993641607377678326482307651504596551270647168157358388039065455591681329171474909652150538191386078310203846914645785356661007233113088385584633097561481168419135495255402745421138219061485452631538087356289678067162259437752943055802936787424894456107201652558789855283432982429874228914812214344976627304213657319293695330638103716045433641653116469829544960697551386332215798389446862332721909139002206650340941116051458880204307329811045237871241022011920914339720696070157043434825776304970355162451538332886536036947189185308378073597587150504228802870074007150429245080653459315134288220798458379162991679354531790866708179482354572557548589617932504092085283441669499458635647246597478572039311254905104818853783474590847097665563607924796687346499008498326731874927849342513309802338205912115327686735447986356277337975613571774875541173842005540492181295640882139739780724501185299793496705083570157256369845227954712752819071599911979904790225671551944162077581302409968834257997844641147219317159129083181751133106963302507196214849115117292492084720343345143575124912430869866628476400777081590651483819980919888047058374681468362014310499639668035151700412427431937044625095687024334110147685570491904359789315926956609788994803858847722763982630527517004572892638388953630628741851732721380449852338522464915057208915890040552051096223007151559585486213786892158759712301697951986530355023851422961339165639590446216635166199646975086238054438375486546112590199742274126287201659741013308731274030145806183275855579310838211252485146979715294755327415323689121156247546406408865726494953582525311755045099946869615986202964990154546937164882079307296791430514453772780973493234737517416267189566517119675127905323881329082658267433293570856266181919694407718878207661398399379775053277193924960564201244420518975646948761740117915009975156187811367197292956093339769142241951960336523626736356900066383070017663099681654667074620794588130891111737822931844615359106998308244410609940636408469278928888276119917912257738177743208034927417348082333933637853128014071350963845062304712019032683676700174750629043670727855002262746076905022534800394406421111483770027172601080330319309268552078448225212472164933994484472937705877128216510386962115831686366739505836026642803291619746266760475412199550721583949445465752954634631944111449707236313466644107363498428878619320168343347161021025616968970537988128312061852864218431992038160837296545374808268044145445803464170706532753915030989883099739630746909402335500679540740277888097221968689281839371077768833306135385595182526134581528947661776919835715705318610805778582389689996338727314264912625535730944353259936676878331214527212687308444767564964764245479592260738511971660507265172949358311696967482886551351091304469370792593512033729898912661760391547539986414783079389132946772948207040760138378475630443448242075992051214139480718896510652279877630327495002968870016043839740860547747736503404185269070905539229313568445300606740383846499180106804498040851286925976371792953338127664789766326790418150548898111090079776275542223876583418850960439439023922327741224524333773477378269673844509078022739793814021369118170214950261397479780812018166485653491804413409228233186814170262892547053193111177102597499398430671385908247599755052448515746998720288186933648209003374498456841056781799232744990105934458436758324562254674847528971101825201462254246774047035726975661985779612497634604218941520955778712159659917919426979273753948761729495720898025656766863555834210815093631102046631428631064816901057550542940254837827967255204526560045183126156864554683555754507632072000754451061811721092695136008798504249870428985328541723125955339910076119675265783047772792362764062936852705235693734239402656851551961026776649995204839622826990476856939837968066735902479968306120032743610080160294378826349395112576290996863502747775355672266455667063757601706964157025631827404825404052680754424697848784313832442339418507787548186972236549182681114805968590563280155928962656966846947677522461604624845508387930597315037945648766452204114605686018778078437772099469247258099291731473164074964644891102612990263971955174469088396612058186471936461693717007816071521323563732693511581879500029324177158612170852279243419943630336180673085360002218739543468364321282222190022659167469474026293048959645701387015291880748405117163367806185470250408039610962651132039472066293685662216178226644733231526584771995242528267940067534460103874613559435383249575857179323593290672230462564163411741017400894734507948355791549493672823395940537227816592047322355838522287945895989744147224046971992168090876487770945312480040240233489258898325078357312291320090467538289160373760365858758410299595265825249063369632960328826185494129205629953794567696575419401182977953277451825931654583280146992044290850447777196201090975023480846609776149322482879246034493182665334272515100784246967971980738970467475017070542532662842482594181871178442365113237275881363976301827958916015079794042391468720073965069610325252634407052570718481590432339062440327069332193864632451924266925212565909756725826714203415484356583232407491711126379521292750943516633562203460518646771606377144284324628000695871259230537763602646043157120403861085398454524943073643704278634644376512074374436472042791856556837126827526634143240985860638643299712542192462046705682552176934338339974172747824535310216077226984953995029753306278124314287876134749424229837021763427102627877663349749837223433995944203353887753238718600298722584451395190945231355906666637721848854297286195440401272323704586611355794553214744663321747814434486834314268686234192028616798410644587593596089214664139130560574457472139531745039467536701140346356946274828527442313947260661958418822185366067984018932669156008367929128077497828673725534987863146772544349840559714324781154524734995156178463744828416812784381706678061179424334063952583318736252869553766322174144286180828162704027644248109780144815898902702792714747271461987344706820530922725350629369419793042766887302198856146110990867487931035632925727783233313710797727924961812606952766076219888301118794886590772876797398651976549358883662580307175428566281326549346225158317919398948610352242581536766756008254126608286182490916192639530772576827549936948532377500144362880757337477879543790153567402737688817655343094749233803988209221291328645559579054544157366206696488415346921062769287497991082210582556850440282198884431375059630732493767307163732903511200432114480277118793637909113205672312209374763908872179004723268364802685934053648316959203898155672125712420342067173156145253644577036544478791034609971319299920520923083007442944227472962174894572488983733179633120188592741452138690114351333563942380886612926397807803764417230606858459522987356260413496452600393684236258467178249348969064432822418142935713848144881008894687895408958922691484151957027336671248757678524171564723270910516756686382404836927057135829871909203098720355668072129541271542143579218876999564901363543586037333502099441902414737049187159751980278074099913537978432047499480512588159072261937174907580176886721712903605281045463237793180252119940508859725118898085353498827667391728902384581261523735279956573462837206946330675692497423219553129370453836951113412041425830432878267566904888460036534641724173824203311045875289623746326525190731861040009213382434472349648866226200298774235118745853550369736276611337863856467440587326558970292251100119997949819938347098008481372663115044812280596853223678664094567538985784669106373999316854178201108733422750042519071932999807123922008730265285086948292701371766608277689132523347250842472835033659537675552917906092228607555465653427388123606758496490553406543259893820013128815001114899790706351871593662131588880522874605920244981897735136009270365711158186126532556208087114571475504329955832343150869596661840352181977643457466798440659996714354879897852750762777823032974712187370191467570622381662107866163322776314998510344944187678743514820208458912483641852909035957032929315741980932334352183311272753884038536174776034105772420397785984031504488826765461201599999878545247937542162502856582527366341654258112575844352416442989686872758102859862184898206821289371221002022326121082103373417849629277605899274253296973130732903483661992112529407848081168367103401525736109462337237435323243322989760015963425459796349344212526278273253234709934405323623518641931151657618167034945694806222923996305383279583960649643020939913522943410280452597143079149977971658353256587356738618835454909684191542705112111738924927353535764034701498737558147842608691123236606212329522247354305371455823610994208453942878323570498355702684184863371887383191118181840283916187352236736295497571413404616776632718644723501885626571277220166828378067950992281177941530607993228434254772848548895344366814790404666321201454105529983261798798718212452521018815121977881541921747564287517300063106545832688463255743916632082128280417184426321344944529396898030361050784225764544272148833378533718780592708441791458938356966257882587147815356615383144164218926638150436240272921814530577157069025882496021490954935457345500121697334894958600496125672044736587675390623722424484587299299809218451298173658795291926943105498386975265579582761591390538405569529040427944783392682316549808222914093832853915811348617315024425557006898918567952751137366254836399529053034158558837505231199122581166126996736494838618128677250501993901463690710047929029560862694052741335596457070382494549289396339664682933387852556861026160011801655606954081159818553325358012311161812406414843440906566729615898796297691031564136279791274815688097431754660593255254730091458376493292421739324814310297387795722091995764389255629675295099815922771175164936843769229911691028722929288307755999809664597488924849414712539600043282883092034631163565341646367531392147366228794479449593765151095995013487017853427956176086754949216796393800214965033699647088511924939230000797977135302342628237279818405867978472588683384577497830175682498120996548351590188222513471986855816199318596307454490375505679095310008758893397790529250314217410486669791246029215606909994494779501155442615466435553220881631359229583593401180622348081907025306569360752649411196260607269072358944521871661584970661516238678303106205150158885505413303479863009064887231452053455146121861303508031877585538933295903761597001551745228808909718391038684032141445842954999535933554454663354673959274376640816986517218556735710918256478665551041842495143821059491479486064977694810831529044548124141432140996850704326982389571358401297635798901375230079569625810198086394374707890061769335233743004019195515757723452666414248035426516830134049237418809651137962620471435904704777200658250387370210422005834637301981212713975702484450279591362692059381830397200425444162419763505310828997237845390194035294318607827792942230329147401843925158045786308112151889371391105182096619307914227148413864557884179050152775781884046494210525346034835668495326020335525843946524795898125040654556409334528757094798770814347229076653044956304689800585539414343333722453391038531418659965240973689232949619165197320994503684872501967490667614757264249532895092973798485113783142201739033303382315495142427361885393119451754237550060354370131685129457659337805239847598485287821822817559297651492897809735536043900211487788952840269574451414264016148697916272581086883434649676546637572535620048971773599075606018155478032747794438978059569414915893302811386190491680834774196256299720986229983725889666920956918605141916271926703001134573944814579923143168611762106546174108174474863122649619442789956447715319493698012087645207041553576892710049390335194905575948514120073436140897659612673984744273167827085595181198519754945888125908382321707116645216874671966390310704147323846171922187595716497968572866918203257593973753920314774107587311639883650413423892540690583385310435395647798325019871177199300872350020162389847344809747681880351660605888913926666441065216022796346157947322141727011825358311635283195242613293279339616042137935334272661074316755055799459516789919051908041133675208061172073760426265926452286289578559447371655509740330594339331736975038541579177148171390274653540198871129631516954559611872089504933784197812298937916223012274720021591762719822093799001758822631593983729534015359719452840110366535590611317466420139392960512642366861361479660514932580322357430368105206724922407722668261168857042697554809848192509176314680219922383923515610135848453921986346123648746776817786890731719938260969074663688976345359582074012419366982851851019514544343532948076504399008232637517544581854910838407811000619672745298435056025862599067781643604293515599421545453200682303421951757516864202259036240476117290837498346285253882673860830955302832204214142406790567119993347379917254318573087023598926359919879589965347364702147691347834690669174049654462133648972764420612097560804500054617364424988891409636111696722714641671990843328389916401357861926527295555553342367565019306721265920923230739811209908078101506219185012082933340420214593279285457125073843626384476010455725228680981941901787238735048183137186346607616690415913040891455686363877827393890229598618036059684634389416773186356106917161040717740221982489025226322616978168760440769412728188108485186479107716244842983423673085678509214488163176784135390927323128015336922942814256922594410898707440650848520131656311471915916010155700591725091378169248322970677219260108098079460559821412676015304247894608406921347396932361502738620768364583442993195891425232114584241910011705446622767690773548719189451958684223877453415335515129514278076987217095334008263870184828597356926056794767115701977563707003121663801263169042336221260310767912498228567574083490554146875965819062630022092282853775478686167414787381404022028700340754929732442770710880487816692493032219682879072811084201128952179947652880531110847800173485742613169443715140806698463545711941329080546620301006784265587078765092769551365794755144140419682598988142442817220921028789156981798136598385206610614128333419905367214362045852284436394115262490534614878935259103729854056626371081636901783597425432466570169952650227442978027979272014200598175781709396808094643473764313024061335269632834192850964076829161153025907643280162325549318984222451330784279787667011874606224603856639275146474768426930134231462121923830003084272669192131400756081774919944238202341710039742013880366503399406178338818837465263718842257222954291719633461702230484955601079222784503174810833976984712767022255537355122132531248235902932493573938695353713069441892558380530439950278296575336380149471614760989723468757588868957373524818815371195463107320667049636157486545613050613346113760805171430862298406501668841679604193045002670423213435208645331052244778992465731683423068532561123754662851341496518054293682078962237661748088630824559241024733479306012339475559593934364252526809902634798588710680529584939246535321384446512717948049539161057006943637546870744261804628985512013504911647202685505196951982334287557608491793178987792558057624714874010214980615395056607833143658301415127653771988950746888786899625100902088645637085223785165577150060881546422802720380455792106660525965960501330075411801771454172968979962121144491861079601553758306286080169740534225181530303280873140646886957232037007982260830459422098464935075724515586065999731041393619035592936511661886524771508671648617784438808115137889220488983883323295718774643596011772710768100034826060137892489026688634058808674574561286095022609622058710038490542504981893189239493524126379325650861442610440186100893379926628466344811443839101799971434782349698472914543940718191251267698287628119949222278266697783217093958010023372540421426499055675511661077782793296458279314184216860102645812337218717696117470690565554814310580856492354163847854483922632767227560465080022381959271546392177736204830703989795437407404164585344532271676808746647505600308887653417315026669616067088362621231635481888218373674831840420784720641028721727094661644122411871807324262553002233799904295811970534940384623032152659890392244945495641958047451809059111189335680891913237118164747836932297260809456809348184586173176869324935038239839860391175360935723919810740410904814062685845260138461834446911195755619979707346185221418974147016553550298539962057891237606744080718199470769114881164763768314631911457954630056517082380271523062431835109818128578310389258240622632762274813760457052660762613141063157059034238010343978876131160281404309704559058124789419201807407588387545746581448788601860413820163030699510284233061066755399162948093752336020607147756333210766438642161200534389288106991680302423311302291875723583954410154486598014908730400748746323218912526520405000984004194681244453152129376964357681676771622843734851450051638951197745553103238647859931283483671475800775513889172132553080968454948556443995972440209341549843120264605883407323925841216072591324697211312623307136464883654497754502032292877367542979515527300503208259289913545106260857003045806414093938529726549060078147653814044802580903305510851299156237980396043541023387104811091688135526232770857796773233035866769789957682782551249054968793685060060447092339481549133952564268138192116394466363070446252543183371386857191220176438125343467582929975541055627652468981778073868962075998077035152690520828862141000494239355205770704932181299647532877061084514810113144270379086820295097267203587084614863026600011833233607812301749960564983131354495192352119879408134593559190488433201455284641292009359192741276308958646847015151945861214869968331828648737969320438654034337305883727314590633611646100635408062305077205087361628416328564076415323678046579668115839142287682735088927276958871134775470791396479552250588240679652854623742146829379341559767372168674444199798774721723472796851095129379599657027419646521648548104593282978128784248161715612285897853963378705938229692602809248681982536895146518888542115791579432485643867837973669364289729319788155839912908874800611234480022375343418269798086220273922968932347802476030972629161318785132722207031235032638479973119641916426667632605201300153589490395396790425798265715685360244445800572061695980039041687541217209712891702732480954378609308358147358608408945978943224080478987023462954536524828250720756810143206337530211560409888354920192458152505894071331604629748365401439843055746740938964019290055245755445963353009645382836691287762503606661233782307876818977278615638474005277059392742256029491693972712009942752015878431655114125066778863591054424247897407248213872673555455449523332378821804030643066686150533729259189657210508728492213853747745759316478222819570122673230266449959630987805680132037289726687716575169485346198821066601886233582734903382031527350262988876267389539426884824667585688709581976672006091262334257654203463093122194462981831938121929115288020528745065521997109028713546318998568427277482090972136243650566652970648359959270757613746543895401800456263019095777243365579372747294481303294325490593025256617449273435096723981269930020957781240808062350367744494269459848722089176223914983809213002253548369410745966271821714098930281653211499031255193224365587861544316811936682607805245791334293290539191638838692721489740450763136517200825996375299186006881110472019050640970760513265490805389893160917647620794905240598142330745732706652839382080464451078897734154031031066116344439757569738333718018923015621451269286024837223076467026615804673240264978329327357590495853110510212636283325574842247594156809561002085186037427827525903855198512330992979372587856818979725739636240327016683848262886715876661253053597458817216796694582485487097962852261787937709256192990654486424708732051880399890936603658435155880973428605345932448207388685535265167426353220007530414479659191556093969464942685544655379390019413684172936026191308107221180029642837662271898228739132896911631140303262851209598832047176356261777306974212977386572817401119893374373197965580099138963467829467852867336031795035314570117913361962858540529760533006292339170390531659564852452132184615086778132752563310827306466826781840047884159989496697383615670288787518402310783746552560570555071860724092591986400758628456355885511702729928514851805388960965110967910440141548836268957769039344710657551505859434377654620513915230940910909067867602489985370104515948767043065581063678587061432284609227802689279729768586496268697551139693729853282885706499881410280249998762387727167230690773172766486795417073773659294013065908637566694096381195875299765728516171349606298202354082522796183355066436718810718848483013273330416606909701100536825266052053564320967084569106584616726011602280453462465859342280016302528570607198553287435267015467144982566052339253150125424050538807322835097728363708634867011769317847339396257730497230228637238206626986360682944595900362975823261398546181493272550988847071430519250191952378076250322135523166518638689314182463532748340210622628485147681968777031869880553831491616825195993365497090222095045786850665865625253675893493140593248985723778503331945479947057066687721946917676243328806193562939972373270127305421368810594269404173028464790096137323479973565195125654332309609343771056837303496088492163990118937093506074068231949710133986846595220659829785285818197863344737598878858541320906381954593699922426616424246720976444900682210489692385220673168085881814934863514344156341142160968195258631069668226916343900390711933965113154922222127386090404570805195236362733029137355373849295477077945034611700883434074185019685138741710805137213183180653008414002029788948778365620774782591926720816459036766474688932100655261377979943188973744694187395620594423366557629840132521586268400517739960640797269622299157026765042347997028315365078430690707779302417948175975076781253603591551233159825905135124765227236593549691009137635500712377808482038931715699576564975105222353070829611620284494210326158473441458851590647791205441444188743939126122222192957546697234211614382667687935644562848283884724964236489327318463086285234198715816901188836469906901083163189923774256895140263477972978698260307617641625937187878688648919848514717315948128457420747651747747757886441263462330049005680355066699176585575363686425474865182105366302883104580355033825379494996969666275982951922617263971707066275075493570740595884936335719366817815485046677969147272152021994879790901991600926922739920368717653697398038804225531565941583072988645653133733791524284101409367080079154228197948386814105984489128208245940419959761966241397441674064523263586497370263850783797148442367173484839028751015431029337042676657277597186117230196585857072068849756925746809905646593068610342668694064719467023832446972375659409008938634945219374980201463216154041870713448380107155849371876379684784767730013570134767768188310332076277937728304541350100349499951702855776029840326931314978542628036390459559837399762503001172151205061120000357203795875029713101231158353190617412287730122438706097799093099504920993062718912822420037043836229726834668974960119420707723929585722618897639709340035240037250820518786928638018438028353717725522784677036281444783491949711961060416331078560145085876886620780354341988903198267816933662799122529186975427814882877887513928778090104114742911910380519644294333308830898685137395118203433523932440598339379388433901002023283743428253091910697455184881109520954734843719843141067210643427029156472781190579370749504498735779933051203614632856199302255105523039072726302811842384481538804311417875970242368374882147739588698385968302935540439811726514212464729950906263387480236015969380741384794859909399290475401125586827210807621464571447285786362991132397056693557629258210319779280242429069979078878595586087894905789482817148820270104334349114010195442352112657294044290226894989599854670734573705793434133833673595972587915329966143942766225388322077782734527083024446373421314715984179242766779635635188766642774493269746636418642533500928702010463069431063252291938534100328137830132287960101859577469779830704242602840090295253574176227841342891292405216967974262794433727553452601601931853222094854998613902974490905601158723403965029299624204849548773951145897584366590718128119056442855692004511290849858910594113758204069291134027699262501449861097837945675697649432152535241089061161796738048188653602583252168495123253395894369708388402477280195081260342105302239263071000390683695822772626805224171042672733057175759721916767981594988528340951805732076523513557913182166677445428108898982817192706952118524001226994819351459806783600598993828556145370511894059515216296786787622914705006388248225230540266008980909584753012914439909077223254970896534274993719503604661646964256317040677095283397317682620045829220513460575311720587838308438623863429813062472921728029182642834879499195313771085823358312442780949262391816047336104185605335005452285323891880848637190124256799081147993366590578127297584937000135391630330611430533281235082055347266921459160959212897184061264352255769021080491130188289038745313797909683235937666661312332290103392651328205791668610931974740270030835278671651349830276010154287106190691626219690740738422957371868546493296214946332530327355401152792725188512386880163210726931492391272278942388800518935470235968064739894472736678462497899217161167147410952570822774276555760054614329118342508199947127934196527724749510044098749453465402646936735612413823246971689911255984029813774920024917700140848932164800184101846519325179203321840931353699282657993637054034604767609512831165059753791292488286109732448388720433833921738056095301250305284837725876994573674832500526939882539469709844072777347263770820866281047045361292662483485773246395387668105786352973679087703977310882712970044054030463897928564905471552794355332133094954411136038124736681640697051560629681549155223145737372482807542442530739994811848147465913999691608996446513666523120998417409589351353547872111581285715761757570642844356739408271732518974284735124849677605660356709497363993180656388580323620047920604949327604419492581775065216533100861076435045118654063240685113104873187750568304233102726929171184259001490288201930477153464047843964961649231626118943813813253733647542189208410472242112550003736587077097111047817612827193642597941232926147110416817083842988824868315386085310564912812029347695741091749154654760273770812740532735267994511679068268616959392790345966501158841882472958715522313154259162747072481492751889233798980323874267853208104322083992829755697247264986529303019833356489597485631655851636959208603149908783786467081199366112769537767232605352951041722677269717305507837696000833044078111240560249206412056049047216534368008892997987470018515599355893734067685945676350292759763738202507081702920515876436898114978194267832416821034197121110110281181841341978823368213466160690991668292310962187392024090817686919617429049328067736663922863684324041366049414842381508153972127367856407763784539922290455916044357374722789540642727541701638442015111161071889413814133664682937424466295728695766399437630191925683789028281376033745777829943357238965557123498158295841759603770469732482186274946647249966378220207487177764361290553896040692787605880010648975151319524023779784784573301558108175600947037081822051834377076451570953956752355191397543312187760546103010057862366435427108403344881789674234471403850975248625014642445787132852102965556042002692537692098433838391912454031108477494502595130220169925436449869538232320206135074505847764906384541877278592317784416517196455864759655338998134479714780743839516539073749664354030423329043277338295440116406587864229065621512199736118080501524190857739898850275177393400243563354849844794497911918005729699317508840911563924631687213285136082025642672061609979709127453832278287218848347509218378423531502894951782569766621392534315411286241581529033350365555101814425305177056227593447052103762729806998459495711975601108134566330630880947000762048587149401608373584372200289726521296088741018078054882059778163626874586718673967582327698470031731022046822646005680892367444058467537371200088979355873822893002463357839766075168328833670748580387315255372020007557484585856066961975526501393131943099149632624393737490236605384013703563057833660602637543784641366810762131463340877297619627303273724224926904399855997863374714167384046245747631993813976401671144324740632474213543428430819206908442064985781621861266516841794848000706084196110054130559724549618714116963915212311013467297809619551745290417633182698643959507034798289822042091222696528920291124058576118480175536268406657193503696072518394512172728248096030979868839293605570877198106503199531246400567922264531319795141031353718352889488366953024877791366452645312610439463443059816062723271641929198836357079259273371528917789054484090184816734266000317968044656118995674338337306633711605024962137877561295942004281960870621083652271356286458057204330631246015812271932235812353224964252384606510017279901019527217417765845756990598864341232518555737568811752801677106269518376359204492076420065577670605387049671747213163479709100222757610228862313767797989517586139075065244127597175444483813642769249753425131546221736048543613734049905628854117087815827304470230205052692629033919073530230342296135684579785745009051852393853671286690819361253935412629376091061190124867423192995782640571595212715809276595449463861097575101201124922671902654725790165083038321322476814150123592877633494190247431335617779565337956381526824829537347599606324760861878980931170504687975315014512575651731308253128505797206609967203382074302143541955686013224620563848843415307723628554423098453947428408647412614098649635114041340357192324186942362036106231434341147431464911073982407744830819098526450925669789216067587662881919553572572353066070588105986638755896646580650252526237386146587925115567845076476852062480472509613638103392996066960208689498174675979394258762675323683071650391859077289986025926583795349843135604678059645897159269734414018053871347715971418521250101931465231800978410152736536221764264251032086090595671819141408245949315595471684326372294043137351599706734206394483028161972876024480516897592638928975549361563258751922356834931978183630310240840583588640284094212205563794992382420313966026257832640605043485472719425003775978745043020875491925056508135777265853896478411375854963306444607186875177162176973482315913479725327420910280018804820125713980448515983907385284575537581549467636129539014978235552512444180142302614000485905457528545242750590081268467180026384243383964071785040492173943232302320830728254893583344320791102359093960507437524385214188756363720934121200311088327776925948222280908365140156355689604417681768228697100064218821025194459983907457600631000723584925123101976699102509958176218420150216959402477192039991114204079272800516278871629396693970858914523012028610079187658461777782980155379545862095136471184477253059437226293381341655287099530758684842183334926009234254682528703813585021735684901696073847142399831751524022980833601242019212976477120037824450328230925043070452328557042069011952904286373469714755113030481933225769908741304171556847094429090665728404401157352634564744661233657675151044037863320197518154841186540790725337344405173920532294657084091891445837449372239717247594339811766530749979887163534954685454341538665992169259827829056459787964953355333373677956235370541768357533072095664148732206883894835682219210754038999456746610036641846360828948644081300472898205652300746058786020997765456878485312978106386835474752937272216266814161200177941304712940167628136042858688869409869303331753204549808746263692890219032638220476283610098779070323949639958901861413231909206750673638763972970619734211987819249270718674768538475227319483973335160995054697215467733495569938213327795033553525843039715807590578989809070291020065904310297174481346409967092931950489679910359218605675739025818136301328380430939899372830202274718990402682374065227671532789231276046864768729479719013093208463753198803107822848979994516999815830277388950161863371270939887897689239022135373589255852850661929864833926116632617443561751989527864755624160357407659181720584484219476826463246936033417130518460703117412123086809911391999378331985293933536920145647377702858512870731707005177805427513591153217097598023120828098765203197697449825455338952485127795132002252168673010902843096261724930240084944856208028086720110403595583958082978542538126930078483767596753818992009675622971752646553419339824718830017377300773881322100328448331890899391420519695695570331066011361959435738657631947744363954731301695496377617233911987041333772382910871707589713251859035679280351287285576979814638974715728777399848140436205379269073093512271906619014512315436194648146314393493503841255387299800866523815130100321602108957873399297197040729776384448004525052880599229696405303185493471497993058019215941039065093601363086522580066779716527233477237916013609611637936369285828065913783902122264121197176168977031024451880410613379287944891110791451532907662754190454358087979322016030452410330792372595723267262555902652177149625112170108649515231402881609189794178561948216835033755835323751675554820547223448067708835595044639673896857413584862783083885755703191165685907698133971073694059949691967535936552470826082075840848619532688828331635036936414116084042998946401384958523842162265086878767086211758821089306730234855005226541567987201990793225826509309005185394352064762140346458659018102141245265272437342826087616834632841285478004775271487745004334493033465743979032423838891906030570625416011973299338528908590719045518380594460452597372726555443395809315085214568133302108771598042221620345141074941752759093184020605090062340684451127038124720010620074192711475725281631709580713630894126485635235698071267559567487426771929719633290508398942715394569510392329718799421815517262783397787113740058294632518861264461272301769622827084450759778541470979474044208387302223426678789308360406360863087752217645340755661020775673435683919121287317611168549585095830857921257182732249004350831079667113081784096597894508609713072382706286898511028065671445835611337380727666276027416219709668408441027396412129709088738090722719605786395810822688823733231599555864867318366361353587211901037642296026447835836969686756324380219872176023724873033401260176083212801032892462435688703331797983712642906758669697232409278306813997761327146400663347669471094355711880527473626540592203419306116374230901493855877037584592283107373003121892546193112935673228286316743839710454137536547838001288418677363344571984003297056931223311506920483542095109928042751234690050052703184169967317341742609074470463877726101304330926261697107261041700853142879149812290887847943471305493497685098714136624995771833383484488162284020077450897679619642166213445122445854305664751489149660207848079589958974753492572162316798466529886014564249916878137140518249667011176543544547291077394234367379143584598882483685301866824066984163294880657516062213884667723261371525351781571401207149483395063582017818283517741561361192805649038355858113244212999455406282658594953707978760196056741045845103045180963455705035690016349551347128739912733455120971377954550539493981628460159704690307154357353887459543584165705415940825073064096965036945164839970074510234286658139794636989944882210611005685659042554213046797125097404908782535736488523376425715746974033409989046108685203622456397370546259636046434949399825076147077958230066709538484449918399730537626858665859430578390536904393412694039669122021417815611557390178903737295326448128586961269465790350989252634140977416834072573342864626650930356045761385316776408752009904919521454662702041920467560819956197363629306694687466183532152213490892294136995007923530532472172351132758473479671645009487194999089164395059105959930827679646883686363081371209215974976198810751800491362940582899236637198008589330350652106693367102090740639036491019204315057362343708468426989372821502363344786003779773502964724784414549465598810195810836234658557184116090637421718888637067887594514242875045119028443038905946339395974053613679635020116898728818107771365394095811840626537941142425541884770910314649061922164712585822701642353915579164377649531529166907664182635973615615200242798935471138927165697786277306341919037841529208201010124479560443357446155407703088432817985661777616411460752416844793369304594478195052324459545044584450883214745069978475826193429679250234921220349786729685607929208633229898512571901280577475809592067483850930828390236392089276364249991638663803155664194190102046299743572432721699367148704876871986955901470802703125035477635289183250690019820558944683034113616354737956733835954984345171159106603180306694241712168612155326219033835634814744793189173079647588738612191342370197128403111774116018857131920559832907703422352672418037801536937383036086034594924096948326776305982219394605298154783804423564656562079021086661629171758839828556905502056498030080634408852475284776543396997318774601847640826292187734319328092707511313555764919607737495622406523398505764655779907552755895620552931154269100199011311383524648588710300669100056681312602864151931896518406525699263999275077868823726417529409984346737299539354432144041917689980233645657034332067105820226942408980860603730993471423657192185026581070019412063374820252908805070815611527610786223898946643583432750923108510802282069383418144629004059740454264749248023340449908256876991678071346812715419132700498522240024188654671575779862883918000560268589539892419912141326078346440297483385221852091857232037608677501786782062281021985413583665241650499332364434165389169562114458521846165658542535859474851771229923532874945973800711064165437786935417295022281278808742027857306462495238464882213278035441674916393173011055934893189068584927466937355803134809264699075734588070426624904219010739436513255269413688013321572254522417099189648072885505120937817007599231910433250484150570721124108202339744169852157518672767297439137924194780532607219016632613905648201017610635080904833899694320024422188282082914149059565639326823753047759564266396384289152436592423524406641520908967045664227945280914333696388362242683724994054755486446585062369304918041137069442166997465498563470791485479090192664043277140180430538253219323007795751670213981807281698520183113626083401345362457914373415146822375572841547504995163463787700210043244717040300178156585638037853316226227134749571260030028380427187712498149282702707525571421165783449368937783449019451088575352634238303982348648059972449819449822899504874408454292139995482116098224839761622369546428968536933148832524189568899914965291434915503560344337861172512585566490930499537501895688731690153793312678424675865024294969622791354448135882176974055697413660162985658005593235286049115341274432591099345736961860717087817799681537027176714514196155031585187929331100243272416603542057407738533171974782878447722276038811300233497108938946056943028290141175355662772228828158895825023160297220043842500734052859573409399496583212506899400836683844815104890820023343832124924691599831681833969668635147272569171365788692043338291762699593081420985948599429435107673818447480344042064113613130891671063606001580930648590959280809139003869155768978815026864371519331975941671332823392411198627346799844165005519638467422032892850421923800160854717643965330966215106965458772463761509792265101516621358602779657282776899397792309078694059359692096500512725372537280504185382239846448048243117623641752447141715165506296876025803185523771947868251734920381890113964259793090602151659618547248446582219072368246612057833909965501460991824347406609747192276950518056684392647757026836374390578992916346403981348238997646842139947182281359315441294358277050597770134820815259664171063513732807118650097177653966865212163036809976997748137819902561300316412632118090252327348886638043924008993570703191117030181340295392925120517339494513497837647930631860702652862446448752006457852664971114364237486711165023399599396395024472966226210808150114539718120008913711748664101581947190652497254506502516188229326954503742177244242304486754842539223269479385894181416373383628330025076951745656903297764523364019168536290383703837202946805477339843360769942320870116359059052143678966906012783364608173522930776403985625871164189629117061103704209123446858462871551426527760881424549927979045550301262248976928434909114117768344840692412700094341861462748985520917938656250242775881749996700567840968984108454022262191636537043953435566431825560037281458219031496594385082529629971900751206983274056189378188339014670870708090161565831596733262346160012501717048082224309142137635997468131224003908799455006841537389579298983638491655716528157584489752269045713249364692249184118041815131744201827474833169753156265433605227487970909661547772808487108537887646917229758658282478031666343745627273479412722581748171333689022306652906794929587397944327660974500931708238017008959669551180186165316744594113939977163586294133995508697872530611443699018585790068858587485572940266227637493036457325748293441107136705334306406448014539824212133070476000003022592664816267670008988229752610860196006140715015195371031390640421278969167313770505499874979875215873216028367774449787720532583234759712696711706221009280756327553589602645996143068331586523202830502962525881936692612939750966552890635217698917943425448921496554026793419704164095334829498159062278167386244453071732496645804084729856964159496726123618830350780374590815570685291509670148503207363653950561554123051903582466224914255087827698304569482386122019032999173079227288158135554808573433009139308776362755856956591475191492825622243706649568274471266462119272141911969568502940256735499971223471367642110412181052713168178662407346249863002133095330379764039957825082728718199227162166177667799968739168689272769909429300692201824086520561175470173477939320155502726592757824480322603392688130567281882024664749949763692669724749136718826734286339734090929097578532746869064617511772473732783493980488045369257479002646585983428826487283509709818185009245827303288709371962226380424249131868795390015338797339514147071528624737725241624398651114237365383326354231230277425294841529844255618817309997149825342617705944912548078438206974517154746671380114634847522504569816402116761328452799253862193175401234321390212915459205062603700630526210539518189584249680802501291707679923020211112220040242347707003803854928499797041445073331412722310640110229270884675497886436602783727558520138072091397569829766238542355800034429459556322529850269743704646689344455283541339394857407083119147917295282952012661349926869289853298398625316496138646050933910330068352396807361316240151422221263549838382113245020102147210055912238675746418413063239578066356954323231522308784128020592548018793376488479101615443580743556045399232167491663880523876096400961416113510990543362856206970834242525063620896066521054883638376894042746930731694951001395816914514971625565334545869991195947747280208064282310769973557123215961372870006875303284484019766466834859510931413547070529477765335000515710481497233822536138778712933923583414429866355164548088201025370106737007182985745393776664930954577282837117764958036047112917825390834270319150678891584675811259151556390044457405614532544433567727509185585001853548193346595229681056504490749030290308788633251327734412329381896205854966347945945060441542114017038977905272467550535851783443795193576647962441204283899306963103644390689053442376283279452973450179544635254070779381071320763785179812504643019933989402324686898480296356056892368175126848608289312727461299686086014798005902274601467459223856938668681708610962257686904104112669998174643846969617449783342213559177045812884380094810197049876820399976689150387422641308982788187143200831052473129966917222732669714653953856481493118102127258378108167795558283058788112251515202763185852352921503458624518367264401713654852816309802024695551955483766416077890224817237748534725425761264282642897419367976081823731222046399815480373669664503992044911078998564900240048054865446527628979022411290255456185188727211798272019305426562993968148522459750865951775637552943998889986881895908967527900789091924116771468074804992025986410324585755268501041922624356592363598519985082996912813292649379317293892036085544773125134309204652650760554506619786269414525438691514521935078311467038909378196815124129431574023361539700039630606222064624846060753521839713726089647539264827951249993917292670740717855169116772532367652783641381496481326198786430642565435823821430833268042449016399011714194001788350060968311943676111880682703638190243777169781874636389646886945780082938971670794982153843969162446494100186302887909150156173154018624545183588908251565010389274078745387271741468661779811156870198217480680130569754673531570208316366324691850488189396902812292737802457302208294488623224596486390775724580744258933944771284346099208039900556713362883762199462549689362159260439204498735020614822492049224059819159036996959821877021948042473211490906741977057490934124728594724715601453196958472711450034265724055567760094390240541094517859327967004371928634712656521282168227418682670875213368117901171187354591388789540321031207419507584905730882860719493291068026440060641698363656538880274474842245578891194577105593202226875263977287528463060178795592069085475016521584017266227590869635231988675083164404371242999219024354798711889441091231224733775508961226404098315594896305391426914415174257518680541045596129451779800623479886124013433844821235184449464403307759469394661568940713019190562155489575890041372197712448908862284300745949116495893180350544960206058309655246079137651973240091551141279412501760809177033963269639785861496904982869458799961397535971565039521765776669852526241108427908234164072103934995770053080225521016378286347507004813847496747355799488521262090655758313520045554008232775734599269134024191099527786190221556088085757004986659396616821592720416456953831760612790199586562449554532359073691722772368171343890219467230748847558471848207739457745177438440990546523696950809352039542803755758093897645536532514586476100584936488475048662026557409820449453272908198970528083607269834041579523316655773504551619257893415015983475720914876787730396859692298318553864947296358439797022982176094071716764355606082379923207619800752991647599354003763495254718909311047824609271431227713803789349532419782373353505008386273269181133608388731257917561331048702137635268174362331284086185039607272386085331143134255450110769250458291944295963343057402640728386596574156104544963349728987231252923800903823731899743195115012731575721372919189156761578875174417334776743378974743082910575779585789541078530153204014577504522196683221849849406832956140060781839307518302478961274482578342329164919056459394097118689451255199975283787952825414934793979654984675596526010441668777548528246113246525062108065809441654520896893246924760729553363276403283570103713833287364809706117066286798423578664674789775125018250721006530745136696832921370326484356284646575065139991363805095268089761834255595664031587704619567024457477992239585846818818105751815233165964725583018376230568802799817201252300774460254195909816450801014449161713817775158609095028914321122890958056476070812248660012106033101038230457215397452088397020471166697015735050645961038334224068369513385908469665550574069345162273712609809344322136383502662013956874644156370070544269725688932724006674162798991630624458837496056094627729620035056695359760202077000148821001132404264545416443647740038503759549217277926544926366464839177432684115079733627156861018064851309870228170094245044601378000656541174330222672317559127761024569186118255773500960267286092889744414996746071982285836656784413091858159213894545820450588709056953178522288540082323374766347427040730941219033548321164869548946732107791318350724072863360785674694697315939503422472758011214608427854493254422813168901677151937917161042626801154625542555580740027202287326302106067670118401331601787082079932757282244694221415321153835497438809634046430554149972380411125307905689553608460482100087734043447506389952743951370220804293045286995924331841318038065892150064349825076278309096801975250945958529470446386004725759847590913296163180453528678811451828996849395764465268717369512195760113330930485484448482879814861492188573535309890610557666074272621544005617192753004497388238144324612038641338388508315661654412855082106453044958429178785145921257316011821475619375937557808843770395934068686259755659477221090117250229346016762631537656500728194281123686525239860913810038515050320604110770546109394727308694354227736944726760800090795640153313367476455440793413333764566821817406246995412284759621043378248150246287112840229336775772831526896118520323437476408629344751154209103564196944043333618909300646015481299872954618516964907247978606478924534962555675030662783809526813121365863371499049099772014061321603013012760903511742412921687722982827267146928947598061095213044300308337301597823978503984726562202673970093197721994462841934900207190136612033161928768196846652369426577875290052450824213026789998224143929043381977876733045397871656096950732599211307133172988161230570419594359139869975374299934677301400553851910772946030572448362471690443223431975326071610049724211483091765937881812892071028693762600611438343882976228853830380121867256314822691270556399178307331408960570510970966940883540508987525522282246239864203762166135863863208993301230079026801880684266055107640245602025229008628804825534893149024346855729459542124222100440543069925505702702744035106387838415024088347037303342522645158361577956282387205068332983089760429844235390795478271346714643816778561138828157439499589978838680743530613785982673893892895657382050643347015604597662165486945583113830975820488478066349433477436380791053204905865298371551610654079280974256856634008778423867784646465219421158502838359617263892906264833033776408173735856141524571093178274083223777080713221948960891634336030412293740040395302988293651069488387751344984705070892402255797394849493486614852392286199204029013488968759954944294246255938058451013876000110477142064785462331528978102448195203928806276218094763695701693507170200864646053919915296483321815738534124687850069286711897276236424446205189977771634356122419119455220848220635269612525625584764523314445922262871068391716265205139419659859156333655085313938656056007830765156173018298238770926896843679826530004127259604410211004179954045303004505190328619359627335762931697146845317192214824078599868823716706327534192781596923594870176659105013226974923475187865590052823081469420765103420345021443957043412530741409279353007254266312331255398947878579464949273125676220827319442854803859275083605675728807952156335760282324273830637715941597955264205463987468587312356687511484016051080663595166647931887668187688286534378885030774513645536010698994300690193290789474186136398319811212261169343608764956253601795552543879041537227456376005581656279910735877251205014065499892028849594032183997668896365730237314456553546421308732023963606535683892239813388670706284607788285994411983680299265254159696056562860662424327712124234960496098193173441795984292299191061727038729007940186149419263040345519444914948113405142215103057478185679584904871327001658625125595354422129038265402931640519228335035140502127668613652489382742381577089706381437847730494368345674294052402843212270404434129140747070424166092920957071353515950968001998678360489668959548363324081071551565446915598104011485240777109279653865337191058304932842781401658226770638746293722776900974797078366324033593232618085030271326703374038064199156875460554513256808532111552699657788029197124032187472678818417946643319169987708007048758342190621376509866359185983209269216057157932706560542195553828587252375850643562868706773903873578977658600110934853596523900737894667704958943536638472946893610621925478602103058098555689995263627375374246363347106759209214917018079714648778709236814867067581276977626584944013429577771310287133864607379802385609714873719332722631421104911812969795890378928990398796062703363315863696380579146852096605130820327383431729499854651953355742357207486681264045077337438669350669211135870297340247838882574651740759805545281618009969415742674065859629221683379838861599600356760473286191723280779323838306182814398636877376505005316275609253613487927969343321738594523182582814255276260286170026668494802972832942123390590040557882976384508056281389837934332843619496067003059233824983649266737451595259572157587814712871883653235192685028493571804641763916825638275946299962720849595792275852368351981894307449927750168401428368036285504817027479617245625744241046430427829451350694734520090642739465279816502477052608962767624271840418339065210612997412521981155471928002399122362982936912448054648878400399529998177021650230232635249070272947574365805384528927231981848436783176030468598755837509831363388724820781110605756093874300135547426661769162687358697481382207663001522390270537916678082390729019593402551789695422543775317939664706903799051086297320781532733581597437616707378951658930519724670686195260343983279659987441377870124061257788938467055015900220591940107194908946483154954728771236000624671080591430656534778489602096986411816313605807176304501485264994489610977822198041190064690420269729884716159623781101035865524451771330391478230625757532832355575432102597341853690783725372364411590138837712186010957448390447896747054693325375308978732717221300733354262729235764995769372501372124262513156486314018329139714051424062405314817405999343456080110483471931504543852443534914607948294776584200001719008400747266854468231482917394344013351068809138853956638847156762732603722606416998274763956324524036247204643175220467915446019998537744952626302176748440021322669725885291056192997038104964031316274696178616585831773303382408433064307136682846598186803973991571753814444684152004341860170720276241655368318988156299489982378574107314779952279418376348677965601244289384530252984405562016320210020544117319886636097045654626514470642460254685661722924525054611844831848500139035551768830443441996026094125938626531843686243447840470230697619084751653619882913226829484757967307213884836342422803388681251657872947805715882836223988558615608513092878482274287404227718392866341333925051464425864017629251845535073727503232248171154611559229275626714492384334610734156732030566478723481740438838089395340967787700300628705813195846235722368570961319799319219289494547333123259251472556859664687855132835354234138241057314880738484514871093715707502165986560613948678438865337964543824661215821557606664312621011241672165699261897688528412644659930363403394671813238267589043574092643539428076561450132725241430710532487330891642591180644726436093067652872173840064795368160456371248705083986680984015772397853158443348179208644478678812885744864060700694464220104680567960390390394134223156370049334585202704298488268016013007022488550341747842975300201315195336694096424496640484060460551127257313227863789199715143143149587149526060491773945072183435133578363597573610963467010751203754328929430217379028124402570118246164694448470060163404010929896606606869150416322514290281791272209599217985422203818822595649177893949652201067563259753470237760721362401524702267072722715241553691926482847557604865589179235458548969973056754695329024456993856005257382530493487157593123939472603613174900398137148024626398715032558342835580106522089366695355965460551275055602270845345130149579154458597144777767748274937299625115025978789748312581338864136013091103544613640436259517573909023580519282139578050184825451090697070551934365702926352215615060003406085749210215385703472601385041303115302312362549410125809593521227356704211913310363084798755757062427713092013412598098614858959244560557273594402010758083302016769509693114290959345080623224406285416521747357513235172888655053253017159439447864335399711107319839845302988546329048664546498770719792193192801654346442736322824997467704431199880629716117558715081887488462683590793787267797238681724298752450490734623831747529411576150710513255147779996346519972088845529057460554610912339189664462576732687014240301633965966772355313285273624338376207545056032525143744999931185496993205215765456539951290016925409685545426974164191932533387881433753255544912043226469785324522576091712090035648032001037790036126765909559286129793772916210334405372947148411390594416842883353767002896438714347458429448542198071657072719359109780753198703445707904934726681743334929318059869648180152827333302207798497795886740676406027805168201547246276637394271206241611458027294102951234965977186473717054411898399062462036054175001256529492803451512496643191137805797539939811620208727552654992122299612839367502306113958972041879060447692929151514238818735380882207429410304612129516924468134985689937196543676950275948893901470830670272021472583130804458926922849242268686645311981101337924057250742048499297595398139299215483653682997778108607795102175534258539024330283557569994426948572297655261182049063288589864123435891286625903534673396181146372882650735210560459662687845935015453475379384868018517366642642898737314061261116459772366424084203438541520774305867693663597450912698629913457162435812505916911109893343872313818902630913217480218412205468088651554687694287635486182839235480398086257603942145529887210106785100685756649341509257055314862243109422380286933542094803503148334454011547778133129798411670549318816441048943588748987787307665528482341393854822731458925525368914244599433990905532951138089854069210084683082328688140277162804207375988855316104331213400017485300970751778577574937296906626755512938068193563313090574839977371762173521886231896813271390567959309124095608897473443292130746375921584053227684124527802845909666933235605554996124360131134905747796598246635904823296394490618882301919694913556574589721723756824248489348188765140746554911147923496001773539055355551087008437625100234294722727605920374402195529256153450989351727892928317326070626437221461210176187683639985071429914132043504894422570146227464300743012184769032717682295839236496350359239531708124214992394757602875186050862486028071732166517743638599710451448457782855329769316878609769224760076016875589452785354234121998881051153793999434306423415514551265095125678173586572142042217564405833747564864339030544344589085312631793496534422638553667012695561149490477296001773026093783656440678308406722937964899665414912853322605102934764824677297323642297646002629298192078093846755267828101982513327962405479885576014831619919550747836940889245718121328249187000439843223135279187431122590277221554345493150691283078690089215418943794099009646729836270146923743283874931369118391638287824674975978434883769184815411529159289447421259247247741989215413825843821008055408609692375851044610114232558489335498982484568818416290301208913603640469454461464590699478039937079807280815817590903948854786695242072829285239661400625473553436292644766346998741818906944207982862821942695171136882432951201228524280340938129624281758385951741969794021459987595168534870054744685339982811151616384991849918894568680850397900867298707474675396025403857487786031641596189232194544939266136145845586630778034915442109827054148710560360422574991451717670197922570343122695627262393520350012786594369860559142389397243780372859654613205062307363628479021727957556579270077096280064204948484311452484409215801029032846162324136013072688872899489015951910694099569768168486095665968351599519945140031364611794033221010700986426306733101667238117464257820376348650754832340021066179608263060303539873855206354964813099257223674368240371692647578285188962682381034696440211084739783766780086270976893570970893612222125990735913308662891266909633476167444553712289032864855362419047888117299711877014981773963477748560029245442970566550115054420926729839812471195580241205971993268450945966761286775472597127763260172753922768907626493905464967605187705709042300850275703381896892313426076531555250564634432912586129312777186228995036453812061893478594065184114860676551802388674933657463310362872481783261365245672695873314496938830780075231599808803601550344503622349898536511836183294148850165693764609728653154853971706651076954865319691190584400820185308800050756135952919105651726950380114186280214347835015906497413455916613593083893893009615432411073817661078173023823491487287453925571079275943591940451765177819507360470917903194372860506260105731277840493913100126010465271562149750558018402485569883577564744461799397829647720139924526531062438336531301459923210332467064713686998514681035073559967337978215953812207987836027002620370033597068043019612194420575627608350663102150415742325351310608497100010018896651987960302342935184256717399899600924530123422454731748067408367548835503260417337465266952384381045741173421857347640145464837151549453567642615109121212374755966407650574109014953262201569319537633853248276336531454352990829164985617577381874687943239027159060874257574676664552330710843707547897840658661911988139092972856297696407065989236870725910558197000867281473158556678838305491008147539093571849675108858008392174795483192259335247184042218117602859626636983709513323720865710118867386524976974432923420628182065528253735516114577939822798579905516577543808941781011874476678365501697709136276186254738214032531313548990139292231292871975560677998632625137859439556645823304484938000550568961405605470180023042550268727643611064221227588745281707866084241714172457745057043088919031880788555118665164160849060677085392413096758294169482929554567310829228308258729029090366854079576619929237242125136407898138725947515779931460666226051002830728927744504375077491479106943166376120193691538898922017485555897141771387167494366982612999635561442775361507014476640407899497817895711914076133877391042542950261080187116874531163798994072726676711173826125932275810292011864514279132600663929321822953049346895698653256041375051920564854835890042869740748626750728324138355073001720755172421761790815562819982988283654659084499694020132220064979515634240502889574637253581876224116623501780708314674987387698145053844195738722063095204439550040264060321098315193057407640434969125994574187243451720421164323239644514805234648768340326280565189835738703446168969409682846316344924025550369457393428994709093575666971488964150467047113619350501226951722359938780865119684210823436719594659129457475299873920184288070213697419689517654684624993376542327453922801070308406805758985937216141474372242895371664401597263843760265401106047273956421280091346608068899486373529937175094859421513983010146164739719633209334873834452477917916989690647304472375560859909075459701388730456636130885900168977523754148871866540565066892387458933768469540309285928712596684653959353439469009478185734843966868957445725155742151010517386665757361069420310024517992604879617856307812514682230895015047179146070958649694049572594521955372000493353434204221918364997597237574546314275294760959309602432711796097910724789660578958615590035271219719514824123601478685575077185523991083655024240602676884816646344316852590078261885107047462225120045267694654049035036944190075655958331938174067794412917854906394650109506459958005995558256077705115959966485904789457389132096624095256573244736697500109248141057928528694636917313786455788728406846790794341725405863689787553785616568386855913552527696560999754185734671434002470583138585080297428312964267867716430229795446340163092339134324307859560780305398705542392423713358197166757230846998191455557187119547464184622954971140898204683121777596498792744263644806906644440205786557341426997014428411801555874686088600616744471646621160229120940629801229040418097042918856747231788649685645890246487639861760513057507378519194333062885708569163437387029196023489199809524652331567487006604614731834107424752788336025855271197029175771177215532850817035453390180287603411961534425162342215465348913161340063979756072547753018843190445903249361218692988751886291865228362100591646564174810061909260642076403446103002949041056188621375066868141904186606157298064878030518950186883531727738775730566975923792373799787007880879278433058808956027362839687227054027309162660247310303624433407549710361903271721336488125683547751817155218959444512850912998818906467187468233800258608145336537993897089178623589595469989353483853188390799552719157648164693187833915727077573278367678828843402902176315101290541510606029027954497575799904103156481653224304612242639747439192910343739553933469622942221849925130814546023910163391314757352605758497548282963882053270638703251266353156489539917939061014111239881996695788127415342779930509918240606884757567170280403400025828248771016914696958630250007770435081478501618162143029599065909515086316950969660162483294324131018873381891651498296291843270613520922609681058220064916119487016972726416358133992217005590317745582916823427032841475237401072335756428861179124512686435754094911159640599723921621036216301735360399209031156159743010601064654855606012146777721688470437371159258927565645080275882492807480082599681833068517433200719868079726669986205869663557550861354816356567921183541599555092910244679627389789332205291469992714412794333597113563339961665694481457428694590169476270609033401378003401281923550530889783777085191537464135145537525996135260459834458848424225682886627385986192121124525858005053137984506316710769242249904420859610773713300009889128780536567773992791200494759653300577463738944617754264857463182653956509060181501814793494318904261427412786156005925588475175938051697951308413889301087334050160869442052439444222935364453473638633857505688587716080279598886253217223549411987647713186461472648501749235582290617483925875999103886419328042070624204488202840434071185719719782207064154040559921047352493999526130916279740879657896112365540829905429625236334013502596650089883510486647586943374041226050944516125228912407757054371998512260637170209943012870711483891131446978405334759897631076367580595648690066165626202920813099924417644108065492818733203467695038748894861397392858880982178697746612751960381167881840587729215586882487483128202312194705803800521069673017135273988474650897918887901864852909865522349122581687095180198245447540720888915620903382649960852941051733319610156135207160484466898146575501915089699796486016399182855238617444789824854485739785624787880226572410131170143492603901142195717001690170700371445635604174417190657699171846455896341905197202537891018708647657563031438755244110802143139389181478314259896105595560307598362370484046130722526232930862357943876471008265729660289239567474342992960491798785548097682209594183509194574517657119000024543398118243106856169981677486515243559505671188754903047177352971529053915454688859137394843333123466195625951245548352135013303555844433995781530753769594601210133632638190184830473738814467506200476529917899824931494205365837872203656736050770392359518045247482172621815341684174365189159078240070313718678712761130594771908292225694624980981233795403962423874102402700589036262818188404624789595229083885171741400372908283720149670497935801830981075683405585207646104272827526529615444262430226180065990762907625394838818011693394692914348093573299386559723195868376121389702217872092440047010764060802047326803896101716229422793978947059948871278158246293735193133399656563311688946865987734680120098942067460975882171068720354987738876372435616502887221244917820058751968644654015560767041925777854164586535822446114160205721520006994279434036439465227501773651215391304762113343728667330793691146776196987474775428758042301748304857113006047314621792700455634891143481609146685597918610378127201403981307512037219688288780266345168649460248108418646286845779760102435270060052805278304483643662612201831605525063597220533044260225152288085896123447060856080423365074215543617591606629615477895897767067584277291738634346130665632343758634479217307210322168367594804929306332783399599976947751324580402817662428935560971634619713284901421129832309511872309380675688328156096313724417681683696308946551105492667185086667381233126211921251595033575252005689487558386408796503410929738940978822996243158910829384967794715028685745721250468927166626330106276322565558812607480583146109902636513463280763869794759638104297525473590778912914711581191524034553393902578450233055719984715809488550415774424217226887899812116863265268304247445052989701530652749349464906122452292823555492504616977843079979345008002172760606496897227533540844153983546994093245693296078171522028659217636566030991697151242112249443733521856820660162740062250110833435576622530224600597655990180212501617910449910886280859465693008012637625666045875359431643669139584169272753715700693891955375433110560239058524925494599134909852042271739988107461714040787163691847686752533391670855544514518833257612131868887573076529373900713849662179734816966128233110246473675589785624244682899059283063016792428930945366631248332540523822890689923698429129542135724183790193853871632485739152328677058885283393745617680163587097547381855683930614346782662116149211164433199694257868134670067368667508245693519747358601333566299498706061149225643328647708285676509823939131903331250553918073658115903264613431992111419417883738263462174466299974836126960695425621973434859233397826885975384232584083072584471371394825316633572145805339564778416574107532134898762996790063123873160624149099287884726220662673238655557111500344968515731055135646254094438707233451242560043482347404257621622700762804938740419506474199932795706138233381238665857923831259878810003963219730281092433326667926934186546095370334486718302962313546336231271767221376196257173779739508434772772038505556038855079731368585353010710842936547337487959458392119099384230146855228007304191448661626259940293207133512925990144052023119219223371057355183068202380504785296890988707004196588159523131332788369945610432857935753256882958457606546794743134812604761149114391708018257722212405958102078662442171795664426953149053171889760685000287230343155226716778345162466492645199713621941045369403583694475315691715485255186380147387748207156395047333362550593455102063041968649913408285569514803808318535703512113556582838697914150474274620761567301905032942822804827465284846274427236991813458868518521184678045091558314400209661919341234323068180476005635599530464540407555491805903729399179527240030815769128985429245709640390558468614190709947221933377514808880673030251946603966176000367225797488305517339057780321064300387037639418135498289118722236462707217383568373414003921105627972395155728642342497945571592591962467411081125834212837145375384982589619919374195322730419901189037533766532628799922622122722284920278416477921718376235374646215677566414071972902122594093850709191041048468341025395650159780400886604166393010651367607956516357772601068148086533521343776018396452062262346511597535216405339607496597493239036984548287189331728582749435101034098930854821974632224280090414264460232262404416553489237381837882508127877100100474642773488067378393819990038218002179281434866433602796453512761572978800220193334119084506017892667091975549707572490935221907339914489178370090262491015201155886465979358333738161252816982696176150523642091036926510161366218093282576674932804235965844268063725273587919522720753561891559535568518172134627580478673855852511658174724968531351581752594190386270471739803138455299320319872222862597938654474365657480324968059528816013103265205475572918363746437797205210502901615856182168013784168820084981269867223695380280991843746549319604693947843096052308192851841930901134250609353285379320714043956748288547800933368916935867449053065624612573548219688757000084602400394316285589987218679177573913341199668818737036653201598711076892568411843806914213353995182106987853694288991896629393402067716941100880768483476257611283480532753849052690181087751759577732955215132388666959303183410180164180749790071290027167935543919259026833146453802318394541952338668338830442206014013796774280307067441628598506688006853021525233872711557582550697579167306343610666612074158042111522061920573308386991657507265716310136169548966969991018489353272156899499971253546459963097917285734186830694734810012169563688668797260761383389252158507337915620739985631309465609300717264543526274228824113952075829581027151420586856663715516566419927126480997387665024436425317127977910989237263609738583829727051661235028125237541872979501235189001229674543781723174959087779904557380130852158280365872944373998920876203196342855204584696521058788059712562564509430488717580500539807431169193946358732551256319542595741564461220428228701492552523400857481706064347206219835516377612344365386642317306774713187062997854161915858048048037888099103531437384750229270444613188051103629799185993087074636176672574398500987316508331375475589875198986631230288138877520907389924070440184949213336427945505792974824608751399474749967498337849931177220530006593457031078472791118486159606011434973762871767891511924152503888890631736350573528046809791496528101846731086299252175571129089325983253018533687120925367034572544151231524491134638575079579077270664946385025265342871217802040886814424083230198864115745619370243572145640376781853857207169324473518582409838772488954124253461959062230213345308038219355420264522952776067309741283571731431508770853728620700401685537437227076612178171484199895574981302524384228586835491755557498163895784204880406660220666024261222222864158915515628667936705866519856634876818942578541119996320365150531318892833528809991795410706388417528239024551465221174845307775575994476470608608583917712311756944440434590665205216462046680758900870020977101009544636548881975756773848255711634575367577459037108575863022343036743604791533141767376181739338235985991382490696184500416516303850454888202273722174944101783172871289368542113229591205691207926221612765539715432405354522166291675565125375002451169817851915474295070249066795191038257917075428241782487563022491650268380418583968074026078572852905944977277806005038092409340688645230222108552090697656976478329725672610638424353072150517882119863108202624571334748472632406183219669374012661993471762611679499490049626347634674104971966525284302753132077931894149391861319545137763656792057054612902377397151980369963875677646532453331083185442497242326269628510088990479772858836966878410965107899124061050307105379702000233203470516866265203630944136676788013689385076187853598822947486839335009194315051488940894809237795220063457585914074146526407489696662387146847371124984818807535509107423408098079488576312310032958605626747935789266500220725199107738743801024894229805627011877492434831039590903440314103523505372459316905192857359939734317919613874455564804015340670979518349758144539946836689203206649143786964476278988689393461816150643329820479630683327479286161145278572856285321195600845786030756629496357306300561673006756338272318811936474863137201683897830274147502840566234222857581541036305400531366509121132184644303600234604293267791588984093638369048439604015695154445719714405918949569882426645282861829755276969295982095828556958776246267246322541234166734333909699469459723652343659408221928815818692538812360004430837684773411150311126256110242922462646471472610842870656041930417534695864100124479137577686912424615952223725129566822756915283197333488692018345635530401490594408610173923666175879347715368521843943073417524899479303389245513152371733598949674244954653914813841877056643134383061587223980341924197799083240818750656975185467564283009189166759291730577499942540588628267675503805981525188846555018951031104356672885250651340691723481407306749888728143701676383466101139354870372111791221416990316223745151731819673125442253766329087130992149178776836806815751981404975578522722832040340099475371659760642888849978613751414304609786926103613974242410678345960771877601522813658689017015830722125454131273436119047164091702412894412845348487957337471659074849063921309792255610021458324678433792555485285878484360977746015908393772409478379312583524128666362632176387457516256793017366976633317104525127947587792230407902390351164495749490013571234468986676189053852478844260216543567750562290999040563645733729516514602058612435580553530785010061802175803101485111387375187850370254588616276519535614267328062117527792496781294974507464890089610615935160608195194852041966272989003337985056897509508062108728084493420582275875768544227882905914145333780233376529225346773902682968305236205489683883263487412360570234628244503514341216552335744022220537736025212874717610271820783502520005798381410921106755236473761975233031625661715439591267151100979945914353483690283811468438220852959308236125108271874398309874059771184406807112460909201838226374226036521389153630697930160052857664525451853511617596392238515143162382562409709515117447136008154184436509436374081026905248457128929290858931052300866219311897795528824568002957212396329419957022773746113148445627010036771604747285580566127743166939951820655233213924876086256436704474821778358969146318930302061430892147500312444340143217436945518603873316565976938530488391976738053873377525468628063818805375933987326555957575329597719037180529682254843004001305486567727812069956716004994466393624004876557120310137458224763725273429851596265520202118199143154373502805326307505597983522128702627625369185311912369602371614028320001966333332297802871623365480023856144568006314025397294588528655367383377628208001075524137368709075526244101706179823027836864862046117032637218302578851492751235317401061719310280787583166486086042966545141118290931537635613769339311864847223061533360278421428084433199127401269149112758504522982719806252956883247981557814652761584225321613849570812375109208618992464230900886441320567209328088546566881628798635948582247805406163807847741731620916204222922235758089279126816268588308960805005613673266299638213446081283917558256228790306889721153466521169562438091925411719183713554572377794868981847486833636254045882331205312244053568718216644972972861428647484927680434371516241803180950601285705088984991209728662503425137770896346192443408060449570597694079328414132179368480744405358848023586875846669859425978127271885460851909730140028693224189639471847693144375586050404917430543640624455417849187938332865509608492342450622133551240203821572597956331125910806072468646104459630466572315747524424625720506875159916395753688153699198718648691929066344688428599025651873159996802324769608713168250236450771822062971369150442104661952173834097969207934018520975458171526090890545046005322673761231702706160032221658695088121800259840571648275176785750766625592915128552360770256933854527784141966375738233394247378704155724274876241369895120584911475230743941321427242807621841846901734400009849196406607082615962406633449001733434154142810842023735641984032532594820196081171391588711223430632442117391986878636388820523933989099495829751010800098835291443714904970572348968356918122035126252579619822919117421202864793456230117071348437833335230481078647573730986837202500768042220516258160407835561050015138658795913245234424376055166014468784749600115899898715849200369026699241760953176293886470802227456901915216471553231205179641391908923016690098414423275159927718979262973906187683269261395739918332452989178129693472744597072234096966152000373994236948154915283077218942768102722507887890691024829979523587370450475554352737123480527515689880919490019574927691773361743469235628871515690554607694606859470866960167293900629876409446437284185743537105022658700232728846342786958057503013506763600539085979750452654449756024800030445183963036997798865754401939020191100996942320184075924419022876693811641215114137734246813568884193244058774187140470433921926053460004079078672963603647619779773137198204091369162977794975525724385202445506581373858130142640083973056325726227591379962592558841303850275758461005582341715352401834730857428736100325576566739794079434658821651981440815392287009954927901847985861026529252482390150879526575028826442975510764873316991887477936132372695777545784642050580586600104732706307393538117048849381139930363581149773323948478941938515157691803887075662393009737782699296376979373730106325669838800877326852893206593588204515931413867403702463359931297926414213190344014962001746752440549710088747620521552429888679936095181872787344541868183819991463501868326983734998746746997639588655578496129349083885462528075032328135266210171869103347629111801985538983519938821703932128435807728566865169287228780390379462417246244602044144595809946243345660043404889884573472848848835657288938589331490844561082259432094255490729227744467841452540584897137280020044473919790815691028892268018110778484450698628951217842297528813842987113580165446521494904348822964594277014312680092960263839680235186863145337948157526487292748042704129853072891005464647983052351499221433601858732684766009952664286715970109604659182032850856193038876720897273465426557430696246121236880408639546143686661285579374401524876521241481498289495741292316532028730189027001983487215710811267184411905764881110174665409477038092265609371328435418125663210301904142794733876197868878988905500719675480560146116545658342775733838611226895787056623328347269372215229306392558639524254647731444965339252887318293138359340263555440913550349737629995438160450003421655061825532377821593718850331929965162325476946873712365544872929805053602824168314821316844245319933985724529521575365531731662191228685572446851340140181454424447879096331301043320660571444406893519738157057119973753693386651195368054840445401472671416463794480791882358908300706864046586960647906031561777421343599483201792126789867993709871380569133703703946618748134456726184928953290284572165322955362739981963327666515821390212248171645882539487382842826577844462946923455955552480586984812644508223805054674710894769680019059878108847148078335656127741430184696830874135706244057715461091173177863444189119660074446127544105987031027652814744102708734835435718769228636277718901460514663768161514204606217765321410935037288510126714637111648045113062536049624867099127943893986133411036401014502600319553126202475578976455382075756902884915291907630422643359609342187351258393889185671722572083302938080075499218789031092674605195355454282772512092176180198732113413108084861589763052018047732936096043085073518171996979760112048086850619691974720949555072593450865896735832048666671264992903476854860136188128460702799910436882077061756514764395195277736044115961087497246906400899136291126642924507108724910814913591977353074062900827794245912446909473070379318829864618728907139155406828679119889403897519455936555547528884312655286749157250173396009453377052999839133432001891753899930263624112315781612227412476648974948769293127619826210765116127964018330465684832927801795661036723272946392121345815581517623777174920686208155033474801985051578418715071258681018170168438720058958403075006338277101202616284193454063783289134603990251802753598027899379751110164197129923833237517863743375431625783699050854561976173535700071536140744996634589496141284646640107548230194255854564264744148917498819125916246968111044321845230827292836712077404281712385857472634391520201463721410706367705791799665694403481326419763915212276262312789669280622842830757141486178589106139918370309598173366694210606431366176534709681162133445944142585978140185394510913236894753741931924528976399281894134807729785040154298218624176021968479193329885499058184864113718714747995942302674938153730469901347026258207654050578676807747745854654064422043902631724492816273175429588463576740111789309478436095965007415080588317445744728454907308495843706897975976780741486884334354394045334680869910785890649338563657021327427108293678532325003328958339825684300658633663737770200225687689800491483930336763849670072826190008567676513173123101786274577687107730823471732551229227138458070143414810237691722877481247839359847120246266471541283477065120357636287303592596597518432279597692688623936373437868404173246742048055336006227218906375010241371857911577201655145957751627267195747917152200029716257109192336747537889639311904571285538068198285402448456639005757451285147653286230756784721779098866719509519067540146940179946515176431732941226771665294639277939463604634578017383577572234620317783370329401185782580354321594511542695784519327643045541474706053237698316988831834141546934888671766791445723990227643679559601908962710099360729423293998895625560758489794879622367223533895068663441958070033749089971425265534368363737386343594884591247397037964332566840421258722515535796293846464356661024958822824926853509347121956263446210450565445455440178840326053269417790575964473053259904505017090376097417790976208442772985192128617208470139573714419707977806178742642669406624634581189267905837137323919841313606091007311070501576992843511468354552108062635778346693251750797923136660011103720494323537083800247616521507667300312034012746644406177273468290490192715462119109417745154968874976607654368005536817693167655467089629514949588574598547423690332805998530143573398713682498072146342969767781904732651410538977559858297413860255766575849841585880564007670436840731513409630834934317832903085547720868316365816969246787175451385256715396240423347840686961779819508294846113915869676481459986441707975961936607850637999906813944630160489538315031327317876846206968606387279227642995517751508082751637681817188453405089153146609300421425676306039040946455256616031074016843897063871678787169862456968053996661617024704135055090615677888769218496696829265847077824941044600270920735613739764618805212701929778692212991640228387283173178820600737168505220013906444855676191377262309326057508933273610934228311860585887691816032312507585126332652046908514527339512655381006342147906324490367450619878768238060055271715927794154750446941114797734338018392050721225650427425349040097815248684507038250401392430424398563168038781737193023717544390008403379322812772388592433949916241747434329192196838957850309890434328029634812464505195469064347896766390768762432080189175118812524646151960713906392076055124912139456190290806150849220783898324601607462331123475649305571896254720074697277372775171505406391612116800611047305270130304652341090363102656996712188432321434040908285841147587215701636995995464300398207882276272161335588940485790833434239554412476339634731915176621123490828487025644141175355569381291813289904115264111445099809611237622656323994944178639041720157814499026832683721619824553067220832139000312887158761513104148823100346461113192280369504630862633813342813657071029198262464383201454556933766622809160547613335999474324591694502345391255913830925550766849845873988220410004336102769228644785866282684977479487585185141277934362949660087148375755242488576421647731797525255304111433419773522074795618822961250953611004916134055748677187501030577956328272390051766780774586107116123838540284336344176217108673340143570290867746510665968792866156319985945796296985922856603544351303001404315200380457997530568276443206625572181970920420328698915767379235205902908254123814280371279718994999877793478619566928487651083649720372283664633762218642811094139878380479090873422526914797529499556024932151692662454438008575543945336744963216792159721864179057085029056155408729808829189988579881689842495801340482331877066526451060829270460516740810428529651173079504796486615424287093908310067022439086145907897420788823650353385642111638707904859071005424846219311390110013057945468195132113708801583149198255071927927245806136850912720350218471399743759362621247458467078037056573031771748093939916160326021547258673603358579952387508893644277687276539958371741066458691562710304153985478697749123612853097254956236131873970263408923533705516478081256081325060562870020928037500201548982619150067349070646165315500237453826300231882731921512770769966334678605714305631809504758151455877085067695735847509024104241430294954436104484117338337510654519363441504325303080427178108107109921537196890052602445676894034719702591831832784187793031837431338073276418785572513146124527218948117962705958746656207271357539161139625185845529870943553457657398143460574579169634657483418459816379654245678832084022612529423801669401190478407405285546470762909110481803242437413558163261100189074077186554949551703903353980098019142989188778661193276186640006179593102371000752602784701653508503291317125774089668588235305171140747094001672408288782782360778505281291311736132004121842195386076614424186137400739786008688317960373680774296962504505437050874102187019995381263201688542574840369758133424398242722610918152946298619058059414697729373300106264966150231102392980464750767492198554365384592743275706408167195450171235761485055617564237719225638834041814333740729481557610674578816871997976713438190272753309062714331332768485007903728088728799135510602462081868728381508362192630100938695050704591967645838112523791760591524628372157063519509784174974495347827199707498397474079148391007007827434579775470082997309667305632152782839217595945940109526284926749457772021602107978590382156492382381840597566042651813880052435910438243026461972652953776797738511399355467343619800026331841012145626269057645598701109799889018164729610874024865121691147615860758272167667900815309420788049280095793294703826188399708931689622736472982733919079945129379457104191224516689618562022781974815405917606057728227100008868521280150048113614466390425871352514128571832459528815289547081911605384392611428578273717122260907911003094794847610713271447171395830445784617533437482641115208723366504683375028262089976134240667292395459987790686848932975625322325466693297232911755552501160166562139791038035819517424128644623490028905857915506043555481454811721885969304370664307554826591583687133959743229552948255490317685651772874867090623720889620646937413286172317009324287890902287307914996903842709239929040325760908883053741276969084287254420088857187799219758589211878062494396756585746856639317714503382571088014898059147062925005150206894819840589701095144648308235202980934982403243111901221376786459190064267095862743350884969882166837943151991469843551778358522920079549652086269873125703185926585515624946902536118537907916603427714486497342225269239537723667418345494947188433144886385956033615087559639576615663816637848220711788297637489038551803680596136597212547844075871677264593320723896125004091616024992744428605080737853427891901857124419473670881720895737276798078045752012375989090667472466171232214476856778029073755165574532973564885859774287291518737692678767803930663201197968795666945184766104506434909843521953370967841604826439532764671306833164920182681068792235513412287338195228329431554911352510940770685256848950997208769591622852021267677305399332378281379220099910084545245818844219633417778645790586708187274708833060721663259088738086313540239635265160686287731014511811556297017391216127440384067415509517059421484477220751441606606069343301963034458853673603584827412578132237608569566314099610065078337138471272483006795450391475333471337870237361173624112603936026664685883231559603467452052723515551283824625056331884740607451163662440662117344431976655386711450501986650858155053626950904076610870254137585133523980606175146012224482813288209207252108915399689739286460652153972732154384203017143588474263498928136991648271986284903763459786410505350627996948022916307372039204742884976421217165393895564942063396377634204812463159817812085194448110847219098350873469425418198798288454400381347769357146058195655237889285410582888032218663819956936233361531746924076016902277792674978197990265833459570508408290889378153499675870552116337779433542398896403425863314278618529572260576521110573432141193424133803511514775152032850992402810386495677535682885926205576901563399009578685821702735848503669981424206192990635901861631978198800822625250014013607747955405598108850994650219651518190470342894369612927765611424866270772161769770247340349390778458452059687299125148513302899865406070407822137703534746890275853682905682007430739097192143785268618223488258422998259837297801021165411623437424301014815005533111234046516878660514431907909099169192154588904763277716820807989414629121519340228610067852845537531239925676734892440392572165621778328921628554639161888111699518181699067519025887326504307683568652672264099610991283410429445871012897741246606164212498170686223232263447240418179828250313332701694665578836586296789478151677472293169294416528323551766767721262208531538140719851406064853851148217512195205793248435286638668661484203456779359797997505691367633506875124427157215960671979076212176818769037627152177929102473755846811336269339949177622851265662172419715471994697255220601142210587220530154003270658100554692688361671065096170448144131007214426428190423068475420894918790469279118714599820689375000261901153323009050292182757807931090307473924231744157725089845742576937260031886823888691542019478385699998849689008026219669189927949666899288594862665018908752268709305417206443414137390771053985234229537361774550768387903609978471915789950656144248317587329946147617988068573785675254097535589471146357323731095644522752881815275714885388435755025719612656675424676711994699692769844653429628476962728626418639793735359963610110703067819938535817752570070075893886510566858534956775749067086773027627020904515717551494369919334525859392686732963523557442625896852813772366819793863551928401936311839431468655141567238114797252455662603684150492646652798425216140255713115186608608122951210489660021897843851776399014110794787493370838369061934031984565155014599298997080392000100542781966433205624540446100196137192265865469310251231228994278828565992269543463472487095672854402047302273805083021195123050833222908125412761636980869928005931173745877727336673078869218128210145329056815539539093515434540302904598595037755711074420681681291603490097025505584108420498435086275697062132689676540495891120896289982755167867242843719413524835422116852162837338950826358519216175635096548994627805771808365389292626994993678124483347537850717310194035415895848044542270891593149304484327092442840765491635331191254513378082998117298559946735301383334339212718189005504936805274549545881318913021556952469891179144229757535820207129404986831142835306593110053638046404415717506568981682249923835828897183275076282041520781016068731695007209241300545997775996396463208571757294193951390409292139390012917406299125143608741549148313451020747470019157367772764271729265297503486686278486757556455553918779940215262546337982627636308455949661421616362193521555015325640677819744238930395339289243204769344351318856272976900085933109967381380482770590526105476252676225017540513430944282760527692223808086573040013863012125178161927675544677787199052767595512266072813949130250075264220492951406617281094160529384882667234064187867925502875016276673079798898021468300407891959172698484384680460880773081801529059923994042355763614685647931904932285928414889546102721737099801053740671751022588573381874055428599601714298193900172388340799962238388881849521708065698324654382029492602563556094756164789823438844480508606797095834956938032824472958971877826325732569554759547447655608396005405084964171093672243952923693308250822140754687671406711365109865726387189329594186076124143364342385810557505000503545265985194629425219860272571116569890238188446305062287058855486503325719911572760007213719901585752026132385472121977379733583669532449424838995798289196679708404778497330273284892487668491115596041869827861263902626215537943867888097784226460364745207291689025695150670439600714801973874394909650392033477471901936365249554364823973980303217672623874274902651201489674378811653815923910407323131662347821615241770771335996311108646849602543157707181857824598409306471224824767371062678510944885709040431680129909063900648055495465506163066860433206892473471761051536269833579270454552396541667740830024906392548924899326225778409195551998058164943114811498329771335152325523626235013786864817487791728704474602665442796452368330418819870625993429989275944296210994457325638374622968824677622832710298855038412900047777905547485340371351494464533659420601545645923093571837041819607156272063849270666618986874977963880722190788132289482583634616188019842903709532788494493260393181857801659201255885551685120694003282616716699018378330273061652754375825708162210339702983895375022745573538774918355756082138369566914704389876265946789867438321379365332365923243854187437624068553483273128469012143981282078258240717108680760908585726253049953271281605447311051306779186819437353669924678366005548139605515109530702116261456898913068310761502068062986361436729561646187061130214266189720456363463620917193109234071839727366526733901103818903339458257350630043111900416294326566696625695997356330211631206674094958255440798341605259274055925204320999854564312539368601716455328102729422388427007664576044945973550007790932556282770532052723344304617842554144731045559470848057212295417145200512178909286769045397091990919388133220751031111431269278543605708323385320167239082481648115528326596818959340638033093738873102848728543758751605169468462609158412482320555291611977217885140054824157749636425012267708580069865095394017392059924636003451194167008498557060910844542468624696807496174106152649773579469195106489307056856306094011357597893111992042254724855822477144167858677575886969362450247760185319544902295389905523838787241826285048243236876331558124140113290242137683642507027724998345181375550198173790639999602671727554118240809137978222029315958911522797436380000512026967473664861557525977383206487840947975494385678159908621291780644037424250263585783263386723037520414808226795620663274077965551332703296588796870623886588345787552546050495012262239011923052031761353449646226729772590584461657051971471630417699216108289992980619992692994800894017802218520220792891568430773474141139507775437898194413789817413470957287952117097652678449249768631986587475790751837663508873048119683037511717668599999313616316553445142232070173096575986132850120084070195987757100408216701904549083184869783051547645300624549080554134159558817311376897053828870147951667020319855028285336714124677537689054634092788221351040966398697920831631102244525295575308263808354721627386783006487765759505598378783218112124162656688594147910835597018525030524946354988563411412829413070741080367295519932069263644000237906792527148069149670733644225198622848879109999608305469722639313776909276870798683518642986175959831192878740996703486456223990222341118835469852960529175608480793818299098437149084182051184660029940124568310329248558626733535822714514263703734841267041567766549439750842514854585738053794717347292444901680523874064037273247499232358382211829412630393235427225928642597898822289534703586242867738181080719139805644212317838265075242730029392707699687513255962179444373177730016781600948586170900058881968110107265668238550147847322577682906459614848915586846558927180972940881900452690364278846612906571929738319022770386022619116422003427808637838703557958802413504988108620344693977805770485978463719345445578972976458286582273728528824236910243513134638954669281760225731569135108056057570613132101429900506393065535827447266923558852377406925420856949053907600791157028032214510684957687766772093295630977345852802397750304751696482266229002254680759146656084119403293157218866014929959319392155005793889825966988769269051901492485230878109315195143274417247595304297533083286973175696652020378008647319072995208256315264197799262667028269392486485532386188105373135975746877647567504445620920442918279635078512776747118186917813150492606430794476768841643179855892219270828914062664602179628151325056997703347114893403980205784710997189753627683745048865040311083017149526741298008923166744894059286264467219512111109782863495328126322898266445482232399525038943878532330826368100347380804977418771412972656585796661768515449476616220741120505434167145784160035972398135244088521861549323628464063587287730647238784505662919294976055701668401105191229773267006556416668709866619961201326701774159730693964583641130311592115634564225613985596998599896628197947469719265037190756146471722950903122627381902602477272062198299028465081774491912800346365892463231088557046865024499533720493239672113179038505618188786996421120418332913338084376279403170617216941705206153474227036998708270473844061789103066721372858396977425301264359954566887953260890981614354155454200557293686795981635504069435894501684509606954772445316291547903567316828545823023044989988583719263272186739709317081909589593752467814801379601112563112159831434773055915788440928695572688090483430579217482114438176296850887168097126052278295991681685629232208420757237086437390095148776683421476366388199973771731435512281587566453551589725984682534254155117797208821302954936592629925631449904407133077374415727077753763929789724993249758846081278537908806473046761047157493458039063739715032693264738939531228141956474617307889583195279227241346161369790444843931562784887947036278510121310336656415117707312959791908026382043768850771175595383470473070315484591689575656698618585021950540698828212385101869630620073245212076273376252011995442220093427403995622088747084905295593492050264630810206438136654600822066708291208691205108458868087150065089766012208989166595376337366945986417744104666003986165206640674021319537558271315815833306332886885560345275354291686596714066354807393834786138670823743716295222001995493692465388002195912819169827866191096498177956979181093185136907795256636913189067563987872035725805820681209727688106940171504574930248835947905218061686540157161366500756096280960753098682712160542453405177452062912944195601424847545021590617571516874099693209115737825922006823910556071321951666777550650414178547003513829183374287263120442446295938261815451238938645212660277050837498634603414453913497568791760938815447346474637126262459062438160727660907940460268040098513832224337908024526086332676154701370158053363108991804104450548099692772695928188732692578387371929611539814751531285561467941476128628766585933168520774069749037895646836867162761348684633669860306126632571397288751883032629575000915356162305224194099589397487272754618940105873219013890215242645510358534010768642340956709276994959065510222588212449151984559725479580428250910923570650565338499022854752535128004974313755439325803620031471723765757061381706144767844615903258696668778034941416808918602075072183687715085212349349122933498049187658653685795438825672302934879976844411949305929898037113024128178567326827615769859357929407692421886406731041285386699312968026171651697759317663654752731390689495646267305758801831804343195210918420307578611430909793107374328654981618106151850840439986916634351569096384527377031509560432306291451597201698231683979293733234160686259279747406234359371872842513473190555834296522452811764706456628682404059263700443685752442858103010967464345787578086369819845266679366708914802141900877884293449257154731861421733450720651264744762544295474792320388209072494706690088014833663408322971679466451261879894186108318867218217138308851203027081724365297392666536287255444169191574758491454736538192536615083409258125145657180393101597769246451976930889513103420453848241769204415568291362414871266167099688107011490784501016766651648526696527514699334493858153104928475293091434687562042171727884715280754514787042884295595415349026316959194700158998193305471716082299667803036348826297595417928871107362072137278397572117524031753493114592949694097010732318364429521542290480361821438236465430108095112163388224491544081343563202343553046859339458641476742343777001617582147715536671711485095740000977894319224298343139090460266354202765081447460891718322921007957811517542763579589665138427815428771149368834291349750468706985117536500986452965398403361470858128559862608614683422837235806765131006685145237414152450413023991803819194335998885413402365143596778782961906076886260404036785504409193279138420808328242434327001862760545539253788248333845943022101882998936649269246039733436154250457238585975242347721152160290792058296721689116785772461662334235958778102172489309315280635387824103082721481189234287975065281555151979735470261813859860907976200418781738967774333563901072518637354039818458221389992628611671238945521922026657635399252409424549711278944993727626473086018972869719806688394761214544475412720418103135589235659457264969290800685533603737820761237355151130817185305285213166593885709898048175330265046794399627342565723387999116533220239424832603925529880260474102704827981012497941556312517706203279989384536089633978046190975263290847317863481492730835091327413709837937812640115006239896049938685011400052830410043495053346067892560192848495499788426363330137974187435950643429901818331024991824650153356377488907316220577471847570885658939435938779631818073040521776661271984173149442881955982095370812850257789913804645230862404634639342817971437798724235163356068244004782256977605630049043251867633840205088433889300910685663282815595546985970572136844892196554280538680962515730763748412736112701575462649157607480311737571964089381043355202435498884583251954571062944111439392689039572676547087117021809801990677049427859722823379389883092594689178391154672626621476027753839440446498171617997476836997080320272984341628266561482409421774258798570306505380816692985513822919552626625122765815498711057328417583330489273282243158429699044847280459208242186945152691346158401067129615417505887749285309613596834521196966335096173649091417994846340766931784184777024863254320962475373769144480452084329859020283684624145155615100458972381248426257163209233740914461864860111289661392107121552347709771132161795577999676121219704706051260268720030214589333419569576896868541323641009587577291460502597099357867552068577540937560113192668835233459674410522259470551164149788409472893015715711988912206605392500574639887686342754693259566249218580847955589419089985375261606712101860769755714574684071023675589348992387822966149234342950973140779220407837103810379568212028850320508366428220368591380913275579936913667131826673453437444396104560964997586274900897908141265670034989139351931843458389560336099344376618011499943636230860857329785864609861660417619187657455033951126617601130179588045931421915431153806708295519521358029790826511921177485703554973729584723736537194586496683802504686085194642028473344076214825949416956736526018944706071671008659346567554084853951126766993666128871958193666223128416455381716987654000548494852863166604010487129305420768403160347038967785593658440093465224785070187074752224913481472675962111326277811149212622065709914210507646084092996638410842100529293857022533363782703960013946011223831926832868522111066450057842468854689003798351598447282389226478050085494715287742715561592070467895403441556581844926453366187580520480208502291808445691931882385789134303822772891959122021726551523546140914899262977148640205569859885775403755300650223026980595479103880518580340131890106153105687475248209100712462125344712886351092822275770574254225261070947335568738258523567281228194719489658325637452080355270872902136705941636767283340346530941408493728352844816482377676096971497974885509268551296602466306038734992026770738935346194801600961632159864974812483837147292045364738781804756969699198929700642729993020126323901223992558078799754058775148963341768335615840531192786576475363565091742506108562356322948516734255786703798340416268567342552276610970175989227750190738666453025397314397714081521409198820981584723720367885103837866472487466099806134924981864494252958323094291173237687590203951796834769084149441858267850525814354254770646375664141190686718599180010569382960684778892642154291653024149975729057304040850895927862446865541420914326642842656507737292774696500243714863213587563856401676574169868792183766932707741445540417710428079710060228771270206104391792196913686381811963624630232041189571918638295377099385872163769735171464011949801306215494758413181543541418031726595459771325315555468792551977428948636745486855533646392079314753731961828217616518181960990654519985715583173586273275899450751569514463367015088753983157500036081692246553383779651650252051894472061370564608490385382215088489042844221512908884429944492043411436253504054412256675438617822921473378416232155870486417742634542597019961540567568965370950844176979108343339278168573958976174997006889145903397749532609294143449780113363699306826116817231109317949176566115963447374022442289562627773690248962470101672846844334144728125529221039165605022412582423289440728776508081155043136668001021589111629276469577698112829714037786072382488523232683789132084817375287069754698121649567182104211561985845292986537306846785533029440056873709578596880245624962193359151038301015531181584658072353446433078470471870056038861756021013679539572205177264681937093763049559277785951801563349307463430989178648227933947205424161039016019929177119504699284319340717805430089572367417293470963371851217105772808591263847819992272394557943799849523927478024213060905329727652119311655333670436242829793279252161524352353436409578317684734885689460032259483154520871733082207332043757009537275192673365458074679883662936165910046168775785419736416620487244742816927893354065243316470923383580689560021137985422670954920194611423820175500690500985754252193559911563253484902005877812514209685261265818147310316331266027095174051033179698417191965370588105559810231107181420426350320331661725957973161525057146960339528226297940500100400679757276029627611649681873782643841007671824551026172139329089539615873368500457473823853239708841886842652030806763725030561406323523718574550126775496896221603901625887305062826088070441890021935765042430293214520423060358679761316164859354244908495471238353030763311211529604121699398703259550595137947769694825923939499179672866354893875950910026153578396000790987186266837865642922885606354677050681304004021232932332824118570589141734630106701809374584126906316330761953441405900237514270352219279632378782383048301602802308003565268790292431536254361200013118942073931982704501993860552455252970730786532139659711913487554110718462284261720240562469467531528612359480738906483375546981540433463268152568601532088492027843145250035088292667633658227517162387163868071481164039848187270230257504403244114887261445710168378946049433175812814550513276479673309032628684597226064534828431708298342414083576842423437666673695750757552602860816759789233679519837974490310905712454917949318876910532306500689227893866605260087810452602381889525826131941194931777661349439970123973482587412850229716407258356846188172900537500612561839694710005035827366341408262418272171334452977459372615720850070627432382157654671092631892835190401804202724413582099187354496395387966534796537159291466937399598692779601666637335192967119410327561433841072993883683600269318881327065471916006857585323916682854556615898874600849487826311484117620254413521601061560344340447081517155101765600734009443177315495103007120676672165264045124602031276893094424864680693157413468387229665412947088983183392792376679914849988190089130861715504540042777227170824452584094032481204715872994610199360288512030827809470401681811800094297999230638054219139410840677952781003776420986040986701322860893948032575875527268242579662646478541774993525893089867902841469141867074000290742330229682666471019394389712965917550685663206962992093941258926027430451937012737046198132303134954123635213780630874159909543079766941943861359845896150108999209529612165734664954557076224244013381400470943492923368182922095142607302521713058439888131353582772471476539868968195720970003435052756646826132802186499888502189040928615628791697975880671881152692988906321088002084421929056240255810808254449758825903666497185083357662023912761890229337542026763881504689581260177068826382166605867584061625002746168840142696047788182612472257427166735469639313747644744328749399214478263299232740734737297301507914312673924463264688136182912979976020978798130728760517526075850397106001147951642182794171762442108196157898182856093117554048163478203569981964451821088534765251920078193739741986025815034082236529328247842165597863970714130429013750114764391298528925690030380432766163807843151872187576846743165365218125102252820940615539371930334283560145883571112680552755728270460558502814007538193431674027460130840741930400918851070689683801019735085158704188325507260323099667553095166491076257323866764096605810566177193969201529540029893490935767473735855534459307461653295319757673351893561541576757222832431298424077973757218722028291682706756542683176871964906221790470645691194189530823816249404466466918300057732158846200790014684222048193209493838186862965031070488689405110134415916568977772965490674680079536801538480405016253323890912503364246519471601949520966639004817074164331618075296209586101566424986965099547670730805904460321074823402917913594782542553442824237812337074699957826647364324673105670865468864603549539821208814649238567900585448894886411895467013163245972184576044626227656247005303788310624205554720889809122052852108642496917630639968954805217649217199816944431121228117813227752190046430780636834206098789436384404031399884801262570994863783048112609199505805992258562213314700072944552672395940155929687084164662068413212065236079892160715921447273158426879705650949939310613870769427614850350957983597455559930095957801643746342990160936124459777512042288281043276826950045501426399315539874855379144592331515919190462612602415347480871937590068650028220629640555060410699751788637323286994916809113481363229356466084545115752623418163447227726985753014377299841973506751264920147838363240537085407695976824146399442185975149295303087644733858443455626447908469275932996852024556140716668019425094463495689030813687097072521747791116321839950066720842996843997388940872567592377605268924876799108008348628546831437948411251333588978642861739014577019514341138776669359548759307713103623674190809513403617633307236468580703227545918848201351888375149362337977448794498384407320281210256566398775487657581472673257167831302505603788578182347089956727442472090105475500120792683039613986663484701405295713795368266821586721523679711946061967039849484687005612105462936498961402947535896929008213137710313119692331897460900299837274969145446749844947120291377457772143549245357788125420407831349818855371602252631820505096617022103621195467187726208610463183700353330930622379744884497593962899778762157928193706590605629561284445091737412863326770227828964571491616742709256252775999972884240889321830967539746320179026125250984247382465125594685144132390189868266564461732288434074603683869061477123828802957971476847798479431518844680280661595771350621329596371228006295943210297282210677165129019351942121343755797380692120798949709266105824896690489732839315089606675396830717896060803550237647950184894502393057144064554083461096916069349574111220184192278902057794971117892339656239185636393103744021989759127780253612382571252344790132852247121082834401516052605916191530457778062792767636992723406299961786268734399650554503107902719689507548253080673659922431597665007321696341108284990585915106406409022833965402002254487160779743211420949242105194686107463766309368551838385086554346532395323052564951366034833021938848716151684030996150033114152534859088526182852771472396182307960943661536599903303946856557629514409525121829977123289589886274075943575672012966480155721207314254227313601631742996128849896187695628497774627745333852597385538466751383764757717892595953103358323917891729435317808399457297680625140982917974751858932756962660893102625926958400773023537784805980443056086222811202141153812030641348290989114588700619940281051396485491894939577253291902251789889945833936670479061786103980559489681106627055662955370016309251612088627391790080425247568739577373651321880018008257805538042790020535855078464935866332234144760081503509470680493638068301998379634121321450677399886953653082202566785196406666604792232882834697132910233682343392204455116661128560355767937703244321604381257660991174483273188693327710173708264601418332633131532461339077499931232809342022464079166686952912353637456693670361324966007174289575107671171272265917672053393274669325007998670611799841175004044096833837104109832839402721339582962163886728993781712886414663382456335428085759983695399177779601187126192225964007496521971674101500057207943920825234921491600026858229044463585048865856498477283924434142490544038650594644241638417517572695447850014275080124793587458056559867211653113690239245492804949439328172861270356174930366388104697154026244157079625845226221093843965122143249965205848957771702957316370218629942486284315572586937016422140714644249965586046808724110616877282271500729511519303391649219506526913722457736538931312176575760041926797652377999384336382087861224633440350035697801647083368559280055168386873246093808444220753401955740893022369548707620106376513637073530938620262168645535057078785825463530991960129609990146361619671289657786577973851163922922042607198090156584181017318935350719624839538453117146119640298276148400909932401663386916518256567382674734042377661654284753752741840342396237030332562803483821847710130352476421411639355585123327162573343204175176444341273789382241855038459584380184180559954527352807652537370286990914568080550216477189479343225386033807638683965468035661294462248882048848670282200106333925139490808257603270248645269930121601357714815904814215937130438101330851314054231141961762230791599448057017477802728611015859766794946586571856396295956647960912801714088127480412912006928621861507769322413340477104229490926611760116979522783459753666752993050686726585300415903922346031773328674699090244064851574996619953621321270813385229039555254429883582649135295519540899946781078417632669034307291662971305793897999142190469850220507302485806097135590623165724111782865939288882529449175174040527073781997993098749204940309968794089118962461729835733700099674515402972872488697696062945375217593262624480782843377188960113273306642086114678487116573894039553892756099915759604161349814491940158828425746449367294966424998577736466112004251347495375103777126752456936290003977829246361226838689824506385388819511901079065447000654064926274123702956656944280332439683372803604928447576022897328284384268607461176356946563287466316855275742820541780986810623907816576553356951460855744949873028333658533527056070356420389178951386696064203723221426913913182044720450847208851585932132864625442709309839912517650796917083355684583683386039586907184396250871684960441723401922047559339939180112910741876873573201232897859524919516832426413559424753499759010118827005074477392823676926821917310485335680422545294431330409084561006174733232541604209675356756542582284548713356451308793801990375439882588193487171012525538450607930511678578903074907581535272896215402699070343561669997409048067027065161832097583022181072680630059938600538274015300137245514313033317061259795830577670570235481878270015060432708216393353952639551569012709964599947958729750123327119016371048473228290092976141186746798844536177970954540653961049185263624757847686053860699481748499174323626620080797757895987857858472043700286245136667447693089969172177169008655563715063925892603508352637312284013024231951831648844955351473190558537694396060951040639218555966715908551175066397878732617753084988867794616121770932337287183779552962369116641764475774149157254228828709536226832609660686463518985546618075472186781783693647800937010658449133193354455935023519699378586978346334655506699858351089224575057688311186615238906984126476941217988506004168260462611295293021332303338942724183335102159302898411706211387226042620224262770787173432832225431572060093398424897628993847178322363842162424766865793772754565211668133541961910499301819218966481454557219694580171000498671028110574032065081132975917889657166745132719843734993433217054006126353551524055529775777821670169816331784073199758392866015458416474496674238762764220333385994178842521061023689463539383188154685997494014973806841235648386788240576157775052824597364166107790388628491147933085873630385211313856513227277755657758520372657151443373130444098938361800666814008518465126233160311704282869070662410017918561429032706076581404700313721136011779822504890231902212617048609148478442264420633759863848151135214542975295542639106036743519267670075468468027572297499186495858917386071120318393965367081524097597294140405169831678299703117719119137128244876179438442619977392943116822536623077735962333529565618399801058512414187992466824279783353616506398478061351205784834332747084013967539344126274720229065926786819016143360407593767075276772319739354825339481506834979914745916839874754340324312108781791089561933726701463166836481687354031564493453882787883503821399700434318508955550732141494433046254557391562772290683782993316450217042626534476447897211631219497988305485035182565297646001751548129917091457207057358096576422884384399480697590857235450137669257387058454848553024373313027511237456175856694716345141759085842763244068593918701876330068269857336340644254425330032460259447754390193490055415516158134220183628199983797172992811383188622829707094093693736587280436733427075750754322193342961149677579895523734813562966567771785150275740754922619773122415982331450909750104640281375816441576045570301537432436340383782547338726568551002711652215869984573069533257153461136375520475994678623382975005611858574976862760999647505831019081230779282512306797443960931498345963272311783273465992040735064927698089716423943120007138586891657801471108619659625536331366853320244286032719272682166328219292044000348009073098625936663594588663268953097625203056265373252100385956001904411421950303304189530946388945716178821116957823003914089973548228806809138269914809990397839305561064449128851257059764440970039417176185143478955917153105686247260014705008137157695260945369398982917873200862651700493189345191687570759124507571340109539411853625900057114466022377952150599497168900766994668469622438809472508703125776196436800558231782097537544046919702289609477757325929400414779787637802051121661545059655922901198187892296697330936306341282863495576616399637282045527258152336401038082447898816201025255769718513337705407075239869478681731577177055725159737502839464249442908447463494258413726243191958826940984965970165441097956943594941760538719141729079754788540848707767556791996628468008765637997233676024183851651209812708401301296810146458977162036458497894515890959044044168402275890867949075607041720705121590864364079546657017007009111697308044907775537071943101894741113159236493583549129746970056752003010872104405498378406969057564638638921418497788777496771335791587487936837979887713063130170359251401496626245381269170323433951455507305507358467130581475257598229842858834637461260355012334756511448695988488242463344740585239414985466086106105128275367280259213828069436677466979292196343826484722246947170985481747771075209899269427937888004309523387959263334010478562573800194766907977229494525789649144252245447752219081844854286199013702005971535815904896628661127093842289403796602227052941903772308414412413147254305490495881051718134073852331955035434537386739591618088510377511265722203159471628336274913386812615714420571090258386738696796496178300629999339794812010412862000841095490433119388494090199252394578021048322246990451688558999505325616524535252070765747419699706420914348569866985772147248871240583220021208206037170460628403425233427976465675693550683574879846011064724176651787499354647868151581629169432185271115432745000709817926640534059588645650653138817511956154969372378435081446221388150339284494809876177525079404804499656783079319310335138508284822807506779453565771084740946719326047784264955336482611605203981550149949812208805683343993508985517671844178590883244278672570143959698087260953554253961293005586412049253335823242986489057816655289704214929250781708156811236524445364084414988264761047213033664666385576956488358012829950585053429478458138553959655890473600968581672013373364801529309681946597248092525914842304410616464028523678623883670534174497613291699735413252676425647742935676536702439305603316197157354515119952077494157562000979396539824411462059655509302210016789190644316803827011992353545348625975797614857340287732011312274532084445155956983879787868025041981998342887041367063156970228239820562026024092386489922052645566704692872585124052514992696687827509839274895598665474634242011410644186290369334372953070778898370966663814948891654813214689835280749567179569950308801252903641835446806514259181743159738518209238652777213150378899856970478832079724142299758108262843517615487392790717289049970619201849200937713312560622074105982876226396014152604669470996568378505089683002065565227646824697769260629074170841351668161014679057940481472436624683903411569278517979254253440449302315350902411015549484780502384459301299314960004293889015086726687078274508770699288558649935675105073464550725999906483489728903469779748671741495646596089802643754575853559607005267531381196468235502504285792531852885361644992312245200600435708314154120603870620537863405813027003331813918013675700145248608609487330643431265146319861661926346210308338245666325862827644977899119601783144919587139432920475633486268263375795872041486688111814016421448473383283763229414975426847835893388277443703597795598162006416294134484156958796425607639282494601123234139104426543166157305227647239164253346035966861350468467633497391473898974476574350429301415844042687888216848104606190371122658366553841893499586340126740097108043490925141468177150718555370769741958793084255890445166440829122952274717796344398710149707773381657546343462734117141998629921632695697456919708056915629131245445537204993906920972946778471916889130533757314337348007382753383690393436991711803003747355502921985114148607247698327731747128296554861417011164280935360435998826085696743652522515948265062300238063759039768046190789470354321945541561093998531288007058444119541297927470901010744102143682249808246800972979889214581859872634595415636399390337615667479693881781122488722722824497413446512425374654019790815307358095213489274608413193148836963924209499743484227235983255284695179329295344145994942487090764678563519624139747970203949174974767175020498093019061773995598770176184666202995665235369308776426353932824569845464936547365500575012403168509235626457833618046931096751437474629569779411347960606818963842245994825126756450936403973978185122601347926946865235228215775310718219572772097213364333201402589176958265318936840692293312643575894990169778685523073794276891674379065822734124625169796783281679024599297796983378359965451151578969111552978126107828774840335479393780835479363009840397385292327328471099388882522420424814844431694440293614740933513940759628172723302886325913245123123853977398602678622161479086807810966471374432889529414825184342562651212219263960525304959261887939725121927289603967416221417644442416368608403710175311223643103407436612059286642647587918874639754040801707679048278696810689845171551727530908691060901699498343073795885488691256060457398286776239636399292687378377646815301470898829118488481254316056066274156181281695534980897417535803839628783799690358552954292668246967510843514994126409358463738893541246015002657472364867748112367173039169349622629421753728551648845192708558931909522388281662036321585341751044092391811942953135473189471322203358082362214888988471471995331600432645825727249707502444274756552232372900181721097509228078179903438172662670182056334354067743612867777721968368317553718671203086205540369137035110305243419879016663734307108167376565967019071533915545303549940339131548686843276319450937090954127806269040021469383904954780590870698527962299942911460825727112458797711077180168402245574832975920901002411373119385788575280131009672958926054790441763583488215835293259004592948222956588536445971957988699205365207802630258876194038546506717699406159455996595455392185985794609205780807506223560002718733380886336349655190477462511838196797993355397406262810838518160182459986833358832890671994530340786110183544108967185930680585409023132327550408441371937389932636615704856286026914859686791538425804652526127882048201332656333149569308830163592128648202378305402621753169135817527369334133491961682948673805919245873762352546860125351045384053699662403050206570053212357615933537274292412402176281416537354336555759154025970348512029962210125504439980696998184802790828017483494343279124603786719382056933449005201740870810260133618843248849970291589122209834784212434844016910058363696720670759905169932778360319608079505345243835310327826644093239931378644169342611347543796903550613006953349285714846301968510629261704241203429377508524008118751537679696807561364990902043296794593441117323671130579284013252245035581007490924933215758847448552556828131780539167233795516217014623323591109128109916743757560360246485600182251450682616676154018057742977863044647006328440581615019863361816558565727756152174606063768245410102668323589817285180484093933833652483182875343829616108202794519354609513531484424600594716343838680073875671613729359717094922855598034898473774482482677268978001457615634702285321911148940139688863591588114551840867211315091781012074032096034209988470467760404762605345266612648588730453233919601079743692854153235965659122942869680492005415240543787817542199132353414070601039902339721699600929860551350536409056071468956315562163325716809315289586415672078505605014753498211222182338071634574431599571192049991073172671395627583139566883265793262571975135421676000471875133183002629588014295267343905448406419481994574650886322148661339929643388872460472585901084076413838001477553956964487157604067707783411793455388057510680989662333068379848939359266020728115476802054847153302282454347915137307096171491259058646251687161205312151874668145690080576529645753760860599615539402215163832056514942385993466271600225049469359855694698456168584905399068826345116078587671937678026634824652954516140626477084300036640039233663451725448192863799758234174578975961950764287367347639016090538505013957736292820582640510404520307494522137160751913345886525411040715179288299405091380528717020893575534082328020953983862712747652911900262712307716776056885657173038350982885817620086651765232697155626829196437261770684575554423978544665280768182438149029074552986829584599480895216976336537904201711660447618216363665339442322866913855399201115697080722215183474304399172259027703420144028114697102457920859177764372748566072456576536935138391462011071819833489498084421022877433684851143593559519956662925154123432457581853033686068958019148445627271561508939925269466289526431742014887158832347042757241721295471779389641510739819699904233300909759228694429593111029447813664719896164768054082443578572368907225640952920856848028129236205120468681029754495959175012758952842521465387785797884973878863813248222712984826284780848194525934513999081333338623913974074559186392965140740738850575360061825364004553739057042925880114881106286880185882534841614056717084035297825403924277868176871194752231725676051337093137505606547843571695513265761721284192711646650581290011359319396683462030186943744019128497628376818251478761421784622440723925097458451936737831867205343362332231677244826538090128797039096740545936939941258440677237978061544872600370106589056309900054932300417179187613386803623639386368559215861432969195433765914242065142705253165499876313091268800140940916181925049859663228461757248725518164189583119417045249420665227207078004594154830642773369693538661181089932025902306252995485216069524144287211478532591555707633330409428442590301880366822800642684393171379110778599706650846806869368775086342876143533339135919854128710760108929203268491839730302125621380343146980751442376634057178202837929922837681347299113476168953726010371515753612164266893761261430735930335954972976304896121441083727755954655492497169008608162719712413663888389936985451473768423691593744456639089675671390621043654431179957820771723359130911032967588144299369866714707176320469929630212836591859295883624643560465420949528538178795588566534147999225814512208336268396526375493033683754893319045926953965609391597286343030947686576733154789482950209413047525429188194989870247048120141581265426894923095148840724299272639581743777977042334998789320030316593943884562123707387861892395021955250715676165603283116102512339847112823872125290957255795406821342442059087742890265669205541816330502660954768327351975166145380669875697620935121851612807885066639565942724470484502919357732795908986654763266492928248866646891783116161710085220689233358038569081931064401167402219324975980964334680484985129945485352127967693252420630393478323953843977708456140961426010632665926591082181438507459687512665135709973109624219191772633659880811666468027355848761557628695150385198828035807341971748223115634707885180517796360026006256713264612977525233491225982308541310051592302967175411129374664842937573901635960419569704915824798697635252341496387868141231190624122582688261273169838925574774022681541655240267488869868977118951661307907061585008017107193550692835198784750483629276461707030734787187792265209520207158109552694704631813897072099284764843735161140650642263458083672759714228837386750968867029808819708989289340080936165116157363672897063660362502930937907557734104312458852428498399075680722528418953577145403521936341171604900222252094533224654382368040546648739126785934680097665699774940596721150335809239043910529351442162894151038387431463200212541398092841642870502437689403848183740274185933799394360614504307423000664554372565480591521123825519934411602124271937353189074932086075033952077604750340977948679814137007139754495094189763835704111528122593932305610380520958947802289462341382051400992302556055799957407510072183369962235330155369433775031147225950824252047992550853342052425672140505328682352489554715792891471704023690892105332568017408559306070585661139367857348525657077648657957640758128772447441561936467843360592577432976854608664794968272656953797897205224123330846249222348749131835485639984117742999669105645548520661583465973534494094022086966072018449729355836927180161484023850536065632891051650433877907741579290265181457885575381740870478748234211741034380351854300894996473323331548945900825817216832591931564968034324164964413929408317920242345959029810885025457436603065299759626074532135922994418322444620260135045617675419676355297521557323950208389108078830602584167372897164608767553402315072493428992185438107861579121330617406778790539059242223381261560678591167509637822178189959995128099775408929598548667101334063429911463621200371463846390232801331291073281456616007920323280404746363821878736763147187597772808910437648403669815658303128152223796911036914422792459050540631193265901057957165181824429793556054311217754935323839837418407332605949527314190893519131854931611409627581968430679544094796360678272212569649660131229109558268537139899044284511700686498224266293039732192200124926956984060917526483137094485951860786006421134889168490530581942510295914297566412115492226594352730484914311554892927468351535320708755626693000857665433017939831818132058348840066921217029645892689052628891209387796796630606666925635408825132012309674036166972966229216751931713788935148960725692565124634857805053555987689678915081277450200277359177028430940246829343394240886576443757435617451442924444989451146599792254174918233793147297336756803600979640893274390940058678368388463761628994949940651183608814555060964685895869592352304695641698449466580337970529436590701820442292029620999774808687477678151797678280227248687346275480717012109035059756167057569944515449742043525266737157906402784881699888059989006290827198829727412894814989124396022089101958016077918651208883412991205392557487490737878503988315702951315244711265537951194690728004556843566146634846342192331637415541468566809143137640031394363926096168744048825742564670239905253004705311389860337745396414299179471130388971483717073601439699634827821638925913381762443196728623533676266107300115527041386029323349869989215770052630013458350465668429066589777742700415947307962853873253631885822253583785710005832067683915704944655304237967767540436570662841806939997264428333664307734637471158062243583761899702977051852401606052546901974805630717272573017612584966216510283600823704955414146001650024771882972141274131616917732112505737176273308461333288288653773571472897786084494642991201103337446471470353901455057030157993027843477383308603839228295619911479981925202830436089588601118901113283034683997544217806876193399802588073138914167443399990018918277133129878422155869376133905708431052412471065106891715355962223263185193368455292960870273614835285703355408529833335950361768319500400569758004514094287913359234710629768802097231014704733278724782942612888850613763195111594359219291081984476991759818217333460077699864232592650315657857049289396503759088589594090505630835516968929203231057553609160347367245478813709591600177272452746973680678420348225258999950545004470836249555126157926014541619349379594096117447704168705829809294422650501142568778968138444449922844089145273264770570159042164388307432208668155161321526454236436901705514229856378020639551905951367851790899629974877975543475902711449881543995843577196081071304230067672389152642594105781627683882920776675631225352305302809816718934880938811655435873131544485120006702073162370811033610666344895496686851052518842602908663987403329102760082086763040290829377400951327210081473551287623873091959911708641583201697797745644111934707981552957123563814285795093363753762346775246629475585661490226858274463412415709127439622876366001398524821482195423490806852105041008704649214713673388877324761019413646944496248832821039379513827676365118588501084447726378654487916366836555034927040522783594450932942864647789989082742597813651035599720887309923630019580609075433854509804531096981114551102344200301051806791872934059608613770981506396193030655120287021193181089046870062467801166601664913337605513341953684717251599857940025739631184204872038683870055093227212673912846164738762060028690362225464120991274291543145237787788433798587215893118081693585617460156212152403240204662111712525878851293112653464697257157360019515964522778968435591896379927031691470153362375152168411866731474718395746669217606529335691072494647895362125939424550831115982830987115486960118982335908626405595961041831270000565909049113920012028506683854859763701069614477512818936007281215153604532887254582516431811229871008174091526549270080950013480177931446791443454081095621627673159777441206399645403260686077716751315070375461303308080466371990947920289855851064952000718289369909038379304173750215754509372676145020087149806496902752338977681239208382543067477148653261833061020783128566949420794849023042875608463325518368176109638766622467872677250637523367878903796995181516363235205371423728982989627644031529616227335302928141463028862495357145170939883425685012576848295607592736857110495795587760883470751502292587742985536502266632296230418960269791476649640476428262887339759584168085444239376430646970234547393967077300334049658871080414502909524066781937866651815431160037293560708979979894701725750570408012076488562520842109783781462641503028769372826699902756022879535872934039629630184447053601127084656678952316770906250331726655920085460390997267578775807752828789477229116447801124477658188335064446473347271514473825162639602679653032576044808713065329395637372799602264883594110019462733546167775899405396719891145879599547237821227418837544952908026084461339503743698531264454743198143450423849698215721290157255575909494373246042808460472308221675741730182489282173776656885842373614977674768361925663378745418633680006348724537130236682684862112184070857252318680107449247678396366284132822113472844091448041682920987647415455972948756876227066681177503523498505111142205491199775509409570072443537878081291954463010986522951688328482354673632881695576807618639576263047551807272296298541818609107340811637474449055450191638605005607890094552395005831631932809727082191248265586689084131287621786402911406194623404972725163155510505854065332473635387461182615902031389088827812620747308418485591211758463948719907211412827285179058337856730724057321868477158139706767691103984207598741807344517360500110122369728515476799131485361749720723815322303356304180818314594492190748767453585271297802128594666810904774029637588295551910960867912672880232268283167887210594726361854390353034082641284052641822922982183554503617520454606491105517008834484474202581412393599557550083123902603755548190493641812071684516841545207339240050805638368071381978631120084369760172102953313258707288746856983220736724957188472453762988831904276795225579158821016480360606456883880733594944248228477954895927969195166748530135272473196616296076418385952389835926245533068997474893448112086497306642626827228113250679551273014069218850818414339183422145549856573695894240551983270433846109998650983221353332526587937010501934444365583013062493170408323808157059351705758557052167370087522724265681411714135147794263209370775341945236317143452333868506851858945121495811494971565708974845527218758025075051648392114545771377734730000232340925713983114797500848895691348478558539414318916049735731637078586439672891370378676084800830432609832688921225840828086222657974035711524575846819669003102330050702858016971524137297881378728630455188250218263819007790549917542539470449942115401616251564142197966297466035140378147903363575258138863785004701825202009671987341526763696498343575147076869050430497695364289346418236648203322014133541381992562916515024997627190061159966319070962280378491347387653763310869975492581102980726778390968492066098899585222382450679638362965521836198059226181616734372941163969532000253304983961893097130912565078408835795779978262933408796184911907610056167707020504166750979544099101388502268981135174591886399041135609759239804478660026953825349516017628231446674263454379219560563479395147005000882885264630599122695122902464082466430144740869835694146409337232982498475696985729336524973940962345176731282979645247628893432776947142361560936139501521959073843997767318190383726221159692639100683355685854443700811693879876375591092561211148880856912914811888766705680157675080891258292354052040729843019961326332676832241235043292061386437796157289134772131012150171635918516829171983107690434210806959671111515078084786621014864937791748583969089454173077297554074864031484747371126284881383820779557277286521293750103205010240269576198780271411026151517750172107242468168642696715239506029529442453631998687005600828545426840405590886784807059238698798498658497975290776958685842287605680439015015079653094829603012487275191398484470028219373123332672851191638613528852730119267673353562146406878209512867301920832708354048081848234419850957377278292994738295109142958691721502272845994656580031319996258383070705174142800123543192853690755129782175234714164576314335600094271435143858829676443095407965313500168656580316957697834308056988897291397862670141932862219555936721248708557000026572013396710094248935552587398658131363688672921727175210046767483566781233509499059591765441964697351876692449751819268659233260460590266107928455257374090970566814633117094752240001110528222319918932397139331535865683661747280810909079492246910625717767850543443045651288378014961048714766454081270175823912120854771426015690899041793027631582236312088368414711630318151925196249054646775238678930099224249658278052890779391731322085389234674792699650852261245950525562698966543704267401819144998595623553279820093567093628506614290568896401941104290344176423537365699768156084804807097244943785134198437512707651228679334240680148920511648414333856972769450572694765734672307958736874525788483099538251814016096868796908063045687292207648111878099480645029973552756860189360071099802731125108596156396595367549195284990400122078541164733545673302853322313770502031997353347400173860977780400509240945843973524872814216286417419065566822992471898302844671501717372530614380334131369087122820852837632250858177733353843887898566610175166597271517254452780360714073795762650679233064694766051630921148774501487997305722682826648275686790866719312450433831815960946376780250242378596929292558322773633329874722420415651429580860107808102619422958052891876773236472855555657846653959215909228415783940200771908138069209316378265748377091390621244775579433932809994940294063879918465278610855487193284813570740384109909936023675434860524035658337590605599688331735476959222908160110639640766251703862880941520542194241862543049106683437544343368581254727041674952080008617775318101975765474600505608244783070854964005515167159059368448296373862584772418331320133197140208591543508091633217004384671558021302320607465120160758229943005317028615464903201280819373304903281555981230379025278583888366183277253861450627342491813395948503250010951567174022013536577702812774508086797680138366067249548981962580017678916383310124746404782168166530875459204539720449260012207998414078931604905275256238897309749000232781303689929258525539682880627050299993452649287640062706787550806375712246021242244883947969274312313596824823219914935378701932754755091589987703876343230791673838639304718498330876771043861229700024190293647154822179292754697065724196185783733720745559219438457645533296400758119064419603707048940184492603911367642075069143242062426711913237764313791959231801351322740730737600053045886506662850395236256804897984252520087017413228086699029252836272115993667635395897217414367827145305988297538388404969047194162270513356656737518063071489237315812102561561131120655051772080090569765930730985560193643278975573782977683778103026131228965437123435362641620488457401489719959167878490902310155122550463785673932757710821654184074232628668344254397037368489478554324074704744330357319711134098695046991519775605926856187503007404184678822297640787553866971855471822038393254606508880644523475370472616629198399471409047010878879258111803799068355267338387840029758093585752402157464663888210815169767277573664434029627146148763852703281165927393894093831168369746354872357305695506979491185998061069406567664381598416632682677356894369525505829358699423018981660153381389051068673537612385361458001100362472179526908720855618198865309496870294301731192566389773862518611330004994524672389933732522953043146553662821305522092191873600860447965809928182687201801347350332216529189327826817228438831406897402507811929787135124010299304766947996068387990610768212260900268582610289813545796013678906842356814960528761668123104704474977769885300423000167824301671795416703704635714567866944306022167588937233585446586508855021285399604953211030492892430291238684297192782503989171423220758635863499672410585745363887232953527541782023891064418653289163653863154630979862676596827554571439045938870463096717022985045772187630274954256429664675227444494948751349184856785575461762422207243761827940200856653514161469463346313022721829070633057619878729181037041468983825541245493169580918957126257926900923372285976731041521433209754784857491179592019320237898696545793599946501362922546982288307585660609696345804898748942963423132641190886054571878810506356583608917026773951480127656401968027211589958506211291559648947919935501025861085845923357093333776744174411066798067650268380837150145800869340790491510973655982974531012690128836433179906329745027429482545333955766104262750369227996845286254073228083434181752133780853361331804876636031512754584862363956855670914601125559981380308235018391450260667258542114214738535739091517726725070462098131980786985609080488671996150725651940031916809727293858819121063689141921090725871871746541239591528171830712204972021766225744780049580537148937982607713446554917120463644036161968247391623645655145089696918402198059122221065607131187691683071164559881103111044814520854184590357550987996164523093707926555641834063364554711402662129956037570147559257502746547459336336184248132087263212162856207935218535866033404503092700635569561878844068867472481181600169786325144660697328343970812402470209104074685690325737624156116510060753098321072586906097931580447305200263885499104039185254948391398794232196714044755891617491552328460182022058146927128867998783755203550338792276460456652218408135086041279160009120267202626207044960479044267108928477398628187328116500046927920482159144703262915970579336755509675136100333948970465714854345889968397932262572442124918240976147946295143330227522662685448416648947160177813230813165506560960529784344467096730608388241365997520705998393441609225449257023234620801270731149965678810713676861327248762564889827338124413267972191410588065404755238782649683962996792640779125522160564835940159478029218067703428191262953000621750479253955745663110118474619748748702748003713091043524712974807678380085261668205181837428835642232259814517224895172112313702383965860865443021187734505170929530082527580071865596382552027646994374991802353318970611281742609204184749199369928334825932891911094438274877115038350619361607757703449255290243275986052683476902034830278351515358406759948913076860339032393521606757247026848371988771907326621667596398083350933371236802653403984173344659089228615829929579098627460513447660255202606600362960518819720296558572841429591714837124219600673813291051602701832507268181896119904042485328678014872409730857367850705354690483486505169033547554003922521132712839810407954910043939187050244669369481015843291646381738244286580036942906889244698653371778624923154889939522582398737011436719831274287307698840711945589167161864597702439130176133670161325170528734110025889604229185436544763444010723658857740078286399393589445881420397550962966196071714112839334461587352276420070339730701207391723549623836712300408485267259996190130484368487086327174808593123281292402912408874464174276895050836957635043107349592788871128614239115312255125953349097959382177831997893406368756077686462561550478153055638354813598441685898808984757128066434427097704808825841734412435183438161867393972964550341485831359138751137795296694933099500853316337545870519908812603061654981355449854113653479857973686232984700202457792898937775534494151471452519601680089206172277986191826388275003179963625146418882976378863494955448103932371959731947208302897156258911719400946410225077683974144578420602254016847978991158609613913704669812495639380138881565176554409558924806343116587885812478535038695952649238395663664671494219908124498787492560793666651431423957556178808863256465113654569272699646487435784792883986756653350068166529073233346842160978684939257764966095655080421155411009042162382276496468285154615381070365135257938310794368488488013224222023939881469155500052268546841371174689120201840868861982643510318813380064016702570718077953266947621541429444224648266684960515408203414711756737990570716565169787357336896618852672793551657910695178340403093329273988843290938046914631389985816813177869343545338050347319755738081537347979470131741402481212111087942756182796829466777169044691136837002464524180480753015364451861465007803556805360681139939173440954687658828439240000434238219088107222974436912276761201533531471399475049699112901880411064630825149980734084742264916947793682577743199570462675903433429013109513844306543731166605268553643510915463651211595212766292965134679110987460352011212065171588519644365230041869652955584505596675405796950559296004043778377098001356014133710947269776113747271876118203348419692542359976987402313911463153612221203154721750991675853830961709724627000137190850675651366419191921710761494678353707010733202230492845524622027660555005649154854500463648176246950722415334443770299092740564965460694280261828560203343719849413691901301779356100131456908159759473437951383262695868144822201707285630223082670138885613945722571530381421366286164777689546084355319010723863507274351821625679569565223149805868007370400048717685483235324611424021471084313097332362135084413318285179728741413101092384506618580030167580836879439205019920938129342448280167884953244003346528640127688741192914965948151212484470791047604641892812212353326057316500834071210869492676493415084645703751734678745208127256001288257310569414036199726226263579032524101894380401726957439192586800202949664920767456580309341956761812872360988618499643308274301300583764195307489015321706312818193854592719963604762202188310343088040368320721358876840821260035075818444206551244551476598825390656763190875125795758528425918129618490743045731262530066003697963290917404780499830769391048771156288735862809674709979435725211323974604614278005786279739001723167765373181612856477948195931769394335188290657766372102719299467661265224466212252525714025544268719747760746342127170554594698207581108684495017556600619798513003222609238460306649351611952636200548597122556688880069782303793761285357296256048400661961770562721748876819436257113395879532699646451511968683301844978013570457078403100227389053746159456289324595243293836592070105251414554676002874521011093491894019916415512926033170119341891846680292571984844551387027767702259593054021799544485632321272285888061179172392531119235009137834412754857661440769109894474322192645059241024558430421750243146405195579659151840963882921920428848220419829378976458411773925732620613283118617525544638277389938665578720686474012809157242019880481189579127919427104004836245692075872539557583933317635176210358160954881516825092431357246954236228938110277177317364448442868726189065000153611342506678979960948142157814228139397709670861753220730915447743696845481700057850026573603736907324435849339045013737790619728859118154826674063121796744816073219775758794503383919087549925920659574891199664677584819363753590266066890160711679195183429875957532667584653688562330378989610348267748397166075068997143493476545487028007912673561228710561391063498308520465035850008292228504891136131065969562711845177667766402586803556928359338078066953067983974130900723028786516627778375600805312522926648651522476258685915851564919906066965982429459982131606791413638676942901376684772939186818863690460326674307935256819514630250411135819116813880798625672273565022291969262956931770163756618592283746892340668926489220921257258290326478050132012414177624861447927013801181819959937095312740375253450666662687339213083567016328202414697911393125108538648181798837951585543919420025019137535700443072925020392684579171221085571022602226732396280016315884537499621758744839681009997968364766965323484865638831102334097470004487434711584442757842181426741811207553641112741442262937366721153077058092441156589456664776803554019286562591680057949777165453627743165603704729652497223860931302932438740785477475524606438286230400756226083960251475753871066232209695946460519856702488129308477331971521444504035276522677282347412708078630318881819725087584411333073033368160315384961701355419019724321794341566006347381698657133880819471681929333493284807710219925654512718695272226880896961029684993164193341928637171706228072806370475372784377632674175714213599405336620045187930187055686701601997682582794452453179657912505421550366159001580878984312836338076174303605212496792854514120562179182658061703364308944154621196784125548303233270302858891287782122514169594622111213359999693449623548263402912380965446260546080710752780431076366278535929995324433788660657759260947781866628191154246395349752848347530209817818512441305864968077001212829145932587049146178262528584636009647574646451514408163349254192374221651099181361233080081288974327474522493741452512054794709035861026846918361736565445703277288797460401841110437909149977897684426420060190898624179570056071533438273540828722498306662008545543944892783473538731047738834102804422222178940991006187540049879285657043230597326497365952482815736170099086115234580509990209387089228992528329692256922393031120804217449599215997144166740479316043782681538922036289360691548072503275498629601253196569792808684188161251581606163470656349561500666757688216470908632608091686678397973737947705710376120277186058874617371178144052647748560799273650720370120003069134074190264216022013658727114683465529825474183810045166856125127273202267356649753200743610312523991413358683539902929144963871189729151812552238481553075717477805265334167854101189989664811281052879046476384145337959142187425787802267925505208224820117145629729172382275993511655674840776212450226687790015126141677210817605508163600077383429434302160605419789775863120173206818414261543784036336590819592023697451192647074993039792023081753910843378911254550722680475073767982852361094990126745290062864685858215082497467389642855092994098872777939121697825399418509344322250685578974021216930593575885386247959319886773991408748344744103440827193927479717369072667728235501713096741910027008979047546289863999716840019097429465501951384136384186285642826253828829574315514063496908657521801706779885219641132668658131644778871560575291081427244911818072399860556422191723628828355897888735046680382946859895926174469007777864647175950241578805412533345826730147957680740935880929712255000087382604265137124754351050771981740562177170101185005669504209140935698953792379622935290343991487275942880920176918433765134610235659759182815491116071850020332763668244498161552668469341500128081283067408064020024341121655639640751241061035585667843446035791058259570297795837425063922077730246615318824836872646059470546593091502556720172260857323212938707326125255485347982222599465204422746986426977515806630301987128138586217975583399073416928277051111686893927351084900893090217785079204257364452867722209670545158487837719787291136590853367421705235414509414072267158784759074234657070993584469339442464646862831506684583487881948352599016175589725909326963714986457030389271715693335750625673663668484118005410491019500772494782157983023172229322765830214115018772387531892112882729223318563579282562020309163102311181194050605847681196474261068272884577509422696490434088383472668449300918871379757519914609373190729443491258591564135909355371565809158640425402861625230649238994703739779580424318503892332666251118008683179269542122024178773284855711914274117823064907298732401967432452417132058816593720196769754553353367011884525574974162431529419501513725698290231646476105503160701471594059282867535690115773099239611371921321225785250059382208505394618532203893213706951999445337152954875606904950235962724475279165080135410624640473020175953230158075711884963984072005142275945872334903223886870771421424917814481329075923392472043506358117757466960792830815492432334794771820990483879082406965473375247050302147499269384210380402835706245533684706074960508436424646254338214165511402904279251939119477760490509915187757568602345667491125974540512576282977666368729008941718709822672776470435974007316015288617033934222682489660660558507010824069869809572096449812419279395310124483079279857017043957800618238212819684631659280736339586995028272213740337705121177781521341048830370280391813199175780398835640529550630053182332978776366189853918799331261134420238459704954414642789891775873058979280527573387612398299372234468826432567389577126363241245717506387242127201616020287639136497884344627113395888103460512032027598828242191979193355440376544331286314523686333063750005880721593214263990423452103701229748098179493025177690739300988492271674880882562221630448866538299180125577680680230020894127744805552753829944904572626641599204001938430895530024516856293110883330024060680155125946225989104433336118345819213226541247918693806290508814389961730619106138177815880348383202245637663454984404758769667763344303532844658078896250559790934913987508584480947231290957762814750258905301213289796536823850027671298197615530464543043859743494721901973459467323785210079589380666690212920870928553530356212457164732941178499285637841709026244460821519267964596010293242806467505408006336494649190857429062071460087686504880359169205428763071776135341489232626588418867048721261848017854722050826424872205181390030047318416290396219008013774948211459216589361915925320247456405481712373389738993717867075268928093269209788945754464201155476734253740632313008692124887127303407523379170173976025519366998436538666110628865536454434231869205515142330230405589935681275949777346838929011554986055850969983590294204378140104770905053142534942565658281635968041551520029402827450145465347679806276373984446094134633776814766942971960495212947193079996701073952353952955796082365329676779267586909818596203717573992842280583384291552518519951269724754121308284152496268001368646940924570190859974537696386207338409414487198363604634562639237563216042653651299106454714120382173253560077048762819651927445458997259146703959358780630237720286681181618226106248577272594358244519509312097159868702753473040350776009252571838129679917385905317842888064048465462116240400917591410140102028017276180339636602092437323694681791058405761577939638725367327140445121010836661655323772218957458459885203642580781036575729975370697230088836992503524939375750499410702982483450101563611660082918630482188548704828093673175745890422643574222184493705211100157473601503851374672224926062587803026707416038076992515445164116291160069859044086554128965509768931608241542949240838484923730782208929784738973501082838405040822572080092390734047989605204147187096366553492108138362976951897233420259851295218345499614426145461139951813504455396890240564923679695966240942750970654339721630052130445529970646147323128636899676709149235386866501403785304105054395200866373986536832280071130927985407512730014063762283915008904486320372893022523116530833303430305728845264117133532004095195816794169206957479119569673178323828254275528054991538505614987511430915480074113563973065942525224841017750070736838768673070787676990286356915554332198960171016006763350886527052065628556088657775972026816263791361168061764564240632368775497573345283012560624790030439077696933600982096534342541639930773582456004002489940383989099969101298572959231605756571826635873963979949187739560488081961199417740409624453906946588045452702979636596088732856595231680307291601344980265080441148120741113193142297888818349109446106038850312336970344342712903761391492783096612049252822790170441958170645668936174977188871158969451323879217500933509393499923488548194225795664770291345255114013646636113564827542286277685554162256339045024661348518403170089746183004545071009907930286469410373449161825210843377592967482640372877403371227495023277124080843682654471306157160577112907808098915170283967249500061523179295873652667760443327906913317657698172261417661383944917141994304782438640256908430299101260654581811683574405437729312164070813064274052899539928535231026124110769991205248323348782993685184785292971093053798301236831435098118693549616466755548102445906736525664157851317966221907043867072438762932603851630200321304665040071810264807301461608641686520608862332690457516778078325568678956837283205519738879492147092873599320578514551314600716767484096727414095287926194640763756072451195518706484952144189772971610744315973325003365429042647190280889794637228962226555172708607571100179197509618220824068225237961643818808917233108559617823787843774050230493793226452713927702074462905608856876947593495517873243297350119780127726959022497420595328567349733641750310867028744717568747221213408709728798833847720545186786424850202132760219700489487944791265148394090647177494266045387980602418015878667198429691619797636290285604136823671658138397888054113151795113537649779853056722637979038501684759429314218021450011119611007278202118871449120791337046472379985223526108208417187754155930490912534278710193435686444962384689745939202208906330385660361433743982233410377355824344916255034721285343299238928736090791587046722714026723838702827414079508961456988108097405280773130443168513627216716532512738855327906881416181685053096995787817869247849073931748569255391371346666839172645281235154196357298137974584399668144788559563285768510200936925885683626287153138680719507984545120304468039513397731729556792575243600971097128892100216047226980678229355832004323475152622908985028530364986895502888768331676063003156158028774887362039446154663263972883443539790092713708585170961505094294166037339564608913158997342653426790367973009480633849616857068091608017402637515895387950830820623733887405379997031911102339743738893153504215661314381486051878239783005312184678858995493460033036356240666167237590608403061924420048668854380831972674217245973587081485542516735186312449174969507927677900474962223545158843496378604449039322247520623646734181697721891174940997794736520874447547339501193832690159233332412727328188723359662321570141281624270982485185233207475190956615518020145130945848996089580177450988802982245066424379801663614280826338543055086696688448911172786738141079199907109594117236985759117452765576997357322716453822058314268576039105217024893529602782453911802259112064639417306981346775337465810398545735044237175781071252247532506493284678527620621524793206736185812311562234747509259254067994133383727812555538102897346139559147322084108199612597321185987916342314137107401134600914747124077265299788816077187818376836930033754628451680717050537282080524605325776301749885632188991251487560255232637435999277545183461470090480609656268210215748857454709681068879754880492985212973432383905988493382498380351832640377511119792260686187066221226453466356708651227164849727283637123993187100595773624330127257633772347690297558844918532423958025077633259992023431624317108073749610904802314062499170802046518316856708898096633884785665495735642078006003501196051318932633214311336775549129870314802384066075369533761989199386034647433876863060099239821959683632504889516991188395963384970259520607150330397261815533502998925797953907587457569547523607051060048247986601662725745427221485020712226180080523989059916874646859708019409833023752696118606548453857734054886924892742933585171171747715530189821325130570971431881868242320864269464776250422181770182996879697627393077871305787320523921966914887017348473951329020239609584525871479626653992407742407858854056391429860359545634595136413902707801669020867962187318643665234107507492451742121945606246851038445977101183481054059978247995527128803865971490051690336869148148379540822231384538934256489028226365573094661237767609904296745604478228116608180984595510808167895808379786065171317842070223188138780501795485348396860649241857771783093027414316735027220135779361022281826003210138271436094619100855995811218993764933887676490722166373352155019845299302196013065456976672263220103560869986306589165114173756747707070115023272965800453598470701386028698116995373699892098052725901888196641539742466908610819104001501185109349320236194517803666892995401685051942248803584151570357852805098857623024771208375151884852704469951825376720533704577938975276769453083493634426245640058528691232613877766123884959206201527892627235975545039709440254926582295253974870323554819610314133248886531262540008686663518270192720941280846858712044761675123052696974610744241260567712727423880238511717430885675324922209854915623054264266230985697750725670995507991478952907782121959687495531608590212693206265108061610807758161078939885420435302718806245338060801924062728110037932967173273389853017219543152240030731967663597768302481468336697176893230678827795172311251429513953361878943537286397943075077256119996976716310943025364876450563137350201004415891361272682168165013540375467588022521848519764322054810253996582747589100876591694703614607933393919882669711984259373062277217499996752059282829416046587601149717626763866259910406070594417807063300949688146106787067109338967033442073745262693289887997911127236764880191039031533034818251690687251723689275246656886393695185922185844642822239159536531196335898992210574416309866266674306765130454325817099342008496291925983826198178631362222793427874825999411901368481493924287408595855209676212980560793217581382317260643114042701275902934795714960750702350744376817346847346768029208485525733202448559667325189597978372748068316111972818920105716624785022345547144989831061091770088147877877374378795831383604771613771246200688002868036198065186875189932170922171121828819644737249754709104003245997101866587759611302194010481192570272193733844191515447700991281917625150359123610454813625929177806540528648153770872987273418547281435602204192325104942377888819269122429536214917869781467831280799650022845525861520886098639460408709301747249838091069965976068416423670419167507174258358646286414911481554134188348796610155099849739499014499568017486565223339019330735824549147081802830150373925259152668595775945378976204792455125699923439301742447884605438905764908929854439970196079657713619304069249268368682558076319420205777157794926378199313940696746829860597093150110895462495329414339367190513938203065278670443658613410225021603355916368370683155800097546531850064177939652054964164544853978282631157409367685404021064198406372374166789825088770472921194910285743852978335434353090840653741570612898836061854776010394212769789116393710694584928251885959918111034447280974226040442747024216003006587869560221526046689780227895487577558818684609529580125986310771409774113624434942976433440757773552574543870459740468063874750350871471163689561829295903133392619622090715429144801478688152248876280751367671300737741879046418152212201368604701673212856137902381473969628698449926125061725249549384972272732383363434079326512069684046241070562297792084829267960710369557779554558563079285586947726414652513840454376917460907732208320321676066585165150902216069602119899065449451665203082530480394405109742345051576830212761871274312360136998813864825123801442717491030764392841077261129506776473402625210415096510865208617258117277419257678743554056120652841973209025760253441666313317789777208235769020606445846937081617063794290479557644507591263999198578587601243201713601414564596796533802491192535355499410983261101267397124209312207863780295805265354372628675591502391558861549927991081863728840402927821490831273881289413267477681479496686587533335727227760959793962583631748020247146081272929887941194668253889621375147283042522907979159771211016263515889532346728244492308224512635443591529215812926045040738497714930884846114123009246499945859211949307822958945550857517753443250116112146757930705796104473468942888124253987659285240117712413135196238609247969390254462891902739012176433252311711384526645640060196573058818447241835282669419344260737579002764027540126421099512412456470635671226020615316244354126568628179798302860276491270417097754585946642886424440455903882719728244449271983130242147970194342075363341108425306450693423290281051504411369334504927430922204475397972039655985917162835852436479541811434011895105552934217617826350083864642346529520310308585509102695512349591721239964890786410786431745330176544495946258621377343493291362250814496358813756610218681067393816908131305887146996235735459320671746275594782623855708771192410839304537960737655688843107280925329456298522716177872208480639664963612804184291939065241434408537543301690545647638705746438227630076305535702921587751870759448503423315791900435662449328488448570003432295216523659802487410649901215060656535626720434432709454237323388711450838514794621855944100396073475752375587222671103593187300361451754873381136858978489129982042591990008217729747182323240363037401573802099591897448550483112283056673595849096819880062350297896339324938624454301828557402607002166934036693136693568817533791819637835300688688377409924614939011153669827026717486918490398862590499335828384278552468243035014050515095544994866699541277141387218063718216807269252161975468052332055028162647541497835682420058156659704898851926911946156700483815473700568759659726228578468850340577395232975411842942018810865359040174367621227579040068411556506127776325238341731269786583858950521910685128499786252981255669290057614748839699912888064217916896976011896015323556158599253867240167406957121335578217403362457018380957017543458247631154418680552044170946881947777000851838956812660467691662928927949523120724778039433401495447507463794092824192077276767765206730479400378639034785222912652919117251315171909155258664061340947331592932305281147725920526720918913034030093104531242001531050177038936381908458369001271126495085280141925235643019461027236700553641664179537712672597993756418330723554019030055098057499930600985419651342165370003166090773802698777889909112599588442289637371448523752452838603753497327577464285028460504158034104624239876886355075565507530632916677503236117853737946453499775155592846684943604605602726101195978342343876141270842352125137184270254459721405781686623911424122915346101020927249792351906177798601272537016704556535326299928500453905609989556388042278766049139128746670945296761087445412386702539490242619231653478483307890402122923114068410760707403279879772766139062238101541981324231232427310580802326829217509321191901826842493021751893039118703151253517694250962777941255838003573526453440444631621836917092156577597761934786861025831584017767256520808068523853485166316412173329646652682199618895806266410130248338308597891338164447514281092580286201421960813504591499813715554214708019125849186826948137192579250312015603625315373253100659916459268966279040467956257352174079890043289760491743765859894441301671557417657094494587870419977552400758419789585733755758074650588747877134941154960888901094247697368039830727392106541876983794725712249033093802442234833102431543579373602992040004227229898868188813481609580525973754327192675259463919055818471089617351074185824043782243019656091667985969835605084670733069567637897318163460293471863113278027416025254531205376040707155124070909100154962142797320973347787425634484390233722121239972671541578572069004170141181840826810083072823923254788151733968320392646586719199085189245217067642503562817401552707483504780513683794414502805364528872811592438175256908001390978786549448761757204516352724127703975135355191283011293536490450547162358207858663824434345424080387202937023020145828089363430354862680311724184497673764755296454525219569932474680743015972453481653606971479251984014402733263813311221994076688651941561076985516281332903800896471586285459095786896575839955337505021093354874789315364052403918416840092384070876978418222826589010986511107867564571226942438609550785290792843146816201363325817023800416945002314894137641203108658427541208840132951765045336931792113260493515073633625747209836703437365704762450406681982341866324811258422765219842266604310669119077283431387103124544978411768226918741528676595158756360463210197519738329019650112467057536735734370055881562797622247799437535853974847868341757053668680093683116922105588649762988841031440627414658503263019476566468811330559752735187831533890435078493256862127086031184046422374745573180249775528346610517487510431690720623400983664826715769899704472637862653391258235808049790268862195639833845760162122942320068855483659934370768965868262145380999198079084605329995248136075822666233873622555470443613294920769703001266356777137915814653279467026525219478082225399580084974783007557727829818421133873684642044939100555933263924997475618536472160429481529370833985107368081558575811100388747093735374372771532508152058639493284816411728713635220854105277160701386986952499891954213234557890400606756641408353750070907268851605611692901460888385340064075831528106123491507419851686183138798952695485180793932023337196647767867497362401434222511949109152473925521388267775151560916096356177742365293642615840631313950418101829222574098023266788803143985988701049099114600542310592272771741028454674832658682477700665723322954413623277691509011167535796787170244605018795219977215357600548385313107831360578838090989564509601858041776223070736309974957853010043835856981897927399856408886903093416802713262345675436566810681562128717200995246544400027081800600503476952935132584856193613514938622485372129116349281183791347789831455359293632187197856757720998721003135422808194920749973675823189226418595737779462454636077153365976609829312695939409175611730063429548198941752662754493201573316558703822583341659660122744447577634778661914294970330944184480842596786280489877325354247337053799158651154559818281382629337868871408822329849343770633828349590597689034796281732246080332068081753700425023110324232872900855220599828844739708475686069670718670541122522033083559423419405600656481593282613670443372418063852229013870179459416443180353888627286743627224527605436609703577421306120492441492285898618004094044897071156111379389221375957840885683534296447876382123720357916055373589123540838051498604172942225286566445821969535774642871030398023134395330556821935122553779257975500974357309925918791520414639999792572809387876903115090612267753581179740493556116564533906879939919634549947455951553458581961858736735410685598846829180707401408432128680669755161015302719887337789768409776447623164337385476221015604314635388798617599981389251518056152845721164047166450421176922526724304354498024047190503985752001725759697285762755300204003360543535557273144589340387804370645393548078045341337613189917346713811620419470845314299593351869926991745651505280259893625887673879242907031390725752125809819580784239034092743838743064020019690098644941164253870278897744604386782068542909372772111584373909659957345829815127285616299724630197625390901308600528750431986121589990862568688467025509567886094724869946916637191660423622134670971616543554278030675981332569877763027240846132562670734173378416682602037031745435910407915772929608953606868530500054184727548749169864045952016857934656532197072120493351075658182859061550503525027644768266906941799105413053379403013804852533943346723877716056260513338896990806972651363355692421448740024655494413975892572865316254704283661400930662492341409346967653074147102913356757834953985940914510051456066775764293843033395122407880221964578483597031639687245745527029315559315863117866493542381618548639502839980047587139815257641149987969073166791315136671156112158822171595503714287444251206345577026682011467943867240271676791647819706827974373845085407647045531729842241329651851539525954898626161550996122796061570657153915784373999430309994670237021868731471052262541433053723817829021223426805898038846655667656613547309344324819007768838941314112741166925691888199216445854270345714355521830485472812863551584887699573131073445891941660706714651985166489514096660650873818776846268661480236819748902329986978072588974988835035281913896506373894810243627685662046351031716737714960123098349292951962491587948328523148983233875144055612287640760524987015000291823275464271097975168395416614357641242091583643426104785613511971453046003808769091808465186877540894050909099649964706643488129318440809737943795919046571026697092454287281466596318114553650472062901092470671797526885552821959857300860476294014447158410545824105302931374041082723420844145445243296389274197239844775390112398460746050677268320028134144341149785162109898793427234287177501975022228625141518714331542838182725080849206494298214284962272605747026725391959857994080598679879395643253024347166418905397705703041920237016646516829942642841085141454601158072555321990256167321351747706103431137067617703047809244528990991162409907976131218255006545851392111295930317364172288693485073450523491210013240543548209672927109835054538920142448934256914182852599407752622359091234276835868747896824713630491440972799160925522641612923518315656163678408281282797800844088494215804244207878351177959910366122621832822994184956572758823397445061002458642873712449270907503604016894676947462447816819196590981706988370958935710200248822674367978854571975483064364498066312017117690424278353372895253877979534766163695420150676875407211992171325202647974687774143950469230119528956043540831753547474503432050774786803974234255433460785326029245256856333996846782028265651646862229192020427995661349089309827894745662433132225066424373008583583380651264792455109086360968039610736601606526110312224664920748002920323980033611020814130008580152251940742367162722948166357195016105966534737899489312955520450165063702752089605883088063093149440653915374250422493454927056303559907333754828203867088951277731649687194337596284478167816246681129794778747371574857041394756958655825542204810419770211081461977002021336533029117330212007421220064066122456883539164062787523308018067589790905593421860263030848580389501134143169234252789260307091482691696096515970833354153203708227354478913989368179217807201114449979713759810852871199299950233094008074496502928266366221018555098133370246801514940581739667498086658190226645993611744946067537503075431548701168985599716774271099261269256025271395033532398837832826910502281296173087550836621858321094582287111836080811256822900465199719714187932076849476098700485284444994441789654564149204144181509806305626285292495410890711733036327658223542270716100790289548390289718688745560958706877130530426274142730944113518376852219863449149456966346455195814393092842734037203144920991315245039106697586777387028168771481990519111249763386137834776826432888965628228431297192398328564163622832963264155989628560559666782347914987586085484968724483951332078069473371574482235493496383351717492658064954132891583146498611333033673365647994064605812288645379698937872530245467838582363184376858563680799374048239354768808233774783144476668274143865297683779611683942331921637301107940362395544075190364441079143040380746946216594113623062961686552196119009772145065579398312684591458362578347852748013977859296131679493935345389782369853141156546403296592843479554500490092946074116854491371294204524034132676831472285074708079857851026744485727135160550434154063581719537584522624787036664829660736615108962725276594019261647998072875042431639118521098461151635022062947588873622420613398326950687631706877831011087653990833746331325831512955798988803649747304287509705042110730003916394272495772670449529745132006393935042420632449106483660869508195460625257264606876111556893164430077238020388058972948433470754934436733744197057372108733281305867612795321988250180809463820104455100851684167717225568081094089773298422759286241880357338743803767946896177361232578264601863599318181260610976944805992972117238217098783238260176130731215508931235778382025736252953907451125954776350424129036947711568793639356607934259066323592611379827494852446890191374939617551616278918992111681095710970729018033028708469272663577202105688962117657012967168563942875111358461829422920792772067180003182304882509359427249973009329868444816569106002412151719494403836354619728681969242384541393679733719586998833903868152717118456574153196452823019889385074605070807863368572410207171834915139910068851128215042931814652606603936085782316938514076025061937908221108649697907450892192874949924608347545523458338176982572032356444464974681030751252339613038933676616676008324825626008524240870686683001199722590670017259392090898423421461886689548799872563555784330138792854016665982567439269710338497264533005491180173998442098054430554342838106846740299627711983282940481993539949929574368463599853190741266729072103161283504208673361775238806044446969524700842632853691016564119725953885090333711371563148526900289494565370819044659539538432406031903864283988384896138574791377177712604854463864040424280663497250629264822529992972042880604747245006495394394317025103045329182058635327591492202391510722427834639889358083873707177346306540656528452968974496494343211992263711618083594110180606155221160282929537663328368202503609076651864498779031281437963746503511830714012909058553908687002612597882299279783590118163107239479475732004346371130052682640837286534920071494232180914614920088023191330567646671650707849617874345302618965955031214972215566258202476949154226371451633385448550924976525139158554456614873557066871111251346073888825173581211678474511312255467517774351870426978194020956674423701103586388238621388372391851108459092118678795548024821962342821334494334392953344960399576089272851003931911016413397900161922304513113185297080710601783552805996720688378486463808735640147495661658064686712452842477060546709210232226512276113236887595774837315480772483402392221693837913210722240485647232353778714718590679997390939839647113705712170639592999817602742120278489548738027924569090596028337065191594030966946225662021863251221302625537222845876915427480407057569950946176425271160991256985917416141826105592766328948141816622315456877438888447984239376461458909712659139264015612523684719645200306760500651245090167189588800969561644064919948157692451753587344321556437674313621815012781630419784956501656915411180298762542062846849493642514642512494252892616007550639379258850592284421509194770580931967408793580206924353175145234502441506310357623542120442173505010485756364910871101265263733366009497980962713926154028641970145315908018247179993486944144611605331394755351287546251002464020742409203481472178581991733761559597074506911437695392067104699442269426770868164704404843613016462324046071246717036554968788050510166231732412362361134988480778485429120967196528701544835011607125254396459497555859411659973724323491335360322388887543056174089134745285107580956380846209926947265925758990929442478971718515611471512504006464654498313750066971790030163742783781199072394749592047641169159310068968780696375508415223102308517611823667309855713344307063090693487857213419826665333799010091778864545504907213534950568499699166857368678179252545004054404404651328505277617038137459050842236035638114049239382274661718042675979577587731053066557226417763045457540089280156329338163045956946877605424808729319000023202685772416531467218906373422045865456450408014863155389345043798351124771436799923582126409081127377646454969684027998854536703038496996314198935402806620393067859929182808156465005758446402588613635369828586952064312903990566481089442924556645567066283670751660102319495855698569189480426554680407440166974518086364148789400949679779011019257838296599178915000134081174815675323061861552720150163597629409339389090792375419773872796052238753890115224661405664338988586946899639124228389815851270302329023142007016137520185074958834356237448430275333862028093566608300685671672844686378289157298217113048877978852040625852044089785339950654340480969691699816190137765242263835641852341801536485178523275108265025171460450227182126605117350761868040698145680191157985881546063356888134283883012806680496141393966098335144044229485334438063640166290617917713003026608515299202169399022927529958883389498714689742974551480076762219206248071834568535723831153251327449135565333904054994891168583214593654490579917691077802733495345111435790698022134093838067867126542083549490835033759671484524874287496435791692608561645119911460102060784630523855182155332347896727337703842649232384942521788245438490756369772729694762027799928614822466416756666730861570617518895443009943123646925533553323701583391513890515292242153481552029206654347770958268730746944387132509593012627345368392104933202946365451381737435764091356531083767800377165319910935976138680043459471158320473232968838807378887385478089089153644176427281542241854753388859261902770170484198572227809350155571536266543547654955330353600110339125436986461206174839758899485223342599830031679346683910646636858768825246976423964351282769445349578910314608979448572617772377503293629868987613163461835256409664622312763541722735391822362816247193242838791665348082598353011055784635336807849191557738120804202861728613167627992465305391767061272816903129331404944049205840760250831906324193557493919110208354908791629799979422004574778424709348332048161993547667441480017548534748033230720179047713518231336807565596074100356036892561630608005918955723512844212678001933352182458157180990538055014379226631667375286140880054460353584940381930381619081227442606245016728565472019594250625461449461266602544601293804903002326478778004501495401071397367307821245300895725979423749693494717015748622178544643967142370570771946577441720162672253169829376067377584071966597894623455690446522991618194957244855010837189127874469436358657744165484087686858568494209049847874758196975374792164236879910965001049731333272194769694162140929745178400602514829690670176711352215417099852977073905330492263098499391969899709036208569319418088810900271904909583479596285022567848088517676615798371846775037133933659919724527618712246042263895555072812298602902868344482892137861391493993778842005638004405165142362486365564221739912230108176423815616923151730716110938661724220612523278218511383905361137217296462751996581568777268227331690955144485288756142371603308150342959424287395682708381314989746990226031435325281044886281119464975737935503311087413657593083193346492141934711685349946431575124512879536409176951657749025424933060677850052839823692949960628219570237182709431064400109997959838396520221804083936444852257121664766727596012718055053208808087701250256598720956217102586496531627106901443498951958183946004933777603869566002897661422371578106998590612686436597292334010758966864372542567019312948407842562455645688554865188702798693109435343685690083663217218314405560190691497589391645105641802880271506701736635075821840701737268139336606294565721909992422895709601189728265501561788007562370232229097093834585530548779578139896926714649501421464507953606494840503412561232842286677319010874434577722648059620743735254346214947366802847998388954671778835130355127591325464282555307274862376581064383511221244249872018552340975359629963959481674035305709197385199357271430027327835181427136101784041048760374244374049546896339522820484808364899841995292516370981175377048792035564759264250334855778094330097783548971708150442795116138757536054630187772600816906790573396441004943345315068355842741867701551328683303005906790053106808512381566736396998845403658834484748168870658465483651298957006842065212069348558357304384374748614299439948996654566116776690222198545368955661074478716346206993653827762227353997013474222610696808640761328909721664980479406552205285363446799972408616972144719090709779385380689016863035646029603110832413172399743520023146267846472629593271007475383511874634335572884122689950817677603685436875671122190920750018237933662379220734661057992524500046694937997072076060086265158335666212363770284297320160099763009343871920591801915088642671694083523104814000396827152428081807888364577420848193264209889584457671887956906846845810626512503314157124419751504155126617636548309779749780457345797527539549774208348872265549955732462467745358729547660181301424593470828205627545360423136541700904035750400079975047326057965464146752757748183997378434907026358709441135798991657210178410623722743306862301704749020615600031775974107927160816664865684241478361195301282211399108487944918581592525612819340250885206064731640679218003751930076928375761668308037410505203277997874291026673735961048007401097351967769285285089852953775071536204591390919689108715467951059527569088648233958678162888163445378594463655135987193857609752268540800421900910189430761106925286751124092053107846384602452041048356058433622674714315577327012250802068609885069184497961919561520589683497930691009443002601779888524823076446585188418199753176209007689682017868452139254577158146541953826763687513501776387038986780855076587148669272333617933107614267629283321994159781271561838207903321158556420278114553116399569871779487868850831341794929187459802518182553991853738764312456502822803178343369138099986789094083768553041967230366347093637127276294270206731822800655628553967649974656246914192675425621459005580570294223478452023948870545314645583396503966646651199210603228392880804241684409253384756955380486776925722738592586431299392270187558246334500964724292279861848477138976239911704994373535316552702601126658779865778566707635250932328611339408158753084750839170221508144226576547295280633366959975821936594968117110805620976812715808223091841176146189582927951934082566511326181715024276046267983992526827855141511963437601078395819054696835343199465570392571249559325776328196685739467230601834176825175319525854040074121289820798737941781797696076043821816244680444388320133397776253648255030363355046874795579297204356758833718684613355191069027757473480642306737408321354585405369815850683175257158810967870739737538097655239899602438694225989541889955628672725697206859672679912455454992508142423530696878751656018118846442149142165136971595566397384880287221903983778366358420746692923505693008375832055485372301854376903243474102944610017287495947645994606573735502730323934631115021516308944008907192302235033519929141505406181850836587529354255910935868758932807503332620670106329311976078676727559544232170744795416212266830274851609972586680698833724179169969833095882352518379662224859775395365908568850348806308378214860687067263773333464051123346192556439692647410373441925325003923502727979000072225089566954991681589701491422557992519077984294514655859861176884551478486010441037664644798488392224331651541063746825273025881854849986077515963714330033746191326839590169270781343189870175203830049883994734846091924673093382065037740251109266349117749971323898459546462109410748709127868477126025122109256922321200845577004378834289756183166154529357545919294166722319776191949115142442314247695218551808723639799953474260433783302603102166071668084153042572525949237748620254700933286102287437281409379174840626180226999700353640794589634387983690641505170493756411299791591611897383447047424205153556909924383270003442827587960811093411555395828619959969763363168628342234842000042999756331054180086732093938090303595052394767871552631507437404061560102369246612392563868793341685154474270895742372665933574706087707784997444809187949300498149073528731145980630857398974392298143149333911132056837599498041481227001836024357306097812970893004401889117140244744899422516593197388636268208343452809897463814694996362220996901875712114103570078100014979557579945691229773975179985637802121015647773957911103301818529776677531143151404682759280072682876925855686421957420663213414061387493170595228936322817996307217906494197661443962216639823322188572792446191532455748923212645042444584736543519498227153748890051422735450622634996391099668724514425811393048821658761206540419104400550293357339867346947790974203837623081541607361733032375454897655214624020285127034782175803148448533552560205524493606311996550973497284819562001278984067661368810628322808370490153385289220192278633478859988060336791979664454018866543535974259726753507326820187991058359786120900758595348928784004226568772563757660201291754721102748387611389926953879333397325877379461787834493742513711238096787093571415253099012736623010772655429902557431492905870360337762811891090956092065540151790963236623795424786033809264216939987781122598214629267827858299246295302835921635863379017952020767700638960624812844826608786107771230200979027196341148544664267948238816338088072639794900166987633447967319641994810359745781920988394849852635586343269875395090396328803555785817343409243327579316999281104309005740316553468889070106709426317220656828443784668423551792952551781621775208856959781548547593260114742853142977130426425439048284470675312436938178373982899653911088081023947485682091582669337501759162270752192839991149588791522338422346970313074918455287484804328183497718188417745741495892683238850129735408124302513049244280757146451089313614306016275918796448800860810565080583669619878313143713171958504670215693850909511906684924895748820184982892080985810826558727779469795196085269297354698635689482994541528860128274041087638910044983788067501223691081738366220026316127664524132885102261817123738266237754361888484207109703569765646703796598913880483820899600954548675562368703218502279774310234247228619420677880828512360895339650892308992881683389439151395384179717788552994393934539153521915026821219125431754254449503034102930322845787947601192599193304596447433712211812080212741657185286676065924856795625783410710397130021123649216014090113494448453268239552345341735872995392247820264716132282360861488056046829670165822498919154781400127122981876257625061560916781763857929687297868719125841721986736566911652408728177402753192208948605535422523839475149252012040603541012941917301182977820090246177065230400640374080549134162230662034210043817657779266445696774224930193011312552941261928369253737298960121949572583942832085141310435691580535286221213873531906441802293612081183835253888314241292598472698050110380895409217340455931211306183185660886459273137523477122295256824744855936148805631254925052216279562356164476227857432576023673717862909551383566310572891507325052221361556101236203571193096419469360950204291029410521271276169386145287628055306944133687087366305407962345985065364648409386527827826300715605156074829299486292336104717545165050544915814743257404517790512993522812410479417478563865646349943682304731701921366310895327112405673462927319552011684231001928861505161002692496502208734855376475247059917095782210609354134476501706647579121209171021899022530637915197798809925293451143262380507134408123472387259096351636473054451900584937168057262494028116794901946261266173278472560035214311695930179527169624705497664058181288083894390396465830038473298243669500264606963872338144776065077125974656829742397563907933569291710893018650560264972780790121798748933367265581088645951383258250060607125926900616135168047511312300354883835678832725414010621637804172824029014936274070214924591876788303937794044197258184148377781137188294071499895381261425831596897700120573693520850007769163161250408592365344485434959518267652435187288007751803975769127905738744081031335407013762578524760608687770957172037347014207248180063019351895451214622374330421918129240313729699549959106910888456503570248899062036001957080620646809388755833798404513060413310203920169022873058121895095878205778817627213816241342556574069853922602936020310686176389266402162254668707252944249588946718268096350117871769326666916034471597317118436376089597345274305464525853508571740679844854820629034683511618105755369628524222973215274795643928891968891686395273387749830330521999750034487023614338839301188504397819026496661342802595843554274210416757850065547123216738289673138103130512774489055422877603614487890630641673956478327576168742087163141708833456567782958830582270591446527642800860144136466982457756980557371239395182631093847391998913697923141634818115550193433432611371455627425182581537007232558327012831124576100279542803825494831321735784074153096442822275399656588634965325180314523774430683613887898608304188045607350616630748109812281427489084781099700162213327494868186907533063442433995704797848418999650494755480901577625794315467551175058037983157133920789918378351717079484338443406291386238057187809144441770667883258065555499515927226013242761345881868917521922676693557568812571814598704170449684881445447597275298585023626706503393947220105284558348296652884936924757976059308543275946989174729425237061420283030691154033872758831891677120361584156071624536803734911427466512712047762272025108626429317531073956640812956829146167374596357233479757180414965401227167537907711124078523347622032191881326089303440184351391360098912085691675997398168079063539559800764139646712177593612198412862258473796815352670504872557683343550548889023786659531277519701136872520405871165257463303472092862158641901954245528507898417566996450167548170401482325320717771761911607917905226983072286036587030908319211760528341750052813329413309068399218338888115354184737604211766824970286997244519065151691127818562908896005347752898000944164900822908125858479054915085821956653370158817765697845021564247187958378930018937222030007951612751876216626852185166330758411042005557336908662089976619164844011413310750156336747156163871581527167323903837759175387589164855732623435293179104052376301262303802929841149981222113526811693862968201844872194825130782189158427266133970418649896200063096978854044355346325939292066168158573170661066083149821573276706202925157476960456427868586637037845795357028599391862859166105934905752560961383152931636366988288845916893641689837737545418777245753184033378911314793340797210109259072739569253547541513766399497539818351250733258724737526747838693073346279923057123250883286106627493507658451516758912424649095492172795097149031711747523939486609844987671685763068651743409752548561089333109828124144900889597456033718332195393099849383532054912036267753866665191084990901177868037723203160912692741936187798066228037186937423042289471689396076947756740692849283299500674151792131555314858707735470384888433376831530935501835473248123726372010241607888669985677612496185771638889917122037514830837401048213695059298104271169948758534755081668824237197886138944334814741810043287597669774948254936153347758721051386307154663692045623629902455577174921392800360475775978607795673221613080598012367641343576938202041397276635849428816432705088157787915126098010247279079532263443785800828251987015654382911078904555965351643403275769083372893235633055421996519134987911387617629914911280351997246593708696269686660796255065331454005665264806664501177467690393820287984945043154912059259651039578944507677222439948865843717720303465789808331299644722868779180033662595456096590203394856954498504217766976638550603149306604720333872139358965467149941357377335972023253694120899664850806184895339742807746467608958569632867057579143150110320523783867738178437829745145937083673384940425787917668760773966289277432113640542579321327504372006485817281134843932454663142743021390621656448650988444891805418386650869861530304866886127468964770478671046245625813776465644196750723535984100972108692252507005758181104221942143357503065660387347922788517442186586044493124340699611362546760335207118729546981505538570171151152249822659963414063342796119083450010985774131874114630969401700533594715676552289789650392581922123202083043293441665720976817894041934787426076409678714461480166409331352685065532644389501318516092242430169247579690188537005873743941356795922647597255463073852649814717515852101620425868431622782281255612941502622582713044542710462511485682138233921617791039126432570677172635407493632457293468386657976646508046199709115052531857806872080322376955075590448331627193887554928302298618263557546448928854877785915228919940931952690149526070128417181671785159937767124732151633178672019119149049383948854250261548840068697808342019094899998371096458338966411822260912930853964711921135562257002475107295821689365918008412015418542061714996006039467238176143211595750945421348102849629376474106948024846560193914056783600916907098478080300343909647561951757806607290044747871913610965287605873089650729003338215897078698735897369682548488746820580352042377343117153485412537868005152888201938078519182662761183115820226963401224756777294351031549662657571863743232753142120648030815110893460945171925492665074032988891046587260377598801613558507995559273909524069480588678788390651842319446151368649695034084367802421950096324638057048378268158958618612935115906001648431300350288029352414494660776058827448898496233350320072436007108673877992851036042635948455824078010549189716485120425612835198630947645484812709426442801557078092074296828154003002099314298598102905718673286305518141270868324777368450569247384447200192760356884299002357207256855373351704969340786654614866584863330139953173649009741506651311863341767173929400499366752757983546096815088462644099341076174740719234296835509797440692393439473504044819734487534525362218022291601340338483383112941688840658735199645675725183808784168746968057310821006637034782138109345509427037356798995462010464615451205095901546740328880265248563059075761158100814286237740534289083428788822386857917124838979900481674125224198014212515141230191158593539422853155396214982646415721589879320708007904580312375660498453761679869248551430635667677448075949125145009460361952002351083294302403622878981845393979637910483837279288273086651287871965796918797323484796062960408276090690700405654899847244224804870222543918469963670810343589075868146600665788523284900020225654180559956721615473719097112975239253179119922764313658635254467441632060273691793609679451092071546430003047603905328659829762417008323448819020403617474072282558057307429442932944806474939731124515915101393596936328654894221633117614488449828570447088638281654579064334370494597022289569326610612404945073063850843297310374533517139854682872115055670164669382113956990896459716543602699270757943289180404587666815636184542356365268961726361043460991751287342833810082894622168229944416234429291009979726387709924862890517644961884889606236384627827765191275891468469815722939882476831622567883202065257921681516402533469635116729166157869198995230650865591267785929135909965684767330587613512892505491054474533450753897399664996298319285217213820216918424854035210669163069775138125226413049575425286895855013442730077276551854937044377534149770786449493043839481416115684882371785184450396167329099365728351253986947091458563627384589060432312564574098647083565929720730620696337641880478527958446002831786488960903228130621298553955450563763899323928157430291206999900607640828732111600598170819578117160620955006290827720491781056298630091351934904560768535369261616859356337238419432438367612815718035236381805188303313136934757258915898350801224171450815315618483179823367002674088542681992983303491963577260035202876733242544620809606146481920915732516224326124492649582814980476609600645906709767792099299263262166504897073470203480050210367577804741722233954694749692134333932755996340415257898028014149414813131626616811949079938518095089508734576227745518144443894172481720907406669151243763752339032188086748343861197086759026664086496821562951968867374754920151235544101473223820478323465832523962125990628832787416062475678428821930285134733276446713943138863874049404878367160865065565760296527599929593056316813514765385614382930448641252270615948417993105126848010396555534601818538024066590754833125662597417736095786298931517507905105067325751995757516829716849916676927297489472741077386617959048217060930874923553911249648347923596376036419656995636634647751722163394387755766875483037179618955193725170734055773489611346978719079493686807603884495058162664711108589218951032248604656431987471639492603590436268067806015257134357491846728887526759645269754206132551671737537344435842000603570049991091149487107756094117406238223241264292445067555140425287445782807782406066180422428545074666310921036497706848087032011256498426104244803628769098784759932619026100642720824005904273181286361249326753015334147732480957101351910745423697022217951338356843170366016988828207746037601797603946574089956267844963498230218886085773151660131851017985077996714445647125282400277592943780214695706204093193232066578423217715359898177637407109143418402590571026463134925702208066261506646272801298431018596259990504230675122972931891617567591008695062277987753489220127990225733893411582204291542401765771131190945804052231667224731029177396013576188489488892490659607872192851411870739481534647907965004476510620722799841978157083405375519208092190636552576779115017910110263641593493956424318922765281991796927346659306053070508894828587036486975909882597505068079576450961249010847899136980811511374663748493320690364935611490612518663376258300607227731480621207066287540360199053962811241924574124454612989760312624495658148794314884824377328043238294982052342259441492058649513716067581467782063134635099444811562306927363360250585972119875677087423694409304531586679529175503519416306499453288823143946210286006430625961055231871647827374571683532185065999616782890676856375229423904337407329734990963327657227216932884113257846077199453365521503397440119877049556395697692402074185893654903243687450972810122282225592176248551460491051317832159309550923573538199744687334102910799619522487523592966289216511276736363894940947382714051734884096781956648237658086038814804880334196073188683822295545377115832287236655901810139568339091648275803557187501074067206466579668674633909588737100383924909689390606309709420888709138828276780594440862675083171026487365992172515830969363769902008824564133256444731322163876763658525293609064751130513847134181096794121057278220780282760599734597484774439606500446137824104937522468415344305037011143168967632923540465860967772258323607577149928682641402616312176879409707575410825066650555225888863892286712822509406702854636798494531602063379954867395574847001181314054152280116783540370195530182527887694400485568561976908948620491605583493027731936672259532297012367821751271380256644870034326886196039414901319964167749427414694346090539331612911797990139948056357360321277269530986410890736284394403423459442656880646660121444817038830412028028254076700952442736064654106557300980699918821825168734166693247567868922854762678961063308894291675098564315224195596582078723187905730043234347606905082313233053446141500980781042789424432334545258024179168953271026892617237194569060583555194608324441231498948538776630997399458734652054762196921823834527756898242243906549510459976680087902249409273545989209042615218578631198295715809080804108116735595901907400351077923882031896333059628122462431090507201967814153934459386999311964654823409476963091170579846835286346318097334195262328490799094888043383094872862045081149168542811017422633573704862738521724311917342569108869761940150022947388816824315459733249670980496471447359609437992658531316905454495385682852895447716341366373598525301985891137526106205971590447086991530601513675472725932020034626927697661825034411195707199520983881433138302362892996624871157998792708811878868147660042110248159418737530784666306289568382256507415947586234851791162597683104396909717532407607081591715258817222200554259387462710204948361828269153608337853657141943070469542340738595401545661930267207619868035792691244072474038006506198721098556791968606548606317116889461897285534264711644512310882286630923904706350319477214103028281862685732781283985039721467181712520460198336924639028697208085620674099069567929022990715694131191630753393539063069503597581972239031221278237340434126788289378444577329562906065666889019368543064403869082545126889713108756428858386120395243006848152466084842085535293958579299352566875757767372272770095352505393707660394876533504621974858566167902193327594913940060316871500959370067095752365657136713492985795277526344690735682010619179928216034045999880016979248235032921152006385772501455010560218775741275765927384025124146784102581221498005003048090447079791375447058669369637128050093170586444087999814528000603643537721112733872403684025128273122270178000461786480506841976530659486012175530497185958505384446808278506093950439264561642372835704856438219545821974905073576140084696024767750033867422048286353119065345989812793943068484589041992637222100360998233860298872901164648893472782824360748109852654236642364494992799888543129355049297295701139053077101649745738004245844596080298133684826114080736793388106024157785419163163640909374363371263744338077386739881582005745723067139099438700143357598992932549155303175244484827776518002122892021866520762850292427545262694661991360832752958165092403182022487253705663067180242080980940674633100340108138963365322173590796292688186896848707444632916944636849424957229838985959063528059137125389555744436051608017676218042476415082220744688536115429688741290569019379264634631963390506024574976907242569267823010694555423853797248716298220962507651573245005261645732771479220624511443266314818100289206783898959787892010182602731259682733222125758431666466248100192457298252274165825269321865235912423708923943865348727761283192637344835773499175476024485581904672416902891999771378702040276546588744215897291325381822986830871871603504332574833954545306937890060541378152348523067926801844751306498902352745052705435690185315095018894922720286403461032939654840726200724027034077141643401598630707877608539569100765212676393734110491806361401825810380763478703796036558281159271135570760370165065079548337597748907734348367531290481595468046490016660088535053197689610344104441585594519330056475166108161400264554670631236975439660118664835251568262831382659706622751721465008686876313118649497628808794812561503249261630930627522865858161784979964026650221206381962439832888124159532579486799394518116971133949589272755915777795083453770934023840074257425320148130772421776558547397760698923601417021437515558080330631491032569717232044778964710570358522965885523909861225663777124505547875764147447292972438818949168990210953032854936539551890301823678527851844416909667418733868705720325841183433675643323187718687795684193456862953315319141930912355163761992705814115168751936044478820068443689252760649566673603951483759944278791811897973460513612302339085195826013113666091914554064502222253613313434059078422602513431572217919754120959548759971081474692303066475015551262229037378645571654019340993446589335734417269295256992040628560773380236006433738751478697433662760899051843782017711310276047152421301000003050568648441663666052169827703399752417099030112740126983976021255827439096139864979329303673511108821770783913749470784153972704590090745255107481859047432399933531700247269418373835165900602824859326375949203182348362641973805517680640327665842837150004432752317234623656774214464288718323394640641379327024474140375119140903639969102166667422690927130819186590629075595561090730970686905791712635836687335634835864171526244447462357172877857712821122993158828889904242547011022143913693129062066359599521180652007031503342582847048757695373153802239444839307815111846831753656378909093980458965047237501839625068771851439605638545358007043960507045955979442492436509557004230098877688048793387877292144073185528981531128505014870721904611376302520620461768630698976342276479084749893982521719431253730974292301313475453388429883289400102212355024535643055829320887554380373027664979028398527704222315270294253771348386776244928259930381663031337785381306950860865989164643492627400328073643347649012339725017861283791686645392901617821327909093269068235294419113276395333342590453836307415105550269254048643761181774257763775023608574682016230556938292002269161368202817949714188105582692928005768824109336687394084352592469108051005911826930675533474445382692220139328915351462644635143254394405275374008439360834493784240326271236901409642092450833015931191651040401419517713787996153718681452103831228782069578178466626279710876933143289336982120770350419314899070680151801400260463044374187157275093212801354543160150902521378194074195280437309589930237808897142134065896538061067438371752244140594735069036927730494743367678022618012582736004899576174102456477001725478002565001257940072628808300803374466792266014433494213696529574108123008596424488849247755564007040062848742448519041204142544815477341557645079651179848849666987258674723767470662046827576192439479076300686188614507160995250174035433282239839960280054306474919181122135685511541832472405370496062557045536728524031494232284950263635555861146333444999891341763855971667832052213315609212501580991339756057662123355494570709233998703014631450106344026657426152968435005628226931211247176700670306023572026061830041142323949413408830368361842148885884625611281178093336488973325427476726280618081973935801313998014895507477822005810571212339466054042703205243275515465902219298241026842026249165014356321511668458113792521731304035355339394927804710254597284629142583781804184857032153595433234814893347720360391972907559674282757869511161615813178703099296774432003026384384568683286380442039390016742985397108260450529361201116640305171957867072136175590801784629028092419486973441363281670295627187900037344952746801389951643363068261043276427319871769990421504876543842706571416642686851906186745881116961250362259610374139738200973920636095147086289757712026762107794794007840986076677002497320335636245265109369790261799570190356358891667016686771710152925303140495606428857450658029133537010175333557126899888429066025592597428931672393056578666195540897458487187921843259567187878662596618862702023034601469093857456905999682144876397826378847403549331111435048044191677924302843438369603007914396481686809314634078817491052886013561950048060103168254999217164850810590926482438429983487794480855120075065810012164721000389050890340098116403172834194027895892723570849577048206593544644893990504144420191526913140489214736490611166574070772968015142261110354098198364892559094496331310641765797721937751902330726451463950367054008329096065305295361346214721177647251936452231588889983034519584588046765371442405151862015976708469765296367550868594391258281176411741272108909180522060078065707335022351492857311017893662840418288957564950694551718056613864373240266307779412126285113704496478559772688301885661248831985669445103339420425836080079374184954317193268793706594715573037612275555028343790296434740105695507597316749226685945809195793383094647448901615746818481610532754036649474136876684032990918677963538369845163754167405697375260920889989754856368917161460530056325748573426861445663739353348873524102077875332963453521855027673255789623517543126681643057686521551771131898469318916952999315890677871069403796206073500104333634808505971360547024416184618267804236511736499553039278314309933320361665812230458044250372407029793370320211695323060498730010588187446256433455547801268172180388291425901286734299500886465634955877784858422881739191530283530658334704406117172884695983609933702309260105171461568257689388115846543397768548854110503098453039887467569294709018248562963547549678299050665502690187466118257927579140983942381848332898793984856615697159133448962109996232615816703812947068055853185299110498214935090610723449143389649100294731795236282457634602747693157641546097366359839402674069680930775890231526454265969831045875157945521708436830041264583552340715198116474555765450018732473971689146827020428393039315794383026949712430391514494863930512114806041287772710835603913126518475224020919019443665552877634974578294033588157215063794357755168041297729828161513813511634287067068191611358668652442498301051874270013324728615829991662335112351165963457035298556241038561865859440818322591580359170194892300433284179824992136203405685460739977707336974017203949796004274605634360004749675167101537009080047431079896930266046801095314028807471755030897048030956597559416047695008222535774655247739742245502727532596155618495595020802091769341853190764005551254228465700825666064991434889874075772276881106267460283776840080477665438556756914335514370893235101764034071734392298602065037847822856918892903383199866719704021500956396824695209027691771155878615205510943050703878840526322658963586959682730414243380446716318131675609237944714878182541045571128075558821429658670466423130021603043061865947999625494191982371390445159421200144641574478345852524561805141984981329484452974306551056625149742313276320053366587912650455633743424774310027596404392523763418451946565143486900425412449799779252599441389332835647461382268566579377143955316773190152422610036447138556402781116750285799418550105575634969049171980485339812032506131384893669515769208750059551298430528962777953756383919343753163718373854444781362794516441536077909858057916379475562141303591406634576394938702612208386103511763632189472110557649934750452229650936272772770352313714603842694677210718299663778557666700476841955228885177605636729520628194985094669219960324011517790488915331095143210171819989402714314303820762129395373048846900155946304500457286024130800693451676834869270826116312286501155539180277464965007789865908448982023336988225653236472968817820160188676429017286688525268330606209323365932646287777469231874238217724476651691347379371318822645111347987403497823399698290856622787247669975283670704590633624004296493530802678438962826454635851963285748878162647727198860702883498847905932348346690110042809983147300884273370372092355226392211929154905229667828844336557203321793736173543617118211574365523060309764644665341979155349561726329372198599268263122194920859773437911589518472989528183489681014512365182446601475185081319052701033782452606223660613855871182862226083687183322036677951573218274467734674687248019861675742943537710183828494799366826448524193715520299225156625453681281014816697301291196932104462513577153936121640745451767905977641861448709393858875092757711014854239242288617622564730500840681015846118295383908900974289390218539851290428922397209305392027450769187509379052038075335653626658134804111999327635331396731685374086309341062346693410949569027262541057988642541001585117472623276725464899216591336905888209430908507498311435733080528441279514813336665646789790729898982957659238608312708601531536077221315858022596177737544521521139458921754385972537083904081689469570762713828912689376409411407548284321783292993641779329477072893648254219233979109769984835724145897804339788195103413335124300177800037413299316767874587017112867244585314070203198317536566174680710779559510292266851723173685777038968772766329776594056866934919882740010134783043114252659158177733275238585635221508670644307748044156677990226480293191486076463444279068809535901828042279868151859641216520028036571873597528191567688644358719793663267596060612761330031735949734688549329673485403972560720437528958866509342011138711046982423997296228836168236659980072180948069435920510100674419689448622348323732130398090637849211609372800839587151324966125595914301606578738964770542723686394300208423189801923676116164545946706605329460592321742707942159843129234158600330371638610107806812278443096854744142384078625268840030178321008177160469324802461777466380930776128378620434108955993570715348966176195607850401342053872040098952868519453749065222669838947744487945059524076418661376953296412297545296864734151498013355739989397338745558835996543518564912090971337503643245500701044506508209314049759734331142287259361669542612580737631445585133952616124689151255730724562704316826429857930304084224234804839998096140767966429906255117323867551173766716526731810389912026007522269345817136425118172621009980884219476430106691572797978852371324634126953775847911261025872634061139403621824114147899758910976968920949703914125946791420154910699423295817517174315513851657555978822359464288568517750722836946420258183002350328146509094747776975505046757420880541424475011791429853913549904797373998409122092412817949539756609994047517286797468180897860815770733737924193184532134891316772104747745256891432326882926250038535331922625474517155877930945805929133347286291017555812503775900595119978364527956082322275925942265176722297659692521747650743392520865541006424099419814297762783767125889243902157166981989486725350267151327102192755195993630002373764311942512371294078957544193415600532498719073146416694829533969436168770613037830490243378444653282488005616780691787948214703220232280660979210146909443690954767183138489027081734495033545212297372302075826412756066672287673718456138808637694075746368642331521886942377474914993950661411368891490133350572546515728617657657238443603185737811264705625259927547232613317243311449223749717588573679918315377281955989170174963484924521999641571739879090619866977206271095474851346453597583568974265338652134652547359356533348072366678740869138747024009328718207432758081424960452015941836988245082747964695446399125606765797280034334968569660470203241807953324519750494513471752078766255788612675895002711903413885881741619846478329119645773069148199934869643549554550702577174189963606621740599185928222710065559752974443192578147109096444520669058803972177186039119831023391477187224606434245551503708221145741728972156728154474889524528379079254196093978651128849350070553940014623040260423083050615571405367251183624834633357010823042405247753252563142489526425802701042106051724295682472284823624185370010867494261917307226304400778921838612977660283464471208837089168341370019774959729329177201722177573161742771749901608753731216682146967219388665767790982155536291608468081293902830994920083435956400247719723549093649745513239695054839190014781984201857389582317719382129792417284181764720427886756866084855159520010975459598100707728424259020467106471884289642762383731335290807423478314572862341465165384952806568504880475099979748329486951690466402264948845515059558075184106221136744794342456169321827910380804353703433361963907313521621713998184426955224057334054408128829790286897652377603608842018704129862492039001306428005911467975861460030114690701895777552452058635247909657779283193997243762369864877209152044975012244914627150134524931032319219615080917642607324235348267022835257044893043419237447492134808970571190482813142842667297354017163274905932628203090899573499144262573594091112253064816505710877333594761157082507995115863427132604985528466252406286445651105311351509805242381559895227323155945494204343939596527965510497057796831801890121353631485734741517375993018550819101287029020816064520153044603386048224248982557346985187323937595503490619638293904602669297743055025481351276456508168881985745266588025162719431209906630880888106462362780587583256273238564965914825939884931108147857646384782175696004804365245453938489209561610589749927556948390221243591443203849957599295655345709586764342942974968207931358534504796675437701236264710364794694132171148513118484084526882972826498114454497732754231421518122345427343738454896127756968694212971152366178053187928554142394694338838717258777073437450927624516830199922341001195599627113467958683992001685856870370407614041738435899158163041873472671166651042257345058774184233866904794489225468882517442031253075136798167219557570192610688555805444227787417266129127715720235628248771428346187879521131489148564573706947829871567168280011663921707467305160556904882219624696224904619013693371873016018687076882966399802405373530729246476885976041713965818717270399693230015309166689674194087648847612376847167296662549554445029178054013220210597853950698006460679799281487796142899296855380549514272036271633375348959315998700176782969259128262230984676709243020130174327956035639397097000605853047894417694926364547827802733125155827567147464504142013729462214635292152942536000703594327072397109323237362887141397051031624539838479296023486346661683246766778612242881149324906075656418714248923784382292983988998541713918520996163209731485353320723804493963432242604392708439544991273695329332956137883859865294566267279267173694531675025338806022561186621548468362972753349430580795103583721819577539214541979661765262042141701141703424919887286755096424988477633276312917342351645558157399698613161407041495449684661833464332272915148665523741473371326497724512111985173760651280640290386524851017182214209666176592515522852095412984377387623281445230117703502552980024403319849622210804401892276765723849443918114794109230729298550224640555306127049857365018378016779149855152331103841442877892316580345305199072801835847212979096330121430582175950556764753774120916342404402445646674722255013908619110411300766980198516027777357701636116208373759902873214619214770751984454198274863481404756391888860938437236181413975338579852343805636250229949114796877491034826985694277382779794204631578412524919401029653869572147789048790887260357701164490344185751496477281512643687686631880873847863841434348124041672270701165327307890653963765407990832859374162885554286496062952267407830538594794417617361500228872310425087283819858314823865463915546927900277234975044453102932264088554797488780015817318212773480868193277530485334446867972110438061969389943842030664885301567145716239992671990943367727249812559352401987754953415863778640598777771495835571572020398188826785952639413585733599151683553474289670036906722392095115998986990652448920977477367405051949372032410739487408910981700852394238217120565641944419626829103378994831888414509113343757395767733334277818019261482893113567459644819939306928561401506082168750805168386876870300601425539318466549398723345182251614005565493861443909471491893141127818678899614703503539732482995974425578420693401406167370168707531678988524826378006926725842525169870171823009998760988501274825095014843094550101936790640692075897390909150911826155452533436320858497560292383712014746714109099526693418898655391732691655919950554373627086239549373575815749963863696382626890527060642884057133009558139637332813414372730678076125301364563758454087770554668945010078526163039056737415650543624527348566101692009985642257630519399033341179042617982328097118201491823120447338497406153834918035028340141350746784803183267438117337904062747826106546549623115239919130080328984363950310636265897236861062325191291245185533745614805748964272808041197580979934509502780602190556045508094077191013061411627580904855331343335695170037688133127847980247948648117236996846041022156207711164585742140146846408268396185129559356813087986288816219424831146494698051759946223064110308471293968677626015446707725956717295908496968809109337794407909109654083638474675136220356522954142982272243950241846149157207336680501200121069411220959691252226981477256160290879528813029928552296734826627048165131685568289813549900305417813273013980636590317076062134805826213595070251571432097444429359562143074911627664072325076805700048101958027733558146601288468692379427164159686211509041465818221390773595744466611496241996474431625196616220182176597664224700162479320424211051760476831215076920796122467326981113422847637244977382369156323948336406176081150531112933587045964759939595619592476508932564313885125569577809205800127531873677977411195797284106866076373873655465221280461867471335976204527365764322211756352287552149158423219107750343802174410582761402219387831889054576805062042570141664264043043437717768620806015206401114860190818841187869978129740848638877042074300726031876275375329479820294169605273488435297510348246292969504802872865123488459678097441016955857295621786234243040640949531949642436901723832037986056949026798580228706621936980717014524005646377725575691645008849050076039433869433415903218734398406942523663744147698733777660715430844952854025449760430609079883544840725128673134035463494798502354496579664630063774544556272054948595962054696354891658342139863293405564946116259261646045274576438240869555690030886667106909831605532798699565381159720950388727432925921663350683794332882121935683662664890512337170219080592306820887955540070225054917838480202680500581767838492535851680281835521482042197714915445029597700713558993563112528957730561077637442972222474389790534702125141856084430985928963330951017491893988835176459085992355799724387116164291941089596039857928589829055011766886082999671834622032363633007875931222953093762454190715644147369155170721805017276329735390595086100644222026633271550884747060556222500168588625688260590931653203830896144895001045476963176087043538897315991042983433570048735331359222749690296374907056162164085767147447891896962761268574442126562867289044548875126987464693294931685121995953885937940270710912793415998105779956666326296283792922356735086944351708543373873161523175677681133696764091437246575306737136815463280351716528352246873003694609543628143524343868649809470816298719580059064392987622013514267317712027472744272525257843855442027032995674728560545851416241301015148611239423044525866446926720590899209482360201180708953587516521550670674643052842799653608150763425459643603728163845539220975050972668500635954447568224749143830035737785679467990254158136748325773786305538741826432748153426161537975291805489221784684604128371304231299373085051900009263475081679280787983992742648395554359887880482869811455267812763176480241234462229484653582873171428175438397286415696094995142101249315234239437597774925767148161045118841549432638002994929975090148011924379710533767487739049428853116855319954265976738298054681701589310043842088444652288795162681895766264265658382624332157345008387553883324293982845741940116493147428930758090225631107894883136030852023065744035203102803421139410929564333461680357757531272147938852480189970337443987751545170922370977596070325336704752422161760610601268593806945862942479350302923507337594472100571720564973095324016321312009873234048041695301406410362111660260395250607565033870983070673510802948960891748976334813590891369271651136765253141063187944146767236766348991361339921030718947056955095674282032457357944929794697627377173713457890112924754007662185805905203139624860262339259549504082662066429445430743990684684472038528778316679929620571264583650060433431495217511596588162490762224652885888168434635215675651366752274833206007240249935739380908263765843447643332660462370070290342969365038424536491918262961119090156379535818242717037406431412964690332116320117920052438034448187732371337688590241547197755676684098265263720292840866913198913263463725887506861596162132030742080255649657216497677550633117235794269860518290594906841873185865502381715837557681047064252326139414051088174405782713286133277144850906674339436579008206798722390971692735592018736095928004208521965781413088213807356437905566974783298476100764385773775148083239380337763237838449506082592721163534686028849760732792530731975868313186818322617638551912744457356646802186767177839229534859283392872308834726895482148131072839945824957589582297746262434176564734421000317105622763052005357897641779896090161093160968372607276112616877080222287870800458886323402477077479746161793755902582856496251683298514993470587912265278916487161920050501657557440851942079725067033554521504612227201726371450624279693379719550346464536523872911824491069297790648701089768698171106075778468796248883186479098438519961458076774766897662967156841317710502042443630988109940043182812952658067563576266349670999456844297710184358186232328665267595728221129161249712150681044643285249816257481122370493460725519939361203376609473726800804081459620449299867131839342347698581587802461353812863058621651534771388692320151725075460835173063997550986906009428082430115146803950116628502715973738701506934559538348786950282852443038518517523849410419039091284055829102003116252736103757158657195544704885247771381823869248715393837213266947185463637174483182430884355863283001947304032567767125851979245220322396986564510385792755250325383957577024240029072550277896341938510066446450733540518296315171714005470710707730528335961293963819074721093648222508503086480546411643030578761379237976863492332405442147630169122645181575844501131952417367684129487063980868337534565073536729793765210613189842757008034718914629931277930717182337182541940415223767819134241629274909058884056264998331905448954389539126308136973182932835753302350378212006134516323520931969450529955707749504771814274761578703209991724191709143346924579630937765229826761659592870128272568930076467776317743085610185357514385333772875415220108728895720343309247780031951918655364539177445011867622225214289815731998917165306655034120413801272804154550433220454210230271305608247934330361782158606150168773095177947165409924130605153594023455361235697056732093316203081626020224728592845777127736253507819765182249700403521316208683148697023969352327526901765945283608376670627263417781263891973733955281997891100771825628153587342991227414684870820107601651684671946695453202186789062687936170232516475195467051855833046281387735613651419079437484416804387305455984907271389438450738376894486549914921256618621587575304790670968600262781582511928338567875094874986903975375472520165049767636613029787867143616731828592460801389213809482440386431834745579082105722093099830315667084210110324382989874934467578292470215105185412541945549878890339675540836093577974580495734092915231352523631875488249157307674686522831169006008857323842314225911312766055028952372061162695915866356261405111338767395208449637511414708267224846874346082121953604392161135130235881538717967372709663133353552762543517487187886196267488160345603644117329701288623713942970339340488644089676869119946968330303023782271093414443469638795528517692091522543239870712861727773994231459652099062564423605455100817191512713951017019754061274251659502377041141270942131616399360210300727937426293651723152684849649080562380761783702499591307595037069726200439245828194644573454626748607286797222958208127976848639095120503206940967841561351581624473987408854349182593163017233366167135500717234479813699439851038906349573272928321369124010613500493616855949396041048818946414058993966843771728573668094516399474621361087029379882963899388860363069887176682371662241224665865305601127298935946589265242621505197582961107545412105561931643470880361214773886039978313265930706065356344354647302675584985109551970547705294195145394343705488899881007127872148255382960431161509784874961971458942751007654403910189624132884288525340919211510818245265854048645952885561601789220994592103973486879041319139285476329576351183381385150769097390644147851759786962428315211418632926865383875151521067756995478425841113560517024368053629097905100118696370123826997409218765652782365702490194151955746951425428612078535790250624797955539830819967969970248886744596757379603664540124828803656143316615003366122535451105151751738954661975288291992822133670989819512589414196255980258588433743795342904404349493457988030942116054065915158568062341492689722518655346168765049938413016846869611217043259188435630358939317416670354659814207699008569421090495770988620988957583113831531740693146533900251414675840439884842480888935929226338251289228983625574648066478475865556567230023769835034568499431655620542696795317393038568398736322239696834554952196522240050872782315517267892642358152477698990910067919111051272502249818183363785474694555054957634769872784169354415713843364236940722996613779435962197070174106513233729167424611528309709393949412725402865550996896079803634118201012998935987776490974802436054587995234746422530239505972863871221839522612802436840098996387040026494398879711563832492448620877338856015254860301813768855462709259286517834556439193121057813652843516692700012038807871836629166974688676593155380492480465724515068331931563876411010327086525126850457650272985019046126904740006277237563176686232172146686840339243168344185209447652856727658136609428151869919981640350850653161487227266138750237173338072945374158409828351396560159665932447270543705143234017569068224031043675305067571186769758309474689978154494317616138059286886656399133441062923120181088257429223697671365547025434768432856766074859136592084312154467839853788833778236953888054347369547808725318155770065384069435175637942368779390620753161420438910100068175463835200002753892869394516754858574622088714468825204602857816255405280395367347738903387941249774607823006503974605467833100807188232121541759195505007927011250278409122835859406820889693935559036073890938123730388708025739747992801199016825934563169656641519857389673348225942115322735942956785943675885509026241263260192638516185725327963691662074688621315280021575827174744279005270255752933140680842615607758071377566892194729704554423217116474458681382148210143103546955564212061615237169561400486068398372960318768941577589649719386425520434528707101067766138770549627517451540319910209417881771557242146316621357952978203788588677878399279126990177832339461622295252899494532581825156778689814978558192093473656185672095697237301715022568993622302395658767013590808030378977192091037489211951018675479748292855234447110958579399952147570809903729409913659245120313415009004857844320128531611779970219418411178821488529577339438330611303827193514838656774754344229242206356354511294725796719850118886586808994712236970646883207425400129375176331560718261091265357059207531183720650269274994875409907875413117780888097844626182121082692428053609212095275810651750938765661123213897003345553817683617735972393081272757460248836359343338374204046460473318319750521907034841629339986225975871866212894557078257199698893097114966655266823999433443255409272455893264098151309584589572786321459017709619865077228401851381472861220668877695658890028256575990772008915987114827114270682970330426006185122210370823463617890979154129556087238425156054168216389404609250794461547778982043473341765476851856039077610258241546323512914481108271592618916085455672410517211999522628570293978890461263172344674820965648223340249232991860667426273966953369066530401577940942141134772022991699898743954775138582552336879240393464248740344478005551177752296053645310469722240707286503233253727405750074390026111079052093900213855027434728207393034839175474684158428962775005937485091577939933863813230391506493175506045798760866414037053548210982172500540879177507262919697057610053054840868482289889494706134228570225078918108244217497148304688583111956780644802361502525809473565999985838436215357589768244890788128350282343111980316896498627341008727108406561635250032431187377867239888009687769637486863442002203803446542373298040757463836050744335535528475319198255735508999455505869420713098411968842204522011900821679180878194064852741097802555428092873640335811259657012064285026038970773757277659373625989685102841532611092829589037442593062500737168215145633034076692221001296949723656019312813688726410387397844820037904181409423179715257858177186405053123166076092164264074280378846512215327380941322061647253194722609724322154368887924413804378674556028318187073846267135413953589112543992531343591288396420042727487140578394914772579526295273761883153836138796464054855930028620542228744500085071376151575327960397345616884742284095937644197878422559057642537256519735318827230221060239083919316119544996247800394611736610955768772828924833178568368914216819262023611094286547956198026647776137580005993758822086702033705875801468147090226885234140199715214521816878682495533488928374472822053236133776318886002723051184242077970625506502253194011175161150621545975766297795512949600684889226291635084117290173716816853460155141922192381584514515708440870306414456781789723297432959149933421927342141702512053153167847563115848275425911711248704874901330902144715279538297844471138448302042323425745381854489479697645659117996567237506324938369821901137988691684398607413318668234830769977416918725662484164196434008026399939013431095093814424617008169888250071783916801696845302687253186679264963715398188848832039746740279813335487139920179751732786857060500006780513952918526735725975840533089630480615380048383741203519897863108938534910723488514980894032245556595936853772226760629801979823498334704413609042071512399264421268671947145955762039773133615987530115128499930817456448846665908852383572471294184447532936354416871124593976644114291783086093340720107865801091911578616782289253883145509314998598971529638303762471478442213583312153357228865097813168552904689030388978429352917380853744722535845563319920394259522052267996717217029642582130702785937699687083793491371705358194110818835305930732852963690547655979340176486538311431432687721209729393792895083648285772782251771897596466029016210848921407631120236969086898453418233986839990202705148639351820670388252949362095946724843315565569810542096401841601053782802747480819916697709742612965320427008272308418347503522876720015005918171783232253297410562605440197444764682178794014242129022837511139780024985009855706921481802763510205299217598185238386098795497735792368957229511181219165193171055629173144093221022842526790549450623898723749962566095838396821580024085249853731671250248410624876923159741916676594581812318116790880347941138559527710624332821380225411235569938463628059587642051394564021368458166763115800508878705039505864860668334768009991059839164041684591327634539843793003816814276980303813737260423912022591534441550547724474584270947766189645120664265575761234221705627535558234618374635945699988227573760654251538353446432364545423146621070316828017339385449858709035930837197791130193036027010885123409212500899025543406355902819255893146388232233789889985453930615057248364435497300806077599467826182654340912046371248168047737001506533886810664319970703727415989667184981053949735370960003046001156893824031874512886468840470523902384607112534502975679531553611249256122645702478058447177708253724785797399888642765983026611804200735697028786912877829405585060555638776771487710327465087613591718152590339065277015202465197827433890461820944373819608746962217267850858363207880320506674418597932590670815888552392711477587849607646663470121428962933671801807864406853704434233842543943942588425936113935494365331748767782772443748073348974372134374305885637271803523180599958662003147347626621789212734211303254347138787260604146833997000550484687617709781712937572617006616725821628428495147092028993657414339331817039130670271647914806078764747250456758234972929401625815796616104614315778569826604162305632505851167680183657853137156095003788940883561875520417361720906043907505862029727608590547477911545094915617896887761380143498110480290251782463194954775368734992192145041832242347445370930638966613010602844073521599512704583187344586115064850180191569300348780941436955437979634504429756479300682756387145208180720968236430005914599707498156699675496936080681012384803096943575491199397232684172410110765427128613848391764025335488588266118277787285979814755670186772157530588560562467013246981872622343434405028075107219291858324318992557932323146488232838234537051720042846767065710440407275868226497500286533171096046607103896566474125655700701572348200030773110510244909408578444260845817579247767728553975600540801152101762949417983785687068105771468990492893649274259303164445487941966352324853214702553101533493098280726875857923339535825964322986994324134800572952472669192252739239310369641066988398905907151950019170071110883510624109441539630632771831799733509913629368802378181678538449984530744187193012036595406853488275283283473979329261039701381797356363129945849040837939990393834579038944242070392867181610781898471881717714721664022663370961996367881360917798884336974110525751494558813428853211997520513877060256523516564579022513624797824440064293980551100302936386949908139516704451556113171396644745166420922054802484032021946955346543761389690312262393675141813375679907778220336487974294362369423484578856273544026941137773017518528692027464058868850970692372558256540190230631432277372773446545685061348770146880201300470105443732209669137105893145891473887600636111457644448840041035187896623808750340015524587166491352639564685207678719684004705159558014189336206897323517423402174946639145950362035121727592249264684789833856922738421434863340754592965727915763330335567855602768040394297061942972486338717327288989609856433144619293269399880152764688849554038618379572468611954592633258867023066499516149181238015711537062340545967433862615359493239178094215238896632033380759752202874390256553555444244246138395270145711840809244948786715784707616784918681271755371466885282768949049095585898260801504721441628268878212333847225175123833566468253356141896441401056214246053969153705019278287595288654015053506201249887988013667811779284082712711566373489576386206363554192994227534828413237208415316501121982989364946411296238984691156798378229162203293092848233303887250895619592846228876319573644771450275626029784615023496363602616694151464094345351057593715643555615665756679768038478193395439742944985706656178541658150333364777730281421391165780846967654093694037346127433356550264064004400512762403512816449880215148538247433605272854330843437417458828054570127273144953682470283604573579740723024439608339562847373517738017548658368770931267133933753510267920806278700441655981688235224011506213251153259401607754241437082733461580690665442121463127733481758443680436354981017873627558961658184538596564023490307094561718401487664653490929556089385106643989538299633057361242775218177242955210165610812681503514346140885427967683024004777613908976972991607824617469723939036701048467228851612782396734827597925229028084525092081608337442292907523286136298179706071679641289478510468553551551415946049552471910332772097634434955271639930740448855275694289949195264099721717340709675517420402325689620021206375167233870225325725273226436250767615455304011867536166333085398570728071817524813020167824311889293103411568538396253949227465247484854641985589628864418003585597676352966741968757745031899489888076592216470546104445511933318862898393334096946794200148347261621449281737549146763382476774374614711400005498938112321267917632267323100106622315105137924096789949933477391292035519196072433020949814189315601593768602241674487624533310960726788431147030841714468119262447293007744600560656549436683171715476154058385140547470671073882496670103290459912920795300733904754098948558344045170973299165446926464792280739175996286786371608247697677518541917448700552571545865285818222798582401492727482042732899320281354636796919307680402806420095763401172463911387124303301300889976895925483015305495899222698673081096555443498727933757248866117170031034276344962885729130401370463521085067873845447767727179863278923300006869885330830312271218875283494377603899119267701435067653909618104384825747538857350314854588122516621019885506974566874822605746452649492076700443605646044003877277960027009053788363836133168797759552356547289355160725829974064254343523626370284807224749863438099738356663961468961397277711430633475033153202670055025340911715800625619623325016705765206863142255557379630298381838626347423003955696397817830035062554277582638865397723758950988733494581631952698758486167383956884157508235470407820682848206054799341602611414947947105135805692397467561865391982780704816935946432476038571075177163560094124376338159015800393305658750842214436326311353629801697669688710132250733497033956430003096971641971280711858023333552745190115496493150742954373462830300235868489244204208295060349098397358908305554939094451827478525423266863158919912441767937565252296171281734118474452981892497287654562151421323356520619762926939355794790073897710077706051909827243079579809179956395496731445321158874403275517873678353860669687792012024774966514928259362320191478881052189860235732362657944353033371047113891465333695585407078318259354869415580153580584498560244861874901272975167889503585286003869347928156292655806134673120261061460333058400256769274303936688419816706091614824773889753739986758729801670476963286464845162302324196221571481627825358099399191755732083750689233645759356133338552395553795504276176886909968054241766257227297733575859062540775721614487545674662838001150854647761281099347313947700827475748415063431710654545067809703486173745415238396794774922014168075359160410594574224167613377152097859683133847874428564527141805648902870197181457063277531075943078673696578489949007472964019573804021153452595906156887712353211147720208812634295420302155030333297804244275126280856835502080926122153401109121396875055234641928358857128861816036629174962082694904046949522461256586811342157138725058768577953248578803399684072883635064179782488997336516532844977232182227664116840992680717926682359491691021864838375721949929405862886823803254785690499792760274202570656402623493581890789551634127026962450322864433127818951174668934021108620254732772079845451368846373546258852790010278610904844160709049658160410462297796600854075546461203542779772296953915792828265970536568163740428215658108509083791825556809516849678041574773659976300585895570507661665093135530220441242866064788786684800913869219269714475938431776757817728268400609501044631387718857908273788588649209589207631840974726979670624621859573259043631485661970297316323002885995278710630687883425217869902266170738936506219231057601559501743869160363320974724089317812566094762804095034275523118462099794540731986891807858272253279057628512899189274081543479335424698074927884762027911959036875344540957921449873372451828319905188076061797927125654514805360962549471443143336824536399886543506159522649645471101028720992480967051976009193528449338341900265422896023140526752788927310356900963568828680575077176635866744395387648023728450278152219900378529091018521850282366214677217293281445924474232482822916307124820346567883963890927776797845993652480811113977105765288668063014893744935698763571843876258581871584523040954476072271726453316934404655374887752906951150309763229495356233871823711386037470512816329726427611530298564466586033747120870790737643383189503230169998644732416102907038418282357388560796900428434589873884585111152965286023251141314461947742825170076598911028670042232700970522231343671836829791439401296614140008755789650945965119286854935684638628082830978170355239913569744542924294655578073379137505040364190649766799504947548537330658022778379305893135094941529805371534887791244145635710833003284797293076471079179818112094873003774686357264172876584099213490927004334156904444704404607028707639460978653802081121403028443156892486026789551885299550758615827434948301115060878674008534242611333928062732480351749894266027495005208063836535584949859324257242068335614423864729941404827381259680446074432629832180296904606015488162479945410688223870667072332793033762394927167548744439999573413039922320315701051029841146742949959617748711126195283792057842056750241244886487927513495143199522410733931463829256845060219302998618603680418946596826335012068873842624163109185274548696833636144355501488972571483703508957461313143838192167291655714388345525060749170799902831038560691295494538155806229350992802796158386326215495731976923854664745789548920455348547480885271864107834417895003569172589581705373531725535402031405754688139450226785538836521235229328330735243237914900784175630190338933867173053605952765670183446547150245741669591643425151478874015858548841428159216970815164595582699849275192826809365204408309723348727852733356221391311259400038182464383987275433896672472828122999955865995516183526170146719739273298778748225354682716009807193697026105209906133891780183922362409218976338817858830615601291355326290505687367649450297253779097856707942664828617535179398987976246438925247760261714839460723535935663719311959002605630855995464779758531199831229597666833996728114824115193708906097223334513355927510628559034190592241703068594179863314419318063541519482284685848733611057245198503266391373079794494653626456871394680704538531350739093621955101352937063955658883515375395892015282844633440433940979033260347718694539007106541449155293771058367476575326233875539167819661387055031179149477034370744520411525669838565691248196823843717983930738780444358444114101276903323566437529999825631452740197164967712208932678379463325953620035374399767303948731155590177405872028076147385882226457660989258822953890196029556573010007400028511196661352828615233487864091275683790360755968895186446206959816883238819971993505655343134003861723446367475880286858782209299324752469682919619423651645747283945789435169651245070654020906474122851549444437222881348586206173781146733637169931354260829928610338595887235624450980552404569972804243483375122918944348186787017011961055794647050307412270059383312630253716151531478191543693055835133636670893637035209980033559464459673774961922297385307470334655674028214774403409299713765451101867841685872884268109385662496037113801205683858513905018955023338489032013703642530333499471038632676821300230871531489261320576076864766599757736275397020447684168099495247882011812291823681235222246546751007385559029192203327328270767966870250012245987853900196730338802346344304630504702940424909939432044068608521275380310035624722353357220870733072008589582619804660535572092915606247928514493180538114001365742766204902861358638517911119501509242015342234556794912014058289948517306707336568132835737354357686929473237270451919287794117532605739189314545290848817010912593003221650002533714419810363035262081929144940557552291637863248786003885666982423182367974318317145017122524269305816038400812051950476719737409574253476020379598006859299643456810021985670077372745837673258568723499686600002235095452465774133346399557347130894473988998603205220951035878316814461035497154333541962645364224241259047039843601531045258285936453712164700349484073797409518277823591228205739710464814242849639900589492641334449509018476954177962987989194418567100707879514767968312211035980273043547138669420467485173903165405146357402526110185770398835798536870697665348042250527662570143650297992245512776634968571725560850576544322490551331153037791450728056993293644302045763128457347216545915148022904237228008486657064363447803655056069369891772042850902529312019717618145206148813502146912200569390396865930499787361236098618037669024958257697704263725125931023107706919001726016100881563604578764511840732477170767454311961865475379565653499817599684584205324725428432358891245422024359670448158744258916578517673361089763405610440132684657949367731253900278630580017637352404587936616372036723503338209423294181562138651460174709439625499927378811817869610664759090411989352634684036258595976287012601117790208493919415728195957502215694090340562529032433048141855828151961101920684045533449525624722355238500245189394220639173699194671553928561436006919042475084827269398620166406347208022191867087203826346022079447738987470619920067385648781714704526347647722430010752599582240979764032964153131896055338503846048203640128586659765732146035629036927834454447994650199336738490086091237733165532094984736467523732906203567249872212263851951828599917352128038594989907090811118907392882619041587621986177907697035375439048373383981029166066072715321710274066408996805849237091778486025368557045555183845197614972597769138926650292791760086180617010076082516480271889762029294388699835411136974270802818228245086845007191242982668491277773252313446446883296209783983529091527061162596545265982994297214326739243324747300340495359918277617763364258020508416740958610502332514743051554331245637124946357229088878695376729650783698134333662878162322517052201010053218338338369253285925063114483423831093205176466019349496362134622088487807511360185430061497552730528563797039971507420503806984031193578276834743943595005865146957450447138154919944764743773654679971004622725133648500783926740248839562817217512068595985299906185670086170292688415987999862663599896044105933565202787453488708433726840384568806355519786336053061336669689264023485459192143601325550046103741636196924500683686797765410774073151625682940807978513161463857393246227114390235347854046854472686344358648804598851920399677709310947954069622038750781782438767799656695826230364899661401588264291057247191364922345428451294335193258303287193175495948803711572573704639371828054411566673005060178582828242494788489051749659148933106981632712907730502261484750539075656805410485040901815138179984609428503648923429457161101914044342721896663769958594282497702561259857385582630290708615793257627460834193080475675036052079478738337985759218236116355480737618457392919333566760951478724028500354057898063404513831724093932887145181083229203302346492195420442354159392581620889861690891542571699267164491374873027762814671268947036034837264353427097312911095904061975044333065702545431286707292315207688315895782422876696925518513765534884969561405996808905196700278188084957870634022723955734507533703517292144123069128071582169433066766365947319473830482869972117404382185969720682907640527166925732716634071914542072153924166627530850028359514386670312614911311334895661429803327676664418072230895239004266396975824987998461405470499495639934614982693088318593499319662376321051192816891586686338580446246236351215787685413167229511293214865358868544039365349227854713166941621142691824939756900109768452651443760804836024574344891677993821002196136310871147946720400426623923549114508348422379474581888852770742661671080948682672992068701425878870028188681964989755104123010490888922464391487755497297330479720934548024158903143822465503180404082979648327284824821654461500331396715486084230772899691400077929651634547285091071744336246484963432314189232191880183199036903984857060012243526125916164516832591549806921596198820599372074357087130622239837802227649295708358802591905009472855175373911087994247711562576949589875690547426772449917811472747075349341909911157396939010677767964030475082102338099717770434641707141434876519898345931035443351034843248043142189054632540200938673583303368944178823094872546367154375596038405128785410425537911144211728525719553327946975126325185475017867544753301433927162597364438286830621787916254232083931519213382832089438145979184146511982865073787274687795115156048611943444797481320076685325486694344507160483887596178671490772690990346917866879654248072097369972035495019935438385761059515285107603964758456400163358973686336264420090241283617715966370309780435959703522314621169397680274272410066979610003863189858330729705272986351310264583923660919887675647393266828595430630709066452262042289522669157131152878831902817569830783488268570508184550657879439705277972950715461664449234890245634063931108161544918286792181012104338061702708421514804157013162843239081718995035267665966110599159099842758079524296019616482117426119496403490641445164235456945684992610462790164615622182730687245685282993540360256061293059912515037873214059065413974311327984558016257955658047078426192658248319971038983906399313772742197233098100016120360910995373736522199164164588941295043231580743919016346012952988447621827111160262684256401364299630505068236339154934477128351084153388519502417799936685803864207827493522967785700837148789979239736374741956200081709072867453309322477824558496194649380379509733742272325615299504288624288067007411461402267014925880923078155899600727918063264747548228515349561767896384085684381703910094911034920038098417256893161827280009110799561812857387499634238236826543408401985556572778204824661268496078750014269292586976901717289861639764366468609714169232559829784885615051878770623894928410270233548828820102278807306815019263479037888057139513116260522775704643792059497075651647225341011918273149449602094567267065541014754801537001271807944832361129320241049490978510098660589621589942854623956768686687800051161569126911413446251066420935843660166129247992650864318370130146335199869816279176355056456766998051442912934716683040976204903960315583697390457734816858101629026331215941687673123937488351541355099013346820974305032050743819183494875668976945551249412408755096142504830535701951058233698554666229882610945557970403337709250506788455895216850789018114390885722897595058131178900166683019372585144714099176023549514551960032257465990344962031632285243026313080960658893395172100121920120832738764554355448413484387405155929334702852461378278360671412837463030175458487855368982099703176619268943630296041470751732398463023096193409914142916950011437124771845993531202963082312249670018095117723297156599938029321803412272107386270219001535672508399432519969633404462584924732140516919481691586195624362436229377299415453696683864119691275852296377742017749118395034418902843921179215000204828483059005020142113181861636753881965927332408593260706086923703216639595670085616146131017287214224996555818334664427286743352001813763043956655798937159477390799942023754290179400638404543706788357288671869573294386575505706596071571497925542409942601476637346578203243313705120921833351985606008616105180320241929641691496776702393978577609068297574005502671673425425230054822823918219935513763756352086297786420881616722594622229119662889219974787020738004536330520744464449949618212637056883722430974825028598139713496482876767440883325813276468796501401650942649080094159106817141043563724107159311949928895206300866402803879497628448979487406831120283040197048499005688512940430696099007348245488901155666606823125200911646571415328914981944910163273263904851830589952359966631466014813090714043962410177708116159843483928338729663255972269887825210970567419021851230983942112350696862243245336287024433995969557601056610306736973058389367327134272455140078912877589805236760432837751179494380768720295452789485088421289964692893707012127826671163898213551626110528038715663852020782215602104222235542281608764070946619456020444188205001770837898169425573535916216347250707016548736179042320757319573641243739188076400794980247233596080878147817012133289519432474013410713364959825295752268146762590947444035349561799360976138101133180483615517460170223843260666969414366468640371991989867775889472927619232025864699663910922668277247681179028355209858604186575772537016191515910061462734679956228804062444769697997022357218777106502162863948323730643990218131611563338571015092368164912477227784961865576911612362272261650498504281803371198748206861557665810732557740953186196613592228205305441080755336619783065729271603638574180366149073104097918803801679550482350634403523897875059889728762163723372352137553407284665535976759607009005399328764973898403229587594308744851955617780063401006917699595860468914565518407053780918795909020550439297004347504676924236021805297650467135046824339109683761294894499572338562839974178065665587264501700499902224934456712446632238602026403387720049076509850170933090870352408870848466381167940375514974751801946124251020035626262151520196833072417216113604755957604181333555435682797661168945296750172446188442138946916997422115989568346248485187828025091619444943034909661176119075946607725920871280193044783758073797134959615287730924430815360940927697862888103557817104875191930025770372660459547292057052675756264549267605039525545384669406819896563272581267277163186775224646078547963947791684579593475968210127420964435855033544256911696032630670412991877370299328365716589623996221820378170315749356577416956824863480932087224982263987844360915334168227585695141380156734046992218443825490459583216354618627141788510517557884813681596560172044348858294028366955390367116374670473517628016839372944700218720641089784860180639417456087208654559071323104511436138869934569401018303033628252528697727383764212526981682316403052176111434841952491673750119609105029691568707738210720569594359003819745019570636793645368439810094082054114766898422186491052320988004043531749202709045470648527793147756921246916638290421171902001604072138957848910967340373603098575094323473037042222986733707424882113412717099583469143012547739045544088770280362440265642752146509648600981100285975223830238151676337856403902584192791635406914048980467701659759019163070542851234025059654860579236615192765798823859126431188733506223386260885172944493615494898093523204654777505980854658894006211725521229346020808487298806634469670957580991575265947759265509797468996390899428055518430558865457627190724651736259705798851420298616818507630149425623225942573366223347063576961124034108923066666812735866833869525059039162050937849179555892800552685111898180837201248879856417126158455114682271305083756568341579198213431949319262938081973373941824439007861746344264625129027366041662478735525911465014383683755098070231023924434142442063282508140986062681152261852076645200570033924210341514054738548761718487528137625857578061038420152562764089381846869406388195918303230676693291879522970679412245055616486520401427443969809597052303486850877344367933185802671325122418682795321017485680626400009319446254748247063925363575698514142562657042389969048241157988409823205591266242225273326770962853194586926417527043114493552660872547494374967700189472944025900498629423943351832799294657589802779643038905501641164102462015514534961600495369611200350457366560572114085441583911528790663817371895343789010236035005065936870023572052238477476430695835544172853087202469822491599319684681657836963565813718866465673605710434725714500765474005722082698856521682015958168449197122461788266445608509927014959419806771987824561014281320226345426578477714745162048625916761511165641989576851267082029837969876693431532718407312023880955733938519239009167062686264719319817614122012807153649266619108256702853709188186526805519130231894665794348005354825936090147577059343472906754590663004998087022822633080862435344032286721171267739360655386467672864429158011005860883905865656238992417479117791576197064503904130076299196047214821194257502351850579001164493921209414506165605005371239119192308061492150103224716332758208520134986307854287193849997894710930818056059012355728055932588845014662755703207381094140318905522828747608661251093983307553656180301975134586045032590351920883896348743414404811142909109148509180432286176896155046438928864178487955712269984558823577296059767730101002974693790620408172411516409027062157695695530802881471854764469218279273596841614111645529487198594945362281612265134305505153284050001186164846062720548897115127730867985109659341068798623802663508579296432208382408579983192918092342193474863011554242147796109226735019348657431396966233864470619325578918275267621527702241007449479729062164513077529040718239840586904926409625213286129075919552055838595990937305278519660514466419942078598313844011388019267254085986257643780926008638794127663832806467709465770695871105336530411474048514387926915580151447688222229458856686163623245633917797845809705001334166120316651013219013001265128982316037839825057054427030080629554462896691026278948920769198961225377522687456852942137825859804314759853209349923388062368072856858362142312612913310682422694674075423603042016995181808570378215761288848281104400805867163915186677979757258214525994690296563794908887356357586132348910961155762975630208292576726303641994488898462187333419499000716999736421672507425434562774588126067837208744707209244678717486244578603570465458106657784003089472195300880819972686099802179531835770170017990853566381873091100253202501753776279750327570605439305208277843596939338156449985590255129154160603333495926750881520037214407904034398459566951781585071817939781052612053360681076495618675838532800649668866257715192413240624427394593114856304697767166726545149395999986396150172761950671481152008380457288351641303727888376617914060722644803328955575130149491983956961996475465349457971268055966135392030900068666131148232392100229420295974041125728057420287109014099810859572436091032630792363331547489229582966274369330245508871353907249340930399285252240769289548803127517847626029445730674908207908782356159718729756773138376635002938835016485104514290053844774607379715431314754533989449581908849810881827806793696093485812163792044469598199989168246516097324153635867825707264286016131669852767420123564726101925334933109898381539970106017376050065096307356888483934225677216058029429290132462279615042402587675400065806364382977756830915236294855765663915976945793600493227642733988734847067513366467018033290549372969178041382992569871248667868836269676766211407134993320305249251849813995848465702456378040085812950114400927213524252753858144944032091150392795882226126893428027714153133933991170462439090092728423834309245844812487405127144685143755097903164596461533975283039749130337847319429540796151685317562025584543867146589547103293392224113199906170655724707127445668186345142369615502017824757871030653156327142472249460497038199535796207346365086837505760231712133569355704482138581476843204131494432814004674536995092509006622034521539189333424770536079571158058655538173448932664265436678368799581148613024055203097542236931758711627731218920614019249405171922264354550539172628572243548138580212233146559289952053729286195723796704766701537749182395085163105710980601914354322156343962003077957591366009434394392309020553293361217919797622967553170284077310856711076699003781851033141011110886769827159969272197195222943131213927882592370645469303087111818088682864737482295777653147616105992016696619783562564598873986077671587380409202126625864280669466155102662433317558996231784091806956998264344789455088269810279652099873272821403324969707583895593470754736383069879306303403205950449867349398593787714517609073805255029304889788160660062119612818713762633554663414497872784504029424653611344285054657674866423478320758885731870963892758150371811302287406307465942651082873140482867921220773737723040074569280242343639536414852117528253504474737996123168977323957016079104883459361874317487715916386067019054373885594469453274871456617783591138396733644333279180407474257801854022842886092363231348044751493308078218443424419454968440238268673284802059633018449774113850888957369012481310014937831490950435725370713443035192320299645430023881856822049403353763670046244442668921269776261191621634320011936236028355848196201755422074896006831932744946326823185396460839452873045623133513812960672843494065064235650097154251586970358328919158155492822569183637157397456929407660443312156550598110242215911550996966779400123226135732910204571120941960872997342271376513463793463134242907355863121243383346547997673021653305860419345661379239576208876937828140448228204912515549657846332675452561123613621931429486971166443631203279729567073494922540656160450107405864348200443352146391852482200294582942261048597239997186949072386952719584630140709615736891919693434226137614305641459428332227939352959239161265581231750264684038243747244458219797712505551511275748608854516414271837654288004589167998002887362586211168329744545785482924333491909957640401161797167206237631190657262762649742437069022738689927859852232640241396655250591020244665570798918786180813915358984080836280258666788317374995352317442025859133985750394149572689697116534832874818350583829339105057655565303752103879606431779443548016950363971264133841323948177852255023639525632358277574691057819293503761358669464967933890342623924421000614692560666080379839309826899124327660721671985624312005414288976118889241696209096619708687090509890534466244793729059208169194216085304103719529887471012153669665857198681704159276753125410420932238505026319138130387208838325932517700960773047784327738290657492203908854205142880962977557586785106464746790925005844081987245364348357681915611811992026497616616971902929288149344266650333145256047406549283266470914617857579001064885132899572843186088211339784816036528530749004748870722667739379330680741942275084510239119789678316661271394848038381364802601037057957820477352743647445592564810779513270064310497387367755863804061756894043919478822559420767652319918701053245656371506299486231688834059131537388631630314972772155147903396391232249514337416931766541723501889086136953112689686939779073067038033492519230255206134709996136007085633469324594466256706245917260781510203759233614579392150613654568900372681276826958530636934436129936936292632831351277534777585593199219568567748897285367160590873059202242997894241621771711580919646931445832271039212630771065543184987115270576494212760898065986748143805826257316911512456913813273684939735249954667810909953863836422259386770968443702376469332512150063838260751409820957717385923497992718253600598287028089173975709643867164048742838851669035828798122452485624158289042963847900679934501441107366001352452762478603639252323740338048535319525150837685223849423808113293622722863107762628135286951276174843418538846786279174871585148587008866658837205643543056188078809560876323893918062080806259358322397200429872192228143961198661987417393040466912472961670490016987020931912951881634490488881305030303720426595616899125197938565848171657905329140340531852208368776829547068423256781875004445073126941696645526731021830937039249879017835957197486924526822165556456349712617971556587262025685450973768796047860827553204535164834019127941213240020107303362160598532588401600496994061785798195470478013349222468831587306926624575887831435690288444130489447131784812756776079296022334488321909873232041163035509208516947434005323320888668116679497334018534940990011110070042712076116806519368466364754034427539724362785687774794236403254074818955113331514785794074329401841680505208504414850970126482055308245544387784588790893807904570376118210945799327235742439516226595196959173961829777986957163593952331978479089105033129344999431235024800630061134312367195023682715259969788966594894117653987782393843917001866880311515460025793056841786717197390982450256380587537396406056163280638326339071662756527010830947550788760075570916421844277102945897856596035545225065331861419837289609729130514935059955662226271798782897749030392655988133981042512269145361778668429472288333751414776368703118384906770774424299671457253726114314305899166481190721020315308150777649109781714905515805261790649301124535549016905108596130483694896384371968548090249720257226966543930808781046016596759115313869495866941051082028722669737642194578591491473148953732409651961279798846587462316399652053409125551055232888562572130370844930916419366720136284873171057262110683976800338278339996053358118795481321326307906976814408818747169989856246805969991314659078736684027657475163500587203838294686900539812355228556647813251362239689658020491280112798652598630993742728482347290446223811229688216221106847011741509211353728399538688802448948302486023139440772833297841996709985686561354592161475151194636337446628398624828369090573367437859302928345283106463542737818278404902471626022149155588327959119770194352818756635124839652056694890555471876318246661297654553639580217817694580411554582013368459377975010736272254914166042091334250159559172077813437166316232430546370650416018183390204953331382515294154647980761507599296644799646332715124165260266273241172590122158011849009214142129852606790910554885416938261877618322087859254186984639128246846989470271184810418145897964235140535288923810185788618638465669396684505154415431323321695324700698449694731338753729230349550174231438297686604230355886668743901270501149543186936446038960683442258526948019091634675708106202267672283662886631815843210046652579237006681577003957133516323320490212168583931646361012126415091691638965832274083834971210062810006467621604904160343844980299406198319457934614059026331894429256723829236950029138407947049622925285791298589781331911783221306482318207281820684106570148715178469785877267465260143059650070411547988691340262756643885621195157738582530600572638472737411062602764745742335989094887628955965335058025690028373830234416765016916863689937017825142021611575153482961688210235047991832731713527059886069698591609339815652164735100040180074168174532428987172896119930811597451394004439507929784665421669486866337951062296788349924488483459501491643490637145581789385996420398606264940034580641642054460593556472456218597534168815353749026502043052306288593471269400656611304684255226708437004018374507412089420819766010944880089264614785758512978176434111564373068895335441324531635812261933189751348760305648458183527308696666473684559238676464695293826627124604468960002299829914635935696478769566089702933097111375949742319707028975830420723183852904639051043728600522372315821597227071795581439861359412927169249238375890469772121528788319141504084506400379588481556341442690800480226847542382933732174889212959726862113549016824743062401235438285954785716303141281917146636326806174627307010901748474507228791475667032316749399602350163768952025743287301285621723486548389808998463990700223815822235532068620291001691205386813654479166643232107450166811596884761675138509650310704715414154707589545264158824197041965800420885239145960079706930272557180053218655362751914667294264640427977358845106558888139773509624103712406732553810349082228022679466652429342707153712757604154588342589074367346227849142012920399328413799993503590470440033728408511265014364233439298453655548115513193904479961388425719016750279844124759381865380377940631328089619648553367066226117354967605646369596599786342716478657734622901211218039347635834953162960121468340495350720659451119903923220467549404083132121954981280471988334852119032065520649972083277488904800560268337234948885172787362758816550154811022634968318518922373999794107291190392673523868896389964223216436982734342088846344595237769629661140866018743417272247842051675015851673747563619370212499782657711363164732691636024776168611377641979972268848889031561554591623354365859408429697441722053373732111905733379377693185402965500719956285714374055869889685205557667112602512007709939721568804537450400205904581893808652971482025327964210098173987754369537016019859284682101521956014841688733069551556470134826916677374643198320199410821494287484595091505895028068551353640878232871735087870095005688344748659252413604170931148323258685758142263279064377680284034872930340592796594529725756071273397644952411791487319019875673153995263794962723531458584200604817483111970820607799767685897962383872038248724307076466466245620635297096230701804353873342697915574949517105523263089567821160291449401036545314412762999434993902621123419697023003826035220856801101948025868142317242541491760754495796652552643041098076683227282098849391212130577816648891058689913052166997573279498987497282256385597742904033037749802101332056347029658426242422085166265207202214581008892989602463567935729702201409441237814770370295481231828128657980363532383634433184271781078755114206004813854401414097173599601376832976481905511163917953588457889978366086622788639819435607039903209834912420436114946330745251525397221360249327609985831512308088234313574545305626194740813110035498225000918812735292507265521441324657831196736792828658872432912692990773083153590014850725595309723000895412087819962924418142131055055486066546423242362262217919036651927424967888817494374496538632884169437103500201881393957872441676041858013905158965186075551573565118390519322628540892712203073919551383135033379390752304542839259907853831677217131164047541129353006384544394947161231658693981701407656194958721567456341486256555552218911713227325953169567852509931827622028415507554500739466916468105877796051897014733990079438492672383309041331478620765735850676374159562847109822547120070869104675147358451215091481690437818198100466271606973136641316257661666444153338121772582977798576445309968062731116134480207218241626958606902762823718826245563860509908746524976495795489075074682965510053815190625553692809048176305506039849458048447632308066194852333460675816616469231235462728220548656146273372918698113929015932230786752973649847452009757959360677310233986992418205245411529865748757955642220864102676932363699876080566372581324778817277102824276504980652565763568858176385945938154642509540874900316053516366522244919163973088151213622493753047402152304491500209990358324655627519874294601867666925682167213392079035368355122020029458265541479022937042675973302183352900522355524528984032105880582597227299999470502103177554834721411320073753625051796395935516858829555423964314079215671838916807979164444316697522389599187519733972957692936639953774967421276009111665888660326382650333536803848209781003448768477692654673590028440980033851931512841764408368579651032613541998119474153554654400208276229204494770734771472069022499991749339054076948199123805332664939287664416091079914176906991843185425329667934858327458064506183091784004697977372814449065298333829722649953476903887021224956359696404673252621472696996533666716423744343922168426456601486268624561989929237482583238663173645907997821334526801790547087487342716871571013980076500557637535852777554748637204009157993548895534521337791165467526689296274783000664098919212920436650004393050882700226777166932430345385444759500097828740126305718549851909450319182149962339259859356182621550839009928649238990753091121654052543657896675798314089219542664914483492447476293992267022582682295111420750708479665053763985946155637524354926854930946750433270287877883815511008450990787032520283781789659720773086902277097788040754760746399102950576303918010065203246244108807942447603027947200656468860691190541170731600426108544139680657233995864249273030341407895781932920989498347229878770262453889184747343728081305982631508209792329281446973963347779450572177147991717461918301812134579098448992242518549947057137087709882098463228906694426086716346964431729863157951892903078865805619116886652583142177899270836924009036699160735370971379750241636304340470941523287547499022327676661664185942448685638680687411830604401512603753249850479781065244592710990038266175500062860341620811439681071440610877231640958161332052925070200350387399785587823301197021926411375215976453175405478054511496029537331965551392499347294191246447401849591587547058984206985281240023506604099498987541961762609426101072773737007532268919983137692493319767915754370021044499801931220103222488433594146528248568301982322254751027429882064418131532853208755496279837459794985616857129159881786954030131290873084925904948450921070471348156517048271360683958974915091144970073322250011715631294662355507729212034949986435022162938650433257540147001745959951628457865338252871500636469286150498059774803231707593654483856976880063145182367731906374916906243821559749794871467550995631496453151910421921991037438976671088794937121050267869582373385356481588580914092575735032715992025255197185444826578577832556342858557670714213930694939819441431871120466314022536437838782617463619241891884397143398453689716282577469390701455355294989074507941136764873644836130699147944878459065596475495107882873193341912015796132622448077311840858854550407634108274161687318058984823057564365845056160140172532178223253290030929209561168907732946997812020954705520204926932806751867910034845454080514643256807330452260996708024602927704851228330372369914143250722804175201916766579818043899585507611657329747215424459721160458307722884723706101084862546566494802723029946741546015148288664849531077583806985876866291250163535370035471438304004412890848780030605432949123230401785905174079552643729032500160310329043329146831366335172153558326638033202617603142203009174571027854295846755443542614155514959592957386929569943467393583324230849614409021984338041730725776669292471506747290694175268792533962797368624144564779198256194140608468498605185470042004927179518043632859956228659271139236324369591878848345266266057886037574779700608482439555770367487615992444389010847882424576260314002522947548687044794016626931607489222956500494656015669856278467355453330028138043764187549771615698194378050234000967821183527862310508195108087762133655029964526418197584480166349646466069121203549165160418573306693469315802838995095965506131216959512202542426418162888660144034053864208676598003231816089512487249770621706887465668882991151697480636894144051356137936809220904747437722898872562720039544802493273903516604032057900083234082136379239784408338764752932483863477014984591164036009047901995475955070605955287917309366280988607385299096008965660516946081087129997388762809797147305507409594554814055715285430507760721371635189296227009888415813699339044137586175323413961302044076480592514180123286641476338786777068134883615657161022847298540596959806047177501950759512949599999851801150705432937094450541152649320716478718108599368378668922450005948984938215200180980640258964343955263728735173801954993848410066950689458420467840822406631804461611255104825244800399540065939563377430803713016779863637422782037179552871270507739270939782040409797293367480421628583142189888524054901279574753947791023560072519589349591026424355723207979129744404381918269960195350450146903437746434798725744643590997225411655616687148121148916325872570729506054890372394841923957805513767718653024157232088674425522663017035561367771021206925215643660587983393344104996109130124523630430803859018948339358792628244411765545289442314385047325607633813319893810564327850892220276581620087090953002197248301549067805914910032799156674860668207413812225739059323915921113931056459644307321239954589084609247563746229275544612642397527127668191461066505610878209954463179106003768737039427224475501085633271412388662646079473808087347650826004548545899844157846622261377450091100150272452601317766989159811989438725310836469514409980554284754824454727869944823198784737187785944123860331042165378890405435492286844862746190303911966833574745985004075063998900004352063429977369763573229644499294341051478427991919690683137779469105182281986205811240355143668732244860091923156941595580331183839687540718120306216140082409322942879827606888791474416429362598923654022792685251478751222268133676854837334458802930291575914362041683427853292117628272135928593594764823150893813479148564622746833462471879098403946039027807366239472319059757776068669978285052970415581009147324703929695454424656714236065768842889738512450535280853746110497983632573674670611620948313477832681323834848051352728915501840158086498551567554936852195820412589941251305987368697677038709141201696509067388257948513770338416939897931239741830780131311371114358369153110651019937626131038565913016321692793203634598335810574016632532837322021098174616156573545169910332531554350638863029717757610911330763536581317579869219275724355886856351129649192314736665397814247987160071002767034744215449607652776205282638644247550477450032433309426665791382198999219022074841451034337387940272294270002539580329145894312524319825248121289508379246061922639265267830443123473711656995606364351852545381040355854374442422778374992840156961832913759851778817312907546246929073971831584770583109796446328072811004895084680253209286996321730966607086715504888843116276238325597666806581320809361007898527684659658153690887897181769343568085092461173661345041442047039915960158571489201903489663785839388580831425232406498890120091882079174847274063016497017780262048779253505368902698275814521154229889252551527751591096294517504690637352463057089053826874587519203535126336732574287437783348919234933179942184043787056623526660750964670103721273304270184611213659170785119296326578254220218993302948800377311503458698988310943530590647162274039203804429712356163857967545762023440828414131972445305092130620078834295098106246213773942558805510326654855862296647165797246759365277184256358708587934090771069389863251166816929100606098551800915591514220834460034385347532320687482163419870122078612806137480843039181061983857874112599063172514890123753748923060962441012007526339241965604891259354092553592542973484331381984483157203185190943791593589042515016105223882557852246546955782062389446651960117893288167092875060038945769780769484383302057235938744801609192055416281374009732487910533809907158765456439358948021025953039004998474959128119685022167617618995087688338216933120971845569306529708622944983083903336161311978868401271464880513500845889642666253584940274611292509894995051410477216191488188993272032503048654992993747649055427622061841999892863805767613080491824102696414063064316967194749436460558566279276430586766525958079519119385610766235060955373305102880798999574753444322952212185288650091564573713707951188899028558976919698710014152549599786875033228988917786417291335646296519193128461639715447596203780398711569270832573778350337804358471514228422865667634875703197577252649660122161397950229020489452002197335884355907383995809466063529374152653118210950841449761867420590423929535095953977813228380840512942211497454809076098116189385088848790308200312218900919662234429122037676369930797613046882220936641269374720909186845551242834355127106068255658192402918221142054931089244311883877742015759198271474538304301765722790581922142178208883986050967324971583603879457507026817454855081621165827639084434995409205854860294290148730238767848516473704823977462494102587964821888239962949670280880960207960472921474180252268392945675028601276747531822760616234237236698303577256208864018905864751263120137248034201934031394413170280886211060470747662988186620281436725339510942645597186200628290361589025416027566767934148057133360018778595915485744045094491224006307816697453103292315720013353814476764999373675390355492771030086951595309656289321267700577319479274668174102748131998257776570844399614177628254657582074613397437250667650725859707698274440357175431550743403734183703315388399166630756038822137314355528439549596258731942789999432256170403177118001139046112691710075205071538881136258684850204533486109045431260848779837894147232247442951635419609640047235037500691121948305051927210964524168601681723115916408331178888815625626441335146130016049979307195425945432921010779522856917971127694740812585497055736416653839518078669466361106609882831764847016313196376261265959348162549728219510312063754139588323639454955250898242820897549054122115546908598520605155612859358002359194989892177671150708319854570059218638682059070649598570552615293924447394923423651406100473616876064816933476321881645784082231307602619860822726113345986640390688978213775758446503560687274684977828283765135945707015768137868873649709599392952736192366046195896053947888920730172969273835339586412117119168176318960044548851888019144709782041342600510713916177172624528018887251116240727393392933734632181887123985792257467648500362052439918422427190527591125350057012567349357651736256400875906545831092051340127732838249929726299108430785665023492558853371375885103900671704013844418922696247067150447097479551712456144626339985368705133863095319463522065784742922917939484755287656738836305302349173528246620844686727209207981541778231672766486168886174909917546447966992127382417813171475871400432655066891879183750034586809389098718358932976427382970604417793961881914151330304805630789128319388358090877236942252189652831639438595710903091614967211671014495700558222617433198190263452475013989388014971746631042386531226788647188555822981350763208515447647598252383499869203940986857360690649507830200182452633484451753576757010929677178028934484994483992266905723512435116124376392525980686277607959796038068956200162960227585833880777483461731192943493670271348798802025510304104691855472793846290284483446741741240853524022283064493571608722763528201958011356461801987611270441377705138788555903584407368779868203802304742109149114585259093344019091687454745065988554183321271194197499022173336438626272740493977549736167618243242339661586456802948323112660480730051826064186539686361062500234271921550556057347492455808670420141054178091432248549807858372885191071481901323990078965074251978215584257417583128175293111202713282957669450737752807381030963585193818523943600442194191884248545034174752616292828651682241028817403478973600516627772672849214124082562689538773067787281772822957999522888595122605795816847514705037809013991668324290476443272738526269689004676168596005609589461251314901859552690088144844377362604116652688892899514915257445732021463725422114292278804709222374000056181299240992961536727489307343578425569869746830310389021560525675706076971655872082578649443887341481952663469437513554827344098774939822261569812874546544783488783346431562263315368261500192395571111554359183400629488908959282206971172400386957568157949555985170367105480388145514738180757473681523233826878189186984641880259838127364153301993680003910491728779152949981404368225691465591830258039494034256866300677059003243769775662974514885071458859338885437885110533580056968585802501800204045640958609847313051740540798944255914878279834031696493480891565959155603262037400110609134383163931492329746769601320390913686538134521762385384574743737682687620517362970233355372823374781437606244213994664312927725871202228369180117501439803664667403740199315802549127101717236225925046285142535974676911091234547184865016006201125567190575250274144414383681421444525326398736994806501248458228389661831900354070165700425289277756749692966665394158572596609996254582645845958173117300783211435371368348958365642098979897025605905558213828434429740790922393441858885154341512385038459677955913038899813161015790580349444246317369462165474360167574824563447093503992702836083462166675288115872256636996641172027567945436011560261851618043049814508596111649461682782478401904388637669796919429565759120917416255870059469495526606076810427894248035222752722252842637658742818277749751885971752402729605950531463778794208653655638864409375748457764548149269820923963071982565102804974467013776118289445253090892643498748169340918885024258113346334468735390052397049480689782045382159572619383709313965457336003182707397035836578742474388137665795221203949766179978119238078531316358540611985919737415846115533021016756946003238555316811555404411397824683174623504273453646600428979383921440476956281641501595004804349757952039036061706959891875285055882470943914155602557823857132448961710566135968022187181174605028538186194278218559190224090094104981149198627842550104459162242185984657001720432052808757431333487629343169066642315702596076729449437493053954412658682577977835282745378830986794131969351670475542509701431956816389274019149354167490898879734334151595663136076293283092121651123549718359761371753053848072426181906055520353984158158551836145819028418139200298090417998402086715482843037749304239694379329444545860848110169705539166236956524213673488756365829390295999945608739251033455278152370331226300553044456091952337482944466890209134414008347282909245760658752618978078522197884554122754716113855838506979534676205790157087263207545238142896132070494472709751394672127021747885019498453192904793484388200604746460585207574913143836561491708876107432353032284370011507041292491358708418227193341292949359725508090276185910706934119577865879409959450992866853266792705418908708108911725719469031040761645995064311012191211842363208684534331414751492140367362329882125235855359521226392739236871549668696164590019433411992982946396725762842089444687341105080293984097790074277569776161484704786692381697867274618468125724928362024178503258684819816051036217201387600247240659845792968683422074296903867943056444564204010790858860564012095227661077103118901377267223551513218516013825060995244374744651397707415483405762351508538521936360633658382691512363555254488206054788872097975935165655856455277027207467572828854853146988765284926377358707338926110175277502532920598647345994528518931217501902105838974355742977550631835135321001902281900041884366023069716810909776843941884320452180317136131728421663661650480067107025070980181936469183744732144778703121607380781103509429869410087049653673666010815346055655614572397359546962386796936607269453010836194699717821663428812393829381616350609996249538721806252237070247245478440568944708871081626463572600162369760374818351307702529174765758063623426887322118479636103112082337273515300010025406476818482176941724122602348964109552939283306684799215669493184570558294029751368731913032754967682290165696707484540067870637563847271501777590173602864277577598989635424762911043279921948342926722899193402117966877197682707127093626013974156360602016924717488566989961972648500475932374248932278081270933139519444019594873138196937540144620588786537308342377366443419577553365236501885166842114199001000927859513027619222708292409256879440195518126282699349109991110216183477123187836968077806956240183110349391227929207070258740839144068376086820286460342153263384596675187369343341954555905790079877597590446772248337156543183062336612304670901851705521713203768207113834343637362092365643428249383595333766831813358562303836668704101991500379442040493596437895505072920331424585066907963657048410555969548419853887951477438910599704705057008758168343419337200227218438707647022138204385304007430491877530880313254959178150061975034651675785610385658533110139833525774250123743877475913670269438496159552469475396946286235560280488222848325724721430987205571469647166953383552525626737207709865870682343543250771415303420135749151895977243667083531898317105274297582402551101356039436837691878150518218069291213593190696516776820450788769413986424603044795368540235034665125383589257979953336075147912323025218474885654141805805454747075052716656286735073455948104609212088257388917488852356891652656726612026590467345992777213420168451419640393285845508755414789528897458586916572957539787314184989699611650157546117394751680210398821212906858371638097260286779856653048197881576795554146040633582097622124469957528721843364966040267677107248262982590660344090380254689508211208618464917370458038177104587366335490303700575540681174235465359424790136657427605582071706854346626541270652691750401138317995395562658736549530919744074468713312115753071108368814081214768277831919741187868177776739583435631619619727934904997458754452937707604425457006904150394966812800976748703798420657897962644317845332027165878976276007126990655344599108577611654056875894425458276657023290788206911243757109494580815981986445183985735430326378426962632372583184472583946955551762367611111662801320349276745916358387922520520807670724455430982204714027304420784695299310696163402934830575094643719746210989630708517126058568683306519378082368552950408384376461328604396363932894717545124383243521642177573477816829838868628707770390976789854990510916490015421043346121596225636205161117728621767216132834864959493298573895176303235062193119297138770842196904321918359519851325264387426239871743073169461375514646029312627899354758280729875482306194684079315456244409098177304948109333979498443022335071615580164721015681561519519693203462485223312045640137756376161979847324982298435429652856378734760326915175408580793441424443395652362941125516052357409693537212422853073651164999396882946833638691824456475008124841323170251560666656166791900439486846191256188646726884626045119021064487249534316910131022656226740509056599341159908724483980292123226137553652453786727899836132033571879107177798427397064231279329945451916434922688060176227285867793988347269258228453364230732572191941999836949142578509048457721486538057436010732838791462151574945992448506028077883206213195032780374125181393454102221051357120493823833651486746631006915738516964674567064967106390075376953122464727954041300467210818652357693691681473302272482387758928122496830259441310610954174421562095854878222325426649116659070551115698137804599870998995801474958089397845702838321970544048957544505549602308564722823440868590193326022218851923664880913122021980166851327989418126664399779150375428220745283422845760709027737577702400903228812668050383622367008975404573281224110178224558828573951718116876435519108853972966375178297695555969892761405021112749603592356130658635205904138192050709036267449588456160499213514054514411627816853846570033578696689962007887613592306650171696465977817266928483224786057422359503937428606951470012249025030393460388189468557338805247570301793828209326581140908059550901750903747109200054901626666807039707820493583244695331340595146801732416066678235052750450625051057136379110546078997065711900426502258551872112662162409816232557965247036140616016393771127679880409784804601512574483617548942279750457423958223445744957735208231204916511808548850700874320788046421789434495271581536661879863022266932329441427791951856312206147038767055447850488857260524230661069175169208464544684299888531671971542139322972002798223522410523850124883006404698793040492975220288680666582533481777723813511537149828779565294039163711537807239467134492095494504943187089011791598219394246982786581113712631201859312005979856788664094154267345186065716913218141919327196408942255671872766533959665560162186253236282715003109546493245959729450459180920903771090486484138090689068900731030360721845177787241572736162998288099363674592965985234548658451137338862885885284929037307659414584624030486280026714958561630813689065581831228930697056893609532081639535195791416163032818503948555317852856840153747061197920509013294400111845357775779755681779610996630345095100045913441835756915209760425870144828128046440186567975254095814228704684669559570045252704408642156971820648480964474818491020320794993556488189043971965383857040634042565944800099006904397668382876227244728003389261598750907771560793986815444667063430528476845293496718286030103201695215574145101966624001402722201691166527556915037175989214760462600479685634758259427905984909725461624991215858345767649683037635980464345080603177887951703644329001570918030528697270691589571052455477617805048195164660734657779637997508215412525365537844612933332684405047852641410302480884781276861358205929539462817818336654249617840308252733839060707596216572515204035359146596763840209438569431343987356729872428144644735365097159785614552050465329246558107679753763974672515818774862217947236029457086370184496450330752057834600404055604091226475846325358528217392308424616477575056424855857045042337047624498644933148026009779723703919225551111437212676001984905491192164036064099417070764454218217928438741694218067777164959553124786078592665588876147340962877885338233362526197797993124144242270563778457543985963584460267828260213498084217097653160645256631357847547095229121212680833945308553883070621380936718037787425081883270370551933892927283766987399456403055119790706423325340394846158660538593923891409523648886808603362768505930481791540135761082900493169010238257507459664772721194895509945762026164128472187676508757318163193645218096843015066814654149741406405106453383447618610754587388683913370367876099053024621725368413559745196634968459898491835928896266200766500556572705404835426151877340415025564573772213198618105211086578438837669975413774417494176865758630041161534440917680293865054785433332752725245299790924518127885190042433970460991899988051307061794942409524348399217468416866038754021585246199757035732699831514935157093343924285654134316319868723112405893259202554495308072202745896828708690997259012953912273799240236669539136507055044647687805930000114680358109121620232087157066378404129901827783082337564465464015715386114660869132875925231405668920361598809200663438147406821403489419284614094382294485918946255267187316996578962821938685611663202132330664190795458217884038483261317115140187010407511507025914818973918601216169974002091237459218942594456935825938168116754882255340191503329181333825745947179085152127728075533457526911451929448785651064405758845521814053499201941243644180002709406860867315688505938730201612878076851320079450424044286075337932204916633906105642661771365987521446261001575074150426825029536536257074931392562240991018679277352544402535179050874126966959193680016192893403616728977192314900770765462807460159932216403301819781203309425605705905912252219175353979938625129647844675858211656843580038636929579975525933169353955888027105801276623628821063159959888012574636979431219380733751293225559030778501272160034513910658213104926476675214070787243823745594751354300948951487928974125082244541549431428962451872997895865455086675137399351891731396740084307510795635385997114698088513428862811692124424195137824840613291607606883660236642626508052189164803185015852827397579279055879800789585919577080892313536141009080213380534442751568728400547107857165550854586296821305751829386542314960931831312509433410006668810164670642259787449963679428625600893692773878912540227754991749239059967903062094065301995925560802834080066102933415666608365163620758678236333181088406334341262840468112538726070034470144348567708168023591712528832526580947884746659956086034189667348483347505680303197292026485497598286775604164166946010248807087153711688235582641072256406926064043163608977092607752985881738346154939562341991297231374866531506704032094631990728965175560016339908739465825972978085292241553433994877149311175375289575458471596769342772929401624524489985326678463981492952262382803442093388804493349713331937502893531329715597995492072065908565132392375606567697639064814441496217786453160713565936608474332098934275280256643788748235165136454685787695447438290755193494255345840830161860081470374207410592064406551458921451011823363696654500186014619636370355512635931512073675420538173317968895814300241988513362430965826591740734446921171604492503886318264337031580514122610854917678188469715517133514200145166662857196543990111951921811168007809316814771289836174296536287770997927303838841902687722566778356129622761822185794581297690815321376716019426768609260979410398251109980903706073726441012741268609998049506292394873139010506650298073875886500761716243954449959344707061683213607229367315829161270057102739078986494125046339328072740382096954118537550812125313575961192109698535563562773051308365289513834159170943743227827980392531479190407179232885787701160068965958531337315744911307682921885487627775418200473528093274270125073765681917648562512569594160618985035685738112837554173412249069194637878796147478586901675281683473786278559844514369358395493968725036725496908855873132173906326822234869062554827304617431445817427975972966726977524608446171846556530228135177008230956717875425955044061847730093943012521325098049979657393950982263237450748148895987910854746111587764296981654557075012344299712016700643120065318367554468625351972191941061527478004623268370274596713602091920519446074352788076778910906803249875483192354767836161193926475758435101682889363574307585887947364053614158228933709895135838618989630208980351449780342510332381901002322960550880405243536872188023211134574066720773947654307936261265651564926490557465696063259802104237579607471771180316277826938881310565192042226361556246722478997205436937350651914098121908650360600047582753918332765702636751565694481130248042599713178094058470612792060648772910868572420138647395539072551075842563471394609918240428178267685953777000232794745808135418597337569029576805233268730588396902676515361663835087862484410931893674360845554910926027865163242992923747495428114490524252790301115745945142244205794972084326585122196431440124621942595505910093090612733687180799951477128449769890006885143157676328528366295885472365280900234862063759234664071418621683101432199523509080514340567789039437642583281098822333238302389652598993236910502550626532325222226184897878187364209531376969590550685187133167597087630576783733364824710797487638731799450598880749030394014931431261588370135126900331614180490059649937058481253478200414671317512427294207669380409045355793798269592576264079906948921117924663084122436908087505505102694084753446189504854317291110111247584201558693665434027459090324229689109348153152780172673074736301753913872314448778593889992418349298788159159946313463615998764869849167838091668073677881033000418095376192567431263728837581019541619953998785870467458632683115238234333313553989371392411458283507915212059439093886897763626542668107486015119930953868403042154529277257367375496371161294528639350761018082703996412313415906359139692150459018419214208573752941071022615952872766905242081963209241579237908055695688912810133366220828362133157005771961613748356636362825821505784882409201590254397555580941554754993498860911725123076311845779622320702859098585171497999349681264918678536937527354044176541796176758025254706801174718237128761543695689100656081871539399330680364287754624087783904624080248783292879091584740139700820079763166355615178136228118210817737395333168401575086589095700747108344977361351912855031413560101686974940462611045398809674895118835752190941842008686715425722495092343918425592053283936810515288973773073275388787264107492271226303920879713124073724851907515166929642170463634650158509452246319870417427619838020898872553566103961022465985341335746213838389319216918165557159191837661925144449877986688307821372287042706975550810135789541606004341705775580416920374247825984998937466188553226676126391879143877540111542604870985773518552229006167218547834774842089401020574300362635462294070753955630347849760918490860524141385089739838652242241190717107367188503377367352958266669464991537820829791797961320099425306069608774179803616010205982480167255547825458938827476358389559253348007907978298288818561790173586255017398003052672393035897056060591727440993639753008359997599131996438759975323769897755776569613472976504224124092030476247898067620471513976930880665429690486530969791821868085303173012086646724828344187561920398585013464001600650703321520786335125548741026701493264893893731960357451317733529444295712764524510565411547050147031072920137310084032619082350168878149540316085343562451120534183379090192897180386806002035381772652250626216250441253199774508548138171012562739847469371711407532712180307968429416168611021448853141641658554836406257900077973538643174459309998300566210524069673788575624112586849769193202172004708721235734340572259059891907706316841867122360571412942349914149902998239574800509451949782803438209720177402750243287995776855875812653721886546091300183212115680621658192182843737003504357214961543798633381111746287034711435725655375609317755172097195522379292156977016458535554180975643174717038119069191474302160975081638946047527806917747084972532157656202265168121002070589728936352359980428860417430753019443372949706882724210135750759935845399580810323388739266102114609669897911711246710013418778378542974249400275646555892997580786497958325656821881736426258302234404505962688404904008652538809313472840573794716222553299632750792128177426272984158443013205591010191378940898942463749037282738863489389816510797274439819029574245808903892394656040963147525296494218133521269090368836657726459775806310389171447469083499873380755481212856586628514532633371432299092715095673121313846177142752990599933214020437083419498579284955509962825820869331248599449205308661622265936310468089097435791336077615024162510611666445514349945728874180462315487291071943067669182768832835522221885151488949298631326688198672286980108289946749065451768913908271611798386605788077299704427374681879114856909082314092992480881999468926081696760896031454931669670433932116854523749504615984304601972130073310337624050028695780110883218863138275767962020977771229612896377026784364145470490697743019858926826602008725089583494866231147699607243322524678248265311063163434629181252491806235398753388602922821341485692437717828608083365682006634097383181284986548338360003522912222727250650854392397380868001412472258503938173888739238473201991566676189189029593637872520670387500896094770547217246709333028109747511047241367219883777753938569087356902507832233182582258620583731243165235004129882890820370025913832751133949548956839601465361588991518608435378471045637681055202560517847954337374023045351958470349530135211269819614423541769174713716783524268195237673841080496312168818275764825967001951087528956915643985126270948138834995137699751797031626828699610906808346469415894199564527781892174605165684736965862519766229233117326526571039213917387129380969815777744242568530832683791493223023851111541068924277826122183105179412198210853154393663015251726584988945102497226778101333530281771385140718528396529619951536004309138635804100883760957874648385158963038927418747098164606274376374494032783235017337193780527318879067552701805625886886190515994187517909755831927746439189258479814663364178182100903334581078852878286398977191541406975758155756683938253471284239591435603866653851047446484644966712337661052344134618707640261780568318695260841893702685571306908142802033593792003373783982970528515053400706847258819030447412347177109300521557340042653268018840098315956846897767823622216207905113151541886522383039097050056146842973989114957563540464021637382035447368000725250235799891544509865673973256165858047759293774177813505438423497527010463561657281407959839868612730536213167723252419108897921433394784506305045037887474972886887493121572839737391085123015243424339767448485516044885935685841146074953528040087631866595375885978541059926301546771807041400948813373645136431552685483447004568372576204681948808300414566805797896069058547468507681800374244858453554700279754678493714753081575534456103555120777539839624032214498581219262653164477857574103878867629573981099217929700802677265092367848654826866851645707632068270603336799162452582902728956183597411710697733867200558004633868266728567177544552244402769047130089554561709595801438827387706814219034314953010771763568459025899124781664608142540522565468224449724275118187239803192941797643864781654146300613162492199933589071702195216802744116984737545731979450915424510452677311726451167833088285244597049761850619476960660483996745607813348021492824249029176785222932764713448812366843869033495724802942494990385892976204191643171076181609990724284240254346892445951090041805938965785131181702065959142060814750766297198719003614360222425091652334306404025165380177744960215120123453788914254821732513324312614929618741906980425298135969999951254205491826379018294454757341347513957288191771608560948289479928861610641029193179594879217130977842508978749786331399045555689171091269448912775878405487382933900945450762966978133030607317766806217480465359075770238421739100351019504406122221862526754316342422417189207162671502681582436803109783242398403939847376592716074189395835512753553766494244478527964387682722791764036877546564683160918086655851292655444312503657145400774128568231380520435572630307314833015668049498192415610752914542895065670870967449367544254073671263081736911086674249992095263656971423680196512792546427753366604005709423432377768206518743259871968211035651359860903674959550510253032424547544249777235239163187306193990599552921237728048451648334118013489624927011641912674101836480766201407841643926111201834961309220135540150716570042536886700159255877068424540708187840469619095454754054631049470401732324214878118770786369195905033765957777998803392275279526419795865924130899921981985932630792371832173538619318818727562339116914156627938831895310759415660331997971175546800219217655340813646173051070712174161896535707225249355356495065966337434875155859591486717360877650865673472955829847044813839977351601561838009084606227248999519309010167014507233341001598650244577929506489145033850042798607341257706614253535520342523957596773429240735445075680468892339497694079343400879113528354254462767745057812198049128409266921910456930567179292365232487096160230180340183002157055323927320159419403536877972264106234980242076994241054289795587574169028327896722228519926734301056921254156469926237425524198430194589482945378269465690514283542286793371545604813929389996096333187814045215372901799491184250293685438376560799710199172832798308509043480079090543524334489972386223910692186688593286142283141330147670519839560756530924150454383018281175771864282432573241818451872260040776767654642477363884966060602092677729830488242682391533111066619446672538244467833751995835753870289670051455214945354998937864015345088373073662440463721196258201579180163955414656671135497094967126083215674366808390374951887077751629364755860768502046631948275851790556628277934198785875395398962380045428735628320852155416739010062396300310816026090700620079162443393578675423117822185833472067003234327993408319594869322781060950988343179382111903335949369490275891771064013853365070396422046247420047279949412142910390862071673844776661642718495575621213528039344273626638405003536219111434192269522930902181897244031620904662796637159422575740982323814223621676867949590071719648046715413101008124260463811816767404192276570129786951636082297648606659958547860111416753064678861947886969463820355714659170856280871444388996590552038295352903387347289002938913158366266107562298612916835098531394168101397339074702764771409141822273028715207010478705927312532533649210716579860957337447198959911248823549353412995508505725978459470459103001435139226584811579165472840468403362583006753463173241740681975029244668929719460543948276716883313593866039754891131488766654343198860831002993794271403012293446625661202726026692887700478891965595699631512887927991309170224962573181120410977457828242694533153708087265035164985595557680494919307617008502681085348480011232086686744593014284255289425966027492887418042793264487172048308852402164106038054788490482642832331248211688318303381003198621486675622215161490054719276359884037389337854323367786430173781817145517093557760504420263635321860989745911692757573445249162481865549705859866792309746567134868043502171957532548085887845917957597193375366119436797476494310470702113357568079685715289909022068444426710793509157217538537312229221363902392056393241745165019955881870093358851985886264308078581613676609667076471517835886118179020544049466772682153370539212542149306740801547841091892554731494635808075039844109463151105269023201391426247850539110836617833854483861817245346432868761376583140630685768500542020989823590507502692981296582152954584497298842489405364556545906770995136397810491514636524867167097379943727955393082853679701855093242555043715175061389229580869558908013027130984693677229464581377821241710917731387069463683350461391713665471971103987753784554275424786915658492362702412852221734046144144744671950707738641108032814338762445306737803032785340572382820498554163102300922043122784514475518074826863801600458909459269945050815097145477232883406458020822547386054756641818135673962586264065776692419273994535739201511873718978316916447484498634142644189289975625860755260362764410522091640433506848306018193031174746487868576739939575368194101989875050792170118323279450103620855073265929448702052070341524460440873461615242864336583276784970610534780393310239624610756562389292566856176986644822945415542365896937808577510852000850578434957473392267104764384289361081007064090663955554934019167019716600287711364327545331317801387845941184391903859850701451443600282391843212791576394868859560527493524691522840190727843460616120645096270452914796104445764420129152373738143853948306512587824112586829934685909620474359022402100223083821902170742016772252967585705807729804540226934790733730292021110433948158000280544521821861464272132683934002012950026574607403774228165955514203649575862679497949269698353710228809710053193234501474427700980821530787478102510533218786340372370901432513647211742809357970167320405591722900416183018552933670336637986723704402263114746417886525423220175776076676228371333581471212441325444714601884677797096807659482745097785895160300876307148526637678825914935027035018362756969070803149654622487659198440870405957761443621973909315255114356943631694045387078316012738792377546693135387684612427851629974591304044225550757535294876311154257580431652733005304773612294851229847688520596637192842030354197550991165728943061176338656782853551169360162827858831302044530522810202759346530706989562343391955700406108087632586762479913124391495015845919738814946895779610286458764377617237217786007220862509463168695834784574270918622494739137420216501637347750065297271678096556978954320631853103094329767898148458208766334108195049480067779532190160478112895180942700755635908823874976839567875774034412531772902703463659553376201299671393446861076162007180281784869740485255590478787939020914281996340102235272742754651995267663015434979512497022500211172031016376691013482488029163358720979904967695648176270410149727734303419706977530764151550907824139447186675575963115418564914912977076776556071372795798986388280731408444546188901821581081968183108486645476841507766894165029180341811698030011139016700274809507330163136159660141430447488860225191183274163623722915967848800285175735088322982651919883057190647573959928124732653547656748497505153421688308799380832431405078919096607697500123222633514353017009967665770330975435790530258800058685044322834956901658219937678556606301333209264686326017926034854775008065135890919010194055294976893395350199222684837137723886329440510946675790546782307194537710205959037237198359224355260335163143212505499331040459127986661543180939514214709718530526787734754217542279088012974909333970683193330020574080901342871700108776586094468657256999341257459614799587709646500544476400802571514048861441712019619176246460184186327252785500664577185027182579502370037153340834683776149002694878946929260127411507710580258404099059238633226776566003054981119268850250033763101865321809191322355866816556658602414251143402953869857049494162824436484004624808251046509669553556513097612868052514291314219287481483867218056665021199147481985012386619025605124742290062398670158487465931217034107103334515547972852612036849169298316325685651097519104421437334300625803127183702122906413511147891608164962939633253203416504100018638450783250958375162678852670279969330678072766828227144664872190491605478773403010956742129256218616220150390419825355485347509496961078327378413684367667234622087062676193088952345329044270797610083266199013983977674128060500411938380734140345073604068067058162048775843269617433897202549965705266171940017849653675869753656082888599680210894426331814579482300879660534908054076745176792875010094608892629146293340424322725271062744419300001393018015793988501528422429151655387683283070288634622449862439865174626192484572098167590079409936365321809995102031139746353137774651840779423686629828376458024035135297556714651649716698622478663041826043475437164894945417188711947023603794950306762525371097106477832427050314307563216251358722266059963160875066346398745436787862059050891724194764134890188599100327728975754324689969307698838307636478309926696679450029137108023877325855892482163463543621967910061487061967825378470715278002586814600164399725808888453599776702890900374734873941586067250851110218026673888545961254583653529997610608100564791792115070898952001030198738314243148849418914689237491282218078999584103101159673718660985384223859541057604040356450715133953353899430769943061122237252597830321720397704759250486450484949919668167992225526089291584931332461289089463806750047557238301911237851360601036438612154875015744687782117443609689060042471705815611261881269217096695842206496292230989148571520122430496547329238247380581486099896115191435423194854992818282860326470657140148046567997413952012216419143682544276239681879040094522579304036575910413343880748044140496211537067245954627619144982667741805624304238859371908845075213055300825647665012796900010753133712662215826277356483118365246796859065034719709071313815076176918394362312815011878892278696342214540578814201672882317337612765608620457498634756294887650161763771041843639510645536332613129335211460832833500070145031790425185569517059666791795000478534660201002216090030838873645427611484610160118475150302438984287499051994018495343296191139508926374930432529510914453516031512708974872601537327687399714260687538242135359238592068014939898542096984122300732003412881894191151485911845274965954997396458153011943286750725074576943549331578994657939088500613712745507268290900533710585379408265984006312704242445876175524801142641986354151149981620038781807722985926049091735934161352435529721743471870710432384809881238190694614592693266267512094309933550267548292076108101155926763894498246991291636280855596749359004141090367675416462195624160460312645568807510149777016186175046204230579508474682539928871568306030003412988528867233974193496354832842957039689323694560132869911010972843465374793528988865243011321525142096651818020350661709059216358977836552046069846884619889162484784147079511116283584939481173183920677733406444801954007834765516361027936292956099032488140985780944361660284332781602707249358473253763164019197685731109910472319589204945012127564462324755671206113276439445171165291637030023312530083733240096339187350355673902462156263356046119923838144387796600165420469794807952839543037102323443812088508639761029691644086200690625296663391616123649905429464758594470102554109228926611605892895614837115258917615093209676656290146853714235113855865632213157232604931510339405873362839285149251676398378996937738384677515266510720179227800912087674778994148105673845428946214345169729058578410911444385157329713079826094679785925164001658092252245954383334857108425321895528048194874244185953815793651844978627820428589002281910486690603433702712029466979876448720667435837299520809539099409104113590187874162761319380278770064813172170464434657075116730296577796098323420111078019922621521604581674695494332092192705122720592912284735563815836472525099635287000975541525016924153918744591940751964827133383966000646327710260861209262186849517722734428434845950159114855235103805644508558197449752520261626236440187818691655748248736506158848901297783991487700773327689462394423744216356006789166660760547579327230649390271325730458075185117777525716164782966370893966923296994695871800290583495734530340323189816105977375527842791185774404519810011533461343446921696132131500620980058368311808560698888098844902875711296071770488924138909690908897644393140832340626394154398115145643110208916645207949573089189109004995602369555106805076666508475852569219334836440093827908584248080426049283242766266365769070630317846726152931512377768004165579116776144966799784106017634545119153493126688707374521201377195124247730812199762201071121193850094082731781486463239776820795701473032417351242182891403517151589608586786206846785347059734736342727283904464917217503537221019975062081210970915542976915090472978879867254459715143213377760916502140235472596620891681468286876780066068430405152945413334959004256893670727939867469455914211963791287373657471394475984652147291285274289840011800977638319407095006838949489886051885154165273639815811175619078854188268346184140660206974280276186068137990561335698481957814580426587247328393030810823073203223865440359932271425178133231470751063587777222968992743052247794077516356176990980809257001562860795083998998938613600051468445220937359921620068405326490324402399740536147507595987225380310924028010178902715620172472578816093448836265783007349047635102391616924644541949301963483181015601570084389017566851824368302156058893076247192333148858477343028945323156261386891277603036023598498402552415710379706151563595454299700843268624988732509087867763777845246303239141266320024152043632008314517628728484883950065537604654906573294513664171528191538762035614112580732031740272746249455901511724678925905609535529271072132444088617304066081326702890999994057897931869204073076293743114550875929485747536835256428407636592723379523441087969737066740332286247380344218770829505966839888079212667693505097159571172410779431444914545567456887831738188501053423063717929536927122071074104227872023548523214131335473922285244750189285469636682141200408867706488205417807062642651357281204121865223589846569587112921842141660597138824528804299796723604076976161224769585971913533069198109673590160302290507140840832178342933472072978592927518767979233505494926361294444816311948666619087059941380479408232206425650579898418676575000870219703290205989294605414649253547953896964103785734550571498893378681145049155177592069049687884325201645310800536923168816374651820805697494206943677314837345074457675066698368782507284786426358325855352437795020615727466075062139640873547376540619276225191550233244044823279997239486585583535611372806955639779976374587468058093112414541289075907575101454914071369248083310329122095121574064035821665667017353214496641421812574528820056478657504529432737116797661197652728078681041975997731213186425883603763695637320730435009253976959475975151715423561373544831265370078255672402500917755314849214934536422236707936689088588578555335375825052459188874844387766181386089416757248231735779374387597864835829379828961325415290175176883977890449187371160808609721540722972767686896498444177678894065152530548250846926683706460225205236935792705664578900754417458280285832242682882235281298769007494248637376916354187520890264727054530040754598974003822318085057568910029447117362529464043254600148275756222819831615565168222262097513631478834700632275627012921284540325714607811628542923880127754707898861276700115711339267577438599317836449267180808862251576659262135755199277013870268017387969661127721143506777541536525363144031188244401945953262596933743804519554910205932510836838280313297340581237714875671386885084558496656188238166549168137453111385089734354248638458009428024579980302972979072415610194190115049039560398774390880784073865435879843105680022938167776019819144295239162380963774461734904554694493499836147955008642232292605582488616999642730247259725951359218517629115203897181703672510350673306388483167329572274898714830059346626129371151612771682773286053451970158905406594124718623195739023527238374834620723108527002242313561439120476585339465838358404726266756518501721618933473001026417502058973504154393219492457745802406123775896612769152730974808339824699741092639049257188427399341189868127723478868329576857683781718541576195514873171818681728101033230561908341848995903618847635590850348381355385806004155507413424320801959718304405236908169434943490402096016867198089174559599712851447834763224955272531151988929194755749366773389714642178417218685805193754124597397559333179841623785348005617355298028632079883648569482970699812121885674116858179103956441169695657819576556088329457667872955119553753016063498943737140120634310350482769101931189800992182589822720056661984321053958095394186331678693620635803265995417437881399778392663259393143091033110488137966796967132247196052329061096524093448578733648431004589507038986945142378156090938891976405284273281484136101903262208652298471035208253874232372835938797070115057222797594161938290504578241666911714834309303640088683843257710715042229950625970721535610309655374077568134444937799630487250057655476415923441762040132887759310626866799561607164995250469284753578619034241257910442111918147279352164319841036884152569278435204332739234592282599763861005032047952386592823549886194106395784815250292894317100761204074438581353142402748061730968621777966174642410920912873712644003863122714393100062536936658193318759926075733413006661899376468569253756545381938006999876664875092904869806414812769318937441509609714385420617475040635251413935552702752074185067196400706486121021577873182292172625223470936883935504879093227852155805779895050413729135607188436430836214538274947439395367434877679048886919788387671034467626770203250997057976835963130377228617802816066490579671966223843176429617354479169523876379970174923706982679017412953482771051524985547005368495279862356303605715131872555578410938113310891534247697978739380734679841006045954994046492259901919461551475891897926871235522559916578250117746784691935601850958202589759645207943859681779233311865933374264815069807674552676384749365073634307909329719868711759550895233307681224930076392509917292714782069348446903337931051838870509259138351839478096877203630762404990996684495440315017554393977214211159224583498058881048985865879463637490879136450579282498280267383860681522279034746041329633631742262441644824911714230800480734972004656190555448419759990584023655274543202316993590457073411372794840657474928629682488026356302173150529513556693815573993946142167523211834935538046297270523582395374381473751022140394993741793793919425086973203537490911464332046124311526754534728503624441208083513144849093328742100628772971756153268400902929897714385721451214726458059949681085565395850572961184776186282314287422225707567955802131049165157170231786256767296477789871843617983557187491360582434367447830989100751444521076466683933534698451274535502522014695764528656727106995967581834322389982472991655899240120387086395634382005798642386245210331768157875950892465781900336009577132904322867257393246399652590312640094424173336319506825578951346674243397094522807713342026382362501977751859787105485087526638026182525968372697677696448876298243006761565388784066591774026709868109832653976359670923038715953942468453095257401143622191041403792892970176633398479631553257022046274235187105547283956170808238720219030259465629870073200141072373040409120827928832775661143136672568253757576718866009075114739103531246199877915111827702171512915363513888767415485681629949310037493894004277196880097463847531382294863612864601721867422635674127127665666268383000148374189077968074690539061796052485599955424577637900837552154593017724185072517614535090719293029191506050033398378206027194863612955482544037378996533102268004733911317704549714329246838539740130203093590920063178890880155623327082258852372750796293125392574913416356856384467672487864389977612664312733352439957748668100311639497540553996747914966336570226708685739085102770582167571900064310347852382836402559039381447997896113057056728533029146388055932550741044243522081625267142747902257145960057147755840642053898861817733153581975713720660071048694743343190003327823550309584095324738185140529118611080884867188555597044311019788245848499204593411234773908851267744193335483279984659376767888558258208483895685287423975333269666100239430615805173977200780096951856195884308751697420952849517603237908079648556910637714657130154473283230188610983602957048276272966320642208349575238175179859714472629072737862991506670276172305944895846324743696462480463508964361576672348708894271173253338872327517642137112512157937616272517014669051427804330092258849380740170190963818781659536948384165121503428252896615818990128272745596743689515398024943557427294321202923141709429536267317797591436101152701772474622440331172569821906718121379699278537550553238916190222856292785337064004817051619104259723634391273447910017781881447318936283485810553820115218418125110487982629469032660716724630489394824377227835781661068362641203733222498872734685673767332410391197872183111318888068145723788536385240302548314285890931043798973574254172667783064685010306617092002643065951722547250340270578639972841353378528777095438126466735030204209206991689585411051833345363869005940629672435627177835777710368282173468034194015781173950849844813772199379151804818059046310888947243668422691848192892945139876647863723063327787718504044532354911289015561598048302799781583461402242617493138253246393417005627042621201480380772114211631525807148325297191452724666752164537904910956419527119304540369370296889039822827373773758221918943440505134845525737836748353130829422019576495245701473452869488739482602885802764713865931594751753904127632844689001013824603415747629111564120946188807472950644828049124087290986943361793618299519463082080321557405180670217447745560867507054132265812798500228532807345359968889586993029092629247207177133046486304929790346924016784122147711979998128898000520745754631043006910736820562811348657882588288036321218127637588798941132230960441158037005956943222098614051257906218234078682294659793699039031668757033115111849359832177815003842761924533893266592474986423344879875354009200382688025212866439951164652457111445006011051115029302967499233299049860412363115655174708121217138334775982467807903373374702749449356626713298378686124750604874059411353543167183610924627254487765652711291647010197441816194116054747357478676803233161244169954736006460456610360229887387819152961835578127971413531435679277343050083968149534965996542331798449652931057660416677102677873940279095796605732856780522983867312025657008336952867503906866322893698727268741539812175218749936019338993612152763667127841328072612732973571071094746783324791249280349391413720695380997387293258955638036407336466458787417905565554606364170371342596107269507083910508957181103971365959248796209815671269206411453881551666583382617060662576338197750945590070381250547909662259218715209817075841537340120406722575664957402953196848217298990386340606613694223846236900952309709210519806401204644538447023253431577483889921071328491810905253085814653424198948429998112132304842576504666552924017681719945953101118138444191352649655686276516098180455466564505786819768669291229313919329917962298794977947316103024545061987657505251845569785785777852752802962957781205925597435447963070137512706770099090315103480874874147270044508192799235126737569969976969002018447658000570740050442263161002223059336066198235344097721184437568966992731474954221024257956117773458427454701317954092112620061587694472629381778460623959530024891401158802937208559619534495389910848949080208674258879533214775853977058907230890844375981629541350300708853287310053285057357749371604704784544251243997087656965731900919436981311126586031171163616205717270245509406497789579720887966361612987884721930907496954426476534691830831611272523707461914187060470443041045950332114099730184927236742631469613061141258042943635950823470082258687076585697174597134759939062127402655841665003389529807612592695338063121880609160355423346700463679925350281478323568843439203900367986285924912534053389382965325333696373164213909720303742823654086841151199675363734258689717511190117158855379183032227283482272069484821042460560554023174439032115335989966559502265269914256586268881436573257465853385301063282737269036725703202298786420074576827183050850538628891748597617898397788504782569897673837439857553854053405170381053730834381936673636920773605398839183009506193788577860280643189491764261123562087862141306574723445682655494687157189930675258342233836797921888371810873160573260222018070361974140004557760318301398517758129830753274036602488599733921155402903881528943571066200511592882704734357610861953539469433728974780343124445760335251663730062549281413461592128190478289790121272109919967034035114255610416121069551628658353384799788725885210940393953002932163226910860481311063303894204259271441209686580006041696134666771330577429176024094568767921926525955616616176924292106276999041378074174878848522259985168273705624588725532121781653657577653654917827539044706699259807382398862126054037874605433500520379786898344454018903761966948370092872830978027626389316989861596570533900404762066899639589699112407863050480716414738805587021332767161098900792881590573570716690778337873942367497263530010062326268047545586342520876639450094760480811644544837497030963465006340646453041250976695003209243421533265858921842988391157593177482432353049144892415154388049125645979403551121415673387855330229052964615259662564440793590123545391110772216386133361427364284511695485618253992963186542845898281168379710829420414991837048369198272812253151522297367743793884010742138972974827810976548266428347006548242345413732280282842109968421747230524483788206069694119691728871768689390808122813250077030446162268453374098120689046706914715536507659813446011982344313157789923045041495560526326061071532130897056572651741038489523059004417678892738082444035049334145992037423177216280386162729132300731853281996204535063030715390461794675749441039271767450726403811485397235027211383204436102179495949113304988705450979315292056072460968070327229041705983632265862933004389720398620598206769423043525452484203407143906220316239946785629049394883616981612738134951725717554620439028069599998831303076582183084450861490194312537635537956258095302054825380026139924992938015584015967102821350637715093323180426789982279185610628528917380429333735432969147956728987106068493465771498669973025398875257003529110980563923157233545613857217558490020965477855686331423613484274181930991581348848005731302946725899666305753298901220550848778120474355811090427457163162938640167620767920267399608606315261950926541833786172690329484515265018408711033971292550014337501938380729192327845770473313571026046320850651176726119479839485957282542029043953740051749369583664833365685485306188727111264429612607967648839165872684667606395391536061836174828124358488115194359421840677948685635840694553655592019604004479987516180808819406415892920543632914064740111994077293008952030086073986835690279539572977654717347823180575121816357696926158288510137369747129282562411571472549525892418470001393538229646431272835436483782096756383653722050977895011349128081496331898425649283090191440267548872069077748912882339698841822516111636500743373417629941033701046286728106843542516861140036680681629200146894606590396904850543453500505162884933184508706175241747714896835067531935275996615673711384984430151971927440423680600052840139916526569617245588674740605877684329734666315726961270512854280726874234900391076436303788214625378508867563019828383663577883103619006885670765614637621181750454257698289600565514308414496047224281507858733450138972186665597736663584981033818550396209797280776076172571254275026024519103106068588686785746601699881067422453456240328087992488419092075652545278282873714796429170128999046356109876160282064849627300353606472576596261427063685887159178035109231334534033046395753131183247717308850793433079757134543980425679635844147704190369869538495111364961342931468386460319601272167545790989320411980944005019858889190558124054148965241581098317204623183609693237922771483271701033111211353721535353045941703896816354490091013235788162747467865911543781092880986507175002045089814596652360378105353206828077529676579048670919655935037487346933021854493832632508682893475399765339222591270796706434516357304994388966382203215243404494448924303440308644245262920137164933634742470134987069456648939418611160901401304080514002030530341256271491780465273846936066065482125333056540228947809013158250115777960347253993000530680450107356428831509492554261524958461129621489638914968833909057463392198001518971906862795892498670516483056983795836738190660124299279746199353930350555238676353109661895505964135853141400137243960181808646161171652782505621843279467617495485351667243199426411426130865264464639563095170645895724182385656015303135477222875275916949784981703382429680345299269427005905932732991542051408529341689154822718759410839007871193445894741706498099305115353666298247315469640818658848155834643891038731309541025626618883488384962504744467809917291961849709920449259861308223702558956886000288639311513103251310777827604514379252337777882482197565850816853368077094983372677605817521571239119687583372493417997864914396850491555877791342367302696348972317600456496783283362830902207795866061081542376687514531211540232541315994176957964831375482934431981569743385962534735647190261559593617640527809791149318607720223437651875991284049873311591785584822151781068093061182589416668243715844613602468365627954898934606439230507782805407264959120300135230341294287822523449889296159494303302053156207986187279185748196827559026022243573512274030691256566953909308942822076313707794171207278805846429898739315190796010256283705965294120469809854984700999344957596702869092002758994421265570480876580487952605054767695128288520203283645034906832585656157478363051625367706461660851869868078521463172692369787378848688195587709868435674464538093819505754769609712617305298062225332158100365279716000717236375203047072481255067603179035810555026196971236112040935750148404476392622801292502192130491743784236052265625956874482606576687317430623043792291331936046110532685110384450941327554603541572915107618923075947193669363507259829095815909965059083718279770986020459075052150643091231659330444022764942043821364814896934566014330632210637424968194517751353765183765232978894433552074040732112822732234116944012951263811768977441535015570071308257613108536916313460824822952705374534571508259435590172160304460836954382226803165660566486091217009027902492853434307898437958165772505238404213658232870652491564086200443060759761564865288611940853339342594284814870116012978652939439204681947414595155670005409865944526920204749983729788429861998300014817762467908421924468631799456031944669751789783385995883404775575185181111704227543253147642658398064380720711496106907336495307220139306695274158003519775939985916094157351264208744412122610812362035858803915601580003982505448514654683012056737913047063953641305228722650158382608510891614493782916772863190154936403922643752621493955995682320053329274435031622633162032788820087647535874914844248940749115969271140601717506044713011060130969960824240079957828729317859116131480263372609605064254930806876872272299366733095315886282808635684397866285309275176813028259761096198460949178859626299075655903523678453075763577904419435737362214853416788358209470325320133855099256181491261421514583492157669171108974356721381919045052825038751485991392835993243517893105449899100879705915810050077018895552968511059042866252793053705788838090983883345650397914555650105873600166705037508823996929365362277416239201815006191575158208786560185397878200252658933321411933789249143457655431161615987870177763390859458488858410328459957015962166125152443334167511782005553381907568244478303903179177706252407268658380675783432759098062651443660435624635401978058319746000811409537478766511421206022816429125296021790177541287410028959575359749206459765882478301648025825692404943718335995745588657051450385797118570105199024463367259460674852095028545048080350257179147188624730833748294227543702637295039516381520763943881193997597234488927223856021837830640042121561289950928941831656767540994882314262069100371140816650672275469108685883374787194038754669975029876530781623008205669915610356297322797837838517632755622097710121718699381626750581643996679248176860898862224641260362872955670904203402375610781382327612786352392014773328504921884041673230885072216808925258938571222539590614606484252560090079714805992758094916400310970024388426773390575244087620555810858243192762684549505908599693607432204243525635703145851285397974970007421794930445423110354469759348784438525611916775990460577749404715222911696195708860486034188239215249834489984394229025575652214628108543448766891781600298567203501905419843576699910447182255282008907889307912094143443563646413274722474616486362708607432255893044789427572420276387582805314709907464933990806808298414707327716917804157224178502956687597407772850392321296679584291210556515770648546908572336415657413490469706404883024400757602227686807808276523227671927387265805900644009488015508611259248664787809792507885855405310770991996154013865031806899793230861880276744409638172563371929306681921528855586211854492549977858718273332741845801716553421723979654723647824016269369205941884059064151398514559913134081929370603511719244260797787658597586137504365288375839237253985490210446148487487712844169318263284129836949756984138549615684790018243095516620650607200108836593378133212150460381300643835614812479107899633449559338517650497640339716062542133656488822197590865847074317054318757987764424601049370277669373242994099892280439689649063808196550099840521995045619468270419111104661162040536824419123254798156545879848215229359331314765596863726369909306010393549523039247106005086058597006493798671370896307717592697896349953074831396199941251661187238317992834620291113567607886902272625049854502904840772899932675686776145637109670945020503385130136453830477976893075248840940572971848346891245067701765478812764369212615505795708204166134194047617069896528882486790711434979906402461304249144585941603956248761527559946683787359590001034027863955233373122511804635434119007333967018170091751312346075927015301236737101164473685422786835377458968046471786777918657134060995773221613073400464389200042748130234877068173938227441573075581722387387938601007413854735893899806755095714989100764411947145116614457257687898047130741000365360958340049997588339289662398289883523834819955746258288303567062359433917838671921439257023407387213158822928503681373109406325502891263111409635408032677507563643159725579318633437922631719403256729866860231245053121940644808265495470218990316550281217854590453321722675499768744620960081315203579445143652982031307876856800055684189410914411296009259614910995298588451883981787763043210040342299464670097323148149255305964475933454401490480320352453822458225997602540849049602982673445277603383324147022313416934209405914246135670401397519052135392153254875698505831970306222335716023944534011938132324656090570462922607489823890927892542472365437327758756392203619147222343693166086098515520752559305618874288794360217893221584180017826142032742478672550157073852811959962981610862079432696440532654098819383532170255373271140737768303977740688986674758801924507973976100209699740253037627925697082753072748722712730245624961733118821739692968305888347810172165192130395997870938815202447662245708241433790813873998607670729214886627527224634669318449670017115766508656970652929818808634375720139296752329297356667601175995598484256174732878859123634186136264944526471240036562463037501706418129792671011313645614628763257545639851732967392150591232025363604062321736247532643023087756155182866742228727233490518746886856230890131512951610307444318581961524849271997343376496724861772303895850010371929434985816530337924894683835816183435384211613815983880261351275729445114774161401993495729650887352269815254537702341129900319648542010913511511231271434479945286519402250159608040702934448117773826116252548354840157988607225333355059268655228631758439265349138852364920152715409467214566090014987612347818399538317678795863478990342889334730154516417552331350130324070452228941233528549719877405462304643282557720435277843162595315612804301513269325198380577829126694355843756296553760124641699346958035816522859839887701776067838630875649472338617805135297067585230270011404908996492094344716962813873658763779367045772480414229179422902369674607283372775891891221939033938460307880629010901950424393384983972495502396243524524251705796007798044839775693801950969016789421051401973797894528014904316259411601914030096309980276466825595776102036152712224848300650623781529262480251703073793547957556916849933709979701351025733891891900082572138899410439536484501500397735029695424839122844583432635357109909234371943407211675844947285622171899830931493416125727425985561371005888165516759959428535553074840505328436657380348370276344246123116895346887891018530548708410958505049666529499498988717265130569452715892366093312324064166553745838178196430778056027973064473166257098378552213778041196477414350800329044168110736461230490665282756672223555103528095297174722291502407140169439348575496301389740297735335486630469098065625585588896161308738159212359066535301220386068985478584962798650355356284247719265781674221849207435317629147266002755249529613765576820927910450692055006838616349282459558065572171207641097196066698716660188948591633299513663112424775429886463933673626214169129838709334480796979268823712078220277136838346176776567783488961202917927243184843630308762966981754374560600847443555238970731238582383458469593691432633574461756228111727772067529821584775074584239917167299346101750755253827348400087022071701032951856891539496732840339725995543957536530807983136123588356330946888631902894692487204172104260119282325775987790166341481518009648648163160748161469496888399003786730990682328383408458373622016709726474651108405759807241827290682627428577423373426685310643379668835971835957216268398133704262740291692854983055043157990767564315202726802790336899720893590185613127395414083319080166632157766195176094103172567208975204108035511707605040933985623930887278896156835175207872189380983996745433982426227284102564774767891988072936256938178534715700551537783754400146413121566553623764455039913402335846922062874139872577350078489306054943965088608400620933328118505018978594368456983174284474971615211070776026825990165580682019610884958598085705482899691012917147986707095096898352946303782212802337327788098668008285112047285243021966460636838278746342140610021614436094811006636307062504286981069094982222310474826231415388465394588318601727639979131988616808092433323814097059679144089234321272934031093027441975837347771038072786998823949698978383249943412938335897232746035493329098562512546027637233356031430483456801753042580734501586772314845396857572398455330806237983651425281966675866738832865674552539868997587340881072412268721897453724261103160950399570141697529904770827684795201571127488794912413047908017312504326653466267141761230865065678071491917466865184211120260062220381068612161770792893751483873624588604135146742749595650906094082938312337428811976648366552238583589593683266737706696953812179151645643468633917279136335096256239846705162369517788280236722971491102150786126898706192505108656448835700210494362149358563247895976671171635266412846874267981693686863685129079302295290871118438700237459703232280976705783502269954556912363382474271303556980585548466901667726645286223707121955098976938368785658793544542745217128388241259375975662805495092116463514560519307728618412810177226477824992032475300585724095247039919262395852447376917098652793467428979913972110575853407231995264483990084490004878604484113761092450037810305642718655184674847262490950607375473675508045962911946939855483558747734878134856140029460896310312750394047956071569507413766715338291175980278051821092328713454061863266703376463925836685046512985176270179221817449592326870110240362950324490882381341437720682588266849321342155829969377092758059688457016020792916760109228420333839655357654404709329218005208281543396672573148514893825264200265149441270827742903793694853644404232320325398367774652337945436295920003333799100089738499984064380509634835077247483870014272211009144301739789135907253521114129228093487649729610973528228433059887473152318381382571489246560258547580593316575826420657556145322748429346536074850788531950864905740094614818315324236560057281539695948670452149693885403794591736672154247486385204276267111480249048556056923389372103629260570171635234159479831274646345891827778794460311961337104595141399343479928147997935474885060967800622493338218096628058825796190333355393311902237468844242116824960521555521618448920516283114903898186942638699698332788914478299380068281526672494653296726613625452988474460029717029741429184901170976553977837862244119471471990277537552505090423514395542513802594692839479574230715231236935690251682251615461280141562521713299149793793337043036242837058768367396532543562847955413308948626582654741141038059055447546885466533227770959133777568739654559778178470217972941229880269347164046739554440589379413486584074530767573680286158471915703359461301773180279461434870368439128172514705426806591176355595933944416705869111051481634035836149072182969349289892689780156367710077826896896642132619675397150706474245191311227254098379749237539115970803009469273486033824752208254762192677381641963078327401744817998555860528999378318443723289775122329759122863623058766686768277556400268264981189661114423938946455109340195265676740118713994264820668455105742070038437198806783623322967112136007263833868997338132690509773742129542659542710370396145846568491247620052157148144925461015764234248602656858098885571674046841956808239839169358913174600844368195588078645808967634914871696681528619460203711466388006785604704168695850398252697910240918953281039666160137895998903958898458989298925029710188328760772666540838804842339814829813227789528756267206219618249046522384601758349540999429522118273444596025334328520401932456755981697552757668170218381427307197532234197804417530523503399899128563068414808854527251201508920639280530668126573081676249641255816798491328015004424847944373836274404425495760474043789521328430253160860480280286857638017730880813985616510544762887229401267372756509650143496348968514323181182584177790570986509167557680618774338065692833341381748534327459277334811432105266515429553074439073134806555341947712006831016631073762438813856070506235851862363584949465355117726114098127999001178878646965902202476663767657763919285409528766083915091035779730388627900493751476398865764198527278037567699172568693193942725680773586061701831210923096866636115452855656947172296056892064204648373859690482105954141670569894910642729754545300497978734468662508618003564773729403033344114049689128929615587101093870088090714497013237404282007194723134651354267757776406344270658646986023836930521364529207906282893469482774169970767099320201576970990070958520923901604803125225711979887604314254543111622684714313934758690187075798500512776814833228192383211902503819212962464753422799511065746508648308521577126018545197253521387213555711073189431686796363674936981363293480556264762331853852448880822728014168352320982913066154080436351740769254137767021451791478201385591755813147481725210783730347463058187302602702791120773939487942572056370369271021713556491878800876154427851403991349842344999791552167395856656794083831992805083578192093871351700533972354008457804775327013603916029752969494994155537657910133000364108469434821467170570096075747975314344626976701168744567802641159154319711562193078627096943341628960970917407078896063798106274320838681513291922946043818214167893554054008596373804301697408282602394034474530918064153212497609517610069318504753761314214692465918999457509783245070480838066539705341569323214256567586737038657328921188931153919142213657024433591268992746143783409905140406175533783251277045878388127542622324248218294887371225941702431642164446538531451556936356643050697037920112186279123912410790829589518967374539886501472999313839235763446960932420280937399787940983699090376959641603753965545714941240779392769043535214672608352445188255484519241492451849709326047074933067264655084457199873315219364044163326694353356365600410234522487127877379376440236561338905884926485764379651382625225984272785022260069311264996479800878226509738298706681282314177339126523196345710486298945027681779372690678471223204938553641215414174393128547114959759643349388800162490298481438894355344846467903338908981193927641696199182833487262148341056675048975659975551045207404112203098242940001281060202349685773973330893768789888707781075659852477646207134026298804996797177646053686874630268631316105420267346105639708671605688313947637545206760858676758536771516933771351587265501368231937220766335461077669584443365072578348616919251398723467979543009903617102622761448380422086326554971603246761867171529332408756825790184306166505671804681959399768935086504931421038836929274680739307761504860615033458194296512954391248535818707755383546321373078040931518594039463721036179718628311545533468708993651105876860191822826356873791925389132888444191874911997549335907513223718164944073892554442030423654043176535018675351708882412843149126109689103061485806476509339472709308550728446225811055375362119455057826360199569533133824879256034969207902309141135307050034851883410745124015744229416896160335496549674129882547187796036004746560522329901629071893078130304502573640865884069230982407014914148010516753263790141473484584704384788466294997896542166758244923926427059716047100327208271912373876049984127958368154735824693672186524829694438919702159713871829318587599140797121104522183891373059284927913878412290852803828875294370469935352463142434217089869960801417234572322326433236014542443343630677639141745014685090387278050830214120657539853311159513089880362553404877518777371984248487553092951942608631501458324011671366050521589903036886687171245394166518462842693835650273241220774022817927015046365016420174258974418289396068504070793645854044168642073694124659780647557110633910604523056924768370503018622142820036681781832391560882235556078385765149155440231045478398460271418222842836243448071870962838788205427486771766220019207806194685644111603625951601509655895744222247006460863415334462330847050641017655204284781064236355407887651653227196207826601191726206118855839969922755085377939892177345271885848361981728169444810732870080462529848297295391600816033651618157854407355554332383974913091542961568418350517764697859665602234715009603451877179793294453723472486057298894578727104043104170278358811990600211485202375828097618885955985388295115846639365829496879590969717902360507839141417796760130651037871535038233492009695058940726467182611825602072558571620775252620204787131144220676593425598496031088729897187556488704653756968609127090386303566020777085200249456828960971790548313299935848528290969539863591162303116861149399364381003345358445842986632805755765262773926906126534463919306560740838747978979631517151348565917557329759554481277809624556989700600799825435203301941345675695638765599840575101598289417956332292969808873658947359153494203001597466486608557773523111106947697096459371717762056995674358628621426060860591598378363558436199019420034500741408037714442839462207819551370370988476132696847049065490184466869916379706657230998490342140443378844551834553644891967345386979042897930953270855157787445090160820938009906714480588700767625686952997705998563480044332607815740502182484920248882255316072705381193553857104579517137209865714656014998446005458451272781402936957539241170531234329532298304337965008665860766149950343575731214537035174876456527189205039776156654716414105785770973462344735955875919066546091956800928575219518598907576536804289863224757246459418380102527378979257746399175129871677565606897348164196165280754941243552176078220684078496849799837510424150653998145695710566362404352601461466592232429592740611159567203668523346868926039365838598767288762466351224387803757566467652878207295779881866247047071664135646525442696435505219930864819173535935141236856614067012237552833256141469179717792184315644385787700715535650179510844381957961196818972015080196396661839159032730456466266261968167403543116566920478484902459666853615548609242453251267489277547991183787752486623293296898279632099100212348231758053393470955750242975163100932815683571912420412519671972149210933707133285701268746934141211672868451255252664612036542551384793115804790418299127463576395819427888024915927544049651929750995205581899092761480026958049110574026461733528803682581544519085254921932819318873530935651285162698792790594270439492610723550250449292536276015534780565400396494400766866585144703247372757017863046625449241454451401581996531621898489490954690105864316254013896612597092839085095349657219734637696403750686037212664502491473863778618035044229334045907794687856418467286379266703213946910375508215638911731145400803225452042152641727680153866431667094252098543792512475887323451687078143436476543066868034670101566416557670878572883542327803963301445763482132802818827807901329266712354726921837232073620738948337327448042655741390412251705558442544511067480431941935816020967169800533675420557674598480834456873622806473100399970988904060739633189081445746692093682692149269700670680251679504495927338536942747338963823618552808027616417468148748552281083976517760185623413152446399610712266028737356014502030531197354692448380520464594295330487128571270752963306306694730360368053987280015195066408584277754792247719995501264538661584325945829369234332316850847020937586586430329093279019703842778949589823505470405075390660786939648711904272966285925446983380800858266350895093361519849437761564756602021779860583528047370091942926208119137648795242161981602839424286712443163529062939491039528076248664919598090726998031381809894546477063705916075866964261108810683592501243251222897440578394263242602572808293075628137780915861685523244250233733406478135349584631593791598752483200565985692425512738113153361342985767957768304548482248208324022799443139898164502818102094147130386650393095539945222471694524498944507415003669050614633308031573501220914346603897590654543029961807777843454517241063794091517018582820604698484465092972401970699087016899033794040712772944770550672589217627026138852966517157879166521091161801112560708560667209976151736919758062758542061170640130335403237221731485085124477820254480226088183287428631769906365565551982125628513676143222235335489619472780742992297782307632071865417257418746519034647109255419590370773928039197581260689906666541066548908281819303937055974053097787593205309470221763296803816228920387508438230213361869303074015361685059186197022855275841905443699353468712383662518513719525780750826932589370178841452089712798853467227483575861123916784509484035820225480984221801380769377714484757070688122665620990565982664430309426215285555375361473613140802891897756179778869729542314590693643864701609250064961471370977267731241941606647245604599972106753007110443185507567900821394289749808903211354832398571434824127906755288748658578519667398366911141706202877812388543506637886019119041396205979298028940257114769205205942761239036102509203697223917385069949701740708786753559721846121703886037956464976603112904452703936019919696196158407643542562394126201734795507939202733552384845174787263975246546095746607722704634326557279178360449653834411253470518633922441319916062760304840900272156738311676411447492738365657226796586212827893179588588849247530440813491471211993156479611275099786163084549804907555212529951956120664312338728508540680399628140105027352504448883074336430370506217753485680910191534492470381946964357026561359097738862747267065879139016165055637823368569898828727630080946190586181095113418719086454814256169832212875118319269888546027946883110615438673931730900020943882279493056847594025215952612563581585289001054917402825419390731859873751755683343119297362057313826381384103014590012794574702377981516570753443044423422695449122712192816226013938654160946524542333043670210385064768586603107520359575552787416335939713597524499089225556783909584910968610651665811330306249441468405948219057091932732633433763704546261431555837694894675319100879077679551936283028025067640147224836923579183323303613448116786631028262374054770543866023411652370115986501329448470784744728313875843561489366295945828890757748619150557416311672889127179576148598004344324533737658111727834557001089236271106520202293532743564024616090024029421273466779853486089960919490957810226384911526936979022545406354409672699491689324178986716462929718780739469410822081369066981869542350381651653490340610676194780831480632879387980135158816506860554539782776798662024454348002081027485439655883792069112155046681298141882371901629081492955078525440577516310950988195737566025449450421094113656425882621842302756477584524997100829270855171707517828585870382517843382362114231272961266402797590410388231675461320389937284274319135408323538380962127499745480769404892100386445963858270019843049238066521604765850510199282461958343834727136500955044329714900315303872767916131213765488673690054668886285508126242618016971368621388931069131444364097284051064856453067542919297050451357633935450663595934657399530569891490699678892805768714186628040022413791487384255516160185218713755901854487762735046905350636348125686118453675282025858202859163235231312764961873320876335869766541662137888745092789687360800107423749240918742141167333043371385169272238393862490490512149454222952906908546532735857103954379221695600211013782708921273465149571305569169576085218299430595543454644807188860241156149205489262751481592730448151768131152732945538788615671268802371283912850914032796534835750125332188301225578111876098172722206328541184387679450665995779216073364982356747820050014544359825568975418390851463835514921325244237221289628058436736478387215637278256143547324934906667637068328095112500283296911182714559964022518309717145504553122845514381251714321639490034004588878042343957079973784971257915926721999509195623338139446338546152761727104948224900216710887689862579893197393566881020333912283848410545116648563832978686488472949609866362057860565513623325339673967459410746791261460213188670833051324787906693923846728448743334036501618649313399957878559186730921268478562863494208806510880076906329491725772596424339859531273633880403811948370781370817482000867881768764868023875282373253841014429007802133505988849494801898345808109599039971942965450335941860303630760016023055284421048962514088759191782095071261111350549197390258474035834859529247365957150677117117755210182370414856540661614297394303030328243550244367276427352339537572870243354685187688710739900015927560826586527400819089211571794982244447591353968854530144192401112184204609660423467152897609361093638613860768414608825127967451076120942417148142846809988311326123921241657859132554324571251806061456291149689044750545795415082432129512747575494811165813950575052331383129377456172368171314398014783981506289751763972067344239231103549128541205097754667110444887897142382901578209096276634136404707423622662269769955954534591152269172127083693746179744458650951601774656273554851618409163157491204670503232173565342766583986902652387535464850612731141572501933130046589820723336559040674992735334867091791567563011354621338354691084709753696665469738106347023980295677684324352578688231370917940252612410086292256436662280094689727657609602829526606566643055601637132086063191132493879264071118948402413879555484478732761943939556008800645423366930208374668661699558260739720667173139548308870039877685011975157119560333345507201100469191872077755952945065361053134249418644352471288973296161459229734298693256804329242791657101224432917061222959111842162307685643299169023671482300181124436455875684264603769488912400159471851512696722294344142056446967146365540403252698225803073232866851043506971573179487317722213155845920072131488930105241668470651804681668919160025037107715516512985224672602550591604612016470481020971822788041528501024413205533718717686560082764443580779627564997709576321935678296216254296965770782703488620730035367797795470415714161417167622118680069406830268997211747112709474298052696323188935920878800188919281841287698488847417905581491573872326016601194407075790152236003082556791114686150984737470295224122009805861923752764356700080515457629894210494193292259124677315743539868949100316196506954488577743955716224887936261249889980956053995725830968162178173519437672813793433650552275893633538931250862291944518503207891621875684209173765164613349509989598482113526520007827144680140865615560224128759063630998769269846239146953127954989668989876823465148523181747833897826239883696458580233905517831290482489746227231808233057674294964053819748566097468710181325829076674910711572242400902895448550378086681668240914941040194913592929708418621107427723117637631765401347772322852393264135149346607372067618510251192908700668051240593904688615085102233044232983171932535635240758052730184386082854826198210122045383290214122225680749788738071029963908915368316797500724610127866000457863201525685625187180375324615025386361169544070661419644175688291753582417671349126431814690205758977852343700703999426539248135736433807859893349081381535281836764471688396936418946709139075605144307638585595433695549102515332219324766311543547978660940512429989312397154125259603028163449001584791606825391564402324617876306624749065143377658397317654721905598948944218691839524700205365463655447324137894075689398534197777707204595540665924828104265901735010959849672879097523310595621838831720455044967663101226386783414884052574924085710108292415741059518213072085939317020735565270821587712863934519590085472557331636175806689573928457060172530908986570853574659475256325226053116136156621962703577106351345234408570604504706625918737136243549284198044952488724399442874435304745418968638016204733146296391091042772693581672377776034652036720208432534752175653356444408904696128841160834150907383072127836951940728860750904546149275610560439467442618311978956491617282673836358980766684724488468693010383950132507954014679955769072216715961927259318457488989360447644856938458740438942641840583185422858469110642990073092186809718422075357463922987478255449745670073622449694766938716407205162648919409429808065301137912030728417842351072958707960120347817344115824820275467681195568948268523684696878428880008833804789032500230976522964462217343341810006943833103418542285031448248279132609175192556927150046849247397793010902490566995485412851865873122855106486704413203772626283311628643655264075505274692847499270655280550600324508101404424885279271127585308039901688170205903615931202679197274140094130740352247715234229928839434397962645324974458599819021169314251157050637374696789247970286789476503882067023610314310130982857241098748038439533020237090851283089312205322926155157327554763607991080757161203963042925644698746503464354987962189008361461100597473194272925367823947765700635320239238851432792504506612744295023370390624310275045826692365578909979617485038423537159567165639491563457385421115658899372694195133429083886077126161676801049190206079721503449595583444566789708760038643769705185857838024392490325030448722770770898640934389861427088886311771204835645507357067357057954235685874353695491101305477065449003446580637974221497326905772117757314509223323776119013147520601385125163652729055485582931527844325063513880128440112432813650780054074849502564990528833730583216833420328762006519949644240823515984126364753890375183356965166308443819017794600133333468173699716817114334373854795290938716337195813785205090199140235499124357386910113769591575371426977892758360596688824707227804843543763543508530809466072498952474638952419206507693954562048184689021321681347448961179449398946789554081960610905761829309307438708344546451290799638215722677503430057829009636815028947385622925429236826172728722040400022038222817797364788493150918702416055546084277851226290052154620281206644805740476867753014098410918196487637271898171258415891976592608833492737867390567913422131736428158846863286032131652692873661690342610822646409393453967280186216152675954035842142142578343421937347320255259226976206796052428884544595579484335331982385668572544959437905859699512445188395592219328782505406453949342401749815302621813171037383053747740248712041661528410367804452072913817459650857687599272570573577941068086817104623488616528519736955100455800546728241812692020612907402230797121453140042248172719664579560258135074967072964129819550470184861142011490237862538146264752306152208434625365122094060362816198552654097509325484984884161747235640990454269819299142612688091010314201152218956590612149477510089909826434886506588443833948980163137525969023046764044921878745251895216579667919780540857036973597237797497466436198405952271629923103364367089127832701303500005820204566766251157148339003294674377005555590621294401756750464232448055446297360037698510960358856408620968148892122785436897895463031864935148888414542015513687285535423237551097253506859773581674455932176831623243704801636688615231501880976965747434028078921396452521040911963276550210992954008272164787136493647365876598902575665003373068211758728256294853237592307469214806999496767152014239760985769750971159201475638419002619018781016551113216519336603429947950184148575217331000364275086091741557990089080197998342450238339998037143014321825200431286167991017189980325141818561774555310395950254229887508717788170872451635039784611036114809101016718370355505471298610670888703453021490139586313248760561094917224818238840668563580984530871304267427529717283660373364401347532852541276580843656911571890538942400748724070558337110994228902966595203872289262983980053597210109791861922818949615130725233045870470558901618864731760903363318194578204512713562812360506659826330710619994775108420781967791528441062844263792319578388180242712250566372520196030561387847185823136710613440703730336085445938279162207864554406838536605042894209027606739938799219845000497711176312028977647578421257942438127135763897412679891293828732958409371332085960557081985419331808052352464086721791806540162173896673823165205999025409794603335201490750334553427540288271220381820285622165072730618182834716299211369744307401587065552527379858513166721869140474460625185333142537700904076156293365848242193141957855244124443061090210520150702128617277141690700038737543758686599644303153564297678526361780919753271825983839437440226429736185224328782060481738958258700428037350644261795739387114480330761512251386490902606047614226347444937275079489821080314350013382063313694259529635417811707573674099844696496949015154259562044448273409673797533197432712172429453328713154775525724494113594791255846947306093752359828896016455704247314631648968515408650560371245068491251137079072353711608392038609141967663113048055063960452004993589768856051212942815711367263529985160885631137059699686176241811956003469213520882021137279174513850631675300730175368021199190058640332151107228858078071286455280935427274793538314106440997892245866951780916026014575485587456324034345598448847406251439970572557066909488685741306469034955162859743848078832117014221393585921663005915422730677693483728232962720832658382175206743203517724246029182653790657883194289126860850161015310986463805609070691427898624300034262461864877376851247525814048090903113464719301435920074944751881735593351252081518490163118035454215299986642014065640917851594515494451083240464475279545749005019907600132384916106163972005641637820991659217766559002163499850910686318433046674721150407938383631906228601187742166837803140834564954834334859488344900631317052401531985911287667507194397692337708657673199172539338746198329636501411990891173572456895473129114162259397964402264901255726381714485281243237494414678966433230986104734890782872327573494258157495377698043051270262063649416500398387374948784846758528263797634031845730350931689122813197559099472105858990593003244053034375184204258475634021607963061773723375529299799636534928831400545523282699871851270619984377303300912429553738590460529333576240973020429939382885233617521747094214895120889322265840729255435479093956595631380065484956079000729049620820733591112275289968367353501380757878110386373935474127728174512283078495504749972386292447312630410416044374142321210947714836626902511018054930508503356738193653378647181954609830682794680974673434816464184194067188652755763159732198040946062611220485609913362295301933802616035051613991566949536099185213525989172779686949391899849274910886038793644472779842827358720248731614476153299850331793670091727040667695465254036673607844993368793952384667092094619929661166862799625480827352037664541983381896728670810507422149222010019981116474548606200652335787595763461686945283933808240477806838305847084020049740497853907634541754225149480766231507356837074398217017051352696364396341884047943906411329083000915176294516976994510408996140078000606594911390882691758470859852671582520309299351722218817205582757424301190885291112683676037372599310981766728727170511315122728270796244563772035283018148144758091645244874832477825219894214703594988904730841094935856996349787377897089969332512800961708151832028411589443364949953831112670401510718867251593185370297603090526792827175492858314859174632996485995306856956597499364045079228412530624534371164425396096883724583195948295167545185983805440909575095232533859073647205217182740043597024227568724185071847370242979665401114094356510839878208084449583884258169818176652290938854221762384148041765481866631698080988212138749310974045344517327952657920905907760417831470992769826745064628442486472358821818994711429363323053494395746335017446703065102271309779361733125995399773727338145033060834721400283359144274812836554110227005036847442128693500598361815511810712824927912902898438098293310603216110123849711634557847259335058728092581520021695602084264957089285634934712836828505921838608213836691807686517307697867101498435931385937348233155672067729068284897062940652989479617331497859901128405775865369092324174704835575197092593534662518023127460524329336118320798015957749570929575657334231552171211666793095714632791351873391949349032464916169889382493625068933120040988397303978191461605045251110038155148977053695790962641125467240387643945001597812128396890154871151660948993898451514113103277406964177448292126991276447368972863329421096212818638915753712813532460068966133412478181024813010655037608528818751206539105088283374904897468173116195376337880866539342218759611717605671454362167808646307073970114074105847128181167136698123877223759655743641990728221792232864348141989373912733362697719011959417979654949917065894547561888306584972877592518646791454643195029102764226961262537071738343364096249587464593616249022483604124044541405691133074065716418498002141630016299289641510018456819653149682213363279950165496230345640800197375314120399996912463791138726315035732877485648514356731094292986824608727000669242787670303323147138363333926693606435278070770190064080262027457882125006349460949764498210972769687040760009098034341613177124126090071640079116698397626708226477689519336507252047444554275572949466519432539595825211477045939886709579426822449130437388995311097139849765955489982208254615817450033912486601991564518521964471375044581021299606182375217509534840224339193710829848741744797905924403374222393998325988736685602788377313727235898967628703096316433533719674129870840770046209659316111386608768839180480501505563928270778927406954712147120481609204752397602107231397944094168253507664829035042532770400990945390783922526066332754471190103974421460761204916407262187354446319397854327740261690218568158475660870975624387246572738817914266678047010600121760065688717491219563328832483904345373548650180108175145478421059354932346950099258752958305164874529582612063992637443795175823028939291304267159394672784971670449328067814071326591906833277306775337434010071492889415364517893018316198606919034962463432077611501180712498895904571684588510187384858699145634187489749910894108960497286879328463747412087274714873569460146692967871950140386223563675482327619146757427153847437370251075854462665012524232175423239125863017195466707392992478001496934952189996511529129564182036482954109642472677930095937904555924934716366908828758180705982748144161361750436072698043324709287734638168310583877142737520952257888102160493351744476268372359008118948606516458428262598978625121297457901085330946473963300745773201478512237412824645920042335914098931524041994035005718211213060371679659766399698379817296022406543610404205619090691979016975902013194747691626858655629400156303678410318185628568235743153437517181157996951186239240340276094009945412597157049898570194397854109063552775269027786926329652738965807775747806552225853817493617628471648779167964560876930457009951825214116695144207078528842514334995283843926034311860057465581021769192997131612770023677096266758811569050344555426609113241233395928347659145094992760505246596151403439795912799409348526586190729962778377918782492885166235766579037884394036340316567445203643088582175417208070134978879136913506970870046392778865753280680509331358810605567229151984913033310448397516508328073918694227852436617924872480143504809176978626249538091200167148211450107309353468477544296612307066195087201634395484621658591065369495387666777087116026906582550202841044602725496600155178074484791425990771323089007925889157507447756808369107962075904573549375911394697723538033002876535422296468246925959675005162779654448407430312226912344260747716329695879383299372698066715383626681126017574753282899449912259438143309615495129616772004516862295291396883157708949322216155408703899525563320233395165897907096989223756222808756840362877961650860208523700234142017015881699152269783209645787217437499502395810899951062796269035118649259822679786815818225553665129574293043498570903470280259716927511483582055216702240793274436267242758409431907075386622070558772161086674328949305479285612068855604067537903964317689025718899528557050213153329753302546616562201717565694931192382437312104218437360229880336325468340022239298647263813620999048218206595589633535049819650401883323504371882840341979968512729878922142261763950120137652077503924968399146380455808183314165520227655426776657316948337710354735214448057668575246786733866564937296760657144159686415824199707402360904789905157298079358345267223400394779285250284315552734286565652787265550336778487872472058074901814563496732508584186653387173093332327051364822609884906690638035520205738830387483474390084398157624586455889330341132757634449570826433774439023946429225341854619760113132110366076679281180670424708443071319267444742966129089027320157394804786610176386587740112492652161709546540692719598928213204609267730499834499718110745444596985661658633898754940506603735869250157431038491535740406043044429097026797636159576260360085236523675249587571690134304421367100093457392201556913018741876064939384634528917354789382535135381298570866609811053852880801451872417476970672076981887734247685911282631997174515948384977287869577154524633049960022201192549576191883433594660758713389784947772468051908877008800079776784985033143454929167612024109436703554833286940663725447224882851815982517926125156411824221076605312831915156020585270916817994608923989271223702183059763146262331291804996993448353358906788907634220777057394865603830492294622466638950878360017030286219849643149282703805575866864696358658760864053204280060977770896823438431315671753337089468083853192193129115756846253785121524129317198185791531364189764084718420095959651025659568696650370934961940571970513175346008761713582114568359329049941183844845670617863124152350373903138607647376831571235558869196351002477699707618876176745356697451640425257224907898143365528471874287361875916747108455640843942096916833577130716302567550583348682594210022534204330197774047815740116304051050878791259198857284154424597828330198530896454391574832553962982671496194256111331659304570934582747645181681333441955514891421287159254052711940131840350176060703782968116150830443880168668653379956277942010670271890374936584951431252493504474144502141164148284094479717675419422228011341316486576186055539117013682136258963463013969280602006886032393668776449353906267574807947504111599033364586608431931016097535272142846251890088550584806947683335192811565649281616141259937909820250266370985695123523656579229068680768536729322818201000659529338650388734230549050155699350372228001893014255752058614941020467340303127453092014444340671543649982540623682631856105154074619585769111203191123505794825540069123798717294196769695894257989016822735266617847402844346966168069377104372838902852460943511767896747082863149640820514290104189654103419621277983424764505661298267243856416213467001082197992876647994231266722442226578558603918576057140175784926263497837203107786585951171214403046894308687911800975528789550300453355329362464764234083304176998850226942314796462506724799861205527824997590332878175532988399688208766547514663046412872991887466186664355435936692528678723926828486114454938046360823629966650160305310474165855356439220117869322187383248581286526365470151276831366341394070776977458651248213766041310164914021910006887865825704960321697466147919592247459573177503529470046790347607004107658673108134139639045743838777117964623481156449119344961493884062824230572291836252709990343996021122511446582337427178400218593865012321896733412631357407487728002860238848929174217540687842255511841138659276377049372657536823139915603061504535291236495432727356839875523106153059735132604104278308883593075314357837114909986368411557715483765077698827319198759815854415391196751252108525580969563982757643346922589875145417075697845254432333265083809282731033253211546944273238217237500869963850007997711917152527815917279842801192076367810780738359635916728021563707843610040813650307956786915361852178100099163522173024818112200315341003779956679718006229927372870649575505097078544095860188193238197918181239941652713438769439930203280067404237391309368089983152170238028391533923838073662506918762944113458774189420758771611485688547356271961928629893538577720544409547598383595412917057566247988042200431585355050892930380134169956765299980994713444801711781395754842075988010363561349969476813648623925467358789543186669347734713841387143742928934077811443509452956789117140124526945652684118897006814472584239801912080785973077570976029476290385009639203035824479126675363272832778139388186357030084555901064436306853322406986353442359248790042725645490177003636961412679023252813032965616199822364443858030506266415010289281128642191863232594094792098206214942404863539037749667512388417868183342918951357858129418027178589494514504674665484310308085064937830647147771272744589522709881778209553612411523741165075738535603714837490534755433193547442854149738361694211731424417055638249473044818177056366753924597139995262731428265996665912991868534583517437350519682878448428723587103780791938012878317171839411825612080067410724725120470093183572484776620802503711008260226855488114924916331224339882394545796221477697487803790679588981267405783224246241530492788587872626579209052821440354399319846272754496811628855381733419182700897687045163861043219307032212169017534689980279008562162719354314823413505491754281621817175067360921284477954954370080175855061557143479722493227218643947129528269383842777829244181584361126774255115122105664402051415442419581895430047822118921293587310924766353355996603615144438083702439094993880993560674935038627279627833131624286180132021635377025208879495358901249869256733221508584002484998459896188322468001172400849879944193342013634713068719373555870266949111600677030974104988532907356960300663947748725441738698960563679844806454183776309399230394607931256795015965748682213178457221855312666271393800342276674359777828210978418719552072871758987650485740921197109371219256627992803561840413205293216543130745760143863003412417363783933441558422730629890456314080150606207424981102040160623227803336492743935029819635258880581004147114675845603386260719761738882015817798782108406185169322198701142074785134484501073427794621397321454912475490987790667637418261962572098314926058383595991593942502107280644358694983411360853826491805593675527433537520605554325115883081909550041810967139748173620443941887170610656928239574924640934463395476597399154125583666276122272983905912681521358447618423266109135402820998142061364213710168468529142884677383191323589203812294396706951360304810806271439677274722950980866053625374042097782779798488749773562413645384890677005584637114087278546857584757254650644796210996096800035243120705667559101329310524334096618278036319888752762483230983580033496951513710485330144084626608957430537795405696870622889554117841897471493126225443032873324882166525656462285969632302468856721568286368312423349221842929074945666222024630552083963204794209834187429823486055944707932199819793518587673438528192647993608414022194384217174908601348749512287333031154705765714955905619422013690977195921481573274260867113172953203816880347139318969984577326884081555897987525422819651223881467260463839975363539287690984950237527845222430178702591665893645995698499075270118080039329448896583464701853248739426231065820275840222439496296759426675982203917305708077469614861470841306678608413972180057312841103269149741443738465412140430491543131612977602651636499886374952005406299429514373050073779605973227119723776902262006198894659684543459749155309340976089659508453663268005465794855659538785120985908598831574649460413331631988266720138718622713418203297156883297149369228890657781650404843554654028954725613629250751502667600877626507911328029930428720092603428789907242818773848381880269284066707972354745995687671421261166167277444702408197617697267948940084684433084633759755756257453268747993236032217407984133623099939604531799106347197261700437369982239934870221671811417888260760524427422831283384140962200637386491134611153961784223192839876192936784038441535806337718945131800122205511646325537770402597678017134527195809324914308738450260392670890252388905211215649579439193899186849086061346396458909648453231220647712155448332365755324032903198152982541165518220469331343812189414612787913288113204930496094407904168552538088642303768873765243858426846598565033318361096068087038350069345267251739550414783866943082844236401108358580666056748661423875140876520597005320172581238969060658766847465222180005037701696960240607939770205665765700529225414523107713924092605671898511520845343054779269914055783568333470985755116371966068845210330354642802932819659083308099311255792093154174181432259622217665559995752318111477216633513506205733351864432403570327119513167522658430937072166206893947754098948133088777305250852569667858868874513736929886531402250652585394772560560721032370087838708792958480141918914423908946477065813139473396886960475961318133710628959796539891362196754406537361263801696801880532173395216029341159302634802814088626517885910259625780434844672268866379123807109717317448277862113382065721014038610829833422889183839956923988144001707602255492666095703600853281917334754206502859293527272231550035088793998462290444301941167062190429961973578010320426697978327344124508838760050592926588292324031532239973144290658107876310624712270441404925712807029710993601569962393801892562336704788984114346520787540041121703859573373168194343229206164168502970138679377221390106784634201488655471568532228308006688891075500926153524613525557383396856420732831996583724288595091289399186776332968834752620375079317974572475208530285031003385147998910128330079028988408091801619837552503250766460169734484975967465104308744613321497437762454034501348465187634714924637802788605880118158997479403284535408159724100374019778095739074142340231134545691807655354502093306046725145778569652358205383203258128433623441986947978519148671887128149155196142749824869053806045771177274379957725080860880386382792582906777320481725716629047264341274636268759644439445680119808719419975725242995761824615992699252605175896177695414715338628206318691103370302066220883371752036903574856423056263753076587991972019158902264856979325569531496084042096623306990423395423785259695121545703055719919995074453325839677705201380451384483894931567139317951215803025696357071152155515350265023725208452323877301668034484999187432959604594864280740264971626349734871476725230773530453849897639217311695769670644084119235507795581782703518473237970455855801867128847478679749180632060687241514625288672157530698645661845732146138093840474492723271777264895092210024444342938798673674283827898465775369681240410922681525186324183856651510928094536121771129883968377975150590262938012382247504728746434553623497652421005369683382015826266525246276398704561553576442443156136358649833667666905651602247413337049519777798688265707019067856344590175613256914506086388786455239740965554927760890545853722911724917838145051527062883758547944840002593683727952511455670935710324625349987405855302513255325212415686232261942772688768657508270308506165456352746886527569581638659136203178528194306049295038359480062198731030983527434552483238529340659045589966969946366141294481747893956063509137380798267544203618541738208719697588233367850110181857803429160084006831340637214153725130415195622116140997655009151975127413819960275631625379392625856940297992948804552138302982568353164281163614616763538472509425442463165147300412124472717218523273429646614240041101353402474715552085551613573727691292993429377826450704494370027780612095096557192691040540026744843846388009922498698242675917035121773331859226205375985069361373071122758291871786465337831883943738050490464995760036160804868711772801417209782916051751762244771717738508742351333129062163854790142798151323330857403680959756037111710360842276985945998282741494417250998819833210652686927083201543191632857788584909273091412795425313832283669439196656701521109282255894464971367218936817713912562042384778590185556051468283638059058196691872371748223438339138556604846164835774928577228128388103664379430223165310062436650694222839377905890355234508084152140407829918786312021936659206688028800132537372519192860803013927576398367598249534681235434696848705045187180547291133114420190731779359906013608601921054803438568854699843469001498603100120616473949603366486053674166226321911422826281735452289307942278461047843377942916576362066619320560648740180950454622158989777359635833222778646470792747166697582798186888915203121686148632146267991896680864437678283596978450695748227747427995051163762319285784730948146688885168373239694288641723607004447486387969048032760723720704778675533012021631389268588822213512495830497184305445736605642691781897922545821513485899462452583225478508258084243401565628205710921250288790922217918732083810578999267710457101302444709084485912701992487483617464635860695772584880989542732667821655728178623459061446104640054824986039198661921115648840472324716450487788304774504636098899237094329057335749058981246010265414097775680495007666832382568438731193146278966949451323353395106198943251260052757149441169622321022443432868048749277291294365794859919185542106368835657085492076985044070067345238222298008504916005724010972301863077827738263010870293018914214847972428841021457543770170682217912091894916034062777485077424346881221156123844221624525953766408586433761221960113438304933138111870749742352619355569848831238673981265850102904970912693300812914196950910434043275611102663708167632853589806051434504727010316847309278969091091069876280760196245765096813644283931560201311587116531304604313185914565668842240606523747230511365154211749006889868949484685142760885391197840775264987801217634693926195160302297323506608443533239030215015491690732134381563443947377027365282740732535463635359118742905003913008637367151539679050855641376484898688798248564730445305700089248907395147108685676437808475732280038135061579828070639065264447119270094615937573556996682183578519414278105055974906191191594586062122079395271389358139372094144729416557236413839995887766585020907914725184445776949119898632927834049783381799995264587105074380868531670754365926356992009164714942662727672797325081924672700528543984638335346603065862958483601689938351077466821752112104224892779852859848855439253318438008095627243416015295695449463439961708857760605504514018759834293608181286044407513062089574465547981614898023008476120151767257151515533445404239845634604620560112938598643711075080124407255626639067372055806733911212582975701841629051670389680955304789072698357578820562040432602517872693475984340501649052814286714654503888701406413698683334450451069122342536286781628078385365296058089920972790573390243922270379914811048075938273173076393440927328941949005758428978388242264647180504992633628174666762880807042721915638248602158919539898105179391744595553293092788926355927466846100044995827140033946931335038538999100619350167037690280028444347695929115450965077032549103878324167711958614236906694277666962117984002846252825251948590513212970344408455996749643793373242241061412061627455945033153134123414321299427753743482439618059082290767996006674045099301578721843516001735224993854547597886788117319459815487922998615906192708592551221841092313567554290558948694724986448818135778759074428452685406040609779550877859518120323589064109998207791675488132771107383376735475890746984526477797932408040550646832407426740019974621063754043580295832168263921145110008237640713480245726408605074223534708929982698041877281298567067010521766214238719128590930632031514071887158288566871123593574501745716564929255694028518531267264333627529236033142763445334718837878321379264993686658101029351723713052255863411760999591284430129435168605385788769012899969066237630053916255202539065957902167107386679464023562672417904054507331422252837493377059181185924426120179654715163508734890715061640642966814987075079971915841387910852243401117033729882674983282229256665822624213738953249974727697312129853913050377951363444153308484763305778695077571865774101850719478672828851349012172188515157551584107371129192171411790903156361489612557273740754121610449506318119056468266728418876135045810285150321711554296072142496188994107649617036696757624285417780457116495020242203637053473774852666441918620190028927928300881188053979407817504113223891346939675305449814022396616342101399139668813394130481923918054330412476451743925908733461579962834841288294550131445372804655744805634751690376377407612442014313712824265021730080406658975863686916016828367447885618649549000847947100375004178635156408034641585396546532588456851116123211851651424440308948184739146669620878097814270303833112986841964568952351513484483642378126123851026018233105796476364116005521459714247645290537644829362727382464612591291573570765469511422384005697295252118102524508946151635431863700729542979693034370844941663094123039076540323129469226172249696615743454801565899894050125475792169827965724396546665219309966127104222607378497394483662175731255822893581224288537874164182560138915128163828947957418221236457775375817923918005180022483261797604708246479336124359457217762180561422274009046278421412365009658720217044825938857491894006361652150315912799915070892041956779018667577316958530921327249335883726867123857111297019294304475678425764637090318110420118322270401536022186970126768387973180836918757078752725915939596092983966980451020969966729415801597103557347050178804765693383767887042502988907444427913043866627566259687822969417505719623439131475873339690287184659992429531344732153469767693428874260656084577563570243139713862182418012176640952575972753169910860887794165734257026779691613487618362617732900600785119185989888713979616086907568163283866734834462791966077185810483261910520047844871261513590775699392795482247693034347542253786965731929565471307753969275807189187676091249847175820623870620199033207857415795680022179163645293357051233364455108935424439300782853412941968371763493604149173982555642293466221089001967477791324593747014958571442399540502673618874303087426022114099156437420064834275438242850887919056386327613301152316171271589683837513762488926197712589132297450237205894040495632974716252231249394515231867831934964390068931736055979736436124116088625312773232880979593884486510905104151324175477173809093243232980312744893726543301223534760743176828199462795136226212386697535691206725730341561560003925406782481680458949966872242834612383235417977338393236726917741548091120030506898793433255549372772248035634746170129363147544754612927782363536374098345686319799328938669737393476739813708173284877769851384211252629329823589971528239529549525226514284523744830299232445580809944068945837086386460177706803203135667122024122158354936563488417237325775592936037874998400153419274454481049891895253985101359076780240945832309715319375795500760570225945654004798165556288401197160325972660854655666167034876293215401805633924931493001325836475646718889699996487633060555097413099848147448734634145918315243684471759933534417757852383230803771773637410466923803358356879170435745628417763951869024797089623033635042866020263744423286829754497769616881753794962179556435312068002104179122965358247526439048129159702465613233027933877491062506238781755006939681138053436006911142137069365317867219867693213648222791727057562010784657543174946643276945637568603401242754703991414262301223551534417572204411003183417031309345323436647706671242078322217387455661349991340087878118826652447176447397513165525204234645936917352328987082731309604955640531076994880692071424770874525283173233742174604105852699055639386428810321935938126726434280732417874870580998018987048585839297876186396350022921324291552039032779254859999728139646305689339643521629245442311527204850905410301624088050521932202404142441495479508015671668158653484146133228898683733533500851685086540606272064584379809116138101413855633241143248851362982214157625508327142799122063166067735912381402670897917847978078357090992634785366305126150879289339062238390378828374931537995940519763838609695595688117577420933190015519379551985668001055688910376396196368790292822770645191909941163846817945860675329188978395277453574043229712893389188164010968987928817785326408107443714494165134613727281286569720403160090647628393392691084052629636568749728719570824484458972808355526752455820641553059217365652793835962324408059710842943460630062953050132920700081999782034504779784626265440748950465727151588165444938567014537650737467907191343960349024314716127206072648087689224069621893107218918498547958676708293855588373562585083405284846041027501629603191124032572882443736216379588991998191175275083517210550505864157663002195218590971519037439204443457030839041474280880052932811812796537520888690626107416483007310356773761091624165652624279925805194870674289428359245982678437766483515575136347171035203224895171771224512937812297773247651594626201571741243136582638804406244268056036451005049387885938167801180006227845587810018584002756463923246112380362804199055372684251889681616473800795857594999795370205431250301325420781875475888809062654066745710331544761397154844364532441167421196885740623215502238615415304544717901247285242822892069729536386699524157657292987285158456333778286678088877324320032115585654555425242621959620299794319116881094947278254682356725668939321082431958167202695609865337015214858481939333409057225730073138311871677059558862575232896693680061515596232852033042968032708754065340515902284377839370239729347176756522732806849707242830028893377428675110601216491684254718513183094212436345096558635780067467868584010513889464454640844719543399849590405253064027023034061057051708149199438407833280308885425810421305217162354881044042772810276125337540967685749980252342943135461251269535996833524111234585473417582301364550456038030243335989446896798705860257942334277214723422778832344222900091001787413936511741684868997264427298948850847266345789245479845413597587307486256688690013951801413575187020186369726822181193061910478031361339689628740544845187252781807792276318820687626018705467527213048427938794011985246263790044906213634053998448109765525852276351031441870957366313985682340660533767133857320526253669055615120246195332549859713025162071308526242759709385644742484996080576142228205752715452121636544878489747749046148056214802007502172229345267188194343879054199962794438529909321106524806025432177208736840264789356188599386089722609892651850603786284946887261428173702423384963403884155604557217642296096752795914564948230545734685694847464526758759902237182950299341800129540067699258473757797314038740409245322726897693673658474637131691513458569476498255060413576239052930154825416030199039212418017950765321529830960956162501383995628682850918195395124372903940182711940553537399355876505087310716088539861763567793437696009005949032256903924585861179205050662925266132949255578559898793305550461500937841785719640901878408380176777040594859846893100587701002463950493270542812274245826912734881905363559235333563117223437458647062926752300907517951347321959767159625769189029073388227615609556904795947103485945742683731516711304513100455939919030816173633903728886589674360329197689183740018700299445396053424953967909127463583876649257156003355636213228253569442990492236009420934040810877524634797633665574142558258898243279408812766844971432729743054321122066037012794245572084417816017965348661186929446618015103654968866010039188365865960204375180996022605352940229912700723664701233277069390464145221364744399748844268342104119359209725503189222283486771691240955309009443123323051880753288025448744403170787603538171964890704872707598683944628982683949762183083149002746799835105514675012375308550728703384132014157915060388213834857799352197679956868347978280045347013937600263336262234776466156467947566025503130949249385021273316111491360719344389547642387236345883337117142958926359086010946955141475548404402361373550236183849094407932772083068665099185756692709228459158426704805212010652924562394961139178507377833877254769476099569227327124887683772108962963942431644415151376873627454176340908532635725012107195632092969154004065550622806747471747989246258097293532679289798533152580854872899356175262186635290640165765292286752110646202827900112066999720621489752764915432606717556344268045115285443980225435837648909521283660954410091311413090015277040629897617452088083942222686668705017178445629880166554161171678069359938519646750845842861178287336238467641375420618828454097773288896194506078424857893871617671555451048660959704568924414994745113062273113248411080703241187305427650248672377279577323093703671337023090006354694360517442665435390733851741277581514469622734384169240975408328102197331158908146267577958954872154177608596009831183408202143900685519659674231360690837716725393211088135847094986031447982065603174144041860301946289448437581616052883751035564056215484789320157752651296415685669975464125323184644947162650122986446990580416301937811018542621754439335191713144233998719827543276848307491542240069586393504779100892333886711887530535935180446722247732288224480933479981689823711168082046203203956033645397524803053130195649338669280604274067301054544956639573482414077501727929512473375677155837272778869402553614894894715697074015982479340688680920479954486979427884539570870967553684776801833757859102950381963483166501255603601504517102890337638730414460717493908773118656228142394603433415262455887867684954321381025852943621785486081881222538752585776817394817190224268126157491972852549394986816970503336473976561009591032505603877813487237795987237998668736533206840792253135110000400502543335415284238441901193410089310891739018509238123527137633593319230149759561088894624103400707539810506162073615983161665660143326130938891929767636173841690118039644236540424492731438009036561430366678711231092936494535450902442378377961414336632200023094492827772076417511018324241418654002857677337452133499069311229689901700649485825162287590146377181188923901649967433844195006026614093702054229375162631945180102751607223258864426378353731798032110871248450426848746582588629974266375199250514314952237809454104411039895384667326547997941492489974533369414367251922119591909961342988614420182725124816405566943041590517261169545228413258758514906480441269835828605006093993899783491088221826649685623987972803062587631772818560412205968483713688096001109329855520225506009004145724327723930546297336820964387461189232865121005242975694338526674705024149851333737221008166760013111305347690521795999984625252389799556956417259957538405245117522710985921918135941084819869806688448873502421291705933826244573889334444115471432293750418390248058408512981428012248686593111413092258938499576031049569950300165938000797800828479157597336608750175978279181151069877802501981803430274946967253434084250959339016284791303402312174897634560603691050598170658711959387367307673329552090044751864705847847347732578837291666024425507138256811549375612540193796047303608538958486770189265532811846500981656435938981253194791958534310527308491702395546645949467808152761182689499606718656924703030642707500940994665759721860193956803806335654345557953580570640682831795311668846623032268584545068480013428646962628034905389938092372153611522910558146414093310731508572975751961751480191432421326457238045951454687261497836187099086503182651739860994532378938899019067649835491863317598275453442015290180557547206526527862039089671451697372564125136246920438262940898085498281662368936346697128577525730064279619574452941882496055410086161365555655423449560776190502595973261533861827498204301258641549921825758475647268803458044860993661627345591757076283953083436436762704165882602909592199706858605374087734086694833312865421874922937055329823759559624223535105474307606250087949963313308381360975857350645764704572096364453986335164976816279383649238318759320411676340889846178715650896391011615808059049375962534725108315075706261424945446339986946899809159109444370810416117371483952212154070087640994932779348769013622158391104045176572295718171441695375809452828256126907535462137967237569766144302284475586649002751955348358129102325060598975288670640877267847811238238460690540991328087065786032463548002375472644332277799088552951468140213672375860830929456429545816909167496150725278069887485816312558539777757050768264052920867931923683423113953375048376453148919351577110917325253319646081227532586771437553128206080775170726300611720056758144210806009584632974661494197133613706540662594061017094136908049122939856631367000209603832337104517352068926603301001663994026714386157620912485686562043945008815418773829811472419412455422534883777215970065067860639893270183586652241877380527852645386440315403648579328354982977345574810438979553603746191088653422074792449975647467855207936624947444614071866041083037101904418062972589683657961214933388881067575249963150076590412495560529070150368620475790497261549442843955558240106224163611648069476140963638260983790297164114312791097775664253108746965416965968529424049110972176049083636594819664859217660123796255167677597219353416044198611818957795817320665599979725940245661249786785269847828925267742072509826740968662568411336814955996471323050636463672716234827861339809459582175439340047406765313456944121172609908565710193259687237327648719172635388697739257877862080439637884767040331002167650234223540831975779880400098419869330161837891375444078038911248247728218058608657010107299754118217118284425293872461185388184403793160092064935102838220735140607577527129986810886596435523868107676964981598681642998845661959129460600196031861699921431767486578168948855715194458034666281662342024404079504652036958975075968284316847165114796184769157702235251594469098291370433274239907629521036434880680633056120639224935906627247417848536328875701133580481061330900087184332329852943979729395616057323690220772893833765787495495375576820882583247511205486999744755361537646577894661770344039597146024150427066990684699114832490389928084485525686959249379183676716009364204604708723451960813849570703261221130683936223283499970189135141236209344098003386499147733197275360872989176052789431695123572006091153920228114996702340130039856806740706639054685618277107107907801141339205702781203514612828692383819216291254309520340714351324197709744259752966286128856184685554636235053944438626670387377655074613149703445664378507227360346199224546860360502116055447926148980159917990234145737992561049373707459549544059967054225774886907172774802208952949534504715049477649434299679312453180764078389331902251709801526181455787033172099335536091662998824240177334143350275632982608620605689115827394532920210059500641620593476352366895383466706288748174639358838100928926176766189884918209152338609943696632577190438973946953941651404108943505894970602713443858728593412898225717475618817693758865373320511287696410065524467065002495632140368912166559457913154819613179758628267526000924953668243311373947495661247980001732499188027217673889934610909339044344296738245946751550556800729774991780779442871689016755913155503122088337982950405106099741676265963514032704343263967901703408576159732419830188496608254949724046876490445548550441473433100701452035661991629025656157177661479230367248244533174037660680511549895989410814863389934179715508230543298057358401563089118487175849165308028232659398957932103727253483985779432290866767637754619698207145055161200445495398922245799848963790297988335938150610987021414132087986972773000497306951440251039443255917075581839162841210063865554574136281849865440975889097753893997976279883990727298517765313944252577147376417968864192913430841652069795289310767562946803431584670828397843088757910856084226666081394869730418214667630956105941509619144715201061364636143674107776426998258754535262890726243976484078159620326738916576899321659572477248127086431882825607833782245859120059353975438649826086660357979254858893377257173610190656889531169420691699160846716447448024786853932446428775310966394554441619349754010679814367178089352725647935042675007717390755486036885350421622740431793499833443705441467003906728114589240597256933730325235666753081705959844854937364122442463827958798486566675759804176446663436244360474580392261407732426611811529266029554215347454370466071508686797325405307720719314055297490640605906813981991069122093716327851480653957139131375219065302831176146904378984473824520290708541323862529641171395298042250060391639722765892272771115355237337828964102101079696582854006103819271229799703037128296788491484789042200437336351928854128277384927577437118388850272323371102295487227644870552896435667250859559718181962732045395333451118636442646156246389942677527988303015772753681050934570000358470106811590365430955912644219769204419403650168599043616685644540620532148709722800679274314529517662826009806029765510510406850522485121225804587316994288054167048295240828995269583576007139945150764057787480503540175573262787349883743348974586263188738355845966235964656725770059638738952333586013816747049149976329758572775669275027507151321536245486505560442784244129011028680930381363625874293427067267608120951588471374627959634366993822344200186139205224497860270118842526886088356616555468137144136775654707960639492571966665712938213810195516434635171752382234889235399797355002649151209887293912196134397480240061785081943617897150421253190332023215255973108369152186460734983759840917064460682159766555987341358672784844520818152740918396879680920562532966717286669875925114650014251796807847462940921285429269871950067064668647128299022865329529973126959710837906011219194173342098609365087408687936399872701539356332394258909138174285570805947820672670793533228193571276090900371875713179304249146574159344399033944995212829660954173419514304163600721293477255010732981435389518574944564000680511976724748719654294270930536090930997770703487623802873040064463026917998123724325360281712060061050876234521554357690190558074332868128904229499854682351822386314596724783264655740798786091986191906905741312810037101509109519571615734991147270445073347115425523062927220131199808526434461745716647390765509718748827092774427569619124062200458803619981677930573013650446898773021517834647615187654474113602475487695543801912249701266722642909962853847082087278282124617780872729339330349366312964748004042793001136895897513617833688622346011367197371596096539893749054576062192821257002329530684254779873863826025122816183710461292787802831460687076666251133884359308284189123945957435914347410227848577054342454487182803023443257012817287090325797308121530202331079005150421168581585992665455002321037096777723019394641040541132733892193055923119886860685040829392552922128431623833345176402010141655471019357081957809813561634104406054052689217740830127972093676706264222190429602760632457025242185675086069964145427830270464034536650618506564456039005152774565979203668994513392377207525249448107325936581381711525329170010598898684230394849654110534437346953957633945222295582521179647994800224642630043568806788535956904742263795206502512012664468214551466934393736718885443119327999241717611985256331557271502623406122425486759837154886220954746427406156501708006163048971739578966843990058968262159361905703045011129486802061121579612889483870511373391549534541971715164161212083492775482470223520219826008374186656453945393949345839695581729397870090863070133989691254415332572877084257943895764741299887392206257511412597780819331381115897140531951395482896764313115549069838371846950828907815937688677446754603932377440690306895740725400542923685330356127689995086542002988229967742950309412652054025923493098175099337133884245240839633386841803429010591177665274365040696257227853887610239596438011915486807964284045580471913480571356080590367319548901093742831572617113425957685040658090528410755436255508815961148356030592664477831179660717174351694142350776662244733200932083836013615505547891247600549640054059901208301644238646905007557695936357248887466570392681990361134068377064654428585393126981873720482589623352975285706588512287366203842563821073212168872416716949545311819601696408783357635751012578722305159452856421341292438254568461324770616916093719737626990236671595627443760364902724290201594521286090697035050278336484980929163666625598899071040747535380951171319543727675910493029093330173792901516026617999464359124456755945582666914923419994097911973190010817557213354141242620512473971782160656696551999112563159300116668819941125162427246544466265954354409816460553198579477137015163398798565817986609878150913293381584171873611053738248603106953702470243397466830784539805988969009737619731270417749171070574854589385270679525333740924430411044853536701095143354017637264123702947649075594401009659791936424247467149975172002986243927836409371834830445978671598158894930082210266690374801563301441121483501571896156867222239340732530346810579731408536627393211902193661516049415430990789525420136321406265565279871371199384261061143084558200682531574967415112094048669230075680881124654981075603462836189512791703456485379087265041879893269967232819597678988837375858279269638259921454034309415907895941972834732813367049067007622264600497391138110635626164270945555877698313853472300790560633287305915041987349931103579620106541065700087075534868713324352321658968589605033566564848499936247630033232898088053496393237946864806224119059106666029833714278816110160266317333972018972404154286153335002996938636973518674997649908668669322163028702055870622833284193170264961629429659913485684287165201308662471760429924548038612618729174639944551220023747425730236616495272370157562162798845522402947147324913954704257821783444710374456967210201897872386163480144305818838674628481646796867098842031625058795744680766424795674155436534450217510398238720773915524324605921882447004921847609459823384015462730255193765582391780901940273898227526411628676163776821062397792884180405583060607138901685622374320680592782177631071868799351398412391361949948637267209036361522143112896984866376402324245915908635159233471152914893636805056492929044387681758559499024186888216073530257903589687975537489153768087367991184259888974623524985310708216021779447680293772068188940528586182844535168837952816864964334684073820548886628918285949282625442217617371447149644304600193163193328432380002672598228339326526386511193780762625420237410757374212695257536327662947899049376307815484748542171692558144847242074806446109204276238749250715374857099371679817406179506768803539734474130515595890325322915229068602422997053718044734896518895722200336892467681795707721130465479048711333639403801587492755905402553094703752883707222839120190890011240934778961975174086641115089728522787911331691078034596327478252591425412896170634608754516595272607540971367880028435626079452035352765290878291312040141953559515160009090868456411664846531286652231706825210354925086581939434119092358178397335414238628215188853466196909382479292641433694760311054157831561915749080010731299982143888427121419039797779109549534695937703845896844949582620043663485344050759407106905040832067028222902323216922692823337683517356199723493207346549853342633657193615651623121916201126804649667100852419475679761245476990704041607073910514797625102218228019824964997306486904278118847368192594194562624800499105072477733409663653900562059489052131878145321765905832356997739929719705100749889213790183851907658168651757294655925478950974010179761211917141184698626296192623963769093679443423203130439209566709571722655165590916101315501416133681828024393910446055074274284375212708794928404922896494048480754859353009708936201532419782408302956555434771921177086592148319253891436870486979430983615943440861616175969490909250812762625978076826791728381779877352190723242580881866608668066002525931532044902594585844332388262693921980687090154932907803787808030280409586350259570384063424440030788050317946299051428018311698912920514227633917943360167911918287631177428879557299755589355229538593765273868461047634782862793984945697015146894101857839570618413430084781201167046912110912016821827627370725763723899664346127564629494314109497883181231933931507929785874578973519723131604376757207215606873253059184513276905066793321450866325585570297656114414745175255594077840031379814119434666613386192355896614823305472445736688182411665381031868840980679369618185536674260463068469984704417245364192740501819462885657992013420912980238817881217031402148606243041111219009195499085564672323295742968738437878349424295947940858494309479254884889787254324691197481643812459895010340597794868742655263048864843663188915937191472366031914987042085986643393264362022849702175451854120741996625205224517189899957566052214726636390677866517929902248990474942708631606072908467363274702715464020413243388100976031112084673623781100704866887343676660932805578503206248848537243284688617350292592224779307738734276712589041347580794686544632757205711318599826689751153049171860428759131647400785549166616486850864450591117602089936146970817996204489198651873419957937568867373965840923253990271311341269178391749426697826933973883591936465846714568737037945311998860139761591657570801438272567024844250241763428499320392957552714867514645114868088573070844608022522170365159120193696297920428746925245824906352642977441687932856268446436021117553590462948503682249151733813796810238624151043596894411653318540295815014825197422684671095016953188867033878053760399599363914276359490717002642006333165047740755067631710299126811333766284164568106937063455658549040616182293419057230067357234981320256896346234670261108194843772074603354687481050838964714373194881863743177594858480387916421824778723905675607227764193100467882040304885363089566722296420495419070335670638682547441158732519445731417153286761513241897335366280742933206443875638862831681084415120921687181615446380967748257083111593478841259604418024838172964522875186984091366521645433621505768382611661830433878014272407402318019154967976129188426495168160654520472440697184418375629261378347951582990920231822123515549224128119730193933169854732204879626256946405179606556014377813275320866178338140444229395688532785332994948057921128077701377475041047175570562633279517017955412020915552828443928311085675290602795952466129782584499413831876621632424528896814106042087190224381584962471559621852651966910766763051639137875989464536609891685853003732894546022411874748112688196837628675165317993523998039560260585554788852021767533519798487780925781664694109771249471092082989580341296632481737699930137239955855215586461239766709840671854061365529332930805812649140144340695677562289483309618783414308612931507106695356150479973204702097313327942411824761686190138179946211773920624846348583131931993811695796052117269899447012362461798815745869896699822950474730936302621148437563693501676624301943198946389133069792647760425367078213836050553839022435609297216251594222144200728400265158513212641403823199732944589383659885255682619232970926592983239988508964221578404949741738885354852047711943843696585374985315085913672374634448636322725519528572088678605104232077133402574087078583263014017059385916761774979734522044659956860994975827776529746956816725926195625880530979880671649338699067943646205703848372137760045769504392193696983440659618580194590235053086067980957171060781079255216796494886708978543010212366016083995377577520900393980295885914876503920681525235277645488077305299461172791846743184096060184580836523216117895087227499138596234267257418695519291351836660605784933350332261497817465574602287369783939796376380420207490871817683618180296582478975553520528276687682974730245596521448765839498627457036666355282843452747636185455883916563503244919389237912129762138591432534091191888440162836699857207012727562778682031320845107583149864959789146771687005508361787040227246480879685914502741552760584700208695827710355677810933420177619961941712872617855674916733514555830866970954014901331342866441637162163304878597344346433217938779750764371346418180451050553070428034452381215086663526056790022714323880256300947599999664119814997275599271977816377272805066542755634352533866189500868093006610510565039831546704311405036989004306770557546018140315486251516482717048710728733360052179181414112692429783171925969755883079423463392583744155277991135429170986524524823800047662869792894483980672655215952424600751230832879711991506337999882422458412625733242223228232320313903883135306847933197717962729615611146991115015889036740587920704895702505506199866511816113882289225011624917865284126749395680091703372566215806280677884709784553299488827157073695712660378413015990409078784127469655128830041655665615994366525517787364074155391407593835002488608425361699280808685879181288137378736184213398229056855035047189865640881582603481511146628535862375551645341538924842961489383942151636996067572239985136434043592969339461085712586388896442602907679348301869323774342337661077404353700619573202339578121996123447228213852956505169338283834009645455367319952865127302751460192631964259475014599658410389143375766182919062230306746484941003819326162427707227436520233006685725497391577801074741734049038265223962264291283336293529068636425878380848817098307571266261319266852710074891802656808377872234780910826711043710934795853272375989356886404890216364239577257074920275239170549899309621961603706911779612596564188372841680610129843481029181934922866743439952064677714897861519178727956586985738812904780161142108912890252242860079902484365835522363489928603913060339327143374520018784653412270097130974910199561382320719539939530962235386846921537370012683410870607303986066126800778923603620151745156711200960714909526078863846512779897399074816136485987846006170172327818080511243093834448613142424166735799624876684269679634370038311922992375960189809205930257233222149294023129466883928573075463074127212592860424584566799649380663891219595459360663983598962083917896104446633138121079259422010466043612924204211525995573843151744211038144617140029172642895888423952266591649031165766414159261483414953904038179782132025172631553422583445137610722293719977748757713674379456762455143900623293529160508855981332090170674797339739089093304281249843978740735371576760877606912213383409050913856572018500859401311454229586462454554256028454752292647480521685144804021798704000774033241546287613408197348531894194107960443105799602733335859160584680195230380163332889716499553906093717907107574102969862223226213726367763424604818902170833005132473525276736813654755997937012288391260196057117731681534330375175788123896841210783268945408569252981642359591398420652304153924178781144611136910061978626145650546051102244559179388113331155004866533421690593374810103795533406868797127969614327298348540111471106709962531592076993452159336557872544040842783398194878833329791008511153081119830129087949362205665914116844919487399345232544623808682890803554952348557282965173869621012357119151992742142008017397629010279804876078328433936048136622239372573674877244365669057959997696883111351933568426427782438298682751116098961424988603217159480364605259064067906167522456247165417261638632800265483421660042393137043437795744314023650961919062949653247772665921637022949968373094894651186403178673422873187434848756059894332285513434639133834197206437095469606608153008596524420915509592042817158821382374242331570434029523063983199176817646227937891107545268342819924836821986670043227157306992008504599175592185212116421355267824730561069409103714824532744627091302353371519810461850435876691398253538453575384096156670633211380279931436855658659030551466159455040322857240115114200994094517032113958014888413418757024201336890289783010427559418042844484769123615603353970695623727239597103492218335454613844922742119435340483232194561429747538283614740360872389957408519152589356374483797209662919604143992357735677277951425388262343066129600086807285236269892037744537326270825579236290047881760655358950107966374158482471302135079882787136686300839884121735865298464925768628251889218722890864119684755729424070502515787717644798705697650172691286112938789631943600991687464893013494239457986741325319707790361741170941818855490846459085230486634124101494157068606281561715653910865697167372560040252496484199340349095063830545161377629497546057635640933820615849080149168659861491999049533294867578068935737998938337481657267516722086161353061457647379921484137130287264169063130974195002387709592170882118777834054439957109724913360409769953327687556872448791561849844507821891493444752967345426967552854738460029524053600745401361621558265734818926764621645680927603739663266758879276306907536760817140663250104322198516007622856279103678539033737070401172439896820265896304178797022451689455449951390629969465650810577703965866356870559827056718908160191074679426789428539996281094254991745801951906116527075322469153962007449157927701020798116524185540623589372064419629522426913475067011773274793023872921578970712867837820023456742483302447408774458166691284132032852776316301390058193509496207770082773345546081054568538338533392493731902899965646526202141048720062402276159264682143108732201889103023836924345304093196927865995984890526567593015457871278866654089688575027402901493186390353277739144584432585003605975252062413844208609457558890246331875092994936873692224707837661390669345328588480748769374779086262702951168984621707694326435391869139527704060960255327737990140134926458297629266846744443699575651399178897083707824898779337706199728791216805273727860863857962970548659440971143704189953503290616455142215433834180562562333003991047937339848988320557633537095032542435870490891620936009759994620319846309400890205414284919061435124894453946178074307428663469835709118897210606085146469502048140833904163936661999604074948256126584789561580239609713478744842593987800527247806070869255901595871757480356948541344100573513991236632422781981176274282341949568171937894972153030507350142871333058647476750298453430706516429030007975712689687819102036235376102722288428215211985854594753593858968229891458666305394257350120112929457931166400485134501372926551223975749648007937342229168762993611230006884849429507939707003037811130528286243370734827372823280432376737811564253091203148466919562371377603662759713622184789648366203642190353044302981825754989887804076715509904770827144371645142489209378979880385751313079705390987082010872799107452501905128222618731473816094341940783922566337895524908734042973897748890742592570586067880289853201633417672331216035862633348713847065878172542668470201970199374441766149669265898527934910508825775509376213421832916430614531407927257552340080217076094588111029698839250715467893580200804162432015221011548057634499231129835389621602016410026522921928859445218769225855546794812534376301149742426822117645022179309294016418153668616265026983749444859676405689561417311062277825064558055345865779323962554768652424662660647142091803670463028453327672188305742631003532705209143743698378024909821967769624869413129521270764402970640215363470613774341045231994001440142673197003953841382984741366334794175807436373527022357729314960779543360153790415074979079150163397351199579478795449159926134100173662274848961750970307636918181228988495796565059885412186374957053593824805016786511706331693668123530019186335601624347581225331398907763916272053650779148857552873421479260748873242976542517860279209484335178429008355383217130823964967573159043805990550899482584031413630923906433434490274022809141987527190158236714364282020278308429799966135563088780579494795128520410450587561950143308952470046812962227864238346080345096284825704269980507985256029741828480090493263550009569740581715494279893725705781150980034010476722128798713493943539538863110129873970304026425408372692820474213971958338778081724985428265681275606939886066042573668144890609898372769627006435212605868069484209761835816852580487882702684909996210365319247410998630897485335435882112557405783662735244261735061340916876216649319184753534093266391624686588507705635134453917554391817813530528620766397302366442771316826435273784197582082555100650902719400995980688031284234837219645958230272380659639093889394531989966448260062123916986410460009059822416079368982317954483356366695445764825494427132239900499118677715274895548206483116425535098062413016635812356886391407623194904821040525416687567800721541337613254250241606637295195521693062175158622467492094510894494020288596487280137223537585096417388537264206129759714497310626088752311701503236829818953693448102800397342177580413958354487012305835453881070153081413459103409610501748641286298384255247442802357225597778475281793136089507171237637389884022288249345189550002751233699844467840890522149466206083101243541688388269621216981124991613726344024486446012051594099850681187370564423680316556019918769321574846586956976607534894402186500669696860465429134292622530556226632369870624589780295420269728849187911360709494378708897426668412764463854986770523909773002667175043563119617824794114390799335005110811153876877120568185574348736702102362591896149206012619028273116287635161169820475297611591058759287317919738129820332068392464912574044128526148425372946301855852497434026774072698979042190640229236834861282192391560923076422443304371548795073761647535493845768002115995607262817081749592247288463422546923959124667116741669559075208493354250275260140281644695871234585516386430064430367155182186182771207401215853860701525571974668879267404223891874827935342792932431779661199308902074990029167837791721194066582463123043484815143396887911576531422570985551227705840011482865120554791626243442995108995010186547662706262529622782430539615818440037503158408744770981450352801024644686568870041990889276434630595729597945380707688577311681899412668070479073595288693188216411453001465440047704063749664909279909054241918790086339656123510629098533728624105492826914262338051147829291446841193188325373719976450541990761374517362290941903898467925905501724044570381476484282868066207522632418759866480848695437186239004632947539712142771750912469550506565212907978968702590405473273024559814524478141185125936190159684068043283080796844765581024651285531481746104860183087961580520566387738171303047246965251880910148963563906578720341284876836075587242057806894162117778622118031397107757528983340577685147427236031488844041378937771521809857719354921055599994062406854076122073582146461114259475374610941689458590567465568803828140447444803531758087265499468788525077431790209389115506244349324490891507869574916512745696333460846049018553080541907258695841954560369300230056273287032788718631067580911574071319371771358484845837061355685087838257999296557682613526813022695464628036764708990437470223651562819374902112476513212200189065089655848059632423101552410214801565991086354764464109296156742294027545964797096087092779950157081454902867779936444252746327652178828301469880701973772077712301998217069482317130918289727757099750742980513261413508952245145878213380943988650339212315819282397744198264404307046913193760473336990567041756089283407218817418259987135114058699832157120871872697237128017896005503940193765885205144059340089777743670887561047788175486897872521787585500659812748987548927880661033289191847032162516118042874751951771149148130705071057058866808656849264084520693774681129846309336624917396952097656736738412278961939068339799125359602793538020801370010723123221036124805507622429238779273017468838626296724930194399312865522495337677666139765969047104848720239798024443850360709541082986952392331534387181862221935619804347896591979805447821190608944413404853478037245900101501550975392474945796791814982181402558400356781261519257937138264232615393880048210084018502091272730256243612699357622186171672308089922049426468926255374079646878688759226334294802778331633118385243831239834140517447501739199057724660404365033209783010679641241253483530730964140513321682561907785449904418332339735065779251837624463548417423655863079063344016963511196387558531695978486304561225478122504477336743831683923716844753471146675653934328785902582305438909993075951516177086652057042549152716125728367787837443323738751985274221632714287726925057575421845665894084849013642677851259786649137297677707434826331166180125592622908804706888844147267220836649209423690699179696977874601780648897508572573621856746923366307272255025549918987324550290172304506644287694103104841761577646410502783968719080210512213768882011862299625607951888060686395135932255157727748795099381012936361531050916678447269362615540886004090609519464523099582779501349536372418591736381190303873281492454772614292806452564127910965379475959358996618019306773286687680324719833154817924496689652370573099741938825381315568498567641530676557392658322018716129525018589916832421137446183025569357040621021255751680050317281847004958918782006294484156396712583599242479826898906029303211015931718793483506529773573144428742663553961012294722706810887609801988471297381037478436031644960448911254293801052557108878776385419404341631160113105025428856796633595452090627504151984657349455554786112473968357363284574196729021774454547127704612958419163096936290486648925745241205936911230783592336271795561763528027041174434653159258670813065387803237899508159660178681853012479102566013340407815758595022720207861469394687939907341134518075491342960796480666271488911674934039793409843011701925596237747837867199585239666557618509574456477848085807015698685892711476579401338880051354056269716512187963035460403128002591816317660833826245481542082686072897603435481038630071251041722988546659279083662182901471531147717898808260373742442832032409100860098502423274395493851257570839671629040014969126370373079047555218990464525503711522803040400786758560149489079446669399387921414143270475740751865945847258886571780702111120001524614918918081648801097705558715574869122166047256007228478185232800947895043974149210516160564178265106126489202338110899381732998111071948229348711068503513586422034890185375305626253884295527244628443372580366132414370960992458588906825664133857219455469643533792157436927396856106265945544265903890020917626564840054045963599697646179511648524418380305196048099240849459984119123352226753557680229809399086116953416330671618974126472667707576282091533561241882311226215746268627302194347783707192434551520351381606759527332819347915425964490751592606694143454460796991934283066311771594060699650598016804201649791510427848198396982855248720706672797377648750998551517575135023950647676150877355757433372324123426795628228487225522006038349621092484305029536062911531653194624143657303964336041829130012138201757072510685652649131165779949995427834738513076704823181189222100316860970514059645429167506581994947612463223694924751140776660963229569539778877970619758844916976900565560228106940456012404166248127472536101982692871089163899356481191844670097216891386146069073747136788230619002985696401192166704462917126039277914240052740839459704070674403060613033125115349342092133435656162992365708316294839058922489800528609090267743518244017389567023899295271989320925624650489887525854171595929589169224921088750266217515127725604353884638221565790888309686569073394934513197028612903146826846086344664240558510990709938295727355600977782185944879632885069584467177406459536422785246151952489153405404491924057467022103407003190596564726642412482418409158265451983893450725998679683920711633261700367239476647175446543958933297887864291363560405054779036108994693287133902704089721350877621251911808380305991089527307592312239282136197294517302805195079476750821236450965161897561002384884823895330951463205390975667062949796582832699470239613048463091671397552896783719570601641986288105625605359748527347382789482373277701406378398314108493624036326522026520368864639127103104563638130835630779695403850365295212538587883892008291818723136821478003976152022833412639606895352148867388752941117037951116241456927933735886337264524467934112648250952676041948722712939825751441036538849086531447520993357452753073096735133002791538393713984095903648925696130259591311558904321293408831682173069981378617114036510076235345234066806218629549403822857981654791625145931879758861956392265366354805247468884737169892234042300056031713288846690738706482475727453080989841933165389214003215664037407570438386757531327022031624183557985403743057420190033920307699984264065873733464789588192524840117069696714353696644699292431010820399087010781066341661628648688368428403614085347574770609181868368602872779137464876354339476451875305488111558996297271871771483001859840265589116349166057427560053340588465532049894027943523717664307694541146679095470840842281115883742434731490754969709873692660663758864401351530800198282347257627017070380699323422270566351409906304158221833840491448836665460910149137330241263198012296400332784265995638928609771028868719266979174596589356021433229406116879644574498982520170620963483322162433756228363751183563691524241853132753453451623351778558311412603316266653381670339865395470592269287702579030432031702661182354516209851015182555113414654951992395393187387035274874453541685337057000792647683277546833426668755755110723300604944520660387489275229586680442916405731216415803082033764936764702580287634599614317041941525179348244580535629744668789339450059688756404196782462951371428191634402043045095147510546191451032699566146364891934795843600846605275120055575981906121708549918373445475963540657712168759201130041288517497849143459591067431953775615538444441668586127561171253812740079663862659944839044809733829672663938497686349061924525765296378173087074376238034285362941530332660266728578847729260070248364625628617605122896124680633906082735001476259745402859712252184385267515733293115228979927651639176269817402435121495601685284239106714528470704693938177635729429015726559222255608023793404276270620488185702399841978999633103721143536256308818207057273152030944977609455171232329155946272741914552198100114818949424274162896877316405690622351285582061292534519735974428553584141973003173657852679959666012578640448080011626115617594680054538255116245655241809868177583845787809561552544872363280542819690735998018141878480346293910070527033963253890858109413355419287913745568916604824177809373649894458163303055002487584261869286089620657694082444022948318607504730398464917422938203839532199388364172118655844243206099110132266020887634222382506528824743990546469735724853726689240759172148873102312729300539654447772998115083729762834162223121324055945628147200665073289813924300915522448991808577486248217881973006991618418817570989689893446107243436802084965079057369421222989694378479702662286543639393156238982189653884031538887746204034946922287023823269065202693274059556325917023056248944576509937880706354940024916463569186996879240476452191540752432083321085835080137127809635237528552951862520139236692331262439252543634700181705279933020319594562070615976248843768998120269325589508498394886009527924625721742691858662312535599170014212602158490960956642109367181858774931580622300914182015519810557765733481001863169783716780273837279035524340314996977842482942812194148626505520787745299261525624088214055042653494997368511701386975985705415210656041967027219063112628806733704542387593885493380425812487864807199564412737775025581301441784828940034324155964468222983287318943804329992144370272029086282642277872388153384778035773332054391890968811589098428068855231730071667231160204076741471324150907734797733712721745579383293147801945888831946301834697544327704868520718557625161585709738983280419590408274422836920988306448763207315947542767935916753656134516242908865956061174461200735150848804421188872966545677688781578405983515459924292216805054154701526223541260005838550392662627756907550380278389307259456328971627361079482067207338465676768698653007338481592671150030658232273837498185904890952906984932383261592842239173923322012979676707411202898388931908725502908008185420552290542715027229346077890439126969097814796108151030996431166977584198265862233366145174280375661410016566045520802669429398824157476799834088465861529658358756427130982798218699930573667434629138744804645790304429354066664608614780181894341862259502665951604670026874002605586756322461784024037090713599288061772904885718669792887558562122864971261698529968218996169635126966435057430807009143903829536136142217495144161792866943045360572979854367633182662849212452898038666229046284734918096191555402122722029606650421549726610447143623217271081724441533476711704418380267541698074058957877754146263142331245047970208507558296406402247409550591887847213511445200643649277909220581598260483607165976965757873116473214165531697716174678884350767292560324142662829195650255566050693050882267928641412847116453557325650736662563723485856261212612102489646705941789946052739902975811133341053839513579534544958757496425152481271739175006338455983298115540624828631120230622259277474290289611139408138034372700699757241412732107318744578437939948744550603501861969977608844759994397300645356306383848709365491523793942423499795450966106863550119660999920344111845253471351235781118535550232115588822230564002942800701219535218382721482825334619814870443955903299849748781625937010752348323927445171305253467371258604876885433051589146736931782052995253373045268680197425185967871739868105097417155680176163681706080070323109517524579877475128573199343483145017116481899615410432108622955788780669794798192090432771935239785597615356302740273630001257928001627639326752403929849729408159890544014281130426318450191766812820077507023443137269945669843278744874386177156029105967668655020095570393110436240148063441852745227107303414573119811691085069396321058812394681478983040392007550236618323624225527719556781347055080283663922243745381070915749866889640000957959829565073463597408523075709828741270654685162131082434526536767329812022548510091665010369007464961845539737943767845194948253098047103441526559496094572531502994172041497085246790163309620499973395048964404257825793866534755638834985107736473976173640324319738682056030761944058841149060557623612575628638770264870069883235599947179638493215424500133672334813155978496223122473799485739761477723659942383345953704353893531885048491243360767597312408325582816892712695531338205961810152886254590612970177987772539495934408786261324077630892997321841349844189584629142040689619015584504235564793281783803741745958937099527176816367042795267359500313982560140784749139648857238937457200184448432514684010560418675594841032772315424977518013160135685030339222571605201984353500070397842793002249050489494307907495293417086723225688558158209650769536741095749590896624601700547290174759573489907667594338741690654135872461084563259024186818154222585121283707250024653464660808968064204305495705186829879015870533404242431641932940256907321561801665224437983138628977007870857319541861367542796079908115081976264903452469607385255592638790766955259838979612871505970394862986601250909329464580571800264236016472593737886298457477564444082056768216598430217728054782163680234541014786636678580386227486522435650501214287168690747184944726701322650212137842098155694636997396236084524103514625235628598435062566664995476382864957649986173487904251990916102320127309531566509968267041684718087402217674943972920836480529985487076020298497264386802535954677669433233414820128969570822008415897310708746983027973408552832541123644988555458452956498074795992557536770252370315734466991074046066330493214258648960806795272747098530110357491636397354978680836894572840133615637783817964359428597368077248012801088582992014110343321305584323900567676328285248006665954969635572987244212821475328281377658953405160106771880803589558257624980699460992043910006162388333664817970189080701840773129570850208051078205220556137171814274467207518748237900284429727738383812240627243484243044992957799030964493978891469585977618543228964154511441919048137465243371845750864489317814768399394974097725127457698392195368139077048387824510074017375665123366113308545734498359087095219826904653540070259097069524868456611497705809984706370434964066622090778652987067867091490367843181355070295547491228787644577920029754406815205658309543433853360543480969348527737509133074598616105173510318090555288872593327169606341730844104405608918459965047450752317197296302212426456704722454470814140529277431534469233279689411023736593662590212835456269744392061133034509755235673391377806766203394660791785359142870272530677013863440007067075741384480419052003086772971239522851235246454826396945226305639826134843528836256269743951253382441046882315496250663596981622938228794127633620873846747051830612606019892661075011762190663011908854464852258893813680015776898980817119157902751904829909875750286300293811758901028210650553871415504334383815102204271235140648840231191505637965175286787723116942001861671366390636640710952094312727593458460840967367906405356368085279492082169566598168461022533605954133227625388218232080915370157643170600119987216991272918490400321437407514816964966764424319497401751990965903161409292364815055511176271467045838754832854568874854822806352673327311729723069824080057274754383400839789719296361829751657418501638289633887914010590475161420218667600157654009581646268592911722378886065276277049087654299757059784553897549386840594875383047832946469680998274952027106860031595887884532107721104274872100894176334074513065443376079685379529217588049937017116790716881199992629616056243651858463572799903765501103646982473811011091615246432625164405837667418125819920438193445267976258022225528071911998186719034149948574616801428000525187756354715300196373369774577054150988728255605151382781043620439746517542799903502408940001230401014430199253183986443412404421440994814373095267303856699634459476554312298145766027346149094253917283332199571840282140493580823441219494526489448822481160976396815923210619539849420830034963813521443155325798722491781949723928102284742967113529993399319337046088953072131162637205471084159297542964665769990523003852943797296931813373223220934279571767728958060979457921951743582654589595222948535522526939885200257250697959694546294887341627361106228752242259592534470367761573850266440403344341842472176190552247024706612549585255201427939668965536637948203429666243797527524958018148051579998809026905293455175860301037128628518690875580767239845595073861417356603708976394327577697863518548405162367446669997575067567696503749296453315114592325240701928857236613447383223105290112052053243133470684144718989932087384989271630033250735982813996796088707953368110124790249677572696173848945359558006277309405876673570217013305697597450532356677112355908027934253588134605258172261384357932333983617170844682286434933292613802920860195963408897186704843899975326357787969134773144449004080206327450037031445126279688196266353915227704496827857797558048012370228719737820441637130482999285526711269923956178520807375279387081415863112343334189856394998936141598936952645269006044551294326889626674785588510156823645129133361310212127685224350999717351589972436031061943300929450805455046788874948066883048801931485920309873374359112017721845166772333090939940177823125801096387237292628171706734293780833866717105392279801336394548480449754733350514704854555661928830275478281501246972425440417056221121697745294445369989412399516143092576501855923851471890027595871658653555831615594546056014373767080396256404355095851362302682653679687860811337930396134012124557878677065478886820334623218742322867971997060713537512221503301673161445162766967953552730936240741656039226072033692136040504241353638133958496056746800100607127429142269522446770210002176328416279735855787807942048751826175412078115468470534366497779899617696093496456127016237624264975908382942528766665166601753996480572509940493558149624772498747177705564396219620277636347515919845809542205283030781698157283035338703334901396207693339141980714099485585859630315381632466490092415580437460212643633059506948102566867303711125546982820921135252208247905272948053783966873275013398353979159148917856815960221970660405844593594191212508335592015156512469166724847239485694728493755745273659804984956553522280215914326236208353762313927135194424173713676135049434735402985243647212406176184125248576435488251029312836130425443136993767907874034814814701558723719592579165215050433097008956428017623482679035516900004295619607275318858619227957602330932829734748453113819367851760393723383554206761685363025589067369854232097857381249383821957770245499717558327978991764998586035514109913526000838860205177340787788568364010530038066445172081689263468630954196067406999396795625324425455097095593931560588586329279129348086555126095564842374222679535760676516775677721915958697579534579406035614631749252431005720596557227583439818479751753992977155620543722705232480894230974473301997067614326020418117652030753956408789842903468926152867447464104511859455607874023220543395255449119929423066691090892363844696068422353108156102888133676155371292308570944487614784043167952385828935024966051775647437644672326163876129905504724264607170342857651026233880063177235674500261406620802939931485551605241924662821064434416775815827944607417213562750550653653354427314641839146231687543306370181789079826757448365894038868420492214319453121560848959474256319811288947960348952489825662160985586583600726400267700402470944101847244680456465389077827389166746620714275206412463441879480841745463978338423260767974780965861008909638854453013022440431290977530644304178565004469540995793865497960462695453341214457944707267090681781456426611686743375171919855352425222136627293055714310125071548545122060574029339222071164361888132809395382722180054240398289768232800753209026810384243799540890015340218350452573005910129564160942767465066386126124150457987080674166966876144700448183467240949114177477712458982981050182614423053912237578467563871683539416382289752751420228487044889444399311484111425238752933343352686044899364939952939714894227376024561621510245273965140129499491167696090993522224936281794884401764195856755496063319032383710412947913901786590420579511164557344186733697433521814081801764550276554155559843076166100562167915211412544635585674281533172611133035261099317881193641606899550317486707793851967751210306834768674590053382770686160091975981047985559133492353968083588201841742456562189436502924005785772121430594499226910064900275338704242485266956977326100559736953087367115185899657005394863064038459015969775815568489868867810841590268288481555830849895248195182368504878489632848457026231391518490716614799396751285144524669347280079385840457540145825684441262069209871766986836988399609772584910000349101013501573801903128876732635599714967629808680364146906673875934955243321279300863938636878368558387173411181318970536797266735909263809208861022192182358518081611612924939264129336761092020020629809372604054398709378335706739971588313696274467979919750155228612062659216365337152812955486936944782644494949766377683709896535059006967441778509863949432813951414351611799694750142962509870125713913169643955035154960792594562418381757202223187210538593536850916612683380976907848100323490431540018924418544849810921482471288785825469276058160256496088837622494395784542812567138111313130912280506160187217082591439096532569247280974697186724752248107064133629937899065123051719456117487616928385927467099407751515470583898826565567674305236315795073018609811231203541928641512911340588443345434827783109830579170102761105214938081993033084325154422336004126370562604443927337846243659277057673630375666965259682107183689369375742790913950767447315034151503891373040104802150527405664204831859535128890849684671725304535192933699739706179516500325838821053381483264209362251964818388487908734369337124368180273871464708478520147355368033611963237724386960774725312549657348485696532621218703839487713806688062539492878786663957014379377459911652988085871053280137554776882022630673142942015500911215446778688256399285502628869023619936685074329254128922895827845332974260202287542601860443253339823239726327282574375486323208185531522884831164858305916237572422031248596406216992293982116049337017933521649031350783546742929558410824528064357702334211716256737157200394148165126150690098546820981956155674106068199372113085042309674960537859627195997056996760736406659346136733381857004833530514360288294362983276455594526115381727741636786903689280006648834642522704319304279522192301488622921299488232828992763959831045251260486761401513466506943613793808599070736831407145306173584000072974139580778798905069725255180820654850482382136562175112028127708216340918740388489870885640361807799630429435843268838838640696722426226569612329913701791096467825728430491421519600912656704389095063093794506330061465144496383554402723344108704781297957504370569185737574841066793152258584053592453878298787820159210870724102886831065026783014481087995775283055632785947787427689476949161336332979766218811034815950663159150951487254798887552831883553199659955403981477904055500150859111904507830763087578689233171927016537015574249078710272063958045035546452791962020142760866589442560062266787942717954081611093969441088649777926797515758092988960122728187393792390769855090807685339137074825207281808005797101699021093738894281958615003700811874208338112747049218100621732139583737572013258490316396580399452921897428098372521426252341650359455465458831182155635471654734703438635939792038150132221407339714484320658185459469826413647969829860531932662058689870046785936350953132780209947102142321061885134960877309856231236509711594552655861397241652420182540553875893663715601550698007986350872362643377240962572887144009360403946524366053916015454807434292415783593079912205788392266873510908722115273205431215815287587024226728115381366245373543661487851867077253053270639184865889168500621402444793947930587615965814792023625172538521501424478811866035302132587907134909668923512072577238897243964745542151769220366100936945814261750858392163217988606847574053416129671862273917493569309011464125129095762294637488788459380180355173204701303099500934578404293744199923632207268746369936909641316769026854821777032864427070038759187037803433535183551811864068157479129315831948011573291460523168370843932518268425240399736389495392874531614106321832541069626117613650188774305181583867690189553254902169999428975997425154108154936001932679113663316425293841859814596025029768409317566887545988651230435344607233534892689807758421940322465465254185276189559532615080332165401485081059826556656364864364815636147450244206029450156845621313472284968429362625194306645962694213368031423853997081682592514933566595055414929061661828109124279481234685687536068659570489371430636075015839442916712711974365394911394728589987013724035174433933044983066383454762983116407441479295536209667257362947382879792753075631567805310406521711561564900092234478290848715084876653469572424944526332314336453718845759889161909777586211499870404646731508629306054038799378681655562086701836952334893934953526433688403458827420958102610072896751036936004385984647613184508953204243889115852916428084525624915383993690689840924181106676017791510762709033386630362990104084910762509214689907518120663411341572007725683667341359241044358567463825542479589592803262446753019272862737643205588924185336981610135246466037054163903276082206257109793969267946086328627828520164879512810880804897476717367230426147322838174860734341149324116828768935821690686730368556814193658658728311233413060762114181235877775788531275229971360680094124895914963356293545724646528093260207143234233250563391363623262938676947460689525617933915457833209120660528579004855870625765341596112634539260582003595731307821225665432158066440169391412277487848207960122120223079487875824460843769273569552005212593264881784749060773630352603697944443415439106996677806759694977057957465285382145193623235016601961558430903598254331793434030045429977460213084219220715109412316599122880262361407253862443214390463321023436997886481419491432095470208670162848628737496090145679527597995487659289257721361506801549161569377933528986407337003311695801441857953728160457199406993639645395415282904000035469313036198881576579092114283433391692827612344282347230519823334604585675678233598459619758715779193840385792271706987165799328147142551722539506585868416715708183323786520311235239364846341478067126726966782271815159189598912015376694922754943988871409060827305470341489053935027065035961139590634185500898567543600906996040376661367818688815341815822682956702172061853609845822266695502706634766061165794873582957535896391496390227028243214917810959406789581951050065225039507757298585662069875438903881843730924344835133515560065774081082205868778373903860413890490186666734712347545549614078707792271974370334202298889737810968826923076675002318679571744101535581772466812549392407355211420964626283493082667583437973949358086821551485274399579958717319640162833302387608746341327222340694054740267231082804228712782495521307084568549162184180025173663644590709036995894576493661691872685249000367445157731544625786396419052585167866350348249221171702258742604198046974236077487072660588789857753310012199079190172753317094911125091328317951705691231421836909802729737403068898292637526925169190569605139410651579620594471516262474298669191557039235426854421298589352017156625778684574828662274422235282526084296799032807809039674622670427729937104687474674669046208841803501516881026597052809208223741221357793657971449142952125585954560105357462747611347147044855187097598702943840626012732954103458114778135855765057671620343893101221075979859408737237712769134955933507793664994906532525912573438755336178694725633245210255464898537721456719661000947203005833606864003160934445930890435592491885650697883685236351919418688938723543014833312943923591462784699072201447607252242349320272739936952018690277238478931128332565054189214179306824053958932854814622145622062997560587266384246087572351923449088825943422874804936688791689042767822083506231574971032410111077973423583129944413831551226036745931629005628507885581628858543007814720390341440487209742890065523965392147481985294136742069822106781168685906898996102744980879702445403089242378049308002822629299556428242330157114318912461832590206758286520087103209650246388734293640002071555692580905911126566557318412289476174181402712302452722307340831682012096245108674628041968515620201674230267994086334712334708261171331690328778977760687609461156984168095447742140167713652696069415826189830751202887124164055726337797910916035138774629599342946049329376500577577345843927119171579530055258203698971283802121657808157047710901087761847360829143644373251639109161622761560922897217692072862036583182344125100622837468632373523166956488794048555364457059419488465418617766321467069091565318797631270734490998862091411629077230507988903759611490060266224354730796837645727588114516524890114646406548615521725768381999797882775396504492223320471649695893328316150052653951153345491814493478730503550543449217831448890647844217954252020540569069267216015198361229718849820830107659625438372800870116064934652168180974741939045001887273205452324949746056852626800020568745205784489747354975490284569084195136945643459124443671427843748042530356860379033898315225486837993176260529215324798682711944983230126633069062474169025221681306141006030860275603106038820512133883483753820945057706488037434405279826321100216914438035091906899549133349346345222894966514758865869909017479083188534671522156513591354967915582098125370231225452491899968347439883614235726430067892541597525185864408715810738409664991368894785546250931868945433640314278464952553683238246014052558855237251076773159486030249373672392233107839061580771030876137445204865510479246563844469353661771158790486088932132353541261420806707846814299120252237164508168369574323482982540075933274453701405211147059975986027309175940038805920706795493459060312240357278230390892178485277321703966582873635770188126346032958581128222570168553883113903068059338537169820336653959503425070669522839597171934082784935075492860604476889044274274975577436664719888605222529809482980240843110161275353643464456531425024917990588117769986632075845537723210495699353515456541858191337124130124730557694972775518586541232235887904116973967485352550972082520054971495176580079020207964710349151964943980567863861405806072193716659195902237830965020417528816429542668287499812710176209408613582138399240081162741514591199744987822255255635179505727380077144688734302895307732423534391058014817406132203747395787656689355815402963288874225158724657810136018029470308689722703103425421690197574818047326169634220016806143856517060474941838622379277485770242366746857350416463964569468761577675749412727148716526435468708073037349273476429733235404578228142489405397719200289631277614665498345102186219246653710193091758930520466922060456772831954347655564284594663091071936626399082412019616572615010974675522116818593743427322026522253803367812506677135108154617667967240208386754147699945117438772414138337480774924400944077236032284047056080122261137654360712580022652166179826060638998899046116487455207555937436921228234362538336832993970424844425070620450120231166579020709226819326574167050486917024523027244030754214325901277830466327410379098913521466279042855950313958073154622448579600368562919179646160068083680235902885340045432212637434168071242554853486903232039075731856383497161585124315985049366254533007727693919609319962497866634778378981969635149415957826960398649311932546129991545532538757993642720474191548301055915693264367134011978958082426538490332135406179313302249119382748982946647087230588017111804359050937452054301690755174103035818233327772290409898965989518499499294717201273554551193773261644278999098388261681096619993064845367393229051734665341189836222011511069315899812236205428728997613138480932904781527565464919893120880815268958341742484004095657945841868596246801026387750240600553513241267131750602189781068832049008011962611970914718303030099345164872461600148447000049796004962687709233140771811128123227232824515100335877102629273282365186418071783831705513632021293457151855764983664915967039987503186811495244059500707775392919188915194403630855591367231881414913047533079040289028041153027822251061975678958451326687094744630433231253976178959260786596310552004398584555286832756453239151489327094878395513928940715730124081608431956697498971382395698571904274586870227370874857078523385357360799331056940852518570809038237925017749014704732317472710548619223674239737686312249623667152985803675595276945240422204706163171273408931080756978901347358869350956584435693212685204771624481086407424761456656982792554469636837131962615758577355033470332108139201646309658482058168846994689555726125023767756893148037042239904888410873275893780989298839317611345646641981632340898405058256233029225201395863689268586024087869571027422899972786141584894309088388780493437860221397230997828737257433116392937399961773115198240408235781614653544504112764233603009517450189704916941244606670784347140106125777221326745860649595403800488945965884776153906718722102200254304900185687555654747421281194434810885596997515256923748830196499655434042768196768117989366659212561740877536305759808377383613709263173484383265817567759279802983540266883597992127068897525719209013313505567235680626786214577142262078974136900881749430291258370292843840334529621132651071686284252421635308685556712899239412890625040124343249895761557259020674697127230673803263682357211856933807277323237387460348134667289739316698821900663704795271220112484620635565638757207863317080706840054401160404502976336885499293281141158626733446329871651048251667343865742628055206194930393136474182958995809696240308669298606720249381851650814886790355100308029793139262148255190084392521127520189845740429970985560203160404542584860362524386903428175728949215867762810641488130637515858163343292252787648530234370210084971969753950472535783060792559344009490835984952331090637670314834865950258380607666198736989729299265513828442651805947562369714591302272379624593122050659972070537743329628580856516823375690865175161978899286899844538340262615577156104912838871227781987537592402956874769339436706268748608812963567383156941711859700501597897817362031223822588498567445468485286337934998696013259991604001622458003486986933134324634386482710841680983273579103977440005065271961499614254387855205423901348524349336622779979043795573267732773209057452726062094607164118596887657366637748299074994331379084664122902630840461841732754012616194365764973780543250727366207965127019028932531196621798383597094190294041649785505526799041724618162365895739192102679974882274959883462241250145047427749855837555268728144065955104220802187570738001234762396824740377833013069639477441248576266154164716984772585235015388109313921252485089436416761241096692290896620546731731989823768858183911304368549128859195586223040836598130805190508209608878073467589575461637010901018566492777750901890584381672846896896313952678986061249937347964834056161945406276089626722755008488403341891980485682758029658589339997027599208246509438424205334350275380976608162552092839118745661975653395726608206257060766426262641517013412062396873486530992295469337074395543067564147106514277259292197723082999884198855012741784421382294865828272306644755346072978093484516081758424177648349834932093300200209931109391178990808544223528452343731105977872550801834428322456001106557066216671683989235813544143514020151495780866642266047209262758221822801474634933924205136351157869857014770620663109530593497640275797259515054972826304358495249876345943099452817373549499325170370697513154508934475654505682273048301074041014923476945354619256200940881864094142004698454763307901437623031382187615331476674371312814346743778617847414819941899858560026418092621394287293978849213535508332209780824576086170066702688715561677220554598255838462358777810900076378706793743663221680974352634650028228006728213084836037258117290494804555345895241659256242581145068926166179315136663542013563459892452776029517671681363608495433980522411989226956397659428026090572117143530595222062660246586088180929888211870706324838976440367932930509274893908129241651560029683686168922688334664383806681291850145655219647131868825809009941009037549945265544086763948155525534228226895941044968801259810263948598288925793679379503567788867613997234350456979585579095320308083396684879701659071913263489185776944575608478101108038439972902021771220816249154245030761673289704176974259301796852204789461675511549226440845178271757779190713081441240997842659950437744593690763929107230534795155737532266047511467358499822705405496105550013465836266158282020167598610941622478251617463325271769441958138318871744795494861209936778619802096704455105492208397212617876171196811763859382173396536337407154369450428394883362084427040872039215775329037241227965762932715674575297393470050328792360498953464098619709763051238705277170177355376294135978215188312232681414017751747617237637146413842081937284552140282049508384484226717662977054156451913741132079780541455562721230906142570126339945348014054898099773153718942409146631093935487473583169964948315780066111565581336769653204851642380724271522748658823224061197229913591270570097988528991245012660560174195221466652359086948520021084456782925883629172601097760296060639472949156227171823115107171822819975598491964311539155051128280067850136371441184356396834640657364238773398767784511392076364986360331306572272579340730345832892171317901225435909266612041845786339466001264448362979039282399263038129715305255655395131770934144216481216125784119109204163829608671272423870480662957484030922841501258918782757275839473961457999129724711748504576427705401275005827983476460799565568214621078124418666278780903825673266549842247766129960880340927447235141028853830824674100193913877541625512027795932128682885240428124923917933379013692137040977961083449938478944031922056265277032897644633230845769872202622668369399213662031311621538514852209114911645151460924556484431809447666194609409291364693621370770192001023588993177215093297950286378942431804446189719094852237146637056220614045108787558684948564662340125545455229127979678799396232752958737908980252093021656498865968780643870512029191947888765734364157279512177366192834164165739455466219113248560101920608672503549673964380310999373759414099793305696952005397932095639353694109389070302198684901470676831969985150616453217243531903689017326759839242150602119646166377520213244921918225109644084201857474842072324906424053604922632424869119600549878606319380246239204168878732922157457646882284839054076663825381435486377023111445147469927955123573345665802690019937347515707017012399806326032647061946316458686051047123278854466635617978766819232931438289411588395728567970046697908195564876383540227497111474218731163593902034870533424270909692708284651573586005021758847959741444411717649732570462983040204394756575659085315291897740809103940744304267613395614226009219321244598937594986873444271450652105522603845471164457636784665554111413680264010430443277278052196595919164609200054726550166409687492442486739536323772656730104993154340467296366175158304933316774549622140084305513260648512758534066877405921853401419325073526021342449586387772291336219696593154783517461806371294637226555761522421738510566690566226518971790845662062821834276217915480272794909882872530721837402629044872008408985735301150546052247742551116034335142507274196689719529137991984622826879397646611928701128563180821339278324545441953830503847829624054633404610103775256021444035756614437886781487413474412249624223791575147235325174302425256967066041288742552184195137309666805547402191396711638453531199575642458040483920346312162314917421536037941862275220756831352482930266176356197527803241930877303882415525476123376679694549535844329207991488804499951353083751384686903256845269325479204725225599846753154332231710628965916390921260364024079172662764610295945901487516122033987078958801982418985819214025062825567157897380902539578542484375068865124030821197514794396410553859298286894128343163717116851255609134599058140657206945199164655852566994680598383742826235637704582901142404438517354815342182070585185777226965780959026278918602713087738351421636312586560533058091934514444906671563565579699631994179385118645537022347641737682398627040406453124608378166328514181714360735222739797925271508106714204925812724308558337105686522782845846995351858173905264147204234023462933870335811942162545050605327748009893567725918678690805052678451375970849847325692317363309014598696040845400010494410552400376259778203469469517408010591302148757649620906739348464463389934547056772703864795357377716427892453923885013626052554331037131493584481303306749523675982552823665147959632095415636136388510272340765450981561172476031986726926899621407715109558196509469273537862781490982184431118890277205073932658718171642147885225078942113560418269505018203857554061539503551703850299418915467638873434110107565973161922287147355259513619268934486390230314589690233425669413235730402003697589702138172513033648559633309642669583393619874428181547616985201558732968251930048579239378387835586139075085261017821961231606381128748261233838575328293096483990585706528120375521052188781227899989247611860267381289230408137028224816077388343532459200977986369960872157523561538426685535638814765753225819257963586307670047571516816206161554943510446215444627659202117649888433657228124758359577497474615946015963708299563394058605037180137755350702438497421747971241385254254705558382577191184196844425290829629939145067865062398740924516998202800170770153795403258108944254354095803520668044793366233711169666144161376093793206596512400418679476045186063799490403552491021190700081711789230915209925645471726855275041873474548747624378314123300833537666753072317531953293293350995571263548366355367743264807735810038897747702984889003953806595199330367306075694836988450746234005333021725327893182021538737391071119398965422892333539924946369796385547302306827103004588085735187980911919930289905599185241154397447957560056738651916680619636377723600760135856070933983407654727028649923501336453165054372555738487490902788357712759380109655051427017155633890766785027561269627004643473187615399451219721369051251262749671266212191764704093081712514297448384950615801527570134852297811117203113736088386297409852749572350589970892264133119169883263090065441352977345822519380758049515835343955125062672923417672929156751228881594789989823499042249676620585283181900295885353853192266111523635023639531781689044134989236583404629147752856098786375823525470649307043109280057327710651451691874224361739617590973221407411806302265846829928644418953828687633123964617187182273978353826372448983706688087379993807902412358485463451573710333101155362320831518073118438311765546532009623167588661643716713782304451838789057454079121236704458682868783246345488305674330961578251889791524892204893103622716751949802769048619391950216117802394482206251431867400892730007288331860547934976866572381915118166676916143385482330570122175587822878067256392833039067183395468626980097173866943733001238207083528275494109779493080178209967948137432515536333868053874528349105485227009632721598215977659195254760780253563506392727604064237310299950258309299021009794251990429014152015271813649936916494971447811080007399674132402309205675423118617409491296151582804914398187859494053994528362210161214720959426275436323935061178788944945889987674442680281658087645357293826081805718412742921447335589448617719096666155915320180109377281362523398968741872039843375313149303187078363311322883155865839257881588928232403473392071331059018114206947288153210878124378692302821104728764044424445578372196687424895471235874108319226602795609850126605053892059380325878725307727344359876733571782731924188955176699173500080547698376723478842052107558813988302755756984472752820140475399588365585736549362777699321106559469742747020581334722781149375868004701673521318866519864436088280663088363865429233505438973895252907689876581481970776910070865031660871959606303121396672612007670100809614861117037800215204694498788756098169761783738667334174578488303216497405006974208427582865279940325966627848352784237093625827910758381230730986492810495561175270903761698192104657777530389938199428873649227111511518436901271254559341790983546491988515631906485022516065407940123993043047206706874129945788091027393176107482398953908919274226422980826861558661674741249714267838629516892058844841336078140310352911385203976408082502471029726759310768010126848298703957519561584906535793386704966117699463455330063004841502065545254373081543195264392747638567194795329803312627113785034401548909248498354348519410267295790002804191602976731876839178451481482087529214223486014308706743439651347305935813756136158482328745034509872518037297897384442466069380839336997740504741177928923493583814142550066473273475782395567987909542173338508141300905296294618483520081125753133383086675627957153114748897405945497868085838523842151873725285857745687940648762389174979186779822107401989947563264893443537900458297769952366819391087508098212234144138889630870045599982505792111567675912711113703648793167140731319958135597289867519461209794214909361478583028259870801334974722317060677113361797738438278777455820919625588274672566887594841121466141883571262325403218222632289532131610063913111545254720013258608634018757757738614544571455544640652112849030176616764141070788652078857750865149351803483493995746017874728106991020141604928302745099664902473646451022938771373629456283782625806706879840352655383448549179805866037092334039207026446959134807868991244844466550633493751546235572791727532753681290871209015833767382272267581567865018342318341050544387797450584653595960046078122101561246623599017794133837931873706541393870769115742800365013246965464877677067846570043208852121400676256347736993357039985594643620135124204865079876658643882543240197278348756558599257099104743054578310148785938622126425634873824473843833858186594925908613766724386786919709211061401742383658780152386418130680523057184363386605883631273011287027133955225913862435695413659761740199166524900671990534550710065842920293963712339888102606552667070249583435729697465515179664828483208306492672226473370544359987173516178943506560115705700676624182002531049569853999614788665580522736595904040163812180967957095558883815346124277221938045204925324920324092784227022650575019435344645494053748918652944213489790132098893815920375218671891933393604957445933936408642168055520492755371895771136015967615900656341284987233445413447312671286270383040330826159649977571171957134172591050334877506879735627017690625139877556652939755754283226029759822911831740334286351244339178402034573208500754382714547379412314879080867730652586022337487957606672633286265444717715616030759377857330230841073216347734546665911874799492434678077687522469790069788793845290161377923738155572548620007393104688813105959023186102880884928368923654652798959430600773264383512000065331173537320719014840029800415399125688710822001056062045788549614918507449038358929500524656954922070097184815815001210332898899685947056576242679028306956155870615899091615548589770531364926109308628480848172696804246666279533184113262369728099873407125364180668937235106290081405068264927886552878991961059979173669046745031811814660695113882358025878960789150929705248626996980906397266979491781841467658273013449166983225629987414907898674424079010292208667767535061268945853858820450136001905912369716996076663315598463510496572992052532182565047439516983534871869841235695562106720145586655957428334945661647454788250137311050247712464376192712712929769862279605289035195219226365471261330236406583082344080417159114614374254593682087265155755621940699564538266822537386497464107664188424409450884305916506234321727242943801418977029094039705699540344407741237363664723494698682659843830686168544184039052590201035295290087300135104236164498946151800102092049591385336005539736619898167763630704457818703812394717094351395135763267033475160568274340171125372883067572955845121757324382319488413963790642598850606988883107369913989986627840560460068168296810932344000511472916442640916804821405355357605186653549033074381993078238647888820875388154242766841463865112355982376846035234769056186151778622203251370201705275497353369558708445021539962600797200727756572640976239443043848257618035410063148292900868703450892421338231475973712744598394648090830807799959173880689747621686586589122426086601635663802918893739651975104425015054927637217683605356994873894971845805688123272688177424053496673160317960571138276658907541413222921229687515761095196413938490832135085793638507044140990501141338808821292773890851752293866412369637317911873369969509261625123112315114655373419824132126242695000664412663976669027209862923822811859885467787005030683837896805215605073788008637106711088055488340774206494044924383984025383290915503243001775714399994313002557965119104847575967426184141189691941828318410048928618179052524950668986779585189702219481087205359928519238498157623760830224373048360790419226053968276847150156760165700807153310821964443933630853472646815194687983646613318962877995641653539950857571614088755608087226503118112514791952915392195704369146789685468516838071322710214134487736347925752116199430998078897706453762907946969133054228320616018105123639935866454851132481529682003350464487081217756186660840103107636244123846396872343025152337384629040276209879371070219710065078923728932121223430531838207527122880055808652066521858137618866176732566295900708556827016713057419620003672565650318912563496311350602123339511000001771869331693759633247353293163706657708546843278728880160219643286290954194312090137166578040146624321830110562507454191787851919912531712200950530826623130437220947988009097192011350511440783099148828546111699935603324650731693176015544889534752284776754027394593519071081215410805469502314605012539042871929297934240461660368137388130300211671727290630498932334368946602250733577487384453568441839066179815357382879028508899345334972958208887175277428737130300003528982761257108284137207647517430942989643258138910909336384597089215383293257990732269646178253023546115888344783534414524544926607380459848314195295697364995220271416223798398986447495520887914422607706333540304627056014336058418101141345357171658451999999996271100121312102949455474111690179199059740564282434340816263418713869655899261961750570034299604192043091637794023699610662754059982190838076752153745873034142401319425652957422452769428289449513382749804265004471217292609585248299871194776429746031623314465884469657695901129528864383085415089540373526734217809670857944927042584912891552055694669195382621326077383470167054773228513312098485834886682011512041001324293068110218950680659192403800114533408618100889531305894731930516896974448713274852954168216206220207157715936193045553550839297021727138324293668749107945048797241623212916314241178377984408291565884768285062900131072711470027933791618223414874979064207326551718183227504242450603121015661357541039664535757584304714579070489344328952772781141890289666996883590706109786737635447226600919617108415899680194962969259573825798597896505173826894803650215982750517600618173005485881950131624835834586469844398411678143997592737862742722099417800921876502145929351759521161005589362144890163978394309737161164088076436789804199993911633191221955362281973172498041852451454399234050074486373624089068365927910993148857016669960029884474383097215716049788357739709512438236355272996413633330883719180548742673937381728524076328195222001613859688693149918644330047406979833194120315733900161265655659530954480035879080802545044787404002572656214787469392250572145241240624244648017585016641778932280360852069793176228387956918409255319886799392813676191559092585810357925276799376640207235561684009694866638947033663658231414883103280530405025175862852751527737979915933290288598442839845283297254082646748856295824590488748050939763512943310404753562415788184749751692480174909180963193101547873915494723435774726012627878553303008800910237549711287022306661925411772719705896995503580831558491155697947430124411885096758695045973703234974472133591107897097733798274500253212529670308135312216640594813940232952475754412762522973612192325588117707581093528457975873488199658150372342709863983221559245382785970316976947382420970198724250136223434501079445237912812787325517129306253576148469838206559609859721725900967193324978812637946347528773550872198401049625224247176426383822821152931604757512767128379985234582903205135850828331169986652501334341797117317717434953888050139882654570675338922306355584978119868585205562206942164067142918745157305173983623678370876715749227772715613546154837341080590138290775129428147142725361940147786061131658404296011508685011935838920396940589470690947803211994329947342653419897812741962418541033468250959424651170164441951394354751500193892691604607966638182680670423332486242447508849826708293046053668458038391269195372470728072885271106598947351987968602735271639545150566458235974183292749121517780054186426720971156241943546795343667598326662840170573101093307764750463176206000425621091089957832307872395763926314946104515744542069887465910445192395134442372589117373349058776813330982494772068786317469781667298159377440527249293192154830200375847735212571264289396489367159786236021173658312927023519790869704929408125622762898651019423977808685658667165949272360106824577863911364643166827844826099966508609339167260998442337326840961770248471333042261117186885756753372382903644796643572909413191469446549345417653577770567195674612005754531888359622465387754029438167182143236558745330475555905060250271678538436067867215988601359551696549403100340898789342003668793217417698496114404401654944917697390433598138329439403542395634829223893077793487911769345452863604485719107636013439087749144035028603345909088743341189263440378388543458704751585137668426915249113654695343059496886852381310110970314783190810796155652446979583742621639954193125029351576285985836372063444462019080127112080826349042583642982859544166289835041013516362408151647291950530818184570151996316729918450603429036493766072109527815962835931081918312614393296885772231541262552631189806789902478269035153551086073840484490346636486244082317083564093753546312417792247423228292176961126698008253721205675443041060366337442784553666356279464753120934351256111942639515162611037248285057121585036655526426826452646064331833688185328844266618698966336932492242864082509025664586945887598122222438931980257898212898749778798293586024340746660847938820868663871062952745310110132410955343153147357801847272693357818124427185964823320802667572199725824383429630493093489054713780284581950588742746363691252733988377047882769713589327348031982713915924091974252774451348917795070966261106154116236078803046718234770380778918768444717397451047997992310613598473216022314730401884563549083842016183310527558917169441605859383622655447544640595737230466982601944360144986107720173276132446336394321910289624196639564212408456081256179789774673177143647999967804762651254549783539174573333357675378411178870203449425727825665010228884484051308933143883064808407982670155309041326478471633308017966460559093211804079236142957605111750772287730163090408339188609607134382172664500588125757852230609870346501013858703356614192727594518571131745322322022370754479721220269635239274357313900907170705438781019266454851197222788850640381508740605977763049745724318966356632786764278123027941897835084468627331462844709995322228080647901577363632740522638551199028059668511596445238604881600818631525186568124786603068519698377611029686620330796948396302962760242964947939751375375991275690174348620944871802217590924642745521916074153803145115265320632896920993623374627125784047165297045646015220624205070118011992639161961897701688771815293665014724072444878889135327830487033770112728913327871927461912428059877201513922356952085141715571237787647000562435103837574661443523988216561295236768589766360119582719963451138357153364467446718206953025746367645623860878636819758931165454704448271019408760878028176616242352236248771279464947526039030010311399116791016015346654728550993586399976352008737217701741274131501666685299456795303102003472148186593949144483353138103767047582893188330470024292235613053085097401382049892318070966441398919479821753050281686281215653052605085750604038321873944152121301325644548519843053924179714001414372797589388302471911179520299541832559763787716233827112772062878280232360456774619756223062711643236289263525769856531094926830255697562555408025122276617427763946203054563943407480688072382087179706150907559729304442570516062260374469708376706510370126895190251009049603716381357312086265230508350370548101146425286851624723006961119882736841667862885487489987399082108685123525049428451534252206144507794283479331231595662044729130466400683437978419659668690634232280681649603989678803646525034209265366421811320734448501509423922427572155214768082980360001428210482295928550707009648945590062496188128564342813242674871611207035438659716500183088710782463472421802654067841227538405885124724024219937225368563197215013517179705092361840023979298812082558135110644888895764749735402913953605196866913446218357089812102989276083181884820034762447299716188136143335659622328184297421325078725068513802808768146026079884054095833961146375584468200694459095664735225551193874352242804569571638376074041017282853612763770003283032649837066231401228726566468205161898241998375132205510618737747123897324278484909824167426121203364237866201467024694346057345541401042700479457655118817784892440056736564626220752253244778889975301841555863499955804631635272732859582878607510228933983987393285986879997177705193676006151828029967097682989357022918136805351014630916549430951745067067859122355487310315709997778015675861821380160642097946689528724142610933059175283719275165506736212821546954175295584320942042324809816424058787693711786940425190896928891262983204241821815448346541250207163290131676206033515362745979446128187713496259192713669071720152096838473620972508402001980272396827736271884244278383414161747255656285626236645389639063723469334600441783103088124209303667450368621378529999415250928319836430479251925651675482484988526833063600233074311609672802375824461803646021551643751494324855295804504432480278283216671089950331274293268547908698097609530492948772938692526891347166637836111078265177316853737641132423589002171569211242840067281027766466611320431144016906001410083986320261405417010770369761150517375842483786145134346740873579471140223828952419286625258353298953124316447718764949194289634410343856011807959653506435158921677832660646440363222452516421311985643424586007063101320566362488931176597655435038145167294624719968896086250266649957664091357347716216081899933210443631192843087576933810602398160902920721974282644850209288798204975990723132837982660444606659730076793666916370964666197217388421611202283968650522124748732092257697153909803845790935227687454380816348940059085998573009819562494349194655016714639060902411341106452150683712308727191039362629335356490784373831942635342861628305828354240331108686035172470819793713342521039834250001208735151717245916357179067257961560642831563092932525725393384418020813927955259195141815739127801744014393667976520511831834853421953300539439901246448834874769404722517013491228584685708377739229252983822724350829530479125516688583173069113695682272771199332553756492579241669538801120516598603229956143330074312775185816407580557091428370547397210705976354119416335371733177016449302024554564524808249135092577759231326850345806046414101648110026205242772773648445339694966768988908383916770671416877767986993781371994578773036948833848328353883745103829981747564306452634655662370714113591766518367444319636453330923105517955525649892703359718118005781447399265448776658117383167285973449501627304178122503412223499256161182583822977205719952459014948456124448934025277350600325887648982477271605057891243737846343701598443785811201721060791558143227073060107849387753065539030581771201795641936572240033581129025934822522832416741915895846321785151334801635788292247558113807243604757314211067874427786990982344590543590532802553737385495444056395265994271864978450139270479820202022043429434668489634816127978778758453050360357353751018648070091001827186585032860641473981865150648137351388980365896506117176970950877245329667890581897367135175450643528777471506631385096621941577450338279163083525718174441098713903879551844035493872510047407092997554702373997780175258241832271455892296395403480682495540546307691539335339760799723825069618503514580013569540481237827980650342760677237095774299674471934280802974711925789536542316559318912715962533841603699061440650091789311412362478883462207099364037130841143262514155253154094573367791892745980020958135815964320395783830352673866396731062681133474839834625782067899340006193049076311838855660852341330797565139036562920770337901994946386780816100175961630641059934296897542439945292709044022926877865330251890928209614239883229173594384766130887154367419678953021625582159034792772347599455995729334775367997555621286535073585656636299648601153776177990995416249930950394645171172850573043912913262678819934543678571651149239834196309092570096244997289027059427796684532847299534052834477680867204722129153876943131978555277393340430728520749962642593182193414964568271604412482046754642016639773280253032184718227756114127472148662178252142100373635475391035200214861616323684743293101866327352420774295865617459935990436992259153072819388020215633443510590493224694653679942534331690506180599143890508226216260000399068720647457100910436260348809061903137165027734594739593427085115389520004161328556422584809020407782881917118004973326018470023847997188818844160600920923255370371113249096543204967757927841625219540042913159816365029284673941650175014530956254461633669862240510452844665306009219350690676658561710271901966827582622736635564769516099610468076362763544781661744734113797678295666657489285922341720564378364060786512283924826317803491103913159501503408171669478086239193258453667243544311676236441010177603500895067845036164873770098216641544177084599506337434358604323941974914425098480670228019146866523423943623023582248780485089008773538593278031856101358070522139437955136559625765231187106749090853963518002330823292978014009428952262599598687611279193397332421201612444054849775593304338016609634314042154517192811971543552868290134134269041835818776433784992434938797852011537745917731113779152294828372428437377482100735622127035914604659248655490663597364907540620581120786919822506899760660211988827464768350542555338024408787722475332309821863149636503315331026768913646489908980772382568713668163340139094185958655565278043611658378598302000230380318594973331785764997329403226111088224892078135651848954514650038966886284797579577885724748112621310387031386619561998954083429526336610181139964217243928359850541746530523925417206635374376562072801213454374780175924622598870412427937653981608555259008217525321569491908749705797601053208248556891933572396630023175165831482520935767251854024263222716456016439822336685387957304928610178156229823187396955755979409815318583485575073240061565875381111494263037236165633339005065365462685990645364008415876666769764021915338846373024324790681933892142620358311707002468162581334559092269784720930662531173635638413989646710650680427298132981491926722889082419254528602841252114166134447724202190976252766778242851285511191929722431957249567523770863919551119686168541689946297802691575965283269297485621680216202909209766105767466856592280397406701225328335509188774034999019729147944597344388194744863241952326024000755029285391562659210457329664869095877778441345043239856193833859158900140944690976491331288688708830126340211900197648460949576024169666336973144813726781121803297292611972018498023677680325567021420646198199201469174910730541785251630817028203376944356173346689401657544950359845054357975932632117770810853888481606929057966110719785830406012911237671056624868892911840831763261182907721787773713427100180980654298276346169957825300950482809157788970998842051412456791277814394700827148260081300712766441733424188880795167958543456448209697206931925642839652346467383203310516146330476590173188915653811960381049427126954467467686582471171504984016929192067185724723873786324307266055384417452250471732109600696441328892795185361882953482039038417836771642971883561704546394325266232983746261864526041935936251340841118122164967550148759548466777676953014310960152471627024077567357649785373397932211521401448900164198861640079690168227243203004515613108138106771699245295868041271454887549570096908941448398785676388795717881568363627007567326556653569173092947780699262058054699201264795539271106008509423010523301652947066885253145090227907937862717993468212624874442967039118996320808123533986632389485389748692045414376664324275177041074860179837731726140415988446341803038292119658289763761137763025004714070964199971257884476209488134997217859293930706040640186305667902275208384969826755490118447534525898051348156108753528904321620105837610206261115542490880936247648991672006746762469270464347491051047813943884790017239551657721612942327396174525917841803115099213937830310094793091777983105094858280731157700897304335572614970997211431693990401771724963925247550587198966609791058288783001958303247422022899672064171106819682115600593345107828301361992529375834448517747207795955383176812798734894646572209893865896094736825640789105593226780233799557454421500789457159484868807972075787237701485263379551724846758738003413515501960266027684968202568432635753496532796098865912445109061435205924943300731268390135169088913539015862150626352923226408157716587910686585765971329399908656509829935927674018147709844792272694891227563926670738472654462482817173095606701042303050419203902977009976855090486908904355290982914886886388794370913613266101245888248705824597249302929058458778872166664375932824508056516996056072951189119795784569044778243299520122212639249793444609999524372525905902093124658005895147617178045637365293141998360525561640193608243881779946606228142601020687881704675721986374249288072156923096268647889621892787311614658486365669380146665181897354813547105812483222766975145284630260676764990308901913064331571829541977189986941706296642498961454613288555256571237193935654472064365684418725070165570496487381435440387410400720033721846042127278452615881012548747533087119424141166827586259687585948419599463894708161108874676591234777524284543132698451871660050129835517296523213762383205512386974716193869851632022123576011448426384718940276098387700846464298355683177404094048809885665143207843563500439619368096649534259359149054783525786477284721390765564866471502155401190601315709921035653463540860291012382359082977821769209111553877242667515349887871769483648823000358101828644387362666404845703471710829250036233006397814845839574213725171904370223801390395775562213680087974856386243787636460320941196144073793956938608471862382704458489844795312223920509121623877759854932359081209445764946706918329854912287322766264538887691373834997619420633048857968471227125477543282926027952332582110649037849996182596682056862075121057768299226734215682744812393568405663151961669242144091724177813460974064687008813362919593069217113939443443971480270775334692749418701325235767017476324522711350762501930181943498886332742225557982905274665034110422271972188458915650679815460603636382526551091565906007386728934049799671223351088565723342809889414823739736338117414556834469461979200167775110675209147219472985378308172295172272365765641198304647583466848231862231404158619199220462913942089559460866667120304929062162772071899139030557698726015584335743966822429208974856348757356582913741383557222263841465402553406299813118763987756905584525306227123225466633944128777805874296371818978128741022929646105659616154045597090011211366206324352072133027368091753027949818597374159798063899673652261530057014467351452440429892528196699517240670465014164276419162947533437004469212559465731669048998922090298264795919187431217964190989472298811963214613616014514002612115318232951021381120978358062730216443416661897165381545627365699424000454933493450163771187220181433300197781942988823608825114828100524567430413701232054263467824049713485855553649957530680480476027200569362758337866076882543290222736778743776689634404760821611392055913730192948321594760875089954921140830830481715194627071286190971763657960424737113530763400846259531995209905066876368630063318906417929129380160323197329647587929403233738799988100097239949071744241644699465433739519869900046862729189500738032321877629385603266588108614076307819274949067635961030675868259591222402733923086442795885079596685951580983441305529553336595725735612450774525095394887399370670995399469179219952039914049606361841048366983497891693015553173387181877871133861251258988652767351301890693854943675416072532629934763430677862880446840297530266203800250501935772148944166998425823521265513473783984733327356857961806201956445812051779486015534198792581568672703274628185393992438775627724189533028464614348458967332689238886358256838368301211151614415892112365422109169268616952424597231188200764405279519907345381737869061779454993876218955646641708438676825847048767303233800880730269286309840629709274743594367675255596920357706455388712027885712714700602129911337893981869776282897417241827527501986037026378755010412013071161474775343927707042095235331582796782859998145599197790008993662760295392129955950327869245786062733242106175688992186987403022365729134997948901555635409750903253339577673703559757786145727066980330957314266394145974914470400077081452381463281630272122018526807000418694257932199175846686283828724758340521184954691802547842241545831456330715540004569946014140119849371681704770442770991665462398914468192631994144977209696101145829527784243699731017159701779498826040960466775146419114636282967849830051416917764012729934395230963591455938385921677995009506962651020369667771572510951254911398986371447362902682271731130840060705085898526778152285731679448548056437094487861163560392822766722173572301749826217562913476234890382471835946116300516988435398480287697610153171588430998208110416329850817759476448998492277950756652946123227438157639653523802146695528059960964611115715647381050219081759456738182736615307281898081982775452245218186004896163999974120245585675249917100444003424369971607334358242279483242777611531270386576413814872046732658042459525401646503384403446904358105442552384636084569171347931516709119297643374780767229907281099926575051712088617801705179966524257884647853170131094573003466108497587942759659556482159034308184338685792973451168578960676903244632097860820692705696598440693602831010688222321968462348151746910253665043780134081119887796585003282016246711516119161465333905178645077974503463252667385955838204934491333629465779552676724515242727999366614804298072456497140553226765626463473073376157101604660178389917243436235608827663795969324461008712346880415385581802298788968749154761653928878708332106512068398093842717719016043541378691524688696464016438804036134150719913776323573277132044593043460470298153355539516886413667933985655394418000615416043948504534473679865572150944251324709251081682513073381158278488771425226386322558445791684057921492667819747044087530757867222207529680089029011315901946742441455305090253075924913493778853133002195974143085448912483504519303768500564924003127833971063392167926375410820017185662326141517537000005795656982871760429737716854215891904116318903473736179323322111574704569451414748522763874118351472180821825027885703933766891630993274072068969595512021560538604900975082564637099872978744943026477381890731466504875642077095463738274734749936037238829467247417736407450031470678049428666584796848870344714551198266569744446252395819010541027764397242368463474695389688077989744178968819138987812888354104288434706605574297603446399492755111695055190601802048795943051569908964890852549264741696371773423431314607476748196651394735663297018820277664708835467755657963841827451722263668312702418038397963719514480900096400529268543044455935786760289310722293637821722572878114084171685445342578670724690986884781624737258715101419686061521160228727052078166061821928069948749070841305545903552682395300927633875249741789741763256717025198270293324598845371780794306914564942433726041560830209777272933622395519332177509794928753469685767986695261709238130536238938340904243020346328042211835971783657417472822777188736103274069972490409098498713680731093592017603496956630554058546163900870429161081815280662618222793710889903679965990691375506475954314207827897220626394911575729048382491831884300189072109949561504100814420927724700668425932740753544939751044001080581742101445248505543382967027214861032562198230344294883183132566687853118590580870711377295944653661227016667815607850497247478213441298884853053207853715642987442104652379944771224178946084954970731797445175652024088437578106776238058393235092571161949622272741715514087573504116314345892918140084592673013109997436827862858703911335531390366218127551337146981670337755765679700418999989667181177313651013914476055395982352454752757840390009511895396793872485269372133447362066954303752697101471149220729912833091514935976464058102699040709749897884683107662147475231275963746428190594195691675922212777352729051646134741270641248366951362472173418938437188335124050521924880092180803035791801268006855581426501012129731459223686258750219384383499124228719616277258362520301704681026160719163171590792436814947842398949968769488159222532994979160728890740132782479267471163260528070010267029800869757990594970766611650191843040551274672572664163152684206878368922801689969151320499035453743143191875141643367398164969670483688762111553735617639915201215030935327401704908663318324295739446399438043875838578097769354243578894031051938090387972881753513476458467319870367913680087136850768281673922228656792286616011186074551861540142761710342780959497093256532509820174082128558029956369658058127723295661889035625661738982581247104933919870020953492921239427457906364150234232953125782670360204467057008523358465578606290742613199781077901554454867821671894647424973461869163961348138893522177399812687228298806731337522872224415503560881199732507612209459323923501094681386187800244841243374279963816997529820925705181862454334893797264278101515524816178200443770953443006548762711238773163967699352695415748330921155198423184343819674447077458238241625917424276875417141558450585043210633259915813755008160225848449915800924573150104354324401876951331850237138440084735670619820965936752676381868748603410174808763393242811276915675855001248773910677584818571952550598922656239861212647182141177761176124061210561489864469735732492785677238714183961216020823539796878670680292701597574718025962854365634673574282830043078048039373648943378726629519862612728261623174730109174918105316240415729891507277836363720893022489692031799871526189960297851962300502546461368190747869408982699649654590853972374261412496343475014072853170051046177995445908262150625262394277374501027626143542986914230970522215083213392024927044557405361734828533776839101028804485544380440057927931891012722295919957777282523161238687389911264423118849252428051161504270235324712427197472731589417282049450937779901087022106737410387581958411269395892046221469272966527469388219460369670280062932350814293655488943744943192727457418149531027852198286067810434311998161407535692876226812815891163129377891318930029507468781651713064082457247200276333118888604345073098907340410401226958226575784526741465351874275373368909109469618567557281472503512717702668213473186164955496282020359991027204980954577006652097352735929718873598694528540393573274670416511928269853400486697865098888320077288907812483668168263404037701536666835247580760284211265064478960660724764944202828216178193106570855860324173460746197746097707280441259637748622350466567897499656679761243589285092633248020757444593589999793893780606973775030799667835839152711424908354188094416264484843069854972280772659556786525062658360032290165235060796077034046512533836511460593816589440035549577754839698390226059779116806129726401566461008649388309593676667145169053930973061777102955499572337465630629068915890164433953763338293192553088337758167040101265853381681269127062459702459631865218510259049640841964683292356201777646752384977735700121921971055408227726365824914921965781062992203695618307926266712095888215593484988957206631125522571222185942956020885863492854253370207534145721444119391246183456895239932830446228453071226990618092884390393151764083663962714420332962893643344180892373428473477189627570501476890226563510379916702090372399572973061349014827587028517890391432840601725987193712412528531393405600158577146415527535398711331526342527038180749536571576578939221463696929348294919713316298922446212071238495213885090217235619152295292961665189406404630570573483023524334612525936060338764511211519422746054254905161783266022867581526027915941828771539076970802938359985230236780194624540761016987255515922610723546538986424519675034140117656464708440524526593367724507623109048485329189811093750000127929180043704965027524906873958327243624871049399414407934845275972958624674208649242723994902922236574819704156794586520803911417265486986152115905847613603433120547425256809638023428531970106566369413489025671874762308877681015197501340498657430009134283510072449510414029059741247981771541555283135838102072011673146994721160598826628589300249695177107908541719545247375036015131187104032755173038592958521122378238271758683986207955060827880660862282193269193022190565282898931899966901764992192351573213377735520003402305723281654240025703086732833373884892613564945184102014585845139450621178704270502982685739931575914993014349777224244665165274050822839550106855243443893354599528775864342405704325218360700735046840638042955369348602436216616285222335323701830598564982166333143271357057312853885094751235174018502563846688988628838084260292441746127068445934774503863304617484965855009869490147586961892429276100295127356271168293605852227990127128028208921832146902260196760336322061080751183277925496957368683898429389082452165745918664271877379075020103871715664587293160631862517752365527297579333021581291406803168618838707366804485129741493735885673982051401888779565395997126979480547375851419343151389860964687964818052894575205339131047268449040314320177365829690521273590096158040011270346049403442872532423279450673052239667876424234090651939905216256470629177058738627380878037905878411257052169646745763174709506167273656743321269004035049647438972277374119020304494927525098713776483909266754930687812672154374441429431402883684915074101703214281183428236687271967100237163107230703555818113212924947947642483732884460023444570031255956416483445067215137431586768772719585820933210793582975369562173863573393665580601107282757976843241333677063475136067121931187176178498039056676865525868985810345178463850025884755669034438827176247683214153459864418998833628482471031587270061832236873050211304231654153464452259011390278391270010542142488545136974095625836873529884382678054287846982966480972358490615082788129163886207304223262605068213883234936300529855323972079812238136710246203571333386806293729163032595487555438022541256144122504679133650717949552469440469345213025398083104941615697843675812637913236958034765094999175723165749327403581322975015717936772827254265959373314706435797131727663566309456990753307495453216328666308763120697050105655072449586377913927992420439638750080938932396190858782519712828763007688536537509065148563374659494346042632332653979013114777761664449507816496146343711911499555308407499504429604386731485793296396565072832184555415068741536593590947544361570004382066847779212682905049127300350032218843255514559108482467697880039476120789787664812244889505201978318959104240072971621555326002502417150775998091691334569358146231052742424538085084811234686904675204761030914368475095189630866573780676491152919564815821155940300331537403990152672021338738209554536675317317125239106329369580903659894056782383964074481731968904717520503237477897795156445922131746142471125590360480696940517455444554210813313215891463361555965052907174450801892468932845121421255921068744968669868753156404140439458728146177590920619539979605319704300472495961757199868375043883535510315604954109558260868364227053762953270068061174331700171014313656085328620862121685624145270978322875779966259972138568585827499348607425127940519267797919547413243580088825774407958585398907669564602003191529310075649630624831819958889019393148902694582761687996566948197618939888391492789886162847322249949588710435791378372751914738720122726250879778877602679853258066607525625498774489223708465250815788968442137602867151185108317315637360357560526616380171909937541710754823080062647719514840176076850802464502538633979043353095164898727007817959418752599827366161845593520827850322973658360637981399139394791549382883820491267393488029426946929233382126155297092972791765449021788429067745002836641101151862826156244829622388305342370395452194265191834784506902555012944279077206014574780952224010707624659662796967938324825265754125968201824452832107434290709525819172535290457211494614352446443017279858373616872174415959326094503604161092478411743862717573513759912374507674390599320858794632303894028938132773784580029982322661623151514916626077078193484794214382382632033104184072973389837492514317554044969221015294631443695816490147928997108794518198335530917805738007112537352371044753278000201666145494985518036136921009658585458306639051376329319678225417801529692831275609928992736836511256474565982853322535592604957011742207905896827388311378753626901323887157628731605064862846282721678473245212808116326507481733537743677954154490625284746028036774303338159862444443478670916709703086530474641549143624813177381652592012619438377089531376504948597676868813581453586770757698194445337561013267974602396363741559787273417898068388742208519836841403088241102615711096347829641193476065577287143210134912822683550082219611646050085643833962624237939562315592395284906952101419200121211476627337887452192627491915709041732516989532316516132779640480800397071638137298261230054945080660650355403697903336536432725177368282743822314685388598813627192437607700376572767370181027121399725194013465948416311864429842204123848002447609728341330783345718794479332407882687343700022426312213749225183775791395703480024480739530125557396927798983297172394959702871246445981804205287945581672825575279211302188827745663113805767908736228813927945645177194433496554559115874353228455061817600436132595820080490755940151946304447819410981867893326181485477349763430758794656144769056990890154612864358527814904101107822987896047422396304026787219449731187376412697123909481466295120726388326754243979460457481861054494191153577555604941547742393471795766041949663260840982210136209558578985126814264999541576248650169742755306565847094715999416883380933696656232547352549103830117198116637688359369558507879519195669731381076742657728057073375341156170745380877491041300123010339119429571465155220811258630053331898457520379404173329357317421638684467665568498708050693060843230869803705937183224604736257675061552857524135577310495971141186229599955123018448150210814102823213482403413049629454013808959594003188039678997463419387626954234550272526814578124623438882931972128200158634294709535431908644825797002824962751310259100848864180477983827608590340521959781840347684474069603011483374148174184356607307853687620870168408205471968849804851057157049117691994838134980314916918964134717640569941880615684173476528327514866176479567138001906265833079643816699849331054283676807932155763303560836486528188939562558596572377456887323928039277092335626868881960528224309780621315701818574078121598011023363189356135694186530605977518208311830185154163419756242572336660005482656572553786710813022982062043518787285169892457870318705660884516151388233550556258124355609438832049870566735522740577695002653504219243516300587928094971861996449527403804536492537900305529010270010846449561695735876350519869851333492061839260737778325061381080452795180972433533491446020728051604956228138093109774062405861717126777586460994566727217969997396280816898698384305270199568267706747318679446881971588530117561475467991055878308594653095466310681581676390030210189487968018138385828166928624658651288413856095137203390221444629333027755944612483629676386524782018237595565079781666555590870942766837804229583806749630981386684820004210032874497038932415880204130911401285801614670153958464274847763326866014326795219092588352200652998025803005925097842349075985396230667182807924716274019552799079839531230860691347013702880415103755015092639418800065685315536121029694391348573102737860946362335392801146767767988869739499548550997586358880983819842472873118324214778447724144611412043977220399135249878957364041360800910474525502381865606315986111885922618436358299506900978388127104737733694213481983575165419142597038015191930764257845170453064824156005079847047753000330343460377434880347706182935280184152643611885838440636210557705707304164894981835556171435024177537596531110728209465871348423532525197457656725695067939671769663095210183385275644842593265810613479826636916367836151548247768889945648332178824966765174024226915089284640584834293250024555576868988555698226159416285426406192919250868490171502301138289957875110060912876023910573211608556280105114006620480485063915471492193480835816535915968881572539506862579691158208420620630015799211997111957672685588548505477125816321510454582189695686827050170042112774927919104397677727821955990825655186085331042470755664995176116168131386732328462159687827197387905720520032397787891438596961929676629615355119967172785603327587479753379707956157971919558102955381274223490335022362866868564981112987911593523846172672374407990957606330141098896666863900204062100267464703511700922124529580702012799582817332339298068544425797884942180208570615310284464776502637007727177441057196416938272099377168031165472496954712887008870825183645607980281849674301812476523728517719246912996280973641683369165710953967002495263115164669583232372747561325103980814542401600566260770944611562590453150521121187429018802065195671730005349009766248395318753086936990911466317995988561693303427089404373794933486081162731382625169947451346067531268497344272294253813655586776048669907957899896239721342830949207222608991386584009463264876502621985978468848399522207033512273850282246219772162811610774579122960108697510968084738851502837219613318287824218131961974845410030201830344843459201711955975589217860768964612396065638421313394435238987881295561566838031666768304465688420291126648009866527583736169360566324932589038577770570339629085726017202315570775269038183099979913387869325131270245647953836666780966428447503610491306260130016091765119066928640949411640076761546389293254070537625467191282280565068541727961696356578095376360763497595902491550579070285566931858456597904798905274055753006578150756632273952924020971084006190866285649848961149387277086728103705290089476422973952451385538240042867396497274136522021293487644838819150390299987648998324803566107624154296482129716078787792891281827357157460814575032878790110382891446043863859734363030052679179734422410871683417576775672383495944212721849948942548344712287377633245946894635493886176290874202677545021193701956618726345545644565725802487609058045713111495832485380992413381196349166838311143835600168690884334881071595451560008843646026736389981460566362859510512067261154089945391880396521200261263324847211134772351483302371566651080349560640117497310978472503685653967213879887225593454084030888103032264115889249580036276892766153371686071281923952825717704263978340951191501483230442192275653774306871374194028843492379870942925639103444888993131469544376453381426377553652362728773568336183861606352318715954293998493579620332652662645098977412309966660190222648232116612381319394480576782522830619419374162353096938920376815869618358508819956996772314417780644799744276790556525949872578747912052884740242355657827449184870141137457068396779454167973345340290147148696988181951741184180658102313458196679535162334272156048948159707463521388214379564333684821526474226165925630359638257149571444158353376636082114646549721783377318902668105967860480457726304561344238800930338820558442410414963291968909870358175470296221252183725997922800046315753871394108396025153190211125314505051619738810725317193834618173261549271038925845338290542313513697793839178208344656704205658357201877661068370211883512071461143154166640900270690220137048954863565498072597093558912405996304802718739726268217313470643758416105268093766323137335181833653866646028335291993466067841074503311443968249346429837129445181535990493827229109462061747326106787505836508744433191968530420267566914226205741605172237796492770616275912486316681757500839484663586110731241790433704204392222308909828038708410908767753584487507234507107274808566014012411486398855182630096636286972144757491076280268436390926699375725032716311192210277596270595486468518615772419920640222175320992260300254338150282223783545095668432993116041572552081688419917395649020628550281384545329766758793581283317919075876474655691566377122793090644028266247708994841655973609814695920221350088220469021875956585649944784289523230432961301191424913560872309128887464933806601410663375786829988867667713361486866765138861721233835720252946817024086749465864144028854481630235777957244828754987726253468744734144972127926890043338095619554308195425406496797887538992725293732175804933060754208823632709359973875617853499951113845239009308315708034440289922761085836302730723050914065220562399800568629423395753312846319170059962314786960863972529734846170556517292600602437248744310707537608565637625359855848681134435390525455167854268620644879755640253647866150472702985475932133347398097429759857822107623880407351235242552657614521653163800057041669611765387779320355077195205982874202699605699244616179442190554953021969271827597656602477670723876104119181385110784458441595451415649964943465583969611134171122173487218307103203008235873698336245156357332851726618612529128321221189268170205726150539217866422469135367723052818064852139201432971653199471279480611281154018639879680994999551634871354175571375065396962304358601811194528455725855007832738308246841525526832514346168042902806491851771208933446191489231968242059953301202848420857255382257419854884884127301894882899791496789510163076523833821455621025530067569271071791110845068752117797859365672666561583094542855692015494251886498276581918966312139651717103617134818659314413017698899241483738431953552981069350443522902635430626904078674660585052688577553862284733888694502437755750441289336170303261270752553380790566723207151268287625327400426292505926582659970039367078857398349767409406396478804671156269105389837470009166238851474734279273683505357579475377278597610476147867826336311031515415359254708111614022335799440279761244883097961720797242162953819132794817564727438344408908885224826130376160800202575291432113590679237441741084368348853184521639169586313307784294075173975577201099546251253867353620935086356029370347727435686060097756702488817825094950824157176215710285009413039778710878640514659172905114433159575202302889250803901093982109237814620383246999906607682809867477634334754084169731460966571630543270881337502347074588612011456310847369897427942597005813083578217807794045601855039060228403142994014443431275373457638565050555554245938144441435194566941985930135758594765453364968742023942910001846100013947765671612508397182329529017812907876295641434973404845789697229167841082902900279565418620672581327693594915220764389171623972999769236212020117979601488400207989586032729544788678350056109780023301148396008527338516776092426800122745571047449296778641959786501859868490319629695944165004904091124747891697104670872391909498006371009726821123825208942698843616381365990128624205870217225785977746123918202109731285328248099207786632897860535564368149589041585017077330721003555401135544004744627506480099567303611330684724621185525089323827755704164109089559270457495385250367322504912311358557967278312297177700996649810625521157061383182982087376808287480389324488173030611897190663583129029687158870305792253379080165003323376354167766000675265037915196159134505611272577094588267003092341191015648999142315618789766105445788204640344219957010154612147903190044260009181713552088263077650151601485592374463613495552476438937567032159366914950589553430775891077854112841899882552035460874054200200855942337307396680465961781761544483823342387764775743289640605720014176123704625806895839265483899247799231978046247465712363951620386309717089887259287238960363335947213921291800193475547592884809475913260349762884718422643287394460200560792916133094068719778819565809332893543937394936944514552388261288017017789430424068126610286660614044728474917047492168992349391659147263970337144625012910928730583484747285243466641159853289184431180316036207629742698202461628330121188854861914178848441910106720128390747682643477315590755271894937703120221874710915177823736845920104800712614023124711948382547327171963647446983760848096215442528967732107663621518356700742848235916031651304264114285555904529801829427779840556139633292981929693779840939112712614734046290482983891555608899593354796081722050109109240304887108033152933438382157141246582419988989997256462808315411271606452991225058114593553826361784259598222985146401537611697521401776580789601575613742150113323358418474328806311267049950867839167102918395504675750904804329269466828956644348442339538614666069604862073089286267397409932307925001300451006682147860462757461624609154256958664316467665025256127111656209934251291218988774413573930764731210939174595258244340274907252388523847800928499077354484316175879815889381381271800488549236701610791777788178223600217524432571707599783284186577151362384024631799257858667917869258186325549300038011287751291894349589905612349931596737128204405419024980021219641345469451073999259718590685860698829130428361332147587105085748174904503808297508926983579314292833531065785290997384314965058983450197413045204022829042913946944648165354147447010868744334115870292593259250154425597825844868854933864254135924976611552338743501903946766632691200802785339029874413492795951017176506444835532073673606854928182757658405605469985921749307960100716935504904369215662172856127826087783625836547412838601732468941534761805679160319321613573777969517612250994411920335171328324175514511051491797553820376029756413497307280333260062022274888506092957244664117718024425794908765708817986924520158782096319559739948746212716709089977693461245278536775764666056929667443783305156492244447896614838673059829441068498552628620966885232790099683593370728412101858066049838899918135639383126803699631445671214536204836548251892856382134299735788475188693523582576692187993461740984452372176188417811552593954368613049881618783303731257001984879092514866536663023678411111808061349914544495239775999157737202367864442031000201993624647526218453395841713582251306861412423974635704107884297286042717963443436907542800314807557864292038549226823798162371816508742783910493737205719921448649656602291564972693565884053941486291988201122131536757732419364196790923327580670832718154277191884381444653380538367891171576165146562453340181269557471868140375539188967394653411990519905494678822495107971667581267969213323566806332976563686408464271287674738843263645027940639850789457202344528511538794700302140286896456892814678745026978024426920136177613135794091648975563695754533265392467801838316448417469939958837462659838826864066419067915648412755908530189329859484804387530308762138985091536677284719014216535833607958611669456202115590433859025236476524554722758056403901676823336118065434470919357374605340819965479201573319679041172776160416850180111555795143925783277029212030836461469430789118677182942108618044597820074418149729435371869675187693954676226836263691535654232075362296190725881098047883982169870171305063841437285792392713519233057096899847580117845901339452707000842630728432899501353428540642243610596939350996845938613694079662695054675363711134590203396509706332649583083155188380657605641333083391675625832171596517525271273040993745573419804474550575094120416448546401757556073319280919281052063073312371844409733393747097035203419461748980208283562592291289193757581697116758828528729687971712733766413757898444706870980348936749348760385298191792346671229415953851152738726334020486290418464947612524250457910264500152526954781355303309806031759684475338748862908744266309841771211315930627513232745698641331854256053922153278775323337515281293153956094939420734816139923112261523720697795881694977047872805446586674978078271450374365638747835461026972982016750492185735713900440910675687819240477407554933096220832245485317111145167520688663740072981589392742853448348002706771017741150499771404146947295164710356809313340131845479514863147528042295349410508561767576996341709721233664421184445323604132288113293794429706198837767370204503879793749322305642423599806265469770116322940800625773785686646196910867670352916982334804391877950507524603890564711809220517577584432666258117989740197240230301775816090266921698800555003308095353107482080307996880042382808100306677306679073625928068219584108447143547006808039544144505339748988459481352673782881250104267108909736458761586048572621735358639552852999184708026624697631665185243168141332977192331895956648437319573710380594393817675314003261945221344478503934146185598674857591703044535553527797054979862513001753183845023455294115516639056273368363962769968196350891834850582816822973605147917104326924845892127827228369279063234382193125753138876495956915250584624404721516258167815337913381011163074622583685501802970676403303093563642386984530951292153369220263969198538764897098480377716466350258783942562671024098238268255938954512075899000559016282515038608027576904430513771533463658193541687634643026090683255971260047627923684636620494510748536387423636292866155616071508668603596245915931054963132784156867573561502880800327232563284572885307294521137320861825205007420711013712462664267180995174638667502562494489071101578273964935810398313595769346565195828315033960298956831162088383747745951421214186409293133091985407172749366734064245551192639048691785216408818045872262643031140742780059899658935360330735099026183552884454579406753680326068587621940176669031206466290082902061722977030855057520723782857998769445057039308711384975424857227555658818727648210367894827986568414709369578247419884781731389534038438457351494727915225205144233175370717689148604895494652873435492287520025278898293826210805804683307579116469883454498611622183727435187223575473987516652100224559583385852654493052584600399827646102708068432452270009940768589705346434982360091284655352821019130132465275344229042926879908806148865639005184153756349298103727759109710003683714204711154347769473733456230874687773884531495657289075024845276521998227347685280712349031147861903171872960058309362248463869161166876636085343809532100955606437521325715334372006693790817686573414400205188809665067520105812721886230728809216653641796187044122611569455016452304649147526509907095160084699523596335435520342735445646935428675048148279869809599809616425111235786162956038748531987043042982842371509589352242200802120453971694499581876971367753409419315670676940298302080794435422034454268120069779855655176763579140596881113959325865029327962130063549483320280814829917992639503653877144467630427501825171993368865117128640119204630757577444825338981171127063249834072306366940663326233376545269142005325051489657734449245411370719657754699654998871225061119718344012512631007341991264777508425531073635157988787261718854378515611923074811133476052451095087291899296454472441192078693917700860065713464508175592771978861424154385514580643477897588362474180465689804055088483309666564187642080209526379877845018732432742598828565531667503997614601321298164200559480702242244020331710583821085799436950199518789986549474069110746629972758549937048447767887065140066228258711073616287709253813949256639954672517723013836828467515733439972191413727514994345346511573310890308913161227551299220494486802366278030758301573469097028512051476873949921150411953406293579190516531877878561161565170886962060752558294383733700419785178021527159829085835527511040987005166797142040046362635480317025503207045893504067662458548684601770909248561762666215147210939011061312980065878962249347928722464576081152501484883385910558528042719818733298905449827283570058422003429681517421017905463694370825718540026546083413781327034164799437444480367310699003815616145442022744399364454840124522570060710692013973930933956246501502938741007314205429165459950695807379848255030379496390164930832303111628291194464158778571480575029389306728250343770161563250449426821025979236586171363912680907075245926325712046895562139612784112113566850395229958519789468270956916500882586324559533748983255965089838781765833258694725573515969954820667533312288789346984957154238029300898220773949454198835495019465126390161090161096723940811671532907724202171035361398573302023559911064990352495837791208319614513208404603888448999023501834770292335317473096247009619235162680101350503572249627879309905397490335610910424201921105706906386603950881880992266530635357197534621998300897655017225627004650214557102176526433547851392132623077989481762056670092126216787405824618237663669805992265204454126469408103386048679895887654569307364499629595358657933735372832146254643775452760462916762208081422953357713929051051697402743286263407189347328730725343568158598697903179594191854198746894477450728130772763179477934449824148081349182964953592465114381371745194983386724194430449488983560181744213952981497609028592498819762352914664493469243151880256565683970724835423864207540640326163846602853701935719670038331861644353539201857405104116884709053650121664853224222944905743199971620891017974195707219102426393780847914776101437857082676840284411368847314677242417681661119608469805877154363320538607015708729759269725765412328806504520440776655632161134911681925468801603456016573042892651957455733298023646856120048303391487329791113780305098117238434648128033496252113356512636561042348663315941291519676613944662902014046233141715474366412942637037158462326180083501354855376145300621797719263217428577280801278907747341267913687092124130280947977403453193715791711156043439848219877036121838183724847817223144177580333371120170051547660388386578349291604315233080225717066564529271674064154663010010030783158451077837093085074802138855235886814548371194604134255183777377812313778351338108577872209711998946720680846217298402173385768498774785997531168601994204633709215362931854138677506189115707164332032547913150609040919371732913246724685939951036217755388452846787755256543735375703380495086784552299907172020719558131054160541951540634328690584255673847908844046000493078354992799235720997098275994195625796381568829799590186318406171495680141059889710197427309908352443215120840231898448071923084733390171173464105227722083637779840283976546100425443526122901226628785251803729270024996141414028854687429745633310335645068737269868943951213779043440697184954852504633453606070125361672415443173046443411678436272983884848072374123208971632363497384736207426516268427769253696796346550783077720560703624456024408598197199004945243685470436004373313635924014993300541696921823889189140716724779163371600677295953073567406314192405590839501735664818723198364977713708358363015083048629691265556519547676770031117966859373025949173505108259929849062223798813377026551470253981271243934739396278344108722664544518378867226677945959646092875555144330487973582920264386705822679122423389154946720032664719661639966944319204020486806688220328256421684232583029033210974257806786927295984014443023610373893760766191275022870328691119306793598203184101170041029195357546156355273160717208083487915784002794959430163145325023261690481212162872006736872823963755894326078843967933306418261027773610371825289629660904788020157473166747320820103171321896449530857509793136596252788904112739782346595243072750960904841407756712242923039791938519572864792230630598668692629811894947776142895961045069462589837663378329391105428423206568724030062739778295158518529651577393121512873775075571672169388458374545681028078849752035650710551497672656766276177974977452394521951232808419538296975998769953300006836584736479108636578026217847493365361439778683577659988006448545972087591729365442897301657627002216173271835159321287540488418286935547838531431865834464820998350391323212160361672492216696181746629454976001641087785259054435453807817002946263034125659108433755306067262580690346186511098685050239257697330331207903189274142086562108044913387628838749798066767007284655135197472066085661784840868461938544617683114897418186623695664424741528567253021941726822541177877867666809462473525397323517776263608125581997097418499192164387865448443924537030404144606219501105138324037908400441573774393780302095462758262302970074898310204958533251472386648611632226064207703071416351303160786042543779179931845601914025737811665470503180179030467925401458204430812392402136914302576212411798327138905070061167787302580057775535056721128178905174166381846906861076757912718602292977389680210808068037518000223915246378391678744948485997480878366215105159191128789575625806138514790211446190058179741561430095641802325401035325371419538257103084168428912752124205284178433455551739822108488543960819969971146046941962205262585653759379591288590126741884693024158602784556014303247392003223116785365832766662605408146003030560078994204712103207758135943724173575870616694440650134550950604859570780298748692441200836545999687700253782683942614072736856125271651706223323786598757124361419806112427196723199495479314222552283630892595969913098102287441057456642712235983878079765457097139944767242132858597260187571385036669208040703318241219731370492694364402315828089867368453980480016776308490728771771966191622916256023183678532072875847935674062119465082106238166806880137069897522239493835348622821088366709754171480796591462580698638685615959191098218055078198379720199459925485467591868403386220019520362447134946904696895206440988299851199082395177027249381747447557561517450790118157522803261835095994862261457691790020620414458439177624868660514609572517444731436140900364559304820528915973150054731432254193659988550660721546591555681022710340137851299823791760736422151907599810105666674783671162629344165024624473231634855610685247343263725627179295212973452760623330964771005722236001631724164217574022641794595578341230658941034782810717460449430255357098933770244143145748454996031791616332698873251920038390965033965328531219704718012079072944073287217824895382916031286591744013744907147658315778872264544935228531290168550764731649565403481824825848650096323606795919687505026910752600503045500581147499433665307550138301836958684904081140464928063634437499850115902065772165428187454936517611274127765698640065514205248743767490368939881124397400920264483198475681366232204033244661715065571253130849966110445314110017441613396331287954771977649226023717519953455178216450780304096262045067848630980245101603269325274440666416949139926065413473822914650337500702855900684057903209870705432277170356739489602212152066561459781421665494399004282345710505455472568874694370371181911386554388990998628349531284886820508347190613125137590561055038406343137082509634757910137126699387045182301009057644919306454929196780109766601559343254268555636789735224707016262338065385536708836379568937024681495603619747502585475282486270468902374145186188526218294558759274885876568844300034966948370312350401820368976727655101267345451788961845488393096641468555402023457979866563040177464984958625188328264139898166282472243603151880175718850352196885433353110835560408842648548634664190844475146164369774184866841016079184723782873482181561721571507433641558679089740297491274345794725908651019329828012694791167361135067716090129200296563313212496937561534945181259514588773062112965106908434217329819587286461807029525852024797851192382638210360454417060298794329770523282176806341106948874574637795932716475286933884982640913431166976725986972915254794574359654948676579502500189252472897891471749330717950787686677422257654171485726913457358991858663185735602976922918205524616776114577472424207105642743584028705687575688010914776222149630724060933859098455843518026062644146935809326170757159409531880468774880402137995817259653407372064199131809782691003049867126519148814964834256669091750558814907844535868596351160721237621993310511598150193074598742861927920469208218944863469575947268766785033947873840846250994149997484287589223914662401214033705871727505579482828948095092520198888838137901389027576125156000010340449330018043569617926488206033765517490574508414570344025661559763106998395285235588691921215212675183468076238476849437199901761073707875192680788646602387607982303143576803933774570470391183968022600281032678557038658066551689194383767363021089850692498561182233177644953495057618538546834351302481561715120646702988575686651040570670822151328283521668259180231989326465606238040380261851546600299740550036364466024149199502714144575863986867311648233313591382072007843576645179585478741252585207725168958612497831663115637669499110482728672652288529297867406946523325072713316814534781109583492682186893173222290376225164893473601122599550785852117560320262733168133247908697916416024132385472528526540073644418978566250159816448786425195694859203002518608249877058241216656294056819487708320431774595349234249071856503950937376019272981080387390119820213001002248943823405417102693985704486664543750810211259752443886883062923173096276672522382451801099545255191827221179224470997105969871681804900553909185575362901733415976896138760828881602458153357349999051824136869246292744185068866850142316003888319316951015456371021302404975067493782279379091680230460118437040534759419699701615943937636109453350217913027859889976845298635231515863582928430024747499145949165726203414341208843796155471547274642398599855529951522045522806762861940060150009377847913378622981686048015400804362927375676749625692095697590267265608615977131386233081150268092112111745876215391695538416218342949100431612222533044790196898130878279205480729287643539638423343275563385525140808550653487925430485659998913704818991427692093941446556067310933346307976362715447915184811773713713573281941575018201606395266342183964413043181202239211726255707673496451037159466514863350556232147055483047605322397434627361450566315262508622232473753694218143412669167380208025067632665056248200713885278859805527968335127222902455593845463942554228389874069273726709903977128707607320627089160802780521020758235286991147495068408280472144478577007284223213166337159792652754876222599409844755896754493245449905368240092227961186432023433009500887646825807384455086636342602419996326630336773235412172034956602607710251276593159455443543632155689412078541098247843010866828315368528826652823000897422694399824097402524063817600054159665712304667841413254353586898620520502774386217953908021927321539094767489443389435257869701143214032418715575476057441192068597125916097476665772310211274970735680867431146468619836483907050265205451122714314272237594886135369151887108008825477964432481397176875838256287976132239937450934928048366415525132999282298397399480856303804166576025042436517800127783372538062994745240750710104506836168882428625650509646218700605520972783721098438262236188178335246287170615514454560185355422495649921989931280069321287253852982158277722854305208255418459914354303418792221097292362066217333637606928120192143068470819547525580544421360517958009262360698616303846903477106762642612696187390983099202780477742339916839172491654548902428441371465153577576420946718006909276484446678586088827831817388216209771625552036310780407730797671643869650289244649177536762882087331034135841633887629637493806021141047524931340536428912002402676367704652617648061679408662396550825572730685073149683608555161356743781083261018965416732319812631072292626668129453141366106473754167158326180254655153796926051917805049043312804834683151292720641190553823234350776444226416428896746291459505350640419908452329335299199185553110918314322116242812696860456529141827715358611911481480502620012155197062458249568831553558622032674577967160536852956764287017202376537135606886908441988739249519453250156808245097177893480146509890846879513371186999149386556588770550098670386208916833905576513751305670929978749903560770916226597208056965782174794750599640687787343473234351386895612977279400764207718052063075314974098053527772563291864985164105345360073147703378160783362651233911883783234737415273169825227537017662698721562589473594857924536151392000083115044079064950178617712738066937754290783721069234804914770014889200450735955791409130665682860334920987773070000862092152381452408087849376252133606354591632349890118979354335930242237305122526133235812499860830221965437225686714795354065273687145509315190793258154057373103000573162217888970688699603150994500386555685306653571017779834112936559082311401624918599720604504463256498748600979417283953317777852072772830079040971826510369012349865328926749305855487357319133605029676616283613669800246931945364705996947533742295148422114093124359722936540049307479299063164028263971270456626439060043253416802192435705717906660956462028217402557628997394368650644873240181434085411848041245355215443263346597713295585851249489208347383906593905341507547340348572649078064190859232700945821147301074787408539268755624041364441921187607038437442071547663479592281286840554491731921025162078185874965717535512115800652608392543926933879881168804810786921714955570460193275140500946896349440719712220283018478341282933911313026606075773793313574781867759668505553029981816101228924607612653044488067614564348045841916017773624865149194185275434619844167040364643825671750824178861960871909926687014026768988383768795481061735025924445488691315359297282549640685146746282593964405586280638374338580716572026598560009688791559580643374035737545026926690009184741567440479967886346377505399701058598949448864375513401003791906542190419321685893060645851489233350530719183536586506191492466578089799186467877447528389491775994685464852735630166872562917037030054267904733044385821972842443601951502366956691348802529372319981731913237175820070500732231759060611735830258748453284453577653406259595974008922479234909346705221159655803894577314903315846021986438731337656263181450435222189432189434671370566699331671628936355955600645463669251666996625682739752358874431151065997098575125668467648375383117473588966128441978167711016626625030590096109651981609537887257362053304525174653166918441653259509088179612483709183328257095599961487261306767474869997835096528518211571552730869835135816634724276018287503238862115998030634135880469961874139487234539182744123431962870455265065308756094327970538895686681612049567855395142003925704507685554277585857794567295889399876622518304876267057458193788891221733410211140611627193767321253477022422639905465273290312946551613424606698023390790108998202525714417110500145050681279463103642196263418218818042351649662869410436073991797448994479447776533238783784367689631206153156575925568034031158750322818142058282812741343582932332687860686093250865998717806477526412433842186428779406966540008414673695450626456315032772919203543171112277481657356273766284191315638080616117621274387370200508777435686382106578178071424906817871726284053764628362695643488440468156490005391147709609207030068162934753885691827886802233380177359320054806638233945572041288035373386740705154761861233091551187358587944732870413843952938695823466038858300100039066721745256198437882432842723442298823097238249547519959345114391254725653591128724497028563941041555312515038595082537543233188797705870521353540166636982708839784882415425180869511229922555100205146063294592743760553212051448735273027800157837818030423452181743785381731409533827191368931852081767920325375366090633986295653901545216096173336694769746000513978543707175270819454577269513506769306847553365565280875211887361660188575042475066394913458093550566132943394901281988515255288167709910367502940758732668211732123836867627591633466606370941301319885666245443433598464036668091111102132337511293012187673289469997632908708398771654587756390117249934932580459560053936041421973187289711225360423916259736396006602474680011837231800861731097264829873609876729403256100059960325360668687694811639593941259809068121544273315027477144386000525744109359888946926693136349594441074034331939118582004501408108874420577820658941761952808639404744347685228141991401096271708417727084044390460439698057080343116875722630054723381776785595798937718036169727979792471920800278059138589245051440409805619399228087619787904445821573512483281979920333062227608357442358112092106081416036094250482343295285221359530193658697656561330602046431855046812055866668248624805568804425356102885177723125117111115593968376347362046572769592928339220190456299903733531359238300466286071096369634320090620066521961699538204187330596057712379143189567785697981409876669669555031520704496126441725787467163020006121801733946163912840423313351314558156231759917212202955827755429056265590671371415081142663822051678859437486935551328212836172398899587843066688707041716060708207502862990481585060027706617672194899350127828294024509994096682527542673217052185343197776028195965390951023315120522208515081578795375896008434826870382532227902032943049204058836832751424982725491415479071302863272053726829746771121860436566509283658713667585307801995063905402016339551810558765130459577739287199974032885396477800023977021303355737228989249894868326753819925403466172258948030645376091442729825321077133680199659563398494318011502985565050584499513664395824631271866071379966904099086044195438762877291534832477321171659062171723074946812618284613789948779566892545950820423825972018514733575295081181553496412388995323625056812437451770831661575746726337845562280985942915876567282367676680504751558849310869851337652977126419225017652080070129522320012359017825450016889208910449389069763620950576722464465630407018160550797578891872461018144059912658733458545630416506293695019148721573308347146115052718093937405437073747227857496028420649265226507770384287251973034664258709939288537067695594859330027008742653249230544566131501973415214223472404962196917605856717373513552153548731730697911945393785223821195591857914389005744382211136649793984119256239371849836302263857818920772507182096980010238250043898127336603186362795198777779976985236613446768524923129125123033166484907882724334376196802271826948532961898402557021730899744567838487346308151974222048867712227244334414321720910488308449668556703352990606024581251946015583370429019393990960056004114338345364720176814425488718753580700708166749705411564067316449774221589462138038747237102240467007438851013484480684454781081220521737347868765127343843298886473500098434559061419460999467051673895369375825907190688145162120559094505408700573914401610272416012576786018616605194659371095818915267612405742705700299438658451902344823774685504657822912887830583444512345255431156455526240820828457546091264862927546586018363630837296664937850446218182784562367813146209291328597899673307360234103142565219343457119676463025937923017983746807332922100470991987416214585059979268551841158742163675052999136183830815823032161797316649305532181284483048540587522326759350322477446781163065396583332209627835154979135158134256557850195157061859216848733094012062705203879349855028039859784850414373562590254526356609445298351262224648169820482356714524343225598943033414145320421930935791004311559405030933603235273577743299508066268447057149726740440156023504855328195558387442229217515310641965311003303218763360610546539624562382006345691188191763813909777412205932604128283628065312551747086577653501767496360409539928858678559501102408596286121466084794095927833308576184217314357776348095750931879841541874056324387126513692118084019103261496874659650990123036070881430948496200858612963538772222791872898528853081841080807661441293247744480091531586125483989929653576741439101718561174739775348792784780798460771193552995052150262244138876858326559795400452800245874386780977045642262382797819727130959605372988695414556309599615022252119879608763389178612001269977145246769618410863438301793824480362488723555305356344247688903640471685340842188532275734212111193123425713394924092083455577411840179175768671826050975120114627368299470216192352180349915447967433861445926674015584372641440417793290481729364846268978200593413754456196892212748295171889996261458617141780072998722042242384838720629077465401306021011467554563168748787571243592064819456715205265759586606289196403440705364598102380237580490205655359104100758771124510395952471497890864061443576883567652611505951641250779173314725411786016542270023232631316206067239705904746887941189771501580785708934080441813520564073509799381240875445445290755450797860029439970408979298998607554942969728305269086591862637517192197337078558537291148651127881108593205927171251065563129358664403565682643966790730664821122350404150472297014864241104800662820734980061953819680733514695210814179938464527460552625973192222660937836869748469813305630502306997705776038702183857558891453922933509030749791857933558879884980977528509202952812754913802804967208030258026881684040128418683707972473455657390369062591152406960930086718591995280139077005219213944817859326177180243385755556502111851122300984010523452636531723016948227471511080907250477777750214787092733881332622734464418894452178188447774958449077276961118973837447827439560496250679630573794590277402867095693341498574805799991952500740412707175275251002278590247940059197675621862833290058301138414934770074868659222713160167958122746393302725249990308858316277902450241773108626210391038876353208165531365955577117786131164352076090656366294446625532041767135306660142579196743896303629972406932648377186063639930169714651408032711225533600483575208262341759905907838528223294000632691033338368124444958387259573136001071281519150919938633268877488386024687095607134228818750655315605945324526424088977833389297459671716358112566631049589879992638959115505478163042254248912130074663511923697759278631026024736947394899929326901336796099258318650517583058133925855651997854331096783899125715058707769062547568950948382760691642748386954175095270989874920177270385031980285529876987765818464713986208438935635489874398127814419149519812282645154099340431112690953201965759714336063493208062143782109135598312606836802372083646578386550342617299863919397428716202271808392605485145224329620934594557825285895082213808405400833977750927060379634413964978434627677190069204267292030734918479666730472489067302701868880582653836251705104121934634579841267550670869406917273189779055405259509486320899694411629085824225157512550498785674546868894070481573011185558275062864220817473778615347960060832312712449250206207774270294329494107787686383243844121857016265065287843403484638755739815192790777496029249864515455522412216543628580575064039955528890297836888602427442287143801619764442547035115825413533509028402818710678908260192150271183787564071874603730021296398968054868589018150114759863583227143702601758639664625492093875770971883189837974766118317144549867992415297368279047569954132154275414430691475420354434581371547885096757232431641605658001551630026429875317533983449282593080550651332871599561275866623834425281780428847058327435516303503371793107993977319030360772828469827483101306744680763552103076652223222380811746479639207553006026311212743648859623059470939194709205627337328309698445813896146471064542281045094718786219559117019776135572752646374456669484987731415452676999824004683150734607511791178501018413284181300918741365963167590599965077827006754247528192785046787707337183753458535352908307362985268106426983780117377150419668831253928815072130974989088992938605899338815808615867329406364306437862957504592644924317185512363062616586998725512545313093261578764789535670735417562716936052925885146613571318773039825910425927765499982997298417272454614857648517550628552384710216759032469422919268572458089433380186617853806992294675202020402900715120051394270798233629166547906210806364003092273835449422325317844569060372667897773830846664088914965312813838758910081309545230789204733228576896558554886816903101484763453465996018618358336975710379090880600437713196674586781019168026420010773055178009568078892445498191898342774897333690847152633573951037135262363930668018278079615125249536363360499541146710730246699691103874278383947006314237393638346827067152297399650286668973286948589433711701333364365541142177121650307571679220409328927751010274933299515463678292602390716538255609477727843608830901988123159578701614299477668323047963170098479212154994939668058950266410845976615743291901963658766658612153523812864059660464317523010998850506707249005710502869249973220349116159501263621120222131500438790564927127336489091148358740678309235240211576447734061968558716325673948227624204874415614188896688620361578652192604457896065196286159475764368594487539824182506466816040913288615409509439983686351399481114885670835617562934401515109892738665899615615159069556888495328535969907862927171757844615031376405652629912449610221906417758219668324929541750500300975422869301890707013880368935440256367465028458425860042118255708992285620844159111521479991547459190253165801284148733473136575930544120603861325762202806700821222222434333372291799654898254433885369435910861212394732716713735865268456782641718781147507822662298675571977086681067341290590229014132404376829612775133408381759316206610492173535393479619927065761151569272514825940807780367640028107270397961189722350349898899969884925666931318129943360252571670446518193389931836978809028171162029481278987214651499761131675187374091252638470446048761031123091187496014311761330610080622267070968405446164449009685276863334024150036305399908315363721373401704333765880039439344954381419464635155917997309319026321817732776930724891133516171213715056879059375780078369600987683739490300009359580201623607163711973862567170011120989004636645376137048562077800615759147079102244916989676228487172438725330296543003028924625110046702551973099878659512702731659410361260153786165065438946817867148338996481239638039452847893516152866138803018434552414783344966493324564087628388551043749156528494455289447924702321937228163806854535696693309179126179326099504655881894878089503297510534409664743066566317181684256732358128644933404231159429121503184481784041623370312884974362571735924953634287950968774599145668071979216394072604333607757923303672262779563097848630796753348056351691832097136727365971081189597901108559338551244102493942037561047528070073841199331947001644203729008399843839496437108849258007935842856431596325088834209610188644938568936313073947175441422545692867212972391074157874978581612851116577124386685971502655804283119923794586353413433787390493746403848624996241853559241400586158936855030603239225940430826010563389142050466927317508712774982032134846364320992554491367431772760524178038714242193949112102185090338839014188087979576611034773098371653204052146510369187375073415172655329053822716664689160930570455259042415093548941769261048159012414525669798158255176987127609592185633549401086148223364831220788250318156539782588109751490164450825540217762463783432772830513922962219865843383811108741955987256995017963515821014474812251755378054366349996953950127615315245205779103851767104054088306976443763976703120068913805781327193284813694987058252702553705697990164672817621746915565190992966538630859175998678898708274392305167730362412017041694381973252089064973928002072926683535793268063041198351751707893371161937214641389447321270264077881762410561571768647223232925674673121930999289624136763269875810050241786859150613480302531572551909735718961217279688907869030814126740803547164749057457250316841210651819360725146427539926666865076171738790344999852115405091951076618566228315744051655801661215583698754107473716766700443052611677953262201280819290099925645477563974848047176857668442333723801497341584197244687307635823780930864202591483120356027049545258846552744137077461478226071588012481710847167680416688668520207459735756959384802733267139103135717239761912088120955192925606715972467005409898280695427527175532930942401604384741321843054401462375012121470144223914015067946647909643378871256275564268654268783422065178787692105129935480029490049723735112601907497879666480192635622164878897388194654608981883633068516779765700901923924890069418328317128258799465068485780329576663076428366697382432525786733601061957593197435978586579430183101628952466205939552913327052248874284523780553951558879593175531271556475666262640648353786579314824371586028896193550000745985870725570466442915408351333273436021136224596551623882671496134235402283348061363044718409603111642435739585070449441234095913914445068138172079389595735341908736910473631951800902703829078684822287253140810564417558933566041469632694684198781755719196102735675519615987564555684309722262201473131321744990908604715264338514476347503713765922795710245566735201359981036773282375993103809743063890058920335721467584248816032662255579793217134270615419124011560964720373235954341534526520757931385676366280357406682801569662157465339476803152299554644603302460996718044802894992209082276843703712049491441406968916483996584030566996741739750344515049092727894427418161049268102092683074368532120880715317733410083206393754823648861028118051829454406778564392150811717262602566897175300339454175027103190868262933043089797864158070360946407504167963020808934988037077335286407595812378850016144395620229763197671150964916029798447627032905169631086980311174027034104327111231029558108478732937761720228560399373577064005051657194425077776471572205557073809272227230092227769416388478575357915399456340833576404225998627988659697148664409429818835664777414684521620412792712086869158793326714055372021144347905363900988737931098348291141581228531630048795641612880766627558207304149330840821130619698092216434427897170061932242931313458573696979587090746825660784163172775652582234844663933570990946913161298940950225945330405402838503188772344783458263687503117396021064442387873158794625556979468438266991108470358447543157267476150397093358689853911992021881382857482905850186376861837420148132228994486073894919487028588467367943108544307526436757237253057094660533452412222407959595749696699364490170633393845743836130057634911792134054932417261982481292464775254165279086826118566072514214497804779727271563347176151338414051095685333217447407030166550734232314623575914067998095485736566838385097134352030149676924342942891126371230186171589536065740782802742580581804732094746387254219647819827392973568083621936321688761060672963793220793687422059319089056366835107030640799746264596746076440147864577326467139636059837999284710464995615745337615560296043001912796622750799222743944277418234249017376704183411982884643491728597553326433758394927038257277502142629337382182965803874595461614048078900613700440981691393108258769597395570303076234966520751178796570106646772751791402335909422866077896720081182372314504410690472869882735086339123234058207360783890501278268873350497722212264136438179383043169084651758293845501228409292395426995058415593463018164489710476412954357792642646376123250816366586754913465851952385107044935822095025196843394958513400569853044701748976339013659559186374816920092663714642854489434674761441708733385131051538747968343244132606890866905452083669513888605374773508595070371011250937510228306171400536078126296911456936892482592912201884960826811556825274780217028188476467273343210054906750858704616090497915934521950515950474827970951663460678674766386153130878676262533320573089872585622036658415719839791140863293027448381039824609884057334751716164599014799490353354525064080177252415299283039053342537637926289884615520187737139265757019556494420849300007784680534598330785706503536505619123467955262221089071394976667029085427107955481579027984342406911918210192693927156246088462325999537595393500356091502058013376381688343601084853917132223578342552344085922295183471178446035760323012909026131732188783510579137700314667485106407636407099319172062793060076293490971634603034912130814864447114859203316581918650526658802484892946269883580113264950136153445943765496527335821004346466713131342238164702673620304861168260230540675324521492762591451513485259466699540258730337192934112129907181889220653575585113143356595271020223097609437325093023920761863142212520178622831786533742069198337422208516530225802978928377080104805773473491140263005732684133661882267910520616552362332093665702210877722995147180450599258970674838923335640879183497743976398956437825383303196055428257913618094142630375949562539433069548197958165721416162822760955191584770561229182990424782714527464275439582386769233699315272013668306823961540181478805604111019500846030206675266530023915678681202725446141543810894294836190480194016374756220326325724159756598929470545271916042995831162664363607436098989291290913125545043362081558348382150926577533201576574756450205926922976611832163614311859906226970538421077730130505661747896254971232289356375530299984806699143574512769772254393123336413133781346473228399605522586606113142027901768579742377660061042717852792506124040924833824896407702241756737728731401359691228857783073030029225122117407126819088760538503450301130276852692911900405710953073697818846074505724345682613248615856913538995879161715435821585672602783048938031986245141279832694398921933104542108236397036293509895501150379229197912404509228899940166601493493699386676379325775704524157245619056593534865222570328672083816231289825121555846495661447245469401381057065958683172568581659467253303061882722909100239538247333779704413426609474795661528951193349714768488331557259859022161587978604238137470462334482032286109409406264536480708903135898995546389969438330067746315278562199880776420328100700353240677907324840488950203503287013090483805763361393583186172321272723165049332416930319769447591067072189711568568529509747817869929052169129171552089785903902416257337935314129622810375602255806723487302253232710220093614612849649135431955590475600053582854513115812753149978609052708984419339003362352641284185658738120009331531752966247470232879592361052508291619419364876135320074628384081915093101219772955679099271436523155504782554126473951393472381724023571209402198922440312318530657397942788083812125662347622417125347526906667502174856782468969843005800838333705617619473679953848755931616910126464318683198029378301657139242539906441596286743629748610980744375437644997110573828164179735501568191936176867673179098253863188553122523777763722894032765687579748854367687097323827713221118333574108563813980634912147354662647176046376300677434191806356405298960828565592296381970028442649098413332629390657224639752685296695573759282422793154013711414503496503247994926748094530021976568113893524882970077657118335284517321616945560004602623277259257548574410081050526413215220853308385464174316350915986895495669526753546020299888486688606015813642417481027849196238047464936578998139153908098611934136772555797110285709973623278547516985820607954969827091745933421988593226740057076206633525959424613697358562366084397919304088614130283281292574735497021981358493637338608255919531175000077656968924400917292359416874952961453476708644243523498395376868464800813102389825303717662496773111196909885448829858596110946957766456119907511708552254656827281124632713834958842721989256962113620082192228014782863291108857973528799824709944656306777952845671929206011017511247564201679650985969615921531307377107502784540550861259264599275101151759739061366551367494029204519075583198827611047828379942748279668560043526941195968283914865320480223672921127161592012136642529211991511042774523277346677753232179379538847335079646877720281322064970988519420913035327410693658263048483150538397307519666532919552650475393368060899613172320408168476322364597109013166018630608500018923585687145429779170063243059553143397954899736288223384316851011293953945882779273036987501945351965906033254050573587392501382492278582463660552855762453773840084895241728059847533493472388732954671418148425155161432203927573709890838783125590673794815726772951282653934695224176841940120591105767086430378423567961945668607951436449424264000662625315065856298827312880115122677999855539562933104802134200612968441131904899725576469792807961105136808801748420653179341830830543761493522037295537969777404480464519489705452046760426476936666955723316912054809113957372699225444283534937066840716314190138689701407580830325272129810207790411665242951292382555481799117778008909125484063659410581417102613274914529742043901155562604340811409089409371191178310542621989803031558126273992346953816077752275256579271132327746079619548533342538997058557242989363975624939169461887556089709955575503059327688783919954701308759811058181119015753801203232150409329243350698490618318955765158348521830769796784635124655407847820564294476891846583921018344498167765614111194967019222211250785667276906710689592383434839127736655213487250869865174835365147111900742791106789941484909621473051771317319195961293209084027718417155283368084114267048111265998328170830972542259991773211011589467362289018138483240834515990255211454815146207354152325488733282569748332328219784274064667512596759015781381541313738270020110464954140263419641804374738939197752308669153825388122485568002227034847707238317562564357930532725434626216880896385893852049882360932089149135651546417471149751347630348732261438187622617430119025966718702658789224029877262714935345235237096849098327225446277597452491021503653238145031410166777968744991053951431051672103421675788360111958033798992111733022538400245185909707286436412205598505821148474597391021339178794872064525645032963993708490580354445379710686004200072407811815682323074632254023691027239233839387168814241055839230234691391392259189699947467362966406232339008876220689839109106723377461924430326269886686007339341726229121815525315767752204838504198182432378283071554504737748582926907785324624121294217515059110176621375530582278340632896884199405706255165228230457927281619391696005787573824656045342613136458742642005173502296761888784136114905665806333601418620334409127690564310164897406771242378625964096619911135543812423903723922876979142390312604064589364663545044967687335967757960479354002494088515906275375018634671651753660789700009393886559328438310094398071179304908298238844477182775622671878629864111832368777826685284871210652324523239171305951181689841572391534293750824812444526557591584069710966516251740239666606725076629477016610673116919083576185390448188174621189854320525531742824377826446818526367892248253651883021530249905820780016526038994265207655844338646469616632011906421366550378362380785523005829394693147946710062445153792319856591451270246512067387843580283398975360346257638727879512361437516747315459389290896717657037210191468639726299532738381479154798559916734381737187851576636962264373472905439172597391397915077799514775063581017476327747911433019152033082695741510255687132911419015593284412635893578415268318034006566307327633845840629851242268250060023764847777594000446203179051260614776118047630479799864977779851431107476908320241209483063510931919506292534209232966221738693767201727400833760782015429623568672389447461787344793013772833548063228863677859573044624696888127987394496569409091117267637885408588153982388285655010196549362814042555006915869580189942968784627593159924697230420270989858127564781808866127796355098155711076376942562187805772285163079817910716492900428118382039583706990828436166773220596442115771862420144521279591002438563404009676346748623015256657953428883239155150167684848754456397744900892864080101088245049590632668412807696317175258509721204901959737499185066079174538294599317233028775800185248005353997444833072067073701604657486388636993443064269060420130959312182621964801770164222321567762607704979798457846158815275039443181419562992355429813119846545821776881028576390459133458404677161900626612320079367659152320873903926436431537812086185197077542503105257329061940671127760093025505073032210326832479928105665214693236502139603325859527183953201068078968035901080399232544912933398772310538004483034800784597905733685465851494709461540262618008220615004209851950241597959740579196229374195020767934796893101992474475324073428357309897762773317840649813508826701642050052912287662402577418609514380980902671762482335610036775309382256661505645925942443532365037423987601486121368548033335880880287738953537704917180089222263307031197525213149829788487653510000943959377000750990197690653493351793071118784374822929120719559215304128691303783139952966549927342452211349624098882981021163102612373279163061985365197016980031282145543735235159338188774964333567203384087088605612071783058057805866330506377492848923374491821590593467642334689179804437509391457957371976139587169053533902983434879988604138560236002558589480456787523885620657871497880698567634819433977326020142817728612071096203359517983066920467822450517707766776747736546545906477714254804530764008915739438282730680461768386297145475323468604588162842623163812900884367591069212284236002343761533707303036649057832964541360918596359283704817085267447216380068809896654489567572816408598013339604436288694474214138814377473147236016857254199445447687234472526650016784203532034949165657542000287966974693259392377523782152191188331552959486853181501149639750152490319168825822687427193439127922961157157499414351682829364488503291047033465890374726142389617334389723396874799275208599113040613052492901420804748057296945604735435860469828391859719193295336697894549462330511185701717243205396583260287005804559418595870470389084636984337523273881938511112298669435713611834219054399722851911237997978340497117052811381008790070649662496206092988748927526848643471454012621148030509921829436484229534600704709653514541676141950044872713733677575887397042920512744013816319720789198332482520853869331575509506694249999921826216650481437000721640860815487515695040694653960930071107915940943432694652460226072047517719329700753308575366013763241870112331652838346670197952701770422386060422802599386930882364261201442820455754441426787576223612762673712643174717908733622022816473617206351650971589911047546422092526238978068881141043158222737015578767378948866675859442430183570258807327991513598278904538546995610728342648529368446152589227024807435058979022820092653865915395696381174347162161172602729361926121360196419577699050557556480005557421079293569046467858764307532743794493655597320024282141668381575019233232568063583850490622319313815481128328481914650948026020524609748055348337879915214160205774623531099265310750466199392538917216445234987869672671634845946821204290011782217822322824313131461048557946023861901784856995757241643389274851818342162318301887242917593907497233213444623867242896116941658683419963312354179216852248587067357182620136776221731638528936507667097680531270896009168228156168838363498552282157851581851758341859080734878942013710969399818081700609209008884467471603564526275361310548569802538790275045852298808920265320261410776004440885622639044448851805488023475992186806619760800392710416759354213337968436030031611351550802342439602187374613965410815467056663683419794544696125272598314192755423871698128981510301633557020293369276913417149962832771200100551217802521642251488548655219658853791478036119532333929027922530237091678376155440615084149502143548090141352097173753540841132034347665446501294345656003759707356320496404853301149287099884488749135158768389336816718419080468994672585493421984546491536034078314609974772254798182136231106883237800614176777583083918199966210953872598600558353007871189644871794439959925638467169897509496911828260284037173705060512385479007749279087626507473671700820026261355770535536908329814335272302040737363861674878010150826884673676423310667104748501873146839586587949996588908690242083337985134891406317298426845741199544640462579691618230313856534785630065628399277497958245236338221791663188700397186197663400608832341523207815875042586289039890412420089450819479899241948214518180165120569320205835267619464243001240654730993967828245545538855661747257710048528901819283946390870698598282634845071435769802907641228190048333148117754610589108698872966937573203764117709604758086211074806869610713132688313978934501527897046155531570247773750936495052192973783669480996472372408675579181909931199269859462116521912060310614533883821985863400200459105452795635891362996397495811914276047313320248384304199614010793574100238182885586198303792067259959241003336650232796674483783517903522314958226139121607482399089941131698921721431911553900571190624024266621274549755758493942451115731456390866346231047972455867164442534372642029375614977181038214126025500435845768979297438928422677740516099081210936065500069333263871056716064356514538767683652317929231294944133468852404518761730681259842301134000508070745888690407566876807670666694197527931963985356142423019995400983911124379594671897904282126242018319215497623714154363143436827727443041771981567869373768363805265934814253291102172480816333736121273619134107234911173114878975221102103526440993718885850769762342152082527841078933595143666622449185782699817437561568804689239249969040551709204512646758115837450376613830118119395188813539764006430118148779032994168857415932750070060109485869843306972911707794988379959618411238610904831160801067054546449571472802000086226362828783507897739950260759678581529472308056995163821095303369123306923114391912943959775998436750727512743649598701205832233582604899884640136572231415015398468314950266255017524235345434521022484356143157799558512864372059942764819207078044813859660020718036679397527276276028431940372299480679410133874395046002270624748701268002210580954717174329018949317784698535431136248459667377776610475991962585759625837046927476907366413346623151016088597783296433397412049008169364954069478635778707351389885987538296410074420447116811445128870068503491476594415038423983131067695571383402947617578034004356600175178393623628592263241779560692609991207300408754478194450038987413088046526982298902083054630626686685280653592323980384778246647108673310220075603162368019054000155010527147525964472655578687139584725036917953016205041789573037894606311651406273765812717152677320671114357076486137202111520441674100036443391439382642098282185806894075940669937585483411702634567068737763012792617807031655916150610408572940566406605862936014238395150513040401889065236846385366670639690250786683782680194650053609062733265833639474473342008785729445736034872012641856793635623112430259221650365921339274084828816177709026560756173680723184048827770133722268190311632609514121184283869727509591492736803130531898779114879073187229575844720095050773924544258458756030629554212346852653937793061017876826277665745081533165381164356255212453366658619033126218211481478785246623733369937783716403662875862728367286230256918105110244607621310193479305010343509128323298829089021834552643894935295813377977260617604054913498640684930051245509046976827370373913239941750422534840566631658372628553139767959195342726463818789871914943582200113362425432227822565911456315436835396026207151181228105541436189338590055968058520740440087532474173449381677155496830006645832935097604164802957140495225227587029794379326011764074142740264864057948986615039423171398160525633986697818556052447012476391616876023760275921804698352147270441250601696483820976162089612913825705358214915225318702806621381396801739398199301101646725407114566872371820489998615495443806736338404932296915295550029495886958915279094998420770606277465715197413803188640805514538156513156365093328458517493838107819179441484550488193376419812288055417481251041722290224170841811422162065386412469678136814761513747087683823763326140592902929356247746791313896997241389968612875996611435349117636571855433422377251984646796589488173593654097997743247141211923663638311143438158658615450073648440202420164137949720870060590404758875949771945144715306798894283213986858121137903314579915431158084829730584505505618116624413608284538472919881066873771937723501858926149072413668541028566495680768256757394483023571016399747118219818103869221324667649619825647755946230105141503033464038004524908702335465606835421041677047425100938067739426235885683307048799813550429083012944528439182933939592007972198225596179703185639179143194887846413761486005578216719006553601563652333408506596908449126153883061755396601453445372863126430395244528591921862740035320191302509619023101567151072139299820924391156116510129638596805644574030443382671873231043229333753032501416788876411528765667515409282028680361902011741448670934123470652403390066376208535072435007816743514603224970353518132917314581983836392098561332425658927319560424463007811752898573121445902211578377252260750247372819437455331917693382702073500244523358213185436938603427755793566157878249011628374028580520362174667644568237369662017642780141183595500074214677543761336959473501981937964949284996496634801252964093615603781166267135651083423703768373095799610507962474802887293449238225647016217460296297604231515588119495245967127000938481860131392669047110719443382666138616649702705775175095575296233849214240581800603754062243441698034572574690285529651204645917528978707961783721473074035097232998790622461297510448058033051990545412876774916560120312282451308614136116105098591403727081880640332929129368011675116236655844825989527613957265074442345264129467866706867490314810695336503085542079188916963153221454065752845092659155927035850435172496535418389489502323535754135259734743903468742158336832219365190193464227845025773606160945789301480745107933958378059910260487201474558718135710109871958300881111720893815291703589772634592760809350351763001268177605114483766900846162089175312883880985421953040492789980721157274827331892274798293726887619342314741274009236096086699263809730668033349043747603190838018095392893119059208080877100083935670607774127993468269564879447639801500952518331027315687381848632390190190309078550367586848932674801886869774016888340235053112420397074976282820159800893199027416236408984028303921924978882907233835827495072229604885514000761298623121764405693398997248575463726684211774168747503101436682906092041765280059231318944934545809184944410061575569329123924475847621972179544416730733134654782006113980717689959868768614963680823608941607224236723830351164792775504594897133456279976823983811655759580440254605027050325319552196236756102711821357368374782945809430253804243915855482636969125089390316470152038267270587627228902697893478464163929245757846049667763460990600663989471295094363930019228151497481150027846546619744441372997448134117949103480234924849408576796222226600915986674114389749604298527580934429704326778336919624841691184381451540473622192910552059042395882170912565366970881993447165386799109399978684735997801879929912597952669558977128541543639662944796661573891511378455407955736737625752443055837892825952093711483092204318742700025055047867084722518387608197662486409603107986029141715844678376159947174004561789213482359555700044366223485898318868101049607254051043428550489805158433781298962215278143720409144976850892366027012934278985981859226265308104628049340714865150565362185430877856605043696129584946899233204941230259384879009162974775668027494860827535325389477380473200431246762269952451227096074537066315824109151311079290409764793204737004415402387876045732615392480100270876202059193897221597340729197185640973560761341889524619510813846971670840107080326452714030472281790562986686879166116567565729636995064623345781998349646788120516235474522156607732584059686570677724097836984380142160286781821729215429281648750655990785105299069464746197700020273056180766693823956591211371715137415524182198609815796713980678337535686855485050184010735785117241337089615868914992863493473476206911669755729202795073455307239148807460583451349538978997509212683271176123305480858604626001181628167189768003403075618289257311179656072394603965722864116549936659351346036048682122716437057463565123341171526205505373159151247944392846004087231463028447071490702120452336396758928432057563214769090112141714145663638917686380620841454593469316802076072091701939713453209314257688187598895535178505903580271354045494628251869104486666583826466793577016053382137121626955015895040662093421099250083604755198638123399901507199678318442045760479926878575036726284889544392305202070320601006363579186893644001777381218719833096187064778059945653129045759611584723337004349158435375988584919744810042851009593585564841710609459173069095945304909094766018245725651715125985318068726640100193211954103308325832902205623472549586362625793019159883330854142784904665353374014231067650219406167200558379925854359548863877538700266559619916308544047219374506890597804769216575091031495518109257236007134743555569600898129425809539907144576278941755535064217777241200917373949313447616106422603327935208469218365705044565852978269505030338701364155233747381149463800762785861229858859646495142579583204845586139254831059500172563362377789694761142668423545491226305325592591795736576560133398175894429566891251018875358514199538675067319475018485987880485618283148422440328294895958750331122860568168954888369275669094084383468302093274074158262829065352216981312755044896839084708797400810562215164944730982835920342339160204673401559460761271250140786083410577940715159260732464698634508358181408484016208380512280774688464108301785411126737998497971266089011563631412318003882975361590906209790062916687133852179585561486569671692043061861770554490955978800784333592960000586628260199270517130344586194499813510303457714346376993322536517256647799500315631248384825752329827814395482882973728086525493142982928609176672355303381419410653629402856579304490684470094702431887633224456053590701276483137844822706431486590220250610391404486259719006914528762660105059085638278506901145515657713874734757720891087259466699035718465233352605958171869634871555760598882479713999929309235913144877629574951550830723813654600822593582726220678673694368239196063796833459441098171830910080452543956118792227519627612495006846213010597403606450398212309078298694851170873585667065723940919177250726090264988136951578715868561459239441070029598977115047000133489594929540611989240197403514973920097500916393444908392063515422769737346067158293310529009289187859107630573459555181526463197606050739848051653964986726393271747953604715157226429939524788941463345729875728963309338278361880166054676551124815299514513451382995808127799892096306947152951842044214405728761954727795100260396180254929988722423707483802865725520555895077031636089322881362700759095787193958304903190652124908318699668603869321582603715261741745215828724885246414105167214412795743115648405237775390229465293852649936343318928348826423539212930287748818135303532366406194843092470262804909687149794159704358281012711342814567583452710787997644504451239604114102936883252255422208210965656155244513709493800594137682786294172007653118706877803446271433087625238056561017649995169686227214655757607768910728617188748935103617961185959054828960550003242321385317733353629902051907386549918960191522674165104426227589899293637923294648646629824199800764875009227135117881319530147515576156411279828174898970716115540169226884220089205341241573332899306985554857906873318884093244947081569542712715095705002197675553403382212224762996474231941080587741713110861677686311477496155800908192987129585575469146658037913901981146406511098918322844321714780351209451908725303112933522448714919959743647766195657567349959817361633535785564178181149059520621802823512141289513235817683586336194592872860329280687655484031728470617840766748772609671473662715168398300089334036680671232980397382384160856656893032167038337591088487288132468571934464771858352592532911197964212130100703839643732338146256829756094330173499497336336535585847691398939070129027813461462283426189585940843725192014266199427290066246491165056125862771363330143380140053946624448829525942067446831320860891763875181027182670835442366071987668829207779730565155957055470889524787331813131171161648275890115760449256918975391424049781220612285176328172474891493026736722749462278049804057121321881528047359778432655533774456248129754659379138280742873607396253355423035971028115061038795021556416718437486288740308493162183614452479962359880509891894441631708282732464399262444277768756188068941727100867149385395935099193598762593342281722196751364751373304295120284638149792836017796440419995916794322542136127596471603556350352527327168767655210786950910154237988053940905391289715705454669801998152368946476094338627431391342497834040607682601845649694950348091262608571292077048080513503628363742823621671305176620039920880408799939898856914768295401890336060002769635942918536131918098283004502807850737025002953214957899084917168367541920528511821885353336519144364430070347802771379071899652298115214133106277042011741831407008259367766235452865710797496923176471333675518356542368599786164240957349661645583534670377880604028350224665387790110729331858544130731750178087833635320927186893256217490757354534051122348274386909438252657513363136198872930155946605844737687817846895190874077480171968454632712409359850455843627578876056049441427429088013476568740632163285236378745463058904299488901396277643635331660728156808912882030509634748340295408041523609256396351552342336799435814375069240539072400498815267608568580140288769408170958518472311794612166139488275687346940361832069883199325719118926672300830325879649106140691958123871401843831134535916623621031538088118316207430285015101844954890854275909545820795405298392083294712734228033848109740949781343360013672258014043427109662991178051805501295936188724287833772865197991325017468115341928900930374457471361572036019089365782041763280338211096351440310847359328824753448381595997471058915456770175678754498562677673690679695595914095152058141682498218701966677071551689068027170751206247273018624110527048820554234592332665045825021115534180535796086078497265930049305112476292935718576088032071679637011044380642664721802883102642410225564495843510602343227756566034741521612114078309609136184677111556084291096622053314385200247889182101411738089325318823829437829226170051258473266323977729624898860116729099211415683682045740411054424825454853388537248978031410136543954670281759566834331127951412186933520100747216217062874637849199736900572988717331552151016150027564767650147747590503399636619891116169230427229507639022197577680831408636289909194885665598833043769471911273725761628192097740283190437536694222202472366459981130710000847754529290872025533598932761610786162121696730908354040925250884600485998241161716658661260173233573677501372386132622003507270664918671709305067615045810033420446117419298895269624552160364265160632681691309193173728512731994590596481510738736009617489133865516127468588272153259748301053963973339845625163511613199529785494922803097338202463534061868431227533885406861182773854285175978349709258722529685577836115611260025551500602764674892979797620963606374756007346100692437991569802767793474554663325314925804517161539597412926034796236690689502845587729359782875037986965255736844739711548301689551093889095726176052281159190300876121239395740505417916925521938152550005790733881570762432774070192164694307142112145991383600130055773145440170479307647232135695502311881605585119983693803759821750113745233988834334611107721784533034391954064907210334368337877673240527637632083423940783556366785876005425449696555237019470245596668844641718124804154013473633121667683747232026230718037793499568116978085170046721985021962190291998739245141966780660432131595702241425824297257386892610616150256049764225811435393563656977645607992996325531780100651374419158678792506788084049320971034151744644497542263906306320101001605253583779099872057442447190744117264872311188551516111045161263759346297298269802436811845237991041309007005010138882355748067813971712527271729446594558396435317230706721125956185366037320247725333954815273029922388830977232391744362135151944360026861523504106629275645898374918901359828038292486105325783940724761298654614330122339567964496995107909767529482986914346320296046610502388528768032924918339644892475600467987995541625525745882208414721812205979678501903931350339124719442156637213537478425581433706450280274921721328948342058451858612671056719735499186859956676323882351754367527855787141065338656603979796009245425370173301457755813496912089440074340001956641401886017529912904748978522825330057490963438620444772754915752120744940907490931011121831381226130339720358950295633432955802927537040716993710947937714687068863707488070367877107344516931388096331916312833944916363931307109242496033724524601121785295537214890117368331097957643054031076164417432030805872064405723077467195977576786751526170871793866341245629756430237542040407827971406405892128111271036166981872043106526037727191678599061502717020049609539042395680603053510509907205063359701377871787800438653251352012422635347463881154332299016219954329055957824511682371252953429517887548297495495918476382956300763047557678173705708731171024298987710337434848829522022768031978493885737813633318538154381756019974149246626548756322929025725829872439793661473338158014221615500183667743480085416025731562834145561430549452497039781634588757119785323864230896975776154005686905206060075590997099886075598360374530186639932371228485943634791181915522876918838159451594260114163349915590283546568984945433915127701098974778503166304475773529603257340695241571331381700346452746169875766708419836410807482018398546296739959761408225127854583436796567442335363979517295004604232253042689986449636368153631992205834477674752132859428574179867490192991890501636706028611866708229695983697457038752325828119837872904516679149929408347390263725970819024151696413205490269317587424138565817597390270638651605301800716914026861480797293047086255206045368373936228188159805603308280646611621111026656388679804061222491481949341832981932675764890797405057250099122419543987437143176350635112379104353141955539283956278186600746796239278950577485664134745544241081107090877266108898450895404263968206686744134349084958166483447132532768255402275228119213839753051092455268285868297204232204493809582287548421472345597741265986873726008408316972959188652098176998680829177769059456965535911890437713357792598830836803831453942175026725940866966053547143373363118056869515922154881004992491879431042717086678255550214382785389618421552583147662466504798645372365660567322313807028954376335114402988614566499783464185460003496851611104487243566879940021903130412507667809728998064730364583559177479927889145509409519733334926581974484333917072989571686873303851534812238091627885885474169099526825932438619832551979345395902106210851349363423809413211822465492319816319527514538660321611135701789700958301658407611161392776601679444761890740140585718513740158297954867861145429563219125448917840945305558707203497567023642411913165831229030425922593576686382544038378992846596377306679036938039559792639134973445116721952371470631473610544383542278912123051278789676889937484166477161760705519997561946075238481162462191546747124761357461744224900172572507313501713046201765237047855003450542929780956665897318755639983182417172150373761818518234148376370981685535285438884051238507714264939328556221059348122330160052073866934452258679693696395162033751860895947382889089332028292297716485349162002588884469017611861764412749516334850942652953747829199158775657452423064388618399354615871353884344744334500689082695165189594735100181072237077924291408859041413627490836271420708478018998628954655817588650229122083966261380736459191235938606547370415227409964086568256112443463584807105869037435686485840471712456425994815141387929746974140680279903510736836216350316979648863166026733707057819714402037615197499203788347954839501350322249395620586630874547056654385411748399232463200445000945963496685546532231694674484272407059995179869534763547626404215680216040553866787046977800011570704898408062709140719529933189578423524629198075510239169207201878061243674625724722385488441371217100625595062705397676396933960062183407948643150633173616404902933764002333092624034825626048459412844887983033460871121881661855173507914747270735705334185410869787984729086212590186128360467436046305100870308857803111490909381224746656182220397239935502093257298622599624995817102866541168691689128032479818085436184315612576277397426931860032320597319032589747688702408771207502116691065591495638179308415199112419158223395554765634838321495791946988926349462989144812049522185173781640277445404264085602510427155624596291329971455498658202046149170304614499684743176443135142639298930499983840357787972560460121328143518099685164092965548159870688889078946247165945362623796562407361871979861998979435891802577134081951434104961889923749504349734473550480398565698642596520646145723984477315720668141863725854771220709068904653291129421499452627544572630823154084950823297633299744241044410726664732221552577949778944371687271482076674410764110551394581798025541840441709592155932359677231504852887743109693565973114241319923284343575844302881652302433107529482787974266689139180012865979559409325809047344037665574914346197540153804132417555118864077741971911428684795050687653910424379721435144111256863887899947451951379930826732321687463864259533006084412930465916775953971994238223954422185015702492448691848087488583192128209847093262312911048328214257256372242430057212867335479086271321142361423566112036770008443458497245275429393154160632991072665414167270655562588179758533030334778495556569519711637554736599716800589076240963968404780178518836852789673502805818293473391975660000976507895263264899168322090773885434765607437289837655137113822900755912193860387158319891873761399800169312351709494478540852960769976237570889804265390874167149645090020022953297471951528858134955757328746856621111346145808706416788399322358885063418416052025075714669466365562224069327691906831564480400815783822767038562501272093994765225085253981567042358189392735299570677057847766977994736665762170145291597067489240409873125378508137956598968967961372764508746566899372555698600951130098456435991553117548934722079589318910999687127144910023908365534962187176788441424835338993419502450207745929851939672368605025457978170508772298512065788337911949038171307981625482503142928233151488854112537511872175315614311490446784698322227856027588418857528299462228727309091087721110029050068267052344609512952779595700419054266751005423110932486314921214052169052426090273756716207319199027536407319756619952209481329226694966131961206087619134074335630077877141790629041117267628507693911804953767291269522930468313759590840936183375481549274540561735173790080398227474840244113328821185374476050015676093120683139619381991974496026699923726509285384247688921346209505556012000950884764899919271719117931806872193847180252397720828687116468883863234566350456780089092924862033860657732230957574602424017966226294932710043470713308591411118005842830955857722784623745325054674406514587587453469769262269906172588683777771139972729802386676318195152573684289796747495692422211666976834279235922339575925388236139806345568734654958848967713661547538527623690978489755496005561007820721340735518366517367924813649824810415182676873772513314731786093920446394906000999569610965790684450750505689248044045591476689205887404518718997810373575811594616772172720917448108766428531350205841771917868630862649044593265022906434256288876457303448349607327967508490318395877386068420049883594827846411104358459361673672984148264095010878084355724506362332652016717149665941374927433867547284858399866989206910156717610219429024546748428192511218167465565138329513576370696493790273678087837865587188111717393337842882993175558644083026348460609718021800154954108428685154421279829088042192968795716343838349629914622770878468866602145515069759373690347985314362352926444324874210185340739330037090644503712186978894914541624929712626002116024448721518381666318679364852550412408546717913846439996786131962575708640641310732612503259028520544018952467425802322202521060286459306104287728855160859234050475433514425947097093708883958950598786229717465396440297424799358106382854047631344858606720575725128385493621130002860722522943192705739174259068207990834656233884595744916009399500819292578752127866411987651668426344704199589458300249298734184794026653109784136394027265843726782451808471652045831289112635152220513683696520478331735653517073621472896454934042676991737224608742020661606385567086173755681612286067262717866851495135089339231275609578214155463861731340636327026710203974777347559268022323045376086551104438464677879548058578277567394786752266556047948951320129606553424433105601245992582076337667517654329172213906117432866303527724761802337572783743869326615859533390417185399795193409761264281097452879916466504534831402140663315274781401139829694583556143336552051894172891865009304313300629327077494425124305662483211490455862507548582420804393143648079677522337268922239238930818469945057755762080957694842498814668033374838821138630771873955105441904611844253775903929241427726532280297243441825710765774457852088285952269330572329611914744756424738581094656970322029603354259116652205242762509830314792756291711954340508166284001477398845472923763380765879652226697498924936254177449646380656863312561136195737138024633904308102353972111676346347353325520431162051584540291460825896001013835813232695175682299355565866780329415636224495363842611203523528579032153328088475341711588114666640077674646921287423014809671280612546594430748232453682564238633001451292517316154230886183838913398955075074609319012579883446627668530985318150161688317486376009681563765184001329874891979329714839060557489814598819882322437872457782092071425906634070551244383637396317814460991181403331959576632601358227958192091311464948637489794928143139745795841330169439694375664908588188597148680298896744465177068423667581255058455260575560644313309637806123082810520109354600800232692730492573007556173810252235151987432498730021933054554925411014559956438304929620201185366097814868153018039361269423072241729580483485061959039564186645889729522942140911144841130101090237701212418205970358681354472055268659814652499839527531525076269486678609101237970423309549651005713293343921534426521336391207390033365975636043168961151167376458117171705089070531728061511891508576379754227208416565106516452922881546799514562340013151418691771098448257775877039091007672294741962675984678240099902214726814563827964435806257822566993704160368907677668679212455380759494989344564781196854210132958578773869155689583653390795548946448761984266635577912942968147644027581552157442764094787469576959161244334219377011005923877816607293059776407891164197086291643652356635913562605715617997456569637447595007607123927321943856259599038753219644127068668446882988320995585037818773572291478951061868528291857662166038506661757942702008427599848033568493004195837573294028758008382714750021743566271737358536922802095438757943772970589606182012837092211426954180128417740509102620277031723502245633405356033569483674092552103804604553661130806490687732694765275822943099771298730688169530109739185343382754047520217431040039151350219402775661316189721522196945959069447651399546841639984863230043648736963895500072123570815634936098700160504198765017707112496508340433789438276868885490813851251354826885423605074357623645170338512778310261043045013528828624815602413911613515773269684551718306173410618283384423652449344996600865117336190399333607677485590796705443004796839741408747877561434834614679509322930723131183305789942691164324031417782266884790892752779181848485506967874705918040428978724633526533396609776837434817230519191417383677339540295443925552144149025281997527974648172234126228307928677929384434280637500367269026723136702382950303283999045219966053074304217307290391119666221482789336582296525408241912768274243687799935938288720606994204166836817371641604413925394053436788335983817914836385819949216252340500007691099793368311884795246537016513057611535606065878928899568721409646547022488521524274895240786935313899841283317312955735432555805572739239596197588753313507383038176729129933486355069166975518829585393204888151312351175837153073649914350985775336127615530669744034292371567382562439502701962827596607554942635754624219581481395802887831218886090023899370532324417076630254948308858255175491109556106401062442478748569446445261269112282473996373590973157584088382054230357301011421770447746963864798625382354746905403480606219011691672385621493528024567926709918301483948911592447881263898011844670669061886799080620188705553652821923776395521423985380142376785049388896913923941397740386675570504028350907127045904744621199022974504725757538627348423315133047074672898376150308257973446769222754970370749141616465753502888158777539442186497013801320757683402735535124382574107185516023731560263956815967479676822891711310951521328922487272955256995761598870352275653036274008200653055798975460536846252238344741127627836998381735821713526363326410462916025302805160714806899634255024035457518929067954051140508203067889252204316669836451301588724268112708913778755484013628985194651918721361752689331687954063772126417882509323570107039538948815310100310997959611508981475375401393140966053109683240161424460938346108659918412317073107712483466509893988798212951285847869134622739901932555831605141972085847422163099104213920393315825537051768900619403613756811488997757109602728816116609296334640395814701338812187216941112637451982901754440009166104575655130801510730300119570202163941092210721508375620697745814493205804938070549790964183650888685159478432638679736163161828286428946910286060387723398446808643996639859814432988655715408919886479156330357982284395137644254395675282091855086091848602877981789667525046141922774216381702475451441604138762072028238434764549766946630661673562833901051288299354308061656057489011641857585918081230013301119564606752692145904394088337319406467989654277594099286490377998020896994231663377202509784123957049284166480486153213035474990798100612659885670502677369896967439293118529348396252283838508566466136039213342817886592486714338841644411311444536774836920870891845253829463816623650413217092890726535708769908035833033456699789978039712878232748555212763513483629277905405036696207676627265858752973807281902414536676460143343456164339809489343486784947052168782968654518417559247768938268208265839995205440734575313587181351233623367194649248737734456605443191448908019569109065626086473041280664645587995897982917916019636713948762495107541871507724427463995613036747336668591879686063731556389213596389591435351234800638933879775652171002628212461801741305128239105867991663359958039081069789023807723619810505958685962002071639663069373313392253081600225322198582151644875849117407555807071871273631331339152827028220776193396232883637099739557386067384928474195766568205718762669380346317700835527736060250478662352112693124035776654585053098166311710101159281742836213210154693307846650338829511420928969424014828376956297089433106510484905641531562504829059398680422523840179610794403094772465813759706772155274683521990620235978635372694347211078728499776665951145549439357421846569735498595197391155530071074347546392336719427428126904084536736717163270731605627089960055662198639884275562148315235939142584547276357323947199048957855538400394403840386107294941564359179138875627746707622200301651439389305546154194414503383085675848679327182858074139228696695011585010767163041499495248102065106318027062907774803006285525630991828347101677607445768930736880141962247578056992441893233956907790764360745748681057636806104703108420779455516517249880256580470801153347261613127071110730397512943507024815949151646220252056714961280364287465532698199504477815361990427411702316501872019487558388042650963686888247102006889688872942212428602633114203621428035054395709923481721191072275213509945942624122573253926249134023852896537034319176562896759606639861150427892126253211300931363565379822469584332980969095997766107964916070388755628165685535816399895080751379468029029841679962972989438028698478208153945419893662780335829749943468349104119912190041655925012775169870179472177880119162070393399911321673258579451892568990539420214524893868395480663770091618322589691072463315672333925630662663153017932524083730210268644679252031386081037702394557769825451940848358399774417859219331373202683023888137221720594739095764674393922032700434863048041812784611755342631574302071889991872223200724060506134606285344663604721776407526819776641559656191183180599003981336596147331118236782292434606943006814142463649625980750049977359011687906763222193495505785058785944342684649566861236566977535478096022541106179160048861351737262096095873588051533313868703921716438271948072154795780657812728894593569720734227083429512098429668028097338767930501780890744987192484921027391349775240548952108745515423586037572739465045279571311412279062551500320804373406504964096601149782759745634387569068714357205236378868113450188904743532184321521428638048084154663530443539359226122948325862048929313041231390520202139406227231276614655227331061700227161228522767711267491023510181984858705220051582691280220097727049720737443781089887120857700156549352260382310005406949760281115066919681942801216322220705600719104017676139695990234320149435212725653952789364883094195145126670798361109313786553747612547446328279819862498606816007690971970708799234251653856241561314674623949090039846732314221684322489557789783041225447272904666306403611955452116324929038313196422785125279231222001517664105447146612037739367828491082901766428829149070295968244465663157051122639707764513879307019787257945075093850049832131950383266709958390755270654925015310053112664679053452448058119655275447739951355416689698079684219780743885704837734384521808968242055459623189283330533473035363693535715295652088556660202091452274090553871589276140835871844131823497826627252053847798560686645359924920348050506173210426953162407552816599986011369743082560052491321127475168607947382673339203406414533338492592362350935258080425129619735362336488548006560683184217686262473495628780192640859148667297914338018470017916917997184663837036774233478543848712224947453194029209963395745613482812111986592687215129987927397284957930206416954889359597340118669130017529349847399847955885476769139232373111647962947761399791175759158728513465690555324676942029800090896738240125927763110074933573327705972589333190845604479491414810318256101636940039410978926453165790221891311465191144138181299248906690800554669967598120854957701601096657915531935215551644632615236094813201630679165874939413837584416992497532364202449878931726409063800486323976071734094287375459031421675467900559534162701297193576860391482158645895057935609863560264217809181503133760356847539323421121601766538182976653589426508123819635823189907865364746587476045150297564788626587829524952199961442350836501574588302806360403683848641849035459845353407193023907864609888504765869032386594780726518044574336929858150825249270122647169056079457931556580856328455210260466068206673443791190242221634423012610593779736489673042915024982234231723436065794462094605195959925958046374329326906059638617280146172449399093581885353774051648725327626144880412355831983122863387483951749852880194750846833906026939469194821650669580286020587021072519282848425085607885999050160644716657940000827891239718285999728435317455700256360434039952752018331285335733572963451486816048777317187124030700619225820123032513627445101981121722093040909616731609919851625852875961078965687563344250173068607913982338862504377531978334622026665515248933919728735073107702575290117637373378774293588491738775892859724761200037947344234333785514407955951761566019580204863597624369172436505454278908532096699167623650443581923538347270708400402007246513923544583440341487326620255155420252031223487566894595361729615446959646347404642199714054874011334030547935306181110795075499606917743562140866560705465084274570440458093497598977816779208000745147134803940162208573719478880163990197826343166621766980332568312195749824813500473526732953207743429303240912705997047958135230546473978541291349069596636768454051115300611965862601839062626518411136550652248457067269157345417748798560979585131649259080485777079106327738362110328448173988982147930881574339371050651532160970064385540421927446309512467023144694512590066410922056820215143617650393281371669659249795987014840293691239744787765860316281457194994112923960194223436201564149854459585661728909633861785520433683431324605709932533722048150513219916305806950802085244069989762795043938739288315516514779211508968977430997649295853419928872620672853605729301475084025915932517884275805044867818953496975140401575376606161968201704764093023023819419937466781788799430723158841504196550755856636085261640506548036335470588530402064268709818237546167456898137099929058354030959132771670693129101569400113325806691911831076581782999925740209917992121333699920172466593687317105270647673019021629985480062989523243427579323785410551349808476846063465305227929955898428863396226362248750806592312085643721826820412978427165559304960971478883347137180831275966005541584453632277767351168330191641753480359560640067659287393089636995757184080471951752421917994434756885599615039848704910431860602232608924543971339590555165788924196280255473072523539405032796733491933511043093171907505078675303478114564113500992275574657994954486447015000772297803270402439359857231481002860616014536946819830949752582163452134922560153313105607659026380865046571034845635631577276953812607510643141258844664920419277108202615283197639474937189032019100306556084954747754015020811250414969469238271998123929980379691464240168374315830570679222343848512271214995987788245160874666949058215578531725883925011103161227286190115234551293712612758407054124718916342159139347855465336743547595209319331247176673028268551769671352264344420635653974076356091548804038568562052574078976927261786316749733938045248399366408212764530918123420630380927845036543259816047643508703297138460444409805707179504459530806350455025833953751465551407813470942672235624255321314702913989893531827157307871618628326381575583340201916394751237239773175597288552463367653290601591647127461965755804931554601520810527987655224555296571821762132593341858035787718542270092741270795599773165165434887804663407222181420478927774763004037998929209318581396201612681197777393511385499078573691597232802322436111492215640075051563240174620926778069032071733901316288868717269839035725506503529809332689968682128852840231785708227338669931711949977241386601968503581274711624789765891210226322692829007992424370527855843244248639586619500641388601384766052594616571814498913403617140343508507265911353457607652105268850166086929979628626137001337079216832059351247835986701019699162617718879961981049834183210600672293983484565276356531770609373092173795466216934295297237582845033552933599928362112703823962683663019066267489694118142156448191236824788826251788215682391064268349644613766101250540498858399176136174674197247031485715490257799819164070615807783122530973721837030145221168944072069435884636286974154038188857844677530205717745969946800067524022950948118282859854326902723875049585959201725621720979588260856036327848252288678147576886677140158154974596368176952583171520365739698276874105714474143528401404756595835882521544861384218711709683410987293915245534919720368349281044585268454433476712218571671989023131313063963088686280269295014032256506647688429411311171020325067241906406273154682203630270956420872912469193932149946276911154808360468223069716656494965215492115065624284880268964836116269860114428887549060554942155820372498918620471163968405466324405534754183302961415247071841833294609893251224425722063863605224295999355073938193527509277173502345531150188622105572203535213024386873498683243841262406225559122164328446141155092329906073735564949389895906196249134848607738783710935086449683436350405242863588843287492350185865932362184937634405074787806410524434535115384437517902714390069159767608410972571505204372095860473688691653075945391051047463010332757329933477638000758049185753493855147260154785131682689104280542385802235840380579084959300366350871182042044926390862700835914955804127919473033336276033287054223213151981484579012465335665555704098977295354208900064703401233661170325127043427981724061011796233303163698594741312772336951095818773181068597670716249125332604869554900214182180687566585726807820567624845108110273194121033732819636319154415482389268637853867694855990682781563445870843269477083777894027874191602700367048294821555242051136884767789776118718412600708898061604538097402884712704505513198863557253750843693201807027529832743232145582472844035617382738471257228160846919434093411459963383643605140255887423580795404191345094150871376568993076700091821083661270921258767410068108021004760483145699965814747340877746984035566027618035711109287703529280641664036543638510359531478597127797118485133716388292696955280952975679691122140230833209793083480179621081561483909337607885317232523352504709910914902705582319931835731532001985949751778585292367837840609318435974685587256691659528743436144652803600841894990739805304228302865279203035535738614476673638625623012315494458162130633821785507719367770885821620002685305639217608593496577115050965075893214737058672406419868495762952285409324970669743809807272702502374144872477448357676867140407501937834113050531797144163608541704037303331010525733377537167563742735778936556369099832158230257831628449092359744321914618418891858289804716030671675096663766564365918730939280448066925565835331720174309479230210547135138937696316113956914352927420149814649804643052222956780030193943333108207632931630564684847181222957508071991339915369078093071800058814568352054893401772720838720093296574821385491178156203315210115358202007307058901668886463909960209620906241530407416928110838267395373732445992894157979253417206017610324750457553245416578177944316953544968921362806257447574683046046368645207748636907330702364104529605681198763999104728477463863766489641877031411250717722896653372726398563002112461831611779441499190764972170183936064493793427924425204746527894481303109823056189034246906263616025495594919134856952678657697721063914087853227579206280925176828363067127878291343674124983510870079685334073352370103210026968661934845136692065187671913427296247339883224189049860731670631757281329489812129605647177553579321136536612065901392208474813535998397134157486639643891551395084869600911428899804731731549184513025877878527883017296980374543552832048348611220432621063818026548632167676514577184084248105947965611873089947981729480166262058449409177168625741258056361873896097719324675869289548288318125073038922634867258424344194837301029540269534118498072717047115078915916692831268258905717023944648337944437550022441242497057440374337301329380067348556259599706361467508533228772822364068625816561276761897742498824019721220955913607507593385988512155915986711145957644506699927735210295318387458279433909344808619888769307737064249727079193286663971319242394976562604025009683470173427694832040468246032375281362604682974831116963112806544160702570204345328659477055757955482816962721228006208895265216635245614659918895459817130648892361166500089441195007103098919882126002571858963897629741130947910598539943950509193168123855189221899125460407681905366638180495033297059234981169590038258168030812558188048281997043149044993694349609120015601616842700383313075299881408924539410241414901365001657556036998498605645478774557662534613393936003632351025253625760003714569382245716052227950061988279330424999610314583657143363003335686389844658901866241445919248813761952461267375164283639843972971508945273672229023817180925769575099706160228912077138809472702025671374783990818342418091508976836546360677901141259859239355872230066838415141474533726380783590933688450807331065885208813633456876353891704735335437545173014187851448771087347230474236731816668991175970922864286572713266609685847696492238885694251135134067273843704243791059915112722407456992089693642111392830376309489700827357721631930746877375309894558989021626196206321895836394785841117482837975914316047560460161817398035143704761034414919572233948687955675685652884173471921957901288706317547534341908181682769612079123587984751719298947798472728575368909342339732273824403182328131703038870662991208572946064732365308576053071573015321246575922620496156275746323499932156864761296655565637543299947200556384778149051574185682780528057501451445366930322132221119824659614671725525709441230069326439714776500545992649080006673440698754394477094773173042918679797882694793234969264682644236931305858975332045976103604561330035441288747516411269603440684721411804347930613951295863016064760548279871595025185654780654598926864876457959116195162838277272281594727638907400355361394526315551151634050273258652055710517101471708009830076230064735853988774679926855008121156150595447068199473340357661601654375049494398431532841634469685508640802494836428328229116396689406195694313260815049124093839325100887729749218147054145555480273663196098058290411181002007602065424058234299447973893733187201305917506973586925613400143848484196598834263069272555116118878393672787442279868832635804352338568133231108876426282743749276842391130931760681042681791012355444367021309315017846354940691793033080663947351749064913099795113616569445321947028492433233492700795590324904380689237312817526492077403561552401819541258243135460724451008451322741522176114931759543032818352154831829960680759305361666565642361126632943980377430606637461992395181697732054697227316701762320201874191499774834023653579106869316444059632169789024696222159429258219533897597245455444562832080417102515913823239264776350636026953352807372690236619507683784708537122676106408010564255918756690203144582806720984241446017526249105490034007215725693793348709870308931484712701614482220422299884763105219379766047019466535579139730741880454525735300336898380790793247537283004344489985398695398595563420419075079092002301748856556965739177988095802663457017539401371060206181341611134549344462606954811957956843681607501376440012924005910530037557905670415957380624963845367093571306914600660599573552540799667291984286642407618901236626190253236451783777153612133304951910138244238938425391841501173217849942452323201703621411153996198620721122582597413099434803421800224284421405870199973782638645295430308782004810095103658716967114853358838565335101483560840523317435855796127759419422439337329194863739466447338030439815351197052868001673164948618211163103050194243862550863913491996561970171324679654978601426603528511066703378693498017509607238569318159259582858940647417235015567509678570234942397579220710582998984773558173762993121332318983718246708218291643387404454981913076168710239996634351139518936748458299132520285793248567537469060629097882414742602067338501299475093837211833437370009652996576329963817692100492933012974805703416915806625752988075057614782883773934351534899444074090013548557519598007275610834156864217286427597942804101421128924436822629415559361667276611870269399544881915194284797615862808351648547361432817916462778880974351667796840434033443534484483179764003738385097987697108531741364478564204095708848802741539474135741960515709107185116313842910925634142021277815915223795641200666928045757432164398475473647901178917965093374505540896247932965437074392341769755319676595912235678407927652557182888646085360104209844353733015199239129971598963168848102712734041703150679375674221088576052601467549129845986154693227451258139091123028080777662174011559841001276676930603329637721153259877725420114737524932640286081504708723024686823272431666321363163920444635522131064481395484578085224364539235700267181984653747988512177687464285164446600418428138346938728433638738343561249661860288289203523309393525670712025226889500570756915018792587369014634849725694636801171692922085238909678414704392637149217584502586623796726318549822895477143582321417053502019465075277831115917358135645298150975658806169860589346044752873554240968127141485618815037926130985636044108937725498695705765615004334007517537483466867611209391627978852206419748556931071390381768452759838824741810967990224393580411023482502549434191920018615905385148722586861928971830346481044008389539276676586963936859009413608314963956877968430490550977076513797195774594086698853662155186733840403938965030205912379894866945245507236938087660361898443315053513631302203961136538727937609410511419843470853242312707348512865297157763777597797833785749866567282564098089821758837136945266649357076072772504797090474063113606343851494098787640790352611037973148351141908306464220250696446164010602049897003747171888243976185711966312711275427139444402365874592497873831294899214865585227321694307332965655786299618740058336544776262872092977807751654376140091255551560833854607964476143840970215239653357295253399897950788554824125771281299592204085004458717187832483489124835517817359465219087108850302868146473895200471560476002374237085094966269344069832583036826304117212395570134148197958201997739095568543166714002517453230398103200224115286201371587866680693212468148320013574850564936278065749567639886694905724600144892641976851327364488918429205699804911838060962140405293386902410870599570096935861996574967336031114346313114027961645235305287043103115157529129488961680499889030257936204456566873574488741763566287415144804487481192284289125917254397987478165771010698618406733886579185103098891627173712429196950317379024690912052342655319049099601571727621112275770730234989970970444609242499654633671339336980641116929232781743840474003730940879043858026551130231751361841414194178786767614049768637132088036643280794083010397680915087719866345590608474927989020215623191691279341069904821522447495839484982488771668601107991960182314103378269665019391338287447111467611296451248618726375094546637850480105558170590808228903620789112317594674643571439178800249862249059843000411632918846447466278981205016293153865296681547372356087681750784994041349635173125846659207702861283026872330311356453704840285276264955580883856375339817428226908282351816411520943601003739910946154059071521298895122193253725725606489648604869183544676378644837031426137674651703032963317920899222778675441109126554630873290215248802830463884052579996540944584263974830961853269973989233320660704888157852332964387235937936948766143313950712565768822663415909949570533432880092977380180123328298519104782885286118917295840296657478865406918090323744213763824492445357198147854529553930839487815898267859630383940659408449488621710633596296327844317179361999612484235652852767343133522091913116617841444423570789384266248650166076258813802320901065358670866432406050686474865253820246436226638127336694571686254656403351442968144831151971859481003922035164382137163019172452172842912101620631261531256122001838320668055182898473907240044723944711097327089995586636329431141060445223218020705292044729407810967890513818366139045630710546713610267759241321742358920547069441283705438847574524604156131786192581866966546720343493772846568230809802885708849196168357059927349287873126047711074492193574427253007535057517779550901433743281515992506331606758066802745170886013837068052757366385964157943795746065713229707731285757920881910352188235387580477799681761017742152492500335000400912633233366448056907938952429400852495595145942791664389794953389030543815365845276739141421515065328015157412488623024108657957332767426449149319307078539647497272232756334447894922637238662328963354382185902775167389342670268586506385804820708700258273629544700305199541659123324684800084384814231884877318077113339140999799735795514074385101735006861819769086674431624366485862909529957993526085117262417913423077859040735976286060420143012723255907135616486885251284639514410312576163410769424928307688003581652366705837611933526440646896023157997919984305181083296808823247433784076726217446148351832319748542205655787159114673858140368835901110413052062979828418889565947992015088609532986740184346157070462326011556242900781286406137086286993041382685815532917196058933368783104115746811871491137916429656961811933222116093474097076732905781773718102674475244683290025422288376935965487546631907044922265955968261150957805164695149737610396638000041213772154895853074592286726861228048011762619943894589045153781852557369210639671539851356493339204934435200939296467141577255940711072180731741089321538421544146467609296100011216113076398037780353525773094810094009996475085699034337998624393473668141537510701994888991216960709173256652778242869822816685992708001984237219178782398092842619904904856309898110814959026832521378785786142092163415033290086358932540883490196363999314024818533374125301646343016854397587483875711947305540171221673097904021015146155292633738221544069848005935027148873630017214884881546246308749597763191777120022303984014397716755236359885981019574400615137060094711961873950944707917468519368035837437269478882886821014259116734232033309913880221187591268352209478716500000881405828132722776599682811373828385758580830372507732525516982920031385532566376941514526772557909966702565390324713575218167499608088737395083963541110302302690750219244925791670725859737573490513482845029859113604906830742320748714276029293041980318842855859030846777749377490227856640592377478818410419903031327663493466509380020949903992004116751348967705093042783348108153906571066043552798669961520428524780281315768088602400239884385384278430421898299229713500833310408764190439938480331604864356394780443032131296141935576895116095105237812942019204343400931223350286359716351087093654220996723351819660977875895909674621329721880054853480577879763286499301817396163451626902212906500998043747005653722749625463301601975788777451291610740660368161852181354080012120461186896179558419356138896781495020766938912607480628003853025050922250101479067756926391966302405708523995106447912253900613755934678393374608367965528445911142935032983178333674583407666487780935182067970865914896924181471381038956749147071349948643322380966549352051866202282279848610250286939574867561037697702010466806004672588133364775173874793450933691068849679525787726342654508508197856434935762069983990217829753773024336494568090845641998969939314918461057345392599422746977644826608648873780072305914746013410781246074824872226650345778475256562608660485389251139501062257741499901313529009557553340536442003396648458361654864375287186346314999868065577223560374221114179783493448419553812903185089990536159209552589654647825529539357829483961326571603703272107609152704458625507601748681816599687140376201991711912292558642709176197220754415499562719337036025900259788205980700842709260003374633694990421754375837092778149793900468108967517188651822805571126363694621349514360566988970517805037363842880862179026286495273147595331323127807469608940593043720984132654561646288540990026434688394230406125231551762826818250379517573790215810277137410355334235849366878665694385881577805561869552735523881127883684035646294600401732331925348322001831383969384301475629461678039702463238913244672132409350928603930984705315780243507723357731712282167040817225283283109036755658031375543630898290101655965022214050920312712329194053232748992754805924931353670333220026705304285171477765241181766030296577060531838129077913385208000281849220926178085663140357366291660774299101074809353380437176958405369821857099268644665010660040151513783561676681203457159205060972386486030553906179312078395878031767148896348076658062929637007023392765787040343469884341823125679181464445502142203748873361324532795808084709250568577451479891371442922738792609957696586187339855060580639813013353867986568458931797496653210495743956293646042125314031171478693010854255926182573779230323711738032527490774368053589686735283839764388582414023790735734167896767702113648168532460406841503304996435298811205576943743236674134256137051320237358253887929758881940532598513253724027518995609923980530465642414872747165579820891192566956045881984304801611114034988434446393086601485700859005542877585153803276562473908697986636181983007400429987740591506685028932421885728230113538160350247559038261125140191534091799588932525911733349388745047559324515976484818962039061514529521387760681238816864483628574070333928714184203879941165318287682096597702852226684324067194914321734095663342016173430588960859438630486250426318619961612004730078255518190409528352022764025984111543380849939364129924444535908189877823797406389236339156332424380139880258593854416327956044235830577360970050652799246795557739990784565445232392312103576130752407713035407068917346331771873723222872529547020259603830616955399695929665963879842876592932786318649592415315316965120874553673866435440282823209949060444459954266443898360859196747705010796542877136361305789079445608445408928705165013914644318729550060563713670376363017213250711203021571969987384646148860949487076607155307027578037320577395400497861195410240020002322696860127875470569851454740492470318250064967407258439481544979770196798835222180150138203740392010803918457480181711505996604970358774680209932751163138569023618602454729869376059152407328485727911749313672329285716809469408909001564308206258817677885988433174045298491065615651384668090919281067035537519342361709568649672064581163877911153089471658123036836615969150343720392843644793754634029472181397982041535477333453571418921707863422671370851071156293283555556651421016514326879875973303175152504759840195137488513022791566810072084545874064772011969521449431135685887308133301010834462853363647467345324592431911156101215130544552650261279335897338481541230047520127557013011126676026711492828806098687438863321887030810613300591315286166769055958156869701457060479101807848901204888796557807524900251356122600736427279520692537336899773546523093877977767739470391557663662730757267861547348767601324233771367602859808186113398586349861519692948218729312543066903576273170237149452990014994497378925693313588048723092173580363781662027880971523541223830476090718773276398395875127502866270556933128753048572402872988882705726140934763156918032301158837632558392237317081464889902872402606814351962806534922784318022360576233697615627679532567301820693386447529937749051508341275653371476165549839480466903795588784959420810079953795928088221287541144308683614802161303270349047258807747713647158694858162474414358231274359514367466166704064293534461408555466806967697930566735321146278315051826354945853953036871041506925194243240076240647989264385770542711269228283716573563844362968292409305713736070060243252456223720001227826259280539096938146166600785391057678763111875766678279689979628004892082897855350972402892657865473869349555451834303539472777459745205581848644435076521795223103228746658191989615549833582727232423517767108456252543232438655121996836321046279202114551540734012602826142332453163253479241274765421216903915068431424927619330788523307552249486514052325675411182214173065959742039101060559711770385663328168268151609658426841824195384159755288579286430537657577801036945445642087119709485316028734161412075466793504187079520182736623328979926057345536845894355102577499567533829519696898065399758683721634117508497682165331923599216915133171956056606633589568855863714972558082585847652727839092825582492352268668287748565540487448861883203029080402473155800097182384085731840769867601763089458707345579859029255488877105702889614845500237390763415294708512085162880174906713732247341346686609485734075267341412048145684316443728021015586718245097967823302647460309313198822646462885099773270174840843346812566722174696151017063481145449105827682189053704829715084773227052490993484427278984917361242713968855288376386431761481202222370080961358500075579685219858886764379658543617529284245972871428113106079517456930743750057455196066014763560607474314113298715117107012263579364367785656009483453316946986334538811730302395794207503381952904830709757585219192181962415379535457756631702301611857489291086896145072182736975359195598969409795349293743080703180098906342838329176709029482550686084858147886097051895154779623095120739192472342357777904402860046679942115075390585087831168361364991355682598415859161275080188368788050366751015282832715981835628703167216594366646554834849188979947021289478194973194221670286318855671535433929662634489064718298729181529005083267657839700871408725152980966706204782231526008800841236792728932703212674117947436148575420704214534782099115312547431384559846755075091254893567296278612664304795529708071499416366219185964117714276240969701906977620617641008085613118996412038438386433138776655561725300404014781883434995745599385468627522567685991365370107308402200623620926404020336053130264604704782403293448448729070305085073076523994520201740348138224727346952571627198638157028659567528802520867214122817013282313545160523105010226439658540120703656349775633182106578995270106233487000602339367015363891892976505533431277436108215169907963547255859837431977590618482674977005698046429408346695852787614903156031364666779123291383947262301428387048189586924132895451634314704290247067730138350042723947474526763249430742737636491368470596432363133603504426126897132952927487739236616513370249080432101178592956861567897636455330564664611351192208010917223898291598285047065787615241613833770767151312421011527715739702615474587997933877534034362552374613887166113239148797704831712800863121007325513177101813791682889218603116412966004342166751627246992981424946525350523215121045877917962281102601865233611185151177797959838071622362807075357482414514911363697961700587056188154695501660071837990405596196531082571600210044365633742631825715115439788099553025561345394122937941129812971563633320624528148477176275324038155611055598195326321510440381153637313353997126562488017800402495800474352876360402503604671522540853342361903546966820556395867533983090253027463107291068369877993736822195322177438939463694213608493879548805111723796625272077542465869077664948954468627059661982988970444911790479443616414343183384023614856760685400917872831921241943920480037284786395407094468774624330293267295162947558586509192925180555949266180926093462654496349383795172682468822049103174975395367689793038344583104459269045877427572393042419344919558411592452188727252902482524018641401268625010115873807929264575102566477643829068357917740324711864289267645110962824160451390744837778042589560068896688744073768045080683320621151807798328086952113923496203358651911282700137233936630544072440133495291658157036393716057896690000418864100589742920159218714068030397187092085776405614085305660331343920106555553761743809916740526709228035293582647171782428320456185755652679457650913134158711640805096313518594825252355776299844398342206505574501740216855403340051529842511776980064011578484705513199794826660051022160677574936167544441336515586848216075920199323242286156309548500867401247766268608088290389074198328643529816061407669957129395335456917745108272984127637874671341423022095998057183190537897719949387514714541236876598921690725172145359305530036137127086916414620287116233088769018360446099772327204849051243375388591068610905656892318554644335325831785331932826742541292028641941982575568458829769804439112262976934816004821873487852384147407531779589844997474581707475125704191521375298032860624027359856724272699515602540979584510413288472189057250360235619330407585387313908797472954906453275585569834621484518303199592717791461056062429737509287956640673001147075658880400923970219088120409343606821973503291388402079665839150919264880049349879695516827076908052435024690274091492519013671378714009380569745271809877449735305983224962644308202411927019864994164530713665195874853998023870679193809404616231383596295145542156432310109461992834596732028548898973572181363436245609561993003618739676917098860550578230529163222815443862414008683513139101804119323924146468503257239622143194129323481172536882605668696251565113462278824165680392260670086193568079574462368851726567242923477601791445925022953790317652908634663862355789090841893738007499364440959545133263593349266585299898280999782552926933341372455370797653228473897807942484362025538054234722901813887323836670279644372291189052813755234133987873197605024144420202862864254667035353943761054645951789341778126764536446896582873118163542877389828071437702642920904573742142044435563952370626016840968672865868857463115368270274032048542600498750343113615431961898033038247728209653166061960604934612944941973759106488032764017843070584171925801793912212308689894227453515654380822633065893617225930469152630136700836898198170013554155768960432778431782815126713800123338215128169500460832155395732293773373923147110655790940889627320629033719821302936217579003080876073269862279397102149649418651581627465289305239181532431108394441172932084625828716807553235526951155836830035467893859054080075286995067024132194177618612228168378568414149263758185606898416573044411504068799699186911958357443843276572886617024293687412921090840676716742526808110922430216070862153635135866663272524654427855123670332386779423955675398175644842914235328727706912284365066601210288679714469268866356803471376246150000028003871659782643221581996921650009877356836130681053385595952815821972644227269434279802752725573412045983982589924728603978151650818804032548355275961798515627872939469029118350704773685607519693407605250191367137282568199902373069580312116574695577546424256181455667534631383536423918279454177117400509153960226630833255822664029544548432075412492854997294939649104190097007880049326609379736822833369062839101581237561569513398201142292086901706131374184843099509199195914777449098693517708366712325494347195656736065419100499255123421515413567848798254691494791903261259362407762819340225571060245229715557140523880189701284263859784412234562021039323764099827159596593740129771582521716932414960935758270478211394955057645974577227073370325778674605879328700121007148094232692275118365998837670868541114121768184980013492303928082275780168454535728758884159648343839041931108657594626161197872274749339790904823026946461346475059023086801477899008993581932530964048942005916039907698688730744773944721647386704378835925480919690866420300565621184996203231788709467138758523511661126740124620883483128517408983510621847047473322962533148715842240066106139499248954029730832667549057191434608733371126985208595172556784771101846262847402035345887256247665997391139315761969013683085795115179940949156237315214173610478937815116677927937369513167256363843517834887080132430105639828637232538952225792787461881319705869858335298927058077404203031114296761954884003387038250626728878568065842000733926073574376160591703229238258418063790001520944589492168287396467540250193480945067628183089609274565259064605502125732700958473717846057270049439552254700648323595058477777588801212363109516436984340372952884326538246924505487894084186516630774924048800547325071811211637276585195317350156308121844949062616548198849427243624549985332240640338794129773664684325548846868461784945335819204068414082152551086208828345472581460204703005650689506106854127263883577188038926724800256529902242734547363648078470971520623489393818781431827691670320550607630775869536980603322178977306217418127065048455041279393762012952466997115524342049372926505289779718967925754723826033134069115481816458426624290333711787950676873006653811682017098892407930671767990571416899481005240578064759624211538186739512843745880466200478895022009958054067195528351054674824040889905081144132637315444469365900112737298260194902057568945902788831999963786129211274173614902058345610180273362749009326225872362843595931747845526588597096714146296041976776764714331580873307552779253617768067097908494972572693203706620709203415521826641369314987240837604988765331760898125340668609890190479393596196259516711122173219501879178157218985383018025531287301528443616952420522266869718869903886739733767574136576678804493735231581175224516746830336296180674193947869847412882888417760505014113727231889424020705348915497457781559199865568605815161407226035609922927318502473231718361240793464023923387598546382703789021236130770839672010717116330473938276730711407378489610400217579768733768469615528229593109524561041602228175391212773483897374500205492302828574901542831643809315356222375894240840934822698435185718432443000982449445979472170780829595030739824797529465853419575533994868246570777497367501636347170506342311568187981088656081908485461831908373887145775681917596057999496436961704239859947851935887220765902843459905208948975382484505115161208240292623053063726906329738209520144503999104320675399004374613874233912537352641352789802034749027313505592456565969630392936486424239301932208193126997948367898177351621168115768884940824580072529793541426495100557359830648737303162779284486295678908337117002573220784105786260038496856015313035780366781913768083198824723904585957529187087877565435090142618715965009661713308753419562310039766488029587610070840232050035985958832689473669435306747836276248834057189839282137911320399234021173032838176977819712434259704428107856103564625132754125905093880569006331872048443225023214332824673449295320962864259396903311676242951517789992172918635027317587971723808462806106948582102377792812944384281113165276120128363505667797666263276569610274761298817642294043261939322380139090056602797611847733653250570789258572647062383908072229537251618941711425658009567769652979857117917366283251793143243171134843483931843229820190434160662652249035657852180437584265978105483349428359612434289515076140227241499265141381063341432822027966832292993062736330337534560729508189546720986881802602556570627001112359961167417484961847255856703053697578836040546645603124893733565748742439860585134184770035370889058783400080776736688487365922512775638068911074740063359154521305499031622651038630741520888402601912163141551132395365827360883215443668029133703274294470109022149106281556556574555017455358255286830129072489359709206327433093479391768085859536915698422194961434459551218011128650522557872150971994901776477755193180531810709915378673434683996524211145628874315811830410481785262562981657395825598633600912923574622739947735714092733459196958489506799209401788226626865827754204365022129299577352010693654341009280826378606073727634369226319669778803622836029244330520493990133582160493082265629213894867991070283108850793859491292183429157874514296138330453422475132326207249338596484193518889647116017368044667162041158508685563548116399199681365697715974194808924948678319834133339340515169866599018442207897374887115161279460810487980432639336325710645340185930250014124418241192831565246113784709320182058845052148302831081183113058872106508157530045552789591528591429962105670224111810095307806850866201348496742796604757055990465585732335824788641923499560744036397838724680349423119906155981132767017799043820831374921572514688916679606178972309454004999558588849960090168259786973249820094002950410523425106316986406179010373712117408155234075750189405499628786644945509731545778817736055026386981365510988165572918404410647104650090676631384424572163317033187922224516839098300882241094776318612761888578635294527773029290271421064184786175994441656013578781543161923498290452050987368408895179052938248340780987997212867430271111811732624271028806007045782055205867980162199557144083535234039259138066468936107271938950485809478375561920434915102010250253596390569106643498771819815323444181741991857095683928704805581335706855809180345626365541063059566121564349650608818470619615915383467619655328602032257836906969826662102861414020501151403416722714052100781346856276726208774808022934265214743161973987694775029477103874651500634241741294391101494313104781054397763289859335786678479392896446393096752316085395880035200345582536492672420536309216691558689640385032408259844400987126259315109295294935004067282417687949876052776835812317830093055081439128023183625968424711439807796397414011218416630705509736688757256038930142912597070551208202580168800236422929042339792878890124719997946171240130746289478803302131271376937970022058148759231265795583690729046128873390648459718001426774923649712801309656306810010647711360064444888134420273148599802037703548155530173075207640632638750384436619480960218564546274445476429499966357526560993962596854462706151253945576629519045314278007699084409413249914265038982481045628336417763563377517891666678409788748811509779732644519350100799207186871881447559563361832800445327438981957970072064307755663017712956005925886733956763896214247735452135358829380533859254948118109288273914303350543315060786170933034229089543554641034687825745497087963919483374313467417804359990654379041747941398869227596066992585618972552481893611163701938581125428348540983234624228869261392566971062550456763476129979410477544633818547958367479799691627242050426056024759942745839060152473394128311359024292043289948890210706838410540508191883005268424892127495951901452581589876018265498841483093436354059296608780465270017769488754158870560648786937896936570051048949195908917611107233950175778737588466129207399262652637330334142179591029907540518894402226281213006871974828594449517546315673379443903851646796325369247526743540667457397306778960501152906052076080528909860360140115071659772919773683559203535157954303707633369551283053832167432282660100420903983516516264478358905184183727298377243518642944085378176524143163890227592085913106561422025060154347745141535246489954708680839260155354097821156997135002677529138306597342705765523237764962858478528307325585042629467191010171950040230918999801965280301469973277663749370652646366716628941803346112815183964272217924619029708726230039302698099101337167145680898377664688735392444381355637054205535893652352913458589853756551226169246782926923878130576250219972374451857593820142554012451165452756692414369165193126283261079917424316782007787164803100362006341400858383744200649220845596873285072966782894983234907829338997324730772740363390004663317412995323181159452493024631406315085239149012093165735002541598506250981602000697429816137406051790334406320371088625481703552218159441756513415985645439065994560366978563283608754476858018506926962680261680666059884164454542628547626607007037782719890844333802544650491325107352728191475352871212247992685025832747190947551925234300924325761332020219503431635807574384959752885079719266900501042440793491813866470206321499042462280840085585458270621180641087943295443234394112845966333358428684427818575741995495532973594366966264514880913027698318549063376733932765548103676977634762269935349083035097634148328824714672532246537784007186308455428590820209294995971259688382834364548536453146543605612542855385787530211309426756625094961690308515209655032727345189455793164389069786734364845213966994554617127117259011031178515353443819940897088370753611118135650354104498162663659301742770658927866621569086879115103280047917560054471830083609575334400816046672798343244138027132422177521101309771369424680184427555514343623970899856535738081605306483352982222638603473375225860072938408469590477872245312292915417615243086537485845122395289620504103933026540468666586391109169159291520067545995533537766752383139209315530231703858990707108147449331289345714773288505514048550373246213615003848985194255135477897613874881994279780353994924598652087262765516194188500477046334871140234697949939489397224028291060128850759767244826222998096201877644885745918142430413882902206609736889166525519777452607550804594177436244908189346311229381127569837821422773114647858209408897541996843718534619374079536995166554364054016225185966872048218548257227418177838282592561580793866095629599793475941215892063661175486020190141101578217788019804313836632996159808787375877644126407318924761666937894975449264893475811553549388731671904405112706833853394325815709049683436638731843278163286317206291102527525662360250685126978678071339234432776570393428590743590556576578926004198579476308865773583080477177998848381993483586117206413455147586030836368755209802190119010785293337061344238020178952286082665212375543341452335959463368377293842933947089646844736636871980382758714004567745787290696308643209336427196843751128380025569902703413673331724313298488839152164098504942721126611461472762156083319205846652502439995792622507568927410072343663061042216519221886041121448089322885148808841905773479211238819256878371284026232995830637289093921772159054906871688770521478555543836604245384368424242748665227729913692222296439502757714899912103145069834706142290191372555806640521773811803094815821838181493201721314114585203155353465575626394915100506690323884522765933926326737515633865752458624960640128544406506797182880506384323568165059739685396041889525843718270913292349501027200814303560506924411377591384810994975238940116279894908567517398427656706270476993953099284150185884634911117970521732008317687922278258715461129771330730257809490335862245969859100534470324368228631809198091576596185288877792335536532088051519206627053616595162843591624209710887467036259747377962823677745028404902512695353142973517612793955864765494818068267903949179065544395480536261759040767373141233333573251642079668883428140569982808660977890276106693279210587184827692587449870079192737058520681145871655979142509719336639948831107478119995731704631095379929857938916042077127509469090165376773777396467693240012018513993481868380147586954874142062720952597813877061453178000671479284570239569217734246038110767367898314677047551481564132766400879123260600747066127568362366237054174243823243053258767436670274275453990090781366518192007494414309648182740186266860397190914923653074455830608165242752610598122251877634087756147224101450266298887048802949061741578730279907560056506057958622389180018174238054496872006716056479045899363583882361167486618063332716769431049618409304388888603577616696053840441210830070230027384658581326102924705186635649275293513025827154165335195436469386300265226621520633321082610107872113720979564261154829086928566030514553048943083412567483618757178819475292796295139866107589606461376116484169766172712257289386971883897932335373082253405086445189092541391188368384853682305768850122234257077737785545179784820639138427769364805961171411595953736908189382095162775505731251293353068241189339830032995226085286711238506176464352533752985270834290400045534204645962629566005684224620274388731212533072750508078565041880428853011320928448002183406725088413452199285008073874730909871820268356201269295751928979326104758197213849068529453934312155211535586484617259323569870486256160573116094188848287760857253227265185324183358559174154333169882996465247229455462405889530862116802372917616799352844980105583936315140317148791619189699252830739061678929179804796406429864842567153942025860184357978681186261449995224267157436314107953734261903948753816767691432723983131166028075566957659874358230271554780162461702072318000425005462610442566209776007697722083286135777921170870470739032785336308221033877507312188807352695687963391942181121738241951120836176182023092258124903828373910409503127378437863100837950107723772923230475825469282148098226950969184123781488831529554820927985184775998478667761509827428400691668233514651271820446949823274576264215856098368122803310210568998123597227065570096912258171696581129348040269404311881250752408389707538641584351631944615301130043918048499760606481057754682887190468881211403055186817931985089329276134866626608444277985829751798566793047134222309505220611951411790879372184682122681194767423314669813869268991088151084468003725626849112633560947565525027832594611242882047623015350704239518107564792992545144486342411656049197157397809253146721591510562892757338115356008244682011096375542927562689191455960338840081876962818733645886575026783411149590355150842324919535703928562673988380936443410321125162299668118563688435340112146474222388052329590256107081936760245279548469471603673614903425764737742793578579760574146405482600485664607418618991450282045774807877858335010282527959213571300064721351628634632930975186652115772980278544783859438228994115886783819898142823472441861924106981567216098786085143002938015292346951985435287407907851738982615681582314251888549938003742753458622589963379092117335492650222515443841005643659672482893726931564216581204242534247803434524794819184029773453064376746075732057397891424166833130460289446426021635524942400883638099451858750373068107949347280581070307868299432789777918274583337828576658108960838021569406016348026319517233204060291571485112994894012704895672975809991322171563185674885674843326654680737545110810664353511957003321544307648066565847862388471233289521964163313116045998157534614603341399030557750707812200284954760865228230843508357045285392116555324223850194892574384196110032890474958571221440237668148966131433598249061242989027648219258850398508092452405683635841033739962720387580413026721181735594711961872848499000771000411663180528194210589423203800355905757437700184826760266643365968859428077854351951987551219555746933426245900598516190739127860420678470551736889463702441566010401292690857400358079030006251021281943143483082802719055270092762077064120467156156310342559027273740224161960222889990776069276846645807320655875739176257183264275393832217049060825069927534296204832689987670919095950635026766017087777201160831213630057462576512266334565663543978830287912203826999613671165748661580110099630413734062068725565268153507667811694214707475394557855541894696899695984700397946463087039145067752903316450982534387072306941975181342407446748911715596105524071953524252467662695882691859638667412353188163955828280453708271473609672137513111307302066935745042781028390414946174614042221721459223582781710774100313531494389790941867370267057262906797062099843065345748525492059638728049074135536793458555336367845009100807125348022866498546437318438651281422471205908464053739023000952320241302245588292838087811233595186150392552361148192671368311488625184473699711159520454953263992996027368452447210200844383936492894919619573326684251463884854477622190331223348386065788164285874166622080110450185931663132459382471613912646292114135472449526064516753929624355506942983792100191102219572659385836088823543746914568391979291534178909531360547373908540062953739261639151417711386057180562594001885290765256492169934209678196597210673067123201186032637179537150950843612627238900827140891684696552591796250537569264414938700754880848463445827448986021035728098836055935952745881423515446435392618762796440216840085877722419675568064568730404558933302060837605449978264593351172061023008024886751738360762895404304546003513065732131838554264763076649318032511895275309122408038920048015230599648955951178417236596833732498299946183614075404842645272298761693674121145471256955458289514349877487017571376285776665834129738155245722548580648514040219723162652934017940953707957756574309221638558602406955414519686371839102722132874686159931358038456022825742356281090926072744522398205827097938661792610927960853372936678786881592489845051761560126274390649795921768505972166920357652770784711978184537788972629898935430793101333446810711896591654977543099643749530201914076864202292938199972137354452662399414598408925419468149136394280099652639523413946851350366572919137992080294495663068489667569039985625776558207395279560034287416967797544381055324999208762755137655184907373677350878375948316817885391737534045881839610169894949230238996104201922139055574671384818574183917835896181977531021627662013207153888856934909331890359738530803590627597410233080902263682976114859121297148894814761190949595010775310012553848768834663103179102799174966881260697089297669040403433217095159241717362649695005999977273299822720999366447929269854958819910159667090506539955746225829802651067090912007290708663471322810828913163171754830067987493525671141825360780214572274975686078185623525237531069366238832163500945660241655004571685119808964683455740380430540582017862895283381400246527439317674572555973167571406931484656927418010717222056103325199688100271483461724733151481508777997689431967948143757603367254538819654032245264787437265555273115083571661533963519539233653938763222094995114485035176189947428211088889929424315834782342470153486072906817716242964436865590822387775000001039731617252251152686122800780624907190934710219226195058017549668516613643252095055372501896836572905389366888991163661449570649971915912670721745531723881106303571256054083966860294105258854883538219521957906230022961816580620851377055161012791438973074862974352011655435165673627711731068601057680304982499350012326168501101553160863101476062925498348637562101759288805117647324559611181673854540670907108218336854787675050237666997321684588610529088210866169952972609612738526205053794166189096823000826435212000056301386123650076176126738117541968399222339606451797192347191024460474706043563287156952528874648627548957362716698355060063459757363085507810691421648011891987446125133575712044571196052277164455010517265316132320053567065024429214225783072739373253584951048972245473358921407334013385107491322781269151295766500065250548966261761852428051439111406429220773993619011972239794721322294487457723752588713314856759781027738138513772646078091777058211320514335068525051849381445871109329217126877246754393290755581940906309074517726563202504461064516812143668601932005415084623004808418776173189665924966846204283343848682436853633925713977396425878753313373927877816082654693387992875989415428575951383005640253266329538558046575749709556207250911807202791794235894860599228692583019961240621498002313126110491621370374754368590975310630706981481189443740786832392571192442833372209013078045279248770919454511393836848087329887256227871202511861659331119300205344393226528369901533999864539629210623431644925743012145376920178426473148239020368460967102381872303716781728243284839011794597421571211038341265602251984928780802342552194305186057146129933482915590276260867229618392623295788903690557578849954271964360038724047406191223690854569977751306703273917047839448458036472421152287837980356592594964304326639450409327515062502429629365898794852110792936010594239722061071719421108333489838648739445215311063338904207182300288734734587753938256869366570351992928811030872966778060319431379243087443025345161788082159185369732603347977440002933663792242137734348029664508072608306277631869541786170008722274969497517658331890198036185047014590175906527942884866673103108661601533712624957768528268698845978871472289674963153749366375263167892974504411080003710219744783711083238158557651775751484362183294902457119204077932056376471560753121439404856974259528781232562953059489153605246742017964078734140803673662861938805248115826816014881776068365078897826124268662540143488017372863030396284609104125889625052663010313985983311123777071246101344805348173373364168960834677615236670339626724869668750262713827084427584460781476330472126390828800769425300649398922428338481418518184885461113063404892304083897689769210013800729032549522623271281004385342836637545785098209148179784630524829471213307594045338767930247668886315354404196033725075601177479483481157687639442195895112262161028301295365526867457697615490230580945024248266655821964365841982543157822518897275032569614446315008212552132862172033088274335566669751221042929570056494844356562796746479138767905583240215645353334967773636541954430252152485942424888837768019216254606798953507458763084393390354165647923936620324677326191810261312303285300853522709052073967949939001777792069454282913131958500604347224535879782455356682407623206188293364809374006402920900461389082530101107984965034315221762073509548565487901836929561725598686710729896923228059673833889252681815715302750434353808437674474372649646414226398882558792409182231194469161204559204278888199143036699192420974763222352171939664996710147603290063600268298007778587582576179115888324806727762775115809754040024273234550819949776068436485697827302998072669755943998288544185959534650968438802154280582519138083352210594484826590103289611093723778415490985294939380062850368057426610598834005467004450937222336557593051068140299611762090388928046348800124912740515685290700286467190446820156084903014286204272677967487990890107137957568468032785231137543329399289661426598719997837327988643674830389662565200281309947873675502004866976077077499447581382029941091027322581686923550345166429049539882242664952457763133135063235772690203104023296551186764212447373206134509136701717429227559988623294140361839267310127058279133976997993608596535343002696862294531494080025169439662399227455087620645046121322442753920186489371373924184555140041019229889763469822743062928488137136298813165652390600114404731976451145912091487658629732475732945239644412814152858967564766541518077598995786759175523178618384648780557148661940359975523697099262247098362439590348063325589745162001426387467749206467524509735441954215440045026263296749143261925901583026563818843760065045704956410444130261702557047237406316302205050166694631168785256485527982941437629106865544733122600318321919009690437892568596326931410358671093148833309288705025920628453318142874337483969020180784065879454188410690546580497521935571848845997526048139899228578902495048572928498380002044542261999307843179579505888070676830588735747565415580441248290164911776012125522653524090335190847133621110723681165483219317198203826120066941560551462657569432640356261480875028259872117836574194057309010458368318090926907264843426519930783738623873686224831328055649492231294632052665282385398273788071280154224932112161802123231822192940717255562787998509680436434113212629925577604231494350006926263404508464903664354989392259334635654579364113519480299396550922596049122776757422635602849011306223663136100318225360052351820282943486099264466503631800532170848958687379042212893592450192574540805256286036184652850949561790844720357394015485898668139337120531884691418766725572555977368482929406159636135968461428984399799063598230265167406525953753602165646559003188337237987214761418035357743306144782659306642690612298465053078912209551086867318642219951581612140981694962843054081680908359395574362232975436376706878384264212471323797919195822535288605250922103619186113494308605544431379456794829109033009021260381976989333877567258578461547578526026451398058321212702097872942577535731429279549208456391024518896845097458838760041039448861726065527506148153174341452815026205339228458246440480398621718799584087180372268206863264731212564426194162356988856079684837037154162619717284013049364227187074320554640949546235808271312138918141169449935074626382154295965320534230268628575851596638607101417684231582517820485104462782359186345793802636750913816406013867371181105141003456806225640067230144356641234690218999010078414538873428766449220285289957913573537297120575978120491912157751301335905182976127177537298988936820057740665698916047795408773317786212210617784099061808711797855651082037020335515684610123810117780994851701947445435100351972147365693581089026129465664332164863922343147984701747164902935258270673045058450591631245124066950447890019932290959899716389473692243991421663149830796519643411158714722443316412216628369097732004345894860896940722219967402097161111132260970074632639900814709967748927706769114663195655791233002073689733807127479237764043019733977202240578369679824005472447518793578386675294288633977044995100671576482082719654710087149161764570271880892356893862525351562639671215024106954646867375109414031314073476464893298191132947642145547243963096348208313157494621618566694681731802793908972895407331007308155160936730070904774995879237783900264767176840989433400958133481073980365456244172568944936544611621425501633881330341214611155484180824263923502196635187614464902597981144188804283625281730963102720247524786088625009472187001716253498911148820365754851807325347152360300422345657928709175086659221393706054892877037731018809499568295656132273049848985147672395405703221755680196090425054302042692186304067284684130910827313100073901695790080943156539899369354889182906907138055472444477392039767867486696517668400892859140295570852693566215431454636210567832047855089567749776786923120208804981321286311225864571897231486546251710787285376584361548330778690860128771362509252558747070936435333441553646770531939423215664844674755936468744030026008959414341111274340711924521928471303943304352254339731066701124382385464966325796010435856938707781553128544086500607699097458302875372025006428095997733852104263330449808277116764809079490369964366238829266335984456651580354291032175825024933955265696824250049591729336242152351725810364004814339710229271448299271972219005060643263861655740128918214095175509076922725683936524645340754965649053536437692148704880052920512952314373662011364187469654787028466525919509982603367646252327575024646458922817568631360701244101758322558239520314151605791618153423643686380071590793321299444760834862164426746815406174339835713472711467664690722523901192983977311532278034307608588970488897213016711161611889066728785792871889801778550081986935660538434982965497003891414311207960229557319152255928485501852333634172291666164909908170100598540361678375793175060294365208265981774520142055224375514588598862492326742325524288439701999721545893691703401327527274304439001769460297456067594750633157184462107858209178563644840888761756069642165552116971864588872894709029829147026954408919075891557080040147221354035905113770211110607607253646657877683882358043099209123518885381470291452554126485540590227432480018286482732057988532727466061703377302697758056433117677881009426701549896136377184490685168273566004464455333389234479087822940600604227185348819547051552985661112232378503058724692579354459451196786428591028459647189235371261335093802393050375167486683416022319906004004917615270752943082615638053976102514122034568948817086006710436850611484295885661843542291591679574125924342201191096073432706651821044350217130735755747696503329761110239117233243282394665461814650658404912177246659173375934892959921002345993319447170851226226879597900862500142911455670170962900824030747366957472365081224947530712130590300459887536042393567889219655849035999743510565573730129599890839671950053473154669624317515152488349553062540324170316460101241734396926224029372567619053716388761903329241842054251642033554336669685715485227648182919039881412799040324176393086954551412435407603355990098228072408949443195780563357080774131103690507477962706365066868112474859355731321807381069377129406588327398584660762893825735191896048488536575549233345827698113213601533907142128124803645660896673435268188995392971553425128139138479251445095878378270736062065847106967657007721624545238508112633825161521459938226443330235910629213441434748461853113821966276110392997907482409744932466916038066517403015784560889682960686553373157801704747829066488862070612330128740966921935192814414090180620605608537722759543297454152074248456396479704856289980773359211259588122256118609753473658705396515493390319884165874620335135649833798275067172579790618883035011194698194213453951238332996589044229646728120176621238000000816037321615850891997094988590545134385214178615337666152065524772458624138157029927430911372901540691765674705309898833287460330813431294967969785950076606273279955714735000858023603163212780930313609901118279466132262136104824000503573517954390668793632540110727146867196312676046696085323879256303076328599398200056593521061902361842990926794372637301437996693767762861856321540191934380288144789908120747282647446716795911043704263995366315648828273493491971342247736896728893458716828382277974742069919410093161614787358943990100758406720654394452601649115698805186104014995350490554129100366104577942240990965322795675699686316961029944276441777268072654903303176030334741412056033127076545736001218091323622554958339227431520619135730040160235271599108933189859360905861283463856276349409472234268605273714203596348074373208637091704933591741100293664883073841626158339644964184007677392565702022589902632590562667512614676213719660602709254620598149315626708564293746273824639816368511302328674215310543386820340382356655204500874360921390913339424178507812750156144485632984884151477721982909790728329158018707095012183012439500227137444916341290171084003179461526280897448026734995687086568014528730809561682190497924749551473809926961400119814264798720226980230600449130888970327711419645156051082740476748661827636540658976300776722524073480112447059753225223133448091211731139940959962006805513423858343627207147803532271857318466607515720716959285097150539207912146015935857453653356490790140553190632107545527592383094245750888017505030516904823182046612999308098506389213121818359865873443772305336780226426222194620440650412970223012421275480244243574677669401990440490145446198257575071823887590414745318271281038848054272645979666554039793841967461483746896164756449492091819224774061346088883622366421012044566462879405080466053359483081395239805110358741224894516446665333798256070524229477718438370140770034754479605181456906881655063388861438269108899061118754354769663933823773606369639146358623878777128175819148279544156510068445994367910154978122794887484416579004800859424554055679290831616207062154415367826756178165892322430983321336822726370485850660694473239516537614571384577329848826829769448069122027015224181194900740473166145267783308097202122847744631660961439969340757007557842389456499353211320751689471537363079754261912788616121806059628311089923225420006662725069022609664219050770549391983279475798795167971109727266499234866356543390197208200621640480939003575072782785825934878946289171810566616641805197744600393335345766020465099787060157261209423572580765657749862937858473659836692720496975619752057081756970225538893583287830214769538910354169635838450607162997552132180813569057257958292120264441207147206412175864617262175522063545472280678942060937925979718994302342715519320453198892013450787876018145841250188795591351757398153236051065629922901216780853046624523840539307267104834906484367886930543056400373964845070633356135945770777806601182973225042203889980405418000289341701814946426500540263776311313092101365763299523073842550970346287557092821454034243174745596570556912357082282564843122338652413817777676638100061715340002941468117054203678437389984153713969821955411027437647263424973369446778350125731829681838248121953460550655981497079484662786315977416687315501004611723508037042087951884246309911369042663635191637770074624519775168052572691957205791724218209688157536615681081591368144695885872051570553444828526306040771286524489158850095171230425111227714714464962827602006241322652330248495333523588852442146558454527225148831754277818571345434331524002858520829463543920756663563536364584128278526619400038680606587205297862184573579104764831897633742572006771570777910322889372973742267184920938523549483024759564635714281866826248562084364236230629940272114200136721499299588572398036282248967581949894629849871957205620383408124715930384992426126297338014825699674236544580098990368484058314848445080977048198837651642293632095462259050614784721661368872693405470970183582704194615633073287174339210980405628669902328892035559832985565514598388544310902523167801233453236871064257998294700343660821558043943344818290441372390532031875949947580435044534592729381106822751331919674399149759904737117493274212616283471137252157791312946690148383927229687209355120249236843448219739670340997612802915108079631440958408083938326210687015094922120624643090575405764863616260411807772464027962504555557751284458654656303464117584927580373345325216351986493563351515314724628027451769064599086767247596383788749593411597544732006569387718369540054403070201676028363702546330956402686544360316766892360552160517952079409625933114896919898196527680462443779332323802123581422818805694480837436191149016608237509509699956226300270834297318402947328162677393837018607111922854962982169805580948844947149307128251852107586749967104310974326441004433045706618807597900473769168427817183119872493248937923229463541871883842296422802631792616599260288274515838535130433796339847951870619277417325415612646991621085042109364029386775874583139825347217204031907574982994956398378274818610560480736986061926029895891409447318272902500221494349625836808881295613778659711023821877852267125447109567273937277728640545639772706535335884140656725317815059101923857682777559635765393818575896364719570244988217151850362629645731741113780130751678763504946162947089145831838916474006374298160465481985831791848919867841642894650193625123412190761411677502042955520329469681743388630638528350522311913161799990339346860472342087960716838858685555851799628491603710458701783623199629654345125455465069659929312272122470878049262282999663446458829381110714730304772470565106796828694120272057243960129940271580035384075285607333116033613400990564133207614043754757922597631090568740234981710506934644631127778298243695236550893749144554263261986220403926087565352673348115668540739070414714315858624267645416644364138525269138941911234768874942974701285273251451955426596817598788642648978068956144922525758444442796741918305955134431152965007644936179753918781526590942906987436006612027639030934795283840641610185426638206788661713729854139915278320841750998754045818667894023337620417861021190005804690107634609300537604779910218516848973183572738046845782235244675519186852720451697950250138531879466550987891453456593493423212874818021154289365292381639150525209914953120000990276000680694073571866582081448747259185989936718513825992127782403495718966318499677675850175070646731044328929683371131012277653132359301328858338104288966196784801850604947657361884902225357654512194881655386614785653153899190377393048844943509430440703133571281013900669134729837121801541981393390791794086341061916843170231968383149659978495367224423454977004495065737843840707972535483108679416318734891652887183674079271077720017021822153941502140355348518908184145156112168642735844163031712844573037328497361921589765509703240619412374289027951871928442252001564677723402010489524099341441893207930093194808936343292788707837490819672476241814435212777208366438413757639351088882871220350984435221677922594030159823490299609136501823480742999327030724129472633445453649975614795441155397874229163682242479711357457267699250215227788792776937203290756877836402400114200474580742664720533289528489226281192019300269226612898436394986991748577766327990390294451845118675971293944594746457712057252486751601604698766377289338528643769918173625681076806643141844700467324020215553494217043719023923771972388834031340806601967386258441310297597017159726686060657357347086989069602932356759617097451609163963281081659532240286105920388492217094774306603139630008432604349950789004030325936570287892548093585917197867143147119811690472456714951673250664102508535048155157274280882082300506467270654490786453056860249158564533947153720716525768428942443214680251250854015747332133091478173980332005144056063000973924538518746101401806605816640333888024245669315071007463357644298753408413578002515127284830867907446037758023899534760042429994169203481883443878819842592998702686537395728449035662256291091408446811525215001474212516446967160251131391567825879562934073220470460173660696242427566478662652393832858394232034903805471718798675920039049631601310275438270640486349516838012363298748914118515633328506850105133078950330680541367318476398908182289240015658839590467772221595700038319569842925230393398884333752595311769648640057916078826842711730910284472845723169677646841661729657911457549965965384921722925749278414549936178541748585032120442438772456791457633484716408704158790426188758651206526130319051165302938576937216581046009350390352727789702783469528852354362065947931038027869216987061987099459100981520823400370587409493776322061753398318482010700666448280870951770627513312962412372762756692168372258082774899973605504783796979916816680650850348665900814221402182622347855371091999308616944831673268842605007096874743244126889801531294051830047709730952280294338615159655760978073157784410515788322801975347899431951751155036308738084741443538484348666112007593627449408958811276704740854536267758268864753234029380468722413899026653722684662505133516219009966995880382025805657268074362697766603518265474537354826560362001702600965495897154861154738713392006340300105753118668572131275502452052209391493316031770640835115598201463731517211422187099615894603004936379460887185246136185365519655049795878620689824919833063183955454640856411511615668932552978857519451497961419825836601517279795923180429967329573966530387059295034723845104793199295198904255493653812102053144117751125230614975425311388583749209074586256293375406623604894037460305143443595020654322309615672770474478661454807199898973584437391091564928592943828349226325140633663951160452718982533744533262891047810481513576475057090941368751454769018035902736400250673048498543241387510391921773421309644495088501171891354996812251546365245897955035138655635155091518754495653687905958612218434450587985551829778067253886848976259266737078132641239842965012339894240603595243114516839379352847884925036015630004901897949389889712563457373736732420548306332682644992375944474064021606107629858247531425692349223288472838561741668184317984546423293701960834440272986448025736491628975628384184657900661226543020131014142552697852541422650474166239174142588120156631969086195193286717244625278608248281776043833875002748960535438682711717294912394192345871381445656733890413598701609817784356632703438570317576213895253159324129883349182667877426615273102377893138835544974147802149206752376277701281343072726877968918796729426652252228055206121394934488084274677881889996751673818699520829168265500515842336259404155194835307923853602718231499132947769180820089605307574455423717186869453464881444836530625952250779459720299520110112567742778659335942688463474344984896180781496449173617188230579565325486325091939777335759322110562797355634910155889448701804317180909541939014998286373109833681957323921193898405599363838664349612457453106036521506068211308621602871542811156262247225317433520322263683136977981113624474057243062911059235362412393369107328207160665064380162162793132281418194167634021812549578030454026710052807987228076816017039468935588337152305879788951875735022847493752778219228467094440548556296364489684846953431574228111793119812921387611670433987845034804433739603140846870825734041393347088234050993086627340038243237906560824607282949991032976432059060702960233341102363176976416473022674963857064016009735446819799669701482469054034622656484832575759308900535346840340154508476741261697862315512342178700803711414002895114014574643212982319314440447385284198460165540040470700595464222061173746185271374806131258132054187507000471118171495872425944153061259374324133849072918184226996757207973741542831602665917272232750460055505354664931067630223842024010370257975507370276100205315683725696647574239966304552989882556547720529661538965202249372495538199653835898765975662139514310528820574751737443371846091088404663457404375852790226286860971211010101005558379631798899601320361171696064200224915026251405963708818166704239262020991020937225378447128244104566056939435954092923800111923936194091853407223574077987290496005742293884843257125701567086805621052855021754964253951794456719171662285627564521576410180271251559590539419891569094997406268503277045575414069374128030562133115438349143882661000770345048723489056524740633413105964463303118812038662997667522040909105002377158199579009443862606971789338680971528179820733507920138953106962116436893479692152596331764520330765894430479998787191937866349847699962501908394716430431208083138284444436912639790355109958609248414332149584265252842912671948217221142098050950210785591790877213123484870743931928707225747104542949942464754800494037596068925658542244882644277113599177297272013442075673260381890046578420526676297503685759020350259243200173774853740381934683848338306559136133790000615856143212804958258477506725664858261597385350341307116081885293299354762800496022555596325729955110015689036914281615298468149133714425680656373285685247161476760769987658804159569508266238839872142014207118371861227630078619786262349533567190270890605537605207304352911574215888548283990462706564852210404714037442833553450878119014187341387364600810876368856783580103383319768536215558803007317451527036411268573880867584156958994656013314832770389412628056259146189906187245101840218841371357506662501521695289767572037547139617209100781439692004740624166501996777722523919774891272892528177407874411780333725826071731158112078050781359750884184935599962026372968308292567885121230706461693681700404471818422986048208222753693565253817532559787050931995321003263059881200118957476598178123337620511492608863278935997583294274121479421607341568596314078022691555084451881789928217992809326583884545598725368505641235564407828975368096350117080189889756029214563426776324106208568220670946177866314198353507146975046811924682023200677510055230261338605731190088063064428842299978163556766710395070425249844008336513829045728102400143861812680778992129425766000877255018808100821694113800977957967444731280440264695006982242257253458294319011390792418012322916188110255660802585010583287709994551481379264935075542115518166473022206850534957632862161576586118414157252478750851062360999502971232891670876983311764348921504173586069045482206123708144376148269112258956865129414535695903748269266566948139423436152580325221515206462102179326084211274881797142406082751103503789589933573053507336707452631841677071400382561227948066642451142714895299375630166983584511306443293368634961225036520673378647733282716882166857127007239823437634175643013937806264434662253182105110969288953906475729138411125165640288137859295700657241954182108185044644374521694571666002882948092713359283464547424972163917023749822335283498367785175690629037094934022082829145018565915292195265741381529606154543068652986978868892644459450007100565194402625142015359284934353281321366024790693825497658971554427400460100571893583869649880272152367408419508368818073924004730943423950100428155653021012461387826416767293362971453071040618432575732163273555719564562806503979560527104771971375617270495009038151696480921083356007042445833181584585248623111109972458259719637376319126763109556918043810444125418800664519208962279037796362853715175690032356913595843154968645945148091900261292356757974625019245491580645082073646493663706883567613854761813011130394495654002358692689578285323138832987640311812830737530738355225061339083485521379334366868651722495652298692540266851752722335787346176340579464652246925069822192111176208569268033920752283280844996869756440660072972276237604819887424323271244636009669633051354096244133357530068920045318042702455076552345955179579462881330454587352755386901322287571785940424573424310488475604798147586827126953125800703283803514474655398685293815216696441997943480760511778812360643843971640290225102623569944209500384359374606821352868648286882300090560787318848707105437371027578488588425852582901241371859713138568452044006899198592216368383054636963632551249900512198015073881832094167802025727804035494961146758785027184249789672289962840752546435520698219132574612483735281605264625947674985271783112646808658314743041851485715894779697595761421512263843309036676473233991814397252667677095802624429519274579491801763644887060205005028058619571198051904702448897357368704612650041029007889094103146335658747869337330529303332587052210083570636906307903374159048933997384784031896120444433093254928376424275773910559834124816374784195725147583168202859262368781132572988861783291171737282031202903680269757604468585585387270020908616731993847478939931494449533058454882620287444483931496743916526738339577117952704477974583246203590436804481247495516554050257113993330149512565978964343643439527004398077040378678636398585820577036510937921979452755923723813835075389189865432930226497400495162304459241635273474843159490005545544823923759538990581808819780555398796665784760872446348844058803583722257217672949677080827740874587816487812122178398181236695884874740814660416902091445756227033397877550095820259020911275853987158223562593248236875242483686607624646632109723284544865681846313913662173487386640947721726610245376957864158100931186153845400495266722362447663960226930154825305824800623141054087783622830229575000004620770364110653681764073874952638210470757213805614511177492183168659169264924567660622282318015661586546211154793128086477614090783184166219946398777132989170413806149602871006483094037107742795854422671937734835414559011910111837085538142547929242577448452218090964296184081903949026993275985382395674743379258025226428509929955394397805252448466024268093184795327290728453842190934350374769554317903264295665398496525434644768604128293749970133944396822326179116700324601241220166327772941784005673073118433841224504382024441243434162463983748480811832001467195921463230722698459123478662705637065257009655720502309459888831563126248955550379985060032855980265191197404648097964465346380868076592096865064364013536044070524888357249065094100450148705529224201155471051221461653723255907527944605328931991678314003422978051236584527325815835402906530942392410362914878902941637693057661586815713395266182583589664874822163538059061930444589671448590918972394055640495807014656105128802439576212482613879583386754008609932731616781537055697054724214268450378422883055220172947888417908019671795362772357144168535812469061043795940061221289482044459983060983294564482980782734483463161778654663327080588974490619035555178715660653652296400109227362921494705830950434911411586245989725118007904005785822859479611763926552992382213604057551207631320028017430870565173520707752182267125931526368247541197327820744683443046344182668915223564330838654354741754017726432878871931483710509432093829478854465451724603783314408648368671099590657436707508432282220965817623510091357480242438598266380016508563124320338304226060582861255926282453064860362709995051746751153445185513856371039640744446589408274204139165724388824773544957172793322456313549985859119507336089543286404222435245603088160021486943324545299292408028623830715179553545854482150184135691876646734402464576741179441952442816774155455733686773837724418312283982613609802889013817922801621856961478067559123144950962088901137202439659510047646630601242000411683546810447940623935928273168060190525400945084718758746191405997621735076473934443591462083224934907939404137649302436642863032331888777946611266544559120994207589491228229490181399244483027478610959039997718262548363594783256946473543748495690484880416147344540163767346539980275437039728936112499387486179927450055331277426436497799066024645164201785028287155233788995209734248733507413887517337132943203340558474076115532360086539123905970243661573444017816387150368231587968267058991920585814869805795146243601743182636472740409577544904089358835004354859811134612980621087608522289289615495481685449410484230386040925305092259862364128350476285134341695733003281945533456473334913043201932703839635879801587900591870981458695442734987289242170852817153488601858109459525768719353485773369929254632553878195705164853791112532898342012566622058518102517307255680944252057741700875192028874265812136266673026301930391465867803846368533230363377714486291794461408801038124903860118197286567036681739733919610486188616883934565228399474136964404515794895736846970954282693695865717445126756763196336974684402218917113985146471264199777256080529090578690115324884034898475210416258385253237882760695613242468388989252546811579435561643645398693985231593535295724309744826069645722061942182354331966470046259446945417227568312244746067265215961209760659312345801521113095009811650026421171264194329016200391512045090770359651580847600301959835730889933167912242694802075876662655183094624285696587801224854263495324459780878166474291512308814612278664393425777808030705319945424139545444444858630552153062648653098292907171659743213953978791853008304659132151818309299676571291865340616485599408136947845701843768916040789996522970256951765009207355747768050086575978103084730314413369647310764009082810171866322826868167782441451535870121888201495227630828062306764374035594996140560427798276436606057387448931729673753498010199052845110129667005677239110741369073660517330480329183186407481920702131853282522589985982675513705845356475853608419712972022916994350535711623091344310854411452593192213235442392127147116044070831452374507941927478221322332875662074868820104915764747877625773997739158181852342577343913562953584459700632120575074375092784977090558480060703442414255329137934090159408731321015888135282460518812868891767456980901075213494999111825590006959457764587226853978809434537909924871420599732779815623438418302393748691920614020519878010890999551683332301772067983586339192770456555488602296363136566133544998790311511848848910004494226347979733052360648801052628566234996418903718752052002341499411048537400591571163853597414369888833881213327007524504945509013063194014196689929941817259494849200509934000931675734112901244039566431805918835979648899825616812681577530155481321920050916209693802764502894879680579619627895666509657344446929495819877476470476711819494747256795603140356930979679815686726793133890383914804129028732696974457768191203199959418378079963515235839310954132993300743404812682119550579130331897529279948264065108331335918535212038337554112230514691086110871546553678544476972451721669819965871722209323411328874509926789987595968236254562090342816379593273865360364886445734921872134953164295810256671290684427095203442182200394901923248980702740395180016569077806252942253005284132191116384133161182603600407357421899021510923627986438911821475358143073012262892173956562490817309822072797400842433046601517394873058855997604378922284059100413414002575006051138500039697390808734027554597163069704872004397330555703404447357490055775459997383334838147117943679743484714411016422730380043327791392608864184672823810277275198874342250295008928446553291440789195942780046644959076296255094205352267930844994630412285526926179165094656058102736741554542464918742619009099056694816842888338457381580721301495643101599275228347795810286935321780153383228593653151749513799232545245973930302304587668978403179472073765349400741883096721807936584965001666685346412304178793778181322586478770656302121131674969101055049074420830169736741742196992886065238401364197121323616343107304702866868697017027579203619216460981025197027936485064201174064290384226863122189709088580903581039735587087070855909207062264578819010914591356233884524902446723697103168321331455788895264585125279470086772967620771581560335409500291229113685663664307173023768021788321819747623382467460944802873772673038929682980162298482381497303750200202577352049868998156280346258457722985949291206517115208359345028399582043851561301988831772790788638959488259182838746405213216383122069180503290437963207880285127320618702621601490702161622524153053011362991690345299519438507163214563089367663908794900167957932969376624835404310775763116530027711984023561523669267931560771521572388288752721692050959535879873142945774423108374823223230758137111789439549668732466111680771295934571530901603430578165949182929238055857368152381624694339892812670506152847312201740521213096097326044184821072006101248982716641746908408864721631359252268786313252832517251052677158218419502851235933185234323896922459267020295758343264755434942903882182285575316458833232922978737504714504987776115954091902337309361298418991132365446918735423104502252812357243415009424653442917173507401107656877373295115111527533977592348414023974863797720203792825342199746097119126882369210815042276433900309198781272537102297664653293400058882471216861830173546584426395497357674396795741997477002193040239062961928604577169468790898935979120232301023238178310051497176337878711256010109280423585845575091285516189498278059912487588489851000830842067793827094006359581270097388715733635279064599752587685969482694431795921839061308951860772694682990147328709159291199361292170045436803399331781334292723279799166157871419155481040183259813973024708899125077590752259060132500716402810651863130516705315597025005985588250726622195221309183680204298330196823069555664691057479046620869199058426845293863909497895601908884770676821454126198691209644262433973919803192699570591853775464380399140871733382684283356913004624672154278847679548967002687976197517722030396503176218161289661411759183392480095953569513273866815700157825012701447576099339549647016624805810342809835582591341015541690972666731645964488264283564721941139113546037032522399445558321880630280056418993485557584014350292139756858777634002237129729637556307009378119173278513817101201111960549816804733189817185087579162867872449476322142768746938434100699979995903627440432752431925271289879179931469404301673476485017574109589187362887393611869835584553003126875543382082661972992193020096361933728453830195455935060462644654729447535053025060479791172315400048908094559067137956610078223150835203488600003060885715420057627848743423952419830993510986517924634863424986176809222498407437295079090706387523454593186671662993344088279615311962819255620825479230523743498262650588115769351773396290332272341225631896302333082151809032870890537607101217657949574220981646112689106829434794194566978254015923455739358669667606140712343072645482741300863895442406940479673108738155925333234357921126178107309732696708663994888808433230673810056208040281166470710701433248682045724412093052573971640742897165003925300268451451704915056553231738382358591518576841888603790359260180202007180009078328203808587105071517807844138072902747832814728115200050711651928717409836634165701951487546237089080269135097389628713102357415181891750673667352789078243407411512782623563332509929924960838513092126649327747415852718869839046725511096107057541157937055452943505572843059080058156838007825136574319482349996165246752085859948340127113721120240131392444873623317608172752846968897052249338509896389661746189888191382737960929684620320866309033311551972352859548112450348410908195755120591426761259233877893546181688861470498104842845410315670822040767541975222530927203775890261562219969401184591574647152812184724493224158062737580172561865185811702910461726653236046821327831043930222588139166885741333380846545851883285440564024539879691451699399555546031207276859795298242842818160420034487669480476670777642037314887825712841419784894533588988560702214382314060215724073115620288721774099456097165221866285191862593281495013922728314287831524197539792795074961307697193284999953536522139241607912315051350933154914901746333780247520825816629967418430978770179261818038657220573773428728983944296446348044958577699575256590566145446095514095336042155231695067304775040281041065036277095865576304050503167226282451244104955191117150989784848075460102535343724772075434719774495359247898508037718379970965059231102563813201031174668665705592040186267904265080983543205448677164468416693870287280588705878476651590421530512118050743418004240744120129457182113136205721288216678161166569160543815286653590845880487553698323166686641001106473296572244066610247006489883049277688505601090216559870012674492982433381370875799980703800028634311329406972819207150212299538867048736389871302532332346686493367197458801289422585137609331868028080663765247022005986003018322912805203680182749050461380174999720873172135980810926924952575427206672971079017466443345830133101755693387627622693297344857194871983711914374123382040641831026456895359275473934972922344653958013678882281838419555063134902245385308071379678757378638268066350984446625811772632927637915059621385112126763661768543068782613881189794739496212509140194567453231299707664913234077812442476452627780275922863456237781651095801749364320165362645204570836052547869190691203866518573302764633604522134465140896263549517788924901403880378810898750178992007243387661126018464071573351265849693428543935535535384923863788756457408208658992552128963142856552548783763702333824506146115276067028605609233174008277188226954535665339882210170016432472773211701498392388727865539932212865272515365651559476712410771847779631763011563229095136923076843407862588517004044624998390058513521707774132653909160409702357725900844656481799383037485822951112155755969957143096240467293720832138604953200877035781304971902713854414176759338223743395625728774112466691972666770554175594601938476539502201062461415842173850804260422789825958029426533355764876244280000283341814367647549287797337319115003611662062238994650271984064538211027552607968242122510368055194081734830912531329143499894774621973249527027019742621827482044270802018995002435474399382035337951759041592394775933440629169181171414562797143556137813245796186620213846276746446376205877123311906674059277411459781367948420758661724660255030113475793185015763991076814825108733449528048154057222874009311708633419476321401375960769478037270876893420745357754146165738357582401227456942943485594865202699643698385638685028711255072969153169855792045598825924451989708532445563995366236579629627398457893972869345290396012384896891591894050897859594533723347463133723310163868517848338357616882686556165020404923114072336937409342514996967803348863205851276343695286191877850995621196763593329537025781602056959896027737075140984434235756084925623637612406062439277317626760915152601209080061884697755669126514532654950374022262971439517811461941610065975970796608581204677108300828192682178558455957397726967259506247372768745047898125697562582766156400807509167512536556920257625441140549430777558178936138631938844894060598491426915816705274734852108516240236320714004674706202141910855441043131094768898910592326286215569622883643243268138055587241009134190702514141336444598281099549616667757886909894390680625927566317536147092105644481589755968515212916303902856816635789558587092067116367268417037297906286058384354605002513922999133847183944383609233090065147391541816002195774579132637344269533531111323494079472100430808071126845985636665857946551985517150189864249066804056975040072187262614638863502526370663912690495581626176645825928559822541962214469976579081055501594004859710402634650858796603075185070311247086744516729208800119392249843596680081693996384178607566982520310108440953611159037450195400268547512223635670169075369074449706980176798863976416983003142852704225508018136350593669262339810820500885862429803142811792327930698232592690654811878533697602752165642371324024054816734077392592730075347476910844781490360305573237533291252477499946260362763406062860340464466261566070783641050267762060453536635372717909810489638416198110818386048352494924887003983120548639675884679195568748686024260849809219208626305911894189870051788745592332173633638504920332962913047586016966749616131134762911878684713417330439382003664521202309178000044611759858211479643937110706499985518394989053584316594797186852252541218349373210410995629346103635578824844328219478504667031860924425845004301857265402962562745574147471274515832895872247871864069100378313180143026567817573020401962403449180334687500409227406601346849583998946278336523074845926387434767544950976280079560988118859722763472163988826907749127921491227880543256555697303657057100370822234900951587189331098541992786348237924810248300221673633474301704226319844937170352043789593837663693839915747445234561448946965056356348100612977235607245210035448089376773049999521658606211564541444759484559417120878167419565494815134514736035040298319113274774579898527944650064574887440250869271121647043138055827504212961028460605333999626148331338077310741411471141696918490179587425452141282407932086390270196744356172958417225700498073982452311096507373078323453963311706051237748558974595433321455613673650802621955532988438629445049842545758267582251886984149664444007034430950146916268359300997176653439674464483263695957608879781555304217897727890019489906354082109444293474185252046020160645147721253719261142941083232625682606179661517770631324321600827434653835129694227011445207029233699371750284187648233578110724358342081556711517884186846808304690327611476628123214970858343823273759875425090278503464737611875620685319507702720058391300818104116979378732790259524793318204590175116793167879134271493655913709590366442137960525396640801655808263976324076764507898840419907527459925050437088239104276500745798833212284277706517041453111681504046798611518083244223184041073528016375954749145602126749760958520473036612008788714080764086037824754382140720467170242243208233953875548830881019584713096423673658384311804388797619968059570443254232826560894854278038939877552191713634300441723402346338764887304676143995405532345583544871094166831736107941281903129543224855237051054398010129074292951214647901722156859110325517647671256037461794190180008650913532540751598642274189550818196489972005256615388597412467086830691968765462168287164471513079417358830678663469305400181474597010655369069885342007303435068335808157155763716164361210043242680611348692859312258981394453918419187845451091776223274129836184545737273177873033132694110961579718317308737436562738485090312881683509836923673385273461993122456852218236550448853535243204174264600704621971496048445123116823273111812297732397602995269505371405127976587531690415283058452402192100312003860947026812039877604231395974951826537926392352384765019439258325535329048521042410631322428999383208773632602879842061881830472660782711095816135579249570890186417600574057618151124144529927335254127786937616250422572745941172124781525881751015648054730106451697379872675315455045350737078066844683218618286585827070361688547759035813411540309007329948339896811052793090231549947174242714404072121385554900594116831902818673957765054489977674105169317779993345631374393671521971392167365606696503867531329985651351588991837846408210250661370924948844225365178726318273931124389364059496342952510462163371886100859590283732660989541484668667267869539269845859506050993637435017650005926931346914001623403583293841560675272145214412490598278949585740382108504329647838856181083496773631446700192492723638196450028339325264233276817117093996893734047721223644714929742617747999149855780349898409260525091016291306661253249264209149441383248033362015187109877942526918238611250117387750718349385202407726983775318055685585674059110681068097579778087537726430384367823806375244151371652929574894588703704257652052127265655469451167655782842358849776002507824372951440175622431658920621610107386530647234604736207394170688461780612013032433687759260329414954926419724517601744282778019761595168631274993939259014873228090464644986249904807819332689627393137354562068425355904995814435352223780401422905539608014750662570522734379321283005266532392461282563591871795377154043486106945386802002050134105929433241990692813814217768794905456762952419788255680220660650008428658779169946003613237501180443881428909487684531073367921753917293118905537134223005717057222858138131051705565901343783600294890364257764394771076300383661042013671047040416161905925036519303369238611914128977120436784784358781918660454606846461944055306736146684784338499760859194201635387713663707837495048722317252416041180994214567135078899634059152713403014369994138933739403004480324697471413123649755920387531533845608519301858594347647487604808103832966982418886262214934734929528372618319171908031152057956846293527301070564980644603362926840960549036523873436121552214039860212909717478590409981944760511060239107187070109503850730587576117135123051210830268667423560761974929097032797905740891085689030653955628419463341273197395476707539545557608900318999595489850241203700029041939285102067302970452184679375402968086095481650096860095762401942157384817652524883209784680439331674154710131889875121480997563773416166600127591492278457341265236711866126700406749476639898711391137563662607579301296612063801148806051364789056386334301488711024504197524134721837600495832922680353278076175067270884111710995851167808848930978036689772727848863922829669666312023591355021739404097617309630025057728294562218325068585063305147539869947041947406930401874910141481691607230001592958176294376935674289809742065369426096240390428316314249106297128014504842170999750139202594309779327886181035671082192783988525447866085154935281587854879152473230392219269787427331848562042619577107360318393892562013393491413202924243817781954462231049365848570030870137230606555137981948993450142738355108443076105992844763647112249035658187191912774137605375014242490689347022116348451919170801076548836345642408813137588658579727597419688540496421413712811820453301925775502295157199901463610549071614498818887541378768871911483098145944369798824823029668248934627038112712338743346205239743690389990672310371063097920643761500215875074299654619581734225874553545685007283378871062964172628031142670293672160747479699107804416727793099848056974896585608129025796393392755646952683861179396820530207151024527394441243290685016311480378573974447980508849408538476771234500151268327101817518304796933510976162086335183299462167736353065282645670935962288873329101573985313426547616534006637712101767769962350729879050734316239645134380349523306149053474819728166483593234261588237991363412151866299917365310990361827552410306318559090545326340218954210287422722209116407116374364247164475738576481250306063819054811408594103569623819888797440488170139562250164200339565436015582127178526142763452659713565493979359857795371912818044640579325841768023030528318474930520492994399791039349157067069635424994946610167710558433722835818956451075747325141577319033513577037816844151773450964589660612416705532846220436675584242883196416887142057260153669510426883366544856929353620875848252496395611782253265285996504545188091071376947061156081867637613665215946605192503091236238903936214549330418829922718526157834430973556347153699065282868253590154451350902398031177117747629099609066547621845495413298816479946096484337097623477154411461205643116676464349524520286417115149577074766771458099749728095633840170144196878556274545303352664009412165903452631963078965332024819862471324533430184504513776625863386490240249690493524818337325865227257838385573348435336894069866509563526534714489885046794061893810398310582350200696611121004641609245520920850201982181754233346988750711805730838790799114586542298760763653736886189762158215120103976796436400833742467883166116435974097850384791707180781659345333742270340593371733463829485571240725247880272321474403939153957204681221590525494558730036408306777321151818732238097100821105344217838622856324760183783741807332963001480147245328633296282762861590349875458866610770663895274575687050414590441002904044380776696093832691414180989396345699495027808440813527245648256108319750449773981413892082900105525656173776229360145948981217698751410976098129045163934663559253415729145393485603993792561267201568412087557050860063837200623070564698462439721016423213473056637523927120492934976060848682741163883581994113267391232362528755527993904017192468382105798997959681525412973984475693448359092262275977801873347065374284901987562317583172689008791352082479818827262573194018814430717026477700223171199421178507482186212957608011318651704223857506536837944181123900309819581282599221910389755337922378440966970412143901234648867407743888791909235433843460685329888188227097539137517488848475759917869585875934293268888637125936284573979823201054428502574015999279418150904854919303107941993487950683444554992215266094286423173959028884810523793051214455673816415648209572290562683531499662220712225363336669906890547495899963021692973239239746811276217541083227680913252148714841130504892839638977860005536072243858164703719004599053639090711329613356101091020338013172610258908007510165567013455484974199766804554635283357638925018663149635425916730794465280815672966407419476872763968211465684308926308622976292807950164331750535203556600542322397951289990314480475330408801219394005963549112860233651111238564270726999445163972299325841105104388860608565850601283112150603560557723086769734367698613805708023703346770230883390209460375416418259943722039665239467057940568809802424735891499833053803955253224853566589578714672615290927489798384634984331206748544045286362388516724883709937643570400163264811160586801891770122920616516103771754729308881547510061389210174238554038766988208655774198497033152777307403830104362123179329172953250436504517746754308082613809592194486648055955885763417592230686792570480731450076542605824130383446828545557915158431944654073852901697733798995511155069560735335693572373111708400954335891663611002412963168062607642911174479940078095127113354204088430677131037160830496902968569037184193683940174670087952745627588434588245238021263565029497066908673953609460482743295044140274540870291644258251566277240586237617959706529073490121145206593512881005839883345648426411092146187803444657500021081161441176174326856016850799477425872216874793833706584396992070952423487585240611147716377150535392508880547544968519251571132019075416975168338021722975547283783590628181174022925180293053213507367994015795018502719867035230032268329179738209517792988641318720910000403761061809973739262590747354878278113473036552381522607996886686304799841966399615105164999449491852723781503609406339746949528027898538981573003257777100305266087967300419803362367030546434235787968255492020468929172674689308108719134026612700023973551631176039899627868783198312041284652839425675722133067026051177056409377000997285528499268594101697332305989849445716704621217268487900459266729344395091781565256327860303130998815769528271768941449365672881896775680456988396630096386606597012677902329572930473694162908933750638935054379109094079581131408083132536310304516704396087078601142747360503693579291734924690650043602529808015050910785454268899036109055778697954909960697092913355531608987321232423043978776492195352889719371581908372216474667746943994332112087139690425756574680130941632324104965762491252316226599510462256609526933197659241260311473695703919102356645066012067015307678085452341154875402257908442530697069941956563153173648210350584114854499836087134715491959917994529437050445325361419471720347330958612513533392622493869190113326592612489605836394940552621721123332139156773556644809753524762826463537244229458124224639461714578361866262179369041282779498968681876174319319119700976458696587096786992373185575432375435002756976248417679590917665038158241665603132018859221643978344868157387928438162198917594281006932763355127926719448802857312450704277443716956590927867252168034930844754131876652303047820262980554176297053528370176158669139644623247184010490757135948134387114616510419067195907301446507335980318568106499147026926267924699430517605702593266385266552565070461531696962934715951734475338159432380612242408310389206077601260587758131095754654203452797906540045374112536366981878619583032429971100712930492398784999970049027026732981089549727254134908047669154119049056790126990076095993083044435813925792880568657050001116872650962514430936095697051382769209278547273030756426183227388600700531996836095773951690204053820101030154193310170919979099409049445524232411567262571774827970870193540234534399200762781571391032718874987869582457040956778798753446439115660396760972997464802664596245417049140161617731818702828241231608008022870102315804608077841917056189898315941245401182909293789494151497452736920230621841365401835852628943371749275662512741397338842465894992510635220181208793278281503723113131898327537074981554301616399155109987318594845048614283784260583114189713731346664969513979607691761172692009885924726882769514835746359627594203091766586175844553678058895631487521259073444377666382078144268243353867493798983768242218865419427604765343957019166267089304555932110049488885959569706118471676829877962942598370623679944301243861237965693151703407605527019991839811598811370849955906976426692062225654426442472792281904117417301655349704168960671121527706067837826789446649054897030705658161855112650958439838883897686896083954151203691898372564209361999837938713243350304002303679836434638967521171628970518387223721713400306049039459749531610333364873354773373710652195317307824176653084872099363799033691965128731430125911513231932107269112079289790876839048092315128924811665702960107940313168813239682932041216113800298124916866886463676709216345598621133587008803077958258988405766167202936373221445194980239492446881390694364338290089174364050681767521340061459495425525838200403494710835011013982144789332809919027091043738041752779283331157181865430099858129313222123063542589117060169969874512771683744461808638071713432652044143235130070234512989687653822145664059687004587673175970581690405431346330427985202908254559001289767168026714063206064115173178597199866669698192193644983149324980085830872578182156475793946618609678139507143885506388248872152700260846605987645167377555328353682181749213879924094663881222224490702875196517545853061845510028724749655898545703682722322139537691835980071180537767964311555540781029630947648436954662103857709771113746701235408882494008008027051197434961435005714611718700828536365898904350210684654347727920175318462401417534182147850133261933254411833762824394444728537683898943105647075133135074925516455290626937588775689003790470843557532841457108273668760232404208522193744281749261557488411329650952204800163756686313923844972373152028758388889798788279780594683616295794385169962018701199011460008494460082297306832979719542864577036655641919973303764139869357778558014580141191518146329719942585554024023734816998512321926799960713778791745171196345124918944419269489396123874695053891452291429469218450483466095474219588829337343660333323399841844864559983164735724304500973342162942014102051032890382084191914327899239716940072103610583645661956705249842751231942339404113997701226483744362015628449709753086406415606862303663851795569910882004605093958837590393465225247578711274925076850700021215424755111826224255383122795525292488772634086565074904815771237605542494510612098604545298755114073971346125664462514699953100679976920196278148985161253332240157904326462772611019772273673752082621281591157975311291846097544025694508151120569922499679223967087707200828566106365622234810871560005479589916931619229716316939227818418974780345215935806232888834337479090884124880067774545197196582605522492185997776369446607527879028884940016593153912550056590778653417851960837471896761480837857568984921819682766439241092964340008084153951972354459186106013231644114344608454843330125310931100803988555826306060831964488522185890642349741820266492849968314832159927156624003178277825599567832011702444614367063277797026172300506793659079362614583657877969223561880725465764268461400587427321058751693551451241128929555090365092878741798277019843545598646640143287856624097428091990167680239199500177352545858844434077760146095903902853236685504358181316023404242217616580731878759553721890703374836216152137091418610240850321416948386824554028695499784514799883317292083426831751442567671378422630876667212702187859632402151318801285754974418100601553573589453712256671519577732295982052683611823433770385223777962114365701769148678683894130836097455497504331803398525544289992452069110616345877296893866362071537432041525852163905116018651529431900478449513415929052076407680083896051230666138594567164305799208452570680104841577669307196986446579641543189935719238919833934321623892456064046651255841974529841554367793264203359703695827342976629241696846053578423750579150121006411230987321728685698239794026910016936080836599212926220036302630802723784160020891221081879027429394963899413660492149792681725704751067761485525003730474506199166655588790795458659281175092036555426156080323066332768835432203111091153041791438074706461818066154920531920765077054107972744065117196523946245560973649610527625183181465349114525403625043202519438646595037279838118412225009547507911981673304118670027881595036887141929643290324140398979335977636787064822605592076107829956251870069771319411725105938725345644313986481226311690675750668687180110468235826451317976050612363599970053613237432462157841621209326093057998381945672572232706157230593824200002982781349110032326416338620083178208053912564701479673627046886265642504659415944546316008257420050705018638454685126519975931517430794431141333334123793341076545904308264021425901783632757012411619443723639908811952886223550783023082527805826581736100892094714715996809555922774175261160256302805581732214780090949870857576082640699667856738552507688100755423552174814633144082643790510813225106188045533444852586402337229288471032094337696313087185665105167693310439249098115356020977889892890582640816658713487090162797557770323979461919239944911207053898960051336484406338774805794493704615947576145453246365163310809078281735586040036793491088866838607274726550521671789652179250275645254682475657808263080458429373083925152107781317722943459009754619024009157156451588262279945398017209862864514049474776177382842983024070782348133880936509261378203381895697633775066065015702601551967184624529134690241686448878492901842008733955524447581377627973508002420493117406976761419069048439087780089066347880014037230056911883558821384702777167625529443048726725209547327769272600590512489781313597351353844021555173288267281864938080142552894105800658539140328706746496655589805083845102408869302848312019409030251268304573211210846338105450959707311002889108449358873304941286851228238627781601193190886682924804928826486476189282938793469979805967837902796265990133926544965936753141762156803726126876540103490938872538574125769126291320327573185107952647015409212477142122267793542045197746869588097717366141544789626095578163498596730020290395705890047792970734713357905852347305318601057947750792984161540835765837876036614994842829292399698649586968434344607959513166456743607984071456680218655602122943877069087280275436095104380708538269933845252186915113781241353034457546529268160332432627765150835854260978946148106939623694156790134755467669577979824120413239718333064041011219807303311607893146489670391693481448552495138303998175078302928068549942115642757573029972887653263501979195195805875421388952659061364764043851874448655261490137141246886402659024309355236695978446884990971197962120783170643416484251566667578995134570355622859267640451229275326692638052539294114841693292584303018981192344856865953325462198608404330646310952759440386199726986610039542438264801566746610490338112658326163907348214788718792130857397557968274736316191986546028232649704404730309783044899099352737790773138548189881134691809319199598012375669425932398914907849913166196279625020822705302460647234572482507946407881521880470177653657907644091028471843375709919769252714407333714190593119096913568132284543961969456303385417542001170105158815388526838022077001437077425514553504047692221881936811558664713330313015772679748830895752495038307338889821378498921251561190350721828268132910642940296588443050506934921614428317344929575794386516941000794473870222520593860124433362385869629374170478392827460578511771878137594292940825001309080973289802436164015130502861808809410241433238354316347483849502427771355335503695470990206930307948662108777177342790896127469410004184401049360359444665303538163310724878269770106376360016097751621565192909670198093384344209908490472502252263571364045690410384895570101290787789163322606615732365336250037459332553040142962057424586057257395948843754083609822140476201087102348369817169859872188442809521376429204664175890060681516049750530206292872443783925050448778814729353855999309070227674531029762714765358043861418889062966840859101577635390409541252448083449651266834371881234224999164985524793885028555366696471530155864785331978934454753270862813037680357722693625994681143914306931030613249841653951522875397622452567924369532905571691403453599918687079236867927530984813270260265099190746753716422421694755198198200993741553989438404035895319852719701276464294566324548118386479316660373998803774473597519508435722350394603009136611775915828852938970145531636816670123069837501723105511821199310262791656043512355710019135129255380298415371450653731931839164533932602957620036607617818079985235657902445753881257938333807387939345420504422257281390797804891728995289201935406787443012851143563215742543136059139254696472882601228086798738982744917199684020662069294345468125021371896821654025955115511920925075250468439976946696725105496218180316934052753709361648331456382896617858074791125382378048538970021464083627413814062862626506597670844390309856730180559434051280897083627418475752262339719481220887780665111560694786864321556888020195705668467843598010570140616878169224257369678065523391827394126416751027428900160221351879161188851926187364904271709564136380470277188356276746021190637951391207911093924550311507476361700055443999331762578818631749581884075161453214216117379056873347080527655048571782448428326919650259826915749861957370248418038186409636683478894008714288055947145126049623885313789194879812427578183980838496018392892453873396877295525759870116845816318897701918209681742413291446027652412139105012171580789802805729640331616866835210702998732112359286381276496113657767697017887447735818046486449341340767483675940731191574561947733392959615052964702659855378601087845726989825485741995155883605237899526101792927658864067445202108619966146722753289407205695426891429524350920237196024102442644560091297047372238436661366938059684961834594542662889059638779575581290260994984879869462905640569366597233197977923723938786558842259033898462250739723005490774224413832207608109257927799440403016316247072325277690833547647398824286931840525609740229232635050163565789259582416123322084408408480976645442039176640399596961971665684532918172056247534014033293657545462946731593673651450906985681981882355882700455911289591007889311854326096654574897932485471529141360762173580987148203642646724914934941982868997648851963127015539511719691373674377726544161101022302327500714079811014306713799313946372140887443912041126697390547054266172583730489887224184084227182620913962043933452720775102630065063886460978995224944714509979015628628346524690045481839462333262166435299480046351783797569346248684517444744630825050622609779066821514728080018835261073335591788552444646639987817120760400544955318846434844533002172004943071525622245157383512989253052466597156975246464257490291845017273314299362742180252393405483666823987209511386951590947570892942285362134534642831948482869956298978724035146597587745815336799416181714080492763287290002318447012429732019739346115747326237547347045543920873073526565658823713324534452007164013274648763930420286061127555156134846579332820341746890948240530431018515067059440991048121653405269364728047264886719895188359907988848100547943957640542597210502531474742193388059357176102288768913384946151631784105557450919570751307441914129309339679600686324828995620854586094265243776124342184694613550267117462727498946515287559881624620880707496309646487780998047882611883684498253271070431593210120575317411029052186522802046685856389686543674428190165129437707350717252261612912609669457874038206693758860407814248174603710386316046996071154203747353890738624516064311412440370645917917941293614508568051890436823442176280721688120058004608214300917194094925303249706578827042982479641527787769270139030125485328560294766083275439491944891573129693340586452454743181375452905328122519424227093119025275080256964848128519528876208663641568221478154009533001271265759802624004370726732281136489944465089622276094152466267350078718834055981396634656485523102490250149343812326185635617669068582137955141263468221197365210713956520841104298745396791529001832495826240009947259138714723881475607167415317961430411134460747978002137257630455139202116273337678611650013542195248564522603783105966967300667630257155053704704969402080576732602447850699797959128365638767525244690999269512805794443862118938215016109192416750944483981234734346745230828502333841600022348341079550935475955836134470057822376278727104145815336032308776323924393962299160810658742592157535637385463864132489390664940082344619253874463967348359406662423656126474962313819560367231536329491239669180636080662691993209260186499836467513777115867505558635660514962741738397791001667196970117759984076243806234928276543183319961216045087906994469537985180037789078810213648700981947003643141880417724106022195082601195865768436988788976606166998354806866814139438834368093333832565333215666003631113719061222978640589456934922960415808388173380257588902728107391007453866424313078791821381003988190685412209666645947472362273508750430144711131939259587470973978496434671457492547235065692005128135595391013682514703239713126930444567581619333637803055506278585646735845569032617413224987362182164569538087428821034069813996556767583562408296144782397782859742871495877733678616463241143178623101435713540337288102453567349448555484933738880510928959891425399502530825903612600596369021151855499982674636662610375639423942722778722759641631878627859848786052353206910152801895922214628459562928840553417337802146679526918894884939331231200618836177448244738155910601500974401797056192903793283540751547310842779520659880802539259347671056561010802469978321928298389378953867603581898512455125263071305453328775453711452786741625267782359516134159593209117522636983402572343364591060164992542998582238123315431457786008199782712201586635634197966797120028767298867965442090468898317028060840273993010772892758861910514380708284793655823891003101289408587797770709288654600137647352766583476079530890320287508111070152597211506456888922520946794455492597866225209893897287347196978959316820097927552518797351647244712310578230450174569278530328453887935897776978308085219092289032182197761785364309652638618968815592861752783618147038348686485623906923715089285850292142870522696085692679765560246163957717409073699257584467999450573792746526334145650661901186473946401072980879354910426070750847646404397074445348007138178297147594602846206053856126702575161336073614128277681782417991003589735617425302966398294230853464789815615885833618866649882385071866046339607484198561597014016925932499429122624271561947358193074911496792120200272862452076930022415967815270355956548015015821572411740799119835397856294382711573828586011013658962858695375807830201547704665602098606684199534951056615591427990150096381010972550246254082786048330220428908676941582622875499059319595126906206609933879214265251762040624977643014707486843360653057066247196168381707955866717783054527229045670323187751266254839103435716617711753834585704109640934867380280763744981124096947460907827025784176431709069027111230104450006949616295860527164239410704884269933717002583317597424861711489687451909160450790028837792549944332081116576337224102244279927953219322545083302501141690279863051785472678749468020775536291061912058926545553843056843445993018143735209191170994802538505146745705760690645791227234238350271175289505544824906665241330712072434757609678486188676715990919235857255108311328900624733840053885662441733310404225613171071604102777776793813693248114199230489969845600997583512711550559198859735449896459739440443825841131581490996079043686889624802235688690332211919211801293555348928051404863486524272766619660898871156041065129167934117397437525225754114965513895983487351433529867599728535850392701162674434071901950713604796387088348778238940092261339126082943932444015686119553161236434536364132963870824670848618379777247292679859703556137791568150829253447693528907954360125298783188847744088086125611124952530448960791837386899040678217122151744991040265356823130640275390531329349398317054334043174518786030798332421000501132175021552755977702388506689163063830862046439413518392215085783235339360543624076074412608763111393540834456450203899624284844488988412745448622798063804586591216285236560413976517887760858066925006505610383616542596895241360578976426645813885473226901108572043567085046507981628582831807783264302946640050674038505945795837205184829723575129670245234408996704734354203390888964276602020163447410231711602102297744844391038453553227216756646597873062499717875207072193358362672711698143062347663848646564716889810978330346236964329851718383059817781240111949087908395875810769418680177706329554260823716340081004104233363333871334912976068243296333313059305636638331123462739293044461109614406632579972770434393118194794946933500936174999902777066493031915719523855994578312831587934815778893607588600644894586723014481459635671630659170001294559289560192339228742265454979995414822235394383427285952600694771413913046311299021785228943735433283988705423063057436021561161825970774839590543939910895204798527134569274315244034826407681534150914205102515557312351475930258124155035581766573467184796029450453276453836286392044115403864670827513497416048593438978197290560485082934258325331284041891713699630818568925631505876067529405584647394017460225791586210440603052393420733861364003163762113817160425045510039162538305667561294440833268236922680273870685664426203694331720730019620073686270544137792185198344807649783816075924409454094463542719101989937457863773680616467099618364417868376218829013073897552834994007139476281999275583807974304351742305498049998327577290142483626967109057288420772451643707338065595573028717097137054739238599961959218118518166070310803007278531397759060540216737957347242924342165589269669160359403437492262340983960643041828779390890370659395951579291590704731560776760986546765389497536863716806740774719756672206244727581179772226064833577770972216252645045611478159882632491013138625572547117025749164914709712739298599680680129942870341308214794241152565010694321520612056907013823763725975853382946863919302690553051976700846400958977019362569636317503787389231840407917855070225656089561609092185157202152887641676206605915075434221199099140243474314959623846694636312259257551610964867165239953526232500875533042014637898449862731860870171575756051551912961257237865074266953376901378196980281296980696392614456644342990035177501771209627555488159598513682560942505431028702286192579053079995745486678582115301339271466386676804108947368262773833232255489039957945160127168710168943118497270769500173233731757716608721680829596738394883416029241849672567710732120761278958330355563898538881424441370755352515371196929976340033359005811322523289101537130770937704196471018825277138691642013646758616460259731456930238286873414339753019182248983507455656037920030339036432923184297108636269663973716869155754909832813886574569119868463799396752874868382507941375123569070103240383745888302586279623264211725965505647327451240511362139791255043194318469899647605193356036437324496583657294941797480942349489575683954342590782074528387615784012394634438413591668515108253792297891006743168432540073252671874881371503438897259411682210613336862477576289307539365707255769762394003064925953631891546100506499367294610257227085600854370053083453442342704060999019097957745450400795023412761367707970474146328273486160509015681216123027523245126156499749386269076005592446187140734982811161656216861699155204881532502632975450300192457156498385792589001037775028876016039970855462596052958854715364211526824668679992963867966076911434430825054494145804426879761725516630441465410592697041752751959515970268645315168094634177685120107281024551411759247714366291506909716880313303415074150566932859158415295734106013652058701346803487449461661853720769306137890236061231597060384730123965078164472668780373232278767316704854305830189074795072526433323339666964745044579910849657440612412046420273310705724487209242399363022206688211667116401897731891359115352514568697881814988645857925061567768690721350160997946405311731338347132719312976380996344675046338964359848722865739712700084373257074566452957672148715354449166825470103051439190276571767912061568439753072342863259970924933541453360146133207300788296725907175752121233003134041249581891065762140636774383197902803038432691025948255140076850936299807520914072855485333335029225359318794008145545232215169089497699913719036294330947938371042104087618649348474920052122628658535690537970087550612083575769762501702602444091873661229511529113206604807766040722208955153540087477747827266152420303210695566025795896050280870206627184063022260310350604594153104607043415301300533577159215548063668457133750810905105844876167206704905283495105181055828526999711182438571290089133080732505599176394803665392570137129527509665411278194315800562539316674839659605598316851598134352997293193625520753008591517763695246218201941113021852024412714170332581654203200842650481167622337721872040982683253812972918110781666984552008205864787283123690394204020448609829628602931928215780157374082539348401363838374573261161001161399179175720586699570618477150339571855698779691464515801903484224928590040104990468806226771842228989286480465157112091266838926372001668508301129106099493879951317223826837375434537649347835709003408863111360493786044241886324039113851826713218926595394115172502290294231128683804736244132031615685446827726162625389465239759934476513809873317274842083127969158783356346362346721192850211779622024318474566309075961597112419596704361207109216956649959786484961699138137391628365607571592356391861818452973785554095571872385732391380910927436516072196146605729494964342831670563523728843523251770156071309113019396262047486854463822336493650362767455637167660522468282470045743498665499994971679070283981406431597341413987146550523825520241976485189759592133852198342552394446579601952694268278205753744696609743753817683575568607170269625686462962169855457137435664289341986501904430894831877913905106436518767226919057242638514191220885395004979133496763082396106565278592987249537092346558055077912605548581666217555424399709930330350331630358008401114561842487189756201450804597670489525529997875161196547757787151103601052744699832407737105436790051218972296130015636389813707730928502298815619010195496373597633001982075033902031767768962781157797451056059932425941397751066060233295806359593461384546180235151713972394151216470714490031830282869544025123593679448918365002583304802866894605248387530539194897755169115261591924283277646104275891681472926972191776744658038490059593937935737457798504387222435559819647700181164353308025783614989198319207313498899390950330965960410247617652642040666226335648278697441741101408248600934195177381584473743292045270025245270342254968798684607037501341806937831081894694341406146878472939713627180446327215110456397777467273985400203251924396165617086325346256403012436883378515570697889200528547825836001297373752368188236056063344537801044492879132996314841248829045261792064677686046963033117391445733385026701185700564657985636141673491173802931607415868235950311237749326520543649555224153142495688686850576689969155754227639820212591919624950523443251429078369037283589387366019300803706574376003526598781322213358390320463574197941274973943760900318348623858019498925147152076071647453790590470987126527546580074493300104422127298402939160834888052908634892947698312223525631899530455896718622696215022746006986486177511355507111398769409275705992800705953507640029845609896404606858878593765223146213707016492864663680555270644729953825888368607614472942554640948020539054757048491903581658239237199463489881891996054028893202120969350276358231763119534053048576347428502878981165990545037056249025303435760018932596984311282644350086758780405556290410075820465565957107790681230668245291508659412986103977267776189493918600659606098640472596362775653841185191350315109551238943514211541274307317816693185457897252516917967629178047539975043495857831023459527211253586610414188194433664519182783885536492419018367948879695245938268152875046433371102258436301209868671718393475472056847071521043597579714815994883706096715968132466690130286633921582000934312538655138732756127635560114785498480173220980709265988793691078975604219369879258177341568335763445733108486476503674825284546399482422943769151436723320872368913397908076970399380385464560636188973548644355571683704673849306988088602863736460794724864525283791325792504983176602673102254356319412824143540871938160884804774714158303975821163376116583801995691002051898394045267769858603429098539738998295395559327749522429467366287528437100771169726242049649693897164324578449841359164859369994145257438084752101969086647692234561300512702312045102900961738634019443663885087957491055811194787565504069212555515633315291041767065444557386152710250884019193763355941893116898764963442436350902267942336697283406465227089411062045388503880403147243296183326232550908848571982850885254528258611198457424594050034336403319723704185711576928667930206473434828777632112655326248841315980648535279921002633120812127409396064687237486351249079645359273501193467206057392570884977366350739386533134912780102535769332400270339681765926716128550506196775849925250548420250656548692182396780815632749281721130187366799473919427441500552581446747141324297130584233621293896718042834051717724762784727000399143126475110121716233385867283749354302127689978045453172547712129788768711998525873782154683349492369536300707000755194000745923876609802699963219775954067249340008293021690552298908286940089097947579446379366970980840157463462096234047340677733859880522838092969872691054165325565252486903218244326330079059665832745526298890037025376891245720948595914072147242601022343692642857175753559868682835276857002502172384081761730967007114923870809936914065870479777168783033495734267842256902835200753408473125544265171120809344317543358644584226848926037949945426768552895079090360448048422075104778454130285839347566754020657080060844780194512933754189482727835909766562812240009174750865805231689699449190741412886759255971986837949250131468380415989353710560929665455154386388618761440915134161340981680501975488407700712560197704541811647987069861440937566395687070671600911542409443711611139117901316492489038070326168488448728997700827565529816811753220152135623186945944535011448686784975685318877840955811131948676450065700888020919198036297544434913151201305452135996648897130718482863480845347239947968916380330455405114222352151948852967934989470699881148003566772457587741003533176320344913203990189053927749016223891960959414796181543103983473283907835822504979122706438773625186009003945850310343418486833561223245914114550687746231454235408141601621114210722167656553397353449885946891747519302834831012578730343834254775717631218525664170045205129621873828413452896836470609949842893781745220509131683856535719533853915109243474770355598712409950562060606188082071778967354444765715066821787937827492264808319971425993585687336496214381142442266710069249204616643641003170243879851201274550179095774105681014094767596318683360229081075453269852156510665254340962653437940401045640926414239016992893794895327112545377530757325682033278305868651239079791735515114198747034388591165411597093377637551652802256033518576821455755257944937596009633598021313270042065829044506337080747591947673227572429337589975604425916268129475299493702006739891107405697828616399769061059339017558725390097802078878099637069301788943943519211824031277683504128312264897871262899780322638432282778098966455560340839740652985819949491554789012504914903504037162703779371488641432811361433442399329672913175598754345191561134753490172053556744349439054351229631855632061004738090532781903229104226006377838008028191388582079219085235635885665498412232066043532893017955095940904034596262833229884468539434123277876994248778219157198243179913203757559270087683865361824031110051473535817004191813510723901473001507367511220981585172224792616057390681270878299246935241740544147725705456389744273285329066849760981934265782643613979195528776430561622838665391969634200041129257942198775957079513523246669606693726302404017994349129896166440515557987655266359702824280243123283387682621186025701245596629497728687087086667964030991454135685523216505752190551757404200793715612340114234850284941256268516104163760083503438601562425064502231530192264842197383614217786509284656909236066279583100101339165259779260996691401726131783352256552620380725919636465210669803646047217734421377043459921476823004966662378283129585728794042191906080617059542604155485353249336953639508561505535948981210517709887830057952219342611589023629726437618385851572371751815733883210274545136164086996012952750729815494713157538382125635844677143052580197608951863419837793844256499361991915029928162273551901192164201839046892026949154781135987910023483713879482141538079779145928248889913640113372514929849337961312914776631879676104023743427422540348051930200790756904580729176486041612398083385069379639618720704168670711431888539723763283605594700541207988333832887857136495223153835709659879164297389373501652153367692966157873427967968556704335648336896229818251142746656803410264302219254936891956374627048877732828602738349390702522561960941149456685749880216461022530763199950179388606350099623538513545689877374407314434175462040600394979240412891608485394410330289067764266472668456309289079779686665306020744752231803817727522576214059337111595935609358248130341670626417824189281740109409855934799206254289275521466625706749438782731513900840338808120504900352956188995432864599199524215499086276775855810974685468036514318619629979189726951485549704375217824757278407814136145933858304577907214039226211073102582820723484111889443201747424391816555322142942360371535041310276203649829763375777047651000915275932761284268334202978815391562797190883173600859470926342631322620882147333960288119639300582336001182886317765376348595186293882038947922086461276437095927336352765438071303110624340939289912895459964327788198449372191046856714559002124982505254937425565696445611474622157595417849591558586622798450760664513104094437050835883930625527873407617236631329186810862465120504740424305206780599992033509679291934543557837056272267796267972162481016868118634744377811218121099680471621906997221821808317520538351545832913620985167540426281007819207315076834383262593195500656528708101192028303354843691390781869869777734539817494073897693792354981819069492655089507389940000157789238885901927360521911640606207706691209886295445066335996835301254305443245107763288479130449994708768387131994693740697510660020455735203250812324568902108518886371457763878427085563797567980175159725052451357898179246359627145881320365177089618615386263481477565728067085151690404678848761593779313005510016975362476739656594846961160340448974565718856061378311798850054994792749330471579983167413074206172090513227927079135004107101991831435018620525160371067644498352903043972180517556110080994274290484193223768457566874247800294078138433941665843199257694663178374795890737760737976527631567261431005063317190053222885988902180542096509961131973692403657575935527533252583657819557636881235663544667646357286299296030496030203043658336566820914863313148320421514578260707431196573759917869958267112633642954957373371688804422266051528831684436572775442286533121721870991709477045812751877969240668629743792782161629107057884081437066284210541890057553633577956786987590687114544037389086211760864541533486413527184208654956912188126264937683625628489780116352516378227530283458082017781688315878802464957641342483503743603207964263117438184231008292056417257246077505316888563728112156742502867023705841504874817502357478317432730136914526522885238906288789854034939223458583980677237047621626039117122694599081687864425094675130104443294174153181832825723825752032308069017100726454841212130930188418005643470558372248105932405213442653580206870285044033201948384901409343591850635514193631634974705474436894479789522639918305962758256070009048621624752600026416370043019294340768891341265099284447214670429128262487885648219409593719718119759366655629540188556607745291871784273854694353083740918350194919452565131878487801981426812458621279472135801984054153652010203208170954132205697212449100540309512030700205979044857622279939252488420729099857569704975904631343579288202702195389737100340571885539553128146256665703753241063417219626368230804456993123138317215118294087325605389243372654226424420108303250804706948382655047006938509553040981602023603308316815028859706120749851100652909961838350815857465515482338289316413432082126823788733936627395970215026268806467013699448590670366221914550996492526709847314243590387891119314410525193559230185397394997279072565487431136091126974634890721028526336767473944438946345027041489673143459842228244883453232625230299676004186192749093484456436160876614589044474669223377285075308810541660162988793289296142368574444140651426193174824216022740866807868170964479251899585164179709392925585394996506672126265974701875420073581172779993120939853865685101445303009791985967517669962816744334441265999296871991430535020273742496612016234706459379744708175637860747167385442718402191652348307806674531289036547509216196053146902172998624970996301044819439449862168197590350515871566424035118262975655704831791742212351077066321598625129581883946597790602967621254534233155704809332811637398721903418352437565723241875945274421877046801159992780584447473550971755411640563198986212709325210514377448149026374271019210655963813627340762221246117844736088209862845068067423455456007935327767705581858793309778391799412014249795959278047696546967530045224824520535679874808027020753713558136923528026673167406304063453271584477421478424985371068725918707671531623080451394462961089610778057230415647350755921314309989113132141131382573067952576055915606660891800676011181513855337564914812047729609563723960617159048228225014602415849065217834426449966082840870278795390030434448258420547047483790069725291212683876423580606251560558848550377137484815977871700456994345077350072537264018401867520513362635901590046224949534415979114128484434132333709590784194024859950349371918695719525526371756282383518351684464562929866878448731288787901646536457484836521716456640818271412188911988043408829033385335721185987001882785285846046698187066173496968740320416868310355861348698264126690689505857459686596517887425820723794270791273714606359585441431357130500123738810211205636349505345182967461072584050036926297764861427572212925982738683493842948747437795604093563038805013069250127896147625614983510740327768362863605360597223404062370341516067526288123030171559141229504170346255645228025559094952242009988204877043739143800923209954567996961907000377355094788348913257720617252398099549052795672175834034541824601736731248711422567379244153784641422805187785787435466109064074604490830101983133638170761661792071194972064048451503761764946293263150708401929584915872668194097961269248627121330410598521853980380421581906589579476129584727659084683711556798179670200665849018015363182886416559926097633174401913222935692832561046913866036113961053272147200964305257363776047562797600642284069528663897560303163632316560513647569251963278698951650628914195421335338410847591282417013560289294748513009423745481470232745626896205494981812671068396699383670117001007046402906208724767757281341296879032468096194619260389562940520668269369899392443033788245264874768688133534214115766600469628423630017761060947545973534357678146024765197459989222425028073142050671852017396424084770330646244429742456146185745114137474564527198088601523879544516851296837803784835696310600758244451397707155342330444205369734531855831391033140779714542987072419323902467815108558200428425239231523324668802177248558515749622793614056455750390558057593151387283950027433718559924270911252471320180102352284608376743117420662954729952584032167804398837438986943864254728294509165200765193197561684929894075345642890535586837145644727790787390906481845724862166313726231753297415762989433776742424485325842576923106964987680623224097035663780002637274728101470931025361810139078161421154902702754719483636516167570593708648192511873609902029894681273484846763081762278270266713421502601513746556794732102319828709819828618004892528114454213796147423271795788120581182426904624030065741503304238445485815402712884712245299503378342648740150394118989644634338548899817236075269100607207376149597441798939342040498471372345499289167258113754967929012416918577931997800903767248357183577579961793391303626007665654606279071498116336484740638778640935894399331767215154415851088993856670990711010215564121547893477425235244919282108500898332027814206720067534621324715384628318331404032827712785454618353142381611331965683606820824514881725647510195263658924205102179752227244720703871217637781234781330393406450266086213373106669552597722742618533463042827086234123999828110307523077055816384200492300959208234234617543165781062671236211755904114998186921866868442372278856285551794628015505204351749670718372585734016513408425314005989389473581667634071729774093559354594781808716501698143731069955362501656123781757277301461778346233741051694365019979539160193305000027523361722134778637287726283501270961574284617593922975092368650009096507707486520067620072682759779528358310581098179322246698468686616403479815835041344720704964022279695126500910408913004906162957570352016997409101203275476526657769211762720212432181257958129554249731984229907776008814123302319778016869493228095476596713012856515571426289669090887981730051183941547001094675036427199764706620239750511376014419656834376016910504688624530997617929533694951323528367872160916841003966528772777510798800029577236933961751509232370723977765445892460181587180810602339012973457732020137652058527903755669647696530375730132101075227760008746155213670199962605554392854038425744502942024804414963766421524758990291345568536084319625457886291557762970311842472647444475462750405978928701081623348683541563277930794859855705163853167415612163843525940870197478854775987486723116014347233903586931679594884140882035849294561479669885323713415409245459085625519966831977365163911730188338313296481088873442963217737211405997836445418616621271409473825626057272936664715692735117843933228011203020546182212782115610846222323352566626529416847203871097279790193273467940912868956343907425277672148880090887545993495590197347132408475738875708717917137228640044049593334882523560325708795694271898795992876898014357701790147056227986285434694816225028919152001841227080811984714577657550779779032318064809313075700350813463311315672288409676480048190648659372850047580318521066589355582318097901421024713013919253690847196507478512523193871288763442265984696706946780584101888953119679466507636786239364263718006091467144775413900488691833204629238531896096796662305059450473548990797227347157626770884849786401804651155842939407481539798279026137880585788579599961090068116715868869157713732636662569858685909933094867326167048150325854331545242794126039895746280521487786126595395038228798807517755453793022884229512968907950911964782059190919836783952999191048961749683735008012105580983418914727844713347149749249185644727865073381208251255318473282998434963002957746238458579796710927888810578245784452883511926341241042162362369125291496218513087958489290813682822538249299499603235426413553470039362870819190205488197533182407220289118187393603139801928788093654607250836265094293833962259754528049936697586643011683316608152586455217135748027223971800977399769174426514662841249219955038653241781362081804765338741553007214117967837673098489255796291575728658789592529482012799455309363917257832365570398051392437900309628416545216177554570696039781305561043018010089545156838851015731650685692260162638588693969070711963364688139514138325865160600197536021454019324251418453049277302690237998285635228062294516872784588537884116190201097044274683253832439408012489349539648071935124563774096348786893451123353842399972698617502449849053954899801118310375415304240985068536400079700268840996390641641510167803432305095678972911520657764947080656022477638974173115106211303225363618534621643307106901033480367854656623250673490101670615995368272814372615508748513418035334997574568930932701528990693787499774775040837355057713667842556733632378325429426383138335439797044003713364734246998486450230442255511093049283144982268569030217397893356221913128819268741251112945963335305797156513429469919977029519248405524405847121435358943338931094696714184328411370569650732835318941822873876031921717464247587313491257150739468117479549951165063710166000829298187087633476333481516774874140641298487332870699382350662186561233064523671689263939794462054978165753266447407490092190739440767224894773001542714761830832720937383165282491292974384252381957066746534655842014560039068696252026778661653558809175522310681475950387539161747401888839495815688330954017269950390250465087905049091068842913813126588327999158683624331947744554553941809413541575291737195954029061570048583545812278708354508374669461634516268148195802892583720994130381813102652285454871381541304451786560153031129780838755560249419377318817154318527386562089853716079229315018032295911184021600607989645611348698843912638805424640288250965031456322231542655921203041650073968955429710977932880468313383759037568453333470859539055421571308472628884397704798903458509071980308862592217442957869474446917983697943450832881579466139582833751421094480864994553804908807244546164073216560982738834945923932149712525148943838975443223507498278833524604158948271710906881627336907510053005652118479041151870490594308897676333483936479020501656663620096810624600442088324442810592566988826530056656592707271086540958470164538566076219856597853575902471146221527668409032063737647073578620172535245543163561481622818130791740026109053939509606536592332098262566052957892787344453940268651843689610913879207442467484806480950718929735092061328612625133128437534901355727235772811047473961255090844826682756925212151580276652908350845284707670301251214864511515725466837069238968583959236525839460010085993160387895385535339998613455210437756692250563479600233526695490908171401074776928232102541224407660898630560502765367307688704624410976704980657291943605784980461112882978019466396776030938659419703237039470455176636045587597739202438317584364418698976249940395088263242066623438835778643645156399126626924015772991569034129251076568817959236096244088824560415228008436833473750382480069946160444312531799011044147639142927925434052402745886215392986211838249059124398526463871105448700959674884373234757803655247245657505020592020175399406333694316270387675122151642401893488062570682572158281823268628145226728318563487891756923608995175289369412592414573089281825297133576886847197679727534311559410494045287209911330736171699561462042727759890934096237466615590855501193360351303219226965946117912446224225622807873990500657436861216907829923544326874460961321040751104405876734822442183179494234772180307022732575389758194183520044181061754048656354009705616028660098848888408387165756405829747914721020943532261672096171853124085277011455504533579490861091053068049578017173414568751663660243006834834738238202393966628885429811499902643388105713019945968726277169170610027509575501906578775135984829100404979265623858993285348689305132023290416105491394471407472755505201460689597950328300779588297548673800178348882017744050398344351944287049897448389869665447253411165423473923409571210448525273711774922834256623377137520154961772426395355610103317608171544081385387847637898390665345288447940160598331895555461569228334730052537925425647756112693071743319963864233952480790571980278125282802593375315121847839449926857410256916818352876570876067699415986353001810042121902198366742912620911999597690234519808739258970483577764230575603580912899946219650652016247371024034353938560925196953895975528994409252219985724436548149051602459377983611983773987951498409200541469666186627856943830807780885826593692738063738126313003085859649787411481658962639233654910453312062471999268843048538746562528985068028315839568345345548092506130669248905827212076642805846219686211055453385057413727767481586666117063325292389035338908779283433605725266504727292501493795465516986488566028247918987355780128242763330333785170901609327397106167998487918984203153923947270195411753993704602551668712078711866719407284419176738862203537334301646287131256919999122269797269061039669754267196342373312181156462122326594354499060791271489570186002367157774251526510274193101368191712838358227697740946188973413392224969532590999886044439028629070131411600862426056119472257793454496297067008415340618335782652156352362122727396069936324918163019656935509981534558461538514557859068519927097220591435810979325783583765074366888470631418665206429636757687059067520608571261862506590211255091552524306554981768669847641093695005259341129916229712994039891862269654231374851945817608011170702362520527597809296803354979901802499600763514250741439965497096359629628525468319629497289397227206913204138813784461629599760415960105558662181201578516299298493145313302783464634197338135504961186641013623029517671021672146524943018142549201778827222637988467542226717770888473446387961806389588677998771303198893376291040721547177599141165469120154426190126067992425241523462812172118068083306879107753611033437202480409385796467282380417874948906669637703900195233615962551205897908854422489645767389825089776949054365765787097308221721470787351124053519781301885233714863103915853246473582729682719370473401180885916238611364458495632462308992241242832376080528037268357167870606914257792579788194990467134306637473001164965322811788108823877612482378430785802258222390064809757633137474430048322318008905995414129671739606262935379109880585615351299747641758404309009739201878597211978703329948941016101017887304163512744483215610655873243132405404363967994926573167579276476204666559520288556529408423714036622664462366669354396109679038346886243511153554643452090483303537652254410117744427946428422758706019092206150298516230985888519649322210239771560114607501121040402033267361989653374171820568171319017159122353680940710934400254723654334986072379845941458574380173723103750875129940939578293731536699247753919628244089056506834516149842740297580831250749711773371889169292694774500600020468103529704739454408592681176742132378738190775529336893931331514336925085924115269000588345893101600907981235436099549207112283024408576524783870160921972936378227931130230035386460822109684003236858494123437143068301047806665340669281076782217775862522388914558217005511961707606284961331979902252676878919576840527492894471353213464328752571312415531924270853940951641969254284689188893425154626967428052559190094059221789333856536120692466927277452562481896158256715164828474851062683253369819647589390841620294984781116259466666619923255506249466167108389162103333238029426727553716097769187422319560803764255026703552667153149922241571844985269366082917302680904357472475715000034181888030456316615780652201445910644563204050339893673275577305037408274767834310465770091589130685797696134811224902245629010579493361184535146111762679187262723071712569080830635170373082679107594389481418519782630948582477542719943057025173931135450630446144220793574250149360629368938165417153480618584276927799181314992231313755391874928638118242789356155456035597061555956205394580154421545380115249084745800302863908602949060028135619636455573878361752023997598818591572349188380415738128287091271689052392372190117376091135211137738866148866449196052783784553888019697979654111971052591044494239827003128952971609470936150355638614963885486531939114752469542500816463980425109852786456563219816526536806578809465883163113607625591862098439644150472176723616258028104608259649016812321008202185060256412141911656930009467868130804400137589497693927615944515992296587199767692892008076622828643223165520371695405884623648282638241728322441886050509070728518375264091633524593149712768355345473173813431796302768488888908469282190300896739775765648291877669083753228749592155967996308578693420970339803970909796616333349838831589595647406412610465776092035079444584300775296470459510402623974079111703645199404700864032625789191799193470611846260004453894068205075616329188864736589149783684326357162808241589915620756948870095474652709086835905460313075045809211691646423960210436066038276872969604333376872930125841015892465858114582361461282386611332286635169969811503338276544973524360668392608167334964680207062171239123484669969397317486624098882457337443244328752630155730185288848726738653353151593469808384385972862496564723766340337986445868575365856012030854928103496290410447962745841930524303954497943501253015117754935415935673758289414008020665490472218652293932802960783687424555655028696879291933668581431568623893712686579725742299727291446545879040233168166975149645416168673549670607260939424659105823831533405479624401937506861214198149610884999967952582222481755310560462977018162514504243038142601190493875367076666895954846641955527153044707376792709064350716503495360210764387234635989339015745990480159442709062800544318270732296109253874289090783381094622025792987408621005417798969264948511237806994300080708407608398505000152177512042089383886342522241483477367610926352653134921143016155903192275967264300953600496673508758377879179033582794965723423788147803411049908969225894032852690454839269070776772001052699254206583337633658765298158719084100024429362411301823845130655150659810057660571796769380503544165741186787848717840278528478801674473657968378277738417293108671153353397614971347671902407872971564109854081895412681385673665811009709986383058443083084695875781804297945511287873524879342568435015190390503439856854776259064182865067517711350457314836258581132668667236542286231788495436505531912594431923943956969783808126653195704867243150985452061224909409960599094273227368610319187397105788690689977273003382910217781305416898184306699821164858636792430284646567465510644431575064238076018231265201547112797169520985877786772512697598031893564394037616838073665032316190232123912274881327891224066751422077326929533396643194023976560451397637910839222059819699193687018234458854904721226204801314479390338832727784232090557568732250552402756076172207104475845348101675631545764077087991901832331347343567382274097914778886450700288498276086438294751189748442209414018169060121018915844153670867086800408638689912407013669734544390776758834322567130126710078986426034554333207292205379408573414048955584020475776112848092544263595823235396678920566934073535264311115560559014113348193622151950758332205407774220270405393947888621749026263654805269060870591938341057681270825533905826649215809495578062488424391437711312340546367065523812386374892051030606883100291156903225505144373984767604586512699995909038260097771095379146118406433600010572143530777129125058149724847322414879900060493562097174027898262592199757409650585107957393384410583138723197373014273159581387002741801869264699709704026675787043494796562007191140167472910033199015539735858352515591256942109227517833242211888795314786021601322820260338366124756584904273394478861591935234571590196538285433098128092191912173373402018961552354318974176648515080588120049258587336784544039980481703008398753975420899718063535286524197309334502353556386108655508422723820204647780355862480122623784355601490885284168508352417086680144670411509159524280526360811673489531351275605869604153064893564313504636279757603072986042347890180241072609597205348427263738196959254482467984270267589351871114146016292155487458108321646630578710857889149095090540781796960779657963013112147444248150985504897653669745200088546599538178755822939315352992541876985104378201912949130276966265794896457380292602343239227326742541612723302865862159703944488987583733307280768020492946626343769152631251225536406773768401849452124218443310492295614462720456387113334025885952475812899627085423206550651188856381409269286933617174027345059494113993876248969753339308050600918181962412605286692382661207488793922737627192347476295339397963925805903139887160921688603585665289513046434964977357345832832150518086503735135275779247646030626819121980441544682724796603691807706071653715608338117292986634777228023592388007015911167528935433900113884517320632448988800935550554743458224700881870707523723685963836571219254358898739590183247460922960380801078094962999363151122305985413254606186881154955187655182595354577665567575205967356740383797357411811356031623442982043745879233254754159414801003582993565142580458153854506734624168600874196701199212168985553737530176511465236868100180294613245000781630747498066248148893845547716504012593837239351062700895715375216222521903281868346473925304159373813071426090928087152857159030256686303336192032492099887137429623489089069652250736287743192554401365336515510327254771476483715094808381706483050755928440806399763131739028759805941688248872513722229763007701305180554665295945615518135044154847292290470273958823558559229286495923206536334216757557774134627764019122238047496658331687354753314760015027775632366277197206828458698371095217030281968023743155263368610551988841867922408571225097866491867894245174322639091220841880400694629199046100567547098289512440384640446852856907683992939106390608496757500262009010841633862342688434793851662091688341803099415957274577402347673047653042020999425335556901988671927547560202500762812681162109739764593388561246336588715893235644283807642160127986666237448538179275970066745945476491002712488834229829339263039141824969691470661363399958697515843612697561172686995335421391506936250753991936791490674446954601530116836307270171429832549390489648548673894087195652071752633207125379713680802286991501496953854266374034478216123513786907803578370971922482175675675530576950090403468412048052577208236269860324226960228486325648214280153485730378830620805790094255708511558091951898515946517335627054997519019817314196259642581284353264208415476941046629415585983640126105037133508048333210287496627496265534673034132542767372510980893122803616381928221831026255433619524698432796203165411317977408928383125049542370775736518794002179146479501676396773676196535662453038435464927850962928705859155214061850024439580438666020903259678257768836342905754826008072998856379608115428543561953510617389424772671758087041242258863930036196001911553781434219143533098490056861997744025689153869125696131604373398469634770663369000661180149500945182993778102286479377321676795630026021078137828560621810232152561567076920767585444169413830106845608345569783250487312681175733855259118819347300601984886976632345518538146478108656520230424669067334920678853788649349506878231096400931414155789986636052902588592201328930342805459951414597706484886781920846923370147709132862296126780803633001620838296006343784421243048118034553176626473228301325341231820890438606895399095298969718908215591330625345818737880115960682065570953818769737457432010185352650676583034164154089699496931152819988980852190932148141056435635997429206162862533185950304114178441968595451189670970722658211848679175430319151923861036678111175485567104967254068536002989364639125292470919686239947874052351639160902065715805253542348467990970863079474426775738030587256998062023477984103670025265539898290997073533603432241751519283583210281218250568311970857548432923107346804493217200497273019702770138191943996102004737809797249298508707120043164322037990839991969963657135426056060373278137306814156463077650490756078845936922492540090952357615844424379138166659067628309940624035853771381358024143599142940041783384756982003014860832066133506820179041082449318734569303606850035891694658018249248484186331657986176393653615400982861368991164270805743952888297078618627638125531844318328937650582393781411667987341651207526604835150362466379020207124538342245473674732431343741838305460764060017252682333312135094213457470008425094180356932098485944460869895398038456206889795283365137598726483912197987943818044229354632927503656004042603808936537190848260698632506706312825042620717633782581304322879312352324829510359102235014550114741605571583671891871071233447165031763794688616081386032935148267751638488563326568607145961981834173136808686024938927267800310874538339939467541562286436742098895848808116781249623312823203388548195757060964461099757721161656366334697742998911102922898699357154970253415325067496652955947107944382928071833358114511288489655081611840664307057835267487143718872765041562504473332264822836380057355976973724745821842326156943284338291204966402016954631892894867717459000553876950259615512023901304200649604107842173431765326293218018965488632016809646704715355568520358914797832583583647606755769485692046043774108108288669187166875930943039157215266302295280893686748524771717878930993999452244052033142696783222591770279846161606671700207451734922410916827753937574489387378934533384532886449764904111161641268641631835398092899706790537035829849694281139774925246334740201622806563613310232368401077231297178962601134448024419110932214327703703023391151402913977617276097641831803653717381774194228409965698184172647153416067714816176946439141760084010032719160047089640929658807316498946704240814089075434071556392185357129744604033386587877073409457945745874491899861671193103900896670187023084050304008054713028639649968516713096562449510048201388721585136268673760674672509863430187694016826458665335636271206954926576664825429839026588595361568852377443713922884470479569884849700605648674926550514084222067389198403156156415259028385349286999807929161719318143345362882779793585344711609598272685910413854821109844261147678060992386825337676438294939194310684092850717235877042700479354894260290188219118687287645740338545917288610765843514608707732963570266157883002068720659708426790952627415765295773894615524932538384395998226292324966744922690977019896396456533185224463118497948415425203642100583075523312001622931795568070004114370950546757123198849522183393587257225548354837235409666803355788398632840661064587428796155675181960008607011914671077918317000006772838534414060862759298874449835060297600872376641390288000033643165943724937762404902403969039592940248206533842467962655879858852278860182106659704553695348591475828444672871134930727659893585813068469309107578957260042979684285790250163663885290894822002148848082521909585384889897884694894515286418373579552249450577533240885082016207248936482989287099958467701404046580006098355068891839636332151051264875552338566623238981676365816390482791330839858167005973579997391214804783877436218042279147127789484515496992342847496859840320070681961784354972615773554234471038912826912705272455626110674120674144356206268865162509212367475427237983407842334392719465187631631217127559640850679120658601758869656080281159109056866073235923242283343237553716718522486547018782585407897182843849836627344023317125844784428820465785442765006025443629086695523896207297733066219841379026090595578032908457212613005161587816988632278456492924141495983835051881995833018602404400478855326532239129960067423458597639581194476298156263927398056272389304636134692779085376820655536559403417040162837113590975118437740262894850612496328128205996439807743257279256127035734795442516340980220956647149659491170091786458053625899815333118627553906634768304387129382265718894972746085945477393196404504227873369144031932518710931772556846795406673995032649130806723190794878713103707599779555101868333641195467580100592061297671457101874746048432790202533564272750272174805518016935880571561687862827471490503746890581645627135589021141900940393837567149853322314296057348018721976166524160051735051498541245818151259669536504970431394923916900764788182416020938000629399205620418619651193439058282342665103208263415879621090048932109337511930345144277152404537278656826789540546933474755854505767804333390880767012286160745817683349430808222297493678172559769049271441953717634730501697347566778499726723214929687961339384430773407042809473997157622143331490838829193709187751310279933124806410811938226668015977211983973228828383043488951136513704346731226143088092222882738108868117392857872062237163159848588980297570488664946924070577721963701173016971135565572618817986210205431979594181443345908605183432233508612368016143618121416327487617677268570507211727824046749929663204081196265993104175451838358075308732693985502003069545399922215009428749759887413471320096621909762659816100990904716292855631619174153151737810597224185068655313441743499593170440753413397347422430089401586753327539163436079427931342847799129750695178579714804272626998579196211098837376130221966805141736102001242926478305289247785377651754608022205469970881727321692095107862606936770890410970680401269302234570357210250588073828838447505031472051984991366544286413545839468319692067213499162995589068026614685063287921476339704789397275993528919043137538047974572651194377952592369246766543152276826994446304821646376936875003547482585669337717419189732066098433999762416120524895375946971063593487232637389667354999048399306801695179820247155309415886468884916720690671556395274952388707028038378537680832270860088442541468410804473755822675979833560275921384979461019603012046068858166830504018954856729172606775737251427405896222888157478982217251980873931607357135138948173522296458391000684845117675224614277602418989186944547119496082429989930536203293137557996059908245583677502313039848265565166566371335337991890816657666170266123594843276056843431753391305220081876119105836990133890631380513540900256047793783033394768021206053908624229873536058217846467377280760671756500204478083953107388892098273109474653576198889753146614274898256542313136763256162755371675405922592541281760355350854653999347283979567929681253178996424947004111021051349872846887744233080482313787614004077710039883119502696283768988471701059180347930560484924672332854390870409239041797619210022188686701506612839600811810113861098991638552092408276662779608402641028103574239119627880559406685454221592641770228400898439767317859844460304358945140673997848464697278633140646270541068450363519294025301293872481681390310772631467940391450745420482603538482340035007609982547368580367476867733365902338324303431911297452208006933203106886857593849387552715072948265417129374845268873546192706388337143781653845875197716642446902402996330823390091616569156882486462098723510244422164160949641924689998550508476075938272000057157716984376825201942334093910325541201328942400762389389610171399718623932418496504796243239884580179725423314013951426875814127669829552385905556402263758728352505976916674927117463188647951644506929823906287511201611491843754610712988054415009954927195064747378566761148307613378444461584384507370030813128643865698028903228567086941619331455310665086640892704243199299811208497959793860307269023719464534838448633967133984347252512536680345676095671593036271417679672546839970581638898241179169782211724569596129985213006733238435534665491964417770451773828682059045581307707115906376571733661117262965026402713530351295967833650630014658632956162662360854820279089781955611802557180831591229335235722951845928375748376203522536400956644930232879516362980681747117652261745251301917988833646036215466965412795044035223008326450135738897068111332814767631586571285969214308521293870026332419445987016678486016372416248507153648455833851543494461142219129787072773834019844893914983125668722086381233389353009029426125631396344094735399421631278326161857754948927597404390401321730849922622418347962505974892159676580827004425049580830228321655442101267632742734509866343430740295788220497582279474806902254791804251327328611830898795728279402369205333096364671385323827249204168444803556842979934067436698612383429559864456210081965347323441209075810948299669572017738659730949448987718565229347420526259042863146911886446386714170530134250718877350765916037052703080004827300633940247850941150993534026557800812491767845410522862433414226643733712997238439402967192045679894553342832426996508551307695331060781175633267667554195309019193894200920137082096060872627884048654366143837404458056114925975768635427302989450679723013556506264948026946588363547189773203174237314493134199400382911689106643937183643842376698421404957590951283413848044827308461640756422948216102295064166567370022569858905653750616684153628297458394354508559223889221347607807430535086957603226786844134677880752317695866545203988590079104607081092222905342630612111567886526101398066375761310772060549201700474032991820666410957724866523333560883600354129644212693014454653835109480553367144089448895641806167445712091123550345892777898482667739439086911568416563194005966089593580836152706176114864602905994795707807035829495209310864044359568038353489156018107046764130516109474522713925654901266555559963424343734701505656261651190524221966803558719769187901764356726866787087847443480803327029577912921434711780265571572113096144192319792408573663711568343364959062381543550935845680066135031928746082269187294967488749288256397717218672851740336032205004629402751388265323315323062077418791854272921198776376992471108454439954412231126631498063731618370237877947282093267272532711681209056706811731559248434665182095670616830255106151614597404061354141281752600637758790194695601491381080084036529558451587958453961086722220024585253574289504788333828583320584378469521527786144680134519450304860116833882753786766631083445314012711504798518092516914518274270858976133895299794076155721899739995609352975228442907029133736586183061348391116380265583345154067659107707862734404426930981082172237368711226868864852614821711360215025774197137532647687558492532062973778988387517700009612354310276099106317054752912708222496380375727911688176776771800047352173113149470567364161869309153330213956248414457250592001008303112974982950001780731042599535936214275706549558300007090880984730885574050473181369704771595380494613754623533982225637301114875571676981956925328078916963362210807264590534579326791753078866534147941234399481319529784640143231900448217543813329549460656631757049647679167900338417983722960551881414914960549660093051442648252062074817430810924862442249047237783903233872687665111593401851582916540734863665444716959610146995241213787119671868893357052433069951762860254744412096701391480296731512893376666894210119835111777572334162007953128579640461704959740514641181937621891314410553786472651567731798153651270928266416204039201350807903303386448049550302769035134016173556543990152755390745334587610882246251792655718743744026557642008920312105793745829100169630571434107092020083707227855066328247321820383817168859284912652975538264513261715917050851623945922280395451191319650555889594732243880206312046260194381422178332181008467564008291155650615427970290571908204910415418525338931169386425124182059826329303992379521457327751741934405686474735481642144977171135787764739572669131996596701938185300923047923308560378873245361452654805781487207108286318074458119475902014183747331395474667506153821708240110011188968290664321596989060489594683074025302137655933926485215775349291158069548043946479676442770935684888538007809589505469785821662690108556028590271627227217496422834518349274976966954098742869712261620679714511114690005170477888698706610156259315930656931547256631622652989733658968061878637068028205484248061384967566106729312069840699446185934560990402530984972499729296033191825740830597305102933438193962552033721033354803537861104274192004888896387885454519486595354897608554004052125553685602914183213476824130123942735939307190522866957802884118173682741792101828281639144077782869491895895989361922177785420258179046208152775303825575451255986581413825277190255478420692238687433212746005914823681868744349639396296089265496446925601583110576479696166690797921134113271208620778082039460763348264222589316713455316668247134559111883082800663245891649489365127764949455626761188469394644490281747830402305126720749717500188943368483587021147529710807218657184019186986543980959856864579718269930282262577204924952053463540225988458518491260817770365865724353050955500756760764311148102096389586475893730938570672867348319651356471314295086004982742164497733839661632459776109723176531718375196135083361886141296714690534603235341608030144313633555622464113478491969425014555886061611013836178014630958031281347874324127675384300383575733711639766560676520292990749170496691069471463260817009875793872581100832183631480495442958936124766789401827134571776711817563203446867190277529831691839228592551479422889051476788223512647662687850803148559804626494605788354996498664371341220220980808472780565002679787032785264217696178886445269464873201940953429865138274172700881748156264603687286916741521903892130336883539775782278945141249170329873228696316764839013232356221629818425937531941734776037646670785733483279430763574875819242884287152575242884093454259896864670492807199104844507797962984692036533274958334644578306438671669800618554681779562114324188197818947989818449432593185580357575769768646655932888645647254339883787892478758918220260025247618375283738978472341094373837913711478301889509414778408119037759895552872448276834225672966480847856516222233623728710131703530286440539583515796269012396318551762465593512379776317731899598034436474222886163621335626551081339961672553022145535955694500352075973637901177648532359269870137607348186483644870133883702146621096683752303673000731707233458661120362592344364523281067409054545694606742564990427911588223953388977654901916435605581793046801041741801406015252980517715877619651010406354980732278196747029673043708814161850844738023400967506087908395653346516757887219137767448775765070653873347915404511428406175952433966005440070987565890470582848780429687708015586172544914633457206007253397900593578381152913138112941665826169745528061699991238422311117972721924161749485547677140035378113002289274177454075587195525677701181675950218118019947621740589233012021786681892554894111055599098556528301329208721531883908360427374819354684549070734153950110528704240558234507595335270341418445544001290098863165496160708967089668854079825152252997327110434691529530880562026253961759814492465620759549554174975509903678330035692932453993989253837294650823015909493089790821145519917865956692546982762273423620380106790485203164678865647690163301802660769427752406118778112044313954631139569640099190831770920793034890934005079315244871126944888538344519754964126721986744518762714754591756661647519953626778593545183484453805107806304972898859984041848728238239486200203601297438768348781588841515453592885726222411458226968387920722230669677539851339625400225321352214374554338190982902929057987163967607634502729059493350809464238593868636077653880511895411399218639445727935170065709922827655257800253874689580113077287888328961236050179478504059639027167692321006854249990594986444147004211992841373151492712835799204225381149781906927690717735510864090565930604095263896935717600341738592075178624011175974585781179397295883513923162001449702474603827502673250090427037721388219531391366718259373147360549716747569709463185641438470326073115466147605116403519020768244973952466183021883127233564122514304074501573435993850830026195039177792584126468054612302610736606031423355001562507255396102449184454230135312513233779323011247821535432927101528001782787202673531661263393337853460992449148932234598782430097211690281018121873858221609587731628624003752714726145456870781362692874288224318013400044544088792344739999856459022259718106062615671566772458943026551586357099788426873673948974796357809858186285454735518406385584506272554475192196311629274120558936573520273372090577923347350686666535631149609855390532167075052805800739046114369161294514485666098609359479239310860876660186768312442737989618471652685271615064814439926879915490837912950555882497506244226879653753252894450711809101758680041380795607111425933869121932234418287208219466014033885499012214617488497450283188149617134155946495277880175084268266179675196513131885290297302934673326181636007163577282691210566624476633501526165200745869567154375391833991104964966056715880694348982506007646945486413218167953960826677985823055327151511721290878950596167185344265744863073301517086728438124395497294557699903386819849339791038267337273063815733068862209494119608794863913607275994702600717751074132119586595578814159805813944605720782399302099841466751787526535953877987853182915484886455451295620778017963819721559636736359681960237402825926973307194607741931154649948332049836076226946626933714712811040032074201992218933272472131618723983105222348653921543699731490729721736487298502712759689914465080026123846119646508816110513423714857811106190719004324612656590358411955077441994826807511694353485128488322733668937989131719258631258956842051940933669105110924690568199822132050897993863294028462494602806780491020172855463793111407013701387262614420495806511450781691700119215328989011416477807625301710912360002502355449771594660190626578873559657101849511315644456289224476975235402718036129162414365722691622139620997896546269845675935882366601153154997700961580844913768493693653832134928332584885330400200724805717050160361216811358417874524564361679041357875687907238029142597888900602536137742697448090581900806861347173639534049916711109551618558860452085400216372781606062925278397874169487279752681085823965411846266936708288422401908655744222606481474180348511710903708340139018024432876795347819650726818471123481649322260908292790755881883946303328877886691315146779782576457528256084756318812436739763821097458767841848379969028343420223421789041405275198419498753951585850562822318914207933329523338557525977527629675252485768795561896345797599699933646250870021857705463427728485047803050431383086224092215105761140863212878657475786839087750866542608235296374052763385053339762317905693848515949056379229089721073625312091038033549035201197947985658422727905214851485334372812534912624202224646011073576072131074657258389079447297998686856446335883874213687857225396813400601893046665669787210203439135712647652950692260094910423458362672655229990971918061793658542610319517560184393703064007808172010220984917097194251673828671516283815715098537457750953046315078933934346245904738919774600039045808508892297832170854772572406572297607891583812935155898559908398492264552084730028942079040937175696073045316043554447894291289181829659103602334538376049553963580861514717836902609988063196398304737170889254587072099255979697858404424669742141308134600545381740034206712172353433141724764722677825143962499871463468486932410279279729407043802891993686660427119793968357672145610796654547340409777751573075287724080061657974501329166372396711509751666619331955864181107493072281560395233880952758487475316219554144604583195977536376148417755178649630634319638635667257870726739266092208810380621096222281551898478267630360660200263124635786087187551449225042669487780115242962692501622843261801903733610859360984012665420608021323447241702236778121132830758126625767429800639694910218238347559771680275960369655485271963145222110621033321909153876466349364998835967614941212712780002978232928631251290732677380095718707242292654586961166617793658966049418668091893667038444932117414656699090086024203352381580043735193898637529693723888047145107679031881469562702285086314003876079491966717357401067845209072686662667339597798259677800152231577798450125314119929917333128056941924353211501531843240789883834574200265613901312935379391760619148012293278908001477599367348948600131539911447665328028693191604424079738057688086707848654507933762996211712366345735000215309484146137184861506435182437678099663582617238710418593938649489021194890921068898477840540640406616059784385295419517899994674790804798180351819697885230214619221007086648172999180714569359112974578904586474574037896039390581623225558440265010002517076567082961679671594017466775662552603246709096949665263997811863850927943145584843653127107754630510094765071516925529637330273093851397119230845678875563359601709586327639293776013967143473787933463578323538844732389503281501359540393009417439776056463729052981568117821624059533311349020948433248565079057511147744283150531069983213809179325776470552507967885476792973913606775743964732981992290650370848543446334551231732906389986210987473228158056652463198887162299215592551119774279192189724931561025836802429074481601507464165075997134872189886792342977975130046583289455952554739641516814667646184295365739854657635711484905173011235720457898387483602496706597146158604507139238909171547482626262294805999095853243622787367430084716358209537277906296384899151379588715733185258562172372248982000871398311115748219007323965741867315761478180045939198937504585642368331872660856627050907908644375526752829008178041892250124161648473201569078664478179792271413124420486814417351608067735377715132572990083562332982098249880740831805100169547573525668083003594881362323999350908305102200907920782272905809818860760039166244859827427533812455845208326875200451704341794265186842299494067854035678494709262598208667321997802489923204682496846070634588313749860382453697116484251024570094807825258970297574256862305202958495785714782068242955487809704033820904117849709567828371792987566419223491111026725558337942808446774859904468756840348858158116114020260968152688323432477828879900043262303997113126230968960154242624929346801377453812308714379079509722038649863345047147736767630851380139218778742460810510408217745024588397374985050665462259441363408995230760079787705604056679886798693537154617719458601103673257189595675191824306167176377970491391702912407512571765733171898542151958780428644205478527534270365007293944471774756294021569418732984585490942127190551566535940282225439238563035236055588541269288459757179244000219673602720905876374059366994805630987062399900307455376501654942647862203390305848467273653005613282221993426706223472466061141353880622594991017434647481841838658607981263728446758111692462381651003047419248923525418499863810641027351101933695243840231588571825303511528197704550654230287598470527345991154279898306548226360642715331580887496902389888068989859488671657251408436432674716668132892342370336522157836625434807009046559481901897211359648821641987658181489768183350097999335683823438750672520444237143103295010399689484899342738340817844650353627150896984016556555694339527053692456366615978141744041166433629164843011880761035718347567025847425685614895920376683119136421066927509194173267671519510299516069822677541514049652659005208742878201018797842584016669781190473417978720551575300219649289269297141235607986831770991250886025859075161154776435077431446895291846527414261408656329845915560193590606677080013768504889203376865492739854173453157552684899943870705546007432220032554305166896169474285728601299976719261718043952853027683929106450711385460499649358750944682819782070980957102659903328301029206154435726110869193458123197019297815748668209359109834853339169146789048909602828203632062650322855437480490587387653085315868015248004398384768548681197166197622306882696833212775768674960237797687543211792458639252056925332483172809599690793243051537128098843260057721896251973848982230449696234870056251262566326953402300968711168339368378418787535782270770810078607121724680185475018503694594064537402390928134857051544295648153918313898603216419687967701011242550143752319143252839396722552495233434298878355949284408566560363806931713025871103065381137631591746845459371337802820591857255796369690985804607299834818689295210605713646357214309543661092180025328999476324186861787811480540591592773615677622770593977510546254535459897071208781481951720189560267816893551105389462990032065310309439547276862320824167744491984899209073861723208603066647931853830784353082084272633494907514884945938280561772791689988289027975366884875952350797339188206580219793401473104498078708586654060343297607323647625206408589919198535997695339860978212663065104398286868104045575600890927654387182539177794100822648217902934847854735441927510171451232401723596645372829819457132979738175595536020235177518159965468856703085835460589963614061067770077837021016787361662140341935627113759472537913527440925174634374215871696992397004414022574987037048288883840909974000431539314678685980714921209191343995154843398609795166183333393365707800164868896192227279800133704396935805231541688587455087722730334926020272299260324777686818484435170045170461885747891232327137876161214065978601249502882865419071572896030281499140251262342899185066756309381047220955394046156059462454584571921270305358606596473746696197813638106523676398219886212340477559966046441339679707593277036901450042869036081562199016449698113575073685731449130440993592720636324161356929481617498724284783305926978280624303387012948926496172108367970600862014121816179545791627953512705818627190164339041118441874633997090535156382751172979323897635510198862167682528925452585200101587153595128244365768779287965974409255150964118799242356984462046192418802010563947371558746095293634887970846691015025885427323375175164420042719589120323510340083405902687850728849509991792748411792151378527917003503706231145208781273854593669423568310478564138095145907416653592165390590608181269126489082326820019744166461037432163859513313893580526920053155675700115840724280834262868657797486247897596926415805207972284908562544924629733345656570487095161346074582182633633468731249662384802998459681537486195766078016716984471477629850915057011448608722064565262453156160794947845903196152575134123491109535545793827419144847590728849753765950075298030195489232939047011158801550835131004351127942580595475726615313244156615852029950768893765218714218141058207842241614460971426135211782496453720319170254439376688753989566443530398602887061797326932361048703287530723774028733575803144131161514516919100063613393148299166799780081570497776199833368713716841322958702074270850144037861846341182688021165292533650988846268339882742997103691408954197012092991668840834291313395493682937828333344908681067239874713471551989605455146657949728575638065347887208113840709842038134552073086232443603624089176544090775203271228707480926841900895102906571315478885503422135153986347087653917598743102729189525561215837622004647499879402164904483897377842975743142932198412331786191447349890645034292154319372578817639243973709146003885075549827422995568451014954282919595811348922001082372831107174157538449651474846765976706894141145720742374239734614251765931538056877699708106466527185803774238431100257571998634209350953615438216101274602423224009737416928613495894304685580993559547111784138519041320712763688114345122563859407200656124917750498533292801871556819239670199593433384682229837392300974978119719931769579396684974545822065290062617546896978521529000132300543733385968203009738281002817354876701255309431546886604557161560881378957082573037815485346985541135641908622620321641693225235035880090304743976069393897097420015934327186808019656963928539757126413719711915763456856102659237904549091143286300887754988072131674916484882429652647418327197346399503339270740177320688271122114690002246305776325164092379857105953532567262479389828584013165290396767778984922953202032925370870589392188097462815513997616919739794453890163963958982299794370589586512187077368589520053166891635820860201374291425742308048761341505399324930758121694367896234899863925657351596396200952005462605174194934546326558667990155198428491169172154488762294226034975801904839520290927641278545536171721635951495568556956902682790717608499299463281075047077930894886714863271139714893071280164044067221468393248813875069914187734148239664353120557191695711671832423299685292734699246490056594672007163170851811652561731595970124945195034395744540288843047472298624224096871792645826580054633200990573897839656758295038177742645369689949112143593659791377048727259925608396980010870795413444290318501403473939737047026207815754841111543153988757913260404427360535770582106063755318489311479957026651757263747914183801360688163795916152574357934893999833862433180986018746336300524090061607349894035616917733370211613493107415275835045338506106021947838146532655810255756420663393469346559856489777598793322517013424381420717213572153446821972393287760004983324999546335455755582938062629242234940925405715252845941298478545549050306469207677776467102757407412943397519287407534391784156382974106452891462011803743521402777280596751695830998224754314147445500181166998409136103998414230614144272543689496361857337283684876377900364133835806813877808262071660127547202531295633035100307318334502024745498343537295581873924344712908999810697914285827040261059013544699084369183614513183432604126775612914689891809977489379786879716346793234681972646308100622241715900787184646119099771888491743482416551920445908242277464395582717980636808398492325657160217252246254447769504598900683483085041549175200096947834361600277836557034322630761092690502763876437419153053898417610859489064270967670668539611981308338739471259685092725394215102483622152045108400521499806437825812296292298450739910632893601768393632330230591638465974736579509350736081927469213431243064483987676136742507447939399052371368453427548013261693343999701334083545751408226292204458776275543013757707169478921161400184558995217259042305965041329012879950923940151739586145550112226315983644380160127124333686609626610909177840752684500697726215285032220678180568381191847413426418753004361941154529807742559140171959647881075259869588587647852125408447938564394960147140185916591699830732381241712985163458472716864260781875612346175091667571909297077377560991407097012755504252662872564114545011967046383658448127707295473813137371021021551650955818760741662504951737642309221693515719412178120272385769446907948404587097322684202879434075533106398913220498323611838322858141657867761675170003601562471508832076395757894569256079775866555012106140568097287365808143110965910957295825504201217126882360647267538885864702719961489942567711145762947288007580707486030733798256345249604738271127810324693087699504325266657414217755013152656330410512121937908722622154610244545856621050839529718490996660510147096787606071534564721039110988592546171266470443366325096775574633009231875282559313142228828955488190232506294316748537826222449093176360238471117326591794745513988687654785607902537729333758185836225920850939616299946991650972078305110279822914326020963905983826544799980073957394284932409103585687801775624968068782856865332396331315200312401368686079892418769091070054028966750686854644363774432568334996034204112789279617082532183398763680134639136335410979484929242246166540191390279280462688307846373712095025709149631669747005371819553227592199605302596403998240222860078898915986436990694806497093693640095414051679735435240933258336580830699190199648980327215346812631149799082101841491154492881961231109090098687897939479165375296462073309416247489162077645657794865995480957363115886263457035464789805098318784445175271950442640835568205518237351704135138093436628482362264862991098151771114075114254969553016141008296189575161094179174807277932215830208656205192872728752418947562830897711958443792546803821953940661515579428543769837157748677787136091570151704308884367797424749129946430945534523351200843210185494959871138311366880060904130296691876789171166133909676112602606040269905857623022818264584774650212832508046009135764589495476354113112886367761179662750395968132558217870168221556811820989179148545682470237224207053985110560445315804438907283796141782714927165001279364648978661871311565106660876102900594247089400242836906966208379048694319047027150300429307005985425072248384132397905158346653966958148184899936868268776159698991565919817231829434917833575486179217561983286490291740239852111295315324773454880312443779838548893434760415902474968208527089632679263744534009769282570589929312938574945963864430995070748858820851148567047002999917664187290969112067000559274211479318645098572186904670352400453230586963799926964811451378540702478397546803314503556405955089653892993324205805062414229111928340853513023601064699955280618788922698992406357364365552277986626410384149168743833206151633207370763475383963087432239794668269389345690618735644865930896680847552665926122599289321266802064179870109826348337228278569290323259819659870776608606848795609334465732918660518068249984330634740167675405247163878079159287025747805809768418181891002778227346171807567454367172595327418838860393770314558140554800755627566098049856861281028173623007521653638062709088245783897713143054041105951590622197457130422768221469958721938972131922339590005123236261410436451570786414963708939175017572328256118356891172449268841133176845357735092670250637940632253466844659134459975075468996436229910942599977690250596700802408440504099092919180062034515375662629255983383231504830883011591751068166158108940189740849114027206625383598060776238227037920583536126885996435865643587140662323223462559217726203499468072107870680930225621684970785286967796093796674240564644566255279289916638612953804059207960203999635588824596794737568744305985326160507991145161164643766209599516899783522918514296772686210983003581844434336446127902619722353636423480088626424675601812576010744743731667247552799801157432445667891653751917181136279779895182096007950354432111488273329104446484503687271248031603254450848169153815165693714265777223004110882504869251394480757983008713227328570067768242643817888482076024478813506221561415047486958883185055929860101181998827322980798401813907664730696846475165569443213112318606308784716008269103264722797928776900048352702004924914343497063527123670291436786398480113103764911284135604483496162493661359745817356164031094886201058870345316148197742008350200866621264062076017422678905878636514185021469281341343002347469509306727216587833169765280117332556553294700333986749152028075994291894989706185546792576212872524982622855368210666121307093888212237240556138542401846021076927782378739732278450605333244558099678371711869776386730247116451136054738609826591811075713972374448476316821266324800061184478455769849571581300089839818071663978116357991699879114929012373485170639236508917887969967434239265533741171302242931029616853386280457215167551598455455703259909249558866929481521602373466779976606612272908544494043510174068986348277048329287827642393476773517625615804828188409274407554724910883272122353904623935297615210492634763458986712152289770282269062544765257632862006646051471083835808303739428325802184845995513394663537964130497606130032277630925720432452877014153623879124434326740872077799529975893983127754277799962585765149253928889512271552358328005705419273292841242093065490613183794576597757279034811241833747752989099483653308027776324538482280496691708912044820656577844545394906116665377186143334818881668433646522763010108718147907028829462925580291737027441912897301674593216323178944376625433144961646816543997420979872924166715250855453563402377970861583100137271219367549612781777776843944283641622324598669571314258569231234074811437128484067276230001944776256050969823735413209123020686719003075521074728450504263589108309016998686214355129523516859878500994123629954773967541482067840977763608874677506614283433634433120765562326448375080867447471123862165491138799806529809937030210331994193966692593445160636261876475889047321623442583643469680204092817217260200375522994454152085281026141802313119412552665927407204711094052554761173864183383230547722788500031890901366924952206997479441447799117904900029917882564500365272188599061332764611451329467594970971095546339934098845307156942692152107573345291111182944034363171228972678909612708552327425701404771272492940085631486749623351801671183138430926891818491771022278949559579481948574698278240945401493872417684342655292763020890443085752205055181074631608900157413085793666845654096871581567316054899570649232202595998169009710493480090635647116612111594829127717977150245715590947623670261089724377310849231681249743848868113777834041587886473252418054356229973480222847386741599921245641138080349280644745120343955483054323981510359853823093535710557401720790556801313346166708845266809408318897227572841056466602288790732929233640564796595727032201816774396421438204134829411257860902100337537282528172491227555337095835497441294204802294033542617928973572339848949750942456779087244792112056704411328062358458117094174772911729077193953175113590228354949630267996690619453336529168987676565483105750325111448253480296074977801473487509085165983450348001462985824257413268309845430786297359072993002947775744513420861422626339933480007349269222309346668497401458691371779871039626160531375606395317959816697897330031128598067672805854045496254769798105101664923718611576729194214483194709973310372414351764655573013451987090828539132342172069207495021822733021976486792766107182160742215031667467494574842109652277791366170410310520307169611200979238258158673322860622100353171851863853740670419816772602627058769675094144930901416143964426556966078443321827297103028561434464858631892877899114047210806981243631137320531681018177989193021635521107267897156556653553226257391589742142464489627252517695487394074729511311295974862455002226392414210132630674881799663424323701575518982569661771106330534966660957320834394005481779351500410601705344756383006739622329728671807516895845532028443940255270267586505846734819680195226451500534966273319976439854452090664854880585473621107552152003793973344096993496160808301224766022228241810348238631078258648764855644749056225043277288327642464462224436356435068427074177589571730594314372421649780030228915784985295773450503858915097830910890304257900267997450058265625795253113362295769667664939374824902573394591799335261758044319683898288319496028376903978355011284186222910333656370312031569710823637785835540924550092502937114771914659655202698759265663658229660733776637410107797581889158513327702392595849525200391423134463321052779151996293950756310068220241813933917948337695771029823710337299738956557560362912164336245478697973028616306490876183597703156737227684757040115445738392793369549046520133065492141231376481537674695614460203346196942427715577672823825131807408037528133541854593719788246777568461982196935785725712983117297274867766595134152051618171200913426683602616880824164974926210551636236698955628424485062537325420813023912749996220885790639013222528392300076335458257782924753481598939784300705352310643263304555767022131579320756030076581881995865561781695632736047910796332720892215253875135656976672132014899419390696057385260954668730021813708918355982216025375251957933479453710203433202562055803848699076979072483975596386350077281188638453233652162547578983543471224857512007061376730925434651684478089920491734840911380397859566152483222346279115908104031389542649698321550112791037766327198363199285091030958576515825681000550792120474072098431122720937435770597867097489296878389438537214811039904969057537763450779633076121562856403509295766382065211603986221962072197239971296548731010534834593325795564497739328021111771192300496398780621336738406074223559262066279824973611354393652214481168831439244715066540614916322789255963199874372615857643853291932002577186713709002250399969843799061927107880512365554993406471835565832985644553582107335485900901516759029318620695273006599003543296094151515135338454601246059818957934155997546417716998474148643194447582120364827704443083229620635485044175834859891437658375055986790275432545205604038992244423266759982258056411566466382391801567827771491903996930914065415884400339739621031645982039049569231162857229605699516162274540846546421357801447497484913876989292751265600570212115742586121122552218621163250902879117923566754442139792031480499825744709574156386137786777544123882508092373794568633574838464405978856634745914245592480817123616042574767293913313606485340063864411053074307610050584669834979448304533501978741666531097096115128736367297044172951484292314386060156878549524032483694504707414322932769279567364239823512847313032272741530203007091732305976186741751175249752165063180901041067483190605004752738305189896621279489598342655147916595477629757250329683154091781778080179796947305804410855866351595376214774551180672018050032896214458198887657936473690183533001367728901982040874678171370597561241356452377045911609061611072924963965017986660134003144935136811226911927187097024366464319392277000912454678468341324922630709606285150865763608349885619526683863080233276707648924726259213825538271619110178483700339660010739116093322616608453524780633879780924145094220570838718750111655565326254555018180627596762122398127742036113312907636172195245076431593885915904520959600496578403192531878428697970831279755725444456118674779524434963316632641106540905296911798707777100891658052926963586131931250458192107428052279240128513600592035708117425694086152830699734558764910939807722945786441425906340335655691860232109919660386377783516060306200604466537026294074788498273471548850900705397390083865599298848262237770858276597373127615107142406104032739169286641804551539283749709247842663064053264439703037841905013981744806156015703674404766478118213316817686497966021206327006429303875057923960994244276770261523571574368641650396802917546704219460139413989744982154784255597414658438943876396153016278992268639378381311824663526911293952011335380925633426926291504771873442090579217629330754236475085722827686991609720253132771401470533638715335806404764930968001299667129447056254878741072020644087200125887469787702345869228108127119506102712632962539524661346299036665426590707185984180204729517442734932048457389118893933927921506678233287562378233042605679280953398331920806742175453339522361733949978245042670656713833607201850269451704644907467168693433834230661792537551172249284425678189298308674005537444438061793875832022641873150659204358724887359107078634870054400013928509699095911581892390521047631028754898794518481036456680866326766215667341962082685368440103220768067451289959021287251070743249643477635036200046594686077953019619853741603513219695726547059019989177402386884464039088927805647657114619833330547898410007945928105424327048829115595300927846315695794896554170735719410077494738333862380382861447178349279551231930591544193371262014670809019156599123125785386573538217725365097390401336049480170138756017008924212720245304293501972668209358440352713849779108819032626561127086065548535707048607472533720705088667313576648957776374112168421048361638912988842180963679897657909431584291211088678855490198216215961551818953276124646525302473124303153834097837138482047618209903098215085020434511739211522991521446228984398887795721874524953682939091777533128068792709662084806349863255361540024058586952247418977016054783543948422280597064187049298964338586585576392921582543133898816784531698387826274803263326912242643280246679201230260555165296795422912378778870957498823549370669023324471188458477716127029287464681846300223465067414796508984298528372662970395457024240896242921912510066705756648230772398299990035068850228416839361287317827318271719096626577169665261876208434405126211300676104185434829008892767089051786141741363977947760592707726775376013566439916463594712414500620375626692481184081570500199597770955621938757429655500483221950104310013871592804985293894997904316294615527288806223582876641560307040376265136721529814748686347243156433775252351979665094219184795394295823407735368555515234958386935597179141843341454935902189624267790846420247482133102429991485412204260263976656905508366735013347596475074163736809373014716319584257699694125100952964387547379287828115790369819507306811607330037476863432903856985186132551034994394411136255775245495986204533188948534453492902010314652006806737215921232819538385243834247233853862863365862236733217182128182483474322707484911696641913358006705049570897424582276729841080222647393768853462336759539911084751997647624406129460615544825183552252875823461284212391300685120277293114036088992503668451344258110128539551243269573204299822679586689154366037710492030541324383048693814475505165430020630057751543203648864129028104518391772000599429024967066800396622926421493972007936251975011190203145802252667468664742014898115737128292831864307500497864149416883603435561952330931075550768981040673449145406177198917665127545007229724803122205394399109656490735579533678714185145186556456488958762599789469109316607602960621129560427683721120713669433306054644992368950641102813633728657732466774369196850634384955169306634966394403100956396251647576516466669088746048318180299625649035284684453168710863574987010118199896061055097450365173954228828439137370558903890168207903818274814516736467120310003754963827952481056172807916812634215508083824869046503061244150759765681218739512981832705125033492024361463027046822756561129209325934458519695748206464841344216038964302526058057147322412615039183958861360429599916202112192442751240026981955213018746676470982030801026078661180483255939127967522156486759570142721852188102305562165479422831200050136156938641102030783811563044202908212246947412428293747247188929725618403825155419673784041194163599559174503524033889820496316215152605896001384950875011855949035305859721571636163660032679927130910984713134305479162237704607808912774749993220892859497780712239534365410000775032572431083018673304794067472773956335353089736496366232907606436572276212461237572173129775154016796305851801866779776090280170412467064340154914598090417037998349808860157986330512087103471225458592904566624749671015244354407613436547226839047810281129125304370936828683075787433027405496587617356245798405664514166498485495979631180022278763529154265603232575192372160892731804736339388436355619366824118036095218861855936764092186399393717666224290446008347805432465807641738702628957686094338509486225375305127939460746062271706703453759766755663776352608350424822938280149201571786912467579160057930220487427126491075076862220350042822222612246625218580359691923343677658691879279963353700053832321543075116817496086151934557299900681402651532993577992126059415987450759331350178014047355675911087045083064662273594711777367933870489174439832298350527050174510079753649410401611310407148106755359654442855718412796524091067995043346602114047601660494969207236900291242361101741336019909536520867662658830700308974100246262395473654327106808040488308147105752191711871425503198080122500248044967956160670343404393902857907107929647760576559111327562145234200926450999806204426029764012958960905191393574818147561264914958924271266554256721794276210131413807939399947457177049272555771091915964664352094828948382438329599136202503114632904077696028784759503693703724516170495714732570816881706969479481216378643872882970616805769260603433797163783528478827443853556945527566104083165827927752795945742845822016516114670621687845914491853627195545003316510923324245854280028743936948834656017992581029657404197978941916896496267595834901108775333505898878388579138427455996053062055033628307160171373922315799084472676597160893484590488684563948282260548740090441587250311325737180374498284116767999256218227946938663438971424236766525657020674144189558674091825933023561085939259812843173610785283626477328830582491059183094502282672645695178599279016573799044766711466828829225964405564009127985814073364185630656840630384390524486066488714539650901460121481707526209958030497740125444209844809036531351167757016421376375064373854893110029729036757876416109733267762407617420057450812744351460788575711460930254063623827886270136032822390533039179231595983596667724224760879939227322295784436591800506351989304610761645333327825519317456090366580626810858964452810726354268328087116944855605752394480704215133311747334349628424269946318474607459436127464627848978160670049884945291893495689093221763375577105402844482580699904234637818427273885323973689078233155849848935862371039873808223408836201437423834903777326265498085299435135245193285009372300130477903808610179973069095384676404570116929728066507529785284079365451579664869525348435385244940420818814136058686082329948584530875910012877679412212639758859123800945773795702921841488708666925908069999173383944133842333010028059542891103977443612616922272041301718606081573412643291185317245752995406827568223918549156000146469637081696329106293133269164776559644927880569435793874852608788150623831932142482575976158937588712834728437099723050569110029692068292902032865447014518584519752135645688505350660888686373310579890563851371979295848677187934479854837412457017916482412455686204263029207530183989396068333746865524963284955921568205642504599534420845654105729771730889782551495214659017811584249737483566612555049844814166797223256464882974645762641321321713377284836415025788680756703043125186339068082655668986148588655581260964715473630631970346324122318189535157345019463911212213979699089921536857991560588052403800539299332084892147873572051155912706113710083724328843757497924592171036691164206814474750319647075583607730029867236131439960011009942424505006984683808008130693484540391638847996637955012372308679153535672283473560036432058372952772027179313910124424862142217540211300797791619575231455793683314506773648167346512345389990077037524804863203695129480022231679637099617438192721866578057765543465695355998003465160246193768743528684797687171371592405496554038374676632563287001606391307955776884705097208399918107453657780387973995676833796427905844258178262544224210637693821620696792841282752635145756387792219510785955269250248353259426716204390278195648649427466772815065286944337763345346468903012063680294153649137625493642971485875932124751788747400912400564925469676456017743465058017161421329024029008272015991345403438288903295335304581712956179731282618255049500622408609740870550782442218778899223808246552044080495790476843570854241423637483970741734926702138993375728013560916429345362055457112658749346498206990843133079801838739402854411827010002557554939998443861646897798683058805540957666189937813783336455526664714060096244430789624785497184723797181096047254809069842792523205962345191228186957744214999066579639775409597365379273355694748509111384161166446493978577481802308708275111597257820712051012967710731833401740779565256551998356651537802301957439219908038628954220278638220894461943280397483117618574572546730417225943758487874724089599255939723677648931582220385623509253714331667712770932249689729746509565086798644026422932046712379413360516532302958800829718557284035080988920412814885864074772949333083554553354338681182959160468404062645807696952621022335734240097657789393167912658046455048227244378926501740930380778752393079733888524722648701893193939355494141322772405892115239272868592820565476528852757454528290503535248404144475150380955378463879589062798442917973409902098402690288260748372566675791387071659247091754826016837883307818466866777570584504736028478936803091447783557465281230563175856550803587159383956104906819707428941210170884460181712833448818353410170431562707495463220416078709996278169784167156709884487446248715463081831571639933413258834779703882429607842091725082496072412711007363119058415466959981807187973660520872604617008316874012232704788447981515800324481782947314026848608072645860304214125533717288772415849223113955090639988300378308606067673232487842329759151897242959128570539655455121676556266015905837239849598463618694648270410003914463945930643018225580432023991245403521948997232596093546276566007402341902921915211204613373486813919255786716905741652006242277734077179639500489958534946766831957191019971306289523938844291116790847799400999935941327379738391009708559392025595733311916433324288321321542743052477314230644300128475358129434053488151653898312028215893821544132930331143358457159818791196211037630898132391751668699945575238290625312333734805749063247126323876713360538417442949145595694685332715150911686883933225046484090664058681761238599081707061036405653143526681879781968641957049049120043691947756155233236443282590427579258095956139013076923012962417436020909445609558430811174074452734817936736455354498741581006953699227342326884693631666375333967478777639310615146357813507972367526931641128785989420023383533066025710051464459508879932863375843973469535743627896857586266937313375863948515429951247672660217556466853757301578105825905751148497341986583234884518600636364000957052974150361555532785494830008022833296808968728119204779491483942504346138474070421755699711421810200146004848300064479099299612503097269628681259819380347997747688747749034115826639189394404154951506882775761625801980114962301946902381478020812503822039281324864734150942917057554719558875857805178717798594038831182833026014166361900879287049888298550495791876814535478793631291676365824947329352686778211636389192059950086783032034770785309553244176031889503504407804089963037718152209893371232706644311270333612578534051062491835670232035110267956699847184116248034432888740386771166014324604497693702134570333509467304140901230838990866550949588086816864612951121106708307861124499701860137273923976830842371770366895392352232686198034549793477122980384412511360487265004461852300278502058247743079047944114979836845243908044966162835906805696240361887567678862300081655401895480677083187918712509439941004507620550178189238394463657122609633450124511980743206901314652795145746986387177017318511894183119055771668529783137116115669097532705222125916410980831632569531722225318436101271007321849444809873950638428057530178064558471094460772669929571920455159981821206928673002661678008855067494597618972845277503526942826631989226431630454655106980343276242279319798263020286849218194433805088154708686491408302382602060635183579477120094725740936194416124198223670385426958639873779340519420502179143942542446151292421510619452246005810725532251452100479236422630740108827839645984644120724801361847222941459390087802034025399247587946213816097881773309780079249233567092727062817988481158030993967100715937661514156197424327635112171880704918681654467279089849516625741145322065263751616290509791285656327237851635108147690390245250013060658841801372171539871027134506444951379468307972894604862911153379218733599964742554307438843801968368493442182761787864679884547059370852745225421035709240915438831124734100660763869013615726725775192785936137860451508447411398530329659181373766151419343092856131049395114445320726841474288362957349044914393545051829906190506574848584995978676714991792946564021809706970593903356169310749256568671270231463817803389898567347102782604297139228516615219869415775340046264678212969558459879657296866432327979942102261226715465818208850839981069936583318172926462276914819028152170402831824306138505359637192014925883734761184462982321960791462326953809765203974222068283066530346978810615909028762804378052425744745655546467230830451110393193489170224485170495401033629786879590573879100774816929916810298106404659817731791225733187831621922730811335782381356994013008651218833163674738214767838336109270232116176604046513743330971076938320636745167025026627123569421239074649624262489511527609777271214710781892797282039425302976734454279928990152358245515535346961687539916087773321188726823524240409033818749879272651925406111337177368397172804479629611525770126909174674990134377058513743518595291506414835726569460664847717191028495421529390466978653439836114318459475496780346588051328519297181371520304388082308605659992812384399008375837081324808472943196481280180660188999607856601759030269413466450704242895750791096707874010893251658226945429238150641623673945444792598107880316973109377379619835853730124964531084948698282239821016386504600304403217072436659892001227954580098189396649691242665567051706328242651294610096094598794314099246890810037326745327032910085509144048397367926833159850252052894516368776402305027421908005155686461473261188900639807022112143905560433670104782779501351457297387181027488657083456467141048397266748881646024426156591747910483115330796978174547132460940917050820291661287194614161350787217289612922632916448197101968305695529662984660446573141309405969420139229223367688332365542282187272262657052418052045715420124206900267319895599468821167876922639290674505501596388237526414470065829836398020443413420124449423106499323310791824037739092119079117432209412180976524019860339543330933610651262957987982451526301289897914904775869930159421943698015645622154331356344724168405416715384597692278509521741230920933418233838971696153427731635914040033165461001586581896507432441732427424078901631055304986998469511404715148884967940758171422147911306682116724906433976761839358295478356889577910804340309882733645151246726460725367036153302462784499073980839375083328000847354175354907456392592671696166727235764893809101950152813689636934131984381347140724112708600266033360154991468880574522897278512096994429293427975712136212009980779297119753349956485073314363705352741952724075503267886526485068525778957831270118229906591908509935097078394821190647089743678997532483843006685948867331334779619463574991295287648222248253023122439437071510603360478547812517529932725588363518042957819521370363532324529184739055474339063255717726240162887935527246367197909744298889273437585124686797968429647359779434145483349060274954932849452697460176670354667541083982113147046153593432879775704108923514919675363548374299127430659445753167569712843158306426915126774374781021209503058736075038670271724414296667046335580601446931627911362999365245276143197230161469193555833275440537929289306990537827677496441876736034761422971428518067054128072912004636221286636440165193224819272498808176195252954097968791373522653840901381872003802670562801226031415989911627466289085729171591206534236003872524890039018842968934535902541359578917392456464936913312961494395670292342599071782202021937476742393523564900447369182719630996733504759358297338613539590958283187721226236124441945189510519187464065914036533530746655250759868714610938391698537304764025655930400046432930229026862588074051117098720108555745534281619447756075641172087717443037672885649980961436765524469149207962093430447392760356235157660302729426807672181231945601660682760211000044881451682415259477800841909989085346105109090016563906335491329458851186727944582584196108183586869966759523064071912141451354310176382788739051626123283282522289399414257905260181067725675208920599050658844535293156526544444520436675818560701322469917862575674574988081568247569043326708583891205204605897604090688961454075026357790000553635216707935683358472689153837120816643422714769970136243422914399733497534875948075732123509737799445311967947426415601122618065329985152552828107783801307867831391324337513548088555929002020207336509370187561034694664758682186986502762765065047870152139981291401936480310506370582574074650496254899330099891303714523484863510542263130973128282029995057755250552562676564899364102659229793743301883451231104457425723305228078868811249205464336234282774160959573102332632517850754920781161602034064432844116880584011172930818694185058904036858962606162427544182648703518781228358810969204505066358928087710145058496890315402796916119757981158682496656737353952470307557519015154334731564103147357163948887341238292448601388387037951651977333924217646808125559307660785957403259961980039734103294190002461816774964595104459927734896402456548733966413833386183782794616944656231007318328594509032715438657869176429342869563304555150350575379007414628629297826719453664724569839399787103922300040526653811440520602421301500747492767279468990690458648957355367549168181973271514568507917488812090005223277900650426276652313725850813376767901278934941475519146293386690399945567887323227633164239266904736200660843325961103675786088432018535533645631396439761242568255727909110561717530422608984788319876318755747120446247754647033149529076616357071606664926584836043183044908475155998235414399984339480109447986169906405020718361989873991591752509999113874507940999202951478322303162130290130673916775052308972928396109197904744170262067419245978238476931371903342262633745382384455472868861204775276116700297351420127324387646092663044010402806111840873077336288820959573222028173284475695927081759535567803037674040344764239414440652436611216497988602648491573958592070174276614448409981509636668482250400744815343395456273775187559872830994464981454282532353324064936521697195232581212075982720617483116140063118439865573527147200635508923828424641461514531370540341085631718636589169424519664406204478099739977792467001308730164365165381333950880530173939572830608647789179043729942075982800495489641612897163584169884474963583498062595200594602931204799341387386797034248168920601174981709703163103048117973056294374877192578749660134592133276661141309692512594174582722966295283192508346862553381861346132184978367011557389203112124699312251376254491461848525590700084540828829005228680994739217538118701313245410271354522596134687536501474567819260384247988638488360880069675180951511314045773571285357591705288788689108056873571078318973171202412485479743020580362587618343182126816144268995528418172731789821418031989830081726319945448212336031229319436110040057666030064030912339830293179942550885463630031325824171253476665459265964832022603610869881378598839368902572714603230411058883494910989109544222294333517461105600512793763189456775039712099285895146028612954138499706265885440290471167082172524817035622259599633981301031340114709114900038820293092821575776679481772003950806514198694214705477881165373827341544196098796390734688142941903491731413419875142166543397600571328023836169775516855028988785334400003525130556116373580519810436778962710492123895866528662466551424727165365149849593977861648696980722356218123242341798539094220627736097184080885561631608192573915265994442086812738330800070957232083205928197124948070772901197419823981977188122171450708566046948908768567158486458142550339061965546911483493516018981803000985656148626823668402029594379988208766708942115577419324692225759700976353339166891650032816075029236911056371892041175560835295414671923181578685437186341904087385516576023780031486307606830139982341442533186089679142447924700436780801885385961003967716647408025777281147487719777485010222926953869784977040312963946023097451907071465325543826880464918667317289617866019599647239835666603744787824810261219443686310739864481434250392737338136416953934803602354697392489474235224521090686913818816711372916556980106450669104797647184758729530013746745510606808048306257665821778144095543025978838278924566369885268391909273025075065304208817353874610429041210445401233743545246380795692518606214451207303181014116807962564847740037207280489861662381621371678989302129707680428380633594380513072024084351736118964413969768680811137879700152641377344251305563710415101828460114571870309980655680168180660234590629886852420211092702462870167505429561662240622497522085289351201852448899439303783762837070224925521795728813718030866561488798128936790190865522060602300797601769177081695655168647706602670113024362791012194431730169111257188031606877076024733735770766702660908686180250129074951609240760878590779712458297374754183732528545258720327777852206153969095168272340492850048324071687364161099902550367839859780136652358588302385155415558868500057916109640404456023962025318878666482578347952487265792510082536537524606192978814215755110060445123006634025319207352738703443018478259575201889849474712764603263400822875447701694940791215879783179628948556466528105725015344907246365159268242258108999999736499843682354983241094363229478696070998461060359687210451734288116613903245727330419064553722967133284846875884212703183064804537967128299551888831180439319939894885565561017141798419835276214944612938866620132166361660956804688991243706908361918588850439317065139050523691235623816982926025251175234837272758424222686072731629221275800758048106215304536685302122808864723274984392085969226417534008749588853128634948947639243354490010650720374058511924290718923803772285892327686192444787212323062114283508513063458000549842560946956501759438084567337051147313926389823168009851270782331330402597656797778363512880950607781854736089574910064701693148541885097091479434978302959108355104598893213454099290820241176986974476143508536930213109408559155233163672495679612134141692435478186093068689722631909137843218405375061786828993568536119400622250154990004120797816549558662516280278959413773099894293680111428367553292881224800523313146958606068359354564331437058864580728698504607171001472972329477547502912828382226191154107619900640137441596133050475199437264419552060717279705763531851933869169072854627636743119143362854510398938746882143744951553470896710288585855714870863319335291145074722898168589867933354829702838495663506303809471260548983857254785637872496977401918856683140002846008877261504248148566101045603162592951330142377923210131119358987067952296280524094855553546899026088930265428129829894869061438294496541490229422324942985333779096360455986532235935082959484300051298396993894493586539743720639649327544428729221453475297679669147220584668039847650775711420774766049435030722347772789969477796342585928342320181304180212341182170367780869529640722335972725407510434873901165380345310484154042200145507775147404602325375502033705968936742265600159182983204408417500575415925629456887178802151847214747697935237311959118613376040753838173693984801167205939769994576485776004812723701234642937619046369660453444029875799946441067628558147036926777379003918718520564309007065908804378364042678015945481183398127537082404431757563750660425836672148282117838663577854134939500767389485130817799220752422215876575270814865006163048586884889205205249068909626192547960687159158589666930336126084539032676553665275832048290173507479248670873973532350093418176559545172291584824888579706356573326838057862751675790737075526897347610828467173856831141835266253489378021016087966213549957856588472803810404392174266023167602283032663354958455709613164035709441876786056607321467298396078052018330461987226126871709329782271886634773889781379427924299632772625425199166433632455246015466845907745966409718422442039671384917980175239741106506003018071878261545240044216569441547430056832283097148373335018401698272205434556723119663772179137352783779051291214762556280696034958834157704065325797162109742719312222937687418526763388281791282005241082332116977157609122924085467500225737616274317213738857614241469858979493331366497891913289654878808106585588983556343392419849110221749464510460574087042328379734920324636770163570597416636945096981961341221954407247143815737589619696994976540285433988525624297818034103269023173956516557130593212997179552453639376076573297379471436817373213161620161777459107202038075412438994089221074637979261778201594684574922030526106838322971941456191751251436378345643807826550197041114313950897198158021925508992598516089838833301355671283544888558364350128364698272189713190979306679361508116506418603328921973179880650280177403262512007596203328297710678022753820574017516479267845813917895529333358261329707648425446273232012340343355774252375145879118268330771936988156684054412630249863666014954280052527370691822079230297462045193713756844212204402884888989667439514721027434050363585525045837785008615340251087788355065419656222274571188017623484894198631939655376638731852338157146061966390333132502277313724187646899341044206307966129037916650806042281338730679313628767656927343504170626180580538107261974720351927953296900065928564469365756076693948424082945707985756133603224615786996634887288131447451248888306302942528821575847348515821572728006688327977562923884462095014884889512677392096938891603153301053724045664191053993388442614957631395285840789629826128919819785788608088894564512576012629468251886950547251107607106613481630963673307439575878409410754127529536927215422468030849201572356764217588028770884686006597216972303191854944045921186261795881426708025798521694174814662162177100419640727161570232687329243713482716230489030734720904182975555954833830415626462118890627213696460568199308307593801416380486420985205933543843333386914908025433806843535626434004825921380316807897968082254455396888587834016613095158830659935155051002996616520038821943211271996641688241376677245434755225504634875891370228638514460364504318220032275827659253586010090155638898681157581850436921647700270205519783301334825907632353756562378642007418277347618054502229459723342865772847240650090346949493015917848686583232464256182685464625555415836064662987047464875679007798917435791765442612332421816935562985401234551351007067805766025590383465213617553490056820382969070338965668051578950704816767780929629849544670900223127564096395887706237147065967103633711136550454624504110094976587687570032973451010670008357773272810464942421381203098987486853226676300497136117827067739660664257088876604020139727797654452760867890660922731514839885775673480819321469770173629636052439502064859529450450321986423537186394385222650292680481008448423883725806617789705431257035916016304292843727981999168635169788608642079581839387503277659640191016651725319030154500466702144886475871469575427228447625213724493694047538319694083990588796725557556013007226458449569837013455431873410023453894777121479459209414697523609467139214905012259918298972088284450559868327437673366295847222687995367688916537196257122711835379531639696562377547796715375764873900311064603669782732660813746069415163405207612073707106830662987947211284084353747466861179823290172328332615426459023345595062765441879655530992002718174219329650052745343663944550643008867772478227033123788562474954619698974605510546266197567649531258349551986180301596417687905562166933048508739740441535877616085656408431607267872994185407190555073407287057817545782648896365785196342178774022949288439454670575794051834857545875078957609348093225004885568875869677143254485747312117836283639640521340392612343317658098816103812708694595184730718444501466314031284772511653041987197391803136456396553249730386323305790301572437251231928595308776992945977990135132395358569681918668796572980021481919609365784594611947931152997259026799444584733967478882285868770423655194052641866447177418868958659145063590009631921728061978791640723822947113835260921536740149597992376195721400012017248885206361545622694284094208330230955903245099089411364380135568064131356634095644571614556725519098899220518845990232309779254074589160587611483904213509036595273973897443930757181438910306586886345533178611706197581607649135069142262887508958909713408645419955556473728444007365067385738579527391492686661832067884444469290320986541767786375165213242333296705025321168497003242037464604689401362033917702493155708253152841970093314646648941682515346217648945179419012358725465934400033307146349407009122310568859148489378348747008550154738831868268576731619011328718060591589917351345908000009152427233912111780396674157269072096574358259037116668418245423789666402522517694049582419672812912918203241662001254906297639967849647358591408502925472775472514445811785683018092405941291732389599395356760076679809574020292981302582673798984804287747714554581044581970215161877765568346912818393587603031701911019164822080787847622057174965610107209583769394669538982423680887459614437974677993249271132171451920889982029953311790239404419547307645112569474036156726091704252385387939023804817910156469713916614064262628828602545023732134143545611714376307196885183566971197900265945424863512816856521674764721373552913556007657012696404296467823131015348399625422740252124527881625129840284514602857575185096738437127678751028929012301174020764207240627749272704656679145479302753373860485202002606392878986947258593382546665068389416016820012076264576045034177279409305703649723710203491546652191305943284674522883325324241461511361628845150963538578797251156824848151160160669396514643735698937267848325477014940440189518544603432502540200050906428345753571210687209950635797792894110836998652951881448590905204278081273277877265250992869479102735125309426674078426799038112273335943422783758778209666835801398185699136120943759333333301193468933939007328157036772377606283518251014940496080524097047616438734457347128873735336761208469293395249326598748535985329143646860537650036931898387602450264925650173752462864453602577386917461765825810724314940283582661022068773434528847137135775224423895943186670713669395236723487056964759728324609375349300960927970847700271002451968435286668345501112130432519975205766917241411290449288625346654573178707873467479459135553403860741771046244464730168791813135334113922848090955328563837016425494241821057841033445421411477204734647805966814022644395905069287668648606532002345261917660739724190955176531414939041003061092429869027854068928066133244751047961628838960627878331095281557653711559066744793453038274189887805618509221922577033353395904679440661154186251967392400665393648989007227568097879813227233310381384264685815382267719403946140163112386941185123760149439375146925282749926994052783860196294761803054070259021637140682476818603234112842963108071980675863688116356354401453759142643719743557938313317814530241188359535984553715200396818553531864406300776037056274076796903836813909870757795987326485027638659419744910674435559313724378063197834781522165377840822383737623329613930697469485566750307375271533341004617135155012907661842258111999482124836508565873028269256881546195540273616494920252331521027690402623133828107826212322714670601618818467144540564576226377155006519819141480867439040488259903722922667474840180513101872397178694979569214777975701993411204865489291929585349687558211531219765968935175921084253658378469913181976375564473902023699386110479461205651039421113358893173723594798613380676057902178544977812572236041728049004410606759448674194267915497122015251718162175319942939671295145464284479736319676525154125640968347822585070253612406697635999974722050760127806348393622826153906208873727542311532562234250034459450519922893606561450553848369787750786722832603626234863269107032392320724849382809811013899034749925811443698360998040229794567683347250117425222618060994177551815005418219988124355191327053128692689567676772787733096457029322346092208148729376740385158241517854726333143390555639580654848521749615958042150104402291334235983637108233695937035867738884032258014425386584728986457897364293323655452880344017146553031616103151306766978041117932282569158203558264196568299160522266069613459197637700350460226272530065793552436183883652608818958911172058265430993505605711307204118457877302262187163054356409443502533880656415647087391838055646633809510822234417906491987252027942756617784120562136282534901296098742842157341871386839713813364741720770736422828300589994684412595665667537251611550262679731858126794488218629083102743229565976541074040851831663049622462460986682254939915892191367387399270009664917831629328434170973450621053002460648291371015615840046821706350164971120892423657300192384253314245724794273155001881586015230214801230236096223372306284481325651924313690140343638081441833048391533121859389539732799119287806342644632831665212647658968317190145666174082874692560805742872941740372323134396955293407847717764081346981720767610893252629634663734893164573828060897892635601003470280976998325799856481218360213845359141920728391648798728796811678205184236910688317010424036837345239585952198884277725808333822321561046399515076646292759770382223158827846951146913234324672272581780511875251117230077097820485092687526240221473035578621314638851968648848761764545513079030654194625700086841551705976165929186967498737501211376200918969541431196217903758476966967053397181024201076697404064557300932920159264182987661008563258387173992598230239230765118252107054357956082551520210901130209521890098943123935711677716418579953108189315552438136792568752521282248784369724512043552160839331829326896042092933247007046816131516763034292393981510669760327239668792428112118486508394485614914275991129952725958907749719251103232774144179055858775126328639574298433196307973623678393327599745718680912021041857737544896587997669424537901617533802352335473437024846418571533446639904850038574051013779753399270514405907151199115882406424732288631997155550785440164900591633599887025302245273933633450224481345139279835121012161704561951306044024077609523436229452401364581997412635063170448404134795560458887260313320223594739824570616432817119135195325177981454103389383183769772312264229081893199830601562449305589307717068967631554000009101580036393424843648018466207750657157926538328501693573603175465974392521934138879819020021800781306814336018080893374884911764327435761876011630398518718265533759741523234811236953933490354325738995255953112527333835449956580003921908390877467843587000970209297953694510486509883558640591264330313021024416605954772237312603202496784561029749446874604191416282139999157019235969709099013545052792692051754029726981521869908951584528408243441168136510659056799043372970782297791253101145476384130560285090413534728211815206310286358583010162400925632936277659580526800469113062297319571248196757966044396735365380780729102705219359486770891268783062956470752835985595370313477210656005350459633449688610846629713875034647681593079399462634872118828803150841323488988461556035046183959963261178910966506421300921953332289966732794959696746656205176365604458553822910623067573878810620007672437679668864305188569441432830007708793853296056464330833589580447244283773900914410775203220985207640644545009313013127099095154148351804334014171501538442327880765730924972239013201135165838175525491548143476230308609153928905060441320966383940040615882658470405774708917065138932009498553418321745354763194650612886550570578989936061780094397108654887247190173870894770206351192610882473911723189626631137430979022664628934278440905500177099619250331470770955492968234571507078756839089343495685899462700538847269659587147658984080636212178050319273318962631931065019137701640346127811242110245297782476356308601562474583242060720634072646015317405711931394877353679249332241280849076517238995271318029230442379078322432317673397121861222708069877027211164638154813919688888547981099889939406070238010760286521597260573258845052472745339886153241734221579532097081354969785446123591558329253121422904501625991048117620994434940533408232990759751977324066062256676502180097320994339210179468474453690515459881485305048514122057493358288912545075935137551547068827279877898281794758261443232829014446217101394794984650551074240720739631453481223845574306916097230303033865615266624479884131325738744330303527358190154342587343471814133088203604303722554457236775747219368668782361273878938616004827797140831193378099890357731740934602195478148502501172052404353738080025506151722329549651663302243210532700814708189697351729946798577281854668589328512461141432762471361746501751269025676921127366497345080172855550687689385161808835620676691570188534985547145052663043139381594926752321109574582986835637384075625718971807544068627596610309365105855363996070024817710059338425295567819220430975100541811807335004574403944166569625084166830664182175138897772406737596852333345436646260567777725175154308142766703991761828875685508931934813566856955707848565047816978297254228595273261113619170802382724260287380421584056872954349584343495238118018286743695763241254799239670583465060632667038190802768342348534976659240787830306058326087918768434877964714001450439851301037311151678528000536005003490105303229436901157641881493462998739985037906907828263212752889586539063882961416816067130151907139908435491598114543547884217230690243932827335409662283695750598787263444393367063709196299491401255903090996755196135067808687952741495907171524647955256789509552893432041673691760220887267299988121030254206912412640930306578176791003373294050592935082803085614663526122812364874099553854533761978591042511498592528513991663143972390834061579487805628348491910140399366843352773676297060911898914325658804694195235055054530450111301787602235049017827045002920989081564208553663530264700068872894471057559631901242682725582229627501091506306179228208568863694396967055876894373674461623196665284622223773439771342560163742004850214164289538473243247905567792352081008530336866278542991081902370384277765611644964046896957131247553771008990907386482885925352944068454448935762374728939605353156413781811837721815277927030851585369105488121433999635299503547943732071409261718568748159074318969948754419735206461696668157279900957402622275909583696226245020880339027610588949455586796331604938794247057599041141183313793171970047221563571625796429725873669248503002627509918625401619509706346138134781721978569891919297269610981518155799817503261568144602792827937667015362421201208587218335972128952696044981534513019038526175068216153163355396306942379513708297684948358326644695265465454832941655812793657542316443172895889334572385282397759227394126075718202859123409259861627021014744073109382838918549881999203468604457763830975397566972794912587583528532700073613805639381834250147534443380847260582224620135954731226687668471285260837475998703429314109040579728359825292134812179381792761006774455537649738821491799427829828706072772914996459145205561348321958191335236457893452219512549520558484970655171922600726593819917579541926493323009893218868014409554926910770653685500860354012547508318303620301570793327830889562545624679715530405967735767785798870872058304356611475611521388476121328657781255221057928458031255078679712828745302524297029302228965533708424349825524359958365858774487978565764487083598399242543004301939941300297881623730424868663178762082127619526463100122920617478937806600636262688326778583561305501601642675793808892316098887326365841993083583847363640889852665642771411700666105535573973184588978802168842273231523917144117524672662970306849573838436924985066603816607899306798051388191250764523387937143920358170033024415522766098123171776234006033703875096652362610548961926970466196439728355895208254951632711714147542523992243850514861202070912765727352541036440159961421523366296225317700061532915970262592902876581670239087401517850084966417363620289007097329339934083700345669113493186846813589730759110452378928567123227172213934686386227270780839104587000455128554141645474037236414397350462805722936930197066417728371654091799353181026931505131988832161585219874048737257931236896269709787783404104209420124946796486451286049160048366241390618173388930121671138311921514393256686542145675348639477473930356752698427017586252951130412629898809089782679536230992308952305683092015320771160475237692793704305737770313100480456140262798091342532546230110455438637195628120383678711367323354095461711239621972729684845940361889616759618900224390328968949206406465894348265205596910706772057419292499937119677262726340298809875484217321032291558782098515083143828238449033601661284556172967966822666158639203264825012671734598855499984522535360841643601517447108381724203090581159400253170346689555680641109379229490917995450805117637602876633992825797791103808122482114742216990572975280177803480878716431718118817402500028606803962336863447799213893127812884124768539906268013306878004956957869778188088771869849797074516587147428485766795642173020592429253462600770050706335414358667184619887441372952579568152449392337733351700244959728977273175109233101372530327971348756370493032258286927585724975476224821733581410210000968052043032996867860649329602179439111844415666213331564978403827343314445885736677164462367766187046749314246053922887305699887558914545297702301535798865528158089065126498635717440466683654836770298736384365531833030849010131240120882358389757234658180819482898697593174100739199844336809381828574415529721768836940141456406066669591203900907723417915445466098383422127137466599912807728096706803342249609560329007336725703570689205489270820083130940672036879742063783541607590356751037184451343097688052743049316842266278802483208121717804027604175042053641582901496381170857399900372702329541069972226312904408115101686070101710083702440194412384129922765232638341237406185402820554012590413641130073509729400192498880676722634681499279905961243689918509209519334069346948123345923009881761602215062816150317803170021224705789153179221054145673341770485574033558455513109375242869684078810068900322569542752047995116467834807287751607360704416087544343797772225572073228438335352178815446165658095534969398545590878688559430290474100241757293203792159288444804499833721638812464971054777978848519748161936826407439589050633781663735353609589066075140928615151893964211396173253300570181683934978032168055306240721889296474051951080686131948690635667938152264163007670332867181142202366956178027786693948312068397786718587992774386253195059367933756265274168846213263941628633729661262831682881763854114788038105463141746398640742236087648823593976158626810256495928623282793198675995909204003208101232158660578717835749366716451758382958050344456850039501640056622349240217935154674275340770293561314548101603691870468114412584064336250830984582556554946258768658228823805069955114420531787433514900483657826667355734528159788038998151249967750659600679946641500474564498075724061616423835140727703705017777317663781734562844017873423625399126253784306480480449612728133550916067953614195325027994186898314018666238516509265974268306070831691855064393176411618667974432249097413045335894963959358738741612299964584958235886875938369925983545601233755393347417715998345976277645290003931049366822535768491083181115137244878918069791759240180399520094873505155729942189826052006334673810779166273737437444617415855210106907717729590930575113026441037112574441769603112106117178797908361135420144124679857746250143189759983451250544107138503489868671444127687361192625374852566769913346362327059166784403287599722883380096489384130815315914953982322907617500796102046550798626122199563042292064972967005753516443057177974532268606721165214566779891108228164672867220213247174370701348661541499987170303184424922287824522149191381770819464495795646702722879926611877675025676441906507938333046619074942324185935336746826652069958501790739182831335667492641588596913689759367753806489352933808887567779611283557608186521960565397850449065021518817568969592820684459482551084940029576877940407548642883184191065354007728955090158364590841388174011268595640745813632198808330211863015869172323964904008036050873808529183161073533051655515313497150019588489528119760164595283568929942882070984097647394531336271922037510952205242441135903931517265176301509039472705252687233932923951989232591266683471383763408230723701017899584431494537899976504821758712836227730386936903112134980393396889942652282411699139678996172334312425286923282261548016807602428141440400884464468437923772030064647268309504475274051957657216424110275408998452782278870673302770421572418164485247144958775078806785591733442483470619557368836162331375469552165073570847833108177611883973056331688455709665371802246659971718428389591660619656914047731908473572598369216571521956032064936532124020091607165837627133947341302548908876723606046744334032710943283193920827673342411784547340946814454193100899144588462091945575398939468368249380264394349688271709963691271580829276754649040098658123403729237040666958561526132368911210917496119565594277325472481377750561542470808918446340665088881442810935382951849950357854785191652918266520617134925020873250967971178372126503449748539350542709676448965144385481947449840925114955148380619241504590704761920709511827942891405735268516149541405196988919550028294963435263523068249194416986648163255998201226730897190918782719155914012025181701224932421465783231283618718798100610243894975296911143806099521611843274210838744992487344469697390222009184760809691010643717995608978542070838275588832864891841741188710208068879532949301129395615275910304075228495115508677002812045848457230444648819075368876960147213672308080291383960599887031351722306165108741226795275586473487338442304580018056438410072188909814380148446037548001623978704258744334756112232683695300893692858135560318623547035993412021045231916692808903026383010608752485881466981278222592755138106723958542775205088192124708402344717237931744370637261024055440382136431080147583687407435329657574777897254423282992722095368010597057236617520313374587148962040831109181341233802521953564959003675954515406913857994989596949444569443671484959569683080494008458048293646441937013597406007009941383086057252233092243961303782431877440776714012694366927779365904501787783427887179943419910013009327503964731540164418967855199766422347281795968328297542610774559767198326239458904000763063090770273346982595736374863600378397774034644638875931547445132162122280047307290462481712225689410037308146800432742643073508711048840019643895159689375656373929214458671041224561281887535298008823886529273779296566251912547307624454136519323195759835576080857882876216387993467825300224601839980841619496740411914608138408363211524700415986090715528704418115056468926890328320110092979837917936423156459133484492049923114682144826577273666045279632278284302705947944550630986221731224827352441343979094918670459431455650899941321538927316237863974169186380384875096953183049722855532907560689319855874772060930145289838536072228813064404474954969158534710378287127531504187774747388390808251698473837102696020005780495499393390377180147613909204651973922897273727797639470668866910885877656160548137524493628559507072617151206816051081826628263890668809542113924857676239323033111258790788620489938971709089505782515774166692518548948324037156206397759806849722180702709309223502630074232022809786891844455055179871368261761012831930466808794460421902950760301097342059979183252289772724868376619755826885481126172960826705440977956806781100677052109037697394420829323199699436154154190161538950379921946023098754580268712963316263802757362645001531006981943883354351143067085584863827511970779712652497597200117638246430577101601941914393616534658059296625776935783938114719262057121927550841699062503863369110192148361707937054132562671963353267748227247328933608792271039299764480595985295678442446054122306493852585633918856589405300714422936452166238757299726913908253393471284515944370398849492041391234450548734607393194196582150981544176263324160088068698121594682878001180544459854971157003451213424804540266782391994473315407305698968700192197721501825476391656054683514504521993410220546491545608465328253794966747888952854870604767230666667697120205914399306812723263389221120728406445253150092860194097676379584749871393896962970320479356062487749008562496880482553142846548960596429459915585331269831496386255309408599001007094802758817191373211430454285008773684165416978280937447276801037534195723176139276943632868997754926882862999443340050516807894406750597062698546886816815343557694069853549871349171810145719733612855029544575913829751295936464347718693522422352027434655693937937591088076342499202747236905930863720580354794891386643985248369242424391059381851588037604057608127829842839337338290009153417912128076878927492810979509994854328967813023682330568396160681545887075475276522539074626278673486809293201563514092937847423814696806140034280412524284766405254907947198150168786150568476932057750236241435453559666659246778032407896490158524309177766913385642679971449002111385186426398397359777704087853434988782390775058755814792532654398165967489891740344497757299140066980636765648249930481906106494685641228735934629667673895004557614744429663659473564813535348344026231894363262491584322714795213208087645756054569889532753061394323981293269634336057152893226367750982323662918570009626343758018965716445796176447501595145167402216608385471624909728966738068572301128753810189019299201011925193409974544953326012093628110004226295152835602497290995130489324115796951276787899162824737863008653408119653692760354092525686755854685749607995621494022639218714807393186364840174050778684201266711430174316932817421286840875372755343569708759793160655827851710457470171792164988134871266939476147569727189867206356330402407260230397656145115309216599425434606349137264962870160517200180210449323744037928552747572273785409626377875825981853306801209217130343742108884281704234217111346565792333134209149361423957151906521897461218558001035435447080764198579034094236837200713418515136908538396851679672796118822391949187765056619385379372112327434137645895259638800774971868618480017785398431385283757520683780503316050182141713253979846972034247243876889243138263665034881648133714432598665236189303694096208384913782494631637629318057464139145135489817676770354574452517862681742903774536020477927987138164548255240867602013257269941028723669898732374547052001596214326599552052627155896331979749735434636032004870920039539692583677823613347371617965254211719190340459893823382304525293541773272867993762882220202165085126356935538185219788783760374979374114971841272576861817078138239517254589672051900048510351622419379177665215762470053137019692754673447631672411334972398733141484771451102094448538664026553928697983933798287557792901702786028830020656363150018546944340631483343503182701222795513220392291291914770669827906079463689686100399136127821197144830696155525967218223046438130253287887063766754790958561595125584803869888668826201145128061850756372904139785695253417312865855649370398340241537093252015860799090220740704786183598131046386113176705285687959677522777899289696751986236840809672549501946021676874433766626682907933224730197163050497829258063410474566631239816381459398974414105182578478865711183827994608736159312712812629553170314196466762384906183314169773454910999939191084817828399479055385921682719109304743332584617731497787292256033399557080334240803358020426955799840931692658347973291121796843274581516625103057564454401726468497395364871702975100932113893221379252289596448134736034542500357976633748764633635105121803629285713272142583828505406799010825093893259060153538256166337352516709307896714191319896615096401991369615524126774513415168326133626657893979020506887242815519512355855874873112656976186737940477604934971344147803891181213582228738712486266807201888800946721020845209456373070365424529394668387669240012752579056746794439806786681484638599974536212319899740927262785370419102616134557953388862777626977522669643020011202860949600313630987802711769700123047676947951006013703306380005456082683223044863337370500052871460138345192799972893998868010983189581241170365563627649035617132140924659514477219229548661192237596629319188955913914342475172449628837516393367772375574197114538732596695650145932502035905805611292433947632674445409546967802615916178990406563081790261015396500731695867776477549715403060876370811798370913414665991551549778847499168925003554310615401235112739034754652028165969874261498711523372788115006930597817508432465925563267445909393504809626153069393349310238966663893564112574660829030524837493739474633361568221930967007752021907531523931090673022136570052632991804255355619621247342332177962305011378954536322824918843317159036265780344116976931928113376615706405804702001292631041266837133738618541011275517640714112228402046230007753775689733469719343786169020504419572955383609377095591546323387085498524725895955159782396241523093486038434191014131609181712187248061594025452599963999656430967779010406878918435772233770144904597704847766533994131750321101545119363409209949741975206869120565453092076434362893463500029047368466581667463970580125368208161151231231937400817029883489111509775405115687234777946232050919372467009877604283908448287919554953728908227856241742320831458917463077539971038419043902282060105748957805847056870661043335376400733849764754695790192174064241760738790669561233041401702678022341577645314193432736761170845093321143716211899706113038101623835879967649116031785099454478607325452558617985843231962704103981527843608508302696006670095078388840931104118371644665218677598096032411114469093900198519418964759733517550379827433904493476685444639043095460689422464757493150009250442377906046964483775168692914787618053887145990026682750123811699341614609216311524571480572252010192391979897396279829214351101226447504296205660215307609763187893282595535291035483016255780968774759552543207603983139442739265716624013238176077324429419069101225027658499564901669873087332040678148157806466323954446478875105079719059721547395801360123504788758214417781026528408446626897881535737621087106053582342853076994786323777483729560142618944603508115288171828048728990362009834351309336193830719681594733870107404135134568145309687675535912458570085609299826301071662559934150150135374786915577305187289278731596458592662415745810418658178341476700396946634840411007613298366361798112425396356758988870904095075651839030623833950587636771580982565605518147312420128226541931325114365196133231747533034382434093799698920073939694491404508242861914637492381889975860560227787161385751469371864803032021793897942019379490983826198345640784568067276683022271920513468812077168446380121574713466331591168200279983533893731618133333898702511030429112106374441229725878947209640814630582059742159105884384440440480825173137658064284811614886137831591877433027451596022120135749721406536658430830181132932503596039404061117812904468234869740517871282751697909836581505115814452691888561914958444766043028954137608196965857457769193137508779080473022989701757441305306143282817884740046833655783597473407576131375815420702178707696044342245964076144527071944571023482962859693252940151918138753282089836954969608132348564636594156458567532755196923915038717890585196019673265012749675165454011133908071289501447738069497314272920838851344754870732584955622662251409719594477996809338427331007252434845079072666855219714343383659451230818787941792281283848051203455819239878571204373533139198280677925794236273892175033004781536859874117594800782854039734321200951458513425871264157411345765279753147661569121044660594970679183806688515057140473367060055015654555981740952641272264772096581083550867623508198799514832280793700762651315094982646389009540149370351092038352875619860153520938305960753801495224342521016356934284436874635233788806145071269872641289088841789656254783331290887288324842046715113352855020439448380518833294870343030242089830699539601777046064185166078973967250588094830631345584257849977130081226518634564753027930956651610192435894643807532711738962570844253157460210083821145487879032410429310613453637076881208648472924166465598130038275388816496044879598739991573812895747441353252064076822088945105432749734537259611039288222384349715684109806799091312704145502799892425922392967939985218868148368689829209381641211595969513280182415774788807473892687560848860513595223900779648493358383635795225257658911674719478037704368455402777400040383387690954407021692071876845296566645291373021231343330986106995653551335321607734805982672333164030124210703217642034152444785274957259301244648834446590461405204111745362619024278725778497424247476659421231329576228105846558415167889621154438199781419859988928316942399620396646143038947658520770158436950550413875806742579800598528469939375601539863668967436685727793975791540937037773379988401472470178080778118127760539929901733726444021473738450963316643645480371751233269496146737016937895472275985976093848585470754984124881391232683687059013149269461422986327989075320663282292270805034981219329214387848107212990145786689600282881314543469075875074721374389058538524024959299405422365807174301439166348881025676882984097246359512475365722793537443138214319386735497899727554821595887672941616953307717099384821078351296295813885858247259746432621847244139521184329921919832869636793681736074427933546081454845859255800814089567696118954866077513480175302797277782482843542461781579647945702054336359815503802310838546308823633736689069891481037753857500414808534554504462530656204876645344671851135129816313077037875349769284257964224555843792450883574442571879054615854942086091954460839903295167421416050744780156595936243304076881440261080251169930093604957940812433350471698995743041349993136498436235633407003638679371234399518578051352361063404814789881466716713202795044093444755063299168092318135009418291289337117990068374331251506065609940242518553788924562387688308573222038613515388834347857291690977472144793186572749945089338252932597021811218513485941385602719399500302788638029903944041927254534407702629850366995454827664753945271885658080867777378254895170391373403143048854151894099283058018917082454746867863180197911927214906130556408092263034528814528520770617291910209994090783132861857077550164041630754917837172023492118015029014026861305363863457905383698025489591625922153061101647031002485144892489128186845221390726059631697897583995481682209243537031957511696689271891013478658563240674106267027851467485505243056766498160116738327023448360707429207296619796754274277206034231484201527669145678055147405948535028258077610891669025275992194112229243038718378172749448703761082881921537386604836802996749760671085480427598996363780633209813840769662348313519770118059036752851224163382064605068071848498482636864744487993360363906274803640379948150400996453480544078595450864005134510630626024155090227936330147179436570497781835705172510062982881381555274951328660947281825235447258319002701943682611536798795725734481262923390465988898413923149549353383284335347844490763271485340170993155422467904405449517144294106713594257647318019071758894269093272282456904101764145871882471488855657895006736823030239327385794473635068985141630917351048156371419666288658723536462715128910127072903466487601091229823830373459095021675822126183359635030467866877333148801937746668311715563923292713662283191894304345574381736015906230598401441370545105663671606074515383177096005380653894881476938156296758217762899485510059654497479873909256253453917260864630853818521740515370483959026967701047922603261289607247532030992110776945052499902258300194936566429636348931698641869149244070313626801079989565062757464519163437911311807778506946162623443666827150388360156094719841029647281981929997257903752851328449380028567249812398616777412096612680606045415787424201500204679774102065934382790789637100590340241874766504036943045954514941962130651100403417244663132172956322339119116642629356366947140505129854066309427642763646223377916580135871473942553303615579792399320999562095650232158057108459125194531172173994248738517479303214585590036369418660066401698131887423566585370237155628966353199671894562466172110051897052548810628697291777134120449702587177507743710088257112484067178395727549437974618953250016412755873200516396730115065316309294468910491506081149780701860570994052235750534888211152674308168915775291053394001063018720058796875551904732424689147298352420685544315454405404941744612315644722872977079359074048791497886099191055414493075917643243600013930802029311674423058581562361074309645856924495407554250664418249051857787803175463596588601148682485835569105059668707226230903974251866542048280977833213494164094181808514133863500894832315025519322431187910780088020263800942934416984054185737400623218059444002030353067758192454877985722260504068098525569925009076479056998526040910927312122351615831799504248997104361656977481502640924475469782695094910786044454459069104913006640610168534153621768673255329762456895178635238951146157515639628646402644365012590767543609815423960979376491748720166760607646842755086760637695425238870440573222978200311457972887168716978521357224441202661087668258265695564630945642570112116450056586534968694135919651284819748969931890415113903630395602499137971709742546071357606056756194234194913760947343516016089132801844179222657814906392429519841996463943080352517900869469711137442337387746907176690561239032433021805462686021256841753946575654717569127278440255224909132617563288874678486776320641734910554483174951612103200026526656815858718072921900272375277920415788090517127682708043103849624873268842121216856574354426540249065134997628563816630416245612553095289112877255201077099699251304928891013670004599001457756987594657708587938878851823457999167557706503990352600164485419229533786850386733738953348983524731845641649598385926721168088115268134570354900435449065637791930521449985603096008766086916439350783152418603609343337692048923036151370165037283256345534260384922949377044941980679999300239844853603640534786292282800141876403432546589032541173578726665618052780118262824509379277381967060653884029012234220658745928582945439452062455271147273756027628641270155485746383756434807379787579695656995302960174837966528131616333844397138418477009810517462763501028626065949216171051156741495287015979468511515263723936235356357342749682373552905970801558580420992308985429375042315556546742985051920043176398584051401767783995835809025812039138490260316013682526316941287248875964547269468548907951363408791384177314788911562666302535199309681355706211726888693592815737022291363601591539318651416602364764512497604377824008800609975895298520876411501104733845041039926922583806435944434694214016110714009180302155892669943965725145316939411845767776657117218688472225738665849544936466666461034054979293790297707623813148178244151666912951699216753566479021947446442063131948304505622984001840723305446077187075320442801241874186546860237922888801529784714586410929510829987642030991806208645970550511547777494694245632048391577407223852877704383660509844106656061909514287711468068885683020206817422234523013605421710362175271510490787285624352286209153443401463410616790011747184912980469747927040390077490473713005129744652740438016568016831595413146959989969245049565416651513360790155922956381907593473563038658997929496059446540672888470288317375125952589510251546218499496747504852813371584072115718099938977397927847272817502231672909171867991614012288253940061063488697442737056731423739386309227742802510964990414708717020667491509969877103621875904699763362458450336391156752473892593423608049162008177732368294280714464319181965628443057831960112747201026902839355641164823016084132237901338985195269590774242261936721112739527856644694006254215797469361835706592195497548431336841187073458358150455839377182953648840634181427702335566825703539655633154269185214369422683105295833723704869970561777357892997689744790345009854606552382684108824766863722106555490386639392130472332013654875476572070095902625909227155565527592452594179690150494570964313027464252509933564466573398497369026344216259430614548829154082722610522374974344579282327012818667108370483734125251224551877807481145584071717835291772692375645716912721428057187415747716230562490806476116882837443453177485509026004113955921770034609655566693489780631024272327239172529667501863200398907949101682661270892725341424758508511578188918199477741678395700447016012979300944927307630350500464906823734326744884701935975264048301157741691364599841808334229787796924858629284205256615576622039267527746284228439388528217853074401940086259841024822063018504606873205032484723625306294863181112383458717677854593558544014950661908448649343794150137003623698522222272319395058612955647188281158143445930089855613068648040262481998884228212719599181999906920155221358929954210032157294479319269554253066079543295991410509234050847853192067815955110623685525403487475653029245476130754259793638723904239345769758530028381632214307936898085953227147853781532063313974037099376633204073480969598824883318955922054192751538081482280342776249255462734795962767426954370092347685929540083924022850409745785066427623734982360692854297302977506762355033594109339758681623598271567464152409330682525821850922196178061190181747373963488812105415109431345831923383774754347434713692638319334451104539850008242772008519059763501866925034208683649492311724400913661313140047426648398961342078144912647803226966066572414056131667341264982866654324854618707239471945688264843717661102547367750772889295577047919911125745863589717387183919129905967265644190808292391363383660992950263998338958903781090000450732520470191607087521760413293143775267425376505315594187430238681905092460513947480103248660759990014417323238800243220542135305146918045069471752444583459636405377026012102337282469974492846376931756600265806615187580655631987465569850695164812277140264584110567636193535053601725116365952701910179753111626540355055392662980070149752414555069214278046776593302693857622849120674237884549721326715389554569094733011905329113118798042908115941762617305741374727928622092699414123996644563602123000027458022038521853161303590857628033047451700101690660848467105082388296094396402561846283544451302650752811746379777620435066998926553544912956089125734744614086226734315306084092664847244875036133822220997408198493972209770960903343964338767074700115558631183991145722524417805675401607655434829416150197208522192222664555056806407385580188992906548196006655705717281728674590955943216106516961162257755142719125168546703847846234950621005078894286529546298137989016341395282927705676933518274495323435252118404546008937378561398376441787665140516416098402036565062810988176391800877463312981661266333577099230192480464460532834481314512987981360065129356766235556909559979646795776169927098172421625102664653910284397824512836401707595470107367756660922505073519330755330940847824956198004321012547093520712842843112132931307490104056770661629442712505128022972982291716575969453393957498202910845281594045081538936395008707077526979630065614067257911927139950162992065426226055848301109725019038042455287553753844244903702073817488039606882318152866809553124529746670254079555618296621727686695890401174571992597912653470443363307516053104289577779343169022562566912078141443177739019082456938714705922580632749145899722786511975090435383359093588498225148857649976538618601980517983753696027122996017781563786859907592191258989497437512199652320891927504880875510426543617760183074133681846772501572802191688331287316337702407425404000559358108907748290818958231095586411757203133068646554361318583436069371806842074306136229044086381833238145235339406024059052638520666918111283783935263415274508744647895748149226114419030327808568705991892127850449192161899854515137201406588232891080836525536265748867360155873596751085208249501403442549206338824282716246820714459111374983568200456850711531454566099445745583564698328563750572267607248122410600447720429464801845728820010679284804381782772041779640804219560201004865390995022407153516275476079536551029224094823073601161900037426822227669904847772648255258344164575402337878865928241593745145670833298627710622227280458503520190010993694349640616844059985654256259205004987820001645007629459557663511207123880670545499905192190224187839448324043868484333117862034009166137235221949316188313763063268578474615916896113809558910108811646701898566878485255548737721534735277572931274504864354172189824676645621738840592778810924338798505408465078493266571932927976934895731911665034249756290240382417083631735278779715711207788406101527541790807053655896470670048612455479245153351227901826310097884134306509073382042485442334058038237480447777881799599626508784275657803807365481652485382189036588694622428137571303985037216030959673264998950616759782256844250606837324657243918770193879579548201128587073208425930280115525537817236353696856348835640268875876025933488837426035804087243080798562018847393934359555598506347013600514716156759291840515425111680324227585298333830104767837383693326066100887504889101990907911812510759684555596168996944545038763687903685294384099794417188032135272164832612100223446419861897476533445456030610074562704576842063059106090567320310834555201327580580195373063746779805402925861644922626007994533219157711558043575190970567479999471208352669196817421542107311704534308987278450562264709836370234000934976159206570046335399793049448379992294819168826071465081801692420056765051780448931290127072128216214531972416745112865886779339523904734881549353880220651097626187400078072603463177512407962699766387348072789165360571003285716346963560533805009901442612530222036676492048836073351321457271460967696632479573032397870604567346603968262760740157669617625350716052687560132308276874764747515557997814272340978505099939775320551006379938289386658934573846025241499882249597608486466121656066129210230499924109631798038531754144535227411392111225459174881079798771254292288671896698847567096232954927779893966101131669222294676857274948067567177049961510777378888919796106568945409986956160433508454562017145272244134930051182489412260577425251515821729622876846437489243386515909346803724375533428990370267524437539508156627201365190847798796553541928415031558263599664924740784240427393081667168476065916062174565351877951440179044667704432142554929108938231130733465669757675976759591913386471212002672939815704298459777416399015111553710217123537363639639648217675747591570916480279616533156898271040237949323262824739270944458223253187945613765158265114015942149392075687275646945367334090233725158319984629358894779453004587212283250393233615738178439435260753766837249201942059112087910149465335168240965993718144956417034653486063368138970668515855039603719589534422635062955505410335574207191649330398651457128611556619453936992453843270703273655499740548884547722792184045023977722093491207786062602747858894047034649532711027804352154505560349841986227230858993717667442112905644121608875879716308310937271160367378802212482275151000419643763809324794447497093587713036340080234184344666603427695273625542712489999137035945067988855513238030103736621967074546934396175006377540882048306852133364089106564853533194095326190414752937119801962842354682418353818776832024232220020114608156291870106253992343645350622366242123566278748114072233649970181264456265625202858749330245296889020870178438214125230217398400345564718261836852718984008544828901096091015609119037250353968421346610503994231021046422234299385496178021377024535176329297149231460957507341451266858100923711014268300246049630223745625335968152193336787766673770694370319571968311607262787862104838818957605793013920404589639598042783120344267618899826629096854554015139317728563386887648725744474362304919017582146367244284806858151793136219978277984604045278761141389406641146126280591041606815350931455386060192433923409066538450058912500886138479867815724040174342907202779951172513066420563228084773276813325237943115974749534054689330758434912615552770541135512016541921590381860161588881124155852567645365922369602518083902928754944051845903915223766241370446897004269818777645144238596383472297536570784421452399444880253054374893855451660641056186413055163001031618084767906771111048501955976940841852688064818932336856494309702791546093889598795027406110422967460801891589980234027062585070336507491975304396535846582849912914506718249053342047073336215378159283865363563524483120315557977205048046241915214503329980821567694424026167617409180753459272938670150540732226152211136665757995889790271091976613724266311941344074023860764070838354295891874141208398649220887757921494989910968012055749454717863011063209503022157281896443660343751724168359875873218148586899897156462603339807455022229707479683944035250473215013443511151399772413048901221764198437740368271144096777232565776018043199218248005459826779300809679653587915595392736799878240891878910300155363107976136973195061372828108224584599411006451336353288685347251270669746086708460809849658934452112191145241154572499466671023437065487491673817584997438779065400110706685830600751961132657288360900149665157514733327570643651642918382139865514299941481279720312460476514547621857950964020796780441114279374058396885050110623138589524012398413162074492742395322209548061767910485341953653410500879097848075634315761147287483817490068314260236057424194418617283986640522759203079807463344872060691854631624757217958535326722022061068337658526600310892885559527221628123776149496100139848578143125027815196896534427335568804567572413566885331622026799415555304113709376605396441525367121656094168185935627568146735936817738844446161933117089712707783339937800019107341583641736260057934435500483991924523155509431056818398092695741470968011178260504682774385444000620602798855779952163617001990230961708388710175130860800652066683037942607596507439314941646411741544097622195402079264823059111417623969568821440140087669332762010591301139484878802681795586335974273914500858970233984248601693392866621871420556597720519130051467690737161627389572588069213504753302425734329631705973562702716746095199851385711001197817177628845023307955256238893974370137959345173103163063187469811674274263167534636281367266573470372355117971646002454432991433925497224812547309114975871152551242302160138188178646859413507480674168465470834943829146499360328181705998899386594441752748727303323835726166241199180831585967181754290586881656839076535728473218676388056234872215380806352126586483945631922247014551085967503317871350223925981808300928076923978563014762620401600516999854890159367734294187519560222833906776014417179582869692462936561316655166203158764574237254685615151443388939297177982528772249613909478476452559026407899591636622558236920019983885204513858440663036465115364270836055563689629768306896888809574820079296641965665026296408031164444249443427499513617779416791124931726189990172771008426808923824533936424427615688426613747880661523992904763644773627927020023478107897291009835410204592447024881694621361079162120898117117705146997681219923599914902696877906722857423248688197216360110171055524389253334493847533838505658792874179514851053115897154850954361962555736950007205017075402828006777986473177689064382083017751523001921146853064024342307568400804759362880353325121394645165597339267895657566620832021330024580400907120105402817278221296438526110464727525771373936849714738185861700412242230081028716156890577806104196526735363704168559340853430910211923020935063251149327983970851520486825953816675902486898213519093937880459052632386141399486688431274466726004065023958285169048727236762578235725152949258679822255004410765421612145631961883673818724232438404815434444506800402608637597273690073454061991796224506238476695984987702055013715896316059893981185015829222915910512865061273319916862090476682429789809060744745628069206913379087578004563289597101141111637545102373091997585562106628452629820472515299491896445353574348752454372847402341217911084459785099634639148053944651113148429218289602770180024289161196185804953215730419715409485874998602658284666961165763855091314824395829258048044419498160281899659921455459553764829591230003449176139762485369333364639878956486054752228696822238182004185934660738100992987415232537205855404118170150971009497787559190796427733497521846186804660207926283413239309898705409870720077615044414324821381730819930373356597711321298157959419124398875565719980658952920207831078765100507209924618414858184641289543012494679125757020412163995977361163327941583171797912531418790772385446145978119671824540074312642217836114357908155034716634460444396521343399502920317529080264149665321721815261132798749869949458209340158297760528308697213152048332285127210830287907668345198972674975372747413944035541106057582362937339975877595977126715405919417422121830825486155805705067216188566179854476379382011596640079424256039330526006397753181829479970011163542055455615303344168832939623220717337249379679240507138343327644594455991418143480979537677409926828572206931815674596454879870811940448571564346087310775613397016131103206914481376357883923541924202355237055667216624961322421878749160969121309781313778781280040138041462587162662159109999911940838468131732216019266231731201744851771227027792936985617080689258261720433081770476006419425884377659737563058831836457165532187647079457201532262322478347887622076772947110149986093807874089404357811688961893753827073979490420012488097945585913488445443434932014876722330178918841893504712561563286003279797234181815772725726326699481695418332733571336612330134818544590977217075326536584695123901155213845313995890412695612794721047181057767397406447945562008738168252112573450084733589993427635122429443289949010396013348314844047120679668933772155938824925163651482893149084750707979300073523189187496227016835452610160721680740313716182253403234503200665454177225742083616092325455987293972658992563429736906169201717153742319208410299819435739427402664603559089477258305014910290708903647014790282494399140210332962760391277900932145085840940857509944211481929427351026157081904631179598318934567622094986616312436815527054289957907242572644464916243309068142685650744886221348778829314678282325324159289461933512466634203073926096981827363644627494814592898544759307799151764969939764828367853346672051019089366541111397098066421916895508355704469829308707970994571722384022006460511859950732962552816373616498046971742176242230433888818233313117100716435871688175097981143198009564051208364392583729587917617036468166241218620970553158280306269925707278563782758002404025797479855774452050766522054737652508047795534747287686263012362122876188478664902906248030778965381520908019330657781731296640443417692113176151328193934076734452815180863506127276966964291087359145456876340640585447465707749519848797175002483393564712249617768750770391716855448989974348020177754460527102428604037300863093736244700790943497193410941991408141149742165974812382981865081336361352826318018126139797966964085810746241143107399445855733602941111336412848327561158086018857967000693149793271149804979225926392518805370826578877006741250001719196587785566235813215196057208201002113629133197819345440528328292350417060896944533705032189152780221745028775776315836660356982028178829697609397034338702651132333032340942185518235514619156991069008828396778595728503868040313397678780041084840590796007848543737058192221053830691752119679881416849482923611305364303131915437450296284819333968760285890822899502470339821696495157819822790129022601328948385459838563529461538471761206902356909850107964848027866222786261359337079657986173455866861264404960390300912298618186617196571156399764197052792804430733856527375329944654801256218333501132550719490722616863196963650637040508615161107590379169638063284668142139514465278733301015786641232624150640938686445768014885114613862143208897195435270706047787652781330097645234675417391008587553198074485470812807524238221393582573148254291412257211031108627974755462680873003258168911636068088266840919489773052619007388461131967260622162502792692135028371178393174021906320561332966968799936394497356062995835368840764044284444037402831794310424136556063176849557018175793579203742401692841131842347419408327141593174423863376979836452228238128074453987208462238940095354517857341846475490132002516905468335817692853483973175860302663569163924151396994898514656229873640528474454529587663526447377949925194491431615713508146891692685713825532907964784267933662585655121186495190377850995009634144409030485997634494958558271218317772776604981009572020408994689803440051843025742255232264721717190614688017250976653993764289899891206729863808812480008783915210504320399028728000844213232653595494115312074538958641372110576916245549918666459043481049123223726733709800011366331851176446721235266652146365371818318793441108179328704852994921300010330551704760941773367058795701152484431209196647715818257912458817665395279018745310383823528614841043640476901565895450723290314165769214884851902858210037829159488917184001537195454951292313718798663838249707942751053495210885099127091153126018465556717950948322036763879334823474982481048530932504593631133028019466374321512615269505440586645179905395560346980422002462532168161728734483164868563405504319743951839982565632365324183608311387786191408936230434228121221233563540949923040908422500930287503184385910254486637756311892735554511673582798914100948975669717893589961138880123979692751646252549420993017531517118285355562166402883534678869576526700064618593666386478089255809282738474853940750845982320403814393416976665981587442309994698703612839836601516472161218492554154993895018045357257606683288381855995716487923131249237857185658926048795571896330580090141553478055675684464526876619601549539609086248890985724368493976764537695797586505863342275183543054027985242259733443600235788317068608120382927094225646854194657375217895074564266599786370367526938177480087772298994535848041161265127017740428509373332551692944124926631075750175845427199005873489781952489803370859362267669146350156257793877708107368909457689167561144454987173349344681480370868829873816663766180646724520865695024944144179932032954401149155793553160294788356994231375934919325856391130307491735571881164020972642208863014086871130926431655941589696898841057737767913857537968573310732605006136264871975801856816768220526960262377355825201621671340497808836045397546075377627901906039316925272633316894263399757873862848204079069931056573799201911624932278944675253206283788413568590003900410054450014602671255988856451299730603687121511526356161885383718668951673118391091214527745798892982099291587265228535879308368892116009498873692976699026651681996542207165035213128369316095393869394932121427953143106484442071715745117595755138787548833418044894424537941464985051854932004949128342353960442038557869457068365684383704692287763753303254102708230934597856620869486323354687416914929126660087038637199772232046417404837421733543331795622740816228568467321160423767554894718724759652863681963734244701232618426031838325341848753966041186415042708480553960177095398241497091070868296329112221034971909687691690347684611860190569925089613530647045639040100953902809086269460481750293209755912064584755888649075197182686132206218567765427195331550086418882122287358501530707713170141276383536588503509361793064042556498929907199656409214857394020701656884838180530642875376047909664763618260761466885665998201412208468950697687674431608801569220687711549267063924318146315951894195010695677819845469240723806687321243244407785683676818750260927231451640030056389478002929784470938512904668232521689494375548150263171806341014637774593526205203087296682943774126568189446589366544772948197980978587249130872794795829182476081368908060130128187195027497479745805623738088704638892454407973527554162182632657727644665346571276736226179193185816142199038954391334278168607569204970837417026793924743429886353971981075407405793129366195491574082106239499145205976365454094264786324011796759368150500084439599167399046532681675882137984029178162310668153743640250106428776662284624868761581901963323647751996883933356706818408109292723501091875270762281649028953631219292343612452473588691195123669371235325680173900978056531848226347273001131151965217005856617012520861730393580940381857173396482798383411456792787283649400083505140770358557983306781714353072855355797398952946173814964738276825819848974237062395872917001863364642856447890681844278180098917067552268072282227980937184500072764774322090692276494830584567879617088659531386137312426901940234656055288735059541415854690639654495541377159717599624658065390894824899629960622701251270222871519418140477911817690733004170420552789931180266818608875791564570871663804626503768816587702943882386208128948184582392860802135075076465592441828206487501313849171676903970274510737461324428632215556166431856803921022311965931394610550429880418274494165999007433421981502469738298691927852792885846634281083834994192118073534196650630707114498901772645223776586115358306433629808612661329018053794402919311126325157018717408784254647428429583316639781825465051463444017723570541250484118728349742263907792882093378107367216820084267490929636185281290133022456791373535247982334881702084917846847602689678374543394350650538349892860591415193044860174751093084844328982939891539309289710278356387835366326393096245776113412820466750599690352462996946457924410783201143576901962021551012356408821525336047225729987268070852191351572453091791419602906434775122690408482889713317440243018398093838122171464453880249638359255282270779605541407140108042900259417106371003987798355808427224623679274219597219594061965206880076154641341432270158364264214693255454455423072248639910465164482856026041086351894381353825374334093314722577267178298257679601148089360757572302497139739312018409693881257436770814132855314173672417840134599366406109135128159119865190178604885244000109846229689081544778349277624027597217058853786189201640799120425907063327423622749151761974579715820681045503689669370848307905396212473782196545969686308827946851750050208609635785938106596581402081189612279793074464126345599450905090348065192000989258878789090895599293703046787321120364835354802064056175333098348035371674602792421465583374575503345319902049925632481557974215466847724261351584095967007692196280803664017050309606547569610528510353136130134596397667736671518513699223383285668865837820197840761073798583766582457701762383876608467800070800157936788191485502539899434020339381664588958399719867194010359491381256831949246595535955197301385337310607415821167116509212309293875111018327610702988530797243709275200191272750132692869316179980989481236923338935215433892470757909270547255940515635839761271158944974489182020693182358401639816666553198750328605529436311315646424352616015472735332671604302749857107282638846518584203888542891462394508247231687624231405788177639045089612432633895231230290194946735288376582711081683389563311045254401596494511171920995259743629691535394818792941610990614187403620483694966622064032120282075784816709160411358788644211380944840174057498692744159583989402126099234108155871137636691136633855900929079550512840618970367899153130853465142011294762081841242544882763452185261218689713980482563885768002934924221975383360928832191508565107936014286837885505183001470881565914775505298651313244457985249121615691820712072301718808263784933491136959108208384375252637033902940589512493935264441160494237097893881240028925377172710380690182658592953727804160809021145923841981598834102761039650342380068864424267935249623675530696083727496193730069442220376113769418578936983790585115164614200575976617998012775948503935286783328581947877874731181773739755518844625443299370454717834974477040061775727774309701082572287159405382625843117282491789088289943042777923953633733683865490356803618977884477929069953051865939172881198115653216637609969717299186459811420235235489204014399681786657911757483488232769482019098600920510710859803083405735012698835920736649165158171328882215033722917562110733268244146980078597701859679719960994506842473743699899283530814735522326455882639557624958808778814810917459959216545168459273359302757491427828237155103279699220981131788835549993343156143384354471632715811099560505972050204273483151453674132628006323121422859272275943992891514355549176378496592385356172205104729367836584593917628824024650326380267088621803355130475087858613363025239518938415848923443737867466528360212308637260940691580716214836273557166415554980546959880400143091234331924067701914074741419763396023704883224716485891002905269964246883665076540326637435675462206113727825180747252781337020077638035233254703330193807889388544262921752916385936060776987628113706462606923682689962917147835019094111610379111501773079569386599389752873329460568405494746623422175157992355911957674305733751603970960668293095872150012482134986379122193419590601312326916128838479046121203629297669280763535024951329446161495655602350532910901230557232246671196415874243644761320447361471208030528062039182649581136971042023926527148361175608738248215555326367731069283278542253858793307236451616420437631460619726461456022290611883294152377082547944892691873017276650610128883880233125020702476922809068658743588225204463908833479742961399866560339525500283943752269699820406525388281509090979606869564490268743388447905265892655208726162094576001215885962778738125162780509317297843875657586343854480902487462059112830262621542593708478561068139999839404831589637873438584008780820295831816207832713150567891166690322631841273738253498853013823677306514449741617495952171514463301611460863687157547771376343338506923172384090634804678121587250113219938004139872085467229570593161038494893063892435042120216094185843816880576619504195271273870791533858460130288693769051627610471517986350593431791439314494191235532302452949105360056408509524692120675812460671447096894147284975111724780137939979790189738271828848837399844124133143009022529840913749605481327076203918425848321231929511017298633375394604481445659505346247043495320394442306019625031764666913584702149619729628725499925788321056875847166828886054684877893007310929551209728285636275379705164320687031443130176502253350954254876907573084738380352103441552090881088423982432848295198291551201837521999479102064566481511750202098001735940515131360907281809443430739645558722927745946499110955097928431689703169518439651855638513142632479245059544142537761839804911359482434129733958836761891187484788331450299754271664461581694429803017414671565109700695266963136462630726554598000718702151345800426054509313766299639730826234789613399807445381264379861147144018372849842329870318482232819957126086819229892095152845915646707602599165349415515268885328204900803787235404179321484841635467378661575899717135902576082392770735524077023489189931555991798113536492030704128870222166169951844940919293092267991763739830924921776486479832814010571290467012663952611238726895204590763264597568009179567902562535368475880240730564437597014032603588256628806754655809569494973647925912952437748434167258968096234197042162164430411615658546654387690303174209793816715224419837819678265689486815410550080215068425044853018421685043326904538714822993078974560514926026988832186037945529227185665043443766497172940288853971634699094963627909248497505303537632197961720684934281937617430901027219748320601772242956055017058415979189017200844648831730235356006949783665993961916130618241661244024996006117419295145290767865346470081209091256573856086174098765817323325235915674626418195234277820830405092933451872060347102113835781762009787583135505135817074659187361012640818851800770866643801165678584031199651538713199680642288753162602075796485279388219966318708361595373861716482115797471473784858840919578444853359623148989145889276856250460339691400869754321105566839260678920691757577495293900725727193945359196323238866165946327619070966012851301628308539991898642162012122771748688778553064013400468221397095501652197893943293698118564856479452109671463417036298462599635455197545416369905256794884189324207711307330407850904778619598793455285512470402555348635902232751817930800043646462926981432913047089055153417881779315702398917262985816798986013768016854127963018936569493433013351180820244842310402068903978663683750425078880583018781876228479098758526448570090849417590112431333368887764522131782853026050377712366209670834335129083190756853007944489242477439924100867640885413005625063278984728532808256313253543389251941548869051773745415122558921836933913574574653049015298162590861259755542816419362306352488934527754289348466985499076990056507909937540174042685188584414077277549918851279336431019526286695925099552531549307048007888163684900190350977484753614160351090876985124321231165785409459746995063993920506391390305808720398631369838562939669693795885068536797447906810722879135803841185043457654980376735362029544171016376238364529021744661132202942462915780999746241207099664778661135198272848271681675787624293882301615680505529684219547041970917453202722525358513595028875287952291419044372605615866570398722034055399582742294379530002681153383387156107098215632154103752959938865850933692474059881148236094837153462773126482432185359307094525685971251868981430552528090818035079951280236461361633188723583749612799050670794994097793201289295730400519457015475476695101230179613259682850964734616393609733973505186130867127515006680586444247502349977303437128727326697199814898856734171295282946945716208721833938976275152123617212801225254854425013392564374965810947108229085011630061242933634217259780039403616051032846466514737249762624513564532173060066100342944763330810936082000489649686932914000806348139754049139800302841604930663152604488857406770943346597146977124759991977513834986410097770564204603240178941854345345422081535681620935473990069769483917777352921135729762005679181343129107542905769739695588824973775023689576011024891498210685237418294546633292588916825663255684416898060069671664071997908874081411344571151073451966561561554330254637533085683158552321260207360889421169215760587040107856842191716085618180586236131557112375807833015766242522073364233125830933109135818218037631099247518548725631259029765824239665080320856288646278225974766036020829214201598915982234144368806793938099550248287836130929255195216596748413062926514559537560719929743720852922622280713804131009418943352459105366130178835264060951546814192390741486969191306551974612245213120837892536329675912638809013146744023039327200231086879763272540303476811719670092053961518407311096463362471635974750207244452077268140848502176511944646291402191437929952786873921949713056605505307776879121844899117236484045277488670884648458101738239597730766832050345986068372387800303814428583813056246055333687773278117681010127714351213030987451837003905875564675419039806582942513729262971619118581776624915706455552992892952926636770305943830003658287226800498726343451640215316311768385182494665363895580646334496214786060973197096684333591940983113567575563423154426673215437650350572414384194461840912552202903802006616278621731039472895357060870817481664254073077780616372663654122582678820405515783096391083171342265312676882856237099140876621462097304994632002512374199277607054686772719131223929886923872289580375758965957690829246356178634783869230768722987114778056426145130605842278767474764736633022087994559070115107246768664780422304287996585215850916653916387010694141045816872493910527890133530345704891474039435056876238121260822599100111683740071660193478898055229035226556954724107511918196095299332168380125992394674958937700334734249488540132565287199011441008321865949751684608251148260213025238146974407324876563424515475247592512054773114327740461543438607323353388318882817257526051117046181569325666068013973454028850362788078997000312892069599809579946962460804763919331222512426094040560808542513542134936021672335333178476237329817851538039277242986833434682957184544490280555778227542866411326669578830264675537256896069881459563277190401822527936012921227325582588278071956443594473403430306532090677832830890981342470729072804195678484524146106472204668296832025433998280415061385853721340945841476428565787525980292926214993261193040769678382565702312914630413101091403716700763971146938826848956205821408951863825914480744101886955259111770359942950657467562258931672857515830149677910117185356824953076005460123054445012337383103661735980109362886347901242897181159880466119175582115995529387336449552554618025663457323870193181871837025086756075106058066010964379692282421087177746669799102991142440830038204468086397707336486247116809546299002465447228061286953842617136456887654116903444784637032458085286806945242671440009585206692747042754396944125938991086829340061617107626109744444983286988124903569063957216857901629442100857796627268200287874316467916877139640931431428366475436982484006193364349776397629055002874823003060020038872493887492861141448377510000274593381023555153439225246073082294405027866718870076278054401255578348617434795540649700503439104972936598215929903744037565568125419936629055882270580000549391993826818780150336119417179098100517650855519273756158875740312379332913623969522348519438566264240749744734929120481130078926481811784439912264222431090629552886042009738060961698877106794661222581420436968575031277365284709530407842359642754586053756983763467701016270966004327454232505785893141357511671823385074686184973406917719426385154165034793223144824619068233944899465903158312400764569722548267721095114098867570945016374903112176306383595323904908711178397809618127747002743772443249293802234721182455951072194502574581839424902053339541205769895584715529485313470642924426872466375638292892944065544418776859393621224149709211607943988118379849812391360257996168388565680752288905436654793589790905557313864648806719922354607240647096762580393080470545224459960564330262219802615753235149706574406118037898355030797654973898705353385127603348168393108795336028622885295729143041558919864496872827207413162039526115660506605722493633490002058788001059791752799746080034805672705941604747811581681417850317282211933332185100262155557629734325537330164228350986580034529626530856735465072840064413842826064578446260883635772181334379958935434489255992592046177360264073832306253750823665359238705609029712217245951110119149284535608725997789273229023544794131117206626620666709678783604180427273803606193340278756732672749658899875470675259276400442330215679297196187178352306925406072361046995577961008650141971699294669910330947553142794372310725881579304479536582315286471718786482886846708981597929154830952193108121025011404852547193517957608446883451981081225931590567597004747538757959525490215110824207792617537300365849336601688686246951894082391549029972026981402462957466066670193367904648635412038309123989314285888376028232142570737767838196663826112845489520505807469430820697417946090384139286426811206288300337393527736147426848150182037110565049259149704745849663364370520216657008560945208377915526733212135167594071529084269396582480623767179806133907247954359617917648177548719773404161020189069728665760548938308318304908355791749937910314478887480027208350352534420121820454109400063875551173766927367828286462536084984926009519337728687975144064791841509729293586387103773285666724534850165117583314581091890543466153872135402219289341768461180425190988395464315049361804879836648559164899506954434276637045311201177145977463535969130008718665803561733219059272758449049893300678864337482909368697662311120110478952863490396644829283963773023683941316115740348507328131066042071755611287648575128754567143913635577331636481847901905081407415428349055001007547409842436802525074460513883037670565588632972501073864906423803704014914119165696913900894227677382346995716035247540553869047684480122906957404405031080051590395464755426435191158066699339458863666997089306726268767715801007912235918834222322649789889910605619319180521126927377448055905460481547549613423335878949508695233631126461298976472572514285306921729708064606424425739623177681361075727609263646275205997234074035927698645249142743010907585056067441101605365529301310224733024897256041070378605147683860752298309919928278137207201773831318092914423295131816166972954726605006829201234549119946786561859065089491880647618178617476145295045158098949787123827936686538076558489282174530833056482894271309568730863118544163852080868928839296556594254762129665604483771246277038862947688898268300016043121613982331371169412267837790881265008286347202660188060568437177927226947461251009383578597957214024185877894211267424479306087790905785353745667132800395878664927046275341793492917122851159955025424421994725052981375417411186910582037583325145804695011019185843133032974427845002133186303820373155102300223362711319366202736239225180268469671557255998258285715466061209007196316574399530464780599905018667794139438767725931731629707775136744369482996529949247548221774667168239311329698931791056239529189247887043489461716296388133501272614749463274490521573983699303460811686808858057321624454836951187713677008738069030831465175430956028584345531335640982698483017651684208742137749449129887562105154631343970182506359166440625610670624921506853757923741466197618903663946943646489804897758296883619264339041276488773557096008015506242124824909449492608953288278536417143910165517412813005370882098962788813871404817534494314925689915318603873624387329213184008689597642840067876559164951439161059614778567887636453071197715412283432404695426134650084416482269063953328943444862795474885867565530952284905020016523585416867310486927668276613328164124530152793726081948423409842255124644403426818234969681770219062819087165576003584258791055761039469970723999234831818610872451282400563994278959000825142905127214003993963308592633824157743880497618379427928254370147093331743050060554378247805916207315875111919524706378284140334773036730266634446174343009906571176549292702024253326248323734083081124158186171209946342117350792107370373183896652610097880922727491466446492308503539621226557804435238945345988083275202696529948096170875144138586760099213888057040684922476162495750223864838074752564871773154107489961168400046012688701343943349290459654928926365902432690380309928365728296481138787679898577991128599584238203168063810202184118829944495967314750969321965013067263371870272622910276665753402834079523527863984048916253504394280944715913142328864115135377612261881628494427239418693858961508711468014192634732577656722555945665345889947466259722448810374968482434860448774881689916664011744896616424916345873222835693081634909609257208809164367224413596968851415981249306315235897652019317683657153828148045595191400380561426390725759112110875521152178342557961712080447586966293215974679266965011549328779800739722253645718127966395175270571629199376130047297574211480108921501313368571962490820205830399664403694608498574465684746195950049023405705387303553136079267867929057115830119578953578817164240359955537389306007769560973795526564936619140726080404453869213672950860057471345933708913480282664399129214456098856472387696938011675744594988398809503257811012481234147245181152789404512030359889668106086379900923378702956933144491994035596049839097833292517717007467377744110639014429324485366066776657333683751800720710033520452481717683085799848527477384663816229443821168980393665006226105892464756019962966291954157086010573316374262170452218706822336495192404009498935964541231558992015172811057835709511398278883718332033301422624582105007726968021569164495810488462803274779831415413301109258102874403772302212107275184411096364346414887786549504430874217826676054615850624888650884423918050364472273312226059677124314837011845631613534100403209098825676776752839172048978645486724872632075199674249558163211524342949171551163085118294382417954464121172568491290507416159384779942539742409849554185069940306962382237012110170601570337011710393225680956277625559577111124923475556034813281613168486638086054299416455644968681523656938816754619112819960156418069207642557152317814666943786534000767150074810639753055353629998219973652586705758411048263802523540020338900866856880024087523308639724747275785427079123141034504648793788332828733348163808991824717531503569872300230098968238183268574436506561520146418128474895245020619320254779948889793769682448278303643421581149089492980486511922415588612136241620283657095185490382391502441331956605438025931904041331229927013703788227532732517664666209135706996227737416822088249680951500723524835673024264080488757035393918611533848177979802808328044577621070034250910113337293379437826243222318912266478790132140906397942170525871255580349997724059893123331784101325541146775043621519115081407157276185072623639168951623738020289700680513353759924707369436052413942462832671054497475386886564946206702731513790537162218232123184465650298739518465276312817942610238757885572485089445440418810622405469398774532219626578662854419839010328081712974533192707158298574209613327883657952930915869943887452129423705711327276601008351521015752167338432705940707412095507687950656915602883828476533824583775318113200302334378268245944017516976767481792743788094456705547689798351043849582649722562561431211477724324843169964822989309854691028760822766444782964849006794379239944975257485499540760582717277595002756190202442677635827438257770912936596543160154906953938978349910552320580097162016126981598797432086470292170287012839807429750221080137954951566345503259267810386298206448367632625699993335073018790835963588904868536047556706867611661816936292054570815614461029765791626665969245644430705256047643976254236179389002958513328412868081237948245302133469452449083781450003369648935040755468140066807215419637519033726669927567488323744728427110244946967092109696651064021951836928674795349299771334770607029741296102810857053144964762754088173349821188648827677625259771065536208245103248106556963468864342336094610913373009643826003886117437771831061425860262726630188073052627899012350209990871634004846194154686070366315740767139207476043472181423527053477736954230414037032659572252631205803126834868862721597127741736713866735023390688022730229401845485335924678444221843141306368941448199502642276466633410181581598604116726620147978138810605612115847764158167198807798698494095799337600562534148109798256487077017643307438164073358278051942379508444443734782252297595424671989875141791502802531680950415032069070436955208270708722640306768054653891693044734938810974348837779910640229835506555219532133370254324447130234444744942175709280618459798071448307107736611369579441469766268468976728084125556941111521961784972718371091105396690730714008770764238582873457197369623404551896435543814784904159461359861314655471263609087245638832542473931886840563667502744731836208346444137039108508842782402995776465637380656751859407969154019457332648184942725729920685266872394058493328199231974439331970161147673143178991527621403959085825108452817289074511388590740117931867103269976433093761701187230178020723440078402239689352974120692412986595699063933967741354628789448076216811511067485750455653505182545921988696686290855906358488896982573055104730346002337932903155902077722054143831368348054686753582630763294975768591789949926082854415846259359327265402538486233923846598589786971037008035177290628940180643565730634756467929158211152101887601915676123577170015430739678934892050734063318934316462413607658887025478792452497689158586844655875842586689234994877441356908808490218204993966329555874703079774892054381177408721728400322599282204111262547203340348009656977795089956337875167737356517227585409366381860293160016248842871751528446754189996312005964895032917682310660716377485329151970548546150921606999830943718984318305346744474996731097567264454259197149727189511376561540603398116470547545084233410916524439616359987796773897184711451463176109085844029162232493736265505334880933741400472963647866764984084291163216525479858266127558111799071682740857395235938264693449960964635159142243940527199808510067352524631324691134813437174304251162272046769963949225520896117437627713860191851678270394909961068555981743316552733708688477879109099333165809683329766461082189815912301231468740476027980995493177574866572855061323658718248917078984200394627548924861958283184104831129491373178485250430255283162530654915610462549282273400312974206684373609215342832975008566821964566654773217089264257332604543586918834806939303445461939487426761266546807567254583817609304508547406216319759938832013146013930869265258129441278657565656084399546159452128309596511497009924263354660128935236474977086614972181575629464535442406637624740015955892182976980467681678712881813477759310609992070571377337037839454852862326044014185249175214894324017652371868601519155067552463044879523532800900156205806398668033080141070140790340556139739448573441573233943023916460171585598026628711553690375174233693059558154333251751726696096366366132189450359903343094447138977811368049988433252112600388785340411027718783828529583760353098137946014019600628585482838200048500883206538791836626894699733511802601091794411878751233291842483387847441338909379787879891546073298453769335749292705847418995316775458156306725686988976541007143069841586762483966296394778943699936525660607737976897569972507266587952486861554772972302452674800873561327022077564837187323619841310095301273150650795498103864097346583412141696088763775286450452952879074097362015927191137974289778060231027245520747115235389605160092623723034800299956260740137464145253613752287813091317606944152062739765702848216366209247278711064108316648582482740613565915931984996577938234776685464411193452995605826378370404378758779730863257296574136998322788871107217891850157401971593190150892936453936429645611809785017709186907557110670291070844729400707232336485010122757604115668351359568129067431672186174638175887546704809718057914363418337427832008433804783339857385692079449096461119825567925188390278068938348006765174891439730663104112345439343634601612386219583055289779181468868792591710994575660770498395768188631107039909254967880578118583127972266828311435936591979235788765105363489032480123815793720232285925050604833543673613615313413407396186115638042078915934127631282590730871073551836933610561917798786925857863757783537668239657887446123638981901690532100588902640589419392757894894738907430743411227566771114102350751737451174824636446263935033529377024311475856736410027325971766009452706173871617938668433891168376102748777359843674705749193636186320049692817527720858579269074472833345630584749337299466058201122353622295423617275489971563758398049485090862095857858521478577160564565574690032014101425559906389914648873258485300891232876289405497333797842063315082603230698847018447447801724892057636834238567943397566913649325993695141444427980752600762615136162218636309092525292485595213069035518992753523091890712222642473498180780622574423033580924681979614251848651446590033969723282393776449907414770569531982486256479246396897449619899354341406881285037585712480531586717790294424667243831771328675055520943941037297325221496726842123257778881347073807794251447494931931938555741498274167828406129384515768078120574621256579539040043613216975830476011917828215507592317887869415179142165796141932657708627632140367804948094878689825510959890719018123440161604186857332482662368756860452058805462992425861467937880017935038447808270092342878590547275844436308314840322385262432020694921797399361394814335911063741533102670491846652200519371297829600963510982667023574252541717292939993453360959663363412937252928205120836016878863099559688928363083464875729547915227910035420280403281589893820101631192278436241790978286696224455467078684979320836141087253852475576694648395722792207829022961303545293888676019654752669077009612858733688881775382105150961850913933321084641607935227303929913281058104915836720265459461537316867376776472654560486615489493118097556713197523802350773554319273152079026786511309901031672737852229538111906003319370975205451149364265471871179721584731136901977649894381479683379120135302761111309916906538520663689471962953879438947966831628835447119793946701084122230601341622602053010563762378804580013494020131112632490739179344514209950391922033794765983687650201965253480776462975152885706025941297573954335316407212436610757332805262889959583936345501805145566008543776511751797211045715869283088446336894810936849466146203823380461102918890360305588270730302929376227813459933844881609216910902298465514354174797058585534125363812765444548799436934096893574246131424747511935220147954523931094568483506697035531230324027250087960297336023794556360806743787828520469382013806939231665515894754719144733663977290693676163126101233501039794546652132055433294714766591925958124543494333739317405009173263400060302280839794511865366298717774509504632803529507238905329440184630500367646912529691119605517300457426820065329521195992389652971081609720127286425867034783073807870866699884020018335648021046714891681184807530466904254171126127805236374286294489319559937157730754895218060773257446882023578198246490356223462551375038835917874331395628866284999672458615324655742902215327911734284128018437138887921034622421108160222382987360405920654867123206416343678751740016843854947534456030510833944670951234873326711509248474059622550652303366735852239169446395766677948143134927303579495032776281885682232951785403184667920684938786913441582972502395756304057794859807717439892949612810321524914707061921530715912223401235700364453727135804542544980538373865152440940433116847128705414154809431189825498960191361105846175314610054262017637273110547460617362264271278651025572564676026992780241199504779604112975867031746039012205814788413785715596437763221189128650135411841212618697215132395162053976571863512017768161876487107735214790195504275536394598943956855487757950988138374132572098100115888496804025735474518627304065369151785463053499728624749258901606222169728250720831118179754049250316777193276969763259990395387432785410468951293090511672094401695949130430892083787801445468916784455671700206225529148616359262505477948457704268079799938443454499477640590865274013131999030343893276616462473149518009562813255133545343733982504475608868872545263948544551021685586886227096449359457811880990977526194076318628187334378865654262728109303076930935077297906477397351682984457354426459092595224441676523505711719942461812790381335342138581493783545393377956977374663188502283548284550037963045865547019986396361989898431898599624876405181441184390482490775889546459723444037865269898799877316189268796767280523699158103347804807206336879940827298781609100337807618441259908576707721762428313625045405878791389932677536951211603609969865776593349774988656277134179186612035307823690223947472223615016815232508934136956790081553249403829657248181716968971565687863785858951457859849714796537082602584142476255160180585091592292877973194877187119781336899981980641470950003609694443219821208694973532692525243049817976677059133544736129951368024465163281998869166110994561161223805984633087982291733096624904551214895384617701114612715907109357662797368450915610767672074838148510994959412161360974176506824259295377298902511746116973485710834094326138761502359246010060624689686652764547592529382405038048048241235821892877728304143494224317407001990598354854846211552897781807972572614612508917102497148383595864130285591364728557734872122192367670723223589269356701081671101759444338650263664060770644038303920200993424858541797904551883397342016339385732793142285550911223981260195348588846139261279873905251152250027848234451501223790308488132694923180278525809679105231613746616548578720758049691554285135338721091242121446543132908445911004041758003007948297962951689068249899433386355120082974236008291335435849960062280805607215704710338262770432973860855998739378709032637558996070124174734670631671063048137229737065007847421499637751759454886680398847815848874821139594904101369055444164927797735590370090551456547467245201881334130248535568541547880480168246835817280222096302902196110876614129189111891747625348467536772800251195020666576973215293414493296775382147722787700120073448614744773059432080047365625950529650427033566050989092675491202907124495616636006978133925068863516870352969528256533699330157911871831383768837980316347601687172972252765415924864741937620922635816272576977760605155815250467421059495569088006534227234470880488201695392613960780291537583161549174232561976270511253864836364480108493523586704112695452385142121003536564666214588983091013045798966292476623738193323000943419925046884117870982115979285890550114546686264657721049954222657622797359079992991160620719008906897979887209966958763510621660898182188066806554957377672484384856394394442317789453628565335385173631307827833622581829675028435984801587269212321234688969725303794999447285804967569581707616534716897195600822678736288569333283127886133300161221461185051774488584967493144892734833299906949346319970232880103746901855554042147734419549375306279691060131816839949532688364395739868463393268290625914011691222685574028201545755035722903177366228342991927357254413099924699915530703855374101463047557331660495049036884606308568980276470475449698332724416729752231550315080506467087273822372451679597568411324314762405196282545404276586189087018073056549294070778670184106114382842873125089533877839935415526529883245199041920913490966942967581426115849644360516910427993803575439254415838509432909021895509291945642081023372533188809362989623042707639542418463415907109044892700849484226519600962749803466008993204937278106892132959268031232920011117394847063401747578139255208570772162252091081944693906170021515860945253302554772865765728735331457420325607302967317571216410365157864995878355657965961913089285211050883388303087936600043351519297868804203414168648228369193821445554525636622260311006026046468145105359650137853998077717513665726235378929650888378851814206944259911118272244512153697682674910759326428725846623748242788050142566631827417166042048849284231857569174185722306109942702121493041708411231126649978243974605882064544818699837962156569437714828619132929661524491352687247982868929908671613237060432140967211985508845704597085038857104392085902238859224113880219773934696336922563694309511562288363451693200160020564082476314007003179008991523729798312557141419432214927436051740984398477472872321211721450128415658463502997471752328786303747013138829303213879047595845752360105875143543113409992623521840075013868990340987290785283534056878083129017282228791554657518908821548443741947125409859660368663836135115069122504953379340378094233770898514824694166845287619914711772008262307410460097871788410147276466368762095851392838328883687497999613799748719223850931499523986069464180424524877249792572420037192252338354244125733079077207564946605605916263156181658382100094692885950099434697871841087741417528474892818751951753770906139056823393336911542283450052689770188404868810001691764895222141258603162251320037313041418784143552487696382265175866442474888101430876036675070221171142015362773990365278020165046026140653219693891080339756704743934024076599775239271852720782751930784297458542187279605931317867532417119914648833845920524840800294976593991527416896106454538076917259074091859140476474526095559834750733370962483009191598638854417825000579172265190739135997180265331993165938942175853575190087492319172194799377554848850000448502202295675639280291690694675879914828646481307699947822782584378768210457786060909575273146189883603118159060141109772932015086089811936110871366813699642140126285622106894391997024940059947941350661755566991991187960177678149639923859942006833806993802387635485508160410182262288840753658887593029630744038639949967545335239002185307485647124516058159506483688436443659183363875102503036581166369723839137648777937826432493222630369433966315585883644602239935421327111089427530426781903502432343993709748826545645905074183756182980572886899037837433164834596879622379320839877044205499389760524830746225647405334123321897650552601784841070126422676915229964969877384271175512970683787772612634743899261705533725709845490588076784402966829755169404825923313924076684014894090176652181199935031628419139495835716393617090377667100743613548582121751400894147408265610106388140002850247966203817823681088122506723386452537157400936651105138585387167193917284696011354022014266857023623118614781989940481056776568439210555814586784875180427210880566408200494396300674138073262849519045528622925527907033123204061579717128492953974716340435373831979520552215902041801022674073680485165370799154574428539000145858582041469701978751977514988095539032972418687712129405840319152446102707304563628659404310714795500975071780983448111833970824872801026740882497507472745674710775986990664654326646866298006303353638872653454742747696975449898551287777550998343654715669708898808273163695073182276823840393799530743470209120184742077198067131100396966385006669206625610215173000692749241947334896747078228575631881658083023737943178936870050857580577853190569208126699753172084762497239199072174738402724647509635314247872215499652129082486714126170543378002404136282550109770353547428515590187209987487232129294874692869281076388626213297256693168698369681165245712113135592981056141987014770822037470812809467443800523855015078746727956294519653457126089981509995124373953799761691902001977642216682253890448752956613544375589408256068122493895873641810296543293891211738944771879309025189313790862613524754769037247331461585505096007638894619277618373442017959659545225076481582039211843139276583170052795386530714709920608166853909219787883930487613034816752415789107047629114340954208806156992090513495169093894301927361315250653523114802012057548076940212507600148558154013679616593877035562610625168524504489859499187635271832218022456046221245233227977413806849597737856798002255502946767140915317942427416143594060837489113111746203003106833285772755366357163809671516332037134432081874224161843536954380898528742171145171663526262719689431987682215764440528820154654413841355783694082649298190614807077826307778355468890731480410567289735207622117587278648862949834602672410484832977673139205899811281399084895993673028382627112141417932395336218176067147542893625858301531299863145990813243216654538609981464016173256273667189906611411014425249393934379215624539080913901556599970235514446610746176182382650341328718620337753964034222731912413114737669850545816835520800697056844252668640551689993184559615563706765634290880828501745652263752248116448175057601084053973124848942539567138657431794658118639394337432389599803027297990108423608899452279631072093202558606434403055900665526351026394691493791733415185642117542992381240367481456122168682585641511505318399823600364733061925070330330594629837302475589764509466035178265521565991120005535903227717233302755770399228814897602383401581058370515451149891062331032285087588667165239731039318829687577690964817825071946081213178164801481124366618122726558580254021294269392411564356454581364887765366127248909890585652031841268395807906032113406586896788649587398481805291212103881461431312298159959817472020296540214188479637152538773935765359345570102843549429736836622283399132685221081374551514028687316184308219681587549082555177275628725509003411776270153021290449311193371043047947292159846801859817096749454332116817008825461251470812828888441471121332939154865282033117224817861275704245594580222647204641656557402768700893920783165849852133241301528724741744251852864247251077330932740468519735250617163618931191539957661576996860710473671323528006602985833121269406138234558781884551090952358508397475164017903145922890978555379828335412548352797597342361723574138812435217625729675919275160184870650871751062079667026413822176678756629419621842935857865571490436040107317800478832965512205506452418922986644967401700411064735867147243176756197394169474865940751941850840404597722273120701151069950326669753987290322030402564344840284681080154541935497902661951243757080127165506122383327499078254186311747340534662780430146545180485247596672707364920677762226538108470521686388005855836612222425260004299349429399105749840615670215787846828162280777964531457037663697505216149806404751397921199270870240527800049453272254808702054292746638108690347383185214376531319279137621028079688170922878020880031050322149551431044549402789094694233138270121459781475278788188951780993005819346979943277507794198601687807177786421013020618918517769331273451390109298199065291070443059807974341213689024848704907077387796500572202763139532869200439599121758125091706918935230410293476397801495966232331582015163052209223255852714894804978528589843304767626703651595374244922216313785558356784271498190711058900091025914187831076254659587105592207381595164642658453493439720697734424182994847396960568232589809582989020709303021802725703148222731134987947466904808947343754952582060822219061517555087201787127521418840017039759373226440709969801478754660620468621172678895979943838714897796754678610479587464878179166285700581138367060145774640133915930151202970136462198010822841668832532116532468382062466112072715490546426605788745963618756541014720626924875713728080876592563993402430652151404480505149684992832319386504677949180951185874042055089185699673722439732415904461720028710636807923720605315184621162879638476174155160030173147135696547029747855998623092933553104752716497735442855078341212743997145903994072857952115622531109003824660613285592036202989568453855955945441904865742537472327417328815581239521197118343052518929931668328393005494814155125489182363989467947542707194877145190602006796024529953525829894465524617374711535369583941522655200362092261316901245033288630381188140966248517207313663150421278560986718571894449378072820099134037420075630443406161169189029820910302617950485496791787780167516079399969646531421057815506437705797378543036936096571143255167160632539518980057693163619591299511117430380283650598483095205097670662508761380618433445578140994722692109489651648124702388545611824903057431099572955246557831614981688349367535166171724083327315743660039405002348221333716245568605780854662304016197749536535991399886336895214300465250244838273336446644261306783360892271437592167330239073849164903267141857817183201870503650559338214771822607696278446223735459255298363201667155052700361300762760194571048619893536740909100833052210244595908232100203848960184673363454813890878557921575982838200670438046688769872333852075126312041294873658718388278399566016555375493523645417318192466198501782695297915196128219922686917383255812310088638430464690979221829741790807767457282737011805351817308782980148762218226034965243577106097100495005721535213179465567917679954025431522391831867813176900443506306517843389918912356927920771911838910149992114105556526716150271545032503393686489999194626477348890493896574136618693722253652122602095309353400358712685879332015979166517715022743066808245314839572741681784968418473411669121167380145714344765554345774914515956499603991698787949264122389584764503335074758721246644361860940287149167903842318703818737770345176435214300781758537022952253485270820961575332162392964721757438966717559850234550225881245985130436779744877076458984753758615320074837293689411908698690849288355490876885938970069800182182336890889386072414035520266385142544943819927793362502763061692673104817260430680629995554167664375120835767749360701800622159373913329763985670167221869776513500157688793882233792307413945059362823771387125053012015328253986197992871614341502169282498434515784456281346114380312438075047161839788067884147527677576994768537915363368036056029249251221856680348855796620981495586404254956321191451066399350254912435154347742483197077492675805564446637455327343373479413276776834337462707113453489570026493170672195086172974102690318664278652735123045352379015462851687071709912625746434916997859426377742383517284267326648789385562976404043952998120953705346132489631020759045215477506802692769586039914110551667655468728574511246248092671110754021374705815453241407687823240306467323702404912954928910710349305547860253236749082273669086309170401779723116328338438439769269478422653996479312550925062657550210046244614378784930207911800336451823271085531064631399050119087768723750574497778142404739538528792482383155469858076909564092496944406375492518155356372312554155782639750849736805118556873307989410116511842499256417846734149733927351478447178607620158483160880132724377173525138568507730121496691723238762842319411517326905923604604322363833475451556893735595906489212511550739662264435322399002420876492508280214764113015208718526852287830520688576579442920181559960308630615793723563505201235318927902450445851990435125323888990099231693298412293993086038768941087138322055820680440356644453571359198625310021911553384065498711185409513161679690895181373141673780920544635223149340568810536325844444054863121820803014431022416147605188983758039472294837550899799447999177496835741319415106664517172709613367509647254030401049699223534079654948271737928363382695113285094301532924573488299706988423876290672265431493345223629900014636862779666408188554179175809720214948609598938825149300978684898302618054974079612069373620307155512986677809101077728187115488698893764334238215528855283538497482344232909393410410266582908792064903276031074877564872305596240454869151904444233510703002246389905292002353232125305736356946918422341402344637254990255784150534218148986449607900221270062897419052446099503358637596867610423804419252438346765408095651158897188601157509724242612218977689143714299203623949276960496648457508609853092163050145718111895254998271471089198867920660712696832170876852574059127927983304216895394764744866671067402166945000102974277849763142534132546544341139582919010092518081277663239392064206973638668447336943961502748404976405130836903577899425084379829207061380028293558718985899486278271397748587882528893781755747510137186406833254276082505304715680291403148269184382793167787893277771583087874391958272639777792834935969053486971890997139362718432806180472119963329709579593363110235545550041201101210130696054804991593064077810469033439073948064727417263866857527196305014594322528203299591494741603526763902973183089632891583663133453796696971441470230907746976810464070431820372212334692948980273704912678213384944810177088894238310407065866165195297666667995161814265333987344524924366992021513589396492837226176641922886093241686823940726251916007198496032435811858108758878354758715728099508403314988273085948516446582707377655951627216757854754395217230026741359512892970522193919036671305178109158365649325867066590564786383077388122323808003122565828826960378111659846090219465131538790193798656267300841363135485915568355481762029770376354482860898766821505463415169026604164834454911896083631698210195176523427432626536829423405184018087085787566760492699392641390101147063648825309302063137468996112611684552631607114363021121915003853815646246260573728088327511475484358714746836176618798482538055079866519205413333216589151977546831220249724265890675468326398517215150429293056251544126626605204582384286684912172656503532386241305987877436664520129665036850359491827133952971775452403029056764389028684203365239339848021938183153366140979305715025041979381740190472699353794738529700737475518144503739398809373048809689136491238191867055191044274165326072494342589754247971031245937495373094301944039010469257281748598145994343676311993352642811917027415568844211785991783224040779914397922536154658083350978091054986403183696347995563271872288426002269482467944774795365041766873807021251982415190464483913867087466809622779907289381737594438436005409947705194709987758592085315817762817481286562820470113159790389593038193532754974190736406529460511692869790072167307530868993404906689996945852436764960057517163277290845597856002247306717873500786866034110719945928458585217054917261954931472221652122488291578807253635757088275768819682984576312491066945971347793854510557090733231309364922262485117532459555585572934245991926670032695946679908750575639467228339795014812777089094812798324097103721197846293019530502063892999672294441483345168410599757836262546231145802863276536631420099553285107076578887142548317166404054180281126657196699270488178310325259920238460399607063013319973180222086824666614687176876391709220594062618186893351572500701658148389210298621826874133528714450381998130176785695682541952536351582595590546632690396169923002330195471497241727767366676009879676814029347537026000988468451233270028049357728088352809701258910963541859688134916703784195888947857798976080584882721322068197242484748918780065562937946476378948958387276173486081035098664951492049876504605811267097744826221301734203980993373786133547549128066817585919757897027569967050504046826088748034220520199909084359923596652806176164899015820323766509760333398297317272286271196159850418882366096333730979487089153559135273696390712401033032738891598746732392017661219949153440167586868680469730616147302069157784152981567249591754028433038708143607871106054436969296979188778779207518031265452283205844225832218031301865479511278079906083838848958877487952436820193008125680246263222017077311804614689671970225959062863731271599095695913004434782119647630985909173839292545006008073254275111332952913212154361907098277054245810732465838696608520413917709847449170263481635672705927497695070319669318448755248487250521487726031763537400609649828373143521736241883496562133722062041029386515223943879839648759047395993644851722028546477224837006388160960527906243589180489928590498801190059472812127039068390712323915432062702751939504579695788479462148157775903017930964896619046242220837165667499780528014860078826687544504131073475300582569390399082490832723074133390206376696416562912465853331693880480780592417946849296036742791790510261256721557278622764892416911091163955881276003403582586008780941991247389768525165398446281460588529859194981541604889875267812552937296643551349802447041801633274054519468564555155141088880507752495537714591929252795116335128184045795368294982957131337956543303890939795013321327328834765454345811599119442735175237901615584898553003387976231482578296553581806262223817467142292542885101882740053848149691988160118550444322053428331872759609953017883271961163880502082660986913423646697234662718893016303107990767041850931626791287542972512357126928535504475952188217178716430546325125682329231183171470735930725769446423552968296414774774974923755783437320596322449111956731670532761562623015700838161012387917158807603025526668359378301745697195912494254127682109203888872944950938368877534562323176530868855644027511688857840214163733003884055971342511744221083975089785904424466424017174081315064493111569764329136459533948038075681551792781538990133113691291898265705939291463690451385543287552661516327267598637188348811430495783741322838340314272937061135608933231970472206863904385132278495301607943695809828503668010374926800050398702312029587773219931835644641019682769128945866140056794777087341701889359234034971660394568062676774535877397253879510712899212440129350255397067155381621392916250062437887991810449672505130349356267571871905194562832653044220714311056618067496703490037045084999177839177656130916067326528095920565605031554826763994093183629870100209720589848357275647467267535044845826724646635709669207389704953873466447747631940572143652117573380422764063317631708820827822333657521642276067460158020314546350582169141098973309172606973032216611341801365894565795927248360228076012245698595926604692291482809007473164333898991953259785549709539826215907297768807633052690060645166880401088086148521019400624878776069494858915667153019398942762821050150805588404687626448207056307945435841411255893948492454752404249027895830077548145830039393229879053398220288845143617257445812371910545933400634871674905186523673717192255073442713232343128690205950142755240408141522545008376502233485465694736482073316688472844339836456429351994917391428637304671198022925941396872061707055570586777634976509397977634708944345003238474148654051335241028930410509117526762696120628382322022378027695274693862768652609935009173301626534875568571230900624447264947003075506348048879362185048325583376465770561344545334132580260294669395563372202525118712998144839419400345764669945741047693625318833058662214735875677057994612238013134959028996849577903439528628125668096356867312293889623967400416131998198064200473632136093459181907242237641378363187394678941331385856198460024346332913680365022704316650034497059478755720066608345036185547822691013584618646738529009518616475347278912557688790668933160333894855333750506799079405100552525509150248559704739834359440788982586632248580182240456847645515201557312654292444865977033492160927492149559050235687817661453716277930031044750660814664630763318094446163789837658389543054051302778793427353034265527919325852113744172529585678479314349275893477619497115602712594585398747263967284516305235614988369357281154466227970952509997550600692787305176201809413808323940356559964315895201257379607306336026389084220847824429089751159474534924262193245525962904209395967318238348186876594211853446821888266018053766875315732517075376471989494381994826756484080841773718398295854523296908347264660498566490135729833425503807678663609106187265566961313391756306255315731138348334030539493411654318910238357938376491444207188821870590976561253248915145852813939553180007626018504921420570765359751318580182846514931891105623179059486823593065300662398326481138266647430149062037695314704756574846378327131909233847091713809764412609911354323288610390463701665189350874487917726541973843740763815058557549148107505924663069485572252435337403206843660648174118185711241038355069246842876327568657443832529496172702149354489197128271543433507099220340448472793473847977971527510230466376986468702811408456798830080544045848827569776551424090000775137791109329886901107212284911043163655905630132133484051756578175167903656872088619880035042405703931051899558247357295674228747809234406504372763292037753062660938508186169099831762091530689619195057206585090239553054724614260418087470077446580029184307330906707351300695395038074913244947107720249330928837009539303014589784609179742226528506317001625922937361934567943123381465262895214987371953160436918638978077902117666193238130349641050489125686769746845440397444885931291102531747102212486952652200151714135719122722887124796023911898418914783586027389225454735955940373194265987909524562022861760702238758694727218747433902397993693068660440410859315985674087296854696230994367003855365763941313470696546964174223219357924197745075684212645034560857860256012829105947044511589102398169724213851162956456054857166193958769395879648815232115310454944913881795800480783346492478853644283335974164625036416809025301859251664652417400796696382188270215796141311025420451609013580121217828031257700104316128876324992165518073837818874813752981012183819756346506549447495812729587429063525241763772908607892798904890535736260047152802016972627330952874513987145191277503020523240103175555734117197989179534356080121429514008076247703364275741393370270458278398092285089005054176117024796728036390137836705912263476402427322309242691148964420894677310744018166484355080070785920204777350512436790121764396602225685187075834290227147770174291378102556458489499934239294510813952738923733592033998665369025104672667033722288887141634603949937951834328008794385274781410187544819274894529577812208496101167419702586209700543637339228784995612975611415444509441887867128078465967607677568244762259299021140582167901969613507550579056099216487780591578377380141189753906713748120372984526414579619371339368090795438083674504915951519246132246865140621282791460057332165526688135993332504804597444382671219393489116658657631412439429746869719047061361527467569213627094857748929131087522011299341123846910276350355035689373768737724098752446394006055176282124612309308712472308388738143173842195544854895096461222416111564730610560326066615142552574728770565088605513308247944596574405549663684530679917904188576761443998271062835307972711653453303354393547731598475397623097293757162882691953107885808328595074964612003776862829854158253775862657222537343393559883230437356647401398413067316130707601786967284529195152770073169621663826824272808409479891938856017789583399575639122149796853885627469717087296502968236031109400962747653104154201820779431433652126650073618140892348544061090588633608517409970303715953308250070864118649669052916788296188827845879430991023737265049230491148980124675773869028438978703454948679482698288276145202846649462468042537785892931154286261595798381567724625630259351479403788765003140033388770685160177180540902958817143057235737110031977764671596555985436458352083496340943670040654388342234597870675925725341638052112314653226599427870240659462701718515016424195212587615725028353856893413833134685237038268847147161953713502794551571963912255100401627416368661980593733154416646152266594277398355230798197729635242330948058819987952327703960903567135297293212176421506631627194051556484554455347150057457119337169330753143697650849020456029750323439688289830384299477129033428571720494156791015951023722004686120724856323448620130178056394832962774771927409998059801175257224707712096132867178780195693923389808523758560268241737432585340172811730802517762460430874709442682682066249557927923989670104761816653455848082857419408124258616622503984484794231945551547951677144132784876584900393846503559364089088333733641877992552004807950523079030117219755164531242071961031693157644507818913438563472704142518705954796563895977151366292873937699219838341543955567554279740496300334976421196197991386173469834167047794862821172225668022125490085535873494079165694866561384675149665726533445175516948237844459578506059154757746412743521152368601807969235241204533772774852403348062372253765957969945085818519749254166266996867314755878504452760795169029437557250555646914186763885230996690171136384751834097635898012856498049872766002455727996600337681192177335337760374610314431294976386050330425990347245565817680485509377353954099404806804536648174868929609342251052866534381952031343587937465979845724508001648046854271702046828124903977850156162637246295989084546526635396956934630661754003126903011480316278717366861161111941761505096073326672051342161811385604327747370406724514716155929239417021176452470616718823718140970430186025504517434099843020808236316170968535285625510995616084280507915731489947959909509374616830436193837836006095873611455076945005342615897117171555669953826492418028340625682971357083711380685956126436407512740965842453550622752620372850175404348964032139374050173990933383281069394770919514099143032464047861469174001156767150928056298932763274381925712178089324618888093722077064117719453836137043773864066031762928045926565940221298320994033031477794174943673576298318500388558682566780253667978696619402684172976225381790269847909029161422976415797775543697231462414392652849296590084910698827693129254234850685972484006474394963439284327065268980290125559511833828929793655774678679823922606944705800734071515599666976567860566867994376633528077042543520482045103929625040483134787592498904070206098875854071234483736279651753925853337988232335670367887417365004863736346606378190514593037841776118381034419509349565867451597329083030299493252374471624283576019627876612656517982578562853613310373504236804304296480702775073124387842333844941241410226099043876177706831886847095489423126876414015349017049775376547776732537447393922459048851849658267045914060023795962284265032229531088747066322284181410342236018923497064634718875999655037722420328075411340246941992175103345539686581049435292562909013090458932393587102280572171015608889712773468317563045371076019324268662129021800744835342921265355711684259271024600549653996797183344403715680094707682376311020681432642926103199113309970733371671218088648530209795357962546215977658917478633157777859264298060565889271002831640552072969723079071422756465133286662631422977399077782033568962127832404361976861581076794122490378102685029161116172987525559874520946192041040226244911735371265222378087384627537296335248472333159582385953687974385384571652406509379887307285879721480409451073937954867039247957502824689331779417308664054845862118515417817934953460164304891276960859438913009972812709279809945644687993791172446781048752933420627619112354978160487345813060019542911107367627564194106393691709709504684050350135360963542235822294353359448297995392081013597691600547622768339185860038455884437853429689869878336790232745950040636678352880435321366011412713462906532908508600727965246489785724185518804034271589432987921053584817749653945519080692684012079161966170283845693086483502140375464370512716576938237839301014305726329266281595859094498270270080377783441195851110457270121668574707667701765346844255885754927988628147427610721982485967287562076485896239965770248870798231343205465269820012244805562927990589985148161319644615321675523106934013728235641244616176820599114810815603254460193023273104546963320063193289159056126195920140671273273784768096280224853921599608515148149404862323146666084283513644994035932879462111421884182350733848984195648594910549827191378205772026620211459206112121743092290427070158927150389374151672881863850928373180581901487151293093799604043817229722277342551231687788399681052137259957692030883306105184828646829081353691596022888085442742971467417699414652149266005014558076972954424756728689704503930008499143783052051030365561868677139502929403853042382597368779969926377729424139899584896051769432786214276581353678352017216827883067773623162843802297882632231695899926090075133299962583508237088996725673863719662589789597556624058996421075864866614594524441112479567184754898459087073552660776621470091976436032315095659820720126557922428899920973050056964422042956703717704595475214402972690231944650673206367297856875142408543230811685679494326206824323301770638592838083221123851471164258835056190636471234968658418995391496560054807419626445198066281737266632948593325834249193131077311294174210933983567978792650772261971705844496001389687866106100392756801234310369774577178087599532372050379562072215592292630341394071911666586009684339314361761893551435818963401471144017984149043352994060700537212522107525993117760995007825324222430732906531750343032047419614086648385867204415305596931321851791741410276942807907397335496748595680916685112514308820655019226423368309792539930046828613049795275412804229808107296265911418944920672860301543979517544673576584571327524656634141717160044813498477638495609399437455408084911066309486273033531060681043387646086226983006208961427181997415246727069061289416734177160669213451303888334594353392976671213841630483298743612736580472464086669320054798885929785286650916658709469663856463711707623587167159992086613129526622854949560440936349624528330336438802714874060848101725182733112924456387722118066130517198576816495649355846241749828297281047016916743306974130484670863327380955930240329643790929072000627193408820535500831298105310978849995296516063811956363091876219304145096152716332601078966433012955920543154745601120166866694942802195958074628690095211475164038874150388630945214606404185147473554856344090144337650596438109832662138058556538526373287006157873692886554831858573505340029054188358872838160192059028528485615738162248474045923169368430672138676927367209126145988246245941153586247750916355402547279959479905869343305470677351839274623863725367217441570464190572398588278900566866449791669974673992956552666183412544335091441528625769549504705554907879930126542940449829774457048310367595523506779072681607674123388110276753428178040597797858437387957584052581228627120627055129899731542439864038213142818505396018717100381574784781177305799412052129117846938141346454929952043360200260465223737450633825968997028027817602502170539055423147989932938075937694418154557636043500851638319130817932237113036105202131210894088167359067926273220739054747761113314552516259498108956940447239451102588327739884704914231966164594513924233587793847445566802004885354353271497982012065302810573262576443368259793101344056582750922170525625406638966116863123584836158560880354149513591840001884014150619180256860707495775542157412389786445623047660342489592207770846714964215288866214711105947925114069600665771229032459644025473528170316424210604343061753660865441199818874414490992320243223626571271485450242333678062223083432363756861809852300930974531257680974225379858562206525702429859952051469044683504631083635304615938782636177989397461635979138721908488684328058396103924465011099822709604382494711988686552851526407999815071250857815673538632870420506312567258775423958719270091178642711101887800527704298261983405812590038654857429315493289939655231897623163139463010603814403743039077014786342756380024634128903181976262735777697697274752535419397237655583556377180384822740254711177154690665238758275530333511447420773254788420285528481200086992844593415743068841169886781610921968316611111071978550342158705701624606152854053528337183959157500016755474547644535199892209958591009718892487472690098386265816121136883729177173540298345879194935961173779392511048984517790511236453947594664935892469005756837994784535416032683557003143989567159752382501576374179216194805230400279149370607046072468562093803684040366544262617212746105287894490417896471535663615134364298938467075830749415005710634623288650264234559504269274954024406841134525015604782088557029396998863955198538105962438806057921460325454867713337223873026529915188917258436375860987428423440268682905496987997521006844450375803623329018221219497748493192836051878740698686148684639666323692268261069370669434916765697119724652006957871459740391603034867514717414922143154938916157642541556424089008998442644267661168835771322183398293038096417792133382317907948508575912200222435185608774679317566344223567005278541252263636335910051087627713815900850954604457553493469755792434517657908276671024473603785045264665314801798403564132587152229639252338298547991786273282793080885816383592165659877744641305129953432766565628877692718810572760200839397603698858550862390545273152034189456492690764570500281714929650572765520490280761444946881017375621927607896829899789801688885141016501026924381270195321113880394566760369819510602033283910291086433313551225676601439391360763792281403330035793854060281191391562297617177375126556751592880155409819694192614102006395576688547394898450858611858716237068456612487769083288259272639483899137941774646089226610415493899409450611881864131560479150330346778991622428462352009844109619023622706645079202582323139291342835230141922203702808235500171114243675633616173750675105299076472153508078714727851810546380270292455370369328203827975888211063668190756533584135928696990100236464288695267689396218128821274180899325830008868465033941762436897871205917493652676335513284976658957806262319844519907100899139024984600428812014892740387571619453578621568783288536096504034323601722736899081231093734840236096651864903308567570469290376987522798050488377486348048878805749555228590311610598045566635726426437170507197755082412528177349156200372728475867060693833072665146838758880996689890854369527440116159321968170046122931909530133276684114568187286603934579741867469582468367524249891124102812865286915388803239631633529610134759544715972217650305639696834753069737297131905013350855252447982185285647380572190943757269814183712430051296705389377072698005246165506381077254616708183541976028281967528179656819109329866919445927584460424177413204059380806931107781900837945814642058982274076993199729241432849091129034946280732823725808163119068152905705220709282378137053403204468153365378858666111957564285536259505375581098196196616579309056045210065338545530522647744662619560112187063258786937654990196880152024321541781379713578121016443979142382571606334889813653880494127141041485107236307642108398237989605304209408737981932827047505087950993418886667097490914849280461199302825044884522916077051391772354569085546480741696287452420713802533369183738494115308831606502389139471916819843280200919482443903717682003233919075571457258211815320315058593266631197123949266751277173095951699248962261174478073211608486505538865841641865107254578914644708550597707352827714638266684196234274455096193073109478981417342056492986110976837576379331599856370059463172061243886986629804083234286538749809871183028740544458951568633905706289442796425197068488656385823728811472224441121928971002292294252645581614070741500562006044537323309054791268569538073144694133008550184427063428211773442064310378023710636025689095484545816841490390447785783768539656796231476069343767701765680952362564518646632261270802794859039605853866794149188041266264629950634290463266643741005198600978138863317322723092485396935045915067740376269648347526183699618642234945681557351212799614122486850094819506256013717421379185210615246121410854960535999712084270357510470316053838101348325799012663454216962341580468959976541122400838347891911022835152336463706812577741192728226200230715569305053390205468239164898890041241019710081709783216240882032158504389405449686910132111946819867742153384542089554616614788803550466208438424537482405199364339423417711213521572387281959868523231511502643638811986623398033537175888411629677133304759204838443390582104819174146124832961147539221883796747248638279172956334780485954510639981073012716618190242443748193324138522842421991823705063926714340060400343952959110754360556573710915404852299795846885435124330898858748386833032698928644583482378932156597167694148930201248673587600996743566240354303908778118509595835890585180368237897375834636511175589979620127496808287044174438510596307609017758916601724963900672121430710062608947897440812266025395877860777540899626266044605109853322198246939826148256094777292961689707580179802189732916046040561246309255238138342546054106402599548232052560031364302597275566958753163300164283694147036800713374625062153547734539324695207582215608521709641466439780641731500273659453893397111260195972140245306485114529774913447969235353123118666294321482938626335525305341673026497450110758867636050478376944176808350967091455025234649304059583810901945566384046968693194008874926793186126209019571343851694507575709441251492882703815544137821109144643355530832909426718020649359121217339184489991066519291807991293673092234668095505970513962157382028535776377700712054774996522434886512310631493609395561386652477158780171221999195232973062949167121938310982680972868779355673591453323893353472398428324597015062253925876694514831333113634373546849415945029459567931761524822692607556105999092450088226458358632846387783138227920991832045371343086006096989819202837640714612310413887887889655184827687959760394105649050197245071491320001229670619209620775645291115276636661279778664700304344755984895559747349137270463809236332801760268787809814070292332433983114016335164613698528896642108063315670739233063324273503810361937420844856585386633019196237886974397757715355611412550679608491557111089915655775985011223869346536132688855048012004985971077269984789628939042982032775612743099206460550255866752470718241872077534476554404530017873935978372156142291324473580679701549047078538270514378363249057726525019263681441761875331239808890062748721931940370128854206370283482236595110894677854506733638386343216437309480723721497143433256658830909064070764328896692462859264065453319830411804175332070743189273950315872710790173138861888383558908745257637552541692410060664607823764044560480753370066506375761419260961944114388037529480970896212444203736674623808258225790376380068115406641352197229476810515786533228810435615412590093182915975379371826635365135881541844772656441652395578706624070639789924802807458217745313231823985669341589877912809790414452984971110156979632479526825960738270569529759881467608534280663157009096819575840114857598081698156237279507930740421813198581767244211174744229158062886812962230839062228835966714422299598171967546283373659179475981932997548355474858768230688196647446119854298202567981344921710211448578140938323125741807152049338468632889620411456188708629667384210715766858660932540087433449224827956716443144639164998866066283058009864214945158392278394199174030602539712465164408510323967611058029587120890553820922723456768341204584410501485133992587264533553356439224389545961175021846080278801087182269411017074078344497057404730099530711840468694191388205081500238021572979399998498838036961724654501391388592898559446060277448964421182393260087664676290571465751929407602015552096169385089733516001221319938698970705874167878723460452426321825003139877963780922435913616559962221475911852340893879887547984525372973047012341279120799214718527857882079181612440403615299241726651375371760431477329766236041612167009080648461500383013212210358070534214393583820665588818421110623863368869718911436370033666660217863445187649773185302497472987958419592162170787797664641179531618163644740207878874584710365424313335873479625838352278893865630828133394333568547635929872701133213867636242620245101980534488905323363309192626295661506916442291358776137286360676905609978840519889254592141617322957131920768142320719567846351620710489924465265646431343986503909055886581398610349386105500877078265638535013755713800323981908276925872942882452349703382588920072606694123781843444986758509417482109083348010057224208266959005128019465302694805405430760032857277424779349024985084984126384576176438237920736143353888181357674488177006443224465081220391107858494434139497036902750775711911822744424167381399536973364672423501512480075962297979952781868985854106227847911510151454729457051956441895856335819651328088339301729791803676310714026256164609728691247997396406784068405665372230247219472461974064037831715134747930147247199170803008010697695785979265772227370575297436001162640961672687643168158420498544165918440803549453775217996651382973486680037125372127282891415078365580513184679558434063729082675790357369424122628826241176342323639197431629047377521554747819040227127222401265608054258565616300467617697342560585286894020637423041502294833186419190742517118565535665552911986940659288460848362887067569604207815535766888871576258526444217398318727404089695879742607547784226594566140666508755225875302927635243907785536436807240038442735310267817369691614310289424920958077534409438053105011032638515803586774016216336143157768269577388286558110396684432627309922749066522583655287360376270420517381547774834047317738316102231287967027857909264668850528053387589314120419550486750654470815462558913128470383556357591159659072012002208029409414967103643184907786166520441573335451947980734977513766483220422905885954933776052248739149850490361071708163933513088578324339845423015013061079839845388738983111591559618521828506445503331859812037262672422854134039349844427047325477207095699398026086179237106486562161218014588487887992222292126768034617757317721480975514324737008302499412207833784012347876924681281768061593761756082711402347171098748029094440102095928822114820611293823075115294991409711977205707924939908489026032514661610784973095056777430507074717524790925794051605889317804739251881993758228022359768043778435735485265193987346179891359898115531464481889665171371002593840287349828143083228356372288334572423203600360341901478389748767375380797482339502360302358318659480236734297831626228030658404192405815761040148782512714838538721592624928751520117049782133685105070441979937358147662831774044938584783696008200664284865218680842949079364750001677438840653538527984061090937667857339467444094815537373469610554171733692081903808153953604362172458544896092559882391162204315262352790114674458579934691133767586951352130104369076020928725996911117217777289748131750758382197480911217500913556199259957813806231490097049126695276442441624161057870333520785155437434573779692746676817309932627066037277447941858728839137848527149077802836510586296312926443462391867570980392451904509615715165136279064803257801436324597296174752784067814717493662636290420669070157935696190896298321158763862019643156983316361850162684930409257129155594682631524246042054187063136683978361526768468253758132440351818236072004996359341034542875926508606952403704433768448803428857091407092871262552670403547749064636420444227247158575410876093117628766440584724864514822254282675393717262915056325346586571872212948599927682283834257516773848582171577968055609827174841017945939349138179880709903986585730123688569642966224080251224921318310397041234044506995647430215546831902464745523403786799460269465529836661112113036582594711322575590617130586088087750125565665234119164509195336316072935605662094951771865555626264601673502205040545923689311506196218518133891592092721160578166146473388367298504172209648677946980260245278003161481179050636457427889346889431645187146186104243410342998511653822794659412934686717191903556731474004113352134954595562024156622961399681005203096731064679852073872464401010987728766585876702382207746854776599296347938659182780971974833626624059736209126630246551629874933779924594038564424681734822580482756928331014272133163020871570700679836732360945310589946777584157025805601016541800470537718381312610871833327238320976816737715344316963095609979533964270313521248785777760403085924582969717620165993321696143531404775458006134749451096535298548445984881534359995549886277079354772287218283058186678834421825459325660512212547770389464019376940326648097536834319386100175483367267377601648879065398423948518585069247861225685410893762724553617542535569561591948507330380440953011263685536405590366645021491281534590984655673168241838061824995417020124858434750557678226982804710670260814973055293521375812977689802671172722045408412432323960282927174918721077941234613747667166146156792669146937363170494445368481168054820580838001729956543584779399811964345704629733270497554651120772414171850146666268984783536379017420190849257144067594519500885676903520202982315340885652443172597168625294649618575639564488433950317875492168716720767917256387251734256186728679393188766464826671545519708837399603364256559891675131221067922054843853762676978061113876303887041250163750459729891748002960657705169863861625046138954953720864690147442451062958850123722098932552670124160134463196358870406244640288676835329013014107586154168428819908038542524883036417923323404503747250552002270710800961271653043796626671486252697912334670219636655169097909459260058816235373640219690214902310093632807038356955636538242586748933140473853986371517094335284865081112694647886486226603668951724171881547792878180088473394921361311220277177229650308508207322183021209995953391107788920609078470552884902474231255307594973506419156111468330509103327563797364902205326338727280369096527025403939221303242582203760903098837663357742513520842704597528355346081722146809424433079720938236357742545898017573933112466572852453374243083780947343770881354774172757502843905794190557169403715819114306267035305542083390772025204702394951888614013048334599940706145053601646495318912646616386564409111394568322009655971017672998128918575904944652443862090111068302784083460754073376731600186260184651241964473075984694210587300750158067548698124023144408274873424405489597127700925715599001318381670426416123921554247137542942447092410156469037792237771747944773629938198012614931232803762235718655754137208369984419779872980710683099099926190875384854913034963877030818450086575883898022260180489196721557898447529916129031293593820021738088077886927486747897600179260599805407735956071268407434576164516611411744015878511885892898685967419502890761292600694919329513311369062202187218900116847229718918958722888809649181724298213686176405142444607574841048568804418539585361084552035903681638393750558918467878245418463115065127533087092637591241006310412547060780217091362709995789471624625134507423157971659216953224718224750779673999795880259264964989031891950178158066658185359922813285780912955833505777089758931377314242684282944606482005236425220362631562305228914811476307037241130892533882858873464951334164925634453126970382338251518008744431210829605536853540663737452553140339552695152953438317843692368075486409007936066979542451596037154003086786728240958508838517662014230294078079720926038960246468060918107378133777436170307937153460372632355160336482528018626634780052908769502088553111586880369133898659091713382878018016551741951859598168148334348327386877050243678060590740394291617258123739563178202317292114489140220368734495977913972196600710308690034899728418818327945112885017051770165887097367209674658799501111224563473317028463447581559123446794028604701893145179665232811429166163673274020098094883590506342921605085050839645592215237021113540465346878000763703154420936735941058826897757269820857020615899452124037323218511448607160356770137551735376207594247082035798121377514268233544556485636598507044682058823269379880799607136777463141205478972500654957523030478149137499768048481886243019348422005330405487906775294395415716333803065151946117917476566622164552674592733850416587638861411998770099811677136864292371770920535117750792763281086168483272979929583326431986453333630694130588268168367908875103023563526150233657317312637457796600443883971680338111731159836285607843823784873933616968346852516047071713970908273146744381597666304954083148535107543373236718993493342305553230061858949075934227513792870966655618506586744337317745638570513733157023406368129510978763535115155739108228361596173696148971486152081192758369842897660419389840660804082623643436467235359482767581205485941837892248077383360553799095492445488342922697985468963397636620859116139502932250390050598398130210499427431823515281847179987589116865526553831674992792575416142496363080005746580066775495148062972000645125011523247598488765739641629733381153708876065841388122488339909413704986126750227986538726558866886273848307809940728074605090366650745782912318194020702278212175061926726575579172065861661028542069882151974255836696698808724926998422480942746838446919138360514203811934557850971765541227778158458023814004673682019278515100501755000625242692502510367718247084797701753087367549882287484969785191851330586353460716158075874982015396018702750395765462594010232902719088346739350391715794924512653994887950738843180005868738490911744169525868810355518969482740334179421362539519201096814191100678437154570141094725878808194563094975263426155056168410053488786554157222874462805049411036877015315118948742869970388811088216618795258838386080828609102822310129087958894696662273460788729175282532177311181930477780952372879814503370368170112687982450886754368895045741917698663477551225233314734889953794838433833802202222877058011461756827620625719553718279027925009225883551131575657210385203418568761769819449387414954344776384277229799047963039004360608478789617692723178780850396431243976424805135722775624589561677988511103736541943855274826703309827641574126765132213386064349785332830256642831173831308632293301539940550193431358494386017348972837400860477742520710294678897029170850827619913081922874518166804107467215155612831641453105502682339538076344915526720188945394538245077246009518916028130725870985569043243343290498477886895863425688764135437545454869779200462923179736819656737193162882066985464158631280944396051602950232265338522837824852992075102552050403750618730620098989381068350598371191758937795707178740613753267105528581645709384275551239988298524128171079674436736981334394170142139477411068746418564753804850865371827314167165762020094180182711364916467397669532270762768673124254125142672231751527173187596287253733714907104416215129894479796370730885521157928029289595023723813898718114149153273738684466464686769154252738740647807188057269373785071447673628214898620536867054998734574802782846445998168539967884500961870968382561583325547448217946425586927459912715864320020608553196732380364962479321914355530936018333468038555903616512583296462177187957906173994309333638802938819484178574234135862778184051331614250027385527930986484585733231408915117628422222145274724771535418703976636899142370974559973425840838508747562748646289046623932807197318033946075824772169728917118440984021880215505255622109382759098333980992412679840217445683620163614190252169090497305148882813577690680997973847487998562115740366885517624597103637643982561751637559663831120290841661036167144175904153238815215074226998058623896092859312608869882365635532508269454084250704628445947198753848998671608686312101533011561046307490624122663183128811898440376432586693187230238711215325811581000509960943339304044325246526124261271948083878464234253509486821089610734851496919795052496912780989789742955307634624214160800440063037635699868218764319656559020489667827560578233356760668463080656591663823612169847012582150672474810937739347472769978244297087286494214421550946397341404210074001187342607029968693171544486239933353107807545149323626043618283361639759679096367596977479417366324548936714682274284191600995471987178571586859235776313296177332860899453916233496642762286795560542379529654619953090449170819516441151298026992637189932581799704266733228821590639198375291668223600625037784879372065770412660989013335249200124884359408175992991531734078357714233616154761828680028994292808914392033406792811952323343918130780827272345975675296477718864794797360418062723473046819812803461349912071200762394095231062188957394648267661923688031077881287049268518451725458660503791672855319501613496746013375814537225667864177642018762713996197199543611376907864881518499176417799575969682330625303802325835208517830747876449004253087438930245313834175274129039752895971084238569868481796851774572488528405465255165248343939387138664535619746842370705473050153374915184315836151469077607759005391950146383691030897127987709895764946596642016605084552775185702886941967356123086972270865669157181886839691849661368654158532726386540564902491760188942030849496561987061671692890916748087601118635786819466816771515836422605421056530539048146641960463703624883111706457797204814163916013952602953633290232537962174370663424793078757940577540957006399045225444860139498520193836877834001000209088403591226773887771045839634094235371233566792440476823943716168210468538814284386235126892636623119339820539236409768695346870869616418004300055966822789684422836175950091386601521947971104011589646368693479979577639434061471183933128892947126027429733908648329833507448655233721320035727004693353318394739566491004443098826859757560173164012686761015732055656962924664350421285472070669703776180277522344514681641736204452510896376812294881154716607833809715122556402999880294303698146253433273327811353763158104094016300154205862244009465719066773077514900862665689288995595794055661782273852173997401379629287032554079844953658837267996958371145118235133357375650127232583667684298949856197117488591196282677198846358877908866966499151982096468927129720772953314434831345987658926680873745300495463772121134986340749343961973733646979938820751051606337412883076383050587315637990187265584673678871232025872239205112293752205045480951383368848548577617560118500155354923456403826303703886781855212850184938808826408028462552835503914131249297686585886872596839031713003333899877106934326557526535445937877820834678869124804275012616237598415352345868084785587077691805534036125429668478405349527620075006630068930299211949638104100344481995329989548261623541810378891311113973459316136312936387814441898515875559023959722477653709424077831175259884615356785349703981359221110339497263009818135175490287192970107343913186937314283289502724807780203293000336560256269742448687845490651591818101342799219161896629451359367858009461309709726567870205771642297283767744014969805089548454770047810107574855600768071052632092222115791008329406209237863930465555631116109450730288581783116530629800291238625397402553933783267854444004286869688775452936188241865061168472582737373318908436638049495845250598582184834983090570138136345031796447397229844147459022001215244607709321778226598693151648552041099848271762395607523724464302568271792308048271575498292037246455221900097832073337923025399894810847404783080706615029966335194804922512648628348946151725234085416341980800732665246374382897844230469072155072037549529466460007970981438077279357128394597918547372194969173625333561692419431750213648452867752441700071321937800967951696062446659909727453153326071431798773326519770210881188559395299336082265280260521741620082711110800273781596415474731944592509634858765207939128618690661977566544111120788343567379627271865412241133147305637887213771255519929462561846172081755115915535816155580524995744956488575581895824938298170871298107361670844297738180961661928753302953797724910669682300525115431913144637448973053074392645601877694875805499449250964279377392710725433702002334295420642226024159223843129071970988297378341920847859084948340216763902480043468738423123872563468676101139344074097264038429140682223676753977751899198565332096774401038694815351428783916907053652079565525169228320342405872778170804500238861683588731081327244614377044934358198532778817592965315674743214958738347500473548195515529188925356318447116041321114868744389350648895640257774506744414803779545475825213494531705278234271687772114785841590917554914084881310741539004041551374286508676839176918155614194994061152960266291524040907666307430399380257870850093615121964989802491614710665276337216071965471270597560240989382096356922564231998344925521735158799875070854520139949649577263264472787784070600782340069098827057496418153043271262595931683744123272831044483782338038207005664042713426746683507318074429441433504197429765546266399455550870079383224783136128245309670467493031023779806638651099366764284718917662521470658151794891134466745692444728775816526180192785190084450545778165763697860119897323426931390052090490659179759296212032193596196278431599569270353317414810296255821287678552194074109908648972828159222848226346667200716453990338449902036588771275871340664533681939143652284625746320075540561747482438366836909769726307792765829275884927616398785187329661139968395128170452058554536313610071125006089749562655223026975859868315600593771671499849356525399325340776520990083046748375391366868901862425801605736959912331639667632015789770370208199229171887766612930055041367484223623224783977262593855843814182235911257357139941510171068717513650543300847402785698859107776433750473482913630101718497599360396876370793491887435907083797905707922561767629974432518147866080888454681084945672286074579632714418206701616435660381920193904405239718665425365017513734414524600387194214755940466979156974870897045970279727824187492932125860163232288161970570860159380553622656506053189737876878589151818160474543306268647107668211445434287117159184213200525773435228027450832942220454327525665506255076391369482343532299456546221116466182774333409900044339626810804086228833337283690081103255182197703854984115328912198110839601146032474222716424850884652034997123435319196475921124460699869967923791047672856442982560732705255004109750781785824910538295682184768028922647178261987169259081678919909058236869933206458175383083229073454574068185214147120305035636131068093139603016379547761378727200887767119190052754405493948037993127983682687767374539658015773309616674499140753135293854117161343332614908129853917523360139440337647631675474468758452313489899281858865108176698680355429192033997213135025026626412526285163893685013381826344603294754384117234728260714957691831653127752351044644466711318050167450326502780956550950881657912866093127534971249376425351049840079291924206193431646277515971117401478950447956468947100773150439213748460867997016545081935562560907739460103520707977226753552290304995798496525652094829058407917499482846233739872764454984067213673863453086768109517182042645169972503597217656045426335788954252424759082181179153856573343281978665625786299425607805746930600381756974147650153454952746931576575011240936825609860912689833450277653321183874294724535462342531876170164589073441737976785500801826440519241532133430262600533690294967182666476311674157592986283084031967164810291265831941366209211893444995357562115599562680203517387217312405825156982904379025884288812802240548471044431358762593201932983121808422981526239812240950178047370977039620439729458078873838738570344182161048706000529967205522755584154577278111236679454194752923710355884548612007707968520022736114546857839229308602238461084156223874622735350891073063504961262082148694213999082172574674045030682112010431265776692322797537273675233782584596079587430991412332044570926039910048585781362488469980480967693213363065881147266528959557552053641195122853277030824195250683365166450818971458093564745210406955977266343182603780474398542125594904633905300721687286202387472075136926015315520767323693696473764757512410635877995072625155950040900631175727620207549658405369220571912571341115580397785002862939403880222180822279090008519149242804745547405012079317410456193068225375769693772083319467090297143785917389465678274242854227102093822112289613286783746758998206341150323110492051679057929668200192195327646522226034391072290139451439011738803144094577526907952405478218709623372161199034480815774649984716825760783747093872986016814858989098389958092109226253045457366763841961990404206840128019095112936024115651737887605851631083521907733242519456521303850940260548737396498698175299955714410350522116994116009562858062036047247981121451215682970640572382610846511640094502301177917809543125899183829384531989273652287137310340351743846770972033906425186801143482302404598583817490946551167953957085636468246142295106424950192988885410064585018095779857077362057786752587259784507102808503329842006069984362027721689619131603379930694293705897755004290113814314998044789161546734346443796502085833948835323926249555672321189677529109845196768836805896620743168500751621336884101007302498106254472624120810175067755892771157343842219103001846415043221563438321801000617079499552303285463547245291969706896729560629396326858637263934393985925973798139246925635183605714317612181505200061464720981631084340274720129797401521671238259573746324924380549908141024602566657914462509028170033627371071472291916923141523158439220285020465374994450246378977159303904242158240119640564847120822993679882972117566477980039767354037208201433936613522346251839094131965695255009060923838037382219138116071343180757702470473573883209220022375293907722857597228789927916919182789682763141971720857780852095177183256550207613391357935273524929030067836725977602691595830615718316513777587505152751216463665553511549637733432464501852050229390644782011261212712348998567006044691703493308411380417669442613221504159803497427432520193305887139693784103864270538044700276210177483346065882151912755470370033387875831711196256522026510007309410322612165523041858262068435961073334698302100254086475837424393564244147639451031283609860670921142000116910781071703701667674930552307736115662305635615593237903855807901805525323809420413005764602482759251902807195447974787004151570450724592447660271124974728625554027445340716480441663109171976293384423500765301207944198635524994095369241706761290244755943482948987544628362628953816874434471377824687899239839754642597223988837898772556184024610124395778809176385239942566116042813166098410920922903271808959141022341213189777080827756436219718813408575620164809976816057106163622955480800693857963016174778836721493626855612259051754299617058767206816241302076417191494595848292012224631053020025270733477105079674381843153625055528026353407242801556445242846082301326033998603132173535563951778655291197856841265866925085027369481796763401768496919533535405255905734244538358517484219705551033333303750933709663216548241217612767296073169341346680183033847287539104332327472283993957860519828241622359286509671494151328716105444198137876038712099176833911069432328413479471504670155452229633531236172302879914103561228089660936021120233676449537857900378641565792866648754281395984221931665982371231451751354972431747629712294915051411409944163376223132370726525660234663712800835398505110442404098527123494202394023527433354124816708868673508756678737316650609511454951272677848372763201041224027341122527776140606896126254758408781593306025798894672295665334169488235752975105878406561929224117994640265119633639166474440311338812877822563809977590098708193921397772765527561278026891243706019043427986771431896711799096333415533398157432267489455591101362962775279288864144451955212327859701672142222507477115871775251043512070412771295889263073403363304868702686594554267178695303694164166629073011047958556036390775261768833589000621673524662115610852166415958528247279173057424475196176662241042476604783415736488765051331407902024219640868299511442216669441675531950446822774906354664488606960270191952697814918728018863689356757368997764296197117233966599284451831458278687593725309222967165082747229758938720175457968585634594538215133739596172533405132473833085087944793026082512087036018139607896366718594776016551705124734267097086991047800232000919398546993015009894346062383194609701425195637399769959622481229951876198109997106733646034346020224210106071717828811702240602381161208218223254209109168418970592635995498965724519965014392173827867975818811260925570026131962671205536143893613179310022128259087859155664547069880121257308056770900625622272258181936358571849515199164937269346902889843341440969779465833133077169455137128422621002990601027818272754827037310396729439711142308068034308187820686456976399093068062774189084414667463334003198883775443859513999690677059385742505645891549411735106721886040359437944012630982484673188473814694737756828132915085674747075906316970117924802735885975283053932164008896613163850478026112823107997303891481848614787774481946051928730855256389983092737519944767483199754013013781184211086240526266149626556020315001907899309412349428372139918581018148076447233422332867134241007146077886078778501393059966124361904619404578056566173494281307129702102469860232383461725294993844954458441233724854207554662750073597449835788330717419189184252445916865874632181381188202684389423898681087103740329729767081315140940953629481628583583174065450149615913483299092972576322626153582702244332818161253946215031549792867274207517144964854378697147250771897920157350302790164915141495599311648067842440934144781172939258928158922680293523461260134055671845253626240138487519755559855434846791748063748938760884039439234235661278794824507188492617393793436943622528412124455955071364315842739360434141091874969973276245459813613814677367327807484050845742286939277990837740473401138239122481761442629927792996601306673747714877729965007349411600199330211198611222084018811438117562573452568195151187048089862840642908810823190195768251771021805550481698397848593047060007740211579086327761523215712638148577428269835000852356788429242710618706470397318601169113089833681679755911529448062466134468664426418402072087760049385456916190755495032336953156405190049974985527974333578321975863889240641385586443947268739639333186612709688577825780796873376516725648902346882743609935316634440718896182378068864503806775126202982024117143757097577299097406311570807743819219518566518566143605800632286158153881755473000163857078089298074807605774718447646004921267228983720682352107339494949410271577000409886990467257687156175088253104426388426051388063984889861800695202112951905877415635485693552668499431571792023758091170280847290333643079770639371056735666763295256290146964702734263026507266194653345486717579152853083103257217403600342559904793819070327492039314925847842930953690255313038853162581566764532137590197616217602976518648635735541005063894129401215670940685881555222798457682190240223389468049574575991760924383284989766834539507199367211953767203151624727286788661240583170353568318376328155891769987470310801196592608681953673104635927351985187669938135113052523509579182950049345844138919497850077029345459455826032270697743998702845767937337204901202976167139249544052613927937184935427948516792977268208701773021331871422361517867607204047537872848417549533794412991774227789507642437449741415031180065936778587809784079302434354840974824522314900036633434757120224986868903898510455841716067946045371157585805303803714621381740653448920228656693225513744359987437817251034578132759750503069083016362509350009803843493336845243429719730869454422616104443669838983873353068603426684201959051089355134049382062889566479555473137660417329868719310383642067137555315655267976837218227098215915748300685363280320754420900562746557293278847327923500293590974935824976301621770405705281943050215508871729310605016986397708711998906134736931546831055772841410985587642864372153874570971720828345236804603468450281504537137278740010851562448818271887291861919504184761557558350325196308086645090742405942383416192470260271878685364372950760898209972914590748725290721086382808180651267817082078596010501678729996964472051412897005955173448925081645841349107035379914704955060815137027004130948074557448311821099427572673912207031968572208964369461379503132623197803005080998153368685094881899673369693719187978345998226376904537895449851653119342947544603344969163471020493282229970369991174624811669694133121267620746988731497219511459958950329689600665854991992350261620962380766299319581352205355825375142030135474640401017762549362277871993083247006464501330223955259580232879410733326426999692015175906406242809341164833732976972664847502736166008541844248302170967191022777222334206994106357901507279287321654627290177218889650468312340465842809658261131009757863588536704011292448587451951924520927015778277584682724622612268359617354516028191813480215811866322268600813163704435851574953138878977142080564029434363681003909742199802057988180513347078925392227636870980669302113957397181125744594238051092459609241850925293633983165989099112022901707228637332530723597489041038012612589514229009166724651113021410570430942404676225123538361250795872429282444954843709737706887791777387037924541783527605984760343414992515929823950015743122477909595900576289913830487701302477091123159858331952313136283542214052934932877873258721246146764675790109264315479817816479134253840292602931203113876043716965517688108368509600946242017080028889889262661864211522165190413639837911134064365359470568250727287330246413110188763028819644239065391543423459425172770821938193309810630173169498765606949251775631399680790808146831913789654402866998500017322600805307527533175178370664006527709159019201964192787598349355100289438694618025061540446061300984541898937891069592939653789232418874968621438198442888044977718073422404933633163631982000080110708671855475028869295455858075017673205980714402958804957413287209660364109359258044782688307450718380440567960101396495551582292027372803654735678781582287374103548492376856080352527378477467869303406303053354856286593741585445905828266797755369352368964724668426985717413430733832057413573005176266887119346660872294029792425910553540489288128239302751203923752758537693662695287776695314254420996059187710157478166850807623626535223095071422901040981410259588453279401362878322005010450025693768232158267123707598238284891613876285255681674730808604355246819450928570452283047266929555530758077154953769397399810659373016279028554935686785647332686528982675045330818604463480992149896470620479524591157874438501093936395672168036131671442761404817265734159928039157415495845135259885876735500191865711044683264821758091384866825763066874920912775071977873507555924318989174818549396791361908880963628090174165014046105992363438212563892151941448966051498870911067478989277283142316440008565131004140942367309658825237248127378667843351902834134270246689374033284594715137030933493464653452398993670834268361101630797551455955374553238620388853166664616677613173471583658662288770315923261716470809273383694980037056583005444073055213906536626238074196818665759238451090827010670915445055506553632663813121075523958933870103273655350604618144758818462745336284957801076740699568886308537322758938363191780631569638511981896021236548263355479347584745292607798194437980077510072400106947506704021254330699598774535521330477566567164271538112610845782911650608333497558514520569017990815838035478525449372525080033482869798085907231216288472254621446908713641323541237667006558754549153019668997507351653165262635817175460173164944957954721789925784822767714065451072776301004529581623158713688530039316991063190216725022368252425434716236158882751544361243626464884516674135297948070516525435418068168044765509459036668964636513585487176650073884561848981034237132462323098620104736304841086531429336799990150931653471624385627370869386197397741113555413970916644491490243761218220933348546991614440426912647908760421953697893988436183492803118195682213202086546168078464387038511045793670634649454094357285002521917001754609545520367020003143459725107120440972852119197061894369032650968139684903904397303123097297059839244758680528989183684994960146431485509129945046825969055540037713455692931128842436506291671070331613835596706757480966388444349097647432844640743183607980232633243592633669857975477004924669978643882104021931132895843843164480250198150328883821702842001946112446903738041711414056595916266955436412837600024501304342176582918942358207463231019971557711955449422395573285208057686669383627447295735257847009809200669236291915368121601370947010864801649784756396802500099317242341421211638197841014048320589679796297617613408405372766035718138368141737857290033329913465175043324901352826126207045188639116887831149853368836683881053342900739358366861942793762469727142016739075528387512453255980605806747753889542156249738843687413806763935351180803615366760376049998971899253254944690486482163631733601786976108997767196339297343195364812943205565351176620611777270544547594103663570487648472029080671087208024608443105323476645618232022210996200156447010364892029212391623705524666655731045849484720538685162882166902284587996876092336823105779274429804340530561960348614152860955266435660004422811462944014601846197987342697227197876910140026975611262265296289788885183984414150853447672708088743895587175529412335533054862606624089103157539331175295716903937386701448514736161214316283893961717799868638708117320391298458429193402253135163392825235377934083670341235653305482752434405442855827904271562605390377826321981561049024826867404106923652374927591226045826402473306364656838601505839455436839573509996775785763261102565904728496893585923658995803768413557103946703099539880277769684311670749494847115128933699678811246140654213018133894649937780976485539086287832095112308203957550361900839524513302616012783827159697414859068232752793953537852002978238493231075377298586839617947112198472437382146230472643821942710422099285874746873947976103794492860428929867349353511457125065839371770084535775483504569302802947520969754194842808519567534409140617774538114745047815622208162974884120800160857979427304978856114359878077036852574216612516064832257219363972485950402308729863580648560344180983585381673342985904411431093935308432597958386010885056731286578244380382275162997165386289180461641271242461779441258052793225237216250880748220200707378920173153863989685243777834628401303252538127703376164288907807697230208367100744731001399807799579739795662325624675382110598287772204831179548224493093016708883842275102351667556735665719824758965794208348382966637648517290311216669687908218528266430071758188778707450234814187196454751638624414299207223071581033048780357815462693791136056610948047361725276500182579663406970257809796301173218210037061346954057130463901349915251748344167638510403409286578456800757663373067032489077908483168521508519464269365428968331416986802502973824293946980998379839049973127822363013125970724963587358435293380767443684626018360364819825918903975984969607911248528652241188329121402610903478166297853189808934952321018415963345849454327805160368868123024351031505989353605746392403282795432434745738992150097543245605107710415084346189493137194018001096659406496132227245380123030328640786717855315950199176689183827651954496215660128863161902085671067948405390268406972764602213304277903089947489922563042860321491284591850440541932414015905530265037421673810670914340256448758293844505231887838140862666152659181403215696230323228776047965424091187304495567018842941371220727349233560555681324689983965627949936932143445925283854226831070374484455039716087829526566008571738455896361834004005431914463804984596259299624041987406044478455175665106857027083954839248248884546574680791638162844286571269970610726432685106008900403634680946364686430553696898215620396964264442985117147175944953182302781340269133576542843196839546159510293127914361769272620713501529274462756228625295732374732727871828527081355932447657492662441310539164981890576049217756535290080009641412299551643540660824818254225360877589848949800737020589383782482375455645183209545052255033403693683254119729822964407545769339009041182074954696042514397750130279831324537228941367819174690989281289699299602052001344530819489381049780551864530763073509359177516918834970019987342880436113827318824797443710084413616269639623814621255276293037147600985005939018414610052063342091498527047737683759743872981905904637014671931078694277109869458700209849392455246451961860983135305362537789512984914092071919314050964187802738955333947643367438275062440400469301222288687197120291207749550781071067230102277356724079357309915154799161342140802051306045979410590096608826678233048837101108560649565027058329305241273082643280911420038541179063376978708819295035051291231637643276071635315567121062072276490510442006014768004287668256954874850990337594004503236228168655288524593618170684600632581395147816900231380508370443319905945531790360418420346004959470909099368310860832469458280187213556314817451629956924280402311420714176052853734935619552987115029106632973900051086237858085033358803327058043611660062593267822945416423503388641497274103837700879652409604814196179557520497743762059404186168976414445142205685712880923933461807081751663862859304200783679824030544328313221559306271351558952502152864364619791540639369032666244198701680740565728636791529997942484737959979272982593712749057990469404017942265334979516724642176212902560212233447800283993115741756901143078335238243620593093442431223522948065909702609164186650791067075946899105425853361463502728368253161038035255036606560973314764570301834654143946859279152266893696884814928504207635915017816056932782364570585876624848616806241149934715713836456096641487042155592945618197091339577567803192239307603207133775495308925382314833015526447328457292671074692086892597072521678694255529283871799049222793749583467746325913930873043011485662677133013672964848760595057270829797867261274371413036182109550467242068708770360063988112994790969500279228970222575080303113724383956151722077788676935007773247967130120568773651844943048941653889048610380425123314789254804622381487872299301356493843627864842839789548327960663785415024169945123370658282776714264332442433241764982252374811416554376329162835247978225402607729684388234971678030497213513493743747772282518902198393305412330194334358051957461084548304007537209455427813181958580736212042428576890321918052982077972032735546033058187321960804764109758398333074448546374777152353282933111261195839470542802003134135367152782210810886061592546872203314080429295343403021236774694503534031208442936397021714776698061651935577258807844049701213670956890376412959932741499898199451883161472805904245594863616215024774389251358981730799407015975822525359525083505296825610420736576892762092546180459587546960442169117564510346271096715268716734710330311906119737971843216399852880241286900597964784427085424295833347484811896496986047720940380068405005928302229590274679726840080953037458143360415574998312429455748555151590980590310929189333080599968039290552586356823366285303357507236477442330673943261355874461194260439678595185869545721232186959062359697040368065098615664429596071712655637896897239809350022813145628343882516761298482310689426490074216358774903999213066341482366351918344875838518484968956673875425203282073767030865808560191307272524733277186630306724129313360683051083605264641742769447227147205734717954364444851439270043830647891982327143806412646902096812430717925624165014551655158086939974311781660067243554905551107695795522488946853471741279823433260728743904268162980452813530139188314948611947708347428757184758130457942198066640805266027206566469216319822340519245219281506906553718555198430069816286255080697848484582203293367079694975935347960344451222801910757490675610280789247687784691966414469297899701691680247224861345309033768939503578126496453979865832932208787047702668258497247634469457341542448847767711023225773085424904476556131377572945917628619477426841510396329939116470863302157427736777684272374665239164772675379595920293079863315239241876582712901483401895310139313061918247637968368976620255581204326622036075355071089976483544900868872280023308917551713689106428922971770695711607391401923795888625935036874034783153693045346608707678164004890513033618857130402921089872464632908515840576538430107912843462635097650603103292641369548341844133287546686358343925480550895656916894999269879868235283023891548153430452195047571984306162216447790533084930838589976048387955072009916410113331842112827784077914772502032552819079837577552747333746043008956116030704971321427364665785325823179932070420389356988709297981057727520934512777542954123696324440555305734046065589830937916832147991327437273513957049124926786341360778298347967229285813518266268713380398619251341150816456106232850219410729399352643315018926040019568488132945394957472968001724366682045951584019617818774068024729231512748034238265694390505510055658303896410871819481727085507583316921386535833567940507277242147284826233985760906767553274039603698103840223545462431865311731386551795375047004652824799513374626590987659609909218722548022508633532053030300792227467630511283500728502563039058703675810943979640534050332381839302139562681985416661683921827445436855672605101400943612176654331002481950260190567323466720547699704606851655296964869718745584381828087448056550042056954420246767334480301328869782497671738933847166957149250842282847870892599085433124769971854870301850922487493505576084237452952031431397448363011363927707004342514125202545540521910088221811586750894553569638733321092756033628282373497545242793597273851672246249724622195969384028760274214747808624220098314225952451415030266140419068311419546317245765550671512460594393577315560096791087646343120985829928336175266280158349909423808305643796515060067177006396501517196583934870743445363093758432801187720275754173554626949372804227974567051010061737240495698092637099318377151270863877520065353806481174775939359927129566924212895246906942945609495468680438869193492454860109344447225905729490817913635652160987563350538894582612829133794382621016825325941970169724321829498753752717306891172027274885261126784625933923486095084899604836037460526380672177585470672447971841795954561153177673016999704232949548895219201645201313950355456761251133205689507212467756258203764109919908506827550182002418319988841125137598169681141920218352991621884768249731008783586844326755184946490626467432412703777491028197691300822168897821330879346645626144125363878375130121691009917136806834152600014116891530604231254312008477028746215627397183827669093482247277037070912095344799706574602564698852606627955084220593492019112814503051576897708844143914128677424631951213364418109975120091389316435857242035640037461982811773284645062376701073139949272262077407435744692123126481864785504959141555670615246829658127142742353890716756200825089584208049970392426931333239270884523827508238777805715607974790233969747816728633508571794021571514957860372652427501104906488536449525714428747885382217309263174873251208362399381642206773986683534395666582654203958182219956062852924222386404444070360089943300596715630599612410031637460817070116670205568566132046256672281428476710711715107468057994359329668969596480921321528997801858382940468407529920940386305136432878393801991127933257473212306438284023173790446470861145195169858465308144845891163785211505927672145698336115941677407306641431972087958955908347790247139843231528250025584724883383904690239926742848188212383062496203089503685492037636470643186807149531197852602689655632005896217275960176663700604075216158242043143365216750810769524757348340947841850595483938258358771033364495525734326194441822356236541538543223927321945956787975785243929532368504034606758244047672372719384139599749553426742576107494058302462278877415128638362887164872724715758359482425902080181948807049253512120272679973963962242122615129738926764627134750089748990690331199295462955324562421817926624875808895970894025727989329158262994385051777655368468238668402725680016987271813756299604741314917045971576645496226954904250800382828497026975502519778113479311541634315172580338880427756247781164874326188635825320036269985068866011375542787662443656435296914486282367602172745268033484877305408735058065199914845173832967412695500443128257666695506118667106137702729661999046498707954499757271553617557699980682646692821662386828761588814055358395503354934049281456422568531262657513727265905887214708884108422462618686836082498866969709620862490799700959051293532905964477620865904136603702666401621352075415602808653085327753210889615285371323111746211408222518788486077598405576908912265069986625392131322488619738090725646965058326821188751920406939778701236331758214952409851392993371065050334500096731263040975580952645193338738639654868287382913850708709562990481705366775771738378551552366494793317515512516773697459267644814939271082508558968831337436676265535774011889914614101114403103401644218251234783746788094220670099206466401805277329146443773066291187869335478156810219450584607753329585384791302577731167186043371072271347468015791377439194012926937142988641313092676627903272113327432087336916257032438025258673832668017337782251921030977439014186772410267323672455771314733784038625009062909794020005689054796353802142825508395499021142418233552067644312684270369142589013021951139647675592386303892532556703817803369728121756123679736811066482416891946108103427825788982574194047295392180667897611229705556590781761162959572484328888069559460436524676675567512037039830753295822830850851417503114088729478239284301713377446555482168617043030498815787360552114468359069137444057282651081865382156806291221497182567562197767337320080029963995673249576625471591640852942481492147778123915519288411160104980095693450538093780696829301729810368231792918610178998641178396016878830118380640676176508743160094810025588637138223670368726435965545370664583335899857591021064979979949516596889737861910533281046801880871260623087368943906201588452600608025570758379638584108315606415204998061003453275063681380393161095299680865769372549430434395413187654705850444255644225022848777738458997535513195553872878749457761772438760213195491538963429995014086763250123999433066946299613351648006885067278219895411169973814793242620828578105492103858770511295497953605156177471515423427109342748291202512768654207806542911408656580435813961071036556531858835928239497266866426019446827385056338986555326197309367215053878975399956527213272971397677578050606262631828756764896437845868544852971563402602157602224443553109397028586662466001694797069423446627415709015997742719666744435657991685361094653700250175212202899379184273972079309058905356636045186799246931285739842912598133500057329436064117653471911201618132705300443051802976478704917451571777467752308828755985667477733982075906917584737390708095635562947711645291094946619581972845355433900658844348696482316916466290630099454597645727459022571729007257743891292714383635511473625682566592558664005432217682466464178531962100286826773041799516037884899683941404455215979929181990694198377059549887329370654411907493204966853229889346580398551454793142906130311644985407713712560488986897209389138505554705943648757442347390520855652053459289211803904219705133951720464061924732952087860176853268208847370065955490367492787158608410450309960065487668403735028125548530861291352333763610732807200635303753870393582195188524735448695496932267558184679965937301589244988622998156796220048746126286207923786175678219920312358390162948945134109745414196900524008506555332971059316103305098708282734566028192394394314049267494818769840587185535053059716514801957401928791188517733020361428642469889425247689899519602555744548239541447815071961278714274770728023944013225874324045603022919096715105860761047683897059028145334156109310660092166642932372869290226286262738201652116592001376522992043725260695952440452199735010885055167443202539957668901461557948494463965434553504769083552962295754294882839519177397424054379097972440872044320677957951114751670226073237008692142695401199394777088384915071797022934296487521798050559028078441668873858059296352244082870797673426744759580622826513145153661893635360316702023771029566634687703135398983025458310067692539965257557786842035447980321651561211187272572337009611354883725619378413231333746214049913493421825714497356614388607541262275938413068966872862060813302264962646000129605733769962088140450568824607364093366949977152824756953737801176956727318907969483485088111123050975572960779156914736950791647343390157596183063660015511563692319266608143727779678721073636914635686377991433557176410137774875999325652613097536414571888413726357807388038196243551926977662357222979459381482096385609224831885198839690410923425033661939136240048214792954046335044985480759450161676749416849601713327792812603788849673389668560539745720289484671175209444312206969884184047628492921358034716369950578799136846435397940699258936579072058418326486055036261263304482348862766228449187571374281871591990188819083452688319933202919411470574098462288959336419839394563620834442982884954903107763035028023008996578888680858584955774804271385213896096711904731089589121842467776982229310968946635718104243170396848095828276487898464608573868759718625066683789818123289237560506813710635977947925118579677935526971359679601086485774816051428774315033513992468197915060826118537473236732162186349810319818006588955685005534031772444372100817652585373234517409045365999200787436807720706053322246814904751567546178338255269144107401631745269449949149359044087511407281282164658248086900216972027123471805327589907215005755980736239472344516355105672576808025304849886513946649577361736494568390430969574891721316344853195434891756134733958018203153035150320717773505700666389400940592077512952055135369919045410037363843721469433975618099355469552117471500700436938916941233837905022951268407946904242096322124454855120277549343351716575938418875227758805272365647413753297614269172227424048334969985096962207050389450758121943559498939543030155925133153669583989755571387880680045286545849620512436266456111556972622568167847802068518380754612164372111643797056054163339821570654726553345270317824795039924114968908879861670376913287437682633058889720639393667255803392837883065771470288964286116021988814614472284618465356845953361179138858504221592197860223342701221093952261942423186043178955370902066819162530546174170747920891635305106014379574825170190982174902522173958076588538124417190519085663858917246427202733563021579626457934492365368537834674742231735605518264776537285921557682666569845140499718945855807503437120062386452045221336194560375232977835454945777484803697970316001930232032165444259995854878124540212396414904553695397378293243893112302582665643646879691038017315555267911137156699244339372256116694591524995830088635438254958466626702851374278298611921548817123408003851200668765893697202854626696550736843726665033699144883287222911864662035904536755088902369196341633059632870213962959443668457236508768944865824023685373126340742498428287138373089708357918649541465871159215163873079417735209337484051954903113169078674807455136390467102004235289534590938472084105048861441248483339025220036290464089516551866128640489326518903286011646292277635998435075314908485157784804043459896053978798553912220103700040317091744180584100615774055244125313228685454803955061473837235250604542224615588033878055338395123911123481328366733692910535656831435765077301613997107147312605477442733249948352103777017727791537107734398039181701803573512999520465369712280440420633702654651493616668261921883243229967551610515550870996536037511530818884886871134156338197712653833875735020275588083524539428359716517931727420754587062606885738508538041364188262979749840178678573847526701368033909082008532844135450256214770692358179966502337536562242290665437925499081547131999982565568232283642846650339998432092185368378582025438042197937405453487972439140770222592387477594014202406557131286973098564430571270105518430856497434492589732511559962453398640327316125588499135862828300530401317777352544876152475637606909602509737137455185508607510341005653719729704954035328037754273470930406096665452298334297031157006583114868915705048034484847381707855882195383309492868019329033300721988598500086245723199103158107305294863501734887116512423177664209861012203818779505903660303319393923817555284883640440935862825338606506948638230455558669341665220512682360507966124343183831573825853203898869138585155962480564964387488055571236085837242387034734511616198631106665351016373627117013677970231423583788038293326378209298004208137520969420226226650107707743236850320274226654924564464366718008871589959943338255949573382560818012972433457513934918106973811102476865967768730244828012001037229278612604079049780392631021694489350399204090133092088532924338084698063498633443224245942610466967732997774016745302861010445571959883731859465904720081042432537430274261757562012644553308981272063886110036477814736665026699523181112182263661775839970290894321597725158183357488066319673531966275828052915384596862298570528900760670880395289252236236917722128339351983222741908104594822532573905840440741468312965640089462656395619634007862614527462040552526774066962278230085841685508477562036930634044982685251688557557233397542255260076238863365059438875169097262943486801890248411410321182960759818695180709913904970370899278343318763796148392241782243245819036293412751246459815931556883268441077290352268566463850409526942815404502845500607113420743467125533871296559245378372433871101075358889902042295485484993943226320419735121279404869099006175878673618400914026709820017014323126401068303461783062210171486375419035717921523620389430223948303441033225462424403645103937760316289048667489092376523975560737419198095483507462790261610451841510779607384195970739599045861398617534839748975964200441252730553378624089983209526614436922631592705166045777819760401996151280117374155149796719654620086504223695726565188015975757220628051014689952131164846809184377161722168516834527016833551192166084897850390594133597401788130180143563384353624661982383824884629380108622217705972526796117454506289100505374692972344510251350927695172044616229181529842273714430650664566092421347714492346531648036521790263413694664563277845522637348688443137307094071683171835122058451921790369020501920774280504199028111393811733650907766041553528550612379088260302073762730377613524960099196039809771962569724268889203641006068280995668897132934123349893820228094475253375560531727792224543468945436442017118129697853565108900958495330599761679296181237308377015256045764428489983903040764437780330755541067710598329611075371493408646207760220219546679125132020156077442647454234508240106045836386859877205349208362522561460277666327883660258468988175621813105924235574811143440518137108003811951081415132672971063557039411532577949808463195996318659938670472755659077773663018406636918638031170103498980890615274259056088622990727677386834442861487322319370569610930795598447091023776448321070370642434629665562628260433254229440577901300207275170146214906859519326706762158953237194686467076246176359256436115891058221868000948499919125021210481960868176502634080202981408071868753783369643130494286483172348360319264887875550251293027579363618024557192096786256853677951833921100331765944110603943970726378567991966389210463361019141850575227254970618910947965784115980125210495641299103491923703978370350200031559566315913854154295580055880871464266674864531705134088711779966098655226397428682749817267943155813679202313893700549711297516158742620043558908171642701614176867020176786190818728336612165699415988762351087862202519294220026391800859798210665221916722987952573625938209481515619356858355723736982454578029740217159992651550730558677543010995236011157389002819089798059725038087954429375819668486578426539332576685208420623683284680928767471771150666300833809659794626262774516074391800534270963151628053273202277830117125602315424759582707320542243719684789713699654285498935509977607178092739880255707289307110770086514429875772392842908728397409966713666121263145814381373336076655594860485701548772240802799001233262396045848521247774674483660448355750832200549664697007788529068420401006142523410954414312197262903293374923330995581971154388109242393592090992237478814910362059905000358949663692398976180064081438586129384796656490573078978529568399484019012539253215627636891357391459901955625853702330727951321093991390089967360087973083390392322356082801526971570091968893673271624467282856453844930527706092507468410564585709326027125118055949260007375743190153797385574881466782809243031490437284833164274404564037045129396471711123768924315960733973408275503704865671822123099591326791417036204202615583631195817754594488679102445560194664194175082823065815048179692725058019170647299111944716834027828026372506920488584083020407725937358120179979813795982191248597552597958085383740454834904304887660911145438350837002619920931457165087722227518582820516463859360484754131307388974478883719910951404959735107907530680460469891576370314550608509993138942695812133658798604989757425016311694062416183370140113749495406783133246566961867177574981113484879920882256979862551334565415501403572515017499633007533893155003760836821854398346436643543460200385584577585072193169354977190005353592743950564353247094728230427321654773999100228434064793570667166668633150207084131118164676961923702698639888564313496410434621790992405145697413454634512698729071164882270631049001930929356877662173714547746684590108581350108488146940879656312487874743120527114280387848527454456823988651457692981397841781723971009896494540663542412594113858793427592033267908273746005804250863452650815538396199801823622620742403455923644753606293597061942473451389884779061999769211833364562071290135190214231063916249183415927162761689818455274590553409444918198847429617858280413060703412864549813082301142338842632053515097422854191646252610563533576654093551983686260023642931032590596815711803693843825200706655255542612973213601907842416527156611673172815268310311414739100151525585687183480372872915465787494254412869067197966057138648355358441015156215837926051580063094941865487217110729121331312815581225458799688816177606967334479023179543748843741169387882883107295743467332091371748042015952662281139309065140747450032076087669826618574740456711218269460462377262119860546042986205556325265365581658505834514700091953031711981935751662445538448344473189023745860902084653104132181931165961805423141040587281482682660307593288411659341779049345198515498506343765623052961789288313075295994987669452853328598132190720370953279894081454818422735549061007530508004817720009878194750297965720597284458828801050432321730624812970651181057806965409531445488620921552976218876866008619423991831085805295041847607790633348611215220751226427027104603293583969275407099189563688473119344664990802403345309801909392615337818567823770132988459513673904380695238604041257712197140463861341608558878422985968164489405478518420295144320814647706206137702815487126845108252276061869638446832141755450577750371064976722618006837033049142708608607924293290639811802768398020655879510537106218354127235097205602048994392681555683188158258978719970348568026708399226360232748851022135130827839151144163914213388249897394519326585057818338759067506904823226494320401956727887206361565036288170058518310372740184582347795783650396653121209960279220441244485157558858842092048979026600489280614263806925905639196545637694351613316323487416606938450662118912624897262485994308263433148629034717280184390599201778675685337939744014114087280903883514101033993333383557830408167744858534085360157817455687491407507078614530786456219271430115803781901789322539925021139776681887812492971591680541120610407463963517168619645708277468647195111461208466960210807310928490196846425263201584267038933053378921806758752002102086127575299466995681478936914458194748185331677640555883908761390762959828429881657110402434326953283158632985777857536172372931043611287727070289560518039742733724825691489045793879546131181331484749604033659405580690028479825698868123299572479624535914052870636559646160533257542851086817770737062451050231811272233398219638395432026059484985947999917984197376399295491909753216228728923929230339564276797674301734892989336821571578631043496550740917326629806891379387599900678434529226016007636322688591758291766302514416773998008316877428505999326418166905473727139549179705859289438003415823899079470339801117107553845376498758928982078104938862660939913423062439976372889020016097149990031705710357269536796917424447530441514348497347588350556816372451889598426529639716136899630400575012998642586631467862786185600245654863995997948878828290181280167497583868195527618099581178899631181914248238984584088776282563355398950677412233657440388350736921016089813582770562380623342530913337325532482842367926836402121757199221252866005570028276186938775415488960732912743475336309524197067842946314994613055551565475823977300057120382582399243914322493387774886615523549530064858299806744734457462254790053598202979728848566167958669251526086558286195577334458754767228530243340228365466157446866180449378063050471104880044082194908741814473465680256410682370758000098666681942300979629762858016934293605127128567494116958872810085683001352942215199909803751891210132614918643609669669306030592428404909779941845302027328247829897976602683367222027375023029918957712339318339192981477685340359986096070040088053174092356081438818575085651391108293195817068367411833459080869681227913461268308212523684125557839965424929817235376072108579880387759596611302907770858442298468039208228078191034360222804757017103216983335648391675812773187750807188977746598856920791812700941892346960996281906631172081747880759247495621479035703804007082192966848775948008281394069772335216956460048545173494815032790425356266295739286829389319551194860591745166657132933179532540791212233795360757105346829654237056503517446351640234936844760887913322879842624039873500531041076293420503131741223006491337570017632556296981670360802528584816945677946329889942277318566025618010834216451065343735346266979877000883543082303803647001073372376358434167699483802864708176319459209886084465211295921888667546077396953093338310888040754899832108899732133844542330158606066203239161354307615406467990443404164926948875769284050424730114206761740320799696824609886555805871443137119110128823919508006898194226311106902433490326396296943649454855727427626188853764300086748260981715530494727937326009253234427484292279656481713185828982168468001142022847970794258286138200327254597182668287953320583572524558371165710220127470544560542011259109205957205180331061934987513834283465157014485536435066116011639595293760213302358758341658284398680487742102636498659529519733084840629221265558885481024615383793127113125080779645930583993359775150414588016462923023710261724234578983692150580349245775517099212758190917181309716198059794994037357600685038563651896045312066622646194142180484066098040874326985637133984219385965190655319289450516913261762437732222090647894906206392004593780400273941685552899021763394327610702622829002198507640392565036046607283059079077967894800448671790432358727781817987245913865246525963030045419942720269609125330647815967800555786864211166395181550243267172200129718052830525555562992317428792650354236074258489520505897266800011089179471459552729281477898116414247563193038539559287970729346433780317027587541147606871021473393727896222047698297287963995536137075760970042830701849870897366631544753512098481647982067502067012256666542303094056454127525550259157201166327984074919872765534309702881127051389489526257699115037451333861114549538328029899794809283277031776530367311081491108299162560096022328797817628452751695768502531298036630875207227636281124548736190281477528410259100892027748507144826000553054203285396941367834985099533455181768702050278469818650230447862854314529943654846029223158684644565993294843597878449162438479267091709270919197446919776953170112815828570992164761105750567579022306916788866149110860817834365565646211401847335329660297232938501327157402701241237361315691097501636592889870067512686693814693806490327172712866693619218888987417377020865394249584886452839951162397084028196761623121091748759414987630182879221200067606656716912466105812361656807486663896591061385310964148970643133249404284655140359075666627759722529944105051529543823026489233487577125917746207643415967681056338433891758803532765588417993004580746726702635565280722321715447358643180898558069549104352579088789705153205834506586538321363298919531128097764851941279292032140059016202703931984812019269860033181002039906604767268367407525502188566686599974849412761504303333971733907941254178016658140113517991841382851297909133864559629166530461742736355871125453753799830936104926382080290876145374453109121235769574584949390453041044589217154399277112613118447598098408432583725916370169228269282538680147646256454998672969668320188350533041487417295363396659004170188529408282686590840029507973594811743363441875175956082362954356727841965461896637066872309774004107245324653316404173934522965630445001963725479445977366939703698597642561812793677908910577190218752757799501325360019206771292636370917521346928946158441685444977381683278158557815598084379859462316884606067387182637663434796131359025233650341455300693702322634771743284944544569278449406281842580106131364556804359867385218665937566915920896759994537551146994785059663986472838969182936018195896406449183739942671420154198572710559094517865782920554119168371330195284367792693374196855188993236505640424055064530840057819062972482612942921651729772448836554645656525688192107565284269632303631561442907983948588991028909214592267569453787111645944229308551504334512382005416354735691590095059068562374277266284883841672010036555237633134381605562614812824218855802055309043319531756181641861603348880302402332865624359034386343107400645702737395403361347180779083159116426167139724215916461442594035122122069191698660837797404570145221397589949686537300518355696681799739938921358308033455586738551148997365109101514082052008396571586350061047005419233465859192369638551749783213060917245988487461123921849553266954502050726641306033268728054076329953787551520154233573420169695745639642921425715566618681474213366886994092399885894662430049142821046962304281986400977165566699915674016365035713204031822355251292815625656500453054799936575352443935548710899463959182573034367683754456168357419596264349043998850858588018470789431273853311993234860971288971942662999623185330510524234612313795819177161405867516932393625409335067628504221513445879904772558920429950646892912705876522948519615060820392194518511978744139490275493702095947439664573585114685736762005617458030163482994767928682005025188628676835348035253505102007756689482144455817090991676679199579190550154656466332093962589106537449593816172048066012111441488721860414039089871812674001090523566817001149707328873708876022870471774597975545149206563288910225686667305750285682050628435056485019717113146877421698556862028650553074586350822830967496662518839129267915862075459530770226897239382714844043462847880291433203614660756796297331420840973433196141972403999035335048104538593704991376935252030267175799411527619479182292531274910765396935308067556997929070049805753499524612917848592442171824121317374218900168208400818795413250517367319543182352636918336525519324105869253931891233453017122850990877144545007314785275290141311641100820177078341125113708179236403087107358100324383716333383552968757949765066502054670213560815359518602214541644691795000236590138875920003793443317209031351875896686849458460971947230534638565994720419314938690832182052401079393383546443967157002952791842002510982571440465203890617830622888007236430956530596070668018195904621066296329034135195595808732967526165584786251230707148192297927137568117497619088528892419752352132518819484681865432658985199654679984127633422940971611204210108092869752179349705346575390307286705773748858249490294985347011268252027695445764751026714357342561144558465928009207173890134949363398693958688342352527005369514239396419464974291261821937809598198963523550184064685391448245566599959703924465759617696672824425729642437149474825891130166513230360897376731949715285014398351510056043640529871598917342636063290100491975683021906681915224000730914869877926913217439594154116672292183543827482511664737528901189705592771251355982548852743688185092761739050261594873757112041966211524727977573651418726149341166364717678933055715237366044738451842655978868189474391142806609502649322357499609912199038951382729245406682631373363987727649134597079385420837393975664960356270785084534771275298378191531432870940895919686410958957780427969134474553089386872825936100579915566158678179468368141168921510774480310161205428158060407899833177798319792622138449951571292354177251526130106175944340687299976656125304109015442627436312689402580466188647730317362564826768951369757322250697240201886912907198171387598227014668972448159649036758852072796944045039363331900862437925915011967145568163163260915637590275116716832735247538486400497675995269079836818118115918400956872686874924975234671542739573844131315977490878293596741360175523846611956982659250122166219883182734324461501732028768083785149952941659093545366733028923403320584769857824737415477628731960165624578568165457092540945328763827050110493939453680180709945959807768418774517859014101102600599831039130556787612227314394486246924541286601180646962390853832231254728275015126047106158776225834273028567875957046853779928785128059109362822061874720437303557958207075994966979294420399548361778161543277472808113451174123701710685150969668566564172705900672208704255958629022807523340489991413505790596480717390185501795736471535144229739340404094554880405485289296968953459780781433408807179308699508681368261507359806571634906151152531096106732231220718168451731583353128942652459503262033792337221183117103752573458197964298002989647610790696923253670895377340522405035827677418041747888851332590684159358826914611133219982334644492006897895716239363178656453622846429421247100006168174985757111564041165783442580509281295995453440906117697321451424161951160658035582097936695707728791908291597536804574632312572551489449103043301861212728402575196386527853810170609824098000423188177874250072333150278390625647157999432236282825571216398837471023795025693574426344559524646125441288444704310174976632225557929793752270884917758468748644435764556769442458974099891201205518975955882166592770036815249369692251183356002031083587270467331407168340013260471772295781078498294906347364056299708041467679133507178741627895224497288471154027062208645402516571203251695683475969744807967394808731168546298249464311261065285780044223642006913983924356828604067249666525962685799291813330550582444664884122751868243723325777487045261752997380962892262346714824339618917754476383410468559234605269432866542755451044865718625861227026297909889957631287452951427122944535557825126791670299549817757701790714307967205562307395643066411043825408543562712910499439450734435189201982137581302222423139397697842445296690992654517490487980083458336335370184615417789302155566468621307743506423971522637607761433743412175468310335916273917445056868077869993137621715503619809511739194078043257249680568994444951435758768045993418541400838360830645049150274227993363486099092163347724294036807725703983433887384953390943918330846068941028191461406997058415934571013306932137080963844713791695673883231632641896372527379804743865510866385703148877252832048168112900906434200608437003154159087092100492288486105932964671299880499449023356403451131064555450323764183614862165071002302195476784630853697398286065234857793681907097846735869538198126591883678022612392082756123513024947741537222881742528695979361702394343916916253936802738201503653099237045625717341242551686028976101659596422524692928017724003225977723968075426279705706990879222035260761718589486657209514387553422205842675475281510913472957265353738915672438044600194388669371150214595095254248521811564932180222883159742522290248128928321708225682826423816560417315254180605131903993953425270274574878068850114981579915352999644708843485716337993675532618032554795312911453131682877487106914881860818482114316220992504401091816482406149625485433358160020674491574581413024491973422977220663021602307103391849338222063789338076977738947020612904061650882022920677718980824751079346210381237568141936179859132553898082430465875235215292924466534466671369910323457601351833343530227523384892499958619719260414444588034818866666036948911130345381600607069043260855884070196566082369444781852547033075922360499479230209033470466300136875254218972613045180962431532273369044600412993317137524192901061442274481792514887336340251857317128534786283783984312087394200780413916270066372902807954833494368780248110353615457841041254150050737277804374009923865649784909305307952579998391809918400845870832505814713153032698613812781810908000120863996864570404927184513667209698888824128989514447257079671704632521286289152425285834777495630779427967442892283065385484487923173561044737477801930491233839221862786706410077080865603210375000132890697077829447822249013727203279526369953280324159599558117730546845694118509245306505933809179260383690525003958709082709343361015225358957325683692019168193333835353859840422735606440806971177628073008657242586778399331448504421261908836718052591466252827052657443742756984561217514264659689039720314270095741465648171455544974557593942301500684020936371087529996124030806739124223928878778401798244075685554758843927637990652311175903337359461844742078284347382202910422542020201252332162163312953282940507166673800794867799937035399370819049344445396953165872583074416770902266986057007653314228555771315881885341986822864891237668356603330764585015849145953953842401014941194077287057806904626223983618800540269860641659411958064919094258942462121005559268594947815879422677781697126549796047941584627362556371751822858432791165911421800742517803770901831596102896671745717648122851300341657724668655343460004810564646801487516124673520835782005761054150126699406308546638590070174437698439549024320779415542001301270396169450738276975233041523125540644540806995293394010758047613128402537133963869172858840647253639248966495209147481460372008627675600195168330963007711529860754951660885775368315547786902437508409620554549339945611557463537833397446817969065410487620680620991698288997736311158229828538581847803433227032015761012087016795022173478479309233603864362128711291931267363329892020439655752764757763738637459857508638633557034656296750224277140867222507621870587201002422057692874988389952797599694581526908887233777678775342331573109500289180413518843481586896524827500410043497263561097314753764724216835904613811438116896067146320623984704985492332428696730782485213021173244176159112822570890634454980788276133238752525281655267746630699422404670314656728652191673065868126832763136627501732947121812684957359292666648960605799267629307328786549635331868500921229307780841271726480814784924593746938429982965253180681951424615260799643855188767303532525311921501243426364361698332056374802502500308820811797068914646721774351604425738923783839466614648923281345678278236470329138587901960411848060905860645772059401561908280188214772543219354887760872785045433511621582007101155492737697811876957603916411708412505621129934255830364110784319257020320073735060428518620484486131941058220140355553934547950418260889523210988903383291326681035571543661535080692886544234717078620457036176836434685398575451412193146397131822338048891758483533567526384654459637048046033405112777769836367522625899721550665755488125197090746661379987740510225941028180504273804550227822944439100348765200537478723875307121677312669652460599121127646542500783000958261620546331347888044441206285280054078749515826207279742995839368938655861001375510404133603408500266997330933286473234449167643225772255964203262891148154960842775914388542962120356606684171385358141665558932458768648148763439142811201471688031111820107987556613835002638104668905588427037148582399009589168594058307657838526825132002636913387550421278819241266569276832538159744682694842979685905410934006164946980184314547261110904792109094332173312086357017311887908036005289344141157124390910479261481391200463482619186350943379550723294578347192818623333906356354787334296867925840754043508715734815681782347710338555286693968499117211111437469265215109802463620260896996388649043092133740080685177064895846680231765225246574775982640954866676747629142815526254999204765710152602492150153255785465136773992220842123813378032870313182767198112251168041657187907906250576633584117738756151035526266141806967604895097947329026427350484204484695217192671952830941696957412773814931300156554235914095306809271969159529127372962595097046670261960856143220529994455734488064470090730730763452328811447872104644810072650539480715136112355800892730904212296326200440635173605705463357445480765563379755496197327076260007898578840628171160065044507196817611688539546784974374607391934673475776564666357260712244900825942674397750341980032747063049530884535662087190206044935896537381301837963941382789121696273334231814056878463740773121398130978830153890185851222325968925357301002664804903297335423900186894976209004263121081519067497239258605207109498474583928559835687432232403059726270874271729963169326199868159682278495555572909269657443156649151330638849368235600199475662433497722938508661619185316708749926482158739283675657060184028124469001981615349072713284438790612369659713647364729616787362223357142728000437745877947406362459900881592169666833646099815850759955498640390735332613783944858736831211097630175435397116682978649767998176542224605316846568527935598573011609196148106230999462947541643521821874298213937174716971258941496321693107721380362093611481549564514899268770307938545404151272019721662536771942000232894088284214903860296342359984796684022957891800472996919484219586744272649490796429600214982585060076131567110066595864974601033491921904807136657180861220182974943985751234701367326884437418909156790454994761270648283440112438195243686297941662920266734958814876540915159143988517280562594258955724274647490495141063872655114885403176913928990265512958768849088413878686711193919559361551325425426234954209073828401802245856004468893422137035622874131976540185067514493156228228448123205012032490308714844953868247391349395316329725433836438020229909213178427903840124974356698032631599738314145728167092262211463024526193233792196651700538080070046964133183362942392990304403367410157862839111955650938266455375612926358509466761782201223333575359036013590144335273151845070919113223532082851343586116438754605727070129009432012659074719922099051768933938706234782891921780145682660208604789420130100350935385217402854793974918595879032548064827043306000278896747687874207636995380573327654751765630638986698593262653451031714004695483878647214832833873552466696043020862715293754484106449006327002212768327988769110846502323730163028811859796700092637578237323663678444643603882710716537030021363127968997331867147933143972389157821438709318710971092495152095626174622026128069338514253692126457890307817446504348071059849675754303880099317459777797394952134722904276955448560448630711602829419749581653629714436533543407449995194460815213727095888760346096649403857905909313656380862975724711784233360868168993437253413018049033068878979940744590767353810496374747712642116923194186565018724737153698341743341102557343214566442493226745699804006114783348083770455622260836551266067077154118730074573145646734186911839905559890086591277634748387502667272126079866937095860279572291368092974973026514542341700117719875416662189683448654576992916615743657257275668454853861086371785234625559433058031650684889916778281139441622535812660119729352499242669255810801690482983037299140638760207992417313875383771059610049124027042206748061529039629408527707943801746296732198440318449022709651337767504542773377643700505017432697612331599395822333508410831279098617225493984957775153297601340369889406722723768160259090009544036242407691105836168748472512396037978305780423144953998254399282486997036251798966235714152491672447843935818608670912858544566875400840377176603788104933427850305649209436371836041459257148277724960577925859159698464706834795398917585724148147318030751074960409033464510766261072801235932308608654698024319512269325897379571069180964551574069470556492323360936774504011364932727704860884730553113968931926118427323645416157876721505279785334264918236852400690400974137928840334111018361577170655581331388304536298592498887423844484860565094142832924326050620990819252915491668973825609929398912812921835019561159332216595193543363768850209843920832053211163163057829561094956430110738040318676244045337851931025939038910577623613350756144836649710648160810299369675754961302825806086848032968282969262831001052650765028373212390714891264140725610809647376662325316850153497878200256084346464370931755886494827533598050378574625825372507320649835698849318323911542459315987241701003976710676567094467159342276161225971117467711020879002555136767531158193188660365700803876161147266462987040008340993946241014893724259419468108629420349600861374413558485986507645084761325781786879041803285525719018800634998909450178197678103830498017550905771259798679400056919751782403019465641484740677678920328686186016102751635715453821139367990304446324624071216920705334969830751663395493293500323500046324162276885659538903380536084210547292659568677937162887095865982698578205759094445052337846075598314902474687241683611475657723528282463542274235296321606088767073296885320213085865498936198261159044814591884645137798273552872096149057902529675426726404356345573655888605157100365383792559183878553280611569045016521428837038631389200333613004441021249771544066571951125550640093849904938047532303383337923996100758764273411770847396373343942032722286648669200000432901392078114300756634010361998083181382778605922815548374226321841753120509120454399582054397623641230191706939275503738913811523208708973041491937513160643934750471275643652510026425153343397281294754151409302732760267429513456651284795468357479889862966413976024175636065022021844048883782327061663789261545435343462421543092765118034913931004620293289981799224277916812867451165314404952313793005622953768589162014916014563341994101989933922140366516286159621723548245322639057042336439202907061290673483290428326412139761991308547632228478587287087854170171297822630231059907240983612060162943145658144242243580638293312003171498718497322096210753998087274667754020766022689616374139412444037064059771599827499139145614355824873092971496312019958863108962374153738021596106398177869596046903333670094607624544558469741553024119674389007670108412355584552424830165494527286166511923290614786864852510461362459958260606100882284869476223175614647771971752389705985645019892301917789541945958582763402275175521267520424172935582409628363931112766696677582195577095980567235170555725994821072090854001366191728387995467006488360483500254942202084211046837755019520627097356389469569505108248002472740528778970215017949271783781421243283067733994866142094354855129577086465876172451084676704679354640728136319101949758253184025754929699998978475139776481159107427939173406159685186979796289306435071061929037690165050833499753849488105229289309312339165733442042107600728819670363090054487484316134627860952402040519566715668403648712061053367263251985647196607354063418611467105842118181826426407469807131317438274789089563976281843425451730597177453223327477823116414757540503064536647161910650484877499041899792555499889846615596052677158382619176567097242922004944591664185168834861932559301818782198638776640083729992436420703239904632155523325906172221980175092874696176786343496779504556317365298531108641512727014477832683648702087525813189439448770987134626845140129860466600047694391604361636574654158504321682735148155320889132116761578124402727831304109668980765105295942435340791367279156738896156942371060619286858529590335855733622795366522979251725641951766995664571299746919305949230394800138930778837846889976582464951559527866495993798461290531373587643830252994224339799101631191477708673936253729013156549606526497851130034580218532401337251297171386004269836242391635780538179454729031990492465046116548143311305411806268524527053382690747621277646131671434574111989450743675522881949070510796085585597199344025014878886071692808938635801352944027284702219264068005083857757427197125883247743191285934317712525436166486233625778246125402886027603975906852321158419653232481379458468415689227101640711388420924541997379503990857247764743570946519808361097300942438400013944112711474714133454505266963386445377261134533257133966011323103842045752829040590542412980019049587160008417619139922581351764796171094084851423063897776556918076481652400607079668475412243898571119812163709655667186488550578727532600238240505523360192783426193794082223504286207039320145787371479915667232070882034238362580759072619467438329419748730138706975398335215174371835950768232134221697989053597137474598327745460059393763643028120421289738450002717928224505981135888038654735471789687052779440141489643963566783081104757854814875392251846508273312265508898579657810487997165925048716650428031136003140571384120562293618197246868507468298207508786213883667825065504001346472052930250977415342823595123040043072458894757252992181271492671039964971792815540338343339767064049158238317420316753386775474018195562327419723984007329372168178628504302663479978344155184514903283433836556279702862660281083416271143310602062983959396303738277058055879897130178155076045027098457202230788744797072824981822921792661071090519614532705122042547996279772565835120720310291130800883511013717856260817067093539288349533186788108182492917180618378875164635800444958042838218788372950651590854087389467158089661919675127211753949247459216009767963981199932946717106828213253097648015107455328703711508274050461534837620352225555199558454537309551488029698131984482703539820687873545967244486479721333448327083175184478336355123222918116540789190693010215200418855491878786776989974674992124182819051589947394925161694362793237618493337899985483035389011868571386675145016917833080616924772867186510832904144153284519981034257168838251002048204118707799904858137730197526635268431310068528366607575697178842754765926461436957094350259878589589068902520572615923755387601180435843628966797217291532974715792461764696384128996261946275164043371385840625824164145110961392735322856044104013101866399422053298458542787803815726924136176146025619274699192035281374025903432602268123544283382647957052169794837204396778955428769271106277776730295440712125065976703958702457245447290309968916820355506077306343068832973901417746486303958182203129820458359067724469572378348501325216328952008802627388634909377508736454110949262680893174660952023932690435154965472954024573960909107065633807950357405070406444913300366550796767703776588766208238682767236058144007943433940742853568497304190110054063411869621756590145319126923947912883475570291445421484646043261116264666644043388232077049092983401802831726238221741188887776401052003764823959864239918700393392139446956693892127461635690152636911952491146130878619077356521608706939784267835004381980718094101208882657079642595173930679492462695210338914486281328954267193672444125676804971504402406284541525385939038407771822881980138677925917971817848691147593083776791308768433357713514522912312634532429996536871883131546733972903634778686876757314104991125273623035852737836837370596075206803872733561706577483235518813385656255008906637097649984490992248452170285922595777420272091802330948347872648773806623915892938923956809676165924906036995786237607754439971183314190569084019189060314708962336540352719448141144962638402072772167658930351500035334478009602846624166047663309841727497106405555822222813516183380603436544869350607523042738636862939502474579489744127188754527737290014061529385928975709115159974635075367710538464821065820194015776825158682087210434184090998861533903735131751991815159739135202161481300397433895285140073380881158709608512596850470868959701473172694834219743405342696099357588909677288011815541833670311799549963179675142513309796564883763319170273863295706941917228759936401346371058958794838597654661651307961561578570777077094319883758079577708332696630429260469740485674417809830030305913241079146128296448593916903703656187081028515655199432925882708508621072995862268745777469114917813753303063539121219813338795547885901295572457853356649183269142740302656805835447160437325230506627492030483342997947353410372827120664318660706378573320527714347191792191376211055423730492764792087048887321305921976953757053171276232986893592089893958789788849446658037545507074029383981786008768729717836866535702462618162603024449622792132075091616861856565072385502865257716736011511593573240779689564676289014512953807696429264152353559418133336808715853179189557574698546386773960249690618281867610325726361517117838952393987284708985070973077345739732128150524189709230217633486190005123563493524111300178104194001398129364268936518126757562580926460648740058470486694202440635803526445389905168974730696750860458518077289738763213305320985072008481854441584462018090542173635893612886486588574341094593953259680101810098660627543370927857326291535370937416244209471248698430795289850648115453968163567314623212156536379951373109312839635525751151614003868545181161146625736040952828775389128662342896362903677259577249023401521348712018098599135952001350450173210216671475383191554860222829765413328553744972341190545124231314936235368125190217364685718181904211731111672489535163140567327429160557884973164466392519370733704663899012512554873368681894863292371713456015463323217070792498260075283205839751472000353438953098396281553560498674342271510535891871053696130273825065338826550854050041250579336897710745940706886797474321291255413909281215720919259723899749412829774045234969717511087094323604037922551622086644766506587945970807552314302991917278179163482436401094727858799173114913424467740556578907310734381453967885052335895281020440916292217199056434995994351725181716336536137960162185340962681137621428468159954014146994628149104035258343835505860704991684885093503899372127347629673109261123610344889592526881934609285547786504594471004849017834829462344468720975528058782894974204676604285391504833123222830507147287610141509699126429164198611099455410128825703429621029423317250393361066923969521452529721647455923016465993780722713583342905123503861144704074126919148168357992958707673718098044981223232214250044547345639331163407418929325914629701381069957224162460798806545449368848418645870815034923323546729769215947586560635447992375204284457466686315535083249909526219772340227606165322702493727126538704458722905419153404481190707632090730610353169980440974803706936299026912586680127484340145979948293789677074858008860336811165192514715054664804247994111145078504278207702846329756604347440325089665046882771522674355039721189183665314384925800118391765126247815904439920278735949087266292863509291948496449762756769348936577468376140084036991278539918916084346642683504637364703552937269160996519139002759326023851789338143263116782087628219156077694200596251208656391627542420689403709593279082656106047357669310864538434812630858256145728560697927930277589716334635744083054332591410834980033443112086627689995385425325064666499042389316312810824697169485188657319641818662425070500628589076635050069276170687264642932677650573477972020999944846935594740085138604550708653275595087454585380059990678810744441123287652320493348038912932074973428148018702476196241535833443072143419077291213962636783112768075869569136321612546349365622063711381037647677870210831802904329247622218037376674112620936636989170849757088097335498420356458496539945453226580520147815331616561179081599544330976637785982780885177754393951336995314616971935787031250090972355928403736932923999180934482139076488071065609462624682342220082556883806496275858959252229165022924682738148141909613712321108743107473251412985719273192174087565393591985161445119841282655040850877977067399419221171678426661057655436786322756460930646022067633319590709780105944237581251832825894381194465706433322929881549377663353174469329308642849167341045254330667653585190278547467889858029908964953061602751614229781995331450948630697728440412604922613055446893288697477935022814534396544385281495057263470162081062404834658394312821898889033582689450580482457254898052925131420020370292899739656364439253423607851312807266863788678613926224783303927368989854792467020535039885235737982132359579874678223791727047427446229767416621692146233538373775553531230353728130225353973743192426978086494301593468477828785662011465869948327043284280765960972608662881170113932474087532692839340404976501955390234497917579125387831556921882815394981833390216758774889366626184162320863421610144382683071350311298624201219035937116902767924184137330498495375294370415382355751797545621758261809315412393174139419103027289474033632670107376406995751762898398440684938363950922686889683145267392636416251348356454063627579390092453005736812938962906592609906591235489726631098297160857376002607275446218274523457127479429264344492285006162859160970570867211153638143297611681670989672317153796345694027387291668808278580427111910909827763600585160396331168709352306491021017506723612083202862731854705555075849312580322058910017645129439702005270208104804135071011779958592519450284665823570621070214199306273212993080725762717539393544311520187747200789701365120293869280061357264232594138511200396908685077280922311359656376288594783085673477814359366691802338486867641481301398546410607797893931751309699350808347684868777519551446792064727524163800012888597514960950340901943250012919127264435805063836512742891509014532949580635108538947972517138355315089735833726792610274024280248754122635957229827348850111671880921898127304796674670208371002825188774635947276866578042333338250478898299100855811489350200960973136930147429078166140031017719229196130439101632259123402185153978306976641692758458018689281661510266207164791815556212163824702184833487470090945461988358688804265931133412395196462211928063099664697413665026228226491231381948472436285779949957488551195072076834959575338805886496585620302956827430757657362208282941243688378552757340042461700243667750438221906826902303507041607467937332726917775443796494485098307808034565519285713549644410348238927146425917685190770324458127797677898520461156618688233110969386231227427538837140325641015965616327106509007724207454993873259322895203514105185005625233972524686404828685586665424403901216962525426924236476854994924592308053275064059865434027882009694790351350697082309692495639133660545998825598537364170291394888499944495035127678839017493713305052922772325372142301192050781956763221963489834266053681986461825452963575915408012475568717292568956972368527123840690200432596872177299930363051222339932562233354125185001662610770622428819957563570660157820126914647119933594078152933120650592702086198042694129295903401348203323906961923447071192702429470607216400195182324258265124363090722000698541006606955417413794008245135591223540121749097516054610288973315070524907665877798381528866608530922438854704248486435059895942012765570701543932447730030511935229194452753922792831268784031172776773035511931513412572327502063122955364823188708770513698783407541673471388468143494218625943808133361966415446743863645366729830790645951886429349573588766497629959289706675513696310686962571961106631597318138492147317418635905991606244726689819604413999063061691543787672271382338508932563787542596024103960112629520802096393241296127585494571712800441975960818574751041042077910079989274267622840466625915386007929601779727951837742958489392794089597232325124511906572987666921314689284602547866562492458600527246448437637087057731160325107353620931019370086466412713047163203819901673786806218159726034412741702349669225025412186410016622651479327800041589189655057334797288444611344895086539185035365993415718742200475439392071508021565703860183846627623907287384628110939777897749139042954865376593932665705789342233452642242318034280699536483415297869165204921550333941355560286700769549028176808625117532185035253798979893029696152405927923150614209701026589224746939603958760286764883911621257891384824829451817660213441602075412818431596528795474812473450536473148656792855571435812121674259753158423604645967922371553607107028456862934151102995509014530813025577659635547394914102496388572743751360723364268894585016363623071330671925767296233645587886362365509671581289919280917324704966944763798022435927995238628412921849604009419282095110972873561037550616053822468758238879770222717593688677467717261271327022059104552170887840683211100237250299246781193065608192457409134914959365104583779645156858386476304494722088840311247227262964013535755975297363846869517568023843254435657683920210074872454632886593083808088183922582133311329042722605810890990378576539963480352673436109664964620061507341685217800810352657549016316549105843236312285941697811870721855926750853310290087891544121506129446811467559871431532675826265810946168039688831939982950493456591030230159250999373593387684282679076051040235090731880788738168203948179406424129674809291917365702329585427288554870065703946278880920025932643405150650955385234610433030310774288186117118998880660308377921621436605106993499444965892746873591102588559305908090000568402498626814566675536110778134524913885851599453299824337241129050223118430655979505126586309702644745286842011234195403654059858244161906399436443063797853719685766363835486842565643866278615433676574679460262821026452061498318811868879484045576538089112086545055654425208691599828948398864053262862580816747985361748592781139151126227538852518035372026235276176261876628381053783689047894018654206671694297422679899255322223069445716982498603653375101723736540236234961570130608636312844676714103527337370677079684521359262908946153762897553656512037750060659708544254906445245942613261951988157482268076586729056726671602132358737911936136349565759145436651977014960752053235644005891706654180401311081884010169357490622609397396066652730939977592611182435744015160821208648338156769132271741817856660597400361119476629352927767110099285777329486926531713581466041548222667441379237036712992746193761203188913324289532509548325124871756602990291095423093550477750266557518539725370345488301220158518619183738473108660564345203016224536407153371409684024573781631847794846562723844757906807714301169457297197662394481422623156226414003717988251331943493820778106418972243233335372148381305622928662680455853988881311703748983031357450583413211241828767979403974786341083448516706965124349622866184063020821717840558463839732875267892904978384738342819172971841071439744949195100076380737359025035177306632604757397444058434507789152858852943563186676593855022088261604821893466787368754051272634176634705483357853654020625787046565294417311259022642498774624253049157014100240493521499125127902985576915693106682520103768537575501438824456309171948276722188943626232511513395415632799013497454119531745823759649724517791193971239965411056346135376645740422478517601309027542771724909927311434365188810795306115926906637810291749698635519764329388141140233642470774916728585572118943277632619961525007982443297821118165679234417995019138543424562035604740120025544945167438046568629707963334446934463118169790440724213806062827365456997234348037558180564028159697523560511177689485488575812647573049981546712333991767285985404774661676227776822051114361087653711932725225939417954804175749477684261178726967418837176972471554050233908150102930373944010013789316368748508668320914310063491629302500742573213045753610001116954067763594982066688969334874644709311408988958392998884556410225093789007102122642230526142431236322802885251525650363040081580205325320239468415931156972664914932088895376087061335727211218208243012471236627761595952030131649357664383754021888022811577754629785973940701057204010988784752455114936318899832792899204960929040641734430844175732778840757394875370928749839215026933401915135316814999004631544490485455240807935396339547677089689111653151908767633713133720684229057645811546396348730932560346737980252172028831455162155952124774444062123758674917187110383658822950495894676339389480816319593104677660958312636978942420729534545431469541401613914176590705713678146784298955231681825152136356679692587099603341917694089189249466979799460475440039033605236664716275080600582297971023802273600879240114868678775007303892394192018111053599914769400731209339214446592303840915350410829286212304398225458023923107800028546030510965784165731612086548856477680721890253366579349644251313298508076449946199508436087413954328360801572715612097851484804262590327467071150161171268883423205859896648982145429691054609973224724574326772562460439612060685259022325547929446775445513641914773551038225572988850615954862666920184238421994362996210303225228643875660060284868761180679920428781513368454180244180468649354093366013572341585961248653546651528757364023413719988114954297944225528576200715951514145552354287731798591342585780066758036070408395661638706922146793074843604492023337268505466757276646339155775663641085894674654660911139911665529138915433416634516855168761344485459027296617530242653814675296039920418069879793743719795497722218531749435239466826935425118480609237240254492388584891355448256086568614494673587585123527156363005062563910522512692275499185021370461066531808987622865995819225045024685247857124261660317611663400907948031733133672403930235341878883227728216022694358476507641554524934651523593055650799347674501087916772584921706458955513281262215963997520987089983320508870710499114358186288605173746365830566826896478910864395774839014440084549320933199013006933387585628092101566706593664407660753795386083908830497654857684111311493005909357798745332717122905704251383626295455642047309072253565687217768184540218506970701245894813876461939067072041982596847207175962270453044311249912823806094971661703896327384677139035067384691235016769601445814954036078615917654955352031376788731271486751388535088033550359931948101079786236932465124666366493451999255051656568853840014982000912751163036580588996729492129398813638176793972465514851487284660845426603725526218509472606761599447001625717155331220827875272193234834670085019607525648531110710671464319426270906989432772975443960197217516439125807405243920804607426744145807295865915591728992323790414682133965546950706819667638734858639611055643359893380257358112671088142411215507174887755281232871936183656757975993249441354550673805493222492408065319000445596080561792486931148112569985618907572390182775337529176279725244237345460090894457646585553189457826261449067565764202277905478990864859993772532691331034687534904915120764747108118187115428322327179695910733151845057840673591082108286080647134194508375881323362874907718391216998892168672141392901971750898917649139059290430060478660468552159881224100283525101942044554529276994621556017965043948627329802210987021620960730539238497584319957187025674946928662405393926608116790306488048152214722428569319367841689793441843711442724779111465336929243237981530242231832723604830231798958798114351708751702793644894885201257459360782501897072439546891177567749750625643985568440096304943653285479345837908835011436929041895620571597651701984444992936056488049068441409380942000731497593039254319972812723466100597766366311216784794515028038712378429165151283413754507919739613665429834891745227305595847798208496255379906200900911509972946766415947465670733530468014698965667352054462771408508377445973606967434908317104768553110876223212514744632906580686282108869128615707707556179701504315688136591405533180297903147905945011503266263800822531853489006205412840943956738212629892901846651861816914021189325564580547842260497339039400489918722003326983776918370991747607964415646955217589369413027067925395443755727289681554383927026582267374276929536891629996620734288635006297375316561377991221247499610870390834585184718972212502724623060363133906013206696854986324761334730935228473930140772043941320246078592570877005778379244350954177335019911653482793717250630313996719420263139306067278430157117623971681219976639608750054311877475133282092635393799553481158494864918916424599970309820154753644934972866947729702951838973184034644999758837993556220282863710736902696574013980916379017556726377192916912315265123973915093939624283954899631637176325714871730071113708943199890306672454573261003244758364821512922564509340609228279029829683179634812182370793226740245958042776839086409288485781237553872512462310784583057039489089908955789056212122475874103767711820596667732587652927334327441559356447367934793763841714328869488101813306966557475831848620499371444004596139886935467545782563348440890592554636398031249797972345796757671396859137417537151513878221822789602306100212827973447849089160945923209149213553518522005311718668967014974913994484602205528677078649472158320270028701367683604232524317682400818755915061938111669066567745203346289885827207227887216766903611836429997875544435057909682369934809466336038109025896974458483649190573882989197322009328978730837740064953879035453412745936548291672883344053255243415873252745937517918673718241893112226038944972857945638001978316720739815464432262587159062069866543070050289268008787464435060244995012479443136953979164225245622884161454650233804927637240724426508327499430080609969602306514478375511722814845540716956866369050011113302600209369683676740263320273943019156446605218572386645042412210967170123589402823651666365786866097488623441758467227461336500421581636560877757797601065223011090991035454829849683936178325462444469299092854284760327330646628819144112016858235422624900865025663435382543688720367385891802261611057580730163344325013743031340874017995634586042629401551788405548357055184404985324957910666828967436773201492095071177143751725871680115816565102760178883941812051631984054828944997265413460115153296002176427582199875221115163269965965480733111258679414907685850030091646102965979060512417311160808353579628108061332366507540241704346080232705532616614196142885382213100339384439930940137116344800627540079784371894974291896032634287803897443035114786506143324329808006885930776943831415446672042913082929297237248634817174664867449821938357930960791336142611700618854540511688916057025345511001836335481869026582063177740110922406349384005495442022711459548428450775313832526239302238694175098788737566995599536676040972970860573992780613956593115909055845295593941628447834315291328424432356243269633196725380577492762753881634456483342021028704397720792031286693196773022561628808709592172337160387173007774758196924399986969749642333962505184307127503144240725735645928493601190672296526467010686158060623191787248531540709339666535535075512770841262459850489960774347262680839559566587510159262231763586317093466158553627904942888117505436597516035377808810255533140818132172782459094478954785740168640667868710622418792427073703618085570302337052414504005760003626672272759663171549278546300513149204522422629477818431891110636607555410856798241280088869991867056468322565924560836279924110273102912740398330851071522147478467446276871193635457057961200500126804751871614648801627467676684101484593529229763779299817011736747918648887999301159408815553681204357379317045914439711495343858562691535810437469138621151205237310539508537227844986368172115933512697183952695784715953785675192825893406176964295170459162917919235494465658796873054730183921336281091538687718341291631374533163614841725371392397199610401316345361146850733490725867827395480322253782224258817042312531075330480066416012152244540855750339101369147709592529651682559178528587765334311508793753736954567092107112315318221861754777905416933355969619877576451982171698663141926148513398758984269038569976470580548019492938329019322624031842191798391859007400477282386939975834313562004837603983901059752333477824331358644831634842323813957100001313460379922586509437510867395657148565641458784237663353229175701987467733777194993737936247127890701661300239928218362959414601469458418263004241086309340094729327984014625734052250201417345095165416824713523674913344436388824111883270427895291789263577793246025128992960669362820180924181041356863278368467918850328197539077052925089161925333086536641948935620838433685526879656113349615980460991871424638978307834486147822037478275412132854424464931747629703821299172645755140147906426872143677905813929687677283086885898123246159789174176142859896569943768537825480584342867134259847033514662788481645563930633379007793879999523619384638878304013285849096217590990037443514375823973791766695074505476526877094871629774534828457408742990000413249427531797468132012330427309018742193203256903201657708770817303723551075535971889754191619539648725930669551755196672241958398848269821543412591967942076288827410668559943852127227260232096610950272958635551001900290336692819066385449923401384884186735027236891104003660836926327580251336876201657790990799931024746000415247213800307841223169400197640736454014216139303498239755142907442568552560419093949483440915846980924889088733153300394608371348037492752454450187974731107596772926236795243972005540884617629108701636472226815871322199167746128512980216079532375638478567392786189012098421222024973586742191937760762383276459233151879610518867647996076992580682895323754577018052509906403873937042820827813018880632688303187708746168902361152453585919866135586673089695935456333031961758446765639930662200832876657728887039620183046399404770830263506097278276575630098416098913982033841419825956595626120205053645929145220297483167426573517377540780844042113625355761662246204197266610229326176374003590691288941312281411452690608570995873863207442965096979971942510265286585198549701134088263686805975987160104104445778710586088403232678713371804412294547296418037616507186700057512958100940476424180420163817342050870550246964543970168303054288633625840183825907245415134609525858882226445154115115971484972431074376998467049525372831640578325418793277115250129990514567346124644266996871449076797824981364338558829380384400502996827796414145632519437641641520193794403164784771883167569338340817534224207614125988917618011018076379862847152442701194700335881667904473640369435658644047875850052938099347648622554170091843920544382083987638190351347794481002313790946711995650548874408319844890079873895904110997713174755580061759187512372826585024687953330086483248786226609715027709939174593375202401685109388795996145643349630874396422432978491689956331145591129681236662241513666718092198974846224416361009478349418665113107669833481503947695372634209087020308261401492542141446295115338420064200274267186076621129131111004618968866116516810106151999881937186516310988519652599984256077556523725753890641486290694433912982314544167562476680020464411350253999248766710970685865255621310259348611372284401332480028094238566383750990444483114717138323577091326688850894943143824885162038818821427049167304182945249278758817043953888503473369498234632429974127245936992569518590039574782942614171773335729567620476494967425263541260266841532731566552302415599683206316388283221691162813546646634846181201766000996973982427539303766167514767297599418282035450135066672525791054101705078279354885241223192445427192730554917248065951151836650198904867698322827387094659150392213529956553899502633600030704303624406825181168923508227577071419069995459378879650117186337762752600706285966192096834555080156433164096746157021635730722567105081007430071192934442071203819056529676541814082491745066113445099654680395356326933851402797555947819137148612513141411725904680488371694934170420800454461497267755863753038352626887581217264672834887425859496881284878161941530809627550671844792264632108515681804808257393901172017704277071785415668268164094507111773143363403189054585062268788241094996536923871706907260741670534535202371115362530932805454102824536772276480805251890744541152090188055523004526939968801190537097774972272882074737106127837302594299965171180511676169471720351858476054027133511776488271629903290589375120334688710274473369432732854071877243147227064817603567891188910389819600263567833354765918588627726210917757468234067989919977911530359315701212691601829004835122283935454861188858754923679750897530895267980899916119916467176005316170908065636961990833840890143946122251785184542586432105821833771048477534040913872170293562607796054303594910067680118504179129925302350765922399487966650629446355486773297554822947358160452151411349315266102502752256988368896809503820755302292802631660446084905036884907940568839105750305235834845580380224791571785486909544545692362885572745651920003952722438081511442519953012142315594839864029732808236569577132419427162933776144829944475836706854699429354411787671510332960639402586656319530753022736814151163270542802935289425876821184715022157816816289334961469530955891463468932545972815036627806745748538135990903718150058787592788323589582168328649769078142902060993659470655011009291236087404320883062814331041309391565983330757158927403172478093260103760268731129960350084998519481444592767349660196430957092650379406807238423347061412307967943408578877776549930232993929369479164759340717999922884135771230313878124919813193344524698220907520597366379238153358903477810727905477371017419963015006429665013389991595736723136795570267631386791700732039349689303430263577709610250152075802728442140006538153675672768378837575467630854324555972858707015435545670674186677201001274751559602250567692059965167642244934613061994326646470149099615778063995398814102615620652052579602949649776045449236641888881886596831776473125938111104214855716541933104281661645253692794715454484454971943749617368454523951388191667724071217040682089767561638724844774029220858829540024581815009952848015535715317858813926893442291693925632810488780289822447960585594162120843800692964194866004493095641324989865859848965821619552440541961564387204305689161180438514842657902120493628882741666960615015232143794153096420770323733516123102270711716410718273075333320335212642165723850031133617647897881039682083459731898635767335804300202147891690636802235167130241784803387352963677183501343049029109497097398012327773574766010537048298168550841273265219034196130404518423720643080828617296348344615801679473996648621557873913716754884882356979122529729857742206045383855999577278641152286067594756924875948165059774440368065114273161476305963275379779986604397166217835712526953182265871461676111493233059500340511875482470752297705608082295397204895713084945558844947843029182121120729476585251923320005895161838326350817523326772641144336831411056563562014197764472768676866928426698756301730549539006748475571915522448697074231823410420958938831815629615423953426982999304999635518630289738341106633732622608660322572169118402244911336134591060631224967721625253247784001300469654186890871892795295088322604095837707222016058492222966302964888567897511267644206986923331187811088262278760601587671298085289111437600180009251980677077803122595539977974202841468161344328723343522834166807636941561702285141389604246886784237962895138350653285619420855465513472067627557904934581558457814105797192649270926110766128722135622926173007834362497964343045702637331752761873592688053374435347536953879233211386565278393812571867310184461734249032286748146659692978148274149452026146942585504750992184067181826294235024452942577082127562953363566916319041256753132714262952178947355427384893897963391201177309545363424631239315210679097384046747881060530203538468593016624012451472532643498761741383363336721809089638047953981262440301944807488959898623003708330102897927789390112086504291937008980365107807104400142548759610737844977891419213649832968147620897470360940398397948143250424552674665001750588107951680638833115240608335414951118002311367625368177726058220341489446687863635003654399611218455633753290535363845400786454175911694387303016294173132537779544142469190587559257631958499398298118695613585336032783160032908372172013543857631197224595507108154634766062376907897592214568809759475415991891550782081460856170308085822394221443085306044234264289716778278256020225455252498459065495219622246922435072278424015956598975754054055773548246889681614994117093519122993101680271116395746792023186697585330558552330616574433215568608731043563496001221568435247231259794016364209503602506188271667315829480445039549429459041649864216228115423412837445074141790702553105023957582800799836068548516819478484209444681606351972737525563621869747504968300963574397065261622877995779638813619008327905310524658236248978144948098408324230089119678654508952611561708151974231153872796932504901479344706847149500144904170089362929156822945691247227922878451135286383852948647794192973237786990208680311048990514053448870265123159288708218285285873764569338389094042937879676147095766907372274419832790000836226474408894559037031904031861388962275185621130724223489168635190087135001545403832564107693337365094849086961214377842831683707614107110613137385797323429198079397894253421486009829048253274522423240270765257261057668363711102237083326281239646989334182199868915807138355302970764109845878167398732701649548036726452635198085569488926738754357555593343473268438359840937233526110201187459246020903006880488068823043636220817296000838958891160674526639164828976546236859119251012309339935712201688733430875096630001444035178344452010879562805517873604473216462711872865806896388760623760319463000941859807003279012463560989584464522816951602062419342747821281524430651883314403100245947127759452534785626982260172287648445970189733142739489013266380899936640611708163766704088999703754478685440125145051912300509245865196435633386520845592354643492745736442365745548011850355542104260974603179756119154095443536474417933545427266004190474836535704137044159443854494886688240131310628928494295501677550835372743986135169879946537836041054926107324106331003939079092995142899149943039939742252877514282084690589913277231629590139333593169448977530474797620991652258637056913166747768329777352129888716337419812722645671203680755678090331263858496427157476322218797199556667396946611710734136070607526882116414064825772684960061661389026457653410731868644475952198154735238767653487972662422082921552813539808963876598049480353880319296215087051684103015776231386682067566372852028090800530235255732404918082383619361597591598566995693838397819533104979067426724213401203146529765165524830293535428948469237821528866990884448591452941608262850058970656946375864147914203515462492944045885282283006811153318592479415748013287506738729111413735402574146715940030249977582320311064260594750881402398666226380831426585636858157700666096697813531681256522717478165149665587980608478821792610387886757948075912465581055611737222669348394679170322817559944899116399149533435534766102027538954291082865941456667396193499008904815997516157101715948854224557964422355359927034980556612469646671619800032860738663007067939097568162080165188195608726882173526240539538358204196001717511997048723760635000491374819482300650362382772518266209251189211554856931094354369194727520609715404710897549611316860487363249608178139765591032903659155996398780784788151888746647310943009613515435835030450075098451550695066596332146807840833523413627352787775984274617707046276635444882720467940208585492154695524227851405692232580518209032733424159421881127929012455539254162409652681356575265994763745016014872310482146274541821179504117727952667150811327173746764926132907708498851986040022051370094542774941356423265851239231394430139972768455239279991272760821637736016934320537016050317399733633589708780760975874274560762013962674045921718704739824640092465969532185794835653133474690938382216771437415859413692938214612237040439243265435997140393209641932199404662401150302272772842064114794608666437777686313907027116831466809024444896799345535387745417020105941920051797842268721181070818040668586554752980018545219160233073781239563899162812861636468670956558033689372193325964120204741940757850738422350700390301932965444015804474590345818355432959138375477393137948001389207689876716785996033608284969778808501889965365686626085672232768505845916250425282015099463256852261964275008196228058068686587241820757971800769220318866099960863037410816421212513379351754481804772217941159960270544183471984313873501787777996569367923477633764530642398921360879528524694567997537396382777967417606461878395686803756768689025955220227629822653146490593080075193743092823129762331599463142763634212430366396272202658864114720969676680098323345030830698692761126892914212151401092732296533009922093715306281090830411982630801563747424275737177521048839054373346822746771520725346507514678918419389959781102418291280289095021451855938115481289161729022040935754902359256660876955299553046094847852138407749660579868469445967554748546395143243691935271756138591218845984218353478665227282198243873968100372054071840545427812985978339720363598701675541246770598198182490330604144502245324699302267252246190652157360457119372237731735987512513130176742659978659290619403210936994722854718118044095805001971111587830405768026127807129222751595757761591400400601469571118249665225510740254015804771694522961992848352232616547167059647322311709752305185561160014131035139535567945776713919412786126867613663637495657783621992259631930287383105366804322270244004799246920517599119180676590101717451405096314210408622726195998060133099303970938407697024816355581265503414707435300448018107491254383311690841189960878303717649913843171988346185636629440822181165233237932688295314119901658899015096105470946407280507303486040213583309780041728805263125813775204287621828371867327770909892626509850955380749808473214030730566530560855181910841685428269103455760028168384413522148053182442457517099604231672708173219582342030303326041347798238481463586353899988932881889949657291727141419165568249682044631427705480756526797144832918397586028929736871014193695026025032703416252263632267273637050960078983521737567661111078105742652936903796903397007460693517989725916986741485132523423442139937734141002106510127308299106201131610028695442133061994838121677523483762763330152968319912392678938590793691052514122252335405382839735408587277771412385533043546198540887877105355298751366994631539600838273998642435574344891726406997924334967762496065568655988227419814519677852894193317837034072808087065835634576413725845142745569863078222850364520673446901664251051511779148049351361699369404242797405185965159847572699515566364293994436533729378289877395494833005950118015704242388612288085315748989080193954867228990498640557936711017780017094021959703459240252997728626239978646053547291538217235526033234941523040945046615463184110158493052693125890365570637088367140323010702609551095440803651051341295299469465887762620679018321444138260444256904773971384204245619224127069878206736896907646637522307345535655217142827996323045326221469172665206624670939195024097292086237814156011534938548920281909387620125439532829806671059612393566642480187544660581020700635246413048641168953478679115899644688937828624767981126937992320807483790145225833667341274021526216797058880117007935177535087558838763627386811125097964653711610458887720159019252764548297434895533422000346522187074603246272857732118702529415278330813032820511692583458131044630023874398308595915601350915175949085405216848939471040569618243497910043204264274185135916642152783611266501034177651318629021301884330923968492929052105153147831589775007417991741449058701977858259870727272441464378793164219493555646238235839679879425185298360284056416144913743949218258511068077557568844074510388838078383111537970936708667973443618668016611277823225969776906831198463182350760826302705656170719851868214859204850154086195007902340576451183627261490469299342637986099952747346814658937501026675706530647607457939086928524861027577741635267511668824567531660379168953685309492864742525120176180408864352533569130783857562530952826478541717394345641373277071577748387612556074489897153572817473756208343636200998980827071442994630884615602297141495533680306941677841332831349761185146971258996835666064303348582486728405755421700339956874710509262476267369883126358527304128759034189998260189403052804853308674006743821480490531428281675595267432902272828470433681469480759401485840974796899436400517737905972257059196414424082789267653181592328490228491213613060301138638215501826583450512188456577788471645944502658696081437425130547361110162040051414472005076879510027829727763208792058879244829594675586105815232946208750378342120591591901115273421156491607388479553136980590427610045592194154701546532510708076512760949063658467633817202063775063590660307598920305857019944390166323240270321123524371407365459648868688574155651475803062684763800020793387297564192164405807569853234643179305611972802019696571843595204017370921238199800190832031960725917035254177743406944593441002072118608852722447435950189344677092222579632432491148437334881039622576005411165232572997818137597605474639536514390404486998375230200023319397832326825647555026177944743985549377433589537162723511656819829704842903722084057493548642547545140816116575878980939100147464815852980839783589620374287117921171923981447165081156949667838840108955152447629309030999314612961997170493060121270115910436553518341466593187982786327775861783965152383960978565833732711389659684937496004046714045616552276370675972104285231968746009158747347058997246465376017232033463867428223436510417467689958217305544334116219303906037730837983257428845162224907560069719983604007752701571887314809123630820880093310454951440369762393243688743653458076524675103101515850058395727269308759855401834501496792483377182713964389019807720547724233297434084536003695172194374902066505956895456034724242028155195045756145496952678810327103140490583159426257393672537717304826748640839700844970732795161071661466509552295451043836015300159671432607070480634595869379167774385528354088087798479304753601891324150691460297471476608992724415412911045713542479498145377240292450320102503971586749569141921070194290115146052128018943985867831670288071388611093691443822177310528129835968991486673281870498412440347937525981958251789114611575089136293475845544371001540480233794956599655928690947655954042931382892487200829519654764401597194294920718888216233493460053241159858533670907722826329125092986428088929322898854291470458271818820149643369174337366549629091185350210841721271514652025281299757471778410844540090115417331660851398858689743248998500780299635651116328494291100323447232809725397126073862315884422459453209579019546110390706062092835158005298478150846440537291128688243327810966207797743137854655154445841868982496470583954489492614005305593385901730078819069649797571490310886625557360931862898030749317525783213303623743660916803123213775298347928772231267465390506420907327727525381576283204699414882410403786193325551610601379526142348464634212328720714597713099750425100135040871265013694396085882531672418091789033985369363834717158790202593139684860397440849981617191704419946474196138335812282528589968187516479311258427103516033441305147631130634012436613635189624733731858027158504374096735412447467267121042215527861493152111861093230601707257545691078019839556965134069760764644968504204799045174480828541801487790526327094639655665365762473611050228526050843787012158970164182253076460938437448977072518136211442214383919928902221164659315453222829452226856978598173299029939593547192242203532389445572911829515823254892598551379754317637618684721129887271244613360520829717611706591064436904237955081318625270875963758558217279813870250130404757275566185305549422773036774303556775900896549327363868634863581554634108376306488537414633891866654343236827140353575384259081102280633995442547038519162797311729366379753632738755380975300751875252895760126228598718057050230115238532696517122957191739639797215906766320735010557103177823151752643168850731255201717146709541739359564301020532796606297677409969483446713106185465522253537206630834935936089319611194222973214600291924744981521947863916572428660449289693447924343155626221611936932820224791391729900083367923313909368093075825366410802362663921002130673451637377547851502709198552228777658016897647161457237705801544545545931168064808208222971760249932206272008203327313565750489219974821783558083255474185751061123599569558392957334991685332061916000547350801716870350872763874572954555165826659081330667863113407311016169653332982922993360847310249926271015172273110619840140923287675807537776084206849387113884872195517238722339345756775792812479434840507290518448228115570143505160888322473286245702279435031858364237550787564701370337165049761914992529249006846463299391478236644756014621922297830186429866510841854157411945216835119059173262271833037183422813538997820366295631284774736704485256472585499844978485425905388263440278777667229584612221370346010786084963233831981273608152298831893478498638345661755536115948913973304969472506186486180744149755757569904189246241088689877307479161456982757878767955965978931492982517933470556568301667898673871474773026312091910572645305666043353956106989216038890338009968776341367518214374496779891734046396252133404111131295810240348573167514514922259468270395502431919638567832823396661192777866570854940225823922415866806237165678019951785440099077591817382502776422675593237689474593624854268926369293739655123113276234019655618693573467047213772554224977926527448673735325765687911512364864056630448805415463383719282982837759649367004623628445072958795295296509236430159588052347994859657049966736837910446939586842527630451619757413888079459521559970382632306833336243708124215471858026520584370235464277231453583515594512263246098956142544573153270541488699726955055523060689247801409722768887068102857294533705640901137438558131283823798985429232965524475949780575761750845032667029201934362384615144362468812171638064538656048149422307645477523090548212656058853068412041471187649957227109950494159747671447716234273126623973248581592409624493769639494987087845897664805782680905921923663587929957302749730087404623015899014918801960030526241436683836055730228145488330923150071759335208672970144164978014334272600527576345554138616331604527245955501621636155052377283192861562991354814704256890655558366838730203495820889713320057138633048398293004949909080148677984179062444656639539205959550565401906439875846548948778544767883668005296595647073765808585037472336041238681676777188498725334827325866392281184067633287720092449756354960365607771793937797111111653218042568266554130225356011161062691251775171058228882415423205404444892080686362451562541684124375779697355257189895202092279658833681146055094630558654523750790378587365058508683826663506218176928360359955165478698479884686483647348746101772728648593682351871495925285166645370849156925692317051911449317335474850112049602685532857443187209597956713270333958185070293520034597072541908938238960592792483660253659851160116848231131061589720528562411879439535869106318891016933850071542790305090949997205289854848494324840130147966512610351959694146490764290967238843877421108621427630386576467160901556688177320496694724297178442504604725797942362224177912553696223270404179562374646114180416495334702908822752136105738247253315614224925711436768043335143814579444297382670821206809497280522020308005533073995572407112076362637652671454944941613181242286760201080500264585706515274094667411541167262848740905785555377847229514718684266647955606803438815589012975773258835419486195070397735515992538005740517753875956545804987852675851318169249147912872271335145405159384125219333846974657108219163486340050587379937270792775731987142398639134527116150012924363765121739109230444099098014652436961760520246708352743662716445328629123864213172259165270085354794266508804241569499843018692414864258387865720656423179303612605679292950103394660080902434247851202886816108428901192535985190207254034482963676379253010859223486637397882340377648218688883458991609751334136116472771434279007110862568547425304560319203949817646305182387530162313693894652611949857238999710630755177387427684695773586245658852290533866210015886628057518211548400186260386316976172677270996938716719290550102914674897878188661660853434749849343972878833377418908187056632635342687848232095674977903695954817711198716570347612936311928912257557268545293202534739021938803228327424830238738551478518006268835376587788970006030496633435968968148480726873832951967558869101877389619697980303362197019705462252735722567664055232326915472432105108279361480001313618260052846642711985692982514709005902443198087520753052839516498388016296911557549826206227648847197337655223752718507195356849979028519216452672629300168425232437806145029675139038921976635084860421348834005387549328406431773914485303189797707753085670025189743384864549954371416173686318563982298068547256938042021584572456357296637816175072253555915544004072160333361154161097729392033205031207645037164797210828595540985885966371307793694604942231848015265724748629971371037847013620568765787251271750555686642764633138453800064036390984511869100917838752005546868244020116814134619460520235879807303405327942470391786857603558267045100040418341977813285428213405539028137941438802875363670092832656766823470782248034074348603202631007904410496328554942627259652942162479903408643150820645467742817137738302990970548011725571772537465808953979382278943654209530023240796159354766316471378763089569729182801989111219275523717568175514146386068181175868887629629694294381554277548636814903293053749380391999685666265304047468492101870097123656344558215826553709712689714028327570115110589572486037202605989474278513026800806384572635657715389773458523970477299970455528288448910199103021926050009926656380519554629548360713360257111580491764051460437636452693616204744842027126480115852628669517760618788796407803977874080196875469679278712935059902043045084858898737071636104780018830625049187622807913106773771777505042815638340559673640570660730446592669332094771058584999299035570653956091883486405364060361837543506132062135306433884495720111496205036512412810098059844692363282505556940717427980094138462501132548027435936919962794743389328098014001381334672592236287700468024968783051343417887740841533541756125511989937846919018339531748448461674894523572490925813890429548379879897059577572257095624859268316827661331589875687267111011934106611926475663391234778865594632105801338102085156252922783905555604284306848199249109668808659844450643457790306016423643503534344925731314962604856044409141419429742331839191805608992312096867385736349052435137976211823004598876532030353455045280102189767200289886322200022202018609389871924841781022945624441236869965408121507377374327144541869667784035554823134380060857384238062815743846420775566919227683568411124797790169846222891239689786300694214112091705030251864234877880694186452474491471309237912197564735270332628446080442782017216436629172232511948997129219201858750331423379336184624684782844287250630473366453038873182774599398009423538664632491949125038580002589677115338856088585012947223998641407801821682625976456070087724141531329286444945449887350406556313644623296289397093704175246526558064964446524075661125334567161498713026299943348357681884489995958162245388593209146037132900766891672067465483568124510764265273809769220337090130119783223443642593061046951066034378600047269093338778562881603574575044267774606562141128960326894875079274872448235714757597042387390034686718549674219665555457572275069913839845917805847464819416592267844933813092859691456389053412511558193290368425489041212555385706767063391847364644400376265564876431759699974535103441067081287086456887029613860196971349627253865701618125958470057152629006439263201764861586360464239221734488102033916509656764114201314483624152411802700348331540128128137932201806601606366924342323483599769852725877830106291819907497742848416486486514316999089422493828877714926598313406086575859082357842877754219940265033623747800995780284569654309367066735506736107346090455860385910936265384002716662046638580183354533409560775241009376096899676314444163524297529388308334948524330025262234593127061051268979411814051926316745969878972849215174472496683298131708094748249008421379622296887703446286008073335365388613296405721236312119619846287719699140064100437731924577619286608603741695961281134764875668582483373362090743632185910148833753995455224814250105761913454680729098228715494471390003827295283600801917128312039977579919185074184592454463257621576704716936247997262054000579856230779555145713649338764637041081383876941128043598668328522532383541992526449332590544435056372535899110661647992409252548736512738950351587896028666838079697641653146299586209962055756531562208774663692843224657934246821987513016562160491200532255995489090951772567832865110263912912810510429009785989361627711925713105415644092762716291893568692117000374379094984276567676806908288396702906534324434239544453583863133382089592856533098332713949140201692562825480674758057565032733433840754636703055903062623255397392157687721194228808716468864289963085419024697705296820175477949522310632687607897655622674096587737580817500023618465045014112231527600181887724899228574378148029360895439158514638849200910970691410946440702411388628945262945226387668512860625038726755090413620571326789074166870581904704485534255469881303470469428396433455415173940587730057729478487392868531858930075083674158388738760014800498681995754476396522532211323122489264704027579160406711110463680491215968191111422197780926471608886014685108266162357537244227078969901311372794349262133008095419466987850037547408090168353474548245884425675025655745510260248252515160860756359273146224753534110039608197179613037920772645334726038604247426331193961463575160654300580057979837551966571743563715372762548938304856315341376133533595671668334467018216036158553923229582762756151681020749016850256215457378974987081451046391265542569322837632927976677936354066199707554689234415008567987275267139221363359150898028180199843547854086076376061494879472355589367426003405805798886179044853746186015610789402808082128543192934504258895268144274308621298262414493048523192942393238055733554096391102613350553156776733507546675735182475167078402089436795572265050917971050602252129298899547509189150514901677601100538761414655231085675478660923782739141672844044300943188985778908344879012644510968970742048913206962675833648537567655664088532912833531731786381356212486282913153350961424457311483031339556274945496366000943422519488102944202709416940481760964999689027729503766124004019265675340093402444973425690554035942197422935076850722763983595392608081918930370429726132498580936496658526588337435069871079882982326902997787358712894357272713874781776180484395174095862879040052037938546800294621876674218282409990660964782247857371056872080717618187146210549734361107153984814647439254541733726776665480056360216747428072142192760285374260403472674523241618247944505887187780685473508415031151956608128479422982210732083115691636523466679008769351556721484709944085733573972189472694861468748105793356491825541366770297930208175503116381437704755372636256917278851716042764429250913762861592615531926414721127238993806606848383172303737977131924581293599465930018891517788615203217071506997658761502068758587079783933538617723216606437139676343192484545123024918089964185720202569736244141653836933805746048949558210901243222636686096940468991257599614634751921555334716326066286676761388087263948392412338416824754394713063008178591385893826586587408577248940630999242345438254137179080616184124824940929013657125451522833524847478489686329811620590077149981053763191906286041310451856528830701912322223406632042294368962008461304343594703549092180747831676318765102830262373819608178406018128726954818280200401267441429694325511549454860482160860867692347207252948237812498540862449649394001098329583994789726088535480657344393741800677363605784517477040947630232059838708719708274587713778014026085290021291255134265881630741793925175130785237409358758575991948015251814434255014515924466282645980877782020318138783861543624965278411964600653570827271498730093667648717218974408626117134706360353282045615123925173428464779066408330177330469152234026633868513433015727097438984372760016220542520380142437541008524899868699042807632261417603784729874179763292519059854235139156639832295974707524793422731125337700666949720240916448421535029847650083747540415731443430294818069494690868484505510733163328648110893007449408494042325549179841301516101656790776859852075420186738215080584476746101978279731951787003451115832280318888883884584079100884492770547859916846523317458795534809013288614341183055676615035522980658880259179248416701738419858655392816305289917286444014272909410154353795726762966931757704579988089172374475561675358851052526072587548479049524299687984898541304375665199564351403846231559762266845353025709548127407572323119391188736733660114171874879172267145748309661251552153508002639839942423814234143532398239848715552543356487431075609294388982945339153181687512348828449133975564944068704440388534117514901638668868813799461227016918695447706398574758259671200662345362650695578784143176714320246189737861882707828755995916650437630357619829129486338031598400599225274009676876512658328214761251231646937249878975745303847505710700973192300011899280721960881838872141919197183327489611665432907551093735820858205856053470493954252727228631401994912198344751695054774491632862711676686533894544938765294390965569987156907532564362704308414664849181337535384571332782257346470819516263009375970103991132882461410064999776457594446372456002300603527197083614045538665187661745008581689930895911657826053966890866916622650067380396694481820004506400216978215567008814959814563558596684757414657955994429199635879146414104416118199049333088194519460273726303531564467566541066299227053994498495331730389630690662421908416837542187380707282948884563574696530420908753488368414403683612226635321635541793405848658625141509993043826819852406258835113393342032823268220371924876644203790811923665162912723106631599767558262015663574001964692989326368638452093665334178337412009124441678902260027122704115706947266087341990038086320898600306768899629107440681358076956039654460925649039053789773696881196130907391802257626945170617319664250804425811985979780281879190021414718589992991633546625337796172149757533515667186752805327808500582203046013510366710140352399643823734617167261130850822432438207133701134419786800353640402238623435761973419353245401812087004725704956909079611675099254357385076218347189186699017583490937553667651035985731233310625967811240734174954777024090812485575690150211291988366988514325706300198461060603463035796695572172865501567192420089645461586021181852099577903518463393971383721746031516702442388833176365579308792725104865199446895762546628066722422264236552275474177585026778467707720815298822781141637223894362693860785263485567109071710583927482113670807677940338546784156789426587115219589607160610879241416035603744405244077650906765357283190444763626158915083499237309758130288298580115415141017338549224588486565858724456581738887921672932717343766437752253939763896119985275554875710697665540531897812786772380371430400924122055432715376552589996779882179883587483009433812300805594738938398669569677767366149278819329290509612192720023880613447922386216572208902470350513692819717855017110285360542650641577776257866505420145278643126539382113037703349895437303289396012525897738042978443111793983985565234995325509596614601023355509455796934456553864910589877703397181128000116645967361914765709073848922555149685893150080178591676046558007433694973954473769417393546589591468354844419607122694519540585574522335822535910769713579071840710061840947187053095535914296387380697675215519438145468186038450501863715463687576841945254294715434604354568372201491487894324103658900765687159481588410733903067610064029880987850186489538513820137218070003191598097474229684582413217292374353749821568375638026801018782205857367657462778704839223026041669332875616225060315564465689991957988234653482853448271124213615587438425985410907057111279238604913714860658647016454260444397656929949599672853595080438123108157358117781641814915251567624690206797172479465809366200313808737951945657783444475107590176349851517247079813786390580500066432767573652345094418110064946673273343114070993775308308503801296190101536991255708262522822721428616289786434809102475160410378449396100812750944044849601156421334981943166645106778602010522597858358723140033782990756679125269174106602713112342475583125783658032237403373420822675324296968959734220805476735946273986776125831369947749056779092172067393251031886356227485439695796444813374956246500034732758394233239916166260186792469406484759700404679267213236078932266982498066975360797607868631546765339727650025498687207039850678427162147446542338516050722631081453572611702841827118528264398525062564948507654887578301850008408188331947941696457798509429797946513405674711881707153158422302846278991337798398348579279096001124932241615941926612540363173342757924319472010367732342205601472460932970062201041020522215697984192249835551552975802530175548751130921178384055445076286218398616685477134322409213813350423892017743158568455365091411783168494615728347306894125272213985662300763621646114036572492814762716749370833613657278461746790455851684901156915773705220331124814557602992599335715252328978062523657374079556931626762112815991233038855035824399157942944773857694404180986849186088835736110359495091110302901633128928890801524343085963698324623298390049157334622387970999753254114318937014679886979536199168368560219986013302777321158366110735831995291617480763376097717063568200865061460933554903444830052462251230219694824887788732010508062518552715945790666514733419237020227142371933452451298263059865820402267718421282449003435832066399970821943363750320036257707626957421295792917887031073676678744092620348191021374638009530214266287169949399757058809441458563821338179173191508620401083487297468233033448050980220764581509736384025639352767109367244429304869762229253804715349228479067326816450940706452972283101718669721073958350459180002123288135889993538094103550630601859974058259505298072525152021557532485516782897001582945151703992492036736495871246222862176861481443174564308094253908766513798717043940863609767782553487441940622114239579506801802935739746387770723382952603987518754443888140891297395914269216191872939275830362530429253810801200792435996831831774085156285754608767794159105616619246108032660584881027317124236179936216234058929926602679330875712383798290651773160292102958947736572754397159213521912021298015782604136280444017672498567019157365714917609887103347922960245322411724703752606386647315173348645372642558219059400059819965957159046361928447253941210069554868035171128636351522483364598295212088153952150054476643810886275387618971827775568233900842744730555504798837334705872032031191009001964134893437737553884504192351611891912876126147928708076856203497245641988276066811756029691231817187938745586471455805018627163811405575188671940480590146814494169974443582918330859358090692871832535508512399274892807624735082307044473184473836239548626576090952741557566905297267948728814133709001088061338172812583924377666682583015022638046496877780164547820382057549410445797258457600928082141243123237078873513476685426854000079369500821317780572378806021358703352319650143002935868636059688371841232791078024116989945832063000714990115671444027765189089468467919629848006455016457708042601614946484343845935930209953324785833102565195388640142039094155673775135106000887419357497622909930434971164046833678611489681436431552196009632197264132245517814516292345024650596477378965532528797224626053763796921554776629323868707675201453939969094299611251634159941347934411225837807451477429195461110792697040362899625144002053404927162080811302291917793144401912713768029263774084938654317545882611519625017512528551237536508391777028191483808086044573990108223769337991218001591886827927281821257504604224089504691190128332305365143935651287017054699287601479571284807601626867070809483579697033054096920037465228794625437201446881451020739756198075475445454986125303579352061680853877458760830840611273260525389028496538875373452845525110794156518548834988598147386845315607733493602296782035489537519586574376306418867531504013653809953492742518099656246016938999100198137955998036161404135959933598161225362591074244582010599260425628501304556044819526558354934883257827735017905950883170574640470266927672478480471722572941826715530220948362815483778212906035234731078069510164498058684488550877087853932115189994087334195130773905237354443966867021519524150608860233240179036171476040656251975189623503633134240339387562071711205975568027889114303659069404228123949996681509786994747883190639598149548689541521168516420136812982779141647687891959470856775179021227141064901851721731306816826183923537902355270825447890624364097720960930886714105358516680119415965869866000937721069374691894805507176793273049746970712835760474488674552562180592978199786595266251217356621272384439693375999082256595354223104586223025294043934420621834748027059295000581550231610538308531509250455976178436601054232762036005778462788922656891782733919856838160822933901372422614686290625258143204836669781037628456594636473964702047725238086696329440276490862188647990857614309955052010027475752659638090557936710479961381910279719611368777435166691031358117500006783233909718904900554134730260965144501365051537216189307219668166982168984739162106065447312130078396604107549326496259787151309938679910102638943338264627516863146540505631315044064909454964660498082552746937002825648858986062236082843316855628097673623374488586081411758077351608473025050101233798775954900895675220889396340293511062115569785585977610078374615264285574168519834888673490861349727710102476285041743151507433383234911282952038936294435492832631310329855876839115562560298317701730222674044791930707452681667780560554970550514283866823874060419824061626198842134755746618244315357778425587761606644118735046435601648050431720718196815527622294551400760552476484105463391916112475333571434086070641042777096824379361236926559767926389085809713097421222746413261131597658795021735666046439492000800871067263597695531314654963662031464511218017690989602798232706622502713781681679354014038349687505607495369996936262241263355032523773681744333534931780978095796980231758526698573216085997442304052435166299494900280812730603158448887776275093627224886038436150343573187647130025093591017355938821642509418296295595489830678819377944857349922879270678253194344080380407141159292080854727612674050831253441888845157964764463511211863511633542024723212302265446857704463975755637503950381317244618672331580325828550424174473192950818198472178166511752380758083287142784174704767896272482718359170921836696617025030022455486478851840190622697832394681218620386209191043127663058692530799339400653427288004745190992460956649800526184281974224750452081975796611149347750008177267183579640166673537595231477227278786017537085951952524334486656257823179442816852025097509652388468004123996228534964028224660645602802791486062588538008251238498763563607541616835504435751454943931332650782391014546245535458871991718134331444207648354489586489965719621748628523436823316604305800921211019549643552988768060191762565297052796986566783576994477689925503999211849284245310584936584514748209468572695523442862576641259003970520941427007555313673006499469639888875522549980014134073710096630452392786925440369990202003148429983097931707605373918363145654196975713682276275041688183098203386288656453250136345354276270701779435130709707188217542740744498521581762113119693878116816939742861483653732604760370574710468659296764357770592590098664885166290697774518622041561897397941614362145157669544411601675390297594387919971136442265098363417510661687463026657804068790153702103507205365186127440498027351242352502342921120152015747924596042308785262104318047120034262731444919480904429827317234154430120833521393055462144351958034699413682569620795784430063720286951887352427375305992317412158616628327565642767523024105886649300635360291604152712278429335024277989960108069778383357103654117006195241137468599761479388361203519259486969643825541301406697973437909186142335802113518313643561461446118371351796746437374167891660687216183190628733401920185503051796145135263323266346878997843004129948273277715416112198720334496749102178403984984378587693472619658451987723053748673058480608418523080509530796828255814795883357638107769634701593573051206126232173816895971947580529359055112030623193475690260157627919235116435894247180267095795465561288703883505050108206105675500405417905649070162482292173073783595240380644600248329649453990487632296659756979578705317617329160968100281139446007174791866697784369536519855997285447813213391348946548406293985205974321029571651455441200889086963865608460085367765052785148917677452651192485472882074964979212082814849546406811428635085907701771985815918497171481809320952040990114702695792648576135636536521098594516905644750088109454092681683186388138588219601891050556355988933488308047437077463149763755965691090955689517834082675954507878521326723188843761932588547526429240972614964649031350963339433553506918247238282834218914012241866692369840054317799924200648190983478875773584876946717564750379564684223379932735300490173437782269579275945963330844726622683475282906616735011689709204560446645420684848013531044150958711388237901917938325047376704259053477282149036667766682218523904531073923300851109693331333794187251104030707618924378776058975001203405830534984954663908752879123961554295006437436274723790701171683054972735884106763363092181588826236570372436151922678351707986556867634824443023301359847645569442237912694768348607397435040038447073848503464157270451878633394677831695569232590338526948906231032523086753647061297261454848405356199487029080616761945681193399876502017373459987866833022062307812894499245136167777112278812400931552365311982875312651486469358773191038020224001636106357254955208626275141052985616810563641110068841888080542921894260013613967999769637824138870414345906679834364062257213792030124692535302400843432248070572365008109202272763677359485478795621427687408771552725344980560500115425717729310095938933031830264012156397312158457756064248626801667471216177814666840520776718183723759819718097838721976222551357903404491440241958918978238889738812418235651520756861252161727400703644863473417441660537555808738415738797053061352357249039404815855274307224283098107960044799178317229163291630881959568302650447182834384399819623006385348499026942377619656483321721068284394512280464728591247251877051587887118155052260562972182818865931617486499388714617715714767636395984653213598719966017174815267580971151003960898645677152027780606126159492200108038585461063558661147953470806015558275024325509310353752360819778934731091316720488842231031612521974758578752296531501028771226603101905216935451492208732261734640731794517257131485340789368790824731285659678073907313731496228465733574317025907743370381357718809754332571488513216863709383983246797326641284424290218339305720123781436164482741235288713448980875071053630480586289794776969376643394643792029004784150757584422656333121865678866946101578445135327518417946355081336258480547860702934328825154398433391330901979156511397995062522488755056764361764940718293557311770461927628643872609697291123417998335946394041602049500802387552121427352291230749906315337744258566785828161683753635187039925259769848762501875090594844152486518854389122331782856096545469145052971866582132408801258298332252404508103534819463156196839517222912648568262951299157618142413565178399940845534011670800344477934945841773245820188702796397254154046629529104260719679179349294099288909052530733303979740475938033090237473256310475969056384230707222535472514863881397383768276582928200539627412734921171317876040135020780017628788540655716682328476845472179420860925275680894990386905385125142043192805919608947334820320494835238455433363143525692953469741487244699588363057187939189862914999811740356258453408122309715212727651027066131330295052064899947890127260485712058013704971213004769711823835833424247976601719821450034589756737273952121971681933594333128404441320506605308102391622605465546111101432263123925802882411054925687752872514871719771185827953147001512063561560423525718608932427001966726311982817088856218515505741145366223196269566044049119620954582462468142691091287080800438736821645797359127682962191198047660818005514719810197729172748355988440109950164983923577687953055724781205518376638989992425510709504049059417419042044920678598339269286438455591543085871109157518580507181543884466920825127006319242529283311127042862543983731946382632685838047864269108480914821711712984721501011336045966668555437623476697963386466235662439457830852891669998334560005808162818059721282706578963356644992327153010847968868300828051280946914668408131331720826462723142006645936986791281629589965964868145478460032755667455702512095818213165885212050054850772670268138688364916067023918185886350369025221234650698665271308279024807730175092250976197452104980759138658824080625402761196297204618372752994073083846094389053218682232872671355272815087273784445543681574342881361428036978213464958076494943554689451722054707463127151187988236335682343167252329226364710448119014439122970398232003991219283422462226480895549510028433720084044876316474759909001258165070432072537474324265291897548158163900029793804096057570454425380552299931800908397965931600116368632985719412712653921399632500529628541291862936548404941625277605655896827924827985349358354190349931981176602939778226080605651990423164294844137699698543969568500711462002985359782500176026580340160788469262308497323552959875030605522062160601686013725472850710758125971105666566148035247392056424682297382721757286433757370047123280407951858280306571085167093308534389084714312996489291392875474364221123946087784764150242582430541339745989239676787780786639241956951548508605809122806091323898946086233650751776071383006416290461398003673235685248140801585705848411977304639254015265526278249097430203640140417980413968155911776710266630253913688695861155647376376111947473878285156296750037493468669878195258199360315971607831653644126408396866054179879862212133460750146903051251677736310635786817420771763050359173267035698210370054674354119673689119533728648279926285235679003478869980453711941347419377134382275885234348244176733708002688863443063120396705733827523035371529723098092720009495013553756488854037871986031827589737223493834578208471139963720489123323059136624015600284536821692543988390507461954707634353630829478910029680522888703324430747415437283311879989978392977011902261940231349589161653026151867968995449368473593184590455373688771684602318812245988041607847460129112392076700272767174000627352964861514040268151817159420611721493429836261543219208329531340547301449051773828210191919268324730649539376121711069029561456629478021725720381444247409424933795916015680357936443355390263217238035075520416717378142736516504619670022762827354454553256578299865712412070622846800064956647525793646114744327698231552710707285047651372674248852015618710836410733384818549236570727628263799126735369328196154866956198409322151031925524099677099933381425160000475929513509155662698114394074317888309687915161328405874486221716559478731483261458475186071268695406305100719090874489212938648648064530416018451569163438751236274533842010390518640756600354616804869482950420015524724042822609670561886736203991671171868927066763503656078732654535030280868121115764472487695396677931331620030358068212617174791780540301742986239151626045471539759543248629006619849535638093071211352720980243788349661408505303165818620388551121712606739268204141330097800718007578786418481278354050600801141034324153666472467064460490433003799218707929148004874328505792872323721573523224422708538474015953072928194825268688604065180007963839574384401991300795892885329039020745920460788314574289107694678688162536277098630568063191934649887360178942754802415945768815789519366166711179197653241241378177400950722199821522159697454914303120884697921342327705332425449158634156454035777048044953609911382285641790762491203663280578481568438919041383302920186825312843974677032353026022867413257234831119628312385931817531587483301116373244478136713241471673194346939383404858443989517017214421597129849725861796353223358864527437418688931896519310676364081378419657927038016565540971544652408201226332316583033887856914213232869715306382950417578566768242938737119438134347019607275866295685035459183885506305050914157129491096682593542015433336922899535166196482093612925764345613135321019920834377422967385496570936165637973493794598440211739352810342573097761752175535125393539528168467458036758111154724035192905791897210625845583723495920607690014940598531709574168644822153665692956702457892436851780547751354877891591749927162509039332151039441872471736721959161988091436426022775335644475048761133838165469883196534374389911853458275419662220796287840417811776106949212617111679510043734089233685897532427344528565444796951983580650693056850571861917505120687753877752654903063819664395529242233101715443284067013420728986698840907319287277536060288653208977437175576982767200463855547929582974994720168226181967434319553306088337071461960862028433220647691083167731550348455355320053840432273075705092866946796824813023099883028472925607441878954732307279320123966078762438248971169664244682621699412050119828618043918000595743350747964110063399294886390043153396751592050716725509326006054267909729229619698014214383434299369195907786648712190145554455006715432240720399004536012927562426042422899783052353748740501735385544191865703908588509636485922278408432373610005351472077147303503006491619558029788405204068415623662284564102608919099295472852935497035756885458876103984115774112054201861828658118862386771949644780071239030719851537555800803601044558984352095833247563295577602992666312658894490908886934415604655586689350284352043419753427068935474172310814394898828997043873728340825133059860094332924927514460831478435495833066388951396913848036611307032214359822231257845521841507807459256386641795208759249414460915807778176238195785093441125742854851039756371177705303811281886032561128333618702796150372716880652730099997444965006544490803364960919240538741278723356713535395529239739081462711444425856705404059755514319848028306348055913711804119702441929038742001828758750025674484272533093292550439841166810970236770051531645316390156160861329191421813385338944384088424952244425394460606565705522594391807613787845054244038264344690388795454014991075908125680657233727061029409505440742163082260378504886025709769187913654840629642775367514466370383901587792569346665020352326874349100325980121198169738445268732102711600932360112223328820327586800730362439724016916767597395616498923743929736115091472654779024754215659751036333785708694462560571851670148871711443788126898608193442114841489192384512459610575909241295323486581662975175156058620403834278252850351824793817950194483844630599437595407279446860296740028288797269546974790104756034707624922943730316269417487147314563924383353418544268770988971376084363194695910423330959965442717112162615391064379118234729838139064445194921113159586599087196513351956281973604041037563574918407845320139061527795594538363009497162190766856768887021788407533386192607531981582985988811232436294285089158479430878298616224968907985688280827775276234247412318994351687893629016900189224474950778860806614506655666206064129659476951691041793982483692964262390385609138188284755215307363240039973428250432790601745897411413667997464964857007853033019086550380524474133153596165152593749652995969231533284067769619046259267901863924473840173286043467804798849343702504766629983620791545793822857115678341176947639524404968731462422886104433505290455443335578481789153578247824514107010758418802847265891412215858948740660965562560768340912590790895135324437884999904405680953051061158495837711958196987400688176745933623169557092676303824453848980380623147321039079721258550952385937209156583800655652092738143678677048775133506354693247979927715987298876462425049877778647524300692320453391203303924072601577207413789941345089429472941496784110699180429280958902801543667667553101976656850652105757893314568454387151749425972802787647042469064232848435284970280879405331760474216718717807709668416295388143213082638836705907548318551017046848223152145668321703036379203161198543148884421406882520654825281827029598410086578916616766641950475072172633169875200536844250920319509312781429239224786560352453360004448982979925581921267508384687672253465007205545900482372948713620535770018672211931752272459570717947392163074994671759214848398894369413948108917177038037411160077392761256540992772233474699366884984008988220047830417209928228562348516753574549226069106746736596581273549063522944810302687238296244734274220645738879033283029265249806650475875347916582599050561549215564329977823227832397463128614625334337779806672275786241471023623111721955038420123005102104534646381278428213138255361357114494723525138988640150191969787781931530237032254676833581918248299176010131157411528238358540534860460205768958704698612241809069335208678491196080241103683304524598185237197669807759967911738646028934698249861704040491015195606238245078859046946420899847397780410612322184236628916622667646798002461733048875217475015329935232041333221174559864082690640480968601118259289837606723560889279924235098199697643714576336420948373098177123162363261375000793291326113685382777469981727091090420204676416328084744240046500340198517142436808521356452229359703442734855925929892266939399914173137469308848360510512338829371838075681167507632052261388305605365487473400405185458782699477220067818616604985835226288863569752834657885881459186153990220238894677248984013441050602997896393425494921010744103750509702326441639611834620592590604130002566775297957801563665568762592997172404075646746185977446427355332655551029369548650604894683347197007963093594620651257779426162354768930590919136692920229941687443803285061803674697441141680644769144116816245347269726647764704342947741410612250203544349224094325914082784729980052402640256326049305937943909404190440504243103007590053620540445855908962736673255808704438572741168067114648565136671790499883544081629957945286785834996461756341639827596428487029633505283379295440101417557145335670175152952337046288320323731474455311930000857774849526731284096621136769234153023860230715408558815292933605191220359402765953234300267975580187356640383847711759549900225387856719472012816590514067803050293143975346706243196017165253426638639740664832486319141823442273532079445927105922532226347573413313013460003425123547086838026479606137279378710962514920882982727122531225453576379106555083370617824860270526810630530177075433107822470582283425128941279988089553459793482468931540764997680074808554271205987996250923693141098464640969304119204336752823146559589029036905217404474842342637873532760319970838234691700106422183308635169174651651397722002103775637059988749173422902646315482529608269569178503374522864726876169942064410621214162060695784699330837305433373414193493063897527719909700497076833526016472217365998900406722578677268812685838688006432236093235838794586126137191054781999535794996796788319721055489821040678761679997969058363009295636925420632169849014774201916777029967939160434429085858079283283285948533608830562216228771850952632303248730136263061976093753081897493100935177529882956469146417220115311008431008028864684445019278179087029201656427928207896357250097595221641569694321415638703658424674402322590547726790071415705383300733444472582943038132157906743694931321400098943003142377164985575738665470473303346830266869109691943715956235529335260500923552188549582542833189420656466189698820749821477551785964697964783791919566561708377354651598477179807534892157734004630573301661472384756454003528212485555333792072485490213460316613201814717603882007063642675585239547128060894038067544413629789045409114182067578714536048800502473084769922150518364564660394682890674728773923340216342714155905115864321248148748520003019161061424920295476062422615683071601545929682005404334639639341003901562354577643084194348791896480589408091660417835963755518412596383463444615887635727658676065861873705049833431815571608764068891310469730938474390859789679348789221318435959825671419604060050341373789545195306277029683506335309003931053838553775604551842358672536418798936206779548798870814347740851411185201104547362109900711097276578188420938727737388021100333353722135193876023976289288412589279389836112255274455128709731499631017090722379463155967876737708895627161951333349183888347827064970752410886801800828842053756787023584116974321176087650091604722118580025759035679553491078792085043405762612291298642660927791031892824293399963306662407755059083842263467003522352128820274236949365683887352761391240653983345371772482239148898967447283688260855652176967561460813318732141313427982325287010754430983712929319441355219820351183296282128237124985556731191761062424323469911278908543428385099024273319514518786669368213690539057974839475524202685380898721757758823075666176206107402120192455946819515657641149970871979681154393947787949297347070288847620829243218327503154801505493731146002248531119255501217397659703446966902953883829484000248136214010088371616951537718895588175471574359295258776883095809260023261370648743092939298586839119652379276457641305265414744610169835060489809811092806488037326122040670739146197235070165280750094691108998130189227592783256555433947405969570981945586480608420039166457297707057103366619380331848846350076061866309269731399330605082231899013739117912039411467187248358600971409938908786558525431189670984747363851483398537730433568114732785997697688195314053695062615193685010315251033290986130623667282255146907269838132631897364674517101871545981995901527455361239375365772576132274173135946718415510647667091727032824323961224392252164753130122357210904152241073896281165635170845319410995583322842707651930090463918231886544628049245110307240650503248279011082242446605976647639220752090704758535310686673349025008308541761731905837535293149989603054357833506364966933184843581197817025673792541896024836233307197769588742136870009924406705135146075821615649120811965559571308858158118275120151602310316741580434249304713294240199949505751581443608763273562555242503389405359859703126015889422939580605629677321292514156534594949319792385251952398730729341651754290135782607002448994026081596237438650096269464651728399955342026081372024307349387360994067195587289426864302106167744434418903132624038976636766741646745019394783237775162633531755297844303662756788742127537671055221345683696476380639039874315355670737910044481170056067315363001726669919136237663210203446590096685740492403240055974836359012853348828945544755871403160421970006591767462045139498333130345375010666301794074030191769964465171707380209962743818408101973365288929219632938125731041098929456061633159621007835403427944286917428819921180190191242040971082092836737963618927313013264128643227286930875439686975952129795270626093880703052367301312135491786080917839958905860209150440214397423571119847227173823397792957914538125195307871680359089790301347800593912643607421647151935703109178134547263988792537316633260792661195022437650483527660656439642203336187663273601530486884962927884402024533386288508503132702604591670663705746689734931412442816027775471397052180621555612199270282840999121306305525812174679554647120861780521000911438344477855451438643789335075988289267139985295181975624552831335895949461171985715573190529698666667415398081431747640975325427490449763202989438328136129333331884111774684988363987751355681723922616327461539863255263599957893342042508102520622186339066585572724020890711326749998700158885870453255311040078164462398325878364189304912469565507094498469580225547553972065846215563562343815776201950579379641103754853669031788357285634063208063435787223076569141681471300003680991931167316266134904211727873277662568616952002048323031698637427580121265415571542247556654427087139140579066279257291139607340835052982119117120989898554349299353319531129675072858213472648868140195253487760293990798939462080310249920631913704800463171220610230541799026523446873256031347741747419249725852522978685416660809036924306971088098066763062054827734486807235774589416464026430577872639747214396810972381852319424349925168790203063912726029629896525246854913220563177115343471289456079956857924128644192849887858228473426837480606289759477328369544442124068989176393017000997681171253703087934236481696598088302407030219956172041378213066524207668806726719365165858824885469174913971618248476020286062714021580584719683963692679750266292335884662774539099902205630927050126584174925811654258192799402529255382398664466201191289730661711894354729471923369767517396708607001337777541817055078196671041465402366958953129721589594358509067186921525891414533757786747146188531347294802773349677827018003808798398101575723720963890025594910412223546620859059474401870838397111941873700335466136282121635891456255965862007932747261567027549363838370587097500217505770046520310025832232219994149815072312409230921304721753970934662507981661486551784010954735019003570716138827415295861878007867403972072709699232944695401544909404075133004571802929692442205374468301056811238251250414379175472685555163842581806690423859722500509719100403550190559511760084291688174854164347446571787093169178874233040038869602567281911283545461269666427007075945056112165409296674583813483943361852999006566770265655325092319908625221336001061712959903410675175945930746626428386433343667024220200360146149755720078744070635963447374636488269757807584458710699817739523377938814670310170840800296036021401792215149071736276729252729478885101417752135061061136595413814396923217919156178561927404385731852827793396074552967141903711778303145756116274715917873843691517870410015504007012504135846160762380517324025492118250320500253136911296993120297355445573117473330613808662910838371078887539062671497305411572969111011471389662279615115494548778073226060886320132737233694648023009411630451609065549582414784128986221951053651720394796308029828992350489539925200378271914914396271432718940476573923949014206678606622978282647325092489126155813921667814465762418402778971617411988223074801434616871792057178204723638410949369106134145700840883052630345249897793038824503045836504606963841719500175273791563116447885390020256242091841216943830344210822173561714487016355722384729936280154615975961349634948877863892526936137561102512381414136857466597109668321110187739173759034153849971923714323134387752533822483056297909543339028487581735568239127957062063529279466610030511118079639276190402429075731594812871889795396840030491714163894715849070346561279385451096335109248308686626358288228126578237633974986720744278737263661413422137372101406814207747577513567158517430698343971802724503706723393583854768383696459258088724889095149772597848563100481938533071919576118198912658579788760049498105895222226201648160485681710726936607748339623789468959057891535573588517150795825693626039264302606149148696226352598741043092614290400064916509591923564242381158305993603714091812372708443073717426742026600577251115815642451154335480227254984403241474460494257788680619417178802013465272185251102975998134423782020119650094248678334753663567698398551514214024206697226648257571732482647158414013013585172914465530177203389346925699034093186884731574619839486841325727908055249720012134518142901777266995186621925803106092245560610046744328375107480173943622138626839483690204414847455950356760249418520676820678518205498406600822897940753061930547061758601105022355682194411718129896612074600467457992783773425560393867112751612302287328308724824648492198616424389699545788922441709849259699429196739630530939922190422122304188219902869214214295985922206815821986902235793391213434063991661349056191603140929556705159624785548776099490987022181677495049152823733824877250697841881950433522471177880068070204612741864010821578669893215444927904223528891660624599130105455465018842360443114428860572474611448805251901654783868156006367370452104918433748088954939832635164386554757886301510709594572580628993029395641118649325968988453395477901254999173306767094583772405896563246995188114978002366636892454881514839806917424475570150967311544042224313303626151565655405582473924066790567887968533171920020116030789900374027632961427855437516519796085401857697618715421118187985445872714804473726620487681228062708345931156170679768210073522198018505077830365311991528751589466136908359780271842737034387407823468342575829028630014548512008088649204332170891226195103226253830315913495911115271886019139847052863112882902091663139267623647617103206022232297648171926607792012362862323236911236217777664905345099725871692058550623558575620850530986725152676249671538509212491861825698392340227968410011983229432637449782333719440728137536762940537338694868535189449912879610333130097774695751000202347912237538096601262948078945722624538274307123106462157432001328610863438170348068964002839447526791022519041642457502863763709406670571640189217952788814096745384118396986225217630535763078129140142509544882662367963599856024683110595699265752301288125192801390001293249287812731890749899039105394491310377089166687515976032355572087836736627432311384993767115113831730407946801810287874251890216376661811818984296406314350599471738800991572344108045886128857261536220926966069281727970948706464009845001232176245310909672179059448681714147919279688851059449226919226680336494045666654763487920160724268632510891095772515131648088554032224389712044361087464287461419569801383214641912224134584704449357570042149610220279080727123034700011874250354720235638498005102248998969289459157628332089923201538255874129529374472353803950442192113761638114866110988001863851295813016365705448018773884392105120172144851992118834031318487020164383681692424463099292002580806283880950380158307254954573153451869230227295856611351742411541806244932093037755347869654988609497975285259813084479718212379073987552723576629771741215595748749635161143590537762191643172547329392441807864829757454083108028575489972295424499642522498853248141567056204703585246753591963876702668380480297989691644705920776027682186870270577693979882663401783683885458092848526212219559057356726404062299000432065314734276837652302784208549002993197038389761021668487038145448173645925936476716539654357828519291598941792537066927458555172434927123042221680965701898885497698369205873708411402037099674578624606550097377061253724217009593375749987723107992086021107286135191188774980007913281540112715025066977304394544888015714001748922271960431694314302022353324850160316252957546872981985839392576304431200051436092109254720273038438008486166163589272444035376499984359865869997519755607756814483947335967385014801608656932045375461891312868146943966713239927179318529525307056046941577815288322826221989852704428987010919982169832160409371134714535700130458453951315746679100280465729591845293776261089582763180769177571981842877462458484574527204417094985073371314374303736291351646813740946272965702579978305637120731418004331806532747111215314015698402398620998170767658361846690611630572991129727244782688260298886684549518023696892985137394890669880203872009563017528595881937385850188482910756503435019442242716091719492064523354993502313313962065721424266184499990824365963619599310170942782171667509609928395052139374702050495342321389144977645165648652502045944320278064781017879342358516224475865336288673860944843255118579385055537952523555189950993705599625108119943789607965236984479598676359582522900477577907865999817966100391710840946744976422690307667081682918141108665506002090934144430597824581257840856537561100539633672792218195675669274301701417112500878000051084119078544664193137518037585082971453850164633243964911008103264071662659890413373107245603167522614725076666584715835673157601832607647910481115846367762547259026648139601154521963880964132416263556630823328514825738577875732160536837204720435013373424048517100472666921926627485459364375896675430846653648349848749188727337503715225376310195102782035596281644139107195506102520882560370922041394138211877957683399793446956185806313845994687770153043468447668470294073828931932427974792690772215607220005462015176073400271808336065938282847992859037648153182429850843272611904397506045314455271439507641128295628479798819607753894069528561360849282948008132691761211745565861479376227473775058591704866190090791038501194992012503149614661998467153803453421349038149948656320512685737057782787235355793834129943578989144409714538179799923320966896819492644798980248831500272890105095369962046471778318003756160684751099818107214706271499780538272907531212699958812574458122298217918948207357008391549551375295996176675270832623103821310468205397214245028997822939885123900679041507609185637814833565540393921089684624008559908104991454395183869912037904967836772508917742447142598506354817105217088710080558943721614640993864780709497024880317715956571691418959529013632027052022089784993816228987304910298624567636244361509203051592460447860429363184628216483694524693263228164690558144101617107948426104757668608447068344351282082523689447677040450206858691489728708348737095674304457685790534490457313891723335407886967496873603665271678346149512653322186580548620196070829465405291999546099822749608409108949697405093796135931581301590580094001945206370764175255463607911187576230351677973073073322022511376885265290309575006030618994930145413050516057662195134226002116396027480291951049341845309680341679499620268688660997382123727476430633685161146402669846827287017076607504628332685645297934415276091532717538587943776273045241616145776055509297948370068844889541611294650998161305579253716927102367120915050973238476611606317214385653853152687967686951924747527774286555032535991942592074766728283031326414832043314404607395794346272065357624540739197373128767264408107106520705081027799990509060959404335884401353488322376393614331821648346408077500044175738480696115215627730314600037927800495302438006788797513787874447712353363554824995563310785286116937691570071021534717811766852511167096160302653237370638397524597185474795673496851862014162387574871474973841602202690405388098883517544887146509680666204875176256183504370091115808474516074491668009266777642509726426048928106370883461758877385085347513585597008159831591302958449911013614654823711016364034773736694314883307101274010444170703980184715448613876289498052522436239390568216022806223464419036331110672895130878045255122927283507380872099473606845169340016334376110471058413584705009740911163072781231106160268265238971226771792079046411189095626787172731797041814405472854457281114570548125416931796928413068960486608760120091591782656620162305650273139389145908117568553653337771572292486087781340058755628194877702060348352098088550556701684207572596415518449446947002776322061265255833653105251620900167802091395194104318443167826738919590928562639555886838077991572805506963456332744259184770478336601614798751414044154664614245763584974528232349176764445148699660563054248822754608563520827065365651283488361351911145943376110841889579382961523788887503023118348378731845483677546323651736227204474076860758745113108947774286485261692287217321016992477911808240106328265400809470206202785754865784155633132243852641908129269952320491246503069755432781306331065940526989750784794398689246112968789031737791478721622784609714579069982104701011287680465017589827949368569247963126376541649107110683102027002721929738663404262421682525532648340000037726961892485101829404183369802818778657440549173723864716527915468165131565919253369616830320768845886469590186371386347540822303313105131384313579784590426326365888800715823771929368931816424505172947381151055228646111967246002621941916434716129850087702944317077842546790247056162103681273930093169874495469053677579373575344807626327022685776785798495903532625905699831064798682786747015787658878369739078161972774799986301665353780733991022118313156601295479884691291569944735297194262761967155271276238209954634088893421610542748038232756965096617506795435843699553947641960058304923772974314323688136076775265505079307286404158439111393590711899025699821102175908506909690400261115882527946409980269597898275133939898450102182207620988692978653530524715252253885766589325726755597184372082121181777763683876234433356866289099816543986925504943313891908224765056975273946722375747190266459214413037063526262979111482175337007173611954673342486302120409248901715121711524877132437643908888317036796607423541010638489606285833050871222715861955218838391604814093215017908648332325272303482887510561733051366279660163813326356166908444667008639335370804730034355303600449832575434790205040182488104491798222462818742549620682871109214259570011932613162763467325174776281742835370177509150421838102552567440308263988464092205615137676969811405704588152550923702976130638990143856368918565017133827510651038911364960347156526159508484724795000203676066089008009133484845140848796145364395295194588901510382417520085748135657439771317036550136354867160993403734814832552414624993012818257872178107849924790528764788448529680076393890489083259065955027160768382194162867895240292676992226564773709417449662573773343997743868573937397938964241343905259015394427972455156827885805481556720058764965757692881527575319718879368931792593821252744095282423371148142260476247912027269645501370378824110177921415793332494317980352762557186159089772604485111565245717708605297616177340146935103356080079506808052599560328127817923552810297468854935225470997933113307075043127950398189805162729636586921078064705211627638826616235284473309244332751160578801476806063254092107924081700195798164773322943453963788340181141167432887909524148164726904391093766701520418218308154132507954318533269272681545259685002417140699656594475687804642595299630776588579681492856993166826205378113660437416874290029781068320206778452620772882378183868379039543244166831819046382391100515795377641594191853725603590948841305902822974176934215881872493723217029137020230002064844538284475699157982025728507443904183567865884129339975407036134859948909832153082810439329361866842849085826843246984531655494875382936676468341831060361109956203329328441692367273495281086902851096429522133877859533296466324665036021229499498224276489103717216210528227798387809819345820958312847583895472852434782457029930553789321088738649979934906881450235195549139975993427976626282666905976994023496760053124026763262434920777608562407794770556776086653877208580408003156670565059149674889367327613513705652056042570216309056768127593091714772314538411663445812431588832509616516036026877353370049669655745487130004235028265032580099541691195236085542404007847947209774306388262648275749961734161727362555163694550628859155145983758630953754188509624318201837857590398352137871310743373287952134307288892173033202591562988223976799041154136118417859759256136342796304894147149547815815278701312322125352722721319275154716919723000684866614066388925253476600973035227398766943118282034897317101419614567227302724246150887172918381394421226747122869706921087861767132097789204361483702490278692524694169684574755570030255274076205586360242489483728552515340137365562416088715476746298216634299565185427754176156108481981279154089063885027819784081811364576860525969371686876779838074558378111618818555137714050818864198087029491391250479194078245438988499127986139185028941241493115112305910767028445132332619444799978735163934256894637652866786642732770854559132235153217236748192487075267710547049525925144747861801582351509138336265681010558045116520034521613378373705143825170585089549898417732329311162634248199262797188160342859845133573515911441218203184927268977095070447449158986379544899814217236140126918282576280492624397569894437208365121475979356639409507319616086848426419705579798483183188347492224366477937572864401219164001024219612370841763877872820714123028196450695594352113693000266080701432901340080421096041028330257778577426319653566319019532784605661476562457240819610466096826576221880795375876117971419196821653817677765658038373863738774129921146521507233583351603523077609002933937400253824312140261956453894575932356956113678067200495330314454824784667158688262397132996325975069104308295608241335354380037868236001157101626400986140876303640450503579124183891546435950049539049849666520456525167779587306756166914306066493080597747052680471401533446227639319917993791400161599868406137572617907816481034054078410428210222878418306303438425625953996034506252570720414979038375490836797495831305312955152895714182113009581518256233722977019478044210194203830973260857557597803497153435530211769414081394032752877630814467781776072715854100384641439002641655949483184358511801786407863384912208669162311960362641633400922651697500385727157178001224164255111345007211686375985040110773922884130582681247943128787398781717229767326484733320754525303509199148527858465204960741104288046383472185076171790377873689483380009195556687251128239311631573901323410114754934164506634975752891063215940465288547326178509536218345883563025838592451607455095279326188984973359074957407155991328401676378804731432798177339698831092905130091881212253224187294355803274838968371113643372455091541969458643343994644396607597608293630309848513625508043476332239745996698976369220080216733680799817059520118544719524900842906704269241901585675513735349646755019568300466145902557844878035528090861542870347849496003750765351968930924279850402338781613319061574494850417976841625734419190083903281375106446107137496273551032689856465576571899574079582976735536628109763947858389048103188363354747402545960748707077027821637655662331294743567693279928963201966172135751933492608471347252577532866734123963621620382539214264863925103091691607122776842091514895622618691410335726574194427875461431773659764287205867150589163313791507629469176095438767695490145970298180147526851297101682561961187309544472601569132767431856176405380058012154652225722746003284659821206008658227934449238329116335397314076771575433459111193794093010262072816915380167762106888031803833736515693123068816923737982952215978564420555521659269949191523827132009481010128642017083382930040149711484807004359867185515253727691836491808950321144348406757076066955951139629159555086435230745928440099281290419784647870352831761910726917228823651836746187527346688554848456277557304844493145070948662764085439980442898722692050147993444593215903715246404930099068983222023990541376404788295091131387912251829813163344415995802025514297183801743122926457764231657785734467555915522194303009773076837373924235114298045789351901599462129813185842307464055863598110183797882587994442659206155940255376030607473900219655395685276696321433037723664201409192439781483910533880888984915154622466965045953590464267513729246065531268772277502269782869785415675749368948933301817320238051525128476378165734234632308499609204024289297958518682412293376962914650994899909929779531582926200830745293767378304773277683423391442304667198172378918636210429335231422194264048487780700546716172723636358395301930648692907155892959915836554980579023642307267236034496837257536928812488560687252883935639917251877987111416470132564981981997319964946796541643352122793435002902640888324330515329466592998786059016430171804752401446556521387251886813789851507962174985373642266197470117862137784955081303308194276376897781568903613906322343782663954243446991560914644260464490296708683628760113537319775888570834231093006558522402717931238628577154115331279278567412490101893128920687091612235190611935289072483513309840995832855804534445121811665777363608691567004494348171274186889919880125000446752006776256935145957232099312860680667645012337298099885324545917166744271210151948353301419170073686867155289459621341078415207343432553602723541455329666991161643507058134925806642445253510594654235492502776617503968225661011835388933559811908757009415858534239756613205298677237837676634050197185957614114896003999511918030924353134497210826432904168820581701921235874708091634318518431627680408476347144616553905119580379403567082808156966969423523619526564556176488146459556379466148933141760222628330657986877961254632986282273791190251775972612288305410501869981414737931477125372417202866984980648681863456415811914746537204341003094745642855907975427584711983951218109494781235709633660796237409672091262568942448308835816517000848265601612513104181489231146114464649763204852252854427975347732073831852450876877128788470408134866789272916755080650458234981767030913454432554832580334533125053905930938106027588821582967365139629983001376941578406068666763551580882382785440268643064968959916465494750976831993820580766224824344371239588160937691418377820387291171086295352731698798630723242421261126863016004627513339304902764059252014771152883063450051639550704573631675686258351900908553000501357785859517777987572851041720272339165575469920020353873151209487398465034456220187987193010250902184490061039962004001306518157903636583111015031098464460017696346744220611959209123365551178143075342572841155770411830722031901807995738853897589495953963110825613109225831275032118579305984857262033805477332900953237825283118584439131635550132954373573272839166776849171360097302918557177253007137976634809144311864299869394875521883875135716607860155025526352644815906154865507838999920779038826270494355305446841635432714990130866581930346718214250420489271465087489547419639472710520719703918419354610277318288998850583656701786264991111157963174008460384405133726368376622359929639551726850013712957296934649304580468777984884567330192309970746496954825006540551708877329656887401759164771054864774473451909423765299035721802016623756760734909205745063552999099506431924298753770350861098887520757677867762326212768960432594458412122344786007283877174590175352335381952067050996362950528184637146565554932751921608209331522079060525936630982843010404183455331637428193244795852944246820762022034282241481598907079585981332068231409650922391076372976321315416563649647579920788225253864090128185807031252651363597284149235375948183772341926528021265299878340771797907610939886951513855529582361008085049276969648050966453931222709251350580533130691676089053635352177102688113608261910500143852193104919919556234942820650116123347735480252422806743872053324649252391297857720540494197605204881452609337370232009782519385097780046881104770737632271051651089149964752274536367299608970830882766389687118179136910441331230878485841552320820361537221898818892797247693839117774970870918984997551995114873003541316266753869202754131500341637553726102049884617222909038734967822632318821291245801614213643538371836073487599627459797845115063255274013954492253957289911412371617995068656893977941135013041324700654287062080806218229474258729813825806907067467534548400143657049884674504337989955644885310767414248548451201071318287082747128917797101440051268988769685552816621796917434006239776657316004016618673745536366305434859925211306731120747851628934449324615527859961293359815389845469752208261456982274314927800029864371245466780893780226016218026150945824642296728471063709466686974537167996065425907542608875721489538362162898377395051892581991781203890539381386166840544428528149914007221708624719573535905638203990404660443347809241051511865111093330132604170600612570180925117647606492779986862862122233831314440283206728386697105511114949408081035086665156002645120375787261700350343844610178641354395180192536597488982461955570984134779878278330327417943095766942240996710297131020727218139259918795255346843238096697653384300938419953381224021755040304729246991795615976268268091700716793242630196623341846554170860151552733710604842425381452162477879225974819886379349482833223575262456103579636497860686804880982932381286280129834808428508135379133228277584023704610678977098719091530452186996228852498520562645992539752341219635520723622119095589453541271438265208728734569945769581973629772757655651117086130118431237426783292952710358786562616892260923192032013986903742541548090491128211262523686077685362177562301990261304938094297571732540986216829083664138316084518227438561846094994406545481007474634034082009393349419090190098183954431223761502624876348398782895850528289517723160638760336160054349217064376911095114761686880702891947977871314681744925895500805679681724098123268429493840155757468871811232029608633810289621223591397576966958520858090347221687899538083613362625680880808082054163089021064401389045464325277079881159155395958798211164754362102267732386817969959007165035148594933859665434530939793366319228731133499974794525230270008999935529609056741016576169921129469941747636814957827996783107679486365579710448225356147273263700380106165651173832641400166148650242615684485134102469117541723636523404260765621361077414062465234280569450710941742426236879336389315251421433355497725892185842379464464310125917626969114931150394857065893918524967537228462787478243811678980026822239448827618582977839515305779710776605975925657361812793736050723773432436748655815692774400203094165974179459582067853017073252563612484255895216018568856373432503706487647075648963035226035586622800401658595457158160812446155683826188771648714602139377222870815986808395346761592360667737792193949049052175026430952697467406911793071471276458862656124816045706045250609247435658443923929247132310542113936655940769428739946272900721116596749057830191501251545076871333121760425888586023979482810078694628520338773842664833841614868997691245747495859667295604762387621353116144443053689533178087650080252188681228507119657766159667372314208324510324353514611583326960123935780979039286896288952865049743642954592353570423771160561427970823376573892662433844642564868792638631552039651935719458228730777539103570259805244850074109158749198458299422185460590976391972472852908671143892863268694123677259007352606669035091866904637922772232780056097602592338491174505685897455848123374182170166013832917491453258264674104296725125826002681233721136220966089703178538997669452523951811329410258158418532545975557799834992157292586990726612725923769081047669728955169367683993528133596038037502113872815337778494566635593742511206251979770223042876701665542141391827554591221828440073621008647140941504947070397869481232336778912966007342847164614745111372118391554187157945973729270486398638812844019679089019893840367889471647198867406239871394630432849590701597095804511107208341867369216353839296182629526774206832477922221788990753188919683089626373246134784936528696822049507232057472437393773760652556842788566191939066985222380665968691821884595782221102320065075410589792310303069637316842313422472203552505335425036909802604666710025776311745499687224776174920119689668754456457219547975782462303453188957999153599584101837380237855746415902288994918699623056735747992230743539603505979819428623213651162331026907204471531686005860840969200257882945081109395682795167462044870901873982528941791557458843276855457134056918489704657363161813790268326459168411693819671823255446700586019493992984366629171141863854760892472566793806561841047004951582634686725865569206048310346745387160648515329986232031950539248050849688193760349603400530596031177524852649639408328079551258329093163121034081529050022624935900826829382826694767822105600644430080508175874218522354549431005705794955105940329666841413032165311450529531088261898712556057464584284446317276313805279226337502203521527133175207681743682653344945099826173001853792136340331659801647719597108957274624058163070903682570552351310885199069201897770809365173519662547601670285399881057391767027755492141010744884572150338855814967789802618511716879037589196901289159341006160886429598296990298455546434123292188255771362261208637679391562909372941061364491705458968666630069342184455719497619581927812590455243304616109124137376605708748799804961080479364770412752475397404623836775123261199659225421217048472280534764559366878673939955214431280306657354456698474476693279066234261276396482886729258781383320981954663368536135222440520133409248278341880190019641676338444359702813181395898433763760502547632982381328449792915121553213416999082142743027432235733187828015216839705170496683927405933766209913608264708833657260263008125229432042124421528023942161922705108721822255647294041348668791432689158146186578539519132584890155445142615478542017350916284053024177054115729412011186906657989882653240821377443807824537608038814631018741609843250776945468215809596947442661050302090280661527070157563423312347401681680035549762280291177515109865985119927075660842981919854396403910870041781208365855328923929556806961644449870596018942969441428981096025278178588042011730139238454868371061344171301730691499071393827069056440619436624337400410330361709180419171790521017409139918716755252429171041692681512152301465502628014181634388172815321320916284313557503458283356062245177564004759765927376174530812801094190071046489954963502604128514283916941500199541870337559025103752439970778539681118162574411571794975487780361401347990730682062395203390095018357179805866081992271988885221742025767495810845551314359189214267842138101309938095652353564788697015679261015729773765848649449374679557513524981079683348179801034495209705938298057447626581696746990359878237096085328854785429174675577588435456239910503954863610885595967440044931099458488544875935263586947433783163974637442464801734372659070717916313751156280121513859980461481574483225124351337742453937985705648063594614705757840066303181735167009671834192897012932153749543298995307153337907263583727078886101974379554224057768015803634755958366485469942036818500081822010262431868036983388920886449339655968435654559604770163607634893697690385309875880085485472657658563932095221823846904250612815972419403858892191947611047525677230399658286709260531304005843271349463869752694571360534674593126069091105294713649695991196227633551824371439691278103888083536293894031646676259419653432540944108683751864628435241533902786465665082220621893837557253634124215617850757403223891917952776833779337617199241704823876183741490483481768230227343166178672409824149509880703651022879980497557180205656680996335001119121740974226736486391317412824774959803732158930959918355298449273867790167916112891048509741559053596504781110218549852105045570653348890003662332782313825676293782165063377023780238659015015488837562150456200656262244350551109413198938481681407977597550461838326407510236315086756120452779543281845901794559110904156974728093215400783177810999425742533290805514170317223760812991303735730858507531072406759033898546544028308155613235217830488222869771543307149160795052984622836376667995320519804967746677998849297222043254053880408071058397510583111649717226606276309804327229026245950846002703196684905477114961821537155068777246721028327308017413374717498439532078593777938775394290101551574875618839540721249677623563476538743475017445306677627369261065006123401373199729409058897964660144526974681750749144117385752443674053709923271826130929389966185995542789649154924269735560475599647573255288488358662669417902200478048146157176264941171550133533537406413788705089649532181338871614436462162626693452997859822143371149867559373813422366762867195558586517656795892739841004836525313177571869649555820748175962648182843414446943345143258934705922192145806941984636255166756706721631914322733457750351552315645482143617841681352902782823187813458179370575099576409429725326296350335834591613439015669921815575412242344814689276237079920005974163961903861634942596050106209657678305576318769671746721187141599509684353985332540774515422734493177142814808219441988926623900995011431093830204216920470729761829404776700631271658676077710107261833476997129735525316677115633810989178797712358139196266202211258400148163920027347760188572229347661784084659755428783694203154137143541240828734269772171449250736058026197697993928842937092490328742862983631817779337690253342632755748936656683706537262968580378752453114819435933135784204443511405337400222257660794053038870007362556817787943292036524560641592111344242301306608062451623040200082653199330822312970767862433561753182152391232839139968497589128515664738585050094406889124623919215902952812476909528215055221840429221955805128263618077141184562269906368264791403858473707076401196065580286986399470029847070453520639818866737863418766446527338478109773231693798549076949853796580911278002486345234172189300276224746196262861866641105816673941722643274949598697261113788602167432212323533249456887017966332418975102209535094105778412128263648506819959752023191378273941194655738222705611450815436052963648698522732664356300137592385956420692385726777606095910587738311929551838756024915828413971453387272001910598290915479528857863690211406230038117930439750644085460613435463153041929508828665692991350864332481338960673088365275921643960945145040651863556948327913558482876602525583822067282943193200774749290581895255227322412419625061300662856364937026207858874902274894773401630722275340271350983932594443052755821853417132368261623695148254964459551096560120593780160971144932797987863934892251509337321046829661184150118021645866076152197544145266190508210119222560321662448385731871647672708584117105990260514245359000383336911807744689215289587936637851590734482617374884654557513877120861934568194392614223736050510455342168176654292222829205090448537735074124350139101703791648218368481233065725590533136887043172900929543314189046712615644050056314064718028925556255038913099956413618196028037179495295800653737752786530853403624983906114509333030918482739013071249638486664863059801666409894024424424551550594489238065604297575344932491255994292394705954557406478577850422884654065697811404809368888366096084406474975378947335494538543700356084301147946167470599691728285434633215683124061702644147096583909173340704127053605094006920994342196517995509017997797385408599980266179530410466697404962075645216315713573831910071332417894544277014890303508162905366283079680261662988916886951954599216932331477018649916645538608669624860344154493440631258675269770913050028749012450888048032899966236690939327805019346726826094545692631164123368641515737956999688075140381098070108496416672080908535786953414110918901593633700767205161640921918615479102494816259887581947307724968254002151744754478377016157414818502288029611700092828598609682759153325937851561630984842802223609186271969134863308698342535224312256912733181965197978830175576590164625831164568468783921477856310010462057241119630465805947542075262641239457243543827563346425402762039000354952516419922291685635512738768028071940536106887459821237120654259363761984495206270817726180250529594082751964168338656702736108077649172285450656832000499445305691099580655976866065711364147205794118556734419636014163583303590116560097195415945077352357071553871239624376393027210486858227572377957388682484516585918643608549110712194779042727222611024679369047250937538380876517975632351457736925889282057860282986709990261195522178767660554741401997992473775020327696540415488118004908072883839463491007835012067958527554073390520518762231456987849417793301462072902627174794535248215397144930779188771963660266820674783212333424688324412332990101903671279882301274906835927291800240552064315628480968238031565180755747642214511221970285679884955090609499923442619098040660284143601618050246009257883754010042844343325730151200111370432997225720859201718759032035522210739676444780768292486063427290404458163188491097072854439159386615977844533515959829735526737564772063172851196253716615037094928178801046151618658526813398755755768499128319029852979539561886368644393281165082521314601821245827306502981042078279162841933964223011179399839260559566282178440312906386604732145291643954780179282299791822042671093698016495280468955296819664059447802358076760833158390625951616615051158140021544589818409132978017770040229677123739977212237228839029881195580674778628160135293275773541038983672025587840574574137983559900051530686136367422171913121998172429741646932585392270741377873390067685120967141360098598159756612577786599150438308823814028385786877909896190480064472874607843017696357521811849145282248793069285670158167775584070888773795367528570435435360709178830387512993792013384149475199345536773226880150031944556719055574341202517169670864366360774900324865264542289944572492190247562011909840006517845379399736721535316669547351894190295531188508280511326181434401682153627581669647854028922169353596448039942290113083308042156505439425380223810109886357722976621956183598513539794213053379831377652667069724728904590063100087863548692423869855786424081027470130897678942581075157937117863873488546337715573267773709753592657916813889217198130715289927194655931075564739315958877475478402607327759014396616200301488570292277013359331356147960665581875371351162167108836398223134663390245497100853620399145052036741037415412046827647505257478995913609641984665577461253421717040970535429022920295695625603279177609425967362720223424953786053872240808266511467187954772933260586566051859364049965456079131846133885889620062328498316717805784513215145685513227690729698460702159461747872419916267825509374880475273677903845882031828360146103188478790758621023676933174985691120191667897141180052691539738377462493911626001228315944781688218457719110685444067090546399046162659096635938599444034884838477594902381275928351459082330201459378186835307669032357077709256145749663763325479380569938329337668543159519856048157787721026538113588718897681990215775495298774779987384705312122902006352971901924201143180593161177851357284015022550277323811997409533001077317930850978168337762554417670260625082078580058641083168458364470037561797147012437691483495458585484403298394702367325563192451752014925008543752773424215156965929952034926261073175202992905185671350075364662246857757211531192143246030195924179970040355329319096372043722070299378067058218521623123218221041415087674261772892346833719533693277436247082887682980369627911041093309193989430488104193930197485963740667380792289228074541000797667630293986571951169862182454253024881896224272767607103799555339242944116714994893017374723521949888227481880387634555466228337418849257999311533162790617646000554367322803930121684531181916976188262176299699593919555830244287071378965429037906104530096401570586108797660832655290030264850856164246416677835155382177005814996349506135873483329115977472247639743139715230135710485532838133976749808350681807881998207174569951918007574266766427437639554518053216040468717473568900493050832152738162280368685838240175254197510221481505270011796123979055271941819233657617578857567663648839760461709457547941380731086452071354284648594517663227795430851141493775550231669172249641637594077069244718963465618324867350807937468525749079924878484986735890795758902378186179491785853398172560639606439464264187400171096284597819279445984109238161508900248066465814236544387050593178449031363421350740691093724620203015351795519858063901795704025815495003479429687916906573080061252674720591099846541051325769176966505098147652565705172115710721257729112636434740520028142842755503819474631799980628198479080774657250873749178932307205794812170822890478774160636865953907533027632125898137936407968198642432202269139786802352791531290859097908068489912070226830398592911797654420788059851709134326996204814254177799090608970496843312039689042790736814671980856293256262497438169115456829368838924426997311462883941176989991127518649030339965877939958911707169514598158382258252596821672472014009381471017506940152901633304418853095751208477892974995820321845132493842502109962159012303704714703806930169887632337708865372358967802786683399518589133446206826043349025983405398237505031891614967252768358209537422521339742872749646375647426689327180892155998798866560014810366203945421113052421080252551165194117358260190021323159150046084231844823596289384992508511683392304718319557970509144898086471487097921599087074655377093619002805401555772157561784806746778775181654577391797973162091598695419703390734348268980019314225535835121428302292191815503139088689548883102022896562175511249424527494101365548698258301208382108029471926876340040200735121391861240437514298880241879057931009470557307376660831800970243458328164701829948929400737834492125081849855959951968071528986977198142147437412888706400729573895334418335715912990565026916895748394551603050331889897314774990710594795907180293682283817581021454577952434631784144553737211080859117759477410479957660219817791381444036138021620708398402946668797821803969540978551740946487493508539398153010377876246399706526670290423505732014366600135664619847417389652535307264971622908209416943642482491692687960126374426649918653344088249112281076212677280024135572803468878692635644049184524881337579490798683742014416140573405206309105394455480233677519361366494713232311045829538534209422305570163172192137595738677498838108932646173487098185872074299327285689154878457862073567084037445413785998213082841130056617193765885429071492640358065881765244426468842118464643664623571400334514240697467073835013133870973170185947979065133842760475586116225912133246569726770072449074553128419307766329251021825500057477421185693287957525286828333183234871137831759274355554081969382252810626844247115941210903234217949113344605863182643303327942448477443661116286981111487935663423436145785614419918345425905830667988667728847138665839347133147611258274173839449091702432311988945263954721170841793220439552957655329817648136374775518392774706816994267016371439575672000963030887582629082677838237703967842240674327631447252745134444769092716931587131879712494864361955565283159516250829056239109412064455781728957557010480377901319709526139338929366946324588895255342406416985603913379503284356636798723229437150517209024677458793135342987566543025730234688997572992595001023768754947424390455509970019409665227677468968021465516215087977704757931499421369088121059563179941691059909466064769906885196646623694089059936741970101379192231530850111992418867814111947677053917019134257711612136732449636453662533165243727411817854692288060176948198818757787999772930791476864526355539729322744781152260644851923952033708341289531845467655004487765287571044389215657408371707525643878375329897487263571269331367533862994555483070163280702345056981680907997931811995397523546458891636814279989415145404889841219113045667543398226697599386650446029722471325292379543731285140022984334426088231945247988235295427163825888686673001860633633746136960134691100085104200414162902253572264752841180146800757143162601555455694872005664918508457168638817508635246890485819266381835898173632765541911679953014202290591053112448497555013758391471964069642017678792211625092324479263528055600683219481818621390364055821143641311730199710183271202704815446941072161964665095801851707235152561035547191486277339545616230271355192604525052726604415633577194492819176536526197489779032216174529693388631930631218981885503882634610183601767977170174770231511775730582490849341734054358402025064772106278884081884646002013912707146948395042465608071628140787214367118449780232823118533512626424342152258700290703860786462439899747032517479822543162594109232861818903898470022428531295301065914205364199358851954534772401063707183515037584717156853732165767873031215612993545239663742668459178854027333645774276257839995814583011432215499719117599199345619253273906062532315980405166929675353272506698862702544226071536319895038408075250117509939806758286408238446200157223595894387330634422515985386161468295377337122688483971143277686128417461417366683557659328453864185387933085928570850604496216600498003537911353004611176851370918164419133927773368191314957829246939953404185071789069573904121804706794186895435653676366170282221141401817903157106178709789321541436395291771559952961794027937206504466315605504805382373559022878213245823245159643621019358483293472197739087554455676712919719637470534135678049250174893303225294242753419585278584055549488132612819533869719175674026704257194041600619370673328201090420611522668112413028899178470346081292032974435326665287459591819501997722859370623672306869428111444621882931600845398204066467049825915606957020049022558698875916871041820076673956826781097013493350022521664849397452390133757318659074257311440087494584322494193968743741002619022629056562200367821249911041549268353585526829789418783943521590411953460406780991748059791295837120781360669811225277190708237684312212025382791831356113647082723884933324141437911565079838676216681612512003668306220309586822961984433925672080022045816759397772660020083972882068222233627979572422867017756143447661077947803512244181861995806744350209896166641922401739293556817547431785552366079871994665217254874142203359075469028689340303006573454333788671878507644539830751239809098587792557036632484019989640372342047119560154334825191057948193459755596003015210015884900541869417776347689028455295882160193103250161546474112792044400301941711303406387072491741965765262328425214399861814903857977432042619938366922980409783292120476704673049971804752338929698787437380327927370988988968310771028364146633250338987476588690050858855937404076213648654300607522533346298115590378601316759986699697223392499906009493873893446930830944714763712765235279530091032670735685518753549482583628725649846235300019962242614241776548695826578208920690384444276544509984368643637337782194791420596901832963002780141006742316385239772947892219837302618058661512715654661292500493797250099602251148698412895187361049954609094222202973567296063577744828974425315924007299560292798640495336679968535880636055192034136637861607964043389084481523489886126238669200129052463303580651884562561896477330870379858829353101054479369692787368583466209804629699517542273720120543887763732426593956672892874599333877212047286453006273276118382071262043577551036440488241074371413409434616003617651897128958927094201336904483576286923334808875404973204121222118133093268548647814795273677201295907257648190696257318808758704933691370488996904860054256749454206063148371162681899183970087628082468618448318490625220986321714517085044614861964473842103393405319435855793634278128627388753701199923029702210723686169908375537783244941172774861638298161811173494541764228090908979362494652955718428282082765914198504616611002234965332810612301664891780960906206201740427887616108804611697856835776307433713943704176996244512205853716449908003064818277912425327944671387263688441103257530331219972794384663055738425751141561744239738356733181637003626649338650726435344690470796316276853696185100545639008112304954104945377680830555693529333351911285400752810400459294185084872307361088306044878496313225747301793843032766242058703642888165268543646155239021559926110498056946600462367593821359831241849969513361245106467669680111954627528517808263480272858876365872688812800496498245568052626937607377249749590481339067511088783165048031287346591678977792931557703220971465313015115539832849862088722467784743359589872473559769810562684219271606660847023780098174861325826231809019105085687996354946610197194756946190150648089082327939065643999158970326516189027270298853901589415842727993613609914353663998710972020572341795071270071375224860362897227401271991762083416938180263789042043268040823328888405871658116047959561670889054394810689739063372324674622423601285781770290144622169880093907225056738466648182066748574602430628916979675903532403656884836355255356639528768286803722147559471962651103798334161954269318032017151377024543991327688701064981231003771054689314590084673553358271416399023655706271580680566819014557780293229759484976459443777209133649855877452845197578122045508156806937909884486654538804821602239645444908827167951934223454255777144339725166495878481641816269311059818684535495736287076443040363857692139316440141879969690643142621363210961624166662676313729152772182979821152358663024445302413418246971678226732104458886624599174252170121531971586275711328233069868747771396484518426766534942605180460685777645540375840213401842441982866967281754659624983780722503265599220048233371306662676840638607958838345628600100882235426036810466588587569971759355797664704445081752087334069411624283560239221992652041438155119547759160654162864901363062884004311343208518536191588590268948956495839028889520394569209571456762544692347649649433573387400260534925752830821634971398517762135147019017392329114525855281262856509558503043157812730994670668307813642587777300306953390617371721174024925111490184637439993065005608292186072908380799321887384461095775289530433301143352018563557582427855454126163708515644435772622056730263927737890708886298864016319102475412289447161617543802698774545053814232314868555041381317779155053669810757097665116015442069822680246038510581142339462868939836343176992726834060057543370126397664658842282600240317833903002975176804647957921547000960347499656300059510964962527840723547801483475030627685424355954718476313332043092738149369181563530397020528858226563676533186040934907574819769456433769750904558751660872745761814252209298707545699402883447262025999773095504158654090072628532297914713734502213103722749459540973415431836274962730898722602767540265082154004360832050632846564627388443585754548172905392036811585664373547940188026666962515803845230971622124540839928366651073315024931515378630249237004354092199600889704753500515918575817681211529575785957825643762135268629102062954725602292352539458456866147333721130712035603349428681935566655054978635021736033642327704628562533398807650579306587715191960630741450845953254262670752856244995172814909914141211714535900135403817364387159915139259967120369344686950639429640921645089669808060735214535293248323217930758902557388568535852419513004114002470996614176714839622761979521378293171089034321804563653993929892460556149937666893364126380624364796675539930108318111497213327990922033231473539158828918124182551697209318031558488034552466577776920795606976664137260693292874100176244534023955689482023793024341166373451957018559911121973913792817471457338813094135124109894673034617284327061102851505094830987726332831330004095648557542998999010999359380994555570958137262989891595100685686805864711413710960895079954824337009155401900401705167580745958598744640258742069722924706080895804219227612138975527383472419448524765891704013408160961322263861175118264839165206208518466986358369008253765520999281750760557729198678117864851910759317090569995608933024224718682915954974182170939728632244848522505595201544556776617808786660022901908243168765422660997885881706034277163682593945877078538072046860016804737518802720560286037217220032675355456475139924350701165331471274278681839435157729392616934485118538150103828547824636873889943584108829919240010967174746288298711778426041825462033675260762903649067889649084498191175192836529332664905667378783886132088972486805264879410252268865213699965823836150877425127159555898868800415505678921314258245912037290138729133029333629373046722885678457956140033015973611127963135776754720842061396216139610973867463973495793429001317005897417401914586791478148791864259903245107080204704403911021804193967153261120152596877340924971100064699267258872268767466295968385319569476581799737123713700549449064306513512838019085382531425496358234437732532221325969068945043854347518032944530390413574363902785974691177354641416972713557223893989110883343528071754489272903630475547627951125429601625144638348460946882781598924946817904959093221220977687376257666638713543219678691459217591538246934798630726349300840440105289307351402464704188637113115648006324351979887732118808548788109584859674989061586462254639898552072936275767626316460175826561920530200821731101057423605979428931770401849662532045377842156327868378658235027893613606333084551782616830474082585239195282641603854230354902492183580067689106920168323294522043580908661373054315301722218838069720160685538210684852749867420252159060893588554408722355452872921714692677846905116815886875155686774914565962340412570825145187114977060904016417038204653717083070518485681807997170171370714856160732571693126688065614636608548018213080427247085369729263067679264534868595263117312808803802834507724073918144855849188860294610387493461198140450814475925615200534729304878035412620157022551037951725620945045151986923505533096592832052584343341478139869272146540058507878537067198800693850859938956938901506061167474542528747549572217718228646043655786022650604899807886141590158319930079566832922704754429577500722938664605493615404228443399458988908650592403711513783532634080108158453478343703053797316433315692219509850997454877937918707126432275007941186353003616828581916372149812352640477973511817080109970517301215901417695276024756613987331097296885326178531169140884577615607856122435847895548745529947537009668157437768963673388541718202798602030052151167013327452850999495637901589431107968743700270958892568917509239393176335445033231709031961596125058293534597170806439938457313488542987288398880305175250563440156744229053546840614236493949822025917766584238938326798751356727544920703464225309323798538607441407898047583460054824305643520380456520364646830719169905597005272957317586592091526896069170367226918284870615084307902878605799528601639348002622938783847716805525310279467048699684572355508800281153780474674085807930300298400457446101044875761065103725022514765802130583321257684608373839030883175060264075701141809695038919335980821447891207834382523648324372305546271106476413921751228761898517103144364146922662670940489790471454813730628137334977849456651386198661184176281903809986822172715920386242205574252958594417624970383719381731760350436326150571889037860573493149819182762617973845982666534926053919349594847259561121740494370295492550072233640153520316700297553249530378660435411797387838487886534306880998270186678171885642664201303556430456198232609218862815200138005506613237406392663419444104893320524792247124656410471453521882533333415532538122926472433755907119293764708671308898293238427431583920958708164319140999410481017079631943690615144421359143631650456809688916855068417806337951371576639546175023355207077175096840725572317658901805575227800766592741129181969166806588704218631058454490831276440227211410841174224501465137537955038231681634631554350808133006936395407171888554929369742652849729691279866963153426455231919128970064012398768858014680195838281148627210509441888028319193109263810115087526938574270288252087790510541747225505588170850586303683944871341957445214096853394635499165121672331550676013612813959895014780916276795534422395937182456064458739304302024071150614987044587064146373693789968541355067632564302990344959500584810501677995882716961626057220940938737889576176371382021012963876506955853077763226069244837443820536452988906115437623822164852602225153619651405372972418636712201096217554491356811115037005422567879156777108739936417788194691446816669372739344462138880990928688300010838840904552720929099121256539549701301317764660537265519492967970776157781926088655190257358850839119562748127721997627393632410336618706441218093352700334226659007336236836819486779730977579148970531928548917046910740504183432214077044652396017192914175715014383773186877141145558508857432210781205743803321647885335827726304282256101420441075844698745330156703032369422813788310141975065890230719006761840150318821118437379277939765310281626694361672095840100853038438706431188626121203129342268503820299186146890911297770902052094634026525361432620734509757810719464557324179271707655850412220975988954345517689622376782813530240610885684538621464607345002842690024872565311290140852278896589735383838645999327053181806568610987355322800591775486174416667873524571676222737740064730636335757819452418511972054306940855379754595132798929217717664189443964290148293228007737715077407510266415513253176587383269864178223638829580438497181905868414864093140321336734547462768325651014664602563300563400788797677724518546296163365685519367669100038530663979521191086369430546910426323643301104019935602840894207511596131968765651004579650590614567250570493441706551768964471064290128495315475269113192391330886749368653457966622505039308658471678009285675582299776537388231371067974687139579193788907346589807068105430161618438899471850403654995959043419190375135556811582021324657113781845940348145605376478053875381394906069765052477356891707175804695253692905076331391720740589846944046249962832192083935726805736066550460757129921163091326622402636284272651103327223066188492667521949874396908939898477359003493893491091076930869752005120763561254036102182485513935986790218143869422910124608406142817411188770531729898048600083620716555619828843497412455876361434336541056948813303548356216842559496623448333570822104662005685734643250747996359282775733444422509645015355983393951548128554167029771348558708001069909800124596971236726152260837267061537650487255287658786368394480963175668374999108189996899997068320698872666495260610086585149337646760767394106076129898987274552187538057376307696964504917503220073000433673283544557435309122029708385569297255570476382129910226661243861375579192981601942555395894796443731559383632339118450816840503202030773853031699200834629110143767108409851265821304102486126178457080228436066242235399914143719978420097269396333701633217943820312273222817680708209110090426246000067582232925235071474305833153105204445242961348113877174728217479094103832051389134342579657846801650926464771134085238943870074135385487209432415557578396115161410025374059059483078511608855247818316921165814546696121047210596053358923245955204182797678984126159672545856481144132377386899115430141226801502084024035541690694948060639594065974562351150190584062473388753568309515057502909587094479141184004400064449189965977302471862907079056185112079647640014392597256458652249216809840902800965114127341478814462820342848342289760482587843739622134361707022855594458588552878201786583841659903880774792796151569528888083032797970650717962912156383134039565302829912774874606720714280525918952566914219030546810112923086270671480718423326464909579266628587913176088298898282404448488017376399572106098231386560503375554508906271946658521515336727411110372371091339681874049208188722401132950555123028694248126767585476157758681073002516009500626976484599642765683609156508931617006190518309192713047212039703842818148235792259888399032308865864321211322525392428316676186275727538499304011972552756029001894492080781877140254677500329411175710644301881487891294617121069450997715769340253287675703601865126809655222710623925741106922681731565443869697893706091387507828973136860447854396155714122462363167735287875111369723237673471513903450159060208675322832782081527524761411192946259282926759094710541224478798600409419299180061022190181455862830135893149906899334508281407489425061454124162714564119537382652207538857829461705611428009744341576027714609270530401253603748123371885861234976345788858301817587084242183175067754459993259686204286032016025846764601350583468555615139553739126181274339299124272261454955765506876817095522562257848107848762410375463535841406281753272548045288848331205452499566275669048319253280265890222513877656265275582615721028014405085244906849652022954219732970832504016888627353048698049197514918321635008787339199621113364307797694611941643073130786314732864434255378053825506053893011951999876804257647593874088911115357784626000298686118110331523292900029943472544005073282596097154806410808671057475426422357027144832449615224426207896443930772552211152480934059691413564654924356499207256645064160714390079969849717683825912353603587821006451449686580882659513264527940595752488598928626013387596076420217393404714538920861867462991312552010965489417442195025400608576549390655942938430334154527765372795571335833841293900043450893090178913072972058622655563654369535125593905885893615323897035271990416730947715265280357969531709555576218370618315122471994509915749785115929417084954641432048857573140096045351187719525346368796291560082294489188989869048844078571918603500109814791837371797171517655280807716738529000224692808477444391379987386867542062318465062986986520964022632060302506491640102871994316848319439254291789631602430194883757496676376916656305769557866113232571308195452378427015695995716520073754856824618129694873732932830616075561055582424504415959962515474844574670600298252556137605288079641165742256076017333575070897815305480648544125340187512533572113280156767687170542938889831405503395147037670895354377618129135595170252105348901057594864830401934031910218018362038810416707145150809986044661203189281451109917099448177623196814540397004412135438805383748075097452382442674749797119282622599632400343850209296578655242306823380115948992280229477703305038066834295827891805513148397865911046179499801989333560008143698857651888530601194231416900732629119010898107382913750477209987661002326934457694297992077781177834797496885549050481361400521005759220033560864903815640282399777953363348279463834786149340118203382690427057338039573007576604810853852414801842938269836853278289266469686681219173440627229874947811083418950392742545900201069268001038148127004240566830078263986418995991066375459885162234306389789926157479989653271469255535307952152860897407922341921526450120300922469316457442407124058458145223199603524858591536475274084768841074955199458114397071721601721204709359250004120177872153833363372439547446984217882092931017479925335093781704709861963436889046178257910257182311162490471854804286805266949571323300508100821359535489924742168858772058762166550545480841546438844208508560367572557249261119481036656290423820853587418316201713684868106850978190004183038752476746336216989480543293338986887923863618493398995504717978097061298509907147487902064004391110563338741468129747171640185675696332300848913044999794670323932012720992782456393946467624488443146105129762322446331030811948400167388815260470487366064924654619553279526166044339413625147210675494405155159131875067175703275073699901604779578689662490627800084433378353098254964940399399875423500284102334936500282982068313453951711520603245598597647070323735043471331344897011177110973042590925353200690462929053298720903685792115622218503108038819514615916835394190273856611970826960736591099199698253069459672338329659021977433134872492558899244178773025020005987903057956233545839445316600114559772803626056885797284723850767890444087120291947483838824706371505428183132399025640822329472275031839713201825411570493838086225099508323530258808170675254833645178995699757910747481917951359872544793890402471995470639666442892535186371179921175476621323583685166697721200280547429241774532149153082403290090932471087957924237742767319532452642362516858282106988319521399940300377313682841135462547763583244771715802133896287882125219963459907753840810982820754031954590696323755269031146963606580354545551003493818670533632177862625430355025962739940762620597533062118076203463954703505842898647205331345066315735006762058815580097879889843934827782595342311084424904551129283891077562377524479094244638833780994108703123961079431451880387082206090713675039393418812645651801722455564693888893789678492035809732559329975924236622116939935534550904900690256840469739759846240749867260323234515823375865945294694392758351196893848041431517883972129537142347749977464616194349861010659728825790069809640565188467779528374096956465096475013703255053990112370653966223862582841005531433168011412718745944153864391675035284622825093260974203292651428020823604833479512460591820284599650890831131573221192486479772503702268667639403544977599798717854418999940177860833469741795783291840370279946412723761288439219940850106188346515911402316898106505148815169616543967731143199794016858330716195634564197322200566391766491517566191378140716577806745934215684883159656211024924343093372362761384660666368450189729604153863966692110399354547545075530122829395127607948892857845894979568101738225613127372269427762070518793011390373628678613618064643250126765519680279442197695115431225297466286087779698041420505687813658791672032703518221400336399551053454877733495468202456181720708642933270956871106308856109288719661115719709586262131679837454095741052047863338678283328414389504518706448809802224762931511492989602056625812258638917134169249215383165010824501374546796384560340972311447778628284160151021760179247120481953874318027345019241563902183075995528889407261415641288423848364231855268795259142846885029041002347040364608085512040891553393626508257921106938301273889618157638752410889226124744204404645323842614176885372591126671090045003605185974965435868451696543698760535887635921246875138787115785466927432618098423627872952348502827195244165020738519562765209748389086654248929784680909618461923512866336860473297692898757924526449036236400301166877523238575709697588509259000421466107216971852931698585452121411008313824954375470222562044690044658736507630465163883586868155154802095415888049888823896362247214117570054245077244813391029656769553464576180237331784313464841695001005785484268342246407579455042866635722457786695743288571010503171708857421657504686133785976856214455095583203224966836372142546335396037305200374183497957983115010779222043639536984971559980304116272977580211543862936714707317590178020069402589263483786171019860925640074234303836511778200952233007255355227415260978286688106256277523219504649661940326904074869085460451118590464735839215462913589127055839154170079871046942656950160980031208535063918045181930432662943467318996702528156661127808313654570258164629643942007311423475595982867189263517406401302538570922698487455957663526166004267198775729442476127287688998548110172026550967798829409849775061169277172338674234549821148781330916204553355028824491851926792380228451909197429467131315323320170145794466342416430870291306661395783492233970681282336018948336196780225226097561465363949725955705348227747495003119209802383825855276439376915265512741295366746036493371882454664696437742415531364134874313514059137351391896330678317033014619924572835114036238819291808275245122600523639047964343812397827315811863400325013083777914365718676767103115249821471790717936290043628591888987638505584482771918083431787532767856058254119236904523624110011953892554899080351667795088023637552061977411755375279171955229820191238038699544218101944028493426649073166355695402684634981472147646724930718647363590596653825460984815659161482059221042345485927079736187298789551499381454863370323014875970775262360664248466222617636587938481764427437753313720483957054154294527441986392461250166871392199869664840512350340552678479646575583281437539216679439368100367718526121265684448377403070130734036538958091119350561389391539478207683753595958285041095380671310110276421091682293749176882589911289041592432870041154542962889881406427044899772432163801445954358106776895605322477233995670979254540332697733546302416635612560046187689215567674275512489745500722553217432952790703808168729202451971409886883200234837441695056179434130599511872781185967810916638166513741909538019751748005845788039312837504173057496594952739443172889394698461818560339722913947602111146961230667090062006376051660935222961376731370692204063026866629541945661358973449976575013184885875126879782193144717904556233069432743435984803037768170445582921318785464357225167310682579686347275642344447920688218182991826938592423796679223556500162046950948089588850995101144950032593479705235507894320402819062651055238660325359486723968078174687622441418788907041501256010523096162150718563216880284193933221209207494663780433239883741461660153227224333204200313253418951190516399276870624641221305776352553580888628158864862292223292854559235678856608854128941449504617462502178307245070953628448169954857272270689742374442763803080150674227640007193634515897821813667190012425028259750192092616684523001360708622428625032871388874448727731334824620763164609925956886464435499271640858991080195787979925020484130892452358221648193208896950183358107655737235487598547028863017847283082493108937759167127595761428761464425469095830986675259150054604539354530954565498864446558963723910294040962475629576776443160300773230462979781493387933731505108655532433457373182798814534725353950039476574835306667225523633246451225500062676100398502937812574901792949757672319257034484814141202757211638102035505890406578776618659969718757404305884331468759234823550478854566028472440138772293879736459261452379218147214536932226988224516803234801915487952994474440235552031699336114225530432077067254778121478899314729245355458648983159899053831485140670796044321250176239398431129899704793990434189505991794678838307029819697079328245334420362046202898489718901197507079513423869119443878426494110771997238550433398968864239397554660923355153003163509598972094946394316604901656666706118003064291718085360969981810056037681303683289330896602767420909875958119219347167058189996845800790325721202345795061482760711347297442772637805291583395418549642877314487515440572608065439596208780221636266322677496222597822305402901044334677625620233088908582638581557297126987916679530307754516075880117630635614488944949654769403495965991235289425646820521956394010232225510761079836841704593062274507721409005781600534135934774926965471143468304885719921926742665371280358737115467745729509364474177475456146827918421671154810883847501071355595521374062293789580937340734368292718816239229739507222238005149088462944916862991882509140647949218540273943892789308585789060134575520325647185829458118479531496881301253625291238792427135755134614763158463291389138685699371883671685201338466132603626271037058762406742778684008371951668782666950003890405580391175114255726500661866848019106529091099849522207986177040065989298050150414219862243734316730575467941283851712486247314681927492841588408614264909913429663291311230598029710256552327755358307899507085374815838202400967593145640091220649684356397887762323104503026461027710208321207854402045129138825113524655645288082691498905313127280554547032991718714211046121986096642080370955597102821179740797775290577697419862902372189724822799887325792221923455369636765294647968951654221736249683550553722810138399044350030457318910731232826527412268049545898338207495548439033837406142501462022259383010566314089975993911417983376463143324365146943179589848757780855727946284835528572901391341975330970877136450988086908582943381280314049364852183682874812483547061560865926275913625254247749425924431710282661303564127008993158303509614507947899320910225603742316111560041331540371837655276794895535698051978625713230541657531461917003738902593804302176195404237945806836636589198478256713515649978005641649248638840229595590602221846190503985577943172995117084480879466124014492646400845699857039988698654907564118276270088594548471356819503343648522734876574568918361339689685846271202051296066451538556156800154783949669002429159830263122619042461796580816967899170885825221308435486218353941571607730345879722415326292329505707504031004061266965109048384553359762095668997199298001286235237046560105513988690176838387809883344138373368585027629395468361463214123664488715306128130371250565176306010215879318438414776517027157093296451609406642760251988117737142001158974473254753975447924421189382792144964662689440830110942302900493814976520054665235728301598334019454010850129699477834300724324133678320369856717223911589330217255259153138369168711169499577568556331359469550553447473606841352427702036496178462459574084689061289564976591992249453585723845984995048491439878619830684729741885712526000749888927586107367074017124110526655588174809444916190145909042731367537642929744259056468431101899826119277862125084153452428375921197288980761004217557784193531347055537922611169289848143989895782668722966589827064415277737344327624868075168521353898596900209017526522176547457262207430583471630424050228374470523587943586188120643844069756317125892074980733450026809565885251025646643528897783225920063607453575165865164589882864592595259942635960142048682883094704862562475723240325592130589822752653248158904626336838632761747265348169233105580913714238469523072158933439771056942655321906982741896570360735215399685114868387977354364620394553143927053194837061145500153331479171992344502061606229499401047294704833356432597023352493205469557080170534569464454573357728376457305048890730717790524966272277349256009948943759617786910402007357321208538624424404354319780661091719246506860822560836927994116881541005917512295703112632742497563693219082719226879209813252246868426794141111391299961887495240071340896569656822913029472590883537901161735530594085277002104743512132615323517798528471225031704703368408297193878523821376271652317157660929940493201116040832320884874543409097856721065143105275408638859025642566481972178918887169927778119987056159980914254303152834874450350124580129570603426409325572801160712150990125564648704266526037934701219446296590680148140972207708920399410261026060922729757970163622610224569714849977234144829188086690512620449861449205208166253006729727720084569077549922953307992324198789164581439998160508030151773269346795145987434675017425420174479215592255089576648723855028926025288123904928281759526362500029997598153321967510650099858754012800397156552246587171902313021631617549981648599261896503957272178648350897583437967965509944288834096128988823697487171915005023414887897953567097514863439894450118320805487115777899208873769434430290669339677689699652141536079733515013860914770640098428828100289776407163876655070884234339515370447276308828875901635902427945513351808191189799934409570925209098317741341745658803174961893602709084314764091459681639109377088536998191717379985880286673637452908526652702218776142713125091661436961410201986691929772982945745603334599037908241002769048958993321370477303760125076154747575606491170883032099982229567688437480964830036665817705726694611265772942558110788268220638119539918072857774413199215567019996332352352531586338813516148091410122589887459720796597975135206430863986453448088405138911562278108200146406059683380790446793256524661951735811154968711000060093072688653931148125125327302367482048981705279531709694478056379137935679839540360790762481782350202069089650301232336862199662434700839449497855041037183760750281079542927720470621786242527091215933104235117022279950021685022952599992729188770231189161470135613588981416151820427657962567936457781069322558196481455457708340779397939889946956909975304242374021607794393440993117313485305741466623479307846241089663320385570879906865141054577419182782025582212158929835386991559514786857574725938271973627285945813065863037721250449011195793903839138989528896550030635346048682531131333344367305979233253375933885161643576253267309366269631837829524226738666913558655300680482123709454521992162992290402471218648144099531794810542761479600197684550634072954166417755883176686600455288397985652700874731491449381123782246844186369895608583866597182498370274081478247480756663311826072006456906004214527079578758219520865769451895892316674655518428990465314306450821339226454107117661866723214307783441893643020193980035176284430203785656706932059612064909683406024616687501165187704576663551293280120515789018284221957975998587488207366789757682384174528317198050946849905868138232243183355681777992569913750929137427432619045287233016198331923165957766729032489280048114921782280696837241015242980978730138851304642068344626598234183791291613244538773280125797538838741163138218422377519766346440174971678479305055832838527642587027389591884590403122109955565021379847938084945198079712140259626448304425309605761172024537776775236038352193548613302402983196004744359987815464087671345601443516555886049265337408400158206328866777719812563730973137582186624301929567095191730169557371410424678572264197296841363923658297556053721686833329502666689137632916382504908012201327070239029102405589474368279889580622352928059796594049988735142404302047540436328493437433255764434301105921815970489330976833888287063865854215669277001130344635127390055330558097590560324150484775402047419945290620748609642897708857841660754781058496158037786852155461364794760528143338585666521736331316850177483716051226977090193970748560835199708692945910048160534529413710716491376473357773616436216881159212688755272064786286007939721828031534754760823723432816620300641487061204847386278811254496224509460498546567425769585675515421331061035160697242552192101255382515198765656614224459595261084540379508704512183219758993572544407472839813882877964828254997602092843571209793625821109228637489045591760026126601594420262955616751365326368064764140148434947902974849155115458586797778081566314066784459760041591863430549043955891198411193577636101657854131561451751287146645881401341045046758708311882196695986996687920612353333785649223652182595445290094531422705928428684384920961063258017311021799195111744609941972241712649598390858674048406416532144291530214901189490641909987649176985384062128219906698941341516515991422454278309271723269726622477023596163233353088546231398838523833112483442331521086973800405678333324240140430031564333691550999138816931681901562449381553425342372048850364421926321592347338259521165142779860850496945133485393327720076273977249674557817010530041116173859840292013988037774622688763516945182832456259647877404294082081248382040672281455563100976824443096277978206077544292813908637943506381192650751223669954848206706722684669700012564817092704765736587593983311233387745221945432197906260332779279322634806135472363261379217245017495182004045630274477038646958395757423827614721494718492911321875160823647068204607190132049025262939885842995438745094012865585088318715342236655882651516626052427485278693991108543892629331194600852263309011957542463985816930174294927168862549716982760946606253223085408981852968745300112361290213757969851539230232956290910446104822472075564431360766176961654863063516763484607785573991687526507382637615414322315260570229530895470735392276017046861248180680165132627055370353865635330069222641952279833740711912135401059483302584081713803883745828093968420087692866875257423635789246141976610033557658872304557645994060009416693983449085184727794288796929768190448398161244275088162508526569994111297563649092785203640750321448479773686336129208691289353054191127040655842340924244993268035619450021999681483504742867629357239113154376973969330222458774938343633122028992702397238655028911065009779398783259534183584440841353413721168011946057689256649595782965209228742352312140637588900208847398806093403397860966200794144597753304810874160554311101498529831519304785677202011057194069710053640460001622779229862938011842387623733805502241795628694836379377240307536341170654264496747629401174010707885157218863710248196551398534641692304769413843601018036111658085308516711912384821679409651455434411743895995056080132298850827446988892039248847804627465301524088931117747146222417119897337534190849597205986344904458642513682073409701733287565972108726740360481068112382975499222667556467797168501362482835524445851572487586851306818846102909405764991443565020921131577247681478509159217691262032038247212657952117872586547592152731432807323961869359095545093386600616975923875398697476394500175949728951277671118835392587461677198403762382475777412366533657925535292202884514759513127426447105442254852698725625836531471612860685615182592871074106492432947068964036796202928887021415664941206922975741644922883674661607207042405102831358309004022588862243977902147663306161290240231555224474662390488754444140464511680859908161951578960372536212630646600702796420028493524447811934049753294666827198657988977549497839776661149139073342903035364837750707622803527088183814984563259860275626261915877426515691639796482517048068898193914304128598657608348340618812970600337400751118525677509768914330666521542382864358746304754087458283065311623787714502587801904854518310974929468147928231659903623345094004868041887477558115942114065312955584342953818247956363507120906697448501377514125134522912610133349937608229713867266319787186893378751467674493459368014805682621991081111298528948635095853266511263318506727290359941761801083381755532252466981725218755172545881864390115514790885379591290728186507140024551953402295737966267652749882186443427262846542398215795729917362252814341491402673078777959723625409965943441050691070999786393207268157724945008965248426894852557229337705890057337399605869044877651073417999090115068083590602078539094627267009242442832698902070777728915366945746379262059271422089747766973605403584803729185390542453357500846671086045913607437764277404200047693996628287970505253683722383170824118713826130971313035773081349401321755762283758326688200808975536658774128841526801869459609240935942648160558611201097415960897401145521091923148780167011722403682326816603848131953941919152750343023190652411671701422102539999953477106120142759168499432225218294827900323732883611394941292636769930829464451494494648687848756681287840162098430736251331191183526631371510296326558418367268258722182550856038866372108000484378389092569394741069960234268025784016271889229092433810710107737718059831879157554972446122440134566169836756904494299858458179526426315223330573514748466313971408176792070677775651744995274701568621057906173565867535452551920511682969408531997617141252547543525248509305473699111966810913846428632788687802515756444858612988467254633483222481040370555769612490155814690228995155674714034452742321605680421502583010989233828439451591810931344932926554175973658594545485422716728467921341624950569218820114462273114173075151904586276632049861327167698672991945143733783300297418861111553131281022337014414342319688983236173504366546004616964551373806101082144275067518714567219211230947144321107083366205813942183630331665268314325122774848414299629031321881608676754709593606941471987936656278449019754750230521986117413885414798333724710284886640806344412554223658738971497038212353259175555062386379927108697923086672462467354710600686988886877009188202401565627415457924212943350295399618715888017191193204433369345013857669494758554502683544821132034953325242501175079622690608348769761002874461528302309783933513596115117781139832089915709166280888667095089806794171940869839168601565848958880797739699122056475857447934408922576207770726900910684373509129833306639643287695240006690375813328878170046859815768223880489011036082511387434619552212626174635645447743795528064000538758923305772643376774131013996404087899336921616453352432485377234406201612299787061330001705188300516817479586199795704681399213613094054583650161665451665971899379413692082049755687176346510444917726945791252137225803271338103307979497630821454696774601469824263149331633579743660446114160351727357036137797378695218709897410225630939074770823662018242747753632252531880313914484227760129322582427622518125507424585222156959215905208000511443221422341299511838775671930354215764395551078172153749137775939286305632642277243867481995949088656434427871887521348679421978253191983527056014676632946864676046841419428832945782929051509037966279510233143313736672944103653478832890630435525797006423346864599427552793485969344074220039383352013812238874076984184999962565146424038159314393067980507505575637059426843287252435491882894208833973532093457708932554932194793928132557809553990612182037390457887203372807599103114785305118585246202329432200613015426614708855002190528751903589468040952773439251635031032438355999630995764861657016143570038503387510214236785885201518641433729008433574047832066524588016030698269100912793506370964930512028190296143654619935055971921880432258574452019489127291340914275184587211797620265919676088293126441925169503985080629887006439491593707373915865677722990024695573171598933906431330695001370887789152935979133644795665198602500223290183916576675497822547498252404129916195224498810753462439210129372640481319862292342493744820082572858436370008480717023616112070345841507425439116022393286198554604385401830134941943915545072650444964887100520691869707863600996567998806988222882458642286102207199337755614259158241201071687479799728494045421164627884343720417043245934686044848342285472420466011307062408616462715366233794572576919365626746210149958637531196234749322948803581165799378667158262700226371215089749574467947745908910247728857364243291632779356322144684285909038226296641377489739651847806180367796302672447928548936365624612915951621431033900835068263356600012444603147500629339088699976389015197700041672792758698011110900594961139713093923779028632461541987811371580280707243362111837410216866489139883942215600732528310677707123164148950984982782164672456046672670136903456739337535503976650473845939654276229487994256929192085938173880157229128775703231502650486187908140941003101050510921011821081510658998535608187573079037826177641007301326821054404766388103979428302952721323992877126505745074582530550034082108603510636011264856353015337334207264425991897459372878960284739773257776400530591190882232320439429773814635976514575424867469622454968961263032432541947805952447066184687794772064512747798818347230481653476901725132536847839370636098784759012266010683304430864678093217692058925404742106396732249563374098483444599348631898874702374055520197106741261564072555034094316082072903589592748233930075152637838100004922397256869023871852142401400210456104817429100189746564171086671056752867266110015972908404098323043478772368779423324896511589588761512172792828141670748889554951539792698839989191677677661122973067502573834058659517139446021415273723635441389122103873091501608744316527306063310462357467873219988827800584015357211168267571358365460282147873092434432467795280274511038567782135825946869729045255716763250636640804596192377292037432959037268494231081272310190925323823221166094036043294635661149904441595804438764834838959149985830596132601521209768277692598079770532916032577574374172496921711964186158282954911939535796687705845606414396189309747210290691033572362678711563770986320245293168783593353666411432867092970213660770277456408638619198118234655723208231615184359996640404603982804658285420011609368980418427075358832111343173854459972348275493855543904784383189112582249651075040472707957444188915984155696181213377148416282913615509686329518112428526526149172421576109848325985153762148799217283676943242821345508460761485739962110808038341955455836267453239901317827795265902966729005252207524913329827521724525526159529960440993436359685526164178545092082763443737056770494296732856473024193299370571531726243298748007151528104523686138756231114807826599759735942458823387086087429922606604300215115988391202465503965291892362550268939239490266902610172106163485199654691367263886182128419086214401826622773961076069883458951854358659676032623789182329288005266919663904195361165703605498669806741915511821351736676124471648413577597999240066689035048441278359338734798002464492072677937790594033183621759951050197678465690386313539202120490053655723883736161200769607103443868701778947835818571306324488222895557815655101296385779336302284516591792663972171596416321347685005360902878959858426936358134392457120269069488746048810219319102449072646813988041502545614652056775434620414320480020615854578212843391953918088579932714919306954576366510816171099049525543114784125591395206067842291541370017731963055325483229872001702689856989298023738614261378687329332858917782718535409128440335971949448112393150475304533085332589718861282907423823254568666330118961406532811631918291915706484075124414573532523076438008507162346358702962523336131949019400699516527112917745160764414808809157181438852685776022056144625473238614869919356327357510546157246180650463602856300243557013060504429549693336387387435488428703432744898171825372387768804209131107688767060619355983440037129002371297341958687718576521498943519509957941624874940292687290843930749913800716640460361068953576312362861528424473484154407857381520198329713006068100451670226117291480716571978595759006326204903073608894992241871711724679146294927896148854026075687717234166829607769234330028490256507989847160454450387562836966085845725671260465545625391574009065727623334915936100313078940292952925714868308094708390014321152186366713816807262783116811516275723475176420722843629875595810340602947880691288200338569470452441722867882049997551345643080712138805419577783366665355197678507075321430245131173460014001351936590584087845470302217239667504627033267012016631004882070600968994835521659998257595494523204762073239396574616767990967718349476110797189485317271105207431482326146051205921883363411602504564919208677808603860297730016018141090169741714531278170242422575799820876849951190106723430914156419208267700544310306134916050752869038040554414315367642046786612869754571983102774113362714969672865692789496600290247838336888235071115988299837095486558326347907206316288939632780274175543227343034643319096631933522401458486416923530318612055068291961979825964227183086708675213243920063374550284512722060498829360584762272228594854799181442840432362077147394312546625130715256759257588999286250627020691734893472341867868861036829310311044543921855777650924829235463786098376427758931782611115604772914278886169190838207123706874548628509115912512830456990140704284395320352066751124862418814374436665638147914227125896691818148213801103704564243483855330212693512838599948066793932478834019206064353625794185391091527342846704388180280684253175703901125754376466548877128228569744078625643584773646728137445578900498178144016252838674709334540618559193274933083968463974542396314618737946798370979574182577184111371604290316382139635573770333176025021172046151559630942200212261370502836814236413041825762818920420510396647551913778936595336911910827327810745303920025126014714471321696478369448275163333775728160356077220982421989757448549368223582739344076037234264297602921177019867700646892060512778461442246967116682049840432276843984130542017985876229868597704493728035618660863408982255822463564421912173429886256175841169254922606177413911654543275214247660287199613716852760217065673673232981119793142128022361322345283027554814635961738108729928690552841365486237423742973986160262521593873900536848002574185028897140007791728176017061667468146324421564600171978761368513828025729406726463929985118939767352879670918674619470762505953805407083119482772509464171526377853395233928381266560387326674305048718196797068692226224890695803750425107310751444893227583207735184535534683171781273053412625436163697127549390165073348548357464945763293604328311040642293115358775899752213023066886644882995144365995555065751024596345456692755873910499274340682899303222854767472006760955025144228573004457687539199434379957621921347012920690598399544115275910753108673604172256615963654553522293834889330457043416673198537336821500136806164570216313375198622721071189425733965227893917234578862451277642119012398151369054506115286858464258815495533332343930080045274163836699813171953024882080911901432005563028722298771101034371247856849949062694224776990887205672829174693468408579160034240661533715039757064317349247218890071018781944033158390832352751003830940257381050172355224474039010243545270321697312148541346735266152873348290531799517337144924265109913190802816257910654176949729864948028517112899659367787064858063561038645932085955909806720516578102593349373691135275665001689665878371352219363392094799895420083009458493747769520032863920287225062074776260895145682906070395617833096107090458155797731127169003701898329873677236318456620848473299661972053365711724986445184354495085803325295486138960451902193687244435292308924438358177434649040382582114781973056940487484549301986596732035961821760932043547240129129762226199641916934729151030638650071044096992045975062724883347784439114734436418876561737108430108738662230798549933135452099279794210471977812311041193128192647801355640901266533980126894117904383718518929461712692653307515255473472714812155253805866844876428742079200662159160576416395123458597003136935670941003583051123116309550107344291642141860855328432422110256779801166281988946795516321008754893127849505308602195814328081320593639063098476077230343015021997726865009553348422741534781924940786620891621356116972210366563838970810066935721848048671233746772849799233187488530115532511285894154899379347069928977774767842863640438217541568944817553139747948713333647403352739473130663394142637740159524484553089831187500974858592378923818120393728487228347247672054571852828134444025945080335967327222465411585620705434488259944908971154386940051978704896082533152984878992321905621649477144749362808049770126431509155853592226154953061511315978417412146527035016845543758065914088518531054158971254975160684466703100653634268873694673165794100003902256771246652324578579075717754671691587304891619661170239440789667970350823520662856067966516377666555613623111985604922129474458931144468895172084558388327026252296559693718642497183358690529019387091490727507314233060432846399390719014237428154456886321021422849645773885271905889158790059819021712859301609050092662313448004738847979716305986744743318397091335309328757417039964987051026178809336518669737563459732800161615878198186195934666708692549299927172269289809095679700995069347127863905519295564972925236780877839586920228562179526608265729560160140643421628235546447970072288103347115784699092102104676934308847962307394505343560215889933578642128840291021629832375747389008218866256372346181862173527109091234263679018702943628736094371454259515021438624695899962871704521861822432466504172654171564186184933101246492806332717998900865609250449284586072675789984724222090846410947182192572655655791066042143539582736081889365875500792694352857680699325483912301070816080842933378477617560760234985173235645211677365485946219433733283005054115862621575896230473541215134923065173224234021494154421532901859176492452511096377755678691657278778382823808430022984748070684724150742198466838784415196128027371614587612477000232237553831626106956375602988771489696462164148791704675150784581042863078848308399909214288958626138609097203588113256475851461355469421269265557263446996987075455394252303688044149409129439181484953207708940994691797348072486713492062481344444811836125117678427456661742328005427883539365576415596921164221399816025295426503581576782245804011171804794267376537140416118174195600073900684788056052647047795629143867857846765050969551322348492242603947793720529580675916677590122176844204147442618701244217769376617026876947918216088694170091891685569383770503000111694791027882104221522472185520268877937974681411696952553515116537376916084678411899731486900811251460521659448052745448446994305180127918025303624776881407373611301682063569353952064693649629479895987401020963268302515370978322463902131701646189734568983377460254894092466856860379596506590657195141396655425499906336617310033058497996148158557007637757483448469150041247765976683738220368532870037195692844295966130372083902393678516588780082965591901675868416649604873197212368157607574743851536698150756441204671521674239903684552000983904665032532439502646684620923623362566647000634669510616928362937706434413767708217384185853809409480379103203764739966032693831732744978142723114442500971321414074978907462714636899543355483950449652217109743185021780021234418727439206386015319214679477271065015574694633603999710720368472157773136548558198988924329074623139152146008683469259344436136661362810918858702738382931171060652659122278404705407501502324576513127064623179194187010835664938849003940049373873390646269611836311068306752856785707596073835830965102643095157992209224052401741674679829975795312890639339083831026515975970911864311778459493849688652190952037393059117135368225893063590568884474520637253628965723893527120368345255506412927007812164165498329142805368086721785454074688814079220387155860476321455896157725180667568282020810138426778856495167163478881531619826110958098113537194836796925032529073122834051327984902104756844830038140683089320536639386294583937079235451867721252837496731633208637583588642297601916473625844104204774982011017576325033142133070167110167989394646260437587316397910722849147006799942519737275072541127040554682388157066310959082664574579827358896835973698530643195431226950062366468570455559188844395742418013954133685544210510793838630095674585721540828948685550743490276155383057006367539322321026103504836098127350731466488113521829538603587909969025106892935501646233674572658620421412612305740224785721927168806089116512993434489735921253715673926875357580113339281656641691152302211315518905551912198015828687954156457985755407594826815626160530777638106716907737732584577783857803999430064208554420501991155632460150806839647650622999023284942953540903539514473954110472112102695640871283545586640239593931733779438337655802717076092850180944889322754982874263540964930158232825615363349584563431045469046876000713130958447207914364892566769134683764290212595430492133142336964954321486403088362247627006686808811725370232265720199568285336168185474248320356473137492136490465880984160928849944310072930069896823440001396885879073791911471075472564916387146778612212146661185120747933245473152475893782327844341276849129310484287548642616456565594228953579631657886509995645051770696639045839036552148881331705540326694651379070603044360218345995251402196860091425005462581954618894832479433821507276477876653220015351990870085477068990838368086974139694654922138501175780218332245816863841352189485436813567400924814556583847008089982799386218889689063414811268032307887190027836609387982502473904822115877106593104015969581347918284941519384016974288126424251700138240653687091092146986424716103728795811906457850687950901789807870057779424738143814355896909561529845773518057273626401875868775780302159107228365390516248872349673175797464700435199627477107151423949235975183971226558083659718347238507432632199680064989900424080533591995878958212245893242356422669561871335772472797267588237240854702619472793617227833491411219139870332280208882829011914120381345079197874397874202828377376766904533934987194127265461798166704560489767061414842290447214464540528719983184720994337855130354005657816085979455713897274492671457127639820877494466189443079204675271268429031635699079483688909454538780371954920211647515305584233656843469925618313019143987393191238007393959706640422594867076505162731507308663618082015466833603319070321099065396754270114557484457291750191152246959681577559006897135050950985834155016262744434224688098947003450930982622687625857890408186856666283130155389796970128243033139493824950743348546157803325011417066577324230932923443933605866472248799740301245135744892191754283817600282297260507436963939076864842755084375860508820260084436456568135763979926101064899706962232925875154866499075526801777694080734255331647325261345912300953267054671174421022933627887307033838589665301625645235641995709326282409183436275402022670899645126729317512688712583374683148101994766652326655734079227121259961447899254826386166741706558075980946311208323389274562256571974370004640337507018731400118055500408464549720787620635461747703521387615778798311667971916727125769110900763291144978347630143843608123613251544892998031348331443160817190199450595373559159546847668009392428667702165966508671575839522187842447121489938292660259486281381184111138903424820188930974760254991858122362374341162423565040620472593126735870613487889730776481072433953750787287960295629367813842046304569452941059450221375122035279120113256094107859458971121420705005209927319708223577319152069197829795369524331419718590927564521549050451814524489393392735217145779611147602948791063482428561375541796728529965063494194290604805668705879516718496727942310439501333687387416336550241172023838719610338372238794311985846660809165066186637908177914796055793685009662080689183855020860580819507296078985777499241161949386218092308740804961902867280101587321323127326908342685059765817252096276746089065108376643683440898175313049758844565355098715419298519466368918392805548160107952087578183017065922167915295362366645859704350926429826431678403223705940214824466717987588258827127529815175083802317293383860337908388444455437482706971715692715717020365006123880710895737336214926531043003893406979276316162444476613721064959536674957015234977419641979460038988477994364996735144080482468448883405938610646626906266771549655093829892379048214150495148272203251358494977862794025062095140737853949795277448062205093186854285685179689667766473508275249825698450124430935164051478662307488899628386477304516205476904932492338835596765261566577634461598136548107535546889857754543991638331209624996624549393896278309877554973145832681701663385028245939168462300240271959172637122831814079122897932484118670150219545940044393854621130667936781830453183971652175554375225092332939140542843413960728934525529971683947740830835617405222116069243706879716564052558243423784261224811499766627404796340806174285338822546602720813670255260262646282816233237636029372895649015373104144635440525627543312088730058042885682542095783299453483783595408189158335812657084226625616964535565479850858473828878077339734542202567652462662760964704887670980302214671364416785373506452404312606477085738483958449129201301081098301616629839226983219438208877562582120546708723554561880199389764174063216067230804903049705815312155873713820234950536581543363138742131805828183606038180373878066660666982328534406935179861466420912039968819458008495538620612561474852614602065179739983525979225165304142048074372785691818091649786821550068787883358021275814639373681475330535431674713894462095920236705191594814434770622119620965653444193687603220089536870273954341123184310243769303483135002734738135152543794687869579418520690810725037154535665983904061492236069502638449089984993771072590657393068921943589445353547768590922437204035927262937650029790134861866482088708346693458170536434032076777055532639046696869448289043280168953481907483063517311411657533043471852504960425887610070022225841764031518472866958041248740348307618592645631294002958892255805756357901740993632363969653415143780997229089260107345436095718104362766379966917894614439184498150221858690350647806402154310075817243583819133318648179549885075765617151564916127712640906537620188790984327205174673494871655740683786247540128356960095225122924786666611087545828471676251856876143403791753074309194946320694853089206205235390455148954734804108709680963502447244781840375053192961902124722841014919870011611649090701266775080667933258771302434475079738569868054638073149298306695603380861736131412447273915289125972182056753927114433357670878257648965322631477649594484838757437196980477699888780153548388812192924456472395298850852970402481554708628239910577523058937567715677817621057601095679695842361989630124952701340178488709700368924360775816437521415768095820730043960708676717242231498071319980632926150228820677138130449555244501318944574021574061233763830327525974428054455799101252859797267837709207039310329767851870511020528824937800202948303221373830514776586517480828849768063853973669455397642258644678788736026336758457515165310193061742696170474188944074273475084036272885569025931752996724977637104643333128443606753687588736754728714290910882156979745726802532253553146134217555905924486223221123136758033469949984831491104341118638094013561679262631432193042319935691059610603288275933756142488067523443989462902665593764189665664383604918209114389007225242084272204501776596322574322114818876674486884829808026911521794786511220299703726643548634361310954124415150074643872886382139528224242384928086135472896789749051566299322318887660134474759888061990099813721377057586552234209484548778812948431831562025286423944990762208443347817167431073533935590058187238294109528007257954243673837353456583425317301410640991280821788320960757533495332533287845816784442966321602595520447375749247998859710238408274003563896571234359458536658524836956493815810826005960910274713358641900824121037784783140593802086740873585892555295550370579072045095163014065179506656879521650505451641563450241562391900351618403737922706306869571382904057169062316013067164223802416068111622466919042314830824048000081446047718808107979938534724641682898354156570930689346776336124316600146061403807467149899001475235452401092206586421056251903644299793892018060501759025325373301287907459327008630049367919422371158124783527188401459419077240588042781087540443231251704918087227223092770235819355633456706080469659352149574628656866522435933103447467424477817112747960361972771774173132579425025844675742667187451450243919809801970531488322238504441632542518028959316673172367787244343374901885655580794841322266361666324192236846252611802466385362204875378426117322384385825916560661385858282164015366845159058242055104214298441038657926206832107450803736864924542795858380017699007644814808610558914479962419234346376368416185276242886753489086247214271381294955552728676712818375436366104935308418283046955051796515217395138556603728333999255625103998150473122815148549977403854229145922975832328725910572047268081509346839761631557637725383036200880494111874760511979282486937881154665510682532487178348603340876787739324460780558904180057572747731388033923231689177077505603190831279197089958274441705248590663179588935592636753306528114888477582457099308274233947934226809751912451277631333507043371494839386020541116292885470970194574203049195291639673757857207405482791517920255411216765622914811332859285818062766112239100184566345390252234015857765932199063808526082435998249706780142491461346524579639038283136484491356329647685667423539762104703354977189381754905017183008756405826745349159656417407738287257152114055112559781483543434333431347082202813820031676097953239197636068992802818842679975165261634765121622726491040342909091969368118522557946105725109997562585670992298636996241642936331412453595309824086395705815359913570771739496430306892010552214470078665342045615941753861288302536424253232749687855056484289294208632801134782465672996696688259502806952384430965650229639138667047812524409757345038662584679886495917279363633433669802244473902710711875336660193621344301087665572018695287979192136796076569007569342694500708909342816388062073891066827167164903273667308536362893827083652428301089130217592031994932871455868075056402680000356369943801952437457861399279601663232761344737862143041705005851333151125422974752190494459904676846690896104221478983148296884662842381838885212552757106142145734453061180931504994162445036046477551374909211344735257105123663763524970169852706256434521907857905084798036635840600824033950106910039103352751514816289504874769175381569173165401883179338953157006198424290884831823567621627997516666072236790488259292767572848843647546192946362956501602275727158568197118872693723697172613792452031378989041147720530531509022891124297165084819728345525536969303895075474490452171763648188668864146613493583831247131196109558524806734871612673507661660668944959843422774218271573182690391963365674134725332812543423047312337265395238573574643276887076541780442924416450532725600651066556917809399064518931126914613692997627235327126097542151251332798396439727778516035614959289454535574562941806199555962017323561408492115276212934159762284851707378754005633220820330838692164172618748823342246516172017913802194632397858879578475898628575529946602476605188193182865534474370997502065185842400465734617019685457855320280451636576651781560206937605744700751623211197106762582709238390269833344528314060249058380353732958949903708612829675630762901969571262576536596315134480936141221533838715165255662425426647261194107248202186070977932432353644857802848222524950629582498717851782842878774076829996141673089141290502716370437868869414531701157649774436092248957825573275198569522518198524247341105234845380510167030909682479513534213501742924088494207620043438987141944694875815978161558363618957943581712824899075345140593868051906347740706054914233585318425262526005828046800790265407201276905993733568731143297913091103847944963991809614320803662210708683362547434281229331779206890439755724185316067519795475616599596713438608545490409769301606620652467703346954792501124660115271754212728841342856067210513916057639777678257749942247899530190886744416683671808190444388770521025359584946599155546798562911942613810639406400146458082204352960776310058968078255216030961981354568635601611321365523012033052963779952564387306173750258137264385377615275598897991391248954447522256994195458195132138295843859631399239783309803688648928505470681369934035287528808456890887699401497489691965363187073171172136738074061911903589154448479868260575078097508321620083990908769026323505100366334832626445292204604670148303871402396422543326363700670638775952403587577505381781729277062979809996198623256416309875211954247578032536994038245831844894522144403437949097654952491112679855880934588046403862861583570051249413081373604820395331817557356090580783811291742679150526699259720919383700043927956257885537762955753463414756377426081742524553623825801448392200076100099521033077710449087721904755047924279583539472644537360073401329686799542662699254600220887493297501450261055649956885580161261606100828584058719446669632718860287143132889562752817160198086822308392968585321018568935019790107469532353337245093900352864080672494016529821562997163886817303884532023858792631887178032067293832532360353161303664473810486282968051590332595757131181151777937988811568779395384589034067259957653463016317434996331815731748551368380296225641019863739322490332273423216166939860921945126627644637698618138424505212423068838914733376349416734654583840645169128897597204071979927199115013938107374200508338750784694498836099351357451631003807863408038709414671375759942312326300915933059715285155287877242379387443211955548509175656819420503895014719875205836721000364726021584726388153768806811140883649891072045928385318155401350766333487001261155385808734897318548349410110355161538348849813425906764522713148486111514250736113903722911122365378586635476117308011772792697076288467566667358080677189750288475338986636859368001372439429219133628891975368800857021411860804812940208216767579297746803285648746590806107314968879375034961544382911549607021735202654367277696596347043677065594587106967125656917618709887793895606468997259269726982853994898804314129073606244764471886713205344821081818088886281304541401476390081339644797981637130728917013313808663159865966476806896791068680752051704307985348375965822424215941246768881383855935793587553875447402418234345792962091258462703730058130785425454501322141701543581011943096025099787856966581527661573632676096332427788020410910351410878830978183010880662530331385051751349142639473339498345619707941622902668285136592972489435243007571793391660689749276417869518060811097440840284090019578210957796164685402397566024289042663473862332230401833984287517688987455411335671210911003604321040026107973975725469214197174634409029759542706722235704583425656126687332285661762519815951554119198997876868094393075401078205502690646460337712634654002036478250143036601006565141872078994347273192589359462585610311980044584118566451628512947611001419390457889197070309609320441374409194171833696888454518428138847384584431681308600480614027333856803814192228883930614282592563354230316747931180255852372613860686602457342108765767279009883496192452194943209497882562619082560615445578280859851000927929488630850364463937512183653543675145045453408591332396771020723805137078616585916130972918184087016663577727669698957028134043972877961469329321671694871358156309351293001608894862314336339239362901290011171563768643216077106619803398431762048528655499669753430307550328292600961851385543556310452270401453148458301327533457383689014989169286561451461328444818447824852861643738407866972201587416834384344268600628626263529866580383287381034952110989395019017071261671565718153302002731859832545617244810244548780052162778812463612598754866223232916621875798407393487267443512330726367752413106946459003607342480457118319538356282416947356831258274153432206990814933743544868013529827541938628003833546592076816365112094774351626710341262784614424179015853823173842163349990903495240205987073431936250236525777631622083988364039737490221774427536579372212720879335003230330701713921734142533050005219667063975336457489417339829282659757035037878330775703459139697452738153038252607201597446973007986522206526511546362941244398797509134627247194731441620806238054680803176259185319704087228819370714695224964072322428751989978434534056862994124964175164028840411552419866475252531898446144311855922023238228921878949652972806909979500356689413738780580907200549547705461740133417898282328359855681709006141470188589640781776623555133474089042786727058886747511960343326885836732618695248855428017229508102389617603719554175854106832365569379803581410353994450491467033841784832559977442913429015533475689549761032526894786343503082656309365773337296994094012634292104130138828859520102293279840931197825960279873028241939088787963588918656919284047558609635367790836060789144189255527072259482112862465743685911578087297894772227954208062293421880264741298586798678973719034624841096676264482155741014399946688093833427435328539152317022088319794838268387329879063300051537467713932610863334852435332088294949195597316497622340732930942624522482094243236130483598546245865420836096299258862625876944940050884494345518955311055822106778584845958745674664598340089226833554641486095873609270096681367131829474370694452913911983997833942479937628628486396793779674542624904759481580283775250670157871323253701003873324113186745845168797217224629799877134750042373597918396951084813921836643662130713001746390368805863182500466377100479365050189351738388814131971166690820262783282104518978348011731186455861252892422472839886581793473926815498505762932520354499364418826133128029996291146628469783648301988496768737313757263151684903920538054148929556238146639234318664725149648682827332577035131570804383489453806865301929881342967209627412720998654443261964643056588150877266230087921855237770862959968524253865383487221430352168281203317960207761550702261681524803830521376183240511417354891222671583318605436146808137804183452700314587707698823271853502082491023083428703541247070940869398271296612354849068607369983551221457080754428707259669090167934021927973554745284034070603473220117528423247030968751983543475826025343478273901323837689594796179247179809755157137627367336419046303606540930368460417986834799694154130888907698615969384057942963536500492910428525578651839595643613471061739645255515320428566985651986238585027978284488944986062565419428871664670982193764883602664877229021578698212375619008687129967909853776353864289809029897065729060301487508200899551205716664517770465811450078730326468574916831075063381211413074221446682160336813472910870574926990867695582440628213467551281092100801983464526024399123329531748651039763372129963044367804193187965199644116654457654816746843660427336557572865357730161308983901551713473034452166553613204652840170850843077324032491464948947309375732169637430606154203252140487776804328277916778446655469490652053723107247986495188776243610535254786839641749191865346590751475300141247144284787840707967458920871738836642397615014917361007918108352304156389990608576644452828370213905617284272859816966834605375668215723590640733686174050952544002320385841591625594046766676452236680163399975311883761958077515432485299754884445738567633902504722958394929189614080502548481243171650211574037084644049571834965831108493792021719766588623223045133312419904552220113747419974416885112304807989153785876073325773575730883274214828508489578448017084478887698534954877004903040457505854578495114324753908985290226206768242691715464178982310742556798450276532801432538813107493256587470712425083892619069036190287502630871391107554997511413090966897510571939747742660283243956912701090364026363320919343677411721902226814737795944563471155362696370001251623683965002365531655482038276235534650872954177409212002362476934084624216270368769385628896333606246513730434682204693927652384486274063182464732545658260383901578257651731277704461545709441082061234569845760259996597906126581634798793623837539538615847829419293825611492357517218773711609722422530337414472533004443241643687501036766865087518562182958073503171139616266067430580411560734206483518632560271500843204965126053472904850639822631939753302982007998144655322765846989979495460930453350389106935746421737129503656690168596611355296108227143355769397076494379672245914976543365785361853155510425560062146872360631915155667543123019629096587677671230375915136930857097621399688748247730199597072889634778229743767224975040706621706411726773083861016115588721954290666232548897127070308428292812772278718323560442902915562471533063334873246186503307427970455681562795167470267007180545006748858692266865900752260064271794822082274272943843235371620188963373411425823866858193992150782423856560548530192410865025063498883562413817735621936668312874305554373751595691823678447649809695823518657252098548855232651249889218484679265200273884563218496679766230511070137709223844491149936834378262771825455870336088360048213234967058220702509230536826769285836150276831827534949600477572505347964390789594000493360198683961760526453351563936914844499021120239644018421352507117770689249112678249429715797607136722038103865030583841877217226045954602560797437051706609986997424361870374225324740849122082084116401048113947829958192794151551491882831763737117867332129900417411792199655475125026366139968326406281050269085260452615676609108093614664390428505336293406750725132532830000447294159434713802263657540801522491242428392365292566246391841789020204994397001089250379288941466452222896057480751283947862107848016585471382667240333941632904254036498482002990895554240469741482696936284227644588482257740424063608336477738417259425738868117265492052535904137771489947473502571785221781518980333361824771126553004448539518795221452790544217538204753539643766535200951904026462010859059917205399865227893191868121668982568725088306381015092844712738683058827674300429574105628853293237063010017019871192912404282043466349034701813341016083918198177843715807103606363680248867648478853145275604425200093469663430324534076891504919597693007532588828640906148584043709519859033100412192419564474433485073773353813026285400629070617972491114683414452345434876402586630928408235755338567211162628533661431490241967632897347323675258717100702084348060862765237627451758090064866643184568890219537720837486888435071029029039112505223147338969546932867217557064359258377592131499661375886215745898343776805344549734574605814091633435654415932629812424757249352325233677614325523392469368852686688056371177597637792113616066155930712305616461546236211361895056335995445313930880088698949839819545994591749038392844459899952256672824063376567319589259729198953493845618891649025898308771307950218849193649844389386758241014754155788032081130131337976128923480557085986958006087894779932521421205046347723860894541851613341403691852034615622406648500912814677004578686727624626444714404755664350864466541398283858576212190025050709337192459618294989630470105915233422185465860342485197044117417281923499560246613250392220402698176372140057090958440551320579538117518440652558606565885913133468552181895232936994459183296679120194837642006935396939879562678649206560431118880390463574333353982552033800154247772912336669135057694968655361409500808765211657432988112430080951969168184750412829359010204653081157320641362388882334655258597397657056838733102956828168591230258256637411058602949492287052336580525111907168717778520050091738831444007151867515606649703349834669359227689412607974387072742972385215069444612127819931063793713893246352586415353964239424713256737367335183855485051325072358126003401477853108381990912860780984858829456888894831770555466997306366729707394015856137867641688646433492045304683031970104458736518011896163937854222792268094661359186760946125554824104845669547525431533932609950592977604850903714455791703356519008714232070245613681825954093735969582317469033239751176004072261494355478650900644582608905198683981249074015498573849327330944343726429062854075051439314691172554405803296790764285204503924754236737086344649686158814842831879722889901022485833239892527028499533506953645651846296121327335290513773766390495822336652054154820579674947764261333871367733784730003669436267727850416932865124070457398443046744520055626772074260003459107192259701403358617389823526803108029316270762640259693240525863005505752853476099927229708673354618899259150237303103685646416928619322483253121849482231358402157302065440321976588145452522556856439967584251918438239402407366090430011933380914820067476878106007252671755361028260813150436459845701179257919529829659490373240896786300337692613837606493310663194623551616076963329311275734382618283349139567440965902007533377471937082447626629678956424302533893139102280857953371752826039344859497958485005810760131036747460304292223821533753904369566113234831729204082859957011337681660048322833332814897375124846560083667731244610326463673375280397132140716713415337010509068765702015512511733661859375017910123519481901067450781421510711665113804769034593547657708033531552181046154624422251950917431326301728080005239762842958557728665596807367423604268380589385155316141191482689131910989421020304594422328842221724194154899158825139363993560429271373145188180256486777244250689313443870278932265535401267146136760614852083643743280873792001009265516869888024254691458491214107315288151507052610592658249395091792305115993561528525151677881906033283007279466357999548931636339003447117198495662317496958739120239241718304773416420462240560911492232255528118297725333139189104728050838574107973770966350238878809153085002631753301473470543368072439872712065701890995595784342828633928215328729905653738221406621168160322302325453992182231141259069871425542935214424245824405135021354543206873199579856886757526353667741889069482438138241883209547904684721779076962730837807839941078326500302601983479371254803363666222588617091592458597435764230198992810945346186558418284676060753600759932482451755258110397060849237670509248840532665229661768388962531006568544986714605218174739582126844401829894116862011174907718250193641028905437735733228558737543497283981344732125608515412075037687992120557771820089797239636360778547376309294409801156742474769945433387877712705292494098529245303394931337102848777223777602855659223954118751048750798201722868849644145372060261895515370188913725129381438393024949441209149817057987104438514624561770899542235002910433499699400286978273822171383547382557362485247596510592674374492550360646883772674507129933158625312015201543538223251234296570612061789561790624230427767212978469093531575838251426508971067983235857834644138174369396027795451779879622098671962745168250890072312629790565856116050219147441092103613926995126026957155520900401819418827083493851816009066303289269529492376964001049139109985326312217642695852487452819947150358082180587787063969813557939570939095262996810212070471001389503069735159815519238060288004860539174417779247158701229833984022946580581187493363933540119371353534998320551752098332360964377896211157837769384339435693004377813367092462627053306008757476096577835420412631363149117742432438991236653915694576638774367309959452242302041814035912979854137945707838558516494598592696189451826268531954287905023374607122369046498998225731339333444297617103558620206333866095726038137000209765911647878723897226412978356417801651233129286309566841804723059992260197513042385527558680189771873053069631702711856295670902247296522500566681032663636776748366782503341095435701301569931181148942791544044966098385252279890510452800848181932488330852951985585954332801884451208173892594715003902996198749941181817251190635363081718239894726321510749627092873465579574821134552549029252585542519670289683711054468399846045033237871521335339491074435335057967692486517528824891004801414802546299945609917272344638463872101807950239377683857647528082846092745937556041535704491778796717639944942346784568822751731297799171464224952168221266777696134553356370773287793851626886131307819816032136240874861914166868382153283056379146000895255433930724213816520936953632814667664450564725814194001572248921947154144508052819837859493359574602921553238431049114240776508155817651082472755945044114699486342377083315433758425314545849742882861398952458262181165072542145576896972536939909082631714969103855000981122048533172812566893200069327659865336147676648582308138886452595146340757468893763745802832807332651307035009924464745991795994549456098966528010173664037754479407384223827808500234956377740152823352500894046660722404814243350489470519255134935362931758394463067339581126146072670519372520814725972321942916596933132216915018311227597184360811843652980823148611605998140281461189249479019479138916488949548430008835718781094818151603784939718497345680809926751763606626706348339496105770960115212147902463258188780129708182827210009454135589560575569910827518307666045907762868153765314579920354901096461847072047834234468944556869661502283944127581748000653907662392650984366400366179285191788324487703842319920838980871369682103573154543623218464594937087500315256981700390763634066360223772758097652928691649492118350668602613902951356023485809031924102249555952346753531463180970709141005233757137457952312694056709805447824132635372849937767757026128186640201177451231887367853176208987924637471920740921025015798182405074727539005026560252874536394144981749547000316599227609409369563795757586569897612621324631374241994011913893537268737875690916797229423495127844335837273337702851901847525315106251929179492359946285808298603174900249997572073022698797934871170085972163208709137318681748457032790454421705159403861267108349776342481238295679849852341319956104228712875455021153793451624116975823120455892889015440023102078156592028056036728982017270908615119418459039987533703793013561383675466262952938677856299554447756286813607020772526437117198416112742871226281516594411219899201865458771397894022238411535055123710631471088855294936814845370685839359530560634734768955986955292953439076144612997671068987626501256385919155859285969693323321516406079298059059791445785288161988030500800289475936658179076907419602182241439474949984931785542191065787786710015557188600309500381077935091387140046271167932538152050723691126248751444578635400180547380566180550575687421302457518285891417011983644745193668860841975833073606206278227520275933237545396686046401007987204683355536523899019530929673498118192098884192493650281566818255155923664099481515740441875536755591152365462914454165137350413332950211325868031210109036496809760175321066501656413551180031809881043664911582803420179082075634915040181211940626587601462685181020746178649071372777244409070922803168936504525859282952011502068115751147042545225499135343672112711538248325889953677184848898717793560588661993328675156404417505560736805853223096769017909554410260573141368364840370235968787968194459512967371047665844376793204073781404600846699586150898365550984896154047561297314472883045988046515802438487909758764974984256046219581860752239212524255343783744202785415207706044109244138975885040904667785388839187152326633416693192908462916717498304986929873065548896077756222113375449142147414027459138081926198002932701143915490712176754899354469941869296393749463891253626706368304389525563622940008966394761492328548987339856967753938303725189893004822917135126728593647243731627189619989979847170881232785372970699531972902014334510015079899802990886437043738697929061725998739203173150922037882402477436176262163485763718514426294939646057583620938943691076934093196358362018824770128519798704771012125952359422505391576741887252449152082442103033201794655392978094125685534288853687445478742954048800847555053918590660296865876615245852662486800884963898183322902666377767412454949136743773197387777682990976417145565030479125466969203357220677937291783520658412850993527394110249410911042880767610932475078972457553423932512740707178189889343062257832183827827551305250645792381268285305505426207580662833705270691905634769230787653881087945732595535169507389754913031848999516231623145609079706910181651913769678318411980246881047650125804688667499945261220358192816266784253537291998586108426224075420781135820049842557468812050760758118697619057533756937290296215853358274137519985994418532703516761283825115361988598821344185838541354309256018399964237649341819334200914454468824114594108339184714487399529861121174380468567918279016747556431218468031343727990524276827147243716158793375754781910907564113762980893703924768804890886236766979383611711780354459260470503542889128166636156986193728923866829206216514564373239257355145124111241367782208463616711466398535002284145156836800861400990010830262971501935453559782450159253598282486032996382984099080302627268750921432075493267643144414977678437997174598752236708268611668955377655263990557717072632177907615743079799760447472980430829835705975544695367963734458606667942317526916065279351341001709093797670900784133931004778787000393474289871097739111396150373974032309864423636731154872969909794820754207839093886329826644825221439442615701867365471594820575333182587653967275571218830008691684721365713269501714849518338235477305344070416847065362461346683473452527991450106320903060566479893820850913321933059962021992376328550035639538145453857413045555740447776978416152850920626968180849822434777315272906129919644863775536814307060888532074944911302112456205661312532384372099366766340969616617464495868560075791406250822997687305827572033280776942962471038703326142857981486437768027808970270859612116281073031222552855083418995638222397726735953433557714708106012951177770311446028184707836526823655763336828606469243256669193575505402642719517427158105565466392713034925517791243555059798068214442429074108917916926436521129858925644564282395813708155830116312576634053886805712578375548123440492234561462556941217704433141254411308099654526939131471804184196376415429251757536689261854698881281882546176636935761173137925693862459415327362799297873024170950673415472012139015955131471280022269704740006156890587705593285727229067599822565418070716933696566792790202903998705796290026635305031393122063151674045958881405305449370754648212131360531729493661561983811000166393981641106830278480520632879129802024226718674208002642924359942521224645689179726951899134917018090487445222769886239105389967016000585661156106571409535669964377131453764016606791635076363392879003834192478095468217659980960810268224490190791874223613169729530989426047364113720892188246983258357583064869296295700051313714305868325830296451538625728849140552156242519213848264922516619982448319992286812176961805352346539371793310390314173461762718277076401351855538387571184910295991471059252342629611141100772000439715368041364655435768187200286578510863083964450451601321895552083034425348029150520091728684182789039781047664526803028778640153498655800358044349786288907696443922547914798089728211898455939603428866856132585602540889969150041484552352932906070418870240272269937164676578441920663121642915507056268751132090470475027956784214856063484680995637978293290295315970761392183667173165885139655352094294251534564698143566772048129166404065979655062319367037972008361029664024224622211322872061392365748445099305897737614913541898054689314692557731363266161491916082464655187901738630637732178299851981797838733498431476497964100255759564379987720509295161338281800774088869267176790671022818133543553390730297121565650673113284083302498803555019968676774619996527487645558699705047158081190036930745872762293587824554849072578545303786222559825281246999798791155501037677236126463534413563321831554765425289942256168699351121346666437260541596665064776816891978626304220092394069775724587381139054634070887629139092787065296258291330562889252560331736191066424547823677460082484736539020385710676895797450573741672388382238982171637105054468889790328295738687746546704993664469146804053353390128331272272122358344043684227479723652579709154810046211760755064142445692536179828807806633769599344515843385211773868290013364859846591690507238440594262343267400860586560330109197649656290211409548980540152453711171289514964217643300659549932012967478228810520152396702156355250204693421409489131470348708785525814742720412056464270259549941593406791992271155715200515714945855197073924072698007908174946043184338176735627494171602649731620663338218645408817703529393122603395932230803146725729568145209705724995214210451673620978642417978555075702614425552545653487393763243548624347215507621828619885237194236075239718308837380186729036344475333091193780999662570289277156304101472227921873486829235821866502227090346760593540162008704857656062934764121649151116994435370799859490223744385535433215087356559780184401559594725071240673713832578783640102479632564230428452577065970632160926082014896921804633694093825373864220938306644100554783649111727902081239920297228291635215361734825286192745455178470074922263086619088801927251911579211885477872949698892131327930339019557222987192826136542245785003345656915807915246729372651030115915310710061082172279255516737641938876254535273973807282903984969830841000418265757396484152662692503862935896427393501439033677643313730892214167137259547350297255150863400124022047509618283462646128429009830213497801446154395180115681512649256392823216018864028055961703527045057112710527356777495289829635675620676532176589910718611957614969028800272674920512851190857001750743404282492813614036561484691046135340395132571085262563177551385706540540149064676231157189165830786483227454258394873705503769359203929190039030961166222763804673802622998691606183715828671008734433463213649583955297673201050990375112323117341830974248984010393484075444646819470900399706379510962592215239331874332074529203178104158082170233492878243687317346776739232427690675042251603556247900961558402272668885388269658223024912754799410777347598385136966736120386301581183726913946252444828833258311730727436010166768211703464046491463383238688962601907916826862163405868623071171199427043528399618917717042990343760112321312609609613151932068222449994291353756685132214395453684774436014404557870024651222838389357864708086810947996635655578565073583874102396854008932907621922920870610706688581607176062652550494310933578745646771967864130547340982543272427601071746104044051687857491859525584672689426086085912645325563412319534075948892874990746044423422825897186196662117736663209111974640027943106776844724935502670892326855592154949252361578471313364443524032288310942053754339122888394459366971975349342312734133083171958559933988602574957473427126202744846634532286009588983794886372845637079000208648010231594847608322038806635218609646373843261044951581850724062578297100575883272031239979966590041716650624462566194612888881606038677589688655892144108540726650021526582012881530741010749349551824771791171056090320341450727961287066209126720459824942670901622087435434833150558323162373989619018864141658598122528539894768274995863943395453698677985584188328950130313428826723177508783119533509680984523206330825182579949060768441738335521483279597104935201743079532036174822875330207897086607680151342289033335744505203466998216055983783374441215334105576341387379107656233529208701835612844791638887174739552086044984425670735305245462231788505640110325440803140429074270333945488839095893477169837508664882429114499819301066458488518300472738879291260768665706008520760783798108575736547083832648244146687482929481078936846175862233810110466181659244772297298290276188768735033335206586314750618644533895384164224234147251799842752025982637545534892781172840109178010217698595741607862191385607334586277628652281498148182946911550923131683639277066731251950875449266760641321678060060015034871703060434495225784669259635170949114914176739221128376134613508431458294876105784732920985722046714191010416312954547329712177724312726607996339691073863361703673078377141358614026668113291456587998158636847885880030543345643509291769960994815178199168762888993155211275860899061583337067979166745558041329373002909876910574515780344908652730307692320393846388082832606980222170005716276176043471041571946917361490515190442106750824613499630547637470209746464329136373057295564663331660365274393303028472046106258729181374949040133374868724778965893959193133435721120774189363398983625307360311702640439058242700640054273374585361192022374420242592125393637977547851663052320676663239359353237366323168595793543693470023147453049311799593203266435558477651694136755963326602166187607608346253598685276092423685496732817600295908074335460592062185786246876584360499745787430589184250345874164995984977324823108373330850625705282487724601711108230138009101405089989594615354025849990376638195575396551309992353694803154828379800093626689416835177086160942734095625936128671016468882839666425861201228502174933139157108219400072221826308016652645514954815352235080568879500184604573983465404122031261403187768511183603245848484580918623014581170032858638384685382420192971244773357716824907727920450645628432498203345498701762963004746323657812583117686475200994850178117633664314922453441690754781528295999257381810587306537550622240429154249523461285703618963789045991753461445915005239760279642199185238982681701571207875428101840492170959630307041924106360059515103879354453715757699925317953207598473354076547586248620070011337655997141544776274761454517400271265172925806868471180382663786313528087498894215274344101889999409394433589278925365238912191376025045018098727122212488062863145122125189106125610100621342391732419091084477693554785338839967858056215608583837238430321123865472077142053151327566016911261456859564776106856426319056826011964422070545721078055715673514685450084792784689108453742013209699356565221384316086646672313681971695953720476636458905897130352187524504175421570769103829119571004187228602994023170322761553224586505395269608624310433912347292175761484671696964829447398125974121236633413788463802124305929747798878194049346638968441359594006753687580123921500810042512938585765433049567047877100177033582661745016438468735538190300226570031952786991784480417312787285045907502104429391587154080744422333328230493699464055480101726526506631495866978596086744319602505378987939786671649888437783360084843188364222696604469158845145041013611206885615075191487186669637170973263803555438421676778166306167744506276148262485862486255749703780351053788995624788074510895554669750243552498185542133020719491191690201281175152997464568901926781838533403467074441527692049591025128262535341027420681917112613658646643336264756163537998117430599634723819608822376179473176559681219981582506794973375424214067970503421726510089499801511011254356050860681985828668031797255679929152693551799046658967210971336018477839590614672325232854886471322640089746878550596272904260785555512911123783727921051779179710579959751397540403127310941309056647508524749837524933638710510823792468905310851067903236569122908406658272888722232890747987329516776280143458679832721667447025698256037038011565752121383907260812218775943964261339912189841839246956995740599073773492623278016972495194346198826603732740654085199233421451121620105175972489922634669907846440998189034193518228063819528523570399469695618967783828754493089268895298123890832359237313888208675138189530206675026244690181974191551455194284732124652009624459330092055792798513781595484127757679333306904837829686704204452241117810480979640315795808239404853488673751998546921442152093641429966096614660782261832018641135544667995907921583213406749689562502358908186997312402733846077328866870727506394702006997731633962694047651759282282201250996786085988312632515964084637643007138168079900166277394270932447164682750729433214882061822928224876943876291875610704390508549575262043102717468716369256631440016679060460605922748076409654647283826976793688403825794721863857475498965592032506790661579812223106947971043757973802128730840601858579092481032106988271676851761780885549565557006797820426467977954804088602734447729627657738614942050115804987529792066149847982884044753331932761487387201951364935325378565950998072693775489100063944763238300149921259014074931866473063334268040516735099063378444730256237719823589749032483023354976077767602329744194619888185920520528645276506669837250570974775620534414836749130215050741568671674956247399065573217034862653203275975214921594514637677689833017733621970069801235567839885276677372901192998272189132640783014169421260825384752185432372467317562542131222248205682001205545038130340442992071515160704339569599595027023003872834354173562237254745740408441015410609755506585177148263792004936486615043609111214056150560692787427604284592607596692787389444910479633640514075870977235666653786968895783313302176056020463026130121078845899442934826237873909271812219942291494905279319113725150433923378143284559197384267518619025633369461339749639153508243817808242526559359463921449453717298810778312447226211797058866817977120571522461337401792027531694176854108691936359372088142185411806493822123999076909558991566281969034612195393298235886207897328517929488272976519587601121314737987289736289744681535554029653175419626021377465486397457834984481200199955319411851855014116787866266043448248347711390783479667503211677757453475104008450270942898122970581525484208773732381287306255534285561325348533084764244353718674524881371653467170754837585079240336849861978893077522827352634729822169694973358942155645720618939944027232806316861794409039595046010145901406316217687334093366805893193237055492624124045285185005269979975480484750886724346931749057760638829698716007824143002187235725879338434209484098897362023740379706906270632466902005413698875757736624208016227043762430982065298742442846493700180387608720962182900224212031023114856826112236823316073671971228800710663105320068529309500481885558578488157041876068960725554235223680532316973269410639929137065561883221159478590552137754307645074202138807947987113500144881629492593605914607768971192250922556819298497491643615663868533938021312719536109345489052715940998268166850526055887862706992936493094013188163707858957891467890606781131888352627467157589602178411246826920667447830959730782172810522737872544870649430943449815179915068579986512859971057414893194071741162555092740810166070072507289171476105426460020829257766036643852836244768552259635181486737105895451208750408905252706218109987618862867109794813475868035205050914926264172969284911638018167765423340680104140322522179357900050354133727321466898505793182735941995018457036562907482137653608651977072915193150673963569298349498917912090741908398322083011771979782190669795527172770986392649073111474349339981105596398117877582439357235403394061465983536178387016633064718445890010300849732778653658631804964894994171038835218695460447638245881565328395026798473532994281983625717934851595709348069678105859815175838913721691711684340862993463650163598405155879848447410998123449007822654019294308171033171528899545054303762774835837977928677639636296555314353228397268894074160330249771290626621032572983493277688014252981814834433863245521682143974670167525409248097428305453119840685843401186571658418870348651387979855647589373838809147077679519271760962585983231222127661551889944502784335166847277570821864678017110876233635186193935979506994749701326718735214095252025855636162447541590996577419394593153027135709162936773328217961997107152653660135041840368146382004735339769268056736576064370937473714806928299564148869592841745893561902533870931745396803713377286701584562335551191237870599935944743697532404452249701623170713829866479539758833070282093409265744460364450164920554083906295192895803126003065974732599484277825848333507916241797649233800275562523847428010235745831397769642530938106502412367779615475657731266161755997919768887092919455391220629886251205503264906702965028424377333706570112441243270721001598323893277705754591415434093244708010131204508907927786100410225585312074090588781823055454817707253225770399571672298852121377501345257094614912486075819403701697710705615285148303788681097020128156487519687371224192215501938161602180170111454489240308956784839092700160725403474984847104397783165475165718916851498481653664222843457208219221620130651035602783845866185696861535502674401451173812811865925915872396084091934595923023967923449342999555161991731615635612715116959136829994188156981079371069236520093600187160068596058708545917225695182597797845834379107796807256958582569061139704318926368523481014042737872334567402608498231576785358727602383525305300851920172198518749469167115008001724030333143907581049520924388989110093749173318419263992459464511651272350780242139792834010979197553716538432088122657714387421683346312235101520400231406871427753222107177013233065585273348092021446248408133587266134149003472444936317894361019786333684176111732478843399579818179363684336831263396112734603058567839557867827723276358526224973537960146121032524672938286895699128877125334591666394894803852409438188335561765005030049025616113804318641003525516862496683099822998456582021604292194644280837405472669995989026804589049701389095009939517553630148507071246056875605954230940799284597579056101292979349840735677310799072416405686155835290882285016830077868244689780959096241029303008223297254290952632159915779417021083925522543845589240787795684780533040096439676712207314598295973962580912167119500483763040628575007527010114201098606640722252461235676300838657113353126524179390332597122714781966650510149356587149613916731717199676805715467750488398671412451510027919713567513812033587017370326138980458689328198559402473728887143979701157872905738134975851298645282598591641500827519235324535678829361402590706508318951731059005452186656148521507501694657633229718115151082915930371327350078888357573385770879750205211034794731387034749742311103026676037605254216813252975367283166754265400475529305352730224051255589605879368725960749088215117423124828605322780626713056860404480120105775209205084204145583622223302925102619550600553708052539266953833259438057426570637946073732682383900510279173477884567536935112921752409869159987479131258303483779920936968227453050605051390057128690470845856747706328962389951820459608535291298874688865630339420185948021381336710094562572250081213437971091619987117874632421359813535418460819256545225933968992684658826424564274968557929988222725286061667269387112954257988411066544196712276034542910020147777222852219860062086349487781204917628931716582987442941256907022940437435718028509996373069423443308273960503853759619015450370079300534158942844990155324570322011400491376292675194820573996041510583831268770445071328858177402094708935957421988264933210997453604492772497270238040233455932403523443362689748855921393562934288177544433970855181211803270375035465681033227472967469102711166173712195596862975966697835523146031204107609762369440343195063111446363739562976487265189828695980884704104693154707009791718387581398299916773899786064432142948869651517920575078526626622576109862705092222504737832348169732972095585872370943632560277142062330116135132635350967028422875100505851666857360973365155026241668971941640026012980400369560780495965939084937205357377769035910800033217092480754339447541771577334685134617556601004317946676558978162749759468706220098104017650953266484992724303710186736033547936986584108431988007033700142416536100675535455991661737217403009389766425218003958429078717255780700043718321982086992059761467169922827465846524086700050837711646212231440483303611100825500461700426627378225006766387722325087510516563954106136331211483898098756680077640323379729811733965289461906127351162907110418982317691690641874342871379998071478281880841483881343518761159140682587135998885292806853089343632896751098760046044911406386079204387752829277022721866940498907689771827612061992150200178047214943491732312863892569304642823627391172931780338948056654735280926121470223008996200853372372731433887543452268887499371968033203899994205140536821827681533362687690692368823420596602151296403644463283099480912401722295964773064903332642147076594755355169307405438148558037735657445893478104534414258004267874160311014833865018980421910479059869780508862492300468883548656934585268970586641140188420409336150964701194009646747452190826893017089067493613828595524814998175817545901382437434730039571092467203178333411309495167928946380358003405947118451424040017522981511884961956580972846914257825997957193464140527335465542616926125687086427812198007176680786224134843930984238250517031676549264811205507426376861464004785112046253063543857395084928178371067456754748333840634765383667051216785064383066447489189956688878051897715137645533192545031186580051101591749792823055645396213089391007863693237543960074946585600535444521134892147640449514585123785663982471864781477915412924559008305254980440391192748998285409684530566601399649955711968435131698304972557834615589288908747581999683558293259639398391204057203045891031253858204738063337646783013001306324835809614845450152542786918687697286508599997940947734927127701540204702721966277531608628953460119806732870204307964691778028535984593003445992976311340121909924267950971706186580599648101669203823779550161710909350037743718799246265242512578714076497368686335584390301805205530836932808181216242076592714328383054111814495907939707699823615309798099306067722930146604186968289813851178949966548933232255254889784577440771810211891573240101617577355303724337914430556293619078884166119974026362384625320347250336966204093293479310827083521795120600056522399675898883241943933557838839812122331047026888919842473945300028841849734825680070713980348239141819959534939908984175870038605800820577557518257549118641140837165928912033848871482344623824028021687154034971418510469843011409905657061430176011050149734193257346884991880231388323383585295275739547541195276422231652713046162743710039710198668655956455434798577708769887571323953973508479850322394123757930521851687018795264609238975139590341046564078096322575244819157118922574415355816918942747439933899303980113867789610648880527565356143119857394995812993289893812287538355218259562986359746023021452783565675351709667049125742951159024595640237580221168882109032087133433051940033633305125237492555597121945550298844610812241732861434052440479043186733818777574500602765171825740678779072267321619590433246127428387282363014569353768123418698457548249913351955762816757778451083779562629806200236918404210245075424717065727163502927795884248556735017665648678788530855208583430241133519614358971973922366209345951815483238462194934776795071475908666863187833736181592396248707156554557100043469734960692522231238011963790765665334607388653439692602549116538663667674382506344135543526212065684779537669356214980919391304060447105511320428182010284840592332994193191666629172971795906601625658935430889172347661966876752420967348960754129836218625435139255751877805867643752443611302454731096798180165892853768247713138936485894005115862612085242977556669371283742025652754044628542129315134966537166097662599843177856421603315100241368529680092903421681952808448556381074646538299044908414226236320951953608977109692390102818638857175481115062685263695312418501689223892303805817039607694262671518435540956435141779314767109102095053142498423073503233456070696835435092135242969892905223664260574020268810886412028092339140077994399355513912951461983967438177549732970858997525693313869859299357517424615088202868957637395370507853297053881401092407338695434728427708303493155752805465994656261912375198612590078375540473813511241221261832491480542890957487902353912816224315896707271158782089045706291633346008667849454630170011313024799772171969214562930156922118992467905948837398775757269976346963111727829168433167784191715578884777247268405540044400998183025230370299089000494382697330184043239600766371337376441949370560099993551045496273096488705375060549490852594277196801818188594219584750836025510694269156534954290234962994844007280066389806930469186594598115269574514595934158637139722338496500824419873731743586065385106327000500544559437847919188665049704129175911434323976944347575820083729320493909455069521867855491882351817254808761309381690107557793543485889975057741478003793475820081447803526495451392156024059416922303117952159100190367828076788480008279374880403162605618445041647866169999147529522326893849629591519522882570156110512087788571347100584142720045767596879402203373826070081358994361218012483789399366407080146814225947193901612871010247247084239720138135143989872300409755171911143651037367621215802918687054711442803168272869138051976565821937430940049908144458953139492874595852897269530141733487731811381898065225548752071684163594994939738750945036862444777145655505760851056040544268767857004304230051990738003353657782543386046293248908564258912284405060502674958198282315444844784471924733196207044530582707762895330401250967256854728366154334044589194300935864121921819033879501057789204325019533793115786386136182288602535507921225446549987164969755239950663429521834428525576914220233660188747485077528007731032007518422396843692624249656068407004307119087160150924474217303591770087843911889818779454419971814398916697273323130437241935347049636008914593040281154490571194277369420021742843542959763397268502861886225020100640855037504249934188786500927074342088729022947023801928622263811375409811914509877604319274272241312405668197489660882354434977635483755923041725157798465572136071471005749290440877683641265586573265039391832267734497121797008852652100207046654844661371598857705625860815143856057429254752836486634711246556002404006241302121266797531228513291609347651064830784120066968423152598713192336477881018354260355296068725018789978944216905203265644779339581476323835746976451677298404757364393140412602422454007412255235662766726174995500566647569181343764857909836338732321223330769110007000671882330098309287930194873815794327411249819367980362036051929176623757830947666160247747833729476010949373330397378787304631718684485950219562613532317695893622755615028880117359999965923099898219014579636761251773846357766238260418734004574859962625071240681108840094532157725804861475685558629797391967787415236117714358873103622130881224264195421757741115546386026304492517488566883964730337661462299505669077740068799428323608440395115627764898963556625482089551518631897311975777243282952821675049011238951473362840126849149115382000501981088354379900357058220253373562651333352684404506667533673642670573768076139073549213742745055119869718486862581473347869133831448411719066624544025900781381509404029226349316857863194328194509550933455700012031676924155222781957218014408606957255183453509440966997261906169133836300071889607235793734420464194776391566239668712767695978872623925360750650211392652429138795901726477816339613818816702432756642909469669233139241504525617206994367563441400445003821264787350246810235582891535819226071355187003593795848668499985553052199008327936166834819500810935811921854494004095703045155529165532834729327669940090548770482753348513985181364082387114201499781565770243078576344375758656568157721684367553282168414855076307850727742129089182098233870083540463621813735955930100639457308895092199465835838127120649130139706521721080554069890448919293446743705821610531546813438316191467741583522144390195674384613856802068712094519086957285341381245417057670589543636718991348599249519859789640318635581253655474859494277158985502088006405261569317280222551773498832579757461546254245578720558678674616839056592406468541451650468029625561836413959525532135906601788686324803860927518703528542006184000556112460491894439454590187360799506958149520804412651536027373823542534540825841346570310647336917520340056903203974627565703476891728008151173235852903067547599359915998241593902112522438807454191669022377064251567049188280935901698964738809340759621560248950246881802537976235202878902206799749787227025174957866490570173959697481823457796731701383843700959430846089539603444124453449772698787072092140178167079682538990396131169039165826636762981634704587808914093682114890870682453911286126918356104147063767963234462545276880343418901272327766879060959891756072889958869824892946792550369609083470406004248438038468622179102846977764763673361023962803579219352237061804930660166315242717914287153274943633174470378268900127360099455849457651517106829256903680142400600102645146379655105336747487031051283162519166373344544337018223348897225452027957121946469161804584240306939680077637275768295067671734933651161040453627928612417350501163550859755799227852979652320341597670662310676651272488083651164772435817930361419068119878936882475071634963049914341777192253586736976032123231308507290341735347389698884828915870051940592140269619632190066420963102618697318578445197548908672203618797528098623637557113153583719340477199332879109156132130362538298555685082307693926380705071204767734125956691075911341851709869896217329958025675909239662751148688956065833594320117578529874731982651909720202191433121881135483539902659335195676361203047916055510896962188015039825278666173034698267052441004436063634510083691443351546018995682290126633054988847755604656754657276815002512930594423625220854772357304848998949933822677994893163435480387103248902274077393445426415188316855503315311609110354396073988715363892446497872931913081926825810330123178522696642770490927290607617337571658167226233266183884459729387760826217501095960253451175410038615970950383723141590782830492985523397214410427804335535564244707149408967488709561405592970814617056927843568287323591899566216758559812523225659617622015085069762454941804934141229863158911110850874713669037112220138106013243887019277663813012846353214207984575536333704966107902056412624686925374120129224634155906160568428887613841741529381560807147757582191124921600850949912410024288572078120420969976410150825223042331772143870901139578373272019238261391034003494395624251688591613571566564633646981071407297458029272691687639394813496942571506542688826999856620322634217166502564979661405684988741262477203707356616535714389042529611390438974821967279637851267294135696100739402323776542104677726285676871902648742337280276029340983716389035836064595974556454157969837773113644147425299030647586853135580030722806072163795120634763571138630195357618643647844866186551783818488807849501482700106246990709329157640214526329873933077534860279041931887654935371551763266128309488192935031266282863127986623629161544467415823142566216736009911432203737125007017599461281332453121324250290331953594310556997381985513721196507324369634035067633674457642595016465008736884384794281617075550677219697433225035558979360777369033509370021973642645259458760892777624903993241199053276336855364778966141802952475380104754697695765694542882603324173033867783695520965204150791849419487151066981939084916273304224431101023488772507752406415246626757073461538885319812774105747069990442127557823846010993613494605566551871390809819892252201404204346135819554734243328382582387900673036534070811070617040898590331101036754457971258957054889829196657991387092321848969530807960843048982239998072502357548860682752455851066867056103793253238096261992759987121151241925342642200694859355000632213091840640106663396143020332281137839496053139997403959236919563881482710380038922090548205189102631065273788847657192295394902778351585101618847208642203648403191333973314879272771393333183512214604405254631688045332271393420327422492074215224960464162939042810090402347803918251329185497662070357789865033122548338689365359998695993008943796623099547162030096567654045361475692300973904063958458727644536307495156863998352771405098736545033847034997726529400931510888574028387825247012497416750423968651863054668849136298249907319171609739632194777554281655165138150017369643107025425022627234883020823084558037999568713132521869299172474080635060436623819163802732351491948742572239092074014151925774698187822245300619173101373140399620671993059587323724783487270903451469465185317028058884558633551265718387212389863196283105320952815591496856194272660584771387032223549407785450424714370952054643222294997947014175807253260432575992504097266412369736897138759753429131440734759300305413112671610061518055226017741576880234131326173554237074109150703541623879760941938739643646903511794900696582085802080376250033459120565210138919949235972665815421126128560156322656934319878685356522559637179189564825488916977962646437653539053794903491490587025086029838556613758761811687476481084057894537188537875889108767067173033407708747457076492758385051866203213956419622202822592396161502096938273418127946301288174542942887498983776456378465787803301303878453979902575582863745021954779957412515467253602942716435460634337982989140577115226237401425162137613408376789340218440048212784905162028749713278855793015787884248882526845120057956457210637057345932018546854143601828676760580739370106844327965325159270949464495641067407406945337186984720286057358325900309376170884295068570232243077151207923017826424344018734767468050764976041072172110626484666689918090941686276202249080659291897371688574140141514333563642692396547306340815629951570297742273238216134140857045319288873148147911961527014781640832826161498001305470524027832974259437933028414060246319371846543684450681459484200262487238069116340792162117397008706848779609680569766505478368450608477898501464231613319419928541964424712882651531375166144574336000297056899956905202901701272743844996030118015260702932997348019826581627353218617526489073015937449283410299265651789768161650034743383652042721800153457863720607922039713852237013645534161902734239413017340028663537231166139180332901001043873721166748468367110561268821774575380558354926997909211957465346508517334302719741543114094652263995108663229652624025838345598433140228351601850815578972969908094400406986011672158986122527812286367472798362424058532431451645866862775176794908475765310425676121522416647637118950757201146444355946829202996592526202628559708020843971758732346887413259860629160324148576584696906043945029626530279549605964942132613026508687863009850271938619949850370694979601480046349099386763758547734622229238509809195694925901904615518285736128108507702929299544338429447671330373311834169152157054949468672156793266609916471044228617997690379024060666335724422590710100847628981825487661520402707865168966935251623063399638505119260703898428366917566103889367265715695983102052119242214008460602729126183349227626140298001158136647418499637535611079108591521488549302922930169304043708591492501665332848792291538216425236279265362952933584133908264331078850322234158977303750975610730028131247474718892031506283445451927224430823080694115430171995387253618847401909628274087353212984989849978008904907156413570134925901096963884170265113831076932492368234981047883232102127235674026546943177484017498542173176623049142637798266357874503769155241162655208421775747259943574903931136075821559806125235178415321264593987665958585810410096240596191049903995806021103748447424686611550044463677727115468729688269677098980409346727794480431349171825432877431654526292147552141512607837584803419685187173311949222966819953371553400257140826003150526978814855344333383777140809034708279879254721019350697330249698821021384227762048249032679727647673974122382439965629420593404976790627531398060615725152308688911559795580642615124327801502507026757651808437208662333303153546500276168766130062114808703889854437822235982927558862799429891670677014862640671706050334796643919076075601223307812203976473392351527480498679903547647847351884817180378184642946175267193293021428203827115414874851994314353424400114097474204319102891117034627150624852096182981984915742539373295701405810108440276951872441971174941759220196220029276701036691645541351504322031874928319733815199553546206687178027830492474821047764488514618718993332406376909116294145043107882858854270907809156763090273352165477456362066095356744300356049626610191910416998016370724698411985719587478977772857974074284437516807747662081172134451482724732803318481663515320164715139325479124457993946304763049877387050162267022880546327157741303057704982700003247025172015358284493732308716456399872967774432860456318408431297461157553289588519142099115037667935946784881935023171215062533937777774773220840861792499101582336246366540650985329143286527573936607759880799542078663231054833886047545865764284464271263223900764555866388558994874675904270206098774440327395603929857905651590151873781628440704501610931095821094734771185427176258902874067302300946326682555212540983611009225217946017131889417029444351209838481555465157730891747747265088865227353777284903278375684918561902979792927822657602330354777000107891932285243740836678820230288793772167548437795675499807929729340619029750188432803531959467572896953094764935745212187229913133873572593290163192046172249450562087105138026908887620590076529085534400296376877707339756528855949964006461096664232762948865536168339844206844184565113057363073437771957871741272695453107718780020482822425093188797499685648438010911195803229232634449613942232521182720539901850247325997774829591284118059988982855397731836658097798546666192924903619065849457675639324180773558633566463202741677289736014611465808098883064573689335233185126671659913961604266083929291630414309587734782005883536574236262318457521574868602302419077148303603554711239107513826563263048570335104617256168688145283310882923433986935261778458555108936697077124592962141749851831610449796885933728619481753716675077049845392167507165012515171921956146856960154554384859481182818317184160502816443724216228125937061242254627150206377495754159916930445357563105103208043370469202743996773217041534510889173783575423789660370107994055322056369117871924896967929774340961128120088197454086769277953237377494083882785420663870073673470758306659730313898477990244822769243587551585499551271169641630508405994209663868174770672593615935532258675279021803966906237250995464902586875849489575696104042304379946258232942641849836459274047114608786643193281331723382031103888622762241610472861870477697795749443539700534067960700724459303230365775755711430532369794257952452201338476113082944798159650271289581295076110495272521485250471303268887129492414256762334493348702031754757920711144797408542508093827685361938664342521037128057878922017694299975898089579809918430854595713558657621305033454307554908626498078436045674206212670250714925233922123528030667089953451489886792519237318381151547050632368797150021433688845105519033304372345637974586509029884803585839095707190425561880853715194967209890291023850698208674240160763720707752949037117857765908886921777286338654409506444457816727234538025541228948011613009197824048759376963727832084077027568661589878216860960444840812677772610018100164354944060470278410379978755911655512154208389461077395114924412478345713591240893263621926203104684032932477953443452281829581154182244835358742182695806904756411600617048888984602201559688815334310719547615213620555753368841688631225801504537399130964568634246989433327255083474229238256216904114329485849649503073277876472160407564878429158316642201600507656693489196935393115236715898211993849037674891100961727717142262648459917234019553249418312718710942358918234082653522645987203642132120929866571649800856582390817308073328162508159948280655270161389545436634253351444112069280095536832672853742638681762455000257202713168333050301626494282189369615036036300126128803213954649251013392193239213037123369458109760942403338864943975882977433764485933696194934063759380580880945965246841225343520254854132151577657001881518566920630048842908249621913358877292979810713764190290585841101054708792348901986226648735492563567875728522862713762886065849978027907981444478427792463749318977245229558646264673521981695262288423171122622891407456552806990253322777362322836530431289634847660007270151212402032895120953076887806549068474686581965373452674661793122252358215911588815814503575308053184044385216669988287963707389625520296148414225199260249016306243260481564498320859209873080203506173928393062543348098643769119599292149900612188580111193993967967461457895963671383991751533787834367646799459583084296223146248135248517452032969695561494435778086889171884831531532203690496415292603669540065063920001220613907419981354923061281478687038741685920645026388036286464703820257748323551687949698908582325606872412131773289127489789315626606756435879211921109045265401334405148193631655376875034905804653532980175174581581351291894541568104244481199663883606966407146480759924125713263775585926578718385294316826978757332845074341921185405276335387065136109651447067624714769198221816189123278692432464785323209669432388091079342640569196885606650947256933656203171541357628907521193369652891765601790238329762376706318160665240608314671031677694839002361069001454867002018342213839534943736000434890309944618970277518323012480181980390375237428504800876182635704325349393893428059514432436991283983223706600675098873124500356019710377325905777554167842088072102456152650547399262354045390669606754095151610675146102196694916777155383103119859382870747787472803535980486169687367402762269896144822738354640757569200334498871805371562012460381400818678813710994687313760717327762491074778090566755090823358030974536668170422958015268091358031458998907197279529145827298802592673440240238111842448205430603248413512332474004314675404415682468231188567882929964548949335637218794272937235147484620663783280713463286440203652206229314543859359057398881057411018777583889079208980311954641742481333584824027995777967607534462229197500937710770812842793786529716293719059723527100473268381092368452744801803760194001983073416560042045894484429543993317079061654188430835385567458943784651996303225748968924615302678766267360560080830834121908368923108204886300541280338766208070458468189401272976806988576357712985009696886258794417603803911668400171934539312494774508284764939849208453836728283211461608859212650004683138161094934516828435180831665433077561061032674729072967522732521179379578416262858013291391040061736491491230413111598283545851233238172593277240159774208107562448536647602451888688298652245036960981034273575696882837559854716741411298911248803608450615523822526906886837567280931414312906025132877523480276718099474794369999983643469567576907715902888498331020716926604272847009530828474680688817559508572309099412936951641335448920968764167322895800817629652597908121934820166577601728893179490134979784936801822127669681626117031068581077100925695635116783935338961277465102426919685288861395625709447262662919099062228116586302066186601775992296621709053856650409560711462552518787197855409305105834377063077338578448873308504301704369530392114831179817440069444273789100858473218751016183536102748188837251743310354005689844886767597744104242629693177587360973166667362295052784321895766497199513531818086206052162958847867129584827547024151436000544949865460450841546884768128315137213244130380838829532851266042885233467319442748831360384225509310444723058588876095468163310794917051970079317357540533154971341569870314630071635418057682180777970261011999146425028420082056383988909111298446982130691981433264558159327636812299002261612771453959148390749930129295084965480579058477489921874450318283106448694591721338767673418208594233710622748348164197450719374876295158274831538397681776727107768036678388739170251876505229529926277867398843320579774075095065184816477211217059539672598836201252356630532857169567279415848768497629499973063378206491349944297803819838305886599988155253233262563141895408587861223106205278889063476066992380862148149880233352247762878358326221314535277676915573976834802645207277872333150581318932520111507678792412052386962287558659958657732602590734044069742425078469653686635231386834728050748648497346512586266183464062294329505088012924325081432109569999915769344068708029267758994977257378909875423671330334607308868444503475402592963191168148839833285117963103173735064391397290420189648230104396136600421720000174999575025674728687691255172876240298605231921441058205065707054561301131955335448784416521375202111904562187267672756513411512332563913869987071578789105693999962521843258048045339302775184234564225300554655925694791766012161640517975248977680007332685006960952104489868156960978371808488162747750048976857882480124487009024606907956552835274991994422933016917713535204964066067960080538705149392321352648367185606246581811628457043279272568809846163519822061558557813721011534816227903597543537669463019186736850322670396575923618775688949331772230277806164526118385403214768346604086166517510066618960375426757605103335025933182944665506616168291743591337336641804956952182001388451207493750122709168176813633954050242443485329976987560194480474738228661327655864470794420088329564988412186037027528159168403597368051038537864896213378189593103859542403803265360909893004315978247452450897926360770867643354493627433475287000089154641671330551230378918265510211196104501618353420744716338625019478696180800151424057541700625547213067823663046827948866850519955284009706021943048688390246804394930455962096999953607362980717980771046116329992315149241332845458421095890443241612845742087483764686259086722041736282490728999005554226700973571827955875650629134265222234262638602401477541097685415308814992636405137833725851118374763892118811574156816372570989836633890469343360825842235277144040155358754917560653310753014166145309830002031302280892438419418475582655628905629251160358091869822143080873234202445871787502966326865120308624437447182499892790774298941469365522459740652013568111724261653794379597575052165310336683465657355614336368182183209638639268331375388915078353118721859015733636618970877867292530424186577325659059160051974467488680588031928115095049750086535061840700036375084311223675377577853239224038313195074244448839986520050202774851412756799473676601771308044236290978229425655662241634151041951357293389884578969896181464295284826266602536002606577741898448885815600620921470675050091869077151606431931660752487353690400064590700803222702068633179476193567939863904911425629319319574477010746664374717267646613333357717548248294301561647801135092192191509810736746486036746258431051467305687561494413356636906218127960008181767346072371593216791997991548546366029700157856914212246824153023072557874875484181600682431080629279094201110118135196202852240178740469606008123639235123159985092176981646190606917596680705419862533007101153611044315093808673952155110066241279268207277064910436030743692355359856850871367445426761734578193433284861912615441575003490149209062273823533331350307906796528661744773590675474003823377985318571199005951774464041008839379645465152881175029486136897590768514196294281393672051307085880445418695587718579096496212644545602056779669185964525839314052479752976378287074232829150859385223649745889360918340244195773528513024662964553131965396028638777980888219915565946259108474737340816770541179413798671050349021630958412860490362727297315139387306977904060354217232515783006290622516826071250388232639554597561997611794027026263034932651042605972212583131707746206451159025764285684433519636991122044386648651298947296055015185177599871110426078106822069082170828137841360372993891269685680465415708660389272539518380223399573022485116360676542268985379899532194610592406113874429017187088971519569612842737805999383316350202968741555883438190736258806620965157945686564633530210391088149080943243906969478045532261592897440778411643126427254297189945186792277260336155996572778116125886797956620723598823625224662471371879673882923883295420268689949295541762786015676495779698365155259751787292177850403170572401780293423045049022523220548365659748087026733010929408712934959088195895038070759225871668367530459812245679748636339374352367642515197200287727245470518627146408772843155299855198940404544436089559879628896068314566592539587826366580932340804860545683654085910005444316058363807967644160454282242246132044392267818391955961182518962309700364894131449600291806862187248377870634418533452654354217957449037251176440138424773754822940565297822306604966165026235153546400099342865022488866721561003630520293091740276940809084684333869378223290867810921680887909895123802383129164508980706227932658268681426421310779083763341441098123944344340693761922541245069749266116021332269144936660854747448516219890679498716000872922915516557727478333906440294777738644923049733287938790494549567767607622823315130806379175958398723621412060292092363290541402550722623453284737814067645635242401420099800990632092770414084698050582962484300858287870077292992509370150813201421066784205104097636060170223773474382756223114615055186744488427522490821311297723737890561570668948170348170845841727793178371545033694700742137288801403162463576461334150573195415997932020789571205375423910010083747733806107130260403185692243472228713179152218610674122619003024240822981027168573785215262369317925981771939355606103842521471971506172718919894090201560342248968357744742124229703803855841561201552544613491668858476244969490800901844438741150038681670626021461098601083310443694849532770199045058293721439033030776461021003928634047373236657229684248666947043851801061864095289166412483955144076821989773592704246834463187499023286707173085600103743526675331277598976027894484313818843962038313644615945294752456270665122960705460811313224268893616928869831566912729760952953137055243357755261910746399767546533671349826941583701577081354741153750595861894043805739643901215039052293708060761154364248094771276816219131524633423446519876295654414841581887673502000479171380953259501213944393317183908544292833866443443455328823086235272668003220269134852600576408315025362684181928130124068022685050918539613115362148373716495549716874877099895240945523164550910283769740202903230084314010848249739676968146795975389390053645477433828526591164578656408829790674264970499028124680904004759169770720865132808474415248039730867147639663850162978473332282831435174747420602238118475118939708136298553255590619715930862999568971846002473432766322484452290104210625008872954652786826034560488799045426140157301637071772321829953122868655583348565047821083423075178531679610627743361419859768149483478163275002839409234341318709825863125725669329876684463316640741013551869123342640492753705178026471450106916871368089628035915099958543433407272264486184443666716875094760512150982720163790664617104512984635891862935847004192400606636867781352342913973241866419634365961979589181259191260896420564397685656651158589986986254241230042054542317337327340219444679768837106899186168426571860103148426366666043202955993140101327137699052462187214312587015914575739533704970441948703431506804615393550838528723899431012033965891641865207506247826484770834875497465046913430579274337979195195906099230548322834274247916404376347209416723147260243486478958289136193600098528191718872262218324004178250876188887266776624730244997437393164036002090111829691747101048534264746592247219244152107729203910707897741556383796472781018569999951643002690715212509051533357288292562916020322249745544812275946971415720416566866654444469291907514072594629992058080357227611609033716448734372230155133177282416919347334553132350441407793437001251435243756766879030794893660895403037523341575954683394651916945515600430759130521511755404969993109206396855826881341801449573310869467994404671323828145501404606160585736075401363824232868823718559126337868992502556612679977521622642377855074280427586658399501857536749440221392004245532437806555151214130349563947722878193850160369009850850223190235810944211308326604337018470715893242651679092160270534783577715094968757951364468216969161720379933677622988735432764053917174790626426316915974564948193338980933634828806121118945972050444131848581016023557577699560565013645745211520969398954297332033699431554025727572282982011677009944056582929992050155133227859040074578883932644126208150507005779366723980064939195604491105624868383932206501335604418850994008356937418533703078926533737865020935514087239597046194020474250416709760242232006243498555573443256040249296754833310846314997660512913702800533498680769299637356386220103769245972785529716155230808871348103557872822889309551758874210977683443852400391686876672259985502276273623448899276733241731528821646871966798687285848457947939792772487142651962971532348762942150720707195858967564548489191078521828924774860293419309485406515429448078036657510904236637301657740089308447098081256932075867351756023925945174177872003968301374248118727572018074213365642494280686661934902122360884767324004757432695445342556668061253631348928412969031024498226587524638178215331789947205910249698548079390322554436106771642405388411300883678747310557468277798096902059384475351001675873383439089070467544652765319170490139487251272237473165455646763989995628740960710792146568240740848876386981553279090375557530173720419431722829209116503512184356639773288232808877097497457813858082327244374317864748043311614030864522645520631819799680108285504044081550726515068884301789720716943128705038593418176752654938095045413165475215761999965209105419405975683780615529460977985597983112565645932079854454215661920907820045560034449443989359517120486085991403084510762845199019150899714784424004481018974921602399530292663422575581876975923566937012519289843819991436320498201367387627706629253665506135998245240485889023421347914410695982761966884098164482320477800190028405412040711894510921144123653701728877210925690867224150662235388010532295344874562978552306880601769863948138847549085736306743512634324176597532186762388169538644654601593745632222603605122340953570878365985243683322998151856474588606690151636892580617855027597940477499681246506421006668785859032793994184816160904375985528930339848217866640132004939481741473007884446603719634465617004068992911572990790716821372860213960333570976718123617559516334173511796729677779662587652912821994833885159720838942987191825481704158379228535010277837695996149092634027225815403973070403424850490644835977477220141929961134484327698281980494718897705688470670482852607954440414494466482881147574755944603724245250499299497505161709714417257253829003394419188677460765538787942394018687634663155037377856967998289627557409604925789204755815177569241188056942634298068398618255848529868124546389161970621735350343042665844592797962729710514638841281738911619093096678211978179979580099107921206821962574216757036798186608958138728672073020542895273618107232793975169229965954625208988145423468500187397017386056128301571223028391272235612436874677077580353555349034359533641030566809619393802165761468122151700338466761136697912695698766935013514376707033066847096714933963591060261270586929610682263530780932983625391712329672948277646458052558741550680160436536864760176866010411739830042509857247047314070136602645916030003018697399371643206544792287753921797164261932637130573485408199011968783715461025336084432706793621785124187429209682664703194403576507424169531069819505354664668484542181091206019904551702632021128206158938132323441917671592108861414153503801836618920864370136137018330602778031243107434764807262518018295199315446375424967634950823000086299391902874706122325952656321328959674464688909203613100615034509341687138847198844632084318972221371030684581487650515597795587906488904482806713785434438289855805287662738275826054962245048033730892562147495552770903843797067426137803524762712775376447912607525768636870738977045888293671078151320287945191641068720409556197871394353595838307048964219173533857482767341093347215083899817505643017673965746748935371727152786893408332226353616790379581859598159363080415520424229095384661946116392151442310968847600967520783882416861307248906238639392726152068278817858699033373608349245881674111654257936415910228472726997568926784997284549485163909047826654131208157827108759716524336163100880087278361212820294914317419426779701712282433168472773958390885176179031277093767954577926245637318833916625496421046496349918160881389664100593984649034467232465518212565033080208136096228554394525417905175497398421167750084915223538865782665656154334512944807519763202029191711256472226302519985230576595889125303463488334190164572305862466140973850690920248853614887413666032855923028494495665076623787849715688972220973209312747284918537191449333966001167888515134035265954558991147877697962435828523641095288875679859714487307488766991032503232396867766045815416104326073597774149204396927566663402280292873698465778153862378997488433094883847109591450663595345476064776006137719980210572554502133922035777212619495000837331962392574631725973104713407401292141843297893447528170143685867663031282554240213231381629845278017561458907128859280975933918928741922527394585268767508834901233997771265659662722007189270517912036929909587777892569843698122406269845867865775052055488115205989428167469933253020242287168163947382953022556618025517824195565583361668119909992365154586074470339745485786969198662850606882573298023891863436426147791677612283421241514774845512751602239589594471632036606698447932086298712154446217100647279601250235429438996843432870430141612266921452148916582367677125497019107947264543564245008322597272043836719254749643915207003820927851099925019265587774770431103542039981216019115894865497753446431274599036200393623524158102306737418210456462052011118331561669451420328395783216257974090299086221145425800385433734916697792662842925582560635724406873696463157585103997289133473575975567918913922591936771141589740775927906104460374436191959444969560511643049858054993368795083927167593240066352749305349234840528441656774940605771306060690398366846152290561794509114369405853757003394738303791497267981715155739276181829208005081412304791870483211301217470402739507193815730808031741993357353072376094061752659855841475134592357603248611009025143152514992152525007774589737947990181749409481715413290810018580991978615457189080413371489503571694316196363993009941471955026191641432097954866787927429091497469981567053427353637276077307649770166677609240018690412537839723427120683165754514728848843236876242165193927319900670589454173574747534740784178915157189253844296129165075431098360865476446530933572430978259151677959015864225575312779137203735322032579156784886934799609610002823440441976474891933302905725925023198299801521659224357818000052803241437852390744741890032003411728442953594287264338072917675262324013438223003758984569028338105748462902825550674647674467471124205852587824706207612255069677385879297116359535680265430819237012089148611928911276533367897786919295429002727578408823795469229429725019605700892865984903114673839111429973242413083984011410819776907673974803313320576114973159523736928029962239670115264382879815232002850937871445135698615191754964415043454351261923941493929277235734432540152806039142147513755068572226517242983956658250849482257711608600382470535606867072886745827944838613197456934357307080877291160592945652996292787897729975430336646376854960066933481117632432703109656739144188007800053375303644571539862995484361087798855841316690616689070479829526586341383670729071361334369785459119439141425006199665587788162549227644842470546047044963876871512809923379928213766952268943874083259197319291717815154396786903337084601149059404339149292372558723005336897652112814433891771080942405899309892572202091827263781910221600361370459052835801688547704146554675501051440858715486951748542446297545433700713211121044606727803529183849337867893194086658753360711871776552184577152654850206984344637428163052411767529444186474656577570434436233882596446437218986340173008337127594224468537492453433937605544315632888151072297541800438180894846409649155246414722711875865740620916044734325663903440622908526458688095739972827315532552376079437664668083659205021653809469909401853899083287541833387109373638891571061002752539266488914889493640559217916419204072154118197890507469216246920132839565449782444411543739551391116342963059880747650017812390427641493327705976113550180161696575372083160170301899073560066525658565108076073546891056746207668786468589021242356812144597621216515888884812812859438029354186726780882104094541846908723061375672434181989013941957411999956239870455049548920993218189004894693792859789475692914215608502995507566355681908315686392972843300192596624662287135041286998304280164167295691152470898453744147885680342777030166104458837254949898780992979852937304590333325571441821071213595188832977816519334498224246686060442712086001291103399369692899610565412025941143490597666239730056022488279257242061428117870896042792402548814892921036523337239086461570917176219316725144518306514388772650829176536694526277426873699764954117431324296151209385864356967014806452019334099684949815126963124229955542596431921939983310291625862794256122811326461207454054219167810620590338653811186285216118390454524511949247598572213812587341203274541909170566503631528879943540889596306261606169197846279667033013419450261675786207574171139928230597800574006731468057756161492369287604817032685622598589193171145834025239355959602041124787450631412462827693538308448235364044110971840228585986136804874528051227595471175732200266575148963346130980489455923655048327135750342448932819081670126932559367955954254690282054061731918612688774302701223435246073977809444408572186873997590963134150314961629422752113359382992804756900614999914314330633315968837986162399502768719732326530897575425730609422974979466361929839081282018750580463414261183492682938703372840747500228198037035762712912918542650156487848393858688513738956636429589860067742126618769761831668845463003359086014359836474646864656128823668902073698081224549733735937712468512879568565729780691784116307022907649716213429867517253223479462338256137767206825417995766263166011001314963913463985637444133406318267357645556010880608743312586913689245595150896347763824692609146405977785688206651812845029865717005662778983178321473966515125295137010420177913672351833184877688826751350114074190366939764569909496589834233150530558235849295707116603021737349367722153392797927502400154051579297722762129312043426312877762441527076706038215979004686857778383073563650002363822113461118948532203747709216612783156764061725565259380835257083670235423868937852206126013727981166062347573967888827227742332673785572202663770564914957427842688657743183748814285519606420264981844428786550260064869994139583155635791079879003513863893692245507473792617878746100109319097533641440916400861857158031866795303703978791894606522326324451665241762216565494472909060480727451959552126458953138248710980511240658097756731139207333623391022413758260364577536323352337133319853161914261782678690565428051188137937881467465353564295263930467532262771761251218835660013305518020199777872197459378750723295416929980948526134957713303250821091915534046484988863101612136995063112785034959051138749400124665147858388356151949759326346586581289272354705438808824552967361923546170344012341317156704533570977918400494708949529926927113037872094803987602080177662694834850529543930511630072876425990696439742105369062351729758343651445834738959895690270741037355638158277570283541788457212126592931743539898401561527307897022429888491016333287084314638425588699753615211878682403471185726338991050429589553190685464100241612770896872264293503202102003167373054591152908466635515778276040834014180407743200146792104660454289607002967289086311550608848467012290871458471509404264038338150261722078793297177668198909631315200724284056554248814547292167784400163239491133416041380661278553984051838726088948559667256831486514992185429217542591291459734129190264249475205251324257327025883100553351820493847094210647002102510355972618898567175550542756492113321077636244634030369501979424498874908526378308223795284588401219088575651437626926497905097784130869373165097014382103954720405034274607851753267625857712197239549446905880126922132444470515770026058136065542016169058882205147257549569472603788052489480633630920138226742398107782802599618355754121703889809656320686562017442630873962906158368815244121304460005854243945370621653426615000728357867292851552527762093911653192466093923429402646809105916778289079005487109608673776285643545454806379807484989513973023607623608943688479416708272744381587884422638222055116000891126038743737796392489717446013243151349247698129987984881219780525174952900628221015160674113228435499693419955256660071192403279792781493300937994421711273326655501301850575967625929961521352512520640254633893813957793992532268848041542723786797435508150107925253822965286928122835959228433921830119396108667440480653588849487860756706773718905168531444389747445085051822512347298414447015602985918512315295866263426851563818767118491238507658090760036570156922590844362315490405328804577851986463041680505220655127636384487482610503595650923132473484938102910398691614491583863717745848477674091793185223545218764672208423481038846096817543303005067986299087232997274028477531611554942985259534271196458687805034275302725945500382215704678189506381384418092433067672834471428563825902585591459151070969857966211100609982546413940009668522252991804453888536176946686278413496540894067859642534610233201367863097578485910525107098383252062906911762007344866863665583955716489898559036104639940414115164381562685659147006794233475087229035615573448221542256122958482970411206239780996488490521523193057003549742533788389828292082188174427195542481633428651436042121281980334312420984930012316442618950717350397539465522110346446163206294524151996192524043676571255212882325401472073338165557256265718499332600841227653189963461692113437300337467289554449684673851767368476744794158239806680999310478467372918411763220223065299868991073358189830278637825615920753378214512904044819130938988142815802801106449424515127226511952300280816691730460867347441622767595711376501985296611741285532198962331571016711587909964016489097075881740151547465563194668504949605052384261165009600551917697314962556494425257285444720257739183968184769914928379254981813201959113274357615697366440569360735090044386602461391607480209807135674086643971411212343064179167486714933876477066980533505065468117223322331250060372356316157349018603395130918513782267566614071180701635502473556677796906179832960411621768403960288565969007076728960763701902808343942884425915793630128262079268535418645257848922765542696286058198164487873200548766244279241608353008165907571516614854368810309589229342442835096225404401716337015439955716204067082714653034502533501310905991419230688149255362725719965358561634058636245813901690520885616362559614387869639828290826317253926226483729362295367734500503705018777632126217416683258523624123028809616986931314707321357108219512143977848423907636047424027305112574696828023745752966375108566380212684527119722103720487477447518400190388194494451102973153914390624671010532244672765631082638615004409747680730384337670033847006542344474574347768409370071801799311206232607256641000421610668573386158558666029655416162477451502943695711399978928230695706313452089885349631025177572018439380091753337405440336666081754819024242901532520236547223092560212872085738483090657673412878313810519096196259372657367599968901571400441936166447928686447634392903949784834894385194882628149835732193206897994603311050938012694282480269248885544373140951443556589257130599675302969164868411187082617417105474787421900543865564183780988820169570975433329081150744691969479015247948495133559978411119102551943078892588430469629042319826791126252095052500581483013303807059798734515285528424213632005947708648643941756859918963032133533958024414633916590144031659936315179658178437909892700321837291463509678794897366935518189707942062408790411288230098758637383460250172966901827619847980914764118278654430391679069782020766986445668138047448778703201281897787277712379998169041691060660840180316728471124409431426720057251701600322464923391311183845631298875372379295709545106495339423587445269708991606576810088194993061527452417653968906838408834330869643445558510310430935357226606462072859483483076633695294331598385175728763605176087628292252417433291559463315363381706833484533433558828513104365151709345052866758416218372131096847459803488530601363028987565094562611214575359611550304519661710264076858018837039927103841631893259268581341113626691836414508205793618747576318340127657171447747443405581948151014776491446647598419985231814523504552048733161342338683656982309698510706879867162876607960258772155141381486118811534365486491475334153289533616128564002870573236196863883315962155849522729299785713258124017488536320688407166415789239153917682885070264650372743130627489123296221928358276342985406346453313672474927446828115716636243904542410987752540852442819449671976602413179878409081160011247945464746441180498545015747843348202697346296217952181538535289378609624599820534775753602438507679613626957036809066122163822906271774651843237980472231847497180319117661278334138895010528860305547889326732273858509965946120737452532274848463396559787295901013964672105675776996903122883116548024381927222738500789385328181403964865502991737911359830830138513181353754096360556386593619932966254241313300902123812761316761713511989216411840298002616509016569180615784265588703634924421894708476378645523098310461924809514674271735679948752043872305188546847397762355040356066209731194122264141279586358952342514777289165103156695725519308660582326132645397059450847078663921199781217172068810921066886757814159925005672420404771570644126672390160870572122765446852917635576626453887007889435572135810988915515189421794123600315338982341646920483515350626832732119391568580703819550244259567243292485807617589667045976254321413117433562377713461446088792050143591873720285580121631562514676260284202186589099326645193948449534712907742894345992865435449823283213916659818230255290092061767023163982709791226741798004179876547073322171102932027198071798097256393453711307294129256191760928972162398454593132281523026989977516482674021370139137732831095962574830686776770855901157128409219849925056051319532275048683328602571157460423391329848969918878207232210506976224078942979409920822612981459105421798760252561285828818154052552328952139107147923799547136829428013221825523665417452189493411001348841327415142475352128185699005197949195298414714244092899417837603245382336479175682701875572099849520504034021219088958276014429469216800810627362518745864685338954798757123775038752942165722824296336306943318508610329778202371225026555506026497636584497812036150139408762268857379516205283615774980052900523827381398470016104263137910141509852881854102700201474262142915090549376097315748399520071296990043714049550546615806630788515753899786341511676870033448114110517178669496420751045124449349156497281066938888413136587428144013085366080752556307978827852725091112837089758578614143382426166708450275396536957158434188463608946861617636398908672846447989257150013105346034772440097628105477913621319566187783429277751432886030806931038408835682652421931419564251300618802848242730142686096800139285478971868735994463830591795710468597036047934435002944391695201306508372399624570121807180848515587935162862104006104382626719089774720665750008266102099607754786955607982399822923260874172615232713511603199994024689572288085904262454101572882008432308763495200388139346908762524214755456128822246746179342963415603468244260921022891961136778985209943060331146470421953088829442586786622507144595790377795827382603107429098791003571662746153755854488197715534116902481081626267593600268058741563055556549037016076759064105856155210615681019907536650677659635165902967315365753713077827074814973657179968520376792961069082910331968278812889453321860830625203741059929549167883494367277765619791339037044400935237301755467363896761874139596660846220579067328795467689732737963728855947908980797897319348804633237570690275188330668558060547358789628244297399452366214318291046477142189392839748283179604615529949694509748800864011176943065198579655219748372623433107560605953730138725828516631160811084122480426037658557435072006830059214234258419627241469709465882034209014438681797229710002566346807224886823536716436529778235952718566984017588447700842380996558048737576628956394742747756440323443848686242455790147225526765115834674028244248001104975180456823580276476360123674959994986348955937967500012607968073400043750132553244860907414169477951008271434682844912985052395764259795642219179343104431477660797571553072082330634153130958928288929003326279931262468596083751607372262901212019455666120614709785720817060912241222937068452910785300347867352160613664303756884129676132515585042206987197753843796275748658500788748805569789418025664720661411048115450544150433576825740737221777261437645116007878932457818576043612100158150922196369716796465910387391763916899661238223839491166648658198010512264282873164050004448181588131885928096956749280843554816967304719960362420253221976858653036617607764515201573985593113566465029210822414717632773023916991233727791273700766748727931924073135028778768487799050438582962510214772357607957325509695576711504018409261465160673541080807585153406057661708148643776571269584895480704006330977889836742645166995933413008955889914693680166369770866487467132715136706500288118306301924721870585470326130337368623526437077111804773025658259803480930469617258368381984833444762919033039644570879646102557239782050499133235765031705940918120004315395498841441641331691528508043507704121568787668493780908260554800197626696185084499998330479869306891269933949767788497150428901784703470941112818663472975084862047742992278758212367009654358551003554454822669083365020307540100087742401954990358868971834408793019676501884245633202702380365666471227145478558442042302532742694468022095282427186412205769548881023632981891586070406691620432242996917591939727889248411577197930367431807139226777097129020503695401048321249555831814335713252052988056862690244933145892844193067877673325962524557402507441776799909602487076867742615781140601888134738458386237508309561686221773540758533358004542776411015625520967775368872757646160131477033693675704075171832299703752191660669306777215295213742622062592014280926906974179520255382363901352877793338921401928337199198543575104968515802502380159428721663806750067234981821375725936937377664526467239061193299491718772435447879980688874870882168455029673146765727313504819378252290480366297696916124679453194555554403455053103576928831984281275234647754906901181079935480172408310222729148749951174777418861900854495952376291954699374091509144610502488942576719626728035487284146419324209601521586415023861106875701984231941518566880091232128128193705321125824923241030824488318600732164448667979843751597154905569989852304964506129377765098167167428747437431931817428179859770444655072439330166114898189524943950253081447049598329540370548445962055200447975064690929732727253139651156870300202480856399231236443082145536566535799439873752158556405339442292217491786527922137458174101867632154252569055252170166808420184417266564937383765268944386420297962372081417260290860195833615506696316077742529639309827560156102103270056823437088589983262405369317529930177791534317270782359700403737724586521175609160898388982979874410722653558318702713593861515513645997101524445464526584516442623885433064395428730348555804441983928852798727924035747601652849850819214816018529066100807630486798046869293704406240605157955719925666798044300634613854347555810707562024623140614892535353928357487608263624513708599225335271299158818772210004560374010912016984384629218687276855592191587624227001604486038331262866778436528385701111812146833080625368944222202501093521364966572165814289652175505507744469377791655683587856750591169147245072877614125509883527675790600535116321672983365902835421220378301184354483635155839430712977105549678872486210435894197319148807611169441547758117178554894432677125211902330921448562768348930167874370506911543123481046035175480386243617818499870673642572588496187080283141066290715802026302960653182213202570496148243328741781599682245332679003590816894733540331738910783849468139804300348262516301511866782129096130237160112548351524972698945777156761151336861897211635324390672637732463422707186834076001726543165088359350577589722886341570497939163460885176326793961825494543235042879724050158591830020528658632999139447373085681892617071616226870992095532002912854652772105171544106553389868402375902176440520411864216870807859236514811392038317602350637130238689435224149701386203272668400539608632949223448633983812407333958190913557416448113902833818940205395147391520723533887560798528791726288229448504731694085521254454776353627969393698354065056228383439921232467167263528141515693296163451365012028095955292666381778079640790384770914496022489922902067121801983206530099018306688870013265887023109410635006935128288976224483261143119322392059599095189148563834165453365543416489608309952883002186929866956313009362540489462433649533440058706447011050158414504652632229106060744024610664989389678553544800970552806189817200600737161634284794414573752652165591557523172761886112345556919661843127833006626503534637757192957754038395994019940076555009925667322779852188814487933981980888021104447880639892659439211863950773823656894355906242537573519672101617868466788033730795393157820239263392423841174666707026082703880548896218929346399635226866440533008889070379690344312715989298191492400034487762918751346454366043842316802268606377305767893449885488783524613491789169156048743599919981496425997982392370177595713365660109079460393028581140091662335039767201491361300563561734639560151797503192256788233793906466801620613213592324201321067634183229209150862679175550264864027194554447255262182375735606825369592976156428250464090312214648072712409080590800465203895444289287216896803859842989873670990270138412306476974715382600631538622249421995135045703115497539608525914933625306663376354977374395704153335258609758676785839890774842309540701399002522465556351557990815608044526998961899376875545526115325364718577262540147780324032172472615876556801197152375133082624868648906628071378426027695012907889608197243226581808435601895605722645894407471408536350474900381324108871858091649917928524559503400343825923828099233494363884218786073207990293525114224856312198543043255765058749139473605462565113185759820964100341957464349485708124804742792462901361795393094627588379705821425294629094503172227511177722541229570062524627487129131142036153886152493279372666667028278067698233485945022406309324213111625874939068190562957150410313712430522304013676884304901701016401438387445729871308298203044473996011865660034473073529359651205481243526363380885366021679002095204059324247790338668632236924634969036277992685776199604240227242336331507782550448805379913277093997143789109176925564244692389126931502781885563979729688840612866442492320709956388398197873386740492316046692994903993404183008620440964593155222410017599268640759329852186835779791178071035052208891597391239244140079473865128027496869154030570348624479805180863996028140164216515878308535068972087038920609855097540003926333121405719624383600075332110233966897341063089118016586709182251449696099236913957959311883685800218020883813999387539872317160992920265299676020549470657382262446358819334107003642577897022887289520178059975679056714652444423023960072800732678521347765334575617912714606523635805313697215688247550110190033925938746960832425099931758346594703823643043053218354313652722830030877302768743850030486922232499094623434353237089487919732812657940523968018025389797063265858681445832586191371751880267883113129744612378656791999266099493937853131276053955242402428607572247412170246570169407754218495656996418495781327966910153277640630342325516851350287285299009162762834999943010948689479800134241603853840585385237355302939634070341859560017618981210697593072876676255845910455897343193432034905024206230432541915299917985034494240589625362397137041155258452170083202175514859981666535117666986077744902941600717956459329946172731018656047770219978868739936553114219446830882353633274722445967163996365333582195475939426646779593417769748285106354033832293664993824812641157448052192616602819379838695116274097600931817018827593642395674216489279497340092433952740560744085133947163678655099853488329830095451827812793210961737332439801557296237548999074600923743394741360567563308429596240064055807173300450627137875536766588402928430953447027221412084701365146072166404459397426047718539156395255537350964524237437656128809635086176310061026551006263430565612428756713736026613556982108878609270707980064295735353264147283928418023348072123320629491185118090799060658589176332595336355857291004969687033108706891950050940785466458168776741887539211353377812329305931257179234322908478416564743921354323414791980448707052025327391231371198877050080924878205506359288775871289102485439170412924336412045008242561659551975591499652952565666384911523839832317386491975191318531459738723815299143850290341730521990150287411411190361491631518594358460521606039159492226770700061765688062081647988654260382560882716528622341366023112391828727695748335834360837412195152711174552710228101305664682965922853831671151257175152846139967467262884513543108077087080524342279644038054296452876278773244464954028656709500561729538702541956208570390897117562936272507139376819692381873531770210880626299240279880698966603278113665909160651309100812462989868254527026637767527100771562162619739854307279769598774059856338156454608583475326344742208043045423408551261327316089067527984223912195355352034871801155669560682360566308073829180481721772936306308252328890060667694655930600795879337782190719366749590432655981525856212688460799849319229340672341624802788353945966479018484559100738471589838540403736379280990003846756196359791852468485068446624618887461310607614060259305168262014967679713580688611266336988457312791583419807294136615497394102181312430346436458223469478897248996829255831714999067879208248557490927411219662699780753856206275169014682479323488447296850513170526579120836183104681049166721489586486828679859847636089289998302251788424304808989711239813660205570817337962750740339297015734391930145095406489454123906981783513167396690628752938492372754798886712053091308817931097222188860419863771638872328980364253854882365799770444264919962400235436308195798913240715437877359931135641074156224462778343779859261182998517714996322007640237804590398810967413990810490094648542045825142023960201232650869680774355016589794009320842058933562929077525738533014711107437065936433203050300538777788729328945810852100441365297474806213516402623708244732483019199263898411732888404094184869757722754632967588014323185932046946694726492382919421833916715596599780334982558242206628475702180179157724972300111260495896400210711383152331792909842071418036220142937322400345024348727134492819959156967460859102511826690069423665459626456573956527767041231360116294248921619855247794902844388492718278231838466664678557180099929098587757274686537844025744236640037373920570254213774132947994684363757437492863859000763963721688369419183663964440578728721501284418323064167324946446296380582626180986261473716943731493993068281023839257571505136232537239254918532313132364164574346576304280465952513218153935171450107322650818481851129398694658239329557079310791663127822240118167957192478384216468805787024761654913992598017057934250315811643291933419560022592417183462175611767551624592738058994753078243415224900479068138086603009470104492634962303505768526120125411615905766485254776703685552704625167737088780121603788445701650752526743339511761200261040118831443946044369890084621093043250547361444948094056050842244566572374879788442514176358929960929413279088310189380845547043231139143424314867216435052695987575645179576570712344135792595442413007361168463750873000653191736715022518299985105953935146410407374620600308118280439678504217661193036963585452904985661420363666689948935312603877365953822846411307880693854025030050861758736322497390761207381031837979082892488561922586320399638558309358699687614277963456587837597050171470567971050386338028104404396067299832777619139222444264175191241919383399419367190818470229306727044166837000145130717329088516493751882580961848861071931292942266708055802385886634548204219274070302946959711340436522267635080100900232249241935405824164911926717165587790545550172958265635418481612727956421271328311158406361818472755452782540727181221309190263886425754487899856732454875753693175282070121541812423047086815565924370311113051440994034417852288062913925833910846798625550092769656071066314897036730412527477740316597025070878289041434601859611043334051403197730527503165330690893685051985868934556454151077794730434361960197979278221950462282302825424194575247604008984599873893091775563458234044895649426569472251515619691126494797055031369943730966114883082015572306854229552573233829857929035459408665204619568420160266083162879017820078698809588420108233534548554779910062237792004162217254862906996408248895928754955359823435765492246176745736470258541145476280637137655743645976073871453293177300178113764876541496669617133738422612289056013065960766284711928241961976228750011849190906094889910985197235950081644364062813357180167505562498396476967029997297415193677395941301041112217348565362858931107307723546884037887749965897672763641397184368495134758113381984857771515246831842790037195015261993779035510489730379760384374588708914019032888515727666572089073721782709195039920554317530595873251561463682909718386512537504272768015611034103258974494585962999345302185600861017552118195032310841408929237239061945234492654436350745061118880808769855338542796900347640220250108061053655732984637199880356457801679826770735411841202522019051694689427270410548741924996093067198182324357664420703103451271510612428846969590522583648369222193718868866740197058646133259721871834934272724331157391540772994590429723567210233807480410347293780379651405765465870079952406132709493541664524330489120332734301413756212626255843301555752911387609535170007676127278838166910817989762932704759677507415353064915608305081165620522636230518327683181984521846717014642359680280116980128207190353858438867776514280539880686667453346469708924617792488036067490470732167736537607764765398175886798513033661269883778203152181591577741562820092407889363990055322688969789293814053846562452564795749645950968865600683540450964346772716109273075939880009032338606623098270544170923625683543898289461023150872131527840098803351304382549961541656867272666340621861236332196731276355535854188813041233066409331254393492219173280857387699151094739773114077119583290291136058701545502623879629248473911341720519829984649613695349833667684398259862472681779180326195600172392480948120732335675048289299390694233412398611333861703572701733048329258163162370671196127435114331072773943874786357163531816005007772889645930252477833416076812508945182626655156077076115688066720936046229229642404113509570533358044573832421020291363473173802741882832116234569217662763558177117962861907645075069249792189860663511598667468355344798274290373244474834186215068721573377128195817705316868066775362939309875634920612399944520725059089089737578617823426682306153400682540462571254316217529162244419134909319829239805856110967369430338089537905224833817427971810685429391523520108899070158650760860000915122533315775917549560851480979493340294860983187229594255903815974775162534316847992385968950556988742460846262462467742202608423785830514686202583992102110357178960926948934389591809173504827516750003780697188716538935489472590913189378518920513397371379902025398820044091318887327698582499359564782090834033891753581689287164110980405524854344321870361612931310987976880697021202241392420114441702410303009273054329093301342344382008656922952658697491578100041134075013927217140910847198533199961440747679359190481581782115565199780035776676919453247623335326769791778515308793771888804962283526070532960243686497596801223068677851329942140871038404609720188775827958585747683836443105742612153880472903113185541323619735720093181538909521905262314213048018488354656444862631666237926090713742685298279456314041616288233451783416951138218245782962094576730796936178390178825234373944853649972498855083516235099377766347595183187927568150607255453258979052138306827851527650504063989700754609979863714959151111265100285030598220106458594415177514423842758235490288581701957621806670809907468965959357196909059124909472744174271661228746098140328996373583494669549347490412167964416430166343594198399949749607872949649929268703225144540087141513921559781535106531667624966900944939775917762849355662096886469330788518921535493518432706925956545145622897083472755794044477513012551603060800455025915783825465596516634490589405885653699716347246358093034870141192670776957026169046365517904439556765784851567410679538009575160629853579885874551279351877576336821090976891479565268172824051384490565434183700132844851828582934398405120370508238392052497928662553815845843279271309772377908583885588162685229181499286102202370127034073030058878571866934483030114911713833135565877551607781031216558364391766704078950319264009618176724908481478984195784737473768297757947342807846728416498441797291472214258183203100572767443452225770676110554318315389070208834193140998832553624746416239671069666712523300570591748923577812768660966843845222371298317779087556283746702322825219262967564827441264723726109737816717770668038558301330561133361084622285689944162234052100647728319299780276179206632516186919230279744857483565125943266015911104748780111214149444211604231664762473727835801716940196432316669818488044694310788702190443503567014002155430194835075891466344337914661948834611092796608224880717894584006085005984877098660627115991657495494847010743751871798983443614885668870777767971213974502963735554433847785177078800501399842728183285526195637632092258502433850211096130826694997443921977240797311308948965633800849048510994623165767826775523056460929583207840860927950027325378793990610958236718920242299930168999753797384574444790232222585311476080161569552555048574136170983728619093886409977871268713022330825969459137964299714895958549559708069762328560023165295858849059898573417915789627870300904114633890554674940904456942531722386375618010082739502889040993354620060633397513104201863191600034430003827875403355958360922125357403467125711058036464476317342607712834843706389466485187083496096943891817443424585344619175013608002121460441151748559476098407545268908395389543872850997519055448611793034432967639939061986322467573215933389154404659892745603498228842759488926070986788981456140481587489034072931058966734576218665606189292194184289205614910810420272372652459328693102758907878161383968660114533407501278444864746276674006514289037298430062195515217563653048368532089916189210075630844730037677903561573102871939380691476039095408178639282123977642120890595929765782121096812898078455733386413626098916690466927923410314275341435983871676498613254403784436484704462734605592973103103856087986961099289098168935009642917765485763830798971387051502912226539474367360063569633575764525590297643380631708514431045012805505528794920917494891775151409945561243704558981804485468561901055548380103475891582530398479281045316243961601937760193687865134521953464758978667924454768863916603147111864117412641182680830925940190917210686993046823248896852051113678104460897464690894014988823454534054406709294560411792960466593235511993709253103276898997038641949007971039950191947026322023829615739263564768469055372700030214437300016450406536480951003918240420438601949545501482349015698309654400484801046390792064554224858489598038612093250555795792602109621649788694446319185900152278972415608244881101396634919146937978787759073638338507031949047228688870036726756013402716819497898407938003352235777779629123136150613589376707537212213604901692733648553392041915062435215210495510989740808284180462459682958148714359178362776916513462501843477830157693975932276468795331838435269289681324574353158651014426503818164595681306458296881761903382908344553658179607748186134370111319882665803674207720946470873745337423248511340998711603083236734569742744527422111680335399384920634492257194312351114621335852273461755457100835586727729002043887031152366411468076385787216952890611051867878218311863895740898551374133032376036077350383376036148800439715687709465378545207867639883466713587343823342106517716988367159647661268905171466554736546922941746991981789417671428514285739877173103716003181191576068761980269239600446674271929508838517576308118440707115386345618514997429700827726985646022095576129252794589783324276215919734973638923479577035494222113103987984576106953750969691489863989770973694596526592381802927529607374055929844516424932861344403780966749368218651506316406452549246123867713775928040713091635295371459714499197319675734924828830707768242006185884645177363907890104557504449320491847880411849818630310235385109386652601905716294873789231340299006073066682652576259977950108677166698026516058549919505861775902966303820474990106504327050192182849542118364319329658282481101621438535417773280499661139463392645990294936802308924900937725113291005194757859966610490940432610744593647073681546402931879330233088159968221186945601359888877622563511524292809081061896475881771251927081448238537580368950400802534818813554012446086219854019240157761037191638836830555287608499550959927925716374594695225436136273373002185677964804861112762617519575417562516293905709842772481085781351262840084925955122856305700283801667958199314132519264531380597012639551258806375797937002486777090279027921736740360894667881563666281045751600321930560794798309362664130288346420186126525308233014255422975336487328669894558062983060038865983656137259367730020513843392110238803748235012940687445163466246174310822515794173542399461059782161923948155705807220830451610925204452701325610287496740375305245021788676306950444359082504897348013267125074925923137701348959125265498624244492977227154425568309596363943775148580369869654563582261049359772768071038155218373959548970929644903118482401994507767741655776645327134949816778404112581591273703533152894292481689664483103860033950057497252495874635805558539788242986083236644163741287506759563352181356616817516575545771871325721862067771086044966496764945626606820735886845141916209306753756416019779638604461108622683000551914997605053958413892146081169708613528034602135686109608872999222227747715077135713785171320744535366935772443601167863146011814413613218648625004322313472610608302947455242930466104752203593623564308004012138367092124523863319642859829056804639079569539978377272171120223270924159876171030157058098234303594199246575225574711533804156135063580642520242455942954999505608578636517143147102102388207130688533128532516482967517177829308655310727691338872464999901529118366740258211345987309507220839035256936163936826254466282519477261757608985767988913382404271168407541702251014829952090358594581527752508632377126192258283369417582605131139408305502536770184114439829620740926224825458250774294573084676257552923880000193073481017424185520237470653687124945398390423633116775979206107127265073948916210907871289893921998295001576323250035021394724956155364014936823301205178763332205274363057922811238225594997688381246606335331908308922994251577829124967695461498798749716225028634129644298879684827494746005324796199538637141053266788132820194287540680001122198384039244252114691975031209760147774834534134065268523983182010720989706272651797058777323836091969181992559326800838218596917618919469348025283236684983489201621547176495304183915956127719881979613188906208511233236860046834663858456583528955437846191087482723512929449156170537103140500224542231522011554024072407681648387480370774327402177705556340479666295760467765371247088216087335550051633121503400366175735507640721152753954951499325078147773420006349541635852537053591992304582157309585248057678973004795870385192252131757537029871889355823241724606508689477678893041869759958531685744976881533665041454226788112356671992190214047619388553062453879987619743783030543652468527011012452229479824039746103574316611772340790311969816580337712517770130072751894332529107529881295840435701369928643810553925273936148961285377075847023018656264707827041824341687466690264891809944663912068725010989829461510005157059752580388264804599338441182951192888056609687083082730099995892303677298714521082333358289375248963279492506892373079380053319197520669637743538028991201555513881455522044243548131941672335937819201306354270709462427625950270896383934371271794201519264387860166323620772205788390747005204452374873358732762297449704583864565660166435830925460534902655964894243302714338508509369730732338735488535794961945142200314404912523529821462255419171582772974142159859394134310196809092467590511933558778835753770740326463837587105013629660595032645793365885286342479618673945263418638862516603048936783720404833012061308029821097278445068372250374120913257143148181108014304300517894901225710509212193792409502612086736254143646606733073803322650597233423823140800384713977691368583075404089508075469747331246025961601272578927687375822328784735193747890337699649512366183353224913741190089498361496333017735291917989766646500930545844427848565040774272208899399646058478696615696650671799989761994034044187093548535813362077997985299498503632840788168630633865665204292153207951817445591660601950614773221424385900114205843095029534303865144902674595268022047776315337523629122071236157236407720983791128592144830540838314927797689641174664518679665573798003498964323481080843183784915692745091114509315917365271559168890862461843317871152591495787580315679040907011860370048448136312407394539470787227560737159406482579960199070804569633194931175704690874167395735542046620146327118982850224611132844980905580342469686266508151484604725782194459373323451534693834322178767346109548500537539748895587731528902260698587099792169778528086662387567590434315122334113123336474142195347101266821214769273558978131490415569688834328461901151222028575568568653161659650828628053108986995185262700218072890667789940287901929905443791025500735899444402794172355001708839961900906377813314895359046336419307609280096918446388305701885345285249748229621414770498394998305432472158034590582798815950389855205640690067076096728740620668097661442746383987339046408538604769135301787774441635805664672394481526989288575010809694729303257300332953371048009077260696661491933108042054268269306965132628416132644706958360288992865114182232117882532350503997721246034056416774934598946036335991125080684460720024565245944804004561571655635312744822142045690624031049422150515971541752678089062239623133947688328073021991142818430357405888725755686884059716198513805143537789002797534735929047601434692542270217541463358773102045053908431272672688992412189772123918815257230747065569818442735744401514513897543599265402565082993448019858373634989728549189869511908004023853499555253284183545864936696486509116012946904497249121272237141888054698867387906329533043985017578489854585736016855970581429969164755261874114231657235672125700587862860742637920929963809226452132317814545871169857311241753790711654430488872348131121048709363280410539532675067817475345481423653681532691955857366359749609685085644674977370592114879809465535016740439688715275831846461520348339762769679930640126292860216897503694758354962188297540001768262366038477120116085374189857623488365333004321018274483867272392197555289217930729416368115781567602646247348546062205753188857861929255807880427654752402775697816579195406133436360304494935982699851752989873428680184831638784366059227089885977390567709164955867690278103958558985002818618545565464807934286086856681873579866522096883570411152659748584278959382755866729502709293322117703181482538614895009132095430227984847717105911769076164281640484343560852328988511140204227557077069457469720799724842810929135664150478738444642095923343042353599211060820651044537162885355634782822278543065339652884741502814224185057587483332422790936751427185104937989109131990755098211901929360239309018516386501306104739605812641585387712301250120889948556299182554857553205895428549301691322726023051479371777529638548195973775487365029745589862146134940875956438059627608752781490656310920652241238370514048492548777436118204436604300086982706324938155311146471326633335902400280456058337647185176478905162336412394133559487082185930608216518044509147877604056040002139313057492656175689166831750282887706656360599683136448017353820018302777070345247818044040614421418280447422123688718770328780077671349059500827033378638339392331380988674552692098766432470676260634671424126524008757143607165576849375650306086751030984637573383122563832215889332862565753277506603234758949835439302053478221595271037177111323945571073719442753031366986255969972870612627564858253881509779810806198287564462079519216163446560930804529613360875080963081983640114646038062701236879188915774471407040212445009201359865389651168644547497784642799629944004472118857582408399233436708696931502504661007615550406600438023196257970523347843813016836528519830013635344437258068169811189577705391483757264606292238486167416923584876683587112036742032133037346222352257297812764044285835492823303169188034751185593723311943022557526686908968285001558232486770556686373139768200498782919095820089835475681044004455845789975704696828141339411146474895642499190202541151731538429315511579937949500370080316920537951672346389091860974875241332306594863376165025168804026739232281884020244753469921795234182245552915698084633031128371872854169184797774223166703008711010204125355867942879794859308846723293647584106579158353403115580713616381393341435955409904959823654882332661194328708470578948710529526111175171110726557532452319565377585639350660532963455429647661109108038573265594409735466874820227328446221319976861358876931029843038698153753061819376280456654687098263814004596894637499798195429129627813063025864938003808229864319487261133273435220661866068102551485548595036010151898501051374280056790792002279686800818728586631177822908676882010103419413875759468894030057097856749136171242411917119012216149515319358923232136689137806352138559060922503850512656455846171277827617053597036604290386282198700298811424612330151201328765977435939116388810515106028923243568632465469378320837437519254192237981507564576934285905730053951512762890396416803850440246594850093084977061310645985214141698532954704044295341788790005441683640373112950948940911426250693550257573406656791997785386117433591285483123178092698861299864013100601263035431772701881072988684618229830855140549645504660049979895612521620763134279426994602353652575724500362796679986401338434672347887264112097499563438420516579212800918929263116714831286670929570998313169171121207957174114567132100584636303256726343304291079334924670957738233266830365538083316884409817706160512051485633890135989113713721758545637476091992268448891408824295189514525210032389215803920561874148173714766488103842276711697013703199884252231729387274694412753910704283242481253837483391371930716956850364587287415121939778159351816530019658253483511440755634791159164814901916207091465833905063793060009520043715975344952864478963722944410053162111837869664277201894228695484260445254393237137309407618979981813082917478648906769881010470958005279736358111098338202072325548617712326003042306984048041359786621250119346850564301660782591923485324197225980619085499186369704349088837970221901576930028695692233952947098650218150810968229593493273289217256604094064452654680946185947843536416700942742279923824549711024669368732384375259775926145506883021431626017145116227826375724012115309901779757937056862921171458686348522639495594098548712643076340059262286226159040462200100486250024817172058854634812808912978952019079862551034939604135461161223034657334967928336212028703412509725579387754872461926886151611903710486371090320852137011135200884394146983220122050094073485673127802302347492320571182405520967520588895442323952262554681118864889578547268857843956049734730314356293677687247723794274974015319392711644094948695259585982473854988384513873184317627541281020280298319523194847380262991656641449884720003352911645322372017535625424335455735202869861595575978600644114442559513040528230464423327718973696063504064038978093722978093799564565129888326838872757075709456788740962390322613954235980174086143462229173976348975699862367329170532213038693432273337777798160021277198747051702431420391902428018923455405777011713657886434940267212289192315064858239936205081927850841675112309326103170540332973021710223453647830924914666666415458869825447336539903716650598101345234527042842018734580635306848076150704174553232720698781836413477811747447638854367190590433493677284176088731450787855932069815117642465669824012863772810108099150211987952540313527999686706640894560513122719346379290344806755756598625389457599243156353319566331854344273621258525204532465988751245190574163001112747841149976681216419163937901339713690343042967614707787785267510105495212095478338925296080203265755678381930894276355467044003855149951753984913557149726804517817583874398761533752931797564363706289029287848765925321040529751689818699240029596575871088288017828328699281949771577588279844490841126881524904744998027745918213089323571105758807669583909915901031237770441553634948732474761440687242514679999638770359780551447908660428650417832051778527336832346725878760833829090153323074860352808594665492438483654693152073884978683574012911342891110302939543499949829774580935540806966989788751140784674420833536688430773132984692699263147150675428515153827794889747520278982590087725395863572575032365289431071275630577342499129575625385772106052610355386314454802554556112254570770310377620934953879364808692933104875136988238059103215675211104914603343437268305448960548038150721193289807679414866348603229733686964183409447074739908934412310663426049808001090249078267711144044240136694983349715142300404825947703792808538777541523136094563590430981720524804348014291730138268754830428699881545916227102303356334610003821858888072519958373515952448758544732658383459153453235945251290259078849699465336919135736782701534430520003680618536899114493754426755020555792310928039330759802384887176394243916829644689624514668864102717570707771207531177668401870007715322814431673770843976757765260205320955060511851124904693709278731133019855722889580285288233329594311438215010540579718961418219603886948368186725058244409179431381481473870493895566835212479609577495761408666759482694326805699893091622923023162178868026016230508515748663855643901129171327276486348420430848359755894057033869173918754300657029303616821176589860516927544936695241215413944305274636790679837387569777900458634696964122816757319216850193405366008177377135722801744019847522249687246798154677313257657370924291058848607677630744267123868174637443957583951854755878550623356304871269578188197709812452692324606994881188484009992381010551800466485485065477282566929319472541929055668077523559879710897588856517892253528969165527972380959567443568859212700951833453451924092125087202301957983306012463067789025070317592452258817328086355065935344252087082804369390542472884871660324699271340255707018183508126060122199989893745918220488375694163062804584962066280697619499179342683995977628543441837463577362565107956790103509844310332131296258330181579342624682317760208917783190349699936121961644595140205206202383724281359647413052605622076019654365902557726318356011779368140654622851511495002430330980746689022491598502886515739824687705212834070650535618233656589630171062014543196915857011531834701007624956340213996745758243950783786304656058248168066354170651359285309423176014944857643848550236395300577245060912927416606439824663359749628086341514938363214731542758965633105858259740607796822657250788904510423799869823583544335579119298999994350065581641058508013657146685598767827156875200848204048229185345480948760718376765949077202784418953314604320648377423628702971100642078621435878694774144874173679682164187248613203632182857941693515655818526973332337370755354763220609577373177183712323813950789829589311456618600700344547891373195581276183363076576114284005414775154350348758094203862868049755104712112930322797227246063908713744832160629944973888334659853565241042902017186315581266190923234923644385112883393386760491787283235232382258162311080269758091706769142049819121506900659114782714917878979924941713138773433129237318754510631960255830481209454420355117896771273271648916767174737050144533941605310447676855841353910359287435190108762300306476073736840238939071295855178859612525546141676204632051993484227806689699380934781111731508371669686696403313958053893684321474228890714885279323614959741998877050873212147859444704807819494905602835789600608584098178827830487856561419365759171434450450306673416393498751902681094389760493440470734195074367671260961247254063253929649713658593495548896822992934550462465854256977945311040947725018900673876970911522691219142269349368019640307020212392840517165270745284382616768213592395616717645284616713902209620423785661445610880561873433966447845100283903870502870949497163503651092350546890450541401199317749014391144160003092197683278713552414424317137704052908445270171463146342371087740339057654676317706504108471339330537809016166134015685847281487135416520167807178524150906891844950208163301738675611587293843199756970687413421898386768992763300221130714753103819941142794661257314311961435557060687740085255485303462879818064305712957092787470747558104568147308927391502122517444004723821660170582894324809402830489347240697182354063629091717247989647031754478959875150123665429472227769029018865361076193867579196013529987295727045659676504949742900161657675285697444846500429626402630159939737616799812842073143969304716827965134152471061406943354232725519439919224945137545703726226813363515595769329467365011328239730391647326359831591591163636452758551408559763431107847697179195322263480306162648439989973141129306410958552828460103756968649751954210296507406518670578616488417523934000020054669989282629616352264617199405781704380368120252213544135678383067290688315000995434537110115645905915542841865774114907149078439664883283762489070675252369304220905691713377482603286705595612237835989991953710513743632346210010919395502990507258585263887167087146395726739125868849859550400618912428244941785310194404393375373379912339926272224211253005168064522642635407078674415467437635789192768179267516795047627341509207045463569643349375089320537095725918967728548530600505550833287560593020361601929410290345757350894951314837638563277650344013882824114191831000509972383146520778104456899842292799539098583526730990711692616895235519907556226212317327375997673721311612502807476876154927278561033412082139272418683643240039864657126404365768592218641519336876960010301564392650809494261161817623330279630586412977547865471279422302079138387677406374077907063742926002350393877839599194411237267941054683082377749345124238276384003908142446218288013671384589081889155335459155119291475922574637606844212793625135210665165427962608406298905481618263437889915853576999700085857649398109084886992373022485178803013127733258641144365489468460261641959875314119446603903103126250883000995800338180031321659872510990020339698680422986672174100798754512655386037010670303777523271287510773356873075597990639046689632654420957621641730859199360668384787216558591034786706087994090777656135382163751310038827079579256476276404914739412611668895102560193286413984300192699695672515992709855711542345509161357204065043737521072364242069112504247563899933610082718315326855849718634405647825025026741907751435185872089191269207563133506067356732517630030384518457627985463048654544777779370287475505391935104670685067406983957112163796496994995806286928072579163232436187322239334638848180395273036003556850474382968167361509903453101148446305964611452762147469971215640205163727187992165856351913094583758788557336433200474118840178442038773115207896569426624301629555761364572078816160764549672133907833897836113498443054467616982057020374666441790803807971158775443242768396797617011045898759008768633405800522995916162192065897256429049899807904630226669148588402408023795834316406353127746260341803164404584311929673673444704823006972086498686245392936247105466973476840823367823545453882646258728825396445129749577807484896098983706379666986607354474170647628512561542201219551140176587624129830542471451809287928833422633461925310489334998556058028836391623489676884193805209749125314715543121553331463638760534494239392507156995821494531692525102712850505262272667948302929591635823781896615206143779645901156786884268802888628212178762849904516878978963941878025906464088804915953286734886718444858594471313022742069439766057108950108570699003503593637022329852069386498244845069080579127655375000015073782002973969703184972809637334065922565328148119744318131175497751276185129354526067583656136721486144659579246110165576633454379146035297103874437443162624040203449329143055261838701660543901240370728766803989777632796290028222482316030810768899772990362547680153850913278715758886255923399874177241240667445391608504985237985864261772286573049636879167687235080016591630166658417115740193360912388749066316553295939540862673235488495600488712831786215380743805698758913766616943629452997661341035257690790314031380289182324004741894678700321971338204460825325614453855645572422234883119977638523039926943258219949936968083823592680886309816557090259813442902019232528467908165081566607965156031407262122671114571418143928873050022735267850579994647106351837039413060858232806342559715949627786280966583851658546889877297800791782831878821561265297732444091240028786313525363564118061967080267588840085800731876130508544823438124729180896402473413985552361317023210869764826775493244423934909467403867544499609867246797622911082687568962743341708265959603515043427616747840367045493219679453588416443492526905941767292348051360783513732173910752271103597123479262280568158709740507264640256516472145492127838183287611107615949850696955723613639305108205463915269489750092460724255630623696208767243331368598420276256944170035951603229757967619469208660947246318088299212150529942171450476009738080614173250077285228100717623510369242219717096768881036008301169997457034294105911928226186232916649836146107792451972459522050816745454861151882560853954366612777630111072679151124934255616643386356321648887276352888540585702577031133521358079070529787176629977260264465958233891643483789606518181828750487810090436027189289378931196110642543631176795391857307989391003293134026768897238656087793845938531155971744307660867361842782530688748869752331479054271280933641043141412761439738459256270075353931649588722415646739838156337083420054163773259465833348758913852054150460938292576078488782860776178307497839931708569117661305133588222211355432139394460299743178146459373823128041364740192355348702860046563714061012693244987258365691606561867305458450993466585752019826191273160483928429072889437839053506616446543986432346462044232512153578223545625218283649409090282931614567822377540578464763538398309438225835959737333116368524588188230579633695063085737684011074293135069310345627372691581544127820051112650797287090894426150220604592118362298740847105833616511176195773282721371072893193441807696768254377319899601648816874724365839845591515566831475516586654299148094334971371318948149796616294019198976070040899443796881817363549434991391056630439542189932031600977981155094858812976584295110461669759136122914129377857002499424451444771790529273585492573665104801391690781036526177016358223225975994660743072628104802230206117220087173916550068774848554585661746524843243649900439203774296949476061622328766283734316386677301053082290699911879544700011761973262133099976961459432071237937158874751091528530310765608146407342398953261695233557443528710833155313571981310008745013916604915577778814183337875721202513489505331592748223113267104516376887535771509439924905300633134432476514042458747877377172797397931476351484227376574848621132744405137019709048812788243979109203523878407245051938064168893116364588031691078337780283115484292533301053410444986241822434751804260708241555887875922547375681213338484345005397399403782745971663466015537325501784516745477654791377195262491669659208369542895575630488135833042210627554574717641415377975489433167220187113709696201112571809447967908711640771934357103906317666246850021507388948461295345579415041724746397281408887301194808221275244042072961664279535356318933019514582185571058459790524389601986122871821334402315957910049123932671425271103209785027122604275588009601218900731294569808274124151693811504677606451167028620791609203341117547684738317899128287981688411896644523747907388809702804563953162426903968487498013907159660732285352292645716363870370930991976657875137309223572307134311041664606831968793467028379732368996661048918543840366372574844345923929271054314147854994217348286755717734263407644736742103284219561560534695484533593191059414461380461512519967983465277485321443500254038650238344998846382823187755515766685880665369350961962719536722486460046600731662432848795239051260695055624207981048348788233865256569941804361465501081440681490062700087337954719005542893381162120918355782772309416355699066183932307657354889272622776219717961675243692697060757415683545525096300328111732202365577165654423911635735071592611082221300412577824918831912699007896461937552050042394316975509440524666190078214258627529113404671520044479711039535665850844354709138653386152661051133512539740510631282772633991963643449083592695840752807600040337261088664499404661770143630697700577597245619704376241731358461776448159139202959825136698593405002298040612275479924262771030701514973649125694295953437377492395337196040257996007827557303998040307975631079946473806832849431151465821456054372049034280159252416086897055621336576360500799711909139912028022841247566187261076065207013806262941752365209756296768907942317195155667048517269571634995396430975557644252993172160860768754883516725008885027818053083099711185420055731455686150736190963736608676708023450999730969307937935661109325420631164182226357112449161232241423697773767486226606346652420187583259493555888753741642277638948983588371303640288710567832671133757852563676581592144204465250068678513398881977546397760661387924574355760482351877454840358209650665140301722383480007517623896195540943150429363545761808503034773783466889797278280697653324045788246024438673975819005908939183466570355333832664655493414676659072912987174700964358452428335137330654219282519552131832984305604649061482057675588216277487052029420637332633001675064569199313843352835996225384462701138521927439841792859756018508408027999070226915119292293373182965445964208231609775847521865348524638684615801310310483031835375378662125143107056688627487934601626129169646289127965609244650253879360299965238257778086999660555796645934724188177923307522678868710507539006676599983145222271582800645238356280871079435721809547828776913096445825435089303519216351997973817452204310822002424970330499256528736514809713486225456040697506760852627728206756986394004965170556956629465695427091995183488438826759407150008562282644711042470044564960658498663352071645404372382581683476502790847981465786854218528509356673657403891426518210568677488414304884246873189013591278994147187616881527023909303906827318372835764486364609658559492564982912331098193697298327426773498721457343571085732190426831016079421032139123556679316846020239301428281093273171329946940724417700185879115802448304443535910459390080811179757008584742406009130988723277332617957404559997293591816303291000611095440908975791911949176949153297116192312831196705003210826685995331045175827277872549715644273751902663140256789875911747969214555627228241205856141339554123569212732375597646017817034200581803030561711805159141501143750065620739467089131348531337853384120522268463016675406601832619618768979812812966554828466726272994967909104546491358054899271005412015618611853026514507133234331895978477992257318438926083666369796164532572414364521626273085535619049738934077107335507839073383061711452596047425622898940743238422619529070002133587974150924207541734785392783822498525105131591754543235908106835663018582535060001863243699490325811099755908715311829316342658320410712268904396208255264868027083152347725938442576626607692815479421784477465374069431961142624174045176847592988444998543059622788149556604981687161473002959334677241593516036524445589499536470047050111346576697776078258427886664609954652181428969325755375858002616232053451428245187667661042272027786950394852809227095956308977735580661800164275115538827284490457738666752807710579861528062025165018906762298494491761931203194414284770406349799347517015078540674032394930245057302201865923931471109742714389217887155960918673563993439255014828181927133463168509448482930192135568439809930621700244452111691377450559900199939394553656455641689251506599073193926194851669417463187377747158221961158687520026440450508415499490144736190061073760618337763931915589274712759584868415323256657258408030999050178273639174817734844765303817002455468566463603565766092756353516259287993788524576296003293711685848950272175903416473510194261499502306003403236306083336555711311257881568661977032221812187218483401584534783927635579532694134712419775184151800240443578307432483921143534146443167257128269643799337994690629768357191859336578641054921946963787677886012565982316905538057192882630104926144803146057169859155138092651173790152445506230630782287919069952408046156289658361844230100089800205558666188419937725636800563769764883112174583715297913010820115500612335754191556233493906526002063409034003711958979909134618262117081036446379025015570411249014368255129022067990687963788405775764899962528321879618151453745159043898213127669368298353414219329270847529205473742822746481458764079864398952413062935948750135878540646075320069820646020396887264444035887661232338223982677144477811266807925546541500507546028394060641213372136396077887098100689891652301407956841934519865929454486631784186814009161652452160384833304744150256517296318701728572184576149121181584828293002693037718969609355646342433501952840953509551687007333155792147699019502026429733877110701137186214363734592384009770461536008036737730278545700556335647675015379671698009231515331469510513838546721229644070387292950776322673936668997157414492037357061896995214632812405272278043070787560662475500746275960311547319388022193180850416335277374846989268658222672229656641898180685589194186906270027854705791330070588268733967479675468734454457912599928254189779964389052168592963099935514207710907713576695619358946893770892701963379225785648133839208702022709175453745400804870398222983432895799908115584269131485179410946672563477674601009226865447902646761967492104077334821853565990223783242903327752005504435579015597402565778950798566114745008432756935935835395764966594697338312640908139032027766729740906815808939650241327046758989582349491967436945283353577572911569307626778731507682758400405862513633694828872240214305626137062165171029508218311052674450868666738172976932619999049596209387462477491082079533891121497501082141291117981629609060632964057212552735774678871642905941044535212945166923107481079388188642834388602068464075356799435513470196030318659875115962352752262176975471899678637243267916427751900767107012648064561825455576427132382813516919078522814209853467416148662174708582829406436063246812241783747675238724888723342653507138816418582292722350861141793896528645939033750279947184130754551794610374894247446262247468045919132080744704910082252862418567179809711663822503178232033880703621692215095100547616471013802272362948100231439560057744683788153299938510501119202990595789810972407297223438233168281754817481374815871081095316296047055551740641934725745100508151592059826421253329748400564277079100422918939158347980685527305032651057242124969462713523397916310388041131122569278048405461533179118736759201299412720383464559800298522213942726374193387680538737596504366196027609612172201053782020303965624790965274768491503201092125769058287743089510512308255782668924764894962435300675171836071850025314791837472994118344567511356844086936199696014498686514028266813736535844336991737982109357005285255146775183216174389144942877244409070854037786982099442654442396358543091323483421503842954945722771783514480249410268775436241389563870708702448332760708759111860766705710128739022293275166268848899726424641706282091915317720342477085112544089092502011206471521966339951458171963910887911417420286447927546640014572328310610202864922503275610328517405772172838555773684228003698214031764093787969480163287423248491855189016230865287731921671931465917450449040288809100798506219497058340799924829314282926899311204794368897482901480100627117991253270461018100788576127043883353712863225859488631978338420838663488583617179449849303288062709413350517389141877913511479497348235485239456922571344122799893379158747734475491945028935846170182540895511634941815355806488280299250755386626474662472844187211780599607484670887844544715118419691982459304878657506344275633853536138789585361955896382127450224573489654230037283811721169664239747086464691488091337325134124911463857996725260673094776915974037174317234795571255798477613997413987526387313485970232332519432110723073650306586865347012401158058342825674678389174623504834404819749446614627644041843714408852270097330346613428251405345702806327111160072511611078903520110007639795199509911902766567311924506351713044067472020912634495161743830090909335825399156293116667492429886600782686253660246749795328091936821794923094623162249856032261390497179589043623446414539032985506263677830630190604220387367674944519105089424059308697421946940972539111219192632522102014902182195597142446778943205131754224922091684696650150731555478163668956144898381617543718666106536987562601059637389778285771736872938403611743912954370160477336796667306664085107336505111633444583000657975229164577102609463624906889956502174399202231341442467000783586484549328516222318946004845884978262268479340755342008342273204169873543593291074954266913048562693398293219502964607082962598151423226081641431593459480169888436272922389988890379609708671069213513902438215659919972704809031660655244152993251920557651590234614869960622159514652267448047102306805300589617372416060868805305869698059112393237291685150143152128951934083629569771362751092456596416269858471481027335888230689170087712726156410361606043818048219319761492930278634112077120222136449555031025265598030601128528064105057642916702913160290079887863013964602441385147131903932102175373852682017275660153508327504444406168509386549206800994793032468622685429443218505601838291768785291260509488519798742595712443576293811894975852807182426701754551314009573238424934766940363824846199186334244433924772163085507128334956017665556799438132149237769956690853914963571016381029933409870923470468158805120522626060809719766911895891657232692258887496548216676780023446780759830896443537712779403906620233943490649415931394264045520998315660099924714513651191959802125584961247590285215157624524110863700293307873797418932069293490671736759109768962273918370453968241874287319710136115550213014469218576040054953697386574909227773772672482765071620651187293864728337640977376586226331073157145362737594088875087032955795537476927485143027669847659393830745604897716803706844688047132107347945560734320040679503840199392826735693750965921188800621087871929953048729130305592461002382996450992451386053078030459536119410980949801545237638690752563696521483478461726171184971401205674022143910717807693304283734921855548950873183593363757426188867865821757340787547708882153547593057172620722076144404189558008681896147505775972897196174344896140302667820224847767347507001188881230516778372498146587460194164287364584572827897869831123952846369429797364439384272987550046146348407574840586704632984283848204274696574407874491262341121636583247445506466985953576253944215044230545746335344839779359482384636390616604612362423347292719215776920088018933631245773793554691372667716666189907301113703282753309211621571679471110625317592491040167786029958562311825960594448491090832886747880941020766954139395907956195675654035963075229155405751220116852149157387174679083153524215413390265312591674038174312654510346329222799941312774857325175410014348963208907658011083275145866642519115846732238485547543813849371909527375061263965071699362043455836050469027634959082554147548716693326226533792648170092047347516785913656812276895373788743415496314498973552653197744049901105409452389317320679120250612673101102048388925201080045667765794507486006936288921363745316848049279705418673457644674267409224484154756794681204098337827348366390312305906672790277075486554620720521480168065422653658041797886451437458114761143496109981264806058186498511490061220499430390862368706552598761045203751290823043192394644328657556978280336717152987515358952123499730291773296560285018222498627910943522435113848972021430604356669867493839339252814536917166483642128135467189321725941310219809742192485781028907627863954031740737064563109610946580911581281828087149964733088218279792044774381644874663478320438398440484777624161586329806880161552126556730258036988613145657347155265661623038559741151476167579783832700415071428298002709546086640124527942911979322955014906199963896261535838603754312834383527708288906024902062636694483734067760540111125822053840031990196488089507144325362216310109598463983050397278617725282553276699219375933085723457662276645765510598051970158216021932097050080304809311601902467431189104193268869650634461031350344195983599722378506864007378827325012673253397817371203431618848486624394436294595221770786761681978742908916170100871130703447304439381614754512584770447035880805468332480747225103051927706704668211281177301362777885681855668490798770781699126795217814880445452325849264644295839746282687939028272930976090601670739942378688599799083074307073340150533146390601805659803692019148969139662209535049456851375378754497003721087572364081631311164633421865821265164414496619640045324029410069483827796234974162999360552548152628806788211510603672155128598823203240625683400707844699149588308179419388451534607175080988022908802951445409715531677200131483981884518624907411786050182102025802948905560947082534260336920564099799210598719005317391544430831535844257297275229727209551144013888785431501329217057277127312415841847420999691971706291846653799670525661692422842308030801689159677967965131913047460484118255490124090143327258192626796103251085728756405474669519134104755637944151733674013560095746641948740774628301266146899048568572883140277706536484861042542231462974191721924750050566224940514152811868667767398768808757516811923472554930883869223389824208592582830315449908859585806073609457656262322086542155482900270330380224357085851464019460659540435561522660411304620160118480286198126447004182415375456727615246943252834627799163012937236311850802860817226727853065364195127528645560858828921502944337123299778865680463565844424337001050436663180036713515491258436528123648144585801453507197664267528532547250686301435092622280888195208990994056847828882002749522377250811736921952045636460741371800751643691163829284341890699517050809006734538800443897468320226009196122488876039139879186861856735920888181369355650055909685162125207071184614213765348715788252726484683901741772335829307331537363325139690862836983566644482077595499086352593966694760745136090771939819619022223491021153166786249505347812197918247923860001732127212041969579031269854577234688836649538536681040023828198542866954010490187856255139693113031428814616811147310752857912096504368482792998530409995728039991490870700211797107148366214971699126810288054690386133101715812054538978256382374392497640680403893270603712187235637576201418728821010882442679656479633693563918424288884859427031663037247471361443603344179436429004922367720314247911583309360467369572182469093833051461603941485135582205647258601763950092428500748550226917298292115922572752550585806617473030974630073322708025768528642254361073753574066885803142292295619447319763920081175812233141923752204451575585865039095892251511243146705350128393206912407746343652806864616424711636994238346845543510491292332077001190619279914040198212808180943547229603844087044325138595569672628782906479507056036503604067568380119731300294290627991556353878025111460372118395823374314394855073595306580338002365413758357503358186384579182009263958429245226728049112864298401530107183916096083917700117683542233208455781259599670808641066883432632192629656796164195753146752481525609380342275501650374839106655316064832228833325690635752056135095884281826247073205639557145369024085173088660019700284040509127059976198510290071098156978499040053781624596786452679043011241607772764580102301531701812935977060601805368701919633663645382394128326912370502117110240506304221488338434372432244799881504060095761814332983434093013564129733807590323336831019329713881205836042362735575974143581070397873425133071414604901604025500350355066194219919223330801048422130269100197741203111101877723539558020525398727606161890234613574417276751404377770682489379182460758605013711508787311840966413025732270891776318155599018384607463853853628030185050413060517361509703696086178536315958681109145229574779877431604278759547529349111578802444108222569560106864513299200353026173596883057709782284837545263336529991961147790008711122337034795881415728360118325442342341047813026277250086315140319502802049760835650895186520802129555664848154406448311328109681987952581275402781589074088796477968963361158566985390117505889985436686630149610060740618693900068582840804139293073711991894946581672904369015114256514057551917627602283641642588732144141099237837184671711591802516338372995037182064019679314993372093254870441802265145698125074078370968289962018962147339238021778835888735730963552125418877325365948587915477819631057483960254710295861545813678190946232962994158022281032270957262087898148799967194449870588187722064807918154778425857915951465392056929500171354607706971550445624046571277250021836217464176890754274149625018256469017941871170554913361433887973477279052798507832501766488770742691552769554793331912376928497453637066423890550095307557657875806642858129050303340421899945248160261359408690344796974032106131281034872788843294587585579774485729540266903310584592407066509088947180798691954041827401117537879058158451108259009641483278472504793045363510623588985791467534198657563983232662211107662364133632047775255593946726938838673153873536144867618264959516156205414432289616422273105511403444206475532173273393503416443873659325736602504911574060482013769953619374744521459364687011073995473032204442833817691568227419219876666952981118321014620873370396545103989646646220834462531316837790678687770880746484163421156158598920135614346450477087985919892465641361893829508124607693688382393756477454610477091775528525034881935236507846556334099021757827529845980198896841279554348442828006272679750865563368125746539700749396423287525853500268457681115004872728723026302039553632694435995911224930969950074982579789602227988076725219651046261042513126341489458799203000627811910307192348511675132167095678577280794907081462564839091027019088745338905176466320155006152062148175216732299914895895854854769531249264979985840291063715877091850424152590580953541150889408161275909278985612915881804214069842629657681834301454130687605677036665628061730682685886064168000592201346360915042354020595367629531212115533487506711566485880775051987955155210459485361811924793956507425295389727955798042212341530712800581151165420369857294454204378192870342853768574127084480782658742743614346382390646927291131224675986967722143543962729812081083917172509961609825274625440679820885526990476287455003053430125890251865935752853089981326282009070573803332155563216986413205886494264151692518025543657132822324878900281177324607383676795729857300104917404495977896590381485928057217247892882582698806156903397157100647865424063730444068792794972483467375255066228575279340567503910728154858370195639139642280534051399195891153400996278540852652000783071182347543420194860081032291215695597008335702028797079807995197267514707534065288325329162399375096776817308840959143578519147174948457147498440639026684689924969893740141524886677749664872540600357662803044318068935634304724136760258876559696644413536000395442149746618428081815147951080576694805607990671523743161986914687348121704434613707038173218421239228576964061606704835098506625417714389426993573367968323492489941968475906282019662208557434029278092439956760062151983686625534300714246361815157143098208698953973253806376813874845764297321370391429267040203139077953465705281607599061147431720999839606995267804804483952475934382537141877166223661338870431263368793227003090306601998610461509670610364808554534300860692593443813016807786695453572803342845596558094390148776366519934594919716823869151502656923698716480412186305029505316464993380722479332194257450154386567718829746245163396626485888876415856643415082147392790326228637483170840933123152641432494450595090567109511893459527952524997234421266313406085471937217568317239562562903954382136675880323748048627170050077078117685013355411409746228487293333582149425783608703738100805353003060112526437885433912648455541221938000009141625472421826689063001657225082226840257802941285417746003321511647468881899575645695913781943368374738901861664652244872097321267975503564105050218552965030088208902956504981779564691004557829342618644515603628125016279709711239528506982452895023570882720382340813941273115150569896323319107418360991036060781628100476143349164122294902717395997516735354811177622998401672085020102737790630331945773941087409314203226001684654397735614384206393812019110504006239467538778596719838588194240924227356763676176373109999850534631162098121348620922799277297193560989645952420388084832937488876532982040407796346933727878049691257703797559878369358124997193545321187932094455554611736823860384914102651058584480664924702076936136283440487579390712959085839806518877454429840687937742429028113738925151046494486312609876990282521095545230762826109732341102827630681247958616602482084535874793220353740603866663518853870677121261184868648189716426302665604656044463205014055109449717733407885041678999341819021686429517429641487956224784576322831048297628872687359049355402906509210797234499992401548212729465515300107862162289748846858661690792262981049135099721641328202454917688188591505122792402591348566601625008299430258782461745339240927318282361631649519329002304214493480753791213513225615911080357806847517789922569880713009957621339412126732766471384824957781340301866912252553032106087067243627194471549240092282849010189934575962561914586944536802244012596601417386686921830350654825290524954750141276999087051260845131503945517375771550265279613230811817510602945043758889011498632624906800934310105206171424276306497018186122980343201119846696818703891922460869299477763974888640608482169574019837282578679798056547959016116665670751492291265839771938315291332232682443933405473966884665901752151474285802538412845944243417239771238821061525303249394974291172626549763016044129598976902745167687650832849569221831734616219558494295754650422882609662001081300239518293749456491045798590235400417755513051783534532250197836942536034606205241130763303907733512221168194810002899898102752835968087061985292886429412356176650554167037967184194752462064198716249352247644058028697204494107088413046078567933261117229698981925328840289420700000521289793731130896920880065761511432540338914249373085202779786997662700501514610833086437992209073608909699963520099865719412367052016810052957277730377105968837386113506586953458894833520016195577867310867118475924983254254842166622846538840275541217930487072248329295246418639280469279008914210942030318168158251816552599721540679191797681158255543082179087807228912014446079702668387041964857124000685933317856026163677181185787537490796942432803002052529129516739307039266865225107794541425096685398236706245060458560951003856680391448522852330934927644377035837315779949304169024152799188782039370034220506367147929574585164025024711146242409248077967966451283738485454751602926497548187289079175615636720206795243531057098567863840692478942453289168908291290645626204109427086265678052127696174450067198097402919298196929063536086950230719644007926847078566401301911155654921476764423259505893128300359404582831741426552322862613498934886241513705344421561939221168735604861231976493143891627273962483983504406933198326994280473366800179170748707182357161214566251061769467189203383460413139061107942626705386268807735824703567627578653634925146251887517450188540847943377983075286199425972289606450444145342791017373549137879911030321349744240837098700013761336366127805729758180125860674745693219289571720347361914194132459042050256614807418750756003185277158518698105391072506710720385363120163276671866793029138487283052315592836283785280986486326505158008730449769304820976419867561583630600839425585247395357911757026250293005604030342076940023065006495736264828472764815482934261049506610406486248271073383121913729570353774894463117887829230488378588029341944400000266474831726067696204723572702508412595253737898230761319300634268604291304691379068156518742089908601544868876383641178368605077900815040991521649677405784837117586782409653611029620252631878886817404332983579875342337943961752442524456020924412283146632785493344109822277688936430913271743809094482290878614527104079117581904077140003597774379317605335954583438964410947418447821746045833808507103081467240077587361524330134077517105606734061508586483585184213128252694226251262245204648883394878767839175056229847687712856527570736383431981162725996748051065834819907919305255206648912619553167979777678352397023498512841526925849466529556525414300351655920161879032474320093547327512801690451014732372324704655290994867453613336175755558352710899087310335171965551665387165538380911291626693897640794845921055948047026357136687782142114440010598169168719898676222164289014572335273215370354870225257799385039239073834433346910557812587568747269907161601043955344753074112731135833838561456011522381949270975623146003908489705408145987622950591624961598705406402130549535138843146741221243531958559802397898460147627145104956702463646133467866609600315871375058894105866531777074481066569741051394936111292395843036125691465934996385026748371391325049938630724935041814190202543341086177481210564261799103319988591656420878972090455936131909548539252053078173259089041852889357642546993001553581929149844338136333764297541111740067987245285865291658392034666856764393119526542017594423208908234656067747181810786708743405744510074709426352120550588335755594344779615439588462710152971096710041732204442223999482672214607075506346675947285115198738259627643878778118600653901093933007301206938310147136378245670919907641651519351150851149271642492577981748360890901125976212935917987895136364153465868732903183616338661867862069616937523344748839144716231574914499507813409791437632723798888635393415336375715695254142982490041062565369137812036925253941083615614075054707381193007685488178127023038896287192778336153808642285007902640982230563446301603818200597727447518905413856982902842745706553477039698518330503045678658872953674589953119572078486974161204843158446225638879411435010919796311897256228490702385507504980660738750036630601220049172625155530562076159047821350168875885548217116589356275057324242656381330148991163732034486050545638780591821735081800707460558071636917958513822570623055018028721884418998810079828627292470168274588926308471158831653284308143463072215350247869477935928354150625167127945125578477350553316889817166693053577749811088557545372549817913235205313964865941739417203293207505767878474404866420349832367430088143494439051877562144394227264234129662262545889448287105713380444565668061255172062727670090470298774724336862366977527981531620111664504853457666836430167531229103217198537748600485520538161203636153991645329395885315347168528483730675572339895752329718719616359956968157618299616248479787285694580899061774364971428519852040224379203294090620907793367787550973223620317357904368820889232203531840093871189168260586697953718943102768580159658979975033696806190596687687496996714747321724148454062436916227832362039085006055134727664292614458430607134767049617114699592342117980776961215681949545620911540247924740234907546865369750288785153508488366099918719184528652571031598800894632500705093373292004228094549307265691290454233023965023033016671614532267202639709801891798417120226470267480457380594876479265361704079059683073937469890777216849630904520990776525026898997353991226574924351625644019106730184856609841079138414637829005562660357231339482468925255304479751518633770380611125638401017731293905720861713142294515562146656490516789234962604854341915206282758862447392675421902229657634070273777908337586384869281251067235645207528283622791520868656821817763272224912201004521269008865288499255335653787100956234223469652989280818706270675905214550434225627925325423408171920166250016744352933129891448907835401761618476521138728581432181751104876067540151131887515850734513245697283396634480644402544700343843186241403353081552744432896518033738851282401426743773408161484026507556017765957660153755268716532783757578526538776327476921667275756863229103730816620098342000183561300109097369729480108547082611298263725819300616364722132726762999603460292450500472902904882099216309242588091283660098282561423046081625211584234643521145551025023629894491608907311857784005493073754289104228647207162723394486320779324471430806980220298904937933223144904548236252168248920048943861929460348790103748376451565683896803239104543294156241415658406828199807457949566504901108892955651742294767882892239177685325092699411919938469149333965571844700920663784021376376594784298906020679778851245935240236245968413572119520294152376719594378007820902525253450894999285707124287384151554102514741119782112557235859700332766073406054373865930444332354544499039483529629487237988878057255232038828192100736227220360797415085917826416503905667594294852296770076136071222830410720759305882531416967250894997800316882846439586643143055393981065981447230994136527189660839193727566937483579750100259234472716083288349820800118252839972607400626390366781087070375590664171378223207787461503406076790706061737212440972167927650593387643604210899495747580976346944538473584005595991922215050774586490450136171044943053886176498101016213260565670298871224833266907345752254445218042318666622816796707890758042819316054709694384069602253649082178019982460506354410332540437631514989679681161938745014840951726143232172005183423820820216562568186504449010002129968507711297680633190782273424608396876663838050136351230860517635076895589201672784805404756977560184706678157950659802985146480681952164438842679695360023076467741711499715453836272673816458137305154424351560669460970240259141811608902553153922403859715668332042107468067733740495546684698461179874933363836353893176170749279626036173810374159561387262928989662442868377017038519072426365470296482847530202789745207305437039267534068479521584065443539662447231531191954786543569861508510742488238488986300892647759944275659502865550981256321182911164448480652804124473142122194515618260193223906840132749689556833227209092680559272953111900083276343446468435623082493754525045516706188592205411950456117671481493669296432974030988748420421507413234153735695203714027260053460048038055941776534646322986508687717994526746994593131726184086176577309015972538313034757394258123748030829381010626298536361916413849060954656792201515082552601118218722055544765887677578296476963062147152692958341118817414842407811809797339673207180054273280449673832010992225169041927043605381231609490886105758418319633874801634720084935059096751209128341360967400352183664179449504480923889091997674549156071528319727498039820496791597604359469170878950454366133412889348315858723805259788025743061070814372454270572632153436448949633335055418595384769505431320368132290647845305165213383126992739034446382333665231067064034941123834326684303614859535262693076889140607307130891572677123413791372062036684920993336304409576974240407961727975680954348029675759855533143903650392502929982486068302647296727199698854220494943332744692306328707199477443104967179336687090832341587124649787365400254859498965477610683389829593228077621767137901043876763779334162952180138072943598030638512921545343366530790947905303118882478777295543819413668366177288227372990350240385597904111458404254700926058661619584916701247448126707652215181299075470966671579125221685868230221385631989806023068695475262586691325125780283078844530142614715505697632967520350406557713051741217765386030662728545063313049784545590024140330630320605110469725793063593564209274973228727452772847631293200084777061658484240757692602241670262491428418770876365303421253925253297083438540312330254372313688872231187117804654867808133577967319919924296636860078662086281681810084313340756914644009252004470220924833503272821692942999673936189543089702616226697117606217743406677198643388981682903997930694621516820436059239855449038339710503803546070179081478443515027766072139707644467456270862631831151489135486853626888487936900121935965401535139812702049273092015536155867836131152831561317118423607235127620578083520888080844748797822733263219948644022699324113731720449018242859519346944825346037697003136840102354778102356808175973773916083665548577291388974834383213035931366388018685775216437010798907683135671223081011129718471346683335963159791449098366560619670966193544817458782241835578554891352473136636493686154958745684276709466325307419070224286629023284134414205759231212452428895471834986355142525902794932334366814690248003423788191054390054475603465237757270269097417603053831751540711128593719246221127806330587212809755370472581010637976376739678324961230097558050408787612685793711733120728663282877211294298427328924107129048363528178862631467081764724423979937664456041988323790995982856564903001170067546936181766812396378671295684909060230460022944306958808974747273710666461733293159602244746012762159364408761540931195235121676300403109258807009742723129092141424054142962051369277031801455491727916893721423224202449811423317124051029200020011241456906819807580214585860586941540241893518861748969259600802876340896240109694591617255893940284891312599896518849861880021667619550231990326759835554195679489875985861202628004357523967469499300412986021650566402863023541940359086581783213518979609902333092261087757716362236931560008843128246621396198910532973339837191893580250233073622281975143862215712184664613665577246322657354428420041133380949566511794638510392537495127316991536237474194089945411931251377742322952733971770866394897855768781584216061362642391717137291309772596633364437255876831733270253352130099233716074763762871241754412538943186901150104203664187098296949769555197208757843955873209396726676316863495475390559258825218585079742660524764796475814413051760833424419087631333712897556400136916912467404088179377191085569661703272751071984716879753436627460656210062982255483456597171193616881494939594072201421055742147231657550836856655282908594174362889333682292028457395842798950254352156097404550154718539168819132374239877055837685480785522530103502560409695152592037028101146665332225354461695362944822509807796740635743581830736874483154777020708660792097583927589811611825893062803535967665885047318966717304257100254408202933004416134580266122271480383033986956432135572330724269170139166350747702767823948658705359474935263808966991810623392684136489255933011637371318265391459209075335513281471854622453929565707435879962417234824296909860058895265392139990298376854030512199544274117691696522398625966011835523670866733949437026911015257013645157549949023205735004170504145605587314142039035941453745211654606703951668411386166323546074831398131060670411479429912454311185635362335694401821261915859219325273465383141178232520267735034742610697119495309733983984029781986425571069176497856263663406840036902864075558527289607184500863364279203476459511848753441526914218391226804672411298561756208500197071347140579687184316048576928770696068718992435248411874832061856222601316406904262240270983996345756304492766292741355065754888298920048581647977175286566016445839215047218957410450650410543207157525066425333418136957824950222162025608007036034118287293826754880098605933025234771931897364587480346586990451654365182427199314244412472304224256426033645154639683758867017297913117814229634858523741040812310292015567182818178786412781687342178037739145068689531072059257499819827711185447382686265699826188495029913580047820467028827435352842576908509515049992892547867946754767360542970238870855399857385397345820850600773659633523803449983768112012104394723136405510556378925050727120830938929926977302920056767838459856442894620240031166860124220937969633197827097023909079236233596233717018719056460906923104363888370783925950438227537461564288887654570932034546750972694899254516901612921046072660361399947878303261738886161355026367969094256315487556283518085712017756505639820398834797355495383998974290543904274453576464610917248672723618808302069085334989821389124103371042104585332150040619948835392439048409203288693242141196307811906557221572917453770024812585197805049558671616616634327804204560083212626061891991300170863465526016551027826090244877051341108890900514402536450322977139624039526946480552829466499351697084807194361161025208790406312372651959592056528746905572965372145750023201599933191041846815675129111898278436744814026950341974584252707250599060926855148754934190179494948272659053939830566071970891996353858365089855742701699754151371989933411186259324862440501383540537751349988518357887860501324326684933767749157711966119027982146576177117454132567966425548566939642516262195894879708308505130045698768059813033185335118419512390100781039278821843431901596509509980214502877784225356407548462576440538705883843244814496387856711191417094369553104240749817087056880239290590067431190379039300359878872574854617146454249465620321111365251290090519201142281908463619875571386601000288216814968355581273834789219574533026940433824300826432772619525766502330454883834163929753317944864071242136055769016971992039178217586817989047110033382670466842192101317728947740643761531357999214685548379749936964223973055291972193096049226688077203060994503628541952685773704847723995404745789760763167591389896377735983198969640972221456291777578421063246611799335007659655081964423433824675512119119700325056564249670271694719367722194982247942794519066369127720230393031505116248411604619533206311052595434467721774340642559981609445051577712370661052162703598570162152216335407679775999634513032822865985046205366759069423595377697658335460692888799079037984487056638944707018509682977682696451354348406127774733597690193464344214154746969288179147592098571733326596249298669405676238496403720959804290470463760615993142786055485702655242157568703606592405868644150162041787764581373196280161136840360244485344486233953213374865465109131445261198766771961482877438797248163567972977295168280213432509920353119860862466852885215434931848861467626612984095966103676061379109576294835875209367036706002806510106438573049143165848042668491200951642863473949623855263363393196255117293046373514349689280342919379916199647818059003263039536259967422016550763570638127668786305978977861214377540052657413289590238918342420132354389283045973829182310928040600100715983998089723468503307408084159235288481133602063801316794975253215938305044181464106943415914809333802137693628249715622008847957781720628434690984543123444048951325441145071517402077104654641864353156230272654610470223651336130565484870576863518155938167452670716145365675107511773164158095198963099676265433056114647274149731776730726413929268463140675841916702940757368164024093472469811641125255627497054442705445016600428740345300633438746399211356526923233403276986798965555953334486066645769215468267333235179214826641469940469281808072037000615898229700611642267501299889927193513173438486449028087628432190451899182025275437557090785246921804595236313620441182164526278071177043455070751866002890552167865961878090089677683413853315553640568484378451842937866451733746968916396155874646037709862835035970301605776389559701048241741978910247716129078190263630260233718866593096349314775566791166260080248994371240464937959965600369557330059623413826088746611489338139909210526693687324514656468741679299196655038350326280931092952407930174354416098000834200895516100383887126976091738985154677127608815964823143549068429265461857309598117672455558176101363969106305609902964591975617684405456654808232702481315089252558430391272627362226284635315602124035997504679270909522375910110130120272365753447011505282597403165576316552927445997150175299616132924709449356073225789651991308001974981246553323892739550621625146013469022967673622583089986503254161583969962647581387466736395412124497766132675241675539695643495856232495622583537047605191115444926111810931255376720972712260418169552433115923500023395633699198753943538780568126609613306256403506856077904116930522195947637724046908493410101396883263642327775214566768892800326404218368913386040785780999940681379293714620232322397339241919798698788472513077223377427204162220996210640602099658675109815795116491363980472245573063777870552366110014314309244872149901471121805487744491904412674358406541924312891258685775021638096322807413249807131881445791051491948941007004820791154381030020976057421106278721438663005762579735920645677294415225447589316526467648198148406230415523822777831151005803732030578435233567259594395140020834391987815922477546803558647724975736778541503005040664544107168585407044170086779060691433604974871362445746124755180859289297040304476834749980199797519965810557591870640244854011128707420866217549299851701333694215094946882313484171347681276527777842375638589600063110602978472924389629746973074739660317628235077126566516449141023714442837230707610458899673904422144155475444274229850084039931290503358831144464061866745705987855998303261465124680477444316031649871981470586176774618453014043174949759393506982190060247584777697705119816719124975804717054850473876581183273203258222815531493219806523220510854174141834102677294246305277139527616154405771450958553083705872156905423475285390596724617994215421463052122826242730223922660516102996657457228843683937791189631667182380576938652094507364038659639371714452671424821620159675770035379545865803969376868285231409183859131580463579875987982997687541139392256585761166523979536070182973161300626187183371518140181288918628362831729901492658661125361036793735026398372481980479203757018405627639560651147738641753418849797970665233934080775293869299963059720662930126751951679227072937247429640308016611748595886298380796809124369636164119033613694214845044685645093838766253273813120554508906528831709682442054963408657648486089620853429298332346351382343607578092043709008992052768715433878983661439729471198587692461747714989462398799551484591917129606774816222620079632949237389996759831137167885905423283637857300896299579725203150795857088929717788755714079538038978985522467111977286964389782306944236179502420632911199422566746550025164240475205138441168155691142566063547172183004981531077742947009246645947760294526243223736267765889394133074169000924288561509609860597043802675849111126310900032620333955686979630835632343368024366137004967926121587654492594425755754310384862455792430425873840613544853779116392406019960996797552719940592860335457647645802026391163978265569526779670866538136661447095527688248220790211073711278077280336206934561521148787097896222813841616175808501113259595422505549450927986998580786446106879639462796120059312897150867861053411152405550577097242366090745061536490193363932376443368575546002228489741382359202109167455047212968741576126923314414437718001977850149219546550842230104975020512760042419416006758172418981666369291431149597037131771334536744566193414264874757081241930566669999855684874950926213283259043867481529930606256193470818769787783366658946935067333849041792598590116265112258327426726976234543923494309368622624979019270128768083357041222714218360937446657087582971766436790287361024820543791187771001867449600159136551568723128119874826607846413227792285225612318108951682759657624295025265245176096166664597954151652568951203937822337213353655306795876487364539885336438286761912841897079934091274031400917838964575829032780360447759089502783821601388090073842873216234166305521904172586836607275820453940566192445579766041451226131289845637051331834534881514581572325439324019542961218734157730695590528282109956459859047689845756808350877094111842742418769019270980441480220939374268018146232209654853562942234472740353691580784078301947468143623739505555397939136440979374309415614931165716101576015802412165234407046508627208633554953299183895230189003088836887455165793997367099877553615924745297078583299869219481373515235709035420561535545095982439392095738458984715208874857886827228667583582488190036701382302818336429677365970283339314976584825579516061725693914623582779340449150675544460416181238211818654214696534929522123851071881911998323056346989337042495574227933402665005982671291669013736253067346582815278161755975115788833011270478072917789591653698051175044138714650907798096896913428880569068820803543473018599492007421939483108064932122996420452755671967839677032544348175308378524066864578521487339366999553979935730182351065615644849960234661256870461642842594582706819348376207389607527481107199666408180814420053086062657103115627680880182195408250104522841395612197384318069462655834071675697588623316570734382708023322012232867364456346270748737079151300659223721970357841454682810004121289741101115296882285910701034616770805244091613949390976465419849391044058246685806064207653148764166467758085231403464381586019512248135072243641565743279804608904635073685181998481585953604280785187944156376931066522920511412432815694387491648511909928164200025257671271429159785346433661672816802761704636674135220399196171424861019811473036751221758667119333482246757949783238098592888258900757912009390058217082393194638352318317685136870747119235618692859710467905544724587972324543406648977766239774151447247672397530558526092213846452180341667288009251107204910873577480184735212745476361402576799841065653764126941403154654237035848080879925776379577183066311980276172140166681926813758501130012124583866706080094068971330979970203929070430588891249392847819735352073235207804474743581755357877954698876164182238580108869496419982537306655325479205056955042249212701496217306873644871979606834269405506701215247278147904963186762730199613768077486557901447189572073665182216157564954924418192220979514281810506967258904184286895197861636794966065233315817095108107446814642252777790527664461268048259843988613798781114048757720622508598839167692383597464192409081803209289737642895491471932709709846620315883149407696178146042104790239618548183564521245865269970209038783229879505256942567216634308935144077016232739437258740534341439193317143117190229633809888130213154689667742523245049246333702663472783508852727426526037731773696229431500297728028068628269766960845752590811026288980623481145671911703718443591966178339372800893043192410811168089914510684082222097632663716754372707512770486448709328839714663801730222182684539309246630497360845676560584015874733878427502825157197039660123713922494658665146386366426553566641344411004342962564848125056637285456065276372982081270002133402916728341920146081257488692008618796093838870406555560089517108547719244167853792754326109889006362133025134119296740084805217616510472390598305425189961091990649558512363640440973159330573642190686876505455593972861786194641300253982385166198701736113100646315662504453026964415647207878007837575351341337205651426870465072740840258865545242652248532795500902825165895747232140547955887396506009584566305989214530446245769526447305056691324680389359675132628529134807088287835926333933882969191857772397060791329404243455621253763416134976179178444216907678433905254356175818990763698847851417508732362169499096079839343386837518026760791591969885527433772701465802403462880656295097829417224510943199591439099357992424827285819463625658281818517275350771653434896901549762905569629434135967790974825485820660401444279256552457899188038353873670543722462780758973341772223177781745105997430919758958820914904195972965541557865915231104246008851525015977622512387004599287289111858804122357828592876555913395457900708180330343928905004440752945951346109124132343141011004936985485619277817782778609678281617030704009057708035045352162038997777715705910120683806790717342426181047743415356882649027416879608581453992210927782454073540880471646476653224227886991086366759844846402834620189397991018528908446448488112733165913540142437243128336375556042980139994300473587002833903312791939180731483005829819190962772281721757232396613663708096685320361729067130686358484253329267557007781368085377904575920828456359897659601837743139845958248869025903355461858408293663767841198715683399435529819841098263967174573807237715530571161207066799558248752394983694290977990663579566169254966192180229265371712190414504861590243119886287819115222084291041713044807108304940248010955311938387577216736673001709851080581837916204096461184908366068111388719395104880218081099302772492778901143729218218083391039415650260458586154909781300905729515051450389169760765346700160496858648307946456696092226706298283275779539150847227386887374983009942250520378426038199709190860751835023271541242628392668941778311413238878576070014838768260619037858782019493720869643841080960247805525357389847337975871220055520778935210105293980624080763639000098748377217629980428461121276010636632988101445688816998208820280683310662513779754017998370791382918878760061744840195162455843241142905285777879429583463168241185523956933269577681137425123001769751810742229368259341066068188646448618779330481032559186400247935701791824932264952040912094102509232853576208862196995909897153824817167570888593043950020067306670262361595219060086884326133076575661430048968278009291659452363273121943945390173386987632518424863064542961413957130817232624428642546102643534890615861348715549906364038299258772799328114460676992388417796343899801309582244294666381791795151776779341679257832564560871585116513308943296742894855508786432954144897613498493884530490853483224435997498060521892834244726151462527408250533948680483433735777704839533018426789000182597235200224780571976651486939352000517978749222988697245921909126725712424910935948485779589738136644544451420872741558188425133289907712747744508801764693648197508628967011541179967395236425973904247715515067246343963947848299896088105782504123619084010778901802812243891977469431598436847324785426047417134013330839220331591985739014230584197540755302116056884075909082981753771351886854585355805236124237511787620999083322213558458203074013707266157499711509365334269242760902766604868644913900359180694831473776443375470893845461334679632493017418305246462686370562432646288585599652666008549074195245778647618867353162577199365439383187235840061022838266830328507598065126609811698148576699770598781237707914718036058238402071015324766516773536529858543886533692691498458823089657140628327640296612685708346080296794099926019455488001258978519982764784028869341485850769889185246587220676483535511156937971274188043571745692099731362111970903261370180438930817001063005148900933480140336942885612615679872909727140626354877788935787363648383623802448344362030178591148413884526350139774588259639760492115177459993171022848048342831224231674249191889002106020307973767038288377726311616786882142556140983874788874097045591365292145129729944072845903731771559044385372149470172733096330299463318620513248264159612829506505655108631937404004678126823260138219303166406537632733798040822807403055294687407149134991292712447715307810284006634496335786126076997237646606415755178652657610051263890847270602565946136498265922636734508564114158666955657532199242312625032624133579346020178319960963782418909464684047579359499107324742777176708274991195088948877684784526714084118535541336189319340758680079209887308773600355056362772118621413851745813326263474336037106523149433881554728638930785795968467458490033785309736098796882458373913228325974321581030336643836235404428095422257134627571109148007183137990491050016189654398280171889464023297962970876113757505146637786768853605542434317484308658180002206113385969730527101502033536411906354824844061512274758173488840755013160603863947486265297113737049601505201905354416349035675355971972000267472470420376447979416818916128543876904412394647247702639592775475241536175395376441541335375150212530638797921689001564136711473734531273268008707129768664364135848274433200609947852036697853096890831024211882161138644397763956582078767093042654018168929817069209719896665144565491479381247330523115856188030802754514311192435567585599500970440156150228275698118356889778324604734045964940254134082496060261501018944334953506307135921718330670021749466820897633553898332666470148535992087088240563883530249694664327636001011903019569899781987361254076447326074093496997995442362945289286992984030072538549492030286281659932165822871278113304589805672177859066255318089057608116469874141218229868892752883876805138605440469962650098191252657899242349560665020198092494886196292559671210149589561206230094863997453811882479692124388974373640007679503906261436530934082052458155370754794483059242990437507075742363044016688800061172854167937332334256115470374136659331357946766500876440141932396993393046976140927326764590692141147606931255145537651633461653438519752664896128033824775367920554936153771984555386376460789658231776788879750770462860519912908155543000489574321291854903410296451267511233663390689893797399092733981714279708802569754991538811588043252190739980480972792814604682743340786016942865117213887072245167041900696746540246731441581780827789604130302376434640421815367814592084666215594888027341249584590986321817040157328176012817503602456083446063349275275487271812435949514226885735026423223993554725135109125675681615839155908484087827984497901815669363261852978940526572734929314707833142880672139787652717985257035843630826473417930770476605906640892754729444694624632956855203460893629061940544691918117655044331380648186208453216155005002686724910389736507761011018994307379357714388062451667636782324774593015503813347294191455245177375886125966186842468887425680821646624144468823772976603092719907432961837011599554499842026466569838661073508248363389851652599295594208440325983738270208399844323589896996792597365368483147615430809399495649068347889297643967844630717554130471342172543435470339420479936073687527007356894483271383865184895919205434930256391801498357184229115090973983246717005942921462397824108743704190635918397382151806635590792909946384593170598922066118689542271192802289150583386409703904809968502901122538020937310081761385130934137803562220335331216217679211112310343798500038063608708495193255584868578561483675419552334364177583203549041149773564181287536463650190291940314469104142304198035679335639221912051903006960686391014704490945945653298592140861759866200980514899040790249154904447138070909750795535851275257061174937818527754307331167229121303105991323298298764344818766352351731917200661707826028417477611498573951990993047802322894875109935587979296457497873718570681903444380874211934948492585682424463020218921892111441624232453699299763869700498381771436882549435276683131830278029393406959901949795756597975609679153765203473680379760933808519521430599030429481731698389026236131721995412372712723934425573371001867737071534212368147238905391648136276215725746948166891804181915054283043524171530259873224259323350657668862195291689647455763573004523989751198292575938154086812002376986416852857186515292316146698557786464479843109060100833244497597444061225601656588786751973635613373304870729380811431456493000267859959962176432395786598843656722329707175993856833886365796364877186891091547705134053307103727339102516352995726162062936217702885520183118420799777431825656500120100247045208524610572996321036981997324500226406780886537524120612356907648896717019698826203455511323569833434456611628017541702065442427199188241285431171254635069846782742497028587389432482537859892158571008346377459148493079271788424260760397617832112641863093614301248463327903707918507507238923300040325796206388084579405488166139582265807380123825093369696700060293391662264192579215413539091781387656472162401228482529960398390005424009704688422129727904637911805965064987900526830880602401899086262850359099405806675907560500276722342386643500096980387818776835770765173192658306427328013204942613322692643648979320105118629812066799240979895300129400232247123816310211203091292230299496455781643882003707689113422605631940255049498116521858115025875192297621430580856919298015491712498302348043393625445729329129020677794520662095472043783443538692132615485489761092599419025202509936048574799222265854264286927875691017060611641777154215068769953503188021514154717998490520074738386378834893244550316548090749428299142220152887926594574664714579393105522196033144536570541836301811631143585726097950209162471691864329438519415885479027936435941410681460128863904391610711807195329997107976879586620302144457313836835284677851385927924364477281241213776757267412874940078342035200710960870293269167579816253072404561882656175720328828633804889249856579204635460558925988650000888464616962896246997807552476987080937953402960665909774326487172003315477337950495236110432791113525599493229468306607505070957595714193041565916856045632112398346359950088312472098854916203231778737089439291229622571116031328831422389209551161695599295335022648003254499174685656178690452805696112735063268909786334301692267099909479198275393843913279529971298365558169504575897538560777286897801692777538571100966183631988488511542794474867739817331918073164852527504937978273327399271018023567965672778684473179207395125724760814509791429126687323623741379325927768551366362120335968150266916573635477022072490133659815383297638270572388383961405992145138146917773702644847001933140262531042112995999792765507486605479784461141060400035432939005471657092537760985711592185849918343773589912664109368236241068376477646596802719839768391463853411375230090799346675039647459173507583783283081011981080576059878173371839563641487345681391729503579475160849356825649386870350755231830065400896493751760399927118252504234492245337957522319798339770152607582681547026087793972937846089524051201561424058041135883711480038895969680570151418734976699040311728603560678666907013300981305718323428397356750139760700757025339262070781403943763495914942600277422608085698992216796918212524258594279894215520871885892301478694183726328516873244800343501886551450769371490349388542938473883397595291125459423047972714143969357075242474699160043550197754103322746079544948553858239926076682307149246589963985911996434796836729061770431286519005692439814760097781477140344455638923990453465189485694533937215724616939599990490589585020602868966680302329596675846404710973886487427145741329782438700859179856427772280184905451702409574182785805192784733791952846973576410074035904554312537151221022546311508454623023294798236875443041421670532846675008205283768917641265173163488792840174850595120431440910094249792652363709752665638971849651656265704381370213264546628575089924713909122685767998798226420590099383231246928391985998663477655813615405953842851086380538201336829845146016596804617214124406060906251681947832172999554134013398198528710718758613835475765736475923113247856593375874127245601208510656126217334540173246585439800274948196966400101456773650384731056049759048172703341508854638062567681721817067678477519088479901170770739615061186918080117658496179830456781675146204064631531350002481449984900130984687300994666679315513195028985305886535762869591372379777301188077035911871269344800877392318279419865162459253465578375694251352793571385557688549497942742023046907104349660799081227430059437223473337451092589878006707269934987655072669838942189634609272582801745201459767825669972991454748720340564684012376697045705323259766356444053935339299558770152352530282919454557495607791084510110097202703935421057965487409755286630628334262371061063165054002713587818773734353476140806845027412223225011958151613465409492523754342391650962216500251850206868103489311497642454453672325789730400972898693562755508811070360044677242988973724727533070325218296119701798772377468482233273410060774851643054911888803599907625650015050273724156249295470516455673391951472320513546268611291316185032588283794708122084687664316482188482470767135870309934825268553252194767231728077465462939749729046892544723310868200575999196780246622744583487096850666650067359329824004309443230662241823082439858719000006443225762682460082134484013923655013715693307396887564771865396806272197351357978486712544908210612869469351683351286516160153745996857028931546012586098994083936245265475442701944218832702562261769691854825687285344196662136366777687160348741762375686389414166924468873471131895303955677993980796608248346584279563615785729910221931582133681576590286567183810702116922118756905048155381177812038135579517102017963585365302559775558796405988754172778542251657412581460543674670767096919198283807095808327500564056439598685620065207088140032768906311687613468956347934944691175702650212778818478550101523409298160441985010242868371640387756706202482756293689999054317878016270699875798973885939783999158817552637390725493227039475788068407609543377153201693946091129293830955348789543076060218548910379757255836420276927478910200406208236209774833144747565445910877646840157260048898451821320604831152135015949179704422853651450155431261886501433509689595275083923545082705278261521508759087013602930056056112574233811094225848930556717989354033624123826007102035883497180285254802756271684989448283862318201663804206345155713364804345441282727726814317668277929472408263857184072611005531691732346170230915165646662943791731763308762229144198002944989504924103482557571692571981287373018459372083228766731290291958179951967267057240466618286877493879459600692560525749780642911537366578228444732711536961440127140057275328621998314045580133166406037350676233609965630440260592471456804003250586412476957979603662286265439657065827974961435043924055386844445908898404111477639310845828696216295071986341550247691131210340149732910316495787638099025917385170625269836595747424259394968406325116517015522038898148944371828575607825403577815048234544526293684624573393806164305900712510523839841221172472947779641589858333067163914946735590498246811919898003673273620058713196124832282089052588789098871665628328613174623891657979371821306028689987195827114748248742283865504042424721035177021251380628720192110598517332176854603080928400554132933706060872848456153552340088213571500580384508664846776872091924395559206366369771075255478356887582725883133210026935312509154393279818442239106590460690251161103546942237949741108289116114567947879941145041664900547782301694355356065780733771475977120098906413131404491045498174410934315187464768816760467597954350208980607114310128243629870728733706102851705418557569490515785804744479899256013295667990187860580413594535937086871531992728393109555333267870482579790340140455460104910110343106898195448473435109388587022138022799445930785955865847480502622767581421764448298977519359912759250572492573003971178779814605181891510543198517649578986267244558227092560425255263596271136204614602800395521293222803852015844709829708399052059694252979894698887070530707506843354176717996087314285978753288761072430111563503782438916576252444297133063964285207871702243356202012546042012498722207050954506736176841104277354176220088564661422686218412263211630024409738358876861122469229904795879873922724926289294066463813184777478162151049357281568137342982787365021624769352020821524025702713580037800225563907079104173014719865192192232466328746771141813444866543190985958732650117506550144140715891595451200740542505770365872181869224070477902748640263619270534909243271854295712122287237375658527104223911371699922608982839287803157952427239984464234559598025716327725528949744545562973510211238491320104645507259674293890824756352892936462126259392730862740576627137426075957372425304596081623946431993386683422532082631030570008125006385141117058961399614198162001023117222918625402994608137786453786967863596820790718309440529038815242207203012416449330401715155683390043908204221359384247300985712806175701587220705282448973539418613214171768205147933501827239798615271296680167853009004910121200906265755385411500710324778845806518693152981608276993034864927078368907314999286535215341529525577794871693236368048223611198043098700141682495940741480533707843102730673239150283891962505532707344848836424201869069014455667198200086158346184300144888079562589514291105200400628151908245391505956625818626204244507118750875352028104459822096992147692145335789277763016597750889589035881161111616698552013844554699294252430755190999599893170840912987951890418565219267594743187395500198532603960325011075552220039574808811338185070972272640896168439537032758217713302390615439149862396523624650051267587690719720423675697761063345550332002605495261396728869866191486777709596057640882457228342300199888969342373424508204347389567729347490284563513721669907459951461779118581024403796400275656743846661903446133492343080454003380285623972551490381861825848234189506921790416512280748556714875029215092560946252737238419107187842989257761716054101723534222725218261185570576708571144767646120472335710755153086491670685410012929272723784665327916578106883683892556337560961376775606285186149166386878220795121229114495330083711477960609712002809876401074180698727640933462481637254044885356952221640753545232216613368346057778536470324116870065346893636821197373038245034268583184614387137231160326040895807403261186325197676956574422706960369980332301791979857098625703841117849131198632450088951501592308503346764388547462205328109872706788673639413016978713211672146637978147224004529862232082539429887099600737563912961100338267561226789339497489946465245360688099149057670327524459511074895142461742427868418422693441435587522180144038232849397452396633624745704195434432400316919981645564350545850333109917447959016470525504493130742752092381324845330359832369822765613808789362226247156508773951695533516932807336542562488063909710898565566249373460865853773969558095257832809253645538005325494258758411800239761648847522633918460022732965246476925608552014109783019080507980865844137808061044517200423348928528705112801396737447683318069874409270941048653512242831907398990539221633158094656625282565443988914877407466806074083374887360097086794644164191286806343216125395318959434541057794496953277344995103340341650271135197237983480386059626392365250599029863163139895513018699289399441892743930388035927868147697114079560784862565872833331114548457044949180280583968243748099003040127615422686089859981083296738599764857823052709898022395627674069519093003256501914468059732405915786180992337706095378162905862956046390570888406362573303975058779804778955860307782708660306046074912218081967946787984463584685940147630943155916424088806911767726904400254548195322287487733401889186976682477134408698781631025150532189357689449156818998419192464788011166783915773862591105650520172270964247377259699101282845066991317393301547044609301553274990742314061591379589520232244585518339146291063251337084356669757866987745948271016002677386977676100586231082132751849346998218713775448386053537986355545449610968276613650913624049074070406753302707039503658210601539167558685452097756885597876646756123950168649601277329211821802631037599981689551951601735641080762147184908201870976757417532449971470682371514410226307962670530457114688109669742241991479896614957853752990820450232006558878803820533594063385945400333266902652265825371076009164001368073752012392725137315212946294251468335301120082865204597182710324533108212169409464772194899580799922910113680992213011638957638011458905102815378754611081997196311069012096722654417408438511707726228338460197974007965570469989158599122450969715615948251596897455567982665186047019635508390366937114269913567037557934293735964505723312281602823207699502217903798065680714306847103209058429821281304989840214030558846495167250453944874617509561809518149219816691189348929036164620337502085882779618466448751976135633803073033217683030472751402130775299372899428657320876430992686592368405155714032333679281289448236047539236173341245787950552950968396498701988907882702278602914868494384184956468223656759849565254059412645335438007020141527402352570999012573295574739487552715074726776005437865125981215470158249038643765567803301670225254767633808943822344403057311930751548061121058092480802820208287867543706585868422880476327566732452666275384294899166310260685597407606567766137699830767869398788071065983518450487123312098132707082703457701628627092768380638726834751941722084266723196859982373858967178257066919360337903532834549209569090280876215538973108383420082446151493066357158186085842226137097697045424153279969115269599409224170842356534269674684014270268753058992082573478988372184922346217865584104322782394571890113818779787909028239923827830279775751079633077641626880967942188573567022924014823063843588399881998235990206471994051942578211300157478689880584762072904019224376801875364465123469043934694619193002189543609407232104770539356665918542087076399422101715114978460191459112183511133808132263570663973486920596451584205118954639256152934148189674054444282059115337377354633658243973935201392957494026483084425194793107588664687312198616774381733037647220963114832548986772222068412611246274756048349887715698390462674274731084352936822597269188331664981701095056713736086205229276604483558222903627832387750800157636733862521250167960699262475059668516141015608434853086712442325368981235225659597820612192788125578521838039080496751048373248273114976117595583364034061681847960818329481496010013141974163068653723614226039150332159074700080505085599509753958452437781140141492646477554701468854362996240207797937052161438429340342579318924832554845689161178758888920722246908021718067992622161214029937256987609097374523442526849952489770256475892989629961465223732792151076046930505996754886837715196716096236615647726071968171711309799210523202759597551076092613396225670869834310518471862352121849867895793258931108637918237384744003730215223303627789282748146131880830017708806635819729787936106019534884762790618512965443738760190787810451301919618069069672954038545028412047774797378911858441246186948809658936358852094483535904073885961447923049910438427738386279252160951417145287748566510732666799057333844744861598283948077381520499411822399512032304458887161384968022194393192769378626663502088484018967753001491568258461033180966217335463289589224374134565096562102805099522443507076484084032753992599306353729853955256541656193692932831318330305812907923306700990619502999455541456811338076129961862327952956954715113270663602021562830891701948081221961322693090174731748438445789708305607218995173565809644286151728842207536390611991694825216118323289601838259661981589597595370513267710968807942196452630516785230049067151642872403202025906310868324750153027074808419884130232593120168442703224456696784951056119248212723050198343792009818227881063918616269941340612940875534496608629352728074264894051830683188956124088088709339917864393007720471782288053853604946918601030420863472569923120344032232306950944805205197238005298159049759892387468918791661552491433385655013724217488943877421097866508684517886517463056630012094085682723736247607174022488197179505702618729223833502072228180175641296560476800523420103423201155565253209019153786755706245839504595271147059031095311492833818578850387397783134021730135648398908702125368927611193256572274460326567083170018679724404068293092540856998815735714993896688769356135304258510177322375394863599490557097049480177507392675184399747837834526811560330049289677506078007268359336535897199187350425101139445948549855933553370987788923477886750047202276802600128929279313270822529904313299820511779175446466176428377562873343000100252211090569147218131666426744537149563579639567594353018288563198661387232344524944356686940962786653044740890748679798083283205097999773726904710856712379430031646148770802739419817384343224034476004612773395525999687831021116336970217754498285140356054709144905909110094823249079928859658827688505440480875250305114385966249538210306743224952020245242766320626166962083617027342802092243491095657691113789468755323059003795093610743098778328115245265689579741083192975658634459011332674917884788648088489393367819270055424673440333920901487333022184277566329201689481120340918286599372971366650971787474204202573298071711879370504523548894262626654662362032096541110462557543121273020367070362980569505599910640218579965471832634233616891045952755913555460362514881741491813530314995613336363696088001027917593020300786287191657011385582320554847367371905153796847934194622688125887735439081515931251093721019847945682172633800174617020383645039449157775390046292457903964160253988125419025470904820416688966293808949558246538783220195916231152066949725897962268488935230621377919095928401887530154976040940051352989860429790767618444874420526525582375535110259101133192835860396341160460718470138537111445197757928029805466100755445597243989944622855063546711524029523721083850652108660323857026511913322366010167832649254154830229009594415005736265686972627212549956713160859492210310351006584516652680521019197563448044416702783476811094364780104447606895478836068023417154456495512607562821498169716663995970578243773051645336486828157512107925516802161943938273661132651834878456204317617970736254124409361096420761377567084400088054030781295433780447536449557435742866946145346607533177042915488129784856374383638182613380966539375284492652652366734554556934572583301680847082823008039719222506853669131691142198930088441758740475981342684536497603544883620655356493418923251557046427832920390186826868050416415706161612879121191429829071891038586198418143332856849550623228215450557789861602007237649617996075288298571744511117642583634351800491354569871131470983645209981399540363101821936036319696904256830113217768143058031720003920180630705262738765654195233569860173099583675930653435838284783804847422087944799594879321575259816759983934276475684141725493449644736980382799089718858665303723363787679120369670979546030641996603543477595227797062333426424949669025869766935012851682205287702731784633682207183557050891251329148451454313787066527684563590187895844431037401140266716299948294505691627229482164360361086594511538468387192343780715126770328826044110032788486008281382503370682072138213877921448198111701336345972876729004996945453481486625907706554309198798026043887472484784415062353719247651610201901317152178462912721202842220245945456494125594337962665491634271034090511597851271048654698252175848911776063530808453498360459191590752587500442277738988959430391242789024187548722712945991896758055907186071698623563353375946460664551063720600403236662398964828359015495934921745169579039735041549072597007929177932481292463153279146379228092861186578129469739630509805034986230352949505776007743182824384002663239346414972915344650863817288071323582466900674918883862595076147328062189707366585260824690087421994105989981246201742425498570687754848326630122761861129248994993417333475131585483613009873893230473758004458107117866052030647789574980017288774366523661117211111654642654036734157152541240996692581280348183179855327014906448377526015078328723272024555124289066500800482529367046689461131971681479368792220707589048064025543123638436980095241587543587374784140216132753841559481437431836552610731989025968312058200120895027815676946265866804428267509462083229828203820909816283920058550207934206332859509901630362636224213268442494075655131253764091066190928120477774576981775640531850801361684515732862810821931085883775419715129625490895957339698391537854488319556757975531719594066291020520462238388341495361649522324182477058351790122753853761449506805491059536087821675045538743505574215482207956511256863508035997434795695550415058926044990725755406929876651355092976576267807379091368136773616190208365288732642470145909298882673177470484552207403421757876932748111932374115426518006314359513223085187397427466187165358525513055648347470839826926199718297229985246585153977369849508128948153787148800790086909757775147109093381850140144589046616898461030637538721122366567107281616744286393065978685240989012381079918895367551622382026580286045495001291615289465138010758506238249605442692996473089975759072575199906222661216360339868826205089806616981513437226608069644023209096981909140916057777960681217341499257097891944437856044815882009639469512484537990174181756400402385814040536009058276521332144672900029793725395193854396805980581594820360056475592577006567710245040466441696551095097334811377726391153397611301983290905685187225963821596968064353418225824334276660645427709689667431791856079931576420231439768292177575229632782178732385028884617868174905057238225135593563369825000790510130047987766743103619504301855943987941112084094374528501515823198759944756095947832204813901611241339999017037274907688207507279679740792540658314789311941351667958290635145243054181294974547979058556068861589429991208851303266468226219083992058901225553089639977224938441380681727715018783135597074432962687009586793289092284210476945460029741650648195773408753121348896347687184999406578342312422417820444311852287119743017957822535046924946371464949387592743831732326049458581703504232163124349993854679010296521263580994428390291072793291848116715496699914892217367395303435083132376903973625549206345980219297164109443128978067559141970523426810062507844075000931772278774625094316384076280209124872824170971018762301268846711385406041036669133961642748844070375831389563314031564785074821071221668735911375210819520755294074245435628642165965551294537295046155001461370425999094814750771961942929194886082872471592082839787546430623286646942653124376360129861310708377025992499465776589098443397915575444735528025618860118745897226508951220837884512973518049728900617422440629528148206321286127666920152778825788058392800319980906386780766767552055579541963629312780943226228869222692893084203504134818631904214086682711617750012612568629897771282125601661108683763728487176277938210913480917713597201389983345681409090072918579689231139954045540406127518613750662774686878371261872464755556543618512215984900896078548247107395987638025908887914658072602127977930843496498707566694597522510791990659527588977363225330635961838851190039333120536945128315775601635509477168450617682532532742633758774570097389151466220358428206612513009056603226973160760468484610204549649733811394671430085692619942012873178856930037365591776943698530961176726664339867773968801892283766529031374481464477551331579917482594839657156320161303648753909498773265250325113954412117922413913269500075835918771959503384464436898269302767013887142437981532369352073205133504704814296432471514050886988821367093332708354297890599538201199441652431445502403525011087009094062004063782991319552523969630621822121707423952603973525671837586541821757948678936750675602618312800755526509907352343481750254989931496019550845084501343241608741246798501609519404886493901369606636368970399491770537192245562050563503018480873681854034320365371156527605430158537583255514866693156072233931821348917055975146794849090967069276710314475198608985832202280491194446502256220166350925020795260044782740833790428596057196909589351698648933503443486884179867488431497925428482540822189833248387920552534681018342318007682552707855564512128561335484417246477013639257006285303654245262981915760538301951850774389387448534417172929761944583630219345441414667480717571269101302905716030370359208427160859721080734980939591811573200424981696457801848292968534413930452197726256541051358590230181564475107389659591838930365698612455209001639885592440462303642712938669539391092449077562253824709776666135090100440097998143302226103819886814966087099441062733798460931236676330729089772788589690173663938952409797372613214810828328020254289779849039754242594152949344858595558517271723647638592787675184090010003590481087893364199190649772548443993413683805914726507095310615354310905637587800961271185119874964134889448519942604992164336119642327271803005257569352195188171840110856941504352565809250244746491926274264484076281772518140816437828848184277377049832638166561973254006453612895218136865000341823483176710683016721515852619711719518423282691386486582072828085272261385796868857054859880649323969583545524647542491269487328665981704390440906664691065785492708735387261880154456674783852848863332252566966373515434031128200686885220159348517868384469524102636226722413296653935370605656004643849297172096040574155846938073605533297001550533221618916315042817159501098424429568744232881193653999356560771514606252573693581497474595258560148800711943976313686034713886049464700372621122083695755114282419450193943051079511363149511905898845636255328783417640110578635301312976411339934604937484413756206622739468986368624972550550288296561674811416729145577849906001644438984925943856577258861545883893904409264371141039315667073481654111270323680420841772149560107425135372314832858824383997353645355746656052387737654644749032876583781250851215004194678436239834796510261398666036304695306964134765572577620280018889935360365675773428132453273723858122274135707404265173845392121873581633054875470107511173820661187594040672416014952437600976936983717852487914713300129915144027297617494852130261409873421943641696439529645129590601320714241854668265062755242729157807009078193792138482855837679048704711118031852475179607275684570497480078111583450353638189510204599111439303574187331547733603421720083370582627869756789696174916849910459887038182787742217092694949718497675275885589543586932054591266078131442790395735379010449053820672154097365493301664137418390599450056376212268058658364565411037192956875146278167238946018580251253225788275806959848707378622358431036622676020803182959380360704743599300748068551500903071973058282535318032745441469998185785626891599478917264386599440444309296560098237802420165276958281755430958506443756938688104302424357671156357006667244889953049408254033188052798937741454871403768272219974531229570165808182289896779905730687698066794825432107310877968302098435023046441185219625799712532630938305085487415653898606524597090929373754023407470121582187554617105452143652524354773044482547944145434844331276875029663063043205090265069157901541095041770149971182343133548159830095209940054896530007465862026798783978315465336329663829974513515005171829779089754064931126014968808257181992528639796258108882289682620052085206507994722612866458267555254636667250730387375920690407296356897074904367674117707998761533652223575541785357178960301159643765370838646044059875674176446355247670821945090196349985357830897284792532753007081531854882668596460029528956560140491563316762083970551824324420749128852882164954705922475050288617236482600862138087566565355082261769408415255241178554862160687837951494043411907730134841155305686740932584714145528224586205288744812890675974365029019652868188373138969688710979279130717457729863888102047239317871559764472294754469805689265275571266888310152149140066917640789400790386817025180615238418738424337601587852228352670014616904361390154960738426815878138487724719543090267286413447355277299188551910523492032943252191770755803038165184816935648380981037276313184371541468189279630977464089095153927747708594601811855416200407801486123458508339847772160028304668349341436679142506775362820357257939023749157879526455714073512791437414102213260189991113423207212546278758883867239186335103171383492820448873650590880686080483459267867960573241587721071681132178660113354537739737121511665048142297321217766958465226329212809270652177995943117719244128574346888590599445669388812959787222561536363147763117119566322857098506739949683406061628830429117753528258393217654424857590928338596943688215153457972051256360311496452020832919583035224748166693024079602595118861735863775940130542376839972887575517109699195179791535531873646222091348617009115567680048116249293437071211857996642444725622951872424421403513739280047923699509554039412400136315763004039553432350529824090601857986166944214929091777177991975026672879237922485686645412332336027084224997900813604128636281769987789450228065259109028697975920739724411206090535311713051823187795193942476254566701423957461681638553812711866688914354379096346231161852452096581389195791613424552877150063479205195206429024003075616993860362497713436578992659561202746530206992283918385580630302859116024951700701680802503611613787445807950729115462826701801754040795244696594598733848623612892865199303020181105499124418965096653334672972786349359640971885334331198678038459585794803812804714112854556053174288583662820119992454880669748241324343614711315033219957028945192180006251844072037767047531619845812945901435543555939318051041410920784424190971078556524494476125397829284813997539877949699237064801432414299704152814923728406740605307248675773557331991264587953132358250287019002565489480070217176861521209054264032913704933960856592790663375339830180880125896440743670678101415905821078075197862688645066069663478393525569706236040523824738399522435051245309262453503429845543455750565518019202408561868180661404485090691346427409281153503515920125478944306491444121054315219093437139794692764294520736568775290712873066031796599495502581430717685372989197854420347824427387691984851915982564933021792270068091046415077782614794917997679358643057097610072555726760853321126740331821470497263412635241696523950191043274293039668357481134430410989514756639969660789397264963028740475387195552625105631972769608812618066463635207786170847761318669311542166193346435920032507329119213575570515146144296336710777439338772235775114485359383440874695328898255794492784468445674944951439483836465125496863595568885883013385314910520235402726586604627648729442992513716459823206103768158722747596841973098762113161705880358886092338986569753165245114418362212268789207599223027262356072042288251913150540893494438592871675805095050811559733247477986215576116843242146040669870348112277979439668963699206410587016289618899736981176021555502575645267905064612363127685157317766076012870899667345287291145461113532108715348924403890435222462095613504106248122177998265135292222843124059128209125299522735156507364970106684570149367975958548160782438369013102776860354543251850922877714129472551988742182913054629108785200369751856157781618293634644638134924633281481278478374193827330282011141471684949122159372835622762363171189084979211585290289879549749137464566655775583212312854988735571419828699758781541106293070571964072714819319860591330050253867303587945684602172620597313633886126442415778858729902009325087923691107122114540372050700980095480575218011739948761384597188307678894278541844557305070140294732129596475058504259966192495277474108732533994969445395378313933111296226145595088276525633243202435496775171050988774367516975095918851026754821610411491056784630082807421515244721395566853347637161391477024076400098444718996787260986482472937699242353074180865445941332419763627249219793856511615066482295803206657578819889842783124571855089422376302689736093118451398596713763579612778590292885534542600858015812633750631300826882163475038739471503870844231631050597611858324035727139736255394291786115038041118483276674823906927946201907746552537453212297414322764165327214463463884734593140957537784319320678179182628268863856520117392110055689828406354734229241255708345115032548310569062971931622454859687505571922079795024683134632054698398469476191547357260528647012660592412815812330965170401923486064586639061315775567878714537932651414146916045772496905706802034773231347785442386955575723733108967194777653956017188354623345316773667584848637348114626074423205842525184628727856977175630771832821212683601621978582895592850998313171546442897515997605218859506279169639655607295310799755482449730541078793919437035695515454002504301018266847535533690826543168584078821447464575244354199050898500807120311285312090704613706859379595993302819924703698507678254760968843047984468479282799385248790668063781105739795616210561554918641637232402105846280354887041118299375624182522144717507774603154951638141625390731035313965263406147166507543514629009172043482107685959520082581986638064362385684051207483929605144125013678680518604490252555662283134538490008981452102670080506610518077512122242667724566136608151747972581704196915451520346425746497986579397909244439598320572653565754999690122034414110209895735070902160645728350814222445053852307911335723408044991134732809109106516056979496905299408386405770944906221470206953167267376907919674119468141224439175990194821145349872220334786454208971684895811450269614935357460724861853927986157141058571212233453159047721749733424597345578248003535479361676960804752992845799963367601430523838079051147655560708051400598276918465297757954151480051655827873391370733359424158812552400870810021293109839047047475017175322895834845608990825955558564811104420425241976004421814603968162514205219269819078733921757837998516648492376906293799755826164619529900111442287031170160109030466063699660195559516765770911269635100654572342016962524715378433082411487613113025757573909303627445361778603505931620744005418713685685382756892323644163651974757235937605677596991164470124255042737861816146094568754642135536126484698789845061743001080669594891900484712360876720082001090538365878894746609708736545488424565161267131668640113302095465674346701397468448935637554126247129792377993678444814293947139415709900433225382371640778026719173742128500508611006142402252951204908457021797391383468530551754921902945626497860615899242374435030234560741179402712655680707265447561928340379201533934272294608860085587521346316644864563032318961664116194907792364271297865876312353286214244682506167847702150860658264642590998953288521591030637755975661972992371343324877815669610953069259634756854782756549087014958122898261250208884060434726416170333002187078982868354457483196896888399222657769306158196763673429192019990733660227010397507694762645018155893324597310777817205164261999812484887292029050273599223630894698349573522813890171913020838693985658550502904509721893109716015652814354116061868456212039638910166853586099846261921624323052287839080174065937572856008110687633806053999892411322440640647587245160133101103393579142378710586349913307164334376905519616449409388537729641176096853243760952671152203436804453494938287538897192070543350899702402927210816597786564659007700476776329792612426558224325672518658135427937039876845284654065718735745270339164123714733821712789091041337549133522827702977354561770311450452145573186338535925212937719065302111595816240647865303156473752066949596312146484500866173035299974072554906315299018117207949124358252029546312498548355473846547985780416671584567609267948238081955038515284318051994572033083698771787441985449831459354229501633558114023753653900218869441986403847952700408203133526531856354348794326501816825705936212926829126286213721451480134792595242535203051012178151562235743127074425683137779627220496037111067836875012788895839464965710477672642664748746393607334752004327302245969643510222577936377825862887431935467775108212913193574726541962690066497978264135154469230597942686776533145464923093314797677998228580474776171180201728210909342567624451259768505218076666511270173468348032986515302061763022227615458811968824740777610983515828859605647382314553334630089959786354154395684677577338776222110199524113315427872829143750164917514332584440977523957670176517813561906952237348114038860037557980849719626117638967630401281512569914057618669634691322661541654479890959064555285874254825116513150240057497896486386316372468945845537256528718431354351525603014627914669136650346078753384532236707382723610923008819176298770974981624701117456562449584946470934924468246676516581629096950909776988391837178534957489662412061997336761589869267838562876714169849877022526114114039581790634249391234505157485030703063188984065276055714740634556774837453964192678109820279569812226697057341739065876821118070580367734152486199054233264468695445586660307124351053012148941741816296521330503556673697931348200761621181010619173180477222050679705134235797909045566252931850387852196015594591291984392543255928765870793932153069618703125402979721308214158006935291219471757040365705654281445086085662676376993929759618599359759894307734960932239500728268502552430825474332061975598129735982554471063747136622243723751758440635027516245379654409137264363828477900012020566804881993994819354817780327503952145158595707777422924989383946715107114210619147255389775110553495696366962987525038911290047769558452143553700303159514175818784025112437014356444880492673823701116461311171812682258455552165764893200779738131863338186046703862133137480332527742318198117804221616741254982341765052263746070710008776099283914004246185366196883082226123206111066677819642652137449136329018348029896829175117590949072182161680873667338889850512607088112225996096025952370100602213350822923859090446909786293226247521481236453477987029612382083737166858574473366421538324009963666717278575868387035190864530734782597465308824345255216389084961374877523389317101191195104460863948392360454587855179321711253638360442435483971262889789720627432521016449213576999514170551005940898745366444979916897465443367303131179086457662545546763344571236199672795210955674941294809540910762505241311330143286907184294929291551839944678258031890898946074904651201868218435760077920183400768070191207982436489453573851555534552624145395837232728583860641284653648491605375260707775015940034569100815632946120610595979058860636684717157305264509743857983168076990322129864027816141724592587986658431019668221073048888913458354740232710259414433546729565658571691738523046412772051530493202972996678791567404402703706388469346633136410404642680893203450893419436309531263338657599272910434502922816361502546723586261721354392509851664587768049570305481919995188914858744800397890490045495449855378819454283711354875712293932266554651402963581022234611508291801657377532613135577184829475172768701293611568250221163704711051905979783411784330026171419432362871408782708056137188861339331457485557297938652830266337049229303026207410377203444361432715047858503688113813642415295716719264763010768228588749378662991655654489951821443491052485682867425170815111093880704435673699171521169822488358934440054704205780066852539418968110399814883131200894653915853883261837437064205527227885149818164734711665178272472870378847025890509609628424317939212394593067025671130174879387430188177511736009180317515038366602209732757684306529887888386318422830047179029345750063450876850502806769419618656030052976584629145626700442082273759484288719467703255136932551185824024280566133628817888307636734707998058604161887806480963746298641201978050995051332959490042271277597679486931451415173384743653424565527333344701847604570753826912260957159514445739630387210389928244885672158667078338026745292010253698352543537536244417203008438917334719269450814252010365298416477331734209674045276981204734929336501692560126482834136782156671992104436924968145189237231836228378979903516952203477299712497792129754900092044535581578451904092758314001034093062138679226259970563961946072589282972481598549461801720873224287116469780999830569102265137323338306273520816907491431759500899316589482934752104711699792975702045209613849271875830478930009084905067277071704778948656053291434062728058966344986074983308063983961333423054867864754661071483295455012749274523590732863407191498799980724864529789719767050128794349302117631678472583493356495897013246266480458359762399906340668714441878781012738211105592707199689502174386593902110821076090469257398602775445042779868139372501255342906818413262324219353735923624029833076827184255921851202980506712130513738633109538114842405392424189500964387734095176329894289393328106666808787085806832469311540796551895342207684429682403032746284003901639116331406087742507668750346133401077519577286961288185934753603406134104761233885471609288496161542686275065180791101458358367220221874239361388184709306020947208141595470360597000316154295024151589070284593887761702392847432845800707949981086914455760465047151959998597704914928245776031882950655567574545854981604343976987278071127368468150344033588289625196372900124271383496471621649759648676205307504920438609548706743057483654640468870658614653757630103439232736151855956113779387403281442239903371311097844505907475308452532713958380842845688998113980441972036927676772547582436559305536013709405607320166891449765060966414008889603216486019425361198883945285903511033889992946625083553405485493058797388426406531422655115050320936131487461120127956826931182198896334666978815749615894985574912607900924627651276415608717762219237703846235200520598431504995744495551205670241138283600543722369881244852271892003700042030698796415809491160487034219711918256734141528784065712789518470800442537413245840789430341923443234510196403763113692184972411972282960951593081231035424271450890087084063199873675030319685578388955741948093555063040546063760724964629048032510197584132534989586651685129964795356780952687809995320567087200295373210152100110464554021564534820966704476339692413293152904974444279274966360249774288927360678998917274692038678847273354798119880259674838208777457867610103490800341708633669988893528518790109712264655369633713491984948604978862347563687652299272032847093084404721216308069126289876624442017359386708115689566539171822754991773763882146203525056600623448122492583533891827392567410232889715607733211570700928058205167534443634745627889783782076169120889064218892553609260954408813042592212644981410730018901137945455388026878850245292078212099450371564708681516802354904467571060306000636439013256704100067268189120429354246304973961290562092684821772545702001645030996916267683979253333815477756968569200218524544870737321696393430985410491035802399467151578400009422659826139678887601146264747263357331425988969867366512636618926680174959180226971038776507461355540444790171191635357657904167709490241886720139404051752998514673007101845077833046753600842384977383553344924861304013011003740191429354411612177722595576022687898837316371726328466424971542570021359180301713248302509163433676759357454496974096902124498991932035224170935923762332574389877684876555013583341251625423801443619618660765102734981748989920165549532765545493910515129165014085542850334366944697109394048085440065659932935697166798542824891523326098996267052410909238134745863548012560101042772067353518906990403805356143017074136012291458057313669447059927004322458914215337738706731854733806627367591065266237459666373856946453976741457658053276322120118253189504153641060551985315705306346604486155632144031830405636648642528434865245616926361992655227897576381243519738297677917163533863893732171683013340722256887279458635113995552992134777848230699074071779194214764992076505989210762241914568078154404744589963096475521463008897714472260950105734534245740972376619686583096400873397005864078160438313277140214088747679308555387864284137969851855923006589252703667077571895892831912910621190672256179112509986045571273598699914071316414660410314603846858536803040276857732854689451835930684159771947753202607159152663258823123160355753253173455664768405593946084494864241227116392194940232848857575635355862211096471115174818990684737853414723302010943670851239430744913734718786150995774221996275200391818470597071138921509797198082369675896434266928813880133858337114981665153890990024921028593142125973031987122224950481348932342934632379390607325112109764463379839257271540318369152849905804592533995081111725496230087957620105975048038574812284149316734898124157282481043596835006729294282204029417986863974716622514397544324851903926774732977551762225763239098113989795987286679958448678006592076200972409757743527553174082749887773093933175857459987252026742790911900492188580851188391725425357743212494303710707014053095995886571940350167260076177811735550942491881991599486341145846615094196831222988961133060930086822488396320256062867622775966064968276889680029362660498466212565763455787313950361498033881755843849745464888287180574024998393550145503349788408186955460455171766221710801113365711785356908186095246717554999851103034320932949785451319696617411563976824149671584292936546049663213908956797293462237300104574773430007305378890857994716072626504970386108424493371278122977132777018301901781246629151715895287012554838682045503549777287726490999457351118472200650284336295157756023344311566560880600397617257975724192808976038305660442263721807348061501964057665104230618836231347999667110718633430422932719543338023545382991868006661844512145394569740267858152970172723752499749490982248998819855645432026159929240613886208107340749580165328481854835322027957972956166003187478518231308401237318716760053895155701149564423700388219692752520015112105487773182790988771610869229257928227358897108786633140724216862266889433099633840891121169786274491904262395242737855537402254120184456081939377355614603862152911606015650674314748615101467975184425983085969986744255689564640787835782091408962598244623886717531647781990918193974914644809173671043568429212824471701053991691080879762172332468451511975705589450887102693989322070203202911876216834471035895379630353086206428485579721231711597320046222745012410419333923983439957080673111230281023733627197018372309821314028420670151094288544546596954478849659086053842975921866217979540800612273782290678678280765544200733207996235758921825176609246493125962870097987214072449148982548939798948428663727138883306852083290860046717214066939413779385679966409359514800212372136013338228301024389495544053827103534556282113662040456033813387816372035093796926425546542460294999778171186507868896765975961180521239489489479792302262399765043768196901710365164881491374025717115719090778322999998595606161230855782491220141880825286478627776367578648520447187579158919276440467754249532810614280140393718103026378660165501207663341694009429771583351878989369988253327508003547725234522071789765620179172960396413545846324441476615096407809930496671074523619047013607758315046361733239189593252605840477170295734214594931876588131761612916235424418587000325554951592016988826645391520744086344191226592995734930272189260132698443412487381428032299820661421471938616264105316148314116811282422758036355975789372977221199819645894064015085480660519711914082610904337355501540786144000040794424803623856598343565268212169406079322542547130830144376423281712337211920284970700281476494714442919099009120951747453287400317801036536145126917394261390851381172886538110321906938670560010301081224718684545822151485241671942054511750095487867757712133757016997960286148749713260623978690751796998373240039114319906386086879759934341586413524389822809193746924891128216708660100007361744379509660897083842099200850825071032149666720259127590132931942650023593421117739220971037213774591259248521204877650077081810054792582195048276783544504299241787649062157696805921637262664883738215751638072321692103249413631786086301811599489313954652698519488203099834211668033148880703248380492746917515387761873445923529091173458497696465379984579832026411782652271231071445441752298592777594349413470350150721773250449845898860572771763276310342026300769859691805364642433206922384298536516322708020278115846054505162697959657370121035489455931690741388963326766685389011512038121650032099499124289301919191244397537542429212835299215190970581889876255391138590124464641407134066640286487958560380272464109867864223779148044459817448700323115825940886435173211878730263806516183713928486415176267917573454571815042443976318159050450355072307024845591859243113442110885282874940433862676780196060981332483477107250239552565928670215448858165921053624739200108779302947375812241507008892315023708344484765091779847548949135748505637868778821525315843863935375789153239348624280561191437494690378535249810075602287153596374831201934997130400327437641156667286357664098500591453501845744895143470886760500370864607959205557016951078734941698911710689291518967794532559875703505091582843616160293063873902008218572460337035723262791705697357983323693417909153958249825426098069139665910356912363854795325238081496188638683076824028465471686637733387636003155399822603425374412221009913211228487380301810869244334048913582067569968728438738791963907829817918098736155676137191720988954230274093313209782833326774953277657197285590488446143947497220297862193890938493272372717016917994383423894281747453043981980602073164021410386190099269483003833853174966343484105988882115537354245388356935204808419555569749647503419325345410515034235217633855847341832713529694468301473948787451729329171406765157664352424651977869127503923664725631700485427864665160839655885720853090699856330819313181390997044133021815425141817466414549856916429782935090028174366433151989954811039697405392389485807170008176302018500338340647756179057192471458423039750814182309819890709470299203518564861618334955847297026982603759797366625335817123245420169580984210110500465397880914150458953832862426683072458032031343467829208833572966849268056896969644669164167164237833380561900505138167039087898736320076158774573490314739056308384656441900145657337341054324963936515802676884829253846708574607187659415577341875536723178117205175315498605520238096180456820697948934903164485259395318603060567488627055596558461455386023660508703833989399990634163597083167926951969073971301867752104405876443229243172979771435890771708766535050361237031723827231786625923873463517843856953128192973366002965143550748175365600054806779778284722691327282800323798483097730808110782819044008275500684124171362619180983686545696186165103784164764821289254021569643638433656431431945000489755286144274588895078106062632857906890175042141884825897295316164826468631236359849639741616353235660814004190966013762374605562966771768526219877528670996784089706877871448820349885498952367946225104051263497914351838092876202988502416630092889072741453179844003921924614576520959917179328477041856009145198646224610272159360668142501963148045575107901776307805306495653387972469313102904081370778704598152243823769924708704650713677209207044891131106693829828999627371397819753204347938422865799261763200892874837818693723563116328341213078205559113375798520127052097723004984669833110116055272528415839476771637287654345702159873125425426498026199119490092185109743256419011618579926646328060388152145178387336025180173484430693267669415543161790802232028186108827691636756526156552997573133965541864644497334229993270977560247260029048012508670552967732060340418303561007020794376086956350381043149040949632074488110824219054494947579489301145283015481119753373980437000556871659512288836578917611422019369102472609272485324226400582179915835996917450304267041316109400740029669279499475198441906314919327540616690510298248249844392850631156507078020104020037476857246883968661737160376044032982321750685740484120876933467799864096871667563404193034835454500886442336515446030565405259128544036575215865941891025829240490820884262832514624891959457513799308730290205898399808941519377741900883008857873674124734085820264763095444336403352220267748489040418892620273751597301162784660966760395386805230883175193165519087339981546584766824026051342635113939012430579560083928056851849555452008848960257153455118267856872491540512499499932134435099473436219437622035647385711252480011145385434056877383062198148401348870993014935783675341509176170276967723296086174207367619220611394574127072857681258195227727039640313957721053554572447542550084495857441976923891362642826699076185432016152786917216158198244931870505995642547600118546004683284057258500332069451543810951701231929085347270501642036501536898880789351034517333043624283633402201573158588544798600989648494703751793712460017195578772596931539010646775780128648997147531874495934548717312557982087967321337067376911557720085271119209244143367404395247292330028645786406896389930884188094892088149891985897353473072403505711103160724766891649921100277827521618798696734301256870324683311247319275621562936983397666917582865617592961360458604291256909189593615542748797377640074123007923554031453261359275577400536936948389030953427473688353579140754206640675083649707990672271316325858452737232144980530733253214723252389627331081176430554420789497999654924364415780083115647125909009899475943233831549722256334029665475074225097129400848985837742006264071334290168601585175162973888686539821678263416903474060316706847996425898412151537777077215209077197712997739157489302196342867487935981280512134061526450998962127937421213420898903729361257021514526929740991233158399669115213100818769389994055779354029557850702638211590194476948928679787990202652275903929860190742497274065529807691844356321933141946438919766448158146923854465242260146488925192217977405090012776636213943970759696171508217862930857801637888057393488885032967550099095172983567708764125902717732769100119258731385144896342947609267753668910323555526704501472078841161175023526486389300269473377999254098214609578495513583191706650470543208437844759091766138614747879446457079755216283182878775735641677192638548014566585526583767323170399632473471469774883558437860625762210306263261937759322995895141503439427989529108830022709891778702583112456410065989782361874404371538379639714301174353698155335754441611277747819625394677556416223500863116363047036993049079575908684550480385776924123508355207914718847976523631697518910572127357110169656825424094971794189569831084344577587819143660595923930401629644896554792239140387238917009353078732137130084926502690878158155391221931172445308538423388513011699877350869756009987564528962380955132889865413170078188013264013469077885415150795027539691831846951195916872531736940978466809976707780105256102170183320733083470180895908274976279794009593480160955721964983812616274742843485364712415147218878931847262038964395075154841112010352274439267070172054929912704682750144813926924111898321559613159266294068645495963397607222729711273695970046061584972810600385201508944826383315711330287780574804347298054061649656810808652981786728918753398627363259548617024334984615910991524255573802680767241254817300367946640174648656660292252617038614156224387055109424740018326313260817583489683436492034453343666714406767646118772574777309933798807940431377907471759250921660242899998982789518909175441607088723650126749945889203100483436302102279833573222724161088065619042422824495644285925396079653942304820195183872237884161375575758921021552601662626269673095873778788069279438620588432692041584690319679516968615123601495447958768957820375762108248808382061891346825646403599113738556403979272653045382106698428893784531110889404801060404840917355109231452130056141601402563607070938582439261347029748203694102402604812901715684525104468986017324520934658287977881944988851620381370339168353561352013126743062372417739083297409234563220880787852072230931710274893646910259209855177903011873325543525793235634589070348437382865842010812919611282020845954010329425798369699310260279919001037120863431883621056125607003179223463020661746542162619087152748082554036287274336542768065362253813644528588317066604071996450187758121414666301310854104531259090581039776131492449974737273179047328336244842254741300073513663569215816091793613253966117882331219220153692417423611226810382139075208771998131768633550608645866570011858302495416357412860251294041391132864830844268198006661642908241818677574930921342148346173954752537762705616685152405513124439407172724665135382881323956825553360965275108608167433461604256557117898321125794204822317444641596809445705030229266651816462842919015389315587514868705897085850482562703177197253839976446602884626486926452895190475030592318008005323127813292881237831425857528153790900254860831890726740567735814292269593709027950702559788603261528927006016086302704676225092444752186778721801802636287956889333430913026566023275237033546642895302713581857813840352611940954280884612335648634387619616255218570257977232278726836743645928416619929693696540217900121215843033710795954130586696191421321507307537764254964296464706436861531132976896962726112851000097390810671685066315499169674328619511295889924959108671538842523530671835128279194799003990262854943165223015948074130329869998593446015838921072528108203277653639034565916964004816869103153671417041178497323024929526137499315434483551470294025124235583849575672052784459085288081690459517831663989135880730023249096322129729111714289298373327354808359159531608195158792416418754669230781599080002596083005987522766266679177396193708178936931367915444495825136439700637222353618693867004238481393750468644233690070604068951395231354736391995674426529294494047839587688535584730173970497854306624206705287685938498494283711167799086376192300916673976954312199408889184806100521681512941440836344219365211617133544692265149988110428962283460816794429820384138119726896817205986303317026415103961532372868093350122628405751953611151947555197901268848427072878658100263926621492038988575707141899399056210039320308457225290921618212294532187412202770162539362104358320453159718981004766991263210214946381879029744689054846309465128287968904020094631490175049450848769416927548927315502020583859360614419654715538749153740206231849396239575843180418798197495533717580657718265009986586172522303698516050088907925044362917080889648580433059776677717485868166865949737494861025765972317074929962354377525039095986611671221727418798784257931085379174814237403501119382603252330848802992517143879791777068432110080256280353323506977283952413356203654757584129425336391934643655348012751776342143166461570069373106089191516915801281524169651073923171346135226124286654251581675324301366135210872469369279204021673220867916866203991598765826386349568284337230076516795013530001022216748994934796606466591493916961430277147116129382943196143446825765170892404669748278268517854282522482761184172635008806394051593306646826947317964274056417905642864455692683823590737406388839701906492152268815115709207403373616718254860302687493845089747527645825835644076658649455086116820255122914310992572647003054155129654285719905515562166994419942729062041192522264306090346835171164080764625344513413116954532520484848294251104410203378636745718452854421275618798775314718419222700601435445317920789157608367692382941288767146581563215882938249174277058710584875296150584514578543934947294090711949757418482280046820008503678090849574320822683387231397191663821109594057175373159742210283627153365257929903590819221851215890755055489086660289203747344086654911298652025809283941273516883923742867675439572036406839614232838198370799709036503182241908980672194015406497454607402622609775862805781608269992393487633117274721488386523457744334001941457707754444136134551929425894262762332487908664162998039682727696225835073306774728839495205879074948447219119747069218173468530445930723273953912644460382047958681326024435320086541830740568956116238155995597275614638742150403629928434645385644364641560983743349429391542969193066568355071603402718800984140615139559627045032569161684624800535769371543698631437610215165336426535751942590897723983572491620495052225990394692503502147431070068022920438486792772749395479413936534782038331940286559486143866469584444193197433144702244409094444477441143955350304353734945363094470057870149012906657686359714254897880583034235426696437392347853175228804071843035655391588113917002985430505199841270206802624140114489957646999166667470238422666007496650411691909400731516549163516784891439725891415549282307886730068193792961396262914105980390859356554895416266017207122971526701275557871263226756914528880442556197849539528477344942985922148871768878853400316317514487196200309307681477385223045041116154471447555645138295786582832695225254093116142210172681105442473929064641405883736332471325734414932598924680761082754450727917768049643269137418145768145855902927931269041293842457309331709262811021549002769067810819349111013324671488961128781354650781531071920089071213358253798125362979324539408928151304740902181643903804742566945914341140905115550302525486584106367014386933581109735842963583066185723015172098632836748498719596835120595201475916976434187603825925324955114357593744545521227578576528459213627436031130264058373108159919382285236199326646360498317375248004898785106957651291014719404548087809110743599440029505205784596956132349211953213410837918629971931581757285118021681563328920535372921479073076557186076446119304159280170445596142776567622757358075784742825364831070997901345920276815172247843934289651885751318466321739685207109124688073845494917691516125894547128488983872631883258384208493868492619840408350976496141279185728550922157503993543571926039993187113102298939007467047565845664299217347725019583572381057621317563103452540133486893871447879193653396745847644533738154981173432784967489938327912318019512241819448787217905867377863903291215307697074973193633128282613615811243286918619543574881038737843105240487829535521111132512630192340454236970258901014870391135716443065653386459841953240740988400213645685876210544247662856404631942142168210476590134788278965791377748454392762047463270958294992459103322039607911378352873360704908036980979586134896832935985807499109446707245135555208121295498201233614974731187155770455524044055780577759651046515310200435333554789245092105139849381963940354776982849492103979119877452203538061724554950481833314466178491822257851197211920030182910414832304304466257319613581912557776350473402490960702806789348526336985286819657776673732186406143215213848119571905855889816999323399030477863121559933220730655761439849463772687672701498831677014561966839063172461533824390834935231461377391551224574568569555348815554665099982605467056192119892468414766892302827850806060188339471065890581468131716049902567617797997238739845649836446254642822801112959564662668694193470355035793053865795552882472274382348964080993358118755824926153997409306039775482609137214354733827638731965921380108915450561928104970663895980353148799002787354664594537409748655118153740962902147223402199731680069799732841192858750626060122231923001971969236748215093947985581455314923490917552619817267283546563738215382568855902021884756973169740328138426707410475612866682499335685792791808746121344747562584711846893788833256328950453872404826552467316721011026416838589257048026338521330219234513953066525796740481183064963174335291294641961686880828382218957567175324595899891864989067664753992271714199475057637595624602294271739341569192704600980150926481944716084414430403517495133597075122167517850696898610152620274334504262965620984268397997590238915274831890450811902530812613816330709528715608076186343676468808759304684547939087292905597621631693713851081639550578137438715453428783890862799855632097272737697922216655694684056775890162419883522768056115826081673651618385618963198282878745821839007634362702052739094429864704466706881884776573980155117048791546656479044601422498650149622092971002529467110993675143998528329926710858808813249971209262740864160985899248047485958606892274824263388981716984407949263963108385117253561184079539517278994639760899434549284247164531897728012347355841986734482541295162070628380070868141971317621130058065085181505670517873273679411507400026781652731608405877044306702399667622263186281055224401052713863962254037760727810487299229781572519069356334349129197710146483834936723970013655378564005092932413607854670300313074316958938606881930067046933393666876565709466916246380782308747971166273020865710610149522539619513747016306735023150448000339091032736949300739875013276636491133514846166550190950577249898177069265866543498308107529885241593584542338455940464665206802342730102388792128785900417819367601615464970766855964390104912070098269445489366114590601331526817831503213953609803799249337114466916013706915979478976183345638243945746402526712369367579938694819449712980198340966200575892118349355113625273001174558888782991254884561019285193914208461182101344931042233959919435900935162708753632553774208072951357537778914486080030934200754828694501779462271907886901933646650022319849996042766487237275732758131866646213860211389398841362125535707382442610290014889731819434780020909949542220594044879851273961540210994198034369793767850708723187130686756483664892126022137103821154763349015825033538479782586926132269749773860954583247986624384768161102389001891398239913377468611052885590338339932965048734637259386018135771189023918023586643489332807070138547412698867534288107207049541542155896002727522409238650648465336405529776723735724724257685611627557697668405456713973173156971841763125379028433946875748654526770524947070192335053909560555786028253955625858226912514171280729046374020571961311767752643379844739627530897284736353107916599228926086848409107633431115118039358958847195270794110389976651713487814630354643160572982704094245987418382561199348074603403798533106112301668514108109280723600591961263988049089987727481935415816247808199707714835501104913428179967059598812071787777144794235901570432294883792195669839183563058081575887927919438727304002013549663730214516354969931659716977340459279924165815129217759877035269160677855113412853105525329889281724967970862388328700298975970966831924659461445063667650517550050377081240283864029112431782285307422354825769576285166460648626981927911281681490229372924677444750320815174695050041173060928510317669686635559021586901780755766967735740564113153885645051050480732154829717150137121227967336825419833880334138937290728341102910740490061676601284427347800664152578214274525129611179251197234422936415268923219712760314787176725451362405982801817739807840862581179103401296320853401196825808054848823131790732648226012596130565895839551922457697011884129482912940417957440262125157669119746836238831747415881619025860748345006804019157032513881532858691456800825377864630102731375593772667818153558250018983894136995991338290054954503045032419323941683942159793361966277712880071079965390949395232265058426634889132761782532533290901411165811496310245338876807089615261530392524599507341196300672932214430055217543844555115461163641877831805630683709962190683039362300090770163685977676770388039443940560963263477712765340495789191786489291744811928670646224465469028135249590791867453010023957971323165766794326653695389448232170807196425888080038492943205994860906628817740747569141961289062816634366784934973925335038503796483543914009088666341694425893126448308698740572525076128178153478252361280175364556131069705648799782694886196206308376778771268662935508573077972111297444673138183072091827873681784769815554978375703436921797367038657585787376628098541099763839324285500200953755048651135318241138563436141211151609348712507079293387359812926871988228156596525713967981165690891290639826547492807123054734277662477042817649959412055038920896412280689055724276599593469590912415179049039652241905633548145258684954439260579810108403330354679007597352392914851204682040719051275302655434508736126520589772608398481896781091902860471967395407172490586226777246465140856856993175886900161317171953362232891446090362838634037871093893919069185409532370440201112595927588214314427758768710135740145454221762646628983642163993690282568501211643731675225968610388401841088915429971440803360344764767347785537518817933871183801266763761849715254635132974950149106255293185325240834647443720928914213365016173826382033886292561769309647205489457425964099873414415032245099186493265748898968472477843935283240480122558600674214718445201954814931559771887422001099603146287233162540100310812495309543323370812343679512138090253584694641353085784545149546796022515067744939976682849087011847540700329402301866150897228007050349811505683298153480379184792354991198237831256267651354980898988567166957700101091157610390065108005116147230264218956680117530843899164773528905941660333792202658625627764846356840868705885864035659454908415816745220366620738735386344042876550757935369069026225188653267040055646697407705315681520989624587361272518311820543551565641220226190380720766938939416552980657299442873138264296546716660435621061913127240190213197049057569313689532641954087048438946415248124120484749680907724407201750065608022744022490437634437533348121818665625351538279460136843500540969065428872322800995693672324044378177698454870828465857519541235762140953928113572728917199114565749847523173285316919754682745434476715928092164490069404098309267449809893397015421073420822882123381392086516263383639928104985277390924166494967579426435680573400769645119195635104842242527275930928357270222475425511721071839743007637926477333577453921314374765651420619304547650542975777279336986956860311014381968518695136027201225017253500190001247437311883132885765827091108853490433170661804365560552352651119146046485846839932756623250508589643637143078606867553173289430579316604747501256350780300434753568353523392600481316047176202345592908840401112267891365576621809919307557083598750466028766065381489867181916377346179685299539056875544182110487155839013377046655889409334578782024305788822117590997728026540665318328695727255846060010168959836123806973958366583956741254917872642109371744872118702671625008898853477697742442629222658455946858983543288457500197054196338601144214017605762235099971132286575381217384791407051362754250051925138881335194559826778972677930662993847751227055381805227906952369167954444800819408167926962263305859421008359455346953376089826190899203320724648671222025133307570701250452859724166089983859540797791021765552445653493454159709029724179909025944126848772007619334533959333316615919533708932831542196211833748035478564929207837151272737251516742580727751894419638095724844720070578886704229624061658089504452227621077815567178173430879044223150938943772704610538918686657733530675781177646984069251903082646380936560809608520762748652379750509738538689392427201800216414588168524072127730339135865385417532224097413235871626497578289375817095058027960450764718338290312353982514062960424921394317316547218429857064570431227817257422316821948893852113052330645798056874168715613194829370552335500398105896890289485376621427523238450387440258074281543720044374717522121836527021765252904964517454867039837395898145554258737004079624671369273350737314900309170928471087782451370655801992410469388917249991128570894766243514288891706886892512183040070511351269827979612760261705850481850938228879946014131039541180836150005971428425716342575427059638944950977138921996095210990769758490446835228829058203082742888298285356742997777052696181283813010098770742583269081418173524379676835316734205153495188108571442504391627617771922203312800443595229812156536347732865979139969185777237507717368397060280545451729849400535254592159605454537304423906673083137607898859036629662371145346204185153445484812670847091859063175116715811313504060449305970669787691159116600658853756878070270428399829674854577469412558795771114821937695456131288794925105884121170705658547908934104332907520510631241881254270289145581239025184750672994859623379313281659634088182940063002980658931940731068666850241198060222295293401514977644315068517904511060863649116530346899486325216758814077394382822565251971114624970884411996877398232197927077271117800922185364777150209652215177124965944442984229460303886668388216188540006981687448186973164962271987555117959867750509052983618948453322915048024034850351744328910144176376191058196681649007328367854267079752415842115158097666017397881355360996056170375555340972103502692114734562341171847319941143802376577654910181836860715344637372252950527984778069470867954482533574387767546011344554107242961010843909911264399812296489480350650575028727333408526886246582923686244527263230709912340951867119445905224942167860936809424746680297164716806642095115542240911915944600854369268548045492636484909070344653484274373026539891008592474059824378632541894378102832614402091287448907366646243677037247972528658617469550244603831832055484327406864122409656619536920552262111828262875494879876601628289856682719280549130746643055817678363588751160288867596574136805185865999460188836203596290830962028383145731033848038204597539081775933203903862109192818035705992392387131110115725941032271810757765099718417637025145565310703212223297885541054011189435660636337924946103935635416064140185060765790911874054363220566459598817398457296774212194812324721442510062591495002972245397894226048986625748255833850473700837782446331124151753391815428376375962779077577806384823897386641759685231445793769111291743746873279363522507275857857550755855266809061291546066801170558702526140367818191162726307779096125835699279126847784719215337083896320222448806869929000748671814064343481116447462996926713594879113982984547511425078545762842895511699019888913893137151270744947910321431509114194178917122563807605135826576614926648920333064656618870514191809015659779243308025838088486088694302970409234633589930805340377286691836050249799743525208875712605082962915294807143793709989523887739852701631763590816082929779407431313899252904802044477814675281758452540758204882535624653773916955000958064516958659952991695054368796896935574109021552206478743832463699948000390240575556985070111648145818929316558015320249631124701685463236723747760193048315506759251504076577224116958060157629032177822940102108741902770732517877425096950355253573630552174205380089424850252303763985829251340252838208144623446658941723058908796743623429611713160134985420201238276927541059515644520384546710366184590080859006392628339310842276204047792271545874838175068962386732090093315949960333706977212973811572129284236334843656565473337593075056992163461152101951471145322101631989054506533477627758347687349302955605109849387969452783444112939956977316356590500916901203141808908314481010868325378159589093637957538269860619625176435400459270498866878451682400914947495119327542218091408644602932330305056175327735843090266289952383463245141583266731570137820404928788091753095814231286120632966906247511248743643310226024686491674285291925957550533755473275997375858460513745975921142638983307815815689723888017055694669958727130066308259561648217734167538493238760722990741392977276256171939771671336695039591771632838390740163084569587985369038795118338130056574070144119983103417809610093700400338071291055553571420949705792538675911487550516896889853613618604534666906580602067541525116182807290108615373407623727237278681481465813068437290261168908690955895454712144247681814758324244771344318423787415588103573953388668570128625233831871252852167293654418434865123241727929103230573434974254275272804682634126283704994904472733086793352938874044593364794930215789115834749661145008193865783789011240180328407792082185352607648302298585001465664226220722088592493298731208927784832508663954477213228769395767529484918450268103908786096435396209498057868478027921275660435206904022536450429731384527140431542300798480366163181144323461906401146370153824436423122407991227303757775521443572324063713772892135135800629144200896551530019074950095318251151126679902570795447617404339847663306399893544627510595014882506938064786480253992807765176236443766606176464998310895238073604977949770497337094772078805772017230197999420866106437648879961567096670115708291276465947819121735626252416157834761597646245380004849386968490749818566168480619081750447679431262583025764068440640624879306934703628714365638119311861084618904125904992795094481832003943879304212944852381451339655266981173899232552784191473418111947959998020342794487669683347682428695562513525528700796438749715385904021635652195669035302292633863146692032939723487093866501139405331909066051756983863216835353080603562592910537141932949663996442423440686526876994431417988648125356754308902537451914591149292024523228954787292161400887727905670265262814523621557403342013499266072558948383723244350481073351508706367065929482976581179743899431891444020641947903724196148618893046980625359420245880016603093384769183188988307065965759415912358895972795424687460431377545572294066501482188972758775064137436127189115014652321243979949177870666518244389725770885078433017738254759942825066276634350791712150093230066563182062392787241661787889831664891508225439700678063055416036135840452163954968513098014865573245683490511607288468021268654668651685970232196079949501617873061909522397662364863089652369384379047048583379178905831082759176403036068201576993164994454284367393188949529126356566092454816820184342688313050141499710847293869777106274073033394617332902374564033231974195550092512837706380083581274827137764711691398749929991217611844997114853742802158004369831032379840738461745729665124595064429504066471768922356312110552498630985165739458526740739525619115133011207218642789724717005784678183857098399942674749479961482896313892420869462416273580451435564193410844746725684136309521336121540998456751291764047591349634047180386444209303697626903178624459785659774143174480256414315844396003641409653590062735514423297556323985269835796283061928138765988803377099533240446780999399898310340036269846128812392514582600540008921288161201278166480733886572754192360629173159334806191129232235809493030658325357248384893574362750325952671605793250926345713615323575706806612136444531350881568424288661578210327630760788809412254398510312146595714421284247470442039582019640284760359605324341240037869913240456056580202927903872621835115029530423622302523421813635000796085179214140959661591274578070796558924389964459823034308649419427470544753606618138943019674909656849584744180211533322981217154483009048362766834561419132470659453225010012832077018178857848886920524244128306292903680597320051210996780656539722684933859970821121164806692076084597089186755014118548497760639386395265434313321094794452827039799183062690624647528223153957720741880075987006010605263340701023797185939906593813960221629489288834842732729903671906526754670534797850776316740681380289040162158975443458260378320326070875046958103482285281273437098936472123921338392910086423509600940087378601321673069029894219349828450907098597017419942920281735520759672286739426867425715394454806140932141727077014667432758702902566944772527189788187271669844981116294179993173251652462595722191304444116519055135826792855528780312975366369484842808835866513006969662485502767271319522416486205373156459176289191892919217044109489015583313639436009960028426691636604849366297834604938959908539772380029383519335835977362502615100699683440177279768987949654814234472905957336714389511089652782166455457189350561352219432307582720933032651141685633024571822319729832623018900492051531146299563325250281135216831635876987303964818413128133822626123335113349667329689276286469233777074175957820230012748404229387885806606462370717825926180515200302842545818726416031838677306995847540417375511096520792969805591262974622932325964467349838425143161903754401741039107226778781196626021641094474057495757306976046125218261623103318445589833874837601003197851195925835836988496257824628265626250088853251168566540831910243939402771958481632192890771910028115397687143263867880259632414059721348169740127548840459965811153724108446464243750317749126503862540498714891924062142751524494538641945499970570904115150596661739734635020977457804011764706137996545739369831948431231791844865519415373726883992918244679460467946345102252549186942326543000863060192597892831594099877845246678921050921233761921184312059828217776727370497070547931306651621863198080965797316380507526598652409197210598461406084776143706574757650096576847285364128435563912809719657640393767224335607561161424326746709501510951203302886325089243612059467435432909106998781588383165052126727665230110613943041751918270480862141728470753233652525846035478409419267760782957050589738398692999953392608244231039682252457396578891810719113787952563366193247489618859057411188563074112305178007131737815688502972564828642887914935432250472173852303866967392287358248645687654085338232658332623690344707358689678955686471149078068932866860341450695753832173156142192349517448446369438216111647069751984674228469626499625722413968566924791741331063382200778457003179685011831960914955422327263572356289130564948833486291950275971332897331392389420364809114369313399742820249005158198039648557072549619976691539622900912790774422962604367323646907752944757338174680043960369490715284887280570459893457226918251930120484163069004315452375248309463120858639039207686601423858758198408369992893785076190035668015278878382512041269438193029987069564497860217860686175453395719554648235238246326660462878190035259347776345731010785943778824719710718185313523185059299591796758563314411128934529743468545904634005387076493376237021821606092204771353676258702884608105793669499157342063546925892782819344744972459776430406059502535875208245274619088769026721447687449552670288396273311948770489506747720725890593937933468613003781821642596582930899407003747606425417777146590554879522136711195897283126414861122127474434838903283031600227970344807021908847396486140343469245363579429786192331013893636785553139487553304827017371393834669481242487619224056406901374803628951035582092419762961209048902060344934385292675173433292142800849403988344082693172797272217541380258935603346374828677613892637654863504608444204967911434593067020669637088846613100670601996041575223759061779855655656154540332106274092072456146412631868450759358890066209762910786420865126489584179170902674291714022403800544604778785378050567234452133147716991670018754749396543503066130919132204034245524896756546429507758316970755638628377760137219051126094704440184850288734665172513559800508551247261359723476982970940256164495633606482710126710097192737385368283360424935707210885007076122240817286057226405869357936236498094349591142430594088276209788361044642645967984271112706212387181456940552244105850740580799714689469235919451954704105993402167630690307578475682793899914733967951103450676838112640812047111523079897667498423901275344289957240871269460961180670260622238136016476484621335217921465963553065987970126066454812666282677237772654622512322233149251885533232161847556796837367484374470208713716630822826882487370102012790380004365756035150939935857710802796283160435569217757924927811640017849185496721555179894515483108804793601919540815065003290383274015528672888096222010834480366989700727323834472658040301565980589756085819280761495053819570328035222567943940625889532173674124336545954954993482950312820151022554836924826924479852348836319319713262223843214934274209030613248417458805797194255411177183567030970610219726380850109856755461921287448596372101437723309439012834196776915739407528427326696650170147767674200775551447043682098404005677047325809049578906834172959146575043905732171291820517487296125290955575341705436049981087576674443304992695143533068936066316513982704304195692632147849056087057727358879324048322406034382324975571268570929954458741898182002222524534489743392437047117073271163596399333013280307444912899051558671373160514660121045086673622913366089517580708406408544777440684181091460148694493055717093960293735230829296489357598778266897782314191512226209175521641224039485649701175177504251734891778048801849660562627950692140899597941320054755381074125308213188478477592829554797638533197706941588105572472734939634401894040435665398458548021691136809428413948418251170034547752292590311321627476269513941139122783416233403396817273188335795353487232287815434172083105972581093955632637287304696465915339890117887135509763123195580111529923403220134294305971807609154728073798415897740343094031209961060523898959626540808819118230863954572215447693500586938235561685091921569650689667368798112046681680079667793920583590107895269488116066690475325928563456588628761127392468586675089922714495246402603582184166953031995280030691886017019770653895316297977727139239282300697625842628926802826928123791164881289873059241259394681161845557198255923298704323984843072018497892667995154631044482797815304146366188673322418457800230291475897064011885893591323193710654240789188662749894167126183299712045529783643727516429881444191977267580581825816917484361762644156689494169234721427958311910532486503629865154943986007946225558365818324168769393171589711686538116770087850304455288073968049960268156206973424173790841051096620967618743443007533317767110508353800194834244568547835339233402429047425125807656939731557185479961008572674344462613896000742735011108390817732151870187821413301317243148234666839000048478333924697091512600068198596094981542665959678620318425411778810295413580397371196073305043738945872793035755408939355637310571217433053298679199689187932982577549907422801268732427037936874441703422982146066795169666017769873221378356458093928061044829955736282564733161580674829154091554796042335036045739302310133222971782044290142098507600416301371180813821281722766198140817002818656506837023185814555633219684045951632860216708190948924353661119089738663597823655379548111480805355209659651284282339012214684116346990626362032474917535542722416913460402033913517738867488035220709541488609203070680595982338342114153273057850334757432600429095769725746613799593092905894440300334408183352946696919133174577283365676772775305526643882762881763507586757457249863154366510492238413042592845008788018640185781141003961287221962118419727937020658142795407153988759905895975152878740830136756605244402061045484557240312152030077677425374523663849534116689866355279369508786465389136700095290347163638313243945241852656205842390631226704935337600753853832408822180124750416013238340617247478587440529704583162744980505952660039808498427474561604071477265115734536261338939466780814534244958724164280311019803115883804418626591529791469776399555517183689008772722578153243406377888903210203395825574147345737862401417038667499580610768916393373748486180617765115850625792646559538051701220266307813312961394348475786388617856471078022968019255042515676583502638572098578927295209228568631675895213836911119964162165976007329792073825656541163102371980292073797172210229608244780569043444841675654392723221242250684569138138368382099218457653056738235387052156332592719748376982484345575938956090350930882780026492963108152261165594171053250955197066407317944505169302828590213682122713858205697327309836810817187207837192948326443009618452553038612639685409516223045810337172104336075213654620192410002596397767515236546772410674923423202592019866049599833700478867565989920824877010150365659482711851058062382954477328865156439834384224901209437662813382494673985013321769689762094639533809668585604812321089225154073628238961189552160241682079159488452915646329223248520989431873724802644685733098387862911360266684434509151169247638530489278602410436670678008808675552785055858885550788596223899716616568739629566078359681259598240294124942852921950183463975392602036825718216316076783113260180189673068111078442996976594135855226181111405824848985608656711685383382368747055266042470799407838260749717272485483396376588630885405526766161760860137042080442418285694398991697110451134499382680497310974440209171883977776328802500570300984251244695677627259954595886695284455320169672416237134801123448248686842382259771623204993518645556864559977273390197577262299934038948990173279113824456013732995732371657481977944199137638995720747459156383184834972013869504274356782649693794316150973429523018964224860526265577280514720046837521394198917879372433357550844907530433107926466819845951739139759949606978496217287381887967422685730874104344493708995566080460845695410348017091858841566777618353287160491805927614602750997390683026421880274431353488773963381540513622641328839642368359420416410051644994995539497836031537673443551503545648433974685543481922133921094093867476313857343885153673064200201068354125624001004370924957180031803014570249472987614147618998980154407701714804467458064220171823272172893019354250509310207599027907847835451675723591597408884785519186418747718278843483997824377586751404461285620556920213097108303769022936722225797964943528921324011283224278481054912801967711272763046560732226411603482293927637449947521914773221361538875303959125440743709810368639039214985080797753074454709788105437140688200283940284745535584949944203366552291275666603268155213622960249576206597786817719578943763822720168522746588198268349111797939527365661032753850369463275838108983826379159893670510271129103382928120201443772065383847481532094859744185657316538609239627245414955856228423196773423235472787466278199520667772558552490451423246706023973384182791850945374306730625709482005570188075335924573305718742494099970108036469141134788790539238329496654918184543245941155034400260785819671197472919216267745091823661190375146253834696373959377300721796806041221943688128034672948488938154773057816053851890773196983639436275294200821974615029492986771423636735856679801295827463243495553040486408637705592322935569172519202790098207993200693451811838273723384179529747374994611657215183701290239675188612973763671339622695363239477421079478116426385584004239103510708545669416354458978464534310375935766117474164686199841544073237223408455821897630522496688871980700325032950569633768942627269399083364936990300771714469741186283262696216848025992403615928437251456625941226473582097092682021923575635675320748578958529100355608285535594464846364868803702285602812530119588797912709119551172354652885933153359953612443962012607527345026965328374379041502271616856643467767412267906745227728424189433346396547901988713181172172050667107722887574901612325697817764346740450000283855169255506943908460764646303697751585532670464466182929027756734200017225962679613282326513702326704637849242391805823301905784019896527263061564200067272266109985123055229709852399194797572564657931103246812662982578096959331598488315283263663884698700425916565330783336567272084250880915879473495610083464305437179676012339958410546996494854638272729421002260190270401261686404112081761986330081167066591362092946822652404570499272175484402331713185370639327854394562656380121410500359241733233631221667086602521598631411845270035588583554009783700578103785800859613209623593741480108226001470417954480988662966856375108758403310654095861089402880822949316497942880534464181700483066991633045449292689145949898320324603551806599265814642420406953595981473977720130192928291763244607625831815193357988552689479128774486253913175257146699113091801583510464491509177973156013050805382943202627935096922540805223998711521041087490296240619098079680998593892720500593409649018737684008843779409778501529797990027953489034528113043641913510912669644168930146733285740558619308626534401135828360240753947245053428289153511973355548071990526252588679446191732752757218388943474657467100608515782604966179367860636329634918612611338029656031414231531938404585474055808225643479734823786747410888279032188652183050867629931867510874892925418607718250770125353315788331959065229349452099386360882187883495817725100431851143060021223472729524795018535261355563172276625956222214641720562745370191123799667708192952913059560976574687841127785294642684095853821765014676600197477020903649079096621854899309288586475417134073897217079115895927572160378873258265442162139908621728818471271458611429965464307935409489885595009091636917095293076172974520350974626226046709745754602046819434975269483612958282917429362804849635223859352719258144754252984002284396136341878753441404113689038412366248537569300633595784144958508519206253863130695052227073145529180885247369005990372197981776564686138076956218707688644700763659426764622597420312468201537529547150456398008793269388349500868828676671056191823498773717122971526240452556229761344400897683614200955938218305022653168092583857046985386893388636871804417645472396433582898952332691503777343168765588229826121869722396489848598404951410681384393505874490815344343600808339953590120918289139593513668799512485159326645995582954944249044226025142152681132033425257112525226118302815865718125612040518664375166264572757449806024127995337932297134956066423164564459836034438061341857862593565117486611370887788289818630548344737156573938822491947979047998208784921860505325188736344108244816128682083114707859787473862348214725971719302743618534668470564799770937445066596645997207637588495194714583207318603480599832790706599962864958505698426538231934396627232643376056162028563765216620703960223571739602966100911264826365071225039691165185847444349042096838146197333453064166500576743493674023435913638572171310716405906565608704063332817007348045771059964566127436818062048685661895758911789547854846513946886980172070555525959690373244664888631037621791688592721352673217095708694661500366056295452189420201167980733565655159366941249881140700411780230509674613005804823437677427815572486456903684923011420315491344914819225750374213953713913471672537659208250138722601640882472612589656942107971549820014634583784969844018279358671212256425315823148225140415647805674925805869889780761693539526494058255379769200522798268568669981637355174889761484430749380716361513045697818767609445787726826104980088544670543907981599283345725391823861563732133058027876172730906718253621434890304310400735014533934899917991345252531984716372641507340448282902484201691450849344303422513401634139381126200888899557979909055746394519303524598883596366108353391026743302552718323175085729729840690293560747294689544127164814880555515944217586543090211548171791441653089926916132936152196287901178842736085796551473777006004236497213761363904980438820420257710362586041707906354388943788086082460168654947744236571767909719995601315811492483129725277801809899688980839665392603595517544821428631476127310410730453650693092180415979411666810831775098162461723846744952583266813335459460658638243758561877099453774568930365659168597257451617078635334553608542115114919354186464160796954409162616237206702453694423162594420903111646191564754443529046732620050512993018230521581087464928668327342114348174690395123127052720508333210381775569802702485525773604701986983373472589418487743194720304782640521524936317048325671205040955506944813921623620910075157280410758501737185196596965707797187254897827374203004659622759944408979145273746583560982722369324606885656277252145691627470407703352221192622547642290870389599413444909397965612006957834331817815985055758093362557912758205135264824261754425799884541963712687392150868164530679022475970629012279764476596426934742247321860000915479120817678763711893706699022178660946760654322913116352408525612206128613019519587284751287015188744440053422004889845021132218732392797239521127216897134541853195715522924595288086551755883789649278722001760891207888666736321997101735542756166921914135318085748506936786291910202145754324061529914462443914819666645649804286014944544843511051170799906672282051555067187128072980297806890964646608022349072674734030139379401561589292367383720855200581878083278847638295407983056561593614005848303197490957621623552914262982957762723016911474714406305257356345617682208438186820805149193397975684418041395819980903384070849287558693929014557344882202156580720622332470212609132788075680407834059340890900667471973729114107046353372277639023833004503762601856320598200788927805992962168047276775620853751465977904780979361631180095657207833183373950763618565190694117159227971011120815751578007845712309832800916500515643230873398022252517477550761341835730743184942017753445164436439033910568896461085296086024307202771329780596042406490927099375085010835027995912639046291125096930203023993978731955802325440627949112406227413327258853117126140982198288912094452472765995002404123133259322284697471187888679857873647565080916335838984707191133087110237621981382604128720871417674108669477661035943016561167857525442218201013955756003916996109432758285289211769777905000704482127818618804652525154571337686811092065518257025317298789909583641122893180988138864533188319042531060199917659862910893850646791199669600647126959476071469636976743370743409441003119659730038060435521504826040337709873654630439835044914556392469292935589448380741119666400580220906459279469161028139087047048984355821710123985274705724290873467223007071864633438678927468741128451245408004694145240907494138193244774376223934807622751793077540403491658172163703621893198913961509238791988784729666819509569575629427261613601042430162363690851930800297940848529466814317400881313241935033574613846935069216919028593053374616735881657679997498495245460018251262332760308453479120103655586901658044901371509117180387581025341673703301905647639039628591449378326507851369528340137179800303835835425154104993245194859357210291677109893957267471597006214257927127230635257115790879555282588215928187634465396121033467097996116153344346421644457673483681104586579720193038071513499646435603599559692860573536524746851987402578612963096474572497282170942648320303533319107082529583660520030781311828984602976635227098584166353882865135807221699832034989057997334845015878023095081021260645477501662813246388034572920917775100421802460891926275284526134262423304099903837535255302662292939833442134810392589994757336894792802389927955847886640529752930289870631071794371972804142280151642696413177215275135043731545178003944532881205701147913507515965376093094808298666097929141891948909395392653481388839340421918339827966384334405339183613706447686663594955578799832884073224840274240713498901323747521421708810529239686793197059303006897433499055892092912868295238079499636619516371180510603950979302451894316856590026103649929447573712667264078144137293394151974102582199340914074067074006150077307379053401651294500191939336853341548819534957758341353483433639691491409457528836500122454073951689346442732036365589744148538076726676894070036360433888773882546622994215430426761994423640306994984327532942589677807035886858522826038943212911231488353608242255201788935100239914080238862898130400987452878156859517038785282197580762022553320795896461966971947567125629936873795421952067451304655367165892227915089911944385021331428487467939353508244222314487159743384946589224429438100838279949124038843436762787849030593398417167984987637064820382866232497124302717180943069685132893698596130093426791822285803677359977732798879340876536419613229855623991417810068593922491495531804739183227370903477024457626338546963709934503759646901148846769899210295533314655290430914958037289711667710935115186336584068183433426176502619843126208408624058835001846464388165664668005106583065337091065380812114426265595571895815507529968813933078751819210120232745735519596584539636889498599059485654110727673895843099983649772010363716367698452103324953766688564403634004857343808460622367592237050784749368147809089216166891916638227406660582615613938189346068242994769897128219900640663201844921473583489981358073544548132274710206220994071171713896936576589189887104620755709997450513236808212304484336333206629891603205648871038139964109726618522923516075609212612217619030388331511842049406461598240517036256324137166730736882484862074529363363026150657955436927351393799400840321825752734152113834308896986090663718165203584555975401619906042577375106480610729808372353011977234648843732780980091018625053656736771816929518956032762899685319061718045581106210816800469238572097324574595167894210162222158920552374632520336849751355106085912784691952049210356518107549017758727423700156278501707168171681277817526652869722527173004695808998973564875607705910432564251969662492946640541492791528432835572460407720264714710942197336267027978646877813145291039524876911095014764059221487992709728903944390377713671388365182829805702382391684970323977780100782185659135236934179213876633710028752477320794307462242096838418581425171220179805029607955010972815253598608962174797068706458476992283440343876056770334432839622231881406931225294948499816402502992013051830627329667859915593412948051644913067485171994066520082619539902051994471920125017715242641565060890273700521764242870805371571213215161409172855302981682258675821823485445604898349914064569137414972676705772321754233167729675156728300207392613384511364126628890287734943391078838363599239901658839672819272742082708992626048335608184997801773087687084912980530433456003231820513898377452619337113907871011774117307034272961583340559332512960643912893905270249561741302708354127831075164675699600535149108638805298179272945723867297373013147064987895382235999137033545133845000280239336237111515073864942059782474172725701355751745538823304234832757361874234266150980607334096483301020660894004337768508841849427781553806476748566778754483938420424573215601276058138082295945411365940316763141511175445307610062781719385480157853433390016747251695128909609190316197598317526652124533316548122574815658013127402214172624683122665479007011602613013271496420979111572856668914365130410203430345139716235535297574284196017482814192399648062805152426073769446577696670354695882512139606636839426685465493747040047429651231787419781773875385984277296990513821825145672327645054389088539862438793871691486237749901669539317264798061676720571246813367562675169570436035463189465776192062323793099738624524942887673313585213104373697707499294851076851158935597735890401180497633007135315177716540128723208778837844187006011975638392203250574714117906243935845355610181048338088783116697490084980474240959844255022113093552991836251781075321207305289905818011382463086553474213780839486013520300733791688204952601356907273189514459642848120875777820688608705670771327424598161764656183880609410802850541279808358546861135373604600968762979079977909571686066243463520270232859564066291604671913251978289810948287684380757713728378399604593688497987919156934003633701291247884752339131864887021718088354410355675435156616222802078509671011829568155110969210416732273364890121094606232815205249897142900577762086002494781935383827641921563941729399862592254299951811424576819736542257435095073131978816866160460096279671283981700931819072977360544943826629110938647382309756940902513709729304641256827073669926083369745542828980458495735525853964846697553111866608099785277069841073187446805611324523709777389098131575071222448528131708116684755358776803337621634655037332815671026207578345390385769880018620111611457973922093038156523492128970427356385447111655893720021552837825043940343960364350896844549747823042133431099327942496915909903279039120212455716079605703152282052906921109987931739343860069394752312941046465295633470443802795147939214587248600615305325263951949192103571964870998092871766003828661943768795398915046364567931880521595298441619874645347309614754412591299502821595142681200826381167406826309723555690508661822952214402526186145809878218945696273473583937726182585265573247359499018131588329600664759551460247474401731207836051989972105038043721724385808938256972261469562251749924962493817512461865097130486360120862717078692395181280885914587396925994546495143524326293681812189278020273729217855698972541616484758711214325702706407735632182559098838056875975877379322614508808834181297811555494777092504999897139280854532780879604191854976722767823616658439104207494474002987935049595265130555346158108264569213616774184315476708645830264590535047390577992132883203015230594436480427845958925910440601153639751220817881424973633135192310584082212569317493254942555636693567954072717688530525794326879592654350252902755572565848398777982672010806537069546006560921632868013346172826409359906054244752173027670757560420433560783259872199371488226354980010888911829553206727593699732715296096657034202751362861150832839893397892230111079861442164959030576969099525536162665930790746731427995692582540404111547327186508662377106404808366344389085913676371574483702447294917036662446693504405253069360696345639964093309830509428353510261610602488867758106752464643059974883921309008137506752446552946648691737121339830608809589572021667320738989769583476803894129069072808583079273970142731219713932771283907468190487242808639452687651661916021212098711779919146018519074029976106564240320750861653995237567527019349735611079405731664974517282289592295970750968423909725463633935448650618564821198077239995711547186286988011446317333885040944493658050168968190684698760284088287892044256185974799907675256718999909740337941252829838476257893070920953753951859888857019424541657927134640768810888415690422612035354484071967831989781297790387917090726927303865610236910570898498702414152696396456631974353355343689255983447640198845982360702171735174290058518180199717701894124324709498695893151540301480406985505119134242234657799540767635256267241272636742324807676310530504492100920978180819400420994434613787670941500702347358953039099294520185204697683445206422814320267777232370623945281379451285327834905769430984061405926632581618493950949794882387274257340561188439071759842265209242758009500450153081380057147243727385494435720088203326985605596403293022345617400120680107930266241717516349914930774488497358899485834518903805620814392131596325797382189641915184847604599085205901158987019886268850139466434976955548537706679059584552303488901443411556296770824335386557639022508241516426292288839035148657345135625296332108923861836742277303882132979743578746116748338213310901167049401527911030909004662922054750615195655314404939453373349306546150498638166867090392068937401565607739939044172249843556752563997531035699922878055798860475537203871746200449245409412514117172799373551010809831960460937678557350534214858231878563072013127666645389034893752270424207753577735978819107776669031193211796381193982870244302801537330175920149445687932703113416410157087713608181771819743443077015915889872762305203453635426265813514334798053131203111451905342327325458742734881443339201756293177016426696660094570837156202759835083194712008619099968276022366799553840014768820541844399615081634215378249112720084787728798207855833440930850604630297500908228640292677257790902235646105125252518999681289678294193445793497550909310425558726707212676101460892971516062130705265716337351808138442619528302812153211587295877188866825723008838685174929701256699267013119735957101971113345521545228348907719515155994572096075748821861606046697835288338539837754453200102242021648165345530510370318633525342412148384799142599893415597308657108584522596840998232411777337386821971467561614790673332498410873527409414488155054804731498573339338220603500565532709031239767979218189497270193052586354061724790868778735288000937179405105975501108393561333722251110813484764412763577476016375917366971859764710371460595834223589321882780178177058180120275573956465266863121040638863732075982478678789834992618996787461012424842717165672986460972333690891495453308006934703147996574559230608678984306751477733311364185228854135801353781600605405847614685297464332233629664147041177455867665630913835732768956622996888890586468878003797843100217707876665679492598404172169662657276390820213518440641191856729855219565108621714517870787381521228177585460583039113963664686117760149557674090179814442609299018520000638411981091851314022764723311779882264799073949742804286764143926852231014398978153359522071121290844632998848710158189224176468228350113961991360586425158126912696277791128136561649274499760997438316804189028262648009429525902170601064972879508604047074124872859976639389071083385699144626364795763658306600854855006415506598493564131722583644786851674457827269403541860961511481358156786289336047152340948747340773705039552893505442826913273552544048054077555983939104340534091506875093307139715099839538468717919586484652339617538651181108737748811134784265969449064607397010526665575330246536592006179151312393821087391592376412143071802293534083267471911836701929092834760903386137095447969501613024442149299799636744116346314811303608944971625026103884349458510597806415489782395864194227686786644782294775467472699271492618958911482398384260483309018414680149362316984493305134808553559987850448754183903202520123910609800757280900377829811888898694324355265748993686438059088313977687336936625961137869154531927009468833681714717193996302395610554706127723877393799322959507269143852311768799616441313045333432328365186473770692983648813978611210834965316045320849384705187783623824630831903541134156944709440760605441989694819212964846324058332594011816158663716959213049100676139034291467662479177435887188622338416092637627624215194708482151575263550270983546360569319129613530967246137691615473607064002724933968607582102763268346584171512647653836516740461517472184504184326058381509616180520446296833646608585233755875070562094671094741726891616132014324338672295238992814975743587382053361206174089486893329759422250531307460318403947400799786881768746946787504238199464305107212507068332298556841455570164412839678875925447729735820389039254013963944050156996416550894133940674147171545094496358203999635079770416087748127183845231881187075835935974064215205092498726307381781934651534362744136262695368218203288988173803626344289561908247137228582799605277925487923983303015843617991246805512625155099839955800961315271424900088286796234947868390850959141326971244050982142794064749436121601684919583620637251596533594510910947533525115535858156231334368584674458843386684429064901976552559380618714650816348925305892752125388071026871200700480713159760981917013680565912497759563600100883309266496277397897031147376255202680707930956956673917880687214266458854756676061823015439981664061219152988051407780014073709890549419811978428913781212780784124470558380134911291228658303376860126112911195655109183555016805009042940394135177616817639640244648455063116118894367087917109136899702280882444761527720018368985143593996936056756222721207375483948088699181052758886113201306823235595231997933982675617866839109520403856536562163357472695366574201187314272481267211764419409938740366407530281525102372393971365192992024447776937123368410321300643644538399702377900004925395357891818093895275632856333159738113482126396693121543536398918869337029102274941130435651830456321325651858060304081241277754343729988418570174927465043960025361564582425461019255410622448964568384306945434885265938812849574465344638606059001812283324659882893880926421023854470770657485020799504616186179418032604184721218022742442403964362073444494616930580464938377352181242927356820604375158871678647590799158326699545357572658960698083184930667070112060764086554006597933394836425887212429184172624296012013681355072173234476108662882165282762047403391977260990235096502023951316776182036644511398020076101520609326503379805547333449228739440667127557180404046480046382384772959414266297685048309490964687741642453085765163314269535321705151991671728139566484285270536382184808529662680167489620047910347587024431621226531617867091395792455769883255488598848797082445080062472880598873263059567834100591968992266321956230409198987448721564525502915519056972552093172996967053351706392132232096100315352761555781534804078261395080420857813828450089577903907594858909213121911451854610075798055732659317018708734985492437472926981424090178718772612391429823854746747731748398117053129413903483855774695702219399611654074352542648536629718993456087563371339680869897987479861474790864120474205564090603828190247190780192075809739577801852663013218170153705989828661762510579694421016665995718174429585159671144701346669679928086555599940063539809409024431088023013824815265700483854143316975448016884538569296837743980042048533809217420934677025217079009349753580888423204281959567893551799533378040316865167384327365965056053412969036526323470670277360556427916859051002693390930987466986071307735563157721432597831828785977191771170798475141924565710549585243897371378987508351879334043975215820872142720384533899116849342277461782426610305033908021562697965887906924216508688255300772713410203294750087626098521693000286050003243417478633100324526585621524053335346645430395421005612252057068789814717922334367770493393069177349570077515699038502245265088461633932487484545301834774108498402726808133253281188759008675137358300391300524803646965604810468818338699364853408882788007928212997854157323413872773089887116345235972803291868648059677044842649313836129828944070858520668384051235631349317446980292905206237478303394867093595821959208941885244987480054469277199419736625922017713133007369131983364663133278902910626657824130627313450040843643955159957773348607691254615637013759071481777114039329772398976050866307593157054667597826477084232479325627983155857454662612376064218935998946944920629467525965178570704913089317802284858906532738313120571058118060884248716143489280268086758679768775123649445128747454112725077020061299359129930287291966893776175197533674768358703725838180888093139625545775407979719768862991606036903354393659973217772244895174108096840077093932411038978493067021171701705728698810754025069653690579641261873263352769414081324529815036080809222623299370042333129910723763350263988919272306033303859294048419917352478052519085732091799833552744912926220498751746534817240712141019457198491903020354487289828968777519583931074279566880429504417997796873193491803710625681594220645145605504599987241374659835524183392273617009112286353695208799062320374625056300290028286622202377132987882174166915778894307574880112415660931578552408881171158269236525528670789492596993848497052168864974723128267242894507190625253520151341642138875545651498262932729415709614519075634813434322583518165431772309339943074541247184499256317239748372347813991423635114596692127071419820413677385808711075324662406044127228954686424617149217738925559952935847142280302384237467856667460503102436063670756128044054278747023868382964538086249203157503447067496729819388886464241285872478772034256319887463380140519536210326453118745658325707760826548304910269232928879946928372733769714129163060829633014160183824266591967011073033063247747419266788933690703113847536611236095746722195216209062475776748947534783394664986099044646273964901744906723687700596512925754363320618973172574303562361492658622870854957339095199875963776303810068767247858527560846879955347023565938082835258117214973135519075526681574501579504287269367188870996321357188456685722540107081857397451919725781954818274377285682736029035043287684541387700484196515813643671490073547678183967142003520274554740110232844542322149099491193224830259952949794004668838723435543216935091755561688258789771204318389230601134256130618362190852346284562847803220251789576418936673121750093165924663015395132512374645653970188054591247593474856063952302156037911887972232395418137746304515254483289228609202171240088247752127276059777899837222147122007679970671070028542298687762891027049779265729446774860817670624826890915755069465909815709873165167204735716861921671138989721967233369235247810275320259081073206513703695613250953468953717842357892224351737132604305534526025829382886456188723400526643293748687576466693871311090627515923030231777375772882139793408417875519901614407110109267887834455498509882486024310024655713025184661890903964683066957399396408750966334233999908056268753993661774286801127417634558639019593071231949532918450226062280599391846753693706132151471235275189055101424789857080329732952912919632679698808075115034673161365254822028035742155570663124156479941961863748453150147353886866170740122277224715418629866077278934876629996349045896309526687059679307033943020912195594096682046205058222184228722555072987581975538876509672469372936070910861757765774346523749567549164175670120755056722785297437544794968766830018202061147892069491592009243394804835384099571846876274723330347214651003373182772362278477708315232683615666541930019103466412881050949406021936661957319286583189999028583672247355393844315796385943241313375242046383981100866306677023443052267653267337668081683387867588253751574716847594134947935972079457472894110934722897206987854915247840404489616533498162330854852819564228323988435838095637343563414466508267956841259743475093837933241477778932568843646601419688699155296427174175988530569223466256504365191863316132311332227550652337260676759599913701002297893758832726736709820174740173908050948783020522869930604169830808681648103621322548663331658016630571704352902984513922783362352750408554302453063099734942439364504886571950042389325099955102047884569847334356564137890616150012662470082354202176427297974488149476587290447000026925841260638357067524107059031442924459915536187706502601674214234533584878627437600578339326949612497891695829346280537639189563374598053197089960438771538165133529989275752956423546472801363420471016465189072797723190313207685363334535335991000737932649865769263340072677999717997683990130465572482356761564103094725976211965994561971050679851136099252045501875225442555715379318152525639488702564525813863698545819555245211441221244266446546863277938438572481373761775540686678676972718511901279602859055621119966711615436240436645629117526963638843758995753999285563205193244425013332850944289324792792279121901115832153339986407262256349950483984297396423759384910267001317103919449885738352193087527658232548909870858673606562607962210403659751428264948917994515540402981891156704620663520075856421492087497919775867797656911279104942920686794321417150244775165865146914728646464631003470844697322325198611239911477453835317420198549826823328361445031445102555219144697682725060424542518286576174544387139406267910993868337997068715850996707027707913578605751496154217185679419049239729006524178059222399167120246902974061134706615757584388636492230783452667609370697190956786308440986775637867146045055744166760809909433864125037282369185642813803576511052449043583591167097388395759199505055626439323046056314066090957295392652374355487005703889994049168990765496802118192303596176402277394297227092547034079575671274229639111941313244755652955318851018966275792007602766272548025195037700725096637196284938838113249900800550773587385079892346093845318996215589616813522394679522872921800883243245934420639086098545350343517015890986950979334152267610178495682140129064217029784445429457844497680800178639611528750506741077167235587881101531748497627130818624347366019802474375826953600761182292448987197388868139363647755927911615699017042654573944339736031702645278569803796049871531731804468700660062493108356506637230393223661543666494573606893242399976056714443992595702307516081614399032873394537015860817945171655971754114667102386423101155764505176692662352167149161356408695017756555210378021654053578453550783604604798512557404064518814480203319977651700101966099136699473639064117328089147416309340849493839762702092710937913152473364279528169537795996776763078497329925823052524611114496844828677917685194223049802181181688616613086455333173852410655684458929387109668366543611304517606365361900128808100075872235432513782256233904722395647951780706606938589706131743632520850481204567989358674616974445623192103644575815852703471297189347338089405504714703289857417417802365107079059107931576832823738994203948853149790554258685879647031100229533228727088854255013483984382445279948707544444560741522638499467501936113786910633536233307213404062001762541295047587536998749662801278983021146342201294496509931825840177182012181721247404688625487815949213582310739780603864030895343787984500824769287337286279872781124370447441698709533932040425811887435542965748858037213618584139563195023409994072988293976930292938004130474871708658284030684556156296289608433535909075353871355982782289881107269148494849320668498275686008997710026929882660910066410404391900752837808805228950645333469396123305761257269514212657023647746009436508177648660162634169897179210115255442241523087451451333535769160789831870527180893136884694780132492834430697580467061097696610670076382355538687212720345127028012989921577348416037683102642777639524898217608255434117812662538051958442544955026869230503561416660794919283312196630852906859665465580975673867202682177134720010946894637438339190421220219230676821439797906406080874610185564023625575261215214313061183869216821103608008473753704275709198140187255228945804244999244366023669268041538116613313787987432682354566421395172650505828612633874896516797150532719217142486483409800743889767585172132435818669387139212386101278137048406498199627982691133804266938698879470295561368352804924676871285708886259268354144076234047737079793479928760576287036784896402273438949072078472479789159177505873818962705033569277778355304865114865991957391635453596014073977349662291957574263201745490291487483288693073729001223687570052518052252595247145337946129079978016403839075924018044754187851308151541469005109213419425156573712814153113343031110958494485853049916270992408289078530954636930044783403689349910919193085824997368610858635126951447683856916111017120031631784368391241700744149581709373653849758477615501058919773521699200741875464818673060493375474334398682341618325052489598441236112686447489116395874232009086211495595354264862923325337775158286199331159497464627550871552323721440489261828136365362950798942376763172077302606898924228923461184744014697025244698043332386163614642548354610112968688126086050713793830416789897350758647036599697004803538037200838229697938281022811983658491508486728516941109462681161990964525985975772304800588069966282504443380182286199159773377635177602697245858297897050794754111618071289247595939201062791135410505434135800475913401465348814918990528560999800692157876645844204290423826843143259147037397984299099729490638609143265317775178095218452622858494001114596971206481911909602363010444789529896162491262905122210900369767820110205387117154060135984076407600112504608992102153957750951161125622182725076971388875573829753453240790025122837111885733912950549371649550742595471614019391727878168841582541400865461772112863695381682943326293899393354360521850734256488568816027095760612355906342185992480585904530975313305190974735876517288139079012804289106591734389406891526622004411543503865696967581886204454402973171474553816213108538214582462261374127160155053789739900122954857087174568471109259504901523187703067277438553651026042966687689837638588733661198755576237529108957871905845991544321620081768328851366115789055054416035669707346622849295326323782112229501262604487279000888296787087687669128822922715267929769433184067487832415737656088138498325492788642676009866946501329034401718204564250780802925295089206091245049360223538095030599299591823220186892628029392371190852590439970814710197045843075113555387947997637925077058665945452464960047726982476381289000498757277382962740715294946350192402271633280270012919637984829328054031599677874183628753167257782673329951089209212419109088733778896299339365368671043481097165994793311156541429022952429494223143577640638834537117003124321683225422197631194234750663796345860441310312611675187732987761248344977292260886670864532673253869610556564837935190318910575768910096014232536622568969039105866397541831397053163798767484720626312531943665272806040135564968348500240661041219219302031185560082128577751563065909093016998588294036865128357365092965244040596928898552100224464481398262181241908861058737909436347250768838373495255158747544811330603724729875158123580062511250860244714243973054936093010699618360244377499925464586005018410867707355048617518793683967014710137434043297213113506514136222366207149925761901461413882818161572968307763524966218453263369234639268166239561718950560466697414255479797944923438313645095566929163928886381655308810754370210718345165212838195251419376914711126403537111883731204559389267832600413445176252783765922558132218864140345273319347359684355516021832485200994060711287923551550064625777869067474240266977439202454061093756624335831013277272751015460996117400270608092600250540552144474336735344743330530232588642659087307618830190762154028896576234937366681015543796786551741558163645077559189426517503855968208699631054232366853081744850580638451496976262538855923109712741150329018989467233417390454085615771006820665012597402961696976913876634207960578450186172946475860623518623955828467035745096188120345532545833924034130842804275795542714162230663792724532486641950876496844286830768038637106898917896646816914152909053438885731842869142116884004823167368424280228270931868779637723616990026872314557452509715055351957667096411223749355325875839560006911513597994835478673521290006030759389782025852937407608278904911185116809535627984481956971414156498130865868988425686381914619879465848704533613519565195009313089656266443424637529390711481164253605517807383376714213472318341395822436105724100384136316146191913765943264962022904658099289036868849472946328220560450002478689882887233062360357966136099982152359997375855783776945115432770064007895200769747721210124177874867047403935353527356390069363449311462619044600174034062562355546010726088796811856803390739816932027194025045308363917110373931368452780908623627305563386103791329194764579674950232811892518096924234772138917903194157950821538757335450132612063859362550202027761591520731850879541502870231104857619485594930665747075825003935934451449962236875085007413650377214262513868338682830972996533681277307408344040507776118927969913240110533015004579082475590666097302748144077983500835946229792630351700199741894914691005026074672264194995933279129884009883379954749000850399691027945969654820013751170241492846146328762836872013779881640758056930083242075152646856217579745305012625910220654279226657373433817546628425958909847806302292639243634512447167493390882319692773236418476750240536425600814505390421992080378437164114593521578297742434490745841961567206309414207707306576537338296788563115492923791629995314056638783736459876345493303894015746351826635291193744928053664803855518220114437825484366668412994742221877187667696485309020490816032657007919513951016671022535630607376343663787448697158114859457547288074955949342263097150592257134580138931214128097792209173476325184410286667607950658463537735563532107040058143498021519189205738493238718105806592928629053916999405643816908930362153125159298871085200986768578729772785421655428112560387856302254680133320767803576825792678292313998920778304788030094430223638877516022101823340528924857941855539975703562896520743729830650130818802834771877031845803407161759024440002990295687426503293907369089021217670499249507031649879940018642013590277238046435871232708419290932633779460529554181171270056014467698781149590173440233758624915562307358874186384497214681672981621643311505189512809749071633031620053730972010392386597321252480546138878076414015882323275425621350207112213078197367757230776243691363245532794048222423994501837886987381215215185214051275956570211191675528874677107946879263246583998413412074909614038023782415701078430844725524972316637905663582956241429881588624124293347815994214041865028707585202825148827834501979758077051420935512269286437158419892279069494480099207632259322707854722741308220109495030938255982121847051751054496505609345607094632245409162003790492911242062613694868312398401861562201628469498540929707773702063659984803548981900221327190718595937115253859709452584377735522390044467489933788663470953713892807992419073610422020255059390354111510664937116666088389229911772005914877512912958451346389673037933679519989135541461754913742957553886415278313026811368321758477841783332331444445190710694800603774756774560274488122413109317095186823785711997537290846797587222028946782280718607144330098827553695057573730442190286429860891760837437080409704825344018505322353768615965812486079478146582746048380578221609682846654052550219637824696748669149659486937436107100739044662400386157755887675815958350719963881262812025711791305340069535682786369838517524291026602927868048353636253053066687990198504501365012973638423000811333173702249368932780492765351617521293856475331583457615328377549957587451516255087109175866324720532022398046170858257212492096119426335315321038893541937120111890555343689629997154195149582357324214877985075071861617466204097202943299560384685557000720345001607798754459093218481128676649430109719307069545321312087075716204402414512552734744570976544351083062084329140176476220821444351955497318582217777536429014828663631264119613294152259578964208979137602002800910964361631549182488023817154249964943820119950714633945148369646366121597377214137392690628092716921682620615588816878675557471523475930826391605105741176235957744801918539186955388426260992738151039614021605144341495082440729250996455819988999412146440930125349393403595427834915733788131998209496094643071558919863254055194022740813457821559865080647023849475114939030340350292264703200657139849032853575249717895133918350103681465871570212661367434344377725424133705300449312371303525888768613240490491010579023313329731562487323580907775395606215526931762235501644085295603432423215809952084543341440604688168979301987911801449563965949331197886241348634510258960186726558496113169811375319083442148537190913125760047987135559559580970943790259339491883308430224040384726468325590992507540963859602839409991706704137521065785022372029478563319690917051896533196998548319753128500410409088362076454078476679476199704415485116585720578449733841865615156537256266722007228030420423742188691835516355922196945478333476174777459725679274677493469408534841831333241308978728708284943441034357582173658992167902794085586666702547692170563667249253767442817609414881498059911051761015621300906112771809459585564641950627363466165306404784263435014306035937046214943807143709784925556671608711810569939225367379777953873539143957367219580004273363140910245434271337302877617966081601087942177901826349107515091812227096427273575689269874664315163696208136733168603520542544457404952536150390555779098721158551838940589676443091794517179673851892865526759672526770960018102591532503207335663442494244547251285911012682741779606522445725506229823479904055866844474687259110166172075588396877108897665313748119076275635513107773082164299972140663489647949177766278375371703253880464892854194133808290468077399567305713519228029206715603409734705607564802800062085912600996077958084636872563000351416465660215225104733485978825719484616554924121570097596556508726967525335507631023743317596597041286063143946323541826708860042677726124754269105346836333289983874999610604469836860559711375319215836515280300804107199699460180315369276387929993720662041001313516821294793161511869943943488765488970561124269016490301692866781834203702326259233924212523545260083353492990119578383289632167208535672193832780486018157252654573721758029491236630940566528104671974106098845597789333827086736469792153154293430443750936700569121552111478658154974216331831663241107217323828865261400827074340510324787991578876618684264447207291662526611674300528904941585710252231750013827467549466576369288283094157371648368759269321431742805850383254905612615864606957038446563034860615064806243150562726456770718025510008756083547908031855141279370151495588544631989299274880870691207927974080068692087561841265729672381988048166370044548874710018527473560986490111498931944333054819856841243406202231409560184432645366935271284638640869002291346287924342810905333528216578508877333992619703799434783576755039777407834343140261961789510593876821518401775271640456136448918079201757114035955192615645514500721461833906439785890868196366430449802996020614784691683418349154180887935101245063350526529112269389985899033622503198295839356462081077832198937826986545292199158434158628780979852586851926813051359412982020239015105781873517611001715867360747776328599918364264724697749295451685513475348812300977598939753918495459762826116970725127540412462220255610581092997299510598910205192890321306190347602410937572503834699371690578315924482507291912010084188852256101346605747188181629733938541173244837053366238318342246323075330616498048341520803138463395795640792244307142499436330815738376352807582366837675797912568130301276478316512490879028734039900323013829288818091411557384743733098993893531980353643173957605768422578206189326984283183921434535994545290941221042788942589660281571573783619423769851374391574428795648697501291337361480266923575941471017248850569626200337517207018203813421499686042713925831882704038819241994419109863584563014377588338599794928544365078973975496215010283066339705019342830309402928970017964510078482678412026114037928691552071865109563644134157934484205228035816565338299432990087502911084859555779948213273738099949697008104166383583261590235597423121448831673056561189888897449318725080595364968386935131915998516883115747176279494681878965541435204679904642217845648531022002059702510010368243451199915222670289105886524903551841490904025908858632164314234855980831898748775223737101935161120949964797273540760231430173791481453093653265660798816026800842166517863435037256635169408001426450142967810652359471871393960423299525294097780123853331027929571717588819412070651190113324497097554294547467013862992405723930490827756411182406195878759341840452435752940724478900877401857045302652372315125474214367621866432380432315801559503973136196076460969928061458809952363056489563611626919989482611386564585913565334425777579026111555780665366362628204279167412164692396338681443530845757997811344732122464422761506630765750021119396328479147624165681599608652529312276164922353261354713011813543761462344728936302458117360025587184696312062450255278652138649571879356963915334439963653260023241547494164361088909254126058194550770890730235021020342514125298912613410387837056091931380624181080644286057726025730370122599673590681981378758635157217514114637596653433386847749376457814572947526347375569868980602555619694958402855072543307228363405536904464377280415675023665953480956608881860101604489466909715847248145545237119146374168747855864821831758661733624522232460039417145810462928993517910844142027648962993930383605463128921933159197552610830891094256965980770351936392952229212012309323085917601312306904576786922739772688952411217365771452648847062957784962713838827071876262016778907931051086158322844031216490067021511566530577647151535566392207806499199697279507312674205926868379286859116203885403186654450369933303441654910576742199109778036496305916847799821110976826563787611953311595379699390609863138524525405002735279260372679476739799764009330402682768508786193477140100439080640460155036707543146324553113661706922972091779764259711525133239004798547479800793393468408779081217627526551463797050522046798372312687585273643080873666389088548689545034223196927491866686853206276074860696805151846710113454554655161584092484424673606816503087702848302033627346724618258405646490719035383306199204171745047018827691329653148837354884241320363746719809934428104238102199011118556058445501229299028304014252639894207062427408112990479048153948890443712159009423246251169311638395804231777469341005358796667908681741052732788840217336093569436972390435289161055420076869244537073478446774354202171808200208599659358838770833936305870882261893917415165759119844203685707630097466844221501968846175473550926850106271272810315368325182858460377462766205943046723018173205168758045568846731507448883732751295189576641740033730852759891139695292056162897555693470386062146863587396159600255317678302012132262209304489128227176939595521886808457443116321397049305490410851766162760503990883316629389466133474861098378225679548154749678440530828442771002461541942823548122913155073482885347718427229463834112723642215319649975075608084908424872697388381430970767337275909921174451792841162450593859517616702895989198342198830815421227271318857295663660279124560266446569077495406898487190121900617185806916614568709437953622292419273665709148208456248098774927748589542614644091027359402109006692854594646943799257807196212421221816453333549704160799880994108465133426693096279827973550019785284734214388934738829558303902518298186881065861991426965687003813845241900481459364434403527884766731499620899298055189590601073780840351053336617389255459880577713733740588998526927880984591283911547905701119980518355213436650578467415841079590443928483607052484145874084214292763018023567482785281468052172713617197625731065578708360675050942199199711429207224425371632988029682553484111809200696085212868009607232679870139748925502290497248507557780356451025299207721540445722153915417940082619686403589601702533765833109616556058119262035299399506884299149443294901714438036665644841603227497125575534631826843932174359372095459037856330862011590127561458466697179701258083035782864252227998422614710682707981044439470256502612376486672342665868584112103785137503819290609976899670565019563962552825100768208184453100019880143215193708663337959263020599554825022423854634419789320774460776121418104909776019740573737245470428122756267593406915311345280370617968228240257195644933738707472069390192286260427704330732624949736153813761677680469717041470730369767995027532614229737437578859932946056973140308498490500782797199259423235905328289067506453907910803382983504188706270571715363508535480100687968911626593059150355452363371847776510175081261521045782560484009926114094823448166526165905730417537994871977385355723194545019799420697763646827603646615406739681266595538201268652901787001007157111846839361828554831189360083222204676154317861955164274384051210278725829020548686040830598922605708840926613464507984889850323800231814205388430103607329846421943031721910132098408183653402582830866088849661743155553328750036964516578996323593751032442483814725376611090242475562301248349640274042927877180193952969293956329501420297446282811314765301799336229726732033438312169146188724019546357552592006863028332133118333227203361980717359354767901775618892846473822360218656091970704338585202557569324356529166917240792432787836001092970272026465787417568843135099282799078472569554915733317333995315167065291469491987648477396751943748834059700092951824019815725226655736899193417314600905503271091764973192247116065641988336041005674448818210427028892105176906620518556457788826642404960205978454547140906253403144719921604669788008543148965036295408258286837759031490895195454955728688224094681160083429749765125763872547655446730483536533486577785804980392584057156031822295886286457022251555167300569111330490396849642626420059705207753495826175871901741709399322485960442348617629440017277341334809871836627826620645880581964838661254715822088596258352176072124485994986664897926159626781911835180563464094987160179377171892029295874269219592416904553217421685132129494590990812150251718854287079513995288480540526217087532951807846931466889416413550186495149915727270673794994117411974658565877841214364077959759806506965656752522858729988170391880010428883380688891902298717216943667027763108438714348060178777417762612930098515943941349590526029490153960499490328214471520059564233268216179597351684281843007936973424514800556696802518096675965669693106097396252032685313624127424997640306761994305331891334326681434791528848906363564445595582288151073607141090208910013544522859410878117842173920540226379896790955410962254670815104019315339664311504162069539529193613024437516310567009622750330018009107722651408617997772021187444390233124161839291563680023463499310494571050912720141444692837520900155104194049885813138070073887148585850644439415853214932500851718536742149769113423527478528137894962745790216708620684618825448034598150233277370972327882827786241656372104425729810564818175297453960835948096842506043930507498288563898685344126170078347782508695101199776065465165389234547460708249600097069719484582977099803446359161101199944168930013503450146808719090226667167342603808972004755265533542774158597019717172042877162877668993075617713634800734940427768917661183376453884813746530729838418568111323589983467856692084836927986294020760465080630894113063685305567710617339439492290300464129836831092876839848853368463113797199569594178563287569389837508157072256268959356200518252623409320625219569183544208789529276735518940162556181658837442976053975746434875514827691716223775045950166247263627544143731786815237711983904037003549629388488575203885356282946091062709058583669213214902145746974456788447198209342393274068504882310092198768840978142323087929246535810589001664962121746231103600162525358024288376372277901776458962354423506575047081515735416938800290967998425330327428167558509396036664770835444650862868794207073930578567631267746570002292005213342853287941222281734731596608919566913485820843667908329955117644609279277465500327922674067509750040334507136286700941749904873572892284503253504410998384069521475713737097733460714277235595824940507105087092593965023237033432495832701320918051081784911081139826204853595619454703168331924135032013682648569481604189393912898126184246814069795598838339244165653990866932186785973278271635720448136980887129310506006182397656268576038143605790614595776417279520572350026485321314374694811822902329163985907854795421945320144118756881107595641131575826107692465583809508162281761841756646146980515464004294742001215720984311214710415729929159462206968212592293323635633958750395931248359084617190099349830945881697683746591117652450695319755584910065625583807890731672662820533077265207145958004952054406551004357503110223682147859727883557413590198990474940281469036636520780120522372933180795062435452785226997785536646768455671601695454919277841583552181420052561064005187462163185536865473981317876491722203640047042282479286548060247836225413517946166437807269572711594712747854138266290861236816287518344719582834358113769292423073365127229153009329761593526494071684613618785816877908298683894848723710839880420825184034317473656126591455509193768582492654640941176661748083610438531969409093290090938326417654299693624152840300779336292126247449510959159466262496107382411782304473940848794407092534112529966619187178745436491803318504527953982288677527206916611752328951612935980297404426366689212902219771565719297527205498550157717891364626873252251922449614058574047300601192520872554828238253260243598744685543609416340282891567349271931404655588439409902362728163535665853090157972018181468984180607578269186313648900039830110179597115407899453365476692934081446347540851164743958437272648684873702884419862653066397378678302614937617502302421620468584500363998738200761572765097545152790671469659147258251560586233116051428427228833750761118075568811049451539588607859732890532359318457195367127919570837629276680324510218414834475794116966136107586702178737969362079587859649089734143242518729188701873911738023615947750153275673407072381675863736872077355208261143679013964012682746882070535165095034258654344272028720458392125573741461293678181898497574943653533105580644742503067599399439665792274770991388918747540270643624239926746303084802516122479347864154486944243697237840983379645001259398397825612533364568458310612968641834565708594917904425881312520611496940346941249789802209958436799091138575962730253973337116305732550584808441074456214646592534617112833226566760915975354378240004606841478022609147283076333464766804111398073221050654414191065812465246989173553248853738353103931032612371486828810873334709677055800548022003818770555198237171205745047085299137918025152358665932424390708619952386188691554569967319598502996443338378419404033170939232378219388158068122175015926705355562755082894655876438707614883549774768195691252762449859314492263402832806231616536132765259087714851157838870437925013278081722839292473078422245988214277638853633705813378396425204939682247313026952483949499383186514799860345655007567351941322394080417637447045210146143814488729321715678493490251692995044438237696133888579398966236734517822930007302017333877208723765185559978369197500129921327995595718727441786732512170320376235198174159398762062552687004342315682279901919183188844111696908025623991099514211190973697252708231073459081724883449116506296267518895683784628125551701401802119697482279594841282807906509037296697774932659349765112370451927794644318189321524615275321591988632643858143021941776447410175019942008638584263685973610696394830129418865847607525694250904216363902790841520308906445936645555720602572437868494810303922237231126281761728910586277880626653749754167009975143917124952559447453378655954021571244820546833616130392823599364232021356075372549018749680673721959559574081437890533436261287135619894219646906787547185228354798447237158234217436409495737654016263190666312808195514224708227993836584486541898784862652227999077171381269713814000212016770882599236833904275982721160057319578154441382712780738198639366306653552039610250714221240336973794059979276924175189613115943037595293470446891389207857818773513563623395200343965382706486894431873207147254831123814499565287020820982291187116859301906415965644472879180216669436518763699023603275532622188218162896377106297525137218376827220506750583186431308435943482686844437150752190780691029579625599187736163479522176823719724639379735472854098095604465866692517452993234797710589520896948996463982492388407297927680461851321708345632255780423871533955392193617937966287740927746496832481143192278887283093166000442456422757466524132173216277642316987513196295972600889753191504802801031339741176793532592907794862046339592652618893339338979945263554371293037743481442464600418247417760638880988160573650830398465919434710816869270494442103469470202952404930066389674227805958986234335044504096435471393190725852004391117813754653065241603662155699123709015268413029452209945848430494391351583583956139618691240198514305677537501883191064224502350907221119067740344956192068345508722327972626265204249913378183907466025299848463855864960730162574538631074953123996179316980878093128348688485558617938392157116811404769259196426028957646655669193601341668506693599091315710076607059503686952101183701567810770004902309198644966222432899760162715543994837010824258434546287692443267180590020910616986955953152179994412699823927875092559780206664123457407016811560565731260601026114076053541035513225374310014488570029146005329073837233235191114208973712477535111829366238028610743704318451696010525571418713212553827949181614220337302242111756400952685934163101817975140535358234289557994447866437761348880918398127632481761390960626414853127814524948457464689138546618157043245548523669075017055857140752795440012662293367440146887747364203381151106167898643758126811292745718156263204418497942441147895153914625179748301025259610387532589408548138753052511325429477531978377813563753577222184814494851684909051482692448271528711514143213623032920110366309933269482529089975216539376890096050198468737165405059541680853400646978659330454932665671489741420177449845011789232152971588324322434116065323572678675253855005011497284863073808522735946615581056700500275861557880747762669128855504343299070560111812934174634808026846977517268547935564607335123720391707699866127663590898576449826060991370533436045241111790500407324647536711727094232256723719046311041443937613554821386299946482040130932246866661366364672059498898895001732005287145283135777672513397222336162561760009308171312113082557938764417759357550690309669246232973234644890743303764367916287326845272398736209340088889289681806220760155046829148253231838670680046780932258547492097817457922883241335733776438945399938176595994059789053346210579896339100663660495699902218008907627499288245939457778886084519495155695100872555942636590412401800371873558118919576204790236910938139261780678942276558738319225192339239875673333167985299537991060706265853606064964548383738054107496413855788768119344945778545531934252419058265058505470611605274848495713126507785225355654748089332640325245756276395433391493140500265119534709656994519533131050596343077457274833198354058695195756497974235473858063407576974473544374067918579810470133346003198831077534641879821124375085396259766358739472145396033075096224045536121293909768663138319824414092030107441674599395638862561815749957192498624004470622592409038265093606968427612246874231373342242753987862122050612738480934948804050557005782416977239719374221142919517379862934807235863114022539213179191486915470527834708848869585604189358246830501003050170337538442034127810485110015072129156664160737454294503830741231815047205102094363386962015299278975414429852997417333412999529985289781006113973019872158974686837486359634338272255814331880504003479238250403904002852321969160245255955004653282762033693255893377468007222155106308345224763442493483491243310274698914443170451788658737838928678399267378787988101390673874856473165138885104666689378772284507165098477820971305458010640774243673679121837516587487490650935242778651899270595420176040626236700809711992532337567323738386627486963067441963494846946952276895276759436240301227491520662703166795884965258872790886990841885129319479616578197820308528222064280374791045544744375139888348514801989433530081686213484455439872712576897432803131639635896822456422141148495884447969031657087082268907516390734770352825982927770511904442212224165875719488773652602526388729578506095400921325094421090439978432390703346572701732339881573558053301696029784389568337038194074684122489004963428647423921439273089816146208957636479816543145626530792442840021163517859723167562825359762096167979491615127670369332352938531368352516450675325556951809687370560645599208222658136557444476634726522501675765993216663834548358293581086450475237884709350960440295892230068160868248757070528699300599301334422500299167610907485718345327587437946166653640363720777022984633292100789894523474451944906316861395739517292180879177438393001074225151307961812322746549291007343939046745368528990092343873905944584617567071347985270092498963926868336442592868661487927941415351745822113354204212619098803173035301906682890011928687596846305919551313634451923223579179806276100880900901276558059240464897854464510172351451341994023353594020571116694033208872891073846430722920358182895105087848650516583756009109626230543167541273912586024337837046237219144087796703652337630672758103765231195073179331207363189114975002830789707642961460790532545868369702794596357576971125548393554207591308027590145402577208458420419093462341604172320848561162804042698037109421358068026702958463831219256334365829747678731503934773987651682443622840892783372875037232220999499124324345143212804143271301635635661191511935324575452005095493555567263942448079276457132748953545800676301491492441385741065605886034662973163247606221846062842722246958322197044317543197653978294270917811375969523235791863581509902522640589808468432517404825862460997825316790024928266351139786428638991622132809283411438970897712010083193445120483943483679742741000797004400187848332336449929831176779767648763483124165588478743911673280686215013440289108705609101450222189574580772793469001174670649185254837505510512221250136562464932361359237398586003279047119875090580308428664471962499144972285802520394978407367557634141935495895319954803085397973937895337968457728426117374753177354959597386493063483140588539828158540567389071882039590023088947750467352349945060762949923399951073342411654065056864639275951579014870472452639241999160357862882588039972955491775707681986316029346542163839282420549387430577127474375788704288235405883310754444072196414117989279501171194476912079108224574664211010254856880567464935915968384612391127618086242552142950603491073085286052389211336297293883809731589215864273152862149790821525564526747357290456492772210914975880838758201268125029773210885455565674954766614157694483143430117068324964738690932506840208378450329946267637590113854426076697481792052575173708725491422904679068088838167072918411595637437435502115997224434425509198272000578476066624165747231592548251814748544583322932039897652714781541088550127198737494868336914409603646850370258420197291294882254798315635051168178505472672608244367833817477358874747768436041721622259854774497659837587858247307805000894463427885236634445474664335049698995098702538030994442990425796841373043354462711905918481187224410759699235298319731232995004732611168809634578228730191391562896705747846036214318144942732270632950094288968786894622764142912652352937638890008568522298174676545594954781826501538540038928941050893201377980276346402043343093141350444017599783540446798728585354577370934637754418442960047623206966892064408834681915563116339416811277433473258468059100705980997353439583683167441493834562103870829684879813345022748939575673731353528920542259395006674779455056005196459222373346758270957749028453651283524294833925808366290035414423086794328686637022537656353299863212343277987620621714584157824881538803334625408312641488759994125878331531670350611237879958500628533890022522485566887680693320433023187593645144043151751470442797659122043140598802273931442373253195138626834560288943407408129427053469450255617328772614248259146552366031862654866691216116384247024373263751657270936489711196765512463704763945303948788609096108846731681444139918102270357461491271085087950612572007964908043249045908903249107600006957884068213205318007606904013173728453734734058270347392967268383430050698873466781427059309406232255267725096634350212736538246923427071351497867492909131903979995312910665619080379238919660362961240421905253885307006942666140192913980894110090153076606229869273568366397656611188822828566994982533381278570967921140945724558543376800282482873667829521291730368960936911730313493129686895462662824816389654404612111016672445613635039942163268160718317294227443659755826954417587869241117036926163350378901411036605854465421844885542701523657687577821503434467659699436750577187478442831852981682704668343142218488282670039217335909397657990003268358967833183411120577265668352648356445439419978333495196738567963940810670147906021178387410570417507270820496768454177352933067652373582938917035333963902153733887062861422769269025277054770135867025892098645527739633489761422897904266467236601881516413386292043792842863846488404134253579257489401917793858400291576785796098039743805837651625991497851572839379923433548290571625656013668494373199069684433896858978098484385747926787910800841511422181632306248812842963211362809882033713069277276759838049469224425717678483545907092930632907379787168289834390182173313942556440512537899923845037965246614464720684806296216421997869928347463330046371642552463456552451370915477200386339004119712931970771965169319275964234276775454245837673889944281689936750263118018377434650151480586940124551292276395859310299833193727222771720823938960388297943310015785883923885546236746848743804624811853517905285060941683877862526643837817416075350576112124734421613008935668873112471681410984530819954086911992229469458418790854331171409161597675473240885565821952645492247513756567469752429858650268971437115155143504833908117760213581659304354509484795716300983418992270764966479428375080095800132357091324715860161649492941476673009759982234481733232918104424819092419795702409979191216507550673816326428708920417594566286056836440867134846946014053995757076472114696996423917165442617240624455226894681503472774623273540417598468653313434053879086295076892926333723243462348406521153971640459310679210577240031419450077349475751888695053747731444951764953836055230940900106929942905561649435870598272436974295226636221052228411691244365246527803360817506416514514999134218172701725997492747664137241625561737129853844003979924445870548604542274692637306824274662726192073025226485382783944626642422499618926495217118108898723977225833087678034751441971200754759635512925660796093502505103072802820639043880112754539868866560496885186165804956305673885971555935954137030558964219895700966748955822373591514302571453895010008835327777055555943290732472124638072985807064012030498300765373076707747715455793842589146171673794609301619155310950710681689028681905754606901025149265233350003347850903841813820110651287463140133529251626842903307224799915318451048544648244978079882128492867191762813525030816000782233700564232570860183203027977531431024720558618238196959825674660797251283749825109437472887549174146779442026944721112344015645481181000231871369175143214439029167759274613219470477948219822244695826380256720303109686430076087872669978051786016338396552983164346047996263120785866452376524976073029851906372006685251387286276101095144003427523898567991248458126909546427492065653124931641462257871529047160992953533901247208124020708012175246615382310381647190188699946544298036564323902076666875913136140505513990978817539983368003127171889078781432207508521658761791166367688643060510519419670113128169765811003977007333791590707059539219197854578949078617946578821417108100455877552473255015264172394622702047357047077393676551447882651163112516114188000074790677617854700833031797376269136647909899055446044964238991648618418577910605638679397075776186754123566671007678682566135390756157020604128752722012589551625551975382233905073424212845666345042539431363101618310690747571627611446858913041545649399992183577990526247172330822618981449496675960338281574959692692750222195983419267454206522766460939420035124551879573460290921382316953723939131275755222956313868211527742902707791482681886445358335616586547042609160611612670582782898855562046704806846110780781063418194686638019394605736710395713003212668927191154963990400816720472159279260328003526963596159732194488816457914148933641665303843859853502849430487840703001902897141617783850850083218928051932173410393379845603518342236304068467975075054764799460246900628130218119132201497875450038252058595494752226442372224788928271532914739136531647965342075936014390323136310536685086655816017701967961884915325286273210277487228549981566385058050710627768623455363035689935812686057926187386757401197842508127576132534871398058351069744061583114930338909192057284191015986951246883222591290962858249421908578131760800273637333979867614324586195945327011668101593434311857705544299525580472895337344661948365365528269847613800062237387437085549209760348849856476688554108138149420351276495094441424063584774566761674103545662957938105288952710033317179324544721410186015494105900464778753033730150474380693180165246890127445526751926906282594870144850232931715122571028167454889363252422450674539250051384545588273602031423325680640078687784501319369630256340031124805592397329113355458658623424958116209949143926993324822323932198471213385849389663995502620745325377061932029306186560739622119780600114814396325211256388143356515314131317097818425548180236124015166510724312445065792973265063921588573442061618800319294300609394410828992682305429216394393633098787292679508219998534790383008109674130242456240145462715346095251739288762376920009987372425981590359377966881056200265842686406947667755110664723101691732289410409188356962098993043973050666058156576381544545277966085187571598092731419128284489684886411103107102651253276343963546305250852421663784411956447316274579509570705108509890943923810061359526900545941780487571224699985535021187817831387314940886608926476054602893312301732585735568814818467285061631889287301547025787586136150920509114110645285396265666054113766517693509295089607011299044647075589707700380720170817278801369710824578105754137444325844692785152633627338830121810874062660207989033589185770550511109496569872047705172495484672224297705257715070573696803958095566847727015956793791475334912372315976975759070703694897889738936288502674952338334578945888676621273990845530255981826458887261643570465938510255399127943794898987725805848964094625263645813128971026050921044012390878446272668806186520014009927399880519133057927024990002562823077524716389589711721696968995350502659768336691618178405931717451175038141003628867328908850868011453538204190773696419062847495117755591881496955257913622918770467683102865824868162093872683526530425762868478324042056430982457528233971561311346110343059302470952790181841288915726290498607451135157583354947760744422343329456021787382518676509476936230421897631211539475151598865512071509118130286732073507424661362484425142987537273775254605224482356712966113443033857691889503973654608853654029323491533360320438067711109277838195947174383606721622851750865614003255136162219537444629851525861610752500271982415638205404785386961198707301357518734538141800829094938403266554776667604804274809307281263189157843102781597544313935547481220603072440214568822551348401333880088107966069774479460131208325713963395973789308718661738763267256387427953445354863809045689714449161380305789311029029260031535208115260390124135222133096633419425648411142238948025044945225982698511043280996398736197766498440639477341107588246078025227454876365761826914671161425295511865171221736543546171504808057466631417547406442780052414562761084085263807372385096726732398860151824807803218115192197838431199774106540049097616430777564869354309182262680064327932120243701014343779140874355622411452352296293729372968499359220851669512341995517158579125869921833698516540394257842810392490840718920093057893497468563667779892812513329109510905080393338819536300090655594394101611288098161516447001692950927622884429428482881979304915176087427458160585605391670194781987358046809195741530781078722360382116835676811059155398615479488664788056827415628148498448031573370724280181793220531145491351350836094457255900591918758316445337694987948775701198510478592687340035625973183966527871937758267000659080065287725114540306904952242199648111222744867658264227996696997059410899218775922926568032316256512854932431500055264247827704768672152177433604046173526580002712410679882363172613382221728853357775951673296033196460684361954882420343547283399570926601350022340588123523975171691523681409472447109168748001360463901478171727648544165541324129417616421972062543245797445196448318743290707749313224346349202285148563525553751886161466336015358538426331853122445654304095991187806688611146161779700334584357214420313337676333666020423856884714608514784635447210122601815853042260521553785560235202169297239059577451950401230824183190479764657045514337595460231934619998612174065369261117284085583043388036100884499093634507507054936706601459502967341562901921491370251804067918403342301812965114061758728997901333727485337340332142322345575834183790370499990366666956862761203826200344897387344999844617779510744427351427485833615655483228172768220941704886589143008842810648431261718498926159810117976977925600117896095942444386653926570215530842436929072687879583009150804846083909959494038736457604726290571440092889739074071502143113754670618050576594387108035394074955084785827831137205782589183058423333729100884092817226758543509627615275550829242602120837614299624674886643865544128183993214401040740918989290693068304762921978431225425316565829178053151337935916470946157197938346103250876200441890260438880118858712173622533929407145287944260104935818626181139345237986858540163384069151386572116500235218063909081953139935200727342750161282474174256579583219458035165553204428615740713843210561701044247361473365452725238743978473228117447047635011436171585143288850527182941948982508008349377499131806765959446881186374486458815113987464602082961679365477524846348842221456063412492429574579470123098154850422997576409836031067263518305461411302361330545189615751667451224674415441665481047639633317663129403062960699243582950311290304726348480210747971131119083315656852624353785355520626742809444151368568736308806283114960795670657129373708158687918799457053703667236804546613038764746638327707720655784243910483969703558805184968073861002118011758468885843707206976092535783564166601732730519884701612420600123321890476761013290267609901387934985877888906847583812464775040740293558131127078032350282170507021520305780305334803427787600318574190102271202533999790187271658604709105556994823970645565998898822564919239333111648468701537617673056814017278241615505061303423657996215300786104656759745922195929303148949117806267300391515186860466356175858223216500667033395824904669688470570412349428092708652844504375455982262441365072863347515450690808864828885115555528585496745046965434426104406118057686297524134074072951735614383122211105708260839827771228046379015432940032859411091835638748847124634910308532280590588379919892257168778816063298041697830702221694779522176631588761706799000656669729338521072851583705869795281870563463103609436581039045802976524247332456636163169566145339060937869661904710134544055160759749610193661836709309963352784385470709637769167450230482514487090893350714353845108244123676019878215755701132865588757118742067162358245938766448823200653536880881192090217183109036259166358607535325200366384886450756737112864503425217540748133676946912854570312440436254133790261531485236271528822323466239286675724725402706543811013130477726422603508679472415971962959845910816917747487093898994935265907191597055060969586739923119159410307490564388794564180708303413890831185448792240343376527852028977351314222746254303266326652143010345531536314300195454784237952139874841350149943226280097412879940475308969756961066902305526571155974096382166310945069521910011953675040942970357710210730233966884920723257306573275985630349366019994579483592561566363379433680265590633689735616381107738726498900171910897318101146541675647748906532427584123103993205780465916523249273086841526680987562633837248357565590805988592231487475488641076068097526555879658333818471650879684680529334603920158036702714562750279151265744059300081200259632583083668439635196454567630038005143951585597974789195155948189304926403651529065512304902445221332880649160411801028636031605595739592168453437128931835004156159602090321803799474475166804693557767206780668374875098395294248189694492092511079491149525634121640427084984266471939689105000427771768967147542974558985981210698675714761850119618481395596120203435300302555318045174064044555915153505755953411348582260507790455914334375288750619209502212095409641177201039297557840221234821302982096959839106261581260747326704886134499715006641654174631418045102658262849885691447364417470481055066893924834495191877853210522750759171285405795633749900789218571717806509242168609712277538517622729315899127072248863874684966895277452970452664851935654657609540594238091554163621327599581497235249949750318957014334878138768418563234282472203981780746592087973630533870530012966092425798363383242047303765022681007258747685309534572889647091668780167410848142825502417822686780027801154836088770062902445155179955625629829116566588533810108338502909695421793229273373999966594318829119745341159814172795614696401126201094619979223157757315326461060278100969634286170974211658209351578270469969536377237171246225758653478745063479181006405898763105665123582561613156457009757041726598153048823825963177036061871922532946577297665939523459453898722696569994358238507650813970289256729548942806689932558240242594546459012552088159702787964704652466229426369337437727842795698107587228553263503078801556633495301185054824093113086497771010286410770229128741463105203499381094920355543293723059063662640389379396538763997217933267516639730127732602318129471093474111561541564989127710595311336448900210774940212273015844419542977985802885380005173888680581898586936351281571645408050305524668571832348858340849047638781993549899034933908917021061368656774422302112306602803035994685030749743949470153853661678847921122122222580709124081812782101464324862584105487418169852178279872773327611188253949292057472613827970408811900018092797833835683160366914894016047832694077546183369183287547399058473444016188763607154714102198717269962852893689311273226537309008002688419116958270680292918073523907792761030459078109384215702318769985329729067487392608903166020485170261098772303782641320425814073235314346994601237568569639343173840155920162243550015120851047845208935822778348019491610796588789272189473719569934527126043113222746128628156626239130389845094304025028072034861665966027174822289369556688160425802943232993899990174115995651147921953173359281124829848123431187673444050607567815664498149239633178482686727098054545728749992577806312142616831007593448798777528584072827292731901685400141245790642541316272900431245299795883900617762978268096193947681252694864678431118734815005945372539057145410472921875198215576836045903427685939909799629247788286184800696701755967726705441753500186766721466475989516090752074813357045321841480203102328262589770645464595402845931676986021577697399918770391981822002446293710728480009785761693424501711420525883390583857245523160717540691299716870420894311884566533499081269306126825834142194079531644634233765857738670947498071622304249026904274022252164634475909157162494714485112152097591708797642007393035156846664745730216257395370047333596630523711125115580657660827205206354720329100960408145224511720693392064426362537218926113586356839920226109834678285689729275188038150351023318165055111927541275162146301804188597982353166290081092835490235080056541176980661742770129734102256277917649620819033170481876801033703988705640193516095960752603045806053533494422298956051659457086761097122788521160196712785353187549180837358236430904589804778611802351058048628107127433739668388056210630310565421004594261166179730596338094487229986343680572574168735260317089596649145481771728535223086020731550809447891688906737751872054156726451073866373338970848850324119500995107663141558427566452182817571769150633352418200055817407853995982231365634917877303506239548120362808855053917022692025397743520383279957604927650313564955473436669884788638347182658779617432442050885830038337356563879607847567152217080338758448874394598568211880437389313312100578587599971507485049557728847786577519170632059026688586516708194987643418175855830608233985333386318235770975072260289658586862853318683734414136315724235111720020859761105663883466206931661230785565653346909837447176830368108657105876189686661495600965291638369309973203455563649043777847212161019199977153391562812485304858523680758356173642781343432860322837428091180820799763910395484107990760885905331868264239723336170011575811604007437380546936292718155127119256496755966093073616601326925767057342875306410161650406477215416571413028986433798866609193737714584554561976791943194868299533317605337103874613032775717693239976653057698844161224742493696141293722518136164245371263514338324706247989994215905769649804195404891449147683014914219642018204663613708801062139673757870878663458315540018448955680348203674240288786900305308900701175889511796750050203050658884187640092071825217606289844823156605041477819697402111997242865575569196526641211275829463565962815508952327175854007109046034699359293261343022070849384277732262821105941799001324868487594507976282067547628523213177595637209875772920762060150846662194010973760714811276642697559823547565304218667664892647351660963984287209950559730822211777042054475385645165281243683652429393826631059394337069258199338145042939656501961370005601617530782365886559031972874867358395991714330839803395937319102077194901785147114629556876601117903389017920990542220780088007571072555300463272201664291560269121959599100149451695989575862451618540643969391626866415647350095335074106482835084930814657530937840601206577162475202027800119669300278175297754389249589663105308854183135888905561425292993868578548032071301772062885588396866354092240707386428311563955932901910811969870585244009618117656460023536556483665673845789059009060284770828062448569704529865669607438164069628764358093211722401591171124291090389716331965114525533279288240353496316071313726186836344195599964905408070797939201408028208799603616581525131794796112362051355770031374386904362113444146228943265220033315232383206694628037920206898343928185596214191732189349953247401578170768509971336688892602731393719636250938216676212389886420865214634428097839732006455927009870569519510024105667743683599859348872814169108672799077638137355428099440357574138758371417578413523112186705880397845259594054169292253322535737985779344837927652238628462309237683287538183988865190632089088305979780781895648823681828148471066488418470882748820626719805226524173318110620538359642187239956441215258836149509245279977531648942667352112542781623596637701556768070403789812192540690698677388263731875509579650092391199905207565974360088189556633941120617481786416772483994046318384276884545903917105625057639806304514501050419908966772706057130452876047436992419334120001417560005209710109433483816530484924840175190584413316572064917260950945130617388678621440924018301989920455359924295135752885585172681411378360767118332647435219780028050236604238171315459980999795972024908539260538109962152402567804945077325467600465342399173497516787945692996096531460259949851054560632912583894615551186075635056973495699936130607207855497566132052384714465387435139695821163434206122360875709942045391434615530863320067375312818757355270648812494695015969435681477752804551612936957629796288155473454875480242641062581640218592945989012729745899499600425370652681420457828221817685241795677907304298273674357559517996699159027098641231400871899904052353299967381025001552169859943936887429975351084194937760499607744997503313200523077578553423425545741620828223589987533146800634148603894959947281107585490133288596398297088305647843982893322487748434254543372679493232306593115839830768383058352828406205767195117558585763712461893322726605067030486587776570030171350504948540585273001064373922898904719775937124352322821677220976026499694439499944032031747913273276921749176924402474753711784379120501526195032606958868453797643658076710582100845073420754510485694456158307886088386012778783033109706420208646124774967800067846069806689285511669216949568902641675301949562808981677067790625846501541425558966913721079725929937633004021688542118725982949398033743654042463897136384991721609617388480334035307455759557215604999669786011352232530705894330025020945648998525268471130012374085257940837525170320048604904479109912329994880527542111253467372111930242819530638400729324352995084188726182232319843344121329437668885027845477640777490312332261644880989794900204217673391571650710792395574857498080086242216541396172753460597572431465728007413028442000044100737922524462695482374549011185097958886481516238738935114600452421615070944827323160257618109130975534260001558832955151965071702431339809530713725352850816282387616275974516030801201881935372920529986473852738204718760068195812674097552151178576393372259943815439271195970508281057097880237018128089962578799844389262614024389649959919653895816713701997582432485590849096107025584579527774207979474471602724765114402185579286321377952306503692474426006172739368181115777344962030238537012608907464551476036683666236204184635949677888513563413471386413166359546869540878889313258357975948854492902790638205601158528782180945154048934067606574362189679804372071824020572049120366897609272178943625092034292885972586609433462001967199584581698161137775603634853236736675510670691003627894925194883758497572606571010957122730059309679999223867276741190828527564580773108219502002219171772715636171742377774372024177550749195526966371373093433545906490391603722198254506028398366422963727074301937766866467776079717522529498170009799157984874548241771155652082945997281470499415313356119399173206866972921399351274784675355165865654082399835248110173513964254815429006927109164576897437102562603388590047167928703957670401297596313520100840002701272860268385646543999157254890973778033427560692552221642066237910307916506768261124975976634315688778561352831128366132984923747033168671888795412781275910029380168827628616360126373747166831076266627657640889378903177271453072449669962728236810643311840982714841659573799547197960137302805372446392097053906257011362087289642792711166169130324430259576256339443816262518138627677221718079862343235425031279285507614059025195851617744522886959722423857658530767302930049853194897261962729373281683515509244299520681978953545034434371785450484292635468953178349415471870168544313470167358355124796564127732160276740478397136086486537139968673710123305273039846513830447805156697752664611726771674976158883042399812131124115002795470127468550491815033224095158743085197563347560028081031276188436976963204625191877130469664791579537415354155197826276382141160482736584601091880951778643346398463387509070698852454212807066977760199597090817755127036420674801994972901186743985279766258080798315443092031565479699174315057894978966098074558730808061307060316466721353891906245579151080181536777807924220870003600131292771960439426994317439137758946128338893754388699388756788365818974735873317688860901573253858056590314229409011479558542970819710899044244180700287798438674217277367748047077373151998699082820826120423314979574412354510840776953368265128831540935819895680607927663704694286530479572761038982512781087157087744159079382858878009870000137987671858310988290934230588626815575579825967423243248085150804730175807590115880400866855386625668495713929377072100195335682557177504463219310873414663953605827017887292250592341064799048065690195892243167396578238027301758644383533004438453780678898747594460735400745824812514642946610318417493878613253895344209023442339648934333076324771075051900890222778095736183336616290085187117580189105358609897964110449650873671801027569943153487936364572088764173656994726714423594497212354647066445471302041276061634463355619793419740503345331693834348383385070619342433867670186061835891179114296624877830661187335501359354543982224219462997826230491113813904057559944831548402345218137499229004895538773219996207961231227884570201101534129180456170561197915242043557567577288843715261180687892537071374750153356515176759652822371850994596765354356923164181287417220471643155831332779632463851979268557829591285956351113930497309908190717232588795602821034419612315674910655040770869619712324616341672290751663250768875489392999539026122559899875394774832508551298719136380558293065717485867233466409269946195255312392598236578176063334643170814993660046170612469441339889929842150949391491477553441637728268734373402471018668396060949327494131459583237042044884033805304263533099397795388781024226386411421984954546217177582403205408062234032196108545909689079986625528333800202420582907704605215666923088906612412422948792450097606190557727636015068580347102331069130567128811177708214113471558528953338842304768013152477001112268443850006142894612535488455714576027189824671211853525097162475702303236854874017790712877376710911491569053960655949539915242798140262012907328317089503378826473933114344324855468990112920609455878029319036306718203539797076723964143770545904736626176261476139711355483417377005491465602316189108833970218536053589225928144003417360717807772765892093665532448749528325400765004058223604014963271348449008550674530127561119799329940206631597266831938085856933634238506415354412308425538615145906147082878388623828584999892891456366729277482251486555184523220912016983838771641449288175705673760268934684627004327184465675882152199020636265071283836580762657627863721439456671445623196900511134005047496301353254962447813434819547390373370615392057457842466528410530061841120684485078651551858945512761557329126179983460713630410893959149201825283315808802885197035275589793127868129049522845045339592669595375373321522899315234057888262614738561713249093885581965395000067857912801091948520971356578082637389802475882325910343727156725210856909395747336174997409887166050368033635822283082634071524956462322867815439847617696589851889934135727454730926286455626752360264577555518064357954923440232988931488416209634916108289313057431433642297763962301716708610275644136560989808720282269374978616157356888859743359090053706099548534485080637858765633198588455320652732140170438399073396501039445391421121853449892415963259080728640938409864594650857627298432808138529462117849292361825272329462795194439936482234541231271213152664938737947258797852115602284374198002883042429684030640147672204325243157016164968987369884231693431049288588245709919067269539967457835317271748710075569635753178948417374088775753164874602449894285025148930598483566246400929336034116869614631676684097074730719548269789271723772833348788635295919253248498657274083946519861786087543781459068606424721419494087936597934899544610198698656777714835237291725131101719184176872735722427324931391653820159139361055719937086129133216416396546589256615472594666810782650838576551796956447011614049259615215154999197716561704566493691989622097097696870481114060860116997489751756301514788271570805424351546568464541901129301626247270014971951363402294091447158998879288280292315588136080275045655732101775182190593482560814749960534597059380497328271169954981368945011227704106737355769924487724371616000024516612836944058957536146664385404059617730137449677118605960089364349177000824026913468467993122643551876624681620996578847699178475038508501802478815733015596511938607639707089050736253538728564894442451444092825183187078363451978508373846225721087606234524361470350444096298748233337447856836385713527788809257141339714591090211868149686594818697077271910329339989614405889074773094174626535726634149112497148517844649557319229644163355455114077574241892298101050632128366998834639113531709730745412390899944823772040955465904875496343598931041703089433565320254045483820043669832933200046971164690350772221621110159514682256909524871693632748125569514028482565382132460477045278023071389227021633317989648265771313104377457300681577916919754769435209960595731434815261557798321702649997659494909644015016333447459542477109381575091389700186565950992996472956794754818345077293719161142539712336966689000601797052887202276709858327116468075853938659928648127370345979798283290503709741100101479821744422759875116066032378021516685595446783807791599355220204289683600406003841910032220200623483568776176504065842598183171981469336915230640550334148355085718266350154852958918667863215188125489954768224478055931620112933240873600246838487415789029961357035588817847810350137337359872424336703115842879299713731977330425943747567822782069319352148551863684528507180134382377470465820432235619687419050606289135598106270431148491642385242154844432318574270361968919337685066633555575391423520503410233568901869765765351167057323806692072598118561841361045528970343325686627774197108980093267818182442116877360615895530897318607948065329848520595457752198372593384607460043962652596921981775463671787953265191879495271405886650150024410715239639308384439991705032911197575972962464939108920651511215427166336180237277891070881252280163034562113885883428108053787647959304454328508562145496313740723655192971811305884435853245317121106994963573313578307911111713219247318632998641201527801021486348139675207950401028931604543470318288235595782782053624824292672728563595671922847852299145356866023784157225371257368554975260229804097856773762838049612821777124327474580038564767597801616419211238563464917449225423905703427419090574334123150481965894667616368981001463729089938112676313882275917661754522449293362024976002216487680887227722943740711848780765793965575415838814309963373104516805434376111161171982245919738451821837697702374678961597976085570153325776412852838092042010022191534636373258780671694116250728031215038108973189994348489592273423164690591439127339673396102878599567134843553427448118276619535301080140513431320432728507340116769695912802518230176265134479835651539727500619262852666635868141294561959096719535836818346729570515331595528831275140201610144603124902430098280789525045312690717913769826455273175775289798748270632230075762610731062160579259659936786961079381307288464219035749003270334724056457593453416567359123934294713147559654507847941348557638919263909598616102533039283036993678305977540346694336213018625284703065017822821400189224117533916944104810911205369336871809642342085138135266170333573368799479526416013123093287003638853355527862573475164736534166074901540790712847813688847265768797071645718635098863601842274466686264899083709619874095055003523536404407181130839775006899967161128621751771460353701436688829911325620152789935446521727690783138934143258841897757452345044417254482541627227583665419244425116396132940671672587274699006045123727783497054533619576840034978315456662466256016103329796370233618122008655474836504054637159150293019579794599861057188722257185194638329453788693014982145264442440636838869981119520205018085195048155285038883263577579283250457327940979364912564641776277126447344952597422368233692912003053638401213338579954942753657679230341472586704890662503125284420282944126234403855752548824045866564330189762008622580559263979524254985964610498271774559949809018357170083084125214498037531207991496253740917869400716275165443620450304569115387362344450468933261513784399910543835828680723307740895093904629263475917132263784385966578348820381935871260015392047595542009254143974439444240989068086950361986678772439905779821798228947660518635626146952670915100338562079711099374445883925653230346396016410729199558477639574289390487655689554418822501617063401101086167089875979495074844765398821409811751402933469080273774384515476187661421453783960766680410957253367612805361131608700355133051155300756449013970841206646940103375869323984518323106426920559969022992456657480715077974786639760044167781853016879882464144474586011676140732685919382649944042606084405858913782647816415211385451272800852452485417117428762840120275399759403803149411414019353443638872418384950525973413123970711668445401823679936594832558644210990915017109680048960432867770626943875625475602104125041388831804773504230748047620734899763830895771737735113614629504930471542720218268166345857741642549396538212598188175822579842392151232887389605457656644762039978395094444924401578973746031484566823558039262466975163860692131392046792244601669124364445859525692599385597759489255405037061686770939969585564529814030920035598026429941345916724784111908703461815368685626106103872562508328542674803646502886658829441286212261352346491500802470639770902009435120115202203241448572097978301105754786331420267192906668478310771766622184022384351593227993008579816376288987120167820283792095012212569902976771324954786075936488106902070425073108670022774642825935444636985656897892490163323079423236628514726865908963190017003626634478471185125900791522225047112364186857520023812412788761979351673209784891246103307764875745951577807163965872890655103790355234916498484032878807991468321843469512644763036167140063577051902595389210164644650288827080542430863804077799235766691440568510243217434852064216917562730738241054514690535312017632252161374719812379207659065262545564738316506157854250560034018251073553306537672247825277501480969083661744015606674871679345631988729343727755232868756990141267754423858019838882089015216603208864986427465482879256847265144698350398550664809232264380714924852828384011141305253070648124316053258485223872162567200124333750959470109953284571785617817998854888399472785234235736608510204273835052123519069937533863930141795670071946733711634463425255020429257353038232377389970704266187791550004187762881747483638958553870767763354728882058629774397310170278767090806108957264611902964543332952247131995796789214696168882574600762299178788213152656964020524315133267341254043033290536777009314145040631347964691176692162255061520783034402606372717034602246064657623197301282245235724382735019534139567801332108304765401730575429111407807922762660264843104433119372847021671895693815807793887406024907037758423091684581573261858689910490267379680921037339555390131834345025151341245321161314368858638441234347074887636189905041519874573551532785672100901458645017119976489828115628250510792067615501385568483772264136208587825967129647820041232726470846154380895535797001880788797033507117733556991106065473632552302361151409605763645829041903635503313705305966494457431772865325730041610176988121787798083050368250036176120322833154295852665303467260438867184455157724231923982099934708139147527398581743066329684266834302386054054221873745518212156888027216995269776758658319542034278727500462095303042550398053388173907657720480821459224362537166952613022392313235056758839326676149986049672584814709669327656961349221003047335252376305789161925813518390323063272562657776127119854665804748166632613428862195493604627308180944686676966717285222238811464191186574870185495041843107695269772473444466643493863943945316053410700943501086942454909254579241913251141932845068460128063979523623568259351117837108870667633251807361068838090866581346771099229726641326502442998087258163838156660769488413719492434465802841636607120554273783050297350588141505108100763135201528309153887439479453135902944636620593310437003175777701014546202702912711595481052349857979843898216056655697522734912782257445492086635843200099741168154419631084489638131223295800534245328037197657429844821570183625549573423836375632465315306571447681475189861380696822263729829499385481434553229457561489863611048142329713427815847067059920213336018986538773140616770952488507799325151447410183434188081127296175916305139955965274632299339955878560818491558383064768693789492718168254913490483058559210750997863161531147814476026024627790728183249295659423282842086003642509283420644353445204145913289887896634427928251121125576958574580315997980058273924496116414685765033223345985206441923769111938144884341089240394196841083085338457914266300983318302276568670576839606970250180589351452368706006355768251821076826105279212518239299846705046779181904457683146246030351461759413123565063314861274369796194994785972363173627451025033418515138763524781768826554110866827261310948660310001161573824027434461246460307351558003476774574530660407425535635283317817656101666620444790931181572408425803530439845458453476721005849450340492209819283460995188880452125688536725867477413440868976652253090710810986162512144875966567551607423893298751843802638103870485484086028340142765399634866094561774266484512671197354056264550052650521770464633158933835431247292028934141570463037009757180816313671961394803583618116001592401670695807983447028542533292129094707900732722902974037895747066361830749000187398307737998144537372094825834478672454629562080653902136806936825681859052862364791185512676161461540896471196403939073488446073077508406888462699892226273221412736446106366803035513267810428446882841894422604157365921252180046291388533256268608258920710457857298207777062250213877395211284821319432919284167884897773601673745212431434443988898757746596798282206377226055603033965540383978208487435011817102850514028985093592745390831959180250655243784209185598814763679582804988909845249621870022215933509299790070485397508523995648993794742023957794076961739648922270965651995487790644747850410920913977758445462651394487836803951480234501406593625860869185610054265024961533950455607216179946369406554753190846545781247386286938762304799884454579776780379203478974561738809840919141259183797858797896733710286491250877325248454270518473660741201938342472423720990419905107309050751165686512753740722675098782119049119141777720580240640959848925017730513662141163188079253978904983303458811690445655734674754133887569569122450773601252143864826310191239226317821937095041252910561897408870498260589441334580076612690588545974641711528314093589877305286380203093262058336698846656812710068060393002271569399600801506789228477448830257149012856267658103800955208247643444851629008467818745292533352827431371494701805776124134350736661483485575623572807043784991027438647571561532031286850541511260828272749648684464557592120000811781662945056936663834831709073919853018296755045388960583049134763725339059348615435462656581088294606747725634919725999689026285594657153502233843803315493068772261371084502015016219729569684531681352563828713721286604919341806708265323953361083438000179384605946421003543609825858926911303815256544950896747020563700357601215838952094057117377285104767203817962459703380252206950484070024018576397569052571986284117707356620003702012131496642292504598763164723731550437879575899934128214709225935890582562078355843725227361256925564391317453879239485771700210025812078875322119797800287773871713182727669901635121024046748103773386985975974883073185648923545329042374799599900368855278091407312646281207427038523310922534493035167142338002882762993884166678663659874765124844737584143506841888184487075171768263800337326946969725293628648411714887889772349255204072950394654794188433224428850559959663608018150241558556690812197568586646809417648243841183066584962349863853906687395250963534223068910910360372075283527302511231981957778086460378647143409073501788043648925547647799680316101686027051377420468996499384533955289492261517447249071229637621367874697553884834236353034668455199132213878596112629490557541301953337610314318813623450176847084128656401792648434278220912362558764833800179150844781829245125250674901119272669913560518812868340012721245630952110533496892423455101167526272453881361961346649612271707968236886424291135155296312346784543602737261716893439167055085818539065442232269290574011618700839822764485647018313398987468701158452337163174947186816619376881710374407987234607223534775961882091632522731277523495641669710067756201434451182091599167821101135372271479460414478372752953033946898152064756434585715284383424712220953566554943900311950746023022543011476104574434619290200232797384881237709725111005075272159992810420516155174731082818559327432666179754630957445297297863884654692929030961782325648394518551564258180386173465975762316586106364971114470373060908452203705048710821597634229954275175025454862184448177404949442635613400209186574535951197726783460956004642966855995463431060622125548065197322170277764531751444873650876152355925849525435476654724108600089898458231882261006510288832847739593943420815197881492793554929558926013824085732486475247294430846210838387466115986774467829949130125251543397706168945165009594934944092825927433017798830888148019107004042636650792367891499102201580714517598479421508520222952766604423047709326045097880839279723127949052183568566626739960863762847594676128244321406938352251473352488763535465316449072406085339040128270098791362343128474710266908393468420006420297018635050594267668312892334343033031177892536791111471000925950687760752227754328241428918479073395154221713772438201163128842365943976195307893123898342988602297661739277791808656837799955544740454247035611584759770947562578663183581183143438653342013276965357437447024963484834064656094156773640912596762840256155027802772602370690435458094203145553093463419728486285395703894669719857627202534128737282593132426963104917442626807583171602414839058737236235461493476756580823109422707223887433746053331155667952278738993197183757833061582759782654591691769718823736894744790219829135968097972391867774334857375593981158393503946538967618325111425509279676980992119576221368970564135251222991482293933350517183630875387391674980114998408333003660326111757570308073643176908176080776861412164199264524126476187315583255319315127231568864594587463563325574253880128884269135625184140780248079708449077039443611289921241734556515842552815973608782074173175857648824071167709546134886046901989488595509116395493533855212650725805033461759692334059944888877043008078611965604245117048333934166114005171301647694273046782271987533250966365299832106524680155460064755499031940619787353323433744332414806303057589998412356625567156554699030344624865164889488318628119595339872856776347869638175530976024208812607295020898739796528480750767652054361147249987345739736177560243024797650961033323564853609019693397870807246443744623136116889678328391205422377406811426436860323462030213830100220528572777701373739745883659152846643192532839527490564430481439714437980876765993519714524084310495390521073671689740076344331726010332314272026203987086449033627789705022599947574634022680709586403080855986174933185308330538993979818762597820093741962351610900503730278173587441697717246718895859791034561440332122076214837336145545165541821966610309939969697820317564366216530153837433952774718039992302493265549582465330440009722067796759869409209361178022469857841162292537651417509967728981727040243871603145066505733829757688227801926054057090991242241612359467215809951613502564485574886760126682500106590962974478871597289127927102530724869130114084166074440546963583133861000029485316600507284900326333124351187589811884420772789196994397787769710020567360275920616191287314250807709310461093008487088379363115556170576866630642745305212818288188775415396755013010562005883571282381399713972309939756847636007154314901008153159360784007919636473220669920695960451870060417238055133207323588149963152786103703340702018887915794696054405982970010425026946984231293907755504564941855625010680360927520256844116335676920442163466895793952206081521756109737203828819171164540951344030777460996002061847316826291570876076108680579745212579473500489434272960162177602877474015170876514563414003329385012319686921199441133973552291503460283575919614429689309000681993480911240963208445601477855513111202136112124377456918915573951631736590112276046233108119376170954577121250562493507901742390159139967228300556433731503319282268654934040260870610052294007669738071765771009921844007639033657987284980394430207208888601567718758927467028061678336298703348617323219072172313772992658876644073593824718634070550054408442889410197525354656911958490095546889258166566795509805034086867523275144148334115858358924797366495347138487798277092028487985844349621642344569814987106374436349030190295054360085554765741031475961979195368112322263708894481243050061056033126824722914022816239650772171853772896477974769355805842672926673218446101416332900581252944066426419664163166894563790824201559668469728190563609124108178367773671111278508744747181220179220047544264556652779717216793424214340878232144540286839617800121030828025599531534188282790815203619965395725113246729387773010427643600511669200416725060538510863651903834184445460113937517624476035231853898270880669445363256931516143312749366703183970667431718664639874235002547222302261236908386063400065836195511206005079431927698865750547766196677739219550539935936875501949150785465110300803600570904959994184220290024484436582244343118157583253492660589076890395383170296957024930144051523601131189997534976926626666143441006693956128744871806532211728742806941644894825981240790702357493357785931945927788111305727713175551420109994169829521511920023105018670487140376888259767550437837110133744822852926950607801237336272984417029611184658200109142282379431892335734156892548667997076696809287981807291791325386799550027609749363873704401693746219297508248462899253777791579351201389840148993082831539205690037307203314519548948747834211150086071947625280963478253415734243204298836229801201494745059878860593674742757741641159179457810052033041241275497193030777439939847022878519003213059863451183475294671270966896346499552461865137828788246562217608085501445666848535074226731018157535619797638903745956825834554860215746506580955098491545167280840428034987645578998074515677974494965137382343359228912264863531684819058718677603892969070738949629047462103236359283331489912405085154219774023353612767847446129901520690252706916526636908541084504800880861621163832729274885847378474123820161109473972738039006972255820065948272814728787341280144870314781398661986306449429295359925442782718485739096597346788967452912439397801637313517098626636365218565190186864275232462193261150100626544759851644265524499950302540050188159176522458566666297623094019439641760189135495356067000059108755674567370430561192181389658741120581792678624922061676810352482700014383400777391974671307430008677532343644673083589233943538459358291628833342695301368631238486082821063518535175994190902710668751704574278211927203988326602680087609048168858191600811406288127764486152062971352122515200201806644964038261199786407743375302125838361318249355266097238514286303086529514364463183165480284933271327814347165118877950352320743449853952809959928932517699618550156879081051791850095782877151242974344225002232343117572534569482160244360751669249157897116342899365937685937249642981336560061512281832886241215491298791641123061614536221201544091422936546962658416708790002502656862671893725887018720416797158416907171083124573063784486522458885697402695819672135082354988278060794235645207602281431053773907448821763730850202884270427143862934761677818393394414872411600273084829109473593225708312063732645508235520391859278386007759232103507526441771633928667359778097099552851850292088621001679479801010142296039595435623436751304626821963414335583396234648904180406351422213435622145017544928467629547960169202612578839989325357695185550790213544726264644717350252496485685080877067834586009986027494721179308015788016186292574475332558529203729477276288644577596611677622489821682516209525220042084854578162192102829105552209476700559726094507563541322057643249760264127735956978564896898491647501316822541081180773090520876934634409888481861597897412372554597343219661963750194324536142150921359521276931657283910677750384406210107776646285920825293925376522639887557457449564284125316557916627282073989628143350257729250631641074595956631541025517634616223481405524605154721939946528952766113900069792044634608206502702428249042318300407971525366572202813367896095034247021212110553782855171461048040466724367168856118108729482262356097839131728663345796548572375577721009229332269049982332370119730665830696764433222472105640259831363600550861919098821968388953930809032008826455573341421087893591188538071593485720506229162357666091187663574116154432697583654406203198790577361657669250571387581399226815526411874839240172644555372794020188191027486998998708189121650113877089658812948974357435987360030072087640822323174769206365169353141553189057667839163736821373163993797129089557693392534439430682314113789956052758100349185475678801297623653640613217932646514749276803471323066714267649076736186209497695345932795957518323325365648014961646077336794328584162804858744011484958863845189404170997586507336247297067515239559363216834881196637031350992300591484756893287453247948953985289126410526862524381925620996292091530049041408336933890707677518490983963288761398518288429117428048432171670512503126380283414208980834074543971836226898179821417599357944917473976811777974838737543476167251248931247520582308531995549473204939782811978433159336162754083136952549714814612818469223468208456585322443999812357696277335786854905895749687199834834133629821296287607052836249666533557859216420782591425813891313425965792226781604715384292131701483254315502637170774852422289588185423577936872613308693871019363455873612629044570450052913450244557989696546043206383502002399603616719462811098037269919333933694200774727363248375386759011066452944463096867674287043162421712020967367890493519689559776603346025804375839998401717303059467822758743542543186297448447096154602635695156269150568956183085535334589380612426920805473535850735900226782649687749832155862257311228146154765811996045734396958224108272236495654226534043364105000643346033879852518966712635175305554611703810245752528277573069468516211997662349620534321811721806785032671081157761725277990959481927570697375637532232158192599794715284789951515476207464060600462726399851701180885734140749494491661220602875127686756886289901599170050130755710483413666427248283998533037880925041808622294650432433670437741626433277441688972000011116726977982485085217699231775460736160773558514226316813426800746107333401014789634932734430506826890356779137993477933681230205533707954338047461332554635498642777558531374057471723768515346178816110417615445737205681603853728174956736280814019586163929257722775278997252762309538639816075191473163440868250239751911738134712504277153787320233137330667451464957084383474976410983796345473666985739171954535238702902008622067534443966638359470745351091695669811527917209995338445741889560540662615600235017731875044551954302723422232501380933190830552679263951326773584140505581035478679307788070098513702500185898204760341687578205528283208719128031187240279557656993815752400146774185146931510022626616312539607657160620159057235898271674128380414425090122692796298904926311064381734451213965728617389789315607486250024113233185005115003994062598325609683443175772539638832894201690211763887418915196586436418176514968592239810415877830988641240626999347822353861119634992097025976825500430939886770034963167589950705102765261205236059213438756158971891101654070813483712921947548471899798780825114067455151374151846336115570490212417338733525497268365736256864974430738931818792397047980801181151703773411639178136624975264559803297725656492417223464417064249966019966159677470894579555712640697251674838801400643330085904191875489748239294457587345693425447151054918232592685224922010542119678556409132307650771475940171744803687198318762262432466457469040448534361363711727918952321505603319872634489522058876400713915876247967189885156699470910032848518405286351478305326611663904230541327048228651810263702513951653696417781526044589526123014619676448890284650554101149564296180905623255394950833611555518809678969897774469808863353073073007945502750535333540841713362566757431586217786418137095999879925877136750918972708328529385039126844519910438500405923195413667047047195562938958122022677595727707254715001592173167438516432348001140778363355620446800757530510768208681747829382894384176138977298239883835009310902640234849185975485086732982868646073132895307715475099305900798815990427145404420293865760735977461749216549105024921114362344633979936787547474169899685778196961176338729457459219439982131738985977837614337873510454752299215638861126127771700028894198982958900669736181600655088835729854723038584503513178417410224577652384808495014010108756964356179866493753053459121072302436293859526087830916134191696975880991543530938794091927717079834593089593786255222328620616547382810306620072264665757724610592327054005121294981815451302781797032135468280236174738093885704554062072828898877432361813908029503348145194965272615701545009456777939738088498754276351788968510641215100680179257008012070047581471085252686857425849569854517589587087718239226592121654974237207448334726328857833616074461845094329429759983029205380314522482587463337524557280889262068095694369164182677752555589152097895330128261856109484550854255176982783114128611530272559920063147622212695059650321240837260855285964688858809778154917564693010183500552525995749940936503548414217298844548533254369390575927569855900485534001527042226952715942433821946572158467177529460999580391802213677034746322697839399934565162079487418512022830448923229843942543590811550648841196530728968108034769644236729230910158185670690641074112457729612120133383035519507719979526634853649688485316019909506776203208509024796954150454199197359978050600089971061815330009637732355740026574428659576729759423245264336710037310629431573895576361524601738459066467433343707927132052126373203283286709892224309566955734546267918397660698873217321728075509794136976127782835462638068523888107796317005083024125081868091591780444174255650896633507047366759541668950301525023795142148489302168747876421423434054970691043375961209927554679165305142151391553663178028317835076836957096179824294723242158567604428997709052031731268786864322725224212082243757991962901845072442686505000627679833594065408187697291255091464454218769382450707448232091931287497039552455880953217935190228482844064042920955630473762141048245968838295681159397428225311346886967073391585742409854586369382583902515491413646745322697293262847459053283602031493402737260973476234477771609373986327280000076245706070750464589289582664043517939540851429804552753542184422394901594996180896450175220435609970798463825758659142195083631029826444514004645049266990804344096875233393905138611146326260729487274970613643104068895745378061882943469376978019463144688284664117679755550009409497358989149002484841834491930491396676496972008797071341536330560334718025148622881722683507135829816222784853516818485501661402228851526015466682218590583590497048974394579009207926191834148395699430906205372152006266214470826509494371782455665909273618645446341896086412662552478583359380539798329591321663216332888587608011101690829214794865774094741130180654082322112236562844678749225174831297904803747596138636936011298285636053087092155499980677239158447071979889701721936413550457490207980554465262178116820383637363045139916763784345028594238287144421352309742603860252432569599780153248447767356089988006457923951399756560790671041678474794542822608664934500125235337418979107772542689328385212001087328795873816131945545590585391731966703173409508576258482889993878138361522278038142787732686558918103664926072493186103858726036655492812619912536399159302918806800225982704474929046827246346603854630773381561897208641109890717303897701993362248048363679381867211816899236975013221667966631723465734712004492124612686223930226569907321375272995706732176895778490719649615636824351679174562219757152462344839542074279630240611014110427018361706803567097667343215698565810820749139619339146481465085808464880965985689980073527488956496252433181936912132770110062829923008653904286603879928537016910315343747394141494913765540974554358095129819885106085920406576843890811598777088809105519169923286135570946523941248102651692654917257318472764776175790540432761788713558723591432712890997572347806674564750987502132614136798039798760901403019238611794642562746794036682982554288195421828360499232698509117933465976879883416186826353432572662269504666246207395483597958546371865032214280310147319028371676206425473467958561710543272434121070580818217003879045951813022543389439968716521613763045936904897426058426795086710168323239867063537612477085961402577487035452260466636012613110692225183619964520132510579081888564715791988699736384988179342520144977471167011764200636891729159439100544651611734986490799741847694498225202082202449829655078185768304309333525332439353540229726593586267496703013341792907187898540112564708815144859647471963514469346819644645561320563870865416883952190641078731539501704898325321559600775779265691027859151066476522142841586784927201373845438584839043971433044344977425101059770074049254569745495813305090416575090075709833656413412299517799308633245536263831133871761484068184234105854948182753319443287492452965422559953995122150819092747054991458986199774766001289757014665546473480129576415125708124337585777504422953039619180206350156840511144989339208420255794983730323976249393841820498739319511444620488051949213842492518181411630504060393389504123251988758194376645100485272657179644031470686129688849894170110326236859144226585166634872929993592609625470606422263935153429304621948703110836169049812893665192546175420501002173453268481002451791688582439181238575520672146394039586994994441784147319977349588673683319393704580648303066723006915352155484524394567917081067361757378871514117852665008343612842620595022211885606371656510016725564331978938183257433013143577189289494943569497903181925748313985725330432176963026486655891054097472106811568397534656183428476492474835312583146254269297505922994502808910484476661965067915175816266265550525761627279103571906592236074416374954537993956575444933250304563704118225247768207348462879406320163902059904993382279093143784258836345807922833074515024981236942922022024113245200428624203003701475355391706261872053552789046519138348928845819071588699408114577017576188883191542093285805235623423633411547458306701691444676441842263248811207515904850715631960212485040174421396583655838819597815079456757405501560587066485876513611224468990457094922605040168571928935007896753923332007002078236100768767324047586800985472692482449418757143420095609661785048940144604999201582370799982668371430867201925262292553251429050445010247929285688559684923207605138461975495327743197232885664780033355205801193696173060030157287880149997691126844241140657905573959856897643411644053893950588682382787436286381741487344420918109684803211121721781686381711045430634181251107400764252268824286083107954423140461890931816429680071176097074396865069125175630591735954508671607259297585304957729889188206771200139525696613172562604611722677855712552961848784542903707547051574813894041452687731091074493551544818527695729027652349224078995543267628576846902628331074281303382404420503214521685068176435827507817203265720358043504543485672267483877927289715411751234042680593422499708806048270142604891549966395463612078771107702019536076034519209165637024772247753436364881016791500981720393379929473626883141335710000652124253658534139573672047060380802911038979058408506708765165025350136122344176475949990041426760111967711573581217404256583453287270769464515867678789874955504443716380507021589793809780678198033593629107413435201773178307079233379646577720009572576757471485279000470424804347433287935128499440123633426210394400548989233697433268675275441478414121858801135292684557899029463908227755147980068372408266798916242299518232069654726052816204478316096361983431808373198737830109507276470138507744535650588311356853553290543384731876525574118986815192622491722197434839803413392142071664991744786786729387403509734703146825306708171344640553214920013369832400057735864754727447269337536657521792331405580483718310047707693525313542955707226919011558131231985782919011527488644552860923482675555081617066580901641020276816033155885724881607050369377598460989733021036676200170954336220158925980817682721327747860100874590152469379687042266608130713730502717222666810831656645778423138898486330666463792658289345647657942669911312064388948179760001225154050828159492476639103148861963632361530366613694191216655697903961499947699875759616163003497125527727111729802602921322737362222821766088339773073390025245252949160083775028739918441859677322797945872585769295793488222680883021224063544731916241994653838400645556038301517924329920498556042604930031983557011745921478278770652083847981143453731320298298794043095968946756152004902585790095919711038181011497985429806835173454574140069211415273567236869305956604611463381778678047411861809741894205139499086390191240430153551405479561162881275400986816997937024443792195112052249001714455948010455938576505956098865514654980575171226752638072062657410253441675012281162232444942618846583801263478324707722624620220059911332406546650087596738667248816404871670190596921639886110735566170902777016900356213115455524042651900047380784841491785282678242145750016009291137413477536771407192396343948731447397123414627971254865750224844268549146629120542237237284842632439432664530212822159691424963902777435593409768093730748930313158713362162310973830513247553122980798250323141646917225438721689790699568769176885690564821837012474143085201539842089406308701254832343692911861896451768739013594699481884532753666391803545804656159317433864823247031594102149331418071983858748449212298302433484941685803808971216925517644594913787718187382665658351876453714962151102522125090251649148407710917348041599608355765871207022908666490489033225242046343269458272589604985882888365553816818413777618386379757954261266091107676873685845156696678239701856553711789304304220843143099901163579441336053960167159538929863858918268902356015521011067681352871620686773171153961809707308393660720699531814558550483883745812789439618043912738026720321345339388181056025586584766208900894544324798569047260336583857511337888581384051416692839819249209732854492193778095050063244261507065087673546999636639500512726773911209262565321721024640353399857732178117896844530427431957403480904801170043906411455655212895026280440645000660173042756810823078953310503561729627601013131465730001262450225898070351972301093383659400488434357903786177412938627239712515610210065911652542219249514839960487815041539193705647957935095066784362214462314669202668406265756502656090425443089242536403422484461874702731665061650938061767975294205246499024327291187783217051459759898327610228732679643945805189833788411286756453402248250267216316169646246820671650385120378391630797622726745008146427279587217894781281090388190341016353281565471322143659136457363150410361494901568049972285617642834585112248759580328997427419871247789727898474476613338260227211735238766176965040639879507546388261501846057290594023223289723100324851110781540889866400026827556790015549163104495133113508522913568362306495478395945736807348798442742297423974916773891396393847791200353226166846490358270171128202078274556132325207421944896724013842619814016070939794599147211539493997842941942936922761341295177851396095436906245722181569021529931153864419983347682716132002914294970051496858561788625169793214746700167647769799354625388467497911312830317845015126362744280719626304941198204884909855369729091171216418634322434306638609821995454973380250844367882524859418824241401440260854282353249781393060894665687793926523849443727871495454965454751862773222795051361316772741829210054777384558107011678074652283527071240207600747337049234847003663205234178809026054539549752774466971031970109179141313861691652995527542250882495477398860848030427500894448499407913899507154706357041660593261206048518999938554814154349057951985899744943994424312685247449246703933669544620883775311454685424493395232909332482964256130650809593191591515028066099147445587797570206249733113380549002733072214167068529084377220982294081412782612013049886141756439537139407426780018055587137795624846660804071261386616996811102209085189392989955495994411047508767494105406435581712276765211176372152199631969713262505460541275443197007308265343293894610151486233076364098971334264340415245770274402214355710362626884270028819078499888703141643065025646274053084971230644772194024580647946646970863507163924344246528570896209752779394357056498099195330105930327982500933087445040223646639154635056968261810323109972561355622853088741016360152990271703849386831457052751706578319754674835642376024498079582335164598708077974676312943942749231009575867121319996831225739545337152509560988777204905282868309879222743429452237746595015369735921065676372733753755703015536897612493407707960963062987195973412357441546994594871770980460049331460508074858940986489788558702516238672946757549775343644649772278666113368021830974131430582845873896506353526732757082624934313024908563993184970787277737554620935944317351953261297908313946304112345173859236113239115979483512880022026485054748396038819847177840994249421504206035824366884714702441990403532733627919478353611864670248465094459730043431960914908665667499765963949107821104682273719008120390237371642275682242151603094908614744497442591459163074986136818856904848323325115923113791625524402432141607824898764312145027105405902555011075466483862545639700489900266207464959395291940193837657448222040237414162539156567433832155358279718189420071372514379108006841596710444215237871582465140081561787054247207867629499278107694652055861531004246603665083209086870249215041323643577657671285599537451372163137955421110740869447973299030388420195747806602082788783695604955541837940895260999385859172046406063717610940941401952407709789985342980511782567368289125478055507658178324880578710451042401617480562917572245294427990527126314401672660136542669090799708845082538055870698053188043344801000207489710113522463278439012792769853360728208669867719181201496600484370702509960033736315864493317907840610201914366189055635782577488247347606785196717425078512628956279166120971820281947911259608082991405114454335109532502508019243514218322667895587682023866378739251446769399681093423375645667135542175956135351467706326075372145782426002369481958911234425446046410633780675042386002551754310647062691005225359155928145765873966148005497772008357781130007384601740541241128879242700863577957321718195221813532788253817481348576404287569080962615255941778738932821315437455385879346744865995599421556195918381060690453622707864955719331376332825147409258271725818558732435642555574828012824774062934359348898956670212651754671263481357950391106328792220594173880060868144991656078598166192564423675891177912933525609556797732345954903536249274483570900685150793217223022627961054493017931526805755915943201982693659371085624539785957564030042033149811641045235444030441964290834390792575591643902452384416352289786218908820426336748101818537772692246006440888563910423530352228133490870838992397141667846186479497620499324869956192213771684322569256049594199959590137815786715932683077063644352157542546733373611292125366962671958898172786590705287719573642029355770592799315678019338509246154461859963477418756409084975466822689413528648323563493327830521647970502275134657137795825749309078746725841333051168957274304267218148024683320873396750664179176247757533463147840782390431236261747315413880113960305360876702119006076038786025560628842292305295442886147075580548307347578328972937986899154862960309797287556568680966263293666368350486763677597130291919493434357323207904063291573901169455207703124168032984355313720715879861183786301206723157912612456604572018864602353586187200743319346321419112065352908777698021719542956440714122266007725567774475865963542757507912732142819082249671453025978734940429751028354359684039129203621755050444837703230442277471921229680159296778965376891480068702844826105199254792697672462509405589456000353283968046665181705639632202461781061214769639672660668033653893261834516159605268094480636362777424328910797970086225297093765454028612736833891055802324997114400337354839722752419511490292029899803239835546073741722125171970185388119216643042482384763715569453898473608512192443847606147268222909949832329226148364794393757984564622238224712324953518982876105151554118576670222700828124834946243990699826796195184993057863246807524020759512512185762895422137392690838244032973918728155394174877777942304399875564596087703601719696905745411093340786259974428866443654038119873661206392079177436221794320698384282421084371860143758701089569133990855832925305464153976955506117908204247481597573469838967233750187859324665696978757742227297943901728182527062636298452069555252772453891822537601926508087422361596557534351933587035720944961751483659603368484374815279650256401314432987640181472325655881927739076294126828567673347682963008311242396522361494243955447203673021209429330618916786654207557037689986408359874078365102931382227402178009373469943772018674402907685082417950382501149614884040453666035715382810201765393133810950863472857249902180493304520086436319072062919244075131795562512343151755982180947173962532008690398009690988571053665972710065865647889123472751597328629861444425936977678406383423627836654060525784555166541792985902090379337565164498980561356420347365572553781263810064476098556671845297065576992222042877950884366796901328727617699162547923950713571704975258485519715921883809746751069530102371432526155823596674566168694470457615723986549341338643271906759260968123292629327854263203763823646399865172400171535884469925793247028727668349896458601624699321464817627448735029560403357746032641278022770196900227876430341124884518299985599392494570324415037886098384326971051604186892902005758112131499625287388245584551893277050384970528770429057319676714462718078598028374613581210039267891275218509375473215616177736635171141490870777439522395289793927036669371863734935275644250621013756167571853880165731237453656369323544581960638379617424898621767612862805493713345277037717767263182058855162104286488624836880178086778906624258461634953196051768260828341684679794476022611021578278557008500274876645683746743399362457025419551786076183819261557234143795944636603054075347008056545672939290925625737680348924034042880304929921431694312107938365714650829159029939666762043371711924326775009038232531086548533432342999405959995765163125413751794118364440407540569937245216235767961450245675590989060964885568997765731780827605710533508940289989740927380960889173325657581694382467624005058529892597892745505492055821979776145024875904943668082092148557447930840064377278802200812204419286103961075135562885684910117945956892153970835607296349568532794269282920967378796067673471371307511712515047360275836644020765445502082912790747148929783056022898263229180450403538025451113127535358167175398246266700710956164890819111483109369696158814878354580453999316516915737154270576759967591981127322296760996726693283670031816916472379391078762834277403169394244024776187097016197728637369137649076465890298287366872875659993295053317771235454418791063496643723763888957526156329511161563657890753892775100633809379179446939218211259711689404064561219581836349279177653454207001898867156703408554522166760143435230919652350155046634067110583591198678642771081995399640471584404395752380716143412296299578072318174631368659301665093032369580839628619675908635790489182685726135844621454547462633135350809870210035698573250023490523561345677713909089218719568480935839914105134457698365998080111231504670056294164553865035523054104395826759406482929256755078218712578884342871359928211114834933431172398112436565976900245945065399020614934506153668808686160369406948849646519821588579324108028354390480565305773042079229154657117266676984330403471379314207925543167205481627210613853066544846463996739860646415988183452658696647347983237128411325814927349177329398505559829174863202245766882820300861261933199795347751597132544131498605531889915591431669820597190755128138775736809781324812742885576529448955407801742704947922626475216794355786845532413307397687406190937706288674391450752579661959973112396408257282828862282669724197177652990185573138599004379481224231294503724122645477212996582907575252057221857309015636776813162582743494904317824524941202773847519653052992289772612587210410744325390638564489132800284993541911357726170875383143226436775110633415266897195498168064805047733213549725946133957903048490023247695317227254970120713856903068614933970379115560443282664577743269381366493812730271466326140159878407502455799297665725897101366205153666459922794062575769269509196290275364884815014694099707087115583358907495473334567649665885207093747403584380163164351143682559306773428535686533329863989030615621105659995704827143597619012030802640523545466901457866007121275284166075413051887596693999072871731447025160107439465371055998383246063359381925161123072542708288305548148525944290337448157575935368339575956967976725041788955191023410132300602344221353355887605127813297121754452004650606164023085241265009694562283347893861032585689099136298301435528341678472610969333018949852471870005400549951324444718274828058130009773759152809654437001409444579180712690885285030261029094313615291119106983610263732858704228436171677759973989065492194263518426771378064920022758621789923206775737275826649587211276480485272912618444283434079585671700393577608950024194266739487682249615870713098510836501077441776354187383317200770306490138045195225035868078393895873645905431393695042492869358893224258924023646588522452071717162197799274205078957354982668534820027188532539791921611453065342889029868267559190524523808863898605558319287780040278538747692289773870192175322695479775274098167481514460360752461198767012974617727250078530060652662819049732005432999227663557244737049378736663363391578559960037699734232318556544190422294159736285453986482428453651193933094980681096277640959209125610017980184263849342360404076558810912439883077010516481749869118053271013899237363689526872781918006510201106204235832512999326605086506409116931375226188866619395482648173893330836028418114873695626819877393196333429456543289091086798703138430662778715945539937959325636171539425296527690331480471314484577038592695669691629944019965720169953639122006327341451967679155760517872647321079660179548090883877429129749012944489879827724482490532590865774399932212968947779083692312318554713801943857846814607218913082411628719212200547363496554056275701039008963996375382095911296677231057031214730480992482712821352386236493952514262570626096304571141457291969650255618993152746205963395711524999776491570117199732796198865462738096994232162481832530819988252059303250993616072258293107085673847056446448859887670683383477254011507622782015727107473705807761379858606445933613947222232990646662165743979330749278830596488894127006053671420268546343599885337015233333199694956980104218016640100092537326475124247098885688508122436312224209821650479303868904038202294485784450523361913745101956380081436935606746912334663995870657162973632101928200352185777666449711909247962211724836054265627418571195001272137446396580137804846341806493058053646641032998009733545082364410244449648009938379403629600427735871460289599755527197494556920033072819692221893656034900126808532565114937337857571800366989861814141419343429324147221410255243280904679995348242410604243643408787222100931583176962972598020810025919436619194260754688161509453675637609722030295344920105752000545588334375167791257078840798743337065668814765940670100858708615961862968268997356243038417126863272137007571454051484214404437145569862799168144544298855654348688171335655436414413606473595054308408869176550019076705188038723402695514286948443699181403396659942966542044633589089001567733778331842817318973870748854727946500229117283865497510793232287715638429244859106169701359740365985482157609281697002671474838122822725031990792684695250825462537959569008696078944767564063669514884638996383519752518609324944897410253960510521454731896643096184223684273255981816142710911583007339800802820119634110935832229570921300981585558784822326345782789479260635107516384223414655072435833267193975237156894129371343132999975517912029209256244570851829537968134106166462655928981392568376894159121819894757411211442191951745282587668493127750725823109333348644008466247540772747406624127215308594097422209138863945078302593717947651870000515846834749809629961223337632701116225834935964209230953369332739021628413919523629908423083700712789181341353389275580316143670055026767941118641514952834893308935850126628422446929325868421798806395756684871585639653645310878624530500989617366679265555290622631382910986924443357598565943828066014492888286077397078076239026217914451852551760695280577305575795067057094902121634923367189600492862188757089355727883667412769735392366186792944045778728811321813537263068432056782658533819472093594094201621727581398582874896262216419956166639665000084637928277250094267201774754494470499496023619106818804897207715327258940480013118202611925421629390207408145702921887675561262816124183346405225120607193705387033987183004383512849037081323564477325079704920188693980827566103500406369450783622414897057436518754188733379613045745820204673509777378541726304412747014097095842209754688499454939632362563098222365026051608390671826483086234733827572486915409685299282678943040981695776358233548880949926949488505553549528879994165307540634282093592552626794936773261236061697251276066582070235800399201836311023781526288547326057543725849659805675080581776083341620663801155596079392642530738367611818147689379805635684478776870947477935771989577970453489210488860967234388337544076352169617768307443311034707158958138489953536604815858338076016107021913380241310297527829249629802653760314511533613626248595534006146730114226981545861878863245707100039585812142725316141945552981247664587858115995150149462018690653178560580599265872292256825486184833896900178672708945525917979360695961276970694331838125926271841628214108663110141735901667363264278603147335954108285750048440405736036375910251683305373386873419519522431344518506987216928877208823592200329316786837961369507587809341994727690631202615452012963142702231048678486815616540621684665535668294298614301855676281301226542521097630375917875522952869200064381934490559161238925913405211795399354527471587772695760924033005782764276643331166280795653612026812359273054660941076035372169050586458234233618788195605885909293516901901762776289941859469792682282665037140228226008292458217879976818382996774360354512789387458614065796023861878694904978299159557771972558644238492766185615485222874703707605884456239808660399470307556441540934437980434655685742896158197397903669167758955137494146042848305976171220744021758605633469502831762200367810947099120465038560838325819974782043504743593826226854904548468018659719792255730110538835273416132055139007475356399708436720150368041305041320166557000560460498091499611762187059890997081679130815274793682356758165003997327447775784661226393180599897050471090254617376452341183493994444812812610801437737236633326687631924084803871190492899669028375638564662451730074289068464054786880161703981292447674741977785480397024392781976005196594050468063971154931658062253481983873254284837875064063245882665514289944528193300779951410855320482097467576426989428259996316374888132010730257904160189986551262625728802671180474499856463698712629797850290942434385947992238861739221407608233693489480190128126716439594700053174590393742103666158333034400690548045779752880792887682146881812907933011898306593685899443916623717872683943209772352396788474333714919551231006678358663606679300734540689814658193366158329027173566646169344171207488528821292435349965825642150666708542044157859997410302852145056611623064071724301652755559045663958623740956486988229327125398444182309989631848821761090031078172131177774338211940617526251742949997713310658625733813600796385396215983484624508872179370209322300673370461073308294385497732185872464748813764322766055277976498907339763664329474523226010350893170152447546493388220178875432911621989191564762036333402079164866815759408098750448862383189619776489684299525254687611516995629247243899618191145181598499403444800342447822835023768038426641715181974678453977022435282598801071143724260841321594441955116091746632664223074422666176694270039188359011494596043916636433710733938398218267352019971823447819706777104860070620473821796736244633345675648949071639845292974177536564847919490590867725919895389728127363383701195923115999113710165102832731327402186551230793335072095308537641111473241184629549377180790186592284147919693656369899339414965081169311433366509155567268486210061011137681775083946292508787578084052676041307861621487238991346210885751407851051441078097685572117338049207072889979650313862996497985308803287211473923149396091906851404998424739942778286351617786483595948506034859845810018701904900337813049760704348073359176746249249253486375448109421008812358314905752784112225141317250547771484599946574581500034039894245059733212327872647277089308689131578104500189484378216819567311554255072873525191657110875019550912964798630625698906313963770542527891029420679698004036016705250801475471327161696334450983089752293785831199634089037247418424590817191650433722744345704927236601797722752147235355927486068712019399564641739970977330593599064496476793161654594293481483668824323256981758326150080697024260804476610699441291530062172176601900576907724745602036117120054541357435594532674354035671702594922313514830895989877811082466219896623296753569475335852029024225283775928006864931298417242038407570435826195503971984769322142136098549750984685054688060368074813602829798552373174622858594924770687343867838909185596951410362401200781594302900628554044454158133937016442099325379147061928482935877022747954437836481912513759931278101238906662240636771617935649974133526597143579918192455830821164493210782002463191856198915814136807317903474062035510523603875776374608332095093226730100468834806035331756211184484792411493867268892440685894981487896683866302030717707299727802174758065870339696057257348916750136754314810666685365274159293662042490800511797912502394165164791220711052822683442676049802625749846703658996241943414173681101771358437974095696615267356175794703956504628138484758561118822999400220079981917973519552631806974976185658578649055922688724088041409855047634820020350761452395638424019484308487690466328857713245946446596251964507659674610129887258401908959691243387264234660313739904873404772893232838550053376818569307455916360431393659608697297455134213858797365623188204120763851820818379077090884908919290046737017620302372904724933015046404664366767632918381314547113319868203100967809705863943794212835100456580988858600037548720551839224026303110724809963379077517453199153493279690277353649217797364526581974960489443434280805123052149759721183617440058121960924015922106699222314283039933166211835436435544919460960585309052304485529200216050099111339128803994651894037062990668507366920698753751650031520914085281742989212668245130741256640196755675340937941179719811840842961413761162068271039660067164541600645585327740671937641641016557846792169684946606651109591912930180006636922777219586149800971030833660805808929944135191027111165010239630206119715699208195151801744626442585682241686137343861960793739122197151113719903946128415372168936313522323493651515597564492358402006453569196450948383468659849324771172057597750616861941292366469477531719283959687517918446014313636981733010613190285582222406984771959616166202629765449907527052443046437573403239054454341820990505923777445513190766443448287398238410431712120763464550298309402984497818905709585662226142906275120942069282980907380686655611247376375755336483333980398070709964835257699408603969453675689285570670395388202990188380402746223996555691993665966272907916878004708537308494402168548181116093349476880355431282637194245115062434374085484440361563778758690467144555082505862672725298354626984421708999842897448557068098655821597450784569552259413365606020672680880715470162904841456057193625850063471284784156129051723612229548899592776816405064425863792583765439474086891392840932736085489867115738720977810520761108143797285003152447544826005734268518533611499403986232494499866776199335639491354497564538154513050226682202619077872319946721836976464719399571635711053529639738885986804232653891168539040457795974748682789111492422051755831205594084171077418275983610676596497216457049194824653799118723043281974985528245766788378000744610885707804713051506523417762674083054714908379386916621989045196731581376370827298483975328002140712392546448937843495800048722377891757076874621542031382716485628904121758415494436365992020642249324681189050017334609436033262166770154984074444755820093111783081851073021806107388201343900117306410175246936741714775473777763597307387395350417169001998314942900510913025144929367768972684471791651147259002026957367264623225148736352592073180964092363631153137761644484267648122135485311105036408776196162932012330340188148999907281091924981358284421302609866537112823797845742095689272567985610647641623541278852857626242502886514435001897793633287804633650781245045328823325833486595115749115942946332050606254801436211737311496893890521343532240543682346114907784661621377660754956913086175200189295133604964062565429131131588517449123189398469134506645970563964674981488758048465571417459082901501547679037506781739687813114944085703781443307211488209772539862494486278317694638077638494905635167070686663910510244467528794551425715647990741347163680195409535393526448616606201359587471931844623462270376995829104363566469837184250361687269549287114300356923217341429793226999528061744052511135503072427854539254395124978969596740153011886809605511114471361257391370326048868147982993607237789325197223616900648205756334988270926653876451460503527264674694013473490982809385003057053862835200326939321457506547026099058404894155168632765053376647912129126130162971337096599502012023907219259396875226006456683578177202225340372952474500924559312601883673137286075375831225236313623835943966441991304533993093657757356595191472201529445925331635956717094216131066771340460862972240572547311401682707261413427138172714112815890243460194750745138087113866399123263686785980968853659176433477827820264701507158583279892341102408227204616614305835088605390952019873038962561737278395929701290442386622533971406769313419912757913819673739037038030074479169621590266930296095650321163648021845722140396934159525624831296510489620554778838426597010814937363393280554735625757892140541473806246060941804974755815942671803362388043222731255049813342117117841810321821146230297058646547359649913331014159391638661108377825872728691352333517506290890281574611933021923188720786713942488622490897985687866615050120403546384458738780302536946319950273363172854611153916024703890049337490189045398268376443241513210185094980509529436763023873455813616209795971803509600594935103577084356224398251570645449049371654737752418630385268763256706566236416084359056251995772011340694061180696093213554024230387410781037853192650922989124042165495672013655342075810253149108540814523081150399565723346574221378049082829746230796062766074021626259138149525388317479223920309170151089933418785815541934041992318358176410879711845469945926719222005474599931573972320063583765463588900953061099555941633645415726896383787556808910970194101572129313469201082378427376777924921539299429733368277784966866211937462938899280421443466874936722906513588391790256242930633326487664356063303250671986182841610219125361533585076968315051256636300025904330255629229325511777391768036961490176993403589802879507359324256229265908666309235984781496397765550739093264761116762723570037489616637486002940916418742759012801095144861109339472722306577424076126799976024175370015601460819251678830565550192013505119182210541322098947248024564014778930981462947381446913977305676559582401965738927844076472109364492801603584719539684276584723881786984144052840659736136475782279950977506848367784773095105194851477784806766381314422717068997050044691483430831223619753664869921608426495074059148797660951668072108806084835139580719017252175809641684816210619732037635933948424238640070039786691087239506639544216503802501755181722017522438327382091135828719970589115743360241747782018789267204458393695727727370058219184481212280118629302647693290172956762450205931079679070657503106681606122739440547805269088084582219411744448280948591384148563041612733448255332494450060511199963682591646605739147646074705519176589751027154820215654348605414938949610512997629570741536779180620542719975334432076659601628120681690590802222989821570273797112445107124684537784011694912998820781247046193318896843746051490424633564271513994821163411926909110320574371656657499401582383722969929821164356749604028847325777904815022434705865274572047348984955002095608465805652410527629284924654365890609966832755790533288901182596812146384230496285743540021215635882922211878980621162808915677854384428626643928523515575114336702154755422478302114021548972593805539404075716911305932660461338797158738101986880628620601135052113688323129659217295664209548985080558652238034809535382486085677546059887690424959768277233685860160533037713690943729449091333954083584950099103938372724986124594860762464453160883364594363397070839737783744018383094497814944800629590716866244446223299019316512141825239459262708480600514518999685499191377664347098450898099708559064577440428434933197849480160657021502478354204630582778320166626956913358786217332723081247970631868710203005204174569573898688749165671003742897845958111053933660079649879571721213157066496894681483477226659182792384198778359774609568606013890777411136872479000518797587592689855514424326955323799666554089689934339148313783827949250834903864768969218160422492371990626653608652043962287979983054447826916644200539654298640187404982909031911984741753095920620431825759299279606368451875735607876523805746234278139876645523533512069008821253877066286069687999839056538747111831140608174417897624343820938794851953340005004832901654915897116942584722765277650238194640762849210901573255009063211051266553702543066462047605265744984663282278381214039789261161935563396671929395947985575011486415929730912388639307222182487126398166888123759139265503010032704249191069796905646432716340107330662482892721218643024181638414054237177581954250055818472773587172503288269267774879040890525717166678625834164465448674722467788691239551460265882755970472750077091963776471195527989226319765976255298341413881919361114890328441298159240548906543634546771007759163944976282015892519301001148804460698527568637684632422593026579067365542542968558648448938111302954039151194485560730734689648888491766165952700465575964485285206366618821690100588002440915370901247037965720728630916048677873653717837079083686787595214709553552677852503618076356664966070584194489663116227887592033169323800157108604056306523422413237713312059871198340037654541059306004546012633517672605317816923624348311585515529797545609171307016446532673425809682528465153985269416146549806872107987148786648101698350842607247417420396614479037566671919475498924424828852669523202260914917438280321253882710104881583122413231740461532272864038637350602228189240107031110178566023527156761979423187201572152011538149431056365011489277673714929052488706407012036299192609360955102197364418532842356892475713936002009457370930677200887460449264144137742601335011618995871622034589752176075161974409295101419511436407476403341503125340584655681311649254522034924480227880567143383441203412160186165762489549286102320199244754459871596238396944007990422104093349395128972200540347088347564606819416079813524025129119333761287906700291132003156532834882376706275671172523894158411832589765921513238861969490105334394288229363228504474498343631734769391899101765321712771920826484707281686332318648685110722286998187866078353993711635566483305047746566847085299781943049225073581715925794915795163620927011104046373213013941326229173087723090886306138086061565726031814159505188298962356471070296029355932214874012968979262787997677483224386812619701538528710951315392684927743178655285191068504071821366559972019957991661278008127414997678877643804029726445295345193607297247475710917515644850221235994689420812196705357606409074130010560358905979956002754457828340148595998538592378430161684675395740805142346322057948552140665350347657001354639667653976105775614929800265863656621943919759973762330187055287899909907696957230303114671553609666448583202074723004067208499679573588883636301050488189529904043414576662678111266493168864721476630582457918491697835812492949688070156503382640436082492052598807881793129439955086997452639675620240111358695065504481008392206782970714188064031414271977763887180483672097226928500383634684065104779337361464701762769156841461943895131602141641687902853752732725633997660110711128600175014403457493937155329800117366132502228016826608873719194052830542281344403491348540244865234327846230478087670226537080443778527367313210176549285901268260454650748885273253105211556288963001624181634482924098049689463030504624120600221718213176347602536297044878249685694074282030204573212843343413517559891490460175528904067633814569652364746244209042611768723603969327384580000552104471575941010848042712291462766160989184656420388643047666819715249526600097431306341621711409101355992569960902807229241803301849697260220951715959695140110076468251826854552610361280174658141431286766038939852492402726857115356985758758450044127655147046453346139132255251902576993206820966864850774441687824244401607813636413389702797212524725555323529920301346804237476680826799900014386044247431700702047289073294743668523625845598230497324981161326378391145947352705794006510359229409899126248743927342706182828503166071206572700176326943232727026964266403626758981808814761923783721281596027328034639938232956900358474019473022353503838503412488506122893571000050192219258814273377852731773039843321804649911829707982977304433757190825505442417454129477974183322934914063429751416717308054130619115518946474793391718807615141994566918088475014633764499918264069897517742669072522169465566541693168912219541078887321395259826952409796703530342491618960833798382670832723715541247273567387141190011043773696172839276412525674044975463253930900872460686716828457706880402095277898043106914844260480160161654431578001492731636773719377750663706965898959466113601581117587749651233903315267012742247343759749504893365261740911007779210650760261758692086385715452536317528287542990388947558190058980603221677239320017992845464368610763897856936996063551935275180983172777038648461901905677983113329058599322926072752267321827526537062507420605392081985987729132713598468936080466057581248457270042670460169060831977579187653589220678897558297124500822229647512282484686809149482202033271248803154277485307067371431318237256260496072820085811191291693572051881735160318312242336760156863548599405033773342936370783588936813080147101470245874492994309133568730065803673900984199029389855195358239654571352740265038989587063525635394538452201832023853922263161946868797069253289574751941284551439718419761261044444069287505593423546859409690367794675725513471946658063537748437914355661895264072887166856710231291536885836045298214624970188720290570613135749757006657452901131216049116382269869172849703105345584194862877190513470453421199114308368901685307411723700271833322206816970656995607688735309802926120010267319377395390811174442866018749603571526964514864061424802969709581177833017248832028812032429932054913509353501687179914693417324936547303163828538820911941650097664404192019535029981135259841630406978620942730465676728005729126588984330452385278156788380860342062422136354459212647683984403605096954563908397166357542041975243046635971029666575870065183479088826010303678284896236983403141081939437912568145579384186185203466441285966615230338271997571986982780606408883090561273813833072319537025219782388984107007178923951446489446861908410117547150362203762007694353128547316681872765145684355135957841617517423169984802731369071516703886188188727873356752565252407050944945884869510804938006541724221516946970691737082827312099494075075118326891205712186793112153190771179284785225608792555742711484141320622983337394699573451980658636561381126490626032326876408307652526097163970681815592356122884814025628240975591775613713121024407565723172816120511453336183211668483516167314302485928418620287202669956840741691377464822732662375156896498783019369177882458062758521816686873518412830341108599962792201083440011406306645850308741627251323721096513592631169753962532432761352540153024732469764551413079656165344687391208244914630588769730977320755876070357737780484876338484750253002490685743347765567784673708133624694015949639856561450100014009341945947387980878606633824576371801702145355506020224632834095014884452736404331819707668420595578376605323615172269882104854495689211792022112023450069504418612408863762104950606386460167399633424935207871924683382006198598019001428868810297794400510089856378485234211948856104835804649912252487077113510561307332206063843633068966962566441827934937338676071382431563136669887240884117821460544445129369000849098709888100993088454710188048603164785341448135121353351352558387773144380185052917677617621082091542529366640853133505649832096439761972192870227485785576662392249096067497333498686932216698192454631593763285991244871991800219805685352419434174817402003423978983837648796942020151645407355648031954351976180243206892063375181127897048201292728044782031656811498360367116288748470642624696793394519285607623185416190230208288092156801360179809894222627656403439167240940414718952663303518521299539064598290590771952738463533498830535616694572075731360614929132348586509181268320377534758015862347999490548171405211035081142558619485001475849084246872968932789727859787865147030958306650744636454817110698354169977286032905277257428770960019237104923560515118596850828988759023719158075597297809496504791826578437155239099463536835365219392097561660912417947774243070429703847256073246856798505116306974521684826338858357709673528745237717379553676136429901774081654232092064986204554911109602562320410361577184584324529079499094280128069429610146168817594307985114544961827435183709505635532890433135355681591487857750391238965609146724343890125926859413915942604289022200423855305079080052683261511472572631507303813622306728601353330731001059031164157273080294019059417806045413193567871309546837829731282025078546464890173912636849609864692670514050753405080810595335424960418915436176517106506524181079502427308053440630635548704632295300205710968508748934685110370960086364187171662995955267173091929316061513591081339189400432226501266908928493686026480153668185229537063733955558476086350866496241624689695457899844397532200557325791129377560828990053527120259691523375117232920207194543096019394646147951387938509910851293021243759246060508175068145529629083752403660843646588849156324664333077953427343474812690695449813430022627806456935983001096887995929856690539442729119820425929145196549057933484734292094926653962766283828381851271581793363993031163673714612464233034980237170012690381736878007963962106164026811019273804647188543046695623119277474158778534501300725030103377289342880292704133816316010422292714654808364022972590790227781752168539902459735639835515950012714284201875756568333809518392804557989740885521437396284153921507366624503569675900215311582026952162697179092720747201548030921261559588262357713460864674454031148115245469022001498033221930867371031905598386783875046964442136120358167738525077567348745257031014727526961531506902888303155637462948181139749369984202685373718418508603918292373223358381029259402646258275408137427826002065997812186002100449934703610649888121281929119062377316373290103287201559581090331700911498002983889550703658983710992514591009273049827705200201890570516289878306349873843777657383639497055468796595603925753495147464864549589649620796442508154586635808712265068758296491575561012655791941483516650027318854064718695750576344200334923635372182353419247370784713719132225262062816750927829305391564692377014091333620400471966587200671220408429666042899180641190606662606190059359396296874146154855829847422041649727459671123054957504096457465796081584391827539461300620972831826947856512588270334241483674376436618472267694089284691719757899573067079758498792350318405205576600445527506458375906174209921660970226563928646809834840542401736503928863807881096747332634202428264652915994321105268959279764014010686851173644689567843436709041536662597401499800176841620512721504626100576561404923280527031629432414683410343030737527403232109857136876710945425254292226351652620848960932888591090137891959280000697346377818187227599869814882665580346115449238297045997469092678367289496547578111683535065076548953543734975709793540155354621593913456769379315489273410315478943505910708411503264991868813669632070171882295990978185450032480446497608868793717918017286797756982819979149369963728293739315108165152320079550941632340516964458678313804501080439557679944287007798738902547481615766616082581690084729088033499304079998995726765053445797745337729671383447060232007725572023888844002388311660674692429897148805273370004686266246859533599339466196368202036332720653512801623999140994518913672026732436002504133699303363804656035635885544275484123462725541677712110017320752009635886135786654546906280600434262585006888389066205554240653653424784453941146330046030194315426992345236745410387431589335826386802894520240148082246561174988087808945338134433886554391046320873286863877024145452716135503071163589780153812263251363541205422854110795460644308989924015997695674492091402113715124293141869260787512759847851970091351732709436188248244373500577691964132634382798698669847493230324355923046532535213512520038176238442718247525557053408054679368355433936032659881580469779626864388082740600221626613191080622580903318096105928391787647179704232512645262122719697864956397778680040166786193065514709694509572046241826785055477167531649584798340022211830931027508857397374368666903309411691940837318716110241546246961291780451398851241499072780381174670825095267973969593170292693008299248399729357085844759056725763668149454870032462220543341747602883527007156639816663453754511805418458439798553923865547852769148055115598764327334687304970389377701985347583596095027846682339277342174628894287250318522812458331225003607648141945572280669613736196165236766839676461685135904344011612947735187909582298670319036905748922528410665596975018515133018181062259705461050218026094743563253052743643773869573570570390464305668561531737469249813381032544517108364991708259597076022580487587148298596012853703305503353046208803595565623833556086594782193123983819463244502005868208466332369656135986713326132042828820072024540020816544475816347516036009703307171991384104439773879034377959839238781276118407424047674217034329537988522370087907293363265484864360893237010383574698950712024760555171032457842917331012783993794323331585110134395630280585562351367172699559044443035282673581202694685024337245819221132638649512357404755981745844784575619509559197391274745509167552894246019930050817586312291434267476847816850436049505312297914185513781442611230359473739204955765696585406917154923902360533921512463153655402843573554020446634150346213446362564415302337247012542480691931037673132493705591924684371904079912294782599679311922430055604978738432683506164461591082321493504234758206453202361023782023038796043142854070791771378484011745197833953945302855469427336710635739068724208899603752502178320632728732991117605834897437607831558337336117549932006977772792618102274674369979383318323808146666014428227820838619027208939851065262564418756435905440486774558715969303582694596001584143880218347028894123109056279514725426379184852073726690568464386010400355228680901767781756038890255935432923837728181482137727502523320771305988356330318974219589193579411255119014189985234155642483627678079214902289736556618392228086416737109175111193422393335591050429343016271490287681822115177865313452672433496109967604995336901176545619571834789298246203011055202393034982676440392173835898387656918767419982531286152664837225001109124886977059055859370510203630222357111540267197011177240722453403415184845499562384917814482163537827439591070321793469196552058944915770111315606731848113117744600080344535192633785731887847983699961534239329221447692573214113020496370702774875547472650973143546482053013089329471614784029936682693772897277570062345836897146610633064585070938941058976063052161968501680794779337171796788825523059436413736611659379953927318247027952829577820736527462412323670003056228032976655455926932261818461815921774609365068165142545127403000329282448528650752977158718934250259123821817429892385247537824482670445855764314085835144703769005509948041940289554408758263849328123898413869136032403179856674844692637326576936235415283985124257829725054356711749758177371402235925609184842179031887313167062462007391048317298225075635271181142837193783341321207213811335850704230471501385087493602705396976309069537314341981808624404903689937345477127546949228605057128078219402955025310753674870955191508405157671486397479667544688375183311310140702910969726001215988298455502180907140770139335346357940282289421386494464566802412774971837125286859661027810628718316242360576671612498132369551467483415381206604887525824879505396709897339090667824392333382162496278125447967940475382599233301127126558097679856422920886253938059044561359500463677171339774437958015007953508226177053841499896554173556431109410418971433597238614840139890004160108256473332687088059577434148612346973550195512588597838566404329173210461342764797169000117925704638485885758526864967317937377095949372432112978641008355931643375970291002509744976954257556200469283230487459285797341570594438528497081421484700061778362152459088336480113547275793640538737657144217797076046555035463982099664813225210524651926627654072938793200662432620064486968448848404835051119314639300867400083152205609248809838535651295423390985890674777033792578493879273650292362016167636100950186108751111052453588667731770723684717720837741767662734629038859872771872427441621313693072992165208560297912183084122655644467980467080486623245798575358701531315262060042654099094675713915222021054970446971896747552794107680704805713966307062196652104037999515119529798485617878127709720391598297783518728173050238032512737622438576795551704275023746572335743851308498986681518945667646196907924380790071316482665328082085715294135840348481456250777907279927691759138095994829339504748954706100137950845405042081654862905904633757981643373538496499567962725532533921161193508713701595931837282254873814636880711480410493419099806379041117435547846573343269302750443514195247743095701581232627294517886066947434872098476545524421482775568675659673115320495094335814594401412839775981523478361108446070192936745974561223659990862884372300136280338480682838231505566044740302121445074493645210610031937041880570127906427911747341666922956526949532759363731907210461166638717502890211871678535902798051897135911435605186660991717772667415146327088488124637574976287338546682439845089738026220784561060170477578953364292298520727406747924930312036164035735469483303538109851108565950395783511621216087845746916923938256174911961602212353528723554845276543937845414052898761419923244878646466266053905621911531890729610905732161253030216125470865149649120342506141500327603005818673409885431960063067889427027162346775239695206978972314670891878101241531516117474778385252143732936192388116336172252835506990295023504718501103756949140576637458160982508452471954345014365869687903336421341897648693987397839329427200764599061188995232208003993590405025576152103864030259059826630490889485025392291463237629030824996041754987948464875603796977689003431012227969628722531825436663155179029415065852995328439286798870293450859335086828066210112897673000743611785650119437132734929460948689024062362493192578002089014906220571821369461760085648162565288289106187744915351320808664234587193599885236574342160165943068726126445026808272549229646995461596659561668702037385065949750195232282579347097396758423915499620324125959987024666610537994418687048456873205765058425103889172214970983156596627961167811801564307917969004198474950424788019573024298931838269657130029961024564820460441296902903745076514861059766329692826601806622925602333922006807655169861920663436358578858901319370303484751062991581152410924908209680585550827388257791935263689146294666922488860275523134927136574421599477504932510437641789024741544578851815206815874622675406029587211016982610088638678117384359847431538464222922268985534006860875863260218450999354127887433204376547159247378068857601539044148108408169875488703509294294586469667012442495771549049393090420472679516283684982395578190618486088901915513041133749831616819892318146151313014711832804582093716788592371412477231697474495003913977392445150874174038596147696073123315477161324696188596805974212825226989627982292443699878036971419388822393648519646878504995493835542677406533695374037497254497027849833733834522330267347010585093288958974859880111149880548670122575125670523748287676104433003821144057278082326490366729431655910387010562578509215909980972792548826080989970561191779976296396305540620271874389751994614437105480392313056290849211936202591901321939539525927078793862876143865770383673648477962159893215254831408571007929578849548629826668169825939465865638432134863664498163976568452099291248786246756699300297599277791094786137710663346664200816152706669532630116204007768717838099780428251124865168545270016914557796876496265361893142630181839363566050182177161628225654964262851724672334798666865942987256319520398302409725599232360944705437657990409480521560549795892425983105239566033244166358388624694625756736445720860423899125472300547119068807503671070996124736483601308813354777655644005140782039405192146068047687205668961761406106072240060760378293716650150462237267134155359004292898385423625754912124115832958863778118354572915465602763748001245674081605650546373545791298843854123119516115946178743543609269640091805970053655657196965421673246868157834658735199531344099374353326639945089201174438842074827596570485898944821627912207517582033185588617095903736051028907118458396581310373308990006081848924601362997252671869074486154925533478151465016052635190680642515597272548377520503300681210385838362380224823121580763484696265712188840536545418311440412127718995787565845674169299790949037314568412976312596705524839788703350078217771781148633312234059133908688281623866143589430866967351173382950362187184136129087919970618621836931649130264518223184931037797939298319698771273937310763565683961562479230365275147451559512557462092888177334600229748759317998142394986855637792199969801101305720169653557874908074395513455711039739098351399800342277013248192010840682649746257382838901030973424369717429338501899823440763530852113453516261614884750321433399339424487520735608070920786545925978052681560291431732989348202014494593937778629134535209541554871641251240520189739296805307924127813779643562757769848526493370457861849209392536969515012146771910175430043298770769633911471389099885606919042961477579758167459289203950136244104564774142017758478248309278736403714742429670894425642997981914780590751772056122697791561787558784107480883493263636280249539211034170268360367176972627879796265143616362337081870540423052160478497653420452329751888529710046523479693818159202193316551796862438043358481010751097822240127450912119687248934527781988051834563668455043660030724125314148529727545644786741114569454872995540932835474729746310363514345018425036893077571185393423832128398453700269258125201155075040750928329997718641263580053504345380422146830514605193345125709184648763336223706027371076186065470446255868008616630009112136080067313820286732104534603772568661876363016952916651679981864414296000005727648512233454213407305696934094598588720428417143818841124482785879440028645956697591870629263943074918161353243245195979332616436439588084400562636193585537673155463671936974798395049005362490257816010023190980916690933505275916026717397816225591608373123972533746194512221360652880735243049210220716081100310006799837290594461706903530386962870085798041528041933359660714901787253128650261478305033630292823880922890898132166599490413671807302664693901394838107578838984548527073948125340477637621490276265915469774877055944592604068010399307365643725563654621127219912978888115174296609674181283725747228658534267168154198212491543090250803676081633783551201348742137971329927601477360157867693187378968385389764288695266343656974416557563346781831702434608838629919741338419294664293108286978898623755770404774235556611938631510255738031764662175603650960586948294122906735351298049635637177191472969876763769358012025014522865237349140587251299084886896225390504169523069189050003270374971893715514826576809342641470979150531465540678946177530832241583013057850366011975233654577171596654098403640344358844186880260743869592578646927795959457438760320937750813827778749795561323856526362062228820986915226185703340958112713527900199261813455884862275686297531773571457938029428675560960762252357385520152250546129161644799460591766149985727817089879919956312027017477031128506536611614246794507548937816890236378643031328796698155955898557982812532357228830446382142134825855668314645659218703462007837589653584699738335525685070773586901843239319903478512112691348547189454674075296232526072537947187358019718211338928861159793383940795475383845139624143517001296691367741702435801252228374286272773169351277358459188197275397992022203424104589341718350670022205569179824063988840434764843043376127027834495915835258467970408155539945259852647783294044728211376442567516898720045322622873138569403785866486027613473198414887307938559181900290152582473091378262201119027957747336002248753981410721965694439321155729380552235952263285670375638314328295137258610303364590004972428134082085201695747120593300767431489247102660477538462290560517091939663022765912121477520843322080840704649700095074431885006381313972303238739652680141167751279829030390681615553161289645215376888228787825379856233669085464024745418964489812385222701757100984487901129583182779659425260636408869133760171355336306767545124549290322952879569320060398031565650770982935539108275973163385726816768340144880124595281810238480432164143294101756139207899516432661705498077280967180113427139410692691652858333266734127655676017797999931013512595620962021035771388545204979091411931989431909927772415587767838240881506518462321099462312198118460697155230170981223185608916695001559999696597244101080206099754574490103683213481057166417293165408981181836301202220016015211488849487135176655723857248886651512671343682770920069123649395070458012688003097965945930390982596454431078312042053465423097740540281367300563066867289765574689798465313154562277646548192980270651506898817938818347267398174939076007426932213432962079125424547246856371113283417381887922728404359138693135454353863587938393482500170424743680113400170868259463449113308007103540759786922810821165622584759540400678981380102294924528107428694814395914968580612891569214601085126316303624809051587336764416295302129922814604407410658484550880673831296103236450201869131186642992333300875961010046166615368717831304307108877157764165604552277003898871622673856012590437565482358465246427261146296146320879883943495180795380266001464942139006503370736074303571905119949587128564797111481537902714056860397265542891135852412134520720178117273241250579247306370953615238964842908080473777710417512460201379528437185444484360299015950800047890414740626757167086180712706108839188613109312672510578086077036857409144667736245919265633691767587651356181180577859522741442803563752221614050968042111919425346831213081153200892292122937727648742275004528465379328920582945534624734013107160915967256531781622526002579301372225501333551064040625121676470041657012897642513540282957400414668847246845766778946308862167544308585601863088195852101905825581671855445242567895463657375531677745079364394832909328522541787843403608124402120955473524664001546205983780021164435117985171560422041034825831596375228102866155340693548533916861489880333371148772151196935353575301837234065610549385235706311295477432101889654397827203633109617992220747803126864694048533083169591199657895667512426540598231390658655965218293067829376274557269192580625006587999594274181726009579322474334906631355499955974781845353188270589621031049341896986351365437454291250220548577471790263007417579184841530655347715178589081102646287532713296841794085899857553506731606504704435764389894356885387826026951452039428855901334282449492798862432303077644715695295691285282295819095140803326490261232914711485005643840607845803625824115649240672751088249316877373152857225187616462250022240346533086577712379011666563971681735930001110971064422493173939945125883090310423304512220059077927941952717848416608950616862204561185431382529375434987492547582894700842557076916941927943484036407056513719298911210485811215469734523506462500212532374387149256478568756978275259206368810986466141156098498485633829202048954561965622075986497758682606805449775026647848519866728911080111003133122615303218680496063990548868622317317862984358246021930914569117522134853215190068226424946859408792953387102107681281324174407494392932792747357032785870724367430319902894853089416124090087719142699381678764322816638682569227593031592821602432485503470592144853630728695846195689884386728549192812624157264154915188130087506809143867138831309356208426141017759049651815539564080656862398404120988757143486856263521369985846234587883615358248192640734985980068270930229266835164564420809334941113911026365322473469801400969795373294633486378109192557826294668494061942600723989660423552236608817553040115237544778720404174657233144728283628254728284637906873046415042398981790047137277832648007736320998307764145612254859022900588828448692359329312147934150613118131230285321194639737978532498118182407421372124138741336240759882196379249087428133804771071314548484066706343040534815023666603488377124180603699091245690166234164191871936341805904066550730320714331633545723426536432862114923717866945516406795915645428681375967226338930705318797829137007280710668882051432684662404555600049653777849656320794293555412665763638648662996932093163684928459362317034404963601416112807958709488701492886570372207506053656813602450245096012855576178176022606135097151401709550014869720435698312683841516359922870917266792128413500281049809154454873538146315801341313719696985763001852815618115937632390848627825890187177834464872850800716873938690617952681616319106137210866968899732264587543609832961923421076051887478127974272513181838853036088096184497070834193922031346528177571246748165965223879204842704135650932256109459271372735889377655718244762034171518828420279346804758259618286617854098585625437504750190263094723875072650696251870736854986272972246310529901249311232012305029093183465986094586018555315284829680625179378477289155183089157021790305491591170356529540609427633732203094227746098548460587423091451559394726071600932198996811526444419473038980057633597176777334223578549894663108179132322548724993217979105695471582129979646053592812942426726580169914764190234352897565296252985382072095843277002064872642613450162494362469076046114367194725527192949638208569037121019609705838185662717838268733982737823161400669679433675259821667879914471492096081828500713073610244846656006929744347963873258065915685251505469668873952503756534963268986934479004644503056132076054326503622093634767302713573399513899975027712431524955533322047006513757963747125209281614909442214658729123386036394487708911581689676848145507152596518770522733073098967365268757768553219324724401252056428787160079237363119093356855840528682433192480257166720451813030630197483600837998782345475907097688679689946360861123663926362010542349187592336538438649117883136215401015942310944190053262010592081527381347605831286706777243118025980305767083572044637561689776826559005466544596335357453981728775112384131984447272753854764513994346036921754174570173416214306150280840912662898944084471529006745245958813007613455692403171332892507484954478833889151652129441682742656668835908903587791250375713168856227777421950191400002929100868908487016271047817051608098386406048518877879250972643377291602747094674693260194337377583801365760557983440968921576692113051164215316700598559473868851221601395797370815594062198973989444240034036630160509093630636602397875122823259429340917973857342814081220728938368575177604969496407842545873319689633660660493505716041037216443112293773129872058732046221405426348253390083092890127800733090226329816109961513635939309710215744264599268079891033849276933312585352633774203898847776761012758340844871145302819064203230381749842477179206983152008155234908213661250048295883182122705814649507103979478053136708043244524742271807129499506453229559792666442813078003937740454516890291582920199279237553866064397177048338102202659747756971121034667694212501639076530340139611672361898312978504715680520139290823794217332923376357811906696877967707878804037049538795279061932056313122524713235053823620953080814467496766494632074557230668131479306816940671891818856778212356002793053643917029242861633224685908563374200454013944410556755065021831741049681056766767957287426336220111163477250347002553137581758243511937457059412708652756722149702498765978239257397831120511612734259822765937408136296616065937912691469452498262851298465694674535576994087821789524516136670225234481754025015566112575911953737308959656421309131998195775315125566109403704826478199914683166792584262821119932161056114008874748838704267755192078437905435585300178451704195339308057037736589007228112669229544984744823377325243383274767748436538531206186662919470148043320274016427147291353389685706719600872971825265341511311469412070572888504035540199938410095058561111128575300826754844991342026121174860776028388993639640187813977722147505543003195791495794392689559266590842053293173577772330686792152298051874933253845700224947564014442449358640124076463166484225694578263884059067625582167536261715218881213587499126119694984009429465458862868445312573384594108398216684358127065563748575039711944894512766529427349493159701644509587161766486437476366079957075221507554999025542595448956337288662163964492984348940086741490774019105167374346789008238856411351150724503939493647168715053183791427200333897457721593535495190743752317766752820773549526043979546646323122583826412528592251669784646455390050347904585573936932649579140767136564343155448106627498662425420258091706509762428152881695918377922954093097690893613324858078012222972293282674066538124665601866590051693814227500277184599688258303192241538160342267221123019840212769704838266592587849618666384158867713469515260067691332739627556413072664080758273450293234496294702626467014693980099296049512949303039026263650154491109603027877344109335432289079099999637980124677779178213336802857587233225000731249915956449410052418580781706064694303444745193980391835192071051161597280668713444330723686751969097668548341481593728116037456228668428658661767388658454504847405455736469315085387118019734581715542424398479435235624552284859749025252160836840161488721563323511755398801268442445646232610554081862521183885467214942919356068866764960150233561196833095226043695141585391902639426096041002078416672911957619357425180331937872470026243662349297333648352017317344321541566452860271325479894739457049855904709848394999033128706287571573893637669170464316119851263039654715633420544581168464412542157449573873979213617763777078282752254757245509825422544054066583518546592454502323363414996404765656048919420286127599291254875740190719028960563064528945639148901664552878039453471150982460723778536920143410231825047020410536118552541637346385782510989917654618554653015488404912757904626154342140460507834689333813036584879258179562888608438827109459432839324003067386217163738482091486269386551174345650646354512122886830826339986340038697251500306343931023832930747025755871327501062765843026602314228498281749144853232628047664413324270374497936719406023509724532745616613927542351198014915353336108131972804918736232415220202568843882028235869420280269612037829402304107673445380451806746544564204300439908820163582561123333855188269270640998774073940681726169833251380030804302307932967903506496750633286244687813654515856748418938804261703779726764896872928965394346765390910226307573198970121772421072260774983800594286531491783723221899214833512219468807473513351559337229343487836212825747972086661859487321138606429029232306856109607738907495338667362219231269534668722604791572663208737391770559361248450056182979920435486953356425205600983019543776183680330353551283032878515185014390330631432810904644551964686494037452091849214378880914870329309950825320052265816044926828573601782628151588701415211277630871643251797780472072208058371026625408203025229643541841610781014599158850313258747401884414233842322382340778004945471561860986072988815904189389461908703795136739277721940322571239838030582752284074028380481813732365956952831819616687259785830690723295267699213090412575589671528412995054301351773659038357193907026547697328030239607828493112871013905338682829312470051827189820022701963753384421165354616493810222282319867090085545652068440052509719749073938827683256686351746218098909287628975497911081211240115128855328372932662641741748584628955105871588021622541839954484198274293133154498809660039624786263147851022253665326271524583859380616971581444618026537347683317193121983849267971255389144082575637649650142894277073168912096116120266325671180878996165121187442914025530559933155401796433250769763569877069364761848886764330648534469979163486586231701909000453248977109328808106981787379279620911364636050797288701526371907868633520272716518049587851954828636757405788578638650827721790721528359978706674606831224703798592639363012973408550520632155525967277813007860072405151129904542053403725183780732927567130691981585959959558580646614820457096902145349265254868718586893314804776518134295509959539678364379182550683786555488449572073561888414931659950570723021069116417453171024921349726090809794473439908114048294270232907070521490582968827916235458429933303785297061019278225701235242829654326716608116505231864358503765231072782264850324359974928271005005521775533999954633184101224908792912014660010547837424376909059423020352959586461501580364268003017819288289407813370106487880274446074954549945113986666366399134192227517881937832790713737536599696834653154703481967566966344543934666048207433219362410860060314363099795008960935021246644086998429616191636325336006925591624951186668660324338789289057014262432725499502891143384951167544115186115469340222842340308569756440945303915811586382667533607359602720194121924590403813539147249061513213495535097036036900802988183348233291982189417931425839429178198277459729263860022274357515732794625665405598884598720331725903897161381870659144472713343713167051231130459334759506979985574896055749709109335630103515758446650013724991300008170790009214383075986752320673942969696690159412850062088471364401873753194375554602162894966747704501554301982375497549702203008089833690798442731239146580211594142908691586931237253651601953817032055715108058116407024501277143744724961032442203311932638322057709674910360604100629385631042212224621121098648649253070490750267027732327405637145549884905282693347751756859719251069758422661986470253569694303530417306356534301435740265858379861967970051032741323336989929067253456499695204103491192970917280104716649500344713080039123970166617244861134923526118011497019151665926113110898774360793543749755649728817016774412529252509769546643635343272660872157178192902108286680858510735736366898945910453365074306945732411237714214595034100389178125848657695547759811636012287577635148203186202438885470470555152912370402689905012511050469383134751179715413786382856016249902505900248551884436142550527148831383698087564576986111050970749226149508450502944730098261381321042290921640087345624044309006410741216457263858371945540110328649289975503166273276594898678413110506896391871173879660014587034407097906604192831945868882872705560880358105635429349319993005864749287075497289192059907728092658455535751799305712084309191437489235967877939907396356667305260658535684643139251497418328220521909027280116142284121568897987870316627219487180166406445247443172918008108495725297044824905230401667045935591810467025964462845633463497104021874529924784846194943687913041045040117780070860756489300674952973159360442574541420387378659301825638869005849241127563865466459228342682116739518419697128704251819477301035142279643295709958181012988297419363684017430754183967024323281218586629978503870063893081185020240060992733929957631070740764498172141678135608089897596380320387876881769348701316440267883110468412838262484570231530997930846945616765024774305693570373710765812091591632609507365627970406285720714905478251715667487112992165312694312623722305429205633111915968999033172018871876829522865768167900922446641612539227958789632898519300503292006498195039802488398845732396384259851111371409576198800406481801118576395078472376499802841494276581659796544055556800515633595079640922983231193559709067641595160872789650242958763802645603620946185935670960819419108586373063193797294717661780361764156746527088119988750260916588340711491320644711121984279669819998521663375146381089279867200103014719092644571851550795218113978953813897046289015851990144017237604814610660812060531360391001868859341096224557482300218115395477453534530773437423280007887053968351419509325131639172724723372345139821602334972676302430175993243171051145449260330660615500967988219713412312634938503647113775868456539404222496792128174285554425545719950168295478950683725001978559097484506158814524912681356907205535239271735183011598070523049137618715820982114232977814667329569876649780020968459381575465455942302442875164164789384778102752269997090675034898313081243155582884640438588236908965100561003186787867925668922196083451967663676769998953297459302621858593262618759056341330106518232784449946115554514636757485486957149712175302466441912239405251943106857286372651585087906133742676122530455277633961706978163179708486357496322407747388092351068013296379282495031382104627534537983970182101496015063008744667245190631148779137411173297665570509699677644572712744166898198833398234772592722719910364431188317722590877286181346643662614372049444597212192369548172997622851113614862646432843523020456016950789712770429035765519665063064016989026720466566494433857621997902376969154046460902322536958047586165462411176943187691876807123127678393226897200405014013544729858127798631462715082951569976748065052460160167274083493935914043791745733753447659805046313029829486817511258329261590443077595883889683162136905644704643445540663050455350882839472850775975738624765814384143141362758791389672131625008121881709868778176471590586615476774360074099004480778005328070375502093213036163000932608690670861419225674768202660015022666852090985570882556186382448213501223837178474432533396899587268313737495866420869035349742421202046388381545405321927664108543269821630458627966234754019868877635600548852872330763227930945053572781909411488680762516316426190554969495058563012218309308237201019493962746892367242428715138302383580804644555669644465426911030491572040645029372642122132988166413746520374435072411847363712413871496472285009984725104089552908402193416480125302144039472798926744920046312281803427613310439930350587702082772744343541378629141930513058850964270368991013334364782548022147558120308569046592261507138929870107584085507522705002739652582814399657084742355289051597051025648325174511503232752936294337200274284721691589924677924550242898321994744693359791531314135330384644784822589498831745552267604938822459652416809356862348044418909390286986876368074900164415257014172746652100267739419835051859362642851557384924254014221216350130994601550424449323518254458605489227405587966610934533511490410405784538834112886442459847147155953220594650863381536717854583504792481409793641356985171135153771316466425837310359807272435113289159393233939356401856985356943852478648465551295300906998387388017713992599973436932725565047044897287015251547542263141359209595639072796059916692203770627623418864509948443646383532759892405060208517463380485786772644837535624444313481656871035392803805494048366384272745911753915823795441236796577287188956784849998655187086132354004371997285159702673296455749735181192677191203512100997223886640406410611890093446559376250673444647707192299224336728959411210259836683249872801960670218446330851770898993973620695968505010602255035228611721278671808433756879201500903814540362007500002344070584587344385934316722979434749728981465535411713802168024772710748738082621169404906457530833789969789409946660918007597614776560017819461853057966499213562458138681701321893594034122154120201134461222931029515059174332784489711799557146814351150321120215371564623321229311338224029190933522101100897295601796345045381837000585676126341628853326614997125300210272203226244815036015191851046591197937955289830861981811685298346011010515867614490621707189755191192884266859380460157442866325563856078161233548438880302600098130994036492206711467325641721076268092076899324813265801249901700517108251106905145540196119439063707105375438385863190438329621803813020980927835944989721941856375923079703089893217281741958599168664831832013836980083563243753834206857046819323739857985233544657251872201184216296639079407581208179566394591955532579205187786022911522230423854950013535251190831879117489107360908330343112171492968658365785176905982134951358661474131446397694427851865202214319807254545406903727856199107375807156955657702379053011856156684394332767366119174827666960476486538333904552051210971929635409131955589487826190810764932152294396845907480600002471447270487818500935783722914016758776471559607829217415511297678837774395537823654237879020667758293829684296184063353084640210987114813243319490157265409600915686601108211676688067384320069431238355251366583603703976378116970056298897386392115282811597929837017326712105130642615898400230040432089935334017973861783151029165937169696948247006758197030003672744611215119292409634674899565560533476204109132815662864087436710141454231000036466281678747311600581378987924425611271415573153978141022391061769143954900412477611439085904180615891947813279521230485954271927184222066340842460823514273720758224925522883933749109037899720410329137741306518255256562011181110071838430509485214487706772001578874717863178359420908975115217170480440643210991827589332992562347949678962124979899491051227100605127947999562545858007269568776725880823585877424319453210415336215758988717035131305845976200919461124886091443017775833590408492162718914520275008596308484752248128067295220439625324945221056894447357817723592519080589251405380979678293495919316403545681229190088929555129413911111877430710813656662068906841221793693965906049385992277644165604489684902161736923754453903495977927614596690317839529969208680919353387823551366144736458934202148155166842646830965067212097312266808659282267802682678609789902784053703256659397601267224113565630957840020478758819079186580130607539516783639911629050141025511258031392606364364547023617084356908664211062166331226279571691284369567579912252024881658883758152822360251918736182074603790866634971623877650173712043099146132016693739071308244790542994811024278349118497357553591596533009526472955410179403071471676287024788585001025473323179827654772545967377914160516090598963137511710892492309214008050771492475471539070842876673718484292797623190224035170634559324050286416953715205937670740121782474072238715509941158421524963787566655237311990857349101599075562673984869574594403040335591482753387647755680723122191118776164635998511164979984745641689577750215638155172852138629871354079667115400919292544818265485799407366123342832122318777549311828392418418585895423176155056042203081853360079243426025872748580415819375336619079456628881060228874415249604099460843994668130036357262106098563458224458117732626778797625257573325451668644765960269038766805157524681984507313323301977980830630793839761647477112436951006106428183234621668956591713268874393110970432592781272266536782385408324281813951278116408769580539695507327006206404504057359007708453334289372927494588315188298327884265139246988113940815791867636076996682714681615115778585857002033447931483860379171612429095267797026032728469742624714286777915088410395344513943525730295807163937212452812351070693176230701479254646752575145178903589397726222419673281066595758294520886274490668045411138350177962526576399145918394518415087087672579578359447010689431402905343788879692099887551710251278784977221096924636535217397441445324774804441173734990866364739170472052122628651805577789885892321477050464860934115523380796156421196412772925728418555046010941595336126240007554742137472919990863045237288933008452654482809725255861486341787536442482002326704273224947942319264765644618418992761053698477369872255689417675721892256729700042898816041948973466862269017031431885270203213764079388600028411679872393817059669010066466978983435098353914265092395582042774092840808973642863388992361017441779303085346121807158236041686746451831018720597524484527970152779865485033858113453997326965691384247289746991792401533019440225813716492752290184261892739043892956105407410653331333194360484218949101844720308681776456521266084904972210010013128672047091602778449966135022648047458111689363209473238460597357791521248426657368351148329389926063425010346961408207766065103423740370524136922104373613195797328800173096402439881377359456116829258686322934063331966940877677604086029145796838965075125489274806229102983096346865986931007577257932535852778458916547256744320117534739326062959187833112939046748981812148217791214628899869568338055690402789612106218649525444052174743929765537132880364250322201740897658650082722280274783246645034415736534103610563934730903997935215070276615858220263121826845542374710355151060182995829579767811339918055085780127504722975717520224012206706914117751225874539888538772787921038008947644398586335589949218334805365464210719901968771881119357408710499660215511225791003816363880737616277980112005305513954500580104857584779690581602977275755671801110274095962435852820846718683182787317478155152112591107369492472803069867402141231767285280570408191130428486446571841459972371771114061035158196710064997338673092415915503244084922990824091608073998722093108492967636577295325666768222944442501533418305987354583037889139565458552372930984831867145274031553568833834277094497907902321624900201797989575231032280565731078933759063905989804120937122029224451010236950923220405426023252111921454453791093463990073569985034017146268075713253469106648899218372844705625312210748654408229191621961824250049546192473243123233005151056114979310727978537575267949483753228497437125812428798889565996160586411898377742581803830741624723744123613107583965985041545937393409792911378082839985167719761568852773234302045538561866515601742662071872942760930065693871293806695848375028334602971527001163923945074341577472319889462757721577091300415526794718964270865137354719981772526164959054065759330043120935274924677117170338544623506209051756111359830961681906621093917049795165223703821155521444701531281163831941754769093171348307011730511353983776400739624696560963517603906041710969683340726276330636181508629976889979192477604130120366593762611403452679199441106584354722096642349348665016162841491743767294044494969105909116402451111854135522382050576386877404175280624507710898971021181984138748878802978634794211486457089252425156376253499675248392711844797680824380141507678288975190349722566965741630966961767285726972740717448749186137438062276930333489852833717820100731786252444877278518677916361610321234396886510168377492378250007056844764126522156053430144591915017989701038661510069217528848775896374909438326846185709601101899405021492120417302018616860892700921577990726739394200556812351737473609538365629142693239240749768820699037734107867667322269240386539509736062118735368930161469966989209765310288236406944696620091162316099374837429202194161933459665495241043844077563953787349805653812798789150125994037207155562990806071387904163636441971342888428456670697942872185198955288592647730313390903928635352146189723743311228256139621922345225163795746225869697370655947561688765955954057854215913261733459173685966517353093486822925896833507746879664867899677779536360055747370560843368727338887016795788885477202282606775422656682089453842373389575004482137031619721301785273343140902166564940998072882786484601607086267727233074205199628331559332736848461068789476990417877845561491114709926183150289923030237709994960052545700714495915273299192258827773090470322325054772298933426612571192963337447734813587413740255797511537142100138151734841379641891552452902896986245231958762180621938505212100386922159808077520548246277217470361031885690991652818228003818429205139652402603245120876833183200696481214229520182019663198404718308758961196943875203003745897107306712835095644979284173241229658272070225283972589693263273375267482766556441017552129908457886581835586163476327596196648377832029754537660959268861403650351866122734365293938633443820905948594417271035726340126135273851377079461714848549520439600178413758503915261910736719803833741358576876144224025818096042860854742078684737876111257552877483898593644318647866840586636674451736063001020478884236633062043499319003385402118813121050105335304192048946916892219934269387649273818697604897181357407819055692733165385797827231720013213761515945724137964889168024168097160180815927826659954546644017739575878575593651530818213811550240227974218350098531991639144664675986570399865728828151345381583277793528879875970387670726552608154600034097925715898164314084424459519661692995748044504826975778375345228591064970696011526803470903146063576013432296217733323176922379548915078009422667106674046096722443634830344380014642784827379554894487949949844560668753208632534027033218489933252808857617552656733581301513907908848169894837497460747738348855481174226960937592918150117473834441451210002573660617465474871144865060096356107981949641791203234403001675530619922812401791858244876812488932090937107926091396985677620580489109948096389019386024881635529960858420109181475307284397107799419268422113616395971693281476328002828062850150864545933846914034907893430320702836257191264371451239920493934988632823075879347765499301854366314927254437193186309930198360572533434623012809095163458158096100854643850258224544782775447816359928605525994088070560411985425039692977286370644967983456314159949571885077981565292607900866419708300757375696553596741598098292139518451309330543289511337658646968808393450810617174496904047814372520228821331731568758052183055444957987269929328799691845083466554155510971037185825523427305989610308763501065031533902824918628132891811180003665189287802036464863758299260455224096214823421466204237607357155053417480079277780260637602919287266750691849798978097813188649400032685700442884264892891528221346338398250087007758378185680851187125684074017824763671810013141706028602530556766770585592885506774057078270735571340145100831840779465971695929846278750447349697527581151702305171587757334397627391656572709138615909832529177900819412427182213967236754830505020743359275018646805611949338242021669538972764513527112502279069058687612354097920046016073555077069234732302152786460443462969156331280395325977092033604710315678251837277212909677702913668200175000232448747150615320166214130558785960724942728556185556966088027489900250643905617105901217183741718837275467865083983466525132839531781801281031501241969572466142584781676183214161108398276723703283719897878606455046532335602398591154028249589921877421482220153850752912753090336687754582473056141944773409129389516577943109200328767505403744682684133298975029725639232506208706361363829948338076719268066987914717377605316575573389995561139693689257680446098491677174886739941967900370974234001953870318175399180208920415998441564664216932361556709562761403064157364365354636625930968897926096176555502142177729022188161988151823956426691198527150250555551856691144222087929995532424797549720236549911742362014077370981879012072576479924363053865808916046119352067423447432621699790632498537520326696192373909856111503061180272430068963241931357191193560608300602272936095137487078710026401286298106314378769505504569510654453667010957702015877407046431350307980204818250904796544545876831086857879618500302700184917141065962460625312736875359354137392687154527492744684612826150027961624881695935543142414604881461408438082690367491297909510131090761524615773291495323583008931196455512874012777762593460136496044888997075748389572341853795481900325995892154611430047223075494870308312336642972027454265716580643121722377515527407707372158624674947988199090537557106109423598634281559842377994946728172942573976842762338267611013029754942587763085384560196396840066133914042530337625015220753340522853781681500428014082787309936512682254144014073275480390066621167283992951336307718235394254051402349451690362138067810477997184096826326044993681017360236658041085888932292678210089351298992999205200629289619280295337072689785896932699123845653492482704062922010100687232997137622634784739621121256974350272189254234067378362377185321617961450405759760045793334360778925967638974046033299615657505202712693341479255079075801626761506468843191003979381896400825810173968568072240577289172162911677910880282814970572714898936770093496311279145537684912818503552312986357144228550063196618986333068377483017414094741493678193756566194656897297698363369070041745921188198693517332503292367136097431058242826319189253624322919429752937466563911938724834224551417126006351050242702646100976673566060901139616317059156528685688259962385263439954218428420411906623906499451704299890168917423011352898129300970054917127762682364321903445495932616639683767287158419812396755920319027923276952581672035508044593361053311356402826249298847012349839778981634345971821973992838551975656147329982091471215474782446325745734144925216106632130623465731916805792509125073186750748638819583521673164978319921438711432736728474553329099734742387975773252512979198057208257171790097419327608820683029948609120528133661938326214972581032130041137565079947596034721355848016454849156507553959666713170692703630194279122050747145559191880049213921564293322359082460723938153540453677633887241526325383497839578316810125181538040522114652460713934771034825561517876212117538037550602741866605698080941644683900955156656719109226956584784604064338274591758469189530315193901658784824366304862744962587145352827767979124771914293590168759640279212319747846200188814457063610287543206114847490728985046745696624238752647199153759095076377758751301028495041326861300039276982076201159228194451007779082540734650406988659073277651200389780086356917168983311244019045793627451845071893845388882459313881585186090071939889403096459876236512980229227740362222952050273157053374408785968827023747421117923995013676072080970160405898045128617284025667231275769280274194485335951598689874157348372039440953865530889736206534638390390016199651673112019821662282472770702613397291176631711552046997810247316949336949102477099821127901352081762724172246955494066588742944388931191869662993974381869511054100837201807508007050008718361467364315790614027498754205252444685118946873820956845289756459308748992013316335466929391655834644894527450855995716211146174485869273113235156391271266615914586507785416673018353823996318028405973410235287450872734089187703884993051917432043782311759673087015364506211148704673132046627504325419047189924989983177452649392492782218433470100470048631271548041585267296297056891068363129199223250665045796565219767483405577743658754237875908384628164574362359934239538362219666910328764974844997716974509299840800594137641164024200017504220694507599024901510478581501927482241348013564979197965932492714618014638491411512976601682411584507193610919935081303047675465225665769715027946899027314686416061333854354036243379037295090677590593123428994432125970020429577495867256080473565020006575462948574590031746571990476231907392209509144556078208015692338199550298442092845566291006130892665922112034109574992523343319383770260305979430061577248724213562833647110166218290766791462455675505366071615414122435285921807583098294329619269882853635885094229446175421968999554950898837423755453397395156938784823408719425713613148342008575522754786028691013901595267486915763210285493859155063209827378192277972436617325195330724731595459685306717730331581148952911861687954014144420952475255914078364387560821649130987004930019093584176409765239914173549954662318092803006033997909397060782608160919437607295726113463321078062740816549041463885106268225222406139477282204392704221719991795586775697235435085720949047176011184402486574781811070912526285461841209874997816515075628754344463434920668215198915694912669395330180855988613160560507581742959253786995181687479976542587551920521268245923219434514237849518588899290342197166741461036742834357052619839698942469238777755704072318322750125619392784304537144767877728221044058721443012279840603501395014859982687476352016621144722378447892098966516532890795254879752852208823151971869239724631272182849931111334007013379397177611690403575513460224794619054821082658451550541619619905710380533249520993274563198499230915992452041321856832464315149794902372574506310593312410726844770375568093205389689555422739086381328359022149119733561166857642724362536697942578766662819082380675165550996610378139602988714952991795718437111609651742150783254063715804930905761659896303138812127548975285822340598738986125571165817619230275657296771976992765991693137637563421786099979594043135598033462505406533204392991359685007356594907712691056437072453636698115918573616767691156625217397305385847014798259214825101965641179761432569192964213647081108497391624077635667587750354301711532573827134520471249241850765529849376211413085959311506172473216809979826190872567943994297843131232482264557504204632014697354108268725811866625013923803653067553568493326489239021392905299351208206045950855689181722723825895463373613363049283096982854193411747156531103267642577093563314565738918239828180374626022834945878080533469878479618717293974278055774311795436495730684942794015421597607971790903272953934879509774270092050448340959875225118671556050361925090544864052640056868287018624620074101953433960124536474713767508171921147409490288349636897985173096542918622331229289935700140319822617066790622498213469125312457985238531182171628348628609646316041077916570645119811916802569750377457376910487447594318486153693330236289328281272700834332534386504629896194264494690127483933839383251547034542139192865778413263955392854920766533470490017986417182579491173412607227718262090974532476240231722585563420544934211957590117171433856769321251978543916961077634299331949696570508028803624206477181576156560161749750205340766700297447645615457803565873015002469649143473758823476663226901976224061272760312683786477152648508101033681664218097328523494579204780373761690542732572340915951413675470963312615082272803616163376225709659937714411293614196601717419290725280964266479330148954236332351305072160761052063748147764963639189823411354259856526040637161905806886946545059302040888414259210541438643936839972156966655399837795586061662436424549502866115467593863318258010354540480277221246455516864209662542000855191203779389776078908190386979651791119546226657469820621000739604684625735720598485080173451855876035926422093014974982198823559247873056140952471562537151634859970232955400910398175563205289739558297523672112560498686596805832115885986862818001418266376762886715152412181509086712752693295966199371383282410102740886147899870353669409503074256822064179998788638155975736099765035919748034004877606731143497943577596129547720714036894756730150970268300262058511144309728173052835666405791099010913025866542690681949061565444105417450222952109428229491729118748860732103426004700739816824047696831464073340310049049697946531569501759964834895827118185045665063047758239491643632097501344929630809732853133237755682598735542152146729397493517555401678268677672518434124783699521211246432862964280264877655065091090338621544770470423823030229003964387723280719267831973332605493234601358269533244265042822618186826388413897424303229404956865369032972277472126592169458436122371258155832646065835204147774528693055496185882683841772533925832069666369011731811953170991444646073055897297433696219510434938187010436650258450421947645429362777380459352489028900321896293111173114796124017552690794370808127233619662845987078790421170660457511989942562422691153952844858232206324890796356589341887942252288668457931772354586786753476733204193794224180492653478105327059944995464906225555464788273381239604876116105535387970799551797318112641326942676954079760134523357409742476612264614508130884400275946900878587638773238088181116474350985318163267282725394316709114967813840424078063260077903869100257648692703032622101410444048886124509848341856996171301239251175164429345115963082980889282111012304643225954619152181910690191564228909582785069143678980902256776613212393241093314048807520281316032289175305952890012828648491201248212326958103513051891079419729302287642701412780348069598674465247883856653399981685003222005746622742494904304393640204403464727772488796071102943454898988336377436877546487782147760708799430630535611990509337403623415865130930601068109660897329002519771588826981861020190215375230612724288211567577536456553306111888821076485663967235570410910472004206797881073731831836825124292940474939250338157676325386759226550391404336988014857720532960621223481344078373576262504509902926038881138684598367654043302721995757845780716002547102364792259049485323207789931587675118123182761866609620438704128096569043722622246502441058932502788325584211751268895428162170690101470315440206341778573510743101148118180508745491047966701192305539871886071419072192201362286035338375172006460947062044891156884965648991474329165519208273391382117551367730274958907930505854371014012990879805721211245295955526302985714930678357894279451934087641341332904025785044901531728560164333936595994557572570604048881737727582765513233903080022135355368315672895664469047294801303308816718348311131197278341703544999746305477217983211697012276569437651808313835022044260451682741647129845993458177777546337582836218792455216752429292900115033330253860795407082440948530426508532430960762011587974107657751809623466605217038384036957064468532027506252339856243324362846518499206944759246311668837785753881690018618191896768882072171847073103059880692640286924963292238162791775051768443402672520745091089395900167759569984520540809816748288352636556252689353304231134168742346728393370822764222962336830172232320962527236303740104467159376727020338697081629174561770389476249052848840636222758624819027471238136517474007642117996359863506299846163443437715791209942563439969643986847194469189396547474864400154173514314750275318835748586995145994455239607503572642546040437025045125071670809926677775512932994303043955370481571793066366694748453842347753481786931085949499733294878092524702476973016465173081410316284193309691513941290352348705628380821141227820587049815113958503084023229867827618156906164112782604505208153263616438672412883559073322346529015307938311000291919436798509745536321774146790581705483704507550825763803765027518370815023300103088434486530442948847911226103869352171041128914776501960526585203547320514150200626033178486485235960503197789217364261150074179073199908442991290929950914399758288487993995312247256412190476480772844659389290095917033948395791515093222824388569143478988954148157733066523117972514680872508400521777808529087259833882503269984500933600088076791549966281233434743285220747212815735862960480663772296373969854833756985725829007998220052575421845672643756766553029335033993491953893864125751478029224308173312257230796807442405013174875063365399824685117622169962783394283642719856503624995563058236621967732706773672128607396469869460462025591495568872847910993984678029992226170286423540787186288497946455381959120278748191048371686116416221977520389859029304152495030077405331395205061278053876478313702301356226061377131018842932219197348254703973131318041846514054185071226419516641221827351809475401248492097642485635149229414166694905657430652180207500007490669955173146647524177338200758776715700199717795623411198699548345802290375498368786829268136383661034359582355158710002279369807403539069199379153895335036468955329879593396649409590567077539366994346822006074277404487004592993455742440360599532119537075427467074956907353748990486403854027213360748952508632877576867323856912645574966486323243130701753360895068405775536162420564496619898281939365834064948013485122113029132708858565252882398568218923095696111187033389585772020863453046076785198431316980798454624279057122412978635800564094662098614518223758830349641113566570066595958850162234163618163117891857582050100289132661146188275843248535906771874132590190904949549575302862109710255971021955449841313317829821069426936753911746333653921127468438453123295265754617727406589738713128880667585405792633172234980337940644025527591107312050540287592095857093037624391461120811476318611182644107650677238361933974154032755719961344687055143331585653668747766107779237447591116174542316281461651931507554028509860616428365731220010909069470416485126307036563658955323987246350609951109394459896729302993688865320356871799524956241918782170285081355678107756184382042442063494431260558270852477376476893599637414367725387438037563052949401773258602673080938189480792581739126792193341963990228336383792606574297637062961200373458717742186801106010526389125724120171780633256869603727397643904495854229654172720118102295652433199242190893632318009581686860838546710952665590224431442386509643628047782314269021995550147667403556894815079033748204254244111931375248250354300115764106953538952203638823498047327524151435446052063010536938831980079605203520204811866184065097802176711255685384085428538816676056227460847164522142197745570685533677675664633929460544747865822569880096437820191877882523056710687628178587774008430372066122403890014967230319458326299702027531465643402439600617344990781285405622900626321569025224366857904381216333505179565743626219487935714078538411430916229610908994498055541438905872237621598795825414977386533952268511176878969327394719931490832326513846299955792901224796961083920273676991943413170215055407600455666446835514258897358984466185721897813498311877458550638813001492241654789285985479553512848599038435883454608902329577071802699654171764835079445673096938880354333850149351909601563935524426968680556953435338067646367571434705023236998955306620228563216248888002939424650267535471663805536748064643384801561777741120113670000797107445852643992757501783401251792961770989419825209700432927993877144297242118440044996686315574760119499290524342450879499292689783508942306439710490386720305773333703519596116370476959385380935166979738286093327676674226922571670532259638266759678538198299819339709041034161887292834135924034104356917431296033608626804926662602697184345629114232358794340605451892004579579082521367119892019543361602028924767316773491857584883545036885512980767742503882985645794945839317955613555815451001142522106346376920188746390537699290040477874545932187251574953926794079751499109842566188796708819806274364932804069419046625517193416731736571679808271751048332748800648422656814575998866078917441469188286756048029779025629231567819932809174672332454955972822211464351976248433542321164970200309372097139404083777632193966568202868103600174386660463548179359709908883241234990972264359156091189815905271914143100881136371901862997872822409485150726144327544466141126905035167984346787978431273409292817009834324240792874737288348817826519911103187424985821963539115291210441336510224784784669948748533350945077697418871445420449668264040575060707432645984809197062481148888999067127504302188017613291601787335763907347620058530051219792626061202667317670534048613344682083104484662853863048942383993393643667198146676022019523156989880349246316871695540762266859047620859397022266544511082106017429429861636511561988645406807341156363291431098712398884774102961420348733108870894831237475710884058354459010486800183495564584523529674216334400666350301309184906322169825812766417773557265519955825810207141382134889951692883958385205785064523396557438519469689405505206531112622474348562344380088273031333698715952397300229733151404015026430315575894088326039069347544985663054387265427335990509387862725388044695603522708530532105932677156571017911021133345940372646194429295754376277966375427412507473418660729603496902043474293795342178490970973296216155576419240998765902427649520472379686351091539605842811256906778188010106381858399490307909177785702975222972280673042757947893768789911027967782999015398321340465532705906535237073050595860191755833605927250483715849940167074629262814651613614692859439925743105699230855474450627397295345885365088407011724477736353995230312077787379711184966819532563291475011469254276972455205066115244149824450576216854170223945086777052210182401669380887071681918821918620760104251776014961650669614775466354620747179600773704721754215596028082841733363776351904442222635428307663784606066932684618433775927965514457617626257500905964461444474824598894616136504057291167028971765252802816078908032244504860444014194926320736486366151406892139078883347508819813066720063592662164821155131089562501549447941425668306265757624182223266576730929730281057925628498176902190884995468694433889060736625438933031334198380293307463106255410529886591688641084021970368255553196603613862522476940072436871865055755544595108856509136304512771928095570187505106061977067981113933537781814167421425386689384145749582733424332205048692499755619801011150036876474182669976342250677363300926299608543375136052142153691376932781585700335998339611975852586474055716732093478321476209844196746999662334904248962951554716025592736699976951591220649550581458229833266019656771189520982100504435965370180828025363264991485455173648966511968596687836628199693875463572600750223552705150403199235575433282376084009730540684025375302527494066983083688077401527909649378520445215951565359045702219420661832459763913130463693671158349886347011987438953425905911428606373662252248183070716103995591440835075717250406566978116264585702419450763990207249464120004851810783064685864769473109038122840458594929721858976862587665632383800831272725922319600996662683168770481678153310752734968371917326728952833041903506037728164512692379712874152960385634101540844614902741978696181517701938046611282383772730228045259276094190992926549785337869265255021507729230046579807043623262354165334221755100809149755428686712436922531418105828878985285879440237586064124752914373069046509976963436410299917996893139744102201576054515381065010184270876188447973304219143137768903165726392277180278091894350915255482689907211592885826496196404474283907228520002791487763023151136540709556744365819887188712992527101628762553978084361395882612481891800499570616201566473738144332486226073155441013916073049948677020599769779259897347453922640515786574933172527520961092120322075516601750851457183222482048598438025686064347413773128573668858376347781907530242850953978497469744590050936052658512400065115912630007256537679938288482729525710514538179295042930248535621344144775155205027111398515384355142036179498780642895758939551758461893487996025923677646932118471456547505040308734524888256794004768112148155080545849033392921022655481020892219831420116770954398661167067893956220125087726977136702052581201731795924812702365133691750950013995229169458919091225273076143548990285425359317343604150787988896708353229878715067048855295246481263466927151249219246981559490304826187319762148773922812233464831718660491442987550097656931644532050071546667473534133270414802816074472840068512426019786195876410234145512220807505686478714355543086685670581588382610542180539505335861403825356025419267150143976206926655649151802176494107318992811002805433147598111844337005730203466720586695271820537669824379074508591039428744162977348038436292936986191615938686454192147937150329193196428722481233115711354083388941997427096751472229974405620414212081039754159081747047635075686370947326189076771949334231598458919414776048605689622004477180755864446539252830756232936899228350244994172419539432051217285987745077717267364677403118706742598672053377887422305409287576156786267084681952079415463869444531335572597921525485123803691945053520324385312161552565465536284448200084717857589247664032284090834344679459418662893225923240971380350599900164409808329219467911225091047802142725131855638042277395833863764226452160950599473855369148895821572143284288624535900240349894697717514663366929512154915169122769239806488269165675296269350233180040362342295697854097496610014695676675576304270226180573606416046456424034511038324343404884753153920286262581379456756310260310245513524457821256551312859514300241666941479974458782842914776211037754581948019705874724368063820975913750632813095425297832357622623940672106136950017749784616341096113064422877685672185397626937552133019881187409183342903878464749774647959952598801037543757555876176318076157853640529449928562365075426149387762876714184438573915521149383678220886752209718293911353384922069676687692673289903485528955783124832180943029076382780648341974078797601010888434103395873916714037473637592932855291904824253180205288200887503527740201666527771356655235950012730120855179095213890417481287010210055416238349525700572817375119511228247565911766465374146390275921927230216346667601590331490525640816332808971303539154872342230881948628012764173079827130643729009827174867106987317870093869327692709001055935244582564021129418607561382869492987053114163789785425309379504433885642488223918468549033386547071044769188719562796964603736522641556530373607562445861585243160452791269252927545552441196838243991715104272483275284746470152346073930830686786093021204098312655255549080834109306291606719015718636662233289990104194407883080757822016150991604637518086894574784925090713959704355537715307393019007434634577183281954052759908441484035503998930995388914423725676175762918289416962708315899712733286346437605295357832279388913874035945054824997861724042609364584451319673324042189321512212113150502925908541733537539423603237391661764935731520283782198223694428890962385048585319982339589857487315498357602007692057616245767698016457986645945078983413207340286107519054316185251820532062893965378510230874988182817066590697662162116017835902322125963704689271803278421873535976970496262590988905159689164563540044946860343109808979641318122328553764870635932360051565038831734740089042696857891667669771364012809232275525640211286916795596588967560214664475764583889316496208806801605563248268747077155478109513101331155338710794625492136363870694309667180883566286921995615079137839722296675974283841981224026852419620592041293844335626876281575212970487698235992828108277190748877579724307451156427220195271133285156406467468345432506916315399555057389941495116259496896860207348049972154069543470821392565389717632776459575584947524073145394146969702344834582567043467915820163394173198380540429097531829793025999383157674514896496959459655330506946473104271607391084954693555215312282064867952607675993401171670207438355449554178798860148459179494655599181594115876083622492302636175083528084473303960990259343643554757423829940648628586490769111136008534788566850684515894158209574677059037963424441185679935816123137452048453370207802089131321811127949667705739168572871358129078567663315269843079976109718442822421885233269650615464888238729645053189786720861319875232018720488249682294726886938093975788594057750676405766112991830995271025662607172489035025421588199754732095342024415380985483483461656495680343547725294798757138561007070637139685094625286209666599802118383253175210554568824846324129762065273998645216020908486071320407339489333509795289158753650669430523536264950489215957106871218387148254629756629221926346333261163356479172873216863602198209687502302750250173708490209617566684716304905803495281559634274817061648724834280101169163745882681588718171271582065258092895623935615636974224633439718156879698188778544662632637515532917603006376387038537517052657625948926920230037709761035062451065683155159451396632701929872912346446746371371879201447333093036539892116169906392143651655988160494598138706778270650260513431395404208930078191872276849920723167042541013008985036448172974730082615593674688621331376123725792832175949514003704787062012341981686043633921494286417640828220915848812708073710098848018614859793283625394914366193764696361980371503436879628962585071672401457802028710590684931450990456683631582445218708920928779103765570764504591871277610581324358328687491626614324392901139071722936598356296709168402913622105820493882137572443211095996218274185194032417432637075153254125198993782531077575798107677119512109125658446564460764340381864625090190064246802297426402370571128389165954208863014730819125986786299891567840916936226394547109466165894665006995745126385095919476592872082191446436299892782346110140880647844315090662969567097817294549548320181393351412528581682218394790957451525068789425412605350959088686521944581129262329810508493335307404486210674544670740273998468786162632108090563578165379753522952581688503784298149468365663383627249553316631574126295969984184267772005828267302353551106090722618220976856934460018178893746646904670144266244971827142571700780043074020952375060617541803754494724297774255701549305648412973338192229289539162207482271651105615244110099221382539560797679015742061437057919645944949574271959067443647336685031556120134768828782123371708595300047901166818214796674665498129855260296566764244137958021435632824243840013119475319432404054013895136509489563183954026531420975232855782459509462301819600974748801450794389844454747208295756143164710930995069050785852709887195245940808502600045267276326438977230571212643938401803687016487749250235335476194838001265170212770576272836374520235641198299280728500116941421441217202327297722343953004398385133724264218335476399695288270684398763578618512749513999927628088095695775421845925675371414245652287568876329628641700571418183382703064809688028007539698140956046408242465395138930912356173093233767936357190299555116395680223078853791357082460534541880391094090285570333136220526076823066254558059941488856017247533350442661977208397940897264492407142337193671591780491967969732583409024577299552401977247840746129874669942979252668038755235690746135290795528115782940434004719636751146802199390541690145661167431117384087768246358727758290883586899459623504871098174604244688075845725046071526908198927933095404615944011295204135439886132452709677638251151606796867036430158024916828318963437320850849116524497115029660068972903947535546245163078761118971309155104338589589501395812753766614442077982036234655156753267677782689572889854023695879969435623580030428052937092094903326211585810144435800438673055268671367951184307785344828408237063721696639963041971182038194270199857472941700206912193670859478076290441540523382624435786402030913109245124478025789440168360957820891081465798515413067727674295298823768572060229136412861987113295489279282462587709248645212461061155718691775362880529469932503455817831670635416181493211547473937594141893815208879063391487790014248055345582165820969344581975764173537840780059515068160377558034877907084887883320226657883827160291608085747977757073198420901307090921647665583008443545695256629867654372896367007745104564764712601334005442088508164965735731153190258776356371552214106996106522158402235353222050866014386824687510486620575581266882415489170479449581598921747819965040573551910605794337633554715141810611210870019893353307915765980903834583486310183338985909107974858589727268822919529001678328712698937773859083820366665050019909215710780025277645335797665524988701514720484466578926888322776045548402798614366716055208167732491845335909307658298062269352041220562058949465716847208555156459116821474712135394753033071102779317403687403842776409203906806635238675805252031967922559630190685608144864325554926225249219445393902935081553723610322827003671213603273358129630728559589127597599810462886965669655405589866137058133135711781979151802801156272026262268444399187913525464406116649113602093954715869566675935297962490738970929641832014170048231712674967419889382212312653778079711072899713856527603262717755186951693580448315300304272178544044371249851506709574362788761657418813639544129646782222973591600539633091339718029660196599803746989632954589251557121529431015963373269579972983806016778994285412792902648359815788437504762146068050097316188071278038241117030836779181554176289657610187241142957059619053093045216850314217329303054603567428505499333178247428271498849345120782538435701551597424144647215338955132835917783957372385111153290749012287516273690672981019567366103565771391236553534068321081174984671521033640008437952730149713465771233570964729121090057328000102891420313252237079502736421860695184072271646246503482804584071780779900322392018290008093126320717009669482349942393668573500880352010344744321302655261102449031153205895126295481669542023140301741953439905454453178603906896709995436309838614945859336445543818924533172965757559455751602334224152551715343031885402921718115763739700523549701482342637811099383368748060477384381307453729089826482082282317272043702670417588018395466283247375974134597596812115872219487432650019198145030302912052692337203838224423128242483616341518646484263186951025044849228935945710874980937727562193308451781814928732385411582363227248970805992845401247281359923792362417397119214474303594544738976500974887735100745081164414866767572937587220999426361620925269707180292524968011315398538408867921524628431846392363378918490875938917297782277746653040102618307828048137787756281244627951059711220591452559279056984818876132608166832772508387311238182005882908001848475975924980284309490931512148261685594783379848432185252885662374576500275348809008504113629322682990578250044907880859870155416861812598331956462704760540813984133672684776154009623237097689962180305697145770329702580230702191800951799675487416468368200774244593898017966079367651032256652674821461582968970685726838898978442400808249404504963352873720870900733825186833067855857867479215263059917291741426882695932376754980771958643257081224957843908114788205614849611972443015477855577523442418804851399602380742381680636262910366674354828509646292240307577972819549823804435061347682658731041283550514147002279175534587524646806437345325327785753417060269308543929136977969227263516669413264565885723514755101480021772535367603214947168188846260141885667014089197863732762426245244129267670168736835155894106249782990019967760794743699650389972269697339769901629890650579859004081261373223177796786136532110073009140929460872576867462388316107078023161013028882676093914993403031809260072036488617884507655265363861187276950100418292116120182844702455873341643375206893095408982852941375999595505797624135938952229238012790780205727256403198066525385207149667288161107362004752529162535726374072827766006628626667005047904193122701404262826632852815430124924965544401000428173744122145105759042241216553531037550592377098473214913422278905662404951229156593414938987588753385037935310200277161117285838147741325515968828712746916203283727991556384951867472321237431207975506011109533488047361192261195701750153233115336298779555238036302808634442187196117128380328429140709659760824185638483283736130961647507255965642578477385483835007753077997934781165226474891698513481023705156523827063166308939306415266068386634745924414265432509443166375116010498458071907318303207657002129432011253951944742973370650962068545576377563843788100068854119292927942318651765495746538020111643835522133550046526413847166897616342925113181234813591383367912070194892195189585701137736994284062256381295969684441090246140685289091648287627015322183709176033857703321358239387319744065112194633251871406782170128642042591811584072120643237004177724875276343015165772652750185850129223239784510774225055344628591171334784573052154526495659612084936831322369587400729688569393213503799234018303053833389075908727387712774492215669266421570325866450031562152953289921751180425295469371742456131049552647820478921855821689117973176253429876054730406954853338370103366180476671158006766599711158723058936273917288290941005575703821336910970063408376239987301055609406321081479833696389655983812567987616841868631459070511280732459196463547852377394140446261038723457110729567255423520989656096012473848250115359894911818161331448906532999299278920676877717855551828273879810554054902971623059593283077823073100561349122355252786163257178898526527696683324965290300220244846755101927474472944647058085615180632291820786791169134047080700882015561944884697168227752767104478821848046063905231597601371528418544974329625015836226435611094505272676329724118151672624264074755198367887922639160111656799429284692312975537863326466175173846857586004790331508022696230023411121870055307267946227068602838792425074601177201412542782189480856454752083236923834404939194515645494871902756354631173806563438092280325512805500870309380342948542582732801623860740412205544596798962897797524921108973902642963946628403160416618580012087332386210591904775905050825211437427103425871950742537993915050186088814391447671545880101755525282693349878689060591901675448984423664703326019304726762602632807919544707693856418721287635319304864445124293703012534256947986372847298865156407084731338171899454765865544835649041072908464085682780766098887528955175921687801505553049115826930309548146955550665920081699884331892219220378387881409246965741642262229842913866926250430360387625645055036040499724064024449613554006790704130418728542992933327632419768203906553355345611208769591849663111361062382370733558010879385345212354406602736153294673975961226603935727121821095712656881272892467259298543529707481699378436799854612317080562108438659603490428289460925987749250788146730154462743965467439123327448529640776057174473554067305492008199114940509917535898848855375565193216091127176495524870725963072269808660855236635675700212231292615797833069746105168336529850186445057443013991312403933031068925232090398796215081846018236416246679694953495059093196868679191215030237617100923765630799242855502791444489298157244851124420936660873599412438273831039073642856366507926071868077518599991057713371770803944100968899939529535529470875966779699755538531229451911846020356549993995450298965955613827415029830029868387257860007488444517258208726963265193308830522710366258360360423783394909325468040917162056334059182210775378787812316621957221775028956342394577668733256181521097570238515621262999641398840515541739016224502341072946692625380565490589849768032135384368651857879671428091513744149381585333704245967182887913933606004241566075898690573536131556061832416661616435396754255221432138149940174677306209705026114644503245797928871177116547403639109059143894505780454814219369224037971959063512438778347935193471054330993665651995129748608319544279545325791442171318415071071684864270132001459780000111484580850190319148606216892477725440726805368250138618207063627122142542602790932088978733225763543871720321572903543780735555565365670477476300959185425150738409519846969605168833580261901550628052538360328422477448389479552773804371364246299228656181159378755793564854413636970494792817265131065493185408558790444155103611895979693347736661218118773912983955140691291717680544369783146356197565870647224058833773452956076849528334581466637977478140489776211508379343091362351731884913708687990795653572646090453356725905353463204716292322907078488057472011201597870048113607910724313261417570075975652015148222213973522287183315527354252246111485799039418297990824135186056858600832439863750586497282956007399161231606254872944662142431412756806245405128116413759050682257633202582964464990962510823240540274909621306916391593693239245380752047576074778432194330282917564900348407020343457363100067392775154582035073718705437507351273202915390372780009987373827560794354949869394947494848441250537992866627138309063697254499440605683271518318525462790981582118008890113992004836711259468612158832259831258007356099799428820698104081311602991184207314776828108356699407597708440990123588633672075017363676163436465705664901153546349305879778708670315301345202662922268383652001280419181020997928358107370187250720624844745735559495587311019274069521629556472946143076304835418823753027593498481860749065497781510883606781627450968152829401266456118941709741571780007242004687572656532269432929946007237851871627513873210606823341813607631238410548501278291099420436814407823075916993119151247983894753420434085808576913158533779786076963641088964502252644477710419077904860772316154997248507412292367367260422336797884762813777432858792635085540108227630573981353734307680009320840129979486891628425808218937972656053514876153055007749533973723946642723778718848619593001301350004155011974761419262521098531413475594913954195039256907212693392014922985622327645423422249967483721372338009014224247619700245782569629670176041884769488033160164686707104459150280525487053658961907077667839171058379621816331064938599701667240118334262704512326335198676799131386666465346081544228583492642114036862970222158383883322795051294008053846042274023409157085650720641402754581633423997681749150234847561619749606484507753907530728641019214058347237329489970840285615697594345836293646909889667275086887708308168611468237391210694789728938545062968940740206390289421027924886848468800848226631657548882659739222462563515425150782753124006263812665199366274440633652780158776168805662255107087039845094290642611465375080966886568057807895168725091325423038467571058223134343397207177538616278049490735342457259454941118501849131288210898629204323285174418090774223085673990327595243617846008772395263264403145236786612676791719578429349048414395660451114016454168713407258271857622482789305901638476222775569558205697494097943419135076781361682573703023773154429716576055874010756031591115852449455793039724788832311773828484097867400357913732910915098435249665350966071061020278735474345679654788598264578383554565474859597666633846543662495937952444002628971103112377832568181336254334479723266750917313746823660123145410115668450905019325909923517567808302980496445290583391161212750470612141427781995527280983384121707947974694573708960178370074277494548484373170352545251579373992665661764821250430472245693586484419464099229901679940630321320070430898654839101179233805515598447535008990312816238333069138395308794955907593819143245796240423774151822080245294595034797624497339815882390808294351805405743411082855232712152769373911740737081263455694600764306764622219770859922018481115704162380621258276103102009867927255107519551669620054967557412549440212398862056724478846883892101094324951477886033642293506871432009411112638749210510682756661458672749548136104196530295645425761920709663193157842171652541364810034146352766938899755525962356132040883068334100319417329530329815510385428454536966599355992310548192780224092539610767390843215237567488816713295950746028847131823136825984707859361539367501078049657926434391319961941249685837236166063365662307271823186142588527469600772309726447874397237368437928824226072524177051231964444638699098185205242787896832077903282214694654612332078541820916478803746652461273391357007015692680286278851887977099371680214665506908525301700693787065100643017343557020550296772390150763513743284973277344107274041684683357284933229275215899498898097129493462319628665314630450354072576174013722446974606387294517869090242812071851415485636958335720161004418359795457384530071910292514288128002495247440271779841015334764467628005634345863996134977872797364236378619420759908545590432195154480211542898119750004197787802962426189729906871849024993446735901219151931145581382119842861005448431537660103330263383832036169340497425572865416327413413240182041149086506074471538055219143139573793871983999342763779744492450359332857390203986730443842848261472692302347919771482999766092313998247373195832346250191596943751926551467965775850169348105033046415726973685299077368142154232416831163516740177931373479870111837752843435758206242717737529871318900891176992575550573263751894663190460200262330758570718539744593635851701353508689487354610579527683191193011895386319214528336287124213168552866234214345324109467748592846005151731442407908250268375062511762227236831350910132153964290397718150458376465201944943271581987775799612985332788872812154973608555555913659251718921126224136956973882882616813711391575868452620226005424192392685029832034162394833800746061579886832434120297846441553599538219650924876283410099852878345024828817951179736028872726488399128366795434988866093788108223469363265960987725268608377556142651851669993211229437465217188836865022698824767142701347038613867822539009946979817027746304619690748658690412575775927526482927396143809979965746882805595858918991163954326773630691714851757095710330815447479409286021923905095821963292466970629690586039861781633866132016655995334160619491896187133442875835298669584071930927238823458391132849968875944343603060323903223173205592530064162036475826672812907326572065342431631727439615308002450191815184053361294910209010460123745369546716475864814602365920466415254418685491552621159382470104053040233222787459306080255281289964498018139740326880814082572583732459856310247326559532886124111322779714662080151176682590535399186350009304460977805172920317003238894394329361124103289777544612334720623488049003814986268162975861850774144007885778757142864352449652343804652314947680986498572196382300230975826137987074454930106441782530294160948875582812126398414013754068605023170506546727999418203178386637731603949131359316681016399986869378902589862597310975480734231278365842472531746804160048684767741378604398655677210347323724931943302926959492304749945450105486365093159074381112410500108112352434134517562860381936156723826768752808118862238289579853476802323848160021632951503847340247031769149794702433520228552122846010116135838459752022188576395994578596307881349440230498514818450993511426449359669536284838843300453569244994709654855179528624674090493042454533478896814630190084283737690647135880966058704337407733096720068609639261713133652485251644614987245799946304826711577687910543870943850358301302198754343769866239741186283366538216329738837381177793122941278285291298361773475848524894726883407552936639576296101470126089661535367339438067069563399506671877349265853513273274090408341402020724578762703404960962404268408271529297646322547539219333157900442693864637089192571354939011782656114584219705950136456968584193534884621714675131128267737300635469218677079696575666337673478184703697184522044872182827301394485036079946532786957849394423213671439567001710760590449406262725941027084923726298756431117787577419471531623829680814507766518286495147158571951636232955540999908401588564928476543099882757761471214846654704731579325061453406158033437903971794650661527428856583994628235694638361314395387212578061271487939404287597582414016049682093624750193872369002602215305573034730133471498765759835861323268582918578902394097096548859494307772036233467742015123742168316617514541787183530501217139187787497172074184103532561813165836444079218061115605045113281080615775882591981131560693729905945429971674509374612726659796656417316844245509389982220558058926795708336357774189214223970996968650378810253721595758962082380192511254714662920258632232307134668931918450354490240265233648315939642515579077572737409947671525700525165029418900314529815133332493312034492415437656409927829200687712361383650806918421316055012715665226973472087519628610367135384635426288835006621381799420217410775851369951518682167709631272603300305058621023563555952258138199394645500378484260719605348029206676853747543557093168194229709255478006138594801898496928646806529984023024759302752633996972030211059642500048455604360693980014102731556540589062277152958940642713051241292344776132056503966363741383234411127117101871378654879270236661949657096441147901367829649317877105947316379067458161646334835562348098882038887367701495726488052104605134582783433362383224242177741825946705726236111071792759824066959011826127072449592158399289071968651944449359538467096881126975679818167798984229034481766896185103925928872708373556425435170474508411611973653578990083298028106444771132554179661969915397871959379101548811775503240005720287734286684776969846946670047729053274685487321718360277720681758739921975994860498894458166731121319352624087145039217125056822050905943795228148290655918108009177349269257816227042663626484428750201860086072966428833037482116279512836221226187443780775709994749982649468069634634214145112917721909577630454830138447451092737647660336257859994842584060383617502220969812518195321944480896867895507526640928249526581367687841350447115450371016143801912383308582257462877636025254053076546329494088462817520095545382324418702900576713514139271083583256449492563701327891287977119957443439252314695448243607996899251611987373260781316516878572950576368285256753550107326024287279491399589029897184918102873292660215531831063070592945010319515460994863913894546750153827855387020177998592521422430209526000908476196530925089207855761156637213590686609711394911558546653028845436989475730152797512508171285315958233536004315522126535584590960318853243418739201227228263538394073260089770193878009993767116627540337401395444015470663062710548423668383511284476565621310601943341937408378658465488215253977385529184165683284231183925321789668242092757712737752463679585543166974853401949076285645041892870800178699374246901540530203036199483066611239581556550903230704077974006970460291510936239895842966424266077019135898801680529164956501604812745287423340351198173122727931443407640222676377128722424301239175080608176996709804208366635665191829072599337805834153197876061993119313046365525137923090051831584885420187150176094060091134304245816088585269060697031900034613663278937776634740460138764184182342810669229770157539543982367973125703786056280029643438998643955019243186414964389996739012649496290648675849402256938025394150939930729783802662326472965544879098397480418657844616385874769490657609340712822238211423553185835463945453591817631803493388441954294560342105202152876212673713784966749225605217817961744517054415341045554397881882318935617641694755055430476640488380315081742635778479285470350104643142755669756050460251074885420243939100384999013899378818748916280680356024641873803725432246859416679268356507275427642617637776993697263679207867308138891072275663406664069281784708485271980272153970650653988600422531727712047549122404487140617871132438675292343826081601995115018317902497639706307792135010711040571623685984388318834575449866378599019260824911422419393683349413914401965932424722989374910804449234910010867275959712417830613257856423315217324559056817327566488154932720041969141032917418011246008338524153009627071193663310768398982277304060107599781155536101433274673221668678170683751481372070247303848915951087170640458136181548834844557316347785957341179034578728362587817297431370277022458544861535799803955483282764629301135003889978488762153133728554549231663891744616163805280226805753244141266072185279849265928376071644755697462659925769562630600634685251726751341693976233150966415407045809966218201365095706747893823536199969597521046646588589831501363900022113941004046370147585343142282988411269874951000950600061544522059315294904465302893515694341538780894854227042380399714644437799617202702571739422313772228361971796309954923873554919257532700442072617049000791161288519318769605773667148147552801050610323186705983233342729070584822231076202574556682566839417168828320196274917474994760653597991227089779484707050435046503206287858510791932664293604665868984843076316990417505539784373526171003752476316606483750304053298968621151026707160431168202663566322755205465009435944151516257010704275636567594081882652061970945152417973938458911518945663655862620045464978704773110235145179460475227183588746885624218601729201773766882755093746502589736018710907362072210789768345173778955223409480452865211309715992593654033054281934839533479107860730656537756131525601402132758082462957796153242174695490549186740673464474884179282480044614057108595632708227199149186283616770060992071201659158128705595489489709900001565277080784126539817099702722352938919932871314283739033544058439621742775298888451148841816314447295618553248179829748412921448711919002012825874077103146264393677552264356049985808397918881732052924231249607539864114510639460875807210827272695818146712686600106899591860092525371665193616252300643624536427243718250025658080303994964727335579797059147037565123159471153096286276986001845398015694350210281328110376402867156012991944065402519792649729269876506393282238437534233190122182271557238736159655435769336469840198868536548110878824657243635348253811974126984614453534950064773583677338996041387715598165153436576371041993839310968588622586266360095141087736395800209903831879724040851818327170975430766306374405010970228062298059743689324705186072857947475778641318565578375837783027531647516444626728403782259124153454075079878617283789336403126324292293794068370158321183879643327203316916323133226835732465272774107396310146996582595417241362325668626371678627260704629230547258994154606077914682857462773102355981671054110909140329551583821675245273733651991141030652132221128513996772943628596380904686399085250841761696837395938095585510645953914669606800602010252523624149412476305539057766920149840706617001647128409187322532772328344438492966649792772155196920822874708764079646124745203072145337420097685705159588762631419235782491749341804156185406910388537580686596528741469924330872598870943736035095931829721122514183720320023722511645653728850226246121478696340415985110710443569158842686000476157100961262205326839446818142557788083158265412236658370481665622078997618663995440903561807113170141899086335785811807129315737086721032736748430216082711246144051935541418741151737562413357730492345182481988976175611805449266493829632043091461166818137082502066219410678576539763272815065937105690327976838417001185470568976097831148484876965000078975281766991910985082001900399485451703016867853117763394710608182993233102793544211656254897241034708831555138074535124716775878323249469852009139909839366347405837146888070277118661434186230477484541549885214365683074599962021725074633386303158372242044976733755890001950920411571112093248772964297564723593450634594953180682761004075368763781800265086297096554398803715239278285299112745958650165457630745736094356550691578173602809944284535357615756386883545437805134714560649027728826866991368255065552015973935609399197890997357221494285546745210859269356039991412648082867612806956918170980226965587482075024768887849404124922872371835878849783215674224408844501744411964656065434555480137842869134439413822848604117329929027512776308352816106548217830556782991301147700283237777643920593989455421953453456937380197175217344862895517408276987020665110878733405047706594168497111420645299352140604570602997791497336817463970606305299981952807169161876077642031935053717299306796011479599915928684951011672451870824756801385741081043908685415853012815193130596388494637421771003362561789146874188908371920568980354645091457392002987947404749451228411085102105254979974704104860186519191061320864170687306609320697467386949784811963056144710930037662568286225944586546421448652274211445107281687738568707368114275389601274302072017481534339541067837129853624285504487877697342741769678805470338259917523867459947891356520236842751883912803642238039226942993146840898394437970410767171134138141544141222052693693755720582629891614627715613744608777682438232602621229881878467157104649996968291599479506448717538825652527499133458332038925306370633508675723116909001282717581992736730541035084620773883461188321802141571424432822153888292056731404649059645263260632464759190703075501957103891702789953320560219413452896121539492204149521619334713857256900599998294380158555279073379745373761033836413054589470798045067338664900543691328358034978048975224425551850488789560508369800435698290957715328633996193566352543634025113022727703819578851404640019723813227194316786351308151015222516959936674402887022647492373818778228340134176374036514541535558223838706254962622771895847364836129872011435282470703268124757723559501782283302959190253729938721661805999865999037011856796780359358862769450949246961366433423547406146392987515759772338693822412642744581234099309926264009414686893023606139602557235762917142039431756768982919493427699396964072087251495384215735417230214670693064609666495459335927953208250878054279986843665830741769622531267423902395597718406712999859336760150807271625969270448505426316111063427108752933883804814714444173175776124292382923451581174588010653181105201179703394906231478018295738657294501624460210751999583626562655020088933141336613230601429993298822029633963538122336095395238233176018860295779893674908686304598159640714701604014901208849008570660146765754103448518109033624205721857105505123645681188976440214094220694279412875306791596207502984366938498138100211033780437848018753941063185009752256605718551502455064215185926421605436343753117906837618530345127446751120647040115287091798441716724929491119045807432018990469145696034379891650812582031747981601871367052441486906140674143323612455354130337657249731194959819691776312511671671116110094255529828877733454430893221041252834206098409266856809327070726858112021429441894137787432889799359763003591644347788802524797421483734576460509857414022829697180713731619639971600357891500374539893881325047762548605930987689342041559467046847558584529380553025297295288168896420460204629893794814619712795902778462442790611241075804499731891723016097648775812842458598698684243492730634472018115368485841214210031879730198128067564736804017356034424847826418247123417444241537194989385871000982319242682248466422203211058649402283640897794216533616105711991483377925308919571303676137734669165349534066600494088583318691543339811161831343594655824654248901218480236489934439592737905778453239719367467586164652378763260400626444960284843094479580239704016759640440287812408618720158063972792972188473317048949290002794321167160887810551773478900932454618838852273952996739872484587883635427782577455205026191323298891657884634523077705415633883781708445252680480052064133652037091338171918125888254712667994291864136758737293544771909727637354867204609072657886870898022523115681916469965896757098791902701256236332945674468175120682915631999413980848289808170327753024201797339679563061331396914061477211604183144531962656555380902765050438434059418457744415344876668791575615715023750350722768631031540499592429386542683750781434596380773398408050919280464254807128426252283048367214679473896299473102347740609476857543762496754061897374973529807211299230330998470482042954145855094540485096560023503582320413428657263131130570408024928290050364027535248891982344457164752147254437063505348109344840100511783617334371948426034925346710355254420677391959664872148300023376395670550978716431928399572825580144323951194541955182854720891222674180060951150550979475802034539854769174348212561683906288690366705264536794281131059657244203455579763391773136185645332850955013667987935562641755035347138727279525461145721236429090606228798563538125319214518715991129594489138500512600434775865448176076981768005840330189168485371748627049808016472475544924207520389663307992716858465589042278328368704265068037381964917459834444267668262394683528746629929965275044551103615370618309466677482965869688157889052272653231839085706915014834747248290400393142793623768205640410103194274266207905241465307236996302456509565602553765935564703623500276064348688958909199570732047879602230021580581803208139253274652168620622746645190195032386798023562953231042023127701462709373325050423512150341865802619387532950365702002343134756732944816645671426652316832500925456571154048060942765753502025839614887852732628249922114645781011319112972581263773319108285647198528692161074217962430382826352101792763041527102078644473699802285119202363031626981029848386696937942217835822227521974188341676795672362585541147029860281703579238400776115709404966382343461509810892093733532877793582579338294947649837384673414377916500403613767602733466613668889601719529866308117477384850206104403840754713814225936115200423288571454416564415539689858345561432733680091050074489449341457837039245620441971400315379114573846394414627444080812596560319404412667531966775196751545716547890803527448076248689261600750577984563313192638209722091343684665817925401561124398504379498465690123540112860959548795683366446166297289599900914587119314102197672537906490229272190364562492587533030415756315165718195601512321075768941836024494811727140120875295830567549449070897690421667300383499214577807299703773154902542749533757917221291337282714467257861474824106595772451179077629449445694360687957298841572313951420594587630466551315939583325284900484119138963918415109604850148076953179075227147772865459277464794096479983967753673081668066112708382273104288602997055790493543239948663271520056318078706647889532293538666986928574243182946462560062548200377450214079418562390603186354477104792792006345684596689355435905441833123804452732297273754023124238402949669465774369110976949112538409965662031671848977451219368301181779124147001106390439118578562980290395819770111073433020881444535927693697126344223053332777554974276727393262170509526383332983970802678630716691477557210641773627221328665652329007414876254548532413101794353551667336183522973304448048496702895695578292277073130106883642776457403242809961719324750463733067878310307152426433704015732801956419238932324460713479030474628910958968136066632429426482236037526314014081754032018019649619595672004299593650023264986732598301310115109987434989761912660581571079789051912763872636557754599088264832705561398496234774199772517254786574311895461634691431049613579098061497596323997530995382586398091771740818632495291260133581261979842928101948879777996642469777504332089657410975938152203418876942101440650238543155389216853589406538997455247313747120015124794430902270183180031803865064806121997640726512068854158572312780980762134761422424333944715746064857448731232505084030944989808046822656187020239430757086462812988352663068635427972194058142577386598999628084636096277294997058015737253878928623245037797238744642132329241361366898617010169809733827794879885199052091421245770583357624472384943800972781926621433501874247577873286144131240305037406733599645380960931794030279739789823102616792605308913845780221847318139972022477882562391771065120681171535718035024626996337682933502963680591187375838746933519623775527575488439312395515678832239805987909404665885630029351564844429866438708474015992123331631752480590036810920667804727320953402976929259921767735722506222577301215659489056155340618632225888547457439454685882225347536179795342378375349429953038823512458642684226524909642714515214660444731116941268803337016983387548375070296757487292039999812211508198475464580653894535191312628566078468835453873243989048067757674089581090329619302214426771526716008804858582819402217346071169791501726358514793798475549060324140690153591331990058895172204490346850052169120906471533499964850012698818593121203149633931193343762411698987901064973318642253133169327191679809628816962495248429225067988394204090647969882328820696986736024445715092233201455161181843849311705530495173254757331210905212381126694468250292257555494012711943651161751431181391793198034211596888979075908522644784896217407748832784013574558396069100914466181483892728571608868025844329360925945319201079153091349850618478387012926823365117592761313027550043386251522958828135845986543374321812968935353195673952064747438394406727678967681639339675365076716132504004880744541244275343626737743788079253887896263021924698468989754559422781284524257291870912754637259301993932509753953162455876385078575168485582355872167167784253616295604573992480260834483143687778714361069684902026745728373486156233296433854041179409923979917202925577541877692667155318030221464386618366028239197668839368195226098756105694988680375746302907388000152059933581314056900977459150924751466100841189512301218396306180156168970685986282905900084850609827582315089651658504760996670314340888007909393310458673647601360571727610288238923340388532283322686497354500487143118419547899584346371249677805887170903663473768208668601560013603768182167029158644572057806711394392393359670185814671556262235599623927021210822396148384818639474434858464652978322027702160419856009145607530117657334394407591031443524357211996701153765627369509982813611144686139423038701647824743960489941600899071978789849396745744853639028548046571788699735115516106954945936515384935217016621932103945885124512513453639588017997312092777741163876813223923205154690594471720331241321513527883157109101937192619424179922737030534621452798346907411684656847231219929944842249514022248880991541308253602464538376907044454204333994854890232612063765216234339033160591689561735367514975463667604887053455028342391995326795336108069318329689060118897595947104175508614108896770225660223286138210124705637075093070347062200425592172828935223832737864056763177462759150706445320463329200247089680785670845408756210935612967507221682827933548826361661922580872349224046098711272032976520895473641895063424682569338578215918904359574993539067608559300218010365380274863958053534522359970135575007220354407830918507294015908215596485543609903707246112701609225775994740117441850065763166846744743756458610600175992066481462466110229370523244312121197496969850078586792028615469781239540152942865524829931276883012741541500792476733655225837490168543564966938220888683078363240594895131375639353149202843560267524827382068458996727609240019090646368216976795845072891003305038526226464448918637482951204893831135639256833944873311912615887475334104056659969576205066976720282916819263488777982136178351581466833151092264576743651308077027926297698859002404181168740550651314942531415301777623637953239855087268912709425605608172736854748126858226104152821386346745676198639975161085021146407782493683500344867464242669441992809034934795911750369577644015986798509667635934894577489174375850703807499934643357863605171087210584321083827932294101388913925047839945543715370658039251310556725782589212866977287597289594826721578319966476183220929390303376636169041797607288754964705222476709949827469519481535061736082833126814385094227243671669471783269191666122088773087119002252577632213292172112443733000643473754302556652281015458369764422975283983671959501670200895759105431095444573053192737556215616611486442880135266990886047579814637195981041727284171683984204072678459547539133499997687429637853468163631103811550184750902737236984823370964583152657233330351910261755350949913881816160818820056791448874380942863268052037690143765957886898184583079752688463620307598862070330124359256850867188367295476475326369643443642172825635906103602194201775815376648204321988426489925043839121943866795279724782915271299795716482296890282814586499719317533318663326327680132215247894636441502260245365833432645492639309935123120831535821175912080716826036330168458558219809743917411700262377323011333398828329967633519347355031181212064480740881188100106178378643148876838363159640799803240818529033916072651875428080111166174300843068541989621338383955131458632091665035000528419375598023355359125072510643343370796832709129059626143954690475620411894104133232163625857206430304499961923732364545374921825983897794066410641481223457457883233661351593064420894178716871481970405954313865200288768500796742323699422357381268830270043075022972643492095663088934905599594143904687183935474394589992406077203275112766407189508636178792150696188458586148566207064216644575330368009515210819591412777879775562155645310224805868102903268879129189401047832601834004538989165344436644387511600999949293897938717220119316719254303303243547188574157711667960010402721605052122071417392608785112997766463459283315269414246109836814087652445294452852151950825846326247238364160134602210158507290778721318043567549761878915026500368572378170940861376573237041968804574769747459171275678494111698529302689859180161678929772038323282803319353502021543941385169969323060754689592355258375344283780439304608902789910812634882953404181370935687223427697370152533021316196240428157753890834483399225748165261629431913248580501151802758218853253818540942330894428175165594464862856523920398984834758028613471464340784635243879856154878975185805870735057272467309854735099198924139518478115198313408083821003652595111924907231265208420726335248771642067175083946099966678176779099282026029650464002667080828109401152213130310311808531285024828308985627375607571890427378037647719941490785067094179412199054430319858144070163509160730743992640553936918360987363296172693408580177427794139826372247869270206599109964648473676361477129546216734358229314347657616672421474984094015936298530528760475010739842646823544062406262174696256589278364132266751866441246896341333308059551044597594308939397780366342581124255181058911922232017523285408635565183868820753224275728695662698687021677407073848318933816101434431212874946232740060570169663454914964860862342380195536445154661505080781619445459137519315793515445378644550519178114824244498118459913970877786035716036460051072775220771704405911343711018565855856383813140689731069782390445860288526485474198208139310523421537836462639965074127404179574727012952338532166788276507514978240134960177320949095201081440981347112498372397278193965597686297447683195041535447530532904758208275645930090502207518434962254111872623932914506507582144906741852400704144039884313686188669429003337508772610990410458770666999677969614298621302305483530368215550752861284988919518577802927512664467180026997280673626356244656419697517154055224016836837084281294289393641697349085845986984825849377294672479378023857702286555579606407141627974912075399704373982188639093416372371574029815386614828671079873200672684324089304679502273776519939695157608733911836857455845549989984098550439836284560213124482406186876015619911361160681317134782110784091476244120245821027411399074537460610576092328215695042796253296130758265063416134043938202136255382078228384200807240617926644484146102625408581209557002394014378435742283863989408923507585304229074852164745474754405889611605219990887987348889210328019991443485594762819204074758948922551596789694225025002027396893894772365880375934073759330940244991197072202891487980183291722887778107070443726894461122921829877448762939772344021538034304626223832638546975937661318029703471239640285847127527446932857270310109278161207371176762631239697826042351732380605092750824535612006263215619885374545832649356700600670491076972474859090859142802433077974709412863986735302094972533697018833937935822247762810627358280760338220619814845233922752408204799447329692270861541446652557199052808918030362841884900503990766947616787116251516994709033356597648838324300880039861381968468397360998117229502420106906238744083977006585714409820279074189216600201549865837102643540693177257750881711533172422156261990686955031283012557828333631695809727264183136385817919963327105393047084556306061840917708955390298463190461154455782679385483852586921921686922017042367046042807890645603356622369751249774831903845448071583093709288980608595390869359712239025063114710789344121795295157272692372348876662327266434069560643744839256625804285441588831032302957398630167172330607596898025002156837717623040793336455214376259941276917005362039285319293401770450147775698148503175749053182677151325716676553681245527286968144230497430617777353848932168154542844796021913963698756262132566766008731876037900927634972966977151264342895490290592015248420805260453106898583676987134010598766925043326339885282137300998470848449991755103444344663980644609327148997672617326291135848935377046380024821666482274183885863208383831321704357983708541243802788286830342537204384979695281643894907138702821602085297463285585928475529173020991721227496210953163746127677201000023337827570276936729955604280001279219790204558992121111367778010633598872550599483393227252326841771119130015211634987172915388637888627242835306133697027718783322068942570724710254658459061339417851934923908266125992287874277122001147961151675783527543354027603503260568200327830190851084667612144032461780430812907600782266912851347276768923604970435092613817105336782739626089554788970185359116809431334057252004311528796860980271521069635356191083896208857206291617294473619051841921746053521008156166961524318078607875107044621955012947376356023892809145296239393616223533775761248509693234337068352337028616595841625712118796072248873511538652104169118246010826658851521484781319783723125863143246068329699440683649933763017725754850716642712519425560684334194446909257369922962360967671155572223591237951204196043892989400662678339830033287121475571219889539959236362083766912492921450563972954049302805871586474284751118352202363515836864787683782277089303328818017204984452096531214796075729230261530452461336394656714937245677848880484296796525744084122713660558893191078171031657478923964606480912237546968118189687490385565232910175933069417879522347739126098896742920604959310118347605616193850108456152901813921715853919062605644603998057968445429280266886811972534816547760020734891943466650463610017481716159975202225262763064924702217380386737365832947912863419947702728861892709260036016658918821683023559174010698675829881995255931970869502131619908095038260992367567099906180937409798236651551442856881873300073421079765179959068813244959904938463706703870195622388675331301774633090595756132871738289417642901991546177068412328010984628123453535969570666111648958759163711867964993287973247656116689707521363439111996410200779327322843883948190436709387384695871531145672687041064375462052624109864660733328262652268952894440755091564696305380343272198472248112705424562861948151894826144618594501830647636603132180274320118169099156189290752855117068191504577072867639206768962138663452462254389413947681768979622514342614504760614471734061510332818177301463818623254124630236538804677448465572633408773585803434415538941516988203366732933419198396395340227029202680442145576841651253500315855416614090966382995264502270304051028215560483621425114919108884811569902933351049964415025103204304288374407644998045003189568614258838033901315444430512904910353756539364223540323638422556773209390107116290313062035737779507066163612873857779517971470071775729104235108563729832082392905549883045047662403330271232910974664791705156895422491404748858917753217877258623579219378020567084866616405916613694442565057536381987094043525430008711916131555810964923860169619897241195850552704805110323454322986682059689248782699250259837515325265932856807344172479714521372950735422082900768832458104198430101917481601960126325475877282561193821114983643369904024423307164993882690460855557801767963719470567296690381024929509528636712929367594840168205814904802221221197696789860674405348063047553770969665301356196109217542368605730697727187630419191163265458611922916247240595726534591350935789389501741623455604699220283435097101841759708029248757200374341438334588138117809380611516035044640068849887344953822585437450184974392393292359707331503021817311358373397742806023863184601348263468320224808730502522850597240191488482127829110685406918023192650746457644383564266286203024932539706569408392583513379726392854748436498781648236556844793353876211560364011350256009796946511302578574405158669729648974494295764551266264124774290654451888121020155926777014683042146091606161703870167401782137294649110296361531801821141364135438422601077899154309525359677208637131650591161205631587110444481867462621653724989520747355872581091671921940008650380376233144006985809502002729392383625533412600263665191977216208717013771455647755110788240290550959695399966855317064213020112949314358785261839483555608180715952611807989616411840009741065080894820326174614397910694965371616006736521598434709999667932180321368721634309156295889851390523061024016179416318346395688932141915840756364919696652377385388796355254323481401237068048993869257078598777059558287603293044895400472985274914074707927411236773596254060798710332451892579989115503610831560738631267988962778999970511013616382760092310346062082598032899793438518601719022354658792774893801448299482156223261901773800890864515567561212528048977766356475742487363533355660243605959470968586745381332187595588354656175897893476952174249166963709898244829109699146320538773117259854309235219506135902643822664224058860937538355361309365321610640716871041368956586492386692075097889554029286210023287186998020140372500960010420486061899415097599334730501602522686482057863709742522157773786224676958915892752433205154781215358376158425367494170301513420112641401644311200698876838584147307637715581361255138453665125011727963928873636550917659879176760424416279623018030241560694424599486586971111045311697645922017859201048123364487595271532425410838220278665968154935147017196604370119500983549562904220979936395409744800488962013441492474504037440134608965812556497496728088475883495206970609618132644533929635913906386358685604009874199702726076113903500140799796778453758162008847937107646808358019002588438501386387070021554598860636644275791445530735400516929177832833505033306671141061931960013003151020223697645843835165472444831327127826772146347458853705900851580224206509030960610313040593174316912989302985733734506969945477801877479631236073024041497427160713038256486830712004649487547958016823846890036388417467900711899224660001106876586765896853131448214348246267029276328487046160537043360304714810111441086117781235290267576922333891576329324214296164113363655944214258307220954989414465706505630805305989457215190051978098254007253967365230950350160815675491458481356216108664495260218612869241858853429584658391498776732272067492193733094544592017721728092127942300136608393096907177311008022273016693522019232457222865404517962345134059932063180883089333460265221033934732153970827242662769669286093409172060922146950827800615658390686509712114171001947476209489682378579932416863198495713915272871973392674347281011278890143329023789284659918198679444887469424412113790966865565721418842509558601974049865302831973735537716722075741510193181712689706761059792513023183625586488890160154555803093474096666114430729916393488958039620314211674833577280191658364715477515178864647037632751735351315471419815597419235946862364919731578373793264559597641405980545713594614328320362954533160551869989525034640540742379822978004824290520881429074226536077321841705054525499763878165978879415362747977369746357309279795395119677194235887413516415417897173329120755803494922086446033807227062696585465174919794572476162413895357684765642162512363590811635196548964128420688703364078747135351401787669584028522063648264459677429887253093702187356774168963321038320036386134888999288633389868148701786676058092885655491614747219900033984434408615008137426496084827888641077712576800707129497620294218481423873341537472990158035812161230960978792717556298151412532590381293378386546645614876349482158760484519352420667605946148203699469722690308324096428001133733027300785973577197429846709119294648241097242015901444582816409557068023157741373332327608793453574536513927501442063425552876687167414704783553975627652955026954376025844489408237665616224773810140831764433135279931620887975164099114880542304209525800282662865186514641993457370385336808834794371332725731216653427415873090596655323038624885917526382300272233224903980672719387068958834508821452560498373612220663147355193056968186508826437234460628556468575384139455924621863679609552882342223204578170571755266339489946413149665022500421467872956327756754745108182751903962159078292916433736844039378054043056403821402709253397524420111999813422993321517431343647720049387104604157428162960119345114424675681204268518674182867844241607617289907130095854451939279328161814956277888410542464321476689644688225463510586858165884110888286982221224353779122462027181443436788790530139705084965681757896983397292039522901850284886777667015437015295685632285942857893677479818888251748438106089887281307360501929232566571274363943044130389042791801858655809258813886958786876846063154012619829712882808301073986859941315880846510659187877427527714003436543483321104979849242482946710081301448494031627146911492118696947113693644027564641922103216840625372530309494653351942938027014353782656820087758550835745654049384167174001214556435019101886867270286572935142891922047424351575813021087047435743872743916533538182015298813289393106969318975565213325936732006892965705625203864511264363940333096893599671889255180599972680703074547956014736528466871420399724619787683297812986074173102066267397586986941137729270287969022929524442300837535054252489543240478016995311863886443291249892289402837399738360927546990451120746412901080252873017724253897919971393258446510992079085196182707191202076887744825642164930889355313974869643130646675618015761319638630477163049494922666200870391453799010432505697658083392894768115866520165546166223145341426532720918806652264247085128367112123217796028910366375523957355852696022515966683499179290545780644991955923849963120179733165985197625857031261183120714273912774236418657122212146430598530500417058172486238512972686930581311226734062870585500188441419417964283856968293831255120724025705107367589590912521273226629098922716605481318201823654601516232543414479506080031629642439001892160852386828895475476796883520220303354028816866094637376831516272474924725566081571564175454514164329820574033253048910634343134771585894068090663425875575308227896959276751713323709745262203788399456659188911103423183555273524856090553183911507259712855517539652695113056192555008522376178363194224447322586241258935469119304179909993881727322399357659267779965486153885299011848331345025217201766712748637578066720701839437385545307359100545591362131121635782735296860409292199653994031764914559357579636750561549403809104471943442888770805882566342651057930155740169531959494511994526288941860111662172867308275120411313096647858803648276825045763958273329183977679811667558134544701409486827888475107670043139522933364596093903718570850972833300557934690414147728418263458528894286706394645969751077713332055368050199732297999848904086216159710819793254454305800239215775215593059984876628742095882793814210111563856677192506435438190673733175167672142421506356578164418510606270031830626181407898417451571125265850328178885649608709684367782283584018457608577319241437484943749590021937628742680833777706218433234033444356162459857954668976885491327353036907036957479638820936649090933744019254484843220502937878253758723080318511251306040552925605408565519601651811722544822904632563758957769515418014535360117176858288815452713124425987433205802729791270790207748502456814316648739096786604938063043423791823519722564355995213347675808105616085110244939601055131862426111174262726755985172448501743734770283945888089608341987229304551522322640707808653396671197534955999988114524649491317684873381385692136630947896918328801384626813471990914117546399888767629638576575546653339035108871808159682120743898916113347567968747085608095368808594337638378533218973532959208804181348426674510418518591459495237245892414342564371587777779033504704175280752024435711772228051927102899651806181274342680081509739262952496259591054895265879411117423598060984037623039304772801163884554595929035999043762144845177177491005681970803791267551837338259141353265471458236695509706876899439342098821845047829162875395496996602080307932125177000322720352494453032023782458010872107595326212866924745236509104777550662014851053830863141793240821008642660964365212213362544898524114353872348903940654324986382945631699134060676496137305776191626615580541438715015953761249942729004922867584452507323969928281134693132152163049482202186214753903495444872326669294041535547170440703615047190492668096727973189243210546114170780537708506339861193727027950318568558669479868613040956668009255977526560554500405933017362216967980107417018836942101637875199489899557120257817278100209351626862036079146417577758621874296790991057751586334818862035985112421376851196422763563277276102468517149446083078221675416490514182782039250528990494930909237882672602162090850321316641771920821001595814798574689819437337292990386211678635700511240689773727815153131512532107076093347443228426167176051361039303798232632517247168370770400836354093480288189769291581931290347291449554259672433038587310455737451049428809633678937568151548352063353920401105292221540756627270691666382214137916344542934252336613260269892552701878710455808538347731982740558444935772963712883013019064681074113694166295513837697071389497464996292331180820489640928107526017664181032644843926249933570690281782834790902182409524735146133356273163310241851184335629563970914925826493513162769404310020956342489394402506848368106773240452953421084052963498843228476716552991385387158902946177164580394051583209953217014532139181349764060766850198293893747686691906202550606277191789383201668496710304163681866029136485393122967051091791616092347614424892074451799474237506149241439937608951240393131568534472417512370296395031705232961062657498948522362292507388948545514055091862477156593731888276710515506743270306725938855137982976896754657872455102517267465921551351031217657631237654255390472387177596236491324886190406897615130436598351860640543100860875054020121764724040926025835230673997111273065527283483465921446887291476769490124442277777270502133583106329506379564977692846521755319978524766642188971278403800382317994343859340253759633538027463222120949281536705539845887200167525278314356568076446550877572605481358883296999484246424489657269040116541496106857473923558309748735410062661528064473340621603652218514498990450421785211476180370260159633702262321436665964139691178932306713661458895005161159809964720509828781115344193504828401810489607073874127469463282516763294078298816139986361796211865442954822654029186100489330195325591542857134948954643598259015635301755963452020290281693107902346974688044680911425570556895540716734767758647445084764382847867192412069787560319598136677245275263031472069145268958164233600626503031237278688684276361129989583045603956221317541980358700062982074923129411299550828412000748423866993365704833376545379172707208293070551739680478591366533346574960965605725243581533065314359710084369742927625297769904223039196873956778612859555608955520131711797414888218132226450388237482700053984795281441009942326593130971817004367360941403974712147315616645782477254839661082553306169471363945853479693494199188405407764236812953903220928149239349675466431465292288098751317025328250332730107555500217991105721291730997597889968042836252777432868431734737209533079858750670075731600646701654880131041675645824252682968891551630019644992455237866873790774003180834113329145539649244532280590122339634188077648054985775990647987737851658051075649372548266632611304902812448213758817079084760096764850315023661189611242653209169509228063316766402853376059164054939985859356871870416992333727941814585604495833294576104023718669959609683190568741995001632280675796256369708251237646819111853557765860640456730281823241437339740064554993450697461036270296469741262096693106662471736700140296457483913550803165651410727609251130120196609575954929591088773610613187427269814127250249076515755540353094573521148848651204395074596838495036957071277013467348316279363724943382180051689003495412661988258518968575272540528756566625047783598144661737572451435517877090232574902032944014260946421451910597168194996922077684765176204648747045830102345850541829440045559274101026618191640740451637984438770665352755647221328115294202217509083223197652306219680501033062798730244668212666567315049085038328124328271074759602506292049957799557039264024568141969399500914299976749701334999670007399376895586163573924394326996427628730836457146794444325713998507724171046366238796802052016561454308004408101832069202756548401776997787576919767219551028577432322836588175853693647581525689869038200436719325318661543757434806757058989349937828031198672649940754145511401896792799050455677300376631562773153244126825173816743016839665918380339639052735703299177163437532613513180121395643118629434772916601598897188449902017674627857396873198325112596213121541103770667292358383524976975389953520916015601432974512773215210016724380126600807048725205669559197453039056926260332006772848271760121062146196365630056114889138560813282639200181468312802308420477272585016752523975892679467807853472795620084385113323846834402038034983051354361191419216740879259647410725389451052634552080845562750429587564291239783232024505562277922333544399779018677330952410140118926299018644048563173942136476446071951401239355118886254093921848902407763343180209433958706852366160354764856252937906569601974171621773367342717130432824048518197554051873940925429478263543762861794441352106451269388040766270346854922207646437331639087657831420258707496121380770574166862973166295528054217711969651161232422572974532500830793858085573684473616460615949261074889589648603495399930336036772348681310343814107156214789978598518023323656164312518221473213586518802749265684422517624853000246541260075829845561810665496830246780646809972137277033852177763052417875560493187065856493849429646374510892917499248339508447085320351837364201287119312797189641905332726778240740546330418508381131501498459097934426100075987241635941167808591588252554246751567579857298688527198798636618279055847129129243970885336557061089161706112703009820322465725880899831488398111920260167780855211321659245165822437442085141769867230870113522265199128840698270087751990007989415604481434597022892869655637689765708792587111943760404549405636994987485211376032485085089556138098972639893259897220324583815314900745235254225377124044924499771939125273840485847845086636077145729877634364471645163760255451000838378611906763429096942531145318379716913696850477770368832858467476018223109332916970335306771007486625405244853330522525431544630322425610970399981752327038946060409289343011760632937451762015577595352496585973431215240970511423677420719613045524482915208705550401748335789681524178090097233551363023323137690202731836430921962092523048429167601120078151225772811039768710088238879884506071448189669161778245525402014485247088700636781129207472482991614537364691256589409765240874361405723861236022978944877452396282036542660356306229840431197001979467418001687650295229784315172595184184237558677251958676507647283472057045395355356207075971475899811441483004861270833732786824478065740455990255481438187209108838798028395744923453418469542630482917718756304617697975208084134696708219325126303411138296002200355446497443882963690025939687317641125988116185692275679353099660742179630877832937422239266311675571233268368746021362981913787870775429175278671463202171961040206996524397725041658679723099678852869715520058012817600276443137259285915110551953672202686153158532829057599759078066111865327832686711111144736405991864709124668832769903122430694926853812028259537314188952797669673437182323948865464630761741666234174635189078393640694576968459536810017125996375923540648228682315383713229262790369857436667336430243906796515396350044975172862073460984261991605527160721767439616200011105097930901550991738534160081023042888594371870367916207889384398197547482833406308468707995985054257911584650324800868490205225486767801635545298381943297310324794520953145454809538436450141503099027157040509429822302693746933357440264138481918094567813402113029789784859269258765742096967226573543558693804275077545287907731941434631638668457431300299410013968800541494854558235639087696220034958388867746857080540201829135266824835418728534313135760821057283692422895146687385582182332663336503046483335345568935876245148681499583317033709869398375886878042297790131362268707986596901477206697196435192065119602909435056992067600155691792442215849891178367389163170947030918674396124059178998210410870912673041562610085644531569775519049503782026071514113441010136390924926035151673121595168356557426632137063808855074467704106635358678268198864918026493378546670722783996344300138142444941794226810196539567004786059552905588211278942627074976190128496160298426300835519087528265320421588744943342152382327316660407406135829699918164054841113237776060757113018640004043158028343727518456339915070052384422580567536012665051844865577041574985777434057932170344459563441925218659728995423109267426948828159258619563438842882712546203219388120689261564905213815930700600684984494371390918578357559367737832566677954539149628436934659200559226128164191002119297781252092020175045424883353482648112130772048049657053753111272421441336931492920014045483264415588008834623124247955559626061716623201609457079464115629516623491253458380428926320540558437481797234656361287262380609316832021456581844427678813176405112950019076165226821759833752591892757921783368073330819419531218365019032696805691524733857715265639154509422825709206517962309784966853884224301152116112708379183364595108812546613636967032879472385457793811771681427365201069283943156007673597386593419260816776489593900549675745391530010241847026885648692425897664231796668300174949115791456586814642335340743125841057415628240802963272646716132737646879944754231452732010869879447092707600019447730930208626524026703126061462538067887290244488032116788076579234201377504984099579466924041678961355647654974064724018597278660420448352403039684583812022943732797609542595371043948255039394080156048207243884798563382837578551125921547506391092035560129508195082353379503154186994840443622977492089981496201297029500056127621118614918328912206835701929672926778873797069716573692655766465873529423313262367390626912120792974913934805101349109332830351070631273318693671539345713516505887799245729352292478082887073607474430255280422473857134862225664668739317747270680504336322456036752605409846505678693163302813117324509018796434647279327372860850083553305080338258138085759964776673901330095642404995988367863021797192409209997402689195574420441197659274574794554446298538533780694352021159714953660407473029583428180235501216520346810344577175279135842887252214198472677114419143531243372698627082848169587667576527270516535474131796684161204996091753332916668977170713403135741010250710744668059657258900204613726997068397217268397226125374356055389770249127944486224028212736504246916108721195311032767281775582414854473938103138421743529517406794831421189129658557354673531933223047230186989423237515685571423298995545500522215561465094711480297353627398443977301999882921749601772331994493670863038553020071433595690263253066858695579136389461122867959575276242204980355044379806703477104880446892769788520289927702969575771110169675254923893302977019526962768567266737073619205976112388910676508532016327661475716360720184504590380403639574368514027499695371965809526021227458127886670590468545621107592927648249917071299118148159907628657645137297336680089324313513169217122379829286033755295374690764961786765734262395515348251944114747012515289026209826012981096931122389494924907000453946684354989636819307624311304288220007319389768883670805569897378479869420248758219483234834173555637197587758403820035887001114522161171230691783522979079299132787516459308400856217235601759572510900683768125294089052316769726101825373572551975421259672104228163847087621381720344787033859019269752063689841196905188585352128911207894517615403915584198067292181727191561856506426136038212648003312025954640404692247745205493204142330322637946506931291643627324722160108867941183496254958753128184693199738925830479183943393553555514929117171741026386518107970347891232960100067108115248973684276462068031300948593344857766803713534153763004085732565501012839435752385267840227009223275532558946080024591549669862185217614497792349247718554798617682483159814233530406249627965045085373343886797615074643091396918275754591645972426245123621992014336873468804856150824993307911105235553333454916380317647027192781768402810174476369637330074456609006422083762647811829372472231519084948985221676294615931064274471844426920500547964261844480920155893369498656261083339882275649327913884629760146801165744866647141050758220785822566000890181597129315669757156351247573815707707295494283735137310691059971078569466215805886884797362539352939379059321797286195817128365633251550446859232375407997935282821570075768468340068608073208730433701394427934598553427903973995913377847583147107513184737604562666852661315953555276828663383192300304725864185075506258834441828901491261740937374070681166601064042844675694980723518515005109525936576235536377524738664397544862316367204357026299553693403023749539485401193372043607759374289403284960710000340289729980672703415455262784226192521797263620367891551712559261760768408818930920219475278314743518540997335778020062280089202997385727490537385544570070320510162167091817692368139592771211444791925363320074585102077685544367304188325053089043592637369352881599295573117855204680794787109542417377056770700970143093897525490070585842480708763947655126050878796955926306327719002070348342623588557030605438265303358980694829670596955715165079423940352935259991609543388255670293467249579951504885588989517782770445633314427833745442485463573262300272858966582429125338540869156835697848440175515606550690011857121282118067983707513410125784309709952929246053009298889268807627392716630295693203628635031479757317943283454208874294210380311149608545772775436370458014026834328694904494677737321789052973041999457145986999999408280991589937436966352402275108492806071730898694802622496977169603713882611834920492492359627317697234390892256680666708166326020263801207454996711143909815870997282330137120511867757379308569902613951705996303880533423548516656254076588937108157363618682629250125502951051223532395088413333302397235303601521556510291795593704498304661681451048781276447419948819496282401838814553233620893918914483312208352343534416003023450002180495099611021087182103060952226041968165596649885314310230277326483624920114829538556658118755122997303064825765746863422457938540089610597350829114096293318246668571537505074509316570887863811840294093325888180933629519816518863949957525699857499104137535911225235979879243494731411540374052081719561431389284447365223215987964314939245686123301945807744078594813437217328196277271575855215198393598231335395229957557285247305018105041058131086327889147721792848429620569424307459358869636330386440070245974912806483254725545109362566259878490981160479047517833959019557094450973400851945218263098563425402755873297596278648015425492481191795543141585762478145995362517716078273907694270493511318025277464314777945341175368968191489181075647646659094379006011191684166128905144489618427745332814853058217615681169312473415666564956362964833313173513318821041982660831227734279364436793560262422019191354106947108914673081979987571953882798999247095469756505826488761229501450394265001350371587333587237769540305378118889803304621807885827983940962112307801021194735330474367592049231484837257639844117612397758017959741622179507056882245335635556036432950537907164465584900704631531993528865700430754913404901030651965686137971227759582921248391299249228755625209951288648018730266563075319228042438835645490764097987100347608022794897735119661458789179726941520082535484794309968643780687214803843374455841006683052203122087124983730360375493627719652273983353982810366934210918462366975308873739479757124977927934050407808785627795399378427854117164479046771542556718047850432246338479603104823007612052716459107189592670518464657431318716758634761178214721750237895027950982236512172538441728780102314119325457246588106537469857046612265751577422324847296300340076172402637460310567544134313734124307655127303141035940519868802255045924216894177164345707990148175436066312904734297132834358427474245388588789592281558165448681227803723334040107648008827165313955278288770996736967235887443746774216264280668394460381100689081583557454124161339404155816407966364701821569583994333937044288391322523983074597933405543335842858520358005233345039596477316390707364637766817146788325562636885574662013134707301146467943579816499241687269968706930789190261346740025395098126997050972358877559810636936212439371832578875167442434467493642418714279074954876598917990222024510488490748953331517791672848045687207691218172550583837221899852311492167283144279542311456735745720341183092024530253018095363706010162282119907886692054688221938915382924410309082389795019986570948751832724161336623527627435422585328152671354690210517918888327390333391773678793063462238578237650856429642694711653125347897402647296386945864176679733754091522785913912045023198039446929772194951123785792209448197150907848896676323124533595191397406193555816404373810091257244853458138932668504304250856267349125276126298485702394531958046930687921481650093323546131892145093523960769650372354103406242615481002662427586687821117639788643910744160559155629361561732903329049997305954724750814490263723298179245350877064830662693586218025852869948680446322074791044829487288379671584478255954586203901362462152885619916787668243563900804408464656578753634367537503197613732445477052904446310821764506937305340864527763134757652051040904261254927262839326693761787201257945880153246790795893541148014061932352559475514503036009056877576094474063653366478191592446640195681256773777047432402349713161895249274388916781923053500610690839423387498187733982803249368036243996013894027222187854676673123773427456142420485970473249077182358340057744521291170995309627207622913923729310511695740229737821547232591543836526812674113409242460957474901134926354710853499141038627384478029881165957392779430040632285771692627108853135195080399813438932301286369487516269617839859183380381490337406821191760511671893875438549609527772643534240016891080258496631590008005892267912083647246833217601423923146026542214369307864395879132227056763191583894565091498598090723727743845757869052588893388448157180534986516861257487978338215647922996284221269248178824754816207228541306800856519658232629430108818625471770427229870990316606606222581561743155626511857707637717972288722115143957309074718409356738100447563279459661850499715169989601463147476618496230351544781222517424584406440779660107865647154953076070406499555707955986258785726717396575494968852771971289045448914305296948919554384597703799077001070615587291316901080039825155289650041601003638855018659430433493346508112080147424916307728743714936725707029499949238659390959798793851926255159069626159353412221898899902668172427022346124067328109840716365579549128408391559550986218425205543302471741878225143721464697008546321502447683442856570973771282716185104313027771894800347908131609802919918923037649795866954139831830499840045188236333228365434532046409893667990190651528036993159306936580013341132676408680357882862257237806421677296798966500454759161455786440689748521527469741665873845847218453707603260115885406797944791037189974445598314964937622208477214904734746745603377256116742387014111892133268174404738451508653340617382400299241932848463289450809813450913252099258732621200529433597364106435369150783518469251538871733774323398181962255251410155193794442876202625428289369488808774197850126591753666839316606279690821342777555293657302798797243789376336425428770232133608062194162921365454574087774772604602643784654707736787431043758527907328971783391752369008230759381717782958698988172585719182808416121665531267307983694711243660482793678705524784261301412923791822939304033136826647323411696320308825173289265323710426810332464385226043093423277067354955575821961383178904779029910708454767459459273892759021170423732644675628209812809938375184325856256761679602785793694685866259913452209851386157626158598878084905958571413085922211742966855692467290931537049222698341411143043125739704153616832622740276016712964354913538569797476275970412398863852176017222460303685548895588000855607596445172122310779540093304186637160976113873322996276650133746240490069140954165812362959155920322357350937437693342712317879785824303289907134355853676148763571015033006672899751564784582678185691028985597385118306855129237414923069833051985859678994914084674641280430355290764214719314427235166229471032405430141630524841530616087852417449831536191078268234760399956963336220508206414707456945303494497101210034098750941328356524696117340408414521113552100636114071223682465196401907597635442431115689750125068567218379590107499615868561748035935770294790694339996890029284069011379441231419741085299349263741841694623158808175072728440549609383539739485708084522638908086060639070323924025866882316965219538738748628568843322384124714403750894536591047260885932006171774968058476238373385667823178979465791154775722970263591272495924308275647098443062494400530321357732037189687327073455097369802839520534132111990030314039464939806745349385097010172084369646664317733531373333828467731692816144840185673122532713106415536187404149647845983804688397538241716070446349064506994294401199669074510170560562821170655147681201483447347906727950292869896719545345281119732694800013283803385785551174951652632283883977067918553780145616290815665873244788670920901917736754065209233089430613829790622740326593936072932966860855963449719808702931166358501506871130418058507452354074407288631281604318041875337000122932898101254761743062114064574519244760740072252105125374875193454423809801028579412836156152282357903245258578433559416560664371861391473671560290603641429084655835681942103268956537025220715618128033547381717440192640518249779191756805661608186477032450772340519377499996364403524017491412292437600496813474528753433330964721943670700007718269939569569617516733611632902175028901657776646662684780972156789844943271765452475921791923564342594964351029722392138839921668351089175167743596227390963006252617232424916816764835056019252126657633801549503473142693762540510872522148070477659469061263555781164199217518668602561026698152645601696406072086861230928802548589588586184673915078537326454651826290323630075043133476863256999963369100502266701227892293207479010958438277926364680242843445335796156475093775370815387090813102087365883098620036409107916281043512213046230583089891880385235061410893673305934437566658852347823707390057336874890275791261211909435759539468330982045791273128996034399347994048352587546461448056266949071631340084128920571428586621426704856261676271967120082040192963975691050932412586372360247054141684982498411989105951642824432630332658569895658951466511937851431110428126074509396420584776072876376734658357769032557364828449955069138951782424422898174350045002556258721637266489924846015020394831422528407280447029572712579919949440701259398943890265368154607438144710718158104855007901637468264234212762226472812209065211221817574483164992384019383044499175978194560064007723187404106931586494315489479646290947786847538407254846601873170584376525784949861615663122481036766916927756212551137252190879145980192657936687419265026408933880302304264662394196053319830531617179345187687855652425168824764140082120779296638928217502120572365258907359442189217873636704819851176788171300204779251654208795855618877021395259497084463769255743835698728163020409070804832731861385802616626308720697028791251919426898469278502280948217393736827319639626345165918989512933827549012698932505904150264413037518628967233764063913208723030314778864119735900486816392781522620403705321800716200016147785195899528934653944144942507594486402171075397805812207308052599584705991770672476336277399040528307030015431593254700324803827135589261720327777140547554814469257920732662629315115599489915518449796376183482836397521832797255293615284315820447996350426584643283610629987883412900096445273702038834578706884401713019041370108612926463507315508303598760610322590411621829465836591222088487578246999184504859940401398520713073245224506770562493697615738493030947089453934995059304410370368012633082791416330141092601256959453674966504659945077934686010011901637443895959746674358499282638303475115017844676029269138475689548837486230128358551787912505722654483680293933523306904234610114071059928532869818114981496263242209894216256215601335821929665076132800906723672934716494651333946232800890381932085192350340084537825950004477841020139475271610012354615462084610806282138521683132274054627703770802264278134590999073736406801217233494916273321120439566158387862213383097849854216242178291656729496567743833636028634210797325515447521631105855105542900698268171744013657268418711719913264530567003248548398288777406170880319229480398525022141099019373314048050245956367164171817261453375871536698058451441462923790997042436386016048754721598304343887112331651636729363247162528097326586336323456182585509656539302842733356861039255739386800483329078715871739541755229377352634129161614666980371043855643661655627357365864634690068998309620026350080193457721019738117116253593200266164505731417942023931510764580189872251617798659457442563285257989417258619548964986227882451559063427953035985932408249728921187431554451271620726173051591272724736863071336525925335637281540215609801279023886486499008830885516529855223779644378616561714413063163651367276672435701404819671526549813589467248234389361076395758562881513082661184732401533833391437248889183727085391970268075128534831764550664059243060580373016951861493162425856035534106205287478353500179626780485091340210765461223328257024103052849277499568431917715325950318370076394011861682619162078507268645543136270535253681041592773948512320442863733021149218483691174480918375335668068785173573548673965815630237516037751607399720604563053653803611279932927767316923329594308941169979934618701418043955748294174886719910041787747684502863104552282288412549533482563326086931631665413613139191100099431111100196071086311820022600855241442150698580459849088702756317007146454129039093351136738658596884022263680453189087876887149355115830114861969107439400805789910415477200701552258167911408943501295964191953560680951572688136194799427436655082470741060712604215664022449561718792426451168807800710011192466369800479345822113694221723876346124893053999381377513653464857074794493945714324006382897834392550366251903064407997075291512738293218622343574700834915842111373743307954260169340014382177591672583672499968116015866814820646495117361392060519678529288125933327610794881687468826886646790878686667156222435011237540085208748327117855842133341473494268902707747224490675849786509587919067617259011220268227661734786099354667201186147827143080970867811014138793883100986189615339674644739880315587471916919482559375660553937277336631926678257676794395324677848365663387422626525724077635430155233817365072019677549382158170813829573512933734007975945390831629992617721985207087253857916677370388461449098623626603032226936557600117959991334785721567910774128841363242918928142184388779711806304865545471499080230110452966666736343337416953909107646508396830851005786407209855963505467006825039976717314463855547030864071623987973431330545357154767759326346176884273982100020024651892508409291411463216662597177691709811783095231822166786483652729689096359611722853904426608371782502607439177965761687171233199442925179701607273069232633729026369223837313998139354363195271882949180092378659173747685326369670093028151617204655104449192704262365061685051146994453620561807213945249476777613315620069828483520140370893410266074427849232222455767228433057599798948746921674938294069176187859362725714851202605972021198032186491060027974189060788113416575839838079951697395165011224212436476905380984787492816253279237333280474472308562724625954628465417950379274783043476390632205944507367534837695320011460358888228349138538881745396939915895311380834059437151554409649391499561858382866746645783672892726223096828974653176383437702481456563399181793183182718041328433623615408197415284708921650778505875568740905159552216249438799451411080590602245121312731557211920795782538124186718700924530468883086302323550541744594661644371532027614177815476964629265715955097275998051047435876782332896374257855703468677187712802850604448537341022776204087510323815613917278023467426077122039294606102764345068078995850160261658744864037615406521247613729867180215477430480910231047751733928638493209910952268553840994649784318400682926801929020368083333082035541303400590940444294429198990242467108360778773079002087504896254544818390410786936660038885833582227502418848930468444036047292439870719236307053377587655235253337510175117177352903943417909506773808910940675461070539329273378972386459341483705429185423595119481189125147988377871988089090870908434713420496089534046739526246255930592405407370242515012144314892073731593792182593232946082251860636207334595263495112258144981070607358483471565258768067637097928351440228824144827433075693107733902344152201577517898603221881433956808398286320658312654236291957959228358423514474755538665908781359217576688570905906954502144757857405901942187737329324272169495759602328299749007218330635263658493765742540165775848885300183710994235277822503107841714595911109188424254339869269144851420900652666566195718870060074973473168865933741853446899292900577686538886646483426731975826134002109466341261477574624664373182744175578300804424164546772820127213861606493872264473921964642061640225735115443012829009593937837312984810886622818278290395437212329029050203912013606663925712608859617572393366920631713840588559545115733442554967320024023721926644149202221235298050323608813332768285785991811231678876310374150762415593885016164143098292242138638493248540310561647674572590271354717626449973166127584465000778280835360580355658058152063917817499082476240918745757321121752565265691600271520172936096648608933573789940530332624112691699315712271510461014487772433352445220651264799611646299604175079095014164719116878965622898735803152139709442968063147372804539288974994463431516448476776617565818326356487065857877749513955638174665013842267085217055375584929149494420598744741362280988331539912582330078624066003253232101507229790233539695912504445778897540708469949759313730205757387028695878040314428676875288286742524543497501912446512255837429933099903716726439445577043452665472962183963217477350742335249460259634699549997021516961929217372149254530032425189704895595845860575839916477475981629262904293640024512679727945996454020692450125157137817155132761000731104305041739570705194029259078765366166037715337968032423285554089618773903890905634286027547239500624322389924431775839675848993823318266999853178433445333997123943577688426666824844370254806961737629028023540328279923845328837330837482323095875449306764803658959513902383730453224520337767064441322515350226425010339417930790803948402417206367895580693338750673001561466468497299734498786162195399979288431486090302520505677257509776679970489923149475196887942434475016013051722090856106069662261464505934674141450464837899053105052066785026516313149768314351337890929703877480916111383340398111735808491703972362705315819376554199031781453694758062083656468742826541590583207863146399336685707810166679421070380358197318943970481376771163503384141663159073753533652776636959394816322419427570210189357251119029762881510977249763635007248936818497681578211218362546355809789999996896480395022686589603530341540572411756828886123347239611373817347491167184230699790972391561196006227921192405714921246230654801063169677741280027274144940629496734811158432706368712794511000669890397115172950920733181504246577384903973582283896369895094822297291300397646806244762606995076695200010890579063902645812590828552548250309868572628891574301524162314260601818201061364845959324098886989534577268021551156666270663188251427578080539702879916486571041310253176718514890781649000066732768722265737154505501864597686010346769277365390072496454095286599085179426692431649092976464743421756471456956696945515291748603294762831594545653457164760345892494916748904110298209570837678269500142540080288989281446063304650268056668034760150736900539762365226161674438217174904159981779599948253529993908063234518032343847016861149506189032418365666386231678958815224944442473354121351777943461098786801036800515970615548922567793541494722628325303105092223818263398939426033157809663437282665067037980938151551058415640618287561239377319508526640963881285379441059740482984209310622031382052992779791868220987620458263898735207083563433787369365432192206277931169984893936502366385720465664197529235083383488985770436045736464576362167965458218612096441019418566590381926665093472504922002993934262973005227923301402938270663306094008648672430386682889813672327605372291855736899769870215000145817074474417151506618754187246202100772248004024642048507890709334337052079549804391717053187509891067121597188062074067464989436845728094506623964321221441792330348650117338685774175100851966458715338071672164060146618750660689725463198253135899855726924278372555530342002837025122912501930917430817336433792230936208938360428815733442446338848701683989230185210345368299665910417302135297055771430862666247169791670771184392725912034954799234976869496797129612537002547189076721789522511427995230732446184374672845590413024610749850200878595762039897153275205790459284211453408371177990025436373282140750590090223597339916644958363283325411225422106967913792311615775666363244432207513781060233620283248452499576171990826989257760116561732547304208732886328275958364176042227710636113950383808072959528790924051826879490910172720759400402975744151579497268329079639100185634379736177931228748616515832304484025078356245159628184682324414151250483724350923350626043066867260533644712707497782767826178330649605393090956126946666976168014487074970944518461255589025698127239237166198230176835908772537732951859116672397681125234571179605262589375647080462273996541494053054326418217274118458619540955167963736334021539222613059807517381803787145585809473390561788036141830610835349753988514729302021480091836567553428846281858730282568278233333107744435255916298532531447215166122836873076849110138892107919821417164506086589294929130275051618277844575440683556987636558126301887405403055258890965733168482867242534761873134902040979575141103715698637800138260779167530201775956791921720755927501855295745189648043918177563367106134750432722058466164944608467407226282654675634029834083659971562906436174417653331222672335128330512836436716678462433685666373025754850459071448365631600048616497959295485111600340927762654377173993751974219804655333241200263530337768356048263350378213965249834324844440154467771260028001241504444641706369620096739779300085967195390665537000960057685170264115723118024018757689640412293745899167991606924728517839594508704714036708395775307091299799407697616934623918866357343387246960756011568747758226570094514405679504516863356960240533673815111493885142074180713468428255090827824100836141417766374863074583692675403385139299909448140023408432745893398745328969974936239938887523033443874780027649236690422976448599006728031733893155486752913612443542901339229272421408139943412953204222247344751658260973113337402217894520189257706873807687992139264886213676367887926168479008870278486360995572433882075244618601004943001088844948323449109897758771612242463217860997180019657185684507608970897120074874780440084226017271176499165652480139011818381394894716583940555767130021520915239814695758621446350610534993434636796187986841641632613300996835149893655848188964849325877110196122288033439416536408501936599820599712011951933075273814625498922381520721058592910780681197593708553845049145081142041137295733938883812894836444011120445788890197657685569309778124882634143158552308609458874925066858718113743692174936448282531371613486595392564558308193459094037673339167170360255365541345304738875629869910682663775303181811271398749909412096456010089205193204839788282875407800241088458653263521964760099358471627151539147526023609905791800857262273889845442135256582590293852103664493955644057860268782244104961096929028458393469781176359723042457321374157726299917564848950273342038393683841685097497741699896240427891059691214811963822711883905686155677690416000419309398549127075106703540471789974220221605774146237492167691738371955596318662436096263555948158674995199341052159354803134526766910720934021067996887162691461599006247643207776517323176698698038151632543671099948491930550976384619271703055615055338182134092520636317703046588764682726758369766496375928032648702942643634091186461134664531328326408611415969437416416466326531818994778706106709618488961617170726159038664349128769898533275127222244457618078497288715985393673285783621882048380241944918860676422715163500367379982011837442656212217595511412635911989222064895284136462977245906135346296952749427828474815633336312600640787366105056624519757322377401456151224129978768722272263942568861643441303751196970545209092032872178249050426570106518721060283968666397491681670153090845437113898116968147431632013957264824315807653958932991927038153168360533083553346632033883762640580991519720255433985159543538991543589435473592043711345383162619288918267723738767039109957064672573877089542984968416260260665812094996953078136496604480310182280104158791444826581437271448915474132486968936499198989629881767747237606548099124689862146307791017095424010204264105083567079144307354055134064379041633249673070642840338633716427220490126216288988522541441067706041195034343311729875256670768014615876062661800727461294257506614674287299039687570506972553089437363720385536553411254368506443358136276934199453488620148190982629248272375389202368828706067315270610830064646346917304205185374253963862598808264308101627153574081214528129654112635640749456592210379793974032462470386930063648703979720329648413308558681889562127750633014125242832725650486115576474221053303784355119712130868775325982930383230874865973160475650926791060967243966585743633173416447724080301753631350706683166473303421326731551232648447739021768848957128694285726635613466700727757146302229376931263103762144296799933076683278499476299083644649260278326709517384814335772836205471125180800273537428971623442390643497796247688055676327852347661797597706207384895686147263917689002735516977200412259427652888191483203766682142623197301241230518359471413389092367774814886928988804442269471700050508439132030028048990386038500350933547804566762661161774216731045908371256579884442668676130558792400509341718655229163457392820245098709049895467466378407633102439811526516424116072843973313361701774061218216290195747569513734905275172731711385659237796285796751543648193993545432113587647841580741153053608114685794660541186362217164663736049968584828373489766799232632299758414779431421391648558240069721631814023350161541416097842962892717777503406053173743119971002362301526360969285631012889114179782997522298652820242122178899583414946810986882272391135162843451825542711558786400063221404707805654477584868695179640742471887137208524393779770116828346529294034610123551462735389482673983392015927432373949427273532367100506680676988146222814039501379755262566498843856520646045276114544533997362505845733696718491682522589471661033939307165376573545255587639468398385485014475981890807891479710520910483071269900888894167559185314154652031252662160718405618739771668861774546180967293998131638803726600746018491491198777988623343802089334320415328158817339197344697104091501900137670580110648667131684413478726659462519344739829875687803415325202007700182285558143463326897284137186936482580501828369553163993625422906098172990173846549854620344646148874468809974918324394520233506372975299356167643218450567982161495360641339394720000921758259307787525140036260350837886514345182099845504286432812248002856285850951761404576032068602108554755045280419627812950534140242214141143680311020378777825853630255266031086359334775873651268372931006451498105126014811810734728440582448947053716485591847658071857430626603320191450923224132644366169767033084601030451370106985006963812331704533394657727008473964451440466177972639765670234062465535768414664681894962243304742656553877546498272686616578369288756435181523171540483632531650010104658757610303716807661628837385570468091906945362653782134432592023188497914655812844520704335055750985264097754037301489124701447301449154747558250155256306771750137409516439153185913914721532307250502140758809314011656960811172923613738026714467125253337292235942631989188039617600901407172306488729384610556308289468860608930784796736415790648963153700879505005331553091631434705404971367727354614150366294114201181101049425142777565285090880438773933362337738084578564452361911675810599409145419546811538223040319165219243960233318470869705184533070097741044854239053405354237607785038086164082447133152850022642420608154183676656679465021678765031779333886491233674471217243629601077520119617239733486965234046926712729828836570047193309946418740130889054408701353618908488198605962704102385269725945357255066113514327260683227415849307291848357382186350819420055039131320414235668003444619276365663935646109620243473792161295438951629682373124298113886712484004795745523986272805579279119953922707618661928526327825668194079886623529142269287322265492987265629172887064587912831683242995156303181275587041354373026499421965353821055727573298455654299235185922140231649795269973354986552496023213912794416991780960120239705580725212325974591341071759603498087875606910762494510042797674198596995459673307803237469923587046277849450195914760143728758162965291889129745948758887441141527712427479398855556795832870705658496132647039135427297300951620410097236883565002102328390137154067270541555883663347984630693063827761851409808890519231967134390910813326161059967693601949785131248457843594948338990409955629618925574447882283748120044803058199533171144023674739481056077957817810919958493734056033572764072809824491146870519588882862533224286442986495145151501042625193113147277936323014139223121718087342539774310161639222713329587614998486586410701919163992988682636147547953553855117456979116150467409459725856075720063742611940627104414444605652535910723975807599048664935390669378904742642190955348750012382824782067279366892165535128000576481342479034595398665908300627683428498434504299275507407772655633574062723186852630499850650848148999484832197345400170624777787526454506385946608636193960904383578339265438673209855936900060022974975019776605676927916722230539851080759858811645204609365937484988598564785092049907891947541355912013663014687808490425325132501281336631671714560138442053531591403951482624720049124764536746422877833116373448666536704613021191310485227942005863815288136857791122593989527481698138185509467793099159148055236175816713736709729745803878175672438217335141939074547066554182035516160413386652714586199324944227470801485816802935884006787963861907800496780291908851642920261746825999044583391153544363241309459841807742077324536910545764982315481140012223963621410935529279178109289276410084406664594842728580442451466034923697791688800028447292988308636518453208432945054133157758594648758787152016874534303956824409003597903286210169241798841986226158958885295651965479968123062824125882999839463586430261902614142189471014615065767860696636950858886117448626753805111936472195693209048200358283455347167417913157100538936079760008971782226917583289224632454217212669252888254556799079711059435342805915984659550941756632274142026165428871772517636729011400912221092606789452133761690122342300743521423558234390640504602104427340678375518428712674447922141471645351718072770177221473283868803955660525078108981129877272375067857637112466418856700681625562774479345041999709237677431144456119030934062591390749327051137736899867469570764667511556965486800065276135523436234750536332284661282522520439208242883658449384013555158919993926093696877118957073330237129836153413393013416365822662074598398170699157263757897309292780251741146736325828986556711080007471820148670442646669496605123210368029701257582258563712746388934165615983285944914343296826106289683416596793487846203290595877344449465666493433035727356901134619134651684367774723725517080570669148714280227862673957863522969234841568006434819729064089943039375999280503525819120913402035677526429077310462246426250117158001111095911348703863466700693012914174365761221125721515000664294830104686650156626336574058429396625798575880824848085058439510108727180195079251049367861769487736545530568444181832108413098521845040575649292200509457042740732270090764422266307584752561850935260945378952560107084426393733503970680646443926760795212662998865736163522071057623990174995159393744025331634395593499943638349991775519856625777014507722919172430897340493649262012884220540055730611741308797282207428178172606321906076461162091183496161898002491214068658954757657951294691933758535605957495090922925511893620167892985812081431220756378257557906860217400533574185036658154713479951055910473837821428616986776849092677475603659387192962243994047701636700215223584209576924314541084274341766495996718215657742049163858413864368479330886478569720058861894170988226192345988198789495457960553410091117232954986996030009149383524809840337626574375325124359318411854394111251772905659341129365146649510135621504751566972471356582307519697438411355970613974247004827452643830300533328675775239632306192118275351987378280179299159924421508117348881944477665022082973307076972124343082537682011907802189626498097182131079557903545892308882240478539126299377237487787400004858333359097368455369539387425943261601878757016675121407758075630013450376612579571538642829410260290007616495635212001905737525652431829533291275029852639923910915052862738193049606884373226595884241155425704828012678174436917013773809677339242146042640943068516513258270539296320191513773115630531090030718694275344482563872162935356237008879426347653922077562459770322818032845466936651586433386711711569597984889507987045692518758032069271847695173247386047827597087299986329215832356965540577717371936933982154296807069615335637686762401836000911600033071713640372412366846804728886339596119987232500269889653463559317406280666791402617758635013545106962744212487655782418585886565077142079629210268200101459259101569612788852193826488336883324703519387213912285657429255988592726227338487260927164227369957781770279199032653624461042177040847909352787309790166116079855967602381817066382184260584562860314895408857918671659110729590737219699786145648444389090926116673411874278647781121854275819515563038894906686237406672804178997162264007971026015975570723982455005372173587278578989625895035845498195664497393313624605816588297994628602651878426730357576964343168544687953320909358603828346954325317230211064881272264955761493733249504100980466520265646166353063875507429248622124243738860055295313565990410976427072397181796519530146062568530408336387434734994055997191477484610410835357864670958727077174580440417144978236818085961108725414068544172829800188471424071165164693135109490813641785351478910615213292542509077685368757024787073309145883954761133702851962028100151408736698105537712544397330336815824768661611703014014798881632357934788353615492007013577329237450350017923520741502067740723899500987256631828821709555981928850469031924271431630967992424558277773925659260882035161618572081622818364487606015998545626592998952358447151348085166978490576997987230524842928765706829968229331480656075022743235723341270696861261801246230263958828351173955910322054757312643078283049660478841583818969396705424074760717780517021780820232969324726625674441285113561047425329755921745651548020049330879685705548323901273257825941922478786077277530664975543183440331016996728205372726751970153536903682234811898986564866623467630151955220453197552531344332826200885746134890831290601100267417639116893547362211489918841621500894047291034324964139720659836328425385712886742928339610682810620197408202678156479883187642077676358935917382638133137557986251900054411257489658798761461612122547734546787690508227837393881058078107505208822892770034053982496148612323277646316809061581442128327122610111032900031507708051103120979930725943347979082257760002533968592141126426402678511257238689352462485452377761171077510085934788580857824182117788956880938382562143361626464527776566438336801564680217947828030826852434552916276322444875680358275455606479437142037940811582190109421304407523499037626383839221774886153337148971201569216053923661505765171739380856455366506425481520001998946502174439618927853769316061266109975144788070628703798370794755704596144921363412279961632612374094194797691413988394530491683271900223394619929554261587832134873060628657510652864977132430912183461034833727487999674697329567506106465858165820705072831679588327281233229807165356871522538787517269585229211193316604532141588952078084983934978283137884893389481842974660376711345484629698208473556904843647518420722308167361337624251164004575170938363512014626640244810621062800142269895164090479177473579774170044222377072299640145906871317807947803024387279278896814114470045643587678411470140374682409974358168027485070810074344849850050747924742203870310901978235341339718256470734082612102441548939546880824624275114466926230852338169512665418278568158078778255283560850993924825396934017677878986362779302693717804037191508635298848505205842209483321575069258915740874332176778358285615958313408605687471204558338284099283214088584834154875589918998338020013938532885541239261392323020671670794371513282268513934028428068657188660846438650627538312454348163343564462969394261075073119551395777748464819145865964689275254690548623689345051038457692242289354791283996055174129208836703224786449689553978705603564279762976944555026527187214493244003363599185178064126264227375384844555236814025573735943130766266971735335412373783742637177233093242279684410144785528974480740273636110634283490864162290288685226756667087263715904993809107055137977284326865485035308940293455612023968825698184879310332340109923177298807736736143091741112934254086301187668060416034354357015392192555773477248014852022445545490982794526326735104476014048144481042209245621994246708520449858741717875362299307875118134469809008144633567955467850843270592591452439608073713402978208197977431339782405634115049147114007031096408978691830628159289443559902226567858622539858742070289088717269236326984387922581044408022320859854270166320681117379236285189671165370085839002972109787762423328811846044866777825279518338896718620157091008124088240636251844551302908960640581964230883741382563726618829128382744975222502253296531166491574899272199269841264844769062128302341626530804410717410925070425301034510278934096807223508873676471807714298888992892799556838646565448398300113298003532909542499709630387731742713853798363747598908745412684474251341674144028989522782423434312104925131320204752857700140680922439310166743620438002367871205418011044997664696935378911552414448828680835277347124639687095053418855968153912746363655195795672046640347137367065473791065336769419740251149441962309176985812137330178828458852494191758779082271396257397289370322271753602857475513799865724952586219964155735577804002041376813135022470079323541731189207530647134742359783856189762153680589460827173298721662591569864653036668575580437342981819226159739656343326801985393497216557737698907322382490119212779090865478972708091890127768342579308324170327768502568471924450492222225451358502286950944299631750868044440439162601361523080059743887099905306589864530861162014259898210928466922671772515523315603392514221806370863579438510084747961570034138407267419502964862421473751521457298766931955801301792578056275657836772193595346930776706654600715769053210655533292493404202725855604059570409751779643412389738817988753033737805454959855296154460902689755543421967594121797310074022456412368271863081065043081233747006971730438497360695597818789644201681443145604651049191148114179074132403347240123972137213642868063752554465976081432136722800711549854620610138238305250597979304595433587101487025737661303504115046104413924363266790698111316719176663300341523101158109465215524561283369128918999189039159378705233464194067087125984124004800772270163784825011197715623775051097745926640180212198516359790162910290759393804498865968664861959831054439012988712190067617166882110473103578415237521099637726231735304663298534744050318716448142509974318799729880794564038632495100959117439913959571681045217002897175773537345801243424960267113465582045003219007957379971958020296823690254317888265757299685060649750604518271016503817046799822457283717614969397334920807008662017881559951685458079273832179103006419880775108737655568034063929765788041245375265559663781890663087289384658408243831218606842201724567042223990085282491391339634552838243636220127691057627900249639325715078238710675673816462851888202096816650130788429586762816520482637802542917733992564159201919367979599845136679708758362284878508804037761523379474188721881061685049177865068294353246806743261808831166513679890524026988979562539244746366650219854031730900265453930512422133704636714195266915891624078112854164692466386022569364417838223941769612338472411282600036858693692928247860901007251362196257296836507065277876783253606178578101692384823264133134734088490635382418352938832084860350725303316946678713333283660580625830469117248561218480572598830571379498074098376022989632529450325352799179430173831103337025644740953086065307695938070230845629740219354877268972748186735993772863584091830287535479913896512104000464616144533504893893955780239213724681456873170080964250761268520685918526809145987712373299361157635486014508926512745971933118173228554926335124900442858854792311610549246632137151554461672412545562356744509011361363567692757334494170466732827201449945823950303521499180871922944190099001636909592479052362641925012251273893022571732412982486818909597468982637789194262782570130946945968144460432232951008561499946783228773114881022687088082210052540834975422425323815819439831681027663579017488659366250300446708594176360757446764765747253932770620947263436273995012399499033997132730727425590781666926560741697623910499191158758962205695414980225769537961880265552104603262146769333312974872200406647120582766497583190853971877307796028094944670576739564578991923883108009073203024036408602386290524583154025866022712292743460111553488824450607712737124581692674193790626055829305135469490661313350225944404152908486372047433560651803080356483107010899723592584096277456799211583577206060070145168751161044719122682802100434691363329951125145425815696699089902375790833552940800654503498142608120610643277256206590988002477599812585338906701901365547153340263355789884333814640486061351437837327360156758944667382786010389263130896970589173927334102938703547464966015524813984017644257914615677253831135412714553523895333051787048946595926361981660783701851433276875028554930750014281860864093460232272223936436438152723795478956535356323937651856981701646488440837436116895302393650396246601473234609264865497860102259471439903759609203644416001151183862802466267066598765444880799145946273374813252915344835397522862681711754193565035754339802307932897503550726786290350432787466157389785683053470271568090898645732103249067925918335639429449271120229106599129507191373987417550317613280445229935750956487536779325479753663578707828136266400428496211914648747828606491161648302662697733036077907403804437669045585417533945826306838528350187783406550203139205655525079467375939014046479362012028530728406486598393527541389691356602534974872389302228142316798243854542527285333474609414911735796997415873201639891145079428983736804408932293074300520625075769120697925542441094693483288843218867396893550644703521995783239809001331252747543845586912273949766441176747814070261352177026270004857101787437340994081102878093383332019107140277029700765275307117542437206195174976830976703102260982191448227176529182962758035116916186673085655105253961350162231708479220691472205660167279360977529805289465683571175451879009658534611134716179972736341605736930227560175799697907382450488801518641873660015705339123791118464215349971329056464406278931348210630563818229238074583525535204549227308629851848906502283067941112758134037291970898571617151889146969705017249454821439050558738543257719097802529098367644056417260325595135306691495934137214115402371209675327370393324199937351707649078140418960693793956374451125945418799835787583097117488652089395448874803791669637389243494887944778593371977205910490020160989546235916406826473976159682574730319261338166438652877157744448137310785823497850466813011245401406192372754406279456649455574650519584993083156416388222206589729210960098588823671159964998183285320816694754324618731041018176193490405332902663684119356505121942616072355705016903201868454654685670266897421613040001216479626065331564981346842026546337860666981987583707935713364526741518915996495975079576437424443778114745824174764532804440718397865693242734604689746633890423052358714349606660562867357865817423931346355924572005377761226510435768773535599292441382735760242423164762829912795337489999901045759595603063161216999526681200355879717310242839015216333341165607522635036153168298193084481313303078281125191369729760249022242755704556152441881582937760999890860296344815547615462155469629658450362713102089132075814144006792950696527036872997116371338731439183982039676152708629188816817795129268459849022487018895125759229681799302968785537677877435861702771995099709826858512227689802151505083765973345632166458789105840984786996068520658144628449147987107803285335922196222201890247671686724592475881131361122501119854637848757671911277154042563227114691682654472164522598666307633834459289067982562053945532317069301176235861012639732033731389620067632081744723162768149621224095516897432299987502793139869817717954613505619087360162122479189891204638505809680096557885608667095067174980490775712117479015210913835860321572992255234659705844776253813427007854685459936803617844213320166766600613446529695353445669591874835363434134220129800689596264587364738839670352626337797369770864234488651369681351880719392093065413896816180026005627607948455829099704643605060765271257748631452174886542683602093024747219902216114376650904595554020289044609701593570877072923608946358594764698579869338011795594186960655874059142608939860932752415268405259906763981147157043401582205381323960043284360778214166919664657718794676215188452691194712714093749236051774508620314727774069682076017457236922673422248954167390452072360242822236702183538324420649584677040023854640912376575146923215582333874253721946268031838215987174876021309350000473466924697555430694591895596239253685974540643066290585018371253153335082966848510998074874187453305582011609972497135843882841635435574819552405328969350227832025370868936911589389651644407816634922999414632348099854124957979760989403959668264782116886358886388611344440884014225935852521694953461553266105448198311783713497634655322581278562280644896208374250390567865934942985602057089703101402400047076854847120850892975673134775712113556858924070935683674426639507896245582475446506679531276872850971013962047929528836530584505441118980099486225545923125838831441099981551878828191385254181949572191983803816939349020861075924376746612035328425956470728095746888590605997893405001825525916128150674398652239894684202644809991671791795752348568417944353368372590568374423254764461407514204691785826167247884852391352363794265041533627442236709713099642430772652384413541703553915288251564042572106810720955237444854370895310109126518527442998670677207830706419689023138771328968371263834455781842080096881227785676233193625158805773903543365038985753688296956371675921498926429002446846836563751595992172377573834281368364420671742743360906133343101267084743886609728047157727338740471356651099510066153128025901842813675109515875454699150397180113365318602543809261010043461681654469900367437697495402432206893632505371426368915242666878652759817243085539507618911402923765260452676178683099724721670957055405846266715008813236525229927255265508866501632868410000704878568352741407157351311937148980881725169985413521240967117566600643956856731852884772850140721151238344863311646667491666581269409791279695620016878557705011932542123596606805976151358410161059462680952811677755327997795201761690290998738590402668120397783310879992459928203697813332387021834461796096829012397836312065672230606386264794824122129139056383715041218120434735386416670621240105606109460949208665963353833802694226418462513056221256494480191217283843564516273498737792360418761077358528516516723638421958126578042225266930166567132651718823197822359380322472330735022715841000655389751364162404660048430626479044458472060232140075098445221172484996585365661534099253733668353807160357950274867306875042524721654299332651233549137929329993477613627474200436514236808981254421266801241330693646462750278371530673670862747290719192688599959971482707108621052715681974798537496783111344023130758766785963756054690642164956260837797440182447125546552314834162117806973763552581577129255887812837663457221552355112869202300131967964349795841477059761260485788543745454904031486295200846766106642888452261048782519097159008400041215359847157224275173153002372590066864869100257774118515820439510229583566617607449081905640734558509191021734265739645622259111887309241607868604008143499112531036725045440280968461784371543751483082282451782491058643826493639438489346400067324764401807136922118021486583254765109044804906405370637017684436969999580240747328112968040487366887357585886195276675179776409565670135380081687762803969983936094548497981532512555107005002422405248858500955651882381518306895884708872052848870290462774805535651538600505172198168934738603061379662625312648326406754381735542364575418778780076997072488861560614936865548568420162425541083672795582230567930975708940901599722071999184303311044176770170267380810711257360592449468203772347161063312007386763069720218538287278869575999902118346270712314057491197050757782476093106127106878145679710616176275057675905477842589006921508732189665524976785478342137961599287270782416490759483171701475558292768963417575962467573128828227100067063651613746785919489524483197069265358731440673551480681836125055379799681965682772416036575572510065069525131345374831455842367778814269385315658130879876762449747736314363249083612194048408092197415433606230607257452285444688075149036506208789198615180210604597470472540094978550414234315824037073815838200445861628378437981289714911129885759483480520624672548738419541460745211775269787555333214870088423074220301257245981048653940728624153561943036004962268469297825646103987349622628826227868546529810947400892905640483395268615255538522307597715460537683930200895533217201456730742293412675548051322600540436686105579844560459409674508604515420070235570947662936473428144394881626799191086814961531693516481504525269329428248015742682570699696099615017961880541260435198218308199341309938164920231868103152070949696917502266955683502995222379972235894551305674555940211514612579748599651215159424551193613059176466000667797691671996832816205359744688540576721447262162819845046366568791191475369903765343117434849771729135394692998269358723544042425124471455365627486330226697966115438832951813853336326571551635512587105526408706442619643602792876817822604258902682274637299171334638390090328624634126680895966887872788728190352790791051350903983080209141924893804134869376290579995832174138986441506582583030993305396475354939629910874110631264419550931391222673607960419926663101562536707604592786934756481650377433204185228739485208370013174123581540767513579820151844185551747829616956222929124721989325751908280280421702428020040274342875640869038201860668024275891393826763643752247879205909752673702798138486208425978416827057480692310155734160339878205111455990500574128721874568237341956321673073066572064291063961124012085347534247813564562365812521485038226661185203631389450871889932173289721769712925686164231157139699746192811825844714388885015899735868137349520736054993771917853549135928333553970802471932839335419799472720496899212368136341878160950757696827506871086550757995514743043783298514523391505019399240096014011780180067096719399710408481586126550115397062867742298442499186148795514091628568524575095327851875418001812916865624891386438453392027179983255493825061049139826758506815527613339284808301247389824347105508801355405983345289421618839650455602995509503309111093892823007915149169903007141305802561099424436508037458289650618785346202296150251717338767119565673234814211498606600699353530687397079972497267304999341621446178951115944545870956680205177059966680528445502139753914710351277562533004743101209947252993184673083976182569697063997337493091202925293770085839276777177322412095541537610315214611903823423863746325926333488595143469930675336600826852688546928426263849315429650678946191779440671571491008333970556937238574765691532836085838396232581648551880697288864014693234444649985782388293034695392084970142816520887215272948385932217070249196548944736841900665533839179574224047420807094420041924151576939617472376133612806643798492301308027104230622493965889283630622228532156488835492529351112929281934357648823252942283404309188678861631773651445375466287411866501005869421249377156538274506300464741956735603157181129308240395426950017416772622821291581674280376073270725668476588711230229240489672197275703285465751044632965300215158524806997889491837197438309882729117131584612999809848911869245543641104204154381870549081084841279602002793871416716865805613596591018043576207153506551626093497257421533798458916616617799617073691928770939327356657198854795389558161638377658769586536708475419512499276781470016095361240296624136030765959374760241698181028978527446501128223704966427611036956941359990461077552401794160183552843221838650130364797368237606279768644199847753267809147310944052966753751845855261910796548765743879439051402653893393020625446659578501739667090109824389488559713839542053994153145357401352829107307642949781784693251365204612954058915582899903167995600913356749452500272871129867706458964994496047414067841841787592991335619292852069229769278124529708119488650484482608212762961764889664389494643721394261140516483101677611846098406850006168986080234671111264464862728377386331605063311642043915966907961986081755572935155435944899260194496723898247455054428184872934082313172289414872006309371264519057836317951217625158064310518432219511707021428645196507686982495469667635959293060488276649423338382420686343371324590211428328592775634197939165866285566227548947009900988821719534552168833230970007626573532985107436466462466919302686862356780204743719174278067741002603147105140345450166503069151791602077952096659270904372166597340680666347307487776635829971615514173726866981196338726987733784072144909340258159217877986446441943955766165458547634642784983976668493409996435009563651010222544184984741391658419111452456673200847206019799986572012038650347905065972279967161520800164798142562493847474711735311159656513381763296712646322871879753422709599335652332406878531617088300572655999113841190143098863858041098793512232325203573248307171300292987428477700089610587503487701078070971847089131672551517684955646515967672252118354767217765452598259162147665428913167108134109144919105222353993368555442471922185737948933753474349313977365184291723153506767421249396317858122240502519633318118969709404328198005321482679229367818951721236652569451913715622429233204165508254373466101846640600293565999661844764703358727942400803883331025059779296490124432584602880097736003414943568797702551722636194242274644406774106997063290537885221696136448328109881942925494036730957941999228689712180238856650200985413860408316101143484769315994989776560838460177239283034421401456362870214725154400143471765651230401985982249546769551417073596982376258235332415617074442385099827534107814515084354672632241655736360260501427915500860910322279885188358233140669596745982946331201053543876518061717467944402915995462468468310074980767610053116256161464780867738884442924675531473784224443495375262177307704075965088835175565120075273834537953078490159963197586486522667062346437962891866902378342598354747894793567547959367360639870795932011479492993499447508177097044405059970361397662413729868759757320350299249149092057333868631813152991821307751209647874495844728133465820023500691744107499246588682547673988959766751900895889326261799787842124656527872008936609461023225737912035766843844943627804219876702748166506783089721394941112027748463368268799187804175738219427653862874968670629270231732770402778688944613948881686287753699010696410010506014040160869971495606458558733733227752646586254547868039689432616231493414928056466187379206441131305765808160818846084696769106590136166660964417937063487044155481586339547885290187561329132141530965248701088120536383527699782907470334539764313536368078630209963851439054178543532511991313584192701211563249623636040977174181620990177940331907548895036302341441862890499068440818715124164601100389096654694070122124553191309501587819445260023143882132387029337365540634659319493078923404642173558605644124389787368708766331814914413964191710021176775342103045424610363515618627492654869394886444973157410085301624302506397533534378429651644109930449567936910724149958668669418715569179746797838317341195868742267587581948484238700468865406315092730128275391455614834087506299861751363759317277636196269948675579362179167554666831678735216573858883441514430448367860326062620616621798284745916759612932138311374558160531053338827504018727882724071392810007423115892486123731619322152713277204241189272929325372422922502159198285962271951298441508282424891291754656400248470608968968092203330233136695290089025240109190229466700717507298466339014734458518251165696640464211555955516791670390056376956075785615716296231461671688425960479861203819749855060972470363182938387042104813969797634060071788800663395492195674418552026282404141994022029100397451362383183603846572493144580631369559679908891622397551582271693144295390361441562522685219325362702537781709688560901986908765747936500503151482411791184283943077923630771800027378746183171537802514987575421646178976155150677988539441864332480873189378157407667936576011589695646913916717868272102120091839045812029121094125488082277811105109652037008846120791277801157740511016207717036846320579616011418643831171502177565559138321676032186415564004114943290565143763195577427880623564540410846063836747710641754500758351514511703198393402476714226223429666201433148387241942083213140471308819610202012732069542245589516785263707459279672227181140655905057809918531431574384303480821959049048483087738528161158749431717662971461662639774131129220469657427317386236692702453830378100191144422584005303166175354865787125794839559400322700499892565801327473132639772658757610449639614326615112042953591959220041163760870870767339512068872929174291730018905173781770989161915234490452141437103738967550383885014002896571043354545392093282601808793060933516638162129216150177812589975663886982633016960186143766882383388075298814163124974123711191027799042710071366282347928713107628236482437719758723599369654866115283605311317524928320791418555465508181973178892442173075125590709113068649061576991939811088946683788945915993163689154919037070018700793852599892775720819106452862577910013480461998482780387679826151908680664317017158884111104314585012268910443318294622687970684702086279541411302065359941447356111547888761677343751009666741552248730325065316200939913467926939638564861082604342014114565376207484195775897145941016829945972710736707564726871207037678064760177443115507800832562856773359386050436950365739710145475436933172683615995854504518952131753722193732662050714082509023852001924801222172096522996369938455861547050897540758450165916810820983713332562645010210329373613152312886942288023604662291333941389936120124447968937691832146517888222954670821232605281607925405426588450669878584475320799435182824378672575806285267403218567256110942611224735110068187920274497450121898942827229746397518125835135726816462676732497131897482644934385129354991211163249567369277612362000028751201142766658820749639064452405664609346994424133127688390705714445703878906778821365149718976288771117023350691732822131579262072193484547985749195385203248169544271895747990072928988966667833262738176235157252522555323338261559734449903018833892579094325533905084049214185712047908803466048848289784273431256554246249843490162190959019766625242656683973594601515266140296752858737198407450765209704230463190094346680864964929836657856103783083752925092466311646264792161883152455690103163020108294349632487054791499037423664645438165285139186381491544069145664832125916261361815983052477713620570177847351482747782769454852406839189450373595845655367521875586556571697405174701994384516456281288972298236359578381482695084441114741070135804687381767758866846041998647692513688881671731209065833546918372915147891046327353030970930459045213523533925926743052477292909757288284523742402389490129694651274267411999787694603316476962975084597226754380917653726987503860335736090600387221143635691602548942442612612375161921707471824351559002010053276534205309598900996950627874272110519078819889489293722413179540781545411717685983633284533137870303497829972017073524034987008489401485306348206527294583884769752728090065965966909713741024552369330160959525683035341528963091918901786554148271543554584530793875792008312829730942296273655880481951646739480791532452532517582421162206448059191164390926940986157757306016266153162090580016210090750918611041891582842730001057176786345510213646396165701377349969089629219315260266106124802008082742617925844215416188684278587714758208016470461071510560776986224388620040302288377156435766742281364566265501921956613348889542887580659864391314054066608492352519846911920734143615564985034903646775078545886931046791098674407828868127757916769563143855344527348947803276177867947693429147435175603847040663047554590238253644988441982954800612493174916139776831241051309639516515712392945722150567003602483498896603580570821750654912006481417505618337770367232553949634379873649401019129287905541588725821090481877454743658623502558165888384425789792388916477944214364278802427599217888302187025379443382438705715536924199786132128991211320365018471427604146912719225072992400169644215138886139942583815877183263693406453818906815745040349222229282439242055625641515849341168898407079453690663303477885284569163902461535034379363000425538951573190208300284843683093686981123202939452015253872855405291220900560206576266619915679373312588380509817620044697249089149894595863102409461078295378903103591733022623799850037818505682592833024961678967223184773225815619413690661703040722298809150931031279253106183899711727783195960730928082918361985345852563912007849368300904871912079801206793143952064629063648745583842854106443455824958498717833331424793250077916320024175078640125479867119000128798272287810791665741338710755209711529304311962246182682413946916541249109949616987182746580054339715831269840798150762268454445311041753747212561084862742882886063555334483429192315424240480648273586997256127762101406888611450043163768404715597542786220445074840897695196382403116263391098879093905433758042367016242013783254012059271850800662956049080285034776773193366828491622951574343199788097350827992768464266444420421849799822044829697636122070003152940242656061296405620849156114892962740688472745416987014715741819192496554239010825577805891683092527198805624890003758182255749976435866927800423837349597805419848331859409557161700987179955778176052090690799841751115962481846516118120802011128235776459466996119667897970286957085607791160213409091590376683129086834041945762683534722393714877509237244383566996605177062882932740777988147577330832343871797980880106380605723979138667018717866173487166896726566636825904554292918781782786563162004402461320785248623876792171553175911049071631184933597336037387829076660864892746243404385852097653528654572877857696685851010360332489146110817355037779967956933800376950097914293135621010156489019992987809186272626060109586578707431014012465762426639392521223373516045342084549518120111030169442296939697087693926482735311787163215629095415912762617571627917462100796304682215751166771576081857797936577282790416188819311709506211436980024298950811664165461177514329697155014425511309086097566620393177706625429529130260361376242736252871363703987393179204000317872857438266422537687090701923710596185554213174433742787121111713199986499700451542953189067922635831240390058120278196883157643217527918565803666771015197683675419438939455864493888582160490159925348826025248981598824557736476255114020697091760678973814277511934239322277792398446208236220483166993539852070197389921644721091917314633110001560030750875911162442264821597862544705267597459002248905657526176094361572087491018264308646050200655086468092766706338517953875899454423762341790059512050537913692629752825299052270990111931651014937125401430383807443004620012605500430232311108100550063886048552037924519143743067671022295418106124185715878714693135315002528689744613557281731156800367939359277849251400578037084570877393353218039367430283640924514095610557971361575855506792377447933066450260543351248217066833478737492308020207776542177430109651962108218220864447635849809206465714663544520930399871726897770300977408489764787893457633156030886772326720709379691388719052686013270604861910523195596269150788179356114705648418811127822621722272727846155480952974192331011996278888151592810359950366626035231817511487399805162482387252440862745752102412908480889868795455917913843314967033253575809442448619158129276621206238617269070878212053672996460783128752036295578994638840382857672178213228955540589827789439262348292774910887294144502712252382453945213139023035671117801411456364169499587596338803200192270223606785464880248734132322010516668635251389093536499318872527658430879493660108312630224623500825402416292204754981557272071740321575336322235031389529828865841034898379066915268999277184657316493649357459588902991315010268571243814146701215390965809683380996507875543209694754618514329473881562105136729531701576825308186328870427442928406232638523285562245826776524381676992120652863338472221331983530402070817480885378267364321491085278516272892462993248618969169891204528123756740632217397944101833036475839712858325307473900207666488550845488725931567849042571363171454439554801873053711437263641988519623174346829478122085318612399585818691693149959046144189822510100497329090289107256750933217329186734002835581784979571175322162598308079694997766291577578038598826389417885509318078105678061927994790877559112013882439807339150297743612941790491002003935785415514113123055466301836463265322775936556890835423936080577566549800041678406686537511473751057822715357074345433625942044615486716956256592268171615205966882210504044120165793246130192075353814216338116978215178216256775951119152816155822614903659425582717434393171292098948827619694305859691820570839811910937514348378537431945058304500353765162956083797702359536426448628794687336287490932733075549099502416941689498905195497169615190799928587426678753737171614713708803959653894098372347962259112006989125395431677048375167027993545909212007851079398567820580301198297019996818009060301753636597216600782549206685809780470894703401717931962110039776527299149112573736476293970909302117348035949085723757766185305928572813485294592731709583088513153791227562537956301126375756806661073055011297430130442251179469449586471030281888058645297428573036059771535715701684523433842005572571422325137067331122948690519648509948129719590603358711439373635298426190748539219845445802122588968259556898695617753022515209298654526790354804730355385383193783514411296441993118863546720376735576116463891137329081545336913197590553094517964099944609231980568187611523452494091638715761342837928409757860125462870686021945341843532113888791174141688304347507836767937015452852891354791985842087831613720401466102309775930446112537002999391330803713580894210747870293357351991381462707987572444172337033428020153190824118908062897488832675517309621734068450906824041442579067469114363384577681226015862771326918460856281420470353402869092226360930025349366126224853249110068408198098521870222293792314753818917441837504212952978135608607085201550167748522667445477412689580377119175929431496938284532505521527045352370704914945533796259358007223416646233911062056126534768235345783310911086576173480102576635903741957806518021747751502724533776662368782028565179150121969912483952598439179676089897547115609431602857112751115152411164811441544152977361682112212111709553737526061583255274153859762018347865203253529809218208306788306734721017507579438478732550028478322040170584341764848469926914755866033131936312217915256644857065969267386838628704627534478242751394718611265904334362187396319775488387078771987414406479659695514484954919791324056722100239077197822927989865926259381023496567313031816160756751245976257249283863654447361985543720607719269538758112162935177880496740710449836649335792161716202376896923749469870044585951879958420460945493961898415783568732609882864093176879518987086092564788043931746440544582706209618178196951289673283404785006238810356254741927367424159768136679842063415742021746081527514480057983000677584807724464629708701918833384347661726056059678294351137561380559187402887375191544885329710466068892381847095198451270521180243283740466259434712738609607625872258264600562259033379082841393813822065765335112391518229715948281239598385415242810889138913826088582759129040609771380402434696686016862031241688898458670749542744051639033016722266534643990437401858901676077453441287770583726155977056158192051241701053001834529648393247308627098802048135383420039093224041449387243046158438910742391442370580437739534459851102625213064884502992739159740250168270846840507511222299227952400137147210008612448780513515289138284476317632374442896710062592603666828493019838729117985415243311939001999311829118944377695252469099915246545708190704845724913255854079878065199498850656304378473392223804333751908778875832994008107208226634686525600636586263042438284511170459601355562321202719810722622838076455737789809058599361601115032831913220387022539867435330158148436659943424689080986694840944593833386992254974902984899658505522065870117052814607286137101670738106812597607105510206441300751262163950137457551661656506739224190885024156380211293497126038511359794322440449409601747068713294811917576393899721329094206223406446618582256734043355591660107557070105451144993341584971453092944842558447571755385094829170154278490621685553166839102266356278148301418501765405731461405870538432176782726679865217112212874776756337893838677356541423134873141418620611884370182073977909751149856944824988783775816550232109162828230372160293967782334384109126877492330451918651846960305012200853293540168050668871720102219897301154252113906957969532642355231472976052373564147531820426647596003803046884107579107266881421463692601273433572460707948137087420474105814241784472616920991949167133548733957712950052965462883504671280781401371824282548182608925987903334105238242608386489207227087145124913251110837105010757784132075665611695757855951071747857539103178738628627937376688941858017327790251417771039357600276579413375290374620488007919073220337407890909740262225953323312148290082399943315998899838148270991827749565358237252888312672903756960392416176780642128336610446951695881845805783736634937220602386360134456852251509385293935660059688587311467266423475871703711663982457741776446180707547216785320584539450664993625321562097082577673755881601881223175130433229148691627844669005927337239311971086117178798796436839797564576928959538509326846306555874036966714552761536054116920448871261274263582622311873810243459256638974433012115077283462430969153544288606158192935429444038658717480370146504208104986174245497267521827997532918503763986805091811910365220767735740896437380679664228252450580674052543979746656699200700613712160442329235384179560232193293085869330503811255726662942956951617863270626169421625915866296007657729078196439827205310319482068434589869311481805223203569774238645946206969617866443529673750463753557242756972092738953177734054936467539613400268826558305326230287183285234780831470594632481487089619366687453844751227060816238844498609334006349322904054452543939400928771553332916311783480013206709134998984561751715958443924513764732082232171309897526926487505224485308580412530831360987028457493096426745692113895499424639940218890110639779161340553690707856090997145676705877712546379166290803232541296475130531004679859836057205658246931724995799351601387843657503855292746817167585702150973284493912081093692858048104737381642741343722387241748821442950570744696085075224286086277359436329726202485996811251645100164513380008323893470992829335563992130575125151627780238781456688497372621516666584842027519348755971708779691334412408655193670825468460468547654556605935743841742824580520820786665179060406650207265247134202172473655583649970515077893633171434368078385945044308415179728616673249655413101896371611289917532874251330995557117632019229071228461450420973771231422082088261291184813080315438952252289245343989398580470158506126953452250376365936269474135879516715063403295974298306509112466868039330791498710269713690038046251860685181975440640557991530252967669634270285011340759460920543939877385140619728238777829477384860960834080624173231553981518281692207555599480715323818975445579067835312940978785710484660518740894636512456436235688364952268066031527341618515975455084799344197942132709024984110812613712636894425763132788123998775093034027301379068557281914131297137184130673722639838966585324249588637377359193404324479523291393396926472793146640071855644309103257777976542257583326665086724688743214498179751417700008861450657509642875368899960205317690050532761618607103649795186614466426308309325515800227817602752646109782129229467129229297369432447065923955281849410985857863220439314245862316510857729851787819345604436440540713416590481835715374119274386602616133076090991760625620083365468752467220455515981935870079060776260711941974707354803629210908237901407687694209262169861708858300593312413579820829690073412243124392576059917296927670433149450878124341039830452520339804774761351026436044749814048851536416232939458695153399329843568896790259922632457805109383043669967167843465179877689852886311847438530793827201541275697698659168490109697786761063925451267699928141315085572995233696072386621319188794923302354450310179349092859361869278314953369846531332010545242155146545341522384533918808527179600623156860470418605464187523760595569985665277682980947933559470858033121115385955350508483443492716311308990030187993478106623619764761264377274305624093219125846515315315554703131297232133773704215496350859860930879001439376869080404647889434583639819805608337030875507890282408507595982837671536248185898323550311765140166581184784589103398720528180558047861023666936000981851741904522423231792382376149783480916837985485849441167008692685004999898770306871063082644917936557470709207885592268231417354437551637394918492889713117247677817281348851312193651447599368931631693418039215251436140008987453299360229467127856739334849969641444420613906776814623794242121783565918141182987595693218316941308506723543300934655480503170380075004475011696947210689355117780755583202204531362144370805174403039597533057146445521706658896490020373302661706530576715866045609192039016820037030785094153994075448930147248074985943655605774146365646494987293817144578097272196326644247683774313512729676062426130439984555803889630132276921932997244300131587433962694605782457228849786445994310828381784921842208357135657496997072238913042218715026563802649925077984145780274306726308481485992393755601231189404709846314730817159767453650725803150152170661507529406579803864424421365133229502791103167620097285031344636646168079072711108846614241320243538599767157529183221262953208873380101699681259884064195504450948992694414365120542727681910051623850211446980894225090801746978963577738482071918427595784954274949148376276449828912293652639601637180018303392365330962408769649833032193944211168383564480967346072020511121195150728695508635783260263574429792652210604907708612801437554259533323860936770298375588621753192173160199816414230767893797883171530031791677702616191110537542873160869170534789831069083550169964071068589647435616448367104469548760847623440608752324632256558803345962340162476105609499758587711443249690061951674367597545747620695397612265867255602275820666466224280522503894433067658840237676130205166399093625505874780402641390238165382788784772153016594233700633449252063881162065084407693906716234053314260095650451451203057781347271134223769159834740323761969351931066008390656881045646005647702449190980378279902912387825942812534713297263879515399205582142295265426555271500573974553345436736210889277812614402366195457870474981919433630321455802567034682711164624616605847659296981664454185647649292469449252810017423583738816788125249221441768631885522347540871413683111268865861563136649243635823946102930684663866431709616815905707838714436756157144842067453122126794382881470493409332163930293172940721361216133003670734804133120186778732754455538088051579552761313379364167559630203591416367869940995867146980719212175278331378087053792467065346742253341402874966780247818560353989060916707970159573099625792092728749217478551862720307111760608453705262184956495166484032118728306632620891347523037553112508543824101511219000687227585948162284532861325852550157930110422766052670253424233113104171245293496072392650190788424091199418554225787264180547034228191185942435777001956186930480277045591120783139258024869211352241396485074666612575182614624178052462389499785616295163899254187597352464808527208464841746102686395109030769249584957943490292581126725338175999507340681757676112035425082713740159337728054426182237699498204844455570215214692264134093674068886796944965166174780795442491280401878395818413531832794609838685976938201878799233508934668546849090550525146188221410566335166469520993080249962906142109923887252977061221557049205864644726751859521979945334846526864317281887815225937877685053897423327666916480835859317377026982289490429550135970665363386992648152874108239987896042953101409598696782209696048885830324164182048435114268284098501008761140354661343919412634143849743471160822860085683381347252278121622345724026765462962793125986534740555033680224371692536441872311929812101614144550054950043218982221288029100222598332151208050524784755160871411055713030850331185718066999906751970327169235930524794502120841854250380486143442649505194040106346784333296701788347258919537957832305033728302916647462351252699576186448782138943673633275246852172585095560314913482302352538343570800657279853218165430684356416523818445601438574649652833144782200957131002588647949419324826672073460599468236222482818833113532413534418649756759337035322440968499653690840646273371558974681120387615124373881409545433990979770203786745690476487678913744447220172527370794977096670528800510474532478790027961651702073940247760770038707528879682736730852668293404621216053758100167022171259886242909913916197015496965055904113691540238388143808047049320489497286842564517298164643359471997654539626331757456639881910920153017786104585993655503803584880659154656825433923389951181477856704669924797849102901951087242391381056500903184260725626871198714803892699475193424918418757801721367867889904357182150734781461087596615325812459984603154889867916307794661267064809159654554573606056040578291948937799779875134895213820090423896310594121636472461869524625802345071089802403606476725645680822165224800585035130103683485632592684136008210947419200088964676608877345443749049836409551401695792026954538406705351703041510643199724971632939057265479705333356099082212061202380421433405811515203887874329812864526510046464399943195887654428306680371323630908566039787323351893291260969387767677679633654494701096116633195409646364473439571866684961892311398162889217219933996270559150252116136408145140898891747367861540788001590132958338797730040012275437677663807290235975537466410823822795180364001959658812536476238557016208420857243227639180614804291703602053546990893306129179173044997802094886935134145248572141700791122300054167432606305507581949551424722062013936714454640356193724978183303991075924105841487425578056743605025536754522031765001882427722342797723215962348084469689309445635134677003179698060920594352190776479543099274530600368875530072669279467227428406928026654200574447565339367574802850978570472499006813353717203681528026783224766203190223839666774110452264853908594995028302152260728593770529154392423093648858848308806484846765875274657054912676196295806838792457872480585748397686345958913884656525800580779125809741885160416554172056829272244425526373823946151964601662855751357287175678823621935269890025840958173217056355141495828503165081271218820644865741744945613409755274792494172897950586649656784637967605445003031695241506029371535331589194045577021526569273859084581544654590421778931707363030231264532953713912420039242465252293788973378403426394263206173766072637499461282887604466945738190457726616133345302714190800565976126812575845244411083900441761889602846782117104622634630034723682530525774631986301492591576766742647560402105384481658073045105496194903485174674239225413513377934195245402802011222077996728723512255416949651247560278915653683206053814645793357554478490037186833540268552608531107547678571798859591234974638781086345921032095134921752411987814907588556314581096167143200639028513479859132488317495312297685084276231843535738041836109738405478197487393511297908146618558847973717110880930224607460385230730570390660318100837235320404836591087064052522830403004724308178539872582795527818224856977339722131559125237640174311911530455546154461662843591248979105372220094373130687185353755046135603846847490537083965311865214342925998089851445572212058924535805706049492915130165068936732270053545703611168556829767512637268078571605743831644564704348193010347861774354880202457617210136685944678093240919980626341805920519804848678794852279046156742539394637808622733097908901419679478739090918475144627499945017424435323470235554925489847837405630923120476255338075917920537298762521237658780231051566606762623642061107988132673251719789098995586888992812393088079036809691527080517654465333127071824478724097126157715415290205050180037371610496805194545904423514197234914687768845157428322952488344285389082833311346905029554046789318591186576648693933795341194099319617304873570077632236452394042450384484557817978652400367403252795468354132890813748297411016256738485660050995027643125501768731044359301290615605541159799655809587004052539198032408523230094794780740855316404031388121335802196933219901175243480005343831607119808747371028534141170377096903114392957486378378924152679848565408625102519709952336326420905961827833562345197814769609750743863952582094872302265660785814254762195446044634711899722113784976927936360695192869693162130381409127213883987299369243764571205536299107645058500815225437134128220544188595027791796353910065229772861334336817416960778071817851979597850769727604236065799804554420161967309460325482565455336318866399847527505342342046043453805727885654155302691583062540798937800945289450550988723615104550420680776231942005750366906506975084896799426008719894645915134082062802014669790574903478302429167274508280847551981257514163513301440564153239063215036411974598424336910050551606593464756593553724326195241567059952402555620986225084970097412464696673939952514466215331397965142583809616876269696590957093077097307541817661214955173836099206398533698732246803340441598338286838485899507453975150362114462765629710459531303487700035173150394751060047996605879186966427311679729212480961657657217434127468505986455662964822279885342752980070534764553480930242237926508922822091271523344064762138338940890296759917959827758175704930354936756826359851743455542522923359165925352886443268315066865212664081880805943436890142785458227320645758852614569711810438506789002260743678353013044112096583700733506960211212280507942632067564031763714119994947784015397929197057286678244589959838649950187002481795571064087741258055797222021977205475098141787058769529241354418154197809893967052894038854940669610190343759828337626675863930254155540594386819393110673080494270890578035310971049088631224464015591830734235464514029906295695045082294731854751058688140727146927049767635743225669722957762066070577981395441191572569723378715201420112675166434010863378784473217215553676709971923354462868263864886362166404381679432124307602353066134447823206283466684896546354230583147483647992198466390461268681336726351026645068738464821634166101150227795151087808603978958734659951912168543888310575346432814740892640792662429057115505401982638390500900955237195857920551569828388594038478175566141497324882590526829027840174967955095518579264363227696895849473050259525989680623375132794937079363106329445478651065103478931291833109972946650023732892365526029226252302663976919450484594127354337370138756849212652603381557388608632757050983805388774013823846439948013491422590426032642721277497979048966523687958259229386558502350742154758568209944934776090973856667422859976298046484906446356903956167700965625586410418280731921373473277718644229023993473280167575087593365762028728209346148609533027018131680265802841212216614244370423990122086669949238336421251728524947889912218268937120194495914846130550863566265338140403464390488411601965610344529672915879442931183211892407346887522446687802869077808479324884914702483003638030285320836541651023454883700673651952539350496702238287467478131095389192452623734196194246368348969002509759483172223914221059478137771276872706988234565531626940737357372626023216277638384454432509909671403474489575151664650372283412554971158774724117781039679670957411702417580853248488211143838247831584545677162546416472365204984816606814402178850662806252990645520432882216521418989021623670500642115287497491644738686358570559156885597207738729718219682218745364545325185908011403178549014815541174650957570637057959818079023361839403700369835291527566283578145875622296267439761479139429134081555163407059332292665404922247317092114427507923001046976802320493761465881034335165742068824426249399496488148441923760717197783266526987273782741923236692895781739419241789115207179434003306648229868677413748301208826297831657520301583185314267320223014928882403721419803177726684707585221761723170250134137973604160968638995846215694628449839075527792843813870550948806498349296572249771056518664544250046338513216531746816047872343336025379805328519979586483305235172494334156878860770630157991925896699746855587043963148202231010769344859892300196017265463381327603934534156789827885078890539738127804235273642304022472730617792188337818102081739258716349550372592486547681601950542718639762792663854646164551484804039823575156810501277853757243202930910684422070191759177688471884605262669204722720840558397302618655494522572939069237246435246835282795651491930202123407373561848876732901325961363448347958272562000002495760059419702354000138365298269724905610625778183624405392880938377989539024156059477192349090290471998109693100713157946837841715088254352024589128157688937177178080657992877154577271414311464205680575487541677147727518295482424415753127340880500287921515551664532080745594046466947691168854390879098647913056631780076578275821168014184506632641843119360062266884344345536713599925644665172484827757158710277086461810739306915439388522604130979294153416186945164238837050182391272132899610380798623472944035826115383444630247293900313726744975644836297581561072982436596423871003671914892840435044459134958363315801721091255689833086283590750489691989320036290667886994060569383953646040808184960488404416556040160293900619024061453114997002521383527426168278274471986193344523372038939687878036252594774835692969629280734624879864441922111702442409015060850675801461318020990588006176865457376297942770684521949560698385619515670282078853064997770424319681776744203671529426919362551106355784268591673147728434845046919219679999980527903082330372686957482120666270321302415986819112540609963962386247302266387229493070233869067001701570290802338056597578220498365869596305029678938806927243193816202164956055976084519885250158418795547049527461776022400459890620253095342721228772448285270719382231710957374970979376467257182695559979032366969695330136740994043119245306094109700810370096914361940365895900519643047747527675041203501533501611863356000956251259792573345422525660518656687083326806633833399506888331802285124291356488043907462707597200092703425906176823538123248443528355803808600692637392327961812911598132246514252971998855418612588995831712696958919320454474058702285688987258207753693214051749866914004273941597836344638859115617871706643105152081985331982041583438963032842053501180483585144232292752337166432953684327723878557645959503466598941500152140674237318298497647738841708211256479662444803073517286619049487877623150989478349193760711388118028328485880480787173635263050487538446872526283989123348240932030385332795089088939378427547859711307820146858543051592201433405307611803347618054786356516520095843506659603619829598390634872575609162577617692543649475945522566696130643386498660781458042013370893364866940234109519110896290202951640037946778551776945112304397217454126921558900916017113990234562228236853796774519935170345481362296028251297430925692833255028516116232343278464408533232210751805467009566905744818296759464810358198657878953923204184988923047363512383655692935820033459540507099112635547969236825667595908800601317715454360236550732651336351185157961713713904538509696876903515078656312325258648108188507935518694066637422198432498231728802268154948911498822862522907564183792710542315478366849020448694874399060596112783041763048766873404003320062541441472429152738739628514685403449750880984275841334416872788859036294891434070760632090980320873128302449160631623661273034193577624580127337084600734618128094277952372591111618198599784688365984448843615101341630351198925477959640628029864265532957556785939376149764399033143748196663390126576555000140038600890000570778944908578243043131390648861385068857244309473196595559504497504763480385952065895059463718815598708059413411033858875952828563629276870603077947700293843483016288050291892017830966818730648678555087608672404036582524683748898146866529384571990691621779237314419169641626277582149151366284314597368098440609253612478870454404369891066144395975931146439467256522066859126628686365098331629772824749986219091481311118959304801953363181832432136741790251497627875431092657554645202305931394283372447895798147759315167321464844918793353647057014716081693512902049912639584859107657330649610552704917260832508851266724629952986524077726758772175824756764214617327087255791569094255535563687190785945859942376255880661254584857009459960576945896378620352833715275013503360809532567414523550905793818514926179301506138507919280149417614962677244943558091858625682766735488001306817966531916814494043604437314816008371996478228705316337209532667329883908312839302898383984632208101945120732195918984339030284746397989534098103240625117780224801543810169667394358642006074962865236841407547269030014090561336725887636583933854711007239274940373332152059528441255687894497079237457220627220994165597471616795146456993737469500309019503378162939838210168881850711279732964853183671769686142896923069560845722566657115254327866411112990753706843567325355622373317220408108109007088002499184903968250482750850949582739985284393790418380161789963216990632199155950265360464188687607729149450674105759982257506438459586253939642761981465611258915996371348467602195883940176229738933091560755467905285595640641858894143169554146171968636376524964767832910554335517992240975976587486335346772779676217912090022255841270703768199600497336313742097669375139354273840608988145205636050290706261106001913979316814286651248121990883524262431315225914529930834665631172304806460629192769076229266374637818009993806281647676953728723870660842589196783556881805669234877818425905014871888915547766611502525073107633059423069665272441276360868645288611877803179982982657791293024804102405170318528568615217793442280718107387227410879087375181894717523480707489018418811260458130614082195470504725954124191004907465354346429039971341974959085786187093406233254099057592714304499310169690729330783274751863267606740919034048419228138906786489800853292301400923614899922542395095126102142375690722965769819235691470541592429695839888685147302626428307380856818935253923145472443157834915250115541652197718711383845548311227508997908893128646592686334469011902043780054749071341210261994600986443999349650789728186461545632606402520850042542415235307866859991548479776636407154992335789895444691171766494385435801200181512507964718336123672623484646297330324316479428934718985251144256311020384039902773824111453266909820369128795972782405256417484545355004034913781463443283893037501676387910411661455538135470072593192275345000894578958625532271763838247271473513347970616238761416676276316091610613318084606933917243206121068830465177803612200576776143474793230112253943923154125026081969578253003195977209709939422568425409492654451358311054390497904978335279719778412420945103964060902617935345981805907059740407440315565134383999901744528059885464173290903214573464883381981397385553911040700445269009083336056262858225253247263921346983130577346368384293909644861674154704823854793893768447100403005028657859630545596381217244138374115550136003557527470510396900401860459555189020084336222731871946763660678604963326684884797530863118927392184361313822777797478764444358059133757825384852478526970960101545881380791187400896873101202887907758316147872251666641422975640020370854665190229490529062540086681885749827902053569959775071428009619331818477843713943538332120438974152696711836928554595530692346642391388382686831253370716547960876511164556322959599449927204095384672480213687023874672902656905681479845782820673466674046453621457918054017155230282049256490030514161976408657136715786687269974503820983063478208119482244851414760382234620091573259121439529869234730231906803486480440381290846472254386907400933613949605303466601224924294476452510942868101204260441269345558589446421531762575026822531787562432029372169711542144173319476621780742691820983182745464477121716767159277044148995596902073746025031543833467371461328604170460491606433046098926666691989389157929417366052460771006206289462483028087734481581561741318739299345647709486624122720448800029829801250320563698277318408950541872713451598179364220120474149410313742532457285925271650397591478431913075817714104268839403029993880876360975256551170222402901854516675660335399682897610363730043370432405860572158968505701816059320630274050781070635987807282499923188036758210972654056200135370432028094776427813518238942355404725326300451624813610455004581148313934955652200559896813963991593431014154429494456812638892253000991890698758429237966700182357034044634641323027000451199889028071638079191933688963047768350389726214527934339665359076744599183959201811132848830577632358690020618742250213992013575546369839266537490335617831909178345443446489324579708059719799739428882666587395298328786397886406503436043374282031986693610487177476134101279675230199187719596769518289267887768765632174052434716836108060065079506913775500988908992540804705753628662087379484661211121371226183893542624791530011213848181456513788468365963911672187256314473522617506887199586668833097616477310024285111761871773331234630455896038765018607865866609044845944345792116874613744362989122423742145263530209578686548187598865081811744136181904496137503424701681789228367378354785281787609226911230127916135045091624800575860157966865229143493539669917742525724465343511706433733808734702160116212030764054747644832129832697950334641849908799079715758316319545356303002716124120137976398262301936829373867606809270692755372792051528433557436241783360689382194548767771524296958506212001202561529372033548322340297694544449532898209300443306737801745038848012456378720660112095136667658034428914277581054583800578581825583646731016463909198592702099458199006887270140832256556870300706789414751808388001006125855247672648894439621989522840301709504332998179002275615303652011996008102046486994111733750265754372050386144510291789339806212884288189724589724521964093214672440747535269071143917628549830989010418594507319199076830186265270782299635292260765111358300840854721471112858489766857948475647825008396628072388791812075753784529588692316529921273273167607876164077253773316994915855903905639334972352697053747309024034606224900738147528962686099408910947303480476119744868811122693519764038014826369940358733843255980105162323797538277646277881884488583069596211451784084688292843859187731597216662434477791292654104544656287190914393624547025257513285059503495507035894338154517932416928401515457943724352270360581844120464947981954485977379537648693963611371398387733271643228011442961900144576927659044638492749786038982143075202323287612759621704979594094590005385112933238349329415965356248425331134100112885423513725163060823710676013414679755461903502230331255573331367035623069186159579108452883819994403495701888730210234790552057166518654848269399362001720757037357204685246654833957809147578729211328790193456229207482082418670717835012782086835688059233948451181976750826399014625564153806406940886849600130647321422784117506003573451149399614866611487197139887171303497559986119560704310890250786082786849535854662982748027843672888571894308212982437758556045960971981563551273290166854189255332941329156827571507115054030064263718479040188332757627255272415356036282830387168094054012746322698345431523123187588094844487759549219508846915565748976363128420015600524457267366371566760768982005228279370791271753734104323618770018457118668661971451753373551171526964912963933764335783347059153294941371272390569478824414043649457322775190024062621828533663221780345645310459592806773689916713477878835587672236766920712944707134285601072133421411907279328962017642223670046468590596766397413832164488549986243832954354384536874085951435706545992454541387873024346794711348302275107201626933371517265291029622115668327915260779652399786847849896590698118419018576827712780213582884003180948730496166179963729593304090789307805898139577370293644035442346537782198004514363525300823550241281484668408472920595076368825630339347589121551613363875873682653746086049895416655038964193546838754543624385434665376267745538847687816483659967209136129432878539040952812793450080534787680257480615168427678495531370178380242656304407401905158769619628355015605494512682714157666430922137869133912334350159451585643219671361076595737490139421133868386305293844970521627854565361266948280960451676257846138108742668334827824967823557864149657351812241091367944747422731639120333844669884395985339547379930095112731126435190441826650683257945343633320981117425413650093283323144684400614057982032636804008431897481994885976409875795971921049743477641294207557684396797290342111564167545218973091598619314137972590147964456703477700947082255544913347436311438136671575208057388861489272154230398060912066345521485629440308503336993975879197624711874998295201085574158546617876781251254659100190474954119209710579346344736880537937922744876131598496339896017980391765573057832779355952796132517219663821685776526436362376081699852748351222446206325203669555608568873203861036491121931376071964735534658302773867368350202199378341334773708068648707267363056169858621468716471786831884486188217816788021847397191117854760691299657386197146765127762274574055991956443165912283535629225692352241515056236024563625177122083283451546196201956887062347898959689545613227083997639445992851742478478294234556608148784628107874964282037958391436564706547351606692486276550223467862419632955057856536224692625759659083862051467198702306928979121012958943562265180781298411839910369607300476984461755028569239176237923086700627046473813127822695067626137830004319116926568678846961902978780468100860015387360187938014952288520651298620311947550555939535954176252469425436456134998517514016382842399317736581629700428069771626077393728870955203296075149161110664833758998035868766389998610224000192017643480869517474961706329397573071244330868666826327010302249799688751463412187904772088573571132321743460469652523303092008265979130739406190403800975986915734871333327005878235072967195829350101471299131431729673700645018741313903449389712333156914173132478868183477012231904923211287626206268183977983614872498653531055262842348621825275735017807776010623456573897546775765706704631679085095102940355093174792927694999974600590023260554542796790406489613812067373715668521362851541715291028854221320800648538660389697059449018803798433915018760984188435753225100707087119384918531959046925016365035966775016695488388104754484387617634149743965290884528331532825055542021225462001001488560761249346335666580386430180366762121954434441127170172523500864648414263224426541334025385578810433763313331133659925931156087956362070962956698972079072158205361592033342083039649472317756673479105508830114354623731651060662471425621870705498907136031845880620715438963986133785562631276553817769417046629626079846562772038363571043864779465306020545942338311410971982494748796627523880680932375105501537157604458996622727963220440349119373966955460887163256395527585922260241185246610151574607366011710782202818528649962726488943307776665467353750000806053189513220520091648655565253760699428907671154105966879013202000025945173749832128663454242794106305434073265470340850249612090308225812079707402340356158726667875209841655219932250316679705888759414395975878367622043515466478709119959339603981358464507133801989683735028007222688691163804955129193710537314150626255997557533422616901987973485482460094004754832096266976683283067620312635920920845126627483066740904145370907849928693617962076091253148506629136794111691812452286427540898417461149904019904451090371189330191287235733706066686586248589023783157840290238783799213451159973153299944538733484533205085426670988461898079504507644072844023120364198923895038682214725232944841715516815503496881144252211365114949961157572410203234717681339503560451771789868238405136981378576506203674209024836057062041067835558447711998403556552191438693606445788758023868616536783718258851571249698957687689624673589295644439202436465732336136404273054192365522805985702541427580650234036087394414812770505873429529096740852420858575057362289629734057755408430284200272057335587440526355863029893988810966457756997286725053227250462534406097268977386306033636262617696326888655842082321757548851237991648449021137878175647616633689076475668429644935009889639869654735211367054269869982025477949870387990642425278639177777173931536986501617740594207324966258569671202784522576471554908635100213845452621965487184767769900951556939814641623625369900809431829581471017648480862745092976439654681299637845239407139844061209201830064498842735008955929559766217664082381803906959903901868658995120109743729254906377419657985534897101864562149310100696987750527938852251562566772660346846098589817898400622228032983562449249390491335157982370421493863937470430486717155779874935382185890392590691259489154919359681557433504487925486400786474183083632884286326666699505296126358348983515269023268642409665438316536402597186653009693426813728301767060839595812186698406279641832874799380420829225178445211734385921972461107780893444768188868334074077027648408117416187663128593658936692335387381098032555869306144491828978167495689008914294438731499272355496540631702350153735131430130152169571475067543443125661788865848509871991579052811555900994493717568277444203501056923469015780858353634692012194450710603693464145033727439417895747517163062270147470333267965097957240148614008298543317714895001888984408758783316916831803244068631459638538019391600394816011343085011597945616063719081369784399276235592057631643895896234417981191787315979553189262246697100735975864118946324664452180306725695536261606791671153114843820796509470265578048332548088058210652884174566407364621736398235127258632711140055877433188639843707719749026865228210004333522116248683104599922216372026229310885264539579679360442979867972620465369033218759178810866165060639418368259712597164404984467767177414216528135029028328895153307707507380466691527568684320902373789012522576251878987519909735994308469738185998836572612020440409109144282528425000544767228642577907591586290090447948520262314267849167068848892127654415446099539965614172883177765488774186369341947213655947368256780429538709175251821864920106326581957087642236929568230293470975300872723579522012926131057815384034447349076247141886208071632970967869602397738577597419686622274063451673617103334308099818811126245834416744519310447783399067754799806576903694158444006353662966772359648345683790240039700434459021060838726798816834320770424190042291153234133211784306889302486919417581634431419382421515867336379476433170799906037832093744910097197109821372423695944852367740827911683523005525683157823871401383804570789542551732233056961225772377693313396236296255420997936840133858094519454069896667104386619263344772747766501703338526486736367868280818484635865985812806157811986316873950812563574069426895238869230838822593836782145645019512586027194734409497849815242759544206392943558359789797771546152666225503948692651168579545538218031730165660289723910851477401924129759942009038731560283906663106583713413126407394878445283696790875885221268115655929668332945783270337386671681159301381938712187738219572123920136559605346831947731147783132713806518029355389899691669524512612219010723081061577525967105589069785507410888885496218800648427753775108826922739647800611966068388189411272626702168762996366182583073467407636039569647241233628126241266388063055936074169900048735516759971901079438812922228894385151174234664152425115752876003550280952442248994704755950387653094959601866736038425151404262312972476037690306531255901553693764496478890814528770039741912601226598615787984231232290047978961306271287748930492725172536164980768888694336401795641658610157764004812922540875083197492851717699935364717870679995024485631532689885610844457449468329956421790656169436667773434111512341065731549149404358338110662724968228409356122890867438744214143371832254888170761313012570134050953193048604928656880593448585469053759613483038060724576463144075053675747756646115600246576626931807296870004365048504193706284258185876918559099363062872530159843313256748313910094781763523298099889621258402081539880599308721395077855194828534169202227541695518559539631518279151059014149901107812333359587331404155639734226167331741841280142202427078303284824299845892358794335789001681297795360118005982972019368885697702827522674296314825553528441813421715727571484633959695503821144696178404856293048168753425703660177533441222912390290747256350162581561949175317545315622525388763750850266117773037563632595768254155098493066101387675405149867528449691035961525235480090307257244948891110046782454629952434354836805087454396846219638331691575634131335835647690209633730182371431603178029544466397645678073469188994885914117335726282858654023829085306417295850462968432759873685601713209369112056039722828843500568927772856180393808105021319829475553546689342086104203382864948416358972447331455143224702788454901504458118353474569593431137304752159423847795859933616366673669746980792669870705838204548544447393034457623997621723421556730776076721881321715886629031237847424675556438323837187652455361434947469821420573518719790835920299874170075212678888696940303365911977274109291991407448451516221473792033162979438577348799257528760796836253276090945963518967072887402943285764955222488639889510199882969380857395514105816886676096759277548405080268934311613600489663480311871849848703555826414817867541614585513854024993378387863167681649188081392868861972712075257959206837320743577408172894927142730147718880244837656038439866124072856177278808002968507508962879250289836457654935381025029892406659331905453482348932285670332536055571448811096059546750186285392291247525922939641391034556806771802767992155040697630763135677248373830469008798256537907902374785594021613240324534140063918039604376751737322017286403020618640413886264526777034796156088452234352629564139602576770603316937046356053581154970940686678140135807057684607644296385691949097750445613999629966471789508640721694365864602184565883230453720672264920718317578961712306562149299610083793088401119712948334324920075195398674287023852887116670973161454018661037798095379123890672308336090982551862504130434683539228779752990934907455969332090892976138062915059216996454576028854577383701116950472929290079737931515231050747622606356680874267085368737718490109124537007705777110763934241424557914051407466476339503104467702719376432661306961580233481612287282914084252988682309899505446640541185627554276099421619211045163372552398662514581978712757642892639062354544974294090439144415297811148020173567183539826915391828288374692339472069869592454264322254298522111726069055007169752321961223087979221984662277981033369019379824964287343598354537171373134730002486704325210747216156523737477289306706913376602559857242988001202331510223915964442199944764519657566075142457393111142907747115516745866442807443195443471485444880507105669768802756758968227567089489593042473959307238589513928717856145415586541002740081865156025908414808064547512925681661871592778444780415806764210641895267409870871230504412066104906376867777756310486960293808679702811127671705471466431313507456504960232931522535314783877174054184127399790516251824568844422974232517826390415631032229717111778923391578352069098196475879820519080604998476244887123503988968715515410884966364588633875335715976742012665939782771047565333868165699047531758120089685629452637545703641450506884876571142214564206019452988623717037593122966838429889144107141089005155212791488285865620489964900908428672065508084589351562461805148579653247311505485005176440765577938475428020908927030151537628190266236657320897669635125749303758076536173532282444489849675335718676188219076590064573685917359825798082203437323608844106894300511084420219031886107792671646095508520592547645244908671355444250006059996674077924198453834923128803240201250880477687582588368105865499693713421920608933058165800039562620138070148924541799123646801248641093701969951156228879126449667586967772724028373538788091401014346187778748100496782842931169923827751028868466433255962848441179886725964540618208029148124767234550928010700108951225822751636845661658174349750366205355961915949861556922559536958961662270532363369075927949852335667162302079583189263889887834679595995178780280665569028978831125951302359142949928528980881349309035946261191171055433062006911710481479714774060341366918362665471954351908603258679630148167808296987924696353324686266524880667589469905498182572483611295126306222671047221646671914220097974649587381816466688373169894829022205231486051226105320115937282069979936032475027645143551263518596214700674505954818251094794915047610068692509527860366271757012124339095248482805678801744834065229356693428195823341563163345766625005324777688542562992879242652809690162864686758180424241136278678317273432597645115155927212446119137005862018613630213873368257663103257541923757424358507875667167327573871727762016237983503330542110799139398509193530211951187085754691921526135573524027193712452533895761793517711707078996818406705712568714670276717725464845974738873046990056527269749979298709193638007267492466349338945883519365742005299936615010920229395839899322046059511698236512731422655092997663065126828712295450382553284417659525128889397352193580941390494297072011545322983441057355087524385750275326826071300067094039096961045625505360023605751345697403892039197944569669655019103786506279992950809795048826780045622220979850309977831023041624362265450110314149913927188883664276428345674233679004101517589418955175028534047403203954051287175960269062084924450649192233518374489071864872591757813037406461315981539204053531113241575289567542880943473452985400770129335729464721057371866132587907912195757625221421788356920475134362952397097784636395772037911945913683442083041435366801856592361085112365159310350426689703663745273854605656322823854200227598552934157817331735158367488295314956087238491473394286186950617541485455447330220056264983833837222508149065414042251568354035604193381966085949232483660771856380335398804709498289298033453464891892445409152482525654684880627666424778211687007643244868152189469625811280181071274808048108738379369733783095329529521023136103255623013923580079283568454699795854130471928431309616135728874319679813291781608418597498493158686492897383398878670653528550245867951719207998184519717435733050384581569823711944402747209111392047133807616997320929258644195944701901135053196527011809838401083404903132176296919745886775725488777265944380324650993051750752964319903677978795099430807120047267862090903462593451836941606881249113243831486423524727297567218609267788144624279610842462941113128280119975536857840603577970450754894304370671872883111565566503896843642032067627543980689844071003953725180660703389942819064675404226359671307099808600667078545086280564828065570086118676388399559321672984337726864770797239980836169857346759239319664661281554622386096998468677010347679670181889958538608600382790132447707038968606498023888937092688525313120405474422653735776660642891532333774448487718900089137496551835364224290315784976486599938427975825210840185471121933764257898313293247574896821722155413400097228597363561598286621772588917048340529817564625705543650004519143866455699408729531895170920408907953997568314290831331097995387325121608718836204794398104449450445532779267648823913428535282496239118597854848496598760747596703515767401158605848715474898745146647882152145737891230865105849098214254945628399925625875535299675963937835902465409026245547422615460112664408031738056140274193068887700252200306839712017879451332217490497543149249225438324000854211184850957333728238855199526105406394438687497637878988423519755489876972361201263804309100783890290282624198681286441997875364599547805322012030159328018042689698259482452401621866736684772247871282785286763638495170048153610939027275732954791763982215294002542368516460469805849852050895081248784375188772769371893666746384915231973014608626657416454829912989348957802926427347835841785777225256061713500059392082750716470966364362690913382731943799698176396326061988423631737718100200101707103630367771261713899512631530765025891124434660847398604934865694222199509808321898383990475797907213526041149614657129338027191435882282014543063376752671418609125589945336024964343572117861544898768548273593315083999644837580811333212872863318489455784660490646689686677408509974075702644462061157958914058366444908456935910691457720274624655846411083993279386652012659095282607108843077739754483244804984077793492860781957033004005719362393580282647670369659723594772534680641919648728170552458999069919603391024899216151840957481700178708563052712821623442170924841675484370678096563571363881627171762069059680651957523603314009787481359140477521065866662219599488830751057983572870602000423389493019942463676980307881708979212731232910369574064992858707945751603621992390506508071052138452510782137162298940603677085305283238581174047334361036406005178111097404276303653663649440313487997238549901792027272199125277140950325903639085890257190207412719714796074178330412939309672628466497800660236487885593908930508716651211425143016570338153070233906729179405835054161551756094111286493539378627139299076570425669368973914411885554047332274701380538383753448270490369927279170103508593366478793912650628229831410815546373002645635951616052466957387274901487515017904102390326328598008616741287577930187929420549094754327206996833166803201305748483633790378005732007222144397777460088392100199220126576675028959046492427112407179174558583478667806745342470512417647988916353239975660770894369907036266652325592574266378291645571933221775594475711052443995364053984969327816459236103031851449503815878390600849538363361931716526386666125429717920576941227340734038269098864848819700866424687135488746511348986795563598487467526013305475125445619316078832509319430724767869178321834738297440948736484959038219980295185908565773541840715587606849969957749986469867182004740688976113898149680038851230564972220591722771372535670245619241855430680716471207274939307371411103023038560277542864501377336907794864168412499662824696028316995817596445223274611780028082512478582663255106863344744909702388188227428254726972926672736819743280819730724274372748655004838403720513941362841709149728477062549321074699971876652497101809002908014852435582616448036771083033690036083198239587607457539968494960178658568995122380944689619379856875804551916847789436409179915189707856738577258486187097481179574691764386677835015019677455961369179622686488491699161513837948558560851939155092058534751297642536625474472405305928474613241691723571973842715768629122344011777693656104388951115734113613207554325686649845212896199298232592645095110950484906342270701966027557960660152341198675324865071038407875135684008401041906897295211510349675665370605186097698770495306489118502605164909183129115417800378880276633243573193053527719594216133386046957398771919883420306949544852248725445516288297159205105259698297472054616024740026635088237872955520046738271514439655538039250042570273826196634867383419029350099336235706403990644556570009415440606411990727111500578302077014152386591510501764999999632492238788783942675514855602034446106321527472345584142941414929311513190265278167822701738542560803423624053772690699098856439263699105456259232818085773825651001330446503662406749830226031133920566535921621515742721576696786442611215164316693010627441145473007376834715082962775820101323816505117286497727336757666913245198089594828706848530202711354626164969370192812768914305898371721949762699365753313951673836691697117435811895312678776525886973265497410846767805287963362067652605091607577085473534212712360725266474206505284607385846263620634006980667744935228899212867927114328607415894423338127995658068222604370823139833683362712217185633791607143891200336373607273150902692608327967549997691926917215048491036321678495798008449701261653656968563925143125599653533265411761212428382627986421337561004320613839873957373902099109739040461446239847094998325903441339970599584709337374515468966335216838415537905094201223538122166423289768685198874650942305132715242749158239657405382469710446337499925565276438485408892396190889017951704714454507855717511711476147101287673734275986933208926525933023273591683778302599750661899928537804065846858834662353927342813834921031920096826075347511116555684914408120976703147344123461355505590837306019035278414189838578756743144272992950022549556064630710419564441379723075769997624182081255691655926881947022847638417799837283207022253147140207010418831940201510260749102644172582113228990063306188775769986969975921394948597752898203191770366972279333921892281738658446533324452888383006614783974510079499798876376913997969639421937670983753206210977971051090380597300146062577574479336728775833747859787468670432779925841441398164954300650244361592508388591187082142669716929896188421785001243013601331724061643253997070621806125454311487277855990171298495470095961424559600382783305274730594403041511210598180177697452944662893608747750355586655165114217962661856896430979066340337028422739435896957702448909779399078925721188178220859225876938180781409107668962797728344669044361353795603902035193655746230739668404497608212459845061449119834742101947153315536217972375017561353703799439487198327271646275678963705313867561434119578991235359385743177936871842359886069229603698444270094371693116135353857565716217241624313690849978788415062243577897080648731635413231082338028012250869156477194368429770200606770996990367918322867411046930663060928395515774966799803529590508165198178899283851783916183254413519419672310512211253734155664227017298994788125888612303926817920956777199320926767725841797962616491242513584519880648183083577189058420053472882749866052716382261666514110414267325217124990537012643329316706745616044843418557238909817217428952157891072993025789414590442824933730434462350737049803913885091742125629372525301131633253877133219030619297347758182518115378243181909142491813206975999761021998771649458268917703427511082566147807240193579774444823069851685768728513387846323155436522389009519716951469219384695295241050621971616720741076367894731931344957261634275610084697100510901777656540508936138972122256188282002266712617603029139406075816335395139835102753476681740659892964485903243520886536979536489220549935870627356323899741353087521220418357531177447440293699047453729787335889517845707377649665444256429254209709519421492279808293321629445971577802444360788603936794094963761540792709197975041521137374920193522816893336440800443725425817498947056545091459850641583820555555756803373047700744889181218385838521306205656124638790202895626108758807734688803968979447144353541886259563831284850313847312601003317977609411749990946000933909984121234738755304398638660047561992475713550712108539035416055815298201558501956002385333728596953851163821336498839941059905159062897773348662016573719771344560580206734758605513865460066786577389397432797883084712560143625636194411535274074662933977450956417630841465966094355054492903187078464076924904261302313626090631039781628798323746136250185297326877093552872810935057719703782576079477773279907283075883990540964795416008463699236119927305609656448209954164787179665173618551136822428745158047727184534537182283007283519740499090657120470232468139084363873213556187100092868310713558574453197662965950161858381403403301402942098142928537222158393078397588531427385155775933303957103047200400121642619875248083373871922308332371172832323865709124083407157855756374870830372728963768700275466641398984196980755883776472703062543645269505687715009255108429174362495603283390094444354612706042686044104901462993853211299797516883711917722920061597842956807940774062704331115953713238425383022394057560771358732584859472592222077549572641224647337640384138622659124831923620826682777893069187824008998915229829682445075514670706108223831100234612398975601880137517830032527253584048727300532988819723835507755397467277302105142609036871342553575089863719393356018484722141413544977119564199041201503024188170330373527982534270076579331360561350050111421246961566208315580194825381115956165429148517416557916786453433320022778875232401058252264603574707977778854549272748024305145736829942965745593374559181528990135855367162825696525005859655769128341533690702327563028357829862935328096557711427116096073901800617456992940252793592800937224195793883861440402075824626007925490362813618100014437634350232199423040340419818947875059055151837210301129881309464711719541220860906522513371604363919061196581789400860617328209258427756135540211667349070619134116825288857989952610494376977576013733583045404144639042753445185099157269318664582368934911836623131998707707287234329539611695902521611327263488891638240124808797081154168632377621927381284616871869610394738485760905963577740590101009314419466653202854018981582144596550754987470115554798745973577549264646537036510346469746870979838424994059858784650947363175525526124840080703215808641338554790952454666691354668117915967388486184089450692096009328376073440119902457860430585005853329675265308853962661481300206140269914023523887935335883962649230699396338280132529534785027708935462210407643319302662770782739803243302127938482923663003869994117373665466662895143513390626753555262582430475960644542847512321883938434551035471530921404259093765196692569283580876884028727933027923684757705969257878934936137575778540546555008742310504302777935979606425525238498800861271814746271397913827936854451542614349152349464023824843062590059916775405504002284225948301821611057454476761750631076765445870539401423569775072552765603918585346444146200405882959825961100232461827504066226045973331721514309586613266149152871859704394056628475034968838285299555468884669900422890795606774360129024052542016532607468786852262112021556050471243921042834198536443575015955158285325663729013055016345046845396977540427363614323209606001368752978883881389189750395798205518228682605889879465662155352067483061012641262098606875006857305831341719627566658608593120681203071019497078116903854060997447922016991686741570132696106459252764472623195278349027864635572199512718181298562340579187432911413724670459558256825899410500742455549184001255940786223821524874617345068206379141634340046249785617495606887505079014079033510168616873482822418422230098536610173539967367422992007667645829688141333917112825533741081839911517340803560455140677050688917212938502796489946224319536859619658832646949771853357455967719530862768270755278959914662592214096245281877953850124096511662028036678056668711759785390499687475880046349058730188612092609938348996885063379832736197339338639375051443728052182142163207896383420371125074523405920315131508670193832665252003142909028892304318864464713966378321314485600274314464025771209751019131006629455907234108413595337453747649847303201739536853097382828668276534163215646298257223134124027988018484085397831813374321498926206817488819191587047936984612621046671715176057181316266350640054977060339800504856919045407449775019947697094100852517626943928896797755952639549833015322686855864543954969778738434898470395089894343217173045787979443614814659178399734052824395396702239331113492754562100899756566582390587611942473640794056229355436227464974910697288711415088651198697185339336724476647632874948941704828235256761390364444579634923177714938522581580421260202576006248747185700307064679701197034986310244250052664005663998878166230329301880595182480049623103682315627540045720284414071569298749209639963407539849343643003409576076504226358118070323279286814214291330594204325178297699228244812908851832028880662073711633571502926975937704793375065984653740658108019902807139176328337965448637753528308299105576920003856921175296677014997168279225737073135249663686037979155021576069386452478173854674824497558312325616081281073756684979064668390466645849905198505109155522866865171660137295350845218113744156610104265614476103014482660223396680374273146282378190897976645619069264209294954449223562069430265411327591116267619068034039704469862218491576624957104675600147324713993861938794134894561868746288969081936519665460439782946004181583628272387160302964941422918704561754666568137489283660763289698609521699256858368626556430980007373529046341640832877025516100745956664998927935833264249097008038849204139463791206246383274471308485119849529452614927131954487887801703790153551578482321216813675414147702616738029277876832874534736258560925408456135212909480366402973034434224831832303260905441588995457152008005935294213211558358701072595687697402613694863089929884956990680295677661502189005269759321947931540185547763778629274032465133901547217043534169142933563992759257298425845796481119370903272247630275053546925808553145845704782365537775708713419490432488828533185891733894239084383512143508978133098031706713712301138910323557218038168901622721711374585082662120498196410764411941294209674689755581200566895905651022190270057823213070494205119510799060132972489908470363326106008076552040549644043848425508847858076774309655056628989706235117352098740053979142377906168690968386645374647945842339051537809721402750557733798657033116859739280501187422533045954415642911178314747992557291955408704898703437137780909237439061825198769752680523747490860110374898646428451324825101841420061360448149784528428547221834538589753362114075458869467369889009426139831052330493177032498695332696640239131222994446271720525910842645020908574279798437736364858071117017805660154867131618680906365247879187883007158131507041985330207423644998307419204505666386349606440608136975219377063321500381145451941700728035337680138381259717047400360814217586841083882924281967929071693020965159315361163516220677180203205614479642682813026952160230152276748698815946239578947266192646775698060146176733732449207102209438351101938674847427759553615032543882017029743755681734896738542098438429357915477204757599354751794554391685750892850572276076377791889674573925379673634226295704655460883075535149224828860423281378461760276714242200914817002612779552313216229392479631442541218808672182605398064708272303080981517975552699912543938197206846055343925522732339688426753423345984071410278435429417480335519892377628302478312268803944869622091302283957503977602294942921346836624687250157982964329730726536152369426493885043673074652259042447132710615259754617396896805981175602091066998379424221741256345471777309059928748123885966494653777772783272163204134873667560024512159180461170300342249361859720408353137792660391553201086510576448772298832486827328024707585777321317691075481014738010053169493727750512791060855396765894056664748619307870925865174047207643012637249739098034537865026856376331020709382296631794178328312074263490343978786812224671318988254132273881310553106188889005123765368622336127832801579305595703556823156498356004644432393363390102762207983771056012912861922550654003837303926869565018136904885566971124602473477508296475413217812425765369979205295705575710812463039607861190559407314986819691811274015832114818236130331853791782624898515575567543766852891597285469559134188046491886061778206021552536287766733416084201752569645998681496302247158512279946669170932852031328135529539525638634310314650102595037138719272447903991104918498376949862681994941068661587918609465642169890394861940731493286600314670291937493242526381014698379255333197220078741777553317041579772812081178927132269529160042764575683882214313032389883596815285786280010976915847556450550953247188748296048983537944336818594812641710947597954145650641343844582748529552935853062178942015984527305318561160953237759554788494743822509728659323037443311991044700494374996120677090665630317565463167786522881277091263491396978064827329077315115305000726836754124432454272494715778644003046356557092627191033506502617457776669617770579728790001101245274064440872350808218091912033425594562853198487574495741864682978360633009454240980508988488307339624173715040490421349863295028723070051047830260155443659851514664341612561030604007027101004677114303147864718210435927820894892879708059012913676269580962439823178498050236555181296488090484258521775495029887030339205989128210552734736711114796782252805144210966339371374347217801204328444586134781374447711333663159333539946640749700319918697590661077964280984995140919869859567556331294798616448516239511748377971229260118824982943708284374077917846284268937621816423521030755586792428207486637252770210020073543788554585531955595319342295401330579025531333849394103896975899939598878652025689010951709515557228095422407764488985947923725872140835130342743301712676157564034196523887211273724655758944244009439211710008864359294637079013216593748885501752864632787555847759158706096594494640403269745006920490698087778072078093760670011651595985411848235551048561113254712864308878226328241343883103120237319282890281937592515658289315145024190643700353334171911347427587393898838856978914720605115997188498792606987857564966321291010432501989583028912023743995476626087790162503126725335344590669261868629582788419667478447038637303857675859761913964999506664974025202235866506383862754753578233710152557335264797119905872157333406911041396268109851988601763084577914131685507924624918238394409107742975026146217371123370249160595588011880783424260929203576213003270554463938827601142230904565094148880320938452418515726147442115381191310191910708719581221329634885549409044954516255819170128033208216237647033156757889270372451215706210680888383553961819742594016597158845402637581059576783494291843089379630308496774418574965653683236508781430105646499073940358968211840431895429880554846249223657681260827657894079896253715443889315308580504406917641599462780727447552627310845939981381719142803963200719917651150725823476400557830041169568874137608461900497010364741011512007688269888042537405377779018686897371122670883603212993337544009233026967975016773029361611101720389207251746086241061003681045347582040333266670765756063062568984037929542725676422328064353349312343921594630588127111471723313295401790565896114987263965637406596317746254708314102627366682666161830006558594082075219875774959378935229678744470673993628491570408421218258424253962083503782712132757452122557257082606648970268657624205730316848169499946582093076388943675542729399873234886458474923162781264978554205617385277603518663748922564516376770441902276908021531261513970186791107711817662728779340752496287955004216349655125531764496332518607376065217767446539120959565051312703930616989710744562525582454135476437687708308932298077134505245509900329247140221844482630115328142468473540181123867276031188029410658857303942370426793738499305964678271137343157185565711261662741378114650214163959818506610099655290226323931967618103044455530883112150848617164718412498199018500198422628864861228838267125770787014536979940133352548384526613028431984163140949399673448693937938579986497954601854019693946777109282878144659137715287771340234809040966822234834909609532604613520619461285945831975340042188695665864482681683979702454756980719992986088421762194176529687808733964575287873878185738085409338121876431576299196451496288046845284712556701530008913014759898699493907150439457466120507110839273527423209700405803873488855261693182065559592390168032694573787691864260463329710179613571825740825597426340724465104424480457772287671610630540269376660176916510017993952746804231435434203514650906432806755335486278287569721289505767968917291419874404094683026372423610551292484373246315066844721113242316138943500494706581669897794808302065284491672889298848211047144421339165122487504694881529944842996533761850608413391404149845089713147289596137826224507149534143662139894150450118589930348489431614447626520903618408355273361190134403743827483825811748828608782180982043503354546709358223838125450463551188728702790882521627605471268215243584844006700310789929035465866665367751142634655198604459516109742117936155663313677677561616337652815230903998383054924776187973266591423330725690282790231811062427100552819803949544941653241679462336721938220022440164581223824929502733309673436744822831709936369876608049138610583656277489426022115661325131658091831950045435750760280516206531914389673223404748161055817261547385424546712485657022325202975465962092011327079846365831479549477787484152334242746364995218708218295700440885680019252512794600717301249448702540076410744509626018018395726834971962826364156941073289541053729461037234019473519289034148856848479514857425905170589874780931149191470586024144906786474920669175047761888222603190108515961672044176927106775075207227403353625526991917688456437521008784710586251079232950497553901633431323476663877110277119979954490496644088764882226055835958907102830056454587812849050859102103299987059606492847124138915878806161213407244555997255422734264992687491289136726080357266488080709770183872644417411789689214911032933910554906627385079332994943419222348241385260659897145544287053795932783135327873422717813572898830362326463921186567427645065778001945675625919965925986395637884529132898058841219152139471331673874791812951812955139816888735723446894643700606223666978451920578097267389750236013209280289067114205185977141054550247577938844361948110528313585509177111883912645927909188700091525603510683098162275935491443825602918082218783896021921225921099053715792814202939829001899781454211470884714336972368981789621971258370241427326227287595464299014098029285020390428989974085360764160854904883422697000064284827248481176832504009033261086082011221291867235682395274190765348286643455638427659709636650714857237225735437741307643242641807454831578773737266534067440421230101882283284903953380271777832871789833750743726342031348844511796163796448859624034510080500744740145392027669675700503437788137295361451859536104173369854621902192905353823944388072380610173277372303561978627478247772244297840376007049132650523772752307189699035902465592072977219364240598780679890713040248395935188513504134450721882922317149467959740892837432449104625793270788922070801481579870970699042611531850453617538655638204943428586287874482077299660729022008381489402599838575582711190972355014129413172253805326961560467386567699946706062879782349441160885989735572572457294739161088742879657752289754616491037759348701279501967344859262528501728611544606274347049533856605959487690609155562936298726250920115873659671504080558216430013952589050961984351388037472182759908788503616306419028322468119792937025678165382652649831996598802559762298714319298637365457421733145309810583162562867887541320655627194090764126072368698515291229503189214882111132980622350264137401735135312456677942659608283935283466100525086986047771652484086085033713270238516831672996189309577993926340378906801169718139900066749161636020132077970562090025590523760449105338042515879048339064315747869045695246045563180984176790201325613847067692574040774167181142236452794471851273790834908790190536636841758087371623734296924878164606390470602927487088212038839696563997550460695327148024721371467314130446227489204377142102205252364672294407198077265389701758406471868768169903544578216317493271987221268230490409040741689838895738978003444744077101062147014485484872827940076911099621940663461169989490906308926347983702374266692446572572793049273778240021179162911399644892808973947420541143277168490922244707136524537461271182122868372902665329120635524503635114308217586155993421790197617774766824236224422050700488731826305065548615555209954454730620224275412488887984064206774438627564558545563463734044992451358408278413082213263668306536669031978917610624367968626414911422455751328323011036264050444714791675058605135309943438435989613398078991943201340516984968134630262145847348302466439109697065229138080327204085552405222172966242547004149939376549443077434504922012016818358046856272857691140892648719966758586712248734796430435261695803079791080165851460502758364640054344390005619678859547146169650897660303407349598061094746995198306614616179566342231904297405859680134042859161968739684016241478539378197024767283668210743065569417242930742848664253554029126247540092373287052360993246979781886683489449843249890121371014685854523252276974763117440653253483141734159947294109095667929755646083766255787493612700996592869281436129663117495583827737098977608204426672072154571909280666072349450339083679477866258093225453532244087706099607398941035720613254788041826190011230601466019993423644501138625546829007674104069272667340774267166494636506992780526756540196566175071965755058101873300415840044764887375697850568577109712151192164011695927503452380185436908554297322766878478353080395119176579206156448095284778649514997235457475246782095714447477677829293178930214382429457232174508563425916382328803520925272522830810834428341678804156752704608238175758283972862734899841183052159236924852665991857098383795949561918987667691366387716780237546311658387628697747581642124691313426646251833610273193473115722257408736824223637225193177606953408119713040126855812070983216293661546673231668283838065075860502535262515183376886415819106243700053431312792859481288134235498733932036453002963274590294050376535847436914009707575119127816859259088061617052757542053424528187263229967437741237710191289663846510365529252342993438269134927853888193666986591063301773511698724066257160585140399731651744799556951188663188766329979209154521768501166398135094508582036782382715028735521481772576368671303553420218297574190600181135126761526247498187227274682432648557599115975794086116616570309699846190774999892178736611987150674109813093890981369105987402795421704351176842431178711795128241815053825025983222728814167665848655509451750284681501774835274425681382832861954001306837916881282255013342129540082765812415873934828073299925847552715887957999432446160555319419585364453117816997581292875362953702208497090738510290759792711273471687071033646818432663593177120622797037993523482121258694947921952113216615508529249160182565568487810961667208156401655107974913872121881952642957253290059520875302698096854590193320437468010713458007867198968476011517188001471284319907090420240245607486955998459061681686498060032745660044735193149801238096811104922402273969517632419000341534121546203479734284406601856716888994011830477350938312792661237624169906981946003585763800627422284185017209445657475899747307621316588857513191861452522888431270586547278637393397004098659309201954900329175708355569345980021112276517249689848894437085604145645281379428590975326679225377786218196096531632400882869395194798651853031900996364452588842045234627493577742619801118249268404774292174342763407602184629337087711925879167360768717986881053562317097739387003518450916280212053949450092935166459677153621268653869243659077565120804492767667041804440066271196644139871639729983208700395463561362728599757780996418651211481449542508100932845601622655197038421512752745997031526400044609711708065635617018436113262801303875572227086955775666740302691008058945713833752179958921445267768747409582767969001118335590290002231767396395282347050576723489376527781365983334949297066034221930041679692365756588153607450018472608838053356389254586756450556081290563538972364476462248093896980175403723499368037187645964231625085632726509496644034100368434957054411425354695760877269839604569694923674119346348264548534688688010126719030265544365187904916957065238831041196281053483806064554388139880734467254144518347189146857287879063127482083210725361062643848727258218390174178088091881044567610670378381158441217971790267980773212365444988795043473366216302034455381979399833025870547931542367438871267324404769320922886858642977779602869517549962730709013805847119309424327744969972351758917766018315062395637960273244122770973577305269526011304671006232434343076399615708519966807658370296297368377858172097405775817396081856425863457947295068343516266137014445460384530851369629235374380777891876015199192405477830132394560576027680401222349857783040982462741610046382863381659646935114977616082862202439704817613665698489115378139660764467166195186942008974067093112270793559169737769088718123630833472423259221058501274506521417584071733909955098849279442271779053703160045883155908825544222403073193021002603928859659436432880061006551198918796374154546821232360583694044033393986027513188551599124582047793627545571874329776097187911780878446302071436523866168054025802423260963282104264511955051929219845280925582787707968691722463974069987854675535114192288551544814609797907448199585938490479911160011713601677660993101433576101897927446806092343231435840600352678611702899196128993457064097356230171848593463203192651093541406459331700817322301756556305037254306234110989132307518891230041434472384897295059391494113022879047115906040156218437445029463573302097382718320525536522270004006518574079234702406183280028522558809198334464404683493345553968848966053614962017204159084527739216442998619349313223602827223112699227045608913827398042410696560596637207301128969432682931602810073196329346619784004317790273497786768527448384261086766999129138037090106609590717434862945878649862859521619105962670383367862479450519827423112823031894397716973360644558947616901100903855407099021241774599461542989408867944128808889306457552958343560292131115248771468247982342909933228036908581365078529798646006994169376127991656524184357357880760287047720548914316350265602648148738925997571862675621291215658039398961407598865565459287369589148203110116845804909316270090327219592831881945712603222718256406118290763974767294836210335038617226456343899267417734531759726271339896216449124808290499263046260643052302768866831042057281758432736306502258795686220961671153309358075367630563126772953514772927081021970651947151736911127185020205414423504419547566137218429247049984139823626908246622722085006085969105549361942863115866398280630210117383711621768992380589007141440474258451151694909792881590349443553539997121005196318828888410187659079240054403084822283531247666702639658502788583069693758806976853263658972246050549394794994164316175158350383213902661694378917003805702414986860562992973815993365160570479605261739695321884312670971947111719054141078631908862899361311854488515651278027054386624145564080024833610939119615644024064771700119591211805158315842956093778609542793975465121984885274381122590122191540688990473563232214008443133441924706430490307958385755834931124152798464183282749282484806676977957822197518289444515818715889084004196622482428880108126908678820750340204021364997238896538180972116110540735081280764826536579813024307923397013322576057398961867109624732227580304339202164873041910418909298818294057955383456684833924504821272969107413726628003065855529498288262606652576932863373986259600112934829531734851517447732357427659364392063398050791885524394174887380220883964806842084053510209849636158611384718850916716968444194197980804442276293136312335539138813297478869134023906752008205178394489547116940152265677453342041927436728320643589728126305929767401515849565602179017797163387942188951355899801266570483125695498505010601522720984384204323224306457127180220887457868351404926906939301429650841700420822465462896437461856871819437844481487564584521525085035210449376884428061811519538993133013463411572277519514938712172078895379110153527220917520657971085923535567367267444697573982818837863332094102072802205928207977214052850592722175167254372050572253434304950908530099843466766890795904846372604473361541646227232345362436251912494276839808825243639606563502498657406693014760550704266922036573771303360828612208277926546478384470417588051510402433339044517375677115542208532979617262733459926469798246250547854804118925751338872131725716308461253534527797613011516410683182598426953958525512772244275933089409285540347961746440889300869972931412505500248584142052915070733635827721716810264636443405145681922018012915298836562662757223726573317679805314978596078086717524420401534558013560301698561650690240907106466933048247595764902819912100850442288399241672208957411637162373780065442663707974797580868573548757244406612702819926887673120198574461117869885231515714078259011108086631708010672939814152612680952293637021119136993871400821747864135576770891548930265789397876815276267158762440793146929295550341106983912721203684129977297527311224432904575617904120003220617586602898592951171449952282800884250928445039509140570306115336340210211603898639716298553941503327149335373231765866986179334301500987630945044396747912263599403382178696681307146597994697866564886795948259284180987253534920086881956604247698679266929850462145946945677781047654708368703123138585990399617869401890374327489187384990274273596571953717131386364135631378482698292598002997485066462819443783114052512288585162332274980352507871875642463355071030751393633449988488620994317380527031908969564792798325992344893029848843306585210036458883334754898739272867714036937870338586252790543976961012124403148780678714837299413549032798602511052699196121269353504353679067611078871052567381153885700715233821082059300688793030464376416369611735673864564466510158286656611358051446305918335077620369818515104162257997608841581162137769748396495246837276493305528004604159431646802374292413510724275711588356794134033240144964210342255150161952527798588996196295796508952823459674509963058635207398866917779744779860611773330160904959542991423619606603531704963570180855291377586111543445727933646695510417805412997024698833940850740152247229805437591060471905810950116028740529730793561060025842411597658224753379966305739286733495294228125911929750784871737002421050190735035826966974721635067371861138284198499595503274345995917356374314491635510700741152285637399086940707477690215132615495052796326882411671894672674889405673771454412369410457775199244846515364585017073947643517819012887165540151195712897270588618705025743768455351338498487585017171664918531545935319036083601549337165881972519388517356085973863796257043211451942934011209311618138948373307099580917782598076225081072779735380871783674322236480538656013783656234226725964634977951933788306878588848687185732909681041752173892704005208007800802547391968251294577106280944121229865692734503463591833397646058010691169312327227489389394336507534597712928400235877501256257734736696178273865020391347205242399301852555979395824297785339329087035150088257447268858659027379661642533710923182499769453029846755802206120008276997062932888272595088974817672776828542376750562482400073235757764904133089509303112061895063153139467880813319845462349913365550084585410275195989652482570284581278712254475913617349297069111472797210116947928109142032528804921556589376043481480043704573212011192919930781995037976418418463430624120098702044572676234965889501158925946689571782088707798926359106159945403431679557286188697456086572485042354316022287846512882373910392044147163348002634609024131657917591429901425858770339729951462363762489218638975948206458697868306124734668491881441340503800252607946499158785838459269925028799358248328246250867966196552254660889565800901807947997804536815079151853770774489362418026723789214296692507146291331568546686250623416256186542636144822508450975582851375680486840409624544673395986363750901345729646002392902253969659388586298498994650994758999077224864174473694549818302890720744946115418372262343575994020901778078501973234023128969769913038988182494891194958507612002714146230394685840337581784844879581718659627806470911121915304181193914893019830975555350108021378819400675735111731056107496717595292543462556589597866864628296724913402060729080279840404544448441152873933918979749122933589423357160156883462259015289169413196824092374426383228897454079394082899043836281821394343768701043928094708145512259184612797922108783052217140448585765887220146756991229528302118054032576147765944948255592887907767009232217729952051872397000060343330576634285273791542332891507674974781341272904189967168415597754076272026508493874103973390055637390443003749074814998092145438663902782002313052992649132098468467342401757803661574107949147789285587636189112069243221228733118503007761075780075305279113730246690556649622227350283150356723638329119068608120490389326961819103188762406903356400080011477152201022675173215024590853747089580104310748997879790787448303616549645844138203848167416321462546957358719815107742157353388945371070566302970688968426303965138444285852667963480477914331849982840853335347991262197178346244853752131149052759676509354939424491601495828617569552158507088233527218075769794884270122190453915021632100280422224392827132449184444474101357601114149177476991745732530197395450815009301203677353231919842124801614375392545221735560866272424275677290307557950901087222863213442793219738372931543080272293402360463367031985773952431197593214928590932029318488793403202108393081664082021084374300457611241967964942456063846970998312412973361090556036355862720458839655932604309018678961267799256618658248383374313117057780979521804935633646500261731588749394336806960845684958402665607879173887786185344120168962267241928206503084802923078371110421830870542553791358301909432740500768490732093341740500706402095855297975942162230398580816597927994948096979118221455690389630098025154339448022002821964346578349634066758585317753005117906859238621211790551944958858780803921014681694353054417784628932343371147471623937419973145049234745408414078644012736674213954831537032838220575861054312780622532870402436204347550621358053537331545820508786288203722358666809444415614424579071085127364469971494561377427320726126775641110732139793681187308645828445028849044014907565398192554896427901910956006208228663256433932940749321486059181042751640668256836864802481894392587588443674084616937516758594823582510278122800124219180422920828892963659217555230139190396525563747577160830279647346717996539784037480908789096767590515798933860031063188837878440446235831748938609612737293837378798605776365836392873893969701075522592800443677003806759867868677020868993023486783567012677763821362899263785129455250204130261281979447431738329444669533536896294702725955942339550245803515032879804216059318887110259986454750483026428884179005212786724469322143190337765948793432792390795891689522322261290894602241876691006049024241158546635660244228015695801362995920014447673554868419193908942998611610184781458540904337621289565510615963400590304034010052128766317432140723637119114018401091311086471411785527099174701257553791979848221877006371249366696395783592668160159017670206702461470838478788383669951089851185788363218777286231085159657194999680859853172659666531086754161027269033023983314859737878963549538073453120347280599562891304919438574847242511501048565830373915136671225016576711419963508660894531822599843629139574492791533154708606370765163643555375410871549785892914675402998129791551777519530621338269353298643701514283348744338979989437748172255490684614893689622894071025907211637253191778667625327830387919909527773406618994733733290125616855393023097142803838154522322695055956861044271869325026433658651831222038298132737823711215483028210742537729505861271390472361613710096425094975854108398445103928418518653522987295979911024067268454205179615267245761438266666521333765764889210866174625935729042320414691229841094183449769485434518566754006013702562096210775689173458488573305811418267646445919049422312060966555154087193892045243998803275835695475382998994492193158991443541514230226925762127747407688546151900597570773240372966921034113164484349080449904068157962673797823982681172041780407858896917769952713838455858915644835175762712465371462905812436140871449440680844048763042900854981943085337093541619335127301832105036232016509219640718030029490561614416302390688386563329397668194920388922427683102184277610159793732008840146648797015344810518274992298611456909620909190231920101133771913214214823640532487337561258358263611213783441805666167543606313981585827672987983166778153971698122370318071956660548877487816235783849479804756223679142696046272274835220960780524653128010152053525733570361983100033226887390834973987707249075168099491895123566649736334890444465591652292410931163520508748206257427860550845922390352742261121560926113572101736994434479214252846632910801221318103664852545763565530046057547298794668482430982836338001823644810481126213115406559900715992186310364141854900073074726997616904908886947385587339826373939632303463972921206608696570536626696593187172556519749833411302058223435151128264536598028265995265277028661407304164740572977325939944373593571195180670642040845319847242189081019299592640214550614978083879803133348155933685007785335502871949941008870595133238314394231955671671252227542985786662453504599328350917673030642646478291718242423434465663809284405107133243861093851563146485007436161533942489948866768061655319746937370973974312921614764533106732514636145841617429419947936281508049177248748973256456907490637016938362892662675980475101229201287903039169320802154357188677878220516657117174204680270216653883599769500289056766687431802139674866738319856239306156640209776902561621456270471992743876373260594089696817608197237434964135460972370620783891433421949490059533924705263851992326432241149125353272861528517855951565843260027793671895375155672540695182503517759868991632508216856027700305211626879126880762044146675234738627841170077928747400967290507988645624255823766674043486952014806804771124684860844809234250844603431914900692053108603777387380785268363940093037070415961769942721194716984973080042614063021718773375399198287980695098062202201594630381186876956956960887735762112898969844084618581423864299810712411432893933938953908489014739747150718836302117985048819377020109418333365065559307758144726346875567163063335751162378849137644898453678792335876771551172819000886622476722123920413742796248910674965565464982941753741480241211815178994542067393935292028420026539455151896785027586004007519359924864071201747958610358835240607188131259907501325215558000757881136030039152574472549604166311477637595449962130330388294079626372151773722802009594795804571408786079536494651020571480456218240086517481890026074151202088218805151944160538289758158471109559288892439960435835825560553300356052324598986864819057630986557659560919803263852514845862304075229333087999458578649677020829813863184573007683911232870435948014863597482834580097520138558585649441437593025218539133463471324178613838253329269885406178124678583382399569400889986467671213744874408236237822557405687573598034389556064244335695568481991142196176570014028411911135792440437129517743312120092530506250876844407497751730512103396712082090902546234037877138268479481955712615265218026515080706705281528685440468631895167571333447496235936184760915143876003537946389085387626039147583742823465340490505613056497747565576044074883760975298588819155681731247036987071465847835305664440425327103533158034540318361582553764286974542058138900268265287290595346160672581193875510154953033210963995575949600157725580365848817198895185160125890079142578176693087176665105974982323968690957376813368371829796245565669602179839612529423893310101865781274368625576109841720823630242522432555557261077933794389947982450390223702020715816975733556520316095596363246508140675402823741729635743386363970099823313726726882270718779656657465509640638409284527587890922394114380181464733182774341876969684944524899512847976045143802893425500948745679583463950827269839996922838196412714905906380119372233067175548007864293013613108698246290570249495697880262520481857110908280550620025092845588161805995934903193663272102991466101988640166351152812123528397428837249611796644773473134594997642992783489986094621365320603468726267508394101475987988230899190648265472692683993515566014685344358845670107992565484796469878929570620445442326819744903998342129645708504105920998539828561196902721261452102467677244446564644373032505427584151893968599447645679982782422765342179070371753535391376757984825145943278716280423383621211702124323096709453815225725433463533537862499748949293959937794053243016304668212605580479590986890546107010935478723448852821719768709349015980295333505434291166640862083706112279327140479868865656819499154201429822436843085153563929324440866341205680273476680931042497088118236825650633297186294132335681725937250647532696128007823766069194597388849859085379699905991034037182548572828635986993122560253997037909110234386324040870649071553749612120307004687859947555302036326975783687692593368296583446816239158425464720665844072927527241321022461542163635073257674177402921573702618372737548272516830638789612681250283993778979837196378912994066966902519372846566026984254228556896902021763356071982357916049365791203628988341633038405399173020868410465125367441690473770813519665220026219512217711344885192117355494097276219173927566771335832419300164006027607684128877928095162027176741518590798682329137330747027396940936859437879001236966481792692541542195813460534622177574164019634246694429883398971569381507735509265966159965533453590956689933707622074904271333911140043827792201042527271244174380063706752213467283705642609698596673773599304453441819328931441706032431406881829882937063690487431940075436191721297183319617472748116557492353511172676515591956098448233241559203705893324934885559438890404899513657991042311843309997111018450765816589795619462739155131797277721518660523077660681138761359418394048613984099020977874916616465333461054175605511157117081122190441892463825899210363623666917453495938573360713022338167958397305096707604932775884918505536479517772064765390946311203165763134639844073731633092540461033283668948276236124270723526153508252186514982462360334508406386221900534589091964999832663245986039272165914927022057609968527595107438036044762730219309780711946903283454579217068552119201603504932073731934026720955831500941585711441359592613892228501528839291621206721999020941804012405966777910805517309378817208679352190629406122300740377008865999506848061958219440827830788223484701824597251062906229240823608574093906362310662792164811595418762857741438839482435036634832617008977729781178305853160041522450554754405945304700367216944807691156885425896421156334950607328044739963435338522148969902070957717229040961420318719984618887893275101660782666161989499182773100363404226811969194496072153768437102698712321568044506962399534433973415651017245698613261182081212788282310785246207922664095980077070969646938452485888624097474499301488789915749978012023978329887808430142751873135987717662727681836110606494665064616038151031435332390385192594466246730730589131486293372393182371996807210231580980501357602157654906680762475225970193751825828420106262847632771572232017690314706938233623235997200369122868615673601749983162806749784921135035528352384706798142752952968053475868110108375108057087743187259874556128428141924210870902401927111630989129986311985829565902537766677991489960293491651507326747114339401117847873533146647636275175280118009383256489276406016829539543449573522977063632179073718570104936726571402495689636287814010122058862880579517718710106942024787253554239600976854377463124421365403890846824755235771377984575768483927275231928843287371666467856726929649770864954775283610161060984063557548230218048600086835519836840716731083884373180881024500858788732728388349549208828277151987192207808762415423752687853417909312348691570259912461627439204856608653801120323525766367851342942630651047226433886370663937004230354820275536988063298899277436853608331891556904958947095193098332066675724356384590368620507185333024020141390652402491902746686403737198296457562269025214975405783914363950043182777013360445962620913857327880047076975598380204463036282283016645852154685038247697187834981370168093799884043635104575625261270113111415123779517882670038735269976214762342231210541544044122450545602330964056283909233360519635371503691335057294569636340500898735343901143164506451730140374034720550398740868282645842251961566940406229959566052412565560653987059730119324392713282899534618168810118926155633581250991106646579208893985989982092854195486962337344505956153490234579904102942210614860685693737322686682429619909386086453615443674415573665985281483027782515870247490351887579010425411093248003471360365295071328908098985968079442178955446771683613845236278564979988138730328629366002038045365880224858226583102328132666733744031437191721080406407269468014437699631785114248717421723279834639226252310343542048216071280001371899901524642076997952395186167733243402908245501751156724519497538857240485280848102978451454179250454402870381745054647042550367365070471191785330733951990023623770644831247492606880297719573909005977022243285553063797916124213721799146182551691602019222517484078716495093137073035384071225069770490579918605108452796620660219543011379005114234343276510875227391085241021678381733368966837554192437361369945986968345951348884408139653868895721469185391516627000628433188871115217545449559013203911057870851316113379969254888631359772021308127633380582920939642101523000814348256503444282464684475249091331498139774004791420704107105247541495233520581635912451143527841114096478752699257294228862528174993628353996625403228462592813785765632274028386005014010713995345515802986804986613389247686226020245539125829286889735777051109134771907084557497285462501175729180958731569948544157517340568709085392662907566237336040372878094642267383313298246485225527605685431662813472298044026290567225467110940540378185250576612058503833026642182122089166868854324603525296970196058473300258894584185039996259426567070378532873814761945216678231229636271068048313991404680514909588627195486777206829361907301325630973830952961218515673823831026519779808431155026957050166602341384889930480130637229495281992073074811109412667339517293271832133626451771332766799323327440433377636673802231538341641304477116780008786329964057968434521372517662231414469659000756533731108300882649276057924118512205419311483342392519674213454946737353927326353878787040801618989764734141843066710589487496176342729681738276323788359505452183612079107525124380533827145736789736005825477070902038031550153589307269143123387156463291888112797019622913665685142553351357250192832870249670122207074294543061547492515252200752975966237772436477985263190450372925841909080911123257145117687326087293970402180229221426987441214356716373775690882718574316542558711476968021389997319224416401348014549212953236941711723315505161156699198764114484050448502548463623386728341240068741437040518330821528703835422227716050431552240507540639671252715137027104622856805648124510219583614052855960684526728036614182009746459511185999931047540957134166728715289065324851687523687929359348549294325854789369773983491293910991808620850533693446870513201828753004163356673468254223832198431917048376693744313234107118418195398641456939400794021983164325579196305272722125396037056009118544803626073073725468297515400227893435388675954007508457648246094639540702785839010106503785909348208766603044507089992694219828472682443988780947841905994562627546861338641757994299303643836632658283498007716272407953407596187809590767134365541353641081420592858684148959920532180551806794271079756777218291514686886586990974649010098615991733664535086779693475720966343860760710275836946273193114999073902269556903638198135556988724983377169056423748855153454056796686519364321233651195117885553365091877742720258938150795129137991489061090216659056642993254453709310524949207827371500411596369402839093369128579986284183930163198053585597864477063644559919943659983088496417603632424313201848498228669341318755868878691108413792303693972207795650057448418665706575270400247986641428194184637701344886085555533050257642724244838726853788612531946001594789832950148631731356038042327587521612309245690593558591474057916588150277922458981110205495744932666709581053378194379439679806633044391486554331720011578862760767204845420644392349705889683787343735311436253782520226226916564141363226645441445716699894154863188410264042057290543464096161812658020681785669766107457825407856849777094073878627531814583695806350973377056093978521858194923381377568435943588439751304320364306468491920614284648262449702112130679199140814281001727605875543628208746828171027243913795692846394126272633196693162757235043900269514273829565616192659849222507516214857763253038887267779478272860592566088144799851055976183874475184284260121015733476705789007307990560217178439593874340508708757643558456667335593054989816180566319931308818842061319365823593921515330524928564351863343372552073527713085066289083959090036708757541556821010610740873445418994527243219791760901474432339425643636517209218700893167696878146015810879627392635470989102081410466732105711508087391362880715028572691325141318260744047780100343653594277106685742284757166743060592357108543661058568362634427896047031366689554867215811748970573720456549856693327415191213846389465655049655221552218039391992975144488645512911497005485683102451788562880170146942888825967642306663136571172553086074036151064401009945375640965108979061888430563135057448898547076664659076190805259331987612438140408310928932292126126472720462079118463406389650525167449188398922102646565951233038987388643686039937404167780971369748758024453617906975762271011867221960698654097576813337209902620090304609517695270487564851031251323708462161527623431690140441182459472154712015257921562394210391049972707768244418067767810595456892471297398690697463573871678169672824212560205328600584159433407470587124190332112509378556186342010466144303020371863634829222821017215776928544118348861752111986833968006590477653011217395648371963438570146919318307808132898624819087567798164856142327015933492928806270040880941991135964111969204955910971139937864638103761991066096926706635099604190993759709679688537836581885068135894108987039708841574519175040794318018389620942534274748800569471321165054734543954873352884088952858540531760069791257759198720802873203625639237812663298324943459266200185024611221830287981391107157893377352283512883562947365013140678139264941403348875316098792051269853021842405100924749043223400642172425907062890767478613078302932429276950205308950323276426875266903042094400251051056327819449957605966552878107587600606438477072134484398292862448839200851779929823627106991278568358953317661210139310817336513988303368967863562698163912658181663868550861655480660785177318295877875861869240479969646432843656305991360681044609406813267585736572490948556506304503089614645824894925705318234992555579389546284173675801594272508404911630343758340250743561683177895062692673367579817986925161995001616662970392771500085866526760381975876904385203467858140210960697788089709614047343650192124464747553015851039104946563544891870275363648610289068867426301225513969258384892103288460246329118043504695224974188494532683529697241869554803297169122111086372736128230600086911747502693644998696205660159596937154918242377698326119704418745451905656474627653233249191821132087494063942358745718814121075055345125187351768461587852270493683042989617550682307971009577479609919636536839157395805811067471822248349659835896036131490691971356242911619753883487419980816450776267079445292040050211974878313217203784585573907393979535524597041450542999584391762132659937127242688896509904720424014451636426573863807063968815590887538350468716321576881052425323953669866775260226932586440101728277925279314214181447723586075935165636558601896428605853232461119118459274579264173280885733206964158297566683534310084233444318562368152222849042835849926400181119667067407051387584340457797384017326390024250321002063257038290146491592605960156311981240338343440270803931580656942766466593595517588746653424162840295331784275219232889638086878242319360466400128242934864577739618188588809114338143513260138507081615055481189852270084494162985691263835666986389389625403596070526163978878946611678795214532550386541966400824418001473808389917415820384930152129161613154100728801763801024226667017680477899667807004940148887239994003845168588224697311203252984471624106682536685873379346611302329940371362216334330782955988463244577817600033018055285932256692917718045874526365939039198799549155918384090129165987236698981931312205842064585452401443948543697644635779631584758756164640853152918369255522558986764838828875611368222821603491427097396369453979158439602285822397090618629740801117596716670644364810398808031262212743382505524692653041944304337465125890692001964400038505890139980882647631082621885929856056414906412578170433283722580249260059304370477888249044186568236169452094843582785100112218807644235596218697923205171781361315043054170351901192985978472907138825199008480653184489627049531790764981154383044454739936765404723296377534924320011919767502692574380044212820027973008872989422900767881839985634981157104665442050931893487312417996274024482289442227074762209606795276381404639544972559622954366345861813586359517669196360175155323252182144066326776400293603562589101361970204812257340226876459570871885229415077948976406829125184222080255111702234264971665306867227445020624698644177120581094670145328390067598151400526489539232036581393979011723122897809432750292516895606529154608087872677078475317170294248965476050853984339446616199257761184550669389702104340929000821196399050942824695135032278393350703277345538576692869909748834677556847194072388300976672290552950497893432685350977389687824704594730160536521036285833096034670449372660229181012952679633567845498364582056712400129494859993191503121920556736345685210150885599328612278238619370493638481079829334455019858057535718494647716080337399063767091666448089851410722489770910232512051581044343377041909794491006106890894693107136255106671841947400876189105707196877647997008142527126828102825244170060907570057681124631758849601343047735704187596010272490831533296667858477960267881043746003974606367698324210815521605139803401738162510715379765687302446149781037355323194068668538978352388391420818380373572021393637518836433128012491032808654202689405211395614857789752324852589342381326009237714511786292769126967532398392943549288528951782687313851921872762599049445161320773321262774514194767454895272438648005395936372597981277352752283695556468381816156935462375258303277336930749320368792040501983196209431301225015524406186690055331559263352651395907289692842241949149698671502259325440051025739904474559125840495529533746025831269709339512394267068289518388488717266265375131828975071527674574148544322641272603957016047261083634554628656838194767275745319407796663454379609277915834181576934735033448041760306236156703424663289582067333924723337379871186719175204995734182322528918838675584562593144836404128927446648445582040564459036431960702313650561128282872867460829498571522362548963185932765484389844076693039923784915975588692099566691553369615384670957719000380704698930362161929934884647472509901137017720377324795674382993347536707222927893381659644699258238095019584917563640637958348305750525846691084409619259742454811776981613198011041779951181408187522259836223129727862430835137524784664182483320906519736132803417384704572912519223515049522505855512860345438664879988499509576597986157190282816000295169868705417543644141949961402773953229754705269808440932253874744279566357862747766740468817874185257582536130605540391307544217339095773833339540071290677818924120692467428026516893604191205018195092311228202714219630312934611495528586356229018795669175107879153795038632855233479654120756120337843510054558848682979272083101679150333922499895602426897089211810245148119884797817899570286498097906054678157404633441771447337513271855009251841726105402426112720932326575291285795930185921159945718443851436941354756933653878462431075410614857672347891757724316547019296403419071651277276265206628188437403068591427432506410701200026922835006482017862473029171995877564725782175933842959903723403555899045651113529058865419351722558371290005782821991568687322501093832508371068222186791427800947708688693153443267102770730119020040442554510051635442059195127395516579713783280496585864799206830760773648742650588328729449217656333632105724333796596067943043990931621263156495726858927433494490799117377110619414671128895694757679163808400537027015879618062187388319892890523756042335097448209664777419530659239437511443336177376805066548465979173824383413152916765322057281491556230822287390415653488429494231040214705499421564862753921313745717535916185440832668380269730209428406867354143278055384729397637306383519774692535775378181253655016068255059757429483965176275080333143862168744075655475821305676289291259143369033422993028255517712828776617566627168907261130133295587818723907169553017902069081703029053926833307129176631206932811273657164577988048218141800905600904537980480148493697147184909717712190370962523489852931276150556160972805178226394872887936232294654263185471090358226038950636206001018831790788393837778436587897505025187724349423041742426746630018856996976055521184023659716117427879479959835353654396088372595922464947274280579234815198358258515551309096459188764460846202866408272489746235839643562385388345736193533147759747966101145482426022395395255472999574631272529073177233359582031949641597255106773501557243000762095976597142066275048866162188150521097347325629835416117728070428932026704524868479340663381971722730172088839227903503398619093978852360124600342065766596016365229118683912336367812775558141180476684157352360648828215442108166543785981724315062387216793400085961517075853947198896627220352096682068241464525690458478217362743826744876624297048828991690349703381040108401821444729999694143417793015112096335027404876151219362647163300983230526200127329681987545702398526167316321594496409395949881495551269039035530049571990834621196212351869402569370863527878677450860246388897012623952813486923203376463572799993553471289147689339907219014484636495231587459265473484400910852029109317613410421928008242912032852381577156773303561284485797559066868711121832933553943665236647152589938818621528440119372183920482555452140751663953885734787625313161539049839047752567888171768806269179211046458269895580342096473963989513296376113875706539050679227614846618504819935450995038599367235196572978726755503121925951821940991467749576483387497051146270184941478318159736908569700584822104263992114486907123448578413400827841556565764078220535381404888596949339523888322966850159053465622909999050297358123870948885374406466617320082175932520943658302277878096235936607063133676019393331640921173288279172139805159674434783107710512338196075289566143067069170775816067445107967312523580901615061158448031805455453752584013305481319343123598978843139419430834374432474412239969045843990816581729309788861940734266076672040127002360701944299339584679965767521301520427717703136825743121219705968478159321408164181991228997782212321071799394738635045218753653554934622928990248300051977653239065120042676856898542531093598627952341316729475064308075523379614688365426088903072156223852266386546174089433113390754788307507459821676439803757793994093468331870325785252585636283105922190115738067081011973319243636341211863677765984626489825199336830139469597808471059481762454959701247809924013091106348848966816785130576912673874002114075995158390815047970696000901347516962744530658965996690766565887477414555096823825402375271543629006738067557597401308922653613252570230961594306944293892880377371346904102692414576159894420790245831358686739315469798650135653346786655861235044011044677542886680539159228783983136223238388504226691640562818650184688766215837666247771894928701474159124563148587611430797640015241105532684964975256575541768582836486935131688318922818375802624786329129647065554013189925071974576421246922847343327293764029391408302073069445633882706280394842952300376993983115780809399091052917572866552766152679300852727111445522264198852606123266779797695468430398335794951105505034562262474752455549650496300529479165706472833974860355788488526469166607279672235015306622142527572463716632604839998393480595181363002622954655032523380127137611678922103516587449159887014816575310609962537883965072388140682898650854091146122742064589521950703242840271620661909734169700632429640147817999121244466028307325253022898021262322975585666311158117553789862353624398270399239418330044509963482880397682344721844426676067370548790137860148429158909915008391609402240366608911508725432600028707496565700481647549371490228348628598580488267709908327155486835462645363750564169677388874215166717199570645744585164951456008007183173792143501792221862226124992230431284570913154225512153942473445592235333039083137552079718744914524337356853335757678939995739940359276818361250877268925902928318568774851949877722741892336055623480894131426658746012678935681547487396096970440631075707982049464612780882407970380513241901999444102380915193073990580799978931171459287697804389548601195960466630912216980936967532021427787734867465465661304076897899909527254284685553733562205053472199178149744701878862000607406944237175222716643093443745198757364866192428402651812660567917753975491913125982296242451668056402775311798470123980883283771469998870071309582076069746674591151339271110596675424513803518099163597479934532323112263678196956186878624034683080739829725335301669197022723521735712819337491438585504017051292502814565733174760308232396566971367652695587315866588185740614579300196431162214346917104092330966923229157585707523893497529206722948231378749391971220476767120735936038004235418673401186613737367194239934278290302120012693753169999577057074330235133672180572887259919502390334558899528131220757882523495235616508565430723136958967400275604719691493398422038509688461323876328821926768016096436081809623671257581557520682310459523163226662964454723755495489115671281125237312425478108513166401643273106714457633360030564883847945682778068751324703907631308239312453706325497245245190581623185313213920098360276299618879793453286445967055774772897637155767438317800901646949253685087587297098079697820706601214021550538959599885267087128230427080941830099986887262568085599947575032688971086600321087644418737071443978681452832101617376872917261438807585894343060309979465091279204486665416623136306098329590783925237254085432827016799493719480472487152920766909275410619114818274975636688261406809807478396837816882553920770569531423619669559124437888342029568887322986152637412458767073556151427524723824620632960745875230100586131884365223765292072775507374451073517530802908091749637790091997252982947807335233439906048072858210028891669930054578022992369319617395680603779352488974241293793695723313746429992650512928651865556937606881831821416843458095117586830289106630804144022605381694657127811795381939574566846049130271183941229308583675488444575083576736008725869987527125182088885861649140448846960509507677487983700078480927016742876033044441552004698587196499370612648650935929667406468226036022416783214639551430688751341088283869357624677662029328139738325543891776319147711425058201827370791253907498832317470504508173229056271120490793044397164188469940702195649173110319365442164434639878688383127786688292048458806575635273207449978448246326554183791112189313833847691532789171976299447032497185388039518626557310374952462301780082235069560870730462494370666230702029437877765432548812279261952164195117943455963014545455238525596843883473619979180739091639539009457901287558984638909382216508475913450334762082127248060322177220685683211178377935618634528688556723456477095874187539065401352902819538806550003152281289051472441261856392972110637213299358859785989309723332509712576971437914575021554046688326549278073929093253445986046658027707829077231697014000897529671231486859003950773991854154850062337962686257129734872700293516015997831382298552956090625580153219778026782829859234334034134052200267652926296933448308404587376155404970875726181086070289048713088825369144714197638381772796032552807933342057959694776512819714873856454207828124121903370413543833867181039194188949656732263363848120935158088760057705845774113182237529908003381636802195254973654303308888161993969803962016569539267560900716822297824584593723512039693695734725465148729463115901084020708685024407476657357492664974196491266132873093699689218798544898217056017810554703649277982716253485647258515318217218720441459623250076471450288306954792958396411310329890251975154427373867959802734781707282626071556707077372658489075188982097429220714491286017500208457807650434501933426034015041487338229361084772031558242969767990936473853674591067634649463820066904483877559115676044475952230254812602996443373258731423046997472864492838338848847006449716275661307956694295251906154123195942300497748604822568227732895719820053793022527441019203585573731625836113382887952501144910148162043015127590215678793881562550544066594250256189369168246434023235882078245958728184509748295851985708891319068301162380207493848634466420766269852035943913902194536489339735461587407210655695637608187678730237723601815466153204791227837833639127926333851791668695658738346181632364131248257696658934847953955560729009964659817988388983015915501949534870891542911470397067424682706840170903572674259581217350308536589368181266785682128921034707545319279945936700243208643935576072442649420351170873790446774136555296451083159505327396083627869079712913278922018662011512363353461929039990450434367240722608836136841766538993381547938036412178922202244714028097465533983579518847991945326078493744159442849511760600710856990237575772768825680759928962477929063162447751290003699507576256424276333292931004072397264524192143002013053283734369197430255074137654102307225601604243569665986146183310131403281774543565612149869456453360973559748255537872983628652917412671266006061382116534215239815537279482937800991848064016008427330353970683717899553966447190781907551305981994547737450291389040161303695417100613636559925095526746821067796609700523608799514537454418660149865211770333958694975868560132733846316169490897398598293327197450717810791710866957411000986784038120342443819596906960846094128740471666948053078307452354093933899180066573402209404645827879984197814725185574819687339883894555944673850218934332024001485530245347238519667499579726774715993524629503637862468366543815780955163971195808129288237565985922353575632798809544733405226640033508003628515945056032193079593347898683225552903880159544821656541513689061910166283031016053995929747264737968635275067953988426507643196174069847543597972727701713119646935730293426486811199065493404437632057530170336426678387687639725468697105111514303765367233359246137613310946463390798995782119593541420995905096304045467762817850157064473071126912175109368129279558972226986241395661209708818147390431760350408576914051556727600022550487660420253220692585098990697509701114103414354808843405318204242001332336711614779324700829348519736627040205996307730824940353306296994657453707624745165866415749769505898545314020519250379444940322002999634316169770863493266316635086298160313713372427695866242640091507707991939462294670979717138053693560513226826647586202999130190008663709816312443163117083295711294970296558008930002575485512092180846349385258873919111629688582947790020943898513213880670876030637865968717909805415039320627054490502408031207715753255217778909940658321157085869511667502999041031172713469431926383727757713118115706413631852522062858310778440068323063976424833067153303295517020938498349892420317828920582674573204896180610035752700592720669220678201788710952208842166092829158226598184675678243518881324478330264405511252474170308569530533700352885853475229556145940283131093490959971607960589719048646019912524725949829736558633463929604452687398249391863545946460193008632649341912615146476667460151202233134234646156447692748505565057006232349376284494221122400953892552248625330383959799525500259759017725851224753901527592825316812279870102490865028689596037316375780464593784872733494894269972258108317182204755587840415768762733265456198602838122759050762370645690042621177833449726152623566013405738544169689690153880148949188446745182963275804799967508178908815153352548502876428083522160338552640728519144090828173892637291690433664493453161241953331087764855511554078779085516167332310186867122555373487737860532918062642739833315704366472199907191377711935178039039674156390353196540835127367712974727995029106946067773819441826608290815539662150013765380228882268657309714510990434697445025928216393380625815973349244096204836889777343402348797896249948186966386265422421036742885949496548968006892991481401811282023872765393534328211442734896445691058672451373604192639441266564906495171164517958668570160620219273811479276208543068179092483244150212170697619525176905265718406736950496599109199875151526515661154584829106128291087191916439528346123977348543510149580104312479483048033440161126137165090058611445222346967172182220040933545137196554244246831450233246881974114921375030952477023690507369378735559468816652709564680307900099796133140468199671092292984657682630523872692899398280458379193485085658851262279552325048535999047615045324088575232019990035761193084009111295589617957655879535219412328488831999276684556495096546076349436173846650917167182446328574514766326329492629171761593114383717900936745188575474632393100343312057949394249787674393995027051198836243763391353982126786728664176647564116411468780259840445588705033694139888376095932351042417496055975886782574696922111804740999204804508725516153979876158878335186781883660635551645630429873941768552014148517083754503138713782113737685747884966497720269089914808833605980635548881891767395392222752837249827555987552699999828288410840078515723390424577024635972075476134755264036803901267424968804769325435962120205943874801753819302070625017122580150226395008430158261031147935674588122049243199557967679192416667674217804678049499487440868255473772386768134489547549758610539860197680578092291438521444053557524267849293148001014135799651138882148382278889193340558881911158578289435604389140699093188469203007487403274544642329499367248727694927631519865138377928386249123681491315567454667114886555187526354401864964544228575000140204575636918055258646443658204274035121630762292883414001251323323000347468783700936884032602224524180703374071036504884723108172006136598141628267575337272940054620299428268760837766864645939988610996127402109805857163310612269066256988102849269551628441565520850902452905539574372644820635270831292887764022267028847720733336792476795457084903526466057700092737426454406847395256016607021910794331159829858764311581856351608183900603482607529589111369985242261057388466179796582714767863763921946706519655122752138013118991774742614635193796811331157106785481310773928657310634867453512636438380411814383312743508239707668892989335891479524645895350863126981553138402506177414440512256588157529077270531436703543087165286575143571879156097306501184926932206721905400084402010608325032028826993500740930437643518857383412269602255790542649449494364704066327563010451379812328622122433691423012634432447026835558744733528690745044254101345175836019536377843415331802923756593678786220166398713435938130923405474704959168461984191937984421775549648887047255566028067787583443787513277238565031286633507951323523029802372741637196795781203909843116421304710233529007899022623762117372714834363200311568499541859631414334618419506014808651538957001993709559215867533705915418188110612539396952161715076407014667464541592932105604110535635441576241308956700727813711653744110775174388021854535090008839491171438050691952048429646394927662632606176440026163816337402875747995471691698213326754187075518357612697511662396409872564199286095451431520057691061081848468756759310654206953792549544359272233247289351816118731301959555316424079011664055029515159169689663334664700537237267335315480094054357765335956073918925416924824421063579348399399104610078107682079751785019995989431568602733452962516964401447155579596258157869733483837154512363929953087132175854559040275990140731302633895779794757937019597773014769819406333373012764713628558562511790502592423564556478887031295458341595372964554232639008835640933737933499739671761421808218124927575732551980476010295681520562076427070245536109634962147205539896960547139757528307254379681023810186073444391308075808575762412418549026539142533704157101460536437871324523033415098062765218263422581662586629721282687223086176318211625398207310616574091620616319648431011434129622389452581959995335584895353064228241926474651449777071096922398543343435261271009782858968581537485826473634781742556283040246959784942262011549239452458326032385235347533206304215797155661632212789614109396674734006702906739486159754784679623410886964711474776172356234526849703366534852891700054747880027764646666296352105848563007507043532552254347419168851110993769393098236158328512362682973146504575661724860217879532967880706995532245586193082331222118138815617126670421296054773658809727600145427176768662518947743155927431160106661530976762947605327966088078078006328459297830213219331029970911179322058840944086708774549083298652796027604241907581126403469472139307166606034206587879015896911054744419987591245631265402364603956431729512913508647826658741874572237139729323093293505083024549211083503900716027001082046804298357808051708850079768626533981385963958713050058430995746352299617673789099766154432652230294243040794989668860418124222557590525214608891764748909890635279520950138483038213775214059242936812503971135099298196099859398359184478599101886387038479601329443890221603957511963830538683071013942404311711166700318358827476755607351857496832151493995428457512856633893335252217472979043022114274121454000799970029465044315177404603079824827520729694017174447610527463386692273702654298023933587982694500913031105587920524877300952714166606218990723661850131593248660556536573579895832098286156071318511419754994146623741904125415947615641586610853249144636064075187811782745855590315260460411411717252585869517188803513978485520930244024713320067326952712714534645846882766774849561488985097788753360605304690252084579302405110378066792254142075901345506087396248689826446251180676757730515886508571871386953848585110182127634783199853080203817076536468351373421069875849711852867170454993139464673086065126591555935650243639547515227673199171833560246581074205123566545436268327068047597421656197993972847767913703576411086382845768593984775874726414837780791322190105501476839272496013735935489746540209409161511279624121520316557098336676983796167270047263815155171312370064417038849186851529529908712829686822639997030679773730563731858447457220789923355587338404738818654326802864462758179042252661997661394581214388413646360905553165938879256082846923510542096665959358224854425851890522294468825839928514722337231889759640156860884630431758848087130502071027377150271497782390504927140894480255276877624599661709037010528718277094054134471874422055745116553603208845680148460897827467575174488569974528088900309188550757333510719672033773038437591198319910326352621956280954246184396323840550375516408350382170739226808466165273346846842454451288828002773529591511568538419769698559368793190743410170596905435192824891647182189381766709782218593893516446413542987796810011664906067062333823659457179759373942186525971936660032114666707207249835662535243424900152321097360860159384727868093060697908299119855490726967987838296014091262041500056483884946737817237459967903379435742841437797375719064443255642889216581671080259582531754937501991755941213368536361132236012179027646395476209190091870423501446353002451777573115759470317339871595653568212831430047435496352191857293265655221971682782514450272975844283747199589894057762076500682199159659273013670838967738818571328214487702454195578540963276664822381737315414873445761206984315350381086967738958228404857216131290637723550169073265463709855754571792688276275074858271052113451327124656013367067358407890435109175789958157589010497863644627051093430559173357722469878987027329441372191227319505095808559200617237911138432083139045052347419949224380038915985270129573067108155376900173096552623552434765256874871642341598745471902674762849220787647059877608519038235108637753208635089544230826296187556474504143732889003938079713766217805566753834357579678142261985307266533492369473444307906638214277892630803418875201143898830920672227195966904530957557293698381438776752062460298759319026271477193634345333032351910788928175039927234054251465362473878265242579372307149867472601392570963846643095112813939087559348225704010554201216631537568414970283955646361988007230306604532496112576101246585174148816267455192583014958385750891201612132766653445188604124203222363971975935480627492372607055479783745131910893746125106265490301872424599173839168261679940776684086085686963580342965756177535146016913897467088304255885717737316386978941390391854907079378540053032458594773608350451511221744603427774911554968197544633256373273068776470249347871164280432581454052223530072997748348874232767302377631073749572485737578199300540563272279120838468118109644092818302577731530709429967778308848473842364484597714484626459208860184208681685254218211847496686373809452037650409320087461642209673241365323507189380983362688122429164897200858549704317044513674888539843457175399623520847624963595367264711888409463853739851979157141376505965646296568567125186783243419727449778822059431463761045714205015373675359726527513738525064333553201490163271284883499292539412052925714999576504058934355819945256077382264116265525756025679787512158302739694951307150920834918142815439849800470662114468190029859722719834804213011684245372143024830544581621521399963508890861180950884262464880251471300538947824212401782684457847676305295677787436868729787832226035966564987804938663294630566022759623218885315900442103855742412445029617735912263477024180784040371761282718364427122265333306532260732496957149859104543610012370939557140092825814353221852352506006154458782823759881159079854633273282496147584356402703463264031300959643417550165321654218877952774597445147140987841690949524144080652015304833229661687089288131464635270051772917972368530124404777933083114800883432569127761624597087298790969782059991897209319746924640366274607349447013329032782679809111850636120126020530629979954236693343567147458380701662408033757910212061467633669704938935371810986864298174241169452048552422075763068607462227297222634407974670983626323136960895878385042794718574254441298866191899249383096438194776081240990587052170003346864086541362905722656553464534394057894947473036103541384200262816939844876740268639393250585914229691006235268110763937067101564307565521647714956605876306356918750112345904125842410298941158231888011321672856750385673744574326144412640165968194720508110633384502733066570773082259464761468835545450619249644508137919976723342844805805513349149202995865579542385404177719552240492058266187688961878833423498988804050330412868794144969790077165885062559267868073806918702087527157018602668788514339638015903659485056050465610214383397258182199822717478835786586611095203459319387223374385023523116490210822197376816064663814721812946333245343002731244409463235662297382190185573323096050804090476352372302071741556508387174103658002974304277079647065540791393743884714925771978579684367757909525154027374317243459346971264783190984024713391158039295996798450578876425468308347458602547448983612619792490647342001520822846571512695236099049074158458588948778535021862673507911266968866139156337253445710596637257869893783517989269315584192825633690327318923776198340635244820735610808002290165550811073074476472309977760429985720811172624550861381101552764027175514294104804929163578963195814157566820864907558923292504193303716898003910218630685382633177171172316627507002874609426498579050925259855227377640624703430331496382750627471967245256035803292184422009294164892216571182872052494019278256781039560480255720344736414091164147398575303818511541894056749170892085744442765956879362478963007070081093671630286780382239079057767304144921239693815843462316967315498088935763008822298523043640728223439416787868023396460438248463743016240657572312455090993575800204630263756383103124751831019642717953205294983706960576649752824866695613928193145702310797386956929932620031055551218523549197853530530920479658172288839892182020994839426323817655453836855277045432079261183308666112206412329615160941236697198074243039950233509053811877246738421748688753671941032981026622281176059364757395863560003249955136242583957572063051234699890469666963901424379788514788966769526297878692188045379094673945595487673029890225592079222270549165364382206057582039661181745715835536474060369125365771829367839356735242622347693959310380915025410806606379049764094636764167522187381814018102334843679417293961649997966331994484229402547359957769013246376761862961395690083075263386877110155456149007444379106473746470947134735608245739464295005453187022698290052464411001604671255106989285476534754872186681077347335811248855621560762341183500266775082194250945718693776978823431237832254251469946651728345757981587686400198371113740831749879912326604032369687859573882841742627881736003314400478265158305994535169266580024596362110289706395065958003239449218476193620036283105974076947823479464923986901952441575684148300981640814020752590980510866702175242273947835316679816202141896264319229353669378185144606194721224936155868847321433259429925113186490203113869800981034324548365295852381529181423190630992468942746505841931704921145661610099315697850567030559652348283020482915461527081921622007234674142506845263483781067794814585004205914726740213551422423634867742004764610748875073938964689296283920103305478969009318772207616471976209183501934452439393578920636602052001355917932644058072924917788912216415201109302786038898877998218861452742244157528424721839626545395454392820439376774347092569932015520369126582239404815538598825671712540871751819782780377344583517120036309498023476362143949247892338858475584853473773582128341762196379150953819092443736182112319050126849826459353504852944856610012904724918033220326476153648262006209093146366411817112829839964246499948720616327110641539304841312203894407256797769188873786779006210166709156513919158825797372119219155739962382518008397942733731133186756770877377639614669595355775754933099838242853475586319250620702208068308246764782147336769878313860638104362969584273766003345792266487797810803536328388199823657879030632620808408434266963371665018961275995686426141288057974314094606301808238559086555275397318118728406890070423314084740094898205765308261902733696347189288001493732412397710380746460211780415338398149295534208347510663145666316682523573773809310142988303031856318878606303672257433491090872687646954132058750514112029288030591053779454099668726644335732956057451357195392823188117278155025604594198184248543863089791966342972031917400675978979547358166212314868738703145728229795054179563305756519326728111739653601743409154618424998174339727982837368692338725061285055335812855663348814748732022978514898396006271409110130262521462984783350579712771866426355045692160753122968197435775467683520803468640963663497854977954280289200244249279959316202012930012243115154398118073205487474286917813869434351856048359913231441379102489318195013992975644271513799133010973535171032956164829935947095525165008943955882486170482541371444309317530273467008166157859180800870729320384483296912008419345756747044659941596703239249096118826794888188387310203386142999937189830557996846361359613109071184023997747967407612886715353801884905561978970813932721769259998542817286247648635042763750477218360500479807267813242951681969955432288241846771058755475766894721312710403337039265404827949380483513146198982147781687038083713901160447285862220135991321994098404380558489011900907988500702898347820719309638979576923769975733713772299845781130379026980167908406854393748549537505652604091165516100354992081496776213872721813992510950890365761535452852858518310512209916694098119279282249927609732721192388250060340786892372738251700644687341166167908621144977069141283324752067729765565233951572956418744936911740415073492750143614255998454604741964352542571945345930610783110226529834476928748754002715316487369906933841329126403145272498172389949122926532827050134033405360478302304203349653943406750191311329101123512516399317405368942088598810401562454088204621709794807799587731587748726927439294071610070210271638969602966747340910625690655082410499138856719784490799729491754845781751290644312627770883084736283097907907695558103505758717958702682802527584646169164213802388575572591490802409430254157595642421644477340821280180038603521738884583906414380328396594028364876099197526697217417773631703151728904617791287417915565816087128753504175758661406378796528059366383952145005642049887155517552472280029665266388384525681867937477041522734669057282942627338657756896553449756278524489229898669844365743189191296692681543087800803618854099396266263231939340970973033620319803880680057728637646400868996312313572115208282791240561378298650218438386082580070446847044401901320397235516240887752759763450553257970997046674843476695598653936410075394010573668106429444914712742081650919567427967144577282025157411608319577316668557786681489922672770161618635702794210493363987643072019889955631320044136707776634981994973306270140365358319710530835261826793917827653708676330972620711302867483062323261826163117774926988337067822160006951562725280641253929218107874434830929082136200316003622101247051342578527988068728413712258969018982774636204046216976118349656141560074399243373844882224197010296411009020109584189649341588998302005119138238809511772668982515097173652963101051782716216857573380158328895121105487472116341577683693781868049933943222880681478963731002380910183628877923197939547082511380929103938324479951303423547190493251349976511441914165367228950188278420682739605194055633281833967371149131954619506306017145989164450661746271656062368852396234693512403094913630946748147499243070117945316413379478180596605494650469738032556126044120011641792446490843828480798872546310598468990470471097052185360829869267037938256025925351196496651639926865933155478390978190872555714714281785771495724576530539672410884580860623605241186299370073427486272962248307965780176816293351525685601879898653846943485291933922732991600419454114309955374784787116936527787349921379941580246336256898067508239991327414724690378352253102814790416908840997971909326672549953398501022495377320484849927489671489061716292883128361474322023932170337499893207818031604777695927190768122598770510890187341084242365514665107343047813739974800775003660767420977199223485600945372631765741700956809505599753810364139827584247114510325602374977229937110205564531325653812441823171578240285151105249258899208357350576292628803717395009415891600945415623838951770002814231069935861843255619858764223829158967407597671550590531594476501739795450555637346525137527796108660059405116172621496560191582669150647100727767959543693900686063811125721076399483761782351730177535626504666584762238148124469390892040941842369400450659629561631498273140518658219103100747107574726138988507313440825559044878115902603150841657177040111261132442961854902975914463448961680284527574539379379906106717902076418791572602700909297947269677915910756185562187653858220573736046499929360511948966329140326786270184004532963490403623277698092210496811626371458722993460769420853959567555325049597642142933940523759519202157951443972678022626597194462057961074399251229603511410737653493533490724083675545167227951152543603352010423316496542901576423436374819974115722049326455284947702215498155423347541825388174600717986151435555663367418670375823492454747201311981066089813170179820265644166199353709893012624744783568383570233427952670619172754185314566504885094312448655257707063633935867545500895267629723119648901362402617529199475323857301120221256465122328032698145367829000679040600611417285218634138744222830587017826831395025357249996865026368789687923651921315726596309459229890182727893327224022455342254906021013155698949950731328199229919274708949529896484085990933935663305897659002033588168499586344883631420952643876456001673104551553432277223805610240890979769530107094508997206467090601033199403420850515371452803366817044667856111843615974390663872363751070237505728452885415429211520628250130683747666810233259598184215550745522903200467791194767043945312086687913735989256235073350475075983340987443175121039812483624806355453930377562588708416379335553519687042268489378056212498859002658067176714043641355759565236350617093083739770971914133620209570536860911841676339379759452081429034769871754847549122968734691979648744116579444878755332725790270109155753742095765098652945512477519307543246780882487871629862865382247967420965694043212983649781873697763827000990117974718176533542952085834274166903135056525861408524502571169936825344623367700155656702776192137945637938086443211299495927557286363682710864109695493780626670862704743283207452810738281984662127467782492193030846851898886933233473266693775069240059464662483522530961428801028345410886664659660050818246324986375919086641708619647511261013689706879565292332050030745174767051429915336908975707221172196048874960591082768340511837785835094051890670411677700145043055419092026414198925809712179586557958379595523540121350770747730367032780212304708436910197674239998565612998968509759411920360530743730451306143968328129363060801493536290978748104513299353001065603455165754491710873202652424908626059978587504984711833782638097931076435398501349233591943659916237855121415766600703120637230495305027716433213813339033805765936665705048958137430632930260069689669399209027710962002660334305087634565410330527671762016512422790498187520609996548481280245687140534533778984484045553949290594136824899270049941577080860237037111645747200286355012377807764593369015719009674409560871061620741593832605995060476496400411894925181956770728787951671224385565709228448889162433427016280068768888966700684538378798720616464629535784960001265146510987200033452901821486399537783447625048508229673949551996199847881397802731113194836142234564141878370854632714294751693500555736880020315709822630948186570717324573946813810262615656714808189836022536986264028745929182653731036972143351200243941213706307776812754790135569795063347620408975529016423956263663015054274459316174404566931680402465422086263019159618568455997285653266738939856441376859897234160026852486607122117557038249680002712578326749017224985391366205333258012338578532140557656719175737333199899418567931122311164069893293808531424649648199008751366620832075161166319313431641568231377740797700492922450545480399499542975977956360802793978786962173192196988840212512732123396617668796004574452888515140517579657072106757084994242772847284533714025389930580822100780242865792065716186277655901448620582894866230767315839840368894722533246369977008760337099277708459302646675365168606668763291875559443339084940955136338447138339744137804350448247894622359407329085020106635877577599373935121338993305748326510042672549535858778353214570111261836872720891536784062029632577397040442368087441834605012169752560341956086472989704507988060720977256608729192911306834607212960521068720717171911212601921503496820133294925300768293842794382888037189931309014617963612317038652771848134535989806675199672349018064764621162665964518704632684318050826903533658509543791830380317809661462748270209429311245195574782645160504575042343265892572898615150424393274502521316264531438701136924023292229675174619305351201135328595593854782182263937324694143402458369570359185652870794363095967193620384168245712231822685333446663603715905814380878577760026877164578579154614222172121041181892644004869762454004677023520956911625112954187444247125566265644875713676113829129506752608929331243973858313376276900326744753874491655386265279620233971619870055375855718558861496768174978908831047041034565653268108929103419162695913585393719042601447069903019743246541852181734140650013934870255621858283550106616299000722535751978599577714706723117792764014254966316686652361579922740026727025534719982971247235813042027930290804436062227701091848785813003693072091779427455304629171992293046469129015862588835778332042893782137828366096562129146355316298464846362309656353170268912753473218951232331433862453033193257522982696181523491612426363268686534167325170838733033611115768946997908065513326422057548220359736007282866878098550483170121166276118363837781895113290200681934056795676118590926600185908012749590828435675904138866503962995672784521993388026361008194359205100810395387887189151393046774684651472307160107451762463020954809090300005979707936190907353519284217971098586105552107298095224760876382142328235656839387623873601772065778758967926134895188530330477315224306664012820662393562127395596663813206090675647677953711803622556371282764129394593389773002757280748324432038579016573614896578210770972135510457298994266410272523067650855094990435455157370661757270870910199368926427859977969260658077488972413464783675661287633181698585961522917536993144533317270955971738316391731925972862085573222521534750795964506280436376078444481828868016152989411564253947127222225889059330071118241893490191146226293856913713811406647242343273102452413856385524087544781255166755729213583960972956596446193385458399667940091830726166147546160377324426484072470891050995300713729274428068196933755916823929404933675160543966764861481320784831225140749502582731554631979474587956503970652655121539977391947048145665486317995487157155313653472361401328513955261709848463384293520347857628422968834884579175197468270281034492840215152685671533177603960290539197634604886321723773129512527430132972801904856384814060130712108604638166486431577301979212668375401218843384761928512808486583044305238999857978095909213985802052764925033374299991884554641387927555391606729814962692808025532070330436685531647604414726551846304744188128786637275248599810308298588651580131276649299344696816780899158411811484755492616099094620814804245495765369759933828822673854900061520140355994864703036648046712693110384853366629393803084532894350163804732385572816792624639922998717050900389660710053626886499380462509772718732878972362659509679096449323082281310319028305991164617832589196147226888120500403659412988422047050925297531060240221927765187795738711261045785854093403182413823073928221960008639842016701886360946540609262183159822809993999128767182191852019708640595372092868189905245858405664695137064710881383527545955853037487313782176813241585270045176829646045543981996561107656531095001571421761225374091155841021934967870761090006519402420929630059343190522236435793262326004604549011580664168097283916808361903747590318993182882456333266719997154759239545298634862560689703549095806810916166090598266225610365250489090648061809977918244188396712931388087306806414634684344422118506358724479062249762566983679464011918099837685020509821231207386167099104183623805438140309061514483440481952502087458925419269084443013640558880090342188541750735297394353503321151274545274845176650245750065975156191886491419195221114554315150564002985363995987221220147961376802854083306042547722972444995434339829060117977274684697993004448651220944652306490654233638473291750991482832422309389526945816690985741677149811205965259172562792581966548942911286747968680835259086274387192714184086971734049185449245305258980319723840618205927430732879776746905100358506286514072613308466950698962395430015077706110625446713712299211261395017487950027469914901482968609693231442956740374503829064595351464714458750857955814238931460139311345108997392600822060929303215532992331181214380604685353035989180231134601085430486766280532092803000848703905494160236823199050865970674669520039314334542779371494063441956590748808971789789111453421355238888086935295068124976052450737600613526384564750337514888956180812738953066756083830788763224273208916261106611702822861014482423712728152454326739139534561442150165501998184114439896980292444223425800793988070571707895400540492498679519077877219284550020413203604873514945916182716596699444476285689086130733386159362146212801664410555886803265313450037988188417669692473759371880978969300320133378676332224365317287098934241439115279054875827492446596175596935891510246283383109286094462837396611399090092784349547452535106891282772843059829854406170613546875853239813020550188663168792742007927241477366694982367813480857480413368558278260343054357616336227654331793583588080601156517834403211858259866455589083303521499411004050021940942179759595862969241630121311415997442489342680323747035784271770339352842122330327609619164323458144320209930705638796600368292240709685562786013118265099756475744659565336034217663926063520936600443211130569568328572820085136331133233253724976763751175813934547479527505015587180264309674798599629350167536510353126325868473283016501621508252389090761719942012957088846778285744450357401064321750759865082539344824598125797551532084647496946875552221434362375758964183603898227760262177879678850139595919836663368807681799348740361618984703533794458799459431512204398095071499454654872019009753319871449519768424304883019270019545719718162930485101787856000397679880979605535671002652029817370802301659646038493652407331206633950247836146391510375249283179614013064516590809076088956154825599381114524084159991023163537421922830728082959389742633415130352789163344468889055639964554144482463559923984281817211893836072614807975025592289645317894341238686175885658207149075978132414212434945086979970752012557880504240845527778812939370989607839040853711647959688282435285671616475476982828226345076436067955283477312217195682911883434531814716217305412328701146560926274114892417852980408184372220247991984770316189941395023054966611841571847836810501849571101679892599007785134126095467142022768032691283118565703588542973412009061976790380136247193334666035583462609506486435125715372087544610572853820038283741425677441048057048566155293478942496577928117137414720970668326261180287075046632348005734533678643452775567473918965607740843338794020563716337872433579747040784478110808242429932016140808224170615400944301771460157678496213229955801712280420925196686674333360518930619591060549314410524689644416890876976577251142550941806248706914235497345409884615689486509650607330057896726786054079075132673653708449983674235843523973635231275587425691398075122250160075902010302693561822472940113349920467909742167303550195550503491443474910333475185576330370512608108747580886818591311953689721864079684269743917214537900824119444367070544827187334586815404642328685819662044723168599328031319673217983693204054390777651117930306986420654273349224798766289219689452619472420294870540685070891313365538704665756328775548808544945179668680560992819766373416175210141817715696328992311991516716131918679328120318632410317652714883912704718638770285597388491827968207773955631700519163172336545679548853796676054726410407611067711024388840723028319693110876178419884479835413910646352201150191753101852369194492030227607860061764182450020027376605928056339631352821540119302613042092896504958791677711951331421289649580648458240177965452843440178226761570569923641197404734168427997433652039002902322336994276771109006036773494904628087198231811853775333628836191151420170402880432867685516111272763745181606430587383040963544800631294637705077520439431334367093818163739704776179837854060343112927716541161026099729749091195998041829147499829283484072156221851500296232024351848113823615210734793034208992097010572973199517458758361816005511788596083157007358191811363565354153079191893459209747645295160540818159547094790652548443170850731173329058422390226894438149676012696617285865544132426439062560185111608801561761386328840561318352703451851961251885430621647669277067723802282360510399704604718237986562071088424051296140414474176843097835630808101727674401612826972720020472706577532149814314296318545725277995656854062661689792531272823146306609924308145096356252776691733374126893219595216698560665485204752787783961625003631646280610570880540638019799490254598696916768774322541200790281069762437005526832996699871384603708387117815278337555345216442722528455332153693115362198878668919153541808859445390288245928457142861274773850264765772629330792609282585777398988540178416642650309341961449973359557775951500058312913604374286816842990172190016936101542883652641555204987858421936708597572064927626655720608050774568356631547991477194371694262473811358822177360572118254438765577474568600784153510203544416427064384756369251848094131785853539769704575398161729639828804364323308073129171944530846588595552969626535710350016612282938575243726000460942557143456811275926404106748756112024361903095051636980031889500754164980917903077372906337436577884298606268468137785466217614933401931512362296766279690581155837121637681353148420966396286659238865625292434002863263870305461265391619496164500724960372006398652593702409759490101755841338101651193280075058689380764840703141488754123850058695493914832170080142999882485297619915202383135274971753144758936969421311870514436308645346763232009358319452923139999985436854256575155380358600938724044967906196309792026137109617461419466536090173362207331002413451815144015097161652161009766071593630090855197342162236392828570906191669724382930483518646290159321586974054193414064203454589570954849788111265920475181688125062872067210841321594674898739765065106096726173977719468243058000745377620316784789568955593558799984085783780986125468566861204397580716646304910749129202500619388299807525494797747329350824902922263684219388470968431598055582406604402587595074966768074719754011362872295895882863432429521784676719293010042176114154483827239293767915660897259001721697766597693185412439091922171703563059960594982390067853020037880948889269338105926367229445903451151673441420344921603441846439667440153051954800882251077415223397801291117387657454742741560529528997203575826906330903966992621108898502133745385418524170470156580252516218668105338409353644027020533412415931229008575797662385149666306897613092898932536820241017723983195045810875646904241456322596820325848398687849446440049368056124223108775078719067399247499673444366753533405646801951861896064725014202876658632615507121297535363034891019877137498832561932727587772740998100158918852050867058229763171079729108870602133482766129626363649893984619655766105767913889657823726387166228243079576291554146759956233720234599154236616286616158493166442400817405404414239542214132368708982547562449863982067988992846971177013145339436466337500579562728190145269484776283063013896528926077614083818254154175117412111284384812320194513520467640564717462448667549448105479805975923390646180300804922698829903004730235361760193301157666783024690612164713937120539174659514201374120328100000265222857007129833881406636726546413902459631505948967667793929583034132064050707028638404000276039894272221475524892391270534974931442204584710190751318406127287620225049286534266060320913632768169830809328528572858924158511454447239425644914203510664652778518168582459755899196607532313039036838274333360015057573498782526623815195416043639983556812526966637435318685319770363512368999534647040618872177342922936110704789617052241816846123348401677918274338789244917101988763113942247470282827257819722120632214281679460696015593183227101579398328449439449298987532819058951212861562463806127947225790305804813053616783660596356887388313669718731597117476113684010661689293097458604174043072990958661064632779135409713993653182832068267689506103279326278984202635207111909516644545476769675895917121146909200195368715417346145608938574392324874384968290085913144931997408033473628582443282002601221457091617445731412023231354282962742674168160922251007757692552947991649246508762956194186649568146989747514809300430266878472931386255855356722828581854514378394806293055013153904606543077266360023421015286886474562208941139558760893862609518606327916906384009400708567433859284845986618199415202581309902622207383931952410636969764366805566773052864374225827223917490466392708355227597758161348589391511301751535869153987343171377967530974902103579933262761924303223473538116394271664972938654439309691583736325756651352336814019360728770390071997770844353385429302303050358589465296803705913496939195434053465912101073072136453818009994615527415291459853859675090106704072446933205162200180927057544868889698510110484000278902932768194593488127649291938416577935856286564112145641067756941360218304768399761060198018536152939728390054234477649942111943532455420174396189537996763642006552285750770496467766970518055918974434335442590324304414398594876395361829090438891604060012828189517031090744604619305362238333968744099397700702712058268394580684165375463025775493608648841773190882482191341489552654282895203277807275578559989063073574183589098510033294194567315385534628623132021540494863200780510496390251623592265292103616759877367047114335785782126459949421425424543219754992516199608332685500652980626197958972990501330307747061145302067353966643057065663295283575571439131092188276028380258933490852476278447352900779808565265502088052945128345856915261670848017525264472407418897246855758561668488240570021884822754413084976277155196454271996335073995481972190430712700605760234001604980972811018286554686326045730486626769403481277286257596866438000637394152017161556313261662109559060220725384875820641742078190153193154033148981145661016664549486788598867594741492504501990138532403675122852445373323077650567974926175796832149326922797213023149936034033349786336923436709086089983592236453789144044860249433793087726319168496527964575859919641836385415134747326217029561937357246427928825474107921920758061503703192886392064261800478725088865501057086176628995809413776481604850700844712028867692624452707879006073812957755561986740633059365749912270201416223164342362786675977522784083543491245555700660036561184636169535181429347150621756672151585674463024300242425282425481530477236480644857567730357294955870576468317355067520467901361098599943484212078389069448950321239416281839249622349505108016792384956492854697317062492049072151120947393437889094779117064756604002473715620802279098506744319510552254988989879475357018739673821376302045807098189492858958856260144051664397295709876780679699511590117427529130689302334962993036059899136849638252415715289751119359796119477643951863397936222306154239534404531122267064420154200520519472222897782428404696854488179902482234671900825631572893189587133701560534441403648673905397388116670609377330657041960175892775975749864039755927785715863051993557146084864698011240352023346500428834640490763583862237199418758675608033738464631666078503799594778529166685877051450802817862755406817109861776299275783087083069656017886272990340953556769116325706633552667914277575753579914992987732843030939029808108891089888574760172337728048834315854950214213360149828700315443112552845469050589734205665902505180118355692512829102078124788107703121000031218318629554234123242589016397308682852357684628577139860469418498733770486851178752748393994668912777331493669055263997602823514881021469211247623552017785885302230235137883431441217164178679536121732883395839912184431341788299988398444988320644850830270880068034962240609207124013609953640146853364698121542787991778372210138669237413274925380284894591974564793517435965423561713698541048665819535126632198201419203149208832097185064547200528934809831200858055710105231130411289229040710657583526628698968340803666308966183661937127914366301000862023156477572107692019176422266436575082797070807936377289877468363539689555891613991200441706813759186769936870184969646525671165015527292146817240162993276819855522537328410779429162328445202473452063374479447385750550253862324764806530844882107481282400531817319397456395650535562975285620896153052269148910445203622380361221229659167291858945382657995024884482596726529503595238598093257305002243243275467936851421446406121983392591749738756284809132258537905260777798797154446295860104017762260935940269147082734444613941954209132693539916635731948454636287538880544271848176383519690194962334589545629405233632597495618560603614925093778567147975114333003362368242362849774886915967451708981445309287873968385788932829851121603988871795625064397442176678372849729827601528762715105145168430535695299415289497580194631190729155339233468970243560349843211812823726792942698606496040197701103656324599735233624008074759800588587049221581451013103157790800546614514945339888231010168681542534633351052306363066301186937806021197909607997922399289949724287595453858436143958085645139050404996379066732482812476447212471369843036539133294957889096350869955806584982042531666953771567032445988579327519140824729949282583410735088990574524183050953105606397765892732079250051186136920441912438548097436608873056963483146150197045811463555296700236467608362072326161362219623738100648046445690026986123492597583200716832180054865529826689471936213555600068989142097586871370768572463420421734014263623822917695782218060120529101954237190262577940178893087451534364699810442859524263053966651216333280378655702427887388453447075716009203036302198120382551467036304888584964624611196068149216936437585219666143081184471273322153089460599251832856494916372443612131390238764834372826781404710748557405001650430425326759867682507635286019651266448324590046025684151301559011572934609320265597533884879630281973733716441102905763593927118010594903659229923510562397834952695379876511318595022395560255490384230700609341354856106135028167356536166568907479364851049946904329997586415783751844788552169291347269568910023909532951016616320041234532298779522559572615343604075091250131904091899825870754885570601531513696597614732264668688244659733181884807394685650608585104020270027597112160395187838342395135219285829010547119679703829210098120004912295266894409206170867088148214280612003078649823628180161021777875588459387849727872837742398684682441728511416486094416772252014994190907741298301311805047547298339134941139490682754449054940047574503680305980720692521189047071517512783976960089321727234282591309030421985939397207098161762063296334240219005776546503207855200734480420797639386876318462831624747803007653453793487628640597537210406458186483677724890376807360542649575612712006472251315707534636950966091700987721028757199744525873244478473280653755948099134389454391548325492437934803091624703099656028919628524160691762845142258288400529399350421983537063835070520442042924546817200262806733241905426087602544663145086790855763192436550244113636215721309496371597891102071494455399295338312632029358118671273550099429994650228471718677145674877586389134898035873105163948760160214968450006730599058278476836877330771268764288957455627939992769669244599523752341503344605833653793959206405083591028379311694358741798449912886212953007135256859538503183180325564589637490689679890079234258111081498448231698886320892990842950555847829590322902039555202544424991799125213215485005869498896868681090993758208885683618794603054226276392191874310833053302605009303821756701735610357908655317987709649812170770872164728060059962463359737889918775596211380223932139580852706398899755830209097727530922736042784451142111644724103619743662244542383692679508920550699028323959249688343427419173897563112749033171797623246693611257541168982763820856544163593193768681511673710636725760127581608979539838649424476996321987887621358884166167655308371944042370151668620417358655641962518626131647171819944028328696492253141819145980912127978679467652483439397581433803389172250374975381924606824225798704354608159499311611801991140477231775988929276010437303788678695078163644397442576532709287557734301466861657903662848076304871118345865190402946070897096801029585424269768705888141048784711196177634830299309554303541469712853798179207562154735203552726987223859329521005346007969336804676509313315775836881297614623651368134198581263450136283905943224312006381665898082320402494399385895471939040657090913877814869402631423409005626883311897930725163101512314773638129335538360904374455620440052117736979865055887097832461630161378788377731922922703979464486981653506119887164518099030766603745308084266630391194242095244197280093960357330660907994746251420084613702811211799383674415149867781582638182557925176642169736834776838355217975678060544374536838596155803313746305146490613969377031574650738360360886624117337933572506790606575389434393449686334424512085964410697493556021370177141088285610604859415390621387053146166153774921649899948765023611715728283193591301076095189999353244630790712713258046257370601599064370655910789602461354782854345973875777516755320447422991063391681658407633613317629503095612977237549864895198766969468402838737375798134891492363013965361192173943368550276196431234108859565531097131263520456276422776140129792355979801112212450484482093742422530760337965379550619619686060101423913652485293774326518558097557801005422084396483730528500278627839959489504627848983116682079250395880675526771272228644288473998414151769980980451340201484879172483591562173201588171757974551605043585734142820638134956052080255676608568591930374384950057423788050686356014688709537166165459640423784194736960040877877567183501243390550406910444365498748851939238269646732205905143796451329209960252694199723854411253237056911038979276278991398908262770971394071393406123939838810563417324272495465119684158050087210213648428073560152421218225372849823804649603792563305026847362104448762858383368442576782912834441459514044298519250860637641543050481283504281118078467420056567940843928654825759965979709872115259178311533785670172282257929037662799010040307915870289087159554291219363273488669955973694987113037535895542593044614516124902778398965517332918439371220873774582655021512996593215126262959071531340511291226062627581909134174973247792597602795643833787709094243851581190803121622318978039394888809869463379105026849241171716518766169155110486886699667214934753467431347010135817398053839457961148332953155511017445948996569412873837711973137559413933020854308893892903612417697578697357992228390612350973561630028125443919842044235858812192696317056491631208998066348698156988974755196427861757338566629784385973723530088290269700745509239790605922021818886434857666692061081825253314304384395997121908345618967961182095252470114382004072790184954449919071628501884237787893981798687028830929593659556576649867535984660125840659266131185726567174132584074400898930165259471422357598016862744058909621742298319114230015135021772838011479230485648187596531330946252164844191315382329078556110450625050914022774524608015711703375602734130848885954184310549455325271022625249720580454546930685228983765321786170610633207021468521458587337972778597770818155517828841588751446907913271572845537211632489024243605518341492498222447634749038285088428733838574196618613730757784530239619644993362184816301568511091925158187871621264330455128722294308409999296419464737567459439163993912659015353942269627327447282612850696723122881926419178162286625587344247537029118638917191463038159123491662038826354037741214055088162925216454583273947532695566825643789487728382423117443948798479279782549000233065824539999127009850903794658152349705320283534175474728818039467470850038124976983680307238496394855822642322592909267247811446680581979183117231515809023379626738437199038179260964282346777720949268174729987356443795148044402447227665790671802430035049123329038451726455153342752555409781613652924950416843544021046406336120242246889569770178717476436404909451127294925440329213389386328330280785468502897565207379278793356176468367516359806008863821160915198556006772012310269261225489678042835589445528931808301454236907733774927345535096030322624128629322652779240022013416276111502444686101916024006487319238202560505991268939470890987933302983457440994296744477639707254883482606980243094025754332366485032699907253991188297759200503324540312249958462014338650186226268791204513057056329200878125686369676756113757362271860648914819185118661357152972817208253510588798014625904550674041088541081041699974523826342797256753716544323750104485454275451090227876960426366376659382862983141045117868892914069042197780384803547034968685892216724689845036580658664949192866927144269248677421625283513524838143908020910120295582908198226985478899913308020208134827903310523638412835627116601562342855847658844908796412202543994573684422885206888155245469037912185324324095511835279685228569249322688013416562807443018777292060081688439461404017357723583047310749368675580739768205944227986856120949098312807516978472026935643359159124427834785266565291039045862075226463797456840337961514742056734060885558305974891894102120288548780560959497160497775334150281206229085060366755231305363783296870315664957871339221150248112830817144924348012215718793495630974499698682775039627779324610767932440246696209538173156663673882562679421146920614447999153346001405679418644906611267084385900587464385447989387196934054656113322779579590265611047579134932044165042072789850654958969331584046162128107478098425545125878844873738455206327071976001753773523805671273484550926117300519850894911330241566072277452474530335137363627716995311177492723610263378256180951524913839260378669356957180261287992012865052320505939772066323789639285298547520635370131795915779352492803015756065794104707951022636573522062033806999550530651536588146765268110203030958975413389607821210333897992938253553733928535072469171571403518676937650714961816475298978526847629427236140180713694853699629735539584981461787450030377424504815869994878603563850176481242188533475476017956142033363452145352917217573784448302977445440562710285036563984726152431812573934456334665441145361698251142491948932432947669382929026430774770531919641877576480151660139038776887515064345748884918679873940748153201398266593115507855283111136068157621919345217028767641225771206207938243245958971371907907643512574742795246234059625196680191311979281261659574103676576736729724368715613855281081332799028780164385324768708373479333986877328217527517226051395944637243631573295815359589542951772275401385220211584814010281912871526528693573758562885833392512501822707082942694687548971434150490032414269370626790876904221809098549720548649874392143208244724010786107257989194620213935796151867393322544743247241699213707868321395967976496786599969639190056306391203673025345843644980018895103714353096504507532774814435679250479151367877159213553469431129676599611866013259317888514072943066750700903423455369111313368935205202710347961720483268165943234198401359619533940813799614718025470782261720328138775558218094414669829185508657710798618955559678028926360629364173462410224394926429160428790496915364456529754516806067468122635951130801875552184889046621131715795801352454437216993392343354411118163249688014067797327027486059480785776093461644706818706070491335468720139800842974323751203914940468838216903254091540652663816661689057437288549118185085634065554673720911774137947743634524923235034950678601862924529427246800664315672721690122658289721736731110298789851242980604298296691347137396144011832035646124057351088703982930982051044609391061374720435758909048884856404736289905872032285975192499788786345399309057328833838788322755068852443858775274908323072549087311540997284154847619102754686545652337333676145949762810916980479876487826798650148872884987878956757586697987524844748577886193432850709267443322199407363861481172596269467077276495841643058609587991490941984697986547919655493730414729441383501818113520566515947666393336729299936098847584814276466792987289191036091368283955265690791802863728399684353116719247827071502617698432533653075733129653992162973096709547035805915548480834638522619393911091545640946086929477690859201413838681365453771850163972352664487125207733836750550131504828279787555391480001547229603145383767470239783317780163530975169969414540160289782001944239674801075222460418031024098718900852094299195274426201964130535038071166831597347455520899664231830942291289248279630902546684055089873198960783776691572172497290532252394623032923298921192944052851307969479331197570858250084762127753209616467364558837463596763570684142858479702816450670604375249302818144626054881344219387574868490132441904303343667611069204692428691088536678589788161011932604158980829795286060721136329617090755026993912370791018024772598128510240388525356744427921890870506926942366833522053741176627813529145636392925413318164257888614457148547766037259939401828735987171695394303045732960430884209981525838747817441098456762156704425342942190138557556043030873528108968119827351142496815870955807381176433350214249123087824087861926868596267816427776008093415249641668440188622359627202931301760195621348436062212994526054220472272821849423518295660649149167011289637770672138232698594010164038759823958642973982692821630994618250379189949984796877282855217680672450400948903134317329443458464947016049915891737800435045686619097306498610458673948083370959889249182759543362194244053406829934384909460397101069752922914082377330933525091858254521363564856329914312937561047170629456947582114564500456522375862261071225189267030423531594318534188672703571782233387439484619075053663092623663856757100110419315457868668681763952576071355492291491705347309766556219920412615236274330428289389807186849738878267908879794691409637332686960370407064399174191535475378971639740874798915163027937897781080903724595162426567209646771384919683990999225710839751146898928817424709545123529807910486643760257415036227793561342303510495845908154273472726202097092375348493162748228215710702955245049213833133625378471830081711199810968796379502987889599363846104719022821523062362012453374839303652786343333093963303518630804402619516244908011318893186871787823766202074083125112613733569565267654899145275361486826834675500347647663887577330774263281343791364524896901436030668091203487372212118718222378130612420074402027362661111470802595785913809309390314102085897740192251496510406994591093869906409530959932354489387001380220374143183872889852020766839257007546218990961790919325326756462022947267764755000141757061226105288322316670437370271369976055913263530686791657736784006470222714756301419177959662064512653047235902397979573491818731452804414387612242869130757371720216944573498525954743597085828852557253832053677008249527624497587502549089126784623780360204688461545853220460656838915823522522439437182739815133693270917809055992244927986464634050944677686174358007395130830672903305980969402683064643770418462662538509938321824116287182122332886645394541281601205454581994697158209662618850876994758143082625850681350961939392571234832704596744443666412331023067248666809527808482654248232221376756848879529923671080857933717179101290044999645762049557960383224666650973631760397720383400697482078067630847807710192605071340401413992980645032783452328106201741838179799538888130327535950114711791259088623597174581059887714243886621096663156954586360034727799390917072059780567158076870947403278118914549607006988643919078183053027041007208734423662670580747736454250729868575840890170648732356077660434812994019030904599073958224224399530674259784601917900202194444700841043089572458008212435930835145350849336780823758108991230153239779398712036740767864361029570446477898609467261927978583900655311471534958896158243317645418980645803558875078560831525080836072072211317256747521916984573262974454393086923723497467701985609915925422360043036911494046761164493557289082798171492309246648169646368183618660353087644919502303241313745530397937903844280316292012665688057463139739299671164149242888846075159589069654208582072002247895735483672933994283059032659458568984508969558861357035140927315920456999601960323740674523110777212807748568417449385706821690299277370473023242130813294984574061152226246706681629168385824439782249146941855671676607395223827218189666553174778697065623093026835229633087707177889441554532551638535671892396589918704781805623466582654188266832030422751446548818001693782312817904815581225832061312285026955389682731011265783919994000439206204178755881681746046046981168984446011380974318685836103921162582165300992437311149287195988842394912866324829167063614801229967556284462829212406942064010253159190522518459675528379303785440207361391912622372627066401692975029230881048163071355736417676525224251758191906505512059796043127417859503016568613535114855986534610641567229863680071301215437666717468005399454020795140646389515736596067543161179495988664202936850132088658107866059694306009930964368660157020064947133923497206373417067287835419923493008329833268028605467296233910012995378493989759695146576134670947794271350500004537342429764473423782361474939754022695718429184580322459794828992834723065647131018464611273894065413594924401868278909725622926252013059267499201090347606557224698898555333937138655433447574846477975662810923049129594166587835735184115207170111773695662244757492581058869030325790848848943236536541905178394578033902670479522075353064799472824523665298417620116484537472201714961845093588395658148652487082741374864707806655335581998113579148332505008104819387173151437769021964605510749303769454705840422680207611548178623788045434695335742452953120044018447257757341499766077101447653558068437814425006288317480104951085043465992140322311664754265092034840286856990245148878839055961697171023124066455933060491954004944913043838825252205696811659127375299231392642328286166530865828839297466472344260941536976205609733207477512800930530280150185202348192661962949983223439639833002116415820052953724698694363166949450659664981814298263309986258435225680885698940166487593163280396865766887141720389113519071518375356025515973640744938530454904476040102578265164531454071523015447114250732354296820620181529117445507244698761498516689008771041781152045566125984890295816602423156350368538753286286750306793525557179016145866005879107533482498659324797080249158673894493852303988188179833416658132797238986979307738712070154756084770973089493761766520525890578251652849203494435448624374335118525475200980814684836330042387360627240469803090224280800782332351501895943964432298491020484366020329514854919428267116786269898906598294222840045442149868286894652186902232069290781363009909744122216176618555762394407518668265633859995519192742891624995258011737356156032624326447666596964437885671937722592536639813340680254008683885533846320038188482747018414106146501298771609166010255067844902825602696065486972041291109209980366345262819912519494966047297969069775038276573272133126427288553522219309175390663898547008639732524836236413385076635498286043032464030445461297740029627056424325925062448606284433334690203280691203876150718962733598989798856010618935214950389120128362706497331786091004871065543848663352863839855350802979652577196681099370322124110432806612229727942924499639537706271260037157544539760424414874418092468801619259063067440896144169594423087880935246030484130105009099489964743008579461552567991070087142841032435859102766064560470560950228841672272496093336487853687197818649176390478663895259860999958653624877659820813238918405647489587874022313137239607448856105243389123263888189911681568138546975331953037047656712038652441078070744134805019365457940587305151962863382554225004307891425441828893650113655993875017992973602450736823027932102425257609788788402206924837168266359680037884432346415222664829865306914718693138597605659011100652874249180739808207585294072626999736851347030241641490701649152922300230482836473834684134208283721326861107754684281176067152787709998177405739746414443700488752168499543741238942624206182418393418796298025829360764881792660487398357665906274702200778522702874293300727350119013001614157856394818959686231850997580233931380260671659911377623872541736309809231817331244094298442982398304899120463210681053669276996557162332510027682264795098497778580797132172005254905635166960635336875733997277480094888530726200221771220599071599453225423619566809453244226851322622525463014114750813228359304897853871813323697488293164751251807624725955324010589872032724857828521321377987539184454033206547894702301136548881114732030031860378953102145959889078248518024582967898445170576649571647373737795931546785317052712048612375270582414586934311350404070968527863847245688847533380201172254508916276584259935889107388405422923591836097635316018254465965056670771365064145417331968716051745416635639583796451341968157833450304161972933944757050267086435867671919687632694714424060097013266982696914893795967906874733624746087151269125617439638050077771882447721377329037332517018539089675301371707917395009319442887853091103321574061530254723226376203501359194170872881120677756141945557042723891262151034252693437383211947598693110256549947870016608369367285512926888815821567131199517642888084118049567311194327080324053216471196794647882524827282177839292738347598559729194137190370572340644666682737371706735313590420001555610548315780613217860882290445517955625459559297769628088217128812041692982250075941231070864908775951645937218981776154646244281920466803329158501126453742182136458758570496467009663850613414421367387333214794456758147717171575957184210944537467237809766928860278920378062251312336867875046391072324785833768478672754020413953835297094693190279843564480921845691442362217943572167991194394007847499235472287905724802214048342445142113580985397111602920680634422506270821843360427605760600902726618299782411634518190500287674183954232081383432845669300528832253965677047944269026476558986609021332787433256699994329027058021522702677623231582937793587904489989491524095473621813227678325296334844000864378499016292295449118267700027975738949377002448729971024470822475676508740605392797150754829445882981541790734221170156997650824958510345338451689321124293881925703295864276829792971943320344016314570585357407209615402905223990260008498514558298661681233107624437146674149568165709686839569826891045030257780245122450797706890347676548814784552891814096478032018885198866992940021523148991548742687209610620940759605573323048138967376693772894866130779299823660670131628441715991910439787084215813037403735435079745541009400309380504161453276503420343826947260886947617446611142086146883179657665718895194159286616626362502858096435500793884663892048072541727876433236189484532236816231392943581871224083307520034172222686800261387816615712409317714534958603513223469329161245737399572194755674415818964740212579110495327904577943779320684699789857371703825692597957213259647984564253853814937068316019437577136096910223818655812456014557603099577996701914617717513223578036032665331111991192036022380668007398202252726085288734090296845215296704164544108124783054455012891807079812015895802472414600816154464958239200628709970215743931596959361412921174821918470467516361063095509563826811422544620204763580856372112984732423886115910309260068287186333115704622645725310278764282471396640696962055111603041696348679948532571681628702630643135735416656575441517471333519399064479784908094974286755846630797899565417981428968371803825397218766395401564828356377879857455603875642418881837091651682006487726104649012517097571585475468904067333085143558947189990609584726123093429625552637891194470043781632729095369282451108363204570110783137897647960339171445291159374578230351061438921465965121731515363408127455000555759807030341877116084419793318195844158621070527589072805131958428427466306631321833089926884004509650890178813069219965142945814948671331770787574038115545936432037051240377945559076533023252450375177248523346388818286613414327028789174325544727142692860395927356145436732827128204050028578485752288924302040217848681142364529490792588202732167955395472905887795223766506503387829246390726275261610269688332827441202089517574556819823140972893042404608969306671933931864269311684672797491186015824262360469682838113994945091535654871087559508802574958090591579186827488578398059533163224509900281742185125398462256997113104887657745685949058241497551597781044727106295041219012127736240375729656251467613652246637372740122743618115371709904475136322406313767472129882880931896612702552631254304600283403786523141464651754196849262777682445134302680176587989840671400529519759067584540561317955971311620841405883274672148753834668150107050395090443071904384299505470578936601125893876254979683530224264984952451621971891867943569489487081509280779466473275078667773777922508621752885179085190658760482521193517465518963209531495459168198842355557705757836194222573224957536207709423543839867158654932281253454145459490599346139463311584999568786618642961155820238403987636559954409730929430454461220488708377089852314266129351401995508631049573768223706079253035032435643472822926581585819090418130256495443140146360522815406779033783200140818564052806889911144647745836294576146426457454808954944166392693682266860651738459397033212460510305817155174893907352648289408826082814175719233365651746681151113238639702359044397733004423021336750056359022413612951933390894812883866821488861450475637663974590185193469714616383933151759685978760935150629231597484174727014031722150969613907722343514103798833117947690369974889685209166328183301158417593089740232786033095349577211593243055331004467079577203233001505532842357951740767915349903722082287892388895873673880513772563206703256243013070188405295731077401758845336759532911385882934207961375777478493250062833795349504093147157895056199100224379500825122585933734248760329266874773394896748413401056045334880182077407050171727507042564661718851134543076613933822568644461496235960600833246120202244426650767069722017583379372384078445847019213029476359843759236045669040578686787614524700672887357517349689174758513910496132280808260686193913579973233339972308916896162368198579230981497636893616761511438217816484483620094505343320655873024513234635105343447376520400832188088787949125087963592747105447018328417263275107187078351415578202003730853655440384628283625964823034277181858198447204274253679702928908534960167358708647160847234514228706044974200955989609888902969868010663020341112853980015872702466008060136503892291612128104857110014336247012883717017472549186666086469243163236342714449043941128613089143097642792021637975560679338873313601130575923822990307014484627372839299801379539220848812308266836636573783303832043911036133584611553016045312291654898634549830692718799697198298299562889100656821767899891914557961277754589151155012242626368780639668573624166223898323330894118892005154534402169557446169921763755516664214365439143953589376009468486911869716726800967045257879997702933039070339753024106761948952023536578660715008358464177637126847440906088795622549501250131144115934676560062109147790138923287201700688109542726856830651956295590984100107133350607325578452722711602794124938282475572371705557049956689573358616209512438016871934260638824290113431267869196839687530918508705908969651708539006165578351809304227424956007797697548090569722272148534269205160438055794565590575535040169280328856079061334918429228482699486069196991544992266896796677984034268662446604781673481361329922619222213908345948430569501304578393401247753674831620687130631965875715733451008314140800609906058551852425796929110127774790769660954254569881889562608384134386427773151719759646911016304364423396739923250934375526335685057808966516741571199898077929132527495480355517833129659466874230837767028954528466534953364157967560693159291629486726310273982403984362549953427800631420560687679447753894291743246554203667676569957908327486789450983356871316829327911837110083138955432761730446194338544684020776478017915833775109701054286106223461329730568171907564238530562141925264606674668508768553031648744464312329104201314043799491991830791293194238975008078562023181179985412436205606176665002629845772492861908366343031671529253256820244583645463996606019656074193116631894715391388046000908806945807962711934201306593419128196240854095870779995878641779346007719297922013617465307395410816911236231445469044706945782138814522465582414404925791325541906066280342986801011656091838272456884799759740824917503044099383096696135889329765685155768107973911969739197656359207835742960919740917508168053450313850979249044907670942183351568857636953923155064560946980567901286769653701755777466239147625953185548977871744567320074883241691974234391815800102847026391313967018919185725143057926047539647283605678089594027109321362737554748452263955805807499106945901176604299195218723161860905213943984828831042853008717776352995185590762640363218656442771397284559148128016061460736039186252058312112391847377626003150627097342613090539230924936897740897645947889310884563011572482612656051213917315336253734338844471896936233617536645624970067821429113279644652626233421387304089346247716061891297971843835644087706894135959550927035212378686874486069160387487508376898409823864991921752210764002139115755867099445244110797273632832607914408980675710068490137191255051588824035150337438147519875289643125830729906592693733992293045853721577797030958878149911213722467957298221497960750723997128690222932770284482047659602667247501999472316286044630621270429206966412790503612932215230628626441405655107835318919368983711873623196055147056466474888709971033752247358513338812676997203825506380667128230111624444550650509484346519674075023048292341706412577973569856732583746853431029999151087443412619220994355915539403925433345502815485610634698537415670246349921056173141796717259458783672938720032193642685476303400999186779998368506217941789311694737847026047248901256914082585967060628728235074111919842864327120474903988851369221718548356255855941889575422729148315411921473060410242916970000770442492558606050583353419561815059070949622307286514839209776997645641156405108822204017154442369885262328814022532209349783938850900075801177397324374046104314069982717286675483456830157181497423960990046166763622325875092319432177149725609690036903012692408801742293493994101110098250728769843440792789815871990237119746970254409812223686623132699410739086446104963070394204131984266759447551419960851160908792026614494197752112214894993393376669364172771165329938932845193041134623170683037517954407956468761624191202653519716153128310987249249664052980949185173916114376243113133329575314193556872355938595253707837857527337583034615599522666585375878719441377854279204733473824098164810372579359512815633342350363657776980430823215904655222694087523028930935265094114283406562874400457467328102219919044958885813693599591233350723346166835122950092019610566606222828081224008137766846337869559636014446509210445029757059551979339007335672790763096745426843912907814581533230185741869739802762450465907498755754402515342753439545469723578921389243774626498044359533559851230901481410913262741578852186781079144956179653691483974942006617631552104232614933251302442750023849613853056961692144195944842161768139346943074844921977558728324314334242703810644479681451754496368194452221915868454502458110385318144474801794169238509851960499425767238227399081614716070431115331244455042928440950116120277689476358263274602603793187981676351482404307017967241537792090360314116096410403457893310421454346111624798818563443967287372918473487221538243313023673438605982977594822259442843467173813512912943049833249529878836109962581015453910095414400218531546453859338212792012422820209218005459561046765963032580345602521220774549972364535632963258569046223771312341211180019236361984220826425745271141672327507920547160197678383203799515040956849713510657724106481365787246786403755730015122342278125909666064759781404850963761512614646461061616310046785718555939127995283619308398104872097228399319506879284927856432409214371545314069280628590853699687764394429719273068221639312893956005163544718812291777842980210362972317019146152652411196958662924227194188525134675021787275160660341253433371728713026817671586433730906727030595515952516386383562759038992462213923394820106705657982299681827007197646860130733722707773665395519640286050836722599597457867164926127581504939470909630609448373045482539342677251510911995815423624032158445090014375005840437163447662611699349689370096440157306870127910935132224449488941398007033975079611330861002711595685894957888441797995842307969220269993655488270775578111983152689056012665983853465916770128124946234291552333126058255514498342210275111063609269747718620640803851573788732198403337849209879915073986160015036431074048987163136181457491782855690516811849302987238198875651316516239739851666691466243571149878941084863107554474598825486368880892990379555072133322682091946311019695292547363525731415483622080111833837420386778633627088363764245463242664323797754960450889534601219846602472059121675440111629671325226606078127422550596088330661329183722085134250108052360468497500241155610441590381185322908405237154879037427206565734683742839563403390141806509870726477282941795902997071634758643893059585255777511737100418439672776834231014611888713721693391495223021488022268308710949344085761202032462760739781586336647893597087433544631903498451254896289071517609621583557305317934580433734071787837319794933603743117472399081553276655733728310392694726902896608745081469879158680436240018072369463528515006970287083519495630226299051921008834683041729099765154193224031955211633321067816588884019221576246100280239219796089431486561944779815075474154277773837549198417794212241719421549211190452361546749984086250952109975823101882225407633442337985133082501620529820974091717956117100055335490931563832898504934818539530803894732588415760938290562216712733374400259907559824383323755156560824635696476052539176921532253202204253971373790280537007289681232731282711525442841688610412349691247190004424873375739206687398515242227455369585520185033880556860556121172987116392115126063721569889901045280858797366638128826859456165961865912528989707415849848588285626362243315008111253986972063782323484364469972409444170473292243131392605597285693760708970778472901423834162411725121203485526372882142917614492048504598045704981825514974176338586639707846118753069651928954180580278435867494997003430416812605336113843061542259988067721697144982928325568723518808796092306594838645966697219414465668425090164018756692919092897185657729311768624744559475073359471957979084467452125726001280673087638544285422661514153944126147966301170165132556536889938696900718135277705276403736024563510083797632653993322842325253543887990089863617027069368162358816969841184636061527472233879750392829205130717015885972142748177540196896082891350208169605998954593811209665475665304187905043739943102473135809374684048908119988619588119249551173494093260698206342322053646538554665221753635206494693262893111819541408308337567815691882614573838967265388901510110389500770772535487938653831891573105452288575966553640631253705708761251333065183625436889869938137012761580301808834243057445296563451659493202413898039843926795214913622653898194445171160974410996595546929315779464211065747025072599165399689926555808903046708743272182499315353991322979000805104567212388722446605393603372050718484921117809066897263850583278218061305270678018914484756878078898620223091151607596322349095655700422970547270646971491274828204940113300501690584799468279464860955874499734094998697268245525970748411624529886259206253870034839339761945139746073930738644986839609032476605496285361896488800236392526780253221964513707792667450432835687240698321058271681004212628608182486020683320031047538404358202726123073585371227906164108023897642438565422792229061210813772582064971358300016957027443637979374132948150503581903750956734771572844682140429318889780204114102431798820581643191501204514216412041333254687287611467619811961576381029533714940355663786765746241766123628188176204974475850461825184914841949539475744217088334526971094237703870822713072894659913766745174713415735197529893182695562332247100825591883476922747170516762149642622915996781068216554890885157014388485973907569855812840195246373635938144585408664443697456957559395227452946150371853070958778974683473369337010707462834635894626186904800187691600388797052243996930918525991627884236484174149035175817965171053847093325909262700914154146583266374087070994545077653350820655874265096472521831025765931090421934744839965450886212844546080815404017167261548914312957850871874485243250776319140933982607726025123659149215379776295994381348245688360520652144924858812820714293311183608297032046979558272475379746751350519429691282632538392959703499033118283570957784561625196229260855345124726035629614807747244525806817357958009791686714727802196425710794840227648819012241457325110204876795158479714070349834427617987538354869083504996087896777794795956530552571896678556047374835152171443209380468049225880049765297496723127466463659219627325847433520063802127061278587130422547164548193417465653511693846514415174372625314532181540927774580251441551386956061832430015632127608223473354172527546581787553384700404926671275152887981681288616295389278701175727268971688916632675715554758410772031069069326045575663402485651726244374245445770245587554475804144445158805177269508669573125724975551612195717605876678905674253524597050633973031184459834079463871532515314309830149485212097591299601582495057420328612688093885273356055581967006831598233254700323644557084039068840040228739011327648763972272365906604347569125428057244825446461334763665427223868116443842226548946835332234796681943310813256311143499167308126795617578176004675766805887038647991554978381544048920090297898704121499343825817730329543427722875896586705134594958685456683751745718608669240692356412236778907019299632880635455843435853665206991086993283250522800902799513051022900252477429270740499605652369361450632712362774975999047065206003102982946536965093546593669977322639290455200519785411288686248421279701410456949452839097265640210040055271029352025174886310976907708229920536921573380907476864190098378407633198525260991957225856238230769649829690213166856872634398974744063917269093323164145280345561179498063131124029735927557041293784626989035077561262916315008478612159904539503844205997258749109780283051370869339779819042517199060393761830870717687709496425624084329612610372346960762388069264894101826696517177029765975986061599693315460112956494750951135445760470738194558687682784457997698310652199676155340680833768514624693973949100178713488648720885625896545141220594160918181188547087124351551056581984649287165943966855907342360910594278313133394205281508963825763803382035636757394015364975774283190016657080558423200394393280089758349749799105784942803855888093833533568365126089631824487578295433001507004006505575289710115209650529038560693659811081809807670444206088648212158367996295148446652465131753600614248403104555913130063004467042379909414080995096646568697752899101360362290276374312518358541457142167442301270698575154586053779240750949043314764785916841223406041156169622918396463825168070216151008657297521729747836385178608507748696625468805934063115710966617434402097199654676132586374088063666291125199378092441378692292521618674446896694972146719114758568881319830135467213829766155086631453450564940870289214620697521420905800636232003263569457305972330039822667046890618604520315301934890317012512511150051684580315723111997877168360821141312604414738996941367355514992216739962880778632097217971351547761085195986320368206647055321062754599285270849422299570788194376391120070009994884213189597333159407280260118803736686516482225903622195537575818316687912035830649070489172951275562268160500756333907903797387800335721902599043885213935868152782489193877013040055618240808158857603022346761773294902910660890786273548715113666335567907042502006829605461710088097106000740751525161053950153797605162808995031001523554915950824957674811987624618925552595978075148308953338333306052549581627200771431612535386872730673621217684976460520248640174674235434544948508122430733588039176512944923261827278098689828296634759073577811959872438566193712616663066759482156406535937074649597356179010144731985786412116953345915595811873164750015873583280923788377088188479847466919176448913736947898277244935107316472764042205187810067447131817905009405832334623954846720440211749536919462460157870075728818471309125804726909560579848273818088747862379262652532620960868062996014498818568030915401264747858383527196506273761367977931499253997215755556024182248754500848495291068385373262945520931670798642808300582057191856149596503019824340293451999319222227382622572165463451733583299745405670689078391863104658393547889770534007146903178646284204574855984351286085203399331750658433932967870901455180899339536618912002776376898320442684398628428787506857012033890032074912498797084056749150288690475365420133261352229448609234446511332452231383279712130264466251043615554703138101819194239725637519264002556930007954037738790669648931895201642677782668866126705421942263701716325630372731072154888056616243903330752411221043038248786847159275257178375266292163606408961423532873723370889111419642737199401820767583995333141495088753241090914065079874174828262844316279495179651690833156915183914594814909196821723338153701904298827456130392607678885300159123636628469668979435918083025087330927663185759131190985807430096947112105723469480553090093302845276350166063158628004115020120105864494512505569951713792283165122387003590509782526316876040443630519836391715117094954173221892054618582697093229833671845301954514597779052187201305636475642273528685169738800779532130933133779218867429055263543629962726661473693259228947003356182089725729037370112049830072915258599674795278672480557114705588709236091939769738149887454214052902846156797681185990015606838650176139014234464299199434092569464456456097712414825369152646867016498423042610973318249969259378794546482508359525566499840984880786019351708002352187526179769397505414088820641783671377389189534150307611780769905081810925565363487986201144479497108727389737565200069406682439272788421860239944016575685194934018686427174029334876911399297798002406537868388409623326664161941635151510452086499064946069251708324911403838921468440779969236548614321771905789717591898666705248706202726728083789726160091867090503858409582655995665820902619894290839991895408090132921327320450914108215425481692397907475380457154298918610099216301405780032490904305879991599122196395283481977361764199397492404811299806507980177133846410988769762237822513380072209482796463355166149902849075759022461306756149831185608624184127771107649716428584630709511491566951346890245326740572626509524893429735486442918134615516807673126667926565237475618785428134095990191635668931645644644319525306785765330438400314930431656623564287040992141190604119091458016571420272851080820863174131845440105348911414318254449295224201101094919691723166730862720031844661539978788818609410231902213299129165983698458512409982628333003869630178879292163870639550706852235490118925183364055479638653705792289692221763944200096531583119301076595685306720018435200490352954979668485859559467532624070189477584614822562537206865029442322725493509499484823397538898516266677901246952523334559189998549140016143772402873073821305481936868314749391503919245045883664038481868967382263062029250580259625940690430845695240627642885417982393311119221591631616323613475323030123539071859340737175776375097525547277528994637685861839060686460851620354747272804914239529959039255519469009764525588252497457277409412925958383181444084313639133959934447886559709257326252164622218443556667228949899237333248017744281142229348278169109239748184194994766459771096775126799470320282492073878182483813390896243821313776759569254572114610914955870836872503918375758747315456594770474339509861486805381486391346117959740220222903318832277875564773783035460884223249978827725738238726604218265677421906944142945310611226434241950884476966105582144834561651413047061195820717988667996697854014651740021719065375558537395655527642139690862624515109405123442141795101187858680267188371176193023504045864015722957740311740765937272555648375780070487951249226059679957911420511246507919338374774698308144223947676994261145171607679183078143693699125059563395674868772215252003335237716825858735022269271809725926533128991820947728412634548865478752307605781913024591437243905672758803013089846122903683561217877050810200754548412797367522899621047465390535452888682074904596669416622911032184252466091016715388199285956854037522780882554181977749351920109132567874913940292091362786430640768795287709190537827328720809511585198509165948332871090279910889188696213645928202784239413274780683395426795869916411988539829293325208110464212113771167413931109727730143375496169352338540995710201456159357408708534715855441145998235422256110685478694876029507596992405332027635346800169029751725680196333550364488350063331095418931441868880766356515786675990883162081668884793385909954676919335058543718334016447653204905096713788706779855083341818448175143790461431852439195714858503524515286382713643585464051298517247543452155132492854864736693946642262629542638193115120503182563036222313150620349177286376185364362652759847579405280429081679627891550049460499676567902767696650021867152716518372926711565931148169173543658047371242389970612834492894856793534252112987673038602006754215077755656001088285887419952693259143455840662453168172297673951287175775335316460575707099024183401121929992871006342964886413729478527598119080389679407862510821372983579797312989623865289725579710119988667465555633616858022838621794488098750320794488420268808422158184939947624147253899668732427528325809378815737911834026089261179632011418463341496120902760975673919801458779485807363952822955055812656020641932742711868101723776241608145139450626956359985870416284519088128910396593977027207826033727758162674048888747839542757946542379725402159990690524858717327902345897278382689325793499980388742426953373857755214544229447109609987248287963884648876801190735812949016116399849161902573316910202826455972519866369699894504840021479875684432907296548022276540611315531285488765559421452845994067910946429469075718583091577039764207085018005912037168319994600278283760324183034674561089938459770697337165835269364495594022566768125750574437018155492405951605425911584438836221801075293462941427110740531930730608533443066769327970792442089590833274192142055621942621125864268182914408464279726735088538270440346237424193061730178446432967518500049148931361663688169926296753794237632973050651307061748348277236177231252177765172678223879320767322217393715689005514156601684656107652341833864699351644212259938150433876306103540565145528898269694701516941092511905955917226119760906190456950560952439869516698046438440002552864504385200461795585873574138662259576942656141655091859968434771281245513727655833820535982658409507399218834967392578504626641373184718516595883790881574556330116913883561721095204243865692651759087115629250086964024643348998755309518768271744873447583397337138558909912740586643326117327302666007491103428691942359721260354515519986870284466568848636895334270185382880178197514821838555851799888447449237081334128016471363479906215621702959756096661624829688000321401289227148744404010235458389502139612650158519477070455458270974213663088539887105073975474940332016704533227694504313290347883240690459890992978806527925143906108660450328286189790263020765676028150904164872408014964390341244423376449822351290932718706539920709512687418792651028600793982214187786337871896899891551674896259329618033803686642437307036328026333467974050846459868412496396904171978447243556208523596820667608306059646770239148916866426183448669063744631162982888457222553836430385809258004613082215085413213920818264392378548233563015857717972360565246949411268702844033379744703793370163524390766221528765098463951812476152911803655720802214908457384302587774593311732931827287981089090102025163432285130126547468713236663449809696938607087965658141480816777669370830999230196631679210455913901514401841144545296393548497895583850169778261446622190592991956644975128994873170017805678893177471878315912654825706559667179882419655423484645139892152245743647452600504340655538854762632592320107775663307813130833700272349680364721426214196310589939854166786706896821882647936527158173006169386424006164079053938700887587004502861299549149650738162678318557745967876411484845894831137740028664572702934621796196875987353766656691154635714500042205874493788032402118264468943917533560908603509335938446269684463772801948325033599209942456214640025506983166296285754106837735742298400063653377732764834593092350074672634653899945833118511089616570749681103081483040421364473825002473889048935560017605922306130888964629322217311179499606832590264359217909568259030741194230448188955878908795935659085291031694306782679887750838225895176443009493466702501586259774134219155666625595641008756913402127011351209349668766073724640466932014985190652788529644405020233727469812187637987778985418917601376410654844689511252577724213469075369311570369375905728717941137135550001606086815185551093585541109183113272690199052884406700117865080303609130210151942355327652236613388863771526418868476329836806145626235516338306772535636993337090412406395024302340941189997483262180977399327315565590158709774338240417464903065622569430107100361351166985144543164007139716992600488596754137198151344813997250293586445124551176296921315180864151833068919527268878381328784689596200038723840395462104427598531341573534216744278707955835340739193854001828869620397830861360004262331558658736063430243830419673449728454544843058234943750498308381066947701417254945829299829995317882494891395382693869853112222616584904008683858566777899127400527370790388954138872620364870227941421017089420465535558991526578594610635708029566157203978411355593114564197388598381215177432913666408749119366120869609881988560109915355059779559858820965638618354591065174882747421947885574630786000269349931752636503161066814117983866151174598397981410416166194188863472810963276763021617293301198094368190967433703230464578065660937974146656263337956598294725079879681283683387936515812473868002951800583310822150480534929830604689773334403165161713613149216115560517821951911141557609338232750740417924594726694456708274544212254788302278628190961382736867038828231065005026236285811943654568045336767295306033604865612224617101580085046874156345669321158582629525301349552733441788824467075373637344387043730359235199603725432560243185956539701162104706389441227907242410833595939685827817042778727417069149351960350053322712620744529082533592128377853014712005648418683191015463134756626722049433756185598908817214249451986120641913437659367040589625248857240144269717392892363140694435773623685943534151990421639327791891467275388594539138778605997742720421689178005702040937912680340022412095893735352843885531335926733698858295945324620285208799666538707774358707465374347593619721792122911429963041397702893593946788200608022448314861428864907010534290414663502150352781036926163030366019599900539975494619979461283454213318119245641450159640296333758889702769154336366540563732286194041407732722202762548673599655835871230106500226768919997057892679416720231998899923688393533824560961561333700533999414036659821310225805332182236350363229163796621709981748702084233263277654297383979074578851205836569453415451536245651288374261935798533496573377171748523604718225129184638852122933810477536185548359595789273637448930189938931146928855715870656371530281366001700592097931225027777608968460288833572265943493196707603356122748340672532857535731681107754039905818979727838680884837378850353542472364746437027044096956548085221618147835191110197756862887608355760943050531101343611249179148904380722789921190997436524546473425308152722496558948559134488979145793850744374893246525255366639826859555352790929373812392534042648758793221958661261534111281713507060312226748177245223107200979043776024580165209067514119394253208100346545608742840179523176316066213018095118391596925308322229450159303527776104408607965525856720749944249043876723692879651562939874283910402254352700802745408152854348506561435110105217625259947720224676387839472593295979417042878303148615501711350907844216855621722284875585726622099835099906375364733699794379213699192710915220872646918650392237452380513353596301233659180929956406025908497512746194319010299144921854420657908287324813143400508370270686517226839663651868137736073217636821637707702865143972389334917484672000291561274040668867442728882143725513372442763206160527036039535070450974824480940218992602243188918068080906739602517859259352140157704539837086167143382820049184969130720671335968194221275096783797230339670062499752385092783946284467290547460827021753351318946710246415954896282989017873792262443916863616615897285615313612788885772303342599887964375376588876948570487581648480596535565397082850256695529118994716538585961606031522772866913793056316652476648571785632598257102832671929793519444003482442301671746256702290901440995844097903708302185523810959253829514621094566248138184782089479807528330977144508163607257350805612657343460538516318254981296604033935168054711174672683270660899452738004343915095910963644629731927553998702037101185210584531249712876112791950228103559550292656170607154398059506452143973651870036501079314574119108224352732302638861416532739324836158715770870680171646236228702048821011103048044449909673115409688952397545517935833067963385173136309444665216761930958502700073530586160297884412715463486967641929252670042682171379416267429049047026606677597107392968494587549445704015290358612296783122622895156056846428752372120606523664809191926709624017405793303426984174097815464627727092789664838913923343192120516832047473780127518329422299484349158986709462726083880591135259039431510805480800740663654506372151129041714715072460428902597962120326607794250430784383880354772029198225475481688483510068018076526644924255363361468304465689469198894283871701251987240358879953177700328466139075906396999813020992183966677061050008367719179260629647744149085226043882329698823427388768742478571373745555813194958062331492702749951828608445760429550556954759468735496210190125035406559889665766353824317535904681984351252440488153785607427968144012974786233328662115113247265050894784138658776840890308042497203789604087691117549847042609802290257436051159744615472741701857616422227021632497028155271777105453216444623737812139284017507635941038116294653179857849312196035660746568003167554908488751664147726572035483981831025746093263128132870805936997094048961727911690354327268707361725400485221810470760917630088609257251687766687756843921513432922057221058048073957771509060167971094070935445486379210392983214191820463185957412921351996344611893006860186457244256398999103998240200322978993947362307143694586730636564038000431240082460513697179762901400659938553133513909028257560121377533844623202015099986080606357318272980738963046564761704436510893588077393933311005677821138256625964014449829188382804528695204513879445982407676958433720551878848734871298263965878803555841492624587508374960196754524188309392424693507490069933945255418909894158242353121162566316342099310367804248963713136544475383612091475634651192499835664884010411747301904098502609110677369517550378816466164974738789533694504144353933463174320156805878992275903206666166352739251442226830139503222622716680428375098252360842133042791025370860150304973431375918471251270944679982221859820704070967020361150770399028850513524421063298661466343614229152908390759888610470712048562998526339911132407274284433855098629242336807949438724226839393044151638559617221708244207102047447611460452102524264101702749716808951300298937812770145591151156152424893079266776150701131679428362088149961154244626588334270710593192496787080582136495893858599744722712811553124904080957199752834744385042154313460565791391509779805642144970348778504210005866215682814577439182682763323823629078757831070199992925963172509627502683494647021425065374268184347044348237519110671170911852038024255064322150211593935679423772278747276993868855502757218088719228050259141182752646828172227019057463958217312433917177424057581616669028769946046838322734966271046590541599202707508641334502319144722264771845901885523712300820407433817999460114370306794595420925560538652850242194014149904918139947249122394785157375476934958985439574687559160475661928249862253461361436872490093090010895723349226616783841395726803904028780752729592978279288045316247849332610267611812282249565619669093378501600033886877761437957808061582442430019194525105094356079944761649917358955737461675618669345970622822018844837888550901585724476533759532311455349894935551988270509092296620976335622119552371827148411256011810342289353113856660064961832767707016358782163161332208087182213288502853423690563034749056670006094667007258942863276661387671532823021219926694619087359801167779584152053289536015002095936676563017808178119991276220479335012151764737713911900986289571675622534783352048066885606359016827783163765089958980850090122668065820206994372373488297884495962949814579033449118896345931692452004892942431355123321655157641519024075159001778817711586981333678045953243018870778385559920127677855251445677298488284400520798250660439232047797314598803165304990332811948873039168143664753828808887884425835953249352134880162038473205599016839843163188882994425888490698511059608580342435143983628373300850075876210649312309628452916922243391911254944749422456874885869593226349994726155201107623839750909763815649263309592140289634130212356816070980678054485941256003190362501043816716610546448828629963524985306145708482294639338749451218268782363625578129763526338251887114970544191250036145569589978549692083834147771387386031314619192272762317783623507167546256238462474197557240711386924499149570500165880924875015254504106272345615962445176421603138827392903767400954805941443362275266803398567994082184767243698862241239816372973172415300114921489888219579704787703944911718671742367272202410209485840675193504742457060798905055775294441490373604323778868065010929581154877470068950372879243394702441281862968974843920039441092541767491112033187240778911333283363854836871653505166285095081589179939281980025006496806633984131704783586591435805591682985777415258488729102321183128630755209794425107788882269345396846351514588224727075005332638596651340166193679610171191686764437539623851088423679950193938260103373882638445501399999464748709932306257514837932132595637492913663755469971758264461755478309625326868995377403619390657626660646669472896772617756024423893354715863272595297770620729607289961400393223942372156607588142560903310134443807468484655518308670927994975829899128392630158016273802041273249848021005342461811128104319527444203787754812949237393137931440951058900635270306165773678783596128852252149764871204722552784704031353554195972233409560605718872075328722118042732544472744572223549824272663303842617584545069358793917572718292628483505463514256442757241524415437876245219955133043492390846720719600523742913277102358321486263551215627410545313504465046019615562885402586115813517717044766534338981958196041353166858581196274280751458693700135133427327006519986114567884992246344822737545989210933957910337036504547571135067739041520708384071325117321160374757736706845406492766811018776665529440501384875789308674315759412770606264785281814568222583177809520706563104136952269719975658409152818110197695489017190285725319620362765833445336038169107976106751884786188385723261597079421447887937870108393502697019693937916162428108173263232865843181677198317278567299177858982090601813270919568444409616222651307650940695061531105198607399193398947593512056455468288182881608267133328211023512620884271042580466488563684087251175746416038750820041969284111562609003428040557117184602755564380281200051687583562562890061433864519776689369936026384147810721331542704003563014362889467458699170125411541982812517362555354103434118292380562051779837076235399780135076764099717688816275567596380947691088773643658766083300512964484561649603244359069821818085647040387445768579314203591854797603859621853399898871978556981763689215961777396732564944958561740117131101213990221575761317963686217823432025788146237727472458157189212792937546137930116467428899292448552679630747602681974305087294590300646469203228861423499808003207471383240658460712581361558759170299079395650619863095167401167264827007617761821496617896481136100599261912852630218738957138013428449190643066293855524693970116719438532545497221934621437617109056798130376998595953081878800377733164065568345877372163858642342837842381807356620474078830005422270088539606116380458296479508759329784313344964897518141856476071023510656588894952127543167911563308497006681268950940331271652872963882301556017426205322500780537486633085880511061561829962953784602084704921349423872535812719116977443819334114034027796282156733766182560003009242010589581814288445624800917887287714124834955454379526626462510359332720137934594359612180424579291724695577903105227202114632297149696448345442391116956472803657687581058770144699381943857562664339513282312117726369927647731355075865101548245209254578345698084276189275933927467491826915374814748765643120454364480002575936347239053150161634785363500358894901012417369027944341499075842619980264180395721671884016144307844513161693176910710766231277635132957297672097602011269560579315145126307263769136496005057980223424362685693992910996509196052115840292175828748552249239829025927192845794839037226394547780841267147581073163593837795299068393342412541404942675968952088034559654472593065478977754414011364527609225011617223001299949793413258456911426542103198151077457528206410200887032200365483454310513514636201545275117957575114184845447347790448612284052855746353235181785318673169220407818627978806850069298627939058396633668262924761137711235650778973981317739415135527540754364545301691332097958066402537546345337332859824541740980676739848790086971118674771296455855805701882178489280306789709544906617546397117753761688255690198703655481932104902020849250732154204635085280142744476361322640787209019057783058829655091350966026562069469243996485148952140016077026025104154211962140818011390688038095356124589623792553045942642331609707388422736239120720356942727831634452915208315576042023807519269216960956957537723750050099322260709242961694649006628917903061653260920763125122795830121811728242870810395920976964493295472172507417765519155730686199983687266445491661117773863524827779590803356840468097800144188292126987570159276240313692352988511894851701766381461043378959626670122862631716713484913411183389354241855226683280254494217078192044032605728290047738242879737756378038484576789156892643094631279863438520268205568278080061370473577360283669717526097274019567588142158334401705392637320386763237974090980730341743438892224545868813848207681714555695519814632160788290318687455317686528196198111522496957863187863954850724162330877729358083046685938411086511857257147984447914382423619950756442084907694440902743555202086892914516297445071107483792382720177599366890094563194742207437641203612514045014451203898168309679533202920625326015283308263544288010964018030921813476167067750010605404816011787884850158720595367696695709478284832261471397717072686697054281920388244821704020996972819327840395449442222586931998000797442470998288748109234287629190117438450531392378688145225411025392241479213230851091898935403682429394332840172617856185699631073808968382496658414461464777935766296745684220620336908666005292648979463571302832258628594119273106260533088352893117659411903781025051123459379224167920480602449972223551783509831663744080218221433084931738988710844515445398692952166861262358530687077559156490286165442990118871216379090435053302630142054597451278466127116626765167762482677288727609537000273876462398493043733347671623098807985131592762497401354498946312023432020814370971423208878632310708236363766419800196801917479574314967496928708770397392465371803690327725841341610198609946274626387553643462280080543514636228031963922690660529519121282874764524439199133267248330488267125865972484268744403934061773760480952247212615284073856459870841474020345168159906593786087766142300085943301007107875526723267141859981936748076251843083113003009380651615913498953869660506668462912157987092603639297724939428394165632691839766006079593807899275142180898837604623206252889865095952537922166646121848390241033467981737014598267980769671901286510958297048358729101296205880772916898559333001346710223532423679103328591747123357780791366545346675768816470550598445230911941980752848212015628090648106504122281745452837097065626714163370990978700566449569245948592705506124373655730560400941382027706027822674451548578306753324400966427224282096739977760615100423919891520222076171177047000261870257610931216973038420323692073211604639219576620015480305936095910271653793335048790744539365496693634275878021123781316568504548486366373797274393066930129177527074362696902902706219523586849818420857046561927496014740937093105515266252906249939861675544457931485053897168956761008237297353112410723288498242994162923804150001157481210248170956105700309584584808783131156218931488635789368629738653070949097043946460883746929550888503480526535959444238488920601150873002550753279171489306433285689035280028865971574326286655286188823835803532384053892313784753254039015924019986075309746796743330602821352573576504424672210479080952189440305582702242800733905252953531590348386089366564501170604241656122081597683905157347686089828028885334512438927824917656206459837096228658416613614830767018190505356222821128028424248216784198924700606390071757369066809974312322049554406072135797167265539574566439061979126639599217944316413301511374502784287150635227269732182492398335958261942704956662939954449878998077741366397571271594989379307619573297799473051956982497413211042749651631099874507398663242063548102510382535220186804155795501909407918372907244391751482316520755074059579088992754179392939369221035187659235914961689708894440484817203023532282332504361964065514062285400083934791825633029651969975490339312577326687144208314277855356786088003448329166577042064109565219652117688673003795329499183505126084805503519902921396104253739571087162030158016738882710618903982213766604500371347028963266009549969290441776451881510520791735276250728423738408184097217367300342370101014754956155215731697981429797155127692822153870976921911593908368623460782726750985045515965449889782173473720849832142238504594433218673256532094841827342232224108759842612324391975828742116085923373535509749301431190155500924682302467963640675291093902574517356718713259581058181766026423811498479202661050386171477225257163873315744542141784022970614677834328556025322853052374906677155881020755287696999913565108672659465697426908577419498055884598618952757001342457131904131774412540036778611041537238526627241522017814910345942249508235452960249262114938932101279766646143473666087858641240327803062956210156710330064842122594385300911530990938910486069171940335464841299361798834543545808220050708497886748206657912961196113002936733776773830504068379604160160937945717762649444633703435866491880839620179552774765934246276795664211976683253796888000085094285290302930912290505112442835717737567522596325838588624829417827054665979003171228961889005011407600961612167257968204360513277602900790120268609308679671563022393385219212737826102286347315047805777140391562980802877236368427304368858483272512719731902508460248653883420065160667248944727247008541439204556764838534799560339982019459798440675445833072641015186493846390577900216937411232296245156582626234639723225124672253511672715736489214422411352413524521076214376718065620732751453495443112253888582192471092210021908995954494544586254589084444385894815098703195974011467695220372159900002392793932150584858279831431562778586316600148287635728656143702831385728653270988578929746461538839415147085666294353764458427482848456147354858332381216368456146173737895265012525200979248139343458165144471819488553887411840600286493578325731601186233930137783112406791935397694474828077122259469630501152723139395306119071876152050063095072030052414584604782636077191456445580293342900403870431942674082741950489654695465307009520281234271331563157500896184478980304521269374619038076325904868045301898691831431350957363504650218799036458236760662019857251189307059841458689488086958618763917806200413690808867978428040187967664534760976693421979963793654358852972119530850590966099893762494508530082446393907200931510673743901612383385475694763337593440763823445228496259967333171870911961555529895109295569357302081528000137604416919417277454056409323708434779345448342285956342741422739701633191305289479476379430056850706683385466351373710277858690273664846554307726230324053337712518915045849046141079416411359104531269520649698891419035985327326868068485380819309097799015405901667153626966922881016083318983416414374841601670629348231911796988316918520302536754575093660845619511381224722433060075638841015704125430693790302148814553686567503330828598607245044481982755247406127568757380565368788025200763169604975775429073286367226002113095257158248643407242829781111291096565360396255618278275192476522530873248863540569678278642650222236029968073692833905842036635029343074730903211073086198157072916070980135681348840442489191809225818119381047249388713483398279275203611436333143296861195714925184168472157469943177501185324534997573354898703316218703951991342049797148694508679422734535778591843705867872950671048681645026209230081949778613967589103323657813224034281046023783651498943329701894653630509071251898544109774474943470631892416801232033097982464322724171558835946661914770280440568258771595862234138802136613313727613048671280740195870058980300486233380951758333852318458517469702410259100700108233201714503160484866671806901122658268501386309767774451683873947067308518795266232191369648196598933581425151550478937259122365511021890626946454573763932495463849432132626086376889011806885154677141616034937181606345554780758094273276323460526767626711401538299085638479811327201386908079697502896273565781937630478969170969865783458062093508545547524202433544063830242719145488296359937659065015372023156018610118339591177519835515223943905933920581422810370266972134527261755599025632683863294676520442147723902959394867819120982401036530359781440169815886992735494676118805886027360836051170902191087581509852883532393071673926973748495027591505520026992528745036700093017756851799142914336164484178759787337093267985952561567885190108560452549709128818440988062891747083092192175502371588212764554427891921505151400769450974266001304466690827231566411250659869184114055092474757192786424910915529409521470323800948190905276658692402646486623698246591401462718946066837174438507896305222132591808070935839714799491610060056199702926178235636542634328992270394826793470495425771970390192774052729922522603471286865250210954129398949223841526389027206466409526593687958603051595470283620052827728371358246427286569186470227165193252156667802897473937876365909244918666316531017097497469902284683453829859667752595642513889972746358084344185863445321097907313583517511263956218647296985250213274715141043418377194765823733467308730387688558713189855190400231354325382419182149287831695944185655941962354124825553408546063896968909076293272859400151203612781670243293260705969444616114036690013128703069706485388229216752064000088894950974654738236629724475071938455545042295428128967609055808641572491940999141221299711454142858290552608666445976837211831970158002865840011555788460677085205471082191079053223640032532541515686504976028121369622111476171382895360138354136715040813469565180675899165511130576041474842734555898595771636660456167701318464749047262718966423014823425094384700228613825928657751195643678617991610746778010838337150421332447922215855620398246190491913263157900682658596104620040527876480784754369973042388941146156031558053670475646105807816845442740780448317176514627362890939752229699629910555722956675297101672730231124864023200912329688057584604596616907094735832408586746338354521715187595287301913580285715474017195135385314291625419598649171270701279558304467213408584658488469696660164371583690802909084111104969606705260914347985206662154989342856927887710842106243893432773097221474892968311206969958727952624248936553340051274531925306778465059583561516095183231466751032498828588744230645383142840764022660065777067130830060825507952144379998613045154127801243934357171772666275948364684588272473401642864188886447577026385409729545494896288837298415297768210107328306118057169391869446317464035258903829174955230519232648480493391781066807712437065020002821885104369201475393979986316453601511391649160186565099044618030509748019938667484882501456110059848454553148560591176425837230871015437760168397911798600277911542409422384352564436233096647417182105114882159152014203498968364347849930615199422968919718593394688042890505901598800683835379243319321179175203962597541613898431057237838231136252748641641008779725440598237364439002128931730852021525294124170869573753581875309738946843198519080067019566900336874229825750982765754825674001263381692257693671010169011407251696403118023829066490278948065304153322431163500544125318443399843292373237036352325710993981239036261934983953607750403378155290815539974403899258443576152375404407455558083136422784722987561968982090254216909579638571879174202341536471423529433496254376196100870464604568200598039693983268409433030486565709947487568781016620913510153545086295680937438589330468849129675401442950609558111687362188591801026947679608015959011263536492781996753583129948788305959191906155109768079397632871355311406173157170107438593036904385396606470825919985379506487864529909016097682159894033486468682362338046164322154949054303934156131080348416250312798948144646506996914161796143858181398671907652719091719352074582655914578274846337242315804970862385526929614850705701534104411878674032090208860528906123076918076965963527454559507658615142196434845889494580662247160286425627890623689875648801068225986857288762808394455048764203713015202109658308685402614438473733750312588379122964388751407668747993848333295922177323969250342222244529186040087405406247854059448482340781979594589770085892238006329496498312218994318098046964574672380704397484741734815459268004179101275902526184306999042102890889740313878399941131716157221081655868030877342212990175709871036580773943271761772136538916578728962469281483237346113976241821658768399868402648368457904327599507319420303333483252721032321568819230124079401794914683986669103183120240860675552798054560535897029873281149445098033261544152629201778214500718166184746199349756288242214237530684770093737991200950595612092360439706560367653963404004175969342036087952939806637551970893771355619861645146801586781039976969715597783073390105780885888743553017105384851343112452718873597516096332802044574204128792938337640728472732108329861314064182002782319507155631718325267535879275277660387210544291987586906007294547635878136981911957871056294174832041248019337291503279671391672741625129457321863918832537112922478766306918707547756522989599851268355253453536709030563765155248735119043307911315470662058155133721441122682245964662437973781806756649201185641654698362785138752274883682791686479937474561570307593596462083018620669362487375773625189076907637481023302083589875088253757370785978876197296607628186660242360147416483985369114521391113089898835960256444962998375148922546007986850376573388599708973907686000655418232076456792719845573210159928716750360708291775964180093967529480490622659049707634035018795519781721794949050187170627900643645323669857320179646984916712753945148657556911489991274271075696183582088212355959528380262679539646406882415176834028064111123834447500990855790576028084094901299476823270349530203044928247352456498021801752292792137028815881676655771799544291778972639783509188379744271913085096902582287506479229114529626614309476581389684435474087320281448062558859627025197318453527295570162924149608098569832904722668773700009430705712734285463535998753167021727807617971857415195840494175445364518834288973354521015867101984988496836155895136590350631258483658536085338653141494129988623105746010642525939225505317024831816856823771480506672433520878053549639610432019781746645093165619656992850836199950247337458006940014278375369054432270513073272481017988647882172309861004177454470290266696747090876218149012665330197385034684060706296251093781937830819637583353885598030382168839907037530066741640844034060532849717710229359806807682405383017228127033715305238208570072119009786016642703483649348174397244648240509043334352705121910016125196298281953705581873808626028209595853989036136524269111760716929266451983060574706059459530059656633005626838615380858133500285647129912389981328727612682708183572019262636468998039837905276464382762660638835815256087389455404043525444853496906809655666171198904047953764511278359959764899620205619078148750654065745504108890773418834116859838969322434207252776458526737175190313856659622550844344832074225051856722840310345671730911476437666591284630928572747282359425364557460327449763259962952351074210065449085550854274941240441880965601654619798854580475641165919418573540131263374829732966674934613326147669930178783889915207950089355859100724226981144111744663953531446849712171553596631543254770727468326397647808800040487312731162337001773041217955872883273416859283714086291961918161909960805202702340078073387970254134101154680553070379976583609997375466082371236848277321517375934534015436612116549499513299270855804182697689109774444584391473318302780878322251321345384024374293245511391165936630641029700216363288788810660197742386786703459397774155007126629836849658699634923200846856162426664045793868936351109099096577252364637278848765005545525156939747074843509759342846229509227084280432739418893104803084746488617306772802415657830232257943593376831731547962042696232524534540872514341758277433277042563162142171079422990898816244440172006118262289591871789341507695162443343970535758643649360361127217422430162799480158687205171033888534508750135891368054718359041411831902186043590522792286348536612239068246914819157774633890747469416086977382011655127127085683603535142948672327527706499112279580853471072008370471818887232142084459126167159436187533995523639391105990081761881727129907286038388516808960741981836647449123812436417223130871407274754606189272982416880991754103802005673312760867867002822777299936509069532447175779185117676472704671927503555151546582839781315277695891510873953174365387970065709433021391474709424371613565969940195122466934129435560146002679749228953802960096592037847171602455913459888834580974377985887321174241772047240779127317352258473747004684337443832580209106919120204468637251289327860154529139228648588517247823356039968663051628239960558682530315962126560919836197467234651593780774723523697083242157832596802678731525596462644879466185996891935446834887139204452767600188194489752444779058907109425441876275725292063721593728616991906783949653806772570915732580710156401522061352901471462802873381869694118415980875123200926568129054654557074815670003885139439111096770634418792696705499268879429584274487717456416798378688088752799031339666290810126457938824375831301249513513266734569981205556760854630711532663898277553860441160691980184965831610026908445982298890688208070835522558111859030564359646741177461036170144801300461048401145429851582031628189748910323792434204584535379915172317814213727954668108858360469937569974270423103839066084097515782143728479651745601409813690602320072168208964431448460366794711352976126016652179898826551654654379349299254323400439614838795317988322247688997475093697703088919976043419060458551499448655201319872043626127828728229537885695683250187034913271206335496679143526026766128832934523596554211838916028650837963816685945278320380822166658244476192567337120633632924020835629659288992624664296031868892259773284906231856839688141930987679838934786293722023842183400945593786255088301150972616855080993080209521682859010928014512447279647445035938923098735154029181432658582005141659007986098963205656034426174901135842432481632223033210588799228035705296312748860242703374651486832001209801764775469428856855530811766326148650582963398795290410586456825814580796615084859201234505776845719211377910099310707186504804377786754345922174662502440969080476172107171647968340529519732302612581674127730296843046017738499914940195123668253570955696892512959709095563424188818880277451550067993711498782866167897753572553177800954747344790155064028842835081005636307345619737408523807044721114509750188909080129187864610617429519754409197971997773237410330898163530152998870747909211772783432112220706623609031604183686546704216328162678282258391181393925251821717482191487731348554315475448593359964468620846957013383715010263416324450096523854915355081345968556819248789096640688779221290551467416428199256938348660138172128044920001905379939476872279690012716594994559848234606543413300582032147049504036619620415290012065789606743400408880292286668990745072193713177002024260581538867167383934613180766341045953456270201381483592442123848717695363458321741763659601384272308357963668283867338481713896399105334844219196693844496351464952716440654745223469516659183371352513256995470572553672568927972944870944363379043652507768284988608833922033524869412625509317084569788113582102147443537986849949449278695671395380289052845087107131561512860046012628596652594569833481605759749984199200942497880950992745818897960017379570730611737545259214587598856718936499281918448880625673851944441128444457916530633314985026742279442885421830341201095387448811533613062731599271267525254827409562988744338970218084224538773195792143078027094733619559906735714133901882293294343146022087612979327404875952224062651308596971892440732153371411681525308074966955363637031118952661255966469500315421101312605764127681734690286239192327231684663636362749804119113650649564359231922485196896972789284733879328171425264277079033033133852159441216211669164036342472353417696776355293794236835706174907176366218791748782198540730427179245284945492069844005497989911547575998545606536560366743691659806960976151044952764491970383054657043218440980042237447315076681916427887118009726920013250736224285630264901969566147481460756305218280343250654936660889290895949229246275074083832441319676244332666558858199128312321247840005398045984498018898692006334797785306673293743060086667327805398379780359935809377548830251892435093194031534895639713035786092514488289045757694800282398494222283741682808782721213915951473654592940090530955476873578174894693465044512349880236286637797872887444563713587916009325415682937589876393042204519327695463503128290387938667943756814848121982484151169366612925796739796388786614224949286323756824617810035192228078891193815425557275157431219742841795019551324167487600268613343832143298980881876026847934542336631469304247555448094380176601456874890183781092982288405586071830424343709762437308469990877436762286824523052163189290765907116673714998971124513604252919327604912912430144409005334457307596149591295265759817866719789993009070131343229790174611568620868553359352719041408834616109695389335351475700273474795531299999924312845150691363164012366454114449968335405720975221332747670195288952980349162507088434201616468869643527400439373484322967156954179607976729874884027650114710282365663824679420697247531493224516779473950037291874491520200442871749592926801017933170752100148643430976727581974543958594514681023322713686641956158101134043809518583994009949808482709840503440734853333270922716241834588276069395733748469645459057876267530035668642724576805001123524449642217450918064020702675855070527109291692182906722282432227944303182485291697410142729247455974796949484482828296631015771960220672698703410483381599409247703545914022658395255256280553042172051478027455363565008298036610845562119236312482793974091377719991267626320442929261936729641456768775728874506421797815833543401771067084524152591599729747337442060860224097721223263907499465720731695982842080064972754046298377407346225469571402843438543336223873873935092986087661037327782081839234934631687742245436797134582578183956592760388138801391115126010403730964128561992499773750274767539084023384329026311363014721719171222257455980774204730108497003507102390648803203952928750568516669649358062864576528970083275955134899546973485609589049141782354802144101372919555905717117784683138404355033870576841080810386080870072499546887930321266449077324851271228204769526122698302679658945853363820251385022725718919470125906884324253203114377630260195128451697239023619010026122802031048744816609985012832263759076909360109102104417049439174295985562051625516176918026137650813502149053084578984506645118480947018465587812852378507929864295023794672306301155585751666729042300625037973112626401225436878544910403805765755040052416276621627779531185630063830637161208125399480510315290246768525525404928701842559665091813487358794424015678155830382030777907940490861239014756893643063296766066649510358012022824633026641362415865549097837679640364547136671584096400938445943772617748518785572036203204784868329089196133393737961257127261226245762782985716338551198371973335507374145039949117675436523220130864452148997764648671024766866915845098735064312654352259958784077351502234895089551893109376896520744456244382297392505002024871356366032751114080272279246697971228905643199507570666201213506610471257645257310539830300180850492915813083896299829185997328643074998142270950616503261565847621291377099120022299939821159568896495927243832241679082347020027349068057399211022922775497919019812707943673577831363887843018165474707817800594792004510854405387666568199726084348192220288530171441946684215391748707409531213164503328990144564350234203352145832603784665974862710411461008454976500777281126253002467454836545608247030849430015284651028427205549075236351790951882952378568486214990033679216432763714750277525809573977271445816207188571419725825384036407662466739542480785367428285440029973689952207352080300126144000104138590348675321425417033979445640102087083718254810074430090053576622756479041883196341209452299329327486522834268970052035360724298967353332613025757115960743401811694911665879120123203698468592588652661008478780243037803862738144881191667644141907632889545266779390582669237064704040377372976027327110247030269186484878700801110951503519695758399367863750809211738701905455888196115135907337114709096113610807451306301961221958445901139970584832806388085271943477921224172179765081147777116994641918935499316493801729596617896160347016273147506057022411236754644467279862092040673684077427218290255625245597662457445441209250251833731717200001035543774146892327845600386671102346504085817901324522191832266734817828466348420973945470985236286651201166996813494539741358276843337502401009098495376229907940272703165397350925572273072180728315589758477854991943053551607237929255315980084366294659974267231527866555529066748419063340474535907243618733346673896911913475548394531014308599740970729183977913349414189581999196284353167898730805196320100238505922030159328627895556095010707807018289259324828891451224659936899182026774818938642174156152215120907308603067262758903627309030808133912945392290063845921116363409651113567327956397500771716102855305982920854722478034677358041060404893549374344837819115140845572244478207282254652963959841069854687399465690257569785570759761394792983752429735044071201585526874543607802853727902540900320045204122852366081371423250639746555537141539466242671029895441090262715785879682213566942466969529155494956845494966715852337316943343376556910232625480685732136165535148387056779542988466023745897123563116539249101599105783293544867608335530736437685043065466943672509269660366362742428230866328836270680423115970939430982523525112958286820568958240251108520460384836716717755375627497329188392066567814064607815802269977610297661275292833840690420702670430814200111526754703530271935351326126777072246144783755024034568061557020668703291025807085211492630851176753165597685018372661236766246016635552249758722256228598611812357515136229015876842400635810490229781172121837388018752854101969227969329659997960553028565285333706993749355341900013538555139125093852555500194260818674342787800862409144401818044721183093764023753836695420692061105593956649936544260041752150291510905931964724894913768474032981030873511664245551578738535188336628862513771334047127160662132816202057240187291967195277590499033954358890058926994336096204021009877775010003357202713569933511426030044255346143692833463606653326489134970358256362386504001065236424012450698258853427764512783123324312106817153025236821533731144001444242979536556766330330853138593179469634227173402593025756584952893187317169333129988221014259094813585541635912642348347088273998931002725924959388634862469787294888861876844147697252761952182080752598993900887995823688401271390969894836818560720725216015633009331181680000749409448354506460007395893754424469783279533111886117063714298231989182355753630812552628143500735744394167457099951815087969581386862393122958913591514869812317308704116433605241301273018665562696629676969825689783516425526254025829601974859636991104344100319731004263921290379339369023903822965550260774699216298277443176218861912388971688930289322070823832172049151730584957254968660810931399340051184814939504222368138735061366008015585200930894148638711787317132104741904350533167112412060789674260242806863426492597978104852029656575919555289069037122776118005280703888420473910099192530238047837250505783421400015230116744086489456093485094416267406990766392326421726819763685971925651363361387036613207351763714906034145902835688470106627544927468741460087710734315887283948213622354345110345830972760499974250871285013048094108171306268421763370973306514140719809283210259496349254226532015421531329677752946560243687833912319046621119074706785538163791161576784179339312303012733963431144717078723742546905549352691902979647676883604385317721577229457198073323532321223913839542075984816190491795131605953135842002139646023267224727760450735978611454941576165909129143680973737410246100697468281464578348762640450920744561696276352163932732765924117485575353843884473365286613989135108007092180205500830574018548907803369534370734520404150405353320959341274516358079042401773899621613640117631786538229224471453947898864158093859045301167510000666971969937868773268822812195981911168677384265121263225585150652066022479704051391912022979777839131385181975352225219087548916917415313855043539836713493811421666385488352892639845012135574622300136223631890481949992602475571285496467677638681061055532029010366073509776458021372757901000198934706098548258740395284153483639209191721369747927545508355715000599374711322788027301388458425897246743710556671144732432440107411328704401463507236415263625439195935252276588200024088243478203200291778037622084316038427725983109922863795188345357125798689610523649368633490878823891555356766589003123944374325460823573893953235981601711112740403753019120268389358323776977695029012748517170300795767526304630653314383648046843385401140190044324849713119353864794830876917190785735733016284701003879339525808575745047966191780135317442545463046296348149746747138219032286450512110732567049368352375024076004727834149901889483669941322646298425870396987742023760254505543052528351939861183315603205676516306000017901843944008688795072075187281619706079928975663194081524762234880991515454153374989112215783892297153079872063445865100785021265482409641419256143175174639991258551062862698563953478561011027383103351495115776529543933256562546413133710426237737539950969762532075367298156112377088137156046130603728550716248183122309117683153768702781361843118962151463362566221731868490439410567338434589865266667495989481212445668133365864034607288859054215129776601797770200609585483467477869373883628064737221957433214507046218338266215458951892870669231227162498755106933985664457238463065838521725154756714576002684000378779352726699943188614304088165309624084374390488162218692812768087679088347953162101878029643021888345767658337893117518070818318887368165190156937397860139385591404823126875210517180921287851076029567106677700510897874360653635818611156104240253395940020461650230567919782152112880540483792445694752330250006048149480845198649010316033676672359604145440119765379402026298497929581976177754049685672971791726237623214793170309175335739520236601881732684512652992120535329579087583187613102768620378060338234787683837614174878097121037441787251696272364213295743166552074567494184098433921785898103358206700625738505092533087711192094138318024745617815810276776014894038451333648255076488480050999298744010099398147839489384023968973185234076969750460250145052352819284205395909077978113124373375019196477984964430704609011451268458119905025902820965397444165390697245637659398501819006315202660385442564864597366653808734765605903261447151236151368789709345274895556333899896470385778560044008946163673184690636291539384808570057411760703782065007565776807000032088004704819626302276415145620025069818825493251566238832352584601369763548862343110383446776206190949281942145483776802041985466216520001160361979255008234057665042922680613379246794731954363997642095114654898758921037085347344657512271733395659331741787269591900752632554031653052821012585527218206674613093566499495082727682876321253454337260875535480375935545129833571853727352818677099646219883967210547209157038044188007398675494549758997306961097023695133806111381344834016333105599665820512315757942304171392334610877030804398863107497421199512834775247670151848675703582668053159920295471151501794287645822707740790208842586092221387278631738991326876586007662787827128429758681925692983191415828057417570673708589159328032583509716636590839304892106952343532049472535924565826257599657471468432652099713961711885798064434100887127665396400553732637231861449158460435399191923391190772517429284082912082734193931166779524072294992768052287759382898866150874952301823662906861635356693081640141708684448042867388969716012526851934540013848443599330023531996175795651459056826001645396673710645584612796290582367089427613562174702510487979398624259526950665864388275899176164948108007572990282732175087144837525989908152938243589457006216638206358683063707165934909403092451958221345237194929989102987605500776249331742430190787921417868558071457670019764495435989821342770762745125055426726092588660560004586884777905198153869090979871736783679643643170050673916013766039974678268013762962701713229499112519509520983621809254648355211265915696153486452242549600818412701281281927407671596855124515791291339334481405350278596988432263554619081923096339903789149812814246892382528946204906434974191765490568674252860822710568277403132006856630005798720940272308254849750451640096332997252958052877641468299563511716859025921239923534637444350769678090945936158810495288756903119836550553742196002834945033803857219832229166359994647142033029195851102992367860763910467443835120058447192404255870527370009562814259784816448978577691912114379758112955947242696428371231072518389625949091993405515861920017674484891090236323932732248967575169093201441896927303383048194558347187875269471980899977047129273537233933915599429675687048182778351968012747714542176421105498619691377883131477394561623180402251155920083680551095961441963749325242116223059675243951682691813253394263342356594901514989485115306994327062280502135307523280326156208461223748895951106519128914355806020089783189778044015502423017850852936992981662805644261561619858973818438857655741892354279415159479099896827433073570161770085259303040715925794493533002762618826756773384392250096127379447926212629822328652677203820808584746829642216206942033332769021444571501006168013774536713341240339909611520273768625887189284545938638847585414996481643086220617203204774190781935564506200132650385179131943363765858564797980113766000008357235418083674766624374895870959076357039646044939117090304002110048133235044790258038211605102109254228290145132481662705928530484596757397197975241458044515606502721643717808527484204069401685646113869985692280286014839286930997004503557409881184015517677261082825724971965857942602301756295687286882252775142454677233944104317418158111689885662994780132277693858729750487613556305980665947195275078139635515187154347471582021029967162243048789233863183257525728514124549893284820099681306053232367545341641716046683577672537605207464381739123108098264719903417563608572683211046815754585611992611846058782808390930742317828541023199050175734573375529508267326314843054418860706634416088517991383036893853818003355914069490010163951298839293871166165836947703769982816114863046233622148604996565733767163458813063377589599572988577484636630923898706698054737156974851600842792855699604870769144743185476790885409962400248060082577573203643285813817701783411068607673196106308554488926326241152975352424527133698001370101164318190976096205369823477674306574427793969734279194578456210596474148935523073422532993906171167068030183200956332411868089561821405679194833557005890715273836303171229093642165325526699035557359412555850134545171895775712779283941242811831652014346786671079862974099279868292730556882727180630517708939004614954965525711641677105850098991850817041424193592177343114842442391880243288527352687436709365431751921047657591472386195283964106285239426230774030626173487360860016070538898837097421112468022709728318069310873306206545861428415983431255087441762932455574180594101976967063618529571646272789624990935783091312127085618408757852646347943565721247846390249732683860986129682684313204353385011826394144756670922539895989189686672685572999357979508907335572856748342691122617962493467287809668152504502831084792615390022632777497472311031826926208647003907254114025704575589602812318145982984280994265099771482503510043835359972489798263064299169517098390958525309799278644549319885682074133611829578145788923070807722881094046355312322077092299564878436011403875191841668083518660571339999602906837868156282470654549235412541411291613863234531882760838159880991615173483820788124433420763487426124051835708093108150643013211380538395656955849784005702488250259456920126835259249944118767229762795614447375393986206353739760090393642437071854491548794716798017471075335082130197513977155826359210637822113538683794480434156922535599353126622504184582221963573560000216406876343994054078280013532925233597825529246131934374090458363585478941006730094471336759316673913508322223588607168856248404780580780755435741455743835655688599501864952967820864765131872307118184903255525135758956506426204605540071808755164371434991018457627048782327814082767189049338713426209457181802085832513638298590227479777965195373801543715705911568210746673308523688875107188373903458626388762158460948855833293286197176700199485893362455619732520570000805743803904728483957434800937568973601053015810280784405209580745069817276221544866045543775034232499296956976230479469580433662733593479184796631278034942068750170942020661628421668197469316763292207364572511980259972855129247572415958319648257967187437664876469219346510635484694463871534770022140219265133379848319189185516763004867228056613306325425372603705065812071374092531736306633532317770688268694194896989197118430581014084875288378014000795359837056424848507399767774167404559675725236606079029692553357821662709045586759776406389160652140607147738138795942441572259276204298086191731437518064084824289951579548369821399560413596968033763455973956662150810469665449431507833560024778924276185865767691782743371251964321980989339708480794757798738209717167142706573056537983337794991991907306640770376756956847644886983309062855938450642410578060423361676867247357609435011129158380530226205626050863134895513030958777047548290883264793974048034403292441744119621739847123468835908878464873033847725261945011603478831062513563211169165096048246044299349077233808662148220948847521724793674195286740062618416153396806388329966085384041969483514796840119064270375591320449737270294854652569978513971411200681082274160570237302972393505814833932180623375313269122283133304800729646732677517132618403198448164964237405334146073220542958708750017994477183407845537440399690084402550886180843119195847024982165506752460059319760452383632122096077269654336902366396902990944666784401489935346726700108131110522130131852567913137029521493857255118235518967832539312019718335901338135838046201575001101996494099003681119558375331862341555659822784241322246120988116061675955327558581064196680209670548581367716058463463694278684171506607618715543937710075088167070359700601992586113470291638515416606765815975052450243863977187973131221192475766273549024362272314952809434827952202337689326886597346420443786457397664974361662887422097731605721650535391621559659665276039432283409179515784706588061662793081095076349631214464606159872668690661251887850386643777671744059288794144135301094903294192840130401629901613244589527139320965712881117530974223140916740387530946649249570076397776543250397801372036570430707365987836799280557799632379363988146941130420548033023364648001193957517820621343225647120084607592867589579010079065057095023741424059114760758016479111182513046434788157541690363512644767611757039281885096920366337723211990438153422433076688517754791803480760006969697652147123090868728060016169704555278716778507841670560798247311595492977380343020568809818858538713991447652040233250745736514201217149982101749784443576468823105440296775414934393326387101666971041639659722672344171595689826540625053008250675826355027758432674573179428718497036558904991285780330259101502115266761649430612992692379548540717638850765227463722784287070038215494981864135261495681573032446258609402555789767053088030635166246951253917401860069917673994835268602760574550403839110397665561737685322838533867027312118325224975897260736398378702893626155048652848857605236885105674193500628658969329996692691273871181389416192589507802249036803445218017350603584007696501253894685684555181825229601022572696006032875097351590411186385305763255191489660115685312556734422485887446615682933883481295291662400243711817376131195249481993497172725806438371481244351288892948431475804156667638810149467067051400688206068903685506364674635804359005545916441859520999762533034609234406050754829068861950592821565180768824817197142563453303749348083851055227556658122207501600320483178327412503983707123119238054563433079370700270779295485634927019906567180039033342829200817968928149722005603568029908580188451547017092876659390183492497622089677339035263978679491409510710899039591951474483936453446461430410449975178235113737633314196646152902566668568678025834655699048561663111156094496079780524939104653808547592723869175239513005551593609411217506082445987793634398071368728018420584734338310599671568373872257256888282609019840401281743416600673329254341436517277797543142751243710665990074769779942182732927003532847879476945937437753692931062090274626517582050553826236723802346880184262630476664111479229132084244163342599181858097074512523257826930702173368588272980158321671887882032591858067224624295520202869645011977417933815002059742527316618154193165854597962165826393517820507875019882655895740235033323120001851069794921278699011795943497874376284503036428017181483802928458098549278133263871922626188941730226682259442329480954904913437303506704365562572626587585086261874313268074921231711858770884577843079485877211649830596811896981443153880537577763833786395093107686231684068961976775173394578382681965003915562470147859530817326603120535966268596363795900287601464278128324077788817034650962221388300428385549820445025519009875159692829416801794521460853742847282893801754197332614879496181794558614176918170913805567050368195681216439925136205247858482861781473462416299652163371383750410737926448298211823902955136327083931692292360294301615333649568220401975972391951816197894335985731861124440410859511722401630751384618812707730389391511195109287580224068803487964191861324941317161304738804666056371820548975400661631203144069053770036380457301452384694138768370757085453545092516358547475151470723936685565257606108775289735991724949290128346801844035547466766357323803875158333792426982043458704532565870443479557223572204768069808213446469950183351365824448479101250285219815544057801454333225501931662910703906864483846983720185670972162115864221429759141633128469404530469460070300086603834161722152972931774750535297799817865593975740738868166246918183077008818265609963094206062263018472534830691403320979491850622607582383638011357753626789492882367317156532989750265500609802403835199336891501364894831417241932982623981513464684415116814336793356492857273790643051666477904126784499338846557877256200054072199898560538968963280968844114539543824667147467434671601764359289965288520303168714290806337193947529723052829266622756208857052860945269534843787259887638216201529323284382844862565598851726087602235625990061143290102559276376240691467186426730195800592383861879329634221968455515817685146860780582303338713366310213223364650349209351419304915136403994862195684132467581406940219567604416610070540916358113955562929501949104615032176144109278350649914577039526969524089870600637625611606544197430223936491806277992546599104508181052686662813515061091790824273122150568177220086863637897048520361597490068067294545550620985669060113460913709692437920060194818429609093449414648296054423893968483761908792197496480640183762527909731648898000175728865011208276665396456907589231136993696806205447647786362790273142728368915069349587696460657690237708435998146071063999624310890165926360985611658372968862375158237944142714037724462742898469079951812726517296228599044049118355092898153357118761212512611775508695126320632893609287788932606637951760583208829010658619538131454370931103742549078616046929688345417975787611556864787395763200146617319172958042819456168090859088458304582938526766171912768572420590028259456275639045090158498480999699030805570527748509199939200677590497388783705048702800843919718016779671311590375083616431211844706481247636022787659100051512270240219065196755393554705225844391427377660452547342145045065324004693164455668091536229391205101446404509512727638358498982711424147032807366834443066090593789166685086405403273159590929975667479972853994138068007140425611580663034984110155034608488197294113471370542559025116598254456996322716382033465721734614651478939186798017924598959153324710538151450081609102133160907050818988560230268551703228958459576226884139366271251947226984161900815185974899495464723316739620305325346997555585466609326927737926996235914044235052738199058948646222413074104689136781271849828654606034188783138789129141473744030537834067125807478217227181366151101792271713162030874471642200385820542011773475845263634650725890716979273789505334026735994392090136401541664942658586559772298072171116987108405843422679024201217915667868877446378842575743156047760045872868179868563042499158214256823599708714187640025809138698905375362820105069902998553887937344044686768832539353451278112573352413709819201878500229769047980689822456624567782872222924638124234259328553015963559736229229273173632245643008923531015768453483757719533872399624653397849248550777232388141443958899541309341402398282959820253248165017482664609502879511183844220505266818827099428367380016271191570820051034302712363650648686943575677645442912086246207987949387216590063007078339361029913251932849311266809454535222022548384746119055069823765806704069120585909414047830171084653655133510318087149461313220454147954849842182676457306875159873163383977890061636648896271754932813309936401666464456931602572435312637537182770598717751624020263411344449821562005490545859275620284990220286628706390675030137847548320554572028154727339902541858682531030097676819717011423427701611928065267284003035300104794636071564703630257262496259103725680565182978057626740033017341469077633243029411349282034483525257210278673133646102022844366691604460472617428157959431359158399255459141972647276366119752673957710637755958764889975078199994523876271718944371500604196484906435803873265372702897899050929461043211502243660734764822585732239877416023858066800971913899133874048382952033107399159631786290140055275757632062647973879167177621546349061588739402782013493543773028585037174081569214685034369815064148307192836530537648587419146557192118358912891045285376609910316593592978803336642317372628484043861740685894878841265168279586471562515952031027673883958506205971530846073477019629503206977603436914853849688588402234513777415114420085269585096490001105798549520837074111513105138405511091572470091001894427685706162212120687085059910739094857918749309819065599643265538118057870781380158153474924934361267353781053790412669420830865412672540045600810137810192088913710593377280686326644039271854075652756998114753837892003613301868118290425268492967978863070368343042913661737066642024391568950210791427534196497854925020122430510506330026308000196466909302009256948133535672852626231827244425058116645502290460704012314151620733429920799460489859204644716358331946631414774023862313677993672437880638145964456763534502681321089685697428538745670610083519122318559648449721946867735257159321069941375936056782724042663030941378379046095637774020188885542077472287816829569621335913186316981939704258465952018192835704399133902551474045950982595481858715946200514110816654357341172190369025850248391319422694043164223935376687110605668905679697786966445898791310938724404282811222077104976073810561449847145280992710771913102185318063176035035767989640713019504943099794110837965439497417574403155796162868036671152850786113058779892995393589683302218500944944523132650230466936661359587550616163430772758796967572233339536741896752746975391786659765846889195303516303904720019299713081590131403896574164351669900733321531646210856272298183976557606808821471227096974187387158514452043225299475143776324598591635514843393244373673788386158293001629082504010169824679261442158035929749879105027149945691175240310593845311588561012986682276039688789515226390043040342207053556364455930529806102411050268841107264677391129364006306367547449090286705042954368592542509246732551228009761180925915728570289866188575524316585718290605935304486890974784931377640860012358533912562914881172610617727384826754476453928754502867583261175903356450479654872488361758808701374849251002668977599405767102882613410621905646741521517088282425513937191897140310077201309634898334065441657691319443336951803841676882141626423764345232223642650838641068964219639268122711670331198033972370844890300303117835073480621265620591376316437615932475758019692747725734832150352453108736781473992267834256448317560369135145925865692336826377028502704951626892456326278347352870985545066201440051522215968596035798974126298785885815750473690326876262733827837365846442887567014437422863112015387752352509319063466769007845573629726180734961097950385288505874566789544014770454090493494131896191185012443114030902412904384401727031786109797892945585802300142218237320245591694683685431840456713401261748516317428388964264900409756320539629922639220278082228980927475391104802544312310806154824486810264248024077104790017264400877098559183517877220118400619148809358750552870669565440238433184736454634594990193272862257581867070997449992779659828142676185618796456466069056191410242870405795464364793715253952306992788840692667075978634803679259196871551094005912847866281096144330811427257149044091321740777224497458318676188177168363295881800314008528616782178756767884063736128506338720927020200663419126796926999745523917444869717531280795360040431663991722250147236678742164805809358676150361805758786992823285678338391562882608698149183940149959409203510739991806577886919029965437300928705881703905003248598386096369885198363299434218403008567859095838858829218499666729781907466628005793800024325969734746686133963128910593785695391089083411369429111697319572339006851687067047968591141495577806825009429478098924630854816429150033092942884675920295703134801685473605552054041661563397212904005001884516475559700193204475483629143690168957385553945270274261720466588631896184952491011441932144008247868432692245202549882690115458947728346793895367757293109876926908014363029675000768334064042872982424678394981390394646365424195548651457855335445804065038328422429290805421471677746678262839772822944888953068064272894588002942413718854272470104290713323176407501021747753994292055877488329624296550450836880480983037427912869986252490232875985887848766300868873029282544373690170984841208027369954975866642009312941011797231025657354141827952303898349913238409937904328239351498415123161034988725916251680204386072562984616579477699251578269795410532088272066129306030591543339921473175896362995970757951611594508152899236485453817020029271323044857199014777609877250035363878990369471806594914284181683681696806677597027117980973911460113850212692073272901653426947325730092581149693599800282792263540667600662192696922446034617727972785031042916103715849659480556483843194936739252050811746674141499266151841290560457106820105152478514507953623769453627804666482980682502957738942678067973417698917268842060957169587028356415720653758815046809561570924448131476738353596181105521026129604688993375886786176008639954932134423486461931611393471546754929817949442006713419484009128455355067062599870632636870595000505403207368989290808883475540623659755093921096207306138045008832233889436390673308413520393242864452125665839186447191126202250148342919425842617488124426170427551081205855475564793192492139724817020205751165840166288120255395646564679087603915750971696450810058285954427207829289395245099758806643902432498825967652979736681061558278893502001313551801667264291429906101801453184687649601822705789490200650564491438989444333331123990750191480980957470674189232623735755660599234802865122095827426107587693488390629327257574685835266588411989228859642347279168501513932097787052885766031755285981453015159520780370901380023235713094701242552577347688508370538758250829144726668434327294990250988081658124033342938377605801956414920834291847039945556129428723266663503870220627578653164950652965271213862755216495365575129764537842268304073597604137385548285668276525928155526807054161267207449672492244849851274194122825350089057582255650224930830273386967957022685576495384056634993319151293704762824664928105427862097610198957376522237752563376270279470706229976594063933784460458545586763725331109750472881656527058431723515967922405140248949748834448498580320076537866512433334614040531951396039752960041598002325906204865705043711419611526141541284551471254758522301302712341062461078016989352138533905912074085884858060524033070261546040730084153001072398964818112110382377848531805039499766075072390879474930231569527076096043339301603100424756920945968844027836877029081109591543812380441561213700713466853182855914430794035279128624550267414140419310965320925632670467932668130420128271810378549673480749470708803320092685126391499562648920439795267426727132957386915911890605720996838419353023663985810520164174063683022196385357010213315399270542372786484535276441473980794462668718993767435090840704441524768645840885309673129806537166020023647749768698114240219175592704184086537106056105021263495843519687386883345318978692815219799838281905945957766206187076148939253476915262304861395462279969916787697558292896831826473463235514962975513896573096884945974201397533924131525721973477523473689030913322238850194098323798457645535309174219408490953576465908435139758686788698747816582850252452403252445574195449049120562526562152248911522768382542093110262461470945597664147595906173486063602313223554751157287614992773498522868765823923575828805607861899722173231259446421393507209006330884160499000740160034504384343147468605315522903329008462740909910428674131648398918761809878066124234361591726470115142846297097654891862024168456510118498752734343631550363858752298693628025430899118502304249309161331341869237708441787296962723110278719025831262368922238548562763633000393521594934058219763064287664834745489970258863374122556909668949779602854995237994659486789305160889332305695484742931115827992759147448990282321943867148003141896890658290508111850023493218647376255234441679037813798507539671768674471338507241956920152724549659368326931872281195728524288948695070547494166691612857004186068681640157116060793544067183931315553633863468060450434715298209222484550598743502007545429820418228769957214437520806110833478375784453715926104308987355930024844008676720957732546086034270567283204379126241869390292386903829760181652858396953641575930492815193111980015058069776113861160824520252144924051907619170796210091728033005298251045644115303803924464097280308393365722197079530517472869997542649638297718373442802618574454875370805568795370780414150008017433416039180766135250788299063241878395039671898371473612185886101517876467338877117693032020859946327845759835409253688457948414109197432247000021115478436172746457715337096283187102129109687670246346177543983986808333474801918681681391657306664876391318382647714448775386042228991523045097559957907174710563487264415871388680583351369916066052870872141962773267914726332410879258330116828867044599013980319164581153920533980114224652109472221344440794963469638314192703329695180650740445439921248529396170077751712325762867137033514737909604003572905209035024702246953425779805347762936223522499263597100103946691679121104094647285960289651425419912614719949284305644179933181158533146354604863750345788071729654546610686731214232048237216394568237369289719918267162853590397895935554585978239162677096529589620159472553613830745191854085602761588683032670786435868004167672039452596634417540531782216032248603227218788622305727869557748942884968293494481015998858825406673167471773774496189949771274829285414638038842411604725098138396713801021343827788409360445134101057707563030806013524517779807127255103155721293865549370533683191935985762951491618114118684957999416113234132226488771336942612313122364818499251025899009210646854161037063376825707435144751779735411076459765905056602814841471252442334262159039765169567859046660365101246346108384277155005020484564613735569742487902789767810794436077220660116483781467916244703268054949221608272577441443135418399343159652577651031663606368412797955191111490714128425406105346114373555827686769022425538516069694020927118802253158746930614349657528847301715478843201679429329500096322378748714280562851202815971231034399861508667823267916939919068517293339653098501068580417896807333279914053287312966420500541931804141961930988882173314468404798376019056066788675375472640392819926831208123202586225421208609888644329189687244177408207062124694844479613025612315826540493344396365361365916139754991564199571302825839980823910861773819706001852250906196420937908196518552264400540203972342011918681139003141886012599414093240454718149967014189835594582098128841959793805129841452237507047950759570868907830436061782298092794559610441813169718835695162245400137311681604221573386291180087220181294988039310478628277364565583180816067925524167208832858822949900106637205910536514842588606291653998188607167555732592629509743751825166723113637897711735014161487321327560856166712514027417588176514400878439039003838414677975224981216270699011007205442514721959456441638871515891539216940905945335598451761970903276534640023451241248727578052635808443740932513612237362597494445322046608320032728349941500950147688684759362224848373588025449636847248381758973243125121836612512872145807896565043861695896780891211853241253925298008523924549737891071268370512752724510073869320907703712724367606647232918821530750293221665890216968652714470078900303028037873015448777750879275528430920002971501248902497069870638986206260082262345710440805231860755716345081714840004860247845822102325091050785450289593843418572866441436739869619143798733011571582431116128589976700877107860964534081523602340047145357040455777808998696692935921950107068262904177634088057102228496382567582048959482886541139720680110920656751918839499827718129771227882425158914788339477906677167127793502248756886914351528685482210290921156947641959730528745145837994506229933353266875448237714187703579168621203075477174464218634897204414349443146729633298103710397980844595769964060992172415896169449067522663694467219956052393127118004487388824390257913627024136810632415924267972960854190766202521951090641614736765626884366154116221203134581784415866516785344176635305215495426559458271264616338206880963007036348566325426564283957267548878873776304264895112340609465490817708109992089531795372406131125084113985788005080042070059904778986348068195462727478326222947576822619341783383743284840566134229124291665941463648344392869650977248408703559713087316431023890653172327907982390042387182837160273293592767702279005525302559731037786505085841547647637226336115947702165898195568326622404108079820914438998953487076088373117662422271534723588330693641581790159707624034412838193627062373029320443798214397939814679630694646470199415439344363254508068010700699289727777049305326363549001304858366088037468574025480554850138338834206512271972283777515549973709314447858170945067773518971916756822589900244647394820385344142780420833923212417750452168870713464156275618973609705097713566935358918131914630760417109788943554025114352360359132187794459981215963433116313236358169657827771001293047099748762226424153087007053715582685615904912564153030808767020560728886437308650617944950570758694693685031315130110129939181161975959344979143983454712766370387305306984832073388702488390388737806712947879056294908273026030277281424319242715670102043730653947857938079870644442365560276470535159487895032559775450287228473656229415344289543968061436216372029179775625613772482603580500789980351908815986485345000080980340869708189528628553744904436793345301988101067398974233821644484800423598133603496504227432985222221208741072361464639689575439449339130110825602635111150270524776245024108148446043895493489399584270522924400217738080573754015525001703332807392738059433323017601556667147974285403096007661406654797163771240891561500517270717744781197595186672127352677531795087915583530494648398164704315898486668159133109759120984517325059759549651455272056335894843458533374598268985123829629975237961189636936608109079060518979604293271431315516222398271639333683290457647766630395838464240416844938039966317383953046405155468303511754038752362949238486549409682735756835856927139943541410703499767432210071097162411906894006536295142671041025267733559419072836147222412338834136807546367511348936012399824686929246747814904758042348856868679398760762000538392279122840552070376032467467470050487343777029672245730991179347930851089802894269149695129328966584953000886015936322795671917681789233998540890304307376208831323919025291476827992590820665235773498974672508159143989949386699921358658256289222719387033793877658709597642650616755166694379943036232027401665854846842361233549934109457803085952892179795877551516460944617312945048225961342342360577418962002272540668632868548919693698275626524613560238587699166745366046988716173712616063548946724221674234818300933709468111029939595339447675691402910539580470307591136037791002589840285879281890263236150887132395922828767912119741964384001101186003822120149207205957735049422640969630721425362725790854086458665884570056755757252391210390460982226230552489924325596481384741845008784779058762451444444287757709921821848611178227629321502531920357072326049435209409049874339462027458219430454804219066797173016757767320614049147426764489359589113151265860285823560975846762720113924294482436076886706526836024093002112032881970760137807015139042415340687743345721925719559238305897908307650518218345157613089504793322806771815670294509031692739905070931539028565337543415523200444287682876304429883154979541854675205508427428943546804161744391439955895850312877678425269258004911679295348503368453584120527531443647628991819129868531983710129671064041413652949242858104018611905834818200443431186954994748932523075551646831553763292484250574408432996981271015693546405101706594563759482911268467894806751760937801303062792939284531224063264594902016972379310053758282192337222524038013434896726533280918227471869102833108007403753578047447392745363803478517098160633556120245679110223626589429154054026628107179792477685885179565382154367360986853200772498549156694664149996281214511259780099681212174892185967338845878179642811268936371349013369904560584911064621752781269321215484955396023308466695980746519510809573629366818736390506871676545071448274624501292071046260063271465491514419101137171735006158254436969367900759633453559324381353575687661673506107904450138402415743684890837275307386459099485635077907027765355632160075830781987355014523844961829445645684092859424213005919897130455568763633048253150986979477410672528146027047876972609879613411304568244861569308252902563616806885370130364685734070633922060361788971703260364323870259232120135837656115462946987016780947065924260774714383100668745900608064272205443976488925406020551944531680291612842468760103042414948029212662763671103751886182048901461873631522772602108516150236105950607456126166169872187949378971383065581859790286733485398552859944248074488987776713506818438686148652823334988139801862625004925980007076164423879223645499084613915464030488936414815030592487031623861796861123280952836959509552663869110520898060121055782883061004661538079314516438527107077750944806113643453985710752016705504888007572199284115285262982077915036350738433151001521871774181062677686899542954818531542787736686247536915848986402176104150426093502317846849456028769585392092702042860109948298411341635230906051030092121321667216999819732550634500622219882163382157939130119393994410768423410320917935004862170062563196935646757953912880434866769768878353728120606772992791315548757511000598270296947140138163908079796518127029639910150795781133511137652126806899511102193235299434799291781741154486177156295756227689857514889330677905516113916775378683904507624589162372505609904864512516962112115579580583141636061321719390208623966496776912008901924238458312968387433329117654053052109354541466643801661746254472800552101463250850583435337375356689914680313619354927658032311016780455313156096564849300086012424530215811977665017411724243679881829388349106689369210481566727782548761970367237669648265527095113647708473066987262637322534227217071425560502550801557643764735431467652115529702225672907775187400190953409152287538730689767027364346965584753053151710493199836165746595013463354921350689630986715522790736150001658365177404931452584472035871466540928051756118940338781613530107650912524342073073150081200739386875373220261131670384718290216409093807986932045356600927596403302287532681158635025344047724882526743911109289835164959370614170067511267158829708087558468392411885719951644481267966180843525650463172651025293735104867333182475662878003469758689289014780828572830564075824340708454266154368043110080847845752580347933983163149984796043169152045843247758217500688742764367882703176940924520686980258070476507669851928152905632303656798573457721909351323812927277570711518520190825728858903511459114525851791002218902089393003206053046488999338938836846852763810581869450129939670643141425445424698628574309233200157759982751231342668895462668291043112085495265691028858091891824020215047940518174475490430464052108576376587712134887448784497604820624100123011134715589724324929870396757066648339552840151170897252373976871274642413957069928089289707122664642799458248481142640408895714052814697617244846337356683911961330641158435355188732019918477857249095683356309213607009613233517172706301148460775717028380230569713180731968721465266678010070625407630749334569827369762251973117412969880376895020138631997327282245757900966088461157944520405408917255118515338643096480320672235158929207401267526377414317541425754103276880506602526152207075896483224744208233189751901771218126488821788654980601985642271652322064428059166340075846364325337227429363944663064638117752123325824563597111456336519666175024322295448671422965700891483396051726217273279949670473116121424844326879710757959356097311669188455285386212696423590102042150847345639308353047255543593322910051131321112365814650035566370353251387949204030281478837189510528985657124685406117870588322520269222268727080518345803057053544614042581264472094205440010594106085877120312847781378842223285585873131975435546345149846257782912498958791314684464431374958213946231350001829943488908648088186754932819184654055243862024948003141165546241998663030523067375601892798123890582784202099492443304439335256532425052696506173800656470979005483273691087842760965517567379014085323692942063628355158257008683264592573834264011374619483701522579152000353403590641217405132413861431735369833246687948740938957380866994849823259922019353915758354077405377452042138343114577770879599166200845767620582237273447607176131053691373137600676273164924123005335170088580166960915109063506431972685911486610753847346712437681362190671223607082042088154125612385543088114926225291580205512397919930269645892747787381401454361732688142670551439954646409072128194174553491880131948664820778369760264614799836388781079843471000451229260006985540140953947385316307439997095733214699197468896007043488805640110110619989951902271292124983670891697554449334452155295358246502507033814106486567483952894198287288527627506067194226725026701394195825190260608585157360207243564306513868152747238435249995549953032713231894552603117145966034485610093510275433299738810048985463668331656182546533982286607689122799375797071822056364943964209968071751033915610246418366920069055089968585954349903812617545844311767083803246515477721833477629173487730446574801944150142336217453514235442010185450245898568597680860040653491204170412165573672630656565932690483219151319675065066121748219169360899602465985894331378217738647063882988836761893381827788333700940807721750024844742979194497989283494349721618904053607197188956646833703934531538871603520868011962166179246620392905648313857676879362530966461141142863972951975809694572823128366176577312727998008966531315428142535691746693131316221513170972799719924141481397487245179196766036589074561385651895276643499881712924969251834502082133344006783748687747257587105463405380042867368282482502040330197246762652479170952802513028039064580728409645448468279226671365052688926830864372312747581693362854015485318167071485679152318255182386817901358112588672237172912808606038714007437553455065076071256988446455017696536959151990197099188710566647808269418718914516498719968556672367347446418907131411879654056706894271811578041913245676257672643538595309520056214621533528489086045328444875058978631541523520368657134812619484925968636335277541984956574701131266260837302719981320226117150864143042988283815604504299933595602343876064354012176115039488941374907086808531258100177785406145308407147319536361097950292171906542657782235773439674504097574575118169545792576049468110382119220933051554092836045894505362142112491572619660369953673635259602098067130022286929255134414298094303414996163325565239031644165243087206494102338497202290632262480785588887970399943865498384743057492807132903403093149871254703924222710011494367704298296896995747053470292718551938394211023746947438135861973884209553331038284545948850388005161115590276447574910333218902180898298566917798116495450028410497684932933628625351516701838533415354109613011074232118509519504814216383495303847311139938807428613385035432302049410970745880088269246418938129862378593283937804443541744458811511148646983112220555152264648873632161527324408515271115438737492442632336610640558338784636308025083384319540031947996893973421071731186775313350543266719382222868796016142152165079648856209306178344766344732666285565465845140146202542239293554400919770644367053688752953781223491749900804794140436609113660549711198700348739399737746554186102164468485967240576492060499054092387155851231913087676971833157912345870366917139994067801581710165139752240537937870117653871855227142314256553364065543300875071453094484368165093208912373032183684813910889331844476960697478269860061767353715273714105717575298641876507852276567425463250184170226644098183310312586777583304939243110648095951381851175597932889772004432246184503646339246187853594311719736848612207812374658289813581146935063177181426086034706984442561869549692256565242133247978985683667747902782811835566375111499711455529607497896330386663634120989275302789548599804222716719745970620526907866574992329288138835861446570146714919026131568264183764707948761901233665406869188197512985101196663350582371331115351446896802946983201431513460742176219167073770636617451176340693477109175034971787630529614407933745842018417415245983463895083311125665371649152700813345858968467172633621789471302811009743017909990681847473843370679417163453650448538578798991929440494004303764524876966179273448679698630191968075772141507379632292384012319934731973158599833180529578057414002679290834787219434462655827259318723114326943732313663323042348864039203268692227833517358824699355643230724683844348188644145478616285141431442216244862126806117446877655619298236862345796036082848691078886694233468502669633478875889296881368171270024186673156361558762404723497314903141217954725378218854857984502774256130200825652575180637733641960813928099527258759128999752620314563703136102425221724705031294553962750658529059209901378742216005160136335026169863382360857127014199441996587495665029001809007481474477607167939721934091908496272237184260321340386925476006141910465844649822188277866990685493560587594501738924151101707699433475414666594151839753158304239587043355794023291692902304945579699083416302474169976019495486825192671249487297959385903637304209392974874039689377000065311770380972287166642673582142805878772037137568896998862813334627631917944589102428894224402080070351164941187583371926450616630148068795506597494523350097314898975046013477450049574234607268285577466803579619572745509591707001401922946147017619027735533234771630174877394901521852037460495239904908967207253081243848230447272887797549527844454070136787742960637488745569997373312261383131614039153017656574279149664038093757795173987698555701645970372649066256061394776197687681053720286996599302021957830147007079787465073067282797858972261194024594959268341625079501925963406689408487581107756240299185604906036724108644416946148389813220166039126023164162349860170817294424175707697262767925108502013996778759111504838160993772220711770765473061973579165465150187225232991299673716195631707600721845217916900060768499837884608847916001680017978441577579438226672232969963449952728079415755232423261797530400598763249894048872342347427831922926364327879521651311274803506727235328811703839440583422906863331178490477011764281269588695325439271672341883448178023982307596844829568039649076312729825654921948171473004426850458940728484592540101297456385292523600874817028888525159765275186703088556255682549663428230304832139736856730249042940643244763518078554820050154757725253112249189587498368904914180716788139563222296746775896495427186685402768627164403027477042933586832586797726987938850275943496440942794192980109072224469773414608999476189303434809816838446067748006870527689701625808559244705752134393354087496753207041400866097229552721656125081229507632129805969328078379142905242156479367210547320432759936376466264476057187214082736532871331059088642335241200566339386386709279600028124620397637984460156839554691109800121915813831635900609608297603584565430827727552630974085859914623130767672407463950954652494441394226092104947590315241472492857468768036522582374134031747020550569850096017790095027501681771892256822936072372700445253235887115551333260956400033136523490413537174258901450616289391497603036723795096092684161365967085459248234945083181114412045384560146961550259244601729838721585475307870457529168823407170108592912270937796141225565791044110652020295869943945006806684861865809045581054927176836582892945274443479408973816385879071696141050560593229951694264605391822072174020219557789787721757236062142441408719329567386745475721484275559179785409075450251980095093859431097596345712520029579410181995306506239848935567494872938696073357342597960297834861694475955986158598360474919073048406227369616119101209283268308761452841178926131085557009150529199253506373448069540463277889880084212368224562023722888694669350832555936168443580174974039158911543945737860553776638500728264319791674255915234805269938132430273311221444378923816776638279335455130120974060708489956081570169707441656968074649215981032483307096272409734844275525598929408831296940638481985936559643194921459893878963350719478037213969399042854435765256563560407944928030882950304693535200814981526753986188249737904831855655055426943275976363843553663551986998063191710636730221945900847363046615567013343720293700030762494065096131079599459426612082829180383502422000339471655362966509116297568060322669815383375563841174562763221170637229738502929225311053149958262290394512294153361758853475698919413975978286392061101613994387614838743577650222212459052567848828078347293298110532983972144373508643606738308664875787837720626324628436360162292741889719003526163164379267081478342277137560507296902277250949922750917292695442870680200158716407534746559733107771662766955932410264638650562750147725950152075686759663166559903833685667862925313582635447081117844222780245865390681342919906066470668750336444087477115051422949966112545282269167105175715287487925906236126785501796050968462249233552461051253022154397621429928600658146743830137042680053013098498578921225540874196852640490546719529788806686736395918114330493047233593032608387342720762280027300883873472219066546620022370001625583513680330513281779662823604046595897758169928127158728151072033741256530038072838063455462213108235984363123304618330165166599327196980120991657908091305110132186690424428294018579869007940220481838956149622277493790383652383709991678638337695708570717931598982944503808827028649677021929176698482731244120409973613579754087836599959839840217071695984642074182926761798708909394530534651724087708658904837617735452243758865314773029897590253228417411959798669134624898851956382953243983018731861990850642268296335888372115558160165623897803177056993614269734311776837456461139389726179147081515084589839993335241564965954182008365968764564403728278463045019989028374771264956804520396085202122874557895882309916529931231582896531326840941127562477658055242567113633662504125306903252999537738571917334111520363495608865426511524449481276615140839096293818907913065956874329388691226120644923438973456672189796918650770061876687770464842679241317421463875482090984356015238384331431493051831572992974901227984184642699591131992805387217065606843537998580333004138538773753850450556786265886285376127110435772512404449305977587418676852316441311281610574997080362609903669629785942975157252954573184566789900962827078434475365194500191703528016138580462169550318009873229648674141604273780902309269568988063568574429698720526696703481616905948411734547405060051208142104705022825318197381251709072670759245506346967723054517536018951927129930258838757199703911848196294092517963422701005829045423523117560439471323272393686538299825327378343209916528741213163543024021720422969001086494807134360108810286436089605660297156368157338313391376733100757527323225614301323333873664435680896863875743970604361268690456483875199168322738900751883135867228374590378612594687927290035412235575200726162223360268160578559116395565485890948753632920031783331468235376224505874725469219223161755971557359932037309082246321932797575613372062122629421356964465967719218293403434783537870534324564324192541992653095349026045681099459812901156738008725664341107125075809208982940386017607991134033165023474037528762978403120074352923896588603657498868192658275371880154344449443965185158856240862208691056763670684369736373583310423088305350110999505521041653199535488534034475464327302805891354786863653518781544379064474394038507935047025124740213938517071577087598996567292847610172480195149421338243442980443295277005656411222960389842022829475509201216999537464014830840908539135690964554385282561488335308294150698674002245260630150081394027689574440906009224032363282823422268685086194874880146752002719879598160092082009706391384519536222002261732050297486485753970851443211185594045555618072295286603514561984652428464206732001493935469301549282770033374748843431130392327192694805317440106251760645663854650153232886626045262231350269665783646082002867921748242633706741562630853822217885075528722271686632975736195445484213748142846772615760887295564357251620847319734413065701904331192483157252984551610893343791819381372487745589106152882057631747822597066197705286855858244450083699195062210202867000985761374847351920974444088237967337269068903681301450258063179463722168772945594014612790703712866835592972406923493096721095108154000965204283571989128148422821787284518701516706525878657703475406020198312034322296870412594582756736533389786850557943499281863006830195867451745727384258037729370122024977950006325634415323635511037691993850898084926279277600468603682624911254955547827295599724613871832557439629715753219574270509630610343291893416192925617487438057388124626606896794803443279799252647014656727653647664768502800288180388878655990216707659424797137087140144363051441027233391549462986370455813889514392617601148018647774010288923646190432974465670656680091340847889115797519635099483690595841531192038243880152752204726155302643868198332930208645400753132450115368600480872061428666237426444631955496903398085224992080187190148922897022550306673463809482950885274025713788227887711986912794153569584475920680404548041653439169781940614689818449392864530358462895594444633807094774575971624058408656133690074192479515686281720098057719774269711942208079464467423238369463481937723178052942680125078275626862941826669309410308519786753364699920473722754944378588006165964477710574013698867735471094596830025960062752381143717448131470124414374647939494833587856488662629391463186040014262694035751497665369174833972034605817664745902430269441090085759945936651750693035182017287819531294546926506966088644610449492206730116864238846419275899605493243369594248455554310638655658624453982957340686941507542023801846969570315518030388740909863748002732252058948602063518989088986767691967697726826997843377394988266289838169256469942142870701863443366114729018564251987862186401298436094370756453598931796985650814160537473561980689965088287101744222074899882403276122611808667523015707223527681641751355467324368193020920958914692024554712635995248276505567323034055659947862974083078800048292071931461611132156458178275754618343498417780456379692123238837541180228803474408437845027849688120116146268066647898848461068161650414022101337530874833367657543611463476836671337432579688163542388431409671445953404761545256560571249498997871879753261610765830036670582880983774341571233456337890334003831837044896703337531204282855949962795932067816821219755301174033734068512496329792956217891620479179926975042422466780199937216546836051457039000173548209359006654557037357280457256226390181639614624983581177772950986971528656878997917464292036874708415466169728992279537098066464328769694438593391088552902751356402104380194153599749668702654304966768726843989294873153782193268364283724420024855544852114790408588354622759235471104328614409298457382664226980756942868140231833115447546291073488452312015857363413668756196972358314857957990998916441820872576021908167618126044577319658356959489406171450352632340369261775217767404442514350867834262299121932990249894898713991545131215837258644467882790212504817098274802809863455033901276308282876130457229019289415714464704391373015097179190509228217080069632591165072264095544170460426193695542463757015895877316352298906013428880414116940013246805406475631457319961902084494179029706002807450874540486176449506258771590575268830021489830355826338978289240848382459985215066233823229155729998244426264671638159642104071773210508213693510448805713647154657386972238861808352788279792041976328431953472718300456742366950110398716858620867679718751464036995230372239366369176003486627886919843070394185928482561997470915917901013495344620610908688446387985976682967740446248398437111463266763048766013114083466482462551130326022018060535146868841479673555273929005196609750578960312598716462887410367994423147444320844155278166020218172046345682696766616415899982073197807363273282641443979518126245706217291906334128838264380252908529113477569138256751453046632683289464563581656670815485263184819967694990630098494029663009338876614103242739655328047973116383247890960793555742486161864143551348021887226181039415039277254944380072199062619687476923910874390801446630770824819201320771648265667480785200516967311840060311180889058249667376612952350781535660262806181640742556996148197096714154228057224189780639522772291106068316522005607222397226409690259962772855983173581129422268711723544294107182850235220530914003565618495501000389211516285615777777302000884568034827600303058624486800640436950808535861528767765652388186924881733752878817248691004177788173315335050691755654945247419653626856540243934978935663374796663641662981785167713561755081752295623530187444619319505429064731574059494028270593498958342260193514317119165373229793807153179249346265084352587131592924743378852225100461881441430634449668794720879666807441696085973124251009417428477878906083254896363614269917693212087760742647879094258102910673227363175996438139576263434280594768654591403134788920003570864126208282855820023048918407384361542566125613653228420075364767838063092471090429778036081571095087585702995263105772193121370958340361394856684865736799311078788942563761427854394170543368144038816549879327581955509729823365909084999611057960645859476720455593647764991169277169031301454255783446558648390685031434034049653846484274772558238791318582774881556037937034613700017965207708837101192800351793919918304153185722303933860789884226938494388659938560442293695969058064852807071226271712131590446384396448120643494187191520129582729258463396828578669426388489485985506244189565963533825356777565477320157786958724793048696156805313449108338006425883018916469820033654489238948606293823394368632227314047666495537178567379765977970160590779392664904095315763026670355079089587984233647878290475492779698889086732138825992486364006893806982599498572392682976475572963699596084736723789133600645173375188712940108613206775980835226630776669141387103157425038321079593435369750996209819285945359531282067728574764908408021296009087352911520668924265006272707545118405563398701413910577729789466710281407293561008848477393598104431087068941871535944652825101024813466528231581855327961683874099085137187474267917585766300117953325520566182237629247797260889400421838822538807956950362915043938415764887762665643414227527828942143777914131724238999692795229046515469690212427787842861546511272723531394701571019713169594635130170440157834935351437733297283609468445484424343199652588696109490574839797424921600827708273567952622887216495326416868319620854025511299083665692311122395007698393095006682794481585545360509027156956610735542166908748493950171508234773743498867539907054559953385010084755710229568311679156884655449617816854469011651589958505045531363542308545724362186402786630159223622194853236510077358100796432032507482551241764595861344092123220829162882919746768647379174436903315991453343515885202041101005488963354635408274761358532917415411129480623002724390451707356690844711067990466504283815394867637610938588954672169391001694732786231463477130809056891833966608028756614959186016381523824054156068461290997667241249727693431710961299749677611297686098422255537171436032369313598240547653088207275998720202085292448668254695522900199818139367018304501991033706751841734034733841966830026664688429630654854342648679726923460434724256110918488418168664255067424816616912395393291296994622248985260286381795326142852507443060125716455608993448806705084103956097709362104700932886628324778646009848832785309591783847644554628342114998167198397243718937677653128945052793301385324065555548081194768285253717682600343094243272813357986653806683344665797833874350164323108674016888305081922784072762644105551551774973253085164992683614886635125635854490159480434144601103964792428422245913738064731310170877614906706033921689477798938884492170598540883253197571276221567588019396922529760406831461723489591009795683713643907619934081034840044566397238883028069938939260138060964511963778133968697153609932744016885290554075098496543905184692898574138900295869517899415611176041906002500696475950716135579475423375738586441265700555325284881885220811887661765176690857008093231250652829194408384532087110594054082616681345707690279835023021074681413857569493723158482160185467698172179059464419166247560930861403368698376178489638119032259896142397216431942153643780421006482549337971879068201870825140579445926133852935687210315493089793950268692363703900025299105944025824373271802995659933387767071644139400140758610780146913320365813102183233409251760590790923977922292644228814864984013493310587938537319307336436013856538014700345887021671353288346390639088912856482656399853121928648634352974755346473129983395796138160282426252077552563629865869738834173774647817334356241782917644371125775934885887293576459507313425423908350258595906082017486191319485428810531543348582827989662729166296549108916347892188045086927174158240094627207538962310806668870687203722293895390139411142395513582685321133381150451382897396998373238952679666268833773889913845316351099489816323598833600184295015023081396510935007448117092944412042168368832385900166188909950076300330693249651161602087017057982398160235157170325955865833568521475214609312391222891657729552646517738061240935425989181577615178106079451663358614484672270834196458108706951409014869173756120766332991164363394923900830884638832475638090977826051151327067911517384160592576519929173033032806867529822586772017564609777488291413712833433220043822400024110058582587793244503813491349185997817760720350845398250162469721842396348071910973896498870261383249969874536038823115841793359696444556459137688858846541007373737469434221700103931443664978787027024072086724913013589582848377740128260980599717168931663972061628849307891536471462473610939956778680296401014897644148642234189067076978338363705602153463871073701352567736430063339622198374328065745683099299562539511776946687367198441731266721246194746757335260530487145586589749831896125330618383407226252959509117455917746469129933828756014781028980239578452879476657040794490682239464082159541610649852026616340957331664827834587752965638697201229715718527568800610192610839537645884259055427118240428127329603698387281129276880187125276498538747310403211525099781607920894120167146552855070379064261479006949028692413931461817361272348634857649136268781475120628942129988495840781636232119595326998646093741515734557809516106358234404984570071805879092261158740547701851905519165439195942087817933171408551733189584590329951982402327132601966685873908355879024378068553090852805476154222760346934926104844244414090254231544754130774945935570449548017934442884742868098058620328443152243240707813466930709240919505290875861362563490183154837776046731964885467787699771851215008440574629881775177283957147445836348378207239079594593876968968935533665049040270003409893283791170334282985523914856175561112036649020705771183134104067681210385419429335150211916356082592472799443886752111591522691463903467661589616576768160001571015369782563768014605273555586737641155079068955229637334728840878386952043853710867480100459690368940016457699928622339070660067651616170399051728655681092768289462834613143896225892638265638138561604280756604948029433915747844914723002328888407290452145727830897175748105562252137288002697996352679399432139766763088660948247040608521362493941149306896706376985437488355748501765362385631934678339921031485998518801187632889976223582426293338025536878366703033490771508878765042675903585631392136396499641924716983372457910092063489429432453746636309390412026692429141563546963035936876428122708921287512128906563367035397197786953036148506880011167140063282552306010136910946960142027816429491952654557678417862984090511622331708888162916411234959341340456700453575340296984309214205622853659902463077328461118148062203886198798712676234645743000430382103318258304872162029709587285402555027660319186078586276810378478136835136513457620728827400662616267166520700169999655552605627693592857052807318909999096517464909532577435842610303366417525780006263005854716997349141853600382659520638145460718932412055696078538817493683240049040566163273787329359996894877027475562130226484555328701965916710439910699690087836846220718901749438212609271876430002622712094096073150117953152864060573846628914207887548372626888071765083518006728533903127610418292774235109086947439747463951628312941086639373470881893274496673423462837835070897333716944617573867201976150057572716035294216675289397903048613382681345708599791094872962419021322886300207287976035577579861340818522135499984147216232522796517330738421135721040170668470512074510889616956178412450390417467475174473001366956500877036566112940918550821615252856191902446342213404732080070799964588392451406897238681391926544615605576523472713086278051598603305891641995304897417277470148227032730314238167894627462554723016304906433843321796121238285117627033322210461483309642773040594628659693336397284466337500031823764551500931147485995299767241456184418569963278746147153181909167374885523727866532016526279959551669939656489017606840357783555405815666692602556631421543552836576876862734040717556789951246286004145185429116247569512918948370059734184799409747235141525656456833023586615175685301521054969319851907540517028296010542503378696948425272568310410270534563546243307552151640779943138319904872250246474148585176150559603142950855416773003705992556190646818329712432860887090633602550442542295399672368273315774856788213168439555060092703884569814131927299873040423796505330538685169569220643858578498665853244987065472061779547207394866596243287445019829031495580451032602496505046771784032690534622361034260504037371464955786856487836156536278533077984909641367647283147846271954664398776612383815372710494886792690125386379767709211714922726826324043499922853407381967913402892551573569005874117467102726916780318847542435964294943924220106136456200992659709675670740701272967925469465150710434321171279930952342831381753629576059529554371466896937148454104954914311226123969754044970982076080164897588649144280230895807795620800952982889490997302911731590445747945857536889257835370178762284339053771485778144628743304865343784269046518680871719916738797031340960154162204213723365682087676848734837532166116238830475528207399479480922924326904567871425761222959272095631700501812047125829782401566998567748728313410359544229054133960407955988691291509278711562092790626177842416830841282007115416928131194463971379029603917802234847028486778842627567241904355950861931172701277499214049324018198889766049584873079031106914299704327051976048281878931408119264987389869605410335409113888681141519615390103719808014019003450398981504302208887659540170693825705036757018965187957762200423387943186941952081313229664814335052110438206088398787586962569277379006632654817424858814832289085985074572613589813265827419773766644292280497521289850953850002101527438338203194819279023937614788506516862191426775821969047749859095961588483661569869122432219056601342171576486732495491434816116831193125050798734974442899484050604936388185566730053759590893478875265707167037249812326264910225024163400789962883100803125972884602863132877857637787153756693050097551934441336917895813138010183963774583008021797248536129050525608910271535143513981900194292218006300048001578487507401744050717329539951531342475118786369622864579576573320385265807382137850871988257100032900041540760750864850657507261969888858452802708660286596180015088391715093357113555030579045469859410177406481142105061258223445756979727613536607418772985524026229901097288934518047102519807599621177565322531078186437385324367608066436693926292516374234792801429661637899297697785620956499043412753887261009814010169008506876111869741237811055613365172251645991472648368933374301576129486978226789302998475897657186867651688987293291623506253920247655603609688703163383211452065659092246270841760281696379211342711650106771889021964739767382954191520932570486031222400494919118643630907712178003033935575495115605181686338185185625470691939672279552729090249680866084505588135799936789386097876948886217960334960767677691046768931188685254078740769239420069657140663969427836157672737630544104160336293988637669371697929581072749436781597451717898246917604159176962677851426341797485326497077455661620126603040302804661198491325115783988370096681808485906364611290548102142247134306585920109934311680430157113171199568165611981541158276960052386266747061417707174570908114699581469023713721848505863672572151334923708098813669866044911043296444612316660706589448722885706924969724219037712449743546007730983388724257920787101108536577981476330123030945999739135557241069213688989230892777378479517091167141080237226582113536932416856567669650154338873212067604571469561836002653911159453899534725713590325303760044469301875902609898751485797836940545312155390694478409596486272069067028173707169264891186282468142885096541289692300239823939588860643323557063998025532541299137416689199496074579376510093853343125110213285335500603679576125844098287149680716090663093805015640570174942896997975718446186981635621508278818125443756978716277086760422103262825459947981178469513590424656707208163654719985412551189839785285653527295567217397876119179791154773904894329889462793190576355958555500226947103310681108749521787511789718587976476666070837404064745975711275001434912950441270419962648857208167125177437238432873629993817120923351632418977844355820548924324837050660721884497659381602960697544069770235442380131845234574276043752767691724312768897195765578206710140124743083526243816488241056880739732342498852605911151988022042612628434241236221011489753874993297696366055954823248537768444389869903167079634763695709739117265638874388394661584605012902519501961517540867896953476390975346819192129118143687339997086366146803901676206820828105222942512855388923702601252649582128967459669683159779456148949200155611508131582686949529348854342045610176266169159916560656371089614914857800653887242082851134278297121562084531779386782735042150897495568037907658457620223442374645715938562692309801085955033840939086523319865961443131725128744639090076523244965205193880803398629978712248774380716895615250936177759135478424393716625231930920961619951869418386989592007050517813075729003069911310467838215936113290337538405473472576361735905927257279274808960732303379853081896686754050745251643279917356883992698459582870414386635822691919765042557842344025003337603282883768526749633701920671522830281116500103626497498086772621000769838734962605858829720213141884162522005121304723312208222634709152765584627452799917592213038837944194224031439892556224348619940754871477185916865102388980199567284449336550376884419439888311909264731864501343511312762390251677809460888576391476764409884301406349268637240097320930663330881951985423475001215751165371676407993230658222589587147850262625568359066041497460387821966697486071867454688419868299671860569371344173912303322102656584300838062362168290480542726513454563302322896062203912746345748490063032059992923426141364725456453497850952730608516114015872545322098797170483677342200338960077168787366467221400177468221104772114435435598288089829265249649685218143307819771759779002346923003519249746536002141974062554304214993515495285543650613946113219937483339110372641150713019296812300834910238317642642209854816069179951382155939342132953257504826128766364588370071666447588291767237095423780131735348909755118112542240234484591396963594651017872688024618167878647910965654942365084733047852298541339642768789129586304750395654785032659512557964387070119335754259692576878079277759100861051370124597893744677859762196781059591672607146638267791916979926839532933579023552180564821064217130820104734713014088903561673133302004031099940021370905803437926562140532947665446742412338086679573802627699857780502788308091124958500258571587338704782640219854916110404802676767652960908959874141859097621886340737276266859636337377655104664939392133136358549701077277655636731043717438176891480594285326616020589023665487275881536637475012490420171152274213503018856320787861793284006419725867905026543282619049364977821994405795356680386266157426113693904446822394486580557854418488776071104608155021938976535187186622409338894772951461294378561309984644874280095135522555044110421674420287931485483301810334774917973088843027910876437809275371135075812238659145863457247841903241529742034942532818093916199962419370180490792837337428596744730549782673987678131374561420857738765393964337208523468270020383777369055347777781353253373258441459734872315234384881984373617333683589048867983880243354293908599543109828305723398954268873052354310182664517694181326381357052093993280004413188439367550880045272682260072525217812401183327031799162017947629818541567678259861151396170272413259008459240565642846691268320908564575428301474240748862615983202078547876686149319640987868888718269888773038745942213667904048938456435948520177329246117196409057822444853646995335296883856795356791752364190307727915647447745483557800957709116186805309667142574606606378145545147119075248341048586317377370930451485931350159993508820601557342771859509534337827486349297328451545631833683331797731359606107492931222044703845180862719244589166802663227649839124926932385802842890283635310970654646838680357723910399328926307780969238427946385266967333800172956324798532948310821336217430487287220527192244118460051242444507790744372922832400878814297475960384497788342140732598074852793912197818961813923068854736588965679395850303995143585562033433966098430663391254523609252051919674881825817155304797085497249094280980255472042946876277633269626118888295244437022841026262319320379251249070578731947814686980624175271955887028479888008195530867778844611153903505574679189232539367631366470415770940638573511098674976329341652755200165094358281728675403955900609834390050659116445239266724291027282881817410374586767712589734675497357764169729197125485748703977032401935566182456259987477507186741364886562809541616711728581346245899856435646592083034335246209295737870686900451615099389245652961976003898898163341392399808545928874540643934664541139144004091334514788779028701925977146308051644921865982394454348095006423141126645734936671699973864669185608433114978641848664554855033808971287462690540579128857656732003911255412622260161282179270674408992572299491441765584985649970983168574441559386853141812424480891992718299782799075976864014992205765259619022098425290898186840070093999303373556711637570059103121986549424303168661262813085767342935149374709430566589837597134411923966755814528219900640525044085125781985664258022460564457282476832456193632772941877864275875816663592308296997331560700221377587247638671242668862881253950326599846185739330355187747282672284399902138374946009053261814274685834908134662726681175262799538822519081119576438510157378522324057311699078294830837035013405705561065536984766653163623033215728059252834215484945084881690993438885825361533413332597234657360137812536914123984341706178002344365458005300828413830902598033931504815932108212798768833607731420738924901002216767819369676756406921893350777683554633516737735734084043778690879452529848177384316613223191066329119443392648056930844239657192325953630620831190079072479840641373902562559560586804727327084187139453184853024278214733578853948411013063642978925710711527797205183674050615680281382939659613358056230757432764637811908042617416928526015567804579873699066861055597590323473785907414743226547274583296789733390390296543484122798038431104362374886947395187534394469952099097348130832478654176814108805664209540315962593040323010365041148491426598780204761323997573502906391466852909278997960780178562550997229686649527532789891529320342624123528298347341771247114947821345880608240643051443581810554560934286113224621748643399362740460712268747867991746866349312129482036985312683420971579527384710921097699006886846246078302885562605535318919544622283542522849451041701257338950630152031545132301257112235271072793139751682618321102157912875238434247493448352239021091709120565954809617249223843412128750504364324148837789858726815615885507397823217234737378006023091263611513223148823722560009118276705362062201362505312129107592972071998977723745918679096691949616317345304928117961461439283714539600801861151400815278084725515759289457237891243983678437858928305051454464212564858673858010787166725882554135378368013523368482912748860371955705727868464896481544778142368197234004990108022909628568722037928822456985886687977461610624798240290551999276835613900759431513217984705000632224465980320329413201350196333357159619797862569230996011483563733793851555818922592300996426840992981921368782582588949893478234473985789964166900085881290296828918469213880263830399757439986827320022966544786333123822635797534492221136261044403756380287452876001575441970167103447268201744669881911862361739811404191802252174549745221845791952120587437411522458717842631242386303186355744486077955677568654613894430624547088850617293169263262413745783009153890072730193165746301999993118848097822690506160719201408986745650435084134040983735557132046739139365803364814596117116207597243500542613209583602641654961069723361864150881192934406534162940086660910966114369610046497688871294777573327680750187704754220463991654019050385334758852164186682157430289306456266891389453745425882497640766182356441584532933696863219388826698903304637179278125053898719440350434242178984069706585102870391653457618000983648466952039200199742714128624386909049953786988775351927296759895491581400284357472728024687548611736022223384814958127938219868292590676782066162719870836205766828785427051712253565333884887436241713828031066445898752683934498347874747624538762887409222537746717338305177889974544572986785319061485437307176553647212585914996661094426137778102745355910958228908271846568660292503314611386827263433433664686168851772693683171385820955072318516836602467344077577000991108977640349319289075872653921632482281693478058162114035699022526333452849442010686808094665145069424447809378519188360185560398201757263888598989009664182501282471848003716364075178241719602338061475163088220586153188143637524700136629763241721250966308171196481772276283506795111832043412572547957074145069411369488202986863607957258217833960943360462481456250711652164955130746020581312138556107005405209441077200505973540014464826275203389080013667875262636070188826045318134670091300867231852947823140397819474047107594408714274564570911409778808670493991440676261534224755827428074744888477029002638499829043483899054913525643797321139022091313970021259612767418386852282024842205441332372115606434473678911894786453716930264960559129209741233102054067850204813627716477254428698328043278738622170467057564696916209700919118570541085123706896079841654948348598705123781478413625905913964233851739455522591518964262785351032093044747442094019433855514372356639670346259677986429724727777438242828914989859403294637149700531451283161217797343640459089418798021414343329810760063884750091672577817190085327939473899521715889620378067265792694931582134763240922769314726240236409831086022405366944705352181959519167340452711271941000724035241897431695867433314586292718628434313554866350677230283748987523062677032087504579449734253288886992420308004367976401535878716350563654971354454688538408602410104297012335051131326749994871404496156798677224247778022087963468235333208299332933646594890865938323569280761355234896924286538657110102903848294555261904699097926911153741228164741498239775626956327574683129164236805056144973514546897262699133518490816532981377887722666424929326776718039813499674614783047343687636725810235070940467935481754695888939131567262951138991586709756959662798827649105721797230437737238668053753666479736330830620551817507077410625776919856149409790676513522983998473644920976631777806843993730108264358994547217320921101290978800905108733445877359032654970269256764869920843769833208119255731054503938502398249855157519351191099948367590543062739050103173373184107025729051204589242927193834480366165282149967141668709958255006975860277071617814158124400074154588732170555229789062888794134367976269142280275095450251090585298176101262569574823732380602372817746351598985818461687224237949411111338601911707414866784877567022252675029184829495620311032768141352368844891335738799237835266596224074354437061575920788498124089209126982283172484137885491040414597928850769325743911504247357643455306357323152187588514302151012905351169927567507029064562314697665258695970301315925702377100313939296235213176349441692949530746739816899936116793362972789029989331844719526984636905578237093118179954811212782392359121938289701090987317048790060793087721014622633046843272605379753716399969923227891897733066617720761037611132889378299366626598886801958883869600627539981427619394876335148935059129740200256157959177932963016288266396100180695397571658601642583101099203860334240586521276981720642060092268247055656426793295102742013818948270216455756236013227591396776138222881605582433145284761505392685614220944303967535175690940777888935243930473750821232251534618019683489943541409940199193057868396351126096026893074234778321963963138423031497443640373409870954708175497785272489504252439123893478377192971773601528034543366192622780899260073953225266638324033799693449396028019651162444625153924409412179766835700586157072215915911784126633887140834533382184712044937893148439875502403993122143172379353824189877050900484675612372172593728599057974850605201004074624886492646200116485963516972171324679551731182441964922491545819112040377528070393637615272322734931228534939547522525440923094771425831866638622708794277107433632908678474174787332094557099686449827877674834911667358348177183224863380805130693719569802225696761031989234818405178804046548410801146707716244205525470198393191142117285579171816169635165280055671778010563613766652142235873527190391988774437665939337539235504567507292887095648647692630187362589839178169057436118147668335724479221349265895023667124903141331678157443818873108192244276724052568391413088404351294918401650957703933760461227999564493303405038148694175385919056847758535617628504787305330319091691151220732873052757734105272858297042999081232928331560651797256734986678455542288003593486922136154515475822273042928462056609865389185425089056613672881762905595738723227477546671352121080728942592453959533112454198089942097782660064032289263208214790212590903622636322346260424800867438731936304125720219727130497341976426370521340199203804017562462100378064253181166556090467076689565174355014593523036978317254542381646677588020999767843590205814496740212595367535297378263172975460377588813097277687866366283631488776235199175890542686164075296374806113818422627860007686060242872751047488553532576228275351799224875025602289937710415233704844574136009816148646114538628377077246732353895862161240212946772875922079560142013744671130412665415991371498123151612600722194566788144107456086687125095738130967205961939169879324750386170439340879653992216257313385753588957578065515953262592666359859697914388871391976281864217893634398156433905180574559646269687038489554693975283681056754821867890795116877533572194561638229153825577217005494805787896802131643087217115712724155374985655801466461684855416853887342631366581074784496464984874012020303472483468369581958907213509545315521854421965080988856311549430472343455953154289613598375391980681202418640736233401158282497497043325550210174165305766153727734266637051090411046570458777983225082207878968770837878328545785981935832055974032114621792932990157290470752546395327733479010561583657499361660636611343860129191889168772110725009953203410443379734422315729438126639829549275550240514464940502461021245290903942115607616694808794213981719495313388447894292686863022273730798967508840073736878026905944844375176127938301093213067638268389446511446134118794249436439260353384092471194037289153469897318245339929234002717604192463197375131322583012581409087214033799272926696437379839133492482731088499293540076755584450494665283377955729000122584620124021641007736166469819444058392082661475927764957518237179140526382409603229311323545964630240955919000348291690763787467633843836393260819666754684765237636346836805390610484039794553440119511213206998541566984289755916380124093605376816256622549312061745686732186535026007078047642901882628445258199879156819397002812848215168746892908466203219518797823997585002731695414471421458553717263319731692649670394048675742736066523208431906817591038745443340941431890349310110099850698964222601471368781343590061953763115385880751519514614088554574834954551355202969573555276246585302311029629481908257252550789360410132390930995149620544529246960081235634680392093433195946256472199063209779167799620950911098876255164694850886449491114131346249259518591759178814104023427666414695514132987726061307443925556157492994454682459455291075263716624143621006599841663327967569710005430201425549783031892028482981513926445539965629260666011634697186896299652048821609615362985090405128140175324520207244360975951740907453474943332360955386213002419259127512847209523625229917444206453959292582200085273945593669327262468906513296968472599947491794466516197060732795850084868098700420311044839540337334862206839711280897783985587775365707892108597674041270695396373129649532474283065420440681210927689230565404622629870061812497528438801680369424227868983902292455782910997103582219635001918688014751724026369985647185527868509624108751324430891302426269175752027553450018382729288542137626343699262717681131807816983148470395664536348904940990908297619329007539287422707198277935716926467298203244318798099441655244568629336481233104015501160356601865736448979369580776083087936566262297661447945632542877531528169676234305205236350060504598334733831394059851841389185596223228524163519834492691889971037783098072732088771253176206187002976963926901599201397301629232753699911777656237818938139535489042813295922983611725607210006191863696622285449184413162128814636930996484987871308247785308468503194379869974550664299309600421675947123318034531506467681772342888715339414518025551119953559464662973745360775257955674806753751584459342467190610512984982635907997283953777023249469955666712707606458255232672318683385124952931859006844886746086480157321706769467424780735949075133131387070489409261356536681123982429193734812937956328262873609717209477440008088608978141327437308568821845544875977169783237617791918697051631670747254892635080391390422622752058640896607209975943003552095382747442184586442890510241354656260765800812332079477241021041112172071644679958571093294495173356646501310530210696993391083327951542725659523137375049548967425254475011741710545451834359851465422050957390764657303945906974867998840286771017596640548802462074948053843412734566699176064260641865213369041376671046488545275719311226155056028752332123563025684398955889477297572298329658610494094684987334322975661005664687325051298940426217654921514223737300237102140332368838254185369497828670997086325758916715230992709195470806699505899544072916984739047633893649340654054900966633181487255146927397501542344315427219083635657192936045171880993324939386049544081428193103162927814593202442956417148484740481006829301719499838288284179682386016969383245589753289900774141669814853367512300573162347634009330325566717804115224233670390295436529591148389992226163248888141952038930583122663529837750493563380780042178630487653242512554079009434474015795726910306965607469381175389232905419262813656273061110796119010329896570600378140568145530663671761545648034020173961540167310474987845300039654483395828043032123412650943128508965950056834558980399429059646212813307454579034917185123589193005747814986194090228479707707722620029820968872576526523010372183040091388527573075360006578878185809856349386075658813548575526890155979470306000130436288453535090516785633389642298970426533062433383321635236820630907189398389097166401647487758627812726788754702948357838270619516987587412160488554429580213960145792216102971407831102613435408756463673644633402168465967362934679905449838885275794828075728028946630168688250179922427942055128865187041863908735745492868542670198980808972729724993816051050832616238391148221009288854336169070393840258335652663854652049241500573290311006189069756717378916269540970762964421925211606567621285091809346984802776879219700478694408824799178839716604283401036653830597600904430173320859417124771516791827677808047251397810163705515225356926389476444827522473986939284362232114168672561987371747969315305538941107687799061282001742039747061645914295805711072005091486744826136883903581354974617201523661597510748774494478549753841903589043716256810918770358105229955011102025085853650014911980647111238347497055455641059085901544654591640522893753017892408804663538153041689489681450937514513194440114518037303526548132176934558099398152910098384763386310677244603753236503188049919005127962828013169759649294437345010415426861615340654437054996890394426257010634846951535234077807687104644190413823147633393661330774851891160625280668420934012677468019555642261072252085098527557733021855447978151480041270766404878807901177232980129583228964383408212887688087414934417415800975488525227239024492444906706802892052546720876855829717932778968395632447301388657670140706027163467998613931864247473664730959810065302376154050239729703938962228147780435017250803671664608465579370771058762092550792910954651469305549888579995862624337836597602239469748629114195820829780620982598548745762640979935706690818168073179640051636317463944235296318888605318189307662294400427923208924055525656055042421950081253302840329280857681047639056037816061881477254349325923053603409060801791552038753976236102669793529916292812214284964976179485051664123438466027954308140453510681639744076234711182368603657565679252312680513079487804986382614381347398240055620180300583769745921948800749287025588766959519448245963537989946357763625944096339409725700825191850019236443197171901718312571520846474438437603208979529408377910913736105488679477220256462328130455842984714726652475188571223781429520100058181065846052571551252822170680217259682691647410626926476133161546015391875173453680804245666034370926809081331982820862053709779702561206933545643578803248991877578882017029695675253240892193893332515760935721706577506591430673341336219219274786383097708407054424169394252165844020715230670027991762393166716047225379972236994994249244457693578060899895897183143194531962186177370774611260051566338171814623222060489103509883194729091154818046357618265213665346097509211497186938337311165112931436473636610952246704908529900188374932862936190306083725212737311019171717756616074931995375676253136638322692650533144995649767637716059229194593898085137289543553552546789549850685150563784203418398878262760390663195891730953331468202876276802557709301231895261538621521489647817115017662188747113724504788974221009954581582311063762191375994705560043631072453362562249289265835942176070352914373206627689169580678868722862557514890935379215195721807601258234583341281185089271732977567231355977677696338692908216248574499901057188736648430340261122158762075856423990252929710806304188171991023342132290991712515510112469593371702922224754181141756244508203084816844565233099350131675773850503360638909803544093406175834965944620269349247013581165279373223127275460707363216182339833539300666685840156549027961217567646490178277836293797593539142909716927218552799034308003792987605738301370380691877026881983975970776148816781193425307030779574008316970507584557269328139264764168100810367715167721242112501972368405774083064997098491310733583239600157732677526517029858956030193007315218854703244118849004774377714186575869055447197023316452771653310519790056854086615582251719383278507682946597292538761150785183622847466109016911096116322770629566821161435548304166262595240685366593797818289443938171731507188231350188479954194715122216959810717764733265513562147874450705665848593029348392605935315300479598696845731880512144237274120511622313448730358213358925332083339650770029202264552298903739388553863932236770929249785257827389916214280058676893383734865257895763688447272247517614208910902421172226809348578055725253412849556477745100201371600201945279848952355592838245396414804434318846117361909438950814353793983175709165075478271647412276161875853930328046621869681038552256359168053893525626352416814043964090216154404951015480418540156601260127612080621183304887159294040212730811354837929753369168945337427046664712695820141680464279518086061379280623851559556574758797400394771297564306706650981177562196711000395798371657357179600361238895927669168017318195964962227634366587678937797365864508282433594788793428940821601256052378028157083870473776718598731707251935408566173639349490579385965016532535152658633341157845534724062845636845270636165356483506613721012650567603612730037967257767352797404200319761411156780155401547482983937595918609171941992851598936276686977919549549127525784617996058993420812211861267249067528277697688015167717447446246175304074556564521372638252818787174493944014671311861421039739095622427420817072429121249779202318763527246590414492451777403126647198304609609840781890915141752885904794917442385062845213688010470900001937678838782343704220643049769219343646688750184169913548563556444536429223921629223087642414749790303818083578164042817194370175146131705811678261903407344881602259348427691376594263806500069210301736239731002793778064157207387623304434151865914512407965419912811810054913491562666322569645370398354694357683419509109699494886198306043391430133681825899887808401570536668414974232528963395721723754770686946552012888341658817369005924356261597854280002006726863396456772349242242511582913293462855882768391631230590179000685330222767689822196937170450295426240228248644466289066260234215192845773388501667192014479319258486891072398196650362128865325201835510591266123580471458583091005714298372498488808543820072256836031981146093581426687517609956827166143233488632939086682203540473211172956259681482845214526322772875285647424223076320042027494243583958201110334516630652743893259127930762898215346802669398207266375842597830581659557037329919866618604761451658453617409192885573843528529768609974057631356320248840121445693559891925591028636077302472745987040820626229951875763333375872846687340500165934886724996004035397872795218637730187460850488084534146182523487945435962650122749311692729001823875434598045206341272197862736547615540342096879327855906832945353108963707388405656248183151090466452763145330335825903174495620106495342877175213529731821249169454779067193787176970221825898393759464524840428821103352079251347979985766086382526925530859038111399764615217540904638375521399332763348318968946660912211741462630750969749032552874531341803777128242199414697098766730751830972805355844948575431497480285658117468438295600901855530199561278272765902567365736832143904146191937622836049758246444132503112416420468624379454010492359123981910199167044910203944381843124397092358956553607795884060578914963898324477618572255698005590088673527015255747130773611659881998966585488273944502516775918051018326525445791958002308502305619093254188924057523227179021572424993245403225382836933123654844155232379189214201777318160580236980374192342788282888303887945457056459724329647302098827870993628892436508150671257074453539334797755721671969087820215636984131189715644371365412188575734048477566700540638810586669474663094270795997375663918826866808320399156535763996767116486420344443398394749490226759887341282133222507416990658040668211209440581231069096070252196734474566434491392383939980250127607073128546638889294907377290315333136137589726996735022399144426965094280767906243897340393947218393656886209356042361688979427147735679853520939342106542395181403309966005885474846852018245934946311945190371862294153387332543199206742870837888111721065461904827741267437223173005805218376532559792232584117876035467753610966802446970368512910948965262810290397102618363763142909851871046821931577674132051832245735751131091626942442325030551698122080291590294110309064062506630606737193292805822994416349904876104993212364795599554959531241193331965156331163855530757434550362033343271241237301294371965379362692646753253064611494994650376749691737670672740661139901298433310604898702048987533519505048841947533669192519438312911081076538956518021008654591707427775193244072712412676526002432318278722180366898241237651504049952926515749679715053979826369388242031699942635993808584231418644090722643587253868458137235300180070759320859205785168038437269961643125537195319032806240071242482242868337724159505037993702467198016262465946081817653086281781758169210627056324888381116617222151796190667209283117798620296464497298137136596884659650841957033493310350762161989783891264220742010613286017900631310241969408378722869505310901304739491740404646580429305665747157016317520909113296948425503414782514323536617426385784201258301544724655650171954470264559958518080261982721493706286860797640785191422374758313944449278217793611888789266039329159094779509102699800454356924406768129601999120270402943673094638850297453306698066368488011285027148680812718950184538948694097898952240824785065203835031200915926719171780338405280732192774431586208347570954863894281262494144540139828717175286526075640290882631213538801793999511888073863579888848005591569233833096386134489910478854775627262749515573962607702182924029647611920258578976308926019104402382173177565306118480083550139803238307769465975160046445003247706853316361478887579146045881315381467510911943223614197844529963028071125886071350503145459977603633338893418103005236070927168737687022409215187207649121472601337712279954354113311804664528167909030288910152429203331212433013103956719107108997558436837439917698974934087478198248217178749998173788032406724150555627514563279806478307438002971876069519728456803165873468363203479329812330756313332693887298207589231308083748820061368223475638320404693252330831332958464687143456520774159896879433349421944086729218479029644124655122784302133138608561287057136656281787158300904878883731205565510667179268519426969949420451733980693664000456222975379031977593477050182114322463321758390777906988716023988401711201114715806956396987930803385575795489371893907376566157009095307393903687071683308532111379245286172186126840457508751141062321013393681969777913384510570054532758287539506686423429216572243704385911679411649625684704333036038060299212234185908364459932406095678926833587895415648049131074980928785913449434391073793946622470083681308387788181779867481479209175008271496820433303161302376707976455013253350978412502218939752642457905169561585493194675042585678724785089519525774945318337257530106477629191106045558243166052472697416717174127297997929204031761131993584737606290006819290045430802746084224678320158608567928577648117654189344231809396172706974711537119745642879890533817691215025920454816999377444087824202380574082691488936251127902027915952031626032268497348865003360616701964263434739170292509789689097829883933533127173939073680453472341892405005703481513052103420814634327629796932548831604108964473249642666792209494000995685845497237805670972348153116064524114136841318332956326501527703871988647286678118907600283330388372238478418208742455774877599873574880221380142813543136214722000245175303739138712946765208644624446841581200176536676232436123665052325230302873395396041790196628680054597328837225538073448781153365471866545139711226077051322105188615436007666159761627290965794076304457820048296137062851124980720883781037049406577903392854589221146680485191611260668768350390821505393415586145798986038219231811221630159864885320415050053978473040471516427095769847837642741614200493184445666455932592752651834504457626624017160751100151567091459018631931469230754730365443826487728431057090431918878131780385027763100948669675110572309611730257341127795342828243925162202110544538381695305892230439948873947002715123720835818430472307348535344412064353022543056185771438938022348111960536454724978978215876590921693905102544344776277009504301286363577831028484343021442963316610277133054227043811283633327149410377242131049937064912606966682468397066586971170205445050918463743455437616841234379869356541610485057712241760738709010124068462204720553796597101126148443863461547803901388944936654405794599361495988634051926615327695049534541424884626608713949998786929346254028948870815097693878385460182015180636215370473137711518987318037614006590539571399935680213120387630481865228668805731906568824530846661950103817897695788663262821510636633672829491570447982421462928868602360099765542474118721816374920152934454324684878212741343242223792544187307588009899328581314369971764616079996634788490493331792542065468573280694382660547403782850626647823222451918535386072946061319083040076669925970868563196632766503298056351367825087786152576363698532831014911810483279800954862084025551668346759416316976314152813091954380455193744152386051359103093779703939097087120621748477401699804007935126054986570548209878613568758861024775928953618071479021448105995472600773711377780984243432251744780911652659228845683263863756250902602606025623500850906676745312906684569124080446654025031885880948745744913246298668637398819158377381093657698736328387349378755423190655241926465357755056752181453251924244677356731506253278077971080480911098522192588531895854330988829938340224760227893838587579056675360719737080121373878364831868376825357761409261489009657655463188825867319418675147178252750768378295568652095361859861532237097834621843702912513972633123679031301318030484417606859989646330396206227720773872701495446640377006588786272819967111848867770574289172380691342504639304582714698785956117989377012390955590840734016919661682448569728361090089069307919404597794908414877779575541972468349421416394365431923592509460211372451592285789274107629994529676708978987292364190386242045525994235430511833616761941005059928715977456383514346023550518286161525853348108999465364706528577692441123598805406309202188146517302021760924650948764965967378553579485324324113932538979786485504475295773367018321532518899872834820715050184738454126551204383006290635935044591785739110791591010931096179238753639390223840237864786768108849527929261298330855152028071549351770937655410607211362982783867168080784775832992866228181094346981160494838958742666770280146661210632664643890463795802141686526842788942536424870212454344263945001506633010648336174217697772604149882103090684512448994579865147675475951318013682337945290914634054826946486843732714825694280736153968323041748185000170397350199054673313539677784554075552186043196890537689928087443633392199236123316888247974282339753571242153413856457244814241646095491324252863692244313844293762516952067973864516216061928874934148712897434663966157387122375640437668291269367964884704401065226222607721910783310389271927481531984308027610627010247677485307723377073936855417619798477900850338676037958001603716001963396267921614010854471538621790704822661771381444231018698394530266151316656666537537361017146995098853418293573109171478039492296269939011028603594103569611108027738954242543681767553816415997010608349508878683270773494909478120528613600704116397226902265551961018912889050655622191355064544110491715623460072216159408277901523542026816094086304093452108907596258478811609700419519356250454362979953458775041648867336442926718724896079743493735637257392952529551381985227705828379656449466498623010209936361072411996704596013024336595540958215711892927197775404479659669893681807647903015204218737112341139692116460548487031155853653243922245231633760508702546933961624365962141899513972835446318693484287465844302342406541228605995858046660310514514966460410808353175709748589522842539301982402407920228550900060623169696140675293225329943320361724656060456862965457857221153913251124613780346837107970576738618127270840116944329452891293974191298781621563353894682756371657560245857169726677232356859579447792133383876456192179274873825798819908295440605062464987457428039643324020025644609927473228313925959210436493686732675236604747187149385851327877898619838049206747935083958536914718580614133755403369274836849053399513952289197653493588060678561196569794443531349480104811808019348707196351213783441164264834757697028441057961309594089810774688310054016083036896053882714016906769732567643945268631083139057143237186658825873980164327203537882455100461957373283614210902369768776686011806532258820482527191722517267630751540530272682555233374660902761850493629314046425098573362773853407489262651412995914878496268841106399193529036492005186234914742097149233690340553448680993397257437894504010234009496435759539578144018181000316554031762534031386372238930796436063654139242240087047452571119489799596112745105570799639431108350119186526201628366585183840084195829603013283852646499252940181194939322336084857131221062325354520092844360285651384402000721737424781828407977646578165772689441483187382345071505377103552759786898338677024539437414545972568287706567277144941740166327681770767875228875708857540267019702257458794559858038026681402420398158388995569397758611688819646893025052520765612270459664260492842074501016831678369417370161707455424614950370051325650747819483590312526050318387062664617417323795120365149791764469316191722369115561294782906508516614815497361644724228562308400414274823448107755892156727235367502204324017571452016079623916051733036604770788987116970508951603449009995518364128067904907679991789049828650568090828589880936014231979130304523700825319514034444328139792601013970787716331550486679629859793709310282065445389648613509204014016916543095856012210802935015620392690929825197241088507871223953452134176728003324307314532104731789945991310886927569779053258912608824191904644172877736806208010583044746996322189301901225213674343572075230625522193710058578511041286699742241963143337037278854182266826069870516953770071019222879224495472549296037419855275474669862078010645090276675907614950674319640088851537514008938473458507053283189765984434036802702792712800938068306133494679874319036718079102897612207568231523844301855304681626461331134456148909818035848269507292758617924948477330334100550005313513608497458447352646851279647617039645893928399330916155557297892253775355537605739369766213095623813792323634069066368000346761248279601512287087831829686890044681820481021544874071533523767512859900375187360112768218247167620921214618967127625640464129732620945957267320886594378779507887339699637857760833190926602151689327378520013697510584033960238053040650134615034663959328431287925899661100211505919185399367647572830392099621648362835328385230944696279302007257465705476771202752769632493053770582624741154173979540794739503225139835031783714226853320571893188006785094715516521823576136174487215888096559242838548282822714166847850259267627626252189785370536830797542081170337228708937185088648080829791820191153708424820441454511057170909915011893748218299623037176884599314333297618699621859785245688821623388404923877378494130402630361541994448443304150524637280840408921918718054570660461535436383621718301310047004416842821001621276614696209710371394524204669759651334665985826254599883384771228519089871397024587778342758536716357087724273164697973983908864818243122881563310715066454152418405621126982959573519655144702398971850848242746813877480173644386862217689188703013908809899053484118043400814427163521196800494311302583657277450276307997624519945077544828187536463171451154979486987293569633709611701196064053009697749964071852401202896956333213247515527786632408685297197630646723833669514888886858087009302587221630268779970914408439156801512885542847193286496653482311981427994707501607593343451075334219835748743734259290390406187245680468284012877619109790097514109642579465996608992993691113671238203205161941666069668300556566306864542632852420875401289284640918856500502586904942138848986746861792227692343654478892473915620336826847440013187646875076267905684917250191161507008375017776009188271738624894507351292394666947894652551839392135122528857142318396430005678689261908105484594417222619228333797423477466353898523230630083897065513775208846978951631116238321451653483685474471054320944565141972381089749653119572358046741369419632401116337136553070003205687684161090953662951038818652909743093732356666318773142444840744309015823098029394078860065835562364942631303583464649525510182376431667292500461877835456409831501395080273173022381529171583597281955124883967143761454014994135163429286801750480310545396660333525724758665622316997389692639724847581527686638323669837188064378463719344313744752920659946016230435223583560281504260494351107702545621884330635768421981638605066918067425637972115753250230875312286790625700825308816591980390738383270327006027691689199205146332432918971905062135822230233309522658976606762348967176190325952013292212772498892195992802377701460226262211415112876518819378089574916408969765318968402523986806840340783969982657590995193761656369407539523735473643085993952480238697819468201170485917219822499798927000232630788786129831365057243892939521013125084310328654852423082717908864023095216223392721021700993197852366832405998390531411053551326083417577892860503775952140198702918425426699979508979692142082500255506381356511341090704740635317324958773516404901360396915609545169878830156594737151289610090498554764384450955732806093175511492984230477201863310754138182093185031870431584721837415451416458423592510318369712831078397726221749902545796414314725459916300072471907024329177195996706927422505225888270868985236570020210099504967697088081225306352935846726697167188519926534152388922038530402724117708613174333487507503993982635931664951152603740501631347591321870550234716401062450891497488076220410918843978386540508267415426044131427448925553016887540573332101050063790666525656875428769162837553582023456366123555733877631335227650833367604961213867558675866946228113557787624886943336889140187261072650382271589141131991621896062274147362423674622734091730266277869800975050444081260448973022621321038399809219737268566691643241442222525282212260371719696298080130934663892153660562445898233363234262140045515606187533815133820315589479875746486098361201560405296108076012138184150392295123961611067827444045965287927599989797738316258039094375160518119509957941401347067933126648795652331830943549988505788584975498441036465509525275406802245032462349303066916007704570364292686801929228561454776221204468054395008292904828226846862588413435199575710191578159640073918258749258224901463073348309641501280581020481733095023318538272765415772721238841144566344029696047764244983622677997309196036454977848768728075501955516732377135268168348017403695074991525809575919699724539725319604488105128660213108514647546862475680477766095119409093946336187435868597178923323751653275782234327830200698505963246442976515557959180405341422612571989652112018884629204088887552130727325338464587286768844048965172114154056917668423449954951521464412465544571708953043582319561731816974028161179502465111138200229050241478052866124856777174036228027711024478298717636134874628865591575987213423504856137161428264310271235717316097290095122710766219990890429676879481464318768456947149811201510585716229938146934668153067621863759568021892958312911193369292358364093023549836700546365431259866044991366950658851447481074648195806429548490937602374050012976363622841947849852934475956888698934418093376836413013761275236910071720479219112511552710055440586307294631858067025183292609606883498967313731497819533310127946438016478517791985845203198442233327707861880847613917115768954374779104071421220728899357776746668242692432270576517086309323766220068583602486399707215779295988467753245496501396665684233173953568423481802081522862987097099255660204121851330117409709994537684819936460894590462030961872821967466283338966359748831679810631437003852055994268287471622611067800245150158513075819434038012183095730633245021640434901399132995962212351100808252444294366265579317856493255733505531421763630989213300172899509681044280746576982386286282494216073556754191377318769953909402208233510128611109056183555795487100492278129811151436538513085552813779182657409015621281123722618082204483396434080166741907549325533946516607134800699329988535982417310943673929185354946083517295168799237545961551928963858535485591373801209881211549574373352766050925981475453575491602646019677245765178309134105338146115742915109279274706881929610680281053506325667607466702150345419250945998893079594248650686570874318165422005668618803942618796573893013753900197467739613761983633130655580938318526441803301225948426764567726059753658604002101039427667117392281088238868501044089948420089603979042443550616921904230412859130365495315376885917595643099384354048590224901944605689428815221985719511427851605771668302883802414055810432221078698582000980917172315439676388851569528548989369688567821514576414922919129152298469946900095455006994534856135438318479739998222649056590671583611634260460964145553927478139735332868569068870160920828760642039459343577424286903894806977275677887123895298841378567607509022961721477984280018868006898004742950409248492651083745788775619741359216345398276154480251328002712758518472040276781994855464815406172026744982725190011859681927674998173535078378957217266559635416173013683165291208661512626887257920640009276231833980213154944936571457753179838290437948820589137707765767137933409998307005367958876244031132188472484705753129590573245337677946248844583106695673526934252405551046872093180294405197359141079083364341311865562729510893956949836969686173449376710891921260466579699740915814007903854823776311194699278812505221556067197790733227668488878280977896911766965947194111410748949778839569877680182972953898242613056866406189161213404624149209557331595502817065311457344627326912805033289393260117520349395428457640137464229991698329667430261567358926401974349772419303777447294355360677357900344339582040917931910510269318964820086399936857262740210217424413778670641369156984655529346090582211047580491969136489550038351687725229507523148040352499117798278717937506288016848876415426167116135998984787248442698364475265523620031416012134585906700185732668873735110249163891579611420091219223529753622208319623714518287693842239712896252502432753877665999173796719518320484127095579774264488599473616150456234999405907661914136434362824135536600843478610220719173214866645270595747592063222044291751807891082849536601230760676342704296737335802299793995536874164038274131647707791960456622057607815009993928601868737719942000384300663982698355910003220679077513404841622854331813753156634632018349744074641074510981987812027321277227347623849111921950646908976755354555953429449107824102807191446864300995524700896240327061425822904883933200259810206155344537919624654197430167497741981057797720555157418650390554270496174362235055975038036124015346946744161598455298426505257620436386309039059691773168499244933324036728531979388802464767436060374595257175592454304256792174978114741076364303999023194516358808505446491727134973373698147140820780168315086377712871351031580815012546669002308333992665011121432848081744871086126650921547201622128853418634841311507361867403310311849212066672501179843718634747172467298363375295902720785610417498644019480398273173827833534459721365712022341967475323218606710975484067132706262997872293368445528354841151585687212000371931050232287884457253841668137025568221408482489384452041483141290255197736451176690764737863340649386306718955933071488567249479455591724321226044873526702672938746088401865955905720036716361279538515654240607427389002752285975202636303987737517971570580177626691526361743451403191705105070514788303301460994936280778849085852112259093803340899717398777863018660194293687034106731074348186337675521253844290694137218429587877555717672683401030366442581554165695684978045295909813362195393794743697738270060033428905277326205953979918626721547318106979277008274282322949418508428800495887388946960426527701737976548407012130304524174804140436369392091407674547753567633873799163666758029198995942278515959945453832564488862685298263304387287559062514090367750595740944954740816683529510130644289688267586650913686562714680319799404535536219832541900612387232593243893330032994204712327900679970257773306065089571229177805466610981771124391207823409509690085002799704361523978867271294000613071172865139320152761192644976792175004283938951322333127019939989888762711525069697216767396730592138279969805192382206159982126019799711789256007948065124775363494469093146116285150478498052201792307283099044385669581555036972656305206282854718913999769201623551512727950501906556765877021495972247544559978009475630078048030864652311485156039050683391433672112787984044382475887673966593898901584033905878594288474302922581874144972913467876084060687184743893168090189236526313268076585281736019094425171898742593742271641351056770307497890918848502928384410581443815792353176004080743535288149373263682027774189136993973603636370379457144614401221225847659782514524112890095917615887405273663361816586749044455470736988032845546356148195398980585144903808338895324106691251303932304749708214611898252189548993960900555772719584844941921379432079525115857336223651422214399529358063535448019428121249919620604942438032168740450918515525544130976744340338877903401779222363700377526012084124381464439495590948885466460630262418612475455976597932458631980052370284156324861763314469977901986226768051847493927778331389172604057401999861877801307780511234606561035439176348604654697624120421769993186893286533909509685617739986408272568725403214609640702732775449777110660892469983411756417750457403827879477305794401243522020759173066834477433207514882329044925235180035707393686391558952810481074251267781158869184561274338969550085391947363459801193235704723197613993815118902268323853395018116699562677588899283067884776738903024886826755286055437839722532659757569105954658955103566168559068631547364287174785187080379858212837000543378448827440875903624834902129182421607148387306191406775283964547141968824094679164391004170411319623733855809272772772724621491784530541731480449007663301539272122412092149313023337853219324953388604820431730290779632212809737015802388959933213819120799599584267591832847947492903474592716410440813576182906029124823276572682384409157763784583921927120430393980205438651650090588387299585925115507741602164848921269753199456012284885038506382801359610581002694928641682318496942693506404325296633607164667919114764044485702092794104576021126612527333311905463209187272741571490931436968468164906391840668178769150728649798883349340487978183493130000055248175844912519225699958782391936402600557169519333411555342961410285483502914702067687028311946950516376358091973672443720959343892229184877227101935723561412118091663193498911603132841778924503358229695246564549535221724443710476870455425466108398921799760327253885037655704407300348916503589133997064671115165552090930422991896374333599115439580358658400842385588201303621070039841096949918446968998676476187275954717093705690938909389211394764331109873134112649383802605885145864306975026307589157117445480174572820009180002463804900605262971349687612432704538007447069707953981301380819834517910648418105343119304592696666068296077878960817210634634294986571074400405312928941082348507920096563155508984521236856033118373583453667613025922044019107597327664037222455140064033295702723050714212659490080283841548416943451132728109714247383048724436144007650716649006417462229102884728864907482548534007629142742628164990474537464627723978767472205917804262311740726870375907414030177678287152627085084638360732704118081524852157364990233372199864591260655679796015250462090702620788263191997025327363183208964998185264388847495799575870488393455729456521993018004653704347278176677284779575620983635027684244294906687771187709458391389121993944420066287151735837818289433546629990371608265388996700644153466068760854351156622693118762824165836407009235005734389482096586252320619636661618451592835665387910548168723873543667689669716749150540661383607369368859508908649129871476354673798692098875029746879401506856038902925477312021111550003091211805755267373961356119074571237427863009638848293871791796725477551981693830416276941112469163810859449389083434823265085498714891412075857943760197248646412866258457197837089140069494323797790316447712585060014979471940905964452010278178769609676042816482362360370027102038843845829346191127707870312067437366388603126781091310411815624946942669630937572472341977420290131823764538472163778042525859636910460269546510951287712855749547460997641385375931518714769348344810812911204704844506212295924539760141928846752553740675439484716344433091174392899758242273594140060139115186317689522733931932826756245329996905189458743806642265281469666858380386751471496372711230979826100311683644845300640722379716369143014940624570735287444212013918925425174991699803039459068331836604626651498312997684328284035878686884620215961868202341447400247582812295748150657858874999258211997063175370759166552145037792991100859263606501027604968563314661124158818368263930615094460295764706675215320127209628471453922249718288213534097983947268741480187643818870667097896545997560884419828100789408491733116796039913982769580356667078114461699015892347547603144206152100598070259254229375903815677526844027679778866584077249821849043492322282559552409759935638642854885866878279393661015971044033433519308558116670314853469285560549120468957918287014280406295716002353684266539970039506054454653144493860120353391597055674427659151174495533051183053807704734609331245955588391376394509369317388218701172198443983458784734258931384319795005836724975344551615761308413880276160401776978839690498327792486778142425319558557227347273187099662031049819149315436706570919756602948053612572051570021953387875696090686665814234402632820563964950304599362135824248192144024124268342079801361718369580924248227954901566901894835413340722766551299736458889144107788671650253000695182403913564037184469277301307055434642046328487768742808797109885575761600404993601021632225726162558717680926602328743840617821496639496367510857570318004969387479466507915781407273979543588011321438749365245666570831743151720177259637586613077561197641648304297602011833472557076128617253256248186042221786513995464849696839640376015560843467840576760140979646315270815615619403655529607638202167753341071669055215688303648571862598205288137837227749628876324193988575146236051451895721315798679630802046217232557220631634736952070691761446347243699719673165219101972740665725510363074963793831822955856622851820867297385282390434998006597784758873916235206565133485552074636448552056571824994998663028425410875547410743129456721315953446277404103933335650216540764935915843224423831012794418730595719864635534911850331009613131712187698144216336558783186774671904527007956516665323264818708488146651667439858070525365289342549259258379878063203647253092452350162117279085038792968173633346134394206304463992062275846260085210032030632499729176661203388242598203024416220211398498275182785316570244809478323307862457823479679133112896942467265928213525588462118884836716221504237867068365797987607716904162109899929552109169952748961336694453432145039772157201855098584879000399693322948532646108658880150673789117311683288693536265848993169836505509382815139578381353414887485421259516715498618348332709092925414590376766173278526979285225068959522598349928509134439206601350098860463288628678900515448889399083251804859280634708858318263964288900828516961385371094271124185117757797955375210707780061707839769582721754510277470725138639030629915520727902968744488414097907991169225379042688929174226636079920377402583675601824176090472886539377923489932043242542225214214368748733290860506103540529036188565366230526084421832385216121708676682409475851601218333239771396357602494365170447793129469879617308809697850958598807174610233350325059018844743139292053047735987147196526793451714614188390541803937037534425108179854542728332433005871718774440921542478681334433760918544711021036083456661065832027675112672192038963624843309345539764744568765946958374008380877571264197529973923791948340772947718506320050359680524376028682487977385768297247792114037412681297940644044723718573643857628179679319712641929285370572684306922432795928802380132316118818795626471275036614487144829574892032164353628765542210931554451152474065397145496251149649798224722812296069034266309493118737362651540685872021907038415633113351201998209083449346668858320987072455420733801998213856067894953646059710750311695610637367135281293017010907544608302337710808547680136388007929953374606207570607222403516966329671597106397581887903686802923709128718764538520198116288029090015946753401938345618138833099842917242145104940481924694211791972023423176213147074815587404848541549713663243263960245560752811191449759670693834956274745656360922004378469013503878128979290659686691425034935426596234903966328059892315031920440414571643485157592064288091143820491573476272330498608245560421188733807313012621562996016140757604814099036191710980049904911296094082194010140521699700451394362193542077697956169685338203091398538787532848451402588687384128050900446501100826281454492440908940224128300617592004791893251895364317969635549375148354445324984511200839964080166979004488786070545457573091436844040160029143864092575880909855518097269274656412946806849470619305063204448200530488184455304649728078768711182406889542844000567708767079602791200998402230502691537799319288868760623354213223882783047193095610798890703870127654883887308264619766626619404724849889975389638792154808844752388651077672892855899216620441761263684558032428064755506171316778700794811754080836957764385243327455471379257100778313064820619507720419081788835523654602842686918037951736324242832459984568378514697935216183521104379650668654354572122198544203518206955527119247789441693249040312684234182476048993683442045141271726597276418925529275137394734853082612600497465346281891912032682990319986957484726358441118871006285013559119130078346197939684192541182511012901432562367099099919133074580591660754603368301683225785483662397449154284610734364813174325645406266404321348300958930303624192580677555448825941455392767327548445400376452906633157885570722024139129425000370272917397909860446708928939605831259291635294641705493126323383007291011585515992630495782840314450148444231263210221074874598234319267750015923292952068612983505973306176338186850575645754789881984184474047141161559210772518963815177429482563323184681949054778456830604025742031700702682967206957082683490604617704349904530683292121254272662305048463285380957299794296731797777555392199358354312944267842531238615849065686055367126010753543254973809329426853385776168085628414563756807581439995458460169798411112932759181815963738615174671315662066316915064032407946653619395546538012979826281626325784586945832493981816300517539855953795105830496680803730197398029690405201912858895335049487824954546718185131888574200181719692266567303607862685051691779225926265714030056009441667818496194296423680898029142570463480804932334133770119373181018781802510249269608697447591899965542185033049409131407134547682264774598883120167568096397415214452868605849244884185988730047138187944026983868698484906898811552592426624755331470021249110689482002706977376619119469990110981000134155542735629120101808455244176317953995863380881794234195337036631346251849363125058693449053875201483167010082790670212719319398786742664319630396059291544308322641103820831090672740774751288094476597711819789032707558535974767088659908704527079674302148498404083175074580746152795025960626539666020133717684456662127947646455279783546865091789726740039134729483399415839855920230144697365668989662605477260795595697079229601496132188812564742515262180937521588868360069764675320949625352717528861160427630666137117275150817740041012896561063265080188493620228160432132308259877431366842712980214000822156974647358023069022245977938161111392926361440638364209163700501596315014825393626260318270185325373688528028279497734700287245196178703574313066374288778446610063994652233093348902155702600371546561910243284696738326602637988323862225162582891424787959475184835072551344466962773544583767719465882709558457869752000718944954550678252464295135845929513715902091852088144248702568516501167783675789808462871309683573571102803871098971927455104272180318257928508649804340514802411634922255501111390538470518907669729985984779873699832023573531592123354843511426760823479706918874543443739340145836262969657500633823222903401997435195198463137142086468948679404448401723349262227107580152726942242984986498616585150106768623327850932619660285966227122003073770499455127292335062445816126256395818615408142470119880682811049376923298863259805246424102357427808865621091423036480460554625365576817412149732898219986580072541754529290412604659436281251316715960656652469762022993135063541606263029801948009833457018756780264032062254598108003591333030708711248007512061311715121760483396740147923381100446707434048868746375918331964837947015314479029364366584032415124628508493844236339274999412107482692970255944917141575232231810479853137543904645745261758559892547107897059767029466443544588300656470007995994064639343493436199049574845214753343506180111868130187475119140405724721569307800306721422414446573499583231683103023602156446075126484259388092412816088984287565517157506369375084888032887108270724197313258230108388229780826720749887779641723636880556515655511402026179297179798294657005516802312934032809177905027197650996505448484348272668253812989216583557505723241828801241533368992743910145355453844066261457530930867239643455029369876945338668429976063024012203089226724409773861071897645539992777498469840473253382556972980178939435575557447387617128535975092607105573223450435690458742388315245014061059003230551465426609948007834265917556297643686780500262910973181915205221398562759931871425603984290934311495289059045655491808776070578612988478041752909691081573540471602070733417706331981097675110668749760608302236059180375698397609546792030416465081380716431169931279624932350834873221182704542698389738374989979495876992960061365594449946495732855621895098303746390912501357584132898215847581182596470119201107063182608730870954959474278318642798452295987042457961098049230833856706834134495706011435670769517526594212021699761069058053281125461910373451862744271756800892696813361271172250879901165684848650477707585748575285975762176574673996979115525639773400812683081357235351907259740213763427179018940373137831418595396192127519602343694364384113935876053601633809557953166142129566512930577697878342778456351526644493623168192775596229969802463422917396567803463481953420236852156816805490072760556532966451980168599789432492694905016688594149856571709079510216360546251129441972592067326835562307441595970512387277923839020339579463187054250895774110401286428015640643211979170968672439006729794707480543310287912416613527177900926117137475496802800666296011254137889007726634233217276259133247520132279360381599630092738162839766077887916172603164245742356048222695063388785060041748163703322816173494327398593789291615654391880235798215894287300737046903687079310766463994272170580253197446704281717434090014056731783387644110748437823519618509738554181994087662036929481916642376144712037738372167785307605676548909783746455474504889544406581606203515814386455481872158806903924672613604861773868791848649675006236165683321726225417648660862368170960488127396833335827866500831418115758936921745926517423154260653475489549023925163963816013008421217096303661462137522446377897359409592427026658825623484901512612473750226580766905664616359235551024433467972386493995876445008571195179851129879272230893698449699647757838887592675897686647241253580506464983044690300623154551611949602784119201354768268558588689863793838758077353176947927988665128445742245141270174948363836148061206285037196024378682300222898573032097654481999061182708949527149755169164953006827654317359509606930785686814220629996760426426986432821391057138133487488093107075473999337835804345359805541797622707995168690965949846306621681895552566534277641117286159249845682699185138302874763279332033316551918102292009369280578616617121419897717095089804178641592239653192479989480269766918570955132044517514051621347378381784766630087161006179044873347225599539759755524148570559271891662174399595838892294628144760552128603217239371360180966158078192795271071288287225432452786867933671711941878553234589304200263274282600494957774342263793236352866654865756550942065753290788817235214058788295302920297217333755879564875880634295878207758765398598747361068060529278323492082667645971429951473712914633716118566055743364173431133986948092789827075459547826377774828166487732416725651889854233621943958598188346029306694781531019554653243020629301105537562461506628085645325134049539392240540385728487790317820360291658322400597649261209339093647792212812388017631486397348805039336575021505133498691279204106087716167022818472344241931135910627395175588598785300489405966836447296687244678608860947027325361454180921762932044585914946391595837897254688019843357564064062967513468553152057269133711753240006173843726298278570751727566009909317847383348724020165529573711996138694325556173749322771804621362211312081250480401221183517721334134236718392601217325971292965300012756426075423265949925263570831045367310415627462263864471541551244220839586776698536385771532850960658325580740285103638050787520504761195409975217104376481663518801350179861342686468109780305346493011388491361018682086384100255697443543653657058823155792743500477141381437909339110751062467736650940556123526090707330979762770514929303714557390127143588952459623007978964661914418160137352780405048452109462695725207791975542090748867068969267966011210611285519276158143716269793684218546631023472309506884188915430399051291969449516117849362918176056652870461770239703351158966834160588582880826500804179922830133446103709090651315308666586246377675419310230952358029931375383210080596793116112690785018271732211913242745662181727110881391954411069262297892132747595690399820463486639605970898505227713379707848340578453178199636576419312863678064526743789528385535195555221319065357985816795916916686392956860712940023994400789631720128802859702458566293492388048439054342050432120831130148074825706479835451299602867325492507519693054225768737563217820434769738899136231097479603340585523142149889222758888558035233072621814268598290438436031298831142469701359717679679547953303943178207757759108001846421074632122324239432760104898895465765907445141494686727954423158791366535199325748742812668250286588694591631046204958724358143903634004128693051991450910667302849262620288412677583337928014932891746298269286066512243295828808385598320012833157167868349029162145906197192285725253164992424651613119860058303298545223519743060194135950169887488396908338439958447851720166341910196512535679842484125336308100053693896127023926982990145361769661812979221271715210308768422266496480930870204081607442728182581029805882751131346995918427269533706661596252895046388632033899281526663856125735298984237011577756483025082272358819938446763168345575596651885445909337347677294014099876936340832173479081870905294113653492645018644176030374078790709259338087024073863534326235288690840233596883019555822781417625667864748828938734181584471394053780145797649506385861028209988995645706882394337796537110874942080170537279508061526193806016347905791835052198555660331441787985315638074788613810272229659011229670060012829625609991935307690847038201115798786169434933627942178995157047495572468637027807192192108277083545448817149479395404290476094190101637732258794429108488220690455915899351111073505914062728746057326242737525725331081281263816356406759515494063552730472759808072469564152060142497891680868007266226301004226891107269149463758733426907706525431970699238529484931653811948316755188983858447302430255697938183357459583730757949115946153743276740975324639736649973960776689790963689212805340177517239062137476828164519956289388791637670049556569500614677790962905988746151407059852147180828380943669327904453906050119962650697120294207652948702822683282520607235446053371476107422569171347061825978978323508469363333317960767525709390010394899872815951939898327209801617137834738605793175732588161131280597224150981911018172085477272191777161450079468773679071830628655454104426137534581584845439136527871764083143609889533394055776480028806759113997490373401725949190914116869035376441386130888145072807666523723629332241108811285826161839273368777954793278883640364191614915409462239901296553008769158436083117451247104211440050549554560080223158342678598416602923178356971522055566718766384790940047687770189827996092445695374210448745403039452164627611762084814146404556700167784532441591739263069893610161088032275140049940422679178103159688972185722340353336804525017745158929852141612072610668514118270058835692693349140067702022346941927569405460216058836829687036381827916573013387970438357899259850564518621322048774205983495253276149542680193223522756842124026526217893014846199457320820530371475121464540973241364249701610569101284382409419037006086510031691423591640500806098749077532826447647163022790724918304452478107043853939005323022905900167922643941986735102900860578292830150113852945639928327598635989475596401573973319104417591838719247688674755081370048457929998942874636906200201106630610343601618410578103370712105305085226275103168199693987670812351881215904135650638482957409750630053844817922567454108721904393330508725900074296399967434956084023460450384790936313011286324935136877897450688409810902810102964725774236404480968206509106302568452431766982192214111542711177042452724407956742237005229195386118596244565825020998527634663484231146570827072549526216884066170151365397917528214938737312729289306861349131206519837385048082038180700270762877232465650854866899198368706585759962230149928928727598488111042484421238435610343856470842396142512066644673498513565495011514561923503455477872478520035908709086350479244960063088616960115239208072730480907916057524013969210974113442163954789005893681875392443501591255810243514209463412117264007251299211209968244078684543303893048044597732198794243564411321577853235538193610257981172385781231662190154242930037763857571254384362701548309291845512531506030244661752115703333520647110166747443368281800316096531946929847112791844441535848569746098377653369274158098718193556120596327904171326926289958024955253742613318320390115938002690696352691472299644428086004048929935661433493137744191787988098841608119946101380742715891930675478848995484794888292184926899095657678101990503941051588928613431054007417846962513878096589150598953031673091512164225452529869582508755459977363091046215112291609217697653432949908284478517427866403161540159759970644227401324440533408466227943296919832605829057371121598133241823080629532219929477231548749686740354464174597938258060103439281011665878624479602277469843803363124790249621317180770703934873112373704207544181005780601186783994410237191999774931865259860601800094728258303731738123252640942598193209102171848940645676014983212364259750570967342322093996186171282056986213393560616158991941568148732296232079742267275880003023446251451497787586236444958010426898996586581105577997437362885264459346171346360960961852674267622213828606794183542173487316654213917568215871796730303949825538854021030988341659701720853165746327110731185072757042151465430014949232928252211225244492899387866470978345118056772446239216759528977547153960903512703280166045565163982519927363742791206241293507604595186533940952198531341515285878434653877740645948482251144087642542571151640225041135113639752845614729679416127558052038824624343367851775146866112251530468342794872598227885106342902212735332160234373183217598642418823959529479940919730038411628500228492233122441931035735930788664045376344833890151132223209262083428905306997637151037342930768021823440794107197229470547559661444059559412229244593734456688079532892706606200886225554267607366651767958461768055134839364097742152506596500760475246963598248543218835150706618286346929950511769562477364043491938071161345892561636703605156344590911237709719610561400387369385391824782168090969823668693683460972497865027122133612660120736334145116541581793080178087450023038131874073405856662466192578807754218344105557732031626939809888787055418916156847643488426674449916010731012770638944228016603477225967259459520434241738723574180760223851084142427771421085412242522601297123912927773012069233907128591941452865805240019591384756490706727319829098619314182334906679276682641092212811938638004247706006371500314074948174303900020301858480073724773019275768446353668531033761286878594666869740492549547740963011013076832512250985339052052502980119004714616522407543314716767408218826810265882555311148921316253158492244538233751892950489595500533997642529162767453708282593964282277893142793262273069180315513276244176031032911362372727394965978893557453949604303700217402987879153258537112375500768153871608606954330748983978214614017218234742388697132010899774514021023324745596471928257255514270187589097902466760431940365360919473709273593771628814866433514071232368644718241420426010423907473938153680383861673881922517744484005719385690987834177150009518250118008044728511100630890113137837344983689436184052145662583668259202760547237851234046625260041018293496522923742005077918186146453217282759490932501475254432809553903663009659391586739761245447882460956496594346079262744418669544047940853168816047845577493087097953462062374519542610888057024307726317251562807217631904377400567090755990187655680206464309549844395256801692294042273914377335133517410824653362171318867738734956995376727342765423140521045888240019739341408000693910428188143585983666051537656701899851996887350118248227966467052841716026534086608413397526508655002875445066789243027985490536419579845356412414502270075067261581684980630353011690534609585992574591164956390786307700428067183184663663049470872075339879392631723010731715897239578828914068316606986707639045942682273039181933934609205736351117896261608680765178628055706192938093089591553157447256760572729451666897421088016697671203656825353506070755477455328717172217437316667068823019214168753877242892656070451952315003396444272706363813800311374742605857944507751450500157226455090647971963440718034818314847150239988294760882515100302905210745948651067492308740582851382578599656450539410001999497286537981733497155112318890944350607315078665465633285375772451290554011455643705000205000780426925918967445246692845050413283521917861992453160905274942906543655266679985353545027448116974084862171998737243052567559859020965625590029455557184239939933078660148661049930831262604730913913012420409142388960468999888606387588946776598015499694622145598111708771930538332461588742171144107670566135678765717033766170359119213469227072210267329099817914352657692878114519454282487400525119752145004490647641664555146568339504309221223150561413344771873629523576612953663227757322454911658003911492924482471672842275173997421185914297575634035692637303398010920932237355286417864333365052488203424410734273050685434727269711651979448478908104037450356688930747687131672303585953036520370993379466518049709247317341842901670802723260056107921374941170771789589916765850463658262651673407469397849916053624183719884943911575329098566929880206573780826985937777964700603793576967609227669110815712105694379807470623808321968126286467873102933657296213478779226196421718729524142042741425294714987755521244086006041086824757379747537081355931639700946955664727576537980072750053425585540872101050268062874539841526898860537830833292050914917010611138110558513460031222954282640051667647021151685269558342989746012365332892256978948388381590350322907805088293403675517959792979332399505952001590653717645288651077070269949221211592341073819467901261220397399728551699581823655434624309055496653137363870852663568568295004567840567807198556979317861604839318836427896422899306139024766780524770684844053891300787758135310115299515510730561115974741180270862078538490965091259278969898307911424533417773180448034133920586961365843433510619452766115922137071792098246065401195298655667093012559510799346849896659788585229451242264795500361047068314809582813485685328837690878244182365519427367371228283008736192142436193824828701744527984208966525467173866541145558864102592844358844935323089132293543072762548942636296043614427069547462716972203041411717366683053113752913580330605545397483907415493670242550882162029070047595454422043021622590863199420402799233306854145634080045567794731005505973703040814345392665921047785498025734161716012081239438413040093641221854947608077333453891755103122220990248453552174313685811212134596044130299280288098756595870733575221172879432970970524272665067855226895281334508147930134205325823376868319292547189484196503715189577922122527976221244366072779314338321898552044380229538847015101261052623347081210603835905528124531343960512410933084700936781199645438129810429508962698389870582738452555810203990375993269834576470213101226055383453391222240114971953304644855922173634293446076902370494764154834364453991710524244746241870907306745658015343837712404439451827020149656023675062581072853590782032555410730508328768344727784321661261954594915799855904944150690071925117711439603049027753157667030310511738207729016706752330848812137137398309813345763544000371207908649834047596621051974081865555650195070550081126729695478981602048303860173842898397791204439626741022746495054476248001930274997028009430945626887590211685926510271124659129104288583673227074006906134564769286257930273431346351859001556450322649324597035088260157448252163567495864237168804744218013695809453677171045968850569403014883757990520117601793141062558334010099026431162219289744934741301533678517057887065669191719300934440606599078646572793166532845066847636864853964286027332628804543547354651183489566905019859883440621705866748566582015705743389516559246929611335577314769757301563234808575043309748957729866822620664053440938938269206591030027048791998913352663945594186475714488815377265820957902207939242585811961320330867407815757292611077572070429751379052886207048264306398412373010841448220263073225141048761245725145039086890327504339455448593347910890389842229547320982572023441801010970567828251533168372862529068156234788890885920325267190005896363895421368179943516198789462719055531941744878677628259420399204064550141562910088311578022116373198211073346978888976400006946343860264002851841622135410656174131212116594512896328447479962011804706042245789096547999375467638819063272978256595234277563840829826985257835681717053013416823223806541152466131878424825225283984768040989246165211111230392238145422514296445217679848525249133394562252363992777496847911683392995419104971222880208775264307083561605585169845450570753500374075257481712136964298261299306484635284992504368319694068650508806327090548345499209300912473268625786351630443995068644952993025890848718223692349388792194678153534630702866166334844434159166216566432926469167675812916489719317206291585316974455383735868340145177683300470355395900257432563750131744856242059083099904006623139476040927815129707166677064254279523886017310835385039079478794983557231872952660099020452448492472843837407305559510086819087770351612984701661580235774158603721478862821071574861856075518410779126165495637524845859341924960759772330393834650751577669573822797128549477796701424156042524973431756788605461488339122589890470699501736977533271534193753341940967610248106289095369813057420130564757861432185418531974973951941792118738893451154936324729486572875907661736697844592282743908715487927047497069245173645417979446285849675651273102149501899156508169571056551517271320780885922053380591609650262391999732993956188716400469221500987913695873254329693684580440288888327296267760073144500665929972620977263593533562675250344238491423705111540374363416956741111737791298842655356904012995379693721252503137083317939414132534774708967582393425150160354316732763437564973148591368348132161155917496413830845404217312994995672805109790392391146512534443983002464528493917754651216282446653018481367469689739393785895785526015390526761161521277477222667371271204077844059900920619103983797665209737418275634317336169576326134138279779650011038860836425675993403711960118778552592483793806119422084006440012853389599833505862292412305144095152452416570340302850663490183036304609457453706169071880960754124132630161887988954391200616320127867950288876792313569977740994273256487102168627240577177064180114881803636700131893985609766448177007996570675469574584087469188346607397245998760831983767492052010989412028559477790596182514713387879449257078208121514320953993871713744306608302464832909762474480843541799025245891588540903398411029986797185938787648025307850926390574249968267901758575203862272950840748622999532650990942631184804587737590033437263743537338127655055778651536230839493494238332212447231631522155727569212980045615611243321136956366914344368984131532396721066782458376844017092902718770650882670238067265439351397782972794179238407681386388477573012154778853693672416467205149991343109370870810040927510661887029837881703933717485740889879028758123523214937308462039375977054291989187500078131465740382674084009300313860506664362957596635440779273101540180590113671142218992106228459665646814476994375456621359152025703910545889741795104310509167047509595335858549330040049113737567952910928107586159571632914145373753822912840369949575871655555145320571342893833910272332594480150032685424876671139432243652994739940216057347738272563131637600537640387134088040006852207954290591196133520074292820327948447417337187363633074639859272971886633283141174005882751939070592831185880078584206122126831767344193439676780846217891374349965005012249261919209744858360149686016324018947129076849275397756748435344207400024597214382918598487071923155947495630652997309519378558156782077742610856865862203111326272456409598219593910122162353263917471375251594808395533906761714946947287556269001077981885998636867064111041638184335164404851225746361943336834423763050796828159928639838531528118208002508435835400763812207847741909160376060347409012014873992311712404625564815832100813199326651315016922694914866580679050539626843594338865136349123548029979641727705160259646033962710426440648911236247899138306263017591747251981904468051159025175859660549557936938088163916275597030523209779606148163200514722798969543548236519206445075436883255933393537312512761692034974804584408516510919628964021767760964582063286563551824166473307171086936802476008720895193237301191951343553590118273727370919842245688689917254729356220545914034557849249693326291900093110781332858650009703319704336335660564846447376312464518486605280009067371991396383556647003983285656651391410672988578466368652854778098412786349529351243889329854853736121897026193062359368270423883801834256016065278177238031424654940277606286411993160366932976380874857106187650841663341903231076939745872107216479759728628427857717188805904695893389380786947193837007075351556394186104051698859090009590330322355141705763853157138542779140077383595240723065191451321527701308095036754826011139829663922366517976442564416186106504203754234990536481454825636848608959746030655920000619195898836213266698553189933008221526067019740814816021081624548753937036182535283954399206051186728641634177096200351667433640913574714476668655274248918405146027250405602254996330376596691761744271872697101649524861271257398994034765400642172500610255182714065931893587504376022944455541363371076657587466000961053253291052269269724797766008314514892456682904500582891771794021278648838586364558602773177263776092707944171603133377572119280197490727916753599624898728946159949004875170304262414829490460104701904170592789588472916694697851814772548720512048283986696714851996555311040858100258878459111737512786126679670494288574296101593083180404201094976337330116368229485883906732502834425235615292836621278755001972009235769178922887785301008165264881722894660759799385096617195901141424502560262643830403153413041625547610470663194704686535177314137012670522662476240840712005134258334071560723219053051135230319049320477427704551729417139242949716809511641007752566538242556342177165432833682896198124342394735993838582285626989017846671082257415737431891155750108368471805333487765764416596522868728720979903698601658816608266407008494531843642450135413860869344234348166634439940942756605268771018723209459782444765977958163517477670330456706198582203274376770444440137507578675246065797519494485286672408079018068812055216784833894425555293861679301802710887239720372889918393711726306297074698426395044325287644021929658184428776207509745521870699852992956695160487781768005211338237464944979934945359083297252315529222788195836313486777449006940543676703957997519892639800397121030047963462164503601130794921380843568746550847153477131305486335627951481334587534518944351559679429609393868145037225129134865037726466734753155464936165165193195098981584876887588038404751649105003633241339592080330254425606532672822106011445720577609396127804964226344959861669168172908564679133338992790413367828155308464267512284074021439052182656121497758949654969059497355249237186210358088642587505486842872597843917052471645466035200575748321483226140188114149000168786749158585603689528220705407174117441298138536032018728970906048578810015959723596093740861194525063789796706156513278390448291468885984937742459849473398650494966578754039109133165006670948603935209726237196017835515783374693744703840458781710094472143959921091927665575225184797527117066626181995006494986043797004375115947557496940546372167087294380081455550050074052712461261339731785216142777521551293016127959719365800238632807448481921859178081482937278246126227149708692986173705226864365053226230307070894063498623088907809908229533460703509094474964151278875610470675389801403453932755246469643409431972454502658885440286219055760389585072985269406545433000806768713329490485641493359872031070758830794950925605676114627731990909008119575844647829541810431887354964910564670546766788102185451717589799072318906991069242727684314982758485464885938862513731656362135476264912325380397329522828138810108410420878603454627023713330560465402766289588535813906435914551523169576128500059761482081354359059677515374521836160426550256991946960133482205455992804131677365073673526725756179767852838092404063246391428632518046022645186144837799881804875409324481530352933813570504510246942618874196396485594836061007699687588600215543574830355007067970088404132988498446917851479687128073884695194086288353770095372092267017396341477896237727634142309914992219341651828350451711103467245523687100882851291585995650813955058313504634258271567286886073465965374544096044868826323207702578282744848650518891845158885361181354372908208583613248997733491194233284324702234125337626373130558522608747146159239965996130855559482431651425617149902022099925044808778578395045799151974951580325666733648231716670254435428403155149013187200411830822534780858297447678617816832376459478548033034212728664707186096498319212329262704399312081382590469610810168758366122755257231783089745706059945582153266496341719360588496150763041941723706464656560121198637460963660883846153369677312526085316751362980252567658830480813579031024738604419867086381097759447626086276110921073947514055884443603945972812499543737498298425666744115913962785555297472902320699266092284379401721968197331147858720162264085560032458868833799067324241549562116709001123409566182825835118689584753701605314586574096889944162144284153204230883782616399441170926882806639062800304825782439365107170541280438669737028613867746447808677550182691088782134153446948145744441703252404404858970389838621140828907441847107769976534900454126365875416391053091316332509152395622349321769898293369419292868672424044068215727631331104987788764036768763620414395752792711789416126691816056086733142340143971085713647338018768350644493508610277097826104875846373482124235455160825389159446308080774966700757262354697504359732770002949724795842014709137829689530622159171757443229628087880949853238287499783735609160605367436258789156720211171123071844692925285014684033570881882589380709991065760522289793276532123665328954123772980252877910553173766979933168605727843735231345408043463244701717946576319550855337282458543558350454778373782706026108039784564846732819273996046349861350155581208548015233914299225595790232124322687459753040784781189677656739373788987860993366578456870057272940670320565120616818488274109888143928825553159640378639867488331027940684304339099653351966750461574417259154169560945392322452524989202863462879619102999258027346563776758579683246353922697009646952230537406231097826430920097973597326931460582113706530936008747236176451796774675557291853308720481468999467998706807710929056211011931917220778990403308660181693567269435111361931817043843353385567186325932897005543042345066035629547777508621338819705675447206103155344473136231198268128639506372074922241027692783358143800091530120418550231376239600612724556785603737273330336900014663484155162738825739766569874578039712543661179691325585131350023308748714528725126591652995933471407802910563423516505124741433544640037847594573482056789817349096084021510383676076889992273801316646064417854265864157547896802006755203115281976012823373313969241389150733957393804155431632667344610347757850732625630127248840021301945019129455633198761272953396023006296873417160014087637306830276098428062101565725677700469194765604056382716355753940004127943523925026288651797640601611232605545885079668316586722368621270519413800743013159371947063935153459395308652091621532297751847318252180927327024927136386546175045280504464378077263376698432725824880238053554282558841380527556311722067897783749502349939005827239662827364395007401818375874604882203164737523499518304132177933760521360178126114628644168446924042870092767356387923538203881510654452056608581061770432859968745617282820948947744376841988511413229194552796764540116934533778026948383270890537329292162843063005491344789205334118403551520112940224855212708591432075926452430538908514758912270749187423217248999915261124137469574520313554563347728604523714872485263964828952114220089206234955272806476949444256465641774839563803299213328865414995393605486924093439827525794860204293604532917341391798072500758910111661152219295713369563102453123651197184050337160865072214072646484981617068856767764570918228947761486917669728625887868106717295468923350208245892061992037070597850775270228322327275179957519675541334200443252693063128113148296124141260419905900340680662017401056432839932460039418057993424909139087141886894046553482234031835144526968698034894950094329647834248890822491937246292965879775639738337005321437732911765471751610057665630807551216293051534842876841351492567646582475065225849759272412827276179203831544916256289274851856882009922327765146211963895229431649137914504817142507869856769691380789616740612664395605880722425981796639869927151957418493517353931717346796280003181552280812094900059979490548814658586318473933345595846071600275144283425283422427924699962751615218860365741451736574796419252528006012599350639373537559371299921147892798139839079763056248906151879302683881750313807655395619205971347443282809076924076394068930014742190551103066332773557501799746829414853745341078830201488060621275673050802511355798318821406936972854969128863259909215164711721732098725207667887425415114009796032695352514664239054301358077296798071087150626307513461968472148460426991452355530597890260492055957422895542093268749385432535367552003904279529262542199347038778561991953590406441999950940341014670534523243262259817786791884008281863933557280467680859047769552707947589325344576114348158701595679016222521628372030450559613698564690900357031646933319049698401010378579787791528812742162814939214835195187237790155845393729001775018868882712201934952975841264268382807952805625117767346164509323203295000944074817969124258010033890148928055117405612708157371161381814910399905258785332069257418855892060915932339821707900799023414886890310386704136572343029499693292795403754286047643042634829865042581142247927345648706790838358887397824575631998837231889609677982055119048939349011423935441409330221290479489701655440895080517428383803775391135391828642389724798802305093194752709132006021748701475188638356065475100795797137686751172008004033100391796152016667987858807163137239765493608164065776569542745396852252072224324810501663659174436907452133673204328225345983275528682554157568844761637063014637966804714819443274306374258520382724016974624052488211099675534050563868592197747702417596285437903730273887549408177499697064819104025156111865668289481433395143545432542248330935033479284744428614472905336282445967535810961005121751544221382115752120524046055182126457341778207414078944833256145518053891776095488023108098863684856061053415821027837122723375087499108666441960295987938364180753627794154809642912351680660180580815609051408230851182509738750376049593084994811013619412126637472468196568334514861737984697360116688749486078259625219013757379319603245303953095448911917757511274516634151836694762022787904842892333333643299890409910572265266404750508579583907249231134774624885063854232134389340018645036068050284887531225535181526937529586833282297388362550170155170055512882025958367545314226619214950134890914265370516630604059467520752860305668867786142778758385881182680353007309668634172568208462556304590406690280533205032558309508149544700953143795710017189017643666922268238362989701261667562961104244671415271936948574411341167390671631199383093748887954287771287876506754686794348563530780970411140093437353676038422719459726560028140441933691088264440864922646577520923100007714891180924288060629377176480672273479881972310670334090146050999727733526037049953138061309811925060138168753084669981680711274731135070812677275974908853469668394569332578210706185434607115399026679772217109839530710368971683422147512075903457292645876321146884528456756123728964241940516361585938253648405755919917479222808429120053280144246413089247895967027989655708030529415713532384434765805489137052074595768796757472061520006858276034235588372692694717424904802344345412425931277993173066214047194442598057389929213182157697107975130637450005876180532866067142241495472053055876186328390439423666493377914509206108967612715632855559559621105692259866732912421755817171149118561221050394274688863410605051052094693464097538404717677974640897765520722120052525743642788226409873540528073746881831227275786705763163947200990033950114756924677469924649013544593222748087590752786622922664310789989837672371311782582373269766393320774144924759535367435524538132041598409700462862937110517527558916572646561062989240448823840694875027298451910824479372070357910255894036535482967943769038714315845600048317762256744291578920826773654299831141709240086852159838723295372752529869200508294444888609886549037740041228447555060541805822550644187838580917266917658395717996931527330922173632178218761370323954221148316285344544822606762434386317622063835445774929362081559977552756205246608778210042472910406215617930506348711397524674855262707698167436058909717884500482371724016575301945369045915070019969358794497051927049337203013696536789593548783325617072613455095543874054566951505795805712843596731865696047351911240029790309431569313653989837117946869972308710507408913199208726441672243306088156469379963050527445048421672777385662349901459463128981601890695013031637100571288081305624176210175889526755065496895748164111305370242054281469460350409245159984464232761288864360858343195339863730020792579322157319202574782575126809842050091691401199306026288681046155663428872043335139587567534766229347980606138538847525141614643732278967490821203998909183265052131455114199579994367038973653152417570265732643450538849183710348386491352057818629969700508614870459098848666958790638538139554886540099673781559707545329035706991424059324089608095066426219224803914643809283436731770786479348159088240310004317870032128495545822105761300503963733370048044044402646606282698469253244518905695540250657712588714319033642371647224972144882472096563207170501935293393424282734114739308622661253468040096679754786612675869414023535521016721895798427448245218231041501269252504157684660947177694391045993336290048480052180172439734194352813455294034504251245953677898723024519085725082957574860678756742571460359768537351194169405046971958389942447099423404458995770959190741019941614391537296171050776483357083845262491439198850642784242395838636666814175447797389181417747270227962612541849733106343188876212817094919732738363603782369419003805736375102175246970112400990289403130670534697563922199964078939925894533232243891216871557913811071897554986117294464631473941358022891331409198488094137199760227116580779456986221007848374687527429445339296520531120741993979351401529238123347177112723694478171661108088100383483941165671658888716656377920714322477794150067101447826884412481649424012613537988566604230800646558130529731243807602049919320311941924673074887645638174944576325172373638337127810309179970590983894710760712346462770645779967216341441120156328989164442926567057726833501760042118023005954997059549877380853645140163123008826622705352227060050092020383503785391758784404305779589078276099204242365809208141424345455754484504923404067326787779614342948197760276660067698733888916941393386097029695734959549847952576989307658604560824666404776184081822248853978909424986271295536814239142162591320945859910274540019744074925492205709210660497447051752128044663921642954097225540034704353207336554684083966611505504296197556223817579263389085254376457454278166034341884897383796761738483282713148830508589406513971194514806506456033758496420763614651435602915287873259195660593749369177855375060001151285465904970380447881715497694336191734574723051939176885867374039313680274529549159922173100124428570413501453228521987591872930380545680208338473984813491366867427592327132604872503697725049990929724073305527813365283871239399074482032039986417007112588095611753467805852854513771710991703314888713680763255997067302200447122309492217276288274623791960251274785846762395332951021257397432766642522116713431817924691557597361501245062015347350964535089025614489826314679413350280075987807710170266061527879005553603998000145074098205596455648732399246600969823779143355511046872572056037316453569388090596970315079603575949191474661615338587936677552362369384157305141239921471425688946008663331600557052105075880398791246963862094023755820390336336484396639904765558929051760001179196355514421199354154552753136466066422455268511342793360134242860475789473898225643187945902661283608627985605715319453150039765624342122464080159018322244931289312116398008763466598518950144223800890616677194703019936340610985250640197188203171589878849062996080557654618350234430713438577511811789906719225679204446053563173856235539193230740401257829996825655863610909222661587397845772850073222285571135778089314073974712900528204088459599200149617388869763546991451987515651704669700507200387726312219592886697600199626448208047350207370922841323186180949901568208627614250577478232333013644365512542458188381024292799332774903491438064270233123644874464855808734743151199096478635662117492695376584980155477119698202417144537123600992996517152466428901999833060865142157417265134196099394121721156245548292756838114007990496783130273633672924391526811023775449860712516258645298424323220456298942748100535672834557864138290318930931811855922781316215366447450265728070561080850343313937622439018502988549240637351111765201793449108133112869741325026027891690995549883243282393012173434599821320050703768663919469709438441738816724139898635785558926498337145336454357605538460811283210479054704658639739714387122824676418950305695232139801624262765618040840736586047590395938482075633030879835599218950573815703863718890086150458814045330296122805877691303979077026397958919520301125840490670996222890542916023852357087498011675887653384425195636997735307330061852682280775902837573417475760635231119421535971838792037379848654457676873773316714667477049568529012091787005001454440489420171002691096522432788293739399041374014964558935718804121937644901836813386019820314276218837449376739935774047899305866069309996501604228980463862701891794899520578454347571088507380368674967941680398333926102033772153294094622616818368206818593772822623827368904498393465359736435815665145565941366695335389398430802842751571394688109660102518045794657246521134380547381692228297993009712798059580831658394255281774544938627915875450844724288096963961105066281010127058410366317401255818504224835177827364476964354537588645207550503161211079251665959023292812442851803556328739197706955881871405191337234063452195439266431394623089984753506316607189985155234706891315366003865220719998726617671451738900698610884910861252040350546503538574062602068725932020567982758456137722324953412486062340697214222645612404384330894848834067236618204775790695416008965619208045156830637636724063840286089354396104281079370597049376149009096410693565410372520762051166800790574069956319255326356640448143957768125629602866961758905106139913620203612910037008079526432021916240810528305045668393559388060162414711654561263441359445476232257404282559914299626051407944116102207424830063456918291957000915900960866952637942057221678964519585247917771207187488272841808777865596697106575531113878710836296245000236684994370511040633712149458011682001082591680727943161253583540403650832382817710478824624730690074424593204229692032570287156455319925918640725757635985154871088177732298138072090920070246720246029310206592424626273187816356833308181230356716014372379484207540188712374301926474504553295521977529638495343366139676797017191798145871654285357380863341727720382715506388820605381129372004838930455100735271770331611197611910518939772839381130066241886814073415949732437001426951644460766980987057612704801839100256001567881849143516525449230232060981131177647031561493203157686326956270893321966487132845458427020076068031600279782093685079505348667247894856781311148578322496482595482345037880740688059229925309175787307797764768174494914006068436639390675775703080501829945571917285690609004852890635151612992717696714622626308210044392042438874730722876287814538361590317916459664277628331246393271627445294869690022587972535665987749271510408947370338115867621738670856520606080349961840386299627565656201801467932230261533755505578474749072176273743146194353383875898551031951682863241894653277167469620238790014427752086805809373823218087349254307613668575672503320089393892528897238638627163427464418028859480261453738707498672300395479538189261630915610906176369914531257581966552454965846351334314176649785552659743088850126398525226918121675502529661708846584768096610556260015913342183265270699061774069172727138871368090655474679624459289278214586751638591403360942882037579763095739784863560639474460430038218071719659319265596733372480152623303171838897535072669021452087361411830010118713072063084310162328258420975723441955226667529708110419233303080273890726379284140675219431587982714911846944620015224722192534819693015037009496490631018816127421438744812105582434026630503045401185389637985954159521218506910248764201642375076576534514149222490624951221746126997329829255172220889592704974075325381545884617923605004069734305111442625564140444364213475868273833204327266413484010543851388315209976349178404254422633255762832114480074767789152144991426955248626847084423881317521006004829171086703760678879181836930214469474241841801052598056468592125190471699584272773721212046134085388378817057526658803674815252073719499344719568323050190701512971919136139814409227923066539009694420410050799419547867577057605186201077367268425315622492465133671177913781692670022932234592835968125544544409321822361189542765923361309403438030165045316623569698994599185306335154471369908761084785439691847678633316561961688546158266107965389991701320019927044637995949342317504171372749118653642787455653959124991011668850972181313575774182316483934063021878426808207907959755536625711182391970110992149498398569302220617277453397210423283492260849686373225514885541381267052861953141933728550920312551578383182168237444144825678423821774107724915934718340828017104584639525746052697697586890696560196833494600134028490589111318792305724143652328485192982879092444789462436816408572357301196377975389890692498574003474320066973994553832605057779500115148225139169830150570120640431843146018837729051836146279289832870040897737651887658888001296278943590392579272662183082213123342325788771668697910377171569542634049935009124754691784585344932415241785264922084916278673412453175220906754336527491844678949572560012590062117012847960227036744870735701942013452378902032880584863506803344851366312911359010250104265970439705930421914645170389713902811613629115296334624368356706468421408886949863396248467137574070660366043658438617979836274316296922445314853444362994973773468705418805015570254068699952445214226597058864767783121575563851013732509176417153402891451386379789822282107791976710280168273740913386455262539370316169601797666540036975524901750790665846690184487584554957608938785374286737193100215291779689782472719891230691600377554172627075933207439379287532683949995921602340341940568057458643222005343379517057432700760645415395089456568640495314659518467255684794125057805076698108818415360542115209649692528944160172274217243845154617417676088853663095376541085896046241850542952771164811098491741130916913070583880182001438214847056225388185904369456972937594164836822247546880057310066981761291702963050434419019851780683998126377141004216925329258048960365963897355055638579336308087958935785680537829410661806397924060893086553613825375446118621325241658575754746448124395020779831231992501699805462668887602570144138531234534489169151730300692801803897774778287864735920216879158369767132092280120272119273422248108061762548985219542557550319363693488010164135158852679723388109347805781480857556797809186726978531995615762331938683415199344295560279727048153898797983046126694737955385705826303826022443210345761778403449030713678653164447114731713844268943805271812568216318109288102472792207391276266723427928913940116830545342675220370935656995141455468275929111069640482421897826301895634380696956472536909088051033179200578182064847547193460999836876972305292586064175028999016662387735633812931934179256135260972464255945234224458555397095892818689051023691190347481531157200557892009018489564712357375770551947763943799609526006225423168541878055829335726707553518872481648346318077544683792492467893584069513222334837314576524967498631556810211970144849283737294122489422932685769724408765239857500866500330698371907297703818844795043660367878345225989445247323920249467984261438651821849413200063520549746971586309678834663184328640343012183075456033550485365699137561829165160927945504713331440471242272358746376552405116355894351738847033833039918391133749786179752780976262617149636261950209256592473936500668699047307318850387170872995435072579620566146921578901507565724903566680845340420323073318182033251046397833346459740710256749370297416197697652732282794514367241464941365622473417899441667950132827516151770969900136994097864215748556750703516447319000184548949316311619992557857298499007023426252554554504890808238974585538096096124903221829272295680993888560143138130841008255366439208235388778430612667977763072631078834916353393598468577937728293698582898222701449508130284641374325737583179810345588807827074765299601044706570990422129573398773825443363963088609962520755342477972505205759686580875129311037777486074867064342464981035007564001413696975792915257841682661653867759440657583495051046859504287315377913340979385670721908917537453333923184029431769679326236744356742645558142306409050042058439834347331432227698744273584210332895210995019660248212008392672436433944686298832454639947309514094178951087779837202304443676702622333116890039796056775022655228203774239971554525078950606833606774609349779749927197480123765658959873087422560489303814298264193802056237323839247731221876044981459825457711003411185475548774496863303082012931591211273699136704365228483469786990259211347690300082370504468262410525157798168572020119975291247420730894920509120286130904760130644998621384378602519984598500235707716215122059021824038245582065649872265829101426714483296583382966683470520048851246675277715596169685324787112242623666803289830270944683493464627512412632356366523335432120624422072740248710536322155384156611314646124327052881024781846245103425138172434009471467165216886782056318690282471521038493349073389640463439562369430144086865144641022294853593596310945036815647086265460468190012607044353312233372873021757776788238515670786198909031121413100133626743322397607076801641246948606332037572939325921129290934427524399746280027041143661876936600634854816324679807746618935231649117683277281210572076823107950326714860372118285890838596818583316668491761234523481407401983732719318007245274422817874923565711547889811235350048175699428850904769458371723501419052813039218408762924718214059194473707438953156453948775365021459956326813756844848373500830793986512306362107242048346175374623147841247816963486998806634626461470328721957931233254810921055021754372235270127376257994906344257573913266706424804974105323819141624966537390364378157190693152981021629933620924315927614396550097044473732059849843790107503107822247410423886523399577452444185645374976802224483682927604732656580111842262711270765300641620374104837833499981816143925692187763874041488206049748450017905234076289143790353201118414370259274309281826605699060696483829159355790209266206788192378125864647779218640865124062283888422249351877597736770924901743736701905279159749120470970737851366258603031535936887164343800227823186292463788542165418618923370516946385224722761832601594333760220030882346396734070608848991793593951088343547071215650870232918443008141609249386555538230855547016996217767088238026865341529467011301038593663557577274684552290026112185903765386426530571304014816400743043082730375502555423774115035329238160550398076694366494843751345502159753756008298222815712311328458659879105919510548474065050813954168448567540208433614220898222000314828159815502783201648453885771995685855618019583321985245970040669594872641643365081294765348754541265419529894807789260185617542011924650650010038712997481019608831559141336851661366217336989347984034240193453540133076066183509151381421663341211226827149925192491034065433018550342542027599239194634223037572477867005470578500431215169569355729591552849660197271495765617797059064001304501530803900780548841349293478700837755270606649348542952995126024937062657050377687073253047002221037159443078386427021649064043715153343454761182798570012084071702301312737412137538125994057987646824252798485052941905778756295110090857554633678380224588188860139698016784715298688496966528023919383090140851412774018495157267210560575232758133207809964143238781539455226148714160310349359666481748270511729724748091296297272278476870374872948928898760181066013446121611290320426496618085006464711750662481882122777403367833376020644172821503181707806774982859185216502926505539148490358389820168511436986697687990654237161578688308659704001408789257806263587757431617395138039654197051663084078080651085279140932805797960889708141183856488130710338393781791786198571110997805626258491454180495722280479218108769564537614401170612658382697875158949558523899216064988023462176933256597713664351822015200127043482994332305714060473781016058395117006424279390371795454179029340480679808377303085473584209003513517551852278280665591956646437881853713526523250961992592607611322537031946968508526720369985784329272330168452188176679352304601377693179756513462180606700911603047395492189049194398837580748360848361701499455652051346950349603141590827213527485901655629038187258960939415304197349697940136661604392786922367277319555540519954197829678981914172632764121572898120412185552968392671909726069852390755160454947980241465865622169289231121490712795064352767988268455992292639465617018075174058997300323610981806918335954240494406126353502236775055443431410421755361506701986603696666802699007390725469621756135143752137300551395465881357888000194551343195852657922903333173704064112694303695439650232595815030835181639209122698687472129908985653204318581183781407460880233812060321564826133934449532523456972742288552478180146706995905588828243392824936346834964962205490594414594426591746898608315175004596702598454075436073919511020524528420459553271062532340995262858209076692489827308235020414183645544339857062304060297514403603875618864900781066867671560880519474090080812510729482553011102204855518177132943025824199465109409014683702326594986554920368908877347757661134370706236023259603661255920409073449932894847839902843586539351640323938243160625600996779103817822837292219827004072306333342257413239713154954170477692543156868570299042939687363542399157292283496336070823079114323554145711604753840212117211790575659402872065296280847618560267319190612310118159584424156438402683004685971661288102783870614191528201041382117763607918736484531601925436392958456169159505329373617715198988797447960383224560539466521174331569299099543236269653241790872401284471520512761814807798529458325461669905107364194663459795271393226878977556078337225888718401403078332254050576938921696687129610831434840688325613041607955324318561296711562445201272578858517031004894527642167700484720753953352191906914675759324218673154738381519449290099746655509608623370810558465825469117050084021307497298987107094565450431343438092801574329475230167719263075279575201933203819748456532222557630296818013264725926351555048307478644626819575418289682937125225194385546731791284019099120972395946458994801042226864023457531751353060461256050586989610730074275123389037638603001660644998667246680634295619611012782175804411721811637430331922921973650387492306911038760088180575543439698510058988822052124707394176334113287956740983336844323532130938235943323855833646704690062522935323440093329362705272038763055369546568209382066352073948614277125912381240252426874512519432301559047283757641625552915833950186957446798813088476651628320976434698781403938651298516722035290594586538271141249484417024465211211118621088234514544140597717045843754630741262136477596817335565635662948892029045529147920400139512274655779430294694710108120751799252139780724477047562165215651634224843333257677821989677992009048386868584050161188405189541353640461836344104023291290530769456439775124818078968744607119875841823994502089839871556826385958995270963384702256838924058990747536786236430969005691253300926534324771387556810284208094718481984031263398592231217375354859722563980715021021699007182278470496295192102819769255840232275212722687646108671719770274950443234386556395137580924458621903618647061550688115229360680465495384849016473298768672886339356697710298990626369813741144213951968215516262949173999957456214148569458387626706158534902591759321363672207603753152060097379408112400074247388181527235364584344757719224313483730370211609307413294336229875326990256707460645601369476553330511070137894550099357412687029943084500826068105446977483600667006801766422212940539494989616410235227855388983084268251236427335148788447004213453071036462932072480207132237919586749046697750514510167582022487743574241309217619776725356498934786971449213298900753553368445796258979554331543477707007824385441050612574625594662738771034220789906780755760742317502132629971550021650649447796217564562085655996607936581257191215701931233422956920477380392114254484483173161381776975230423853761639587371209092866586224175618998153168951355988865055631661700544056028912708677075805482933312087942613540475502324010900184398005564962291105830957834090974571901771185424768451456986470872399552524953395307889412417883630054311029434500969318829073097635685231093486673905408743100507757086800944254027977750166856968297616037224401382372965784621811327790306584805838481346138125718785252925268974744736639951092129313650416420835027469701136165572429851697896582642262931788175591264634794002207759825772028220424884722446894610680722732592207847362034206086727357776800188966214241569178391566987152999473524789943120012811426643187048472500428429229763923069357399616259936822481795779487172212882938902126083313029260500957394303224295309310238105390038822574058401783500165471154157763747296202137310541959674282990629340795618678978431782475063726683739857282358766813090851109391695281541278497788006612350094698828375134258512643856414539631764385628835054255509849454605141331168630112559888862160130089961984502450505634117837415843004936424273049469709410097995212982682481615879384961899348272974300613947595991295756655206451539236534759270601772564458730842969504432781757601833344870517962639177097275024876453859889998663256367531773229912294100528071348994987362387811815143477174961028000131513985848912957640126020756555982837190939934396437770147481204701308801942546782416849859880291633891468262460429647884959281286009516801391879997291927424283648678868347278847897829726197409872509357712858516740551205454519686561046185157339210869995077622528229629998602445268417734716420506976106270574048568024245483222333265947467232900450664025170980326543428442821481004957457332757223342048201085930791975892647868709352488364129507745472906911123628696826337735206871857430281354270627107805145373437058974666734034397396094480456727651006455100489251510794901336707405807646541859151283766910809708063879100431712592424327517436130328670795203492618832626731867129860946001601442478106210202120194192009802906361330744461856361767551330560471454930786293552300666464903218792970885990705455145549706511655345635398506413930745238018748806031856135776789836778169445032355023954598533048544524199532808417903272805230067963925235613586103238882464705465189075831043960764796157237968868887537522815318387843159728064274552434679307807392163330150819854731805671419206499999230780019270665649473421381337557228738373258040366737892535864127644526707078502952688112826365539484462833729403934342155759042491916279471109495045251483748824450627456816485737530693541788688623018682433150987261587989539853937417167482930506417869628804587255775484647193521435100459608283814435104613914474001871998096757993954335260884896516935156282464590289078076066654139269610028110437395649261583252256331964182372378232853563625694049645968915318157624468039783749029619527593798447933823725353681572318028361061529923984955477726067565568273786188794863610954122163397117492614701937469471115391780757422363051062578025373143228748958502611554404332096978205945480659263635161698611024353762989149276313521001422659045083416171408771209438720695871904944194816187353568786386477645590284181171651071452112820239823974196808981913479463526550108492162120177734848724565335389945711286676327034962588979620259376888527482193031895816550136797584533874500893812870639894626062982372953147506965180757195324278685486233175758849578244297162301917796090637571963665905159427854179952208386315898348973422676653628067371191836519095707424129078832247427789186661235852338136327395680957526692192116960757657581061200775521861614398057747207506986683469827299500851220739671207896919947566707932185033750010375088964682637904564678269651636552192207247257876838195912294871636371867516884327542171654302882458320808723079736190274759076293530216815929163999585316049140520885985346766157819586324106508247899591543876255639756355332768779854912413689635643315725473918881201701533924829989326611207957804312150826537318914969895484235654066974532475566880881007826246987953817037614558386308110823489878630585133502124704407990449200775694668009612553060863962325293494920350361990270164030633760426452295497757919423765617124214657197931371215020810791018749926460395841689820166771639320611925032826029396369439388086578513009265935308932338726165718589925117983193258484752992204727555513414435885556733422580466048338445799507116992767842221523371307561050205021024327624396904588686920827500546639789632559779851221094029221633414620930838673945419384491236964834953342712022188553130150638544801625661309583826243446147173656105607996999273097293793766821186683250747392219857846430604705983025227913929687958402062301051869311176010669789995371769902539948612481235947171550686005057846608514174590958798411663848037042336480697674368033007568206219441789350547459846386888692396217511150210481982615820580439882366588792151894511517035741023746763766223570200909564192214332736395694503963703342348114164533374202459823700397954728317865744280299700983791590606433418254640596231078292049549682842118240490504200182494485891533370064637917842391350307830963754152693324425023732623522937723103988037145699881837405386505913143036280337253520634613801616682848332198173076179918307388490499007555593254658315297535904319868439973850407273415367136951579255017989051550820391189090430734465123808992169539676183164485267003372755913689211347728535488121299105866521536843259170723156085920219029341969222454871129929731645371512099871429729408177752877096334881121371786836562473492167479224037638845065413150440230680694544150349486883923270542171059253972232489344068293131742567730751312275788605410196552446771048682976692388009960832151956573565244595381278556928069977494985132793572173108099325104891996383708404534895094440959159388583085851123427183991885734653926882160147908128147041825750277778682762809837209693616496715463520522533950976568841281429072371902143207350579802303162302610804358379672494889862448360825583262168098856482771804887939910680580817050746667705116610393728132492203557631594309516130798573610651432276949133214933472733016344091186922256641269047659796506861826954220901024073954947025155377008264695885002362229888493469280063847432560458761873146093194627105013739203011376751073536276590471436181588237401227707629736344609434452297420254937908150138872146114166309002727210471133695531613164637455801700671252498426498596321780960182519113109968622255869869288563949381944644407472646223158296762425387227001765956280900320413778593521218849196086331103211868116608710189472584084671356689324517942623800978210816769918674545303706275779173813309765674046467227500429842141767530105167802480920617579701168707901448347055432358104249715294376832018331256034681510802746724427387738108725447330294988268942237109317954652294175239759936966770193528636474979895743682955914459565423833225937398537428633130059253581828973824613936372172010214420457339946213138995107526346999943867640238301959472293870616680872205839600272937532258329413868978600139518455444506322113586246150550568219381387110205836660403260488548294212316563079003840138389167842997515725203581838778965668474427602838599450944785736413820028216229306296659541065817289999976358824162280370911156136918472242877774153148044023778846137024517150318031931458243040514599508260987066841514600901392701200315827842733150378315220488134946903834837674431205217546332279966124566336880492683271788041948143917561313962737747548069676984859478115954947876372424464993137770300594092086264222354734464221536469143544271779732071776379092140524427832219520887300020507505196839221401272216938777355531768330923276612069007242751215012479504827354775216433890875341365094509086106474936656587793819066085804539772876327673022826892037046765764267415303058757209593012310279152763872379948818718158770152037483298320144015459047802982481453915642673392699562933120513253630949230104378993708598255361469617262662787480268835808440167350295803003106248350713737816830856350224876299714211709069638564237895230258167339869574359969395253761325721148028892323387389055957184562606861082912034072861885330146078449382112736978162183791880925534235519130441972602977226164541777429406134586232774937105561071577660643053804418508431686643831423271675676228385380266183228834857851209115595336299550899849100118445270109302830084846227760734051149116808143409296600137554362533771420793408607333773522436431057256811393243810783682725291742217250271186528586534256966418409153030597543903287109873503869101282913155333697714918595961427374359129991519447546562808630133882524900895674963471830401254017826349476628301921933745648706089420010689482765455313365743943446260187939043634235033344208395816417657693154596112741632788854467648615591305060050814806600995515333243023220692756536316182063548387319515331087978580772010794913893629545744446608137231682027025389648289317857214399137289901253349999574196697606816238913250393958065876056584783415368782119110803433102872616103743848052095563540235605212770020562582584700121607398599320741449247982521927429784993836756110630734465455869558094151487588116674403054690204064821883769262813375486042942532695978304282453668687648127548461810549744085077847320774233910369360571277902648745394447315993670122300658073544015036087127346735341263051163353142893015542087683887967445858488497418378393447705363674517998196095243810386261368949123620505428569005810459274090752377578185583554041577649897254045757713474229607325357718570313666604327684807530016629734473899807092670414047832189736407397545733386878566287298555131339715278812672493853532197383881295180554655105668733904897066618113294157235046441697330370433247403218072208919133483338658795337341681602105478170354321516425023802626288792336097448381694456739549532245522353316990458603663471774889302425835785719039199324551762770978586276166500977979856822883658166384307204110954019887013479187381700809273023094593639923848407174660469904261068507662386920264656096562074941849403179496455441562112389472483231932580764545440384031483241917436219689732864804146243563399887072359606102964798927632418187201493622437328720570662439207000768272006707720252238890051842118175540238479843382516902962925062844639621124918022057906216941449689793422299255783011184708774296288379175471067996736731617403181982058283080720777501341372584287327512180366395773747814000640571757137806038222048413391334901584073325271282358921654977214478868360107322883677606254014058648999416940604369980009566359734428893522733175269610426296365470506713965865397159506021208614078658468878867479337081622113012140587898560516783348389468268487912285179297082279474831925091674113440777816246985384609022007072691070277136401986944272098224497489469849335426497270519336236430219910370085333444763546888821407616797789490646562893267418740930543262983922190139288617147628981857715656316734613671009997982139289625907688708903143846982721501953220500992218297745365802439962613407836482422915551321345108635086576162942465476316496811558800167420735761257560730751067322778876315941554366150581713863279894892408806361479312487615435626372467035977342966125880554023240687533489655343361225548929412237701126628567605009067902289653564788020442819066470196446551191963132470771744414338424579284361502281715260138196219702517226436684842613777103803116335376428238753254656506800265140420407279313713862224579225474343524586090337981337108137816519334932803597601207830114385924501505206369898859133995423730668323638352987894003264294718241590206024667863047401083675064187474780453126968106947863747069892330273667750904328774978324641563908506307400956443237686020500324870732197793748044385850271958696083781597891236055006209967201511580920643359599855987136732942362719962475868088127939537299264935129261996920637372928015667511979590400152137972078826579453148967469391773909847543478681098350597397835433105129839787426560304236437796541068542004998308428591394531303420199239163742587255905843043712063485189674979541871248232789326178823059494605018078573264587022390668544596847077482426946664236977165448756882361029672890736493829974777514653623015418041848481611482705402272906537189118044418894534290404751786048841829058339537288192727761437345303017920822579851942092233136334125366421860423960759065130210372409557720716364353580239675135097498082535443486405575446510738975455434133250876298298671861424670970149639814311602619052647359005546707213995698321427454994323091880835889405417765613000557465173488024179359024309364651615096815781348656726154725346296504928587152755778612206707763897960187933571505440136248554737770038077483649413493536513957215945867297070437567005270922315989915369850541021762865055086497740002622650023396884986495880555476096972687097553029055486232567756738872108950249979638644951156479585882442496326680511415146233479173903572876387524591787713213266326839183519948940812808474628838648615637349533372345993080246864367975516376992016457771875255197536873367506489878199455799853276046416996716552365789262363535823727585784294578627980830121994679263713828730448774284947452468784795285309025194778605229387209074603325810097737419879124373394452424467286466036225792745009310586795354453789612922003393497086969841587138492363171290118996138937838563078922536103187954383021210346782727155651566302751321264077602459447775852799932484808911178580233186480697679956869724382371456603079805504097296326123380772042991015805793688746276692149060650493377230730552859278748637296682925241249010249907931870390547935569274311093989351936882679305037084395099665686371163902797550028182479932984604694954340462429252732809104189669784221829638730316863504842194302072742881100550507287554818460136373368106721481954139105073175857096145926628301035235967348799155384720069693785194313292765156029251713951766991960450300589235247754729506405273779643235509587954350755628505520453028262287984219644548544320577850894420088480593698918719096805212503041273256792487241859683168698511411687112752265814685394284321375495502241185820556473472747797846477363810421429591226674031856924092274457504860806882088259563412422026084412944455808576606990249484097230330183099345459273173204721120447191148141829272944987055483362194514212965768845076501682114020004043287346456884134479361711935503361344870365440029913212158498543340999870290337589387720983450862326231791482614218054101321622066479855394027527478922389617041207304377740453208186389517696747789962110810096134829047522778570742217098989207324823326421267898513354443756367262792850047317477397047452064333573034473453256854180231462291299708523819734885613009273076281480283583169405084584304806058188527627667556024238326902492404196998882548493258546509603145385371113572739018306626357700884859075976683636575806731317431760219065185820411481077991378816412819842780815544613496187291506527544694842353784996434382634838942512620913295301546093017484240923432915603630221173517017687710141843935271732606076947256425593933704130934277076877258386445287563578866673296039503452344181900793767601854313458605287221965395890519657761924425081017308415890346172196154714185047095602628766599492034652526067438038130294761685266793985572245394439187443411118115522366701080469777734556045429787441515767747822874586935839023804277281482979988963355827299082941336268836701852319146624842659537498457433578287541518387705910979176639213396582209208898935689106282930391698922156783011620593329730289895669810145186281213897016918907108743978520389731358232885994631100703749660022924021207614179443793122172888449690423434918570060563381658930398378604382040531858906312864745878180418732066631185766359670235424338102920056589108297879506633877865497351289091433903284616846095548484662653208692373541721263164256194308254761952531600328632014597446171591859779208344464610584501516065429190668558743023215540631942966233799468763898925853270376169795092633266866828882523730880968142067313862189144279464500040615393905755358900313537903182237562229034643722178005100648781138370708569444356270041106540050566686204904855989357294911084166918595564725319617597360783754126378177814648905594785433289274405456065772740597124526853555615294771435855941423117934778977493885563599181345341837501410230622363622480108117292300546655275903548992508047034373045343707873703461095209557534915503018796864698987068832839527859818221860116779796502364628187253548514083355512323065849822180282689321914876005337197101593505438527026538219405640960893472483229497524593081774588178861731516693293125943875623443960500301661891878256908616405655884559047153989943438760873392968246386138733526076064261714649424715255904066542266928147550828780662313831945137215037753545651206322859950562624662920370707737695631715873601828329525018308994304416107983444699936074217011329975467773191314102531681154501614063646065612703169691183443661777379850832618065247308970682967651637437701716354814701965647979043338443222233017493877824252201703653942543381446612507613244448366117276327393738778535926016705857774993237156489838961709787914121465926025904054373450423833065637280701450905395499647814948278197612548591056827066488230469177784736713709813081901693212224309502770562179272308270384744179007085463738142574638818265033873677401696776918041144911017823199573859327201479479818656934717531257322774586139749434339422287277709631397553003118204363381830970135408332395897233217684566584859901855280837317712734974698750847354815928334153475883889890117269089372914622974014485986959741856279067717546409538147865438930680971286025450572108027872370794283088785287193335040130649257916448152538681740426792906593949988828961656668511441963264813153929230159921567212959169861281997071893067949260745410708795104809431055670884624124992186098093626446698052987415340755314262682571154081270520441396014789261206498552382032448278067568306450041485842564605304671317491615980114433294334538761241227699121704172809946093421282454834164694792632294614414724069096691659767757183139938297020306207151926571274782801736469675531935781587908847036944273590359149564006578113448664855469200506035030714587037816460005490912399039608207127087137135797083456387488141534179037029299765872113443980488833722662567318766443729851278156454221138108583377637139098349096790560257199200675903932978406442238814195157705508696039768388358590053077280547300060930234593167420029940509479794103985560080224980554224957040489533901140133540060964365994477944909722655623776117697674064467291648136531043328714088718347528289977810460923681563942588389664420814517347475618740852812398463383485980111502633586294095084155466979608248360125254180055472123514306564225451781793578021821088396804461950556226187633020388962961672827541545689520317796204786546427191736751438759465122181565369118384098139432311602842751565427925811415939557996940907975359808907202269236597713374208883758873982331145945979333455699579907750435339113877770635453913002009985882547187186713984790795069788102737977164374653111424278644689733793108469505758898187672297349582424438217579444502847982693005390661755073372790429082578259871936637187976011943364469647407234235349853817463046782441392903613812168669316551370631413992333458890406659563694979906744068727198935710882190278702122814431668443439913358064414161071084774423367955587572052667971717311249119920644610991876348415812117230052994799085684200242844770548108298906655973903099421289711951328430190580034969273664714769162092885837777578197750363262127851726469515833196517492975378431889182152419247502187305720104262965516586305489151023520688598876316188546908292784135303046273443243680519328535003799553851630957753573486840408965534814068809365410205812646666182955914048414492572165250614560737816871816178626836481447505202126476613876439657918699671141841491654884843336555829419517701629311534965448838622319195478818898433820693861078906487391316955473799842026551271065851033168544958320049597822494996647517378557155730313008317724793640515297475197447920179400965536914919151849833943647286522901261079816147230709474647952134526379632068026779629746297016549481142906760144027063366212820892636348544765087673413184654143291418187746435031163415992922269429326021196151697730391139121395685855340211590740098175740395220714470564078134765661923184074060121414902896748369638455399368890089485762659217988457723713524870068811981089891586522251765597923908421705755135572802707767511245062291869014979215287762881451896834473867504021430337674402575533568665620828859807531017659690312541033380973104764697858450950306165547118120421537296261560380627233920869492320064713718064097907111178204714195781808215761787729700415052955733711025415099209664433632933461167074933559227505104394581357740747815853469118566918888128646438431194683002547951895765827180824450141862586245979495511395849689613207000970053926466160424841700455706649549068214224028133978464547938997698636666625814456028756696966398353833115429801385469628771405821176376591762796550038976905335165923182169481015585170102831701300758461974031766189364548144263092521257904006141743130940857161627290800504138344067769143389697420540195836367707490858547240805993837047258537479673160952908286106967082897389696061389411940154541954150839210222653075698258043480077507260242825383875139991760174164022788158197808590104793521881863268803156054750930705022749263632200125420803154297391463502792682954114641031382386380151800124771719472269641195798674915675774465070112856613312222091880709291423888248483700353121153701462257106731442978085220156176661399815457382789601202286778086199059866855615457468796742206463900468849592782909974043099439706279307228782828119438985645229092584597442963923070422469076762049310287547812248213599871212941663512791011063459926643711906249219387834542532040455332407983890714539169776384500164282082942775386032405764912461907469190353102853023836083539440450852881674014959042447785832292583714012371844819960431638312928168224695046664274069964483770336404586697366818756117699597719145333011560474436200023239125523366647687016003891429519977920891661186470145930443383253620541898367684419809850045898547101927030108386910304036429605434516367017171171615958246064964195062713127584933378040476343823313626151367880342447730668285748685851449441834545821937188364165887360598812075512800927537966641156053177061380924198652797753546774882166146853083970243005582775992344486012083841045769588819283062536331939800906704518199404433158630046357825926842358707072714873381044045154252061347792932906481048696796684663909817320901007549567309692705566429072778634482220686798847748388346447521226664653262889920102531291887207178178664575907122051810695945112982099076332063333936785619707077771025076945416919278345179495988267292403460843798680248033702775132360702803040110131912173664954118081831038609473643304749366023318063037486004438445293893596791203463270579814769526457078235736381585796893942252666047133168301125765486002397569530008547554422250343073873181172693063540901176871349056265971719206481315523075262335108468622725886721854699371769668623380056694624680653926719585789761888301960558150112739536611562589830311030252848798860781921060697516647375053890212190013209337144472178958695456581262946876305655222635382102099027478371846058711505113416043418254817158208961124455553805596320523436173686876271094698646680288249098459969812950317306385741520393939053074546883230118180886346484287788454936660575219614146698236978696245420797630875507619374418925501052912457357093046572589448677202797802809963787743005338742197293224118692491469798701227074241452260403203882559636377421877929600607178777435365627292848192508024295790205655083527591278318354698094189868321040798339459299234484183389932166078505698864143362679363072203469797875427120060390798565025972203421205573630047229179897807241526650838440713833522795807469276182685541120761186513111939917110716830883890118304182063378321767899539845311668142277763867016484062992489609027663319862156090825617116981525245434189921655440930359770541739403294480000652116107468364356006107017067038317915373731306776094039576528483602824517578813344138188899814978381400901691469240322028711835403852180127802559124684534037106806745369674900883796287456013711958069157932226108742218728435884763974693456093296226976951756932814901968852735181106281310723192546767525727822863516018600505374262831752862211442776302373205639929541375958025719104769761094271473305024327556175302071564158028457795042838624386948946454143465172686954203208967448438199971740630595527189861762231286147786623523494760371273476844918603923839632501389332966748912349744109251216009118401519698126112920321250377509389379936061734358597904410271436569525877545635375538116887092226382082076686432418553935323131359231617865805012831721605027283114319435491852661118926997515338443150246731321110688153252299516994491665171086600198527018347805023079843110109108031861275517379743625091463098704869772150398191572728594359971709074516816639631192298777682774701826381289038485758180118307897372232000639622534738656810488094466088219881402258413282070304674996811823775445874865973382615619151480647079556786590764663124100769665318183780950249128760753971322139905947063164597535259910121148212564219838338151922592921843873390108319546796328206739527149971105136624849714726302147319466093881259737335276077303871605070630010242264386321976953813083992134356853720737507440446993745132664394365288384445500548229077529242008592161049788312880293150124870777747174544403753433375638839590874369110187233850639705326977270398613448543770510812759188632314787972660009351688591209207567418027989017803690522695470373689968948508328278667912728548845301425850492620174790979350847054221255632986930288159712078426021858537169766289236239260163991876216802922441133023248517600655549207481755106414887993809961128013044581229022368255052678711506081370662343973025817734079654216625738150042098820007564192732715468103723262108339821536540403464876677909925616686864723650227578998202201440725935938337289073356502044687741588006074627628670327164855815944690827736483491319067201550649567257480114526665146625759306305170480947958210328255190934027826612756943408450071703833366181585543498158094422506010169811306977839284463387467493256994792788762166168667012021793112255187417669989450831993189059456738491621836175890851307932996081699487815923319736408506276966153416088169191709943146667367631983999978884614008448969320671492353816428116190742898218452588278097536353970023770266468235602826338682472275065230541338535880037638865980974836971279344137618013787185822178362700811471816760645964011956496852143073211818321737958903296593727861806576442292769935333381800895596564864004774239960864284312430764288160857566972356426989711192744189042806075214787126619271993204980404433787447357576704142922503039099753402136537587597532343454373834998469765493678194135342207088788072321439421939363213833765786197245113989226712284735816891915355737783528386389818596788013075597572843160402079780500417202307795266027358057268151361647356861158177387870964767704192485207901818264670971487600016319419801095992009059117693365412641004188989142120627670447877054061627740605054413492116400576984100468729784410676053559086843242772567238284971578219866675530526273139723101727654992690286544110933184780982454026245491882111741868324412891546086826456782091868269887574438722498606411606074672174430996692445031547017509203644005750283707505965124993073301608094063351593788645629591929002913794392367941995016242132601698145313874388565778619987182765339191109919551535440113661069204376500032863243341073180151309868133745914791374420333479023396693535117675711295155678243225334147416731387443330432472461218783441572020938930697719522687176676561373462227857134745139759906880575523973612632356036040229246843527916317203054192140060400449834831295705756745634318514147075656092795858582749493190743569778657445128398348194545982709017097830482901219601096213377009191109760231503543981785404594961181708059433398629080447812021835284943382036134254647312485815859144905947368006788633541901588085608726518012713996122065209433556360207838593565109654702644291558962794006713791485729599104036418219616466767364937345791174746052179062403658350074451978132548088798432985743437088177076839539253330653206189111940892393823677074639597440747276398827258271714378077478400724880170683746683574778000459939493390451362931621513133889277559114825224484594331501912604568389059408135401962240929590537742270296811800301268525826873691254654674806035889858017656946191112038532000119114584324488142702418452312622605790598521699845173425599497336776578479153122891122845179832641221320308749937257295045971304504132809977224130636732780045025694066498397172042616332342347541072895347511054537608564211399660300265326195059777505270134390218570613732893224492041253807629765724621203534790640974101301329706726474116825113692819900214963770502002185047548968564459402427618350455098098394457870787742829061077558413233975472070968292794191808807076907981440507063881367660790574649058572768085600936970286655530783110972864898910712116177110834112132151832197948162455757289314022809585275177372416605133251470339660749502186208237956094977365029772942424094384588476666674438138490634663949948971687947809149462449132835768777665309553952492398070618677757989965061668178156639875184016206606987751153858351009870565961439603870930278973321524671308890030611864513165426446018840224134910376637827181242582355543269873676046657249874952480865078517382247705971286426706465116989398911512187443370233077503703030258601331308517526919190306034605518759514519197748383549596948008473630783402761940834211499846034177073336051879098128259980654082276323278206007904208357526029406131089729460271006044711421505035139086821548225000716114877806853286022925298536512734707944134114772623093981369938714851526916326872046397631242413242904141365764731054058950076533684665958530703872948194724019798906606374418944286246893165300102768780543698861784066547300767215955825167074276075516007077907657004477079861204735598099929278527506999253747890248062116547207348514656622749211780216191093474509538012029854894561934469060645023782867342236293656595036135825084480263318897241346780938396410064071038739497913736664568491315423673080797120585121569354354874992010024369705322743985750566851451327543521296032609801224363515104348227238660553260067831602081467372706378137243956135375626330190693463178815618773851079219880438444809134962882028900462997610074442458458164962480107893829779239582764633475998959776770567081945432628460001940981058716677207421831875225665321548725539140459456595732270567175972395954270845724550545196547781037633912156871364635957244378806542926568929733991335319570138357561258323062346256866434214800389744075742527858130425226847202992754850915906933261486943693731606644486065810905672129344483058272448263868875268158893711956172723441454941182874148903050936248615731518742650058903845977356190074566093005743027244661328371130179106403715405356224679348894583320437674035492986418964402481023271723284537398703935040985351277492741157377882307657164140727206254473102291743129835680304338680101937345713340676386037432447261917002976586047247968346772801255074746789423426236170400534281194404758258515243706971443643189468000430177098823201101011211981829503765650437713436565757654497424151107850576382318243398645301675640579004883993482123604778972608649075458623364404878145171791814209025884475676658502135874602541469013422809080259055278479981065225404692737645993341342263187148414372405427540810031805718910550451097851508035305076758569140769779912352986499022248628584964038216544899302011418065360970067838666024049869243779187260497325017175253923802017968847926154079235816178036819095171975233734993272955053436784408997641228806999473909805301012516136872784004750104147772187687114818415541060729072604834134796562844967624753945123936418332093549748572545535117049319675705834736723712608303473677280084757370647646995297551829318563107022528226848633987404054486475105665908099938233580200477677768981320271557955042892465836068382540132323051599295283337178187879199736167807163661431820107798441147458410994000002330926735500413587669139113657240766169183797137875682581442417944411818241857265835608045576383103860663762895060363479852693606415414065210655852825879452510991212945615335237092682672556188827167627682677218233158653190868025010183201610376127217701186165362387922882434834935877467681350438880018159150704478063829465301470193980198181850735358827891010270193932281715239854206558382072808282804682956643085958574614479850606140237033297730174591343479654653147734522769386695155906711335785857203468327221935592759376782632648507789880830966122926264723029459354895838898902115714132911728342621977565171049769028211409055067079050986652129237480402731665408994566767580361875628023265534534164001181373926325661385330615624918439062062580404479646281621116907576835855485731039362652646387402485807693484330630571812947050046685640946943267458613438181396116144491818502703776433032939364563750116633846258438429648900982919210939975902134933654823383894110482712453633342529427821032506385469338884806612112802465005053271496592548175631137566780036336342084725207545926120705891273286901228844739937434096882115950131547306305804090085745335876293262840276596414904415341864239000339709432818248532443219103698064331538712580309862881673259325227746450799561336797252445715387751702835162570125160916737407547413743299752163188533777994458863697870500998599853228196702576844647665913536667529874768690575992428709949884062256527654747093903817014938074130253491317083619994567683688514759709959828141528327989152447946108051718526757420001549544436909804818547720359377978061104766361707254576615544326728760723817242675333966542148368977804979424461670785643419212163317950254638161179586874568243842210859294526718021585967083768842137384211348707148107686723814437443922955165173964509549434773420620533864668608537426444146099165578873798728237354399945487778314155401633775850420319469870819920379639195570596391925753512819794430430292161907521759851081900470454633512426061878307776627392731267180116787067940770269436638982400595587456497244684583761384812382631077517370161795990041668775539546833070872862597240027281484378972399643863994389910947679718226398590682230727717729420965024096454400808295329356088192150738180731126238990396165655512378996374584729196332500994765531808437733211119580405839759276336110841554320799681057410096349312291415158287767068115512511377478082238780997659414628871223130041818088227985276215003905126577600124434482434594417417177996882830793422870138093478302777604746046498867265761965057246024428369164642419534920755906219541658939378805009698644691078255853739883942510472404122526121095428566003127599576262377815052583410197187255062479952757395927243307148234921723897572519505396378580331456973073133133772341949667503173884098158570665559336212763026050131493863809459367383816982194589577661202491671892045934446788355468490788248043835603604441668568297719856339501970329254647575593828882422408833958346661539538798919926547516751925149610173955645791849938590121161418202358408265709479651637043647304007300393553845150133745813885718796656796649421430845983958322543401522920560261690668184415380262508606926930066492705930267551987818535991112784185569561046385555852833221760735675807638237968375781757096764275912356805598172412560789884783052227798069090565742783295682837589735727107482608213155101576127572147088389150639261721270369784359330066899202065594381722742191876335792956632637626095198420958177789689377634111370980990758952671582528168868735111633977413077958738903993604793626776401429419463080320181194093658357562317339586624193433134975873209043614772181875307605467969243334340768740361628347998154660740604646472552401853840461155850490100650704720926938785542638202196311557479462864041214158713661999008488082081400971675457939311639070640935042400877010848730928754446764183896472251695302131334106937774622588340216828440223984960995402239417726439428911301121591412478284247756026941363595365299879399611178990381595961823043072845769141261129398965366941578023883660877067218210331234232622529829658570551567218720456967550315416160039036494141884895110120034212897034741416604928934236096825263733523330460715033969406940482245009951281948585425858972618800629358587066266946520723411119835375169289138004938423744469694656295932616339851910038193203121455856458970503519092203426696997706277261710227239169501699027760999924573893034927436838221933108597842702607099324254844433527396921349196997266637326487821963628040182132207415512970282987747946880507101358024587825253772579962373486720099402434803169340240793599589778196582025321002767825379561679620772834102841048917416783461656394447073698045350594247562654691138961062773869005286328905216671618785561464348835986475665288692315957924628008635844229862297425335310235779469036914517117026437919642455394079403740752870516634372564929766726452157651629331816434764042076533673527262818572777593124637418487487506911142904036032561062859501272714584558007526572253496937449070034467668309727916930586902025274443161926026622644281506276128926938797272215214769422389198746703205033488256754299181322266838268006242847894652042886696786207080631991491234846129279897909348515649368075030098590636324104814298753224696911825133822072222799074108116277489833410517112080265586336700751758626920450534995731837479024595168179422905682206027464477700232663690976210490312178679462882680525699568542135599643205578068164644026612568256035243002731092785688204151396663362648869251288784895110040247060904919977562634974016722850768014551249799377495781002697139799566375912681996886387250838520608413244956174369651672190872398225759000747657844050769606014423038681535516351873660787358446715933283584444911057770098375391539397758235045209459131615786998141237002618291437879588988000811367692322552382893904611864333202064066211814649873567435556798761268328777560862327394307301548217062265416545069565063775467887586627882734887305567983944309599983715429838510098185599240896725296916810277734765500107220241341144973378488284463451257090705414333579818499997280939076921461831062502175922972573610866578627428265977162439046388655065225112160881635333594256714314788885364064451767213375459018644978521262058903175140418769871044014187247565530024927555088916103544166774492449302478087403623977947365247318826926145165223207942445240228307176219120689359565845190983186056985342185420454210423737196974179720374887555590917647839839621177581022473524405663228438642790655416135789256331245273677365240020570137660040262128946016895677977438404497577657295028236310944639119200906568572117833095188459265475983987229120870752711979269885390956544351591749664405099049512921142988917560298980268612460664503713771157245540686288494682700490288604390628105132258071209555740354956197669560965936128734365569138317210925762192511162526883262450784007752498999411577679573659107728952703478679099809806923196529956493992095332411165963111641655181979651395637419768249593069070793844120241001296731312819832194771755597192355343288515435317756609964296555246333857057389719642287296959107756707811555680582293654142381685038065788327101601893990620037660024594167600887814983168672216277897667122056187338294062330598782703814666235382414665960060336787732157680300288173816085246962839042391737186883995192580302383744255083346012869819961398919403093379293951085118453613140379112475170628735707196717819252799331020009191671185232497943027998118331432751727006470551644118252138673602149742829760586208394517337942276714313450490901595533624302874203723898656579708511563605363101407271855544575299108977216868880419207111495661228558263841399993640451657055583533312749328426054977581124851873175433166426029772968808648442815324737356061695775780051356104637391450281039827289449716074443341039356641184632464551780903141259531739706536807307552259810843225065475324988664538828628570453259480361656942605460701868281851306503853792436093361072137039513933328877636694092353358597719746453104624198954647258824392889279665328442080259090113304676979643899887663540911716153323011928397489724365046771017807860304191356910545961563977346491603499198714274530230015351812259410186020901067303143842043678639818274238264278480160991883933089120443012327861691699568755618325393356993462325366766599041891746998753323743613674003067292590324240372214187684844737751844773209707483372447137533905514396891092763774470757697485854745189779883752252874491544080468282515157525780546094813538187275222196521312112800118735195767281079025380665971408432708882315175987349403852402275512559994827483946377637818567596169622069876683759601239768202370408188151934955942130412216105783636605544324342162454151858859071790251112070046531452348142056642269419817398175836096020553717908097483777237085285738843555747594485652797462593250476773302478765117281890524528104009894899619863344421164374915256753457756791136106167913103004335534332646458159188907612991199315496634582498822085705510286604693464329402515113414211553435347024158649192745177406951869258422728654967573617913357264221837042435589048534422961421183946922332819197770634251238820995191341038775100811346831154167417310220371576576163814593854124030322347259538787807400105785988051623792138384767767148797238635679333263812837779631037952869709107333010628976114288300326007170264199082782350050693418389207380476488103428197940105622612024044882757724980948049300167886457169172312621795801272005384468996629357476922817225879125843824565017346744444651878334447092423310121299819798698840657313969315264844462380415232659066455360504809971977530687572012001015066273285467673626512791463792188185259236111892419182823060216025800649187492751600450232532146489658283161707347055044216918748359514955901777574622698659854798366571315043214476556922753456791680361001276404553686419500877386667668190412693442466303926309769191527388588577402484587476018094777015236143117211961969115761414765432675481876357101275279238816424472100076008175906193009481106534767854456260582128747711051472092796940077455573586666759686825471204449889046300330245530778886065867915077595358726376791488732305883957000740164127394533078313839872008573961636103052091784168785110571559938406885043557371381505084545151534722687606897200482917840955272089193382662816618914510673886607836437158790603479819245786850543219996255507151958904533090880981886029527804167804355644772300705185146291973873810806349625979913568790547062171221909023935905236972024182917592350943221794715526777383786786750442113882308054252767926872206476226369542278599189107681539741540262418434925365172760125818059222438903351652263508442822887555827078794632040100991820576846092059725715397067504794755389052460652690817240017659793203005988844511241678671071914849131358512263147458017321523264577149741662326019964200628640421491156290010721476882457261894672870640798573290961732694095148629480152459778019624382626704157057006224052157547391286347983786075145952191945150872708717277152161500881921040494154447673842638745957181760824814152909397911929685015299816618006564496487712029196764978698032106221684484086230100830173577559583397250280149544137823578001651487168168813493104748750690633353198379092179990045485151191207293326794470565701655084574561289428339123231679494521168494984247383557929061314607894731453499751394570636983564685185872873805658542691764609772639753371738842586496934989119500144324957928738170961598787608122759261655218727128573870327467262338822796869534160626882539197240174075819470530093258841500403064766615921519070725287313400260855401236781614842348007801954897871638677345864760454408440135512283068987117749010899535622179917295026038174365748174615209082444190553467728476327283874736271992507185933866323562600532661434831978878255142512528057100899307068721431712680408915483786623451070826718009916548581789302645016035884076733123320210944066445866966779221654369469751878985116821907982344282411251763961376560139628394316401663510991102163130489461020315496978994451773662400191344562820612292695263451620600836896822922155641229932336398131270775090872776333001689517202853810716907367979962000472353898800220240486184305414588931146055675131035756101041164644751251356889888316757853264332080699657925986615141987871197460666715394478482798439348011947328789710033656423717402301975273152437565990984604897178386185905554863969650150049679725074379373410306246368091759884371176638925515013210946565166572559622946483862639919285023533234462541647635897513417750230045442232036778851073011708814162718896945498363742200627164080475832214176544717077547331811292990661707076165620996223335859336776999568479625651845701696778882197505228325142251747616064306162940137156939548213611950742497336209329304476952759804726748723943911149610512838220191875839097992625362127483810445334303697057245929735103620349277295502975210041061219621642079465931400437226391594909223781310588550514988730104196508575050740038156063997439989441716108121438096594811709214816802773996755679544330631404446471107384826841237543397400559735517177000567256844118897722871767149688782296963356024485850865778874101588405308255943507058650748337841568217019984442750712707080521940801956424040491608419055448849559788485724411155776703208964826334510497821074616988818475682576155668638766994463251288073954916228786706993640890397187661667789082212722690976299984046030468498646596391485321567046954986332498295353151444994703285992654222798994169300656717726605405798325210757374084000209878028347040917387554345200383789442803986044570551795401159380859222221975653454007696741228158548325394769995043645031147346053310084181474060152564474609384704356961381516321125846311655654299642806584824918919724429836903669453306805036672917161074161947072653968364888672768859472029462279410872395013956719001807139614898604739817456845492593288638553701162047992622154115523057485878792135796952625197241326640034756839086459371463997887803645476799279342058970987836672897986431485422417762792210078993453096587594512483412256607609017247718090155607728012808076969460525861090167650956047574999797521637744009244446078296824702673308485093216787547375483631712210622708323736386369975821288765034131007986800850326854264890307202519266521806628205628450828193404703973043332130431228287516225563336597463101280081546435144761863622766770328778365726307863438297916808051962164466035658297074160769935313513396647127185869103883546724031274319236360715277704300614739763741730718217702706368307649176727551642420400600534592295212366409371028488168670929859376586288146498833386446058599928781503785520407984131607886167334894041129104788975602742281160483490377134338715413451036203697194738468736459253267509451468133929985887375673996527392702526129851975992489851415079488387304980148324588298425838502078177030286366748099955826425504323963254468153634491521862785516933509286760967875661108291682671451756162079946478194249727464032626740784949392979118795934398484900554433450227962667788893716936824577899052052591974048050583966278194047438021546326667668784981231229991107205925932115130819528453976491386221132412823100898147423429828563868892037529059803781767130133639691830517577704339233865959167470624230212730893039894260956021139056318580910910255569765547490174123392743476656882136838850999439272340444732665835104666611652745869310223712013132091319767446668876370506481432608061806567648933153100614461440184061421323582251810190623944171042044681905174196854224667031593431134092550810069000127817942625241517288591762875833861369975339013911370819260847180228103354773602265396500834836377876228309850296280329541315575315506797138525704963644504795764569145862551176708863281849049918397874872540375029738409426162302818868537773581757462338669837271084024412088522491994262461317561058387744072005395294184616740297465339125014792625757948414100615363317509630876613454076503438660872982631879167277959608317172807742195700352807730700574910957965768698606437019128134967375834810134812126460484777383495912057723120353332205138476228118342509550421948286933638346016884024874560537415325399368612693964305618407366614218217015642247034512605002240206905932629680152368126543848132885419983250409773440844116311349017325000850235228516766021810419374916359742017012085476373587804189340595423886856717311307431104475071163910474235468795715829626913172706617743723767271695195929939558401327808965924645916207056821829534411621439401616382488752558681091311662708383664160790250361108707073243597578012411783912474342187548894218862149286507095494693113921371524601504042168444641860483704360440721039078986594195707698702043457059588719485454904510834648959801686319434381507422064172189456513805740013180247486365546400635539248539046026944621533079804552839155966909602655203411742944702591453980904205130903307674759591069032336174635664480526622486759082146868280302999739001137399213763426636293095406197700913265136439655266301104659778996841072113169422120079797906593615347932676490656651004120085355105528371992985843937702510888105666443417462712799541874594781892560613142462334484935915029890485138718746374829608383116585587151080927010291812537613782188183331472717800443029428802378998453699070828743813889687124951433814775810489068368855369407401917438842072103632591095451418387713592432345646034279004415674394803286523535768567805704206464887498797258056424602897411446200595943849122015984142054070479929086204504114639263842550541170092788776863634953288440422770301289506925426429739396517031964485965738019603806026703897984114377402218722656397135717913137304548143038250400759027456500547959648014113358869172984304509520878698347426990588306884023418404876782259759238994331892612091359903061127968156027154480509131747496845272992525372718274185172382967669757997346318475909255603510608924862682194051523332461947527741753226903254160501348324099640045226533233545565901820717539701884948919909611309586177402614782659455845685814808706314055364138106397379197402627226930405814179520044060373512689407348383960649538453177937441476793052046911324387971057406355388105062760066505183045351798661860712420322302798166535610544214618765572329560108835363180151294048052382690198637928425763597743047491181921394237727456188111209580142893993909128604740649906601204957252206909700269749779263679711938871843365179753920850996270262681381313717062262990389373281116432987525638173216635319560203590154202108946783040756668854540124786918524616913750903008388128356470826258894215333252433379241326637803384539193946217460727626980462987751581339963330869474809757023867991405838253685725262599525506233055679741717661863619507433676979075839940613289808865758363784782868121846330286104309375862628612643910429084438920532492576950238809952931582611234755098027045064047173832668143704399119134197031098596170574226511705718214479405955676618065230752394831174486466140359813378941517902183835943249029192319661961592737808726077418173413646776498907986261233761487437689882509930698732007992843307609744924044184628939239744833407523190474387065868615621586179116121240767113401015722950538938612490104891405335558712973392892549426634948653497654031475390946191161187175407293453707139570554125348829122874072534588786428524411176992459429043108342695973941574703033286292668619527957482902084000326035979032041194646779478024330161537511555804976289420547723632169151648435382288146327563065175323510693398272550411604846352751075776920083241454052534599656634475496477409613247915444957206883985662715342225802968021348358043999657992303284526055452599606144964334573880704810677031450542685845078661227246349361019840709578830271204485219050422768474857141699436168679360789216654824692796525930637910404138058469456316238548331484212266271875768345070236410462358893269679304683638325709310893052201860785344628036610177929022902520295801254874877177316844689417456608589265879769018108223599583942770307981688245259391575700824982193690122726498170528819171490176209807920720395204089556860373839743860987210376909368260919045019261080631635536511028571320328642034184818557293809505769810959337028183576522944681083141044884333812005725166111297407364433635989883165751224719563890390743727066132355033974070648969877685859755321252344600088898155642080212063364387905955053776601501798152564688993607620297969489412411098297414475692621824574540761857040354416567539137675831680620388169508433935596774155034300748060632057209478323996804446782774529743912889702993491396482041180334946421379736021350627729615832598483965669205093955214168066465184823612990221321262990092561602212921788700968089948100824538646047022485589256166345137972085715439234526417665319305451457499285540606437079453313152090569851107076133505828479186025875509297955735343765183356001158631873043671172538034156878467654825664564834764418098268240101587931061999765735461688786257083954752623458461094235594642661759566056613453406024875591045851413879716189225354677440011397076963006436948225158766742782946006242762570057321021967788713741977313111287452654483875730447688598811364606260207753272074003777105059777644255914826846474030254273673677081096762822733886798579690244828765696472049841790353480529899464962919089523891329120879479497152566852693204091166043026995302600445096117280664951084725349484820504000792115334738645023470444534000705133318172105349263062164251193455537057489005078689442370284095609547765854423310010277474241201493477217321634626885032518172048092165732641956721674201107004907533145302668524858016048825965281880656743859483667487619211192607147661390674317367238550233731314951650293161484051193743579144240893192780262615352499925337154970167381410837709619044503073254484515100334924112363223686364780473476475850275407698062146511942005207008479681646912044783273885100192669296759975205319559855016578946035214528034092730500782917971499854284112698994117583271205587335049242966860214849320005285763966600634027190224436062786687101728832141234736410644914704049918934732412868432248600862965501394127050829787969146739136678394934696791484876461104070974003740756681317613838438508917150399645725706939074736556515900419489673537827946033380442360383287096015875500173777108042337753910559417616804522722221345208431834149256960066356145936056209839518416336087324860752450667136724566218902601054473388038708266704214726136837652273528151375511103975689915544939871045322833112558908314822923037090167086412833224563345761031079092602442995461812302328950851546746637668677804126227613881164746577033379529788894153639204481232315098218676313148674432695897963787957814495609022745324380454169558064710046323589573562748179552066240998855420109588514143147993521320784522337233476479948063531059188570595745618200676306695033043302957709834482127278655281755580471331294630285860289680015929271177240939719202256059269645041409296709986960062175067195825627687921498305969769933778305034211212903547311702384224789870103691348193937272880965248401437719749320438073850464261982771278311825595578895996874905718610969394636689584475314350468543541712324356192419965148328502041304543931872674578689539709752245751046368474351380645247910189817341142907922212851838391769755805308239616322807247847556648973668436846835891387566877322062004966080800381375203104149409140223749005432035500924516642275176321132336543056260850915521270698580625705549439009269133932665045799319505765899214856402702301427613907723329189915107551470398187034698442171613822037752194288232304786160766948709776419629446256032339240711902966199278779870523769986546063811359102636743590458323922800449043675697316210911546963742809905133502217580253039817018087532045913370215041337129517499736948043254195081397712164790675760411676404024700788954417379865252083457032554097701377911712359930645965199497180523304383913424442895315302449906989724542098224441861980234880287729538457170008522434327563063171522211641564906796735687956817177102107204340379459540456141508859967781550431741061211562406848199600061736092969437824321099715418420468290362404046473789708584229042423811166244257368145367599705942778201246994903892282739036792849192871387309778409532965347867939127230089868065167103105875126082703683025842943152534276077127111555199666817141241216157791290976517897864244354290265515101965745747140335495940720934372473442190658288234910797795837074366127866124459467451885803318475506712177286361295604695959335601209134904216305418200831243813951630803458800569470020618015200490047635063429123014965976897133078362959992180375879921660552555454625523983942590488638501966975458665234841907142894236497830806470942835582859951449385637761079110644758189362168657584342545908383189861343846896439598296824025048500897921352869409612544962950445876717096397804927136751705366394931868433652673265555222028940652233735353841888415801637388606412556776877891604471980157886156579927289171328412399461219905244430562865590325903641577287299743370611139044140192406820382445314463024068747227651040224494772021518304400450281063603723964678651157567851314494751008993954478854420609861692228972960505900385261659420002455626031226752646816308265614731708434205247286686362058556129556711680475161048444958767143723422486614472756256126736203003672186914096105874584130246346914100260015887273889390087753964380390841589358350249937237087455010525182901297157918768992583552643534419303154684240174665425638782104237309357038002297692579758093121058920943958714171738123237049589366399688516299748411633569903940768359065006414712968543259555340802113130245270116986732186330784035720320521975145869733739133668308796796266764964191955259570703559610218505637045749929023310266573640401238015766766193719843259462646123829350936039781996541134427933938272574236834262350552987110262553797039535008054899425604848809243753271936236277254906066564649996091192020814916257208532500071008746801108351010289459649938352577050157228451001071755828301993994075935845525158040266672686108334179199197993216569204540754340620938283900822058743671405323160998327479611026082502872943754352866493507473329778018920680887862718626726312883632198206944310572420939584395755548300290974760075333080806493154978605902604064699702790776745956538669612757452702276775774088803035527068274246300466435185405711350418310308876326107743377372045107967187374645796620990937898242470966476381403516791374818185949121468988029912407731901077168257509374965125771064987914517651410241597133827813631243487491723787792634281804767582117621096114137044873024277981750239663910572706029614142679542419643405637430316986658686317197233605862421063208952087281870742200429117793748429711593896939455216619662587594021723157561329767962031069204163794447486661693396552623171665161565490718859914732610755385714310050120991825112615739943307845948771127774109863283675335588568232489254204378291336566470104794449005566082034387416512681268942770627759115785040242531677537262892298582507710879773552212924152043388453501871561007017020904239453375284389617555790131107699795773880361889264537427214576298470655388516519084164011651431055677927321865968664755662976149937166278446816944742121942000829112264017988943684899095548647586809648969738254531538450178721952762187751336163323277522978804207313759231542497096054881863340868987580189839028519490633148228994866877802997215008924903550485999975006337194691729962792625116603993727311755247192432223694765674470917620131254903290420885291419405234164601339527489463278086727706822057736965102025805583711716539065073965811380497038067304384405352115319214014497965644327145360867281925529158283769116562359388702269837619025005450178744813861872465090872937239411974889169417066004809743422135072102658236547854597363985656160188744211048903323677616940579185984926251851451633298859102492886063353795908722870675135961586952463540284167614768831761776042023912699191359837488780050288948298747787513731943009484279186283537091068317307243585677228273955496201249997053629969133927270959189662700451339851006150236857431891980711515628078061568175176674226512202914442634057143867188641014239333852051035252741090419047030760591146911362461983692025572499150266672845124087164131795356201304929031464987141787549994652049317902688779938109645487972017362291642583164656173593903249801919771534795967028208429245417516182863564573001109309203899633039079889018080918474622389065421851671481801347871658358828905403917175421060205518591776301792981794533758158674073263371429311954943603892069650654593740164963034489616922691330389042616263348856898056196586401280196295741854921890091599529425559888212954197872726439769745753202076037290202238864114041993213077724179997863720778603157491833790856697588097992972662510883409575742993875897100847276078409862183721037419228075370469291966203926596471320376593580146269372065288657571206927350026542607573485821479717933161992634764595596029973405821056671494584099797274828039371463738652011264102104535036375969147057663797976702451589846365577204878978852233628865890078825301048458675824736715621596293960190089092338254859624273215561849503550276685738868836729471751210998336161034890419310050948938384380640610641099625980598554773346461721070078922675249726137593872467335539487273505751497428463046209017016309969750845350509495000368963367415246887886132593598802153911345056865787513292360534065068677329888002211117203082894350927809604386614746331951441672395678389116457009224613143365223631370027851977298788300710639593963540358945362657179968719026589576175346438770619930243602247887311336584172991688652655257256959565158736783889392787613776532165105373767726856275306682826118429828217011808326000831556096446599179023936817302838822960191783343785184266497868076519783377192087712360956700737183433954870497161953529709203049845602779482923656645678398326336729960974952070468185977409065698002980265105102172339515695173673308318477173272827874844977022007513603003295430136088720467243304863968496923387640331456210037225393949820488665368972215117164437695001854970300438954740884550087939231600362715659058796512083020866570785269661347970115838002804323209997987498395361341234055721651097544389337536690741923953201842305428597015811198090571956119818715175324673831796339902741825451486244496448417159321036480369859313386273287678157634321482648286458768461614755558798720463658107599046095603622471529541956300020978120642583560250143321090435077294489770977277008215585674818239327174554647721157118028864379586236736813918269895069850786121626294018223206709718892565299843651173283208392723425498321081021300021376945943668713161604200898123851866598131191581926754496441733802174087924820629556450437592871327139151108883550022753775730022039951761749288423314104173553144373884380953134150775765688520467557031045775991700579900998622843403886550708510944671156448189826406437261951852737282592280073186390672340854347508086140400293387517944937112744099311267722319460845203347561745884766897325371500092832150496673069719027995211593091359685552583661700146162649356469538211167727510060985212577002583333062384125396181958345504394013586400171606012571870738841203812057120719189927218836325702247099431063872874292564554398540197994517023272894318785916876571361900946694483924607116753508026987009470605127390780259647890789563590178114596955431871749113471045044582107776672671882887776364764408929838728308923976531031100798516357839023920830190146404911369217978342520765834535619089083096659282834679273441020769864522169948968358937864792951494725751272950157761367811354833972469445246328715756142019280072237889842897588336503984912226495782629443129055034127945415822444206576495330636595478438801470685276667385756743698899565243021993126363585383915837687392663498480633886910279695218161594275451107901274484173186775109700003805812567075022298884379607904641293305794167739108817388972265598591581985276340147501742819358932987283099764943387363457341828084058763058758060373637847256955390954451387637404722767114454107724360744794858499827034756907197202819442980886825117477098475296026337783968033854949290236642456581622182865388648423268387572980127861267813703230906996189498080590923478931075638908462702445364725831372460731117804266560674956288844132964327169598525094080596394791964472632691337501343519111056920915395925007978463152925827159473870497902989477438600658492701530418219469073644958904172824306323711165737292656486753031932088698577310409464270376858340160389925558414814383326152858872622535843285952160092484414903259137170170998612372274730955043619193621890689312595148300690687705535302451506396238354864948921920359358295734378757538027679521290951103977160369344237901550583174339256623407142868930874750310683347404065355418572616261378004860179625387812992702125899962333713736950278576574742364982061446155975538555859549887075236873908440716995115399929644984070198326212873560097471071877111803727272605885392767034805245764953872865837928819643942164836541350227841768482291191183456506490494238417779155512583195267659993866163217091903206625223079908847405645262043120045265172897391313510647240284477741430892621744363241016759804545564689210665713762366490037927742945668341254354458811554491578806779539523184991963020407811646580901777529631847279886355843598450147940171377179241407711147926307155275915985515843221239798406873558865463674692252370334185804833375004406132773444336688138077059149406400589838336638284033933233786011605039074776439169638734756965392432583269372090138404196765168657476700822399196478847581871178745451217647262437640188748915916346570580929201549986860701087887055282293752650408449350412467424623517078968850762343139127957524446296832768672862109506142970995445219463608132278600530675269799851069487343447774155772903234112891877054744707209026571605851947982362925285559391186100295886497067381441696385403186439743461378595762699596844338812866977149580455992238257284944928975290938859242028515158426358833235022529358068529782673377651776509753887282823481247063280081855196224284208656806262724806311013106598996036445557217660084502950947459761561547254703565589086716233217470976194941773873901340498952507403823893958500422363523170952259008632489021892974143264469804539606126655432746063811868080437922597529911379692548520605837818543951345549482994943351876344968065878510141209166236941926291245652452034648356181418789555545703286462174597616635440300892717348456422572150239779345093915066520158874643129930751019348846759941835124449437134858640505640329368137049935853258915227364128601544263635648388137672433814663646972576756634939627421975119355755277346430222316988873893258667914389979495573361596055234018589485081244191724517845805116179052849601979213638939746280417518387964865697756405713684631414958763196759896251708795707510958053270890379078003032203372986639390510796001168966992561668305453721113299291951343591696577862250956580084824788095074901619797249905585076338337320773652099201677163570181222777501920779835985930824990713264011463344679704547692661915668892580286773796370460083640092408842056528456616685083601601321368205325174901144453147584721002489143102647746148292883615466205566826587205775302314238386612986235026395326272832295840609186658938888733682130530999323693367647921246658931171422238003549156301812509963182891527931892618351776800275238682438132795730465268009241921340415416469535448557533655835545562952068847569765876042216561318070819119553371005957449796009848968795852149534169323382838195991040794628546898010130064384454256578856368023533208616071677879604622562891716928088723533181377339301251160726834378675139758597805519469663366994120620733816316897310916507143036068008589339278568047318692311385437972287359732756655153228680289816151673034393949360170196192312094118061444808963757035373600362408264952106167965162599061113807284520882000749079138818313782532297171919162397591752580027990606537917200633711459102630879843803319967433654739348063270952519987454651648310880023859714584894708749207075819356357377870515770421211078067320376708732913847186168680799181507354271737943495941707677295910867685020424202413803333956288417881771268471305264090271898136126123396144961452718994390530094350471441666965380847347182212778612128768287303832504094646013352726719119479925256928875790276131057206002926618140943787569360234742200700551714746796385687968907319797557276573766473986521295506626819237865530543712342724852077594351961297514217864261314394138701841366512632533439844567663922347946800442048019639171247035274271689769266732166753982269152572484026034466319577874778287931963790507439816986701121314948685140937137966006682273181844091728821431228766446214471198136477925265096170507341683621966578002196864790941386416897671313294559338390618476105345628053654845596250725717795449579061519884808511041971684407333909034461762895842643356291884058683839956095115863571773562782371410254178743265872791532027855986608906298293289869247390275579483681316381127934424727129925445064800429315063891632281907738057842263665365557435957893490618699562408854940997826576283201006308540214533576749682503619349666583360326361844427510746024217903732106230074978338240670604242622644726197336947577297922913574991618277895309967021023151150871525275326289387652674382844688214711433090316998025194167260458582322153017394865719485236718669139898493541686121120320122850256328533437156569315265781368588213231139925792428497189220274091815651152338863612768598447435737235911096577329510688404714483004172799681668869287418357924930068008278778080097952867204778919440926795592101860459622596594547723646684520149716872972955630987934832689472637762289649911566225366826710318118840798683582634578827091787772740174279992699999641306432722177886585677744880448315842965240150936621210416100012179365028852819370677600181651060792811057043028848392577627191237323708276612396682867069899884011395749589059213993314979710810465035017642527921775067112025808636565919404578967224526214236727411325885780181232444924842073176576566303020067399246461200369481089988914133537911466096104707386151752741397602035471627904445108739597015876766441889179697171524257585313650643187721897178187977111134046503344478944755117542891476555377592763937434581547560799335726192369215419519654614705115940914708211870153236759799311067201690384527876047555152070292269089652578799099916389689912451379428359085915934638088862194971858909479041195669223057740260845000726338797247531335817637134902710531104087370203719172543668789646188802276096604919183635279577528066956176439288375248013973163751034022086602101584625494333930567340784634075711535362816009437143906004078000860101429348500751001700223379928012976172580788432984540475456984645114530261075066398902779224034594506508289502178117106876918285834748872254121407634138070534171455721994036274565141981954706334943675224265906036722244894053541500948312097773955456982511668293247978031854415553747449988016379483465805324730557975411845316101591429369260268950469908808702709480956072507159787528418596505195967478749929491674214781130475226287478591935143026155677091744447966704947890449039991250358489883778616840187811136568820656456227959940681942852347312030195260666646469711667458719842883047700238208135672395949891011077059337088488524443027815719721707238914627271203410376778151919545997062739163239379501953958553336726236803727730466896851980063551256888079013859693645841379077968871735041252020858876078755906362152155768836947566137832952414404743661745918552097824148494826730343620791453447146638765345711804986278235420343368749005954036383353410211937112032194019072963001449986179113084227929226091285867455526934403039317633172352544569136416304413989106868455042039656425710906796668205243713429577088904864342876222088212483482536655367361760219812758442015351673014185659603335527501031633644657956851919776624527573264349065639943117133129645814256226590572215992397750010413125403925211789699623846322567808936348271703843032215295892238585139014396147515416790297318219045220609426709946714117610452938381157364654187810241665053804984852780619618259567370089178179824146209618969473395309468144520297778150763339587365354887752039354134083238569614802867885058340457806387023964998732734318075273448541979521922132109163266749873677077771794493594221532830806989438666592123763198132478981148938335214345812196252651272873819380682529774862384423825168483796440831077254507813891067915348436099497459810573740298507193890758966231536673413459844790313403406871532167913521820489334980749014101121254920682737191162365363532244546775951377746715638121024113855597635526361350095608518288245315241121271964571382307363151988206451347885932158202775393284418216109830780435138770279406924184010081913221850964473191086162530395068146765720879644990167288196244058824896761312338156596819868937683592726356533815593714187777078179238825586141825200618481873608824260702890998798354031497356915688313996246807047693233040381992867035004485309191364040225987468199473276099225472469817782932422166332688424161649345186854368438812720050137184448606025819259162212442719183744612049870076285910033434433140049838426872810803837339035209093405106232611199932790152733079039088438553599163486555299473676926761585541592999323022005757913226971188713138170925129065977769403042330627896847995545907358000997029228330164199008471623914997552099966072978208598552304185806371078215296417470743235195441456349075897181412518874568377124593222616924618817374685167566284999850128070623465633770026867685468092270499015369657919712664088404425026272541064421210323364275448499851941098400760924504946681564675907823254582000395454409267219289723471563717281960438596407570186136908804167478312419677493588243270372058001228619747354049860509506974151336406604509364489912046495707524674758205375608062629819077140002318635055682063566109280250232116465007797340180139850280302655894041705700230888020804342020495958643658949538092430026772696310009598645534083570440913238971394544608411283215938073131144554114786256741261026731516229208731236651698997004283166030058576100921712603889489501814086078790303838347124281479849376287208253546053146201456124119031985357845341825269141413521051761852465774527526359615505101867807277196199671621798161901838714119589476016018309301517994123643292026960262207299279392819992515366235501742410546116932844886103173619632234804701896428526309092327274620949581001814418114247581119395889106833857196279366191934727700267842826516937576041341453680100953178185474385183471576861903492902502299066174521702942264450852323515163379875700296340829687909358726734611011355052561541270997136552612824508942190722835444334334108593414751428730873516541665549923004267753045893035990163359803609771800660628748153161601990859717209368033596298349110739142526590147360385153023417291817332791326818728411640582144571473994522256815232468049536036893896552788897279316568276790419960111716213779175151001721229037977398450772694966140594067149333234391878861091765944652145601039317975935653496392321201937721616806193821409154613446267438722473875064269905828963481302236032333868393629277585598626801847846601282803370696924944512079118997053703427502164805462460040328815705040308722066481147825534924765466042944868798408323278022551912526621374439679824500922188299137069651073088081019850451487456120125326319289831944124355004082917312887356671330405101443128185408764196699466073257675018521691608483651827023525104677558193011918407431284498056107040686326864159653088531917515049590528350547138644262206807521358701099089715729429883015411901198358631562848471352956135880009254403761828985553413040705187118952176097766510042887204194514654451573454043081458568781543892752844439082221870506580228838300002781491194848024475804429939057933620454161025971215903881683350229955629117706752050906646419740251124168536955735315111053658219616095862377126306701018286055223554396362628322810321943968301231820889006213515437075765420737465452492824427341395874786913368125524316984692963133049984381653534442257776532761498803497717710526638731347209030633252200854451212361481629237857155565204061668673702347091445186674576678249912416465842124131937364525682322364143707806595281040052980597348308575391127502030271990537367317522724879883069788757250252268509479133255150285256615272898137941575779742208784488935319391546703345816117101984555241357193771484006008178149324827194270625986968361451019874310707127656161199377285293347040849371678060968521307576420117019950860414119188047560648170169108919574141603076161166958503672524248185068085108212507033522736125845152312686983145201508344574019904500592020992845449484603158973506938717792930501085464718864019263456713266563319065160791973644375308035056111917469898010485905280447185567292021807244407558832232951854755353937200597387428103769758825564444294962875036942929781566728074997294854208084957105886452388722170281391402757079279092211483895641117752423040672198911207095479192182476277615185714107766080795700716998637215618365683033705015060738434246912771510835015281229497584061590283575615963184091811958102855930801943521678220600650948364656745434959248328147055703426188175967345109188960040743686977936324751983832887269515188928081130917312461088164499277308685500579720890011536445649545457732058745710047131666419671263312586892780883937564150943681979812154175545438190353364280965026542742382470851524230508112424058633329931822303459370972227054898115475795731406732772052375974435562329733638864656856768142433666165429733810741610033680383375278524484612974761325580684678182179184176456816042392397004981669184630405549522958628465810857666399510736223823342517106030869684834998610501542650344240058997083227109397821598558731622430311870339726112542799537340585127515611639629382990329867165049705839587757883377138658407806494796310357493979277182609400312247922841279914113787096203515356807187723908846316491127530098691529583778461173866037692289432143210627178289000259341232469243522751245110960827814166096639220590326169054107762278102827413245665430754427432645076025062837939561101755028718670389801989825022616934740538562000630433105652767057715413309959783340102617122988997640711221103993179368768646201294938917757400684215827339627219204907492809298048418788413045787363496862909524127746984179431130398998982074068966356312581897470178934714122991581955541167358040957197880249624731307338213095099283489636478961586980203555444668956558185016884527764721780790574331381414843678814571927945931719064287799183914465505163742425987227379623514732292180913010433665107424153197627935125333200542574947469397450984766868587955602214497696291960161955132160736453872642419065934528172882058587146695254393562810762495600473842687273569902270526317077188771019693384911084120010339500302877472646886956520579793889691708199553149886836495554024766499986388766929838367377716494550334881492041614193704168378632681559863488072743031630794022956586850483988545464593204563036697786228711964901970181960598778461369360392087213617086841981409530095708049153622688343119988905243706936015832540691999570298334462288650886715238938772743163095333268751032570583513925626238677594586599215411619447445384523757793415045755917229453925837831321160745511221281136563917809497096398305052182373821641030496628411154617245789733440401226207550952641973030114819634108933063107144333609881847184420172068158153616036095956960175979932197407886356856414263450211527924549558439905075024418824582488575055052439676576913298686642577971892389910482306746849526554168215929457005117999875803303043481550868054757699742750333673870401291840860130015583380792655179539633313063782471992084452395536921293563111601687632180429018480123036808317636366450338108239045621634455335432959774278531535000833408787314965999889855555592276584705418862013703359305540200099244736649912734875757650683071408595317619005541415965111987765700669268374397679087004413836009292630595871997926945989403403230090039178184876990033340838181198311293802157758216220308246091659353292469347608485163955914816222570246698907458542981136463861145738560745002500095950747429352884948785338214773185115679983191095729342267526893241614047122610999959958021817043279976198998167477147941566629956456628492083947244371681256635409147266602671297441285246099767743311034102931770848243154985730919162130298018568671293749883751677093559511569026954262127301440564054799494936522877948112394867654724322017653162552034639727572368294352804891304712460802349884981159578056221508344595940370818163073402104964849803074698836823907473679284168625945873115457384617602062180865748017691773951324844745001198939868474640097888316951812766192036629583134587320283646284550355003493870497607311350335611314998873786434939844647554220823126899856590527989962391909734134457360843696860189991122088675477298408876783275328469826266068701068939108850818873071929425486691531543828938590346953423243737397271860183690150696221024615209310809665623378717502332800104137058116019501340946001890647263523132879407378395817394321278281935197644807386143586039703227149395459377384735061198936519922885658379223967983221664577917263368179790760188760524935150127847074967245764245527496607281827875196374857163322225549101695097453487060656891861529881070335895589743362849020693511437308646494106719211329861914525483042800236839210377562954619673484231137133426625311971029989691200868783851359218567077146619450284050599536333958645388417625181311198301325153461208574842163545605448903297965069604994643785842904733584736150940506259833364229147029355618592656434432030851218690868377842791315109578442623440662918236083693842388655955275818088070484679671923314930942000388976218006694620358447285472711305661671290060540446745308123134728066447087676576379120919869913745320868642645751825978536729398794730505921598909359792328253015358997543898272108477010176070325942196535566530093641767681391785410237488287158594897809149868134121284574495979528603313769745597033577670781022648724299148173734371490616895762913962049020198070601030007856043605719090053326762050282457297868359289316607712238248373586094724279904749360226022144440814844113863347828984097851868470023862046241310249901779606362236797014432428063488356462061154088558968570655694520871496097429893473875537002999996972450621428075289553511856095170971603750531931833744583843483013061353387543870934968178001484924138483917622464187176453502910672961709556037854864390169756896761811911693148498106909636391793635801964516483649126544474013261819440004651345550964341081899042755295398793587393753886080984070960387444508433142105650041358916116139595428790108344645863126568705864381375338263523437456012174743307183775942929366480356818266533438483475421204118624815419360267022338039689654770371631533029516006527800299877075084478079631787478547867409501738196336827348809143973319068424933137054640658864942172321054853350480879661515226272311346077811873444544042339218159771891939611325492868662113373976218427640108129209274600488561039907181714252432990738982726629070082233831217704098940270279050748536656934219592300544773480396115864449206545021267644821716366111014856011763907420874680709539963178263087319918237340064023365477321015299620142605824856711151682933893536882362990702396364084222164614355427014830793050908689279823798107368297602765810257887284252308772502103746553619585789072369463149784835528585516216483291913106198511828914519906177807440623502461837573691401255297506493267969255281940121637321142674314247444154401469352247966927758746035510767479681275241719066968739215933673272107583117962948341915704083578700936389937557054146855980889812149256325013236961877939787319196157917208393150005834071386815536908839437819239893754882963254537573262302009806163326374932585754921519087118651989505072418083245134930563539228183588573838180691462103828845448566257514532167659507338499647607030674897555176675271462192438955033659714995448728791303282020491829090925745349253301280207370633129953369454118434333867421769723059141496494453980710147117979607364167224132381314913643676360376461734797432729097272126790847940553139249675332177151087888484988927761166015884058123755349281453293904231624421838869389318654284782749584726520384932509208704171651102187126118950787940237586466437265903177876315706752780891687426705498103982988235534514465203787898118487034066852639827793415508656201767026997219279084123652453231862653661528724969404071144203511603269026800935873322587842154442682102426931307089012339265597168590935904716187065150323355565987514158413984451914690776720000251431691495445387837820987860860911454368202712570629279332218108290842095432314820208067211410424400747661619429138937845944040903022882771367649826598040661771132201745729663457750512626442404866839152804494336334134202712957617739548142407329678332840852208250458090470910266939006260628673053474406202715995587173499844108082499056142914961123517281976265069572787903252324112873644090984126605791028850780821723463704174240306633008132643960621967509113338415448435841001927723493775511117641960633581022597728377518668160344466074027191897170825638937110147569819297662397102166686991666259126867683127872547789995640230808061106442555181201352194035469422599255427618834899871750056545316023900299460401896769800519365997738438823085273469836077003182199609023989962959154531337110250694687346757537117612543460944444288138909652537428168313521065411775105683864777305005240396552443613241472481697406637655663411039662739021745978620244572781363613975687826256427943087832012703775127435862920282016973750620846313431897874425798284347504729707856356462202537704852557111565262284912013075741344334714598130495477699431507941004139384951558155221926793601788626568386944786590320838707363230957263997448432544198271437056939659532965092182195316762936223826427050398061197521306261307916844255735202332114161018650694757146885148696282502445243420169646210448220343765449551510934715680287130330142000437047638570156652026392061008100623633105847150939450201037103510887131901395902122332779325630617051796093429809539648316478869256518078806209769746782319863919285517374526229173897395679882410324368570756130269369670976924152901177368992769550193967778373525490734572924268394586556510871123088703439888489046410936399022041981037822308508000410878380361218257536554237646867552071074297965017729454400203375383604973514469363900186506841437647699146965454595926764589738448359593218220017603069072933628866786702553424224529439209728331224764294834931569278434539137103311069897627990429809956392929239702094351633319797712825306156231747595487266971908463898716765229002739086944027572091118504131868892205517572826430803643632109904958324478843267834742360667462896144885432263246694253983919338610932951164715707425608325562087128524597383395344604928079419923020082281392773422044674692499705387544067330728031927502813670666884270274086243608591273050280775064752600358170101714620507291134882911537662260676819794975823181910641331131840031899702767088914565990573535673824280888855244972610207185830628883025476689572562319431492686277518833492056451270639108403883049571468411685329945367463300819229783744544742492458093972510420918769103975219842302373542286370664105099628312719369959835747511244478926084383210541549498709396882133409307362035032532335464767346427604688101143512477695135269998082370338219632999153954754597627599588709447006051355468007636073399029347385251838745023049861248558870023143760024518256027919218083695421168788775708563879733548049512425274106442348081154823292399367651145456812819360814986421082412740188862589706322367795155741350317189555384608884462536486689468840940911738693317980445053556720820937087018429278556615396029036689559621569478013582480845536720550608443411421217322255200385057811302988924970109742557363063657151917163275414199093687102972226225517750132681518723738438123854871130794339345478264455249367166887682751209291432635176620890361119734394580872640235084664756599914603579897735505980451849854752713378464215411923108810581171473394611658793115756331518330478170169861761838703004140567657236809314348413057239777720118022377212712108603722120500122195147324333653929301586918068371694451694786660363723113925876166436078477838747993419910333637386092337056544198677509534598697243856691951795226119971239116635096950704920753735524483039376147664406657689127457469747280003278650092929893505224774123172817924224142482719055947118529695168986717894859083625842974796295141843026919409262731496353925727356921146465310128997377247115794960608523614069562344519517731070600043964960775319870420639011651395098391343093197070792452474699884429953008805396798198906587300208260438419824474666475436478795459872198483984763283148396842138167744247928896495933344616008451962165242806941739256861039430564227694293467572599407467892755156782268763304833355625606178187822871254385965393596364758013549925437969944863134325155077807810405454064647211028790678982905532277549390092909215118968270287196176258709639253157578720407491930123602374758735635224108906732175583869185477450783279975103969645248490920923941686911962986078569551853424227595790407035341597936191215841256097589026857593331218114857352032157138843384119886800870742337634010650996980110473835715605314030043364229243247463146029657852051232295333896353700259133555536603365551148210483448639304647298352375447638546121013250589948977482524263868983969997757775075481603668029585438539198648205577470375661005205159842103436337751208876186600297825324517685876799265933079952363592945421735058083986104055307373618123960406157297821326522522999807684244518083718598304110465171803843548522231529159095340583395280191533718678288691967688929227797418708110256075821871999963961721169171099090873745140441114696518561145682078647929499616251510531518983271449094490046810618981999684286457198903198437189287924138428191909871187478375234682618457483298340518896168691993676961668138793069326056596146675249434917413604531561239536016532306649981481958402317568202729372266100073023529867781018651167783967517049291926956443194516833829319746534281931048740616987292518761477292936457669700390396078118578305396302261969483622036985508536709046363440746065374983880894734123474209931713059675225150146736834595945444643882967958185941276588938839700996459264894116733159044457340279590458861721718871719740522597548501843949098604696957311914446444463551735437653547226155648864237226768282312096384614199609763537634736371956124953663704739572315613108216799974144769139948897290847577648186232126074699632017544602657611549740336657279493250921964000318360888249253293994344691404314699934742727391493256057258138054167647257387009416813342080739249719105761826680536919689053943886956751051157746005598997205125199093480533415984047719413478291952149935120209561071752171598208481548923731410470208213704138951674044542034179605796699873432728676314200200162389866090259938197329232718098906879072687783542097881048841798842204741699131222008125553964483495850476829870233458577118678083459344885425784410066016652274642777233388081231491816506284803444432665538639589118661980651900849238815362488191339077883154538905970338825285670804725722759353451989947654086981606501543327145183570447502627497744310508635597241874314415538133051068542440205851612832786698713666458891236584882197467511796411307778299286909618053724553373658403369620505138971248358440640416249892294024197614924747001928083111542026105436482370697764309823755207284652863333446216705326544060475840889003259195044014788692216233834428413199634854929802624346504882279207403626706885888147441591572329914798081626037791942788465963711011358774796350634075284762116342385878190787003825833934951872979625715110192663398451124421032359477998934486177482741733713580636776096130254504442302835609457538810944371360833808707693812171403889027995547624987330028721202130590335227186988211084488031207251268703623138497924567438026646108734148896596674913835436450842237495530319167170564511306180739278848214849313619359462910372011181630676290992320993764108600516956609351545783602087639385489591255090582102003248566344274898556402790272262174956574097933310929072496020226606969931340417256234083316401161203972504752609216299922904368827717983535963721919401226898275710535264135190016352378111467989549150879538996857164901711722828129607281134376773264288008985391946149729528929781784658468646423027429779345558185530703947285548002623257218141541808652386264197723266312986963426308830299628731182312425855590224839363781332168242148839184508203520346369277479945887131074826246936271756204450509903946165693775339447087724737145294351014950380109533966536182806218146498060709989491196681773419680905977649564595985454097051111529772510625493396841104572109075500732200617644988337758766936672458645123787783639762763517087525653828964931252633196229501963665659383916481274118063174554354194084853647164460103729103676205600139949331697352525394609936769324796328267111804303191162260983989110165791268186146779851577732854875559430573771175205650125736491592156293787614687407235926611691038635575045327222130079369296494628545789410251447701081328789353338802739577182827889743114654005340167530998047333602204294977856208441401541935182331347579163864454115415272785720689980378313500144416581776388860345314017019198462638421001212606104571783457956124287910291406090796586235698787781183155469193958663233377960442801477047698422973793071598147550124759908822818457631959848436964904876138622254220739344468977991890091612474650038415397763462589313188277559121120562995855918618156236527922754740008741989874851638060571151508978390384542707485028678178244436983987550266048532933251769663199448100511448185376808587316563471859739256407935595094651862947351781527852874251719292885077374002475951014423623786166391435042607401504940875663966441821522569404695216455294641110916879121705715707748340724272417007148785099647084185434183128164085494450878828432002363976028691082706119140385333145490719730049734788874973695435187669763547406878902715772394150927193778800625555022442992042547544144726943850552063466213786555807973945507496485422375126203866076644979307851732150526284839032254618226527279666193738166326328959951728244755225517016084803788415876698425060815610638355228300541681885912336372051822499335151860557782276540274747868551943636692729967633523336971858878388522091953165683776584863200617285382684951114538210967165446267116335120371619800633739486173851600845596070272642075734661197654115486590669027838791086388222838695777847405726142828842421953335965870770168561387613830709439110053566617847904186431116426132095120600546634349873988523364319295096372064517077109687786644270293124334767115138463676782227468896928338019049880373252018141882259933910625459880067501718205816603631637907859142151529987910142247517952053525528750974950745000274335075484516004385686222591554566889017194206682025618816411850008383609462513417548308012114860623256778011080199824305346978147889404266026992071483123167541884006812084731489054200282726860626703617520313160038616927846076332457007605626908208077792214456981776167155942925461332075829155975998693005053485910331010751087513511533830943980817379436289096558005939023889784088512838554548295505480616213811868656199198418814922909031596609552886935740794247571831402264313170710307335848282128069834016994264069578729127537729865258183095616136952775461274588004706406274402101293928094693182994181208033753119461124040451130136597495132699945712762752125220498206169730597951376453161552712734108003792755955262043879002216432272088567225158502930531007250396706257002916595039839280210340859650262608532694655524392669493538081181204845624295331436626352885157075291392204932771557982062996555554225197275111248606125719307064181439913543932234668395498261618646251668355360942101052150467155510674144702404973224132432026381439757515703238878395676805790873661211818912317345122677155615461312805871952525643036023472145762410602788861414210897650216543724304133152733974580490462058045956650900687140190551275757464290955203503804656610249922000471707513489499766037224154886793339856231505710846995125986575342263036939861376458339254317177828829814744231106725916500674420277319898963276809941812074396429553930731639735478983441588238841876311204867943444041827495160180512701789603412324337470182298901652181479967309364612815851492884055912003126134770712483647324995302281030854693398143393303693644363427656343596351954040820959275670513691799027934059619459456366732979174912833127785447205258605523739221556078149177915136049929600488340889856270581543631651414010773166837415791569453489824127275962433026892022073799787172143188561838925444563657764438988185058078853067541831220131764220881745493849246107591691001916269308742541192068211914596151156979359054810762551129871827838275192623057942865748974156974744172173455106526348125742451294540903067403047523596176697504777696783109612281557935459602904681288803412242135169051333972251219194891909141063992754370083527920595094380129596975933613708760995879402131205487858853540137432739855831764318017064616617097680478645740740071060074300570938602399723402766059132740142190828418513130282694131776540837463094368735546310676230783549156038959276771414817372584460682671425383812438222857718404958712714507812942133930468672100809504955418175658601505963431830872077042315379889146306944922636124531763474446390588907056299291024268229673669220928810495003514171146042643759515734009620195541620863699312613379944218743706245679073455123656539570412375830101706941266227375787844533970269735682323271118505938748282086736044262585358151681136223948877115698214555496530421256199950131257513990402157720895149765182584979895807975549752865236019568156539850312385974584896495890125926481612461875701656149534384804181394122355664981106877580394912164904979268736915865602072263518256545404581101794919136594585501523479805009400095639225522701172074342216862075449270690253912214216948949029069640444639311252192378190551809599651495993289457786758723997365018772143342675966082278091831848293527295919993167709231358015625241482944290815756566421358047922618762495228525952333497743152237391944433678176182816612009143275126502076006146772802271292711752742286267188179232338468673492811527367049769880566003385237012940609377689987738481145223175542600738541796560318791174826834267435233645959315342984856153017956873445068505461159717671143465148904412616055594863334537808504912974562441541341332697869653261340170107598308316448298728186037329904059199570900309416593305819829391709326028547011057833804754650639138715266573005235872433512399146907257411330078574058693594502683043603526262627814709952154764156165634784804045745362227797805952666427072468044384522090352597097638556235543353243562148225621615483581428183023216713953500367732140239296623618813900033956235283756327086698005618828235873114948657733135146299965222430810200497736564452054194280029827647235383811828682466481676777823821047529761002111601470329828436752873170593456177730483842129863021469277812674714924277311359951263857648958932905703896583019020839319982274798660816565817330053013574255651152521502254209642586884896395517869407052159730668965879395874796356777469877489180358229987971961927001183273098334926830768087812188991146669248446897255986117552068617575693162110243719782533707438760643919655525579030415400999428468220179905793759127176208007920519545443199500044154112135830132028661812992556135460908596032113228243426013893859271687128118928814155916787768698750019458979965409168593869072406997588945207414501025925623878433706117068750264959203763027390127073090539540795723520891052730927021384676263103819742037891111153949299831618449195832595599107657541381587636726373261523421930684516821934873570402030988535294834074501333032749757782415822424681382599437265703805269847162432211670837252636996239089325774166211476654968174693857916007481694192716381854654419646140305987729919166364455595425263558515431512748177589200218310388326919256385075636298733778850574406587249362964851622966256179680136327488545119938615934622594040850910673139990012603063056540889758887616862461417892152235998818681322854519393926710645138453173671734609271239362516375458236778609311184549507495357175455407379728236358672853607915575084450117760206901223012633007674538966609467805449851485702264515985002210642821553477217398510381692662615440170400821895247863550420809728097680024726530084761548477389035875645960462398323352712887423417703580020147424918977590462172325413332507294634928135046642044811702180286011067402480734210853473401555461441018598639931942693222142389776382533127808166407179260922254694643993124740432251869275601632618705145427772449317915484542710578186975898365452485456136301278950213592589417898868025816328968354597379198289874840356685481991319598905057575383905340239092394105893436887716887738548180752501823463895401620969637854133186565788407956073863510879152160580064751600344739577896933846806320781106237123512975493226830401335530754249589839558736581489851334903856316980708334192125234685671092436652929620908989267765037011874880817103903194147050033456117848194038926571707965618778879850981311660370435614030860760276896228289620828617242496421509757068674582520813116427275674777070447104497376158732920087040716015966182743933192528476829144066583582186245258841124268724543690806784938039658050987938219929119529342812008680783145304298971763161351436618232040314525886593003350885273351100069951232866081284095733255037917968708459509410508510109046731572347263407006183846082646189620501660257250268065077507609300678442836697622924842870411164272456387290987958312479248276446795411741228590316755368231659006997462819601447343330265208280004282764804001356707078820655742161315009052394329426106790383254525431845570666749925365713593260694287451272266968967812252528904673821471741919231385732034833888174676346093233084269361866936260330640481101758022664619709910750009952574468882873586980650108839502622442623021297917613059640981524569576439919322245396280799045882594971637884773766461323870037144887841785603759232071238461306308282687297258912433218729669175760170608284702005751915182111562894556718362250702911672109204925139237092011492309171225868939767187458787611487172900270165532438328250741130686306362129015835908891456001806480278410801999152272838508453932091504404730060863195083425138649930416547908423780845888884476997289201961401587741932269378158876568149576937321525537545619822157331545645836077683888705289931611208175345640437318234192909851022789650467120008046566370444506033963691218124904040103089552516164826846483963617338099837264272772564519011547861255946877110853818196772820234019462301123723570916320240355480890991027036427700261331589911551120123709324331512220096879486956334032005550907218702844895063841449161112952831533189945478289370246200511438892819143553353710963445637610854372179250334453975500820520994438832598566693686824536035843150475330659637119160062104938110259551902247977833037236656786137472859201942509704589949931131764863458149218165506244825009473633061511114646959113250430792428063389208657578073358645431762220467394448002101428896104363659087097533589892528419301154850401991444627249659692731890401430357057499076303933924597311649431231564640652819441649073788555265510645083817573481774532110304634064154769023108096139138388754616335647484551235863392415193366698622340742238572369988216038362334111337201014620598116161869703588353081580836415646897002865290403363331236178470321775729363903193873200488994934946855787186747336779092018989122599341735963206241079870389732960126074438512672230813373946675892955241391539596819989815712115678967355284855922831864355937544121471479821437910702059037058958528868578686554433560065004145468093723907785990359857774985485173174204679161562297627022567984295435038945948319523734416665007864831100568479314062326500732541242044559556075820556731082361724685742831502659124445645186149803589968886289054027240390811625813923894792248311460923974806351340805633557898552713259137550495682133233924189836171736714819386273970638753253432506850213043138081555499953632224634246542262763639830123180675831639096255803313221463288900710802772883317027212343038367732247635521745931226238198993325472669995959959965697655820059028939504693466293285263025877415749923226281666020266569950432664944406220680462126458934206222321952649793581151828615555056582755416410879770239819384409157834567219596848387136950590403059235339975975387834528170999098606475682327240136434452139047370591438503135333520759185360773892469009775554975245656564583195479280646054450980388346086206067732352716083363994884185013156614074354187428100739582935081758876840161876849291788070175568534405857595884675376755105938290009821448814365735252760451738311110671926782242634379849971093682010286438526018808001693942993912759355613852862838629391728897733243418322942948989714377351910101915953585356392888375715270775932591197724189521909045543921467988686235118294308657156714639543452756061974323616252516809850750656362709866259443545429368782596666289309222756331458612709083445776477473760775806964490235001273198231078016280208983182293300583564001178931734933340626325812562705474961645326453237725515678885077483789346689273193575762848064336670337644349963929020922967536111544000816052597711277372486513765666134359078182096257300235659713227621398257831730669840188219697997551191626824227184741591579673821362168608794835073980649922377048626755338433535118707700897988492447343250798278341356317830379953715782209246212048450697681442545362725405007634174323357949015937728785676036554681238287768536680851814660562041056037697184783389735310604802081595658232375529906956700222536517591357262559428122167669587359841106170343686346306107232430146437163575190690952143081987283511454799662417162737680863934197914282136803502495179786559843727974102261444115521537887418760179497325053342507462019669553154380672685642404967421586671000180575353768942552860243990883313147520025654735055706137348344180913732754188201075421272403203425086670985215978269062778961767748564031554657019301946960459667501762610384464664397573975798069376370062056661653489953983903712565204712106871693454175191112736196520749929001908638256829521646543950732540031219305752909624538875751296139361452981359919365887373925229668515238941269892950782196370994623038008153880263009798974445613319030135032955722278852882985581728349234126241128476923573060589419244317605402487002580234511257177007071662970979339805450572244717225023607752892765459929069486453301254996834229311752016723841651127545939196571630170675478297532375345448119631910469430596003970404537236517559268542708358335020690835701572742068499219786240080317924153555608177322059466615119478356304552775304148530108744945816005904620524404231049731610900298425692302346921431231747664603516482692726543136689381915221015812969130958038191916402532072653689734899391392527337487465200645395141450562000255707046898470125174425617830235631889614080879465054991924425350471232596973153590383557615721418372405742437831228959672011478583357171350214370806942115123495433996448041195119121353172153448671464184327901340090407166273313417933461158318954485286429282950106148451947526535814007934220205940685840922886264203413237749418344504301956718921624420151842300861428397105335884081582901977997783542669018433365398993679550707968088609144420224197013164642829516217783406052848704772585221839979560971151376520632618536430994248402319084557900003999794099044018433639644764119462961496577571364472871137063732224460396055077026420332067452465278401652606606244684789941308101031732120946612923019487329367751385998433357499319802902144609854049180757573419109694714565375413135036781369312144209704842431610573835405964421482889580184519738093831269050845400764758114403047208114796377128861799379533472127804426523545928264284130762306413211577416070863787975413039019561636990601928268151315846630441742560321406660532048163664491566475459468250139626485619888808543897271915356753064320080542210840129033030849710872966889552591879508155765798037430842141848615778384426745653463268774635743352244574496675894596111519777563616472454705630888522042506817164399850601085699190829176126424896656175073359243768329353376602210513133603166486732830971283721804153663866933793322144788655161072325046666724689070118989261138311245271329284944995611277993348418970382634940355961387783563945634750784450604172767432249599719476428499019919843350388798868582043070422704786587485144627403346977164834745624818528624828706703242781386167336189322388563696288937723549751609220411251508245089570497750350944042481675900856840450006245262464843910317182628351102752066378337502119729767489208075987089249668648088726243615266716171473679479767108667129589098397059984092949162801202416159334903079880547175306906937923909559778232548060881406967176474662577777473330464432108196494109113511997735795825476453335222147156386811732009101711380342880166244060999730123876400148783609100127396564654695911406088938194091126862968905487703566456285246497108689430195031594616238969990650447857234794254098520642470154793879998319313631304462545919338266980795132966044204918412887368357221444512800017044411025345570938731825698522132212954699242166970439986041757799346839267664631279379386555516231977636172119991978554242366737140376567401157756702643906840828012310772989979355095129793271568967833811242121468241026809823417964740647030104386482557410854255779144557394018108845104837024934895577243186744382984736528528723604241472149348562161318542845973663361004833766539935808733685238649425984957803984944783760425737875715223785214488538866446336364723758792901357938973209622663054995229457687238313409121934577320876781236303437967535303171060488782978963614532251096454911525254020440067675970747520478389023583715382368917657190777772332279656233851030168993803698696186538514469353213106742108899683823783313478424425321418077808661762603262334915515523215835135503314579194821884145140424756480331486493451649937201006721630563550634351958489954052405678138350081976066636644704735537202055837050835925755742293953906664595275368534017656356515715508073246267518647465902334495757012329613398579077157275209255211075833536524000694545610893706888549882970048355431657087320199599232467090409081942470708268563605300489851750974379582313419582639054119253394102177118449669688303055951397773577239908080265221059797804108302271375141194473687377657230985630502539325432265823968775995252069505428088116863747506750300675655441252910463314860829143344676240160896883331750501966008437632171899748342189664161122939570770141796363955103376019934417429736529662983231039331642800638748425213719717218326007213710755663675360263695555018724522658632997159591208305242423911994243412531287986488880022779315912219986771172987266320686770852141243735397452306418242873744200760427862022799567279883979543427149042604785107240954224110573817048238433332184884210272676813039682772283015082981388202644324869787087599662734399770017557254044024714547507421766338721447367384794125285158230527820208001435598824501918252693649469223704186287923700811875597868529016245085653505512743643178601872877596764488443489706876648863356177172732142527760291937597878490782613076311419827558731562690802066503636248674184223273994758088120062919290915459338477633591834988878306949065648357272078571587163710899454374933344281673942090905358424663293497313829628412760961620838945900971411424330547958714735097915994354431744961939764030926685088970777589157983795127990242311045124198716289248914361497563096438415224087991118675215840809249795150671902883338667297462491535372872518351156574333037128694432753907018244840472521970741916860779305061835923139471025825426168231586235064349032709484515428749248638249355017376867585871451208073450426594200301416601667104520536445415083148988404255565176402641607027819925352796601474917142911219571538788287543816203473893293973864749462331210381141428230577889961458223532790975285321330214832381292366184154497732977295782582003399833336385535686976223053653808968425737988874090421548454347819499851236163914692447334308567278502306488935196550102709221766464968696303851698965777160598889676903604719164743416418443148126445971049755854929138892836769049399968875519320989805579449080258950309914209234131662425547217069806793838782955421873011353306669401051524628710932750518525896233144624735157784285908713116259733281286901198571455805954776965030357372929941784731955385105828683034492744306690637235577050832460350260588577082656261307150781459560005333199687557534582761044062956431747120944053745416676362874021574747237894082161962868666296805775260523478170307442859213606533841860474064529497689583267921755725963194818461850892898634518894147482030048198414793065789230961153552126814179619436512269478774924866906299889169965109328998455277052325381996989808081136815787650054194395054201154184878228358318364321332696433882931181727097547054409760897330039809274823683341726424680551245074016205715266825010807278893478876656140959910022043114740497595284322745240780810646894037807148330192353796111733158081031232307088579792396678865263728822852093776625632456152270758913235262519545239710716946819809855225733964028581149312757678301010360558169042497375808988096365165705555383783778224110633310001953180383417459738261172515311253189380106461186906696435116376733407725773559838306244370924180604634836364291721283716505173242470543742683661341065945981179001424973309505792259005652896970646754040803250174815914084703586949671992473985985298703597299383637196638042047061654061249046388041043324838143035892372000564216600246907100345607144352818490818219416151836836308532091847268119679569298902517718493861379514176222244269323992296258870489059138103033694766262996371311512897696622814153390807018684042796590335216582860475097350355935924791131792699839882883842956038624849537891706499224901554444419406872922025013196504526563560996181003009661175725246541884893925901462218113994688863167501649713652552809476065952764661249866476274401773327837047905164396157125428565241733312980884061365015438623843455526546117460355441310108809480518663894369188288193642002179472316261332323682469978694271759327812950065613100504367996371979447642018442620553631841706310826431728646425672039128745992489809278529906103253023705493149890604316730533147731494036437410022638066809422771771125513480730888513660195219984279249667793122142897638950626414339212190365492356108712430358904109935412589039340257143117146352223594724226258978838880368998099402601235420836783327967652144494648730384323884298238196326405867061852107687441924326101007887322702784116850498117914189274291847242384849145214206244752973348051241280941059981663953917456573671116412446185975746842156671721325332733702243385105634130901451941765847399062629382444156235675149220016516361074867086467912019420618277302688545136872065986001966561346052635286347544791985449607426094295932351080354700335358514366420742030480543615453732532889876481806505411961177990369097189254265687318698636100419699698031530070602228508016959073250540781573984470869090393628373013404495237844433431404275751344061294926094938709613517801710289165361317906902788278960259175276451890072039147457272991521438471759911857404710358676244624432730129583956594079895075865233293842706516811752275662389508960301502366849120966357125088529174529259241655967812957412628618140209689935969249572107264775658527152898055417486564267161215338058386372066912814046907606299654465183639219848163412772323872650759073416534976819423820165635688598620372315686967023690374335260501294242427248246085854928996827518890545712296924800860622949578662727246688699999957776035885284077432148527209597499543692756749090892923874303176205633684816476476181618654196788176882174479342891324188199490516181261673917290499587862987880022081411132625923829161231535356740881897575890892931033430371283259607419216712392426745190014023216282176195674752600080062010270236917798354114113264187407113748897574710120274628445196518955223242036186455928707622854075505384867656931457964805409042673385742529476406420998287014163217240671855965564113734191879383052702876673682509680648079983369053345214168269454246522427135051250060595282450524667423467642971018936526655316554581007275319463566027057248000033528253281271386149474525383492073223412783539359142367369150289938832615785780713716667648161528894256788486424353506774243202644402021359533496117820740525878353717658692779174162633690829377870259154337029893460059627223861177061876672363143284502197651391406078431164192336901864191613385170591254891119222663358404877671019197183072303655211701257840580317935253940455697608581726457482974045155103908209360893403562511704323747530166702728061402923023166506714381562559331802089536302330401798980258605611343278354949131566062470184122753568803646170437887867426057236637011168987872809828214085438784549485601050967974103807544155268081698598033979303071906193361139504690421771601373572515722934625175318732328629266394901735120887294094430451651971793488284793493173268863477851882394884612316337631719671237611438211928847273848232795782491000563338854460920616553343682191967264448034518016098488912621129429481464859855456454625747775084193076381594924637020803074009437902955689415622607036525937039636751289734686971111319833689499316450697250098712984775557142922246393830380632606425343902491185423103082820594800763383239552124681746360995219803335348239890853351858331128757449265413540746231470105593075433749701409105842006673060392683155546585339738235454275327814461181839066502805390362429521723065402046892140597445822836585616966223242050833620888547398915487788659039897349463875364976316117013866005538369869662903394616334975141592151362205586341059485729130144488131720345699891928415866655330557927966921897616946483103470765005534839180877260554711470028690573585068077103596509584142664491965648101939962282221420749826788412407233869032679476872576551519833225005779946661590027092609024160013854529584232672729538103314671814833430271373974361810863780610743756232191847782739195202183541661404769245108072830205294866358620700764465817504523710888394879391127088790625093043063193486437547784719845419491402946791624804356880912839038052861443801439904159348850539595881740258935630097623231755224716281919108357704429663667020542453105901646224150378828025967918444479988306449549498028980487793004608915794797239730213694938375985057745877945113397711558929314357358147277583349423973414044195616269156122031703437426003550050634759002486075061174636324343005608931283181122639915093395958269226510611157316523520079232115542615188864500820309482252555446531546618537576053593374743173109903555531910359596283670703572730292972385953440620989928658715254564872298546883560617985550803098076539028836823491238733523701505769441604995102769285640494988948031408011016470325360257019319627670132594564910080153679008010616692855037358388251564145346907170075947974352827138116722712309601861278383446109736954356143432952543568265677809727041050002303447216392343730151204092274879976017591141422162148037977366460308425820108245733521868426957323174912609437160390836529062010558967241447852980269772885635982924400452823166584068784767668523439777152693306909544229165327764903226042563942235298389318842162739836824141649597975672361340398115707286551859213773304373469047168976237989825545292159403572587649704840777665014425092442932755550415456354131572878110216202110903158965903452047063520146144666646071117818137194629768640475424986641066266645428958650659396619896383303329736546680575382003936017789571659028421270705297330326470369423631032225589041142996254183238378072687564503754825205386556014738497218655534946807286293889158508882040984307960169591211585964210645174358774215424886968112416215554545414045435865080738129411988581214114724934433465270787463864271653879946801730246627554659460543163211352596137655432025539890369104703873309605572747860143635494079511886337969690897019010889648008894722362696882922387407280850305937553929281091066991256404933671839186554016646576179283029735350958422766077396053033751859118084249365634276761035320731362537352473625546337019261223381534861195344489102261102231739644193554555971322556319429188885708107653314980342976390633960224713342510634431149868987442772818342837663230251715966971788709918533139098662386562002784045919006234045193813352706562519480569632265290774061650163778903077389119490508536695841149496261834727908398089837479244207483471299318885809994203518785387892271920464292621469976117511730330039755921687657191176452205461989117924359200799343618172205547334896898696565519706975876325790124811753617896922825321554988678186594902825298458963033810956066223413399769494481074867499574441316043379845572297430639759625687720586467858387600350952786406901921093740663363585569100410287868628487276615607120715624506228606343450381811493668021799342664936619152871742659758134205571190493862320585456528135997387518672095204910099798296698290446669961926785321458293511418935647899406490016491945061624100513962132575982308057764322207625449148151097807112890685136750400244453426100918578131220134011642024752916917082652202538969735475841139426308071001684767169989153170755050910334895174947042682361881370259427817195437525145713473024031912093113137117751683942888386014595655959689034039163179996651902170283033305362279833502819767055245915120588532665988792744250328484663274380015562760704949429478400242906800598147594368788061172011400808845643646987828350202873206737047374496097549754115041258038754372104580278000310878508302830146263239994965837294015031949989661503290485597519474496213862690642201636828056140244474608801823193658189611736572822172085581608040978220011022124541470451430977504744860689326414034406718655408817440613770042322582735193424284012794217152552873199959869607651554155405586643790362443657288437141275864621191455098868549427785104673172808955597826798091952332307736629060868366095302024368953297295819073408553449709519270028720890315376932930371627966244083991479002433830989877888030084599700160540649097716896868620888485044892580930719498992180611687233571568173875220056415664530339165354767900152851386762698151615627605039615617250292793207383581050495388623520398918327734468826863312995362806385235208132741426241771875201215054101139415403425436180649469629601098663230580538896610312176538273429189810490265996690123478594466976615948599895712106960301553822634694936732550065872765965941740248967005441487037354156994338100324061490198686295891062982136309175777526104470380478787966010439255046703557166584861705544683446492076022246475117281225759985992527275882507057452661409345584245446525807174388049520707999055849430549780104473567382091328269345050138272010712702986286959695969628458699209556660268850426123371812461513902793653542810546927209641413036737735433150622200750576781829808376690053440441253123075898507009907433143599352512612189379066564243147718122121401564272103059400455978136267000120240918458089482182510453470557469754668768324219929892031719512621975300343509928113026849719167277386108164928262054826886433345421350880581493566369091817511212699814838302766805152071890154634841681203625083480618850781222516392652608841991538624679317186981848362468018283034991742966887262728232862055372933010336184265758781313989898308455065095001043520152559983084281085154643117588424678242147091562351635654571267697364130080422128250238719569369940535767393915583382830781368634127782984433381505515921442454367515084223208774644885416654127193994925067715353508523347473536060847517430241452195211400231625314044620017331538136007165455830854845985238053247527701700666757861248675060127618220569713188973438364224179218257127264764966762689520674561844122417517478457003211850918530177783360215793607553528868785749097391969755404845972133856318287681466122318162677482910581486119613162110728001744452264556789855646396380243656575172760838298624480468808401487215660487973529374470514216503431682488321746251434700711867462088379022161666612468237391486073993155248363285676472704467984289099288466194124686447464756581825261182718570826431627745321845627349359929847215439212872515610877605314970468353935820113322382585814053875666200924894102935006505486495659392743087605466407689899887957739540069117431467120736316816457859707562016022694153053490010710210852415939706667207320831064513142357782307290624147953839799061446617805340854134232268456712882806920187160221515956385872728221116954517892663835790841409325097121980110982957578579672276007434354513389583257788254930984053888383252091056710110448764825012790673753069121900796700447100562841959801881261918288683689254675972271677398895553569182502710882549928409824450924050055223527264586400167697156264560825784989333702140942359368501602044057431412133535414006648105217728977256360081299613271798617538994865307919815154239889193587360141677391125358506469109849884939842639804077915338711125915778990074040510411299042182107250644716792505649067668570864184185859743324748143074419033093469636380379918201040727633757758649163768402774487097828061464563244981400872320271797790931011823066368569316441539291254126660680758997627737715975223246733345622393352107728750886187148767412739165951801293730635110649241739795857177748935536681912111731921107868935612311682905980407029320054397438275874287454640657272610835186175691564300085292212149050167138378763564396954786250957628919311886394850532649620647371367903477133736194273728135739800482351558885078714203263806801234507006794305732505269183942584345732645163323202442284598676304173710345704995613040688860273043575073662718334276462092567111878517165510317766955545206618842319167948136247685774858608155022482994258120262264316219817279259835030386864605418127134570193726857409645329944635473848227706844538944359598122856967744534449951251787966551482125083122460563374768148483760496741353430813296453633481625615229972658878608264068435642513088511848865459296174048891143949293420773697815588681593998959300006718918035590041751757843727137970440024731115485540362016457823685488380962124663832046399272826410992713036558385544702077223573964405565555414384933357333970867760922659969977369519478513859014176788873537868619449338982140219004582199993052200254218518894029618404249608290359870100926730533465541660017181122297854160863337542711190341408450301154650908104596750348612087755251389639411446429341353710736581060374315928275450033830544897605031866922077875466454647520198070063170536098689364551249313102297886382196669498209984994911277654867354423306900725654640474382222920351530254579125138671469739139771344991169001453890888379977320491417278593640865666841304858173060107579637349429891126731050045694160696428878679852157309840299783474275066838178420026591693034600239920005369822856481624947544967328885397668976990877199779074039948099684012156451911247201253133685009998393316926383241324346357641022150840324118820744519071261110514580305117045575267973549211511099866232274604163214502454370813552892423118811652193482962648217150367424163824761360858327313149244411923622253751332191883794291609941394286805412876130601070568311245117646878708620111767950380906455718528226874043592079080199830963201160110323398354254647995855771663981153305680645821884444798441772977444351103557492133675587159194789792311287588646021316697127317877983016690591495474657572036529866311803625244603383195490887138485694362433074818053631294762073460500995356029931469460844480338637693064248494485092435027022998033562383380505673468285806585830397616912955298059042794479764433552989823717541295860127794571779250221393205549204440351765090647814693433227598693522778365247508842409293505112735973226460379487775282936950770312215740459268939595001907024370452285920004233474842969054490099185164496960148226904523666886652328108538861395480547652854979408821142315849012045457088424547883934246610220097248585598124473902963605594692047454399320892116507578263262016838038007570266113929720219379170804912911560021783494748881462515038928444430068384544332505649420967263307457725774035158440021146002420906239099596013697776059814420232463231860886522160024289544225405381681555037405862472150581474121033562455785993013889407875372982511528281046459018935264991707568129223803152625674551902628223616170752573136816249629992079442581357629070877684474867041192094636991490256435362271137011445247050169049955756313274667503517213937107024839828074319855084728668090062076706749759194687475878443383586350022591819867133974375896160906965261133092160990458339752037447249460734489020985386015862588456231618528878594449081397241923442483809534249179030394738732029618001385156492472626416474013114580793078107076387266148567977887160345106289392658568878000516349667387749275810211964838496716894602431383207420433114514633053503086516335485333360305596937534187425608444186491450469558182319026123598814967202580673909027940732279882144317498913486939837348488927902121663157032509436448765626968098728613198815645717663804102319520250786333321553978794601546894559805447937358423584828048438354827185094758668943219273173278401584955743439073380587686135587713162448940654885281792657402003049777724426482793253055275747821129954895672713250240693372782905127873661368919886098840250913121872803006527248308529340716604714064468072550216344238435969668754524639156376187463704564968128001874751878941529292667835347178959477125782084287252791073737392966854265676942103301346659163805572612720376370910503622378431700366247957325479691696161031987274962940658781211895364325153861657080675294409882708287922318573765231481283295916294913026868358837787916798267135992081218783094930833185690420474385902398254425527142650848788686748770193868551235532579310078433794889730644772564357577377202882562088977438571816910613489428089825678036885700792085087312145683978127969545211279117707028343589140591403621396483832132429400245691680095808245903278569176920556096232257549987152861407607876749816474407872643042696263671027309643748593620580871639302791441035508102133444201921821614398391650102248669361407392277562243943295355172909175345794263775360210555653035255311812205738769619601834387544010086719883711018159629824152407208985820923994817836591979709777177417663553854035820405896627455344492817793107413913215917639905675889489689004145539097094011466650426198460308466979432858733649251799167500231535975160945884383363004527302624494231731240198750434406392927892709036910067205925666131916885419992833835028934711006723626334057203455654015606431040450588808402838112180658748468339982908723513981165359970468247901898646269610094204465373664371695961269393778469037653968871946786658025799294596191571088439528054573346827667862124880467355377152741159040266318721975888421766080804317619464121784787236605334071596278655531652412073349951670920963028005874269586643882303042630796179000685746078931664557813072322260466275484216765819853144751659136555062254990963098528732172887234579517242977356701387939500294320180720949219361291045426996670652239032819339442109361897681402095810363054923871740527996590890111417880244431037190378330698400017747101105009712573672125539461547670941693329453560628756677202646691922266405525236112901218318651371340160426773645106324054392122297726228691707071631656141592811220945056376849360626265431798852234227672593499225164234846867661994658957544600287127322472390292458662896663679839773704211381271265664535134041133815908473233599097062297938405730158300159783706099231813157097052473805864685453861307951456314830315138668439076292599805959338889550728776436498707190731504072356512386698634628830170094470870682508618949577358492607220512551925283508191634986080961701908720390819381695187993545501470953221879388585721288081387373597169972978662124074463550628281679656007688142346478982066574068677804561645155226801552684697161431603641426107436446329705713430074510624283720444954480352607266895246847061006253911444596741395217844303173207552022781352978904876971028937379162692684957492136184246849301713774966915892024410300683461294732249512204885936979965896322837879327336743936289791153972783977517161482450389224335394956701155296291156185588254278276953280934183840345929135084399604920831329897056092332132994750325021378501111644233626754731947511848020898133111616377172103293258948567065187004043514050708818079742387858816250726930083150316743888626282246190685977956820975799055372442587904148088638981194619660884339043089829197542520707168405710431526851664381263052709320367000184844449898160727487546105825009320095477685258996924129197058963038183556465894237032727423111637993095263732220272216377067311838653857852684145149670675342109612031236499665787262496886662846185460378301954758478274809899251522039904424167054646370938628251467183680064113118310947325339096058132972713335100448108076077897306161412520406238576068460774150271376483826154958504318895124439115754947843665130736219953992121493783043616096339886893962186415143527997906657931849534432973650817714856392362422658612451890046710524397918578811329645994617986864078593155306597537175746436953589322783133759090850758307735820562780686274499888733654614294001105682116279138890348682323136426014103946053525957535261423780303336122043084132262597248778313749064123140188458331893154322957068639964772160808256704763662932170880448389730961101259427365539032460386933985902271021713701114825221368155350533920179190072923581148116289119660240540381007501535422661810544003115421678810713697601836145988081862119009721257240568744127119098819457615839089809398692023771833785537399240734829787050622529966105820415368579950564092617566641676108429671914156281192128457533216320803160380275908425076955548896331778095415893642164009308783499675803926859508995623616645345280447343743580693862990246697882550468965425879758904125587378158811774573981662548754288433282395636084278185049355273530579471662569397403394845491327396405897920917720580173989638128501170699557264041225338420895232967515877641546395562544040681234418590410042126769520968624860112258001581745431255657895594463066217681618443486389611351038069746010469382751665546864109791848307080749681863456301504233407555396447240396684482869187133674304051544608880306937759669257967222527172652226217247967926371976104962598013832231439440467527862152331681140741785413574181654584279214797567704043894557885782930325404778934734713117226066564451363639970044981304054374431840697633303309586700798067643714147454743745127203999531169276434344267798656901337542837504305730129022739151392810865968856676893324477707027365964634430670827567082785724747597804965186365529679707872861435936190712232504699881740710229382657193599718062430994886488416083535861968464560266653032795595467393391318285667300892576809035102001309921889842724299263691200573106126992467575875130968120167390443863551845183645208079424241452736674488190224776540751219112470153809604229073578201987689500428230448216338745436335694254041621415400188422733869806787037264615577431955050815995027397935795393452104944609598875101481462535820046628309556436543588458056722993753544060178240106156641333182965650022919210689327153090758900275636455776839144025905005036709450940308823420320183308244095381528234079513271385848793195094187247603284258202488070141736818060259106364678013435933372478813165733398313838286693347656820356582817281819042570921474533468158339701808303320676118679758364025776281321373936432558033443168885140368555241016587606848109237024673202739256138783751823209492178966820964372302512717910813082452912125967005185498465147544998744412875834562442764509913920081626742855904931283349954679236652843160343601108603320780584087011092508733483524650638167334551373923292540563485066077509206151862819839918771123622014607391912688548956498177741293848323944568600423255637521899301590086638608496458851134733040462846124672324607954007067667340835165781623574982935906161509567152679398412325329492453754815829023080642163347863545792162485359510880787102471348493572990765275906027139883842772774716882509200864428637782435866692602187844251110894561220164346786872424709213094887656842817372193267139656338053053171592779269917250846218947586877401822171655909906603532984871117422997110517735683629302110646461140800340069559772302437134636600991160451079726947894433853456940026261176546347728720392110786117016911983715341267278296059286218367368012985007998267256446096871074022033970781522548451993773519992974365120268592305261628829031184180216495987345474913840985944431371538428100274652529080503554914178064823196919046292030830007105074716070950284460357105005048354025615850803502610424455674712157552987841316345019384717932040441551116082245953214364518291896825028989007937045847673597997989512239836691630696966861315092337419898566274113335230088188746975459035878214046270061499239776398419258185708843478247315552008341532157609193663474793573874325204355497486915417053457966220813607325152881704948800326796598023516644005790601557111428723531603532587500820560980112358859399060752129302315476006621160817117949508293396404784059224346541456890157241978168327846466310806846986966034529317600038683573474599044646915644249460442897338519633093272256459736284710203022958284586734248366365218396575935894657460787670449905924401475011302384077871622287790683302582557835630753005874100976555473051872946468798144970439991414636975837508037300717384042328310261763807509705328039294225456982389664725201839234270052358350966599069890171004934240130384972730671765394028220721141790977170642852578030259626932474338607575471483530261915730685988394316254725117808788214565990300326532507737270342593417966120593824718091782218122422766936692875337433531331305976240180542753291497320862467824540514700128413835895383022708480648988927793856760574439328274479216613131508907590173373487909756454242434589640859835791884374497135958347704558025631903660203402016051744942205240294571515994639990103947518810527859259847491311067179034942147331199894039068873766227687876313554038067781772052192283454048168600675677639327668327623763297376635291992524552565941457576873978698915267091737431534317408015781090885214687356296226251013684146162061108483064330138773656391292859662010092873466517336318099146236579537588497738252534593166462448598402806254699381416638353301748619830257224325514625630957923745037778852280560289488598772333109894528650037911864205081889983808979609836927949917962256183511375692857943002998494452680298996317596022083235537441394482026335547323268499252994256849508757689814329607858879735971237611445766951441254349570680450033701182603543891518956375343436884924457029080240342528236092762865910269241137898302304757122673531775132533127257837886736034702026403756776778539636185724190933868821802257848334300961991455424188841250794952505230804781989046740945333208325162220445661337340252775718330325886860763617039342546310965460489131479331862656079708083714954143204226939366443413012862327651478008704633708823670744447669559655137330391509720046952607351737283427313806665671900915200201801171508300045711271412050894788993089839594254880817665859243293915270357452816013789201979759411744720574782048558818591926041403878767237754501753761952746389872183014901727684855309361711681079617760710412401662989247786803392378547299090827189792256606971499158713434902928727698458668650275225694908139139229164628193654507818696815248731010635051775231887477542657901607207261502872643402460687834424634402189764622285226766404944712734244137484613695781514873760131013119931441794323904778800082117006883725288312987359635501258283873447986884984127281456144145108797189063751131362290547520894282763901722030094795877855152180976705831913295363098842698109698426540169967825426519967813739140470676631303950791580154633125624916024604109579835691641344948816484960271091023290655163684160942102355433581885830308267037012825887708668376292288901639128051720948108362610258800144680883855930845638863568954377973457701342496893441294183878527730400215298177772575572173479359212500168884792520816843989669204490010387288195690226857656941596699846166443878109920992029883635456245885861729134466185338350148980196940075993352438047002454421871652558384226770732401402471718497069721848949994219460086560173883177530124552442339404227952900704103621742467204960617710944582369541261211697868565506756570355060472655171055443902484378542512720654052852344533013899566351786620020614810149868665344793498468510740696451299586804974731897779164265955531658358030225539671167813548261686030884465173798205141995442736681719413973576166692719453907720625956743435763863028772508213865153886947439289393210889611693902498945898094728222988123117163903585570549590272607669743037741019705024314801585023600453681336412515752615931097662287879035884177222674734894262742701906567043141594880516075724256281842870769156191226340919377260880060385314986422738927648463384210220482376962445279984089392801623394037708659497453047488524401751907888378369072074398557925531640731919816296026641813892335925527845109678016361639442154493433203120674879684274653384233825449857120567386528003203151449844015091604433360503498793861938544443095411288200597236088453813986903555621651593657464211420387697419801740883343484577492440223548901448475215198407860542351616062654564338720972604099354237247104339917628046266496328436556957098938481103968023567191175282986905509653187785144246503767008618194464208244219147391997282378191224228680580668878211287285704009965710670946704845017644471067130684238465142812889301029588320350450777447949121586211687803396909767899297607214017710355192167482388741737906177292073713790191800401331727807830155175503961933034206980969496353947180636964674477858094000250536044710144618753197027928614287373603796120814030616778093178526898125513114584500498482936360103674380975435718339452103843653019602417338296419946477126897063240248257184140072295933029035662257876320390263564189588978065671008782923171211845402658102502755953568440622677093335016344220197026438340605378858743650018199129472607580754160256284906849545221657385896039756886648052250629021846464310373202403688283978952297247532344582918790448601261467390480640439378137077025053227894505971395362354860036420882860854603380740796918026159345876508554052427996490144990878934696485920065194066653724876326524127223257348550268551333476509232429684552571523017215107897189439805498520701731097325021659253679343656823420892343414591852461871107960252770748389312631572729077658989383861906349821501635243181237104024770566410089536082458856950014755165331192656232150983359587567390107940632915699351614423200218029887276499376526883647022858160162892163454610031998064218704670494596150643195126863360263887412204504069260473370084097616038065893686041440358008954824215251792712907920770150038945394760766986908868409494531075441208409097739018849194940680138824805322047075564775912500230926808103220632284653463899146711892356333639477304319262208921777195426388771316854181131604788224928786286406383051295539224622142901407236491939234310353561362340378983019903524777322920272428505996050159050037474350254168827683121929505962302711402116074631015709005978424003129705680380281327361490373185791018562071893895610722693343090088346351841894288973891890545047720453214314373321480725959357554157904445771287399299199281834406819515136590143220266793536625600911646885140542814456114506962311656295793760898308135891303166074757374424718778369833816930347066660142270829087794675722320361224520409633138599043822902016282225974637112055483768916946862559261324674131060613121490489703511087177747503851802573719471473776873946400606113954486909144987652158264025547010765147442165969465323062279634393641872544010095724628825122077752896571517218086683332218258902280809963130327690545779422258845151520247401666360985257681421009061963179422252332987473531524768481589022762756617150230015520889387523939200129810084337630603703914573816814107480356085393304170496134342000028008602421019922531949143243511923102156888898000377875940287495546442411690630745655489121958269826485201778461996894917314124389837954915643103365052722213858559328241747472550070008541708389671729938728719081434431007598777154555604714469270310984528207969691370602434298458663558812047175819027266531629536727020177309044061211056233306763807255461398265823155483087505106318009610243412955016199890297344976301130984977116860298759226356696236242409847733774574115150004078271520879839741581671309115814857300155046131290248855194917350375988958895368398723217655769491435499880984251887077859828494702987360188491816996202997873965806912560947110434503008013971071918694279403738437046692174585316546183370218001698596970970914302605096841957112374466059252277390976873588664204294687767255668929340254833802986261971619840020934824847768764854078251224207022333684856136868675629888099232047936957172138459492708402755404048412429988007269335777930809194723455934183911944564736470947547665386071367255031811056208394387274143200381810693974569847549739383828301143754554043208851848372613493795458780670223860323969189950156656854689109017419812355580422120972878891341188820972208217202467982189695628764767351033650742298110692980691881472963303389290796601237262944796428868275310835496128814441825659548089749453130689881240218802989591065634129934675158279626709209590179203647695856861350390743207167993401421969031150839408834329441604258780066610302172324948169093121351476214271564442359861495719853189747745016880168272879246836692190042213145197280959954441982295560425444415021680850625453162385487788762799513604372717713336709415652705965021713844586077507459999798283886745467592066441905636468882735609562716299656096734375677311059415997768303696596716024611843111533284268922432124654116201099656110927233149311338332901385507095772393918681891956843974194482411878481619122110882544444173084597270846142914394741539227214602819909309315384790285440958991764585993481152130395864079873764757137539047130235940324142488733916883958128795593560602601599947412576800429441664958188364990075298571398431581172846244763180032609337202081564955464052066425509276024796302100887590946177583417785646823320253929617534416398458241975410608329362760006386290068392519563578752139318887854689655728081045680954677412170027757828817520318500187401931393811562628943274762588707024689463097156059236025052407085299186404683519685503330595300817867475030056763120710076774300518408137804303412214373576618370486256925614584069259386664540132549759637717114135808791580805816038850110577921995002637389837140283743903100689908563828189192080258759268371630014584200604150027480064073028901942972093409040476302129455286660411830299923597367649629207888199422648823692174788504650444714637300967860870992161070044205735879789025007988235017461128999826187011455580912698797549446160053651526579883851947580597091732556717702305788350445426290216332306641203484575002804588457184900724240090963556428722847341414750277370039289150482797041512739213095903845074455214235462775532688606173166368315774353807525917568500040196228711522795633686524282843098240147676575509844595804410959876551179758482241097114723939501444385428062823112766063261975779408403442520389417609737287807868081608397086044294252773739978320609191517345437026581019092664739333099616331083485131937291566377724195093726111261208716654894314021212749510754018637425928001138923430992856131042725248933772642470440244481627290529040025789347915208128869947838521768981436876993222148506482463662461348904200841633612398398748395758078907969752908743126380042446150221961214033033056372463886622189016147833439848521692815911459538955019999796452979810042519450691536231289920233589689120562570013877330675400982568406802103126900660364289925320560867562661190456574971145058443077002755198026318023084400335847195725020567814539664320444137343774951601300708324182262558476922573484639823196582660212140818532177222970478989721401453239579308032957305759565545879829625374896547740075587320715470439547138443907036066956527755214841094072556928096195797352036796646215436775523029150297309151576154258827864193215715525078080624004926832981347146761073252244571231666748291904624555561201434500279614329465329813742347389368381233169653775360192546714789661436855959036152689493858079445498806592457541600297146837858833709149833240005499058673293074757016042584290297462153866379075771967932686930026900165873154164529971616666403078949270984951332251396897048887975247376911698921121479014667390268726445128680985621008900602754298921381833295254606834514366145935174429398734318079756042772677451126214229484299096560326346909541870554735386773613947821588400176984894997246306153671805136205573504563900418250868884716457739669208237356713351336359163823582269378809622233434231627197051285423031234806853561921986320029474746448490520205012697747293142210356672236216039630378073419706835960576452019550223019721381225419055233059314390761704152248442286751512193141604326745516537730325101986215538138405221510524888571822519116844637158821591931298506582469980274592005381542249395844846083093804559323189704911235061226674762867576818036721689220203102098037993733293489000991563130247424878273737761875309486234601112518301157415906790350711843450005891586882752388241932764757194687441663045888631387194021402034833858234164862347955396656648110051483695937588354247269385014445163116953514202148163523175543135023887876884411677468716980652952499281606630794612854615738473818104508544535992438047363684086788864043536441197793704566165674336002938457947949419303311262449529698198838240058433947634001714791489561990875859853643651859774255459423666715625909770771157976942253635871008872256332515245619944979061057697499626800028853635642066759431176433685245298872706835607750867035761538294170765291327799489985236199010381148243124515573924113791924526086229572070738290496471408583913603752783784744033697920110603169396766865915885539684458157959031516177518156554008757482907315857278073960375510694368777513194129734476137106802122147951394757107328755266502745550040914680710347842032694650533107227126351896718100164614113707066989874882146739262703277255111035749995329523339141459331160606655465979495778609353754806918959548966535407337609157511709108740059118556440836455052096386530600211565807080457318490739776468979197321621276018064646093653856992630998226308227625479479929346843773870730172620916016442706981261756112544024982039293343805850088216525014974676142356816824094401740386725312803482620957775972775707086826856991224178592542950353631747280494633784517200388869322093234056344338408674132724388284321325946630573317046413352250788211084817229553234057103930229893007133897718249059376020243005715001861132336434650712566846299814951504919205638900939470199664577833513728075892030341590795833788700577055998156739692324809161210823026238424168305299876276236698778711236340711684257198456573844255645218595114323897901629651091287406012257646761080169529696398051340251702255166664989672888012187995233136019224183776329674859912260520906177780675299912113007801890770397457169052173583908298247034639621176279647305551532006843164741913502195678532044411259391300926832400623867746695287934801476263459685055634547295208816285518737016823892468159565493179148654758114136333156599799869224350489430551171481745639913766093707739228961929303704985851013637013828080164116895708529537310522083622159839800690980138184545817572387272070917555359164451680612384127829355240249279717634782653712340028699057777593424454901045129287501577944311645468736919219099628612655493099829998080282821629022182483205369817040602080691530239638104211173026377014040034985891381128011111609956303574281765562329931664485026868289455384267530475233299521232044373409639868612821042698288991656143046127266575238948068115258087562939107469282438169420056570730940717534678600577090936208333694881926204399629043214843775555842349266847969592041673774384712137736308825398523955221448322144726648102759786107835385389137206285872699866486718955904166339373062380398122049630931820605693918459827251836064221222806292542798957684853599516922562369908691996113298271625628161042135443967196476457028855346908118888570274530909541659543445589301583288607467557800610322280459070460632188159138833299143203038645812834338850401666298763525722848964806271414602793181649142991795027701757371481134952350303237904137012294501177410349434113700618561489900958645315829181233268260312750935548761515235540342229658952895938620128850504967902232898050775943434676016048575291738320834530250509555646705705476032398045637408922211828084509035928411394110317587584697940686482652645094510104839280157087154995221601879314574427999049732983559608785295900873771986279341950685793465402251147911841115453216467342766197226203082265315461709190690356949043059901297490276449301599044894257288638928037882122632850829735748743737041173861052005272312921275112134029575199124014721371446015856337945623866584732760894086716712100148277431822860138627907649650477707733991222978297893405957964527593329926406261917838722217247964202693489396797781817977603243437155068592941248817965638582852051419989438477475235425434418856822532416607771905180234348806987828214529129838362366719883209831961673809532083278726333599984807692181247961082859867628299917272554291009794597681818052331322120454769252678941636264751831421850124461526764904516368138301384808122215078075677310981912352986370877721862491561016067165610797384364209021408782373512063726173019961319805960967384563251720095406380959781956629414601061187109664959307298114141922488215155182804548164122641023835333441170415384178790824354977711674807915522401975638673714039280113748153470977459523385349239035864860250758072153358888124967779727820081442331639302525627139227848849402296786862109958493517081692547081000975798197236378431609787191603131644516073176229588091530538709296267793308165880310366399645144539060841894117480257976965712518603582878778077485625652366326837680093229522889442419330903268843869168769679198283852881937712236441615390938821549166660024834543661174767356303279793522705594338428839321877920233350889158352330124170797856986937612722123362039647230110251314385585287439888199829584075843463747473044267930218656062429202720280296875415610391027159911041231660214656005497604417992460351487715579562531370855032774411527607993287487168367499598611446689622136456158788095722469255281262746584641021247596214565844995069828708717406850904020076505442891291687618549242679488903637860820587670082343759313751345209928167858144561227747279348004618042946947882509107755870055060963820090484485509229357003284326901736145198564258759094917934838042189170694730438132547377613290200837782942639298954288841462076953440887494778782918367203243751865625342995164866169778755115710821164589386085973706663754920961074521585615828407130229480549526450723970145871828249159188350963076009069516795726115042639994482797838894486552597423609726251821158078766653301663859182295022806617293537602894399610468242307654279548494430648309773011855565948778031214187620772231258721231319400486255043717528270382654573968359240784027734471576855689316581547313244000238049057652515120521436826408846293446230428057031893129284327879486244450624021810801534871631756758769182781621120573086121863733350942052827423970574032258543567115422001144237093965988694874240468649347048898414816527780214839079877873331029712898601195804352567714864443740189347247984366496087176986175638227272819708165492700931545006627870993374034952256565067502881088942006374951497371590067626958468470675817773914215856120209902953915930426838278443491586273952717166822207598846919514514495761940168722736210086746386405922466338607714358985150449186451822076932195543747959922067140200847407687607921633715639774993959738649465516961748011995165204913815325399607682539149694158073322402020381458549054253409673708734978606668808992626447502574862098431121257855344284020805900057554134248658321979524755356945221036044483214149548920762471069319823314942702389579578838426439164832500789878245176066807174649550979127925244303595573522432047083481479809229153549703427667853012473592264348832925126128179400934780819350307411526925357884875008919760283762509184535453087315882175549478833846204961518887524025214921063303905472885532165551986900247626262932918553276294388919743648411987089937107242340871631565315485182266740528415646937354089391284264260482063323839684434091758320029332869384931755923781558782277584050864213263779899656785112982048971130756773963118089920796692220754918973036127148429705251905654744132431990940815060471840951496324205888123311659590917988530675710440066414652002403474133773071319771135254194427039783767779714352250484852057405000111217121727009670327849472021476002321430268834450155455074283647641820054482692978163734021478277263592061293704677909262746126940840947094820716451064471565686128350775735160093851740440971275469212599955484374832917072781106775551418113624133180908942639705263380888994964705256034492159648511860029040065801529725785229993716264288847607235891373078696815389643167581864091766563115402002607531986494820663415994485200863701578654617412304621761328057498536656939795994671222785410016491140123412431705620721926093433257916497285195275197699640544295279537359992270281195043280820590664471467183250706460718861290659083786708101345687084218374687215075606882481626653418457122239147440497420139571571255484100772520035279916320456547941560771709678359065645036267163823888240249612074020579565001004271933151065029416654061783938609933424072338277511474451777958929578532082890412514563076813819064415427654884150091766054981084880853268798370124148396473318754916496384627835616838786604915655685004091562589013250960106397015857264741268749072904092927937106382249247211094764360803786468574552810842145816606751619224802857210839863334136636920905509963231934275378028510347487563318866833326776093993134960323113728960796793630805176718123332379659827746073330213093747316276585981487335877224811649743132974058927097761925131420302277840280316596244664451242924510643556178320979557561260170316121034472517509643615033697403635712384537413995654899269472565529545083996318793043647978558585107762938661538104732493833784643397206685227073566789370496280198505558292995038514745178784938096397907139650472050569075754467504594789335233301141481888565236744686271131465708900731628466382812776937135517680768522168692379327190509405082995044972368245370488056288637920076794143958451046699787333765105258504222235161317064197478690362373900987365322714602054342186973098009646262689777916217008118501755794873396815212866906736534146407410715887335342113559579378489540378599785743488654829975467370822045644247936492532387040126957999847382234829645374612185895757427887141545958558133331212503080207796567974771159246601652741500835701820377878906716050191903850021331196712810181297805740202811675366292136144952845352905758876788589374058858367388951514239110418303808792582000367849884290574624719308849306464603152751544558991653680572509112250523181201495949791601426367371228143606702783225498138530750933014597948459521224028832412516701490802585150773039666327173386428433441634977217433106811426795324812759935048712576082190907312052301833801404957030492625026602522552839505709991831704848216624440536778082358741611744786264559167769432835026228363841162419745526865630517819876984262180272655762057545714737392036058931142761809916375175564154827628838150302941177636573359446813487205988439981860353706687185610588998697176207188198871054056862795949475548342619761259435631144899099156966273606427507030024004268907548675516528249371652056104635870485985246423201277132107567071429029280064126423882330842760012716334678812889767897554744202436747546250271718584191107842199510613195543968017665550427799622539206622359414275974764018705018597050575429211520413568137292021063224079347152304932057047362738006452680668348087139852280143671808557406917491801020461995091070405357804537379502212560085324532004765082193444425169163830133271849430151365496160970118131869172692998997346232663576169429349766747246822826754762821070446294557408756639609026372896185797311522440201211624756400871787058810398306992405639343763292192564664260673408614364118375359793597241848131089533350322167801021445736754418635863225435618861026789339741719148945988412640034225598643359630318641009482169408348648643669291727395868872437002400240338935666565814329314274082635860338387254006481146032240842440905696027384253083576296152421656604892846497448317108147288164165223359176381061714918141282156114935240502308910463455153065796718168419341596961720001916984545416955733292038633211181010392082258905235607889255648104355550859128826674208360849377050819421026577351551033328773793077529700996040219441041484588236157053221383287219339751997498492043242095295703089360251826099687070034791935114644199733600160868132544143425402032045140151197350243369206364971370760049860970983069160849350338205690141499217530450945346005266361194981126768603904569483771758116808978322622479591431361461568686974150760112005482390681951421335379691489272746422359326045373137340720101565154424215181423015859539564158070861764765792511049679109133765151185132049803908739966157309279269906578297120146879247010921952858185892153073904978476922129500947218921087944576404477972108921597700380562026663356029926351647986816078171478899787502671162688545977405937323656610469950373372215844560139714881282021752622778876711919838464936186731819149711265362199012831929916007394577842867491771937988241558075140259650037875880116904761090598664407004377230686480164503544307490046907277551236235280063098986555193586561748819111724966397019726497017456425531329073161560148045131365746925316933981924640450017781664559480798561983476410602832243675995666238351932478364527571198373395589709261262230133667708550572650749959647985439771946506687053003163764312655296324838139582773583201416513148061551920784859288501077080462432060999882681074180449632905670382278064846369207264717093143399931157260067913593692613612737991827307580483532167311085194219214582055480720595016883421250410307288247609198804220387288784971816487901690440881670403472722428708813079827048447982874842322356655678899818252435019989037596766919252380826012298902095095336751496299929234491185806589452708607392455796973976409610734354049216011684104703824989782282132690524169656020432840955320797836478770944959047351962647263974039404964716544988357064051946249707384411521780522689799242337137740259377313516235212764984869206225791319809605395934982761086749759917829958484781484532805397495587207410935300456950654180232432068440358057549402237899954502678796019560523766736247647656289229215266184281358888090030465309921836595147251853959835122191398183623953070900315355857472442577957689477327803004680887699209384427685157180419587735515525678949497249141873828860677170048132781934280983739213826223792320371853224728579748668067284927214583385354051016662941968257100271566981254216560652195271486915083276422253428290377922048367688000036192291599417260686885213854821259520568044637159597064823318165916479030072706343121531923429410855765259223667890816686370721758231835066613340219199633643131651802955742072172600487766323611092629743128790449879660171889657244750272565010870019896518038050525507712626280762698081388872209248330884012170006259472071299077627528116067891887591042089355452567097533787638037719466688688375220991909712439935399632283720419738670206855151168526408929382909149981233515741359135199835734082962689705303910817601790617801179307337357970052142583770890974258506604373763718606761304207607008634696782930901529414350443937994433614511075435603139052253703551282465175910097099419333096566117114781145215138281296771519287056810252179223950620579426132409430213759329104474352928907997775823036602760955080647948057248555763013229223582730504302259121846440074684063191933581576139587308253724702843471698733172882246132757910484914898739276689173688914655367697628405277256573174659180024510816813440549924304378851105548943969093067569150118392040670868809563918328137962849232992699332721696573281737642534565687476294719993397896247172424644824950119894339349948034848403884623591907992691564162786849432376395575182282461721086642662266873757963551929371660833160821166986765106719514642821664296992942719160789652204003443193792264268892727203592279616051494884815569818549552558889921385847476797924487568177265843333728986814592633410262240836177028344550468084579597079822995978836147679213652192855789206032869660305640515655447974763866926272250844688308969194663035214343966886722861376687693275707303079934485996678567522346125276546883897738500971697650590472619845338597035134023276521431380478198481739626985563783813589232903008998392584419180809797891777550384623226115343203216915814770723348331674701010663836052973781749682029964102810877741573198113574030285354898562120949900541576054256281088182220586199095496986353567689821944177070473513800207759025499355637792170641760488466339672232165530690384441650212190664625760693828126045109964502167289551954538111616615646876737732023638968748548516049214798781579979098419402659142235780205811030558554743434607516502084195863342542723263397260160957773475075334757390860869412692499992892717053887622470000759464790266347073717651311197554441783823841304382463549987345486471042845722900971639478879075296856997873954663682039690965971094905282056940606240446281461038060871064446824797468623189667065332153757812002799729446180870136471068093321975484155400787046731302994551921968787343643419568183080692241612465528505380897233724396814668192029733658927847502650913740587879625369475789403699151292589013075620120964178568300960348649363096887083831164327953380762523801335347834173764758061033442259247771739128488742317033854466447916129152860063504284384981874393688377583819475139620937001330564418007644085191420080003847650547272545999223960364683446309644182864794967331481817990558863947866661520005506189976045627801080159205951969887109578201508360897954059542032693709662608027887452990895763799764755511819042102528438683920591160341496929736492578992096040818439208243658540185601404732019076659779087886595798291194875725649630922143029157669181237789720978057823127054920843233909960645250363032527480860615926752503724779376282391181316437899542519101395839050374842515089423501885121913207353944508296742496162063742234084255657310307777692403236836928991673385848789522027145414025307397714177397099590880617133999272453064760140671712626255554584388826485581360745747665794682629860313964575764564023587010158133656483907781032840623377171000965127390559566545910926396683654365700838761745552365171424477314964922085080521570029892862626850262018350368402182568778633719449275212459158713845223257963619974745152246116870876126179005281056753215413887508139935955519115977455339927551983299726305856852127371845934526737428502478542492457658546340682252141603369280282643646974011152183005447739850699625404270505851342095344488829596689927836388283826522555035932413711064837576954924073810005585126237844699682187150432662995685111157676081375456167579529723569830440812666006917633539327963908541951996431079182767083978203867534568014841767681050684337201774633042716651265624598401756333413786135915031653917939278529679283122396983559111887405563840882715159833038460891863748297928319509848142489863129615985642825203184191191645867235808942460288564770602430734717409118641471804537746479837296716985547112881060239828353468922502275120810799212966340164094512052451577176843743144852890980965722988815318129771254136010347558145668015370564503495155538426168362268084649422134883934785515250598370832042302444438271755847319258432903030049517221563141745705626779730601242346217548136464971896033225008166749733794561116160713408857963791377998966807333079988650329643383730334404916862047033933949145261163189204832296902720559000956661485087075855458066027131034993729049912326257330813595145641946458340435903438577414834809720620630283853105986137400462348530633898987453253941181064965828485369384338316706086159742605182903173991553345964180695308678628222755529738310732626861981812465678637390241510965423565442572280987454986702877587775322613239906437802683360387511265779402206483649147333113962698604636945435109638095492924072101406321136862521009650104341470724944223257893253772289968090718456187371040136029227536478871492615877236304513652704192925524748921425235437214833123261286023261289170306172860903191615289817029058580909915590487937846140491267097287489008971393313403320514897629325677678995403079781097840363077075059897743487298986445363455320647989494465148987617394884813367918763095789665428017428221327179027308258692168713106176010485892986740537853760536540348627302074779467492433001948150574964236685873288730841367799037101414102886175599809572072775575642406678263394325581391873051741751442211996793226058282361529633358163448007488260312568161712979183831447655234209421577748957241659262018795142751025168201326870240055241754840362186449116505344481034579457922519305289943414145639220886885077850327570352034978789027549277703484678695460158679571675857858034917567469237307613380778671404797115404406924251696175966730115167974304167794779655356959656997748493637107203604623396800276026978255248345391572923714472475447548780751685164817429147224763028899430408427401462018014922337925408223278247233210902266833310208126781653548588051393209728909115544942932041609310432643151280041729442439647029702799260224080495989660148634149046250660368072293215330214168821557543312513214671995771230468051611300403887890461009498517049077311591121740287544236901478846862847337683480712068881769659998983438992211965593092108119908195135078539187760780807929797506170990327596286847768934390879390706791491181732125386249050839907239469597462745211544849363225605742433847454925114917283389682150327419350688700061450363431200829994502654707492988314509274449226340955754936602979074798107887636103137416676654191356220113416784741204068885544193354030455578734022132518318186221744862664357976864275797572325355281943538654041820040097767172592201040959181355791646544899022876951974882120646109394960963883073610508833255650311244312625957057637480612953203947433953103484307101895762328132564661268965020666964967455278511711321369072298681884149594567449750804359095788619702650038235610508126520375511173636934517025047300530497442415994448955485157273545805733348333740692592438280828720167001970128118074297131639077630709741369577544766095850955643304273998632238029884103939051493729938728418300834586714793917066869845052713553103831972224100364904884809213777384403922723039392893200963476383731053032270211117797237495589387307405289488578420773807815486162637913993282951400672050671901437058191470502964403156880567919603245477336897278055401876277083996476167387725796655502961068334941862301733830854621657834580305933205024256013716099538642808907757386784460124430828719681601821263575177592955408400244535671329695013800204382700910938835336746765626510638721316466764205818200142721561210331350631437732969735705214485601097457533369999136855827033270924149386576330712574804731016859398994389593733819845708311810817118259844905672125561674167340350578671675685342443278278429482615692735787822739076730050398980027549807466482264576046362835346299270804367469148417685824789622099241380576163958654102605422827743809895238901880728992615308366850800154982604850722490598520244596365152107921403577222477173634067426695977306433701079059223077203159048829599934329522663472859432094749134046984716982862869713776658185708452787960335925960503961327393560676913409262293062919878643356088388381016594779399633606952648136996446461875847475935886411266377078042477021175691103837331004061015943963393317760140515631584323251134703217587293029114340301581823751337252095224644565466795717944309590002189065723517047158394103458203106261518145111379675973661410084837931584182590406444265577609154052151297243767821592156498288303724042368157382423581410580433680535414160013629415161072608748416230138306389141065476247421196652398112854912015413698073271218733270212688282359639917048910303168911100381081932476836714232048841732278940016830507847346634782522307012589622751228452736345890841783166500001812305513288469420439355771783377467714387304020639306060595028964260616856520965732517361417775459065988066575799266428789515669110665295574366986462523333650716627311051759003988587798357431215587995691195351160399472768390416880228038766664153984121805697181419851235235907074263728719754524113457599772352437563061881219227772755696963666855001091831537008336317650657378335369245401720528583305039957234043102963498613580818601943906625941404904133345211677152852703259742845254293608489561255956456025071559028973301085358510342331653233545973651451325790190592490818920762199566100200624317310710536512140894936627478969890683601017092026679269676229029292099461337345872716230540859635855936573769333565645086211112259033667096788904272454529380569131550535767672621816031204427303661160263981663442744659343791645414078366168579091920030789173768407184008303617682572796832124373369015503156941609895914080689417533262628623944959610436635163592263118148567454398589830761102434704249054260079622893588531521667819150522684544594936947131870966533391921962515902339465101987276100472470321525311717568371376194706754597231055889974587705366775073483868506735698897242470463909245966564721515493713987691509139435716151802764378464660650886887005457255837392552552226016420016782879456966499466769226341860679032678857522176743809403782598381071531986572496447590535024000468917891467537367287513082048198664084446567645503938605626246860196552171655215052613212780109408154060557342992372790150843013737849137234003150380688022575870244682942017555456222106718390136359110119423229338720272344518086532397916528540698372498892743189844489801247719175376209383799645501765413565267408106934522635019197992916663505939865054860291683652501819325263576496902490734089367086930085125098702375890514239986640426940895652197094551269355511018157533537116997120448347231295354467145317604642463616287274115805353384587166591041378605205654122473962956905840506121361608050427960846702034374502427396384443299854040947102028912307214770408270033273027745969441210122873159029896132816553935027683593371088049139042101149372404443082054922288762100526532965249763954670097647807538228948076080719243194581966205190346398458497315942816713717212406618600387980530803141773655334430995108874145300811461360225918043559635313148485689873818990854021255561628233647027147258506033388263719714401135485391366663086238897713784064730778094134643845621133089184158280361432387565034613775674187751192101016896490881192367367502664237210872522008471045799641163145050073724809994370809874936728226159237324053997897789184157928393171319229618039880628177608675257572879048496122249310599533925991358138335189175250871536287435417382078271698854551961066569051982653512167524037820293548796099889123811086363470635181614775360539542959953019866416747603876850430053052355728352769969225439943744996892109600993592190500685542858009344041289875577110487267812284440760024541887004731144415263860863732840429685788846053595883725215469376947495401476259891779031070735513801379409231170877328320651901084498882154035567632930502212950358912868290764631037771642645431725362949468133498975028633727713243244923193237845802247026443315578284316836591005771896046267048235739448740444098532278090321543658453924567005969766244054787364896324200224623622589540702180954374064781846918897883143556258409241609138589027917800537987693345555386311093777231949453333732641434012039017455376787179144500846323132331680656318328678597896125365664732652399027382609139558485244568847465302526440430381827708637038989508848318602081276090273251804485390207061345940065943448064154294362576791756251915327904020049812605893836276902920613914739665092719108144454176175399952652318586216095769397068986274972007419691570276581021181250191979626882668829565674341227764215578368184821774855818489386156293825186609449744015909046443493602254194512195386376411168664121506499522402747050768535494127876085721795434022394333045844818815927272642741450561477963302719292081249012759463103666025265846309249563377052929433945418374056888308747822964227133273591521154877760158285956990305438887179930190829267807796795316694270911512994863898773478217426381954013561881187196294979927460254329681634894412271622881721778616268853570374104326394477350167225431318092042161444536164027549957644459725969645421626687019577934087598018859333559645894316437969121430721597479346440378352899031662163449899412602053114207402965508570481051819316987426183630330315756624131674871436106008567046122918437603838315853212250409770359549977614607080400037656892183903755378682205302773202853514766234011830523411681248166541248926966968316539906981479491338692328498196504872918131451421631063454163129142713546078755918052775154053899522177636025889390645706407150916100108467579944508052189534174188506313732889092440191675403872837063622433470788138361524519240675024200787692391797601617783889102239607884061964133724064096255365549070233565262187256823470474565094954873197280942566218355440798263961075005054481592094393492733759167197530395284410061804073239686341673581233314412329689914246386760290584408373895248410227189925316919336743421573376534198181848754829156187322434271919148842177284855529704084302072681295127379642790749538329650744594275936748434607941499865543418723693646664680891702987820172919756390401678371117016277645080058233025861233764271597848758252296796442097574539713041146529562130070897247463129225969209813774648840941556967015880614830095910535921233014522697249085911832163315712226942399817421544394588973811217639620287694947078031330756769689549251309087413212194079377372369402936771534277089414026981118775452177085362457736250186121187504700903448713290605427216298608204467511220798116189105799762702648845755127260529548376123961201973268100145999652451358716818914930958985802073722556715380199537327593038533234897595239963767503462922710977404635419915288874283880175375142327767447680151483080092420218185453303496484332786996583198245057667001360861534887718513697764618648133113804148304086099111999190928124410454132598009007658706940853704806741930970286902608343050674189360604324030747615064485879558090911367038526197252021896620185674822833718901172042385388024190744432954401469495063204816720119532824838392648912995667282345453181443145627996113889464073399543756903395974801658086213110975840645218092486210504225469141660642230083215048183468880935151128788153683350134015453160287227943098915297131839640181667796777401312669302502850478750332105952453596975883580342538946111604392286606866180131053055829563227429350511452512676270334107770558350604531096730632037071845179865379253658446588838982392706082577090603363617952700065749738149030638668827993629781592723514794318749248193542205499932123630814703012880357191836689242768087771243490051947004821701848564970848662139782463022605837743841489654090811478411328550291172766855942160981712346625590933353679869520214133773446773193411521940209407583184172074722764842647266135964291280645083731879014612896106634935857969958374802137848736888545939375731409667026595497605773533062171159582634039365595709074669673035329248681781429339419603608179848390442209199942712760292713168226591591326109138471037009043971319097790312380532865012090782870887879268434728384635089456705960397777089673900194968054894172730647423466754679312666236327555234907216592753356169269763866620710340337647670272403165261161327886603979664091570253861361812102221814246943225148505905653810180987120490109996307937054244265680140224757884316583594558353646530261974871610876206651637965611060307954612126408470079447588909423760845400261560093333472706571770728104213805867036417268585629464175367484307128061617402405814034013452997477585638443272094740584998113362273034314533365876659322461073807118726877511966833561231403948009568679467577645082512800890866366058284003598910885373599538545217120956998021169160367735816579797597553036052209361309457783932399480008229550102508675184463916903326419051038028318465954357078938312894173858395428712295479093758120728987476732056271172314968167998954688745480801291240768884474509852611267116771434458428903302871283588693853827556153631252772347236137006138371503169611367907562714063382952276478675705244896111162700259332724894333163434230106954621854478730884547507743947267222335995541995319495034167735438746740099719666203314912543404374060420149403662067536590469999684319148538589673132792367451114089989918751477199863294894887140852615902681162336169632742209436966708543389372032355270831891257894734161469401503576899240736910730949895364383861381888220298426076006127491083431695539471384792219826982731949565882055823886116000213817371244666739356755725403557552557511054672862036379508369500055884607299142741559917960301525968197464656818858257016888859946539617971170268543393341076673679510446688760848856421772215618885435247591947861323062268795759547947915305499296555770497879570903977636129654320854946022865859858091979729475396837797394877506564731306311183918120169538571367634213254641992039264769454633892207416337164931802367359420987397075707517617992664281096311324383722273672578508830289468494361936339930773847543716773192517477067896761175773896914778510115733930629768554597671443399986545893170687597889275122395267505457485077422584159133863663474471191066773715829378730275503183008369548447502284215752789725244276911968695654903003163797560743239896475653781073192618449035263012226753342992610578528678755854779263276661683911326011465626449757499208694364072523545045072148599876220385123612073662104201374514444844876905361805753268115959931632155438761076306246457079451758156653396938184128834963704245395594830781411755231937999610619115384556206920954845606855441584929863175778821651501240361144999357399538073285982195032595630773051041076028038174802353977899936473862108656735523430815362359086054350031488513552058095318053954458349298617200717297198749876316669092446036084422191748119701706364870175475448958115618538383494455595033935325685269871858295283321654649739482451341694683654230447725283537158459110057090303695095421010447255309587319811736488436853861739014151299327434517497667372042424372165285633445748584323813892889799752938231787288847826515967974685689047510164142589065346304943310830479637484696964574074165941244214200293165684938382351706889267653764678004626602602676651046325071898781757312448134049150312845813658344938636404576858835285416736228784953661839052543073115856622436797984399582281818486698099499385443757617992673105629559715182503420215453284093528061316627892490144531652075222305457411292662258823758277286298433656406581729781917673327091817444070061591801157974086528174863852407622929897916034714361501268423533776077220450521610933258855692423367796829478560606339161628746419742396930224321897950534631041009123172934631855978982729316244102564292696591035269304845936734555863664415532120856077246203112057361329280770026728880620065162291455555669172058787539851571352053273744264618148488603800684879591370738724722257572072928512263283948274251285143871828215121220316313206034865404291924257605889921130806127965475116205456524963217905306105692672796301547172577238011974988923942125744739358792944928378086759745902501474458095050183672193009612812033750012248270140538145700117538747812263251828788197516565840687599994760148136089182317853103280931849379943840280960945300449839348995996405644855396609539921253372215006641629558315383997418466838873393295689910033707659566600492732642486684986574101591171352445328470586183342309896425356703699851925113381972543866500005632508747114535749459034676887369104705163715198099525664006123577208138850197941664022345157642075545588428442770585514305736536910783208005951097233464721660982473904851006905395069586941315560636637447706430428673201814914989059571891612714717003977494146506920733989577525154091935807914701998759278959157402636903538104498493031636683410962591944877244588601307367050689714816281682901530148064325972126852467727292842564689083962330529028805589749538157593954306758237301269446774802836038171332191519824643779455530330523555830871371076886250451103014958253237545987889558366830386724476892440795206911014856096536382454918985980999734452806664721786660025561779779998591863977550923680162498417230257918707789419961997969745012778333741697325109285397128395459665409785036000809228007587555367243973709739918742000161005167245704317751901516246162541470857917373975361716486744142436281234932437918433235651609391217158081570177492182500983743785821695450209258086987948048810460573426304443176130641554107517484029384461713922970632921150015411374141788892000491835418595555754329450439557808113831117363742641788956694511426242690904510302542956592139406372430975532176743025011605458059952079816566481281202023744074697759997893293937351841134619892287904892844531054178678280219661502714984078006132840961020052935842722996728953811984804310574543066725031748501751935598314143674335873190913670334633015742702673311238203192665769895212819304610679586529611670188603953667844979595004683861195209628413756938272753556068855018322692062575811151365646788535026626030377563863697182718734750554927655062303971821555875266800473636218292142092606540669872096310663656643036073470577007493220500243522746217593951813889910719209257391981738745757641889413557001552949742984989449574504301084805045686645156606142682079150235285386871138107088768741565072035837809598844665739237154478046019491655581314157957872491240715334368081577569047795458143147335252472330018543039096633494237736768972382577993580255535153931080007146096852015718773390273655538750860598593658749506690185934627060453390488419828117326642789676734393302195872569722832255091149247903567520636496404574320591833966682893446911536096800054690908020004628580800616437645838336624945150630986383044837705896918517156858817996357534361255713538343668782315336823868061810471521525990490748166718141787603624334559149158345507867101626644270137114508255955341134717147800229053265039420281689053567945909921180756435885826522015521685331107845199868180464976989641969766530836743059677907640922488002462505820423739418456781831587807611796580012486176191624100925641562076994261750989251369335533584373773588510731128235708366833324630465315950299776941890554225465828546141431919547346403253500443699103149933247139658908493897012363972813687078272843042507460839117575206293493270872601172521406175087665364618964852394786199985081557929077594227932414753410059520606313487239139592079630568200363735906255604247987302414543223986666845483630926172128604878335334783376345193431914641541800106938835695436091781972693348729272534172293517015015057482399021461421082264823471041997973358585345619014517243305026120926129352355398222983293363265454957417999952712856444286762999988343824841597560095277748066626987029453396599536965186055154027336024589245361676102385428441365990966711086355743596694986749759856383277002066891429417972074942283228450835891319480845468345990066212069124211608075599623271805637797934356373331900570146440548022485532739525798690392411141294179421974486105405122703912333585450518605255273523641652119736446038531980711196268783355044066732255660571284780766259145965600534156095914817391939314878620550520384116379657171708514572384541107142351248939030513707573180456057602210995402953762251157553095775436669990640855253712778672708280674924693946600071533665526514231629595313937421330977943467329326697425540469197874755369101046866801631868189375947858163205587138017784594140439460338881582727967542318906398205528963223053101616181557803901540254680224962059519684345109081012287499609309865371288916536713411556242463981171615047593969637538091305792408705486455152535193738523368893198823149562960439837678744190768274944655205828953896714330611908029279351219538000222139099820965864665494669394119106134108334536696907748959355658774285933527656129464021228176828146291131022035939429893183639434678261731034644632655504648436210960353050868475045254887301633313607445239635734604460083583735354662426426640947611396793067446430212874363098346683608625209590564749221521651647641187285050264032035002735378237168166241305602127916461190290171515708837167547490611583824966022711751880010408600777491872376257520120544596586642504948755671819650796801145597219327605635177735299412653893271099052016419298925612905721455807900744442720704136553668279429660875136442216925929596856951270365848235836029636952922979428217648480852194937267251640589018923011965675590909048568110193717874407768462056682331106252754818520486170050292537681858388865463909691036572958459687239455847195165192558709873424066872426732201782294312850793376482492403475359335682902412373348531053722061027425219582033288682412632463503295337124594634561479757419689585591648574197338954323654519957830622788222136551409918751237517062248136607124637632742509839651492181016851404427729655985032933007213199144274036574174367406658478702661166585466235199377401205390880667382602396971779916040591142011366365880642547428359654520140312153149661805316321685127735049909119488132202371578773108017214122085102732207546887347573398781026217224965164429411045895157799596714728437700113644668291983724528319726597886519560687254204805423121721223926653375957149079580055515893198790961412952551600452396525617681639895514629613075695199808910600629740982431700173366875794938779465939778801352445141338661822791820232875486218180679716257271367894735795079443626610600437304360258033992975331647963279984326315979903136716445868307283926539551959719132238323052398317912895251516673922950540216074992456669842561282829638330713453848477450464150274607828538520321478653150412753822055476415789540018690124251549584193288912219160254065078255313679546127328834434407206744746097271370860265258682328101971083655036992017425891112432644878662456268847023842550900108698565076921410160563085777534825171404195708481511530608801799614779422503983596827943669383964274015183265140361697046726635765160015855219207416481511228053017266778311962832035030305939457666042058517409483783904425553863649288229428696629407582224118072516497718148403553188296102899379894756134757905262750152003293961869400514529054154883445091136607369984185930071201429196274600369693674993147277449070353569710773126610381218263286046818080366561129796326513452118559007978462031438772491920719629518581786510817178256323586617008975925509674835564536033387732011035859872062549360715522297001076622011444123197588494678780248184342653441851942793756868742896721942628733776831332629140708919737245740847890788175146981860784753735571774125327408117308000000936684382696634805229424531370584406189294183269894371145679133983173186272235380518559770019324891591026338902007968371469276075599318416146465365513756756855021130036629363855096261137862374157301894905065247536762196964518320620270235991294443682536851820636403371587552992334798875304137612031813978671292292889974777497856576201016524197599632343258772158851575016539941325112177149665188458359595172114839247486141059539775366287664214904717806349914187149291223157131729007961777637500859336014615258659052913207526648004388347172334409512209045730085430261100671485598921312483221797338225095739045274457815972806913119810509872366801096559847086473302481536761129114151245595901742745678508774242437241711364333313073801672711021078795852116949783477492640992051988519688820664912626944514675858268999825470277877112289364470939450097162622335823242690935904770176781861062127357800317087994074353967073211359395741929160098385455567345607998550017677665761757745291038974089530333603234457767961996899784040725144075333277017268572131722312107771782585996166150596584818670994724508979382729151610611278831172526475945480756376181622560844871648451491786045833477926381756884500533128959967413697723968101516591436653127804504898761801427007366918203796076987467713151330098777743350932519905530022307306624052159395078929165890111955409649787404304625620285142938903624922196842734007206865247879284048506532520690637109314791001455682199432224447475852625812800945437037962185450378938020267476013457434021247664458527383548096785386080610949318594287779640601899359075545900401660409644326644452529220918298809432984001895786819163125379636598158800012486652683128941781710845244168525285872993625304756648156922063304837318776720053326585362703324289080755993299740044557780424526250850432287264483668382065550685864181340782555060832133063481819595429532291896684750183486929404296219087476492091563588510277904732317533784135810298693369236823390680966220659399397418421695520703045506465190440301507914343661163322407473477573745233345773309454830545389349526196159525934926207300914639843053367740847642309645719561397565800124142823181122631999024800633352405809050733175551012356644077110597334962996693391422903495258527447872098069206245966403806765560431484168377761525551369847589940494728128866335774605109720603215060305118312684518566226189658346572225572649020574596526752469035445662766126444983692727075401170485468275471770657560803449684308125266886280080911202956392480393035652873586727487333659916272312383321666600981390176782765030699106162818166567579935308078117785372959624898089282872167203971607463804952258147934545518463441765036258296224903987726729689046391062292735325043315298984006689049125383683774870480245572559044771744856424021818754062570739501679543463156442354683346300969598914054115694528834893186102474699933353051928659673815514678753241023584752401971007921013449454220021653778276698219774640649749487344529301908033471035963407973781575455568850163814262743220721283987564036556013360445933702559132824134781942733501960063856142585746092918282640520863629226594327133695831370111941710349076209631105893022615118124074141586947823848515007378277540278307772611056263126138404378281078705632142191234067563923409810837318883298167588007532600830351009509092144784685173612985478102698716908497540569297011485015033335322963890221213863640918299407312411739644530976334356861983283731710539945396636574017387200506393301717058288446232209227472391138918612413671658619420515511663885247219547890831786674341107523889898533899805086856589399185141086707727383421353260110645030014621298337344674739557573405612966459970643387041627095030955242441537425020824448110102954785514371798757168445124119686451831865988410689210258597464668195989157595826188448038867221293318427395610827015617512635879856229255490305654178308962528261810564714180722022064181356427474123218360268348451319800598884263557227185585331307757642716174548632907843638370930221542386692216721014219979318094844028148420372692131017214739754805700485963318591404080354042705601170143192548053918750575908021885361870331134473969826552095113520867352302484595797887357786334227577450344140774969885099723387896801353286757457785073997991005616809263686457642695160097460062457758512773369979514189452714580530329824741399893115052315970801938421547124778517249149738651500507890568003247964559222662828687845270639198026284144752577953154486343159479337318629786131709398787756957264707135180704706311822386534778639673138980189581345671087825782393817981180099039264039532883975821593819705065760540976223662150712144992515989209532656135507160074812300367519580190843970159300175591263887175907264158743539681574515577925659580054252603877138536404242716578151548073984505727414478377969286984719888264382204805430988648298366080612992489896378217830508296500407881068875603090773634998935508055771745230636761691658699961987599410024877791960164851006175380833686692666552954212559986106238266054378009195694942189509352666191472214593243633866692232410124570141499977916373053155345070596080830848695101868609563183051993382180797724923434416016715828788152920731696852795371808610247067064931401160364728340815561614736489597193032481949265774063762022049984313788892555522309966215799651225142055109011518663622037384622558362215581132785041538959922461399153412870071884199126824673927821387265751072342289511244639163513029373427293831967610498022691863377228419824627227128028579152573193234287163979235348183352898511452446500531535758926130986616530878964019823574622573350219188128536438468090527399317574793210976918662133568006466368274640021162802925551794059717546383171363786823827966744891305786614484107016404574616429292222148387115481552422034787603417177393088524694999195265589692119455993573987089869810515952148721412315479752512620317614370586569682639166970038709466836252289930435393910849860083072840416889823592943177106229559273016674242555920737565814542788695200749850093103052003698336142184593343002881186629208166430897169564201598163161744353881555156661906724004181793217609829124936647183943987316526404633409984424208910458597976322657105382596308706860587337984566865661820821074242784996016096451982293233767578098392003321857896610999462975224726006508088603235048540857601606470950766355093742131122603875270062018777042990969073286046621704800569154304638810404228548699155368736332011249042978050755914641742331919777372490028273599608992484880332748098667742580261145912870957261970957951467579014467179578501578460729233747617836259421904145142486399195481458103705536072573695575538199149203805674571873740471076516413371812891099082278149833008482640759960440448871431043950612348493315126646743569326524166103892710900940737683761675009694039057581095405399344771276082994339414450554115985251213849877725352249406571025769259645589709744892146373061501613662439818072992611718288457641436951078802298619563394603232617712007708488512419239545616426769521020782135104852454872003612705534809662020970881478961812019109029890905560061264142514649971702630942474125576478874687586952198704450487058132040754656728123671919498213994863830988124678055321380115807473216681850410458469236481151707982302991060500216458499863372556967114268505488450967538073568708114797656930509357989697991022975700925344996988131173403916343013398304310139753303200859153174149846069609419175769533050264866115310159202769938246263437936450737700766607198749663378106855684705980139109983880411456184686977469397474023151476481504017811443951334804766137318760136718825314448512005462283503339352346200712761974658552841061395927788021966737083894273785349756491170235618135572247072567930760825994328626011458483271229832809661093798444788399388827014660333687028505499242011842096599679713963174438973765473640170941471272256002681848893248385409953729706486876631135771692301917631837611365901128751046610675450502980830991254199482197984816282238893969539844366194199269482544042064709723801110821480412343089991331346901493972412164002022924465226045220929278915444659990596065050980385454196617678583382579397624085707284804533555427237771828567241809577854242829042329350697395840574065674687752120094075395297152183613775299592504625250350811917706382021603205473591691437893806483131493867549071408906985190428819061774826612137308143809328581588030690508692791666198797648436164398524513299836596863586856735779192655919840730557659930212425776465823817469467814893796890006312820208888376017714870711822372074040395234408124375365616400743290874797394692381547342095373515198644618395508344432701814352119884320998803649331849274436421393028333543749997187821924174389450917452468328468542124359357264772222774522392751398281924475859404035562044560484714353227261218903999826874800422376186008272963376086000528059089144296277052728727343466574629852999499377450386952618568434178412250175328106462925409628275636128185562292938773102461911228924593111681097508130735524198764711661032697199016361166033651091465148303342999614739487524045078171037892324684160261578776771443927940076659305279626649563499148896235165061819674570726708497259331157059682076260756834647173130433604229883877202872475364743432227471798959702384578501139472977869768019633060339258435418896723929820308643582578937820872956322526684782665236499877249871209851664323875683818652420314459678462890163203089611816307387153428784919749128144039552202325738233146151314480804882689933177668734359434504413753111349495032531792295115654243770203834900811002917570101088926170138753514438961066023746611798270263970685855585012601653265356602000325141317823157487861903791933506200447519888477398142977086308781296684913295120905000444048474092288227515427519013260615573359462419011321899854762646777963912153505580581130332354985412712042660752797699665748662538840009396523918910842187604478708874062991085857103745828707966418820880974643923655904087369796344455913869321761442738735940159611693794286209885813444033456534268447030757070927834302189027424259095170417832573182358908622373598988731821001765801796607857147728024879163799101117714167424799422223993787103745647583248766341268105759257817350960892178551098276518674315770097646978445130496875366617736921682310578461210129828659415687019933419540925375413998789103026083817637999039980727067474228858162237553581621138045928198674860309625062732596861981045223986107178523801096350557088411772784422222138580493381410010012201699437832268748084280651988861101162791337958451275844576912031269938283942450429390562089517973161217251953165549334067083163372533127374023210635075903488589382006668521786472651297831599231619923910204004559035537577799373955703559563817023499789527466053694436510319876216834167813462021590823311342431692980175757436336278001593530864967862532196848284002272324762668358540181019888570843582149407317203830281117869388763125919064820655380411496186946868052428736176847288174523311066252377566314237898759969536656880221844889485916557543064438794605167250345938481006272543653200672995758059315698038510869857212983722491839246254205891563903436264239272963484756627773503729152598720834780807269488425643440104530709080053333926400607469744292469130098732262061989863832774265696803600104380814477720266987585847217552175258882594800390277077546837050554891043699316787774846695496503445421792472717507481765273551729728545410859638608820758004902530831817316416703980701751114529738271367130965814245443855300441859069493719603563717136155496066540406502055114402551963879269933480093024550129022409788609786979506456114871544380596472305032170387366017292447389180119924878281653242786992041000350653941424919489104971161722759285202857204150380185405754565904093819725955663660958477753648921802746921669666174760675319323127524816424768205216199355966069264532192768127779833884271189120792929459622692589667350165619334788301109125950874974194329409666151160385428503659299896095686292280932453140952026975744645701000852652551729367786680607818619686808435820930537579931337250157095876080376762023108850889558372598591653271530696238028133365234518919315396072938618700712221581183046005113268283406997628259553941157072181530923809216216268114835592915467798105767929445954548593722297576557606982615744655749788966091378191791552857777684277945787080172574346901396805950514707756392251281691891915257684888303601831610416485986134280329747139000464080488698410387765437413269697839594707880105923764447795697143971715547599869953760354630735710403418486271971608787221917306695296807700194247458778477644771827872677303319236548340436289784171595381495143895242533192834940307936672051564633527920640595585045616191673011775054216407721458571225823801419736175809739095844178997067613708820313157863383829210067240979940054525320352121427470605710559781559549621723420719375751834548565966163090731906386658530071204650595577679717396570126617492415042865125322314536804956767982484197247456120025756659308783142402469775224872206137893134483900343934582362568666766275468642800067540805664575173501107600966729491872247927989881023827728242227768507271565777655643795276127291027875209376744522635532049482592756765562840128686079514990828636757022753131883713528035570828756618510934794321911313670299416255468846976973560527011340947392058811714129801601054419526360087164007374439052960655891839795774132376409004469763784680612645456520668217508954187778989623526382349752060894231192246464410047954306233342565644299763533488925629100772575625233811057023142785077402752299219486696213976007217807199278354828423644813385275081556561935319289661725594083031091597469348948054437160493604833266942046441762902694658200459012389974782509820823672914245299710621402486279822398925673398954722605562689416679491062840581486214269071826702809726119490350045008788118361329912008519881358176647227834393225991018293883858061886055083525085746810398034311119181110337728593836914123037821092987743349613522079642051916503024565616887124951672793873064207235853496835190951587115651732275101306033519126358575552804275203599527263595503933025194622490613223436536127183522458312922600563731790784945972207695432808284386213155364659889781783539475500423550896834604201685941668427667796258355906110396433731281532022649159140937060101448206499203332359206591065813805971408478577039017741149735361739079180606996741221188451826708857274266558774161539539934735437018588211842405429168792136272925237471090219293718530416186918131336621480344765640714170922247780645896094516020721273737925640661901815848487747388979293244426828774031793482873618257299636186024062844194944795002779667374825484299349450705270369509395294188269922733576962516022736375464828193995893093050365372850862354870166083089437915071671237245772290981064090794102766731753245409676980749905394226373334785301850124081812421217390362637636451776574206613608670666044899784137239421329421685623811129363621753894691365901202842560550184939096053244817707875455137782796512828205492395672425928489054006579673362768391631072599485495670957912654310144787854107180778859429507277375788343149768357942338222531244492127987061905114422206984018046370416662819898830716401314070878436084906488682468528469766047663857849681532568346461773296945391686981151562978255292087733144875398049705011017100588363440114590603595053148303399040169196948659004139930756375167312373100377296554595590334726795619341259574454330165305971849022340568131248477826137812304002457202172159330486057856458711896851707514260774673439123528977331679843461570398763810021427308192966623187813231582409254595419819005618063998369059879699858351376398756340936391803548866569707932500721280740384881960956659789442019261528906725676339134497955879181298263302829942219499591000003484017462605503760496840648370019046018141510951153230935228174645506674344954773748112816346781979052099179732048185662846320041777212808198097369812986889892552429722813452468634745122159632188752199667288786987789340365633950003298481736953268840129587909016815078716070801356676832145639456952762950912734419227582552725013926102759878185667354400966155874740263271331745121408349674739921751548581811634344667763548360644334075593340732877010207047155725376598046631768817762373482978489074554246154893959666742550059635485680712804238584058314568069195995688111747012485874657551027918432884529044627442766865260214572994888987870866315682912015686653237656576086854034510759782083264654814840549961463311600866903149089076225034240088279861318501021740543042302206926423753324554078374160501076905366383988261134415310211055462265260718772307138506363913879556470166100276737411834013191497491355653586070261494689100941436091100414062638509640701255558492435244831561078122751777784733590352020845243563845822222363897817088474241817331515143716344765895419350621860214175416948478140639009723011045222413778863253372093388806733390677463338816571834419874872374712418642677916774519503353259933597383279231450063526156668565718083131754312559746992194743899396419252919680233908021841907888711274709251542075383504843739711114422408586775553056078786154236673283045959414829436720974696127410542510550396255690589041060411767147900429126608816424570486105237765585566717431267665989879486240845897312229455125995030531989935316290262646372222801540009195957033727331162586239906871978763109351929799812427373783761958873887807715900351674929060457230278468257779456337779418697072848589621748087763718315578462660146139663609227931492085679435160740750223241347478195553070642399731181435199178656872795588571690798808140559354071330173408996391200764746536354313957976025913386337801993468398980797547863116202174469726697047305417492358678756547636993633951152289019479702525440680499796836666929636227051941982057172510386864314156156077647314240875271506219776016065712281180001691258495118345007610898283101716064756706960574558912271963456116945124109921761015668176994112225103174727804014128517097669043490306350832776485888796602262224839065535218156950225606019711436413854700108774580491034810358899129227321738012097245699695997605304279453752717298822292006826614409782260933731659117606528310308138925898301805816448586445512052377016207432308724721369904572873574264508812090321025796407584716147557655313012494231554954240496620854805185573549246577277031953890322823145401346590239951844684639516025696746136501444981002983520763267534462808138657562888377221689217930946076533373415233944941505556361587175592129077496068160973989665334890402562675023354524741852423703070728691059052220493941137406641722419173931928592437511328048119367043730046473573819415444226524585737914325242974530960795192293351153784614072901285672209843774377563794273895508752741395674686351944108567224728653253828409280489940305974391493731111586559607743863431577587261595506733010292293794506108894568920423650812659509054454128629596158866191322556289071676518068137240473274165108565884540524118410619171408027414132952543732009305312997622246903724895112602204616133485120041052635895676226209790094255254437668621878507247421234622870958506621851380153546389805691900645854192806030065938497908972655396981722543946954671781249560140853638191862066614216923505612917075419778902729650231331916286014696853044221542131437546059499949455528160413614122451648292866007884732414157935248757303357266896128231073139270475322322710775246799577659304206096735793752755233525184993376392323725612494097946605618914625556744418126956061376091994679704289059164171210813559362194260097508200105318446139808205999793345926403141901134007298295422524503807455899515556330734986547889373496717139352662925779264682219961466053980067879101239148502112101686683827621381132471929436788169285851806236848829049845495062277909613545472546574778213089362416177734317304897353941187643126634072332925328160267054472597968701640268908715397997441178436379170615936290853058850346480426373004287979633853915489136722573372534849583792798313327419577280341067009109442866414939084731791106715303874242578729702549029515104817315640031580576549161904676638027113445529952217173284766059700964160009691536978199622191458689077234224995096584916752167482203297587941049414688521273416373426047859482189616854735798797484925566115238834074906817672597180074706094427030122293267045641835277022509980595845899542794590747483557132918268505988463031214262342070439053673359224533154610530065203267521339412200869645445463493366728721580481064499591673086891792017003753667466017524020809282866225744724962137683418253582246665110722647698420370841419755303973587369829303425456052408247281720790318169587288846755877568071963040289673089983095588512490686205699959223716838247466246863381946570310731329767013466997810709728548740789866607086397942930962906097271976120017882556166643870667395231221559148258814132087684797348930445307208079407865009360270193556187477856687919883756825216815023970257921379498274615574734069471293933043921756950086855781276323277131526183936186104827682865263773728980084428626437035181111579712772649272581324992036512105880572618347152638531242580755823241237272181708333551115683920398676697717005239855119671614339471745830352595423015279574835606936589257703652208190978378577527763629781655568689757771323588788217561362482935792838892894187253567516406766476111652622828591821815966738113185863663119709903303184378560101425656263198155154321032151493310038514853843329718231730623346008152431522991428640935720827235521918710186044372625489196303152953921717141492813538590175781223801122976212593085058533421825785587120597293984820458408252364569537046350737877538072603624215103936658358222627853114691561712563903653963768015296314520159829363041520422233703686233917970566134612976531123088307080171040915151713847797590917864214688570205275691328679443299734785300061113293097271773091919782840632166089190234987183476964294188948685670567236369944880482376983383266041106518887756523310055931023875922594544830307213224564536865731097489554767089313790387485771500194538180329938766137392586792245151554937468950245815561201997613420151991984154826971511862877802596981098446107483856536172041859296006865478857558200589752961092771886151840028655650989452642030362372979611722534022729560304547897010782264156428518111991782151757555703177957099156775688050161243336901769623167941062763140184235469289466632286903889581358843254007566474298277770940584558684901681504952860391149431552685975980620671325016785959190034966189267641192737241931855879938504622141052437779843505795154895398260444741044818464175495962563966296225052228556508007250291169410114816145251172433079735195127072504989622771480256622720221398520734164320512631633044503247559119189014160728135763657460288031740172167429138594881624516946512504189556385643985714242418771281022383574306268167467295081891709122825794061310843207319934405969404373448558168122750653493962999917291733390817101558081573620942901502126973300717066254047421649131000208031567465404273299208699294747883260484786110448992980778814143483052093633690266770034912002507328655360153410203111112089022677425414908629415188318745339546736685643915585468719850359415707109147316725535565299662174465781551248065838782308203263122670989650471472799097783115143862096900051762239165652038833252534539879661097915837439101338080629107770196273158713901767903449349524564930986728322198350177047197431555757212344315344953367757306730459329649392848141338171595591470566379223545876124843137562072267298276999623386360000940663701139895475933291850156905792259725898359708798933495773939952005405203307936670406636906897422369539414161832933225933975638409620849070727241346610205143801470571248903035001511425773200079288441781865336994814463719476727553642785063290378368992408358550946306311890522579634819402960574118582238723496961186103023096641594766356542465473286144869236431076621779490399127075146761981774280778460541879320403632440206388228889221465801889572410135456669325542875179622207856858594928705698952689126909643780793296583832397514765112822154282517756397357968445387638829863198964061753328265205287612554380131772325534714208628379161532326087913216156663099948530367340068787326627945110934067504371045687111914917908140860656549101891901406984925269582988151669571587692955541372216383052422534492798639213305372146726103854447004654317022352436969290040772227170002712089773264263509641975231653422362310114340501197295873795607514470041932744006010947518429418666089651553542701865136222400049004353482959660963990249626062397958662398153691445902965592879180349205675899340526544342341638594427847519458532812842086397448764341703534312011457325953505543836618179815452076637928412331326614772743475314006827629905476365735577984294910155559925221114589568148537600133945836142477124800173624134621819747628265462578254117424406440612775679712159243273276293637974078806081023046032254878053486564391569355610428630250238007099013803046601218365877630979583399885297579169249967439882044083252750152598771928155641332978043967383794786193814169940148187409965048496742765025319605883497189235238427662796900635529342264489740080583037645369610130672897618922682222721167398198357440123945822538005234492096700752659799064099743852234217366121710173050425764517141815462628154870171819188169321011444439462301562756599908992511748402507798758777770182339531149917020800922101177178371300756586489982451117936049027253849002359289737174501357676920251876748140201318253787721079647395961108444660001357789974289115108097740361794627866745017731101458065279491361123617941470073236268199365596905215373722603558719188273844575056218526403914687630319266181013639075593015329438560303306601634493068281032534529039465421418492816471884656285816934276400381579412929477640677060079085286682983702743507172367036047228081062400274080324390543720710557419111852958144214742323019333892211970125750115554836819829292376390380969992924114007884712613880641492308529178632006366308730662706581114827636562133035649939975319940214870085528031845181594431297858863815091521773490051829376656256733616852882643786801976251062498659307321537059715902166303337350110054162865077916687690756755167640890983133960781746707869928107734200129855211379481965001446685986896247819570996138421693998006628219668575390266156191335247728084566842764294058171409370477791316015175310211413367177169755100505531649165100428203435471672397271060188826820895734036893976898312935545545926603532533218153277973116178931507458607202763013658526174727268573586263820319348776707246773699292465023029531373845042478110408885095299504564230009929330132196588421366661589523621524503958894912465102773755681380791139680540462007783868114221963632261315483280367682600926782221623178074179603383214909046196113809750064740027641539606229307884157600917297815203943754208552676473387078214085145679103982724114660066146049851937830458492758695696890144044424671715359735573037081510042069974610203542057911362939470541812421307638942038052105061281524552893596592051579399882851708278097806877470688315315340216087734480249742373496729082188965794489560882021490854139134100985456923470038569361921611683692539793435811791724848417921737246550556664606620489833313472216483128935127829455007214497873228182258843264608584253426125866677617935603385631714539480847273883752848287789210716273726088534800597788209883511336245166698289960177914003181596913552948543823091966190112684533798769762379141892391330763714399496850985433311016351817545258675890651700980599092217006696813964032318256967473984201064003538136688322165645815476861287183330700248464083340648252937297637037403694798185816618072441719276791292194629343019780655137054970210991198656212657650297699115641190879307687664559898292678374981038490305305786731677960334966416260942848794545216474319817955289964385250241343273818626114872075296438427398957934523258181160753182835545388926409350186933440157265954413590602271396768300171701638115453926935557601761873935789676779859863529564996388291302188407553915583173216844656494736719494229039434713331613503329783098748896288342798118153618736695371422059226623271433232583846433136613028142975912874197898764346441792132385452828523821720473292827369325550950749458592786450467113727680522219824919743936771807671299986219886854718593623683376923778122513241323608530702498249213560572037207463180140075412473623623700729344233629962622662401544035867785270080279892297518109542677453443766140484047588014111361200937678239109910956461549755205464105497029411092042786481955290619733059447931403529747728185304532975285636524613210290528435479929719107753853543276961164685843729350934889157416937460314091301447254855690498163857113103478272590063538237376635030013414489405801461427589250676875433417748459249368267997803861034493426705862066261117942930423857453511398620941324932417185506902192598463967255660388907188423073849087818059180241657057197504609731330323297406519162268913970654401202941301517235515587392857012125016191899754767186051092718717410560544826278942552102648248055820114293236904115680073757528756771635536477286674428632706664436395777329578047967372908332861886959280340485966959048294208900680907355772126254084599890655181309066776955661141620778548356472119303248645589471091618326370817378003094340249958303490517450936508983965272622570411833676115040476881309691858245339516803653066269604337245414103053757589753975031712827970769529904063149800163229666023292003749985066850552540117210867533947216459392991963665769655676193079984662896806729262231497657352119812858497257191080537831214000255361531751204550367108676127963455665421895946566137690860521659112218463946145736190018437407533017219561833417823563538601026782164398554970295791795880481082367617134467711076116462198337127293006106111854721331577487477533953196032377577596612514444436605630146344174835782843172699053034915024074485848052387207911188295677488407450286535217151456992096895795830457022994487055462644855377753212825885612597791820120335062096890454470553405105183046006854631489224208957772289633052043920442040584654685407158528881850685218141649218966731143646356513018216641005358875959669736217576332636226940876829989788625300086541835882287779201832750460555809468909750970292110033809201066530976525429027370440212946242234962413702884137358711755385838978631578738984487332559683776471706501644724186165971454490551750269050810690553810333862698055442562269654807339242591256459167137489377144424922404807575794178315677165338162661415688459885595589194999895776969774851828874339228441777096300538755647470006403850020275742227450811080704536110633810202070246808377086479635560361895312539722214354066666296566995257093495169657759252451755498471466050147976515739850780805281991494741703706979107891893703704929293637795994837275697974432478751574445450951525891733143799819677772703451840008037529429817522815546822011554166448263255786283685346124202113624117553850238828775008931806568169363556066485450802849612748414277596357117661477321325572089287887177479763748977503539810317099787515390619076866533374912971818570885529078457100221075362301025249801476640110743172882503549688182680849875783825269324683537016984928164397791213165212555797962743838271261217150901266597466360185862699941431642658423645488094791626349860745121727468092396305635077303915822767227588203532932976482079985547001711720791590037738521371193052964612645902367370661072530190476547431008191495426317556637304753809681320554498072599676185621123246599735840224091487185180732401162527940207722864116967478993797360435726695090084003044775192945051895241793342290196059280607908910746685908204234664243913274575419979935879115782585502774533856702670335502971155038466295814274094741357927798155652463584259038667675985537677436755453890907677416190611687596002097426534852307136804163153052504060231213357072414931568442645654447633655642580004664373900020336918832670845039297826902653649335842688740075190592081682678820810845276361520486803616393689052154165937401513154964378487980158961651326032288673942265109137476382416896800995792874095736734394740145242648251768923085936816673207706281218894493283301665958169994478396705245896521783113594404230907381957463827091334102175887893232294268306459555231989285219056601855428076487468418523861259618947676797171386719920279809535653351190758476982343234131645320681943815396138679119532368896308670151068594776370289830106409899265365197622633144753833672896840635734201628527426809598878546634891963641711767338598338461457236647589230627903805441845327560583196260235236775611290588192125553111749629012150767884606383420878978254984648962549110267787350472036558890640013098437146028536435687337660551252299115313727212990769473084461032693273732903123795487089991689580559656354875532754452207496797819277281004563819150959122715653125473944681281319398257815299411765256591081675374341961864092918954730763843574343971794821929169086041891373536868356406925527391062154900508941100167256881989751928829693002094025778314350806539479625197570267276495095561558507408340891395121228268437569460197594385466055367532790914615410995350913871417382581081823669203225602665743273207496945600895925334012535753327818942839523852379332966707281704383436322638907856278978999662345749089704404568802411494510838046144157384297296972507089636931480892263740479215580967827129614382580582679664452151383719324437098795045048289866727042442952752059405889055699349562013006802341665081489242564602004780722961784081390134827646364966467487263148678746243147645882904487690721214119499592745353686594582922340779787386748782891936913766047651981357210565263015723283872285926483644665496401925543639161348359719166236022557330676998340999339531660446776598440124408353902853972584972130515598663640803075329817311503991416026026563656090036792147064406402012031444660210303406408974118328655839795238205892596683538125748943358950245414294999255319705642120705860751819836598705372837933480263101730815418139756290028024806456694161689070362780506311802480325695661321572927334403359495438737747986827159034384693819490291434977187033128194063366178558420719733485888349455486583304816543045598962675575573187421966118089601415767766304049432636096316597368153556879675497905106336880987183794637948034078364578958575874453317892463512410695521357672306385112109901126152502406933053883114707715557274508085071373198001064988167216388922421125947481938231393837646244148025554775888804226214635410056943465917785065354796249551034717966449264320182605909505221380241037871047976747168387560363908001250621501532478212493696415863503961205016627105135372707483161308376485910912734370443296411015836054916070664909849690345383025556859451493961136704836903146225406324088701833421705812458836073973063684573901413560022219092122855969893391558621308155188645513776274981309714894966388682606153949213360465911840417591499457199640430691761267933248750549032600714660339341560396617770584142993106563246201373015711475786517504106512063117819057220248487871258959228133875685610420014408385396234270708175269435610209647497034481677548738627032495481801945278826270057418208267197683669742741802219431489429941384238671581302570213833788653573044426315681549683887431645482003147305594005990959580319143026644829521923580516596997094223779994324429015839012657323241275129958728118377114831605119631995701860816071310206569056213373747648797519101488913845919665616531071265392258564207201521263588396835654395137993793645261755408118279311907112683002314658047195071800982024807488238468401685831619780875389164484964763968158035040278171984736769690960170274214842242082367987691615975921636086651686728874023468561132632067566534046458299442868795405942096225335885951346280997692707202752013105459730496333630909523449246140068672185649579247947597373925161769468134878569456378413019636644865525727683462078150306325261626438833986592145261078498555888845701978598794958001829948840843891589928642544412297955944453153230689840703611135155466795339891159741811721727070539376550506694892767681049475000122328400400327742732669780454099236606233902989095443771628673916178523284734561229293326053707326197181826502052047265592100160339642452525852895665042381416431565861411876534904908051424960690512037062146236088056927552906485980265244998649053483792235189167250856352358162934754924014064252243912576564995958300412353152729565059055786908913052075847295264186525326705557144062692231783205130687268629549919459978554250910862260303419511826420281284587353570944416935560480811808121184024459831356223607495625098679382576983552009676048365034155732034751889601018584519631350941822003638290981488001403281822089133362113727712586482873777969695636491687970937076079587139249323783681940385539732967969924898421563018851762605594734086021270476223588327042505039177015233362763974365825940378140182464954499598905804506852021624149514101962565569720306818063916275656798713162567675443257543780360920163009829926001820462557844874602863447098824304187545176066016263204073091039728546554342482025507963142491310518148818406064748744379945760843427822307205070463190236517394478101670700074430901081878833843231548024936184384276171844335960642716351572793925443319443519346217692613823818047918149775689210831795887747968573513441328280795662204415766834584389838549633461712410387113749253141066903842101030454416881155395075285508923991707482578189963295083203046565359421306831101281860906911151029746292570378260822009998827074882571492352678142272574000979962226510038188564428784460322537595972860705533946783928667215627962015025739732803668461328956604571215417365930277909514280236677663708585209177439180400478373386839197201903910021786984511756061645473641408858654458758459003986825292098041619200655900364173407120064956995035239720038222211447751304373079283864766862142293051873672230900070478791793607160776584779652605003533218320780870051948785905929554911158602870334892844749940870340681461826429983475046291994547231425664124724505911304343381983733857024338099002616032309948412345974434244318188848696709176983501661224140089692809435489994699219808444486342574726542700694267566984993764764612371160419407927128210297159798074968783794002655667466425350584846653116192273491472216809420000924943291184368561711121913185630079438489131185854612925267515641888113395086926844694081966451063106220795740719518713331189963986595903915672802826077439749359837067862349983977231037407817498593256699181427457441288986348770982396660222577620046916252601056902320849480255227032761469149758289640603760535534468569592631920511227656975203690506738239011447717952800088575576745760343752760498345020793580989306051102675129451028476337091323831676671987951701250600496889618510036114879126867970172086557653059170102297217719488422103296264994387573112122050364562464952342655060877583044944016076204926577780531693971029401905722998979374230558548391132594211380766620832277007784679341453513210327067054666634510877945729329898708423933059757077964262841724437357921952227920242085191056146497281227238776730352917340009334427106108875025258105798641443012109151336835629535938839525077208777940964930040731817280698948619260030425275741311845035548610737159179077324166142311901482667737096900259216290068521487047953562649942624103147341237475129051818973122416134662486008392832865427769693631719232554177772952926949693958489298978993909177695896632167302442940940631985920632069761064517930014525087615082508684425781071065760513900315748891983879781294662838218658920751612177679160935769476403189576788057696897671093485049590051220214779099719540894923644486206124472432112554910601177318580712734328487927351286426504498366876073811367118559400895492376715078137644160899539653788635504762127920826808575321147377031153367877776827394356577895674290327291319163871780647718640473151084571572186668985026250485580069789834260793426845777838522765575979638711466317683412356550793707030350415055486773500218633454123019378244499323263728980331122618096333329821184331007889625372774401743438537694221165637071577823122352038908217004065273673841542564090535620360945762364853759679545146227570331020128355791364770851411341366418244618056681712543216071689270258326772767042372156877787348198546628359037303859278501346698136245153413195273831120144098959309759802898265014712661854368198088470800896606365235780959346032821810870295545511346905065297374536383817464739702483864035178796762798610493679392671500790901266979222971490327024615768461936169093481785879436956119104023120798947141663749288367258450118270408590884323188472490978462800120060938345976686056120522957192763624700897314754024888511499248680864346924669400194237017686328717463762703976085578511262006090840684258417003241564029587116434977724851253407873305875081219793351690042234807607051905010581743358785019864896858666031495566521393719746235455771782982449062619719750456563279291772847107813613409311630941084947216961824097171067696255154113984707441988146622746723485842778743240596868642709200271164650439659159924982167399942869533649470655602261168785692695145283321193490660457806938190107638586040051500047192380591853244162421197501509615006329773764368833160117536854723952608677807668317043649520239515395673293167413580070183107407709483811057645118028663826002025895884024860528473045819867047648533679397593857591285408595483623455800732431384149707337100324238464959922901297731050749792106578280060961417546951607067235973903000756882617921534972073560244916549022765827379544253194024360333744156723971342191877574421263068624773689396609129186641666096291124563449586738548966695255954265631646910779275620904137748492330742980662848556490250866116405867586361583890406406807736219794681252077201882647783633750255977821139045583507925801799398090205370154316231282744477665179881028016253204122837590224941293444709133308939842675051465534927257803305319311608919264597564417494377980912660041728925252495538950308441778693092783802242739383840060930126198649539372352501295126823272724334148170824400860391470652849877550293344984093680711680154362741572128008588658900270612885215039498298530149813702417641474245682964019176924987308302580735329325602895848835331499436558597774725277535139161207390880657609001882885834627659526311883128356591036338150273620497000225054602006291036312839576716932033237563999730199960188205905853097186129604313953117243198642282659595040928656394269787634690666441727339633012532802950832108391040500303179639814635893905394804714567077142889142755331332944682308510072416076909519693092615608180449195998951291890692737786194638102828676668523036084099525863424685297062711984452311894205100410145514971421737906155264271737696587991620570366957315572798715007582771726763551117543035965110376327478362503801470606970642537164257651038009046762688274030351788878152818788053603238292401409134698214626266301591036806498007588594028226668506132111693647081493123990788214744223170858413259569748359120668680457283976757145033609685742711010096149496829558621350063136848629363288973494603595121181103753916369167355359852130293889323948511425058628615540479839904765210340179344109056580783723725289187699046831972786131876636496880626300646005191639575684436858500114557366873421043185757292192767269747785240189208782557418521324487812258302037358024601681037975553200121760726341661332114050980966827863382478784860419173174317810932237189370718661210350350055085737477447965006954652832932412360810326807074696467325752519255924459085487395013984325189382878764287701926157047071061218716084703495749233342342414554304172413025600014823205264617837559732362765065682400905253673912843299505515955037394968751153812871317188366745201076672593571742064516327880308244203830315619249058180752753684216400359847477606320851980471564674080406846992016143579271618200106485041947751782774367573895502558658644202897663923934725683007622595458962788890441060864143680898371547258907023026221244454636423283146016172107430637562850115293499983496563374652100942399125206497540656116037293179728372133619897456979460428405862931587457754732902171461534186415746981273246637362191565263437753363980225720450307486131734371302337311144031860812698967257324671277316548102581749744408526408505663550147907659084041077483481749593462273636106744513977124935345413122562275267106365045770128289070497335199568823734344744138975130135866164386097811587651522720878128633793598471502779105937250713919979081749846272241123018913831951158923890492238414350379716788987446812107604702818363317519983567479987125263483466860817711840357361021433414744707328121261803382823624738398730504948059735512699369666537731847216387890882865025496112919564090831898328306033191293502704258969101120954378084359214082216211088029966108936677607233269974918054265584020960629672014319776163550922880019312504727354238685183351989446989857926009062678110016509105531601529643209001273354526162381903038408626255958979370099366300774898795142636295850047297371976405810074047377161423261466135305427623185912000547791119880702758712619117188410614192653156875103499833890025404150054877222026200020392200236609928523509464086969128854921199064442069523048554980207990837671476185573552475245565415140278258922264483859549282708193145082874902960426719792253738005466248558553588800013728919215990645804553903733099040298814855502697781555887358664151966632111406477226716477066897870565686393865908364955639072552395196896363389962732795806392284948725847880517056197311466674645702725925237547217896274996454833218416612295439543949002078715306610198368666524934087307869895498837746138200681522821759766862715500880192230175360227611887849653091696508781756915745502232417551142722798346520094941107146441375147270962485395458459972127726986317007624151367735024803689210432549120217917823441889542709257160498869787102573630510453808726931512319854174752330188186699487812138676469579014831939017877627629878527150220802006973583955390802021990824306377007539439049398551058996461353654362559045225431361108857105675477704470828397944160956094871317481980097291121405451371729103965257602695430865957666960519036410658966930985534721182021118227857618662535521651893119126183945434861176234502277518856672491190593078279650563710093422297692927318271203681407829022841149297608835717499973375207079949914697315653348898799519113257867289981010154383653174162942098242152721505305765940938480004366497545204698981691261196687646884373228018961880569664893862391243112206401711979112017288861478984534512934294496080479875481212068490862214587497910995822639474707648912418522768560000565544688727616215974067857155743749829864862399361019790353655789004929989118862125797755030372220355862852595314106697775790090203071466253516429333395066141840789040680948040847596953016818233010073580903585666788957504566100389236285844279792028648845182480349142694113968141026603787172320584845207256043006420177928971680867054970944835845194829695478806848014118338586293536344982312163907522234448113842983667962735321701999779113017593275282463947963394041080011690696354977247036757811904643003419913103295281560871736739047603414606066256041817129340121088176712441932404965298178038831636090700642875919173343581888421078069914526934118771951388767273314508814254831601661891741553291632537430588905406681511956063240530848440095029423832695291128647032650851147202391367317845786676439432398477408225671364565980779509710309261893715519177520061428955930980923910117111139108119517189674445519240766080670541655399003205048367459635182206518976708116780150099915426498422900304854023968690764183546260611220604130263717438932994162690705497010743235074225683234429308345729812272977366750730487195067079911204748160914268624077496442973014248300500496607516436699826082022210449578241189837864487725154782982333762498351420509072734917605104501807262888644947680025177855498808562705250179139384202874384026627883796755196810876154426420019355453786828398945113129338118319846693875386259818473545894147693815251014407822165612963967153094211111579293088806295994359788458919969474336338755860796176626598756318309479696475878955690454277158028775491092265193530534884339418286773258503641195182752845459250882908975890898040518756245884026477441909219407910370043416434474210479414254862515853224760592347569673715223862488002036985079279905665653903855461647504333695207609993276450439253275494455266806806990704125085193252506382319007300024994279572247470649258633543311190816821189714006860765401207605162134980247486577207267867120197341981614696571726269131757814417275883665317981382429369919946369592247635638976942940025120676547941599602864987705015930585137083130705113844711796260521795257792891969774771789340221564396995307651045695450562005161615020366679969197843895747119057557648939113973145738005304991779794508925773245996308961544202990329110446579452476063049977402328130316556193607300069485647349823295085952949003617650126754081951528182021257436638600114845402253589286748124191972609221621898967132942114450961658086832354911140692388206837001785743438995886609870455114049240229065635704062127666036449897339587275927513675042079584370029097285579051877159423136559263212328195794818965418897306519713357575734967277373510487421474638908990933656386967835650740741214375321704736696285781845182739565498455668077355794191553996559124813927078920175940984276308159869618529934028221544700926343318809820777324723027190806742505103708143290940102504478584095503132159018511186995501843941082773850577953680420372968456469962978488258180100891607011751945909650745192476274809709762051607090546310642916454990323969681245587152876614132714820684280042067118324052168207967274106480436784424950416070696968439364580177344872993051987438121891356872538191002875403416120305211866951130235172474006619008303317480515346167333527671831690344563233752306843240278981207818636179563449246065594360975086252428220763930829422606463756433962999436665590925891134889549365862525526746144346066525106144171146293259883628421065467556539620516544027370152994458621734503859923509834716457367966545568762603858474363884006622616078227223510771553982794383698647834417062434757336103600795831976838858787061733267578363620339913322516694576719078226598983374533863391576962805416970982048036859643651794149559362129715113422499214763063005492047574528633865677736531940090453510764032435340568594505724400475308943416363919079576776695806730120041519732004603755522704653643732794037641902738451744543848927953902737395811865999239786138783668316218078562636356935227198193183795574376437138534922632406006509456012067318616606318260492294156139968371489096240809410156647577253477733637100409796870952568800096910167367212929551466288609913559338013476774756216862911806701055073636580084178422625908803244079804559290364798984341870508179886911665572397352316709684842105035729014115112131574720882409769937958398913694722680442356784341360423840945437678748334679425672051445099111899203950125277902952875511870981493580596090137972415680781650897877808122713501259405597197165765174957018013768836608184726743854753659319632276218092022349665427210912063253356081156694845022730985716652279412842286647846071713637126079117685637455977735569598617520234798910478522831715893505266113973770700720678338838265153843788450445863051768892421423694037115327380275843989898271368157845619264484142654148999658546405488363644809176402646991246631049849556152184406814515548469026893896605557968538137221992780567926297996753185696676837936800584384219025480266607860918255211047218590634671897717189506801245775056344704700302919419978341374204075620930369248087141481630875036002315593195130179232225807531386972502541576867863782116402960394232055898825110987079962307057896567963230322090562477074877219648640915848526120435293252842310651784016775756368625196217279542666518357665753459339920115962129187735534908728533802924821582756585294549099804484466795183907136881849107146494622655269634446733582815158347442070702659056397060382696235057351070163939211246195440960499311228136535956462111295979685735472415433961758791084730149933669093204105625007370981765385694000597552433412151005694921511499158102094654034683015174346270121677532982390805316456541229862741106627782453012123377862220313940064510441460525975240768539023380217175872580718144826963157930429226866698179452443843421932216914807436999001558249170823052158774501743768695234115407550029916844116220194036857937422825691477652474863723948514495443658363977184213214297607385867295981517753417819212356584478653388279109184206036878632577722824644834940090575031802557417206959309030753828512732531376369176335024960357324336715793407403105660632128076253229289411910814629327935911794974110879790676517080113876422170200270435753142806358134896769859759651715239158667387004852341472421005720204395195238362505611985237079717711309458019420547190201054719581220587378863071612491323345167194187583149587194124377066536690385628063243602385921688355763196907378978975132129522998451617210795665514008414334636973381304237596029647234543197287443944040627250744676386937610658175754766575668520967120141008609128646801547096003839189142277911294449940437625625555396276317086830757828165762637665927100220249396832879318573400435604682001427407393732355905431909161912648512707147170659964562437305344239663394696646008901118254671911491943856629920063825061148917969014716785422348021789437523494559400732707647816204034802491936720773536849930539738430971947700932958281452289293758619397218477155188030512301651692095386039848023090432667523023465199122068983301920261171396858558264998875576492115456546123857229318454276236229449327397541141539911770400802758185433685456282346713622397984493056696878105968209171174441310654027666511875437835993928371853918055035785154981327032170527536862778785644889081305818043150333068395585396010900799437733308832293261023695205219588270518342911138022370901361938167047728692407695200138157462352917759467297706414122064858798284718158412557415351314154322580092348660027331887386922965320124224034597565245092363887079892987796817302209916217798861681539158268650673331184888604758860262315731549798271121737640459210299747044595397033410581710560310744848801483114662649347242193803516534636269291330536678643945695325671713152649721604697331605258826117665452549819545336598736969786667539176426685963251709485669520406052397348263862323652028398917333081620867649324820126818166933353328020233428330709907138216940788154825349180883529486737285335408407203060409922269249123663402148726700975606534414238763640128428550358671825817454605458265057776597689266686498575178979939882204071783114888355323556393208208872746220020654870940090061595752137405048218281963955625739242904561352733128799125213306806934781657947797802486514396865756963665074722402523735838960474103699181743564202980643814362608635247052619467670668177876319234439290950228182185952942474829008765816518190240546371612125703492406107164376885987926423684159867955039731059872288723304424530622187555141253536419160372198619254368203245141703549783173645632614054320645353945098705485491917239092317491024954976259148574978176090519357869789234225508795762888658849215489019889432025114324694545164373097804197494716418383160365909750453880284992836627301305405395930226605950223475212182855404696304625340718073386528743318228665435635525094131286743620740767285690009468186523766433196042899819117788367604065406997858768347817380706142791745553552008746739159926535744864533837713041571551692911369168483333157170808441026437366730995363117888397865385532386167254338032117578062881245557597929134424252413630592719429865634181556994032072112019011601497357191169042907081373745066079869620821878044783439546607726539541121026476888429745225852074053081160736627180303141169257647818588767839487751087042728714636986475506571510369829030504954792890441337523274303057891553735250816376878154097382101687688344477579162974870478365459939260302924784177298315906198171604244668709825224701397340252833483768613543382400294698924463719155713951591515035431956031167264564820912198263605262487805777126880868402175604817537244664257750151324074095727470517206062119771550209494911351211119765171286203517090946773038880551204477358477776978846090582630321339261417003632525259250089247624911462489267508318926917390024193850762075956141538727611909498034830934835160361256849726851775985193126492933904947233693588910824569661654101534978865714490763206506196020036954026723193850238028198485202051141766003009618969063814412724878495694693092533571018155372026846032012468942016918085978531830260308278777144979058237008472627790943959974016540264020230149543175799853523360760999162475449848658702387696231669909401921245644971222731065304996525290787544554609909309619048135668634977381200261588630346920083345435948110125942421376503592238724570489320640398489762860576336507067283631390626613387424025500888621299814044472251911845566681540880475576516324527004535043710860403860605471201551881188124770416267230342723568052993583057551397187804372522469197360634913611263732334556855100041684287048396865782040356326143624998166536692043995573126911519351341049623509455887994509966423174873732311473790238029707521883048773012184032324427441361645380186463345076950748235398487333634717718326226168799872393215858076023524696308783033347576222309576935061362169295817548553927711394656065657454345225860311675243760512898764691171953648234986009423485091811340361946996335118380094919124705231657921699965339010273962636131016068268986470519117560671171327442647528941177112260400946115508422341730021209045988617242494922489093731122990549309985760310738374462730432579576257782777270342099131818632100422837917784995081417933120296982644901030377162279656249159045838055392801435801561555893085213325067046464893523084758217820604553743995536561358627643294596513829564493648050214809005404435770073631818584174732949322030146676509073894471994914103182878881835194594119266821544404027295718448306445946504323995410330053380660903723486717259721289824928224771938414304792691856750046827751056651256186613777186668949098467540123644714302404590482014745080682053099299111779904068964691375621704146538264547207253093268726732722480546382671889594447566006397640240764122346994634254855433096072089712549951342197148362618602329216993358950083794423862963885461304966213078803045045261350795800417317366379525934290546748455339972177452116967069446914112015973796254311277009129208432964041560359717133193962964065062541078460705265113894167731601571973683387938446504308622387155564582234362577874432455713617282660723774865478734424781541604117088795131935342646441979416002275531893609841000149908138481887728841390875246992306823943792155734700418673754852905367299404620030339105148401214519091630746576152040320274458618558074482594689221032389603141496066934473867898941963371358528315370773950793176587140034293096441555592918678923297686377463895975003204064074358293525026074020732008532999000276220940232435063289945356749922864303767579252009559450468794633839820639706413759176954546486411335423712336085376789180270616310870259279522577603556252016406991721130964487000209634884314670155742740538345558472552337435024833751728133328809770957141809548209580605413138157645020137845291722052312089706968117423016718341854905794608528008466767709319525026062671095529701665345740314140211794202930484818406668221078232077255256554032750001812914039576857207292061736233088451684364522222250796081128704174428195185255276027567054445597812650876055049822818007248872379705340084095180430233742741487582809057834154259100167227725835552050742966856133695227028910318879942519050665596479442657656920134405579685629962118230638786893396869981221702114816609894254579092621757878489689044620197703463453024501777828910720521790033753504031153115914330547059799400241640839120118009703642518990727692821349685116812768378980149404517739990381456714849355411582821132224574124064616709125789739969858877037609155136021504312750307025898761247024957687697513573720763348018477834382072481566131346181672749254590049517585976855765914264851631571671093714755362605166228128413970567984748241030518985862692296758601557792614144663143272105255323451404670900152253568567689612550644300835421737244727216859511386663441729617145375591400033817477686869069885175754930255181288450642135454204136133578541542631188125237238964771248783375602694736596295166989163061454751958352312114385511734551876675887133759906381159142106568497331358804861953025807839202568196964928821222949751419753276527701017227825679846348889436876298662875606220485192647530205111488733193160409853994931358162130476577266135957235762409534144093762844413676320870962137282652626617248654982689944358177408768851280339311017982606353359700860418020407328902991269292165849128211598593936399836962734721775668630406914069053376648499849585070465546207500836211704379216587746016449093823465756729929042347512708085747434153244163532933557827601445024626904842083682463872358021874740136009473231135432062997774344130827282212196479911495105218978616827956655286004099869083089333587168383363716386613474726334104877112606979877526250440556749275148022996465545473177474469955272003341917860247955891650594101468143739217822413835790989852443800385884003061257856005633745809685159515565967397122945472428362186657850965624031310865722182544249927344430695164113054311283544823928589707490302649115095888391175690177799511066399550810520400979060745773404460262325297142795088988565464531809047860300918014971027160477826387321362361031986243213001416500900092096742845145464918222763865850082639623145675822510192969728036612364485112961129959605013747082072310548415348633237794065832757795923948098883427208516059000464283258235207038678666752891525911334324374048196973888126316330642268068009647690223503694455760823517366083864588435725243147084925129641521324311084625335198673285063697584023933840234875720643826845043446893107367757990495461227200700870579158321624066189056003093182794556604581685868990995731194216469919463574580573284234752148826572161787949750302229393783215384001768557735169168107820103876825814262630223305198748974741166630237953810534766653530608507871492086054348521300379698342333237036702795818060899189401962845378747120348161273276831199833028119003831850352820007852542085260660580776420860425649773075265889525446052571895016446073849075861275579854484939215708196102563903169405422031050947941887425023467601859786225460840268834365105180832237599345409441973807740278129444094851625247497726121138453488662580833123471678320701306103148286219903116054207947088300668012925992418572542387856835785877956036386373622408743556693614444296745667580035553775831614142673360390378079103502831199894510506362077966314060607172545125564931544984697104293892987894924230016173993141206336516595673112169805560747712261405352516596563423225976558799856597513344862005524912970259333436937041679457426723203437694785365617018907797718382894009219227213519693751372781289711428284370317037741770014639803044646093056667473978291771450196025850362028792201058005699245026425622185517422828398634117055147351418045815658796585157249339442790192903726387676187360854975905561291367628800438316076907106685709002628833955890146972794686184250829477161729625046151095266636556158200033367753703066086846259545665619696451811467807800671927962146412669642114918797828609814327028454753268768137061522933709363216674541034157125760480356808162919974561018343979644383581123523162050815910426920189542868666522902972991478408036104340461255913332742510461362129264800813062821725123687462713586146077801772291649993433103800889777113740723485035379451871162455830361459849621093465844530083243063661845627485033866888828886380802625948670907812794955857633253946367390410104884858396139170703166830370454865008463156552161009238485755681782133990320414602456955919023544489270301062791368282600296887735547869065468759421040929181425631307805784778636273407283881362166804117061080051540402971666809603498244680709997916428868348642517410799488246059766551237540965822909017971887127897101815220097809810164164388263988614006862683398645222678211716097319507042207319425298477180287546432935127001911145176657929555697028378000723373695971400309775729061185122798169690348570568162563347351349390576784603971508434256403313804532353066947162609394384856390024517108991847358104275796424449979814997791827198487307171211723368029898070552852448687137200483589298005271990268064385407587083366773230909476485978317977937402250265821562427138477612855512381531203459817741473300501885438002685015510585215519965506293175557298192172521227939406562435638127935199503292229881098170986326482268715817525215451208222397256856518226586719121590159716654262852320114487855606420455040045135451869983718585702541645027091806849825322793838052833377565483661257080008673694696431701063839258189176569159713486791466256006381384959730299999323225240870550451500647429381365780168596161612210896115810560161021696841816846539355393447152760925818674537848413747443089924312368120634287415478426905222809681456419718001433991522017664167570186582169370794423139147864342766794793020260601543294647745355633017070069740672509490913245820036699672618681820929709917941126320421561715419616610141981468924241173165138071960201621236590668041084488907133853958402288332939896584756464595617286715336852180750560911430182319520073869068186566399400728823600456461836700042234745475533461049501886581890420808331472573222661666301027036767358890361792482602611525157179316876059148018182240899294992515107630267194187768174164120766463744617621768038120992560445719774163312198221901046235761525887544581690098324278342863216701453774492807504610873892764583928017109017349282707656153394874198234712861925015308418275387211977405892267546028730082464353143364313086449232446220018673840020233012237005899462322285816871604323130728289346252178852179525047982234178545043522278942524760188285026016810164220823708817950216332258190051092084535669594223446168866492708371137141012819225815287972902760130254795626801541849171403713754619406990643616773452796826799770688892422569122409854080010541404807924566962915973480251992056730133096294016213982377557469912647839137877004194607518743265826239641142829001936703087337480228192007007484174527179306787204694999891961113179032750683035085505208229101108854001240074577704672619031864742031985543412990220293524058171131738302926062942633609676657498813694015492131339532192023838654947405506061191871370446665231734792927338142067018142480038045647820135181815966359170039698235089218148243514544697685458960837734951529508644413078300789059529105324767297881492445652540636027371909846708256501886545076034970979396038083367812914163127479567694499717472595943645833600727459357735734955469141324887600965748188743023348448529602792164102097847495415159242613052800808837724417631569255679116905665544774238135229353021557806546686879814327452199627011383795447542980066021785976421585692018203387838191703438780750009570274799586037948073095634561462563112291085555701551574804266495219880933596469642911230039018911922183342221835938498745093907583492966520454730356442051346433560172911581885646872051926562862052052953001742794262546365748887939318670306071228048459968711540938185826844345930083699688405573262737592607906615201054158394844598888088383559327353224733761277889616207585441664837501385870389846455218189596230942631110105351450250285004572191821241477856004373063728323434510450438054051801323838493876172736597886258629369980075106831978154890123061268695446525641017384502015188499044616058873553703106128540437639181870720896051158037807816434936416623341750513473547528156031372229266713501194210351862836256151645031984370200002260681014765065504168726015319964390234654922126474963299185699359682124348367020678299260968098584447530856369515831678752909509510538580405264075135606147767501570470142591438049271203780865798428361172470543880814015607383359526040793802742386693613663893404028283629278495843834013044566251104594592349989848722177808114225291418187558045094889880864317502174665809591036144956214655365369803111921216042605093811276654141748427424982183018956580405975630594952403356304193784016948959341119884852344974317191234910577494168671683924378846792200415966962730064800455293362969981586671810757550884336074307034891821208997861816584645122735623713024405708972263972133566554554906289473871680500558369934042954322500993084514574287774726786521053013521424214437167817733978655041843203382204604548758043191023483523509060112215799817660881201521704842809446052272316093171905223174629809242504383803158570643799663805902859149354173149586341962695819229712616718876326983034967631473605116067516573528367634865392469555633854214847869445829676768820166234720920127504370321180335045627665789780669244298929527553234070554594716489496571064095285585909691011773517510979481305899249845845371430651383192774653542715390543386041389222499415216510539587421542872932314567927896636152578114013423128456643019330196354378075699648082462310432747095603961141924989017961157537834069562017684302756026428442800012048265395997069249070221587723823547208753262880675871247615606985470200017391640888962168427357908893885946227434016441392759097126259367383178699387274706422821039999282517075880532492434127522045468427859262231044708420062030571483365468795176441263039847877370747527142109402710121370511934854424049451849674288390024741103776277222609087745998059492478078895373879476826366645488040855143280970337690575162141076765876007199769829194278206128186967213313991234362500324546660553442762816071697409677289142462648528992214556710060797849408320414457052152409867551165128162096833273685981277139813153476474485030149561082127928760747396679228187863136889850306215973137229730311660896389573206181053291926310865366580632517971053867489560690602709314615155652877973893103059601246943699038842079616897379701211840279989506540156488126872950531499162793957964838724709377408815151091536607029164213262659095443307666272032277018247971301355774770590795635093045009436712242257003673210096144964987657145050623061577795150587603042023399203536336481976381264194277131476977986748939074416612487074034232457148985026379670739836933613181278424351018742982846233235980123496244879746622362107890590325108987015404236992350196583530534376369960672579567196016612058764172313402789752712240838142658326060446076276305466861514307826321231185668334067323167476090704679918998551165441525345444823673519660943938796629645260146465587857803329852081587562948051514575446477790963064057068866190087909779099145257252551549111409506531607873427342946255792129342566324136516634459537345085184766962985670114630685568581168372988562660131236292815894984705774512894289898676073481963004355956171419034410020085940010611568838576367556810874319560394858913332772971911401756001360868165591679263900102116594781039115982835510543264777910520686806950981298437300690962345393648987766022759615314611763086651621480114320834843099072051475177510225715955035000307625280154130345144112871458970097030956789620877446916268399544253940023217240139527468577106880332701509787313077435636505576784309578362494303037820983951168227895548315365777682318406177154374523988120929734835674717363583015487557069100662218641854200845438813989910782379013536364257166770144452007508988004758843105681676581990585889024163580166416728322156518621884856909231241813427169437969296106065859656235111103720615828175464128464817527677103303528726465507304677798350481468710248251289566600250108565953879359150809469039521431832997765830255623691586287855355801855380679838647788806949318481216676730031262174482563249902035766940974005734886585127047372621072988395569395444018548840099744309981088336188882353838538729624094116066945748654639214413149124955935275722548560468762427061620246713231713927979498757648644871548339946728349771440731507930134560954166481909753451407989179189739152291903566055755537931769087399637211555953681855815656861043355623825112772853306105692263365675195694648221492900901965184986846347318273005763309249241186566011658419402132322074073577744954792116805849851121164942736893676092016998897976124762474787261879260198887168471650372790727786720985988910729518779325093315922072651989076166725253095881258187890310380819190802731512519007528219190032981275849711087218394959567162856889712486180342584435410218339935966406298903885783957232814092961984109201685139187607310488194468998598339046548330079984415412983905972379365270776705483265813509941856632094702324462759697671518085005885706348712670106076070503931870147422381483771439312932927203170467470040606908545638208861782697966551266716075807349251187672631190376573872851919378201897894912977327215278929314884077950175127691268483768954369635160774251301516094846694464035584800760420280922574291570938196531561298072330465077363620258601450584351145219048388432234961232828752232280382288114571414804725995204220733351050258964071201608526607119813377107858267166380401159306275851836986837731103964941412053164201617046861616696913534398911207469529789570957926839831753241734421181629360208048104986748041643950609900527186215458767128936640572508925161591442736983845922497564511167413260182022979537498050403545862112040613456772358071648569532061153771203729607959809897357968966687735754890937052115019640788048706539635937362123338372915111822357884575085701701102387092408001130297854608763924265219014335474840667201783603188953547217212631806510541339432207827594167497299391644855367963905765316811769401547694753945437278624564564803889556297552030098260634441693614417056574607939448036596512606383861219328659331017122228406552538445377354351884931299599417121349584722528508198543576712955148118777042154576720368348919291078426701885755959154578295739765801731857622780068871333669644956499185172226100649372720650553980259917908178651340663092615229386714005161016072498041953743580460521449620911880238147802897397871346676091025234717614645455885177796521723774976587481390936207909464461414918439489946513247845291977639310174849559590027489496726164957135925041010402753530010491575883833188680366334469970687255369803171664268249575087236869466279998308111016168580467182780818118852530320893139963990051321517818788526833935370589527938425716465495179527682502324973467523910897837995310790277214636023681753894872254488819239183175438677330388086382546990626436057000647011868079018192474635809649629234922859551349504139232506771033561377539281090603042493372994107016140600149870054062994184777808555538185926988944424733689345019397934000456030512858085873574937472790749527529319211968717021451959772596120498742762793694904523563677796377530568023172924541522226228861685608761169727351238400465227742224128362914616809702636032499278640797116146827416944319531543728783221319789921243691705056411537426841712747199113014160161274877513682083466534452076230870438444507207501131468615728369806808103987911532195609403102092425549008097169046472643108362191385752521423472608179350438173387049320895498390355487171405169104504321146160901149040663439947727394995212035976899867590874868909368404562882077622744541711782061175415090947295013449033843654705937073283251829101646486996539815181294258689964238998170263181820825620322651301203491052028111750366639880228056025680886414887031126030832928326130046712752731814174688751759324740269410625888401912746824009714281936875498268145048898279635429532652777998466332955427016601398802756541825776259374023231212403092952316181815798094785750519691942571813411278289326476108793717376948910434198866354962390491570381858069714138756666703772020950942417218167554919098451843577211431442459646484803561655672814365252015905382497168852645180842412140023693736833998557748198336370449836908799962391085263521555673803335648417801610156942211774127953994018188519980523723211389333984297535148148040447682542056110873158985900405335075775160496297342328521718884851896593552287311770036668215239999663755656815029325287982132647433000678493023265087810791256477652704411144089213441272788273463162789766090375190054732805114086867846146271111487993753786448202591550236054515609005073824158805389493007358613599163166559825955548554488767957941399680765656517883745919162313164971583747013693369075091075809438142944895850345776648919164340701771317349065669470108759931130924072588480015010362856466884569536537993475757707162275018630196370779697687158672430763087387111184480934793331730592647284766557618435594391105946667361718029927753781416657999306650401153514628821224440344919319013835024287821094105022168589693672994255007263733125086447180724548596294565907342815630049903365372659601598614758121636203650767689426331646448168613443028588809136334669807938572410383255885331906245261919456693782324115474509061848486153675438686944174098121897158354015698143468202102045464959372080926003484054989678429498826081527305851845772740955376317687371545615335312705526681609293420934340744588026562289559576710996156160645940587054053854953703175594171328533949603967432317634827113216248117332488361510192528661622928057479512925022539349420056915862935762264263531233856525918183836547581772493871776376057355881543437650745188486847137021605532456444486789996713868475078998201115540156974462497048227758434944675066182347228609178070438096228928213263283671362309896094842572367289296392917800718028586584822575752428539807668620186709538197740251457013358285665028715394440959927633203235891567458943311136805554751119476751986087131282509618897734178369810010565080785645183840939269491106180361010257316123815898696968503345315902052609586461334570666829948154346089205728161095244108065104581252775010299098869295518199215042417070696612761561802610685035369765668856002445792365040455109239492133121993311370518526322413858166224308447994755678000450048478449804675758391038260906090273055968727811442746761103494910498558416612893696396923085579251253061972497661284036449415848830119332455772371768660992162966137004428792038451632707521069450138759981734269980536225038470755615531506685222463391774129178538648875384973165201497150954918639114307673212660282810737136686239568661116308814951130631265385253226396537873560918735408125321440065489848884969317463342966849971134931479661531360181830982042302233849066274962848059303547855938321805711850887809039520240628768014903564400356333238582652700290437893886217388296532239292823979415467227870027351280738204930169537962342817755564737388935065117986341935886203805228351805524816757571608924896234548951509225738434912286833518534927867466454111358109254093163883333820248907166233477706831571298328010843143845435128755816832290274581955711767313529445691454849139288085040249954486484970292507859230701445020648435776815547683553561597649824309250161714392891941302172054307349298219363505672410137353898200413003116768410231940005250254007104762591004131162679649413479227242197009977095072359502286504403998183366488461962551307278866462398521996275316392768605208826719097387273659036490387271222756394474145253241109312951610559833888935202408445453594718934779489186567150825376225515628339732106001207321299756469828227137951026532423589175544107119038214477866124121375209527835760174406093351551947610961192305738508719803796448546994864779882979173859247165343822632319882071843699659831843148775938526914668705088639265234712815725580009858886105307569087774670141939723752715675605158977725566588785992075247588136809494391871951658751717538040965833666491709028105337736065176564186613117270192383037717567874909752469851994021989423841701380547065461745435680666083859254451344962439552862220778401868296843997896836423074412636375449486919743592559721022927810298656106050555409508482118886962108229555659194190201186621908611873298526437574030614755394727017359356694809706846835722474369637779212495918433653888886544552197389703644713691981328408013688650356697710909135041461960384005034681218882788077830826333369527237691495625544245001058205427335959453975175396326319783765411242349900883956931275174064144782998261229780189651381219373745747315754655415543792660558771437202883643175909332419389822957277183692312927495417011624787689078372019049736343704045486400232285403551888948705543972340598418012248770561325465517938867147401480610905393161705047399140433009893096851907039141738608189919540610302915387576256835424352102465092662489238173889342551470820220910175674416321889057548201457579700855756552387545297752668250816200135852999232280664692242696448813197738908922146965438407918033007984245199496384322281266420041330494446155301248980968219802242968320252897218389506299895507641882767937661260920377678342737736320920104093552342657905584201734066343576696097253719812194585007659770470985698853482694713333601679400316897232267607993486133326642316017069383904506533397052758267951627308149296549338406455822621291556306969620430150747857512092994481067661069384416955798251258569255455899322027381517584038513196188529026377953590654099058918726549440470321914191444229737291920916804425670309836618168705542655864195964110342413581545111859130968622681548028955855615219124975043260942916587095332905213492479164994326588722935404689223538944003488993352380600459797684437370119374771271673320266209522529719416423719675461430666289445238585682990952607789237511102848021676943934539140851507552453850487256988733221291746154639801561316732714805093867315819158550143912568070520594935638197646367828414258196991740485001828259140318944482359013579209404920449866996145930690399146822972497598219356587459140515949614064393108520320205741752728509300006514496408523750234167686274729040724749886541930314180608507430490244041786099010323276461219358491635680315342088342743536209915147217382932839069143662933939846462684219979216319900723896988826944099607972053015781614267580136446639905527440076094090761224685408642343731988985383522329144004931903157182169252316632501227077446614732046120993812673553677935095865267342959732252917221753027941131843210712430331305750898797000109329350210208101956706655135751155080638215653215989184988835354881615870498562638694095877638894688762219942840050549661757994547850660195755631120161633529085953934643694049812096286088071630642581368165295462691419694733363115075409515474924287457568742297620475494436320747329749429268067362771748722924424972094987839964778135541280603461973078997574426578541803446715210368976292544642631344142599570534413219806896621560145334090353362314232388151951939026594022123967681394713264046680119216851126329952333642830332898795477509986845665344781441399364406109389084656149763042960225496286914379542114385954085869321327445203262613240601581547109700599347297751974077505437240550836023288754418478473600213705860789386109481211789931801393501461348792793263290714240251250679628321471135711891462810870493936958363655947546182507467954998849211485510516324641657811114659361191014922647666872463283972839143608667932175661263483671272525844312801787308722681283651601669320338214449810025963065376068416756032582852594363360856922262186637784630286908136658977247082327215541075023195288060260965061554972360619277459335520452205662947417307417732643829223091007682721846219730280155542931008397280228696774740011553697522352826843365274841753044065772963542135906726549275434438000289226913411214869244885898823954733066098766024134349694190798681439983932099331051502963492875237090430376327802681861133776086878774848219458512943132465582009311771879609790841939015453284305581939079662500150378331559641802907248676229102997199153304934122386091235838929655953446049163179533383155195536493680530595082520620099332795492021720846770858897646052592857170928621153750976267344384788957309345312396459126714454546785128461234151183657156026069711238039847744296516712165694448915582268189382027851781441113432430951474358613511119358698159715428409725442563301448437194111777839557648810088089128177201198488389966465021912816620018023035790100635736511980437847983334567659312838531395138020578491697741031009253777857862708431358131863017464283163053300446282076359291113039369945855298352143379003635920478711046032349613683077375886197357429742226111840115565117682796436631920652716400860464001688132270153932701425451835041649582923127708851257617194570821039939556705744123449600170892847067161048123982558290458984720782437788003177135611185356116337700395072931415719947624844599551646957002805402799579598208002798349604387969788861086259275135730805897463600089027112706327475450488457852288319426367795819946704501077714374524138668256569611615060163631486164745212140405826376596797370320387757914408421681732525155821503165744178954825962633664831075026533650611397048493720962607831712141019321952737604448188397366074717094471954069473369538194415350981467346703783072422036503673894837786001768304173791981371754567407845889103812414817777336300397826502849869214323722584683529125387011498333392009493591249670897517069336486490687461450271728759507686154628179177695386686181539237345798411158769316245070042592757092131770792583002439811041024229851430890532712393397799802171687020322408307340707797052569573995772576644275112371580354518113232531850184845783234666478992974232899686324646922878443783421257736757763777786038611938108786956283710058522542481314918867254103489596959110567281999989830277232308053382423918534501565349567396267980760421901564993228743594292989308557975902850249620793716960922616749487435368533616074179460519977289636247592110088876967831819482967766086917762434895979249039364265676194380126927872047820396552420244197888116989031135809629087071400379971095044851355453053642352480740192881601729569098810268506119895730693109840732833946180890039962092406859553305997871610496125563717422574339186037719583669910070588442996898754668743281762193927257813272173750112548840333532649593980810733602855315484937454906342848871074783833586967187634080159517169788078286343385031390182610022445987639251264853004233852701403460067350115240546110295392700978299251475653456119215371510395451212431180868806545335714309771823630590569788219090639863744270629026337697502786267620290252976478448775678263758357617336841885741028832767419535232814305766255796450098044673289016210863770488581769831322450974010929315322477787109243686808773419431423797018474912959725677619213939523349227689961704833196641776598684034828292400777085706301513431106363126474446038985607771290600947063214278003404338960376466717629111024995801308736944329241567156634918903920908469419921625242573778854073370164306320543616610323547925726473954510825368159015079933538998909342148138348217437641968190127517796985940951399093116910127948756305831971421072071277060818032777902976434629691067877715385392520131956496500982013516343033934153654829539190206064008090753654143527833426063469622935269263989560965027773606003484010855998985664011212863344953225190363089349556010586435891011277801769016272001913834522374826589225053326136276073442023251711432108557952207288270423186980173851092717928975541899816623354103441854160154030440677312424772596035190551090525877063554618882573718735310791472710018344719176710977008571323393590063344398220402794647697242874630319400726589093266511655645866146212763124164590164139015366910552361168920303784596603899691456465462418462041580590990760279523331269930380607888574205232419408411781591615478132327530072153634762536250800930921916227130166568762751970270750628100004003525731361281880557048613333681261199942913889551823320265184631287555870781480424876234002363935577293363479498469991336190058140532415062556398174338267908737655606397683663592903336732327707088511875681635474566735110666035886975207347512523788072634223926169250068252515612512773287356879670655014025724282570591201012990477273870064761761289768720969883631986669442496213454255929396502949405236130444893832729063506550859128837140249209929060798914943885300511666061726757983234161528689436982405897061593619072052427442550342327805339148052015938486023080510213982312633090893596246646614515781346521438735639297922046759574681139409332818296684895697578297733147255325385682571074677478802134656176813127524622101331284362352082488388949982111201942819321998701473341513490145443567949149734525862850001012333965600253904490350710770932166087223109900672316506111546314644611226197321803196730850097661738212899068904406055525726335436172560477701253286764585610331413871486283230199959063289820530973550872830772353642159117045722279956107514170379952427856905668241644823910140208492782524711095986553749061710415455384750083968804589321992646017383553942840876243365708343099983532530378231664492734964176787928820757689106948169465512528744435073972799337814862587464618996005892818812393061155393125465351692924946595906556568759850420744083662183512021840792823397724634428565034893907221413556923395065862329567055299503256324828046527701115465952347499519977946553887054193544508377000676589733332828744802318181636612802050527523668703145397920827178337482462869146517184224787641644819749422025545502069359989886702627529749410234459809826661110260139683474080530417664422552461495504148245635769058685765937821820207923029859055661698523623350838895142884281223606661028601377266306032518918142995187431489785423145862780947820190854023548592946713914057026341973854762154116557472373933340432052009924031350262807174185589711641554888747136894266421303260958819909118957858718567682779197854951109523800928835737007135512891564916508546770186255378793563009232378126919860448213435355665889846441487303325605687032200300472259726211341114448941830231034851960187935848908300347291894209734822162996662226018969775325416361913879790570345709344137441785131935607041602351722908055409903687202098657766124289528944472849712631113969787671556499526638593649858063748979213178047221369529861787479877859358659283151410801431985000310119945229676045649322114349157194939674176889618255704688143984359955128321698295614536281729143974185625304698771070721329741008660676067200459449411551403703752051297686168913939751329827963738634247526432269181234757237696784763940654233580568883409112344145793471693272512557828562839264742238660776884818570536954908294866301023546300505128050441028129924161750914001842969533324015726920068283281251628777588868413755637366769113795706656749443384413785528385729566884556481495225653117112372166933374714436854331465507786828748247264801794922622470065883645208889823262044600037226639664898964557637761532772189913400597362139141532119652016555435563297334986505589100257633858472588009481696937459701987950308336523392339552559159476809013722791484595619025544750722129433781078053493475908614447857441703110182026596247056592951183510428527456072165936955643307379003558561352463777103248685702633391588731312843534080372059986998851804002344580493428224726589506754532367228866884496054406775790473037778340226571868093108181345456809242373729452136918943564438264001510404987304659232259687638904020210993721363360700459497247114832035109817412711853121271758845130083251992347892194603855816086219159428036892877733626926429312091175768917685729230400668215132196476285782400374766980111499922831648745091047640419868261054176738881348720292538689010411472800626024216727084773846638970250552968053760698137345400208519916327382626931387387126349893369524812511669742679197291391081945283335260122255057768014553409493483692573866835808672622177728699687681015375163015483474065179126024854101956196290847789201994220868697413168379119110262182957642073869773720891992002510879844365575388061948824252308398186896276338128088534186340501444532548803011793167088531630880537088588970396857988076513184476472935212317391066220005015967237783154565798836132585083911499341631573249375298584398539375189043431483976335012214963586261615040190306596056868756927673570209543426006643042827348609599413357798184333844734539653031463048637850732923416606717156867179769319997275099747274125253459268907884113278611297985164951238413846163883255119031056719649462481362381646787281426935208540785668156200639130157458473215810286146521406628918843448971972404048594627359279207491232490572053506856448195903704013597900326943673707243771242971749284423232388991884364217879763798001654019923682855489587287691388056979844193316201806469298615835337929615123641658013521694384854038190776742961290470062043574063777165225302744305076986408842949762469077912906972334012629836776734969714969460868337658008039026659473062371782308980326356760900117158130922024303120391556317313473759539133193642282491099356692259605820460682762937692637433407380850342865777666945632177419842582938489272329727235023088024843501651732653346846654932189183693667076463252698765262640713288629777882066906796144042174256119554077596934376814124940098939744715046572745891280228723270292608932500860602729961154069886147993413159333091885117406869351699324444792742360835093695919467083990864383520453168363126320805831234279516997564977698453735731167901159632285889844347493419073038793179063972210461018148575635889336324776056827390700687444688677004757928142941645046505697562193947640180021341226752479546212188311004018698492863466754027034544899514478233025408505161814542880749778148285946594625758612881938830195957902116501435516037191711445516947778664194149494573384720621338678064993953081358229901070041563997125904675694528669326158752791448644601282866023749864741673122708095556000730651040236919603120702411909706657003442049578350160945753253789890747077360742490300333848075822173558854852503345226505008040342156975603373095518362046825535214075496809882307365641200871326577355397247865495223007600068536055010710329048507037039146408335137246590715162046721834893024004075273324823886826247371348976173252982070724907224199760523566055684512601743474345223033049434665959193529388152046025180016108779070698872920138989970682987128628046025115465143335464008410433674287458181778731207242803534606384451730934602171241157828826649684738746732409717111490655295825074902352883513904940983339948967959103757091838080085884797840812252460941645732034419361790161903268130544139370843305203912488084873236319854211576214743414160701478016832078447882509444690199223936474865458854063922204483538686641872929252827907286677964099773158324647047211624493074874184241349007128547623390986149034999157299042079943498989659781307293824836464896349657607485584640008432767737242767874115581837681809973783598477140840165258829197060455146577397979495763154355556386280496202644842879988885098710597724075279509275334033867293903879525136829266562675863621232703871373700954300828703479801386472504051587387482643623278724171984348668312441157164066687772455946469207103366535232820899329254989084308904021559740855003964375899191492291454959736707402935240910336942914789090265549089114062199986398010490381748627659040433002965057159509005984364178318117101834780179766349702800315735272856159143017024830668045006728016156478371469126073172221601066969542878128857836204144297759816116612096619394612423031835578014921922639876623341361357009074498405743802067098595608034554019563047973173036991031555077671047176440749198283594030056793982634045089274854943434719036128922954668574850019573086420533797167895232917961622636001802257132432803189013103389453646610732239097518167126557492160771278004342405352232984870268112691737539192021730686521173797316245439045354955343657765259936036762108530452741361383708641583545653313690976015237884052816671998585615167944371969914294603903313883422015737354332049015661362542793910602749757852116824711025417013105298276558348925075830736808605578636423536648383718247650489707317690615960941243137217613039091487070378764493742221006846166250135699752145897540203330315814771013499586096118274605701352270429793662277768135252046582218253284595615494335289919503644345740317625541615993199993983741633430621492973177524596285057322763508276034444601516550514266104864285438737363668845630232058601153571649886735181786954191241065688743825947961382933045769648016513278481134233502404518059630536039160991984519717808743770936939694036021948264235730168004736056755795757352530591303513342676325543092459337454547572431547917325262833179332894396945753289268172331330937364306668417589510070198270939239262507945217550451957509403057968537923314197855387124341769667557419836521010507915927365949163194918311264750871931245461247388845297720649035137295368580271303826249256067661775801270344160719275568004179093897882702242001208716988361798540267992637147381463063559479481560510591757637022311003775161623889392995225535838710300412688584524117928336111714091922061602126718311936688184301010613086507223161613536372212518978182773898473400629389996557253903267562521712485502429221983849345769153160588000499198576580943483205021100730520125288269382845314126408991719299882492168269473353773319815477120315353958215071319929570416524177203173791786514577920443584278591569384891778750500837190871964014023508788777108380621987725956715907126373095888736588715746724566650579475313113894824969158592269410220522465330249655763535436722967255722053586935884870878154914876832309124929683755282740542657674984609082692471006575488522516470065500391812080608910204477721657363530422070255520688610561713471105541142062449202016162125359894372241400592389724048479417989519476998073864034299092856921295724281963674361393717834497006945218536310457685093782729729916206907436050587830260609442991509627666449595790599078560482236956856114767205652894315622228523124909350113857097479509341930249196779414587882752778120290938145955091371124914595236724297309453308711693232850657489008735004867192437532745149460126602080929212668352037557301440894352414031764229450094761754872291305376363555387090570048870630666574253981464711297493688714014198037078020372028705607730148885696595194065657064021085151054033979051879724766495957891221576541309991793575326612741311899882895782579999323214573150648444884669476201494975218569872717997050302921226507991080708548692641291826818329954789513320383311496388816803244519116322021821848420817951569584135042171225674416215522868618725346541016557021983379467880674378926604991525114681332092312107871792943609837209202712917193941689082837463081408532460146392993748716638677582386859052248963208170137030968126436066702894487910342078008336098301966891979340395733902510717491575481660708266010360590902971170083091937860778253236757845091103434477841436611997983676316564577873018215012567688311253502102352377565890011005169139210760270104695001154200523312186245970331066807872670755177873187687879029596259250638292741864738111776849827605191456481324752468459806149689683931760510569411842631347539463382632868877984431995036216371332045727256100450134109888505831323312914284610639421833716487760148772041739146638627509323505249982237644472783174553991036561784349755826850049291833453602486541939960787130224064553492877716335882740980082612332051511059573202968089448759829464868956671325871366124128748639650755937856099503708607770630515904922118240873781400471342424635846893646694903904283689862749004123078024441202437114046131448767966574627742192722261640136570270500800864142027855834772310606557988236454260925977876181425719049715777928766133236841302330617987717024210851858998117154486685828688729375440218278179956611330659744552352538272691702017783959502704832916788528446501650068053459403409510753438887248288838101396753572393957179253975307423863153839871681181458530700790086708602980865573436139574465343501569534091742234373081081396566482638505923353632208990441855669194173196149005560729789261548276893743709705769364409091159875007122986179979117704989412809125867933740254104695095866532190436249338085018960322730676301009209075311058824379507795339160697968962099677903894170185142035333931321446640058514124734727870253630442474992682367313876327859912295526316824049125269688142872070725112282363408181965107270047790649298419069703429170673282302385923338312693615887929241823198896614638696031393740224038851376588720223904573190228706872369372267940731924197146304015199713282071795282618033863222835819181544075039853543658528857479207404990692219576496729994389029747562756080688694944203878337341100175670011934568328471316709748311166196750780277229887549429222432561982819000935940924622046307779809557401241004329065426553660718575197268123588280237972099321536105527118365608423238061557490797442408663835245921287479763706085795601709323629035981979580967603507901002346819462864139547338131302110950202440035951179372481380651093117972208379930465479674643654635597077896224102113244415942762480298702496622756317997576074323494807062047387064739143946546761063121331089417750573674735558099523240832939463779478180096875242843888323625393968495921998430490896364099242287406084223763399176566288875912820495674721917373479589857703702519993175698525980450081083519372930290853012127473838403873593679954048048441166224033802080165327968457683885247156051840070523069620976280576859734658942905876440428098928363534198962293500115192892162743935714736091207724014192954827065629881109799232387604101009547013498618262301467695136745239069294475260850451860667373025672597415067833026806341803471416813534232172870293074527993183843179521685786225672995972496719132945924034612891654859866884925261492461874738015438648762074341861891051405316886605879380017033750635135665034816155618170429270163544587434086888949963241463310223144429700592843940164755646121826675322958209003233165702320328214783241468324387922620287426566937697688376913892809752917379533541256693917499020635053426081861494467645508859941966151359246840991367307069397181581419188428611921291270722159046733859282660515939573843047241948881604050207235346167483589904037692513073646069909068827572702312807093120765178406310438748205778127778433618339419459706359883913743445873378788437248891431664894436429139528987051934375366361007405743076442305957306294171509010651150539662914812996718849009700981041419650658265451985132724348686105786726386369801387293727191372043180165805530702941906058910402955607598766807355257693246692502607159448351277815276052962886607730961099866051852884367694036909645295133038146927604178114882657680488915659686817377503241113253375470365735690223469883854000205574908952340351575240702924224001427383089158744989333053413434642181519645782469861563663417927652500905118664444165409443319058833245103088883187347166127343123497711252494246490773014795606758502863337349092739554457164795281893963746657930814175123431996792257503626138524523668765228963630838518099383227618167140824327403883375472481799795293344640942333679552383115650990359544202713498190880427823111250272609525086901089788862051078493423892333869151785413858507770604545224202560521764969650929365082709725621762354267414025261179723061107689146243303158963737292497301568080777856353590482570544107540080858007577594478399790846733368524445333046838466659723236988735941537812044983288591460205523209419113035858758217552023482006065161442414197984951588854268138630548357981940865890242790706105951881241604087102848327822602948926767395813789898251723906289408979076816360801329371887754023731841607737881853374841135648089906220140725724470619979992887797463603489868004696562960359456281493149513237429459279818549228384564944594439047873406354256575551312113250803743745935682456887372283940270939054279353623818232895890176162167065181427555429026806976861610665064431774772567767553718617509553479714552751184787088278816187168846344620207203983002579980623148469854489223795935461009311802817371836724514164508757538098043038491312304285361859042501280332041114927864170266514894046862230203298770124187165592478864630871096891485918865015818867106299405081649884558073677357966864757782176802408360869783632206157225489073324980741934048157085217520186650366072966640825271824708709851901277356616635052207204764452058732772697790868046222562281244517247861603590959206820872868718144441901062793388285108113734972878394583804043149057891102724495581254943589339642179904679738278562110458140944935521353035047814612346623491732844374741273354525178404555958938745998320029946310217046728904877529713554962580262423409702376892813662224132947541937701708230795993078684299481395884931462902765767516822570185116076681670992853742765284673967734327374039318978150442766349947672548354608647153037390408595683088317679663428205464846566148429793310195192789102670057598302170708607151339796008526360502618288338298953086136601319537402138107089552277155889847740226926843931261117892797494821552865302102040610122628822289627845149715287306712979137501409673063240555033797489491392748793529643934526596733822462971550638792643116800321752723891231417926337833340647074566684094817950568324712502844022652622303152547741634611882139879253024595414223149080952151941541771501879531475307099859977745520476535813154805425984576028927975350554661038457339254840616783523149946008974855591631982864197513574078283376450857919708076460033645818532422545338763826925409984254411061540527353083205583339457069066547659927452279909530312446367837564613359362314820713080078329964734577694865409843031256307780467988825761917013793649387172704635914385664195889485592685475662189595721191216901630457984784826055221681996883814637930939252291198889590570873663974886786638151717372297365943074275494317692673750580524108551367185115063558780135028517999155847491858394380469558123753415021078542853935275291187894414456799859988198943107960740154176978071603361439631614673889536488535358540417494264380355883232326154779063279350757234704165295077285175881808871738625751041306639913412912788514092961604549725388391704806470262495914026421825792068282072744292585324320952151425166190298402011846861433702569936394894863496710784105334858524705018956756451685168063718660626605043124902991756395931591962848453356910226769891969516191139631209764960328298439217904695664891172789848873228008817278277642499407938467478992348174959807615363079452027362863940697152715079985248942233819737675474421789162895929867999782978145466194618855598751586830462909887877499197033438566570310876604303830294185823540161744914574324656793530160541370490571857345410429044669230110683790462931971556121481401633513420059672026066591288870345442717360559208926073992094436612503210081275862179724782696846187638808153637899789664658429617483116851443057907718488315374552757438422382771141384938606054971062833025680915799695284199839375207973789833942234050465104693154190510295142576907307203512636828161715334292145898283327652953404490095709589855249230069304039127046036086253530679729146492374103436658641637705169896087518605235303929938812927677429405669169010853233776228469048547714878060918960771955221908861160259503193913425516325100333467873350855163370762791968271451335900333540434183159761614154824399380692492841985070817656165472713145495703698173997522043221339522337953330909627560910314338197526929826644262737669827557393454729817873960543513037751647888576929712059589642195400429035779692295769264874126482568694588574729947156446962522497881623452152595627169407998159500693883711244341254780878472910801239268360283865656324855527622424037763725489996473407504759177975818554426751884960364172262651348857363205857983397333194267976511154981077860360151009582732001515115621031431560627429172827353854445939308295852567636735450095750262155563738658654618883809815863058558963707982316923997066099961762796701694287892102149624371549494148996170276999305616973380480355046641102001180821864102057855242676665630952169467882462861051612023260985918563835892276582271588233421145855374515560894838462223620582243227381255089107951917168833049128251609577225082471164330734304616312580163641224694229113008683944113850343248673255444118000459134871327867602610663407853107333288276542476747535038689714249432520441222580847594616200339636202578656166036715181043424115816391891612565500044165947625031137451345465426305565486177246599915098387023592191376082083395384769141148023945171841791517348521975638763138971552135825042022516447990945732679273566961208214667008483957123099777686776343933798327465167579110208138906506457423848296899533245978445819510114375576377834550994225279673085721126762634467049951698071623731327101913649493273143726195475700702639213944776205782149186590891386358345924943022123900100095349074465268013206074638042733861564191108291357650295405372584296479238856970952569857383155747950282001266015859443206347408012097086129553411598638359290521081345915630726398741888240759888971348364262084427223913659564278043145653913389125479657052590716172300100639088117560587870916399331793560965317414433034605196308269114568102340961875759278864647075951244888435931503396591685324190332531585737669009355785121598660765377574145084981482431020586571085587074763907370756567412856270481612704828104987197059527867946981845684145748261738756067518775304299701579149850088560825477868861287176432301959189357623251879870584252251947293760529989470802829483597370776395239549512799490824435269438170550501581031234219044178410993488535366622493298781214753991793069889892516487674304530538333531122938087096996580226584111572895364373787544278781292316615838726316408020623491113400925572568409137042639430449414306473706964891783230588508449346533504802102097293749473607385202291351562146572558921831845993868463846235550478692642334321666667241521056087820618269957258478294688747497304757732080267156789800962537267155075707594920267282715962909227179010782395348316738519198036647455080192899217245863117060621324448705219119765043278087827240468021039856166283009284442459790174014437405547811959987993722956136329490248056720270562342192468207040300025612989186887820276932712485550493891774891587142621661587070632611632840328300761819836105565609215199238837567919900069871569689255208534339030697041063687302659428803398061317578044025608613188549305627478496331522406422162928432277134240352438377895111120897749736156188590720336589414018781285912646673545376813988539375466709299231371824081909243074391252772723569722259684197615435786026960430920262383065704132850621570470117317448476005672246653220003960876906170521565794273336260323710910239283175242824148966902420166896873121866812994078397219722539131646905878281150951351210054472566341376488752515654831478279568011693662898733209272393564161069291471224940781650143606435805600244961359390046134650934646363888168072752333813899234271523237481016298613442561173997901993947329573597961079106150981602211140454316405122700044771493622295218189065743634789842268313225043112015969188372028231192271175664559008400410686150895490321330122432985578508615141993170493028542085735033332567675485694735399229722615998998462500977637051072543194311922264164059060669449949457475081575813769923652511978436553331489872243016702926431741407139771634798967512615029022508387246498322447242003949264494490335656942252360758480765169121057021318692652759631341540982072124166814469128780172482081200515518647724523611904678656331542139944259091747859353152387350238662304757238502776567214294752470717117152891405795585002735339248982452794206822305868008355900809150493008899673716126372208024148477295615379226167534768892461009938270835371989060343183832799439371087384200926853900361071211368237556773304691920765665620468032378676327470212047087122276459145814125812322570473021034570502093413493573967175754151160737610744794125113552221387259523865267811152240525783930817477278015541767973114490697567400047830203380765008490074634893349813713191107772238712151711783030860321593120551838882078469271659448786216614509863972268724949235063075516327985195799169077978929020380049235916458011713171236740983187033286832638194524016628496890913097301811960755395010908613677559059440665698409149421759684363478931260945311780043852940834968606326234715294497029620024974480000048217055229311189274910064963164783972016305485234117546258662145927994800471387452024643386893022047544649407712012954540540098284567795690740233867653686794915342430595334702416197299826936872463101110435150805383184831776142168561316636653707415667562196217711998270067189980815912698391050586296122109512975491554318020240572762558964935752801866772767301877498999090155863687556322284260359699056313638164837930872297732665621425536883759210203004168748147625019149131095142997800904438649740167173390354256368243306567596132670336615714151237668124526006928751592861648372131310540889308896972317632221460351866398976668891674815206299873761096680192874258470927988141903838160961669760633150434365401405511299773482048320456646028962607735684935241665396830722414649297505655241834052548588428611683962547620578453287304015435123297377578445632096964470978041338427263299999768833825374819459134148926190012481048851873924356968085204535300740757396000421994650462934180009180680210324065257908619343765404052831870990494682042973968189680054265040641247949575217335313207137899521695978505095161905999496782277705916991386176078975173513504460097143915374394365085251027930723020710025066322282694927238456956946544591356890248380602813372505605020153423340994804961121790594241845810437958765020128942721100661919412340639241872777078846635819284501894491890061764327582491852225987973499244950744610398747295360697618796948646842439801315179611517875776001936691793211833716667902705748878464641295422165919091231576511931307985927235796086533238523726213933569057966086856946378074740726506329776242605061937329365839224401493428279634135632110577536155116314557931783961786631664044460172507428637508979766784187991269261072577030773197214282500623875867380676780267865806969918506915938329548176385043964593430616893324640635865714523306947767898076522440646100729607784109211884624444589652715278574525592249297614265320101498136683686346026056818578792816220603647687009315226020458109665253622089846582812445835808232649306320785053438601022938042902018328637005160748745321131185734957078361319286397583445638879280303275839309458755830275457121925736977908524469377500614271414678702582822097788908468530816616810120522353612587791701494751105239227099333588158019015883571248751436190347451974799808681296698003966156154225104535678934121021475791682364531232116521111535583637582051850867113740851669395659411267903123259922722324299057228477504926767980423848625700603063376430751172516248838670673789382383821720227436325816534290869105811210864959353900645076450265226931978512641432797192200237783262443036743963313895182072014003387798553751821868508077111181469238391635139483704046503721457162627318634040641465241953538004453978869162039229238043116521324340104039727277341023911665306598895840412250435527824985535957205197632906785311311968644784976313814820110639673326337591573878529924973150056835508691084864207017986308718682891434792312025599508755869446509125205316618046905200274895981061266476570508090476663207954322404242260770666178307585818111721381101298184883429483425400483557416082851803847256387470626291565702110971479535555722274164652068186005749215314053228000004762268161114999490022076762693235668940171433781540161068575092600848105814271565186013376528686226290780580528042093398403996259315578272206114031079674022873641578778717381173023853707746475489225191081737923250070888241443723298213549816806242827699932472182499561825225050922190494315397361370326401386575118653284224446771431159983402468703337998285629545592733728556120996799304947152123939510648566735460553558790455498686433010425719627307643509815864834345425290943025637635580340923249860220676179401697843785087357938112365810251665728318126315004145847087982355773255608848852456584572234858896945434766929858362813821158747578155160717103772983364797534319224911346432074890077384682876357300675290143980188367980988916840206180610561635674052681251821330916610817110243814975583370954688811022346093306213590253338688642892713189101553967160710275824043249261768036752037973721994028352684051874445097537137411382000777416507436938014084645263722861994423006864752070321364690307057900863774063428665357538701348901088933082844208813697822003802122247829607264236502791807754080588323442352268212056605926150678699934123923953598362704102376750524033651297757717885262733722903369987396746011139277848329390154877191462912709725067826385034295337869092860317342289331293347213243693344650603278108705607520357210531610682106715184316000951950109696350940438223267090729731592743833338405199098295675602146271696558651058200537821933272353662715541905343758812754578120583411956351812771489480976883975372418594066860004988203640978679740569932225480455254842290946186919669640258248514095318144891797543583732197491511103102544063985404566060409426571337373882128465514795301470109940663583350462854489190645349854253406928948564437123063208026929744228991271638228537063740723347638121598949746998260303648573014871946733582069115580318956291921995165719600753461755495912633721613264850522585054026353803558669797340905381865179413526390113203424307711961761659317635789123316145342005963650654238657534318192241321128685653873197646887784220907641026010922218116694214671495604160918210363216156833539592697319570161776942219201969556326533972956971355017214280898239223564212390519742996171020194764194483317366628343747756910793505723593471129960767900719727132410809976081771599494936516412169457771576028733739060971679065012249407498927166993095080467782850116356609821960796638758310167285955137417740718103509917874088719347687271334192677940174064566758286690866659518161021830154761280694285225924977361489811520347654066593475330655433306462578038906006716634890182360405786141093953361424346116466759716257040889269664707997234384821824341068564566215524460165335029279249515223068386099243734283994023145499253239837632408053107736555790740171725631698946611294973192345989456189430621566608279288956201997460041715347412330563962007859959642559503901176673927580333710731196132599922275582573618084281119726501998929669457767858793456020434250867332273958293694282852864486714623070008168408408541373091436913655610197818947842152594752926552729249411757112974421537469776690417897756939452862192412042487192881538156493940026901175450654986247917152993885084964587486590754529656962657707189573129001208239296248027482225731028062409084131280648193704329601156364397476418439338597511940276871729950197188854310652719758360487121651184002760053118079059844712059523434254493485201675158595209949120637491603908779615997169616002126566581687909962998914470984470710941378101926053423672768213026131984896605366125012396350305203556957756047495121247581003428007887071939515450728456102459374562946098101278151354419217491848028269567090893699478665267706172134195008487208143066032390260860553811319705849312276649230899703104854968825643301923235300279575493435555764692735959365783588605521416342744473003320392840082870894598121664814546370912244810682900429433771465733505156413559486627737168828888169772092187659510370671511413950195311423040958943738226548273804970030836768454155455174593978828394684238561537837012850553822017053545709969441552350205177151049079233068954524190439260407005241595451971318233438590939993681130144720380445615531003849591389716014358906386095421016005456048330522963267949896063880377384300101579378816564747472435859408685000044757973895889265051480173372625390223197336528276664030418579097462444370531125371102739412362144822618271973035310946604914431287051600292570911512641459655152266187696901067560781892169571614814010519433542218123604386602040123144627396433986953964362503449962789543085860351527415051483339561984562813377801767193994541744494305697627350050231257005360626186840644281469741894118462215596200691638888153829043399232250605991570460307768231528334655330155936914301482416492789133941944001292997073250205878959554405504963390166093992307300493675546395040350253799395367711146286097448215259050836779587620306247211984464427047535416757440807882185233424346067526490131128888219927254062953528244168346186713221427621062424677317686705959931752295640681938525570245718024329470237814672443917130795766912827063774982646488086712296555390249947300368816789123758889604818278940973038024420388977054216770482802916029801287497688260214905271802174652665825775920774294990426015019099957779437388085596803380302609382532166284134626761240757793523066377585075999463383194467441381980638933138912266736468953895728522921461457619020605888307041964643364258288200041002847408337029328262891568836080151944491754472518159709667652763749059185374553780041813337931935703232077155262138461763489957481300465601844392887685026032296910195857721296518324688811849258972519388758807030748685554586534734379227670665559873114872071390252261741732705443799640990491817121700919841475228802129981823594342190213311557130796972907589296498650284446454089696875392446195707912714903453489006943671199315071405156208238473868217289317997080562638872952589213123710544052738498056520493312727678053216080455045832052785413918375688730901066877304104655007476733381205543193863264213770708224466972652281097347724684185898476323659016078272778284230269267532672954576993425239642655378738717455867384936734677365724263276273675280846049894321899252449557095882597811017266123473056023274714997371539506027644355773239129686893574088446232572340569588547495972916052381177145116889272002855310541551385485985131626665653864501199764438508793937716172980477981448540230710064230761853735624770528834891727796859090615024964804233107438704183326488002335586946538848797086701029294534850074364011704527573294401059862526147371233748164101092615913709552555459482173057327132002669684921840884524097817311695670403242224333031405432791169420449338088145449567891296958104511429099706852753441018185299353899167731156908984763394820528085885463199150299938497352662914716166283166061187683469552431345377977900237681727278947761601256050805722756100738210658680178190668857737954466914008112607207861202293612186368298707395933707637013972053359655355503290121181053194583647505311907018493263404862930629975056116899613435232128259002710397698960366148267629608718117791875521476953335040868083426982351904226638692395413762311494508767839327250194762109239265767420865732742794900802531342693564990282724076730918129355905491575491253998562238592654418792505863576052858638762105300066433890044388821605724466531262085228245858948571142588005430750213282498083712194466267600751656019797060091350656112312475732040070120838492130914505228276252668566597028725719392157083992166831377126150548500479263700691656882043897653071432330568526403175611642810239290983087137602670441438170030232354324879729604767344931993011639287070538432092858387555443445655394412367736077740532583720347698494728996516653784951572806197673729972813301009417018072552656834940670746630315147013216583166384397357552575159344886134108447270293446318738591351919811196737903889802063861112323499252526638778015151036017777308266426643244752345576458922021525563850545780638701220346406256887599363159894988133070418382994946749308380233050493762717060009572548555197018251255401918001233809381668420840031370750107072130167965390195912289514434467554856584806440876543213818402306754412698932428952502031424158241072276504725061078097884586321540328831851680944581342173222490309427578387619772044189817397688850134809081253107817872818914762167698216791054199685990363833414972628513139458579555348451831080385687890939563635512889312936885742088447725373253299577182638511711448895767833870194611697360844389063529839331081804456420003225711750760442297669882353917857848085309393787940832578508001550461105950453060019310877799606817782803626222844176003679696819783603425742994141999306302979840270870536876264871290646054671315572477718550569927625308799820316287981168905274812885406596430374114068562212750298688284243331065550770754059309182221851890308916355599934648566685199275453561721168436291513744948202447188204585762220688368801740316654501733232974217102408278884624731676142525496073818010099422539214740739748916340871006640089847269231483775104265470246088250412997033695635788683726798288304677190721564858552129901479979278599893876377747721935642940838334770346259800915702809741319475882547570743050572973416419701625763474093598947066478097184552871745843207005354448264471401135334286294689828738885217794437667930513766902533914519045430884784715635871950625774381731854060076227702907632800665179295873816544514808057122661542147794114074091524406171277792948713782190051638843987817209631834070670264586905967527063679071608545679487555827948147210312506869080783097142911179159324487169397200815449537639959137163290543883569788932360905256804681953896283830245431015470347388422180451403132645449348975239387861594069811795490706218516837211423701191816272201470751579230028542308946723903410785311864439001343040628337072856544632979817345702727256817827325817352319262376098992734258535552194860701581992259930658580708424834228166355735757026804147105086720229888050237701992391550754703512889740728608016135142845963592902488823768133868957540581635657350258247897987416597528381213113995245638934758137370567647417667438876531790045886094012779546045304958971986796300176099211857909477971154698456274096926475580084609068709607850518749449165654937158412706108377640484837257193208586972340168313810261357928608019370835247830636215910379136755994204120166710874961142905965391330651884305409242251428382748581762473224770902477841757095790460459696879594115841659730861740988172570016017365387781760051794702596346102916027360238805854632221181458236503701347617650600106558140639874599268367376864561832228874459797922650295373789893221995878810124010494337231302999347696011154356246870787251743196868713844697051821126861681471825234509317496436630811394796332969911986480691953769718766064701035909351093850534275346801178477234110383570118496216549992091614795853448380312144137273528129580867856836119681973032516267170352680519049816852994817018785795868543448922033018549038242433652086027999198430230669566073103042561474387081580481236016190108583975835964692792948997717068338753622076057714226485784194709305557574055204312147044951825182046024190334221525513347810994565259137695210344259841597304658092643214633382591255123872765941870988084619194380805246004120340834254312221545449285629085509105528999172270567531195678009722545798155749422774327242332916417828685766071538689309100169367748558272556733631550404598002940396050200313877986769552854325851245245583458060965459381306420670845887230912345395797843888899469218626714239622632336867057115264755338656889403080756136394636350308884863149559421322135996813821374709607751581037976249082096135284117674132428363371094778485835211692699671583974393975580887568315452941241102833914247981736644618726194247645295626797117164804740375520034131477344924199587769402703524184918152201681166509963127448551770536718239800519484465748408714723693458991416813513324735176946456118712859977031006637316939945827057065185504328535335388114735763457093354052762156017006363283480221914628056330902074646900207755450130501216812808293413957290653885602165140506708877977424228818294452828877378237453802970931552444951081125460642911163731083298510265322300878694198651340322909675478477962912696913590340690339215479790658247316146462230774496391600349310121685166024101651308720263828970153258605043204157528584629762493188594150255980732467263890109487928216683683423655024120138338318793999493359155357104336448062321444624206985234644628020961829003897727998475727686106991309893594296408725338217160022378086826391478325466396246208242614418805390488585370512409023248326896864780501868104573699682357370085621127682098772233732395534046803483997086382456017784620920595129373737186188392417358723258236184734259424684198719905185674523437728723997692544774101625962451008621164663502924139646993454199895373727519778117174627864678773733875771353354815037812821887526506437287338508489603822682405295089370332064160421039655260277094520736567705035508501193408163337370826895376849585206492807326303579770281610557280741507932718589704859746696404907783617352817539774055981059473945350781042946610485858545195135483826447825257561424464866659173468075212953357508744655940178384171810038138842317100838033865338997272559880076938046432119753613343696288607583338837807369900104838744390009178690503082927334599037646382009163482022042529206858940961888502906357720701782502072913802502537910743293168843265712633242483957908606418419353873549989101754942091344080021705129931590848105310174146713573718228700216383778472700990379476797311283970966065103827851020953880844723377428564635478488439295038269556710885861986894783885996083850274961000498449546800541303293050028214385154136142099796333746106884048301600538619961105660309059374481736859169748187252177273073038197928756534817907819462060806411602052868042601944922716414807839822673125650543982686641454032846757090055124580550867595016665068633814673425972792880834948883404676700812881863234225014792867383194964609918285695036813938331248045109321214916026737695652218407593046609044604506315223953234245770053420041199306933939269899121365663576398078748156959827152850019818506481406616760307042142804536220284427742370053231094371890842247070886261876193280005995646170493127281520072818982450130102165940491695677366899233463308203069915113276226980659207085106851970233162941653286405746126333879097292656621730871202562989194527747917087730929921318200298039542798809853999129525340670205716865338130094599028433101999332787492028848188968665634630254060781183496922711951046643782411983701478339412979775737328917902332332407273255897535652158875039928399133039627565540564850340892725620628308732015257686693193246128262786932463611968183420729820031587291222061004536324999932724653279849400019054235806362541070758007304767991124960234306974562291075101230621862757779098082490384216802730404510690632386970194925090565595860175915273322442273263499586906673534948078143882127740593492915318581212487655637841428242785468422956677093117649146553122495471476556376047746990897219696670913933060467419830261055601835527849894178102814959518613519926837603707331232331551803777215070345731516834543360477689872840537300084050353956983376726754120259283792900377770581413620556446682326954148034368771289891329882615014001016520121270435883153587475159150786537610184964272836981578928874197391817638677413857586769192413960320761500848386542574387040904561447208358433244587177183546724106990746589566469334017030543605095489236861112338628856323166999632214542511761878483325225996643979697677702416289185282536465199184403296667906234150570734180685236824186041188481865548843123535074955813918358700172123047277619235317478491602679941872595634124176061353164465960283951247414488689472502438428315478491420990106263884433646050272344180397821102623277777854019919554919588206581442173189531755827437814473949100201981462883437662343999859815337363909073498101603448475175521588482293433618473099292617278638391305248666453790118242782757376737756144671875529065978723834827998734222331786101750175550626053310853812911701550291498468331070328927612855066848748574948628224130606562647935113910500775876920212058983520789992661855052696407829831044845801883015764857819060540407108765777456455302496003624755580496807105371312847413175077038962290749894562025703731787418111334803289572228103184782429711731360553405336461780816279374168449112699431155541282988333517069250477750917494074581474731705476699680558382287771522604817205163661963776917375987577036117803762285396540804384629640297357305769371303989584348582566208678301841391368531413265436976886113660907671955855130916569930054448699272456122610665959311604241403185375689849245720927277026245780878989505549102514204641552492354299232035005462263256433569572760453893938152667016029719800252016284567874979191532165117390517901276145755750910416793704636195559929282277129671744897545622296474065134621870230657507721652712293626019382545592390583331192777403621074842551028693108151771620881747970022709413945846792145755863997764182726345066154647989245869619592591573970770793508178181540269051920313714796427531432791426135553379217934121904445066724166782380730486183278609157010996666352146351723674670934971347060496503736552090519772773494578889373737101052222465392692408014003104931169258195922758029111396855858201617926494100004130742460551890776627448623011461687415227273176847221501045415273895645320948906173689322847569183671207059730785622660997993604381151741843574517974237060046379887886523434184700477821420663622614403050361857832271860626049073592517257527783800297769866440598042050211499045681443920232684839763062919735064222933548126830582951643472696024939313012916558012156361698481205765274070860040567691670874201322790419063039956516279762128793293841034442708762020872995049313680429083356606906748244235213685999302687546633153946316310267939046105584116629116103186671682996989353820218075523742513396756123389646636014632023031401312726543691260660835047187965291640055618558429489096907841853839530867551651623591960118121963626649171458874425215993105049285641291640457822189296558402213125332836758922669873779543786710559525790228356637129326489425506938829602698842736276827471681998921357126763311328150502733876120187845636567060355127017496856679560516533868553119106021140489456429192371730554192195471321489802204992501671014608431672504040892011948826076700807621601580273111652366425425946728685901279338066797439324973233141156443259231097021405592258457610419518060439216190212170314375399142940098990079503317031951453549799753649654386998366396583127255862417676277546807457584374333351633535453814146311954228957667203188184992910456957651024337387050577220035719493661918392672111591448728419161371604167925857361716634766330043367419188746177503561999999227870057721919366047895093724832851964891618690544823846500808959998751255328619257665700050441853730150549978300757217315708853071305474752872761344963897714798162947631849827613881204598688375231203254139039553689306240424746637476470651775436417505066783211578972147595907413759994207294082641260994810951472532533141516319937341849577060911467561682234947874880496052651883700143792080143751016462096990507352884988981093269262470476049470993636305605224894719685742945582705836163010959118513405605981568093943107703443474659633586876110646776740064509402850156152512079368066639240452356395821877837845118827622718071738717887009532275396706742243750592480593173353686116350849196890569981398341479631856658025343373911963882144929190510691540809252124425882346942993577195527115106740079126366035160060031866998405965296449314061927709534684888145940902796348673024154354275748614490650853146949387289369254364314184977028949989269871313952392914336804134442141645729195228194038476799885885422706317804983696600611140574407129688191544863173414138916132218556491097965692311792023238645605232149787582518325145388352858531281334459887889210597326665038079008188823466103667932551588254670234428726555705986645901141577707504292698123521803052367707924916134842312890329252486358941027572955346741676401636648904069447705229715747721240209677470902523953080687739978401478781699225586723453458474133827929472321727070036976503923272771058371702813273476921555808807783053493317006406903616556198658873516439293995703073043896609121967741576534294085415292621990276090781639559393352737961345067500743542778688717966931868061177905585760390485572488674772633550857560239040976050579691872153538023410327239163679534033209629524071988918938182002263202573469564339493995747139566170929416496648391938271929673884065369804834425342003822319691736123266026316063344983996483450463154352048628802072049073077986794142554328128284622961129813245135319663752446132194397622904363279718478679846202973058999791410923342853853470695990578316041618419413292783051366806037562179840640107907010944609985060503893621792525736099347234881173952001637819921810628682297847507832304161456615322678643327373968272291743113676781364322867254629162730366266055711329301307642720966041093630392784692781170291491101773487948180020406998729455341668318945415549777936370475712205550766693347907468640933252560354059709060461937276887470812699025997293129499835246739310981720776024064464382972293770106285976923188623794853478495665949411556856261704769672654996464892748199790699334905966954797714271146048105379208369397972602687495125769884340836779497313118264449566581054533067536803682293836633275000123156033849403512045316621664580203646795383260757839284570552159586822187007537246870978964642078756317657805085832286053672621861854302855397085310457290557469098402721060299185622163314276872900730224705586926805742876787148259969677161070130430570346861541730116772749423590791844497227592109998320299757518646764541110904347427005219233144953186984663850407473106356586301157819872195386840460129631487828770016228759618937290159735033946960910682342798286047378912556411180164682321331535984215816591413845948271908128651110394093747499485124746117381802364520178373010809204966965551667775878965709785460033498279804210909847822739165391848354070912089359336754762661514075254107931315527945976482250747372322981494662912922717521903530871942888936944035454377783518126029367669795544151357505470641787416658248484595994377904903055482022721603109470697988301117638302854048796765548578623847813791442536406685275479480072796978291409275415870294323253138323154942798531019301734833818281493261106949569388696736658973453763709441151214200146334657450005238705079576991580910972740224998862278454357294034896801456626293196552399703815551291134312354083048034249349747785873348136448050845999257728399054414589346384284606325315510880913287337341096405717803259725932820789067760086670688370389118380298262769330787830292339407311130934863098023521911744596643279491870724032636696523407857627278958882595457682082353115478945332726118605667963800232573421654841037551279689095843042977843512030437568337768236959530732243036085046855491306232830815438414959143818797473092745538343293087821375713245260900859598408375437219040466085585827926654564812130918769164808783738305596332322610090249641827651146484961821143624465426438838959908803867737356855598822465131567515691265051524071176328427579844383917165455624320747002251249879270560405802446835468148718955827624259168619456069820277849061137348637603640197485054652854764940734747748501798627973481144328122094256600283916826367779629493012553219979683962180852202933975417089369852805102836299580881127541031503128672100392539453656811527792605092075754640884697222521158807720514100790517869878206807902286482851845653503875986174344891539999860181322397523713981858852266298146083068224164605479616686574728735869908986177356847665633119168267998420515834159961911270274314659840321490361772463165449462633743978146532430018940976888230275588445567153945188089900940069430756378300196602496157455420119890116507402443791542624444882745711532387154903614347860274101665485659556705824075677183699757236721596688015430237213870531301577448227963702373665349067786528789441845233098876954652446071332513284599431109296925647638924910728611968601987559105966099426280531070785586105342086415672550712514535450843762179196319278675275319195640654455444789154800470524541063983843883132969920588344711689848296776930845309537745256831623675535102560403261537293055219425325847692277151590909944387918976280800404638043813188625742191418202440715730299990226552243718678915219002504401984006337410660916616347397933595457827485876096578458744560348853504125293357456639882330211942789436939087325526268060124227104127866105400463124175561674489590337044690680364863186487398222573045330154188514789114476337251898045068832552368178265788923286247049971246764286455452934113400878310234459577843470000641641929797240241603044721637619837967572191573918067231596311202333326157543446524656268127639717005497496682670711413577333291132182890434829144485841317337277611519916572762005037665017249960640611143786915532081719152618850085297421838670963962537525904212302414298019213513579488648299153246398669687030183327284037951312737674774912142547679305556562848018557719354620884787166657918511404896877157249562041338979623462825626847381970598599915726118862438247599324373319739865916267873624669453760183151734801984827455511243202339785872747838259507631528644170997410907122125041626705792342321104793708919093525937569083221359219980628294079619707585006251359393625539775513125634616978882328401060480927075889223314047279216158498511289708422481257359694020745039469517838733385244791913748226280190523124693658059799891939926454044023795543513672860838193740097153408796744599019348433198935314122570160057173531755588572675267266148323629338913271698243137396238196542694647965366155585992648928892309466427542959886487197663546077753157345887508588563132466072935988294912279839230860583580402020915104909708837005111527345447623428991556086882249774733142141401423764371656842301383648134209893847598561573696175469014047236260381679756267355530640166075584501960508902900489798500694716117299130530773293259662744838308536902926245390307487488397961310267654892527437012438337548377376854787943431554435571547134125129651187097696312135753490400783927229965787291985658406914097515398475750235606488328779552832166080469101382522751344285931539404270786101153030052097482544285815177056263177463214299254892158523461771303018115739559715829337292308518636991949656837579004007377945649367693550385232144325836906083700283741870498602551144740583886358939424597813449057548480050138396830801434662771730380438518930213409703342459363555955865830975097475895539075193477472021002430997777303077212815491591233940170330262508581668980232406900369505195121976840315460981818661603804113144653716421491218031366968062789654856060201128968939690173736150693721553467334551557342194847471007342464654384143518012487218057791814487373880036993173716563640136937244817412769768198524170942041984571186945006855917729662245032190105616700545212715412197702088699376237928385816141420461035242625798422341318677555763139448331062140783176692483528222217842233969227346607875463681344574592741844637192833771742989808845997939827930233652457134671513241987925488590651802793185065150634172413314198636902175824536838698113122397744886202270090485947499246730068477149288711054014038359396018290597960563990705305791730837326051804466366731766630510410063986917951597771412277489016541680278027096385439913518947446205210840038286939627485025447793103420563518896080995685290330742884663051379043599937424650757882006244127791664751235238700327459541368186082469678159038869798229387348383547477937794087876494836591193278808681965238785980730797286256945784187302678781515774469274640602368620414898946494111102784985604275504775662552601162219907415672433038360498426470023486419541268745304929958457680764651747150241267198037841523141938215588579252755475259858931425176058541510666209509420767290199745007221721984717191816772310809795632336737033401356957358634276294130318956507613200829258801578221108202003740917799268301733575128515106307715148512392965603045313257909997680545658755952128748419359061405037546752307567728638505519366146337588826567347026824255109991981572584780080133740509354937585885692228814524757773669538100735455733237031224083153347674497394684354360860047661906404331932175395350068719681307609716110527191399825386318273423022528911700141997305580592570052724819526973252023237786064618783510642427310308232728195918834055130179227397750990428164892758203807995007158770053324899923508297326287271608320001065659103964278743289158034707313173503113363830938015750629015347756580143939076369203731230105149231648423008296006423956226483409435463177331351886839074826359409823112339447785392862436587347130063292242306242916079731979876338586878944339202997457097942575401738239891440895162677218556849912077863618132801890495586982406749635039552118579566129338834305273494634568470018904138204344089702888252116767069772210809591035483552110670754834405964147366843308293867329899515236748577928807835750084741070540215397360851447114521722982807376992149505890929733171352403903367103273856951764361452910905975090847856050926032213127135004435907894366942274470819836540623534586587089822331808735273816671413981685461360526088213109251305300558664096339088993832210701460517794618888104519970147123336024565410942502123573085959467873075974605443627166420071074796432391015707166020535220153229412122289923839664890257160918435163651619536741534448056377969389775303815467432278058972184325655955729419269809831523605083638218721876467279723199205927133177647600690916811424492689649292148789300681498836993859316231431482952820118931058733032879656348399806365583587651807452390998875084259454959117305982731866826289381464371808148896577876202277734711159062264259360020669893523747690849552764601799411044520388333689469108191821818223015413337242736000958172093332130577902077738491632717707714750263641541768882373869744277260444066048400644620210348746408670063698840014911662769930319528179016013696902036502761927638437112063385204450489593020882595416009315741314120054886049007920001017992598678698467244306671404087745011397272638221483149421322451760261765119484791758512654413696179511351189349494846247821367051498582107946678832361946203133882616429934139709267188561606640654774734790506681995271083969145883979851957827801974499662148029461082231465445650147278945709583983811824091258170978397741339057835198501853550350821771498768546686437638892398789060968670880832563555302309426226527545279342196092308689666238861349595555593477234281912298390783340870744527787034240122233145267350408172508852601067021391045530640069148399106513319302613715474024630646980666092220460800088262596880242116614827130435902138812591701765846089179981480311231470583941725090274446323683472259119504381763455377724326224385544874306404341127896383759240879784694187966247727165783702194907139130103457020938829490893716972834573275162908013385433859993124156092716314194763776644130509815479869432522433360523994207706727333707820763350433085497260470717451091139484842431958780610124745396921972525136120172426813546323338106611307580750456271978972358739714437518617414950580467472713625131506936272905029274671441854186392155131504768670881259471469510511597315404657955567262338394812007466565061372817169809075081829488545214587014403440493396677603225536470922521205526303157396377303814765142164565952377021227729793845366178614308578639465209642162109169955380210263741977691170177715144405264452609924942390149607847080963011636737163520579862610752435540481982441263588248222051240239937414978272956107857706079580934401230462362906913590151588234500187229791389896927265343318050540768996039115556270083074163938459458712534543924994957973427225205551504624000267553371776428842802269245550475258894062910312859014704213604256104987485811441974822357531554126239693540091138582212398385097143307219975551818525862916320426601107126261940438051609981491036764475274934503963763747550923775727415779285537308916529470893596786157180682834709341113577317785034422470198346461853439566635805447729168535286385850151951263329488547962515174248372235752244743351674577170895017816848493916638510768111781658120337910887506543953512161665384866376033630266135173167510372295856709109066335895551901248460510919462169048641981311749228406497557679088736510953516080096573740703273587887823580480882205080224279045686950203804700890321282505181222669640981896818601199108072008389559735634193939186272828375904696070388211529660183770245738607244942462791153979588725588174344078719148610765091187500221513128179779523739544890934739409969210187224017282464195884485754230204090505770289160648780167920864186836773212232482754341606275789110850264351050228782012081905435945565982643920120723743599540281912696430586469875587448079794632847422219864068957157661826190166430441938324421948766972307318127102700189084861566121341773431552414992066880172950333004520995172547170460310466490712230620322927699378746910373656017845363582592255199080351250296898190262483664574385348589710176989790162633210618990310460998097979857289731242392054609119028997332871601465911622049864065436149622406212696496676232422464318279844522182166174127126638335352924591279967297644452970052511844404589798053562456745398254470033375985300214887640452899915548824285263297935141497079420453875492461738726848453699775836215947655804308414297515562525097891913603097190158514011156861407355155870880132882754830241968657130794799632170105309181860866415409603348649295185071932171914888363763662346844317758876043413469286978615709040692796406973840605310500988113825456269954644929384913517712956996778991101142785983153435856274294501089173557523173443261957665793823122131195217501025022678228647427476877350174286811911238764943158832974115571886633197635097425700574418597230887035517244203403367193105497734413672271659923762977176778123589561502257418881627716031937790695457452440070483710205955086105440706880977304556638651188927590734581891190347521787391337668926359528707337084089036721585657207362747455885958277958852060815846819293071994616076425456613329862144017754160820168091084256595218013102782324197560706360107722481609298380101169686033617345794426332622259454627096732255464032758107856138939168439654727895936110366491964744523531618286590355997734564503173988027274261632061185634421027368912927514079936278180256023135207159657805201227758664338356503577522439005424178978109992572338588437521708571635746961307347717467558714406680785809182102610446290408730559158032264010286305183038568659569253242724147876882810755660189881946449327026415114110492705539055381719490649806179655347466281160630064758109055736039611843515209531536962598969725715890181313653633003204504563057199408743967558419186296202010493737441589096196865510243732662526424220787137496866669452395591117518385108187951161943922951754531336714944527105861743610834342700658966439712133728414513748688473350152385240391836255630080123363932831430146891877622395139892103242681076183464568479276737109899467650896235067619034485255439165157467823740211521067233924532960669433547435323625124911060727116026003132032126523471765690998799182394135434922672596794935033630126776445330438190404400022663249856835791394705378440938155712624702462212981681942585500200326985708693985976152598586509649534516869495231700702922572946661410314188321123674891638783069985326719428215305668736048942109354361897059370171676631273624177601239190154877368219690715867567499936478720107961931381993467304094316561987776357108662809289749213415776172162742550414478861364319510151216953066808422158238903598564693710023811203067087969558717840933094228285042362385680623486399884871824060607997175589728341894161592313447002537814350628722198100200825312545242209050212187569625758905017334691653993645412661721891434303881497472841370029126985985718554604119115712952062941508041830313775576011197882615925711742081484361537801651353710536710998033330542883609651764041522691980394841103087223631178249908997402551640520593535078247769764080431614716495256769309970429825966123758734985566158714835615211302034839341659334576177174861275785729321811792887741729948578406717120232575563959699998127833161033249272672208155875432193605631305210378452906050509443324293199307596421768119384654894318849034700356776661818486994405990727772263808285410093718100901698488544573909313387836006069935818683708009668868948141407609163516827281469040748995202963837600918679915250942656409955966840791409981570479318337948173224561775050349175511050122541085452218109705851002512884737766222698584348500327775595526624762001676745648171098179975090294568825741886623546948098808041687974757954120143233157924759298477353958705224429739258860792011880077101149150056911974787360120925654019928894317455728531188544816597183351528527629848006913937575058093222093797286397562287725704092359587121009672879715142983999909303496654490623289661716772787332298834402434859495599005949259778055549075555916915472682086124061018655073887509639288496460113136411585514989894405571802156478674185090525892501304295590017353168932067997568719054650349796291811385087378382272173671684830772313142156948823137611140482771341751207887207212626450996440147647749533212996749887219736829356465766799880097905950228947126630861851200551033871948884844956867499971690211765119883043246785004310351420032189643499535311904252155320513841112109939901106153909026738010537780296650419427353012984086160805422178024463575645847073877729040662121123918019126023581089388542503467592699630269995363952244132801920453502376210808590815544076190627178142947079296054261903303718232956462668425926615490247120059904357901322085203981936438660427430724068331986895897176324965957848856997174874900777505086568140035773845272138401391369435625777153488992841529858311397879754607972176711489061097208487045667657836144850216050900971918971572364956207615957477541333687551735369541388306073180227655258004333089714462283982512315397979736986149414108728198947346570540694216923909141272151577369530440308138270811200911348273481240911343070344473355370226821643403231824054073376270739085831610097858247736649096598985357619662548530781243505063557801470591524099464333946507365614216112732944417133221113121818466316701939646050095996923301181590690201884487520541265029353769879089344977942894845255512576772895623432477444509478305429689355556200874523018429599186791206067908998642361263481331670027363197296863113852199859737496655157118509558133662691340871593785699518929366999825105911061054027182936603685095618309063633140086419795204195784361622138209879878446822997220132277820906559323169421381905918319290577440735200895929410889961338613607608977856041642393493917208007346098512915019283369982625296105300964040578588818768845719620026853147762954350429705870081795485769462646852266356111341338302345404847432444711875499122728721653177789875240592360847912427041134413539810239555431000494313505096168081936632428682434102782211966092586869020037870603511125826527010694411389127030757743941153791352341686583097213729235938996452409087620241380880758697996992824730248517363992148452298633233657927522389487659432950440234904534152489268118687101128023745570095610719019579260008094458092124488820604861659045686627205442784869907427206337708800104126259006806745034686195684365424299757347005665483893411311903416533458663105654437344965607670180169986871077152626258796486913585359790041194075301078236964306733467932389753467405997949790334056760841981818623176624678946828079072014421832481286950770872215669439055758622790364662899986326520456453874707584631630929345855410120542363646919976463789790760184391009707994006235061795989251374000212893085922189681670537996979196572859562622450524963064039878323424323811166296033652086532930349850532906672384903941085919159561690946125110965524041118735614235379571644026376961945193409994418812970091792633693426702166096782545746262865863368811722477134113281025725163521052780626546340448214381449751433142639683071953062226698472223256013891371284042860910221550994582698213374147919001064462235964170627519605760208392642305983502796901696819491743976477113664567177341560525929995149621520856435362966345287954301980395490874537799834676368518977943977576870707302729758132633399348065132224982316552960418760257139667946192748949057722442671648977347233404954306071148394364820906467166153311043765741726174216950557901364277540013172413335821805843438321083103985371566453443333474060963855097337385296326385359280083385123821428582645600744765118325839560524201868478783275981999205305441191099157267368163160748934620600832471706746743553900515191014500161184054004184704777732386873555490930593299771005718456252463141889254513319160482645822396395818340250035695755292946696366376168705561464174285600286965581481575892836155500026199726208297855885082595867790578041661006370922096067517638921323889054829833325277234641460255612244663281525266618527086436207934464386315492462482739990982031234200728611651502475852756961323078426674020142923946587355076709046755017103184279688537848195299324838829503779176811166137203923669172815457517634184128027311038744762410179330450770796760189187621657992766772084951447782955074710733010662347749885548299286353280469873214669636685286399326400458025585474440810401075363422814765320773349528480722352462718060388707819352953338330940955473353099862531476247442274958917729559205051077786595948571303140026009065913473333054479800324708433020938090373604030204747232120239539765241111944084089882742615034355971571045014587223964711279490435265637687997730457054073310457519149031202392649653803560722620123900447545392063301114844475192427131286753200186474289128314463010635506650802434513386253749612505413259884564179114189072805411239879250865210107480207151593974903992877686119176244053043897943881656116975152074764458169424190361472211344480290971499749882027633452470734959040790854750218629332429837616749322120635687988975184124182982855094754463081305032141826511857003655693416537068355762836995239292546591967534242697083886177242316488471462385659177211489227263478172691777614142857237360226621333421482223985988991037213742941444929314610654607272011845517097007439391568603470156152786478721885591072760578367556828117918747919412299915461798008293010652601144896315468258812868257493483749959418096360385623496503889934859977742205637795883279782621555713563047576064047741967071297241380845643137037276793383334591901734087196830647254159338324260250092495583311447401633261786899498357989880558317791521820501900103473744673764398993211620601467329782439404237258825304766043121064523376725490276492327756758433900552355219333951252874371577842922693501843873504903390566234371247973272121271722457353889936343888080941431961836275157254292320409796905406808587085829965475450454075691746394241195527294548789286297081554446948919306895723086212615703104037601691762866845017065251860369856548013722858931712071738077387872264232301576569435224048403092312261406950620128561414514151305633880908525308806927030016789184231795648973038586133134474184903444326977605343806535392137668225643611737399123192608954621177129625669572186336002718094248300580234154990453301410372358590368546118475176036573555259480105755619393665711378519988125978436731901695718976129138310698288762774207024751242542795135697638485310212563460451199907586579104117758167087484214106027484079710291193464965835244234894395194858593262055190284205902282711338526981419678794544806675185904169488741888638073612482974308975970665511951788603182134188010606104062407042862521647300373179999738030787377490694991530872920717709801362231082112902385199009234813487857852719441362811803250003210194446769083771799542503947138149697660206520231601933710617067044413738751784960850119910241089280744268541108246445295674982694149677402977376904051261977587683192401096786708033293595257989925961396121219176337950709327783601313336702707571624087124441478842568395234371524953946907843352451388093761118969543221881817959435235997550702045573597133545290724706919839706505082436622259180863300535883177235624927868838148116999305741244161747857618597827922892893626888416613569649169207316600176540609254427360095232049922945844961455543476290013935972138180495276681644798356890220389956343400075668455716748523396156259535352177333038318616559357305802873583675824420600712805164993271812716230174640433028910490996272444484498572924410420312676714028798135877289502164027522658142879590046272372682541297563957968356196593605761020435157625999566577648094306746186318874118369723638122201028509720070226195253272085329733896341475498409372959759801064897707635467912411739623244528832613222831313480228731211561464706637557977716989697373287980381557919969054778465578042904413760623487604229380549351634484126816062300655267361090121580145918622410049078357123366008053511251248772953032883709415806684313898709303884811483588110253694439578312859185505984476104196475079254466892517227243168364036065768192964365183473029909138045738222093064611034514268158593909619640002685276633799215079523754312898676175169031772711419630916076921810774752383252176005536997579266354044531940513495982878893358287381252545054374350229474938948626598291701017936544539179296556029428485036210097528509380223933119385089355191953171255813145703960328953682758255750165020990355029046932039340305253919275478388538686473747363023187488972325461339578601345675906937133429057007951281801955699192327392890479792913521392959950480310623862811696858296275030620156678235659481572044417664829965167575695116973537386058699378049486626572916026332382552806106621198206207416175251756473167490949827164274429563811255397273115242905430347098704006835443984903954488722687635044448770637766021598208645511313946406492692999844305158367414548246657784270854024891463208257479248618571308959067120305612549328799466869408658312068237118887435020946248004738941889608190138277116175917561708446113153502719692962185154781354969752114426019832649083682846058789991455315993049355288570789329008037540981583043496178538646385027109121981342386235564667897553565458988619616411437301585593497416071120071459593837335321929813590316837809996535570184388444181077106588796312445582047860147474757613828472499438586983381565050753542726415115006015150453814934014117295115520362113637426347686119666891202042330341944368577630524203377300052203027077020753010070788670152286800054224886325476190211370572142547591640842069949949273268818328819964011247928330369477927811963939189116293591683114231192698321846127696020793104537781932527824369447984135731978133251063860938158910927132947309506692247008649194452242108046212454242587925381395697460531668560616690307200659386757754933028577513044392796583182050930876003383066974597559484566815897593307092807143734170578736676535270267965714711997671578182643414434358610577167083544136201372444107319679781385964187880230547690458412622431237753438636034502660367273778645645466966997688684826379423245857592104864629849659401731761826869926375980187273661998584347993638324790668974832796018134984059642271644097987480224670305349198241650422561288155802422563887191652264894908424042697033911230766480514539034980497693374516520773915373096412648175087905247045325300777954216927971296514508477489905577085189652502884750426719261078827722877821284750836497836423383687898741977108294968214957379612095739556437187427374132047073045531461533512989426222310860898565980361630830906374722133629171349429014166345471161310229242562647551580530986455382492262726037212714071097406991539220497174740165136712679673597904422381125164771394986992975229746984224113018996003995565978947507448860561402929281668385414818909848482776956636699161459247704752923261994303853156883741941087892799054649385455704778087401281585725469930266015183386238794814281115368612241978781359938687090214612940596910592706750237931529987176921205235100564937433690256416942527722707794614679971359768985676848582627255134335284390599801291500764711990220884314934251139615850475770460528784445652907992442942414426537541830596010434708618488592330592997699634608872294238160716906005884329626569255211778447863734998147940434061642634681705172265759552845403176302883961877553311957962984186406545374010110795283087126356506424130135927957039547273572085337529196176160857233421064156751232629442756790738966074595648746801767147576603014193643494555707860881944654349532948297215314034659092340677550483582736084746924770033738701243303888213609354973235920564208026329317350577502120448864620195167142438354564944753940894201336382860768885748027945593681264633559887889721566403800924972218743911288912090186933486637452266951361351588523491511040074190130033637209780419741262227128633299824843650499790060560809139437222242062870743378993308972891458207005425610878946275818697315396290147766729463097451449147995978656559927242405093513862640671086709161782923387395675600747689627991910033420093890824034453221382231513061652996203698223643845564624871021573304207885533435529900436452201828165982124420440728258464871863780007669378809291004034280777326728068256532666563309711806058050907952779398289697090535362108094190521000894521825147577589807561044188917083057838949856597954775682448725999683909488151753329191039222638541756435816403333280507858148127471449850939384629019103330551529781575582304402080122308044907491024862690706414624939068392881436321210291789910726867249388670342818295808873443894645662977682452283598144582921122925348203286965458924765240129743835309749140710807265314781020683780939209125564955788575352151063469514654699922650762466752556676066902324508528539539152529835480211870350090682837387085827716947624143341555676275058091149941974468411910576391150325888795303908696703463679707885638901071534674867667469572767291614551536242578783773281633691630550883322237820477681104996105229330803751081492859825593319857219563350485691348142202044143483901256590762902228063529870878696756658653047067025226407323179923459059748182023837361541813317992001829604369127487812502095579167747317626462537666446547981237227318525180873726224928177463368718272761716050811336601418164475157327890045859411867440744815056662326961907086263419971755200963237078038654002689463672489328382831263197567333520636967242171607037178708159399232164162560182057064897811189274725391385477269993662114577996365892936340576659691525786041039502737040991770398004484937765287324699473007781715601321626752255350270358887707139522528471660703046226662625296992591750755621109648732273673694364662061488933574325900214072779977253511660497222599037057208953943043925085737813471176972055644838288840703618077305733096016314708708404199167740382308303519531391372017645387466804029413285639858684621974390541686855844211035009735795844736241644347445927644584665499991535448973930773324170249402973094706705428129091901782111377306258950580220769047544664779559703924497602566292876734750236203467552341633114190152537063714745563773881099775931012529288643298985342376135022058309370128272348933146063388699782113787032303126544169690212972740994986477653266297849854198454107961147038245931412653780439092485797380899623449870860437408251512498682828327706067164588379586742510872476221281219145704273899219532450718810545231076951821065391066317379551161475286861501857257186998552816997714705309083162875630165232677086581032655601575401076778891558115036468936300131291563192018932029306672334240523812043307658660481999673817408193884490320791704998597141161714116253224926280385045009947522413617768998499468540995209413471624642953350642173131112107653651957976003419989037887404349871748934983908109745971923495035318042175455453713974327743172033018583911724204098552885705000148709624821453233662613048806607430210513096389604529509575315101006663516829947319444520026438666453075354470213067145021779098331511606027890357820147264589305767062727166628799440052584787622998667060468582003509415732888123983571060314061140165489707523783169876034537728919364626077437756427357980904974899861607771298629885265830002372472306618387439895653797650575850798477928584696900483061152086830567060035742151042373481809097224841530986331540384461406212773966989083403990868639944645441531990575697118480089406436343166611711043600988845009936184754823586018236565874842357718967141328001037553934189682029832004898261482102129248707131976856749227910580534246322542391698898877672122112644303171231224226448455095172452089624913495664765444880613685171608340239638811117470050908753967896939513834435276415175220834990731145533967423505049265871575180612340100124174324026816660560139841650720323502871746659283825805811225364318784912004997237055381490978104789729108194012769707605395740338983413665194998834565542604295092374119029391730570272015127775472461153591943236841697596504067624578646735748220243610555192976236157775314164078358841771956722297812325810391616437663273498064961575911049039902491051737678722152864035562851104494802808115683234651219421549318766043165992215140318718875611498681557923592208525613741680116655288042795352352316550172501512327498202374767616037632027168106734388152257903484787788476258611862180738257370446316632298728211447405298176272100529632640795922735963604687176657883509769183661472791512160768825322717662204627899852065936351403921473948409854295275383559192110965937347806057297763878220108716033432461739395015159326206000249489215525605803458375670863884596753439619585278436865580794447011673483953603646933141506958560812183006462620453938569304165148130290727536467859427608690271134352394448987979872380487785361643077317851497875860917267353126290322841720396614920620051260707155303718840914209159920827261132682893126092373866985474671564542109572670833542039552496568447066860502875735759995017501236737604302596090304609394527217928412319265162221545489069457314107578589303237385455201360857900726395767116371633619571657338189117980475085355223811645199870471948750037902801424512835655918227931490789072798468487584478616001161112326341994885892727907460470977765006230629681860063450644038929942921302899277440432464864678912502729037255231451735148335926925614537267808155576200599662790311167908492967649100511774830626528486947156179412537586052589762087349701259021017841034635378710082768391237516267621201937136701710990784479822611688466222242622133927435782075855532470726618420867065419978077831879416535276878081698431462853243985304392740540633358785209530370252780951781332573742204710457186245505396921252907118129479308574062587565859222653478166516533357222377950206014453628350918408921758830845368091529683557486211855059095638051033710255014522311162539846910639662967986173671356650658972503521632408634754039816149081628445617130059424153040034728597782931086581208371140024562132932382385937074473653862674820184042920756723122496680248029136010958660231546304460954367076620184290289937884420185319423660509422643766976341010737267564607138128027306016898915520796421480415166889412883117663177754470834964418599338735346658776142389743174640478364601265710771938874830436248573716234208419273166985913500386441031487325809317045939357094825985076276834209005337745740594973334287672038925431684550460224983811619647656654266183342652685208119576578650220743764101221421586648406482172512509758770009191943366594935234186968074125987917921813817086363534414979396621004824010274376340136772025511210834632797717851134391288756494876290240590272172677678829120323504602285757208226270756864891420573043934163397609629917656508611848184234198766449506791048331638931201907009721203696503462528742837879172075883863132815074243349979911563652350991159833833798108490900764473530298068191300251531147712852022459750709906175745157823763876235323912509491218816037809132810899247963552952627210888045167950231228959949607892290045147826735157629930309774889884969779863574678064500735296088665138016326690341105855258397101803611605921948336467947693247479625326351724741420021531075565062545651937942957327107106109162155057103587780526007543004344150601022223398112367520383715632222781221001733200950498020959587230411495326943538437945423342140670821520507872595393296186118180849786577735102646887486152468615077463709901190857810368226270455164451473215366021214781813438991973110424847695055839809424694762614734983128138209007221917046743045070111590662395939826462167482372299904664569068337129725245037303952746195744668486457639111054478083683729408127301379606150610994128929450159592369868687862026393327905825398425751562957795713091521076158447528622926583549168197749715797117176021090087206284657831334469069880316213587032994079251666358303839856647715478218361870120232152798912305174781737988064094201299504638104607427529798656284101403377407570584154192368739951720709301250492163380495708673231597116582620089496228867740984964312460535203820172136712344428040668498323507547904035682766672333896443990622357874623644560113545343595333701550706525272489495234872725266745363927569511157028497343574418323717760753022789858632745591506470639222849158148257972861973973663075557177682521687990851927908523314059686869125140859507930390798552057737684062634521153744687852090014034141965083241856956908647696214953751396111259332626419957731800623073472854427445113686184566740166272620147281798395604339181174904750447182902283968243616328514098832100998001239186230384157597146346401770859652468147084310829212745305281495288404426312772026562605242062857181971226940880076448099966565932010797599843867930926838245334370530013559254917067507039040554788574237790226963375214561100048894847831337154915946173933889214475438328077898772565639791547935044069102632070419267383734164938258117156238944314159032199810446151557242733280623400521093806178049987296160058939982299075313736102359377335068870945638314941951998588797765452344848934968088206149037458656421450627673311430550373389452736222036666904657154391997159954397890774524414776679795613655237450214672558855227616941774013758043672871986767836073891209527203357091533059208046129091831667509389407042979771700429336232522186231549966386523045130607574682088467948585199117022539908839635510171530972946224148081731130883716899524447634809468105119307501343259067988176151212047996684443575493261898102299682959074419793638350843217921266235877072924330195963765548743024016791598842667939975904418696088696204712392164634463479514124091042248465526667108490720155131457379422894466355553012229052736579875247850408298230783670282695717964300494970996651382564347268227978465209562049617886864930690283691664869567560935065879928125642554515233820674076200326886771626944186731346472761437715905255110945759431850798891582400513672387779633658110893816466199122067278057081184118316773041055609131547010281444955673946782849953992034810217095844792818657222968901414630386809499687750064144047630280379818745029729604962650320292985379140308888454107304139083708334559418122052897247632877916953862733943557921213726922059789121611694551600744365180986475477050150802797063827955181838345795765271787001184391016202427341823860264126878996681717087097412733634608418116857521318683312569281680304733132326934869485831846392369628716141399417220341489344664900169108217868030907652933007992933558193414015961868080557272851432038583734374831756738794371891353531851625818479096225994019440248093134683973354697621317280723110577426830538127218538784572113268332786070407631342918094345532871851697878443483951883533221286789413092822453613392266598208948097661100604178733092147231883925333008871582806106602133771021308271227884858137155671798277426376328137855240051194815263422715767664214645177493330333380020399363267092313151368393459407885162628598631633820211176438455658100556893340954670617086740325166913241004839835134305273524867106709989525091589767058442181554555785535871901426010458857037748990533087688365109840890264437577147021904599048919992863004072865301607995104020028866953425322883770689204448786980080146762448689553740137801213053264626899121296663013979912320440534822434278271089693867877655077692844862170191392994348597390819032469288549904127750577215061469223572048477509729941919484912699502753385336709663582701798591063801639476907105063192911089705504172093839854099981749969215179653279367383846187295685269295894785592300426539511247310981438514487311094731136269835532151873843351598708759467938332829590709649288781820606344106158031198223149060330358135953890663478354620354385505068456981019692446450205886421969335482985770792236914739261699927030071315107606656690265768018928320526404756080649687752957933244408838613446121968621362695898429734016715902082666867728528076582906482057094385908358013424878935285987179649863734644693445522107608317618754671817963930627740736580178390034862067347115838774539569478768949851682533104302406916417018636297741717017350650582196363969838864935362525254642186532646007143515768112773256986747582595433384269688407290950017473486723968738396845122596199524099502531642466194314190454095605486397866251221273273578905525909019074021666521881165168035696253811000732501071966292457066200589368005569627834339765758405691956318176487452297282489998685886543744417538595056561061029826951642361313925667975985309913317754690286755022776126564881933247201622025520873461125630274621312588424502744167577916203049256059985318448814323775362317196518364516450035503816774795636425918925713227959671515400398400816066275548971166510230159299995544681252120371704852216448001313744239821571062028147902661836706969593862744750274568137028066706081622560024841861828759656362837410652965945075250257613690812528002971046212710459508451206513697517627413757095690399437423726588314987079911375724016484998116003615624396278608821126220606959318682956126056082652589947454540464177603856846107931416725719810188313733502178911532817506556892798329705203441135210645584333571428849424890228074999240799369659874300689979779442498499732295439522207269325581846122311219831518494630240500080651111198422604607392262206925047907037768767030757740415445065728201433432785734571970040522177516938838687455138071488542748392481727043068034841192195718902481157931938776788850478972405325988516652077259028722214334949422020444448998062554266778217979722633353063918771393622651220224064137421413304204350645755738365848720473181785353281484998825028968984627257656881358098114338146040927556807815675769918095314985849968559855365058196382023513694275846621921422690379828202259084147666457833059041166385163069567891988064452259814072948937900824226351003834788556921200587559814619249407857570386953358707227243198719336645585230467580882273403430970806077445395515431072636555093319700627630626893278180210939498845215399255936096871979705137556647706789067456939322787440444967841048697514159804831488744834411776354492659002912431227816089592582987384652854480798594103815849854152680038443769242356839545515397713645307264047813017673725587543580799652958703260162053535711036196276884326073204031769089584630908315347115241132163552557906858992447327388092655015689363191769268443372681127051448630455517531799473584627023465670528338719692888467216659236841107001607959413563982164512933608295932318902713712172333948656597533176183632344702749138565507361230054099316626742704925334915203432364088415503991374104842260690558299758073000341748577557592298914009910875884869280192028227801980319412543710714124565477789036328295079121929026496233239502455742260174972122818644811363161337517339316974080408188731972049087708452063833805815516265642270651217508338073281902717986397249249983763472392436223955306626605948380456415421628755314110500419840715942667984076757417515672516064135320274445682669808730253501837381969611175913108419254538400854966890259970286624965519402496511401503844965222047703131417556639767099170119925809613075734760141468973455054811147099232437225085192162378655198844433897430739994883085424936558001881471968272475475456138963221323449148775329422533430653010037910441595543265250179119841264188271491335437491759377519394697025072644553995569959716776107739299824161552178962881023849679593706808053034352018361580256563196076826917915578286730803159436763313824854917946081636533284225826770120968354780635388408370391704370528987506512602753556699200159427011917410376870339164898914314995715147840284176577214291671231644673426669382056267356159187039598347145917662181456124502708873543952433878522597303283856953515293628494982666866615343121567106722163667774977004731564705766653227633138313420822669209981586407082756638050178339006260040782046492161731120319381469585170188569854186255167453813060990673324678047842598418200129017643834782712232862069324901872726063699090799198027519927079205795608268119458045552263924699741748757461940932136879510294085270707585380731410255771685697665122411340960870457871057642074363465640198483196902964739941461255267826606770119551061403833976783601219959243220128682527946677580807573363555109595548361816324524948733701309924065584194537250332870015607978829447439707880051992960061184988664481761340056569710284661560095673411997597263452741318985967954780075274372979096314287360617745286215021336704381243526799448179684958240969475232227371736461312681869515146124484574592417269185205374782086142909063676127799264698963186686165020371936770965814723865074202638626205200773117599999395910657725200141318672154109843748418605889369871275346072245555746041261363885847959987251377224647015950947104027903552671041161074870403388135833035877169540922643818540802793081289494395389535576136357717366205612051905811186095190009123202838184281412472571734410549283002573734686065886684247181972145099377449562439112426214344176531245785424435922130928081695328700652657804531571374387215175498823466775270655192125599932669778844302315642441095030938666311122514317608038817093446697112531311298674405346120109609765753967804915349959928986163629922965977216085685554253560910847994721867730972726461832092972519027298596210455500126896880353931892162772807270428631294450915934946800082741931161544129720154644484230531518337903236105498403783763375027014474390258807814910534533963813123020277584132763027201276211155417935249751123615303752685430132888106406360658173376976175655138055331373375338136848340997984715581583580917684114521708108362494840852685637125405337869974598215318626792512530688868249852068967492686389257035396867044589892754586058923454568757714122039372141030181223101419693566563531398614048950995272552774901676024893465206684431936339370783916520343795633936723627512587835860666712171083907275490167337858074069074036133928246271001987948988352256546550635986738290860032597103968417255777743633239297135137832410457118912635186646847865641092610208081421419075025647067620569402070790639119893615806088831718468630103176318061525270669085496311902404556920569667944370814972539630271975035679139846981956055927890762063500352573941650634652339737699986636551970770345035416086719715874413308348354383697858332116174247043818350336633907012000077587086981778255647422110374313700520522473279118831290578899933263522262985822079854805586078720711425779770231606237813994027127962497667987303867236719840612949440522880287341364769890425507830401986455787814166555480866628125168978791526255283569794202813640708642250823814455879470486720457526520417667450327155054156543328746779072465131095172685857261273865244152423899903153501041647516350294037288764638803140619686517016526970545937029888470868233957570482839130765487273451665180643704141838529601344090166699824650221011599266877931335916989396880477113115621006989721645221324696879672625502781914832899466771131155905095157995570976031984077206488325125874157672189456307355031069929503107679831870816419579408303829496852382809097773662384653920593729372903748452448461783631945493485234832310781229353838051066507580379431273655143235004123141794366179151845969467640688410110263129297077796873930999369727112335373320384750499979721480034029287704807829692205535277247713777488391964862696931778258252376215889003404603466858144942640114799263940120267032563940476489914207842052734464488048222988303105865398059681477994650920339991205588231261508293273591457553642433306207990304755907472543003959663071000464627076074164879416462785533723684553679094152420518597768629523234253999124317211698688569025846895374994253853246960546079569202569113043573695226387601611657594503557916566432802435786521922581344144936139505778767210287617643272464850374109504692134718420933177214709267333460106434978970329733626755971928805529100508674492452858942842829876335147984512527686321588902539578379330475038482777475084922925599856350058061991749072231059571510235998327819073273873191453873771810659083806826530584402125371890764923146289973665698443115678961945174371924256619995854198562460462756152917540564368164325628088786187715848229565587907914988962622927462412088497264549457217589367163892213425099277222855144439995304275129756570206622125195729288579759251135567220813879101536550297618212359782401128196816677269574174219960047590464459861515184368941962711616675254044985150564279452724380446323079153003982545630769936229514127552552788931555559719302850916212351891052997976704383024981938771271161479546212018065465998507012173406955896173179833156197190797647308326678327238539393272747940698564881842326381227976748575278597141711217633639543897847814171080552105408089404410006463914613806194982241969338138909626970001323123714182735021230522112560318058171399727304857202639891941317686389547568893007318907741011925644997119406722362078732871521976221844820701424803469812406446793955709461549208694576788393369796540178208306229939735405072619640499653249118571601642092375928002522469881671888479391375968956040002804001907123596966466118561849169439838225919027074055948951686714265784851470109351870727180793791249682199315852691606066497489751686557080129131861121625431012557302681465954596192392178396431414033605915684342866959544716192627064779620449359029002309855741447275568766621217866036231988284763597678376040802692629300727569372134942641316342500641957817999999071595484167112143107651243201898038888990698416485053877179595232360616407898971386342366779290640609258581964706198503416109570440283574675879222763588296578292857723038394906459416177151899076632668912745767608491973268457782576855783873464181540382628832104808866008647102155029930828690262263404316472278187987068887737188942090949938182345973522605653807734754651900508103998571968865550428164194408795566067576771743369943017853602927329956032820637120190588443837034476670276733352430073739617326757944006925536579233726520701737972986296325326189846307418846989853781895086794487515836309077411662239291916156792914194249736027220815050149344345944457380843971872372075827461347465199109301445860711220770625070839563648690311510896819946699517360015015023557717179436281991093863810805831678383874034247296315386392451355340378783875877602348831325745364995191395622469250690970678415684862023135169228885713015572223142015349815855332561523045650227051735012566140409006187535174724922496850596856771759301402358461583586219369717367161008903069215013997280851123759629564019794998142840244722047646825920024152166628812930357359442707296222353137036183255938328557117336233609874130797596841026475058445085281686440549633732878530689312965329289610039363878483759569215018336377821579200412284236553890403281257055039661192489717241663418157266267110521333477233982108927600349472504476960635654205382937200942204496137918237897862279324462824566694189722218099885657076693622797989510662565732002768271401483634274870690965026130109862051557407188962835897209444546833839069241027776053631545187744451746970414972083138651262167394613479481427619489989125752619743143391594981534815232626945373661285812700498981919588186910306355157208073168551944005584574108939929592259358744949220843586773511331738387921254691933510736374611106516358108737515875781535032813909663866480440233994945730410517492531661855895316843991175276711848239808944728803059996817196030311387059261047338433958558363969959571482574122537627433351845014249129425468883943727344182504085551971395646586768164880687621534505131087744747236115107318243924899082541009608301221124540337448504554824830458363119442707387698034484800355964630965960041221995300703458664378985555155898360533710493296701516700760920562945654810586371807037221967734882343068608576339543936427819919273876353751349592020372886542875097624587408235722046218575514763154741807888599403593372287815773236713624854412146002883508547954881938575363784103545897497458477079407639949140034137165816145133554187299973130621288434678515941368922086975336624386747668181440921044925062272424539445940998382171971935601975094139528031612979182810351404399530895259733171658213386741322699976730000433821441416298417064355349516349701074721510018754987680740138208739871966835773289977998176528192541814689595484567585405706055541698985238176304969646793756919643729392112074520595384147675583788428096896922940248632079942150010262291821725141353691067393760713769745887016776801304179516900856774104469328758815062884926692718261439768992824928948636507532729959252631359703354477713485224988350320837887445569900945090874213415143567539843415505115355585861949627615217196188927921951875328744432985202048867356605241368804717788591520896334216900282750444589217087516613401753229376128159301848037056229670068023102684967071389826191726202597674217246660175257525798137606539978152265093832041783466129300723780588518434844659016638746976395049354491811901197227132287430334786634516693181810825874343526791725179418591148118176056033962996719726663117848605141954421705167710742205399358656771259240081485822940478399814053592044595075309436774821517173652948793535559063274826299084069187340560954297609640292920485551310718113888613144379678786579442478460117891089836706057104870881680693879189947783393570182474191970299898702746532018465587384480254685271713745707531783660359227723705457030243047778350957160252747203047777368444968794041849118225094335113976990638071507432223467543973081761913329475200435075422388938405051077649011931514755103719594624281831620672528788336721893314108365845705628315557053364020426708925634637726688651024319142517593115938919769733190448568587032862784753523267065706265113820215809428067474333650382799255583383816329461125340753308214790693779084811484956954072984745705168960586226500224526917492248770905650265797320573388243950187802300212792251700734676261938210914410358352109730879200628206528843193848871261012060460162904782350317015201695199730081916108855044049399419141563098064974192265539958494579377411011477818741328366992273759857256136161478692252984504849968640461044485780013849052766742722219818186456977187591112726617904107463197748240413184813090069683087277677344504054533648213988099118471132807205054910997237358768032677069756853890078366742729722895495215732196409848009739142859741451640416288038395206206057232716769191702138589672780105517052888317979734244317692955736024913241322012156978491819209387775845305309930015846817435069123220094798910141373292647338652716545211841750611608747848971272139459863474009116519811980556121917917111339125859688297941185070933165308880466812387278404970152098740998838865334722562954954667943937529702556242036125628846832982234306434628858278240905294591618963227272338089685956265699445834947574029553268156284815900407217229620740766536155878962007815648593843056847006469926884735124704677910779765839308984852779172041576966800801300698472378767618682887072670622084576010700064620552070777624242758943226759655787587790208714016112258798627519932320560981623957606422124052782480921492466559782411077949547735164931588784005056624416713388043788022009382060734471966594803838606628113923267055909401714766237587815158430019247248332560299777318781505507376731800118129516626561935450849589180671457251523654298677332312222791866103891281321968533724672923201694878394326601122825513656675995728869118388343617681377818369773086496327368192782978116498877821556427758172523672738728670683260092571534166497056709309262742800209469125409159127220633055762356638685148226945492944851275377724809330659199776517538893526030269221915349449854190128014022302707832421227054137156903910248692403553583296326143782934914691453110828620109587442654312496034866582920923975791196224660974418176471388496997534006092654563646325902313394056928351560292339765674084066838468949770093372874400938101005077377152731178255257730891435150357257109056397322196373676311217662817684866811302161820586639780584260924667415755205615879109383515814621693116515656623421609860041354051099250593601365548237298514783411758670774687796666375780106288151981954806552529967376627187178557675185030320283074174711187160888364875637075876691104038193677287598769909693861864261101770272840838311240988119588431818531894870602660020556162019758195426705583177388895785164760523083409520329087198492332961549022196838132501915661169441432507085584991441377575762650577993453744528335332670606026147896982793630767022542768693780353354334182234807262718630537229042802561498890062180716327793997811821247843789494380385718900948779421595767369603542419756750674170676802898456293173382832606811654412994194485211812986238631249426377418634055536781121387454367443857348479465860648928089372590698279093886161337925096038747005504419209852338967716826142990272466881339152198366847808504187043113833461301028495399686833652291522515486237119868462596698852893689023852001299508128706026759366032452947093726068698046933134980298172537729750503975185015189864589636628451845609481057975711136441808849597041358384188515504296118150831503613219707300507300178758356974135654553381843919326970874490003722681320482994479100135036760635315300554606010171925287120018006487371698355040734547972333127743465252289550146872161463807743743579433508838665704118420341822176432165649489989315700092364443121438880903207379729684583058627256836178075221328788256668330132270192271242075124954732378170802174862597208770637520660252934818785244560370162747692412220350769357282313754440219737969578206477010070526934337430679714803369401288203392374010242083674535115622989844398891058781741090179437870459604617170366211740086337485841771239251469517190913927569154662387771777903711644293444638928712435549024898831123034724213880076530163780396588582815519614718260973178297437619774324503982960775755332265304931815617117316928759877653064095141543521050512040650597372015690812832954859165647626695163020223039165781343185279199037466394936224600347368231828699097850191983247584726813966006602151130432334689260288957939469332022626806545391775248764633262060320915386764688654435043113168661515930774583125775908780692858845763595661228275370418518537027542663288800908782588136396350524817431464940215738060720676218355487401927047159613246650048082048311182569649500979181952848478948895541325644586820970984209764633101698855075190351655566743323861603687774275205553920562812159632908647860719353851226952043864316854967939213091277754333842189575752232324589143481056935619282958578564748778833574626636950293691675036917705352162186234790016723183461233095613888069332662391778973715361353790024208105947645692483919844524118657193151338807121209582321664940517800930997755535769920007804623640080328986252418652309778921923017892370400145627348064488753920857245766294363745163526644076304835226774686203082656928656549456575398966009962493967275531171673388759543210741613670520790012614243472676983211824723722446820505136165350307048994660891771988859636170393852900836913597622623798826077058165490585539536503155994158910196696019855607595094708546524947368606408555806297556736690275358737227860836756507496232250998360120485485885486861471823040026969763081300849289788062278310299583908555439912072831387415400336339835115058823085094440545661969481924708109976958997391691715451908173640193579091105363048002762842910280625251162351211051484512161382619963309199681881356448515173423982096049022733449167060509732537868957449296508036865504274245292676621914256624184649835534920391013206861620999482002831003582712655235203304826009057740770200200626823920442619440051194018742705179138049030775936609227264794334195392427977838064226730938587812386005909852393945935592517552246020036291877601375629306339296562723436915792812642523103104090383570044218480369298582705787677547531550903553940762123290422267991335500600610991128815337170892285684540600642796917795662231467299654498135512269276010679300069368321028310804209768984710646027801934596108207319885073525869273095182721762517562413221484832611400563332687982517261076434011316020972010932648670842879808356432356967470788207705782741189995799003154555536726434165179909763273920325019226044508108301150624089392430318711867697492620676258095571162431585148360729130903727720188431049464509726749828889752045123757123739228210956500172798088651339039753612088454494106223524900028163829481849043709878817585756182375885390492433128035235814005257570343239209068434281007234233961345642299059873289751859698171549130745307133400567162262650123969203235437511974433730268665567687122035898803467394679311717050550114512234625101872368925964959431627094993034920277370055758786445496128265532835951744753430272237834215593043503667596827376828971506156564389878663781880903301916939314736479329280038464815230979696208986445694720095011532700342610593329129883781045271518423784509162949970974011429445166545042510050083356007351577837399478701299726387176078922021108289924339219000512176770632082179273275817910337778475302987468963473944555145084952995465928199478749025236583481285125231952380217884969990194925643804353901311860113213408332669337371170416590948484937004980025221883751319334261471987966116653504874877935320157508684689075897770400085889377484545140396571809775817126815167285100540604214166583266386036973378622068807503555391678974654001234650493370381186887751003524335879282860629692491911260781466685130366420517259474234321826086810327807384283236095054061737461642489680178961623838769109789201624509740056392125994789320938760961962111028561670649183633190747091701362494415916455804742133435574693123395507398585743459475991017005662382397710774835426577689716587786303550723646880568021095952969738936592185395434096121916321594325528092542793033546604364142982741045573510214124577256102985730054995350291406754670968014640946418996536487829775964653268748255443459012112402612317598068253561852935312447865099697139564165483931135879494284831208207065077028478529087594845604166347769993661639505107066588937652332521707273019720526276150763912538616979966541603967199816181998027470155140769259112085882731864970874814126810346070006457162379436939337921782924099315857672414557500066706221519427138154316150675694926353150506207046469740601092153629380112343094553158349322575676959657221093037344338551552590017695125499085968787792142707647556110638205772539132836435632591968144238117323943339063903199909451202671879425493245341403839773834573582888041588560668298147726889018464361109739753840015856735155547369749687451317905108686477498524200152925066938902028362930100926846735571638398398263272809837342004690124431619187001355053804428100854588566680965179014540968631376071823000311092850937026065566528838435686228197345659953313903472533507726901602683848139797276268201499570683784770616213767034370538336949197579556530923951663260833178726719200435678955226134953652780665298179541151503412568236483234972978414147644570601728280472631493566678622572430910271434524636171556259933519209327706528557129077533190159393260479209438764519716040528712957029080658443781391672368584914592228719772673452110885058895726667564146512328792120006202965419871380970080358407167975815598432824061812213556255932784493319187408722743664102095868019180622451591949996691740357503867867260412743710507254230504773265731773376320234769716149008875260598989324135684301777429932210123882249806545452377951225342310336612029885238468221477819188110800529592911596808959635921079047288763971540587956773134123718678051749935258743110764256519726831473337032805992806298250461147563990197295784944270080614402548013946505740158139026577926881193162736406675812048544503947502899001632648042200056784701302456962718174645105397772918331435967500440069445983496848682897580516398092015521420164623904013920365659739096372773283356091823369917115739566186608821752768117786632783980083646823506434585078810948068384715663445209581312963880044952318371101051345356709611160387127829911687536651742760702801051758099094599577111539226123652758584579718836017802477150338810300188940915347672109624986216998754411332010539850660858290757088532112759222461622748265880817540607822646625702055431085852277952836874316423846041347121362116023241876684371589638084189141910511558095497577660544370179797189364858845118163877797564855191998319906634869697366786847667789404760224382268674498263617422075913253459601131377915653950013205026934506502017583154346168387159404661050025927906506902514768315410614415110305257911272468519953970603208601416919930442157403332728979966087799407519806047525158700124257635533262892134054306924414919112258209279949137928652931165322028768699681920995284053225375087563661982359878471769883682188545645821628817214786684061642060498388695556225108860872073863729524646776280680475921590682683681720338112959031385485877822204409728824897997911076289481215874153028947468007017442626486945159794576081966501106003504317749670129457927318104747565322422750893033205221559202881746675579904763514045827757995748494310965217793000309689385342288482942922314345264914902928661868364954306391714772205106479045924594940226709174917765863977037266270386920343227098625730908854193999688735171326039088176671092844267612013725199704041125700937777666894908581409081344661685636072464596272172843646524397304120235329578632905602680758151386520979949200530140655530338521074020309379612585312126055353006784003762697840256464593864100342227843132145747375295460710887685394229663717588168027927643639976907534607924870240692930781597754881853050658981825570172828807032895905106198134362678608853708178171323391923467783933008334558788305498974500222604885866192784374986308119871394678405184949892675085633780437552649268465278346805439919541537904283357573499247923251543406546954481059406541748067781593455227770311748822665839857693207293384192526856469862524429089055300231404912020770140360908752800772940619600702662363678957522557017718186602555850428810996836588580017181863819430994711182583179643359933686043459645219382170363158761473355978777561923925460376547474037415968532237627999940064235752536426882928668060435697107921722744775693747571076924884347113357149323480260949149103253677486072493177332565818691857799447785182878712459967489059767791557620321205021796007460187271916473014706359384056425063079698400425100719799189974773975041032517299689906450220720012919074724294535421264440636199543992756827980321611023610919258036291380486727398790688337972922165620087943245207343496445547659932258366487567851816870904465728765902355726432183426717308931909177655933849924319598213455219737885840199201685483992482335805280761696864985667455263548904537248515207601804953338702418703915213926680555787840817562298131645339055523075553034354311034318665814945433538969231697497921073563830948661184194561706849340988691375167418489766259715349710834682802082891073219856341426128182832484508309092267230480601110795820979943965742974735634758871643708782171170338505576811379522271692522111107879498983870826818507500080184497224981360481224287115860114139492834549297259145672689138406581919119321391747076793449075486973326047275462769456521690796201332114175511976447820959113026716441039410688938819487172788149956361413516269036737050571699085741094003151181370108568881775771744527274643115600935074052107935178420004229392367032326847911285801700415543455789863305580122742465377364887774395616587680881412392743076113517629958817625954229723920936916887244025658575320162203124814318633577896041594003361548422922808586160648650060389379538140713005831788433726776285702235464646645928265545097961751378293312882941979653779115058646658802714622173768030804339294604620065331254249951100194395745059100842971705198715665056280191893749247151739660142534903384047060151547152643379585826078700167015387536248743536557463144099020684341298923833323156992107469602336418043934091130701633441097708683723001268465616719724703624291927977348407404205967944022703646971905435958107901634048142386349731127069028650358468300139559622834345133954855757429176419951282567486672314923241149604870872060444890678342021397101146962392846489029460452558686863737101890580383868190565648331685277993492006102572200098786421090014599209179972040559962013486198250257085716744789138378814402804619514649301870107429983673960405923610060379803166954970497893496370770563124624133348850648253618276361982251606777343183793463811099198834894615545558367645001955775536312683812650061089746483730647201264156825367532488904781747128115670125211755150025913554865014900820491500260159035851604784961327498422434545003866955654471070066666575156914237596059825022606860021044747934098198575689704905385620850791556145748481158215024119936388056417671311310474475809130685864016287837697245639793416650061504890821816977483949428873197376997329899324360535141845750524853595416665363004178462527232849765298875745014116353518548766533342892314122828429120221415188535803060358162755610810637979373280704021915083716743976300898077682409224923189276078275097828756069604595711963590645218393326574492357312476097062194486549260429740130211986642544283103985400257850658502744427913007131251133999696893636739404675657372588429909185769839038415472699140166533388169860074739306876320398660695314872671859745049358307681144513906944971496475234569462100709528297063585260122568126943212614454925592665154242670060091920277257960025717342778781083731088781602120233261096291007796036503067997766420785620366119694959191918348864568619469748894921180613501348313300899926466352812256007274002974470216569537133466545302149074964056883127971559018974348478733020243193644534227207842377386585979223774273908728600365127924986289962138665698001229087483123581014263974490396163505128968594620359685367657957049650835913488869498314070042898063794965666423895820722101182021007047458276318693326495792359717109815148888139721594959422284646619153603735949070221147184866276131914371979459731437058678953299625954330578907193508791991886659576941403659898626471938391772377509947581506595422615492062687114108770955424886742932653194160021649963485823814863953737731526986610094566501930792174225480230517279403482605876327390016762348200287628352661899508347598545868627289561304076074000354642061360070327935599922328793282452409346071025372627863767341515458398200689768606412627170260618041864168969660053140907644739777560306373307591646629696032275527360841303486299985210454932913527692682788721247345355020903263543093288949828639685954602607423568587313365646067459229556305897139725628016072659917065002341072203020711748957198255089059379766773925628544725595325613177310122951964934413182522015688617647824639527462859122486737938364746652488420676014046896153721173960222880069756773510683565215158648000009928321948678311738242302220779194176104393176315770423132754152585255144634123975615561469087140218567411243231370173869333653722566009753905833396088659244619886932870450167074469129574277428883211287513786384822583929604472240658014840541049888031961880156284635588535235817836731435792205286509675929558693019894248430763785344951216946539802265329945033006634213823061354890189364905505406557147180690539222859670394736700053493301461441720912465844535932607590281951553390501962769130152661275062780553432757663175145367075468008771569959187719105418027220608285024669939253726465885237075861379599202420228119604056034675354362711078131292933194313267661747511600487234686190832536280453128774199352790326853382452213651059935801141989934784204021821971250792029165908253520414348482218861033349529030203663155114500989308185196573309493360435413683685333837266944146645401855844143741612687148574724536567859589518553102259126831332483607716945000743671861976578654691969576953505860731239837437949597407032213039913934721194965007501638172922189122134128749506244046514574372237280736741918165787410363307323949951935037985753479032654615311012902134133762545955865927493939474988610883197926227804598906754359481302933755252484914782419764166933468010071676750316200238204877212971921897329934261082245250334615713520583342482280429384641682628278636629377447206177611458988021966882332493095258845534478918138523225642793228626842866455343985821668941298709693605531727151882425731429313161455792252432308553320348994986501509307951686050530741277875865419379629098299938767378232838815860532822318242560136202075599809906684013811269069761764805872859558452968106847647250193476169116575541155044977841934762624533575789392174078995080967229400536658629954683809867574609902577682110825886288662299437261208319372839946405169934359186666579484384587213993169748087730531851608727376747997491060044148234448904699010552632278692484743714769686995024289797083324027402758553160256724809122433972950390790666766404708262537440340898775764472264941813980395876867832860510383062326885729770788651081263962894515129393302693394521217617750607294442067495840326615564842556193028477095820473167550719802921070344183084793042547663524165274519692009583467303803923869394759065089176998782687812140424298867988331224340177847844428962921486073639838968571002709729083728136307309193950846662190053922634251078544147941065062032666134588256816086128975856260146606884166616774804400725273747760867977408809786710169079606556081291974730356631869970801612652637442338023907085664031598978969765300346092242712795485579793266273508118807499319217433346510423371454605441755214914629047211999835177930551806281124294707795255921300474629216436375029073233324109734462495887754247968841960592587364113997294470288841822236461221447605085040997993788394286030541766842232108121222509428880798418805636996946646495198182652572866537098531434016645288643529772777278151704291182021693855030327888033640724372936622978322199816198442806573915886269093654038864472299374611751508275355834027743149967125584666516397254298084674677533832940295878242307052854540184020212368918846255504774274957560300690014036009320783216782370372328470340499065380311234196855003412126914494836908961912243435523287689262734210228862070876851124776312553284204700240220772124386080746429601155155376300218045394428537534742138306811435880011824819232685579523680715792316318754639902633287211791717518113188745620236150491990030919455607418578765239770358198591506451844770598807994732788516827751774704786761113145940111280566116020514301268904387483786774993789477304679599683976594382334870455001483071805593506837891145883003627489418924789934748630125022279006890258170212924414402592357868560776404127420827958710886681966041003508497255262286577212979215091508797647292196251889785988887934820144068465484260832688851791093794511945318172295628093943560671921184481000412794748864024747137183109163901927082609356361767778100120947463992235568691185300643239230764998539680679872057361033769722359982507003020591202054991694500011411403002924351060629003062774312969876110288644860548992849139646611168586485163943886189675731057254577561461526343494513106196108747017009325136274757964253131755600780304195210123994757752619282025154172679412921101182860582015337143805822578629918033970052791679323803452230267285623476277973559512194984904684524562600848434533672951472820524996020922348382633849405983191474148423817647700273453260434699540360323263879114455476962352172185806278429474431082031577152269565046435107561779175675181219386395707550420950537245825310878135265126235591173558655960570647393874178704195722154127329937868893610903394840995159795799104897598369268039825342696458678438418335858060876313702637776585999798432989649739492752868668449284715097006177987817661518862013003255197607132670304002142424642557147048042578643015350581311922805979156296087837443238836162355571233461075578496276819313469290841156047338617766729291255899119747482234784059609020577126569871570683639423166287439957491153952684091044375988601965199091927138550464751007952071436601296021145882567022170172022809444151620514070996413941670824265212501109222540761610296279986389714057818473894168463289735838987746001513509113860358941377101694199894486811176852654150021343225901585979694530192869996017347007898682960027570365470399054821964690510726019347075601987186332493336635670606020288093177694958919219922477384072330106273088485668624570934726731620263843320405776258480709910795095218149336589247279075231146244679319355949328207582427036915673922838982056245911085765535709574042804414715716765643071796454253906178514941554465890153474461560726790500276102174185186186697118402663998075912621994815445160575308010685284400251745074592327503206987391752171793800935966282463468869805441626689505846985931390254674551522536228440189104660606005409253442973433421296517146092149042175956473665435982400272703789628909316569873136660068634582451842748224512134333489879601683356170892579375692284394124965096527055684418679112801866185601126261421228257500441755378284920409753154490753164175793101482884020599913995084337996987057050731325290873823351237738403980061885840340096325688059941642932292091922380427353008146838238751426949212912437813801419451313730775117686667502891150274597030595277799516413592782453535508129109222161484183617179328883233735912611326498139195711775270704237388029215319914935895316326030463131420580687828860904625393198200761707178952618651166376275672913245325773489522527147908975496740943495342599407873672918528915503883610553010531487441469288760327890802667298720349589621387772541742441880513052784806397308907203987074462656642146409140437036185877126949781408095536684920323741533231978675701572890735113785133925775089005331444641946037868064551970620113950391908116470924626121237674053293103008012879526861730941494364544169710945919841114180868049794021934138137542597120135036210435302667760165966579508106624747743707762120515120324328706457220445149155689073001864102211758882714413608427863755105166121463309391268737154021765578609187304245641175277816120118485973287067894062425165567430449187475869572400003719357368505807519487282261410829717033221500347461935557460589135646022961960257689480219135632851697183508685736983028757527901961467616644543688112353085031337967140466476238996248985983597228177151636306476296529554753524789722096581853296994433808350345364501924799837921618611406901602833642221766791368922911693653538823762213884912898841846170345681590720157809502063939863920112899594380831463099442756239623963556658610717286781849803260117603047471452144320215485287767326673930338018818803374502286997561715667185003065968761812239491750624985778604283242777791738544652767340518933542265357152534056437971675307011460580819497432275805673338022086774335527084887839800250159069300920471660400579814177233133664570621543967342833484006327928142568924426287574525652162193049270932554736883660287859005081623932035157379548387982853152636689706199051067568152467976371335819575377690149194368900178961371019245606506433571785318387160180995371694229485669506446880967799217462034552503127133542852897706481290847346922731985422387214925300669962347680942030159978044098307083673240557011532300755798093911239579561920301612733725098598110419829626505061766197340933368538378120735451076516860171205842549532839491413153520285085284398211398866827092116994265968905599684043866676071390903045376716365193409085403628423124142827874585276563932067731778642688054387314318790819968582671443692187997006948947889222466268961510670449652809555574880583476394931812561441540498479067179408613178261090275019786322875407554783453819469136248610834166206092005481139001505549603224335837524507013118651542263221208749255835414702978993102242532335967010089943930740240689815267589987367644778149049929518509215399203135365620539924518212539065267214034823574011530567368804750210448948108557612382373856472505557779565012756316405522638003707008706980870598666636740638964055993633879279415558929924167217510229609449105565785063564977315939730005045342288837749883679576123748250323341590309932124357336816735447159292430508438756406128670147710186657076365264916771735901233275547926481991577620694620221221715295668855415412758688727305725477707632281236519287872568529160497867033232763494500517625448697593334343512586217414065059343312907683791979657679924326565510791344788011964576318161008138309504812396686962756708982454381503139142821140460135913995036153977016276804373710127829382712055935547006829131029512897860141759826850407885024187825444199437390352885996108333408393931792857491958023425099071591437676920744431889758019756894000691655582890445379797915770955784696775860158511220651289411767907091627068127950542666424835380251003235043451500335526173010265955010921001899148663736222956819088261166595164691127596494222162304248982999358256374818342889222083731734215059919384606380646916003382642729005341251248971316879091220451225896260090660696008084669153093187122160290834345429436156972679949575258085192673296139001258413278111072225916052395737103961059023216810094827680455204129080904094729607807444254115305890270346027296782081818549806186176374876506145484879292160571165162465174518028773925019619498017304055990334839309063538476550706265788015276688761960883592088000749622261414938229592392888977964228171051443064050445413641183567380105402924276449265409559942650045049732703828587255310277300242862956116371593231514085249867651366688995366310109391177275964725480096410131635698113003865186332230675090933096774998419534022829890961388161077438423127122681354863764894610642016506185497623947480077427654184757883367476174483510126509757660194269802199549580123613413449688709370182865799293316441237156413669489839736806439768557873996432223838320703727502588762281244906181851180773473841481367656713073966986242508792818103919250532435389411153593577756065744264401815489809097983530396107819305706443074694743949852149290545090229756234298634444744170363734224537530873144564031181069134832648382357665342370286363595143592733827614876951664573963786312604609365450629537606026351637028729673036184112557160836676876247644199491357105399183068747195746147637466344419051321222403813903931564255872158658061697799095241495246629981815646692425238604394909054654331148957020497072196075278272934426497014724917878088270860803401682159738696112434959278340601432220810571454506424574453905584647714512369631951557184429450843893057166747980350105903192730374428930545643467420490414149898475009200884799479712467129803701284005592152429690954583203798098345178641794851599749950928343887918539771654023546581242016670508828275723319579185438512155883491284812847606609533481647539325097279966154453368149937720395053065727636131703546842481895175402311620596092795201481316908086472958839124951908274551146818394487953996947766062106841874521423952278254275569563787807598711300052570052552384014267680176072576561537537776382536182014037003204251307923964923672677693627839932394564465528752880578112055057944719056201788229171162813889698911954151874928168853424275874033055177348955177448669821310412340716860993304223134537560967059677258761048037362835949197638658971491360301724230207533895606840054882354097097128804366566537239809984793646553930777345615312365266682178687792202344273463276230415004364243441326188641049794819743340180436083167487761698372865588975407841159739464363112184719922326024620771736545238666144469683504248012635933922926109532612463109725198437526387423290021579951073613777936292186392517606885593601095982054849476006211459138307964489004461772394721298291007222314126658569409605947612043552660190375215189578230352369355297396749784582750056795651055822370754401482492260900308120967623092118470444602914115624952901448234025046784308853770701333577837215586281301522379466821868553526196949216829614310613095463876105315799097080651334212209855972612428908346065757561166160549349415587706807900330863146146217294965554389313335240489478888563258139605241311681627541036952436806228247786770390001026553819768813883816810418514838098870718579121752068730037225360040564877699297338393732397249716565189567118836888694039959878002890646498091126744490913616502152963707813944494268381723557819598330717247798652573736918950550875279289969842223856847194492138587845073854371163886352770313656319580008236969052014570015276544059078420267395967090528697838713953120688195057086583149758885765145781860450797646276844013594179402530497278075228489437544784051576006739941398298464710827157740951747852228248737840659862762422308522331131728360057759861657120481472654616610207276815559926296072465966366115577817006729393626731021335369892667559378024138432116670379268910056145558449837826139186586673909861840290584984001466647648340551510573076911050404945813695477254612952841823004259490936499307039519271433390327938057180092608422105158585260390786560751234820391460907238453906926593127170173548200002022816859664440202629814913874119632335554711636460527146032839983127052059522055363361008046043464534536786274873233276324979492865237491312627412953332894779949995536379138714126648458786911343158489637680648203138473326169003199797407589103062546330358213469572884131603792575837028583117327876107875279208381791648298868397118294159230465137992938904194194874551529029752322984043412333650917791559738332845425468034581533093617135087026089054192990918944972985034112202975670637095649936501553481535832025638638764464341843263419635232807980667545992005357350623731919337798993592551863420587575174016348418633059914924981428751597711416710809267710977133561424803119041718650205952410252461659374026761005739246148736704591382860089679739452154805088727512412981112470013422947901081640707677214480879660013466438003262647498690998641728449364673201405249221551831226836458921372044940647456021696964165771031734489138114917264866033881509972932161612512383145246229133329963573331751536182752770457232787241117992536237312582498128956080529342062609522029379006668957548329299533340308719635069291884329680415468357267153505884682113711779116091733005464789244568009238157997935177162463426232037550780194320147464722170332802406402610745245020570746446945749141358435977236136008872362385641636348943474151404940081513331975420176014673452208586364039083727441554313836260002027247325855341821975695940089409830244922579631273873768913061865071530110774172994411342985183891605300175593599297502270642941982576313152258326133517524132308455913011224750845340497457993780296022811809277322566601003240614855292399361966481307918500914891608967730559303483434536531597033480254743737890308864360143955654295065384869159012278868896837071712316869080531060525219424640997972423646091202260993282252903386900287812246731578137628034209093917203642229642835870936566266400853875343199420513536882700491161630512050144269931045191627170285448462876697922238689880790487647577658852961226675929457206743541477405409098863610203197372772169315025360773816682757763565345088077258605275841471293239236205224592009804368165975459888289777540212330046478020269166599570956222601798092557944974264817132340195601787629582894631982667165294995321113747424991193506533052821625090570907272599427479329629929178250985939534563331432108115625079061460969481648369905865661309316895373128915824378355296777118280694908711606910892041703967497791877789547337245541168871890040601359985675416267784139047991632509145184113597104826733642814863478610659701052519466352068088999128150360816873473475411887812876639539326444980791115473611068485812413327398999559992864262637763074024585727095494136026755006527724833703870787132068874015729236408005444744125398429815121441106882648402954583420433387042009658246589729044771161572935182386181193091950063338228308339636918439613888349090985086714823854177797542291761304789623360046160758922018568823004947801789670930474089226610393916851554450162748554488096552587620046645479053965475255588661420791867033355068073312778968810093583996139325773692715895024908157321872025590319656448289157953275659648172279388288772461105731850455033318383680755787856617842071460154064618635174910370158311737816335578657539539183292032356189984603757465444297962891741096955373416273005435539229196256214657788970754878337675287358179342131888776474018206328665655953577148856339873629331461715086097721157954400957748239636710240877497192597783829363523965237810464776711033199188581535575218582502544698949179032050036372924656246046746658567203879924906795325290070579101250173423560649820459209888408635164075153815388218852476124916246834300159867740706718433601716849724188034886651116759765452359948157537543680012286530114114402869774711521723193997191788135929908389787795132641768377666569576730086682092426726258299797817693365871136359550390742073220344775640680862738811965441746168283014171434978819819746419662592458156739353934875517735716842248801388054962972683755272788397044167959383237978402377238677273161476598089270883237557975829661095419835956359178456775547757160799800994470144263383946358007953459200034775696593851295892678431869619797740328933319278136494937127871297755523700815757731670743684750747675003615267999303731032775429295598215922768235265462224516834949140506260587631707237111411651413544526315412259936771969899608848501858688319312212948636305006845095307925954644762991685681286867543778254520560616713748412752574743195631250704673037061574812706971802184934952970985714503882365090620437974476470061019908001651057969939548012340357179874781235825278761783296573330080937552230460920129056832169118382863191983295336173449788404848724341033564365074845829395811203343032415996510074962762380738408566880564050565472784934960745382085441176986905806091931441211140446117275825058336391189674585068046175852561647857935687098394156583374814100813016122207904819584684508503185717154290841149357795148999364395341611659916847596524238011379455155291005950248252232725776870753031183148221949199829412971634599747076178364258650338669423200947701733551664941784208387659063763660490085585918389080357417963080647457758308493936804318342654232132475450077774366206952957882977586267614061089716216914970935017342595527446302567711543223763782482661827667742126005920066390052295708772637216510824841182108182020462259184556870322794285109454258739000683991999891067852386417873488962148273987319815859551626899151144926686596266178076340480724081258865727238880904470362189736924280076450413506003308836262034055805438105397772467426087352323228284185939322423847051879520963787764986724080418049534019128488374102719255780694102245435680691837560270611760471718140984756763624317146423515492067473765204089578341173123707930553604779772696974330137054681648853967417535975203119803657912291117181351461344831062991892971847981325854208930417601840398935190409560145926501317276881975905175749406166853039399111497826518974837230042097899392141136334047813183323059880636023064549926990419114529451795002221460023961761504615539649929351635556609033400931684094146787414067721212743322275433848567004815655143301336057795460105814307773004679177583708306907379440721557638947501140052534666436871190076811083005238961421983135244719477416072122503952136663017588813557611982727386884397929172025180750372414975189609121842240564969167422357902506874868459968311028375973100884552217593283209934577874721422165634029295508869828134745452290192487516121858163129385848314147176251637098701576611194968629514467846019283459389016692972487107399481929424441374472355307163244250373823215182133612575377976783693725074528032347757061785478943886852643000799380928830007883799711610418879829920655717862860008720816719813661321716168939502007386260368515055878166731747472668550249158483849913509224515535709628896052697384960413740909628105329427414613812061999177257809194635861173517169506736327730389967604112401753932486759849452904223230316268793739110494258146266521553219392712798830359503763075832076080511341882714067529747525899824205145881957031686258061036808530889035479310112392491425530983643425357435027270826372992394237193917277951733318728444645798466839739660515136384672460464155536211942364069610887555728086516450072011219695815257397840439071341676962731067643160866073767192104480651155847782021428455532895749957940422689890220184529654547944148709578832238148289497286513670281653258516965116364199316789532378423778896917780339367225529299470526925861793138326993279034682447080381755598596026945232608913838504066963201514551232010224036317313103817531418852793332694117357989829327435601508543503693720105530820320916325539656603202765243339198040761435203913324669767457142910930171321428415032177791192856726712684247160458505461669693492353962778882604529891117303691448278893937971889373549427597103045882961078632016528585761750738090762617202956863083308472335835482935348908273121237334014369868112163627317437253004196238786180348913149075987906412643132186340314658674061847275237944559611631921502797918716317509904608443833774324042287884575058248376085007640970008495545026020996392969531404011570218303684880553230025941581025585004987271795743837424354091011088221935095667694150330641645348184257965361108275175705158350511948638552371774496922111799501031256215808982601354053776725136653117051351326824722416037339621801100323693841898222474056114068891351626250655279734015572677674726767676058591704949851525118634681845375205502456902102436559588518165440357676736138106292958461363646806771119611066755069677141706074691869320815735811837807083126787814330843262556931392326344689219046311878511757936194744980589104533172554947328013737351590809304720060603410924770869807640484837813762267401123365139819532176223852722178627808964198630041780056055348813207348059889415722762944407417217233370031552101609320837399930095705623069818836546267694848853929422064222615888410387675378559249972390337927222219782502486517682616158571242390481362158323540842503283646875103610386467149540609068806961113281469906804974698046464955215539860559824152287758743185950936826884516955222793367344668146873849825939836259978247449699127807715050467263767339878237676105160351883661799766448983941497615560473552353856224209389103754908484594210151673261212446120274984799171160352787603675285946932093111025302583026273631373919404741760519135835427373813409098915635185935994928298067285237077244758222038614099887275389182174217322503194052362982201629566241049766193185743285588989477193095064985307172009609449817468022389182886435121421518853352734933209822217161263815242542263220631113338977235950807701258212755684863279481663120111333292047315883169244018726869721131542096653376658008278272205675628870948844366268902080651060326380964628908937190992027310246040248039198370867886087121094851460298136163786791379685142064538951125225952981236720169738747673599711651288117830767476829826155206118646036962419064475731705464716668332923325266061220427596498572065909501492404687090715188690637340491539206313441442966472773232391036003042919221647407441664615492105614944903413530737398818219569705136892480858495417763373052366729541638257517656414012734444058835033018148155487073468572494027221345629141997594335050193306931795811833405215246035712348804536211180400817188482735716013149574610996908963140348362755864013755713175623907209819459803808779526577519179962010577106089103396371964585848863854108553477658822178497924475362594140399805768322028118311915126870805383510464919500090407115910120239789678854444014045473375358373790627137827451686747997598830296340656814224365949589929617775138089715246616254444222721868688637970582556916865584518813488769495497290524231979379855741750108859625705432164119315176034474480570614277700876287367953794865496691014962572071595719004326307168414531935929501931989817607837975535953764890164591511010383607062178544955489099877288279936326942499182818926730888730061661457952998986183968139847675373407593611888091253605393975272039933443490242417805815043524166533856523308742883774733616675621785109737634046427336310799175317791401898058210697673078652888066074130332075018724399867593325836597015611916146874253487924514881272595358743363786313374686949314684137942718345992846635682188275342905991601417025185616875386255784035198052385531626762419282336548214786200215915226842691118938857656642472520448565780290313594005116846065203082657550206035029815797757650994162098651570953377340016172866947745217879588008790533258517467889969753377205453900013885582158427006726402498183908753090086775670366125123601513036143587972298027997508672264443583051354711132130290986529665837836190649721182863820039004377262609849494828296456057264535983298502327839915424518282506729270894485932698089695907803960964325874200097105088966202763283854213275462099698712769433279330644597919084422784976793206408661500470576345162865683265574789005110805710315218237250459918106546448604094931955862806303854515907503545967160003692549552669950542901370369330384531992201272527030487502214509545171759839499773596062848779036280310215272672776101762847577291691865542191540868274202393596853848292112067956460601669050043407481725916776838365211937165766592774627712415122650415162578247201102378188808104180138459592627136804302548084962729399137467740958308867336412590456128223259236274679203810105540130351063042733163613145786232528814402993844498576641606886183946671561270203990993552936545578917784736113515218863060974911170197762254279312642532547781300741771090123245941870627632485329968175200863690179889795568681566880608213009534859925784484103059346149493067366705509299367197192253689804885752075099702209869520318024299515198903061372448920896851546433308590113995169716405238879822485894712777890384953703562634602615478726739900081774190523379742899921916937279493105462914082836812819139262525207627155308420332397466074419987078805510639742636940383567427912437788143567740861823573635649922988706301176384156292288318161735118806448534712519182063836207694639338052709241266729848349329684112088391916982722208974910247016609044833493955734707293774450150303944687159568040570480487487245123215441077924599850217463578006719664816870881817028841959562437722320811026058122650631599484776443582844521206918858047360881062260858249190291192985937133880898231854539935051395468691656274031290855932840185239873384547458285363408444457503894026306880054295982675300519663602962622917276716323725830194743587588559582133480180000425029591302491799685500613248796373207330485246319231140337498055571043737998076144009578815455393157540844614976471468462647031999100613363333941290157906040932252520879634840684286764333538897631515168216455989421966524635224492487271850313145126952610008305052054763627419579918540195122645169453361631231123679642148073636148405254161619000729572589931303216946870948277603481371488080798021801394974940512269754158391411245916927966378024841438493971926268187569748876556435159179893019006429390880965940907327421667859155515579165848718660797331066744089594140181469339058495170056953096516430039915015627005221152287906896206790370695037893863667714531676600344916441950060902577625137116317511474946467911682952539341781892648648071664600189441273115923264621584972843341608976115377887598838416239600348595803652323070437920782236352997701776931280249125744465714858730992803797077098332936573717367341100475903932043411494791599979890533511847890470758631015115591103227352771423823026203226764573310450307409265522436920413240629278683103178156081252031642339158450802204244177417928623943532690389621549999663116258663576121399615555906091884383654374094328877792751097616687238676977170363041164489055375718302595689030432923240485948860148795374107254634938619830367914103856339589151158495851515361970020182023035871422335135516032187582606884947394142101727409969087193271419524943215159840452169692824221503418598211255075085503490784189256157541326034580079989662059696086506632310497674246146107027020282589072825243022008114925122347767239297812375900645677090276874058572757336067815226134008347267315815289799776937009848924158991742258849903762914861673901522307049440718302026208354087666391653007005071452806618058284607504401546377809124371220182254692180987664820112108993447904425918991988315979618552457372734160631943328631636283230595669542105174068536436853911116274938858984197386640279649187465971053304742150260022684872759570942228475570584716587249349021645870828867171121927838066113144302709838724957426862501423953160367702451645232457187895264618093975461649247666412588043362331120770459798410285125357911608865900678577477793807517554216231392516745978101721264306579246312938393356061486640737520052227542497979715711581661229738518669708554916085738177088725340006261336355537769321431199267419808641363370870051795759207727094421919515447414495953894682029692586259675291903120313658136045732070039489807222494462050270130034561382395120121314864566258545012764627422811213565850730011855615019101833927949601646819437385472506436994284424140194266569036492736406624750214571994147000072637873631889459651218318962542567110689429854455090753515948793922653087694225220545989526211764099088153083851454623693109183084381800238771293936686866711338510475345888537140679278672346163511258691508657013206157785074657203931572823097677783540933671648616760904572824924771569072827620765109299105377120314837446950160969300934606047178961202688236070578480201120987468257248787237036258116100319849757479112935123019552862035402198361124905594810203879188354909493394364404824494082243704741547857771894201406988473551931658521569643404479198532132431448037881255556769740050432885279811630629975965888194506616920377642538235746670679116525187602650446831001948235205085874520045415832958440935816821695839879598731843328941023418121733772767659318291184898284615206772373161626248097402432255799832972532839881938361826786939871697721834631392847727475590662547125038582240056203669924874995320020209292647245931687376987719259802918738634293490335097861379071223663894202040273648542435638804873970554239401677867298611665740588175306845880180830753438133075262651240576186489738214485233834760533462303184485974527323651022981826552205863961262098295653871450562166055215979543271752616121728495228578306557722039433529945928346839715560745146824275164396704289731655071088470224855121794893232241970720675971975992537246751305175068175472240493569586995775431463451268488886204664790426812788621450433054833147401974408858292494950637400549293139059418983345879766410678138913400514229091514322316212792767362235146287588970713939990048545478362169637600955782331373696877320566034507037895959029597218367638785409621260181748468303194139458030991330762562209912261729490501882694606319671048181759840502603578400523597104562121127626346630955575029105978782287702920134829728365158732199194073068509970237055465643277661261668757192657670520307399653082548598083990685301076636914697612677385083990380646931180086537816083570740418517235847350705850089673862665500365394007138523371616461129395273436685839214452829457887991646119452955893806147975535127674021569350779188280049262160585749614754268188937905806811790488955349295289993988280754675683940389066851542809307948803145067513731939105874224210625368886577451194677493715165307432260320649953908358025110716294793395435479634807328033075740809657896617307327924695542329407972136233127836062969101097202895886335703667541227643611605888393775677664732211428062369906972281839565648904760657498261570540452413554645369479229897667308788775435535590042298470228917788386959318878020124578814366380212114984463415376632717625662098284701276616693260883355546918673920009547677540853666221530597888699041340829313855521664094375005372389660810187125300951953782654276606582335584413484304392483615173399605633840486892852327551096094981566607276456133013832481778270974035370672811875769599894444106113027311068965134772363290271502769609293813300927941913030160508640648840710941206800222186690002702295782541061620165596824914483168695128942667951396563262562480876076701883611250848263566719319047747035621575605726888808518262316534076375466450254530684849233098745051121691987179284386189090381774016718298805023677454321752546723073974637603560942138124910551142924545414416606428556345206891201637020088591891206775256586769665894984410209241750733377007908641969057651164080667999842005010707895265111919935939245245175516968279612435345661014986152559650717156371913565310648091940218295314073166695096913568597697398660076223205878379872442562548653145440947936701726356089891961850229268518178823312761628821786195303219423929643075871663780038759844336289794344454471398348865951170056471424384206206808835943917084411805739035421131699069831751357659173997678534980914524906959730075371838330668325699846773632032553432380344245665968255544968544722296173519386743131673884886144366929329591474297118614453892770783170320396458970142338889690607381575575591671270772486044870274939457292670474716449396144959022741334312335495747698236481667696488221844273911601777356570585922055349992465655665402916607943059118191850598192020598729717128538318084637218973074395153213965894167403166620029819648274525694380771953608498529623233107107043130045444313243628174532850746769375588752027730415808614607631716057404011055803131970235035598927334038826351516831982399859651485242377268469083075468461303179008317715403287415071331722960649822566516814922850350893502162851188394958493260472196119253623881377433601079393187490044725636055603157091230389399784557426632564165052571967359022112994513889971659244367934465661570358590971957452245897927382963774135662470145192637767417041274592232652411040460066536946792386219289890061281099550578007293097888961206409557270764988769433506870339494450203706036323666792914832949901809380056163208988913828412531961725382807890796932455917146862847413118472972256045560030383067292820240553965466838113843423034002876225833718784631718410129758619658275385138715131559416439185894687567423384729456062811522664947986283291248604846595746319693941438819977879123186729575763547971649526478997692666524283379330769055350367342163858847431682445300858839171067467178830242930156230299100957904123515780559219559441698338532313193913248759321344563526392128923820502273203673339400505921774957806451281935674071057107377161557766405808534237984395591443680156317089979981273535007789860940316877697993062541939642853894857391150297956860348794925450865313119221957059862093438520115624958040701674230765613590028498514683624913753635670600292993255322756285546116541272051075493175201899757482919311648729752603527445734411241156788226786472219284561979121325960580513906704929605381979549749621002807052920107968639430345250799184232628082006056369679501834547224200738522694289421421792868478345736189833146090321674553361937907438759520107381350889268497747989516928265204732198211293572989917757449445867333161971212251673792441439090892129643706476381778134597746176713405374750213512661582269938866670564415768921336514831060702804535320417076580836690203156319508584862426942881449428485347103856508914682563071884566023091233161721112820354578845582858042711078307324252455768942472263690275593110405503577023159637941174066192754565514462207855836809469373763242890681674542482983217220320893876012528682458817599944439614480617629359982555828143676555841751862823476136027490359036172410481530014942983155559508655297936984940787718642063200062044914820367491052469821733114775324889656374671428138460632094626137244540218881341805460989099340982998978052783093380105887777877008443857384023532452162390083536527408522794165397623475162887984754180510012931205010575586958629373577715308416716868734471740376020610698075222100405554989185983549919868220987078694232517376176332698088506361702471407895338019903545125543853150251401470298448611612004327196923119166630936612589425240909922370728906033285894313541030075611806749031856118787559009270905103406527644112854572141952806656542857787065084739833325984531225346324024856428253711546219426154000989887696143654637639429560780721549865886588834734531527588196542319657348903768813889157690374223393183618160450608264625752513643102450719364694929339958602937308847687397369083938323339060996160543713388036604711960301122247593869662657437679753020514044206994024481068483342884835541069123874545462558461590647740936321502378229773946522527163967790737746188230705664522588885998921363392886271027519614179609263022434788591850537569008853732460314688501806945391732413954811129229043576664378223857003123904130187572035269330036781967108294311625502419409296878047054634930930519407611043386258911423367104370939851221759057046579811879661370907728393594495040980442028340953652451145559439451355751747605609414376962375739133069675913254914561568758926429940092633518432872209277074815342268253249114424448292585324325138612444466201267629775337478029373664450696621451777416574430594835700064216832495711608516615224953386539516374328809372030827265507571515027989417560662460919443561845657951502561874817691998165995864032459160868730877091455565552152387039057965074384604911523146819789714960470258141651019673903610418893854221676980787951487384200488424118904224335992957299031499983622190741784591671430279452274604234806683399299412515741931483292507577128175619331382007395103406797625785452710151966753606365432763994206499537761108375603705743694723686312076835786817639396270479692870310062331743551253468331951212826160706190963994372255286866580601000562203693485984883212325261688831356901643494368562934284884539754236302972435420141317278745598995659290327730927147759312465024694980833028454480079549387047567179093326653327530552455352804745123664180088937551081682503189115635910612641637092626564765004845778416351704514122307067574048172353909712768789848462873710090271762916250501018588622886411771063348632659370880960184049254738614496667755835052553681034263635003497420983239997041330407496388419264808530413982467455336877273293564048441280826131240272135899902229832894771556573238536952805527791652171064125886240566252095366261023007196253728078947645256998459977054834207460461163420960249360436680741373832332173902224115862493344986094315469063450839239279923097854650617672830938065891999214949778157073721053250077468650287337623276973936806828803151431673320618473334998004522896928320945730822845386827390331015201933342687805647976749357557934693061854647956120841964620996757539177553502643464981901798880801397752127921487046215001517587849820751499174859606587636621534214645479386485122478539980744743757306089684436663054456400967632862321509078220366304382925812129757146651429140656918335854725883779725402843595730062084605966101310738126346096486363484651032276645957459899907381586901902989938146330308391645789895552357831893994085752314440161757229823026989966123100729048093244404152325365559481505268532550383157817184778816072936824694750955100841616791396193536927448607434833280961583238430781009741026540416419064348257552911983685390666480054442932631587269879317058368409889961477577420519825452253652380120328071544142293256793928651046082458818859062338167148196334289722366587382462668308572562591629652059138270542158861690285806614551194270120689871936551903665734312983753248511511599208308395173185576958673267495421082412216668833083907761047801664736032087719062984822763825995056535014275753475181076549006101999082317369574047191748994840065872459805750994616649406773849953135910144393966064254431510799932840960143189769060560897254772622908176930232673775912840717812013112625065707897083670202062989827825136476444242596829693419460944931137545779567863375374238397272597965515616883749354872700437127811954336209303910654097671386124390389018077715489275086227017169499697731453863903690086120357950812129029278263032740220715588004159535150885669301805788702801920897407108879285313040676201381595944762066628885419854028278363530192822727388458790714362720464011128822539737394138370970221557898090072804326558641153357212976562368224719087629055081279977014263665513057204520676313989223513150610122191330487754587230647967918063166587368122559236132810741676015470863888920583058100750490797191498216135600569644208851853226596790496522134849619024372655712221660438896874639274719244676728696478367590041930825818293948467456059618980695388802457489633442308167065658563818850328314006086739737468487880965795844611880204357440098498502190593543735286249449950250770071988049434725811041179352556879656470162378601841933063435558711184651176376871210842423473564130860948059852535544164945882241538174885307977038821816548925856263230336493867937142803957015686345286176192192744632742211657727473969529827301759506188491098283290108444464565908799086726519232776213717264238691363385604336234568289745730888320822936975607897143833632346458210570532695259963574004667058599076867395269630908475540017394597411028467610912723750810161376337982803825801504652634332532325070367613341409465456812235697521889173897327611218323816044290989953708641409911036876274204865679215913918597321159511192590048383300947886968715108283814401637253425048844362375554373959476138204342104146972038621616275178393496499318517136353186659708557253159124756379111455265100906223495130987165313021970819899916505740210106054995167582474595849894349727109842061218860878516454337337412678259347425809747217649468427152257307152449054314282397497316379538134953095902381785062354778560086984296164876321302781449723983448833576507476844627235092428994677001921230172387470968007546787653541138690834954375898558556664034379481492301150727279317414825280087604686654752654610042004502435500404072620594891202608024707670862266817773140760649417058672415405725881130181759060645003995596337673237447885312400910220885276626665966770351480362675463084022700821080361950570758865860922528320440447381458815390710481651577153004267909555303732460313626733324365658841165195754832263606628883572438706552598833548637044713603367439217863223693333058197714985655669232040118570518251169468961099339206691419455448285698859207887586233682049489015239056752199006317802098591485885192449273429153054126985785512195909435964596441446225504259031889413527865044148762970611182881631835991173473854751099938053816756636022423645279224451831788836724277812069652728623663720300498746107583049360994999622137905500403326056822262169736608860406519458244883667123013168227847620049325747361267463742155361826037606906463660539337112882155302170159163146140239068401687528139010663195797368158443213280186380675722581275402132365730199533727721543589060682355396233814631138048309377498727634714132815714057426350861857759569747578708688776438381914294351477695046390507913350040992491854296952022832159121082349598731688069567548093377416757181111398848071721411501708945865206793686591719625809690521919407294767747824960067664904724407080550276365858235408341004829114057734939500242325815549942919986338072531749380863799118247292271805231761207155873219485721313627670903134020927670336729232897580363210138450624449612007176534212186454271429569492206204243227896724521147293013398303492077532284290322265592843907820088513163381958179499196563578179622383598805080960359397852628853907778182973177060441943120086834252422926745044895678946269766453104705701702678338822927412191159064514248151637417351226322711536148034087899142426883401474427827361371129463231475237897869287584066095558356701696736027769187547926970105332601785700606001810997325225440505995216124220404181673604954956816773198800641935367228997200470014371535551937268430633548642344756024191544082002351103044949646397604193308929768489768536413130025483922469047642872736927952773039928168741390937078009101898042563901693375541972545952462247666220094811721627099153783655446268190861767328292053591488429656271204235115297258510690639731965355834561559701803512327519938607521439749525060083567209285878765270498761673676105284212115549921818663998161084430795401972032381650088137682942588642645858792509102768820253425920738615814117720241578688095764638079796174298949062903208978836256366316637690940334110747513432122075162744379615336297001256784683100947693376835815429915032638462541514352650689760982208571093582303361406320588244310702578305830445907871645220885734237100888559919001477018432365507159173948668357802801937931084308112007737860760294203382877753826718246002029900386795555907504679663118854438068120636823477013492218148827553518476041845280885832829918019655542805810818051219174532383088402591572498810147720903817523843409666412070693797349043784218816125836879273717258894214771370880531435267416503998776592300443419833202495707819432423157822449392162655693518026447905190107793133402633530030998957308585532445550354986497079203419216915028243068111431413767926286274051886378908718964227864061944151963140020216165825180842568688240243132662603140200368005136671169492664750941445105314376827860855387026510066931300872501574408725533237944680610967113274694063145107322747909441418627037978987474381946840319262871966776961114303039122787189055778417087450718308428343110095447769405892958082543425273838822514910749111572649887155472815653372281207096775846550265353907147584118714795380797492066643742812161042740742986526518327581023308392693505886320056787027629775856287867857403849172316882787164718083140458264333179509361059535358900882467774819340037481016018038550639807624867756586424735139074660757545644608593948384315212354207872806400916544200822543942313525053423045707123697280296533033061063681894782908431557971059237214361980909986091203747339718629826911733277775517529708345231557477429232885382991605314200054842056921581149642889064586258871405574352632091990327791221347486402163705429633403215706541284153569666797482673373853715922380625578072805201516086469831630765136834689277925393833185258853814687531761413890993009013928620891550925190243461962519638986859232953631933029655041825422059652503334813288379358075781990225018291809284014144655580520007841865682382618991268040030527480249119378458065752334217472218941745283240251314539916673731041510098804100842211890545286722527702228903426118442492652603970567646123946162529211005514609669703205647943529829056397735600209172788339027223103407156240729365933541622483564746764318909411459347924801943976661775281672603897624080080505395834448073953682104665202080124701999408658131626323192211736218055976910521174852072362391548957862250061357532714132268535343190115546738235209210616811604968276391713110435084238127376803979907759164896163241647162724058789590370277631071079140925079439523779790806028603096653026651328016141967673066814529408142698811342071835486288129361099156113116326078357217619196995518072276675754866428121693404072974467724655147169920110272210855393638598387265519249953227351593779125340479862543527054760511867800589230869311224740512708566663498558047587579239106599115947904719756791476505251536745264380251160537658970933744707292759615860890147896867765947275976017061307376885279952012904690745029493917322188105366531005419606753984894684207533271085645979903275870019232077874972288622384105661263276000852230422081297900688227213386928217009669948401457518314707299632008218374444009699448683141778430233613617331845721521851398951240382366540352436795816586070170555799614677434243691338083022754194711309609486546464270622698050306983436467414946082722807134266909006767242228962498204224762973081304598575210652310512885962215171868109365518000642122545080373520028844449278695619977817929236739811215562781754849394141285780705315656175911258957352969144908407675710010526614101851169675374991820075748966499721312006288201239064775558008815889900659327228609213971605839651298684390248609220384065031054003819275016721236476040826121904315933751660997805499479008865383191364098679560294436706824157729956079042958958886247848696484292091248946122074198218307257066734756846001385891595128517298127158069186880484972557465835013505809200891859575118922868872151987934783336489524809644433473009901229855708882947224462468509483129622143578912920530634286650762862307790296249208725502293294342935321013515679542409406511507877628709511050668165916452318988291604229622037873396170228085382021314500268430029863793007026393636898013499293420175439821020878148510974745208393510901595315451120479935213493111052648011676651894177993265212989466230975073139623897975135836764551429098398251219200947225827817018286047210322381651394189942666066643597794285339780824254560081119188550248990946224677271839345772594392692809907900445942774032145308878748352814413387745889254432983369426725470514855893997820191550098638904451721508388945214479642839562895197044994036352335510881740449984063125840861069609733870738419555646078865846946990173835355999198185642396612752404353075901614196309478994547362138929830586750821329906946070531608924003832682336097066187746519446311667722525461573769847122189639316307248347851240874948071307677846571836021419656723974648404794630501194014292094176213470627278329318575687429525688075809556548139336889884440807878854268230589716625395446189653753441288410869450222739441513379043223029502197330454562720267192008451519870392163616459780656033260289960878359722618778563388180796954585131350992116598906546609677953422666721287153853146313252815299782353505177582773090669418017147464990109713998284765716795711895381138509997677725516136755361120858579608384027946027606741281035683652256288064018896525612725492882621244157579954478668417110114620436268529680484739509700500726852569322921308452534506472154111643697800527158815997025667024378195400016266527651870607346195102225976011866941349657803684503019513337370129436469183415862088488039105866662670340859386352029838759939044000445727474363803522793291404791109947133581755327711997095540168586095888456844508797066099671667882887751198409123455134197603453761340479873620626153868231467331361951587218496146819819857758857257382768201563779183624383755126818413457708412967234891240026986631653823690652999195584014034067749967034693310551591797186321485637328572785350524381255527922189488402445041819429942887595164292660260969039158118732985065941509778338409338033483892621146667793560678056743404701393220991079261218005647755222465266952907426150072559004809368097131337219711378864224975294701647379230095747592854811329039111197235910685178018579465473044099477587442470205518018781599377141184587442097755971819415695315033998904084462648166058690146006152421920778022682869769834817335227941326223487443290884676470188231494684661041190346575694361883526387427324342256911133080398869841461055730548910601382354116367855954038317823449755886042112498621149935977729425731543586272206652846075435447385533068622054660879651140638989348667349090370591005835633571585587351178931173463525010284879851169543786400314797951590895690753274509753489517719548227247344383352960040752673131835051923145834290140369538770730730689173421500233980849053447541714836893819003667842545749104956432233739746754072949395290598476944824187090935146917443078852595215206978546020668186970745630385757916261379115707460408556335113446475986733450641652103394993433102896928253231732885653713735276004563549814367519244460304967630141867619670101523567016734604073851301891288341672033967807377164784083229860848866160117639214862881893538798099258802978174459233215420381437012620477248220242406300479430705043230500946003839157125023907092777860860418194169292102058650003846560871233677612415629220085572714618779868913937087037941256920678857394024638269064244345813855598446044744690449985287542805479184594215801318555890940313029609415655267988317925645926296956072283696194283876618659146158909377263066427041670457100567105109479114608867926534697212086155250883935658353670225532451803764085727496073908780505673787866059645732983328637962210187704966158268303906969481123242413516904455688182960446052085157857698767200464763245633158008867244972099137399022941918627637543383980299094046305816056874659954758307930360038422522719979084722479223045746556486507029429768040763822567747623815578414252710255171557935870623971592962301359054491486905930774407474095862239724492308281072592460054156845037786146038195908539461956414474283838075607932752087595672966954867103309521587073292102730577142783035897506677942536300649388969842618918723571503335087943252457079378131870707734442712310796357328294268687903904754913961228502582921017855255381863218728142899665384362447414520854608961695006723666807893116352467594290264435337531177976975604101347927150591756416829136840601049595497981931915609423773344127779390263442567296104656039022280485480232265642378275683089110085228556573826866750693003310097224149494624224925726858483961618997949719921535741703189683011009247608312324668142009108344544314062811136569661355604678832969106660758694283465035349277490695827849255178505100513966611337113037796964957831130479711133924623269338525541231086009213994137308184627592549409086882596881087174320181837163532689803511297135483958129859480258320843172310292355861900437575743469771723862789795256902617486579896919119864233151990549030600742199688524986783891358226783327864769851419228762721106409394167317514122686568254294712611185581646360460608398598565772621501654399430033505344689110750389514154126291169372240987022353983779983927549909174531824124643677176149660722641508668852743043589649736439561308992311620486920052633043771289237036265031941433529811703798345875255692171032813250006296490538314784586687248850852125103130925658074622398512271674281840348222318773536057860857169563004488608398228269051460288477293163462693098769792401608007668674250972739473411788480060192334859199316072956292910624015807995944889819310073475162070024544659448072491282518805699097525928033469576878633816283310665056214730428552801301188655710696648847077484362821084373316771567532418530437854521362825444606515106247597142931095946905574902875154545357092606391602887355509517748321002690238614556900736828751832247539547821929446005775390934442910541870593863641694138257112093624369429057778124080230977351223344345076959546766995781706409940150261118993639636109025121235501622902581315492865421305394812435563112396063901806445927213062433570591131213595070205351968789284268201962735354094810463038164149095584111268106751268821419971725489057403818893791668497935610287000320913110032418076704375347789974306180079395703585890367709531696691724183634875795156748614733193223426769355832142857361531382227577996880065571467436403189236232124822879925399656674922036911508168632951569931139536004606797830145382188955438499554744785167312421630503641813736466900847712702541104991061462181842263301481947159488558152947837953154193811114499683048667870171020370703388144695772426711164997119915468545375248020339693508147267177758251494050229901664173245934059378756315122576514863809268173971323420245957515147979542379068735280598552473879220948136181088722576725853694314200724791200104393246336188901490672886316299453890492028033662846792045141542830276100445373354889127188607588228263365925910727907104140276683907276024144570608173723884433679664315966964378074692219909174412145136103280838322230030797503068194625651125209775967321419995044549585939179551937319335160097947969454316102746402121989583512823189057721198316293884578009479521167692449389366674639937901516444020615067947654231811099502880445919409278399053023437423394120743104604398444834850655368068797816270430706436256256553287351652859535041977615986344411001770570422717552505963383642508350740657046809098397870287409721061609276095357669097329878495414434452285940581654567200903512322873343493384484008083743572569238995755334011856092610008254123687566026917425067609998525991725485215281209469685899285458971009472736262579048653863369096058735762918097626983446357189508074515646489373130417967293638343565330810564735755067387463254152686156502460820902833429217432733956626259690625035921716127674636410925479150352984000397213826367975101262624284631724589398827818224302813888483674446074064500054393374749009704220644641320054616588324807947046905225876073836046873749311037234042000997328491294422598999010538350676559845669454164537287897613482460380766210032603864693985619060206626656734545768831646255163353277071566678493396972103699768303913809244793614215930248870725565745235543156770033456080903396910591818851791798929242930779534501734493164903732806750175097462241882978595759150317788207551989045138396143130354599493258211261314477730670899833672704476716164292790896692762797253980913409992955051369553500937115166116639866390628533031795863172787423267032224979888641990893561827841342840695057599956050518646585636037874776247520762148440550414767574253897075875831183411987287348734168384120932786661710029598036717131754700393493159561824346034590952804603515318258902027901416735868443993403651760850344773285383311905126491419871192010345133731447474421669986932550192298447852695558058176110137868053587095438092494315007472716027593854410771566186889745271114556955700059560866256069820449765586569596484396973838054571691707510416195639317226341573280862992883072808415493850683731843359645422270223369327540169498446978247549807627624844636926723812555128155310805179156386227920753933790822843269782850603247209306677317010558850634833407683574590973576488700554269632163085288943939455767260794560090554049880213542621268956191427911527989304516149784871053479190419292618863086450228209790086567139954679699870668600550603453104772186900572372427196237962473433689128372679122363241791747470618981969076122010580535334904733251159352012668519914305558934239119911835359062363641035366521794795933649762740476306620037729790586691723043418815729184071916599876980839916578063994655506976602389835743956244550865813978812000158979465743559566940781907416280911752584845379827747145100216789429269949162020129724228447005020773824436883504844041376135735466974506524004559024787991148997680220020217596093641822563056367763381917864496456943295530426613568844863334077535854987085222714802174250815512629663409838011415447259447444218166179276194688102003916903661104052687377697697359505376258793971209836460941894624324037591831409189603427569896995688713017380521151369570059555891374263624883004755488005765227949817076351512464184232299093474506411904635734587351016546998930854044339671016695405062088275570274053094794402414847720698964410399408949927891074938159151548421187760274915667970968449196966252852695895606839501758114898250222340188222221041274169369167793792187245606337478403254281828654676511416657779705337340466700216757876874786803031473546744002636571798891155069893584699231878474250264099510576709694243247188981004052078324642470724319809668321668146409267281487099277809024111874453315667198951451377799606754222435915021946988081619603700232779462301709251405013113646260482562249774606077753792045339128020846260459839456408993450689481548487760004919537351650175645030308123503193724022733551087964312127307816786924748371937310603339228876789611258135603709748450601715248595913132904682300392304401315837009554729910016625051618136431213823463917671045755665070650718353211925112734436677407412676748882677928706134568125238523511632397522406216995117146399834022470223916554793812244079394703742945580898070561254531161422939903594974851624609243776683271676484143697277864945691717898112012973422007546265865806090279412700062494036147129202299672383231965648074251135989244294155615736044843006232025929602942204309453287620285695640674317218170354763750808072178741319908995442793714000548627859008041737787341981037991999679559793471361744047838318875570228128597825415246911968863151429585381197782419089358748184377639742131933475226216714712172773904652529563900485596728609100082623106486278627591172309822564504693481264840325159027312501247696663465059394993662098100908965797861568096935157076061622841384390048139169794756993056739555274899305092408833188350093680967353191734456787178265278682215175632742739860182894478135905390598003305383313530604486605041822626118665576152261990934485998740048542406847661209181705183971694826133832314160004713964463458538126652431559404339042943216408586674991907974196875818729844389557962697287809472600605849848298867446420930198419314718146663677302231769139543438604071564089006043926023580703856978216312548062553107567063959494114250112928079846920006132967858704018355756711732946351499221915950997291197774627641116861388045931978773378571606077530552356348086433823192586126159720433815624106773551110709900750346802051468485019612698625336689758864448566291187085158255558895550543304325896812684489321575212107716836450392606678198736213097189657334027645816450487404315823135476867806090743397602723030344357686640002345575047148533084578513230065383420037101694862089022201476082531983080824147264507235861455124538971886652760233400090979196231343686970746434284532587725927035933244819674084417610308758314695598913649251114962289003406293114658977786002818702757440279457649912406740338852018383274858318779853835503700954581848373831016719661397046822679937030880195037820045397807051705389452745598794231700340916664301641224066554670558805838917947817206962518143531775473114138746654846830442840648626493651657206578568615629638457499786231217497671794078383897599781765434323146380375035072137354248279498032526118979256273413326417594982810118627550715362761540316539180810360806615627378734806727877889038885420058791916561715323513642365288803306033631807924420453929518393627409051083621167347905925857718494716433233283488840901421310828712238301874629127226608602764272575708923132143095814309406562082381745090320951761457580112320177725174328694501396199694197433993537375507032389086143757023126294158539391561232604484616145182015041125990020884111318197565637070210799214085109695619528327529658286631171923314577069124920108141091894447909841529957341882853655203167448359217956316689315168875077101692558259031371071749078269816567145886539483697315493139532199595925694769087820078694261365698541691621112771530541409050286293723185847209661050659001792241288918149790988970106224735026822033000996500845014577133496071402409795741959086386666982385201475258819737448915019393040185188820873800635808800158999012509389651702171530688230324787846137431046925805461397865937301565982070456363008460693862500252820987548455637643649546985072139869148772482339819829767968270684813601051258752726490733508395535532311115119014396714953646741800261604868226481446653120275068760393700739438418300431847088090287250541052041231451754483959803409128738616263253418391097423686000695929768430795960106913048857638076590964539885215266395585031230847555836635853185509206287937424229562240660294478913373000500590407587194265689023810270419994002082484838680572318316430007858875983741331479042002469252402234365007659056130765170692236694321042899396826366519758262027694855837541409259779736169090287820978331249489669054428127895556581193834777259663705363149853121438701943542690957868725715984047044151958844043163006027993196507394691343463741239432736069090942680614268141101679813524017736034077838367044326273299984492210555709473856006200475205923030253954807694506621346305539620067003641935565555716785135717119179468035105808023123296126753494269957303318731218970661497765682236797715400967100097268922489142337491554239367283074195564168558697111403494822257774638107621326835262233576615645564822408803104051324360080618076225698939373038227098805142279569776950014928977021527250319119520918607620898092200425371736126890167683963543004346658503324504277790056304644554873341866749951936652024407813860775643275755553145209473918138758972863234277921750897780993201917181244036284316727307278948079751010940982016374249865639918426823179432006952524129762614918738953475678198809056306006665217149272599984239889194431052727740807571250689342946403275072604125689882143093896629580139886717403645595131225526781101965383402295922965874655384128857502922372198205758509290098143788072799536593628667536341872399971573620159877007424469875810509515443567929901853284030683369868551129952023527444350522597882887408512715199416078616135575738763579993448871654377790855557272383723578491701726941195325342279923273217329517656518410869885575960125000912293914243835790243455646918061790609740337855851500221849877729990103472623285984295929750240755796000013541592511380597385249505385080571373268196969274699623277870976399398962554752427808327616073136242099532951516935224233116575431089691267152517080151864732663131416634620463566776038583144342807071261548603450828303047854012005059114306147198690107393143854737186735036068984769092856437981812167876210044807372254344031877527350530506003924839902618112619260105461742108377141268829832883735120478914421660759180642649642504387326186936445269351992866358091595814936181657138962785893875772722767545683556095100060830860072637364334227187817855646239739249344963166504429704928736379673343856003169752544478449656870097381408365721512449237221620376144959801272020418606120319582598252742535509151212013877376010787288981674065091863159491294256000018165331854431800319428261712923363797723428956197442804248272141660095415286904443371889867082739973374766631413969355952703384179121853929071604647586822723162326665538877528639431593919776263975265688198935026811835946074061954137648948463401736579967247044562153849179403424758870327200097156489427545100733774605320446247877878934134554496131174392603556317637625843951570275969372476520454529849253836764139595735269690692860345617870826149150441225598843542468996436985946548441082260679435550085006637913995793084606108916584501174974659899087372740925315659604773826626626096076655114822830299532096843229414046820953651027149894647296805112460565956130026246851245843716908529473208864420905403352528930737012456598188442921203782297905355319601150513437317070380782642805780072570603502434642411974201663889997935385817477631623573806997837359323394998551851272985997452549214913968912977962316824411487269285752032833942854037258032137614503131463489076140223223428063566769745198532425178877480592552660167982815406099478202386140999954478652204559262706195134334856796547757254657985622842388368638949457521323600110779585111481553172309667653212663897886525823862859855904161952489802538220626779625276526120275705229618556496917313910033894298604045187839258857586836707082805814883939974824744754396871984414558990361576198316299098118537243988073200643169042708835884828334114092680332374371296135501497738654714099888970801903377315543052649439846284927404154490155118661146009627408792656969459424248227260067085357861138664953876362243268151091271094438756255971993614329534631269617886682112578477281054922239632812093755548661321102811738884608404618776686989217020375564763167131441884353849723493921777370306512093022379237544619515071149584081026739545633690971397409580321559640861753116712255368417625163103709648146506588703325429404421585186769859182135102855706394676858780047785360380478474108023902638151374944777580514877400472174899989822225002032491720932171485833757716029404012156875803764464134424616905579738924516795478134000899447067771463348319443724139731766808034001868236356996971935845128509679945107825806768906230553816161155581767522490462805020364446686184241446232901019575423688486323821788586786712211293121466986883822590444190574041251311260302410608040851969148036059875620431995911086317935055542029140622079316157059761608871827487607610558518457493518072562905995415619817206391831809786253472718245296982432112942397350402837201127156765364476583536063842638649644180531330242784081736820816789753411751741328810914467728108408188735388452813594423961468410516165037646399573284577784017228751466847386427100804537807804665438806243908550687719916210991179857100601009560750577717768070998511513511343588957771766650769756652064368293037169151267358384096304203703751373591175822449895732831260165475460582283318242133412036195183629994942105502833010389425068828922199968276380927249569746539064690605348658916294730257626404014006696428575083585773416095962112391283240844624558098297002788841214329426875481748560281552361775635101368057659847315622679724643399378543667012225330801253372902202523873755207638869317430100031138867587459681645599721120574359342050593975613108897495150821891684076876590527748301564996326706482691842944231504692758479753622150838025135960045408754332714487129972709390824804633544631671741737815539366011534117594665884204552672032397981589016280743812654503727027688074537604408086693253865795199237987364933200467839038593397944909470348309672898323575041749629932435806985006180136181018153001235395701134235536482470612523544896896311036095684462664892703223868760480526115326441954428972983644769626690205715280797597571600015851633740865045407482320585858309722603174203807374764685031162169255931697611861633272099988475334903637354658458967848065080681597948310014584855590031355860211814682297940811113110966568857044706061009845991037192595896802137303360207244913461794601468138281835104948012069883382554304083815826276603919635738479632939045893610761428489469339682381031428745218804990637759992687052678517929807205615797956223568575304231568649802362160488996488888665094026970587968458923908601332340231563111180829060269593015451870818281463075540605594974650533070452278610771719349909661156511652626362937011874538385684108574821831317356027297769958921940782497638816824898655445041389146435286733675172029426331750730569434910160898908008583553502265197510015795810375247514492130164249266432817267978178424131110523974386385993822596071126883143175059908867381102062915793654594361006931499196093901849315249980870013924124369109507100295075463563365455352229575867767143316944824521492532997987512381079959750592864512831746748757336266192195995273781142366375352868873560798597647872422932306193242248701096684651234798772008999176558334794599926298645778836584274703169871823638477790866853763914099133517725818294689171657482977381482455934639171654657047881443907628231572770380642161032652152369766987728678464794157885440087567659051866001711568833062686699029760766177979774933689045950908554600889433265568020006152673631143792874990388433709099571743289671089919647269806775841484413681783709615703848170047899426059486821714730849788949669737906607292459145164949925459518355295685715348362594969884533968230872902994769173386227603118748284329862327152840468736940318960806671456225812756550409751594920409349343439340607301206263012363487149671033854732964546536295045349586554108353866851319368822377451939162876975253247369640145915552526511974132275947860287879221386860251856886631576783668750349764431518661298559554252377213656398924407923960731322964213958985878813272633972323696886357087349646228123259643229812720678012573876925605760407165069262378123655870492321382503820059880216194290484047327220633722302017919575341567652215139891078716058504633462200189336226000792433377432973923663851450004133848094325064585322682977305677385324169688273905420755060780204932541262236915759863759274671483518765614396481188720193070819901979661183295608470413514020134275438693945548226475461881412627474187197485464944440788883523894684711714329036598374752566781406720601614188467107314018552055969034110983164415714430341940560817277860948748638631099427848614875333141533256972993659714826349183071110200963175311555496044828781513325941397706073617265106927545636136408844081212514945612999264548141519226736195793630704922957304778254663132716087073623641511613676722768697630968580240001288614222146302544246963957685159601347886478418185678391597342780274245351416599502953478796248659871323098262443514818836202044363463214812576054484117114347591673540577194018393651521523564081916361269147038756451058364443332498221932249114244109491448615555098105288362432924069118513051190565311168897006846075238641864772953925399614692393293454132549797757767395068824551868975196779188381899872391839488996175392562578778434344000787861239981927230485818273159105374208907767266495658127907812182271982443627822436713982949320980611197764051175980311147793151161704580301379211104230583668510429061370808440137120938408752255481994934977227473669425521305206090971944447066398957812150554273117121966000560688772556192084639047946607656198217900818615678464591275036267038475232634557563826904192463167253443714318302285740762784448185054327593386526779542616334592653684569543013454195483165956501038213281788013563009988601133530637046543642602668107697229259692784944081092879206326757246156057840187236591354030885223513472952102742564733936822533661765941356590524312851291879469009875630474897171236387622538938051869967256659464192223235268815605303603848691328391057697289526631973771566292060348321278489797499665809204582870475251951720524644642045944429690940932819569607465028089308215486974911000490394737177357096714480462450184317518999732290134321971786308204493943830803564422389659663997542465223375118162774155180938573471909373354874086297707435830921865241926068102166117095905771931843260999081835464271661670977296117561828621858990920319116893539902485963244463544853468862231453120817063368047826078130053032777389420642457566928478248746114557709512559476872081570498024957251275348310518379882986326678445616536563779444927408149011993064464582473561101921832438779829999495698149436978726681551323076771309209782469091698771401908489341413724286825001117473746503968947383360477942308600716422431972081045118276494140109570094410776965034886506234137716597760304831341148154361220290147979926577596019442094116587443859567655671926440080540391438296567011549952269816626020358703335920186676705559809348714779642906758687520566940497491815475347419613765063332256505093543004003073101368265119854498585002894616573387877184938459514845711310109098072390624949561790943644398476639034392423923657995887617376554502664302464372147192890734304262266295767756753725799012224630384410737264168994865487484972799144170250811754965822331011432786721978017377428592911382291386124092926508660459490879010113406754003633352250608855861898225760325028588900249566273721173760687727009083519244126154860543670841036338377166161709326761942381219547291009441794969735582433429942558086436030478751582799786865681737589122625438917240779574706198463683767250587843468378793283509268991947205517794428511650976695370074400806397591814559603865461233647231600594217132853256984690202581238748967192034325820568605607886125847693878256722962752758139826283780529405432750034837567874930352947862724998316049082194821050349350603569974713665838302517406299677548134435848736823257172781360236627656392299787332294795005466636072946445676625209119284825324889762482208646366328378629374347446897759351690652669044326242812593465493878900967907018395036924355054727697254900157834874309873100430824329794201744227552316780724349866831559323788704855797211147884922555700623640749405491405356671603577852991386982351093652179727844330704560113308681371472480451984766859890929137138844889419093523449606026158959201958569519113473266077361836396491619106980583009320476182118569891308749750239354388403371902889453518063169769613985776059423853871188354777675398992400246425274452217337325638715832346839408086848616664077729537505379938760860733154333875033884382258958059438750291230757122034379605850611197270288300989376825140378926106561350008692998326792008868471587551866182755366910130980394136598736625353575630173579171926670298516876299173294927284340128399543153628536080368825831152526170729028727611311171131372243794920860213785869716608013179490036169161155261211505614026680388385412636778797679750176342964003662472646707930305877114984110291552429019034689057490210632210708812549983564602314844345126989874661500605354026213572152129050605803908546192337997850685038431209479123539165738900539786335570310648627347345550896689789233176654692757447719538746181687885158237415886884015532813542105061122870103291362546414554483464786097863552696690055265687375055844749955725208477115983243429659247876301301960815454613607087996378476059920546954472927406173889835840875885194750485740343996518068745663174898759732156338554759961683511950338154734010253212026315830919138318099614560879730222859508698954915712459405680678101289154610045281179202724426924274305671623969100906527253766972089177267679846557995985356871412607223868445892172086955667140166258163343862449888956182466050311248053482525196375565246753573210855148915475708027234645364503546996632131430515486496372644964617055945601971285503299704506044999164023848935565019830665103668934570563988887548707159517549226428174030558828683929558052083042314971803509213163385852889041115834445646804417322871537307597934402470269049489868741463656867437489084130013466082047166323518997846723298134995215010023153061228134922411675147693929956419993692384547868243870020742998775722706577850286916691872585564974427989002796610239184915449750741817596588630893259310905311893744219115518522032009470902916848881070729027824667488789582555416699176908996499196879808910362347208706050631988392975362588639989314745715406537782563321549950746184809103077992621158701237314697864620867841324748434521047989075576871319907972123916174854035862021977892735441634427398729280639505555215600091204572519842407683031502029538885280727285279794626290144526636322671747659241632188272954342144582303488040298532253391521902764739648175792840034706318597365909501366090972400970564527569780235394778789411169488492603428375593169902373210239800564921735247951099735597736977668606758576396364420218136806472071386621282809685772131194887526135593703968801515669470500722383177572542720096607495576419514775383494461562721341333196266235259578674679235266576525844866618947918951163788484425629185794623118978360625761743142402758710035454474711233951272825721492767966007274258604360980020054466408762348794487428881047577237209113342010275601020391954717505740014888403811236904878705539170998692616120659738058804782357854477097300262337466761131574236071651661868127372689751115276956013587402749801850507039796123577281897223637364413250867832874975945350421071009523899019928046738695203657931358447715159635769930885656849819436274134262454557853053270995052851759801777367242923670289493181449687836945635131577704057023596342346363287599228355889024232966780866483530381827090541637476621908098239767325643571953682572378692438447525616411342898408024030956170565968732812743618496509435606499122278569845102056573984488447747035392900409084061207959789347410477635588707508364880673670299666851931994001168377462305121216359583584101563632594908754792900980821104132938649554444437130412486329139380803365125812304578159662632124259257036928725109298336372511824791209487249808300737629344518886228239833007051998465564888529710634807116408175089109214441987834945862895736058981967010425155878927883304693506845027436153649336041437260110773134329056627839738805853742413724698667836724113902246210938537010235535889176973265581081227235368603198910103440180487012736093504450319053094023824474045412907861102828916209404916979096379231178708869301163115222967849292359278462581763376767176725698743175346935325388262419857646733313631801870318427566447439055346891917384977759894864741000667114475051419614076092077981560077153803476638552447574004307449880059417164917847711344563750911423238701337198029589642926867712476046850038760511791615825783538785720406932894792823449589630805661468112284434823815664713870760408936865187228864187453750743431719092241156182126069786867170693900446289143149002492353418926241083737051054457741454325439990375297641770033478749566236871429806582158433755391060988750468767601523730831872544727845252710969582353470425151299372287724664547510938517842956871942461570749116692561564112175533802629624516888448006360406086781387100226047306876578275549258325132963068615540415402858886075336806760678750527944050964025122035270812842563581678137706614337620881712522655346044720470971154730597665087052166256320289926965017246341355052372750328433907715205293181970804404300087878388440284470617907796514085858279935869939211156589192213369534367945793760533573883217286434189963366147841461231032946773438020913720850317041063299911673039618670091231273601620252799390278118020689035106209186868204901987096917502454353939240871660364171583660510098812947473544555082482837362808589659798047888044083101870411440696143595627142779837210722136464198167575788441104166786110785760881120382333435982474886868049134047019352643563622717435769227471024437558438612458722398706787511010620157851342542276525742642219142830332569738633006105711231589015193487393190256639744385639554620775791260085954771751362108404604874815268875660735786316941188821557650930649977403415121613352374025569328047420842234464181059309499299796075547681986375590479560790132598092742679157830139707196078303470182154571139717770092079925977453564306117268120519345278552493478872926657938181414219982746713204825034635258852922541602646277928508146876185933146782362457952429172061207463411743319076704239602231840734239370315644445453806525729038442289241330124997418903730288688125842232875843314699184351459463398082844647275960822990625315619746355308956327644050796192579105194286429958488119772257572652140745221965344457247433050144410255985513358211945626782139914800865439527282754454901050866752057710465393430359609413953439515334297950131094058138854019308464723182376814990066663547893631848188077110791338078882196181535706671350926187178835821991945432819237762281694982956895962575450382325839462069476614429463220815347216829438720287554909154269804874366407225621985501493490047007970536031592211438971893854121737522118935143301052917622657839663609359971250205425122446364684935931511769729110914239099950481073506851348290915491786210453554166945793814883445919972495657935851910057041099685591802648659270492756362041377725904364332126605727572972231441572983580869765636733226989290109744189022674532775303000090106991991562802957476868967217057145361923806211891657334937443634530065331365057767091192643497169044163931434342973144676351146621895007796111717027962831042963237362984737551055221929067980231360918590595814807231539286043251895184409488798970541482934008230812558140312033834389525221824177122446547059309230867774454817497197970048502709314609370865851198177257757474807957848321210958961079545309837644593867443666318147270656448445397980688628604195565752637304962395256094297521003248438130982487577302198623827636257827891470720191706019833164492341985087289282896823853322681351043520476664698220576397778288736707655735969680476112656370216987961436274588168941818357885773853082000704520668648976628051275962117593831295252479551122147610461808208343995020393285357746674686845491834568638659402689486195353489037868252955715185698455266720486267032058059689600771545079065919581807837442078442034840375381655809012830218218928102963844070078425630787840941515106308612309148241951354682280184566577004247098611760296307476843286461042264754103087455977477007172436491700769703283917254813447359368491382989739211971145628136466101933286969462899082647253079619037710018804709714895626453148468999444126686179473514922804912502875307213063965476033696873128714185074053713550812447712763543723896177764781042293781110671736975473768193822119111568827341785917604811971020096102602079828641235541309002026799853211172003104833561737489296664643681934715320654602618832185712437647595394449592438007618299649049258968814687921125537664239184022779304377132435266692375147912480140355334348315002317689546366116920193956208826338828489102724434501251203589780321662208980572163293430047751484283751656038585989573469099275854773873067858931986683735747553347959358413029143561168683622963032675992509597794098006848629716490271380650103763834010676254513587106236740033366472516528407794970861001849301567576383901219530834772865961345726902438707481457890899428250762952032017725424881947453230419648892635813753495613050183576506095215535021461277740880770706167995175060525607625304915746628307709768313930333653002291559558975737845133310914399332673493425367530874353346032666154756962256313329250942683738608092330338426687554346817953782690180376673846830079977524021039994931718520593769618286677757021404869372878505954665723405213691882924515475478167294838795139528945232461753589155605844543878508199733965251948291595438461166997058149970681519623059238554230374206944101781045172492367578803254515848999387866396035430540464869130899583582765997605828389709769432098625238366250262489812898314393816018124671099194826760741282896909084508396140405701486877107173217789709553096726853421018561537442258800436644496045287810337137963011775809013599043978443504111923593687356306491446614831103553295616991390461943546587916795083547868830134093252187667818061817755032037786392951532055302674746022455873487409067337347089617924170126992381662135452710959184101847914489282782248578426808401371775257062365006226147952958970111717485612431834688702579485660365141406088829732034023180125346040389019982977977609445667940344353213896928477352373107970514601120298768693935356034180151435146737502247862605279480990280794497845564015296540508411572703438609231060893098754066190151241115157517872011859544527730311960094234395391488291811887312258890764461125188959989797711220472397546440091555558077675154519703391432596159071062392623219015860167178934405898900765962652827270921043441631006650050406251645601594684913143456860890646474427462602220373128226045092701681929846073570364103275563469984519138028808181908687512058554284863228631699418999711413146045056879662326114380110897024754190499418099721414252250848185994397297258579776284567446529032520260658372656628329451470070429857318283662963426351582034278002205735187861467881138367190145195548335944875834049764156594131900800535637174035986511001621923134143293895263172749865158729199852049563695185958755806242269125074326470331717960483831208199575942013355382807593951030819101386608843603212690898870051174411578339916687523341879144408849123185793462592214843227022925440896736373109251264741841885510834683389134397080760824271110248107943875920217085872505465084272489899515714440715116996649736273385050909870511479489937276334746017017310144159445628868570792454251696515198961478729805305035791532718445576584222099033973303955548203449480852453881847168990275821826031205902908935611378388651021575609208545696871465731982803572319422335372298792999982073694774481312146003073630443142811223084172008021992719185340284563921640720113015555262860881361534362388051675689645853456829169569303181445762602140959905571047937300334966692708109659686108873501973188150255461305962529067158125703596577955192235989698210053907295930750988419743947629724214604787376196337541950264675147002951113531478402072549088707522320616457039357928119387584649732254101575787716845593450244234925287619336220929673207481383846834292785503495709989205480561318998471687808896281938609627506400210396309256733910469526332675930362770894636981278063339272384786500623877317333839637774007984468068655235747666262092629054966335909100948545451690291294422175460175548456741406160140350643642846907515086994464989412280526110627755405517755286619423174244494480548255277724073524688888066760652901281097426241836262797019760008925861888271527713349421894300972558813676195936542819573070514879983360627711314316950402779160867451189762898769344255078753517194687365545897530469549373054228795817575757126151569236764541543412244720443055415721574909838749608009818620357738978563670152802678756360685190033054042799555173785310452849997826066124331457944906308875883900915342828515615211935239544628280117006834799208342655580334742545318304385879581414088039965051932763490545083302558860127899311332964619402482188269076201304532159624078658978030149419376958450002571434825363887605449054752908429582005562829882222699686491154396625003462789483844708453831120835189128439234675200088431355460496660918676878684940722912171035554941950366448967563580723213629402713386846296204013236866352231969287897967181349203652571584658824586895389551817048164762250846119715582433106978943287797953996459570163252342448101535743846082129900379773551829836519031543914487229237875306971435689389503202648348452778095253895926206288639893237909564635549422183875578554386883001119271771577674494186041806101695493277283307234658519986869762762066718742378996698682655625445545559411471030305775591962259831522306835384411346336201133947284862530281721282424651765582807602971042133744223532185895351649528339068348902430316943252440600979744964807614605862562919803628815183300031925716830800816847212725560298310584430414426409929335704346899164128654605941855367433676572240116045181310801166613252749884864644308684001154755286131416376890550267896710117738205215027906092091326334859161017039043753686741784669196559393299667092774352152226919038412950113238982712009053703439710769428910819687137014509536425469101526146336151770152963161834621288996867356686922012299551344329458869682367182012805584305376593216386709813979229460282569363149143401541469090189701100775733662149835414599855109871875329807889328131696468903963703828128262209952001299048515542517152422331372249052919817746542307047371280289241362177627935741226851220811825519070864662870937882382006919190342678232260163703916180694003127178108280456243359403632728569613418061083874441023435762678406238827185563007866084463280339275282623215590223749828851340155063963334141419348888803053869120447342304477097585404198373736341736807771435825352718606919666478173606702382704085627052798245897514944469063764058785290660093744107461461200523579630945384224278673451533175975635220608374638262590370515666190890817166999134443102883009714158009909513944411232327720370250517222537544612399702221051369480279302940203962577723885246660333524998436637905674478797723992831394101308484810332740229852243857777456659527879757096710440202899177446111275197203528019162472258180134463593160279845317380104177701809582280565193796038808497846611527250940527961117169835230609620393546097809206388934229473044784314658421823390777077419334336624916351350779550241511456940210168350364665405335745493855828546710691891400905808359723353593111496091838766460717152447730389000830143936896506637742839139712560028482023311949909566592102165938906014892590011278239695284348153950799151490687077751079093157552783928312537416466605415502766037501230064837281449021853332901597142196096796059951020079876097067391529729026730883263888067407406957213028060053906099030481005075880143657644489175977519000058852885602515545529936353131908705275000214658907626435549286053180156730974573679502422024494209494766073258574477720962661051196139507462263994483721056125544190705359247983068105999059084933191367481498990380924184333997804206219131691688467844949077612521878414858021382511491380870657233860615195990815655703689808047053899750681842863760584779970367130777907307005101133170165389604148966769013014030490751116488749156322563325487199717094607069738827758704710348155608043774716300995130825179555661048546716464223531410277617602953225563005668313960015642671667529682224134825003727396936758249993953969063693388988785465963751645068483641029538639908237011611737430511360465699678895058511989092369026336534800845568714346409566907580139433798860202090859009934925751016388985633207071568405945825905407019341735935286289636791253649128838509137684842910195546652728886470530134049906261893263533778693514621427445771922933996092440451567447179673229289793573761226992453054510553438358452101051713349748676352918639972336628013254022798497622489459635691971218405208608120060246334680574460157587693594547340386115760526677368529790461761592879345357703344966881571107193951809410599341511482742557746954373264390805786695304395574058187524815922328283427518117126833001550121299126813626398243782038095296855400485919331834564482786969894104522720395365845687712521102714429270513813612542062896856441891311332293698666900399523322412760282666088812331604374951412305754977319176122430199223919313113765944768234175985355686353789100328407674076799230974450094155107318113605863894040674434843209726277114718110202909806760919000824143404228102561955741771764378007862126191380320820440522872063062702539028805691503767014966275402448107798448188963301456595582128202154110786496713649817336574693355966660154648029313877075028433743338972992088128426258030910010849809193748136191755738914405140424157183381127598897467186194040458813690566503523421784917470450199467074865279878450471199131744174580662471438658437295589433192127499196243312872378789103112327103533065303850179236114219036465541483524417525561336848043321809440197154596500599632543558073717318957739759450186538879044997130100916555791125613582417755477523700995097600436011472039837864697311491955140747527088981080244833179885200474577076811357883669760495969302059949896497724722209399781652269503102019102616196053531057165050622559509938506647998859466839908754434586684683312806324594076770549891671993672593304770691894184702381520820011611857414500836588591970556715395666298543666184647473214026361996936622553571371142487623193483727196340758743674341943633753102680373212403586775240039963870949771195017729088405592564120516894381639977552765668585374620850167466507679442024231920877191361804771549322893656185959180912052481483327688522594045128743696908514333767257415661542766414786569395005386198898376725564626851809964848741494934685270602387475747588250465731825941849549096620300579421158745378052952880425023495520535208581669246679176097985961114693530530249478699123496383786146522777933002192443401477506536836253324441340943421626756733212263632155323663034053497090711512584110016810643461961643066868138995625591519924045348837488834524293708532517884673043414704367376419124384484426589408477582506776075590222427191781210536298936214537378253827568485043264709508369976422521551813441843031048743804178911386889670385841093527702335113542381497186667049548760532945500635569007417392143188839267759091767386862012919563698564034931094332354843670604064673340606855284182692083694812542472153666302084587644636414785109557730310689626726586671791086118898115010200186182456822918322257633755820096361933256839600166710160926048571357034333785541480811663033038565778907350753516354789669378919886053543889768130296750767124649877223326760169249722276771895562788567833016457835173468637319578040119426651874299980818594176776239115101895945700574811368580917878413832708956710549053978273270284949267419060817800443131166715994053068926941047469687574284639729638137649094907579445327420352182714328578743647676988917657296751461836933232669698977391844380275664223391266416438237486530669705273526286277269012340640143318814706285780429536546532756738817576319258544765819671546822892702535597306683034501571161943144627722290266976113107795655907084290068688444489417265352052188099839324441976006399299079180994875608990003942751006045300164568563163213229562180438474951698992896917563225564359326112013985780359953915389347768044704445771442378170632847347417820850851787233155980620942575205870825115749045189224171211453553336554599075386029480750847796141280797103422583004121781911513379875400586487680147109600131987109203779479759758389241987390836354286630483165503295817184207692597523894536077271562892111189297928456271779663380916349682657978833356710776026268513274638867847201448844077497547227646141288871163915275610853599811642455316359885737657882942876122565218451941165936318654430079039641061868370135170018356190685782671749751941195551491658672055886953065239019274834387658410936445926399068237662244342717860083579261688355228227890706128169375042252045227154215694960050836521296264871819424765006029765550243986705625536038980658717150136145866134796367137175188073474448839356508658138518796845833522844852861907155689587987784819987042139797069080402976771640420876173812371064355991825939404238641826489468247175653571544131923109047740601515959474189822191733330536947466074196518605062998338866225006362147309075203270069040866442548867306049285267665178733481511135595477667295402085037335301933680433569909409085649956908211998286676642999507887774718641391845902147184440308851152312522231134778344503778032924919995685099494595905571855350259626623150095123241203689664220278762015288761892040161179922172858590579723658589153480866308875811772160702317405205038070453366413716925936948038991865524881040197361483735510387116436144132686504679265393019589895073310513123724614429775205899411475347448856246715301742401697869278052819827559213664851762126041538916489087772999040231976479299347691593741252815631560112293118178527885109169650290678555975669565097322678050943589159893984385704511935302767469901313130825913550645124480132203337850803754201493600085671139900981500567737095892242995518308209187533700228145443743114025310002589280013271934637857279398884951522315030143363741165667880008211865931166777330076193295230894699914981724770087574853076037668888409813382534931406524949652997815751141525260344407615107623198709645881362679147789178667180845736536676630232508919018217530327053419701048310204413665623171373398136411377556482809593518483293959014358066116600136187274448383756398507430980156565463887184594600482484605958509718564014582633704190664688568014757660021280802376684627457329798830059662874648068424354059137414829896577464739879618805398499489997706813800771141843151915901555770715415893299930486402955688094016881261300577842975416742833381078144555119058291534252513823111760021478537813692464644838649210669449900270263448802581640796860687556877422441913378155321083819340405847733799617322771169076745957460009566988998930131625592495768214432215838078825872731786341119980289418494981832413547674858504533720480114402637963571712224947527106441688369016767123037606708094326092008895901070583764432619608552721112488901779532266648033506712917334671164303010378151838089539702069665623886673148483732680039250759267160976290913465293126978690256100034897486052336280130926211217122266193258878664952288629968915105775326010336744194692083235281420235186894528520903312160502610160391850889850285955858489515813048332541869424715421553540564952531750773745783483037284644979602058959652803551345938358715954479922286858013445809535029416955467262845424725362965073286823744276262312670074878835404341775134716834076155054712440111565308179930337534077375667218201916142183875850437904144586860341426533845537661878557764179892462130275447788212316888487911234554459980445804853283585342793899300919476864008854177916260751850360613279217025031194469934835748838053528264380732597043078740127188376073100360454579728775272140169175211348159100972576350677979351709264536878108806667418673751550074962388870120137819900593956040304147398747707790620203040413396473508114697585673142046877370922320679868377426375074848913388640431784358877178248547342093945804630914705240841685672978790682443174939728794664870789591566918201181989460332327602441350570327048834344468432364098336620007433635197688624777163430702788029565885931480880614924021198187003925808432021787500602972627186900973242082773962367468107462581533743606370171173524300597153256895680326363229007374802855536042185648484802097530804888300637061015831407904491711041141458665109190825222528671873212246908992339183236141420556053626813649037134080850971540310302856751376587196984263056167301768543592734449034260479970433573556845164646462498373930966304464721724169657186323907246483110384139490276424331411293596820271115926601947498572013825660520272025143901057488118111367077663013040977803710445459833893604260929410013627825060690347420394172471934288900152734764923945068206026109443050633609133093647882016334127407287709862229485059378233665915684777625180966081113607832892816476909720880978215993110717744817262894437599048104656933381777935415811810369984854516244443127454848171148551666357436480143343270975842392487902506629387494616104088975325792402487585628438329537779438670725720718663064732827839477173237296906475230713229140013184934572391818081536786995572748363192426285254599828018875366003616708042610282356847497534257332734953310080757400015345285299799310959338744110042042194749713143003227013421955401059050419046053438675516998912671207621500649654039471771439961839037727461443878213313654039104130515512126394799119677852060241898414486375926526182842644161318288182569140526245112283351720639691621262987250719093976236860355026718047396999137760274324939987265416784385684513516604924167041107106749069736779633608834122217166724141295211866647016323713281402844060607833452516073840980201566319274009591303790951871609183537962905250052122818494603246056345668667195725642880440136251484321466222426444440797353499885293637454933807674658465441069350093657402260283794601346193690101271083834768437322040554007817209469794547302626749311501809791433636359647957639518360784514199256485658688612036504579126005099296027809513126218506148870148426518902245316623057638324355404732186834894316075955364552312983274417524152711012765960637360827199663298989347962137206106186676917849890590753076937732777852873206644318529405661442863389191209467499911001293088756112265989484872373417819717134982756106007005658480743346226868929149765150659109524150168596422990646933736130729631559561387329849823201081758185585726626249203295053821746865048906156694338042694587943839929824898041955705715938700735454741266643236954584412126040651703279180808586765207599007156964432579059361293038666986895983406608804477753024495010162290122024846122815838508368317068975517058406100895779485787311807843033886540384935472150148433142258821344774842076936385655161435897809402310628214145175352198927136945056511238370563524875303518757144430978258252370300787845033708628196201009326241776872336130325186265280208057513130753193352632282350952459468697207168020386530618099203075785581182807857013225508577896963676439283007134605320326353429770883514607322170762426771302317666369855862672123314717597992204647901692288317915676792940818911054895609217334571264342531922168662102679748808679486550670092628251412619128453241500209546969476630904571093484997831132773619551971718462624203056902009748518529875367390846909970517827236628605718100202830951901234493225176307900675873177185437551597577066381082794859826377412879652069888836920531313407897033357293251916693636567419173870958334027591679997423851739552406717486476912092710933864082779926732745400662291499143581742703108306771260379053349878221848218745977784717252703036993310631274713498107808975405092458898588269898415762334779403953394483814378301656041539022967455842955660565654082470755977618877317699869332766186387669520681124109466573126865777007968546716022024459858687339297970775021785159564371779145343713577538867248663300873201665336168193702732158939144372285622262214960189104036173346217819582971424695054438566981565287434876917061681699264877197372580887169391496271418039806712670126581345493897956059399360046354894760407497972693109247319617244707836094067737452721911406848551655201966884970570925159017085339616212647528928958905612608590995814304682603212396253002017053401176211607394807266695838043181513676390567698700888064521855148844531699507415220999887628627439247503031110461151646770170095648706455179015203799564313519378915473995405473417365270506241182827238387025394381904571834531277313884985829615935469512268746012160747641477108532026011861033667019048392701511846643894299824630316421434807995022241933288692587625967932788425772286196208083443003867658035398143598030712216727592245619617043956763475108392950886152371748969380373922801149826303806711344561844080047038517202674178405882141967781522168952624128636129714584147365711513900785548011508445356930407930211551056616210200351232316969335126538967257437925268505852210195932497779659748092493521726448191638879446988283476047398742012098320510226452435627181720445580516329728469773089959965569121303835990599957133355814278411933700344450066412462701472931195815633083185277931747995691370766602949260717088720902477950442612591539252993036599814475645698085202707371136836525656332782472513293744492173928571748174184194432256715328480979384540056386447091758333298575374842893834064823413552564090743454399282994522177840788690888750344361153044723268341362196448190735051925496238028161897578808366115281602831219509629885878570539936028337063518896234207350486259421886349376636214639877754037858102608741899202648732792217788133778059919336317912388644282433446146809456349001371519974636376041235218730480898874166699441417828993504996255549057289698689338798430126916620219184322352781904631297752603973467857272474457524087783765986494928447998589656347615285414235683569234480113729255046581729602017296480549991776531341049814288202609286518790486473680282131889697718266552054720674431359031211974016312263367711250223575061034321698496375450957561320159542439957874843553126349773581687632253252846343722052552683788897924279610101046956834832616163788657677704945123297155945012107910285692099685608626620954197662454877963400955443164678029842565206764956390863190786846005402978240584618277370275784107837494335690396179754113231109943252496698748146992294587303399401759833454935160788319911167353701327198972628780435952214443050416303517920474245470057252145978903730365730287867064375998638692073349490065666666726859257942749498347457457148553632824992408084861243463821155812000144579423474601384117434740630437590474306895232234925907096656213576418378691249695886196229886634498194553512143055825773775278683932935163367586820960975808545404810027638907261652459679770420543987257075783940058745953355086892464580357726365369995938204496347538988814408149280579610621946931718052708710492812121370018132878595643011388977030117446832178114254685253593668747205772592460208316840213636809615608998482462771995908820501085062581439115047704970053247179194830400985493038561875584449072212292235624537693170508641009805121747942043583242609861071901658776360920874404968677011449827449735530779645805589852552086923655066528818660580501370674652781029696788855984260079069118280744644977523630396344109962969010355962960437423782805761032737956987393215656226485950138913105882245036652062971593548937983030103375418114876861443510281131776990525180692865694312372072830507764290588749833825298226465445368030563069140981131867421754147969186653613062245765252295725638548144097858978937350851212574541485233360002201694194830408269777545525340037545365885905975117884254744949127996583747250569052390258850822333681318181753506803024370093579275866250160486312434362282617286545753514595786043201737851975697276948767714927969936716260765060267770243605890128236082072603168237599695365568685697116643268488059838119686848157384265954983570754540124744209569759853839530908352324311294204980796158578698942888838884404803745704484387949862372149914167567929358709054081845188829186170370486312020045843367554882822689831363437560324416326091909831941815224326431892569188203748807649604981582461174709135251276450620518136374831343964527722852372095782197866326597397005779542414647790417401924733181568563696104051602937579899550568118011318302628672734735547218742809889682493017027669755328876937113253352864553423614874750287415794193732634556112587682280921579177994045319162855166193101680200970639110305666774380845459035448870580349221350483467871856116227032464419331808053274541444911836471855976070138304553214017331420803982307341298963021167981123456001232711785128325336721657398120903048461656520431887712951915008141933421940284714455981999048030651388719640339698494765392679615164480740785948832129083512911706429755580483456842163381470188350513692459822701760584639034650912722246112577254339990863947753278596609100453819124706331756493698287222278276179455640261146880495357914173486761220334204066730088671337533253162554415102825751400830264721095374898112856267669952124824097828802718541132481457473903718768188203245480111202295100466338794211336758719550626551354003149607089578408388211105398824119661085616563730407397754002501521234192905796558815793004993155258032731682928986712899926285057985781828918829833419513720478752782264975776662398135489627589705782198924061287873152155746112037585166670865335311090864609703876257083401352729883431019751887104070174630322556579297585652587948861255331896670440341394343521148078071769442070714956738164158136541503325511094158373678582878542599389233616312647778190721382843350684525900085712820128381064941195133702074617616637154157774962194239343621954017118154716618124427178964607089070846664494657000372907374534693065458617174122220005030842532567586180668427989862408055442847579700361967567632753521605574396467571995598772682710809695378698950855581243770275136439727950534447175118627100514490685097352803949962827542413654598393027365279621159492456304013263676619893299266207114582550755341950119160844146525746718264306833117507953714123927061706889610485828062126687065753089401267160143038613734135946151886764714595663532526761124801679430163273075649286501802797867385405073887708479274539717087540651430662828635303382792126859917047546158555901646538439977388415462695989677849004151839446328830624808366024735465902406443267742282423420152033154008069243400885272223165648676070922855031524533107959266904577449508864922793369808688702356601434125871438821548756452475871001766604486613475196293291021050810879828001964412460838670593644490770715372162077958136766459221096160948858948020752021499075786788819732350121256675831859218833964555547146461798409540658084419607534093747456178474916119114590866076723225450069308044798660646780362396286683613858202785618387200293155002173971324080114499372838463004587068387723881531408348582497097807704079786526023537306622061777504477895451712498836210608225760414000791121899700368665101048078803851902369433601919095821355000078847075825034179019422350958515759065725967431587437617008165538070678846034671876993313389025143217997501337816091233220946924578976727328704154418000340118836286303789801845992276377917755443555923434573053387642072848121970642375546863792761103859948697751805518309870954641071782051835422424162064425540129378073789086044994602154370923729919940792192099503689660367660748820776260999429813821864650746527063323238144535962252186039244762904562676109115809333233738072473242036786592286395539990468395634530984779804893419140431224250337681316353338139014351565073161682403640796802538386987373308392592040117156056238839571306914755708453703032388763654533159856001818855286041607212610076329129431292218833295560233505691128335716374866680504606135706828379863146226605410586482712226008936151666426837792509226589334526425968763476380644545259921144242449758165580047325275956290486504860549625225943075190496476833492310569801972850305522098621376253833969751980084705815038659947595129145245259744350448081878778387925654833066830445291140558806445049594052525678949078861334202162279218580319051203010737701344354225784424650828173967787073079278560295000643015003952387867735921770498307279550820789983622880754173049801423367597103456905139097309238068922653177565183188242058949729357303256458144146409876766793740839235183712245717553275916255912349486313800163981433190613002160037246096867670564769429703366824699343074863119396014460852703470065328058140453271555387190104311931558101362308553555126667541457333406365701894295237853195002924476242342612987416532910321111553078552573107233627257463587747242408608498402221582951211176055644883710529626322592669378405976888604959014208405676166321875071216656046147309341201189170959213481188297855757244017599409637021591013124975608853495046488939396085019131454698078997498943710046669966340141970440011876671932306382694760202218151919929703792414024218784991914989479791782463263338790573682440042931420781181003643213790244962442727973282255762016034923028680353670116739045010877737548620744482887686149284532002611667734547796738310652222250064855339824830310528799796008619200550807335488034849179006984923058295433685810612773681497757197983973071087019262058900991918162410555866311227785914576638483742347525169922041240409700543656638924482523311783455622640770379034935984622308254228951055053575265995741450355188682367799052368599437484875326690884537766791236041743205616399014686202781129397671689976789661908664625828907476596398551411707905743239714363557100093443559490186608020906676312217422721711153099095531567340933375819180479877929504984646643963193413262186075748393918760727253089095832075644630650885976547463801803322045292240071820518617707351439641092802208951909036351808510399620702332605286749812001671763402742833714983668521390459285324124399502230131061713964522332530916748189623578162314758702808826791308001738954878567315486780044616213339868399511676068992057787430562083300711920434949837160660916346516901990635698994110094402821182241634391067315749150489422078600553017743094322691091517501836113264364972013730250583721825836496164712452451612129773217387542423586104670865610876158505641732093006285741126173633413428682583846750804922228238660819545056282487040209578671643627988007908665410107086423269156919776126067501989857575983617022782794784837918748721996275240984689743328962206504583916339054046465623657823954443442401721556557748191774316924301482436829194458880546153475879291449929350563393907011027946064129104133321574343067469094335837370413678512109167960479037290710589379207146095325467023987698773562532824717886939829406959826992393962076444653162294793308025355722861661028992501782238542346460306150480843891201072835107941835422949853963404141738363741969541350171584640461536399132202579005135749716525033458971134773844696617058578573303179686644817835382387091398628514763238840636014425274343737690249600110309040697802015599197154990130035960680045818578340111057416380655412484560014338967101404160932850523902540128741881392237305234125461246490220785918602487761085162030229611115679881012196771668544192968007159724911347305054703740053872472832515067054075699648117681064452984038964189705879868473825645485255223330431977881907782870976259045612707863156829086261634130847571824920160100262251186968592179491469428187487110300438347025069625371790858423994572263881370252416264761349325758208795787991923988911620463122614320394581015285904472107392053746029901024993260631667423960711377058451155184630147707159444661964686556934761430476941440609176873053736225256572909997216678072291434962723115535747616954183504725976065267264359764985280120547953578836640905578830985567413275708704654624249521795604578069047725575780425672100627889612518470318276043181267802828602809642550910733663940411186025812299036096381871142663056483472134406144679953784458273453907364004826856756930241742624598640134033543651005110143309542945140026633087802379391367622473363490810711266734768607237985243509993610788198360413368594043262668222673190168383827298110769635049521327743472369904012453982995881947082455181662201250520179079775612472175636726556585243555464899004332911069571020567229196680892927648149874987786072897262908069579233891888019383926716601425245310915754235147394052421168803804567911308509105275093123150133995625817696381055325645162533159195937981321343229288654868238832406850045732952982345700018613527330794014901736317024373066575552120952825056237875295859526277563860203525035337346626180199494757214997513891397405164629427037096206518750960578179708336324887236615845773362110872852051869550376803385952508903325370565899257217249440021459151799707136221466316019927716143153985788177443184889438525182150236320515842515870136421642993577885386408229262002492394692772638451273412754143715515841233891224611802224825923318452961065332863908362604490034610158948370049491415552838514262326194750136819632324596484650310666874181861269595872786828012299397255950318459764182094351904270048345726734891609699307370531057014315038419752505116638350349479454013570979947670724097000991072833049642758566172674814061393533102025196836001536157094089505209417487329690657814755674656077670886012922219023506727404946467001277820930880549918194977333486375440802886271792110246650129817799116157385414000754481066255693478202929892540547966485564791277278195257120716227962058671866791592949278997184620934530035426335553073219902603192262028907285405689771339787180015536974378861109408394462237509761089999657353183153169278685181256204197399266445160789096982368215789678612487183693805168963527824820618015349832614138670243037162939603207279208392574029393405526829000648766643410453452548694970299059350916253426318392244668047046621489244451766963154986322285525462725407606348202050520084236421360314707644134885176782160650978755676892207577928854751708029365078646050789051975400175389659962948825947376839050795720870696811738664992519665263333902781247620345171353130178630468367936180995497492483976553351134932146343966267351983778909422470905451523971739505470563581645134566570836821622735587074016751816951542504321069919053132990077371485159135622141085654284602961951407689002017029837285962378218564478254944387783963948185148019796784955785379346393999336048322718949948372175759175723038011423241951506774491835014051470626917443397226073550448275826833469038830908719135177446967994182313966067726015710899037315103850866929889319269542755440732445657995116952432006463383302723020983839668851579215883962605009258166351897928134636306372665375310950469183507959155456402445434997787575131112839548607885550178165601727314355142011531909488803636981743009191000242803158305327990997558854557539367998067455137874872408007291734659399277539177063653880450367652955594454650164891916284034371660110143879754095473227444161217194006342291708947880862061009794775931239649016086459667274793278737601399527568569252306096083002232331176380993346003312150554855802824578331457526525123155616435090312115061412858561991287230021053170288623892768749469318112631312235325886379424501020472257570607977252952619104304841720101820963525547877327033181155173618716114778435765499797141457606406199486855620715758888441325124879393775597198330114161734747461398974884948607150238544252850078648644556599685664997392923574023829693035720685740363198767356617131755136503247492717698176138317366218729181264082003938184877786791762766198842886389721446339246696413534138076229864538422497366949891549119883302860845966430012123097240386396918571610780567649589628670952935639036727108698656340390282812431287955257448583942722591639289000659574504485465715389256654642856656315157035152533472439359767459838611883234620033712564801373505035260699688102070443432784837302227392581704620818645385873015530577767017632434931371759967140305020174209874410014531125291139585725730926872502891021367255895463623090039097316699663054415079773518133792303957008617600653297986774501711318159891207391418629380704175734640509919952390158364071063639658642882062542875152560448462889178131483959968144502262355614022691359030820293250805819665905464601395917837474189234289058744228310690007065407482689067097550604596172539880679766138243635512412131807194378442125540437564191249161548181037769203273636706952856170703234810882644191297230525239789071742786874563418926547132678650955446795589978242355864587630265269408933989041104266576015883256386249065885533319192107310324492645438859212380000755535432170654528926841295135619613720773552834011412546205752030737046872442113555306651985325540815791506647882579461733867546801290605415010621255739672115101694304051039960056028830198444636464919119141006913692293398079326738425799149907624126101770288552217857397359557422886431096614093203553811775708899073834419663765879843856248580700390758584405285335753478040358909081795002264461932289431490113455366806628019082324328520747507718687577563736084365948512914304053105639095916825310237703341674883346629568165302905055284096076647630146506174580771646008217254548206778176819825522091837983454252769161046652681765942777094419189965760782436050175866513218981489907193436537559227843598048860296903130054627428818178386120885945390357978403927497547212759377125704464068219580441714965646290890631058633709731004435775598707473412956016239906871872269724322314897683095545206440892870048843859708992256389813028511169871599057306070633745681244783621875977372826887851232829731840086269967989668698889468405225041684509088020039306297620427708473894117177216662144091671976206244141268129175457863085738853998017555885031012411461230266335183697760260197633473631333768806153401029176452524702256521406624761076568404899214339041177042454944190814363638294399761437334277714569150405988091688324927404004737088571290427011507862991737903041006751923450300458264983115419756222281960203759856418308035703756703911243514126703746424860304184514980238163540402259697234200504786839173413438787810534341555705374705877607255990520102760189372310359647035342029336580624586159468245493024752229734486822868325176906978731679049596259147611573280114063770303413049641063710517768049511324040671373795371003966920993444013687219418422815896568912512386481503161116844298603545565018424904062947790794737210388067599239920733082728888964272666983041875256504042648602729070194729995539027092517064060703623300490572068451622614483497540555553065067106083278165356701478255632810197120914188347075762124631829548700834849498213581573969919554670659547133022948349258412619016382532200722534113061045384234309493281705726946103800171854128779068018818148562048618638444595293589753336577188378644803598665760385980322677478798377450879513696752089233426044043890522956826766486431598400224792405758870267339775420846507249622357547378389932081085895048010204383091841416316183694562155970705773691030341763613404160930153615079711511225576395628205938639996696887376265624774206573132297837815745472363583059247946626701100550911862131021644794390868835661687637519288788099495515912542622235590524949166565356853117795419735197487397535744631198813977326086391583569687803474592447454566356172839144582114468318458411872522467120580830960986471913949878544204279461246317340196096465969760011047112004022124247645788134976644509734504956368251008434589820634045053573236142404197042859281422526969133020053293048119141306098510269720266823162051189631564809113745553708392725727584573859516074020042429515985398663280625206613999289284461741932740748194346334354313595174665481849671023047144338425278216493909445577058854476665379352115906484579304174753627792414435854816352338814436500307448107300570015370603715890731353694318830734476762695861983898354704133450095216293103166549400585232395290309747441538164659554922183129303169117600023685601490726743529883706694133275438188751957160295429345790316297275435533581046209304775037053244709003905588716117519989585820929603929017203138537150528626086837262723152462720428465865837980897145215888337714717019366316641622084501688498946878046854786296188363394278944182370888657044003259004292683684705796911209027730265799232506071666847414446942780145923708162112375879587582191952452629404136817868131937989934342166137187212557760313201786991324871641733122715444717143257832145098534592713611703508539202104673985172493968469278352836306608948861238782869358691668815514350639677710051823694019343669306669766824538504606686563293234961142976341856147886830662102248033493066432727151585729791806946136899576600771231891766576493475242491283289786588417962912816399479792002478538981841234122605609596348757590234804459618280861639659130896017476290279154212935569085237010091790992563238374886467749142597532021002103624152805953619983388932103815459087922135229842374160944314223358422910259729640713887073247928741051006968652807660467970932119220417016017082679263233146204643406417845061259809666710670767190958876757381046615962796410372629393922406710299763073125862699466485534590563595177053049108726743655370070891161636774945457792394060536138308016403465475561379331329291329092298041109365699232669902553556472816883903871483544682468336951133951167531663574549051507821289997296993132822500678295611097617890010358290177729508287101901278013856482270885050244429917001708419333254755655082544482447838735700727259723244456204247653488004510856494374083744248749998661646184737215969819663598458939040998897626484956231372891282533990304629653127504682281474276292213576790151672973700138051342783277446272794509833045630277852305923603562530102099022135469468074734210649190701908173584961003332870114585118655219033974041593898894674495171659546456075428922364211825509037467585281755890835350341109109040110509212692065917377155046980663663870463187310642102342766219409596913333732389030164884766651518094011035949363039544662054370644662637574671769137175079027091503959407705488442100109655334246641420080095063731452272909556242201242252922592884465984130311592782979696524812822348740021809364841936856193801857605518858981348745437935633346213389327039352618552510295786072830237338211624850334805634736915143728341891459510564002453713846900248572750685879461784257364122441951276401487380093010802469303419861118024985649875181766111069042542889390381165082091389910400598518573654397705580315237005651710023247851280712598900252378904169701020197699633626000060152078771965176894702883091120158431784412323292068502782423653192112889567139693663735325763992782927989302270723731238808178187638378811688210938660431300315693121060654425776740327834851357530736832481153336929774281770331625042522988858607948797995105403807542858940910827062076333684611881763314881248007330073783404600131597518758535819533095598859903412878829892403517365128466280091853020197725921142973425100827536463460656883607567471675819019150511750336525237566789606072046071709308828722279297718813474035701482593954333534026513265008793743286655505415134182690292410760542655122685801172598767000110207722027986439700705059225522683321342662868393375906880225892943514237856864134596094807597440793259872695611990271202282953951876035868766802163163107619938915960818079662522784481403767355873086914296374214430887890772679539222864583664696567698828636754016697313954384143811464495825949276998810382405431946530676310185355070255804278460761808810493182681659885991884818137434747783141757596572834743608697582558111357080903384775218405114854483581178125825536231518666684454114058871664124637123221027147743057413290304696367462287535310866879833618268220577172674377367994764163602953239976688959158432813719103174123612712809131554165582375164583877085742055739344810142662862150844541513417351749502449817174599197715276072544092878571131493197833846979741027993496760565530503497610623769634880321252470897907685872788257384784050829967430273322633251947448881953039561211134022073238744535616031584076300348255041535056710424495285804898362175368845224473056397846557981555566286359038380272793654682464248353419300201562104467037669103047937647366867048223277157990259914976759297573399617560062648155771487098309444800344168433817214497514759640564789598140624592899151079102781077165821469533613773981422848475674822647180417763690895508062749743398806507425128321271008770184682252197176783470962619774609172982605389178730376544231871187624034554204904196238509030385968194089972945130805130957572582559225815663462982278831074868342469380490184376356683559612798396256699342157810407524134969394623612518941849230143294918457687680503525794807100182052412402998767907129627832439200610291386359225400361426179471566646977313380344447600890295896023745053584753037022806656119194039679278499059300785365722126148544030629634153855911904337870309904466375264642183460693132176859706582354057850627818229301927573068300248852879253239706679217178526013843823437130949159239563265918754448364414433292606296712311820404904814743593742215387355500526146931261395587178129828356784621441556468307448076234565361053809159746873307169784728540233238552249314353928330005966885660360254821690790084456507158769417265494694089886678521123200433501991294241325836344863638141530390690936943369476225332613165825397376499117448625753339114894452732934231958472471234806360394846321107666686886376074978305465559765092965167576434325180702968866526186029278468115163618721203015300451678886694133951851745472512209770223592710502181765805564503868278538987195459157604394099672619901722593734725931511143727083501365157035493496322739585302403827811843863360229463383455792872988435748921201278227600654077035187274757119556211540259287517169262804279854961079290201365250054964490664543324907998024139160638275329622295099410737936333893950358419348974155784850421531680998909635786583353628026988906849919547133862531190715662992275877214462997497837166541618182734604222966314731058944082526260665929719602810473463453224493725200904956231130456852372231883414928809893904572046415505041997945266859083653202997616215274640975554566894054216728672071936398948925015121579231956772800078353818036334924725331301102391220095972429876573702349837744171866922522365089534419087194827784792633516261561298643828636031077638975860081288800113743782335514168710550058355985356426010900814350035246592724466906500323590077577365136804034264971855355414907199636941376421095692817556352722129738990434192920067023779996741784648973844867162605586750334020952960671317238403323610749953870664183379551745824098744159005090333886490658460499793761892461101160176959491215669998113140201292770353943153314931763390955147189471080606562214281953225653152696357467419099836302785805260751000436556796076725685717645668614157325053566163846586061258298946243691582830199753630416438109828148705508153107589570718612323569056992179924955678669162375194981903133541485849163738106919071527754535900634797387902825384799875845989232378870912820367495290947071646150889086578910347354749720049250616538077176660186703566329323292358357949018317511791243586811864650165506309839805706466770773359533486348355784646401298969688624416355877992034225302252911391060913445241664331628389228132764917832020926948445623243462627090995585464670586312107142695787246601622160143527680819955645503920207417911676249857946603294644247283970384379922782341465871826267193618811543819148430008559760278212812571124636393516895593340745272608138281609040595720317019541696868869655428320822608227524533692118145656971387304927033732724629900338389653118960979692006558275471940481214406745360749920106379643271798480555281641090873001285260073945320301822381908247034998987435068407391436419110069103300177868650214819676478757973589209218953869458863848126441266834462455306641007306298066234764648702350496478996049292798750657054838354593762241092416297509811819261222731603148613979235985791993290571323655528905339824674694180926005658376657058634471524585115790459152880205523368540916606438174230887214630146801808866010293574803598387020225211363384942127428409123652960765619401948632586349313512542113398033374388341470067170002963706027825426288358645176999297370198292941066275061630523383023168353352954346701009233865920049689495421068129743973457318863639197682883835475016511758082694814451667376446190004036543072730848532553474111784086358263891131877803995934234852345391919296968883894368038475030675892498700050618215990528271588749572769761215238467552047331337392757226230990073489280077492059004469734800917753253923912123995048038177843593559888744687017813577119368422066950239262102710962531481017028245191777508935435463652460895086367244480826931470980427688717586759906620324677084581821652413672224643180820639842918434071241110102405029318711078984928682074661084791168251800680516951572819671123621156358188664036484955595103334050097184058306825659126052578554993149847234298712587618571158500584641462028729282428759021912918974132381685287020794822167695518039097631571315126217751199181629659318556605171855857946769614776868130137207045561251529084246950771418713933467058979515408759927836220744693149338892775408962367908162297675778925919140818256929066169961947601928672221287226163160091119192439288971554672554113840659106458944874533636427646426835065716349591426559360906115994232422741094293370539690011071044134919131280900322436687414271722664490518460342408103823827369732578058809005365902683139550104183483905463334197905640253809254199082093041703256777963111409084634804177083285920051119373136190221756455661556985250059566434207680965716548111254191883171322928938549144491687392671763222045551148139449651012232937589377606690719576912292536916908974411283604223182682215610746531565870338966433429493252048235540162096223992887348738706869278797182806799476405451305014595032049967455145164331263861926092542112686755081661460476094926575353716514465426525780582289206785451240186058031101689944104248338038286109135605517715951903424503066128001093503290599398395669022942297149056820503328118127941295888520051747140329424370165278883021577567979228048965884680372379807469307323527945385303169219769102336201123471677456082391370062219281129619925700049838361254144652729904268090354197767080914180096336669143813442602814562083745883026652207403028255520896584937934171938203437107526252237318527972742769392910211198335797483158824347087986101236595331427127987067710067790989590088032079286089192440080977707539237674195319372561612840776712492685483277648833196451021084887909110692194846640319850356184326861932328225112223741773384330718367781336325799733991915793779287497089659167628987050008522473512570469939641707103577314129613903009306131217582553490690785106667428489859398600757898497840451652016089866823455933982714835586096985221147080485022417765388728312251339326143411890649568356778669705088753412819356013330859812402782835728617474281208845610978945839731771137759908182912542230850011218272967696050740456359267976769066050193249526490097015380689242411434741426072239297773848305848128453972628844415291633594227171489507932621951778671729058413132488041945112009080289204538772211017629896249985758438129954585900040698315148439993247600072005583781230619808590890101401947620979204276031347119712984060778807372437869741901073928326334936825504424254130535185321763924815504263102929555989930635927257041806870754054460015607269862297393942681892308346194808003280491488618503953215473587799663432961862188471848520819691922363466888603067909032244061957994940973457741558926060662194325657398496897145157814058886090077102225157507268718851351059007409873295327897662425393206423253458590503784513261154286413896314704510118311830905039040502272261629870999680812639131017984518153865954128507721744497277395248594183934506689131297714581275318486512265871593198886142599825115836570888128532961502010050858097692509841316745528057074910634790516950574120034955306432024664859588742973587251318535499732148504335966961289861275780058041600437359631832653189902376342716519103908014486558880401996715584360420806341920064998600796695814931837954046223073720695440634225061801325871291980052252309727514964197094755527371876907593859658956584499751117523931141942193990861247874918495984648453001201084398885795703791120924254673271479541253568996145245050718102081396256190778432163004347520859660576852495942036240207505391197297844162547479943731198583715839737731295011238818210972584028568254738070807323477427162221724397567489254368103373668559212077009523131696071199852063400685104408928628969599940084731498281774821151650079142439880140970687476927799556937813953739468251993826538343625934761947253662904139041937785726294109621923092511979833177363511087125526152137111572282234643971974827304909656834073385787136900462107442106641202743209225144915302138861576844808610684553972499927492557351183602759957180349311621685165861595477270680591875379276856424592115433276383254148779460310239467425862817915901116788496194709754614605267319805273090133727713956805894968952583150860844852509941570504686556864282669769721478432594685303184822648632935131181877159675078161296449022796626402300736047775342062432956009945102920595812750597775944753909618824993069355328119355992544806336238304703416715664212154867223116374646593853194588155094226323425250142838974405740896313659490386302566003874533163956479283778014781355968242430368715498709732550516982361335658811140952075880570738291253781075897653965297704499550974304720262840435636105262686810768119392626480464343059514033055402126108447607696562483457096211669174092368444127140057329326933324540002197947519594120626670020219139488141386967852304177280384735110629189057548031685283317896052832197465063447847427748675294704399399152895410492186093982958027806163544932451482877610512566100791465383471460259798123430296751492079048137408164701477720819959133182531203185238324708563353869042125382723601067613540889494004267789375080646902448842583567811324686218475123460504726433466848921812723728912236557159744224185583767792757184123795538154391200706657586033385213551572675041403794355788760259149791623394536790193379765251955371476998868096309837241345373151266642543320327716958243863248670190692500972483777527693655958746803528667056768311951770587896561039846631146729758517204199808948655090357969469016891993260851544192097781357278181574061677651190749687601119375297723664587221985260393940195534857543333153226798683097718067699015255396110368347706510329487035567244194123711330607859034605440239163911998015739320328626843713752108610988653244284042817264261610778720358871330060106517089723816107595014812077443124226274762017554379625780059474732347832776837425423481254959829127073297868653564310535441781219677675005013828211843643673140998448567030871403446650089660568344449626037098838941345840071502248178869136710559956388329892677879305925236306103603188388022785552444758669362053987227565037702112890877910521077755905562068557454783124925300662353558927003706954765759046597581290411656088096729824109468222197497243893775829484701224461328670199726872073027574260988063456198555595149219056154806202226059419986992058325105897321254054819431074919560137075943939186826899090956409053747067714346817856059063155284203851851290679957128195933804018953883456561312264106364160856503141546695543785293222284450521907205304676422264770240075872899415841511954853673098350556748304695296618953292029807932867141068284679329790618595785313149224372057318119408677914193511296898691950503537871430302516907730129426037379061894024140952852851373233697148182215455042884804493398176890515078085336448462356663739618494576765390141502628306610344162266920877686871091607368223999952056615764132631803475852885309571406521374544573427905622390372648067904321200181336195839592369055553805085766711685068579195461933680522101160749556235268322188503968519159853889789258750485750437460078865355631292750901470267987985262132490113926932826952985538943443399604348651913378772874996974737292292184241284251038355808451984084979206069567452663217911255790928213093667777929048713569978062573162433926233131049393408844652236156955052247644483811245040002801550603098594121670754605782456986133053316489444850618057933336389281603338169687129099000701290804365515386860586702174779081187724179390894931969418386541194863117392849203560180297704853973906123208414588288376226517237536642755700012482181771867257297648642538315550487729007994354016949188925112866105862067690346046070245913478570109800879983040502793319151997551298740942524914292396724409686060604724217483853397313245059449284502670086524965118141725130470736343365762355332598597831234616783655957998145931646957446174911586654474316746714475550265623278551043157205070323906904930190032925868415446041867289349348953153062290301590986850948791860875907390759637209353382976309586317665068687093109760276509988784499020720486357564027698802947152090429197248749606602808262858342207169377782705971844609221022813720796217325032779609455413550434046003445875038311971770417784609970153025772777860764009670201097622262694491512840570811289897602353209554044611438368394534483821327610135716696643325664936084054920835013884255544771262829301163782938469671959145925084916727231249718927484599486532415617364761750169825344940037583590716650977386763729652034520085206012746035128879358643777981346486801295032433515542440693675535281534701380461517152325818008644066903581344217567387062159653042279439249064429860254456909668333233609761014931237140724184786200432696802492706859922422357417731354175429748125234918682096506315863721229479618151763730926352972281957996103918693923814530328260026339495730559188635354318645150674058908462930681844418895694151764205465705080726817605189104249133854046577504128071330189252312026881627475963161221664986121660949352415389254169726313156158658807601099125389788049468483428663434935484383536023139653728876068918316491296860932254872886612115712464324064331911780555954599543881989400076786058186741739950710651317547420915274916656058089482641364781707705207515533457909421141517531043530724034726753461921939010074174544514988844813969091584777734172140838148612259183825147335260242672623998661435190539481236216770167761422733410064097037054071247488605560911462450303540385377012166571823152956856336394366876530468499445013352754641615027581959375396608985279360999066680489288079051346528669160671389723704346505616698135108399558462759681577236057641556053798838658550100617778955386847927907957236064448166142655021759757448506831149930104413367800734027538824387568657415527015342466043339397661502167864679257496910674157984434468793917975176058073250921715068424615541552013959191461554977552866655874088230629613405350468747052442532153163059810392587300823999813150132931040817557036667332383796631769570989897875917933607100636776419735333010067162058018365501717402182844583864661854557711962922193396836265680194947065112856819369421750668054141295642962597962307011385933282827575917324859529006075487125619275012333342560154085817568978073919187068947170234406318881899000624622281403039392546178458832755983143383527001764254800789695446476409273452610087862884846278184506122759911025786794985426741330447281119150561429079736383989026684486777508579140193796717901878321740274475398442638988531245148622451272819509029593702905461059871487018943221592781710111590323034077865411693228291204679752233093330946014300292954216982510028828168943747506485743633567984396161947306338911596649618091139875595670373270904253096450707070037042682945395645841778166253730995120970085466700244806141386392827359557081992383169110390769290608738131330073933191375492076154744531050607381792703669187996707378998713693794078923583423016231345300876712613124440498843027416349479078356489841509254193423198855894294025477540009341598412286456492906811769895596891141983440136768180327269031462653326715354808441527144007743103557913482526497177925402726855588553757818887418275327197987322446199283622607189417894420798332466820587664317164589911604993074322594146569011773940121203575669084049019990402447891154296711971439768874372909671726575739382435476458013455277484251654264708067488863214309636181264313316062807353522916226267638638136546698697251989994655927176428193938850995070454959359871403823406591091545647669420814524359404842792898299230054900811795069788258469147205741464092975638550367971892422659784444808708418600182145670181072063418060965582307866636284352744108594555590953269439655930423105730655378830718776540653436249791862930224278427747864420792636785119147900420724072342805382159070773417673080103755665378386340978080241020511706996586589578592777703956389024601670483942578503653975099255609050426345458443073252179809307033224701621360164908784194349751436100923644659793459992548997553007717556431411759361814521613887069560516943482343727888447769489625710035643416020169018132840187125989838829032673512370106542403340135827087044318706243284155557560626261488173037024573661796384899358271538931598496770599756727689183724892258023243041900102716282728881547111668310862517155708753167326966954165516566684088770590145399768710412730253705319590567804709166177367444254692432378402061018785516080629826543860934899703802020342467554533643187860934144769144856169747802198873385027905652783095471828711969698538795185719684542166240718101602162747074115376329550170616280161987804475764596215361999947737204491220050538113855638284684165598941841028763550294558753438027664346620182097289539350410089271441875346513872905650603173103753229587143488756398240766258931074736706655118227461809917516998879849860333466856271532000391404802437601108807289075727129888652403799137843883531315757519295364814474297685427792634511386774925294306523474234613337283981160753032227584977086352946346528487354112794646288470174386906918826686269598615210110610716341252990676882217408666870152708756441175942792598408944933087816436757563666133632316976695490203494484078281928293020855267581941345409530481725617394478790170155943536338681974462664030746131299019378848948525973579352340044343202274856069768064411779180700720342568720098077062111757124205054067012861945821980061691792772613591983103884077660091092172885272038660543380045245450029452236058479655237976067478126048026681415765608772556623789344278141148761278699139975761487288309190056347381952868056744461365579961746240391634578753025944433515276686468116084230464952478984395415433770714862294874686119077330481558414395885019463917199135565304883264212150417642264456166198603739582063926241460210392170201696701440794102418851889119482209092964960120543811614624908010418282825231946299439501691671711410123869357447805754683861080110219352981331690243728710356157491408227282545219729770324718685357166970570301828563922031423891879750422152198699489383503513615889786966887882060832421676624304581180091618382713079345394982941242353140197012098012508058857268191536248393553379014392821609891837631529771445981465703983801291043610202768574535435901676101452951958153257548052213503895208993172010967070280146671363048100443512533521940739168742261204777165911132140059248010436139575682457904394242046372357693536902135021331257087181868026847792073899078054312458707071273540721207769356217184068898010280189049405637946108169925117119868652775741706667242007112424800896665078668905366533017970910026023130546598720358143063306104957883516012539717721521759090320794622209851994453942491874208881912648602483056015889964017694685364523283510724550518795127770846847097089580440831585179385707210034972965088140015250044251649344081964842672897171365580894864066412342852223502522366526853058613913274188697906065377536882246908090047330223893730395370005447342866410189846651491346616405314073076966023433940505558043372237199998339167600276246368415070444236651801626338164417841256405836622279341672690952222669626981628758460944603317284850687542754399493902479221482769713920183774251659977941484819461249072312863645178552261482768123154067041642261260262957489351066203319870599819783989609523400765500739818355714205117289008199486546608118748473171970710634004005347065474473530301455839377086084162500081638442002701583386293076733846726993511546221893921383900608663691099924678261977787240504619751966697305990569169350607019481259819247334230303051456458755818595613955963788680039758124694317248579131343715085581091193408307891741245637302457147159161426311223013309789824057126876982188542174359009348159329820806630993763895454092379089045483406355600761025933310611410695123694326481842297495183311978443428859649044303126456323569948283802508130223708745184724229100359935663938196789615898029234028102605049899891704473296210121158922479065413048417250198301963561805041128607502961969668896476603031386198975515684216301775204992555778597046508890616084714673990262547977902658877295707663859909045726804660385889300330998718801164838511001158743063658155862920702620927302295589545474814661377585393934994019315859392788639149886771496875834722314590527772340404311930363547306736879311562507047563601265598633451415098377137894402153598887497011783846580024804174009096101848651549196924759437622449081922754613850963858486247877650479565395189624024277834039257140542199890170450815472272547395559538162745678189986488288691357086348158853484949503244299289496893789848629476083362903865683768281945394103386575724841946849267056280820277583464132932588771653172514937650678183961875636371067608209806431057654125141699749389125717159900013184383746012351867703116637466358030168919785337364691744655964082334010680775372302756768876759487776982526853886116204917098234089829422456865633834239092345470508845038493432398698249704475712581190878320826469551340786948198495012674057766499099698322028568055931349161115479172105381132356767515189925399188467348155242485771686207639371827058740472067631429592888049423641988148556650096865128968063744866374242258637796588450239399341915517936481744464306213019543597215584116756218446567760091745085651043666816156956618582847046191926778380459433167010970440540771191570049366846158927080654173825018838409992001645335655068708235888222658766636128701003979367532402983962330328361768126662027546030120123097920476149748636005304911019815757368047972002041812538564518520920744075672001173490165319446029955809539757271352450465112413228400814695931272760550291011878860240217799698130645397620721358475286489934034135971547753639230190251176426065988066768153118689531309338978348291968252429976403929241855998579284418243343249396559340763802344472874349262088753106980827725636129601180913365491777365325640255395641085002961533062913431508873380645835818519286929081379076365835501499641397262226469228690836990437924617934525898327698740007369141077895792680617405126605057235629165598690452701701619222466688768786301289632322693210841698611384669048725171174967623157364173406418112561332286415575240365147930576344651029113837880054843718371634927579270813783870639066005046690957895167081272079069552443908733468292407439757629995025708640217112978810027025398546008107193358769167162993065031314785671570702622379147056954517895304439949657975450960979763239634802334444983675575947134383713191328967161634259155469875371453800570387014494248535490631846151300167069650812803077136444351811069578837174433015107781156809999546495147109931024045037284202572018637304559472429143902523488177167372473114899176926727944746306698004320413965964744696901841797687286053277041794806952914039166146741688029868056550989940681293901822400979046657609202935650005103025520486042377150027998755281918248903106312908569578823514779065723800852520763925140954323628518845565508387487229389702362402498240097220137226020285607999357810858134344554213467197005656037490695916972558798311648392223924399810762381037380379279840904974277904125275642282087133779923101022184902610150044497060330624118633491675461104339959486890986250930528876084192320636798822909805194845769296452134798228212842499959705266075059878402468095776670049490152698786951499669218158153837399917162762739095417346095928813539026670434531755720054659288781140870211027066737635090720004540101535019399689326943218803907854210899684021378099792958183402833199044648513279634678565187613950051746356037736836031866932549087107842754604529934758904074864564047010349002150726607737794162638225624589193662689080722969367152681277935116644144923288396896019585464072275883400759264224124770883828390997803712333565702094460072551150769688249250384256797524395433004328963600351758844416469758559176977687900023085763985103696037407252298968603461792014391231392953079962276292993236193546053591891953758446334239714942428359810225063961980496534017408743899595840893057346273498463699943874449724915132804805979748749153409416405994497276194232663080974724935780000246495186601133903830263972871184898592492644112504551137075096842967727867655361248219078136807581435165980116164723573286078655586611502491218665961378807271186838319669657056585957307753641378858124836412598251991776127125485982116868003374349927589738329839055715179606090599010673059851090113572298961764228207456598417073280270192668058819288801948256452583551412066888581422552066428768159773299058462404969587322891345919555887880073174745897018214709230570919072979695744421917438397746405500636920828497832092446062183758724844405282872718733635888118567113044693505197164411960702630757628295340921182600532043834376644220302971410914902634967166157012563526174403563811371641408235505113345085632549507755920442940925039190446776841656924504108578792880722327529595723144371810508340594978491018019693409457812632608609906064497551628411811250128529971680101885556759763019367392572574292793714576147471361685619142646362244616887452757410273522514318985293111133881923282171130210299033399108682553822652113560503024396772378425931108662490242753822436482180536759134662586500176410402583058458247988659677301249984670336730547933056268137363210647883738920620559093415640628121137323169119557705925584353651212221480972073332274489872664386097692905134375490246527411070124330040456801778813002137948179072290709605492074303354031805116610841504614472884590904668234684964553321312795744345527043385712001628351285869357253300187080131780370638739177967764536398835994795641597455450886354437905888525729658374610239957814073562143784114774150485372165514560520822695151992262336314338772317916510708823807757504991683053201519501263197257346850385268274263430781173972687363473705569495651074762975518122890258150491664388045851196717190450120951012224865682852686372115306334495080933591435582156328508167331220530106508004291994888921131523491648486662716333308838840978973140226734598637207714906068529174744066039997521621655443010812857600689964844721519775635996697357865198992935172412000210738850646673147316896930201080133530260168773890538457569077797240859447257377940391361862394143685679207579117786211891256017885228533696457046577926053732793043463743410059354226557495303265575979830221893017796991760216738127255520860302900210716882042467040009209091294210766134237497639218500325989913851469539094699807827016746492848630734871989612213349137967142291668698259581590384655729240845730269806539056632644880394908780568138122102972988211407019586647301669429563499046639403829254096767642746785974264117613285675596553448425823950914091146480261881117639607307389930933749308276636910371630800117771773598374401100970235773759617785101125565836390340543018695884494693254908384218569126187852932050277814869328487788414045015473081988665327172216940702757251663811583811949477529597718084143755299323778741490016085844797298094698670323098575478634771844786766672295251549724878119406589435130238760190379788777956456349032207632117389332967425060220263864599272851484315987844603815387634144679755162378466818227692991343043646957598485441919587691555635667237738489084027262915067042298740579293585565209140882271310595630926152139697467788622506260246769788551323370305588869520249325199051482321814751374685628641729987735994492279236045673117089355828631394913552669273898428830674593402496116546732968093344903965814922005800481629332070299682250795540616698723400754347990662751564163911345111264153043150493184011700674985658575360505217252829130394553976319317113682010100946640757985701134558615394136953099450376244104091150884516689901288739871976728917438187640395941380320136305757477254695403150550964794886699537337399775187996946028707694035258069106159333224981236553480143183944618393724623118393782914806897804933466467659669127481198708717246840842265379044527806387747118929511151040732065351212240911710920763551010190121960738452668016288194241303335276003530222310717334283603479386213644517909415023014462834453153192288812825377644507940234161141786167510051200307160859028449614824404351074128945008945392668104617958463511522634228436752582597489620477916152876620299822076261060555760318107980393951498206629686645660459252389984556824703634804322729586986009671812801979102991816142373140668586637734389781345555500645507490376871265974797639099108869650642827478134149371776254864680735125234180389755676997413538925793327528645932851531417655431256369555530487540573539982313023745643681511009161933533017894055471838496422201268038340969497581060155524055520709925614918624597530757367605108672697878488546213600705795358066027577707437300033318883093671747759185201801091706370748572480068452943793047307691716868383476924766737003368665882160097530491497234730929701743184957263327827419047711287422470948720596610559614800239607054871521940822772308796095536934729418554626613677120221011964621595293151364863909541608441155052481405933781927612211307534557886500241565380262819794091503494916935652718476941413461558576204001051468115886257132769765972320103217621479750091541562380837167683569731727055494750152865517899077106822610727582862221880945217617215093038446349934496856475110337083828494636204793849449910547633866030530849092999883366633482530666389442706683632279459197429375902873835841487707513170798844565711188322249423966587479081781296340239680358802362058760697219919125050997445047384238612932561996656475359751987274882544102237801761114577310467663272968823627464763793650053183824303978343436689458639729314331400996547516734997929281906724956121688017466933513007012623376787934476849935622053820068301263092212096779236709505641179053692323532386965586546694902595346044830019231134361197526246863203777488150362352864603274684207334008725849283742175319875757927960081902186703121676280479445540404634042998458755291783108740586849439503599699960797349852134066921320727496519363443066191743815125328770558057160944349642043937554132755727324749671956599194974317627230539821656504684699469567769945907627917381756138255794862500883070021846079922773784187125504140108659345393634802889506934902370468915802023763994304123181080108829988632037398321708228404562581416934481726092371400957963077414606951478286533741146644485169514915505249652368238068076540526401906945897344358327594986520450507654342054240159783039664405460749208775128013818077184853075143148515980100736237051491770651557017631420770143959483172979066853587198316848847533763110978018571010021836701116060308092667875437230860051409007961414146561197605345198641293552884891057041745869679507367583416167646819073125824213051148678716493125161643702541805451491107606194993310729656859114773517273165353467580331817160502100747842159079136377975802337412175377159816409283758446265581768506745085991947747000013755988928026391188295569569875361049574959661301679598540349022690554699876371837044968022626110381820453227587717043447031214675317132061990403844294474896610031269410984971034171999567840529869383820109914442732307858785650456329054244795252875475762604635433826856155364514432997583275053281185629777721950476004717571131767001266922350239492940480509099653301396798341641498647663194933205356633405242752676893590353782188713304293288572932721302280592408137412666123559617480459387258178118191961003049184574943158178227653407770006502852106237315609030979706466138785868414454370702620644001034815296728545956061417634346143900078841406291500964928915066956963763599824449435066542969716812712226925464592240558019902091473694808751232069183823223752867927310386433997509729483416170206825230949656988940665011508570601407982137624144712834014572981576961479251682186966046306102627310352802688591726338101538567320888732749143432796873527073370349632861963016192318873169826164464448234931300898469206363060097206434520094994149277317979130880549577430510172764814526369940359342012739332364317520161963628334733244875471185436840424246436107113565849878805630353531890761478130435965723244662132435415237629808899560041825679603742768307456119295332985763499566188012506285837591981712482760735346831528165785835705372706737181606169246738891294533165472936796655520001908613594054853805526590548707452596072909372555917913679540649163626069712071858513167682883981390709250972775048485109857987119440982104550164783508786246764225851968862153957647745469596745333804045821514092292853893361574737612252744709542330040241113797199594001627365914538821336102181265952022931471903783767843631201144652647968796387885367449477542413129719015940775423721537190911443416979781968183414682330730915904719375601946260713924559558581740470200390174992256453096952276834156273501534783875439929446940246015373360272920642663571455770428492853760641672206164426555345707865440117268390716215581316119115319503470736039764081055807946401752096072832284881763965783314737917445517772592298887865908972457547738709282974529801547881077426914516020153986062986817663655189960628357300449442726013658075342586105701464768200433347029190609729220486765233496246534751368099053335810385853407429232392515419882845984769913750383793716486676042824349546743654299042975224680563301763988233851362092493418375914447492848545943550223530217639705892820595682959045220539370471143515877751032905824929123907797821286026383435996164573186740782481724584764092657412985083352168604289741509277389402440965995945285760546996554665009765969089818239824866312833784610222989573397187988946989191225672952214935758639592829993408314703865857787527084287966230971510452638569101721025103064658218195935705249028278064060981275325736075795150337653957892888031092570312065645872367640830671482786688183167565128234017578405984204264985408636374199601021943003120309981722718258033440308125137196563547578558468062878915319926792462960374003830005037326751896771516887468425450196061082213391715537540395665250186278640388924100175012427488349851026277333189546717628723081715801342393708593119923020736730797921356336450434759921800880685535518200797112975158512190412360379288356269055025071890259691842939919825763232458026896527248745173399940356555887299007711748622014257980292104807241265357017721361534370969302893949886423696699575216528060820336013253842452075675843891940179439670106256258891459173844713704018897261037127080866635704695709383134181763406997205302539648919814018135706937695840983715522302589244215407281222890736453551629468103747438283629299328612986418035195015440658177005871637579187833269507007571417976922952818493817011838686058277846793722792286739745185599983983060669840125759118576678815395362617222730540665756748622847310799884694247771454051133282839319383477248476494373446157317669004864521886316035439507951023622854463406184526341051034438824592583315542126839372270550798938982949362927365865883714862242594703006694835925973834497609636270349572500271125972067774633133036255367833065256497239028216419471998449522874156810344604916941350611141449103199250781953923180350579360379084136529094951485880070844611260110348665385322151729925051764598342807269956122367577696396537326480893281782508478990630892378381438401566878485758925317619438537961063388070061788554920291247602646139493316912663701083587863030989500734344961580365404483277853770574312494663605181339844615700824462976416401486652766739750445021766217925497987747085943041616424408184852182837216660917159329915745907007032313740403641259495710887030996484602694129105734747476873077043213267761067865475420124214513998556247432986141904173088430125143004125815396282522765694094749899979167958520255841380525285281539902166650359503661323449812138897591560775889640572301607431928153927392697926878395784572215077743383106514395225744468419992176348531730566443554320537757831083538826307171239549563999344511467332006167845617452447529069089433155672515627674704055511674227277578555878386826533588282593385649763617770997695908704008448782723713862890258327705276155203764275209328840272740630710630498009758803581811288993297687009207582897596684627565058169196698546740384565056112911818277288855377121696179798814986391040386613792182013345439856127134767671799311814553012405223947508482649807435062183086768525983181679339926242573163849429084050777450901876337237629343539736479372090329186892344015074268747461485897224518160511652391949234897033391106104346884440955790617884208866519239040202256299709796500639890689784399366677583328360627705569547143652981002068300930003308486641670154502901948256130161768537275074945023620466019898116923409594245215759241936380029313402427909771752883012576521787033931595100034069937404112316547636758269979632436345880899228091809257020035879115280797198267337294234898914243501305673604173553617781486339040584213860105870603947396692524273504334265140408184558841407359803876492716744726491821161689174494789945545994149513726240266596017117190442231046259006758680195684519689402980716424764693744342349553692233106704079762499025405770980118197002912964295091236143403443357534301761966783399479358994755921261810851567069230882078611507324458632328662978223092837059664040752458418369447042692327744158670104052045450648472581163579162043190362837020413771616069108778322075300044841541814760262636924107181193910071914699941825797816065881426697503461471776075190647074671501123073242892990676188964569885746005958329484749394825767155814055865750597436789624141458501344410845703190602608070218862059052133460599963439259642279011060888907240705269248042888058220095493494978261548476877145648147640526500175924242205318009702234517975423086069408013274565959117313568210436498720371765191622107217178285143095284241908863974633230081320653037490380885012922891496565527828978071979064735162430486793027816479930747589071933765801234378314300794744071891814922519829909797202675253666143866364532952708252776311365306589265055113161215769721734440926181159219760345156596979201998035126079244466572146748451147296724249240881308827857268140130435883448793910565122326462031855063702080754587463215754356557743062040613724396002995689561340833127706828529652939089352033798569945179190965386101748783361899693493888765356565032285159264603070706223629009126533630998623939380415912125632639611174146411309028130033863090790291705854100410252575502944058182377440816489452897173356039686671018174872243970669090127315521788082828459131219398041733349820650827944971359356695830654188198290842297085367920598861071768366561210382464969092257733999353913530396767288887266254352250047346804379209392692191258749541559304043945742798483350498475085563429432299151253085032491805466874414188847248230664334475781276674557307385268886050930774730463545763110009635170653564779115371247517781706893824906157993237496599726964404922579189862893161523155826522464988663196934315993285146847251763430110656584038680245802170569002326420805264303063203566913256257616112521234933829672496323338451146659100816707237841105504837695601831971132160637608857975303371364024648666421377413501899933201222485457684016562243527898955448742348887067096420467323457456361069436323454511885771369722456147341110826306352290897867420674857105461115102084249349709533881639016152365184461747376123727533792150330192447271342073079854970094051429711743879769785638074430743167297900640486300628077725564651963840922983831670335272091518877740941295864371302248675717309327423583753361526394068016611435656777244771237214746959010896441157887276873427360580459116003113109411444555700371200615131807807761505046350738848262808442726340481671211365317998139887286270939085128104970076880187931860890595194783274248856710941578357307869903150384521827087201387534154714050475584809329962689130254108270619432544762520977207962968832535574385815670596834306069996121950689332819832431874916418236524511157023823096860358299283953164492897066349133186761650238017087186857471159103572379958102757042325294895018512396208828205469175741164341705995857934129991839222041282674634179259647629601937005498315824117602660247065961150227281404093850281570449735160455714353473505278110915265355708889538703989639197671954360867406435664693526088410936012338375915869900060766721042457459181826576033555875251390260303859882443757569951425927253066082178815788843216584094508639901323093200444444897065328004498643320523404638615443250120423621976202248028522148257140546545551814468003056359830179147164066975449976409446649179521742903211683065164375075536489012890140967815973705911647613926514921632869536390896626176049113688665267788139365680217466152779131954005382645085502883546544484464014102268634206031508702803703817257699200215986548916556030900007666583299747987737005180746950024253320568663562418430949822512320313758161659227135533873959682479976695570246051896632587228151345690112142954884841368666369090924860501765955930213020433179946563630599505656305885451474371517206134609238800352326441154645841638289891644915196674063132832915678271699465384051416193057055834240158666775166223961801984305044405360605845572147330242152805695421819334113431301896817478246356231907993667853079006879987886685143273369023055322331532321383996662973987108652753243697460696039431925631243110313738152476727905722262931601224721570233310171341921423041384743672818583459032291824106361823818737519490613673185331804879138300702449309144057577130213180875345500076760928948687525192429212515272214528811122448517460527511563738751951392254644555204595510648109635538854496476209058499352278858180446821882169418591157617976341921129762891828154745943677423169084327511172067556792669891828099890116212246761534100424369514246995247689108996022760379233239368183094370446267828319915852384156961011120160582277592242707404647774374662611571779162222145075817014961071310946813083551544884242899962661388927772005990792657292948177903530571727565148487043528969876896345984579529249519530806262444021934848190169589260036573589838199058338939740436305902729149270500131005709810256146573119943508320105110025738258130778592024967722725770934916287719549358156188047907708300272734453253460301243283524246087924488275229269320474009234678690423833567364638209367548735559733668195694758862977025355626076620235218879778893930084341821453147541852922626895534746031925983643048608409193453264762023642271518762707063449241734808291058014564159102207880150778931367125750223377020583762820545640684688691281154519748802219889818522813617557414636446169750537241556319598279860540661449602033337094613767680909394546451014033443822924461655742330265689473644938454699980465464918136848360310308818961904196458444025261546727063330040421943196630564656417227765224822913484416991766092894346966361383103189592153003098486878744411552372184401742604384303594053734279288494610240937372624735571210992492406490225118877481751885258251937770030408793180382314997376857998412119901257924498620794689965445715292967936936870465376717780898070845808485655223254180262334433043818632414120223262582900737863405810250877789122339977856540781169682673004422318888680349178255494187309883135553521729248175961021937660381699982347306932960979109779326610412131079948627090644568975324957738114790992359999053110110488230400257262387085994839819138657784248710869456277313901401386273341953979595559194726335246430134833661947150498362726315873695794787283336825209194392204360513320333182021508705711279235257964315415692970089538130177143862157568169234878488709644996891006727417414900418734246762188445971307625335254370450611090281012511662169731260845407586200773067022343131092220201304994494487567103879248312999895851838061621076094373144674967023786677417140626684786924160979815256977903899442991636482921594952361938762096747350088056496388542587954102125553235319034904067248376609290680668399413591043483072061722312620951214707544384562030076820780091248223943023485294415342719817681622873478101557384011636134659711840388229144916335558119378888202499679637069720711476999282021135678403272885854869501336006582369551779259663802586631253682403812128242648572686222697846936764208201030732456003537891336475532655027179114833557986867218805169012619887384607983874883894275497415321479709118118621687388230879877134607507435944874368211798019918578232068886745084438306752527277983509500080100449806749521304364074550139529830928121260799599696259413818361267082414438265353096898864465088197650249858689638674193281890534274062810700466542966311383383160542531540132646933675413946901273720669669132612478291218678714294663598806264884837852474829611054537438001312456123604844171866885197547947444256003018045265697469586048161857287282257673535733339076231203445108392133445749968818432098857858726123429720564086864789276190955551541041224874123728949011014335578373530859222377862528495426164419567028661952696904885859294995257715875760158715979107969863440247889331236785908889245394012270212798564604291801393504086037905628810844422296643908276968140699032486923214870978582834001435837296768578386824279953341600948757205921986657815632261480265211343594629323769692653092156293104013891039250593088394882123731935460038599691853823826500648843712090168805267800879091530987709496716702828257141932595438938012716524897154808121478701350216524454105678639556685982974383505704936516864091071586240750521505679492559094420809886703751331957620990546151944089301582712540782929007192200361918612722241681397793030635114025026461460498345112903192945818249749045519151099962153775538541974386949781404814342361649394330688073888555544665634552319549710888859938874220865615807320014231145394129571625694594099880070562922905476827263820916103701664481343473839527821161701266221713964898909040630485589183262135214688655835427031298273576305543198014496136718301411847661275022847756685993568103357353990676154636255826260333199223321559487630552543378663864590757117209681368425517083448953476960786666776424477380781141316572566705274053782201072994860665740139810056202753126601032588924709795379509315716904780688265812398407778062315671446381060273716813327473427369431203717110510552600082100004651189237907539167158986818390566432463558898239900122030058682947791835060536050933887426741475707208042186632686477049527807108728269272150715652166255160064344612718007350475856249262213153770078226068883380914392419522700570056437585709657947263577946684164136282896235804082700533181102334555932472092284507233375401624656866115337139891212065157295441397023570950803188955877303255300784584223788545029955242383892701889684255822334787940061264029085652869056228303544407990866171955809202035165780055539256952437809504096013685107712969612370820994433002110543667605912657325175711386186488953817048470574707232759337587509513785185368740516760559444249619189847695452240112620246645667801701897066984625231996232400403616583214805161027498484033255950636431703762795473207749306413264135656879090482094542123479535491062237110980281216820161494666172463089639019569786251464862732104675530490783602461895746926933852712280754807823401781033119299163012869219686447025580974850701645125548455263203386086556558934293738660041811477015217726600238182283927092674727504385419772268745855850521910006209423567713163798601411368447340110989838633182961948608229105219319812049182576315737536919195970022493228655316805728225934049987290945344772208731679761580262506277409973707760395564656583979516432693628687349136474085961429004636640066121716002763907333011201604372806620870759247296741533185167397002892666921634391886134417803720511711702746066569684072058326209372427814951095606394579373520206441847838890543826533888652688515565344398216095523892883236377317508684980690487220203427258103090328430831900594350952434294145510891602216818601230723876274971916571131241744461764265438394064566811747914612968796206802586887208593835116338270102176636673107713943080502877853110212707951404847516631765648947374190708118076835177013455127658882910753232802746977299980890389780845214952706158032323943292410466213115134932025550612870664303130235245329147523583687513525328019515008389794328553725313459656403402084308738694435486890913005892874688671033127786717732045505261151271487139951981308676545430018861615360822469752751665657364343701463072426101230159610360516305992381456814051881242017529268546591124234854092452159626815458373523572708349262895390884597394803489517587059393935229661465809248145229672986122931341007182582508813084885350830940417486487547485239710079191021334222064426681097034689413490822461494362057295448290004098086635464804779807957227691582850260205386355691465399559191128720562811346289226324415858338721921046094521575061805032794054490567823174893558944563695628716803264973593416336018650232084298490825920827886174226843598732858141549014467665622987205029975613236147488406039069448892904687552552726025558226055133022684254110908562340760999204371804916885667047654064656210895091705277325678382387596357990858568172341238762563103638272099172660172632317414796529177924350209863632031229983098604419945509280738984581120939418771842807766676684027570566954489220901856035979447043625448938835173448799485414452294239100929011208423171891331385313549533513594760542632373265005572188352269056074741244148537607109005394172425437008365893464907792958742363467312504422667256068210688686092432851204895372796997463958709630475320192133934383208736263807330994605926775035864261362436299717314706473110586966598954763131232912900204980377921336198904350836538171781438908254928544165838080230833406430409057954055711381079609303839628731913307365145361050556246182627308010252371569460100711021823632843165227155074541257054587214371182209170849376923224472692884301977020416759462761994687347755065995965831559118228139118470706371366997605022189176939508822743417703221268381562978203480483533163158152881156105183578516814942330560834387289257581305743849529081704291330285526547500146893651506369948452043905449652897066265702043886152658954376054009693735508620337842404309705212231215321890227309450103360285943119320308400404596366653740528756474360767488274076966619849255441546789905474365568625457035439398660484292805665047662282178364147478762206794784099954259747087377054831851261223284863378470924913972198498776561215967330514584424311630501081336294628751352427975398809747094823868292729257337614439166530587969952500461804279271161087975491600759616996129423486325760426384944370256991837463048821818031225240184732253432461488968260782758481878965771344434163737603151302180478925699208354546130414561004476630374284464857675548615099882265522395762401167483788960958054793498007211381637471836774321719651994996619372995976177476966335679362673815722986090877014037094738105938670513015679284449274895171063045518697764131463406729874169802054170962400857026953431242201080963515000979084628814448497038230870874407298739860614507348023967687730015075711983075240117938542118378850166862984835479265961991716939147408611999372502536071080050796545024802311574489014418721349338226595178877127358229803021284049385612271016562367114402775147994226668946890448803917387286967915345490533712606786817077234784791308924052728981617216532358385655616312032063056147167279011174322282823631308262501781898536141533000547520881353485196998846671915795636925835282759180465467525000119700198409594134121363833053872830654481058036478228053810324301151781547201518722180214596227721287294085810359507978853924697701171675291686764177309496354634847701974156420678566067484222798995877152316362762948076140559521456210166597874335632008656267202471175398927291591671467566128872670929813863070033634666278683240683738362275046896544867535337154161985056661165934144558515736485288633610252525420842741117698463938441428872800924791171174714832645895793154137893532919650136423565663419860648731786773358663708269814151078538189282295557667851845437009532743974434398673417628648411712021528161885890611722311046836036724099129247888218173896927317331273605091129774765752662856101464002898857148088375252275601471478436655915514933753748598650008990619364698349955361873278973025365784323654292974465205582118375737601958320531858595338189120093333861834806177440033722929859589261030947533508044683088738413550235977868354561179723562241796330892958678669642924045772279400603768829296883033727457502467972050100624025188602702318356661187965899384148540683459500108219786176053585675814973207392481064102184984812335676378919783328701117033553648445663494654233959848647839416656608950628924086337479302183941410324605494110878308841566787077428576029410017220238723401033121252122248345966084167414545435300384034281284199928230427022873879365356411854390337821969250966620156258626961267179520314996848773535178622588212683072754924615788564497384762768179702381837648796312895874994313557216055535604517023781672891137142450703834216801174591851311016979186671030265699214858669308534120059713566359298036688259999763094918791411800617907324514807318261986309389394596443888677322127294945338074725520106412029736363337210279361280994548064280316878789186158363869194278945947169767905258888498041769095666273987184449043611057186787439087469905970947297151361958639903279450199522992608857299786142429723413907497740648097540556180362043156213475485037539520334297687864324869980481424734430772135491495099861146962210827269981431356069191460351339319009958821462051743752145797389927451744010067281929303484598486159408151908129473860533867839148182179160577266251052187033581997937945676616530779674460832974914152282091917593632386117272061259606484045232312662676179293057168413321996767016025571962496718826525879946931454830879731138458571670222093155176933191365785774286053826038546758363589995520643500793350745516462631540899787528726236731247174143175946606992384904535298682577201119539643514187732961172711973607306627792349869406900828639783421274532198016401006923249014441157432919161495896543862421742725198610073163117333617906218829174034094444016198294413837706573060955924521483681676148966434047878554676214348537978250194622663306866236516928781250471642001068212680719059968378504197348810497397965209155289264926257874037741737451931133888751154531392037093785929075353114570982754252434189480000855251356170458851353021039519856172462202360087240261368062598281981037248095757497971097756884551632795596297989821242134843799210421788604562764740457508386270307867542713794104934707065499526295269938360376349723629133480003583286175717365093429829720845621638728606627498662101591265378682203241130635250607850922569447932525563712351505718678271309861220868101627712706785371527316758184991555427107210147736211556980187583845276797636646023852029572176183260481591987616189585361298615807030831859948434457299109305800585663939889110855340792918921784480981769749268717281875423693743781776904895757562254851980495405959626898965975076118561783490096513439158784219771262117459495846364514255860440074258408922837781088813468889992184514073053413736037202241196724668120883486158150082190797823512463112582142523243578987730151215704281388005102071934523341118554300861104743765507529450106199403343074455799594185590259858417861968590739865201846732485885441952140239110896583325878123864292728580238121772499339264562663388787339084761706723600995087215905998709739739021137650595048179606220838184469853216736380356126443941739902707892235965824244231621000251571598704693107482860740938377487295284129753190166536410494020242497157040967177195332941191873361563904270164024442176918077446957346050425690326011121476288944741826398535924063297276991310784140950661929245219644709593479439489403735789977448079809415453671136323861701122266496238277732623338207347722207290858991146482434941004159835985484586344307403457297761424483568039305854487225080855095292609791068180474756783582876366193254746988759660387556455480522230549330206665943599828431404711508694541366921698241807100268640123983294354654472118438313965433095067231540691449435314221372315335728810598882581797210522715193892537815900416344593174385607437234898667606175736721520073596679972102321982603173266093701361082966910870954191858745638266727752137377284837225782496970871769979107305699094492313948522174589653938570433699148172857316476697198547581930972321064749689066117744992471602646828625301556162727684343588604320959527295682157037074011394331574605041588901779541895182485695702576018902432359383825341141177361382480971286397124900887635466249422559661388336813796729838137715559871974028134287619431634380313141116569627176077177536718801657769721400113002912603227066142073928713322488056283958042110760605814320482864132071225496640263777153750231844306475355638442426124376077012860123403749641638837816591740839991420932390139613111452632109631054797394336297908738437282085181394657910473200449987038455795300085725192300613803275451969453158272927257624812908477701893483419600411163184637486034201079529763390121660700109274794305078787398696138013756872424909335302200467040666955516585439756660393509280417140820968327528561067865468090967767724857493762763863620417454063115222094290666925796547299443068677270601918744506217303297122864433338092487229336122525164886838058429161430820714861794224130354175560306137846160228916819106903017929253620473007736070080001134834369940698647120601519978953303665370982190381598799235611266497455969687383480168454292741835690321338438571079099824466879880124053195276084868954908065284037647967716145064640173638458442756731318635783371088721688830226889656669373215395505164878381238246656342794290479910193431635866967154622610338607575584755624425510224958761312243903332316047421139695156939321470268775367930221277293184939716789592257123034123670051837171090409831959763001169391126041671555066249421912402114194874001956091960421325666149198069521039180340706962556167167223995440200254410312840308516466048499309394604741333668820999802873225197267271403922265854745789229837585645471406455974777110814916827920151401481390957392684929890043427881968650390651261728358330856850422655648012775928695445575889203425673629569433654293649212149601115364123596505689422393687055957043661743240371746397914599481926987885281303382127925864444716893462841575910037179614127373140368704538383920510985997846155551096656075665812939421620613825090932329177646954275332427263310145569737565055583374742424560355471808120454349681681023677071731003674497039893448094256236928734986414003403658422171119190353360427704064828272630142051795486027267339730537370665541527637548524882270243425837875942365609354713905410885775959069244659050087157240327058467819878960965002020682609853924874009024961807670592058906203038425730965141285816412086578248984515834467647159216984509117729244357392567198894601995940683382213657382906041120025801522446888336635086786157460253035776035492264670360784652988385447507888129381309278169892488142993499799614033438014120620270748194144230083246574686107455533144442790948775348308655134385294973376096249316016331135480363974465549111866244494037606878902495238733967968421517677684088177973071726544023390186467142766501385680953937966246265573899579206883172574230101489296000060958474607835925886942749815987145536466382362527625420862201431102672786004713763799499935628369478538674715651486669079435499594426548809495784292717463171318127157977992720210861959212444725130211019754032538838508106546736871784540685793458975897525793846561954162028888757332657706058216695679583943248965897635764982822151241202726918278359083057553025093962223395748940562312316392277276459556469720166235129800316756571114197917004908316568739243675903765245482771366573630423789415994264451998758921933451210561142144546446487450985436560227853621565211112285542278650155236771546136169791882182460935167953138893167842996598120460523265504304074335215527464610198419923530547549649032648956558200777285344475225790950659535340871034877493610240871621205673356880583180443941505370530399182389227844412378790629650426342067231732668757998675273348781767765532243187085956157112645943096474127496030807031493225708016565945892039732621028250596261485422061797118821804074169288746168184305041983004777976177067106383703926922778531826501779208082064977600368415159759588219648643888380315267689710604026210343017191958517847459489461016052322089001973659106044181703806126670805372581841388097962559896412446299308693278093465694378495632735680469384868479422593783313067446017929388554041579065950428924743635471980945721160158856498583807707573386197252034227952548254283890742354201109440959140889781252939436127760556125986058285052761228038972472163544509436701672011131810963763094883941799672690990127153891244723906732586504242502240683373942312433280187268515029511692970005198669695384466516253588851726918647927784697269392295934468098135874806316438785656410508037370692942303054110593969132725006597095247448507521815150485098713805287988918721966478461571533399400821561643560026014057454838572743768041888440906782995601365395764603377950082271335836565165566722347762648908911514017306626676946267185701953416907624846854933406429267086822506376196139227258194863425277932616042279045509293781586705491155162346064105940165038827958217238052340900745963649967619982174251811345733116404209834515268057554144940063327127081150064519640670170672666479457898729352171896963710987647288357581940506661994767220755835282918462864791809698833928275755690659312250583959150870285523930497533805440144703875337746093758897438332828671880483684408492842081174116860510664575208385430063766959064871704332152338354418840375862175742876889409153417020129029994401656043293132456752419992821076429734676720773273690972654818138981663919600289711533557500873035174686733712963097950803379618828605675060659403046407529343648869340776707751885785416214233421506256594109592262886568037529907210270450032760372129218042404772743590182108491387826168352872884365133470220427479868376176913278592601487288012980381305286212392181333689067077082297559954461964185571353208993811450111087435801212613433123996841784211273308297427760546140527698624942945802358967927515188870329198451028706865855016718863615921716165005939530615348715408639887026094360577102887240160009044589967974745545181186181312377978866319071903070600084840329119043700926519446100910016560248625177838473906341022552059422969184084245340705842848840857033573495451186869659562238624006607079886227645459710830566205976550531356814419995938532847006639463017241274989122802164821929119795205402585703871876029522549177857624906645478777154606625591595951047463716550570337938474955439002214049557737198830855221297567099468083043948732752582367222857679366704375336576542922820369171332974377338034736436055239965516571060366547462890544213886644116761309663549207696662876164923869138532260341680118154023960861590872724516175913198618246692236806415825191441774490360454130052134344675105951224520796772176167984979608363893203342391907395960501044152781496368727089485269818748976638159372040832112346330344926424913576855636160133255916612078636563788517407210622116407762875084410636591094380410284085948332496185531203721662735736704812916551160549480681605699672774712671121179462663336656158330609835926133520530608874295963618743713107796539042737488084895212636264641505990649767788622786100302657656200385365890561627104177332804250115360375180872031179084311076761889039875158543221777950670567606469617757352461691754118757295275484633803128256959055529998432066814942074702580758494894674055451130349454452742285367887722806563018182607420235081661659691902843132220648468706800286303563370314343038608968994109501611044423267575208258411683869852013649833993105980544746285262830786419863196882153361567154962253687817734952362340086983269621607581236422472198027733410157601990573445089342710988720493234463611003261382789258948877683167642603684689909841254365188958203059673501470103528037435430841246668357357027276332347552167525123502935635961736767634763577639742185672667335652494243811740863144890354361219983689338244349270459177335171679762667894200019242132121296406881959159303784120857095650681146636651504585058090697171471281987712464550343944975584128800402931881278105651167250568581221734503350831063359873004764161281016683574460884419946725072771486336645874634014986513328317332366063691076839806762589201094137144955201687350566665754322376209017735902245476776756944265010303412711543633105613577309698001695777695655765735220920185999138994501519201925127390079868583524676296677739517507983487047140687324905048257826729921997793150152192039136540297563785818775678000252883189840854303085665667697445906312090559394899706171130725824883773376623321637932603635916996933023305122502766810865568134145060532417307639595770903073407077523904055770110574618212690417372548041544329119874353938613791552739815896339955773783810433825898205663593320994515923996401845521482207696575826822512650939841425558312112882670639300043428789531154167120897530019348770294114821015734145880507715325951948469806769740421533017079238846651640805219127832314847231961077834405170228939021224006479598930138315905315264901616147766247539144950274333865295753710451194872915652527986986161622779396081319402653088355198116290353321405869418949321298667675738166327975421995733627400917803594527281646338229450137274382657914099543013223084314816611242379662992737621129848206705836958518024450307501613734860213387649909205580661313730066818474001567209106399458274549660567027522363093167190878743547960074248666639186357139340243537461222123470056282239336550427193465771662442335640294024774703960214838185306244698280541917680922921888783029078966913973456208610893542166987894834669581113670608423140200960187964004836667622419302342976563062545316457270953362594098856574472719868930799756982371432182798884092993082000763228370554488277694098529379327574336923239377924730022912245700023574264933887178090474558859728178473432202554955088997603986080095284279567338714937346566175402631954109795717730751814918599019559334282026723891221983998047355003261543233212276895694458038506579010695457546302183739666356355851968681436798930407339615639659405356641752516016944846752894341521438405325024613655231338308020876587659920109088192978519361966116225209812819875831395344873935616404448669906146363486040718703329654508000467093644522879989916860332312636137235991878856229643078767938147436142627643722115056727024145938280738217584774267646722721837124443894803884875091712180975428578067697046440409910547925581367907515315132554169913083331127475273591885539516031497656803808115425557270787041150120410477750805743903099526394808249687007687565912139529890222925591107771325783272527383436132825497829285062918168415092281941812526703549553760794642538412468744808532972086541060366626811664875266448584949680701911784617903164266445243479591947085865449267593169961035477042571397699044727767942068713095691539199406441877467968385567412860477859267243993022475483088711984376182565096346103821658011844505346227257174382328519001248932244768653246327897005190453675852042681067767430234662400672223947704586758650237300103436042116015542488868139298616851055677421939308515437777788944079022749590156731294661829071618190398553169117636041530969950028000213475203755225314411587389192380468715888994189766287620400009309258782870473371221018332238143148484580646872142550442113913427042048434869745473293786725975726757265126235562866596790503160787739135343818143128096941215276148499191540163784822537171806963153400648038139852975791031717820061970721902394790206150505955434702051812788217983405167832560401213872365893932405672009734271358714187861998559823563064449312273126543051906597253695314886004348242122303410563536856520458495059393476659477996900750285573998236267932757476720415127305387750438203353188143808506501116137541633520122057871282164121816999470815734746974316027592524145440037589630849664298234688615859220722662092534705848105958163306274498646617350590821609510206770882632690732357123965839002543753102301416427064440321306865149554086161789306833129999500450131721874033226026184763022068684693391136280426715373956018720545493376987806785534547411966267124965206713802008444682018405257311175472873828840164649298338168227675568034576738967571504786030095350264459920616727225174720652382445670900290962879230669083476024612853317302940425688233299297133011033587891054330176226285228899775632185433350069110085874985866612331748197850016299965379747183871275624313249021119370518367803652564610887413332683511827815279146770187678019154047553820354455669833224932899731076197469533050906227469211408250552155355883816746218140590505668369770601471428916458919180227499009463420882873272762074366144091316448101575170296845099554314483121905515507862497635142528134290153206097279370356381065706964743840656592538179738939694083011224409610743808773414458827777854411804556052482542116560273116839301107045419464752742033445936690670034264309427895339035149831917386872628279635818567553030492276358472622565165681851156869298801004924844290085518116346091790665605234197236011976107684072643712208899049157546804262636866748865817822654686230277558778869629580310161811796250151268035402504615124170448010648074574355762290662031821247264319066952128315855327569336047500549220546384632211680157368826556435001267405170543975771411370913001058381885884628609189509721510787491466848730502385529336003497235473979458478882551006998616944728085958122075142473173155108260672097409761720149255751258988877271295757038625378217319950545015699099782038520854097394429627076629817735879163266564230727250636740465122359451223436002030307716035270024412742194283796985520092506568152651834003099955349306687397163671672868487696924617044821907787566046152721860314081477236409992350877428811684181508814270912690696774583502865603384322500738695325968383770796096339392558986634900074849277499651512336755683733252630993431365379603528070896199287616359966756741906389740886075593421996243083885161659083582298782516751762574422709012221650353696395833495834341051116149077655191098038268304968416178797189370098889088996366018558137362827697210707080270914868333114021682277376305791624914909026443139359307049566428805108542285102761828121595610575354370746715445815111647771719711630165209711477924846807670458033327370491855658966259045606760017432596106637935070303962479577551063495064709318840716809777180826429059194147572792901205883987917207635084661526093628770017008904572418796446268695433624413840687995227249749304922615794109869310682995516480564130872849232920754576666187640528300552710882323860923586715333048186748624060753216872665704517871442706326778415826337041846423549360720286317907623232899873319789924725706315228740858313363120113818419001245163280708018863032229104074895128115018173965007092343815510876886779327428488490308243332391153687444783235392794915822736808985654481891157273773192844515585621707795670416828507534460178817266709335528860333151039080954813795293587589447920322734954297000846121235417975193826559951252560048153233964301367383269663574150003434277552508219490027405931528464924165510071518830018939151269080342974813939384845724328655527984634367415075080578287806321927550770466792240977119217018077954601527536241055726025425778036659892128283400608357312601973546353578347817303396948546650827817659934361947871023893668170909571585354118372083246158192816702548858739475688999536797973334354828056255492212682268354154579122431478481979978171103270349949564384837940970098491128089391948516518303846979144820123954663077139750186395834137685262434534351390327229092694244197475949231458492801148239554486232623368979202559325216593903047393684504102277898900571546843018051753969276803552069884557129286314812471660966535683086109885675649121141358700920523158281225419481560339532284143399305575619229514284255048775295336881609307807660187116477686057576163680977198519365795933462490619255213251165501976740375741749775564493856321271011044404546896439536868050136354006430952517545526430015200957225521264280647668913470627717443652435856112980887324869343688176959673774041921033934046103485444239447982424665920169975355116577940519838400611080963078133663655038310923885152742326520207608779610221250330271891326055359556615148893704432347872957110949379182370355837103054151806291542696478705524958442991136107830969337906180822692174718528909170035575683187210743766217676645478862462696237473926928668401471348098632930945155205136735219963205574212411741806754419439354730567247526571969867936615683083690363634586598094569567536946112924420677171623670837454892316923858171844256114555037920383271949496176275702895059670630065871064669572752725729235570288217539962741803771900307328518239697297803663084905492615186223615801122369519315560371089706125192740511602041335584821759332046426492168751631141991852279607667779359393531478499805876786858660282546640130245301669930638507700676152671996338601217362872415146716194790040235701013398346597624849870884297145065266617087958492165391022706572570937344482048285789714798397688069816449018396861887177236884578407406806556757731640911030670477635484043281604674085557291296257895994700437252667608085527426038438858318494506290995509169067374805339633389245741146678814834732724305516313293126367296550865585874351438903896478626058888569010567130983881272759145763611220486834168843400491538953334298694561809970154368412507907705727030788653335521182294486441188811053847913607772494014270186787101389841143096854046984815252711095621689648379805039173782393421297892314397699037274903542937149981484688264067558230383712891069104064615492080113126554861154117513345605375406127485382985204129731796401412141012524874974028269720595592559833085201695551648137210988516317501918931142741247691197644175174924477493813422279740729537733294094639620021992574530603611465030836394031222803588784492658418123328203684588340299859368421754132070191083683446902981114528128425031229677993183963643961365050762869681850751982473216064035981202880489463131608534875428973025722572074855135827397170845707935255096472967310116276570500207957342508406594744658165932865437237975497116191568877810266006975136104732700381374228527802909781912709713657128060839572088196085394804910512770487028492295220050294457134280840173868761861587743095293140415582675148660370621479248549369863948008222417188223893041934373186315090325872519329787800308823701086286105959259830544258223834351200681055328415146121581419014812683567093351291509709453001576902883716285908144870689780078079373322910352811342694131259152974703953559722563306896748791510086321591839176119229661544182636292481652092602013229551297928391632250301562718031744999704120855651785295028485421126640331652456254600274504170606781371478909901857578666182819992612338101565565190549045459932127056656106239925104538532087912019610316629091538925753847262672660039998184383710112296987760195739396378293192985255209702743395247729434583958887445819819126417735676082710496993891628784983561127056303551130170767497593560142520361157846345191115456615975684057217202024745423962439108778258664905907908701074860892833113610872589144240016835646155850322705570964125168769687872871884861976209760831185402205300899161232045274402588898316091738047588307063280931568433260516075908311662083389600875727056950333489673039186450722629917875336616973539152191498828118556409878163995023044256181498766096091171460679012041620104295574476334036027357057978499600121272969777622999022475928824704798694133563164262293332521380688830922339101721362537216849089993778848067493062245803445059236233104281999745370804842229102900751870651455941950827672651545690379104465697350259897652841074905061187317870579139840379745934548388784453515246414158566738145066463454118921194103346743614823827592728458827824696631765844889095222240415336640616493073252408006283708053674694170579186548998741899350708440021633097423798813895467297451598057835674095065181283669610790265293323370715281953000493897871190549959801876452630951403153174192781594778957980560815380152064199890622061723856913764186281929478350390256499306018366071053344640649872271353768590222884263039510224350043447407201568557148011139721263430402271650216981165835623161323371884785809771302197267000893662429642605926739385934463104070518321395374673510293104614552176127934133021840712900999521422509740714284984037153949480494663333667057841577341867054031207935045154538884417842108038518636388204157807389485218868533330070115727293199511430956547702639825588884833187392130982424691512300419046588900814091789808052355891225385405965166262918239565537821215115955392246844590637121258605263041465237514456942230910125596948401164497397388260075367188344314197528613898060354559994943903262279132415758945026856790933409178573561867222712822408622049412191046266285801280607998286646703300087635413707380554796052285630906454071076286890174175971022634391206223920521469542370254936751163028979723774356561218873177266669356740251584477514005810984844210600368250165665481004028769825276672343365651296939076057313899750271174731588337544729870386851477018281054469077195648213174304545937714532037089566580669312967086138559732961345862050824012910350911479442627533026189897016771840059793128508961719646094145624123034152552879062902593731598149430046131882552533959124430884382527955327929027502825154412630974880386245352455902264708028905006172237943039910763607653581745793203369261459952706431032423743921057616064875241328548395221943279995856237563776309006734220040695572867369402136219228377812869791320895971962397304310796920911209277129578231616896302231485280903827339097704998756697549602468739848640970549197290316257631238884778904598620817597682541106295007925944152429292981434688342827187962106108770794284624346257739517360642350151450656425862165224083391860022530175988703266512112348404618113358033024071011197193556476684939341848474354381833134816191229522816583952598718546697775831894906176575971106804542897440384834190019992533351983932994639108257648552305766671087053540259370914567563540771582803750617661161887817798433782554455181038527146514244395486199452595923276983044345379833227410102491687251497301700784603007018700258109644633339160177399764004444480013077469751053574164871684727699819973125576067227936579050083524757038024887913599317182428877615467383782958967625833646997860492657759323362296800989459681104511365189586201411043266857242529438163735518814464292768881244502163217929858359001990177640634192138239440756432803895210680771021982142710186107201020310152785073805162197642538257351546537524914266934782788293972978647102340842246843638855703115191558938128553880190868801315680879576414000692207977582007700555044705198124779875165647554947355573583733195961703336195610607547859815762294841013585234243005820914117624016430859376843522930678989890539428807759639717634296832855432066953293020317665412641570207197198588953553888755742702479310227482873267087140024059187435041293555452103584876643249910279396003316711487696155149325279316343562617864190785682438187612053828726298772630821750187615790014549466474239089586330063075445637223643474917873947675464982975764848319259683317413299179029939774665989315399119257923844152559675742860015384154579704831608435679557187526890113647191511271565217004007741225385088660007050340228365071311826909522664135015528739952873718568346532238122608496722550084701576858587390306517954543140656435696272491812592859171763218419734397158371524361664606241479845955411177152173877613201139353663222114409228736878824172085615232877263649957257924290133649493169569713119948689839537647786879722284257053748518565452820061145135802983515153255589220757722729314057373367725528086394632491830177937763053062124571799012245058287283810523570363497641314647890522316221768936346164326958095395208418448630841051760325074766798805976817882393347052614502270946987161186096894242583192580228619737069884996607489909144064934232207866719326376061586286361917417779659573664908448226353901532182427685257478428328919069619237567358299248220787854107678618541731741538552715628883105719386580458812772482553123733014278659898549088509400726017996726972318279419961905013883320669084228546163481710711640309688323565048953011856985209526469427669672304977812459910367090246018088888618422235936472877866769513917091040378490217130448517038806007565621410808362919164062988222295213736210942297732190889227408841382259162916096258989414141060122619280999544818778149952999527432909951874284052516904205116344099514943340533125592042753734967025343302721681967746439852831859941440757662891023728713433097580971555550469109416451210454320374190452068794524974901237752435291319478529102838961312096146546507895597124508389009617676194187684978467615427526228803159698004447746644097375527080322672840275434463022453427549155659886576388405023341814916824729269511997997999671949210473486318952338273989018486647624662000679890379929631560460519746583013510814698428020928786382767212987948656168244779968371001690805992158955746783503404283410938076776350636749853800893868569875646847121702405614157216367499680909504651929548086159413657293047126101754142519513600471195715410878013504931860513866634648790406913939612729557153244681070981920521013998491016506821589005574317130299922387868169519989179373084803398640862708375558737040246069734010732655045829053951577359870477551798857036014978700158636228205134410609136608635712339660696023256942350578318229644749676933996576420133383990102717455934121507221056686507983470787782296330924537385333842339852569870335391405849377159843605841653810453655633592659591824249441766765908245512731815802665808621862544750720812564851787513001893637629182172600310494604405920787940893122281116646155997836258647238348530620116841357844723466157059859153945749361363959428657521518366545242584226235554303908578390160813075909196654518897179114661966222427716026106458750112263464912383153297246304011029326188315511914504418774329117782043171231811399776721196074199677111492725243268522635071115433404045368604628155316852549678311640980776641821484087774918121130690828886408843298228934969377015018515688713409403213041492512928385609960781813640182379490993298128763875135595289241734256165046685962396443819982943817158755740702460010621522564382909736959072123081085282221540291739136634245880562365876506628984671637113091280896658831433534459943548310229041919619871125871796437210977649483469451700955623797184919028005169108036352569990962266665800126394311706843501737994754606107575203946032989614698785238086623715180382846054706302265429233127982846433915301529726006869554941678349417310391406391709826394045365604242398982633182878572952904407578048807685878831720390075212997794087403685762509004562980325015744352750960647791341311430662180086013737234800536939634104100827609702417810119970016696181762084231329742848849457732593616989128521161470512352298060299792180779419569894161964800570665842656311041737189816284939728663831892998492364176520467105858210524889858359417656769566210305927497361341935800673371501311569141295259958913108060307053510067955254303879552204280317211836033298359946587768835053360519373400773548573565327878830730837923205290986753917034654313533813066924778368100067827604628532773734154767840968986607701882130431093766474910520530495925181157543336201577021180668927847529830181623631328014973945417601499030428461144471607774107950881052744166627344629391038817422813606047960601542440087184970632262562607714834405215711501257804590100394242717851908308685822848661910239497105194049429645765307643966371311259235690534321327923689955754285278959630802174028349048409844334058568553036637113279485123929493851533089414788970388122456424160264676251667267794556631954998770766849112759429569180393465806790651246800671372851230500831898373680078360594394765626214297651161330107984898760591885668386148126910539046723639218904687005235784555212388429077421677827896998882380726107712452223830059358412353057412798719865065320342812511202131866631493432417406770830396218974167199428312509723212091826094885920656646320707846964781775478881343093594651281061727141745995954715647271325316334609440336605332256166833370597708175843255182129174981522325746934035706569096119672138976807698229027359367973500284089001711833259975660977191372039846206126630214341657925123676583654710007216810234207893189609253184544577330731686633780034514784299567721692718275012375622500336439880350386856116446904841733870985850688057232488682284974741865443793195595242351260491406961430878196311779974623875798263329809816538932983967044972000702316362067283646465985804248240059087109909231021504093928154638838991347440886145021049386698862830355318227399689671260111761391343840979455572573196111922081849623600630274506574976275740848289923496169931751003728311975346011698285110024644352017108171594955070300558356286318970135643703817508717869183238410712344251576372937788549317440187078810195855786205666555702119268816011755590828741159306803075475642737250649831481781947394988170390876044496895522899740097471847488072930776289579894734604705015180174634437225888087325512363053713142660833005763088700884310158010927963118331681515287202408577603142660441592870659712147489249426203343008556882806133869231854669291229200714394060979291663807970546515628350122407693469810979362689357420323936595747241651954055963752446056902587112526049214630121488339682149741677709078165118121685356389329865234248185513740501978490826805128026261896260380815759713836914380298063419902885627185334134734983616775548849464902020147541550550474994982349670254894945015136791036547828749481879857184317235213386884668076640950798459142991045912793238116611247114447273820344235792944428513989588383073548551009472923398142938019425742945941409384787861947201884958091239770037334497330504841265219373757645999595544954928940069476400186439693985783312569961544814944515611288420511426585281565024915939380354982207653707434268444505575879527953562905116531127699978669680013536354489082838984300013628767832776958285810862641178473558816023964036280451288939391832961069632292308951938753313006307966836910445457395392805468199763817053171100358863931357059254695765373209418516534250135587659021355027824967611685794946966657737748231494642656546513142559154630555370602661444446438010549778106612069586048968883925296456587074231002307021233654807205971845305008499154232452486917538773856410780063037857751857374324753589166412543595028220982906651867335623497238702280389013009292455317263550841761130785764501329015569200412496494325121782743654970689747654382586589870022874440930231113144953382804294584623415406601825136034884790859665859582874050887879331483528411185371798467176511333631544068340454795965409685280223706282224935030813858304075746548835902972014530407903932588766995010901226225543573928957720949548771127777226099405809211591821398569509050020787624011638491304692270289551051397145664139966098528304492124652239404177311827789422332559209873713776354046941415855077911493918747921774858698779527873253760855997020136781746699580205432236841303889302278439615669045837204950020069996299033201422388219676870573362399438174184970663288543188211897224732557028180204139285317018174151062940567580396101274970254690609683045719983166433150123410693027563635246517130320307016090855348515108290824354740265621932023412358291983129298185159871870573479382862887975245030662940356378518041794243292656791281530576074796883587421841192610546740409712020398325109107150356701365032202620552951359481614702035616347190299590841091050368009234016379127054374228498571223090221553558672374667994814926529399946993739042653950380102412474123047273895504763856215003369901263057755028971842187291149217577879483327200285459849168875798749686781284875726557789254497819873692767654721078309122898527720009508778139908234364411576145655962255222279971324132693723836411868564377340456486954639876866151277173195554910620326053196125415719530371019495002842245875552166872120152003897363989343312001186473468495919819876890413393204962057583587473820518890678710234824818590342873107651484037890810582758150025612513100951623693639279636397850308288163517352280403516338504843361050296651823477536781738710313672168816793593055789749926744305063027296109524439182660140965314058198228139556939848278087817784236450660545827593124549271782527637263218385408015475111180035909803735949557442874782040160723062059761038509885561774568861800259529585551914877930091671174177772521131254111143816317639366226417770730473300551525504597928691152668361597479869809288122357789925297822541187188105181228365664660556039348875786207693670233667019300790908988356732431643210349461106480003726685396608223838508020727059715164258653518068080138849477072791436528362668188940876336140649885155572969411002140556397322701494878942999076588436824569412718650411318506734548327593119449556617441649082418555734521551944555520916002506676529747944399039279980327044501858598069230105307019678694850189454501694703011544880598394737389953890151172860841342258926692972374710733102769832587367416120953294622819870844640337094568897858289471737787202768299556436292211645272774867985724891339135160682223148936272302624352745667866575056713338740495198381562665053710689301494454057645535907275267335863195845214454683752498879693393663003995890444133868520563373437844575402142821602507564025301092816427011371673846210504489917261939856864961367305969020964896930241060699578344168204614262138535084090838188029816412471115869412501599253411948888978080273653815086809917014602001560380192956042962370386706672227692339705142447344278144723245333641136556553025966082879719783563777975137268756646625688526101456780013528509409642430018637311047539392011518987554982199257934707286896920192015735750618708014554702122287435070359891986226499693003639670783993943183964057964115575325464187513524408889439656714960233874799270487740091027611754278246118567925789841842283591631723587443474849265688270818890158731388380266810293942456565751415762101401547195322873682225855070729210815329726945010958421694652690588455955685920572738874972213559063662911112294543413123312769504155251051016762968251063682321198943227502541681537978141650853597959882163799473679070444879123001989413908627444783018345085480187813628580639138809376377884017787772088187186933938250416792015132095966119834587257664644450038941248321791986439902210416186936998885530118312186343311494369293995264484848216589369921796263267112705386870679152199262699992958957722822469490178700812277674067435214296177768495049396727432840500000009985389164405277265157847919221600201162061724489574442695770445630885397846694220556043017527410546315510122039664792570063771102136822097485877140505595532385373395250107467429427133155125967800052809710970671453616188867135993377157746110431504526901118231997338003927455757518047233123445511716390752023533084226527870867554791414121429018157366703937150241219802112400447419551915808308813525040572502207992516210941631271295574697127648671318168749942357615052073426483204979051748687061502468951929366303801068632046007908874810718742200329236086704719320015580488911032474453574177507572990714265782478785812008114324322691911781129243183017675093615538065575128780758942804964109880499862415462823509603322322854935704668659739874435186118632348978914993941857885048003688872450881110976935107376928819884957885925644791357109537692741087501065282408332128576767935091968184962001143348255697004069895250431349042137868814240916299475772554267290476016065678916489773947179614083289957578056686400743230994998896374038456458784857223997937622916881157715129281693627206636619469351058720871563108862235993729307976617903283146759926280646625682932144927444852500063128927377527315450698175538369599639884779819783236917542682098047566852636808094724897970889379794493034052138393913404845084891136648420249176757742001228553079082785631496836344434228638136894621171177526824123515884025639597303690081558896774255269349763653114700439806446868179448547441722652891221808111816546275800727154574435054947264026975922206349081848818322981576152179367940428189133400762336620106382240350703970211988546473168405934426235654437356498073027066067835649532363839780131933182994794165651581469783075372568770995427643389936586137002555319344483228346807700377568595887779105092390810415027343178052601602858466848586596149083819275161995218388124944119333297777148865386123266861523994138448864727249018411476692018405770777618396859181142317878783019203150310323274216026071013837584343229515120524240809705921624306609442457266124847881834519992598308548342717041536780408245742750777849040708861204606939340212693327014591886770789798784005527307090375841717595583968897447962602749893157157364636261902802046348295127258300056586782208826353446807023466212975313721546390598484180428546447284729269928828949605602820025946090788644973946874887344296093433379001885954562184713245538770801800458961568919498188070605164328775364134322623443126714877432404647781978939577009234985728878721536684585443636119252691663896389659192359558822772405567309145704178051483842971059504415012242252681989656148040111645195824600454922113948237632845875408592128062168866220453253200770625644618825907457078309164974105770668539631806528813401067016188463472330545945390662361900008134311648663514136033740206583292707216886632927041773454202363594628447802481938873662948442687838218493467449528450648121776603631639446188550915569616559241667138974172093791610762872472935906605766692820160230466553751446027684187660727038843153856996931144125471588347937577603455288527712306529030389127539879875976432218744021770937476994016415816649623400238550137895663661861217200833383600131346309347060681904889620806247483879996439992497032927707380513172374451870608470106353556453892161390065961889881663575189073522412838589316029526726722483463010053121932558325119765845964148697764096864967454305054158199713966311745619440993417928919705786409117278717973684575273972401976216766699370346837416675932140017840079578949593996270769523529162962387162074898919295755618342681408703319650356239249954646598320927012697957169004270288989458200325604892559503878643076569468516006887920803805486572357803738835044565280405119369062813987417108857736542837694443986263442262713587544211547959237097278906304624812122452621736690197409974510744661554591514820498857013576631741290019963218758940100138930302113676097218296765452161149140258880761661211070723305694877694693160775910476575778864849148575202720014748441758259715248588388767709721404548137833575353041446605175228284162968562250019761121861542162647125296419197864340913523498445778613556821238008576943333525629378023430575861810097047457135350195838032096006240636599086062417324689709745040447580181526349322527566703902889698675495388332979352546691734682410121288437884179457432236782134858985776763258166089562245773106249253000416867599483583124155130692095914065320035497097310558932621656529492200858545363409354201614597385834181315658101523841087736297822966996305872665913009897938424268824745510664127280041305632469087602186578146189989914353526629526920835152220457618276606824058027686880353059624459148418682377220203986691314415382408366260244411069234402080198392736374918629112289289657282238045031588635904168497389021373949764134513306052165868500949591589005921952903838696406935737433098797961241835284333041322147883088165153275536462047187046003716597852258669628823490405215230261915477842699159397671892170888183960479904922424420270096183188842463021927839887862835336842593277133172672586758666078404738958543227845085288493589729176426170237553665766394636035240190146104621495176940347336390795193437077731348962766561949228831231849647220566045318209064495986054741420300635928727440251912512963719108968337952409321403160748377905187396827582574589962564303724276711314858390426107710528680344960596363477484904761161661025720269646137346570353284190293330541420977524784762613488355347245363210734968324677568561714819690076854890849282159208242435913402567861464161710711391155064744205139176806208242628010481108138356574975911289175085396820766050456802515348533062220162495003013341621892766168730950049453083518295094216389565772477385944233212684808959022180318452809386690138123113559293061313205843224251370476210719387594304844708793986015816075072527029274477495332681742503321422434437255849975625436033656073296167969359562423959293810682708149785066998110361366279664221684150737127315070955569573320543169228701187713333302661409165983383309631711998015058572206005960000935662036148571402562731977046490254395695148978706209508033198669466677129869574969182972936550636500498195905036089603447555827282247116927685239675505829185176627398572331602445568008170822901337714843315838063771122109143369887789868484947543065914808301845507797423948659408153919507148088580722820182019014363365690223086280423421120472206585094635458348905813300080304305095003404614644672644617822117124501014832033665858752552140846042414310125484484593465712765269611115992009816741072097941033292819452914971272084516969098470758589372858692808008795443312786888717738287394085774093040152639154976958066708698822160814224250397105690027647180261059780553552053694694695041617296506523278271759291174379884829835339381686825695240126706461980742603430103052950189229607916505249896793828151568728242837245191014751442725704508097775192120510284841070644825078179585809611929516813763583674972526414319102959086649367799360651271783837935714198978528617571417907768182780308260851471687281378301199678912059030924113110245129513580637480019721212117319952550061216901861494814036054126284546189715976640232461008221992263153066272873575489695182956860923934972442939136352162200319734106484655626518486933974899028381596072876578095296674888160101591125037166128939918813086946055585986014054592822141519960282641514275102768808385440516777883326359545601937018249583087311470710692828420613120725374797001075355044995295054857854629356399109401557695491282477262402962168656946655366733192594741007219915547989099897574477598717123123411771401352635323301124769131720608545531848849648540177288241785660352397808712737379803255889024247427039856423374959692502833988536483853717257639713432833294174950130984945126536474314992227730018630726735988287914611591047820161746284918647680290834864893542593468527900997147845036513882271233105945029420883136548286023164324114113243008616149115131710075955011024804625000439486505199640703952918166329475310836993743484898419082615024823814633930337221621249094032686658021296119052363366236973139420234624952107885483071735785171240051032206649016464277645838720179228822196701895547994943686126843753071627863237821146182802992242957479513693100993773463899803003839696999956842026312833456162716519154168903514319764714287277229725831819587668997198879199282361307218591200599406552625738868978401347369452714706514683965855189208391544134198290752751977305953208695308207281115240619009735029188671178298923920334587194239228814765788592068423804688286652497941189993027167619873856793073662593132695838696684624870567366893211228673084024552058713013998770392310405288258713674193580378257699840314583334674510283022304590860561520469496710621710070605695654047049261482062496533773378003705547690152811416821987656972859589294415147242433416688701894246996987966525585424941193799129388870287602128910637614690766554010715716516671659677592694383610586015912819135232930499835380276572653231780830348621469078319753178144663890916630542021626762123954862838643490096861632953624724485451960521480701403120878705508732294279461987048286646936644020838647218940493342642250227200246542799287095120498793989529800180871546625494812263264205767106577155841567116452828594923723004152455120430100264095020285111337722010545028642330243460468062422406302876256874701758410968893153291841628111446859662893430743916099012350277443994065931252771543516547925235434795568816358530493758660717616769969213547032869856229898925822325038977087531390679809274492228921566785436391524448503713043284850998373743404650479027741421223844477046407041109381991386404271843355839679801576015263818238105331596674897993866137073735457036302933032098696087997050973323243237273526351245766459402089958005556427118975816764064830807374934386303263143834720034083091344368359455625554859282704764378464679354300077781705903009449441920185327876774004635573560332886463278824446529533772672615114450091803911092450589438061716739757388491057012773085839436390555985603657844272267023385363888970768794842751568336193125847196983363688537152713025653844913537792287671420125114421947016706799301935988382142712985770304080431056265776391879863196318440038541442386061166376872841858560769105512545572162840400602860118052651083779900250182653682335355405278260235508713682456024001120477083526581038890638636614916581635833583376452634436289933680525897707872651861566935761900060419814581151476464502287449356562708967096497313730023367238161908653027969975784261448107231549654186006578514506401172689283044897754479674232834993142096162118156730603417190698118245312901401383945306203116187653650395323685380407069558013676992409987934523012590789947823496803967139905976898686582717235813031706405334509763796978779817029817790573699834295150265728580040793257066965372375096591978987093113159702898929798557034560122071360834899194361997714210817178506348826229573919104225741548393279305761674096412399313935364883107341250162228080387625829854409010563482989754869771614840476077766443539664286274212753240826940084776278959576318577031732761836799351415319364707116846481240996103290651713876050328712017454845094984259636193762335495326903800193381079816793536007908646217070032926360394418439260284188400422126949447908207678332328754806191268883140105845489691203913539077344943850116411406395414604980702385137623831103771480802869659985009244596994732280747063475585578228739206926062986382841648931822053956135260246503894398237005447069318922809807964712250080823001003647841136386273783653448958887127886010141103799784796116189438506801704891478879298895027899295759259146871636214379340886330856234467154107138653328954185557984327817495154651226130193473169608326280301898364425471474358831814520032196681046267314821311516713992365366470143142403418536845325782924010178392335089862367157264421620813958177954753962692673264790434329232463937008991946506922371961438631773759193783037089518605010390076726965268724063891326080831293578149414835806856776575011648150556947197803895992484821465908465348100281334088674829230613848700496066773037069611146679598964663458146092605969282073100110065870529036532371605390817991907471937135127438667541142520004178923065546106571223868747292928912309700549270755197857298593463650358937642417517079758494039571390302011219537182064573766336902640047056694062212929080657069916136649392523051505809551010064904177120993625955504320439811012699788145606693455206273651540911485742879432475550733470819993541112542585616459917124908165996944238667458309688801245113496733565482844677610201240444898873963450388563874968167201552383849928870596965518014577794061748211124508221553215239788552262858954135620691954101226811434325682589114035386242283049622703289737897030758104341511985880185893220627538820553837801163975950357303737693592226690308221154067732389252611951686528976920990358412182525796425423544554048376333246618879159801700769124141986913034519289403983451093262343433885838294084016462604068416965451192925871901107558262747270776097918679115216316155831007227415852628269487309024407150777442450250953027854461983837926598518529849976245181800060663628387372182599784250040703037391198553522392384393853877936670534569263962699496698030123182463223933929610308368316086985442734761886318153545464847301823493074886422128620901816784529422902101557257626988338985084552037264530940579159069748020707301093497117422901366238693283077381946676816501010166351092338002620858796766286788322285840049567911346303933684268104304236962983332576285977454053045392258672814184794332132298802553244955579911664734019326598216079810169385958798163273500698024732881119804617980350161794975777490089233018126967964057231371723484598944672396636017711225001349575588762314280239473718480814502239427066197148017617723275214227961574498008406810650091327415227353643696117323129152179153583269985037895453927487483505473072926055123814523040248820392859807957321305795990849765060873627542552854172926124438565907500615592890176218133588786971961493150898091878187396623950444538918834555333813624284413886139090782628075035032557781743044285459887767276184499789781090492970477227362865754510788215774741081986975065932384944981863142726424182250984460788026499523556436418572953264694351688271746594740336941482610613508238839985874588485707385176279747139739789782692092944411095516618791920457272899793791977578065341908287987079742339018501221151959934119869771059526766729123648004974155837519386250193997136057633523266176417632765317932282994943271137436524197517554386056476311977271317999867312101211572803195867006413373858887327836010217352793504112763562512796679559422565707861235572285905444667185168747446122301658292967343412024755414273473914634298758655888039807009171122089666735996012556933263690701731446286208708921448957369122374684732007282874071344535191358727469207312873255981403716697213145778571561256039159310222399364096884815141846694831825695960650717417840835626624281009120221497959424133281545825715461769637536705029184260658149861862020481052544129638190359194347220462786431028252164091713063514377008429187756871470185329388442457131816258122655751905325123026926543379134782722490140072257793783195767053889457492546582447532983460408330751327348807645457942419133961766782532039775825774918735751268088872659779161477829050812754382636908994411199792625323982547815880922914057036466045453696551153110424489562979822024932945839193317998015078176330810097663146210394067988129210429211545916452331770390631452639103005362317139181529922822647555014290722848921716179550998635386759900442260995150088457740210166352072291501398627099550005654896014285047303665557223389237056597036308030061854597819319831092118794459960259053952340102374434118923599154144103864225741703443356373400586139665192663160833129565932754410276257305380167865860384225839343685411937170069147835956331980230625978483859877945043507376302092009475236391881309219576430483857975747649427735447607167470451265043701934273346932988163438530488007062069740233214988709782962294664238131026177637864737337631392487501333348001016846109437426301153011815997154936991597535942910859966926584693081134349341695807850364026721340968737946644017330674349361981416793387687630558616578418192842988051013705201679502457097696812174047651873193698957552006814832079687595804322223705234074437505094622578253597625831640417951155722321619788205536228957011074846948285937412398827621756115303448372913892552985983943216114701925851473110902749986638969678721016081743912160769917177783799589636976854234621486682268147353632325750808692008924264836750899736261804390537794213633598992441231261192548727708740831816228154327255322088317624452493161027816736933130930676080287969239727229388401943221625585056957095374692842823978477085241479095309272310853732880397690635662055258597701236411831479151355540519377872196433967038945886693569689092972360520703610152595945025004899056025211354933989676868035254488693455864780956984066033897548985285987669103105703589569284121130195391143742903366114371632963579911227314594336834360734810513852791729793260873730746743878256898385811456563912436783651565133305470677612913981078362344326773292023241108683503736717442303480016061852748244334911868936015458945733186148041142592704052783233993311905915805965154308087583467513758308845814289601796291679748101233812532281176373893747538111450506082390930185014450909138009289910894808992802986476395506732771970917458804253726971343399245173622030691763403509219010501325375808534804371268863719556709572921061472500653964795612175922353392451211693461368895034874034953577507204410464361167223623670598391738188984475957752280901366206735384927641666622497216955399057849600222192470596635190133997193375506947975716924882807277358843390417758714366729092217769146312831734844344535838132316921148897182496330968578447533057988470884825587131589545216383895633729353854335637632678973757381711464555984429132018063885962880633405088334488005819091103339791725068655692858007133565358293447730269591257623943948458357475968191172687591546875087243464614799158961978993510578281749645314011741279493452588673041252129634594665520783917501712941146502413371395363822359698694833960435632693928948444015886242133423321723932114800531059618939477996392716780242239318020873206879134080960681502988561495357148798599814153405981426815266157302642487183265064803314579080048683728542635540077672446554720488622848790720991499144084509689601323711025725132549772117717090949327255525330701394636116149378898506571062353368628397529418835995480185034444164301644058769162952724342654134432242575134418198873310823060854769887049300654868632032474599314053654687427910460168938153100635714147056150908071129609257042150940582340851939293186890267163862311081996044149399854255836094912718872226235891862423269889702360649752107489227325708167646401826885756925753442959168196357326846299679594948524976687844995518096498213595969376159129766084262910798650769890040494601780185138338775776826405103308908601137654901882754182018980459189931867455782858854212249771552094777224148004415348523114776524710431207224436546490522289776076425581386869615943916084769867215073755210414145407070024231306247158456306343931754549102111315372769424976824971944801916681360420374015188652324040972647776632282180531649411040399378968501644781432002090779757392245233662633005854034713389943020019905304145076326786635809673071168820336381811229957418794737108354586277443603880638961817562626791968025200612998282121987390679311303344806401068856087144535151373346116797451316177146053629270972801385042540277023564575578183393279623135408854669027495145610749874379235012318565245266617532709971199824695537524010635196149001003889869924440751649173074276382691301079478842236946108984659569589193414764976921335637019494379296830672513093329614022914608529622216723131934380039636389372871720743067982542107087975915541271639810613263792691561478981375138171828607372367162109147583390245243031585853520924925909352406702024329918899805010562733814596466311917890604782098296531992050004935714407549112214220874351444679204261556032723827218812329143945893159284143079617295497360335732451670405089588408267845527402564516716234779288037031324463029915523673391238854664919589522908540510707200875236225489776460119184052743972836435665627769949460004632154184047005819394739765680974269958573819899955181251772781471890644320145385154565999549908039755817707582414742641486426272806032126789912439099636893826856481443616839900268065047951239494422010788056665624694361121694902195550293898717248113377909280921115559018067957102974069426003826797892404315924755906328144358327470308225833273555882680373731788012511266833322333753114286180673472234607258043550568645143372803146860645329007269785373426477553119146597624124911168056026350998662056218057537504814744991150663922323274352983198370514313002142321084086334392385036726291491832330934805490076411926890417484879283920782042701947279614817023653262918420552248801175334415180477279271204527692253521073869810994460738371902404861837328689325770875206979567908497538799366075591318983201126722177924846166055498023179283966140114915868107142410929701801846610434801678027606755411626247597491775625053877267942995572930028200913129573326237082825362268591602998694331919761586944115911872880327600942774037416473326447287635917687163325992713622877993285331899583319896145481144896760674470096102842757300977263428514441646960191594506804881868090546507724943861634929581640671864229806830560362233618715086360937782603302526821424271882616326975073877338674834052682165366540202129821923841353494957863343767764503986571003527561569536355374777648945482260940232308449779360068839093620982161180233980528815042297928933869532000437144132269849404774196588386143216406476870711483085953211402495131770307780534436644360967701924588871475200925945676932287950314775922823223462300644724877053409103558572703127263299513637094405867837410978704322381365907034188808415498163954278102460307708592323176015906652400721876436153030779058286549955460571391061023676011966060065990443364149763973932164309956339754482897904471267779112823446146918674316387094008156906350135653213183061956390194077915633660810885799883719867925093206373848272718263941442521422166096506289712687587559761961901644329242896688035001382067627202132064751709318176712030218005789773559870659831870831470883517704387900146561904946843817226705457492380796032283134084996741304885439187832136848074750776520473304885671236342291874849770359427539925962441177080485586601280529528122204734571621735457704067226005714151559293043216989058617966821471329929179115048065275252318365738033531197685459588272320086095366179741553601810446926175219845969044530926803335958173654414807668682512635758977895927758156415236176176550565220598242462159906617769231689089626236216328460238347611681819325804243782229815131327810271116941373341291060018765716369537332196061424666510131593576938376219250326002113279366466939206524974489415446615872531934590834501070491409156120296517123648180446578434288308746330820861423459571025406721815060687338609225234659474383221737425294747884424119854844883612203361873809017647899149937299489004060477377818000602868110117577606960633380177952517473464206275016549657401781950458901834224502539608743416907860712728195718487205874789724496594888797513342355412775653820669873127906060391831548991517743509406439839042998298004196624129105065214906254409408137924723270343957454315923465084369557073232058546514682088137612463711288313647724014846727994822358988980702912008209808412661342537952700797818593544495577417352598239046889102595552733910530737751567981530769215248312819296132394391589691340168086469747309726892296757594430217888136934333920877869409995806556396111435343750727040614964577625707399955660176715686704556500799286457204292595631016120823973297609929899110043344343007372816359220132231605721381762364544212552135623253479998169274852769940268418296310558536944927388257323756833625976559305268485134065077841160999569383023264419260154481804515453671887651307389412118133487144285871328782569811462858258295485293553663337860684955299618281539138201196022461013953265285796941502891386738014299776105413787101821801290929289057569263417796622347430220827591506628189856236503890621376869346205079104456467860722796609718371779185467477437488168101463946783311643379591990973022460038533134671787076646741651137989633136408774224359538144778489013105063306591548909095164008303037518631046634437873358813323976215788615253707737614408032234486820001558317128799880214080750483051656889361896477525670823956002128473168461279840306553170775646494385592401546097251936846307574142282848528469820477424503233519457396015360393617704867455469173690283984706287224516398044471778719060500186591980292354432540999303902560307164836717935523829514189450779795738218237310480005621854214500127868390603943409058691076401613539744714744901145838252850652532416738710352571691517300654050764575449720578211303186994268536530198581525171879738349824595808848153680933718865574108635538961895338571172767305361088757202964988088668396242784146644713497402045414367261590253957590036575319864032821219109565861019690784882980602574772796000820744223535090146821145128655795181444306431551773612810070324168380353123700379170906069694269812747540446075268316466527769790379632060764680659448984212383628972944968859850125567495912037442727715940505076330000911344743294288916759984141360049246070826133302312938498295951901137915769499705501392715142163658160422480827955585703860540030705922140882445897304701266325958231421338393352364970240894070784662228383415638772502619915049410874189653205132537530376991949014175030430572514157820038208088629725309837675943415654040941016602198382883653316877781129210087565491626901859474392955992235313952455920392514876181449892939192351506084596399058135938971523816877294378600745789968352015773734933076922940883925287696331821870256174260614046470897858479105145530048004063941412519380991115762719537496828847725049693389736501796874440168996852507272330154558663437908131107122029171423599462492399210141176471748297629740446263971413893480483879393253520749926273730084722376237453143975248469768087202326688308434026439129297609446299540050186596179014766860645004206769008588167090384333393598589608982274616400864205304784094799016405265396535064797717010199330455824345212760733771005244381210389902060669644354430578592836405935856721543961433199672808125735718560473522002531970285678060829373640331411679832155009572149290984374046830825034565900976599955548482378686629911749376542646549759885714283015982391304977294504487267458492670998713415781977347789293147046518367862795866416163028546909824608191338624418938868641619487814526631790165812034928005880738224060927045906674678560295282230294875088734433475217117496647389604224057295325913982834242366282796953458044862582006940821298917735538558485199551099287141990312687311298837316562377827940575575093596905937380042383798602212325708293463238337614703100988618018792810916983618363455867267067793021853374703585463069318643769920116609065627214374354710072111576120856399939727269427597900187156583180452043073794986248279118082369001852618653315670376958824066315093216903830763996487982664479885882645143016912169900421977495473369817384712168258576437397587533899895059275965892674145175675472786403341095807102596992462422497251469495619153173225019069314115952849268697208129756080818443116363135482308962175562716081144837647232153387970743227539620765124686603831020865294753335685111756052375752488575645680360168499305387434843363444127360286970925974734479932845070556849084636147039402704295934684148116133211275247632674471215504210859073165722141185508517110050529645441374932203846300865554874684079793432268641478138572893684596586514281386408781719154603041073419072310317155545291517928822082460359431626435329952138058334015412944781464338413290273703818850182292905572783920311710075865849179178408191002522619919942291390433883031196579958892658088206400104997315771319318293231681766088283836481780654599107608631685408823200815606969598158345800622602576937433542762468854610017953414521810890334438571834764495989544312016704731425649078097911032391347672662532843858057124432452189382647417959042494101191834270583564167368003353975087675612532741675044291619955882828212753161302610894326801869790370643239493955345774468662866150171698743466262601044978791223286844611087081628825362115158651995538129434699103610976104431276542676375492065403735041726706357681646445763649291746356293428250926933123409182817796851578396418151674139460768880345075121051279716587882793919104160285423465867285877644402726116461429619059939977374538881929283135012771383855784767137960492960588438854872397583070541548606587758347519887022563051594735120546531115062873707704610763983451301350531070829921965332730641809556858670322826500697732556850509001163756538796773562718169052209059136149532543257017479104199940832333915214021629283129610821152270317810945353989829141648586241527883419205961290937383187496735451396378968360032001132488497818858613596766951084656310502467909533289813152187509711713762027959336259340285421273052132017635978482003307398903706212491252984266946395850551123646766404728666199988964037160614416065184094055649201415840139213674622289312140214848601457572235543989289566902918458676057371658547887084716920051349869823005336254084239394613184145555024749342618330768194406806444748185459566340366781091205371775286153943276612281657250978605061686060489229649064157641433490617561761602124594495149984159665094726652565865627271185589937777536248414933807599038400030622820227484874908785433168747649801845857787143202106804236609268166739745294891744819395144353035679692788513662826890391877784461119081128013984261836169209495106191815030843159367803180822843411166264561390007243210082523131085720954639088238657898519013083344765609934122217405038325406602210661917691841294249715932478585022920351329828588459812200676157530580092110171131041974396306786060626112674070900298270389738634558234808476374548930728769290942976620191536729461179788372297604702542606485768264768097190698827932893426441482250408184347306529152749989682986538126204455946377943736985360152117270593749434527101155209735301512969906283271264073125959594002748361711215916224955031446250040088762556572664633213380371270498918446122119123868726096028708383203010595256857172192143962555250491556987485729099841447478746236387295161065102744808131822746397259625978924765059262424674266392245498166707404077520354515791262949220301662951979425468014179944162705977679088808325969672763773008872795978430641817281685683075437658589151680287278388956906816199707769948790017494874201047685924621856787017572259655719601624315261573220203237735432310727046081995967922276833682602261248502142028210691594432676198576835831501416577475020240107478440114890008589161619382398443551467475268038008164606757175903613773135883743991406942420807347810078774843217459490298748602733259668822988861034205419512185896098673313209181192077366617429604900077974656842224107880370733895897257795251522065892201870565923509645132582154414411353425258087182881087338026431782269229888745663025488198920987401761116198252552591446470460911528519840273072618132786532268184803379151695888431556253030627436647815340094248930164084893683953668917062369143721765147125813082495148751636421831220723740547736830588847060716957484557833287926119958002208283898995086280711515441799409609609998900316445098483082981435172609332834887284350211887796820814281319463191297920410870327659844204388969957677941804878426058311908794131835141979273278993127903079779980362041263912270678287034550174368976876202578732761973208119974185377922558704416720020745715532906353726246088225388235967697844948686855374599377491818846556080275154909992707107739049257773346936667834696529056564060035472508594957933591808967089459848811183504322550936491706192685943364365597593059008730913085193982654790428451404618975878704864412970578861204685230192078278165776368286384931867629304065434212097695457679064317917533607708632859270120043404851062999376365166530587463199061078959050793617238435420138469751271121429625411017723692445913925046971954286354853581802112671469735415376866179148313614951994465926585937064537038161387554152724551111161786870437798490946807507704604070210013497765071926948121115931672266537393978568769501649536394930824797877823175857343423537111296881469807908765834551124526031008892013239721442034593275059578240281276875414777099845971468314831441362389358895701003385039715968801580081298075336320789041439406579462207596132826750923516626095866762347372055818633922582886421603347625299865501982586862296026965368216869162886231166337923259594404477272228174884379174331375066928184491314778416630365927055513016675821311332791761146563509167773489024069568426798432087459674982386775094042072780945681709808400478319551065510426635408109255852184884414990330095447664096764145673770482075329826499329993147081855668362237809482322867039133537706013368916189963352672198124425883836580673785370478117118598549534315545793437153895438510963795180657346811791171974412209697956788907275418281871813303297374527534659956505102096557927285063408792660225535807001741930169886804217756863413517476212766983866670896203905837390260859450377363984296521881184460167934668759125245219466104131398546179713427055042115867120881161892372266121563906147809686811320131864708504509807478012576531324813005970607466376371084302804761378325705292705944976336160514972373041833785879661962664166782562525033645176886272227213735282840848923187363355356607232342503146107915582683131476270750578957079705721830620296699987928612580409211883843974221501724223101399311797738886724726339915041557047514910834229580342375829771507876629521154411372299583106773098757009002757512188238845144593703451357971237608888987928890464124918613452331950067302376900650028500626494965824808161941726869779126605051016844073535429810208153660703569850907932584841173103302176316555027541809607988481512515583235234900951574503104060294816934179051763326004077089726803230994861132848952489829030381413489771303050659273680859160080740988037255101139013233621429436817290157600312601628216265456137475918002972274389782847124281281786915116011852013668805098924129208293085719538124230226459999483306807554776952434595260585259160927118653753292432131313414919006266383589284738181683509216366193277857967329334798129967688668143823750710406385421991436397959389173263251628178744944305188087275406101604669274928757828255187939488367272738263861475202307859612923736886618411652072707266070020621775250026614440950645858323912337205810663174270035757912229335998964649948722498573806270023329015698166365352275030366831705390759952918700548871159834453608091216912739160820252433678438349734500273051216737751798721640863102798070930814440634944005136925521064254061765826252333762979741594686537811152966403756962903090293792022337018985688216985932170496724689104154593209037264915577377950671885402232108170429637378380777631519321664322862832807348608356116991556253034817976931976489848779482964376103012857431105816615042434674647754376999228342447180342827003118558488338741064010273099598357491453781817940519254221889830351641232644468089549031760684697942342647847271986540571233656715461983693276689119108987245059878835209364538939049849499556058168843825673398107934341800821427977324950821012553430642441722385127592537507453684801616773441064558704383875994571701617802247538458397983907301269863306124635739303839050930465735008375595669592310871574516323816812341973328710889957858344021926972733492649613382767161279454515876505788649299270913571821032334078174415447118010207818496165457032154170306378833896329374378592147465742306887946862644502447092883903580543928403137994426353673192128060676769635441680644625700937418996235711116775678361979102999927234144871232364705462957678447087425079486161196213206184417499610869308655346590531205907855228487624490611768250236957782026885457287266400340735691249755289680042636708887954188003030863060932258238223965650559222936086498441521847743164526079537713037372792355152738570523267215960326048886825679712174508101775495666225325163763687899444216386674383949389135707112841169201619539467169253498680243694884947803318945518840394840636272306154445976409121669818942998849553199409417046785603025942458056581290574129953282769385410500242236413341019176695905435217743922451259655667394163135503283676442796070352710061293915633728033701251299042153145770590226695258031849440732295415356765415437308360662684988360527274875911421445956480556744378727207041488029543701441893145725512339671446384724400207871607440776560902551606697757689407107644427894428404698583661708595793407073402885966267751438868561595798756523787538702326419526027835758305082319133562279308236036182842481110788170993499013307195430541835675126291035459695179023432489678186030453902043697138258903460670145536751076699382181595161949893931087230854624285886156159276939867063707469880698494436371688378280288967378781961202333779096380302409761657703836259941547139768109663479531704042614611481033235888388630783673169099894862191657531186701150145201099865150264805420576178307411744757589872842881854966065171769548940580036336985140263576073395787450997741344619342527013343333659363389895138625846113253506515138457775350625800782576990120360111523216802218729092923022609614789029067333611271788029676749228546322804456238722945885789344441525602336038646265574056378671792907471659769839079373004249448096742600797353449346173259118397828133482252539350390949779179588135422732220430079343587806221018738203944941641809894534717027919421438463129503413504589152149882731258642248057275277509628425623612511229659445340819107615285741361319796672242657702474295502658007903693941834142837160501699963002403422225751920833743473017037699179725949721204357020729569929152929516858397254960949778123337858468274065968181744085568671567663840729922964814199768953400019051358733808696596010848475285225060216257759943638489627745868328733802312472057808968680661700723455630788598533919787247569534537009111846117998398387733946569922732126665614391637042819460261075241970552010257561932523068533855925568600406809181133928953098440891784510256040287850068465323641558869095616073468994513845790863282897641816672101261736444280814181873568246445237668585964244183011665141073519248871506222491446202075470850675250678750719636114375102854769878416626037129015045204091209489150482259364229891526904693930319554505209871906289170005501347945516489767972768335002662026311283828035754353465888979922279683397203118731530533344723065012614800092668464342037878320341971788277464355327356289620633934128769808520258948729636334906360472697920459030858668088657221968475929886833946937846450007596224260440673410494039757605847099740981077465491692189247291680109090145484645661850656912613692564252160376853093396756291538072628429934005772450225700778176408220524297755579070866155889129868833461314044510312927661649443718108923632334045782511448042959551664714471577503896699592808743681829779373910614598385265217992347683548031225709653298595895568950625670920351269066846144513058909802741901201621676254363076491445092247512627382903610088220775575189116191391034886660083701400571622319745880172895122688872749864611374935274139252373967842893936921844011414840195829095346438439314877018015202504605027627237998092405472367548956083028222229278014192084539328231893307015777433930525742927034038538410226952264527897158337217534381974063168151372211000970844787907986350024510241104840188978482918581245393528847890393166959979790236291645671660723993401054593611636428813294141295369532099266198104594523613627793943253675127251302629925021214175140677508207640380551444461476957506866906458833338986381182486844474989137313836363823817915952138366235714838305270348978311722612117957747364474406151234430871157382904132167317079543900202020837835341902726940920547464374347331983353326925977568518813781074535050349880196195110449947686596779250463578903541109684982330572186216110692190270001959288492958155957668966106562644884459878253898948549518174244824242310618395610091329349390310845942777561356934300587239489867235319708230387201110287183828172838088092986220090047884030968497358087841332783587232716089161644082930367321115768231439039248134471775598998181286621682337325075814098422307298047150931110111970604293500271814280890440449331106026345761104024492961807358920281611937907262418572059189075185986632455200099938052523849505763136918687679126502212883861009623172730232520947508928697715682296434926618154042971004444762574476552130002032036486014286357148713078851139292063206267442216958184447094077890820847497742308687510519509582650418195288395605581714109436232055302780878709936782039516445157378844475279340278285336877533810854954318789098727203386742254785236758096659311056475693785585405053213628845964510578996984255757475700832470956887797154279114298550272412142489093872780817995664014040825915827635029957555495613541797822807202768456444738656257151886463124857520391076412736334011138946688290831410377932767356528385118716347126644392995132546347661277411449745815146980811945250606035834433801769830395168187868506676280675074111389088442280518930993179655565154681083744832220395311500555017204216238989342230106158092319874373342425075621011889703290953628626927359822624876523140790948058236784687231602042838737902824858259304036592235790192153775919345857355016211863849334460154798392178999462544232236291557152385136813464209018980214845625280467952942791095130550681335988980958968674607689608931577129561498344325220939496020607828004864523053708856169607648177292362576343424991754890580236719685788977604056221808346321373979590417048998859452929022044855224301476848826169398051735933801016763188238575492409866569787313501637064960430828370755816380306551904938677621263191238026382629787377689269825556540281320611803773727051147443015322238628364127357188395861990412171404659942342306859216435788546973675671900439474021690084462985377220878456948828078868904419602178220456417774738278313110206665706537790229184282315457129389018889559811975272192693909152284965438848021710520587686166832693527464252588926204514037260630675268101283283358771628506037934345473190586362963517452515608052218597750499191451126092104871467048214078510093618953426367008173861218441088869591387371601582860499324866918489176654181531819733814711451388375700194623790779799183378138359181384781982715131000123198930316502215637612443954620034432605820538078399099664815644925587941916191619503811911295129907224640257070918674791303775500298231239884825174672052466250294748302789345969848381634956384700956915676288105731256731436754255838911049620489093337750819128373826696538303304287430877168537792442829204363927934853995598955835776548431626855846908194888076565810886934846471928537788334878466691098663539937680863412120871808125650230357065409798245562246964208721579514859008964193309842696898850519689368005645439672726224638638937225370447863868431082805907040483866380804286437791466795877742798890762807650412979912038660202342932235508944833570924472382866323212809852130303208117166073921470796151128015787140480886746439959573416861981964166201058787331952105668540491975828899008064482314844710289045064372123146113525309060019414821654242194760321718360886895785934820455464716424979025228775651548984976810471943349276094271379164804553485771010440442583807358626077697564993428805673459323759338631843899601535222643955058923962172627796418294320504833199705995957502264948034021664073860841278857596319539197915665545880440673806993587905868900292657137712292753155849689282364146208894871892134217839638517054386644865114085447926623994984865007689322035939451930131940321897098169571914848427017184525287331609270616673322808915769599203674277437294202569237499227326320267610835320565985834318622689145892940137001821406636489083012380012985579178251916211940861579421920240076337097116077096948179934162819724040577851771300352824253897347869376817282865675530041397226883219582470131511924797240381277666410014775975515740444595922202671534909425795555545021012995255099222425185006645487750119167465479993842682635035653153601003719707806609226747123238791845293533454930737911070560870409171408889328680351359124715781188994499474248349669275563141545638218987781717782579149247758245810664387425683920505624900556967612268524011108587310346473791492774779975364826097446477956745129717934703440327401562373120021560451927548323105161745759933053667772522466628067473638889560225112264231653054055727208190896946924033572715841392991000932789361345880559712064643823620725411561353229096498150139942787885332073369545075696519377941351627871593666128648990916760018234308936559161074820674785389296879357090534443851229086369453636164416663246277373913546235755272463413773779699835116418771117293332878849139223694748361260434338662545514066697874098311959413784922723997826052639539553888321519073936405126352891197860421277463287864527053290016877752724746815815370794968209938172358890226809407508669379832613263301123759150214078541940236602922772729533906471110661427868088478165022495571362153325547236000317664757401796243452499229171298785307132170566810453559731010022358764673994999282887327752760257883003194406930503085128830360961469028496456297185969506545186651152514944471691602846053503736836831102013390522017095451232142223943705187017361928226274356086253118642045014118617215658146224463462082263736848369282837973384851105198945571186769437862180674521407204656759646493046276414652687959807161473404324253994229288531771740014250604476407320503732551338333038821918546524882608712108032973213139293276014563435574381248955060738034192296293184658962148741646525448754223256838793142856889552428295024008790585039980327289164961883298886656624989228648986121596363312015916028572942617175336638687775015354657128944410513936265181085880358515930450133272294445876839712207470832118534098126687902710220082845452789846771293047145164274698149713524164311291598098706302982543106047494313609502795916862474146438002377011342602981501365542606630975169451401437285411754136341427295861044609599832523271557925388815107086002095163501805442571831444968117982398164011883582099258637651118464722710955141179858638648436287566614745088341781616368339312907461888643212764417403432237468243498098817052824873181620410699048413991314271349038626770789861240100462490270334733507340206271759591302978097122904377787327545600133645382401101542798961152468352855894099631871254524055946742702310337535990536063789456006149857556224136124732094966441550741978614995137771616079923750379163312187587620345882986197169701161953147158591965530735254705623182844502859403263070828568912061781634233381940010147596247534402607008722146821498555077674559995307538051328270411838079858951146624108027052603448463332077665519319135528072628712717955044517858685610292351127640196172063320731643895280471413387847410359998943738490165097493591844835873183827410951529713702407665778355338295799708445234100386686828707741151768834156077060285292967503470364222610673236995040061630558356401354347189058820268544984350904659453209493911347104709823185765847300954671057590299469579032527600610937354523359286471979227075845683142401530157377252475570044799299874755176370997674041338215047296002133481398899682813298873128530947361769458618006449565142103108173248412840859780855017459023826427580746477922993307787701585798906557564951826092343525968078055365054921195762707190484306026649509399137645564724739580380877127250149666414874018786799333903122003814698701811915068624257975121067461318639749178842053108846188758927014664314431528886964177036188073311481806568565122108869781337956325741755031455595801626959428248252277265127852113722673706269170978832987934696078651952684936315023974818306548905146293488180664984320318906343008492421957136576007129294355479889819111908989567937655611423462681069792019269219058821147736119305337709262440398464843050196237065817666251796215724932466334450236735548085024280202029632408428118642786049349839633121775406545819037009583171314168518877818910339247000584989112395243037015891808493378789126791862678681294363578574883068787322272430699662168388674972349318225361971438681859847961051102713478841052823002143699521195514690335750465501598231238856762502004071091575172871701407217037895067847532100267977931478349666097258162198762984936627011549403385526534248271065362378076760520789828753977616100702199800303180540990790886676249508679740664899416367814294292261021217921651094518298242537315429393231018043387711861251306981187686802103032846386702124273455754720672750319897550466703349542328652241810966887636250456870014718088020510551945084668945468321684456194763784712947569376825577034168407627743127035233711500638519065140678949097294018314445107477112495593421898171438390089342485053902435088669426239827536419604939541306361051349421252588088179254694682412575080228005876968298496481808695617953456544943845185394387786915335775891968755111014741718190258611412457500361112461798247054252718191430059948920228763179882340644512188384404324951815423109123175823458616952700492436236884600537734160368011427229992500911699577049396089938167096186860276667976823387478834618072945264906228383387071831728771663789369183214434413307175645919474547182121806700048650527740510109397288459324718053081034798933728375477099639575001441690643443177831585245318454872077277667015448013721838251209092298384138195540525789564341857586714468516726126643278451512837152489263282783326812287056280709314477250818313708530402735600893897117790062205294855637826345898403987001904363867999011916272077652774908051956223745865410131873272767806903281901925338891143135718318575804913286319712870618828942803647180018889521426686840858201106864438125852902037414742934653140298182135153323079081599004646774085033742579512255778653347757796758342343018781275460774436467126834565507787944837328041381588035245238838511358346145838819016556261457937393824156463914659505310771675933362981895944771907406955690949975518107892086194798550153034370511551833051200609532151792396019032818750426976205968871663814069023189520142831027940207180043551037821917140680724617914987951412462167182924442930413583037429049618193437034198189299673346739168632538777644494868346156600592882202156220400343159746982143204408263647845402154286514231025194863120118714052785730728667714462431793074742575309573298494683003707080255577297826947837562297850802836050644127371348460971323916763516746137015207471818427802711646686377417648907261244354181226220034457835249531927464800075431900057952179506583819298559543975896465845251730934219972935770812971418872187790370067987960299857333888059993255779308891765662758077058752768345768965388995060563482551658781293085093925276366203007960682436789375621778077652329000309396213480050530407683278650830465474761833598576127212659967484247955495765218305375401312993712264255132373063779375936485458777141164076901962748536198236775542346133235589604241282155273916764072433819594648842820258808181685911631305473771279476894945841644209842473102345493210386923296884878332968574860541983467004092428769232920045293419343208712507181607114557329776077581041869040689162497538374746704450675245972570336430716841586527705979025323545769508828055173183332524694943588593354227732170812616805247210477239294657047851981849666554289559505809308597987611047486653081458904486857911290911020868016772537673155953212710229184879849606495080861044567729321353179373573971951294964271270216363440744338265812858862519307572893369318390471952657894384362740062036941572653778983568818131090517652891141906547901609214693272174080705567402877544370326211032910417395471664141480003081431651735394706899844354938304148627128555560690896052620416077174702851151896234794968585277310122408196822046159873720286946485263995178259196605430372470358322676060902441181829743079034133899776551819922389572863420746599621472487797710764363604037461752806594155068668721150837330500136930735138865980628168616830802095756521816501409959582566743597595362398825066884154084356188638236281924059194689637632959498719795663924500804428744294192947079791534239575526131074437562022236055999436836970745258460328012242800104834356783092811390901180932984229028413516364365689319337440447996542290154238655173758232279631204024170213772362505830269154221039209147335344932100564604896747333579292047348977275963242922421558226913520772370731705591145233228235565967715329729357981367367606696739424581855225984592806223217992340028201951184988790347434058348918591970823847054463812368903872711649614308653678418170226522686506802396762884191843528760690835812510082890070739169356243363411930429059912669159498248489060638530599744236760971522862215485238268295535022779815604525425555831920486397761794402662117369232689983988458662440850795912778588438246862210833559369598783684057480543675247640721460668594189077654661922631934349527262317824501351684284994114014068399158455790378949841266956676025758170531779439569890660294341527239417321863614346438781064775442357635181091290036551659036994954236692012759988200911556715094082965617000201671842612853014864097102842370058867872538710176613582753665771433809503938774955840973977994661879481611677993762792641602119266982398382055577628574698910048962947709357846859647937889999154533935029259368561605266166829372640958022621845233531699745603238719262102349409411948764841599137658445975035878953156268627999243586930095921530555879501805711398770010239570207324560497531250369921869101822256114136372231336623387596563548663689883697212811406655118257389195579713348051625373302807832975660762968447031821144162663765366313285713365063663911172880610295690915328233427820421674522909392388586288503275024862325266017222528873068957575797216957493801846428542967649473080944838833914976920980908302167166945546424672092526504276108012867103807076911334589909385225299943679622672659052096786934461275405426571254864322106250188877805691335453524970037030114493994601289810280431556753760533061280242976075020668523206850302598254246321755483245599455395786668752264823013183852202748523553983719444376561258854185848278463506593628214438442547452173450970302522697642082735441942393177528269874096452886048540164428349032148332277911771894961625990622181154920426328897014987526588612322785008160635357050616094920380127438279053474966234366971051036205263237340980498468105496998718151716322623338358156385128483025991831281864766284409862748977919815277243659955974168053878088568835196286850502323784487631322434314815713052303229432841018069502766378576563201056583140794151049847151199175782398114874201854287772536584727230786223800043730712486085151977157989979727340254334806151274848641664052917791970077735757327165116364084112464848102367345138937012735813362100359204441668702149019020094291644670615412176256436893007267917112472221158961102478257809864983808135832574123808370575391544353998940986626226278587195232193876923959524451208638286913679138815996160555943604269620937332301339618520008163205890772237366692779252490369174554426106644597695961179302617074360708699825289229729714984097070132895387304048884690551181867108618266681553000874296106366235429729412523300557092809823294986084621244931883922272771523890578344565553369312773118213748619258493658293406234688726584596332281808826774036348555451677498986226033057731206359467665679552134568820408180660929935424482871161348399699180626104516255258568355209583680804160744296336377561375310524551872505915902836713654483696515563290244247706193034808146311099251367857491151122191214134012568773981172598752440374717012720122242392535075277463847852767645571289692092806164061914152772693452102991913058932278527356632733356362217486983983357524679504661418869761556509307271059155242919565109196824878994255623850927840130233032274250426659964727551385497512647788571352292076042416699008466455079375480090210656069826421910488845400916301570658650628731293790241393453644738511733768603245044503171946329504862289884845060197610445732222349798888035284581415358220523085981809457402496428637216932285069731523356931837003600329420779302166655747546536103816149223866088585187198315861818807654361561935975360849844358027660946813099582314943956869809696124104419979685449837385905132191863214168097051815020866373598229322750560251084904999633585765668379995224632213762551324341557005774621698464314329066598633587183575501461668285986378515618846567104614356613253799446004964196482051356161422130166076738708712129935011535376327018985070278673254403175167104190387715765990186925782359691802613506769563645196253575926342332519454352373767469080592340807806599792075481116808159366248968131313683378617691856752817927220130939226505117688564200747528100926913160234103004520097814634023216032065851659332509638687915321493653254127952582944958547459874612949393134516572875226761495854065415935140177450730829441944278789253178730447142635662349987614316186242751209751538965245451402777614206649019570080594966858321901630648514334623471835790591505919950664241115265134626233871423951383373463029947537006378614803040763704628040891105651982788128131572783371120250099276509303530733169432904206835814962180079172624696879456911268116701249242573546497801109587294807279914885737658991816478815826616138964758928721626479343542407023527134865642205427460284978748178562578047910556013692698648192112517046382110310393985455367325941861047329678245342713531495860193566604800939737057637902709221453564275500269053030794279852406331438673982716288257024590672218625268155936126703906677486213091520675212279801594996876471244129667237876435550926287265824853490524495566272653047854570059974835416575287657689848549481814299632686323513736312929265327786300584627204764563299818079901843017498460965492380960771725554124556958575893056784790043535967733761948900007525554625305742284079003284579954389340544294812620963069839071719080628724166866413819377472717137885526189707329874421995017341406521191176191438222618001475936861457454350347073235768210688895758298615739677203972563545194760840797100850878580025664908935826869301851157611567500549170052011877671334106834289425703230252019919248727425904019599181807282875845011076375444570875920087740514110034262852493647266346040779394014387614828940187659616072895047435061900201195598864031037808933560509484169433703064526134949457541193698266520322246570338954741678308611103312804693430558697353463828952642588436854539100254588530884488012947010476880301192672604385994731042790006869494955693854423914453798462462076014899380748424090428044122643057060891697362410555343159298453301813240005040411095225269437259863043936309288585283974644512006290805238379118281863937805375336676196464760206870954931024786650429779187964081344630410913695473468992483681393216258643480719339749260421551189198493692741638567182721263753025972521269350643830138810627673488476329200784425401369461434513356062825816174668325748875647962031258938385052002480689276405352939299135264033501532592813879382327603596916609862577906294647892577366352123916118379055975453277936392857838348372393412005878357920314268244857584894718108837300515391564800147630399793143661486422767197506772435739705629263112952553753185084442896778136567967906255038428251042299627919136116321792169554724155694569184592110878266101833936471964825551703920904214833954286019106110323394556530294766788664289774675249031263976939308164254810282511909894259984019495918816368647077743121736460659054369569249879490009292354355971001858457050261875791707414042015040445702379008287528245643439639908271189251499300384330401233346190816202925681793569531413238701476694868281317287376827374005541403512939057401508683778710853148303004037684393373592179079657499736984191200781928031829214496949596503681662952355277569590218888494384550622391103570311544069561126909381648420897449251132621852334841413463107961977915511752547649817332854314263837285007391550275661985489676284360611005804468906225339354475603549051827913714435726973285569273527223195779969724827948389144095559850963802654826817175729528271526801373377744868754607776778026310482115531819327416136478787090063692878769466954418349566044413010198990119914010712200876232584904740772908069211648280620473566155864735677148747623312871401236623769060433827916673222616735487981330922082814699629393209293906573777121655893739025569780250656351887793700319632075774062366093181484786134315648982471527439678509172618299110110196620206441894078778806094283380584417869974315099843009677097095996074891067351450382599865907047892072251567336064747944169171396876137280132177236474789100311069394185362509916799945651876393895916626583461083267202594395564183074067105353079637480210924040928941726613391720271930599655936073698880908701984671213278926182770763657155283180403405299105948485700199965047342267796842519123544674954407988216218122326273995474781065422435865393310310298313642540941532239367700567061216783238936700008781273752402326772579386968917916925763281692603375192027053093171188108595085232784441053470338218296720160569375291966512206368229526161950130214177432637713324495826835178427326231051628713307384307153022352313291077331932303889617033280706558531466788855739153725969230090325277454066444685069324154286795314777049224178782178922801686531964599675535072949457109005221929947174130899968137349138613769085386820895883868818714386109053259214088546813982052831864260634240322525354188470537330607862782656780632495745487468647431231223057173173135220784936433827866999926938061965050259136461404308304205837797463347715249786736599938526559270771649145264622961033311193195876513624493001451855399660907510095949797796233097590163987899890444952234202939541158483054404293966230152507400429550832884758514230985851558625148893282580168571929903252880309800002941910597841956825529333247192612390992877042840770061706568879317612988605548828327129313041703359928534465172759562328504873903324226015688587441263692968138872912417257754222647288177460383611234325665842790938730850472398502309294990916345116978804664347581586981027317421587150740893375917134484975599488272358085056655070435280570965493763284086300317589851823113880917316523225477392529556286385198467098481067612137200090678284389857788491877006542425129568852291961444372902661321679952479292104946075317087300363283188792646797314031183462328806612900158010795003538372210411153733954485013604361522843691671586805966229292062498751187763216059633954764714642346954585298261487244630028049499098363000330165603248521670808860301261114602236393543043439972584809422817891838939382505181241964893917328292776811357407623659454494742535345295150826639199621446987271185624270207601583727387432956333329616238647518065284892835060588710536925680143227485723539462419720060840940694437830687211267471138488812311947810675682740153109143512109537087562226460565303656915934592312683369230539751927959272885076162823250553970387949600358560381247131745690815899189083285296868653177422304786471198456965415050274291734078870348837565594915079174753756728085616137895243930336838419402852269918860492464372546210984652834399131190219115010794965772880195169687630028561851745400964354632393001652689032578976296495987655782621467556808258983501089201359843696351894665891181240732894245437303746936933732550990742237282127117513536041045743347042827406429090914400665136507428248798582017332875676915873395869466636695270847728171721760627094878554717322233165661184690582954998064830994649509552806856091236975085780302289896081138280983758189183599351491881716874240147730134309242183741569034759382209653468350420298597178647140684430781533417826286437988309093800522093526093541052014843316627824572364661406917346099031834563753303184248777547633856268803877655538901408969038931767516382362657440626344406694495978554308059702677853072051302477285083737103700147900978205551470642125864681216769542510845256996086425402833172276692708864340530679867970110613879698655021478873734933709845933960602016702779943791418645492623301274164743710940900717687820383113316922146911327631718967225216306477248482151380420227729121384304115675706401943907606174435239239130696408073072321972166104099693451538466662164769071832274727611230400454350925873416229168561262264756707349469620746984148121291520690004821637875779520138386325963616886330837785333608674329280648094980404400816700258264643934163314964566945633000947663070528663059799826982841432131238680874639792664548651026372184999184580174197730135023017432067634713553075266591006107793957895903818058220273057163383736944992552616689485074198320158925166869443768659570493602134977648406650874534690142604876496902757689497778686337838440675421965799286123945209995086993106196014545665078055207225255721822870539667050016062728398386886062128489550383137324755081103334263226383142817948137456945259932490142579686222623111856378583796198657603636848367389231654174990578619908811222780258058024121065304206579935871319135287245745029587569490528621119169519044783757193865812804162858218392023485007835600490181484917345546321054527887516277935226605096561221087572105981316336750591057018961674813626741721845341373413154402457435757416595376834472972311772723645447567030565153268024131432638509634179497922980514148749558137717800438477288332272314423007741825014928025736383032824536935898244044523124923869614626139174989565951365898377797668809184136367497251315333768708161658844785555698930664725579835272150204472332242333121910356665243150485401975398845309842942984818553528588773012709908099653779528951271471937736521827307838245180822394792261713682378557845250465950006246123098906779871081879078509449845939395989277653475845145052357416346591373115117132678625239535902040673610500560469472686364152653163912211525013712808946086958206897584475507718843094474375352325828158626771989068099108386022309492811214018439098412495794766939341439736739491156516417756014779240388739578731162299301507653583030246321577468122907725238459503090894733703473239766311038824219498074785859390319506525049893779264996616837193065429327973635882644058615496662769219763355285532185044333555971297429011093952799044680976053963723689876893145066166713863611637121316169899160660403876549195554682963692825810124867231484466037310668657221140291280899185571860837387062933027331910571743967940149716528893439789345449955052581831862117024855784784419083458377454226426940925801151173207944528180915951617093792859681817036866755571180182877014875354254197795398261925296824220448302897167318633555666132223480265137098244731137120333398470832691151452972189184697739509188028590515851266586176944516819734099115045364596078156208355007651869040677941404742936060479114144974788988208532345947746896332897734277837255510864655796905848819703400810347299238801217894839173554660823585387247785275323551045203507869139220507385153640140830946949870868408104824202048481130839634726309053397081453620847390237012094169829399770111964119589994259732402704597781415565167491082050099543661285111680657073866891491262211940039804989779320777960923215269615908591755885598143471037276738149342296680710584636133055914689128979749317608372973242810655798680338221372792897929128408603495251966935656873921630135964737095125148142247668397321122139462803704319436918324034713256355812519926233217816963182047590339085084983872427996360403092453884329068195074288308719489909390935036225875162538509877908359718075978502948113461814062487797176953709046798739502496761480461575016513422911259046222938958299603813585026235422553474489429779173325753686804557402823649869952672306832885003263337860809122933997008842000515539263877478402538192349077788278831693759211952946512738100853693547845512742081993704746661651529875864718070840392784007682248733844866338213051234225784546912642715170200005821055398382651370111429744331071906866734271619588767932263129198167117568906832089998144545863277755475169469992986090196081250599507819691089409563666713166337911374167527248605216986858936720945520088201923768434527064931727545525983877190122159843287413432030895487115280853522491902556977896016225983461166239452538416866533025162843961475590606199364921356923773962360922460796116332016276992012767998927193141512674934109311566271531966100693340951769594547986672329021924934887633953369859551295799860940230182505009256465680390343812414531816155661120764558457625902844219530716042424917839504673957509500996413745669087669355941987057444841154137186662122331665740739766546670643350233581015879345412034853823922826209643271021051123306203049601775925130232862861134608144097395002684461110320495231429172578621032790647284936741957531669797975414601051235695114638577834477978571119368177858234550380379100392440005122432761439229855621890793769880566715754066441304903101160287638031245414807897135942466540116974222796958149390143913819181733191272512236542685908727558890691402201450000719895210587857638002946667245304471229878847811568694755749213454486565823482269592721561205496631801039018506553096386636180181753143034285449890909217474083951078976258648475264079635300496590762199001582445783129260039914799213957446488333704825809874472775664736026459473545662498789293622575732393247287739045468602613347922683588905794366376478011628451499427266186026691780509202104655739884373333144657180345610534058286718857256324699614524658510858279854793358507606851462843485528344382999732653914253833756219280953784558556383405153039168174593562385587367256877183863878040184747756412445418953347399453379439108470072392804885131097042436711205157959223348996765855574925986942829679384307294880144681545420105703362361565961914320192404522603348117170591788738920071831054860800469201432806995396414069182677067531098492272170765019155851173904733771235953273034883245092471949087388338885280975496261755325187594952555276640997799263518083652726662948853842914727974580955886951514187215032571363456503949430411197567463510560652859313273910886968417196435627779380157683292555659942040133820236842722667902038245581953035226309496852324049580242151013294100211575050757801638751546652979177570019140413836543091046619792280504366971305716058017505838980332124162258292544972419627305637297468892874174628528484924411179520853855306569897365059828324461599484561718106531803340697592098143173586042038787208582837127347088397052044239846775797183247961129094304640589559729966316194328603287318280141683051023697943244818197285337791328873519376509530742625053670558303102089139334996270724921981896054536664735021321505929207959766191590382745881857222871548003239827690225550553838124346353308514179622226334831732380041556252814809022287584465673386978499061809485799580758697562455397370260909997308404813328822413730125524884325004811160764294761997888902957811457525843117988761711955857232771046939250314561103306485027983606623600209614358857844446165899175607755587470677949611759703372858358189049478160614551520893501204678695569064640094574250447963693834765849220573072231026507952707807033056365326644281962106383939779122351394527487530713723854090400576716255717512270075297656080057991205119328028190539553672340179450156585080249706576792592836883052037698268225315002798560058578627326497356523448665081001260897458626526124651109434480608189802487654061494413665425614477989412130892072564740370681877447924589593475748166794391366846482553973557821100901368634285025874952835624095952102593392422085470975567250489365471583696468198895261672207776506443872015719282961734733328871892702950169669907735361310063421372579346583139796412033550780238737677502700341464145822954533678852731373282890032174102051785210517144468716176015448878019126410460330378513824291805499526468346813344646193455367805283411544396766799465244206606006225773970601313730725471294400969626411104225062449928355773753741385631942224977134513492428015237329591046018165621164591520094337261128804013038932900651551864920814926939594142391628145873882392651666918618779165050890340120401084339327418386641474888227412231072770848760918005906722026577718320916965088342196335935172178502834383576632805288019620961550201952151071681070397342916371745586661014100854066723201767905011678916086181498386860500176484569903500785016360746144268949116567352929819626431352256879796399663481301604387016538272611479925351757109056532539146279083898286673523025528526865675086630992587465785616359768320809596316560184499852763445816710903009753860176625803694877385550510813163952964569186278505374568990176092077117478353082792944196778538402626801831259043802452231783135025682034887318162922697140489350599656702306129311446550050128887059523656953955771162994013551392283572754971322255706067937406986754775845180669615114881197580979997929271927844944025409472857657480711402783775938289283710309786051055814818949405444467800794947889986835484442578388039790756235378861907202889759421999468984440307878223337450523103455984184133025847412690154810278145692757306849416386435849019994232933780076948661212523064746636712934762670174403626739110464138563993338699638668119215309641842086127376371374484200263576549000508846626642581069341762747346979943855336430032945935095512647240779883408876692971348899687157543769461950019721315057442000896607321737304526075532984116819664541683755651975982942280693934050202028641462140553776754997171048884166216725222918846964552722230793816685475859058156677953547284458250334215360973365324889662170103932691076669649817900193897593245948725576495695650020667752429608144813210539344227138527712883768509666322926801692105421535805911661529475073304941582609571000112126664459546095330205627009586403418424875112869473555026732616135601383814858865830539159960976891640352524136405897611785943843829575190989938529164842695727617054189067407238235413997283281595540866992466621310656710171304016582795004682279264281789193588121894038440729022281112709273072690797152622068743351082031214737568367724344206137428299331366120307362112946902781404669477899449413898834269149176541164943122639411672770943935470271710626125859703233753818077898877646814388439587613652948615172822851293451221315159995049044633629229962804039635073551439044719288005120866574423060026198985444563632000213061891947579764188283895676599898833376446161851447098892774329299291788490754405819256090377188064608687645873659264807812903699437407461475610266126438167288823111019009855820658211403517767668496212391679909443121286702261494757296583793738023127067505105192518123338469826145867263446946694024261373267841138755480095119787931018667632764086120968173702902626229696459527742533153465156547227548219350099561255222781115947732738531385826136805996758581576404548228308162561672066338923898596508488073582910643830921393518759059536401337196980727501687441480879909868939798116765261059711121296783285892666425188555147496432242332669499720402553341495475289276435310248385545277832253031304959123771914506615391925723607143959305351935009104744536044003124254353183304701500372140014600705477922378256552864703725955110078811340066244932090975731713580755866546196185243493276377482104422227044515500472134085025141777780557403007371618382078052722154999247220670478869579474694579200432490959766488208852384611733938749729806306687776933987519978517268709863633867538519777284942162467185104309321755626952172140247582760900820308573639746685423692099993642501919853822004888491243741528308749208179716962852965963876676135499704318347614174261484042915357037350221443836347105817422120511585487094317438660287940138282366620649300787459899882084653601410861169884116162345525246405584551724241874749289872532611127623601078507845891440889749601619536511870781885185922623347971406222375488494533031060893784300995070281092160469219605175284582663539698541577580038915857612806196317757566875840692794288295290817160108612356821447129439711837503902846571148564666753225741303421763925157911203562728940649625561687820877997214755186674140225432620558393640747381741681105433675124275391252567635802222124208178497630323289400428080128205084970384784996680763313945722755558509913285378680915134742776948501978204867815606799869993734709567129045539102520363566005061026916610926613166308030202163838607560817673273942898030321361071814031628310975814660894946655438413255432566454728657326824103572219369480440315988916303526584109304652839158799852072231364339888274250117727605163097218565789907935632950120313743345571389584086892355541715874178252353870552022323790600194435537475083421786539309133427245259087171237710000019846968577203758972467939867633265545901367673745978226074155403714644540514291429979804211899171808650715773595393990088763670158819051557572411945864144615591848140231780310408013085984060673644439064026582515148616844231674998754885147519022204017909905005694720384350084999749383887059006017819241082062578210509169264820106225578620147766045530245551219206003451585151981626432700364946027721741376931359186323393140735995822432163487437988566072785237053027065816383119273564514075261868600886758580261572914034908966049596522252477466519170098611817441208299955038563857427194900291540791634833076191171152503216496120612265765934359379821661900913940097266387816852352159263129672042637858925849964914013805641052487674376858902013184754397844456842224637263589547203528604264309853321818755793230545954116597410937100055507873619712155000585465241130630857864809831062511931397436619912755942464682016690397438424107848793622015535004248231070366313194812167765353174463822200264727071380183399587331652374272063658254337125399078417848651823275695860067287783807278912152113059605490233758871330886235989761368522086660940565951472116223262089617183271279967458414003621104048345324889683199365430741536659905037834001706951763477937993758199651061417920750159814854310533239861808176954910675246294334569745628348130492754362254943240223983982306051019240288305839606369566488099004346112204052889838792998537896402335754565611894150730988807432092205989642113124785723844099013367804228861265638031632493827840671719091959359133731792116298187412032633247115514819997570249131544945735360624232504120060503498088769673890249490022233420142547450049345861192168922819452485330465244142159913702080731532378104398784185919360815054003338961255459239461009271410362977460690075097875996970644075469099211705129315735721218204738809689127324808436731222305413822625591883790491647334760794523010683278798744354939632851865419327779089029358854572205763396517178706375434382538042382385484992954308425988364163379182181671433925734811620458846637531750226313182752669672099312049255901816864968626738907495216448208225044560765710898459527861846753697635463890688805200574263993215481372391713687653037465188230948114186369589430111910777299143629209199471547718963184364163523463202116354383512575198528013540276930157375723499862211328070516429895456757265129461273816884241465446614674809874322734990859219576371329839592856714595962042392997741210060797463483509036458276555149144853331604028445387523834409097402090429627144252290759396704415604977658099179963017016777491902622416663289263045093210651741889271918797367684242650185923225472484069010021800709847197462940578311970414200395290367758175154233124955102455725601399578411580725125813941943391287623174915073026107401921853645967571486065057800102340016338712985243783912087455331799764290014771435345538211277561830638721492156962955644859933187384118849332268525275168681092816851510812488414375255834506492686836633126113994181867530575674574138056404815944208581980156171363024866999095581094352730453771888303642955759513958299488917841572913444668057998086345260465343969739412392932337742559606096695610822360345136580126255419128548008831392724323331916498671660292518509008806138253500898807465296616207351372490680123163256255562546753871682141496778257040079991324751351621956484471550149056245349607747106523363278661275268003390389055468044913216899384094992195968676261033118829654215633437255091613482556376040243683989371193032546595580522720412624116993713297175984334294665824503032855642631089248292944264507120506818795278451184152488787660880639216119695258508131911610478745525210193837982634805986664169186323146908702033876795832163735890237693251413817705448453284298739620689307263958717193385574254923492391844865113286600889123297380860827192727685998647990999551793742566067464713749796842244753348957740990230772273970321854411981853503425723384764834419458285607167714514392541698728823012522819690553898016202405569842118481674991338283228223998346957719346444599881856228875531394481187741178412824711934241116064510052685843289316908048775497475993195477337106630445342203746166891285590809622994796742004852204463769978526004837842535571856727060352505328267361219251789989625970718434876673203240702234431119672206443432368993451738425259255618991221189028376761282589532381555740084230124414823754408987931857167875909692307177375317722897440436333547104522263819246623390144369101833721770029978856879560581406540677958531314039538030387999319002678093131503458183248156728584091015016167008264840423545355770437807155072099108412280280730725696959890347215258416304214183118019017301564227706633708522242731368558591359406640186820845588510685702941833763909285381263022337285129645333169115492517515971530520721804551930028654444968298890380418564094229546529907840348275216993310951898540014444151138083111710857803147780340841266521522078359111690550777694009125951338859091185821312566101479963140107894068173423598608878480593112014773170088220219792951018764460356194047432256627104338103985802950709768312378947771055599593676406990145243021844911865141533865107206941954148390415558599723346310269194363596900090504073815491737787523475785264408344483183725464539898711211657517189762612299416460348748501912290485892783276293548681494802082378941535688629219652399341653807486288969596547968033335258463935489319301711368581779399372309006364189239947277404728764033673667546589069451565425980451614656930415329612559036450942260698898683601933255129965860116203393716622912868420305742561882669801881624865852138406200551846175941966222266433165275680149056373149506076968450232132840194185440685076909626834036044203692038633131095876904595370896329223624936988546831381884263375556505511326307374140240409252122135107357631959758397433257481755661719331525758714930716862234909038655846612780428670395061911788287326084723379494057131437335363940686505319259187551789234097443969038515030679020068221405874907613023484173969302278501203576607056343469031271898540879865344533044875320283367764076207947620104236030829181560027541718136523260781595350834061011784621784107159373307787242523427148965315155508582768888967706833412017337970631625398791326715250340254668088747167499244607040619215526633029953244374464897028891076869489724864841865485081928164236337901471277818671885720908156197297155233459483097907994843817189098042331910485990005228464587053882739302510652152172859395202179434860250677500560431220510838178716803945029690291461502465485599708366593272905380934488908556502459690479950049087604184278842810136523353197977728372330969495062804973948643924101404332546398674507710877377840509074218869333384505922927036980097032649729554534597042949541513677631041190724016256099402532372386393494601485527180329695705984611235204991651597237993759994657496316294701697981759632351874979276696397693124849355017010116260239553512754660905978194626621230127985854993567248833740155125309796249782221956365939471770116611740997320136094853604892746282618198355342126419691648501596345375341010602473345094938878579996154247013603873554487132080573620200229692661560954117455370467947776629537431557436085706488130757491933148987445239518434324737669802472620826262197606271743392316335636149983043003264224223277167941047797042539911472656727760165994077762692105329499611379710262524849147899652096092202161142733559059341480568231058469165283559651412378152506364584659908765898742727989223730575262098024571225172328722687894408783722725168691732513301642705087147511867648679561502817389627032320404853883758912717005121455553664327900783572057779542276348559442445926356398080798754992114352889391728679110748675874679487711356425108684284290076399030418423372349155692339335108357416682666607974752311790048513232218784112864049361176031232884208665957507067075728048402049452245090994687690944064601033657529348610615541811992936968480896093412726810410984980549106823351823321326279235791006535303806535067132485000496175340306868736900196424254139500258768971504038132095316786858084711766087613629910771459547422620055123180482602361769044470849502350018865209814975351030937952296464638904384797456560615050493533392643544378400380319561019020597057021387765275570256668110468129164020035320972266489342424086453297924500727109362090352661211636520195353184660564488322277616882992041552853292819822701249502340906028578073350731000658867458364712226766807007503794605914129554255766283919438544549218331000552825024498265255874938403219981189687296227294755805672337281483226853115602056437215832419835311356384202963402887740603409118702147456246831795119549774564893699112484975058178342832274232380465274188857939408901066021732671976218756641729136199227859029736652285452651750389048889121857713469448827303459542599197664262216691166302119605416622506267500338350166859567284866754643632725570200227821293389554879693561482833197447699315782528223300146819506671336783527132280266610372185970102833107848344729123551744910430012530112508507111196978159472017541201804927400116912028805616578384013162898954036878809452855595089219517905088303680915492606643807211978927500654652612424374146747675343398620655068050549585323594428846260529398693304169106557800617215394007267474316332818441835261754537162270425137196574543216639488930445565199972835591023126958387185983755449934306442821790800003248272817261814592071772028314560501392854460898190517293735011881460166896342102958336225637289406255478230890684119187785189148488609031854632119010378308308488616886844174380105523432087256622911840896000520769290074740529239602518895925263638398086191051018022057549577220445291717596493786924311345112345308888208800458266352812575015948418282112325797130016844553264896070461571357006387667453898146614329875198617902898501186668522216564066847035417724364080066325752419848809910533788482318828019413228984979693339612741127610551533021242274180368658281651112764238427444360579914260720340528227293718050550120664371513963901494857341077058061035069303132312117980658918877024592792615291740226732705516515314004689025330569367689801480682541941369643318262727387346293541261574321067806699101249797422539977976323542207794804550130722360277806345795911391238926119550753172145511092415685401419512041574158412006039502516612094485655851232222223732101478318140080449238711566469327665515680306636992454748605860094948683570164107481826914648285278285788751874618974630527171757464606632186339867225707019243855536728114980852702787436141154631742708373419997079618941956631950262666696821465328404792802872635077405048620999524202511119677315409343732397687411845438016936248135983056196354223505851600960079385663138142586477550883547693644123145384777707982215690267150588336887534065420457196788899680295151606791623812725656763776342733151657150685476505160391401968700289292615387517929019692481120741210138316077226910117237492899136266481001456000912983605898077065029025568564331354115467524215370226587243457974492526197257608616363301582274893980658926316550704024099693375049502650894493490008651447713242353157367320079762499943680085391626372968022420800520403342197169980804788532617390324359004982534026242341478371505570068248883533465554541216253304180479514056082171646055242381895184171016793427349007083064846806120965673882281658573782023948666056303401033114901121833491286301635336654554134255079163029586471820963806668165661891324726553353075960232879329927120703322088615214339239044663380362339483679832960698885106408735723983066809659403594437108437001544922631264258230269048903275430755441123647695431799772653023872397697880319168685113334147444806407807582774607152435029964432880633969389899775254626679811448771651899148962830021507333756528178437838542160184403136936880992833163454701392784346516692887385525270252219814820152619871418530387830209620103423148398408767101942699843500446110104925594448864691301304081065072234566019197394460269088134434980451295954478909466806801492498288189223376077237086500072015898248344848460720662335513811402599386033112859376607993052972777291653038750444632745100265889549017283370012652842345317712597918467521511568860608594451288626216873295920423678532262772055244812777074537049303253423970171860680568504744628829138778436340398118948080817491158747509597377248219561598977796082702513237377412671610354833977304679810067597796337430042224863688332240735510169983964757940030278541217978971742434289200868886071176155563832172006778817692694121600185597844490752918657323159521593519304553799455381127520907519268722696515610711925145126339499105799279211612959507389476844801545084492942041942347383186244048647558579900113032474225332822543924320925033716750673684196660613142907722697446697500354246798379501255328102499988943807888948716515366088949020062084959059677136033853519324320136955619910289661318487887526884984862001029875683073401751778289970154341770420945693927797889395060451248974818730582815403013830163576279671801455551586734109130441944862638917294908367559004136998642747780698394019542413368669501387380256697425566345527520490302806359613231523853771178929512171538764718320390905174569000923885391937588595810781870300129172705594951860635546088513340924968470488210481858350483103510387449556433363051643464201377706336080765724851038153503992584923117614551565481353814137464249602794942940011748394611059858901973111305709920843596013359252697818888865077591015499295281886103711447518152971480679204582255454705767440505712304077949904055891480696943630335462001361632349852743338442667367462679664048645798263116986958557320100530700751619768148925937314037804673615108537471309892013446711365913662610786918275060748174485559621871799749353811324100958232498511871384031255428079736603430192034271554693937913645504433064240238967421161350920405924254715342339892544409414243510197580618226901439281370569044495336663959532749862674828481714354795135364675166366322983754827179238344333321996999027698018068097792270808333681256305866688760073377665581654841968527409763175078058346810128506438464647910130486490459731647964328659041523984795917855456653395354372499619509718664122959163980541950993915572595633810462703174512515484236776706580341271081192538826117920091384545972261376264069948168024153583221675965431593575225127391733948507141790595853868698789636382029949155404297502556017411533460698961642496173130231968255505188142572926643895636533625229159845011615407665648844702635656758719420807368365546901704195625539196427795157748433125675922144254615532136611330927862556665458469501414367463866198803570004512476671839388917541811029486711674131185092265686811690193361376267776752731480648443997884923094537309295463231411991455628615215110326218490719542076767787954620156908181246109219735337813350051086049783143433040423077869579282526967606553062366682834646318406133249249232857301997925300694786397318248048503880978579977442002779334699046625149399876719882954368207701887969519206960897823611830124812474009457406574243551381734135259266015239874815313057113350522377833976722910625859310640813347949820690221400930798666113566095771933451764945573656014532996178607774637387008081808241197150936196234056391933287443749355917882723039015693696602518337041553968242747978104950200295509182084463321857197617623756946447874281003439607520720724170050234965284617098796548026742750169441450617010338041831177532288785872025690582106459303489582904523919774032932959910575725812912146557002986250986205210982177652309256958771616719784099207478181187039164744754781377586522180511967412416404347879256645836985808291236123955439680555052138389676779966984402500780341976975785682254450243058841688805189123409943463460717423918645616348940055494021883898288271713400830227541633351592233303471907831183646870289804198819142002322614116342297764967563573691938746284271954683418461640851635406032058676449246035271157554702760138879900860853205645891417378867419390609732436952138243962168692329642283571770292039399734734832146822962251735854976344195561761160540259516167372249141484562130806213638115441163728892372399645002624809834915598483019121614729437710060976723789298127321169751327597179723356671568612677982441168705331232883478154972219395970728078904092142218327729960818884361301877590745623282081159128024701512848128738761081443286738831336125248201322501936807415631827057186799643997059806289758870838802758052512679946726720466471117684265986805370476236238753738648118851543117678918421370510443109487057829071745775325671974644980956424567654832809573863896998392602060652546559751527618089027360400272817576567842232740852141586252620406285769771254306472985432827573667508821552495221066149986945769774860098074990826054262116198968448817366257709999155444394623625055948017735962381740507691011845354404689897856032190287075906988706656882188380957370368420492639417703498203350945941341597659326598712798717946903857427002730489188371190319175277108049255538384980724782573371245643604406676352833401942935647928249890200350283857698205300601007037974878372087428034472287462613032975317938390509988867977320112012813088328465862358037004152126036965642492257299890345204984516664517824463717542916776893016653186586824254606673503964920918671587225164307003352669567519967765808110626571217895228402495166970393777498446161060946871648784387268912404784054900396391374291386754553561792726628157312930031744419395428417397021621475725019486276630557894107566526881939025565675237148724714353454985343631117425360446288520444400373740016177592785151300852959507657220822659287329251918571063881007879794927512753757583657503730481907839034620495908633933775219945707655952218361084686940573276372054154941200871433706153032874481993091600444721755711953693937248065596740057456676320057621497578364908389114395196850065756791041293789387327594298711408387162688011447806296661292216840372784054384496822225991072613705956745363677673839492069106737387245809395959469525825915812192380038444205461943256775850069148844610737076971254101348357419034598817628989392842702236045103291196672646726073566210932144762473277589345413640470369406393273796479190173265469882127575106336843857438725659158548644275056507692055747275621849302315334494040157348806715074856124539859358910753518406137620086861792152993096460308367494588407847859882888827211035840110267219451444831299668511262541696739548961608010027847929094728105104630439140708494131078363252589321748765410687703758355888013460992926855658706144710569352279514679290860676756190814249608323440811523941658000824414227342955242847232384891413994340610727668424557353495264407398042745427837821760698867440889986494359258527893508106732798211695769990207197116153020800440605675657024413161861690419326798204162368030778897684616697599543653623694609377544354410985667278706666499122053645280095231477148250966656526659305662883761983615309237847798949714784446869801143815319180871486846489339848107362321231066229360563375174679084327571880540909805349210024642131696572498170855020121086902871489162762248791380256508701651183416401102371030614984453587530698465403691343252911909380414040343316052007275598114862720106318505540222213037156315026018917813799645644236219770636915665737425893258933867502212284922821244508501622277276158521643651476219501463791428325290254959676188983939703550060094221096234933572551775658596537593504329781538832010393431757617163367096878164378605941583593570445528886069039501065775609608811361485463023340885804525627532246568302687930748339595433825956457506888892103599051080052579889013722077252887746953975309264743875827202226226901101554991414527846488092672708314573473020130385314314326219311309267794232082686631592490425977143166069042860915858412380668374794154032372757952108564783882642433519765625699048487304648351455120565137415730929239671249690970138915150676583734031142394118338399883290657427117862014788369079109549556023069690929000292199720549572353994958199426699188188861110839073786521522017577298645949514465408144530953644089041107606107062319647644187487844508392798695444388339138711582525276123185658784664206491138834058218809249071928980239338743024703048801828730684536917693581364688990574750347535539012118863319491503428515748922790078244537209837393612421927035316229121406427037677971200357755886029636327052473382040684607415860103956456385793101597965008946341247214144063660557688601600405089742203014809128339290913603168798480141980908574334601825852977017985024491741625712828616927035674461814550065484113842908748277169773704268078676056630886572967080519920129720282703499823599807690468099772472094906397714238039395456915333171993852603847781200921235834228273854735629785597462128950670410532746741343948256483973533399279661231024155934069530394849358029531573598268959165350953441572733024211568007604681246202215860954145988703639536198736275018867754464543019127013659312579273610862696669289957514144035269793873228952077564662507347402078362250044145907737260527110806966571745103972953759608595335176223665357505013423617792463678886204931629931712182186463372880049719946679141250027502822489805773373440288935951302220342428784383514910840066033129035902856945678759148116884298542701401291554240224855580707862012349774956509099257399772053621543242443611329727428635253337530007467131760140499470060819319252915489490254897990353025157652597282881454537025908124246814527209108266338305648915575581659606116111504997773991188364874470743789994337816790369448710927036837291951351471692824317899314021635837902308261158317538556460278492196797910128769149577932269827375207319217822140359493395590306577870548571887822587596160974777974977413632215164594619172510889129629303823393062050806986175540511528748144593625716206647748803734613766727646879170473847644209787630601112906316451619050130498259957903631829100939560200943052001625982037879360519055094427880987395291793478755408831899723185868897327015315822600917608901238367553444272020934144000890552870224958924383752506109316561927012554298391959845665698983262039960220936690638161340658232500857696332404598710167711733823200790916520888278888465787180897508325705684570988089062008278501410078325917910461592038753816507793952847238772251582606080105940600241671768736754888744501196905935263549118932296211305738273721667642295775375454557237614070797274502035672958467378750079208478519636883252848649389007296561349560272474283196513205049406514847191080943151642106088650692256903208287511055954528593739568802803144212499759912502635416257505608316395022012661175843223159452760906555503255716656230118778692821345915447651782099622753450263188435809523252980330935488729055903022957249302388597340117987012082790566134093328827973571925717923268125743424364118431138915554927036628511256766571898974777297936649945815326862875832003220871956463952871644119836633215541675884667372987033334673191575924810243699445009802015070717135623090215665113266215909162145147487957515462271155202503276231895373989429505935369850790768849301207555930488205496655361302006163897087759316043090843900109161074703139828502758909135193296190519135215189963016922720605596989965342181291923475336121068705268347345173305465442756840453816766332447358345324475759360085680294142282284704392327030334645961875618297271631102150053391974553927133527042981829432503005824378707034681633887381749365101339872173309725152294736031399981889197482753379158080670678380361756822794169186998721686997502501261264096625094111880054570467364906367554448251703279608451959962399936345903970695180662723178671655940264975490549200615444102486464247637501841631819532689411992800300388574797675915644787493300108612683277153439070509339504587163356371853093066612074039054468713541380585871043248367929826084612979384928253663509757940593342140767422892269594023835832070221143054312501663046138220414763161521149031051257676045097492240043601563101446543060401781279154248807860643730142763480174320719846489708368265254694067827383575896402247931436806204636120288216069381449172298449534322792567721380785894944611758600132898611929632326752883666751766084690908398367437540104299808746998867356706429891953222944666555408822849693854862154413971850575904688285294731392944510830195490478967293940337201067242600952643933266712425417955338665531571609304730215450446551719639757230411040095928151521055529894252235008038658394595189869354635875315714658987241422161386530430646761983975182176974028498631443412069643460347622649369333946860928285564663912681938721443398853204607376836415295875157135457860199264299707923390983822365997142833777869281341382674693195789976898842529127711251805824869056268036632159097414447697117063803597020263426985623366348998147008987201974945282541091512759108249716164610598299967966224616948429689885313709739033253735616160374605872752211959425706191564344929374115177575743596062562814192198881150571385969873682765620940378484136898886925175923183535352276457500090209599074815979166400847532672570495465447867348928880606932897571136527583010850922584945795012265986100948068158631105946627238472672998278688422141868556000790308107276240530635639132136011193522214261030107662691159423933485293717493150235364346041820702677598723539011191006070698041572764324001354227105117198316453424325838402479472127557380572407206265885750846627228184736791238902523951389130537187919889757842347095991401271809652585349426188718341361759227393619685499093407675941013133921848722600544057552293822073343462175657452908962388271693304270340315494107779655202049299956983912554310953366063765685807729619937536785585952429123546971590433509134025998882655151071727800637125085643054224974954436226726542210928475081401068672193219331108162146724549931534448584501282724566065491639502216170686821306216291229259605561975272000628054391928414124954116820650179842923287006327442722913789839096009856044090814631661683810397327834292595324567965994951293935030400327406407939888854772268188634860841618511466050180136058691473681961953518741476444067676633946405669308192694247385236146021896259578913840858144438111085407927791704807930902929022202163834192991402343343282752765418119892499124518264460997698234632754868793503354748413555503264976170205266814503294342609441814912055176697949709958536677449969997283923022500455321801407741650088189657771104209708033509190150410902376230342946625811721145764541545030267598884623077706224349093083127700525538213329198245888874250361421362370434370323053155076486154039441747863428533562303363965311206546810797949155884658363733523029915002742128806885548066204674556601127564643311846083590480666126336881873569662405486383729366307262857122452986568140902363029464540582484702208767901955442336689461985951060706217290887854230807981136769931628354705959902772350692205000278291446463009629406701319678048402286500066859515366378335702050909355333540605099447434010289541182005953810820273211695628456750798139182614899419414183772278808802609202109758846700104251618524466027431419988688018913575898073767192378063936532936837718748101353467154874178078287273500253798392827379161824956861315770931126522509370729408135361571267266613463031937705192814622567615425342935484748773890481281679433386167331857940563640624184880897205116433336699030099743420668446770769602078832535839229584965418720036928416678924276575056721310521900321696304916083256652520813368844204433368513587330893102408928828061062187933858128979389342939664412662432005740530573668853157090509899337146928589484563457868501605546623249225074606388095937185353073888434360962911329568355956651991814312331484888891981287580702952466524617509669057064427538429065518216022972264003718389973034339911797548971687400304389400010148746898781356561569633355257602301428107519437855858588384622487127014423410370894055266610649360331971765653720192458436514251263781293538119487514518797226185526635048388792010806927195897971319317764032692752231958322290267608519220954478697463790393670766760520642020234005956752980524281805404124049832026476476184329844719766726607979278841058127104114792076998784764443421987856027763366789756213978656662452040463609024705435784762716419022378592056482520977039116413195675473504708725021330607134775237390552869895974281762270390923785834413063566185987609611403772740305731648488458978262214894553662847819635583969198137568650309727696563932908450291390987912167822349277610158780319279953680558797764495516633822332032432283838854131369678560256305071423894373357956669462157120218429249129432367512845606039662101923007102487526205137235414305442973869869564525769924655073322836638322342613123929082853506212595786215338692585371594758356583774004319983760376716126534019026522919694155812033495995111371704360126290169612878717151691064664995067208953837761543972942984459099386468272414653104622472072254072966577004503412195983095334759090375074460037713637985100959450191788774525281970322835100968984399520527407014014658915616073692441440121775335087298303100707412638003858492192294052123919448671730626551244865443787076254394508248901176841699440060197866975468879682499984619993664094328794544134886173493530417657295223474329511413606598976980663751147563798332079674245404115146995656000361799455575212595252345214675030783479328346884139522644555506199669822170676333601450055897214228231352823037307023067935105252295723078996866663875091239128675186005226556082644218202151432302467366558787519064487214195854027457097544111346086443596395549419712926087863977763565575728486095040915497927890849862879819153540462639094546648780224539143057902323178231013497605729827252272242386151392774814778840589701481943688845103338227324237078803754026142316465412544289261629929366970623248653358754404833517322282962974789699718116063351446284576568672979756692221791243573250417976012204019975239906637515723866413481167096342105118244665034590889704597841974339226155694316075389763153115450774935973469821715467707792656126346162042419801929754148596931063607688065913072415530653878733732641067926724952833671703845295675697198741371792838961939790423685195470634949152941567974991208827478524687744706982707136330370685670499550523451904585307627109255664049549949402771644785617261590015893600521689195449129637415900539030567789498965232269115438203117535506231354975544514470008107043544199900942665947670687284496520275089577656781480707530104262866586010904156136212887382103261020226919496790330187555030987738915027513036378009094109884787141609474771807337928107092959216283228361125870984398640154927331297794688692304613514011370469040864520013457617422187258175951964142501371197544043325312894062269385692952801720741654242393075516120093531535492750759523548448284734300255502163113147731310479083478391588367470164478394175226072395835085812203171681409896575440509736181055665529919588878041085435302643807546321276569438574892697566323303476031295036842852810604512291641092298069558718877929000901998031899464017466818351743560982130925277184085937443572228882343957260219545887714529771318060550076574114049257109345622647508132065210030426130024024433257020414788083968284764713743072552875971960207441910554923692980616472798701162376867061964215731289074947040948616549836537140691102368810599869943109080037266005343843486904111197962499294563569154807955732258433479460638623658479935094158897390617418748593291246281330024886806177721036009783909726292496895248435363655777802698885768533549473106293700683974240907859686088922956680220329834400064110854121922296384317443791400633406590439295997065943297711539489748056680229176440259604851269904614327462528259183218592724232065245767338001858271167909150140784773948758812676943311456994538597512083602303123246382154961190910923794378006981688942570381258134178594082868785874894674970081914254191441205916660468663563008463139572393168647352571061221606359471432876210826032005648558061363610115689153488787273240724712692999485647072464947456587377991675482555224103820448779625491593228306517624740004308212970067912866592753089856910906673771144793042255477360903182906031861032164830859112724076648962347710084902246205125662247330058182938755731918114807081792696906151512379356094447125422880155356064146717928184863303952642351180401812617314454387986856493488858887593861075106230159611526134312500201298424502627810807863429185986620629632408600693408638979958771190556783823692033911474454769135976256574353264565926938281909828288909655968277078676741509884014909251222903148333467883685235161461038802461920417979044206485329770591506720673431910693424990002751506337886399368697506407466713344639326490367342154058059810774878216889347676624237013796992845945752886699197418235310846430689810009498720806307816563322912677255910645728534012994644537102385221048485071013410760465896688961261442735408444764017563068843127685106225172427845446254871277166123583059726321595224370233475075309168217432835276882389037614216986372510426210349922093394040213133851037280497609436755901364503121017136539658440250609001190635767371850117750638550773491301750304880154976693205554470184480891017243887718756691386673892703769301186963146257696740764114135262008979187326426290690287773586100490398130237146534186384491938808751491568382889524571715393466272866447843095958395075277731923773613571071172672025125797810514449398016557556787163787795445790912695082256148318801428574822212544523939933033987978092511662836019100704362529991336500327717568873562890640896191041235989939197970973696000077173008016295961932599390834042941996188283957592728043664075973681003786141307497413145246431737929080223609579434316810150753049350760477704095822559347939828242616425338830923600247792656935369460675278201098837420202033357906304918854384291728063106157118701047828103989794645015085719560134032570642317239108406864204208235895682232365476966772852007038419998465192931990436472460936881125360402574519635800622158278058225551607641437901601299153939534088429508094052354718471224663300383362406311298355426599588496402332480435152197095699801845349012097576838358324986695156026474331043534966535588535198149048847221330010787347347996220067519301881026553897065884260754861454887840524078611132674351077025051086737401812563317020785297393581892735823406635842769846585098399049100386305689959916872118627868745786795757690935516431009440404367748226567518913951897073715436610789756457219449801034699497862572364426965944445803135412713595489941660562210630320436788252683413326160230801924423111092875226282723154956211846293779925043915800901424416512761118424135693664559032955878107470088689434179906199925794441929649009971746212171444677114381042908704915367904526762244507316908662086962347467677434228949160471635775877904575676318284051133538886426789079123165374274543794178268047327240447500698688064312029879582391231597276661964255226288240014017471717162986705849465048271385237152262372676266907618809253063078020661683692403417588772723165587474211838450418694258702675108806442399876919439921263507146484108805585571252997683882153725897838677210535665024450271536687825554124134628731479149221690582551318739198796396008422728433970438739912401703550556991424830210261891702050777739095580907300886458798636599327492265615370259311669164432383058559946075691955357650562885787878836210042078986255243862770796502485419845963131937630305604366508733148468729888504758105982965120249149319010302242913172813804988429490782427545386577392561328417612359125450970369088999385793381263521886828886464408496967013566354663244345335292040451935254932411709382044395616796104347409251462745025681994544141323378742310975538922846405131374545781073089991072018803454075381688409416493806576571439883794611388284249792930178761650397827932033320036544383209338195517665771884216959409948406237883672643795874902451972947671623712629386864579408920436343248546545818956989686886487964459937383489321220574697923779120989430475742784744305006986351851439337559522337563819066329893431033049511093224245687473005306234522956870162037472083312896088081286002792437330473929239389950453857159947872443465947385521887798779425173718971684342295437472705756820822228993678125582544295802935093738784404180169500346424189322808568702418642400821776254940399780833671533799250402908578535121354826651377631597734094350854617919764760110563174362762432570871216091756968705666979937407876863237699838990374351622966426549568851770078410377451841195749241892093725400041200266333359586596471551614299276511694609319384274079516852126421017478683042164142530875169773572473593191794102436268714128149472835599435097490612961810341646187186737498476349529041978469001303092507841031378807418325557075438945035040132368158842162006720159654661308489791448791951250822397756713570186679769372687350268173048778231611295305542396742807566765832352396807449639221370112725923562278821980887347162426597975802550823374098415126268243508176130721291272975829759090675606566144868699224344914953674245050259318190491029561196642441499921093701442209309984908125749342672040552228100964775773679584259527261550832734702858325131672924657908857354522034581797994281071012815276676420344893455912157356835994192779231829013991765414849186096795096537489063937233058781947964244780695741834479821264511246499604590682656768791401281961683306163300072164471962953795642807278245180328444831015760551259075572698838479809831135931910179728567157653362131691026427787096078714924679182954965636610641405500738020013405792722952957458128569548186184079539634215086653638482722321941883790450920745712796853502079632971997357211227419316777201617543132051146559259547804933596882055142997393547115026717375946859568982817785346523839256082598912083817089802778094905921663362661063413827051636014806787999205031328746914823638944019315150797457006648607876873734127639419162604984990944914611913033473717127454227811718551929068581945959490858355731508159871268410505273236445745331003565163104305959470193367306037223013705104736930298210305486669181258129992132743544811563861550877862129281973037683704723234558878898154213291763442164944210467543651996418655730776874200363154019637577937816505434624650547673460125710424816768377645195857155431875885949231786606598995818842361924264276296099297555016119124548176961112745222190470333461714349963358072572169363828686698344800565503511161765422361494948459293839067973964526919140914502986596811523991966661766761328899800251471324767254347957941545750115600491464912037112426028507213077418538509219691358896209708037032156752140693698931769534901346189287178746267160147240142159669349398137814539691864494749513807338315515886461485289310448423773707680274307989565089777816333974875101506383017953706474272740368290423455009553929714166780918521409769604411310340243406437163735662088892657112677059961064752563930190581281101552442101697416520562907369949270541446484915264543550818000852025694438478814386935950862410612579106492076559024599914976453774448177399487240472233994685192974529469313169061746701814298608448148737956976025550262615287715892668061941830244820336546133985246440959598360484324390414091623429638211597572257538325998416689366200862692122897560910869065901068590774336578212240087708275810306385763258606438661376333907596062099306495115853262455644795385915031968246926089753574436429654378018573633877411208276055713600763077895782223011533638122128175047959226098098788388297358865104907875538785303757274336397364271647025844276091130991108390948901097310495422716314998273966524365887462853523856969081333645696021253129652176618153212283122293711409414543065785497960284428374727483405233795904534850720721366240585348236764399108192907728404376082116350654539277317658697234562995569234029151197540731092549512555506635574032342007050484944191075876830903814550559870197625071025094868098703530334278728112609552654691180991436721378746872554439178318777146002343841260727638512079194879890676160756383946795543850284068782477481906083889230475081164517581691747360324692394627191123639012423281152740762344975637771009646174974062847013040780938113290704847222625704170334527989598592890546672047736647378414778824334770499651533046169001238424267257913754804463482040831807827786012936996846493654014025330354779711055161443746643812373917786910251362385647645257713416298335282053730315009947931722914423137239825866985266405604245997364605518853994086731892173731127235320265158619576609022392781023799038819140335524036425922101851463247622390780483705049373341893631233848935675155036982703425725812408345875726016209137266426393398031460066385148622048338000759714007021417097134816386656518141611784471661914597661456723910634915546406169366436679124184715193701886461118479414994119387639379320746921188425901315594869803941322634998772143385742762514267732942928012936767208169430652537657785134881803131485183745071591272276629674415237269656977703061708199156811386632070911335393665654645499720976592702771135459131137297942236069110811460759308503115768232258829763515595561487024178310773581939861843252076166575326619993875705165146646391529424141410966435073004665205802656022821689108106824486526859325704703776558621871982053449425900213435494363903278212167954087365973012824719602531274318493292342608198494555349533362408022844157424809437232863843075147129501999398979977396416794714856477970760494965058626822757292919693728857708736953688943749132210181779006071585147004222701180801764005696379102827889448574589097115898990974760728796487075222551950765098342340381481742883119830877119185551516728210046150167406301431058361729949279403982261417672906565690862103209067513118826335813110524196640219987489004752564917854200132642321722535701076850601485334621425464021315841020524347424220699911098798080458545888998588290626325522425027629196728190910381193573732128435080943062820958850020542198955843326286830734576644800234860671374189613675638615781253490141584005601756451131037844883052894974196560421797246772955646586876500246533780707204759317468597327038842958314030533333110253080669199679121903403930354211040738703740020255264752709512392262783817234104566510809637945375000425437406515574445357181908128744446476943539588640338833263670991096625671295347586770375949720926362098943868697586845375061376404463975865874953085288377601367414800306341179360399470940733963342592380056823805693592505000540411769849662948673954256358870359093522162242399223411395420862705484920845638178358394021227098477296524081466176528548323329153341693237791326126400825329380482797650003096351448541648761917394680626291721607202881103697168375027427588157809274772708444463635181511173142069170516757933460405316378587967266755047701952421357575747276717770424127732822639110248555585311159538811249822128865701277198104665962692488307849559828268307561374314001826968784804151436447595053903019359564398209469317607721941997971491183522990729669901024692046094970074842030469217580550982271789021147311164182297607687576951842737232829599814166711162511475903199317441221880614708305859739924965497712833423771753539426130195083294532331454619906289756466813518184070890936994109915889773871033300519313527072083755901087617108352577642993924330951625211060012354212334507021453458487420048567902201469397766691130226362291560633656741556520107697410519477662886144625997138543022784798821650810544002306070417463028397039622815506120932035793760473977576896489141576855546815508934318866039643936156633653792814301803510741383290725266516372221918514297377757301362818879546286523040740210904703330188674786033547939869895947686167898690978452490784305563658641926946467586552664730442788082608743528374465772298481802660573203720680335285079917874011138477781747366720293787160539378133129924245470875770534927411979193320781391330939260228458841378909974228333019937245181831200708678602619154466681892731547955115842512892637994684820185137006248082171189434769338780412382352000617683758557593988179322154997007300262165740695572984793338665833433564964139561553761091040728468102394700646321500652699577169427118525925595122311600346632885590355941166361543003015108995746066627237976341248743311479383948514939381322776926536663017618505233009661283992102457791363462727836911633106127449929722898505566306349193035099132811939665861149390206815549461571484729557212107496704477966595465246562288928559721623813649766588861917438645580192962480251097990767454964999267843655358385753208757892009998914594988416821588936301834290132848652447623086135631600866194256228698464986299016593279894065329134986491851977193944519479518386469981484476185420310760169455658690978937937374060302684566559707719974083889446832373685771718937644763316382459261994272100317096837794668507981784650259869131110139275040540603512990406774226207698525103913247424705967438701496301378314693112790220654494134601620044176051842121566026291340013585585557717078566534604681991602331690347089203118517870214192002891046449154724724172146415834562927246193954670565535729277899503175859900958704009639263189823075426062128656402738201552454794388180512375398079110785757802341063369187178334939746290566567332239141711300607659922025784239528163921119160097344975335478887694735851235571039887505049756905980589051398525627133357943477081719131596104754906867118865924241190028701507678857656457515436638457832285411360668534626040704607409674840144515570904713224971108862628882903440010343844901725233024706992548294705857240004634232591199148096478684895900385871582900697517750025376973078644675515667201639905956461978805567732044077308681063748288741410586750443237455818771969069061947799171757755616785845264691907300874415065949542556418167182675524839760191315242798418129497823342324922020033735770955335973157499762895032580876268816314537628591743612936759328143883899486792174063279996774986997614757239913607036016054638661756586328676326664470384426038397474023005122382271666239650991960400164599787786857077458293132611321824226690772191401463873794073806897655491387872706382894362015247448973927058681497834281760881395203333105986582955490330864070547224140252717377257353368716990577903170171727774743686063349650908180442053772342937734661999382103219004719795865789602774197787009855714325227270583523939569754971112983824053498687702025320738494646807383281692383098455795819530800251381019109457877956402557182543813210024610617722560477647908582931041409212374147430846040661581201968264831375928747983691709560194720128237172493481247001839158797163542900582439420150201971395205175444306478577797278216118078869581750740876787213394603899796486370520070414934969291367836927754219388663126768438856887729298842750983619873003896993769014788225215101243978339357537965483806631416307477344973238261082581882269804402296693289856414533265368654112100966062819895534774170315004854149905743272582676570929955126549916313773271713650166308881507123419043589826166530985044149698048997615424865013463381004899404585861775657368354738037005246624361803920234015727095664339036425098858197470410231622152066507939786218638465534901078797224673719063378549254020496136666474034268028276820481591155280446892487191338014321488155964251295321428082526824369728887446955641488886193042559495886192763704969191815604935891680962717055099883181238398142229622764899597791735196860089946023149623516553117012477028774956982271840868491081938724871778767073375935264741086136895906580532901357098876908474975343451487751479595697318287638728656633532618898014628813482083344458561428095791253448095709314071387420270948913441495554604284252047533344831665457811596199926996258660175305217274897002838645828750817027257860166574144561932499027489777041936248699678682021269655596352311633326874595774099286333930229136123787131388268820597576428688550906044955447322319505231980155964208155894923769101337760625041373891203887824834467617295885979844037372496787012717727886373047212771856701148962479630958684804518195681606219424001680685186760116996759101827319598375416418510145912644107954458339493794304991819345462948516147865773757280634608013420285827004410743202849622739721567209370467606377854335943049256587290553800659761907126378114799637326415207473478345852747779246415342038947430932634378246757421038924171895776601799751132503248974923082520176802697907901257559226949021166951713298540285798784756208674593735804220209201123439158951476905721782548896099121536842405278989970722257845002623036355425438861773576613984747740235715547432596562779891731637835690266407791791500751993785468839349723920470863249169519442863508254297163334411939890211476660883406358171948353010931041363219073356935660053691742589976330451870198636286965737123952207148831033348927941489368851114461633121588939796977922857627077038208613393993268927560177815328274810247979137260997112013275207951057769136656572962461260755307604882892325404204060140027683163724732078683736801000001526976079285536969834875602481091802020131828675160932729949013114631190282269251650859911896750331854055260697503227539467044465978138527172875870538417914831371402375026190186102514037562499065593905435022460675903724817343829474730757769996298626392860927859524188655045477331926724833876796747948596538652996484276183766470929689814181698857895101413071907310594807134181611949928788932152845075450104343456576420496125280212275459202499126254562448467295651159125426647373447328316042287021328323161176393394092619186615507901660507576765324307432902054918547683332811885764514460001225046856813405498996701702556137225420566958508167652352461187763899994560963531825007577449830936714637161039488734010887536737713141313992812438027665407147097318937127833375112866486232277316753133665958951360726800134738536478372632269498104678488282245689697232478395185625784042329787930792025868032285625740707107392055312486419855061986643538004200784182452473516872454218094069132929801569442663450071028748628428697251203567633438179233160366613215718296367601272174939253193261500237252644028076240047823505821459714521174515696517749668409020467878844830058494220421690101463016723689325206577034267506919314757607384638654311851699576068598732753918665090527965489427951512280658072342347207323240347143980857786276197196388062687546682915546910093172508060802771316801584035419176873754504049805881370527257607460650633869790108485363632429804380575855482034106161345279000271879906412578556776261917361496942063618052225364441294434931794213204476321179384954144012820965556172568019710857602611308319298847403795328492516023858816378464573260222344210646416469850649879475455718876017603287954154133760408939585310789737612282100037341959278114306611084395972214378136687946119207723887849562106757490739041598585517530860542936596929479906720711153081247691380097270046852507082505875296436655689937577760572201261030888008551379854397653040196590795485901777819233147053440091056746931249490571261239995430842887616589679018583416198821490778453428919244247000328002743105265848865117266035976920812993453041823045865781451892721040649933006958869290204510500560335107017062063552769993651571937404850844595770978985657619488151271127592219277387464305693113386652124159557230223490160665083834139481981782472735718288308854004977379948980349294040396187805825673502078464714798305316253950866738332530206805435677976954003500920409518541807924978074983607680535214047944534304512602369712873135574626023445915992054944085511505488706400836386175306425312952070013467809727181770381898794526623429957662613358147853061306463720480172819255426683473324826843071581056837796122051949988668891261671177571205130977302611713963914034037015747684794355226280656525921255762643822309652809336429473636773994386666748081175180034135418215023362578466887531698747964800195412298986259414838584130462528262604592610363835540692950440345598151451656232642950213426588565011825097769924990591131564971981435659601711711142694272357447775926239761206485640546820677868413506370088157911247318584037062386360492104764736077973156149240022367464160896865964206980216422011685684155140465480199659326985034999279123152003601605966852028266840091565227829328007164758459071472792436210650977506046033956063633859951513329082790532370722099595048061967505748022735021280751094396432822310095747498872415078523423107264798483237124004822440545368666437064468201222711510496308580920522857634618758969458115151132628217194168534963868510577919412020601594860233593689167508188560395972975112644960920003387627470561704051642870865559046148436948261838108472925031599872229122852491894415563775101897092616599180725326006087561722344228890689552807530650283492705082508686742469632426010490130299104062159325354365974874984017870304240449227409463331388312194623306684269106474199994813156445228364529241336329673039223780974971492699309607922937095139981812984136999937012722031243406488447332940981866826699479324996063633558034223957460431263898226867452696487037911252283908556431137405596435065681733680812163255781051902677790909236665948942338783514138147168087944626460339163734072148550435483402946478999437284559015060676735341960694764185777552744710956960969188493869931713793276216181681756724452032436049782052776188357205729252351636922547181515219389298571037589769158839851599783871032637156837484919599844555054645456895059814019227792355846477536390527201631771034435531285913854902589797035336672205523417757723720317483232677193127115457109616814096828500073315693770139134695337662654573497835761372365528340397778534190444164051642552547857849526223246602404994562676534454270398810401893449975924358297646802543571001495770767303870339626999663294130524712177124729226555591931370918192056731529928534060807205817883453257251457758129656974908517119778286322455224832629374137031602547427397892110515470570356951694941542971033034866826640712985529761452675322767042261470892400466134923938036776855499568639373859093942091366582232528604715184583987124826901685080901040580438427559113157839973185720083381467528380721071951084372048428547696168321535646467246737723835936820761280959632450470796019079428980842002230617348451618463323834282647828180916911768687685443115754753676253268259171886328276417300827539819329388587722689966584369792671589680478867002028996312405995140654944494804141048613856341377707007818278178175960066893782121875468785568980861032266261303298232043612792213712583471339188468410035402847652147822615756129349357901495149418169798927001639677653682234315355302124811459665108617628887930892051109001414014290137019582945304979497473052711784944022324951435281517888974868680059082899430468206752367624530592489339418785742549105785644615586191648749657066390571717287089374957067157548096483953024825052822604653351978123537324733492828110580436202339721227131564576084016783975445776672121505248491715412906900634563596528279901885614529057062275613580613678408110642465146231775217920029203717068048061809542214919918182860570154398020741694422012280673629122661646863752801316308333343892954704764069271269056418768852531505050520476195304489894436647914761984755279716543500639848998041508500824994493725786533713024984135929193453221648991592690440834067015793112742641846679697474793231976262889439243163611836468488992318866271980452797528040445555969461538279392528498465000294766993360865803751487147620705014486435154486364961679530300447039131458997364606008578688237589184280739714174031011603889139231379056673494039631480416806866681258142689593183716779096847191061059853781624931445019612919840868581505513466893887619415289919255257177498801698520047502252573285676847781701407017114631365719963095075525404423406062277361365823923698132986419497986665530149397482625479331086823266653842867766032668801804963214998016101617464751008079230861202831132925104509222403708338816751853632266478123477363992360935876007756021678996021550091993609916927134982975098162065021913776407294705823933451150458998900293638645121242036114293212005713440240360787718373705548374049807176571762733342974052818061459413870740504897025975593021989906984308224516741852683302151983437253374549627660339827150061770108737234591183028551004460546813856789607540767377309976155132743219706830903621843840112511442612422206484042228135343081699890521432114031233380294867364790056822634278429850058698066128700170068549459430271494072817518490974611647558656563475649132390762678914003290948824010910672155960479217325162938658606166633243337167809675976232669352164829386590969357791523205744815446107238945025394354222093382927759352448551950120619153811003046448219312731246717477255241209122080196789555731517701229937450814136215181547302205924974215232378225554704616319273073686209135330635184506589640465771744183630526076389362832596802838577689185555509321058291579582747954308776417166066223440117375419974311617530752676053494449075924309858024645823257097787322748151923381365517169209080307382065484183538908282229443198555393041481861743665032876540077351112590302223052819285154463587498685686113210729822191229418349553444204404437218444927318354471388395195283402041095204781530599938384214217497768140528308786762121178591808812570582820685963164488118719618424170271584380518292839793350409378628704192201225838172043677024503915914174594313785408414654113587504646844283422184574751625039621934113918372141784829502835071223973802889966438260711859020055884762273827404935314034963280861202656793297431452332019641585665469688011578256388279160272955456483130974337500903078255273487620199327231641619318162449816717893462786638640113693525622363065774192693328251126056233430797469869061847008675750054529190082936344613712227071507555771007156046345314563759239648700837503514078361082301764305423778497983023746025428009361085712765040938237411815136283410482856307102707205161147033404371760427828387544149138892394104176845099006343464312339632671170594963256400899549625088038678718374266758696162575574016747840402791130623728651232717520142611686732167211063369629019578052779599797831566395641367656194959818831494823819840543358898677709514852619533013498258124922121479414694907484040482083993312256776647181378976898441430702186056073559149693422408593973146349153474114778064901372421725283544153176281259113716528808613390906187228137787560329783356790446622022447694889446937868807850170663285292601236802239263422760860698134475276053813569899887572995724112576415673991084069667366283909390378706410735958137621702667943062864498332005800190006746448109094322020625254493367924086893154571134967859682078754625967222054730332128678840947564921713027283337479497883074607563199498161847273646634175088179074033526650496126288023680087574041527234442897393234250102074434945958440940255141057515682648207821591658694414623922385752558132425684489624646343508205214369466625061709872876125543498418144999135618115394090280185795230673240897194139203560983284013935333053665747692929412940251200504468136882700012228575765727122385799179420470809053774066176524472196865583124750334750944915427605425147529380330465715680132174126667367617114340012454714683663754550068196512053858041550930795117232334082986923851634598523341122553807182385009834161828263261787992476739041379206838359715368383025058692784894090198522861186238086670339173530682170613149950441305198393449929779534640082569569183102916132378527692017830978464234398210088872733145253486594728096065092493421339799192923681252789400137584696580013248958061753449658573633246490788352826180717098622523044320750596410834643881860311133930944902554238750015298348825754360217832983839898584280254386475552580908522467193599872953867473736071013028454866867540813757979272990367669325243450996073572870787229710795033067855586374382284076211224343426222682626756117864346939356100502711010101972274677508911026025346279569645421609815095467227533236452636751070724438817233657049115011966810867165196334243042428477599592702344122795899175811921988862973892915529855541115904865215043062971274711482948149718515701648712343244374956658756488463164173038666453225118250836087552493312360120111213655571003751053960926604340143046817671842572158317372309345738852434741386759196384713822142681507684624699237995833771835749311256011186794728636251872449541328921002126616100764231932327381190808271227977694726728759710923054697239084118722708738241943901156956156954874695325195394796216372969926231247597002528020845183164984223673829092349445659668553844818337258218641845178653000996672682960842074279261235507681061828330954756321111148934584289759334963568728244009372687345139752825241791646734405102245606426127995846633701643346222827458667306203454167197841670108293244201336629347724919509999429246006009659785188042532792611941084668664640589002955126782258441861063160459305726349003776901678043302141993293915816205679416962729299145366611794764962145851208901309308970487098123784402813649486112734030894870839503693326840220714429734268817563458780097951020541185509760582723309144971557988927968808372571560282039800589498287794129455957382690813390923016813511460986986304170656494148122535347251153997182867515277872775165695907055943464585005854949288082186139918044530382900439748754235077239933565692411826045340978387036677965634710036594455736239665605324471255720877107566917101279387525169482321966188337138206377974185225086991357353645705378821059535804675360013428101251432820355734622188032978988786000039298001805475217634167620526239425294619473208355132937490133367577269637287859331169117742567512918567995863920784215558093148708727200273185649444816799673086875018942548085716584636825163616815944926220116043628295085822771830638543711077677846399300618131365234501398195021457127820115666897759420336460795971027682917174815053007935198868215325615522243339501223373310360886911781481100977878604530900886335933317739190356685325519563605793135627794433382056643936850069262059997350180210647416120583692784331389571835288738053270516797603408900529940183941663015781586902939216729553128255398207177497012259809925174092528017953142822578518713042645264344380114840780505432827519332536440290047982485463945337412965310071100287800448905900988714264283062180369305969234290013352486431537401287390262358347236488883718778152836227450091510473988216806011749450965463740419088330487392631651671795338883296474547105842486516336980036423313338758593869640278392664648291111313947891415724540309467988486587436167728142555921082641996518131495251781259773914756200724675629035018306581011153744274387196769565612244339708691513425285891019983558163570758407393359795496055548207603022808570281325315335371519044187792753712247023403176396301318771786392597115039797787147404474045428238357381026153808870666495297414983336435700957574485891376192026537130070429486114921968804252419215592592355835094660449348293576475619663041216499773320393991673458651985415927394852390477796019211389229798809239767724499411314128287443666303777919218032598387452348361194076048070703481161085296162249453219447712352811834532616877459053658753148178953848870595041290189009904098650621049973684556829825362309944873625046702216972180910498724700608049254201357841279567956634933947022526924284736484142136345474538061497277623622295415416207550421874406629753226577777256722243480465223661904501438713016655718625558229516164623070489886797851699927835287300276548014507809941322711184418007499251608997876994032061593200077146905420776786129282613907883268769400842832536694107753840130706762313572674399968478317031320441280197069273790453352601719515314341634095473034595254467404819110821173038997598332259530718379135325083665421360459793334653256096470558384979985076472210678689006292849723854976162461156057731856673278052490639820915571348953449787311632546217806740960633147623862220922702499582581544517449584948224688059603158836028909170437428827273934861428787153411202003175983057639657934537642577780860625054168860705032612770677257699792494040019948103711322165704008417891157287254292791353918283890416706722940998774428690196231063733780413975138705751968978317824800075923507075945157184990133972747302167435987478989864222384053364296656419016910328224772552673389944476696979490414256655559506086418602649910547642981819672936454899161414141962718500190607892596964707426355324470855009305877959852306954260205527455007587786902883555093804803480441713046685958046455892730457613525302081105724810702168552816867393696839294242618481843886386462318185479901347929967976419178039438549149610831516975091993432576350053449034604612407157797356363753143060483510194812735313421866008403145383816181614281348071723966888956128574875001674002936874945273619647309619277914887649879315413820320202032189473103589128774319749202363816569606109614140228930981718152815283555012504124569639961013494365021215318851111126193829599838204615216214813857670035554180086088680783101541600278758179334397250265051792918985562907418911432462544479749628935115903911986276523632474853499498575296015887349834915446418681527247823480854369884960374033008670439859421133413495835820048763789043691109125058128163832296011453582136189299610654996910731515297719090276173762680308707103413871344056088027999095450258063559378149930862772621719705607414839144847566931610328741442260226946297079026389883135666552171391993886844047574801294506000405457092797142579012268472928887090454484447091695166529180910077549461394532802756952005346104195839688881530958474563537845504871771109644223103290202782544846603861029451799170855718674535675833475360740126791991684540537049807706006346840623373863756094817568403365606209415442501479891798092645702145702334403152080427793217948278667844112417702436655098981177319229873566598760083059637730870891520160613468634373102511159031115622759853969143157864786390987312915592491408895109365146103778290073326500174747852130081913461332295614803319239636493685054558003955553034963719816996440873356100148973793329470926981663461573772449449499075360775767898228254373646778780660577179990577712285536349802142427376091042685289859646912266225255622796931070675980504541883405855215399715903773974199142479815596377037472957467697498209341789362785250400724247869689944677729734025785542650414701448344947059480026662814402665456824402930088889809347962698848927141075007737031139667405402891513351085286782647060747486978958740139006560309692450586196375366880053238624697061627978857647554790934416585197600224715539916527524582518706271433536216307890528740900723501830321329830964636662368767016613280176951656858462265683219001220733656070180246728783796134910807710448298497080213446106263358235127274903880492407693106723762992541179311235831110225510097750888914850143006125970394626006441350301259995808966630247948184805860947320051128452418408170603299742527471915288769766194297229592898818728755300627432061189834326010020649096252904152101330092085605004705215974917561643501694573527660108161246734980036731384515610918331563745506254628506369723621217758525096624684650153453267604056998117004936440291051859879664724135114895008133313509518269205792723770347213983545119835006659354401428852966647631836361518872282968995955203518493722184020479109411493314643251831374553147010966174661884720748530522480231591052547701944382473854201997291643183442042930664247429011758786800715549672089678429382975299642603562621730602783899434794609587491554966384361447046232545910338325002609378023526665324662916735248488723993700203295248251949927926481490487289208189522468786515960331119556450413717906884537052998533917044472930510634704805699971844231839794052221336622994710024265622407527212589555629166745897400523859445934909068212969228621570579700097551742091178692912723653644063237764779338374685857974289304710687539761765523068074268986392713943780806126263330840901635255003193038800491683288149492456713866441607061227439429238050885575227798651278036014814986433165389522823730418277301127523501822050025490931452953373320529084805360793820941072648577078326175758690966439793297933836721949598871864290224956891216884079778965420430071379084148763508881414773984000527334043268627291464453013135234515221996633121301551559014094727867557843367815329137662117852215078848809999201480469538450440070532027111859603545246563286946984361119234747336341351509465213510154153657165105671133156888030608301637223474950695828933619195593840505602794767375494580509383694242001009773369948323218782651790557105900379625565853350891495217522629670079251714034447588942591179147447333180387940763659398573079848381985397053460012648023120283177428085993973184313957925303695576990646784455235735387594911770215827542268777398632834761408234113547187028507492973819345904470530240839987173313085513231682674104235658392178097682813772116204929984729449143542271454426312759145872114707791765390123015633059146095797670388633066549268043287587329917534564014841133209844062708191686121740968382512807750121763722879216617200007824913230361670395661146885210078184560865110100399348291894069000995618680609987043547511311565958070066196684810280324160327640318164604447375587278723891048998738589901373282403594286921507181376195177326560363811519248338512675557775161977200785881898767841656071547297575490515926801543331091411607822515423821389198352563348287879345279502854774067263052120198110993924953855286417308237110904916005387535700748921348936411099068064437060566807088208938815122058718190882862946398626685188234738837659447949690083424142672869656669856518999600915655343082264338588507473370594345741480535174790960427778927222229528320900502538807809646418195914488668341236100918944298345399369964483361523992025646494201545618812362201805665828035451293429559972754236535156502411688652466344281787817393648724090879168835463248501717330008265438490775932728165231610554290017663207350290950496653713847024639108832124302854326499729966101652726462621957733503257109882166090624306767411544025850886497833001273851868362679077546282783290015867422064509924922213715671662276523881357838303851000279070209059435706540630445890694722048387917063546356919165875206720213789078291488706292070099237719180347915077853483825282067791197785421623719598917684300183084603395349750944509033634248831481132416747579348559070067598158955205828583889108830107482210555388125534404381988054585560377265738230905825715850144790271444362150147775355006250838185095103933518517934144409128777248787156474234241056422155862741079816676038245528710504055058390891731737467879535146029422599970390864342341291925260430800739639173765024298515450656937052615915177780145686380335238278650574761287897298544120636388016110543556935388189331584409811504379848120129024588882849985809775379640415997923459879044488942744720123016196044816729426153154709048164761291572017687313228340098743238545704874771546173650998512270966450481120078535531291148569553453307331079911189469493069402824191342073208069874878349120677709350544659639847885729372697051646609777088036370097353729457671813844868777309605962848621949930115766161080939452307037533981954995282913947169611441360646449980275907471577034018152671244579581155106802911256606766106272947317445882018299708668755251157571615861274100805432549054674402532690145522250906262493145589105063037923956209575687550248590319759228224119128478895931634952283692489720315598155277730995183934418742424467361208458173508079356003068634014480493085683124742392589292748868024032820241483339910226133705435377245606098869510276139105475090917422733377325330137706678551635448465977441178363388304409168909695591528724405691872957224304199446768041947263358715538107046744992468448800739255463340938449576594970615803718972464575480567471963232414014911356211680111596327480268723593947508604786817585810333293239172135125393367917855740936701713745278611187861847532232767564013364471057471651934415243718461337786223085616536259697747580215638271230893786096926747412294816315290779057324599019141532659862185409649441618586678135966270699003754710597906312990244738258160225203374364095616180986838509795884173833902011977235944014295328053879238287315429543137410946251735892170991343215340813045952625972572954851388933996044511369500862038894493514902360834215366650806255762790081185374356863100967462186582596047209271139073535519299432067678372318268653105222590562523901771651781108359182900631234996122564408771204601452913247001786058055960701825020210607854313600301040142077093642737432394780632071874784784632694557143795912437391983946447046404307900782643429030634674604728698463875427133414754717484419457742361433814346390814121753469970421946516011633231082531081858971552859723576252331394380411424804560073308452218731977739488507333300564482044931820957759037794186118753604089808112512033068881418383384377455550173911556072918188485620038986795827077879400847283383328065190255785661592321811112822742074751782693751974712674393516694655853103367203417683435230087967669731105804297763145206612287676617163987829368900919843386357250123006711445748695957268780788877766930824375872003622625057201768759577279923964416952737427070911921182944286661097553217227066293849499251430423395313673023599836545958179023986246478702654381063704951699602983926701607986695453985465721473065216150227697571002466095653948632407778995744297600016264340365752200819652292710090361541251955211317683157004582360565022414192419031787369276752097798279352483895437695315423586420091899105152182929544451518984700854481338274052623711847423682980152962800011592371960147002554875826170328174555888109987274768652054469494226778638112923121728168294208081221827102511825178779454023739709282087680782611472732761260681286733121106737846497491852835907332763696607969740496355720329790338272154893783152546215822862033563768503255752873764903557731798402710973686402616709362278753276331172617213855689395348166202856161934280127182560869309784526162859864380714320259029797778073398834744742209156077933078505984523759836148267262760114230318756019493089044011130608235789917760421411378524471620774572487073858242714794672351476719576799143463711849849073361824440316293321174800626200125188843798595366536923912222877400889036137419127182348625829768453724747693163566208184895860667370803405581740774525729101825822343461712128191858024340275886896694717616240076074098738630936240530387880411840122285584047760184653455795184943479744341137370669709180470684764503888392526735966464813757619852532319257750129838100969904665096362516690335033322480006438049852499314389443964158494688951002672206553336894515058257675181093201047659090741930270041181497697495118402291344704793615668858426552230789398556978936722026601774348910386089314469614731693638602525125064740343654410987638444004532034466210792419960224601433965766521310034684695532523859425707165372153752636625652027801192631091806323244288756077854918582244654039974807003748664500516036338040356679820687439775384652666767004384276150670745123469594780938064369104769641354011395329082938509688401461334232949564665736802855858535080762843219550007277228397564232897549454469602070036365498945840240169673421493132816328528091605100272760236734085617325888977980972791329970488004869954884840039885822896147691552718128547824353560715094855354639717864825369977335999694575403971358707811180217047065895597819329200519930151722701722030337302958817774533147243134557460722033337854814685783528856590420413409846911500127888826457878808025048397835442897651401738688971944976967806160104260179420935787587412155048458408239012997781760387517438043499308063573682963933914691340894624416499739324527099050495102537810999825401293044146703852376346852733233566779659331050435012628915604467532408988844338125599821426275273845489803111650897454390259649176838303767253209983593323832274512839229854417515209952358327344304670534020262941087742301266097009803273801314029555694990545806639259399536668967410355820036368745928818572848521042800001618347937911046819345049915026151769672198242157684398989015327235814650641443557151474393474321389270547214684001115242814498098904785800102895976556732982309296170874811792499834334772242087637968794929979977967049041065500840752613777278212331927746921667750906283229791965261260816020514139441888570507556717771418854820029112882087822153560696274376227844589242927908693523489069219185684858933951297281583572925453809023106744076562389873815007114662350056750907113112371421585850872735374359878601987987163362342304383075435633560830155371486280482152267008719643246836028288745217758267520936111267986995326043142395364040633281885870108736019659193630652998301846874051977157793213416022223197941315748792810440702785058168389409783193171251191181096382929152823340414244693257997129586148427185568941568733138571296593823157723567188238784762462461892507556263037519167322962508567069483776656890854396864097134920423419920584815068155405412742998757186010090303967943124738568620480976291716160242376719298151182686264147086512051431943497000484791307602621824428201443834530103250898268672794817447222250885623613727363132266308920015550157399835335360598127911168990722445052754567853841967052955283737914807008318060631824077309139122317814563506293982907676013258494329518602422940683300474291679347714935153226413591147110364139256894545109136965913219401220937380533217206394693393148929257668603935988773848389147966989097591120065295729552756574131492086766546476862179582631302317653785145102071493873865134206992117179595588740364608640194635963491319055897817299739471638536239648093473609655318648546133562938894121118059193883306460633000048541658617390672293917547544018272310166601021941325215125238459255671253660566756904858793543005054874054962706872411285555026052411294347605222786604835624965151441103073572338730045141156963141676065457778701812912858453636990520231627187040502306721772676925538528999881829514853982062617498259045749432772797486534334813408635897263505122673187209514643128127701313036753508042752946376379576601049057725991205074359439466188416026007815842696436799193429564805644777611115280013391910611014313233436067307646563573356301551658740836667944084704662436749320039476953324576686184587831269863142747545498579474517588208852430099840496820926013286018384077967264734835729462537836893833988223192522023985511624901832376108134910979468791700813857114690000283071008065498139851264618488725709873163317572333248003103104855096688902120409009281049376749210261998158807440751838501249150589494881518332697982826052324491021826358464868364372410335106917518687381346899852843969652817264944293832961367180222467560639370541450924802815368403717185467866285047398787134008475940182499211549089515726001126047755475388722355141117513422643409486818718618878317075323533999710687044133797479862619158281478308139340370019042752126775817653524560655098717147436686551844329828023518781407489331563504256837436821701268203251288171720716388060852666385210827995228646840276231824764179870490055108778063101768083767501067001928709508267575324343351629289342054836976558859793284699385163863069957131211656707298566076151946396068611734400691133967095286303129679660765095724769991560524709790249918653644011019365216483573742206553398521474138473767613719525400922101295127431325026478855527600930636239007271398979529244678471886826278546796000855389790957623384999471806809664218444471610022965571533592969077010879348600633161556557499207994778597938945802771473220206011246364905977889764805533140445795216258733272199881225673251931973608237676534173044784752603182968306063367162517767187535656837751616275135053240354078752765705692098248883946824367022643168551918794774582295188172931674936737847171435485807888970816596055353889782350295524478836710497447787656847552717947055573962698587386143584907818824735149114370960906015869270373824691643364699227947147352350892371059413380157186291273632358940766505968041349461081588650390507758007056400251776102913657014116196147729811011441684591624778804792226980239756727487570470769777591826188147051751597317595757808487106666209736238568403963376163028564951966253972334954706053547397439712191530065969725581455376191847418660732205700966517147968665016266817831375513909823779927731055285790821922627614625582712382946516580721969693755943615226736095915213340537657932626839558113300368216290035021097377083240151569830875195551046508363767695220340042890438223337599042930075519098683579359242407433223034208351906027738482944886796799435127282913716545885000288960873504936179573286859292317754567097425421323964799310855921181674035612010578973011787135558798603661243105773877492262589846147087404500414234107901423141617712991734591805170932525585225381279405662248599472660695623490008244607014722215166719220228239492039016835718515637506404855383718140191634575992879439014581535474785122824407476218096032484613083741469906990085831467363592127381329191162293522171936492985573428815232640905395800939875037807777012402507294559329520790432419413668484309448531498033448045743940122225236546426970506371115823759395907918136227972757377641040920506369837841950306308109598405007289145928584930513181321389340093131807888871959734552193602570686029952553715143812661511237591371110623046278530975977793669830971234080646333327706632892485609693051732109422153344942332030623149547427011324753535359972361863588016143118072403581232067880182911156762108672680987345680717684207244466043347310478645134981588570084397152847699695623429015392610677007116337386597859482490996113122960364697424138777277230251306913668399844571075235529251626816903352060030891845138515477232967620104038904059609211924920125195657484158069676069295972817463284919775333394965806214709938704056280242312124887154170782871629762518847830687129625303772813140950447921825605129948845121729131963241556005045942260514032126556467930637534059572606660342356358394850715343010872368888607586846091342624331192204869752613900617898774857763646590485478899006521559055289394196935121104219449328746591043046157211585676832657315829396618543632967241232725953862617863692969986999648168084432418432450703342171848224682272952878817729785159973311762604574957502268624268939857095344524295614959857456536912087994782788343407559878533736037743850478038846162939178084488044865429948076179755343148930492029438140055197129834604476008413912691486596642458538715605771685419849538362714792225192886396544185162401579129542418932529795321402235058519078177430909723917048074318369826041902629611959942516224194704351415907217773093863644146696955771181396553657361434420538442349495009924241081634807912381304811495132714497972140052693979254233935658883604894640065888848794354857871864681230608436553816181450461862382650523777263307408229001163862513566405630908686742841127330365694788887242933502361144718833137082337406529188894634941015302304342178428039875945730409242097824953482560419928628059411553929892944695547061184299428465740947448617211022208863044566220787902000179666502055188540055150289375678261291033490848019338828417934112694693375928956011750555532007955926156179172400801613402845843624041416253297044406419064498221924368239034719938381286214460147199372100047984221559776132224872681067409052258938497791165402524028661233256125188497773689692722120429552859019367963950691475789885109395222044974351199613369356988212566041625251648783950213807686674110951428864785588247951186910776024537322861733447409899612295837140592409346668175959219410302902792687598189744052570811454055468928752611313549375396147612734304898770894743636569484485365962623718885141772392945728761669469024828106520158319790722802705206790242074443351494781052643382405636684544715331088725280855488594272735055660269513983070935046223286573557911084150206443838154254055328939574223432515567965339886795628036498516646432515742614735216179344176041164301035473336300956897165065380974892750043235800465924415364216778855812261351843212401015642923042817422243431230780181314995104975048225447977660917690993816226152740407034849317355821048390405229042759475462551614495546644655717941922549889050166505101213933353961099069653704017849099040677458918615913918680545855375107341545381962962946873548897168862601700676209648239101785080880419304380219177285046747834686722812158598588676021645992507826229157312477772395376097044746076768282561988419072467879811993759089999059280063020314330708974683208404192649631433883889221175353768947161121145846406049951885184603872017743863848892895530167193494727926358677191156941631914870090268244277177745904622929441398266037254175933527721621309100957177322867455986130589383053644403221725016138785908125801301709533451006225606260743673953923989822044654917432445681587508964401347170407597381049518349859154877288306473562347524969362829289498584445602680404025225688367429041658009540650448116363766937574339268807285864608346246492582913295113901964834136371051236785558928008246330929385753026458096921730922448616999696618606338935722715603014557083426345116026199842576631578828366511069523342564380103985945319665069434977434016267016583637404590041834876836389663938284863645029969879591446460550537063907832489844593675425810580956959254305371385200960395696241644192334698119880988757233982947844540376489156901103545726965159538027448264003907278625697872699498117911636237256093899794897829636999128994321323760792704003539130763166907063851073136632212090313066324133260948102397853869933932314961056133217232137167386700771357014211346605479937571457246435481743285516887966813893126558633255465808258099028447570969977973379787978045506658817055769586949130982095488292552635821991121234910104591438537415118634565403065807826461886551749805528245501598904085168012029163442255679864762648455867682704937925785984497380543960062351083563666562050628945019394732208910960200753711931549484414453994368393285257291734211808511657723586935336936737655806445856832223934501199626731578106364412761875104834197336464083424845874743435271076439828292076968203838014380719546950856735426349096994301301916577080057793093820857944480034061931443198584301620541251178013630352332760281206188352905288532410471361479757587508836059282310556970640951247880811763038646247693187042381360818364480843221380429588193481393165096976900507772204288760320573456019522909687367021103820691649977020947407330750012819624998660083767365356655727466750079990204790530140624434124536097836674937221951137336783529317639972191665501162902754094049835550322956167054874355634642837685169036642000595553124327911026875389102061634331232820655063541257315940299984254992620228069342847304101547937313652570922467528716565318457000901574786863468766354263560898876245545725176271478627933297088707311738508129687924120848790441963926982325770702951681882174602617264463806257259978645571859752206318626343188274526282265847596150747874659076190773013621014318410052597008570410102354137644311623708894865805079699342414313385630093777165997081692992423780975316538071197368731991241468409066773404011703967742868519321923668888203770402549025837173247257553666148206651404571170322944470990959491231147601644309101689437422763119655467237312075755688547772140595931568108397511402330729332162456812206685083863789721899944619094898672828691987613902203176134724899060515135591356142310805216208581454547616487183840148061047838877269453018711367299122555258085341359398529559237241036404649622529952522405213774801857163235444123568483946682814059130153298915394288120397817403135699192160334426644284548001097329325349910444130846377623456672794491517240626358464751527683364005399194344845446257680738219163678711719587841021019459952624079930962364794350898430798299487190376027555615611550794858224585624720510356287101727343507467653908452616876774351109176008029687498899261795097087992581319254980932621362606379064333078586429455205401260607697717074381915862176289092505828215852425191491999860033462879738057518355803656097201967591963093819845513687581443656924507415468258525495553033789097475928379364895236534038329480155371370070260121769427818204085508536117195528141229562571417020409314527769426947851529980449770742607103860953040263903985295292199969662635925000336936562042346264446681928749609597477458469809164125606138687970579407343920420187956769188920680257387643926140618951308466666973017850000586256557582681040515662626547548112620570218028036642950202827984734096755933458856414158612231019226388822516195242105534771275176352730206400254426754380609260385935540746830940461717282946610326338519188593005667351508230567906202714025786635989460841824385486528846728987706847561638038585422519037475929720899498062287683465531319068689919621089023618756893860750406919519320682954879561222011798983373977373389455131309260172233994991272485150431544197294610860439651344355411125271287732134185345633507080736388272433753812579868932563540612301509317092497101087448120409675442637831165016996250351131371017880970273780841330181304274028112533801747244196304386481939454007672809114000123817387670217840497586803469356202182908798879522566169186877073200463283998962022234519872550729923744183120012167322976914238761749323158744848319883188937995207267681303217214588309327660389593013838528138150510339238882748763874141397830869797014061602304213943808745231856051991077366544824205392418654930242684989516220558302571710661768429281736901458074629948116316416163256211927536496550036441575101280651206986247820980715275440655352885052584411501485617357328572574914432637288151923663852454079513500757855092648833856455422005699256806921077322257657954529978209996073711433541819139032394130006297854112289538659328581552348069803569102452858609811766573182493738799219522382296821763295027015513954903085677555169336913593437997724560088244208718079732082952038296692720488145947175331144028435335552645332627636350809077449483948696369444122961992441126904298270698605578878867871161613634748347268488774818750595102289807213199241348906432817245126073969857752247178577713101737353383405076139962891986174131802523937552711198438175441007195992947174782516576867407443509523281716833244405567364520922040891464849504477948356881114826397356170617010105994484680755430179057397205028419297456390567369368111754006104763958881507924775533706033882094946184317712306873424317426547140633493541326022834335040844117695230894670583604468433715650264635955336980414090302548564371773775547147580551396590247393246344200443492647169859834059780998259943706921930294166774483986260755732347456348122480574883430978212203833857228755493300613602428021282020616322852231503420800395616726522904908963278327200133934872795480476419152187420446043128790051689552584930264044728202187452699108006993486450418885329169076791118368851897804887952198646696165809393278516418471842624192035244303081503969262198981139968483494199469066577545343809113437368580635622129480888124882783653423447116858658637694292224663208782641080881003196351340341604823994748199284524972131123907359857790314906356909728626711542098650716126760400850813061073736910397719410417917885087239565169854985034333819771967414819691224844301537258736265668942750491697218631648930710052494375201894463529731294518234735550816277908076398024856648823416315906910299688168209938792851552562867960101441665485533517371760976837386942868158587195004660493928671161810071075009394422522857023751020914609348345620208226857241153038696920224020731890000691614125429006658652099280287606142576846302083194876071673427460562303585688532753043458336408037765152845921327883176732088432705919629659695261570976227886463578637385519351775642434562256517240198973081557886317344347924881175218855369232296781832295450094151010149418980463656676223571786324630156591956954581274020559363544166966495267468339922675680483618072227658910839205067695259137323040714539044910175550281489622089732064140672262808986254452757248722523861719298612078953451612207064981277809828974109983786746911957309931784575950279136027238485964934177010563051694037135222273038735899647033013740479766931231075759880987005826497277960552047035227675839499103307262085206553559983506599926663108768990560371022694717781244219124239141368781864114097781250182385193824594871750900445307375781676059644518291537325973233345258804110272474096955301019418162883024582045333252024422185819633755584828822885137038904533772496376926770910458339705453521153684020605299495775728924922186994028851612824519756399995648567466559085919601804758357244168981520896751949903058246429722909470660478403724012028643009196683995149515412235692727239104569010231504510315945092011378080454876357955830467787511334180480354373201324123790120915102149702200024413571414116700401131593675642929211949820438519942558932540031006828786562367816035530525073938449676213907079739324348897454244964149133018046314472145136261001669615021080447458504938710813683098430343901325986928670097719920235712628341187005764963832074254960253875250366444818121614937999377119679207505731826030189904148428208783956437381116410517245705030722325736726595438871787130144994431500401073230422910089391652379056980391263237975229608487423146270650125686798456156257070684007487198784400012046690197316812797042486748876587555169880324899138574617601354110193767127638519430241611734451584186929806451023218271367234350131008854897407688043898311742024517702016015121537289894714546293366007750181480608409955612562320570367568039129015030993952159989470695886628065342816543320530365334418828254400797288622424990274476023468945130000486205859838185720310805679483556314797939305767172676400974395432430279526330375285722862601657961080160148950252042985603376200857495223018984877877410281427397569140613944007459225795735208208903144227384028377141495095296328458066546508865895173592874634504792774758640461673047594088312489226029794020407350881179828818391459123806198650843552241179904572113241074573791854261146394538272663880466180435874112108268096564076143455144777297717624763142293028876923108663014644503505951823271353439584450985279991818760012039551430452407677639940707104439939444258088166123591605846184723438024001522749239455384723823097856423177664122979986530690249335728960488287595743559162448984988683521935241865434620877148835417283961583471161919440134607864156205889690716070973618133388631033375785342986768445219456529760323366571007616620969311821045490608038636158335190841045547701336082156560111117722131676143930017330008406488324099663645216954819474630297644125632573844904407304307941318096702889568619325045847417964190618056016332587873894013415889742276901811208420127267028845872195336641292122522023873075891610490695621561234492856077806592446210968062582668915304161221789203663737887754887788589563059976393303829224747650638761255161968755050422294693571540485871437055894779074912036986324471080256142216181921096060713252409737175707578316537615455519453467396727060682512258971443551364528233550159430361944755129281447188672551720087841181109103760688600543871755507220220443932266588474552413716509419683368176539731066306539675149140846683489145908489852270078616944362234153479513389068264168176322235051781261504605795824517996891307697953489664064122617924717668947361795906475946156266398558926124718564123198369381257950482614301176446429059443410791489726408181350727635837495505873972109360730674509600537644493027760192880212786835153542256728768513761279100511842785065768052838492369421536488251493769509591262349955881708393327314606499220487455360323707062420382373286279626797129158346745956929609491322997785891714739202576354477572763591284258963012739445920782385063986463849350850982959533073423158316650210053750951792914920648271040419519610250097949674918972226466658180919883688856846623764726068092941647425022933174725722757124669483505829964512969136329980677972623227077844088206330667572866174313302097152757080091609861471145384988945924949033268346750884909958604012548577235565876177548055565099073424260591295832386519159876924472159171027331009134100992771537619103154125566715841315463073578902400492641791569374777476047007429660536317017914655507472966803627108898844349586776630593976981274129940807998672212281428462371373761603638920324715305188307961895046772390409654504922867400024740169963946278667978146601198712124310834956883269766694972222913765236927308372098802408752682019236255219735866420308593753614763291659137151534320284524689967240383191415249340260128866358175120697953940630372661403874474449782944558207440274370346001982883222154276661109126236113072098966109957702565848385689081026041758133579501253467051788714769187623295733317270329856509669881186105292653177206487925494665457248542983559222952376048864227826897944220121366304851032763643624311425124543923619270342730121527372478917296299023820815594414562344714697901819882582921030391406584994915375612078214593154824856855047303622208194791538867533243484308580154016807981487703473601842917473158482174904541001422067555383710362208800722990920219320539786135808108009661860223010731604488633952782046036406373736555056186433661542260247949434996512377068737755822942094422417098158216694637935748837777424724347394456821797061123774947378022933480514457556152792561479931014440418926628363156603936687726684383137781036211197344408668532995216833757030035890850798462745188359745766091718879811184061270257558931553991444777639586425225595123401239639795515268026103806882910947673051156881551909000970598670731737723500577518332380247818450367851810940240273053899417043735349418904294674038430750486922964810204118165500011470719697530071199413434574142086100973324698149009006912332669380833000685539611357236182801226213591032558601138060048138064725572583270106713211052857387027584865501599526505278943807416658222746129814000904424124437715028215414432365090434184254438398870729537691072319510759065493189153256859330137935683946019286799007879396854206078975679696581305220556052032778075212531137802621595901375225964112516450902834994825647925568584997904964280021282478347774858141563211175561553979720085804132787052455654009356680126516931396297277018663777775728941361534998785097477821707634970338751083540487681092518592273321096599433368964955447307009579490401404980722060988649511070560866740926081960470803059617775734753946230192299967635109838078261622863969189524360284803434682356172006173717073688718931078125936578788648092166852206998602338080455982898218352132112860956636451874279589712605570439090080879771944905646661881052036937040015872508673509420591639551763245998867139737367635443578373795690318522235559807406223668094888068543848401132806429883209607521007104435417725811993090869664487709355445143559412633549558669081477254355019605057061144845435678584793411783428591645660976280607281840837772300978068559359751278207997824577729873310838246626055234933769131170821209243338095335287180009490169596018452073604643462064122948987935323077190393766864321329067749979892586110205765487484051589954926756219643323595206267594919274661626208854769502373238516158932871224076921655155603279476871346330108007115083930146641232824945423132034275090980675350715153023043397784721940917034212363978216487848571822476890447723483694326059315175132628066684113803973696195050432260003124717394344755789965407127888468255252568394633032667952930448117149839249970904199596033054408399888900423217705622439906403884347571060737427581971752242497638866156747810719433532404784704526262926179724785895006181652554800929465488209893685326471218208014521517594890111571704677593590435924453994003800793675685417609911278035586810997471064519694300250698024400313232130220370621310386748402365076564480070208527884570509262831567814264085249284285356023002473654240262704483230804911926616609503113485016080790517299546409409925959976608408600766891469324925780356263526028647905372504294724576641916945679520684806775115220724087103306178011037488659525130029155151212950072666674242353976506850439257400978512324330781536441000829575065640104431070421553046662540508999186164795058254442912797681377539816260009575020171556959735052785648672378110334145206254827678158920884823443957356018486751729596071565317928461749051870040570649280797089065867825875802250047971764780157465570171437814381546451554108920274603419498353840967040538104048609661812014673173325610588054109601453300751488418545958191776088128891843484739302994071526522564744476946711347462867950083527194909181615092349777801610057974888641009787457268229557071707613998630295900252994232857500206934560047822260705474589793043860470762666508451092640206558515285081705309169637691341638088105831406438965406439331833879268223933766473038920776194927181600588296276712847554552029653669297044980868405548975223489250602568024375410996017035090407573768552935917083422634821671891719749157463425531577459009733224903177747519481807202776554734828820554226928996555065350708317933630115051134409712928171282266518047454510203365785752782678301498044825535009089284494335960176429063937806008117624942470336382766109353441310819535814552235207342721155771361732526356040733031002608100303426542075634487774502875525286454807836079971979232377220412966268218500685462607431793307513771223687639792437444318832262364092072192027036750282025433090789167850190687929072281049985869299517742100393607188033565533171995903040866809841897210666427015124373139941188299988748917900724236067703101100439519699075983277842901069199696288394715645124011557870860020566301796424901054452490875285282630973162043064582209324474992407661859247823918424673886738354265197890094573086699418343008208027513114315254216543488684979616458444231967159048336273918129956547218351695389468616107487205722842109276203177447141120937500235441992172185317547960210668270046100097600391974912126514388946566314241536214140711087245358897565880276960005162961771334311115617360658517443064260121513858147419560521883468664451882798153447453475346822581138386071624524866244766499778300423544204342254227449924339832554368310431039375689264531354845086414651306976876893117643854555309279382015283216924787194561364770770897236784438760906365045756644066877977842473242048029392300221016735183543237321059562574179875511844207877233217259036064146440603452934118816269758809002817834071153127613668204606642869979193965212862745127509368247686852081916342992825786131815570451906539508643966569818568934492517338875179108009856089202440791252467964834280526802979712120760275590060213383565929225014107727926012369003036930415950603117009159308665015606149067424273446694213749098012077190907779602632839727582789982504265252797086084066688300245269088375188859813859473960563996660278728951869236650375321290199636023065918292042397534954458076571866538579108928370677904788521329931335410144699841723234941909072810082066330465162581379228856160018162617215392618441716099181352852055043944211490978047800720686929343612613062373531841080295024509708361051385875170450908554140198447888629048308665368716387772999346035278721278652168194512059166766799051731959311846657404219761719363230339819840556812594668487228739825282013224472024081330074648813816283623763797617423686322763395930035870513630980168902328325943445021307419775822503178659818780758855025397786085533453298298673972985179664252731812297585277483610395351631438641873501347154737157468444756961574122662556413728433920908596878152681895561409061861110385471843055854487112482645230909344409915144052598284550450252419538047591013178774279065875834793665866468571401520558524177761173541968151719423912529682952957292528180402121387255865484630799511992821845298496368335807770950999930614150038356093467473402940625964137004442206421618041480917495355437919872076867337552196618709658502942433353390546246368606690162265337333276785983598075855250522767713122377922015080519681076405976957658329487215576964184879122987294412970321680834034938000010274034870882240110598009067893278851703431659119480834208995264135887886875780025815048333421186244673874815984862558978316294830712177949360532151382012027189829527695055531592867816290146988153810446163535338006550294944977103310810838130641531909840499136990416176872872199210625783141341969948458808668189758420012126860516672292128020752823301912916645435639603950609597709770243483635786648870907245426509937550069706148082175029172823241938887331312631292448255099444257079083661023867252451628030352441651520085325672553013081757506748542704855073124385481523753740471846973057960501300964411850136198615281039140033950615702793361317538298448200255591912206057474981052366100101440401986686411911209710189919683969828725010936996002868090216726475583543981073024082138372615285709912586497653333872624587223389326805991688591147737798610443120138104942852996529860935732062763466251924874126965934859830254617326391237845815660094896842258313632436840841776692503430476266811083883200251357940823194940553759859499594143941129443285426014770748652082363329227968809867218254597756266986194740213857409671344996796858874456932585995639889155539639311786089985711290092992649884198007059285312081209692278348760747994161335321233013419931490996523319808922549998826867984442932682473049369894802744946808873564800845412955304157560129343723007740369345908104224474060025841761389794724151531968852564838790213661203093811964317534905658310350880034230631184961840262943363414066053801719566401551913932030363689796752980598033795854028866887213095685853792669981172215670976178571494831941447274462572802044863258757978522279079884525028673250360622974574467146678505175477949646148594665070989741416558718048986239877542176381209670723549091754908989900819387052657948512286043556544652184354711296627715336217617989492275204591581150954284440639362343785899712563106899293459323675911939887975151047319537697513754201562916391226618811662975149164924798637504209209910261929512386942514744727340774844286738574272928454195452341980070327543160505120665310164118420849565782798642477900165287179219165250388775124577834593180326838331540859479735947985458918536064237281668401962858310701691662188911143298490063487943467319000820805665600456147538542003132229141360679824495769265434512419391346321235486131619691876628084649329223714521534538037074383781011601421523985369467077948746301334689920404882007932302809630489392345767761426857643903339830774201283999292730903201470544538588215260041107947283205361194288912657243503077859628007209886838985323504061628021535077179082025618073502357401288787039198213806740889042599343831558504815965982412083199780987874337904646627019392527255872525237549819294540347794418932854786015324469901726535494774437825155212463392923774349704030611025413532196598242404018660712605668346958230732434620356037099213260290149669874852729191946028032845619758699446978898976477541213741054306644531609989140232246937603965978763825635781260259356893282853072495416831930748110978981642016875303165169949121118489459759450129352263687505455031035626522964894004235148066685877295063708932421911724702608882051826119582442868310045841143176902761998224655307543252819397869097124151752801677260099941471863450017707714268392930116194282789155409568106815898279572297960456896081733197933949804771218145579104259382430205200639279488956594878076800531588429017042013338910326991895871197844166501046788651692124043706238647468326596415105430332275294065407550039266063757758569998660680018219004403057663393644303363313845788273780438791326698539252026586598797287662333860987191367840692784412516871522286779045245813225091632595961712738620904746594949310015010759959899443065370895514949157841936186602762724851525373922586624840192854029608479567231228577078178925731635569970454633534195774351563680979285249345854940433286695774544567491192411987519810983532931083920593498740583341308236706520709232073961400892513659323006551500491281575907227048415620606816486475786650036223681239081288845185534826620915991540224525745175553495820041178176938669452534449707597371331587439393650924999059650076340130852687156207931955596581596735116541250832545987479125533558464081240505360641152091312808380930372883756004503655034978294517862110785480275705589782636371870933488795686753411501310336754474858824987393999403626064524364752583592606537228459461214743200778703422108151902576901632204084632498764301498254168072784664116699790503963660662978014164234066943514121665352672158089360696374257673676582098979066731072357933779445000536786345196964694329742433973672239801672036911780032631658320335635203289641189183818845104362136974838160126635405236318392632502303537901726885706976711813930222644175409354449158316137475981161096682059710894111631552938906742324669054691529170830443767927402359637543106341300803382660497851379543311578388857597180903260171082088001191470588750242118169982733629503237951899527343235524593035193148134314786453291774982721368373058987337402873320012151215110933040966223871659130914638663925687017525397049088730647329856433415897615246621448056220694426100911016068722940819630744046688020629851843801638940151234078767343904427332726215079352412237037787372835050502916765776460262396493654369684601418333704198295987647319391350133066376089468465702838395202563187156096838901858582920392292107315764862723771153440130104646500196369015266846703243983233154948450005461398767997051736936817099005758490262348622750352458964005024436622844675487311193565426822436774274222571790056010512187567669888943946275316698241364549514322923773206218978018835453098140228116722011986909452910428866704197012843847831299600085944722713430527802578623809929680620810709140939809522592088972832629634210609496927199974424990955575137393817957372044922307535403686020359669311122690895527011322676270375950656132932829236176505490893723299507859037795674325490407340953986995408897464670501924549865478013732897747314126281531631432671781609371149980420271198308388014153066807400405067075387545157762130301032773851613158401172033641372998679588076506853452350510278212193000053191652448074557617388653403511541363742900200903838663401634395003281848040909426771717977504141450882073187429947172956061656626048533696637318398409754924618823806039628884408860720361309948354365857381485225761241740258065334519301517063350183705964191651799867836363357923873350323784372633483129413918646789929933906789603981546142394245428895196692844693208787807378128747873687659288491553354523142077370517210990859028946273663756180983882550540925863855248610148139546657558006170258188606840195200823522535998430361290959162206747435546993446139513564123528975873869030596634865375453096230781123876594313330554787417491774745999525495345785651045495315996271559234760512631643708174519446112962039539514091384061153274614353421297675570538234243435776872626008173056683364881811543884603367191835988175287362664533702514125216144771852964231983032711861985899166110196761738573530121950936635159041259917437205039426089334869542292944160075585566483505972509374386262801863041667981128378877188415331492653065758028889440926726884123338006810985727491340363393757493961170154188528757538903104979015213185985011031570809529590328399494045718984317710816790859983039806310964372166788964117070692779162227574055202432960201143883108544152144145335019775920569063872919878271894583451468935768074504887721126579617987288588767241052728055118512321895164265531071477810494317821015346903383521646428382735715323950285188775435448119463689204195059376884554213843406715158970114042318186606673772658753182496924979657272855228122347206270907063043613103544938503682322258165211086892149401588896198190787332247222896875425849466141621307749304756680245394643923564871019150123093374845642241216818156255803797476748832601792153375498293006739987312638626712833424364353157217042733598707752386192909041715037092630132086325107104034754804084424257409925682560914914235614614531823610554315047457788933704322427197586286765492179143050922704268600999024459520082795441849892348655377739137108397397836193187511042996803069142273257562661824918532222616483931628818457318025549432779361359443947245657094829415011355846898546448863456317589116910579074311125542169292800499353798555417074847078770316612401941090454895479393416919083572319004839770955588051340088365984120840751791925081814147067759201098532130158606264427925711491059436751512802500439363225831773068180539575795841085859023915840727597792724365557139928223890154047715551261212259874735176009362821149846684012338668773757665487228459304355407335427871466469221808662547081700342587292074895337250624437918721687844397975977254903905730817390042215320011522998700024143933267872993478671536804689080598522700164703758883961084470175670062176813860991496125791229751554114927325944359088550700281920303941117237495950294016777224818047024491812082744080261243235657878865753438807115204683280623006222712004036440053277641368871814453837882860751942004247108861763876485534848012279492038384779403448087949538733228335995251408242039050952335559038579241737120866687323016688621404671833927923086463174957350739983354685111312762922353258971898590915466548007015402291180506842715761099706453876711832704007569253473688401116776571466257156665391110373427145379655888856121112202638255210931136350105783701412641095465658928079702778855673475073056973170549386611693603228931254028185825138009394485284902142085900944622126658402637765483359212797218235346466818123965497329190965048354891546387661455379848278587218149366615286525396816671451599269475279732589956107561760037863608314051865651577571394035247146527233447899793983305669989641895727934954341717261092139591415161065797784194411644145961572537395945204371952451024318634084256333180459357855878890051533106981196912408051022201371053258428003349813109117601611072563251030884655157174506078634107997496903673336459836669245479473510468988566531957869102287500314476297974670895791489511009728620303742441280563894847723516441643947404459745319643194984845248060913332746748159898659881584876831590228119457994930175129745509896119784129676225905170016802333400545180865649613250322954448051556642659549939840978539072920059165911218239015450710656101180463623279827445069587922699762277680015442156822108252716618155199202426866051844734385891236064842070042781217895664405163942639923020025498407348168512972602531049416909689169681081719165021708092868986377239820061512327398906404932057618641401427275655379277676232924891927939149550086292135846450829118011160962274042843754679599310023215617263990684631823128076203571355891407621900398411661892020688724894458848661421146688963214452308554649691706569373374243522024357921610177038541358246217216650956942516968723684594974912226764998860477605161822977866205942795857114607873920496709780118053728335997143546657219297933986310299163379954564374813043593816466943618179346923173127453942490738247746243953337644772125836751183003101981053652920749680256846723750718675605466463567004483143243360370036609029448162577537905212881078314107206993770332674684609205478021424785417081969537771458692347292513100648115790832406947859013605178318040855908367416990730245895679404029024188295478063273034057622539275734151288648162457055481458203422005500754183995642771197384128583635596144344015232861287419878218618804957900541951591809415498154049241207807807185951719742866009328374164640283311240974626451928119401999809159568475530491291328616831321045771650802464666360579744280234057866796286114185148787059176908552735589765662325144954138611809644071282745475050091042790655726413466557308377886337685212596433863931208845476741983736317907046924205250414318523632350208961233344784814391573658334076013218452240150104225199225323584846113342335737188727655310049551984964453398683606116454469636472497014316194048160986133095690050687510404494860709349300397865842834178097818809683627096795512652346477039137909305156894014418477503096519533402049717903220876432098483559532451987703402580613404305609155234482304132977344057415049903266158997328212070075360587249490777165377865700934563988773690318480055011351888124631938989347128609704758825522990911700494710105267423065812614184051293593937453381543060817068100245584498438888743980286624708626269046143553994676188910147950545943454591773033249861804348464365462725012623102474698626765872550002864624557660413752104921920513747934067135798211302442755829508841675701144796952108440701923888773841172540657590579957033997891148119730572501502036702700473249221757120422911859759422786525575637000247103728143046717525348674871093385919644064263313198345579346347896100524725254148379116252749971671880623627474476764443214607805752422719713603361931052479455685183732661968189341996126154304007439573602006831259660764566579286110448312130207840941719463857473877920927889115426020822879872206214677897959409269415136220370332038242100979503815413607970091601471929309731227140499447684185343248094543349160021076125123094436936383133295927891097353825736795433836547823722076302638512435468209325824099488514127522837523332675285055160332486688481478165647330603167372956463069498982640316040612723060526144755508411282707322287990955628878066901554105318433970501032125957885063710941478326155083791365288489118480596414085874550442575516805256847075017992693743460334702936868536783588669598085407903447395745046046904028834548132982953482675650459023971148999023619108123948715259178776989558894727932041971618428582738160990432950292530622585590806273990323242894378393392432558669858454307082419509431185270974269575561725484473858443745919482680416463583097078926567825107129534704561198594368806856960805709436010487050385174506285328698082359979943684398561259500386026898616662132167077631680130122367849064384629085602211021966475144360676303078350108836712176501234503129640026992142763429243900584973309332755710764346654539855219844379562687002207189729935314932241245188187027659503018976710908079240864140068901387848482395828308947812254371930095576367417739684452419673912442106899880254123652277057560643260725911862604440253991652134604417968515731796211373266212309024881490346345136466295741572673398432348335075989049504975312124590333001243783568595733497921467928208612945733306863459479828853748724393392548309102483180236792939160660346967271586995848168971992389933633645586176154053085592612851894721348689681516728536818513458296131161817356897262332747768924769626306698063910580498966961400032846951805303967729316736707918325058542437957220651273531046818237251256371282605188978887282528705019613161919145453414909947542045049381260319127562625331936826100405567510154105532478925079829833699523363184420619149766028705642391151331177823651925212802288864526143499849804664063950384959616956357532331105057373823778660702636134730806034628800437322525448772135667832822308710270262927979063737991172158931871546134787797093055899866980827283830607129192475635747997938302558024366029621275456958536280845078229940438246838402935191720286431002267404529114746318109131863349375749306186607605507296920720222502472985195403467869141250718056136048449449441067459234329729174227185432300726142276804758381947034410472330107975125864828656147773969403734836198829097508373698320166151334787152858076804005627102105109449282668254144102111195880495918364799089943740821035667240063564643985903075086607101154070549106441389793934645282631465433153281439394711073618098130264981781004181624219338277080976548387491045471655867671711313631152035038032363508839886005547145021960749663714998325379409944485223249964488875727949295488934349084380372670503961657020152261763560383935919392536016128648544261876756471103271598933882928835591129773757377583568957040669093422430680655905803107710887197397503443555070684681056457247981988138748298698768537713920236062980250344473227785914184994370710382120666834170500890200130338985957527302454911001550831603943363003196870373040212376931442472637664169594368523163469830685340853470673381364374833383374394901403232441595516217928773422666929639817537785773507951466354524723444953222353997868544314479778458748648639120641502499026565188074798494080075828143421053628899097286619972092723144265596308237043865326079852502564379127024759807834069403968383335130066189249360136838034826039751219230348285473700291686052484728125561833802789813798988470548255022345697620582307095250662534903081313703271808602743073027399465055327713426750357224459288112514724542123676889253296391857622277449960089292033980001663216014857041120624977976226518214556086641329436014554153422458602979591847820492695597052368311591454668276834754478516098755440522223951129431090557506434003072176844012142952040696373338240746737708708658496358207419520320753817488739881162174112922751669539119875932205828129725597166257326106230324402429381716617792520586104782943255313551731871482308559855869346871577794153746999737219407317047049334768065542341218880865026137048006198821174464928560291949206422333604234085641031940544432294295380313356995505913290599538036088188783837756531929058310458454480008914693933428456381943913116200839394496186840448964204604240632570615830133336010414840527113342787047604871798459064410398474942745900486319867045010755280568636529081570387499253394301597737313462955313619254982626536645298187185410830464737321692120469407615412578584468319788030694106545772401258492462391082265569755306428103801410605867349970833249112564582494840590275801036608770597886709918533680678331038288185213001215155424267937302264665940650634022431672373661689422284044888052607018393696345747742820185237939471655277360671594431743772481829556841280952971445198283721466523596584234031049914241103774311034587782971314848403890966107456423829337178827909758004734745703641544382382978751348101402798909509472607268742951321858657831979926870530910983304027291237839841550847701182535311923525875323139670564977327583925190171185528678702587878184030666775577379527709226543473778312334938092573288220759125887800989593309442716260517668713631448899311175942976977207112450431766347225471452979584234102639182996636687822352753656065423767099366191117549006575289022851472156542549590196964585090558657934397632141299256628225836045387551571523552247757257036966612300516952342650329283695560618660003336412474504967857016758920222639037872397476520474297555742893159004192349121583727669514756218315945900503004016447374180088854328630522896629852087861982023240024169047275493302361990903988610763901605451990201457008709762936919132921786295635889569977724612839002382416803777917089961171733669661100671595114024208216212454780205402806126922353490093875571112013690490301629589295585962014812807824620926706740452863823611025283664298403594573356249623227104318743323930630124003598873059147411592456260461115518551748589552054563008242254175418952764879327379679053950664849779651654063633935716614814695224027197914535721926749630007162155592556623649841435173263943308783493108846659738408740061315794623172521680238221781393140285668269446405942972841400375635883709886938492314072535109058276971014984977059821839095835670485351135587885501972021537408860103887588046163910516454269123291918085316907944254679561983610611234931508357967328898224091584735708531217717509885110712571658829300438294418324799205264569436360267989463495766624331196217408002990717860822788602750856712480001616162210153399262450303159512271942799866640988349484826010343591024374826969151839605536282862642456505627674129672112530670250258934290937875525487837732865837549221011820864091168336393637280865792342137901211205047738212051969492240551363017988665054016011272150787351109366077709125198793821395172503724819613184906261331788075436501426215185850063491620352930049054226424609923323058199762623012153547506317804563663210446968361488509959544201272758600943280566883126283331135077663874169863762037956522702997334629542667902803969859007383586123544105891886848424456468228820847517482538543943700700795426040638030458110995956713625857849036149436723429070110717311712510836389342861010061757631112113612869196480994758289358845849555952669063809096203500136712133211395790443420927329925496870925581622607463440533093595037600447235622526456423299218695856860726791262014935808586752123061612437856085253846674221423139247094207178746458493443136235253689797353756997037442114823122683417656388423933667047129960938593866044729995945793956024727773019521848852047611641714534504840554679078972853122991741266373163991210390995157827811171137862189284312601335530268229117740860482651495721319033774449748473708570381876731057327400199954204736783563946900759332993738989815329402104071802162209332998741765333576592956231677751999079511339185440768669375730774634169142414340412659568585377708542882968231101566704815677320880275528093775032510805127416047220376469730653258720942177473442030326520181662887743101411957466235579773728379786888832883639625904446954006616122483931650323336220939178699543777593263995902397584286662267731783556306096361892069352462797112973040716694961225257091397496841843237738288019825644759532053115497446371115504902979048082886015967755511416640169019174361958654791558412484849752606568367245803817786958967078179870650375490782376121209016448199956533935191015456157824275968472288618975714733799720575978353891157207565627091372616559049773316621997197192458947669834073262546775201658274757559186084027426148077160841270699096866572553205815231413549307215687210008244036158198643157415115824750520217732811868127390509277740685325502377384850640398347012777165385571434397758071545719677537671822200313770012682838955818033190415350241389823259104572648302588356417785447620433583809446452277465573161045107052214864112426332551523300594444678005725367265580728971892568512597953090709555676380840798794894993679195226946955213912243281130521777669026602520356379029020078800919271623486427432258624628672547066474508466863563748573589128013042441369937255384151395581651073558468895750713087476964165427480512512647656505762531691441947014855124068405394277153700102416510020880333685423195868276970554995526428104612327014499030371007892658065034308356893493884936587162537361612939669219703300992551902024774629054156522362683445826905840217817691888896243333682283739084486840317577429450337697160500781971228015241559066119328442507134390555887632907905312605442019829359695454507420043880977456609953646780540373271787786238151344379849258465759127589720985001058522667048325606151789938810574463101124834049512328127167830444368492402921556975846023725467499098805248892720785013196938199322229301950267619214518508241332307780440213663824988267081200176200449062827652102092729429242117915416807396345431661563441916407724542691233783169278758619077002858008357484282713856211283172676384593166263948947415768330655562276708995800764173636851799492784077723349647408075889683243106404157673500339973127458015780056727990261827393921876912657833546129758826578663709698373286360362051632450503885134175216876659899016818920828373311256892797975439458538944793956646736418690440151089154356307331942881314064590082203762201128318209469175108495662831569816787622431298651003542988774938965290061912517418184963293304318319816725013068618458128893768376606823949093132164597797593463910351797801444104071954717203688488885165615900162639532604428303090412644803437586097056118293382582656206301773815259684603680482211813931761899919845738925995838538358200769077284504660514315896003891283593401661315805942803158589792824721251313333237752636825014446564553034107395964366202997700255333740761505804808830816310550285701896231957216244451239317320213482026304802667761575120413494595753985233995545881469841576899717468193048539583207533971520455921758627319042028963210954728344076874283521801947605146591880901842788331440102817439051913286069653413874648560006343936070828339079232216817769877938176582555942563089873349684011048865645110120580286583182409667192571150065166184157373438400293696264642737174101217899278922753845083878777975836142739452117794459373281800141824229086290546507189141120996523119641715389132640183266140162533372394221327175206248351139049006856571663205453995722001594047507147305361171814268115541277527933755027269715186415318019460970735708661238732148278642182194098023751920026381002309368543052010973461799908788804036659585874301716579753822749852649525221504663771658879699215461948169768125697319946511284822084527242516835866006871796490398265263326666101436447771655826529634903536560673552377096434436485725453647317230688374838475662320378805805603526690289001450250085918559102221022708282879228199903983290341789680389921049864482597142289782019775243920081065004220584157968720817381802375919514000509004391446053408232962902290336769820848395066694949875951244273971543831061432600094964589696817381627780912754330092095941454425976566957091739781526870574401577821331005631384325669851460878845883067014421062938675873596407229342099092405735455142486625853537785715617504683034944373756830439720040233289765570187424036338320275451813342659073851279622021164477220199941113712365183590272690778989989868508030188287876739175422728002301442213241507660529504203719053898886155427900255717978542812713492570246587222309123609255760429794764519031136878692624577475610691966581195575309175304583731426373457941460309427206294531236263173023760113237633351312089240165580625172514630139325441949401007709559604628266537580621215233178976830681870205151604407720045628563255786164705698498243304885332707387376780509032585212331534525662888487646699648845506675021331901125012796647108777603388980085186934382865711023071912095986832893243477560195175174678531867447468842242621497519077298130657779329915345223811955860929866073208633439459381749486231445666637793353524310181941190740360931249696754062645559022888839511227706408385477604188418435071814486952566241680402042233212915640202270353257874053374813980465455748202293456196376202830406571697368640584943224471512739363468456219430245169888361139574214825079218610436581709521907918856805740320007854040079225833351635784384802935687875211585984224414110991244512213666509278010662362773296914135273925975680847327434957042202845764118243276104944087476409907948493696751135990392479961393996051807634424141380875697165541237092035630468488973594971537773152656887134014032987820675737131175791471004571128030272089839311346954459054889497458450126989572134518977735654252093819413389795945956004851733689119106877013930442848552158407636480223073856098012329952062767578444433874270946660994674133627910506246714692434731877989695280483403157133740454383421980805427907669764994554654914712150766184518993684034511605259111066584234139574351584349042229976948471769726419546402336394898376345599048841229189442358107472407120585530913870736146931757105749988937130122098951505505935473338452415465973399461307699965205456216297454807500297567793540782507489921925142181552035658177249705081403775724048123086091334860461599388866083124542191433384410578482177113857276781810980133502650733004646332097965199173554222180047555201602621305845239187547015107168668240732583625860036544297521088559855249274265623890369453387049393788138839254791808117278005292055953696495018474207947776258017333287159890667416707124949229732502185596012704283268465858426449641791540972056863622778223000322507235389920174025333436867049895200152737966247493706610779627024514580025148904123503838293212106536448664177576166192825637459390581853917896148163774306947985225078753893130277981717106595676616032279108541288644044836854187905500267380011352930883063922506661882780210034237263942357513387535454070201784650079256921696102335159881929305592772702636048183714676101560652280536802028734161846927034700353914166943131409451427985564000068959361104998252207485249534163453745606752883532162892728577705519369953729714734484713417086549574353070736505971965737628705794577555730263792379071709055867616639288323633039935721050108299820436513747052677510135757673262935419922441427653976975686938940003783485316627652867331912126248939186816139189570512869434977177233139977885693155415391915426500658533278142096406476412535150562161586201483476348553594186949064934892515095753308436521209265257318641467645518675761492577443717868291616129758244086824107555879374422414388298273641531004281173132610478066174589550953691556802903620617797788671690090765849286149279059975476209862078969580686320482829031575103106479129259833921852809454911397806408508067261992180732275311121411528867669877240060764290596889763152448027983158395375508481182258274588772752164726679995351123730732064778992827380369628624542859068778644930304299348476817740361659192906355978696619128557234791745981574605405616914135415099396780245734067153839664070878462418389659183205991004796554512164974560246232779348140418697989018758063898633110376829963535927118609846554568315003703993015899304527021916140547201027578233940884807028954874900143090257529816532093250855949020197387915055805208142661094333382295748822970720131590244987371710683741100211209555821282564524564862104282189581306530377774891178718418959505749843264473126457427299323112381504809073457348706807798159695831540229328911104198983808767837290288802230699707361740301063534260343935200701664897912892524022693308520646240989870211751009307767994813010485837254985870707370049989457324413270976850440870281158417473312989427059478793698162899278806166925840901490422047352396498015034530183457466130970219848507168867682501013142218293444912309543690301260321274514623033664741166639463576590268783371851501366755747975326579958848419677531308588501548232824689577288091055817994370554995665912513285593642841586698230427002170136614142515704854402079280005668158745543234402882072019838362133420627783500665134072382018622450696440376184455993468775847523561107195335217588711380804900350877265860870866359692453200317462149806603856028157522303197917845883522639485397442362311052353547032395177210731562089437760299650048665057993276237803632407612793647610775866657794214457057951028019766016865479189849036787804323125011497270997818747050069287102236594112386568010782623953589388768795987398608623548913317693159799303662057091500642120645925080020851039945399451213913243438083715911396752100828733040578542873968160029984224284408451393680245503448177935632785298368320508638927565013086317263927578603968245051980225223960322529296309868239754671606264690005854777268153799261385911099677448981722580986519679314336820757596392703700524288141274110547531361496402137725746894640664662733326318771183409879557257200960235930197106261623491941732485589883750233665680797665877490973066540069614417308347632252011974430035805533698161555782642449596052869614127097637483522317777316409333512005258912804260664298814806518977035285028877197221593638196749408167861538904321618366271191714912700661361334111416427580749114825843033008776194069279808142576979383670753660750181263621968336669483809622271525695442747212440755871646523525052146638332456691260309449262755186733943579451634847195978358205233910123601160843400951520631267190599454696169006095186964418106067490022013686424454945216229687589923566806941179571555110381854803597005849599389306212633654771456765297887129357211485978112755331864912592444976157619659999555895964141638969042938554473871650357286184748582965093191101709912297677860520593572176944062222409810329875020843192716072780084078181723441991040683329238259043685845787560301108710451848794065241480395941925606335569002969278351120599116664516899654392933476879274609290281915917743223203558111019634909838957056096402299856238396736837290870950164346596712500118158127369811596641833664315637291594341112136065111322742655952849416000894605626475325325311285002084670697019085666427526742916602643719793208709701606042311862490836985714833485222818040484229496512852729255871694811909513878805461257302225418226548148888965024719075162287505597187103514410350743123424950804669614685096755824297796013975984664220026909656730924677503982485689238084981604925442296147455725255866792250287884732190096011763632607575089211480303445105871388199250084902400830428338437558163276038197745492327887339322293730074809636341482790390446235414698653820987508956729584001140592877196047923566134888974029175250785413399245806978782125137698434488274613649542980337554822482598339754672802524542897697581027418101708330431280240074363175062630364484848436075779930417631930843376502576344133747884736750040601547060426889562802974363985649224335307706325660899538765350642323131316049150736240835863557695005027770852346830749232438195423645822348818185574815583245469591140432917030988719542530652893605003977807203614877255675789562123336746753839420966374315294498939698303412211239199946712623264811292900483945985336154965802805617901133634736995310116231388179141273506110176548416611033548026234114207738179981843141764673280972365214966505589135836660098928046409330417834524812164912347227621011821898563992919139737428763156168717144430969184626579058452048386875656156228872586352152998187715151997029123470608369925274819119900599246506933731252717242119073568873468667105333069152505311799278816726283677452319365511456363065444640051615856728138159179988832740687795065887091642944016764325926594935738624289782263213160572418145784169904949612841832009533410994785697515707499466434236710850872438266558636864166041221968693869288316825896876667510089053084565720690239418152105705703273448736023627238416706432637799296943167822447744744910122480373320989294974795406692326294691921687623499908223579814138939399500616824282840880948731355532992252393687656783696933026851750815179454077541782898054556089751582139689333817435804352028802940897851885937568215138267704668873198269608460594931192581704193173049966148254711042723624547266395154588976849311585168722636356033938012202544293129620295492238199721411958192788743410816386188783974497633759980127503417585585938049114301227554683434820804163618098094571454153174008257277415757198677353639729587027490982280874678311555620188176960955163100799929919425443161637954756447005132266412445747477603751836851121750095668144561370548366709763086234298566150635936052684349969277784731379557011105399228753596447575964173323163687946809242196390670446972954622803977765827148219491691116498453108938912515158678774045339943866192315566071917914533459491040392036601309993603567568682258054481568725522721132551010207714508025737010892041818740261338252420849042549979968255673911509848735308880357589236415292109100533043926670106144655610495228294768099484256472324121188378812810471337513955970943150209863846722980902714866207932552848959344134881849365633894668808887324571707140059512343229935509242660069469224308095398748480902001340628396454619199078041111682071094104708508004479976236992415395977618645273274663623701658842371044749617804009177706960621050661155440445424063416174281986069884711246284487656472058502469714994136938827461626047160141176680235766491439623511908622498737429360842565591611344936574340959716213218028300190007090186863823401986450366467286649373995748213702233529643597990668193346623372373670319464174138510094860179525177439241513830804909531317795382166235082161427258074761719100091777974848140354896250174977945874866508328693190197231606093381946711917579397314942087584423123713052865644632106315751028819986879866391103714402255436733829521423618729039449217012732280494196798574635494135356060613567632383346342470706585725781603308560400522687783831754003581381790481674567633924274611108579548048366299222933151716956498757151937307326428879775932495499385850090384431192157215087426539326816382269106369676239156168527010885337485068985314897635528849930999000779103117562585748275612342632039887537182327358894837426991951758144877262851697003460402973477049512602802367707872976010700546563502289172847112257461192821924756987137297578455899167605583511199959996019047198705474331742437508364072753736705680795329267273673745175530994285597922629396199007180075464977933410858960743198801665498878146094284672660115213544212894395956659048845443431065064996102588202649361613854261195036697060593816497577872304553392680071891121255266078912922624027308375395155821586230839814657440368491788622925052035367585847549286017301691256074318057517650876428968234429337285260058723948767073098294126048522434852565446728700212344934517496690601117434225178646077941323856952154335443785020298920355644210853042219121709859241790598339834498867828366942459212503141332758014090388625324871824139655781496313923854909319554730717133327374068612828420016216752154608164716959026065047466678166808625353885977255704425862459000244140381437680159514950737510407860303099827254996207734258664355695785235490699628779946881155284024655546934359312705495275342110200060267706266113591153003987702538916521207677477816122798894743998601459177392827367580328402496870839596595057706196430572177285038914608749201850519197510687198442944434891388537060369206944061279177573476175883676149224440727267745083120817807587207654452562083635220582565587473532526243587786388894928480248524736784542853465055455200456850196272149759281734247397613812064890908007335988260892611656084394685292300746466047514869268170226208684568181265344635033007886078136273846349016097700260824644319051645395033696016061304400013477537384267606559228438592571635691548344368535526846642523481884416769758595292105804810683904818873888943982620653999340227704661784349149007066525386552666834734051849830514087146609029552965006907303734285215647761718536313600552771351669514741067449633324071483772310132970780383804422348471256423687645774209004232180273355801348692931666867327827229976498487697906779721950331516769452776174955619866761619171423495801148403958244713590567239876512823122009180387339962825594038416707924441276927352054825436583873647596557378057812737784153433940920581953448840464932237152788656085069678950737719428879872275009918076177255589762528804996919637949218652196254897577563675208938301196656655540190718566813409715987391609247344133652101638582101801644705392303535005681450993114967838122481929158921419280613409333184509882485722713508239138545725120239335197583838778102264553611799806606868856468095939073745833631140147077310676290150358045316838299716001642570942946828519454576671913744197435758853115349642274908980196614991397323254488266735925613243838192751266102484335386806470720534600739752767904158260983461346064296741269432922164876645197321595268978711594370028118760276570683977706158433337259422773516070653482949455819200144048041050633237049739702612534765982258063545835363180552998511650450210699314516831588485739117644494513836819354573733553367168788115859019583697041955502675519629626809344921900228888701977194557867943210811053476714834110168908220785656747492277066400275886628158636290450086999446135401277822021100914972955069272334023909132723158703990816405684768598636966347001329092456986546039126121211006442649930170000103066739874942221584237421341028794214563192387222088367521561227033284187895394282346856845571362808751606833733870337170634911205605053858437527027200231624160320090334542021312294996372076517677101742794418529993542022064764712291618874105159888786211226447149396429724127726840142965950708613524097974173462103473547778712016190750301456201799185336356470361217696788797418277278879700219194783345053732215149103553685159858650311251317349373590762838766973439159063719642526029786564964134069841415137899128964112013016436142380725100020686259471741237927231689939720342766305835780151067860156759025127965385487721952552471975170628017828508708829317243085657158932505373004120176253899113431163733470571173762973269071109659964975839006645415717480593433617836875900859047789978599192148947994720546154331519102938771001524354115038419758245187445482441711359125876922785570283951675457526762346783051235848339531161626069059165537374875988998741709601198144065585174587250736181776789573820782327819481587616999537887573504625335660371641681796675376634741199075035340675907871070112023478141823756980762158773582884536074183425780490628418518147125973374012396249178909644044271448997925659796083335196960517665164696456866278380691966850216457797888406996792659997169593014069792011683245240068350733336983232437672401840708528811533617726843719947831613344998526556199176871335114173224510526014031130658944414091670522636288695823451624097153383957605191006766448992125434758459828809144106828732278948143457310805879847896219288948087627371622295895592210073535852241264644668304022895760466293999005899537148389027667432792664815182398591525531770800845992880326390651393055697750618044937376641809078087117590541835484188558247441554040488716245649241127597759599277978333174174922929149196648835520849523049280607957295186046800516355794177262061240929351937826799394729576503610685787858361094392368596933772871757327008471119233893504103142066587802068711162395624986861129005877469181265353700854676272586249953763984127242953733550756456677366408380430928133768894291245635777316079458101796817908740606313442878327595900538945694712699461753855290219485312673137772635238956195132368169484076916625452038187339347460775153775182490832640464509088105401745172347424982027400675162327988584097778047120164755260235861465537171220101779199589964336258371911079911373657286336631334434799070660216311400104443733197392812409492237103300999492650302976469034686146085164001449185159421964542686895650454344701040821810167461128094621142742989253161702922300282784863903605202481409267510250210467027272801873030976491823214975974297837318183693827010514372494893671407608677653389833986381383387753577575402777833768603200837465882118955478024514018371888141058428584751367134387546008584539453378805642794964445786260515694712717946717131831595650669857856178175658925907787768094511610162063294284629841628150954375713197897497770200344085673047536305598786706328096069321591775244184394591422140884054681100534973720807590256746450130289023867243249200288543051984043875734235995181263497091156693127071595862752504340479286934789340223260912383569362057204699109689276706846116196121795446540582040959520518558148643453580071051531300161181417878939457332059754885188644477947093375953183459143667584561938847670168374484288693671303938067970576715895599180694518536612760805813424844986982231554171272755773616387000525232509643511755122458925416541337518393831315844135907350177002207813451976123724493916467866425136848981188822250703909704524745794669117556727381159088888222218861770296610666931152369112818548269040791303699711675587727968118469852342111289009824341482798586405115411306455954820189555023520504529837328960727095107446503619427913930841741078537883757400122005720161165979876398467568854392272260986840844110685202743114015343313191184216942738834981647834084834997039489286775477375132785541025123522174525882538063701107762286527883138359923551930985336951661851913303523307650588449594206706567333903197055497629758315281431579407396622595174211027512179757476295576148154287574363689538026674125743490542061526606426518426853206006245815344330105771268350246488282127491215931694930691643939469582955414065812641311519736670015744072984872887032463536367149578697443259676608509216200104322911342658055155013303871479690096920740895820781243255234474190476244529915227638979337708830602656734652210567596496319946951950070790063314889617586877995155230324035560708580900580576826539812280295705882145183781525163062562275803438459417005313518972904937951307064618923869815368960393009169193685483516138211737029974214961799817310048721345462662368975290913948435174342779885036970717798065923153420022896597336047660624513186672224154821494472026572311200850974334805594954459837219832547160403435028867311061431051640051768819992858321206271162781970785865504736568389783126633381780515161402740583052334447708272067468230327279112992816684525633415251774358199894324071320041950198646568769915045663169638049555313844884831472649861595073693746787851894316620015742338340124249186907122950384184106144001215700078044815656010842086868274147498508108918653868336853687772304559500103509970579464741619910291710086633883964248189722594883948161575871228523308209982639525850280088041671553480219718678074743862790992181457109475332492118814937117692391765770319814710199171891864511081396188081362540806825130868690450837609057828940254118156408213649366217626525205631959828077881683244240594945509107353594999449446738516538098144102669021374102523708900264411345887234883321393879858151415879327994396122963502953469417613387821755991783364070200913951792841532924066106411137383729531911195809881609361090023623398258196586931266995820789454713348400366269104466646325695564109212932818173906695890390914676147389998113936458744154604475815368899976215631779701241480464290418735187421512562177067279059463144404485010576975158988054332737445814803348439976149678793422679704493335032391505418610711665537213445598468453042985972891181364196473182378086580985278262450613256167560188956313795670957131423949318129110505193385100747799596382821646606063380303517881056184169506730294222494626055802195707420530186213347571418028421494373819473930978297507978584410236733761193739539351981736102568131490420394135262145175185354753715422802870634977598741312691150523979106893236582057153658966583954198669380985110321931292512967231256776352134594066040747128394615926252967414794683197674697086249923119456894336267249316511452956310243154526402831387780960098018159335973302457844433595258557988400630314788606203745622406277081122364601555982810621680434179073596224903392066068912165563008636628934393278108006581322546030357624257990672936190858767253556556689199162078166462533116840899987298019227025593477184181629014776521684944636915588425063480175463856457643978629285514281146133563596917398621648229873487084808618091913926200804770232582243937258386624757843634975342488175099754721433016394602951115954789743497785202258726078169554404428055602255575974637897611721294723672211534668192567572090965558361789902996408819849115478857853056621901016823167603069867232852924775613964981194388128460373692642075922584629695832122756217532563605963212089151309022966470921053885261414448104164073764417582775966354194239847305214390099065847110117617401801419389163845001190381610990361802380077974126218721496801068976497945245275156163218041267614256096256781755788857611013106722213079246102404711046650638635228244058409793776543469496536850329950975509608751548923524737098743692582528982091047115335783349857336733077921828558429079866753838226899064999797852508300343262298223838490578605318255692934012725112384998856882287337921857914913777315096956492370912459326060743940001597152177603142958887360735977084156500354917933533042586562285337072737282300242518392356741437383380339584228617081351326750895899917629138575482980650586033137135569667847676463791134893489047579294428121268260562844113894119276151213904338130866773034764647210511063637951896615758521818756896471880919253406805008590605935970298398236937823460336281830651471179341504474890237272170902589700116265009877628401815663714938588272572971732197382142357796774940760461369953031434834827454339868798932808556210888732531762577677543118370488901987156333876156719308795628279046045912186611157874990034693843348399163209596388998522022432594447145017414700430930642958391281017598862251922197579611120777051115665186143853085834663812997333217289655716167509527387966722622429705358372470929173156425298159108146792140147322971039190108265422614195750495764443160596320885162397031523700050425417323628558594704185222822950330517064572159045359017699242845014931122714318506855031020586312590650447906704741659477079141262899946108326075422639547412094732679456439049078448979174688668298256678815217805331498430268222572450865779860365722952039782832746352653335158973069769414048513423908604086271165335334368165685255250599732517839449069688170876593130077936536330677666301532171164741016903221519102255621692881930048001119147394635863601892200517742516017432498987812766686627400163125102058198740209618960017929581231126229036885390597319211685475094217515738154541588626635679832747516891039959991088311620867917115219735000557785003903074172563660239258899742206510851309161574232401817554569072770116403787012253213622535011552017404614552056578307847579831736696435864096333956630692675658550820981504697074879248552274177692350818936787657098916232941822224814490307001050186908177178352497208997352717596959465476631969973476956443648259321780607212014695549988824602309514882234408678534856089820636252113032620648068063879935939843664528229576335068855048255762898693126915095759473251363831294662679017482296733557824742101159623248007490192594157069933944386852943821972053980034527183252971300376048015155622484639370219435182398528313270153231637293200793280199642647732145016859076212998052069531176431498795028615144485238097018685836389104232230681040524660064207662386143162532857605710040124302778732054606729698987442256821204983796600919072608673368860731087866860594995681276321502757467880227233743573346392619898948721406100679880418400687430295680215520275725985817501818881526606479818336913770261011275357914708167914024115322195601705452169254689980447490045463094308835609993124452898338586101582311842697564389902554381083959001896954760110067427054105415693872778802931507738110911091496225157099346122696047012909129612856157200140788739269323706859312043156555790509596143497269078860270307858284387995980677493285706148832640397972664291278147966229831033875591710325308147990830341209013719381844790540586231313624460770268867645548184866674901250878460213833124402645713651493962199351926034381878421942916247563687906687485317145834344144178393162590031270882005235220941714559034297020393919750259201725381771555055909008939316603852844531649179790384745126182369963145127548417464532986683661515691508338834344981822453237787224467316181435296186282092845078512858334645292725336488684883123592216914351010985271463032453215556760419935677669468339132296350310433967400466323502875078409662491635049432211509093357589145025219516759596466059943617494608834219119791185220865915871437063696385618478307446742687634027277623446355521600126411880173754187550919283547615758723799934069128178550068082396784094873808832521271553760543431618251646352968995057872344463948427316212640672542728841664218880301672798062480388206682849468797241997333513911223681693398385821304434666611539897618501793131251654895443107867800837099480914087020904215318727364986755722250423992563545564505245794310408315053047791767814598136815480584410604334110250187168116622954559517815557176831712146762182973402146847806423169864286017047664658949260384967101949261731477667135366505233963262566882282460481214832055306828602292603047272796360547648769024984111944437953739199435298720475101978351818731729359080139202423799514017102777531417291380939467169171172341968757269468129896229469409099150725106408693616624676276293224844021657332434154495673469771406719627375100984830255197035423395271438017016872770046196433980881143359001744442577914459851133172597298510111721933599710070698573446762453122680444694553703341172239004490709595950554394470275452065253031658200596502619763931406938636746473829696125692923386646459398622186523353883379581246910228549002027180013222744595256585697979480102340469370931395827748913051590458435506894530078114030687320826132363813930392015827649570445100780388934969112285146423123386772868241355758355859075468752921884590178234995660509810817544420355428569013951546433106246336139968016338940050332790475703521668762799588348281979447719873687306077083124398512268944668497844389114908192910594064961031259092833603025893849639047241393820537540531830336789915650770637277495409598657422115473291405840380532405826257725921852867672132904070301126291847643713904754864537872111777881509555533151157284551632183295632045470296669026835714025790176747576749511840984958965729930087919540506231192706746981467018376329912330012435368936392526891197291234250495564805327844150222498697614601135478425692137079091802695816440295436512862129897820175477224359041173876646443888620082323120218675037105185455384991005466585671031370933672303811844779647266193373198684271495769906864913620708215814094826869144339957846372282863371459643184938851529395987916405021182517248994514565178342393017562262371216137129737832677742240781059754590389170343253559717632798872371671978699544319445449164251580176792345581351469135298884016766713392595573584296921310236900665348870745724272026283061955975723447906789533300673882903146250598897611420610520735964111290285449270445303915663848355978608759759046775539481855846813176835524424611915263086194609898696546078674487815896285250429185382973063096901245540316869559644546390277698773287222180369625758621649386190342078641332261633891336883082412237268750317524604861021654521261328771279417160364035393126183895360943094116202400258200369685674643111830089614648096205864593353430381516216761172977949426449213470531168989413677941501939793019135651201348800538944839149472325784417912844117406453690151512015565233258961059640282328224329727271341941163484531599607657231563421688428990372467587781087069127854654824866779815559875019445313818986317128204209066186580101847405538215192842004086701048399903260240498441413915059856972415721177025956275756332188879977937434699373899860914205990222731544540775894193594600722767971587255963259586376111045178887963086269582988680649592944126960868467254189660470930960389968496541833042279180422386615165303716236597169650677838027691466286272246694036593920094355494203181613178428342039137757377016080967033261903947272120067023428895666650203757837940181187578454320209041635041723854164479659224305739586475224452148724544211853925750074586863228569049636096155939926973687396623071099317065222502243128186260630885242911473661985640401182021432399319652466961212331695040060054852526510296691502164633428861260160837478670227253348895956721425446685075847863447592074901946041824359148466135829983319355752252206825807985812263332666929043072317601091262234449162938317502614384668338492940338141694265033914003542467379344707124046906240718819337170036566111972467935561924079600059225685203639946310048292557986804569039068160553046620260461279892143944247264537803245453024746475104631813540897042610191885759802825089158360395230840625831896896579144987043906643876323111972104151667446569569078278301666438071339271381895536017337929916248142006731514321695076531922599342262158415899578411971962473138107229128273478166126544722034605706001409260233932823149909990170237905096425248700255152288120545868517080054802720023988476089742311148849218337481567938277142766553038067494865127374991125927914021714540784690242420183476374360278299263642628291063116673280901356097624355464275329116658217722355601336926235521191647278321320525033892179235923709419829166807172872741071486836270300181105072090367474334034247752843018458186638769281796878507333880727225559700236313177173204037243546724483845943481832818767822222458941817455439220639298730825185472481189587799375412970761641952274478190938229430708348975142072468834402955403846294392846931880450021211068108409064139090151494286937772803874094843073995511263678193899946442886006337762548596014858667440542460685289061525797181546662532811024468763355160910562212273809548018541623173096344834999759814245738258477890877235752509586837413009979668522079002883951265831296951698974437766392545777582504425981866856651828250426730847752351397176587155403759263819243527219063127549081917843091626482164525263700709940684026662710845257185030877306495135647075160271040000315004621211730167312593844604028169840257812888023719937356804149322786000092184880398103054701025397634631261301017028558352857609211591511400923093141848404902885521761370937486115497890312437520913302097515231622317452732286351793267455442496211869835336355755741220976079156546099568013390536161275249581490902939214938311781217359707467752212983013075975047906635891076366912329270193600885072591478566019949103108129266729503705516409341483003593776676934105364903311805733533851007240646131232136142510209574193989811940164750713296384080354959206493093845935629494748513175252207945718954276876504916681830930776269004347318909294948523757781999658207572777282717464126564561646138367408068256495275141940600379171742789369045917900749531248555511097439070161864226028531586283582477462531765721712647873625885154274191061935285343998031351636746752265255123001368522047972752765390091087380285844328288718065191332013880321092520093409466265430645061294081271645227043754889782342940555318620950740219652086202631448359043043939764344562902758930442391051164391442097760655713846176819265050192808286352018961590374651888862502255982620515626211953845297282194178447195918125382730539314211531155039872063326942203024246214860779832481347986985858112471558927884816052024528138422739484579232039630644975057373086996517418887561995567668462363501975716537386449097201914593458543960368741727991401607841340110705145803292757699173268512060940773929765962584830707321264348608554125466237846241071122661325446313785019625120561113583759637342086441112371548238916889066575724902895323554499646355429943620967729792696787307550841836007328683306831774458702486692931287309007558636790352607075794829565738026517159351343022208002075424143399347742804152063973750608973546754010365514142722134610907989288797042145475587518212585064702677256988213771171385689808732918305177397297546181186012391306562606119618412484732851369720524592603686848031883085664630644643959550081926121829356929186161070440260487493627675586354872746890550052763269706936868583496298371145845384114192796173715080345848089361807859729241295149185914900531896856509009969994797643724670325106837890864956736781878797908801308452257797185477480075357345464267206399337593000842404428818925805411160437342856856365215240084911276118090970607120637341713660605290234275559829061269903322708418400425096876934407452330066308163126653471524904266919511692429069560995997665844598280549884691227299725369241578468585532849177121168327610986178057217340158742972674893674956329332461238892783439997522777508489300282680104876693695029743276073185659443358290766866519853681738277719189021969061397930278130459706822794310953418942950779203989915835477841455887480095013829057346624457464163780280559221024494683209948774316876861027382559381341045808233884278959738212624167320711378299370095214764588977093653837923603719450993484990589343845249598050205059753117249244086458739671051812420797665878585959984046097412506429214583642532753975897097893525388817543254115527258010183695475754600047368956263426295524698353304020947364788397422564110031260978227298936612983438944670992156552215097825527956762216803688672289641016089437147155172370889773936229895299200685680180997889588715048006975779601695268959697520069280343288185850490078409845596058082050805099163798973414604873924420649152974790534864457187130776420933688997890362839535605552405428654353510329367744036046921573010262209811619787615975251943380285265927647058055344453330484653607817984087907417375005098251259727347812788858902007638390257947658386158452406549170656606675921179421598455500282684794137595787553913694468424068552794123802839789252337453426479857051271313283994576563411445786635951005291848932929847156364910609337641173919825272857765118077285549333406333179921508022489431249883205468132584167766593764713037967544307682447412696776398171896935263843416993923726228053898366610917463405374089132238857135361665474077457379864883371101139814183497019992003624686775683142982943015492662912207520763353711610406361450198237308362128990253659957654224671286547108385538579268854763099500874125217032516091836393759860098156061457453956292072053302275533112182079428604402977980358057747376987551943128606530584897563150322936444768977360013573793127027023270348073067842873906145002250725097436244113374812482634390232709680198311523026426793149477314763390858750004154471777553511056001540099982887330905325510811700223585105635480771542219441322572445017138916465195137110958964695088114162789495519346967190352346986674802133873259930616955595358227461367087194568629892728081365340759969975395415716000430410462912087711215855852211311420726583187982945951239858242080037700842631799213389247176133616496071735538085568230391263014315830622952922780252879738304311851003742587469743688559486562824908320332113812056183843712852928374979087004797752104296677302291116688412176655236082692660942111383433443415355384488569582848738994780618830110779300143964808622779540646852429373803740886933918002329443795012673828462427869371850402430250189373467095677248245247744841044254503331786055076867415776667049161348570588847480955410088492580790647695877206780649553477818071920626874567973532838343281620161979179827134501354583658299058792087644119454439252731924645017054462203856925428755637713840398665305941394561063411607179989534525537911642402430161747090178693533906353814726979742226762056080472968389071179723788622380050509335909441257544130888930210402773392799624265083215205419704706257571075428135557602322686115091450795742028924105711015260787103881158688464818111031648048462817140031510669858881395954378754439828407543875151672502542915552385599834403111808650680288146430159826650309299364817028046959328193889604451918166360617823796054103866277040097573881959658809190624058580593823940842736985670886615456064596878369744788289026659533025385063248424459769727496002758783019395863302172680418886530111654236194731582573931251217976803598146486955530038877007382871366905374746730976550996152189108616889533483130899881190764194499494046256700624524594462722964273278652172382982639516188286877192901844512260898273276920900340260383067955783504425209495681311361438573651322019958195352785784928686331907045617664476024472713432975188150491934712991142224404483245856768038458763473073587544374406274798688873421955361407562032243658599263915706623881142268415508555750750087861678405737591977161747737094726176116865120870845203277769349592761288685678123938766500268242392172138331055646638168757234510600663791543925394492882594893743440571909040921361901186247568798291445876550684606629648270112296541557858688359251959678226209331175744899379833412197711727462072861057035418581950554628782965015196500250274411528235596764182774576797459400924562961258383052934425799980337793957340165521263358896417286653045966175470941355413225255163538218962737976772848857819592726004565625964179112556943562908357227422928684392115163517831083984953873488663130175326787632471777539136221810435579468610081843469818586923034325167650780617182950537984549199770063371445724398013459642704566830267319864761504583277457456717901744215456967525968199026734882490353961657668544588564452272254510679023783847518437389610989034051148209760564856797241272734867539211443346164967406359618615786825422668852145857042987034215938614615866175687047100749104644855029178760263507965473905767052631321805111778573285688418935102371978360126125830027846728273363577751201219153985990547523646180095854757325380794065626034097692939207188041248235323921256906832429311266113269974057935657965895541533328392338462144493346050042650873396703958140178499959430038701275182254568126698102639260853109116222816292827711429530212838477568713535733142208818144192788299138479893515429346559484625640645248621171663961150992026054194572051320073250794725177154091711315213785225166895081241106865152775007343229487219136391570035879258702615558960320288682884161314816364921503007901224882597888700299758304604871799547857807513453470735746331271804834063427950831748016779849089958666722016351283035882191331731780923333940796492273428030877485417518055737491195607576628049437266890889934536107945414704447298412130307756753284159128115778403678348234043912009357891045539088424675903621095206180545240371899957111554545932132696789230663020353160381952807060774947860406936205091851098596743627565273311460994540069204313355669741191026169202033825058190549487326203355505499567474353549456807896730099365398770746634339994976069085802133130191170243759392465582480966739677338258686052005118479776339864069412779865973268751995409295710105829752084806998040697892550578065117764640731898924825538210999688804652603491526391840985813902458394699723848158528426751330696812860750186236285244607316287283461326318526573729868446594060130017183395670767416843160887861535019558858255463923930076435815781946094153647720313268983453897027846837263997136556381786126269578843489537364924325337487615633013792298276871361180708102692964790835566973838791178634116442965156748763980992634894563605375065711836078906469234618587297043775904005079768726847837505910174438380219702247337299982119390077320281288445272340969404892838817332979971841548023406467973179341359195165915682093928034072517706822630923078615897828937748069744922386323231634420381157390699079867361544082587672166378334930849041697933575201964350393817243595267501188173052519000160472570296971597747686382692366418050545473132404491712102473377833755968521092365218925069891264144182099183596499668155635564069533542458394935342680940259692720380804082886103093884170267153520565480510405417230807039198954040214033149235964120881679600681120249206962817860909307539401618893447232195125122548602150674348236767719471321873063319928020268351218599119851879793135782944989365335941799949005777253304052102469202977681899924529529804901732512372206014152288654647068940752583803549874820353319726904083345506757722706411675981586342173164256161058676002401610338966075196478296984996180839108476503903453923499735876749093805850073374718201092793757037909406684087695206789534188052442550896297184525843833701516646742743981481455452101295526375517843668001778683983260077985295436076989231388519586413432354875520869363001576021713853686836039138489625746210465078956799848976011535377742297258618874967025414754866155318238133858670004980543956536002931591427058472342956862433686720510228050022762077319336157237352319851844288112684808792481393387387432729985672476378480896874803258263316133953315832645139354635982471649332325804776589847447577438906914197157755200357694399691641488418031362210078670240570632584992459293412088488605108467448842187298424104098845384462321369368525703701316240220388203225737066867498527671089026652720107373132037049982710893794266038595132200569585043843416662823604761084309148198770488194414976699832130325449217562560602645137842394860449718748258448602541850310138165210543173278755829167927860031397469107185243083520228914185445987516452788882336686505986769845272044432714622323892340035804375457939898406177597685266437880067239110809056202683534328898693200461485584582772453781861451440612888070432239266508148694421473340448241509103568823072375823890264776368834735339321030196495821884230759545842363750787334444548184644486160845721910074826313913770796619022850877513121358181416203191648820730116411799021013997413952994129287052091147547542520792285463759483322952711150286573021169531317070093737057301971515216213416109619365614497737483691375356856049823803866339906801831354346817311627020432427796529272372196417096485292523965160853993687289644219836152882806091298766904273420504650638166795195266657743250280590511481933763348495160409800873220380156001464815207497603184895026578424455229164266497626430115305350005235206181313297489194652675944445851231792826706380239641250704133707167147453858978948128559379456182367448244041440458799844540013273156440156352902723010734075820326207045054316227053008879654892712018111288689235135984221932140338840161906649230047186217795788118518678049417654123476166269947866987579829281104470974564483504716496638532377553425855706797203105855006033772571078036714174132568059261605150020587394947427381836456803685219352669371847335174006512836533745064020104076745551456722754740727689301122155747091036473207867016276995700365763182734884097123958956818383827596848717339810433633649903964214302776725634074251229107256427797970415678931510424546042891235294200761572365495654940559883845621122504976288642923453462200985587882497086445773457812648985779208017210916509202487209758886648576031002955970680462755126851093416369727619179688360908808306963042278028703759177283760065165165640665664060459386189272531292610491726006238981611333316876218922140982447080248547021974424073304701994154588115561719562012192898904835537294589631009990315087125489585682546262181444423196179165535791648823838386931013967964563233794208787660833537792392342025102472960197691630303091658648641025561830445898672677134619349812124403064008020314665907603536674420739794816864029859215014520875031601450302136847500846746137244100871536723972935359960792264621327197350230817106276140263349531218384904443010792456102406941004989249298236934291886202907335356948677697344553936197453202771509224083777480252178288824106053763534503165254826019751591737898263798551891358487969973300121913813220433700256895245954734769603305986888165680579322633109226203498858841509155716029467573382621680356619718338169912229583288798278731798052996636273060555144477576532624432326653682492309732885224883127246984668583010471124379430034187698288657576824292917068405286953928737067439201496320418961886117045763872157295364242590635878067662099297042513057992224436764538050129498213537989919048209211051440229357686615195144121947427025566294494907224877908370161858188131785035313061665582605420997860592436191125196331374565905060437641100297196550610715172413692152133966598360468617890003732817087287699627463604141395169650746476935739107663831261463682705069898837581976848572885847917243554045917319825367068698847349614455135715773614470338110273994914394566099252282043596930665532386101179626390968768004798106035162968974178418565593395541277625246091875738949119404499592606402117869452407307314980173820499527484774326664397537994294618747444189083810148132360582534844356573319438670604714295404789868635291880856966310602575013917683316082138913861308061321348732319667117127761858439839589029113968824064153614016284343810407974449688459826212317289168173789928866788532184894337441340086103917848252374001574391107286438700897023405403254115384333270804339484517569672474155122597331480568001653058430727375008218930500900349073015680185593696014294054269445270370355772943930998369240013539183901725103794584240987368763886756004458682491665626845906503737142665687463710693917266026571867429286513857101046287944579816695875344306058381557255862917002281670028416459816293654334963595553314176435919675391498066253492203030612520476276070702867630076960544619533310520968955305912233240868982869797197418710439661289246168303087945850215736901055913930488610428513256225482724047402501559536234806841529098498127253844717593304005758010867878191571037062392748053714797916065025572298670312481643277402453592041148991051971496105014573407504975863002515815110565517162173147454814740430892058613803509484959228351293582086395950552635249546655451077098220321235187971717786413631940000865650871897356265173784970970033120499695543132181562321647699836757202106590219469778627682572775843748154029944237964737488243073272176104224593214910105977428999197326387815357893296152683619382032342115638455998783287552250042592345441797806165151740128427291180074250067787619917945585845654227309355318158076225488245223628182031440702124065154200634922113880675977698075782261502979652717855262910451877899461359775204006711903056086764735039703516544196711268356866803642582694829123876332036052333209980923364914536799633552123869410023562598284793847163168935955318942676641599933821863698414567610721906993999789705032762096912746859675778470592828884395551492399850816623510129787671346964301999564156567752878436143180800646783498668186170649530053080993415773137956112404905726434795199607410974888957636403474389836125421426089017107504778294637054141486217999572242979158171465847893715478327145099051682710134821628057680857557365026479973738349234844945300432276668231418993996906372759046258379217423344475680228019885638325387000415372846969048899712910251739547277964805917303167302005961081311170258244765208029612986847826466375357942190939727632750658237569323823625690798713130552548396812918696076800204495084037594488473420244450352968704367494014838233484781199541805659691948879988901161629934506392075827370699650657176015242418023698543162576274163423961291771582170927423466907793288623537474368563277632216256108753682263791828682522976883768607372882588724320610710162144657326985577594749909682716403286113087869079260031949196066885372529222897244501348678757290770625610094742974239764626869312992059383345540539772683682774154856468946718198907640938719974672421875708759189247670272179021318987174019195853387553560569599161617960761510719148396332923746799790239535210065074117496988181043046384216003223888557221997506665561121943741168877143776422715877653636756326026945334408190107234825101431098297110017928547121541132166329020468666240343255698535587812399744636743929991621209616896024397354398405788101409758565588973171705552582703416272814422737905303897238543396116151929992679481088746265127349857220983102425271796635354401250047146502351632070641263055051501541412379469878736548980952899169604455382137442126727025308467870898823438728126787756343636652249922829522208451781178526350149516956593922525923368499376673474121028473117022287580842314266947709875604128678529144981093064515998671049853352523340864460454191916350870505991716513622809632238874912059332521841839656655814164491748026206151034626658659672475998679520181114875302369184634795706448455620735703838850632063808598322642945955227924688449725439877222908370256984318195887818972084131406510365395846547507367735430229544982689547359981768565803435641635818552495973550687243846286095641149285077849922458918447566013458534336258803138366110253824456682303277998732699406231699755662511680617729771443176946601742112595531139504234199615766265947281234079196134712534263820849993451469830748083577213776215196373272544639560375795884605457679974832254261117306990836694822311562174907523522342006565032516326392499125685429778778208851774181613176094072727442681168999926454691703750357612068672929968888535216947747781635500297730746671322506275932641915591137893063351750346487502132627125759607996023498048892658132909367924915716149159824869821589584711491066526407793854143750267113304546673277319880074509571145409160724148070736337544145346763047480584904420379718484873419604711657742722852730561810713483571960210069130926077636961349606171411450009131222741187980140069761982690556955915721377738672458041358825643642346293535321668835693322382085105088921625187457308492518869930765590661219866276112254195397535835788499272433623264555087683616693542331191930858171379419882835217126219913398767011022893321057296178894676950718138398527749821175726363818583596156577772369213440040633581675367019248278888190003310285338200228962219094668827551862409117316659070310673540946701676547292861640028634436481368105098804274446615611580545339299737504294317363501031204657631475704855432592670465677760229654266812250747933041072805169594068593067287359910462223073395257580590816420884391442407236943479579322818152503670186476139863695408107368888269950273729442931163797859339269747755687956176600765386070493456518199938990150530779740456748650544760876096511027075310466017780134397388363109014075959796592830811143214560107855288103946829534433459377176261361825065537423627559557296779174982893062954033744542009569107414959128572324240559441875477906862994825626363182421134713063708228947459326729369981272113003028836105126030986002112424924312841673808131373963768954321949317603009609536173826849288708544772525124479059038119371366964076472881336582554838716359661554349792021631363735609821548838537439644271076820397024413941613680306793213269921992805316183853617263976047364157536550274974274195308445577488331554166433155308280328481035798682504947282401234216868115116439868957610080758235746219778576803640431472362447855708399705315096380779927984809259459371987120599122539053834536182446557823990935617198464290287725862857846031495856468060294540213542523156683787149192395576854566779471437865677844373145549438682878369109339475580458435648594597467726580233325678766891647186180150610365628292699916552129665671021204473171668882020866347053427179333191964527793826062365982321878365228039260520085135109122321197034257324994745541161000550552948688409387389063531188435080851408703160768710673859327951409117688871078642509357457333920936144118617269073441953117906823244351594299568491426532219827035049046010993207585760931951142008502840650260453107433790748888523687026682414363037137398098458147320027050917459519291898193221712475637144286716254722384169211491378322272217092472032104895139374910290575615953113811990164394842869991391755262006007890251333347006562390886142649456584382819113834005672774921912344747697506845007994503361881566165162174358572665567904190486739835817717267698291885142947072468010199777554167732823621646070355715594214177746755768082543471547207410387263365878219353400929402525696903267256791345563859435385027468928079262609115443984146160535165675749514985972233441992796403749664056149144121589151186699658279298496853324705226427751580988857548101455870948994340585624660788148432049188629954647185024768642821859724618504402537847263217804996739402492859551220471264193517337952279227258750747861327184026280433903032392290135563896101968841305350025685922125990953598918689658813308213535535936429295788038281619911243418148001241684149204059389198610256374819458404236329357817966087488425258817957575343326936650687377946378627122792208465747353058583575711560157692892382644333966752535084335623487330697984756572527090135737463339223481956760040439253189961242726476582257426190363377298856729081359294308417390892767145856847724602701740655768380990945108825091961278341675352533880296900395637029855517969089033833788562265003090219994366325362136903839080086391455364373165712277677475212510545789540694046061193234732591620533578840150649479620218604334747799629023216069556295586315380119677546130299497579766047748606406129395279831102252363887966238205965398603034909780475124322235106447090405621385162444157622515612592933561534301005331051845500049572487609396395540492565298926633849405846465154232101112848805663316135890445749288718301936638446456784051476102251031963237276496497594384658963394527086717626578565221106113867136761047194226935339132439925756075766319854136587550858340268141238399080871223876235521595791394806475325754630254536844542697962916901527864405762623239288768315954694147444522593580773130237835263921354334558946587343406229323780275666492686542437278961769178758818737837143885565739291347268059277126706282403303678016606746405841324636884874058552066476174297903723706635957309468748155034464759678776920754350068683242727250592788669407821295561063191519307639435137422899102192253372790407806751404928012605609038278158173719052040712055894510673373794879104236556675813935433215213845092623811273487865354551246751052078222122742545170927468948489832795559016905441998463823410353499491103870652480361806812967804208679919078078956944364562556233461721450514259556883517829603674760863112899466184190778617225478575689660393383025069706465515110108882636619327627245188193107196413833276692334073395230117093950743972034285095072814980668050688282278308542727417762574710938760027374430114808265083164273354751013434281035490499131968737449425834876964663396357575974598817010482619005991313512362052965426034468802273335562808787646942252611180973445444460047184221008852242811944029446158517361279831813205878233419288411666571768404755594139306680519958482665102670296492241161689844143222699790287299433059093183064465223255193264388916219089920375557425867263136017611620305435755603215943152447484722829690453912701164889773621327617416686373317976325920813216068069031442221054914609006345890424123081293287267982304800757747910461934686965714536276218961735136646165678914841834653413451134924606798376718860586166950092442505644433219811247299946216757264469743660447918704697728712876468860389948104004484551864626263482490519360102355513227546548027038335853487986608795978880654898734931872718268860043288270292238001407106656527925532598665324906531360855976407960972090420891720115507867115399096487171202962226855155268772940849640421422783882232460252352739004412204875240317700195611844610852316783900757483879505123462609606719507585577975354546321331319643062541496633323468867155686496603435538008466469424011726351953373920257308676826448387544759964197928561396970220871617838124745620972996030846456854773152662417939019103543777464404812728351891029119564423809496826749820786380902260161584737910748581412010004757338837573618449637037406339970851789584853087297548003005313161151652064964261090211207496310773478321937965444168759247453813701560377372476907262310343904751042553443042572695434499433760834666792822839240068120853387301985560750577276915713641774213535911565308783918597414779599635094980657734819450154332501307336465847946318307787527919773115182210567188702233859322365800983622777570236944294518234943060933000327079145552356991203550749131420452710229813203832916616425434629709640117374474774006785224951880310553738254918225142185327378024556545378894515457144176846630303145537852852325491647186581163153225199461629729233950746287241265816505285396173849742334257708768989766085296710352987675114434849469484877754230296965418740432951469075712745626271787025156540561025092572394997507537841772162209204089984259364750338360614584109909624790560790974564665479676845909758842803699083732331164175990408857048078652607557704327583860025366478236566255534159506674632937256245647682378125596211498297144850663051903268320725701615717215208379405697924062380963404274325752701799673375460246338819363775038510124038223548517334383930876138920408262027959449967011094045974854812722794070941973940824601727384904755998854996630432096804438778911705444514142547288846150411429505679763813250851910020600728898408176265299202094249233694406722242679657710518571402366813239973725632977028430045397639965293813032040632405580136992128143628549796256948423528695393772422237148041407505794049779985746524385049937563968017811627265306396953174959259907033576844690842993018038831283131464250113221985966216895038052647363117853686367201965704587301616540628508332638362690267352523848856409648240298938044701888276383478324933998726715558454939267517033207722811421698189169065327617582722244144682518271201600366196899000919797502180174654311757680107248498657199974210003756150824733174948899755833883402933231350025163041104549406080413436359854520642128900684435975785004046697948443306156850738217684599559758545217356028727055030275148871286585348462550691592933218553295737061418808904534897903095438337531026805970178229181752641636703895338669976660771946214644260505830927955063620733712534947602479050830495916235645277786398566055681844076141884122189270082504776725049084123625236466999860207314021897178085220452718414244887937149530296454678406341518324527252341415407597546087587145211429317685495295142605129588532525128408436432049944962556142836120832117082468249859322302561522233655004890070497229642153400772446446177675955088737636413046083186665704616645522897485005870200800645497738618135047259320036876777816201713090022118685217199611445860253703802525414062743375528997783636900067284861690746108873622654184346843568823573164811020519255004492518119702305138396281830409935302760838666106802539687624405702801698644770447396896224767791538606839559160813243154326007496057437136739950283606184612855900586890574298909135016191822292786065616408644901733459057534695308259513580518133423541770375465696115684719606236297929166511811702871769809007095153740505493036257472814740592737760905929155843977203924864727693592177923074784942365685299606404497369373816916990035571045396500202931851572393747388575260988902060877259699323465166289700879139615195946432641432027643161261328092471772002951231325821198038858577616864081102342234572234956680565992065316775422950620083637722594752743765769413495637727152766067307554450783083658637855301065248036506721103637903279135381809095780914025129627149516561127499094394176349117484515576178949730571576141351546369491583117630322839665687787453410418953942372874164015094140301382043271214062183169179878449231374915577447590617408517989871944372774971007339904529792529047022637105423962721968857063438589814494565192133095357710447284551940567232976250174260147896361076101004400624938388598160160389424916014641748914733274994691952728921736833694837413884052974437750157471588208013152448569892430508032317975973268255605248919257458710414497032330793205227888429050462054194788496138542570864308981713296534424725285723395656546709863464797734614138903533612628467373341708568459216008833061196083310706037080882928120379339750021308088054105707392264032770165293498014662091491323673464588233097163789832246077857570121815372465889729859754959285691821026964952443011864095781902042188431970502075323231711385773323629357614977858142893186753530103684727133855987370924374422148344952402716623703242210498776539509864373704359866953987064134688240027830872436985199081176637986560359552388733296233388747740451127204199698812363356304856282921518811965310109050374929566412120141450497587655944610926774481824748272483781878125933792231906932153284886954106383445556495311389962959170095734038014634176231613370528324780800993732521592324502519441538915305182120549287665359638926521909266575451331747521073065508828508629989559642117015803923375587340852673856940516510783616675510974032086481764987908827603044947857295274573959612339674063384579574580487034006890255172668993190089929246514921323404215647916061143584411769921175915927848781182594581832326321991685618950604599156473848274383086523233660772031421470098400407987910811358419020707437295912668371124165970887578328597749992651136669794956814139539985930324013247437508026909979653318769865610724599108572716073667201571639581134470316595794030185811753978196265313419596838463609162930390322727556850595489375959897832496220954786600987161263627072103631162869718688826839414193330890530421181630083528267273386857867912462192472044464646511882159686316674952920970311245633753450537760910891448196789931677423688898105330560250278623805613788783878410893697050023913876686303080495443885000417456907170385781866735311373738098563475466076859202382247050150676205195258072103445060041896180668461934503795926266741663656766568470692787167825896079779800809648751027895267431002954300484195453100778148946939961146230352172550671277540560285971590514353584824400322286256324131148095307907186850796158417428028844932951199564545872891997530438775705705853170977726776375709279337893039241222055424050501476710139457298475416102963199613359628762979471551867888114466393111089008988106242225224055410558734182577376857433364373165385104749064354642885712078137010553925068209326772176712072916653766806827398946111489267479166313945744155293770013533959850034032535698296016022061600755315403687097630812479309156580425248397969447852490731619806587342508284706217145383232143342504466570618475318672381929156137920913727120206896420965716808698238532629520038540814753792756256641777397402969078235564617129757670312031523274963582003860047335529087640991382469817739952509491542132441282947049264111460174176333895622182010906705772673809973354607707975579322317788604564657344402314625142631671388020969559405053554155957008703414992043632958853879394883055892307049904997956884704505554645024880830521491180203047112748038936287734339439788514637285310006570338112739138336616101345254506067054052755859735280276281871001176918648123427327808120366611904156134598775625993736212507253696593877364008005448657552902008046173238187034160120514511175655764210141912994045716864450795761942096907252144382316416316301110366206403724439319068240905736477165857883997199235748698557547738850665689934849975706982872534250763820473078515426351714180852926794585013596437287034097489431216701245379680143553960815600825430724837899246042964425053254133697725826595021853114174786935788665311861126009981972576331805476952364635596940912973753060171302670763201955430578740401243879217520302543350185811430533425594381193218010816127138757118920665652455193835055566515092383126997362209331497782099344312421732699867479820098367485655077948198061636407495469839208154265943447228475895394522512997193491577336493482863742526711949567395748264317481006988455716570721594272147221479955798239628180210459842016395843922930553959667756099135564983455872027908302794237200404320224593266789441605589740492213499895498516058709688051779312600100928592759492757025067187123587533365583460648050824691083888249165555425858238740092641155980798666855073973036786462562675799661932599000535292508868215095030907281789931891526906030506520906896164177526295950778030957215395689526321030576296974847138183100959559832847798576691423503020684157626225412284950615022699332612604657518586500730007633899856502834508811645504718991727880972804750149759381926111103835122954787660345622247708492760831265736120422516423045401121499769440705400010218891636301298747601841208344407311430043380297851869564325361973315597378030798568615451379064762664357193201959733507408968567836444156776973726566091008302143874678863477766184900772266406682286624457314882639642948913769641326941034792918712407046423055813709178205620172221238057476104531876148614625460119326389100849819115800504462988988451234755829773126914345696047175599805495123273620230215550781753593796028123659050510796478970799665577873093621762676859486984103829799894874700565422005513363191877991631870338498293051225093842698320239437408393256790448404011106098762182276138219644927359295389707711405026205828484335840724671560290761599560818844848865251983722847706377733993943873324231485675172095221927173637124426404099091296118425895402400876286686409353451127867389387582580599107735191605011106024487562621747021507764681262326293062788051880329545180514166435285005815287667799222427162947622897667964528869078244160348390784884583889177139504692099526784509470481822300771429082250294956918673562145169393164092901430481261858689070372008517241124299907063546451897031207967705456199809091327492009179286163895171677065543320286355889153777661062584374672393960210637946033221793148007412627239915407065257012565765335286718307954839767239920943217901758077870873146174236063819211488416967588900774412495235570468179828570817138041888939856047549042539140746085627898925299415287573538972938312511064483454713035222000264416039809125132232175849340364406413917529459576228757472504377370328646953944834451736405862741215803463131502321623666381333703585062203502512036886045223145776900231494622403336874952989781100424011607810240392474232605210433252637936542044904088433473147872109662954447902581773723923109367764531048466604518309304337711166866177347542939156015690343175353798374587960661749351603819282770728072218204745785889213091309291879804407761355421855564724522684234818639213112557856606571166595648811393231159734735603324198874791255781156393722845851141751424164994442207918036888087665594413466441823810049349763292990365313246251222243803950692165798910425134015122860924795859996018092739838479194419296113008392084187163000300308301779534311964308224732397454175870730734501135286876202612873940253262425071193610525309425680681011019128851402917659352281843328571646203944026475173118369256064075941595836833451044099020033872962465296693281850047145203776347010849505546942481159743593519581141658683298406433720200790397728235619039253835900093001250465111846827478292264832749342941919058076628156164563055085742638912095313013061445777867286617859895826244559922645546684193948808927916088412398030090196274796769034201872146767623286670356334585245881012411986229192355756287592289630801253428736118769051457533001217075750028946990564199828493517688766695780493016059504178464226921145509137190321261345813001776410302711886479281110998568730234732990384655032834389334895346146135189930763783679670023537131460313082702340996580672974800774943246428768262380598976618627675639971275722789699829768162167236613557140699875722019525814039276727448719694158764300731945964123529717914494041436858375753213620791560712625181683524551041609107969862443096663673831369982858280904646533326793087043578396479504291961668862781960455004877343762576672026821296519792924194264732066959776674825427008057700414923342910789013721942319802583023588974685467055174805648655256237354709209131482148032695846735971325175330122943931443293714958490508172589107505015795557946524724136279852678849215027438544986381923604328924924995831707273477786910010412125058692170789755163856814873663915219439255444026107036010619015193073372937639505036959419209159609857611716536910556082242291389575158436103933266877181261967141512806954293694949773463735831555267378427775679339018905515199920370964765260555456260442660329466028278631426545709223334853904801446880176362001547249286006524194369214603727050455509517845750422779797878823538297288126227797786794297700597687992744207405644489372181125212754626990280672660567520416665330695944048753589302875918995086476469200252917320672426873102996399079754759921964685534410368013335340755657698581860065535784484020474752081987891904575316789616714107584933463808449952788964290641315438169701001025267265620069456793159165736333867638230554677663873870048629641640578239112813256704970460266860796156864209015932649459064837832437904477452757005084803422921799750329357904164258816938546921087870966817815230995535386241579458541891206576453632067420743688020893556967223335917600560545570817746182323156977492163817374779489723637524280293014846501099800332807593664425960818917081890366812067875849342753396119589454051313770975064379034042000196713653202451665547352867385992764229699262354852129617119507288550277668597342248648160065434714088608490413782301514651805927272358031132447121757503981725437249918256818257914482596414637425107088526240208206586471601130564346819954443279897134345551456776415254293643450483813347081886102603064936377102455953010737281459754106707601242262094604397410690703926722463011631136961341103912802128268532648330889005305919240387887102751106262394578511585280442598280135944443624739725131593010646719297417270677638887021884413211342957504447254573972035695664280946698600235634736115106232540459833323354406766841056938667233428757120185941142052249559770720486253415183634529409413331936138461008802320739607829167213107516705888274859368387392030855816195420941004699432429375126287885727744375134228853262649958446867347675339182935242342745857158859928733750123409701853350425897768021187770010713346447314410877845919847247250877471182675677145916005786552329161160884377796360731713621925811482030876441222251182929938958649063146080555628672359564977970777286495032501268470783831882673486962339774145425983893920806252061297612842599198570409816749272956471549777551438217966531428611251642785940683280380267026404512900722445021169666347144696734315342611971157196612791940469217980391822299833940357448274637104792857596544679707269197770982330497149617452725309765296394441152680196431419803235951491070226592195704624911051583325916518476804204293329811703493452782003291659029512149239090531176885956437816552816084803065816265624911559896696847922271367311403806065331973451853987629676273989195234735385920785219563305990449181833278682153535834897427308687295903225934655490683114714709666874419979345992473124299165854730259299766364783480325194016227781991804724648310176504723692829437570358695421823161650827067891689269920879615514483035716846498134813008746185854568338056470305286815835695594303395863213807435173437594079037027232151929862835239795433937139385248695342320854800046105729084795252932551946519398708021604165972154409728044685954538750171506153231127865951930142114087931798470229060816816410849732805378886246252276723021638270024457037332160176257803132053461789079973362649626438812576170426718219804870654915471898545788928869878099015379280613024872416563241174694708116490786601289904353835117036437004538023140946862448085826670847515496555885063261474925419779854979661223743237142302007086326314936219406361683780587162762385098620655303435381033669176451209220042154086823734799058960081760408627050128321843080256629799828508851886937828432453881076209169044791422266910785198723779996684751417071340784928647487399611080574897247300078726085854921753689737729550268070798170189080775558189548551009248786550772409080314961201489357395994320515492734762803412528902899372427075435158020758028525309010401946630819223180226753711227038066072867349594715210369752967427787803795146054112651996235986815705517257887464140807271497891392513345994246294700191995088914881742460884438926284409828736437457681119995215488259999951108010671469400458296499261600938995481604294137883288817202396822697603123484018047670219306981042599695858273716407973325543105976461005355522717542457623641866616655547158823322447949537778421857692097047115103664024317600928879822300337295698350894470199471907161499693756052913136064323962286084394448131296547574584701499304603795306925923813602767246809002840035228293039402048088812555398624187113865980944794734700989675883036028074690598400656126872951611869147887698045162348348597600501147906123271699782032358372497058278131903526491667899179659492987544352987891188347306279476536347197791359847966399013944672114641476252750529723371028863764205954252719911205937012147472167979266730781089063035844981505482686975519235493296445537866269440852668952477677084032235312634483111554480435838181574021019000953382608747184744551934210343714342340192951524735411352037326155528125152365059278599110416808229731161592970687069140837945573206420926167627748040404495190256681237091109279822813053481569006326609849796100487569781008663477644588782326277594276100662552114862971874150128055161717544113379436776519781413913057661321373226683513284137946365686180449776948175191802241613522640403245123310403251083557885616920457462934841805013571559168632034291863970445043001927305293197351192566582667922248064196371254872224388354079465389643405220056838024157635713417136435402275776038370912964532787616662157734495902253022421707614394623415940128377067608947900536497809835048823127350792520266963158355769009888328469165520855219017049892925002362391960238878481405760248986023182348918765026161820974601876070490853201765813833070582122540508156194005006588974285326251746825490597185090107906946355302408280373801416389203269400229935441084445843008178550354837383932155754166400174255718237956536600830302729301719804424244305963334040440705501390427371176985569344840996564702145096651147405432436963513656845810728828264472654586295028575331477951590434460709799358205840438163808205799852429638124514263556432543881010520737929372862240179459329218927631934629567831241568457212232545617826416564574182531109123602415772013828025674431641988568318326767518301926279783702194895127189721046621478740207304383447029218220496683628439179306902180653349384203290396903805717195901139219888751141167939534056361198828706528741675060419516960004069130777127007625251445556771088658320185506481940151827249135273087411158670834569858232189357897317244039549775485384522770680334024252312156724440095623813091105174519784311679173484644813420674149877682147507057588565573176471371409564279744463151672354919362256115896719686254931663892013841800588352297405373739633188226943020050163290378793571883585631353708059690187220236523592663834727421640784260773345876734559134643546621995082393743973039425579885303496670682928516898755536415542559678786739932700300147640295661676464860368842004618415588982501246121258385946059079922148343107604806451718412942157230411144215703114579212990075817569998617540831410375211032849613493943507766083294680657892061438343868631512722124532440981659863103348662455642460275862709963543211095002604054921599589907591405855533411956913735049885476401881421854290487620162763827045490694931227258848103853053865405344654539741081025209334821947405008808242127099408227301168584749983558106240052751574963641364889039350871393435082166096623654703254226558268114986061786808494430086126604519385308287260298941107327322709006398630898926732221541611820171977448883158793470184146519174815389938769568675352824277504804447183079920335415301480512588429605681386063711105484550718707613934652447170780819627356079302966594309170054796577637137835963224961625679536891997614582275921010381192956677973702809488578703874079486151672919889330815258730123708014490025627600955219789872591973823982906062712311559770912018809947958504110213896707599913685553448098380950967396197800847529732923440621224892954562449417611903207262179676166315431980791149180543482812236220064898250545826459471576041336072535400474116134835353283623340311845865281225951823973219248552442992055527947742046199530475128660076103915530663753441529835035620464574072536736160161440161800223880100134598904010150162181008284634920840464511392697015134101884948960407151003711374686430123148348060477995172492664037950214796454693382622520120963045636697217600801334849869162853795068285420853426582294903398172058066525423548445616690484168255514082031922053849842854285200386800778425480897674177027901738277266222655058450279886688584839301586011130006935067558420918422266591231938271661851202232717577733689482117633129006858360248290788001232342232812539683145391524350732462009849000389976942143857296190937826489311162468204924768337103720260477405109959156584605491812402376103915089462295557394894357058214150641478202338627098488001172473676285311976928427843000994882826000939561300381817173360234463882820986210287062855035997482282831740396541772841409530256027295659318578701939357786671972469324272884286248865819773466758153428442579876130041008804893026390212190988132981465258520963739838730732437863221548551127648278740348386809214448704669643377645797376796138821825740749907609804656803752692627997512309730184761474920620370283854111863027786033770884906317132666138097708208210859347900181679099257893549414755799283851204078531544647083175411031793880306296985456509564810588647532875243708848021824693076570104200558559308591771213926135753949700906439054761454966552077600343007461736504341275875893560430844564324356456936565852264677518567617478327392238352782790878280151862658173581839469053411564692051528287652262320993671234383168121544791335476204721471615239327259721962106828992270792703373511240734443748346558282956935898959933310177619838271230414905192481574614901173681145662631940360147921438023442653968476499961962505837508277075223637511998044008357748519284151019207895109356907477828277788345314568932580529979828866406706409764953898153834533604065537517947897772048207053170194560870174632960969273362228886265596306360761172823503220126171162077383242841226427578747871678312817182255869037649582237687430007198843470848756199448806569412200416728298058368045148565707242984489536309562118962916370801851407859796603800860657392725516939822854862022761552611644706252258101322956725975332164179888199343517226213148263155393449566184941247530112317804481022070716894208985242984904662074945011834194167972584755314278189130018465661921179130149167892086142996303787541563271690373599894463753862838569682529368478290220559047041615829379642883228837495114806107964128634132900465826257331151119282610247285828177286221805433015324696663753288847929731559179092124715435356169166820119882487876956474759481719944001520866840036234470234475719953192928828429364157942259078192888356174452853686433087037707427705232183511957198760947743368831894347068304771634115480366355100057839923794216400174217199452387166733436112571836735160808243694645675493886391755221393650643392702032358497042940127471915596897842627760369918233587431106215535924803330121292994723775033814836518831043668452316677123734632953894074929447455914535154327504683370165751335039784356394998563926000009275432536451592456918505128993254277124410306778606748704307117647617472447500416034536581365105092693620843968091165579289358306194930582666365467813273108882198157481222555050172082744194018801042107157104456617139228155321597188298489792276486267114208481448875067160679027202383745149290390559770724466330501655986985762837763006033514508800377336684511403092503630444106531896426096727021362930113500695215779550974855465617636050791413697026163368103983830611917743722806968970024902716217389310360773598143944668530869005286414594537804988128986296048924286525005774381853940407641303068186183299532597200820257749047456411953121335782221568522821332676922533227546238093422154679739656988270485387075656534546518821986385614696897791005166550312936611741798951615287109532881352186481894326308317398320863332730198812359016113333054153856985514815304088049492085881223845007371645218774434876538959884057971120352681936223449313867490506561801616077998690707391829546408479088438284979941074691171636837355231121665046137668126870124086313401241683766953577706127972720394002694604865654691734256375944412139964200032018355229617685087110360438856304318610117158159858219638349236484487217011168258956395247632496923825739061293945790726082584899478826970650885212036803555436283414118269176064104934006289971814411998913200690046247852897456452879130107103366136210923268849902776175471902265935496727509257639229063956689256420877614720818304886949190221943696746138680348316923361672875570526728014118435113257504583189068494243009778354421631414017490377647955869396430597148068813194133060911613225333027633686011574779336057348175252175020853167069864918453817723694413956724478607759016371324553213939503418797076226095144934235371143430620822700626200093449094265300582582370489807189972417616807171585625271080020561785572502170562666472418844158847146377884507897167388829027203367879939218744678828430245907836446587408492897644499001077478734604222720652777737617202160562427238332270570127321149596621022180432522111651280633133238692277911171751447938275608739710565987467429820164652490047944227968512733569406363774676045128214456934190310908176665204751433527750970951838712346002785163633262834947014776840269917562016526792035887770762278140107881558622340721357503317937798063619537907943375495664014477721048716913237967068171538039682461136520913469653617666340453225625962952760408543272418555828036178563198027793128503202858194819026078480375262971431249909689553101344877645456253332784004907562126399786970759798389226198620424112517078656771309110768736561597555356728588966607417465676837315267679163728239471888052443584993699147320241948692620704853888290138631916975173154667033474990283766814957426562042835558515726365741029338514752359623241211195289532552426851346811997576007271578883389510614118603105956811575079983037991538402142685548089824261788099442640014898638577357077255748477454877194579058902250919954438202883943896821947898623103253570217420546037194007077244008926057035868841683077136670894739723189776085916575012442238998559786343988028258850534422905404658252677358965136616926276576683614312935148375627391313979330004074515772579191767539535891552848224204102132187838159415423188787826262488598368185827994373899895226323282137868950505014188872886009973971792240438149856929082670973998571270180995692204646350295893371714107900538814400940495701730848873874758644523877529633691675066315021018497849272116864956976157203597475590835192205801488070222160001546726616343483440197110897328386297974872961988108966672047192279902922998807473682544794493698220616355681324538459719155901473255094447637881283580558584634568457498579021953933513794668964237092554536363805000098258258286434158881882762439716369141690736491701564669037739674990284235141164418042988434031862512090045911389839997933968239104100746726956546012388100482222438967687674575448173146152028138649781728907830052316241211685193861597147470053672502645179994175354240741724759830727061648651079687980004542190558951937626341606150347409445395077112110666504972545923298802616663369577975457114388673387356300106806123430107191275056233912520141125518409705840698562041746804446016481584329920059540554761823953913073979952582912567175553270857770333461628170751193343837728974306435378039897973998249581316130284126894393121453635368032993723181381870418016259073173747129778875175090075947360901694113427158800899319196141153457129171033982424410209272403333174966860855384994097923383059535787789226364128117400498545311381489251926627271205658571488603089689644216470481597069094486045830579955646478226609643083488775354330699229371829993756621638840270316266876151942518636930051029939702674594585628425600317232399119420243707818500260545875339650302965599764156211916262773466352492411904685454553805296872539330751213197399860396806163858084288334814721897128409716483235176327452480112987316031990211502843154325226227531874947155427237260501918336917625530288503040967771217671164294455384398460416859066872764203201398831661096803384713780336473152786475487896496287030912329600352226380167197593932560986709952555056611513547312709972760037104718696511704610746422861971381709213438213571083196017788606427136205051407494127963502255267624588078623381689809276145919115928031456520922856517485676158550834864718006594255385714840941824726113787408576330597037679929002946190767273983157726727984234358548133748770876841354445514764767003013236375175887188899132332169678451631304634384011872194342779831703951248842177056665789510887304773684997535298986493352231830125887656611542101671979519672270897049791205012130513813864781007279295556957082178564754002402163646855287383675143331534163663217722035097689949590435126970762325188752484850433689160878238799505154449448921976576094785910907661799278859311385944232030696153998732268878150869701277869269279957352814580256008112175261885561027527037633231190352826755447061815149978911024927419706891837018002610882465001216082590487298042197954781461321304442954067551065655111891246976203315968094184570844995664086683195144972462806549464436521029714596744077623399307471952611675576109559647174504420199275456514947932890896403458200766791805297287872289794203940460414142200742104150120827928439652315538500892047301454822754939687248339072084144961607790916228098387514744613701176183970185952281117115776736386178863194850447240733407745546769080710438953108476629221983935508520910414855469965806266470680722818925593915622908010526304465243039165312460549590010499905182351289157795392784565302760157923604881050431795393029255771402329011933619591729432229032533702331065829959647516275849667818388195096074378088181097267520618105602325992244420160637076763560585543950026671832693446714359634504391982970398083571188892813868453891998819727679185619450304587040371703545736346294474197300717856932463281227388454140871999876377111530586079340211112580166440107253990663213847679244751248494961079315691325399379204431697965641941129367268765319695347281991958719156562470925362689702921149430102510697784074324122631389851995614551016232551099752562826234935757783855947404785553862275460643723988310890826023810567234847631090190919080027385869217173942065571696673547901830959984633259592304897924746678330575991091816764352463652830788406603442564298888903620079455164848584066581539934720498160320670913824940778194352691043778631732982411854392626054515124251693769372763816742533156020274038317910590052571783113301519281453665399608596419140004675594900781297462125754101272371652160339130064889572729867736313831553942832788046577655185096464743558454852532151617592150812555752945086300638747151252905778860958985605352930972778796820224885016196999030686779398059143349056343116124273543830374081974963000036331795859633203548064259791251953408060027584266405870165559872171895743225981440768419573576474062896819046739578682233052748071660390246390377350347824951498937377461313328490450874730013025571595486057664326069541540882055439062713417900626938479815640918249366303233002574974964007256529693917500769086667511111480969088613060977971201731407179891688575379155025405246497258002747867597575870581667357826154461380135454553695433796561428239802594183141988426617477427198953948981363903249024842353622721898811425193576199882240969337664090602453485248706569957555228580767358353151662889663733454606276194779255516137001405686699010461343548981332523416430179320410354693406618449436064956355111900355869020832285987447762305013899134001887192506624283742254861537309917088844282628106164598436339784558217661195995239162545673005622396899983390383838312304646947243414907896892747998386192487255865102807174353223596701489067627096520757102115595030743226796782946769804353808286035615142372835874103131705816397922273371209392013558725517083429846816757485789494127237245817957926793941640634705222445701949293869075740693752313654151317878333113360843561720210314016365081917213267819321887530924206556121223457899710504560965772693654017165104785052684769548391647495595420716900543739327477141753268809519931652781049601159084389555781445397165004937675428174593969716086767605714738209200450384650638061533013185703563212518180059815954380714468748728056781098918121064292078589886755412303851739202394636720953744894993837950802290108389643085271300608869591567624380460223546340535478012489516055616032418956474039212179023957173542806142622324007995311406982300476141788966706384783600065437837054121363671135089410211450941132047785834278441738378206496086569664825381671001199288009522695883686511272318731876645775715092924274327271507611769911331762879797262162955622937812815085957819003297114102199358857090769454163338406980423460886379602772916371626684969095443670208161093075631540829889701294970599353400198401737874782142272473654614765243518382612703530718849558056961354011332671288813003664186882572286272146412756592138119635843815536058114015425207282564067214905531349256181182618739913468005329511180112495451128090336652141381117222391144615457611720852812782720708529047195792943753601712795805647439297849729954050429829493209054452533277411174057275032159560117793623229194787590631457529128121835661066800136616153206756859010768882311506316590738669671761997466019395434721980144549035017485840592823351817433291215753978932619843399185624301031354602019135882842918474860634024852658703603881166595448118795851974917331228867375857120658123034615066124065126034924124969561030038851095794764426209396060946964232798809313594871435939686178685671674130469666526944502140790450871250797723909673618250845503171098454105852830744247717060879218965957988859133030274997502371539656867716199210127887895051329585032084973550801783162142544652218118693501668343013503667490806835380159852699980415648526456263023452843199974753417794573692798032302584489222108844881863983181480212432778183369248719943283576958642268720529463725958767879599543587052601077560786894093835993230171944364307007642752975771163681240020685384770431472656283280362591615587383677758746205618717105029303867225966180884595698361680873499891891202328295871233057166275358365292616951150441053040237973224234867693605155447411478934285002672458177493704724032510430489463255054183075361951256888020214341292219292236783348876486664359866766821901555644932969490444700372575457085640805901038006903856831947868866736246798193748056733318848669167845095838709751769375552081038929389475064841036270107486803389342668722375690276967760447565735046978604270612207563519643561447464591041360335508807138892328913007585795740747048026487528755110706731743346195769787154038878537125848846422858765570261418265943751336309006614996813144761853131346516610607054642441822605417528489286669029308857506782441015332232366459307350984023543988057869317578531702689504823974144704984574159375693812727016590227681974418588587501329350805376589921759600687045522972949384427303569881799930530071938856597585627361674519418530417773514799817526878159600339113616365027940276736321192260755925891202928987512290225821460590337307629054811345893742383699147562772110947561757247394664241045926729770789027687509968786940293271578702329468591894961621872278128501625707317973325307099950232408875309135851900906770867906100770566156253535263903150163616273601806130398558007438548826017732809276143146890455279037761025903273810193262681324794678546675977782634800177684369947862950328248663925110022215731006044865302694137271429412734665069781996885703852562593381828814007184331811546906298938176592584042323573694399077717605931460085960818020229696201530535597700446414306389509596237588845267210590921031091839734577011456101846655093464360024959829577990570324296462646312572463107610424542987682529485509596493242669079188477126878007648789949889924590714437132797296347934404508204391646889645523190470636346763743940919911236995451366236467906928483396137833494555673445292715964444150193691146027959014903736136775742361527616555193761567632444777592475290941214075648312657821282667528241786603075458030340380960230571794487422294509206026755603653365072135806039936192194673118135417667539277111743739921152903544230383908578664142806759937775059847892457191398199238877328718745008714079737424657964317805103272507205545540386213356306267171208940467638183612673993075808638283100189970036385092876182596980448310268794633729181666807592877234201969203665475632026118332113328552861545018120935335942524358012100719628137996918994228279122805154827226034177979429794017676952407591409697255032277068530627610412345714544328774774632858194013454530575394720553917960331728456387146163854888489366396894550015448222822033983050295958314965157398317922556136477509740810184966110139611986734592798468663521922041039591156081480658780995077549690256548245025870690802695919110373437450408566388422010230290351363900243716999013733990839913613534394563814772581260821200135278571197462605933810632068289954268677372213705190086893719552373575054316759464089895221259763960728396677387973106793591388225447344611952761949148553168162348976099722245544219101164387588499850018364126208696433875792169871732754266512140397781402973421863498822373713640637954006784250083784702464801734710065393113652113372116998436679855183070966586791446351739571983329127247994315621358291701338977506485162185823263242971497992381008352734700597941889102090309067788736246177940449257864039724169162285245418633514221178651308989774320903386854942088688134124644184826884634093847471382261802176096327498735479820593922534388425003636485982874107133312909045076304246247695664655065287377730011775086487674365578149274905996275449763306645408375380814718025633350672631011413471654785991409432345937856915460503381046188839637271365356098777878440887336312583872510317047819041138894233193539262812365416201863212897947175584877146798900298795904176999652765322208211803568844357865081560128057484757037660638371044366303755140141398078932042587061031241515406606801964986159480361166005792536557955466817665741628693578322737875575368406900998034955666163497084668296355194644211040496735267799995767409851091302208456563172260221961488790408617851138755046191598676296508776543546038235089830085464521495725389682403878101457845850499050875574901451533652155299392715668081028060795513817931810720866554841997002235514313317467405945205530995193128582065696783153294069844863570676595905880458846415632319320976598350104170706671589025174466843362293115229681903723454795996562029425716175878607518073784207021907848749027788949090899842255522158879830271236005900017426764246363779312336711045754412473868267171321348006699306728785058688932227279491718472132999643696437382131364130820640734424186418377426259982489798748334677613000124972115771063463495488772997398894390867955367109479943857041730307485002498238456298252548997508602199793761985107227475009294784482572320129178158847953281514522724794532509967152384702294113328257577723264612756048302316449327234029842634925515200741209117793103470144000551668177174743852424118438604525715819036764104388072283607664364735922555224387858676575491013071489354183341516666501092419756368237967954291605103417606660125693803746402887702556593298360037074479699510419952959827392498718455633276896956094574306810582988187219702666525018509279635094989025106806805445504169333865860500802278929411920567827498486729794526987016159248777306449897509900191211432291086920811719808456537874523435619301053108280300394769175304336780619256871581735590183574989059932613581932618030088147710348679017365855653051887204482372041515587004058808281802730906155407866038549039013696828919949967065001762440958306967681863206618559381330564821301094720692986268307242738306009147620051155509984191334483511755273824865338569255562404653586196510638088679062285324438924066284334393177736838373085460578393983534324172459761622314795158588028821075027904497946284028905011398832461495361923147946367282980507394865427110292761717957821377898798087267129257897242495101006075780066862062679919721967686101254610511532494234412877701806456857443112683271119267852410762275409851014631787641025447030666110783502006391808930098140037678835571634812173198090841800403528045258375780985620960960488068713071312804096169609234005165377204987872442814221971192040327773168315700573650897770065500531892826262856773710763445701255201319759305682054624437803224384329497056776367151873163255947309357150297450510623440738769148383574875457540433127000656009798933701610703415369162892708467636048832681907052626626169829715687299721128334339067256404448069470915517334724673009612104747118180250235912620620140999959282578068908549374599398457205432180151119030416850074041438947071680306211417277475950406838576060605653580756468714696806658826398292545839118649744716531022557124627321322781042151736698444526853030176182923212465105169054642716468877035242130197636091490540512792990380319272279936984710963289314850670999550745790543886496591973614804283198764798779130594975597849772962105101398476981782189118600912000119603141297916066382537195700640831181526347110582671959451466772025363257261572538034760787451000178991523406538250096689021484192316415058489449574305737553252989780820469106948239211177579943282249232695518367157408716139341913662315490910857069043230986288500952053110065324986244334845653825740787945747801870241691769234881078593722642722007065364526718075791810316380791732460445223608451543889659890302180246319001695700182393373282576330073185915722446853789974910355463709506226621375844263726031649783905492273906698646228900315759535143001967765642135653855465005547365819523019443686288125602618838666599933979571016273553594185686576586200625858565877980795823088954693486521628446556055870663260550740469470467446944206858508913045562246360494137338509501062588254501479119744391591377396708431724736985831060300385013126593235533268281496370859187107670031828156343086329891496175609410004057906821395311777546879073321230767004321633885182163565933924366544224319462453058093597369180468429199496284452632558827962934307478309669525611381324560656704722353166289119926499336186086445886235600869743754083968926224863190428284885030851051867054624337458236465729920544349498759627286647720168876270373355091168193950258480331601281638227065826317521493978540463651530351227243798292031249916360245530953360005227069658417246927466416397932037127319062950324886504077751788705842414269847792322029390918544032329733573478754322628688579304705634505302461174709079013166162797347362172283740354286630768216483106599548557332169055116283995278330653885596414874751842491738456199414257963575821744419574570264939627244199212235745768110627430409904068191744497135122345743002750623603471431794396187047391775961490513007281368264737287416150032036467017659673180160690838672909543141135905777845719975709287835375565833480086993744791387304961449461741091185204355634975471145945226895718842016730714977500464619442711849050262515857150814000037502771087641844956070064380249406033584887125509601651603702452878619602136507030785191286340031743561536817425418575217659166324656187524492469655516216352287408936211721304596289665041976010041790960182410761655936590859541257035338730099202712028532882992505425089044364231600394059181177511807560412671509577836907838955495672461216253078764620838187243444176216574096936348854193992411364559253042716281643432687845571749725448306240945435127321915193711913549788028136572627855930011414803357190248001143163467527025050008674593035638868938708765415508164130273651775257838926540753715017526692930193281679172420870010673862009545491351368077139733011067943411279079483534762889231348968747606705964122305807656909864238371431237774959324685090015837294763341780682185416951127454173873086459151235876089300078822701841594674235054488361509533495871889138293955937967898277026064003311478626011317746346564805231041456236540659214204130214804416332624278443353191497664712581715523764612748014565403752890919976140055426484850784745588296485426393750848713970696808834580722227697174526349438815686000222537378799152114099012368867701729564386947954091131209032893342631131999891560856050020839306336593863442351207114885947954878299966698530179587396214558015466933096688692915279074946639892820474023692848606738200828086031584797525409392232077357032336981068704129789057286105034352095038149701882115431839264554750298524802354799583166944265977144718130730905590080059018809511773349857094078018956556049551705982122899231343146259863438632579430302088187805739600989638962470542982189820649025771173777137744948538094300648384710011176976144820482932030112226562648512036139356548997060103850475906426017747717173240847375272153358963598987206118482032233556762717482350967020777445544654477928276896274599056966141509818042904898348697179968098550624793184908030086260687165256978367381792231531272466088039118403430152758875165143571239326663348962820914932845738698513336802648513395336556926547515968498022581911294684427564868009940385972334106102551006556338911036661541005962259768761983361045638220539756827734292097331138331917617841191628056859023113297373248705710913334160124323389019007053470159882010077436930638735807537280462393846839332217517984246911363425718631611604390078088729163299953449723570575886776635966748978189744036368336665352998886216288299707500396989704247459433024993692591029621655008894208215130507952046317535136084243491407913885085038038234436166869878291196767008658954338497514966375572249197010986933800713116579279674264669117031388759593010919876231031190006957290464050382386863056637468933203130573521277697514184685144005821105314730395342401380849325585806567017380388872538431622977721833640129133616006420179170387871622583682726312366311792005506580909690068968641020797118905884401166413267293468845899020377360594584580730382896814881590510109103144797082718326346686306739395771465448865099755756290604199558649038799066283966902190050736632675728707642788487669144690185897031450293360620197520316408693328431379418040772141939524843523545089530115903526259920740718831265990371706298075419981820454979914380450228950435809587501594382701340798470783257871647652002632359344576637587355836432042384768851704500340719582535006337971968679588979912352858562503423297885514433858965710652860506050267828764339232184572184233659286130083928501632153208210185417182201037309269545950172567003343496064610202664366237265634553102561337173426345563201333303206317126917453789298781832347385976373679680488735254911042195700194706079729163384384720737108269822204154114286295332334389932965949086556839539688395624651242111712925085196667236362414499665744139367222131942554275961794755458458623156737418624094231581671444429942522158203986145084918621811029413875619885256917759325877620574782761239038424544063604463866503496117879626371131404431728954676400625851119744445270518643479075925620367240314958523755251319964057574248244424756750495702945953319015439744980241762362116933145989285729935083865207122143720755205022138190798446047861175458356089773942763043191268843090130919601241629603928966910765121073810567176035810336994975549126393076877888010204276988756544436322345531766732951130708809753304580020691148175803385668612533760245268242611766900911538554867606050452480596475245592358171382004262335406965720536961786008168737923796104839238850010933685745641119087895192684537225147733979504525440248644026425896311124195326828300401041192701216178122877520469524685732851952236819548995154204048340637811597503598330270110548789033363418356850471781563683603141808628010075651231930551254152448379444380736667367415234567051898228344855042997548532369539135630878556734437330312875598684928950880009897259362207639215992693551671558374479337725853445130955517206192391004663725957995113393680672483950336118629966377683447946695147070259669238855413873136361865777278697624137665929267744572248814526831269640304753273000180696362319260536857126423041813272279018793498210379875335875515393699860098678718995019295653063235535418704875195362785110994384284857532452654564109020446696310012869724399464893937292863059211834659843332176035582158204695314652920151505164721526941156015643005749101618298658867645350665454123125099644514597087495670571704758525975643973742894390012082817605001980289833358224284640368973154005824003299811668767977376204572026993919335950845316558399120648781233065917657732362878538676064779459245319244242365126941833012247057007639446667285674274116148736118308562809559280185408889987547181821003743869561185310352256284073726793182782491127969839138396209103382631535207573851805406680685538423520971154727469673554146365382686138331160989101629737298086025407789286203690074584901814181825338672457176695851613830417090106317726987943315378473246226460208651980679976142774530396676700554695441092107547260174217709645638109060052575111118749170175722220227496214438157859716959882542790859158772923700096241966859757847029594976025683000994828433484037721663044726445968490831093184937793155470981981832396441411476310579256235906165355679792541739135615478940409734267732986027577984081145637090396405020408278589828992608556267988701015899934273542563883379752489903876130506869420434424831142499009987495564072833999904389461855760128180480501969804315102888455767997121202742177516761995048741303660276570232890255288445898463384265451246481341347747997709210740698266753389380801988693861951954862180817748691463805282138369273431113606375091359100852824653206770449064326472707509576606544390611102261283398247259059116290264462795764740145502757886181562020755461685083699462609075239725259165950642037775740396324070149519818770238387982966238248389996004400700358312020245135972798682407945506526087104982496834581467931026101596458529059423685800871246128406267083864763088871786923703802879557803635115602853025966225558536735024200642245825647883009623120611576743599905094781641910950890727477407813414368472899204494312204876534232923658825122621553350774469141243185773803844280526301265289802901541524579329703262468148754433024659813719380969326705605918866804478024221519123542872171945365195701348589751817447828995265305237533365822072293320167411492003164525882164563545355722061455116930126718463527486131168374730261234629502429880233462899787600913635558396584539897514262172181995188524697648781720864434704295415638922291366179423143304269903902268322586955843878182486611848938573296066118972238559175928312966741827891694263936021821821355416302230872124476355365629436053980727574329166656177570647194857623232549608718537952871460381952657483126165855849380192892791859891655551259350335350876330008057267896401322572567397822743221672204593087605242579474132768669157829328232210713319938018620768503789588538720736796311061291979906769346031592453497312315556045415910830433934931664996360543252376613740976970145641167509292743608727525760882901349797869319750580531470179750790865905351952259369318858691834463983227953861305542795518675279083132520824131182212838824635534244717170005027602927977846139275871895675572635765873720074265335999267606916366739226658802763049933451589598857479113987142549189906373203894417407110135214042084071081421741649239510968952186188261615065875022393375852391956864754396821653318809350369244622880784010531820175427275278096534504533713543953273200652048565724227043723330532742045697181500348949438193928012937158787946000412345629312592728774713728211324268524870867646636979136470307982597829869763340199328595696759793285355476784963803111834327383629244957633890824484295046136798474555212976224481417275716156880659817741188929381408730856699753312215874447037397079925024853686798755061461861755418178064027197824438445953078600069626041167212536939836768495860561530622782523971389841477367638917280480869295535307166277973612079337440385255900554130900989108107370804631599811556424544437620813068954389184041698202502807912297104366870190772991808567611357323050760884207847026237108530217650357064723827302221384021759317659160640969613031420295591152576126219221369733755771603828325672741419311822577673148671073777264607166665221592892753051962055121309470421712285206745853823465185427478843117627856144004483774489219651139941395563883307711245102594175412594557450128720140908147774396269449637111982570380648826823791816118127425162523695637163461274765283101729988131873403128723684690059215165953872086677694282312627056856807544713982185062396859281528947919905076185626254258102090664293472374026340349350429073143673612568612060885411426439712141157633007532993839856482581262781159834721861287769983492125331082698256046408579565148229587880626925948375382592694570931506440885448775275497231270135436150588341206791182176898460948776744701113330625928618983033295462377744285554640179654025773455513959355482611354656463465352784343238520140616663925855423338034530530516596910928158745875250301618920233050038832582435074177435074855764614807880395361786999873678869848102725083594574989488804989082985091755181672663052270765164307993272859813980262857966176133473033447385196950095513578781776611671716003467322302608474210056736190335610709008329381323433276374032918183046238338328197645634935717905397166188178543491312867838086563427130433305715026515488986873334283348967326270452308749221052277782624203046331396941971399950534016853874444603698152069399840785449152110772466494714896414055883911262156620520532219736262936705056646617143282270444861114520998707267606874441499728541073400217178290927265308274634666341830412335252629513173086452092990906972568388956660950295679349185427161918872371849219997669801514837906756663686864203671361463130187816712475071662268937521540353416138645838963468734955090123782015841565345644249804689772394207100742590391276978867688515114452734468396719033750071604072978507570400217851201479917981207243342050288843844861004925335579606250843294276408997289890060193274118475673115819018017342829744644848104312196460387245251766237870106512943991939638508776046951815886426509969502453103593213261841272170174442023874156751831252904059521157995678111496805057459844547628537168281035648545187506443008229013026937834647155242500437102526028449665117545217916024205562836035293091585968297238765385998071421598996288950097761471363262519605419702883400097758796419262389093872984235440217215625737875930702671768376645227971385366870034395141089253280326432783423187121893071157171826527641532427445928035428918077190060219874525700992542070044628555968679830877217127738721359117966516758196380388400983246229382772489065270748031733523811068786183483132137487070652943385011100078492062946533257292369920803315331146468038611205636342576805856844098735954239226171243394141113501037890552718221831384731037792393068413630222866746674832312345301271624377154317490798558648665044683762443066126361892807753202220544192244306474351298979874644028329246421756030251046547343718154670641639857705973152358378204015290623770099260016467977720779034081127603988631309594575026726878829588004517255337076470540992404140391064392194174903495194364342185294682057238925429663793685221455378973563982920010657769606322776165791418511857149132294789451858940226052889046741283836300989762062116146446506597423846447474972349097760692170444590811287321005948987561962128166467283600072637621348804232113407063837952094148439494702801917454482920227569063311981775763737814798627463280280981637693651936618611980106933410372283016304667559407755075172170851730177261452147035552890147602296246120973839045204836276806827850112588120586832773681924120838406244068245825659557620315069129351042034532307271327586513165110705676178911118578813716709047448643195914112787937255865446372463237459557469959236990326815637871992422869184363877270910042488390399736680613482796465815288827111231999112113342757214682995693519742288507548534703272008651372119170958723236764744133135341290813705288104267002009518005301750132396495589545570264863718217148858960354326316463151725495877546641699434797335938215555347853934819196503676960363809034027214613756307384395343734187780741866008492840874215792152993691895616034554729029632808448600846588678932092519321229699906365972712724981924481853487170743375113209685582208866261252412361146089958048751577668993765132700582818449852690228432953584837336191023983230992419558692035413252877433693030030262765936168263059170038816733098782210340981187773424084483069832115652802171891531925792690830829261189160526611508793179670231405596601605041487540133125062416347175457247066798960119519935323663019947299469652951956648379342530157954753193630445861181712200185851783666299507015581055226710914438918080317047945586126845420659631714831914327715983762694595980845486526816498824005268528869445678223880428803553518505019958714951036367645841460004710818898193924678463141735400770537425905220783257103683144029680072036093809996957191424009191083779258254558849450642181441248878678361279953912834233943269171349434731930754506212123340959362172660911544849823096418685022129297897705221812244862931649489223557440054380875938854442300509556937647407652800575742584320181491973304550465003149391724122317894652791551018844559524209034102662789771703346562984564822863666011714183196848601848396583092079070770776959237436080762097099213409404265591957843728652568611561373135312269824241345228022861263931315959104472866587473919059529481629509707200132108357436580320567262610133648919330717753284343302880762312981843375023333173096827713044563806783772969300897911674764420010901203621836641109399103858543636094627274251763630225340083169626490108670273571155441708394995368297959861137681859937493601531580900413820831027523217051438683764787340230798986039027851074443446098808388265691233477799370224115667763035986595288275376724724289871565839271267805207717259260878097153885260635003674170148419341622115131569040463890924033621051109140497657226721841481289493048307379833218909536341306993610455613579842135828131205745977945501673427564347124782268049620328169816453487495430476182448920951947957033626657205787802182697649435792913830142914195455509280864844180967982457625793894815841347588736396509276653164003894389183585465737002684161246999835618089100905114339508044752478291485166836900506275965332107779421736452694053187090592665017610098520745473437704404219562557599569419706507367575674154258976522571879795177385098448891025293713625363156988871587363872770127809194571605535043771170036601251849054391706512868605241591502294442054343647679794330405983978595252212073419491880287976893233907748799994855966241727135000992489073512543557663795762670213867007228155658147130721764916403755342898265210478140566494552775455761876004069954984239086889729707456911314728607586757382785607576256906045427312076740697197780776624958152794024252946531173778400018451626539188019094540314575927916341664373991747979513243039082518279689939909799133391387410276504087395652230192281292999209950959770742431680582025287615462294094431386842270676332817059945693341318846338660725123503772712765389215126721255559860667024847226252440121150181509311397316792676427405376606830184947681551448563504611674301156048895923734989912179167359463617621041900789417183132758046103005332335647798492648004763178414464142022377468821189615823706643822579859263768350741505319709517335444912478151211307860764193116529392225445425537210715046461287163759765020043765037301390553081833280297195839524174205810758919680787677316789062789927347998302043993334230739760699288480215684199289625344552489148259928399600407676142778927183830992623447241105407908701350811103124000790966311912271182605430177491209482181383478174516725606481359583713719963162861034426599777585661348601472922464639687778160590034395802457363861008629177298805177412513409340140077878865698034511778913186832807613945790310409235518552569153225060212022552827585553435879796108378861965869756814170025196397558023826696234362961921427676116997088849990072004596808037708759603871901013649376106594401572828236833585298660462038707250490734020730279511834383395458913850129201851788944592657772400144890937596849123776360081844482320487531342000000223090099056356514064008159123968462279801047365440313817721996671296088968443819112865298250688998967640035033345375647484098067199225265587853190345514589598672115979043341803059704200878093716379906078286776588291683498458047873918473013935108850395237037252186097942967828165351266072614809282349641318248463717534787588076287188825876816527906694267020652506523158524003115417231223560916298000738156669294999384905185499923294276705969912463469876915547978580583617160122713896175496073167372721111107104519275172240364163360380350249478488942106772658977381598507947366424106088743171308655625553089226716557517464599057081468340943889190176293975518205283337936740517095785950072630282023881922752892578912043489049371375920989352362288200361149863427913480628767885918058129883998757979532765853883331473321026671682314295127764045680331222561564511023076432344849423729132275638739559898318631531877135991508238713113486579710692134255077587483425434284633355430692153387899965163720822434376699944512445207284398540108886954982474371861485574093989253044700821573450940198853427259918544842357198165491938394852413151721945952828721166552924652577640932307508561194719597292977925438488458545892730925327161520424800977875361878508005207815996959796858467001981505804831831615550756505356995633031268189549897233876776745539927022710664804353646815321836002864923504125922376272892271884074925352440602320275709669191020565853603505800810127430294185840332134606971656951453911744449895183415426335278151017467745715865202493674505154688764089516653224138779326413707717066668630420419074758554438739180522947885189918584049988974850907540193494502535705314141449006554076578581706278050601804977210562256774576299008059774506961071399364802660104954265568540188728826313068675810772079731457713394362299666409763156017113959494516545018742818126171335884609575697557346616368723529652586005963346084386934294701290300469861394954272347039142801595099967619741930689676548092661642026806512595415644479257330220225067026555738264698471207922923974667408630509866596388549932496438366239581898942909404818290507968790471659731089731586478088341521322690995118197384648085211755627165702117689063682227315157141595345543146692506784377822567568187138066678696598775316887039239653870952911963504644661350161742935817166842568275927567381855905574414635806253165081324691507016615939009460145080651947540872604514635765606869769755333570520788319798449161603260409868978545077848616995441425859541005816994459064302404664155201781075850885384184756781981575664330477498233123643521537068651716257771623991509196757886421044918276632010677470969469583018835638771631933412929445995893979878586328701349226361340087805173195359174978451742491228939313643280465945654176911119531021950914891102249887830882667850891674751543927934691336806283799990028786780624311239967819163894567169689617939101149703395837353788713706273317629793107740148383383529344607489982081587694480999982388063362875912600051723778499737892240120018040207632409074571492090119464253835166394821867068303419800802372617418174125954564304017717658361746105425609640080996927775730930632394192825140952084608569123092111835550363591006415168166490769026716369963506807060769420828216560146893136551310254550100878869164008978958188068023735466991665642858560887882777040759998478995418131539711100904555536767058708125358973021291867581832586106655818249601082434222379860645403425737224351192794097435649401740188776067086983602104623595118096516156738523942637610285111033160215731617706774223087345435792285901061125143597538942302951974943806788655124977245711917660370485601491254486950431328910013645995595312158510461264766111816052999675848674744257047587289123719765467575968925330808532385693845950002497417018688483142809068114607615533009106192895480704132688343431302177763504146646493757793950110054000496037051621610848827058925403533822397740967836807192627554913303760443137505563709924326126388285641078240406535452936623886347732982615624067456432281646650160559758839044640457181133112552448166027153851581967248194326045890001704897962770641402868547134217110637942593093312083180463742707659210744604642960002375185011060083276184101499910921483958764794369968587655479641981248302130327222111929194017200127875413390747872234939015255961610607680854166495970729786602323207322316898591582959457609382849769387192827889036589187543373115648314839333048549044618254671478863441136662999006899124270177025690074311967519492484490243518715139026759944166830779150128734681530837468910417082218328877320456148974285621415526126100832523787951774713950958212841784607341172434437735404885251917764709543649739014866920691102312503341681662297599607154105784523813095783736424523938617216298540738253074926454706286606642371710901684683387996237296670793982675390494601018301948536778567975134027484418679813267527635587537268206700151325619983711515738240661690155868904973665042508094986344619999035631697829043959732792750869003451524933274982494061731321170051254851834110319776513954230209577333885934177013233892180997397166329979479628459672157170041797678548059927295659147333409741257359682361517416212422663730179882625321152330919677646084667241601798324499537433350280629296436969334844497051178890634577297868967795878778618564621110777144764854578513772818768250943948783549148122523706821679420503781608790476000446692052091507496484340489500991461077676172777628659036287486830039245166798434864238969827916163955265502997840723661307070675106482729828255350803086743809267085901415673328435116836267363482795993188926109639679131167903379185918625189969882864308701264110351988307197933038615460052996311131948728758000395282942728897245320803119073077651792630931205118049495061727342820653921001332299491097946238070481419656333410178032464348260179636550410922360432480408670826788506865833432332952314076442652140825773585854224868479483164941465992109600996928017165944991590690599610300794670960681477539473964888196556461118800440434272639752734648167261035117469442380977780691837670685152726719294152888340912013453190509843990165527240874067514495555897418673958141681335148426551464623422907089619197690045691985461242129353628423324187726183221721674897155621425457421378652032852686723255459995148771447141814327617000660818674629903531070085320705823964096511479990304731418682136338748891927699968637394226814729050654190293301667275441969618867414268885549972285892773754337940716701350930035491154514651322324425592736517744373105563963579612381127203879320439319027697891956365741490484824899208782288743391063331895297414454863255289426881540940190605240718103091616845636931278296632892610849679971083243975503348548758773649535641616691060073158933333609174117966448563240709256814866728431774774334507871177052560214875744742187854514463325464382953445956493345723170217167362870718619504028976100214590659064207614942854117855545602331559691614211539474396270562191350139299229623516923094669990921822861284038782987374471814221430047978203207357794740297804995809432758583319627493462006948430381017727305400222805208689295191472457954494379833776728568000643244637272871969501589541445349604754868573097038446527652508734138633009411086324485679787115965776644902943305917864391355206665014364041729546186955617843674944883192581424424825443988159179864953467344255165585146127184492223791233953415361242239676525361987008110312358688966768876942071382839031265814107470254122516339025458396118990441622176147666865063330156483018126839168851666553497096806071687328918727830415256198489740743660966311353510876422144073416024399051660274598738730228614803660720161737068383538087622447645174127497592183423527379798359220471650240022052334909496315046139708523519196879311830062179309921265361132134486662725099501829918296673868164363254223167223721975130795859601113997062031219969127451885556045025361628523165089425434656148959610680670289087193746428938334149685305433162552611001553921274815169262820762914909198475827665688780540002538736047848882281069582204356491169780294176443065250235285526886062284139758955277037063678287225941345400050583096161413937244485286595234370872875796016876331488894232897087865372990377091244801596608738159224998731291752972660861066440208057969810834333981477633208665872769880576676839192791538956197162462190356367522189139964550274580799714490179889138743647453291405194695152693085981914150707023379762372427688754050998095893390144347480924668698023392707768014603229803480961052136634329904725327171770202946567499595218704624339290176307599950429194948872977994527055232709899485245274003080629873510247934204083477790478664364091929889413634762627761572984255053220068614353240597528049291256872235171008903742682840948038036354546457737316513469670371840540997238427109357753673347473824887393132525505861514937461288582981228529952652340646689024564160729132398574537654870124835531739954997017407255777785378478313052548235499201640569393706804934395169009823687183423612648602370162852439993888072221895085134925547398499165765253575267952444180550030809964400959739476089716308102379994543973168242882949605101868816578696531917295252877331708493543523434621321043072581462822895299880897582791899246856214538497389287639260788683987508690985870826153084052671720076092536420399676938252092457063940049509599012100743436938949805076851755457702938020300561167092078884402188882221405752480052922170420209020403688054576225095374915942922143412882037243186671498447212983735967380296871866322991325266893987486669811004273571578759437479792396293444675249159757157608020931814843067353243398909107310919769589759165600210032325822086074432532044519344440386297288119567827422602556003625127709305913981784529805762638131554267297304933695438410228307289308854678586195547324139727714350830445088759803496331713423387647176006770420839805342609600156567991490535563819009842402609884615043165853039816278380037085582756256051550814604461340312967737493607384840224178739999313654841230859038324470351235957264532799623576716518230143179125472125485350765916302433920805493575701706796737639515573599869741646023522171126229554877723331979415052954976337684980616822949671033174859933897833681926235734221295121313954170313715723210704536103348632104653424462450849309938806954355220131400170687952285860591694246337936800100105618413307433875127309258348177067168092614601898370980530172477173826301844087578680979674675601113955482702489137140020256251437290935749446485788655366354304521067816014938706556272530547219965329770603779441531122342166977666324439692478608440636923020318678189906932445468098093968741123496677848895487224425709031968040222274185558139337110254710349537217166778721935685845033688643093028105932664442576395792256457371612952261237293235661475432896261799822429594843359460548300683926559234621614453170661635877799689825241953302667370145294853023227638387637610452728843904602513901990540574889862069502843727422847580079724210953706672424974460388632296746213098680781040175688756425483886599499082539269771957483031536996719938941783426555626187825487104413643644846367058351038021284550154439689448483635067389389607373272502584010195033956987348568667940626751442375387109757747154697543459174453441153678973261422393273263331597228173862159762446301480487645806319394304681546319323589143384379486561126564715381629003303702478186453200920786883829784003394880261467011758133613143752856995329418939483568499699992952775482921129128080607262405211357563569062079115759489130974673000809644445923430684291381596668204619348953623608756807385281699757560240200208528735275433567383068968133486830030836296460496666434281628557585092836411967777168884478313905838481575982021148219781226562446800533789898363915307418267404388904132984513523254783796832077584896892268591090680513894417499520653080195534244301938740617473933945373609259402019117238575263727190825884732218654266025151575844550662691961696303164346425148088811420739205223811432823919162833741128714701043407054798004263390609846508038858383302603266970394031273657860927413682725225268941371851131309838613396420195442324743318402809059800686512972616690839327211016277414016323262661626316584486954991071560931934232194944588189843815812759648763484292534523523877656756474505545571198338155291220826549182969223292674218238481203623382667080121028274343733481016284860558841451786482727001016397591317051823935701967596429721613357739037981291421350679603866035661521256309463519329920898796717395449956527834289937095517218870915082887599436636105372068505859324594830194753188674702461121668537431903353680871897821352356583514825965715933028146327791758770100280613743737932796991036771906000616102055009260839657646832347878362046429077892886303478645685730097819110830512000962403702378090465329357329750831272218740455152546533241608783719281136346051521296924084816733170104909818028210350531673796042964950281142111467243385211223135191287561442661513794246719404690925701335741143393489260859728148785588939061636641449818868595170689188893529381624495391234509409541922883336831652631612734760934252277510022862666361526569162819392035938843589560401052697864524630825849518007987768776719853634846974593872131439918892748351878879831447098162575798619409502001811580600518035379204786347146603846877166904075590853360718633258873677582047003724423875066568293343526800045643653806161381300194778824896409197298886864034542312374661959666296659137827164744347599079652972075746619542890628395780598871559271600350939216122133944365061121281345791193364236964303883847415489813240428615248299583959480873878368042582105034421088395791624309286049941873514749337079257742977151615757775664849272760899858283552903415351730641057709882615215463822094456899676311647473781198349330005987972171595499016923893183715564132174253629854091905270138669788073790837609339423000824512249931394341202304306306187292742732431822427689328618213607595447788433194702028441258174954005378613343764583015130173167954082878423832123618428020548666808948183794879944262135565011941683934577736022227687143877701150626037448028426074620405850712533562296755612631410996815906305550961386291350560955048618237299169913444156570967945767430270138876514590050294690474073290005390775373483350178069591621701272018651397321391955440496217828107702377479585346763086740080107164558016367551909257037916097749911576218279522547418159503889797842106245459115861425551866244044201606134299731422836101477297585302070784268351412757216679610917072399319695203810646513952569457046922322584626718260929730910700385778254599567839779189535865896683359901209930176129647312553784828803913836959181050610447864932301055994152524193640451526255145270992789900693734133849154688100289804026753475084659587739351242856099976910147454302398849929070453318978890306735118761595014789162971885237635366240917316465859525805592149977907755211192826031154456634938929320280322314243964629921606888189264701935908501391370753666665501292799005592300842307452326361424485773661245652056833503969683393528981948048844423471143090916869798396431088694722509147602421479829846470899922242673350553463374485602010768894977366733436899131307532684049397370235652121102282668306926305501086641705444878195092239586899329435733905778967038538249980728893901484699982289123524119335003036678543686595957204986976748520154405793769744240206950578237673424399713523790149314235863153696798498756431797053076199198693906093958756131709889504789988961071175027661103177982559450901451226175585598130062916804543633510700645605881385958368389322710225019758675537729870528088705957358495101457796195846512277197164515194005459006197679047784263635082295657827098915379011194884029042203633063595903111089557568079973744084749163365388350793671408834090885955440337406278260785550822477519609414812850253512337363129838857794961991487051084735331487643324048507136848051785794339008230944011448227239863354648192487044931267817896684902032909291914994757121903719311249773558391370742741623796995921915510582618139537465780674996764269457179591775693325669320408806955415893475769216757931635168975356920155135636886423315419271455104328845577828140388418787455975915113420254808613717833709737367228731021969728607039251798577276337731823258175114981995352460447463503004175894836394314349809947812072232910767228885383694001475546414301123794089538549026899951488811323660353257195961165963571536468631498340628150367837740146780577435653475007736736542020564632805066223774505951715424795240541357067781143488242803127034703634943198827867134789088213432595063145836293440384828439590741692808085169898150219413339259510111869839117272109357793894542531696576083383557924658595224251614718138567821677845299076310191312113766701540083213142579187175667919474943559897746236086776964600279545929176375448392655216575887857942302217417524664870768480500958438476673562861413285828802614173023028123578940555918043307139760251876038876029299861109421505308113859571156176105879407916796556828768007004209953258718023423718315889497274765444586717801095219762800321674428238525803640663874309755311959615728303339664094656341347342881572679637735679777244194812589140330231714870796559128921201019516902913839812994578304020154358785607462491936645016601377510731881725015231948759358788771532570826043928156818960806524074959311258311921956996236166224905472394892301079554476037047612758921997669058360938250571911904558096049250492725131845055593092807035636700105661572668550681749597247094687378557741276594495578579406467543121265608951490989374585790645384878210524149750829949269889255637411652531191088259781434211182642187262803510780241236821712657196147336789741843900659414444367410545127051558761275085326204743586695411420813036366905438994988372714855416429714279435479997018749817423113476350307524985312216330406066270081026470074261261616703455613923996646124424341623599409062035233795030457234374920336128425084505569073001696379027476111095889921283301019485504529334348274921110369232878820827857068961351423825781093808444401170594689709000788019924031766266474309867693897562524233762040685889574689480230332081840383515225926921662788437083182575318111395474532190002799954160527807329862020279672954917459145465243352494314886700470216699047533030446747780900495553620403266126981801170325420553031989658007377822561760896035121809083313604328533124773534882365301117237144134528679606998331920914842291691175446274028294556273606941187190420351187350519567390047971986868940803150798014615571350336236144627638177927401437320541690802570913349921444356134019770849639593448080757949977617000346916857660532965199206083202042668799170452985572310683447265221736045244253311593885340781784254602763177945595668896409413417758183221643509573654026545003739759239489889212405100495450165910400476421322835772200530398800039310907883376553890560940063418526062710107108286362555766951779619941521166875481596946176948156377707806223326328715783557659154464818120490998371152844326281442207999991344101425761580865314496622408629522615100170616999688837858638872123643632825612231036099188124695277107606107748919211306267741766916028064475546484550581151680227827965799415742645859629641201890574892373705866103967396654012330770497637095573698409528263466898584639905704657124748917819232677830287093730375426518833375194862385866344169158718780352135817132601120124611986987841733630466160488722025525128017967042561710543574459047180509370250842883693044022710756720916257079262277436072613553371729473357359379728945483441094702676342772014103052050660824957420276744647130849337157387219742708003908999428023484472389535322225134368436831011971161429343110135920089323522405885335890509426636157552086679387528992288149197740186511439139333882621840723898088458598870803358524096446291221237498939870117051173218291305972341130238993883643618802697320701399831321537825510999102689026304640227977358695688689140238655567907723685101428794079481876122466190037033604927799222437887734394720156356159930354540097145040227709634672149865911485270377675921760686480036475401127222446923922390765969007701153111017196052468018697321508535166185324812438769854807274864506011489100181999411284579956141721612125723200565049371490047507893217259147328709603806556332784383032955898951554547344273349701574404395509213115031400652583931051876333674842060822944563728651480317518043196203302101794682594645744476342364359368194733064237081351791586830686578682577637276790702227478383640605678616538313685436196173180062137666010933981403908415297615564384333584552227986283526797937356778920900616084719829121285823032026750139131494472788064192943732220081005773655493406755376854866622950697420792483670010743551389583211510136689073401613894795607102128882781043532395998600382499960607094714540585312559641769113731637483856254276464704552677894360203597523021897077822557869059811016806920434276219294391410464717187549377938812595265619400966302370922214885667971405521743512092873457060531062583312304332861209680943491117372340701418146303161767425109959615298394046120848437332165871312846349181575191045428413463661827228641434533671181525348612120441583271377920449452517101007820912717737614411227500864035657548591446431397305599732317980748301407998872486031225840543500253446218141246184160419306924226348483000359930619917426366163038512476429721417327443344638768310397706593182202130663840913184131039106650528232246466247527011787866308972055760638563106980915984316055928317345769377881347021321663995476079488687811800300963148827196354440822489718671504529218790761982100573325661907321562954329356076158250345489429128627147270563379956187665780271522674276679870623720732550698975803751676898767973656970693123764228356020100774626225339654289185625892080932634331375307583537106594189358215776834629591194073333825582200555269997799980500599831691413395990306178355812591157664663974436225144118078919375154335995849063344524542166412819694368426142189095831571811258129483015548694893747369092679979559307850616487349265288041474195551241255160302186120643026921301448753576570246733411865617969635564474191293576350949975948011551489825694316314668223341220056286484052644384135751422251650810412940863143694856493848544620207384994876734726540192537349247563526413009625511987914609977638374853058406221473023439818662272395735267744109209967667554445308546002623246004961843284870611883957039479393778926786388973817014898563121431249243012593149494003243296006801735357928566759340676240353196748576153801920353883325079404975843997005595638435730720122677184169642956317517407208306309358163886292361618534335963789922026133429723883552657116370447279188101557691188007224309192622741801043648304884528759800621385788585670152448233008387887921281668654405463984172084147685405340582174119824882988574034193978500048737383381949240426687481310143164957729505466625439506529211737454182523420411684257378058900876625089191217383382363136669910133626442086436769100748264265467440810508725101871776596759546589872891393725188069953081361591422640079364369606586688767927879104362373910007062895458865999329681030756469030617745981465209251448255778483011783226745621299205961608244550220826593645044561039142622529268407261694293369733685638805453400741095881943795670079826517989649766936647181963488476018298681588599277132108081093845431338404483659193893932318505574284984945479325542851093409880619196680753258168751411860139152739361057380923263276344577009118928884962444647756949123551239469802981279156500379132338488328348997468551285360343402591703067846632549839949643340306899892307426142905382670305771157568269146923581623558009943178208174535386129479958939551626152107045472226491281785228497315709828597843326060290720818594505530625884501834803550085688651035001485715119629091721238384238074667015617229369316122022392331583940285438097698436432320250602032801771840009288089617197455589003325998364462184060162996865511550589469543773079683909487710425650732826488516737764864689949239264736229959319504821013359680560000114973719838416895610057820271830680696026549262936622183160238205744940350988223549075064964323807973913426816366702293472789962906341558204014865643206387937598387742896207024453365821488895022803424292785045473164764894608854419814665369024845306981722444309588675326203696301819665579414178534387690251038042720050836974596537052614848847914303203567173665118391508571792327331656967987232980721078584832902927489912726997007459824683782076894597853184267475952260890695198669688845683052981352658715118334536816444065929976397394249330252415507538440118628652478019694319574253246283014614662764449795618755677633923348202151928582488720159691199239330802722685049515195941952249216200989751861643524270244645312219233032639659224910816840867541610802770365485837760171104280254050206789349400182273517497968012951519145811288412355395862728321270782227219878672029921725024714251796611870498835685272157534500802218054802480725660943840333832793932894300868312167859310121875157820911935629493121827014582464826323007252116830676334048595199053558227243357716985620690296280049133002910474790966330569703442604234256419582472256399267915350695065652946147647292339291425541442069687809839641678896768513429810121019354527632195761426118526293355218830221168417292858584749724910681015155617903265847761629987516643494708533797461883393191493887681060991114935593821152373972805506146931474080843754914424309652011713521050506833641842786099047797682847425603248354282863155747301563484705211817020620443145466636035996530626895642977947303647707748177830008028109247779624428260420398965476495296240988417582147534758397667880421286467233085857658513148848276276125826415481715127500201382495249084191987348491298718974140572775861398656983289939421522796219770120813822667246740136736374166268717637384389704577204654028980434286730108700372035596043846738363565853775649056651168646149180369622135033357675251836264574475181417185102870619800546673345609668613722952206612352450208559266122149119392229453485213461084201518009805732495863578964155593879725590615549195065344019901248093713031620532431356854542125865582426180558061716275757762594177023710743036551973581251065703321014568450050262178938031244820332493472035822424691084530754435017921109606038057822601808423911222724556899277438548320172209604152139039781630774505212203061660650542393422995856775055110768530522611521249368999566423248236512565312609813834561653892087956276446843370031821880486859703444224350432681305947272055745120294879214679844259924460878145323402801402373613700543895006801657375602091800850476159807625426353919786656388821120843384182087068499381279533724803282998092038633451372509045415227103804914367468032332537124970212942505056472638985579748677231286091429846467238230537061875637149842178638574561135989786162882307855767669720580634926580671991543111539852811158389923926864727616751346175914819303830436861070284918538245311318901984120196261248351621330362254917728992776594293832770525332131416340704858810419494360651768743770500848248431790530448873645432440893342063246112055101638924285742456383430655433243635047047073528737603559815494437913409092272311115366630028677569608149223718534891159463942683578921803134811795578989277896026173154422577142489358049598787643801124904104386989990114408842383074227076456182626124132612201938915678122248234363695297057471836395320629403073338606478255804945080460507943477108562457265810340709320756553652371163716326378590625974610474426850141032598690743808843613931174664291270166472918999726843328024561994314983327238109099261695280318507308010820271547543875978913885880877218012357676797804888665433465948613624221839902787592589394318487530102363004667117765391229514037551679706541058460382534455946215017873791848188981826308727509421950252672222039302856308966579994898159615845866534315055455140532875917055936035084950939824823396484591978686016322769341813849311560597820597109908398563258289460816194493763539824644182218699277632207812583528098904108133722257570458424504129229090759145473722945239883453121653266176632722247328186399972661357862062555174890795125303976083727182964769866474408196518897536349926831380091279835576327259118348356212639457647480854722278977708519199042621939062142514750224562402499153801063168184225754434835111916770220641166597260123142187762553208839728235782344241500119539452616307608211070494276243217414696845915047919826166224721084702180452816051133022399368583316148588007156184714656405765262275544919632941153797953501939222316074992628364002371648642777534350773476914677352753824840620898107843093771013889514817682012872300051169216723394159612680935631125629620503651421220540740392153512017095781971237436636041747804648524939414474619536886417990335460673321639202626940113030136427185162927127118019473808639838270992500670285290371618907745853803303657485112793892656895155962071737732605589619706948288906638357405231987904099773809561010087326896233910135304296035125020508045431067066951108702798669036692946356168820018114490278801264087378427535389631917552686038976546501530728396783590039081732057417494592563533616482366770651116851824641482856133330421059816075299505278228323722348653528271986495292897611708833473695223533805900605350980142695381993928230070467324735757797087184979399553292189925090006130967396912845094690301051089947782540789284251243789982662266172071663957869849331010048061873343090670518252223766323707096018081234506110261717793935029274710096114834747600958361145625909941884374815245718720483637152457678270944865536903020427779368462310699650217625115604211660202267695014516083006934951753251784463060128617134483439863101619016034247881180764684167890981275242454356134033545957422138667145682206258816438377324217492940112075927444783693994576944271581203235142226509462677626127873232247891583099577358007063590455899721776157809631094194288650096291719437404587958848284790478076968343338571586450818456848965008863728990794791984916019744711608895345113969387419029621316758004240888356916334174028127552370838006167590935888475252216976074350501487820950795302858281229172781935221208880741034008340943281042302336306662756362823996664389813315515424045583539656873442300110750060097928718704540365733976090708708310638168127148117618748927016514730141618299398410116241140995215263518781668399871860445929712131275726618984037705483102094399455369667510002727111276812408284638419326612542872562964677861191960196063602001158190008865641351359952892521250379289742030802112851178945210347884448038990763573714622550823854972175412707274314793004364386624566937094533011157640899625255012630065684028707423135489621506169577194036912977712884981192380877001496665700062729202161581611128467666733771389087788668130113380717562516698612734137743680780167410952539106763956527924741574738430092147333308661858673232186943986548656722395643653276045190197525028858563899839480517814197419621429159999958802582765685028417006595430409611924632555628715879632375038935087035042534938452743436296617710876154288218220612478202349778651335685617782544419501067429903575882905458101807100306457194626687285898919711259535461743264398747565025284607533856172962610868128585235381094917970546158697792095198447207103063343026540568822165052867156581351459778513656804108970580991778029368987213287451301191344262113539422893412891329204648645906529476349606027217795235060631329866554166472929868655179441376136287931293795086798525752016821733544221766048717301234977265440148673470569204051141847259936999639386252022388758211374037827095558544127397869785187615291171562995198556129781406646385413548592261863377428712708362740185316616848874301575194455266942340864215295440744781477149247600668490212936597506487427424887945414624632651522327453782504708080885472969170606636631269418718617161642388972227404970907338238870816691405080150634457274285686659922423452733151374616233597801207772617856133287625351186213453013583572679019866797966173524918055764164774495435231934497424394610104970275300035535147596017654696125337566458562166333274750735187560456359082663961510094117061309642049551175402778731615369334013684093107755900036142788086949419724060401562393985166549204821838684418508225541134976850943244701499484267659078326597428255707653780315204772230292788617673035586578235758192918915905109894367046386621692167480795794545456415002881439119360671827579816937224843192716156802666747654669282324351583852399021057921571439522285083493768207839049582136885894668857201109163735753681301207003867943552719047798948760445080588059686805276443052713791705526416049202210418667181085049036391093583824405977952877798921049397436079545536536626738378964796383346626032383867605528644835367639417230252045582354428935505203451607192995255966694856592661355175577800349561064771770801419541197800518070130835045802449267029918580554071748003016222518300791342807233982389306855865807450420199535972985116552649913997751491347210897069145638615986493161561765256084766459879901420061792405150741399024288059584658070384736621857539655061621230774189283704227254735492612853079595417531371710305057463843046442087854519964211654992246023244316719902955077733167274807823985675787762530020872223834557016277537073679819256452529212211207984419671904026266590829437260193000023367550968955247269292291358198322753167258747014359304774838230480923348388572735592965008868205667826383537302371707809305498567602346603408499477231042911036678246466998575256932494683769927798109757756834733082664934684516903644880652077777207595938030497926666993663456561450814878551885482435155320020355411821011037694589087666443972821280213785234131695916118542720999864434145533317459954747999906646333652966759849629523695367581783222608307463688150850603358055691050127194079946276511096868700909410327303219461267539448969034990713038332618547801472264223796460930475728180970444334437032851886883680608185435977514937750058205241482981596886869251512571407994248470469011652813461320724610826533714311048277613838215973020988460061980224714137070365787742511732833556410296936111214808078368923974082621446598697129490448086453414382505281907058794438187535045611018213729198563755136826406392816816061324718059583628063826233262573246805654060409916464906912756420899896081464129494472366575778141787800920224139353833858802416328091591946786348322821597618051420025579855388641304732836986047833974993997138413103422993180669686023448329198800107261538378277924935506611328136798357695928441075204794801876822719797631702362262246167597460522044492946102744766520720941558333855003108619010874628005034513943503825335078320024076216611450156145312807095905060626117789638310717833004115686598381944649181397930777797765370714224798100377979220145896909466852306246453160818760989208900698372268481904959583234851893144909072086043414016878000118691308276217335753880605717921112277700208981702418068755504624566990946076482692167589217560258530514339221929622721297218050170090322508218672227828118854639228269074739264809547613202887503027931700406611697249344273940454613507130907061265527197332633808314311393990457096041463121282637398580450537417499791847092422343126250396464774123664981000890336520183628561682458098415879316380414335110289433075276607522694605434528169506591475051789502339410008231439911417706336442608765513159485852536445364130860051319095235276393408370168723146055909231456815687489645995210003052120924119674380158487282042760388946645152131310959819008441212549530305034247160559018281536081959890878747979244851150916928847907123030482001844945946164699016936104964148893316705820460061778096259497395925876427261834813614432895294875246976304729093185998078435769957322402841170682991792530804773664995860069960851821015801596480952354645431679810803158279825658611166656581776917031520644396322953201971003785007763076645629250582775682177902724419446025488562000784133866212624033227834400669463674631111537854215502471570986679567562398772497748379989340480904270144111373393453421737161311281946471435786921661946268833586151056067753121208216784874529357482428396827492386871109452599239260668400622663571870264027677876623830342993340502376092743558718962525658002890265038365947992835799446015423999287258929799057315752007207517487167824677298482832751968601126256504080717301680803670608867642798651297472456365595162380326932223838810575234424744059003566700147055830634028260894546845506838693368464452795996813647770408905308011084172720426011657370882866532539004698117944006839955765203097221873537165026414611480013037558039841616382119828749423167849662237042668946197682153288468728017781890265273412911650157188514397944624327560324574561737573428542987643565659102355576581284951588632344306360779677416426785100192006352544788806641639304293719034314017495040279025299967628559670428312966302659696794465769541578821383457290898506064746797342241393341465622266542448923692822196685094489119573190071252785890057126524412100369476427317044835425320629292585516060466588155504048042563140601004614773623156621069315372832267608685004354157451159867974710705394778811659953584338999741568326029824736586707669912444520507138405886399736967219191847688540785608798017965790876632500240141631730765198626982703698823721741883243711225528441188780678255150268596702373043596672891393895591743411013013012916532262811804189540515621309641323321271316358026457504052657689548364492653527871826676276952417376634138426494672186395507032083590181917982750316854380734035069403343885232794304169485815707874312118987457160991817587141525123150661151883378862323609732201205321659637748087020950840480761040036888446082902726481031337856789479275297132120570103968974608001492099102281260455620159535138247168098133028201740947433205675242379638065185817774988102167789381471367632168533368395595740502895059376781287144767341514273950422352158749045721071940025342415104730796390175233365845952530140984039091550282805431178272924878563647525174691098786517256606808990943156265230871521068594238079080371970236354973317090168843340965403120275685340857166346780309991831543596377330712934923557258767851145254839623107254037394522831022168911517009252136687446864317809026471588455381345522357989399130249250553539929651874058322024616209698635825656565616778432539787826022662020711939658113959295435722525095750459686045594060076066748632378953101771657192314387229145409515310545209844950112847821585630491377485385295636532354508139522398648488901274082903125090256425396838731472145267474993345431703831777422507051526942944546270670887546237077955546244812016747243291318490918796043301157925424482049942805361457591999684939590082932764180543842246688045903363177214030742767166354590197556135846015861913962028526895664563355964447350457847778555504047567209108634727560852712248747005970372257583648331814032418548834523279049489373274121804053806253848274533816977897822060256307537962905406287558840149625926689789124953724433120704367645264038061887895413118626997961309814883349130116894776277289989095415133591155670229356519414576551087417522349816354961503339453984060782691990865799639008566225924922256453780493092460178214606935779429083891174092231421151165093525309553789278179618395606613919335827323015846534728122755810219882496290139214592636709918075338042310640869843659660519239423254514861708405393204473087377336228479642391055576936584243225097311844202948023214010502137557432128910821689923562459633066673780371267487911114641062780175636624759216738508485698719603519096215093214077643017682504831104060820779873605613242795923575359880794874935088662539741347260083110593864176538740806148741076157535989788010211276494139964915702988776220912599052050514099405338634952126901279883273637064304156044414962092237900866352036993556593179065098880429791165750256346620837571953527040375681895737110095643082713355732750812865700252495621485068108045060146426174483542135956395623471707678813353085792588999718302974317688365042455207410850667828442116861272156163987657829786290245312431965410619660792161399969161140272451399308993387939275701108292651009209801681879326578580523452887385163049236621838935507649417266752575445483268049720430182210752306166041464413600551677100258351412516450230380515340260687070636438599012737885580107240296288999875399385393574798288692505402781493931118596647804973897232689872125592766259426482573411567994439933317195459294297481466780172625875646388504142719315786243214942366640349031544215332493203984300435615036040941783748347378025787376014355997210433207443506414186507498337337550746006573663017571512009501199759476249937368352079247036604470058248225580418308687247785105773906863927487373420326236454778116133949379592586996554413693863168225312198379753233507402747895977715659705340331260217151868512031762640859910043040270706449149321582481824665174796947572786455295356576331834113960796284174116144550439884699656823327327094203035545618610343311616932325874530462563148729715931163242412099710073560792770222216717696881347395192068803961416899558085240822301400885772623336406473420296506086840193593915103350028064551909470205997790166486327553104314618104027184222332671317150787961751104592364996003976821231282395327468317510411820822560601683115165628019666259385729676307326358700410931988591569254941701115170106040590493593874630783257234109935582088007444719714687062466117039095370392721852019474342537628607969557154374462090551211547275724538069199352092991553343429912631222409708415860800786166186820033786619109664455061369383338882231813410537465051942738029448969472434533643149689190995228143053319226568401806581070661635986577402167156869445910848303235210292560528088706882562699628420420412412814890220286923983420817200469351938672044987123840836729474491558729918413266285266588426401189549446935897147141099624254532368263089412898049265955869938298871754007270158655643309313728182536863088217720310445422546982447872272219005587490132476829661855273224977503972475495280059969712270220378135643723567680314570817468159731512636128132948362986990364889459264580995131459909652921294509839966346476729461814315628498184752242697417232505780044524292904992839177758339778382188079507935183935942539631417755412525319792146630109724698171107943080632486965670266510618287937070348223705171979805808623091174074785497739580186294100229153768449924483804781448981098401697569627903150656116856802373913450501728567884129809031662264376588464013825367311999535862436911066394614542996223303339318074518390451264900975338875492842957679916014664650210641959926679345154792295496352476921330074872361184753891031312797566300464291988665134636146945126434160346188147437012601463502515247449632241572913468745956594403700927919723947924693604248324883727392118392594866854661175471388924365696144290957205375230121129089040194226174456648466988537779260971236094456117384074178997228407808106867897284108192523897793676961916875312396153613439347086625835354783988975019201609991428542498757021117223931681376673116503599904020489105498004335403178745173829677303154805025540634638382753923883420993254950457311988126739644848540796780769527558247457645473914866963045547679391811950995449785731594237032229588422141655278647980529901136894445532054483276939511738329123793198521078684809166648345317710349831828823237757115885855668012502755247358419774998646563870755093572822560324802264123847049422704877205750957866482444539884906245869725181130447017637481541294330132470615789236405312557720819637084128662501976837171171833080727086639195137721067453885030852827760517731037689124835829110782871033566547642514512900146123806544823322047455618873842946153812975969082795764998125146336517736740349520056400933156147639022146128985283765630975253585692229740772695868821501448254318619089871354902676085653385484028177256014461276381043599220913421184070593361342924247171545090465433694684189718758050829731394229505536770177646263393237745495031180768381849626442979835357368944760141628427232487709378600168403598354428266190718672447886001842826742196083428868318410377100318142269098253849480557998222230732553704058347130283255013541107836637941585085155455375412406317907402538727207383425642125266861399339080263579465050167593614343644697348026289247282718197705251449424329262391552155291246569626093247928174229439669087954275246200072929470570142137415774717624300779222500490618652710390138162682402663709700187870046086844531220559262656918030064899102883601045349163105051598560311014260465439748433954358956067009034028269887326586581024138097792278613528290312061985639610472737837631296692347562400495669112682460318696647588953500214961362167002680210480020655327137935752352133114733876686405171217282147877947296345765048441207930191472018918399755015574616582717765067018082458079033978972524071276321807910020182846297359380785912761615837166457332457135558696787781092971707369678357369439874068616948890373075363631245928174721749387150806872828382950140423891075394990813657277151053097877464730037741137143858972695549505547408233496057133569074569460664938897485456828298892941430446391815706481514270144754882925618681222015978214285099333740991571411996075525922999032112247002909908995937491349899189197570974234005459399621683050121899950976834258688026575007176754447928607115217233890482485207848892804853645203763866973177779136462689769588622256829356613059263484965513578347137355268323090756343322200607910956764763055866905263000447696018905321655427147105422095389013461698571402831156537088923897932152143177918441379179230912140609081673587980295619387456536369278931676963269052567516241383763098468688324591718939475400448772319791148629998787050183828679053393858978509610405701911171764034914132293908013193293597243681220495010850219350054426222849609741805719753504772656915647096654530442452260004572790071671991516939369667543725518351011084098192283216192193672322233725075138861011651704367444794875569248408440364173681247369748489339663192326580076172923457382726264227894131549169580278800670340355706964054780849854036135894114570826722677068521015861360531740026142971542520472324179006879370246027487592681521434744674038163100218073270481992829204072891881454512847715468680571869420603393777782886994811038814965395091848350831315134545459605862173086319192939444537330083690633479810767745356670198834503966901203689833311460666023966319788954364724533971953731787727580264139809281740496886403873603289850134347523226931932609340335365051340530646366767998180593501978359244855727817537205313257264668458865932417098529878425166045923712007258945655499179134799437223895170429297124335322396760832364428537267156843488718993648567188496298939066492890010807370137567079174534445827845497132991978016161388302754466192040370135793019403846938401701998421765736144813345850686897903089922605552059506873412888281379439459077850324199220897915619397051936098495605603786098028203621308268242914691216243951611099561726306382751030705663218803493792429700765094060449499555213099828087057924165696692276474354087964632401928574338869712964255382670911096784514508887281848029622453140247120815134197332971351218603294917641462029355158153689951035519932398393610664696091855615261725247591677098738503406229284873009903439680599909239354517536254913432996102215741601252736860784310105640220059342091949156436530817061006233767712133067440592360631563463086955489510749609732670726810678656639696262971605015216343759921581490891268068394004272036569732472808893736537564963632603483064480717974140024741661253334504048677959212402525004193086606180586034502901354175345745526673154442767403736804308546666429776676714617382847342583287458954017801011208128169577204201453376298631022619076135202216515228803331748995529376152550509978587681860650652463905186180742346936390928485217522769644428436579498064440270766604427031772293364748340516920677977325648262744320639251359582164309656630946297470222296490400371071341820549930618291319515432680659283742334557633869077174970377753669659071955697407206686916475369915868861297296977094211503810674158758131952739865299221458489864885880745630252199783300202530359938755643614405184664264709451135433446223521870345402214342901134881126599438943808883371410755150297362789744815145793524413012793926754675814033426617345825613055915815596772018582668837313820113613044046411690926078572937165456305105939097715440529971728298566369892351401621204924692568524828000364462769102455529965779170776329617134059444726474671208171723900845405966622812122395087973804268168129700023525629052650277343965261314898392057554082750487017637706759592722275525598328161244074727929459350245771545273184848298213369466342140885321265212148989603981903406113450623689351627577617568332748871422100546299479926170733890412304138073619190759156973867663914837966237964105679333740536361035195811561174239802304828177244851136803343580979453532320537415166645735124271180710149883973560483964293315473251235981812365394979353218218344934903143950344328149407512534124699961771118127231152627628056572001593056393036719729679867370351384555918322379418202036116888134208955016198982797685691410372552352164342878575587220818813941015897812850396731367263966959739554587650690670842615546975775126834787918304970712217547403507298389065975274069049993360312157305337567275599707713401269006623325010127561390121858731338378732579190512112968391269831326229917562611371845856873632631665893273309772089737644675093202811577446154358785585919929380149163192611681468345866424518644633710515919996150800737024896455791070874824190351652636666009654502682803648904884470040164382402912993491297368582203732996454734981725403771902040022018897031165105150187597310729057799952139333745773156935942830052232982669464752800907003387519554984229762097114889656782687790644322725449467397076172900703232893871014881110228708516149904767576668375063474149572672628666196189882624712327020932431072362935977482412889834707314291332698553811155344320052987682603778064883547163571554318950771923487192225139292781545213210457818035035403476751606376486144914782827187525538864646712276189620544502329160696008380321880476313453874660592585772241478113858509208219364492410629699961079227543896698312917461730978485292646811901860776914349598584947038863314260241798517878835856811320806565190600642366526098436637511827539019493548357690999006436156893894167571960572526301932375168070560770968369203972301211595267026129838653550610696793766696381479474914355807087248544155628625657775353390811849419429998393865689204963117502229483281964958519294935023997663078530535989577844216604218620877023156118870770101893663885312996535808596411530964931992341394612389161274845594568251713738261284910779517115516980844673561978093784227025744521064434385231128148592919909243666963548651549803035320007853360915458092565436590249942002456439017572400817906292516122555934551268244292786127051013312332978864536503448420344706400887387566910650545829987591201518950512887365469987538214727692577904579022632285100105062502947586378526565190643631527513163633524937588856689945449344743193210111048945926384928280824761097678572829018429445126046496768821869634731158176938454288060718050555013473740947137295000433696351535424553110996558834987756620002714919925510336401897351100096610211687918467987816793457839323698329597623062982625111517431505404665550968659044548074161636772900589983859867288152565267642897624529900396030682855302180354746015611520670409057997455088579436005465065674096202499123322220941229628930293711279424008027687771585040526850430253126117744825638380438780293254354618389875743592738585477108388061525715171428579844059758051244606358606215610653314061335911626759733211392169213883464093801377202210463931104806809623692663953700812277859373586340699623253097154070972933695807701156972725531033285331610840197724389250334121019071323629223836202672742648378378780329864687527033438122351739806864160571631550479203183938451936997471714370560588015145289935328295690771781711031072771373706864524162553102906239516411998407012113948451765412587455769110933306758446564843340984225029514955019854986778336377294973307307464180891305311393133165480951935606719265036286250611813087551624925153872344692893826946360454162386499073273404348902039341302040602443758714177663058370007210381192471507688160342788641665041159207712673366697679770595368389500865144031886490146538831957171140195305648072556794675308167240214092656230562816107135537376238331139645513203095703510405713765974262640745306897422718679440941675883720556908539467718649443498649106618807460640964956974172281819182569111043064105711283010889913760907639939650976099688450727346278955267581941920978156015091663677221738470683675296868799279375602506861324156395161526453446980011052796302483430721386674707387359747296672473248577140830247382790188286203136693864307287416553081348263786494555190041630138817449889335123501640794008846556757114732215436574758381856905257433284110816446414318040154246004685475669747534095639525695811567262364079379375441862849401762159977175420962972262061444593373900428988591256690717520072197116794594104253135323372154390149661654249724078790798944372505873575044953426438131574870011949729453889360411870654897477775473381806982932881477008198111670688852122460674049964334902638637224810689844601014753740702018489040711746935161049784687969449640705972124404798869101275497342451711307818765597453513683321676961479072240805456355842919147461317299098090293454329835607368742079849073707276172926676010200826890906623452305936253858116223312771070922890970984502570759392547999840102321171703013614674562084089928882449382090734751167396396687293936614375288691126252531211936049307981741988294484813734387855637700725419076818145762186088743289773023924434148154107907445058574660319493874169602932767862384964376693475769277436049620419898310911987708880769164470964291260198886023136960500873455687097705819376886624052613799112951090020080584151056623345339202992572552778928164445437033626241311000632580141360745848606173570500770722879897811748056635599366289579653883121141872404331614491670067260556899197235257228461366542489137366962251658512349103895704679871874305779943390237058753176336034374424428904656028457510158988979845918563676309214208911492154164018471878818889166229570357152206462847764377275424046138459825272386641397699532903652961352115101395956091017440199811054274231608632829241259514746935957914903660334058145638522309973877200649274943418872529934707364577563940747765693374224640084110973727198298560492593150499391763639128405323990117928039117842209169266654713450603780580486466946094231950681609026640756647925162731864891624376258645641060771634422638865238120770249097355113669776510399372296555584958407880102191323163842081457584202555311852361155339822561960755324523318535310391965110914465189284918854479115110811428552773164851929539892305921430006274657075037817502005241869171809991610414612184296227459970510522547212875116397443719141256864814196368961861692519554825475180059328360934665011659070201445307521482922823628421656376322411944679764327040173516027159006239089419358317933136306614460276372376507501821979827750247406130556697765735345619700055306165712533548005233133490143448673955227765933124138102424652264228743355563971078733474336181052626755045043240074304013293524829933758285093400146144443445490710064974747326917019538059477793242465623123718272073001354475772470896878159966382758101626070173277059608721004394909129089092822110838469151233123550108644386628851632185123235569066548474023285048345424548654136725021387999978271618835689712356286513610920281083350758149432729772830940524395543679997359096945280760287269540597851606082308685851817961953686613006080938269283571135501369450796279006874292881310041260348393785725202465267692279470339994058213956213796692121762837114183206312014930770894050687807333835506407450741679801776383068840987656734995443136870772660627126279595122074234323833204966206200076934808764745285602154742591690963819151154991928796290843765839263122855188934043006503772250842671845755572724851528008189730467107447733608357047560971876492017581944026219305347138952018062207642640073582415510900355951950270680043154588023154341208395023711014802032193061305955223040196892158517472243360092047723456778528018341877657431500309649396221226284918877107427846971091430169179275765799461406587144995317668349965920930590899017203361294013031085685305246044772249104129090515628147371699339018525252117287126955274228700006141658654200659290776640733588827941321329095526587519190028021756130832891533277368680476976097402983017142374695038589582483775283633430502876641699793537685934585909828049542532526005279602617976505948530855278227972614272835387128069702970957643373336213575190721728299743100170657523521526074918835697444476207283040987026850630312178986898655381800477477204579611331310654556761538987224706817139914930762594657612723820333751401503478424782089654087414658252674249610252624541800677072986308074234686443978299428473431496075199407417534051447728254686819635797641323230471703518580825321969191411911812494754112072381619662668351700122713135276847010537063283276222160489381717157792149943852294064485891542015106243843009032194874516433088829237960692535946635043923505070671325376554989608897119049248416745428758004718447583958977949738385659594775388428920533362693595085844155671784138572730695500639124064841273646571721131729251544564672729086669996808736823133307178606231620768608585180583491952152090537056536984719593362019936127645115288753931505150333112274702186798340662449918733430777379954132491262210092200725595923394069614951851648694682155517912451107795245071168924661291326846096175776946056063216164593866803802098861701289199292058725336615745834938381468360788873837597773952664206280033389435715445648754378861721844034520209959180078511451227680703110207112757165933364432610891056812226989671954060386490375811652563694020816152473991834259596492464229423929570541911400010663905454461938325690892727929749351156597552399673237095402609837694177082189825055103394564267210614756314424942667876746840375762175671542424127109703725401808716001697040227822480728715116711812548784651664790322323810564363473270783265919478551393835319900842887876063928029047888745260216340336586148398898293564596521979914652627491638702110525707015234898235513993951180815009585708618020273694023495925829880583999356763918975782149602226311558410511048509809822745519719998829204309788732063953587767692255041076953130901484175568598020713282579675042371223565652479609815058735300621647846910789604926003211954367531631898787122172906597530604749379273552287644052338878652647622951520417785681983173694129880637483412967024481610217693020773560474859941067435026926133179925492462065248499994621255516348954892897594405484619702308172200599710213739747309868342629728496313292804370357861900646968123463865010783800476513318657305202833693236437576437035849112824155545886704287934835906029668614532579533470035056670629893787747447252444791421813608135885395765327481455746899841372284566657172860303794895463313925055469588713453369569712709554712834247448387204929685353974986634117093357735303124329366646202928204127474059323440997185158096911516727147780131073983662466237387363777863164110365547490778290790439844114736515707130875926778096293083961127360312516188923121142727594169140458669183601547373582061490902533550291833582083642165332629143002777581850528880262596733103746117209174200993018164972179993257717359455163759202718441927286273272323536817268219707326581485094105493790914916616482147585740820739859563817959260952092386908380584485719436614025142506869867902812662494910996035940587634886589472171504881995075420684517933057683694747936520348596936796327705867049810965280906805107324951122197218970024365209355204630161875475803095109692508504972952944435289490441867991090637537730502486715920854998297283059494376832081731792172716032174368313296264312407679811318854169304510330239628000157378046973656343285873952989837792541071966120070559878778998618670570549583661503291496421867255827891451736199589290214067759807702749681733375603331382040284764887113094662536412760491728927155279837465130292438911620322758390039944213791368223312129624029172184442910346902623881074517790460717077512170282415235673496770641913172259024619967862900410768663202619047115971844662574247332926207760118926988334938824164638881992277930734868429687735991677706042768176108773808731001139818902001730496799799607943490696577824495340943375486637428020977529963045119594624309924113043328994351209927698868176957592487688889101906825450572327892504205438257350249519150256158894123649915623842869708226473069755299562760300754890709496500750457253569730273231334794441116327549025422022494365784360458867310745853270509857882100798377418615863069566197405021618222105236618664183270136172525228699288813582253893771369288698711030235676398252241477919307090471307050801276159987355052917404542387583717543551501419957040245178851809918899864422308395080253277496990059510082573616671672568364399628862466637458480427623019604506560101422384992353030923132624537063299931612477700635245668211950031643295057631757315430446922728181599666464979471409166983084477854755119486851801951319510626240094596498499371497243888966408450972622428840838021940589057571249636618923919580803994363018007643322955620737648311247923235940650084498406999508444261829710835669996558480213091338818416516888059516137821418740022812610879801509369771181222103723477161699979283795080391477149226204444645766953555104024910309656043754823056468792035789144335822084496104774810083307321384176765060508710625538432145303680970320091663073754975500545431016433305539574165128314537792336760783079443759892646268103266113392618146156455748538280560697667548658916640938064523494280597085586557903025815268355252875016382546169674649284449179290399846256151058086075241823634497882910263283786834210241985984318662132928201112311898241044663585597485043291234401104979090785945670631963275900932510109060531091083267518532621457702155279375982554892544107819008123627378951702185357522148347095098403271284860732742149260400087783695444119723287886384297077477823686529064223615336939732566478213633678095591049890338716005500246214005687912559153343284086527445877652556480896804261616088659204759927374274395912592107731835676828685521299893459439903890181743298827218234164726578614128786745053094881501103258510540661472348529072270846386366192844790330327864914698941123475599200631190873733584198168252731711223709400746302239820998584981757647180815851403074966958467132520848890189966015169461503795755138146392712060002082783062598890088823816699938564415245695254708945424501259846518391034112180698854009535050045013282498621181656855860518272180008662107134335346830257408985674671672397453968388600871922142453816724019838855873368818543857136415327421603474453309759708913375387689128827868734211976554199144567693207151078782112899153167935770520684553854417335044712209008262030849317744834931798583345209179168293141112645380477290228126924296601531567702780588514379161948290890949360035864397827460226681648304275422540902756488429896792911162202201236324797239193318128628444233765492537815048102397793525931069907677798801965450065311238000135144267613507369267676730031493352097688199429867750900905071270968691765366766301880632618725611988092512395844867538139723236006192195840278342567825240474641831130909937246259001989641914067455058279478710815190706116507998096050912723201537600975591654375376534442333319915583681541291998221957403345865570312640347216712981102995655820732080074829298998232166198005392198832633304307540513000217822792866158972153033318706554248480945680662099821679832152819489777536045629630717366469928069666943306631129349058698778976456303166197824227140173757286446660563342487786247381435442176602240360293883869372855537892201426002764654042424725616426947455568598174304868042344866824619108416174695760274923823560644367775249425395634321256178871175158907415179191028385976061110343866065360620250724599724302799705501593000511319436681406873188594582267266511875128539758896541530588246238653094967420570300210482915198825362506316508276766971187243696476688507878028110980316688242797332942376405098625607895502055195195568776332948999697643581970201994340273794347502721000356516529211617883964671984752687507019054041851154741680550414347008579878506551943781634490920037662243610138238951843314624054773470065956537366284731437062130742963353621161507774522344144500094291791974480215825745298436123921626934678819529172812705446814590676864840660356683450975082871032934314135847116040493948016125704547187167668628909656851625969713037503949422764304790707362970603343336556210045773022902921678593998268048125245218759282363753940269882804061935265999038714658695525689135987347397931169718192867498115676407458318716954903109635117277721152783786524874348574807581032538500054883791818650612398961361998244731174954571986475702467725221724257048572979133201408168139175377634063498090262691909350480803530854015355475480453271719431519048947648463451112840738020420275904733361976000932208101556633792838035941980353229463568202352099877058244171441164105184114784652149744503736138046411351124506469408945634340493571672453333895611406534341058646864348156886423733340300719168739679313856514701694456013694934154101937819024902122351819958253741224632706117778710552835223778111213908404364401619678041230041267167639920109640427646840245848634812326272596317784571745149652761143372003477016567376736308560120137529867426196956153301792110444364736440900009515274855818984560776376261754047900209712744301573278208532903093220151882355944090380743895030762160232191981887790190559786801136403785530635606732045698911177680044101725386136391527306582805987538991898250947038303644849692283309141776068567673957327305040881122066048965462397461088554331069289206968268852253230026668150458807904208148422586409632465443287730646426842965307118542673905694944581358413547137009931290304812953239409640117602413679707966005440333698398614097534977329539499013349852827848078461284625533325682033821256081905885772600426711964155858201070554382868612116202286143416340278694492487037265075076935693226540052428298027235952989030443344235614023165562532465640148377253786207539758882642541103182500293337132189589598632336409239147561710851251126439890158638671321973473322338619055998092858839640767456890196913105093777015136169816734314734136479422191523307376779383974458070822123959191642054171355360667601224857311823321831159962630229102106410749560505095574274170191362656990371836226407996319965814375650994494100209579186500122284678893791940495983294337339388316109720690630994533510246441343154773744515175457586743898550435618139018660431366665431340576776059519115783687536953113992266988500401472023574220166296170084609898904388519680759113029746955924669974911857595360241376741348759982976071262626093396686200891300324289947664310735558288682443142987400426559177234528186518414014301713132366693670761818520310998319549488588219594962382784547343437162889648052376889270683213750819199945775145401757254185125541356960147837539934143952415691985099141725388867904848994831457814770797661120555523935158369308385939285978693765996451489958741803698655385543465184801465683600764748845366735072458569010435092387621138582617658147630383622179458135074507343700057356913153194832192344500200006109906644735006245363955481830864333819838162722170887866516190986682589363692210128545028951682466933985306028777127015911040425694385921084188219116253660314482587585703955988019876666688308846735810825506310221010419811202756611138741363384436374148128188202724341509635000849113945065317879186122092069070932625840150101130269150636021366712135133795944379214589470501723669202973092425713752867707793595274470308552341454789611443514642729388663982727370026898242708047032197358056653691741663236409778967170618038112679310841392440980609267105705672206323027673972201046434092116734136522254668574186585436196767165594902681825837666600797579559778419246072004634013999546525245379318644868940118982806990425357987647670295292189742153093924685964621367198736578750437953623762058452428107991962679155853422946688489196010099550184908701417592697225423584973685643016125470080165955034966785382972163983177242955241922856832460884046078435388119543427942544812207513241344463529293611923021454189504672735856342592602145779822231028588035334291653833203621338395386612653932851418267507847024548878170196086039411523668084744618788673696410362087993660819247920788614145806693390407052262286634218924757158760802213938025164304251832100212553832471305046339417774070486295466240736684591072581562970671233490512500311142462638486834372447473631398512027153419927978473199743368126589357980168833460867795798494563212385792524063193466650640105943220574933038431087885304340440464272147606482567396875178161320519647674504435301192132999002456392699030827594477506442713208001168949382491233856046262881030224086174056642295504882094577140192490658282975207511516402292496632710890136024259715304083246425017280909641391455468126953093731871543669908437050922248233969316323270012748781105855383495991916547223206281806363980890651466733368333473980737778181634525857779745974920668516988009843121403102035282281939250870460076055432398274360726366346182395537955365982749417535716429275288516844267401103682913299756349076494551999026475418048693366893242241299725927744025350424291510948946124900232189169633671615822638533914418310008331599976236755100171511447121378132947766603437580539162993850037781995700753082099840939702521675609684469706261934789952659784390529174861303661580538104480269274641170845593179475667445437137981664918195702617925962437497970794690157037073640876070185262846873411243388891665646862322252281143953477885707403646281103055531821435070917011356086943627882940265288723846667244095905997437891442611512029678396306817284226306281991234836559530660392416112723527844567887263111457026241226569261844978875588498046945419574601540818491093904712822373429511881396911925328405733876822183111090008337305344672095094511004666385884018617816260622937176362570171657604059182547998154127180957693585698333469266424129879676322363816173503851273680812842406805655345046711337851987366355002171861859073859285481865015812344124902843749157051779147451822861777303994365907273247344763009654744400231746282737868090826680300412517732144232020059774379173041247954663109476199460848320491622806233643121568117496837036337130389913226520723137557510101690210180455636800580364496279931587977164738940236137858229493167123076959980497619307244509326737282398650474922789996372100805269167359873634494002996705383639586094508036458560023670555911432146802268983948540181575730621070584779352782183179402277640873175415413807664910032320655074729673035617991352821668366994954828997075197261883771230028360717081291063416089294589445786980324336965675465920867048181104447236227152691342546617393473531469476367244494282945085014201948067139192298136799622343444437823655415245606689149825244481496612376610975274280991138794987752450734386687911166362554911381038561515179234498307667865859412074601984894623342969498099768489796627831087046721842441916077600879038975888826721903732867931025379170249768294074663341922226370951662610046992798380781370528850207262165291193053272346214125721511886281919269293207040137273753519586113589925339037865781466432040427430247701242169572560011684049312729553403567507261807249310178574332579702027840157667450270483558768403687437702915576716296943724856712164106138906053740134750344180793767116178886590958621711039882091823363324581910279287850126376261320815798518253942397810337042989493005773740074104969397074524850196569375536647973206743910238484375300042899002962079783549566429531243097248682706949261004853353959777413357644146650162770247656701770794840984359207904356197217829686492294756303444937753495466825000120884621279514617283888552711879435892632375641690907540552623567062819100437329616638192168479412457915132884124907761631972693180357776130578353563120767657152135600947013776278406160368439812297537652680644304521207654706318434631406682510097744715185958934470093646315896477614213584802641427292633928941220053032006197992891428699071902661446871339817197488760294634423391395974055183038374845338824136922063489401134480188993798108586778952072712017080851118803406806480543136964880233734225096498596112342659082803957642742595830749182686240286354381370157139656095347067453291808363446913009178656329277609498964540367529891855601826397623065967465867023746339313980804827417970452043231626901164624193755127414139561939619904335881283836479271942604710865607066731352212976306742696799291852102656093536810977736500570322910191474927317540006233704381181606398062085292182921679857320307169038120816055394771390559300656678762952326494780231757680501300339788797559738874642342695767970581281212734244533440295343446457207708272108192937579586502235659847083937894137944745226766941178376769761720180377574514834190291342238793096706104812590021101216195576636924092063821754402261488276767805774830791170776251343449596648628137715241694157833036991924301677180833906910312415197097051871241313821664596873819354211057655665514519595293307138183034518468234388237920057622839142725538192993302140071017536333952418075281949518138416608482617900086607073131087348195860342009565317650765753795018832123202934633165708128054224369579810840948079220645288431836557126744893656427013275184338738086940063069446720445648669631497802471803885087765225018593173913666186475766858949760887762467600550085758192589361945858977319766272360783439441269373676049172238008767935918832425581111216212928884558227952965717142185375665154026929737860118799355825627013514042080233795867618274212746568534186250811932914297235785488724256943277499810186424962081544418773032076521612572339312593916199480191489231996563424288109923631247647268318023824436135503610929605051998170745699810748753274167734075770970645590504246759618139445522830073265273134105198962212316671613526029951095087969854261198801943858787317125937874441306214747084905643245010166705067972286301277899926772370392060980225585126150608874259758943827683296339480028954911848908842748773556326911383935384915961125234408205261488101548135978674705528507511365123121750341755497474650383977928880229246293479977665865405103758912500657510960646361196348477680667644391590518210447810366244806636236498918718378442355938643180180824954714938081698749867970081252273775984667889692486231142026223286463391666351555527584327653991992917126011096088639706854273064181147060978870144205730989930239799464044445791660915421490538776687429409185237035559556160752841466043570266762731413128430701722664668764867611569076870815223427590039631393914183397798035306933018068979470090332872627569858221707134900514501694523974151457180037978098959608994385817724087237982801602604887725888909317945777220323082136713163628085935146487126162297464691804156085707928930313155776295190973845311388335783291371252359668560308271460081842998131982585108385558149460931549618295233299867654959616471512298580621883929907471591414179487450099800100114467575981709170132551033674925587700422075868174769466311773571640489078832677956880000637923631025090779605312605878022958833302260359498370231418454393106386137290253310287623944320069326750962921575881114829689706888179303024927534022031577064856843539916303657078619651837388754224978627113581041094656108470907081567736150323182121822109412542870163781719708346436094035104983395610374470858678564551607020791125359038130943360744580936369460305707802760080458363373505128454592131043054315838189320273081105230443857691839723216744367057631159950588227054392776136931838398654111152057568340877211261243993160272095885277202308945724237179361998020010460797397714400555916315262461902374105956413693667070918616509866933230195964950488958409579994549407320051324647901491871310045286788769374519425360122219849876689248244673803707708513508508171127055794436426639450863507040099508201240184251008371563546525661396240190492376035061799720656078534113141567431426988176487068551259933879395516522160869193626472710104032695929314516678694192483359120827201006982946795121393951770664964791997698554923593797983830504926151006445542838742873321635263324098513690796671815503197923861742268595753694092035040075857191860839056146504491256183201182207019686336737497503202121069547277724772440965685448258270048082276812708726941904471079597555155663051121290738460688492875065815531334272692118063100297751427587716213704069108582539350047101927634036705244860632976251339805511153093201884803715772821684566604965391171381525601806640501252437690540941188000316871403337088757194591482552616562993462531702101690764184285479906779587183380723141342217553809575530580147019917749706106979562684942586359784665320866744875176493136731687786370181196724900059772254945453523849444563318571266739943039200104417149277198816858504717774764736039697555853630683719174811417293802107260764840894311770370590655512001456063289183411157561472260102553154702532003402720174801801005308531239969203552411152173017990730714196611557871386736107153112160549049290392693873372552335063446855186247607380544914183430248233502864336773722876399251603855762038179323792260069185962698894519672954676084353148892814836472570301593107266597283514160770659461832505669358692150114077542264586278352994679132348082466585248481829978214698813837758761143915097020185397597859990255325985467553254860681626286157572221166769776216535789862522480423892131619000883478960005390866238406138631181432906151855527599521147404475690168253480007669758812841357585381586004672662152694239430788199336098948081539785148163647260324819723970422543025722839000081903401934517752703827307651042413114334250531412457581647602392823464388443022322201815259227702381371638894266582811321296013736516767602763645005229372129213847150398621936854632527294531724473593266890003418484379839267328268964418761827875907121717550739729473650086392669412706932193450925536934513721479802153246318536352721672713384767326146669555855113923552743326261336351424935909305738538073473036246365415199022447438879640966805989092091482571016540946537739583622747299936754918203490760346153287765675702746358107778616520186882614713440668351271431924333213146436487813670959500417420770229643853835779005186569378647364098989247874118717064759476518087697242063897096986550345285432194202519962936097177381230001708058291627811842476920726071707341766400778900023315999984377189002801386602312598549429080840222196018549590733996017273353792642197265897557465511112550290326720441912388595826866316180702729668756796394801495001004616253607174346330608278274857904287694377633674057240597260261482898188069810027150097797096745483061503486762116296738963444809931870752913961612012530207132649824840257873259012412393032132444572902815348124521393076898212478779185402082419471254253185623914130714063001192293879899203950840201794313445727679285180473775141762784549531392001691266059564109252222860649874372050963461662163267888584312546587615970914028734220354953070305457570408969628519192953574901432823247425547279995715233506156617428286323827850419040475584697129972823819328412267754921721578415619883502059497558299783889745812213529833366613830439538450366030129645162870475785020253758841727754431275943688633299118064590483235360729485462543342195000253065325984761385031593619851396039309767690051056380883511522974803324052666474170617812687635499034958981684540700345932772744498780968765508448046005068146989718428272891656661177523346556455726089917112620647787709514546929636544811400172361405120949296159071557901506552234171827420557528616840531613986503608165498557659078022888165873770822803415021592498220829400834608288596215723865233609585900680080945304317616478530179689404090953945786942993715992069873574783855471241835529315685998178030890955114094719843421910961728990586064646433476594649117576859652655315131187664883367227653540742010717488929547796753805291551755090693979872792593533539494943036115621026151860324436822606871765976413425431143398946159297341060072806456289785028776419569715278328551114809225851653678063359523016300305596230613279642837770245503520182525658370098482647980008882133252809245999430758057425727242726125594979669988095453730528117785159241096840311261421488762705982537321631547474041770995573425655558161856833067651531133320925032475507492482360624255287840119516676545366919619260806244583255445753462793986575663780013388219883725148266210660957569578805204912370086092329581507717715998798627747737709025921834630618334343706515797046970909929981339357598799673094729075540836777785085262691569407197743254443100788218948163334358685433060371636525731136866958333109558415599965584026372939984313283651597415599467356212328330366593687817792299307311310531121379102219068873455726275543627445021369768358269413912140203581813146739393124797763026292218008300571295642052538365593062165853332953612401455386200416329157706330823382448249373122064363347246349637211521980853940461241875715561450551816915742799055948243768212604138616024757511674436751077715499579204808387739270105615366208149486961513915245061210299070814386622521470768508421197815039593641262586505886041100174034643886519225626378561148029575874375003371677178509359740655913197929140404008779044809292784396448277478066856833671558515624410620092626910853421211726722117034421535489896036334798224052755775748464502470273801125515783535173987869940297864378070415749685604984609193865281676686660313977272560261450416836035592968319037406735618517526041255855769893705069935999324708118523086188771540873008772582584033982053287779536710865243823010399614402217302281297846487629601715903582836701162940189567233673310624931156130659661535755217881847528708692079717452268115088856038163783928002799923657811528078409599038347626817410884814174933671609780732614267731424288545115130168196269573159390201678082701732843610901704776289016629104560230839317520112881275918885860894249949500259386791766333797560261001442723190246369292929256290584985527858761339149638863801510581680133787051056458333277745082405660869699694037152640897892441597424829200028348993052960898472606269268657228222503522428356349045425089821922968755132171388956261733918851858588930231105883881770532450353926303452955240409626301252008308301821502850747221301343444792630546784149374357434817017880907841470290520716323520736158245913070424339682354769375479948853648890651576296918408225739135057486737459302024848777024513039111923162659840020619315407847212995937251857845695062008238323875048791936533317543669533220712283600152260776352906236989964689181791605505843197608557697356967221892978653742463267666810445280894135408438384119455888068799931617506615205659444725721832002256553255158090465224076350625285592653284827908474043736842703896793587514273369223297893738034843872258917136135620403616668993088012213843864773256156705888015692615102668426373152352732923478425953017474842867804646603669692881099258371777316468964096277342543840846033858132530381337068028788467315756035493976091683497354702249953302467981628798448642947948876524950028997177454025890206982567693923190675029553761563760879443981311336155694454757072624215251712889097549510850013256940140140005341224374854099367853062244339985161148891871885103104357176349191967717286010331329902493892248420936566129928023019832579300470157538576811909370199743479774096285177616005408027025227812317351984518404928678242982155545059311663702766249172915013919294023247174043998279231617780523807675364140901697449469215829095072613320006241395131893685183599700813864634597128980327764149069713191488816722022924234485175510357759659525372482662312578790045301166827643477365739441580298982196478717088635608129986499260876716834309105297749776374147063285902421390402198441218980203384330374782851120330572209306399129242161088595873452784777859237773611154005228671265622709056210413966093851620698929946064656585993203987716882435598085774163276848219068656469009793095144747804230291475886678168676402907116614570993440556665923430161292185623762002300353237087175913007573979543159953941115618562088370445788730588974471133453695956929062837975440727856628777868796354477267824935093654641272926953526963670214325311892636762515325996782556366638515084075498243992740015267877793183360488072252739384052511616858577447391979076047370342130457422915746072642830604038165986776012874185282816737192138222267343558182911443692081952060669994426806012475248267179407899241045413942831944535722409625538728204946256222925950856450470752946144886576519018558604707456938078253025098493049317358127190822138105517179906266492364794098721076287150490354929935230867047444277349707255984521411577019832000374512619633301607895476233522387739261876875398655160106911251053689878904622915914567713984081621935625905860932212269114206228464806593927900346560386229087587775872874782604010662926600950148155083596619239644282584452918051033535396830967051501531163790486403066402937402849674782307838261489791730860875407404820794366620323946539208569093760591393503855854520733999478194589422027774579524104422270568787205576391045611070079021071949757071048918277923772670306619205163458088501623906274446528256576032209601992660243508245819939619548965843889678347805812140104342038909699153559169428393839184669295466793084906636593907769958406922639529285834822642663079084143125684393225511975236276540191334480664796259949137423456447648051850636106477623868491568487688137030841137726623734994419467564219940555437964092230505945710800689786624333389232459067605414330133776055945234546843298493621841774594382472332514773343625058196830039214990651386456304050816654295593453077362780460616650281248111861359891388158283023851769723135150340381646063594736806766664668252674973228879417672472985937250031799899408704669510128439164361964946691345627214011162791051051392136437420303607194839224977400452639745387738965988513521723767095884884445805502579921057904924819204392144152130815218351426710755442501673212188850180057690194966208113040944007095118691498992092512738941682667968147524810474550209079598768703896931210192244484187458736261800193052937594841623193616703844487855148757296419490637943818640236534372805998002944286124654530548833726002724745907240610145998091873113255687860606456268405808262325116812457131710279556198927575154094383354525049451869310079926865307913890267424930796946799399922299098905662175016636303538448721367056405598289846797112682605123521934289367276876625273105930210277162627678322551094888588889949961029192594206641862442876940784959992900958912648966850406294176342922375463915535611585238150916633411255102810574608133690422744581392392204544508417048660742949653209663590733091545231661848954541581029622942131189253485219272198053616222791141557298875894597204795729367407808427362399400077707677297741382523115320630466673956623785420626959854166473380202273676975518913531602498713562091386821645462317649284225054484672656242664575171213337163968574402804779777272119599239816489571944278581776279188973939162054740921124430745400322681679553259131724169737818960822709711487379581282567994111723426382729913471573873388968693165554004832171777840002211288376329811752452199524151514199733307906578379356858160533977253908974162812815806939825170028365831512934678947978063106056103500687223157767846124283765820901543307433929913854875222871864416704136725749076292015855792258349286290919828350808139986184880118341313183654600280930748336301883855914101656835979649143891368808161627195959964102956055346537750416722606512680323602166403253084689253987285645215704916148652189354219966950209015197354250222004871047885261596790356707246684883942916447984556006528009275336711854275758117186263349116456244319496767370701800163966040502460041500115161421585328918795408997691602837406807961520359397328939059941442980352342833508639119153652496914694501511368034513690910056324616578112063836660808293745020982920513623393100114115175663593331099784291665096060633121884806283823377979905381423372988415197001938827252235577260777092912340684135555795465656792513616597756213524289377677842903876876525531942994892572910736327985570551348159918997739297999282318397063714787076603857341119169084516690172481666284092185848536327774843131007735407538661910012148471559300331202931177832509793258458101914193237882157971284828865243309194116175603708994366617881856407899585723858205983836428982873761400695448212065485557493892031202812541693078476405735788269887808835273857776269901016885656038510951124673205107490047805462008842072594642637243522125119101624585322553880024143696970170411547855541209829530220101612622022667614907602688937042909031940026740099035632347589004981415023442637360866556121432055725788824318010299601821865128572014750744855712177391758625767531772884581050434319912908272133255912476480603633110574412849356768996968040947329845972772100018006000027904149189571668285690761187270846541075496225132848768380697286546463164973359978121359463774930720682385016822618353096903068953438381546184145814424302270549152900623792501548198953357600558030902902902844617605862404486003019136179089481692530520752089719456420953232498810781093701087798240396535617222412495124223577076800033466194439668978848557481838095087793062800836462138050690136760379452212045857904534957782891979162170381086034091592561522098320517372466229322575923583075671466426329073402956121913245824489299801522341062652586876156920350135735746070714875276581077779637982439543471779452204569877378985769784633940256116018475226642324568907887378298590387491462541297897390682436684533611311489137467993353940438892509848285460382974590390655140442420228249610808489720039657663475091482222296758798342417035695011721541432552963722074505572152517762373476578836613846760526366015511562855599093098695334584364324567280633653268774749946151238372834178055559606815097457714056299063174870237225172383467328794991279172636162077360007870098495957671645503951155109840632623446173897802862051324384472207210566455037805287913635231760066663046819867143827553782151837041230270745597029571501667690755105349287066980389744790294242551578713119330592554210069948557778155497774769374862206657104623523614678935754607539347032390876065798183757612139751329160243067758891780856642490353984573654406356431034498067012450737669494166563658304324801217324939355454207079336417467356661382842172978209749875111548387556445258630863281286651901724363542143986935099187476939195378062901543707503751461578030017306264277430611430761009609884474411155302622183985875246110174265741143461381460297322147903606280540821578947747956732608042006698106479421351115137044585781340140283509636818933259019206543161180435338699319140193873602543464915724963161354576315918286441833487072099091931206351128537331276397019700706832725603698908822235588402290696837400196928104950972184173852317516476086733107435819478892361213613935184502271365158073790557290060083679837713739425909093757093548037756080162614109636111613010259413988111803930386553053037127955821704525765536080671486959805822322563788329591054012255266180768212863381515702556611029867752953988968729562690662781596005280420169667779379315150275150974458317437956268644027867653696441575505604334595764336238853545316883567727664311525880273185904747513603818483212661946203709519919045216872765320138557738173606053066114304428110909538825739641125253542367611952406629985358836644316728994776157065393067431158050445920599143480346578953039276368260744485312489629053353495313676273118804225686691647334050472243036306020492699639761491294580145579372496931900827368374637521025411555039223842351790012629092160397894909754018364732607763200889984708194190532864463669797807605966682417335860209835671792444618371289521025557288314978906327679247855364991749529580991542824604267151929130909522247699882467513395458510130489778315910938910533392497080182007836369277201339182774985357069729901642977404107039538295367778200988346039548131654151927096606022965358070192877511083029523128539143697492588760715568767529336642301248718713721665421400820074052836720567072984261571657790298256556457126397311467616718550382333919875730345765611760421885101839602851656111232202572182009276020135258470381620641867481686837802323091838416922949311221319922835677194414447314560394798471683830010313919701606889531528980452167351087341901052087167358232252097245949479072564325486844522379509009650590632154512925670694460555408297675780375442872801906768444276752423378560596538994502842210596403827921621677349082356923635987836857108753232350771026733019608255301079105960932331085918756508804202204582764273295609457011550966696066592628375402863909536062874644807836868822450269159803391341375329946487903017571374052116489932367535721196502126384965523600548413616414543859676691293770048300839660768777902666237651028263593516556521388019613962507624310075712890480727356010370972117128729630693356816340278059262094290940442768566065335667296036223779192779303047702876404650457498476879656707789339314724617707832328880670362125015623471471025656493177491425191614925561206444427225107582254815169797430049190602285597308436171950268890946232605261698027541387092403307113993709859051913731313450795037948052900235240761823645511696666183158454220844437989444236805529178167193847380443951087636043416793769211163279767001068229099085317306544202228098731812422127830469022487527183824019648148809941771525669523729031029084543923419284020516327372932489422981310132765479183459062661382560630529797911314855726902007398200382335950207155158857067690619988666792316344240319333223711941828595057448276205000970970835867810372892620715187823259913867652319262245674894794810302445933066427294286757304840273087190746333466672204893731379353166596175477728402046065248268085412674245083112720644645681566210627354450734839977213862416544383996560147829829856867740540257142763300751853803369320133577552735076411354456065722283447825131628312076890887858658893808279284138959478792639365491827020631918242450184368434776896966547528687282561629293642865298484184335275038798883652008364945642942262612183777619632391543078429512979360092538915866203102032551627674871399269737001180262478285994216059498280056282399090552104870668209368046139696961770002401424155575626385504989723976267149511767109456876934529926587105190801927018996065163753865011962741806121159495200236531233180775070141658045146947213539450834926578704976846755279221177406084919976104399057703939606918600008164585026259046884410066228832112385076814724444576789700095707485997350833830425815515345972899381308205640765841646793483201563551085305567998633618264397309596577593759118726090951325138787258755419351667366152158133101188729177675248896684774626312959908352641711293532947760155216765230489902237253639246881973241593629331911066445334615758290488590239247839437951688660046726781395337541281931554635915162302011703352846019566436115648439971227685359844204100546306155652325127495327355624210376892635185099380736378878747840142543778999126258262859126197478754412962675875905900892177534088490712100750031240417900934917325049343925634509739686681126877905976420981997459319002895906630892355534861458322066737439057495820693041675440419304511745751014141882438194101853439656376345801324905278420473846936954085795687708554866999515899887587592938270056963723497989058166749409802472609787208678768599753288711785340424731500110841088175719393346469742525233256851322023196769402200388345145214886506672285459738570480316643955653491689002383329372857879142420347944884105776544247678972716785459583180341349445781774478931118902131666706876619222313019545018038308453486324356853503731248219199804025375760276879801338483774621047076742349017340321027182158328381967361100158630535788114047984469240558593516550549296678047321734159213877050950298777508337816216062359204717430212626028116096801158250827593140192242844803393197915777573737556617168405833105722334380539141127982623250857624030476938313573425636518258253156629833183810172238850761576673494668528150961274857866207640610493350183831595964857646381445843089010179126893879949953919509007036032295222251359176611490085723574916920267994639651035798914488309418099464618426267368533199698138934703512512851772108787425480953681542836407795854647677961085010791222094400596607646209134119365304021946575271628050422504997644000270101432608380108741821644538358620770487129706117325329386172415243183312487780985987093969486674652031002503231974405583904202163184257067362500510186151866774957260670555928807893287502579830877821360300788779882578886820783666234244974020860468751912855122819227236178567330363655508671905033585792204827651190544578982967033200951623764137542318457682752358825216416484795888691451481553233217339217953038737112637529951317932875998624371765808545734406635687105860206531532738500924544166593605390223414297785181624280082194801450954954035148218337020122474777036848969727696875776684477407747528966455766249088803069243557641755832679053100723196231407482250365206486530532901165556035183555226258468958066947495387741499380235759525757235655875518646430837624321230798257820284567696559876207605593826583020647317378942993518850795998198104708697241084406849947864686730259246566008528069198916837959410871069853816260646857734168294496053283192830904817481823388099957543358231611304962124778538192099952262054896072583167907484462534676408523566186667545562228142444496556802431792420884616665911544736980265196734817110876576080130370418903554882627541768071427230345788726362176665047512963626814456822523894035546706394521373896286742354894740661653475051825957624844173664680000847425866792239304848723578428780935762115317007383396517118143580128205586193943843510130011472837165234546410320107153132891587751416651067184301237792318434866137470158418669891426918894361945622632379289776789426665728655470759536513561705941252120465356473515680825686283826070175406572273231985219183515679456887685048571934790866604270363291018184810065169570817534604536088425326321034364252261627042087132139782870779931822709389948986037957210069852122341998703082756239879369996363530846528368776952598436833782732121175472603508321031805551843487408136260633324076180453895900605711810847874341037949553488376245000384752158526426981041978560603605100520475944842179378914609401639218858903779285767456609479828362121503763043710164851287716148501463579749024619875340512708203471038753672743772107741339700082609482343773342017691455414902429450284927417692499473770893076663915764040694782551711821881767589046615787592027204914393515308070137240868643764352890432676241286706666481990575478356084689693062447973178695851662405685807977211938168845725828987542915518476284995714829064512273188389072108869332979152183350474435926488175080003179269789799989868584755062555142901932436343752287848056412926335360244910790000341637074325436998661162843181040830319064662785908583764815578704380225501784040686986954142661770536663650126442669964218650176535121196815241236158389995512803146530894131122279412093941742057714507718483531914919876029875399394147732233014484822718610240593994084826613912256455858547207818076473812249750686400755902854776565430897839142220252844937553546634621681935274936804177998345981897256285173847861124170996475088512040613061998294527900798689327635646074802045515356950289024212899321620320221382152189066073232645388704138672659127316861989003110677528758430434296354781377093526810286340229372878800345847390052848224717424740159749967224838193227618783613673726348799401980038131631592560049785278453477674650457062502856954177057344331393665086306181700818175497264088146793571403665763302234974844976785733969533631578836112771753872664395757333469454048521728549062141753872552271692022727860316021452296251684245472744982296789625474031735476419407084469814701359767017713742133286698947578856911995967942063225826215778662340647218856562671917705855779030013005156152546663633285507745223854192085789973704801582272543574014517474614428645390942152960676332822559880220068864457972552033253849151082570541559910803455735472690320372812151279400855585272560486256335655556821690348376919975081176825922583797831804682645580172363177067320827881608448193288941136197647329817825181086566358398863776413237680283402173372704658245883078882533619463255535263557634375997564811167930340740894984877097925756014750929880903163010695202013374674958506479154657322992955955021888571772475528978682650274893752589472468814989729056590626791815562418174339190173869219431302099469416373639822440229503839553143681117303870741371859642251700135090618490616813370584993624287397272909187173405978618696174401646724067680245896061624554988266254857630337553890761590320973888893286620081805391514959251071398390728738576804610547833687218011126412503573853871703340690696453910267106473502316275310738551224658743864283552412311973663229906499904355920711217306675871250254674102639164249953812583207291976530789168623633668604883369544766928264162838506372429756658382846447480003061899863948566340448452833765881418668867312427789131349687747726213168452694651032845781718791768576895233261052224827124086057026519781221149386021883825350848489761679885383353812803056105327226407748991836098821398475606291829076147693078805444902714170982943415350093148460953325837994551196912507278188261195643813517254927351467553129648658648307394606746556375943457424354391855815114364018775750784055834904012544342187175843063889200837494137641249218548876935486841219182263797516152194009491003203179822169595240522788419329876256886107218856895258355319826144863699479076226396429263269726573893140654265227412288560683119863947741642969696055324534562357037978196114174878928795954781211167494862979303174748957374925321856876569184582462430984228019938860056101334062079001114615598908235333781168849640997228391976574427399164924995096790558486592120308136370622208550316314564661562944566749235390638477894570893826527455569531877007673253676960223061116209504786238882096292159978976645664122967927398734880666426727066563823847205109332320449807215257252508204468772288840278851536659478933576853050173387118264124083784485958025528483612931633667534987787591196506507230829489881137399843758042795130260099955712053764653162299590365636738510621583298586518834284318070409609371467502916534901105700694340714735296506378291952307022528900579344073381257724450391379105296768927003692015413025681935548817207259329751093501371576648303651114498250578266206758949275614360212085262337575685771713800848988422792121835636237344756584748532082267278116824568572504524103669347053557709364894158615709079527497442294400232888856776965750125348139993284915477142890919286542846991824359126471465987652795790970104049981790873096532647633012561645890130869092440426661372623536688533385102625245619413240711111300280630739058495961668252909798570440126963221923925360493179108658999571361595654299751507730703656160911673180257628358742241565693558562845000245659515753310097097642596288091724719121667325839612019225663099750985213446795621290504595535966777671401752988930872492533009377982956869350959814168255967334428951288357360126099162984200585966301790118259034429783813471679541940806748517949518417557362124440876513809219543851387062284088652652278010549977937127424178332404643477480413422615438434852551545607639595947540107326854973861663574724332962541378859879290530851554461833135423673688515285591487357974597859268811422413648584480042639350057139475383897596014031443628657264584010151931656665814004592784183867457485753395336745266357039859788861403217611714282580361378976763508795503058644031443218425797990600350648548660618904079731221421743235943721904801426307010778661442911410394943130031834865611732970658802583738842317448809726220359170736412906569919368898644974873915343255304932017168734890292670554026197914736427934697104411274891733610318574508077053352209388058136648365124540937290132507444673509806241582398786670781383267054378172078298550309935218101371401888543568402284027583425127781264312411287555163465360033123863060927936994586665244934825502864463955522472344001609626277557624258520420654803988353407573258682190274189020836877470321129075663118672285464362238951576111535068206158051679110847029119547949960616383282056972929427722420672611524065632366736336045026939815403258005444883729477232430338063721752419780897361745814714240688990358124267196201518254133998287544283189098806302568611849438945437706543821535011606792340814274757564178001431351126526817979706490687308436694388626625493137802021418150953202945664441090707756585155113922307912130135841216401362327616250893034516263951260266897745855865985291940013230152887783703307896137425588570508253722215616740948829562192144833563571972115145807936374429786849785161375862206816719077739683168554671520541252375042671179509758914447216154191672498570255261040963782142878473751459779283216102118028296055571633125560463069477665922627369618226517496311788010249863148493928483423324721846232218360537746883286524427229474211661859023890945488695104165483329802926182316655741565366764277966538587468988278933168845478533674803916736314282091854665947580047583979244493558665847198474893641428119876974180516203469225059797130487793950477082696294269676200808244603620022248518665946697880076003257150565479463003900464597901935505170507682410292181337893568764788012077435778760981874430830035931001178181399883265598160973822177884253643956752181250610174346293920088509795865428473642345107551653535539507880093022643460345858586209961183799987410116502773546889301166528686047419272135326194977244622995406308699916191600082316665532398871292367260634080534942518075813392761325083202659279289012953512215263684125325647388253725963527507737431267088268781119129448460749526746326999964357563173294537795623874892925709155038710200977528214437291368965211871752613493012580238371311681738557858876404485737894376361400623659680010246714269216395606278579315367858241066920263580946409206574335388605460318225140432391864869415375279115135053411727781430507828166563757217865369453208229719501264611603077084634549471151918088510513989164437138421361214652497832752164308779581498383229924236053609686828633763112733438806033617853554107597512984028949254066791639135180579826242037321726286675946908247039017096853433343870891933769165529756778864939597329289109743774715791115966060117326704746073971718893344508075515914434489288483152107892856055023976113132477382488389304870981716679132386414423312610592152613551896322920929192995297333867047086238736740528480212787560445374964481863047924271670007637955418539708319187450921915279333399626526890494218904940573938268566190808399651069136053988218751104782061668398475257981040105241579988372566786202406786756368295484485327474543396436547336073921117087251744553627094579295174149764482942309789003877779275017793974920427979716389079059875739202376551986692168979171220374310833450510887862187624262620816058492649017563011891563244521420427569138492217791029488731564284196536886900139105391232537206108231597928708304722987023946674492190104634978327769328017144669809908475727294081299807748274050547042667600572621219479735101118581481463641984041008601772139879511782143345060527806834778403339382431675457933755231734665718341415569108010583733078353134939978710945918919069643835071298843698097816153818304238065877962872749993164354105811684204305665934957092899501258233159297745812790896864898536664582555819116721036913583294273511194170490467052011562148712546518165151332234542881885896492541267930773249195887763495976328948505106158365738145405248834414720246572022583437313190124584400551403394532721746948643134176281431224628106039881581503055969026377121147732063362536305401018469414362024276211416372069405706015033992705607899430598300012070011935410247858533811655939633252722050449143242047610645060451717763641632486985061396433934516080055338826946143723543057843619780523977243765450270093085648726617644995692678253274052806575460025202926940215681133173335016389285636866213432201534254970855426016800170955670661348068203534113115283653130903677351070225647488629225904143293574453143212588453039872825853213040888810723454771053751100407773435751276124837865756697411299986528546573812835222103141989993717083531915886521589973611813165166820991321357288866142967678809423140232602972376309875363755428831858326016300544329246704881972123073441134606489290982209189054895032456401220447435541580965688066470523338499911853242923701402187167209895902056916792742159046064296735944282627345457963463469323500924788923123440881771975928386367025587177312214065156673877491420267519476747251152218092156036664806139388670934502511901714524739085875639531608948883835771633394014382188519853854838417378803475220885531363684573072744041540603669493774808772733282214968163417409309942751006354589883554392936465182253242173760480340377019221344722203370887622047996889796201678670469053789767904230507669953553557201935766053181557512064726108040859869277792072684590920448547135547691429361709344465780554055561602487499683007567650443651013301371560536795613554865988731956846831588545545415175531352071541871209417387733136127410637002838246931502151008440178622580286865160744488829650613034346319815914947527172816977888454098731779417704439894499769135672827576647659178205734172753865629697000181165104049511208672237291925619984088782191972601928194707603505317393747260846887746096821257267933939825320763329769237772540722836481693072083848195181398094026434019597513241078792950321945777615733075909502941093485065071158672041972561345825586931407120249520635034899448556676703868925060432857157520972501731166531872311351393636140955002794831910955728089057922725932089569343435541022782008018611288538186210340021157048947151051592720807895938887474176249399458161495967917545947795584505237704739058461699375780465904761213144696661286320587597988873511437842461338141878508339204941894081611373992043176777356529191931717015583114261912803638694254907515289645722100632354251858646989646889009474452974670319278460830851918831166915713861071535360888299144107045499915900060723637208197371032634291139440402025410967602047408467208713315956888081715343776807536948836773976303631915051522537814839882971756693919631366109094485778587572134276958326729332344651706137264242015014368633181462376266985273484932916100945103402080892465170111084952477509478932273843097234086626735455647303579001273689912395114489188419828809110231624714646419972124762897105373567970138759181034637700813278071280361721807388161594009095811971930120004819500044126048529437257223704187090662339620498569465377086828097624195936980603894671963249626591354581252478677786753499814303596113001767488444800038262244675727382638532765020622440699716303207854006449212327099933662042274472343148049834820734636028375343800396087063698716436922971002121210972663507799125279120464201217328745135879789704176615255202176114780229222059546772964696495147400411804651795599405640994565627563444064514285179556816424219294490587391929560651776082020999452071397452855072327748808614246307259086885809885091140809198261882818444260635802796843418860215946297427942120701671679739240852496112906768063388968539777839561375316720339700075370913746711401367401404834340605813671993252711496007819972409144631961894901093911612379672574073287249631890449091800855777206418193329442540167195645957740191557045818181513298790024759168505410769194865229879795342997905252966163915671060205531281376233055892594062480823554819296358527153393242001531391834095018305563782136866125112136810620279932298508953380871434622584993868425065306604465650687484326594393091317191885155306587737273670271152763623125254200070693857929007516975579696679662796249400195250814369913978230641061741364766482837404556217957742529330946542065813438238479374849789773119114243846732029892486620180513264080063972883897870519660432969446003515328873328654989682241056730239839610623644764751976255785363175208510381852611892953551407528100072415994527659991292335524894385694724918422351577443679254843587413518360064651019833224106097319669109312617250453346370221617343285862094035833885748915875741106828133173773660806661309188234103696538958212499647352485037324135353858265147889441377696098647405252141176950674404331481738689988022856019690876429446946647619497262923689056703685608053675411535078136169823093096763726015865005204614562261894827945263334934427310384274793820048938424944153021046282525595280289983770450460670877424061647321222959286074484406087859519842013805783291655391943604700477395125636470994759328849408281864763833191484941193750978367976934907076632675667141403098300972556239626182699530500183961777476567200071330333624016287428440385425058263768951776206730519280399697436132680854193300798200132587984755131664246419652620779704323802086397995203628861456578009463196192488029789135704250383238590073679571938823282940162764272527413301049291594873821894436753489907171496678260138518642091955346328480986712103836763684533640041344779567625969989492991949799429335491583314102336826874100816563258779141658683995873966468193778740934164735917227286924897566260037575063490200357682128481790032853027003725257081730663577765899973400132521316436642721763674107048456032450114271854690543430736421550704833692613814546175314699736017052715442443982526248797160945987301292047141133002645270388347889129692660018321095204185214729990165919325567981164520084048951919212468210968081489422722428367762275603425722124822619436395345651782075157832797037623484428005215574937791663680023924998027239237706161875831925847831269275824979250140875532450840942256473351134632170417948554259915257132218174401934951289839681789364540693062087503421971774753695376716773819186210056328693749820435337372147088909633082195811103111513184624701821127000422907694216761511524231648198863423764174352814881841223996790252648756509017252417787632280527831355590176556783901659629571358099375380320511181987770692411853799421502762123685478487281739411430702340719404440582451071646780272504773603891185842739917553540334859249620561111345878770455368176630890471090085490336654983119087325140276871533313582954557663407064969881015746443573390370365873710779330116796450917835141745590624389715140537709961620207352678914683734479910846467179326673734021048167874160199360390371306940182412363012519838475006478480511701983049776532090098932452638196197863590023223976917892007381547424812514251454646340979193712654652819897296686531923694906626581693828039852969162296061587355995706469811324660469237182889751387176603453528819286905510342512817115861359463870897366148254693964232108466619019752403843825053583411252854423347342929817281571386397542364089741796109899879247601055166393854101069448246340990158566599230040628654573460107309883716037557630742280519273484183349898990753212747001636246566548690631323696369534560512073889513505997307020365234873124345880566136794544756130251559919595421294465902336758883136758210740451983763249366062211966980084515139114501067385546873069793619352446837534204509304084440503282874572106292846963615210042792401116402995564970881961457824968996313813447378148926166696493391401927295366094771622573615376552128589059172261526224259618891244776480100424029064940324471925590489958380969058403540757219773758033096164230826304162629687549903438222483672034380296394804160786674026140537198411895572296970915564592930198311406946713552129006816662745002617301463087196742311280517963388435554869852925925378886454451725934732724684573414914417374059893292487927444549903623691348813617868455169997846752800595172826099520822394574849318209098196540074919820803727637411038726503499131228364067971822993900226310066959382737986237617349808193880571510724953429502650994875565352472172763375493041857964607229249984222285730351464450872351796964651407946991222158633725638757553416534999534320608498198048100650770018604354134468966007165715419355696381318977266030631950929055728394141400741221993630111546617231344140775833931471866997114574675788412562296435505795711566508426330408057207765163583267940525412011547664371517500047494058663584224197443677867752073136562580375568244248704346335487342247535180826415891593609056336006168882557395242780441042083048907618164241035420360868594142483539404786588394506369742364040894441478946011396787308106113479950655175169688040560777147255555815340311654277344733280104628508382458379072464257076609570301696577580639016399091626421866895094267962451386475390761385432755015958860369216547242510299297015253508947777313114869693947404122818819883649641366123615153623089943341648274305305228703515471214035237441727837413173502687316745393546191692593580048752709961331366428445535293849505163080399302318918426326511120391303542080782536833458889405538332094011288619934026364037200055820410133488672103721819859933545650153960911723174142919157524701299472945838829091396616005389287333629321977571222321200159001852567775131398158490242484672716851432550521515818549936110532111569358031117191139474148224137457616711701156070336736130370375459973773390320499759120683024973791198859537985569426395993124396624775523525281558855482185196208267535039981938092758940665072565452546044785757020156175286555923488115501313679817462219652746365946919585531650814070981916805311373159419813792353643679184747503746511828539184807906802983260724228244482602404855058250737597926606888499638124916294340039192983696970284379071306660752351523968285014430328495324274352762575675965749932707239971509808245112529387708205775992165708489501774385449564208681704630353915210893031051388464687421773417612447027626959899632796253548852962095764501763960509733714694099112381496083036356892511878605115876869033730494961328496051741522820657436620733793179697902519457469698021370619750883988780684002367224110113291000588955567825555758314679017711478152904274246605454368438458537248933103275878946954204109724412585169826832325613060585355888465801401816092848495454962450511102854910975745499334554962861343757769093369416062352008999955791638837769799716631323731346982621316411163191501952036445880650300547538449391341271029972604977465531174928754613508968770919482235502147124440263142115291410015673468133149026567163206207177737774245356060425400158010471887861071860104059242955795645836014161765152339122767821631810203784040703718185652183784789645649484971678502976577728003208468102683905929157366950732925653129525019825761112022485200549971153122050689365219778053145358756583699722958286058895445469159536322218616348256587069162897897409106430209765658239027187730228621360442711779049678703540244686925098563344410881057439470507827907938288542906099934485109867663705393761893566122927207476048823253009994718361344456290301587362730633356662114244567057270930012310453598453579140091396749411402553992523017041471053061758847746086481251679177938329246580874327583063882858044030897490484107402896564488797073123078585305306123543556134278810418954022424854114897171905130054818448610660815702651516662629212249302021164497427438710211446475727399122202487804949638436220983925668466053894991523080444130631009381822010891296726612474598090834322887527890044068091855433601852088700312610333431272694355431721716772682984001566748345367155022435367171025537258108657512783732868237607161764214851334214961000170059654072241461075344461223675237259086039537880832996987678769843577782174982947430244600737370789861445874279656425050394169478247202723859325384513539873820446293417257168761633071677398234881242395041862336164604470007463430783717940982623393436592970072291831668905442905166788584554864491831550163666861454442867684789619787010168112203330542613964258501232956742722193109457399701322061451820495175009029675088038454225815488325998141481329825260164245139363374963451917378073145391585766337743172429845080656227503561901732019076636413022628477764746526982755296926278108368613911597950108647398772032603232648937924632140118339669289887640231390250912462906091725769553380447080766140347835798667395810576368366728891109982162972014517756178244147409500744831957597191863693722799673562568606991672769600411430558504229567853774537207856288297482515947458744595721779265616025622076821029250011514896973208368066125414876551697828408586826377624517490959507379306423454418935721827674691003645136259157881345867640287084858571652513616143004632529223483144415378647330752579342933370482234612156955325356472156268952472048707246523214114024540925548628922445011222977014867210651137386737775000585543167263392464059531939943472414339532040571454954614108433643648764505741241600918008104093309597955337494916743235564719605445551803500252123388691249812671763463334057478679046600733002198315021970281092923084970481705951425818189020344287562861365042350801769055189318002181612828363494828411214398408350176102287242934610183067605837948239904031713299158123712433664992906180974676777806652136462709364335219630952954466296288942033936907574711495423500172661932006603709511977982053967290163440922449887915861392245133026247976708579129765888389052861549091229345463442720897001026661197918790755887367031981020211261674799198713246501237379719212337721858224994947480409148718370421339213660027240189070686135780375605089395325257599180534626021907058092953463395850392606070236873414083926945961621749126257590667022579377292711148688494529265382487898593795360596917603188139915643322366485399347518507267550654560071862611285508086206660557726318392832894437689535336135813135307552492053401209568864257507890898785190092227730460551769444956059271532154197471505804402684511206784890021135521670931406230648034128055339022393539677022593039402625971988670043347874497854741435226625022344982522963080898940344323609402357543447795897399135106996293604256366611073359697558159844224499835352588003155529694051294145809846330955205468824414388365937704080046046369211930074806618830676050105813669430167256084827140487529506694439225184208410991992956674807141357926206518349367321079152819025472248650704135209126293215732815828148523248973403460692800874193894255606240559051523076657074770290101762784153570036171688967318503207646023539456359264675158010823483806941994909439064679883088033435141408028395790237437297721110114512554574257386101495087540010108892654793377076767615249070081043272595061902855098669167072085234831225954216367108296879587232701272381140981028084422442455803050262711166438365254623546150912700811433916649571596117333809082400065574777423702754387967513772848242240318771842672927764656319678503762056493875655081594689124681855650384276833532090242454801508710547162819827881526449906378964761676571464121505129241310171749634091664626688280162857748650877387898226681300623748505084219853355268722124873059180042443663967749372321012881336698452829376248947682227396441535801720001372546007379315964799041704496371447813908730197129474673952548292160243747102057436978609387234807521884740311748326807694371366658397697965389331563159223017520544602441988118871776888939869406688626830344248387604258467322600616134231925465436726853808070680471071770085756697346836566575585852687316964739507428080206989223827811061128071787848417027377765936728106329789655623982453125092993523876681858720231957791524807907807810983290900776072471290905648490583302000161644116566169277034694503413189613465879673896531370479727428887628311712647069776062332406106924525472382464318675852097983780786555790372059222143563614834604624010952219419001320437216436835424739895108625889545978761176270309413927558708952753701971228151823081925269009605527454303769384023306462248937054032109214627494099311459487500450924668167260270972939359146865048470075331752542638949215281826172455254959553628781606740237956288585892691104000044107266014344333782920598279174191716725940874431315702659756405022312872570761031656514998749518342173414136771077864539330207324290283360043902194113830059198062528287882324433666728132674892714992792531603184987467092227743297103048141083069477714692727315356224795931412634682047809521948655613184670544023574294047161298475721319538556824642872608407795205402998248978847455726562270571435472589524201764731318348276095481067480527646808041313251490114377643235938456158652617763860503302327469003787513564869579838744638923053359847613035141084947096780463236520639996676887605592398572992938313075212902765459477456271607336544911587753159987287504279228596443877947375601907573252348487076049408735846772828554290023446914349560066178821678920841963427464371838409405928374414283924043358240797855080881647056693433546377694023001648334912154305097973404182641634269053984047825922850918436415440627992667017613872995377679815718136728693141180440726336659329515185125755402569549130444378969127018320580447379411756548243239618485693634155190917501639512496291864595252845222362905933040408694200346066151129280142504972993377973894168737308278289776444729743315244418070955532124002937053500337923236556622209445685529850113177892055810110973247639876430123357703640376646507758246436400682996121444200569361155984982674870466167957949959854670848428325682912444264542447693073371007612958213845193774806529500035597194036581168691673444899961372953491042104719805151740374507739714583541181238643407546316925452112293005353789851102957533882983967143156835502055089097333999707928041678742979737943303463492368097132685656188906801034662765693658614745691224429806156559880999393900708607647015733075314790028540936570609804740249434356257069353332268084259624772562000072494981120504587166035233253179166157250853005782748242154601255166014739242549529588291538044192671152314076917567529539484980103429734520889397283777530046716534899890237210266675557630026187008514833532238907009241773364758527825421917665593630240656594981775823403904994969093931412078427431879541851716138436131785939646359297490264573546136075586632556808568092299645946205025052169058988394906063657596966731080167073732151208038917533676772131176274833966519413560364281606893078986971435706569751028889179879530058255846659809260051198424829379795200835766303740546497420680626796937029037947318786598060109395522628466096019887324517186392356994593297534284672624672664512813607663243075018464195922878188040719296888394138614034978694372723967511394337269476946368483720127758568902912397426974088552774069610856814944994337823653154500566397053514099375753458792733774210957036305318125694424217975131646675192935214002676802687591189815898989255047998783412988573278838805893121038978375481391599698794263550374448260499053000542885609295197253025636834222864623580388708200445906032201576304343466461916047823689131940746118656524674912797657374986430470512597288589199456879952488527345713610942174493136890845172825353927008800656128696818453101061500345417789654275921669447212041708989479388716561966248054781488114464292217797436592856413704016586294144603414225268493996702582775747500779423159575436896636770615372619718385802893833669457617594522892808378613993483356419567972619730052015544607140025079971319557431453362783928412238275800170573122947540272543442340175857274468688417054812262039244629354953609853260600013287307383797697091949738262090687934337749524799494858368510293665354780603874732742595209215075405228925712263027718850457542253025760724737897386746277065926020295779617622432963848364434234732648933631708121629428221168775529191032522820765151508298889152608168199630185120842722083398141583704564204102108371878809522072208125755902227370859789684389286501288520301848038976640852586312782199821487400390831303497316813332583403109428230830477932178981372126356231462853360481895726505970434089774200151606602931796283282543728934719859455546449570022070703047759742842827208276611833795249171099587619304008542923815134892499012214816031727957604235956054573826867868803400716941218057707137865771937680842657701788745423461827608772664548952961619928338231049860851337069906758257374251707113288198289316533835531086938895366349837445334564324813186280294320598348500206131970219930285641297250450515268125755299878219031317572324715614574038478578653338786549258201734638515950269150829507039305901024086643810121558886064774257852168017787122471643249749513278640470805846905632596257377242714000141886095116841274756187717601075025990874908015574043633119960875502959521158562417660257191692210220436614447001437406586556398692085545908555236597474067271017674155435285099634747930185038339619186553672511648959930503840438555790771853377638369449561352538240090447125325628544288351398760608503746394061247358463530024692924194854757201063027979343588483329633107988235687999547873353259400943268605528026472600628724390831518275842326462802207469367864020147928153321146696322091673639919767567064412500430111338114186260406673566148746643479936589663189260073133277373665968649565477259154359627835326483446839506041564130169267013825308174387730853787139285668829987181592637819268775965213051445632978457078627322971837704937343476377894201312913508880173444386172426663731116062409405707552710641125666690954502088374040178137294352258136356114981322945011035212137443580158343969022834080481085644757867048618623510541489320900354406812648788612447137928851377819782629979691586881056253587975435507256069403580146026110748999001478782475465301068060779964144324973449890184328677002114905661958356555357270492585751560690289590757187293622822946998549155468606473099554992229117103290518882082873594338719476127855683649625625078962247285277528663768021208130850869656157659534766466496995914087690944141655893834482635964680865497464326043419263980524606742602877884557292904333860975711592026065253545220071213311139577428991957105117468911242591412525376310871133114236000283831183342906243440080683224141226631628368006104712518587609558100331875640921390203759904093967229699120150261946366706851345345674397503472334751754125033416406161620175626808962019018784109251831924004190517835723900691368388833023075342035594090086794508730367528035332827809436352546489032350588013479371679863330445905506247235642283853412022394448224175608361632297770376483471697603246723967579030461757620404436858250506931742398269319194143214565090428080662590479600965220040703878485113472396363971696781060646807252857692954026521109977501232475243378919870987511537171763466548507388638934581781179950660813281883854754488156760135291024808364576076074596834063885564129984631108623243566394359014987744556292598201308109753703994453492718519594489797629574545002560027354145011191722338216919909568786510053134535816290338007645497515841670217892181992108434385237930266237289013858358501609431025033698833859427538515274829325792027358198259013396927062206566101047454930119695327308686779840518939696216611695489250740134628782822746046677746781889127129166056287082333912009143759786123734636018975126255849937962183390642115340534743219036660314107113499715375150200040696755865083174395779438208719896551350865911438452701287558907084615182130760658939763008559742822302682756754164415312825102495577753327834417748508234808370479771048740934150359686833529982746324591132818485560955567105196390070649541470359587047810307417615027991637621205326382726899329818065782457183002610517927322251574337524150683775684448942357467046662138572012897531249738816479652353203892561251007309921647090076069783566132337904438633797096489160822230156185156887543288544520093301059636105101066897769033243768658902133902008861477097305342938452056247536909271318067781018332630872117535288024969264194128642374890509241866246024669905754107128998236805648068995216165900728718489668509620115594915662793121616406697395322640346937023190251211416123269811421482192822370622299336089132330641605699405751368141237727253191187163336142361513317427851881720598773373004430376547172327880866151341594776102335447144473149713808103010813838464098071459713658811849950395190647877640445306409642434711130999771875437502937226067224014951840777170985059825068027693466606858330916782264861567996857983182134015296693321749139627033082245126808084239459695724235307265285220188483671140457326181651624871242599940490131109038256369671109922721638636531468938225585228914821934646186846710860578610688862556277468959693386007472569974149829270614760143800770250351372552460653727805583752221363688907521630088879041170974703348775790696576446584747828848482892925448297669214848444359447112525644420178480561587512626232780821186560872388839377520003155585238827176683126021345850448719871454071124305946909156103292490539257826811374931468813886648393949458212160821436706133149089932750311911306661088816329498369877435497611968418210367893717650006480266846475911288322478986404996170787163671481561391490349522446087975807844265271267378053715821507551465969420336499984730602067201168595019770851200823972922997421646154007440226408034165122090546141016808042928436685545125883463522737543614300176153996627166540024161259333040099830383400402757697227047385717029647996812788818735224202389078891715398475533280670342513161394043087519695417338785827557175668573100391968443438531396671158738440510921191955918737163880013274365457946610074636853690984869881796195453989963105861803622885542304832874497224543164428989420653976278256856533232083506246007915506712540236873300786390818654965915774103183481712911337393915082926294761041841628424589322037699275509853087966656927862140839370626625776357545276454036919644009683104525066818880386549524976743255438280770528927099713209628287854304764077430021773333307304107894717092458140284708404509297551832946440241064501169847469856643182252150906424125251873292184342075415342785990779960025418448872700917003331845940448294559774641301798350988641315178191013993554924778120552350574328165535771655862597549613043195467416424706905567947420906632069811903741385198119462076585329135374110411992301767936269390701976499328130445570290130547629409760031504163091708110484056127577217523261478342310706892470026967202655947211643641461199083380216187018605835429067100791652125081217808841649320569923842697455246589670386469168309269031194747161631599347218167826469493761263973059028380256661682037620505813963237690632594284757729598710294179635581189230764554007639350387622590248284338442645257760601243198050407275159809270543706510228284608829185744887993133167793996337804599588956644424000457056317120103619897640859321261734299650480325242844790622313366798280211436554540310166769450033575724256689668771533366786244036356104721106460250001364921350684578459286575720025795124555201065478434935336373193264597968871494738506573012302755135436549586807697346140074658211749749073661013635791359487674346812890166485542633373881636993872858309094297820350213402913299846073966821606052868122526291060318302606973253088354404050394414403239453451928052190257422232760213038800776304109796666899934242949656900351103604345385593392178611262232363824477265445109424338436667147263009297286707156336074996753701929663857250768831294655639415551597900561142936346560178954874822466410818106022608599719171185970441082494856036664789351523402943336418138383833113315627118268966007514081080682352731734320962525665648120018615190132326956519814536502836991971480502316377856652035294390001346004624415610928394881091039146183399454127092473819778448646613899359248532664183821794667714366134890346059847367200408055663421687628974583741326194337472750647331517289411755475837201679921483904123120389781601624074480262246828948646674283936524466811326119934712281539447134073066898403017636107463624733075940456717957257214647720551370359894512655642426959544301479059645419906739822990326706729627657579185736268384514807607802223984734395636176732962547879896133568293884929966853388068701989408981664217273833033566361301773190729196185690249725563693461491114204714976009335147320419142645482786532449267660863760833546004716655634292817468427349648697355827970183716229694805302028397401537674056950750206887848887619602818039525844287590453046286614034567883485455462034734724787777204547169529854007238666815564247674579985775038438320308154742329227161900372904558798955007027310308964174036548114648612572735657767898775989518542545867999458931061026631065902251060120468988312644104312241197581596997535072370224634862394522834020636470165186094830848688812391586061589073637007259292816096347466451860868076136929626085384834419988320081597827186564864160944873016662518627494607433145832534900913548930358188867256470428027857784466926381847370463832448407532294532019763910158604552946542346143741790736579417952094811455680000862831601161044307137642371719374114085577650853690757511111089677334894984232947199233317066512308817660430153790924320009227405028940464893966126452631645570083515834638969824325229708953153661017008157546360474113285888230397602988270832095515810870417066910556255615561500519740026168331135868678495147747873100618110386444091061116613844604019119890416269063838611195758553734806546910118393540067008106909306196386515008260629238169772462791186903358699714418056227458907182258708638067134660018405241682165213241822271755366486861892974366328395353171504228986156294624901006258265190136679687558958433036472388651853591752743733136534564909188194668109405118495756450935782345651812585437360081123243389933605983467387361483532671049613513103066186499446596044591118005360518279800740666911399881963691017154284532250713994396748978551712880609231250183883838931009229346794657329318166402003603611653192917758074092399889603941987328211884235254463403416300647395732119913470632388037675875699699717894621210828195600119824349798471932852541693250785810097678576295523992880417168934855727798254832816804784144676695420811993366216335511594578697147979802833252882776603561954068338754071349666583681584344982912572573652079206260231354793038919864501055275471381332052789361841928059937063542299736708266172736809388400808550290653506990230661284025920873291653239224240718405250331659036400865277415769528509010743350015924388069294051446607853128459862472704096028506937651915509157898121986445756956073748601795213111563675371452162158827943126793208790178719450303668798195699980105699345897959654992143330721570582318487245793623983470428925977840993678951582727755988089281253532201724517166687202083515239309110189481716365856962421090305999886938068694655846378935059641635674035131671286171469798078813150492289307160539605114792066665402116200021352210872627994580397619798502960173266790444750918113162243944212837929493309410967552308417116070488847114909065010445350240794111915882803535072581589897550253680220222144609982209408337258447732989778855520930728436019286068617491416329232259386735604408917260829492776117954148285642823599320333307116258254003511568373656085222362926920321800478835436965832007945136406127278030117019603135362583916583171047823346276796092462614282838431400751907854719097133041329971772861896779205408123817178559012478544217396591368525011520141022435797309383427965387548041990267549391727011167746005315644466193864953843614041277009449863904742070585508328830303761088188814253428749813124268673161037955888648791565213661857505788374827460900465431633308293625248508285043590083260405127326009799168430454486595376533810482409448532838151504134246785346465536815054805332583958082459492262823711945861624628234893387820696799749643134856727554980774907567348214915740822386598275247589937041179768119109197998905533366200262526166436817609023920933836733937961858626832786355460346054060041445710745218525390735789428711120234246835031022810201397284200626925336356265183835257430061670593434983284751807202146127083600046715603252274558683469405347207804396060746062809516588466039524762948384249806440958782049668719108430588667308231765752243716615546968135856949679708410969930385449771322672734279758382518812031697975766066181550108510252152338837160323846454239395292828241253662137564926353055125217110954983730415583260110858501803705365188019895046969714920000451975047450983940837226593224724267240052920826578485222667968679007085855301028359666168741675459380824902379968953575115627893784562813580064051763412678961386063209169871845977264259370469088682641972091817254083581040230723444062178336864527345024114845804524836194708494273445503313218442954161270545266653972015591403562206795937362607416263347828875933453650863432028665012790192787751092211763457707936108462376589396313532975634712767937036802965424948983853340386191492986647983733758563303930417981158496189434889603294381220787466492034181201029741255244065299647175469966974067800444717676194343351500092194660790187871736882100037137971896858244775576682553101896938407454540513256481895572392350288095242040774970300771027304225755554756424289623783395870238811650312869234469274689226702708656401877022644453769356025806207331297700788778522761392505717807225924597657117767312152369124087453956792730514504633733366439198476187192730148178306477310803922405175757498222890514532452719585333268979426197605817643470511017298423111865596242783263708941619600238840486659061043716276550445247619709993753528346544166426470757019694907408973511810882994618323071119817026455326812205852719365543063934637701189683497614788372828782054998188161694035889735508530599373773260329288920426945433285562983061367057764003490365238804623737228951739067660351960998865635733122314435810550275702131428113561146886598356936013410333226276708624863363001722667310054358783226752853907265040090919692758553728772249748282996011930087377621725185485764061204684497919808795440472672053921424281226062647156852638479758058011097340295720440543274740070051700053855904343384305343787066098164552725448376575301872188862230033861000126302929685585888287180150289445798450612369711282677573181454637224490271796108171388926660409148422153028820047335190891536555110595893763590918311843436023687105293600317858267059812287471521920743987571782845108590608336926168348999326381242547285497852837194511060501320986039075170537096152140436660083681777879788729251963034479426448573266882204118279986967137529642071745529392522211518659729414414285190717244350341433611483415696399146677013782807671541482903801530935924492202612693018158409879325503483461409092963632689967327676955657872217360080019077861041413222512941692109905525404806099205502621644790996296204630188387196917588898175768852822202837941841576643309669598602521178439418526320990929154036891823107405998794577082650729681297571579540842407897312717499076845337017936942732604142199970551453458106066220502499005513004526754709710091073653668281903002495831624529708018130868872444219791846905211651309346417826479065650828176755170935654786618530736430476892556495570035155770678729071441261107850759527059121388083853153190161630443114013542452933819918107118866769099633653164044272970332658222968992984787790470759358474761648892889495151593451749577331658778392919848682576369273723069831482284019905609936162206489661579826891071912140220237543798338102988109865776365944304061535915751967870433930345801895864798584493096493159295063483528995395665600932507481529919879845816064440602919319739490936790227601667848772304542270320379747884657946320397922804363125426277377895383807390062921707831256693979234376766056408986434233218913877513093736688587987536867973424985787253055087159484137365912225115401524497223365835753695998021621405865096767899215658718894118847664158912771393858506866686727096004846309660950275251994780047011000935900708356131063614568011118149721273074180262111474719246439933289992895220236368697696725176916522525213926195950757748172839237407181203465937055160624622868031637964581529542487614223365469526117490810527102001413147126773964543545351612591623394626506455247090952733100407028842460018382778511481882880375566177159311808472883314238733390486028376827013594042050870651661784948767219143257682003358752858958128418748085521983054713189996385324244939647521195925642962671185149092548534822416103469253144426370628804188820574408087404466559853139383393888448561835954869700818278748230392692911249188546802156032327812556194639964297838319472978049352906164947767274373212876607229541396987720889000778822025489594395922942717406070296787479117229733551541571407354875348455950501491461013406521031440801518555376770235369512151232906034356138345486825303841466482664376624524535968644423987504867818226170155605152509641043225766232166908595277174801353685620238838878839568119392900864610680649087346928790032180624492243300951513970021514059824594035973836103671713575779044939840305391640771398376450333235440338537284303195521969554879026361092972945315059369260237471867296290274142708652179975639613801433607064599022968804496031796200869895142492144885798973284635342446949258902633569946916304882213964679613385308751004400667565717403840053497087483089118667458078547216262010303524873405314198979774801186819746828212118884782883928552540505335561929679332488751935872347076016049697911555883730738141182517463768687043288655132056400763682453861960881716578842463670584760438376292768718242482184751858520024579814158804022154321498569592679152197448620897555050502110963798442997437118603365902288979875428089083546983618959934954761442483217017407179901270659074254941140393904089124195019463436217783282886577929333194852146838165108091964093297886461276601833397423701043030234715792771346434573547825608177638374843146116637382337357358827238919525673029557406417451657172769305893812953954149595831346063184452989013990469862346171405622602990583214671794647325816484324567003574269218020132368291359232087677452139174808631356854834250965179274944291264015969621022598505235704062370172728511793469664515675702619695980737685301064341899827218242854648575097336034608302460466393472007853938956503794801944323814628312251584058068011615320958955309797274516036275047935499140442795180815019289045729777245883401756690789538253932847531167456859600646601008098999067133590740764893197930224323572253310305876974905104846042151771348801772723025639186588853964924431600702675232298607550872420280969408570358085647386327272986938540065526449195043572592952770161963103799248944174544480655075922701106985742638497586492089483199687901366027929843721013571459169064715083517988019220058747057545892351465967969970478573710260121872139096424220614930676254649192748870694584004376047485137234726436689063009957708296271999948474563744973705110038975523452703670630968400661407586803407423196240713568018092196041316842937884463276322534222642793520291395100943867538742835327669657794824847097342478437207194956802819776913977473415188443826831758626512078688785561475378741750919192028003090791029467016407322857112686815732200734252794537993053297053943122678609466080056957768020275275123720675734628104338630259275099051103571616580580231725617730605693067214023198581845588089596305862100108708467295048990987900599497784942416228121729834369716094568821854134216012130938011932433531672972751331802954323733497304090581754723608482257278789440995406771451656164298465488959665499196488600342052267265078157074055070882936669846690446154624681225353219228678107496396396462083878292152093177309829712076967811414796682672825110877447022348255443038411858844244777011634110866904846150567407882072561021765318376438399334725502839236761668693993736127298280805260076879004349426334521686473389967109081236575015558820325255475047223174314933938535417933693384458548045885789544989648813174188962920526787753383117605936393208715349811490043373361449035147233555773777075224656875511279313144185546420047461726733837329497130013632900431518710464833362063442296452838741584504100608821989448208978333473381375912032968244258778517556814896810307836679214334140682497634047281150702787560213033286486125009395901314549450210458926967379847749298349855119690986439432332389135510931746966978600765823705947230558528444172866868601472491655610983063262751749698030159901206474284755126446009497264475853840081838654473453598550984095118057809576160407005107995110845892426249192516122136155926783778650727327022660346501038923568282696806553633729779440558706639554117854936377584874616683884464383487289325341033668883962744599362022758211337034128311773232325586953307260744138819411103938314402493645171944977625692525849458038908463307467698680199438364048783794738016306106590442836866843592662253294480827580689951412135168976974411365511245160521248058748173676520611928313852121966899889062634278526754890321483067643045372649432317932605873544323935169781799142697626739637344252175411387082736930424465483215847841974145676470498170053209143833286791744980660303116347079281663911313825664154428148049390182148082261520394384491100500084913399162777051481135815558247670121429027024311837448205283858953315538567591496047718936575684727913034689905039317408622245187970755903485124636924160107578543007683472513281971007316789648795218691500526708753528299112894155765234018779728380841579776446365428200002073061717499944851941201092742854380197212533158983032778236896174413555070016441126702981519760327264047514191243680329317404313195351095109337193160596944043054729702951888844375548004396789591197258159436998112475491517565950067928991896520794889472659529145837788304089139425808215265616590418201392892972893425214017657970500230183922310588062056297055925192821897948097773553458152939838573930756254377139334188879776932752161078338492945558060865288879585984251003464703300451090871559309646713817178774747916575707218899720025607625368263903151988948966164539705505637054986648152405851448374900082492292786572453596582355181650074766502005643248377757037878402136352685715426424464854537559207627463466586450426985135048054907944011751799339336460256700498223871502549296051742959449942085095197565379574101246900323876003569457173846895953194643119129771447829962020617234585206011297661230380242570661685698245518891792884326930155407717793625667365873966691420766725217279453259469212039362224320111418329914701529834016783413275111234163858351869704670275993629153349475265337240426193540313633462825227192031946747712543380995185955091056265594476510667424670100081390224475748117117896852804160127506491431048961269497151872692813420113266766960201954714587432034582924763879465251748776826511460183891564120501438130920223644383825759027329578904548279592909033214512738390065620694059551170579328271008801055420396979970960083544971743557948162903437558646255318985071397269254142971392226771702315056029933020594974438148815894838123257571552110823962149436305958055632679942086181084648720917594359837683844478282527767376506018050808506158538483937367563898997442020414460941191925315742717759898025337056326588013031698590002613119689318079249436807781222885313204167638519613124825302445944771682574023324879638894383361998022938733633848235155119629605041032107547254297419303409643083917778884692562004798950168619995206325380432863476806871713958384592001738297392312678241570267558624865613895308223717742241388863107711770895156004569848202879914454819516000593478017711600415646757382187611120991918254234323571386379649552645899022589407977307549347392406233384695968990167596421342935875176641985089573089600556135593825480200644878834162808405092297805112982316917538389079183019317072562816218476106085046759349508994674384818985802589019079151620903079425564532635988772465671313683134511029682256269450802625183966878396296779614197299029896231818122508763023982488113671886136652918615155981741698465841414657428940764209502534888721548890851652627072607908633870540593540677544405822421625982129050774603991676664486002083260131485389136703175260344639243177796979900999922809297636007737205052608855733929800139315120453497722055941557897540889201802961541288998139728652116161157475108589846915380111678835680915351320247111146228464288637292692127879362051132689784803242683790578148380678220778936609563171077872021024143181032653911141882300763985623639216325600237092101547047929166299763778747408978435620992034781096285905022885790437732921005409081504939371108605593977206301251357336136430316376050276578511167582642368446632340410464700661837420789068166082797477290776602712546226000872301632042508657841807977938447433308657458605214492202326422784609920500897327826645735995564997854081049661549360710270326552550582817986383872438381775648683748305746768024871951274401093791219084666790646313112875514576440791677810265991821290601440771082262778908379150188825874769185767698689141454735537982099224794260925237488264821051522073895358436243645035209838656654500348044142113550021340628348898225244949926123044952056459071549190443698152054014391920626726612992944872094495496112240469305790009276106009042427730533131512373062495325145391174290339645275363556691196801727874669453443057063029439770302266773563932087378725914785507007839231815284607476577955691802363526745664322288050917794755052206523157998378379540592638046374378054376451182950288258564381252088759660517953641475453314776442325996430192913142044743669030363100338739834317771059982422585191584276515992934088003333274626864661818507742107553610371193762034123709068202587271597939202616154819123404650886630897314018773116192928458684957530213191761474178408219377930671400899167719104020160493871810303629037523269163899861882149784518812776607715029551349589767781040930831558610001292768446864451569954240911714242291266984571036630419157735017549559567898750568392328787787110384499171356785477502846492854810672894871085731346954636767681000638376190365936219185966853594568144596791597568114278163764587642170560519813151384120638654260720881861245654798040870530918921354085655200350647585306815003703042734826639440483125777881824346445981663481559878548176718528799626890240150201035218140891525006055495426215438912684314095448835126734459318379150718608941639518827202592459797409682580236580500907934739956211561383828978151611345415917917189624645280122231102260952167115203122866346812779418235659697785641015608975908708132178424012147537304265943863954906608273193699045038005341833108794025017814393567738657138058677901202201460999733602349902618522198461274869510500326684825691245017082425520023629142268521752560134944953159212347499963232818557892444615264439827633240255431134873689481135759378350925966884731090566151258702148089651738406465132007694406032853176053728696639237305806690484469497039901258553799524912475867643992144172998886347542104534278264242542372038308441531462812233313395614229328243425667384012216061249078143803433799486047344193609730678750547124419697520372843815234734337071071271614437730324655262229361933721008094851234943566954145952455615780896592491103369744661288062754279533651241527910198925881278982945295637422996376047575069348196478959638130355323219120281179927010283753739290868076353748814132853314641210303873263780087259584420229027896498998343134592888940985053279918777160042405328980755202599824225153663447511085446160389149511406763210212486078911538983730790906199845396360196262144752537677606854272540732565618297606082953235016127656597750678355265302637358717184538997232097901752207913290061521606540182417785798770080174289582123244699028487365357193110515254044629240372938354451914964321921427498013079565232615451770469488206634476173624550678868332998123170721892778561872866737757670194544042327203444265193440863721039339079194329959984269882938533624528814842015435284619929197392748137973959402472735234951392812871810766799760706144840309841508466906021129862852837958664343827247098725336805394573279169630296528445153583407561210199972981468442449174112120043997300680704765910126929566264825057757306193159284800904069832039784441968251131928751109089195538824722519144356915353630413371396181467615471395768053272848421217462514009366617620652835682671384687122040462807978879408817344066709546774145620286672059394916177468146045234407213156120188222751733249535476822146775478123547315068264289777033501883048211688528375365347149367016311339712881881666360754238771221065739475932557616427156533108639474758143757117241473328361898090974305030377824287299714282798855150906542013587769396253425376431951689676746810276453261226085582362494521391595611802440848242220369283956474978695656550060338981598243483197802475506449284358678673635668336747448530774227624024438864293488360915946098013951594032338629309150236065391781077432370342418951678112187468010385996188361626674220970570630274882861132045008019175517472960593028376977537460247270891144935808420629823672432386862572283373579884492868418003237754819476354396181922281584829135841198667759393677781393217746472985163546626299758956604155037519971365881154978896369915001680523615385776856994447804222523901724038428011930741300621206408848834650758904742874900667235099367365947439188607396366684016978525158480484025740535344773677508170782473600466893149210925102461954087384111044262566233036332750170824437956302291386171517619156515340692919004314202361894498660784004916668380165201931302733904039237305371729937054709866731358230233478818551054002569627794192319808473997168671704372164175062593828732614934000787030705470219153685436519262784403637616895123605406378279443128687460111714324896095110030189207764660466264116099474146870663444456074209288010953851388045083203916732436211392027757810749947770103809061535705601109389957335806020544299479550375442164470044028567865248638294097471958256239975269633924741308927109326121590284553639447525666701742789343347292221894359892542064571843123591114201724328890605579853806879611179238000607970044398351296424799361227528841064097495999557027205430323211863575477082181775920999137946915015335823009484020748445100391287839477242832812370420093906465490590492270679593168144108682999883760665524438729345169761573567147985083254201021837825014676516454622871059304968303501698220162716126268904475052787931331060878994050699608848493800404423281147546965429171575367437688777487819863816241389520530002837799832560809096658171181843879592320677768632408371043982466813120206816711124694577022250845175660185076725681264124814125961182607731611724507799915424845740343456151378385215390778839594734114591010925852036706445434916934339236970232634469876475388479203365206043617956627357847533574825448848140679709161886595523493445002754774872071017828814838453321150195436227454681393996433995416243390756617866819436607213143056464708126837904322750404938414459718708767455466808952298738667310251305315434549484086602534678278564575135484873324571190698285964124890281744407148892451662964272931018722527188128669576361172028428803601524990364683389260497357925008469442317251355316845322749732267491268970203967003019746811800153979607374129396346317555195579368279600203179886714303089489846718552713205187134499136524828404052094305098055792697090973680577400971432600250581052027174442886311656000067253693870440754102155302771168902977948065383977200143791960219894544394560221220205975258949347533118875443911212409206442273487385205974234778515348957697466884999695615898405806762382658565697801573817673971167242237424126500729687326571632488210660136963527055528023204204292447750295100594667978864323735432441779418388117461410650927454607906567937157196093672875287228403389947493208850767632995047976169341772331592610981466182952790934752012892237939389274940323405799735685457498701595358271003754938883799230188286676091638216146621681459929377708783385941325336860042999982937084581304494058477173568602853083902214154759822740783515935025331585870322896895210173372896080662299708513479613232473243166412556940291299494723506477454083003751660581483730720631112403480708629052112249166312623633969956156133487163666484540101246351021954746464298850595195738439761196027655263957218589138404855380625095776372989368582337150306631416197295951095158928998578736346798095717205681083020922182162383126356765254087970031767425202084879614099725304471370204946780226083418666218699180549821269996586123374105713036033900945063054296435603337389356795155627203292477571546380651619685521363746739844390186359094098237979581212367868963076610864736820458594503885410577771595537897544557423844562763809123171539349149556674648271637698208927690165099747023577323746982482860986567441300642476265183055108061935716217151565833466836822318366733044297433989854787797179612123698932736800429807432948930921789574001235701209295238804581207040469401717365487658375470408507332908846471474938415301150519630756967654736758227236841083596413157298830649022532655670856900006128499638103935983683195132934062441563967138165178612574517815157389203093879740109972779712614136549468015333516817349467742982611358533512367543441984003431428714446639418722191704345789207062860724643336468981638450480640365858027677315195606157199863853523400087561600636815166060155829476891524384305434270822854450865998697492698536877610439203264212620127624164829843650084681049153214673708312262471833345858970822466404062334144155307368186898305392479581383877938172299208885034536308296175791742044721928164721636963852520469032717026613957634708635765552210238816997605607085356817440854383431090705147179925954742206658307537151998863881325194722532226318538207493234558364887440129460931423269559201163441590321287940949349661887220329856149048235231624945525685575968733380237066251152760233355289875628599605195443495639206771634531914704831717445584700840277832031397998351996051483787043638314351545864746537658720473391691064824503411273311611991579706650400665055053506940971073863765776710456681996671655558616520085190599101372504988604368221275220955481429306979075161614631883144369416775816242226375894013408138933946843115339035885525528136085131252723877826574356643349812475896194889811873905862009276905823627244375104289549991155590785774727498154569306890745745890829804803878237165832075943988413954570235372337831581528476342905730321955891447258248064362733189526368822983786203779711303229945030125538134841370566593691338950605687231342047067117710822365823548045220854024144084024600089741950970712418970425370084226555584797244676622561645881813557503407877493266969810415454647051002161997692427334245691136272787350048931930237341430937678879057699027765088063169362918243988574110046621590148989377397784225400920444410832516986775115754781609960809787440274163966700080099804123568019068275983618420231810007461789575236697698748308099720302505485500607707795354157791685333542443023860542637879837725528485838089633043079022873043952523770423474950430108419022417907445862460604157215647264585231451955632196754288535584960247016692300593940498622094409344695798906908199013290851486630016625186642953182797597793352062490686021763115620255585186340109573314187700536318171308393600777045216205149754036826188468783121326394863784623099664730330271534771394631313032048774970509671810082648736528901254522331742667205072147223828119806389625946479139279170971443184416547526726008348428618724553459978327663277277579517658950775506404692749979353352753584009277565294848467211171497583899670212591766491753363737457475499675942199108929509259835161159077598332316981266816370688375441256524463387922220594780153241589572698021048401447537336617627874945387423819455008424725974493499090247328599532866697254077118132890889670688077762797908552680104935977380062663620679736050264847131822809015483995032012112413602858016211576649743205243085098653967532020720178912357181849900007732753389377015652039130814122704344203624325178181676728839729224675316503235984904400135827560176255985658466294856583423947322536367175055923397627183408936782874406926371794278385960105236538691794708605132311754661301160607759225100198410590362666268079876637581784705327359594637511102057344724771249483584024350226380719918379197544343780108966766928242465469286299427854785448389771615187856536886192539064840334446189236877397596933262927282736499464710091221827479423466373025539581958805171337951362665343396360178775004007360769335866875550828552288894981842279883974112144629708129144684621297133518659866856897436635223363800300076847731664242946939882699441028252662878826321147059302766538615493447776935418500009105161364574032855829173240857689442606632968485287672553034787004648842717237031846252790608764818016407631135008167673203804535027502317300744060632919926718587157583968055260746231167963054673033740071356289206712942837790195310845595056665888435214977090225648104993085629942166525072159939881131000271702805060685541963209490858448960172879049497215929694873144724114648464876501817210091396388518435974948994710648180694516817808576126230040107557364206704653227386381333156347815386889589976330325561571562633140757771249678207248575423920344120317663898286815976171094537864861683373274562386906927398713680727681960191593158411854754764187790543206993567234215661081975694296112313641276839105714926207929328395633472120707159523266069461127750847116035095719421191110902019870125819599001233352210622596472986151980750966025393787117090624869115666664900650195285991849924745092017840738930836203106141733983211001819006888495835578951129874754932329015296088860629587469013503364696650445208899310147440699338401594302448249994687505561611258268822970143025879967558194293110079511704332029402410441102241214897219899220667876261669987636521312304420706673201117668219055249752973052072805396831230306567621112058932635104755689380838337948487586371931432490828844272760141486788668456949670199172134076627910990165181255563550361136249903233668343444491672677569380402237216932239393662868275262810007308649856413284269469052360151238718319519734000903560736299425430607955288139898243633204066721452211197033379694724197929043927912022443476211909835517570317883073786867457902178484566611273202665042573914483912915455731173435458761527722477463154738173203764415205934376985376611819609020125752049902420820406172652378278547458850579756017295793318646052277623361365078610527576392068083069421696772529341329260497812886148493680891765198425301426332312594101517659444119926043239555617753488486267403646889199254769964615019419452013961240945647540453583672410740651239437396409966966477163854167857670198872303981932794147249615412758759790996362381291880979865719607610904944938230955858680242381331298702279996662209924363841561498755163408161224933315365349635110033847959409417804842380895750457028626198172298369786510002740067670386504346284424558592917652590823558053950868490061438135528112102087775420429777236670615557344731120390068674969411587404121324462356702591230254104199515471561799370932740861696598483197827309940348928077534638314239418695470584068679908144123376190814689014048116220574505171608409245398592338994349749042504074314860802690588504172594022547681004524130733462128206746033400241239406974106747190970442721509852788873813489233635151194283251864888560770181358501774166236218830851552722138682600115103718894521176256003578625134492145825749853888655103309765298576945207006024660930374116848295258544963653114824242190884658385785883975884880389488263433211148688445249730882021791242401463513661054622404858725043738154699609078444442303430920661530917033623829965272162177119677925121381798492088029679920512615785511702079175130949214556399705606465967425874505687292033633083984991736775941638677503037644891863360081892063766839494114302461720956767129519592557227710278550032006120787554673986466565067228724119697509908954406744420572285119563270445778640540358484781102544131949384608391839913793018626766617453439240489793227205290984053170768121530822552280530966660915078156703517172559220170209447961563752033368394627039750712808911183122999234878246184867666068251566549571882934334291214458882536589956965826966934160465159776641435828802493657077424658730487214591242512339539609119051045353971627098610024190037486003427817258328426527272473164831481781418070177706816523891073782563962562634671390428735240053912562572414832622957784798601104086664467362376670429019700372175687960338617429614703519433393665004096045545220523584241863467368315215087330549438111766986165913703294744034670881794988056335641544670962096274821284114858472205952183379077942117539966474790434235466077159668504710680622206172184387810902480756776307718388669642088576915695038646016703292351786922104626220329415146220399543578764130104455991066521281788388884738979814686946566997511576539494894756777047100783139949707971509453120657283514681323492249333987309040943749026281340975355479794418772534549872900823968800294511358957382783483880136120703406685243185370698702838432661322836231039982664776455692742204363537253865559637353877911358294564023119793245748014792141651122173709361541398595726775052136765351675272029421551616733875952756907163414807137715895325627763745583115076832905986004367282580821277753845364007421106800361018850575907209844741916369016041587864005431813500275677504284777086338907142923075184885977487356540159953584395038487776524718760686750531473694634556342142512393768035119158967085753713285220370100107828357678892650957238210088327651612910988503477708743788386548521827618204388474501638516265510887553065514288003419518383903155041186312439553974021470578947390870357436972709647677604727388359164697459467540772135158193578786139672085856633208451390798805803992566813133025183259941085681294109513932815735580623874289837394091748528511306258645741708330521769206797342480175090558583598829534987512581754137332144072241553083699022364394319234582434816813906673623924142789275215861166537717148793361601621053743909081290260774513972743555470113558363731947077237609792849396388277198877341373957823720319910273167457705890773227409341152651426788620836674683876495645747268634391244091826421246299517273802386181579682879741814162811550557078296630717162245396048915176945636253009468045841839979534991818522415365817922077108824116090191727165186185724132277248251129589335792983724975547760828699369939176337591388069917075248602208500114980563651965241424827871317097433445123208283671816337406031949219565280580848711263775352906783947187044277396510902427928355144619584240292276779792275267248418896532194221677237084433741791628948236973167939562257543037435198185232353527659605292780304466609969766107698129629738064153871168642311591085620880950111421129863808939974896806974733421017022794323020541030430722821389940809149730947840709257085576094985200736375584003847683261689197704869414240264883628709328660968951427845252886531312217634939208261311430449640979688152066164037864152690281533396691984576844156551876681981803924599611739771415347053994024314542069727291700770425219872177975137492183247367651178661329232473579049085804186740326608930857779028664874301210946195139572867755974312873028795585682605921959225062304181257745731100772868748453657046982041233112668424834184049565361979744648270946710967875900047944132172257266368254723207424404699637017315746531146837668613056469680105905103996450043209200218858877666825596027152825159545904234885378624579414622947905990761889943032203638234856205304343685482614442853103950652296235342254254410336802015672391003250383747289974736852276965444712622209535050607168933134206219776139324609331353201826342210892632956535598233423439615702142560487919585210862279720027004335858083022638398829956707177650170896485400993800964873559375884326728149244975281042756462943225436337033664853959815710856273954417218284085422882545827237048106642387749469957210732985341665401089547296583158542954929785861074096372290858417752969858288517012315558637285261427538791719039079873831710231277309924497402093551506371421045822082388149834584297099756531956318114014903341435970133862473701669924448788891560848796473012181524453990468538101668099769357763432240462967062418535132594266515540445657644003450885817142097384443709845173659051621853394047502475443540265933848620810627161136175489081328476307780266952695271890251453832728844304181608924814395335863286634616653525063155065632183152668435488655118238537150324880075469738934151964684828175573067646487550198725576292089208560283951101833942264695633895949985057026533388498476736010562107729633619775760298765297598986484538536487194007845355686752410909590147345791434411202737958520577699588998196737780867151542962147303951679618213649624101475198362759464244473824874089491050230213938992276360396396806526367908347211878132947584524024078554533156692006578515817037417289997942202117748858330862170223245169988712921203590099149374396958670874249978002830198401822046703569075149314547958723649954059171692831504770986906909186539270831981266399265443676641001883970557783590090308594592105821675310345993416988463246867723540360877680189974856086353314075626890431681323749791853320703450876878589386189442748412679931020109643660471156936381324888162762538338097487831102133386022761785699598613137434414099689567067053097143073546316227697116426737747213081151473179380202023427557712387226364045975851878327935342030105274999626760832562824164506154572718432615143582709030781843185797644166877185518991704103806709275260504803939411276173001260919212790479873520414908574737742314993178356541182250210994893854437364111022608364388578362016684175020991846463116536302677706683722721162790092670389795999767295979935604826730729551343333795664116432801670252660630240610231436971615121914690888310512334089003361601687688942711658420457375571500941155381363941824270778320112621864647091960947900676556682740767049458634402827785435176745277326580338748772888961639925236539710297356800094169237211382073331815664259630551865106427286141135724344639802064831881638009331690980210920786554218691838047309410533989325109034740311510344848391176768766339856923851836657932070776941440005784943643875603281520841566798473934329218345812157798436211153418811866862089345517502084207215581660009892770515197967533318632054521670950026323744173891525366581307493338538621577536999617084790723047486613191046370038052427747030983034460607397893131136922522622879555416774771691018944457399800579601355835714561886877413266716434109399914522634704907635468529128068024441043524474594245945644564657238198385633397527885598736116313718273999944343971303663366535767699215788951977703410437497063499822620037393227283423508141445746054446859280245388628030236272987824828796910351513719512899325310594770964082107712006174367431149311119547936393032593667412617600002160475968439664898775097522700923069389633840664762898360735376434717625694386433279130001551135775070303799657553895638800589342369249289767940520407592112186340836751911763481945086527793005461251925886732656478217772680621376437984217630852651964331660510805212617449574614001183925480269034769015934489023083938202362607186474682049193615243163959029951246102539452406117685687338703834734006006722574998397581571654675598081323108691556620460524678495764890024431543778774848446034891888142495883302206589727827921402603367875220834972571713185460259000182024718815896638481588746346665649356182439734186091383150919609176768022304863685973785058567012678333902251393760091907084609108329897830231332884823444074056309081097708465524965617543213731330349186988879874599215868905763254583742321915182512718810965124230130928482548077739373567577136374585806270048927870553209781371821219096377594555480262138200131369576947821185674198350485343889732859374077206269901479264487173897561277863944420596623234609090283668653672972791033419657422430040783022648455910568661778944471911743644246307604652128079943802744386806380071324531669437260764325160759753444399733882930740226861123592808991039664870509952129273062855376794483487074557824254566957446174875036705109752997432460279654946703878784943555306954245222281864245990714151872786168353695235934826200475988796113517037279985995986352418316213276050883945048777254262608911127166717919575204521905065290516503040377028004808391800799897359512573255882975778448338964527799148794692056376969716558988805815563515493988794637384021878198227165984867194115231998260039491754930014682180041143188528744499534820543772819879632614080067625908520810752143919933713443346648932633125696620057587113256927035938151482457440312344378956116405772756854698314590151456510466474164196694276557265033095347104894697086338181799823916864602441052768872901724640785605150865750504236528717246281712351599762002582342183969212179945852460284620761028487645449294452378346164205600331805378912916221141553086457980890239674652929559497011841207549093479799882901642067079000311197370304375859312045139658136846348683958425129968523995669490134482982345305517383011962813634327125111891889092514064225536537428861675840777750229985561530635406973545038575165929498799347541344555823031376979722521194051218032906334777448890459392133170754275924839323273137422212290176958340154008149511992102007676577392795618575061320985870090251585873874927442341232543242019808387065371082940437149443854739281613370696812078188149451174814748686952936457639629606681899636870566832950733351817415840329022633104833038502602099343742224315674139558378445692832391678829699045881922040709463095542155093562296409033644231023884027823445308750837166322506913366669094226727982539546791179313516101024149758335459012328229506059996902547183628030531715563126133027623739627443319310191479940173564492301197970597510044652276568694056381841613364283322227781970421070962592196023100074235212435731097075456541940317600467696275428927408418823480064210775988476402227874983982950893641947724184649755581537884485124166963885095766755597854825231571248750232222557068295926715497490790936082834899290432826461776835941001057210681819658232139838288470905082215517972615529603576126238353649746729588605724096186516553321443875252041500102950299977342269530826050470648660660339528784323104416626395035653706686212518014324737678147209559573311016870197339200982707341896836160591123677552983116674693304043029475976636054706271702912230425227958367978930068852358288328358782949405759626403717225811917115187052566931820968397159876981427400552602138545166835018799020221524226753639327241857048418562569342073015526454336934179840775542970254326471420467486489235924113434593385576081422376190066259304769326023831915665662041669564741619257316100642077024509604823486880816561269274750336065029823705255045002151597792464512577903838664411002020220202634484350026844958265780069960509225564003846510326988766712329562031820828408228912925877590110124028053163031326564882986688522427553890023939712715868609623261181993134344745861758472884626381323783891581262893646674428468495842726764438472409512530017054094931418152060951716154656836142205014642693841663074056163588344426343984152719198598359733568903131001549372481582569181377685519879914837912400624952048779340829605199512973257921130773102421261897532304291344018653996290400441597549947824119780163351023354188393454019977144593304718684385892296332834969775617614192153498432884508152319557196329943804602709875942326073550634919273289805668904945981454080827559631018808965139408551437768635349072921278650679119166884437733341611208551899070054628599504287640483596043980940586711536079132140626900955490070365197353386857921367921174212125596023463917161079775879446422956537593582748247189532579265847334558711039684458514605566421397756722013989463793078037688229771561097599272050640403286014435282000168269352198538600986630474404985897761935212562576160024111255144157334379963302581743545691466028113071645839931648937422393575872602588749681818951658654125377214789441379653903777763744953796442533513294081730934676888480130592560259154107377387238520758475619643941266685173541756099803298036339315851591749344190414983644353648865922844564374830007482140971108930831317976014717646745230680546449433141719212413599417295509216907888537833247859226802514678383820865744772999425755927829198335580801758798563095076783471793470061109541064584388492252736986116123161506128071130433247783909687213394095620122977586195060452141847042515332957845334429607453491188107484327979016857715375620535809877282551207061549740154680796591962757559411398558564033016122437366197065925478229174413817535801465172901511464240545016412507456257368083270345561181427169872995626778882303055587189774238482768538045739863046772405408043140902745119518186378260790112788070402093974230832555089978307820163822350611315952737527354258484624239103254695999187235737315505955571334841457544083258368880983114884143508430816814438622046148499498628472792815133692001034598661429775361986447392333549271432039485063515701046149763439901142422875952810567944947477649884086352397346542435703101219474898677981451759772845001316906586177991963767895900901636114421797551028635207659570696967470794703751918960232839731054254231259634248412507627943724947600266700032798027496897212769997287101921131553958080553655814156264185100223350008852962288631334903009253707633974969459991378451709025451558628944690937649960617398342370676729309600193620803948894643657351303531691629877711599974639048664729304651704699989266664175547130114811129348091483780141917296456506118173492022620779187590373772753443087762862193368031075711257750601632843191831416261844437514228353223855587739409472258656033892147048413809485053428562599170884649312571138439997111378084933917394184824704529158746537168465527035811664357866552231833967796241134140860116019900274418606544169491909994787351280135760982023649219239274244611840565787402049865274883470019319690471687163783808741564871617085706710700649568308240396505814584889421804087785768605387736935244721429036010122886625643046970166845923720785351012759569369148759923833167537061748571297045051993453898678246614140941259828722324273235256460322138809641924653809681022290560900646641310737925843899003116853873908040665685914609562654031774589764729138541360678814406720842008700423331426056143371096023987771751645420464097176398257285150603257206688466205445551957051950117927183989728018233775289557207309955210049117257165315552318690101538844333083457149901606065078413814523509735931715332910569960724883367695040099232461524147166939630282507174779700970428716853177307678955687175686684554932872829179208361541778317573355760579174639998527549754824584811625779526258426950975261344253322543890289800727774647854886151976582578054534066112923558909960768174849604832601683456979183187403026137665047284368932382748086839431670460788875825614219816689991731515437698574489878704566484129556042465204769359917621745457906393742564079743523488011230278353572659239179988171079553154785360094818894043376939859387532648616308715712899065061746066384404025902474571057796704075378828021887986711299328238727338023914909249209541365644555116511275857640305109762730071173950322779009902799614146728569609507535628888799750311527682869560658262438473816259656934894566651313129064566347250464333548783344673000056551089864156150293625376977180076438459037637009138010878351283647885980565540765385648896244810972432568532746675998345506750620339547061463779272023149510310905459963920560623258949801544472813919859795893379983808462860874411445700952991663971361445550201262908964287328922939301086621234664977027595830186779814844459381498804090872020348566181005626148266372765525029678227290953576258328836806671978424883955282515964712148598722995927925150948241956721669654306830649253317222770991901441080516353962023361505085068168803983234874131478340709607466016652838985910795172569997555339036572836813772518832318730916828094959863319411915609865314264367641626129019144831635504968799118572940352138553614942604422846834671295725126773068817157747503056584082297139718832660218255321139700010591173178127965025379594942544634476516929522005601837492000270351930008857324311436121676979737006162925096214324405850244731884447679426692946492060042244924696644819800073168346411753987681404807800613473390991636631822042391663347166161292200941030199521249065455718265531821256539205523236595994079899957419395750174197153077314847616423891942228966260220784474753750737755954599736559220071228766758945510969416612716106289010081394162291447961908948668862461530698652600913154144383973205802715552385515660880305317269569795756597079698700780465609553432686599810220321060966024502401045260805742164875518825931989039332162080238093700129659170096251906294476730129464899194739143976807160473365902576560268313912592563189527841996875493106539119899942798573903191864570294572808741715820239987386996843056785277278516585647175940042279547329787213736393528620399371027709406554250591634635721379865739639176993207282638193629119152191694362072742357428724971126929859194625747719017465590616736993570576517771883374248851373218155598204547156204685716105657868405976837393716974875128729523612613387353980245262918359890743447999656261130016877909632077500490532435525859958094182837973650763274679719888349846331365821969533596635316180485396949462448812994114097563187553537512382244915726394244053862714068367656621542824662779105710439488603006019220830156481323034573130572641679864514206552584513967700458675422326883574763156302901558275892056770798399658421936495884702404597690367694112859588426303006423830299962804495387785745327563422167566967833009792890187363883724255367890164704247139528026362463317777478493773186717854154206186447820328829305467217190659600801063213211458512041011964402310813198989093409984194291743776137562151106673696335885294166182578842386417255391433275722286286675110821997913201110398938450297472522540026899780543275900783143511575728101169074759813361500366597917684073520501022474232152708364609641934713600628318101435341036114765358312131609838679019458267065840904818515640107775382778996702445761355260908407681049733038871793064947167926993257982296823266280338571756738814247487994983055334769348882884446422593205144255932986805435792259615689540951003601023411590459018235799725038680194883365513586590407517885920357762149377954700644479367165958617681085153044454739171636464651516495310333586014429215334892296466125112121095234005853067667474440118713528762901875161410195860768692710575419480128696157310930082330932633039509828641954912524703400585153559306542148205636940123109244520171847942652744201578449818915121474938071045715312700221391970970801918909736493862345105875417756383007381887783519225863506125438592982363006492267954816812747414352180311462477159272956107373650971345918303709463108719128826123442571805414250921589261922379603770411194592002267191959104757274338702301052685628567287288611708318031040493839826305028914909783292688840669420506768053319913658132958144265853868118554558038122609744022899371763184268337571244069672525235331632344344902720666114318302348576723639535205529486677647340498931777491853451017616452796069079379813215294088733727112719747053262922849242138861203194192899005642276050615158465505927051615203999849641493325907700541122465084298470300457450981778854340365842015259514963454872526932378399519067811217567638538318364142086710842899001495088029037264820791033468875724521225783184600985147670659714881286376373687291307691940590354755740644328194603931621591393070149050966441868930713071220270537605144707592397900873269219236056370080323946735176115870219216321539762083634249992887713428451713280488855100058456044228346328708575326276798137318223010652331230644460772357151283756655663312733223067271961128845360880056375259452328232973242880186318336877972355273288655999975781029720352386114557608770934291887741688763648659489886338665529288184269760202739221530072112227488683872370258575524126319320085205207441674442465737902380281846615188191920309668481229493376672117096547378172911454298983593811082547142451059942922215147724522057511592538455358754361584089707093278041661057561120378207604954669956907058397744901102332475541460701988808054139235405528745044731099645193647408468555954985181395828383446215952793845045262910194110456337070409261836499547662564863590608639037549339850689748263530775220259108938029439492768885779952323766929422335318703341349059437605431763081622928429186148404158491394231879030153692199592926971807312252839769747757669693893403944948047114710822863633177506641587306733363310592835958851200095090348324087636419014495846006773496086729189449536427263115016604053264131040154387750514672301242002668761806248347014522550752902062282809874728380474045791458876889483028477887551016993358506136000950762803445973499955868903748093742954105916984096117935704151700097602595014086356925854253155821386784666237891128831714203166575764139736672992373416547272586281576786594229473555169425487850013455688062928573758362572793150620670085719090261559936599157114747758714556406918412223290963605782180020081892142630413409714578570174075948899681077532602147889729521375208106241704960729162576273315658484155161447637175601579333939988198664537616073050386866510357281338191766157930249844998758578633202484016982346713720267525077014595266710819811460512437787496375987718124049476497279890100252447428911917221876619741786553677608851752590301749701465327004028520884867730407609277617534121097932676556945767041476188682009319360556771501486214536019271392793997942806476755847149783726965019981807918434301727345302246333699777311858425957085397990183395383186559390839969051083736302773183028029497419895484117216861715735708967175081502186302942939583993565007243176649219829729031831488367900945109964142197232469556269641417645044793349085200760763589817794153491578402280552605050645123210354556682548464272667672785581438309745487637684753760050189049720036429565187995926713408112954022428070638392564331115536367639108818765940645450329866917837081488139914331456427634406169001990838322818765654086600772517942878122918072673816402861097179663344814078534508505498270320827580378039104458216259828974963579681870947675481163702232106570508412718758726205426319145448602204570888285456502739927614679534294079022249091899692925179017829464410421096594458621527107784615476811946779578753837851133260109538024947371855154146045632483247010182440776275583777218670995851161768243072359844100375336021301240125682583690767907337887059450824931018504192995790282335305219120141913346328062148610872775604839994690735897308760466568370916013933942571782230801966320931585165642734019759896921441689064856772878916702788798678829963095885925536583234423678133884268025689682847732129748359049640759455164272224923579501880761392864515544610124552968153745156330494940585197927847532791302087956349634164023490081281384584678627956084854463953070083068750189145986159521764494069733236193003100659055735622013214935489112916095027556318212034788415357861838911396049832775200675592952101092491238920070593860701113298089264036042597781816883281419864564356905840386714778573080490505311898145169202687743867952965271959113609783758648268360620080488937856991314261942861176291997704664110787239524812281529668028464077429257768032108259293347373375905337749565789678407925800154638520430039724550281737238754465899302855883112473996744907071556115731291661998626709178812703550512035017279776125355056287698190034463125476208874470244523423697770017499303141562324647970383148809861374958873784487491754017819295004978624357083802607829614953850267960429266839132711719268832326432404633812368505412332581778766985656161662368775051625138293233053495215982788802310425993541895801921028752528158546856108520141073232107969373148019924392797960911240009674002045042979801459041845788721235891364264823197034290110787627827034408063329878689274796303979624720652451147810722021917199137955404379572999811840956058679200431393496499621492395241801980357087227252850770183590808174503501751631518344299962451752050103109997958679748340341161542092209747295232731562588218386208072170432046496487282770235484313997316962032836126322774654803752701247569313351093601960184416773129588258274239577636534594793082123371360128587078119689567928071005994243587025177647890669175127291285489392154032567671998009160424125811696132258579501941789253383030344049924872922631516082164617320155370508525693066024930595935657494111942234019383574274172962173726708028768162445835918727062154723926681070509150200004783417184761041935588594396788767068672745702753330279144929468995912370548125062307601470136810051055413009492873575417178352657572326850377586870433422474563595435455458433785853635897229565283473641441797928944374908903210873855000581510623772107588473260387911465511886734101507221802175789306287221603539861644636435015591436920456257774374749613750156481420905110883838362261808667932681404720010088601489782658453651177009131940485433379720319174024486168924869860706655868984668437756234781788914162133175312099246480848600111043323585448914094587312987537263420119963726281034045611900879100402686288131027864628078827246501023602307743066860507638566140036359956466828793350760634353685920714039767171522896434785518238222448964826860748578214715580557538583529205414178196834673049940633266745390594631922844357702271304283267126717137255335363772118073302223807689368517765808269880232858060278464390889265519624693594308316630691190061006857257736056002963383446795827570138797852651538309946800070308646625521226762872785027713103091355705709400065807825169716108930661526169682159295024148519231942889544570602221075007038033015819692852857185403086260088464318901428671735950017927659390598975901675751855038132499611786975305941959035145655506902306083158644775509284422955253196223624473626502560141998581003850214137480908404711249003819983936272105871178641078799600757393832872691860643483980852699050833674958569573979243168723873180215313581366625047162293501206187500493834912325610293489006431546440936644081469181377824221451729592968111651033321055539988603456927237401189986087895082275179493309342057871072335539996930606061890036999911185539213814718381040017150468244560673147956953482250630782963732068405389761055119009819346049217691596821398463520586852180625271272090117740204807141057165947787069613893007325360700426011778074805839424504832669608651459325198021552292504070815274666679612589303189634950788767247896965160293365931801936615129949936597923679989618833776566711093811385231236088468091403480952487553061378083409178980082678623337292292986506162307549863515348274525706510348713153258352396933362690823977957732329038022866798396352057660897847181564750461633761934895570482622987613843227969572026556972743483711759208455262461908567507193065722236437629198362249518729277936935655827339235260359068506872704930278417124780017554937157548027449378712255747691570943075263058015028247160061573932773753281935970178313011227183064141629246422450484110522932565369401903333191084669234761840108143146377834143587265096934404991980423600879910843395378025596802460220738435389279222521152565300430138741722042498366798433089040329912694667858245801170844837249408102308644288573000845108698524959768094185777009708631627068126594460086999443348061714950466797660010849380435704779952820123258295477224297617954215651390375687000406070160130928076176634432335491213682948202998461165209608053503971090237257229099176645340061979104894881534235734839325286868134693954235646934628638009398815436775902899112760475058390564416165379026602286678858453589173569655416176240309380245715600341709285181345978421154423798028984756718412543040264868517297127588604354399167282944750592017481944800333115167275355893710814053700758135343484961672953128393182130675010601272892910320905201756838078803441711546923316079938408307752423265322273914070547234090350433406828433181387156399315451281230766226249114921742131543341432742125365771460863132242041248922183549932794136597468650315623942331934129903608740556124079480601299250713701033802694282178427764184712991121841460923642439735896700035315686918851045891780516656388650283421849860806176052840489122267156818377858195198511137026549422633574071209607111179845187449629800756198197356355156360812064456365191270963439663899395342063964726339768826160279208795344164451907145849016925832778266126174935190972267654334275981552342071297951964128423266101705537590944510398197275876466899966756540447187439781883386087511427440838968148039919181240016933825184575049297807176485922505319613321491563384853865571877789376806783778032943230209907878935462316001643441995202496891119419680788375232062785979886633074926647790287880520975544410807708260717297537438453011519786420016626485531473326844486342569188296390165767267723284106626288953671561831826382523075124001955638726694933269454311199877354676644441434563945180861839229980476390167576872318239869165695204772420638586119910516654970395153621788301174970676539535704786151870383214395743337108442670100319858584871729960699202623566940099936851643401742345810271769952011027193059143365072300365972517394004814661821594473658252479836340501522293864089727915473640595008427738141794248166496997417550405454140778623862404029601217230463635551349825791271407341883200797890582599892582736445702239704326841100472805172740236746824051566154296678215932759763999298364758633232972850017661113339897004970175907033467591728505477199352751160133235339460652223054218591329343955532407524992510220069988033364262511223730951848688722789002051754653265828810787278059884848378551053996859607024623241099042521055626655490815680310391635335602131581691372238557433443481154377385061565618442890823496695186297262116177314350106311269661524422521954445652062473176276592162299040380529925003020261739096697532669329800970665957446522343557358631477941288074200949209390494732762662497226372311788516357408035255952775002934023660768683516401409620218988544555697604526689292769907344084568235907102301370006044922688477987764599533561059618006532163232354656440246244808941147082120951615861339520403789049801482299885067957295576024129881633144479869447896553293374291714274893638158774557239129907122322708310109351015702837388300959080099790694164102149560017539961884996890513608850681932881184134960772577511258455103032250291647789188833769322506573529247182588159734514551986488994432262968401338171044971920504672328548557437657090219500597022679262192577165196046623379138615465938658053573772781935092947997148418512139088687746403439884518161448040644261385975023605458099513118295561955978958411141604791433840999172026211947039543943950695033055190663477874500949820359234101664298898738056543422637967494000055488206715701832026576071670404128980625119442836271937255892183606589014565620010251784197615230705995500706008106198575898722615038854591305116407374144539207192780596157489926225230895696718309775710565166265139225450439216779646753219766828343899760289120289046426331461098675392688598649995144958883784242225942226546127005450821805089081094006944729507054134333796230509113065391184040724834019830953702856624591730219639355715748317415678532321133202134579943479101865337995581924918161416669828515102922956158720024893634563879250914413286778136072489115491209431109836824271052227095306542790814700595104635702857862157579530852013239467395126720021297828824452287772307007555836410436577565836473823185240491633291099415825613461343548682805415645222966791796159271780400772877063640740964291389538196177302348164886135795419081140274670986388658293566785296870495496463213849102991045667612443619186818191019603333963060952961671102923201947095082006348654526529755888896014071647663108092156932560123032825775888256895672320383561014264450761826122364143025812371777962398336899568216642157111759442928517532502879175161931761998275953013575223680022647207984862054764542737869367591201516318809929631915401611114722145147759291806027490093165733233516020914221148172644413651668217058313688000074585622955310083650336921533448771606105785474163873030409883579200869886811683094192738923119973397511194696020404361792157961017917026388929769738861451862390260833866789368317957973936992056730583124318570594147624841189002692625304763669862382063451828685490507153249543930623946006556475807376249929914352405727796711798533567514080776243277424051774883881556973540823759272798349649253329576296290733926980180731376306093081940439065912248519084641433490244803937726034054949262451338619802130143864520371832395203644231884631206125318131266793283734475621402565403228373940764323595202764413680065834950096299915342473612548710605143609958095670204044956055516757349339450365564294164991452800077867462159750296578271330724038694288241113095723170142059762452617675300649938850315649794668236302687988074406297311948872445979763146244713635024117075127528618364840208943159905702416047185003577895245038302589813941647403464749211730115247901918551989269122037227292570589212310920464687528124487289157203740883171910609977853973654123777098505482313823247648173988646557393574588617115364489768844084578412825320059153264984650057941600765977279845772292477563549586839559502773573977533687161943877752980914782421798623824600187051082310548619691307745023041628120815791994485514758181589455888688125235863463511730853084630273374717248692109019117796704786320087642253485332007956933426592096430431661858649474717132587811004140860225999706975333132065639636208343030388982051189911669883068045769078388064465520566986097870132172587656226674157336756120954134329317354572994565340951752495039712164133193263760937528864646903828704186225412495234291813446342952686088214134759984555434597723478664192642043606376934434444286948727260785844689620192336382617989666517766842190038681073752275679139003207567764540643204380728891151281543709682452005476559267172989274418892537016805408238514175304574925805133840283349317960046387855795255829020107863719468155946594881479991622123243169229352817845431036125207659970372789041046580878498841886706442353257917996573138000069962591667177828029494958192371000412701740861335297247672299075917183398997503237290340258442652307451786973486398059663069400488032823538910402389040851146877875852127680442556548928730205741321767386698299997431238864225983654690648851259552968932984896491602312433031069204651986736738832036028723189216927188850070083148346054860993652352764165408177467130127095547374551073598492770562814958490653597440874310699515465707799939864364640688800884492023060177221936761869713046896422201801191116953264116727312878046052774367979732231956533267957571259032443274203653866153767023363613896890153059732571959836466419422176498456372244692095848734027687085059507011428676429937395696729468629924298176378121961916030856760884837886013642844256549900803585229625970862769626758018317840809578873351441881479419244294284943297781391138371414293637067307357541942566700362240587996942321206175209457397901196292851635959952449285411326645433953685731634881992612988925693426236734421227965475079793951068838144291400336036959725218615938422326209675756741204631639289666975457814432260170276347010411333733009652405477887384078798768544120865548084844095896454136796944040233799435053579540085553653150646545366238262164346579795065128118189599523866154052175009121795694989218845335417700131260791988828807977753228998611482462063516783191769551969637016885390188396170676531654585792925592494151483817280952423084293732460346666225257959015318956947632272789202450378962771098176904766797022274306843468910181504283014942941966919551703700018044360585473865874472414592766068544740752855091876065110896528603911107123033980834658932468085103217154304130509584758941349114411200320671044438184327174741242691322523646322900998645560938066864732061966708054444794602742909327846928476788068588744809460363386041888620590085218667516200354498789216398080166220879730456101010072592352471769901063559813079455665412729939319055394675531169059964156862048941951922103182289631145027459422975776238666059002667484853231846337572037095977491674998143330964074011962502742385428695546213143244237928707166886438916859836693858683205543947019053634345576952654758997745278088549794326296781209406816474974469860332339331869906662095438773787715163136708901169686491968833851150743872758911782890304638048901266110541337770522707128928056298263021042686216667677053818400507921610503900994205159698615742646494476416584327918072603757858905135766842947991608399160661973739132856811693364081192884409211297533944160316312708515371157397235682989773324575900242960547871556017029441168781126788539240259859640340013325262884951361992467797317000841274409002436042369144922164956108051828050840623174368872514670599250370606922988681521324785043089053114215528175231600331992082294956386383256509059705198658384791878848048134053746356046574368958246771634012659996908843757337583412541643741955052340497119406431473469492302858242882812578479050235906381514057625412493974734654721808960110285546529175151747945339454562290411778476989508415591098439630656146859163225766922990305947360709452323034448363160694934705954061981245363662933340511108675069142094947218930822348537529207919820665895445411122032881423678090108964357041577935734058343045838546530890365092856560678686968623834234167095747243438006866208474510999208614615305876689265241388961710181440287401203525085352917625268976634018053123229999232006481824888039801508295779633830914857694127263301619021567784988165951918578609161391568835596791717424371236838884015499253072332141995094310131913327178555916318996554310295952504180381561273370858769222922826858589953898138394727227434028758126925728030151483297708277498888365401833976402481289671026202250545951337717784681417462914135690020266035786661655619650765773855432445116034634797332503846386899993743192825384229792294662628618409747442764838261997530245220186785264698074347189355464116101142992615218543823455556565776969258817735579141023362583392330000834376418464819317959620747798987051829602121294820687033828119967123116115349604138921938255997926994192113005896714563310410496422451980243194121023350818752475659167664975878556901627353753680428794592729933439259064027922017343540751486471865952099570999920633734703854643994310895445838245766605381365960993213569933788214019292161541523403364182475258703464234441099825364488563920323135003919135440416975396994716765602013638100241464147933701537246025993716249713821319628109567675047033390546852691869845888884717546225416178823150961962076749063117900388313401571378468219426564637292282270775522572200937950698266609671376095270044409429439594032003626538104389981139735813010900428696058100858171915473960344811630598415343660492823969546555192288400505572618425637302620956008505802971615310803104021394289080187443797757071652669661420735082620853982738368493303351852352611088430871031323676657510048999633804779949077125486368213046230121547838764615972640874865396745685212782031098819576145320502042627744947010207480492655825418032971624602177446355973498844999105160333371871705715848902735990382996305339112521376728236353561787027342103018181551727039425636101899568640066506004995699517942622408187846060821212313906927442814038749419961581764927125209634828555733775299098795730893791046126571191066414327613202235742412284375619796151445812988965445139527090184888666120306261287864605857130129128029958745211835334854137273691496745885989684744052808332864204397583578740867963079293399092272666830718129105761165749051789825695610773798905319908765683542342043752617834679213755948821083810481922191773728508511814828683935762993828779465961515426520425565553572775514568794485042324621147975031070902846517656823463581325614602780589072794036510944641821698654355123085579608890984488752093285230106116357371859479923183836041582600459206036353456622091668789583820488096874468653954629268362342017316862030044309786300885721336904649041053897646812840567910462787155994430455938350671381918712976064341948872382722108480069670183596349205221385457375838222831527549385861173750128000890421769535219092398582132995543496711257483726374135281374238432750665531117296971724763636188492747629656497078815255895142536921170904784231506160269266150110849036830412916730231091731155641767307029043218288444695802573482710012215353836947909444882866469382607744280898086365371771623776405272237148447118956417177389859759526466860013211525417690792765781402739766698301883514537976167035630943683877443534390100651235168361811268026581173433623692823252317366220804384797416515321724721730727879397265068130150871310091763768610289644968146927569576345505205849764408957999119032345455650064866130806131913215025780892148640645877484460642514827822198412509476685965922046160203575970570171663920275187155604102964133675598909008699248034206248221591027243199245860126447808416857116225820301495644350220195823854778224512367898724375793813005347570709761066478868448166627498015366009249330486102654355966915097796766062019422106188594108546339744949029776982364582451301172437826552136017745128462062495335301847977174313062104655093383967142047421113543313856960951920043754849836720939284665227019974660101670766378677898595482725741140033186732392520394759627103367240826606955091801152117538455298082277445769710117886345029625807571414136285555687160105287136147731326485255765451936445987427851698968207574564116757566499202870122399020420202585970938469802940825793752950490127404954364990348578861426314620010065150614725535657202406465168668219464394211417361077788667346531032582740457864717892168379661191334900220714058958174398054161702763782647485553106613310349409123302591022711059490108499571044487206621933116935641433134605811774077178618701315513034008864189208375796654284644618864758525513646133862479884538013193434240023606136435672037402742472188196183447929463057733840986004946885375600726561894719501963456365152178409674136507658281769309703443274618364411972774963636280424279600268472369057672841307845259444581415789409173173882608993465233960813990367834769990438280251412414399716452122058750263083586950499571704734850389147370852394886879292436558542383024525963345554633182834129983352694862398749184245498314961564940429458666372187338239260320528299393892128718065529015678510291244064347931640531984716198297472250684012534709247744788198934855983731199399927594951359801721852068979027118789067336854743009736813756881070153469584817265230777784171523709505954592332074585244511294730940535693202792523328510391844263064178602742584208351169452302544516822748184512910622072438470691134667463162749742116833727460383304525903545914000674805004920276867605260436287316163024545873682688323019024178149009740653679146888829323754938683286910662647521945278501736161037205027100517591585417466650370533788561098784193823755323724515389644320705073442320628804431457712967016128929805383333076712121601608479386796510144004938191961876309932204663125301825411756997409511814976309044833967315057021728855747954478882512650138059485390096755805140277628374463403741003415217448006317076780516735379872398505992021672337548277052346524609117544926864454055055654481512887714307569222669798981379485736593939939765353371138108529009974668052819966343363359910348392187589907285800795169931171821157535491721528526634941864734755990814352229873598817271836719270633482033907243526280636424882770190273369050651349589520955835110272775236493992730056641064268123260987421640558968931260949262763349440875189964412717630416323277841775728463088700579209783513532283301390882739808408630929355675401357847610654679008749575584605103195215303902297315823930888590698574824743572317348923709407328577327024873642766724321707953814608046710508189060035518785251318017998075804891076960669635741669467298913688103005308655672100931263261448598002397067333184811568597842980664586948754488162547311802627551016334334082054604754652005732230876525129097625319430356553522608372841431314078734108577407435646870910495256208243158079629813938400871340589329605897610864260496998928371695562726414818347382382109241406115485964972391682952097913770117752792736618346690128529277920235134854163697887550911589589600762158427644817359331135802049657298564720129198283608958337913109940026094092083741355956762711093729784714605935737243143896850947156265267469226342970199275970285728429916483057018725311952241693918843045530439446411585655126350053457163963285998214687693188525226067483381140751101237593740859407483890098795431040064993899411989936813441469044293451603919244110592563008077290456092427184670435897996144958300755368461573570837338976306042102985934850130735747769682239330691356552818446874825245756868131424119821576005604368696856077738839384433069516937791154462293473091647434831602770543557484125763716607268374659653669447533235461620281089928358145197181919404563020747009096619228865874994214172495690177373981071855835207735833881790229646814175500085965497070726178365811424976506816507291230052979643353184375031072964623747608877883539875312898819517053847756221325242490222094529050509463149892251699779220084178483422210750650257251862772458370381874074017651934877954490466695156370398572819351629756420490208312212028103427390405618629163587911624950425556384746745257815613534792497557898661261871807688767585763028384434112646354008225698333847276066247230996610366784997006846603247905612974235824955138682009682195416288141630990340209868834149963945608027651609312484486568701705826566382672176001250346776673539938663096106502476781992553112795099528794100086994575927020376297943309938049929554009112689727724349500853857105050145072062681239129533992622947566254546381403406339439599107182559557135498066880434919151927660348535877905462447490233775281768068847301015334879527368061880467642504448530850508627947889362483991483551870316625488636525969293026722270478010040601612647058009850479669975960980493135795040209446313242649823405383060133785061244152175306824305112116230776082410529603544381914515155294009068366215885073169758371281673501006409834131875440320705386796486367649515876498294314021338866171827183818440300950781273438520166122117913749134114956481844197106761071930420766217063823838103149660540009657501582940885716196375649669325701285275901455261023389019068842690092594854908463943584493008466744770284952059186445475210541975677815341074649432402326231761273971245846916184871046903597459749487160634619467760337743712380262675953446907288054986384665183127078664058622934160678666703949258020857624600157402836560858580470450460991326933202116688392113735832702321512103615298834006114180703691542199471223813294183666872146066388623154891519205661863094436663215666999243237949392264655913367156138914326473636297615640981729699490903257617956012968855464296769633659092303973443606329284340195823546376772008724999972618121928423463581312200795234136872150797711992470302839284088838746796317985886442708322976780833534007754301708151073472551501830201389932964041769594271976635388055786625390492888997784271813890762152773996493234703052558645779491828547352694773196550164123311540230790765725422272126319495208956667898093140638507617823726610467628151716491244533796578599560728159243567806989047920196012039442226060335748051791588080931315018602731490215448724631474558210454127627744751608810353434682176644676947088081378786217043875867959685587862439673160240643545297222573885185942430894580497115886370209676010719861993283475947143866190283640147083188707254778415803704915887620749467594462368272103696665081046773177877436936357140626674862093264583218901779594158461034650187724030759301106431684561497264875539438136586017062498346008231718951957801494600812136304613996827196859373847853280578744329571154142832174563846511484852089508849313483913217684350950383442960665464058742414298830458540079924757032850632399974909692891722267331514006821551879134262338620148497793616778857693639441908897361241245366613725084186359116422505284873547880844838909660028113672323748907963796499000592927616600723636830026218487473060946984382123730146993695418451540105529499956327498094454582854163610948566202296456083356881827352819306645604415460469472522151129061379916020625465266288988476167709991105607366714914413177690389492151795286262681088082395722098212987513947939521321515749461364703032144803308790824415243291820405818208589881367483956216128948731217521802764588441452550685757936012867130114425811828629285139064396266114464633717255119752284940889668631914022309719857919676128512831271303114170960939495982192535907631773410401059871787340265454363963691091051991699575172897142373180064561628628851516236567369572178961986536304682915764472791898290700138792729304235956879466109041220509261419974089376292804683495356310706339198049731390812436833078246535256813991353202531047724346242633009099033285351337485898031879745122430977943022692447205667780087988955229594815992485992974275978800367239776290676866252511019705233562011124359363447882719569179253509761401208486171733392838641912116027243913479653473854054999359579845021133555455840717747426829827366805882413765348537120436644634070200769775393339512420895948649400846475061859072245044787605103581424037701433606179470218346663013025436767949166557797151803828060182208343786954368564331262840320496826740235169571423784324195872422719651601505993259942333661965168769864416739249558458068638402588298119180893691325366990799635539885241395440318157848173938091628931625791996546428065552932096460732324118418987993164138345558592875557929202366429594861767165622575777530069697116065774299358409985593725556836978277578202550473973074532535671509066568105970734158358033960866798949798130618122233372242944287391401252932594658325771734818306389291052588873833593922169483648036247544875373732395986384156624779487343952380069234414207399068873402977374076978539246998961984608247133642309243928501993541675100377997585128175714602102204046061601118778483862205431898591096924336726243669323873276939727664112199398925410546206060157779418662385581082128746166794387837820550648023509926686463484537930702462191480047313828385757260766428912718269645437680092119038888813785067059422301827535309999044955835654605111057507142226154721641528872178752397676899731935474651011927404426056177120966425124651985377395133951296831959207377297324151720655981001445491646085801605898628680489881500723667438908633101325217623631430483493217817675164334697538897171865818837356899394745385937545682792437835544509991060096297716100232724526016094353117938745659257281327730632734328497485713978294049878579836826768390052029826621485752425968194577980436180360296478004226737264981002320844131669294461699452989541776137641023843919974025190968373763763341387132773520499588023372765843300618052031186596754957662892995952082555485747747052401546203351493148192514260586256234783165210752397475855243957799144852365753592045859907660696441172502703019263803719045337199502114300674913198586447375325059090435272506780148027599911483958811005814663573848269867739037674044760804792215000970090810714896064137321249034772840144322135797974033332125824590081834046961670291995179085922016469821368292820108149018230023795054431249915870558075063497339590543934878104997180630478569943024886955752045309988765301041673286998311182313526455823573041707161849521772676929624908348034056054070015850989718781366943367833507125632674602606198828747985737954675370648735009110084053861526730132365404370449385502079404986572085520308956063900489701984899016730824254218684230197883301866224366748920209922146404242815645434062786122176045289103507193177654227751471344484413348592250069580311837711156563688786215157180616509392243938166379335785597744026147863668410109954930068332389901185492789409821272684234119768026688018391653076201443695169646733083829207104225498963361110963257789376909440157610928040021631300484222235433290911849681893547202132434247567041014030273001205552590132695967933772422342817456791781891010253273523391677556345940666260128211301774257195154629555073173670854897764491220420226465739642227866090677594048273643349214933462705007069832705513494512976494830470958183745449701776648284142065627773510965410858387751084302855006064228766791324326496000444906360564299590804708044500361262741979726175653576034783023321925333347995789478864873925582612046913837150358208599653215705137297740008437673450920835784399643050016682809272771369761746467564260201633203894054175917121351905073847755004478749909641770397762249862527968882055478175801822512407929858517050668691968867523134017713698720274682725245172262177813281374531258107847508786878157703264076430657942057178853034736010764449629430238319295058740037349861137173047689448147823284053538713132246136109838249920239976176525708903506079991555704180265097556333958821868781721977947760338075199806517608163811418283650581944957699068883175077145800254250908661633077456254170830469598246988528729672268208085664944445473336670029078262210183249475283575484954491522084552710750421980527779268007843472291688763125339257188330498281863871293810821962316019423049293229379309817187576415801523598152557629105537690111484870636634434121363861187082169446252051212348548306959791169266491296570463170853411248409798260543306244878548066690555281963907451097858003203247402722954587565117398005637152981828134715725882275934223327301784255021629670819395443154060024671871980225648260569821017661629776588440150415586338499729277258165109648519673462346531501162220375646839797478850960819204608403843305172906247953109889904913403661400843150185213845230154144001311675378867530869765597553252075847526521357376296222243791960180781920217234075279204831877962209672046139366913966310859483562541501666689910755406142654346061406817877523910770086936464311081926216712821032884993233544934249397429249317747299889310402852469491717821420387055727742440384428165385739109908330205538197373775233824426048381299213505816122925370094873478409886822491686329922196119259236687143561852561051107454290843331439544363575961468365875758392145009647647054584919290376208209462809150727892011341917317810017037213828378277837449637948489231586943214669912199521709752988535561618680224403445377252936938892076366943556980977733716095181306519027094134326201658343851556603894551799743877202727058997675160008853019722559637518297206772140225248434228591168050933999815875103643017857366540324055777003798264990250188766538402576753594716650861385455330757633415409297383320620731099087340785773558875963183993600656410379045816885470651414035656939658993128728145204808441718828370406440105234328810522441635895533477308588963045218618234835183811431159388321544653529651528331285645850466976669394929111784329215415506662326632046137617047628248946354142920084009110416242557305166978681216471308137140747233968314084476015737846765027536418156480097468134164739029470215901025078382405750012247002116764367271720942598562471353333889658542573378727720641756522302757484773631839950416659134698050685073048796284139219331920760693157039855194254672179742253449230397975391713355840885862871876279461339926162821573216379642551318348922533833383090981081171324013630970320120490807122687368804118123230579820518653401047111000525150971933504718868090451097802741080505359574879713967277678628985238660880534327309318046795279643478702940992135384502384797051546659526786834032906001224141471333534850757459930271356626096267653412905313810118912816440451857091610272165554983493256615359843749364898479359873814732838017445277059082067093751322240108737122025387066217566747057928615364435270500057612299155979131523342583133335978978220841670530409945362538287046237395551707623870286835781440323839033765507490028787916357110798428333111351368566517653858765961644223295126465989403396494532096754834999131259758672429955071192598537300132824736717423771087737053852036741668516368193716524130226640556594211294475268339719240514224206224791152639172903738519476269331134895885802822944014848760457101919150448297657347935846100144233449583995158281210900601029270512130902017453349813375597021352135023509203861409874037301147249890070893613878509204841061555782267057376048943656145630629459496413955150846992492333079939377655214128843474771469478567394635605969560900655381317764472219120040549137803401538556518472332118817530448551654460172011107444401200128598244526415425857979610648469519286736636000548226614215832471910223812714683945652937824639517372014595883421402349990294071087082812729111699389015143852774501149274451914411338558698311438071872774031135425205092270144386184223899893189241543649397227683506782155592994608381011461721674004422373472085895349720628018899803804732365078355848451841140563451334557930027516918183175891656249639037642443527144900612161938784573921647493037498662016255363161268387817668397103380701248719796483345476024031788233363761178481741205094046197032138991643655707717986250370522617417107172900752620279808142728023792619759522962842337935573313947749912804329594848704040248998677602282237905939077167905897592253638211231468132432764876583663369106184782650704078385796926787673509348012532691750577408565730279050543702557495828528156101761764604494328530492765951739817934556297004604952885951767264468116497399848738614751111089423345060728113025921170345752235396393313769053801952844294048941299521718721650129750272766028660776462563521708990095407261785725322571769434149946977425369038290972390076924823622827807408534094992407503318797551034908354918430233305226733241900036270500774296924692708191760357269822048955888919085793784859113477322356695174284866142155437578593872926690128434138742192708041525272613539665894128753536496757044041266340362191284501565979288959918176511550577060443149288244621215869244858030496673863788372087765335579072131200377166051555900768281410965431759630510502947609338388562745068872769869536867287822563224135983297082305602556193859426797538382912338334473360171373706149185564847714892109642594958996591049881653620991062179975089710371135297854170201532327310817671071031431659707741011866518092803512667334529764437816698433647571461966461653820166176654327606634461475608721907419928932271471591333409335654706804930630577397371729148495174931816580672212681039310336806842391325682682382529204560986654095638954104392731752467874756079685121279902747974143692486711715823914645835641689377413475834498037887511807160597308775833231773939693222402002113274430081109744122157562978446571399620530494101404343474203698123502221016174778003477408991272523002195356552103150363193467202646269655964593165518414130409997124007222409602999583065641621071143655902126679515789994928625120352123900388964083548216354816931455493358936312994680387745804607044055737900391820639596247809850990324864366013548757957114069648714969741305276833439492676489654618123970122910920868467282467023491083362422562018900984761381837210003409528260158217668217285619813310040186803428113298052330416756402901360730523977979921973157315038402558172999572811201883575206187141986748318721003796786787385311009307875517757937982748634531766859198563911010622062487759599742417640111493298051152370389237467076905073375275333846306687420766620197018598433329449555456649294133024507195596081075126472188653198207238064973285193496577572974632790654313208593665569655878164581672435882733498503489356614895506908723001569807859703323631350346055572191390964358919513556430527571061301755799411019288625395088894168633501621331254193010298862694940986228577695239084735930930025560863726309716353040942925904096347850356645350068017773487380356132491176770659366247522541209564894702035591421265978840915463656533657941628693568743052724146495142942561748762625030307976896004035595354331928681728764571553495208656713864287028440168565479481798090776215354592200618591350816999458554114299749715037087979688604081429738901871795907026049456899706651937035969870702788887609484512641738093859173433826860973755399094800839205259485737087571334817586725626706824366172298410280023539055691156179313481620853892138349574255774818895405055792603072883546616472047523076108749270126430410964073007866460817244292145577559555428091931589353428317197409945261869328271909191190490925836212128585654937192347828083944765578744435601670878275746506381343574205221055054615661885058210412412004559337137948772681069525394463378456320870323344409353262625781098713521090103692177236376421472950625569939886149873565279281650520314199353122251931676915971666002236364207652542924664758052476180778315970583687968372584089684753341807985075560173588222998172781557728552308524082029918926434250959424010828639724184882191035794750880140692977220384680227120753469757106773430568466624563230598344884594958823229596927664802290774471894192959663370504791973238966673207909691595322302458908923912084861609046004695544797861606144441499898288554816979700414054380997417050501938244137636592532178343391819925888529625317464882570945852638171388907784561161607260812070138520703298054111855432565493960866092982753080389650414828565140739304377098710937741335470770809375683957276570128570195412259853363579369859372032507277480868169730769964935516333047320904713552552408709597948984514555028935229922328840594053720122294965261554799416549989648225037447263170607420357355877979388268227343702688133116352321400741234438279130850405069075438435431772938939467358891111199531090495366035446486925937601844114560969056904434413863640769248705372423680287911369849445154556278666063393227587975347930778880645304471576604655866791141035424351067869404394748766178414059176213136417764854354741455706143290446950803592773221423951902378413502619686178610387442090653262570000508832593180223332066924764876211720839292076660608844470732638174408515548289002469339184794540803547469496292583293598669494518962694694609588497611105062068932174425104282922470742063219154194246545384452361386474647502267842140117052705071323393113336941218692932465932492079667732342177088832246650539767090736436186161471453341124218137827934390315335639612138492352397444353227466429245005494202661479610268800902822438125523468399570356317127038239956639583061682277045464376773400348917743704487090558320605316033556322552070033407278829943847146857762176381703825722748453971730315428186201640755166592139733652762754178184554757948285638917396294631685232391829067049345682290900804030802817984066204110127346148698061708408646995761215777319231122918677887810391940523808823888814789864841451297687089336621340497014493752258363917352814989342962779799111277150401370774934985658640110007073445780096098840323770291425134512457655062248107051353789076381825217446988842918575178710990464665262428918112952638708081915747835915067640262811999317689394233705442418907477948192135928726149731134922264295724394738047502904889916473555338926288190901728196459342598770496818783396684639091087773680376795062952509028331503149408367157331094964622080821391535754684735355248896640137291782562541255170426360396510231992257716190423772585429205080965236560047289591455167130825358826617633549277186150724496003836709740124827758291264292994448862686351909701710696404677649929692323018854270201528402104411842621352381608048882092227038425795052747338177472503499636992640745634895097438591737754185882508700628363369853935922202331760786978526219824834532952815810136924890401588998260773220211676489570127281407373864018968319915089131017350718839623885185626900880635036098683124201588228595837574962724838018247306222316513663143165494181672177645775637801055571820985560847935945085452501980146237463896210821138376225586905406993952577283274718583274408465085125449935626289661412587023875646013271842483413960376020897145376289354642673730440073907284395774499346141117573033786301132922147765148271823511613869970687817833645639227801984678163241031316712338629154304049633034025581859169022485188109775616597160354929735752700658721674417968312352133801524857919754610759121440682603855213315980827440702794964900418721202213751449054626607972769268249736210075270291554692716073034370881373739037730407503315273228687476988218605618030871772344974334395490574807849626518316732705651610325248682220190058013581918929751560417357850562490092256335729866526002140194429330159936178539424313009000808308459557932809210617025262857683176761386068816903933470449672604547902677500250623787312273561182561799462312214201076834814809477811950423635582731017793549464281185286370462066645355538500903128606385314712746214646788238677286630564877121420982701163715438818661244443205915687558982546554766006705179440643688904024975901289005126037980767872655341419505811126453555121609571348133616214606181716680466570959319804720670662903385527642949000661643563978584017705809709127342076539652282553011968483135529725703273053083875131060461880385734505849351822149133384227875035689629694494409816306870477143540482586314478602393209388327296294405172797449131054371263223409311024905811066727915375007201222661935733975091729516956750188470036562821449723116019875155486579698527792273565281758151602355908076546713964272353322417364508071354160164210439873482874697377467621247618894949128926837550986037984782346908397774694345832636027937113675410703066910633073659495034933160804104341631511897542615407021993293972501528544626869173227504623645981524817710782209679529229515944297276038798148306465422695734221490389794186624224802168293141953976935095532582352645842839944227503575225184350437226733417267472376277645792682247587066190668013718292888478570741923874126868257844617700095633788138225498006855288667958968128218651349919901447533930225189717522796418204995421232217782764189910459306145488808657221030472888770593615129692213604543185414494153895080470810364926164417231979621459331007643422075520798811852447939374954108204973611592048640029618070975818002729525675000991624300195743123204743826163943667926316561911002229258082634126431800624532958707207998802801815991024010758737034330391345146962275907992782227206068014252300877953599675437285869037059032918244976597165520084868686716078824716880312257268527376996629654935562770138327318353777575843939723478106068359296024635656299975974191992095760777031683722032221074503872504708611387644145246798753844189318316631214845494323483674558086968239526817737029683644165417262439395246920429169566330507619238939969765364472165167861851815360988615291576820401380782368064105633600854163250950633570412909972185351665729837979965512890694291703864502270515360320068416523487166503652387262789267141622694240313705594758964802989960492044152160981101886474905778994630774459581292213853019799426860434803599465968128525320436539256441777177180459791785900774605326648477764754919284891462394310067900754516195736821080867366165227661219124598472121787970851764661096451534017892704430124398154875703367165418604963385852445020059586131536045978232730997969562834622334426158180471553950300001052712354072442968764570505203545392488650130418446757067729516978329038542964545568956999871105778647858188166647518142228428943069338606312247145368523021020292024474930202045471897567011838352961396124968470540657153290952646580422221003608264307111078144929419580989573176194721977767688684763498776094710813131881915522497247427298781165301736060639709638928551297176852299793261345441668237120405125232804683013437948612290851459975993084481369724245706798686268068489844747115317799485356694530299132969787274680306796443084246667819449040409688452836011422246462884814984213022061853244981630747497812938152260482843539406397769506908179225507418595221555455352420860106682337676367750452464469845523557620178586749206321739511916828666415537582812500580416836013418373476405533862076412901037711869147622320006340872413476893934246709389102352573023178299355282845139333729082218075669130869164858168444125496505127231143428609564719077998674752468552372629754614986862788385636906318681600339338459912194064115260280515197217736221231534586568814158297076516221951146761669964564001399839465525881985835095310124507415462460299890057367049768995385886965465943596281892857334609638735183607940057963293537685509099280946116437887703071471402787671510443099623918378885927886665267203158474493620600038677296930890452354431022192089288093384615129059571237461176766081043469309773910412439942161930992662544261593270547443186442118526387641326891516778436382676566856510111289661907261745817479984224112585894458939359301021249429221943809568203016332579413805671105834367884145177938318394622771172262824352376172264561746650298543967533341840231561919229212952184752989688887102099454923084386555371571535965577424551461948193820980273458917904265159180800199020018615715216630719791015047825194977772677348341103042575951052722866209962694137056694940611983694186442564170685681680409566474071004209524188108351078678477373256721454382804246539534025755057552605120560242339458037635421641627770778830550483370825676591020260884174719794631680014867004938295198930425413346412239308517038289851762868762694713328623318771415065070404592042581906350595800049435112538285912699972174769845738588831211867819939717141306968510828242450379135980915119196745222822946544435248111104267124973603855528023469137373151130212865592066473347988945253135926356512209031625208254983842191379489584828519887025450671944153349520517151557617469135677100649705932255387053753407365917823563398579585143037793085942500807960329122073075317937493973466883025534632564482422438942383325412152557449690128014407614073177784613447508054719768131654500304887598103078569577589354691128360148842180800250208516100351984823750185450221971136850423965427713752148643653302370769528822711969924486810760796230037430918611742908818114558918546944488859342337562470317373164641631364921040630552934222468160467452834255444487248811930747681875410567531194575681111703166350926835760532789932455057313847924920088199940499888225566043963640611232580543808976268318217017034375416506065896995026063833510590930506002118859268790151220974909713852376321181756380197942970306421085708623621020963608837282317343613232041403650966323436018905885975585164839968845778791601669838698296174206824319714871222614085108385080366765083556047970952367291657220433438377596117298896830780439101841587840239408791336746560231965379377318465908412689608778150005650068044665527509771367845776622138592766411635855268884979212579825351250126041575673620775376964745262789580505960618623734858063172849554007675584401742474573094967118978776108280234905232227333306421011508113628245442674029462332245102404573548246339676921511250322079884103683700593975900887292855422833756589152266504469029560828054060079579549738044334580153522478099534897223691741510174983034513784247389869558527931851721947324462511051084126134558112813455084526040765225419557738583437535942713042004652297683432239551413597220249676380025220857019291262097897147406858097582962999045050680653985588238643272565321814806670951120447564008483544323009479963032193110454844137873571119732269883107741328411654655640989578530965106186859447506438191928228576186127850576579151082284701230088512818188105605883864112408263367789394873107019006929678176763986454332217083715570833574432550719628973835686494423220811624815112010709576582820648869927743612033429655559380667814138522163690524268705979267050449887123703748031959342194532397052827255551871155104069705712883524917217262652108236402154579216653844467897922077088383813765919812638043563108334647653843051937727683559580350350038040453067451075746200330178199255034611776807165860050941263946851018829693105470203168706759426710756814726604441091776731103683321214678138455945011721393416422952809256282256833728420771579460009438194536359679834078033483986480988028623198372919338591863293064051680175546040053068732384208671862295684913315833710513230129810110680221092533706597617189278247614706080190341252129665330331628393866553654292109164724071022905454572951393293867088457707647906497460960228275549750643000029620602161899661246583979884997340357806038663009459787642696024806858902257122052955642852634206765608918915098293151292400058758205767920753552357219077398400168152298784165349029185581608850927175385459123424488785778340124157547284490937964642556097462352816347467232048654153803710850335010562628481022415999749843122953003028382323289753688305818783429207582986139229777589805732270715257808024130623479952095366421591204216612981644209908281357207766092541255844054631012391312088719490001962787028567831166651117013116880768386768230353190152667337267807389108860457532496306743938553627073456483510405243131165318668292522542855086890119530822912219204158913961103527811725548464529175848054043279246840954776217176638349919004258542089285814501602486173375418275936084000745068447366715880217254815824930871887621301513222463295290926903821390315003299191712339975256914341489301616924890598804365277475317903430988824835226125973274831981545916821865625291731267593985290057157705847578580593793046879086417393778508835728455282947736321938020231401800464158767671440583548609021001523433618260327928522493079607982787701101562174491481162801048878010278438567374247103211204302313069306547110429932122834171485690549646068833479659656040275547632940062198439721382758413287453412506536285463721997688441962532318865523737819344092791653725753511451946998370949751944759440981567032149757405404386811316031611938808638950376140371195968476017826995729867429553367485671371686731354098786538998190304186350705790540090607368854879917549212667029159282040002652471161581507833272357508543135288739656739095689378854351209638190986810960329355642931506851350640980505328480939693957278975817483354016395344318981839387693168870574549754837701584541502497631091843235142506171109488370258837222862972157159320125059604406160647795331402425341193683472965757674314323284058814895943439079866053734623492714505417386471422008243075388568142990773282203568463346511094152619618361178798069133201061403051863624643438557097122185118166535579786735633943049920887420036218302074694922002931352470270556037139646078355910414869156350470262868431114748660045715762224642367130766731217218809139318267180464692643828152923316573372285433543462827363326360573915493646628624952048637038746646505812517237051666786750867846031561323429608399428294766793299757137877510020214860831150514327867682248896526879349374330984836189648661889602796012400201693092610438655343016509126764169326406738014386769229418131888250225142330689503606844887230247236520801460017767840161209202056673198924704980130820746797888872360454650082513364174845887222658187963056967425719056184622077091496542430559243865734850414932433659007479848003706526674541122023872893224952253915820561600919090944541402247092340850354076487889794424788043027571691245383563008980355581779174761558825306299693430283469902266006979610956409832810657669011470027453403382093227989158740497346272623666171817763909637295233117790658071567233199180433904910641062827593443045234819377442166405377391517040019122798699263761379242981338150750120650674217383920051764632934996038970528690124514372917515554157589086597917762590283472203153646350366153826469858787318082491886311098600637532592598318751334916566694595038331633759456453288961611778895087929535469703942720693236889405246779238742451074977668017910885501968061809251932108086367981419897263955142562072358662884146514095258140015702057415774417372654024186388717859501832502941174450197811900144038300888992195630451941691087456318972500487960542340373470823232711267907932443741235833181620438552308170192138227374063804534769605305443186779935976654486797453645598058313295773694773993042553930331795366150185740619215172971529629574258747968477788210560607760736878469111372198523583355053646129664583173535593158901263527413910863268408746673482340850215171749231139229338954516050222625936093265324544423674529233469592025859731182148084193959327715055958075552226590154546200822243395049370542801272905205542794116446935642108066752561820493254673105224875721071283617213826651657596112795942212187464026550502684989817607635026736893445550460802046673323942957675789346674176946808057057638022478806327272118875256154993302579316748875310269883187250156010760791505607192327883227813764203201812759392533916305185190338442171457385384705810623868979325763640235507819713297160438070243608874249973974327121649286477803228082300072067100704977337385902703515279467302883947939566234662814064016207618488294362033790135688614142134182191995031359370924673322665161709030787966677353040512751548922603117134662452065761143458287357998540939981387790697131776565177256349596578928447576191382131404655990146537834819803192266720423539425656190945273082828140089189809115179423977191552619659173818684400760755144790010166884413916938128851009706786370179969226574643548925202242405446120587480133091980710646098903953655665665359200622053465429612715545943578708039329230768193002110283012037669851349095580971072358776214966239954835532914016901768760773174334375529567808336276972014000803562366845442726108614255849904238409416150995329216473926000682809751717012936178238476610944919620487584838322358496616925311749204489930429661317227834793055655487178710698559537012495007232775330330377963897868420499180557103875866686608005923956202005495874790479392568206054833876428762451292565732567605709769384020279068502102954907927184816848941288572111059787848698953316849913598094014767071329261372264413129633768978264506671472030333774436156984593114843680719682638591749791016193794338128683673455781823103675885969846482909827800993025786695839192206850878347104526312792443476232202891355204649486307592515354513870458026235232052961703086813999064327298715936109815302255457306102357211111962946998074618854202716651567289194185887329788344894372418024812711061627446491699432666022769826631179550904479115895598062016598131329577362520559615024508208089996646806169256482392466965269578823137843073286615998715698862614392848897606065613504973186925911255658843425995187614861729573308911222499410098967168092546958154296001114889753977495399669303150270649421429541089553628052561236683502917678986413344406206181214407492031338411389584634806969967189956925717537846029516113351632734555624681662968835799957400537464594481455064152694026166917271722515072777173292605011008975606323091584208812577383442926164181620217786437932226044155614251994093701069054823407676841412151019896547271076613087969792575631920108495301901936035407614593239498225875412764546397169803088758657889738790102557540874784528279898619616304486836431170073971574834767826128404430801301292270536710955455442966667907550790737726603679797817206443056946890367738408026187870683670540748967653085604849663632157079480636820520281896562409019912010264984503489900155681673257710164762833739576713246766431929753405115648369502798560923529637988374660462033817298044147629314883947504879081850319599028476218218161638164742883208906246810813237376574918480111062990232392437981626193218522432590930589190720965976993449204435955881045802371926035738792318463139563355232660231566591793189072241192152147328644694004166293357725605615799813827774568291189084472859985702470254641615381113691590205559351780172377049621393886007236693854346975024566806337041806418886650198132166639611831453720312028344624300237483512692697408688373109814851733978402581451261533329143977552226108414629384171533552608592953557628045110521704608737950335070368650266381583207599993291801811795285627227429066316519882086637285650246425727859622217995652303753856423342574515422533924784011521807378930745001600388910693048566858808555743342106420206441421534546344142601232634462280918901040176644904480310294927552371041312266884778787030370613946428949296324725558535699910630132315395855788413037887219437346617225202930928423713954037679544072786858684675113086799950708317172589139972741913177524284328151652465918474909227457366365013257704167571937549609657026708279647297295500029265863491640303896698873681836807274325141577208967853720307536082764170969485045877668642793602629313357772303637622570563961041449219330729256285033038089510906459317999215760646153893421968047219358126489037048301366331356747053133033849987047137258144390141046514974764647236743357577977489532322577626425776357401909442734611068238444025322675653247747581560572454631431449403594238970733743862250159000308029091377825092030609277990215396996650194025573048030266281607532753841299370795986041629959899253156562283347093595925279428223445497666975298901506560859365613033853739158145016093532831448098803780044529236338182106580037855211900376524684652226609336501686359529751803075711247612329897753051715398004974014737803309265672028143382354311650726998324545021365530445525770790876130101747779580991849322165492558144135608699547790469346903845079687486778547739031503506255885787730272382695731672846023782656706026596555627876392497226269018526053022018323079105587002047093480406374637611973748270911016342022717035104116716617606174706888946771967240545209502097414947595534061238141869910428257522962739781933032981186460807379462442489216173323039756873195723317708510382041445624560548789605753813144952156525360415577297879534225302131443321124967652900574987618022125352530243823955326505623354367676529516407085804984509403258044920726344310858024295066292357198260373882224141269361148116566653583018631348292980758974681017498074143691330661827694264433117604019605147485245895589115635716308794215524559551886518139175809902690939776818579638509931793827575636159763731240879946456284835027493209344885593317498282105945566572606450512848394082825059116673328920706296302228439786770881838449512590280238697329066325726196536845008884760265891167305794944982419185737025274240540021715083526057283402467274477888641316337885159934714863947799018976671696834114594180827523417780240345499968416646590019918969277997499016199300838847647920684353571129255598318483979781526697477350825947318982213790530974532176491229819685419299111453101531576844814538239905887151168206181966386510431822659336555164510624541740135496824032501943141267416985737809816164237866854622050257041503681077285734161178394161625960495462100550083883428791932090941631092991962167585010011649958018928417647987395579052346262269163980364316489473659190816345282066586141488730264192586016632385165459283336936628410351502000714463251806213831623598245517749685830079497575249149137308324190883626921074916693405570236841978337786203136188789266958657020015543353083410980167185913960276137437255760275847964286203289881816714205450281140978053286573243986749145554197486664147119342983937171201077445408447719312216451692480229278239346576004899892866404689794878654592735259382498784694468484819751177880003917821107016069391145522488160145415142167346211195062652860912355349844130439824009082942523566052627667758553320707286624384711883905099447990149366797796605624275978800139805364443088372842897083084117940246210439554535271926540694869854153657737977878815973128298282025813504360456102182246162137061030247268686121078384147299257184911441200111936192907645686964465570537690212087610999376537085791417663995214760940899261395755217128702889767001831502986469172097725692424257874067954463155321227678780507145657018926329754889849767075323853532440901550564967371594185695527574034831829865995128396292931278173900837181361766381513522727818409525880948679175958579024274816606797424014944100793719110131776806697538014462932195688297017668892000343762628199534247154855433922582585135127554945952927909403362858892520678123425229801413484266590017003346490898415211701183240675858028803247953227423192444024282650708030171017646682002227705881193419179884786072190479797812096947695278329377062028484682722965190389831458363865342874530386029604791562765844590618624985278560496204045619881227473769853652493794628307235677523232046867617683791096393463751266885614712038407491854172243001407735469848333207339902569469104301028539990736367371464035265259522887163285159344373062775779438935709779461384480202680645460907954471306751254469983158462512488304517975828043276194009329108410561243770920578839366473029472908640936301212723907616922847642137215649313120667961335058478294934810228204712212595779947304053506256880265930070983303660846220057821017636510122527704334254556373948362661218707606607411858627634380304737664980361597601576904170025100390829846061889295421390399137124241857796937216253042433039213104603657447592207482666504827795154512354052085942662801831399771372950232716878562585279002213994990442931233119466286240913899514939921091992679693449826140541933135215639592552261959439814232685452915163349914019375100735234853219359390998292727688591845371376006844429773048894922118354200621209742609722364572375457741035093440413886972583277561690602620723117519594266478872808929717874533789605364721106595224524071270131654268476982806173304839325579479376497333314650123823470139419129120026981958232261770978757454360815633368746714043812271965104923875916295723575345816576717305695369486761721327002317093021283544477652011595534531070155360872868030175882369662663935653708802153190227054932313788629678761091710397513929498388377160994735433169786327834937633047758448658049115184018561909712140160439624960414144047319671075658272016165507981963917737763240885723593551437988509594680071813259852356649048001856773418112235608915021246576603912018270178175298140991877547527019123443137525155292827874678908864442698440193546540347851467413568715216899584739984280039125082152537076716397938621947869144494878803316893758562943171454446063924227634110156744693683113450241349251374123977979721418036109751951327887016658361990918681743437284299220271394536511332164929648669258691209353791137008642292205520729972643634349080606737024865750054154635872119591213047412010192902152881434572525267001077060659726820565764343621886551929293948378072238744797717976009114178271060750462768614617450386372611888212877274704080229265796305981879667515959575304266285805487261557123292645523349232868681723287453990740793671539579104630042998961482580465051456871548461775992314763099696078556057053899372574233466640176011658030830193785163317941193921633256432683770531397395622889193530178867529408621493499084227928109285108484855356598473694759505326111642237676748999510583037707842874889160849640165702416644147209151092286028223148000545638577621727632149519681313232766840186056431937918927226288130766752656875078810575902753087911597239743458351293481031792568322219584911107336811089846242850465940172593640170701651325862936703476730266323842748845027035029011127166983649196196724485056272395456696853865403715194432023138375366622239120137787203925509261746624767932382680981598736341247151574223138781519664519979601711701742754512256888937938151649051308587905997898731798892450027862753044128099089762238583839645285760825635120046730944123553578127559375705857417772876727133525280916656087742875091101495878736861158233188981290986359182230718662172623831722414321189275491245375029712554898197355983752241325306355847670813598883005075740385300799413153744403971929506602717030572152954070611648225101767332373474210464536287691612162034535835656513778715368662455046703191879570328200981762540840463055876718465311319257265521808018384316589863569056495009329849558618872210596219444476554206174303288017009918771472202230993053017158701267945064805793195891904600248992361653476943200730818813613498567253570817118301790074122724782460183252155224172154436479335922937033124832214003531405918756192197852593334889535145366819929930931634700481677274802194006827446115349541271508828209747544772657174644048353252756105081153190203181301973740600941649848572586134128378073796745129706168342997385976816950869283837670957315279113612552575180177168154632654621310584194560598717323588842346934173737796827364720154801559954862095964210432322448340718752193951237929770543668479203927041472218857894461213294183865024883180975960845228178332174384784170514756609149387956419245260971243117577263764216410645878563372789377526184121931034098947390988079838817371533291963344331174788769218519524970134614660806697165472763217165209710373580952206542635399478201323231338972877290751658438734144002057435120099569792619838865969032615972510441655849401331900123621397177141334269073883460690495849723559444361140922351737826774367504462818559125515065008487624888712963038108298578529538242784321771361012838539172969589150240345579321944760431582969454065045934381807483845382842275225440267549467417145744884065723499658270143009275671261360564368028753848292198209507593625421927304716418065044234273037501364115564968105686668263377008534371212035715993283431164984367591034072128534353248195164950528362962633517669414024085755705725425029953915411908607339780754723314205397820415413532924769492020698398753716530998334423817026500014023832966630011808849610967669487757411572541535822144088732234088331048768710754213005052067143068693970750519066294434609831810447404782340379067662057408526288055613661877557240754234944491608217136917841194352245005628159815809061275925721021365785062072404318325106252574253107984478047525218219066403963405982088002114872504210060584416193198488993880152059346988146716090415943575088736997124216482504400832769479481507545964029134464197540028747456462390160118037089137865455018180895320872655559497076656280921649785835158738696525246584483962286861040696908092935783871321176160580543657530785855288179535288039929505902041567467509826106014950261643811485238034593399271683115206620948812209209393526664986226520017319041135380058638655330024266979399432842427617339506799786424148356541017624482553235072529727303635413051124025656386785742738524526753397918422815554194222878247256373281482191445842725977287710342809597193879345608119845661067716072681983402892924375292802773435779151755638173592523638795965738486186060966068563185250257161134238706463163516067459008179773574348834474205508267626758983347726013638115773117760435811726347748183554232491095499976039660569558527871161940931408164544520797116246931440942860475412345644517289580491981311419862204873420316090239633116803483016272107444343330123184289151909548881647399414530256489335792072616710076751372348709579321325214943665175026871796923991704209963681956540329278034755007337829787756953182121204336869116694803741654826878388184009085714625481712707457485427022648015112782839593389137916108406665950362646925394626653106839957607380797079125894839756109021073149219873011731110362549707814779301666486561073865626755066498426981804925423014021191314960070565900732743340106822028007930817659639578137902170739892544665123139617382607824000901960748297024274783022358460017870875484864640461252445271839480503423931096010210587289652015878385949323590567321014533017590503881047749192703772728095540163617581379327966577474822418744188863469427377886807185064536861517560150350734826325079658346226903689945828522297933587430117353089563353573485982021171844075088132325186404668686995597391982888069404347004809728861136154958053847059062455477601091258099939707469100382242601610282939752746714972210585541704132284053268959844423661750817248506710970309708844059401444649976355518206802184465225413948824933857149871756076754151180226504384243895669992192304533427250356400977524984922773626736857835661201872870602910551608407353792959819559504952606092823596507081807267553264815425792224196913355540179158884022532414216925257149250041070537955433002130877533424777025450516620188765943418810666307735145035912869247268580144228593771565560901614390454872430961539286730410599184221488560138354409182115731398016546259382940615728368080625741131767344053464704858026448401943729917679997468431148908929895736760638404182545165846604832124451073297674080706855517108440891965964613295695778953446195645145295398546929185132349581032702894148378264360831779914080111550127902766068095878030919809376178062802219521093520128932540944601206282223298677356670625211010886768974905745380858164886889892801189675261462672440515563124781135515236861215403160259217156793324515019705000723000902196588810316126054273059531605957125240218099979089332982128897042449680125559947210345481275383076381832723679864423234853638238437267057194946264168167195201283740218891350074806715757472722201747066979459343641647236099054214788957301916294780550748176226391639234208221029452235186755848606865622914226047028206782413914792830533388885294292428822212458130046542167295271529957220598068657076875007294297071824604702812889071898296472555680415448648858630777431049058594277318840135126668486831731654176874133110283659126150236284071477693301036061033840975134420968729901153246646832016636593663509703545880887072298840694929653814697357345909220455758862734981201307748048663799178561535389234678253436044595414428297401782910239989923839218775115229262081004202638905416395901178536548962555406242716891604431817709696390142422006428874148947230900619637409321637408531623024520349660124137310550166972574457502528369819163695417502321196332015159656563345982272728401033221202173050078722380445414192473574091005721159201844150154066357536366754183262103871075477453931521590475739533071208609160710655368703934303290957522782601741350683759291468639761799622971891140922738510303035122894645556858184818052367034569495317804584883193648997693923645501776604005748108255120811130197774796487373541620815507661510974827066723388912474557988103868276879974279396709647840728290510689090052907945529951421271300545829724271745101746019669985313180589521475449481020854737167006953409604401298639481912512098810916767083207868758349209926625337762459682236120567744297563276981445420301705700617038428224503680373054377004606877657681484546958994251191787249943300217558802244039080401969753633770707059533256074909966616555831921655225316114308945225128006871501539346569878518864688604177989620141730735549121051707254225713221700650620969510190412128838766012083601548847204802190179291364428507778807672642211275401036064286086461345933087610591906953558361311175311522596596223828740967204441040150293721888373287708592981847567182453864831577296374318787115448422240057259725449146725041207757684562944948404564847992271525049627248072438287937915649932878103977903575734132356007182594440032567357698756101094530832634729463777529416924813591568198028135319260443202562726331285194165853349076720174415715590052751578490712063204294721875851946591592666890320515180148965507592365349251340586314335260834528184532031152107084577158900571816512156221179704275823255839697737025460251657991730431593870954284103961405685495151452201269656769782628696610594773530882328598256065640803613075786025045194187989213916580079321595475419687272929456372000334021645887864912018402383766638804762956769798427958912093927058204775341625841509898474795306126606322751207958959804691652845004741798449003353583235399266752283220364568161075965227479699607822133805729866813958205435226495292742733087837716500644297637692430694307751944080828337889475889632053765981761680396067350205051685797560072343531908129582878372127037073115599201737641154790252756464207773401196340480583385941862492272544778792948455977348016930291435833042077281424973974723663162109186072589101052621231559440421062585195445187434379872355490833264881077064194258734408403715348775000306327792333008998758190961483961268085244570062693838501057518451562166677933385657610623580463381984176517843495335681321964357167804823484463073174300398617930307217843017822027620360114259209888145768910451708853346331282441306319897732846593040057139757684849771159984730180349878948910323835165260022494259163645514217928480639617852377607253890682409498745547993523562734521562804830892534770087979821566898502518764790704297306721157207897345935280485914935469354094962721152907073496731519279993446418370212871712992979493881075490652391656579603456259277215834202111331181699432389385452526751657779854584675177168849306478852391739725922531094130881948649743397269064875833737346594480871087878248468141583636496531667623380203287890058828827715915802013985275514653132219476970704846442079042723227930869986731847468638338352393591083774578612611957863200946016857691583678616915958676044410997843815821893226554523276791861867315978778496297009638895857889880376591327346643918319855174868346665442460866444667471402894036561667223257868883047036287378724073796848229166928649830958200361766100929091489504347398852110801513193855820919787995136915897415016845351736203273947854658166627436146352304598680980922644050844982263865802142658651845590311443620884248946350787796576082494847850424191387539865023994413698135233810849958602015964548333193370872189263472044859971090660370982246684533140524230720864588333430182548691189188315259254725190804244336941635161653402398622715652346688819935735154989723184259497277836336810275022999552591794398003233246982978032331624423971743505361811935952307106555555788254842462512618966102716849002376533673932458982192679325096777167919532469106559034496085687612689926923050279840727938703577049996183014604305463956320605583133130278564108843851914452193786644087031653750388014360472844803111423087770747946961937846487594014409579977281600082132233412955415553230533632843270226361966284775454726685779563282380938699359090959531498401914245277421841037178955439162432439020307528562172073222586908878228701135084596291855499574973711416365098167544245114248363981907117291086213573823795024514546488947747559011442674680174326074954648843846958885696093059223714181690430191403511402265092122712873990659214335742717061021882743139029989703397349468341187733720399571621982430034235990829565106239201729958517789483311144771677692551459520863459729877673565791946714104733063262858728505609836920154088430981674853247762873171444907685753489523535315550660605642069905452168333671159770853336053476685096089361630678057051022010665985631578059043122981899942512201748660773232834294591528340030434379178856792430792666966482647870044308878464675773586833118065291718107054120318725234501235028170274239123469799091529817039621798335668924068127094238011541162454729434724388210526766690933036175560814949779071701024407183388036264099631092938992104180979632305675602073110466159292941592570470651063411707409934426610831224724330813328394772940350804306029705308379903456736237024559066865427995494867854928047764708452654422430687432206093340863953266938113447057449134939135959848504215493695750215679478251060383962759548092256914861327031766862531278357761941165280926394194125070176693653658555997570964470555528607592885697182810994115748545221798083678772933526885469738128414254583916129486572543445762854679555567725773575290233892367249006693967006320731986518707052117083559299981860072565696929427361298565002657569045797244367907761927421463645744418880563748711803876759734732427993790279520767699900522135870347269516476233820961331744478649437504187666414009683784519977856997819170887903747850170131632568391227908440775163127794968296071181012737936909878922522858858208946108292607854280709843921747633141579967997309786733877958314197374794131596468926206687644910872373014962120062520832770029334567110209147039905374984637906640164387068346802001435666158143680187952263581686260958410842640695064120991135012647480950694875103074419200713546305666059538935051379137816653115649913696210560768176087322049237700896395070477843974429245989235620597130856294041760577491739587283034342034751494797518129733977422967202894162920976882535928403864172761045754334486428137909159530727278945141812235899001896838911903821103019970938958884611448266762239406979475450949280327975130313472302392953926389810031611210025249979111562345268568158419151269071638434777226930530896117944692326652239704373664698582342199213382660586804819444143478792250298771127008341718714213146648539635124822735734204660108809306248427716833672816804359246773285466591897213022707255433085567431992451131264891183180826815717324615984938401067987840763567660171043582207075151901962231273820696649705519849016440036564169119440744990755193641689235227496493291839976711479450155178917958434950202930707394268050106942148407471379896426268097520048021505799696061276157460398078460340596625623316424916524412866531650219136500522320461393191760857197525886256274299071230454081540795651148296620658066694825437033681106571009469161276633320145161983381974195981579461734793657062312299450858046331635777116865246421859074880572509420297467628945031076241295058880425776167007570402864914441446151929866450534745233410721960924533987550033928972332378662121747668711005946968669886340575874488189926085622595480072817694132425551262611925990808579115886865014262634272541761234865461057885514795703801090087001580109717742395684208851830235017099509359553683860505505534205344457193455435098024800561045164539677495131174645861644746778985816767571267060663955557440880520635243126048030982364076110603300182117069409222678138758977119339219144977836607165211518918178325977744736906381146075043499859608020973261506811057240911763438915919581538693611305543974144074357893476552244381516644587650412262488300546472930193137028081678293116926115057871962931583911093034898469804543838948744323049719396520871271845319721103202193182630157162856478785870633922794147347536832824358081675002408956585385163930655306940727338644038694745947947400329831132754176037070890111756472231232055530075873089060622286847663876584905125960412282317386393331298831027023692340997611578716519649943863682134253447059845557312939597646116266886713908504546604873292630260945450699170571736567042528392734777541607872241666945248787306687268106488471993028528650612953907382191092997808872475574860015726416902599110257674408552369415894570778932341596130811675740070558412923803290943981529349952902910493359241408123173309630251467153863238147498424314594682383847407424124391026465597969237746458567711007898185715560009709348528063222618518836491970861748247771859445092802851856819626638746156177754982027687536113178281789780272792768622563467180494417086331986277805505182997321694149780357448221377007005136477777001424507596943271792809146732092414703188804719668440129702012511198884456749122013286315175278382750748044893799879863341533084016210509425077061508353169826750183988697486055510296162908482993686112374053775194612012661014272627440140230346023115764256895025746643968155274206903222931412630573828338923849659314946484671820300137115804462473362209530959324142537000960145182578279464461118876242037045537996400258893819502599875510285672539106327509524408185994746643058476666707533728281599107563633690069073636924035623713595037181871953218672091775370582695248848929322359485665384962602957719528319806872933761644390978088989715695150470641832102999401818337717932090351632923208965674142279962004514002864339226373218925530382681735271536644345301877832177863810942614498810393995663277385569703139927266673881871303544417098687177150695357240174700820629677175651332588687162981120554046315227736353317235807727083465415300165942789664702177379939034008602725994317622127440815174351094261727211379923185466410557907297096977548936152253494566013022619181374082682357464169708891000918430170543161512326581656410071880137705715557220966193808674045159484565690370412487645687360155013305464375382523490952208270204542866050546529678432807314006295538851901486845142621123624956294137659422057071798808614281128194504345481998897358318715525517990914124652183374262198525140185832287008782456627717569688357033527460729932716022054303911139939395781692145915583460496242133371714018228800183703486319534914595548057358057600678371366672141302443416756033212000905113028192788574316101860508592303152801635999921905198409921397712216765402620058829354711979507941617039360420646421465912469408541731429052677912181173741900947873930881843858116165858573003457079637086279953417552946329742119679681412222479271480535746713893867374848848218230294637154364655233695543155606813521513450542403006587889474733758880623815260656125270471476437826796503054671827304126331108665608132582956709515760926200161142344477018427990697070689215818787496219139437355878954058593596032804088049487284983635846267235531146329668461560522482887806180846066022978661793529088378747088674286625689845132030632521741470342216972921400648643195782721231782902856499706405257603580578718829836526337879988290245162326581547553423442103632902374647164405493108477119173809884866768634411712264461605550719237705378363585708396270006117311868086847416284506983737911069948753136776917535795588475763000144177786902871029308933878699712912690027048028557710765412785952698920032144563928413007177775845976014723931031094334707361402112622800218641455740327557268229940624692162189029229236245390463019985233594593772528707787520878487576134568893725659950090529370130749121716908735268920732149627669340791532732844529167791809307418449036653610267013772187344526697329418314662382923630045986444358346461529226984432295707568131779244961341594860486055419831294410876265934756701437941275883595673238072235251733933464885053869990189825877055360902339496603541695143512477500915023716932430206150513077318643345569256666921149414051133123937982730131559743636822761293634118255931183431100500327245129011680604578116344681485169971153867444273355315741334863402973594402808274922263618641761982274186573663990823108960908631079612827251674329335938578668354392511528611533911974373314082195633774273623554783831057689859455559052817361907823373787872403537004343686122132490577538885856719659865151374245582788817614167476692366906760112516365615293317597075546325538003796398748439709970600745322443718928903340994376339942040860862508852092194142920969997096322766063481164557859863025519267451936523391166950391928577795633602224457130479949842425630116301359504830438510551179439488502287447169931939569994804974576948259737311283139236995145982106519521041440685300584932151459214052043247056906524421221242452282996263880108567697709139974888429013704460512876523913891263769141658278254806077817226643744418950029246113170998469310560872562369889061404704005525938197342529654060701235566666465955326787100310585221825286615472073593309452371564131789359184494814240982522175784496365660496995275030462471715397530322020091978468527228190799107160250210018231463422664473900767442524077638537995413282083209953431417216039499380160339368052552961781029705932509760759954933186401368952474617106936426567586912066802486046739368513185562732666174499449058451715018348427099923357230547738953161505785385672416243451146741605357231831038528415154633058470767738177719929576513399933568062588847174520994901707436408518035921798473989245188107452602326845622269893050717821045573643056324881988517929292967957064332783239769230192682569413293654304918388985621764596330725612443220690435662227236234149863733132029116193760469294035119547222770134562797593120801711726278230097339303227619210572407465019720890590219872200615250477807422349789613051063637883087293846208016104013997480699438636450694051170522722876662873963955955015825205613847561898826978510058590210373086657292320041841024356114350259394779829321623999514946010807337259222426686053473022939838699351536794215887338527941374691968671161928292891959751463497159426306709859621899342147950144095335827703999027527100610567989494756299826321407723432210605082264752698066289851315979282232173322572128612197720115351193445923456790387430220071696160181538774061056478778992184588060305923588288055666885897875702142528740160881857026680061313869953692164713211950258128089416842300131472870673585453107942354015717225747768876513752905475881480522825751363854515245973540145171458703571573164511025052220008464719613546160501536453589045857938940202927237604736196580461290988179184453703595465577888577220556910419862698111647766744488381582404434668314620419662114470381050676680457781872434631300889311153292400640822315267155527533492503318350780225751860676738817374632543848003852429659690892527472672152310401479311748685934669976882501081743263362183866544045526569977796645306833710490317042550562465960986577846139165890050666810786199995408059004155809517801812869009769679872148272863737825432397731820967121276104467582094562279645208109758937473250643437774743929662534853952840539975167933802446611060541534047080918450027765970667452190362709922743412137933871618699112715285382449690504121100499217122592131039680832113597718663224945513359696786623972693926299772594802425398028554708795057618209904951506555405604503745498548981404576041963835276685980074449609335854377027225446953999948409818749444706280235390539374068371264286009294247937992965143544701035207951923909144922479832069402064021283952624141457483641678317912351564546790313247376637754835893672660771315813737234263692886794248772714141802033428176778376199819567664892907288105706896015500460255606234214914318096203480546799536176966912775500419922754596022627016518915588411085431219981737998351534924766944366877740960910815414450087045371803257243419368174433710699835514475333086236687458412192957952988334067797314120762654464488241450253866961642462246106093108804454441485387589871373477991029929312818237505430571834599804105732206541024171291650324976365383591746479646614999482120553970825951272876934724839982595922714072869240527717524708012445270366663120212265780404495015685490916530077718067487249312789900586430471177453587969895480781913178090336813112529430560979836352729120476156052123907481074709514311180846734449916802884042107639454108988954254810655451689192903880780162340267315235980272357988051027976970898125458478866150455832151538272960930271136048860149249794973092306103970863524841498740294573839956600518477814301262275653679364935396332904928561051396791779498291854078108929484476592709398941855110565737598348759814003634724654531453100991069705623580854211584616228994202123449426854414786799582082179063132315819877628661025370468133289877323660307791262669940579347935511871866278280067619945842750815428636263577987112448646742624263191499441845907579157419380995666034848979360329857462517888506875030611956068282390886994449971363531888681618736665275081393341383780207399889031916868523228971826566963601957078249887029505609170298367926318401202943108432805804314881718878418149123093238120619539254362771128736306515190346573446036375827979118444952633698176054029541536239989257381603370920135291658203004929313515158135925942603480675325668613762752779475612283880215863912833787739330308417363579043379542365549804658607994927038099245771236033296732056838414017630551181320993080214807077140624231176320077193131709123621890519599317931870519357630313968393746261893861038810502924509533864882452765561349281478527590180663672891519466382085931233452076934423338045452767331902489095704846306968681239959780889018094033753276421288713029395518650675410965297800845108984194670427018050153341225355275218281528150634854063482466078256980149718860623967345345064109726992091550784180117952484951503885541197990825263296845220984323430534001542593959497061576640741179103672161610129373720652719249618938792357334944512465107226876821084229256522935967675812674257924231042939668379538720586156735425017457535128686960334662201889672782530052752287851926576744057324291886851545171550941991004547910145983541156973544435655920273572054691679209669390598677369827086166497799729225254717121260508588973792443489184996233043126498194399848104863484602200540876922113503527765970679214734253469701747925328914491330087272928252428527339659211709941423700107500341979187875340524564439236390866929810876451763967265179727188620593701061270340108016903673204529705359616977511414059661926160014194354263234607213452349228879752011965808546812672100414936844058017795785140297138447580642689804920121756348902414396342491891148970617494338385721689681958743305774379559638588088004129928831998330369909991356725238047095232181605567167665527393443998910635399190858790677987202932345780500678859827674923650693801427178930747767912223898328936991217798147381075960980996806019471158859364604185869727713744792358242837280692022776340320158236600773477758346302701593423668028698447469889860418854575709276554512419707838475730834130557486777198765236926271232561950165688898756701025349336639089672299881148725923676216261072306437039037721812615121173341025186000500151403538013296861293467859532142321298035326698776003202501521684645932645599063050909947191302049225217905185571620424617784551381637950606070884565475224410567076959916478070918767024048981638413522414674198849891814397843770705414168208586018071042640236139449648050389529762461211286085451373680298938672734355812804864893035733832404538559049120429951936218684625667424440467961809344772857196314168000451402000622085996066484419801367628145773163977333327075146870129690868416740788100606625701363387443349671695277312313298094277572668501982928171796951589142102824716401139640210705074165927329943665769499266932565888812265729971363550037476671216308878859100789379555610261328564823210178558085613104157282248440962547510042245577067218287781582115237664290127824890528016092119967405565268710400336347979314616469461778614524226198985807102761256713972307251824286221618516961876289276497923867264233593004057203820058047013936190422652058192998875419856971524332321747586819099012298471174365985186625547700002756958553788168304434069812920175854009334809405594763027141941451158373399880077308140098898474375344678415024548319497601667838045439307808608060062729165655955743255263712479511128302312842249778878210111473712041028544672991800415189468501184588577617583466151404727072485150046123624161722967074801441390229856405236139842174332690727031042023879252607547022268609205032609213684353109576092637771589468121668498787255086020099520327884076217387568972119649976322344349845850120854229469028091488012443456363394581430694713588433749539228593340586427380620343118871285900994249486819114803048882758958857828485516681724418142280910708573604327749213730140334580034845440573118568909757112644792231902163999931600391491064945241979282010810095036746008561444614926745260314785557779835639609345534239920114698972101177681927865042487486061319123666590446231491581019698735240004696227967894100460642099869112336270057754487459010252793536082973909934710494224318716284830468999802180810598429381129740187267739707733783098295386419275082034653213844543699031425361453635566009636970170300730909771296865366929927110173031113797946506115163685981546641700663469660920842755465977794236003938881663955742384643520162089209366152445172885210400366166789645387379875646131961259034254983589191307774461968077848830390582276376073091086723873346834479882637528716771130199182956678581405748117103627675063470324184061647574700088855443447100424173297840401002033882062904739537138042538314288304237228687728321216317246688385377890506002600975053894035590417229342361425158553624293363975361561866856855262683002732728399121107168165218489489286392793375992446574894524940203403474336107293152163608089579399982787847790528819024298506068761249654259845499361008015934200660511278442227532591003942768452636050340513799776865537546319419848832647636410422071565095102976991707409713898568843415276097424704578530759650788234871440088001704917196500814229271213840797266093872762805459405976263299038498764704037434542884873999556027680839856363471345242539841555133862771799141506254213743230332719369733561766960284448758466993708951877385918183500778135743649019685700726987732084907044899634077698108337035850782877688019160548139480680691382572782026497444786925503443684625459131382347710256371120312680422988797891786845507819835674916756959809915693486959780153226410870032300731314388118916965879023687276814814848010794215228919660250621976094088825801056760908492950266055166320949288507047207738238991076270765935795049500566468464540331887597227355133150944729174209571160668012063120079441698678145998443151019704642016114401319525872506269275692547761846408179104623315016873332725834244388156693673550344720663220149100717562495707045897570007493987042943490649355876661413500301924332354393880873043976279527432573400724234531655347120091306886902354901122695850800246305213893285030007281111544633261752497114977269878656866034526821509553574734624553540234131688101103895510393934551957844647052703818038207385362876931587360683842657410845191057157359558905991103365126210218025240700226471764474153993580349234920820470814637692255131704593333755572782797867854094500538799094450959758349071278610705758355987213262785838665114483258724438682301888599692426381401665484621662181114283282548416226774695104475118532630864999611582272987770902770655376909736050946913905238127796544899089425624052631933202065235885271054948353333557472800787136241680433163538374110241393714561780807417863766906315236195250828525274070784864678365218460519554805515153503962275119113437027754863561290936573476036899106554800037735396095905121820629844031806229681825436135844384037865820666285932855584261264255846603946254882635791753102166717371330518071986184681578377867337481829561970067924193286998901909194083966162967926783771659007755223438353924776199520939623663687364173278715113513834270176067117637258288586470580914998733077142257616214504218611624190856014523298944338827259578910106057278810997801939293804299069087562480303765176263651931347649044880031018664643839436965511349689130124698217390417030835521518926978394350816015603486340635614289302440358404013957912627251777590046006461697277059971244371899847359895332630750916502663947917888831857641976352673499448852049715737919565045437953638547258894209828124056685031103558614218228252588290598306294353390833718002696568064014404486509486915369196445596773884392184631042546571193041410618950011487730512728513103704792370090568781458800815922919159667073476821579801280885294883636150158016570765756039669424822175947173346316529926451423754406728122398113283894012784232976116712740734942943706894868225822287478618666324841116088173168869744553036195047025079124293879818456612087170054070251478053469948433024894824270193241174066473934028096631428957514118156602947396493897273886115132654750183377221839779996325319838577871855226977252842799077805142431081340133064286616443325985420103570185847198825368691950195373189555198930190233981983447561685159040321931323482099939073280773555309971289809774353458290344729655882070945678781598450444120648684833478118078506688275857456718429854397688726720799993474037683717922369768884540554457740600652322726889521996620796164410406645921626974949888084695042320695734742911642665338999389110882778441860290810841879295921890050707110427923865598051034139613922588648025088965941850647390043904062155253043531552201309709805096844488222978126596861568372681396535743845748237587297710590246395538210324877419272093395265843042549200001386008463663168581337112768644195800527598815320271085729507751073148958635507884835733708986312470668901088849144482133165744058840698178424546882996975468752232318811947531615622271316311471140017464691034466963804069570748665989414090887509315328810725646159715999576068144154045677304432168529557030194752110979808913284741946218116260620972490273192092545274352974000144311587016414482671782914209292328524356189061282955226004210289124907478228664857082297634843171102199567713599282506029805474884032454219388584584689943378158153698790709329570140035679622156963144220557611704048613977172785467582239469552617565963328014163473430050346249507700972418267075170665412429907990373768227527552236152985074227076711686177707633037289174302286295759434227046464224732208946286065987757121413028395120305525545360360437083263095323630760555913184046551310022931385146564192968914237694825874951980166423560836688777367370602863384997831487624089294822363441714570921658427639378140491757342849382500855783035873779139119952493088692347893285271723505510134086245267441272262328003320439377161873406701218489296589679269871603692090467275367713825186248870787065076942341944201716107207995463964791645359802475286183766230391115716223894251612152729507228796272533346882395514987421810529768526435462231420019968796366707494044011602078514681540833445539974389538316335924573687640238530943317925862161814821585275782074114323387941272557626428835611903675260748090968276762378368181323410984815480411936705439616693634236856400135920079862483241276456105523553180705323493364633828850256529604003561568389140738855597106812918827341349921346973109014692225448308366651327790363640143910942587383374844473072618801654480747204383514996066952451085415048105452555113936813289489932169150212518258466670840518302306677190301821825985307965454078202541052370626127467664548185661300149084509694678744860712170206403302070344712098960241868537905122537774851939138092999458901386840288493984863116268904843269187318142831106766927326699471919310053345517807369197394489265642369622955955555708873021471319467643992828758590319822966451301669299291167788888715913250617770601320049866905172283377912605448803333846998713035128466110556280377159602967220115469680954189556621449099527477288161650480990318025595023599493235629201914334092212952028921915237547005942736222131942165951588669352172305867958338861202023901639709884961902699242540504046931533377060915622599300116345009948100857651990670287061375400609814429964733687239562457012348461850755924817719308867394991860990428062663295428298125989970098236056303249822239512285143280922171748931689713068631541570500821352954619937075666905695888247629400698734291554818828317629804789996326339022298762559238619586280743328212152316240456509416757650991090258019180203245454669819220116987975535152666531681863827976656557644054839923133030631001231225191266821802538805228618729162093942276844039385660233486796046144369080028377282137444121734433673661251666824872352445112751856535375917915080326482574459208423326467026279153197950918119134900468999541416939057076544889066687003513030585462897980329992198985778391667554001688686644746585246721123732636348677328728356458166438214375828222739479313827562837585999539127226738354277062093563613438948442805430398199403328980143961101508120621010491229205665624957722802111795246022365806292336131940749100165067509584904070010182936955618221619596300377922391262016257322812980983149516239977183155031428950608519478663001246432999692700508377395074126902914597825979101996939099531979481432085484899415927930680733861856250647078313974965603713553113123476374025624553234340158739484281260377439780726232110231317531949673258445539766302916315741461242476405044161527659193565479201662822241635177025875624338928202551637057344013772108167356012946339339004962350740145223915611246101012004767052548499093689656176542013382850393530531764175962928231335503390568648976175652656001880918327495902356360550739471411396504760063241254554228627161421702993933562348962612864987032110926558881511339030366533130252404891491084466790331238292508286172498912749376521160660645258015610726309501823152197031865024244906111642724881865620204488361161942086523522764034638592807168641904655921776595465966003092583945149010890126109121990932880631769693711001619014609952628048298475448918166041843660538859099184202240197904306008547960170490011318810480468014112501427965283051524753550985841694973090871629156812540533537519289162262271519756699724015771718991972537473355221290969803720479733572501647653097294851055289965275216102607466909655262810396822948544704227980373457237137226829358568121082799787109279455368068777463271362915962647796821169501795296287015028145678389002969926392216401395190094865657704844308695449366016775735524712356222655588401075950779359198968934065897801489977903788013442562910394581918477960769504915819120884295726490403616189762778054044878618168298000388629132348441529828757616242476288431686441229178274533474696091554545403019770211368075660035133233301978656092287620011859342721985716678751089716492918953724195915648919136710107525232006828989740445068483912408934326343043382312776016504239149641169890356245814519524978311373392944118788869832372163045109842174102380842473913385750813432049008593479644805453103812393998100129300369500060443573543490630712580561924226318450238168082083588106701719296885065832447859171043943810856360249563360388297318522511667302707146126905059634164710112804108532773327412691950950411981746975887940771897793321826907480847958183637122492072664222127701497418018284547274757931261683620631905885379928240585317140911870871244851954082323191783177261660075210506675308191074605867134003887949410296713308896453437736390057837078426408680891684868978113887855407626765072439141277133732243167092646037789356514142577532086722347108212171544446043331514186280289617214341434252126923994719458425075034653690201591417084202876087630871370607553248703398505850148641640346350958631299428303667014370113403220299988447774263838454287030820581573553435090179467777588633123120992339951758888415479901727612564043701305397430425921388367417683313206931589250318677589691277988142021052818572884464629611563377569418709428908891929053290924820900197474761090108670704151165063390306199877566235502299532296907525142219761854263435598294597065721114723792009751871199870098722986995155477056638212018185252949005914510329168879813937759106590429021777226771838748827214455483177221023610047756172966998190282394235464993400084905009554195178002624327510786957704732584177750343667409105617287269152981358298582369829147461115105550756536871109218727687879009919829483797743654117670850873241045180256255129035113903516251851468609795854505714512484806100623338487843971513717598286019421754431722231644733354717637107233765838467008177553151128632808400483931056775891227750050917519406823457836819507445119195313105675146779105162767067859525308897809465549941909396397174428088821892273831252179361859833484412264472907558281530822250030152740821750802746782397729892273003615050939408018512173512927713109805131430485094136207296476509636350795122684598260288824537832920987425717587558794128589192806867205605091162972618214788274209391208688591355240836840887788169112108991824431843080095801385231328188721006571071866064829780841693106701647162215664663293512190366439659165261569198627221097575239632624081694560334770671326206244655032834582598197575165202198589559470977265971272406370049723189597712979429836802728056003289728110845821261911981314620182817253334485628713772268061847723162179022186021406359179326076945586901944752761823149357885079535377207926050132249249804063124569230239448119618255896831713102618696633756533615462460839815050377645724444509073456977608613049897281463216408497865163654220011463852419901171106580421295461717956020540299902677406694182949119094149747231291468658422127214465898632394223327931323303052048636376394225558279689837971267707869894892924425675740795912713355104768336477039060078008369126905362722904511797090204664807263305543392671498637640464983464605736429035910424263067196961297859321470852788046689491233975493696827218263504731400235068024094896480119592770828534296762636983693424359509895282512253998116820176870047950465847599642606676679722275294425670375256747870280542440670890043524703630757661727846836898775962229739263527865985922996521854956830720502922381093763003623456734232418102535062093153680271468271050307751655437066450829554474568625936845102361147563745622319150638278526195626026514445255887581289318504809504176828774424258456122247074721165906491646594235389475979849559323954991176304745160424430067868009123630444731478239140224257925325344599205223511862538311276623057387955386284543198961104187776357504198245814234111673360969976614874482414939333571351590800662524314105071219566762809952398075105294422940501133540405455499776507832485022522347436401244595771785244227123838586183798376147757142413119573709362652525704164872859533361725022967917412353366215752903086105171422617593113472369344379409197441828462000509441425771651060823660614133209176249292748572591991520619774809628954145164845366022150427911178160157554203551621887148207579549436370380580906375814555309935291909872152013007258371498773683612611958195925403415834874932688310022898870119753346128051930280598309251830266179272588652510473087762020504972599963069213459384298030725515519775871546699661083007705485526591317148476502510530392900011037464451524591835119449354259518893054088174339430426038324398261391530867411480451412404412855993302509242628123341504584011877005162581815410325998431575809435372357400110347935295334492839820294509922773517442061376821126267688664258975983117936943078791187587827056928145162801387301018588443577982106593754205206937987732318279336408121206572733600102579878298140814935884846019728887775551842106790431693731172142911094228394851510625893745841638246357453672591656239761858088789965003921915544191505358211182746660640667664449553113104840282238828370608197160002575404157192603071313083041690431503724457327065093644213532320528534923747001551538917549084933505546166337829899687182392490302925238949326265800803880290559713081225866508988600640486740488310969039571460908284296521962525844484308721025459399441063832908900832008171494730873776732784648077354142225162722521948983937672978792665035080349114166107589544596162727644347733680304553796270217964548345165506576603555122128985234485003141814158400456067963087590169439809865550870399703905772488369086357539847984511769487387467352751645629084592235437801700781296038963824214014482124715401481097583211431507784894432411872950539994865065553096956449813028793811308709675212373152410118250387415336974204038192363527301374303696111034792349692067841865157350734282538590729136709183671714147031566824093931693060051636182434028235596421940571101703785807363335918573388068146475025061605468213821256623411351275389950508741300811889651062774483610771634025043508586303776982136829053624384967504660085516868942057136896725354354299631117346759566757371652782367455094967630752681948626257667221999937399087512803336432586970395316913598819280222778941289784501231954944773459661770936347454647453167373609040523218112295786215378900068161114337739347957124703093971629067261756694058327939938459955924905652379835499554706927937790729765833087731626726630536129567885321356556553021182261245707973826243954104778852249002196579566112444164084075255999046206539304824240266349304612730940923496482420061875151900597875901905568757662040426177808382488138924357328964341881341964335048932603184603207471211137105162256246226721887203032736642144202222296844132422752283276947287778459816596924435636863642505379506129992168097302033731641436539140236991090457053472520642887756374211822529309079096758406859879329189546316932072476414531160631224897021910770355085468978967013860487824957902753216017367966681019194875675706193212207589798491387502878252628229801071251980484543348407219628726247781513146916896133467887438569288293869552794937517425426996530751906141645545661913706315962687486437070928994115991327070484298263045827611120858344003167623305626636962244068597423871533244595977513415323466395133311074271678810079985190705371686812547060211273348351042143529674103299003690154144541286306891748843909224625030771650903789698600878501241009660846830402750867388988318256509993836369889495183149122608811269317813018349058513604864316517586043647567610248946151807218524154309147420661283612318202060942966401837774039508417506135375003253291826497143286326994319323941016736701930290616183698939934600017172880520917703676658859782657014823789492439328535371856923852701238177621728534492128818733114398222419556310691066945192549387431331773475348841853550803356010001563750888931393559026058913699832963592837684696999128922793020406609836450705627679651396866048975373001506526728921834243206263542299783984655978894481581544114938116477824860400219822672143777918861902819254007537795906593170529631288585390987071638131147618932097951053377467161820659571875389995088430787248511247902711043822929383156911889745459460502961392702734874918972399102852184861826434249530778102023253188234275888940819943051189901431674918548544946815392614224095486036139127552373200506708716136610863287008262428276807348645084137920447891203819809925382333920925581770174398321958735478504848836008477771754030301393147930072176153530413444505868061393315411751752007946479736305156467719020981991110250650785121706114295553900618521536608404930371738630155277465950204700743884240728679227009247965448743204244795567479094580624005389745184588837367280567394818891550944518428661783312130119164201378009772708891026102837661571715222806211438446028720103178778938101589776982763062200388385236067208595028249476358711073190665036061030155881184173215597917721211231485183389590659597791313222826181107547027968318879849305664342883571462834800503286980144687101745617865229720643779291220329428383899872672260088337414932406166315025127226892829654728103258817863670283692427754141334172236913178240742158035093664499460365954884265915719340015026692477932872396231484490433058178033861943449064547568417725157086826904910378119734769798834758388648737896071763401150535987193422654948987741485060111415662954724312073372997121250799286479337113972425674714657173146768976542389328686678707096545810086557236773839602803359851577676312493637233886891803586514326619024169637633522164899298903331315789977962236797344485838479493770349741740976721982737291419032802017787756113232997524967420934177329845202889705960755380355853523745853751358946835787872225051977807162674894901346623774308494265278367384722533449336350952501668542031762410543025299649219485888606846544445893900752510358315444968045671753936872418700057262900294311218617176941025032267620238964495617122534621948847673372193294205430077516408643582573284476196821846642513070811215002702126083431666755974736003502407792041042001631177562503600386243834591816865574366856488594860466102133458620136716723223632342640719649878436791434309807828841952821889972623598774204961378924158261412414968177102565806747486295261822038943029083363593803018106686300366197082036379857266405164643548900700390204113686383487006176428520752272530627500028767221926405837979709980801445149182277659205047400046379827435825457517766735382026643847257503572963312832306226375182011074977944199730147906497839522481739745550580985211826679605696652502317050703960372016191927084403053242213497904349985792413530223945687571729490161945359677599575686596347025738141467574657249421251258701856310971773340899149424960749675865111684602090402785533045070562803948183408784762650800181590938525577202027720404293914908788597235451121538267381544877153975078387387962544646112880553810332303475325617741480714103003535261755279254953126171067580963840540831266391308279130860446104677659689046593092733789582706849543026587274720510828182106760869045174183065201490164151161902262455357892137792612570788433265886125890208980202751486250818747695249156183411836889202529877713856184638408386155491858735528925178857006942937230357948255866213224412229284235287483972609387869769218760248344061985712876435176890682802118816836842952220558416779512221263620670132895985004268096934330380811781939186050229151289089751361619640209704263985038201191007281807489939201215334392311280310272189569956805761903846406955428247626219507574161555432931108528154185624532574855789553343805425565893567175766306462346309120414662050254786638485486800206132729408833612176584756972958123054434161682801373911770702803321321611241723185106986462587825592509607408642559202757885949769795656883822341555166850832772637282284845407964533898717185550760540500069754694790408600389695781760348624594237125362821864381901309893955402986907985740659255811291466800882472933925552477773126642247029535690141549403501295010082561553061577573229604783896535601069158644229727988300566200610392430408856875150066500578485032369230189069054681629618477977782495059697359565386808935166698665504818561058278336671067126164321603092001594853746960981252255681734626740762072447047162647144123698676285941731630309759791343874044038249237873333708375123596561169574284089266429800166016232089652871702829423640390013342017342653625564965730050633487278229380460556346183286475302594058523414270756030699816933605573373926003263434527146423526344994286511834446959848217010148411175530009029024570087255985746113381820083631652508490036953535739837551910479425760715539322256570436768874479410020278039268486380520399829619252798184467327408508032645822371671033213860326657798057206417901100078560058857739225763524049555688039243298034757209471065110078063708867289065866615907588314388509864860445776555568238707432102345417694142890953923157654214939230023333750557083312600367207627184940302702926079361020160493665223959211154257823739804902878304495868433470738304048363764084993308390981477639157636978029107139588416317862123582413189456441380164434014550167444421370611723589125481653949230957868893308138556721828391209333286484069590148881926059330988064136605270690815832929350016345531620160745878208833786405446087432813246433435741284383207296074021247215168740231840464772303919143309006627849641854720661945865280473268287096529860789987363480068256859722884463601562434259167306470928431222394936757256665408356750222017911327357372750509643461493670932111623279540189493335178847291372983217423610757691008233127763479370660582131302233338389813400688377111017127706031003517882489193793095778250196140027442673948797514929575610287598642972203469820710575597182744731570793191470201558291418851723454062722593832435599681925005447127281610266492538595547623074797929592731079787612875329660712276845180821875006915096015062627381343599681483606267041200269098074420208862094879562391542542397249556249458984616833493874864419340175779530564276770223434640662538362627526351604367216718628386534691484645773542572628895808797444546010584380331268102614970013768158833799409141769324885871149376966453399589815321914975599378888367160385335171413935746651534350500780349975013476124014395454270824636037863680283534284433502615875350922558671522768754455755439501667999436033506348557190023316935455310231424087632061720537513368732919762336251877054237282132134087373477749078569760888411803018587497519431210883394721991957244730457780244501504873198307839941029630413366292432811854668425485217328219668136361503502746929489660417890097390741846008575372440580230032776145446531417016392345226057015690974017576090005501786453615396176648164184086480332223355040272993110725179167740690533384890996384713492158539695818549246670100608742707171447690259485737743167988383846319626017266709500022901046750886633982817843242456915220532651167639104133016886692016479691728588011715804127764787011996689640767952876815302707377617826324426637390298236744557910926214804159418394731435969033198900557537812157702912465428690427713514026404037277295908139905021058336443097679028989463524341417520539934865499375349326646380324262973859664531685101263542083149986848653449801364823723481985614259648192097671529463847038451726737523246894028611080146395547425036622336851363736971368720474244076580008452373174292201972672326573632010416609652183244126149793685614385075234940769006272242726584418052446543526836586140963531621447832936164098998899786601261366935386143556706403793964518467081269782992475435894868612458084936336232092666025422820769250379443977608091627536308699682444764887305741645560524214390248444304086195792750717324178082151488435654590679930329802132690526348597199621694565347587111543110713446990350494336330601839217141033824102859727928861252208085045874847013062132828477531887585871418424037872725081675817048486166600088204898246709718539264114357087473097066975503653493054186420372273361650152456732773355415358303558563946830367937901482459733475766899901582775564755211954417944388197044691070131725171349475626667466805860688526626418552920053607203018029215424960681864491270396133766144476749685182559310257458347069654254830771223046298043600039790959166025787990485456638670654446258489808454828166075381401943504189218680974738538589865595885984992331944089426061338736441897449375908257761247394527807593795942517454257626807046018645145698302082988269456690980706457752489481950053875838876220701485982400378219511059714797001826441270435206350903510725714881789325253912777113775290840054100180695146425576306548093922738520948403877983161698140852878134349859864131630618251552510152733208456032928831047972284094409699174403513044773956013084012913517752229367070301773288937323481118589065508445214375951380381301341977607276767884516554208468171562379613902083175409039221072474284378288239535839332908018751858550367175233812117913033005326528548879991985349928642325297364316309853692671690359800041646693228876397982035312868668644237835635676581787089456529156479436125058397380642222884857402829039083969617062607741351421154572690659468235945531235783920868752562471606867173094911523788387529718071158675871201615903221651862196789456672487504053864887636060742149056194941461752820592886985310765806990931848298672870357966547353790798107516131859569614265320745389052613032663756006141115608655691944762113533621396534848668807659339051929092365237690560903024680596025758570332674491128589129495397290890365819875359944588631404562835053588031783428895386406924419915230158541867676251837570687480088376877235321869293855175385669150102553742868706885158214713765028427915021232560806377760804358425895365933606559320815832720863394188235064003097600031318900957348178728490711543118072559545124231692907577637190079775492659911474782769693827945613676091338029033194903497735107951641044489145560951083889857440071742527306326302699603624048322489983372233622434340744839207628882357422869395709961575641030965441094592066061484820816773923391490324431862671690117603272719532400623927277578527677360699631652703624249778228512751813276529358679327129615317086123004708993830082697432459748330513752754990668820925613832730741579507922545035914737576225652128502814530566452968231671455948318418374882579763752266058612554818635811713303091690659602212114628001429669502122068846966048153621262633795332995673173568604444161041930567667369606238913340060695151259862859887474219703928681639389143780993817480188201846479391501095592369155792892755702675463123062871890212237170622344830471894585664030564663474379200286718250177912621486452919012044844941695061421502114654748926161619304557901795427255336795361446495791217554834308037794522040201385363249604812846245698763705485294387171569417791424830092274204322749207696272094901527104474628033916218715806451180036293263110047913130734533682861741284201250385485693502377564418747760626380922522219398617440027666629169119871839221806421253503457803117755207660853299519540558205526256881911138750782821107440195553922760724895044410803171720387614371043174310921264461037801909137280890339259321552566555939318294316006986124699750314716563251568999311788288919326632602456331974118440700483139348755887368590235189967241595103964779558186013091202773752358984599254621979676701675197810414661543165346215699351084175446494147918843985682852971687249541758846298352115739956492838962599908630821971025255397748566236383160687373332870188782102314732330249333054840994060038715999121070155740061802940631832033330562655806633088313791803926908588601464068903666446274983369201253894609691421545849402068235178008503830708125254460139424516972773609420753891974742014801834635048470888030368393535252923288233370300543105657772326026066137083933584565106944653140411449665948761099388429347438136108031370245522588269493364072024796027531380975886399500081802753548114950790206753997596731368257285508035474339512690761974505228945066272028583003449438041595966367161238794932242236903863723539698966531857247280016603730700102558244830342084905826804582554813206368277934615278844556446955948887592507007114038406037827675173045541681769661387953974138934396426327865257763777009481664647924646807098871528908987631662769683995842263848977573351677633850068913362277552560836305081357399163075167629555713305580828608759595706975266111918514931874488720478862680872905145121867121461651142437965991009106483858400722560630749750851304090564780312663464719858834574126640019771624186975548535773711680548877522522635348651079618734684730922447337367844121636019634984439829453778528808520908666649365086857394707764027171432708746119334894865666704882735731159920408393334786376945858176401960806814132910638256880702012794468960636139039993066867492430108303983863555735193045505691002291382682058097935575421831870730812166680378475085140400430695737044919967574824151575880380341923616506886345584279971231710770929163296076826983821238612112707346206796568217994205698222451847707872252569182539770043701531035878996693052989323018469987280295870259620004580660365167078132278365983040609951452706047498980407414588198850466053498914947545259723602729153404748560912568923807744334561625946485281623797766366409585657521414668523198208702296634171763628861387901966087053878908068508902934353937220796277000700527912293711798128161721115519498923280627860053209453334390872958712807900154055206065580029245371514216844484169948597390925089986957095208752883537974765554261781806621123582232999123231376412850675113506615707703761767948837304848582366409765199990739571157765723246969212252033433000541156946849458058706967632893762162103419850309910690088735462543161533460470536329120257213723350294588586824717571751376041917019952446671820164413381700900998403100458899384431574012154295386039894490447595987671494540190459554233448855618228595401393011678281973645393812620997373486241614972989190700594597043267194488690621861263235993270279358672526678094518937378697618826838562784332486668130854812524544943578631325942513410937858161933221950441686810128175681808445220523619632337724321176726326244337988827898508807335186143085191732015561002863128766517921441678106959023811950744005801349809250040586596050437346410766102011703262540546497544251190185403136946391474323314475451048876510997527351504971008590926702377160003881382857261791204390485477044512198270371244225015385273534288232187560369608074938923855492682742958904238645587835238207532427321767986019319363112826907201198498322370854766018877542875150889143535338061701099870065320695230726123453116137122966309435379317069682070469295639260894559904818640344260686606695250220173904212254362510860023757727244092312583994590096562386394288479257452096024434900413531281866415212696892066915116021277551384485038109502738092071551114390614249934255160436644159812325512363211883241546021543621581823638833440297380340999187723794607812297873335122806795599675984618372492145760183482296064386496760526978086035598885900922633371911295323332190534297344819167759877781375660828834589168048533003065028705355524088313672039855512401711438270376773100000949001974940749291773614705898128086573912336346739104275549189720776991285357638742075385087651781698445113367491244686155892298120985820959327227936145375053487063080768160290142118593908651297933451782139523138191892931803454300847371052140190356458420091173633881778980634564485921685880522144432453931543024435227280330412496450760157528051249243549234275481559673342634766886819356991074750170101583868126497068271098170567393847933291601009936498852919166550351152749141016803103400895235472511446896631053551403188474441011894530828688201488498547326129878566126515579233016201637358496558872510272391450216409319778791381815718803876020471394705270789941590122696842893758314291956188740801841179154937580621168233000460822884465484965799785152902107121036065726312975579409240351479264168446329499197249131282925921162563287699531872034235762436537948845338924326779444487456631688865238881684048963469972231436043186014718731993862515215880822004109661778635409429392829564274955051340833073880588364056022157247847910553066634635951735390380642628240335430937583393201552071812010620641661609205969668582869757861051784910063219018928175879863942692507179907998399540098245892959390411667080110360593731940283314338285543372734830159588469412992757811421274539124758637966625213066196510611598650296286725235098757561102914788221632868483034094105883916711370316967793932456852181327683379730775488464067976345667749940048287877983300613856878454831163096729362290503664362722094667385093385545468376269352602799676566536314168692099290836884888012082609581448883935279976938307596147473904478593435181590692548991966121237819066578131062302982605287279928439854815237412586334063460246600893706404833514300683156191620490706028636558807669327899319539029356975070439790981301213209561812164933367801841852861514993684656903774209611494033577932767321699002482678854239975595585422333532792931993533445114363166444479125529802147095705554983598217035641847937261139315846672012570120336073755061454764475748627049974633277869656432161355295496805791608476710188050869679829127756300513241755767666410663990671874523605327490627447433169401943601251362613119437445169174720844522473330783195625568443187541606932087814007029959260620242500324991154867830126393734019103106312193788123937834623754076365800098041493710950823602357173336796883430572064938009265292354007530546143398134872648609411921946441774606145264443358430142861255510113634240118993995947705217844247111323217916497360699482337340054581857258266074954625965127204729970634826952648332512540396416519107088101491862887193976591246699545701603787023754777607095855495708361642343149000057378895108643113941207264934834075229103834694770686925592116481422169507093584008934803336458613586504768441213492869441621785478832151247818864294766027301877510766943677025396685388752694183735070422818983031412629432084367982705620773532596551873549571792914543102830214437177536045223654257546337891583831436025877839879361729737408376262160643067878106589396177430865974671371145055248619903035213584600730050884712615161482651626399865354533630372469089445580045608746093906976840010423875029497487757793068752944638241896553257953725399335103969524898916967050923970070177204713735475036964734239499517691960232313395693937929180828073736960659666787871138932710437470215640230400187756878054416480106259890783351648878044739797388317717069442168822117907194596918578869304557150728365288487054912355075863245474191384618158212964245886843070902708005826536138044570546586898164083138511823346602785798071441059099910935252875919703402119729122227589307713518147041336304560567976543113998575285464284293804450548421052140752314364448244828302815410377685040620041379838359166956647373195458826245513489378103632125583567267317596150111946347127958942445435661525021294527054312040514996607409397925124517862803888671658028472459250829496764390546401452907395888989303161877721140083081081120109849735967434870779746466807153195699223630291039189558549264981474958835787819445334482812196240670031569345903135135532296933513316093173755299515005942996636714995949446688142677716047411247900165031287129597860585080487005780437328203628122546642031825591316184064882346992544470999434276444333637612201214599512227230672058959040504873285815250191427954830127079510655595965948475366722197707594628264642991823831385642140171389095318684637449942780619329183382274987946207933515665767893670588500112361295029055393672637989915896290948927740799373457743440320202128218267229669876354808242508362646280894599070314004991731588702301629506955952926026780726163507939269205525380724750087121705152712347994814011835250745871450103742614931518095724278676319362935426462849578430318437558766722494481289477584960285616158218111322825041581215039866063459583161845683543138741819150684808210618085535665210339080855214130172621500506768768963036709722516235637229442169844384416734189987729713921936733167842186170516032588264797024976200205403594494428616418123731795921300313443181521751067344247529706543724160404616975816543236247934456940195444809910155178845189961707515391451098973271525978212786903316112483685671645089469711700149662269761875808877831750313033063033110267698150712861449024642376253164249818883017641582187453465203307439230156913964213452905797705515775374839421418675436650962616279339240017296795126184189543617114695499595292838398323990381558480511813870438040121328124137879339011508782002354922347618850479043668288465677672425349001666921752390732352300219347560790749640068471732144924872965176249742197652266453677495425916939154016152458362651729366771126860457198819032725724693886752965712883286580361488978701451018943911227190146434730100481950635515551938626986720832090985661097327187455636303453576325717024219832237576867122753836254277053301834525205846383533019559282111733933489407794091301861928228773509585526362981275163654536038969033268079579286726833675196850460443200010069805094260205457211373391091417245860854867862749751003756854785027665842990156161684294116405236694685458483404949203516419594796959407149351029983604093523621372619105153883794747702345839447736512409644636095007012179535366736089411678865800081589520135992444876425179186827735659221883139459306056176464350447593154945838623246128979163603674945243217176384155448627747981794194635792222577703592388308819497133316819717224005452984396364225628041116151251434930695128322736096158321351275937204118659644563943654097687038657421340237948265609386924115990362832301003829443882529860388025921447342089854381908658179002438029090475326367032762209504634700443481950394285349424957681654340645702946965991429192326937971272067114373093057856952230453771678339024719035076159934661320479183390912846657868000494336837893966159652902596463456224901401743976550564679177133248601083532873545229779971116077030040589139936540902229279916981714529316124647798659389159401842500165750875077366379206082583767221507033339549382346243460998896283469341833034013952489773327955671460576795432114474929485902557328868705988139312488837393660574560045406765817168503227926818070836467990964276291431401865533459154774232359183172450539406724797332941426471885207695125036383186327537390404345489384869519404610224285843192457553732936733154279183034535405298178185314692560232978677275191158687188735305994577836426377727086735235536462150366044775073912233620964931876088897409610899438552051244367736884538479888306561467914469820060834979292893487113502540798263822236308822196246059928402141938509646992947548483184190093742002244131283752207682708087835111517914189577557196666053349588140069065906494931679621677713766879893992167632675931778549576182593470521264374585274544463115481748424465148927761232640368693584625907041296625245108778295021798210722229833566085756765604413322270581138365498990725733465472912365054697928969076519044024454358149095714009809898063659426825031767928622761942181031300696243139609212484936332693785817322490580732589996196881371765633660603263564885649874819900952691666273253453324353622731746237758240237170017267805683350921426758029339866833488801737148134197408422461193663238556955314921298326415533941431143166140324075873804979686385257458495072732694639184544929091734778893286478004781494916209848267859722804591405734908994991543269805761262547006126609044613862853868123691025197200323062020096014365865162583263774838090177063247531119882931541267978877418949563063777467134072351719233552745254994066261870838870479280331553803656352853835797826523299564130982667276562907842413308780916829946202997288865832903951947908019635884450935068052915274803967137370810871471761296845845104207812133006327752052685801186627868068656988611038479368434651552309012818997499209100619927432772609606285804080560895860355643357303038589940717619748269788558356923570685125053845035855202871224849478734382095476911477695101962857033082413873919576205512288629597355237265868883244790288267042519446255162845390099927441339849033469094346616539190908666158284198857732398225211463663192417144920550124857980385108882632274679368930999793703219600033114650746850369792241389349504872317787373850323686164411750590853301897427367561277258536644562281830852859706216404894456958949233810885858492793400182016969171334791391787393427710185633154942847813245600182785372100781031829189905438147766926558600455013762093117693501536398618726503793475095735254588316592933797433462680544176295978193795030846791534600925128204100676512678482647928070769481926094717493539441590747437620723140953579544094571442973781084080865106903489819005883998163949594018281287712503690552418077740593950835858049356160764203842933763788380460021616745711740598243019960637464495657724451155554127108235628449603607826311474437279070054180758543595032394027129582690331446402013427212554239335543906701528937424478046462481469590307261157919841845613102964251511364087522088410673304488717246132035575737628222867354371939401484208654825806973311044299227764101423987035345411857741684378538036460237119509849372084605934731611342214458403126377414237383925424337280302749425144173224327807555400484157682121753769305500511371858282796591614754442044843449623882595999378677204233884563977583116044281496713297896758263506790119306361829916247016475661798515943610018754786425899068502853485383138022934719005686527127216009410332799193216317763877939532374435268934373353022699156897375067539504103078326818857418784269618233638802682898253559686051825372470277539164167553392293424108884590794584666456574099613212716078013179690984664410084626069409440705575061666029667232760928984459649852670029348000238860153399481619774126383305985164454238206841215771034937523968555209295129303584365291747883984106943269615885271660039228275852414927706250796028278734374361012675058369072205010147866921801175201526432637917174266637968105662020399698055778657593231490887751337601807402962713685471879312408818290960828538361836796268499752967835240517502826137282906712113741616725538749749662281433372115281590225942527661633789439446780442256783853938181077572264437936864917878917272139993541053079904065027822211854703304350944061416478894047098205109459359284908074304910887233801355239025311587534784167826865264524018558671295010017273241359889017643506769270856204202342452596665137453994503310747956306289400422822125922474892434116120608351359648335158959189880563474756824032654089450432862091225503366819579904526228543808292692278041365111369514222591719223570167277803996105068614118451791437670542889365339933825898275474193026205386096477201853011221065106791331227384706622748563117309851554497649839784169629897962688241914532704975789711010746240440420436756773214975447183999686207231531151887204528723718075548981096421149027551488704437859705337768585892559199399966860668437174616835827155817014692278663027460313147837103068304105540890520694229322589556480739485181346366886030819252947598689411744622676967053302212516277238549095097042349760653619886179251384272719473209579682011955429019804651622321651924233441443790787800418050634318763926157159105325894200546041012503877106195099260042642943285355548545034059084033779968128207972377453245476323346908762578783083550289308642541960324046620583105011097540678453918935523103604702216592932863095936300113742714068178344296537235193670102629384163901468699221739254815139025540711386388069461778023076875502132648507430595550801665517945997172499313806260563810042579542277169487732235607459635657387457080919161898343168409868849776530528101427603975732222981958345743100880240133636668943985224982084276043428441011097382622521733066138633715119187289242624666262414570546685300690855508108445654637265961815583095437523301489179348604284064136269595044601835063859762278020720093668760823522138958151522724125807956971464493207509694951136626345910715823360243291233412514652492048209011599074154317182924805823904875784523689896411069665830754906154315704640485230175545329769537645498726102211379510815982487046341107008928343583828429529130162352144795083276513128601028637148609962826746542873226103567940162012506574670872959260773464521991134116961418619759319682990469785705714291090254150885111339115419111816117184445691471250751639859298268187817834374600089153383280141556608124182226818361250217299166530720002286848156342795981113602332931436138019537252098790586583610648766170019748926492829144656870487322910827416579452964041836480912649137238702145262955342089746990131739458397344835705637201534571994382948079673167844086519562191005781338841787730171146834163197381775648521796437202341505533596445495381389848782700085692331727974179064737179674374242081131139580192018774772955639170816055328146337441910921531808926642856994382603966257145710658816129023067526618213029974356493331203574139899372467120333535836496701990048884719003711427549247717010547822319736997232835978279359497323911365366879536238806837158280680804650351370889246115032966755824681180646494231790260621807037598273795926341454930938439861274213132278228599763663220334001341470526646904456958455078529627851284636750686582516033023173163424110117687342995598074732409059835144541412141275827244857178512528075399556541152709655188575990339816873725879790571197334168930600287498750954775513676291793336458001149399283150160868739220100522435640692791706817410619640069385090201427611203843276904811094346692014006044896320229098331306705715920056922733409171290210634574056320782733739484055839742677754221772764815790725813526296880632623388271176848635528918233975255993252466401735927212289998751802719378310787100701410725709872687434303159889424441785176140810655242335866433787944090251650071366121478464675479667483440330843349485893051071429182956219903517635852963920491381356086934260562500807948321533329615721957666122269455445859813547884253204728342833211135575353104272511120167726347130855758716063184713765605314490415174313472655616971463199032076102341302664876992200730682458258538664711302328528288481083675714424447761357642542729731667203840097193413880059566429583250143484621295862037828166587696905558430274087505591485133256928029070379450311037799277039825857424740276967176588733302972199414100990838551287981093131411343027376684562707601205442041785021609627247568692994361489329964663368351623001731605736818874091547386642178825665409696429892617777179358963611862087325364663402127187441469406846821871375820638372015500408987229907965369335157645245312021962989027789594178760660245389960492876193599566705132195556117231318888094646481381305675876938398315704435453504573201278727694393868747378024370941463068166514552040880134000912437872969214347989270353844065218093089637275204712718675679068124729565788564679658094650768089384640376537690743429895982974286103383198131050193803024065409974301684064026747213895477571154609989635262713589870981410374771381311450080517010242584800525251455447559703125529447009608462897832691139820651754508667065238669749676676972939868964534208228246230847703098546814114039215314872011132839834583772739364837279174479404975285623274145193445083989353285786276331911403053020942847883928940933975002972867254201794249756342023955964833903978848983084436763212953483826652455433390511266666049102990579010536513722437481121931671650523344753420001109394099909140063805791657995817376385665663853844636544047665746264099095997737487693612890494505784155943089629659507979576178090485620791019096094566435206874925592590365904383675903144095868787718428986965413144147973648068351292055777832359288036894781005954009375756479797911515463396309184456196651563263084223337083204769142581824079824605694673933362259704703168580829248038174038279285029816959763223726795694069890123119182109125540533708826583319570251606205554748398102211980788607928984592696437099059749863355204440261016797043063781472047300951446838545373759882241911017307781803295765769699083948472682157004372638886254523920577465304713657536536333475199742381332858938914162582943099872877285846369785519260721133783589679166596733943890340357147148978489696306825052373650467521496342436350943877282674110539267203249799255245466208794829868695596491276196000277740627216382150541670025618767145258355742084119743287922676465546264159373515883829547062785766188762073901308064802328250238706058489789481065088502971301778277728767899198449179112425234283033631551063127910992108183290304226800599399666047222510980647597031992387925907710925670914151548342361948515820130674533899220438480294677448103161961699940456677714709570684912355255751205388873800738897386080791135571417744227531621586584549102058514615523744148276192375841034070736691189696400198111646204803777380046271768665099412589677805106677489234191168579788262905108731590170632261145837934032225657692730554365619914921404357479020454568937829720624384570123032119792956683841974506759959215825039781657821636501107412974634123241329478496715145724639762887592142221220497201859757130122911170610232570693843167412922873465527582495691858687540792522487047041244311013541588965983135647246270091873624002919276895215245358362790974140529325328026890720715305747819090700022018046655927362828546166049928682167871212886078284458439270089892225628184447925596633400527821285200071944516821320836207774180883273915687929900541393840284837499217281326331590572005142477913318510186041779801147362026087588996025722162436363255737308453276979344938615552073359127333886446227800433601824197601378434189823480891621031895059809433842827822355010301365151094955659584704005150811280103518344586907945681843590065683876046107983157877043055628210443130445192708367069428827620994346686815800331123698169752218513846691328885383064727599280935740944361519383801013393201209651626709235134800134066855342379951084783891671394150228114250181106540656273160660343048561625131913660710984496018240018616849433007663010095577289181563958408312177637022567074684440460391879446017680245868359330668035877520114693430380628061792052545439118576617462213213092164014167969208763678076026656322914111063940424135815501466823918616612805477127314535595665857803985127785962159115386908929665343490570640643157566797617298734559790492624277021881381576353564799241987997378395178144898031736083204289472017586999563682568539853002183514616123543998237471048638876354207591695011271395025818446432762490688214921871814448205936307154705171289683576328548790756145428027154159160582167363748570677787412762139549517194255977121159000776706267186743869733485385600468015448713365114680913576174399206248987010766734357598288024410494300978167212683743546432691211076385970416827707205685369420609479045601661226905508761470173241924732531750552964307679006656368107252082161247627436317222973478995729469705902479012125717680193998372594531750915650183730220206842240628058865738327441071669924390047471344503087141774090329755295592575972033269403335435994158413255429827668534853396098596925452514923822562696835515329378142534894766576895227388497073546510756003366890883404703937685346536962014611946768287147530159469973386625530072316906075321139363999869091523348092926883054678722409711312662446920259309859652746429186807827136670223045912174129750571347802043762753417270298043955272276807400350629943455073062285299204946668943262525480142840927830999189389968021317010851497279807996701352429266832354152736178295843494050543094050926977320954988538129946673168516185831774115565783837863208355657827106802700938520784556558440115161496524833356993712602905737252714616661324745396118321948902699091890223338552472999620108836340653512286785511963803366490529321426325381991534694013165017734586761947172960653887709680411066921321922582378027041167391224802428586397865463857877635363128376964425221837592503572401325412554211908865160525239822498137082787075954253099401391904401739068205059750622529780588487799862545977644977671214499243155512532405508811098862336893215054540360250719137246783086445562348055489267894679502381326246434874072066821070638278907187225445424078313593451613033306796508330955739415057755800687701107701412695234955702904030267032332922111545590771622415430133215373133618237797950140078579933743716627820717902454089707764270594179522949261033792586552079221344375323731983431249333653018150809134453997294620517146064097426817557713512790201629759886979595683303306450822553102287506761509989997818346560128015801740469468016756616982466444442291749105325090659125276039105832985551779810655357659043990338022930734359559463197119166638677545483862976757132499114692637479795374762863521126703400390447710918503794207762942335806560606247636317961300046881656151609623746130223761905227503635413088304850827903771599229663911588747683620755062096400058577424899425291888697755979595434469096019109204976253384211954604950930280474336633845599814080419778120413997400706476383853062213714248644332696453032696283843494420064495226898304309629704951662394804062730819703856949551747672245384355818616225713353081809082285228850495608175768321972412056720960977014420469272102677659534340520790464090166186712138613277773731636505121098724112536506155507602349158850771301175169119355728694284878474611589054367324422657189457315004290705071780318201581937286445772208661368022829327928676747870154906401027478451796201740675542255478649364783292316257376353628290895264116789513131604043894132781607533198918723788187094514756211746682097131811898587972191297297879284506848596133048597991692894860875521099047272932865682810712527588119126309200473826570674394879773943464527782673619486551218845405459275251189419118148278601669504771373016798554735154585795780581925172288975009436648610522638787791968089298531512808916182567551323114966468425807194441600747371421636573589114727164671545131016815342182408989547456494655569637394591168960762719396558107857168977574714288038711491408362697008541158703856682400148472473629612852438456137660157448990687244512888964164439534598644197574163574385234674220144076758927676485529146676181033954848064867672921039282460649205857596199330811126786844350265750880769730914425371901839236778284859682529807880198104495913769484593856305584315422269520021173996468533883221954449755330708519362421276975522383591461463769889391468125979834943782866476326648842192485042524914177916793589228610239313823137786602824784059609399220732032028033583191575031336439190119932833776884634210543313328040205981260780916239114271874302440781306775826559106805916568611448005325031491328519205099781914152317011457874874896887859944423701320829983466877767566965197436062371261024814759748258962771426656283111573132236458576540344635487006787005276129506341783550989678490626889428860860512584676126155229956612032103319983681453574440396779203182150038160053000710417428414117524328536130692977510935806133479534945897470090628872416446162409138120696835951611106248416290891162302857560506558500033829094494749701681931754633928277077689628338940324475792941638357232248430314347425863370440659423276086832698364016577603587287402583179397717420226921237094340014539629271156850879747076625498694011240628487360653456390457065077713340875611544612670010488621267269245442443710650281252063064572851923661831271942933813298966734389935179688454496001491210515008052190983028836779969209177358142033375845878906653505755507467060591869019262282989805481014242399738218037513472135849177193892464920476454486863211628538251330272593958446389086650578455160991417392987000837839247841631793793067573232956415814985342586895619901807677147886572323667692813082816952912806818950149801864224871982566782516154662344710174206821082803913881032603189307432399134713068814720557943119437786231989286637986583762861955695772715681292120004968559040197986946592702119104063989486732846138075052550022029849184688288562416547012566805113653787118533694758457662103858861133362475825796275665266258956524174604631208408818375738972829683941780359526820210643027921434373779983617936100828153865130479024784169490369272561269858172238318847979275007927452750060558405091621343214322060881661465632554703454772755980140215637391263769467967610894185393203803261030294847859422841244845074345534358698776356333392555105525535024605036447170028249740815447039615042180258613878903813018469276467374775420988583178082641726829208373114593222877023552041364793005746706203444441722873070627616231948436961724722135486896865902729858658804290419924951552814174845147022779726815105851584722190321747853785985150418988783735861735993398633275681890987676082379211770305525241558130767560021146720377250597472225118090888403308772975473955281853607654625835787024074159557973106451397554177351579125573230341444077605103139049627903192101138557932299716015074946726429110202192702586887475387524308138660442400412999543720470346528282323345846008643360002479628674370907577178723483683051821508487117412322570838758714820323538487709596067747954532455414283075940638096654655954099149823948307870111646216245051600940394787368965366098239704307163093001472776884421218601359432315840577553616686838966278961247573343922817404669440061584683423089819104688531071666702830865311027743563130325304789706862895179686337709971501411482042968573245882448241055965562473918344431545061130021429182944970993792024347675202206378718924536088746677397752093849095283925718963830950954033033644838705923924857268567635737054819243516559389108902224264107507808965321379949310445181416480981393567372243319329623231189708445442728968505498471840669153230715902117521762063198291002683974654629575963381445096793754380414861612719069158242342276025743807683472880330386181963575876275723065924764564600304681006545724267945902102933506161146710518455815315433271199775032749324399177230942079985675202911085066093724220062562458172578958625300919749067575380675289651904409538633310502605587295840938874485879765743654375827351869134504679713712201535983463949318384988792693161472333596161207471935093089820126199124029317615002289379187028340823013322482508767810703695633866757866314771889195448899404119215513159098696227554093534647351359428445647019154198770303615680861829857324465810899995704672560875731092043071733367114976349009654056588300130575192590760454574001969652859567032050883365600741593840530893669565671828830791060478037872512712065221857735826398893287033193514582347187374951473745522605673177187334694295695100457578618349330227958264220036767089303418442095492288211979071134025754800944832257167117253475035705819500098185669015603400159784647635361770811346172614385185917583136299442266166424520246604873002434364606469269271424744710598364981418617509622277438854587031874548269913648182445360618083456366514869546827566510683297280733600978479513484960177359499737611088367437266035586790363356015409912972531177267854483854584077903985334476286212531848764152962196858697159551907376291562188588585184247504099678323467739856247725312784732603566506998907018949848563695991708833397343405936397873208161639359498122766212926328905688722810638048665120122831854489351178878663163165684674288452042523255884627226829115900491878748048321991742768965036480467338848134992232788494724086931243486176235772924966490429824085750177192981467573743809249823384699333229191349411361606961503104022569083488965715619359584196989837908509656630793902903738799527468083111725783777493147903921577945688609335780899895114584197074769611395492881124595753034891604241313311619310543678673057636297731657695180388727577920003731793948787837893271895893268669125856642744910923964658934443771497107157919734454843076542256817651826634997117036995616609920790298177482418757618752558740233454141022355928091689471432313143472261468985654563056333885232554372353812848700257010718479593929288560929293333041790665793350659396456433728623737384165960744776686089381686051721027345197951740095915450219257124839583348988700983376389169092779912469935287839682046353994879577133282047319401186936375667142407777757436656890177414494948157853179312432382278282753354277911098478148091554659407265594027344725332779756246997778891870871175936976880203358456812549538447144079118693183431420080180717747658931993034156772836082032737660645623337510199220817199612525461043647039848645958773219198354237673787140795160236413950236730324025132957291166689224138054958754210956415531312082321818768884476083508651086772767037762802907712656202552142014228485919129111675819694555731627897322839826643200968917966679830599449030890074469837397715283675770242057169094892967245440206850656803316981116831518485737613027683167937729868096238404970984426665842106912789166970318223173156092777742022011064317504631421416739922910364151258353207467270295369609532178102081817389537262397718815847720827077076572638983107980688368107012016221596770179411338211309666383107827634158135810922151502072746681203670297081945025145108135268802125116449111579140358047636151637908797985629482532646284803614649047888464951536768891661766551311341243301014118696445308839655738253267032602916976957687642095487837359456332307455571669439093312059041371917063102344299819226075688192266452522062416392579232714644969053526090512576005963956504118360621377931166911302412390259028229675291324294282918535312649521484437941997981107070364361068217065438260101645619809110776150423002546839534460037713569899106142093896193477655135881838779758417471751117047678445074804430108158862026945988457376119620446796985090366438287914506255171011868907392212089330508397984925047637106531609837688516917379965465601429452993875454756864626695530470071675292829351616716980288982840627756517806168070539520771011157056549632778075992479593448928614019416972413275833121253768160358119418366611517403814684855929170420880566699109067198321058083754653366287850118983447290645028739277635382671191077882574369507987436251285681601459935330449649144950535551388451019507619498708695188353285633706151775332185200874985746102374934587931556139471572259856069934084956852696666318651944571325764514205691950349571579900839187929676016760722191671941896644280863260282459354708203694562912337674741606729430025537728136903814162100625815537844591889702487333297263272337320660099411705759786497344924705882916963763840569622769777587766363387155645364861439363803132678984622001662569682788880421340114388527696154299422379764887120676103178200361693451967049857692008920514326552142105132004488165436595045105928417076674288015957129161352429826254680261118080388555632870609469653223734901976737805802696198987481417562193432299302357806618866362028009321350979547038481734417230187715021720029245046739564799946055954907695008202641901121289982882513302891925641116745393991221751711407916434573224356043254184139019657975044034831389574345556564930493357042814629062190646644678928959804920032258587291225536729993290451930436762076066118191575391488335197216920192005022741925530929186725544946164547639580288367467165179404876083401356501529853771625882736570397271472081089628354572946148914777859063888706788909161555234276251228625921915934430039872562046114660058149959066798714015759395290211912668342379381500674500256463292321735143394852491077104884218122881360481056357775299960945621966711345710678390094817186398775194823438149642895532245909336625789886830304669382963176467748257352260444734997910202518856687016793841932106555462161976247103383210895171954783731046214454463550282774809321707639098454522476474671343020653866582131830152179336328544863116631230927125698589376252294678091601843816701575271073821535065169198000824661943617118032262653894547113997204543212328083718612427582614982360380222207657906348850387494282015730779608589078798625196748093326980035184384611824355356578058383175577553635684844505719343865583089303292568922974441435218077363769523365139430424706980989621546162195231207861330203708763924236286039469384727891952732727959439744647377390322487516495141057605160054352052861816270639693411600978777506178739666931700154007476862276492192775622122399878649844279937124902496099324226116448951709813124731641413022056409872687310807397921214156997690654069093249928418109172848839025961528217845438499238646515921368533630145873588276604789374010048592479424601981184090790370175344048584750292863114994366042410996073673443906086707033063408945266495111056071330283898986350325117617806855071584221098242002841023469997179814742641562656982071549574529121591875341927829579862051541945465537161186228295702228078439075110743615412364213562037305649960883365473533812816157599313845594848949052851093703655548750853600187023410727571908114242307812424432459103475322131706761791473415033678409925456421585585215909551615495067715222744577028546778118155408928360425371273246951478094360389553977329293088761395175840392759766219992296525065835091513175833274033360532571874477444237149601141773177238647540799855438527319616340044286652869767519985639033687872869514457554607514833319378713363351479471235175596989524260678529270273907289255850737106161912614732117840515839024486483573310152909340151629421712664427057849120878479042719536192161768521094441005937000114212057671370179245602839122582127198689355640701898134885029743585734003315954078349885271484234246659564002199456512000024228534716820230380006264894962007012296756901319433723380065066870602655940548587749404627921884561305925521601444966793418219458877445644433879820971846573444462367303360425457400130443735636411027227992878161329371431438121063504242006060502132448853695917644923674491759453939970635876779712368029049640764323863775803606872285621686004705423343089749976566251391037694400998371203056821387032934918417681112433395554980517292429747486608955926018140910685572440852144268197145669408122522706636092146624250560209818640740354867002156653264308856380617954344044531677477630780778294167051313075638658603347508007886257372898546511031470875959715670691487549050762204897119396260464171860760652619041539732429967338210566507790174922774782920307224488718741770145855870969867792429785992824369184750778639373135090593870670787849149211429892409060360775065816219490764300132502169574305257238205005984613048039083604416389852943717723315046075261408571624760388312561202906344183627500641476251575787135990939782321400972900850739728745937421626719500845884116771847310257321178114014061801392378976882132601988057209471030829023892759498463358281949255857678368098325648793924573140811175995430652317664154078723667239910649302999239695802619327504501623372302210154514750203510085284696193824993398442883470329776365126626736749966700032049201794031645205005768228823575720878828189242526859715140702006806170439988498778814387981905839862806055019437224315864312777957714621779799781843555741950492453160407409781817585547930343306788708355507441156884524168328989427413121356423912381956369000025955394106805934052452105026809312886516507798201204382157306519604757582831660412849721611371652390833890416604801399665095027400955048674466183540925873799875311218429080297686334312410879627743320102375559969488467199708232209285293993834604105592071004603024481612589986425290063149813424983773540197491604390768834175180253642146698121628184161331764513805734607337737698592885447539415991533864283781951522229537918741528907506149843584511447785301380112631552022788350617992031962940535651913629463249666800079393369558948651290975317857798918952316713231749376060798766875754110762378360668587829764789886380732537846739803619914443843141352840427047716517705103051545066092600898932937255929273393882963052660152137188984351020758904058850584327917098647467080162151298139651636598569244961046872736187425370372594320738698614475783824330464098340309882165342636675875112463035070173082877727530602659989776916481843698108311312150155095638495652580736225269265957788103385336844685859541386272177973595936525330727202258653371495184453808238539765839557652241799325692662138227044881857942792255836374463291910432808069541746867867005013633008289668606164460554115582070712656586782948085309883533345797448132963271520239758391501243414682905711939823934989074421215346422664436333824512013605234687022407053644699087278640357762941421981130090706379001258032975867624820991561632172358705705295942612230008389720056361203606300094223731937598587845778522831961720719058139065302741229010644326942673787881173933845925909214987852498334150081100004695952202528301011793204358199845689958758022023095438645059047647774721618520573209723892798297137518656929088048751852232841791303062493498036756681206738190908187342661812238236186482573158489345056021525068093638650825098755105827512751419016322350332943287640175516642248032914059164301390047367613018285471074580472306607795151102696224818172365302526138223377891596210047800301909105040277450399117138237924824805092449254596634413171704796169449101593499758541871713624155076431113949887739221051602830332971971695850058317735944088629057867477219591339198692023719777951661360230342714671611680132940938097156514097569981846971519308321234121592995800087555360313634242129345309438333196825947364241834043517755970972459454105869122947181598598624806227231245935010674520071142435490943762854474698136614558388681410416401942696052071881463912009571602867916984209375912871795707697698271788511717669776833996314625352141439726367623370771450742904209390539392654358945386530630725184167003812867556375255728295329284938903456938319554249182725939088082704655181905240129370694018101388831065592007554617935232566149355698985828164632238655127552864217278159743628172763844417637616437301569919802440829865570631207775805806827612978241215047150041375872228875711447138730550469773121264455203446869880468043749079959203579875827355589504516100574193150881483439179372981158767777877302797597040028607764470626791703977635816327107361210588518698850979966801276077378487126565669650879792121025699179661183982193075036906406644827905110446423062375136404533933522697261446714221747953273435432952594794314665325681410162894930653668280530919574083875341487247880885562237999897315691024163134682992782017161752285971713518366200133923577672786753645954867598757501707078163553789130701538286025289373451147498941867436645234996055408861302147935582970757259295961792175576674122160008937443017608296285134927715979728638152223066795458628616835196315529166057828080678498270737866925106154936214159311563018885051754400636579270233882942463087406310505873073367268394741009534637553113065091027915766498745285122089036934201592027073261985897151159252687902821311843410258190546995726695769152171495479093698633610743651428160166747055622717238461489594721118574530601813515756011566832360735386593223994185314004244957629368873621473160866601680118105886171953146078464205839323998179417821044325717777081309705531293219683162674074139301621666613133732352989691446270752559057590224162075262454028622294311713441952421125257222925222191416999965005005096217585822840186459179142906034847980792002527636776033658911442062004362660222904630318548970845543064969165135076661932428855769069465104303738545303841582749650683345884809128608860741005582185003566648195760625353513096763471395609665515856301473998558246466978395739461177228829751368203579542140525916873139141427583434263849197306772721973795010213321923831173837048174425284517613935899515106324384135101308650883589358662398255735063077651653458110744699893567580361486037783870321743946508590957091674806761543747333149452357173700496851223255681195392801214000635904619250419432827311505777192802385136243264092572370453295721688346383354050777219883285962013944911099198533883072127469901077065778608242779253209801941580283593504022807322941784830480077829405315469821251791125816613121762759130993790890696429503027825609136834508095810281984166240931063941461099776580071130069618017395295715795468381229212798465377790117029431937393358670945864793654547269140030358288499880560233305508154144207486556156275849855783712051475589169364107406684616395141033336361414865567453886863615405927240462654023356761054575850234016062322085592744459192169072509655091931376707482574722159674359032966340417994292557184438831651153096719632596373978044465012281964680730547218230405920641048001773908390031215295883653852179901226781634125365012646417387935148315039853258498797272836743363901954596553060168142766004182984001628179107994853347986970191665536312881363682935098980155972731174079942262733946510862810428929799105237844349308918086157805822365639054595503560485003666895635813133404624097538113896855361253952665164221994736593785321602703684027417739670017977456661927910712963969648665308220849372245255708725709724715618857003202981933081026243278755057246537458657653248564185233260474850341554066434116101745895814995073745122640111031302506148101239581537720607125462801447910714483698440907991117519100421429351005390165037812941754765567349814440015832723209019610303024908178255937441677563610380559494182487694016181062924200012553672255705999110123047185109947021949762799575507714771340977617514778467653895706869847170056924533078318913580029711583109423814469462695659022803397376583840804721956383339833410334768546689660746750966445183768527660499041644160156743604171760106995895624978204198512492830487460141976767689787117639286983865455510578233857286955926402327046437797804664180796213981210384002469344707615619713938494318706830556121663922257532437450609668635164705427946511188855711836276365582858997226885621200192745475584848735801782696032019984599907244794310059574280825996458070629017389436045422292619900782642955723279511435407027090811751130252577386699718926466033134403152368425638295503722424682739246389739796317287776662401566437148064448803184617578938873145151838461180476577952661568332172422576696095269880286898429812991976974655039224910405281178112349781219645465507262011048848339002590301065537259939812694654704551567394548416117113463096558173446367119000740238225241440667708641328106361812115143160535220322358252855777215713407292462557306850357308008799994406443573611075312482429381451012757731850275343196924276410117611824226130109649814695570483122178104017059702650482380495107360067887533777828561792051140224573591593115780895151976220851377880013791057229227734025547328637720964943810602117587228304996774401978955861639897185105556937499678810434892187287576863079861341693075575207565285709593983275956102759819680096829176902278826843773882672808029956532809935193658407715416468855892210443261128861149436250184941175656707160053554858615646292592901437406522688374283626018836978250418699271820224929377433042288557522861956483668402414669369318891937396114079659083231232981823399954822663207934584748170547080842879180974493615468327817961662652944058669515861609511842348277977163569738743822600737520560677006449857464461511855784720016214857601135540015414636981724482201026707871421300143037625712384070216389022624100412948244024359969408470438858513454108144408613469599098051948848417477755714446807864341509702437978707925726410262032154763016386281960379849073108633840233993347963088567521901781890593701358942223642147828817287194538064091324711601131074758348444758240848381544705886056785196024331083259031910781963972244887829451567645451816998222587925732889403430201621606344044580837870434000109777997070802976242174769235663743184586930572341923860264719229324222876911051028516284868414273631475237808301465690516158685880574961903149126473577045536278816890236499754474475051705808565683810587218770489785370031037299973635716084570934524089128976809829763875470703954936673179351602467506923207186592621786673396717195014731595402673570511058868054161256177553603845675540163285971904357977587991143766133005185914481162007948701912066180624261362191667695759395430479160830754376654279590274102759648923075826731047093435612642530455236678129936054345886171508426537981738449203335607970261061358351067455009472339247090188154018639244477144458038638529665804543163731206669314117654749586736271115927624871035981408483795685873875244646021830156970974536271068030743480039946229454595550150387364442315707636113714733591807107955423663779769588856050916633202053318506232649994878627764444296875545566007619830224542808303172146786535488750458882327047473908526385893459005022240240890883393358427007952644389752395346020522077919053632290146157602159337464694196441823226852359245609169449437970991012541116346521854964236607473251967605471339983938368329477153729358591769050280126997863911639968891603024675358148157872386611576526907004154355727412520499077557180279308105906322350517780984055021670041063767683994652610594014412210325218268495950611228702795239461993199414308963610068210413853148307949351466443498695084640701248288628895527746262401679207877770894220185479167708780476777642702529613425728748742455712544205166019773323834729452707404815609363181067979617240451989309101310250209223078679711565448512429497838314029154355416473902408019370550935509924335627152732877604886327275615558513934558484065609875101078162639697638184032345549364311451070448898993765036892201749402697484651649832186914731563498864571361752933179954090319989275869111226677487862125645049860859882047983702188555471271865167210824309439128383421572058456175721294098959889596674239060825020386686303875810576842835273288440499573079419422578420894392010029780333626365269765425489787659702296224067697506937533888239018500003603859640861329224167287798050181317482321519352030384018196976736020944710625840304224488142636205995672533540708778846320938193890650620430743511947076651847887538743544316075844197254270921586942444812110911501891432527492764371544150066870208981641594457772829776937271248707617171246884589265838986207042380745132825570177997506626242144249210125310626496882594216957355830644003553724338514755881929500389018541316489467287973319819073901822326911129784105700496228588627234845744555116310076208957757007070651192202077689558948946984816646475648981362798673603651548126151279982982106134202920388305672439440888807148422592935313622660242365031668928118108455933325109351471243237844704267721357493477021772536833205709297383875977598484284834130629021612739359085512640253003232691848159705044337674618963620951156113674831196489345466356880363009038092943893460216870957913664760538662022998530643976722359115495597865505091277008171100279283608555389030842367391757483822757716787992722936190986450444590629324853300896817985805894307342829346105533497781177802031942779346547830826055339527635912512950850654938099813950797754599262947403041102878974325423061850351675903334724145998411974489262403959043052000831699433836902918846676947099192454435709976380024598136542670482006783793090320029216929433677832738250375005287626465981437812677371707932145181376110683371279493382182922119031390482856349650183473511216312695320513154815969221928527380153585363226900782582019116193363019676388276259357489256884252780836581419162091917981300702212595361838991896933305859733513120553165609516086782868126989920794512272983445611883665101761694028775439876844723218433378066936910275030396236209971389281562541196510871001996786372798772676687096593808095403412546768444522230444155765756966029907586289463654975957929152737414043873178560031189130082029710676557249760912300509777052598340492822860471768136453661154859528959844693866968133682160544092094331887800363771188287323730784207240912070980635647680908084468172113381039923514680702421809582849030999907953326127786801326563128627837599111119118698204867573534351724548220096820393677691917166157570248405377610734525432836694736544824998028751830878296688929534015187129764344570311064076985244435989752769515809819423419544770903950130617838080416315581831606124347558996734215522285973175978036958251484134309071557073504712931956115032512767082129826019218602709924357194232932384379668940012038403565552530383266626874467265592464452834236364577668135562184523434400811027342736940890377764180576053349523382625227956324155618730968450856782553774115630640769358211249681490891740373449751667589172123237571727615023767863167181314256810638871963031168015614535810384757852732266802292345033145570764490120000429457354579897676132367734831975646000245703021232995189716360322385962013510465972515639827357712377915019764009126662190004511767140495738672408954534788087104228292622181495274191697878632462476309224800966759173958047944062665020469758753991401382023737318872060249267753034057392130746312322484537820034903757633150746537808042603541594387416789153869090034537398171596215327746980253491817150269321801198944295528789418552132899122921001537152773777509725814067224320036365524554544906099752796363770207421617273387662471821558539853843902527124391949087013369767376954182785528141880040474318004149572195417638005913258142409205703113286221603330015189684885387951115783788518248927861112873271754082933359778490213311712232697011890084304607298938996763400194478413336828413908425245411449852344468891392062901041728665616757273769278997033329258291640360318527394596699771032073770424137614813443029051100374837861294901644937372170307167413707811309791293356359842984943608563738724170828371163574394116751043383446655719403451496038100098493195864724587896628150278629559191557383621736482363747600180863354202511049293678961449392684816325823453344715224569370858996704655403487607298800005706644702265970398300678796075267626218185899057305334799812888652342230257006144811192864472752663802966413838716433897185594620057505969190104148379514174360157862624476818543249793250721333726638052261193307005618569820340999052959270464869350584162742784175195635131663095685465984789740455333981301369479199903434134493945908700348886966959006936870999094547235075782052758917090050512065123092988035155380983504857149232454456622577114342461539479562921787011248394893514511759780369917644668190624963822207475665060475489480295261958536158621693010846186963904171339656337331214936691090428995782126806109492908714804480154125600937012803394350363931000201418733376171169017607106924393723312096596940554869796332214794011904052995919219291204541096697323115989084175521862095174942052867136076344682728564635281147157273882433875180952217511304671383888559250122043538554554641111083652165556174694022897282049322072123562130239201583822191757747353950924291610692802255645531416547467771500895171953537028575048423530302080707937149040601551299615672766879812128429113792553040957516283034047558330946779696715675364583672457029065093551843415319223965196163383950656722204895454223987789379060689934512333428426567766726323970090281392292803017938634719191589417211553000820412806895369722659717631054825270763495321277252238534092984196900642256552314358267679663571865309517925809409606097675846454641235674012166123500565965169230878599726493409408367908427890983556828213536530669404595439112716206741162862568829156280139868311791538173225279959861646099099267457152821966005711734715405892678652322527966016553075342588892057604336068875419970035650120446364361275557520338682399932444372488798620118978535442709837987889071456666214703315977246383101197424760163847983894039686684031311316174887133735967258104980928508974271815627082677455152004734227460624391320542921716625450961506813591231068120819202130709855305170663295454885802065880737407151497992326597816289461933857221661658910376294638043449765327712802716430380899659926688124323425560102550840409584074227178518837847740906683622160507430529708517322234617106383615447057069413882698251526051112344796729824107801237076586960373724866717594035255232277760956055478281801385942469271328413719786679530986498149524212218886245889639088974903465731733822352375505296367087323115490116705204787654145433868067319034764153466690958062582563131718225580716225726682466207980393929939821763434715162204542599183983948580524684890266856525998650062722368839396787822637778592105646513942067617434697700014449587965189347992708100724726341727764955593907113185301985346202634489429331293311265032391839312588535870744104178378830230156218169805759305220824648539001103592636344474940458367967206360312980876924752645710102234276780440844491205703283020208737141057274258130193356744391247689516281495265407327342086227582353734560321907554521023631839863693180269243153357738903551993385429472424267667889360897614681788457476151702313844994587416396224650702187651419783775000041237850816871764143932128358954082827343961561148690919947711137646365291090097217670651099365994291986152211176699369657752733035257792092540311802920841024280101969271199128497331355510256580485683696736182434245196622553895637011544843853757967751708770537041620681321766786040822526999601223262479693082347340570858455570942628109295828513453717270915823936522846486585130129174727349586310948922549564621321871721779728819807267228872965826077159127049877629367806511354701180870948437670531842253361627136852608668809776242191956293118074313430382967671184338282393137905226988575442852377712516441793345514685110961767693335882340859639646152524684777564088366720424397610711321366644164211632794284023197566857590454041860727353329822426598984453511239675679101212303638603733537490326488696212685309323874273645802483305600849996676388833936892976858279969693964587677396873844795152831684852237132347757292456392814912896319725828260999735563421713795403268606616804600403426159764545161723536002880846301879285356813305670752527978826155700416085695108107084570786085800188919134228193454433092349221724504770573575642857747142707955406829024477201147151753345734638755776102349094864995523996862949952428739175995291894631140659283852616566886152887378546883673242689396160200901493397882525657008865094692473139554715076057719094211110857478440454764524060654536055728507842533184064127938686694094396364388373013785939931892804576881790317371537128789021280438540344932437571543476434959687611757588707002781788564938634853185721019849949555518500137961026910451875012751164849064941533638880047352764249633887260938304019354595047749216828097862736040043106675082268479704057367325438808958431697401092133361247044743201976890920510640763349553018740886010878290607477354413608363068972092753819059268295480571580275009599492925041951889611686780848287305402775412725889189896873270218139512837223371864894981192396266157674126569366308681120448269258480669893019227120633574066532040831685872466404388192223887302930310353889743456683868237032624170944944972403166647709811552947555768965428547640082949683134971316079306020781069579995650936982294580092846072624615861299324562717295993693584860549374037173141603568363512573251726969439841613444275543126641714941303682052766343185316107737707782507878936921880844150579077726991076468105808970834875885891147560122000633165129846219089439994697680737780448045495977934479839187414227632090305016514331601464546627540493444921058198297459146590367831204297670342812200356755017776400803433625649932046727794027632358503706639493919926360724635131947029258700210291347286359717113622902330788334381771886671242488775087040172390933922174386015592800762692080676026076857884938317726582138420590515987406162389003057438655422393151080471484995891490242497711771000369757131626915289707579976769692538556198740040929134417070504883494075448573500198052750038072636336594414719813221053076364482469566165501808474257782175799629333133686598971738070620362524459910604815742131205785543881688626194161588525221526756730968828190442076731114308031408145168289993854845772730717207137316397141571514429124590491807501686652359631086871846440410472085701891876567260119960725017565848568119928222700127388863615738453661069283075200615110391944063639919174598394705847130623128369946859981745550120758325025189134231618262213314893077465653152321829534676172240740776657716434504788175291549336876823488651641077059695634725149831992721809131178598130143615497445702381362233169491371815988794401171648728850895294952607316184001869922147864203347525840700913855336986212598397164552038098435202504716664323051635641886872844135665170613870057975498847872736307948375778943879488496464448361269514265941687205688279392110361636813171675677246525027617516487526237551283589466839279538876615591471167129025675171860775271442945043173819794863362336945902812468582442664562455472839183989903300153709680265093644519173528003047827873833978431926434853338632354063081283360048959520156597148722656062480808090186136521063898331725641262891468116331706477709652393869889235628460711342953391881909548407455366794423790326296075918053056468206751949112392667160943684204910768287246000388558245844403377829212641129809530943595482426189722306960969715772306507753753937921463805680651927964460116939077364953992836542054468793083737601705898679288231816582828870193807060645704175357888913343935487041007127520789300320909365481719495519438296395264643880143280952890572263421354061254279062341521357893633417023945117368993896629585279527722786534337352102026551502491986155054157040846211301584995658311156534247234587594420970316380497069557033009482159537361574021202220072677691592816308040998306308279223975788626960736393352768742490317571773542016560237089683766111164223655080194140382321329481038060849499325255086006249852445001299038422411844982776949282874061222532796439809352518002525706653105199793564757342671907503309690077953469202633981596948840072880991437433344134891529622741370481009761032092775600596584225621411066971977793170741803855617017558666850186408621549298004741897792536467294428559275324896579368418653664862970923375345860349264565741129972332117661148433196850945312637169293685570077539579054350194645159519189255066161359105136800563437469001243467088192905249649554041497797187259491019161585664849491127294170886789136545277204445394078752644713798552672252152827669075097365425621049844137822364333462582502480009330792712199970838555622107035914735456431161112334156946335519560952866062561918118284008673337835478238534642713153200645677445897563331058818369100610732395401704646164206716725921780314897664552340940608693174147460901897094122195216955788896488509481647132538618274479055366835488349693514689401676264191451336907581516406775829698103910018250868096770462808317320346972434559468242236314059992096672052076372166466683539728138607703035492555874446854424401910448841935029582718591696607445305313432397013846871569208802893556733722499825438591398715985035744547019032517582200005178007714037630117776403343422990559898535074330645873303519407181322570150839378051202409344832988773483396521884570307809521797337242689657380054394537611054796137547840820219970914615297974693731988173594732299501518758069417666794756880087353598368974893287249850312639299309244807540427725083396701364485965199461627892953558845463184813621363807541568083028209426765241318237229894924714388549162176333582208557302648563201033983822035242047549713924960429043159768244370509652411846336246838467354706664863406539092015721465123279092214010946050365827353742160252781050975213599658460133671341195006193589421622723325864256336285847584568373582491072489965000395645894908218824875907637734748829018898556952357309557561103854117754745562562417820694427374385362661487646393702809621264364700492298568551288675546003971799964987891247992848804716440931041857408435463230434571900268897798897065409243667274064299339424107952995364158956596188179074369056070030655120356657236873148363294798404462709328261254489318547517618786692933008615036862146706206596955193558374675126102646639391385578542373571110428162636088761273239915290927178389544034487194051632429398697136104798964511495873835012662355894224465699874129301834227413923833924209432239114520213428997864124105836428855788736539357885309415190626332121769464697073250174704497726012785895811161329794952904313250033256023995394212145503297524034453583004196689270156392085121710521755131799449780191367514239354078810289209467411403496603341231031713033143345852329381318393887216235978963498215459117136290022713545526510057048109827719496070519767062072223853442318184751842576311612740433054953119870143986428117119414055229362562829688617179000334412521123921512995282779973199099952678994761065028324376168979231724325332965539943260161019632057770938388017790941927370127201912426573165836065171620571303929125276482056259950021609730897513068244511725728240102448980059928733851253535676046237281045926850914756753510699447112425881827939525314638242279894040311479862359185256129299466342217894416585018467631487123250622012006264902716039522062131594853695037472479802452832136922554200918756102332820048016241436408040743596990149097959021653472996980965396816297151977883174450628947952117478480112568582561791797103999534111237145787942069485034026913349758531172992437112610600546419445364984901888909567488788347528208319908809508386062982741799905021226874392645138878153457190416607202263436625981034679853419771025911047313707849484968388916028719543831320154163840068073570777356471540019392721103490437863392944617510833137932619965999406557349158712318605184526910681882441300346567095704515767415570422950030156270519752804387793778428309636034043739936876228048330582851174427190578451567731214359874514237390392471318395196315333132397666900998087460372696527006056481960689903700470960025083932314352561623212771498381528400434541848935952110403016891949756699770625532701127634245433620843188220966453076584322322927937207136511280587623253217080992947248383957910596299329912480299357118158844877381079508493497825409590521932388674781907989716488040562373033284630961078857610446746201462325923301983838480798621630620712445595180809661993160863802839222623211351691532674343355954812930646466349758858614894547500146947600106522712229266623797649558806973744017164261680742274679146031710408752960382086457838211563451575183433229749071777111081985321674496746242030174566616834042826690752391013006024827384537307657124923211053203471906782447311634634145766371917350587302653056005750982157962926261551202208640737559060628739019006190974945450082442026966165800977707094122667777769353259299369269833354257226523947317318624649296069136464257920758505992303086900449054979542532475769113422683012665257026336701260989033375926125302132506347004101834279267958122413807329478764765855293084790976675209795100523654100090157631810458698344945618280342910164132152374289603978812617456865295604666857383158916598829111186114149369928635561367794347082929770902111889262631056065326127729593879081116439860177629860713141819513773071294519475016742393788328507192300614407665290316482164028235350258512245663734323322890797893324208386814076889995204710079302364027884361451454052885174659312288598047126030320598379266339784355481106615194855123413647184523533549132573611419815748448465111558721771571366485759996542991828463005494460595364629410696433158255759670783714620451914172906277537345480848324030472681104178907563745118684030264061808159352393840765473873490355265793932264322110428091097551113892174401097508067685699725502121208904799736266111772552600277780447791642393637156545035838500313210018137342789033731502537755188414223952040660446009956042670554651058842960246532933586736963824788659134462810202713901914775886354631971559440387455222248938207841352147443235295378810424105336181300935847458400496512035269036875043941157261032935935318479483030194858125360210183846757893105671305778160048057151909110931928436942515455024122437517521468722068714724134616678046472994510187337790846036945451462216368914162060855803660025484374417832620345538117806224644641597569048714113419573959503948158939954651911913170330807124503474483609364143978477930154534182913129757521351204746924403090437754424371532868989254716675505263620692747938453784912259113597603298792194902619417308873932035180957295631515930072911611017588024440988592086768810470351111065241319474712069923467584043854452734536736895815251444062145773658340335676660262747821961780326379253410309453497494471505490232406771299234479355072246033687422072088254762125941311801121347331712704359152765782010610510179119349247774114592001343406702937133060651569680502224766814478761181032780938219392735776758867081832672523223330135676744459491980870059978759388042856792961318946046147673500398346406446639501878925612734136696351228950402068898106239799839003959965712496464108635831675628507601998471416005838505448403739590626709112771084326150361349533089267041906965214190242000637696712681642715421337423971867945505366469046580216038346526454199211478847022278093645348183840846569103085416258754255477178494415184118295614525530086657877964105712169676682925257142106479844070268326007457041050716857966771380135468197392678918648167192736197388501037366678945138454554922641077310203305933191398612602039428749252670056230855448158663741642932156502932565884564111290162760919259315553888091717128383860778840529652127069274383197221530006544583025866785529012735618441605120655904422818540965029168105326384319405776001990806790203653998014066488662242173217127307047233911293461989843453339893035060981301183404054271096805016282803400632235729080225204091261634508465062490424318397873213674192511186561202906373096101110703198716517632151194949703064042337668438830570371302083844213848749042751846205830448144491484579197053628584350226425962591869546554361439498607006901794370841462072567182573837427710019832045083543461248827588882162541169643977622085641635625753090403662926755520442871537520338638189961839968388095648349622610835399531116426611261028012608003909095824994785781210069035001376155977560371637070620023248505163829377718167141625539487077092564954315351938288267355182625804155390308334365584780255088176200892904400109826370141323232363735529989688337883938540635220274750913189299492518375107612099188845402977811428102341274882881573979307108009169215897043304078214992729022063831004084498826592466073012882793039889389335113349205453560292609159683936957716066627516401104363496151903419232762476358597097874428746835072541766280143588985287206696192658514643580806817948081178121599530363670478288876429185424978903111842373627324077906391690521283520736510893448775075026631997416524568377159615864122854204763088521816029626582509359185354659288579230737367842324533223296145387565716641597409242492374472194913294444098494352383989572995262277419049227827517779540443851562072833774612337398403113941354026322850544803079476010132784843384644868931881955842186902360028227013111330987683804342626566826144457199566423729825166221626610692406424358498711598571185268377669334742703840335946183182165154294679189214802444566137446122191881019103139116535294478251807590884632529979600638171849970575343058529264678993700099637842877454449306239994085632954654310693992486697670229495430327789241310498744673726527944146221077570807191216892386094560242666783218048070937319466797344242613017487624989257778163598944089876053793291899155419504894131458881029664186975768683581425102625338691548447097708409538650146983351990093546446392745222388671983767189071098572914470318563433790518024343923044173564935612137150502884523088515189385246734798224281200136013032751429566976871420828792386423147967366977897804763131571937546723136300942372628960324380700392763040249176649796779432452836032991506119451310289637676004256002057582442784852521813321076785112941525589740810895163576738346818588617357994612072961760669711291044900874837611353067956998133730059749709428300038809445218795828133539389610603439773148865455931304613594253070471420320464275187084019705446182333095443304689987042106753223636692851848563490483601235861858519924597293356325201251550274418014235896438470021523084762380520366800815024811514005562744443709427314142498663969089923307001383333133309263586540942863559822974396033540420438279447980239091516663663118145430515981083822518292192104044506648535128214594591123982684630092220958059001660843233899740414485200985615891401759556767313079181437606523158155737997277960745639750667726168547401800759748371078353848802519101896417548429488324130259729337267323360930585396682360876110172953831655701585367614041111970826648473662971778467563211358552200169548836535247599182465096532524839917376941257078730404999166631764354829513197900954420485872151190488749412568904006090965947343782557151571970782157651583267612468163333118979800929952402881524011933263474752336143426763295992243179027470516038999329165635881888642806350232861147783415878244798602758074004931716445050695350213510788672596866201741628604223783208146974998456638659917890078686525867414612605010127218722130007408417845271096463177251331975130330364640367518474943538572284465465992087799388158545875390817280653974180107934232836091813748030060702107425956772497900571227213761177256905515017916803671902448014263163631833243065328054794351233852265529260603361905514320744744478443050903837480451077481903517704053708468445907465345272652101382458832957050719598076577466501507782945773548990165708355036409147209576524453360085747754327686055049181767223862898376693330042286927447635827306540518320986044816159761941591007417569398171559355831235761248934350344580625463323096915072370776553337988056950542194923982836856899509355428017847441347022300161588179820841375981043355704263777475489791298750318112470079290832296167612996486670433150731799921664988524340983472761794260001415732653901615890843935993677944329819555431989536172292946607501845508561740993394999681215848204231225942723949889376178141627000492226568796845040059325757517989657924460652550342537521658983502920106843507099867306467423035442596773095228356466428436406845084529638669183841383910416882506060048045576118950894961135274039577625530747075618925938497175973332995081393559232381050396228532478541553571636722338041606206480754585446258229575562861418570713635742570633513648398578195373801986202421817024836479561856273170296968432031928944106671750798064535864459092778121373770850786987678665191241015042442877229860446707030498634398216543500909953801506896721610733845433845877813400537112730151425900497680315685005452343118833360385897715952139279258371186008519418030403320280291887019903276914215258941329452852566828397491590659073939975807043251940529567090721898150798615335965574921139951987790075573635126992823051158155518638367726981775530613541776807071053806108018804900736271740703058069973383652464389301963306561525243688138961525252777448603671929560211086814448330477358382632945966571635117035433180536414689575323628306895081517279661465611090299092985050558579320565801518045755525147542379708879911008717151995218168101502844897996524664382430835450741546037887767340942357067916754739601312863325994121262010441307259126852603332437618319336020377075610358874209767787687233467881704477262679470419988129008522397967196450142889654581339597396016800323082537843567137638652437674103228413522169099151466589305675706309648395316861446956706962133560443160749368435360929526756775639578336002254418691886791802357521537086111145047593418321118275207514900890797430446332723638524868300321331762786494807577701782682154233189896706596193807708750961446408738669852768702661420704265134589848404457180954385404997180871210959421448497891128854002936165876660794163126369298618136954426101677893865094757774659154236858626387826662070891416833572057096453003082773552660270503849561843963443534723771933922715552912617409056093726746046592088449022479845153065030196013375656433458523809669741309750803490216358854065012548332570412212881225192426147453311032186248547213435368166594130466526032101911853878135855513765800751328190087085899529264274102923775232243652095243412832898013655005045344115160384758365010762555585543012165562815295048174870356196430224184526003937842794925535866894004100747506785955240548369381258639327393376978056391695626805352361838077203658608194183298941063446645829161511769107117361352024529673601728474821726519773282246511877676425272749314579626790049395067707931274917677184979636316505355446180885792938414471287320244508082164796629072167699745873760111388322901332030068921898234762377874165939587489319311899329092954636165838019326711646435835515459433656159803936095836302408570030519232220322131173580521379277179162466398656815166111445714227616873703513041643636137753383628993859524047864759978903477425589845851363683977090074039443077939741097611256724783881411449309541985547212787501703752362731102880428235261461725626572740765999090317807697173409162263637215716990455483211386122298892890313332943846536172808779946251664513366561067564590786836438828194808223272170887261463494735473106791560161094175959294379977899392993810817640469778384829053549530652825766817842702061086438819663911552320436737354551840679050457749875969809487570729683769341805907068791816309148182384621714184998690600705508137165717864920165304515230912140796107486434393634194766541327430472856373779546421298822188591069726808778439440206558894306222118837687297872568706834084717888834555491881076202080432491444902137469069337277332315660564969480368774832724155478884452140002006260294521184054996961208906282964206151358017500003208593986417814917577540956613697272296613276270354210244041707210201643894211630400234575135769511200169817768377472610026384910381560886915632166784447597298700818517340815916832825123153836585688790131035773830173830627582533254620008749057539533865723243967290906447234230560834164081413791787441297650962930907579510265662452950067605761251869786048015777193602195748033543012113982541531363478047431349514427371384178884999097493714796449576303146710306529230695334318031050002455632398280942553116575302250309198241124534877997034590280967072450904282449717263238868804148415620447491612068869567538944069487503064414959605168133897164697488732268834036482846852485407563123194423559559141700657704856349114214819796868248449581034390838257067558753206428654326975701754773310330489204821020564360212056296099084497793488790141683976191525611776889516725543105268509922448573172024183933263949623462230012794822737470424280453486380945214307313923157382524614474482857419487213503464786767908492854426960534995509684917153957131088860892135933226892663888877874086161672947376430406480624501503444901018740846456695130148770086472559428431246561159572815281150307705454589960523253541795099376803011310362188839132232611416539093829220096935827189745500611455307140446616418870522974489384126884608569151266241652973912475717407029204389308185300061262198526882828187608124538371106466394968827030762447485396416139970988347103715843972995719454054814928930287400262156976748094682158088615113154903240996803548089648026596009420594017989617693062761581505518178840995958580829206202951961806323488638727374957366942918261001719242325712908168000760754306546414188751499636839310445681467486624308671482739119543955104189410138819035909614911868193500748793380934862170306291842344423111463415365009122730087038212381833216023933693821411576519917582837115763736166199645699346210462897904183748637207167673482145286666005903023250503730750098591710736775079371488743688033425186752215583834920985340710473554767506815997257113828766051928587766193446453118181372041926513698652559663317118960480702126046140503803542010726780405998053560601042163197416334463451198373966092404103722525411680503783716436184191678838631014539266483406747604194523769769952773372209595412328761087303958513465875661815070310958337039567056507781031043920341231369989983832472938578404511770527382734506270709435471482154426879873474013527251243095231983126327011833453866842368079199498445787422742590557905649508899741909112964734260928097326193777384901885915240622555393969444974493762571362817699859650247698025470947647596846660646238027769507431332270423340062488037448020342993699288634208887827973199993222634277990605962062535903763151238567032920190486373326117075633660295576441545572921893990697993794459877660779214574250520993634834273486069610356570212275809014904823054605245364361161190083797457509397812517263647497899126092643949068253196121230377740109793379890219089858423096229304390231124022249165049041479580708842228951678581342150931849735983925477646935185782388159740725807033765639152608766688687676842839768832213000242579958663371691392610411942042521731772290017598795617601323922383095028418815585761116339320772512505621103621848808664056586372367480502205696675505713718135713937330998895571710062253561347423027916168102157739202688319761783239934071116970656703366134708779660287287200738122753706307496083102132716215410388587237451118690533522128730352739386644632200107287180282694163475245920850312336848159755612749445881768959218986105940283205133893036249273586417696579714303556112801577492389604338780388396091721373257817868576389040507595700208682065618045810549672828713755157338009242629001070104126359473349707463585687718770206331621539629449838473564122297132423197373587195726519450188920069517918379558737723379592059504100037754996743495960647790568991812922653941887506333923399736038535933630716161946405912772217006931216952634032696190527840580688721271513701433902451629033851948202199692430217335112346533194465845767944206962881182767453191838349500830226501025898462958121076724386912318504881322694187422669597211263953579051517036266816158375295890679522198738300520483999822463040167591199877102052775841887984972387873969312233041919162743405364286284307381242094497228224516477392609100164622851790164186749084948402840883922073741149940081286560620761444832683240361264784945660436535036622074411084617027767974869169459211220063985478118578171103885634896730387790527992167032858779843359857301378323926993789378144563975979352604667562141686301706793885381662188980533885486574126745552278555200026553505050176360307986882085911193045759955676580269287903881571862684307744206401185240165410351266977336470259565938646624488680616816270696719507944267616462113949218350682401015511280202542864691283386842491717562147645952245524691407050775045261096703343523864154167330905592279916449769671839477257094217036020622131607410645709182817776018161372831167439888368643261261477951478852035265206779826691901677196797263642798903277257660191218302292886048951675502567624311281425420267019809010868496510151416227241131405557804957776246277933240252176187697613581409170746318144418270311753419414223719300570029909593639614326684055854465465440095338319525568151266371167135639814831326629358872527015657517459988849801932073714757007566380921569991165243728089137871320313486698865134413480053886317124973223957148451463338680796451270856189276137515218723743116851819388529550019011787412453661898074838340181298942989025674525490488982759536091669644329656674646449042152015783862127896601426056892493457844536588065567663539698379101736633406245443929042839460969179913015704163558663767565691537519803335071051452586675936125595412051355309783413880407596383891563972084421033185226549564933114327382804358227470913224668416512268682373630109958107041253394956899605290414634916038459716273875329893946830999334933612152856945976768335971943070779347660625753924195724060452352407322308021073374383444309856754240138783585999527411112961944727861461725963794270605769507325603214223185082626749935276644224583895794920571412179121659809242239841179314683537733367842056129450693373092303522930841912086968184467321550657083685375151653379414170998535753968001453646997640269118028726784117320434326940359690022759282244186695506445301340653047038280874685250587238758465978199475721894225258045088842724725708138705041377417410331253304494104024084834848690647367546751560765373774212903549436203380667910889463467876097117241813079618221756989516653637468597755097536864983110649655384747448298040745592943904866879282303024980866311735553196053875336462432361270654639653675827733988417846230988909234108893215104111271300428042515679199044752110126481781623713464593035750481742107414908211701481246412431608372028147121029810732506198453112808755451337058187917268267072308530523175168123746592963270047923510394351228487589473124571776558740815104772746944809347244253084434402433300324401941449137545883245753750434189338490072236189066578686848862557987032465183461088794498179729705689308680906884542357978525829640193293935382751217091944541515006987312471354432710315443557875883327847163436634925078124743072360704203147349987046400011855350716229183708618714844704057596437275197676466406485625962705315494853863194150285351290242454725804965017122880242046166064931521986851935376392789217780358688436622464170381390008930057067789385834421469031385235011609361842478522742294968221195530512973895071085228784093859354785495267287454021971979780533439788539242305024822398625108449214213728731442671895946449404358181422685944606324724047129522475037468270056580563564846312607927911305193418259266922013563150004697177290865881980429911707889677981473571663162698287307143115417184117687090264272387033624273228443976659006096633517102447652633441755155238240022268781462506948158716136664474097122768242756306502262430999010519965423522790333883379792034609654832950974484007494696773577644321992895324228706489375770396304843180867607122840042063713566416705323623900251548770197802680630917818345334934888871882877854295448831036068197226240485010919528435687232758794702548551501888347848768875063955739967300547585673146187713792061205823963325032559624307552878431816585325871186846581668215662550132290026167194953367341171603863256920189695869934237446720559955088941613852998251591783373799059196979907507573668326909844008884622992667672070731086480188901317648116271942718709119571133967064705387384947065631587112476883253130898235532347524251285824131166842448545796369893902564049378939162340288371570693930689551103419577272116518217741088564452942653774533167668410926802944948124758269980038447832013597339148595139938716364630976419568166390495782439797980439381860540138618609686757658214654207678996858257288221284519566454623061079288042694665042152748634537850539077350742272960026671245601645526308893083592124599349802594619977492206007304402333752571425425886727534537876829118131769361087572904712304593990257079637278308543436467184007458387902168679348988452911156242557850415243635907336455012388243056241421513333684815793262888559204065468337224857588386403774713827098998790232512441472912665533902244428638780934402599572617822747239449093853479419583867294542033108413768159722661067857845798752585256468748393152910668466843863361224838396634248956080149757910842506090450337047043979782479090501720012850465922342553789094496309459199781150003300039920123709008687234950189546895589889454658375727444820434363772655579475206493191536490179017652460988151614724558680154822163460989272608352510645256046018337263603134091955474689079928885729000996531466623121625458432196645795208028271696028985805289564036437743608150829439627491610747130294780677921709035253031339631060548810188683762367229754234477004187258545922350929349433615718830265356588336773357978347741291764198637478317558631321334620626544180339604779617001487767225045427518573554559318929480312484982161170946176818340077057520359041765279186893377272676368498318294789654608651493593081228059288875534215857372675663701865663598337738675446123212139571849631860634621431847612352529868474194957931542566941100670999616574617341737695267436277920173674713277599381722016354241223323041039737593538798024938870468101169202622994689504873491836270162364780196753808078058924974205895345670943665889442427830911012836648604974340853879585746453396871698726451270748465138693614783436244123547798462841864479064485304883006987481920184810894948614678307802145264239420316624415122120798530425207293702173611243883864428440311739460510780584864048357823440745081029159510910763138503554271831521593693155781289852742381140102502043353092395023134502188233138747961512024528868811417639788461833739310639491860298710539869592911355001809379920061500466879070091461357501740968407539052359370492742330968469158932433453905285647796462687147323524380465711034021776152498672461080131789186303531897112602591974248115040763454063868698807199345418476670443294248718819042974704676585084592104258567899062048539530001227027960722066968465170503282586323817014211085150798029947648854345995175326981373480040652412309012929044150173502086508244711539673013800465631540273475253599371778200420741667578099794495951522436806663748336710728772149511567003940674369069145531070143532900053560444868420424031783584143750610615382507742098959438301237782084201301745086666841248580691725962590369375886809067000895037811216604139805298490172772891052691525133666728218499002178776111828698307191954520158932962576165693209609103368479668659703147773719209350995014869012391868625830620056072259244497707526535477826192472448269659488952277421610711430543687125702114960049920539023639775402483289075152212430996500107100768791751914342760444274786216084123017727544941556356156702939525933572884434742511476341308299254809250766965222975750530511296726164630797139719331491194981971045256814565970531635795594556077823354038395427602308846139416208316483816320812291252439307352106862873963977242506656733841337296138478996497161826902477403076533819234960376055310624168856511334006035277755005366183199525203569985854395429580836977024937281346450763324428882372076697001163670321267118802784593699701377800408324657671724505089995663634161367988314319009854411053146163014789980526641952991390727309109886495576196273876698640240303141753969055075656203203949950254295039245459277191464061434697875996685954627236474094793395863393217113633284679296762517465807218758070167071338880158815091183314963218524327461089151072327747701031406263121383400157894575349849972838757208487270223460070351844406827215947764927807390052760180757261323783423161365200921205620716307644050791838162730844391376726851243938353188666377023680846802589226766741089821605118148120811178080082284443922794815610062034416053060883962910414248818364647951252997710113238080074403584548272301279429168096406953854351586509671096920637938956676285948829889345299287203645034594458043865303152429558272546949967255333474879667836769574495833136511714292749745507814421895415134078214657171929019109818127299863372769282524481448928646267906841564129489733229129670331572861275460233477236745879217789104130281658457359312508263322698200081902516761546660189249818156074460367931833299005509628962685259555295048439664409876022637761305172487217865517701103647373486950278223055937607251773520094916389108160573996594460886153039913268614606119821462948562345273251659812838095469848605639850467929405776867481160025931376586137691749738787779832686781045439297237919272432117582495453790634900851900415883013575503845106064262219911195600614779807653721481360331662094550509279910687866433796752014900950660799768988613790688405774436873885490949028785219515484824821714129409149524581624556669022897037469220085883116638096037054777952399647035450217955319124324212094525793787406173495927413690111893791749943099176019961412457149788237640338266751807139073097028969057033343755293550286929912961961642626609422628658667718126171486818027284571655828229238826723088544897708506744374315606509292555464485534321903289741490359814123053122784171962238996399220231128330074357900626467679154631180479281260871449387265029761809019933614419655185431847808346084803882996075992679610302328453529773450403852429744905352700643392875666695070632510051774969948760825047278735948351835809125642973719237511662239496871899167628547011872925363271345568955713139644900704096124826002200250114343736317267001671304519226715109754485334286678626966823364536680903084890723082228243935417172032463883211734326046353219455542386526102646990033780964806282357073134437103246891510053943893553636579062142004461038383965346357526142435998050724337528380134839724468410038236925283036380681390155258425119651300384466608253464398579640151848612967852786605164963220333971776661740824368662652679962478912442204144658693866249569543177506486234903498876308242828949942480045202317042302655124420732882106495541453095388760814095663506627674890715036101111237747712812818498366917654894408814355272070329571115302336205403638781956444926751834903543378660780509521053781596377094647913436860207467046011678436840874710051429534027089793422290125249590981369488334436533156439400814336864628735921316334185069999414631702287392197927920416266218900169362762772736026985737618602788890582106052075061208145769125971402764225303647687890839984588256820301212480956738345277658162089652235920394694694873681399180946488684112919587136366712525551191511302425339213898761180811891581059555376723046616151233399127686681654168076963875892132540956632617763452249769343321144311573962252449112291838202430698876760857174878281404698835654382668430743157620486634479719119319381521944688914430590458549856578729086497968892211677809296174441732683665785395198353931985639623176113626152695642511912961942650938604767338517195923635696496877609683004678754295444917524342301969012053029352338449811949517173610747244696062125429170409662767632819090383503491910998653558625429216440563667132176399081831845994953204839673893666589783536160852544119568919163957237205348505720006490423183491679326518428380924134864764689773798201714711012756339505483866064229860017968144755243298207242194815309913377789199006600281945522803999002953345266419057090833871941594435114813869626999888819896234817979442977674242782115526643656519467507368239378579055698905728285162263548378803486698300436696620050774105280830570075021008055029681404712464361467339539245722960928809003375072998840590112379251402142490332579441992878834629079761352836843943920181634018342898458119068432103419388069307494424581913605830112069440369111013297809930962205874854595924246415737193045374300503343112061561281420296588270536739490642654284472581081696704697639593912698962655634342495583435972718326144821574932473035024641776827075673286449814242210808613991252842775334507844536390491535841157165815712016332265284343188080973089694926338929006621190862504470659159231610995651449722008715247695886929288694990837568701914194939231601807678753219976821968613887033597065068418870734049606075427880459224360043253066947386665562314979825633908981307275240554389307388312561759973802968598766097035923732758855807491020627632022177119783920160231078642911705151973518050319415003869864744711917097453772801193211744125082107408782538592971315056937653054418631572960590923741390059930567073179323640382740507505278665351614029851018879840065295030689141357972023978446833457714434013998234132359251832484842356006330496566800782530005386123064025179962818031796679310869371772505044443769693400092832249146003223542521155952319275669803271854885621356028227339870469227066403355534341961143298195294581998530306051857686104456898142153336320288565873256411282884500462846438405941399678233715378305239574592431904682628567420129799222491783981638610657890778777929197816142236964028528014762604785517543195965133242570149972901137193932995889034107911881963784419908321913216864176575768212934520057238891387685230730693221347043348357682429758676911979358615700260761183017858019813101379814720186928682310208870562719428244439125992120465427326174553198003372242504211763585423102919178414651097505570469171742563332288233608677352468888395072773155268080478564739032672268514574084435384238781024284383580687474022445282899041071992392654720818990040258391266608899805669396407133332712555938056354479315417275011041921920787944235049165711116785903939246040153241572686350622082550999679582912145839729805860106023997079724405354797136349274789034400435681859605067675856249757775944435438679215366121204012462588253531208901209775480190650008511046607141393895308343792110907929924992601600214140444993274401758383719463612808582817719563480263868398429565947297909781265246354698719898553333150491748106571412475292595775958028883118557041073532996663592255283711878026903867134549123345505459742085514708175783146785044123750580351300741923342191137194539602853023742298635906761572213328703535394517674544851284982467226116335547743046544950857861709783962811908133834201980974260197611583364992327836344792376171470027693352069225599482696364533917248238081992900195482185588825793936902753006386747099456954582224769295378302550010994744922503258917542380760849651380862906018888599496562288113304352529664370547604534615039177805054213663188159582695581567111232548458136007745342385290680156015593853608831883507650295019697479756202153845367046781918456309716217940122379326339590985706087215546879442286612747369585041968418775551449030455968450917965445328985862724760992672684835549379652533126991191598894869586385365721029504822815231755874204399724481951192783727303284478142920281928357893090939074370995622718178945622056125990046407609399606666696286049830532095924074547161170501712729851880358835262836446082249717676563429894242829996643159695641000090082876675252867458722204861889390589894996445063257497635431247668888085585117390963972496612955035976674490947518906595014098506189088343698328506341303784199591722596190465842598461950303286700813028365353867737356690683362042419773149620058978626269415657130131899965152474699238015084826468567020733675490630463510354810574936249636148037501019863848260990128919189911981749481951719894041657333290312820977277859363539949180397245559142007118182919150031751258777717817966318577394192505325641246821388668830371180526666099037920564987620772373467630622045415434944531407586497347433120223482339818035240191415851342839437900893102227704338081605104857897854940499917302392126390139104623293580849665428513209743106575686562768561809288619172532487627872478690244053684190841971504530317088020635173451380831599979263974874603966613490051173082647927486468380989286038894045305501742346230018172422090362590413181131228103041394017038912155601326451462788767039267199714015171277103302775696863613145174874350662972038378018271644933062736345980348181038541188886865609030761629701121019881783495575864643345340841928186823088941600268902333228577778975239765388750522087326506893878641222392954130540862436136247270703208450817283851314425312513654335368939169713810661947928120796147605651958044852102839083819098303773978945134693218626684323556361808655119192959926350359561345613637877441200552967952945858296480268404723740450811583692863073612289537817715613841337426969398124771277006190684791960365531350805052483690588642319792881498626377631428756435808879084440279566052068122115637591053967428605512724353324450688682361105748937764525494276208889237902226541579145384656135485218489778461495427036895210458440110512937854487643929775531994959008181552719133128198197795208490133929391449625868013161872038864670352365477341190314195087623690852625928883261753380002597028361130888212362858318846592005191238761817398779214431635939655351279331796000045751546184873222457986099583914054122505402980874203472840832426378258801596645624722453632815225314695282222992614713990518710842358834943670815567378092468550867078404038173855919450788779579984842846984795828081867737111443991340179068397892777126581201707003962508828753428323256535073051120596312384886071829782390530939088103039414763382838253854248930066094596350008587973487070340874779815961797438700028857230221257635517476732129631726844735914119191422021705116629225276004495317295184530764158157005202146750390006711519358505915511847105763965824948601441984681269184312702771814624287632929138232894165578550038748477353900275406576453796619243400894816950540010129354725676012541887954732739992148017373000894746559990631918335460988532676700450011881970507609636879808753133008379057100776557759960590295939511233055013502159218330576481143424228216118577226725239818429992838334348303140280329009386512003220506671721312876272040572339227135398202336331982097835812295618442458921935854952163068835186521780095330391988462370498681742312052027328214085850552067539788468291189362958907000914823857688346777116446770401553851545188289591072298544270102453397920286988446560644014940310481302209730984665087407162319245632329065142446883758091110551343332879572158277545116667097697085036973443167082160557261024660389671517500659608308547902116932634723295370356549385631967510929374829244039003630290999623688027687317936284193769261854816959070859814116663015959564873859105899442790729174911674539009536020545860822809859551338897833311737133519810728363418187089194461667268736896465483507592454784516652768690106769430824112909448704918864887872886877302265013912755664718182401396280973335847042604987431078749739105339192878811479332668110411025004036172084830088384119022111547582173479775189746928349338659858720753363777975277843433786779383053565857424351618177303082305503469061595442699526961755567896959706333918977615521282665448336264087429035920394170514662996803915611592213811064893738534121713021600428342553778516881005708553681265396617911480528302837036141565250638455568215311235736437328059209053775029958332141942477064951168790429867886117514079824017196212519521439078417811310657148006906290850080761308971569983816968809193020162112618543127413738007596594589142746193307827149553464223616090517159062888382578041419987488271669177496482543529520377416527738644062840343930978641091353220080054325818874923773113052683563746568615410236587722872819367346398860337889863458094419556313079424407271253786114516408333320711052615533137367568530282333586492864336781045719748172664610492406861266093885773030247378555683035723562083054201683226191555876112673504466735944535947416389088194226257357041789886068630435531067815944144059462286738383607063702630577543103758768387491583956811002825614492003565454870530790965325412890048536534462247480157781220713308177608744749280404417166622654944160975255678281521921737042687507923844486446000210006035649953764102348868067496351263654701529144732275578227326345309313823868906572637836161248135544687020405725197471384263271780425271719471935290924676696062808826511941154330652239638854694999595671635566594250463291629706221356857854528188274320930478223203937197200937669905811393697760540817933330352606109889269008980461884855848595737767292646479151974566488485877660227200435864194369332760558061126577209102109341961258791036916094864868802315468271165647729425955481766144130866050944463791696908115306329768411940364018651792128543016047593616585949101754212542640335323667898495754660480818497508688146177221920669385447773744337413963131690612178578589876894608325591460607954415628096998604282660980746498047696537328491651833047506278815523031138656185958772388334778859377323607687261816675523354349590679823632662251653126523022729885853535615288787764968446006656802259982119077218892725574308694032038187602990212530649354098198223401902576385725083165025602867947371681831889382740801702935339402743827858828365286927748453659379743828459055056916500712158292590751295566499110201167884894855199276944983389998979983299410340039024187551385567069387519820324003289540426393742422186026449081232978236939313150023740629695934429595200798361741824422023766285658884133578885319124864943061347796253749755920688072976054513149602626746668316828932603477608764063096384607406319331021038203519617593948966876670414451101339299671093770005398280119581131505123400447973576242666783461208215534644221538973609567790893280924855413034720730857230989630341515707358724808855277742731943841329939224690508302959737312250582665006641933569208312577072426762624598582457668202095671934650108689658729786067531474903393183107678431630669047804230022954279808727378511866988770936737654855670369042915750938433703642561569052322748223159844684711204423286598549076625916945452841030069092481146583109724527704105183853560617987748829016850394604255467327887233413435002235760416680169416695173802613789876179734846418187697548062126057262387128468126757580354926584675266679559229832829720684230231541331785833580019338302656424081488959545104575885839088118703452570178555611534128216646912689634951200803690467739770161840570507960217223228910689674054883223709772627280198173598745575014859095179193182362399210871671089129285062571392102591745031041170523222082984154610147223039729588903126938450660959694484107712213657839643408921456382191444315003505984776849459635973657603110845919055502327503978847959676578682148757353554165538421733845312323977651411869859451902953741079502405798436936523626901155328634594310228499327330690182823083608974816917847249484653889298892943508124078582783672823189307273819353114423349919703300342452854459195092606546202117028337385658524075585391247115508823872225905314857123533944318597798180421856336708974270102526016664206832637794557147445630507861823263861568720435716234817243333423132487041520278410188695132164876614391042427546863654411045659922896786642224791611082345457830280543059452934248199576682387589379415494680658783655176128931529014697294229165091891325571411567240269854770069256318117789829765194872080198896145579137767741481687064830676047060995907536348733179141749835244828874000338134900169730747697273662637454711543335886272349538529104645871203574222314567318710124128352946350757763715492170058090610067727784501407693702294439895284811128277134662721961414987049627162633103683160341200461578141543838037295616418617523533484274902102407121907363414629533474725352223405093990145390376272109546220260423672235665074241680933420045734080548850853110892977042627881271603879394623816407323163413198420365467650372061295918935370003648990990791400571333924408722993198373724930218134900897549949219245574613348970136519198278064966245936324551932848661078993275691661592577828702423227619363156721679906443953374908778398875273253413270517877401075863112926133685908487886175192788310601607530552776513143973150954796718262801599351545320549122366436288529382280352986650192177685941452008855230961497261721191277969161443772915908691400332071075177354747982922004965446591417576564592800543735782711780115633107192062830681476316961602478876784432021973946812932538627538175102798933323668713837701337806673270281944321694204134370559395717321636659266109712113676015963202131780029439791929414475226495338393749224027971640776393214717780315719923895316107418843444259597720790354396150972942122139303815892818170651747446603611563984009809969419675297222279199321240515036404631836066354659451336028949342019783670105825497128572118239459798325098068982593007304368720452829231853415901101423539709934702454119363554420445322619506046591860608382859549632696351415920483073266644760382285844470527089047826728535344537009681082478057292939023053106604508071999356643083821401755681435295574218649703635193459906623977120191524486951338960974989920288938993272011929093764389859533016177831511419956120252617198907550452151346078705029809549560366813115615543440470085236806973778984824137493011089773734965675463894744417617080755440322834499201287993277561490146229359208299955262106615640630787003001775067608347446364886529165276764840570003845997476885715475550071983375829431895909563931709809509782507246073260045954698020587452421380971987892636260560561121685477512408462932296216180137188481955011908837793098295898109666285432091602372754490852606728596941758560601139813326265513129376696923654318107269907520461940046527937797437379495746318574157561369738861855044151292153192262208546448854575795103117580985233897108550297816026323343974959283362309157431444517983743773666486344593592603674406926483829462691580825565320359252986685512233573894187615363357106930926353032795924020682846699144426339168778324534272643396432894856536673441194520828591768726555708286751849361737000448722045029986160331411012909350882243538655470303854214307260596616586902533680493702689383195353818754767357605144908751514224301443265980638904890579653242521047651931173128876939290431143039704818033418762886059660520994345972374834321292052526631511275933758548666025382219039385314929549340586241634768658243925704820387102359384882483718551096907419861560191655623244631554799869504980391012304589926087867565919663723738396499077369125029098092460786790639555124654360817796842908156359067045797625356141007298564691030910201195903299068895711977255609104985489973393737687971371056850527593547597835235740214367359281629213382869370658466467716741418855698833286745586238332199866257303604054851114536908730652649691796895431993794198374026638899866684390393386434417773622568325181093529139294858887678815518333452453763218623049459538653717055616377643637793242632985557533941326849102899428681867349760982153669397917902265649832467200903201284947538072777103686310336347141357841151534921215407112615494452450273684248491213753754790976598917651414386646749515138290681693160506357853303962501300681328736129235533197300331158536707097719021149518921536422224869058322720994299103589814257539658738345065740809354407916362218230813975388065823804950381313415474543762547759254189538404322317838194810657273490237577541525472105229365105839068465780383157137111071804227089112598847897037084777749248841138463904184672479091299786379757801855949839894580041743213086791255540667159743036480106127877506731713146303974132639887492738235909565122826025061162779033009055612801279287670934488544719220249802889091132422056688556183681103270243336053745829361821934861588672743367434207467631733491067789358091627522931533787856045387969343238691446590919095448835826727678951358255784890085663668822012770588289157257340956073174114110143425798206807305700702756015480341535618968262265284131393325826872622489729436170365332823653545070733683909344599359626050852425952626517675614588805063361368847426928548333808261509680752623066015119369283609625256503592593644697413399553482700159434996638588255838365721108854079808165937403439428370587001587201112898937878016426220607280794033723752318922202501309199209657429363598240198724493879583523164520373848975888676725108125617629898362284339036241678215144265049513476400222999932831126978472297344352604578410635660845018235017099169436894286606551814353525234716169158439894397713215587357238756497396413864318962181665393424454667191615736487531222060994995699080332841442524693762869570797974745430739636900576305079984513973000240382395350056445808331969979774802647750400211896451394065235060715428466304340637915917930727577825391422714746120933477143629759637812299522318689149371322062731946178753223415841907862013338742861507693171091317433821472934669360831933747654835224355539874594649452507817622877492568437286259886277381972528915334595767281321544690567449646282458035060442958586199777131973348107617329823855887345435746807016584719380224168103092630047931473703846919976054002241221908047182073648448744793636640470662156671126062217786188267911314662524532581504329657932330331798564771824612920755335771616612890321775969109405703157492274031713515895741307318956487032575761027011479699740848603613478122306966319364562976005196962308065052576813897394350344592581268265084476779170113539281374915980883330381129213406628857745930928623538795630615688520760275867596076985418664355721684927521254069826575413891442729635349987168521583574612498600706497476111431074677097820280940676094625508927145725403725762096068729463941434543131358377577006948344651410759109243485767486797793489149648177453301337150920803167556790338616318729880177926895186646631414648031855060807245894107034729885799212752694792014371896591339888030355811249812942674451840104969008348443317077238212364115383841255340923136439177772495461174251559175983989515951746252700993920500750402281904303779712016268652363849171437173120578951865251674277431279517218380369801645677558268763392351349549395527458125926006654747959306542348352069586380324237263936534100671056585968763986026861921531075558941952603839604099669095021535427755696150435291426303627840960119328921281552965101813372570354272580596787494058572967747076750273980493303071958211052355703163607764618519497945139817431149491763251378368149863629332662791332021039596037457787457493393404761438054620087427623467588337449360677739192927872544321891245808790785059485749130324846951021013569981203651605180883377406083334931397456499229271790758066777001949470998897062472102290981983553370608046149090008118437554236433350579292929081274036549439709339536292348668984016783077248419203805267129818326394513662706507918309559626362066881946271593068638281809923330854971356069348462474749564540848247423970203636964127083579137582024422858579184600410875414280894971320178376113566302632784478216821862238056202259509397898180874626310327010182838463866601329760352214104040783130796435887140805309421080377632401932608748745176361430188490126569307373466239579227681993512557831324158938841046429700919315900623993763936229130110587071457133650544508975174714152886314550131476122131473105762356960973492777925442560424634531903890819335663148271868650588625261760918602308339888149916294269871733232084666143844428707000536783845064916441215326720505441229972313392645219921226701852735515011388380274208034196336268479268551767208717841011135830180931510885832228034513837421232756225625001272877666094839517382422966047285719002856183776718257418654672594930920182477000942032372761307927552278387119962113029357319915819068299277264416336017813504469751702825054780277447102012230866388534413340787055553432518203203226454980737684855874882581171500485269710427091146801694162774952889047906283818547181177786678832719918471637406970350371032985395688081083586266948189884251048802619231963371737126209889417877118984130744876266407804280536713274284076568667878754567520981694237497602476659075026997361510041756287190205415534004279183207239850322013940149021381420086362823041448205196174696246004908137722278734391396548070537071404383350519147072052625380315640988496515326805829887707530808378633282756882764891959490466113535101751418472950075334515287482614719341769620941955741951272522793021166479235492231104754072996288130045519870642042845705508906233641847938281732717317036977502676722056007373884056053210644319107149647521233678913511270135832255528444832674335854702030525409281727877831238355181452796947377268166722747726002949941906700917012369334621859549947785689172734006089010662461125796623842228501104557642552638170034829392226941113094953596742278705359985796925888014865998628648914939361776930973251900354148898541921601553839194652784099828553182007831145626125625090850082196239183748531010997193918205158634639672473432398510076719694925701287569279017026676890628179062091860841926825384956446636684427912159268255313295355673910672788361773261649169026121000231009964710455690811614774966384886929642457011526170372782545792503484661904992905075469256582848725557125199152717689902567106096149085007209053517611261906303686907149366226162390497621619057021479547818911780674001877017856047421758078114412505917456529940484106311255824786747370995353461838036606812808524782460278184389032933715441013711016392499106413904865704555464759600260743346379731307052467721719446031586981800322496082443697414473544508521339240194156046913028411537800848924191415648395080367683022718390971117519648436156957116174252886889575591345517602745260137732823951029808241518589980330797345367841273484165078702034344465644528442221856107071281788245213562597139014753214326147326803215581951644193111257421979514839388593579525586443928681703450065586200367364836945705388908361270579585298523735762407224332904208546146281338666765710975687124035262889104857879183058271822576898491769665692462403084304880276852805862956040168971986457105478557390210439853650403157442405379465248295118258428086092095994385092916552487443277760245065478103891928826944142772128561943761250257714431909662403918843580931303685826712101521641840921311945032189490306815949986295476608865979098139591357788784684083736107579050612821660334171537718153760536132390243001638969717514943413391821214203692897237297007656126079437418595633475485817775520510678841117404410917490346733226551390749093844791007380673570146051056348625441562164879422787001883099800552926175029229797447220945890491154153543349908208111511324891417895375705792959815197212448331332910841697077866812189637293175728383607220629931949066781411486007544743561364742318953029572410259952263413953162981661704847249540345409057889434110283954752966048283723359072781426783836945269022415405946353129657894982990474430733927915769371355009460939050179192646090779738303880500842108661038659901762337581486281878547875966486836944174236557811382656407020223225029244878647081604278495737322004704586653932427846145016245422698940297193049584916511689617302590546047239982898448524370592644638398522227882104428280947777972105997218138951944903124182469715860240275470684708347873034205649127312977057914025701586368782488076073149170511337675406145491911358447962281915205595486638499514229144884979693431029543908798910881197251294827478486699768731575571703809488105640806692495640623847219399503579454304680062808061835749833737050557834859819104546731680200543177072643419468509658032501612251623535015839152338676378705702896678182327835410926747490931426658261360539653962627576733428750642037092581724300460477188967593927676541402689216425676829757474354999907533008309931332021863104816673962894703361737329476935097168770046783314474796837864170587585343758567387871390348111179833669590962488421116755839794019520936450238845755031789938779428128706768346389027065333917811985790327303194805451416272204522394348960335844002754571690793235099955925043382217015524001737045802279167252428077760830689360397778135787169770785145874999408636254225895759637200368687719178959334075923050796018232994119085952627177045957767297598802364727029577734710806900034610241143718062102094969381911920095655695580828231903464590957798420946650995908248618439389986199568375511015356940574496876199679580550039161724242506964497594788776556972311424519868262947659914622585842494140584104698213676041954881838622439640960556998990525841324934661379284642528793856549819129723656869607362224806294896078199447141143448197296143301067975159862148792763360600969794841813950508681467801259319383787403635509700271805626135888020676723169525504722705274744607887381006573103548295451197669403529548007565565629183230638621986439721810689143939114611588546932377933185812470560400416586082062050845470251614235760926328176466328325470156228165584997802324500376610258544923379352137235999574650887713528575682849927606657112677254888409449296137401713489742508117581785551462614935465353718723706867794117543748047743068095686402235088995446367902196225196733203582364965172738836407987850661447002153724009217918261440698757636515066638315939995197074768513500894693303615960885227265912078045715981688839607667086915744281124617201885017042878381146482069413464187698358352946275570683988042490115905700220209666111061256125642270934831851437605754589620388389783669503232181445771820164345578483021671391968354289597685137610956846606515273188224178388762915049510847862367810260694830785927552935016940918353895467942490861426016770738698943690691382676190136363197531412415057614255381943215527091924730728691077331141900041853220534591440521564561619293564768377656260590959823032781435416310586538858329489662042866131562707184688097265715063529242193165078745372034421160660251151986096215349201730735987240889373924350273044967060862997530529067201435620369956587729717227327613726559544008830394478831437184950372498059454362766586695912411660110295329443701580467803285640247677772004844180904572506164610412957760425515761883393683069703929363532655678389538364467506003897182414030706600676773595493229219699705850370478498100798273969737552101249550427381004275887384914493033406649857327050104074534148654328866196555656760274492013863623687858409800133657734362627424609405383568279946777512688896099150433167773008534135152223854416114803347980734616986494093402888569772626216548829746358086981171198842478488762817590225395560831756221800688422314241056459737837619757789642871583415769967067413519839388343426014081580078596382928410970147162264466413450381465114251863287944235678853269247486903188212638355872428216022419345486861912230928094021935899548703306091847307585713526979729361600532859393016300969563593155984405521738464483235524621375166682932368314238041514386789337755940348885969391340393434806780913332154527426797103217240770110356598051430161144135242140302720657779815625894039406465173685877793728155272949037505193064600712803818442672598201308628028934970223391063285090449260916235817016931173340252581708589036778111363897327110455428671017466767326389413814275644447106104181391761279653056555792885835194711806237320912496723466042093341317642087847764951125148135030039472912659225801883154778409467881496334780480845054387621953510818662461399339369287156804052230145428098238792973464803455847906355870360976469119642598945866984251613625566102112502878945300791153546548405202476939595862492368532386819192183120037225285280849952513311958975426241458274525883467798785694082684466404912591048186342419186737774907657692470631324727357339172733269356887768311121350077432500324832687858154217845054854847792185003622112435326588068192903974287087147290564180905890286848398287466735061414952088832685187918325879882983816759529945697932954725375054055271916356419122842445704700834076033457857070066723807398413986358877196131517679429216685527199606528953710765660317131272635369385169193628098107721211203049925569245541026585977808257661769273388132305323141114965272459879842984343902182170493089732285858796021254436899377260963711576416375541710103141175310980010972857847057593459624000966002846103332996167904378276356196973852815623126266880056544919339315088279575271641535601044438985319993603824709194895710678780158161155457199585419755047720533332735081653075535369738729756122686327577455625528496185091972065166355920617043712681618013129549511652141857257648064893369261606919884899227059996985995453105819755085657434944701605529545702184810211201653803438799304918074885826492649134564539951277078806653935993427455665873516074236896244530460466079094415487419506185311973219727219186390404580230169290956045998150980140305677043583008793415690522726580509564577522508548618773404919276152992678294778103790536675008577801836234715945423350990054587660824425408943026929700959606204449500022369516913738836594397965734036329061455473317191495273097774550156859855176714793721777664294870934562423761320096520841158217506949708799068817365305899549600989881503584967650532760481373259856744467565110569215560166804170767708438011628383625006886650202519350428305544335846654292909591670701109273657448699513693618713053406852046987828773983773427956516992320787289692704424085055006029268821125566778936537892782033805279975395037714374995942084784366126303080816081721582480921338672129609529085011264988234782503198396946405960929621831990909211192153287196379209367354738071293022287123577586692163650857877678134088667800299712121695155906092585993029456194947978671321875987987991218351899306490514097975632282758421096445703312079376659076031774528087936252092023238702801013030387008209138991181662464391975745927297215461527069385696088779868640897021174239068655919149678548874622079720510864587712899421322196749535775974270026295474784237773842318501564759154158473829097458525383519533973600061483085154626564197211727939625057391227430444994759135282323266167422257915431513084813786581152894529462695411126824996461486427494236535318134918246274735987275915147707248440615786222592753493320694484929811347399648907771754338048600956979395642985067046012316813701982316169215308823929913053054891825391448802582907281897417866085716473299333480556622932164581268015604509129559189845730615870107910571008482989636152979154239145459078303853753523840065118527418737363824831765990167622824792102697493282264077100987356031399873745561965405570594763606820675493623109315685050548884200678675405686986181219037731657528560575495082323733236415412975780962974705770961800643598370726536241919619936997877019749499041361767247311310023011372737697024732928489902085726642127351605299139247399920060903178590003920220228861019600589289262361385087576687070850840651376770727619101947477351314206617833734608410577433947342049681677808947134658947860707540928235960570038166146669420318635271508164394324927752074589409409488357242027033398210865688365521006985882837585208135389820490646970059240204746761609624368099608772361619144604952989138004934554502407681428382670976516648699772662180958185361760792147253599018694322735315720765887780793484130340416245157872799445974469348572730611461842357424153409412499314924880485024112923770628352324985621986222568776135764013100419642671502667191726848483671711039367831227166908746200944543904820692555287914101411041746799919890777342067456640848145447538454811451489310893977961939861223041624595899914388803026586876159125412334354706142046044891019437003019506075437118353541153363869330387695798943481355322052039493779483992200193746815215492917679560685797756334824225551875930527627330945700067047847055735236680301220531692476187296338009855604007426844879330389303899552207265254085859354173398671621815984702320179222682365287899352879249140698336044991919540389684694712742212255081281974719278440496039730845724721977753407440852501879741743575676728410282387343590422401346877420019163562443265537094704541422379452016037530624275708872895371708131679868661685905363431493204846174858268981142449469706996133088346939024038663888949032885561039994329887695637429441089333291686115702630632875175096662088533382198958236610624605626700224725138356859889021019731803969969416658698787926649323680427930378407850015330063832707650096224343625539578780407396561871956370753725578703983761384178607785403692749302845145965350485501737794371676169885507575664938252615130752083405213870835629004544009125227951590763526690924761863508990758132208858949362034592322740444079618325029856698887555405386577070013944464937287144557404436162179198059895106791380192085440904422254469134339273957863356872779094714859226211250260343054988849041307612980196731956081774523344906754753711524698123828286343081933020543517502384571117047927782066625576123452916179744286945367630892176465129226726962522344120069954284713460524959941420684598599962155225531850416946751058124440963438571038886104152827880704932566483267967069543552203088735392934219092025883152489007609727394748173406396108433698494521012934246723665535456702254872217870679341154835916196184498721639272021927187031638761077882568463821301975422118311581584697692179986072782738577463093444019450406885479355061426710008923160938411094745595755437810094554826354593537239867180855922295640933042721804880066634112275120947856595977164396827711178117800647539497186430308856218719226633860007857350357719894237587400847554507277899683244620325477284805561503996622768287822144856846463624492682573075807687499341058649876564767275995597954111907978810371317139238025307626656719346048378216783677215215409744700819764369001883774368524698307175625227738601688891476259605512489249262199402078958975198141122331717264566449836875301943668397726767673074917595597459960615477652088099660782306208695364583617946513466203913981325813983077688106241701161443527653019367075611359032105301798449766964947258029888663180802467139715960561183540412538983553787632943628427379384272229377703086339775149113378347936775724553208468477704660877995512068166200082111829539647406905225012493664829530054128849839731319158973798898671444922675103197065108947613603339613578301714928464084876962900222217338954369457245859032400140789859834296729094236468141738254190669406730438043013297509481290188289104004374649471388473415213736744154607261588550235186917913325150428450965186666936317082177266179630461596982613600633547000896672733146880909494480649997345775045590831665960956486341036560159244934417938808170226372778262325944277733941343837101864344038739547898492482047933430136894446512932260721900483821570214412317229268215788077998927058061146614543665492413481848271822344069560090591224523805300764961943382555091906782788449089886825518228655406136177852219624447589557027580496884254878196215743543617973057664163379826323523342318678021465737200727562743714601294985867523668143428053042216956649283468546023521198469420310612048616494166648657651469926531469121566730709256374166226928260820568141286504948218272555472298633694184182188339345436157995010146563223443530613891058755028974413720773859752645074295773729900074328118250153517315297610063068638543003853069671449182933027498047058125106673930037655515542131787284016338484404277218808723996044418283216364703061995037487512299560159908182795374233168884424648572462492032971199600411460411143953072679485833394545530313126574734426637804069629007274557049218977004609891136967183487799874764572446588795395065155498507547949445930955266043281848506220994704221984091194586913636755678905711541563221927666494170194621436860208736405708287417236580127098749727389204102148228269107390485533505159808659171011173533095566114208829986413931200758051921201795700292155496791803062656198171237387472796769446877200742021053454971165541211977951346525805937901913452429868531733651729010796845918855320951541551033760610579442543626718873240725696195362642848517806927537217254111858699527566813749112707314461014670590365439731271835546621619598918263338657198800154231939137288518824513736706776638351821379818096723304954310705653950115257013829576725987724203504985018202095523858010954039145974181076691243639994280484337108740738862100404612676146207433952092294533947106259835286522698340138800354102934659425409179563308266869926147497152095939027238748472331876862786536755076606574298213922572572106352285249633295939749747234025476786984020555327265396998046122356644788526301139805183927772986703523630849028553154520798955892889547416600786077695712518450198519699014172365775467286677027024096769093587082326548207271560515544061502490274177535984747047635396367730249027737373232308162264178552303899749590750446128747832386242392541754097852543301666905953312576533401585638953249420429261476700709034985195693818256754054346386801908228831512068043021626215590506172240625847273697293623585690022405220453523247669440009831109405710866999460315008993970329059267040715368762090977826271212711707888461473077058069834257623313146880623333978052173258812713315523200341003247206113832699610357925600446231911979312771420326245866167664990071693873894660733105544266398415471876685585676195299283452675757962036010696563388025036137322549914295664122591497274037644707238481311848121930596250936930958233204648149219311804461742352967029070844572663726735273629178504782030588808049971978191471750657753710346640135946153451334867281435762877850602491377571596893709580295358468568434747768864032386754483140454460408717513768515974971868357195247402536031595132531442414922150284900356329361226735163444029385126774373088002349479112842156576651280030819371708324133032889946989350535188868479236977350082031331266713758260349486866626725243448062994008471252723061602095117562704289490705490837181289032689594547440116442471164435493513742584723718626246965432423918052971550452378810366124682090717846959340800540526093859978583455471091506618940979696819998354382648758287190580890061863055078390779652318757768387499047293658937772182809088846363827262947003483138730519968533770890582124219200705123690965123932149844449679706510739077427646407351181881520348006791434796428539292555920547038733175378536569332827746972249449465354843192396953811293341775472392737833927125037592378672476156723199800364811587265695871118931030835801267937679359110548457869003346022650007290333529387018098970080439418587090794929161110413577048321507344264903487353456849592135074278428253373297242167948658625111376000341687864980483948181974863790071146252895693447552199325816361249983629452133223579965745205400401808426619913205320731408319742478627488354650521487444032198051282831846799899955679487045456003420618638137289135893501943795773069172750963038281166773645446116011010431916497358798644071272143088846598051696980938785153824427547865100124950971384296771945989170489379090202047134251827511060197333560662169124386720842588624732290266362821690617457924847902003985284026266264601610498298849315796517184184383828689246214267918904868505969911071884393483818290874566374260796749534336406137057150741683536244246179993843658429124773185232192436529674613951642298480237551694622991718647033561457000862588001783389813133964091020911063726249504380426779335213352796082736213134440835670100077661981254839485209966911073633669062003856561078871373282988210278345228024169440271516882563483627313909208919708939900783527849676883970975870148972985495348257059884320806496638554579143278756986394041736022977648552799569407933082262612758105927188125482584977217003933218321581351145130575003320248982631789453880580292272264495786798916492406035439352496394441564497481774100016593267765015282741652226203396240576977572112704836501523419279620942330055105952484503931165571640867287660591539350113715185362135117716375513204280654062402603958472099422048450719126941891517509268981283749642942187375625502941634550549260939405626099364443311803031895316058064919784506837094808642028081021959529733457537321478116087916072820340122450747502374085537902980115534824918170914977851329311881057215302034639911411034333617907856314716012470926361825541716007384937286466832356622061859142305067196233841496500265824207099216292262094245573308433784379339498743224002666430092944593836997002942340324114770223489298429113591116439536760740523145589157200097109666520281952650351042191896952353486924268201795271251698928321012972748578839781519802268959594913012468299027981696295155102299367762227779382902758315408318737991870012891693282308189013929079451274372196658788411062372534445575996207421941550954802489408104264168304450012930565283044397650340165022620379838634105058261330104829410857303584894194131689828836671484483999157689866232321585957468313808494567254961960533688361716756069713122769008619578171487619374194836792349485419944922245400116775027955420355269747134686965879026840504092814344756590509804202289943851580201542447188878704597096458028029350875779269665318464927108106522821624706989403254413662357492314931337119279380719496575275819205684192396036561299410808572860352497761058830888466278439674590114660774085122898195381397632462444530220929869776155157578320601338646957153367953744901927596350766460475708893856654201557270817261997040217252370684154237172017298831058556308545713063959689020861260907661107962895088184902608960080872638215445661258653829540535389210727902434485864932164163245332382429074074934767705460887585680900315500285490509955016638765805877210342868041231532883706031952327110200894505278485008751465302329989931764262219299307416850566661031208854199910365574416155610895256110044518153737666251981912867363642802679053487777640999367634795915406876514419127178863768544229014952459678704671863457939231364225113247704252082505068454074364002095752296137181173407378901982073339827836208703038239060229628423884710893268291312450393009774897053875693516762534572024030357163987696625199840264557408773759598623592354019232255688820606895275456906714918702819084792906262597129466884429853752902443560629507046009351992823306215591302741024002146204245475725835377128464031668380002592211263247983035223675821273930170327194893728370202804930866342639854918624780360201111620886170468616326488780754618569938030337047465669228467388823591624307437030382961357947052580382628523729523330554936317685551510984342564941214121435471620970737958729216411953328855711792012424059756076896890405477112649686026042733841964069365439899914321203460177225194508677645091790143267865897736468308208597216911931716751697622508512854948851261318225971177444348176521605036535370239428508618178849791587724079024560825960323452910319369445594494292590165399374183163762206505976723577576720775161657153961676840516515759594237307833616053669229766460270036553682139623749887178952940352622436906263941066328239022287666097861815312437234670667755124137170962189945508904718108838363598399522015726639492859797231019318881960670554336251411168622390665171815489754840174017017743981902808216528904599948995265324552922487865020783545571750984229447841573037129499213327220471391871220007635989037359398780044517969492726556827293927390851986180214920892615510294884624259990838746888545172141066986526027534492342224797663023022856986905649433736591797334615235154618073112753165342970636628955327059599875753828069257112147307551487092854964630582589927747107092482561310988444180541304517125261791020558495331942013524852772405458943478269104281557387958175350124958081656099271264915121651536485425661607821370936170110240783479634645100368476183626809351902085268048011919961824802372255500293402154350947091822497541059378572091819693581392267561787643815467459652099483450098662548448902542405513677981435812493058183281141618575882208181737670820320891445487352357340096411862912434024920742037593975198793303693142432017231795454817546328415015374335162163988163704052166581323717883815254063541917006596992363514291348736915600752996724078212798016135413463393158619891748925042060542778901010061808425425761834102895273289686207456488054895910586097047690757159918338075215998835252369047852882510208004299620166061211669263591628904773085953665328433565095897449536687384064098930100085820224258425212089044065576240001314690133490834420422713427666838497345348274435063732030750430184179625272574708532213626669875325469195374189249402926366136863931755991970466682174545080481074875698651711221142285066085376992500222451097597711792209824955050558383494082357282896597591207091282875708066835964550031701719338300919028759110757507148408487222991608738753041066815750395099777109240507887788232053463973351830939948349146453926610016667461552674423584137140425453148957817414742863213598392664718686049387434659708013835693278278584778029917345659770585659289410112638593743309537758056869410361968652785354021566876609249835438026648122401097699031246858703671853096548671854373597731662971873945119996589402598702915212941285788410161561249138034262546120332046429227170653253651705198066294033516505594782805301174394496442947952201160728420565379879686199469608887810079086676561260984625933907346210682545418867915176190422540418930017522969464497240586632549514883950900382848120263525651260134799026681297547115993101520083078837187735152616588267120098342369567319524057190882206853146796742908825421444434154767577220557382406801047842482995042971409292031677750416613860859006203706351381307462532263614781523135839521332419941916216177792532539748138993580437233283129785116371401281497449024946675407071119048938421615757505325235311690930039626975203898583833182014125031188777427640840594393301812962283479708840925391744756131066911286052082142258451383847490585877172321116755547504242005592978875870974647839407549559762810234571742612656281714006645715421296149922930529371771412082291500966850263426296959284915933334253374649044459053521662323138404431716578669336598809022079011071135592899210454211198338621304521765042417839643635690968264880376427193109278767787223906570668047010044835101360496375084631583270072556282478365924812858006132573214922158098722689618433105425766373090795545285717439389993842479050392275264587023474498962391626736665598308626819520684962667883537797410435801911137385721553883391188564548426556423382317738937216818998556479781520987637392203381754614974440071568550156840117410749549753849841311583982698317929612917064575923055874088200201727399199131177019125864523249803335596770308343312566837760511016190252434521525398209311054328884955552100625347588466804792306549199412103264795776863947641398035341967348904576943908691107081035032386404035641601597639431128149275391368857038764514044868449379687226752351705803322906970931497243434795292905520746086954596211628637198874001779624722424142833168380587362160593189783752608678531107367225413931557886110009793691250671489050180095132419085550156439161864857101911421475579263618615459793573393976121989401174185359289530930515425755043863206089529411949522659048852593183869279935812450990855360692518752017410367235058737360988542190939476466646900306890971469841228957732635253482312451254172802506936622004147124786501476416235081326926698010776829633723479596729116107749755041049758254483432319216666827437096390191615423030039777810846914821592239791198421686949728239508485304346275200161120537930885751794682138113977665051447257987921621461444425907114223023239724841937758249072234173323126184597282763962306897387451387568878941080241599401607681129483498238020501937707553515277890542024860789949932738734459517466996496676776098015895889885499670803927588060645252666727373682506208709405581491782894820480248420858731354554587695413754158952903021911161625302100162612540415608434809247867265677311513182638804884768407201257437454208858450062670857996700543306014986149092053092606151917537849956046951778985036163349788661439119292228583168875496435603730736056423459451869280825529603654936613864477440305696831823605741741686303102909523795906210640218189101882092183263298814319365253026828476263049687566642520486029548058744652560882051761955576512867727292683818203666623343989108790178215631402678402837836217334627082842812776736386885938836417986426315889582793770464952171346330470995602048967892024445572075452039660677815242556956100609954922165650496527003304787255282777684060130638041516488182811339456807518760030228329721727203274617241654371563707528785856414082525605049151709068535507134841929565772413020034806041267473931455364819110324407233543120779405500296183905628229395530635778363608227350337323659806865945791081377478983580176173632018946557231856168309841744135083081322958050948555614363179817092621710814587484464272921818413956536175551309739208020455323906793206816748320951855490770789122321395569650077152676815294680062418166325458287978430760458214848456479580416912426698250499898501660344814104942545912982940021054189459245732123018544788891365942087817346815834336840895450356835448013433346706006261503418004018012351751160482526986935006371260752334613993466980168473399893902851070159459880560406145357144644202077502724057566409016649639732018893317312695709098423793490671946755248017274549890845700828314681518609708782446461361112068651393426796343777506350273220086397125128815978949533758887128219345345910284291667564187895770454878570851228154777273099649193913404878720310298536341943748869837753987757742014188847044174016725723158749885118542487255487563706680346566847979509457793648544494978964235203977892920865158950802186941255949324289049928621731213139856654885173873847150205836287315282089510662096088356512041676171657271729877083448248919927681543618208892799134641324062053783568781453386728474724281430374690489231864853859589352852987837683442633351417213249570903868528247183178359077498703284324513048342064987415308974844030033832058310408986237887712983712641980887027968964220729828196834651139658685106603643494571236988690893803052740561021811618458140065062734352800351304461469476104265703800629980102861709053509966964651099190939352149098120240720715921628977719188579468903653596574781372891950205995447011255763215526679020592817941901535670840580630504335484665534737256227550258365781075337060946969956105539303575313792131409954696667519153729603294477768896749113454744346926601030821633166886670361798746983163393715229320908640591437662734309339748822900126802392270309918875859468058799039584137336356915596141701573918129915014908069377319376640006399171662079535935640566926068910019074266293107337339209823458064510336125058530075568161591177165040578224873253171007993411226848414330954667945423655824116955904674200655280241363679693342359349566000027720838615943223117146330208867181397301241090106584854466152753022906170700247205634528988730677807386461251232152160448319519440655332979842313946581814648350215073000421787366150995164894360972339683084888339241109737410245358861716801874945448831109113284294061659061456494985697353892424941262782712530254479866396240107172971090606101559291326136567279121936168768945377110247351828478462354670924155793387037759105398226039485691604935310541318563695430774735982677262796358481018846852272026007626288896077757566075757361917391804476575341938570579968508697532776680276750589833982307171451858825827925497841541892995250714799748195068371962088487291087649308390621890595182653031518383319624171324866207174932365390229111520266098073082539808138238842657829779820303563510660438565958586630418401175430889039175961479025325327496871229761959883311804928562511855226687861411242168098135857735018960046661925154495445039442793127821037544496769878231500401385940033991857283171161542789426486147866217783712919305304425037774480081040571466868429914581419600749592496117425924091166643243785239709865483621887918264151859104161933057981477646275932508294274019471863707043867266857228118714670553752772663228607585028225503222756964635047939629990818736693689168278191425817220936276291256985172803672381246780609811761182869380482248420551811381345228366581063461326849681612926249805335433190616518756808977722147993062790931622355773393415985234986920756466709909193344222029536044173023767906992417752401993410632991616534234341623070739987169386771507417021618068279618356013202761529612493798287912088670179716869434878860800247345694010062896211749830871467600623085294548104200051802809414396666238895246553971554272395543139439506327456746121403037948848550560227686059656606114290159852063780664326980323130721214292658488001835959502428213404951305528389138070001171272432361431502536637387172417519911739813036754589784795095841466744600788384504826754005452089166245494858546156708459192853694970896895721894114946564096009021218584496408822730721058842693710214793353684337516321941096820186586121833146447095827867839998961923875832830207040491578325237462427261715034420651079312899862582180972637663115610020281121157728357248972596759660346229010565623822511901095869307395731718908670092574964986246033340544947116293172037182430513532080585959751536632540961727579837350757887898845809432643306341373929468525930636822244782717008762761360864580697253170600290793923038757508864817645224894136150193457584260820839453913347101099821335639524856190781235009797646724741397365566960407004962033861324455288796793221412756841816376201455249886108997935396057619536503126792623824801415708771233752656493817032762592261857470956969991446756954002285878900577516635614624012251926026823993772966532856338769683683243126765324061789336116315172958784788559660190529773768013379682827879051533668680240961911338079711034457803371994733145145776286276482444313310522864122765421009573413150337637887623719458157304387559331425267045398666891644725780509405039088560348479359066331957283098245304706982503295049928946569095787179370362473919330860007415752501605035695838137491051142033328415651222400527286989563527359237016141395264587550031158573835702538064456979783681050125272448930223279539530686698305265245362779822630202441153269297141126163471278510657018521593849652279830615235661707587997844864179140022888091596653804253256755996590612585944564811676654487257987038272742750139220400567983334794399922761567309540990033571988919329558602765423486722392316259809201951386892017696864394468102004970822830308147093719548673272192356992085462430638746665076680531683978494801154741570931521056285032267747252273237356760321573980634623558840581557963344219709952422260273453937641559606452261567535896783425663574040118049429398442088351237353559797449587359975771482207106614834484893695677198420477710231094152120689527285626142924957713517964007932694272093847437576734042616878132378828456691455580610164073224904261885663430607413419876450588059758921240092844907227887536966452800446142768752061387691593973602991181728186846809244177312651552942908568041009910206586617816282847989677518702499774136182249055987167644395878995788411968615041215826971265376932634245752835930482887316407293657519503322089424421754067543515121645400317290179036946257809662519371109426454471148642255766002411330228389390611822206688213122103531295088217181141211498302570849239112128335953681953480046105149404400206730860819640928947671227378711582341502768202612761595420343015766257602203217131459049268908908839544862149125493206398320193959097824442640685284507744134041458040283933515339475662579638287723249638126637682798933779997845620212205364261597778888024652263794975702615200198840168905282520095091421688184823491067119014140793924271824343036821677479956484584894380085482985417335355322321404461798228756090593710117165094745224740067560267079732676223681528914445769152940145495949945902401575055150326270272150303773582273541139920832683861357256115311687964162563148456832511041325627423491008785939780736636413438752702847861413715646302783395508594408422592792371012722622903885953367616212946829028598175307833325597042207200647823055918526575621271809757457415423594315704923822234644809518784729874234341740386824955851258261292144283813856676001493577362298896798077915363322328423643448610589318012860463167824685443510240276707415529017079923035478747628143032256851722849128186390098721518847722050274354121249157055543142902166459087114343513101241060123055607165863131001054273533496697185780050005917229472461864488083826357854317868898460111326194632714055293314072050342734825254456941053321443869423907843101133133992191581684553638659798002349561505642254866015158724462338440821487126622585129799650296608401307317000232174824771807223360788540194378882247546533734455974087199301189680581232828768777203518642178945504726853875751178475248020764900939743786829000832806625589263868775336474376200362701361468641573889751372931388745868568728272941959273430327057102392667674074213133274868302224806953907998119773708654052708278229925641880944319829375009668015018890940484030887896164144964316676621940680973651394186267898555747067547751498356679434705221834824115624991766841235166478329263842141301005276583788402071272274652076853774982497535425275241666027643921691381249130099983631881101377666327371702819361650885299502300008347385625289361558148209739348033349599763307402193785444645016864870479264550426784219189674214693597587926270126137457266067578564149118015657969093586200296641256434454134917974787225811919081158517277118399904374560030733344178484599427034286077828154094966327555600708543180660306718444196357984707392939367845919708576001457543054652069906497226377621588159002593303280002160582460542382803776912273519984498470004922643405395538268115374718037723938625437032913939030301084169027397202824389534064640989289935870774406327575805381303024427552667120799037743534956030857694068276098645911275435388232097309052796294898193868666267949980805450005217874546519460255538322630524984540866639062571278014191071236075067151530485828741261718151803897257390901317587313634600082014830470076387952528622754431256836020897145577250626768540114177029891070816296827307293906998799552661450160833675840434302156013980271361391847750201160543959631292493351702317439347934247900251036645740363956705873011281026468745576266357269591740538288880133344912656388398738078989494461744150419107465996258560932873040172135887962976987131226874726430848279101530156889521546102893762689856042692950356854355805548436370035800453565972016737926500155059956307244220941908775684777364803608763594714062459889683034988343904590731017265207674694504529651856756358260199521386632927423945703762173550504668676227362089365315097132763796834609769387066620001968328501567073378279989591660326931561862568070294277237059012450264370664507522253310028570702268396436199521505494390236790339613262679453658222538742398368811813549744493158099052310874882403483182585885046311828839423756533563395574045474320759368141296079245817028425162034218367803713501487336820251203537908034874955710566445041622007372504179401220714079665808457452855118550297666629257727273639388054237779160995588673349083435754073675462402264181993718132526477663255886643060683928852848752378477009075207832643665654018877781795324668939871987831885578745955311374565951729113302366094218155223224175126589007650069953425993924828574359442599105616115309717247646308229245164903591346725043227430439153420548516383372059936421798755282440220068339700708664265235595075034358099600968765277397991684539394063777793424146512439647739058860689100572047129439269346646291102735307505045147088887238322508665581868081819752273433186603424584908232536652156316844366507794656897661130683774544108513831384103240658304758182318399257986876003957365839642639543171190295218804038820812504204745745578408449006652948193698180057354232002725488853392916153703831538461646093442980930003364106261837854431854767013431865733806990263471491428966915744376105517911441214420678968256338270800075104491924006341709956460823333071029573143440071830035413239873616838120709837168503792230143538529367192043524459643517368932474163597222108002796599382280342712749502010494161316662301082703561787220500995835408638705721691296174082146819402167789670539121122756406132005513412411449746509170774699903683146333611550944440249714050297097933176310977895701260201694957804151585006955002286624709141594825649407096350267274086989870445275834147196677693609208038332894035297248261826998594005073862877175775501016767624721104994335164000798506694111912381653290984958177629319814603196945286523367047517946409892724741754470546379645105561947675880635490766801112940258928992707039718648412735275122613560663654834856168824737840040374403155802560619584960096004200999104763163524215253463981860206583688826198826724511944000858038495829202586777104415109593127252570742351278846739536548787391868291636180067022578359922887941575896920501212186643154578157914355919113986794398710094235534059676089762569745176049845006980938193101490682677953969893695491457513925932904500232671358425556585678044335826828953589398074016310346061622930147488500291746670176335963659554769892803730093983772837845693820250137412438583836482699712718522297912315015239150969480057066053782528608551157379109090941301260383418944446740123603830973448586595594621969323214464070823915718609000200726591576450961620347485781185506986028149642166643331944850389463937818433862473341911631269840532013377399464509329690880961283023866269663983177992070221624326190585631067877972110932066340449306696410516025559366649254305748256136580965705881806133627340446174233074927372770892452747793894017572899808811292379394937774202414427097132432134206357406258979034037910069139368760548051787382908999545355967283397605492160619703242837287538262568894498563315766489821431522455649974986226459129950880683145738265816585216608414794493766496782645926717644508347275523950105574174021669939797868986309332431774484881970582546396888874211182123271767438634882135995315991152109923499159524206201512120820645951402290776235706298869209764684826240392908311669735435546393464019888993392905950111007378674389582935471081269869311706639258265964681805248019159945896691621502154385480603292200868586576537415228659928687674549414079080653471446429763590224952677994186189640586255527553769511506738688294183675322917956452271377583374158806120391170137693295633810469565458473757778543108167761296552233963062416984489825540934153213079666752860347915890550541725711625731730352513187965414990231054153841774011491787838665217598405026102172598730046833697100270632284346677241679766014192487276772948031047345621493116405883248470616746983944875309563640553827272799600524683501987037829599765730055564751469953065259393379297797281806830484155657505566027592285848043908320110883218340561152125562002931279785450068980393498725868674803961582445751419043010238275827585470509424868950409015545171395293757372171389475241094364121762565051677759416156590258103424115453292745577710269907659709636970093093023866456349583431054308494254427351876666835913063073359293892404996502566227430724748266005990723536445549087982805671415454128763729133746192203389084554319749352721942659229073194744046540495664689724987128006892679137974316677255370029992092552376154343092636822527897469843566087918680392315313699978318825276909987602137437503009385723485281297311346906703027979623603284161060140999656848504557362321296307652797301792699733056667783196745271442554121620591736169783523164916627727901404387717874297610392866967322847906043597178621735853584495225796143530578243491737926077136809245320182618990691521299711585804273296029171777260732948256702519455422953585471831770143719058495606846984186796037711440814633305797856682408881501853380563853036469450027470031307864864459965652104267314203299207293158625307038588732304313930956212358972659254065155025332795896758993783255134384264947918491279322302460322986747392420987817899315451429549457889122749373539236036271531878346671066197365934913290681015441157322056745624311954585363351271975470662932472015751679278058923195252408475033593031249785594413447013643333911088315764907340803759371721151895382324883933608549420129963448724069272867676629983796723077416409177050547561648421789783803458026623364858132956157924322290652425092132984662787817758782541380803544436386727778911371094363914003533743387782982443883638034503957533564512704870222639655814262082273643186349578058820246659052547703950105075461981638079961255682084226815004206010059154632109037558879409670972515054916292273450055594965316615277872491435115297251402641967662444978228788026133209501107801528349316220128727366692427607854301579423915697016579150592571976709620169131834113464435960920791424996270328384311307240660091266243708144199483165536787104532244549446915182130551913005431528928550923321871370310760631594787598002530676986904112376250564877890756892000991902590649629886216325120256042253086984865748616684523372893592127122573530827288022620559519810109206108777984690865581111712607261388781981595994813810716381110987858782079114492190988606359543246398866796064114388489996849923280791838002400549448968393673261402282021665542463886215534085655187473323157391003131148718007600042027201401697287294190882135631898062824323293788034035554122545304349502366290212737229731324859411915407269593426028112816057041904157392750560816222154248494204803420570713950275262376376298131879392485896813906638151528439580290222072963956001581576217494326720453987002818363230586728999304175390718285567565854141212766721562390197744975380814147905748877026035563761206379935349200392226080163303487308919811485792892263838890150556187956960911338860168506602458437867222574525945546276667417663673115608272963772979947702460282012941204086569004670632700929436629078007948385202507663445366220127640292869596073627802148649993131628608725566138644464884055322376373275286251601953842268309709923192190615238639389291505590677429622826117007784866142700077094010455405684510152551634028100885535860750837476572500444565288257912321099460879726176609913110982858674354676340829797070088990531597027640796452902178714367077594151041554216896956334991835747788744731693998642522978191657148744208729581565088441655611372090274804669438731122976503700324934562835574917261083721707065780160749309163737027771258163174291430181875294656694819073344126597705663185916573700926315054951729811255875469427356502637569100757295026435397071889317723801293045761681311850803710867146864258012963249771080360788987926435510462907054065559142895085487820551150000337082423746764114512669650237031138880288723989176941859087282632306597167113407439609828366329677803156126049774017676755478713818084543079432829903551449982101496562788216407981979424692130816451384264458111805063760106424772421758838634667720129643401376181955206785089143147381372461297778441088414781914360354937616877552695494748932071788308377709221426889445885421115694519279650860543013489883205359862398272815916864626326970252113185897898721481963394436253979278544439635409143043448887100804570768258123326981985132323826725034577147660950655130370589530298644446957465912554646854122123642661404875029039796479297823280587509589705523381706932852782723166427664842190959133027329912164195431323964727894854277353774975069382155628539464274282727953434236050664008873449765854633013153579356968054195408436652845625482545432924571048995122640453002593571400601419390131072994224364860830677572851578314067507967330084326302290074523394941541076257860448442918188366631187891307353355150646934549071316685131927194565920860372501409391050002592854976969385380653892823224652335987970981238844968617296908731062117412074660583044749882267681379164636878073130910866991794879465208402688924967551541294762561000449664125330995253400038715644146262528049809617085317193418301734382164149623597753674925509090572211140530414353181855053201627641695475037118797095860166327365531265924854478976122505876620333333028021026346807419295554351276315694520955788461885728053693433461811207396702343291068547030172145244109913570725088087644338744831547664681894702713607338392120966137970481000737698489394234917886069769172008469046963405826104261206564517205105109933491949292498468247531626788989035104200736034821240551151216782050387354275235648416468541247648925273686675948478308569772622509378958512737365713110290772680653018966316379182149043089918543597563412794007669371174230956893045347837481177932345651950800100422422123978577688005421934280404187413216730772747679564525144700359531835220905252082507231290911389558580416737293342186180469511715749977998862352704372690086290528264412223457846081122644009865928710677822351778781055458141703852974017212467792497723034245709218178651077836539674281099829780142999488083592515185772370666625083861088207882155236505062987828077469557695724603041574850337278930436363424896190544688147207235075759743821396562735589236125045557867167930379714839644504828720684867572815440361581713826343596227050635864693374589526234169623214956297947041207260958565385911821402748536751209968972085324974967722059310969595420489303091267686525665351451679716298095881582372981648557789496373352804784767381277069873290181271485532383427954128397885904073754707757704568397432325317001706737211317949156059222218823327575149449043732011759395161287492099782564741185588860309127849417414825371244207557086133416407357157275983821187246951333154003064611217713559601923286133539734103730429258627673784678770186457967599669948128349942113582731752079092227470787810010643999261354643325520692394363592472773877580875613572640839224246045159814235222618190739178868212125255567702258231046252101613711873391284047413581930931312871057497809243982652043739177984734122048007572820074788812503554604663336927102243044842680387945865282474328001028461876844049445363387976774576827557120281983073483655317026230288663159784883979841845714453009087153454420731971084861345150472405433635119046739938819430344476310303090533177010473538919009147754827844173775974290517389626388536752779383556367644502269419417073184674156373870823845505630308314683246492533392597247413290612229624411693375590162957617987449779442413986619454299371598351616122216566921754028650367346736431442119136112569246004010660591946371401104179050981009321235060043984154251196066814728869806209223070919537496587925970063774265407116156850447235042964198099714980207174356104535646143121011476077466324063007126564308554989590933390667705027680270546886361096130260476278041736655058243996616172806257220020327610938757602289065259168536699706125416246534274279647455638774530797035124873125895568656322210294609684558758410703037822791906262332773064594361058064649544783086062898330475258942432852547990651472024594290932899935423373585800304905677077974669922452286735188733171279001843402818507659069207000114599853191765472028154437636426575237261627292224773409126933490709898942672985108773585672875611240278654573054471530131888129016323077677606031232010855022278153854155808560369483310316797950769500236223245934700633923050946784168232876129211974910789423100803912902477534808529756102449257063221250897139546372430400787777714773686422664245278210038842571316407906405614801265002940139924648465267927505898382103283137819114842846025900882815366491931589711516985135413968124902470944669929003905074315486137196117517293182879906547563319175962776134930222926268341001228230578673341768871948022945912745616060459437165725808257256593271439474218548152580125673364590033689180547789591036826186069944989461517941642760603264200842183199482391240372095621924107709362632057324924394459217885541860196985904770569131097734599155661891954792158280026215283412308329975431316271078907094192921218232505793175192959534683794827543901490694787037124995474401934551685230755879091862486140773770015322622422370491919674411720573454477331750706546818501100471746424156315973967427160450367459863252830078996503309535374723904204184380390312963618520454528575329892895063757972638352908471584780278787293190395635495853049488421519889855441929182359165935817115061353537135460510149521190977854708521934288896082273068139466233158588543158975002946279607896985856742859451613898736431468915427489752642131566557182653120278544314274126874092785403325828515181791120770827403989515557516104630819977101651958644325393850736182213726643407967882746696960929783184924223826080125830566909586023450572812373624501966456657137673520668133974127500516556550309724976423135629000548724736003775260609400312600141613488948020186018497678953846504192544958099242002200121529694529265342124999022523977997276042082485338731237807047014839879791389794593768430877543857037201411727046719057864477671489679493640454031096749622569208117344255648194477380741582782024356675392894901329674217939692280750995632447946856570213071221968140045655028788351696685319397074363121922012878361868792258663711044743442838777826178713508897803103640693439107439360785484714728423429889231462231326247919515373262381454411456891359031358642455569489814888339521438816122179455579728039888857215703394490800726906824260554346544040714773279695907090988226751443232288891623343405344081194796909834935421060269478143646854194197213578242172339847286540153608216948267844787673887188240152045724937978473775665817817820287759461983016030349865546757698371902377941257206179472386758148805681807800898883034702800908329799738070920261796462553458735446848488148735026622806243082453453972934477802665547744081710683972693903369982540264461006873877216161116100405707015447542244554359267461328292827437467895903718768985403535306491975272739819126654789842543323753918062821961357795860075681749025449440978927758249027985175028343873090092626110683764638185478542390263909590065911297708312698115795746389498034844101610519853799721095001076954291377849435081951649695990641502625509731380743917633789476158165085237613227560869595572952934184083629862332445701014230728986009987712340722802443419001950698966147988367264789362744700721253895194996298439330094776881610713485914000653078351270994635462107573440755870619403460855661488666884191355872232825520631010033787629357584915215351457949770503502763922192599154830695721530736788727958412903793787237416712027414525197490749017345386480116698358614730220854078397968096798061536791011893844792453094155387246757463645224815257685000399169259128030895156181747292089144767105275951304228298168395002198430296245558979792520619767191492715799260229948736245649701836134374045315727031641585269408801573024738031179783269844511067387907645145367235781935233143214793282916662379143717195577574692814982437342512173101453409226678264804381474061086289217233997760135422959807070528788213461513560969821927987579311930247478593161788138168410590983008326457440096267623431090584049751875387928335095426050043629755392636643288482090276769342143859362816848595165340871170168225676489841562957538862752573654536429480556090297305542893384901430289671447552240899067957379180475314255154630590021014890491657628291562462621376053396855946984028050274681291900282506043401936483314351883169666888724233286781862452365823414822890989966968464366550426917329287257077167740520068683155119277166872472953786237881482204023710778840135016391400634924888334109823777056307713809832652156555391812607924743568323455929724696072323039324554381833664406181854340118489096531002266473936309051065235382713596625738563090752856827980518015356063478060489744765530483820731629400722799013257737192309784066616504214711725047343258786049099130920506953527522906326207132605024179422368692098364353248921169327733294832443762790386852793340626211835584348063918605211280379138037109102719343382648661528457625795025450278422171086997933691927825710872672352269796473734530847277722135719016499087679366722180596656803419072815804411916082355925757397590745219347688786358268274487473036339064383546643848688237048687784090768843528378010590957314843397050968726575034724371232835005248569296939113829437752166727978349567190340555355529273669949974963457234781992924676511960579332794829598033119290187349367695018712169422752062919558213943803445325607141593463675589898331777431273860373224356322758067486621816571088458481747058965848991787533033097331475239909388971876803636072766571540973165576872753095010553260298368797741273223842002697183841769194374094945292632365852180899963405843553081552565740322605758697316232088291539771124681816416854331676475238605620354832892986745249567421896662804193771073011611808942080837809380989752169799056728074826664001525732521845348874442976628413946343539572868938245532202998327853683735346156350378913524330636188339945521400708819561735645419917992756146241518764364714287463292988215287963226013963012537575709648789050217143668319758207354339555019058785640676193799193419790991119616074705275672342241653682314097319655721283554714219288608107296835934129364094039766046114412837495608480999360716841659910287067549819228192657793381689540375302490164676337465999368462919630134060724273750712552431847345720648928051096655194898011926556058165821900534529883522446894174418965966542388135062611146438969967779200494547181340467133941675020014457640838312144106259056441015623978766956791920735482193305510013414136489647433791029640615019431794859660353643957506473368108922285845375283747611692973763753346628985957762519014444734867911013694112176381680359599193614711307981091848849679242630808607257109315325283077679712520061417661700022690022222690949579470448537570290134419551275071044440910732990860250259809781685156876558020675128034525490595223108731574253701436017772923750164284295028213936750571953463956306573207154444377051621618195076042434012500495890600353584979010630363972811850007579243025672694849375540402509771163943458864362794570588249853924623493795533332636363023682159134124223121987177226288695127027165463403162025513970788163531380030519617644334603512190351439472167853326171494133776769046261580376233149039439917639985699894434886520498942637657539998471886389222032223483229313307965455688163613277464733552152820958914378411637898151341708169095538365147464212748940838663344313053191109222505688363686304604977815896841051883010877396700071156096206526825999036007369913970564958582704927950152053047875628486603606536481831356233049151760395915904830135646116561056827802870924306854549195341831413398390602673600145231567825786768949168280454413774173675178947263977893299030714983449134160627435443548915755836364046920688635088946664106622352179453543585032525780635897448987468950745042917618580222188256911759483194128896657589200835027545016941100625040295650265108022963170317322495959317021683804073064641751855188086203736966227029120522265073903597036283566696339690774679436207835328613318863061197988631605546284913867906998796878761106043523692536325273108808991199685536520292132018170906633148647841924986350606164363241729259513217403674165937673071649691955817371473621554529696789326004346565614308287824271344590468239066635569965242149666741870247651136382691588205158813894459085140144089879503604101544418410589615740220359741332604516206346477356297471940641475676885638912106806198252361375674169110299519642972156865299603749962596223661600833223701709869063309550910812411388689049895841967520538742321505782441715681255819913046990201886088969887782723864967920235674354053638765347317183423807760410238769794479948331390928323664864895917238287618374039464685871733770722394374637092580393007743012725767762592398665548158749610755505105191553796632438793805936696162595864870417279339011769519166425144125945788753203826407461835434353611266338736555492864749788284803149939560664400532425037720519660422039863712133493248036830305029551371205768929105748182726232581572487839808426211959221564859134800475568387214702553382783513493554143590538989838886711931054972109051555469842380762743333023612868991882347678429238348260311427959928727322601144301711621085241327609844883101680092432477383936664024401624325357628845363145090685925734713591616456302987334753339478378597138816072347491219046975079122223469106857642873967555294359327224582599245237488135578854906625102183731253477690826204571420151079698421388596121068125286098163470298075208396762890982116946175251965165092431082813736468435946479552136386130775426917930801288220746558217007331464432597640199857821848160020992730044636735221739969513851940061374036235588002369865768862692213125059614767690409697243021006972224305453400956630644816324532112567487370231935795514207055174770208067544367850393168901171823341680570879358546735461767489346725632273025473436376065835050814931844563486896487145023180508591860705373283583432161229772881008046953222833410384311078281187347556313125618466274349431849815327460641930796123707503753156963507018650685010994992766011858165408547284877882743540464707755612222146741937114905486847185726901319685444430538155541444025172763266125166227119130344643667423188742374517178919888169808446559863881576689720163893109929101049891839709933317021232100129485262369647463162560745945228472376483746285546825048747265397109082963748415721948682661985066972586203654987953989876410579021511606954616200230000694274471621733589392942600501002725059216138909360517633333861720892291169850894445926213294515479423052889419388177889687808436586217708059095421630535873324467492304928440599914119542557720654777676097264185757862391402354865919435250228695107738979512341076678223605674782349930071120437925633877391210552472175904524925431054248739188755086827291740797358625268748861232670550685392553700809978877995134661275101046110653996851200551063117246365440505043361784464359575609287612410956092682372585815962366326236851842704287921319962567641411853187457780699202632510042688637308537922181738176912693342048405968269871279360647267143760370503185402226313901298482188040238763878621342827935918442579326617728097046216694099369912029484387318447490955895976721866759412059671482704978810605767760817529897176848675582318888658371730294410256366335856110256732956324081543791411310196067012034235538464193767084589316315408550377159904177688024792594413805823326151731439192115026491007228213974500072363378153802501304027345830093543977553733090686608349377725118982229837075386668374523007930375491785335107281232667353249783370765077144935070559236494315445589836254673874870651505224111940415275738552001356976074446981209352543437265252304992128031670994610866579717860745330803590057598287157786978610478140128783175183659923957005736387893652678919390740573795829269944925861634296709163296866351928377924872496855078020423193966451492603884100791812842662460062080073579519402725557980245186495246797154321530749209924544583063558812354454889120412283596104731284959803456489282486868406777980827948101777221802336317322721596531513904075520262171911384040541200676726961559172111760115887254974914455425403526305602242887619071962859924819149808571635149709517125712582294039291633370846933478719042103238398816967062357514806766305374554865227551703246862737515168297163733793221613018294169376611450703466603231756829879256571798336833324181555910086602711518409358048260215591074040854086238115275468643784112831159076077687215979709548272708348804108194546904881720539113663601867958497298348248905512874642802320542192817764541117192454482849834154172478050211835675812036550877590432102465147173754464555133927206939998359426054547703142522347116301381537534698450898398129177076366050313786362943163675216212422082436751887830080807951853508878481440650899150232346099347783277410223928316520467208764624084634600464613454096802370386171051544933857614312843382621623197791296175610368238226090856271365011607103063698078435599281526827788779760067687496146604901219864419336248064811581376715923292093960186495559823296729485084923314193325419847418599370957910410978285996230606171452660923375273772516564300177672581424944069964500887811704188405278449897938413690391309531970461882652198982414709447692997499544920106199014552777538177125585890071001340316578213668437164208418814351494958855644191693170920037795930568268182163608210505538139175364931358412161271262835435623497565982541523357761551099387170295980564659389662046133021440860226855755540669608233113439732264196937119415621060768622468171589933737990234196570407519911055295209612746160705470869731415923717286482485166347336275202322165545831653472997716424089975881260436503030489888262574391627322522523385125242383962934485936013052394667480905245886359932996547664895433494218790836791188212395909106484626329147526795042977528512185813425230348444427541377327203796292986943633785515684404305767890603086280357295109203694726314355168477941418058456900015476827857770623704332612608737926907569572474765241265060281749424861276003638259073128726763621023636420845100553751288681492613177954496031505663303659381427980724028006159093993258303027670353588254049477788661256973483629250133571527961760306036391523082694518298577311307140564006363639679026964051876785749211259898152162534316521647072365508598839398309444074134245557394543286887412378476030334669919014816042721908537334716934612675456010149044598014016243084155838731999912436788283568617672788865052291766130727852011819110147847396743577634592052590738454993523656869945243889388600044728989873311909991259501353143316893327443197461389954196204404099230265365862889349687973228967332542844260466615743176130035051173434066497495397564933336130103085703800751160759239890918716432995074639514247440614248631843445837219500832829841895471005353350981231487875160837057135033107931798271785731014881265538925065793303097137990084042960756571765993372515893195462343908293628427482952252569247158684252965705422029094480953313293945340062016003222495918158479376062681312146892430718665591131503880442746819996144763399555556804141574530919932186818170313070691987961113802231809585204966953476590791888699878362160045465206531878707520615393444542325458122037956068724176116936067508325780839971046760042931255500427827568355045336996825557559735841590922485594547742895313643436761884349599828278325857751642914824661956980380842972250307236603322963849838726180460358186880081011344519342493364918890809355039421721438485492480919732095794965372446073960306690533140094069533226935453903635090881470219139607679254164331331521018391068351796596203918101719359348804611282378267508493229137575666801066615659751456566108612603989123155157101491424887344660897874038751606231761289645511031460687378123872881557099149875834053641959895867789698174907284640510531472493442657800800628431736628716070753421423779940183416262380176260034291664316494264929847009217747769476155060998238655958975951877342904974073962013315088220050401829121212177249295148177562897391073193893888675811373957987013991691148461539719688122946612013395768403026225595222956442377379242966263066278478130409725597870726089897693251702811092529573241990677222404759179357961277988360959348486407480490218198073330825529522434744074204773377699741174476417495608350518833876825284253228041043270929830757132616456204210961199866608791567808562084934965946781774686509357243417127989530626614061494249447129038025317389875013625079805511881217748277245517656894137749838226760051149897789953681450727788397988254522164845248050909424543262897356992404583941304985561547254608450908974952393425484938430226216830224561510903866149667929761951555918057224811834364415829308821887307887129656295397872167289602169169433361057308610167603677088907181390260429495511429485294749513732174678463494683720195159170381445615058015760980084663289465710844459585604543062775411468171412851178119424667428301958145089457566278467583587843474210140642749917127447258593442805364022378890073074836987690554093675855844234871712294361598960376773078169078756692521601060894528924131821337925932489463379625085917423107303765437845599504763478411288477507660174493225405719864760249446963258235448709423038717853078252018014677223563024772179105686279737856650576122251041707354089466660567116734849166819470446363494912030584662558821043430024197073387294830826857261769148301842075293585947256984327712591440972852729576111620536559610751222804572675226548414717837940062471196822832949379095983819711576898408869342369573377847361646678643472227359220944525448757576345045914044137447660530639097148470959937716394522773661888559258612441425852712165923610870099872963234841142975631136823352644411901691405838031456184518964443098415839873090402211612686507837093416829271530070370522478307791425064543064854110881828872487883529398979708666009505709047853854676854108986884158359094379228617013676522587061494727704672095319195363279678213491368471735068163680326623852380875157356110819232483780399902947660733206146560708178985522062716023274767744051496558266790465876711475434965237774048787347152526372892095776503757023398478941967452116166463393960384180858021138843227665804392450055973737862269735662272364765085617655052867233015447756008990117380320794088992444443963017856763331995669809528602986364210520044898798374320819367626124703468734698638458052818768569486472139608810252988153942800120125426134887731282545576625121636451258862371475252123489171731406500337353450515500823414233412425918642867213302453305688689380782408252007070844471539083682900342326740500688847463621050568258004517191695515628296482793967571969668586877684571107568256727071038776994119793483813890606240313439170420297675976597351315837291006939580842821691920164462401622782354108223058081194573290567509002246887946999638881934542260685696081536560989734876642026129232544368731817249058565046528165448407556864713396921288384687344363834295170290810709426313925593601488010721887259201992850319830705515188962143961540480121702527374311843870611306913373130230201460510147753216761305155955746162376076459928793469338839470117970977045889881622368713843396550344469128771144531985775824659890477144818032116717614417263256156962189558937326881861046452120607427832747606693587923415931924324153324803539382019659735361589196748500812893386812909253716305867386673853374653969821881774013867788281789332520110851596098505717173808914880371707495290187641379993465342458907306007660139894178483330923427290500179524769142406228699437336392477525510326212604043640530414495644460090799875188574441108959723780803855157185670700070587208660103117832820096143983808721386414140194439004613566705769055854018046240180271325402772696590468237835422078475706949150499278828208731814331823526594564895590876651666421460211360356412199895233645915808843362165304794267265061311298949394284389711636697398061687227779376867465921406670127249201573201032902390465936258604803740799920643264167696236658189961484075110539621137189746577496154869707903192413549691835233870949495600918735772064481722673739288037627052892205916689125800278052153659305273036502803074827071548219706489961642121575918897190022396035611892503645765383658344078347640843785560491216262609747957908553268932814851832330570220511149227571361880610031494633232567248675544668599680008854841763285275715322541882919288401426964417551989660548628706816601213311927345852473978593102699109201390089585716367214034793943753449291896523177177426299933060770242242923735171161759264134010705237729176196388520898730542677722404929334585979742815111157712135343883587862287592461866333014347987347002638008061722992897553234557212233104859962215899750303204972245700717515566166911459665093888172625849339630719463255931249477399865741948464702377180504995045750669244206331622623167766630911043551195569757656718222970804559964848067955179941723196988592394655783996472121827223720880023271451655266309435221236498833535455835662907546246900657692387012268524011746113357221414298337270068534983801495033028921357619392928840568284226374078144049825699879320141128697636310107770141021231040733824386069937476929633264670087002807194828468535234305313693785511819945949178330778025053473762204513246187971579980740347044475984685753238809920706972065339422970414393480331659233301670313656752825774603501298719750080007102710453102884167727560492724851273782942917824609282598509882834451184252577150536258449067707188543928890774099192778578119481698056625588005590104710563484737472984701861933443259506982955734935071990926306920688712235401372861207005500390517790205067390157925960992234065865727555570542285827986414720076893786084620678812869319383813891922203060169675211736103482668875944912622808587662513426818399417534662771669268354474032561426865559385848987274625129746383974667272390879353034147862419242695887556398731703241587260995258818796472431534307240740396850208426866650188287858841488751548615650990004633923274636729020394365601936296654255226466117972496651607563026973090925813278158027861257532385196874057735354274609246682278692803486374163801820853152944996156189154615184385840128985123216259449878440080618353881509899242143718207389660322744410539209473293008749236607635836218961455292048386639224958702206188133131338264477440649678735187348579495951727959757137694279278536365163851829874889142333940046059445322390065312124606654560972066509067856528831044338292164842719195681831150916558738199767963004441059200425991729770767953781175485296966462133527993111172044129065412729497863948816510827758282840048420291663228376965262732027249165885986330368613951887069992474411857022566064071612351444843753797468596680642261006311597007091825897237328498219390294992619167468130161406540059953484314881088030680054824002628676796969871860733462975433655665789970027601914837561363449852372001201156137818281701795200563981008305634006131032671747679450338458287933294010181546437568362820780592650187156659773092898338076284054122158788125479776982583927122779873070898224985392435098107273444332507180497320633210877545479070617789834559084517952428162808931245193207053406820201725527444230422411720704236522807997161032836247111943250725928602049743218609004023398316432920777171830708460860089110519727717918864720600733409547001011019780976156364719759137352212570719411373729999551655822366500469829407807222037899509956422087854882526629234132015922345136211508854653752174939924420627820186450542892937519748040529289898420012487617331355785857900278236255466665161662262255522000559826748654429543121509711395071723723838177216640241288615263408577282858861589313655114659884491421255231351450286826214994210298597855769656127115602625617160704997090391960322123217041728107231410156141524326429758286537665166872134221777116571970127909450105147289811295724872343988173382074406189618737363393810229885635585259961674163325889064607844918378412880998224830830530215930188217765635262191518056280444507706658198433130373716543417794139054056510555637255063989553541414958263965959910435936437657522627799195969680446480564427598784586078303178318931220144184086507181519582100380742046775374752902029404977227103256234901772461537614045784868544836660488600905145242367591686118969942915562884255493850023605251113317120167607977577974933046316730635130850931604543771948718731285309134973381899479095662165562266460368017962937195778339768504663475554772446484658432116552698590743228858840300549866928859957360776301478036699599602897287247293622230335141321054320746730710882735110734864002999720385707739852039620393710251171557269149963580911499187109672660145939346311145419822981253152725428257035899340172796833120650628003040175772686688917992030168428944676220710549800785099925420167620563890222561811643612408741195534011073802217773164606196635641741278718455907045935819330063157842688308140700549973791611911465084303617342246920621299671095675453530837663270182427864958535081182501943197746729690034214814504678742016450043102117147310550394316754364556484310470126146397942267685388643628187693225538479973789576048318192452488824920868214410440025499581795886547192503353461341380660131079700709062367722715978615598559708123842565587512062332724851186518175201007089537682625500501902914583422230178929373530676090981974755231938960011765048825510104740807942976252463476811063358718703942360019886592834676984439815047750800193670838184318679849971748473467874980439410438598448909748175964582399189339826565465919828077077010485739300895630551505814106582487341046852421445740833863076658767028481529769660114225464037048071290666666596809292347345172589865254446751127895781821331207972561952131894281473746999345119750146396162235961050556730117957378883423673358077341994291537653598990960556597934245610364913575795213319011424831056949713503386971320147902608245094527486868469463650273429203521824348379576583501304005517285439955384922145037738017791632369607496539018643431625833235563199528952578755913898384471007994339501920274144632170068185232775311051128985400399760199553833363505338324241418009235152756518842579535761607197756618124970767687144387761212211974015112635635024421964199215099106491987297532804983520474853340518872378525621960629379580996232428701940837129888012313943573177801411040296987166714665163525758786381404681216234056642219975518011893054957457337237771903017361248762217886895392213366312460505353477376096988372614302917591370155624144185634495737370698885907812975533944218469203987554458901559297389267299860517091972048528700785051270835029340412789429122467853404097354315969449284432018070650502872017827815443943612378522637648823875094589386611511866254464126091291024018608523123158670849784967556445528384549822318764436927629058806658718945978195453053361170381504832689615354031149625139841753114580372132510621616518562362824629748811542915949660426170953650636061153715412862202275050974321825170505912624280212282344193404555945429313636222396479705481603690188146325068859080206785570188366991694840522573270746954959209854246488836258769749145458898432729440892109033999277902420902254826635317061711642679259286264207367884455580022572724321802522731441101082421883710092514411350720102905965081329929970669514499118896737987438716601522509106301979233200170360987206585623452019363575554285232470706711682910429499091819756761087415778566198659722033496254569789234515102943532661519866042400465449169115860172044621153031617073309402996587234406925960972816110071966483753155201149807988354502087462074184549709855707325444249192004803362498257290128858818933292099270095455292873896439776639631380018022590588329776924571876621971814112957832392345856101178285921259768798020467487312361935339766831921447135829933360320776221675244051454520220731690754577940108965814205237275916216133049049140147075786397833524199862809986480182472273676768988175475099537884250256802663173833365227221970974875930434267276170295487616688252208378003034273060537648080226665988972353171162887274166037907719536672676529573048130089921447583525914447126860311202965095848371082181641082539614592013528069687250722492267935337745808406186301344522143162589139662041729370258872368013736261981155168252009132079875004197639157547238407521200768701418564889745540321031041464840343806437372567345347362292714738725822075448502950537447454781238729798901349331165770104864742735719981877568957391374812258264158593537202493972387070323583728869742120021053158668186943617007847634565606963555172309516588479429235280743165567255594425966570780016830986175270281332892470415482954069520460194877551002150333662563668047432630404829470494312885658022644153935107620444567169861872475507940446880210277690597922420007274072943153175065389027696833206919460067382363241864932711118509946598982288097173399695940264062898956167638834567796170683573091786912716557158931164544554942476333795486504550702668653674526724803473000981701480011504012775505137622777235763516741440418559506005080399083537961185530332004553047767078685899597406612370554220802547619165481346285866108965188075677200391840201563195610771691122664774186171620690214712416397034411570128430854248447442744089159992053034258684690914214695455099879777673127802090686895098407111167149141595562511354219935699506555988269577848246738960035020822591316850457220547179228520313576307627506132587156875026338742310552293935442967532282829581257580135492925616404575413028366271087178688029615492519590573858966624910729139957181001177737390248928965356002312113966645341327915896429016261895982893468795945754515638902264600353775818626522557592887408790066821950526912897250262720930470971095544002680559545367271850722183884885502632588353711308098459157953206217708304903574685386775295606478916793795608420041265935070216033661473170906511575214762699930974533709238979608567831684190466573237936404001918090733708060782399115283277715006446215797320526489436099623350829226190204115921777119456514022501268363166296453618077994962175784279415966549457003772061999229961088784061972017049237654449500703989220570313414009710981819010252661398366184497590550887861100021217639916092838826051687420503759656512911426208842171833947237476364876727479801560334167390403847561701419862136304054083034047594467446219638020390985729839433790419030258967624459389152058506769655667011971047039509899708250491578565550251789703223453214994516616040268791245390141782809323665807269493897812522318988306795409677062689789983434694538446916990898136732822136870415851189168926615625579821807905588006686511648191790877228173294963744463853321679227010032439645202096255824545570643534831323441458861764460020498568755818201079484948437936733077968341063006862042892153780318335346578866134788019555477428325595780715222754735292094180161913964118909054733606073697004606145555911850252778330917779983860355899572298745028691638949855356572143885248423562680130412514350629104911930153230282695828232910307142277172493892612879137746880555961698001822770328514530712123613287809048170950094515596981345783196823803348567139090165439551183025511167765640799626297216990306189485410415481058807447801217320453855780008813581524417015036277894722850675717958212902465765091713614131846245435576806882850502411118143236754023799977675447181522870403612993924640141885309115625739250613085367064605703455409957391865721023350567033801116451078539672731010595157423089355556177983787027344610030088170684790177721590581193213004843498482483931414097947550576275230992550692933756736172523834716786861026952953018245058730036863868523009497940825930850889585072820161194482941943176828446577066038149291283433168684947106677879188096221580318691736900615410508071948271203166545511902850160014294700143905844342025108859211730470716867084736926122357814252220837255071925406628480706797734548964754881367085668636820607760666201134335834878567653762326827271065986176125525729497871191562454304739547349383482995069704801547558224489944630428184983047859469156985445397453456962659919279275617038026380075585985282741207486400278892848783805613642346841802529743658384819432783252372674934765051267095510195119957755968272368637714126981482014142496344370819171440152599448702762589405134773056380518504929608210964030173283925715114559536683246276723774620351263800541298638636789045548245807838569138589981416776094992018613565932933647381802448666366397814513776164109885747320575283841315306172179464043384975372596556625972210711540167867667549067457553275016623904127070081523276988216796775349441600566543474129400362792631221745013890318128853294003446456183503474359503712521283049496105292532096421441732314279647853586172654325951675220311218975511846918798496714397490605267906879794297310109177411866295169097842920379109230083844351592776157083777314840920591830183249704969102846551732707926911260572604380887226919295434578491547539360865033033431299591817732400543259054569407827007487151792177127116929953794673507970795635758174764514512706284176657389980660237817693312021141878763543570102101864053149235964607979108776953594207841372477861032121669122181401714631072135081906048499945498572356752469900926212136114991662148723266871096719469404214899829642448906596425648215227347010339813755847965387615413265009363066281041526783110705902131608520815693709988183518001314646800806982209097746317467399848370696618335637344350183344821138252455403052501365715294424490739570426396890880403700700007684119261559838252851743198599606749464872365273826696135990704363092590913247696227350801801207601489970024669244262822938976788974377090276992399180454350552076193507517157289458124289072756176251213486319691728270678679370196464837804497639833835311752242547251858265143257837027591915756830071486781684051490819333706980613569537168451326188695342622938851067765655762469620196913522098912727523980644221956165061155300781183148042364027016900589136733607867445211089121885782438194896059888712348384086446751900791890175332275214390782613785726304898091175158499178196947282772803366693176713883793484687747508507062505383587179881014205064371452386369747709871617196126966227889794923649051446367651869129526569463345643278954606328174356849544573044102295967756751286393412827592198219680506690727384614031419364535636808151097156052848201909659784214088775505467604691888585249754694910259600135599339856819648876105830223171776936712028348935297731585083704683569645898121861720912209015524867149180703921997062929653654606073053511557810833018747432374823062322106622650136363167618870871270494522986813012196776529842746429779618584452010492230677587981112477447490477900617334663281135365215212460766111532720553264065488514190853675131449440113645855088304523488088648238772201374551051306134115490557899608529427453868301019512487570829943149169649707200391332802461467286521104015421134261193785090515641968831492038749091854508842910883603033159861104511508683840762045371764601882057743627472559368689913267220883385626808037064771504307802577035171057529691355810309625569248805739827505499721048672686891192353007413759926180334540979524668775906444903506718105225554093882904246973884683843680720811608379070731577422415969561467410745842615747435343323302692209302500138606349860357011083383799594667385087519755888957332162089223114953390270475819693646680224425242716619095829274557962463586988024563825734334272902423706666389859305159062904729657857079378907312905221021736318674968104677111142227680331882361318411262261248817708797275813356489650022649210605196152962006450874158981586752688350111127293852018293654888560688236563096909393671174775196191128473508966921335248074091989447096328502105806837908565096450012689261208427146300675886086473747519335771162189630704487760494574624575210645378427571352714932809193190166499270613529931304830807370178308520290963185577930539334033139827086488947411308859374308956289902767108232594206042196718886709668002648503847545085849819790318239262803590967404084359960230867030800703612960140280275608498625463560498721117342162160298958150472127825677943481749010310883682531280187124037471407251874710282664377815228441085645151476160483664376282488538057405166554512709350801888354232396409443417495692959118866301546957450521060620199785516608279647341889073159184267930542037986484307142205151505062026620247455755628413529249896150624734901834059299389432078684572454914034101308352893607524634022360808046019527211139629691606923657461476218754627654101239960885576917966019870821288393983055653648585793594616513739984039102222430151961227102057269186184112559049043462888386721050993714121594560425038361483794457339128091770019506316835050939135175826884423911495822389949067293266300550023722027461352013217909445800455149416355172979888730676427702539637195422426018675106441958721767011473020443258128593730965162419552695944756826207801506826571628855628505704368765436205325108930568367916488958187641261092404337389676115075600968639540574365270211594779322719826807568443540682188458324309438373333219138275517916086633532681463250703702318813653624415802666350790206246377252560860016055951288334674415265311440664456732301501126299365670559987003806455855107478297434713991635006846418662935042046364949405192089264208130053758113653997451978022485216903270487560886863539144413643669975854823118222857962206036771878199279903154906629062182607237383576787509138077617170318275801414207412934392245800452749072321341968741622485475906305055450912089191495372026585513700816640240821583701811168757474247121374358915705227011745253336223422192525089605154636414583189271743923247968348127142306944842053551357503129544212489774447330521479914769420321849488050015486508246990537745313379230921811174652305225219838007587773464359828117838109108457945366477565209247708847563075554483592047572911912873018639073618919504666498054444244968523679936795298673577116008301922621421204279173382994280912153697177407008096098599960294986808022095050982904520822856394518035254288546154395490992041773723995424903557704317573399024662379679160294762717189234079736344725794030723016316038039287487489654906823284553295944856120937709749737950733382100973487020847321392808474675954879308419376740985900856803049907199850673220226165534381992692387052598962874092485465690666599462737784202077544815800568166977631337047237980510145822962548076763137423071663026780122562541320185202887943345896920311741753658250536590020461253333420559155320758007684722891118904119212628757520873026531381720846835639070276080195663791953622782062257425468909027088502469048984631053674492580208799901524698278436264823164810164330441620666404617143734638218795846426448248606788861597504198308941577135716346861106566128176663333159932701444839584007020658766586845327763702145763565993812630751062944539254910196702337653667882146396391509665819350407312636515194925857946678084272173726835693396877480355132156899157793824664407529084443149735613082730766414426386330920124351922318725660936255239698667334759333195383787068328588426103216121652191329022165194291934430263352172631986815573661252114355625605070243732916580911155285369813408952319470013412801337540007437748752555026430453118976685120769502883997876617021076816302166989109315120900578839147172917525722268117909187578862215436679627807803311824094503096801847694639058868462372825977976702953128568859488958428633368132777310464020885525852619875780701737389704675018789061937371548698581450657404951034456834423086659797636735388539788839967714841709826721570477111364378161105653024097680595114153601082344149959493153792535828285488998813725080997665928907618212201874099687984301568158560618268337115158338248443548787495673245774187571432038115660800107212133958073325052738759245446181357473194845565808427312460109181692807764091686289630315854335462433458446752678515357916234887483063348934263003300050999645434598134746627356745822681527972662479440451136832249689440161937249957980704463477153865852412379634469560303186542425382096188700051783968099173927922907552962813551539657602631831974706104501900190060473429850363660444035606193450005115090211738403098443695210279827523153632724403867142080341062731389304567927848957952533805352110722920302297132557796711274493499998174693594822861305568171586141193887641513728769013267203328807027087504602764637134362559311849119123735620899422905009377327927784576916395888138894758773058445193144871411880292675469165209352694746011735750708515384477746860662847024469723620094379274492280039164782628664886660146879197902303192314632552744126723979131981074119370602796289475776563333414437329986133052292337458983040238036466776635765181504849699698993753518085387204747421916429916428506931442341775863227815651317444169516840431035129287205980688342481002890300200584351020266839256551374547556447920740462650209723752798625062757330696786766683654717993911494305568515584920539218683227892319005070578624132423663409449818633895400788931372726556465285309571057825758822164023854679150990818114617716620597666267329529995457614852530136666633783844797761376107984723025002331584158346922427709956257404052472772689791440005088414364248683493570981819417459315270502111936547768917515851338229712246915363410405358596018804099781220227030779908022710142372446860209045205006648189724894370145579505423892731120500477966925653466425415341096903541346253530274355223188073805233846920701044608111315555824664132858054851970325427194236142372517718618211962700266581271974257106311081734745751151515934168292690357668669104437082237759057321624322503162571576271598020490211671561641659350188616453502553353632567761238363607187191520827419381345438982005130152482034971201838405194182305365611287307381184416908460719057999562522850896947949016537888742798802296820006226866082344775493027802952536718392350267775760376101418664480057146502948318979170492431999997968431466867985750722967020669743686183229816627176178403446973653908790072787076696976931153692339259357101206039843659934618190752352279472335743799689365530528958140440894288357610882691050622685737706906300756172242455324496786353735705999115076023745738005679210165284419034208207289706032442771449973354352767339807843363361261902668469935382190603964691213530262275635217692077417739421810997099751107621387583923045891107375814783057221534180601534893698374662062632016266591211422878760544515713860723826668173184437730382504048963531883276083106275304260163697538374880463874863653321850010519293036293964822448711326717853234917819672145721557824136915458963415155479699256186799390748735866946843456113977880703026935886209592560778694902180701963534153225835067935438446928971296126416515143089651425798218743294435652823262654670814814916499958243028648366559434894818618613985918496793001481071848413173450389202292077990738877493225319727129275719070404852007987352187095519907018528488859686732656645081816126090796327569091845085765466280016064961319777750060639826633395900209178532323007989656575638968477563192207946313633011135943784934933011052474514283379423328937602104011270649509226486491301652523083316906798886265411192915675639493496781189431217640803596902081502001758246903584704116094137718914946385123316731067896348821943670426061144321541620953573611813774969656878871131890177614744840071789674911679301759661709453497895696021416105022017407390982716639216982213145843887661857471277648244670936428451815432939454054125040132312049736658074241205869472685876010669015570514412344640780433172499041973166661974067719392907229597747429691556601449654678877662213436386283355893117217111127759319894987410573308807461884537755288599820744303852467359400561593957562815463744917233532154048570311849826289734471495757889190283487146677100103572641643917981556984901309020570992866761214089043610513806087442942436373362652627931353459848291885396810322726086299327720837749106735955582207893120631069476930665672800886566309784102173445826437772410441809487518071525080665821313170399158086749917394801838978654761460645411708165624913137474145212610866560275791281941303521572331317294383847554762196715703564584099249762983843638231749879964142040528949908703381028594631580713566635789137819279852989102193683523684010260108996561378110976062343913190145718560377505998059928526789205309446963205676230542850506156635575371976391624547954175476216241429759811316360527936436347610137047357586602803035960537096782650375174155099513292677730662901630132898628395524982328805169270895741236216796959992650967284066069024389774887027334554055225407985306327153985297751364220769042960082130763185066225309439464185916963758607596978611103157244256444389035034203970950776039812862171911965245157592129674532704605169133732723675835080517281173636423243281709955329357178916163134860680446039137079983011317701267193168566577183914421178399400559639447782369034096609103326838753561828725082732413607149491377900467907782914651759938526119617758597698680149273037935171383564575650827004757737181170085649791672790327718373529298730682679543520409553879675497955863606820331645981288612345479738149421048416716675652041569356062836457720463170397929558441307639879939362967075595161003042324669211472140894979550085110022811716668054314178773368879699383334808565175156696913715064226579253799447039207594775882762280359022503976434619808440387867406177618409247982854720416696439634035049981877280385702620233859030617225087030308070094811792289160689402391444999830717059279876827471668752347540356216616091348615684647923190318812499432821051269956114462735627761512546694800875807590980329795287297841171246584727494670462965469547461614958227396332070948856076949904786878691522498062736775261326560837268947674592855474314061947894755042089363127163675991061537946319915634014434656548185762260493495090063011070342789997032022819024890603720046065253841059311584885086997496604126442287482571837544627946298390349667693359077554305367611801289105262645627435092799476922076205898843093258742288053956368712073708325988189121283771010557241727862921367387145728493460130864509430063596375942470906884403855244603121231613045764874391105990268082487286674959188959912634265579518392559607794502672276973787994679993170790720714802117354371060186866541625378111713420474101798200809293627262158763511659045777043756988149365329329495703688114604897306424487749268476830524489381243128700471981999634865367033526628789579254093834144875752013100712244650351886506583184297091211153032620767186772213261252704312951084535395181002685644295120184361597543572638052695741218936385353381319769949310264321723552681370436356405530564777517231996342120768812726418196282233765353652820605545071092720950048219024150952898851709319241298688049896389707260069610898544985257682185523189435974135440962392968330564984002141057930251711984991288861152899170100345230521725644415354044452586466099682568438313032220039854118212957008473126912767792572327556278331778535834657021383710346958687964550512864691202426270944896173823523727762021347205007251487119684566282237329103794736027366877503112439347845377806493923505410777527183410058759345806105118754622901977994623073641129066844040399602610702203737422950273671764381761129891193595519094420999006613744606084552947250733811211472551007097552353467819605868924132752260847328984489141251706991452112347840306199678065555105616574621823819118653678699960097431449100436275866989963094489120755363141624767564872083678830241359108322592476494322938603448766721101786994039307054414595616012904399251973537842513956831037692601408545930476766568585438589039861809794249111437437338355376756600565647429919425569435756971867899340313040568009715038115846272426577354466936536597485882671758176626734475680006624024069821244692855819529886678267889656087100588442274044391126963506213840361782819923915116749399111733188900602765094588073442390591361878027093406419927833192569862734803113850678094789711736838385573095230538110142867784895225697841642403233043278372166086186018450551222740988081468783116953084563674205698472340381552683727659886075567410251713373537282921016830903488909279866835368548695872604795525588276184560261363946739852148745784123306996946501530923993504291720466841199655089362220075070413037275680020340440745200095842684223361398371276962565795865220774450776783291217673208215011727955207657040046871744044380409805303013282010422181199265081220167765111563282623289332837372176685385335449217567265361874892392034141723774794673844558632530904380224557900634091447735873313397924085494928703502703864547038759759250312920684589137379682451686158046945528744487957687184567082420318007156021767017068330500539356652836453455074797802292930440880529646973537166241312859248380318295548203946447427453008961045145253223135788459262387651331363399510014797316327638347405062753341014523388044703248507433702673103968760298650267547624245165149679608385527807255197740906235481442171586769712613958168471205640378968117550132421078008440586282718178326220359753082724577700751382843908341535340845079017425719817153592425247742949298002288318237324664067713503106503803514657545982444856081908739172366284327375940371833663236047124900064515867001180680617866977638728280516608918465329317028097261801290203583313572578057762863056596947454620517862359428826568083128249621443080912496910995497336253351477915183787895371538936876679427885298500022794581900273849158573314366808385622501132766853414036481382078421416006236749950130978537965968897928743702738116685846708784714666195307252597043252991577983539656366987975450669142642178237976460706680849710703815922443862274162579441060617287966169404334830325925051313343428589171762044231396070589324420655887895134312816097580124536436104225262891759831305015741603914310831811904978370428215504647302651091026750125474383192641060084002659323662254384838057517640441955667392141927294937196746339326247561579266561652333347556446168004732878469305049523176140901478547700142871692971252518578080105048948676490090405302098269710280793071591628811264035685523325688884317030088330498763104026251910804902874430076203943321735512972003453951755413490256063293967086829719865970451823270465492134610257526324191036196066910663439211498769847200200566484818333679250171596346817404487421910367390505223853306288756480548733026378346303576362546959435432248014696212796683893866042416711701895875919724571518829602916827075996360210267616594183054529832429375546297241092790889468973097680176725681645523022507736417905362587687673637088546968139361617284664242584676866191786155554826579928413048902794322561935486059398377141316997133301471646062257843468471870104353151121501953982591239018854442159490193154949597231798057990861714442980044679503422586968875206950391813182397121338788554780453495118534861224113058868582133934381384002087314825929952108574329183351441418863914312415683277121409751953533543634617860125690853771097748151754529534506598678667778046319381172529372366536213547117594852683052926695651823274167838409641169539217548734023142171782215486305299658706546512742166204447774443563611814092455949898678570500465470414837692558984146796718526568226983341284686370255321435398554633019371363285526350956037920595359150419963444592022585575802002374382114306286074782183971378340107756555724748283670917781671696314785605086983796069606274328514252619254188640468038351353860046781765752931086058184174570337318517167542375165288680836353905980626420518200479407912616672555755020489430025361493098169396154094501584523462132015002827005054513607982282983978081367996590981754725221913159052922923070021391950802357465823310372523015641238904290764917850123743770114144263042125930094774605469372872269929517935674042119069147439609764820227540298752724706584480906323004222132872207341721801903524671454392748007274706990405035584649676861043915446147065584937728443421210330715580697033111533449011032361192071287477055079543100841929518651217407000283679047094882767009901137194147828382909508932525563755927235037545583387171805133583390166130743113063276614918917364995139025827916337138423549000099903126425161250130700557650748076424225317296992492153357288745778853593048475286787969426465167534825129840665718906463251273064124323283344500752726190281218847073037515705003087746020884353082689868588147969822356951969418614589542019666902899113791493900934409917615978676508224163977060170975662803795518214781737803190444004610801361528337722822656899723583573894334489763691055562037352625980886890706127807493087971089192966019404689482118979791425358266126833075989692006104426629914319129198230949773228599603229322926773536378008774615586628673344395631150266564954256843639020811078565155958576736208054554337041462343031183799491927975901289778535423334154471178168061001443416822855269453715797425025422958721551267041971018009336541353786526047690426443690823922629059817064766226955110060629061030348038063957071411881010941573906973288352059659500373473540631683850646121573620133163891769250936769191869818234033096378826710864328793011415934303916788747991563265623665341873401651176983922231820812818971354541571247902358510380405256139534573189699438366706025526241194604747801280968890312040652068807163257947380511147447946177403346464477286644266896716286431854486492039238566778304057558114148594628095601343887868985913762042001824126012375861711397333146592781114708520254549236485293566100502465194639216618224938236644754216496326796116004034529433595075177728582173933571190363330777014460776614144882609444707485094303463262716307283490642218827355585473197165107351940778785131564686841033615818521128715067846260053869540512089225796427936237932867468673859357724865288601093361876087850423638561284101137193768794423693627246498584051641188487642808246436903427465232865093181646206934767211689851013575429414872809391851118444206271131974422816518408304034239898942217550238952876061310972340576531200493694187094891361556752307599271906464338554243646694028719235281427244933423170786485711343086196796526537891015202364772260641466034388304210528696561183497373246386386178040875700068453159842847924728911447579820703169550123392959686471465745016483400525126995918690769719134333402992035258370341747649116484155617948305664203167592395568869229029073847877177148277565566440104892959931068671919843645820961260313081481783954571754200577377994913407468135960100092986692860065105444976506771731853519241537121231405102920102944364573225564298606930641944725173389895547532579796135439929976794527289004080920410894666801873994101691421196630048558070248934718242888971059866356623558904081941230354298558054924980740757386150018999718117088760222595565930894900533122514863434836696659939113785429312750339148345329204040155235621718276140971723155386615571438925807855530115042304635463571786775039242569830641626753550482137369229396651582685666203387405197529799799422093505632041723262734640462147431566949601778975103561315017009500047647512535283158413396114634110904307759778126959843975310108364932259131784570526942072047612135734668560589425090545629676582871768036534068191242139122825280583018315903504519567536470063887856004450095668915299361687474764148651126497591634610091399458485243184879308890826296556030991838213514532309560195961703519966908468925250997110157400770774615923100131953529098299441082776687613096786885575837791352011279443764415497854293600737193206922935682796916680561012722804500236589522743930574060960336138589871029318242998290864705935888567039183054495549466016857393763545864568974551099156679555291033210079924078499117520191471547866532592519404562856922630769991775264791335536601589074485028479616046277281418334551184487803736634286063204181894783120165795600050647345860417786254453383640892156315570030888032864777491306408516734223165376964550174888971394858572237660468090699971114660742912365621074563510821424299903519341886227767078873917498756882330532056852122328689212765044612254862650720801549106340832136814331923271441521424563597393743025157713834378222592579549418993517826806718574700429137481155915954402004635581106210344353228679160033224202679747957365145744228969241959755089109572308091249042698812121896126604840894666038070664572099790017585504108657408026115433841938800086024727718471182761426473319156328999626142209775116165262201347977985818677646718897258441901056060537099992721987310194338883883909142426861515085464413579480048109393536851420031359965060463143915977070989728078231315537001547568839362270499029489693153438246420883482395553879952997133027883369667783187756374931415875595831457252704200679078110376683480098723519306990127636860018341456592301558266138195222000406840720820318106921100243584897889340973653466660971996455145940317864383901808454588788961396387085419832767693099404475295427541766210389970854795520908937630945764762077668487512433776581258455456652351578723771360084701588980865433923508463780973194584470798347999353367597160021159363400177380730625957973984975306060424752643531998382918685197484307642582118601988146675153757403123360402744936473474844427918444203871985884938105974825621550367272655046690149607372175995121777586445722631385464249437451863409648963023465954964574994412588889193735475895514917737513200019784169713259242802778163456547854058619179886853025684723672580105352558245801342611877563529076592609910530703652590911608415241705179285011325575165568941061665269901683853606533275323031975539967337682628089594706103008993764217926855360476757943630369095080183555797233562864245843503785784960084013555947214991032809416822493907567597043647834925726669518555309234546691166816035440303014934601549263529399912013823340623739911044334392636275738456311858681713049447655589507344696851268626981996391312956542275087505669747385319128269118550146988296192172413455316224282752613724057172416530369986386600749515427286361755131490904105576515028282843529732755930012960722707832001098646437126540688992959427749006721050938183598632568363220498738917073276493353203436964145464593820640758096168534341522779504083557336257760345018600160761762934914506841838730528344108528860305137634812486773637982104224263653879204461810808982179705134579424217391056199440347962505065598996372025470343717023499368864403798708572631816659346977296309071013614577076589012237403392244922699670750020064468861385788501461300494874889402087143708974486650957350543536734171245132966340444302678879647418504040572394123308979934616667523546301185961937990117320773652551733645171231945974184807266685857053610697726420428751598128259083502557178536825759629062622854489466108857663733567333933648466056104522673533444397303773876001262654320162133231182782638840854738617728394236698910713994528128455665512682257156726352526591348222424581359184272393995921139093805749187986763042487610533493363406051280844151910903015661518548619772595005651989304362308080229282641128374620643196980767288189597005845549415510408979767896114276069439378182294645904997161158044136021397594653449722952114977813050840320974091665172064720048174120857087174114054086825189321474497518554606022399695584911395614979629155379562150195187728568200611977042280229873562846217241948173500149098610622114247416946497784107680005321282761820969139695457862256351780956838790371878172379303746481613441762494904241582884140102073836282263569199529689523355469582266763158967964813970381245376448004299462365275058194600907074402787860967997399943612259710724986787685703228585310777014280247044343407816070900702847955975669979161477460165551226837578597159660809585512795065468315877481219018105169031603398256870780465138316114112514336365425875148349597233401510567043145625071889750867030827480052230770665423205044101875615627176455540286931458505224640470711739780182407814268137267215277846826547809506261881454960288976522056216839771618170072421255644195576073404763441960304223130913633398029973553550948353606242023114949161749574892560374296772809521670869941447486575579547694517744543011060967281395453553619117058265698768913135521401447197326638332958331570051531398085967935267739325503220378110227935116862352734335985427571814671556590933596795802588319883856381634660699326060171398909474108478793594587126458895806387911681402770142120460814571381323653539960637183950316686089702512283384245753110944774588144331385313218945881434590068226118774597387952089857443199264219629878747721847674744406495672756136236820942303173856652690966632016380780791115701046794647596145102552352026192803643898682948060542142866327563908590878153240601508420432886684829831240513972632642493157716524415123704765434597859343273320898009941452076636994886129941507781930380651391933971641191591056689045241196290315110977938181100262923069272337504674540702496932724752703392565453709643765948573170755477317708473412656350363170569717964101272812337889421351766437875195544493841961589222111440759727763206876502646284052841699285144614226267380765604331466221657516952885124685001266052847066438269486382007447581211875195186514414740922364186705929096039015742131852847668471796942562449147559561838127407430504207912798703361072766800205187541540771189870728524394246570406032085085463649561422871551587136786341625930189548094927031519658124611141767942027670804977292230389226089664244707043177751312198264894118860711692068180157197363912208394351989414845461976881636155075804744055118895331629415641327086034117402411332647365947400141586090609600332944931225358152660026388662287924668620196400080619080418263961969620459868074901302268559793574314491009059532111028075466778050714838930858585098722857863357223373690938330936574576661848736654247434126353505810810056112885765239809364742163670417960315055098904436194627479448560043085003168155224661872299998515082300285026470530287579547557590089361751269787033070410730392320424385666125981935321797825088660362419439896305563900068461047694930651238740886787010024907124171418838914469459967171212668492695700504368144857171940108421937356551008559840584582831535310286588560379552424200491496121519814769153268416563380766567530576140194722276937876956665378404315807535264415386976526631450030873397678476898703252764978039454197508136574439580969335000814379178855702966483965388849993784606050263757759484103413367689135908112454584008541049591730093579017877540826031028131002117580059850979545989343225261969038417220108381634356711120099567805116919815151715322411429349945322596810551822981663266455687783356470740246305243028864613777464398924741624578500177926175317588586684573116227816092781943326924124693634261584577264328827513961689163669349312823449880723479788040873410954880795403827549212960438133187000506841934523865240076630758857591761240420217322988873821311762673266730650903200080956602857625736415989271277250642807736354932161231869395954334026783902042567614637276868564792020678770963661835626724673854912380798981587003135975644403469575475798637562513966799100859158308136872697435623173702864535750593601524842746384338552498616667155700854875996492981586877637540529021042562378621677112393657822708494648533744075393202621227164804753872493710230683338263962120818405797471602885435725547747895392694858686853783996700925924968134641218751722586049391887343402311912854187895939444449274142755470530458480940382438326086611543234377520432122682486251258069741327832347631796736889665594039871639870196206191960679061718169939727657416406630230168119904454291738270125427274876775096731827545096056770157464868696818783624251269733137590086732572821608916729019733431406444193297155069648028641797023420616776656778000717222289841904229171064194919877033642815748266024041202202898759943254310030579162596775929467122269124932694054021985754416867700710984273189160993266895141132187360293480242118916026941930959488801646527830608155667063619519727251869529312358036670303002736793352498858893599978894748455591586612713307262900749268489830197874911972597257950325635821154814180233705440906449710812739243857969722680904504912908999447064490053452623378861207160718312041258127974526123003079304614642825413089431782136530616331475766523232513290226097925372935721600702488934439535322060966457352620800334645373546304192645637992663008489995068139471943604464467116326170323918709872924156454461157655116770465502459957495325500988222897474104680973606684152745126879832611669182493742103224930434275799040238372757143413346994834440264791120929364351327523914084189371614449215634303791738510359767258519421138980823804095021365570818652796332485878561890319304669248543025540690858748222477037895146181199082956509349269049202482712211544138806788389117994183056472587866313021801219275729200388249564230224004412185629908910495499991269157454634577835725995136848312855746687251528134935825094546592340575439004446177112684252993349398096059237643156765326062532904389847718605789687054497398339311952597972046379544321822022348464962968309063519723434812669783422786976370894650531565264949535075431175323052746349407583751226137212787317874410732289891764840351879022103786916409046080664110704018304638078678240955541231631455287952737315390904945968746222100265287779275939811340875076749887770919017872628641652236785982902635875994160779566152874990302419071577753576409820002318148284184121198631219323376938926737903693394716727883095061906828353402302508060750586155334923448396994134976166152158719176423573960314057720198307274942511664761895799782112002331049307176965872498734239284680537323185930032398857509017003284687308697169861627169338787959094145178610613079494514992086633226011929262713106392622148579294715176344039893875826968217364408416953750936245122432165855251835504918366613034851528040525627019828302926609945738188696059877132309470369770852334892774390868308644249001420996365643543622284571112188200545386038620235776678130955300687381624992969946632103432705005299855917447511484861255510769886316261401969424920709190718260950335092412017899689252891820747056877333112243300820783512208771772111993736349355667297416092666361119064052464368478533616496639575470127871337543939865592375459840671645147411126096545978522860340627317941767288251633857262553747466051238697679436106080346260110268660922033347822781287712754693513583582795702075847124417983144348078405947651217814111290875423013163727887487543694374360606065613960466695576701548068667646176483815403285327392358681825192970889910177897042277687077400786363373313115613962463389578168286260657770841411075482484668992561179025379738869841082474588443765743166110116645988378403379658014351611296783356120081825499205083853196491907417591891817227066431890228807764090158938636654499256309867582459356672945769781800555077035536166026228520048773409267582422602170485580189850831197700474814096343191645313905353995497942974166243127047439541437295580024348465098562817984217655051638038291987118372496258803399953471867764057481432090857174141834397672138559208959723397888802373770051673254167536662494493868755422427929225615758047823129514741845197351146962638026045587758159056918215821882975284530173158990201104871770582110153689388879687161477642001724359119719625161438114562163132918823777423894558527599907924654913983610168932621825395640878553590071314403637789029080703512855468462812934565090626003567070250393622937514810091434225279238497920796746463913901473928822111614656741123948437742681022956059325078299042423512540739864022936553033719682739870117186878633944565146562740430886728124017929925533205397923724153479859910227384129469513125586037799177862058341205914072987629034427731088642388430965989890055458252105820798427399966309086033883532920777570376674012291363929953835460507046793092294131573119639423297776625246350872909356388680913187513482893204750865741142605025260179601891341883185252195307846929002566680852455732248537486445451270940207035649775453724826816466114285639268725141042448396594002168500500821614538315837329923701150789321190049454502778057637871156402472696993837016421449070346563554068360854856744315426978737403506769147616947198431673078149020710781688442477790042844294893412541460472778824975473087668786769327766232485720941090964978224246842988803847924463347888560584534570935802266637678838127954608252241479700590312934410768055805955848276051455701193533360076826671487148074700930538709306210605404260829566119274799883834711804917687147940425467426014028098653161369200789749560732051133772039913671920942800828874934475780717285604432532672992695002310460072199252913521902458186855101256847716123363617089212047504941305184153014583777847976546340553129941354900118412965483180143773731063392351098770936246075884337625135016681395952792640528796475684043769126427368138534915153541501944842856715810257834347435910807872073840031517341539052168346577605840147640416962431235644098597137498868481384646877525357870232327806617963599046571225651144486085996592415414386569805706906680405233237725117174885464749284275736723774662951829815108715790332304112831147679752488653540020975815962617746637853344136274319833508178422621802448586373139261416507388997617609984009384133036042520460925208149385912575417271816866481835481033267780567344441346031031574097874759911424397074586628565677864649511981904113469342545102020145649281294833772554138481957503991725166549376841859072767263295534380469655423025344675741948427445277006756240233533730169069388204980658815847159674874710777934727412474404025467825796429235069108776118080008468269707290743397177965454244236540710124202401184987276663413890150742312891037223170120504148995206400594788259887597137981044078918965536296695369398021744667806696957704129041213302430663154739093588577652790444020632446493409103991096654341957408994592739531468086496276651524663187065049433039747715632114901176297192392420283083113157316096399129947642159386363103943625424102838230025807855331791904867264412314287613440389577809973740158710751793601264829722071112030958926847178517831779720884868597537960671101906800621277670705809476547040382134193589652638408670575099667221182920328539322220947802853656262383879077769816373533009983820894184172289034914311348041630943249694973329685515205566309582419031570959703635175514921805457292845195346420969570707247184735845353591722031088049652195051278285237292087751655694935175827337212429616435863187610645450418044094214249280083462989431676817321270397236105542901833352149183140914845114055364959307023898049494882460521713673681416516698062695288055154515483734992880486511391757841022524658974954864988997356224026455906074382036130634447217486238186656625668782696379235635624576762311658571337079336681150602271051130110214477066559570604370947075962132843669047553347131907615675724064080397542315303720982399577302474398415606097303776420897439185621884946877826274439032686994435549208336134881590481727509287404936375683004895854492658556724314506827547641354589512241670432921155595907658160547505263919585449589096186909453517770429484185118521487070621831306514135516532646149774038964917288317588455429211477616889844677874222927754201609987076390925422186669613794316777061618023359678304720985330140506840858541671503569187652918694112265812730993510147606156936799989372138395666424188947879121211686599999642547009737245915116680587781845763382899718318603530454845504539220249019312193375613660005598950862615685237665668436589667272386104868367370836921942420513244821609659561362387751022001274000680562280581150979051319699731978121429806577874631858816761487699569650122659443436703220895339918283389576887905996836290027649459519057589881759667798705671368201218043105617784842997400429580177115921371181493908989320553313443229279365612726647436363015554972068292189199587421261711107203908137173570092769590148778550230368462511732994241676163181928392976737990030834509762710584514497370702587475500719948282102526265076346298693836906917178748872468923052292366978152788523475402115134094599294816589379295304066278347609790576633683245879457109919077626708883750362435040535627792430864180175100084543699251728097440917485550915003889672368945774824937907519149803340671101815149556706251150012252628518095667081303798590004017536419291888292758362114918458914354645516857046438332909244357142927671474442903033719664152490001193113453957596838832261819917271635955362953248686387816277150048556519515975480902505883082388566658238137375875482998795892275469642987920250025209661666318109357046971162624529862707478665270537684946642794376730213167491324780401988649893617747548869419270975362655787417034493117534200916929078461616211321832838823707256956473803410412001234973740410493527208943350785355886768487774531309433843271636729864023347858368235248795703553050569488414423596930577062254281358143537380205714486934757598061894239815598970617874442734836437032000944605198781536109405562672250418844147070128530101769214509088860855974954240488573006647657237583798319834835244078279777176542852039801722140028215501194607112673129509989753168528518008438956329949879801860823368291398196349132978883391009711463347766973078992620487703910076096668111960682202153450989775276340486990322169041096341168431623817062979526388825970423111818811589316406748377150612665231776155436747424959611029450393674224724307892619674870657974058559597835963236417459948116142578356054849832920331828172701881836845394475776899521729614672626949687543886024859224446736161638091750998863976341739162260920472948349088446069282998708173841858032839942235194655269100542602666428416090185912247614647475980133691417505860403279137132296556687254825662494640415378265210374531549847489055669866493897910440026718038742139594838981742372266715220443026448613787438121056331256706197863774585888784077289068936442202146033141494688590322321707518590073753724888742004783938449306664582924019845062703898803451687038116905068060079805931243775456248364974186138658340880098725964238797200510826430281796172376367464282618588792921401292198276752992163377096417205190126308890905654906987704546560553817760417477661950111951808177832205750318982534101717618779091360321439517621127941810204013286360496518322874669187088412860837040796546707690991868410132315229315954234994343946420409742254026115585679280993638650222170615941933584045369137270793527376214090180386917533259902608833229530211728369158386411585490396726803309959756009328869657741220635572702469929074901128796997829907243452000180064936730285773833452631667768202497661329543247249079802326287379332648154512456777888460981488360731545996439558898641222736452520250911368673389926274379756731339501140689195654482509897872822914890602653117811873875583663893064148981207835219518684285256789064127676543253369132536908132440169463014533950226078433931917518392820872820478620740635101548959707676459892700881632478588863672422283357685517679534412793585901078300567373222425561179298381974653937963097185236318988047884416375735734863997374431781509561819355589808276360308667253985341432496012207117185775315476453247950034646898146866516604475378108142971501125353181614350868776272167142743400345916285539967442559712045369933053421789786157107361628263842981417995676751103468731076629819532263205288876512041565575061360685845196961379423845774406070602079681591831809038345672865368217749755838418275863206871659810775729861210671393775220933716213038862224717440786777689829185032173271688603499344770493971907324857626318760448815210315524018162223430887274145943184468263065767914004955682696659793843471397001171549678461535534296433187732375225422002619777537584956514618737193635643334935023105347255874820965778126328371013370624795724517636177098522230427477355465408138064588681692881404642702150901579463428889807235562681088071693352183586595335890842570297580171289154703513858116984010317242994716561376162237663159359231597825297751757187575327705501441415395100160612235984244184775398778125492339682463348739753672237699190969688203237559103454773656676635641654867459265398443391841237074944181289044013086915345827275760610301455515717887171973234490715004139945692297076193435527590289827283633233228504479795866687595372326130732307017428728303735893860193173185149313026570358524586911711571888987299275064995934059138226369392194554676189697409311102210657059244179381054773088394258740267052404272140449486004701493768373115291263849874888473873832561759850656524741519155167097030313979691269397720825547395609029137962596471135916708752252064148518177289277878038841692651623541544218572718136892593757771546775125848742440409309574003164554788630373195952358315780660120110219216789513551428524163447382686744068700790244869146944699360171951867111435564660245442127137191236922085679893685675554030638816490365082488528379329281321709662514065760803342030635895830154374382677593063342469473136415883989097553423849738125259437983996784218155065032024359852159863473741878949059665698140600210260562269678458218346414573726350069979300033495029009043926922356855792288555660837132821454290167342197674979893735740900955696729501429207891245607361508794472779013663383994037897593366125231148980326784706737378027991468685211017267283449656163051046175030644671939584105123617980195200475457371599966160161963853266602368338362885255152065351063517984964535261717992027409731647970799981995105200071979090517088931699851509977704511523706263467244424485242751129988883622826311076758167556279403332690940258219720555875515800277142282282874543321084227491101170809907243407974687676313651094792158382318822131344056157626205707350904389137316169527513562607101243528181284175241661739436144589462010788313805309852069571396480450450188551252101679368464597697153936510432388759669424999973384093894456112029908622156750660290759915703470479675778747751060850415588308040134633016437092086607991918946701460561734065239830631693326384924293328278665864136695918936359916001028048291572572227724059528992592070225621274672806829894114450447908012840634228154761826621289222670454764789047421763997230360308474009133010560076356443154982516237049011493988388940049968689250524063007540084937806090303092385845674667106947846023852829255627139144610783422733454229365636928855766101220666958203667844434245409481903913997079400715212458635279605220719778133871735817387466387695243437700294279098022085577249469806048625242700780934205890066655335693284849706598528558020299598928572300454747910483432914525540750690102353682590812708789818125938642240264047857004867767048357512315468764640900057039040587949409157939674853675714127527609258929987125062049048135753906516568826687369058864779363104651845536200059691087553548654425312735315603039945298042424809197015485764377163148748295597823869418503444383236136058437746131246561499494627067942423421744764412148946236599490156449602310875401631557145459750063824189167571581468091388201553110264730470013836780475981471888454079088453850494464887754641927742364920480480109253980434259099710677215453716355431241678128989047052161340317963492202268969302835890108077062430051161550811650439909142451326934262295598077370604343038386845506628885715889563732713253531061890299223792587900757307501093967977180675467301719442385994245850664971267774801862044617589651678164500493303007842338331620074336434441430459298228823951428835030438731494764632609791332050242012637315339938988730875188459440495448642890268599662786176304681244482159801104556197037244807837348905909018023437646895081118484195025205292954009635756156439951070416599266117903330157044162513997575889902293322618807820578082695173963653021008109047364116277225406133718845620772243435938237287874770686659711355607920624742024446990593546391948588624079050975806146287163969486932566696243477598966264150803003947402295085236709131617881830873689007886295522394555472893320049247577654948109168442269976220691105296537454030549834399705547935291474933742001283483531478962264311268361891722402538045419875298271484726487374316096057221711833767786916605211783574715613721241852022510399690761978716826836542967058526233793379563300608709893832355636963874559060402471093008956791743856271417912670111778042283282519607263299611395957684264241192180078144605812895538389002778206298847501491029943562925450772795748014604501668241356009548150651211981910162151483086965077173427103410821035281792973106657690286469122672211709746533669975106478803562814454599830516287442606504967379989969618265592026170555481604729130927392814191804834089930181408077586064963879015044492489556126954243600413521229902646126812218334430297885699778269700215514518885050829485199497009272069645489993447142432189673095343946162554517499276018277915164890644958947205791579050886838809034473346448062080008945313720696157734058821568767779022085587142354619749445122211012403199189013498654823582106874277318200993077250865252339788851078655398519728158733067540336976310203830410932966594836725628758723574684787962079276608500779475324570403469539112073313639446131542682599641065580366352605056409408322649151459401463113168315471331095977594475315282216898437829545851397892009543420111726321829737258925300354362956489491631859382508900060966212178261101177486656957818764333412107387707761352585123845383968680412186411399650223159897971843169332916210940056528281852499681374544882423913340635127247076193866459840288424291138448513462935634405705832957141110745102003517825187140453371286627682992653819871024599877801449212177185001304669508124509685666002270764181257262758001773828742845883535759694722109960039124092577296892986671078454151871477780926178684925037600973121259036575637149372816874148200543355240892255485418317997972809063919977726832442866463005253044387976238461001893766532874350442122033640840724648806627773229647613265280173275566823006001478052756733296430716907150424365783313279028736327005206914378469081280028553386395210330042031474997782071344119596868744071918200319522733250858966163173157551289093152207596560084038655785463921048174167829724525353214086874289702528745649486194034582692139286661204495247964613080273461302897662703513404688669082095283740976043419007068053428759061376096184542278602535383246109800367707194995601701784995861032414182836668538031553794508101451307258430686349317862520067819981354363451593088755714115438899926093185777333892582707950111005958931540769498085579202783700390696296339721740156649288151585255418451820912287703610116997647701571856531678451189140048602206630421438934321987051964382314100380934064272381344481663760740369863639251762587259352634891059579316965560829977861131225627650891332434126795762285421924579684573181013122213652624836104413667462164936782318458239905952920532856736269640064109657166370980868075482089004244146373824786559051527303557810164642251016378942674041314422327126322495836694770941095901504839115131005809064048154854743428518955128546229997598816393311954336871510730490239905472553220775055052796047118705902395815859700390261000323938009822269372708393785174118910759012923938177626967799848365766751561615964547381097771853584900484827938849710141887790951484356236233424510820639962414069515123133185260300647258116696938070406482386367803550087502830501248726129107105721055047693379068726410600193798179876775686343957584040715920392501682784407278550010765237736684738935969728597867111634972593539347137792832802387689613897885997246506077756018287783323582536384708440822047029375508217444316013583127170932133014970202842310664217855688553532110928040887377376011582814361435923001436655973215091398500845342803625868070843484825754815923553656355282845612686320581488251568619400936775886657940325583360851010731424593516361985272574813189663204489951381326859482734695084436728995941045535881735617873685225523885506442302155670153498647332333211522743630502468576494412306180675999846490870518542979688550461208046216959773288006737378739884139427447656541575861557272004615545995991601034124824668291318973858561344871745928286013158395458521422547193554753125567591611891004546007524354604027963053915605843577141817962706416722553385997863173661044419558411545274745084605298835249413023227286904393508591716684146801096887842970830705910954585471902649313953056305983009670863463910135957986667055209554328970393517700274843154169566897206889680654922540316128204467218369938104209265163717577396222467260433046326867547984640774809114218578759202397822339329482465094588479064037965978769728324970294925329850247907939786427748427366685645513789331935061692039509148539368202810452300117632166123352350010050736208697910830806849178940282311084315632880468297101510927627928163581845597000076265515964267713610008488395244114534387147514844154322280701720093930350255502395232812176186759258790495963542400743589283276427758439331763913726588681025649114730132977637347284749507811647163240479397513973477529967622152577803884582881173410415173131165491774928945441338473037342599046955107200887123600850694570081142966233553963573094272965913814356165704467976529551759905081091670348212917181522156784408894811003346011406746645558679216847851838575677238858727462427100866352491477935582067326812460526341681924214039908785429021163057024763743423758860864496698094833375062642483507817486943357694890584394839940016998425600348606685656231640617453581694601592289609063642367133785872050271192644358347164959347257417543763627758348858956436250672868000594141929431507412988839337645449504487011950735180794974889961143733932127990768071362429825554292153317714736010179427010569943869956058097594622858533377453383632651122146452157333943257390386790330044198998031308533105861288482890234617554643717384662800386687839520508722398823126128419106254148607343475210727031167593050498554393764699012429486039336552654935617780463250844448579704105829972319003784086488213475947776016999887689959139251928114648919119670325754385226330706162787181820649084927658801422484325729422041114521012707938209879758318409053788094013333359407302920843947504731383595078126997265699364745560672090028729142315976588634196760935992038491016679694924883428621484658453545838452969940823150287225301763367559608171514932250903485035173739228597735938283934060537356449879337192747163416134352405055729167823809916238048935347673101596889419690177512348592596933607910992931361608027602358337372853538842959825975969990873668645155455126696235917087484340481266122399587899605393269211797746552605867298368129530380590240713835746286343790995114782903849009067276287810802820908796474982502412886203426312845098185534091485019033677147339796860375028844368857497498630609930290625369770368699467270648554099707424766676882584013648884822804972327616598230544523411580452282072691850228058351619644864472580302499134157745163553377004470021650367643965279950160816072986671821703986017765828365023914727355425790418048148916900993260803609561660761233639376947426515367476505723924835530417448358994605399838054047474801487878664339033192790890613625143723900148869350257554999167124440251956448675166603397385150275512243000312804938939797321561372368621978841289231887749318091014905267115198155661158272757054695335690045946865308932375805763999032102460599733112213704197595473392086709331732515553523145041513164054528949511625698010416298669052351051578085593327974996748392705213216498763693464635416630521442355538372283144036314091864176819567471481009075899626629792953043443422624875935225515157145423913481607508747739173080761478073955002641623923567517924790408583904363058054128024694080400609304561772594611513994270248250978811660517737940362105786964598888301231853322014503947501778951613952393636812128670224367367894801129536527154355985889903401817281810679531880067215795512100130349724519268773987817667653132037853008186511756767660093744155084526939878027355671232204582139515584293498262793619695824557228699965239222008512061758160818993654557642129322250577007375376819728400540874256421528859831030138590710736740550043613744141775745018880033356548103857572628565366518782023534009870140430407564460077928266712768309584424291513655793532859090432193015896423635792524165444231469790094168601777735902970407973518067613089757121870367291760289383848086825256108574990601359514719454554631616134907337155611186413812986517728296980464053476233981871676005571202878746412645275384283287738354998992356536971538266982615217672897642345782569957377100857785325628415488954529969239407748630439101779638044325022360780266630455376558589044203939206393990130740786151843112802866987004344148320178154586625005338542030981050098021323988230533327668875987819117430578975409952773994252237676500161736805447996448851758246499063163110161240934868450690498704182682532636054784946028037886604456894771909929741372036362118347223661625933571884711400356541578306746836145943861349500704269539750386202588636232349180337509177579915515263290702923536252725782162938993560683041758809217823522712358654092317529068443625683020957985906302126996233085056251445883286576941683496803900250748404529897374724251503263918495587728871033204156618895603126509412711117787615496389356577581665093855357707859746435954425108907072600672627060236369928740168557065306678434455576972644248182310090618031573171272005269444927285991994020798920293923734936442579506417612955854250625955174521119782485824609080205069495556171296648354248193678323845871630617509605937888112071423072262590765224982997467962024672829139733637893732681022056567131794988824962763899670527631074793719035181508921142647802846749621604887627170208396857771552281997898776816407372770852877433878972686805251719761178551231014812948781387178275805896168545014180396176939614975299992707559191124734195384845817093498828359167061296069466000602995790351125264275108860893574855604366378150040432627280156779370823942576845176669415860347908651233207147684384588268851962591215502273524908518817373743642833235593412722624191784155606445116343724616488028404409555895569198387798299001458707865933303134293039064092917705141534764186562596718776190516208199643601281817558721316250941606350260731475458251823908697226269863081303957798529645930967304075063733394733466846973080292022422843095874050383709848308898372266118514179649323636705119232174161745545220761271114141338727312970173992620202173272774448528607461686208018358149726941992760830541994569512607240483743620493079573695093940502780370529781814952271048441628953752827171603225389660167520915826681364764196932823044380223149302550908003042502070726302450161572584596182694621446021328153271434665831331018998233733502273048381363428661363310209113839413156251722005718135048501028224987271673157485794340838251998511930205780581195031766124519707648334185574165316261360961219459720323425018744981225171079765187303235840163870767897153289761297167817085017553151804840826814264369005767392090506170343819607927545256173602860763665768568842543412488983675023304894418112187457190740514743397867016426153969116424752714426375146528249596812545783593101128966766747686390805556861718849085236609010413266665597592309025555118654622897899940151294950292892672683573769797280196304589096759596075600700010334440078319289852318339743451031297053418460791497969130285641418709339057591577026935223600657334317335669488130082770533758246161603181366452783378893310434127248094542314927301434048377199350835718901479108498527108029163885602661436571400524870355518338162244828539812506867434883846451805636492214889485395285717175769416638995624866849752050172239248212108098879034129665885135151775676995285974127131021349325914951108877316908280180882858493104497878763742764925837633457291756209352109066291767715675242352959842830772599752017570669942289351422873515998391699757345164885242498040736626948252295678491464221129495315462661690671455085560766576682017120804816306798714016495539776368411917241703299374562218604699961017201297528733979569090591415542500371086670980892997062084828373319280032491653920312357003178332418934464704882007497267323657097861423603003143359941504296192702159019985934984953714186242667488101012650422478038377863802142210511148472691159222660938352365134666297325585447942154079654369391973533274711697847144072694262090414297454997343160550298306689154574789548352549630728941214556867688932395459821077986215107536150285085107868087115892547263605320886773761823759899926802368287690640145981927613418726908328862877125794934063281350323031675944491889378576291862396384507600022661701727912115414437790718232995034393595010535871646557754234094639414825583202927821175274050718383942748601806353156093940285881443026116964362043577659350480232638769612108483792470433407814830274549261806094288755393031226836136587269025504196481950107215347423560980718583514202188145554122370700765016205920293150417939386951807503492435366046428463625361500098019273464082231420005939210059729424550392163127333965002236474023196171465588574973026635491640119434177791124016257269007129063776095852144173366029205279541344895804550986050761461126048941238651095404136320640743509542623515950363258859546474542843253649599234878682676818755927681497833781589461133588182128038780920910211045185141503961293692842455078370323715138258266940654943514120256363435251142666502789728380577930804594859004289486074310720289807359735671435115508923539190534289061637841558378752605692566008914414333743508090070033552220601619169270519245874021616118477499677114087943138385757879405929480994335759316251955900064969750715466165119499722168722798229349826689326701167565401242939165838620873728987145974210984386686275786585750685198210841857049848526141109885469242071417076255350424797763755710585126808570433411613463177007720836345389894686081760750838192103776072310634378274631641015432825341979513420652217366257845099636962510677744814647721961156580015646103800143653923844831597498432350867499541506255535069529018533053559252051848451703701185564635844640488886504689231465694886551327131531531500460188875731530187341041876257402746684877906045044420614683378319876062334971155633438070259208741211763755712573079998640332073561344377428611792798871279821886590911302835777975113821131218769531531905541188990937025442319024068617065818910108212193325083838050741751355883683765193396801973781256416123755675633956162737237719998377166686707628424980475150303301412453160034326493463084691379127084190740380336531972622101612261912956412436127384379735915694351550941283876539060458131653565499133518915614417323655159056871798837041095502879958349922894669067781174992598883236110919610752034801435051294864254792637941658943136339512880583084856643944052581799492620576308691613760083958563578901038232796239419750258631546643084848583550438193914858242890769606968463235649156429835521802819927042285884398625812631176603036617017753172736100570392623428577490369875451380866362377055360896213882802247237537294336538656515638148115163122996131114453305894760774069603113982874376926521684088925590764525875755297136637595519471495951100744125273003660498634713647582880929221576139141590311020711793874120834373385085535564710526993440859491489685716193128307186353116881671230145283028478784770428507540876345839352191439217922996157622733271584988556435365509802242747910302239810601598639089699026815708365795270363153636563142696427329972716545939224315555315240504726541529424062367044851810415108515299197295008321580167623911290510724160511424008074553643399727215734896581898115231890283085712595501443025199972106042297953989841225486219967173029664953362209490724795390152859111253249763352123347328887451573397681809876991573133355129236303323098729586462995817656796367193837384624477589293516953075579134639680256769141350733482730332282556369937185946625925210907506513556125139388137414636811337101755914608112156410357038544655230856745484500743359390181342961106198750317959539946943347714772727973920431334020344698842261218497657202261136779482596811973720902412902589379479204783646089566892649031559664543667518194969728652409135216494996171992246518098853405057430789264002263072944159419259389575395276305237298730683983869154540333558853662029639368708181885114862242227034797430671619350417126477109212532071399013825201359029933135095495236320433744896129286234777784623047963044374408773580907657055986344820739983993275076061136699553659090826837459173151798455947012234204403661950253833731825850005567235798186574695823580609084539846727055067665356397782568825708714501356956372291533875689099317467249992998077140036195180023650244914675817817139665790082035260651912430574995320019204626423077054858556150675890403797758609686369929419806460137813375742794038576245256723127435726896144532044669017141712032857640676109351888142027632830357406586777226935130733493634672097839091195701614133224414144325029655271605232550280848062114711185791558808265591591353551146183323498676114889532239810067165761847960847172168101988747100363729969123613863675199513066001737996133387223497375315285467015143055105274146389287663538730989662196955606394179883487668174123162893138169273634785334083009262980760642801535851355031327430218192099908658155765802564460000037393708157018991839199629068883525228239552500391821882272520705542216337991304028962802744406112887041115124774388439150997659646307334273293011408181529734038000828643167840804310319029226403268033695046717573685101065408796048277282053643246805230214810188449959666241643633344675893069978087851749646062248226327402681596172326331756908535229733791066256600335646354566132162012862900840718997051247599730780340116963807934188948993737150194013438668681377940874569845323765766344848477592426352789699755736365506135240824677826073252297694557548282407759223838061752664899151908643157292284228313989373989895699034303642438289556274750901173422316886793150984649623685341025184382312134514031411412249819550562209739521190813035333803624644932246024245590208560697802615412225534287023301930089437311959790455970873825511192779243890532231435326957841374465997243185738370136565823869412521295664580382290839016308431783269939448952010686065799557784147807956455790517359973411854168255486357074241281597627390108288561546918875890759868117556178609073117099546544034948955431273017572480677553045574087146086602582967477773729169490163319858326571397565586140876171706137058837531781643677490254941202528300591726540959742968568773914514447194895335001678040135132258600892388283389351937308347410821440690036051785329874401431799665368801869834668869037803053280496220028934527963045429116107856847741144141219810627245147663788250829163347861707844624617185459536195499462576866602545331540115792557867565130022471980643823203306913527084944156513768008637989981829263443691649672235158315819801014316689372258306645941598846119706029497222165947813476302085612255294382034024768897793582118557634840535778832229375873634271819942945219199961276955354387960357148239998597654346424426552354750563912379974583815541674189480290333957915863182755225984861092333979417801742373744897343508221717280532444724338574652837044194765784643262426337843881617362916834922381270444278773709530401838326976884526547679837612903842802290905904049797207416290714243820478769002806799696702546106143204320501607379414281490750593483194762068948206334916805218433655930093012129024516394174148827576160515823775943000400215033929905043004002481781795405430286672954662036414001040068061253740362850048882758785978406115733031797103979512752194958148628186254426160014189476196901275221049003465580470362739766037127000813746101242499316509091384671299060000703940083164781632827543945742867915568603961259154670838852625765516586559102259010492296548422325074494064948847607668724668343289441533284490566837874207316425204852279958788719861767107913891397232446059944900616366304100123722202301427655358417236816937204159838389492168595410639423932166232926235036702363917179677054914758286066034577576507339669997452389848122310481189648964277378789726768687080929598106527745740731150519267903127029726356703052074392070337127557921961756756837367676513102984350652363097679049403051570482076285705867837649370471530933960178138930249315536645844591702602373460978175466227266413246823274292731417575749827437512331730943107295891434035961397006259847246071175500815541711062696491889922723213833325305700204507689533824706937962396286880125245169140121186221459417282543698753532853143036728513838140688839977172350760030551206852055591661628151448162685611831726151017712538160217290953555568295142592544165668750535821371366358113615148144771717161701203676784006341587917404702829359157813246434285009435488782964751170643073294433912598035205082345283378327178218308198397395720037083040414829583427579979440376668904400609336080252818872482317270904401942203553848490609582906796207485821494616633504925674507871626849525935855582252570451736238465268647825914908945372006149882134366887495847646116786253238331307439488384928526628034783858424644558197760289901414239205660355008905757967248132385009194723047110491051490314727759044404154223119162792907565225435522686700753476955388612744462933991205678357063642922420230689712560798002974704151835109983030732967912666219872437791032653194952441477469378111028748461011884188379658652407584330023844861171913137193849404456252849445556736367230600954751996581115279019231663383063486280372713179690832234683574999851577145798354579813597336080474848717452275890282787724334914603537416087894359656632442075081096854355890629053304376744406275957771372515711851359229680517877912610908449195306625442486478103983184689894537646486460310752511316619947075766977948925794211026382708551743739500137382115332669340143091659757994433241380777264107538221259490692574728611850013149385657904941357849754397374381284607066685379967024998196506234644710321846467061893728663217222104203066141393270573830883215743902280713443379997764105034464298766802816720101230401159302422532736109970561011524243648487483127121915705399199082024047759254398435123808324553183119484247621306522124220134230237611900539220250574779657896867038476438029276262120246585608959190051865541370998260602537227922365400521713566822952282887789148347628078043319491497531767500676043958428362166346826982424461427305386773579470137355498855719996850601764988701958562901756584674703769987134364159804017337087092543597806256782280730539797509825652591686968149606512647612975078925629197059035632658766540272694361767446974425700416168637837903637455716797249725148411222230297295307342798500878367077046602914694187091564907905143120162759097455024131041632664713403399936856823149842630266238709497128754341953241110264283365087991835373135630449793966564718256095598332267592684683256052885137146871772194881350487494529604385804602133993377270927805454787104123560239124985526744575868952479279186975371301115372072526895437138256466928995398330285069479908138350190116764205308175292823611906577401654584693997957832833979905747865475900417429337358984302755484055312851585192057344006705427271214283934206959867739903322837546759418195053132101337850419037239903088925128285482277140517702314096411369829560013854797153281163600752535554557708260733890938541889290278637254654835873623640006862418190636501104045121803584429466847911117662937136391466027216657133538008483431932273126571108415688552938324818424537488303555138679664982790812035489548019719900785818399068971965676140328202929685079425119771347124968282364875433969515177395051609260357137069924217411158079558470984225843711008917101287120203034755865308633603374270361159970785990190903111701851664234494552694088867149058685490645938031734703182942988357145959517511709142236431737157177209742743233542777847186334445950124748617944378686607082320114111348183944367521573330977582404330435429777350415623989552634668628897382715305741344201828563726336062229320608234180369176962983545056376243155208048078170369188581190283017913698064406023973360652745280417483457406455709512323175518962027758967437806892352006212132443501362857570348909009242460738823052957122047643992196474211886174456357552608871454922608555245515870617433654372299904352022523030211813895160838327951841368483985205328554166860383148553859608151830347547722166267142181570221309112884746119207132139439282406583933701241325218366917458674394499921472440001785809252260373596230510874591511780559952886557403243025938701659505559138424076263657065313865038341154564636185240053073080523692340079704896242737323431492577701159743857411162853525277185108057799971238829690856338143871694675083070373606725207405458522124829826496583439240494645579549115450185682194648428363028786289099521177414950081817317567554268918980278531169334957593975239506712592114799934774015479389397079478666566064768865545293777454476442696709087654235948202804180495068888102502153049260829952153417694139566447861830525782215599093822450296780068904094639532614831217860054788156630919894048441509145248776787124865837809737471030206635620518777688673829993146084001324071115148979780407956456505209834103699507809479582659253020178810715404613135500165214876992922158729522754108894395742243036050357344692316133363381579737365941736714034950705815245306571239985167684979001486874462780569148710349320973490184569978508500116182495696546950318532030030522712987577260972207344273698046115578986701257121293803685099479918428555361908315877129319502395190851819668904921074664032096187506230109124409191380568053638546984837413139874274540962801946139890784444063842092465869319533493395622917430255613335880713524012050281635964399130182851579401992444286726292876814042529803352805590415869721901935809901873326374203270282557740043934873934410805215348930957406817183425873021069621078916818546582321616114878507167437057456883058769905752987888090935907965388638723397345239191211130994531979228859248083721704038177931954161417264963229437201820968143641525976729578252663294416637297173097200501670268640496748651158875877977384324984763642997115601321261842028728929346285403610850889654925442952398937078230996333127860096790101137594453045969505447323498984767130137406832416203022020309322797831082302937907469656405607720292704800084945691826799779947243040922524787768810945298803947969621422935876983956447757341923143745265895322733952124592385537441414348858563557449206772185269678428786466467284293795905895767820635493434320390161576349766012310648507074511062223304817427732917972473198011274209635135320037723070747922524803281390462889857218342607708126842348083585049864618596594719752108363805826258287635504843156881057325609674564303344496318367047878238511752027230281434441534503866178495528936303646995751200356584967383559990492992572762556368302630913080249769890184587890723099332524469561029359461313003590306878475950815682677754319694476646108610491241137345415758347782473519034897498647395272479229667685223874324454473168956113887943594586664244532892808535426712201842803636675567341600806545132290434106646819491834727436812917182497466596530721579364401935899920179887656961111238885055461484787106794863613405412605705864299454628856363543024482146992368520589864162484313527055141856886506515788292664325789383150822005904308532494237546380789334528954488216267294220931740290138511488566321840507553821067133097667831646530824360796049873426314477240661932636279652161613755874123928229310670367532712258923580515129465389103267782444250022882469352114175765466281001703104860078281997340844500737135756749470937725505659236852635547250547435174636250872767965443928345254889614572758935830479345996298371400772624959716697352423455399935629993939913429958725016208217352869470999341395954976325686363623181547896083726157801097196613886390555705665835738314415088765018831828601695440244187561400629314146265754865972791618781157342563426919350891311268839811164995931361413353662750044105332050519474302429554197527981306909041066331453720196223334016784985519473956707100972807695487217135579058332905343364148633984040837709380894916191927133170687569279543811185000741723423742680824818237492187850793144687838544984809319375311723752324538954229511965795954453544361756333637975904543602623134830827145701441603566995554226805613748631611202102089791352836435880661387192440321502418008588752949603107161622078624418377953009173229489298101635426242247857571246169742703192607566145797544451614035796980839022440457081815042779973411479166610769682219818092366252191497132701889399446696020449538754060225430315259898343683123386536166808065872323882215761623046048117223961865538981759642762963108152016056917072777374623987257695642338466677792071838351866994770035659935414048932494708450859869831617151125351378025835609342435412269246843698461068148365661963339456509661312265831614064368683938415766757659479300426592007486270149752520433438472517898926177111856180814320652216668781225973867197809930790932522795451320692884004680985819340829516359415043424963810377599827171454653556339035168962113290699067307526474001258033300098762703161860531894041327607207290329710335539382668496108528160585566700202622967128691292188606261011519261562449738747916442966758103723339644088362449575843122230945241190587572401506576532882405422559690394344594276684652370828311808946346528227687660659838698311899102095357376351367671015255261713364696366148174749959251669684834419145332420037399253266611932349292476633330636283991054576276396484327449249147431957408170181610912397347684236120614914484869387059486345808606118269937614331405915428613795133614977947401941883708430695913075963532219185858946719043237711870637409371919627566090422248883426181584766854408936375959182413857928959418549096382274147679017527317583638654255137871576064116691632893180592604846478095469316357163559148602477397062918986379851017477841126614483018365333533953579001097688678631662559120315170828882726538751181634214098595102646139948300074179653669144248147038825165155816560546876868541398687691959177498211926259984812368445876469746877036599446138256955141547632170629517248443006036953215233237304769302862554769579227914593215258366403814974335200062402652648280254683847154214624309455597140032241964529785954133941600650252363178051527463319643582110179377473945189573825328814701614476254260041744413182611935427467882924715533797600927447928817324383180004628514911867008943305948207599780103604978648067670385808785775912984953133503314136678578094726043349779076621772061301506840129409078266337621542598270535828938973573044067064114295861904850194339154819994755285055059960107334119543932033534271264196785162441076075269937855265471050342893327703990738335031945260169223317471724658735810832093364155326894425975674001717994050658744749470547498934895406440053584516674215247328011670834719517944267061370589023210564757926815009704397927076622364765209736314928581209805101159211915822976349624448289237516979523543052689018311136339129870338424239115136302809369312076061727826135122540545189805607808856504392680365103255927635210241642914744677304072468127516341447325293167337912367061275703470166438527601635340513042307368141789295796614166818489870795160287451036450866849418391290717093918102701284204678036114455885004313060537621029054075610055571437948809316996073116119613297333592452988305137040124373912445252429937076233206266786868918873001869480478108658449271542163201859414529597254855314312262049557538610495172376347602662968454049794168750838884753490261610307811750363821122818819852525327643837689407097700256648759096080114857689818913200310416312793833569025601548558249326990833272856340754876494565057326357152064975462040837877967173896386738097651057735003835403108574153238253363802812391544573151087116000474631059323179883436881475862837152070630777543807083800783106320062250686459986167312868040022484713702436320150141557846046779926535752312573030698113428577072082254394446971381024427108884446386327593021656784244938471901402065781121439288084661817436123498232149651993080460252639477797806616715506311143697862052263603878788186589961372219974048066622439221653657167381377231337706646830975150719038568231250013533842253832686010698348463100513820413564809146208298196486089884732982901154604802646008274554951577982423469071978580223097016543468932171001836992647387583343541328036838409069962179897166230161329997141697420639909330246116756920403995324037401656329897629793098241371876357223577986748634408295566433491250756550306899601303780315904976744080986828740525194424625288673678826941010546987652920144908771572139491825278800834304858836009055029475664146235737323968292446492778267231292541862735644825836117728146038127276813865736615481326884426587688191654608599038258762990163804019272022332542668766598444689307014150326929100511972623518944455474197659968714798190469172788051445539687943890404888204645866656843689720298143901619157933042504925566420117273206295078901511514371165252619600418915553319051983571672510223151331517604721669919368150136288774124507714195967411271701748953487845976394819263282387551387870222331305305795047075530793375449118399351721233464611462192060705488835027617778692538772487663352017332575445926368520596700212077917531380558806342086737776142399516120409501075304291552404460001297610164362060006072494335662349097196962147166141548972492126925309586275496966253071051050388357906570576381546555106158785473709119697229722302032949298187493348104758153288163337513567419200611192628839356293678556699924977469051545795676088413873068138639928004081947189729562242472418102179372451797406284919769158198440573262007880600698491194712050441440106375160919346931071156672141149619658475052887883567474686977611552565657881881958790500762445197642953011320706205524519092104971232246697907331180040305822853897547608802320177190126395778500425248673884088876813591877196776824674673186088040753822127415562714557438217973587660126830661829269941751074776686795767227097769554260566375461009606257931341560596877852400598270930302519928754105099059678798859655933233764093701306548794422727948274816912707848863620053945434322488786758665133998342787049164912814632428016770374937794706737608321846499411138421052589107091633153168092908130071498588095352023378831536290151289930696891371730440815349416401709123504634924619790266852142709951647072417906458751680203938239939221508215027680510643841342277876434412414081997678114341989019306226717524122328106830946352054484469464766040403293006426843441902751354580901961393297588349628011988699332715541619820354260440340986933410283231535998093832369889680345478533098137158816275781205794107400996050429871038028636588320978915685188318592729804585726203576350011981709053995501527124205308858352939685976687972086942352775821748594732370650097518251154986780506180854726030212282167137197318916989963138932111385489108057184729198172214214686421113227692405606914111110625324991099428455015642635475858523378183464468427092524284532175745789311580556979932344864105889676992799417210385896324672728478353217451465963907138830887615190397738180499651801143700124250102885522400706520503022207417331866842136977916449278673034274451827651423352075402992743977293031898780949903971023263068717133689454023587009878373546056903366187543764993775361865649702210188527009798986094820392859610538158118554155853272553944568987315235393385482898675526964186874550257585055379289166053597353908103670092729746738777436954323886685599965507693020844909648352415957934227042607103526907689350162779279408012225840324456840669484932659864909688282452812288232050279074549352938819540213625687766623076703955777265302657611540908959600043133168928824647516633940413547908277370354293676845663178544346680736017624539906338004058736948729773070566200193277555848519487899879660390816138529045148178247015132947021456596826881607190280688590576168038813485987391433540001244395695270772902524793890966140817956206929547997882939852769214806016406231538730782952282563307785594420017167005549287248362163610847767537415745471577464663235674924403773279393207853705055069844814514380575317405944406690383691420082037960423853901976956301051423522087718919581108670506001372776795825930877497527657787454826789098538990622251678887261705974919233335160958592894190582762012047851168230952815500583698682693968749694685423009173723026587912542101584525714830390439396555524060052870704041921408859048402492188516112324934387021084729827418304838860704178098374048121483316321658642243097880579135379527753695666461252241296118718284397875129660377112309013922153119720129346563187280969138948081143366790856898889921717168867055623993441485658246504375529557637272921427936255382053238050171760113272370366631869331879249988607097611837960843034064704032704386115883051899292602541597700988282267307868591284315259113394543817413629810611820648049874590844914327438881302104394613814695146678497217786120032049957102611422816397343972412346334094362241824959864764070386086808776539960524149427894511007222134399541587811803483075209162177225703585269949058064647333646853447806830306345282541115299911908282738094046367479914537049853805763689317182194087342773904479015108371097846797780645342558958333550405709298974694614169953499191064833483933285301529743925419375018836751448599512003530669984539932737726728798691579123125340792065731784257417405390192617685223540765570411303369852701790012442472066579768466568538599548531513026346035602087798964405557604757526483125810319318873505033839286078793952048059556464647943339754762357081256642684494949110672809017473595184973322983893838799455033194462608717494365444089193070096533601093003814920366627033386064397989231308920893192892109625634691756218323620992439454002313592618191769011431493551395498474625776612938356515283712146045692318955810149283900565428759478792028239581395014876166812044586882361013320802168201715489234005528051670584854831603874208244654218780917866117991013843905816657023517462019243530025627497307059329806414088509490374587245522793283755961419304845721798776125437693764751349306291297246214215922028792483870418791127572191460856912866954869205610996058215636599772918682504523180898404593913553847816453584271493648443696729646748375191868403572151567648009252764418304284120978664682541382191470755522359607334173549279502390159774836665079834753132475296197558388234777768661518601512837086301704045466762723453439429770975466209896691536924074631330860808973401606151424281672439015954436154094585361077801393517830096754065203845245615107903809987731307360144898557256242033939509003173474455765334240116338442452567978072064533812492607575903326393915538739973092737723559815342682165794481141652225052530933587251656664016035671207387239472491306681105949818116849824600013494407680921975377991703424120267237282962306724329930638309235057230054667823184234178546039434494690255974672805005750379032213479584539722979178934327382218602602689250344274756748209525400983311078885445517329648863796229832608082191934643101813847407269419023894274104754026175806071386653503088756663427145653545029889980704725129385547432594813087570815407440519207357706835395893660744277135193787502783904493875059668769875526333347513128302691143875254545412260653258363870802310603128836245874132732815008607235375464027944238819755276404138301215541788500740605753085560099206428161743176629819742577251173036715805698413233584726590873482810715222510691553598391109191558829050096064873245400661302934775707830939712059949948441465509876492493162530113133856662087793740819256074248840346075035580789473596733862857181425485203998798081670988174435127846930453018794082222833943573990140408569698950747135027235622390275090619175192669723672449263189610364031416652339635905862572007113579454966044751793795978879204903516081062593489912927814668716599531759521759250886501379818162353437813079020814511600519328328382493997217586750719921815314908957094339765871467818513009350989679246010299340149981375043740453164715624455615435212555072523049052112491654695219157532642442679185912620093038037601208627181924101944970477774312569260192509778028512089437374810147483738550770700470044534240952740285009028959299292547626311546566408990869117938465473619267566417218855808908769793803042104825567655481581867240733719906010444463987737832694818223020295159062477684773756618880715328631726154493589186312106181265508025282496062002834784049248019464304038606351957032942759286320173178783635749809101826052975779920278541926049994430616058370275572591540231045990269534857164947544909499714625311867503899421842132594187185219677504354362055028551556944893642800653978013905877976219851739949576445674812730257860508064989426516486150511599700809481634157110393212196899075206861554679955771382324034637106405205277629096243886530262656301547957444609237179189657506022879882287030927034244598383918863049955294656982923654442825494587923705417105333404160520745817375309119443622346851868366977497503817143594856019490528684522448042811490137556120375005095969868369385663737027925203989105970279275446014340982242788085864683969175937350960117092054388292616028536962166481257554833822963852634989735010465306837216182558124184935343020697484574392526441598793931688158340049622385063971592401838951506599482312492607265875858810348905054794710459797770284056837574464532805996142114347473288242664397791950277333493666794307270374289709482328587459931000952599531264048294292103733610738869822133332553120677405438833943204568026957099997281837368778242551918316524972248285375735523865686423062168035076687634384883175091409204161958947049007930706545914183003109214829753299109929506286437414682599611313008203802833781700790189967617410400098516007076301986521219114862394047419715327770941222593887430068051223286993791993425018798772326373879031053587609424272834136750430773829125462524313951134347932532196579592270973611212411961622399717621875954425725108597600984498519186316336457376127378816073501047646578067965870148203655407783575536003202253130869885434616794827152077539508172158219562328764281316423029525482195826523001458688576394898554317396239901274632074563057385150205782256561575872974474932192287070730957289458323034907751782829066409581981704663190665584701613575684795240536807834554770847197778628790208943150956550445040873346708802603478591010691902178912506273042051482646607944108654929391476786472612784642605977785770414873991867902409547453504812676883424370620789807187176604059705704356514656023377575904656194658673514320372229035115814300016727083389193407099883402178497691672500266225636715827005751870595603439275747124763180253311141393959601025276616366627450616005954083359943813255550768561425530772461682476676029489690071334686442469744151203249284056384476648564494043811498018572750819352480426923893368904976545668541195848356847740541166523907267260332249627724039207216864429531142281902010648239164671988391674685400350186490625486220730191115798025827845907755113147407007977104159928549773668020266229185613279853684585712673484239707988080152769833964208048417782489030162472137360410979006415892613878743093896289201777043748852719569248533241031735846752711608103966369815310348305598048125201922117110174844811397997561393453672960596498675652803904343435262943787779796590521459772612423460476543223024607990076246211515784495242338001107366610684489354489637703263669987401313348795992690541104753283213041089274816227714502772021833139134841644856602821109771021074246439060288220577114912851164971003514878998787650166399541500856218938517565891162827360908142658070856843276687693029151498519875981519038093812724692256118021221903236149981398556680341756735494774611876421215920887981589783307230862811671014590464480124353855516229291356295509824014547203288361134533615269750013976519309259747952328707340771759474134430798023288565329889886483127944969743523280145921621588491963268273888770778793889676779217096898020581185035001635403173299525026947392877991930375090048478183992503564272761595408799292439747840438185086519181165166709633791916170324035744477857377648518612994448313298948992984393683767455572070896844545111263718013924367297495744940817536723838520027933056188356694436094352294073449643297739949785519959026068402704151933392726757062297838866780043126076220134083809044175451070121951534506659783571921957175534906894693813830512445194342536114710245522787298334756342556270322248651463990203796730956791882618066403234086917864063985443251880688525439356855281085369581965507515221750962259848531522244553419385195433562288461310613337597255531384523240506420626937478796622467398609441113548779715505552081580821574164825438591862820578406019717401295103931651329023699494354993374487050335901773405931753536285197494562806239240572118706148408803519134758926607856910850528046557557775112650469637211720635020014203639248188763695173229417006693270468505051052069099189987779645177515854440710058236187230530817439172816783716638374354833000334726938537883619176252179333019044539732213624766266835012903184854307737633591888456010381545706131083281229809404474328220373328355833174304752972173481241420935657347439076352876195922009126491335319221482694585924868589054009052747515862380130529363800204468810994610252949415094187207497652254427624314992540096197815011616654603177106672533195773915037283087552637722650081705322879910836330897430456178057984697292332547353424764096722776961792047300057223625050973096978918673684190704497644803625731421468551539632830522024214022475038668482922088628442758639827363601051444972157588850326919984007005769237951915663894679408060767357831965549636191863345744378697134856364141894017473571765227878899544806319401140874062772395466641271328000883035749696163390964389514106707544717949134256499863592887912137543988397434597633581020316048671317034241934697841571472535566949890130928740011176694605397625220982769168213358110083080005586751948379599917585704517770870992826038448669047488175964574778924650425336790420106990838031099627261675686161654057233543766044410728332813273922482319039675254766836843100066596284488585763389980756491248026936799505755716824389377663433725032952287940689025847803436973902339289301750520484789431980790255701082929287075124007356813137206736152346086797811789182025822883938452604996171599104389839807787556713082179924209760374667982858169681941959648231934512170571543444944507989059810919874875172153234013326488528429618785970394603543634240155100276535073203507118480670972416904815177316841119937632014666951426042384677753014764181967904723483756706641577988039585323062537254429124070529371429854442474357637520412400155534586721140252525211603598707726443069766484466564226572530175127260757762009801756904680968271806434319224688890344940435012937303999741421515662745004549309333856648886863553241609295094803164844760804885936848606344081325577047057604052245687800956602813550799614924660325711289366529160286909170154664532209938098181654858608692786393024787712164293216316474007691508631643549020738236093917823133694457771329577219334208981292213454360856461988646178285218263502747856131210160348754900865063440254093872812872219594092309269206996386121898770218344772260689426294995845301373357057553908052183823881320870097110675451071904267266705523726272580836509096893552440026995184009291162506188865780579184323082240821417937318281496559131848993358774089011683495676662268228052871594108189782092145463359142470589462562404384014578880758162916029451907760915360588230721458069488032065971771908872562995198062512726844538896284237455765208955825871903290586321703235203026873669386865877901656317593954969420209185756524328341186676125473579119009752457686749961448821665953367801314475275094111048763320423544407423959085324902466958999413488478110640992258062391762553555153011783594243816478746880864885268534007668595162404432349463608965150954093336185425306534752242505935616902336032736920691221423651608593562009462786161973295455892627863718901549460602427042520380862158770080843762753232635896763658528801127586234600640708943317151663686661585312799827731570434873437914820440208904046053138536542983598847211336682005707912949256120960179921918088479361865047878521927948418080433897504378859994258618857716935433184007531170758948085077048559981828398428246338908416408439221752394385096801821273915914900832799955042270035846490118285513134878048840347814822535446456784609441281565384406648566873044324846805867761711396271787263378493509354152694197273815179778629807328876106874374679843244442036723225418359188539125892664497525681873969320306842588368946459246055577157260730359302326809124789074461152837764549454340547310475661500247146300977892680508616340741432204008949508056934541334296331458680469629022802215797023606082770323094553607258036205336192362169422359868523222491807943430632379139213987457417165098663893636934738456716445445030228033285417425853924187780925836095950419990050876251079000914460286278109168685649067258675352893314029575038771288447513265807298593954860130101825385437028597715094033023186917595647663436242663938715351106524476917064671779621641048659402139836190194870409670955455758519425946840178530067861235661205786468937298059622528695019655414716904096664879293332662386474506185449035204570670949095882731860884007448802930377679878346727636214790217765756637584022938945320219623010537220125712849326362431143050826636516397553037354969388450855709213027438265538300969840733772230610739919830124059382748024874283897795854777020233617136648803329783511822732104563173965536855957053565624179727538393791540223384116448475219650669610949758796047750068671084730040555948580809569783557749865121879583717478848397491302351316309612392479142203978864093316734400608049099377234702088466271387487210820143239608909338828313836937442074591500663612900641936173273201652451019281352773102480621218968591616548260188234898445931694423302112944639203881514318373348494888929034095254269266158263689625710803731773099224308445701373050909568860235295248736405114869108412355140188109574501336118666368158479989912621104773041285446456577918923519693219560676504811854898035504386871372415418057515329471968066894008219299202130529342334652229606444309732838974185127897359239695474607268522121693054388363351989220421034709594704038392658226361695217124881701045687355462438289810955253581871455568232052329825608532409640695163681296023396040836632706396850884169956447364422786235905600805161767857353425646177982237365677446184160730288759077254468364867000395051525316752065003365184170404947710408552626249349829488080258419169946581815491810763544219280029398074488333781037339039866882860144028460469536520585740325977436855359777032781340224285261684188301177075757627239598825505087796473179331640984380578337056841601358834268230768837985685044506370115298575714380821234232919950593840918193823795753375283904896812061901966201415352726490123113585021325463582029543973994110277972766161172114413753443129931763858634892878860445240401687852016359759432310771409411815873358948909709827258077754876924896530939642092182850799619273946931227794163663599451675438967084111861149997522299230968461230025849687765452220337850829973031586283335137326231727451042967413608270620667416565135000034782304077449422789401943130042816877403718961702184008576931941842273872374636964106422710479380431484583261892064372241010347611994080383409418660907443244132390734910261945747279404553189067212130499067017471735787592784942290334980980564215890437339995500532539558916508229155143885896747952143056164103939291956069179398659792861677817277623368751185804885783141342354235906590551635952778331287338135540234592149213365142501954238742442837273684470584859567453569965408148797274000513593537316099449566601857809504350693567378987470919320841724668091832163811339485097421018114553216581422850310372319844516609584919089378119096783859906114052295635951972504913831994850093607751776558423189355430702870171486852395635396490235554538016663505544489629724992946842761196244607880848011652256329242198058982147420154363683535549230524285913925431221967319246878874150219408090640621336802057898654501273403473764294191604294742844447246411702594352177799002332145510401976572464064527931887786915286811843479101278418408555335244825992405134820453954619937927852796083297019466091743130531855750422031605168416143771956747812891569276356758546408966602843573769005291225477229784212467877672283136967629103279302067347373663819822258561948689009891346109425223755899815507641749561054081188751534669546691420449266050906244339920349761358311427036082135532367295465960618902934275911035620346068958567223850007041389739248491100742149265274248403632171856044994233525116457674242271601782921583419131146778331813659256396329114614545187797873008687671927016536921960448919169430218512477606626298712730118920794762738001072959220299074596322911658142157783310499969181921538963565772549045928354730193369152457391166406079614582015318871221048356187462432384122379823631868158449057518387720791152805223949630605261478833727646403951547478447129734139577590368016552693940134000813266766495826708555960052744672231936535493877679214396887069150122020846603989672146244860835074404965690790058758112838350522855400746237852059250074376710559695957649259745738485863078305098957890705296259695010387966959413667553571143022230568224280950708363909256970287098096559294426037583507587293426779878587345640316020926688596827484223504020876704440681348083795568936830528439349044334048579626642028435759758478752191439960870875489530768911144641468397439794976702407502321131312041102758322821275779921630588571104713937050848180981671274734290913356008501999599256789776887350173965653389264211272109575095443685852221961487168293120343255612825537084444080915753872803917908277265634032679687011015546711419319345017556905196403262739923847696925027552520754189466049823654554343514730602927167965133887904920862399996886458353493599345509675632618449241835984615626115152743394366379500699055049497134687218597119779392294725132666765640353906712139236961413848436791058244689080184408147622180436736281254009606216682216977470433231828255986836066530078497114715692183336257191659572819982405211220974071439282007003079259362321903922414080753959245179939442917413011290908206563519036650066077242514535356631977958006487278583676657571736471005214360546367857063670603053875380074542756113376800440220752651156034743249351934553256305735730477204815896184273018424035401162055706870713539250373561680121056381441315040918253262715294114619096872858051882965919345367757512696850775108544824974882624814023745407414840552398577832066778539101844632842887849184526873299403727016968284618282156517346368496491038455327199384892400844219914129235073056042942383750545764616860362605480292025305895276980682243608708566161129067245617105258016154712577496239373002161533060686012699150585573368144783878840199250591150123488871612869344748823630760952711704143353009555954545226424004118833348414350575241216108877669319791145606536513937584748068111858883932140563231385993526756764948396882785273032182075492704106323690186685402299041394067811080956438973932346038273622325662324243632010643765804934108560797333849079978544090953772768382035224387987227184841630290494274166660373422515030843764153041658660002325588532112362077819104324171233318568855020848619865359342096089788172515145141337586532836055656775550208331794492975635777665324041477230389669368022079442884920721915674414965865818818181435110581120667318113995248110243613818917022111150637460785372135424455968036669497900698313072451807232825648662311431216917146433744664972503062653821247066017836121737080817378237028552766696485474573311163326847254465263429759685474657629637161943269679174180825994319191448756444812065680019248852294923309414564442523250748248929441041460400318588720784335880755807828060154010238199316788706171674076299840876403167307442319801592283678181053590423607954773743149684412654315410730519346353446285587332800749910056063883230365783919471863742755203908705818402860807376134841300723288593358811580193321701979991035880847759461134299506447979710348394721033999553834546961794258797959664523275735120014023423927512981994122758759113314623958079686960410974217096578164848500547654350982050795159778162478435876731098323050209366276763303965478558311541330668868925149241797686162778860699035723799494598529927200751420089846241482648495725290459761816804398904763664677402597060824392339167323094629656302512112534236264446764040658106473922673636387869821143451685314566108857226020926093033373644879304214322795754689643234573827423868002979935111719881022499281516972350463536547271911516606266103850656262436564124826230293159044000641177335166416794548933583491428593487129425679714753765454892230255409712765846638797721873724528563200417243197918583146530366885657951907442722965678405886138974994054845553524325859307363321721407073028260982038325963843898529875565409709318180572161620823264636121760649002163153259069850591575270546586772086328989159362791378203424873047923746070169033695950232221561777966044570822548521841122337135282577036919045889828581602345968366480346608398815377152571418378651284936290464813275249388344109095368966408078795829722778954172069642659240966627991946378599176512945885085504625241926348784510229064327936066266041341208769695526956011897687858755531554969282203270243864208091315157007381862424281365148053070361818742298833946780305731431078423711765118181598304992706822413155256071533507159678920287330190615093633530798415486854699893147738283776887912215124249500103425751724886612542513177378699503096370904094552482324182945195944570849516885364389025988637677774005779284591315669941825395381734294976686332789586369758725098458227519308833765449369515216899931184683836255397087221444430252373743261482770284749919885123144348772710423471244291677115911946969697676822921976856055042042230394653596779624389833054392277396904664651320195686401680139524766610910999994449931702672672988381905518455590709227277596249012568929520547690144968252443371172875998510763477887343153871181719423053463941241223562408200035660433942861646417865843374017911166999828301896211801863265394079166588431574062363817545951307269058250106985483829798836385527972454443479120232233888876585241691282918584561691421027415984415834181786093936024006115701710659422925289724295206332787167459418648562468040898998910366049831670082147867176459089242416542128557879830934022041539582689101007461218250936068909359147842637246592091310681131335978097020703222683532316239013943513738495285785358938169098654484169204421162567085435165290652802327532673143498203728593966447559872125426713331847013575462167748552765666478894528589275010712827427094987198031869321504319769782489730570293556043172121746716885721579800465331589492835664071124306566668818689003070263135512373380238121210570108248536282050737925442061727586127625096671190054451020747028900471004465201259119322947171106467743488359740947666617331180969245181342908381396072713086287437621699328060128394093369326160404568740381603346396574888457883550312983939351853677554563213064169424943508204084165033546712999265272284150490877940451388406188096515615439660120845034676573957679506960428138317773386841995058401686588849969532026582964665021344343789106299303156418427450553792326033272845961902389632109120879523820155456143415548119295535971123939147310575886462946176870349945457129922386799867640801162124371744478563722723463378777254266100101629477609935841904967453379329251142638373029517422912755975284394375543830006800570210204761465565714787912448834564321946225510701219871295292526666193252878775831376234182677394593605068599641582094815709840472824444602970322488327112330269568143804795232421728274844233141237536583660060767469434816963497142643733149543213100449167129578657962774981898202923295149197654673864360086881680496102827167067239401280702363630661834039181235818908926106149199136385682013102603391220173639451573096637421423326591382260547210515409536300517774177276220497114095811634288578156552424039257266574743372768336085445088853450601550664701756469030351881430044981105885407179500213770415599405972065019132600916999715556891482244676992964977234447435626292859518938028217383232215429612228154098398190353114964411446781874511706788723178689628277900509217402259650280136919905010382990029518155859576562497082632156143868362684836217468655411313762094949475003816933354840435869189247965053222997220043457514913545772609666563585328473145618642341529403421750783234712838714055300768304080109678941907185941915009057899724890711825007754700716464440393899115032278450086239726505019803610713300600912760598432150358511168536625896493006037926976218105100683258208054303117623264327459915258705590116763310592851011698945790777501871981864697037716057326294724672938837881139618069651689244113944368416145829075159479113632087453547077464121753701440457592882071326504918868335309704991515292573085494155275711785528071245015687244850105252763478265936394651036142587637329952667080465851812095913759274754303887859761642754711386994150912630057114291395396947845412659406769033226112647938852296126935809158893995527380501317085180332981998207918006349221206852168585479497033685371804995080227946961436110835897174276706800799991839558088448074521766240185688220570768933746179883611727875976965061455450124187288450984113350089002551708349639524415773727472813897117060368409639976276557954088784268264400892035636254438362458507811007207583672774588871616809828562457652032766550612771407959377374436417858778858215969665733530089789161982627173673299121536831645391119395831013131386729046786901308507049533787573960110911232339792402057576403603679475200928853315745471789015093588323669015079576312324134713321453929764884611638943431044113228582312486036972695054580532472089910102131635186434139339989348693571475945282201330245873017771345484222219466292527873584724575878452967058145917729253303991072310835849952070738556893337967063546157518301737460205919433253456844476408089553356440126479683122298977816121663940784150416416858908295791577784817703426881713541200712316472773918120995506488714747614810781966945600138866176601251044979552189906768314003604069852364900214649579255263378381948427891207224582103924161794019348414213312939960028076401131422638812052095957165282810888870336141054344586650923760573739145579225905688776299452449842396812190112536918393565031202062281924969976305307950561568083043076523939601457783434129438595947489058103354256086826493063345337070886648295059276539439574705386040150243618768897427711201583327915352737036002352147336000206104443573174629966832333656858333054468660347411189534851889618835002478428151399644332890347790060827657088904665055898632256979582817080482546553462438882239889551879706691287956888071965529924067954525746680691586051769868560482203073560624463497401003868791547388202426632728961561037370513365228452515285456437632634419299189768643276703076975964863807473864659123691653162484983039110969529367781934539109220647306380670209636581628677489368925826530040422063036485442339906482427387093022672070392343160712140160077660068393259108538491204321786885749661816657527518949259631079151642050920862222687126728741248243272561078181966125712013742697209733265051304179582052510370886062521868066508567838211386093173982085899332325692658372048243323854269100877803757367592024565079977897927576978753837521584233077604734520960494170213834091369547994834289618543481665798273835622379462783953255534284200263476085735249911413377502253628916864876332321452983173243663248382659530286796978702233220127414101729197401051636782765527719627351291765292876372610628488315537446552698302785442487810102654904160748302944315387044184362512406933291849800913505711576273320707521715851480860335452388503735765377595719011496043353413792175357493779174806486396817815553963844831618807218983041766969235625378767914549671145204663907176782550138273298797123533680971819209357936424921303000420416244378563224134146282535874699420796443616483048432077263035318394161270594168499770344017665864281097823684047788417409132609086955540180451783296785690619488882052294226134521079481485801321789219552333142815226213602897482642381108389980973595077135845011886673728731135172857132289817376467940185289649027898826524975700729933025674851382930026670478975746156109105970560650091577131758306374430672629181103796422806583146786798575831828131776609659291492991954196368928948785089578439204874223547744780267325574921426202394042665607985448995316413136279948226562151797524713570695468346900388232677097355221712452200060715617691353923998853116717858517338164091791374445076584758623590753253192286711378722727180583746173237982011108318614227430371647592318418836454285770953513599411580676607520212977370225514973956471668929187834782056404379428789260546747708362716306792062486992094555505746327580540834086069687558548010590781627155673949212788981719543396868465180968040030039343863172531314066848846529398466878739459901138517347078568563118395572767726928654688561151563263160173720545586216274378391088580564979443074754405775250772651851109218549776347275484514641597425634804592687496578747552768084594279190638598427955659077158100326320554526257791395320617932285402698843817402658736687478262109919211191518452627824487157048200113410638451301811475594176807490090679533565253864199687347156336983158674733306177479545497567938420005969287170611092791261454918866288494714455285606799001312054890511248032675814447385292831776631638234764927160923168924282290455647366256583249394846863645186399761431113346056215163505365191542716965642458537358718278545748211171810796873338952270725241722353563696522598235599037828709160434471218240519216657221679341736581419659168786560209114483375353396295578124241918305766974990847251929401814564221538167182351064246570921328907130029767463162559007905307266680965127801418338543846134991513115521424315834990903916209075373213735120630389111934773550697890599524035592221869114284554272716246570116553810325170053651340251367659821432391362289291617661400030567350303521664127940246459093035714123121193369929714335977664089114488342970081473581992788823353336615324851747417747888210952364661553325705850455301302023664793228119522722758164966688132743041341738696580269722902692259412108862001526464641572928876586184780649795400725283425828332042825716799400046232369595827023434217392108747211891590255128862764454494897145871554305317797033683215700051522262625510313530367034274345121740453674742944338227948004603875247729201327170689638171594822070481518411582135557247627458675369306831200974735623013819166532882439482017494991535514375707961392909561005348355958283287841234296270981157949862412405144490615541047359286021913460839934847439808112103319105052408291133092544644423786034017028142334654587894184038606646427893255710055923427081400301606797340464368722571966569040872796209861588663074383953647013784768875604526266688896493202851898604668629961840176470339572386062914144024957241759438972130244914015673087432791473939207502300270671908740478851293255561221367351634949814570754436944894430243928919907519355004599204185379309802719268752502803961754640109575922917752803243764071477847373732368921747076436041456539475706657521870917622488088277081525089901784727876127372872522193918837677694572112190881964369907461560097806398021917836989404960496144248358706580483433548356894029157316988302378136713711681249921394592308338594432838745518694772266938262768087625808492371332069545695018519729061128896030214283588887909172382319782344837932055778761049608224795803864383485583506735432075093557072439949034698337832872743675897079313786614967530974268384177014658837814286851431842612377037252629559247294271216225671312751897115811833149003184310813308302797363110785338631624379892606576924629176692014150670011012728119826973784896456149277022254395329073298689890682408567679083753950331676744367517977257485901885800090581933724449929958040358102868832764213556269334412848099086697227790027241190324273467966585657036329760116508376522845769642939610582486100607114791570127840975145530267761049116690647311206639256387944702923037678902013118043357373534063464720009616580649501164824484541113912605252016776605044614922950105122198049983510184274327219829219345409909535217003220312132116940789683286971020447566369250915033782368442116060745350364463907400264611098547590267572922087608754757684888563973471532626027822105974785357187902376731461881945954083516834592795613502848420811715040489335070806493703583556759808513377755242516434419037635508151305235264721229876297049825064765170629314956667401351978226929032758502948793560036161715642549307989037835928885385584263286284763758282850179651794578739633836907080872043086870063332444505433812801279642896531938549719296686941761168506586980481195533706652101080014688731985963825858585367176773639139595702545022530683964268237222541404210139282041289412193623732553333751650990964293996242065917846574083922140292278095798580773579480824065170144023794138942309707879672924182411738165568161716332697304787526673822293622033693659565671360453428906335795023091043203361032876126977291878879631615804259464487355053365735457643173890792383055920352790111369606667725848896278555997029116373446660612609890517090264803319092978496522666266050142429367687181527632590033255345320609013471995335652375684891415826143972495957255174202271511800960177833184182606980184311171753810308793640166296071917413976854883637723804225042959769067144811476985330388578547056618178262981147245262344687749082135957733977707329290319763665393415414090455139321462263330835664402549165641186518103500321015530938311849550050169860053147429160822479613818620758201022829581582919607151369462606655686435887799385089546363749823962204569797938909837277824734840393715719682188423757020617354927904012584441157759296832784359998031504145539040977933142820551109876797027964656164539610219805235083035641711640683373714282325956125027999807159014447573754094961357451285910020366037032596435320800888528910811219629921659281087789361159067343557233552981818129968707444250625401111941172030709682379247639417196402482762486625276201819553183223497230069575161246463432412424797363201679052287681855647166123421876367009267028405906545873563546147375598166982149586819856977762032113900606151492447494843635143740804861425582530905086905643233011929733633531104218066391304771753115164233965465571475977356042398580049602136500273019101541950085859511844709400817920812657475011722838532835751575941188905376712420835046056217039501133088838946559181884601948163894728265962789445583032298676714833627608307024204318945402616910031079245247448951711703522450996737705345895181264903026653402178693947849746752466232797794586776258135892347618003024874406216794035373558044825328375832206308661083214040487671629137223474725451288946535736021824423802118577325261294301433691397634857516277656505206163011350073966862417622580447568544193928160971341091525452539248118734385196082288190074725279088147543624951040259330311063404403586250859849708675338683238049977872823482884715128785604447744566273597224854303798991948702674493848602218793011564201601356579898604003581856814557213245888006557214680409350461969343152923270121014807481489730129491285471693812949068965209635847419483053487694340718011305575258553405715325703965198665806441716479866512355509965110110860299058708962971163463471631645049442185065872894686970936731189118484360506087536634666369339858282500338184215258477401024357948732406100192106049554278348043301897537186802793474875412532189668231833636805272966636227143294220605609542923970211144533839787581179100580967160284119682675529116367282285936537827932409906337262070099253009656221905928237741219193075968959149935818850863055303295848547455021754355351232292516740770587923744442287296621521221744945047550546686883475087713287795873744895140453849050593518226607336706383925863991664904687281966131534910220452207474280846536828538631457690699055944636209096834952538689252801987344548302629226894787661685112160767648530732958034421572918620908493285254866935063985836352155223650279899916010601810441976935097004767838329290270141634435615425232596513435029385880764176371258734871070882718491598427192823570532481807647593069666184311012623896728402130045046360511733718876507972711934999798461455336396565988951876481513735492203090904427727916940183632862475604883696246301628546289257453394156376908583998596049860726603242116834855800740425895528374326647861495630385902295807512592947780628868654141861526461621671600069886436486485296886667223195353287438727709049248657656317979724346178037953607534821483223283387571053439322596262765889846418577303532755081311620581466045124879720514606196840282836002486139809490024108170869649582475906308655161368192266238950185251653099788005442953234000490391062435898430629398673528749078492093350836779845241869819805253979307178206989325708460677514254239168398354652357174979612291565342966963335057454834067818132433233482967595592370324177959711333499324453970238196692367384745521094381209629351398893859157487253585602520812085158464906367569443694743456133073451224775472266481611393833325252393238800495735223813990237732112483746680332029949046489417711603540415656424710659385570606908504918962475716570987593058948284307408570837932024574429405915748668570160520870948528849571794257638965753947809678375090002265242873326979891699209662255905376108269928506572295863540410633065075619747609778193688960805576246379156893898606966765345585377176070507835260106765231787855064879257365888175684976906499764129364045777669311884599112427886495090287391488262380838603984596088231526327189983243842444670835487922264616457056519973159656559734544302562527815847622984055550191300221797294510859983991345426116529963011167341491414453231303454939667400157847518998047336071059288521919488034121611316999811874585821271114023790514343241292230596010355909368948420616037125417389196245790872748899725381388877928927620905964978578833124872048973566475601553566316157024353222546746629455933855073298941020552431612592549307895363308677961701167011728957470267734086900885385369601571404088973069576048091433497199351089370658684253808097513563902039016201854002357841380211688504638830287571952557171508181196715375201158890689778064908036562858924061909844140778598453305600362299853593200237932443126462959630788401829258990964695573147753070794940110438763106262353997760352550584399048431156097609142081011124359652429749843492013827031609103834587255216644641666451880513727588166709751909199767553122836833386021548445312926087419438891274002119059167562895126001643192549325785290336495729691477599145166783704387426958720760083394784703356210764009143029659144453837028980892628940338595097186230802747091046882192857132277352434550093803016876454859822353521116673135709435691708531828290134259834847422762501209841302312744624745251431637677035882478061629127361612486977967182555688117479355797131965708241707348027152011365503652707083367972382600829050969663074692778313490590425826879157638045225318715658136470889031012637950712071145402799461132518958306536193595306170645172198236019250239351706264345718017172970131664753497728190716369621275111631218230539282142649500097326630974473283757958763623693099207774522381195248698993791604167263244563544034220525843505192427366350186630689019423002098384417059411313599795001615318138043634537788354556208453432084040826145006545897183559855591622742249648591865708007867316154338311715782486559735786804941701604466028005286755520647864403660893511595038815035830338593212791531786647120608717129681328540277925958473029940309793701822773524770880896768231449395000587080327065733463778332467695380924147366825812155850715224654391495905138821547003412164125068714192301078197766765557835926691982021399600285820672818818822369047845427414986611741651022024809074052459023765542950028115232172490757180957546536088414710622271262059182685130692335955986557220145005765707055836487457866111947855949409571931331586187254540926483723713571225459209947345725050727794321502352160819241233927283513107327137680956824512916858155249942136098253914979244510787785348985285040354937673147052121223088963174753657792955896208107339687226705586471335852573708471017384901176790893481480189964619141065024662066747699813222718250728406516201914720698765342605699069669252348987664225613245636716837129925140775934039999087374090052813622237338412539099009191892973477347805014032713936400079961322280408889028588115753351885190630131489631134610377178187348841172212496833772494273949813237127641299256688883113662521497648851630317295078501992192930776324881297723805794994424425718617111052656886158748170148528048115889822357028280120078884824057841939720227107891985789176569183308980087159291135194582806216315517133731985562762954583658062475178518019398520792324410788146900910555400475262072329091675461006135339369246970970044215055140530230203262355922046860969883440845713818129851090706790754320377459283598294614175761608624176883846686820302924577510432300398653426240848878403226164902215728960565080012750439524425828305227547548438617647477631300997633914486462242891517736979450601532100125401688956585882932183406814274141308717040545453955774606304259399617627593040115416631512944826527352872012980975719337517455572291732486512516905557771805819136682831718218645223302025695536952052713229460593369136478936749985148458590683004387737693176432533694055733504015848893220241890377306735202197729338804602862770213154714313738581263206898897167886230193529525186238578063256333075403585949150838303829921445261441713453021741422925101737683473379422585738569194188975001677160940319425119047984261275880928546502964739123690369507793464187292823936335277160259696965102662208347075992154637138930840149031904276256234090060914852472096196391998926952105438501947188913560343039392494021515979164660851171022358821971821999977496843112012313950696114647646728798732657940964798933763659334886460123335434531595610331839761731160058008962614383269367780292212600062052926254422597820279842555804257096315049454666388481374588559993955963058559091553968606379501076787859627264539566947820106414000100870389032835620183290325021510416458349763482817497769606125215671614195007427848364144602523817715152111998935406411197629960158065842911723291935191053594881847081684428786940259765978701941732893049422635201827808830491668345608106691108222951649316697473338468130264980526531454178411700635284935680688678286453054302453271381362822029700496280883181517715614246930322044136368893416079958582589520550848222085701455572730179668141971137313462026810644981437788263740651511259640401019466324768753708195212033714875387942511409395630256744513838394953406815596547404632120824215024430478127999274951415386137649705963329590239233675680093932836347738906582351823644591717174105574355435864192375176378597165972526250645327023711316666000492683881132440973585811904297538145740806777193471209758330748032316996346613911262027286762843216849886452358399506304722021644006615321881645708037477502177720047668514838395205288194258830468280332517857194154935186347774736272479008237742602463013982853358984149955295801076103755205497446617353541384210202943176344307767232701344241709991498917615708751197268979742279602935031967083778021486446677914684405830948750830504062246905958434111862107543371177295984261318684256561917329889823677586507521935778642530502538148098217096041937460016560224620778619484499718057653963515956510503501099214730068604995860315325889707840595345227579392180260496030082838398566638097767880187013584182075862373245416883444953877785201251325586801369343792822635957244314295058743462014085154714591370758063579310525510713210216483898855038765808860950168437442342538739626353017005120781451298251685710960536827487804119283815306962117726966790959591423133452184674609776399252735805167375499211766746315205582964969859622091339205622742429450057410614015116601155512608291607373262282016053545314548899124806199174443853287065933414065356391830975907701911169361691501915419577609693594376083992488718683888995182525247149124395474816831330277240286293723217129311366883687179340658529596645584571864309754509387407937545233858047544077603645814504880815680138644507878780061898612374334449611231511141165458882199625591869081364865159316945144026130375713464753467547163639439958391314002873144774806983397146125121925518963239343760245779835009198912513208313881330802240139910720999261112583379541434438463613210929360606291802048684984271668655270074751263469645183483399225339963846550986335177600567313045534863028233079823860302522774440935090365082634702528856223350286116865345655956064625481138109708139880293362031676737020314603398737129880418285488883254711357787009557894042193988174134130955004458499043023413138216856356307729029156820921102700921712716449297137980651241815362346140042805228208768088829318016598235970046795463399687310869577245347901420145968021577910173529018263672583676580204548756691143343982091714514955723744525270163828759012160203028871999893882369327090327563626752368451787192964716945060982807193197251642535866969155859359927169222329120812169951851864822875977933157129561884381229091351101099859378834306429239710085886578626055552144146279834406182371875762837619579251784207211198292134046398946878408452877780299914187319186484176860419005877649022297648835267668579443650945892753052292695113066224826686458426039757411490432016886458494708999353573372900170396784465014894272038731288440663798659953273321581308246686804796020841598932010671961064906873006783952114744136861641570666550902500834767189134223091005907507157794116746593451141851034895316884328523103482933334289235033546244899158047896780841339712194103668916314165410556673802316728970183833557494875356826724444910942275869312028708447483145435379185889107199440066120165185983812066510947193036060201267822063982093355463361591892034295308467212154392573541942086999721998874658762812022556013746524465651359151951688966610206540887097306296308247837318201811886939713466015093476768708139989667674337966346339545310709358665063536133195278265663664986490106555886318338465900225562440307705294642859280347189017300735422348575554328345392822818206200902510835177661222720959024727529625872402409464700522662352620883227114637252317336379907110622782227268943023341546280642772475779571708827533401203887333652043537749829201031532745514218500491074309065437080338076701755941796711194239888172603833328277371924413097066206700236223204857596576498127069416624217194700379167355192593186496993895341480669146176951226487928574334658084013695169922762286039071131499540489000753281434960876746879005219286830866444028691115283262467745612310121666537667858385873650813177946348544645143875510407646103292047876597562979784569089216666099739010663345188674975991180345749035271588422895892249931465940248683865960654271820989837255974675529116735512951967957566865847223695314226199436154419988881222721645370041449471881043225012919036477572216683030022950344600636941642168520833035143321434889011462267297315874819409949051636493162237088526720333308407373766367763460596639065963239382172528735833640566568990017600333157681489309602700175543055578870460486408247053219527064063015375347295523723116410397007907770734652682044510325557865612125108456160230998137263936108261013334399135229887430820551629411807786095295246024656837254805098777708717236395578307165159998812567109490103339383818287551890819988016878973064812522241710596377254653165953173710209051013690417422350198685103716646769703893810428073880903300226016506824424291497240264101123664704498158653121208734850869913221489892490047332155536474906896775320900242669869984312578046129174573298099849631982778821947650338768307463214458377268051962775889027079142522873586425611601778337386369420667590235447476855625163938896114027744371501137787555916235559898276571496995526243908784389490963080208139597213186450396534494302679226837375797479202526344209652102560198951384350500945319910657119005877121792670803612339544772954543260856980309640376378630282997617443884991841686085509387985366105275188156561260651993695623444983041615156668969742186474115174612747832221594733359288987463911539975405392790913744401935207211338241358005322291960324349611923671097931531826589411150656709095403464830290410431427781232344959413960785857596860372109992382721427868958639038410431856732427966030929306845433225935048938902008308973443301963762121655901144992666615266594209883048700188717702185775812144902062148666214060794521107995520917827470343513158615350460846569197137931878241389206311027848301673934765656939393721495448887982104965030546183455812304312528602687101164546130701534352067816898470934094873354179601527102062105661413891178441352585218272483658200628484994480663616259722375037507314826191644143485285768689545041390366173826754309247534978185888407311430618066776979993798254521672806867186566574338919933580449040625999139719878763897970533187659566185996439922085012551924321142735811422392749709706442155679065979744815642071504285483227974020455745597188957058496271593719380841988343124767004728501214319254655719919397870592211428296570496430904864516324384585486142902130072017351943483797000744645686185960364189811027461943898343212402786545622084316880406632120795948168174707204831379480144199448246878991448012368507399508404977306411655466192743108339558628382386863909759164792715763793183735792369148643750598488539821869533622222904332363913118122853371313992254219626629285729938925558445995637306253339773648909948225272684233519879912515432806336990198622613329500216061058733454087590513906892287520413252223291847112541070076114169433987596523613432198147302655542525520860998317738658826265303962349856916891904763741442587322113513612384838242406292722743284400054742223032351115891439778122867036252786898234577139945465955356991784044819114997598880493125262828659727716533819792100657275864554424214240943554453908158520824702721121551318814383750580533511595892588797249060938575043534172248579521687626197387728889806861353614425780458692697163568043800844364475161501242217623690555909662241867684344812699522840417461078841682953294731280214141407854199701402422777187153557759232121547711141957325348009551554077808673796824092694316923213385410574638992079185996440713712425720148745649834231389710616035622780045006360174495844155165949689407055582157957550659469135156379005034482903741922799181725194700635554793333815982773035252663688113870740078427636549029770729509406674118812519487390808791501282622820623456569743932536332881325296997569135059946090795296489157453035363690682800872518622496277578226174841910500051621156632149929151818934698740754603146824223402959624524057978780160349702382910484981227080390313251507091506867618036529968763638977565593563996751319736117713079859031877706875959520539027164862262239144784012845649446105629272102016091270320785336084357651370425900976367802355090336634195041896468815275970029621169102503460716456900017863138801639128687795663716933615661391984214381342388794296031524870905533686039903174305417001291224492813555861542558803940263853402897944374386886513456098652301331477056637066759048863296224188268247538322381489301590271771139407871544650258110378771419310584158833527406933172434978357031529493081582808445724387527255810306394379943529150281077244546369940914148305239787262887701012176412892604867134350593851434123315153589995907718209186767693192655413068320503107002505852758105652035589201339045527547848870055894700325258061743353030784370290830752740675620029469031243016088448114803979440487949183643443428062171870830434285234337792883053942131389719175878465862953260388499642111581959178697390449189285136663899046725475247160523320953487994549087569092986624698277320647469800702725646188362016111919500985661431331603339016010323018880117447942068417884234160967783174924489434111972481939769584677091544174165748433358525766830690699113183231049130466622867979076760972348843980164256604560859570045650655395542869294601225991157720006292125524791463722249840252789938860453090694262259980120469506540665467121887581505553325976717043298222151784425595202560270153303519168675697081593547489001892255532091899887870005625273923489064850286964259835850016432733469881520841303240587413362799426022680414656703000911156435721690171563931928010888990087287796413086370991135645696986172458234770659887208724118341159077335720039725138074906910640587154562320076040146532074289587744398811144691721919399974546897087945706151980756641245207952585466656616557090685464447032018553648821969302098267333968044643507798802965008339586182843408458778014346490667092241853093390879397313097374493496514678730503555893412079282540129039257144388548758327499226840406154263858330884037851483551960831681258405267082456638509177375717140386645405141377336084131694391507567203754513599494619065497952327492819608325952144640769594396629022704243033547037889170649296202591080594999556148510062810883753343346904539010042904272117532538388144002263467006159233813805256264392735280863067445204421310918926565089373455578680559727550075718954940290180793429114462872584564430041236423111530677776808228553611854712440354839051529556089699539685624591813174341338887846123886576618664214106155581798939021727269437029090534605397763039579885006916235169280457916200420318789360231613988613723083256269936292108581926528675508300255142828847903824829906349813227822324828311492215894716478178309546252718789532079489981613336256671793599765664208526675361377847345081089703513945969391759261032880693303399113825715164982263076169243976202790210299949901628980756111601326173509169965312921767223592064708038620055109981559716122134082127416224249782736740207280395742120103485462302235384915218170681447352215352451057652944559099173295516308015035082043290619636927437025382229813911863817366749712870024795336039194651014023828326470257477432311480166769906806534862056241351067515307305671231083924683196574241454659834100294765087408549600694249477451862219291929121455991844701122499116867490704322136078449972136631715334463737118605013804933553916567580680990702070943571581533338026757543074220234758594551752959552442686162756532967839186956505877646444829542905629826996147063129924413394157620301297084039115857098932473950112332784582236389941550364333041533689638109850571957974670113463209969242507704720647494277180462338707119733161718210011675558595666383202932099185360202638328999268140894837634112644128466035573691210239197157404807809202040729209549712850229184241683247577286712697800691614794132065152981866843206597359548243074227461080095910128350678663268023845075523879607200916596242128468282853775715077619773372411814960867065074440716064069659331965561365427630290871181030063799498933872378376067191868869941195728697589938891595207668159676317682235796604172543244476284930906274893204021411422835618912237005190675817055000717625189220580990137529564350644187181164979006335038035116737670486640725499503489428774369243080131137208728867137761038660419232074242120769821935694696140175204052928191625567673486594456457233684050468479261139439465397948993863703722042451473580359501422759804211104287113248042772293139610169633909139093210121702880312147875226508269184871876671979278355255428233541640651220936739378743513215832641644913820196730524068148359127939602518016497835161339999123796224641528591148902097891308357650530871193922338427134005535014419907136100494806702829074450176386966846682732261882970374071783179415844033273837838379199083690190530758950634140164965675785481996067544826708774671051114649635465116089632988114611247534943892050817282979190514924602602809482310357239311654942427909954064115291369650501692615013333850711409695979449146503451175502402876383182862092870467125670220653520636412251643925520911579602108267537751689699351747789143481228535509763114248526777185849714400328757676357329180217217060515048650019348998926299825358217249862691366847514643612419791569436650283188498004152398675734986790618903511495426558798099649863516061912311306529143472178814626405114416057603158771881881281657297435169266911532981742980989094516542767961985815487366877708545989940267702422479157467702740359391138091417550581240599290563563926451413559608419413106616211931516027737599564204402534816772250984662832585918678240877136251361344463817978269189840442237732440293433146956670250416556691782212123288243817937331821071527547153867763231713605351575302510426108698513760905784798521426107105395341187573199958006437240405203151488023861530878950592633728283016212439085845051311418133343510322418212793166263235622149110753269147162659711362342081586250071320035769500329204947305607438095316966926802909548792809793942076933138885694738600853606311033863779917000397990893078818974037214926177643009892956003847843961835985835311171090123717478311672924905118775378035272514907250763622799772031813711238604165398591140490830047755489203791578528228802374640132502229591579382365923918555107019672757576614730436256585064907307122786206682304189585713102777354281907552559390257971667591048004320894307564282662073736308002399477354827498624752848700757246796251454175884932621902850346953372791227898195009212453598405646848349044089575904818100882271446208034347156048825676670802273483686761910204730805649242126631278286106839112975684753154006005319856154336312502845497470240099249578056342209691406500259062446747386710384675834349810818346085870371824725332434763820413026820504520369916618938150523024761842521904022503883553543292448229776492892147505281387210894487137261282557660586258899094426389057717958159244706124442760563591761158504155636748026544996035174561316666694035162750365191892213868757647666757109947726497671045403077723546342641322061555544550251698439915796034404848981923278994418158052523096897238644074230818620535669167485288933902109665148156472087635495696218364558511807764775192207422647121258297987933446481430151413650035817093983699119598624657659329727030701620247989132467297493780754761825512626287349199454536354417775642054373565367530640874536356469429460004442575465216699915928132064532549230477736394651103268012229757634478331059271173215149514937587781235928015451228606191193071284632023188224228475572081576955532898873987985428997656251374503794104416289636039567648646700637650779014307326550224311167489492208029319144803443103367002049511033572040517816401206261004325797097928114086080279187994107790455271736881929956320118705340883311644858560031824344765975947257518727793865286747243173441286149033702295448057487024000887720851805910842250329671137494061832647762700682375219297643657025183497864441226061397926403840184331689466262249854129937746446111515664766878726129905179682089388149608451329096834875756848298773737451159907269876213756047975875726209806802618173030816176287632202444778124767559107454374464377123851754771372325970654057497568971560145201569784343122610171546418209066060843402856298732351163876424262556727774811214121366715209941104344959917122748837149495648588992916428968896866592545003187157630836444013155045150259257692188463066676678045147048945220618994032100459201320648418797309717701136789360443531817922099529050429928773372137445713191904455106463007058827308929509379722202867840798249001244396722910770568970090512118577782252508617840269262303347339878308014196322568944243320995828949640849854189281491729555031396856842252388832057401941416343916236304931097044847715572209870434763220838489991534370124922832749143504375493283222710387269166708353727543126647152230049906629195281204897586425361252684464952930635632757565281498467296068244258521721773566486219574977251328256257673167911631060363934972632421774869973452560516914704415918564423692367448984714511903170917422804793975972227229891768961211081148253049770465671476656768233642080468774738565019669228281052698149008360067714593246904160663018021716657017146383637829767401129437755252275117684061429169382005570654582292186081643803878983870646909148832618751943413085738002367629095094740618152628069256429121770611689027112346680839017672549022284321618766555009870997187336866765398747347096858806710549714460844491069805526566394120628568269965277826064448435315637250906210785051367001259091941540557016873903729778401555235793426518221882799843593396534794931749745884514162063694064982357281022619423808404654159496966845914677848354944003239219675399807011472021242362518209556894828656986767967895852841696338990924847565663442244589232298861253936441723877210928549927931929074948295977127360142527497380417525085372373581877408953878910849199751304397773653884971852444282996052219296440109692272939473490708267515271754448834335097072087890127795522427549641203166146374271472810979442014654214173835406631289015710980131823271933057811409927533214436434824101060994376938633954972848092679387590871824269461906613027621431474379529270840833453243883175337120415461787099923127326313555880747270701401092572041561234666675142948659302724237641770746982686373847967613056907280677189420861825179656331806217026229137841952868873204508207022437399963934267597590738468885003264363759959784278668400325783410298723995762613032275116627652192431220570314626915291914712797196306035943033308772259562315548497788485843256880690519039730457543982032634405927361219200356150784951853513346183143542011949773909311627997870737826280462846542148137320491727486965541612682069067737346459755364072084738855864848041121466509061732192591193450577600444032782062766293865031336474170610864545189005629717132059359763568143544855193994786293223080316201208717038079434673916408931227819761801480084290868400215185449211475598755665061873447637407757616110453582112436297894619540352779634314005856829366007530930716592044400595119399851391585836879691684994019078262601315717334773394628703432469204322620495498945115131664495137212533209867955984668585085539144382443436302295390327143527563629605401206743455243488540342076443079149918487802260071986067683809678372694480176008544497003937637255949782147299341753469967447439264538036839777578160234442159338101345353372041655460956270393045532458665108128894076076905976190455594078520290772156458933868963929680150629765296642573644362374978112755647898113350420804181808969116663505026891755621656820762164728866409279760744554042149372277899884171055377413193502916951648241331959977112181184018281625641975843758861748382724805163506240454014436651762130514324910595733696547704551935726361659497137113911439257297890809721490891091490462362697854666392576257562724612944092648397207194184274456479277357094964878171918733801697166342732266495379913194187101701671947034242435779203102020841548145759739182795753919413938108911619666571967344654217158197575996634301422003174229957579855966275600897650937329272505649992477396375095306089425441651651692522186478668109548783697430988377885534324453457482448218523206260300377060909911983712280120314229515258015879994341321030858748568284045397008118246252668386007528280387179796060965785522738503814767374991647021956410565993698819827407293674855924376769270819907870893417568920266778414878759345115429910498170411824389937938852004481196286534515342030072300642174493873430436003429298251810841024672828624992537904419915204030769712270123970517720346022644844005278372230645516886186614586947186159197305642535592927948261832556464669571499792947497894264743210349696415133012103936367331622603190487809310459352989981476564402723963670185455329302003608714231583224819039585663981214721074120683871121045787114390393897999524769233814630235603075662576245777063874216483263229614466459831390003604371764136675797899440338981641347652901578959210852002618617857138039312216506532561212407677884789210847599688321787867573148531099136986266027421042053579466901756408495823261422216732710699124998105611319602440152483870500655789363116767186607472102386833947484158467517879384360598738890200208574375719477172891056804554667697391797689778347845196600766733468594079973269824670103931259280555840955461515537313410903353828004853009763672681919757103378818359847408137837937528530486336133150954130544629505785782574606361078898058107935073018572068163108142563930038960225890979176895827338446333888454845577843008326570754248332089710153936541797222705622249200216812513882903330283785127845070126347726965969520025423018435816202372675088776492741612071803130458751351638487389458740225175907122424557690949882233310264983104477952721780327027215847712816914459366256992185286040499160244274046810696763420614250595321781280777598856863999617726259695629136093163816518856116544500085878410291673513341863705584137294559158980138985256016949382831645877768809397353713730352664291787620398402938063134884417912400646628189669562550772008266770438485612154881511492238765332802386284261626393271643128125245933553289129653499063642364845257179334181480543111645083423927069584109468723295977636371266224170623131483644546154804856941152876148297345190961662076855081899499205630077030498063969104076105797832603550912287394564102034002135229003351718195591865659157405671298404566768847146206369661030495175173097592299878450721640964036442422984577975752441481315943428112058512496390669984401487628392557594119707081923017866059782622525690385056066494377793586402271888755757445154456948967885057705592204774087845233703327078680915951132327699875084979253672259701441256793698384848695761429267909378564554083545602124125070895093360657321906098615953349021203437506962629910319216035548655936277822791137825539039703524426248434092900435979700114786035008111268073987144486692951411038928557745364846272180219273778619535431277176459618736799152731272341880273259861537933174674800568268332338658859231534138144673486121928237300195333374640087740177403916764686744054299840805360791971341855699278681051511634605701671485057574037065641442164872732849963302228558403315705857477215584465255035702890859698483889620367434974912351030172161164219695517254312042984644046008699073487980573761514299586978745369154433626364436221451960742623468333130150274006460515996143513513225716077158539666139272695831308275032468124215047876434020484516805589645560569472298927254405035148479454903496447089567694452975610891028402751063718835349602179221186796108468351194717586778174559283320339915166812756261919379726018183576146869151906974302600136868500802846468697684645449018148494102018817406166587745220043077020296661777158681248079144061281134111598748320400408293485590690485373791949865173114458378642418686143086585558183096254861027697482052661441855279578892855099133753010196664360746579635500835955144945102740530047460604775519847677763781410724408809297668062225388230239260501087201537401446246200779549491735037425873887702887015921020415903170272194231611080380951688400267890155876031343230494550792265626642269766715651869112003693156176922240001405366562594783707363987031160688869607864199674428294971257224963006948223672348920168893915133150347387796403940887627956124439879484839944978716212972864094888821980486994107028963311331051709569957353443357036899685932841545364514216157781642762422886733248369565357249462928050426674495409706374644757145887074381422364014347628935411171090796744188610596408311643436990599866255799212337366645394598861291785785770481650616895625976758760254646876450699451538003066222335980638132442144267133721897999477197143816967954880731213238466938029230785210602170081035970844925664277910174932164332953202110429801611017898377099378480877759165086014609371078513473565539548534880966365447744617180331398799818985077750221458929085478487677338264250726991459753549303360195664148358041534029801509672503423575526570678034733203210927929225600626047691486292938260862333384681341061386609003075807979776966404323094183496986534958319794232018941211587853517512666266169143739457623210301397581410707170057261228394410805579256017873271300474759145736576735239840705384780189358653775335083922750165660723864232276781081870000303766446989651508993401364884529036874035942673778318625554356885666147090519251817007392810365499905837452060578569824657671081660800149916011727888597345527645602421331146652499510316799884650855627097253519589658097590153911464279983060168470421230939572127569947597215103403952725955445115967175638261603985656306769665193695538397172350424134374593270494195542326111287237658111333140426553110292953540438419328870600695131406569876637487970528819037652993412430600500826740031898474485873140238947384328618375274548673710179674724731058235906588226362902476662009409977260594089371701588503788893644015562084296925105619037256434254393334313883442967758266048132586398220524416951648461421770350138718935172015446912605991582962575478261046565793578240170947586819250094074096844513678689158042801411488440279213378459779633613362066137183863795704656855695972298820030626912794989005561681031998438905307974425884151186254489657600634969216994548887475704258523561553706330924442940395319600876681079192770733576185578080697626597898881193083395489070783982203281713759938785217492531874937159228979253407300834541649729553206886038996464145536651335333061771765183764497489709179050235013982217016005815245356590718453223445853611272653868792755811236168517751175104531151079872944103173349178732980397497260281479081920858542010401319474788812800859829516917712545573423327023994417083546286544740075682514909774486520743148702620713482427702464619931527308900708997051019124811104435412123890115921380173374503119382135615320747078172185868782614919809640487113087226841735822324456672612695645663810753309980290852001733288043065371038818255712373356363575912900807314436386189105568553114881033095370959712599545196672671505490966372876468316252155206927863481144392700336588946499465261593497314080302411103225698845254029718320646449128937818963750712827444311774162292844596291914626740005717849560334368836247348298101185180588135127797913644154387534938506075566039471705597531328836860565939603455152278141340994256525415176592650366524909336687617986001496013628238191628238762298261356612502886234095047575355150499821484647645164482209889291363728244410820682536821375729919401876445274577059417462047437092703441502510616344464503677792378334522868179314009748198122207713627099013154226063717808267216002746832249637787509890917440772359176555669683259764290605063769229137595199196714570528609167133069676755989464203268157282208835295800961301792957177342835155879673562725516890166827994316432431001270403158032774482332764404248393376324780279127699471701595986762585903628915860059349156013676847946329186014223552670028592235019128317058009051980246833828780186591765799966214157589276602850310263167384030883527764784106643777344306986261517477349368289442102654381128891688130563548813667620307360295221678456643337430606107049799514927992435459258044892844438004421691885499226629728381394187777145641427232011770306012640846963899877590968793620230251050277431236119425874647377742863077570561276658420014273593202584273940810905939292561583187973291516268607358254812210464291318474850342765143985699504926417957343173288376608513608861510896476273180750395137238581100126107123125943712098321534474936290732598397211022096269765540835299740187184812793004013406706246089105323194597214694360182372994086611416837054164409870014008285168204648150707518351818346951449717360980091407850781496884542073895067644748709580910399164106494211626213502745053064624411206826515797227233345127191371443162455778477195119490468710916008597723408812282485287908154347606620902380077026886248348733536357302912839389200137649484186698543274005248036615584549058359770224924686352350827346791418357412721454725543761218139612514471910777403466372886184456429848690162938839578389880287822303582397879524427605216373879749555344513817205373624379128874837507330398185493822267672730498708727330183507782897494293065065710182701370623921237713559863071574832645240515491170494911825656915256840475464518549862479863458685885802008174562288575846007295686924908206445404744632741534710081280212299256738905052614112109939535816025956839924841353111059116912511342955340048830743747012580867223632191296025153423453482976743585532550548076982837941929638844733156077170466421041050158120882103000648269994919551207014667938377763517798348718290370959317568502455412709809226074513125530614408889304663836970631948405365233839454467318133744710891585250766596441200259571631441036783143369044421027975554400063994413231109441248756018999946423621033747476551200167411850993143279286591286402662450113278628756017546610231178683438200358877720925599001425079708893011185459806830359850715140402546043624657286915901680296219150300778586380769180986508768787800287618298112791088186592981364133064385621759988298966585818624740914527196940656904907135381110348325912743944805006236923650067211490762126199551114039716762178818653499519800927527289610431356775894456533682250936300347562130766183619637400198959575038950056280169056351907146182675794133329087362941253986023004912412928152499653563642712311009369632657477540870052905338817561655440286218969650622559890085394784014791685298166082652571265994317890162240582099731596646705509976566764200182497028316834435066724970745394850417982826411942110953731678340289225034276362128027769976092044290623254039723860337277933345148975966031377309088677678126796806990149856667509375345018387106053289273808876830889340943822582446996112528831120500572567374261573991399083237211388676249978462457337988924707263629286457445169878098051029823152307702866608495695185222354685899714790596627970035789709546897076250923069150365604832535286051000098358802699935367004061455895126607908705255389472459970622402867249812009196226739139393346480233306912299588096875237461177617761343889328362063759071253955779712346987354348208440712265617469658831784110112985081345385338774985000990697097023207150520183989070746362569648435504141687152375307158803219720088304355856180938394430247792345685084095545467678165109838425116952545768778817817772120242463108276344598635961209447693452664089015649885792089865960508407995493562683763091125086899438718358936712336706213561465744880158991568962037397133793497951815512899137572806779405210728107757690691836599661188792951287701052107825352299848009784966433094836141654196750495359521313229748482956957804676375092457952200163499037192424250366575112298706218014753565807273517356065388386383721458881478513802362689634276914855303648054701498490735246769799405610107964495972038423190706929164357991139116438219483705590777445581463499087599319434170162241711482902205702230572485543659737196092157005978760000507375810773657276555330516103729998837837518906249686124297255976511483734123722837294659097494350999559770132786432981138639834653506667714012544851905035947336602820610214194570850372497172144740053073451374872050340954022102217003489442764177367326421676040012861626357632194067738753514720170854385836223028954294026606360013615842007224731839079196584159780547780231236592868860565115008152425260524018031572359564627996916148530240397748353026838179889752382954515539125196836815849008437988371369582328528417465250703135699310050839372026798238588516421169279001821582330112111359858392605045756992726380473653925030300366154919734742568980740390100096815584743586301511542433601977430794077485249927833633832030914607884814519660709908842422074251472531124296606801450308986483551786996419438777791036014575492110665852557469715783685939266032301378876428094426136506492134061594575287517783765339120434285238435745748136510233586120238330382468032728687050074113997321171661840748193825175623440976678826384502660617671638534847824295765316381686178946336093405311388066425700232179383668795315858009713725035744356457677279822795303539641966529609040261406602510649760887934975253956678235967646714056313134793285214984300347438310576861502126949890107673081908693027602191902272178254207502606861263153129932863084170621003867070481530658386876284762695406433716155793130845073044553008806029462042901078898335233319301309976291437520349434769927837431307227957941667861425265463296860241115706721334707610933989433803930950777294129882284588076531776668923574743425339962119849518002840922717054668815888827285851533383059120193467402606862303520721332187824167204740293523499081051717698628366960466291929063417820112835015404957473280452057013925101261098794188070565710020407583404538750679697313380994775792642574678336217033426020780576810452701564800262514620455520498850040294354503561403157388655616560244467433161800895971003378543936177218276391831421440902832051262911465224284329403104058925670008859476523106794127741217758385168690400449155742900687714376961675223652126264277643556013944473566883202690030148528608137120373727041193629105650037310602907861012474459107612864812132020133553120535268780318558521410603656136229279809255830672183088839727433970562641148369731891284306336870982783387949214515500811300982205976850819308915043270034339949565117230344035344635155683790244208316204769380402869133759241494966912191397888508543031336002958734777133813224060219188041243442751146237430979093120122682712820900694190693667533349546680019959256783455507501346890914350410853442217372171166645777055144642563667090120505275613501609886889481072297934195882487794452719173906625444837784318518289198693511481529936486134204689096070929722766855859427148509484031734725254646305463520534289801663974651142450893149702970695895726936815738957506064533977876473848672000340513365903926897198314479300896319398507067178839823435492488088192154442874854217571377517531160605828045340806281761735174481571518612903959857072736792532240707813126238952211942578395291792842519084150989682613212653564345798203551168050991177135919234137020933790049655486525794037694195972469626654444571657803003234012467379150181389359713128825489416580494229942927410145208342360761623840579060645464563845358527861913698884859565410432122244251148402659251934380752977235878534814051254353717050264496123959809749122237838780100044886904954548225133659841893730707043577775017214785168711220492215077449922977651889694182557773012711484083684027464811845012481491471351576127373916755529986683974626249632302629082666653155011629744069886967347303273708484203289819162995208689517140905256569960341830884340830402352023742126566971926142636356472061560528329134196750358748079573232676545040289201589322282907164251972527470073517807566757516908704119427021170438631430346669537937514591088438216024265413929246776510214797941016079081966291672550520737122707776048425932753352338942841400751119246995822079813246536954682277470997507177748209942097567505906285723734903232831134920074038141594185348710733473061255100157312170862195699773720796865760473131239989657809018794051515009911365152254958825267275574294696089001188923634144775910027547196274938888029078603466582403415731440736627432162234335399624492563303443441193181650955323039088396072344782694277849932983945903859548452342954366968418165263347662502609099890937644142211009979352733103261123813050355419428953851635560419335179236450151404013654758550749876477640556356331573264652315013043924456378966829629203459412849911442779023579437206924743240749241328786902053063427747577625371232938146211166700913008661069603499938180518681618122064657655391182986126665540591333575164176924638858966777705759236024580179736785830862380443095864486780423006896933325533460584516966123455245025985704660786426812229691049534977848872301538299123458179472227426500743917282338863822301383685421686876126734795798983210723795797779108871601879158125407867856732752486309972690242944677413681880676003342701742446919472923641319959862760724766959519666350045102920470902194544421980173566849451247775825792887883025987199711717755919302301575325374108226475936302152686694324600461753066254934098578968859221868487525304546147298855961977858295083517497796709299617207126425307577256980753352535940420555204393886219310166963468284980703097543100762604947832660517451918002862972293279976100468127029425923247639653828901346012153119977584996544835788193545838856664176983981446626493683494074916219479962681912442602268153590433996901911626233551772730247358826848142897530034155105237798633736519441408327919843294465572458141543436036022320391766066561942662663950907933940131240380895158675263506049419839841784338035010048954323991235313308023021979600608859032317279221628148701126893158089130568581067541000981188395944420080242788860799343837847559465305453894988272784914242839682495867529837776298587635432869393060822895156875067457211248167889430508000186018217801021990494543931842660880248483796887148780911356912360513047192384146450759170972811544228083883973488124666381830247377616951232328957184998982028796388965348795520464374685460359310950110733480687450268822666184326473283400637732327886955593167147627118861300259988181788447943821363038225376994219574753633102751545591972430918262777934926233425143821761927423267838358852611405110097107331268213265200401334802597443058965037199867229347055771441858280429715909780332195416071770180086153537092965696883020827185054620501387298086687169680780890299225719641636511288572311342068945715469298355311329198291729319854857060150541535626757587129575485705363898622890421363310810505694433945088336696934807003581421793453710504039263517285480106896325948218068772034876785784569239692573467818794027131380300284579384514562999783595441085412853425957645012505817913175054504046107839720640904399990245637473817797836531542883131140181327849636744797842748715528915705750394800339153300155592406377622361453160204078072471189576960173153489205397959160549645160191754866788844850248678220434902118001962357671780766325088790979298702753945505567154787116537166141806580141857294327400854455661463576959210171099554363490925099226841792376060744860519131475970682490740714257826284101834758942783279798571973191091782631854798330301028566500530261900954714773010663129064710096889681796696862267827210926762904215213535304750779992901981693317945233463553982085045839592197286594722791015229751497037059640154583964841645439351248188361961139600615481368755772964513669958117845181099498275953255638042451868252240176663694320595072097619406178806716918472278927680410165533614792595885555077269335554014399822260599976380586399498228298513821636786613069814431399431342237104113338522041369932677047857298898675168473412827447534272730532035854387910549891447576390272546107689782985935002742839331858555662198298977578363572210078200316820807750057534957959514891225874387885179582549185690193794472858334566531854315049893683766128372802425505735803741905995054791195055122063207730637686616022026211388601362349346011324101672984361276445519350862282738688251719524907451516291745629530137049360047041181724515342190406708155743612003839113857808584977781705978583075195171664076694141023432234773840592344381941447148146620979509523708502880330938738650873682942030780181998419111485896529109192191482969045262671247603895352854509188105391416730438916982274961690528516879620718443437230710169370584885498222610801123001523382253070291317798806848359154307463967407297156632159986411036411667359770740153216662984283224333435565306875099714522194213839319406155303106999650425268511590764935174535051638823223341906428147936118165239498405503814617438057029719569771919567296992139704570974128023171960160433469882930061179806428452468948307493175298592864673694536231755388550460122413881837791909981861963634138387566639819458582466233510677633996356023389769526710559756385033927167673846819317488674733100699487440208721641645538539339791259334188902879697613785916020251657054058590517066311774525241978541858977039697119470410911522446137778449871806722798652228191762648416807507476138690339631732183801534217370524808669396801979847243835162939199922552904118068853234118263821776078476115884174663045116040570843250470922305962048088833227557158261860893576225449920255078423071739669598913035898665388242110538166695050144569474496977544121613633906643166722116518167745747302520313572449219597265088067189178785844079875830977973906061125742857843922052183966960807328294481901208324965297403029056243687988794992751598115710947417325726629967431454124927232137921681763233585059702041707870642227780569130819823141050988796476753503075709358111212651751462888161568085460206596299372644887544403039801407169623108509267067089166525216099647247647541331796420776878036454242328599352571296403969955542552308661910553484800803410914512899756051827884259953467496712558419646638641408053458614937437129429334139754871258745692690015188388971276026739316740689923978293754864134891386214548160412999202586165280644276767473421703103037170961583419544501913413395981972316170116598201855261553911339438891659772342504547705136049701020219284909786828885859535639434682482111444354571630853473088722334064136232190714334511338457576066506707216920445488052771572698229998718182089491256405714854290337317054470311835381221918390228431529525276978106904473357865391155690681690635454002994204154695607243824676288129076001517356959156725086175030567099142758133895608715454179566405152144127731175307334900612143072925261209182330959878874284766998799846217545616526813319180203448924760510865196014776148333468071334982344296957599096425547869062055806421219936101214237165017903806927102368506314832381001742254602988385926143620341723843016293985703746589000763583649801620240437525545005717640105188680153598927080204931768277607890994073484964389921129221183648281417591390985320921293859012699729023530164552587163213566425579604127179581501459290678066294165535773211565342018820387303075010015211045781743426977966221940980516221315551593835686105241585365695172231096938303025098739204324548993598398071794546925505109222606026203857908550859168660483362423178895004245076386690478732885698191578745513783197977354746845039897604517141428187083463045814392000349929644852739923012177190090059122334779798770491932278795001751842793018187986454251185029151266493573571818237378963485391309513639638002992192913028646374589998586393159034608453660866793367918635613439625771818115065635649154374428734859068776867007555045606697826503251973288449096609698803119999730558666323442864797751370815860665009622474439383294400203502343045575259848544927915795593155986021072109960883786692971778307896802364251897640049116730835791303095164730425840163526315271619711908162337970712640492239572573855143865669743576980296612748080588415981265447097531476446983050969313245574407717670088299069049827429940064280728655952120174676308620727983138587358527824596727628384402370269317902680799384278711745880651730905155770672228724279425058735633246724543211612190346128880575771277561018660435768776755153651289540551511975213007245278932037286595772263825778126694680420995440700970257976422970646814847416107533104068285403334848888647329975451612265676338958796370330470838541207984829462184791375529797178869182276645896845339789571227663248333991057661336963777994922341078025569902838541632476321188897674996200358331432234181831041958417537949987887826565989741044007369423336341298124314975522238236420816227445328281007840617229927121571246184985146107991772604336398411646610545456203046432156647605233282367142561568044883504448843651201055280241286296049232986743791089264011449921176131512298248494158011896879968802747727889251998570621153247642299545558416861541184531174079600721776789985257395759335611306739842972812657396930044618575914033523819388372485942594687216503524889823488167327831789146227585669003945090785586337168465639234954057369432062479578218751281175129986876986579607668650413604530576565483213666009385859481419617543691632325376960521926873689121627017310208085737580395008581695139697629227172151750728739371280811842417667899602767931944103331314989978979897020963936582928307110417612209447805934449681869288549456634891674492945546094293775837047079197761442856626848246595885020161641244964786918749554059369748398208544999923125375011058526416789316906904259086779709478022326868657708025235501427841730821518572988257279773224467427147995781743020915314413956058821822089799874775158163421326285284898925522152054456843495559174293879172370920594939949109604816765794560883826000962569414861868525533329555347457875513033190283821520949658698210632361910584041807016435269076506035438963089716105784831578342539590862360251190398978043705355473924435066339653836845420034387618314164343207437973620504193388504692331479531354675170568837697565384949403828389411417082714474094467524104756132452436534712950037344175654353263425443226417613743695588321613991765124707140249678824508299344876303437534664205330507704827918481929740655568672070944431217229842583259398592441451779111541682520755754760518762616408229785708724064758645833426759054616525466911176437504470080549777587688229243388335873741312356666607739328348420502539264075963634536308248201206560983570353362697767783726222204178546848751169484578409173566464771678008997113126194824604994325142173194221779333583537486629544771655610217188045998120742453609045748188345455274855283938618149282597061500107981501538684905730934812002617924010230433822490567104245569867404634493751109607219107990107190829400694103191321522165643314420468161212836791285666983990095685039833324627412007035669964411679044214289982053936946444647561428228966674264088960370387993464601115394730053465169069195737657657484311948250192209898748959921060374226941274071197621419402289139971806798183436276199337108670459219693158392274398543053674156150353182043706913699393869580958521505519061092614729541179651283145548050238017084637445571670883151083540050344086090243174414191004644518395316568922907501346080843197982253355621505553045202705985599325528363066751346252865411676973503849568802429561809438049148935071633370658154706447595978611836849882731358742168588609255199126637637389222400445693524113207397253273714238791168522176681943911860010100158423091314005433141243794819605849482965546722854174937180729719458251509380797857847830686076765612907764160086135170447148904529607954977990928710448419787297613461847840480474870689638936693965192796910665200287701234562835615952071486456922471752292538308478920226077856066483051092107031275364610342044897412235954567249923553424973906503667429792249082514772398530953243476063641379296372454206448992433756997881614792552514839305938881669059097427531944854080361807132095479729588512727184568249850848838877686331805095988075690233169235286868734688935121532082826547153233737113156981061424961826147115076082042472151997577401700916215882041231679849177042035154927402755660120722056988289332456015304537762612902051000451569724970857109731096911129802149983074759674976764541130902343690519738407016625154237475874306621421522873436525851837859869109284812903319471461776515382104635595662863236340629933927341379221199740307108105843266797648197061674139904617710549680539791873120467171308640755897644554053220209819754361496741381335776183765507903186187415631450508121411164873327908806576586468153876509498493256465381946320933588238425983875160300417282660852275997720557704660987205752925270679867882084818139180589035512501624085802169186963969274360691655110623774555946949982624032214352304779192640384845058805249332699403045632013736324995329735111674377973802943346210339815534665642472698420179305369373139704088568140343684693012294749378789782302409924233255907145335396688889477252583112155179590973828158255397308363831612601076269509461968149950437434397063459537059012339797391895984192731822856799840438582662435825822952850475287030998057096567876238492172038213563626480866938199363797305601520722572038546414302605709477995396642435869208614028399204130668894409878153430095478386634930272362333568972672118925161945475986967834553632108244837770019650222705892108877854755086107601611230717838758890438589283798643213241315653985222461578207494306124143007822244720122342740880625721914088423114539711353810730810588423272196065040622160914882534870819578207118817169497226272770299926388411377763766619829689063969730250787801422043097320454566494177247582765361122990856130794172091559260859764231480520444996202422391162256167601469873411426481712081643843977847368461148892701135472795952571473142922339993950457944618880795170365644872375901879304677592112399584463730508812277409600423749485847235162105610223802091841658461824296994426561796297436913755446571068797883239564916569948938944962981392497392908925378367442299085624068343607069691460713570127709013300866936459902752385869229808064964092381918840371969546620140869007758988433817187889806188916631769232073713982301223921129619760808205509947634452949233646065007322727609116375581305699097374769076381284992129858843778733920714319224205491231263988632432901705038077498821156733362975568261164137997150089597367396035156953209199718173571868181448439732200749955871762651158727471028870406428606261564334594550887426300113405503417073671972210687111044343067508929592859116754952078290443496041378312409315504409113970764347950580807188819114296788140392903258173152343204424029579364218657089379219345847354703925078791301043614037676271931474091155007849022929858015761990485841331233085103331760299243233188716027299770227629233099549170190262859451815268511583382097144125890021852705015175132995538450851775329254335848812750406819654222685779977459207623340842974250699382795105725462938876881820036026283881298387271012801406595281813595025433608526956570616688652955812599613513730368963516867293689495607295505651553288987136171886542870594758176799693810585671499014106191829726914954609643613233641964008046021643821473397497090513526058297755963076506616043338900393785215099914002714525163305061460273868508335453147206842819515815443035151978349822476212607220290860399158990948158003817374492346543560259898433590776841116945108023756354943172355138783293253205636890752214188826721750077932800566436093160712148169454122362684620532265237511847755561939117824808321006112482809856409918656209972801308396577604180688665055877943758025109637971400638775425017715911555627146733250805324641300122847251034295519240085767112696319094440282432972435943558588921254911088270694548376612747876518263092048797613389337429627777260483696692541416486589216991336255924857265386826662738639917114967642476804385617158128608802377530457677217371855572023015298573187511441665737080843874942149702214219845716921654960273960766652084374419103967528524108584998242552539272435457260408707846314400296119602856465209926309096062451732309993204802033752622182360614448446005986386940549986853261724671774930598462374678540520265849473158884140087584396773052444388668698324512163160803610232559708016015875715810100681272722530837419435603365149499531462278754325945165584847718735965774537354966696200641879645792620090730797788016924594400838838541255069927325359623123510463196295667029097518422181097690142331452815834632529310936471312573144071805030108304087231489423300622598297162673812054240986391478359554332317124657373063732793945209041108235582955272498033191444296680653297042368942820451560051845628943018861808190223395956291947072182779816464043209933207562208011910014837701199434971165616158874020769516851668817814686937229970773119469258203909838257261525361474106490036695079289472976330972630369969250906511838850991241608140442516124132953904003020593427916839688379213124715838745052910264610713740714065738489380621817434409070666392883588454069471240867227883001717718404766138594306758644483201487767153775691960140652851740457957144409862208792900293340680545118211993785329113965067147848199809837562106563124666014505945619042272684691339248046666359240022717436763327386196704882173537241340954800534176358331382501998739567459925594067035082050409880425810901289911823723815715387326118303300332341593551614585801346507091703978813094454500672741856229708656413447953382996155172036409676937361359135569347950729462743083198992566378100821518974340058814643929438174182056251399449246016512666296928575460162195812451947309861739749233824310173816167357329894259592212016710041041464137434246566666822824473725381106709131912503136672167200958652545530714008914007765203622840288551030876657134171915937210853089745537179087700541222292186914834978023348754106985191635691062497731414245991792632938274534961284836719159458723172954692427075577358173506562942436088337784446482230190716293100645638381304912117657840139008973843809349313562022292107420320545740746356341320844272576029395326286394613235424399093593180782394285323423134093362236030065093678771362507235967362227702149767043110984031048144796100500495685016589588561773336247995245187444218181324338051436963093908884157969972854823963608939357867608838436508747819413330648433888140352380334512847744977649238005699453006963238733944139707809072395113941555092054031721066512746438015866869209140430831479207577179440060778571047273941908051890518885965007241459840450515002796822804055731822907151161555128464842907782640920759603456910430740930874275814358085952367236199268605679611448874637438104775395037426718346796506673735451000877458131194617794305627820065682665020112984786805027305081284984532060904213093427619556848531893498458290181440476820717871603540117123295303790931702640788752518770338192282098721684070539517933132315141826122931786742530149033207213585823375872915788541583852323484770551467039039082776103340860885098791122740423575132235089892115808103978810660767255017458240461461628867151337190266317992120007052715744227765773560263610497485002221984462158490424269910288582631204661705555366043700683145315999637998076303441914251528615513574919604562677435043625931549367327728615510660540021421600694895163113613443850473943573162078871287016087722888358132888728137900723507205803353818354421817961904737042080773055545498787650945668058885625649927921631334083829384334090085488684279482871228784353215484558560733728012653316232611934961086017101624483062746105619202218819896435845649056549327386497060463675016675934326300580717807799297098791914749166645234980656149538966380858228398420707207531375435158138571667522391036138104828176415777594028513229536999835217740815439656809619697615779941698181996233505599942461774687963219159894755702073717187888318447500294981845740991549104238817796254880851215533268104091647799556315810673889170456361158616227062065357411651055288721061658860869746610336770299932031964761382793004407498758388030531169726848052225116030582832873753470557467487605397839980855600858426909851300651913790135730578090462085162275551396050109619801953368343478039095113750401130280440676656955718897810162933981857940801255393027465990155205840982742834131574176802596199023127450886903652508792675047778685629447647228404669173576257153770197170334623305615835163383176220835817404168057776914270642836401270904535900996785192030014611106412639598857963735238075030208229990107172085884642277548379350024215506199610987607956021897967744890080103210086812048936978604498134226668010537997229437836325480768861485715119039917970425639863460523985014065572913183369981656454901052168725824753599098075052528587215024138532913555066613877686622335569077337645159054501978983263848092251127429721815386905124477122912625579500991761015604404208766345582720525259685923526554775141049854432476390822230323886615479426361746838183217766680299778984997225643952670711839873212778715927351044087156615919812689354706822905241420337142635339922589240324913186158890050458475268879161099501986781855372901021961452908279098840782248184046942029104263306164456026721946805323917521717211009665255363343117270350649600657753995714685589577043844693201360177746685074828497661490637701588720871955996930226993338438756224085828893466022336081500747253320593594729427401924905142704176254331427331933748365346171514503843027575079675973807678353816231727051706485412124622385621022177460663496148248770880412989211093277565740869933196099822143371851600841419256192201911403981282697756220597782908903523954286828551778091754472186753525532168015640481680144099300551814865472865056161960474658128404174864891879732825161534465214556036196452676293981632994346368728085386133042510591509554897042425771663842551048448553559937642076057592598675820759218598083106828721603777439605691556503088925810189175927185375036003032925625198265791092723894317526269147334699977164128617594631003563471072879870083414263426095876878414748784361114160172109950775195230081617541965639211120606951694203966718934178017542251995084972148161519688424546139209712902078442603732903329738750300157042536845760602798191975550396806442242465903248233048142416240110215343434239153166364721594420529114455438840296145162222567454808633700757583502028356283934600829502925252179804742581062728812359148777779671017355985182607286515290680206614095862838969165095080585014551452614662811445209109478402660119726744186103740243938461573679961810830571778899831570077806991524244201174575802061818710152076709046605789256783386548723259457126773738542274960093653803199997418272355122973265421286945935735415784866255246190729905704513298744899831334506690655677892254013849622024436187529431118095390466681353708747593416438580866572786169246691330982021893697648147432965923974909989863636489848563453912147001089253681032372689224778905698429328220226454659704664318700155784866941419669706314544709034476919286028053047520437821081324863439467989327346047866639043010321776198331606679675610381963295741289285382454847547463042473604355493495899355547692941939181778491568475501513331110001511553439295017379900862872957292464065608406382070966924654049823461832612088962848401087108020092120063424971090317152655511488572108762518536007853970404884512145586716302765213796618052151049087050193977029360772270983906132994442031058886788432553141780535792445479996546586584215209416240130971519683860606474384379800775230216866856089454242237243180158629151072245205542699611711504859436339512283615851887683711863132424898267042214867827154111970765408368460919132604495993469794642188866147170778432534250793832305962513205110827450217971328082798764898575029348728151792549271852609638834481778805659891421049427942517446592305211576691904239251337687659963164119201025160376083767888813464555890520163178884404385744416253312895524267395552743785096710797658297787668957891334178931268508359531882352014908444871079928378398757668892172172111389144306373042776245073548085818960910821364120447177867097448018472368967411447224966594815154044559098104766719277622169761580166008018709155375376328116086714675676927325265317208769739906444299119256348887841044633654432757994535543050702407954004740491695540312171798841978475958269249883327757037909806187119919849319695045818959791547430696234964080002865181994423454685552495449067955452716852160886587050476795250339800247317423448297036448711288566731843396045691401257753733901031805886148107425534818819136001805370208077956875143602513590379867253365873425592690577564452035099695121738742626149849587321286633401882790359900991249820924093490069535804075321355584287187296748289817776150484181668009037211337719771439222724735443529082960819152991509434406080118104800057776689228804787254915837693342234185156884347898023376459377330296799349056525607449818673829468430447259825055079670670722539009108379256712385043869871755271759150450511383620746049629556160227974293556273649322050376745682817616491582376112689001640551996083728793325313679886480016993767016927631227280624696568093711013168652105202122563973314418564256666010185322087812940058413423876633204442943125356674092516081299067816203724834757604014812940179113289183184508266938634162368624302261528760872333990286558142236299204047330284104720503381331609295219041672219365197552613223679905174686445290258903100620829149384438015736728323965958061959906372812394574743130032146696861425756228041742274456636792616940082112056951053451550035745187501833609649435481227005489314836135233985552090497875183957106547202588536074219433969945184183871564041978778706931382720878503464704418967484000710443696685453128209022625136135576825028557128509718988820806515859682974258299009865050605463524946137164154307320364809370652992040564574633047296099814419575059886426204921253477738235017713428291590679096297982815964976774672814418890929439417508651727627539518155990194490279224821032351682511252549733140062864446572046915030684545116940129923959946005557557747973564733605882175186983363696621881716620278873132209485656021879114553733243314245205307553490055289917137091796580733097860190305038110192160556793683259220044701446319412319966275035034131993069957276160193640523830304669374495331704164464202555751802795458528183254849176557049562312111953931898549291526364885859399249656274286955634822873761603921043708291466851887763689935632906198267953463473529523280147532954483187773292538609575622876368143501509723129458001311944794420675879829785433469389425832734134580699877825754444348931922016744546591119387088569568113107313763544162674928416053702939326686581261745303119756008234069322217706290630490072547100437535604918031267298755780417956014390841774445204901660676592893743237380677759821200495334613399386306716279674968456535243178884391785557371319319997744791453318818406443956620725256970812932805933378194875602121200476039249660533823299628408867243791794309871394086979016900557817596613864129381286360219887452109400320036450844042797222529663746976734590091821288489661640920339134633958727109991452046930423719217716566015255266208282205634832547660665027478212407095329195057874644795004149240767037113985194918864541313043951067840772583155142017244608707951252110821236297198077312117151601248211285724848249439565295437178563155915464255096291174163696346732364859956629304722541205744338231888660086439353556164511122429397316693260365729106211124266838028735070108166459128978576129457775408036519427096468449572576478654397699702394805246884253866377354520745455416563979845405805990550723247002745037674639416841072454813743053840098958556184895231404555733858353970582841526017054911914527183886000766953497112435520290434128254785440338785807192448752386955084093272343730950137525223309709485108306064854107372335048749800845453386523669819311390240038022866620554488086802170087247574768328585125871741031612335703602578189056724052159407310951001592892179325010511216429333984257962919746801747927016945872278705897756383412583096548476029286696789709942865572729896054093594481023256272391234582440995173748765697428190221049344709666991315003948368682340506990315519886771244551636104132860529818989326591509228076699597275362742306147161506419252431068296287789905482875768738567482861828571367000260568335709316961149899218388199225306135156042367817568090386047537766700774502742381790165789593516273314383229420785041426702828683646315233891049874700901228978089901794833010893285706623921375229919778914170960210556847965690989316779864210812291406241070590811359083261166373399940971833511771971815772711654778156281027404476527936213894063923888455226392240589711730754791625879413272497178532373184110966753845214068280245301649551594768210535086560633624094311784790966812373605783003314035327811230750954075232493994464322140728757833044080818114688349136513132937746989359496742325442819286440746461738259197050272697408894493270458205728828598317374480526077711716846979899884339386284555477697851958547496355144306706417096971756162967550336557287409427775835086098300759187948030222242901703997129404178866586403157478818149254923365669560259295191550229677146861833233706789599670269309163445994451901318223420054754783641705815936004842497662003995083941046915720560488792859828642206435284224581387339730127842422578356118860828845430223079733574951147283327361249566320823156424774059606363289009094356688558550997230121074118093824538415870982028660620569151054620646036924036684427195049452392291400070133309763139136520545802134032810113574549055405497902207701146751583059239735979758227705459772003688895541329238056318678467949479126867039660925640660148775600148124323372591786754396430794579830196410777599371955317428251950306665646747352080160488377598058020264782457372508376017924111691531400635028090392934371098722454018808052792330309505205631230847799759400408110456967552572865780427154161623098707526671612717875749684079941471963451208916774425816814494737546920000691489543981357545255719510942371442515058902763153887162230991936129177885182842178051768987866537545409866740248813966034409304742546418070031830980405277674590110120598214826204013054225925568039637736493887560096388035212443306060259897102238149307900203278530921863527203087523164974451040294426689021185235641855396109112477317817984646744501103246318371207094780039992277232188883659801188570481156280554069683476788717176297952077970654139252821106160775563877094791509103232421435421147383516787516186289023424119691976866321702542410475366209976371399906634197756226558102401470912769604516326097521739610315763740928076680843167843725676888642766194213898478256906914426417151990621504149024387454692329235322667669313076605858681549695210858385681921015718184647999301349002652446432552913674217827016087158271983773112538460206006898452958648261728102492540753405989226055324778953426204450316471600813590365513857920729921541006670539469227891009732738818960939069897799407485016651154077573246456752980412168559081917254074240388426746191499434712106770907676090064456284255825138716962850417118700340784216014472631272903324808609834966641287988002729097769976633978761459401416260637408008161347357002899631439434005590060427450654252057107605819606789450598554717025579820092094192043982217653277352045209739412779938472864530001455235072658483534330829184316290863336633014788061217372073338494846466726431657482035241448781300120010300504768087074286684612460851579746708831424690967835568044666635007188246757580554830824088597651159961565772142662381320435542052905370823375238131174235042008676288940818193061131622699144226917053676194673414140439058389816488272149393313448029908780590015190315608626753273644981029212683542263276419428053244521361535339078832411032786072185913560527441378671440318331947586787302542497089210441184545420346707812126705350324050417347793438258894138931377425718120481294034105453026378566632485963656455339037485039741006747510874409992552181453141396703030543723471972776253107742166709908644881607688839043685405969166756656003632562740378758471659074449762105838105913266509230965246868678575508966721825409742740159230017705989995771287748474222733999566888042797250731773130197719648239401758486484036629314637685112028479857807193765147811232623628062040043620973490088375978428454273620287463837568802613037569757938659953227529513951357048767495934376109976341154526046022285014482243610319718030216598626497901019630925414298737232590393505745448219276380032869012714761764807244871839293964811609213525801631800639170950502754607496209204487542148191479099689716702748629954628493372049073640341878856470672480066808746664416539921710086831916744538007257192813371222731969153434242957960635849598695014462383105514996416224467891923557093229497210000376075793902172235458513346624185162890453607344418469172948365730824954511573186672109602095838780686771268149881818786861144488488019664670625103499937793692409755086417868008186198460947627744174646541077401835448803495472680529533562980845586357262752256715833459444624159278345870598650562654491268650247206133019056094205387621708401609124048778595566941611360850584983364892351789083940159101063210824523004766273752584027036345346750023055816915228609331605659223374503010354141584931803193050238719482257780701738636324504034595799401938909407363014281766181325802359560119185286362955927685780043495660990642138337855024948446198235193876405061474924770679333525325825524145163360562527443408041512027782344348606695768219560805788374442509414378663687753086447755278746481238963513037472313553900855598610973731077356452329947578407122823001194249432765861908479492665956706711793607746472814975470490221405629270954132823874364677694037279808423593425264003804925084044467263614153075245832044811662237838474414279792920201991292190600182219788133356752971476506755876275842846872319733542275079343220335046892207727549917067290562018652098006672768733636155179603489252170919759061640692211889404950573372161511329207482831113238209356846598425410415002648313277836762470037550561527606860484832745890671277324571221899613988954040451135464068315126968957834279139965409575245781537631865534598800971206479847619005616531612658323609014671157985023416279922214559730248641017210957600081319921250222777410287977923999701875062557567498411243037471166061569474486223543985528804604136442542452579875401180819402128105823934159712876531118664192379821892967792475989848117638348948025624681886504839290131109472340667431806843321032537479180406751182023628879269182993652870362305049037216577135578057984535837220577340919790851751029792039520191837797210876200909383666062295281704454639652822963744610932557481913971579006747393956209477167912486549912731312629386938585567499277753909686996234983160557878249037063780726623202287850825393366174355469755406861592093874750934211214017651068038476295868817474789346315457351798614709042509935507214749265513355458879073853544686973682823104340801546318124729731515985264589388649169443518904574438799774103315274551218691380961068057219931750002374529350759118427428190109745047733678675458454272282727753050091035479911060372642290443712769982331698790154658300803257870129207255094207421316547258223697116948807730936759891158016281630293624344234788135975070572555329398829040818315732893428069199601135943549723807507790098055027203887105588028608870598999603041124269163589465774393006434574230761679943065855376047605734354671112985079065385783855843965583747216458012250008493134100229418090324063614003295993867232098761559052337044823491781215037533034229554674383619039089160535224874437760125587778073549380377027305820892364268096861389149060104725762541550146903129470741631942260055895675957825987279362532193371926134178930496655363286932192851253817387641287216055997825780708437518851858146060302217637313514773525915695531959245452869348660372231551716603705462097854175098675341426296172221655112350354754316780616366058682839864693431132137290508965222672399953166023227227308927989048256741301780011370915611739708526750404038835995606597977025310009983140634114137564936004331012729084694743990255775879191322475966906045198426660766093958421007259389830764273360266956110247230720396081323694315399066584376368234241831893256528576855277085899385064202535619139277356590066573005844747469090353332788073064819191084706018461628330670727815632463182723709828486071172488455210837394406196711298145443197592576275754805771499775296895142835429003627693046053509653606143691279906373491022513018746729373134614676658230156470100214594159681521023919341628919042459818958201192052183372782058314794442589230404833639236617797819209340688383698257592134394954859356727200156409596082941736685487896312167791623984365643032665973964313193195296098131075378279951878250732155232342458970566942631252607704292204896700302073987420918031219334099593511628214402879029955289572365965837459682982143575295339017968702321910953161396841202655341036449137889090425299338208889572305660616627565729223825138533595837155035102234312103875205376674283546897824081689732252400440242453027837552974077106807430768483519230320891033866406871113111584694649333271935931757625931153161796459900723940266679766958689346442071368502057737957411311678790353204330331946541145596340049526890739616715129203458293570323082252801806964302013071848145150315455177304158662656498646784676735822984027765759439623931159490567385602855228033500804583139143807430374386948115739489306019538850302876559203524299245375806218565483721234308088258413270306960901716619033856538996457029386063822745638026718038844195935348848376688201804111046566948224109755740872330387975769302808984774544324468427116817901279404831805028630224826092365388208914127898178606143699017791967616278488911067156367164228182814783137297635324795775895833772536088718685793943113500856025237951719270539225067451015582902862903904220006265810607542254094599338568781827075097697461897889287342460339633375113914892102594581345602623275329074275987821990048431489189105885471344133115316630680405532903206019510356924259178009819598695539448731893769880228031250407726871156335439672968275125904577992432204287836196986378743319355367800220323018147643949123470444453904395309004214285704183798898481321654622813849729248357297055385835214260799230800984407847589755561501605391077050138351365604014875328236881564731755106424866945478313738840866910987874683259917119905970765473474884636875351494606090749666807822597380855446648958227174729790068017406365591360671741204514350297919700324148960021561054518616089442524548031874133768267713375303966168640839296887084908622330695920487619937133624306670545161794752765658918096634542065361957771232326205924924328905726968394338987230758600538883309984438290245985580822115453119764316948360308682840284739477422055080191148731276689001647264568069196560895790570664542182537029112052031112328642172168212050268247408128519081452369325525817128641788730395187302871449729312761935813395731920238299031620775134610976269275655642563173381296588527992052640697751301079251902961416366641316921491992673990720909965922886920994085236378564908956681836709864103487586124423808567773340729678723799567859108793777707506337243217518021756079915547969942030934842389880456298514316526587707062515671342733038984852941677730140229853745298205393450563621474505668529944269271629128721187391149431663192125137823571470059197888670979533278401194728942809364211868842162616354136395692743135408302274506611017356279099678085098263324996742103756694151949801510865849257769497989108217588484110254664304650137029139510807372187150698709806199067588786879062681258583372420746046433303537255205150194961750660267514509358763553470691271187078145763970047211010448743269241343732951015708934406753333080157783125560626378813461864961568411968270648692312301355678564286143652339918125980292128030030105570223549134888918494723619779664487333159929764964395377338060225564775830309865325324591245265702279559564101737280721073864978932325768699835437613498308671901777300786903312967460208198545381976346261843066995273795886642388359175598399686698034071332894302721862279175890222626315424385090125977231481691186126742137340809639566939333626630185334106879422990234639203896875359583274344954196492188077028953769328419604760564193173051141287057727244824339556600244371809700652261664883554340870534482961582305521433401301028576968786652568719627685371835669690066566081117194710688063577808977145972125477347734042819222277622681698078062667770749625634478405133460638349630819093879341980820386199631644113989618208540279766577559282988391592690609407207057753814386726216273245935620078563997219678897397762043117302717651317602396700344036006045796235277985081569629052305001038160697241337547605303306750513769358997293378317709763412192160820150118523189079724726245910309900790877692041178256725088830650961287616209032130659796160834042960725446931941018241177954097195395373849788777630018510872548286105768938789932732756151050966515790116308701662779000396541391039111655196289871102873196169005551935588066753898821791412358546562868201049396461758767334938391139402315600699379723263676038193100459800838554361192768074145517539182543051675372287168556554605368542073359066635485861452296214773810804302230584913123569107066407928212322821740625578042238500704060715724959335379344149190418605861011165266827665214900446006328901395353783348362112189214570141790556644409422581188133503846774707973598536777583213615723489261036862084799075515306029906021107219302149975477855018482011079919837926086190031597600932664111791021415760902982891153136074024437544007214667872562075534816280442338218409814628908315513311739864603045709518416984691810831659552077981303085567585998837300833790333707510038218917792257387472880472020597201855099273185902255890851702438899893528497387949152160662866385000620294620406634735333730106025402275348595868158350609624087774237669177963767452851297331681655618981844779640369219429789777425995969954572399821003216163131052109122404891989562725543628867673915308254629776296742075841631163990286013912663896296963831865436844814838162511623506823929039122749154332299491232174440077248252928935438354545516436483294198785758615940345492700108839689334479386647391765286737231957128250627812043780307114950237736271865939355243744720994620517502229918003977003467961745628222059848130753803262627993402423298408570524654977704560686578862764886899999436413660898830755801712515007089927434039049837804389697831531890479834459486079498896302049099059762001176857253089224282631782454178557371720460410519768438779169986876373542596860535813719810123076624921170192074958190904650039871791143733598689850506461340659005661304084101848817485101569519927771630975607699777867267795193583497649621986492699807879817212634479826334254811762423912298477425391357327235648130489167012044394668296962702633629425014363093028394788643451593320592272315021953741978702462743076441483639915683585388238402328934569979986925236203451852962658988369498734599983468159327753905589312956925879117844127943606170433985278022570762064495733242121025919628904691063173168203231325341296869828642633803843347901764632365337094832019078818652930777230605334957491482308313949352501099269887843072683034499922587255739522440807549541200125227188930297408629298600752365364856077673961264201574035596072008251309608832570355594822645089962805871738450349574219035606886548516132048472356577943181918652544116295188210254492195996774352751724942852370346381358293354255854974629013519686248471610194252428271814978321204489533874847034719489801798012006721936925255783769804263471419774363888393531511812453419272645506737212704083297318839215709536457867245495767437153823709597583575958538747474167908595540025635047156869011408044859831787742477295203203546929896690569771061633974933693801541247530610057579578477144039464217878343430153742126858590643996057611048833046700802700051621064520267030354730745685644006963478852814474119512191707496615341705594096461018595237607139338932891879183548047627271914595811218479698651658791736475600358076629818443006052437936804579085744677986097267481329696942775668500868202846583110132149115151628774717465593144536615017346692589813750695195098356963400623414160122630735397130332866968968887871439860637994095764192698538882370452770848919059897526688614113876331903378780116091800033539773454218056941479276586825907644666807437020479865659452369430520466738152119566116712635506754515883133777957636986805512544783800059885368063224053142383233465072021187649617553662374296013449084181437712675399748024869525499961347536092768237917889434303849907616625425922419513987999958197181738900255686320070133342367961737610614521179184799013482651303522802639952169398105019412324123586544379069862522910396772134585741834545086764959954023920625574237620694087634863847174103023784220941818399308280657756250077055820218855639837179291750540559829432894413032437212360004853491648928304958892003462021413209090130490252935953299292015039670455693270955767088866238010604013265037955603946001780396995775377759204457013381355400751202167643710339466038049316748375150394179593176228860683625644832187775241372416162184961092712720204276502901385258180502122585455166986622316454800080972047178320490243031716829045125038522894655607656832159690961374489317681373477628944655305490196804208867330180476402549473337538639122507326312090286672720069154196196472016311145284210113786722903209127410642245091926573273210059299168676236412552739236342261826128989266610529973011387740943541612214103067420594502296914871262992463199684958262478472488810680796150636756790899190180479961224773291176964616244243844180395386241933603382685703639056806947461466457313757503164933766496818833360697728074530493930354838599734478372395026272615351783666529972505667759095560571245434388741547446868856719238441500939571174732989242307758398911674875911463840980622412020845384908100356063596737813771709065030150045680715996142219317036084836140466636972228995958301253835047099467753341186689670590970961665444665817613852591384147969928718406951534884933674929078213378815660718792164780325555246544294991806890300934989679488206526906974491306260765093161793231187939179084193139074237075756059116939732718095048649361765151610028505938286293292408299652074600095257420949071262319090354478467163192880260865277661428445896910943972293800714329216373874738453958680148425510000197111918164581846844359769641414079127099661542123272235257523857876052599490689472823078104482035506769438220373330666657021816219642250881260166765037231948068362023032203139329308613445016270864746318517363066148341433890462184054908078356351317533886799244022530502100860146250309301920869849234838467410586232963061748273968750085443840400979851747242736762853772694753898316186470483734079473000832262981832667603890064547683755095900524471756466231037548582306840239136806730203159716203201385391066577907569009642073951513222738571247323851645645438670162643138968302652107254231401436287874766010452436620453141060553165580936254545589285434282470639337116144737132934922114445397268432900830707466274990060454540385600474011385793239098505581050029724919091429465290130396425768585424605930743036357448047014405437040017083041921421235318694528972871103659577346669583720611795754246397583850998647541890467704046817792555207633740176261046105680586363756638267589243432496095890639502986111972806344717227010395678127025745279210636672869843042190937822028212224915643931492867575010392032711206476982234956700248770937140031876695558378234541963470167324786820271306654444270511989265418002863897443826660971045584787304783132728613045850122881714414162947879405956500037448234932744368222064283534077729032104550606546932537568578864215801374079098648262581498599737245906393351363255807336241385002976602030705113170232768935027220158320671595831869823915197367975211363149855020891237471828362033466977441463757909486700422177289139654160452015867055390850412521019643394611138820120969172617737184495192208383854908775640196732026760681021005765244030876953570936377024303971533705041862372339032993413532758319584386421141792293536434355645044696213705723091644627735795969411002888980916965924551156270226888787467053246698881806044381524735711189298228809301494242925090489992764999229951818914402628796055772764888104056115443630389995810847307154988814558535868840020536434544710892780925424424847846258059467596598449746697420189390112434374098688831575094960588737725583153041784026237722912361948364124110860642001450583216676278194940429932192552469141631741286599297717496148047389921889276255415228836724526281314083077975581996557756365269352351824696337239949186148601650139854251397482034873572593572526620069257583637350245637271332131523197170388355750399932537162580922729528211817709186993721324387118222470071679149455041971304588238771082270340945692710305124334547934654309532564007872875170389643059463839369488021092670386484996717764299839703332105019091761262922939921332115863614047026373159119603758268494989231760996432747417032307803523823842070081214055874191424558034905879409593978501936391665051350736660726794607936690217701522268834903138267130165863022737499320157955812857272071483629347200412462692979438409795625896385691978361865165688661436809422618956927409123639763519732494256831194136244748486685330377179939825005216974585023084733593970001304420582775497954306379345611140064548683276278181372307587859856947255505208106330733600562039442664625105314052189120317382412206761918566287196401816561510493873453721724129273184049418108619686420563943845417996916905402653157905774823277040663890104725405969400695512526407966076925271396651567216008381214733400918341790576941038328598757934028413224342591543259674601095903778635387466585156363317585804553281667795129114148217780229196977254961630970509451348856575140965347626323068061186248888223975679683690695190947452107371465896484060746913478058416259956774686706139486323888058028772698023488571858779739225588839963396487658243501117658066278206059488500111429759740932378449737119255963156711110032656557365991411685312245931040918093484635066049065243242650792320153851587403093900819326723419275037983117184889216020891821590450777759123406747232159749357974507053406181365534483939901282719266309762075451992435959581598899032975644508143559374541858497296886985789064836354091386964412774756678535331081702276953270664354440348698197504993429951372516774891777194912484819519479512377065760781436261201817442922113919849262725498843692286006840482239464381684839723910435887380029005534697081150688902579446452155488920416276324334717845944069487840626322888645106749527631962413919392638984389401687137443062881699979523228546406906501149660557860051833842580640975533752611795481698565732195421354742728392610416259622554096364018098777623237424069675507721956778241218811608026208510068446001897616004715356377139979732654979436148989576358855317330376621332372677615241654917441584921890442270900462830823270549284066535590189010032118456053238755215071388126301647618375818182106222196770243142183651525314652674531023074028525751115606696214032211358531387582605939754725215785308481051922222932296538806083745275943920628006117571002563292978615092596876102214944202444482033589108974526535174917963601190447587790036683930950261216462217795229462864838244067683994254652209713976400565240778917394281857942251450826001466229067244010385401944442448525915309904346764170082373355344309780730206085269744081786898358341742049168694424047744891800103692087869450135583824807271579161617798967031662702202296340144128638144322740814999644619565348369662233842011537553878319537117782616913501705178056666794353105405034249135395088181488593616973366109889872626186148864653155970229152256875297580110996975935848948445959996727708117144658830707026149964320800321553973177862854245735619628720049761447447629028262210987793035349381123203476192071571112517865846713163300305944262450516982850507430000020674740060112239453746119743814214935207804400869363593069937800881556088614790419808815255477994281448688901376965207652244380144748212346281647531771237011998171295066108910737308796935947571743256941506539850042996203543266084024946515306916878285110865657572051465974735838968719547517877429945557904918021292082203914229931803652894607706323086304605353582675025279399994298171541107745029555876634404565493641904180228593907958284525585469660044712194142296881635875264180754251577740708517096453950681132374664719255715101778199353559304423971408754570394056507093704326694449102757042186771195568328851153092251061183675918817023737705207962819922827938495708371272260827456276633476457521774488518636661943528119749302910612609304609635619061812741721936956348555706476920597903593259673382807983447560048595875945423181779852785626762432426736676528318403488437744508521489785818365897813055992193651782960351603392443482286167615710580298236038468629684355464897781675711284114535975867985555921825221690553059982607203531843889541903389049499407367385456022977412916004204704735200773563011432327626305005150574170512473287524363882384811964391900026217690343682730684806471685393376538891262023164754691406721788968474291521217991589470369960767960696914356534661198954879047079247280239148862352056733214667896319207202597612023923147799611286375231926867400351027467825566862250055712520759641023502212200332241819734254469414079274375791343729214203951364495707014761579950105973010718492852409455974226890228183382104343896614944473823104844730681628875294659774546104009161546376530894081693851753389584392333719949703891505857714450249615992801835868244687039194002784254298824334749098760487453919125365115469851315112595264776386825330085066549343627944796585018086694393394385664081569951091762853951246571559639242811495467022977534759137420203750926150049809857302045987153854028884736108891154786275809147689277218285527140554208422552324388894448242755089917799507721176035623451038550388481032140355474240957393632597036962567758989598878737141995068241668691049566752706372117356770817172799206770972344097236829886905132752480160678744085281905698211695748039550065786653716088224110486617006336888335760559481746155071895207990426584308774390696702816878640881819078781473943678671219834620787358724364759066528967744700533281517028874934794779109321273596515056379854179293155924730039095098915508503375586179081428583703306732634284810205282312984611826096277701855536357506228266718172675966749298223319819097112247236609798884797951386430751922016732261363210602607303789256032894440658737451415753151912326048159018008140360266365951999359812757943903115285887652001245034396426181519295617818225017835447705578833108994210000974521887245573874242445554201172398125137165095837047696109840764627428115957681116447183590830769387704252352081542396704883463365084428470958845444929552035908626454756214987910994968438978193716661126805350602896811867996286712437710128419738965029107806259978895925178708496995376527198693626897508949079365949121802145717574922513471543526876702152819569857797405958075724371150797305974018870441266479622692876773137900598369911943050048247586104214355883630752779347980796634271259673915690007456988328996291154226955605090870782606755898770982768538915684309477432166364757382076138796176091778660289119134852363246379198945482332918435232741621296674576963811209726554592613237429293595688901397741021299821420097046759567016816529524858968589156570025477864752179715874065105737209139166313473888159806955888644982968917817520008203722071265699897065817238642192318357939975760582038923929768135361534970556526160891529081104406197045648736526219057699405680260586368134531204058197908006640526562874051301409167686976521663064552322867560114365266648637261115817989247146806878371163447424153201814185818599744225872685502486965380872641396006456988024872844700793885538896575800450858586564174152864218262125427887843383277802015376319001672571638125720742409020847698282497848561596285021947920030865291208434376164804201341195011800266463455959904360182405639076488799955344460688036757819288915416209284475015292443560723628159561308901669238066581279010611429174765422564705424948766186739426923749641538026278468886641843409583933757559817570441067789762021016667790626645871216067092887172354169747625710947918885854042790202174838481282377005458765139842537914087642986867810372864321211004759803565040416503231198633221791884409227008516814611038626462523797867244829639719876386312209133549036193188210451994597484422599482652425109342715865167724561487646817231803249455362023857832026704071749719095020232464195786466345745757851604311733626864822284068939410276648731681004104216808705514117384692222907436892227359090108534020665365741289047059587435714149750638986036667884731274230319862594448749171789582860113922005629958525806543137762118087080824587927773716505618191001307620956383826587899661171839178375101479807349269585863463907400065780520429094098530587862664464058853203369432356451138000879733831672851865562281716925785075820470879033705386349719538398814013101013135921964472386434663501292814455295053237268282207774617051316124460235571091395669697251550032971523785934269730682643209108370699707940195953724821021470062807524366226548891148143261231052185544576173246505104279368718792887345289698634994105991186622469463753606721196301596780883922837039193101790316391831961173787946351122084152746167878366562276867101517412243264427439891700909112639206132754568897978194199736479111821089487280552362999302523576481609713925446459616600987809424833930550518744782855431962716183391901843563773685664894950890980943365682761323841477740436934525166003238402676039110011828366747639116349266453505807464813303496824399707247438566743433618533532083012830273743460497291399174952141217953472303722236891872521598726686964606699994972876677038200924549878268288847205576898851599047622323617310291394566300299601348377197310687932927827450604536106966063404387161836173553460258616810863326803930954402835851333476939294999214968515147659219853644949113789064071086430662674755931668273831129237703541674810139142695697145206209500026803974628072763536251434530385365658824762434282884852873111826409253598000912630328278738048090095815467178902141696791176044317662009764082786306956970061997854104626596697719307097134890897191034487646054334131285240167919198169683414285235404440731070724419193208001620804955440355289375731989288916843910622624980330005857567642912347558364718645080888514847394895463890599905734603254455617206836379038966948543440894003451693613850546418447961606289542794101218275363039993090584741336562434610069169389344111752729110622194445922887467108613641377231664623213759192187156673530214727543914406680090041271296063384389555781281167933273505540019634268846621901370757328555669991699349499479005706008201522614119390416174609118111468592998626422672712753515187613214917085786068119932363633614423358306942454800634252044777529793640108216895871108210099002165074627870432826073292893795989731341233445267944790606124969267603187044277800886650170370392157148152422442678210251319200836497204701623033392784875659774048395901516513341006471409369001193563262572189227812541128666250994750000444791794340367217003867941355756537658729070217828448286067371933205704798513420432041673997124151037409984330553920856591498494011268941345683631222742879346998844780440099657462979402615851047789794006696434562777037770571098817973814893038795706009850833906313536750511947072359890716543135537948531819905686379504143498159971906771968547665112735010464404844037885475685583170226489050150068426846006086127805650967910199697096423736358927174348077077901963613609495664075378372397729924221375496574071702036232703537489283607918826077652731769914485770079834577208385629230598125247970912360029079803629560397926708199008767965844835640185679483494028623639050258469524568678423065751360377282255834455770333376194385075306243957060355524157210976620632402589364654957906724554914046751230848557757101083514222518948807313685588961951251893110763232354733005249431702797106729645535643848205296675239183459207537959621451296402634093265654075843020505849223864511428203036308356834423246042128062032404393942958601256634628036830465312247249882740563022255191341632567372908538842624856387292093538721704647265880760461002484848951240598287613232716508058851749970368755796820921048107219406301312172147147520891593842668616799541787308444348856134807116228274471340072618356784937108822311477346574174316035031960482225615970111168219709716265264237164847033164107202086719834547588430579068860061513932059943983319434299337531680076311250907605814872452886889019754434692643381729923209442469780091645940902254850559321152398288653231282926176369945126268861356891650968513902279805302439088536414174989298416310734065677147607575334725213980110360495167114516740887553119530622780587197723953900454619360399105821959159026215868744643078189049405195930716947045432785238165919637529443314695825537600126063808051269727201787559501437548106564519668000430488020535095128386381647858913474433042413493805761894762270718918865403442989247632053608683982490832890514094235270436853898509617541040973326090538670480003142310571288350025481704901009098506407635319701621764535314119552011999253643190181075517245644211937413265139684401609517808734259519636460578560020204591605731495425618461159849278230506424679719760307449642302158051526143704724904144617854462745864938498833362904335845266007301792777878881297705366625431469663343845982706980923201432617063644806654343480379171836498823837864873114259776183009008414761577334291825911124313715641239573905211332362894957237315814669581335779330238190399450564192068805128089611201195651807811424329282706574360022164112473885184407024253245060472265566337276756611588680071131772778770010653046514325347338816803001871021083936420898604165570545334017848850660593459699030557711545319938129553865227138058445646581206480069581304598557586270270348500558854580076132194395574643082910324257292622904451550272408517507391174181184281055660474674289764017213766364551241302640785657381517203151044822450533334789895406878217920994916628710800447289486821960190112013112308141487279165949410759179769381716085143361929948255879567980217735110964996515342673945847214165176358605774683225878080102514537001771324745345872920932147178905541022768911391163391239012999017788363953564213490031132470217418429002536419441152661052753262905986505203003052865687219693685503455823988019427485424424160111889035332989206721856694788934326008472960242310416265843988418679154342771485960498026263626495525784869024871731191147754364455609875066969887942895185218919180251831496239700722276326832918928660494599139573525747763113737967782017789939085226389574939932580933604747542284372815822120836388237856641868281093395669165182050496784505758864678622671644986146937166366285611091394336813922993012972576832637753160377174284081617766491583211514838036963682010897279585603246680569715825373589580288819284470158723662950373401666689782599297870447043381542960143900148782432129408563956863253552416590569194224648544737755375855012599608648884645670197142400006211747461718548759132103740489971323755538139775267546283244266200370006505151909186552698546779750133765821256327296001511094710930842908791855222473068300265795979321185155139982748185864415460208455892066986797852513429857369595291099495790114340488912398639465589476261022926165734363291515190175291702681043751035594609983520647533301267443708208760128198343078952616841359243609837096446241289819124077787322066970969500436295464233822044183503907571294623072216513075386229410463572002366110531760012824121228755240368733054976185205125618223451573143161437147940926521528237400882598299790064522989779353977329462093459144363792564296855872837639509087382633798598980203807499021657955359879707849691008928632980332536532948143176666097467209464251685010408427015580711388328479502088865591187239997770142583902004017555399366169136242051057570396514697591982776976768816207302847146330362411333988397901244897916230291083202397972040773620352627156118749554494388377305876166901368078777212592253094474923327425226079660302179712237260936088120961391785659376140102111299173447666220136981172330493934738659134091443786074206784124147977530281329927347439390393257004605540259969508735125291056650965105291159843448723460083023120583167483572658051890319204972887148872355231016151956616791837389582445162200781663328155024095586186648398378220267166136859111553787604014531248522734344599005681074088679562133458605041822477899705151917856913720563947116798223080670678735781386979360311670461177732142622120410578105149544594083128801274226171601082002419947846201700611590761250145363890472847441644924785820545103230973690964944333286890877724730032917593298099806848515271342327218181446530291098081161356548802365294319014174445817550133249031467523669347588816210100202656563552969589372851993545269119376024414692136238335334912402530117442073130246224058825970829506204301316313283624955610675949839712480043417445554130988947184472463959960069983406256332771879792862283484034063500427345747058291284542626529241524313448518907673604942854482234921197401046917933969854539215093477027649205638440503424089246464639318451357951495044507303660843273435306701046948754302703737506409245064361539938113061167707218242873564741872716532716701094245837771287944486579684744870527757604881345812801815785183433305335309636936548649840742666666217819392912981354337290038889345724953673719957779316960488923137659624301891711442020819896597136047203936813743210316797902530778423435383853087806793772488830691005799226378036508298913363842246697554670655784167390474080214894082694275535917235554005727970263713086825742857639653203804715655338460200562208521503483554476720551817741618070151026686970082459316793518562574052372957556170703731949431354427926666574257483265824684553472075612893859881991336156917448134988185922999269966402999135226114986342849202692438381385261459115974792877459516844812152738081217924368451426537644800385163856160334997539352599000873628017571941048674515373818206681880131791594726757919704006225248575832439194052310767386822664226681784045272594798176033683574995789999890170903206641730394814259509155344724824184413819630838931988132158954601806491646027354271641714627812788380035972613245218478021765463971010637488976119096116282057298407986215135738251409524788833921548690355736186115197317703106412701348048620815862454170720010865058196588724599007883375754062730157211031476851044570832959049151991193847451898340932956907521138874032903377051345002893591054390845038758419892720250175262875973613001782890105818053946630433833534276742752025974215235316188535043543704552082084466154233620639115648111396204654764932791482648851839458962971888499760168883723730918838176656229010005802050122375078775232443686896381886717676198820324859541277682065120887284982215851488277654689282176560922822044790855187804383230706680921798386394829151675483210582464125460576716664889384805061903325065814893943383955756472698929465981075888275094049979252064732405208587303503707439519204449665498386311352619892622142938293854782290605365129750667914679803718324083513609328558719522412411403482627323419477814690452164495908206572728648399089489754719083919430039895738052512164778001213851723699422960748650669511407823522711157684180584651787800933246756215039786482689139761756747595247906727935693183348507468256931637307128368028962508874763982146413272800804127224039571793794894221695175177984405264984732349196104658430736109224730863904592434280610563030765487822535969663963883876600274627797428648607159086257531489766321147673954798437932612348118786216226300212195119040970145432950465864888279140775236336478461728886245798459692142063058779216971708867109403255294690666341971451631787951297681150512772966632462036952408302441283415914751649493364389200977493274577410518253548939730870590375878760235735584565301143471880419213918975157282397582193799959824924792708476277295632740339186047439365060363280313572250846285850074242730679341641573925683483052872333045811697498970493022178305214831500484026977214445982841070532225341562836925367042732409778299209030830933504210140055777023504845132838282685260937169610372960063269957548052313891650020225273057536990001988788196332094108339639221414812230084824173605067500971654054197006172089443525453948091964626046805343053918677339730028804115396476168499840562877026606462245791696953410660429925562878151149693676247541078261911882876301520612326292009757749040096763259114115283899480829397384843786954726317791927294791725723364851290349199584238864000801785598975119136468163583712887178006579864184411943274150854590799738595380671010292888996798502932118227932730486124266669183180282060308265919978530266075471258454955876215090872108051486004090046509001297363199633507056414572457091872141198667205135277015124073589632994687091474502483994206399067213345318759347871969231389408326765414390241972132549203222085722255376875013573731674830357119465635803332193325075792675943753380935703437160038600590822329021604361666203123444411369674389711772422883999097905387931825086766519042348784337906408307146108624210816572552656959511945139499427693807542892181518469393025900465633078537943826710935696646876534838978527906320781949056803941495911285678695308987733840977935141529300727224613310991493344230371810762940197094857306032896341401440632553626596657492660461428333772910573449982800082989650780507686387899440343289253621639344623634792407359474656971419532705377720055671506535446550149873425295455292350348153843047322569726175029748193409661927761449871937364555704335726389890825029967120229751162367923576386323312282569998678063241301472943103455439045444313078057076078633381117231677066115306212901244381275852860264547379326944835416252338554160423487054985738088229683907990143571711598239207529197512247708378257673766996780837671821369922121648152098459857850531400699430276841220791852355447751523378161346781011122673870123699171348217020509407462128225679128153024576027070833139798047293538359433209896098544637633620059819177412936634087891683106501415658494636847027338788354362380969058787872280380011519321960208600547107940765638594986913355499779989835042153761431137408976463850394761500379728010229542157218138010494128122673187190341933934059819457752281146305975445453306057862969253434871233723086261418759849874489676964517346349371532710056746516185973732369804376874616935632534717816006599557195475563910420512406127483219215866529193064604121474209542999880447727587496386783494197859558961648307154527965272185900041499233364164510422886211759773569200037808577794122987036064500149101892069692007416869289644061799845319045062775482047054919849231191054545301873766440228367783866641048597949870052782844870047459916677020328461267642544378245240577190567636947340019018838789075249085751746962912315833174571358320528844523840578023101316291882374867663377917282523968160974704057642649323397191959206966170412806026604800880940743218105279223700170156560713579792439719223236365960260076307791925829646832784190520779562912470395453592257740627025675795689364424906703151951470501201864918687492357713806371934423186421866494302215814754487982937432165655706306666830129296736651478166036078335731570113093019348503009134136354831248293828852923692731111328361319955876507905118908349596325517735400018335947781589253927905406548873850985496840163771110836296016085409055330042205686832203761099317682306529953703322060927240049416192829559028796323507650836343309803351751965037750044867902533667778996368710851198824577276583997154064724434957883688981118337722877164714189606233406521748629745914634021878793644920601122983006842107275823601531745054610623507389415058966435646791912981579159706838247677474369276425395458614408522091530901451020154180044521454717022901200439288149085849034912217911419122284555780752277519961898480359816829431457950849173728507813433572323347516192017992921649943749503787579426369092073296553005503933083134025419636731109812782057816036930366020151154282694583842015178940364439404278203723897498223802544365765669561914040159892192995692980794430550064234129746832094271836483734856925403383854494504796315258958674113812224434855162794374910287661028063236162882713288559977473286356508871763476257983110610726591663897190624506946213496063499242244030131064580104102543853102836089060018320177558114008793728170884378082100184928340349230753320626631318295098876400840526010625462715862473645653567627316233169845613658535119587872817543368325190804514449461723813449673506813454859492553019300044460700821247529374616273970251166522698182552884091933437659652010787953348634398327900238987856285589098286611734853384288385511131651792272816661624545797130390314445473610567950890888621255999740791729902469547760050279224135377216094675903281457148945429217854574680338591665885318855400972168874138396473187045258557708843639944371501411725826894615530317289555790705879828167094138944513292203056618279404688032026332691534485325496474971387946786003201440722752107823307852204032627125887083625256021951460517745035497355058879182101227002706511278149309676134997485473530082659559984906816807152879830858261087216638437577425772560550237196778894274320544205631683759645628980297489712887608794179361655408578731265677872860981505393354956473072590608606167917558171421280371487383846944340705661152355742842180221890275879205848858653461782891579822316699362860476141583488661933544552646853803288630717223819098156168245860629403622522465603501570035217507218201443173123311826750635993201512020237683893424598150509615616108272388986697393771226211853743263171029973912876708419739029495738601871732514959676299861654616707076295777383268338915448690888783385908680811682852837738144462905249866677532917326327414248668587446322238272318648340713757391096716718979559731759587965695487014792143377644358769641313057400768219746620450394373914270274349358843209552877635911642110294942899206908448167460549374007822146052702739980621720793153798985825430070031718028704317396671553978056898120065856359516555734869214236441512635607043720003808346137248071106046752101659041748776823886920800649187905119330453924387281348356283248300794361106913190493554018259790669074621959463357395332328164084009285781708306409030062375318582512371844205808165636921479203641126200320984567921909141037959572629493965841816929506131940382976616931815999318682989775655921583067175097298858894476517452302800519637565739514858744605382708309641168262618359967662508191402183646693164216317058731904313996996492790169002506334579888532946668573399968304869559573776051936550273721311053813050124358872648092472110232539883757846371266519148119302958967247866604707290047087826841544166620475549294547249836983694165582257322386882022316215378731176773514511326990999323085047624579301656861693806108449487073264872499189539125694112281215491050554608323498436580324368417095410795409010891203923484254020093813843233962146313154897218602753167634507480136454670842552601903879332503118256515385815655563027065922912384209627147967567707520084925225951232330183216198047503937254578875757971315885858006541906177100741279790212163814391453045939053552957730098735008750932793178118160361962821639759366543394951689533356127368101384746329748797147332556043542031144265179845419663863886631322156973656185979814841245205025311927272909147385671365370804304225879683027888322730188484617993558752223591674100780672492273414333338970990088000563373820549102258218189884533973223606630716408594129157921182266165076318857580160267211819899631258474705251527611697323658824683960317179032806953823991424084365907158315382953148544313749323083027055332771345865773099024896604305358640890115274162891597249580887120810072142692466204558530818822252817685551763445490650396959795328790818365504447793947661366513785354173246807185260127266113142421182069075126263846402435307529391891843264302791443772414062548684880622151065402085422274369776472762492789016733442423223708669929482373731265251818951718061168099356013749160179556442028890960263464924907834885342061056545659354516205750182036120340440736212495926492711593772852982281798060257067433242896859889861982434135592698637700760978925511395549065821506752413852988925763801128922007158120841725858960100538217647718890315250498383591376077966219270469420466856557210992326182911958049774455105250536303092891156258567366050010993117981209233057543273480032889689997106167266832502388304979808001129731208617477672961975874710884771341283432463447322318457451942844369220721269078343763452927048603975730480142572294950438757945153383400868556987094539599988500653566062437041531534906937017400854873792831727960634032250199345805096245458652307275066900293139376683284251575103624092328851333077292048963513612168148618496469920228113600970046550392253708102579243794138706536174076854184026927328146130552255256854724477908730467879847730295156975505180813117374471494637205333984585677599206454780397966420769432691596710173542972604824244402043128416083687378213658487962749789885142320780587267309524207436643075368227667197633463243109821379026095378316581870790584658190174337847073457651199770631757260033440645844616078782264405959661034619920392103008452328282422478681141925660633237115517181672530301792017633478042578014254426969574344701129658685722343681902133247195830655241654605689162402465962959119727555229461357157636050843298073954396278118329276990208332626448643704883257157015731657417915053137005637885562368632346588802946241532123613603346819801388467072741268863831660529217777439015582621680030327902413169747562774439760633129821383129608120097622274048732667239406455439810593980375485797810161768259847137105129569206750522770271978606678689040835376325823330089162545858874185772202693257071214123626199921479199391593318896705111855781411530441941743319627016889561784792149573897317552481438647256063973910073414001900494029805881813469755673253966540474679917073109267841325471653606457286959597099639884041036730405151784498922897195533071916025145927818304714844638279578472663875371870476883346768982406934348377239582794643460662293893773611213698621890666403954599064273475844848047676756135348077024207138827060826341929583002914622521345940301825523095097526240207995704499924827344978073012253669560477440670951068360141395070707493455400414905834691612703415026699000843449644660049742241102479584979024352694549875242856778315572349955323374697961451742966496877983825829547385667210400189552108234833201110553596677632227082785082267082303393630568605152534910675383706454785298879840679041422369527908487482777515146011166639666808733688992076133133228761318322653549575260015125019664673040553880813206951230292532652277481070212811483045611779040809787441139232803939925097786685396273639120167953388769337032370166429560826304000833863704710278743337846412607583644430845756138758756040148601584910779454522706664762496122280768648987502102141482101417635388272405934975787353248286473154999939523084381582248848862922462277457203878360503919389737500803115814384440989935070879049213413931808315274183414154448743167667202287053035081272026670872223584413676548192428615158448090382544860973690141824245769862897062945196856664792629898454053353106088550877986283708200983266369184325151615373028182564421092683205605954234273764540710770650789038442871724123552724150877787095819342287725603296840585217605580031894925026168545872547533908207203282447589242403891726409300076053088736648670023484546226884067256554709024587982846119146213058493621896264121529413966339184654359440118735942586787091092624723970900591773175650557527782061543863584010143048330451967019931540944808487847264198989417444429992100809261311981495048788263930791274206430260559743504035940740417807173942775623786815938496991866835158487964192219006135168002418083681066648919974554397714533386740371463440574324710100542505863446129234597622786662960577217592268872979928545460307832173665862332984876351787381711238475249547980441882363393358590258990226595899060319431047701180929291840532778848401122761169642389112146225901524590106177074677902366533632286822591223273551198995987896283820339079595715156650410397802714433426790875810106111455789308727112503128578519050977071533972547311863844161386990699327923937059895721888313500093454735198577315092946728879327020265782294215046273587690478786571368814867846653100744359788408297052045595535754255774627780201250038706317839069274873372169742309504427716216649980839751881003269651144207373721685972135995476916761921977628579572744745986169913632438200656776751987892319405276111196318991727165285998478891010268515356977390053831190104800523550063376783825474532754838159084557771501821286582204316484864288116665524206527278147131770914299598306919030685324730889929019789555254836591016657656536525064802835499571168246465459428827596231437474611429476932582848398172124822307664219899214059028697229065315666393062615784198277067317283154152350708783045656395953891676900573201072348656227851370587870018480396579573240980265389614862568575391460596088435006124894406382886760223820438399053232908699130115442638952279067289410346919950275058956301307156370478945240213230533838847247359306047200300927387205012144672776605748661040725814515271796848967012517974016718893163278271750154062327663299338651877769761946011347985038460171665239365905466439323103737081959031088773607043545832887368112518578163789036221443108628334647597954549230707485503446765999804050025957265194823233185550968160730172930138355080612775936655722576273482625476961486849947360141994688376093091604446884534308713844655134043972064907932246684964746900710275924961895451252984918592434702438258751247970656932508217568516649904503332926271521699653814994305485350728020256121712241575562907397142593713796423501349866406049055886228538175226826957566378319783556931473153473587920663203819373343084174271991627747650084324136276946692050365985791295884180758863490710006452852568113458625721812406028105555124227036235312058149765532291924993565671782199485804356119580102428669075032928820059520501969212299170371467069800512769766672666164063147511043884440063417877184493377033052856832719274802873436654644545322253127407365486330077344505915984163108167927598351473644960770464699573944436804725752118141360987348666635636577496410399501841427541703942738715733438344539569197760397970927725253990516588701127625841819982664369668168321935373235291428269676627428896644665557553163968908997174306750139752114515346629756754974757625776183547342016929779418825068406682087070688453290150622706088973879527208019278775676060741446408741423047787655612685295176836120784358997047736110806041081982365629552879045189007781576095885041977954327677311605089675468798972321149310112743717084499510381801978332759432419517891310092033312842927273827037989594406560911436143789341323544822776862153615629005463580003950089111308266503668460133706256133872488347813103053457423081246801506947653828228534778338663110826269442654728626242885524799762170279834082232568685070257946213773686787957591344557055050002491076269421772091917100375687073250940364836042382538644311472881146806590094971071789137987197431182253227597943894320953694709848094362444297651554652570250466012284281185455792144644023107473842400901262380942989920397179342946595065626469028851412596168507872382032125730610145844851036799597459876685627601053356754312994739343039180212757871930212577506863686881209723659282310550976789574260002682219550013674236087944012372395225069121299264226698620886072665357517429857017873152127008753049259184832197326307375294865482910206907474340986029962020680415644991130123998822989323789030295983916824544343940054666487020250867059927185136001731880914185128934122419705571296697742898908122723458314613483475510958013129731029518138305363889242723366664517046048444886087319780571348073386654566203283716478486764869764063293134202173521525207840499313563161467900691012511765555827390737124593473826106783668778998620958025171928057456552086905378338334742939964432115860673988575874022348047228077626836305223493835355734180386203975949700923559107834838877909200018666459971707159575056705811165300609785136322366661074121353172714523419898698730454740144579592495246860794244982634446995754811721619196697365474170026317725164699428887414784445332638701851176727985562392756999622041399721076214308205728891848282464002512413629298496029634640378476918310032453616667918305706131489854035488068861989623379823617343580604825317440789143749793813770972873626034185470885234077408754640616342921519990213560639708955673694890250297680393208835442192406572580958078183464532494417280587091896136369752888173821874555339881170364003983688644247063526799596850731509674087551287147929840535116890149688261717192511354317240828744242364138931191646375220780030268785419355184866662360229485107770927328662700339399175157774662254659941000142360726581553253813163654770381807017058833801049662318254104764749088430210459021939515525874753740511564242470310871310343477788452295401367121801832238575704917718166677627344588503462494530415252332003021631650829887996167960936928667499120541793554047451415330486830377369179931184616227697122314526609919220535037445084326016849939237829309541422123062201608078034775298921530375079402566377271941173594976680234690359890518616475550951676675750568921116912851226056616578633358316150118167919314775732176061376604770338527776967030655047965825264739846678322144925759406889746568310848507890047926477047859760987450765356553144771887515741714221045101690104503994777487068522507468710833089703423648142876556476532807502500575881257030001431664807614057362351757210588953389939541491785454755450947006939815217736108020514438059862274504076532184245290716052332365325808101846337820787613007018368367550325246741881878569251352467891226006393298083519916962055276810890559738492756863373305958651552782121954121082943321703335056361525556759457011376305479309357516807734343539820828777978576367785240601437401211214504620196283620425924997709879416549765166133072747511016772040395215456909595435529679441508485629044726571653566032454474668557720964191956671178257001690088368700521058245035091356849769497153059550172528972706783082045428883969671194433353330127589003321439947853733030400671354479359454609619922290394539303808474565142487368598931924363439735292158896893790598509156053155989121891848547224075205546699217201849793688401556148151802397471807471588818207537473389597091805372865788824096310373842540367520485633866491303115650921417544310036101925078507033556162544623080678189334682858353835751552846363235199185625156067443158223745327538378130027685785798012757297436167495684831852278014193918926624512800717752103736274573734527159539336351106048175442099597687441677043399619657500312136978509210449663180465975735638349430984100882715602191048340730890390043838677264086023489330835072634001969277620819745429828946922339457154629200700512040655440233904811046043699786033264954877135763613068704166081422490968603425879431223191486964938181230736632905864745251377322966446299728690173465299031970265552067491745348955911318672122739327559629202563020077056365912063204060387289081846092294868034389045553655373513342504076721611845895947732767283786587489603256240801464645601082549003511990799060869621907971790837905414141749795794626954325408451188936262109834987773371733275147413444020643489826827376935166976108329391513210154679039854140141622202198141376006956940380080246101810141474617975951198271245608309459125257714775614047876216156738129279302170331116081016597202427423104537065085624677904199391177574171854026023569261505978021050879921109484233902658728020220560174407661880823294251240808661287324471717815848912308711042493834966534793399071216949536332949257295692439974225419337357741471500490650911247206563477030582340927396832235333128052879630587767246478015456957169218186824691050988646254845509273300283864369184033892928893255689779219361347172923852276277574165896231049477938002345072499437360344846535725977882010650156042792244772826392565800608772988987614837498620950042189127140074050434921995936984913830628097000782362319630482097899019037218258709166480306590847821924110310536222484417828173695833874579326929487861819894208045690780902148856435181068188892204705994355764272039598200059565047269691507356036793075486351922372451249083127791899436369027144238683221880692143184670060807020692196235759087578976429656861283312210030469733432801309725789504988694729532109675426155043549458642325154474844754822715031753917220596469021922367856840634864433154371637440335753366828610867869726490006667970805680303797188633726250405974213054870761886694211760667789307328395394845831587500710197336354966445419314539815761094863633158649576184557306182026347386492500412038059380561953328244251387894833370599830885891440616080078225264166712334733448466097933472274527791935875532662306445167546277260363377549332323293679555583947984600172591176263390145791894996250171009769363901238904534910199465586153284242267740012298513641888446668429597849899591097194270707605444895174948134750186511529115163539462470797308390224770930802898960868148275130223244640641894817418435787053726251593944759498965916592247608357830443102431674517554462443129404528852955085536864633128235407071967222584783583650406374732019572995025240689615927622398688093463881118547939913722836079562169419290379961628629508386134929924511536190831778224970684215545778950565953703689180508406580442659011122973278635172375569822537249726153779962155072815804823245508912080118173824409875494763969484509769938320680113626104339812407914959815094370567272127821818253342872764245677846681069926924604759601405650222597082012610050328245196687691579021837271854860734280709996426446493831040588813603048486242985519135949854378328278805808963263578532969657680198954283400274278640690589322162799453832431898620389014878896341949751842519474859986415146133104890520890186855089609815171821732339140435704212428705135022310825782988160041800733962234993366901336838523453474011778979056978320809595554555318390963040072457215207239162104138804462296297926241613769395435306313291574367164790761941413833107622588984503650325724911898831274533650405286987541823955671000618440394069559011930270038089717081901852362538562570301977315575941853199041973435421871162729846234093849150770233015248861367518696335190598032619783220522370736747201676991372724806494515011206819022623407155286110660463486954160495300963603431394618588130129879847397836956451289549157338724490523510922483102423007058264199279383987446133427876347829530540724865009171893386478469391127912947413588226405989477744780483430385230251227939207518662583474941021224527418293189528407244678959212921605329062950248273972523189887720202829618538042959149338779237574499683657797769478954062401410175532233334339386607645963728142165820279676601441386503003440351578246159625464086093419283147014145210482251148771503370505081917127038538294595641881828623748721419511590594115984474905447744786466548278400567644690761834678684036699202290052340981168509899171454436586350563907192375656000488628579176382801771199997110016791412469073114007478878479394745807313193191206121600650783286578539202529693223532045800634884170913855553038437195927623611425132021061671756743327262611361359909752825032149319271404073486737000847810190753367217122257168827213813328669338125849979789544171851450481338594141723897539426777623136159057312797739406960373096552347325605008813699053265603549463216816311475336979617374516820004982672278634380772106151270517596479150577914659631685531804058776371049947344655240066250422584787602171395547541519998951426368161143646266281224874593396566675676280301561734097735919517266667331917498018770742574315014337429165876429439085765990321824902655475027924347808649352787144638140506419424621289920259337905860010258661741889793408620327284539695569050849513780219988968857513518465324014640586318697673962892366102168814313676598406281136823435765067179173096964225122605837051257937968804685573833742198166052515768569101984699903812391952725425479153747142735205252296364368819142661532351246454163849973686633957027489576564671349061672155863071295181589689617108324710550473188724102425717517522811182697801978756708445441769619584467701954499044575951546174693113163324107471528220440146864259168869275319856871849417875144020192348445124510098755651578963921338992910726207609346982221847120536452053788791913497887962647876895697686632399642925564458302334255401933788007669214002043314672642263109756000847943870924425730329696827893105072471659931658626211123016228922062974192828490310059591811610836508997956403689033166990167444600136405621100615778349026457901043276932988888197489918629341435541182499659723214203852799254274446449278945100471416605788740647762154590729262743532412878586497086273060252411727906456616279022471039139688627424314385540760070879148333040990721090950653409495862544876245596190597336369753507426166003031872789269565150726476429519959163183359342592518514881850021304591717830658737926554089821390270415705277805477815005716022488141644513086000273289268743020600813741395134919781656339980722812122891271904572418755609274453420260356054473591514123393633406354043944627642181088153497723998138071491745958999069255200115977616123304815702450889658504215429357441322505130339672108980927746690959156190708049782493318556404601246074497191758636454326709821459438455716929229801279388075219597565714651980693256308840377775945533818360617914972326347414904433916911805770279682286071368911741989282214919508988394749502314776402642625139908291591589818088332141383195892220820322341463167247502709038786216146304024699475782067294145605384688634111919664603804820510728430934346085330243017037627486791640125010782126808537719843829106651496612073926768608536800443329714823440740301696705881189729678331398533095172751020984519613272831791533404670034181807781265403891337153543244040722806899623936377169084457937218284185820155449347050813536663477975278817224219169004618177897698954738981230695037838134731860590395254256996006817061305534000898997751568573311875508603813631975779387986229034505689852922122200734573581310639796386239326041299467578875241424178916691956745646563157293987105220069149954658236896915737824393631259672052536635035774503603869583768139256178837956310564595550029654803144110266108258148798021170843973105546245482692351374045291072894879586821432148057696332425138861523649266987777347916429577706834105465534785531545932143704601103518719598884541097788020142388593962469243170417503676139258602657169778288166361399189579733581201014754538530746360588284552590652280254569141384458578550076084438475709624924316187494049653397979286292359004291475505459104421719713999061504469933609133483143787629715723102243792189603958368802343335743599685023861596178554341350279070723357772708876731428400950159996758076927517445551197288653690166268524518239438763154839069673100097420068937200289891652994670475982874746115134041390856562434722619501899853061344649086336671655388715981312759316544186104028989654994007493951510819042626830988958473295657754327175956784335164394105351713347246003012266708340762863186585008339490296237686471594440954001769989624482074331870520535734021201297159493415870528881934362612156585433632659102776782225455283029530866894049763203174877497746829460836156523966006288831676821042357636577297352768154578113094292104708368218633770529019581869962431738515027358123632349627633130348081183865517526398441198898978216251271560306585404216064603192838813364725391086810383745874859249426292323745167900947789545976870825510046528651246301024702449171899879298519313259202706716328636071166967054092356157528156311017955016553270514154425038355420039307315199900333869927700173269925225350247070356355870367181780377448711552258095694208440442437198210291320579428627871941705041829283047492694717057061698340091695277343383648905054590914212317636286676083966388701547337529225035716321729390677125096695549998878297840437781580977155267584695301543974461402143045386612113200550161960141722463547976993502011278999306234733024623141505071675334139047736842504750108411528068895888800868403622961536403647921339280988687204438213773545857969927649604292980897455515603079807099968578865463554735725400842398864522523128964056749472576702503074524337405126346419255274378833591282341141263056452590210781861506207885987038127852253739288425801789028970614030574653966267056892989038704885759468810749236896030206880473267584017075081653038720412534833763309834756706861736783009169575902970198279119114881890560300398486182461860056550381059606058247382276721618940796393628252586887605711239764771825294048368884795363421599235933977842867372142938779060659338875782084901219172779223516772458705267374691008218566837136993172874167844678788103561810939424647100687794854104294035600004432471913767587682624320580334211276996902751428377215293391278853952082621468544462516219982866911843420797135608624982239543506060583241985641912896152832318311843458470965703119298380819256653371326975078823916639918913153906743535513356081959913248697217760833995315109376602035798621748554010470837987305164379737212523283450276441413018990999605760243299312710214680890005343522191713806768741198605360180087185883605030531983986477464338890089616521683978170110457286310381176859181260248407888361215120258495547102096470018416265170312405891078506732734417067339276152291003310880538777020300519390349839027767358251556343080322739005803577668856415986698331185655163021240590193261545963429322776278043875250217827845701462840536384156579076202389992934517682267595125332607375100861829359561798180000859155694917975657034598065609961195136209985805785240360001992109311603940710652923821439580954007360777465492632689816862159190099527169068037776293697236287002870276751730493141021114334472031480618230539644302232341265352660625357105079435375308313661318263131977644613657262838333074678899407977013907078223824796959560959170713087093978008221577061161280585227967888649367296193133109570624618431874075557909230825335079578536719733152280158361850109918641232941661750036524853387717394800926507103388300898413675716175428312501745059268372434558468301270556637677938953010872761143195348232390964825929505370791359512261491283459803633063216551463608180891879529206304480208040608715652908346084882873702662058219954046671902174611801170974598121383253865783537303294687487983313719714893452546129479353049435636388567477235275371502753581017643492603280042915855405787867727033269726238803164409773242785400128033847064229143919309307979278548063201202206212387725738737881086872954421355057294885282810196617869736739436090865620083172046850489416580660879541860441626229517289183357173937880492311420255393555353782088300810814629937623513434150401414700053174498908427783112318396701098495949247275527415587399659056831936290789675924442790231510083834314463241363268312917699445727961133612134970708702527722287348885889925750812890013514582353151560254029100014759856471254536695033123316683884092767833544667152821480281657718319834288495211248426635545574586114407164048441355610122819158918738297638842854819825213690182122389398298760569917886475581786590931638849182468297848828422835487829361867955861415609879734034019733928261829387000611211174865674256570060857563171431559063266583978299407272439778176722093475594836407952252923237572176327807378326762425372280899990358759281527710584635241205119142924517487511973181949259700428967079007734900631303358696529073731508151259833734059748360262815738144195405092926441486161963547182313849748301966053717374682530003256819804751284681406975154482482240467965730475737313365775162852376763891002678100951721731846798866918286160765732274555811792577789132229026972256348570510902523221228382135890061685601264094767919537051992306219946784429587466923966947897079622868056150401149025625179211642266404948398099054633444671303991168180277376061689440639388649276200592346640028310269856197919571627841100576993149773609178037596225415045875778365973472418761162840901626595024073759012570538108180740801571877983243890189550046862689283362737352992045001036894794974816474342128833779439791284552319872817193851508190834965229933875563301881911048767904236367254626127444216630551026791232985523951997916257200045404060599570742071632559321436697980535011718533505807239247420105680261569863079352599882208544138466848399953367240557819292083279781725293980801215343585061719012880444572564982897335335099535166117798224953820044970548173946780049472658459136449644239273822746449750286770020840931191560989878377916592760106281902381313968191053077319568058740072525298479451444953955311885781601606669284262365337553706322870202950806891429839775480475799098340124272975191799892355923062815261189899608766233689346121167733695930434998336628965625976036201193574499768374890245919406689070481716897609206901098218658656453137400307072405457211092777517761730382378624920294212082894334907736549709277998679612968783716209786216903013251661088724653916157026834842115896437930648835112030196593061670613762107942861912382506255177945798722449971572013129916479518025769217695895514442041622989876799812099275196055473734975547312867992074807428349519128445112627239322696105583717914326029624980900304554121334955394898758458102864183583461383084145136321865382450026040329364653145013446084481391216155503540846422687139206769542164462628463777204681432236391502838985482954055216987883084127030919480810636114336394356969109125434189799031009824476270900806832265066599188573005136094571209540400122477243068975969257596144126462665856243128760915028106667275406031928798450762860948862303608384681050412951079785679489157872059658400293349075498284141815924130787414283061736514745212247887134486549128815292757581387263095479788141310102283595101168427211790401342605066951656509076743346071602955602618721026063581569471126519728146903795473198181683051927680343938153371737371312658098734911044776595068002319380136712050458700984410443750371262764472310733301744106071053588271013938920274995569668538943772055066833158650400298525150833060625963892198576692714439883055573833820344041477003239298120928341792819582759396260056000583220568947475697988796016607828807966581415896134203204289969246425663441215041565732324221852129358062822408629106427357658774360408395442021174032519637431734870599206625909645553581910285390054028179692995861742319720389647471449744602855024911821136686081314281234457941466010642143175122640084283917906509763444100661568627674860395661670234549889532233069279587911846977841693693527747675426472047186841625269183948314797466538572571493023596648237211107644385769353234756062161658021613747893449207194237531863029189621290097566606300643254844005953769647588386788609526964502485395929103637498219120257813302072136103126153665954973333114162514222168668833996242552170519323036642178997389990653366361297581070451423056410288837728342608025012553730837440466558438411170710761295325164024968729587153476824730613654059390164057666449814775175939625998934074284253840660661838545563957903922597182207151569753902597629021884642881396939683013428737442302741148501527850116106569591128155528902653485261586862703295568720448643204646096181908036958321610896740898377925869700942669277724719747478469592632169923777787868209529670066895379253292413081448660175786094382610833359333956694228720562253036427076887956078909926656126637496915489079937700818006818245377778087251173398643022323049952438202759718314104786834612165804676517972618226253073931785125457305873424877553347595186793573224409808431552563392475138321841758452654152948506882955008924283758764632995277206157788316812629641002975483523909819069225931660220803296392550239222969752181191534792669951121118339776116605277075611901678552320905125576339590451730363655604702521627287044951588907228348403587379648202753415058200010365044310942298850776998263834935131571934338020072512996770903879022619156595430090762910187902474585333138839677633696696002181642801125458807563517972597479923485681851340188221823112705102627693977615710284216004248908231796846344132394915914862984190257014241004870459760104652064213852561447789356804957590871444360377780485645093349280273484289275806650710793046838127683357005628493545214004258446734719510782431047208475299875845273505183869886195222636453212751325341567319350310683086450464919468387478148663609548728438882190052298925999716568305369719179852522097390758877763424294463325606264376104111890339276218814801578632728208719735243582571360273791596715413045407139437684794182862623207181956662837840807794254071771817796922992360767238862013158308524022973045952182705883370164269352247894283899514459978694182376871425404438857467035363081128816612304289612601126441229201076448227449597555989938840056461215734534611865591604892915579892541527959629514177816267838227514157642909630254999999552179765446909182722630639230671035439720023518983844955469078786427799025553110864306089558027525383046895327035085244609323911971279983964407211494184530413023015150432572537382773205910105183203475488048986132046369588548050231134014965834354551001254825289330635832803219320204703000310101073954956026956619302651428019982503648176383572814969421967658533758207961062550469771043010553515716139919102663949157636320047147646227785018571191628501968919461695494342082021539364499412187557133164912873672635288852491569400347483742438489219990897627460889972611808122830459816828264298922314258009898295489445838128000072389489467978858515773597569729786896607880232595344614904675667934106390786388419779177943247412286281080148829855668679769958641127687213727545567372827835865570805285261992801917323562071226145047519665317113382309408941428836667697436730735908103385975341377314639193408794957586885749209957086358715720746189681485758137291803034667585964756049631856059742423073653734499035384148719448728346340731117987896914186543403013888902026210596441261956832638160471628544129092466081697855778326180995211390419447943899009631787837921908758662148959137189769455015146555718073018548830986265529078022963861592667142087982356904981482307722372277214755073857540020007990755529933060811779466780572506637981365244906649038311411210576829765759183333490396740667230751229494958816589442705445811822002865543397868255994622057199668115090054450563001589054325420834747805172334795692540394297909923024780742666696924195626748525016301815638568448491229162508190558122041964937079273485999538647879360084395629410013251919407244965128766040881871829950415187236134498601032183968147333397354505273677075990208649109043724690867773471573497299392469169669236029538484879823774994848787292034307796457429847063410992694846552637116099396878466438694094463061169565540011426467170372650036787026690348603886232778709977851564327367451355825045539025497555946086765438850832841444530740976788660659380430607002180124844970879324216757782149447629475529488959024200413032436065646884237402286100844873671765582505819289654004616561745744871856155493510384975889094368385442146977742451781996084264416285278439605147131996350552162015197399951813864769465700354777043308687820073268700659580329740651853186612370294446961353191032074367783021003494375699899897764327626893822780074785851851224339150894396850470932422813971279010290436713712936946899914148832296566684413058825782346292528653022046801377205399885610382919454846135885986400827717611599523623383102352725702975881708277614897338985150828479764917692951134662241098016799641327410731506228611796465814603859005910940832842260414385449063581040627035377191888706582912651347018921576385019936248196579476504820307931668919224611138992206640317566638788740910066853127290589380423370938861772241499051806879301901142811061954766056828428921522014610520271297926544819874037888878571410087263336762020300824066422425263721081941201937454111686005101137106679279804128316184652403625694765287256380835914677226390063101457836567538733428195509050233219210346932494088747731868536262584593510335310772562868085346551379910963189086248383136231046392195541062439399842800985620097628307215938057521139387549223529013589698858635828747846460993795090983184701249981948215050494565008871110438405039199328670637550772156128528717608537260273689085863764866322997723365460542236090726474504902662065798931871878688587480551158118807811040625530788317504295713353834674763692068860269274471736933302278722943922807970490662543877504570347612537725151302940247622182544135394116231349266469566275899788163155494610333633379714684195227166699980373364450626854246939228064251393188358550228058746610487577071697975903181969792139171459378266235017534647659793165717707544511182426162486715135168145440670725672988913029832040636755241882124561200685214913317131902621271963015848513391701745451951410326744766072550838393843984335948296542874204604409220794374088117218279460656170864316661744776957019408432186722690180369823862546690865965694085530312915967051042498096800305429703406215978822881640620081584492012825580143839914228401192275849243468949877936860121926215567770603498576838907669418250411797151912085567713914709705406734430834116818787839117413229783874933432593422179605894390999509738971514804999597396190701063786243958130916451851757083608884135475544169181827076277069085483511928986158755491900600200050643285446613012381319419445639239117241013604625315722595484125117976229389034343378253848659312047735187473583482465297431660446318936886823054655753608949994196301287373171988821391877806059799152198732970120861315741848767162586317632757095201566307148433212886629288358716057425021767903989950995790947218512811443291457299030295826235518393904575430069822370539859290354818461432425274724100910598044698073374578183851778309519081965823024183398675610536206851426438705628479555569501308725360906836704439537154051957204542382419179793562684780701062988545116718397225498613218561420377063008006259850736879102258936341400149575174517198521298005294724967648521744805000026244009398796777952271660856463418272794320076184555150700098794543083142422370225948460039184594773975437804551644283628230477075103890130793847599439288563521087509579323857365482685765121353511278321775073723414618485145675429932046261741538005408151627835538952129408130484542318245671190885250514478568490587014779084825387183169306590032803996615248530939266910899025381855996127550768322231042295862896154409629308534328336809737231788758459567416654503313469237701169678700812441298198098418734028814236363828883922561778960743619278902349444313747749601498237700703472178099657031348872192181057064162190880879273262176029200387548956173320409556688711702001276179840090190766076608015428029522355947541673928588367440214174309695080661986787802760715532516850166598076601885813103928005592888289316021282792356851446097247739778080335624220920305572297157326931035105286767616291885310363566878707625656036588671479929528004063875609641912900123394848637223673464384242349143822255773779886021894689371165941346094604582915982288304276851650906597293036812100723691977522791882001747752995912557794450544799943704764164606208372378840558060812417585115167698319872834341376905869734492210971080630020237521088109553045168454001044141226684100905956275119816078292922692800840409187082612793483461416166877038106126368353355257454192428807872644650286066046934617259747361522206020644779927918288446100603566804967841975875464444780852477881081761157346563662862057143304926658334496867326782064714555584819595402713704007883668393965921390068382321610892526588984408652246131713126620673751728155398522029655759264659803569569720611697074394341511710052318188835391147727305604307086998753510812647098309004488518064571432136361463293694414414353037285100514602615846297080517170864193783435600572383615397544760510188023964974663565127038728223670798514338145078924545212657048516111913690687551929360045241592576813873255397869957898968148518431464915007113061465220140057728976953822661149234699666977773943602272563965174475238464843771797733376601470513331244794410837520185081581047121503345892699832254067281818094223004574382419082854436085641432586921817685569738806438198864098969071044591280567249526892768086865656628826240009579998985810954360492528173259130994414550533155944433982561303512717161533292078298951539441966370330488764124084179047362168297851872037084685752626760186208610148566884496267962286818899510302866162759599618747873337019752634952197043052139727914500586070987580856751890918056058081455012037025930829580852813662096699253339941181605895182727060418508346282082647018515881002330856409519516404513037369670830629462813048330943846898603318116705546875522595196326568655551902260418353453065039006969890853902037910020797459513185701463766120340967466869944507095282634669423615687594115081344038677961653916156863730559163064224411842738411535512014308402662187089925498876167081075153352787474656837690407977681435490825052371658778079489143713866385439586393462613405474607077656621288170533420013259377896983420961163553148964210787675043211400866619448456839099621353242913653305919406689192164774362333358548049262775112149163155724310669110705766056069299310763905298656537729672536667662359159867744666401317840686898386815080000888704695922047130112759329840093177703816275131232568174503834042692971331662800767310124711848272193631332691070572377493410787567559857630950903687834680244982608459281840259323597395957546571414863179260263159260903034743396272604256716371038708800956661906195266172994899364741013429613876454541181034759337770266002274891679894864917047079778094690285487768163992133094744971515451081424132031661208440305128527106449632994799768494089606291715348798209600165964954633772672058077047199254548410310859799710597584023527533937102879349225272703330012801704353028650822428328549716814013115142468862509699447239890874783001582683825625378964405198608814878929228401430272151328374730446484628435679487730345318305057783777869131465546452754495471998134920264327323456731041494538230416923847297684932771567596633791003009106964926288597440325456661587316896556009606447110206911907564175148241569451964433753698001963045608298536545436002140748976323849951207026194546374266986796463644787320197843172083726606486618948983985582275816408382132003483647347738522166130329318396321526191102230408886142032761114883759230431543408276794518028885289218625030640565403196880692268176151612711252918037480250807976726097030636442752562698343668282778754528174965190120786849126591599562281730839075216909632419895052257935359838500049125660234142762199616782439270076997934990517528334288507970081377014047570522977638149267486612680018734959478108439353278740463638557812443752408105512285696486613626972976924065565498966243211157693518088688897258912900390067916925509982820647458597342986462801576078752089223301154430843459947816059377525970265384864588052825385361698531705752576744850677388730455759235797914902147852276476114108444269916368091355689120313827429311270851493084932252098603810609332493546123400857076928464572284443215469252750300906934357495763941337849455384188166270110696010050915784704813436648138537207506936227982708831375562800118102359254539382160817442868755986942730524245644761286363789647221630861305752049416439250151010240469413475560188797684827584139813476268277494449464494381909806601701382870161365831599680836930282088887791532713933077188127541356369192239676842374250198122888574703351154859350424719845696551232787971261832974860877712180427334643695942058585504315005480578814569654991629679673149359276911641400458609855216173307542015777130383224022603506548189167460139434797930375087650496662337955329306949088982349164161333059036272284267343576321801046429500004440019361417457619484875196836614713360867576106748056883551515944229804844668594976595114338114448899060130044494585252747795979816307829617401672201000391748193455603213166349709712806184705064965283101440581406941163789640588448777452276720324620536743745739459683087642788936817761366680216964299709876323235735532718495007402086270110606930533025061051179479627892462447912807596782762064826513732336241134587453403696235838239091982666953685977117209016772705064959900851838603666274135829894818824849853321528187488241124278581391479489851891498515710254101871241804632437483025422187315150622885479395867094915054817484457598698305649697333352615440854967488976326222546157735035736802364520751606720942561851777508501625991167215898468218359843618012637964640987803005001287027224872776704905821921978283751302697426477833616295351576244677086041933271628414849524012194089677378460384989836396644764834193571360064050335676802087296779204987147586831510373619496015660429970773884516779752310700043760882740050529406084756755297466404327695357854187691001619496964164382522314523939966168171922661908347423811970220548667832206816815250932355648597514718618876287630248965596469520452819552466448442795025410091032516953785763448657194185374220786681403377938751819211390450308104006638696092384883004655814083128104415000832531565404716885855475654143911439106405028585842570483408057275673724229721659331470609714835853290749991922686143675166380462619956827029309497789291226606109603325958077638838289314084723276334556373485412486914386758111323233397583780422499483145744480746719298847627310873542139848828276750716712322397947380916045776807019682757629030424870510425886326627377897659170676906302297927078706686658227192534155629070210796041604661759432540230391624147486072003667916107015456446441640952478651981801425287145222158672108228753362068352241300682195616113605920100289926389144225199259584766312797708509906453534316410167000779103543914787499557591819648314909376116558017439994288532022392834534734417590625905806350279291950590582555182256169993623685392346164271251895122997034571417676979043567508537263698812081643700283049203140686128622972308087036879009928929373815239578381832120497928337606588608250967799232699649391140773714826746878052884632106915553757585132111782993163072636122934720654142452408843274912205303268567884844663190338458644762288309336024707784160578024711774666149349166651756721046726709149186891682157628943215662806892895532119867791088719658728861407053512523681307503345902255187637824874455409877282119401008303051410755660419321097609305523425179285068844713596798193926524206199372517455687863419823905479225634077719019380526446824757748072115338523574375914494287658359646204147422172332053003156097880907025307497745978091835872861451621190316692724535054173689114330184267055699502954407684331860506335732409540112216816627594965451941066930280154127311816753903611077607678104417402571186969650424055957789885679664333262707130745598291784176690346634158876414149953281256271943099157792449224975554250123146114532046267004929722515019667229548368092766365408687829576750357141491594969114875806973758385619164631779855079456903395424936325368384182907383114715313838336006998400473773974930361180810771678913464033514394105736819196805365340852170133455808906240858541016187132359369593179981799055678189610238414143403285085297088369605368576544840675871197043606168678090826434361110025421049852038369220979804315067385998457615466555806578138186672785108698596287751115811388198993025115375019012528996919767699505169095104341660117204230114570584231260215373820726140350413169635268170951628534291973437684877331994751312843866641087876631468128574267881657650070087907365327775262461182344851957220386723099164628239692162320253740705597454965669875171708754234661161674488631197955500927821131794818264799982036775038793842598609310179731632116699509734304425732264906523786220123375799058891569816949336630896985599113062171688353274896476210526628987873286549110662369874425904551148289243915670906244511586554901055347220828250546777394053365979364216503945138453305635055926870062464364886339100977443634123776489539747761734940267345606627799950804708420115475861392829672639339632165905864568807743343217886713410548110747438285605240705421651651370775873996887550446536651897842486197945961632216418480301432797020189564151165122696622223586483670282355067708250318106107413033930687598044828891883562950936338035891584004451455311421367112316393062297890949589759834503980350387193159144413084222181136725083703585148876495203955216612990012272892602435798882691130362402366015081248121067007817924371409240053271315839835690701126712429071237652976445830233677727128861003533706068829536580880846769925948320441337638937523703520246558148995820510014225645164606330351882580170637121549392183639701664391923493948108105844419215124411203817838003126584219705671956806554662630579034751587670917698112741297175487254939951050741340553091309247746924142552310319709147002954588767333039793390663016687511394500264312224361985545198166763625709331791489602775941732222456263613394494271251908498032441449607667609402257389650679742793672542936478837048178762185769421599355456775292923038196248930504057733310302971744320706942006226883555304921628732505205191760505298028272753215206118905890137311987119716506298627184206113653437668305362223554249583835783475594486225286222226020577457128266180900084579811107975260570166805756654373382017198046224883999554966768136985455939782504722342334803801614066213035207722258896807753993469767719256703971852696397318605043421280952320150423944300311610508640226573838443746484958264427275348465575304902021220564376586238914233493630622048990332168431401259361324964688676025141346577323642512785784755251931380147468567491740076960516392666395798731110990117456652921735295478549862078487946613057076499527601234419649302230592143834401159650059676099159859879764104095877433006063656084659562723440296613284925030352956296305809684496483359341450058896771682617100147620584212272769488832041160599245722067154872279749890244795449950317103966042186039882367423639506320429219149345639230555438626809919925126642195856204314964973278926276983955503128985804692269662990712318804286469706892191232543883265013294434722346528759368900380307856961486498789934514294236568417355384052076167888274210266720439925472075866663569608638603016330188576785902105516832157686686830217687834112363191410265536235218500972995513363859955434954257006394980584283152731919096909611445473389756282108468600028827253499966219788534979525931936076318955389190875243873334967806245264731412965923166634547262808764281063872037181567566436917186506482263605633508273823718906207191888057898613572108477882727291188245484758988346251595817449595183398078005508748276706860167809891995195510537499364716059634590446972486981766572848030959528620578197895487589543436587270676500605401433285988915720336640291326180364535935652412410996523860307744371494760766648055609452642582043358889737767801149798600013223432166638365035101602171597686591622120372505249489276388044881912884995052697937189860576072148715004451827295899483805253159456081753664975043565155827511567745172514141085148042754734959053232668322175285753108552481733411252063059696314007311006707169610938011013128367458047506381162910470931823534106926003962282313579081243881064466673731845695051651872048893670086399176640316697677281985887166160382510575861748580118863478722324150837669777588167447512534197176756639749342273708442090111773156777713691867303313821607043427359167178007790450698041704305497661677689477051217695328208932185623826543094113685898446668559771648862775282352337932651141791343190256111124664947211972558338653477404169796862989383852712086244907748204725085979407315499419790992148392494216663410571437531806336810185080451549703942653635392107761500231493259982055345447361131187345524750474202882814955926057494263215374853440025510155338592102688872328896624951795184461921063915822278391084332891562973850484489495530309424438270647713846450547950966016064308135821409011062238664476128097956996577378681043917697508570262238978969940925298335516429223326456976067648835570588621371580550698745402190161901158280417861306694993775227713380107453809947022529005149318699264165297447706286203191381048600797426213768301792365677609117626389272015848614528362637598096774545503089479018878521863836399874419981558539212238176731741334942548882801338948794133137029098055863766555939345825590810896414974582598698574882322328742788393661975415698868003208534299835392310072465344037723533474305097686229502855720956446823447302930276646684050034571191670281936250099524009808506931778955297262372366030779851084951581527403730045738849626197614226387566961602122071170827296890610611346287123635586107050153124114353485378273387578493378236813434067228362072455476283182316670654612968747005559050404307349131677896283030788114782625567114436379386432250599443749776762265986761164625979628823923280506292046550378796514464181871379091971250417309864158710910437818379584193227128421571511659852928368340554227706811254419931999745736400717479529087230786918381011898321029746428680414767259719993310514547774494446910349345911364355783898431785841691281606454095570320531785006251573964250045950386177529201059912476228504261891160397955835788379972214827080619253594370517966881963602957673995815476093108648066519180173209424163591839137615819504431658223548475895314231523081497996805112100500158531871578927235145462058644419618316993349544674616447128804138593027800324961440041188126491503763379584502286519861833983393290135353244028348102814549048728348536386318700817748057354835730411963738356125468835227308565172568014131152201637130563280030674075320559976629484651275175978868475895228375521198674713262775898137819637686132912933045235480771787843434104473620024181816585224290878311396606832319074391875164325880321187326877970357105289443652837376107123465371752480269140270123131629775308028418213626814429175276698404682970632546203315845110179771858294778267438290250321024343541686065891367900464865212118682370016312120572848097641892268916718142632475403930737063981848416455359057256662419963477850826825132029522360135783880469648169778537914449121580643204057930599641290125756892253904519629072751741205849198381913518284158968396093174078461690576337634042299805585667079085856509790976596780170606833157958130468639141456519816563261241455752767248488142530418674956518071403123598433854255193013068881927952820299779117137203648311425318102948581330022339483853975629498879611344248122988588664318262755580689275314076099979782801182909344961133732639561746824704985938680096680873078131685901379847493638026783464754468287191711070020203602494374594844537194176210494518186977298071106506147246984177720053748658461479102045730537911011111219810430147952434139642816502914301883974122596569033032459849241679330216269563335650502179935327043217433712114623872233302001880857043010171414817589377649147860023993193553297526740477252225679226982909423261295933502131526085780850930652729217088023099499685771167386903635257520787989113287715765245597665086731151391360070262970420361011722794641450083662170163770940081262711063212213837979843055437219184116600125525509773753656874468949769501844200082647264311899902480564916632905196408145147955455339101571325861907197026281008973382574326535436063332978920089989112721026446505856656544938759079859392517587227707115953907056560941266261809131730810468323841425042057555800409782609517839088243089113464016001782497075282182199302436281284649789221146793085098118478355800704842431018914103810273158692296518745905441519111992055172872868902785924106462984276434535716097860048619140321906408657436537888282214024095601015846849377160291190160879810039367246122955107565472473245988508271322468059301974994242355853582029959404936160359602479873555964346285697235638693642080692910886076866822385563325207366793713322347114004815175925948651047243552831997693067502599680627560464396902796577494427751317076184016755945918983995849071907430733818321576810552473773035694137120069183230841041662824608701911033188545909001160088735495965010975569803815646789231502965278656316088977852798332331873133333849949404638490484520265015689567355343862497055127844394639531330049644495724681646951894843500739561705848116384481908981920372104589831187430666753145161921285973003507295660346984900776679958898020720170425467370869206387016378527487773317952127173501863019338988118644460874174171274523371150091173088579832014238491475012783499075635386487579733066452332418907582524806238192301330953345334509195585313969793749094826679399822196667171161008050939427072154350759368189844442330138321513296380571043923293795671182170293229726848336545651194288296602726915230922638480998490846435384493910453102180551346522456932856063575712567935556836618782052198088016581073558816066677684286458261890460387652188733978879137692993980743208569229464038627390828260199849879798041866749611825831443984052362284071276941156603118285418578993431319851410634012227234856487741092956336775199410093415535068345530319631583335106851265929085787636931804682201635061652212022173268297706530124710224053593453281894821594422098407159108436267187501993926955546341151999159535310272269451019895205354719500661123260622489509211344783119194978745967544369740351575099939831195927547693051289773491935691858281861817670574951578548870127878312518042660213796303291058432092451716271811744267620943301235724813754443522005577247548146052115301666006713508807959400784790605983159173364223661959505590496673443689676238863027484754871351735889375970229577653049375603573064389346999175318198999543738841407779907295941144187399520003265203890178153607194202221718352097834677407757924363021814752805993325651341580650211561059928684096244016658576086389096976526368639750099312357138979114451204020967471547902268367900955577837274770792318509165876611452920073880348780517020067026313140661247150817903025581682946379128438039544324192014319409013602705317512305678716138637946007744564990343188710447790173673632424402464806963532929738399722748404598334379648191982016023001095259694370554608289850237877561912617431520086196646909460725007225276914645330052831245718908996984884279825615264964705577059791124142504105341984156414506098592056192475419000749771934182867291953636632422635160507396571759594521914026372788249413281509970401924498661258633351449947179976886113754722781326539380040598023615166626660616288423328336248150188895118419068342571017545810825286084606104915003423412627772657412426900579730399101783653281723188213923338772840259995686157724296152066601309095623571392835376736793310397295998002301629291682007296148272496001500145095024859390402704890613819936794588657537414052034753623195673027951788129220608341293722086297133908027491981416974994306669149175711948338612397215023108588758192758715497177773952445609453793681867346684385208912641344627675426408823750371862751625040376035669201757078699150996107553742552853490105221695415940732463033648307060204714233603969025441420571699179763146798366975648723882820904025224370424713902579693123893420331990175811365968037123967454318638766410530137262131714504701647060693475352341999469853275111376227822938239835671405086147397454832911985336886870338854284732691169439241862170535283367813492545228299671997716010075459847776200491977290067008708633514492829627920106210483629712368135457318408383979354085582276165081414757599747832138996206474694939053241148725096725829458141289450827609144471012728855862187580337708034692644050689349277245301213780398861982294975453236564998530086055019408826374140380878686165885179149762163789716632923995450396164830195912369186443842016767625112739246198105630723553480521199153317553383327185537024269812938467778143816563509275289088634588468759022342471943160805287965257168980571687695591509102381322366890499528218516912898923850554543509259736914865772684512585708027775964297277025849237313802360078119824203832640747313394600293804103176040207303609138835569526411391610074047987897092952257492747355474136294993157649727795345156095634633860728276236639821347273123277053688084216145878939931568673270920866042661841125634173357243740499202165763804378095415283703283539636709497196918690236158685900752350080196427025780909784931773394703006978725032861123025854185513144679391791655742360610267986218519802627381187416785040796942164996767039318820882234024539731909917074419783011843495535698727857717610831860096626733907865438586281747714963783522297455932420940539622191119021466683759028718146160654830896798778401918050571559284460064710256759718165862759662857872586972469495952539587754218572134525811041460574974270213585306065792519257307205142878439177609835245977377098589637614163380595118849900571488585154967753801745434223847009681507995834187651918851711713235511397075815019647422366789242712881568117613352440592381113936758684935034240266455381539117701497946393243497185460994674972281345102054929408288066719763998327827987758621983196625231394895458507932012350287660777205007590690219320020766269546276680979036868970764975959016162838521998698470204007498012057527478060025012450967229336772237322496590060798026508643018196750283465084704987718826235097667940363369168774051580559071705537802970135512732531620224988550469715038053680797485352004397581003170609503152095735567523861058658034415370052201727266313268794765035173518030872963563600311833774237462605887284275669730770286829730529910512558014638582403322481478014764729795552220283815706680786430693819866599544530683182060100162190048837068241090301368991039212005741459664307607091049547478072524257133485306937872112649262950776101749970294341713503777926400140399402348737599499202377116954483212974922798021377947566709116251556257547112202703415165713166653034116904626794176433128880569513673114608366736110707607274814532572261496123209983427709018603648320008804259283392295546309078955603872858639067565615156423721468803596232014580385250162793057763353077443676776874986577720773520796155940866777551134381276005382789300545801901134849493044321473125107987556499099548767796911367243988412053493634959494353424983714241615723924613270085289926028771827256209513873917523632445054931336281249189495742041455790529026299002527071819104422873375889757150876327132440085511798066395872362975698240107323827179688659635302877583654320767947508975651549514006219812217414316691320299850203606272271922455817183901906654787564672052396433262741240801449956670500852651390341451408580398810616095609279290480520118368786885753141369356182035457875863211866023162531120533224653710906708620463314596971191030479936091099783511108405081937621883983098461510152763229461215492647814972516375644990947097860645759992818092947480122245313990175270851685733373513361567905708271248553119605547609248054855136017170473682905785022810429136472215128385752649007165905108889977841123972729884931050272996427023539507592261537377432742675062356430967905621079962210879540892704123595902890320384386522742314612155835280491363980537475298442916936673023495401429526878783080953668467357007095862837027073856741521264020165943753144693121015376079154805770266382947856036765596705261746002834564399682310910420280247966078158274338273016087842886209943844545649986642487745546483840812131222061117973617427277477672323820629535647569295359367942050069918037345048563832143649687854378138271236836130546116683441006420085590314293232471425413614036244391892301685247609818239779066546340973294246360768583270734569995995117037267437466104484168279917408359096532941636071671295727838321603324087297095169130881589678421546375914104720922410459479360258452956321586455251473069942358004428392217794696170981431556370121140578854660695174722307143385095401666213118522368860284762858355948414883130023370018147581874890398703558902857200983897634282673736348233815403063402296229942446059639150969107436240547192484328951490740206277937975169137320933029144654644705060503576892679908000285997348788343565295600706604981864770403434492969861876249842201562331591309397218276409936026174715134671971241944681203899531478735389098701919510658880294390589157637664537851552526688538757391511004065953408630625915781933828778313844300020587236943573815556353506497822686915761850963704827480059300615397603240217425234916118405266559019609602669571778397374189263762476981667193427591055535132348576124008948219368019598885308340194697180151436012688865612865024982564320740773219763249142266603594947889698774737920090253490533964508001427239388498935119629190149142157076962900138085718015560805952790899172067130209087385158969570887872455038717875033761726169810852372709952336338067100898998450966255802700263522455235577938059683040981142257942592991187337710251770368126287107943976579511901963247459049267082526542093493640424633795329253086710316822999199043290086492498827402397211176365925525251853905337385170997284980064939720748694733234478485564358303580590123476169936228604496317021595229147273238812974603172542824863001016675933241981103690029741381964106327605312391509104670771396611283621397511858847486447492181248745930765629349803426234903757332304801556236732660258768514570041960450185426137902113573205025568221777857035706778838295586571538392566750151758843065414387729880870680330597969499674853803019536679070595886727680460370320525039932436460488965527807558878532324466669694776226843811437520180503200882602559901363317723566415165119062757560052279624629489354349738479054537135766885663171036213564308491940059962120783173490105985890836493309393593454191234894561433247229566661221099582256269587012822699227477475418272657276721844722172316631322638637706889093450150315047478493558459014635685129591519718108981756353975233540917781182488775433977052934332096367518413949514254810747489783192616935553253518904764786170973327049984414882356362090043265530046465987194361870257381111976163477526170034692807243698265007638460409996782455219091822189024364948163379181297729621496631433996157764295774401183948456863904503487183270986285007284983627270143944693485349578703338955005354095128939967289676788716208716436897166280528117717078688372132566648296754826446318180044239974796589958001653823215871483337887969084510745751542290826443604675074339154303620958439895159522568017072169559125108784042081775499164028745527527082713090262034758099224704346560757525524651437925107621208429342680228101828913767650089929765389225577549454025870818579622433280087007433620507232249173056102416957868348488241422351367026784196369447104299793700146358194003447404010160625548760176165777007195455326152052966026464369124578556904622393244579036600738574035276032173674491968641339299045256284168800977049850267544326598988042675315598288686348629114838291086206206791499032957007056296786449874696750503845859122893659547737142370323768750756297518503070397333082007845376772614288975401973496441385994727387774009315938523574596575692013720291814126151455057135137857678827929041142062859243808714758128954779733625085666546814850111114628678745025517615179712943112020262991942786269579854486368449456929577528732676650289792491554359077461214389877434030088475861867146447275589143767954901519293951896401394907717553536378470157380445694231316751789287075699227164468505677825484641526489824798873960092747650530475972021430909057513639209102642608851837429874745258138835010786979570470633480761561002390321894635453977642892890778110350349519647660370238346859868294196080027785480835731828825899660007854686740794568974006247217204021811378018473073326615405818808240350439437936662488355789857182723013543217800424831260469292750227195046289774338618675879580940898650229577053231470935367856751596740854782470361749499127926883007271857099231131878159900129872516455295368677771040000897906089456464999566058270583456209838045281389888910747629755574221023538516543124547487621546893822170078632695584689335928631515977488462557751789694339430726143189255965949840746269891610544839553456633881496977675386005800132567820199569843840304881030178688050429198086510446176452532700258974765999161925689127367109652943982223005121129982229457849488384702880053927284367809648887539511972296858236234386312504899863926670674214303633174220710443754638920357936651559502543547861563788424874708209400438394997729613923499472225681609734069131262901505782687016421834311723402575430290812724458018421113387587889924170386677117926593575638431360613017221572679421487627666078482127061007504920109514576207496481611777040125725020012875061286699627379895257999878943276235265856925791762509982060679131281441363439653663961883030244405736949284284846728739778133065011603690518969899017150323298917738398125620618098132716225065118936342420784314774344797619570299964451077938025281457092537691220149547102344533138336218983738941028039035727208908206166985455108003810830290573720667981258718781482160897875781220459498651127515122244314826898984546720123535811881383351170802446361625330811583308936398716864509750318796173640074971291737709145140990698653102436767673343588398867404224397291865863986221852645450104260529994968723223223464456275048058348329394553230270016811849838841759707325215998868900065436744872741186718236171189151514978778564411673071739509172917057964902731622316591647162704089572326211558121958447591590064333674134539523946911016755718325261927348413111626834661162763759788965084540536301533454848093452084127380683733006082825227829199142516249023391108139995157967926846960785554684622756643622291818944571984596678172393169801830726106316737889650071641547746054782087112344068003651405225027135797573030755965501788585910246626502394387100266169305413290119859554520988648485596392710702029341681607747236888983128570277144691273681379694943073915969368621011047337763325641121833863456622335944932697536190158888426527512127294385178935106042240472972950933348772183631630674501441859396861603889931917936505725507836601023665412899338448226498451800036525601312341163814334038528260011698870879932425155777916289415551651623206278045425534194620908344735150822107673806518818616926627532201378158627249924797480942221748778124561856382506598896375184939612982011206234312110318761128691452590377248441475727896200985257028601175330118150437563972422747778699461111445275323019995028311656965589424197061225319275866320001350572572690740899590282322619752791149978217715671787845817554131507218548702473409580400764513214991932380472842298937916499377967921873277489617209371350020079277043276303229540731023471207373313545185635755306054977600358711572579329252975671708182344794616305092832199514411201218240915267999276413029586816431947730569765735509168860344222567564492795138392009136454387941191699594064545703136258714568107758791417475302150696335817537311843924428931723678693993559985522219248292849837727530548991735564203386527505419008639149894064600766415060877577517226114481227704375181131839020215626991258837431028324673768525403988468523022496103589570528763889698516803630559160231599222390181436102646138488535396558008132254310299046015212180141430789925929074042886331672132812930136635338069637597168295809246950179338899035365004641900705929006709062112934358533673028106843705366111597269746300123092330356392610898871466949232461992450712112648427811776907612347355358684952386374693574985833335454815938276759611922838264964213458521407003009956935522392510333830119985361643912202324820572091693461009651888914062312924619418895462098281513802734811945394535388619169104608329942027781549897109963312370547431622501825309613918255923397770924774644204337956949958263978461223923642139469569321108539756421085404818312358916075458120096702471699201944451918395660329138385054418175657957328513360136108876883781160023777124196153937261162952394529235370157792371079173251805578937199979822445741667600245601401943357170530288551952903228079501326745451387584789736229573132977529108752265214051286606176289491112635689002318704105970180593990979804134036953330322124514059974988631410097875100472312088512858299633641694341460353505679296309084829470406176688292954223684660089108385189037016779335393261898943895457272518559431685420350385151627080054401007722769116635088598474558291889308810365668835748182350628334854698089567182009717382407286659793310351191793835574198355766065728768922511557185113831563162925654124265691676657877298462557234998301833515166694013702421984806711065126507481912258296232492108558825820537364836875557984883170519220541160926081157675220810471519164583133654883515268039871230463159584087534068713130586793102506750070372864270181930982761953404428880971787884891967611378606996780420894168294780292032928884575812421017875349286758938471544801100447142075115351296522807672396953711577394408120584035475868113829520857751836933469696045023980950197365875006849115507238400712738723111117024579333202709367784612280505073101554608896185368960602013752161794650240776460703841491179738607404905616963270769610567419211379183351191978972603638117508050525161279112215779225920469273006453207948194461148530428954062984552256640531756066248515337087477266553418850232210594209589843549285421361358781762967876363431052841438287520411893462535248584384795223791587323233417458629324510775022568681106650553445644448296274766629615490520414247734075032077504555105946506965084850021390156166524128935487328034598874249286456213322357961964282064583273118284653377601353420197643950957323928561566368434479636818545150699650905931806513164036419123344012906068715490940516363344018316577515313724383912786192395024664470475413337540402285225091037867665299181573615292629965349536516376829571374940429521282259318371206423660768775498164756525800415087065267755516201326321783041800454745816363778483335221291567613281874084837065157369368461357383865117095682767677393030201444807098499436646471071833998008163714578699740161128927303297204286318124471273494364616926081861608251665679433744470708035658728805987573080224552932931882275713099447022342968241496623914018406037739855221804642365962351888019641048776160888896672943387073480119466779626475587908276319730593778467354174657057707516629200167943943787130091599640971224164125514451581599715256755910032535981996456229136277481515936941741539874943187614199099867694210434675222729274782770099051594923411029725451697573298392732185340370459693827239196302838123798069096104806616426140986910861851216865721833749379417883101885137250511863992111469237686398731424559508627179367347104526909191221363263652523410941698751742131355660081712913721332729200613355122784043926434387760311362929732517367938380967908341570914152632350391583481276832430985544096557199042837058714280177418620379133794157151818255183566717407707625099374640719393628479208379714669459802696055861060435005388250597826194496854086062075502352343794583714014156990230368041962577692968640631581293741441556354415292044137153339608327706583341242791776616201996735857150823559284267472714986421790559020062725534377720362806307584136904588092610375957910283428442342372886388605041237492594103449780712530127487246056299334601626062148274024048367540691518086142778461570108229929738815732524453436751291902770280409245950462500473627297249938699154029278781145164578815562111760756935446768731790350470226980044396630551361333788739785537713555955492452558687652811159510231065173976372283552220034824541134793957552250836373602396561352736256144200500467018961641807938603347559974574870071999610104009563785978363312672906596345782584837804386932814460403761066844886054812875163526113540219083252128891318996990266803651115584543445252746865689934000806836654109703755389187968063348326719808028295023434258544248894643050474628367711327141615342701252513516403693378150431333737717090755863648058840744838701003365947713979996980650279824057239763649194923978019370009394677738589400402234326637510237393421639991872340145578869774930761703916770634141888082861872211461794193011075169451983220082819458768070921156201159210443394862540612584065078093899374378032984046122303275201787090252724911670699904967439163538714266323843662645155156721510182945264580361886122246042617137562362884459379803025597128885352002929995934884393556113486139697787699400639735029782142780459661668693071823102680604857439026903051525842314041281683220027496146616516743335601394424399439369832109357772661070464470593615402190228664509288138049223094583138805437464195340890074655754090288266376621161432661707312565042752836297425871032616002207634641080426147168554187661563979663202359288491789279052217362783568308427538209476034293420742126517259224402309096071164396282462206210446958311369278497860784767766770897957648209984674817669425309490640483830969937505990204114201268845521753923356298169932620274787563744868554505439808750429308082090639816941135921160897532221604974190902972488848952498333679133157914478841165472749429878544189547050369081253911692176738324292351091798186285564411122893329870683252010865182645425212306180558150646057359214635711589960994562739131718242247521075207187845353164205088203868806746270584512089307587396375457627694718898131658706712534119757301316741690050126797415226983631110333525873263788987525073524803067955351618528976865344176451666317100642253971670634276502712025030129884389897439301463556832963500512805114831498964070552829416721893080707111022621258494864224232058373696131510106681837606500048872064260052958749449664988076635097569104121803503674714471332200561969737946975622473236837564567734230755950558155939350467908506062890259701721713116521872146402122840207065495092279850819241416354731919435082907067385766939403003009624087898242160200645920824101711783254253461333376696121949783944995975936190626651777214175563612604174228720539458582233020378992960329261419251441747400830102180568996738486212235523483554052592161067087400796906484638608689048350051293937989643717859702227573467775840584680086962381677141046239083770447607809301710065853302431844572167738604165887911217148169962170471735884614841059600173001759540780720077900334395667186514589696083813787560986164287690762547595022097362076034316289478396108123818847119376924232024861245170267362931836576070535846216596039593466371481839551603933307275495268706949798581495868336406471005408613602429310646019817607886674179505674194897743059362062628497608904341880559460894921677082912732188351307016633714565058803026329043230438281449935437967522868740405131965052999933652627232931009769357137494523888213867044746506577120375787795922196972517651653715490320139134299110564425146914072322094686120773572458395044557666913697863372971726232075602416703875202757612540676910633056530051814391442207903502083183677389690611680058613388565734181236852222052006902894069169617681770500530445904025799499128712366478073136889010062008563414134776461143874959076884759916623268850296734921898715696701755902191905176588628333555891501249872267499062453473914970830513667264622326755857155335683461832181735373191947538547653380640937181677092238545806933593355756622698683316571515772422793684694473798847172213406348169312059378142920788443636560911979454167953608865044304324995976041362572981513312677646884411714097305156813822346561039706797319840539895506529619564136276873667851373735787801177678806741668360331657928143238073300001354691846134724047649065754675451579053854429695315930874388349797134895713954021651055678079686859677973184633496080964540253702408157014353039786159928979048371219421817045544918179440203441201190703722101675068045086722303637701387520179757298259735784252364754415945003020029863340104526246356687840800211403940217684417602565825122794438162628428641731435188111114847360649429803716339418580461736604399216239453429114756947572201717940400365436301335999193000623217488040795037570522515949026449864922648430894415844937167232836584742867545180169531550103890837071627467812615262418907259377612433110766727024150196850442945147016080471320384906229783118939069402813476475388816246740493094117029279055282380188148558250955522860923826184537295107587948961984498740056870151258189621890284120867248009872396418003003961402119580412951807171137104534904600773938232449697980797756110146706127717934744347023011467699331992568096639218516003476100577039831048459512839489444152106326230792000397285334106542571577413604438641729289740770808338901789070130547944745818183416372709714615347341243442527180404800450316016790691806350350404899987530070444943651080662381358028353828723054178884839733313370376700108803145613914978427322477273456024623869796260042795201156826414714836231164332806613158428823286487085755236768673026264004983684597501512481625441514367629131803413331656473836782193867114467977652674783792504622490297683277250905467196829404062847900250240463752664717115059896634295147040312963090967831767584778503518535463780166747799818428411669946215761436892423484836401985107693658738984506886472174064967740586667639843655845221565779522462586684019237369761742846030821379481276254268084429084355305103311046710709681107748098865545117774453452760631007065327112662047886596364279329259695734348358558786512130046132595808912736166158764445367189215019262983980425860579668895297224979971344120404230214921144764056797473367835095912222737826666439718712332823087302873886548154514672408687379092417345096503083122796329373489256175242556415218500801528918091381443816760539025880961539732411330065569308950579734588980399995407455072891514875696042932191392414490841984168273065146332662257771320104152754717926168245683459560644656620953469622047194278634004616666110459379487871150178991304805986897426882249866416160112657820945471558911994396267049819855911232538524096751813458303704419958549706522603799810126708171921892840298486098316364353155557429142303786232058830019845753364469526186241039225472951609119120636507860400944546676367544601310574589391866830859143868868284749923842150668459298543775067121598195087914306633881185653719841225661746256731876416350136429663634244815082817353460855359924414691349692466394673007627442020789869962229414760872479033700820340039712125738531322255587741047643632379140507094567847770918359820638022996101428770977712820176278136498210934240300350972202924617482513932689761160923867291431100654563031240072367035058879827721057046149547937556220526560439688002572467284974130320277501261470430889984440089997710049602228527451164277906677096957554164646134227379520027757870609276369558967275978374060302253114184666636008302473227775494993157984952355461600567576052835528205969610766028515347210088323933783157059812278790255501928914388410906247639910934929379800071263582504701710788545935947985906885864543262324943982611727474804402530002208692744789003228506182751437477135086618700042825757065545899711339869702766301348873781129608987127604002729454595104706471790343224274263581803959388734357834996596130047661121522149264905852288488112370152184134548532064114237337993140301048968138019393518690310585691309583310932664415523754835240925187864528511762183275160870671814821621092733821676117294563826277056557691557242970755453172170773016611012881212403910358195284996284414329949938879474797818728990945555076915173729129815128649941474530587981847820807154390312220831083299020360932196737502768791141712938648123653021020138998504545035638713893481079438921468057727426096183209073975388511097343962112195822450261363338170818903360305617409982405890766197571384894669317181496492098107427142896133660659560886829223861882079879507535263291664158629390373498396404043324942752287805156118803042030866905272016099124833634061957148538233164964829321924944839729096011914084355965746238546621809902192098860248147105234525028237706684160455923980608418156903364317679960675668059983687725656915824952541309486486879696853236062605548581894529788434617385432037780987085393049264606838675136249902238419416124331832918340307792338477801776596068653963289916654190918464809025984749947121279015774140383602109911457543750449110370753961029807885144027136970794861638220948616299239796932124057112444623963878423319670298010420360782200809778976521740749512630991881660329330416225688440276983704356064345275012638270323315966416457355294088511453253619317050006399399045459720003163658643306430298185911629176055408952311604046949861774393901878559439286840463861494074657116619473020592335609583542789581166702744526015908016774952974688651394235134812785787126660890439714490638765608156479964199992020674168771585829403111664288741692877266730995053366060059488200563984999736244948420151123497405071327010487711331538761923518932118567945615462300786895868352937496210762796941845734273384483863273461311013301587633837598801213176556139714049427071978263571574008862601331982881243730746605839498590799732906614963265800865499744950283429592924552665610939003026695367995213725772831896729654590480145135779491986568542338107792647605461050317754844303482079294233438368801877775456525767297621537119973882942834179228131239782641753198373329634186929545051772547216200058921437671836378438181024051284022277399625105210921121747896516128202538245559798862868881550866385953443915891299439800818196655273614889101522070954740103324857172827315830780900052955377243108323782873345597477847968359652577709315629071741312004050252516097646375707837510997352795037521488640518768395104940818564369911044699438986939491803002947793205069679753228640411781288040094626149257282219812833396918300428944089332781020183085507153780434564161909786190789814330285800340864984605886640293370268239985507309277080376359050619654323565680798906977553574329751668071518106024141882401286771401143992262134114129384142892680225442585847491664515774807117172242200225719300793499639970143641007500672778912868221435658331875278243929951812951573961339466735818583719411903398564316720185331134139948138619611523914346360188925247078933423286322864834047002607233337683037336415774956530921869213654962974776502361729099879291286977165234779036767746374161666641131210844733003529869844791574845468353336945058903667555017838203999818207694002611360501821499481452580230688532614282113897302889085443304529088324260409834644662540579941203590322586074776037669189511432802188014811050447181062244775606386257311324589513685974014629564326907676979104527322206839828766498894053238668286873637547436953641710953161039221768925045288645313099387915597786186733730345201991498937887439205665799682000095805283439054136092564956362328598901316874554388708142541326043499245050731803196110633722568665337093652340535083974558385984879145442452902275209677515142346971488606694255158364136400431966305740640255505820006273323773895124402640972125754664052584407311932289853049679230407836518817936036283678466632071433588272254109691336983120376273270701521710937896888195087715707922340684627006581269976009167323612160297931594533340127426837720409842535524082647305953537570050489057858528795020765080894228057687957265455290085319931573893889934027299067631196519807710788461167201957777142500295260295827847173692050047675997494913072419298482974981006151193756083941059200706092770833850825042160211365224812975872876108447714949391337891700692837719139244175698345445300396589546947238947380482446785356391990330035382124116866480964713868563972531403487290480971395587673042160646554702160400626543104146295640075121313381481730782464747039695365859147325100941682652944266578345567587392868965061718596753342167180845869515994703842037806385195971408114273767305465542117118162513154341588778764013015089299112949760366188494156596268624760189825608661908012065115224636446749777497841827165045815543601636558432232461670494010027708512168286314134407757816195689846472238047661508650523052488664239091093730734739802702554645779398981581734244154640765571926943550657698048732177398208899141442019556930322640804142224473508512511404811646597483369254487543920147966834457522228319482260751048207939604436098791262885076085075292412547521087576990419775023226291305619663874982695994947629398857026150839541368649823852556349768424516035294039216848418475550022362233867465608100110249986441270569703359532988912707486172041683348310218983371871633365818702876553314989215851278731656958472410867072382786496177944900776449537802237811395600020463959803201512875353358024130150109023778449132824012126697862532110466512008222818937515761142825630896096579144361288753751335632296551001261442571148469957524818338020245704879325251071304205831359604740583035018347159587645919837644704677733026846756020234321185196218281970202399975807926458120015958707132171355156553856499589336957648026965075110252740237380009654759672041918903236044838542652912822382199080827727031210965323244643103607136778617085209687767838497854506242008734080419756804510143337501235372638534439160913268478769357690786729739119675186035622806968835856000723159825976745895311700653613587872488837582798743275506921726767279850478887723429066024381028678089835895646990030053279788737104546201864106364794550596790499515864345395696880201788224103165576700504765693335275300507511938884279488346584874003589711515381422756416509164232273820588771825706184645763210568021708452918825878259555157276985404675945226939987448064090449069628904101818656633802500247814320857920289396378722781428743326080876280615378473724443907915038803683179311380966451652650436818723253586903526565646231108654237997901905558641969844389992428346671308772846039595809429397323240715969330712020050239171578168337242812255158146413786368974041765643751674796552902410832952039104101838796946646041755934878293253893675010765018248735129443526340332486350543258151806386358202271141333254961455226636307699545869711465264354111098336509562243889845889924883206581936901564949075403901104301429948184318784449801293404392036517044767252810764778536359943212939341770101879271150852197689833101032624347715457069728228638477067843909921751809326692691862042638621401885850069719917592716570982777927288172423715508464012542351149730185320764882055590354330239578894978190902779969604981706196353917695117087378770941532495626562490110719156541082217470060354631088657594242639849011806545472238207068822680350807709480063970121041884880382021095514396644219363567562343249519174157041241885370116550829952782290742505975281125458491905098230944965064198464101189988269062738441937695496165254015317552818932856059899791586807791204210930287487445088061505891787071142198916325336321885522766787221223036960143349193994824245589712488073975928483137952321939796591075098763604281927285837759939823242223059559350892105948865803214894770992410665143606697875775906609139287332115232168831275014350075936265578264307698268897739288256252884524848230490746051732451364326967887646729885233447509695605447751224624729380216160711988233317081538531458677148986677652571493194471573998769515613816330384503880317550638051756475485539610115067502562531179757873075742030248992590650375430923328155758200563775258958202463497320495873381161541683044398727203772451132257772897447668320483884088551487322701530324087877880523601176173787172386526169227154469986740335580840284524612910822226980614139755170661568471487881227332873692872111621090627167561559470758821982353616148315451449157344341388608260913422871566792573915291357941626913161492986340208161579455401815304702804885878960602042372452965197337452535383373325776138102607593533011143573750371015805415463144585906422594985256269651072617372925665065255810806368918686832398625436853575892996421221350264268699762407813080882630827181115061300752421814445233512606008540425316822616132068547246341857426800281605286227585875100001894940709543815030865757034014586474747270309248847055940802042441243196604118784390446194511327159498894298949654257014491552169030997160969183207223600699041196278273043326330236113506340852908358767135644974911618725086680309186524342477737928075652310217328614607806195832999815617593643158989575296173023124373620986775806334776442572832675848801306442581182782057593526413624601224702334148749939113114772781834557406847695991125875584951551903023354104040006947431650356880551874083257031188792516382825783823779118674687612213192241979331931922731036027215648236502350714188768100051624406674970018783406547169379917896537364812323281043746901715890724192687087056866584328532680475590195796150917850696763724275343163003119834279784292958339198837937310500325023316422435793942112533348363190094897522715775357151838703316802046616242054998682287831309946471122611522818128754621649242453113601916472656090146117961796152792693492641660228151436211435689377294914761349931954595345318398745695506677367368723686545126888957618162833443921199648646449185782888791237423855271461415364233743215620253435517727582121728711805173079040728669606131307360219390187633908687209445591584431794042155402947607132295638973405975372070644839973058868801271474610045676424393767255250422205720435267494616470282919013436094994634592160791296773968990332081975215523821200281204315034328750190470364323219095632590450884178574683533977156132076831099696466249686833344227977896174411181708900029133374910881545036089588757504801672411070899824690284652410919722514199331156875051535245170340334749904430203646699611291943751250468097905141576736574096195433335052041089988462918810219452079447326886295585239898705902157191719696282630024137119522891145562681077500196295027037440989450732455506534201967098077686340824638258265719012271224699787489410961002178327942266644752813416093560243645528390130063029416159908558834445396744594614453391153438775605395585533814941706981350890757165198806628724185357450796793045531183522356175427110065375933658772354572159923926918040946737233044638693878654853558352761435415804664651355693348047359157111734395809172374548071609611455022237793689586399427803403591651619671272619230786272317555501022155283356335684288869952980557091161433171010552116333424947491271071929264534634205091195374786248886400712078816602521672287998048004357255053457084161127906266643535953667790145252157687914079775605279700968380849393119865815938056118601325757411220109099490734679624914022461423479740647788253404517681080483849940122566205143744335415312300787168820900053005885656063666154946845173279805081816589460679744367028140748686577728898963738791258303305554967390573528544961095555913090022641578750536985475071733411651586914619675101964461508993028367165448240352957092968657134023889748843857056814711833729462311321540300083959387840207062063041256559148105382272567086833527473970237670241006449835138207388310666644154051053386966310566350022973055835194762158589761604103692473797787302396529446157971006106167387307394044119451474314865888778615243223989732590691482224962259204993199842136900515640148488030963899060034026803641216308047433684250668143360344500265157429449445233176878575881703409103548972650249969711410469188162510293906653663998428263892389471733068999869493390316556993062828603441871436830453032233144048546151716201045874075394616735893590520880392176729291019865216255857962939076658689070659047973405443663970777471391670709227163549377126312284285481801584823290319147000649000264847943073267785538981704200768171933313201840894340308505930881125117583291053140054772191564000978331244133612123183786782128526803127588461418566889398108525073891925113129856184521174515120572731863439282805362800717147299731306988140304190744927053027509069753567116693342912392667576072449198727190436994998015741770443397327157837606918073750589082839381796002497450859597923735783001731456453812881189592189144856039384631591932825506867721701984907817943385903203996869327027412230876706987581714159013980590849362304754085378220791113007254495892386580777003012302419326077925395949225926838932166466454171133995272643718146566028658826588971247430460288650588961294831065250926407049670170214276003571442109469265827899055310936321721868551638708052976788409605565088276692277199222810179206195530969719853499815754440123485430376044270585750235366557873085699947158226966822118330561796128951831172636411851382248109568547838991317081809430329048084987266304299681252077752007958678488204709194960804412920631764454040421374038782583301494672306571077238272322318997121033865538938794672369473394408653608807982600673106093584823515772768267805935346108725308002847192242300621125363568969171079255266750603290850652099677797516189896472267642945374167588204680837217422664811088895382311618919267789768775195089412489801366762348100115879339249895080994042910611808695261322650337591362388419363414682219289434931532354710065946223724210238848561658852205240120373521534498518287460227821555847624890794094786764103271633714848788894487012759786678017582241359845377296121682252643302156463578019552870847628415433726683390280367749130450286831974826152397979824475873177648186166095898052724669540963640589929255836089498813602440093031635932802472230201354648644736340514761553469871050133517139752359311925313183079570956975902125442869510375269599671189117829237203191592736305976285416651842473942022002728614577152440184399723261690616053997506726974970228076786598049660703366050117933172074447835389957359036089022116401044289009360761617580367300657287293996940580331696252013883168277383772959059144286410104859378952705868397520259959152264061595407752257599233053134083063958563532860070200997663260473141337999417319323250809334684043958571145467263697806169030547548012891447010157439283239007237757238608664063997181701791279464554390482228914019551639662178115056205904115660482903851198051917099289813498530586966727953086331788836251341194689191882765898700207987080575615352573446935969490621856182565776281819780321917972130459964833654610330216846895807901604690902124547476724330480450468772983117599341114002310609532607387665052687246401574937361398803187955761403176138033585535425057754755103756111487423373782776426910284994484210893628935448270438274625819732159863808586454216362241894294289228222318561236838013271480239478825449100208864303499953058867200961215568238086135708171039710262580329870494514704229971149524334680701067076542931886385082061828846090398238009459847102810723235773321261876044975160445639304713199785109891333945829245672706164312566373612798661049902403344961910494034816882789466180062181562178670601763363320224073077970615497657419948628197459147946776005307874544869417524090748496655253708574380474058020895448938161487976681183125543367671048017269138079259366308156190677628818702966409896080654096557168919935117964059252576528312481994775837705356382316176423318206580620454989231381029506426696650554444185618935416240938330789787804184634246332298619743545186144219662170787802646441384630769658766290267236083018744586805476078554649876972018549590513240732670338273108533479395018360110984388618631305556863898461933387998535280412889830759829007006272981695130094582823072916954846066710644237715673273075389918454003837405860474350224466990436958360207214216844486065270202162609683498569891685659697926688531772221245292356411127564737110726116415197334122604914076702481682996527892461624536095705964118707887283759609553436619193873247786506820174124492987998147138070544046455340042143548693928759522806139203174137845555508399697730211864357391202535470985823831348472587327639606410478998783216814034576643572115359830310623151964864453991052836439234732439700972240105461269337889483482929440570009511236625172724989142245143088718873908329704191023929277352310357917814425878640785241368236238970644370840043443212700263830164137431910906775664940694119670435532767853760004616858273319567125372178997337600398281607131839376931841208172736271617813806858618589133338131321377188579922436702453848912949589799954965035998863522239136155307240820243525582405465076755994500046348206287122896740848222933700506327109628668893497235766677937088659107771779170314626601056410193357473482401922502119999122394828044200880241315369215096142070592439967368915763368345827167392470834678394837671947630749601988754756446016986990996834617888285855567035240474008661346207801890987310085738491948179875338314305908831830713829395087309276163065523871138132873951233829210280738996172199769844948733220422179150523852479725674850668688253222791640941081628924123864567882058159343322095496185390020532536883966393091862007936363650129478385888830218012611204453088402939452041696431165288050819145688558960530445224580066734645527725721358892878880096587303126204707715132235676854382670785398481077410151227339848424633663454300202719951147536508819440186657224261141953531689589727149937368591451132608405272825185891081316937512066964803274165793414410588142728035143111562014332635263302046888461176256571451358050107128384907932412348361774709139796099190974119411645772131831077706573721973913646404190518784013873639129401181364445760679566636630550639251004193466416460299155697725222590693658588428899573278332350848075050660617315938533974763757821495042106985536415098998328359884968126579216959775470471232242870669686710620159542880598629006857323663736773947658427993169866615629337129230971093898623429460988419244903621770256661642481638020843975034681115892357542778611859977124513027923406024956113989700446334613121002892327634755095128305435279650734053963832133013632423629827626315985995780546975082364633421342083859297314833997168871075783248262507769905563497900223685144526689441482870578522949023818818759995017389493634708842977070790111961109012603828367623151719392313341425779593479756481032019818396546938824553573058177591414114359091872835977646532914882189114091804962884759313772317259053481416208492411307691803808181011192425742475736297232523993453083658029896354907202088804635629222313075216861986701938077457630085203157464919982189030084753821518059051188928413245891644567385700928301063593993110997801281223119403668237402567305248892397438250470842418796486407505854704057594078221125416376296694507273347411435292726934352311195195615088108575676159149250941302381122486826934178260418651578295740177730231624716795099892183599381623993555137546017877223412917364273613386964825322469755738856015989634638750837984841098722053082371130048261555554326099810368301864833031086681920545698039824746118802769939511806856578381437082900170506432416812258409553886902252927009593369319872540971530883266174901698768258766807006282256498731591337543217098437536739454898686916756862586560270459071307299087798319235605981373988533774510112280267053352514892259886777347190044268391478400126429830765081424884437900690302761888701900915094461063789678043936398181105730070764731034984632731537309978426855320701528776320034150871275419357328655525001237868475220544816192153633977283107506522493628393957984024405051555374998437128778081893633423780123929681082622117726792919983931083745268606619460605985072742704274137154969181459522623806373774982005474664902500415030017725981340520321240581789709293790055470242072701723943921568042759678459957150386193126762531216720822395052614392935250281074173186126211066545473166192162033715982898156581407585933987006815089000724899220055902833379074183447116785098541639893416186215707707010913492536185259802597734923535249946842657458738879507521607349610510838157015674040915380477538107779071718489973798502501293333373409890337558501960433243274104213365057475923556331110920531648470475344382509136702330862338838179823448035529414043122031453865612778497684912158641161893042871552645144101431607122135686383674864132453437450668348266408892206589584824709018752805147769449945184277131764636619485453087479398676380255809062268981619499688918006854387602390460274589814055706918960147342914465832956599075045958424882000238550466510331174511862708558309813259687781675574659421418320658387477327336444334472659431199024139974066567149729960949731078864737545089608861136793658697493513137655434123214320908496226991698268002238378280593823829385966886198869681649493863201585610230406233944744786198087915745043908000758802891151027938104567734568108726170769203072789183369294554192605125359971158917700672977848681727748859738635742903553583577528773298709715554236930004919723406778879193414627917350106784610358617106777493519918147722236196648201077496401475195817904422546126084269190628790388823850723263854919340997523335539679230349421332363130634175718053431742754608307321888120494363311144987217482653126580776727805040997561366882818751446733694014674994465469617349921447935079571852696378251407768732350875280579236959784540864787707804763263865274611770180050584900846226099584592814704368894443385011005193151646342043512569728660083909147402603855544221647268063431418971065967844452502547937442243334786066071525471340807609632878128530066630331271185399983861055899098509583105862212623751168101223428538336769272510175838643915331859704948932746530622742027213300718175303875580451942239542468748395288032969672573216073705454378910400379006578794162341919659001751074600820518581150845050190469487674409614808319014673646547031256413801098861032516959416284510073054955532767818748982671372790206113682566314130518277465974025282133451187120610425168258927430041567564963293843410141208549972790342036851707051116387274086764875928029059684619358130381224311335279396747911713597556335061819859936116674503201654844812315242835750862863613618471101143139726245347854331774445476122164184039406192705074850726496238467458007768940598251525165937449506976068992389504784458793467205217653521497960569504504614841425437210432529207348441657826406330378267753785113620774885026334302531965827631053536119775102956718642619388381991963445835186485811795251644101574281783495567211367161145200374324027245361432873298089205331288306597353600843935777692417594740699366449130579640568378082934476474174301857664397669101206711128093554239662843093844448027055406086134511959077502790818760725262249691383836690710811659851232146504247272181788174165409836765311538923985976423880038397542407750171733073575238005400318626687886644494693477194244965340987770856868332842844541588682359018566103947286291394226685376292872684399976051769723574538672804999200999116337613510916129475641674093585084408145462942721273420780743118031919706590926704010805246267630699513325218471525632914825035308712955814117581328658592293496768968882222134945879500745853619007906138489115557764031707469296971557382310878843084076944805137969664184627846412230222461839961216760874114471743748586628119851619324217121862035448727325710305977602422764333697548383933388581623060775632768159541183312733503415800440511489350089520453651242447928412021326171133392105284857585731049977358448150928940017889163483395206233236609992836333322623428354270270517791295037183389814207706847676053875867205115465849868991299213601026626719431113266116381200328741989228937330199289142881602738146397955466867531033153623724219046640773295875102503520054937115653192528826248760115104816297133959473080273110550851009288683773337788212039924065010244238792750121416325477349087461947528476445254943700336744488689563285944080793624564881869793320234422004626072775551275997236665940953859052689747524990415867805891293431958657364709538686616877030357658889722974818185467961978626587699071945325735515141658912972970292722828080969886755465646644916717072821569664702477752965834404514365076313298766934948654154301540164947490312294405376565144907339120582467240384392633376557699600254175191406071456612096303516560889752191366682992064187515833874700922578426782265407103923876390395339585826389055161954151144891232414146935632524912050862664898283867729630850009678905229122882705355796736034201134565153151711967313702628898496636761588820163190344935422095039463850433507468776043742642020432142072711929192659316880021944915305921255773337102124176949593413057375806876667085871648982180311688008563307643222487958841738019869590739072926693450609699902839659662912509500973487836009063215850753960286217467365377831727294200246408316261394884231394533870444794575134085310183248720383917263274812631575460397787481132607696709414125117316749246467339324865043885103307521956942429579092032634488737811451515163598451694941981783071567994901442637499942725921467168140071047642763163500361234153035624307434847072909302809972877241898073456145368320853190241519972160496039992131682787639510478473445564964948775541735048536495319747555563173012483759975828639945421944486300945093050766992827205352883681647361874993978003407364445483921050827153093583678995581046189853950909481689599872805818097029483751954069772259065610163737945414996489614117538363363593053302158431085787246238403357315210640905021301050368023121512855692786451652548138269400799178010021788122756151684285802177508233923299515871187804608848266882492628503274101587333435901642784338288894674655971730490082451566992806678968801647970632727824468831998177789600691190136304545756378280670867519000126045958619708880677995435419663194331915135212510846915736240910135687899494809641173684040829082794199676719681204867075573712588808622490614520170801747942217276097788157876991343101305452251911546315150714216119660832332911340411172449430152388195331521056605752864992932757832464076945062516135229893650076061138557550656755890680536307931704585951160525860490396194595765370159734908136495181334469055789173988650394518883435591424748104757820578931766506547953951502464125831039266825976261908953088100176614723038523564751392226394424257033316119199267972479212799831137000896770150537740006985113278365421197311758740577779278306271237433456493077905853342788259932699767008517992477105478696680637151402627362914262437304714500598489839050001622306784073364747392121925794441336495847819195199347931491755177731792124509855240619385774326466448389247440166598269794787838152022335824705534276414944015512145395978704086644667423948149554943384351532516696940627160360968508337991923967007181274469369567550122508824069473400940514408255401045509045766968629821432749307627714554931471780794300018081032314754927283797537778993017940563294971093778501823316136262939358133392437807554319849066343749309168102167289401570742792468807665504522592351804955247552068458678765708000969893012385955660363492732432034429026961228669483579333852879088619207909818114850209252041981840118165612090452973541899826722564867239384598298274103144758143783066401619533876462244164539407170324908719964013460351001915073717434485890906970093394006296301399753748647496599285977340292300367467911406149379124317432118260150019722044690265747045616280555664694786397826938514054674318552624261531837597737756106033866231658506630749243447214872766637986162478330674508247731150310021110883300896568854974057727820276198594293701435504194740068914529213168150901820902740352608397387988208586759912760252213293468677451250256106940299318308012553385896252657231503627323594005929502443418661729807506474065979008962752219200929518423766822985676842199647077830960146799881398955987207951105067841225883419801764395530277321702700590156088780875455478287146380377081402043070512818436592137188690278844589613751463267273007724867810761438728049883581392681038638086975129096612692336698094574975583987645261131383384024086294343063469154997539107487494809733076054351898587353362268377390042174219077298876928994962940730368191772855882970607991312026306543974698446457563309832388043858016493827079918504021042612325313389939846545373573475337391767608664311484856613101831176196541094396247985208382694428640878398761271031847755941318456528568870627268092573140778716432802184628304202259902780490839975089772283925814261351240990404877676674553455050404602427629355934349119087001105081169515354837534544361826110997331788276767059027432675965348627597624387473191949956716643374087213227188840450031272369361349608353784770657829502462454193673043339175830017635654851116638978380212119388810997001731108502812807177763978185835827416007047092597829426550128579891058554360966574139523690296648508225462015085504910938271829386089150609893594948162042817071103640462270918387002321608296821963056122667102867906568395065037694629997512622813178192903590737233313628076058942469026546739458042145361821842654467537133034661790842229309096794240208328799944595596211747436597742613816806751003510496635013898222400175546363254185893704670307007447940092402392740336351080769253459746365853812795834406761291400114598721455474385290118127489248199340674951219109186148561309278386414706781526865938271563132779852426282257967030107822008319962925482047606374281679373899896200664817575511126970903502562309293068924498751080230878860465954578568792827879107470197760339718752671981067409205043955997702023619512661961168186719757502242354992519929672788262435102478813329851148824618957865958791874864688242679464460627279324366379176259972515452342321538392566388351269540951275485780648596322050872447636970848194061950731901596231407297508202618922089592221329205603070522733768956903831965098512415486626075836871419180885412753425985018116550260034419261367810313425032110326871843491769713268256476943005491286748657538634754320034602564354665161239846276240693042370097255865425126210166215792097454320541804246799969992617357343531350623199859067741279586820135349636147911198558941942489370598788781313611375768915203692369219256289148376962962424583349152535824090205541911902875176257556741365044281322764883151115069818449016589695022217311425688229149940081468467827932355862493646248943759361638526605876875723855726915694319823920606084371552347107305723719963201017572922076321212730472565709047125336224827370116608119863560660955321403390220732981221781209079142229890758122410365907676009261903034932911579521663039456874701630750913428437689670123119878805535730502402305262450261329773500958529525328555028487654826957850065677556187022569251091792335539403255741252671379545930265289940325387861963048233872937113677581613666100184611868015322649382095425401682379836690097230808220595087916393680601897260312646014217178098507803833849363328320625112064351851232636000314333835437037977385329538668325161535846315486925067956734365242847316302538871505487779361710426760643997345346367932404482021053686829144193891521787585620929594068612771764332974921239786830508758899417982354390483465829628299829507183848151712651314014695990208602626673324802841848894813752041216482710845338813143062579741730615743115445643837565069457026523204123906833105711903819466838308933765109913792077467269896742175003051266858876547152008033110199969308323280718772594541262054234700589050392667242981475716400340004800839455262945590267747804963358893563507330762090595158850375289200681348005844889719825605358852825259319446476711276456091058638828141003343986397195660411098362004312579262399910761016258807152077324162377244373148266653700479368264660919897908062625730697551046255749913111727097395133302177423471687257807404452766819055811054488243236408729162840833912710617537394577128680226000997545395811081144953107209470697390352220905983119632426657466077656720546505145128748351194534879668379238468251642833483301413521386379977760860139537281034198860152182992487117555730830848253101420208742875320992089687711532905474958011964067230647084334197695512626065966636616312322573640798601350950228447705132928651676825604509205854251390960596602931419126526396008083672692199762933604907381876911401747796325449239548848642275482148955971750520503896028115879936680882202857571235246443363170282249327869880502024628498717326266508689975764531051220143538630747315043817252390635180795151964375056132813968844269938641588967894953535160664521992091416426533816190472853661437018829428841173488437615006816642342740863729245255691782838730652222967752301007678917436964605109255452203740426616988234722119025160536626570721828992457722543728087410058847921395627729719331922413403556625155784332059317546296708497791785976260253815582143210874969485409051708273259823167095576210830091188694777383391898502537466204783036759945928042596502605183202964730767791854819738660337715326218813621368817966368028320659570995171306019947592823560321251159187301702765077445471569359460446198382057555659135871285250775871310728535511997015909468833850345787945542780868847000319747094785541554841592104416081894405654236079474395850103082216000805292112751319188396521172368190549437248511749834031223590042031170516799917461423449255675680042652389260546609623785152131297574093257567640160158077280753125678323049967986021001471492189084965778900188292850325536134069757662574692217237612157905241938653708478294027478944257737039816122205563434015938711141113995561542565909682766867396742264534251366899841614015912187254090542089654424700497054397018459998499879003228937916390084372488088764916514620289222686473416652417670515397738758495573300710473489855213545932317877442221841536500800832368288822282601488588933482158364871227305765986894383601149515576742059016372985529075171457152848150892035301514796430618230829875155653196796344021316378313669924862404281518794538071191292676501544430007934945349561159174472564136035188392164388095872595265485653083269712969452661520867797293042879924416180053619028303297748949994092430467369625193473094882053248332189243569900619572683802887596301114937128548424310721444780801473643501711022777922422362975321718952620856652791870561079809806426253687585678519813504718135602737189655913900069905591270964526380938770874072425256954122308731161897599475999314936173331534484078676525880960860075617515517650242011703832166136363733618377672951369901931032438498764111956833940492163221069682486008230840513430356463462508305539847255999543324812147427085535280550921696469387026160448046010369980118388628527148483844023009180520061644492093628932048950844618309753436384352869672703338654068247011402815659297482776526155720547926589971225414312086529817478764311236674333192221731873533004035934915311854593675607791340196010705352164192684202382641845425638280005155893282865859615254115742754163637057311898722382284985440516803098069347413642940472450107463397195939379157171678157349200279268215558057160203368247243727701843968479688548632075982562585572735918037621959413800356877295215490379176095716521318504962161414959279108292858743075158596789927391255925318512446961433925691262206341439739052148210272684169602571879434491080897445662531763867553637132804839584059728556847995864726643832726978436289007144415576770056109195430265320688556336059187707012733380517350344691264955414459469372242478571801691192310193690893160748690903525818939731580437740112454388400831287232819744626066377743253008324221823299519511129846535995220211980577445911187041583994059050764368493161767230682520389608248235358185323449272994392084230390321277254184579393523058561922507690723329795796007272711331388457908906919539619948459756029809389466419011363174500265758075560594423440802999473014696893393210095569317557739811621127172489857494431130261790279834531797523151112546637132937780854490575825983390423624128334442070208273916171327406742025906002256431308517272936242636951783161355291899143330432375040138171234871236022383052730977546040078354061648120219514135709771837186166843623757565249881187590433761363121582972966825402560827836604213385387595419065694538615750747680580968682015048081931411036257108577698370185906909229220365698587698926571376221954791551281529826053030142892422191483460391336908930023204438862748783868060798636587293747348820126437657688043612277158008690671355277141815756635314179949895115349732659449897020541146642080102467757781251624976642510023929008806642059932047368843481648257933428464959083486610120000791277146724963072099272244271941953130798365656417547091121970219448089918853435760994787608019069124497295078213148566935319220100613567043193154764779880035360686409767689898825310915555694223284501050098020062925468217717757237894464590976802325477031342505034026930465021212598216765380267496338999264166997391545979841045055377539104130661926633275531563956534883089916468167031260640638850970970242793676274438467207419487287240129019451415351940842042454078028493516080345916668084166729999481305343701181500955818564973372460832484211178088947893016773666151710417431502884391378696155177302696209502010799994504175515561560117612021366305650766401699290120511919624848864245323749173041989712162770643253706607194498652890093954026372273596429018514838462137031781241657345087931972450661381773476482914056546391748649161089904040678691883660281983396383045585137620154019015431533340793082764171315164907295397186308960671181720471540272512752999214890437005413734652945758476202367171484531899763318861192891734868988745274569272471547271551460412795368206682510561378415764240030210618529294609376976791507494103595390357301200467738393378763599139891197108109271161287540431627090183529875015358185253743871623339977797750975570361975107502427737632095934851369465570624713513611655096330285614862404584851481573443298761288774864340209298894867695328648874379951427345287820031084582342977667090895135487297814488227738582021499559798998344173393358153713270038403680909247900347581929824417430985916603598352138009449074282719335036989016833458341853844395905567340221662750263872851525613861291941777279678459914754408595935590539717200224648267616140562451567041449092577294887737648398644193630562315686164789902331721185068046903391644309133905022095655274810639009832781084158471554690579210140837271248827062676125416661917987473894234460216014369754779996012889706967561367214980449257920283201799818411284476791275821065322205183308796598211333487915396187631392315676177695149514113354194632721033240176344286716254383836049031399826196145152797628371612129493613871081190493958311728901816163652927912938624906387894743784179469830774326968148454631412991533835353162899547837719609081866079709921081662415374564707248031435837205460469686356484127164833137060091085836128123125499254251564488884510541609822187954913141478894481195380188692868767325367041607928089404656665062981830161030339439774545612799490321575986466313283507720382730242255588973192013827256122060142859788210998875646132786832916380135646514562079542790219608212824614058853298651551012075189794469359841285035612597728680820852544845496718559633488824256770439507241629957970788087579719003088846575518436099013709986159904583402745683320660952410420274708322351378273436536017663159910977300590242777245580117077094611737703215488302931892936611272642609385708845581007324850374977646337861398971463060810313509205375355474904477370222082179140313221861509855384832679776870392418727761505944103971570926426486558220402507547002484499840252617592838613351475825061539148209547943204209306063078192356275088139749200080937304510995097507355637549154818986279630650702428049898792084854648914895243651025632100369448679211349028573301725427522209253315834258975387817529800516207357547683535174955642540829602376238169674445100147325175820626173920421720543461137767056345795781883922165077746587270539936538054753082359435990072667716500485851223409535072278240780604178736446050114275377646272239678006909662835623199296714275865824605903084134452595018313208774069154253927680221365421389353534769712455401967532208040619147070739610508475033938846880103567055268206960118298872408677447440506221848658182291031570238201786026543743032600232664270143049381576827330620562802073023702563511071146273983685083162971720170343407940382719222023343031099440571228947872284432093199607352461872750909215646001123106585803597570972527212582730429237134824014251734224974221632557527228685541048696078539615900355540794710710872426888311446069277098831326971170334334618898909547290177996276660282560202920195504373659744753445629514097532999741803950425620048355621610791859817333111408166511220023829662473667997707241195717927028562404619161430442184326148013053827647661692504783954961630906310919230127650556668055020910473034626957964074315616499909055781310640971995134202776277102015897088025914612649330791033098502434821253379654820086662304970954010172172745882797550574182380611364179890893063588130529739846404891614602472366914063091871496233681911180661939491442602821478587130340946502914534559762289808124542664250002941055424176481561659633838151009949471994335140797874111536199940635973609068983098669310554800904295049584356834239242482648560835201280521882562382027793643875348186328586493455594222638216019468387896611498762256219096804757791440682054256533145440232642682093949387252836391703899009739814888535466935408584925444185466914798667884591315051766015854732259068582751855250421084870759428784589417303637756246370559494573540045248109154230471794916087314364795272845896515344694480090957044318510597053928720687801461042927520905892668920116460097053685953623923210471012547539462877184075220463104944571146357624237867574524612967676748430214629028981727659788295870660547385276598090254726901723526518318907512559323593868232519152263484471133423654924845081946412112630032820577547850109376375808566173608903364042220780794021694180250662110934911790986923178912361588028241807129442475591829718651292361872678903058032269730511393469366514353472972926256109428219637562869906103209543364342695312609983586906667755148490070299341501640265001134123750087023080287764545582569726751846294569573718554639146479344504347792144950621519279523212762284099170533537789146726126136325345569773108831636957570754648183685317658451823134378323176421837343029653636013039435026796843261085448443669122891188926487084013085994351227002187548808824204005062660383540399757317652114976032419085173344440639341371383867205838476169787351332644980093139278652807278919185588034520692191819721385877446112434367014789630813535058271707178924021629910300445368250535800812125297338104900413185935801509624621760350620084042468033356813295742203541507239552160310805868999849319234395867757374025397034486700722779795047054178509189199928228509048918968426473976099841941533943633585257689334442576345719341848825945847001375256753792169349584831916241000467530695222115862733136700708371689400628676003565521039680354895911777232408647690944688338166257759717810983471413678718093056896891737056801925286949494308714042387504673267875486954077999344021335365041582661923016162401872364655854220930796508293070613267375680877725219026619512743212870742883625902792131021018689538335354784668397087488237787938537180731482317687263393590962432447037494546239525191199493334111548858338614763568104298313340327773861339712053306613749924876361419494795134181883239267064344736196128202620142330901646582095812564952860453887520446354007048678464226341845496460590159631799690816065769112425177287691874743753339916821689545108265193729915012067870383509451154097888643967823312147773786115385322929733174043536460286180731112383651646787749164158511702716984390873917510814730231251464565709044185870569948541648379447127218947086537112672741688140522793898865089159319933501459357940085651391272875072908314177041709766563729884588543266001107599997994579788667516204546905218508616615488475088504051881090747330103132269195260680735535109808243463145360863731492513039758079625636750762395676986712035000298514479289093523880201076353047510023161933308603978079116034020772317925733162129745361674459539616564241646144398660771537971485822348301778963450390851702386968085441548226623168263152188325222250776818179429358957207235076769486506969706967182358053112706987685903414969960506453609094152180471017643868996295987798437656290758871605885243620842116783364029391135163304671279541184391815804260277753415595266007717763418040070960367748902221568000374791886198832653885067897359722472948476000696533467541882170694230939184047516338479438066212731192785070093880403144615592791025368074198204676385020628232443631326140200410934158202310536766079386743560330123910586876927308838349006417449299460341994243683730099651355810189263762609861444710731194789675308523254543406339190080717211662643593522600384318523623339576763953974029514239627712331152698084904399815472517373746166799712064821397862804544223831783910679133426470567775050584159420014293237309311781561234347112025724495109619423478526084099461042232823359675735208055141596037658337435017067236349580914410816079698917863258344171278419072176892542335015051644851366147079655268489134142735070380668114660692984890614874482246745262225346163482340167593577955009954708368404408328017230974792327989590156580868366561648671309179332450034710136081943278909221955598025187198776923474752179475840894042720830641626064989030623445742858805346943743855116805824930612545981727557278168438848165535296572861079385849819098911288731451567349786294964273715361850206228565668090668111119495255168227465831344043690801911282826561735268162051717018426870941778849387617415114020749652620903405321329432572305668641376258011349718578647053857062936944664177150208944536487542880660052185320339287007847526346677271631020092460235610312729489794798046815749826654726408592536011908889327336207412437073951548046837047140832559901794485016196072196178143245332581458534459942552748642601798624745331500100914344925132097316554196265888858536616892321804125266379896704530001091861569053101188736229598226021938520048334630058672667282297316848576717370373993881110256622472700618014084190031889797443634944624964170509465397443571393065678529474989285360122983320349591784770893760298584628480918613796549455289897584758553214190427313947732574708454810628817139470595538128294946667253901846224837012206597829710862656501209074122718571051807395166008735722112073335157548254492401406334978390291251447320437256696069048842254323181962864891338976353555067083011975272652618793385376747598883110596157147904582444696349571971128647289090262759079099502800265027242907896247484446203403628946944164026377766600977331933705216017439128716997342839468031784955218257910206372776633690148206169537885019324824387510591249196648649200491587787830990679713723280308032796571622167642500019982310482484954991665248579876283884431577368505641860206369685510988178450822703840612662959496191805789146771072462293188553957384827182872967712093884174789823015227968298597346599703554199853114682744257111900003518459760313899238270081342672797060191318168205364338925453357610458317480051408484751760480309090169690780730453237334156601988906892638140568147851115978018237902159185892442592035213384991589704208480643584937729759668617887544398475517590458016227688371562495485830613102305927820965253257562512421804679850421187264137220112145647400302748655726656589610853535125648436153561147913923461432938356056078489256513591165878746982744326063136731431756526340335233405456017248495257897434655682030495062037766172678114734171205617825361672917809992841697564889301968635035022458149130061651916290919733932911968381886780784108479359191011566243035859644971597388673940534304381276071765257398816247751877323789290449823900718113683135130628320593690681457214660735672819002409589904575408019901137732076304561443008149539374853717862229629590763989596514670663563110543567582108493799018836822830106223451511659895742003739217979396068320735781510181099153473504626806476490396763306811953101447658757338396956868353392425526146668779094750837341444583521999785784202527390157501486071695095113624445675547436466090948176746611936104804247362316077023184831649599498369899082583089988581227938133823617664082768100676257094009908849365255225438938459314779272386473333991761297934995678291188326520374528331984658493852408259387030093182934060777627967982145576745071501916313254663084505910104812967468728764358184868353094988744529387681147040264209293617471353489315077517598366264500794582688235182925454736348753490746001182253984690464304110956559971557905127970392945395223979867475039307118779747652869531595221143236161780999184322831897048085042835041429168602994792799379249802831083060197232207417267008663840527960261937208303737198079821015516810381853974783328589107453587314894678941917580207208550317100433337314931732983364429062720715071727725490438898156395787869387537536066040015054737583832177664432991669394665469900815965414316693066845300680189499740161393515419532139597453411136308679238712681334361401930783322759304865864238814249653070074716372771123798823778220452211897650664017360245066914391062794622413983115386215404259235453244873887408979004651311754174620741141209761481020105933322265150476195544622638058178144608276437061344669603634726464029912224724542386167532943048799267781259072564095053392942955296389197946993400887060522262609257998610548902266055908752901294919630160662337925043346095921925205570420144680145375096270031980705331802609060332174170139661007680856648691973410041414273168198628069774312628487063852379326735802359782011496351540161887242471238670541387277281136228000443036657768264234658572265653726907709757085627591853499941089611633519730023715228883873400205536717444595712724865143408357422771590256943839549896715130606450917535611339361303005191903864091468614312571587977423436605410872907453044796406949574089225230408256660007105814506814347229696746901591498337038275083479471099883163674946087482416904683111531886870669517154801010443669933964374622854703921772929522676501345146561175767414689047919329321120665406910733094660163606858911632807113172156536152285546463031295332321354630011404782674935711566332002141125457648966555905869493113922209725084551830526752969341284553360872175106777568648565071986404113845643464549517666126200915636123370522640085879132522902345543219538770666637324764027407287299655362198357277232665707829461668038063564483526746900622417399885745500618903239402706120312315502262608059348429707756715858461387618918944932629259273205355902802398605991138230225468963302302378575460808553465454748823374758209010346045371954221044237806309693270328517398488695157558512992725700073328924581163200592279951283708963215592608152964855067456208557399737817324731056623824242551524753712269773193571251909338291332017984123654824507950845967942438282183894838062386679615156393926266873932948590839800841869637208024341976194544820367207953160742337721691844561768731686640968847473074661379555461126983177924233131963536399253589835752674200443890510440833635902917439387575793349858345225142474660025098898955556966004826111158730408761630366981467474155087029669719081778853872873892809168524890672355600123004295290035322607670053297046046814974731697601463719197079718631914940448932803668467086524968451373072994623482777555961156324616387375796379906768622397311903449049351270880680103232435752338447127239759678942521859445534703385980112880396788896623375419832029375687605119799976048413735797016333787430853332993756942022222428838749141115883878271534141378241962218651655376564384604219491768469732281209762239703364506284510859498187406121084822507324517410698552253646729946539106058551812406446979217127380362253947788424039275494628081762358950025506349484756760527366032728006632699170725244501074515688013161212270026176247334511928029711477101036473651869062414691518335428624648549232592814895308910862197896875194998616141650313930019149556038847395766853049013746415805686552426143521008070174582861808915519668976175629726251833951064892779405211289779709921891710814000287692321282039685302137651526973684493213580275276254257347626394516800643269165302888756033986932799953164758167071732137644455589216030123444203891476975796994053814894241569185905474716046906633216692753652318070141161384287571657334988216007438714031927770631053152258332975703277910232407417190209166685929510072274920951351102721058959954359165309167134940622006331998458158601860495025677180844992847379729044397558938903413879898975545423792814371305555206742339412985037654238351985379831732879017506193209360209622699059878410974537649978173411285678289565496164640809431873784694386066943128741239699214117945507415426118541733311331955874445922316645318892877378630668768313490032249183231190898677802862299782420991503698984359363837830127062703496544339092529372516125518854720065861063052212493336942738314330834292159665056897357905201438597578202659288332467383191648932255557182929433756959948352719063089016097020229629342499175419490160958615991811821901406644704042821467360572947430877279149441928390142298664872809090561956120855087398098488110179991522851493719802812369918909675249540741647856626092784276191291032354993003831538840531861139801684719607445399487531203516134373353666689713722633024434126118271840736714151127100767591072254470105122549422694352272009339491599033525620329179918166802273349216250085581626070824215856598814536644372326335452948669379420378388759036176504071560438335806392973249912785709859274953682146179704855051375700541040261882057747611993473921007496943622186147928224731814036385038342457081514553220661616803972440333263430048020798302068677907516185728834278920351398098268645458149533865560930432639031914970032155894403544577711063253589076364426820001452325040504261270651046464534352045117410296269106689154951633100529024004497448206450838651189700072535167264619256423119182292325369125476802544716886583549151111162698860449046653111345706936451152741013628341089762994558166309086760339140384238467550054000530325166168616148807413619141378226859888331168672340960498034405492103383929718871387924085860880455957291335222964646345217076085799036174658580015541546303280286312874719574585229176259579567193508420035859529307625311980958611793176773469475938802163312414070666253552641267534000559775177504776689475316287391371150789294958630390470627510633215627233990271530107208066455206503121444992861316897940892069976924795735699246598220196180755470095333737999599002757525419490675320355867459993453503018016251833889777815764081698214822897779402605432620716925271148374438342679231659828120657532296890911481188876355904546281278345776633535230944413231299495879450143281420945961791074382963649355680141498755025872867159761792141380340083234564777142975192291587501689530775268781716601117864735669963725392315401089828684483923004623174027682378295955837750497633857028503656994313850721502278656698596425173371371280788927122727490903770392439081872266427363007897985648700578283624221963098998025995170209656096816661671656461952593876740896681290535923036363364264794321076082873116641902259510885196274695836641362987864025276805871248934353596065513803140903173180271580170418205175320073640330199642355935885847493781808822897071970594964045087046604193581560429244708026619272475205928459384746457375629518869496982967003450013337934568166071203121989594557246681195892722598401418930481968480021484210258952652962521435477633127125799236188104619005622358609184897143350517233536434439367970148291340173057783228597021068707970441924549782628148716588790367726270505138715373180201537929831829726979382681430818580067401023760972839825118692672145448977816969748336880478277785804903452074810628860617800321705645125193772381720144788025082283620152372779129486805992356845839745448575507245803363198509263132762229590821467028872629061579323731737700256267325698757586128376617104827663708982440946249619615802352416088779929756111143484460835841616206846999376438695406320774737097538023686075965148930191042313517241407153778096617560634327730155988870160996285980989659511979026418446997031634465970831826247516996270517757342197206331593258477188396519254333131191468870391118990389725743229196874974174631583675160354518678441463780993769117430419163266530898656002423694305606458176080709064819705986658618115272195218088644454621965355327093707662151215243742862165521326084032855159825294043047903612690812356111915955882793145132743922819307859556145089469785120766314201416396949709925734197584600628452032509825293638769199144246989988743268780388688498233353051130339949172573963016309899684275755872847548700487807092064829913967064363679691814503470086122920679628238948786695867104715650969341444259833911529706932806089578604884608632757800263014180779995229737752405784450848489350717853176282172219828422450714376809235630676895088063299493146393854474983783281082788991536860203188285990551546373125827118504857248803982970190061999927513858801411455356221678137095795958816830157613400846656129312026741536909994422825063236299465095897106290364186078619253439825054048185273573592442497633749643602471787194586711935493812561616364445777374312297717204967077401696017858029777565771297894140239332312569983730246976194753198523289375341912438037112177306180822474792771748301607632622028471583926060182734474986383729660814455676912252461177476980094842826801332265773443136994209192688816056028308779894400431484800059034651858284186285313861404274465394170627278176382197027700924348714199042962703387797560803164745132083462917134934876456184777310470491279385391247661555168492726150958441711040518395120450120084987864319625748163704629914441143768558904629415129584074178434301645554592242392028562188198388592158109622429865146264693907315249175859445583195901919402587498299139860673054569942380365245077217083960607701518193238009246059725822436399540341648222064080495848529062890535577792914546854432263648304682292185941277885819693484622782369411294605466382411462053982292660414766860774797283236192281830819023457547457283243037209308368122931776628703297671146397122019718198434722890303367249664538616438745691091740300900726316312780951336578569800025199495965034734918322570138003983900913733923001121610810461794556235969834368672879714784003559956053404825701146114909675929318624815091656558730166683267968264640719380317507451046204003171151995035381414475196802279819767416282400079127365047526129914713562250207568202828442722206097041286335721205605988871102715847628852942168959585784494577019261263642028569015358108964534849700639442637842641178831875793834867938592992766450315105933976522700627870620902678572723194540230179241141386604444020275314932297888524353055543777525431452059960511278321034515458810972670019967334316184558774457496557107448953840069826184334652784426875934845668254316622841977530154310266866982647600483959437985691818217336098000650676227058138613179702285270501223540092242857577073691009146539405575323834740712307827480635292336191640112708682313640176569870598379442795408343397193798223374375967446518295707823977545819360513015036489120390358144471944809974184377142709619036682950896342203485491385510134465682649966558129984655097416954838742265016389272086744074498595643127265977497419393827395706139442683995682643814280896434157364971437987653557473509611189953762212497879049621527531434582283355248123754469579993064018330118997559369557183266426206468199708354070726833082359166552682773949307274498830766682663463240778503964005634702593774437158786737756119987763116014343161192244264675218829237657616474683576759550610338267006696443012489806720328611076720339923220513074027707393874008083950386562363244536758754817986086780614990769441172698937434135787335492485938137340339023473324935344801667752281027694710109177477699590329346875314428846315551753486415459111649246345064052454468920190282403440092823298783029991983825771940189242117526894025567674992393008188900919547345390758698054008705773231234274859565132755060773275322049100723329115329813983524698324324364145706236432633446327939854918871713630176175257950463032789971892405817840679186983862589087397317993928496476012828688398623362734514787876687590453848904283937266520360738079165854812774788106377305471929658617523854897455696530694295863077263697923297491633248402186420066016861965203757150141662920766092850075303184108396817275388369219594858629391531851694233333997255351795016315486581466838456758669569573219424917641627033474652249199341123442535137787561952755041687942252609110636249866853108962953736585980196226746205926071489820015004215683213086227109351289331852382352185970919110467366309812068465610091777305855590990785395088487883271686879523843882759183732174009747213485701602913935269690436280566336614613354421058325508181761234179674575351879710793572759651572111162279375257202233398081704581063000390768857302575124964434813540347338010740537137677958879195612594972209180643345001339155105761408119886567256624626064735557021843166106895673610954803401152184131834729004773931767532503019480027563826869819846429682671915351123239948289932144056196999777591385413918390443245734191744417107019696730906367669056253694725630949384539062446335522437075064425605067452890113179690108289140477640375565073948746775836498966556734812679813198516962520034055831874725995103384444571099424254659843136700330122388262037435051579267458285156797583162803475569248999671221178100549261194213429009633463009533264421322877721639267516020425627638204298331280805678310023353148324731889929314619396954021626195794058492195541813707909208513004886661163992379868392097840766077332183427504866642977754595818925967696125171659339420073264295672151189267122505206071340914063081684609144305484972626130413101197710050371165806002780769339163998221943900479198103397986830005716218593001994133269741809829658003841448747240275843346981622512233364950988496217797830295592305262673181006248832060681965904483218992988544982650403530497730378749037669351484562684885880933062781199303181900041182791814152168517232255228883826632681327807957953153158202019138206092104975644271073325647613291493365932496191522659134652426750567082440738718248835570798473736725907338263579844451556572239053379018576208871072859115275091617462532606833079581470154476251695024818025536630133340805578380488897507495207168897739774788854014585957192690305273332733140514574596480215255762304997018448744034435577511780024040345191944713186970921752553415322046032723484456807324581904225332563563816667326311248798814351998407228815784131245803316845519960843596133685326599689132903388068515105725279918721748491858511127037536593302014352672077490184990457633676140783764213376404416283850460362151805260488559177601693754670959384795626483551050866871738784446223367672759552400894224897581859076114980709566555590377482116290355166137339470741507503697475648311568800294589984087729431414009537767550346551794836545347062980178436497586643174801087387018500361333208622634849738620677101821334177341526241041021154049380841116599388466439980302598874056607908125466007443818230531585357409207668103446278324094457976765896816613502830899241747084809042923728614620627360176538180325815533827752908518355521836023162970230420087685688479901798727525898124471621914672475852230280244525019113721677839607574508527212237199657836097572090071252757334115253202959129422493966022683355516756818468052247736229065428987329375886498668602057790814652786278686174277953799056592191856235069455551038223671301477347643578282762145284998398133740522326798597915151452764304398033116142026644142323564996689049985227311484337098809848377415347584054363114277610753075632773595418688824471842711629448897050936091444646165386376954569926557180690574768181019984776572409119126421017944534994523374490142988176699766203466270836854500180424942065209348876739579510537296546938761000695919592453162059539988284386189223278046858027210940056331932865162140760937233885158968493777223470951916207124075006866115394488376000084654426417064606167106479232345734885758060284484515305680683281331570328354815490400661533148151869942195138304769909000652977528133613671044536823109305244967547498255909060943332622985731980825782154739927858647212400492328572041122200919037187005964935356799928746011713413966323606646834442270243903817677195953001148099549338625581201239659487799574340558584308399189789026466215042174956668387946503680165944582979255751173635183700103273297913365985090216180575614703085679096520068965949777071760512286177874164439153122419747445190081357029392015032242867225041268492347182564627805659406461648283099499625777576166253868034386475638549855144185300994349550867716876563094891608757852544498140133319342587354266641682913369847545243062606809435263502287935579028889112386593162734844585160931305894994382707314889878255828186990970835269256703308505622171637789328069898511371235600305208847294811531028530172266449581007716132372661463256744349219697793160546398590885425076768682188760589621725976134831906453637942571129197837787436969325068391134795686807238209568533516377877063400338114384228955426668490261386996227434068491849316525152205287654307522546246873886383639638591288524735942267374136183347248250049057463158795049934997962576650954514297055909711496261992411019899439316455966494344606691766607291052515042077751465729554432360755187591446345994281113426826124309121877877123984210169251958142895550526641696945037217105430338078599670847767873043900578159147969537515874687349477780971008769631326200235501891513566145662182922035453132953320723728878865337686244875395055642945281808336517622752017512475379376494342026221654306729236722413482632234372271877345410970889016349013134884997637922699989575469387955032437213107473044309651991996592233458955455890305253243726987591652810354923195608655244374288204146929353179168014047511546891075076272296129580713284689936153642593073227483987244965768849124152290569141782774668211201472055372694321458193466518148225771941317348819305112075167536624833016546092213841687082516523705134685410238627402096825664137507837075475659036235907972456804053766587906967966462205957711851803514583213024339754125957988106572488175296623501471980470546385789442682121695879606598646669868827535160622957454806464648922170922079164054918712087224994747910153033439967883070858480936552880782167721748923631051420282310075065749634149992473590287330272480710982047147593471717753314449777819976942249417247506129015740802298676606583332035487484252652708692651268053156949399521338430366254801833034764357505408051245785732603646944418924842329746412473163958041802842718608834271604654127323429438075441875720615441747619387572022309723716416490705862428783236616540479428106567654731143411429323290977495822673267036794743286316350937960057128007477605108181557619156679627419067314158929774053059662705018191202399091365367333707872074745795755940883183298489182873970557469404879207392209470776642724589881625419999085514162323190901367136751154903037258943632221905306426176389228166394995055871436527985311481570891643352007378969827058677436578985428860130580551092049381235648107926556716528698352924295308520537325628141002861279364593235333646259201821062202261325793978908818234639948865938287346940382779942128472399983560765812233156600764461229735476917720230763332532411514348736152954177528929256736932815347679897798768462607394397407107474153017261041997925102424835642074576646165773130468381480434409988249539131561184719034018179478644768287235295913251044100119206256913552100535305436207792697783584139179231118589382013318165165114086430016630979341020157218339737902451373006445217278780496845459138609976434698531595761066754680099639901065214571395310953719440891262663834410837400896910333668605999875387003171235088133252911310439393807213646969560422303802138183912198532542487123745861551878472447330647960709464813482843116880601844037476112089643527614274242867448477677477395370475995973848016013632231689026927279883144346064176326626603912027769411853470641954861443230334486726271116497372175409004386279805285623356118886714577798505721067018857075989041026690304724009747286068805144426294650290674759236120334056383061530891146028148970802820519367190898459112032312230866064666508739751339297263428671464665077867753214556974091996648527967045585478499458260437988041303818581661579383395575993582172325371185840927840722967633488423915037975641606186064848952115521903802445904669592061267158449524165745596456025269426473678947192867995481254806043252823529384982229535558738308179869831627764427340575674438202775826949281606602609491744902741535655794206125011296875198557497037448395562993368089198873933629639018899891661019367312331746801003329551979085161401084395567988837333620459749173389690845925127797749980151247667545668154168223754509116581335010924943599191152968182980589801717640184249822296798979035215270762049983008765998299061860944497965267919302268293139001176025667539129672374834763099499239014733581924840620880784228021802449458695925847758859337130036500332083464454308462756817795299831912672792301064543521379140838300739171941719449834125494622298517245766255057147413178318922452708152421760293826131627656756828112504693851351374802804564424784203449543575588464673414207650581929259395984559296223858741506734030476630231713935684671149583224285683046856609996029487208111546880218298492496479429502338781522480626214405696824276099033351615807662789354126644362131585304687993971941662561071315785676305646982727808118595133591683255424830290205300565983898983700735480102935210264228415767999634941687663789038131291234391611576687895217965850399471703877772771361601207862133593380897592097182477242641787980597834720876122723470987071658828628692536035761078663931825028497667102100806665491574668499345778305173035101331882507804126824579408523771091345266950016412227762251959895657144453276377774957306279445220627971291133397060354767821719590539748266211191250120394336922550449187003580680236586797628885970372011945695727089571777449973694986957480124436366526984469745379720267614827217903319460784863749115532137477074487270994738897770429953000030390065472053371105886509947958875009017945839464596643023722024216575033699029228315851592218039057543325494330571304614924322663331022726262757497028819238160381532668386866244017176524996870648526414345394801651087597885293316199508935122426463313704821187887971753556432425299950350427798261933693127621894505209709929612942965519238696433115720528139042696670917714801811309864137290805866921143209420250023024354826405742340697631571722841921294964611306858504283253665049359471717850919986145949866626225769102865195427931419440513282282458523715245605789770921528915417654513128159305213651275759156372205015386360486097041678276491490841421629924536386878241728657324828322117546586903141143819993187841343884369779608288981917517487557617186455488151549060522924119508774561546052288724849477140469105375468614949512369745853439186097742231317317751881489498304109868703116228202529162656419705042902617414070263523319138916548735597068298938721557815100266012800684584044366092553531226990523585136006988543452933657893037029893072271264008014727599432038068292498037816249471811256833057669219467961200541356008594337954786831233711020313972770885902000229083737973303517439232519527360650166904712800017123798511245409924715151985168918336071544549325670246789166331866738474518350020864151509439494832587257232184782033176676745016699882801217251714709584855450034323368332071250500077380535891102460583045261329482373025840447616986006866188757093092543569745815912877674608119840620302620983702261665821172126921178655175184252543925457969027550582540880731381127629653273089623949831814491273869338586822829998388779865632649768497670963361117218397923347458758803110525087409575362429522723685431397787365873217853276728490176594123961527398298457769148371232849771339430936372415760566336355242715929256323197133809658355455832989384424134606083576785270933570966918947744513230840144849287279611655767730745046469471545445562423231074450527570307207699707821751415204034053989436798711124736370846758601308026568362251528801479009542355864238432540438446830592355977527861580335333746478580078607208877891210288666024823223931276371850494787203619302615786405407670904810742683859120908696205717947532706693500339641412901793125316346118105268696961014002982146982173287020030397138755120957871396615193699510944835638593752356811983003244759130407063143256566376941137489378509405919386001490156271526171216884935236896571197920489251933729502058236916605349364954910249056265486577900095850626405722000117940378143340534066350550500588940500002988453817874703724364668881946241189636139203091183645708613381867983674915924629817375066014641489048836432194064749380607815753543415878450661981285320276575925307580386168475367779830841309521498499516865005373258758790536929876999481898824719595842861048320146337705757669739525838505676217106048283413987518407563742251569830667765743090697015090815230569299340007854153112726218355826450774810465100887235372919784157673843635922962240203933411418097150934538796226563731580791701131144200577443446095818211614025345000990118918966036255800568091166061325180536194235050429570695569228019009227539293405649117146770319237666438727549962696320535334268308420252020471376810196730357635715324818591742143230098301201874683543151404375444534749753445385893121068610377748191444032232283648425942404954167134016066764253699716510235197519249614099351649352282632270700838947205209213776359589844775014811903825069973753750527302960574249968838783017965702472325121646756175406593411417239670814731944501995044152269384387598940612665220721383009228640941936763086635039388276139156123450564646940365285003858609655711794848771586865805561886631886777222059618234777754498580736638114833090919539549069154345677085470334345540435310569887440794179153308087718950275962598992005461816967926080034435580117109379630800623769452443029677695335069864940544391897488428390538551119390964249428251621861347821658613979080632934097881845801834450994719742418545187450027297566243661025635657054133529886335000173493380844435626587978810272636982100647420641045347800595966514456132682885037750405521022714106113113828485521292930292346818100342121943727729822841713013088993405355087994463491410809990954714479776176065619630052995780142705907251730778526547464079520365573503736959443553738592241147994332176788831938855706276968151790428936767306204848386368668204057402375548866488293573246377524600069182244406217733955335996004054836609265449479328989975220870569144222017489653088857994264406135124321780625842158585828302717693213823524230550551541770332351316019245075112326515623673744038264386834995125819151335867652767355778116097456718423990018912144877740780828393983459068328808634078223378759859476263357651360153893421230552476926539896743402872061163308056014963898781675735498441343239495729953339172668007243799975924737016676013798104886202915688558874271929852661642042125782609023589717358806800299498548880489187784906611228579852910475866567659282533072146029724385143319076709985962257638143308572168662531780663875104016949367961516908465639487557648951284037318714665273881449712484180498787184230851327933180365668244324758806751379707887197899998277266202729870468227596804087234864176248227331531329679636652386367630825121255266296963717022436298234855404593703550638383228711438531122549783897464398543652477436365324575183602697348571987565080546543449616311828731227811128987675281852327514188667496455351110268837342444047452219300793224899387899847469148431931523760240769117005452317315843851022268688234466196661373510741592926716694444653566386878315693159622550111264872801199355412789527734427958718339182782189442524698176581590443490860236564881704264019374666038277522327665911341016745004588989202633750740613364884481347860971209107791160122597784680266360232924387202270688955460797111421759821749033530396127532188851559936799246276146539095638477518471294455841483150723820748407974760106105951020817264595848992362477609623371852559721766571241344873683496345264483966170368641282203266513133197059220550915832624895488062898528870927911407757329496532322461854184540491357786931828486631409921025168488799850887823060852545131040509133249643018370164429401761033898981250113270839785954265135575792329161877380129243828194082671317557072513191393250024308250221123014878286195884062940983534729993941859238042129507458634560832014973918718151693255516647689307972422324725672478504482165590897259678942423903451981170383039959011595824855917977635490342520303564134328866650576831505719841670085027935654519578884314974542773547476074838904283118482871524331266575245790202811741372896992677987171432734699652380061089158098178999430584870857818593875138059380428960691657486940394381679824047491420412827732003688429684740743724376575872425624220984783552089729354251748865526638815759518437237987660730880479473709822969435149521321825533187271651210767260861287338409477040566563014915354788957783483761350770457642356886121099214999202120229453537917754645800411270443789749994133238527883432325973774747412038655258542571451147429804622305582981848198320380245681175739590620914965489664530853845437069956221621401525361819977745174307541878834211328780839010488138029176713265866339235529560569941645219781867576574526217715599172618779919878533900517914170467843880982468873964501578552546273126423527915985013069523847371108867767808572303133855460341393336323335494760461873034416601600353646406253122813990694245656815145550193594354473996293374505473162177761067986529040769988717425773910265437036464537724754471651825343221836801789047742257893990059937020500437709872790966006918358595699112149865420387578278529949702643186393739669326341476291537959824688656862035085593479516997010744882069639359753137221113959908980672018354167740868521374482565403937432111557132261838415790211772493589419826614471669176103896112743970664421179636522827717235744620097749022537749607482766933749837307113114222478153578071766409368620969863138119519852733821741653790414439907299526851274763901799763121808515960003545162747988237271900868418935659021118029612038333318452319437156771011618837630375379949177061774681717388891006270444849137337535510820261481875583476218095175110132489003894116653683105697893920489735764184468926946728747637104790185440510392798244552319859239667011887375688405303462201264871514149924881202734654748466411696344796520373823392873292149902255210151846371233998417798709980420859921484976526661396422009201840111934718661557905320220918367872194500742589105639235578110951941814142952569703923555379613497652748117317518778245746520589464574034756906996620598263261097190848708438499585679988666901428910422699551546980267286764378203894392155535256071471360638879935580055056922140234894589953051656830487783751324108721814150428003521689671509411879376469443004265573946080427679587452986527927789644450975136113388832518261908844828994896513615982616089832836670053510529444837254195847420134753584828101769878289648516488497873331013888436743999798312048491802738800219898799673983628339899173555048962394742743230962484061634184358341598760801708680577531350845318945512597815205294165306949392340035127484048073474689916576656768901170298887268405285040099271503983021517978056178515621668280884131890506063694449560491036820985991872064621282962409506190920523524115042560070077504121041111820307126613297790249974746218321089272652538696488810025829884387275632981624509692744906881716490498269030391544313505196399327057260467434719888044498030544432582869632644198353418305774783276513883214741760172870886240366898396865458092639302263633142797565150921370934131565794760950895834808959456085263435993344190353799663705113191760384953388619780723989993195003950555901636429165026434299048036535713659636928522764440252456047115951853696780910744978618774142453365142814974465327069611055211469151530402609363283478397738325577164976299169190187011410301220002662653176703339680261356202525763508110635571923874810232970952617352060636443103045425996818501231046105368770137727656710397283577399936635598992304382948654421543209873038139195846043474895499379273993506476529604457504838762945679227149040751822759225284550402080226998240956534936695489275630169613846479174824268513985412514686756430907381812649107022970661838407381448335027513534094194114717648032671375750146628650954005237648916058835488661986216216779395648232149279475552921499011948086368708553985783343397046854258250037087477304341309652398747699875726532181951334672967025661579400421096769222933624387526965483423417330070731878536374325674779691154784359161914609193742495815405610884615430871934078161872949984518191172274020252095210037869282395962673143398809869562723231661326669963037371741853525664946839145124116055328362711440225684009734286270944391193257757004859954515946215718306344149452078807706422294722771637303403044454537964803257693428913960263608968151686272864457365520328811839519852006289900221419051754123638666388718221002425843581159068472075695215853976523166022759965706488340152162158549884750439700222940488363453851873576834259380519238056529344740990436174645929982640912695017580869901119790327744138986628836949184470747526458912643399647523121618787290844194507367438878072024966422928273332166269274714774559254572629188623159148651667427821179940019017146659584974028700996366310118063367026973943757582868219182948487486526900413027028566489379586616586545786094347881014367690641296663923520483988378991256892121844999501002399058737916495167535519832545976308470365079406235559121811477224644454624245865122944458175843946601918789804616245112706676820756887072471042269206597670958039164356960324172461811510799635766389411160497951336143544206863840948387721732236845020710907570244229896701035920670136224513698305359389816850294083262745501408282303504351668258710573651343959737111526947713518787176950242915892264869357538062586320741539858202084763088077710943066112155286003266854116655822784815321172007020008527293956941412503675318850910361916213308861603399814647784961617990140104580302242835002319653669600774330230443222437408928112534515910660567240107091941491883210396153518804249820106462712212348316059758288492341959221650515116903472764943805267778226309636854519036343659945131405802315999331187687299116999668145692100660535907709255053030815005782169306172239236462274055581330929678161551621135918506207779541226851865122263901928812524799246629499446278500575146209159209490200645035600140365099641852671637157777762642760841595152956061720196021844918108230747339786120241699646217511538541770928601540749582779603685866634752280795328113453141708888580892093455654398550918428696623524597144901724751834810868562526599799672827613072596089430826146423951614004166080986487202859616731089197779713729209465048048209023137025673580747846422294854037773793116113634948443246080362084741462672251204355310913341964432642273029327118866349525079377105537742148285518655402926432336284035638671588271038636538478709929279382663058074967996771867214153962768659635674985559560290930624089312235611580859196579965165328321710712819303543606032374556001791671636011881891636168234033034692912822311459932827921594878979521163006551723343939001431433056459220926203193015014708957199356206669466046673527252107330124174607297814917328247866106588454550838930625151299083519801716180709284649440693503951473759728325113044401710218711847742718074941514333064725761164837510752227743851780006210798368845563269129733554810582936202643597088763044420996359693324496824952192471438763444204504417956698556969990446600016766673949952301462623988661742339933486044906282422283911560687167540812128441857729796883227374464652564801054445681621322735262125389066911754077117905585515474178198558169324401560818294873818993185113183284771433850880224541672843134225838547560908497340517771878479722323166627068637647005498036298597225296651841400615703306317375729712929875434791911994656629625281435230983484018696732146386434303193066223881162030292470664995728310435178337143623152587360111372568201705102667054040929215190396450436148449024708001964618235727105072418422325090946672928695780902101220935405405826232911783307036652406169735937018464425717259045004150738613649880616109147885010298881574041050978416516683840948545227574310736896924989694110156159893634857851971512053849260039416448433887410000447301382522287933213985007042876774084293518714907759849801156841166872195411347405090953363760912738361403388510926192457010339194455090306356379959534240215446897071105564703794368063164853715378626353346300161627766303083390961730343024530943279138789616559826074410149361892966764889631623999951470024302722888370382656432778756504235550831069023541028196741163464063694591988556055528532964187591751548741888772914452891198341269564537734593536477420145472164007755489007129873324180652111658334236728663511558380245149842810802805463793377282158665200217588536295883473722836074563135924562391544266430186756519678592513716162594592883262947925269661778035604088630714785724583924411361811034798244289518164676275053299447056893142064284591582616834134856021528545952829436610688229219818210433195684023885153196751475210604965693742743841262731163406732165834674597446157687531719338410967465883823114814853545586800876650406971297256628154604328332275292392649947460060705934728409615380736993043590866188427444294341426788380316933565838626469945082670389263993206980057651877425612061407356615305862151613004522232782242180913772175238607390447379785223953703480565729050032708107315618636501396258127275934929320430335056771830671505706310450960128928742531343378341591250108113034658440624373192235769321686783354977162236732914487762152535149401488168328637280357550829023540260472159575963482707629236150835336206814962415396847941676760116257667062359492885556465010332007880176786303519824840132246411874325164689670598142920953056559853963754447901569875058525250689128646756801448241863788714480389926912176448836740077769621231857587821504760901900918595476304682732733335582316594273170049632738944625264536984409200996851312071316657554450963060436409477443370381186076159611048005164985154969604048177242456595543789131452512865146843625517423908357838281871757801046872941667870693572375687231360809331993338780859321266003492448291176256391524081542530855028954237734173081095539432615370062734261790926231095605678008943075569421830876562341542099157089356408114957180388157227426629878947435857681658858376432392521152303433446900806883945793944960545197579022832701817319447754991972899677272380992129406761648580567474397048192965924788344650774668602482140310066866947271397586843428694258927801566289593596441900393057376901325191085780306637223661151961077056970514566614186359877507134935144809031587744880246171206750909576689861408014829959983245471409878418857828946636446131016152725310634014152635930319584220788541638087282353481956665110450889367361927739859256837746730972863031945722557107601446518916911551852413342801995965143647185044499972313449406332254946210810956904820849984535378398728773827194440990295107191773875210102619485646671768699405243065829925595273378078289171177992032395509658197287195928082894272386438005279731277609934630654004955855865040167728552391593100213754101271434695275674198651914149336386665234746697780886710129880116215288329854982807515997144729325810079482049115764797068886032097772616880986646214272770917702905716690648164827074793559138519765438795374346715744122741899884492320124757236756703345015725800479325461116352605581716266776287556681501776657748304126412846197011954389793601339309938881179005895693915306978425858342658660863028370770049660648631011581212339572303314568801666367099267667680621920949124649061164590491373828805744792632793004904147783387449224158682444394223989907473496657824397481275970525893139900254181178658498685957147519905735954574733417402681705167399973909944024984583813373708420308002599060094307296184845278342283325135800490428745555457040638794236877543655594162060819813017897141658699336702651589347664288290332288065992002223250257075287830578484333234328527361029825878997485603866002475866332419260530727093896848829518601461611223442331036603820893415625324554871975658590481174141259162677567719686269023990224922816028471249571704637824438323018979272946439679395932499262751708152374706576259628105783069286049884047849552948976999680063719714331757974664916850741515708698408863482908807778985504149595799845122957384743133841341253416845044738850097627397682233727533212934911962242469007068682517150716467680826786083892493444210582420476260021950693084752197438023575329387853906078319939172291998189942916217646941126827095807071822636073695525449416675103440685040194445180698920995902929373726420010596498810771895557235116531796221096428236249197170753079649938664202617083563563544799590401741644577467422321162641135895149615965401083516007635770717887180241761371057673172340996815773095124078117130417110118639540740541220087219835621230470247813673319872522713093645846193105579194552414144848110309855903364157890019480293637590742997799888557347199302644558470328215858729384619051751936620654715490382596796093020212393532706190720217750760219955292399654686523080114027580519652310951072177974329617818596206341948510943257277576468826114712029690537466014756620997585927490866662468951624157711719860327001892924426630150856001675813565739407945516660419484946285982780631495281822202125574595360773463119329221513762754581297517445202746255836918431875200865656625232300353167707866636496236434532934850543400505096144916123470327533377659117415256772406078624459289674855443711936993824782240401823853976738312304233535235523270697821412255658595440577469367424580070787746777344596406658536477392411595835493023336219417404882811151630242383131010896343949850340530554352966530187827599575935842121717035506840323455395922207938991842844227688966686513490808625529022071503742917835603275485441022497771312158709653627229473328238397562844476984282714532409045251060917005016622556390568312831613733456605113829528074224323337300219806974985376709248287087222808584042003659002381755047397300449106689050963040827014014312601894713639451762896693747122503610072207831973790034920672292247933685511562904470154020226203295753547879692632729766415049722625280217722327942522813684096657603822124643066896971053189201257798237925453003303783436119874720032340537690836693813011295708059448641250396164245541578921154355155984235810314681977904538598019273092104094356911180566062742737558492267044155168369680154185043657867247362819579384262749098035507226735256818946736517479018804525719847653828639587708799366312129569474033059036946990918114916748251928843444823144214306870710225020352398808802417487544709151520191794419436809201274104103893824447065389087873839851832247498807231048591264864081998995347856418693032946517729913096236980106098355105199169640168547094043643547850085908766179505183675979021945382824486354644317650638024572863187223848006756839941880659403644820338796278973329318910004377508340060421992884116697746904569274624194485285990716051126679196410507512186994391282120708371891898414996137403506612185320113717684891137236564575175018270837767930660986994096285755464808772042909480995367639862734333497003631373965774133958644768292550197343267354702255560523789492481577270569641739333487392447261785249759315556995321811942528253566561611666008584445832549252580969437440853613243598481542090213376789510752875630494053110721144903145743585176001902046543234901526856229008044227026244778915634280837950006235100273882126973054046859323406417118188218904305454544770640583156806949282797195690858638886025410920539982273997395618786290005342828182852072291544678833318766699163529705491645157947864496118866906903849127843138304220096331006804418434629225238476767107935449336344346546931762119979158235400114119941678689487158483660995872260201099935163281555449747791118610760157806973027926087119781591836779173019088748917214626929498231184287690851165010138646435265151066008301902509533118540005202070540033751837511717107900097779136520784989310389274332957065967712024245484716456025896543547328708078191960065642164135604294235924527933598243325522219985281430048290904465119199768377815406747139827089640103410128762822483850416934403813584650638721072954913509032217346321885078293042426785009628365890419519234553809304800534225060082346538979867745830308588187411802763731606821765530636373155697370105278306135013714277077483090836097713173655454249312230818062176673712220896578078502593863775874444127979103885059479591707020434000083289406854713959186973183304620205281870926402518803361273449340022646760980992477138070422689121643034419723556630267318791105556236111633618730544047250688475647554391209299524566857920733024893426878162365082082127115109872918644985226800882768608695200582888737733301839879622772873448213907007634952728491057165294285601838029437201807003050993264102574129500431291534046106893638744884888511934924713448688827253359084588590368229863288145889169095230628995966226744641781757820202840713571514714038216297958235365536349374639754640519042624083408242895097602037023304026444631225580884847968914088804612676556795773709661623183303681225049870297655039313880346595611787350537620213740365317683561089862902037511185693849968769299240540622197371048916597545585852840915506311725104707050259512814061913232417200492860176959096443461359398056724389096290209241986802975369923917739893575347805609790608553154866524423988960877292032657395396172056634117720675840029674212184004137469638380120547749869096639849780450506781121824075711486723687354591633773414835701083468785019496525481137564632861333691971721985047738337384832022488093280298784877164428966849418229754322797718794285076963391284554107740307373881790405302016096216039062933615986483524367136434883999580977070730230392995389722624563882121954180684639558884289991887234615928845078692099656806082662832829519188786233799618299168073941191002972775139965864959840324685962600600954865552769645678764529276921469792359913203917225080982715241061822514791043574310987193976950763351761936770480634047706428759181627046341042647978665765830169444535571046043747916823980284480836519436791804346848437156543256851250501195486608775950732296549757465492780470827682344831831578822352830445400015707304042602098056662973868222994773051858071915367241586767170625988789797467002266049050865256016288555159862975638267375867696041383518186849040104544509729290317624394982638345819416467100213844752684908857373314239410420887882088874511148171630040120907779443018712963695390659186996047497918499676458201392534112514754473998289360489441008337172144129191968731495930186618693631826370754161183259111973952953463508078754751134337616905929857124928527121469818852233895831338244550339978726917098333771287246538801730915762092022678351117786007737695897847240774723474986865200812528799763507160256527195329203784234286789319631654269551481865230744562014369461984847024751510507564465410855803579422037026784672045366015088875313248067626470692145153345304449289041009268792333263059365306127290236645483358583223456688976998619357642992242377124278867104974516978959667829290602622710104581583003432312744060095911843039726698198076477520991763881030866423473636612053731749750229567090715866947038404829813604634980292539521642326597937121446324598337235385272295456215281910443748304018532484048620771158069286770160228358024712425568604675444786023306438974854465150798838509871777306450298393772127224975484654032818608128373723630641317346349642582268824914738813113716507479588040555221022093423333849823349987755234564174256669941258134145169519384038731246365662222715756889509406504135177383878072637998673621233523673371071465218457556549160905619603677069277718463530599380834922836497163668964065167514649060037742671777116338222218514855161882053569721174611080241249870440423227997955172214088931824316503510296550346223763595086016626019941163592522992216682072639606508925389830437371395967523801446353798885523962614284754704699924222125522525511314611372458236759563939287967390499746512374429485240982940997617443260657547037737872296361003443008720846364367743546168170184792691002688801929384875716008599614805713107124753202879080868887549433664440765956401524373744265330848643822716413389668217811713347006962279530407422689778795508805193609264729864625703201533704381453216857982648279086138476209126451745358358898772339532954854045473661098611290657181912505630456940604271167319975037458269395054480847756950810957848073942476897421927813416550817796758839412593998738751154747719607746972793353016155761852799194235588192874766669637273270799367631203725398811120474083550067624505807219986759470829133260670235051833965038621810901900614903791645079521103131047829944613640191220060568974540404904649319723614146697554512797211017409002652521508287266170538581132084486262688125096455334755234105280728552928236592299092767417636166067551782551886576357365668574070918505652975794182744351931450811110823599765787868245757301061380015145909421181310546226215635004986951660140285682374369558810362526657109243575843770198024784441767484750874425270272672179586331976158091405981129337375804965354724561325424622248767369308007961400356214986107468332295773349593936138462191223472668905879159402376315753902121232551072004784500259774462795640068633822448721740474386972167380623640924715882688968515747170537177449608483620055303444214315150460168601805909842664774478663678714100700035379302130923531499215423837988801867900964525700508819203297426941639361952629370801769359119716949329399216183785042756772641293563657331949424534928618188064131407162904342018149480218374529924129531663775322526749243796250918379188330931010734137396680948611139187505513195352880576755843203687485380231574686953689263599368473687380352263709188489819121745206177864057121255028775925580746485506522945091610428783771393733816025725708641055335805160603032306462131327186890124218859803934581928001007348613808544071956032224528795705758254116693051362425621202145572721968859494947569546496096570164754973919903362476889241737033270401113768643495450304982994966481846462735450904906446241744546045161453951203643769925324052169079395551543104120055714503247395444037901808236687201977320080104823492554842106019764644014069555966290841551226387100587553269242274660268167079189669238719578334559837813914639218535345268301116880247513718499640068026882809329721029269153683929199586263827456451789568418828211789478947904107414122856996993053106637966769345657905360526309237941632628133766773909752601362581511598813126754457516544857453131338000518367362842620003191438135146948287857411827300056166740831006956296530700018023336563987294245340137460433481829056124363993219578086908540607588118658891277101494460196032678815958189700876968187758745530937960580785158535663539492876822823061171777793214157988145446145875667436335279058890881141179045657063316001157096120872869588793695052699081749128505647962512925610745600054324730382531910640364300305106951695196264858165679916651956990624258470174092401601162476575637175709776257688313080385626208495682223481335401231880188046176944393405570696854440842367634861671330714557245663552123962254085893192068897621817403974109817817173113326873935665080320980541642926691953381345531115329844265482510830998320573995490122162766877988077962724157410911586121249677915453198613553987271318226335837834639816804057562209456577811808428542555658476606778800518040029066689455564111266674106704784704693829365781494904133964716745115483834639975073700017233432739075704311013618993780794537559891204784223017395540943969130007315665127513900280664310080362513154033196135231757961823019569078614378885058173362861397381773563980275766819692146319041818024220836482604120900829898382319476043432622824650070386818832397648130550747255370206872203894875757319383494140193369641023242147374722361239088451073998768273687992346757742541477550017377942731912183974822607038843644023932309729423765720549809969183051968931415140400156265097671342418803345673141207290297966819293633162483244664580730096232295460473457421243273693546227959622739586868607927467351052764863560887520606616346011111907829513942183247145879240791407373552342831451861900739799887704870463731016071710245737134765389105629530121513293689217725399942339376663049340423849404178932630675463154477465414511907710584748813136525576954853570199084972871374779890581447189591044942685397523216761949433763778304819214358792561043550624977568379882692360590225186367179152094950548468346504922690365519445217645402793754022381008708599581833835813226877427250395567216482198597608837365756460400922417569531130932495407775983445264715549401482206460497472608328009228074495506203350721921813481854396266954181018725170684358715739547694729320255886852860200560839454100336168727255418338029204846689236833015503139605324720688556371837863517982948504569528429565906015486069591873604383061106437950352159488736790261890191375301253380914262352230413594862228188317969971533853859334456963268861673366885518931930111932823450550017645972291534503278350032317950336708839364648994370101611214517001221826559440788176464572091472768246528109152152995967537277159150234724107218264456013240742622811179214720832586370561849342004346648708994026161321296326877646292618140863686981338420583927509068806551242376264885442096826068609106572137788625030477397662139589144458699975211262857004070464573118889794081085953512657701585391528777622319353516718778780496701816552568466213070202813088733773102208690241961750087257043842148779199371843099222307995895867609885575029140269316059942184680941270311462390811889525216601327696377678049008428420948058499348639296540062836697109684682422506419744773085298906816881935040371225102655861383903706556512177485261717033489624861385519825741497124188672580062641920713145683098031607393260799000325875914217330911605560427528516053916951687872567851609049758871161177511340129587762675820327518725102701281253112244469975419677964688636328668823065498640642496677287495009208213787551761125943778905770520663550239598129475226704248697114356282084845623844699037758689699847094477007536428288480173048221940619749598818895888927267270113529045068131917613548651835161853611021867827716363454339777172607327812667837706897368430332383524976957272974913609484648731530846304203824326764501777504763200873099206243312171291581256121004631220531989829293944146452099716883465059825167141800970656036470509669020201016423015640048429855872229925290724606515961617622784254832836731758143289305226352731326972403508582149577881933471006593572854190485318963610442513397769897451678891121655978309845519196016477603321382788880242196943374324296044857618490225474587129829276602690224971420993443176711277834119481634391029734559352158621580193185703505054679151678543583793947508371313727699098783516982047168588162675446765552156694126192838129385918924753244393159746805514356874408506682398044395874372474415373588110773515802087214748890240197414780361902406685655279459729347717907088357479292367541654770547699339570792088286080957533841252392659051950414174299031231322936463533638694161569411442283184792542809490703162439996728385749022920105358417697296662736850537219547606061516949769347692137789065364375277011600722024229432599316254769351975050167087056509406838387940043059990278501430855799215463593647189951305688130489591037458996251088257830844918725029370434838993840765085984634044580247878552731362756840379948649376136617354247305008521585203893714354119191343822259303893312139916971677003471213641739186943706779644080939115850769264472909973081060827519538982755922630430725885741024850584541072450661378337905708094318895547740125916751568458370676271184095793935428313266158712155656099422259816712991608680918165100525713554130044650344633309101250100020592540928266660882849518346009274914363383854807230221661422753703742319482077869712794210410839965085776404362252516437878966911734936483353533368313683507105033289176858876095370277072375265196363087593733857807002543425023253306938427726156552253832433621265357333276997281148189304562518560007301945595687081877424628829100899923204157905810025913113127191088672217893332560391864521889940578075508738940145774580247377588782785648148572456651194607789958500757055168708671624140779046686601264439597673915344714088939632227541543804556551441470482543210290587842612016321995660919879634596009284590779963313866285056913313402915833474806328871675763487382632753708479374764308295467870947439016415991528030336789465025046806186970063934397561430337954107031935687203986075912553856235809483107421917279655362637734388077870826409901867584884218778733786886887795572271644130671425730020651451996789015581105733763917113386718997135123386481321169641600528135275761509213854397383921604577647784653482641422577342507009198476879220651910174546085057730107935117223043655571421635961949146447513715677742969675551442440501686796164910772333501744766941552781824898749832059405627657368105334013982308554374313021418348223505097646051700811068078549133587972952736833717196625048787029025438840888097802767941725447117829303894884563557431269636139128545660115489990464870873415030101430342100337332156291726774513883170956475947911736274906103158541478276423989376602975522895128368836779248085849173966978832988889378065169010713710506748566110978626630827659057087058626879015689696846522949687879231375766000708872003822243407903789355782897514682709776762502193453874886480957294264836070878540556846844756813048449928183621289575671320161024037809133640786631178682681286316016246848849098107550507182508835396897293467854516020742819409066750444352860932022319816268358706309753608873221704219963486433573491739048066917322211415098783472701962698597191415794089050941778189619665455255969186363181800527127301393751279913295720702839856145223541055771434299010536961835959352640499414683257218600203238300192411608168778127827196908803755843149534010895531677594711255868973085752250963909827727818463649700952364181871305980082012745901660925361815940484283491991766640161629568479418934470766078294627613375642820060046968168027781377211671082844979532075654059483817071484545314612220308532256988855779551655183993710325756897407908643286114238814117302275529258213273134560485527194608414573381059565913650497209203163906817833727838196457475790068896256508120962828343207595707449106652653764893109982794772119797424655548936799768501312812864922165307918884164452492633936020105725223637766814098148751677222403027022337916675126576882189130850276618587512977487686003144334902198866348871365050430391771283113319368984793214644210088200647855300765557577521277185536489663236653694436720742281006691258573732621846036263710540275434713562628438220570896630936028230535183097958905182710028745228611010816907199165570990297205186846369020785771422251144123758573390304431050714576363794608916428227881786876348730218351191556403907386621815850545555498161405369731344450594181515886949468397852777399962774922900730559528690734118377455000422616876724491806883371655706031452026114317925891851542459870956121363445954763066209239595843869634899339770222945979699675901541145274579441704215026502089946376256593182970253199650940602004804201728375442283558690525480546092112410708566651228664243433064357682888233125842875127806780245778089114964950904709947109906057947957155548351262730946582020797843063156995472288924709564061417774526527154108664838867560767767036782900393686710880548285197308231820802852983978127025875063923186198620566007837154068302177128044869389912248789162088207266738099592719166463539778762455237749584421567295264209049554182300800083464621354412528309361263928207338421917570647817599356139083143730864551111838582527343088207263371487616311372975268267352192615885613791259548714774223204893418927570625790287682266246298449438227257499319783976014089727754437519659573135657291158590940805656310627461359292032624379767225670398662619326923681736717952881011224903910526387451194711710113156802451067462409846395922792299915853196845797082233383255841557729594799558412220092609234589201617253708075431978260236217610495547698641160198480298021429058456900105633523863564151285710398246919463572812082802040945182887442490843721415741485158833072844608039778149937199065334197493557556709968148088973605113651124072066804565217123610676294332617250826504673755078748995639028618257624983634577294763920409521236727038733215349805433186436273449929886992953570662047137249954697248344063098767584096132841391758334451441869216188434330422855788230778709281943521884868953673182365487173089868042803719907140039841661325435593316742443169097737854866702130057424705280569782611135673826987530695607734834930612195661139309172361899790105698490597797426741653677063673452267001216215443708433132025286814567773640913300088572141601288710000057937011852603031472942692070431512398655285250208011047425229147667746339395978418954162111593551083679820255202177696194970491494641586071639222509132149913682288170712170976757599476338511927088411083538008702757815729271463807226247931148238562239254913404838556584263907362727726788174621197041965378069598351238738616691171605800094152655557322791954306163794031559252372329369334645732909572168193988131051010964994788079448089453399026998368736847724187083720307141284519841378758578694983628719648803017143450352044662275302164464873373881864267294304269740443939584389605333893585224101938358800948693927078202033774682452426181378388863224353417819669670556760659392929918635862226327264049743693538674303867568711389696304900414298534818227496492186750759231191272386533290514578963148261248860372175361186410341772862270023444094438191722747496343078880020124782179135964807995232765814749008390438340060381718610945976822835748215667228436600460080699717713660655198313984664842840058022635243749195447776972738400942342134626575649236530525613195598314655431714560122861600259162347845230946648686956183981181969823406789388952687183554993097411642959326027589429565790639535403604820292446140754261040903482379180416178363398559047277449451301555102386873878451617866019590258148858800434622254085750608066051956736454823150993179829693946360165505607899270210492531292263969929445914968195883593688797149452086436174600795859606760412315110182699339073604708026669707500177352047054533429888828688521585669456605890519874930097260031586061457367240952167933968031569297312970022714876213660874221986117659579340447262984048900957491805466094671167014871675111056545704742134154153174147014623820778557549996553742487358024783427859594341378206291279653612704129358328544303189518897847899840734911465161582080001538730340528435667514620270593529832095656107015985428224825528136520416061851291249808066211748131226896076367318710016074888535989365291785206866925084638626092893307979406536335129581725675221871308424539284239081797806245440222657331891002386452516553697625732135907765838123691128879481972404174931470995476971840740847705037965988589653736545173883495376448258533523336267684219564927703168450993481541013106082380703599570627052294225804859846695775129104845113937227948125721803790096804353076948924792895469676104391062187449216854211692290201863717844202370861547330964482514947755807229604420739504910288696679101247173853718684712990200516607975685185414353375673620737056970728061341790884071339424084924081309575958746726250620330884799415084083592358031414560921999809488011403966453640974909391623572905406343609430850011181767282448874514227223546464673483369789760679370365416376028736405141706268751188340363556672282786436418089811164027007545328752040119498576894516551901454848349946104183947219273062074555712909188654103234245952235190750318017337515992838977755520739529956258678495470063296106252663602165454590295768361293283613117350558790251311447944341948555911727871023614743507016615632273599818432208453894249181716653404275843469910764521478850684232148067607120141451447061047902499853149107277275057512515838734361928194315948260056883094622176002327554216337756873299304268267264490363756380154353837677505350560291904148222609098261094091391583970222010744666329624616991612958880983969682680910973928586799521551653611802340847157971830813351524057584976880878574642702529272950009952312827006294707743631809032647565021523240724146764826696260286134015453285778100137544220925114647393462616241605640494961429580522006010771432372610195375874337263726828702733935674054238646672287241307192779977905515433930646187640711580154514105807446006890746060113118188415743575502571441963770872790444560313705094043539352569950207395453384611477563511012515874628525891084664630275761315921215175282016822962211192085031162661034034563461518694098414988078305879110025445786138155860438454848613962489015638037022230644997549123957445999002134915389813132790403201658185905193108752412781040700629777159438735684689811440863365085028952108333963337085932693905025987713313987275033741792049285208298796566004002435019194414306839938080549971901754873612832208822236776359895469944308280097329390387795116753193071733558583576315430153376368512071428615642558499822010450844905907043010734739229434184369078776620326754439817669736201815021083501922796810796225744998832806123448972670566620052283308911892356122358652368917638972534247040510293126038905892324079319255652276279499251914124895524398712063041281012625837658140308262630967101586690473208956326072345026214386269264108901009466232536077126892734568510290698254434070597825553463236254756216105371022835761704426630791251248916031984912947910092023530965657028026602389353954036395671170597307302547818645602295959222317199781685211783138999617120316236353199519109889838792723539385982093079703613445629503483924995414772648215160969099909201728705226400678175059205939537162658320462274316858837327191790909897816803583033526839683790738860227478563303484232670519714722869064145345308911464921098176136665487752607350118702420627438173036477909456251306735376722112320801883463714050231799670499840880110974274977403701975159916193251926033396192834579391843604407562185401042574999749170744179565029092638056906398992807667586876819849985178815611094310864380522793209782313258169099771379139096548795409624391507184599345134251721351960761368815718746976828520909770550134813862772452639246491953528077278147596796047389725022443608364543856332345201698352679465263818656932765709346076260266496927525003668849998755670499704987711807606237555536509161058152851904482158084770773696650187318031214299232118227821963233124485887328638751506266445276430834269317144055738202385689882325066310925098598353074845829604171569697377383833999302073680465906423973429215941234901215696552736731170763203190584952455047585835240709683761948046794483652083645780177523065654944947009160380113393115823954036645739871992455294712029944028719428344907925286218404236895560137278164328740600661566567046326846122798750616620331635542859923692556835776965614354889689358460626706583269452131369315216996339664021581371899457826048963884700311695794620623072756577401761904779587781899851482919904530855220469242991563593070262425390542365032253033727411257942625440398989916927136018741885641952827139478869716307045518349829227876379535245640843548595935836056161064176251451659022154339383932965575772111142675905907909805225881655703720342116971740974964692858279196448118131493510400915880217812263964054519467489388425001897854543759597249298049305984728833056759573922850135567593353990974361401716632511949877430464245330638258441273100496979656038306368043867137977117549838168686167386474748086601472995988119056630466772334777317561311425239020491180713065952475320083623012678525902781963262217790760591969740504404773597140276458063467452015559296767579237109919780294043730765030531993538154355523158669341557730562896430467809777225011720923525357535910561037909008128854605152717392860974040254562043375082572130262509390179117536784130702871586660042026174067692096220630634646170742850632549129590246483000107894791921682914093707906900418197599884460906912536847797133918639998713868531252209826099941904613619375275772872032623990286272944959701585464413005255102503937105737685982007883617424524849545491178299117670255080038101870602052553471450470294616395995539826642194707841154283985731583761995263934430249850193212522023938809867098189770648919986760457729258570639076183804684184632504381337405242991206805942058422481460305510132482334069859304943617743593761268893978391869579630945770313944000232135809685523464285022477753786688573914131791768812423102763494934746166186539178864142680734072380324935710691914712251388704737001976015078103633577192974742880336138590586254576369130418826739425838524278575192557723938879371405068964247067229611821401180385094075605242126896765270974058784772020043578344413935995692023042337772958083543256030719198194075364538086944861496195625329273325142448622209033289225198264253455686595329143622979300374234933374255385867633688541990815053215336342070072894739857605019593409762235560533102816280720503267267764353474268585464010707785558963356273428802268315606048243397654034011780010906237546337756375713743150415274983070615111932347461583064616098155620370372818113694179607704570338119539175935675597896972456588653634659694235524513465970470479479360898369228144907287239138715396903214398328210322145979756993102153326193969978968628000038712511908993937795007353724714928797116096451787988030114330533501869682435359921150709688984828568561595543327640263841232420387486090624998822639695758312710553562498019055877200833759694491173043660980960484010750602550567440139173088282430505254512797543982356405490015675460420019063805877874416928395417016969587730339313110282685458435532747394578305359370598675168770008679243819604613121489577376014167301072770000677786754999648950839879929339064501739549930276551198617461247398414979149034766055341695956967488466829307037321258539720440910555931262486607143747155287320128586746831669066741018838709034995821282193831848610879371064772117717394071265489132748353551801037571201066671301154217233119669406111280980779003945025757343359800103629791327117525925326175458571675703346006385219686771347363213053777571421642953623611919927254873103906874928821611719387717717480877174235225517749643408466644523246965354021771503446951181295131830241113103314009318535026254121445327011457388984623834139763119144479388401594061598500836092468094044258866038688272304373734239751725070360551561154308909764060433440501082364909512333806477341563556248854315422348128887768378853731888763218513206792385046158213836764629024629005379685630241462045744682076949406139056971244399075982181120785361568277939947448596679431399024995109259690023156512987973857397944305877419631321330115768896233651911428102710627465687791619282613934240903205196436153053781162118501289304012396024768229953920190158456047047107476319132636369504274548343029286931470291978398606596767891731659600043464212713398890531420250432021793360912035513037076160698172429097774475101230669871190732895844269020315420987468406862470411412746209292309883241355658823841892382155370823155535922285648600322100109934178867750733494769723295102556248229253541084739418304700215847997045991562704735981548091980784324665749145283612892606426753250026392203121344888198299253875849269213810211069663172180245132175551917209548639583374245591179032584575319532328661382893092088511019694550952777092415736596643027788563380826602076796941256901099460773478038353810898297039911858426951458096868358071594727238562444745268113773811096791997474204688459192754837463277719614358963945811879464960434419281352787529645142867006562470934872133614078487959551152684538208584021038188484245137316596240660760168218321500347139380312049028112670352453741328214128597467194069072277018066955129992102186059491323990260024164189363963990421819421617517638396880160973623502494496666828576233609051299999887188926499059228437724686939293823129451518871353984595409614508795430987659715988575029129543549806770248577669658917229438882518278857234129475034654711359943029606073062613043629099428474519444757060555533397548617376606600187832194404595440830310891871319216456705195901819045066552746277679771745835980271639382117418721810928423379621220164257840417743397298098194297910378179780409348703554002719761853380616076225881224275396880019501414074412252995623378496928105639542261355312586443850349243034635627870098934463821059007067823948048476943260871441415872564182265288491653147505684335789889116123949994928335207809574308810325301471510398163102175945968325572405126154845090193871830637331210912442400554073910207435531411746527766410095519590384116069272823898228102520617807360646626682656692616040748295694748768822823213754794422836753871380452919876629060635610918704733950543475962125193488194493262379709876207722044299453546620597405451891154686672618779128126373481569140316714214939367274470551191412229302180955632533762844790428928935625967677855755676679062429349688559603491579046765031280930571107785271012103943847897764231670378250830259588172932006834744854785488404155042337067783661569660913220646616688037158582287409622107999530102216253799501151061926854097846592248795360906959516871275758138122626205076389809224288969752046792203411528787454271965424201114077935036263089233104854930767085503738579323296831039735205642354657887773161935917118322557838985431795919319571589590007144101100147483015641000276500418964154358948747773677229945411936635850417264767603857873234491747473941043990577381943456640591145288349998720346324137552490488664108373857895871362661487448568806049892783269833356707651081310848152774161329670814333949525554740073824521101088418955618801298543156270215827722937126850665331073548986645167803144181250986558690391749004777697359036455038639343534945099037268292531147273950271318594734165570201117008524917267807098210285322410699325148429209714102971660125006865503751628790448126521289990855214797071501470621193909108952209650280347631031850385667776034370150815041553644306223626229617486146280475412009169609509029540873261736010029145209892735055724298075098925759432688284553115861330765984008837711755646092837893955769454552282359752962842765504409353972111611541484974100652841722588753564869339520884961735337409857350861700237081771068207631875801839340435143041674001192777537601179854503772355452981405106995062279070520940374818981679365794579789443860469786072567456362991010344930196314006843267524391689822128281303909185258751675632520510859777359717581382102104539072033691090208557682079336691978633479457704553663999864087218248323318639584034499670391994392389880182587521296121400871478650045595829411676903460066875540576167155333053094838580938787477674488937125807238085764893065867679854632758127925106715753969163316276832941271072590431994732777175896204687255571086839987295880184566066979569183866512298411768864434346025440092814824525299633199092594803309305723778509561600256059232800091175568488732355610711648684388850164999495856822429364848052097362624087558865428604605811704837515520670143852056128534705614652263224881411365409114613835900496395176530559035053534475782366794415178777979945962064992473182241800405716763106700704855017204756250270809214088539351064794683051379592068269216723249149378279378756962760901538140749412658539604935298955385059825840020316742695858695883356956677608623470397428966826096618807280113838919557371146681064041336561438451601026900752695078891177456069561781522838919370902104421066827281785340352369365191184932836932439729769501278649554506382646139166350571933069290962514699484621717904981234198590287301147196812623259795138478291950380795058929324423968449063157363190322083388195892438233162073433442201101189449702478930107165778892709070446379300648292796120218475025097827681293588426390827166678512581873955128894733685304128488633750813696311319565333167559661399219476577615311796155588784265552577278480142449851745565784634981040925111651681160297711253796753048085063628077826984938285098032936478380226904004018179831248575016547829720142455262817800533910011250516638429156654179828848518696555480359675372562197135217691173590835719646243469907651708286524433144392362313022576597462742708009793943822585909587205674736070046467507654071501357074222772289596162186126533932832347868005729287817640712570466078262029312504758962671852270003081853172063972311955957261897722815835721769998873639171477016004434936416212260026392652728244066515771769507129712156360812331055145622355856271828828247768850489152421587136573483660344575823197703523017483165895341044051356597650221320294026132680566730304174091779304803415409300635957973652839025136288257582147779814469871273812438106361303184030954243694860965331317945994626828745461317121205502935609995336550815528100429995620361522603429078861475855323770585469639423698586114083473528072201034131175181775542125840472062361045926218281513004049719287617034547866213875435152082408690824371618136698139903111313092635489664965056456794891108438171843115448406892622920890596150425048575636373825620610796925935909389519985456061847229675652799192749328075791241594402751281647049834180043600652974798822244503586711239614815856533136429038301338760399298942479781998802419373986279739800123304415113245099826606788623042099421132851760465417770626821410331822482544012752688740712924317652941544468496152043343609090709780646291749785657953007991904911332518175331783546157736149210549281243559602603612502800436562198174948752197136801513643980554297966040623737936866773600029449708489963275727069069416451293523912741439617624620294201883022725572753474757882089823044011469264108025188419633709393353118513181944130839003440718080376397332859599911427686465269929345979420525935276311370498768817414168178774655853210459424461765633939132342289351231122483782796033095223427296192674401051856019661433608639031608994981314763427317599055337234193085646712926878307956150228800630137368620585597073753959183616697952791250751106129035698102152148109847663459606544285759380146673814825900103164965657066580046710005600115057073430409561028634414360371633262143858667017459062529686368443152337407203494168495117595706308384139899449093157304164493205298903017229860825476938840559798491124912896358020325856214484676110645253494356864491370864594847207060751079561688605385040221842047191623119788800330876840916115102843755608054058855769411293991925845342549836966497882989719423441960365090617540156033349648998501759543730352906741221303257371617055582495704156840603540453546533756313552022905711912494373650394838611555782740893558606697110271676319133147713595860532765350832001528584650940126507365666313646935925549576941300897626380854786143005877625790959015565128542413916092413545047073193606233778758537487012653674905193579474475354375443312654295776569054281127172050336563500663551273295434209297917767822654740383013568034912552983426670625938191485635057744748219477515450128851373814001016789157173858292645619354287478694389308213106769686303418762624784896955035172511689697813817984451982092791454566528398401433251396000497326332184074247500643680878003356794974158049955542326436300425271801134541650771382901277709012674213523349470142991927708917470970464688424673929722360145532259391191968835966177747557482270305515380720857808595361581832114388998949301681764007502991530079443296063669238510258078443644716035492762353622143588807251488271516870597272559436566370500932039184968757777621698043851283609797682341121800245137670399873651428493714904619126920548141580114308728169985478440890795125358734876230155579318845373542450798379820580394950267846697322328608884447871922290550915391947659867959137851299685305417598299407212924747008030995377085348192193686270331934508431847290440606050781239357263712502682828411212441982483827009731497336190556492662478166162905000944305884741854494368564463017395960855838399858308054634010564741029627295221095588329159287679339821282402180937897349244848120690775342484897739027639064139508628069861494723443834405285927542367163468279142818699581699141963771530941239027012247356589045541426274692808035207318961361420865042871348760537379635806480245216023733302128226163203071236464395594476905526908450056313738269548881913264775249168941961531857514106229132597150375785413859440674235641027721991615596821670508259178013777679528533311988175764977373965493612009854069827781673361929967366571137599311556410631656798279587885927355220675093148809665222972317050112607853881958073437641827776535089492981699722909362814691733246566541696854360360216254323452186521337391915682343588551947571577854787486896973979461305555272114891613447292406725474669746308504135858656060673003573228696075201453159911412659079170049863449491922483659738819145142115010093474324151168132157897189686971442773612032690410873062596717501136846269000686283902693896721041731619952941156470482550720077953676855433041005187031168508221011950450964535621276230928480243207231606775021894699965978856926191888480557741420476645540908394689261644184994454499941757791435358030025072926488885790121562011716990053731149694238247044790523134038497935545249561528941244813967625778316260927545950206548577716470019575019953489344022907900080894542437041298093051579428121361558812176960886745790625845321343176192221431037430507447459783249068683838524895330618739700838894315843942519495402925797340912441235508853623394466871077551957203700032834946841266100635635779620051758969983332031251014248949246850843982331767182207810715450761660193315905860071401470269717155961377071480617212146554880887249881849627940764597423791145675388934390933027882109646431462153915743768564449515217549868187096878311282201039484552192241160428123941073632388112451124219375393994738413796294956288973378224365819500220008830122697881156201012912809972336875236910241735420726740062276140403634826372171816366230046421562720304322104884497554560822481812355256951751181627476950093853840584825759688093189585085051721964027606583981739333891871021027333862256838799251973163570952049310326978608938104299077489658668297734658033250239358579329627883896964926378903608798849825066214923911393050226112336174781498745155982842601146375784434807232725315734630295480346133201134999520272935401265497520118676279253612667979593546284005015047842236305929003432878736377850603423416554676237059985157468265227571891778168941301881641274395797760887563656442900030120836238090013753459120988601064580893503176749882408898680511230041430000525337065711060084320103850260229790109510960365266150397603607434736776782710872386920686014657395660869071601129083001130276405248392525622226303612937997717433646155968526879005105517959083163601162360733654114369708569734955279986083116428475883981025224323893764037924156553500311259740170199829210535439615052054318013846514916801487203196292329257094105920550220502297828646722523790536544388742754679130030671169223697625299176957887927762493958526441128705662729344087593475935719704900221432626788487310818717123373271123714965284916343333305092903591954176691396571415273258094365084811472554392128402019696545016966340622538177414973327942140405714102439816694493956444407074757185023638657941919509976501358401905691649828303531000084239719794035601015437918971462139153793455678339234185178409493745920984402355392982899946010116400235708980248028987634152614420385584941114623457624827520487988205141037678931790036434705025027809107641801396708067994784533546715564165707676605999081981842638354020023931917220701655097828371323401141358965267799537794638972873451903724871507656535279261383873308975764064144642185630329410350918094008101920062976854464912360591930211189625850424907065431802958901647970763342036748590182297674452503262533670144966100128026956777345476549254796700178180217826680159442187856993795278074513224117476654239730382786875925211632675111500451447769080941944692515348434938662549566600214227147236662380992114338887471919085134206660932776584957718852412816678229424185842136313129432339560762747621854389773872423862588048324527900095726118846993980969987479401884214238460547831701899711768661549014314962268625763413542742887287141014163431217637960379809519755250851949353083946768623541907870032927525627807948782294542871172309980536119600500799656851354817695770610040311153343163413591245142882557434938033697600276754028171206929759614478194308061570839008043325727334168080684450417148271142557337665358297574365394675276886833464090688361110137066005483672498847199283885353155133100453523045810467431177600560568289975683016059628275919247050580297510641487285750388342064138701594105035917738308126465321874327064553050389941433593829772992228924382261580577189398419455239921982753091690937151678917482626924184592473535527111127405734204748444655744238663049104105275350036242553953386946302328938598297869772087304437323794810087649267475691757808505893042412725220424840696956311316943112972039586161033862381899213849097122299656846280405380194804899797073371557742267048493265656281322664438961368092123621053418049933371272513534191605765986670726940477291435381553146930691213054760486015624633678509623451355306712878363101654015618411480645949637478294607887852852582485298085655918390773338283121141629193873175250765114646738195088395717769658071037524573998684293027057282873038297027254377739056203189930537609485257066590068264420756041315218921116594618149230102998115936158310776775172445729178799429980511782701122342947254749993012956564246121272252842594007317342867496898314645807194401147196319456771394924711347937433058741755772654767069754409470397525655680843078404806570427603715956933824336697093455789411964432145268024903750804334517636637860313927585304085501250879389783643744605797285332243695362479459208984200779008279726903040409203282213500072009534737454109121548979958641222066873254834142287985488342466889459854817140379262471228136378614970348721965574870130720421313518049921229171502601440237664815250711481159154793887175248367470951983432184859389615206629371336246838021639506314045454407072393491047549980533106481350914468087798929749012712982121836014748978913630824793728324578933225575144346512776387139795114231338056591942001113545548867185711211589889367862596675128063263452624015692803156831123325633640530670133892972879359794003399976207477703419373972293099095235784839183890787356695960040130632244624718621164058380089027773874984694072164495922666787083635885254872722941783769738274025222998406092629060368397923822438791950480916377411690638530494241777619385512029335447183279259139431744306840450639755086690512011469547348819157330655511306791830383289682399707396625876028300844502163120666165755482406802093075945245683457711707343738681007814968844452439835596077285731870107694476658638545547502804882604300921047145634072537002604067299534441065003191815760980925606914658731760569799099718443785651789321425357710161171310083471269936707827606101213330683141797172801295226001260216266233341399958596313755492005021293165611718365989565270936938236332772347427064343306380852945490905405362835541904895304956995163412919410486051787943860790730678566264872937270172991564875208604946727309046474362402221919706449973345703501698751045576659839319143306893101475328710233052327180766337874949892305466120512081514558007689183658107340980203401565430776686628167414062154875899525646481027978678823606911197961673871299055575039871856327352712979122335277950114079032254929433845567552265790998289054200094927432873729537806019412313210335976389533521920971942191216879309181425574801133720032887761323352179262543351198999798840688785805710543770705550953580583394854128168166780811971198429177077055788365479423206328049682276492519668475611613948607053483922477445914139119881191557224039638018053747079483432649629273226555901478703577130094361263781543789238252274074939685158913781495152450017224835402809966126247032873759013099920402988316219136486037745180785738743608671290010012225092644911372984064458763326502348963902245774814536256330618951911379747308531113058288062115410809233502145150863832047440759693055395720917819569463563461103148519454521473927921417467964111113227935151259667639327394801851232187099891555929401661412593370787095282869971517044658711043803776459139810156895164879852701414680743580123715516736643299497081116757957134588884160459101975427032591144020951445228557502710528343159224254031366420450889116574179021919478515861979034091109070404135528142475695007286827084102245283376905226517955845621459782867596559175668230528662847895288050808972008332217074964510752022224532358318211630500936281034498579779180798760323664439016666875017659543315064389947386476973888976287488446309484621965193006086350988751121105064180960317040683793751808758382907887626020759186668588181348557611825731507253524115699734495525138182901892514013003763167279014613344130673533253864596217010974877481846489754528716589723887027729900623263580634225309379813119876993924938721954333372498174317116337079026685004904139574774819292725374085511309970433525592542673765452479133441530747664395329341045325279080623964364232457002670624842809349981833536081273321145933349188298198172240191023622604506649390988263146814463398465961777431999140191868306499843194537110971789350424944996878230671801853700602273114565020415229978509749803196981665234291486017641107362723959095662102952292704749158040665394040468374550615264446554377938820937547795722005843819096548129492692779612343291096796962886083153630057352533229905873990844828064454950128827474060937702361134002825700673290430054605732912308956431266840582950009625816403670320337152412211936724130182626775703533310469774231319095479775827777109136299066120062985339495335062813509663285857689344651340662231078784442709225754383349429286111919041682407082835561754319459909299401497757093359372708113827436641333560730852101765533977127857060799849035413806313550689793782049063799290075938087277858082342522685437702512890273665936647373898178187048558346187084379467633300137444129873596069392807740474347676965305246628094815822988663743313395622835027266639072997101474368605333610953065536442377347952662441586574916559173653807874027358236138827487450159705973840776225745526279774814026844948344884303294532489570929011238987545783374042352261771388557884480062710658858756122467101903426631504824579018687589527862339219918488234024018574589801539686217217172283888767139300255205426707433530545623554367671977649332527575201539553641119548462616661081095751118040318069159537035655682664234321743941030771070948208831668669380491485162687139259355051155325877426697276391731398243651265137467302558056535468787628163267799054748095118525452938493257158119856879419139840754734839928128446954426677224271135514507178220542247201195057873156514830544893746672180190709272794459761022884941712474265913592538169526209839050207764911084605465977028426316282627353225518761137184130826889543790133820333815897283504688189849171622557314946807935781089140086642118011481103036142055045723396682254372313400972284832820407057630482515753541019600495673724676448643559214513799553555424488200260345237910367837783231113240523876370044508094234276287277104947068537191764163792233546150100036777534091233279267931135667926695924481828504050561328360337068456290335357083038806889449173646449155033591334237813785977541830898063949471442042378327259234407923286118161113436827074926716045020294210562030541817644572197156887699237534228886222611694020777205383266516611787954826549844806809531464344255656598494018018281428325339456934531599344104154080396560880338936771327455380822230380542460210090961990891495747781044752686434866347144622380600025971501014848801777944709944757699625900072274128777261989157401475086073891763739498672664980582713626704005437787327879320932784601658518760231594162858465875891009834271420702316051420476175263188558017607455739939446575875413138581518217830915743677887909943243989348872763434889946941903388087284014516890120833037039353278627629169905423850938222068864651975243932891134128671092941420163235751505127368610415864248030428019646762078540834603189471855471818529473591089567389905251457692458484578643452810742812867046525083652431671378038387031655900248307402245768842601337656922929373048876956493035485898146179789437749079015911757695310205584103450951879124728671907914749125291831243884302732112602913800373842795153417647272528538827970029848390398421228238242440754010730611601716698541283293277817155774461593817556026381725510016321308133479563950204708187846259449450469741489292402353671631721827170147258843479841141412554245137153359384857755910749023713842537877436428018680948215795831404695659825443905967040058532518147132786855620908144743913403808690085172809261389702186211874938778884707165101133851477516997997636672898065213291959369641388750089606395053876465878894001654206041949882017425730857417712537990680690977923097934609749540222827241790648000900814627736554558510562904077220691519722652033165034246054730734088563390519339607649708687007083798208909028253167890948717278526663315120876857273293662781444460738088631945388860530944900816883274034016238105031670971650042995405680745401341683194169206460011469659526830906403300388477470749597811404327623745166027224328944553194826779404420997583974286095338783269569344403128867980375095479856092547473605219586870522367370477743973007560280417061553701722383377265243115462698177673316222571879273298072134684146759527974035055774996023745997932218663363021983592780972306518479094957823649659675045771039931045925207488959098441981726794578820411474937608823244348592495239710431849647736161815656778977001005201309634826127799826939760050571342791700754113130612123405950984031042907990909218158060609095946511396138312276952548813405260868176513088606646679334953308371495678291609265509746740708208592994525354384253199491980817072275569455461342450882526979923887279682147161378717037834306220848088207541760459312474572971464438510973288306911136069021163571373873499544566286450446868334992505411845146935137362675822517563378858893787231663259618484894631551251917898566000279024369419100188276541149937413475873088277804210516386787944136159730757331950119786985083272219291814263863579071901188781954909570940149536996739360419521050755059676259031039657391301538269395483797724720601175169265927772555668774897457823873243024106176393487628777172998762172537278639283617260298140499298948551041441000111766079769217006236697708580410875412105982098972003942138016041214303187938853404909187804819426101719764180421846134932788114076875761612656944634635821400424901128266056675073155402058766644513062857312108603011073648381625804802265185086821823714152647327578407852714867561038348036463084850792101420167867030005621861104176122508568486275942200053233282437584160899710314576278611114859064472120676682173885367378742127071768929323972415262467904349870586593776575668861772460185552319849108283479705327583445951134775383266399363383839822371545990004374656854603897310667161790470705935738526897679730836115027008574461452797148225799703427629817014133688212896564119424184269856745292924025784191866095625404700877004894262795994918338641658855641095735097961446134801415061126416909181065325853709584924399802063169315769330567244342631854860070857468743865865737838484263250364859286231809125543177790809780288234413565804293882110309035694888108083874888259422551741488852090486284824572385472655754865770756998280680028035042071395320737851640027335616316023216791587653713463123573197198424108833372370387579154288705817031272932918524714726814392223774419075886148200959467510896537658746065703215152393284693230415177821247033170080505261676063613465941419779399016117901600007953876357986401339327780591775967936499436987326175593426730773107980070170210386811921457895991775374748503363187135466224114839841146486737215435725085796709166516490907102986651746005009318872522117195331140864166283801462677530071173006761294892842920742330150056351336221566710762336147464241896925537177029256907532063264657820832338877033865132917753680631326137437498450774486225267469412928293200030195776636107907722737429055987465016903516845569554094700162746927685348817991359207463260696953135547646923876256347917949895234217197650548946493698683058987213715795361776030480713722006879484846907395824231897596958601506848003349614355693880032885197278422592914898695825483612516736931996919428352580272371490699181015026423242141882962012011011974124645383643151624945083155292272544364670410809336052214793165052464992218574905376724926624781515487862791985685545224021917845449370082956013959391888893070800279793192945734733783357271010293956771046395362297544725081039572967122406334892620977073168719305206745813783954138548145566976331084134022990869008269150191849906332996767414942549537126688152856049342358381140444097396102608851465602470647690130415229080137833756598171983288992391381707461301990166872862835014542112023396634845008657256409471611707070245246368426702356881741288684344547049577181586572789770874867496350817783931036868580358927803459596793662104479721070255644820547839577258658495823986791257484536615544062934410940601694020821167013942401215550554100054853375582298110089146208354315168400472485090138517400613148425647662052321874136085550907572847489223316963574710474950769544610007940757758839175429846679631727645373309794696731726216955973571663732020725879337072649567775121906473795325077368037337922885088349984177029527434457682593351721802666351767977874900540889391247585902977099813956789469024185248631111036967817049767551919264294636350081875676905277682878303417348980473734087948752775893100991548244368220630834118083006121270911259762323749202565800576327423451268976961907170928312918746075516102996621510247950587725851426295834347441149060300781726543541739390221859736872774134445408137619946216265275495886142217984671697088281030174612189613131931695338628275129427418892021594424435416603994902358434476734965262336262904174353935147522760244970517485227717768344017434495503369854407114134118036775763475296940651406784248321541086541908659462987727174320797165928761391658515794701176181134832827697844867757924981653645662207357168620860538483319816903233544997914087085854375495737349137659213668687268854407094244884589788911620196756363829343977253027683179147203653734685790638744407907179091198196977093263405549824537657388355973163720356595944035051615758810194363952278548054441167398444517553004344723825536418984072913491836679187337832212301260332535999514762276385455849056863291211819188907340707357986887561228840876628342478855624647800581727943189500972209126913303443791618784749474695621201049753401682875497082675726119917176581470643784485337489135540396026033176680967583316276488096564040813530667944650414804874615057838124061737726609083086342065442750423093685386938545731090577361697649423462154829429670793121709144987325899637939423317546573258946610470390222457155400106402186382203694176548626300687734571478246063620327812628979979060370688831300696031668156094903770706024159020180618597487581575193579738520354079675904291731085553733638811030799756688988913818223109301554355396208281536933045465658230619839893845626362566584520745221774597003898559390266639798327001290852276378799194622671891003491870428830559355407491208593062393762771190996980711693630200473852753328866098262471017215185982157090084299574457340805406518955230770679734216900064157989629711535623747753365867823127575745520580012620623087885657929908876905717842194687554381149634765661121335510269533614599454977987898199956101459759113595776208590830487728516977427385318400235273172862737914707128756742612066123292805957768376647681658448713309800478681875387024979473822717584381139333308524974648721902527886029936062373620044803880578551107389763071916726542269320560185333712887862817623075980995690508342521525231167832915685502165756966520462607214513999800438553225929234898118683246562041239236107345157306147298523168454739912446551936869144631062083656610122856841726373450461406006935408436901215636758479662800422468123335655189909986054171436052868360847232459167638468039548950383217828120045967867373532401183139366989820799410296111841554260833467947511537566212904033987604379228912814380447043599211362027065814910998843344632344188841321514898954807368325737820966829749638310215250753682521429945732656651648019487889438200414751287980501316267356605822287232916533674692026849805003387697966812772051990776781066934379479166026179395258755137385366174877961429578672201549240107251754894481869772885196857890383690752485024387907812600612470259060053108317640719159436844857999980107750115988501245964602993477214996476133155260114147984443227899967860386620905240455377533337769165434068867535310756941518481901920789683297103926275773512814472118393195289373109259275841899156999335952906966003115545777137449418441535561771954064986022480828826977343403424282248751727927679806843254516395570713063234967408373484554449379460850606158344448778440371228576492519821740959790072925567511050743743568572511526702935853486861531025993562839544375007156398322110974163142493954274499870999856709632432787987530501293442988441423277208071360145285675080328727694301746181498085976479008471020516213504321621464733012072494311153728528596351332383541035736458870168568369916924900766781061882450187637007340581847451264558840912704722349023205355216327173092051483529403648686861292852502728050221949511353399846529979548054211024451514423683380261847798186663813430903511858284674320276609232300659038394504066713236434049642061742627986760132553624864637385494595577302019351771223786647794290625360271019331892696159873977453228354446248650829512650484058550261950450014749156826910084558084688749558179504620529712360008583677693208390095200203555465936105305047877632527679298224523066490595066199166706120702256869069881117185266418523452057189477490673495417413864636579361228215962169692754320735836885347895302358460910535930854007467903171702165062975272611066117582386402593472722996771243718017267312912203816113835743979724905252794399399925152080857099377742374836456578916355332821165374253222520482963704105978892091388240812569776441350726057890842442258928096846695905719635217586479682060294782491029558885486965204979146864225758783906863017479737265249890180744450256310212424681078770704471303547191081556699643709605837755135372726512899551904917058612955190356807165180773148944651151302937503723786391657928434394411290927731780993777061100203477278810835335412098111662165930574730984466889598077396570140619724136489843228058877483492471602061999437597642168104046609908037492195264595916085055243655260411370650316260016225147671177683397990524515098977481488476548282495841106134941317169512425869362735074906754042637779397991648084626241789535572741231042158968189649428527742196053644575749465186992108616523441965114841248034922008018675407283766494797212045160499037403144428888720743707790371331832740939103963986458653797564554831196489794074052107729690004318115685698382487593340549926821756596741010516122709120146422071561019742848937005052683792069564454983822667493186524248640745563494588558544399562447268972025221838552183139828479449848978144853718873068897737153214593136057653878883188003657839795203510271625718751807222172766958317126984852699298294303216358400197579618262100903424379198528373204658568321947565651589225635189047716429644549764820917902517895783327465250931007305166954174425810486735554014848913416010299628023966736673000027901729406566142264863634129973285052882174360714720014539672763160711151147990960187451978415105463626876103509059194229566848525141717859695207791198348986101020793136524639982196143867055120475421672389625247990075649732021663881635205230870964080709439743818405116643196137408052667660140199185891255641066576737816838983556798908477845781240008620813942833669693061032594761246398549822487583563959597579519275693335671321797034299149631123162306788301774043049411032973598397989613082941870309943274217657263660885567820736589426852752298986028730491847885907826090787360139841256152921469461596312780834776090632842047338083603471006176368177123210210296470831921357710015719770273608140267039741242848052354087974499617183175250214722060064118234897305178444086180212472910049172372167624754035917482775974811418072104000663132831803063869651281378340225411971863142888223568996400311779638569991173329732370305164573923155979936730616068678286870195982436928322440993765366028746208080108337754359103519374585903997164125701942701865837216984295020469776976615185697308382078814964146437613864497978252781464767908871000026284003049311232873088887162229235824007492237514933614427753628878826636256708791294407731086522046362526084274311706242426535141761949193666480800995150538142816371291258591806677537688879868116083045059388693729572030657225181367797694164450879063139444907288788317426612348087467957919216416814707359004515360088005424793688270179793302583843901752005277844810091221430536720746076726750327522805834569065459624803691783183250007577599418378151594731804962590171444454624171201374956683718247831733892797876200585526242260416149821567792513943579904146369328176370041529233213446578844816947184796266765646255331503966361814597690317734178865027052406814157621692814178063122833476850470952121443735786906407134077522750865132931184584880521892582015379181258203696085914480023702846851743309514302836433055446305398744060418497915687053633234143641328020996825877939890163633064767904488787307839135299410522390020722861163358883655865512160278058846934382794441814444069859875288091052527010950199393977508266222873747572344954085589905352843849343471046482433888668513513366137044165128145629059641867452888671320023424220111759151364407258546150743354555704252052556732658087670950751500368852260928514277044005338578105898843699725962057504208062449766579341856932684274619104066582867213172520817064348689153407190627661700798631945530536338066236384611082773559454425728217613173388655326928464732356244769727927339855994825995298902176914973097545379367804572870851961221272992485816948392879600644759189918355948466832466009417594349664666704336295796404394328533661821909048935299801969178046887512184944709454087166727304676100717029605187398438025423691218508452891600277297412122001945017757410433210548530782852923441676450203038000300158814319553635106223851659624170604817696835840259358573238896016325330703216210082976903658366455847053960912622231342614349928449104469059173116191723915550440341213252886764213396987055557573956457253073570832522650433201079035631930448868325230840788766213553374353316443913118071451289177491521343314648409819065119652857383280507762371796008523896717090914499100349187763621203756823236040271620466962302686013624375568750048998427630218041384918532812546411135633975861727643844604581224028906737298158912048097563044226329302512250952840961777861009040547655011478866301598092193440233518847543278415685119379906675654754350960202055159242935723383645221650585889915094139535971416805772752094661879710761836706315491190802323032964004018720826505042859079633518015107075607613610546076646881796456295958345162868271849111992832832503223307553780440270070101720609311628916134375249785909611178440933479976577755657888957638123213794270290958125148749768999081054513505695532548707080877097625338305678303946877115092221782278580892826944695843149166703315185459400624400119031985385714530127244244137688798550661782055918453915939477793117087719704247063960247465437685764608744458514111085979171445510735953177419348461003840322570376341725805649085450797777764471986447079905355258704508004454223759269740291835330865752605648315011039088196696932965078490779921898964387655303952344821396908208507191735769829652669754608140128697321243040501836060468614631153733690150468307767457063390493584829051745224679990125796602795153372230786360748668578316681335873777405722348454437166558029902060249927449033530225686063343930177407546541848841463319548610082805719618613122544349562184674405837723279504742490368406935537722568001331632515080697938821783430609568040422634311637238213230969330639698301149622789619217123216306880959497306036380714312094440688326877121201704441811965148643241015244989928445999400543925135421340338544650236060820623874219714055477194688304795522547008763433060559609772796217636008457131274503895572586971163646255270504680218366618418952676859330153846731853434448098162336465651807414202949593670496261007598027592388693990583110391794239470705402848182340002706593914244069410566814085145628923726706294477574322280094765750329444622370604708846025341326220762081632062244158374679123343012008357737004303978428855796224919572771108432018984616718124188041743503083255028588441171891660069042066258344460834809009028913318015542712041975362063855035647608134539954899133514512167510571578577750596627359066871750456187562611923812601402778285281881569635820233237305116950676908403347381545294091930397268272793535654072238564664362572445819888442074061880856132715913499928706270973664577092793192303858064176196577492736553602148114173580829963060828669039711723193813912383617713737971434857767336500445585558173895522993387419619671775577102003546022115033908096762929270303265385924701796614690898809635663272249807195732814334121259727169715560597220027012548059589972790542287232720312710878251514444472197790810296512655811575815678198968789015563681470325955249724367424269022158809415419594777803381289244943110375827987476264452083440589665025495781747116437265594237410066350759257248065984877110350169202672599043916782315170494458643414448379840511867118966759678930888366363845245123395995294747051266806744411385144310289948690123320569605902654501634027178366129877907643866663043447706952199208933369352706633722038125657080959842431553765425897456424855633512014484324848936101802538139368672477724965928919913240322797457695132841111040406402817420016140874640281709483887988070607301937174242250148236801526172751894744363894057340267103953547539537423715120031302836392314897245613575437498784252695689759074706265752725061456715584968591331896291197733195478928741519201012280176600027529268778204607914980415495991452350523537852425340948358270391074408235327570844082890075209996808907980379808354795855582701548681241591482736797619101835707606360648478065442369430571001349043041356314408217012442948598924938350975052552294488597735280054441269171548316717977524980869401780568185978103496923032004814900576115253895606032045823913165279449007697108627467295094595959343993016227600425692432199911651322027599479299723877634332501724588307359624285183578960136153036809656313571704084595828488102377019177296861797767215529301676056283240074969724183472587376481264056818337675167680216648392565371731870946944831219056684713199749499082649986015320910259663370125972876424859632364796148563246155961401941342274376082669627309835773593583607767925344864928831478087266365655084972972839627286592614736891868892438799628800372631910984263561131330976108921989848086833293836624485238424535828013924795011577381961093608089245864531009286159101860274955082260925077663538702230066757382202379220409021144365105830234566414928520362122523947485457445532989244132936899060932810266384666435717173440510005850402303435046080138854867028500324180940002301363074029122496962515748566447320833110897768737830410663113151896058463103203827136185739144626614296453259692445049523284308762997792208215977058251695445584156706536483581725411161819384788931175163010074931290562561774882148687655586626760146529737134591211189938168988670778505787542904821047072125964478536299987820654629912765178392906417227516644351358964653255610992199890877613987539652468113225403081791283084298707891682573903029096809639934491403160942489673410174773348555468222974065468465563094872463062747164687637563650081885759904141581653967637618000074902002659527578666280800940525043707560767324157832482675407586119185826420922789528688506104296319169179711381974548498913683944238808932020745468130789465296757559750312668761152247656427550961512006437773160693325975805934684723072046521647864592522000263174950487734706316470844140368059571275996003919706722199891938445535107220922737983077595333515108192623180314263791385886149160150833124169550227971620205287374420808739277191614017609869541304690253258923714797535645252591988387585199100121598433970265267544140635985984004993919548596214775328874643798946852638523478283475962494851461483647274441023561279797661531902727108106562432961260896915021650475330110148370856893871494906260991520070333748887500666793673973240126694919964558111261040306809408007046741205435722752694085373027571863722766064236766525631739668442009471272967914622035925459930395268771873498270669305600944189437373536334154759240543470543759980807583476652086133556318368338709475166120211675131715855839509119510573630071681569412737810619663671703095559029682833739386265195980137818415312932783025946226853124161869330115185108973848086062958195691323678659292377261541376008674902849138557406397769666870227465639865417802398244783990401165556448515639607994055226662527837968439551426067409531757824376016185564884166840361471828444433417901436211094271009969764205794104547836955977466742962693209812104986923911771031222611793553168190322528010438333755894174258789127753954282265486535575927568831627137083522776384789513702752005925860681619057342703452270512387727101844623090613206665709776952843569061483893025883597903695033592270494092719318559843015162932693767416715474636160235478432225458275168951639992665623747734428167719987279518536086678023896770780212638078817016443866597042164710039462517798965929666040260694126690768707325929221095718122634178697943770972788575419958213706405934380725247592740446581167880299989254116476944354292663860700872664770538008991504073079587924036720750109744534344028115733900738207565429373235394862948610715710915772247136679075940655836995824703780313535201827523137633534166546695037480631846088412001291217745466122875731387256389301867660994227206358316846826378508777995050908209879569299323264695894345971881719253228835200471967580708414967831004662167095959301944264925686759543695645151442607105594185276425971576155708917963582437256666316920412456756099931676719451078536928430600475819770119799052172802399363143441012455317944402652300217615086634945070187129773212475885818522876521306679340421216092777332029502941391555635376860249568981351163943489520373632191156443257189987796306717838039420533542571869728798760839374149416627000981733221571413432194885943512012988636439774173781507651811234539186756473895923528537935705568739281310076597960052227399304711809640545616049143505688387934778761418433863280196399684480634252687016240572562315620707843129374191530934746342711898004976698022624827619927717984018321310147217605121090796421707659891342250304140423697841302644721670971944698458061199543983812912858102326747898305685259249406981173225348209846074916576045244316336088414957240506859599140911689703617228357299546823496879607541822344160820070599914315369204478775674164722004387353319054603674806064741654250327222222012868774771234240125028644073599134190481253970031138719185147513997400363307696626367204830420548809372114081479985162342152007018738504470172305222776000308907581964862676064198280914512789810474387293386996978546509228176158062875048254709488050407617119597744778462219166769474469587507817334843868296880333067312539503940318659155081618456834605536313998090417355442074647906668684075555644108430791200140314200189964658047746185261718563517257698937807127737887170175842841718821044785480539013811883904045385823870276250607036376070503839280474539410265339506863892895859898849007723119264290058692367163297011964839830125697104743782627412591378200321566115437158133455541649942072705195275552071996572704258900517956510464913594243553414509075411674134955697730499521456028103714376545598562781180870655231213853468162092631861230446857975600718956592894158789373400974147474526503442834621084667132494455042268294979145519402807547181049892091099047194851021162107712263084131509900348815722648131207524313495207165665473971552325339791183924479874798618133126266413878724643660162981842480730855411361968380888188416203170232477011736644837111421607888815676697618624298884806677271579921477390432791029210666459520331439509559527303331770885138481807872088475842741743938189674041274940264373059973909663107203609581092426316269196875488228453129643105383985348512707449422097581649585583291744661650737808846054287311812477816311088891239547249271262305770975672182837211671105033628336919149234780840995467913258815530843909120081376358387022530529658638587558896456207457568254781524170755932908630136993641676216397776237052788837802367662844712849231689229771068302204770107566170746945078510889149107557316753764361730402222563916756069079467507010356089183139447404619439899337908208280742388153459988562814188733963257312874814095802238913764140075948586742617702332917427142164301906695789920601052128633007490285966353961398952900328760639378395437014356531994113869049719627854297345288686734675816758885860987041796442753072559819568375655444925555165132636556597893837876911732059586238426840392087886647530129587789905302718141284359029644479090032343836588983356904114530393125656742651329437884500843249957839799354310108920467315054319535836796854019973532920715775486979884490578279240221361113585943891367292853542970638980396444549754533521463015471172599222863233327414900541069846864766325117616236196953735764223909128915843967081104054432040786928728111151568999655375908212194353984686850331264766936853980148450987939588072898951819119043080784053084835194672244638138535102253405091367083654070609359393524530920220808557911058195827342570843456241741144696092924260298078347556045695819510657948073309397503311903162823336746462510235565107566727875119752178326320447257130474307101649243826883622913974586094974716738864235017763605078535873192794559422211994586912038163429159869301765177602083829138063393741903107500800977213335909673086305033691110571657537513786467957995790678157630475856751832183573423811756388557330190634640428339885788524331417503271169560146682735814508900807485304880793086047558589669949813980722526281229576318448378079246759623597187602546302390676097381713909929071364064529743001511765649339678713783738643945659154884417976501393955926404753066153724898568576987481143185397490793977335729507093359410431504088896723327479798349693781561532377778690252331783315245579737778570762142917500240533501095285731545152950295709813415937325398695287886068935232182438740226142029354719931194060542824332722046910720016629850263761242252184917227220516215011031540124089877237258860571365143227036484918180065737381869791092501589276165759159215356304161210297882603439267066032524285071820315968494748528519557031049623777412892951671268660618268828141171212483398699994268439033781962947437218175582051565657260551419618127249358180798155803926062162938911115134068835574207215964108601695126484382061284870392215660972119553405582661985589466654813385031068977414383372648127413594710489934741425558355116239510268356079592527239427062304695824645057858421842827689869373049413919914929554945649618856456094124733391363537252734654948444339276487171615143147847645151000626519150532407216463396351721912109324518107168240521247936839525139575561168264864792797310357210948523991036224672502130516989035541955748187472200002653073234974405632500348111003564426128092643910952805298510903952383696873545252902087483924321460014983818607477643178021288970555556689936044101406010047196823094189370476857439225106726229339737220529411980550422468251890405617629843631501833467193589759594207280659310202822816388950527178195040780056537652963478304451176663871503972905373611504946861526832691719326910283580444542746949348908379581660225084303826682822188873245756567277400302186579765347326251323142069242796287595613767345655950677127236467040245570208087849230744833406859215845163150394455876708024185732001196661251035242906620051483029830345713467025627834185942254125051583928189981259277540264859629701939740915010531395006796727629431690645996478252719643538179149152760288601566132879979122596260365648511758625005578964819110075177089223390913270362964414979093815205600570436250175020297617184922749175409340069925022549644785449389638202589758867597742729800244982178346336927088249462480829782288526743682147652032526255884655151750201595590385154990217545833851550443721149486952076109073479574680693746783079623448132719261793277907413773669552621913201397355162510971230902174185063631902420297844461182732302323704826977280720507498667058063189957524575368336914807575464534802693002462476635988068286763534719020608627156216699540333505754305207419339118079232113600492083607209645088562479031655776362985878912903789876611309372825709861772266909673808956240774698676971707041206900907223483855272038499244326502713469331628876972490625225190246861515838714253127625037836696851586753307579060404598674227748564974947592281001502446191027129900190013199486508889738090804149477151959177337882629543009376227941990985891601361420077869415127495138398132600262877372075907273474190279115139193031419043345636999906060657414348355054956846787278493215719313410943737395155010148982530644389309002217212231078733672483616509037540746297119094458147361981809434316882363292149872587866535389225194315381220483078985462833242771377609944706348945468294957223853023732722037449639203341896534515707770514505920856921370461979080603659407866244856002662187321639581656175920144870645461589644631935283966298390857344694563531015496783090400192354243290542984143397468640839441902666718964452615146872338517006791834327527078038513859487163148650764491584438951562643464087249984132364272193932437681723319014432489476160767367874128863703495527054900052454794763571471981300432987973762564486897925581406781070790171150883782607901461571010944300185004888819902672574557776219639432301530521624296946033370397167059002618420750177407296784557061038087460477964379713893402751457972870516504123657806772340385791951520379074505822403290247954229233077098617835409738536155929989289374453231504595533179505203402076200197167389670735634620811536574222756591052193310508317862850902511773461184499146431101463847464726625920098652635128897127308603427951796996974771769277402180659809711355310467591477510570614011454263357306623568038817392597645785547616187269910526036414786089372388682745584326926289365412427528560193649279313423973095663421170483069997610371086012603975725262233428013689577821455582580539326050963192244777451230038857854937177033177482794246543918167968053672203954745164335799986092346799632551417683992298986714967045546297811285993559599840502112841655946313414477804983231028215067325107514494284547833682569892732751220968385787485794118952675071688742515976730674566598978249494791734075617048318885535878144901520106218939645799721856057375493843376239243805931758756684771209676167699380462830299012843142071183025749982951624647813213190955581434550290798931891089986110705979909879941323533234654244915139031026444010848115677578566893605372831411537657925651983242672341172390189256113548400617125243002576395747458065674356369629700768060500077832105213085556264433676368263530998453670967803006656455118860654503335548016240750728842083040889587592885804316072803874718332340529294639156924862164395129838832523428212160555842526753411655000188605231204490856160854474543674263895272076950603532664112305224666233604029807854549292554445399469162198867231350234130352466544857534909189266100979132998097646199857216784072320269574545220356062829907415668841989023460762358515740903356344495694934109198263967249455157022198978148087217222987331077137131492112952325093409203029239034288901084098707900403009361846134213775461763314794550756632001822428051122280778536306891890880507174915318034526013001994788660172912262746518610779856025288884474502644952397635536181874411701718004638496559517092628298025367447645248244684429826773867224181495560980830130762618714609808922164458478577891824053719493499475262381804843997583927424398134320804194862583195242855347060863634885870657567343882761257044121997993558920806136720851325202107710084353766544742817277286989905822705731517930642745492049213375048204116324346836996943124392211032180910391303119755080125325411976910651283614457694640719866255605541436848777796180145619974122998257878240485542112279742064531953474427292112210269570717851562643787733781426625426480189715185859521859132115722517786589540426258524735819821464566168666857900073886094177370711596735345255592979131847370302853439655774085924792181654631337164385987049963662240291835616671897499260735688111774546005241828112757778231539786623507457074439682399914556043630590567365494859228401700222550436949139686441623299416837036591587991144007663207973001956400263857418971555575217574382644243337640940166953862600749002090200411319247435068905770934828102521872077193215413414823503880661060319253203298475338293476489123107411134526203438130259948604355035500444525750099707762740172616228500628304235469634897938405427824694749167490793886216498299032907148215622659947755158113576243276531460134085987499591540402176987427732054697696076622704067959933401122267527140524272135121391801204449038901493349702116402515795921235271028553553837436983342679975536741237655201566719840622383772006372862969962550246499500801358763267905700961793434242235412190115553621929752646823663843992515845654425643432533473518537275369138248387840436728147658618884888734187057417508860580826058906070506144155516555375677341144213521032441580934824445779109875315652912948479234200510088782944494495539708423129373366814087693097639770501813212980493131807060630439452218945525803837701515177134068640509565409246386787826632641789341412144904755646705347779203295328731310330540727316101701896834057879890363816496039557831765144444067432566296009421592067929752228529331415701695168633292827137199231687363540343838333510553065276366864023666071601211684528788257456826689107724615977345731123709673738248791939265433661181017861183168544207642884643976915613396857742053716719952684803827056483034892150690620522938006839724424445159352812753119373702580045468872801301353297093544261713688811881788416921964215181309019195540902778537775508703433815971812499342675268470522460063858137039106220267578193672567537683391999910397345330768903566006811781200953139086608558599855524389559737998976254837330724864997536819452232091711721498408536540043080200780592580287788749118445935357264808894123111374014951594916996251068000133004407476788946056494380294305032311068489559783649166161018322334925428877881004849053651754384892685368232846433101784595057062581061080715184175919313164648071207639757644997315121796391378220372826930268560997533299019172327587653451048132462255639122422921996802029242671159047341352167759111051631241700238536481866949947200327937752961610321629020037913184136854124923477185711842382624695464896606305630642982718868465177097692063340287476020401273977199221680554183100897540730698146318519740394997580031523384995635040196406114604906900217131505238145338995717153620124922865868198782131744146847062705468584727966319706830628718281025485505425346171586603811344698911294177912552921224441432001406785796643865042434898494257197112995795106131004606421729496530873126810179148209792006910773665938164895329326736342269462850374377410958776078363324759935325178406888150452623698316942497993669497947308414073477381291109261502192434290301498710772537453274159978806717740050354092175085221473459217793027054552247135786320278948873097465347028574690906341401482165712235991284595537061710145727117554609924461101404207847463489154321250279538434713723547973589896585071521573554666545637345094420306007508674295582024767952511854716387901200279077906936388448935935087666905363573023658289060687499995557011882249644601766516936455912503423760712399814882631132895209423736207843219069795052271505942947416130409899076796725213422637289496711525919137111124494775501984800038934939221500396418651784819495293063811272433005516260150916283831048142667097185189432121715633876188324637579391350428933168694356271875514582420182590483591602377994393749503632754577073036658744003648830745043572517017003490198057887787656331505028889990693221909797370121184368742670372268807345161443984432810752336391012296534249458362624628758632946203422151272792386131467579977463617417679777870052502087850323594497684061381618540244977278238777384402436540054623682872375975721238162155344635599605472733849249450054518429665736846402144369409000223487860080433577863062417406692934080936491974733870024722834805738893474459935547855441804803491230424821288500525919290487269138542301220661395483516665983160198517084903219216314743652589936177553448812661699153255164899169930702656679856648015990921751446093252206839741248254863275163824183769907148533570566317999778687940790204731301644742882742659203644283813769305800456097677845962541827995397136893088817352786330812220740636515177269854589734736433689951205020993770861840221588384405391558064559594870876534515500104914553037145917794999990812243601800723549902268244505692794485936622721962340084060001086793736609894908864250578980804075039961294620180303122812029757916496445054918646676522246948244911743814466780832485390809041333684970588694319113742911320291527800001767564251380743070634165037490498938001481269412067525893794426806927129068052005983650172347970630296250640911822553493205923662809918820956098683447512973204473468609747638110171302905395980917652728573367340041548894337074166351226977768684227663611985298654837526183464469590953851128120472313437784015356574655334697564141516331020738693502194315182978168096428368507225638647466284948277707080182892939464687655683222179685656037465718562350811531193595938798383695561433064798122569508694110500297604755673657380840622906632164509469261835957050339618428139693640808597244616241280234603581159235044767572207060326418733396703313398770117829742163337434594614515085952200062219027684159074986952056979445594763536595232124036071735564955573336864091519510337609610148158158931402601753080274631375097182422324368633881613017409683558414421312770691832758556647302763851785871946525747464044221350975826488292082445896789661391724546820289141880872924860760364785519739557329981990327116507639102829298357183475405254746414505634747607162865064732297614494885824738342937675346397668101979899994588364915334813877407317681790363500315594350647481368116287434226730647946269534480799102168155018915819991661097840788927257249479384985293882190384787534190736376223701378119936320342590029610455891967777903512090680579008447963833641292309374127757881682135786795866513531735852523044507354682764602395460623891797425096231678215843094694270972368687669797132446271816070401296552342647980908085519134889157306487434473821846174260527398461417125430507571047196103973472571919505902663513486656437411708608510285452104692162865343567167657986171087955054224704870493933394938036214024903635962036055661957344115160586137202938451442589275442344666398053114265698922096781812520623462493477053123357281225259235795683123091578562141714461715376853692888322029285658048396627143028688710206702834141390309565065634579787346232874348444808903847893495188604561580965969912821960819036553493713196602664191004265444279097127969323723564803073216872608116157383909273861544692933484081031908022623932229140261114052337897008187897272315971583997846624094833413196260538818132824081928725543688114000881076627342569694580830291855769348000508667472310006696671143209548028094144848925129885305163958998951663285239480044747102909045975651379667752963621183377737341023345374259961157143635838271168874021806240093345647527772749095901405827206772382053576701751082577749270506681617549851983127722010574378605815431498184516760505596983202664421898376540471979887659769088711962217351758602929772057377161726917585222759641161526547835535022257481168433588024535191754202960889448861075836510036435428404370795907057975711599335702249252210586750582945550917461496723528658028760144908622691219412039325275081940350639410171761416466136651019362856941248401429434024840857716987146048204770907423399791321215161824803477952899123462309511539032773620219553184720825552978623208881119977309361291404055260610630526961877839159458473854118479056745623396235466124791631910166915108846594688847406151653636078326366108839288276343541754202694288699765243913012889652083335786667154059176684388928104972901457117800669352380015514460852959740908508597225239153429549451004615329396420365748943539998958118441900680815259113296214154570859419518687562609692841594827947838733766572267673963027338009806652797630333487254294451878865821544079817904447353697044521287310269816644130231268392159100448538335739875871657929490714204258325573844003449500324378286602288607602481141360713727572662889064775763657929213673593155636929616967272867112580926981803172781910005359546901750717779027822046366577240288003642192085624493672706184066792768423651245070307010458379483216974334929667214757381511735341694005976102834375532486215765974454872669172290166811770689993974761783871515286121625704417886844226472784248813282757038703379667585945625945897233747892944791864679070902933958623089547810741645588444009008426925697172243499278429717153907189375425371712417956405933969337849876794549073545557546647403242810333741017285403830309315903561141053897611388607068783461175283038096960543302004400709257318882330483348657071190305448471229246567940379884237859735187322652292948261170015368140964084308097365174499313331116876394810945917571778536564959721517542048314959499769934519830405987323643044112893765980614494072991457288606116682663263424348491603150195008361760902950525901965164611329548120632938109244993282489485502784464899396230443489816176552686049573876597897136936921347292527248398254335767365891030783052045489508385088434809757586203616452656900250536235134007377787220028505115042455094821081968755697846990699681134240687242640842351114624654626623419422658035214819044838218717462435109617642468447252437202586915761661898359583262982316994435769175287439883391927838104257422447147237834665518556663932254135353363437693795409978152208714004868698972031773540061767170672324630364710693765024743443169591834651261564897561151191024799219294620789358401157940702805398767235790918663671880599671638847002641927778172468100707035417319439577915875590749568192290680102183184693559509392391178075362436354513042408564060037369150168963779157087448933937336823791556169748745941509878074206450012058127902217162911719625257486021373036084205281908464001065505041194807036193949211802451296886698774459124535195609812344232421235181705420545321771897980887719961771525336113743610306331950479007260290921248023984196551173767188883011817056813921948597317910081702145073463718330006382608348766714687870880439183045233095829908186652235703575440417442513753183395598487725038794474146024532206257755236717875260461508195037993960395756572876540641872988603828346152824732657590854215892376533910437766707267184221538091062715947583695618396069444796186864219621574936540069746105885119855720727791296038730824961485257437761536295543434520799213395920243266906064605334544781776924993391954476183629354635279474066397060286245442426402283870301182915336765394861264909356683833653626863847439203934445281604018575488280440196156532303968564565635252754205909558055318893353770067345909854683054487620959527607508987388201058764718042477607919298505804650311580417508308241113191635684798046936906586890687349378557193084506287329621690532108884785214884579386106840341773765932585605991913688669600816390863380647462989820064735736804461728346468646251867125592546649936618820817078779706025206027659859736253350556079702463430494911732755021582816326548103569711354155203201586698415024640911228422011133180270104625547852193864112428053360539001489022574354017089733410334057976566556131996568244416036282306174705062220706294919256205453242018973019212432996612318160931992501856795351425891612094698020161529505403965934269169257899518772935321981659919809958614698880227902936163613532849792723886463199126445626266802687212893864168016314739009428011170237487608272973652887690547861687497546700938662181955352720037500024019830912859437534167668011765038813854968117512182377576779402287355385179691216351257585359578675389023934135285652949641400247796477516519239716344021616577037726803112617657898711627659410885077787398872365340731549479610754197341994311946109260849356600635510394033854490194197070822154668860110943316226825229562949074661833649736666615408387820628211272184370270536950090187534724933467575407826509856108337729571577768971561138148470078246050845479275039632671094124196287572971709233080250310613386852837917971951186419233788369530294917191037215975899386269483181051091832657137342294296509561011719903022746270199336320161002025277234315859093970439720476065023894002086442863067907257398968655833929940385481329630717365944872791835063231370240285014776460445037398304323287277448330991153726308874487310995452548826238764140403613285617023761603824542701469193984363020716737513407632776917504593607511410771219513546656503447137315149973693468333287703829536392070064369691524225552221200424025503266916373837700713374673070133573718888280452499978307502885072568257045509391882918425078902008169452875076968450275087155754715257674296546032539856156034174367931275416772129507231620193378369405382211518148054460692849311095634539048924841743778907565020180322923392967543856672981672448527560254311196720193934488829079559744759753777077257722293389989984454838286490082645594713626279398827969523400705869476941462516327036887100151804931106126546259082166438381506244745057135064617991836091438116478582194465278979136372820505886733666012019871311443337969954555465010918267719967918164645306824727719894857842776837725644484121446884667738071337312736014835766039775582628502184954704718658570002132808776503214892123336484955453510965307491883750807000676730556447694690602417672841658422438529417328833737280516515190889520423301064076495726228808930532518645670535484405921518459852392576725073261659167109344067160747095948876046260496958606066669707648826659688716167231919654479394089894291328249068427354223115479537817338430584268474137836229071686548373005382850075073451939876627357271458557044376489695280170281998216844406524809091253069852700561737976776351122799906630301339124554359818847115405039798048572961910716448532932749434302663201895493948013405513665611139377937312805457858865038896580594038459692750093161320901650453270255642136788795424480753193456419440275008810140105378273900891019403211861750401701659252844858634802366729852166505966293897043925150454094438567761853062132581556643142500511072790065855626395923574966501780892018042563623005563518358476832296874683791057822757217536850957386730931550109548373454968482339692869366559464147634815254719496610111072663077307621653637179495407791584923493058372185651107513725276402385175760759211476501706740050021430181523537394078832903760057508285732647978256949059029757678425662015870403192228884323122949566302436539607723930587238983846463909582995778807473993686286427531924005782931143034010320279189208724249938102738631746224749017526288446519076804573060053372396856814183228957232250427724316190619848170962774167299198270731758540226072280291602359167515604500220171715693256327731869949615979235395246147372590666833296754702014258686190568714034767187997977638539957136856995667236321927691850092896040927546318590661274581785110858787664408271322183495759969539734199236624562931040993788679408122711058150069739367129479268050434123590335189880208338935452496771530657071612543047044301352529028140396334618063691733524765092292932455174080248343443132951478251206695485771121149416628282890456123761491582346896042172596330350018859459910999529731797717743377563740271448326313658833692143901258672079813003419810954557589822799523712230710691414513022472041643582005596385530454960932427018812640334756006460882768381441566527938979844917836852682495267547987083233907685540610776717372716605238653135875790814471202379854485360959642535370774521351576101122981970038474403884433254867970523710519106312114673752489574602751382668061018597002539252250584686342671430520537089280651193309040000456681328450831906426081337778507651755216494934563265504372209156103484087074153053040404696988334327427851220453914223015661125228635293196357622555772872109332204926750987197145848801481588897188953657511395729075255276497482884303228917873660064964056692800726918628440449411772381277483946727082354372744335257940613217464700185829376369231106336027370238625399942393601529554892198239627372505954251779495122457518949288188333958412286643297509609257072627075814280322295667459467259352697450486394480804068286761098752877480447403555205819416467524281668811121720043889526477390108501682056171169838383069533954727917785601132342558059438762254484549778237697250722894863174575811699990347030254584043330975709440288093858896551862695811547043050442888129520396744747125926537413009053547083092016778575688521173656533561079498333288801290010730565342687213582695904083052714820702825248857498622180130493121622763945602971067843489543244177733230477231567373677054558597966352277328921699568313472494735170045424199370460424446667071422716398210423298716002657125211317347013007285344482163116010718932248597457752768000173011971886750696778659490320887924178868226825226990998880390125429483456624595711179938265826588491878090023506330979458636687388246295689966545516727195978827443388698306701259122290011792520101190315656737413611552369702299480597163357998762685071328806097636028026547372553150313090559138667604871687507041813561247369940135600042753010093294457459372571148847801001823405311180704860643948791748609658740370334614926321063428611030027330739750876665769690801536625974259502588858233992936935485069841084971807428113249359370005095943526121256443585617443304015110408957355010534319798364141615792857812246455912371652475774808432422876612124997457608731057208289983103061463344691796671974787620413242737763857179912864111645788476069264716055145168733916164506839415007562672243408988656543625696296373025628984373671279600028917398821440384174996886073948005035603436637528061777357037356548375528610507676986572794946624405944902768217960879011105316436244009059041850860004898547934800505333943812345141587550293318507426522047941331005019552090810578091086479131128291566508241821437653002679000625626410245861810927427732016829284844892213915209337813363653012427198094001331983508117216557601621177895464825818996819274907565054063580086635359910044194484078459529306927400091289828481057998068694593491765496242278761858096487419076162005085151551882098607449419667567797532899250167084930787950339040621986611905490504259377019736030670520118149998908323000420774554080941143165441447550257473893209303912520795214872715568358288411385892370083555568835001662552705214353429001958316005335504439620477874368591213443622979929833399749551002155024601173926436056614671165057766122684404029355024843610304805886008756751766992990753344151180081908923513261298611384459747604875917706853433848352551098382167345992753181243545465969405026023921308388330350824696839116401546348990873876468325680612530651479924146943443651464010155337408454000257512927556805115555048190051799432464375199530815064558921588148947488841697180124067974134564793554956639453461914138853985367920209643070060618141575829596278592537400545031238965642586746376317003580686392022247591524258675347854193528482701464105707695783738915769490172816474817398610129672749355942830805888653163823772967755485884376160272978502374970233567316759313539871828092855975159234617046668877619026655733425520482198774234227330715429970461495837468670913580074039263079480228062431558796862366008767618037650972053680717420504988914709290945844281830210395959699801807811574760467499193496763133140610416593469944481948096903351403943385184732479418911395972914796011422343876209100726583606814429211791567842184516129773675546026000027031729039694376970414420675649517896539765217163840765282528009330885489387539691990045023432660252698902702649416080653128009351175661450237506415958666315745130072958025056649028720162443162664393877495173720445911348324145724499936240620893995643599181440175726556109327961969765820770368359462979011947802834119331908941692657002675544500587060781926967860666404804047483539491150502659547991652030304639475917384914809717906099445844998196431111406642761575764747802426860102484938235323021264380308167927382969373245834322764759547532033875121968715678505849227826213848713741468131287503294135080824241714656248371543671626493558550969435564597210741262246809539034892233379643651945596096049726194451061729306960880524709099661464556363779250776172717224727737180531831594691193265451023517522957068890536939647890038508262171230739961557146413242333190497541077733588428438246980860135280189963113081616436501959537973629290016047751670720394440271186804323969112947621191282939159572084776053295059036281265141056495191001188514480672241062761463985621205171686316541266566895106712150968920286829905067121715002768120865017864944970938906505936749729962764168141344208927595500451577173138143555772334877657464431353996210026062506067408967508546699174289731761063378811215342969104457658525345596601132603466677171408858194511757349082330325595277189259339211522622314277769385426564148739176184293166895567237035921661309272026218542689522014345148398595478808666009920630460918179846528633147824215955890665697764708408021852180884829846987015176167539880718773817239455637676203027461842534494993034848380846564409796362693206917109363364646990984109564034372957162805234980212733401178917807114408790526588123929999183328208637077458216016244395671890891526920500197404178946526729994728474715353756238297264604545743898723894320456881851732137513826928225670355508443865989254247905665430506389305824880253333904342265365539842612756990937827651586348183842762555345619304391011586356564896837960675695189845198239480365277179022055221596532697876099851037875161769163080008309708686460006694508323464880544989993192426843200739682973420138876865893666508043741901730742211278921482896364342602728893684836401611934707296663831843776960003776862894869892984923062448487757232961457239702481034594997050904111794282717638879333320876914316275656598103841413512315219292225955427953282035154618468261032680830879206273050432992158116298148705776232510082021422349721239870867095253630836833635958787521554272433409095068214819251137896374171425403742331441867507978967574237255688619117078458493488846298712643737037618410217118341314394389370330478769342742892529681268111000734981714407809178775254792403046496168732314502637618979743783721311887330562836065727640336941380710844380106854691313081840851368289785056953104300484780085897271649822672216859417470758652061788058605434195326688833267620971437384093888270921863209539135324203500585338291505129167651630390477200758665581981310740029016539771189918980168345092532179762178120923371104886673958596537367809610094936976676262982610638185691790237409353783511294427567404836259436503662683685997797881411051480954703654921026762888516230677527467840455670209797079970872868077847409784734937821919390774861539057188099405159532869613827278655300953189137622166867651635695376884768780254079413587351249490294081438624669006466428591846048833572140406386364116593637862365756392953379992209720496222389592945004935930770708996784625038359586664271970385447989883408040472711482183951118397914859852173556513134468267783857364938069959137593747646434152165207193517939798076367154517307684167852167346158347798106072288556686479260986726286286032737332579924732215998698661264164475564617654143031075251154134686910939688734056559081218496027233035396116751672092553528275395919160787149166816639515731464932748106156940390921833202169877276665343826378804908715446497084505542610757417807019008223406906825728325632543258755972225848289671940543373906456739538725358400655219824232953458774888908952613563438419039300698947463911039462335980763563303468749474964787733810666046306206358161449631135069321986085495780419573318579468036455061938869805385067316263863292682396935936688891610769219906117523700847355674356582456933968223725293513372615329695326850751045482476795723686881166755325161977071913452790838561284921069052686583405836676311350455282386220519592325194908977974986152115936048731096267103005960854209852028989022002845332651169095398751759151731172027108917149264836210156944822085947010235985248965614673502768916536002601891364439074902618158354715787198659133843583035336769647073375500032736947838648881055137461873448725446331155465918378229434466774631847673735733980530341960823934064278586682486708916590079264828207699827022937977502115170786779102589540474006917330652561282984410379706800852283101039210117765392343529976677542020667445095917557014582075729643685279099654842349978778920259224726255575557015136087548354217923580916432738091447506078069425180952198373594455010595588849903704588164441653490442595348183103608506445627345977824279854501539119694244787965277475624277407406031263845463403988468532112086909852801028307896617780052522231195125298646821555811492148777248313311644062143690132942756346374752556528036266713683552404315346247718863829489129404239223000481371588577224152897425981632949567616240419970072038584488375117072806793362721720078593014450530842740223502687433634529795319350618872136223288767583553043220344474795957279327538509228533847341514500128462782322879619702813466298141727838503862644665704481575466190766315017508012373198217683654256683169891872018748093016792991208915269186427189924449984687019948802003584323468059790687587591541861637549434188878204513868644705898730087229852961536121140320519253190979361545822892889315262835311801172556573945857831210297165625707155476915466732310123435934094925697793424381572751076314822743072036866413248527351683683503701528096406318014012880142873111134406429660797335436274174852444972243183229318280343573397339533738920449403151820663010667959605460227693282731200281158742367921955505940626678688258136158139808127204812473607333126064624545148805543238204788348295982230740246827291751448641791905226933477208812355355134621727035076228510260690503809303602033450449572934322174366400271988465262332813695212374479165651258462115303310331012182291610098579652928725400800343828194519521113674081754496231409581821133327549685502843234558554910546260060400613043634377949047354907512968393888758210202250513961198922345275458504392500776424310027703068765420995325186511699200748123477437144322897726182398546765444963898476221615919837823228450289881309891402727996221273458921749679764267252309698992071912646960985296139216785222673402071243767602216503088254815104072128431295878261780171164893853917246560371316357222087991137228985036143861637024996741160581208279780275714563001100317540092106326139416344322084913289754280345922532677502628021793804598021903045317196532611278957757946969681006620688719082504135858591236971191678213702034988719424060985703579346051059520127177905479293313308337915132140851229051709043035852223049901186234219540023033305343842200682468748082766158778215512061023489285200489895470597987527329132144454125804807285655564462012714791961727753055370748948856320939766595580381783084679000733318835193781171921553506949604134968959898171390121234968225652790350824615103788291312726427980804558672763628143978934924620015168361959946791180544683522642652106659150779744944052915179444511676089419176198497488509072358074817571921297327412074644192207067698143080262356493195565171765178076932252846789751096651587304232950953301862444527240643744088970175950837228557270853672326096251002256882615037355067020519541263332252287508495170636712199337157386653695714486860169671477315954470326505408277099144792783915559695345419702687713361267615680094015870518511473778202376959942682262766364217473021086188992584090005892242127171571681158324913351621925114268737968063367977087902132964167055630508107639702520745873433343388683453642769949723486045391986507639166296145241567685284787969427706595223523040448320556855772711542636656564094320586607346681539296788310064634929168230175235119891364537717703084550530515637165456321465451366576429186199346671531906835489417987849463256050520215939356736557772273250313545019032014760360666771382453362272130404581259975557064876342983402488523032727979181118680182300941339331790121780705839373378189026471246078794058068579025739002995101566519121653953799121807326001235185533677946064299485544727924183982112316866788058330460048953810117626223385630460499164040239769340294482232547056928653246497147146337324955194566765635452249353764923783798109700148553409228001236262132515197924384897650358542219272489622901911277611368629047598253899787372634037606400132975279985480171664668625042422240598373077180710756398304933879573443557866247392580565846581923173839598021501880799426355247326327393561103070886004334078959901504451046383553901618563728179598534929557962577109573935198027259640605759100443925248505459512916676423006158474689922168254935569788523373860927430391436397843621167444434375491826309968459105913914529727539738793616400007834495418277803455120384230787547777648217226909145728320095073963781032315801249481214915841542542962174220360834124968904309254945802371081040802399937775749700429737502781805043289782757460429708856723740954760577342500011067238593114471789260387701894533209863675136458794334770981403828537647951932809144242381987879103250487796297928617443734657996075560235538268041644081895355612003502787915994326127303660708712971934378486732580482213859211798073432725892824987311402169213572023059144977022158483096912170679011013501748900634652880893505265655710692882079449737853725137669208010209210646920871416192064004006275960848519855456664670755810612386676516260021582417389205794948805151910990219426059339430662050282917759258411944793683052644576552471714615252591485314030120778407178785247744889263930111400112241499986498958585288452798740937588721352102617274581921538468226065928426634532130892462341322025808072879500142570095779054956714585010732467046338404221800357882886823301597325947894223525199477665360258348063887424338417988525567896438902567767383365505023546959059869646180962818671636190354450424678688774228865616482610684160911822239180350765626472731502369257624778612850608919012340648981324898307421054560487357390050130030030901895934490926118762021399875913301877773483380330263467042244299004189384783092901276038387130613224514726732450185254333159382343427535962258312450795786605084161127290973523148704930440313250491958752162811881606672737810600673293372199713039399140108324830161381907459339347185567983313224247462822199660679028262959159960298269566601825444376131721953367119913385931120593677982915047202541804800391568656933684685278869295003155473829497170945363832108980801905020987028010487412429261633214613088294669245796916392748383169523103242133918051452834644366895897797612772558597091612149530070305622459421387727017235306040744703576923250806846088664362256848056434028881239918527501992679560650324002301233207588684315847545270948673949394115711417859457941740080192474479584524370600727270715599571719452764768502079131472047702289975351048603448396049901972024938921229502208510314053904470957366162532498623876990946578824158660405563897970270265351550499715861230672204475142526650709398448228365547239201795252183306674611437741792480363231565502414771104413624598450837484462356917119842993665264759222126068818880067076548709519976006526083797456644591029154987857140935878115247924647476393710426748356800513039047000280338868397829825518802016842092314778965570252884880929978412661733267397530876880810356529575753425547377468569698257412235936890577174966077246186988364694061786026209036210342816990759360713840294153004283186739538605293547009099926520409415575072823371553153038632412200893353630441262968638734099909490733120683272049979507498854000941146654486572924526832020683026305680482753622982161968092457774194401902808408563791961705075639035171278864243389799463301416851311835510140706674492867975926210725738452568187406018667857566599552045006005632912600457263208878665254683471508733951581877595501505725356228537521240220440704932025764547716498677621870631331397437439319226120025440198905389239122282785703406964132313886001192799800624734802539112145476709166418634316024752167744930213632757469203437993193704089300056586227340510766509484653379364250130643702323425863456219795808602863998379044090251028080088646870934873180538334615256077686816447310552496414629441936844768691552091287365929544143486228723335983807496334101585015493176228289905295562744994646550749497163373941382171859105414788595580119776263805051114553048217421412105252320402108631254366999621734268385485830351082500357460104993085107076216036842269502100221903901621945311431126888979435015878682918969365905800563030194958151061938420391131543101039355591333748236240742977048817722968522802701825586407368037019942389650474229553650635335068719822185930080665365579244771594943862470622868402284903049316523885229420199430866782915084650661594292053981703038075544366482590003369639730540777081845533823432088551134798629827942980932822034803824953030618569307790439416497940996369701696429415870872292446019984543488953529223209998032578277449332391159844844665576702364790736524547781575083453040027062265050403856875116939372034020538102477956842259509740119246221093623860918579719868065092456507756996103650456251616276252267301579970083592990957283771564662901779943914674077899008588442478888214083119830422004886240514504759188630186387374439379082959449378149004928272192877929194576502279389636009490669732445512938786510407723912652669383942062212262193249385775964563270837642269286562946796407912224293825488103928954111014315945502435121958158207886157368023939053996008571391704705968240817541583683424959423729444051007206408121657370909950960247804702937421661309504612668879487818933746283804673295025028067412632350642737521999237825465071051087975607060761134409766235411852746443197035402189214146736245987857258302572600508245953188253975556611109317370197458466303775684095812262008715039801853954790841943211167497590338081205005099392760244540150158564502819295803336363601142288146548777469043970838610858763497423489998603757377706330407511844349858084285803784398689302363210237043491509553600418832508165405995771749657341289655641673323216630290487741915632548502140830003165416780759392818754126694847019003171988803744424443023953635953130101159175730892013577364067082748441079985793651973025197963632412691901872190076895005051185508376685003577649166979086930723363468286541579345165862044334410640305045613426233469944322718697448416675377197106944927421061376708258084098088321954212724074711580767526126864268128999920261117963932597016638690468795864459481159991731556677783883275947838268446151921096810907314635376164625955692993669467569170243963617992648216562737259852695400840457835962740099342944622898894896367242337054223096924276861982711640935313516551554855456884447959219883513909944928213718685962034929335215602248960289547512016506039084120356913529016943646366453694422170582434280502931184779320217477634877769542020377560611704936649250904099238735384742054913616395907454059879202421188374449596254035561439691342129567011076921552701790494045217142799017782346937576720995249324371215539773404158066146554105130420352763662375188104045255594884762420674585153011156604047321058881566304062707083379091981847756941574504098914783648362051467389553509386694698784342299628871230588968974320988253102436357003960397040422744225529746249934271757969816324002860137725625880055147557274609100188319829118718687013215813729912950871582595525006598082973831972730737385546239721208541020146224307563547736822722105847859706285079619035530773605655481163788917699204021693312628459826592674245199763775337541254936863460772493758559022388768859288410434999197984727827622097121894454114872266416549017523531939981825076948360610199178492397953513717919326424460016049856246856853939018252482928399835176362364451401817755161438537684071063067929693282663836504139583580395401725542762675407805709919092323436737164232092603916348755395702848213257496030343200201613035007636972166470522993589147011937316015729806322608320969455470372860530904750687689320551397929445072278265772502225693165241194284421525538906918127538158476151580265898418837211235240055026052258850858416663223523148879283664732370155677351787185173623758797035022824277572201025387220102084816989556159765303511761628321593566759764072397271236447119251144485702879736912259260608646065553465035498831557554565692963277423615526912364960861660776753331022445361929727846069543332032115394417450614320219278174785043138188528060224897635608559531582980107957788397602402059962493307074540642290793183222870904430038422595609182318305487992408262503131106406219940619198878607937725929256766633483960883463815944984128194810292032572339594811481454814914441539456798291098503187381333018271273483636497808899925726720930094791587167675676643176976126451010412650643163874205590886248491079168268732896175319512205807974003078575186828943609076971255198681502529746877120348192200169695968975619261939418140458937528191736995605525238484673945170996439302923508110862516434227301729355018051596795128806324428227508773557610115034082382553406921583451461702872752826921309448794950474372606783822154160621099301847929829559838372921459442238665673284389401911047930085971801735395673746616518600118285994975252697135392241096255524402681934454419322106916828920402829048093441294670287400123723750449772232297418510983938644254254634232974966536533301920585044687982982708390471872235550495353803326893291401086379986534863609139663358520308866358749786889523867007362749897822400246442588581903235543555180331994237887567701422143986939341946478951576312040145426083953092476021560812487398245082395566254078447431548730711289312902478727639529272590794553536271172178447059437606524540167373604910488733483914174439184130765672196341740604877443318444877230492875010430274876539864711443820790222152941825821254375015245735612038199148032612753333078326688418873779255056514560185120117852477520003519093126410333302317802806336538851329384250903146163799137740973643307588927941983172863735476316529030086208219082644788112937969614170244276054173913080835184560840843953091555079526504369321313689251067189015230324775516576170678210840459793521177353054811038126944367077172920746794809687624907043740523711372384163101334476870426335176920556346471499750818250129499233553797392468613370078464332053054920260589153683571074289925225703712011221490100403262252692225862052999994878160048876717275211704590961679989655648804391909565706905151053789813748616876300065799894496937034239295428906725923554659572802996782945700223650855680374403469447601079503065012978879703690003678726454064631312094499462146671324497437416003590721035985062487197365539629008512345366339884425255741781955725231216517437161642587073146808787121853642626145575439987334012682726131122779314653564396449670345250463244759866331812139953991618964506929411477181079457685892509053311396683363540036218758623988511854810666481111898368840098629849646773246453362352131498260927232003375427858460362631153238876856144349768417525087429320830119436233029975072436702078347489136885451938732839896254248691420068227836551929516685184391196932906864103791779038057728494445483083153162920439088958128346606142025927260349177498502620483358558573945349555102068094016026123042475699592095557575416286958989278352891813109622602347406932057360693571867186958379263858478668055604290852380749969152933205325202993790254727942676604132388348197392732099244005974473022124870496133682235006753778399294879275396295137056655889353221461185441235126748675072121566260974688641210846977995475280057215831149027114842134927259933289198388060285626351353029705735313723422926351144973356583414112775318663047215579232649895270554946627790321145244015050856627110883332773821283173705650698123630606719463621130018161230336523710737501488892383239507915515928884730782111075089153036809120601016865896125067272860804207323370962876223132225888180375936595615684006226328515492647369106787758950943526477956713184877631707185118025180840410200224021046104197189685259255680606376379108586919124218131483045099645643653569967850057915951899906231127235002765772480522837977532199757712204560606754353502676964966828546986740265373500655781126249844874585326194198400247845903884485255852772778706274849819070730381568686219289786733304669183314251753508204483314177938485230130308677804954034513305779146486100655893232212441851873590857733082009283555734236325239775520869608672704414415751578431125513254786491137982386234012755420491141672633470704262999737716120692124238774610879486227386464924282695473504107368529003136076530957613235826836490280714395791588533054450525545598043203654677189699816171769376201727944873800777882437349171962302184970434252660288017712586055053933526010504057328789630144238992416779310081984663057909802988446796785058841471976446111344186025212423147291266169815309449994880813284307666121901106151426940175775784196374010229519437738551694952955342539732929119672126873962644749451397541926254431133643049838702241042775756628124578920511479359057445598742445286612897274213197859737152411657640788258941357700113533020089970660749566580525817652648316453382951544951406458935872235668189811040946760922987476307908189709320521844226171120556633458007849762643928685571934836890335703789365039543687083156195576165706991924783407898036337675302295395938678675578013539358058789642321604914626602976690971055170730095096244351145497484071657427917195212403366377232824170021477885959922853730995242326495575635056917796314797476150716383604930184460047047597233660469937811718281119614252583126726753083822116214147647898635087463704429543677857694481035388501935990547206746052649506647275208446763331473713831872735475467111728757776027466964825123685999212797084843818743079718297281702658059841032969841457984422464735943706546099713000374535269176615989439868851787412023790079680671234593078342465589522540652142014527938813557519358459347621725103670423133878172255993597969256860856822675631349044443235499157612910667786685909485481812890992869591147841849061090240295749660394477822833618217024012345150960667865742872150750754613645468622491478870705141659019014318110032114019132368190915832840729465568452911862780576082658517320672513511516426309135472864531921506656149713583371838195624353965951874787926660390777429327638301721411696996324996443059915393013210409245861719256456201956694464059662907236176658903295419161593013889542018238752114525609616556809078390534409345366843779484665749138587085890134632581190755256067216687190524332557080035654194395452017474851305557335679186732254114254220682122226717325860776132088479814759418347786898155530267915981700418286410465113606191858860294632405131107911149230522318422482277523206653889490778672686017453528736448610737338915155226200723260652398791701698488950691729153211921655410866088041793858511369433257052642228651655611532725738959810155946196314878933714746465398710696665040225340235515548138049484762488935170288976307101485304363692133620168260683883803718435857787269991211797164956877985991835201139800711476294664787511576057778958575262770451427818519252639770451600806380044124477807066131041056043152892402804873137296692043421275685801586546031455377515348985827601114742545299304275352362970248929422461991987721491534589836665268301495181646605175846504430989405357843595089977609311485615438947778235627667049802781551204214746828554127141874258062711030164791881608735631116944386946389503364355235258196569198854117036392891406424205128784105254200676787056084672719149350651686886513813478423627461442162704504285883162770118866739238634643259509232129614090366081614287002465380636164600948835415024419438269982156964562195643645228211259191750137774681546493753239974152506558018671995901529327121820858968245874436145097161452923204433700547611322616609010985263152263900868879033889386911889611572150854261116729863255715468014132691638212792116923574025844878293648120166662293221826393523813980180133695179146198332425328040953077554409804165216749325488374117571495158789899739561524001669370639570868852868973691724370001943196927576278990661288801451694859547603547032422451646499557895205825351159474824368444143050191843841092099925974164329530020438205824702562190369759423484032036372695579361621611582727113796974098119276334692013014490893790498106697268686278272611479850667414287778934936716246938710805416890220261073186922836462940593587726181021180610010828837067746199227004175338207900745553296026310386788340768236047461997200315989792629496579107509098753199320556257560240441458819254486243402869207837843930248099976159491699846430545013751402812601093659095506457514615138283820424572665042102108934252326399486579586089374786141431915055741298503450877602364856072466214007106627851513495622223511742569457410630151109475898809423388358002053384075984986181679868708780985724661162973159637871561245624957927650940299944717516872896006445371286774375807943827001833518917893556286507922942858726777672511132222829523082742453096905255602159059617534945087272227709626259648580037962090989581006117948075422079184885496712892328972838680989048298337971690027068464613105927939110614746224015924873439668146201490144579538692674667652851907314982379442360341642352064330294952459303504512117151381817583827639165808169317404098048461724993231270851310713455452941404782852636086177654483180121167472236406905564699012596770829269486378483326853343449288689259791930139065996541797423338789750148067263290481487932004849253523346846835552547779359613712002476727248856889965462654113672548720088464521855341285229482846962159697136342397721153740865885847575262785388258873792103626934934872743682886513458807529243608149282362428790656520457668297983571965467458382459999953708565268790681666341286680589175865635491887845469231960338877112595993474681142595757461688236248214938344146898404103602936139055877350804894266647203710589256754421386124190121771218413431744989248264289795471282162131246456894437142140626113521813887009856266856011667247580518524998089087451490751929190584248982006408207459401316631298050051912546135071362452206848503550519551746948305338999529162358360486088520789772603848030999513238377929094861300809869671099462702194764833011809974435585737229705430670091407624114422783747189928527578710853982451947103506867782874525134842823484857955605422490344103069080553614895320401650055767324676229325540065292636785068951074450123871255034639221856328658845315381591248965608048367289182513824140344020206848434001808022544031124803072467658627922587546253401162256340752714667358961702257941630041784992382785349089077136205559264311930815058265708045211043515079057242745691893029819232353134251073261127044972841035030438016706278396942939648522703379895808861909286175294456305182613217946671208115735717067024630669721030047154575169200801151094435228492065195776827037575047433106158588720608813572289830061550474093216794212515681982956303525642586597603980144795382761400416629825397480033080841849789007384812784083101709447066481376983414680854094731046056339821834363772357911954596675856135695561234630293900105378679734286825441186651956493730172998997991485633311194003051055807066541666842964038401152076910107736444597246372120664137807982096114060176296079333616848874078556037031403968350850757013802029353329743366290164237773820827132091077440756391148907958249190229703578342264315124200215463014727625150192493825553270262133661177889499099048849508151598777418402738981412435549198837665212335606498560771524480821124747361359372820989666025874515669074693730832513211634352844137949858302147016523909922088168004650917738055614525828967469897186891711026408235642800953780252788387238696267797977776802781583633093901395732139357187724260442346030545472884084239016951881641293475248106068647979979355063731444330393697182005923545605460972631605843660352028495529449934034723305868845368479916691409752722228410434399435995039331335443956419351375568372843768942675219144865379762531988591600291219712928410596079271104840577597691823179828745677169609938057389986437963648777335155546740569283302307191279242562309917250846248699315351300910773171996212742073115694428459852996023447664629720843308500030611191794423888297092530589839890345937782433918927443081671005276937464859780213357118850575969556863589255110067825127734002621447554261912764182462360519331978897345163685521239245702354841107461140639399237692491743406496165109727314733490146609162497936291251763895646879574772032889840762531235181504677915113126496089316078656601343012069673690011094907918853164696848480792131206741439061664879359829199361018158280444909090383556596939784885307389693341645711014796539116348439707943909020612309488545919253805868890813205469499322938690191297138786134012315775453718365567857621607603023866322138799612531781992607793437038013868406655190711523627228713810057207746119140609592082543915348886811251019460611903568757232004903931403383791598853693037911101332716950339135428719631610612661622096251656761612755114562954877619181455604697948970862540436544212480699604568553159505445725331714464178258394849896870540935464989774427015241751526048313725353154623144463903098203364158778170211550858244516833388338020038295312636333854610494256104070323258523679137235287592748541418495445905055679317417194467320414373956503855541967729564439260914688120154467745166128769688431694734080000523738113904839897616828280694956133368594126747160790897242897060875471278342483724119727327900519730436227124413706803794256593987830964589854853074171442113013680901059542985547187697557569672551289283766537527787724678592596031777047710768525938450584741065145812678227040627676262103534413366013126453332166023440768620871296780209517151897382998031202275467069174434959901517526923776693735757240615605188480288941719626564670309955081422509324159222233706669037543717301511569247198366951774566940667075661038596650783774677313733734380927024519276508008596198733967710315299561440524886144898103046254238818943692328407415376404954878434035428703889913737379138158424129250827900996281878463694454074256934642952834476071876818921006303132461699387888498243791875790509628573653509754448764602689222034688389573826467483579775951998003214645029103410484455083692375935728770207180063070374071919925702946645816791951691482469249167381038265847774190922308546754756147519784458821418010335218789583579777282085792098354707596505551869556104985649737848437355755454899739771773370183258447715641985849509507747533398247955617851697861008662791008721826452449044488388515109575224402069154078227347030063602150258874761561724242027831140875702294942785837019536549473078687055789919182498605076927156681619798161281335750606262946535744405721403039642073669901686212918889042780461040579091815225494373451701313523862167404076852273936743606663392817562834567892752207667796788843089533162093877456561526450436274865964800257218165203742233488646740198481808252513744515448480273413812702020863783523814901781613607703163576365942762874947509355577184452099485900813708640160037851968304770367868935797182531062052167514869697003435329241798000704851263398736223256176269248559959598645883570225019834607441501721292764192769117580849413459143236590502472875844798346902289879233394751482711403897211996476579943906418165619503950897781101071937640895480069039561090476979378312617517548338159225732909504147986017112136130551236305261118913106487585554867831182430538595953291703337045722149242009859986718554520855097704588138323899725031545009818667744215926004121619413121547151779372382849017383888762359286576767527277885847884606357436640626799396878261852351015128077281277649313065996787807534876524786594926057533993914630712139851839225799272626769665558776004308943874893053450069970076173972112669744157771056863279757060619586492240935031847427924202192315088445821110845222942558529598976142135718383537319966464583137013896489730388433353062462621662703656303154828027307286476263474794502175502970627214319665366725746977121550502535639713346605278646505975251946115961826261076189047652251861843299662860481243990322772100357717872009269236424588332061973691272625450801020267052596926151468446342712826975174490809256340742331193785345637592515361729506330008378492397484579128276333778190861474545521555153606349423759775757634367276645082324355879318317410383415747128130184292394313707048367999586800892136369801074621837306846881081122047098944292449103350102343028737786730783612296286884028877030787563257884596583203480783882323850050324983053466921635956578264315205327364814523287270979819324524517042030849612172273408081340602190198063917448515394696804837209506959750010931468256672523801693192787304403805145869124426074591682178475595696581347651800428662516397965663177809208574427758738302876560814524367591275879391480354257305961637428078813114362479894875919924481998256625071393417559566711121301516244589658217960851606445891339797940831171452820758455861129499834812286154192564891679455935508958866754001209111894070205524140755963710444725562253388022995470480648360118212892191587977650837887636689560510860405658367159673806739939346660985484731020950193436173768102623890993549679349683801722709522973817691277422206348577117650576516545906020623106403390317364184742342074078541707604838428264258661277403658532390557088812215475677282644126681654208901244778740269875512600992846047086276743014732953127535902537330177747613885019712437515601233422086926617000098524777344668524192001137390830369208355908134324531873344683787556280029737885694889872658694061184468239239471253608800333783765295273403955953331506541993397031472910207312505633122580801595858830556466254851893109192707202863237113590178259435456578547964558217322440052201373270709031666897292067197939917348992779589043949036203023589583788955780681952958673039794589408478357396455568002415179659179799948493200744540739968498545274009369798292144784286884784429619054485361755330873900624319936778337827608313783421811345299362706489615668089137473727828339170193361832769548713335942981739000582456560859858774333487273878216014465969526279986341312214359086425356046133987899568013686632496173813583196991210658884241132557682965855791754981656963486765062502925400735116971195235542862821732024880917705738315703180585323457409552961669902033886083151186568073962088004246489411896776156753505627013654415310981248049894664835435854952091218256226358337639250121894731438542793446738863612836161972661455900134715553714734226196238267455432810975586301055568105788942814597791287400029894080331597652464882781267586755202509211207913306561363524164772933657368912930494740157633849321918075842553469857104907919876229520796618782090006642159242583552409735682272741060483018503682537167918543449090294668488483387393030938011560996983848149577424644046674813575917668686181739949501207203121976824704056978161712605233601123771043113520887178756071085344414065976393138382653461562526708243692669897542377266087992087012308257502083261404699734547540144731084078210724720199404770932887381653810049872481179524901914915702675307641120484240710314201980045685958069635671907208961013239224686677956053290306725828118640746321284499842095469607225354443500417514085829503048545713025450489811925929567152910271042368792364836916041309335369098403092200461415260871688925098000891677331964597226787484894813376102410374027210714326252843803685928196432492065276670738370282492134469164018106595132532799630123320507905595817454416875648796655211792799964255818080406487630692167925076998264966832921257870568228007140761815474271930056370512664350433913404002113932647332824972589104296514799232704874860590868541974961755388565814205174474895260028646716712178972392581581823334056924295472609348407881780816179351112859618419884132454713306226755378612034043737338398187156850626865316605315675412539201608095849282710023716266693569860557624710041702894806222039387186928448741723244460946746632735433193307551847170763628658081023505606857780720738232117247179640827714336217290922073011769765817586969484958872552455458939049592086615273701873719761402651649402283635073496156066708259074123006718842321784302306217270192583377783835818382420607669827076189694701138370179914601174982131803085389880356492237727124823046958884321654772592088332079401400977554135555510324955716886374310461868379748267512265009386120100133755675597620031833670453794902137612957295960195102819029756054535095267938846385932858973285112664717001805152539425870438105301176011460108857861150959321863439854347894695631015866963181037614832746362153902114048658567484770707659201794168014166512410605162448920000032751451654156083708238587485122643897268420345049085180957611272230407624054478677002625155566214865874952339679994688991472993438232172512367860732592171309527761208985705589585379890147783116952377057842876119352289439698305451041237964796731316138487976562914670782709369204586844590676547637870804080671349875811990916971311594682601901769859493476201925174078554755416588104013326159713562814315912274702963058527156136423878702069625058630890912954458676022184337702629165887067056462007363181058769599474913373544219838350229116784064479908793570723497825646926043036677408270639463445248533244095246205931933327729022720677707043088216417328246745720431207280321215057239740303262130138929410837906814553111196716792615277982949656062135725429784109497039919317637752781279243802462579175750212382378135918762530977813891779979784366823779855927862469888652856949983665786851078949538881591516039649805532908844995862530413094530807775127745199068239075737706965896549421421796723099498915975256881189642648033095259036441266785353349191807946779740858316555214710475416929556913247860561297184395324927682625635017412548770487095440443380579684628246643860267012557794932067095338329390729911527530127487551235139445241476133107719102474071514816229487187537566217131550240030881166938880100355314103469280905932559430926192635829122289074655029347358076001153492585419300470442359879000245399865681897036330390987783606925742101404177950241781227273647886689005632954343596032620875335837533199855932385472193338326686452346114448837729211167654621905330442588051877712645361802426737698155342158003520284911210902685665301520981239615427822134515213305627093284706727208841613307036844845263946932040926425873706186836005914046378366637273716052851471806327235399494433930936513589667909754894652488839553625755129372794862020277353025957123126340938942334995619770589488836318514082554570471704598720065901293521258409355340293525528362595770881057911249228137332537903556633347514960195771656795144824998791151341309443594057878463691229051903578340987341467362980450833700493212363022846647393460897332710890387728015859990452545768104704111608905453162364015265117355710367493958106469651254488300839658796517514221781741641599471294172005693201600727716792251553454758636596367317248552264339748393995407718085186090587224275560982087989428692549295471900055531088468472006925433675283441917950146594770583849110682054274763886072849579028916109037255365146312875249410696320964911143303026962494097665272866393912314011829941795310852405993915109509475125472807017901187035474344999026238135832979368527683592082952236714200642757099811430473945252609129713696303796967054149428674461068979245868781941055828053459881832824114700767340640442930205297279024813717699046197481806253317454148249337215112541240700929194554161817931335687528120798474352109095832161814960245786400547748292206654374609578006352485069103717781667112961489965559406074828460191479148922370238930523082169705685486369632233846804614290453624377004490410969557799654592622317887055659690189304237060854558020966111569117646139540597708249449982813906882241252447226330543800449184072723149326566205184659535673722852894433291568735827901023369108379511649287238138088458461342480972826388170117727681517714419132589786217797638393585858495438889579041997564639961786561556144228545682794411502045688585262405462730565363303860873587293204868125885612677247017850907058094760760058558543685229816843580558819160876388970553298881167349091726375294626896648098154616669481461843839930967896494624575220140349075986850066389171855214466818628727257245018272989960578108129532325877205607717581661570094844542620984044239778090496040066991023556570196923233677188675984937614103632901998692440677708867769014168282509908217140080865638911071471465692396501636144694320618645640812305456572125300488432237371704778599386426553476496207294631809356477742055728386667578238486591279480272351164919379495660209243991096599010062241172383518243484895012250676482929256290630579410814827611697607040049946590816904758591208518876331094591138103698642557226560814961086220904381707742189727047000395541128953589700560467376362499433578809425341787977602860820246494237000660302917730825312104887835132816190199283400344325844166751575499441545495580812449231071664212412783391785714766635602773857365114462194728541380491298194650542655325831491046016705935083753757647664061498643882316337773095310452005862603239559771029114216110737283067763706380129311204839376152585930234959808380827330401075452765729359404001860964561929718112599986531665239220642937610683634310777690417644130884878542678804205074283559284583660246645889258983248915278709618075261993327745042743217288642703095656477225805007912334483584510119258847803876450028123921994553345240638528003884627378802447057369304078466733397206394696576101190632720590521794987983613097670810401030049403253447307883078935179033161956619788251140952651086063971088220422630449616534508813186339044244845068373493330079746723158053935055206359556664740076671102295946523544452005539694099673599578237022995588159321463775665414461847424794858319915602689462238264803952937853195975750126130474961034623408370534112980219946348249621996478482513526332125590734429854263788887490156650887736454418391860925696689632996969453124242905222726580691855425611368414327632955690375661561541034128584976045245044100369091687553916652305793267022870599934629996666141841743222902190944097108898979454225202494382717931279021445402962888596588280811208347450018564677786320049829365167203599710176903185220642249108314054731250671869247876716328352176836459014061324998163082979071558383441907720174147013617543344484898051647026393517338079640982629560747459679034136314775167573942033434571628595170374993381515560834479768391586224793229996245092766086555344917655360186474738957624006317703072279688439724186142076953979659652618915766097908367036391554176183079657314578166765498723949700261755317771823054018008130789184079882629529307739501800129236844058543330007277884405906666171692462279501472748922292578636270116429563283632204028936623419773649888685650233509994241203561796965378087423540087360887695856898136015062113105752351111566488476798370603681270256998184396321691759799948269873234858936675266558992368700092082392680845494305476715992970550046887076432587778372767320313730192446371527151089410163305762904259758488878388215001660785059840167530102582484790104890046306456121661108375972579820601348230508208869168658152222398471157500648195095956499567297780750457851632901398012660446277955443712870500640648360565200305087657473190285543726604983392638385357035694994551454365861369353607145965426120124936037597688443614940334049704143059978286814321530870546915374010850583729506562063822644917674719969819595864004636906597546886778351124725788405791666415956992323324565480190458818460173843245272193816561278026173457468102479071774053289039818674756652756252644181945884774172819152074990521896095703402950627569313972385961385859978822008838712768531572353554661022974146305320776421844118085369601879433465222379501851371162257400457573764325376447708008946217261098511589069448674425344212006611686136766624274715502541079388871193851266581677141182017993562192403647680777063062356164409185345287050603317611622161289057285138981709771830444679089781181735340502062561771094488082761785975076269795385797771020490897799369354511629877523716680022421018063224882730435879708376952435614987406711478936092248416798073810721388373729455130582409601983987700308303621758533594349578747813748935811854375741698996085275510269317176955372980135587472695302049671523327546148662428835066435698717215426947699912004225103897910143298559364380249561005099328521008298120233042248217594018897280118560875804675387595781069993024286446517078483560102859799677664154573374745208889264818155533930391315161885455543721718464444130126331615767465990142694032335961426290659198158092967529720175847805929863672985636895067767252172052526880681139277678644058241271815636012245325646439468858861623422493696427550978878195623107830368803334697883574485531197406546098384109422412188127720510470280470518050905269493811252043841471780165753754472010905305937400610238026104491839462993298857556490408441295279248131044526494764248658120122980666120714743732455209855262012939151344166699439661961798208019542524243151402588396417145157770234362137866297170291902967912534150132856237262614612622937012253212824302470671785979007465923715699848662191780515366941869087161866464323320819930358960895094905913073777697229515969429419728479357035572823443311182362967275281002390745216690043549017781698029576204062857851559513421856467315416963360210400784723789669552535037689304165273566046055293040671495407479433201055664973583744002914089521675605025000085965422487903205852270690950555045344457275808946503941438492836273190034012219804473616630698968206235696348333712202368467127705097764989776707801429592680276195200695559186282278331381417528353851017095263283236060806886941545094989107333825500166992626752964141131957607547890758495908963933288036425675020165758285340265795915709239640082737995709829932013612144478078959261555688375912523104660276240250337983859735499470576985679561650070039408695865719867851136084972264269475057760362023076557580589931225480336849957658252425284918149983686911564675950026626526167542017038428157841532066948938660536720537752711299317112043822043225873125315297013807645501855188206947444033467451892773949235961155313960939368223335983786005285692784277009360497054867467727055442389923460706255787267401872825688328931467374842275694588193465589989235152760315203330593183973948600623291548560259383016053883860061463970894864575415072313377636067052141390111469290066665019160622847853133902284585059482503296776515275672029100798888980213385815166366767760281135217046783863159038132201690232023738023325163423304488901814314655595205607478974375821633098296395361324034190100360806694037542782530567181811418048993496528563135546337549009488684489474745192678762383641689174077653508017484468930486948928049381137509861446221829805217917061532776417522754348520748583643353824782896204470803030898746421965107480533105064617717254795283227968271915228182779043433250833186543645493790718136616259216184941541506092056600454224181392900282245705169175009921994835694059264655893635423771140058428218691072398242623220092383097495114105093300665066775343387067587243033848831068949543683528947242051523790586558287680144356051507837872953256735414788669179907219527585724227425537586486068678684311724777492384998705079268260525227520561145198343291019430006837660835740677979783156530166043070087913938571758976590155751453728415689887598321165673166876090365343635329484677836101542753787564239972639335551284818402420910898878591823713434469748933963626332127134573265170588285748986188511465998385492652936392314857047820566336093250861607866480592959513491145453255322587185403166717870227919324232767016214213387510527643249828497453545559790470463055877906423438188384248978357103011570970487148238406895586405299749086710949417870299667602927495029518343114773546577503952543578989550783960077899171585941825575172464424440456673514816180699159353062325116887199623666827152993717954296650558775573974551818295008044793673037402024796865733150717941553034955181593531965590517193098161724130082566770393236444903137187512465094981515071578391307352744109728020607462121358378544764314010974643566726986787800340118211430902450879287005403511230824195563381889327544792780877109679053921873266343354154539604302098772049854703603131269504163899771920154969533944773208815122554250786627243078308913830499483725282055634233190150098988976540990743436913858259290043802275846342096627043977252061630290294425539971974616387890979609854770679826759326244676490912038314689236130102424356917192659653432753417026389812953065553966184774444502897656098193445539109422563212843003788969294851019219218388091407611863311579019873452497611196656845843675785826597534310161231396871421211454036279632537300100281331434031434962012853817869449634507995487867253161193258390205743927653740804535668424737142638335342806127717487876971373342827700200837626004824823720866342353859767327930406736020232305723468072082501175366831169998420361663792310014713287134879260644333419165222967798541145306048192672702517738927514870579898149009531135065702795438516067569301238635726892794343175411244626917417421514133862238988290143605243912064133038265226194104979116340019966394396348891515586263875115256043122102821283726386715138348828099000707843266164725193220772312972962398318844979208712469326983879626682667148264703316338841618298910144598945910390360678833562123531954904081142568825734753159945910913276145235778109674491636897892128642161712727107465476630661277010247852396522398364642232982377478552237410642007698208130816879399733508087718908491320312658981070062393247433025870372115580799118024684469623503717296521558898305049956377971388714983427375824245543069344158447244840262053421978070344910958281633254074322915080732140334533051197050312724965680254550890454770443262268826415505240322288080321878905453721765054750726988693141775532973176179308772566068515494944263313820421979962528628903376912101903507034307932208129261329635582904399030259476451618302551618309439242671467184033381269369063235778008532734967915137364896583660133350212884529688398040315431881070347769799131677516369160065485162249844909086599025132854530726371802162806704427652701582134583550087849812037005461418387096345787522083314063924265382082784101683309755923020627775426674676979310959837664343506361903579384193131302766848401455662562441490425574921752628563170795483000540998816061370799540140542730129945732204277319910216591541197775330265336864328793038952701917691312367720781626847968648100778024507898868871521572836384509834068132333990251407386274686855302776562684026815091403081553138684874605698130001021701848145666030759708428303765906423739056947601270929719156896182648860627192657157643733728307525496537244618414086420343335823438114428054931717123732303766770021974559630290517729789314125112761048088986030166165335940930186838262697289914356421003193604228759819449362678420920899644541790531318093475382669591453524340820182736848925396845157899154762857129067403582410997592433026432218219931386227244306889733974800323842685639813040295846435966949278709304500469585523649182281532700810742206409697795377956178352509726552569569817150609325198597091722001152615564634835879830026488727905592082654595089112513922818642024045303583324165203203287300709309993087673870691469747781286556931745518362621815584318781934383771024192938286022713408144386957924860543360965321646212336700965474757377784684574277402414706305928978727409526159728906435313727632369133512733661652286114028028417122292092085480211444637471824956322907331312948565368650385258846430759978934440583692683914619686017447882423482888083574461597431826330474989417540706797295875139676974721464297858582528856753879417464010697433960887508214816429083146400357684038254947657657252221024495537677964389121633779917232772550367754482489212466532631070084956881807744284317677719069962079091577679876867911093633182488254155732668053408141690900463415323555506142145780303083791727563217872307959710317440589797064311948113290519324612402543119541152510496341204674409657697039484407552863696316499277343688292882095072333413758590649020135046744277124729500952996252359667369896299823619217900048184657052476270714132084066312957790135385960224714667468528337675836163160859292838236185990286549803412155920599477581502503894979076517651714029589189449884685444365882338961867726990474654267373717007387019519888052570353077386699986065226336035196812040889682639228223231208972049574834237781718493034517674306222851606584937356072980864773879128848449425308842753433681387240730678445540870974282643391087751805432500225645864098760623926228659387622157336852883990477472738679887269205297369460203254057505738848446122598749203795286031711735139425279431972988909679351086625487575269454767074019255502409436454229450509219045185947047230518015725046395555957832295200758756985237660436706372154467119948750972792044117611574915812170008553073815555027668560692131686400476178916887489687900859555905061880751484989169596295275089934640966486465811478934783885774249065130691446695782039096996550312474189756614073789722975686268616652551105584706884596911253982701003513158895024158059862184092691840658050684576923396542442824058563110522886183947817965779228478216474562120104037516155359491321937799006121041044828559185638492300312051209013093884635592180688292434048645617572540896371824693933105969611865057051955515013628041554246999813383185315200097939043914412335360839948719871570468452565431367065274134866904102228195616710942230594534319384246772846066363426675667218726295687278083383147544488990730481628221237989172782951031469962958067615006853052800107135530372557854802494846807003022379514677874277796184559673067085272674823885631487771654667628563974030446433852930951632122410123435189021700218639021792565171828876961227872591581543859839130203295816214080680801395065138714362106944716270271910338718062007908994733382098470096234175656549678047844510532881148545853546335768329748691376605486285597852290533214762626741338321086641016269996482002689061876248002128416246800849444440381205596901128537839793879226169201661595831616113626067323962643765443377829881647500811440473163377201121160233755931662203723347138856284413320113340848178819949570986043789324343623367227792860730573485834083354966011369328995860313194630799394651910518952765553580597866195302042749938533155477792852252409954288904261022338734126275934746696840441317425609173355328110787606797194473726000737423215780507489707028687210118607081156137601321140502935382821868385980793046491574311521211709737595028554000583166489529180296279937386238713966846739646558383757050574204193242146627455715273822875287326919184110080441680622662310307231035643396410195001950529660760149883704342621180108987982037922895178543830118963978762960933268701916875792437488531436422594206281470981843749612121309544979972275431969406697307443896545821134208240041507336976451058912875552454006113037688680150988046144059266425781596122481183783332518825799736449572837235689653501278999957863895505019242839445716376830234146235860013241906584043760102520111518766013030384943684212482258737593892658148191015565312255881974280563834958674486455918405123785924751825326191717334636630393733634605986274809540764685206964567272031821032985862036687730677087882922493852404312702505156341353006892817190936473070552391558117084317637973769313706598437762660001490369941688340568562502902931811186754343118103444092555826371325117377450897401402492766493230496862610166656581625903416735939739207640130814019369900993692282452099612839836764052148078782696541325595047251562319963500998117630630935136265641611728427843550444619175114868500454075679187119220281788516352814211372829598910538382847165016348930148416636755740972380848384401198343802198130292131737001446978500149652165369026672411918017967172750615468239124120224779690701693702193474591222877063927660092619917400874329207265189546628406501692719754870424602339976371859784979713472999333592441565572519531450240854961698875562441000991168360375125552852345959053183685586766034887178962052857101484113906233695791332579005573709655261835102314292373446809853742856101230441319461549021061960358109745448914681760709720013902421605828287137034498059964300885775392118619178030869333620411952475592550525119692604371302326457464341288352646231076676469766985211720156033730302323601154309325354580971729167841956366889824783081333148941216252527093384350117759097659730991648643076829407673684977035701551727236294929500308949722372390912198045222300260725648714277256882637979252591263740275789259066566157702141023499256802022931008416531970754993597832189694902039259565428614127795848814246682264598834589297040603961067074059610373181227040110553921499163474847504094504910228090090840671370965404945272243119475713185454601569431941076952669397683328145613463456649996730938370512732654486264151583870423226409896286609324206592759657221397911007209932743029272821350615518164841372160446309853126709435223715391705337586447556573886594210907751275001575900907168761095328288193023634691920576898810504600074592534792828355383490695682802878082024936294275878922871167803719550332852178010392746984100813707142907450639622351738116864917386408637209951705550174929419108935717548770773410841221938375779175763019533290108964586975749936946401389918789458616710269568565302717520732260802200724222783776315071382262060093827827380201642383018327076305121198857037155809929750612898930125744355159590826932688058687634629006945727787079413292061179340923778402570102586110686968744395736629876984443190045122837666370425593582566418214138784023247626241362826174229729507256586603387972036342280508276558813498632887155506936355465353163416526564008450224792067338658040176464612707803554151144733311048859332957201144479454225765962098580692762652652951497278910979192430864096190605826699645786771639174583828095485512880899954461123722425150368186742726265285483711344206864096350776363493939702922352382068969389296214653941361990516501180936217814155086422634601930933062422981453004167229986437920705654109433833752355753548225454314006786763703908378755983819439975518099352233983641432569191960581591643936380120254344201996814371036715413427482077263188189882058702860612558913626656196196022669554555772536602822973322147141479189274856155391406639654031278955676105636003835109670225870628168376882396825994872876233962433005228980782496245670566975503129998298024292448379207801156926648708204249665503402803098967429895169838258672539728453249858015876256815342152105788650349265533375804899295933937282955842571484016663738278372360888887998504911551396966540790131191291822618035067574174976418298069085459398056655784989448015741787164164122595838548549538940986421112741788752941355525325212177737362887620206679259912802069746756375720639883857189326313315903928178045760366469697032396971739915156434837050785511951816079865830103433740216422206676748518735555141298217386942049652289900046426479507762864578330681719334710385687494658341312550309286469944314301455063050477078303470295755063274854273897696241768246726529356890700045337608362049449830770347062583022679484727071311095259805440006686080859465344201612751791644008137736755773649674089701266547733209235433934109932639754657683007760282546392980461493725772062477145734475906589496252925847686046498721685917487645420625209030577120972941968199467748262494263729988239586771495259439513456134095369360222175098757984829947771082588062757425724513106903207951896796104742141253468048290685983772528360517469130022142064623562421394518407971283860042659268216943408124195884454482942098407951531667907284302626515925716322259617948637976903927101675298584678543910259778374084338246185921665656374100872072546051006242833615838588666140299966092116856966922562932346132911182020238391707919074441353542841131863918149243892582046106265261233726590606896574561485580661927497734496875572202881567748005145032789306729776322895002970047564657443957022255994683828131028496558355338651454172112288030123399140469174796869424253320800252912562205239752241201457542949221054687116333456137055039610293444694054905450063804294655007785146527393655675728124139015330559120082594387881824621192758880275011674466453176787465526442953843908664828746765479856106190725054475260361203604599615451502922657565912329645380184930557107427480133548326407140407097276796001273012271273621256941401424690063371653133464940906576644131796566598216665579834497942049423201411057064252777458995550447608593469338827752764977618215135373119980048596460932285224141235508617646743242235550952356738703131804239257018012041510051817467983935744103227702161183980093393305328503828633240238741811571222034359360406466559432467912036214552809742574333181252187159454403803514374760563026771594784173571215868733050896244396545834172234780192926918763144259422458160234848389190788936350755876450161853896154020221711191468657778563182915308615122278813957135218793516178589088912750283937895052822965390671847028677733281114610236187630206872622686595600893418699537519858526867620740697422834258740050568533952272298818457432442545591378193460974611845085711593037822084291184506357484603827853015357803715803326389543744635961619486439101693967878115598334396537840715797695155360136204172349568473439883390287439316150076617802865349873577930602026248184734106280307779040381906308459807564961141191542651891584636259851747127733440075913808844424403495243930852565474940160210341768804717250462186714218905017575141376650184353255143229412591082449178238530925555151090820674274769829056604600441632767097665531520007437732069461432055709215124295898666070982635641191078071826623335742078818491408792043138595432734478338055333329131231210358053442978793354504655295025691778672709801635533815342492818538617690319314848605131991232772217933608956569755623176371942597963235929952354627607930646432042184693515600619826525752637654523017490968535677814497028894726581335329004155393654578814527915163452354009166180514256412717541167314729576431228471082880312144789578839698325389886404877599030625216139196619924921244961724697033373353912298442202563967194463082224323938113759903499393346976910194400197685365570848697803732478620348261109055556045262248361657960366196596799145495322929257322923153311817959476468642488027848853644538244714204930328698119848023401194187362886450282124699564992110840392929747534499976810746833852953319038186473435357688701186349155314521776232405590975302941602039399155270677458096435026397584187859924747924093137233144299333892049780046806393168677096051688588078395793541324269711572189696585031241479445232009583168324216814509972112780728277732142704475907952310686972970661024133868509506827038349421534275221217106601417187484029354290819136077499207759944234143838810736409760348186976078359862276514331118480797726374256229108467203716428296585009185688888159770988123847335643318788226063319741969807211827750575077209493429607151651231164911174391696854527331408122721604584701736790705794428325417716020265535591685942232121121238192931289754995300112338694644505616831800601846614465447911787601672079139508321838035961648061806446219996550587096183203662538476119252891546943874731418733909996910898622749418919247651130056342181740668492136352440268573362085646469092618029986525319926097288500109952107068800690058952260229186020688723413279626777384857549964949556095742673513527980900384107584458761757648201803161694515893831254370916302406662209918090868589296083702417655029930908859930919337128383306417225488884722688827371370054251035826715371454602502974120149718689444235635246336088365357277885043468026162855774641307460603979459470318437932802683151159954944184012391503560622888234105829799455305049904280912686341815361719506683245941772493326632899969729670604896053551201915537574231385160474290293945612331769781443147065708028013294183674839947943613469472708130461009667412912146789725048312973158909880984876224788636406205345912316163393981227258965750840505930017599293365972102949666081709083275062204115517042469664413915822921064377069782218202391112644232016923969720262046341535325857327707790912353331720879101134848510526982339759609852637213396101069852898088509886377745701219332921411463105123752629321822259454855209069947397238123249597388859646441281141524154434010432402573825459997943626076249484694191999570720292891876369400046845545527182107404954684195236349472295130613195465697956891374936023789412503654415167487613965260952736716289309902460119849246801148314921759430124154117966867712236873604594836544776924622803282933144820615762356591733335944719841572446195674014130280257704634108681294452649776290246780895253511776771079780329118805079452412944114995212037257987348726824738852023724232144551992407827355639631749643670838438932445829107156976240286222921020844568062355504559819830415745630470667109850734354424173583650782249722410089242906979551501186721852406182487020511157300620390905837195031560658951707506614073145048665716115705109711309499700384279684790740140416114287995213544967244851479336181304413359861959372910497077831815097061256885238758245499078642275141654291450028469515006825033637905364211283703851765411668002522578236876045490489034701153061895839434755777040079991380076342684686388813482443123504501842752708640925001303112523299682718363438656134346954313720112372979321274109457178108176455372180922826384995365318720203050097126123734491536248237859984648941491975404850362339266111696028103283704490871916171511034041632228480168408702774178100821827983439444950670951612490904721746420639567012571492526451346545588178171728977314348155652160800290102128131657315785491390635704139053419885179580880390189199699791215193827436080672589978644340274867645259645116916613887209200828614157362795558816116713015046917984578927889023836153171003390600292221116652788496469744017778133513352180192463406279476011845496702471970133888206275770728339627241819093881258798953936291460264826950428949053156573261944278361717302688629795202785736536495005714074868140804476449994461194431223754386589247393487390552938885893242193069206219848350862679848841102114081545639807585002996495698734653590866743775168723220933816035577376981089437742638819426075676680697670042675670025390690412577661245417899287808769292881051957820433109529845273908854322189573049018062438995415229023516208132840290304236579720331172965178336295652764401952661950871610616273219937291116212767952414888583042926553829442415765328285262381428272629242350077830379162856058273112943985630134791860599325837347346330450879735971182568442336417861444250884377891766300296297221117391166674009715040831780579011749174223785932970370023582023643358876524287609373435352444349951528348929049578417038829475493370981646387365595820045526220906781203666980765517354779061091778247914735984465633206888269409457624623690416769773689560318109835149863840310055814537124842357503872077769926691213425863666219944274708067133883619266814961269698828786861742849058213268795628436032239311269681569315536932451308218373824034206680053422368868436450673292892273842247257369599610429223255190542057813302777565374186214770969104347743856653587011637880466347011569679452435858630058084400270741208071016750806613516689632561831783394368947213732997833372562688844754614582597524983966294340772628283042779544350919947813706173416282540565434078531653589807402177513119045069242190370366188330095272223696865229466639825674706009953852964947992248377219137909426182860821786028651866484707442919002767289183714929209576610642183463971683817155011772236876943680005496948226091686413565624853809621258081324395893001328996028728333595931729676912996762650188419498470157587354938467698641580917371201022059100034564355363444719888441038794492680509583234173890740923369599503019626301945938650192874346856153565996330966619657539625520907613822592974748137308488665313229150798533887520869420654039386902452427498275305607955993673946855142803470781750569903771019671280411539893634103705887837428181784870748227284080162552240504084109890059038365646186372073814698224021092419691294424612956086087360639188223373978159925433570968417435586982437668092904552684819776562763933199368518621651704034809783258639917573708374533237602043038457340736206121190687098754323881635558370207213932643185303554304264858938356117273901205782817554593699501781034361646616346455206447264689537572848657304238607950346397750026169465914930312914967316778075750247980588993720299450428300613738527399864927035513295167387141486156182644871726921905553717052057574256929537284887353144907019650332912558358951698354713097210371461531726065517041304636490495931342263892446935743085101836296155528578213502162662758750510903566618843610381872597896175873494390093665937742299684204615443227446750005691834951281511670797238455899849721866132294679964079781314079721096705170259776428336266329183610491367089073339120418605607210847817901551009207253940818284821626052276315003831637954826994106388695715776374601560158730710175406245723668010203549184652640294494242623259152258122583290440353466974442593761610411900421105348725506048352333711819511633280568958156049148093679404459653929592750315348525989376530724856407922593830786833890729454542535018168762548253379768674879186638699901757917213895723281721570813769351472274349300159190165444670934369043975095209328620795826483670461804577456060095985838245711503923157150285147446461248533762967334529953600572922208887071742321640262120538210793442121503441659088368133354699215711459596766122454940065893797495458699010877435002874832111643801609304467805490404386149740776467300647414927933945801259828351158837368009834237730953502179290308978879667517629104523359188895690655301144406651818990191676783951188220207668238921244396427773344588843717978275142317377430032862263013381765988451263508676207493553188540971994189320956103003427736020967969706026480743893231730951311275860437968851310246594274579050417584338380395660004202609476914966409001200252570571396596848796365606934083012837594981946970259819169962273669832833695036666266647767975697646312747970245609134725526366820213539811289905089163413521384229159337705385723213480148594284787095128047630379369465078602062104702632129800996856500841371112786160972111527999577979197869965174852233852885109909615215427462167446606353157700346335466010225445931975253558112278797072189958277671996754638822281258611474468321652368193006703743666679525452486169457316419519876602501167422167232861546871563691130248732469046227647097098379192308931304366245264116839498183793630531021065591781051973673551894074130161137885099660652056214701896650262661818731603968838793975127537579054062583992943391523124606098002613334984550749146716829884661219143970467609160936649557918713308036124912222021928704831491076808775607050423827665546387845582665779175268503053873593797841227710309829336976905107057030547293141062004952775589646801097861598609721419626229559162971294292822105154484434411595753861955485054244051821024393485626599130088442772498504830418521217290379236689905898159669410240713323863147750747768230135392317524427063072394576949585021504883546287737802139718287255493208781326590483931702046262099073913397229517840859820475628070154972548290417815510831367217850042071151143163324525750013270495884901021135048403252806058606066336765422042085073770990162911841686853962498584775655086779704697757828185096322521934699773705712126601725626191664486781450878237304555297767579767871294007754648375041961039612702190096715139523829808862275827972738925382611454783916675542546559681554727423598937178574101908907223954160641349415875871274190945041266456753656552025699425326153405979884284341666436412718033436861674438802889131198884870161729743408030061102753994488729348006432978739678932297537773448967788591764660820396497758745469793351153218853561987522879624457343042683511289859376435265804662298202743028759877838649514954566569886630510762556912683383502864212530884175327995332701013042598954427390735686917732895781329228389633258715663623362101429915466400286884157640274407964687505349583519247581985435302515529595171607759274334792242027155019811917989524716018609059304416563693215855881746875132886776820464524559456244474547924223776193393481012983682797866782826348053892528356581147575406847657884872078239609758090085478261003489378187004523972560589619330200070775944403772138335845331573796782630985052473131114842352817908693446779967537573565809419377199984836800876632141773311298305117965474452503672449677122445930423104528612028202992778845719234721299371519011110644286430347704695811771727296383331743541075763385219802613115878705490309695080854110691273063364000987639986333363189521897792223421200379919740364458257234266521307681571279637880922891347884594897273512725005462456966210151204144363659350371916308949136901601897195978276536887273726995289410271632128564334629454164601089651361911456726727660569359183372960561888288026459247830527896868594548930915654810844251607318532927506879469933503076935338310128640675842254991868586129879175287368609760740053956267427739111238074301866796381166393304262647025211057697317979758529479695623828077826409175508804241172621183840054725988962593633668833151835865525178041353780371422290106583602551741222261078966991692441776450867071614332116605339155912535112735471734681238987074751627549054430416430065984197453992012294264799589126907686551289642409612316174466848021844346983134023387066539445306888015371397884932577496031036806701909232709415107541080430970325773551265825394553742978725551824405022677190134458000148163544567619379048170112801705390037358581667425500963079482330303279985061220610549595029294654378424963230116411710817913561306437732341626371466999448629679080029575971826814800985365248916251110517391762488429188605875856907680308510851058225276635874119796775259519915496556653065881954825449779693879852380200442429909035137248910079692525873475100098814394284770455646414215877416000995043686565830223066811939572594297298483235182922816219433224767647700196349424274777557984034760704870717106446201175059186606501991688002553910289887461276740274578824190865036667386103932080296940968140512928205172290830723084112506254644147905972575305170043621755870732377651816878382177007442786036973469008015936589994497761294394732898397403696055690314326083783144612831885149100112341831474575777507226744403255319778713304199179545892943032243510286649322149982325511116291132687528667720568748240571599608686709790754266223259036300356928090896037968359290923526320223597535220345576752380677704625638289713811419721575166520019480094072235861661306758255946078162772914116700737951238113351480546989730906854674472403546614383968769400413595763322461002523672242725415371233355254691229627061450703380199768164581555860761725580508195950960167009844518648432352312554253619875355235100935252545994458056800970973788755832689298291789129473161072173630788832606720052661831539014127710936946869454552811566195423419786530148574849681372796571827638558199392643430741969796436486772780443955747247644482490884630715240778163100225162885531181700773093970057065145675786389555923559942725222494952403435727016891947039249782750295036843788525987624145276096613968846921527876004068192505399711148439635000112493856902804084918888854668526594107855433695283630734630714743980254595431140426600079254008615737414583514040436133615051931878137711132569631444015321715587880275157583674927180491822029176498403791434635553661081445598053263904549771105341175702139211557746312992208681740552993849957969582536018306605898513968012570488931369334848774096837547922629809445843824163383100472855345461219544699299495756151516122597338005066197985128070753620535749063180938370402515108230912778239325123965885581366084225080811534577132672693261705822557753721589166620643141114103335215651904448389291038499431609540665451882730816641470138683081582858907681061871031058344598841920595364260757712639591253082773715849137994499191792464956585546736204445696055593655824916497508658742784710091263399867147097761070424630449721673597007548982301921463505016695707739967922084128109290177349602011888780275851549451917254427109130822432246867891450277872572875854669055376214117645299905748414389262067808980493935004103746178955214714321180658703525550948121319082074745755438504896621883653702203359980565623536048372282490471176385743537876988949877118918508964602679615909828280509322238654990685495597960001334352241682081812834378545308378613472304384206405925894919990241113294641978611009611896886860657875243217785449234521204576449469764415203656443756654325528844399942979074226890708586523137249366954588782302104581273853219080924681132232876611877782535714263800577979163920501535007795914190367657840214418642841809844571816307311355740782922905827107619142626779389751497174215388957628819562151231779928914474155848748746994806558580115353698243925196018804345713239462539228815441242960352222734952438819808128959555627037998615056730011358046281391952072842681676580331323471158164393940985132996696496956975262663634977184612514505730285301588854903826316036074802666268746361007721875355788409706221544865968909636097904770993585638196387163653714733612028979360735995914731371973954840443202033922389870771553117559344371001064991706853350420096008591790164174446561455464739811567937966950456573255384697412996965097471838994549182424550570075049153895357702077220965549363359859667866381719799935714967086527009437989691241657672916549379717378496543506824988274877762310134287218989193753099438469427385441349544316226097223415099726624032500211794973111498936636205561278371674558078896755287040993768833645472021875102711083007929745809866847240981115469117891494352399044859414758493438777240286197248594937532453900460723972924509258679444827075639870343735010108206247872555970339859717183671729193387421526361448728175128106266781130169181037044496503447687977612856593536425023971519184284663022788025221800013650008158546002686245607306915338528880531175466397912910229714232062470524755157724832234328908735057526894086807556926323948067155668099695561959700805310046815406505350019232502067103878425220390630697853845314846846001375909396697214433299965030963524584298058440349242186576663399533446935206989140260971398439714124592098391085200708917139456404692840042268281511757997192813257850850498044131687453445909255866074527921673088026837999661317711767427783059089047343900090877085958672503672121085080624608929875177567839300650263718858007075717026101767381477470705717578249086298395186076136269266675730178345407011868711983999631610981761309245436698582373228120972025957983443308623757249648603679700086371279113244297858358599509063888401367065488614085375243634748772350932890650566179278804636510461556429895957267580009052211132077864654002186412984568291148767024136178549186959713093407073753010911518406776723537058799218991090028361813755796008164822759913567507024548738724958595758436221497543281149229189272813103691213358030314299576558765075317664672391412153927467067202633623503380381939042455930850724905823882449892874431874619955063479348484802449731692046823515319357167713641254461277301049759716737733608205107490547021335140236915778728114820303151286567097799231100945265827336838604121014779019370395832276707824221622361781156171409618939971512435465984973528955496429322426468877941580563164990898062367414837712787899965134896585519769226668024472415731962721399599108944096695821060936842797347114369081580685510299889570547687722666611494725329975617976284551150548840307383800645803630196980423719022357163162728542804959791601574082263677605614036969853396057625048825765193827734211422446045171052811602459945083481416144371211809885445013876359002774425539416562108013249311741176178413769279901644079594031068408470930386331911797657915089312289058017494400117611738719601387857377846802677825782605389397550797204500536544291679572309283579976495973038661086668449229465886713517616055079916613827570546604323010234669122566936007118859835532468625956954210408465293475093523951422249708416268371724055003934241635023599457181591001034629060896534136974487868677796473173804936990180130974303481389674782370059880374959956643754411189686776383870617634629689895756212243373416735640362826330283827532024086415540107805266173269488181857002115835931014894375616351055020351907262906507698035728304618128476650506728043950711606671624583901289876254977458495637553700016432051888315971919955445423147000046902857582528553788251063176534787907690164415838033218908958940025916197142785616601688575766214807315885966805851640590778674017877429297341572198848316955489762262915225233615295584509317654716192364366726151441043244577516909495817302524904711339128884170274586677013945188487582399750706779539743345445247092089679530821938761498575577717526682594369197792168726304336354906638765494924038390867978016442353778833781682773496540468783026909475880417420020279054577024713685780268225828001475337265863919826223576970688044915782716367222520441859682189723221929140953797431795509536471781563778239072329730362520892141964324869832809497989264666012637229577712037570101936972961699718822594571280127895407490648005474284609059083178348374404996882638417767639753935219813034403208003220010929102857065430065995296695001028253399072098462276457239153837155790558983864456620779419042389730912158861450055575032261204888735406837447021317677771175519375041023976313693713088443198423112123642754685440516629019290920643851556295293177769548855154103283909409057843500397935012202505277272343285011712880758122949997721424879934674251967580489424829234508513735134608380474578391396895497741201104720068705620270789198337084392161371122677628167688877268756018934315077947484459583378038044665900079736820435903029801343110278007431986605676242924374507498773335505957300066001096459186983089265810859414533743729086450729982133550913251905816614687799882618459939809602807227426902389987875191922194010179840278843893780541862024213391000009900422334458446292753230477018618946643804949340116461667313346756832621787385861914579821136298998090817584302071397276786015803385114487794924360507061685499691926366994231687802383454112260207652116160616973324667092248456344298148567426458117099992289042222323993523718229920654249349918175513378339977199561465547634482824774488333272463742435662100165816788375886456916196291645528977626286383690833865715436072639556034688327774607677666513097159449829387769954695874660739022983840742651119530678885955477122218427666498155663911016619100668507633816620503663636672948511434000817087536795701148222813136459118491954508608888792268035716271673641774524463635670293273703505609823804628806903326465725834642089678043241501021357980993350850121524105031393850608491954285818778649411476929409499853857749765878396960908661608226572882819367992663420847893932227403923319251649533673602257196873427390506426621273490600059368274042569790329291955896304428278802876912555263319774569632727241813049505126693453630973956092666493824184684590888128013579828800621326720866023611300267445603563751531874904440341010177474240858529717191235568178832928454905428609099736316314348700522517057326902748646930579828959402701751828924306647560726260245572259762658203308007637665970812141268009846935865615012421338965984616238098476621768229002215836650762842268618622469206266576119140021266658321956012254755018566215501239951339492243984513483477242780478038410995263633088162003155208299775138422585644614349170853388661836043092482226467279778620980584908767071672112785788787914008403791934529820610055663056003797087588511525441211937739278417129386564841168806881198565033686491211454921702361712319625244394973024036233074624917360299294171465623434672039627187566696255855630668094339631958466982969178914298135199856061374557379644670415155155180248519995971484332008544162143671176587206923823797906153637241865255415623004071132484993303229902964884499345771423500675884803152801147773918601833692894123086397374866818503156087358962790271947806088232818464508060079682533095114444618483019358848896845930758798100518081662347905799417655080594814337452306700006316603746229818738956909691710610917144777022587320325833048576118557714317970415503966761371167814415610126229129742540800781638800771997894805431924983616709447760906393958382256334531710706660452039469364614435449053489842927020059657609570807605189580794312135663574680170857130189794039236581531143974691270452461501793683872137918285135201005572430354229298299968271167940694536080339276781539074774543316880508351481902711981867306665786989035429602955532769759394517937012615500194008843345911555037710188017727338767753565305601379882841594464975458955880035144939962164424008617268901488465367869560219563529377906532790881066239601609664695357617741330673384877208557011203887782700348592494957272393858942576332485715290206631415064156193702105282834659856320999031234092420961448326418619022184426704050264048502843462832937333356487573514891263588403748092356957514447429779775295333020108977540678063716827469728398102342213159803841768272587370808877816323002468388316896269036429942285921389206939612200441070049891576749046138329999365279128025447237634462353517400367579033732569970627699527254912193029625645076966100141888587397920750295479991583823341350203173150506528869556196868232364766623813681674750695293274252033003447294606215996513737956036769716359369625925180670004852126352973323073949030255365061045378628463182269705934565265500758792467049098593390436452506784003319705568721098477951806772576221184507799741427383438560417746219100766673670907791486053566309257238613760903194977242453154846684535746274990910833645716046203062434076566844069807437003270980760193601088941520312538202989200211711205848957878503769920068824892384735157327847318420709008511320789144432252114206179611878448254295679936619860223091340550757210319070918313541183648593969228692645721321823061290131174600837925922294536602684174631399404150132055507831771135818784853322375917788939284613241400655776381574596217852986173455469513761040934371712297222128270749714099188688125735720786253355718223052460946936015257404723007918675321847442343317334424684547714212027259675853409978446070276468825883543444238136650330751153384392617578868729835798380603763506655600608851329437342739606346727178742125502282444293974064565331032663458545280661155575065220923979158956087071396559077231760833526021070594694391620242965365565640200715356456713938355248654015785236331787615167286942600036899062976503811801156864185811995056999572402665046476770331571704562539314810875795472966646991122480087010493419836686505438389000707977114442537021603419059274969087452420030657923326362536225555447310571998633341634298460848907464858538172729300547825085088633183783919110705705797544312411092151969084798277645038720814371454192331589286177113977081565499353537468227822952973574957020689481250265646213665615527211842294546524941188815106695872572173458489239730911157401627849468125039326873720430680937401452280976398595308286090836062338136889703441228952423015979206160269620035284108257750403156607411363246248588230853511158732789979444486590442875268811111816782641850975885917945778171043978819982478310091400608229992511593625688064647673391107332668489244620949523641590995299283031947268219247390111314799067824946956943946208421480598511186868150655716129780601146847967178947757809678160926168970584669327640055366647624091883165929702747971892273271350419135227209906989321189944039818552115925567047862927811409170302512051348388431185910727625839763324297896742149551384943520221328026870105138791859175475597031685612394859651147638713128705330006529970551551561843893129326977476539008920772270306818744104092629455310629022204423571352705178555162800536410987673561997961625395355825449509538604649140494788231573117807172619156935027741542556186373368598803549944760066263401777196935039747911233637330575063342345374508952686891921651503277537755394140991209789539057383870252033276531349233613510612305412346688388117246807454625967664899812952311529182141482188068129541192967530800283009669738443444781915160727477950438128590030812465453645156537021486820338097487096575721462111312290882064209575359851139883727803505663027393541944925497478432086904126246678226591123181047739484433269585704280120908069751971276211606074423980566446070133439509765037767650353243481355246561491273216170880675033020910909413442195924596881740526728964962538394222033139493360517910966973192004263100137012272307869034709869686424776615069125083438765847973077938133409066192303497472928083457529303770525305664605646043992121292523745245746228143534194274470338709721608469412536642274408935528657054475164062248322083651454446280770406133423814131075455417461179554468929852622328806889115628420249070814405145185071212823793704492182079786938480559593798850776989163563357928217539343880145132291184662208984923633297224986762484334147422935617109794303158122009604395630949183458285277898464265576385311366411185431196579524236850233746710328956014068212088765261003052367402349974550507899275705723635811317933859612482094332131103558199868439258178308028071631067655703251613084900378135804634358037302380839283803553505000565279228412433736005175132162344834390393194359595176940093336203634818057948903926665821226617501059616510017951706073586434517794722638305011736032965388866596428111735283260234691703005516884794529957083633696194445904667423236241473581272569404349768535105877161135360295365362401557583670954042727647732084616347894886598728884236528862686970597041786666990363040903006900635596266922478649887431546134221369684151664844375236988997365855259420321666769073686987258455756627119806421889772579598917925140475184620909113708131852548061090045849907762834057872688064452914066751580782341326476417036772707891592642540682047388955640949071301945525717400423618051781113492610494063311568915713908424217364654274284299982634449309362032725538668586908750762950113211843181285294122711464777428034506078989492574920552832491162749071001062223812244514149938090763877389960612659492525882689725442339049765462306920494250646670267008348073875684115205946442035727945358547649322557717834881109662742275498688562005354210340643969858350899372635433784810838522363452979759103498377196900599072532174615738672554455660381405010443159328179536005976369789148091604985293609749813504649084558669417869005689939877550194856091488763389051138439971699508445759434255833174253477065071792188780157941155277507323963204719105447008759706397139075906436064031571380160065447092281759850852932365534662990843159308670639001509267977500529905134587230115288179728392923980815939459857457277406246848332044227907229598917730894926456580591403328374648279111504499316834407781173085988211070516511769944487860274184117500119599033376854535330784132951030057191177330083169552168382162110018624173502583592466630107457228783943882913085715105305189578273268058310486209498941681907383294417232834603302411827669407996267174418485067352655693390983159344404621365836372942060359885450086007161162842959321553334120674099978608112104947783316430267843581979764514910048519590064655495187898554407630533128798910591354360035483644767071198518201326950299188185117009353858770225589475611578447494242792551478856070051763494765094835790831352708866476696620659970472136090438567372237681083852940564195435343215540901195855657402559092593731535395862972495109715401791110666015924135006606394806133894031983749206734244047482887516111323506099893722891570188731241633764441060903341921467257189895921247406463574410763128015426908386781223980238941758534394688613364603248668389135226361132045475004866606382984633967754603632944214911889130896980774332819967680939347831673719310583117306056078568849274226939566538485806918516496085505477130257435772882536719877944496013358630054802154215608905749034727926357141038662315720472001926978040640106316531584583828421291004084927614989973076341805276859614445401754436785174138548094741689713880232938112544611705200143824622966837756837888357835628897244764804553279853722295088163133182249937814337769665216590078959888214952580229895619493783806661369788572725267238229176281568348108689115989831277742139522090098049534883120322020982793517983401914945721933206888480801547828999504451897609734048936807525101849292173908237351335230542575704161635586987266885614893619443641766382293169144955163922475166677225204099238142132246065006770732397916611987364936987842620723072025776223336676176789642950557289945693685468479533087387659538373393647994161447408502585759804677496855392278952108582135851058977359868535320836357803666625038282939776348371893873896735145911407277637718512901094326921759892690564294321806608268312397376573509596406326556162659170219448530644820994230244033705275908821640298482325920471662073457706900902223061535466820498284077398177690170269608154540186878917050958264414837187632693618099910310677054886479492203339432101412486659169541881087748598137153579076470223165452499563135999648844575332644059849890299803324698667203849417426162102679320591436970035871936594378718127919346173633396410146075995982648348674994881310174537322809541245815547674524537310758089855147438800211695869162877994174584609713135798332675024590717517155835304953453968862365446823579229777425593925770715675189001458054858617476365111941469381180533398289610234538062659987206617673650076326174338698814376936964754551858965199793055299792375449380316211767812818294452234657049551092178546226186974716316330542480915857416672928211046574972320469722240254192255372236786915856384214052404971244191699815391220411025645773981235594442580833045492506444799375267487490747986399270107206734046000220800759016665819448231894767638122460848561989930400375024674056704336832754574267713524923832327007887219961527151480837188968953028759878201738777817996236817533149492291001362957151610405093134275201100911873631335676125677159207462819797105412653227643893434066489584929954383716011420509991622313166871577210235487508954688786931495198867790981082877843916401013739902268539031783603230393091431573968881986391111003855915541375638120936642621018630965850094155379379121724931976136259332865008010973035238468064415310978017765647336117057600759084519646535386425030328501320360614720216950635081257739766865058232377705759349118228781936230741663871946812277838991296459198004414680579852524739364322664119864381506281998137016594157729814778973109552460821604411007348609788203523062636379894791047240261880409231053671420450999631607629013502626494049596287526278087769993578397747212347761602192674440048791620761130320680568945880284155440032225658215051127929456907478524407393974873510747210030792518955057904025321221718110524251679504194052032768217124043141353516269442068024372475759657475006940884581580896817955233071201104136775702999658991128634056619186639591162117168678357767649229098511506671681316575090723008349005295346829740304796731619175425262373992071068094508168149847796412324503961837777721664516374845357418533909971044000946403000262773505373440441023159462914893355672244926957641025933707135961800643861969633627159655850607984016837991471036480603727674184817782072567986115350057530322428282647034503757365756858716953885675274067648757814954265095750182190405122626352088529631448289831972874004765507711950614895520213024709471128181271240185849165006600315617877252603532835894517946780224503749319502288320856986304356826620196131120469149217219836881110844350999049078667137145575640618346517180402916172561931495560252679767684370189798787803828127377268224690384665756267286803690887766411605530345666290822250735541039807029741252700795322387141705389167699532896625089813022074723931893617722340795660665824025106862197516580453516486844503360229030049038232959661455046805370937361513215699248914958295700370471322729487319974358359120107137107518689557291393997789942175225860101150198126086940791988614173681701047177913019007807069580432527604817602374168195398195626663817562462446131429605874785830710963168748415553939289466883825218157711083227915713022402881691868465748364073961687640578435725927775513319405617638675812070905144219415381487082777763493490873979437250544949707522997845924824487618227627547832803381645993526972624353499431195406808105471359197446474662321499133454676720503468456093377168143611336026749454545595291845815222077029093954577704981553798110400932362424166285804114088394930390627884370017122238142599626061934558031861293606398866844922613744089500755354773453611519587102603660065325662843838017752578988090380229505763124299871465327483510487048333395060399506120094590336996696382640765842464205123626895580876184792695651808785230226623974478010002270764600610048343067686529057106421431631156952982973988111921459157544681670529303309214226169589326166607369390097136896786394994960245102094425940837419994153160641548819989847704011393019000024569077233460362260420552022441014184695982717458323154506205616328730452038826327646463768214739304366910670414210697399544728252983775844134634394999778730208257408210573443519803096612946748776020879466474549085347231580771074309819214071235342704586870171061415223201115211934369086072604935933247922434871956814455187583392970425326180113474900691525016084071900330919705977570275888842575409491003732720888855475949384685218106696514767041794504989211955786777739237264552263014693358985989736548087242118321759098196529429164765309393541907581226199194790354099135903221094654699243219478744623505071713992900345529022489177728474400444300056290464395916634634449127998191111604024618672859659357839557377786059231350295964298014505424697720431130828661002044328263422550962441616517202449398718965081775604248069199547862975416934235741668033675186322208176781436115897537761062717586710221198465917944019663306108606281817911392802503733727608635099114867789860840439994165588678081274422624445909874369108295191849581146327603848375187672453237454564933757753804123126834612634489343155493198660652966587046937460003535145102689864688822695016720674489847798532900369176445572648687117292022723284216847984116902432623571011957746104390992345052383985226214935228883242553628994649245196913108510514227622457312893587655310311874567331993617695138496043824452147888693604204826493887890291249219183971965469085581701228619901169743028515911256878332227996487992746370611115740629816466174780961169825620753425175832992615117751136803955617614651038325592516756045736324031745194670580525642683784929763541608081111489575022609526158725752418279301360904704656358328797627760958769530794462814843162255477239191230008157942880229216406021570910280254180330147383382055462274196840769342829869565193433368564290106417283219541157569730908387259132542301704162591360695695502390215712745336085774965733164312430214791625503045097499802927992611649804607548062288712533988860819074179193994316076724842492232059197049941212123458480554282429679237792841150916179455975532966282391490507031404599830787142379858324331689092193189686715975243122440004835910697290521672281412021136718915662751505531493540195307933019919279326769076950517013109328215462849143156862238037422121618479202515622546118755705590996651734798818146595688707799669406281078550099879175611220464696116306434875873166706180897056661478834712360124992697760175104784087839122182767895466234051252273108451721806357917953069160607940145571761815111335925229825493303023846818100203233598035684591974008508922152148903563030514455179432850927071405325413874125301569995407962173366842176672346199072215371642522922548893573190030233143157570839279496262035401537689402304164252508533386351531023124380304289172215992558049021664965342539558558773774914444684595403041003774521321857536040719310558262627662354776414707513554160785665955507312141759571551808226787808202715952221204947708725088214923956458038745791732618708783161951797357512966360537381639590848113702738966268472604073502128305185373119413418989531159716547173265784702959602069567023750467513094363051034936062456209873724171780703964374255361365536772077017146819858354354857336063401700286282973707421386080809187021300370172990163369907663594933734458633983090345520224972363328045814640552243975071002039126494816076905945581668600818264169437820735313326159246911119352708994539281694295446512898205440004348591194237079158892652514526791776023156414430577708495088153959428796173139355765070812563694396965767297394610004829894319175707670660422388151381206923805659898851860075036601291394972975353076566421486938099173217711697351005967256315865276036523776179012788880051909350222661851512003835659486944571493124864095890702976899907250247287247013364106568008028633947259201865333389459919958214780538950813867263703251711585237405731552608847174760725380092283377748846766128249242232222769966120945070728482309427521885135292670357186240868276097022072191741528281974973283280423540436494339914960133934981131897211938624041998480915177404357456639061060332367575632731252188985974512151615362823065341836736891391061669699228100955486571190962739770038617710583039840942220560764269212437950838064819452875472349576171763056748891756671875666476357277661747419410997940478618960050381554027096619894892285953577387751679833962922419487228892960579464793947491523194840062154899511495502878835822699203056776068673579290785144586129764927145064029312166234944702796096551154167196542088912975496264616226060026754354487787397869083307998408553857632796121571792603645297441655096869312115916558000754299357701474052665030504398065257760354275105558206596225266083501517406767037650098859902876375538392051005600642393052706958439566960073457117808441514563739788572159434198794097823743735078413146676598153820533499722143771029342956301402775288374218458558618523801264848000286228196169486176392325018632031705108386265600332473161840022994061098728141585293589658922029551638168241270446521728376939967596995385141785683746703732777927207701803048331210413910995546593505316962127608406368691819080041023164272234477454016483169180979871232872224448896879693986191300486588766257505474796444874392317903907475256419823649448672885145876200380596105889561371727045486348678829010075181914008792671718949959143187651877167716048990595491852762735814907716989021209166786183011725012969989612619891309012410871638613866088984822935676627103383801017659485342721482691174270177029792424932854663106427623360223358071648268771365086332009094379583516412383605449709202737896297898186401396603075153174582032969281034935356651577277707617406853684722534575942565458831285847227737262852763642885201754817055217584155465401707283327626029028348473142578624671132339502789486150103180807067210127214405383237479826979447796723095730486760367858229351467431248734585233271580836933515944452951334634177807644341155080498813920159619828280913337791654869935634814765264182113838220546978465151087431112611335661769526585178448461869164010741028751611836550723894077807005469246722391524921625421921646705972471267572963907489083715541735862710943361855450420179935524109037268100740328407613655958984675562585767835579653901229148433146278692681434000512949717568888293175736675649412729038421047149236686518749210442955484918098339287078115497932832039552553992823342525177667462256828485563403867047306004920805041164020453416910590041214149193389721961249676655578970818618584444426307187447263878095756412284345220576363497702551668432658280710582625703746988821982202620454159004004428524135265855870894888704137617126919303917414285506717531825999310379931993742119716691076326454499210694810221704455637712699073491610029184425275017081095264745638615807032911297162764388952579296266088428062799428702931273057970971772550948229993459472536599413189886101476877541171215589834853939871763527604370890487401382885303255582870217858932059233625791275466951378891836056557687458115130630331079570635159386499884463581937193235188906795272885851143308328847930445466284989622664226590441135737244916947277403119594193063918596032685599836347972453880073957051084708462671632034013949930992729815940877827924789207604584124276175229024175406312282711175410427933285594117771574012783318706576786034403920325457420576743498812636235433434824453876414481948489671009745288549186118784562605855629198572829382026211600852819785065856585526404770770155908673217653696205879366735466407764115514344460307586638063436198663792270244374071851084511943495861529265639484014966197553700499441777340198597281982066984806168908681775689347884767589604435869250767561408672466166705773538558473967987832890551982385567481920724292506336382982889823299572373641446855139363783637598223406631842275536184493887342102380113905720487826418880494474913290532550284966495343893811041003125210077399167740400899971104694105436223329172894833134375647440695730418665132741340074978393841580481928925666582179695615376285494823758991673796700994470748813133681991562058843310614423298354984645036279722994386822623692206474113165828778635614924602403554249543770847529760596022720153547888756696380390889384311831848094799629330102386819691898510295119794593074708519882492947632893816695120737236213385425833885186624932911856063054572392373433592651767704284392186091938522950998338082540508689211896939247930471490688631886664543883437588554441774092663964945129627409563171600331556512828115157983660990990774465505510940876513684559697087922769450445001311749387452270829657779776001870641844343225190496068480222735445765005366648946548734991417775679296376509662675415021788831377827849325359251886282904639431045588099407825070390551422200233129482126558823549062062767026576138392581699698147330314475751617595044532457811577068700137678587649391788648265604366384583829806007723993472795325148641081031058744454462670731261588705433642762002903177321953743047060259256729894047035353710673155738767781794511577314046838015339424480183594753488581587907621600746110417161450122585737841846734452513219411342169640917627256916796206266584776646738088441381456965111108419858926259487734475183886494649626475613008977932192795352538545974529035011538801835486995054352531673250188659635227927429507956830111622108798123530237485721937990075164503745757503478989902409105554397389843153287080933593611536788213705020352487549915883096172802014841558738101973534203489343914529732005405624426529603712700188258001716300129534672065022500322487823700021486644628724950002697292550960761540036355109085043542865577410671382191901470974190414912323544201347224842672502488047941732679795741840396566472882051062149103873718300945246819871239435787714257459433756572233248651074375613150186245885538842197224246649970842356237432589694769534066931123254291446655249604210209536774566018744653908661933747698497396703349951359792475260886550293630376057373362370299806174574143898187097502106323096267241083884875908877954237879093992875516753557221504952714220693041084468824102902217114087515912810178096203229451270565595695827251117523050388008925112477080401417953261665743518465498656694604565987604865501854157339742895778259527464201203596153058919719905134363454962220732718349321740470419307238123444399296908712697583344137311861850901919931166215402990404269168551066644748848230240445255940863979724374524599229699860024808642979818803575701006556185501395923347172118733003166017623630939825075891008170030513581046421224694292160094694564548470122798604316002771810163214031299114712328646869824266708985470966113946097034757677207229913296637200139756310732982752581430697106163107051866749147880100026626418066854220467193820729868849548028566710791107693305375422931216301502991097014591233163042877855916259974731042829574206862548899815707953835784638057040129027003151959279851967209308074372622815197072920456131734380689421369235543909622831870718009051650371379375736037113579112505733533820080334594893645522397656822949234122768296317540549096343483890943694440419039258004163747288490003090885287499416980542739975989998322508882165976399438775876366885781797596200218751092198512835826969960165013379304994385984411673718593397055164204322622567021719737123624303789431927391825948449712561188379686763919648529562847190218581604287119804421635079531796640824067790394677255148749055079302257599081528487354782107643595019544572456559175183091135090229065117823785533436901924774871048746351046114360433378711245096001908176223157530857823573509614535643053622200055752649814343800814460207806599236715251490496214363074514972703117205151529756548540606088140630144248161596307342670865433150942702349097694437771779339588877712235617612257362678490461410181305790800297945797755454518515968589593126706981416476670995544621104373663423965654595297217032805096694821627815308103950975417094950147001335260524142663434791556591332825561919698457750941149135661612359939951974327475242104939653061500924798347744332008302897153995084361645747735889102279069886622932963663054444189445631148725253840056634125187556705959455590930596458917157302690215941326121333748040054651181723775305161692340052068796095623500363717232622023981114121929218121059719290948470230060301747431578716590667276755019266472235695956698586512606200233650815126107202192017216298509506954194984402372940551558863722179807369563202716336712599829589228175373510410931968411868580530222213040212106903021547239595069467337671249546158125122344140402804960101084350957570137406204077050124602038505343607370962367891773896354828647653840468511942358760959485416730934882621271958658004892249733526901998741562553488599244778989188141425646442749751425972486204987721417448593960789480782971588538872034901558339175925914521985941283442328602548492024357436730034904629508304019999783952150475485876031488178735282894655215629536427561687779700594757284133123272084073849469655117130012459473813235980643330880085946359842885957495315896529737426392138721333819421400184439057766144554623622182026111359087974240007711592672528346115663627796288809400096142801073552974331157627686891962098170744172434598687146115948638622276247277942562748123759735189532285446037496613093740572052751222753067103857144771082539463199469998000774387854878053979549400352842304866534296351043552837183090132059704792687254117594091028916474563425891691028325185374564776052796147474957480953643630509582688128514736178716489985356486007661305954975473147964407811586463660692994563808813051737128545823821017803419711939488466997433332599983389091459793410370032199385228290198178159207331014863888629106590104573008389404725909444635845117145578596019239189619284028292771703544644172767550600837046283905646199257285103429219367227977058862978153200147783777234774673494489576618986093736007928856831604986978315919952559071596812815735843509178428510372755209938654217236828755834979474748220677422112161591845817415839445359866818435651810384961866831848436341395931612087172716282122321663987355353823082643669630518078161360502450224549684565543840087898887948486274324364606134412762552247093212900642714565369553249838490778688495075825806589109248386476418618253181780430322468818438850489685752301413230204044978874512623499919287921772329591572437229857867683951662405694401729526329935150530892121306571577465372306472162449209265794017154140934813239265880271979985847844753546906287943361319985896893925022565225187946052437124987782898226122832476447830743298610219201007652914317148594242775627141860417486832392962829345463566724794258694191319163468093252398864871916138302081872162086727850859570492059170704931063937267220563745937396152297923278062057626373152425431809361744186962067315361472417420044679525706684523218262933966238723770591407266115106776193344110474485192288538199470193235287452630533488703812642848176708514549731418213182383244302343609296837986932769543506451258660002748467147809094448571302737643844890174905919211938449215711170670917508931687500403213757258011385012285154369861095238269605217424031696710428764653619313765178106276987435509934126254801220815899933742182284827509639045425374185682198389540907732413985647479312749142618661828208354311418017548415008946920877879525587540828925482804851628841598166249595285786762861956100514591465612170182549089162770665168232138542774248103390962086818080863812849533204140786655707801018197061171607177506691322007045721353371627990612881246838609699283916371184136264077841552818358746026810782342069944077418637046384853618294102853400948447327145310927115722204655671662966972727423609236683168485295263404252780056761561507178788896086728785648085283783394580796807973149312000081861273456237292036351147121363264516922443410293567576722029400458765284029453603399502860755545652755765405314127030723847611274794680469995051320229828791170433500441665230588388735470476603202514246569309019588686221689588072496942481913718370062276182531362085849837967254892817029071670993584761427667356619715512875041544473023487997304561339454084050498314835672428077313042588958775317212589473942776486207771772454664479244511344599295171759162215846103555895917939663754130207644528956827122790068605549812681447577418594546697797535421726647621041732615406909473624295058177003338441075129397934540119058976611188638389417722563350384202579605241416744423731985766450548858994525780476066550449684376372760883424344737383292987520295700209744767009105947916986744868354362602714269620415964925144900313052688882817616670726727366378639099464854249495003087528716160010857603979364651930458739881332220231312205486669120934072790322218324511393979282186340315582770583692664028627024460854711997459099779191647400190661002138426905239515133561538340013244226566879455715985498089218951402287550039838879990425639668355513533336422511203559514504704877731328349505217833909159123406658507886233007714092743038002987196463962505765913915160592692497105897135154431967322478680160462347023194625727575914878453546855952991807346159895409105371686644922876465878140626341762711769378278297567449893195883248192835536192897326814470241307333964654653875693882729833196001596259592303594522817688549705951414737712992198374308066887429225552732250118154966176000835555181775281225657156690207927702067183245519359024023387661831354747599367116045093203935916295517212989916592729870535414254129936222148021489480956497961230958132928728474920834058726447844898055364829651601538317454764850682304896556979550842192537573356511639100330497873556252426815732747108460730097117245576374825496169743455519806706489807199188189909161532091681945045080908007110097121002652258486742138734929518885211091153345465854324214622803325111005242746987039283037552944133334777029416763744455688413996201378188537628943246155961290315563155858767767152376905430387173311851216045940276620092545713605466226041326698993667963232372238476900820860999427031680550788150557110457571112781485519811808263300816875778298917275692392483670301547203873163157013130772059846709829150649874662152943794588318976720107735865409660627166091605778994563136235953392334233743928503806038967106719854095552806827975942191815188174296424391634076336598736414641193241603486936429014693438925316785203410546619707450653972974250744949074376152263263278020968407317826766804519097133920668011418965424376171822515372561304329614589936806881706319675593850375049304543612509737817013235871021953942364509074700089668812761374324209435118771047186793027544538457136740796031251632962614580287198393971365521888533783630643192924243655380991787555333104180833814446075627632931877363507673360204042140521496652494669878527781950146027248729604939897740335113936608956941444180161670581614232478474454539407300006191669415542638541260956445135761933752290487516396682028673352776506057681700008982131371035999663188087027669693081008254497210696296740429718717939813865869781371006778886887320781580622777151495315541249353889256513028901833147260620791730407271206763695074935165210208240600532636605294614012459218778722887157527038602703886666822019143325860991707675071852211607130505444727434854214517641260436916765376740498618181984561938516433058473300821479257470920927673369122115963072981275703469335388391854284002008050273489652548425075721696800399792512207770510605116937769817248402092438991613830131094436620742447963493000868867012462474153247032126722106772668227508185941856737689537723307392966958134853953567767377826739225957189174885844872927388817096780810294168214340840916982284944045007012830163838173091034786849479447417290167773709372637111563188921406744458497632256536926192389201368160026693972047557669781017566164925312017985603868301138284574394168972775389783113759546471636361311684709276483321460840490670999646004567859657998790157223573859477445966818176125667038246597109893983781947020592111761006701599531418425718649126049232792948328609871900446828487191817344341373051775099322326257951018518481496433338940443153458058642952249376648281169755248875287631727154629116420176192986727935447040847601980019523442904161076232055840113209134616647656002520887640342456500566753300565816335175918925652825201647988069206156196748647960963917924826541440201223271075534904782293569030599222458927162199525231010353298743964147603432100340452165390364069796438032106535103400181670529541374930795733879120330272424780465818653495518255730319241488196816106894050324007822048272099023259749674499715986747885336270817191121102177600399738498520783206482993106625744663000255086581195536947925755387844761779821862151613572935666630757654860809187902794428144086165178154377162901557256437361290967129318231623195730902877170239425567676120992163839617243627722938551715742489519656551217034251268494028993746869992318619482228257348323639794754426391990669955761174133400269371105949877356327272574795767523474166986345214136717914301352389477984856874425037403362757320654076638407730155777391447236390095162276695942463599730293258873918010825648763965883886246464124150845969835783690231701186521895288764538790913783395844527000958733413770392200285554312974738370117767613290247500344373248629350309553255368477737572586739411072306270673890340013401927445721955338175770784382002074962308087012697595340521321968697402145671280721984029047650338720925515968020569016853822726481071526840375074900819863289357575091816233622022263755842653587816194123357875827608430710246439711107198380233349405344292602597919275814365333695419811438151739888751938357063101234196802196080365301736025618016554973721834705228265476932977092747385524056609656726354375936526529723986512380794907722054125284490705397476867371200597756475845999888301456873068204114539375943644170126965995973320662784961130492103774821934386812566906447509273322488675001701615265198939281978128577380445978065677466409383355053570470854018878541365929602210218185137105978869034067909573780640300565524069131404265740396140157026638357929988267910208877050751467941541285462088140679645230813511955688401251639808894226284955938203272450535808588746259322355689175225504439429299162523620191929690375168177133339883423251770785270550485759819646491186660535649932133906118704011459128989917644457736343539864113639299918489971599258098923085087233431967464701421208669480338432954005045195292321875187989843147250271171615500212850697650795647616397351213619443583205433716652864118379048910140247125035506517281095723407651965586843487154323320775972139595433449107808011015052175020965701867435061222963773206897774161661558282422049637751158064332084176826544712018305135815342425949564613104875646102421443937194368591064158938016906736723857262395642264149869441658153964165280299947056389786722144188395686041508119616985246980236039521660313457621881011484783825826457454196949933129397602509748001349728296922482295024902726906184252116135561480483686600081897993775039972082635602011008187685044661771980574622220106040077889911957247575727656912778735734210812885378562215863115415242238475500723825092039747431591257985052185865948916943131958863572244838298915690562947057012276038862442204399448732567080313908867560755238690650730744134945297721477379856616981941297097708844985006937695942499733059828559574813087207799578447512291668809404615872552665002514379997183109284308565242786262930681087352023165549154833490819520361246065541306389441100693874284828213543864617183455008292356508592861672229295967635424623611572780316724169146047016526149337170464254241131088901159436922938612120093903787176360250580601283009409156970087176461367162358482978201559136521793512368779646469517948416625951188460347049159469451761716841664601953733842520931084913700655147591766000923551681374415806291248645518501005000524751306460535232580233460670980571929747200533254724634511591653405359859254629790976914032576111597612541333583819579655394062862216436520830712086687112609903399384439775226232456019677673255987627459649239643319270115651537040435966384131696333068564494682292964977632712835562218014558464544402558604777145303102641927484152379384337782409201816842007668688035346706625437159762755938102197075814557594287981991287455335519979560470619819947540324514450732902644870764906003236981690314819671853035330174150859641869524014255462432636752783327631618646591059119062441789307778016038445972667765670567789976618888443468358374305703848573016391186708644808882675995913962529498118803761660802149672938781051350411825484270608685740796442384665153673327718841345232053756148144906245695850910931991257186947655487078559960774635591487892151467431189580886410905016261200084276428294451910753136509833465148145679431322163920924553256907230446940584513183263125615350259436597987287285910055575165923241307094366910158132280178534234173562500179283370637744470432315351143852687593498211722734558196070383076807042068795903823667257119284152356738087295604262201350494741147765360488558455145764005462275419922687722447827314553448585970504500432883780002645370862288349982548672213636776735408532266543703026324078854586263544397169920220140018002862343281601430288883117530964264101802632426364048883473438357570984113786362019374600171054145844924473785660055738982785953220795271505864330148820298667251662224920556363420696914498133092209125228323086242666709356497754090145526230662370423778901699543008703237031073755271694357951446983835193131695104495067713818617993986104902223595353120686289441550586008695880736771339463441223053250774871969425451510397790987372049472874064150031565024408220906401004933859611507944061577392904919913620183821994647495402185088054727813700092973618812999908603504408034943939108786879182190739158961183513419460220917795768362912805100462316267520134903665560636761186095026216695005822360583564473053540443995687752010693604659044927675967354408217594844692742191314585230621336677103758505348688107978893582369057435425641368983054001909252796322110618472129356496078769909990909466759032912320038319844046368865639446092620242557273577917481932326783985830910315393479617699828490101280974206793263130205395423399838145512031203981844750287399672672132352518877734905004379703432091711296091689261149034407968761159633153914462737757419813973256166841221268944613281940293702783902770059385075280430077224075871649112573399510729567979349085208576714286387652515817975134230961661186899999003161518426620560904411842530186605893206423817717594726632370163780353465518150343872259744607847128796302188593739281809787114674720738660520242626022198014268898824402236872743633444442166523623572599839258774435166053535779759709682211539711571348753990381821247347009008186959674287945953816342478114164608159336643740234374615596475292830128825514720004875834276968926208193402940914458876052139009103971740109415985145356990938517507486519998938165178700360730572924878707440403979243177296597728542548429642864782251985199129032287872493107213016013641483384897731550820938216893510358973552470048081361507052126619523375472224966743932190627696346294468485621245769440131069406424437178912338273716828549924552070448331632988383759223853879576669517424919908024157805043141742710559620568181070393993643426951736550901277947100083315900300827432075918910545641429211653581583379103405821979955566732141134729765668213663685089611826712656608296784118880603991955337335601796263191410063510048216100707041289729011322260461339044148273210892279082569933671539582429969028239128649219513375744017193562768067529790706409817703843049976205883761865854409619763490331406152039042963109281968621711907408794600476118001317290079465326240950600104212701983151929367430448538765544971195407003773722931045667881549838433771781532855442010493969871085880977161371444465664233880094219242192106847784369808327525792739935657876569046834231865717400999332475466985387320763973831910224853349526113746625199521152044852220212807870556794039103036793380887063756812230538194913947940812469111274182413216927796697835452472566840088760438824525393550667736513715709897264306417438461729196051352323330703752187250831377638878566398290581573720676439290525338286299291183328059647689366347194888157178508932806551044213070173467954325922165593441141230213654695848917667914234494102623778559562182644987153066286642611714824765182834426682627587029684983537358630130368844936791676409535373200588020222620985002037163265682242268135556196605212534614220014093838746086533163383588519528528601795453554890996255785897104393095099024850303226107609107451595189936364093312488787134290198496653799718859642599348486001883933929604749724075094033712838460769240956341676216308189389036802251562243150913513120499326688838632418445481165913669811147851077042334818094670839395962988352773888057166692394386174458586066026016308114744233118987008787950557169909135602311390043875642410082365669282025467493772624843344386918266730245377719545072301182540103089084342160900515083833783973444656612033917014326099254021308332079391611038573399261189015999962508565146256244913799439353025243843877959844327817158267370087674656199649779800180160240648210043003681937363463856677063072137075053204948267015150212400132289393095018525243874302515652870326120114796418856113315559101671677663738612772370877649443304397598556940899451057133150169072038815946088980511869499186181783013293783504616811965900974242626401564581254672157364788560460458026866827605882674828646972162942802802908436981793942115101984925021015633274763064450334925978985976366187386606053944190223877670593452129129957733725978969777818711197411839978654443804549300101828165302135962579295925843324829069523610789340770147318618278818461492525871910730565387578269656199230482612953872024400068079303322315141967968297219357306192695552633972703958755890072215145067459429366307140610051708285522637258831110501385206849193023619116537663406056886089083423390823228806056515917561107163190941749937584001171431534094357643788749673910108181943690976111861562674355261529307238896520778240662898518355245171305141595590237580131570850267044057985941005241610115536410891904622038316485054897584635406327766636318069897378971862867729351396837386170295893855711473995230531656721096250262797789706778635475310591367722176125062793335074308426861421113009548818663132051544503102937511114274069151712284613641773584784752780317311453127812877932923031656265471244566741166493321897485336762025672258091980729353631120275737203141511082025009433555500810946814738776240293915897381422004393643771630765889908297938672027739719644467605600628652241885374605800353185699745724983719921537823780339359658467233386232777631361643759961486391190963103090653455369332829885875973183537064008684153837042710031203390365766475661959329769402808973000292900007395388709321562931549244947879590229473964494562482341473912015808651199136349492612641508718929836118020385114560523224039198854586872502442775248796136407218009515380426838630621665746404546957126353354873216172880658042454427036144619467687808946738901050352089498667303511719852600855382840972534472966698078000166654816168020863379979535200453390716995595692867919012525730080119129546561623778541647983849344022206314148071233276467826212911247962430493405290951805315922950862225758861610228042226229959562725317753554405766841242935446952798115533303473778791501793442007190624985920336023056894597920223702551139739622583922199245276013361297179339509673649053539914828955668174421779501139991956610064209770143124695261695679779293184650594341101396157226849753989650754348548450965297906504421214913900252287947585729160839146264361506277524972493964790654138989405385760871617134864275678903037776963998750979284988844187508384066686588735552776901443153263326265474201139050888172009340175916261041903791541339903979765075882116164560205907785333526427859351485666691677759488176984793379695015739210186911618452738920504784023598343502831856293453817042509161473235145542018447271181525940556128686176255814400154025585912956518992065286819687365980172960156260085517946141073350392055516564502222918557986123890360745204574650006440521981229946921661015997236811738084363289464121541352900505338666452366485574932077271482266635540169598922202570609047564177850059212376927995357148127746407528725243655189148973912688034817084831068984211322601969746486505542694480538470491309487465864223583267121253965871650288879751825204437191679929950522559401789115961549750899518687513113435103454312523957636236214001250157726163604476756539666566201329659015315706644219189252677362407145542708589670853997265556574408568466979764931517273392453331893344386788368680419029715800908240873013254590921901693408362856791316267137455493864297614517872297738565938709363322941013452710419649522991182518392943895699995864346581453086938207675490859963416576124649862323697853285144397318885389425485538260253370222670850028360768735873026002574067404864006290949610930998358163948799007815580907925477539944382996039698307742008595627620368403985902911145545319290642237117199735160324633032449283598930547042244274146435747568283584794054039233862174315950353757268560505166968712113386765513049602863685778408638619405300847885904304825034139555909343679538308870387860558240127564128526219947029331294119715496612683307402540250347771962433125616470961689478436275842847928453138932182500951163931665601454453657704596671384249591521925232283646966617458009587989504094865083973347983266071545489940540693217699365276423022358451125805359651095922407424080528045753704762359597166242578106049194721549897498986638618915330015050131570501136950104237486669155283773590969860950933160629655964908863609265669458754028083133171906702896474023740307392795281611440142949578474819484144141092833214226099189717614710149368108871982081285340650671811531499893737534311974434992733771208478720574034360284070728203791499576494962513527195879916934399821081909128481025925625610579912369527168866770708712735107563343720376294737220572752445413291029168763897918218964747900505162393816056143153656029303542090132444603990217037230775265676284944905368536539548761839922140667260770126051046519631183012352601769552415451988776474794778435488220152651900851705372335541552670877399847891551358052301244736807806144633045267030587360379680798799786854427827891363418245196305112434913603431900276776191589781797844374963539591344279083195639785852259451824591322718499331711079807919795479166928191866108433465490984340061524802769034481584717721048026411350140317057334084121523411277395674210476133440888736112853550994338265384499289375051217050211648243796380477236239220709910504704909517003545878814424381482285013883792279361084698789115523926355285708845754695565075848145701021111060878997044273495704338147958616716381836471343697592539325351197012837291561649835413748419509969391146182769091415607774716047040868694230079891820246759973442902901172665742393937908598025759109018142457326887497795935360364013006085136415659861349274223575850700406439866587483600512588942567940992106495776738560739530600387461082104151024876546773601192648854226323562768279773758951379630758706199821000343595596296391441902419856059039936559320018818497783775261915868365881016457778941711035218098280664294211769298606125731579930674907564235440445791275682892516823903680257308563847045065472626204312533006456632284128851309675738856628497905228142532532535193198367415037242599609689972974039389359992062179005963426183762097419919731921950006550396303173717286668587501712217600482837475081806898979228265711755069808642749133301080513515448335230751560963876975243055911891895903776878403610339334921005000936909459081062404228182440318470387045910528918528356052857126655750162531953360480608984105082667457649299667814846445081242143448720491176237239848697871378085160922950064818687540154073660360224896572702083612075678882809412390336948841648338678782640226803506037125783632907148776265462352467591373960343506368614813185916378135918958107723548631986597161192549905597019807163249177307244169672719752132899680661127473502842769008756383379498661962295246318917127782844863856503381846779922186918700911007514738884666104734404932000709198389172600006623450851159741452180098709029573404114524902651642805186090134677799568841004644341233352343292058598912016766305920756972850123607761374719486216198070969557921853114668803148737200819279667007153433499322587419394889040787798257292097467788277199316641693567495093167410153052883895681714309666027041964020030082519614431061799700467518953362432213224783753257930487381979558890712062805167359272643350266887164970968336199300557870275873001018018090590941094378285092622652795342201515719454905724812312674624873351438252039940785961820578740738457601495634677682236585753555509895909125487859685907611589122697618141642048316289794853031999918005694903544415923684010441925271063701499727156222696132115849767599444562795263114398110184562713093254315866424413951369133473566703146744704543126441055617642285826618642667924139563681548194572588688592169758680652053314326652181694131015281113965633976612155127832084889463955890448825466371264392439189629375851992232799135051547442129595752151797470360901565700421325870093104415743585527486782364354535642067461590627720082725229587757380097372953984223189116021693214480231144423694012288136511427559278888114336623266830620515170777989818959564685410687848683339777263905261918716169409580732237950611651992203633164987938999479115152029534313287722107896244560910318044661213666131598849802254686928790465512750930268346931397721403662352020640208422580477992793788011158700575558357541180569652942098368703466235055473016912112464713543357682773036548947038150433109699893703836576235870218464208385715577409810906399806656063302005941777860815437260451830997024749639440420371787609801149090209314464758912548195616506076789107516781769185642359406440586313670854923665238713307328665231174371838771902202306552218995851501597252509574893416694196202605251814300625093391612423076695579087224072156304740699255522323268878611571070602136988878825600355022897624630874235305050320731529991199339235022526873669529057789297944031629013426927182913081117876579890963901882244165498558195178293855085923188831616238564450569969795529438594324499460103423180455119111813240555123367799013368808006762330416288798265173944766279855640536896870772988663638760901477051246150280111820954697881274272879002913077998725403843639237903319252641707671082157595322236069295511228698493902925555158690304949629896275029502561568417998097143673815652508650284175773778559787711761532614266787028840900323231819141832899615246047456773845126104620831535762220669421279209596117074546946926360257592744553195883945270893723013321015134536309476681664507211804414535841006804072340893052036903604950182122475113018624428015163606110615771574606548491093324332429550780062117881656331594202883058941575542835156814741962109864590688669631931955910995806582680384461250857156946438016760256535069165308814375519394908225603847096528922224522745640555480417249262456336697457674551846574989831450032965096324169140264833951715513529133439417140725456429399778592102843349240253729827403926166494798958636772403990552718147856059283114755114143261979214799733918696784898784292235738637708415790676337562148634791358403605283451818629572046725176973801934264440287846988830156035045738885016897209943148042037152273394109020004789946817006956724756683572005661517941492997393028702327768700080962301116803831157466406653473649159342275526540381732843452418265649015457076354330006121313153765401239389339246900534931373490116911685301079878474719305177167630932062770881680341151495225137140109818751863031290445493491537685184515382259685116873457381407009808167401781298756474589856906854934883795595231236797828447143818129828128352764296621697848223386142407739146593077566732045393366464258237763544377013544639837402206788665578640239049986681414959703364074246418252354738858001452225070945034554138903757565414522538360095532643772459695613389165286527775533826750634453334488486993175939737022123471509500826018192456472253637839884499803066503002845386268241808892962166054052079823582970115668834511376939971673423577926266688681184939907458974002077498423894571037736613414571450477111624696042612070981181295230379026115844218352503246350661516099524388669200487942446981973605325100198515968595462075945832570436248198478478527899245782038305012544862877385353902143067573733789351783867454393540669437013624220935364882147454859556877953430975690108231304148216659584795588249611651397676200406800164019583499852549556358580461346202344524530778933568736808793290402830525288969079663317331426125101513293307282722605327927435653378523440866295504968759550247418862326619144253258988347822642674722425431518395068597346269873213407782124525088402170852892283935745336588267440258816595402022286989628843168314676558934705323082689424447764592316183357207055241056183076832086384852716413558973194033468848792056183543107517055419285806562705276949599848718194858608147472912605148659280454809409252150624378789566465976685766212630001951260012134941830244926097689158009924223779903326688501737296964717856315514426697993315529228388433422435962285874358892343672068195737689738246739437284055068017250870719663416697488900524532465946228151851414906232947289133096325047036576179601490890952011883985711398879602169394167055415382227596123361527746109099903312668508741673203894735718452869733157797658172188217829786748213748046189624130789445280453184630242776733874053402261313440716628601224274011920849982577909316133711272190271548892045572624103439631543097863580995659255368455317449239777073374394398137287721292057622483614595197680801937244015392237168145429033861058387630508025451725528949040119206088725916837866180784362024583562051004476863450899831569738151801508873347594245315828163067577867666774585621598469651114729459813186064902672264767354220565834673867304091788418603426790792297024835673400960949221174419672994628795520747121914863138298057724701144767479176384541701182078430558477909872205437917936079450304127438030639053045581843915230333872733918031630923101686182496568102376663505249989984031960522826579255031990427149757269886115623273131324028227695686006583697501646283743723103961612076944936920194011482427511345674852050033939601063204219957614155980874172827572970542712080717343490118417136553502884199862638630453919432095545653468119456666781498271107458350193996069203294131204865903794162144823985972399142825012182028449093350845269747302306690827567439103269087843383941677326363292298030387204196374958601618052863418715744029723640495681590628513837939533872706261267702100516022802318721480487519797140021690812244343729496251909062174710421906226834390319866406967104284556623851608268095089817949210822771299926734404561918760144996763067027159433559715182565654376456586638047493806090855505516628382579213681254799588603675937171583004499677035914490477373046291519329247448783337783378459346298469261402044574345598915740313534216699817767850821659305118860907989258256277549663915812349663744410794648728018005072242819590034681873462063629539313958669436857508426578980492737443411187653133908205039545180159387061910394199418276214646139023984738901500582404022127992319922119856361966671114799307032192592676611772401528699599085399716502345649360972034678243704896838205089919027921351205916262900110817695536816682451310021245291095173289777320435462838656313112131117581725406088021550649804326761567480846069876369736283002950183982984018030977983536485773308987622005227355691095893483559866478510758812448927223696861727698329359791483054566064209834934610614567805230094901293740272080852620007988065470527779120635673769444237025821634038760326587484898367389210998779914021689745769087607474040015184300105636994906859110758658372965647919722114489219794872599429605855571038584399674811616945318462732984970089726178092582090691157778513415513071312388455143547086848548282669549148639826195623432504656500476684622308001601115212818897688198750647912053359591322818350256245581991632341134335585094113199716001117966255610063204426003820956543926733572648400533804659479600648921826882095865969142277069470066128288824488069772850405252397301165333573309652554889564883739085008500059303010640235477927189963747878578943971563276761275117250493994916104543585068082407029380924078547190089527717710601249859496959976307118020390157907893680221102396567262749826955093212741832931088436447379943715540312182510272541631219958888321872646924681918470885593912402019299784497229964912908597677310463982948837598486950088307869469481393075534605996137192513007884801526089288235683829453243338930821466687784175659226730369702563214761216025792857604914550418890275326338792584643970270479255036513619382746291289682561327149321105070818238309527099198533516483075325336090510031054679713151531490683991689728670268959015961368751318590919123020320353324922290852112980009833537713129953020920863882144803861478799969193156267958647169479830148281480556879537449045412231444945110696141587969214002235796831421013837660495307933567166108099407334772418032090125792674475700348133025176852848950422837595923971004810381912527929639422597734432509386490544735909158605006364071798212716607448391656026736113107927874787105956374411733132380281178019738564414997609801350693477703288274273632815810901338518257034800253588257564158299127101506079215582075298934025402979884281274730452694363542644755116035820975049778998950907203250271283869232383777628332609317302775286697173317789364215123671086228372207332512579259777082643152789139549873224093067860505878378654327521217497224920886131267414288638556659007723006444780856290684909784983577832049092647458108039555006906760719465271372075979815576878450343380604068834331926220593242548599762401442111334415020744401359143994218462899825201867545878190715439173740700991383645924328395645848897816914513638250159123967666379840434147997192317042648159806868586656080077221105177316030409189806615021872363392434065495877844634825833457200060537629306223405370197488396863232705776105383340321947501184245442870452963767595644354631613227253206186233802900352230713530020658540285615863675084285316516682668785458571524880473120309058896138609169796025352140718558909099849530446492711271692375044153321723105922883523448045606853826323122648592590624766878048598110725133606236303865805630523678287646147125964683298740099910306628412261135989686009536213972727497818603984264124048501673408763845097567120526963818610669709399571544293394609164834477945782397041205351116816759472404064566671136448646176591447753263540933290713109211870583421552458488721333727976745073316537755641824040748074897802297130647171162244682000914843210357933348986697317437701646036264452404958228545037914519395611196480509061717080490157107900464292034407098753595966926233785051272451275240814520033664202172763663555896168639515839359966155532526531511093580413116978850456497597474271963016787791836932956003093322286822353949587302026154071361886406479572647238768048034671328379952406508854975161653500747987143557368054965845840491118614158424056619940731887626049572800771675785736972530128650285234608017401077262910398502773181941019437087444569173902348286365484138582772120738146709071071903330068738843111168908309341709399974058545032779307603956483335155118118829118583840046089250735226524814011094330259095618290315297113364258102874361775138976095392080426810510048437302664923894424191996686838978664752804583191279706161046734605803954740682238116539710716548478606631131876646545829066112678565324702810105945116388808098478102836421392233439731839443427618463142812656932624254221002951467790730814534391999556015803020193874403284650063512950531877416880566854591361400269085972025347157739593251933777039479360441689492295441339533117436342616941807431854898300167409352658915945875764430102270361881657415956587744259127382142527406672927678463983588770706546463101289087841072576557264881891888699424223423376237176613613370250609578060957389105889636391156236001443065090323378212879279173628106027582487457555716137710330930339250443372084600404467198160660061628524483692856077101963376793715519794082516229370780539252773743420616333699693730786104724165831473473097848600605427794037114666497851281116582238224641452390387799927661499234542682485271456472509153335692040936011517486485491543749538193085421791736523186999262948945349370337985585258479603542756274458095123977419699897314099404738099846634329632823852436669996538671638363648193259640981263804158050264938417180217272481543659353587675250406737913633099863596354144731047117676054931291284454428894541823351930644747571361038983950547952123825188638598388650709271914452960555164709767064237217720136969739235502270346756298004771365274691926102227975095832634983545577368538822293473059573003794169474156094154406675794543448647278021061669945794038519561977846379274009014458698724339724309424450361908555964176333269977425395453382537369974248707402403368173250525677685840746260890233224291200517501436028253962164367943833052122274933115578752130419389056597947289463719376245771067452073449946356969336310975341537689612373407016109299965929566650347877253772456893320978874385838395420962068004113994502540975519176607800852738317212340328635132728650720330824333891833088385375570479415273060845735998597470931537569251041917692669624721780106013681750599687348220487306112014057174487794535497169423487847325003705751563627225541257201837816717151823899886506322329984061315383335085705746276578442001304732304883331953994519084484179178552599465258397671257351862567497396725207396343380014385255343866582058780737259938228301668251006011735642177409520335788017705878094653340142620899139665641811108490446341258286203942913510208675828464426659499541196514988989005364692410960700990436449634731407922076701738938992564298392694812931394549501718509126778313021044002136546979317058847533076312081571792111060591999708604965598614269609665603271477673126915869298826957228203047644824983922025311913772493860335776390589040030286669950885074259495874904304734274969796659590581498772712516576989219078574644137615672146729541174335973031192305454450064514416905757634554068339875644159951886197055902291283587986879950295269095996923838320568489199133883773779298369373126481506847331808370118988565023749841597604594178878345626010317305316692300251706582861093784288897534996893739501337457855885500180268983838680351387783030465540932750378691006076288024817765420588576929947201235263489811094355087141499747615740148101149249395285226428164393651287410565180425866845338069276232748653545054620612247563865934673729162002577571160511254480925478990959565557203203393380340519730269068610459524613454212906939609504293724977435919625586053784217805570070261644684048614567492217175135952516120613984345551366897088425498939066487315435194024925293498868894540313810056731781547154972384589377905556550194801151039531412664443188917166764033808956753310191907958885120558028807882296812534320096156361794491848985158962166800067194685291533586009673266873328025253734058695654447781505782014419945175412201541751137732684318242619520035165481947768361881733545655092648812710757796235385648136364221352467922009410387261888552744337904173956457460109781244113817345549045611611132154861328916558250908359216366663644750526715615690332945727628064286810178064847851024862551751481506976644553321804206491491590699943497479153528605611178068865158368765449338939451421070990721820929120615055863175840694577186643426737165005344687913866225650536357744360655072335343156990924689551570684871478453318410395222848564773281661222139013814918214289862633526245847356721305132502728511059482673747526693372329938234626460358223027167469224045655494540919215069993667418634852802129483669551820834051972133286337733689254209045601147521317263239953632060690313604357820670186942323645250847806119619867178161985123895132096729935480386137356733648745646548905602596107868674377453919021944399710694586869521770549330787180086759048422705833007096733365397689472912391242981416000414427001017681549379505541069203496039487636270417202149462973310442703054446838634357095866030203951630001693420015433998310776780044519014877580977514642937897889775230901929316607734907491194968608318896155615021437612051067658370028005917464224855479331475038546490221410220436154141384697746718720314595091580515734504772516338734435446421664018614860682187175780360404749817457376174074583798402675501370815893555685082121550801559706672708242946485412796359465899130735919675316014214236438120609902120312352985032794645636669920011897382585072687420947786039118698774352624114156681001569872485573010383987618216807057256778698687978386416494714157629650643774702885461782036760901099574489557582910049563483170890604714737653580326654808118075723070768682724626172976536907636062426422695980551792878947293312670537205963267425321815236822026134838327803418510933601473467258062761479820033910112505261584038412898863214356735735204151460185262911279730956839215099149524666007881598144737634861912503201562581752295475771030460662917552199248239767773948679009998324781494440867358656057686915197501795425356046694472565657208159968410196575846034675826418599061383855053343497307692745275947071911887994370081398135992286391688462768161396851930002790809847846117643197310402324712780573291469414510467037077609147703250715953353247541581470978139772639837329988621428498545277498042440817780872696569414867510736941412435031634808854220235669384470161214320452553057310701974109369032531347834778727905800638066003439285660054599995447855600514487207869557823921954138945091521059444729049773867396520378783975762760427011067725920547469750452402811502363344853359141772871749160541887222392830948501706958391478886199672755804155457266910293461646348774569539780176630037348324759916916809455423620215425397539960436000186000240914320953773753493892385463989945569204226607034054417420537541465947082253613944097655788866440101190053387037511717963823519858464062672800259345968118508816624744040821179501875814830096120292496503067327072505591255584852302593391849792165989805077974892160114187811048211560153325976285307971120294079439583296075822992497818535581899280182688395698670348574873691913642799411762982491157429561580339490251792378663249878731163685795804033537559401144310302723520439499826844774674105706690663481503369724431742233769830118825434743783094438606808609987717541866588098598125319930942227327352487999017176544364754208139591266401217468442896511119386409721751864049448153010857001639058577065915226783494019813365978581212814435945277723492978391394020481265304246219299056809067561935199874772340474381463684825692496131939794365671297768777817265101321580975111634189609803542536201755273252022800826341526847654199662291862435309388144763879535701635950055119353930369455143958338061349676071796047830513638749320191370155249803751623133033034074536863850790857738497980831442143101557935858944567516132955809417972023459764366824214508357928099528240919250702636785487135853178571746682883002555169740703533507565782198464260685402564027994438566765753575347515910423086332052317029857922662789243452306463099604666097222600994171630454693617952896320319555689886508867050421582921550841640568796144204364591099102217302806743144534200962753521823640878578082135121561094235658307067264305327489037509523652305941769546341662717547312044150873243650208139577810329503990104226470701957082771057047741496200890236768316451669020243075347606859424541888028388574699994449829500936641134874925539462646823046919159723104494940386893732636844991303484599497860325881595681064092817301242481966270862411681086439303708117744515955954627256391974773799231131572601872801213574799120648785528118104959456442094007353662622911200144889841246616972388571987243040695912473511172101504995048102184489699638685190634363492609730320098222431523173476253710786536430860974768812960289041712058436251908508887237783819720698126595785590222691741975645365322206641596581416928159282279876058506873193389008123500090451897446175844824704914748658431147969786039684293040564750575162182303486468858244382421657665997794034675126601693876496306205071588480868050962230856308545428259834717785845023647134252151120058146019599840625945965845640898598317956623265512096353551434823657632939186496942136813614894698522038837189698166404955635791645218025637994665763075307771581861981318657061640100402631956538486320643151834843327416440384149019251871470715399431052742582674787034324528607390079531709960737166227105845403810565970551053166170826553694481148694189909998677958768590951176910217604663184111823159595165461925478500841765384420477934451705025281225536970949032605220633672218704059870441173426168117604309785980360950835284335481088219006892899365217465007231530437268174998584986971214911280011585233875397385032245277933437149860689871711682847259016466075908551987892126639933630863551732784032375780463173124690460407318204951593061740412392269538665754176576392187730764011959280293385968333869395853408494455279513407351551522575591190089650357950858102485737639750868946231422605902103383011370612999702752852108204971893671667828309932837221603387677933896897886437890040848663938233830969695288876928377653396196113952262078741946328412928138479171412791949252366863348071032088140179483828027147406924948650769481771976656215078511499470251830453207503613258650821021623252350721105197588907465096101446080441758865953448863733435993009657056259270166540572273047364840333321217721739559359971321121925862382502849917845960699082727299762387561431888529860125337510264165031587343795283557061417934945936069347471157787595208160021616859575389974950999467033789498409940046374945846750507528547452096745860151652103896712140141552452457660546477598978566334636567788955623178159549290712741239011514151445079618541417708333224709062176547828509512931238923550651882153507527920554949327118360825659884531192013971476521233011699003371925480989668371431039773963534030171705450997732923859394298527460162744480168676337723391076630447335363562687459026854525551741347456804202023523794038689631605237369399816748498497717327586064087449496338094115257437582448926751459323365615971163672248159108373405024060860229546416645857489243394833824768815365871590925141055037569932645081701361332849590430244503012073185374824163258572579687907518651955360210746219011107520153376315515214690346604665790795610716821957400559201858558257539022252378619532646505010252742162643822333690144501893719923527119244628628481271007258110649172379000954175290149473296489638813300628537433260966346541333088898514414615160183970606459627376228724490697144066925809436836607562643404399772491883665741367636542239871482215282159387626408978271991163834656268372275643706269434198283413159821582668759361463960284926717215405933417554133234450872797408895326651139877214025245565472742147762544569063640023293426269715075741085008152505144312949609018326705495184034612772007383861827741688682729704505728673386080968965560475204338459634419595985619486038087572410641256956276424316789511399919607103637787491915086669887421687925697378126770354633686442036466231165858210802614024972283504637715982371450992132814719066971054108805022467783767513499632847779932707203875606606778788182489494746063767718011587995219537581142663089995368803022175688639701808635747554417087577302683116110742352975856480983550197165504361294490876093087918174028797925362526400757264409835954818412413639969184372536733783844368153411240132471741458477718201223640917458029178388975820640248623594300377379181073829211437251456227235505880890779232545500996257519551739784376221081248879828690163030692627990410753199529685237018841500766548934742847380906574495337488084840234951453416594603954557655495012985523006153997383826672730051075504993644117634438106557137842219585865692395983403961920681964482573822156151322158632732948318551732664785369972939111823901931447088076445391876241921424219125969190079046259497390682237549788764366084563514858497679541459426262395636477092696930266268326590123841435875004854261523183707643254217084435245522833386565578435184266028292041645562516047869751366762594960123750711478054798274684356829184234978531438116368259873842303048277193944991649654686556799164549363322365202567384947042022240719392964136558210212617326858316978275854303031824683008437591179224638455763694173080305774368358947999371821897206155113697654482916678424123391008915520513896760763055473412847934712766669398411399095529636809853653228173971675759145579143679287145862888244797665717693653868752230640455293487781244817674885814821084127175258740675082748137119608845662839343834695762067396214871266422864631938181960633543532915164760622435537129835456239655264612055202548958559438726765581809123269528119690031942990444694592268144942671265658218996205728931682133815163492483061350345852633687010739917820670388615236917265599194126818941282196317344934952710666859313037847469274571215051189550012785439747027017128328417876376091004769923436722779301601346609309708166320348622933642600647652833491900220636985144889188584756415517511377157019923384940758256115997942841833787160048236724830727536228464580590220908245047547365737412137258707846178277341826192158161994270111920464060755497099099799530537229806439335630890640558674464020250048213110143301182218501182331692433877333566610124479750703385209682280244259405442227479623323034877682282894407687504661919870396215370029102975043332371396342007093089655838286879637067073772705291912963286408984135190727259450847524061047766176515273479343517310173741245468248115310961932280808528664502737743685135651456355686302077216251708248656778293621168846265021600859316374751651247410602206116590347903820822414488670898230475046126254989877500196515358081167368821379905793290966225700111867637346396619667062641542611362192112903619102624530692566748084998021273641460639600510250956353165817682176803372492630980059130245737675971607361168859555501986193729321360643183593987536695710015473441577727000586916314766042356227277602708265452410733283142222555361526863158335528614129967911524738000177942307630951428036619072621226440204115993246666125083430247451322396378246603947534967918510815474232950680533883493196472094401278540200474060826434914157828546203131735235182041750012876535631533890386411515719552908024289256292079579820309713702018070107326485655305667510205354689437914520444346435611240090269239281663107097805614293782747123628556445660111807986326839422525351163515467040215023777609084528603024993246136937132652324279575735733280419756623247837734424969534226514999241538299843721957378828201269708945656855374444966317779916860898651188694996372041372824766877668595456188892183245930477243723416299717193442324075648302352698741826364540365449081759780785201285410722598493015881701917007212945604929106358704107249209915394103151465097875028273129905488500052739565732469173291526193914232464102418416344572083760386312343285304390202725058564833329284664976577792924576803117429965093747036284007268690627666041627059622907304986623165313006393200301098765261027323537977560926798654223217348541255656588926471108750972780396041771471151365647299917908919853880690453837097631189443322604401311283034143101486141621641793434468219192081026846331563970879304394780552719182802100385659729879329930542082978678358554270604636602625170476866586719332946357623999618863178295102607089302075430811907427400877942478002060579048493753857957853214794064823124645737807473566073353181465589616520102208261270094613724893190852588493580533593601397410940520871271988266826653402611501739593408559165192496601684325903783893404195150305624162226591946351245518470553858523682039555807236131769461841837308316305055511936939713665522596298293415919166672122929532295522750724605523823810925056155836338008651608368570340707105597246292703084875946098215281392482103696978880282782260192294760427771863656323486043653527386657601279275693878249114021599719858576319665068225422501671117056191070579938808801380715098845456623996415210957949451989962585090386229509082585177176678609581835661709994700569615540899786841095408203417948781361890717588607510507703782688700370026173048198869907632683016083632053625652286824436106101706148593062450718970990057616640443754034301412264732790500874808209817271564102759151071615486353007562606994081093601592755718439118020493543114860410285714881438208064090410988178196351773646438659499038437906807194677367421486228860646271083140273135729145644227377348317068099832706542608155010468103939939934937713829256122959948966053823556959995068976919090170160904601192758738601558778011785115596213051749882424891925722745565637830744490678503346653016008561822107516144932247446663580434469569076745689672248020350916989068580713312971832122387560746922916866158434600422134720688552439326808085614042184119247916450064707787156459153972068607385307611103749105257271238813638739874496497084372635718461155749160256694866645064007866803962103492485487112652007795598364748292075497592402890070930324207572641869333096600954662798397077663842624838291189777722684976423444090562257814262422151601250894822604718538906591612624357047516239394971225843661460618257091262239480585691513112118549322173255595006891212221063098719998395099840805935414413449869564252495138649552761589981259024616899541688419612947505110979349665863958886483651874595260309727358960199902916629160066912071022593914473710695425054320454424700366640841407888932450061028367261788041448378380852514119903795519730936584421710400173612212975743908339211902963084489776405251448888740183237650247404689503101486752620460166173537044103865590941134915383793131921716406893713211637492995499570133633458689142914416471460291056648313866750059888208569641876698046549158398778575348366154840883684351524335610879228896115472527150318018012338576035838264996221402758333486179348924906960494101545041308294013157030068260329663574337274426713572317473605151919592554204602385991714486657003939219961694495717590892824324163749822509337206492729864019377526459948892888978118731951936491632287853526242936693698249226508305753227775849457627092058341561406301803321859779423472682321469582488286681220334816827746942419707950302826178569658984703483458958451333429999506847449067927283728457915250744701931958296968494637374793601145437837850006860267761540622509838573910174240758830201513020841764539753058172379220401891841313697519419044971489697319338288312723872915407590659996100068524124977708896921346805657282355955187825419784666825039613772206193151119024513041982115390848975728438912868447914210423104943294544087033073974901883390063242129847789448400567862360919119861596779634685012856610578906300941772261854272653838689573649668129880851346312379991340935151877738299371323441925264613718394548091814252444956690556532882919683831997008903039385273891525498879180065076822018908546867122663248589247305810402260902429570181281667330046213449957309658602439519203339504920054640225728589768031201637115731316791894507835288956529440679451067327309261891587186073927193608409716068327567801817801311356835121698695951204775178854834996705206546982499314537938433159433370910810073319636195619795981977357670310071374008379468599410718698784298709201452622442742302812725576658321799267589278438818642963931327736215551896073957735750351442360890766735435094748288953470266173679978998345932763408898278920885711330056946148853574721098726223532623673792928523347318375193381958844377808969372602138026532419758470923857213133615074118002329002083114233701678085470537666271294876381387015657374548030046556235005411520345870959893260066898453940506401168510269586550248392987290155973311352941690395055454104785382376398331656112262355955246712489409239673322048631017175738994735269178128682930099979919736386881800997711733581664304185865338092956184441302067827769200981878362592152886364788135148608820660278568259185870849009650369709934660967923728010271797933688097460107729008076253517826353759887733043323000987873148552324030955145008904944349409702523795552008879085194776190137446931620939397616821808135995576583342788609469018191926433725011646538740298508759131306808126447039686039066234632735596819562052761908249416358625837563880829284892257233615776652556380462291067884097708797490160154451442349880186638346555002293844278645599456706849180061465697462977435927300859051991931267835698747196902327855046787566828415208681271702714320259758215327867384533568052393296702744384412653690248828341935138300902732986767789380217272695022352189641951405537835746587442941254204630491872862746537739722399031881553343711269959633551965575942738307563183035844898501238454873878541635254812173275263756153424738809463945134181286936701039917447586680994791553319618201541664139567038658940852435861741779818436919983149915021547900741160725475970547135472145444461512047669160942520214664603647648507145992031480931400067809457603558187559997187225489383510433259540738441128289782560299797893857284476997173241055991762253096717964830307503573064714216581772615607222410124157926092513478622564316248110398864577302972265540239864176986377405456996937320242643171184325309103724199006253602209133078589105437007866013249573408198281099026361651141145644963967432395713442839872207129621261971235402654654749719919181637613841989538491458573883715503214596090108915983396182930523020037356972141435118915717314949017820060105118646361363527138800332848112420706858232927403567801236469458879589371901373791663686941467101288976559085609618237000652807904046092418811563782605484988131790163977852142846800518880274270788271325419520693900697379158269562404987152092144416027681326332559133971746269000115595281930145188626996950809698752604436120606328768415311153564955514901814454155486111726244058525546792857309308450062469036018418009149368001211421638109041287178343558711762695965101664692123075182680998504511822024397517644723328831588328810393846382415342247076419312266657045017263331019871241952612908468982055411286376027327668596127782677200998421286000399141313976165367896652295901669246212623266598203487324662850321286267893802907403877575405606039090714268177693631554611554945238451575997019589646267661843815223516258522495734246336307060511149870926284863464891035614091039753796362175975273591060576797600808124248285620585237288364867719681899167195270104092976416331518214796479715723046462909712613194530331774625102248291872774065834578542285726337211071603879963804626686382764133419441940381677763804758077014394174052231686007369018332131640056413209049399432222170500283990992896404899585292690936896087690134077006775110180909026102583592733192822801625212689155065152846191185526279781963937941660191613079307119666244650440968876492013710899481920678119607977135874649955415844067152915232503233621457959372741061803100655167468969923458203305056150660453140587975441535522011205543253319529901663938700109884772164979813833782540401967603154494074688205144272455310065597956625805670973626924267879142384271471807177412884900742618802976590950069964265080923674350541573153484941381952944610077481814341246573956325770388062055523203078626506819780148034485013421940926773553436168322345840239294877293769183697918996206560244346506822045665346175106407364088749977857899142060929603596741402128137161262686919750077914674160333188173679176324225026707202236367647469392841123804218299074572326138997663968637480464974062773964097349700888473203705052424587320264487280425367455449436025352051903720973129181386547519399875946617247070952168719501009493963280387747597259143153077848284603653756474952157818851263019749052077593073565201911568111445948919702580298310032049402243015453350136669680723425741637437989577545426919227764005109270283205600192134224809212718656288925367557255226109750452432244683642265300137964957338315505251022309234466072252458562394224229055703914222303303581898058588939572771847012997992939479375161090740908870753271287975316385953314090644956837633820852781885557227337090798631272656659119268424201577084361748665144976271979141271331983386757809211303683546843283455021354722841327795983286566149876233268588189568915813519537255842710503697271303255867290971508622960924952638141100140025242400312217711258163108679311197536153593891514441855888520968701540308817031256387152859277131003879076893952141315275233073203566784131084037125069249759305665483297866533197722004172952110625298314758681330988287779819357206977594766311271313190628717524149537852178704378581716314801631982073618587510697046772514085096141110338012098720829557932393663061715815951583574988983923131192136714856923494103966652171918949204369530537652186637302066417908867966317496922507231311072788171918504506874905142857432343502369244131332537632361651838944101768012995688878753547235725298627257446582447567435739384156599942596804782578785247026557413802371658938079188348392199027821862906195463727474428086245976752085658755861077058071411372707090057065922373042859027875907730128736245256546702268453047082336767265457105710058471994486464251824176366546799357784647448302659279469474555849675566629594670828319545968783329537212344356016303808676965973994698291683593288482185038766276196787864412368214860823073952153616802575810571028076398926406449620264080547488253801506025492699988666537333530383559798973708285175522778944466963309224667085294319660064689313023404777283731354378564461115513993475803950261469062552099489577016484304355902885838764874650528645266529712808954600146782314079532553807646127278608195813740148167766443884158405170855324672498315049297579265437791979238503745569599392895167342644177278294192184473454127119925221653848005296483980818837673863565911013911448278109860888085598659781977972623618078992539997792881811981447406341783864715234080759024094317632564755834621169404157436567063023054001009264271863451285983754689719821109371467231455198086971695176969672874752707608522107174053985767426310511487653354670322174954106687688370649533342128136705138840521906671205879680495452623422887627174212950038310790380108397548419974541553891666088732120045705242208813523211020023591601209164581918786416822037465970517579717011483349276304137733639816833132599006713769649103122314487539318494934689643032840075690103617327247678667353796842111062719604271081839228383295759721058601513523597515026247256921866106603782457391696432585021938599298695539910279199972185748118846105296739399403086111092831373701039774888579424779144645177607065571149174119462429118164150241414101970239788216104699964907398471273652598157513426006478218335641376502807217893631941001820357528484574624921774531633588701969595412834916918474350059179321505108855282506746811029764974383593758187421364679236987303299437377002930294289746349675706206523499002798660933937049558323170917632492951144055937541856045146284459909351349230300252404328966876323261506773754418628387167341432163201222464753846301933990503060231041461696580886334292210296070990820633965522784609392193899618231390210566637077091587256557805621924402946451440779789836679905105856003758246629997346406014170597219423901151083729578333484104078849767308336065447759461464112207556568948659676614257724266341838387431806589439771578733962555238497763547497550576727123080931967688518997824605667870074311887924907904534710172433898182954522811872424062382508588561735106228862189614668053518513820050507671957773815258119384815356499241069469716980039426669785840499675101210569142789679632424276946800337913375117961510302424564724145909333239843755525355827080384274081390685459248699347767935041332789624320753018343416319676527480968010761138021268467322150896783098594410075220156800654352546865808187257614938161903344264158185309268672969093569142445555203984193527827801542065835762208224002142408916011103360067703986145505340764110464861205565285509574113177212870790528255636491949496860858004099612605506120782284249590751705717836938933552311509288177124139636836932373072468217134408418789970808958683604752894029085747199886265670363629180010338140626720307624449814162621799314852674132861188759302099148557020922912223273718023380158015326821150171707385104818295282215752716554664569329618441474123047914143233480822473685727687239252267450042290348518590206414272771152135173500282915623701052688903521375342469199424191870142406574477552744954960299652612958298169781153497790181645503597580353527878478626520181029622516278930859409547754660566975631113094912359380068440912014307808519869759626476465345152745187207478734026421426314655448919933170086760978900381963885949048524511490364923150038323216424800675618125637674909077332238243721049416626745817583198440752209045355483525740318144272005057122217528503994294773268041948982632404734145487357606104936156792492951692868564531745013460243048928516938099841045795497316237725167434473395080145530042133406483388230997816404541978288235907001774664825601827305074502704548602751330466866602266442405765121945073898993470801587518614048270401716904683513190618428820265231323505521424300248159368529611586445447479026244686238983072233778589048951429932933913098728133067553983755748453639009505621883901541397743813765367183033073008084131854793106202947185397350469493201615413338838170392132767338850620928770624806995348261384671537124796351066186235391069743993166636369844387194861149213342725894904136574536639631584423257324363773146922082217747936288120742658205597125714020305594610937141589315779931475213116388756507377198554784901846461891280510752048364279883756764687810216248906485026855365737603909758708240057615655536742011180663341337989842083995877972805003968926586378418627739931141915019417461505840179712939365496652206361024458038193278634274084797818248029478844885255265700515853729307698239429407991479976374917640360963272322563781020607916822102343693583442372511338866577967320131482562914333747823100834975263385807338709771025779413576246777857727968322464328762517656281492295998816000145380876691466790589755465721569756116554537299312684127864018006280451301583700791632822563657697626104005179322534661619427468594106185479149299089481391738854335250594309669029153033981022940157326182881343769903546369827402116444147049941511343022454395915908774147382824614873081234245161244162693623685626084113301977351589714332341825447610756261650939956441633128152686153350405713199964748014143289908085986150124267529124917614724845372835019284388195702943231004204160258291720659345338997358222903483112364541431976449199426401454777775775390257627141276145581028083221095698068474270027458077958779696910899919807776406396100112169844540118245775370381995944034691396757086753880003936010297299241027911835080797935945474321505019437937875131482374191393126339324032189941009067887644214810380144613765054242943159659848529807478022143766794760318728236228734521627168271761199638320866165025152939276290927680514734751064260339145557694470666704151680562969753238997994231267626119595621856108611215913139489270444897030964464716926885886129899354268229074187703973590889218063208362508465354915663052754248453169678515957432973771188907586275182452523598826173789811818199845515273633591140466775005937225191531520739457520918966878830042004856743545973757702924272319546204953344600979043756113450113372836599498868037608956732473500228564605179037998914152398034752712419658070234014358558054692096594288007132969204414193886957248619177980756535057545627965268686348916941313698884638207426731200745881622672369998797831544120940511450880717155510970033141079207622281662029108835226092299291284276541404997498157060281424850262440349550448112672738233921350683128389789260294636793662635857751108167569458660953405910903464167439674471235874092366282610291592278729534865342007882333934832865126475621479601003408176521070075162717550705248402430062373400679922072017409403065796375493786910517046098124836047387134797911580753257588722437789839875567580700792454332548086282274282967875783417782211260009739936030190875242755928342904274604330281307792380673459978882407211532566033291561746073385819680337821194880184149036868422519403617119109477254518167140496728384970615434841903670488292192841469551710213908222249366752118123809249463791349018944143433755737853941823573884946839585254485092900183026243918812959392716675519276864529398536575974914038465183212021734845845293463474017092704470131273646946405272309539757265955813495850995633507261685979428965622780594594186405003034440449933400823555509992695003548384966692754322054633027110284006265478495294538342738542271684072825031735508704876507674761647102053558461184678249574264107147337795103826581847911716053634904347190798336161306722713157942323864389009883756097517003851175013339824744769938944515426291873785332766789758718018349078906872661737896340164715121734530112698173273741575746177589313052374644478908796541495000224501803922132813295184296394906296023156990015660760955109971529373017711424395749237006915778324256987741278288991076772723621443337126093385635486511666425188954385766779428401185327045135062495715449717923922479649825268268484517174045825277917121215874802516792699563239504728018217519656726596088180821331563787993673720835747478276813305296542300251542764700661294938682063023515056860776040825728259993409521209760448450608943895225326525839125940831588535197531123174289147261096655195726997854537541023934418011585791682685025763722897242794166465271654335946350870930841724392270730877857789764117066672533102573139508967337849933198387614136558694502183291781163884727875443451130949212827209146680539603369388948484797851118464674461373704429619895211049483991747605999768626140105299338281798073701228915723298771769743270459942248823509991065560616254572070368096423326447476516473511853471569037522833432559525318057531603527800124425532716083889037564567718981923201358102415196813915049530978913748374443838651821001438724301027079876378823160230585184333532857298426218346285291212675559857958147219969050447990049369384641153901860992620963413808287541068985722458141475206000996619722018177298148672465073691325419671694511457663621327779980137150008836980809099775146071692280862538016578445581368542594682937316918213194148904271442896739111132968479108222792556919139618461504466265794075589482986947681958592402283701689885960301169279617519896508395914395708293437065044604061093113076885963765728758855038518096366690707603388351232948435960902389399104821180497026765616964298108291751093805943883851716105264065809723556430050931901638052606560041321433492732923909607546190839165699047572290011680413391532351008909938370713469510816836888793107753253520569569315465305266012539082913281599379043421340220058122088076355794059281401576666439212289289322927508818496344733583798849423688607484962593122564682805448848990907424571988669428689652311997390787184650726086338598162000313443124545232877854073189256718594770225517119262864138170336052480349183186967959382879284654826873836118836698181115117094622450387678767059849260459932870792865111834328016328143622754011134900780703938463030265933145923177278190337968343803797014924533557830640116127532885962876739798475357784828481260133999934720680541501352816384429035751963025079322003359758816358278223869706588989724036357896321906746809952558249339052376460027107038589815379299224672551940882144511837714798884622208335479584876420616631693667241768363897137971385185799288177473008653137372307701599792479111114226195036688088649123825575026714596908965664010304532422143223234391514623400231710328155076185379974811485138665503621187526219287078553342509300224897933030150695509956861890760335902937494608150866454010095225413807734656853227646837481239074570602829526490150312907400492965964754770464185450129854922517365153448571865447337208451488377735102888564347123320132690681769681921248670996628383710933226468344768777187451464897963146519398436998322617740954058588634916951295492844239038671923246894022926622711908110296720506079426910111156138288542391869377122045091662176598607043720830134642581897079004499836984096894388633639062670230508078560682587676428601474560726725681306296672306896012531620610837187897378716919886881917668908672799463569906597216578497266165900553935082889857606904736934447511021932619396965184620708742657796475741668668080922148428652825100157570121921750173239886093139292981875085396680637416637847529210195880387889249518923953467613181592167638375780796087533235914762203373885311471370823189825418633986825693500826178997735161164834117804406506880797502396300704420989549919979408368748231886318924856695212611253032940228382329624089283516670173455140463261056510563523099064539357937809743588817827604636005274682407077767097068818048693929765616458425983103352216983593295454497173946792371475977535359478817919697106009599479853015324537233789321739679943919018520781889469166297275998721694284257072990343010221770722381009379205843999724802863013277542010185025879679257233114715610541027470749915318096815030022683387478402581470206880037003565899170115126931572128680196312461500943952916487344023345702542261956245619585447472446513732767218058919230710242415440065900767430028962489731726581381605712121563005742382368900634238710111210698481528820542411892510060925062190414880654827785548086432549924080429312022592887430641890642536185736859954384350268086703524972832917778471303621897623214996553191002048728031298833305256522897389933879998859548911367334861739559158287253615626882856310317966977075282982709767486012911286087435990056260099562509096438808896935132224109867775930016752736605848060683857691425702126608475207244610469302606106857295508977618541448717102065637379571891367557530917148031358884563579410732204879353334114404481630381841966951810473380267481127124286964182904333562790649520182807895452999149901826780685981670228357420544186594511335612013187514032446631361245934537102883050498231985222756638432711059301426918585338022532451281535341496669920400218965436997604409756844228892099051303296592843147354743421405871309045616802904466765420816454316299448564214962521694339607963721761412860875512849026062002434364252502272338610196653256133111415425621272251463579206418600873923265017516853871957182228004964804995241557075125137522783821658634592438682855699130794477076136960762774105231438538505439062489011620710507112774913397876302506144263217418904535098660216143327733081551760950276923711651068243510056814954361780238759457860557657360529425244930034256855219001680540968695971950324134137404258989212031944065046951195018747314222607157577205813719351520777772607302603839692121292277445748017610008109373785542069022302007422175895352950275277328573762356199454208272315842491924383433754507802376261625406091441448877685583972066713077220320769580341421034374247456558671340369187815975875968443487256162337658599379631646284882120689100173003568752788723101785100125179850333532093209492950676173936511319019994553119954295496097823281975240531041975172353409293297901399628606617590395512161950341902340574288972057861397197236392928857226206229570759667183087311034840751840321006665437595416293918539364926565985487476341095563030437085514429375729189964613443797314948546988909344973400134022206738838856568663255240120757181893131348117831207896302951057869832742312370614558903936925621328232989225681258945356535691562559341865803752213745881684985870167205158445185827582708210997364062444925313031296548849951458736424879919589801668830549254638070813978445154658911113841236187638243406613986062812516985927763613745741268884112455461487939078476866894596179424783784291877367068449144941600512167533095340857705657339578730336773845960648053311289953530446792689048073866277915338471132988299722195813199917899232630888564429792800303306401970451575888716540299538482891875707820388541689805896174081752954478109321714496146260376134776789832859120665574632266662631291896851042313122752126263379751092135805445767975893727557108723793908126263817172539766934446249066050881551081242545336953997669316943376425079182786123739451055154746010052537742316760457961495008927976496748522694687411048697295133185369626575468660509159489347430697066224955566598377747327572419230957596254207086570721897605097552149716707707706472233937066885027608778632893170697126597154511520005396033896651973584405754030393884146722178236519850713352900026663464791861839284155626092473583981466953107198847108239522232564981809531123908431485493269431929728738328619148905175236807556945587640161466592610071968058838508903000936046855408388610904079789872084109082841702968098813914907000134745036096312744462395137217744368674951953402358148778666293745587733540005399936497886256984730333957546176152363241197891140127312638131400292754625336243265081728470934508810409152806687493909725656791634586864486700657374557735466287650912714012758439146933133611836026806542142563457261747944346392244052969873396955222349196131563803500402599825249327487313394066600129007110073169937332340606710587431073493814818339118788885076665990530869358009031716537188624360087593565707929661553223730986436429724520712346689332941800274067530875727249498893996892587074057036715301279937374198621640901126737544155944225749697111411889580916587509538744197991397532684003195565086848834528269889004251344479762474454410317789411931273010709051609443220805114214305317401143036007004433444437941244752085307889906235349801417320646625754666123808674933010359023452007230258058706349312803153583278185429113764372425908272052653430126849316430991711797820621924724806105947542762162410827476263081341688917814891800321932650933521319726688943151923026512194561192811108611276975178481761105644586075903780131995420243396172850952109072905210977727444873087829142406687460003051813050286950978089904190216597174378402939573757833022733283315976364683830673042985892019270776577949227832563946741832904424127556837007801658959849437401508281276402505164313801437851618640011823094146302766598886567741771978852169896468325635418863544872391907604499807733666608208969037981922517245848352061996563059086520152151265279893692528257166054045513026782924946297686564481575852358512779457118031156819999703042084971804894440520514153832753803889608547238691884536065404909839274178589612902450806971217614384123372013120420342295904281800855936529693927386604581440657810171504486629168149733622049565847861388985797193876223299583201924074490034061970684696084058424923861900753387332449413755158979587855639136446083035046132204484159461863462077733299644380671399649280106603994376657768281585983633190002192308165956477742696224545943763760068625609992712760217227964974199506467950388580398253283791701513696504976670235096393942180226073295704228237074231388919894662736733295233135329294359388324560064187366546667560162974293293185589009535291160965574499931491560223184415532192441078520730733769087432971360398952864395565319928713455835038600719724215155129277970104271055710923208291708458775755258708562622511618982987857411911308983925053627277659497946808891749271695105759812805669521567530646924438075569824930625597980457598254864750816714414416516677802523336543600356621423694302769468048798054314714149284544895346610643823738317724412329830550838369077931150690286880233486413579366782829895896699648732980902930120343507544939880941580077534200139381325441941116709062336562552732856199989148980569090963762438747429057888762430511354130342432988988760354868990284824040268148865071083358294385058871709137427150755107308298726425102319564599890400428562941409536653765513805290257787417111315039273833688670880414414855532174234760644408270043632065018742095496359459844396361285711709012138644249054447826075021843589818819144881506199671682154626506472004111604730679254133451529462446637609562077818785379351136289603487080493275275708638216515147947100959387811314927780838947076599042329624189357871791295694576306903778277238855131353947212042586127374980427234412128474682579806532740483994071624117256971530437585997600011135977974373079862424223587736615538202548539837768337679741873882558946156336265563085950799116626483069360749062304171924410057221548800862164404310251944362941267502530771442340711706989182462090825538441175288869166648583805093422241132761957882717403158197435644530773129392239645017270093586735051113031837210714664335093133134437452684837174036368633885482396140795035393693051859712583669211486371566034926200678269815452667321634859766176716922306767549257473840562210509312729278400273510312426810941926829988451262452999646659978896840575175986134720027598359377564117310208026417658149495022275818643276141873204090913258007961658982275762541030765086758235295466205230048493697284383730047711743044614405320701589280254419995894132057542262595330244449359635356259473720765970731268572232234413063433111903723580244307974547154810782394116786247790936203530806151431200267786213171451618695635266108667081129557403426080091483666688507610534815958917987701367280385188051778333019458109744639242061226041573189390604645559396015761655098621654673921661514384634851266556460278647410730677414186606332081493735935809925312916268407736322384438166652212513867811927910012121419174122960315195177201086782272168333726196167375773021180409140662517112987024036239887099836714638279867155190013598286542253098958438166446096802746813979567326795937670724586847304904151138830772525186280185188031761682913040425697071315308466944984042743582655059545657453957063117163823167072760701115471692350231268716157383348933339606193170185823774429247828438957217623005253045033597404335649624908864411838052928359872408052211147302960325120250734290906460893714800339823046123041289421353303660857379665966141303227814334329804935172324009618018180630260435200205070274585080712542288534917869519663601530533270110865887801465824344466081249573250658144672264854236706280818038371805120721038435959370717114090825703364622235748335988571506422337765664009465448634120508469259779322925407260286004184391380445078394664682880106461924908596694845540713117078801225256455940424143758832623052120091835991472267752551239514042488010156359854697103596129704580662246432083685988422474019343551915485854937513296073469228586175545741841486956351082524232191311499237805333358356742593994525443985802489025573792422981767536528434235572833849572883809867400364638881754386638868687220860182738691914453194530642072621496678481273999737888552467508830964144736480512873319805226526613020199649396609019219866004890999285138402885590388323347131358942732585538464142643374471613367470465990707612543852720598990792295170766676548705593525054354630086902241792119872335530548644528610063032418827933053844597821781514995378597681305551148574404119980301047808765380325900641001202920835136917994847235475321729724458036167029360889303007954791874788237747557163197876969303144306294330307680010515721900288251068851939078030371803903784012143054314908548604657743426256966063363097667212728666897929457059094673740563901269256288578508948908683237459563990679648740892539735534198009378224588920995183430152587126259872078839548139119739544182446532418290713177874460342233402416424966998350373196728165496044419414792933045297213842601948990648964870005802975359299155801796551811892645644972893026836655869395723235351557981960006676062548085337436224605356287767579209744242047812155826531487773063613074530262307443553453666330572223538946903451836975263523944835048338650932235951812623529703724264125407984203604734776170860300612816732874821558060143133693920855622221817459105858647455434832459455057090935135725262618639678608219426421605035634596543138945627130578385793080702755169757845897802472808834161265482112590598558202426208676205989323835929617599213436373453846284795650190674072141938134497901686829213364122481544073476195091669072991333993248411943446723577330414433331012630305934085186793131283049501890280523312127373631065231305577681627407087857702845222521459665546458538054082425089681991013145238939902810198235196776474714936644672950050450143390868351661224275812010093863840327710385023342624584210321975973788332434821827853260914992211277505724346116523526881002921628321167654006408598463858904450548676361429286785381514085118346498362201145552188832344279804000847451338206164518836188824836240540820682786163138878277795020830022293544324238540535114309494277528870444450367036599355655662396141759379278559056693802670788483679134980402677899825871758818105824983060278864551788023163290320106363815507547874107239167297936138524362395824565667652423735566462576577377381008694688458876958160303045446322541821842283604950644938253023096395045268432426448440657322359252396148193981013606446751726289490858037868697857893761723825409717590320894492513571233717589491111870058753308378469639306045915550319010368694785195066212234241878001133735718626303390548383605448353691443555622920835555429790289122726071794722624251854606700826129670776032449800899220954693885551716458724276907636642696894964587158893204617797109226449044264425138724026647630213925667664929709065190286152858238822639373086002648291532593017499667793832742439637277109980997992853709929266459975681295026800042001210577103370732253278361525801544838177545499326548132216142810039137885125872664351135243706625659873924012067035278724158146243022132304426388081283013832055984317214740825517468523593714631704029848684824973177416770360504537008300601870034173547813566810975940058125491798239875899282068765727050270231241787392321148389577655387160015237512373486073018713535746404044223401424072459791670495526542522226376896810987937114701871416846682077311906936785094164179912141752051970830371554552115638369559387897778346959173779206411971922005145938737906749799353262419238537798008857148189984349518102176686863741573249975408499789253771132686193598397078504093762649427397282837248413876827611369775555106496396779993177983110988514577722567816516291427254046237484989966035390384743379148525378141020895316640394687135790060325276635775464480208416330209497946129360706603932861613226240114920107051866247017044429485980843910734419787781328665366235597961386616897854858965993800183012493004459305760777755787220429339762013805087836764562622564884467300401565464748179120762249185250895741201991441076146897123836667030063075883194021713939159197697989854446823035515085826742097482149000928102115458326133718641551562437243593917885756316164319119948360568798915551345060895174991216606496127051600492835253021967268690609193320194459910544006591091154880281733771437129096022052702581149407774977752607222162060236733467102354684035276103983538928405544626468509132091575120591489938375334531938083716257258482581753989892990896395870318949095303656969443570546588597373489792539539946508121444540856990331135698074189347260278544785631142935138180225749922835363351508151906286545986918192734930668231000500629859747767921348439381471069367748604727875160205638267424925825684830820881263885565539645833243303237169733041533068520261952714116042177247924243436068236672274771916074273372478823576006856564293057995801283813917111133444025571591713046167829270343498471123642212025766539549005540908214691480493190812614965567451635922219537971160821496001045844472954383888343861903536884044109181815179917016715695534403751578073814299146072490248347161429036478301374725970750964540693118511216004272522652532552562133036856064537098432511801040791569518388174698061266543259570623620841169555575594583984864940190019332311434114474291167479914202836504827035322234134954299197378520888939122137571912134665822285008862450451472466127454179044293836499036585982372532296378654230078598054169310116760849624895916027294019648500843863813667001541555143954459001022944074679526992507960981831917714597543792510437042047983434425077519566685148580681329596048446022146357182801510790802935794784614422082383411121919322185987505773487958961652984606777779062863450809173821167071480459082218602864952834855285571525338553846667132289151096382664503293108879909943646165131680485002492814001141978998084387970986731630374581467886978915538254312415195597468810785311845876251889616083032027614102357960529587829466713332737095093619965965785159216934092307707358464389851537356458642968014989540639847798106277315327350583948219130758901847227146961501939119959395487742024386158938050867487749010212997391105541087965855114911181056667810331565667399378220647626453358915668128428068510655351566715633498827836280338767951160359900502610623525180638796091524182981323565943959326711069232562367094428074162772498912196238239510170672730516688146034415454792039254932316598948547676718397535651491184854264718209710274660916754703341478059343276057708844543105154082873620636230635012845387923020747033989782347406505597658964157279415765505090588647291981869679238784707812415988582346890640834345186633350423275302271056966630543012995157050946765030155755354618494340885240208845069900848669883275699109278589322837331635085755658673088308364564082036643854322871127824806558426235986305268480024455446623355413566116608181156080798731572506569863701070702638699294340614772925446386507695863904811554666639973935691790472139549073233800568927563153839193661060421110022568028771308293404442859516150039341348220603263166822518146996247903647825654224620296296693881531054024606631153033052261611924762066641914036616199272188016309862720037853914913974399217427264853635679205706555795429383070643505611862797421527193736334561309708644999953992724015567066078261613839570482436937530263394601378575063076373658546106021058409527637696236715929138550960460649717419788855687112403515030288982818887299324566029193378969534639527501734860288538233508271064617559474411606027822226429212489326139026593854630851788729369590473293912372237085659660491169794433726586321730583671428425530389752622907638404425866102197585409796452828808743276811299678180349126670197464805514669227281002290500253658123418477777993529711402111150007227025094230218843880892603779404648488679749768129458273263967214997924246149751350554555897751700556994821790230356240670506553296492829304900607488012342324156648442884997245129695832407542096287049700044220056283825393973910296847411263174013738350283067030039955317255979000229608415103170910063976084795399191493625511465857368174810190355996431554386831043401256921106513647138544619186461045323356560976135542103624234633886258533587953457599375140728855004388453100385758240839062016236454486218329627361229997117958840406144141072174082570027768200860204742766160572264063651853452710732291223122374753788555163275432031757804798367631159806242826926383822363961470925179229026664819777243088692843947078762949658358177024149514280883835427910998181490859171314300620934700176633067871547887292099882113900246525061132680145470592214555254670429266286833370836412925650104568789407320059891565025878713540996898149744878695861780250317931946512456098968863085061091186894855693428210837073503713141417902942712513490440806513339529492598157989205942113813751999280834018533566885147608510401023518377559378268365045589052051228407602586832624564893211502400144112784297408952431336733298116902604717338506274440436391111557617010514306667545782974326769894599436351290173462631332287381266315837481939316969461569598322510385899133185334454283106767251486181317666145441981284092795533984538798838938958657525608765974978400467478196938619911752754898368139829006069846428363566734260573580596224666686676731530626555884897672022712239781489073901192884221505347088103733496686207658093620945972426865078712061367535201081690585780110447214361476483850153048378156989616722437324670852606167861348831678885913762538325368441495361890533293667386649957276618685020629487833452434816464556982531892915985838354745977744133399151103900775754990962265843114171854019361414702161874025810505034064465675492713238829235910030201821050374525700966175263383337511937671444745833270583346892404387549410914740492046285667812277635439921280872146083259353040789951027428488712555439778031765366976077439195151819701824451349244746241193280673249246484865717739437243026271728004676341367854672434637216238199676711911290327571818552010107201565468691105073583204692096307029782836868332986960183105762278426167596199292563391238653433412312129477065413417354801072376013985158969529797180818405759903572761731327475752369066618608897265521712708017593259305659127804483634862432203887214745173240227599944463169761174287600462734935612962956503144338232782993905750503723384196891202088145482517770959244115954346306515169411546426534138854115288638890892238782092202518881574386222432913671085188558266114272031933235524238072724262854928443295453600065068757430194674845601318263274046642097271211072356889397772434740781821025606809886161403558529363316016132861876361192721266330148237130201529819991138315197004951875951347765631841794935186331257482835091200057945437532814126224150773723068016719794854641031743951720659096893483468958704926275747909066372012462463293196899408660794485862465117611179583719386009501368101462613436900764333207335745620079241966278729227762972047906900932960241158285329571050388065611590007844309581096504942890227087943009102498071599441384820953735312873277396858174137628954804643436574928874435761824813350302175934543439870921548478152991216345571290646581880312718904098399158851612423001379149859211503996486841246531384049152745687535209612784334474397606126299596780029073404799716678255157431844832124614248606165405460458078500053987745867869245025632001806824882875680004482889025303469900202466848585262999987424223278441931816523380306087421067398652659397615998528676614831915383324263397786777992282687489814402968133624230602716093116512016289513366627447278335766146546349881824831013075637890717141663789100420503687982831081802547761618408460220752040393745639035449035903742130803111099227235053892147385091871330087602308196787378902362652567121437073037328179565138289217183242069705891538487466780081059269830239672189010735030159235782336010064385548276444914217070604803245376067750068528297412247793647338243288962367319287463557192580954805001277295600158291831600764495428296120204100286567915564628297156345996338356878067748425046993050260548980384421179344513940633211092967248989075085050723447122525553705927748448079416927092078340790115023102729850407176548503469591842490279080732050096561863661644608617202831089252667780514930193204609284745804628113165332812744186344760782881840163062005200205666201729962852253955762087303410540730541941135759226087259829723736072607845355398781275436475343513744224305790514905933524767320015513174366258008662252721712865106732787459438990261814001090880621955656807517404695014399725655378989489729193952779149077252529980809862784068704347321783808988127659771638193735125727050207103195365479623373806200786947049811158270399701986689076797283544272978814301696721697179092162808511117394448543514789978475909316258909744367354342058496568211733697179780796106900792215013455296181847522433602639201044134195119457533141775002582815531437900274275808376107904712047768273162993636946852220691986235957632030806577836289924956816691028571086062112311222328304126536852725810440880909749217146518133016512396251272427133513026043365181709600306882323497023472399667689041034633245376985062120633686620211881258395622021141952940782857968107417260920406359384323859085243414824415609131313003740937663686473575598057434348946101344105577320435255006560757281282130281991691571059387452400145547886692558746350962398210631115191709624749439783953300914375228425778662868503730586039471186379045681218802897326356215820870599528489728131193415455422707076295088402901410621273012618104476533529955606605094466089618440616648573771323766012969350987242974921824751242275845413220766456773583305434845036376740531423221382564738286833847801501843883292478156795218128129585330962187383006330393891160174113943512328434001077041802069179533308596368416239415806210399618220997111569159183415281903030970820192065338077268166225443284467473347176697488242476190613266441729093037856139152147017858021198248937747649618767792129930429799732560493312538927396342403368705341053403154264305283952662356405074590236683268893839290257803963978674313294921183605569803642643416677319512861072133802167229785926576477228008873630656722719035933837532838400020229234768201170308972376024113529422484334084571368576666085692479464294660266259785651361745880195047237732487558314347881498562143493177573275064349670986014814938115823247331494549594247857554321220405809410685411455868310157012755894786050259753751816073709493210667184134688569125231947623664055850865263285597069097872711527616312334012950857773503739884619506464933747537677969476463039255542379368931935396866629939557715395087634380870635216308972816580766867103649647162978898471188724699854458515448333864851170230773507148279910800283560160377157841684522022010163126550465608385646742246020334088747812458366470321155654629394412325120280170286613538533850823899118595522810489744834022928647983761958943054374061560088681371439570046169228774249026862295826847747888103105939983806360987119229752427448087401267636902111252064084539427447201454364702627480776134901858699894724771215072920371778635190484078187360376483350395460694435872079518912133215565895369137733864739778038332398560590435933371215698524363269331097832864176541574373004896499545882130147078758895337892866168156520639727641055961754079965323750571218627423413853251018548101381300487701829222845317036612130699870692965697698823320628837352204813493780955350077313483771825033519552011653553506021113027169995470808079793632084582771627569818322242507482679422845638134080560109769108373409958085718196369387770135296102790107167218336423240147616628570712237260239966811924896476236871817529380236728158105459052407480978185519953350728539206865508047441005509239516460989368790230042010471603967750449551314533654578464510311404730150530205617081994590021725042448298011093590578236574244120840640741240848238464768262650955652894291910948575606857803238723790083826065073723522876673655064807584425897316897081893869083598726170247560986248658858220845952240724765107939616187401185473572700460041647767106551539345485109621216699378439868893299449155324385414200290652594850464024022768710550051420597729284558104604058012670978050821118632865317011485565484643364980454003495049896080488019942349406404411397298310770434957958172774905626993704126124142193016704779210617060335622732135563686761040081845837483863589415140343350036550202231677487800580594128128029955215006369515632230203306994483201060274807811411598997240828575815026595247254810855313223463470370622381598515599312532767969031668873688696663333306747077359338682006322420074563435731778236846132733682540288756189451155165389660241467046413437255260322930829991939893840508557264837208034691380265222362622932371742386873917647330658756813955409652195898840574913881514578935996171167721046246952714475625180303281795347558657934183228752255316897595423876541985138763041552881398827171467301593799327124658124044309330216413640603470042584708690587394130916496670178969952450384464608876903146827499775394030927719489222884002859363921653117632149732321731549022312038810704616988695623513550918611541274740167604554111425474959355171949791429553265984648238197410245468180411355565707065552756274712649194130863785482315422320779792798286581090286841613607556543165277180354018653170425595667002083855572626112385023340626992790848375653110448211620858760564943162416773974575009150543156446666885876641845432836444132750976737628394487093783501754342533735723101426145351221360279900880063244120250724389761187392310483517969064651717027817405751131148091502918485492398443556764415380780928849802719180665624331145140634793753258084871194137328489204224915246898101557063098504251586800597012386837077746870707101813855212163162511339660633319902155129195260622639386186962870562455619389410341218769630749218101547886724573595229356752317798432059279785144191474737290858811318502540612308114393383627800997518609132694270058834181379870833014964738751744378303612839949472608495394711019783035540061522976240110215239149263776362886247888961398757901291701255760289906272724029795397255670800369333600575843831994236573280686217280121230228804559381483837979994577440671492783442860190610192312081529541214089724013747451277575129606611258444926456036525419393725165726393593778702343392804045323151421689777696736963205397667104042987580075191334890075504221451042438072774592968428274916058211596430314831950768719327850733467742410664080815495697591786374646084676032404692741008838810158272859018852368730133449947209841587507427179272487531956489225826301029101027019863343991361443429584849588549742750507504182765317843550691951648588731016653318253096050618915345754893746080345309868209885381163817855531932121115795091453840638585598276312856154446984611492144032454934922906752939092127574433810670433137675995880193142823783131998145422757238673554758408372074286620992963446267476132165873660514737096210945482082094221965166684715412902052155461371284094839299111956407161757146544978554140371898488849939958364720929601849616338430540746227178143752857773967698557468810223356188738244865158319991196108186915332214793726177507685709539593750147891312904948028757782553704848441801114869241134806985088982727785648339220925495890079327896183543290125785286400985560878585817540293994428722464623175010458866951852370172007230144083817167041290851007850166083476337619707482081982897735361976760855536873012873997171420976636392702859706276754431185538880213516079829980663242602928697655002073300281310952688765266154320561367700949444458548974755768471261768393843787622410344832403488542538107939716393607925661100058354536448255171219866391592015790282802499673145339389619906327459844441469253930974547220370571220179309931883721195654403221624589038642960834188839782310956864377232105699237853000276726156997482061676728623528491499299302458436850219768125836633961658018833651106128632120205414416685779589963391141682492130202549980932258917777543731060921020143682450752367321085091101809013358666345863907955000641587280975520371232099539121046894948176595691098666677765386652460651117053640490182997219112160065661322251459272823422780233991980925228604424421127422224046385557247613472773145155430524263193323779156409100050037703061000419620367171657234383252650486613042975450199922129161306832723212680050247811999974031477675618184226967079179519604835157354533821125037665399475631426742027590546484092389553247325779121446803254642090372788536534816002353364508758376387320691079111061080688588231575608644303288708290662213909717441751418915260694284444129821747325044620255980146790008637752916360893884486389326069599475448421899392271045167424877150025974543028952261112587004294519048541470205218878109822709092386368822956258581914017624436370897770041298945482992691654693466039917493935923408994170784350823550591912176144729005241141267357404832868264344536403993983340488350270283631954753735652668893358610169038021550027047165878638086491435224679295506535252387571653034217650217073847407178590220631885209086992483119417314949616415466952435364346627220151146388754013352706795794715275205493400835551338320072839116685289444068880762532369705984758694276294637259731315091884855786436132788839122255270842607312139057281066873162700786143754654024997594414543955808745451691638063415417758954513360911332316749577477338494278233037947858944504223024233496486240222487390388503961925456850359630931036648908450675961651565334879287517118965429111795626962521060365400682899172923273366721562232385553517180806807699299207806585182620402453968342072422197278842989383782124210987435532788509205431191415000176500631844878374471137606986844876527298152354523971525473819807369823755776426828476543339418181867535906064216088732597127824553976389526295868219535857572943206668837753764711387219059151038547167925960248302479900474624574554081929521555470011819644522749752585886563285868007684974534701639142759572769994087700400675073109130044437075042534083656079522287194066742398264996971055724045066904811127469060058407659884884130132041306700928354169075735502931709134529604624372380934298160238046088408995006088424535141838716476718092722437926076014059248637518670721417959271537781195055548983472673234716312542317651780687007718623479994800972769953277398263936697536954878605279056488217778302305891813216212525386660246107095208121162091638283212791188157707495789377021841376114111393255940903349623044140609850968094331480184468246894348583491545879125479825381496622551244810573967694804502712560024614040010468588853768858674230554080129651862450638162966978563855993366132603506280193523684073219110999316095641711547678454003156965645897344970008013093217565100058508658182887605361160342230258901711048923853060369793196363226191480942795853697448016958295783160457607662023971544210146299509869071428416301914373150179667907172316078218681763366640422305530978256277436554362870058185409245870759818882876442763268847158435374187652732120926511015760523205119304960527117963063574007764550073347317228835751684351226973376239184640952421770672440313743672723448870152439581515377496915917501390906359401466888696340531391735413555366378449839066063780831144854841581600189034558077380245967138099743933482163405318067723813812672847651802818864724949474979760068678895504490940672534272695584095447931724804370122081319575875845204315103999074877568988217617839846197079967487910298745900730935621132836451807697454517230614174222553546858485897478577908877361629709662856060141995369228430921802407558700594074032355900554534633818053144339989737616990457824519359504901306827778359008690343541088215818322892019271986733926654359941515112768516733799539460531574609414188663081013519378908302591232764512315723551586224015004549743794793471396609995668502150316496656817759633564755555800055547518669652802565601625020298654781068734616950516662117026306057462092479411247775062550024799571025404761879670428311308872687572728718757206935245371231546966190247984274306996648499744128862299727312483185395477376912073236398935332348553426293097658163886079533859288695388389819750813505322181960924066751074297515023322326099678211583125734988902298651663303457998518239710279617137635014130633959267868757257692822104580635246716023359226632403612903693760221866299249232225903758836951645950699747150640888124699780886881615376341331333761480754309701217211349509886041412790141875930874475416608769319261468902209405197324792181187288710442472041573941865876378850910371480671038954054911520210697995786409190855211507743256989959886504677228178707922293195284761238966663384926142860122975208157618896478025049353339440011813514216998061581651785206937390818383400311175953289816013127039127625263642498893245401075614749927638699020432698899125896609817085516210768155525277156017183897709195268282157008230324159199644569201463787176226356140000413964722135039947865948279353202250209370321137910673299777092427706240323093912138409310714972183041168815327791558184553531823726519233915225135581490592479317888952830358918429955112038813629510044008246283943885834987115961576559973254456827434229569720314545280519087738758738045490339496493684284210740099589835372038683988838393566835481299815952616529164349323498254192382923044264097595485411680701092644799785525894877416325041989854696957642656252099052793287232318416181382536815143711282782153805121460143720673957816225197814093658874826633560487841337186105660092250413561206134515239274307228461225544235592330089206403788780358707413889436666171391541894716858915742092997578247312241857769693394064750220689547975446514297639124308337808841792026169485352060355962948088405948528476870854207614753071069412733741460374345037098071032763334720312007169673392104058949440790333264277823247133082042797935654386239685577070605088706797102374094501495571805416860497156289524992191397790868471924810699158278802684130372839909803875652271700358050379277507942716089670032790554115369592570525299472086920257272475106628968535668957954730465769786935890978000891078823500691671696266990823467404880538301554103896885238148998948850798401076849723585108134273485347704498630715206092430332473109648236076854438905389960136457594899638327125583236193226782322040380744037668695567296202100893254584599251572694793308495034392743724792798152904313082205067512463072132220260772618437825015898097195129637891065632889049002369344920485102189562082330339354468326919838768063730610450764101993980589786460096462605258147623803649029627493671630999961586348851592764104402667499729423969745935899056353136653603624708262307325434586255725377394432250700779256916467065004240144192393248632810803280269869258368250755920753816845450438595630237034257429882158635430491833265321811728978384167400803249801741445709159663213524632560805002762007348080395384956096450251364383837565215674359063127326522561480293956386206055695967221215616108786089874971879859665616372511160011858784011446558911597361804556614520929138943267676047083688135893410093523458287888548598682812642191644576000365651888691298487924547188011803674198638428047354893992270195351566032944684729345021261985053021322951736435151046448663959772541082106293787225241651116985274203969255860232266057896259336740507906116504558002228783888565479336360310911118490392466238397695322688976120506016372608630912918070665480206787066663880465168773435770290561135229937612351128604630463546645037809694044567129491799839185040314115585786361475968878330480249706472902892884292543381112817631576298585160721519403497784246612883003805041758626386848967655855997269165097836940387356101498136531359608191898191240010459455215143906396547679229951099897164771874085538176053885306113256063307822430763594804660807928704348316533370783641342066454203285041813920795111606917794554839686609941010588871229119990816101877917990327015524599451770069869821013921225850241628914056154648234297938449182166725091224586690012771608059887246481752526315622861240458943504616022505734428028505830519330624977428622151476893425550780982925675383154387911080484007181426438749700423972914968683945581148636810842942938148728593498392455298570243751070435469336358622559282253955600725330919167828168820729823131530534787398876447010159859063471553136950583618389034742239462390098484336072178292186881557643049431808868452582797396573801776424958316864879971533987201331448371627964749306416562591899278701641746081849245821947935386906915507132191768166774983058493480202790454007820627039479001225196009374574128052472027809033299076658207409270521554395115077898170351879520590925881755304392616271049030390326031976938952380518642208990907951646070816239112819937173883118756662682679196366872952022834319379903336389805807700361939513236680053598626135940760296054031567722855222199126285072460272704771528844632738460085274825724267505026859897004090903412560373233200283663555611304656299736217402233634545294122623912955050938683949632805234477831628780170194426227493462136513005965530108988640997439761155448912438120011128065116606107986787610621338928555443542374219939775739085275286838176463189086544112516432537579647491256268099193974791871381653799276890545845449375544462983055798238082637362557607004117019601209647194222217415284647952154468576586012654343425821920966700139269527525589574154715335471681378761712672176139622279443391610650916762343783688873631062889411751483881876807171863633842510500167493438660248159975490430749769365514950758334677809567840389555847478267512073259505867487078045892320220472154018406429556206431943600744855214893285835911038709325779471508980884204756148594885934725967497291097394631073756938605662117921322882096295054652803415011515345947299957855285015383304642526934565177276300710016302666636193141897597131602512690993875418055639046820838376717645630988097560108168866636418322219372929957503679234665847981982889922728552636021969722440784453964888707370152488361541569696400917565156835672769761533475391271391141505507033605827185499677941917377983891254354790912081528292188271337702347554334888637050296968389797126648736267079435543111126185865129827840063835855333160477669663791814886125672376862240865661441004527664144598966376789187743121388521818283683484223049401530230302619822382104079167081380896296632960205392508204659785040471499414660720055107477576380555213139398967749719452303092676953742683480501532189970638553886900253068213667808732821131185476452125209871463627825526444222902259783217399188519154972811042343693914860176280023177731375225615644252786385369138694373927770270901119787190432647751678296297028749733675476298761158730538887566528957360290969905965633563305888527279094974011838467992509182218551050374203200262890924612596156560056285496468637187341105222825552063923368361913998195833914115530367034221347172147383737638601622086033087050901388085956811592011071421569747532544894444330494361164320847952724608061508624594606713482980389472490852001697887692642708566880303231017859169442970170580087150587789389612922547817214798751317673880662810474298357676382640410586030298164830780241628768800511062429352726121104058576405715794927349405166204398803697750538072268350907645551780169603463720845695298339918884943541186356730021645815945959193495302460613448016498420667418079838614310137597576816030444660553914478589193939455975274197034557549957427089279708968510023963697765878386242455472607984057573077701898831668055770850594127286544989748515753618524427334483691374491655687106203282060273045809564108878752139807889819188680207250677679395664017188091961841416165057656701416063091064805672650209859641129588934011858435805343717512536591907321577319094013582398973977029381042457558694866770296508416782066607513497118686913672298049838381926939003494844404553067471012927232706091542281170964618871606561931472450832193441586978948923323067749536589832157006029038917031095980927133241259947841362647414960853617426266049552466268663197030799804224266348802350339227433538302921717818549304962899847195376738629561778768546552839321018390587589364425543208275089972287308909987160916697538727400717685371336301704577293421202717705652992349117569361547873883333928325352234138218233542764595994338608321581122038581332089842876600455801995304147063808159443959100336404395980852587161372190532882420417689165180712271038884602357873851321031875826047661403421723435007535500352308460428180201288765789772878274189472770151648678299515744458617190485192503421546784331998978561381165006316059722956884156244237638863392542011768642649426092431815517249585213672741813052926428241996631284890694902051236743365459960717064510525261673689596661127566731742384342613260148381749245467214674868218295096124627169619951911482857479041666251476892362597728033526282956065220986422638761641664914949145858362021529631043104466568874821133716312706584880742770227120444949093125756718814823863503412771129089019318555664339089299095417895465729200462982993644685533677426944833864108819449265061811020857890575065321969995763540142568885959411733270923079615802021537110671902116437617054125687124341179847460921881070619328798032894308918773209629110191616641637791155214536025051486337573468109745886333621054374947438819954441862006494360082197540982248752097255503798059079356009030172389612548046694699825386870327166513730819029717239926838096730703282577511417883867892642866560160326312966344273246941952941958601543720246854536233718987491219754373236803291426434189823647654471006514936977930841638607387860196376908480016150967226845075567808488043033410051103142732106234248680470105382691489828259787031742240776897358940840525983941023689503530729639832183745779330239852814934927561814615394484167118397124706381028808878064857515675222281693460145437939100094731333780017901831807514663129830010594822620504547393835769847586255141526581169064077255634553307799919830562691498963214021985191329448708117189739603858605194432641488305150692119446302056272157525404279061066957162654675246381442006142558159139846025652773271446033862713403561972550995613394832723065235120787152047582715900466785061377294661922656874323780166635955932297697808428399488111149303307641196918644876320798953118121000570717466369772567278656491155709944703560649508156101193373686759032168626812257331921215506127665381081810533880580781944566645688260529845836669542529726683269592269908631975380929015745408397072432083028195425290608538996826239108118850155414036519654222967085470257563497129179676717435354078076228168828785859044221408124341508664929571465336694037557417817232191372836192899061504463374429601572047047143872933509413457481560804003073848993910686280547830698617966247961820129246115004565688227328949184313956857551340177280709262124600943309009114198530413953505152495203020525807569624627678999903636646391152027757976244759304014613728991304326373965626817069874388825217187621164258281478200825365668734109541079642173194009636066509862637725688631655534007310318546783500518642941052350743007556755067400907374853894505895869469523016158282139924957775071045091315895080047411212723954437764375838220012601364822650700437099285577204923564792551418359234141590073037901792300795652937963229610118730858647203806457397949703334117039308191391581926804164211540154189797022624484873805843764938587734488289971580490400349133726419471896188576226012456473019826828315830541301386911964999414331952741371504497747344826950184882535063383917843721961854584964499200369480544502344037016267917983695022239288955457570441671486670806880723779580579780100287628625204321145723913015776070741227961583770013143194676111274514477260012729242506331702177890728215100922856180109940540958107590852162649795989258443277177531565619836466231946652283720497500843228007487246833483805126801804840586799851230018854524256828375233464726443354185012839818957885062650284014711581626468491214473649744398219456056308559474539756867666083414703980036272335713701334586462669455437741008601287005046586657010530202197663669709542584930687037311243925979123899823428650853401001977719652419790787080199071513371952868473326949738538602042860631345220890416442465827558489241783975408724087687363413194860935551336552299470641701797429409021566047554694391798093590420032639128015174230913681122956647689750047000718049845015470293896861790625804894556416927093650096731463048384715790027260893281568006972554974250700316085069159172158125428022438813524645351079303184949820919195757129469942655468240127003641502244316445359959112210037937992497012441690121924223554881684384337163360655095614116319393783551233332266434440962478247526716780525939907772990656917849934483254833051427438602237616562652475553807503148900749475896511143082725622018173661277103001829502008284475610715350463136976937944856228497185024707424501105333563543467817388368270858506772859893296900697800109484773662424488631710594288703283959596547148346702305708449487240362935883734772614914862385437921656011481178766477667057583824417910674236132604532536096620466594167770282048712073918519173519914865103224087940224501008688016863089809739181922362377043329198155580726410935443045403947275990895700731638470651605396772507910086834699145113744634099048999244308026479514228967601122597994366400697727475014745328822495496103553094507063797830910270577229268439798021772263708500321903156326509903125892042892661671229989795425957627770038816719717011045659324347518781486512276482689593515608064299889943386709234913265474669121425090390498854750773186956237752683167379679323956119411303388469412046946520609181622803888106448558130442234264985868210913146300795672400791243315512288407570087738632227563568309298210761807656541516130190197361098434118344926650908362166957170978821452829563354909626999247698969345690816612371831269250437033545958314536065526483111622102600891050367571699255387423769940569628507360716218008493025186887131708166254540194154243181857464597759448890672643412182561726944870565378942347974390458896894317118922786000022373769553119746374453813876066291117404287161437942088837145702728303770747561171793661392999986957447962067426275788864087927906685171779542318861400837966153470054556456243731220016103732393578575138720699504626040489061119704288385016602108019187196516291325010333242740149694754751511235494497934668215265858977524536623468424829043623103806584767829572149509932403506793904609428107708448418057417932991196376433249639124046746798463636132532814610019868250017452875987464355359296011200722299630012296975390604344546454405702156389210421899947215174725281989929159987743293760125460724385474019994363898805318603299273520747426174175051866781518889331533181347382390124171373582328218441633428745665322307752866527005950892574146994747829413724868390803818885573584193558990739447764454839620177431291944172194647663616591306052464108993663382394930536442816490626262999309299100347114427837867687468292137628405672875055656497506268013759445488120137573707619295998025633767490238261236820676444402934746677593971575484205552526196585880364840966215829637611661052200138674855922806639522685820675625177279314303749138950777815180564838759874632643573921554729698231350093910123307044760181235606943840805357523201543557618778965692139104427476870763002599096929158570749329895360720672706415919848605136674903620702325323725419269922721253189016408275649221041062651991862344050056327147096603084809356882836661080165901279742762792037869400143323741457936241058464604041160563886290069395299239986605499415096009039880615816240102874538918182504872277861220232097544324263219290043072695101906791496098887887227222306182461317966398296159346526400231124780017862330840630929959074396154926635376232211641516867692717308331247804165056225127786876440615861264608870319523952639360570235124442327953498975388217815692169366333331928717119737520959706001782257940991587522090804638130506369106325109169836827887462813770733043009482733063576316661477571564551965493378468282600834534431276537000002558933173143771250977837574937410397269772959386309154011930536105192735521272393049789099295640512612172892760088084571656460710946990128171379155386698502842448150305014202844341898851727250858431937193659967732260712630394363458569844297162139909846985545283767639071874917015685811887857286795564725044850692803145174435053311673220156346068596868516283339271441173825154795674726752391815995772569643376809896430168280867699705776602274334590567849903565815044182961128747957453067570410885128041200361049129780397694692510104290711792235289792007608948856665950325726468871021191317521631198136013213677752111806317610869023015057750046851281805509837384815129036073512384674230958473041764730511323910925916821431648550241631367858982233924053883417591498291887707067486071398425248999479553250640399719328483521471382659030707492130625267121354080906185219221357280624606688816067416359069764949015925432597717486356053081465447817321219815676790463055271345633484690499232092241642507389567733145534872919559882021518290508892595587089381780985517289841503305077791711445853941985382595942399336698615336378624347089770819096078489681409947638802540055001009809109566243533706428530787651549899448582342569438052365714004092102958651946031327031304355455857321312545427260043933123791646211294565021333506139235788532548907673635784411428897760450399832186242960992149397194694007421980276150355464960993297891018020464581112429655393471865891124351095637342444277668604697876127369123711243010535437820721747066628299523269857983657602749076296285427432254410121398383634718997569592851956613098994221832865015991482382882197456453152646495280762000013244433745419804868313651552259155818342741976767026667929348854514120908279125799660820020235702747327496255806884583325472287356818700827093135045738178644565463276740142898654699259134802802008321949941362109401926000786662963445276528432680076451986045091114581111524473502712265525965282579715363252187121490219293639580436413825526656662438289216129774216320199745900188060695110105598381669595296356738577401761442340094416048127382648589525484150317442974248240205671502436290505735513343232046371722910905050571390481961346035150104962597057752416369115536380687684138839809378761040940819881390098609738740220290611432423208721054956971695335369251290209644857072933983037174951738310881811962943211253103024123012824380624283966211556943127268103231851468226929463100765311715971843293365689309315424709099393313521700163349487949554466013183253896046397724103018466680473705927288978148615414675132727109638953840046393178460223570211943658195794152782718064926294577755610034615073779527543508776991418022716960125877743836054605764273299188413575747096481859975956870443050762060201276473569314440682707817126987264112918926638065410048984273136440087248705520298362781591926234605135644738075796048401699575887284156474102143732587748360714595450288209882811216149184107045355332794307459869842866175130652710087485835354878474378687568451243746374187803114648108180593742073759160321744874122421109021512566611163824711031886896540798718306987319671330211619906126551534443511003491761081254782622495458488982599991896910537996466662015039272853517445065173899199545475104107846960379208713302004710045471291316545101649753184613014867280601020965762047767669578978948867108052709765540334980455979310139948879770347732738031979019914050043604574997158866756287403684279219820566427152339162279978185612068290160671879443566406713387406475617952621510599346889371804402477153804091278692640338983023424179181762535825927073654185731601931038891174249349886207729064426510577227061377694889353170264468300314841993193834923969163258006098979506473520600924054314968585571937065508722528599379702218678343529785177461330707814373817638225972268438369174125778938782283321290624877149132106649207034775522993706976255355162929431682922916294326400401367119758042912223668464353710488183489038674046398959092838162580644280439381866516969546713686229415138578989106534313136354809538779921584062217488800978033591330562057136061512668115962480648374207785397096891933372750463581293877977833997811097995635260666400438119423441294850987604805803680450734455672851126071010684933381135384478396600915607623035898375662196217816916784767910204671534287718496805190253197162116864666758931434265120269673436944054807478813376482723501896115920910963612732549239786466775302331073050060772732658377446570171543119280582944141870767051623019634142243032398886006401092101417397595320013161601858273593205514340404079868131083538795528912022892579373289119384113585627233076170411407840148094240781159251473309327657339685964624919100163096821778880298914641930136237239876231897314675877452259049131672348928432113470808509116281860868226459479852297539778269833835436035425636311081883201589203901503298558849689742285247296615874627601624255069851904734543200373186493429071551663488899701675156772784709874453680621009064412486644463017588286996734146108437811959613648473976647755067007003346258429690361132526110767316911627825786235904793738386729406622302367630515594113469118978066062523576866359371094254687632879391525867057032533593387355581090026047249369142515289494194501141468924687824169411672980731613732939175400609626783579161928039230272119931605312512689086606576559190009914554034025804914810918438541146582188681769824572291053406676377840497613163975692517523924221534875547921842427937079686318308402826577311288701251108085932963137035326586829615207384272829683940705063508286270193662255991609359305434168065486723425247275100025953125687890883972248396493188557867131773027704563298669088702603044648956103983904512334731801025603261042425689337659566173706665838767059830716532299050762387824492233562687824755758146873387250430293489798211730946382595946923412783689828565517205002550985899614184952132910975250760341915936253772936165024909315111651949662348175724156796007045388633046501926915667630456318923172417912274520070273120954543173424856640797098907772782032690649543331688626200598167818144971792967190393812302141529453529697396694807324978918077681042211211328143966075191624380486290294125946302967765527790811387134727937286300825700822294669433664964872489607693391877494707743202858889032058554503966111518886947858482611184255813736118415140976466985569172772360815790344898439778198191290643741391669483643970058158873305860005328726258939382001786068250355370134871236800699199304241803484759812804942624222953932730296629135238946556133626228981359974146830268217504407623085048792620020571974326311027751501008652955986730694574386197799960985866868161588393490225244544834660868531444145935548653404564608568098604495006184335474719533748877750360605567097813922571342628964120395450842408567347095237346928055140048544500556552902217703874897194395019511025997729194198228159274809587423437592134531520746847918304424842651151209198285827157955127741888876129317019590847263366843224462422535960669670537063338669342162344906521649308166719492960299065934992787360844152674582971890834698219465376586079931013464242302617330944199656438030145919933664225505001360190018541609990750855486103153255361272714302230156486937037972189464373508782961149838354598072785937562381366472278640343988680149197524327093373835889999770954094034024638939639888469950095910019445497218312611555192960455894398473797250278523013390697303560814157885496095778070179651858617477393172164549347302712759613901200656346969993806263265459848965878252534185952283317413537268245425029237211848538164674644730824550969532345165826486320154489608297978922580232954469582525119621035522556800364166568365975811923205001936342877038862538495007530224965546292649335329245361853528923101423300411597429524584685007969050675376365744786302273136704360227614286306197496759234406618351059664354867342167612277683283248231738782359929817838731299245487384446390807204920692283764791679664197005071304017354364859995048610967583568937713176610136768127607024446454851183591589722003826026961908458394683343195703304119740711445443574885184565516266154446598690459216270156620090061235470389393108946582657182602123576263093955492993953283462333725562892297283830614858388731872197245603503631397143906699865326286568947022020112572311278382612197084659129127923334204684437917942744593192089062113863340560798191268180995913333016496541649975332799014317351677931636651534360429658127494553779935167773724228528927433783453201727238352678687688038271178645910908010115115312643802281207626984565326328984551527796404436641874417428808865086557771020628740511115260880534499909922362843012038034330107789165521215007240317963977733671972896099065321080310326125222936601080967165865275752976722941316276358019206996044283995578431895313154723175626231973317545557812902943139013484154589908154144337655272424039994312655969500743141038065506232945162944135148921324038409868466256030268744495099754233230621347675784589801572531874711948448299054684316744582472418878788298485178762612371812857803868895714597087948575616919763007226261523677965146445790711099674955636232939772536482361804028675178707702147681514382800453529381098648428707268166984657192245228207170026755657722992321988671335018400556835365523121909240939523285722909743774331811102313034270977119131580438685794011603828800790300566581840155199525439295184710144592091322151945512941320518273560585241800119577682191018884221641514485463582628432539088833059639372660315916258176271375268522989597474834465933875777966534652324220120681364367229165696303168953907139946582307991321429972476633772982318265949998140824906702514252515545933789046501758818413992603390688071061534857280491754976450479343063482596657103994242964930630550357966211463417313951760210098322704409490587326007181153257663104140393168650124970382208338557069029110514045334966959324688458652897786389951542392191718491230959401469411731785172281460368759280888175033326704763682520384679465681219810559610145574373725132250481807578552759255013843299458469196003924391506043137250076979587256054620189404466460687838540033473184893969433118029080722888246389404354742109979045216992521909964726332455564704113128244568125735792970603446538086373322630539510757081567132500424168878449967760729809172352831720627547963764019447495476709782288048596873207158260669393606563497226446197938526310864614152078318243478686311627674116822604967482727961590995905021667377293230784290636810205695113038223066338701902759031728585443502964158552396369692523749005537566687358205740652204864282802194245273106897308286964115146799471254608708833823981650190754996675583248409315736391734118311638373894464405484684682922137362203865873347742076968107221259414986527821116684664001118655551171150309058232116507271818236439196887918651698734406736256329297526087947587099089466975853525122208953394915214764441483119557567944712618243646692619323318113422003951975207526469499931429629565607876993588528980039491265756364052134221741150718889426976683499612649153295156665154533073287664825646846007044829823070448181543766398282161366509920751692195559719589198649710688810194217241754273871053264871113686317222557759062204281642079481384014907912051905568893347713536431772384515321055594672253503736854082137613406536388508903744908065123964655531871326238643215670734063086719532241690935667535655063755215427172329111512392815638687198741925631995221497972246581425716664517992038973549897234357115644758927121320941036880826920619451203921827392565836615948895860984278329036054741983517502871326561702853950120552335527564428740646927820665079802422259905918480210763968725390819858253391143983960250479605253350400962086965367697309507420172407690403284318750671200447883945915814539349750722011812249823525910101857009788004128157680870271350080941693805609145944334665652439697961259990125769666097788789652243452884858735156115558810334828269999215285227587601232326113754673486295163478274089101990349665667148163199186138981063966798705318882196066315518751485092151851800295239865139917051948399333875428473633453775219609641009917827442412230891796625671679785454225833867720920619095911813641407112144030582593344746218131835983287241142573028256667336024513281430264903516234211220735759946481947120863223503413518390647697369967890175169367600993254686673889700486602632451686664773738487535490320876473381330849231240419798631456916061499439614820742122702668043712340835504968902947139058068358718889111547563184366334011734101713426161728169114545618230770968293847731907643039686242923696067352484852947325304447926228775805028427756915513436080977684338880836232542008737825522032829449104815928316777635207172575704306958633054710619430281982855989883358155618063383426611904383349879374571789620727051616015976235175144277513354883313107412169091020362852317811191119850826474059079807804589960419501119828705771723624404598118107515817087149457060766937493753634164116673107836907876132963063087010407924540951895690727757550254382027441688618771498764731505783201159485802341016610676162641624001054100449567001979695281446803464690045197200296663782179037152810890328191564861410783093584272868770434149417600351854238282049616816434919685055352259719278118381555049714340635698434463583535559758959254090730205310799600237478129959361111397597353656802666965910313618746188664862635102154695634253316003525123915990315462986241776240509020092728826986498932857748202799421913923627157616040520431179114841805772664724233958333464584843324825200246982588138643694585001356234942685793606555542436353553910208203281773429043798427346095966759546615130355914399852699490807423562331383233540172830272508484690437895935992433252526695597871128232943390142096845539232281077080643332798460074836663289241634344758950844574259364483604029834052202919944511879696270012869865689891873946529360606125890252655456327271585083879517092764303143948095043200504306648722900012554369893935296103183869980968459087060451355709790869493392311366421158051867748936582947158084512118386364168617216669758241485124171963429311899891682925373050593816732382282506053477154623307045800978080897269927327612613390694745996055492666427945973118246062110533521267131113288194767650304906392062807125047235354938524222751261849823766002744449466112226168484653830480585057641097310351880263340915630565360210689066960715224817809181298691156661503185206847592421477743872573156467789180799828236218661083273241054182795971795316168866175303877763687816321933569901575691311753415514851101331581619668845296020724235260537103253960008452565456480398373834631740152948642985969412734153675445834182501957991757453545210095166560761009696117262520244260545340937830630308647411486861048172358833125314364748166395758818710131026951670943549441515503614674319343687202080102487759906745052500791998634980335204079071372213049316322982404671672132765794691521970450999218058929533434138565191604556965718876093252382185629351092495051113936479828306146089150925287404555588882261240737066318551327826912246846169786477423101997744241829095154836149877735692493568657187779323709344188477077497568307422011732965213985094841352903583167135439759849172360214093503600796262066886962824533399890698421068742431317883781628273887929147714141813055980305643417373478803541484202909138043206449303488278333614502256602428310850471964073137642081474425605474974153188559166931884240341726370631187069149714617665599086756594514174907645413976514036831523904862946764645882315915584481333615434590789661798850558763152205241490266176320021535595231171972971371982784970521236214354135277261037574145683578769495972919735828002819946421286167467522236223219690099493887765868381995049646304001696043639243906490465385277457891687617051244747936276408111281283258122230416451703637431553978092644437840096160447742528425162319365937253877072885911480175942640694357873966000904453126138562006204524902400168251789240240480265038811306257533444006876167904664167997609122989009130352571434045484861792615405337411489312623347563658633928716624680392022258697347076783936243698652883312237129858071416905777688257752640283774912620290515480102891711826592108564239376936110350662237370086028445990908702969976158167716697408302959583370692221358596928931029288752935316306815693053971188432687660358536463050280504123591793034981407742491374696286187090359662078343841603532268894468314225228010310389681147652966989018470869598969203124417050475662627085751246726889735098749523361631187990802359161219628690818190924936065192811518613692218671116380274547068797802630481160503042514313487997498419501863856521738165157106784161167419434003131822959218858268795569048759644753312080093000928968829798256979588844644099081313372965548993638019607885006422790199487639986916059899623660245456958016848521070691369547019182976118645783368950032550429557250751646516737938822594404445359350856381404981674190347736210889197328778461670226571552719789944337819273128527613809465179538587760803136722768681996892931768129304815297911483694663095327466898356770917553306205758634589335008854402813784863329243593445233804744530810348563784746275772083465949195722957841354898253618585183608572136262047815980306814356923102405484716421375051863651219623436103852939292171038901735051533168493835895847344100580974922676408138802898924772877102718780648991434364445625180263764687110665319783381866403342342263745572879623990689409444401268607654619025648323638320074574487440448176585323546260576543564204713885660080119352746366274734932934451041088141046273525851291680591328316527008637625620827351280504859360762714223309113298274608696841978104624168740206093412275589511155602440202045944969034525177822849497872725838597500948137966628838934242688772736341118471761644792594242814203123583954718495918189583473629800796345190281456091485115555404853988926889879682293262800420729498010910874920191545203207475078910458693864399469035099190338364207635191098674293346703471819460088303767283962613110512128258216939581367104085305024327184783830046299272543649429941684775053309954936407485210130069108445642586037020574609912316849183090093366997251446148253188965279703251813483982555165160863394309356578463513477299633103654773561155933995648204213810971492487510936352283434537545618177649060138272210970024531049670332234577907323099671239957361791901207705080937888936898506602787715612833625286213609857865531812538000148186226572087851940333191783724811525174428541223991261673920658326070049097168311906003347028627308661075523243958121567989361151751859143492413860027417656417924043668174827409216495654092378551409021842412485981780452589879655557969737621482733481116071386002362007601306875865041730126842757013540290789602116855291174916475494745319616504425338459966845208687752941762933464473419485725771627568440334899822009277213861507008007369940704220227071526740074609123674802159169219105418005468256275159164123992176429558534548441619477760725910533190035888535310734583650112166249737051334976795162951223342861142958734669446328401299544100816391442048658719647591012748655791878329599324634185103041568760955441191306412089709960769792015921093691967840541813945673277805593482495778051297934541888935480404244732350147511638818648331276727107671363955658195931473416846049088353937532722351569132934812300033135045122386768523924561708684684831785730332884440976713873036810408277401529686497457894237656198450075061747220171997517969263374869391005959605007362595949629902041093413813933851811802914636215347432587746571908257977786953423659496919794827051155454393703555404870605057448933542396920481913509818997285415837761536428779413255830274847991986047156461200231424023668107836364604171889452857396115119310942161557820898042265653240103859321018954145520402890667392625044567857162526924297817760572056690656937866017619893475448063559513638479668959558822623918683384935098400235874076038647538153450367981913213247200534223719361244801468229789417712799286721189812433685725362039362980716027702987437515252702540741483442733595708323278652589231470920888295183840290695652936220810242440802200032825951426341109916111965783317581143351475718489981454548315500770784797422898806114023444429455539748162334583849670645350652542367704828993396134949982634849516753543318997414275090819592407851701060314978657657022847621492383912108882067771996107272599064410964404335418226258890274470764497025962621004042594975151715877788832407336606936592447553825400073622224168004210042068105327687727797383897620585864815022794319565395029202571960532889303189774918016088803108276324815947474311337603433410086091877964099580477102768412503836187618650417238023987990108234254539840477090444104992558318040597761701834689852758784719763588904667558973654818050762863695399454286286112006985815740212086544608091313921624665476647663011156061545129383371775524301529313324176161150493041368614554600575162366058472159089941403432148831144037305313394316771693973088691682852820614926020748460898117158198020482977157496626694011272898144759083053116738756098779194498951483951902313580509974281260617805227991421873271652400935710167589449644968648130443724922073462100314780883407705620750906640790137023536549594176562533528992116591505358198359634878169315591301024445666911356693728747034380532039810300186837822674446488026580638985958344492285150773237693336565582412511261639278844981211384565566464260824385605645998710559820144434919165855539651495368891268161227699960605048261539358836631628807022995089274759409953195851471915328527720401924166147136957927008441815830756711953865908333445996611469261632202924804407563193159866497598713229483702739467905997376572719239357861034663321265924762694110155536905592633611465292917434879017567121768636074446261980681213451618728764942521290555110238097256671936878341779473492670498808962687342437797476456904907399904346918947262606130202468501053699689416825532644353693503664005189777050022020290967856961525988678868304482674207484514611318648249394970212948672267346299660561801321411909948972590061895727893257005105749935967918694521275661120467881079564853748270077939157594177904973081469589957048894530081439326305397406024562963751694682601400526735224419894840063052153690356222128185896019902813275796448895633611977265983116493127113767352232524006548707014496231610818636228096633456688824540542798018006303262046730907035801860036575725568322347238229411712774014390118705865726325685538012515045069287371827292750174067971496007514935683075874698664941163875681894446861540000876902185740048129168041278326252873901681236075416337708048252724271610191589802698593370016082494507612885385946295732026825421138815198318523867934364945716412319668351959844602508107173002615795942777215558204715012671379670943394951547053127650300740693768133675925442953987011156260496364797559852670979998229148569863945062178244237867392461027366258958711018651322463006721928993056583135906050860032823967444184587953830363078176900675019755887880191092605891871304747015059290716977086902719368819810191355520478850828554331047064677743709536616123897002418711576187769690237707014689960825657910357213563443279009360233711385418378453055768716102815145941218853862733013389778423653521344594970141187180691339453351777140098288513232744579023531624137660174799045512824098525843844011991146035923337012876908154714312566269570209372382036879476121872070749194688503538525202317538677049969581794446170566779925403173043546933064202063976512082433995561171596054916452046086993101832605579099588011715026120892305182763833857740661282944440217822909653925896945233640815005376800254407218226909635635772684838040187475516255324170337520083706797427909344035827600575744047404137270170178890040105412467019643696175018525805193359342092991505102505997388654397068219865353726611580657935596356654384995647285749454638704054816691566449259614259200983526184001521878125196028111049684280902169302449450935745594897119446517942364294005632120057566190043964204394286131332473944218408950738674108927817632458287470754315602798673059670235470923116589981468375555650066939009012291925395741520545272263419970921124552020949124724015375243958221175964304445958409858325165377248147772090917024265152364613674901332134694486674740767081935004163630762417801015957700561432967934291550275891347550362255721977299162672164473064949085474362825062746465934440785042529500969867741335849739495627676281230647370743468745792574110565049389887814894951088342653049307939083920016643415606997998551020689564927816989614858792172450513543646481723011104533933741594188655140475890121868584109670456513149452656556450756466333814852765669621586645796476856732333695346607931185580163901287456481570455047381359091708024252762239605775839474467971685052885745961204719920622939049383017130801426923889259775067970873065591596274110674098438553924823648750481392559472047916937409383155738000279605453782599509299959043416390366207560534157390887555678264324026897157603621764596771686420143618185763694049857080093001505500036766127083530277361330069069914800703523300907444040066395130411173394842451646997940120389543580548826492532204340290423994378556664322636595705357856582663159532498191689806081651825508398589282395203563331811354256689267493986069310410099074359779450151144022518898413463493305662429570000460900345314415102696799963247050532087866903434314589706042909608253500212640362092575302332017966433199967995441834488124986083934995611456580069077259603830558666330921061141859335315545916775315922896907629769876812113102976072493218116774597918578487466461484327531139948772670132943238515754610862470558239952780340005027693105484996298655002975739810867656963391327997676743064430795457685701823637043660442098647876901260948196025882392072980724201471139800295537812471185241656489018032608282793297679281299373844544004784790854591764719653288321895461202153678229985723889136278835939439468449976317068295039356587677470192063861417258712948300278786520014844888001101495033810877075365027040211836630635598532231135201449075958565412678812901852105070789847222317191403137187652704643030090478007876559446909726569599285509581656354442800780555197370297622727030733202411607751662992893407774623882116805642880007177662779521414292854421145410841051408755925282636304738500144900518362062024831530391849558020527442465969981713951191709355186739948031401648230444776185843678164535526552811198731129913746229985021975116685320131282841176042352997361954957045611942916734783804675830961732077438341649108592362085709720201473685955640897388214337847780517399293361280945394711112644515726056592221244279898270163909963988610868648242495447791922987550914133068956282591397919781702602607097997048541782252883675644043634148404654844076471145593678729327440400681733684069877091407616411436175558333549249210143242658549785661042725639903884088665225851273089059445053898745169925682896905919090543799761787058131865316338931966785726670212680838446545262016890201005922671616805280617156260270715483894578647074885181939528962917451811753912467627974023643891672075499692811611313780055512179833542498407279002277522563187060883217441798870060451900362861900531151879200084264675270243010314457548405021155045562139445714359503697127279384663890682453858375213922590697663226813229010237228319161057368685188520363995040156391162649049994580648863725599018119347950261587784199838581413180452352139885015749703102800198208394856739366166012780083675687696569984832559136374532072601194891062429467275628953593501341907557679966311159201788785354280591570790806922939824408721891940190534292706180862594382336745154180777390817173723202136843362026540068261974694693719724844862065601664023051220988789001899106721389702147914921963105966901751152377044668025778098405869637230651997297996734527090764417561682857010619136687151057352657424401877083042274942050547771099610988459794380692251121065603646333825122587282950161922996040528871297076862069224877057739417072546703526114663419717961247841622993583006941438832359738199379930551899139568350133379416798605533412790235477798989210496859375759525738619979664986678136971547442988375396758181875477649157476630097493781704384949985505324294490393010132185029531649592403132313682649529966022360403881018465112576610233253546725394475797766307521887860896489745386013777073667736212758074414327693932843328740251783235777476260216313249511423039540675265102990834601959578446318114705800165735661028014203483006234942169703706880169675051917806152959450464959251064587153269640717694931736348240668933281604513774867549070046457344981036802765572623673952204518581491828109493606103035218798323252032303119074662456941144474238466189543257681427411299614396553559744537731892803045387762909630304611810429820480850444271175735420316376012549668824099858058954509530790627874203117942229359703511422080774230025460315713078876541766935413017864366526485910057971866901799908819670835360151896517490773012955766254260325085024624330679828322470226337112861178753727463516627163893070120913001418909641345304098427116453184615533680555891052923101928263693209928754873473019650575480388821111626653604449651047217713334617933223962377065278465759168720482009519752399091494459636243217614302663909251996350294410517689849649425050533862495778246818655154290558121028658356014584646693201434855832052778140087236882602586425385140765946459100553923051050301997985982023056571648958212291138179181308469573613534199321856377840866851625781578095107482064289095057810103129302966430283331511432919971302893071701179515111251785030394924656943495481118331786386698751743202950299952418368410960863794593355360005203965349059108613811414395744015167154425531358331527177949457644880484353673423921283224579201019579892794548538768183706554778765181099349696223793613046471512332963978037333501078403962314471613922495787650482028851577418559028574711990889917999914258944184446290195743174363264243255688481487843127478141358034476934659281439625254013876315914968836414639227744855687477300127135041899559950927077091473976641191114074696824689746941272689732053366724466257237222340031307759217440529084379575725474002236125841275230748709518834836424754213609329315835980025097589728425351080631040705657582701491676059095158645065515229203969960580007507975921408213612859097165308215646194064276986591877016376069093484258580013085139291737966628053346274264579765127258188651151825634249610851716156635441039024035196182122634012262502818483085861686550932988999572594159706948126283367942231045853773785759131710280507806658472731909533479355619078928902401914405353100524691630823280718818758316273348903350782004463679235022238599068006825329781838479048206644718225337761413929510637397822101075138336421264143170222393138716023630772048590742893036692053244388175050593135703582712070602970800284171898989340071190924049124491142575544192683664132499221450359320304880207541812433179477526963761684632091962658395256090210476576924617993348683308278475296578291962231996694685175994844673814152505451263582916030373442278337107610948524178641917628983121534048120180116409301379268482656710653478477860510287054121084353662831670937452047899176377858115686701236812018745031231553434425138049440654903765816033789064266528358735424833638237807255269549716309604580783251880034925698003454196797288048597107715525401714167243273997201877481339120653146793411661877483957937904685021399484632054728580035503345718470997483598558213733769384008215318486254630638888812895388718163758621833342786032788180677304752448732682058008737951077351295589472356391152531988611877973648080341971313719082544613162815601622828501921711078616686771409101385957028754381983225270962923280639001031067113953183241564970732103307369100683793287359731166020823076433082481751299047924912397061244743756224961834396466978493305798469788801453488176999380368830598798907437753114716192175198520744004189088117839438460913506746378034213677497744122444728150694742089872924074452695982875595484024250453324886616700956248702580182955519000844796788291436857273617348017863632132616797523777430307754004754804724054097498979105694076051726638457852544217667987776058581921084521656015418628720899995896595656516181729197126406055596705399915802033051005154879169242240949853783189737025541571690428650279282524253118860346379606581613334831128115592778669011654014820182950404343189327291039104543304081355189772909559300816027451538974599901092158424255053215768289506154947066101059096191816529236594055529460638810816772468644724782627811249642466997185199748710152061046110671167048110587538226238124507671784650080216498872003266098973558426123407707211047815485182663603312632520524101614759422819317282447519724100585578673360495931346699229066589774782399465921991907621905016267061439970553240505001834564366762156941653265499147106625368250349335881628195267491584989386945059004573581703005918654699417443492662563185637515469399646262720315769962000584680657776283242586539254033335420502620705846509128347409246729534067334523507206023965659070079143748770703215045329780508565911278332042122032926092757101673817815094844015810736340786121330238553698329454023126771519119889592385886845020783458991159033710762045141648496483884931027942246646421043479287200339799948410933156764643394005501445376179929389352125247093648920244700721316835195612738325709876660708965640561857250525047074188415817470397559971828000124635387289915970654848687123161930245864022550885286519784881038176430440922112424638217800910839900857575528942786230861340366962927177040758099608015808128620775882589532334387882833813088991924122526026850942857750992782509388844786031249147108841994650523185936938279025113331709280690168051015364195107343725909370676772207906545248895385432954652332416681879431816048859717924232198448435058923045968982229632118519080691782292165411746818092490589859799080676275933240985437917470414837734093076411892668609776952789474907670645655747840159721340920095943215807097822690510520215055540800783418874268005532942016516138365392434166551132794194050606914621930476656825058986504205768774433997017762864207622883187759600436945323813582452497542932527229188253479469439167305347709489884239183289454511189011556402472734625305304447285688543641962382442086336109179510950732651268181763804130135408822343319341120591451252525226215767127707103638640817433391919030498083506724234561439226449763738268996245947153311365456863245657579052235021815480908276547661430228005805731046326354260314700038630040612791792949741070902425885392261487087723311321225124821383418478996570243887403403347069623867947141046185605520936742141462058340425798141329289177133110439655290677729385637048100008141034996910868185573597820377591027916380267112963929148283854165606529574394197663829968804315658870995175789156093627366947399157503360837376882766631719207686802452471760945183334199946478989406583218873937477064288343065339734515353518900986336885918255789343061538896802471998324659476502605438799776630402602103660963904976827146384111862007324029058377541926597409966680626281041323659043731904601012712721335360263169251160980631531270368021151691292092728496225851985403420337882878188879931984515266231908458647130917048655133366248669152256499935455737369077466139258176812431847670569464401777713633514561020023619421400650431406818766130463572861490013250071750342232269770876659191903977773006768953369424205537229294386034989435550501759323256605578214396314378849663611361495202527561978119626451632431896564527196692767460733224683843508318798741188305773777059290817079539261874694425723831847477226433527087733142347746852553701853378487798785124549425951533495585754959119353955049515301001237043170969780310737027878238427047855216192379401419288520323286962176567606035462024960943017526905989695256597379470862310056544701889218951933506115887866875513279534742966451294744076742089910541311916506608925577299713363091927392935196433825754077655780075733012271827622886325520320953065102408405353785325506144748232207509797780803466974621930032845614398238480931672770811960062161238656220662138496817679630214957931208483443956643911373179581054576771975371579697772753976727330355576530978124661082998990715020857103643629982297302952044567930301143069935107837928065281544428101465068988560759603825929642506016861411991899821828174304122954918351903758094190469373075713537900738626127663748268529049113849809362298259608141156934394338650983161967075687283234989617708313089109151124836613687071463606982015277293329628806871085406398554539072688466888157187526655206527286990935069537894384721885072488356132451196997559593769861168659413961131663079950320289641437816877083360655369826357996794058636671559929848383988264841384785519855194939760481484992157994155331524070944046712625265571405021089281963300688943424135402959260820343420426259952971025740757322211366568625192439763187927051314952032988726544937440666627331185565509122304364386945880486127807367101718931653065554017765996514687310793854047429986500129540090733422380582834120124538010137641714540018184683291762865124096682308770227206554712588192723697052103383463447858064279777564561037347170320584832298955253829653996967735431633618552473386557099050928039054427229245610365377184803843826989016631971900068626012256032672063914206863286932159082994486077016233580251196460275156665283123382948598627650261737191387460445639486794876144277909481830246122781894452028198734489557058355648933845888726243968914865471164934179532512330309514232534785895931808508009294781647309217614500382928153654810544606867266146203566828459817646115026237660398569809198104238023230201999646211136671879120814120544586281426069710388521530223045540912130539574121901377271007000564223231844284720199225357339578305453511871647356635749025707960114112370214458595970215094162861812334146851257486688259246936673814001626722255086746506613549564819590471869708657916396222885302825199297139348162393353688218383495859423741006687981689220287743765297653144874956776474913581161416237425521695485927514637493009811490448062109028887346569182656302082090910634095539405708223165461444000994366141661325934831151830309292541240053296387823784570195802804698426830089314855921739087718891831650059835023902588805179441205767779316451415851077744082081545690093737890087621365603391172688329252009458059593012531749665547941821062156403364761825571970512914860137685890567097147965643183030753722990035409192708332469391256956253203420439922910681860669283888253362716633796688003726551725623319754739767065201878443077571444519712909323726147404377010172715216130945923282281797973301412436413177194042491475032298348409688190933973617400291338866994609651031567268021782818179356650814547496902857606203614592427815322603660006536093836438583494992339097357297803683214948802081337497301541930107469891369810921263392250436640672001748526465838997028764601199596681457104665700288090591715881245290758382553064587107349670003564024560866026452478912692758040860633330533982329622379518813801733859974700156398264371622127128649866428176087093263521789866299929170787265815024818267457145746695211038261725283602756516539913297046234924678871682649793254276513267708076941231334295380582578307262152504145079546224143889401514282471760218409386939676409908559311385589192064544273221550392474605948714414304377952721464316198013054230906732547583627097326250313964550140687357949061136841120084111692163532734047511133113786861774031946741179255727992227068371818921690697331151824920671890108885684641461385068944715364250266287898291682453516375132705071782777259159895938196515869885985119137885332765421949371608324008467302083176758428880700395545757854942620134701285612428258325750231700771801000067137235500179442070961313184472874650129428179944561178405150952076056269665822770055093616420873839383359556870522543157773841244091520024091141589884250244180983917454783381868772031634327419143528158588115614966016308699327030018202016599889533532648257571139422210898795174261112143965996442585815501786630231790224188812416960249607234509068205156707461050057508552881659749512803038312676682723832438366920815258472193900794113197659227110575333024202524144667487043692712569714834707256864908188409783522027710857803007760538625304157689262769414581651398851310835326856553220051560962797646998968251947909651630133459809276991082878306371553631804863864357708680492766210666053353278003996031512618071743690977364195794438388573362370095064343918649649958023762215404055993916025976806021645318638121871132751073999459983949305416331031642607486744180885283543628588889531942762595269473934517954252238318587836326470430769655776937163824094927162685012255967705971680219853901353960970496994764322505134593830238529805700154194670412495035756162951366497333467626719233792570375691808692587189176690800170507396716600428742771377230444967535394844030410626283429771890646122194715244720473498999835846113288105136876379294250348093799920239735675802062081515814170312866813980368529835283548729793542439460047611889142192921470956599074616495879447363757222319623613673311883585109688440487783713201685924343758758489786836687333503299820959016466108767916455222011304203517522360941411140554752949630380440403255728559892682888152810661049991555868495022254962789302906969759067028719629113853519576312489707139052572049753824800475785237851987150522347396632665535763186083927046021728918553620778118048870494383085125116454559106850784458851719883461136795521184166805040881337007899581128460978045630476150505021406226339893066780423858320022074954305609363455084943001311780452145134585353601920010027733309448894639882721395088538817568871267365519818663952288070970483394517555401543039452889338327494813059017439622567547398648405371540356542786251745067145699549654054935983942909009429862549096085962335263912816896532329404242670640241068486999364479238139405786037307295041450572715191087129571980637149006993131895867946651905189671414815759700747618728830349008704949195266579730556738584166058643265172602411191870845242182666506683879803780005970329986661496404966854329065443720863298384373909618389432358645138645205143667005954333552962833109809837618351784400295680096919327616893100898827101167348971402542720431836760075395577007857432575939467452592655192091433150419351828408810414380175481328014039287726173713764968392335431962950724283744647114581912338534011080211385078063525899859263817685424922585459054420873251645625405334006346897575288135964918913658393669046726498816125147869063549976658070851565954876483952963314514157584011445707368855434871065276730860314397887926372339836052953989417507117410029384830013169368446874394138435705969411974386608395197814106660368736877682668794045056575744910781394548968051345158256706197407058749276606178669841113335582000504908062775125738512737998772290483380390414593494736362152413712349481428656235065374755606441077433614428106117617070980552921529573404718537099578627905145841006064301123333069717651816860603940830214012184242397106754126527384098984519305542853757578351673980357573727918292610028523419134503468294383780083455670016758213959188127876337761013904559067441132865092288050324622870426178021789088571462154024798394155811486206697562575807845770137172274073135340775554434038754769550616399727973339346455800532951202153861508949377030954604289025724975673965830988066331432520786407170846208036239955777598777011270990825080966488999255141230529641870569008082710520475262094363887725415872660478585154041214298377463803330418365289460024390771098133792267732920063878173279273779064185930482154481810896931925561040574923645372486937482917508692253234795559794002534478795865993417190718538441925955847880098861159397821131651185434500045202542167695634372187108111590534387107577349586677495630867266586541457345080502996982139251931507625790034371338851588786717398562661691076919411415720974617143353743265748639056875404724931310922031859838861174848383436177284458147920104753330391381517174604463596186392853581139456284809857620333109218115390092450113153679232213973625284116658954803754696514143100828033477388104486309629810709879637487015385949923696055399256127877871075884608854890224071609145494814587668629353467737876502744471172652273601467898701654225509713845288691273438878600106245475430716711429476214363362550422378535688130813240533095869401831340208316925058656849745974045252242857181791215840214812674590876400626224332722498445980278237831604921461631675353449190638558600789182669785408393184943506682773293257466361002740142540344568020490774478472667646126625386715872415325897279443177228656083187490675053534645729618229152552472966228712849294165032685016151493868630178624688331633488305202370300508578018218698886151475641435224386034122195636028918286035344967346747699997817576352538695787241092841381646693356663436575605683407434744237246291155217236056445056187107977811166496616149977407233204865690511118517394171138008890251531472560147204518806930304483971499174895132005967122847923273485949993923923342907489362007868667448557352665923450453220421882534122780862476031778502518337124138301114725460532543980694383853427565105590582600725309021537033165206870315739591881142994451848802611702305408799705926489903379170103444281150849923101830112844187565223707660655932838097103535161607118079600223163346139864697297748881698429777778047955563329854839632885698611940742752071131389899655379077376834288630872876750292552446196851173886677749000566291961293626365116744665470544148132753246144456100991761876256579267024222639801317950802245840247747899589381723339042412840454539844488653215237439966033057490751359525322347388310843081274675599942778970696619915361985917854774794814331583124999800180530373868401538054134951656260615759024496005171018529318217829839715594860008901445695040708875159606621217058040227755908455598665029930983742283792994273147581591557999260474118056628894930253477159223559976886019854363912666277046210032452640967697719307425321320185741895034630610469724712679514193032428757090171841017076115941030063977123242411687670914181040246984666125987888662857576177357491071505508734945061546682792726257594131599627005917591807863546051004882049013641340881350776868865216585645212518492203936504592954089460456187150482620404701454028073139123544781377679279794524117901940918402911882121883051582877143497505925293013209583355681636350967703655590243672477574241535039781798609239629176054774190158961725057179786383606102835208454887643751242728686781033647733914292546753401989047118184024330147623873598944656233077378927320997915799199496531373434960531067306510638011430935627138827637260926402775387396231159737400146154363615441409277355725245757439197294092854704589926241000033242047484368852302220296374796375574129889379710311080630893047195665468027322407672226507865506668316580022139236839248576699513027073496487180679134687325516021041684144658712983051726417026216905921813906907716841480546242714272682608031507229140116505359172382411411804229412814146783600774288011609749297257908020266928022944829930536223981666689600501411077661103377613541835541069342975383775043071758491362125661657681579978994305675141311990845870243428903117782407752230837428404787382062319077454060193551173805204954592726901478201177263236788332574679333323069371661037453321510161352357520984261911287033740619033931361472395440443933616063571342318048378651244968584996087553577908926858566681844870214846641924117560830702547087468951842819865171801383872402399924753834070672154070749183945926231949408843873323706513260854128929123995311767789838796469744990617510084447610128164749726464303475829057174917412403824047265453455684948463565457013518329385729169623278768553497550519977451379847430617860287307812255544519378430140580316987090753915810306560330961899311723286140296134805137843523989480850827102439201934263843541969743203991191869653101264924554895829972597544416109180155446310233794487250335968965784535244810289612310570960334259091052589628402251487072026006875580323900629343192680511785127006261808485630456714568375169711713726513374209788105105678847846223302763552775107330636083086709900718638354789107173210794943939478554466171335032936570036227740623007119832978568413272144163844038900970606653766807896528957911751422468647719193240436822008690151492759481940524526684561525165304273916305040280108724695608819264151541443439134960975742415126303611319540954124799287076398257607863583106472756689942146628546645623278424965245775243691052408020410602759525985935124670341115212905492628958991246488042718782324647230409366217206341277640021386277306470311686513258683091609013853004604896550041946570260546139547778182748512201624063679320123763633276805268119428811655770736688531143722093782229136342742279851323987663603437612564689586526644409808450950004885035594052801616447454379782975832953487864672443443048037287835277507518273178151553550470274878639671451247224342981684451077289740058443698635486148945375520929146154965247873500900331996118633291027395533342482707334908442288857034095142212914020794312869234448782280080662506304104295218602531579330306459730404504333099610573505490961740740246281600638484317997945303971075031020275519599902276018006363246869656351023813925161842989203210942172534255825965568124685932711750638368653128288206633229413263286000753826975107590865364675831084343886348175083677880223468991010415410421556170903369628589349610943697495985357435782546625298370948262075189818199770484023723476093577758796591524351020416811369254861292953367645444206765416015371610751581926863397982835503093473577760552982608299687097749210201975955082183212698720886443450979450032900533138558743427656457183717047516980557747461419569807795190090136748242294015938968427922868644800756612352594778499597619612191440670593234957827033843492957399277652776389975240750326980353771500885471781328688152923668013796456945498644481166227352255829386912326608599185722534161906482267266227316237080789073111048068790946064458708030176662091786975281577836746120083880655403440297382406720887047168701377432222693851456774930153868654172830839735676170177065054122260504733400823449637136878924871840191124776169523837458412004074332451689978224905862791642242576027654341357556474285681699871081322972682988161493068666027097194201878060728594310662280212724780142343022282341684685113799652332615771530634979498490268035634960855499603011272251100615303643039884713712031992745570969068979160131093880246814337611058336297429746316061876740567114246523697708897331507633505872637002577564543921130528363874396232064909156948505405105908725679270617057107094256632429466443548200478745073024415388516555781445699238949860949110194478627971472214044385040440302567885780269505467202521702529048930122578948888328381032941050527637766252550589876421959294793922650582714740877000448490899745441012255320233171648839509911554311925395818437084695378700697643971929851791946749376513658599855105571620045841583704602984394430230393777841073610628064349832662883589779145762430021436227197881289558420149085032807806064935402108779613441391494380104135191926728225631895030148181140724440524048651764976055918764964897567980292399507747780863007699820787343681800400665050729528427448198853332618622792682826637267499785411860400704172085404759636053151636996202238726205933745043163840083247452519979946227458361117210025821854573176286743445137517167676865220367449205719959355266677856757791286420916362975337465067988806800048030714607643905704096536302995349420666069172544910293539485635836362398612724923395280821527711305628552976794895178541711959596663915959412428353548135837928093377742627181736575637154197805014246357711601253911717933278199645581657677527567987384021418247180839614775789991167412561415059761380800250706398303637802010472319567024658600402247276008527605892362753749969049377756304231932905011760703172427538893920242935736348552331278104678643638644186163014068107528831528212592267035349087818505026695608813136741361995442472152351937313944133319673791617095721924410172235390656778567649796217092158952804569901790096535575568134573013485363637976315657282574929640979888044913045120466266939653323625331295263596736144980650814964071012324323485911813030747875831126400706137990660242221942949123600529447846991986164845181277651746697245790891961069068350763464836160229089437027901478704043469956118987062330332669094267247285343972671779020666691985664540866931323005699525333740953506684658865025597827725637066287776045691858164509953216303921979937984959866318944341935288324654284560123780138047793648520124542770287057631491840215354014328305205712561170560406121740181397701408685886706504113095453359876851772023585127053504579975043481049565442218293188071066003747963464276923641779818940258857116300486298054900853202696662723178852185848872178873432958113255459823636275801207700707276830438164864431298439567375462998701151401804676215043435322682356189652920360896201018589021381674270418412648098737268731100316217153860684488132703386225305645612383702602970370345048218854774861381400999330472970496743542239761656548014816893626897764788846212904953966863136426329068880186912494559537354633932813166543933400112367673452919711349480864818632677690576186546042621095970243214453640197062434565296900774525224418464943186449946840814649685051911839185689211343243374697067590395197249952442499324672832301106471342751454526409690992644490501590894737637479880837949773819809387445096451142408355966612067687605503760987878634516978843463312627507151635180461974288298672492812250686108202844155364268411897544896703037382826235625535129023239249729331802485829419454465877738149743572971916605612836083320471885567391614427451772700625340032424856958578779497803487315082021552930295644863867078635604310294295446929807355784556516996958806297034429056767742396413055923979825267243226926102826425196480748332638110369210512691639562085261270654187853648411855616436945626427005155211601116480809440655918327107440958855346151117585858603542081973331483052019298737219510214583597875571155238015814551461817921373397484438726093749201979848959061390875057599127860070715979478363651080502821013154261643184846317503021364164143089427656429747724395536362841482581340616714629591061010189755679942429321378641845137089917881719761819463605976077586281022444660686503978379417164557901333591420310141784208904684213277871689420940584654134984475757515047724553578126793578499597890742111713618206361482925880740076304965814167856411865134538254250866356033882521918069693438286977633026886337157101676711696225101001742835188901045916369847439613645738524820607747084059004604120015244391007050728176336595103979362039382919467026691795423472063968942674154199017060918943354572368737700813575857312027980223879908868009950169970971509664083918135539033357385362111292430156156491704731259697681807415412639877095595768309952976964549248738152300374801991426338833644679615479982134844744639989040422043215843748947571888841839916813150605581071232087499102832842386102753337927518871699122685032837737930004052915021733316420139535726603025892683982647909607231943184008976076850666177305965988860061600545750728530289060097166227289762097584906882850194710138573028352876033578712456907696279246097941323158898653498710567870593048655223841198827081383454961190899886976765224858642948030795894932774558365992896000257864501819701250407182061809861405102738233975945570847006233102190649166250610439593987306934626942752204538990385938829367228247871185866541563615635314101447599008134238027191738666012235838545937795331099693323418673911265428215601806457655886241629232108915730394641284112158691843537118332078912037568305469058799050378158382572425604185985191128154200076180638446387312364205289150199927043381038841583886461407497472760493425129843737240667371349779212447410561414660938159057092864227815757538934680164584768281734638595624334597142998035696176094212204903819930585292732470550835787088235048054451139991861745753613618348742696774364668220827034719731457976950893955214026670409453019415641344735119055757594605137874972494820331267816523399609406807280366297174123604027330312709177792513905892776559532950646524970171179095612148794125409144872004534428754023885606250088444361520442515444308624284486063272917300695276734555455082561081180513020203602026965260452305406530246442937941334996815946827383319887842909823533351850087326570137600147168591423317053758019950322374622323471322292987825253519803484601170012205917160008016384398484972761932383776944607432586246095680181285515009452747706777543760589440497126049119206110590966647167607580667400207014071192561318942873536741903362042782991836742769178076314313508122383847465032367229607218929460999453713068145373554352583333669507363292722335282799300211091490905420673559512121380986855069208874708271550497189039197552600936686739057364758207212912798021004404422168709978863392010373832464549668656942363955746816253930229188328517097890063988577604860460862006006605745215593614583618654058422984275619645835000410779236134212988256969327817628916531201331666893411145343733633635469858854470354781110666427078584887369051434067931633119146912203785336964545181839258638605447120099226882505085385931778076048880686072677923058045771574908217177714639695442393871184289163556150407856541400811384482592800163301149645466633497955983935497338507385786648541136921893946730849690446376815329546707891836395355946941801560836914775735941162585523781591853065024387848948413115525569650279824991135879608260565349975117454817468078318415192806252144318723867021697529687550329678256512530199381998370518504702534427801881681228567494916807353862022398958350217459375418613049682660479331885884792112092562829285310750508439092877328990779197286384161152422667665153945874315914698635928929227687087344424795421687383134306482067114245182330226221427370275626242281682726165167649662664129702501068554811014570907430872710276898630037645901330267789089505578674813033629998536254390833298378898526198477800383611506769440989903356288533882412808679153110613376650212498614475565586953305162702537106920876192993329886378965352461970488754799903223694725962162307028523188831497462795825489532874002094593874469100610710877103841647433939958720118832068339788377202344268450714183138262108366990196866340103274092986613430068577237699275995174608882512752176756857138799874518588826311101760166466953628022074768658422081296529257974288533103387933525232003906116767026613680866913858971166768945328184510893970095974841813952219639437284597167720187463525384764631389139972070144841015549608764742466029444423004104838323079129352901952076803334566638389965881282239999757662097918608579967139099123218636635245039596773993705269661131172898446281369298014442626301437511320849092082356499891382425647057112246241161012236234081015446931625595924158425790323241645209647888762022747466771408813131394271584249785889781691219484172432942852261335119544656272828700237496655700517236849414337355610376637513808252017177990804874825719640134909067292316833655227584039394753387652354550927369602249176547192961188380722711326743399718416415810875374841886848188752693632927981760594541287258870602515231004951807191132861472878547362918863159929264954534465714578759195260611942739821380527849388527654091257084661822227955511931748325514826090403445041242245876084834874774377671950454431190161486415958969375496159447811428920568996766809052455048531270664130006292373490586863283785066760152848177667597539192135897700545239016869950652396438088429558357283263730971499649564300556277968872484452344856536822983338706759187992265333587192065569929818259336819025911649751029386317226782197336943838961240501922918654922087014042314293432115059477775781581557312349646349528915998003355434182824762897875130360264680715507721696376565091563970257286572961372880498452184477206627155021084342265307058896269350061199919754183640779666200355081550796045494149778034627623478995367336254317087227453273843056768182236564943740437816401038437303343479483719573898289436695465108755109383965396484204774198462375227811046079842631773288337093751749296324490150556019244399345063978828933915029819879125063642603785799395938874157361914743677674916808115445123748474525246500696008615320353955700889318113709029001676992516461753507057820456446168451950905566986678074056332837892517559494853201980215489642039746067254145008771669200377416404729988874904014000071440669502059555850525849041375211297828218584065619964719636527375847758209214123306366914332140515420427815688271889523124720925215161756095883806113659390420465581067771288044830681652279471351995484150382125524156315329383794624792608071854591982367519130945651720205481639094252564146150593423206717522969716723059703674340257577396959123650974343383236612795695764396125761408409448115522273865629455876845574223618354116450319934787396964462787084292520126229461221656808882079510830539904319079017744593671864960237381211177536363521936236831236474350051355598815429726198720559101277488797137049260679179932082535693710248660344383976935970812187904031999291132423081342092084172524171439885389571954732227884202332508010222938619392333713024128503942550332089328280941224325874070274462034917804384178523538574027294826576293072326453574827962782551705558773759599806741029307267593959724937769976362112054976286358989984559043561668964963198399435090346432676113447730029638081440694995955627972593444322033983810901996232694592515663475621978980807046595467727168951439118604947321188104308569361421091241347379915667470683260604902742250921738817565963072673228611917297307470293570073137529006666717525112823533974378342803559168778907858953010335094044505344964994497306741965947379877290870659323966134087948097348650201370395514104870258789514836518318269115054013951756710585784623898838611504528326328168541903872100123259434758205087915612307465708456015242245733582581679277915675726838701352489086530848435691949352555725943233436226223643983924893812118284453130859935456088466329285569539124306508435546109744500751866669885936295075909778018719682459102348578896853117698775873484266393844853248333618513795794176940334124708690780106397024014760899641142273313998533863017278246970283954122153659003433417873278391388292653162709452899398863798152014257214431998997479123910805885264927700811915356877420731268689401742328347667924406201765330134223841889734067750292941655372089450271709150777788027947164006229211914415241075289224741019218461311351390126511565598017821479699169963977388687643470451932300412374808851899889628635734440150302129984275411584030610886897672248548610910500397470739775938168266680971236365485212564261241567732776144997792859128217695200552064882098946954691736009323821560616410149025205557109907868341325025388571495919749069291459385492944159898017955980947975833012429145235319117270599112420140921810084380309888696536625031893830971629455969388418194789424395887677921628921323747558732275017269377862894325695041570194871531082293046356465127289943577384144117315726129972244551784448778712368226874748695940829797328488665370389545712820103513710198666844973996013345536590263239928714788027774347822953515173831656971986308038716835686047646103832492502267592293147382678966501807879532420967657556213997799149901075157176879955862186667667328677608035023639000925601729837000447834474224167657238608523661912673317046306210091563797477036813861693240123242039183306798787525898739344830299415818134447760886129083586283715855323595364789416963167389751416882994499212111829215578330826016165151559071019862034546653060761829561654920485639293506574737785584354925939146420844626106557162862858109998048492715023515883944063382970922258617178345565528647914479054809867443678221204298870898064422912816771137023765037304790866744192777530073845144321612918164072308680520379118592931073410551985142812239011264175191582918120488034503213799978780796698911967528536536241974537233536174898126466228310303657294525171809472952079674637863385857662668098031833740048021357937601740651249619656832153732570638621053738987845647663393125004116043679300101149448882131705092826154022249811018561546108263620609931264502321815632714533238333732866585226577035716519146462405060154000792058412155608473550963168727779509460072491174174796767128202284003117507091844729447424860366855011819752020764875925285468925346486969496363049986466580188463899117165124823194274350186460826980081065501205732604822930364514910484981145405193730953280616535581144372574769172803167558071295146850248974297770497172005932832411475558489859683570102541507855236046334341592709191525180375433263357288465940947038518370636868945291783641478363490769787005337073733173087838950229884433985121588125128358193558930230177160647114606749854576938718731921371731049218760063908099424107734373588162388814080591914007418993170480642531057204594654870587318215729424333167957986057235791162298955610396370758885935976845838848051068615069133205528941592729649306641357411540003951204749517171312955862217478886252609759333892144546042197565966633345572151962477795668185955686076188958375397113467208817545059659171705660231242640915782227613591762017234628612001896423796577272850320957999910219340026588083047353035167939985846215808244245054138355622772698865549132038850695947119749164759732937406384524652000401107410033799572753698515824425642147842266190488921351566923127122037596196354243509293508676450886575632633807562064175441572088423472111904510687951386033011727512775483793174909963293811015201915407347819128499205870272346004646037934260268071308659538568149574064965758806118995261363625043966265420722694456996630749819927633408576184928917389189345595072754936703144966196957174572627037529190402889339995027573804664513652426505246135688981422829576372185244062793706463439563749262259872713109339996135626526162423900746330998841083116786335932525086138545558935629449432632822163868640514237279204911227989484544628336733711596637623338908020910571422828944388593529020052266891813907072231544191940924863824346531033231186081709758130735040041757279160767270901357728894065471918219898312219366298416207359562921613335848237034755688663304618635759850214027690065588657836126355717666541483725080649297860369237237668776220340358160100663517938381107398516639806467897745228399290827077614124688798617129316614275217642412262833248573924346429991672791559813010145279641557844819581006236839249497186320467524981231928324341797794912034759728506529688709753748597718609396309185952008913157782587326167384857681407559711944420649839434615070916723763155250484184893848193511136276366819616380720615461118795503954696432155825260896918357796227700629276363670354066625276596052750756228888580860626927034070882388126420780763716769522718665335132120989428382997343024585546253162272958728361617841776589895338001705000553040094578164615715041381883917031707355494028698205551599729191234108978609781529156257718867998718827467638499027011067344690391442463040887404097009841131492443724300676921803345671656586889167821754005967086510506682611540199696197160124461534313856006538816853677265738884823698879314192472051795950322620487173551144080789054114918784650544254193284337918159635897240456374484142482221125245630877327940472266278636475987055944939318893887196717317969096035647001897127811406344892792728141934025088239285660244068637839896917185440749016445997807558979540329583035698084309779742970128261019570403444991025860727720049555507547191768198441089291734698145551264947755301947215657015944817439024817474806374205175496449347975166450592232614060132041668117990317933096140614691455384852808713265466809787058893406859662552812747808755706871522497562605539736260753603105003266964499919359661495880968206948527113282430929956421855462277822897351341511048974876369106788330687825643146105128124247766455412697084314841206040537757866930453771854409661840849313501530594030778815546107957332042804747357225596793847750945339271991825502896464381100698835816938406659183698932041090800013947901024489101750073980782269576925795062447277143972429209105059940508261650913255564531341523942205173258787593460915197558821640601405777761574454461761708002531543931739709216883096595013387518444482047559503513074044788210259664839301636960881046186610598345739355227294698975637883174411694608750958972928801249020699658911010434792820302933268976494027564950023902195251020674996523302801651564018257537444202948956559746323971403833716680706464005358146129150424264563094486620670519415550238871646109132893396180121368724021500389828802264714557783746511438975032411136922693403047702500356209984327059813539745073396922711088773147611600793921715222625096209183143652837313254641449894318882615396616803160913780468887690042709191952669925506164775457081839130601255286000901866248180559656547305204965997231427261215563442274650762636681785385671310670387503271109538802583744518527112375994790153310855042271083451812206540459936452225480312826017373460808186280550940813226849700156203703942596039928286714830769728452524257638913324432787898504123162853142707723399624507219969257410007810914400086680031705517526089751275251409685439882126325783936767205890352785268665461780669991787128846428393436141833543641375963323677110070163558241998862403009324176156824241142784306003200861677868444470624561341955033951160517004176179712939035824496735851998038686648777457258444299684305457195128072892467360254274560417175683727238797346983340892533072414248589237254388244794273730224766584372831331225774658744555022227504640694354072971426070094841313958148941903936790776194329245537302711446451443731100798217104283568620118715246875300425983055183067992774155688077803542324969801828422985994001815201904578969809605549530634597232258515054887704014929159958227451548027474523035599480125111489893082894927384382084392265393336944484193952831409378531440446912970746648253079274599074315989873569359386631097855432879049496884513054989614168122254530288640527995407685866649982785047857859829232393168678232884124343048537825180498232860165346337356578878483959518062284284347600810808811926655686811466103192965085100402857562549264968101329019019508988489284385189283540222088605268287602509017835859517621692813471539736633219002110031761895139015973103305676491465336908766069938048434057330678354787541593194901269163827509935112760751536935284912161137732923718182540014647810454814336375537725253212678179747053690590639144827655945949973317708055456586219919378527485937417906316535824397476624511365230955410852992097350695356914366354908954806765826557114512114815536686771720539381489924634600382718797107802675334752459281769068639617349694035694109393730196042614283756629644996963812292943029292661788802760540503615531951307364464709354834862902556624996149230446459929357746423644117680519872040106035450333083381290674759913992558103019896564276762114445387793340016586924654223226612565856344588393442736045774857087680819837067871973505313252250533974634728990364394175481486985323638474020001620648539838143834940264912899463665924055378783670907107558420983106664642516696844941412205612497240481225668748533521342251182273048902774108229332999426385903787804690660694222382424224212898635869496789334550908911083945336719598896634531054238450789511773052443008436329333928389426011345871875793490255101332083108220714153529101904553059768051183910473476346713788894573503894861199631144919003673104875156114132190551165186079944306548116158624002959489069955456939472986086858482978163391637305407584522673936891924974213744887977258836739609045842075288512189009120787348593208880212536629058767602553696291828067908429367134728226622122602506593408242305233028517955911197373549687992369818929920689277459060185083261165683261807819682837028530418701187047896836547479162679647543755843068645283126110820987261478182059913215016491850664488555499686589641593782044051773246478349565502727287661921546296182549750892312836580266501621362509161324975336082386478920302848861637835698104862458709995179476571513720394548196641962200486405021691428090175635429702457994966645623398054818249302514390337616448202695947770405310432196665604696223095032485277374340321581018451416410620200825343908353871184879575848305988184741346968941872680849439618104469702417563796497355697504229464080422516504634738629310954841042171561949797392799089873285572275588997507070553637337320369236169457591331259659301218341669561768467758341023402805598806934300461877811129205899449669946288063751774174812928001088489636472332985726827224352342197630569099627230680346241185343065230367416338584916225253526803564047274543659644163146236121139620719368614444634434120068857617125911201777203309582040305551639796511483413178543198019939845129422115526476089633171772476448946411771573060282858253659032954566552372537271238640107129170430398262982790892823453854866152669106214819935913294542709522528776289578349859703379790138819527810448144847464718145858022379290528285243907538032333437437288863986628055235260512407607028467594867699950957952322982557259678530474751212957722197250615724819589976412550425511276031462881087057693866164903626019258350694053813691962149635789411863245722875247913534014976872906416400733517561037034713709663204441590989867507294642837704927057715835939877542557286878687355662955630806338801755507645964880011902346413934316425982440965133256384915327505548779142147047430269328559237596737049858485338361080239605241089754109797006792377637014858924018876916454871717445366244028345740314579128479675763963088115427573583363249024051440506477071269003050529732623466722333880146216192833439480602102324166945339464783295650634332524798984336277873094144218950207531215622109933631719938690464227844878805046891741189509082728645237173367990921671075404020547311655823296938873264259176210833505384353769755749485353119843610912750076986531474328904745365578466208236528793290798008355324342565302038050753058296860623161569573006477230092666693007177625304975642782589456233316300473360577425740957627053055110566017278952305424743362665457962702103409972707715619395680236355616252379779425927037205528052583294236169072634203514791342845393739696497538016350454965530529631604423285959571453439830662908327368861967559815496192978589431158455501172447478551243604971713001968564599403658213359215533378060097068628557676182948950007815630205409814140672777390798453168380450695252483666543213042853016988987081339269938568378687705547532370229471425722375882954804079355548599296063223867965676359219601237257328145398898510680228041554472209639278936463338815228880339198052844146622960364971203000342368531060425189220272315216343730926396721145519167859463851937133366133533442426984721442899599339840523962446929874407503110518583909551017302481552750208354227941031913711122059418454612589792871069738871227415761060168838078769060683386487170943069369917702691562928803730473740730898556510465341320870761317243280973973323373581078251448825513749364895170211807336034056500385139092158863637442632296064278960210136475982993496610061697287338971302568535789469161367039235575941823335088014050228478202073833463019261836040599849516768575473331789560146914890012549994445094048372858653946127890955969485454231077964398274014858328458927696877645382541923136188325428686192081371124553236583157273201744126470869749272083205726289224876723969380743200622715251186906018468878550220871858280667735926465608955796297493503520709467467581259318968915240980984231122374451017002131502812657747228448788331173122522591609560925118084195509041576494499474140891444814767603129246555763089447031279175710237736880109375929327289726156695442868691497482817930695706802118879100530267804858306811499546811798565731845802119185224711289686799972558558246955145216758533121615490069799748937737066338932435865731790554655352117265892255132421979711708384266036052494143743897086383376564907445486754407683828727519524958876982466989166268791972114960982399789822348192648855991740098460498465405990253681030113183217901144104427298206960932116175654262255090750457809120807561034655451453864322844632244133233378452859573897276564425649519756277806093047454369690156882470039069771043219923680840615871618666272694291954224575122197797605678276661631337617052512349779573742847489471455884958156131107719386843272949723071202622684784271375124017249519466725220389706015152496349467990821934697059924982864720059475867274001586227805306974292996688965631621227701408819921694665046627461123826198200152728685436210513696265420242153737636657090353886557508038232312830629085781220919925236295385036749755608100272041316541392572907571844955473344142677147083117958201493370412446015406034261838249872435716973580723589650713024533971587982710957382955641223305655296948784789623764967182646493805197744688045742820712016114392255377650471152722384879766701817560498269511234898525445833119861092131179104696674348760454750472269989111008310968625518089153818354910961713778702723619504335750823260994323222685525544655942487668992180605915375019847189898990509088003471848425023382618773791746769172081464111946125242250510746437193651016263794441655574455424809752117812463820781831968055306421538028221681462221933994372657251768013656866158966618595773456599148687006613155368634287902653937755276951498368689872991597769581872412054232157168343469658524578725891502032825147357619918922698609126141223036249388011883388121469317863866591832185812603697079946341080291492566361127338025869143292386565499800724733864392518845500395362454221825193464150495204588865179599839709635896889335288729856429030094778380757835122834618109181153726264717941890815999600988508250290592651814593424945473491536847667843872438601504354549662989284743224666283395475682219637286157916304251420827109672161073342854197911605897716781764683244891095965376079683298533415966596437788868442431139066621034717174959372671338279481006111526756618122172889035003351795135632262866439534956019436259319026131736569956807748259324211550410253673767052096173076516250298489965771599321318317304635956543127154814393018518825338871657752319484664787262117011212284211064166593739991456004605132333940868474015752867278618437602476015396021041283736123628273066377422644640908199526050101388170948304378499163401978916947046798312088423924607097154982814234958993302887108699943868978163183688979641520985814808863438775432028960159010186505252976392359630008255055825305631651307890939453941751543074758327469143687390189607393008472995224623219222857957583979216529189097999514093090836838499017765549501153892910390675628953712508347323843113403325783368534304207167775295611398121760778815474504062991786165966750849235218551410964911858839739348556315036219010617665986251016359107782404789248641044362534072977681456884227084245070526433670385336558250509744674475744681619502623734903091986432540037565747389538001620001297587142950577849369987430996609098982829480898922579725035557050704982855754226988973335843190739076476259349033175373721393400665770507161184888356949232774042527090768163263120019316464379021925649371477082585316688323562971557668544145595879508044337253545312980887380392184615288667015834780903126095611646978277095757081693954135021554390708709732658634135563750332334812244548629653579719769437650566245823828129611835476074878941996435160039688869396291099618348262407567160791385348526406720401747552065094374387527780788534750428429586175075879471112157902100294757464466239391268907917920806329853829849991511817502476998614148018374309270773408916149270928795026540892361491992665324242495247830262039431730655422938638126449474431516078031638934718429133186198422144638011465276096875214153267780841408293060286201646025517457298887412618939078906504785823432707822562833300778947210113068097871453295594447183676364096672188940164471957446067361967774804306089057047537828640118267446677893083704075226116850799974459884333498848034117637031875709676504659886589292547878488826811958569345311330159793450039527741314398602897026015905924407862385455680793073827736278497099597455741909548874737056074125782124281144086615265411990649002065682198706320571306511814005117539442501146312656583061340955242332240846131252690257779046260089056323582188457445336801241821340427503958329116282860156062749053505824883055491002316779216551796085429306875123322527747042185815637927735382764547775795995293964861183961209268551728112198815702508764820281567593640424369347668339024008168770252779173665889987953439321711217457969134285389033883164847968800253642879546040623918395621580156604460859489324422475008351518520290663045745387846403203571464007617834841264950368820177653434053202752809573930552788615552666646247686844688794871320716689044106160732952294652199684157267838448096540130752913870811974030128173790486162202000937624653481681583268135290047469719300711720147775951087512677980008001204199216652444274785227469249744084193730344474260082229294461365623588958224674487601633816233273256599957214037146798455516469708093606078063138861133423569896144533716400875117543514994845302820227651249894909628406130009004608834176324462898896919536301131288694227944782636549768566386861250170526279264856417958047743694734884788431384861084148879955369422709995620541172049822381846795808010076155997171061904842894071630289247305642271920898934753986538091967099940761588201018832612249585384511857487114162086575803807734195236934318538768466216289889476629250315938993968292535458645870335792990025555072443028497094732207210382490705596109668774311392397153151628526178787943755561328998330917686636935844376479335116647132026492417098486776543904180129175954866531157741040512141191969079889789341245592814032608022897649732796403269513794551283065035167969149853931766844909243949059041375798942323013274196137328010039510055783153066442028251331666572359223989710800086418919153876715060635075888259615387890486006007880121714887573009515124332734024648920931390474716776575249738783058703044222056575795509990678836543359294813430821641091617267639271846843741394122833528423276676658471936553298095525742346219952193919233312177490994401490139990083838778082349163883817395441994908178465586717714467442220785962878866911184888186554990523558586848056983257137155950539451447387138739259210248326866991270181359554603253587788080624492165885226703579615723325076622713371979100325325664261143605558792290128869194681577221546355508109906394734335878999508547714107087017371396368350721609383920677137717639597196328309731563558210169774576350686830295393751761753015078917664772410880858922361127722583015174426897614122226699380890221915238989530116161243185280824568346382317853939328700260573628045428220807642271298144045833533066735224440484484564584878252141613435997881624089491521969889095786248607595481193000236263937276614532244263108224560255124765409652688301608263086831059640997639642430794367441706384638187982158790260717661787620687417200335916301314380614478721839891901783661349420798699675713437245856955338879766871343421953884566627535782466523069325979978910400294003580249892918745677569832333768668779563189028280164516987772021205175555536026415641308441855373498317099537432084091931992302003407530769390518712649017537675829158288084524183006387186391736330711270102086535148504450624618221181870882197601061253755447006333514806837686975549680647176118026833726687044873788953526404386005527660314501535253856858372162979776703418048219875899553017357030177507916139258374519861871358997324126025395874943797922385506972577478123737903538932450450127457418184955387533682365800747579656590639944631940832525332673779661670522560057214325609395361620712256865735895945462958218053541638306886441137117300517670469583621949010174255607394490239196239171922543957509401386441282184753713814030838596279349322286036721389331409308499313698073091085580642127826212579704777595119366400270605231165078327344322086164538058937289806361355359192087690137104446358293698267080950444830600692685237779124919796569806940603900158682185178951951205099365898594492720665335101653005861973655404530432555709240832890017496570523625750665033195441642100639487224033641481549452702244114625227983545365832604985775763086913965656332351999256571652386359338528867208491769234853169435286720011814092835198068411451033280754308729819013121171458241388354654054250401154633578439045503390669788275115922867759804994577479678578742933591193612157865831914771875066776133266565220352482461870892160985012462848268227605556177695874554225238437054404371856779651069314678189786318823800730751972246533109704779815069586766349681949315672774321086334657746889603909628500945750843587548966863176014338391822055465503852546288211670939793947361506018222246109309546264890741836290366995884878044327734572789745858607443791511555569068457950234399874383241472263071108196455103838268287832500302750594514796898019426013931764406787594646985505492627881366713704503995900899518515926716679951217326880073790666960599884944726076210105460499111416815991837704441666707869541700972181892219783179769518688056865228066256412658542859740364805977849432374394840946181478656594413663101523551891777890085766153703951443636385107474877800949310055631302134129423647162790282196474931695171636361300497388198573788798732303974276350180704175661054706134217997323816517293745213264152209442742582110669289455554391189639646423197057612460115731159523845333257812706144250073127756139481894973145378386485857241295174231797571299330387762268852440930135032389317962398162184394942397961433340467864143283551950979183237058420079415105051888599172277895783793689885003987531085956402582374591548324660113359766414893564454125988033374166777345793744946859765880148510668826987188561400841585963488482347027349212140442960562696436464294440639852939369264312065451127056832521729345655024308317732738927852780601530479915634843745321005787742590681840498281489196869724835003220581889715427889192196487768986962237561758783427816381179183650257287804162455761488626785095272250244008144716351382448902158308951880668065099146742513795009862393664068156176619100002881461831288786301604513247340722454760621439227037224556872171357667072177246808533278408431353647262930376651337137918383486801887669357045591033602764763313708946782613494323852426899565019786339279867577500817636082788226438369481427219576371309093219540612585353393897510571742977694274237233897475463543009554436805247688064258944238265934643562421809833096539317216859410809899544440691787077439544267782614734625000068502472377187680543363629793103259269838425926138748474276125635526110967397832755615864534064565624805998909341158091935987298055485598450040679850927028558221815730764265102749272916124026647319664116787264739196761251634482785872223457496118002412539231079302558668386368748761712088980840955058784572986019619108272350492282186278054216647107299476961406496530989729957493996187286131537649287752610487222594717245295234135496642016305835450599837452243909190350053616510847984724941284079828516469251042311270714798334315667711304514782081198105552218137966903718598403773774629418433940051491329154893271081287529062790971257007274820259913832791187493463914388081552341485372529017345096330534384238340813016025321297434578943305695985936967138343606984382217024945001982777143224649663742712046752037197506305719647139493113596505636708788395449997014023439094168284009771385314487271846641350541703139381279178984508916087699209602601688321703058652375486548147175900079422234562415469659442454390102973140747994755182837180067789386755769052241672250871589302203520892463431027689463068354847713824719496829021098196774715072421521186876406717251722652677071815970576958579879164097910277397494013237100604487716490902158646226347673188589339883279934095538421372494135855586708915039975018193637481570274196617612033653508858472536470919634928778199548945545021635049057289526633095139270187582113255646124520643529236444759555729257973661411910360318909310959259412998821702667411286874094646239719758114558462417880501998122520899104885180147309126166594968073284714515132656521338249875265278420259442173073059019100351745829402497711580172918896480665954931154172042187881079053424368856552419906500122588925859803891555846583889736841309808684476812212566557052132288449017030782612342439930608779069466855767401810142269876157529364915966021543761334535278226951516229015912471301266462573685187733608441153970927855381217246340848919528416430200144585989303722996133809793207297232806280920920214500221026692601181386699205454265687017881317272286291535306226260699347302453927085995980945263380615754761841628270888051554827672162709297425616361400980607896583301845676177407264477194117932777212690799059160180887340003869234348206767649240358380629298947474157938558815923773726850825439347469618101002603257263563031064882336857881022873739475612764214347020258114781249332522720166475395790492916850910754328629682964604115544475649041073690414210327359624949885292700188021507136710734429535049476067427001487698611774068601395309721900598725092690366811415786488569648010880360305039565495513107888748124701463103089169211963211375552758203515885366159568361620614139561146237339778005160096235081741141734665038572479654113167476139208908682493070162147413900139678218028110784951331846787193358948322204131083318778747200909598081701048819854905788386306130846875681024889044035907671651583619174692933190885896192063614133431368547730815959180926776015253052298366018685303449860930695373211163734357507358376385947933909380512170903118236374818392182843874233123819397805476582013328546009539536173473107413722454401579653256198113493880411497272560008778671949982177684253441209124238295497657757693608205970680906874627506360189704001582811681719922941762986948880842910275723347703667321999103051297556264893569247963353320996204546596622819492552321691889040126540769881469902239293438428687603711422617014378696881163895848395482984752144058067295923832252029149163220071229347476215524591739397523001850530783631431002456447382083655168600917503026110624142816468926210247241611238471110357075172873079186661325849443788807611681436641608680009599960256664421801593013445926401117253558534264557107351017735968095096031596208704334792891506618050344903847383610096910663055900561971147684956268953944937581192812896581952217170843699663326213364141822456619547873848612089680904360639463902344205724153174007496756695649512166529187620286795573300236911942994840770818507278643729353150243466978978559465464529748356520830165498123938365712829861841266884060293549674331037805188778442873352443010058539363712783335599240255869039071269806286819140898006319653984151143978447302550877468434088468074319018273849199999616720660723491992646319802696942771644180182587205413655491209628529467640790990275932780396121474431537193282063981337967029699274229207985876602944455366330863399108449925450421290295208986708204721010065278903701865411195142756831249780150570582435380771300387074462480679868838497622848458539659630505422745823188110369832664137486621176046599886944492548908412071561115024735729019623101282641233466584218449850053449578509186153775757438027290146592548100222537111197057302592997053639625649542120146275184331303404090438888748512747481213084207273186433695298591884967777563952866903442899022706581975068310102477742080386479735302618937229669061793655448103536206236200615935707323756541749186996755651345470052541933989694850469549994952253476196219910119124261032219457781326133189276575202865739343773810081261187887745588338249040251840977123237253022066126818187566298877086150410638764627121267152288430362537204502301592976535435387946799498025909738437987316050532387422507444600877608809163436451152609006453349401604833050225324963253326833955604553158715947903053867803182286651401660717697701749906166394751000834720725552517531885902823321388109560606275934007460921321224623682361475487659628934758650502706929396210635456273235844256803740202307874297997572908008806660158154760852731917518410178659283023468561647558730079821231383805703936062125217787516187401500243397100643875554365987222681783989294961943609778432181358088410625295738567446916048909854106644018427486037807357777927003835319688046494097355109763375593769897082201325472519074560159616290338858275864877989559300910181482426647282792569171453443782379653760514606024196607955267881556398906415921528843934377896936297536971376197356518885038140143529125931502986521501229112166373155697994881635630882357253160281568599049986060978391313032189753055306671697338533041446442402958999222641467874713281785942859208514647851375327621289187897876526709317635361007634862037455316146368439592997886794265243525620086131637346162118252549446488754228908985835583343149656509804785185395705798600495604786704257989014227975254889725195837973405699679920735683879436232215989938206736724312732704903979839795508575314521337025303104050612207561588753014822068883981616251293757968816883136023861712741325900646659486324947302808847255289629006317525972039217408635472666835225900212614037853858335834459191632241295620647812182345130796462221240804902722010926444705615478070833638357188359842618010710050146965096890784076588763631355625472010173085724350574571524440288543486070001158616821864507080785253742592843446280831562967315508448603381869532865005860632548384100655808020490828028350319676939834058820298151949774124665877937389090783121050923932993004431353963550021067444647431883569243610071142200903958613996029865141219047005271244735888894429756187605154768338910611155451089382639383436357697467805377185155944371904800842992168473390146181272144205171820139652903811241611613761244393001268888625281398748675395026001274663025898540448980523129443114583865942328312643105797891635604870143492043446631124763808810692350771510801190934424999479107755848922643964608037609018408108766486257940577898523287041324658054617413637557107880192505143660896405711854984496586379933565209271264837917371329860627920916834491347415276567247101777174398213515379544128128822909142610095908166603952581753049147590265648029950371982922613600168069084814718392890208140757167093193767204654813969928565976331501331741150111258782283595321837345269106856834567208469917292079235697358810445181218887066272236297125067766046861304098044540787130894912369988095277006826159259655078898859028978217746518641238788518010258719972084724654684867290065772765132533810449792123526243785192033813216739200950401937353463945228295459996228330263101824790080699532532626747693617582251961192778145179266468730469107969253030330930867862173044962960888436194063051846486227585049853304720509197755697477382668964591088843710694291515807471179754626726906800250806239790090887750044467787804696917919814253019831300535779480442889045514361376156623491813770734187392027849191213427378025882816779741060114776727625978235307049132875027297760667030588941790538082233491727713021805258871195019098209672976723464820808950712962294652978938282917178126485256848007839807849527152196025501577091278977484128423026208237378561898728821075174152036014104991953437234864032521934996759747758588901339196274453504479977827518591326276092930754032694366156249245717404848491250183433092369112208040426604592348355797032433874846903148754290255181420737568310742210991655191214319796735735480210863526889690762174090219323619270415038256585494118601481146436795098469675056107667522363895441058799041375057994014274476467036377903525947630665984462247360262973927180307790448439735562898080451777074468216337620473132802420032272703047121895505081797604756184407521621611044014901430566544940698162848026834275736005364776431106416104385784650548085599295832280310578128632473212120058213997834147670048514528741663126872374316891406836222364840145106736867577125431684144671175643168949512864633982136944661842647026050497052766974372491988676108067055111914681131685068058401875343979562864969844294659593483952503404715134519104354333702299323933751931300491761361814167476980293651816374092763976781966918764743303048258586290077294587066350800237164462056359576935988589712779946537238170319589148971495763555972345778419240495922056914467102585773401900111268946590289820308268194755213867421913517269613159238850259187837655402141114129464206289365253866214893292445532422015733311647088507719235397837442954925025104569113858740985258307420338618771412836181627009712488105019012802709757917235735146403207202617537055784879319112047194127969613675556951305729845628061803166999949779091468742365008513532794694282122269472099232235373982540701496409061736322831998028606399199535732312632390608217099668823924474668038167700765980260078874376554074769891428967594691593260967308855158977386545330973261016840740845327796730896242106566208186305103750090390336319110529327628271248067130143308630560746989627547400934211189083004922549898057266059473206013861498155571617454408394649512751943681357640363428066435683094551504775429047306700276401979047417545039595073702762242871313906490851963194992548630301976386520090315234478778225481218403928159814804705041952590058912190962391389729108044069255549586296808039210998245005604930205845812948654904418006357008511860110755988081409540460910584252276191415270615489038663928338992003633131353069421698553270691564814809035641095739136395024361770370722611582129783733221572775016144092380027485945323341307975645532645992868017136159527885350966747686694760323052076581895353850282262990886616764456577249127880992687928494596892395032854562737425533138124421175803948752540802326933544650987667770689103853754726213578912023777759221309168015214464049247348237780662057325668525324769321220659705656366832091044916159075661362518412458307557011151031454613582769812760773507809025940832626298677142098064938357373721656560303184772608261915784695511051584549964253647064425071327502792515424690108235446990637384639109911878372101003351050939079075945077118377878241496450572111375154485471414977893711379383590673066014648391108870253148191750373915197435183510648510206710979904358495001915354926135646301838829440861333500253379487914093648661692932933638973527028456913347744263222661302783213437563092917043572842884111538926481843734583837280634836995439263656583006743494858709288625929575966774415606726125674701620219083587641060023239974314924391702160657011062089355382320356557165181977300664459867695470740857653957678186296628127853674829548166925040389837841265022210792914938064634660981670707131697316884286869886278218435355028027331226645607294343409793808372159135694606452823073726289860272478421905537072706786554676448817376308399944083965948412910586043877060635047502482359241835316229478674825508639128685854751913793306859024787584756551251401113146211055428494761314483916916152829035359372366598443448072996956513439051543429693409176886547044783086085509573520210950423945722553822068102219253854376065203464157435554312684184440764945922460030118098955768092683687833617726162316105832085038368779960927402740302729709813024274492945175149083813730211083340875929317561002924008715636167495589378546547338264554122059680626980738507784341196840790238540248355832907002578705133759557064402625809030346178134342593213695583813358510148098987069786605673278596962460177110295642895872497969053128744181264842747057888493559654245075452793473503089944497343197441235023908302315509794017176370584970419116799562432736504885971003635818375852498246651673889783204020558055770750382222645865082288531132805796279086835739685591473043048887690922256866032447682304733648379074274311537536095593222626139360433243683690203648374100422611302886608713222635636889128892359763957909219147305721776140877391946696329464251788395908032159636216039341572830823094995925471035649606212119708212401034872808970043909993125587161542616839837984383238374544148109459805740569581492175904468777512250621151612428532267373710742928681363405885847160003903432296095219910424715456868890751450205545986412600346185418613057525683546654053820605873338851185212532863217186258544055397753948620930405163238966974166616196539761569235125893166143597069882856274990904097349923075960570288318604495095514942978519503539473294831559142879100741205453736520967014759704238488821239312809529230915865161050768967089073275970613789869763499353618978093755004572629244508307971484718158861522312862042566885069981256703049867496248231111692461933015430800320259938222252286357225343063643631846082208753414034298328291633044801203580529058398826606372827483865806633794220985460856112778287841989680094796790885518467366444560671594199475078226227863747953258249504782266470701043606258301841772230465654572361449973009770960554316792886368755532050351870365682964798271930358436904976155708028776368440151805505632556230588693245998356152285607852698006500931898026260410617792974420048591573190429138270726189916183374098749539440294185277492714602011305125093432755259776387977929699681116820096497452885478057647020700001421182680240053374668112975252068949182887792012867138135968491435038372683469265724245534954931142418701332295400206279128902266092741724320242650605402050147728343264764739699072024014679432873925516711029774509284185669746261233138271616063170712114550616256228085642148854639428212547743615140796728666068796818652044646920641528056889171548719724947561569084535876941641760445560525177030823052141628032736225984924030238866481332199288271844324515673753797521781670342252405182892865339079842280741621209898992443985742746612750195198820194910166722022450545266246989472474191930576589030315987892128580258193212430451204217714834210700022309252456047953581818601458684492185063297743085860266188401122228334692035359758804789716514515368976335920155883761517468882497213140681122873177438968325312610476612494907720130946024240975943666491576833455583860123825717338719964674935890101403983499315220220927868480003018755101382219501454759486667012823722665112692268025789749025153977915061849999503682170699586209943448855290174352134992867395849130192112978557381467599074003755968470865329481048145792769143329097311587844046224834268814370454736665870371937358580833214838445904761708445954313530366473222270960232144755836854719146000370433584711861149123390483006492450966317113614116724776947378474292348624809135495163089540524115043793938150037667061477753342119500694483427590404746692111262792120279381086278107653040805788956132503193012082991706029850101726092533209740311946538863739631855742243174784521493228086244747871400015023654947970765242337383118249077998750383795928594447182745134011402289545961610458254941723138427266315437176519907995169336754835418270731024534886667676600348800825006043690149697728256064827847299647351984188393368822219610607011787678715949098326818906932979679246058424839512626752500497397522783315561291779754804562672293857356030838704903079636916990336765169200865036785823672927256003288867105230968048271567164400733795287143311672429904708068553711762150687421070525907464991994786396308539056504143878206477089967671937524026639510898261192996482145908220044611491418939478816405690844649532646789955850212676596263414682951652946683922836768550636431810893479163232792621202240016185901078188266354184518910013844695226217767263540005427449830322004562446443297491341854793584501908282273340385845462883284378190397087353943755980532226429062508871982616497018927902111740493209467143982599148461372799698211941058034956766851310540719207726610181750891112765736026796934728760276205887674482429948148479011266225743229348687765331416739009140925035749847237168888814434548923082961082083836251644881517653115578764361475003272006849345621809527240308042952230902770179867382369319494434280959128446898752493473853170181480092080881609454239650264918106437731404275147349242224735132523161348123726889446721634546454245242396335054693095975180545720460301293767646638555188824495733102847325710537655446984725774634118993727783654144681007130331759517846769841946796223828107831221308211501689569546406647100495440097214758405944721167979099460675391116428785471460222056392158021284221677749579638890653639509672079525237229944310427163230439318279921291662041023385801108050849012223126312460326750784170442512048477557315582808268234059338288010949291990370774463368348268302050106499316729755708278075552278890851084010167971728415357161637977347635479653054341900074626749427268907849984217670278593108883524244150131410890198842865344020991833016482798102764988521045318885308000512619765095467339332815137661402938931175606823364006460479052208739664808702023847289538920172056749409332991774706729315289684712675904850887770224710511894167444749836831444034751410313631816385429701478564986256767224054447289064655974443777608173172920867851229318565482468731164703978036971429677402373871154413325550034101194451484485957693341457494984212221486700747781946882539422582729387914887249747447308326055947040149893940384086522384344469376953235388718844893833098916205268366879182312465146730299396459021274159427127846313510071401869292190264638771054547876112455029142925550954967942537709803128036159659345797505382257622438801544804235296898951625998353723522837358132182969383720133123528513487753738526172474995611168640622119050413511349228750010529530313325708053359914347111825571769505708355983018512066922776077996702333229884721396729098076465946010626258768590079150378889063748551450102693600992921516054597209081244257316037692804226940046489559826889429522388393942143845381335505830862323229938568939328893501135945036610984398955648568778757813008702322919922460655020741745929279557479383560364412112927803023854342228069532977293509935875151658183218454505710434546301292782190008706957521249476256688820949980648314066581970006660360802952207869699014878714263303654302663184447639474835852856734980658962281567936269803030424052313771942402149616435684487516096131052822164239943570096181289392829801338634828225457916411817009304443164240488083990478768256686553290671035499542468790566789031475514450282004097889223369680290809691229409716222395399901993115148409246231032092324929752900602174788106526933024292956844688930585542023084275820370046535497270456728124498740206610351458978300093690629297341007793177084256145730271285669183912433106538999913141390098723084557797738712090826294882983513223785613968067476372862197542285095486342802997361459020477558613073937663487830992974598791813625099289205679147927104468310553873492248288836593355855919676393295097746544261497487492240356876783260878455514007977917610991708851524468292857002173973925714722962580324594901512697535864870674523362375943657270685119316460811168751140759267257709076317193565117938955427866284398573187046361785593468061365506681014656071026672295221767926476232366184149483490707757253459474232252025332222762009104666552131508676323178179410510523215611793712283790693653407010071617261949434174213295829174367074313857667677461454151674379423165111929080739473350403869725181394255291051916970028776524627905902513633048510727944822353079656451266358767051845158329268681057411868008065716210532360157156492768927300353639218901667850335533684243727604733974868029261166878582031932365224711348400491773778086907744669167353037689392853901886152215487788158924962566682523099198193696814357596004188622197782400790473999136596164680314252809147344773704077462795767055534335693458161518379128511893966901367948571908473189695639805853487537076119241110488773736755642106976125299918915822550683480697083654225383618606052881969479239545298345752440776634194209808819076251663092187772085391774752316097528365361094125660049079267408387493792469984832143054921110116132903522844866564882210948248194931514641385496907031269172094328621837472689198058371342929400074981410766810729832314844261065837038417862166981215926366326269132573970908454911555734482228803637525276879171198289840578223920577682665951852052855495332299958244084372199049493458112938043155999085415480848965817183610507156020255489738311769189292160422306258363845985675778829837528679567727071237619827794515384888088796986528896580304456959160022645354867294015971361253246663501274354347865318775804469065462867579126576181901233736898790349517616885593422584445524658791343290497309629946565995833189372093809684296598693112910360440007088452004965442930853125257290596113503578616267056480488487435059150662980516823523810353034286649375205620241077502407938303658488906418723347283225901851235174030982669733560345909590083960812878669728783666317506681989243222563697567224350732800733349950162474547352933033448018687040034861019724810880647269966181263971539218336517674746024778022301186535102121171283727404765733116504650522403772190537366923447124369486045071455523664538665695928964399639096329676473329271815427853249641062078227587535792499888127653050957132422530440306341955827009720292674321836576188159219174413440566668551399912998604400493342644187821885464888517475316688378160950812022411980598547470974360077910704373533778527103794954768028090591423929208119652163697260807345629532253762000208680259050466317957455736040669650099164694867380783363371351435907495299023076315663728992787090817103713051370582148147177736139652677559932921142331566383408268287830917684726880778532616749685744341095897714410090494061834979431118302140126283708470765986007716828941644853268865913106217408936557278810993116216607296893316301549215163665189902962576872287621826432559086148683703942709483412574552940271615776003018514646120299848112783439454415944421824329993033108786022222181681054838148223990702082532470054957421880525854114762233780673775636964203539806596409787492291148191972353148871692707666857919150645852211052884220752668914663062968411078360210785689306989759395510537774929313111811800399010625061123020042175916172688190001503775539489903969752778704096100196202859312781755287305997393077109226484294507600195354811853360613511531561302718131227738711384830047065313185706650296171109168371191669655583687944502304097090741153014727742749173255139930881492040008443739995877036973404124596433150475681202693197115746579552962300316067819464581936458297337111040984419854213057634165832297929081142583262078607588833349884926556728634528827110247195348181798862547012506082247649710557951018034119074432249244832715972820039811273023858711994568410127510988036403194831678179283098667915673259573947648981187721083018744938184252640184877429850733476525842889880559746405607728624414202401191324542939358888304645121221036734620279147550197053080284456722245731860470789946091772426018942041103639327617889347356463995495650532947022631194660503170547340868052373386167710490006025469389236329142768650754916255349421971336718347471166011485355927070452012220182419298032591595480937348387521709006023756627822541544206750050057058669308780105360212772964859127165571921632975889381264714933828515102009148048302464031257301718801803685257925674947638075722061688703280115873282049247386803837182238603996603224075887752172949606597318556787515554170991981096933150038013934150915447867434247465901526360574534393216166845131842790054325034417334388494821366125386456079744262374208992727103625814248279735983892897311092695629144663499945215253398472372225422117401830124386971547314302857692359541235572391102362371483304764378557862823942978089460893317414612587239460517150081726681399387908739878133274873079304837553616577454896172360034652054357058072312592962062519691666211004753334247842926868724434392675901400875065651940696156034357108489175259489467085320759430562608718527840208537785039638940961984433870335233147539970774341156227060901854976203017066415648067062560778306264934163166546789586931130624305299090021792147278530396364574183456573927667184716325999395719467399219992834116583545434890032747945597370398687422710656900540088892209018673983240909868779204995862353953606254258333500349989263899108734920696572917846759474554294654404014812374560947365708241425032278130401443498758252693833804567585468816574519646081102771800751254355665202753923117889333193163651154755312061342183044379298139968022614983625122386480175650008452098428027780477802326918687901015149215815909219511985274965777599908435279677620464345230010242565739567377163533509647197897887824236781529029465410628194035067585703230999316493040274948977302831048163255797785550322037621495674350831832377451286923473221914135301125354709673490711223646356421640528304083318191749550560039605449801770556549407041580492114388261480548398135126634387861518710492960892015441052861989728665046434315545096541324511270185792562544150076329458162590084066945863833871153195363032119776697325359930855001635399517945701722913755860169815894668962640709865148173783701607994281090984481848310366292158205186059590079503898517816520390086756070438893127772349614791194726736228165434618922405678896226296323558954261489152123637559603037599371734658524347791179299960053468446869310241768638668018269033658634199835883539154982142548284644820054753100213981268735143228655265085255690199532562970096446281305416256208568628926986443931737016849651421927800778637874155363491753355954410252266155842373376107525038694355690427048243227371551578978006886712282183673937852243449945347560745433004621336862238130239238886167908151509248447502846040275177605592768912482391364574949634740961709999932542108059463303981750876645329264866977469923178171629096293022939608119133210870961295940949736763109211545340297625112332460203795872708988770705181984304072615012318742246639847360886697738194344237024923533758675216223943860971968652960496743715057411715473337299742548347123580744694460402175665849188269908541521575415444505041807880371997285871927226472356301028138373646408588389518686786667594392800891270000746685782734168689403793298838699982322964088009294695606329273407513439488695662378719833714218547215888717743365377190553486426745538456705739652523015884286182087263218136711620196964141314322833591513280245239026523385832591266716892410763535833082886243703559164135217181894735293325369381257863544356673716555959306591278070544948987613773974906032552362728810272315471416976952945480202802557146269436259114272152099691695599497138000602512726805707344601890108129278456809074061275707404757868705213724232524434645625095755116139615009805181055308108480585446727539761250812254271461428233873292669212810600017737800618467778125084671416058422430103961916088743154904474139002759748389812196857498276135905426433158836880464521117562703616741500955787424705206864463271285882533166663952937750839755108383800288774220970909839328910351257311014844814660528368694816912444555621077991494075987702643793124416475707816696641806698617977017232115785574385768768969111529147238439844005974005089430461732341520756378540187825740680190346299549385682826285890660330541112751992811713969017376616475733665239570766733624741394429105477603437480912411269769842054848034138373908570554000684468465182025223823624584055717582087522433440985174273288027753491102809569233292949532821922636898400759664554942158128201159434544261159501082568397937645618615448131844848903984662399295098049455050740424913908043344647674063392415336721754816999841754066057732328674418144422246725649906820080512981482129622436922453164216839693326380903214527051581926683340160035733862424427158342260445578489484539928283370714434002831770884099786126918067517851689725623706807138520381407290318906918164169541452642392873428247605409093663515242504080116655748412095718277246457816499896982362515828558863361872410133149758355817121532351959242476820617313397684103471451029576769039052597872068745681931667149360204741959104313036488128329336716418455796967095444606875565277673280114705319984318766340981460499177317807161249817311942425626707029916156720558756776797196941944047513595404729230562764464056900363676083110264589616379181713321467925470456179761660913687556423695530048227248749118891319132709530169488690150574550692724361975721748909543233307722244061401829485835973648326683243084863951119620066947783312031410469093094832749672456481466599565436219238615290900300996489565051998199186462117570380456658798990726906095870349560281498523166286363915191382728387959572807386730010671645658026711668017757055078449355243710875810480105832596270919207707210792596701789741777914573691135986124994808702357744600220800054447760615671181863154217289377193618503280401282594906573114057528849398141799508321201198483911752751462733786655240194328177797042444531180266031057619953789545977426201230393623493078278940965557984214938281460746580329907622470905400571601817298121461002501795235458253997070933178776731757057338380298846444464078921092441238665185046055389822725139893926523207965633144790119115396480232168996332714425339132504384560402597728990141120276037737548583503167384535923408213865125508829085427786009032502999628352967620602901467379812747036888890650041719223992532958999993034430968713622546143190621077216949733033970347183619828881811263029964781921373299663805968642252952268783647799060688201111496868181096458688121796070371246622861540860475274609833177918008679188849588045231916814289960450721343488066847004722744618244885508916684037836933613008530947023243545927355258266941879747841751046010357891018920634934319020732022112754035947317446769762661377022270717094249720213102422538817630619986027270331563643907997747153693830192072989933776558089831771735021414375850360105170797381035758204217770687960802555015608966866022564475389543229660971404536122948472812063462969331238115280484629538069792880874905360552847679458128561597806782861030577762345962029236052851550339394747429313852318449198966713428131231042034115951530438205159964777055828740442775426422338386366548090705787061970937261681305610667408105741593480232478693620574108966052070094412131036510907709215836101179360103276992941382899924056494854764800610729702674991216934980868714996773396902293750288104199396279607659927580940754047841597238415627910633734431052725749308117709817847904904210437304811970686261737147238802140071110460946556966019421683775295780825902918519608288221883370177136568584755345071245783401887190491358404573712533259824947555234687727359733752020769620178595830513169451874795940484553742266256532462221211608000213844615561604250827403125472500382930290072351070853266229021962486131874122362878904831018794653642598064023995819441687583122434487028576828134231820733589093913417198503149592581979247664924307213055958117039731992091184435148431107265753938701232458655618787959489867096974293226415438159355070162323538214549498436386549668924371766652055192752473163130783508326783000005742141028627375214446270747055694795320747385759924962258283628341633850890434496554410132324353757090194980849123978190993420422250299762467849716705700349306527648449439149464390884358475478974492631818691408591480268773300926360023224712857346434404780910304843945696011476492116855251750090706538535189589480791762958489556278103051098775080440824549339254542882059570685731673443417698919034888166790283109344388556990105810159833409303207022865134463849234479655078413038492335997218508502374205286087883201812806849705244331590310935583579786393269184614706417236594585955769948636446461355122642161253119290446869271804514702104649389302706005051566703472562018577347989668807792894060302966030461591959175843633022722693539674865095745967834962395504504861084752494831430600272179864441108537626105496883985799887000659519524232611223745207616237904746526779568804254559018551923201561060695712941123923514775118993678921818414818590210717536200221323445703067221648487134193332359056138199179664535551925845532358028174439927924481159441515935008792757136082810345690414789973073664837178158408462676475366802004183148299319488337677361053160616442949483456502210779681064021402060623570143795655950179079446158076727823171440537953383630131291023289059525383450243444863211801672968480013643497242780812196990583018090390367073495053743925465480650768662300563617235538835080605058249805491702354339046866648651577003907955760028615754939917444473712148169204178153248810268273218179979553963274608621787716753275303566428367817948457815359523839705447025094818119974505097261947985379135341707918190094671335245170007143819432267935614200841707422938453712588638966354028840661340675682255953883305166715264345431833773429877463669815726055678151470100815173768484758968509881846068832032784277186774499312492335108207504296132857118371445355540978283143201028660888994140371750315869069081824397126230695498728680367265050905540871837269672111217692449933039943908856019245209099327688486837808251228968336860491213626265964500666477980083176036282475665174529299205738842233967450094277820466131924717094350010049224631349077614439381061517676238645505218119091155852407238903197933059723608856873480035618653429812879973521020788951524340428557310432287883015003732776087078949744779719861522146632377291083746417038486421021195277894221928673690227142904404050096555619611777159341104121848382307010682088797427814157585083818288647595372939266812268343162030088388497319257225761006243878656542847091036897889652660077784423794777169231401812930957325787704385170690306184147543854183279737849375076620101346259065644809795064513101027142918929235798154221851772620382045938203945091611054289966443220687536405811682085020666517921866630791586673945267529940160598906324939533363956562407806089932744292366294224163932346098645518704917755424710149098791920431653957368380420120396328075111322678850502602646241628617929865939455934575236518133146938795428153023234610501907934203091918280952746430537892563060625797899687492775012868294889490569641038551149800178277537680028319269328660763062735053120633389057800301940362730568296629090698435072210313596551593352876259746515241904790250719759524989755821314479658017052096463480607264353019633304759890783507143334352969057927945180099817870294685425645647316853506319768796437629314334990046792856228225933653456534921284577347218871518436256395327796935288280627742624269382956321277126315267074120956816111043620645190902425611529820759125305990848161089878858072253320071331579337314475358959738385892133173571194919015325485865911083450418917790918262668954052790312520089502844609615750179107496816532508649242741963813636567159412023833886306867485312764817017346395151936904863519152262331499031752405029469176128964004938638148803772862508429847028506608254517584679978092471429202897840259568509129131763813917127636727765234588687954390034110760914167886057826428149722449455338638957893345158521424881290414071696754422011196137199902732496273959454981780629998089286922633133562965092626672384312796152958994347593056675254250988873679654287492428979169749924583009749447915890941836103071738339354195354912735331931147404358394386612234246908295009112333572744291198720487589733214459328461739146718190291435497169887095634817763059786946892787921415091432751984082987233868373608381157141151449070973938415962612704864417468243639906332710654212729935224728177164332287429261497832941089075353454848249537809179055062754435593117992330117650352165435753267814034413020493299696271544032953607894659312968362130308723303071335271711918247931804866684070126087177176185197728439227452365355491076602465667410735795768176169078448535887444826769939486851309982058509881281043756964180665178786190436600418459561166685220103034342514308699557322497018288339666098809722028138041390287920833857389030505706978521068921741944610998671305068752003384092605346978506945559936368414321927345123261120519255170669105674553016579117920353832319179245985051551692743435668550955953178862021940525957235559825957471406269628304041986292646703063182211773272730528376376470506185749465737739729187475892883437171810132873518900665143276356316089720528679980313359828169413214718884267625477650117925599060144100436246662962886400255091469281078992809447840916205453434973285029957771958604379008903468998087365492098726819595972794935801272145107275162759660290766293121312579842322391666672831962774588166780679578887975686556912002265652799951323574407876266354302504980843398618443233626316390986657762797955070745735015950147510752361720988520482708888153318316718172055352984777390028383101025702168142564065725240618425962445215413201615387458646174026277049806382199375414328089465794641306333070194219721023243945586332021100450599586793931890950762514940615262489916786842347103866329757998206036342371598726623162219820535848298369620345860579850462936288039136221702851380935666526248288667227376756467282199937793276936980505060351673197369203136503044532619062039699331326668499711181450228954855789200775803380772318988393333437410666617920456523140436652441548461471907576498044103531288834664727290945164237393755532182575433975109443132410944194912833022877572563294931068719498368166280914309018957801089595313276712713405417969682092828891327328395165245633068364995561123081477859117298360203145025208507723768436942533688138653271968764213564187857224276560215645891812280041764355260004012103827960376675596932003624172329248134584124002534647261333415279712435423727664064339448051427468010094505391834847792572566319680028663854203070700803706539377783277820436234420128792101378651052533821080932573036803401473007411403754090291891516621949509905504407732915892605466072044299477580574023048557725781549306195484839109260053229946324331868911442077617461524179804506465410149169190282298446520100211747079933147302389264683321138867189818512856854327496861677108124982947199387104604596212078246757105409023852036241077837220068524896980797407291875748778029626946726372707862001808782081103505259357227048406362657541849180616710398279024758523168602583506751992763883527714313848337489024532408326814194983071886435154816788996255467990665575024921953221939092573185595012238148004224643586134530283005656091221708913546139731555680815671555260660157843648772184686455818724863554776201493423796252962369423175667256323955487489127762383827825434145647652514501287835872484321795605117100178834580820122439357198821914217927368594190786705815298772408872982008057883414363652293946126410902907840092951088584879040776253697666301270149719376143228729945343812685767806795843888351223210382330409613265084205654682292133348766259343627248908508171611358666277712694478030011373871544122183773178625364063580406048678895828433428545937233392067718252361333375318360739824823154003871300699725216508818196132400287221266403018102092165762614643003239005102041244128014053081010683734535801881322135759378429640942306254824420014425145634043157375299143937486115980105743230581964054573966346305429280775118936882084729879634869180733951260881083353838920499560783581102571539704688500597266377084928378372428883228057839816671597886877214652368615397933211393957070296460010554894466764030555767893763172877291069747033997485144507176053040981323355690597483244010319334025883384649205166283791993617521704570083010386173080832000184460293551412448646003247780863276753752995731047236638393618079173218578319264683978060999618947582058672915485478782555261820243245790729061923686820788698634627672815239391599452704037157230610826240997342376592387225888765722477881197925040700826035692213326521737991467860128552672588187743334859180613607837234402113064255860992037889508335395892653653460769087250122672219190546246112723445970313524247992732164425838950399123182855837647358823677252334532268693831858609310467819240302953411287746834163853360701785016144698239130050264508305910487511729842604374656011815079319422552063819274385891773439911568556139414264089122465623482405566673462631008834600986577216855311932528273171846491148004195088932740004062603746523370889271911121094453629303753778909588926369182145719938659922554000422579566787310281462891141889545562129785418702035261057419474222313930979542386187618648327369681982677200432550077795359620314430742689280129611865504799509438750805314162924973510057534990691276309017433783697481741131096560316402241332647727070358005443213510620355502932593725828051300688624534600408814647968290971588664935923077820903190823881385062884831397195212016739313475316788946734811545268157619061104008409605449700558654566180925850506253814515327063197759758800944444677400016808157679796672841662421842564978136368997241497224882205581823556321852476760392479435665780398374100450450476993282399079074753711507747803732396949265570776811333591350011481370889240036471079528424887203149548104287772942559125462226621349982209511051887512661579072124039524017300661727492384195659200607066470540304079282239338512669987604421836260111654042127625087501735146778021166882623484327267860740551306662654280361762091199727711248744796027345026726510859302802003275337574945425404442044650010664864421862729651927465950019380750711013900875352682209777170907354084613526577788095062910502255021320529525091304119600322499921982305936456457553856788562684149110752155126430911529992380318352222996348467754587173584872444569885025187031110468683261104689846199690830100637300369131213988172386540125377646697192287434778362787646575956300826219353202188002635157989249681112199008683189897903522851514462588877557091708068628223735159512905033321910519689560439989379803545149004392867326496639675710922712018384392079752326135263324814820892288919807164684589877663207433240096534487638456903068357832975737259668473134380607718503254031317326611100417929644775657642365562454069498082018032460945980392269550984533855730622202333623370053229916455612230159692273905710049070697539482993247963679321630733936488316210564181603671748361684064065885718131707255072256598866115485903305096514553441959660184737720431269708278452288907587453601604605471362478142252647387072160900481446373211347239570859058260054630400758357375072559989525408914476940182278226614418836424694943081462918973325091741856612406630051180610270697099613178223611658362926237700549481183397517804557488694265494305088145028611446161431595605904352392892793139455745671842456010271440616522632049116191261452324670443977595100692818693461938704994013967258714789838714709598657976143407857959806407160013674106264962846717246237236332745121229852975023376453865761740896260008230044218313856825544556800303407411146566632141842473484773556607063222181990530822050489479527600853841108838813071486014561364100348371408430257698983431380507532872773136707120920357481520183262899265863618212892152362416327257421391911583660636839868005195834696718155725524528423678065745053757013496782199763701673182382816366511618228881034844387595265506147185523960120408386907841445626150263600235907408699972720758468608668880443785715157965754558384337149964237431920496267963871913183817921277009923015991859093101460400042232541132194998397567664862328530222077414697803030056982608345511444555524774073829732248251327685752796307532588560849827581419401415194631771048663678390901456419856193994234401419020032706672621660954706453659513043710558694049385871938595138972422685001799768308987078619583943637959878166124515107778041804966176973231198043957504500262472498108762125062688212049851662876536882503193131544195490612485187272049062377990642702002875108915387485250208433275583920764305233218471785583489564368128965206282910624235456766337465710895205533803131244363784176098947584276068851727389549879873074920113083685213091252031851770617652247931962510090613926739270573446533130165776472325740466772103559902131577248049487815736862802432119434566684056894036067417791741824694021285591239180417643974619759599963627069321807415438607398194761471412610762217337007255643421761287483552731302308694735995538156588668795230420882209532969884478197957185100051744668768740670949162075951964434121468035043856148752077768806794238272671102475568412372912614337444604676401291299570801128556161105369415239202997103130640923425967437827343248526014428010032134030016160879927196755489878264654457170002019956631144941857281665315996624889192555184074506283078982906241427888244247148772768587809354552619100296328812461415859297886861006514824215653610226316448243918994629464163933271034256616016117728837972490472468446179994000628139667707349012686761300990846940105222433196903545212880538736603284144713659691037605670896983531375242584100276447140301300729882801591434143905815492882349962931652495345568395312312282438582295284512958785845389200522020578949346205566624064888623052250742281812790879887031811198324442580834574816785619483580189108162405595157308332021488220328002090473727342965828630239863324011161180179163746412083304261465721236046129276647951706469613596077583921016671903662348512488434335242903043177640472640710524587255922638202442437448567648276397266534439696476915850124663864251456954926376829703429857277058936356387082138873328723565786385701379400036848898744064603121874098134305161617193826157251696201368858055724416017207668726619312449812475796271039252898683423439124942909076347784634852605128740008061397076304705690903240504435836138472957864458731926443106445159116036734142296241267167265799110164203609237150602616839072991652974501252007927547308521290113482812072246827061291319268258502683083747015397386317031879021836894073252729808187025258837270465415506475270737129413321146681482656767592196035549057325662901359460728207108316346401359104553803534451477895252639247886544088402582871311506641110267151587544742918707014166872179903378842118266380289644696423050057760378884043649189982574381910198433111082192008719015670785045490189737787659954026145185076380308576271797930961084207539659337400729801423924386896834478465809987711974846464029189468054444052655175442494780923049986052325273610698978292653007325065128026309203554331494005662110790312144261184219077681931757709928923891200982038121881897595872036549552908944176173224701980077467019545337019086918049288616884043507363640562222758187226237692817876836884507451038738169349101503229464621017082367032283422666251710371299212740506821648558634540268809579632411049611072436256204181900424341854931153097115328566181726008325139945798258823088588272246619848889127393955915667971393660763985446158510325777499444287570654429557399189554818848418554271548885957424670159331934713116130433776325770090430085446501896883091691265836334309847253288015918075961223021160705304993272911336262540757792309129434853266202026541313147368658275303308496592295182992183386365948564126183850120740910246183302318765380457075359372946072089557745607467951849642553301309150019823411143500411166165088157454655638940571065501664317281925416358840512244254498021441623686619457580696243725117152398213267910721717791692207302894496361395558412083305096465196691443250063857529560734557784842103398527157185385266847945940972137744961055661762859040891969457570025533406080868755486872909294108298735437783922810780714803642524822083604546405030660938252413744244896084709612450084450491021809761511786938473663910165649885425365163560785489691714113124478091954252188477638002701714464377099236304736185207751931680285796888272211467094129485696493918840650927119770993877704814980551991105879999303121287337018256515722920663584113107817373665960777955095666090544966092188514093210589688934736980102760600281055737057092383733718219629969425170220834941662520590500259090557303006799964347914628197583884551781052600837956778741266788849593360883626701921386325315005915460698347688937914291054386342603251318654671500143167065308135723537984827947332790442762880088156947433062181589836219952387395315401163418655378505866563666692706865557996098749568686386524029557717454868525685541835175129238486591093042185083516981314027275970198798354851733859272586681048214162669444878106612024707075960244264201458824690549558933830988702644207094760099746580210775637446620870605376963642212373734178406614426194387154273759805928278071267682988684027929039820622135615507265276021604737021051183521444911082116664678821968692199515112509732514860471055259021899462586811639381392640397308341134655187180268432292055141596591967897749474356617417325169156521239284629854675452215884664316103052578009539335421048580616057512005291750210093259304117619441298158678807181348567754652790602218570676090128551523175885334143920977128709789049821760045282056939997836649095894032022851181840266963815444942982549455992726292602780325727818858965521013326082428508357008375649308642356461658614909804307258751605316501265135635587245672024077466458476945764854004786807860375762940716146953662604127527702005749883129912303349777479624923931763043506182026555937935703083053010084121371476198928322369740849006759945542176312747125716190319485568917813261651281489176480774945847012267187387989350793111691682053830159495024967182972133094342259028387544159804543428118992828564918910513630788865448439965738475692817468687246932601253857808849991353321862136535850565648875443167208862429037655996876796510751289341523790617484323932059197695731541500552041205113024502986936921181038496865499090200259511405102113694686540491178975947335091922669091596460271359767274687028135876813011120324429259981558504583091508168461775046491465767622039074700040513526382665485613050153674415367818007853373353415122613126637612633950321399940219371421306023720224211943297825019084716527778853648653249851034616105879217933500803910218912576042254638707469879103760036477527102359636471103356818833505568613991542826397425974972577840155573834820075099825017346816603478470687442220061190996095490013690032602934928364475299243164310760818174241578182173973344848292014459334885009402335348291917071183806559604931512006384226742229564010615792201714115764409704107250490310072202538389029411785520044374074004938507991589541055428670027028938262232275491379521101023591802462778510898037315824994996769557328870228812258740734863420069989982768090053400917127011112223013741053433619104362268274169546369708109282821785159269459380710278702039343779353981368368282930140217189337385719283065426914061923908402058023197711558821822763684419284126185904928529668011921037328924496328629821149468739511813714508300561569400188849002325660611684419965447520556638660354536792266790452904740252579063916208997363411617452031659595219598976438062760671370018821394979368395165093475197265412931138958922821355294844442795551525548297860741424354769722006485804660839398685212340324665818506499539404099913930383844029926140881546911344325576913143049560208015115072244743072411477677519297233427770890859937081972979788243437364860544916692655282574132850721192118163946267536781437707729829768059392719513738179606805567830415424890216694787197563313958277415376405137046993645911976012302168118469588741311187290920977896913494793576111347520167198476381626785816484564803905409633119058459343360704673151568988086207057750218239823463055699434124866586838703902980787426690490456570618614179278922368017668769030568526060569799153488543267343836986301154174814500580978624283455945493813159075710028025207034905820761952727284177468026996512437911911450678150344079329862134142187985901609623370848373665155832439427703562716023798108643833269162629817673002674501678631715870342953646191558061958694204671130385495900746891396280856639268444583863358987256059822730170319016621433518517631410085096924507298476591354819369387110756431027613213062111879935901095691620418378835894173909229059623748177931403033297647093877881431990397788566610783761111883540431895014965671710633531685279239580060980311195409628431667642663687694437375528101252284059320411951810657002687143570171876647205915270362870697649152148748181275868287716323420520446658083927620873119443147637096512024735284423454464468683170289703396774622700770205441552841526414989132723195641889512094549038972537172912438420490795057740038801551270115979692995169340243281812499749522872169141649330521135040919836278457231924755833706866351911403834513306285201662145176205510224364908434149588005739214064183751676307123182551661182483249910112018995383505095560361644143386584188388034698112831132467641098073246123271205005860522059964465280533445328210755990367884613502551808005729913486708063215990353840157715008785861381203829305643090140387976536480227011824767874677239391459223530625647311795304372229566407797340634991636745920558480385412642319385604516196001179164844346257400422122371055483528878441441222249388564304306867278617591840509066904403569323960654526769310324843218438007976848717978480834578584327301394055930730198548163780238607524312794688606199790946658367808069356539676367358782910188904293676550686131544592333371882825332199062288215015179268823632596597113898045725759554805929244772948679639393649618792523620545108312835869868952691097560189966697203757177510533210467435692791321248543124244111093421889067431561097380160514101414504529731662268507827555136954756743975886691066557075495688203529185800174641994174072920851532832403988402993636705055766642912472131241249000687883484979931237244045293220045901698635489552960199961665410413024200909947044622370981916303626697634133748062619575818331669406788121435241016884953255252937329802750327019188490652681152129684071337537164960563137119816371403319377288731124036448747986460816705926219638340076186335287092333169313441180638357711943987257862418778597646914982154818020616919800252063045274534762449366623189575337169208458760931331055632975322982631108855560039429539962876959205054902138361392751454777005405141698460152446611052235285060827213313563865409831016201389910748791285638032954627132277423373238711617637340096817557207977655451307119943222355424935928113626058077025259675026903156111975562153977382673605355425998547870106501091170190694958082830864058943695977987327884131347543694553575514349212607038064617246033208777662227366968780841926579296996909374691243967585556756286920786545551346025535456208731244856937484918906283936355276338462025785724126244718120230669791411241695931340210807316236544866403056058915448213899962969294600115026352355314868625321778859995367416031974920296185830926298709509792950666797915276830918835325972773504438362262801162720527528946801842555626507665323032615067532277524473848870600213398789275262572609350910266334257135531953778124912136792707881227506819235152822604001602494687835536505628179106922049218682735663764955507038884971578511313893885093011542207562523727427225469746002885557557174740787817024074243237178383688845771649126450551376311409012661183054947784398974896186287313996497428275491091968936999879863529815156703940860990448934308835500350461579071824518527979260825465590452351168385837750855597174449897604544546387071366231790694179829712728041107052065674714782781525144019925822123652949283845657054462515728505766056951414258559327079990980387545933738651170371861621096011080836880464173812826700476497917588674866474710769268628195832435564176940061436616681994879235684511966233869221323418778773935424200672244863835639116506614044558551569557101686665808672577507356756474740874071703714755022459125500799818408106296564854349875361088386532145953006833602247141082517411858262194515111344900008090600748716978119731840865573434106134860369962560725655842009828514409857268965138079108446982850533432951247930120277624010578499894751646114223795431962659868816374099769237427246096578062802901580177424785725360205158444960852756013128350319442434197102151310195199705380094081778019597400099121561310955155097083834424894552131561618732116637334123630799286829602408733789299702628328440550519801190042713916032736586110638511554223050785137897303340339001714102356775240246385303732688960874375884603273981215005224842584357811452886827764472934880428022369394349355106245014575997644539718788971277852923071495332420283222639035310133255576873898260924672843699002587743507166737581478373962309646871716688114193573600621394141889572491056587137840625056365306091525954877395249272895394227054755575719830863042653081392245312972246981203666696375524645170545412383800331711407821853174557100343319428052543924049841249782364759453249775452613597242825624233863916863782803146897732490180041940697883331713740356819984260703096069015257802417176405773131875316326789574986122774733197685998687875341301128145835046236274887564429143085488719198362210930230348863453564757423071359571095138108202547097384387003026514731406129637810448752701394655437058730551115101524143162465401151547022758521401974411135675353262541111731496887428087567032844140477461827428335552112093869694135481643416035249751550639849216088220151065037292594420861240601753300160194638158581319848726912498397062879710102160667842500024552012450303928552179386438681042109051858429774300437170372244362080683088431315908777213569534630030628622360678602987017539186277507231700703711723587532718474236014794844327384012900170097232374695353939275631468973772082297843951842920743012364667624083568674585375935542824263661763463566343829315943158511448526189621968497384934396491754427229807050524961506399344475902149967906327697980381260276293754696192313033711940005225445340873928146661686220872294255284317411307415842084545657522223977039635056380284755730634641959076260487923976484546616389910437517068691276880297526585902102067971945878762444698503754930164117980646523987580155846990895237714831158638593866060471199940683327320706792319566573520619611218569638314990868819475816735102372407923265508493241082586695974818175722164490413453654267134196643207092674856605081522111606264173133046821891627127173474355588989569568268445834882811864355665766302632568173805306431006082373898602376847784320245206401941604774231707458476699585043882143853866008191063026338412431703264177921357299251101060572938980088159776773246903868454808493939345050968473790084323757844801491069972803798806951031952307419625728858896293436118139314301276869176813888381837317315434528375590838961617448187180608492072621922647597107250000340076184292771767312874312787240632126862166318581023501292011998980960908955619839139232822869387276403131924586450091309271890962904780877986752604558721908540357924330095895265390194027997266349176023642302926652608464231552431942837449350913926839487046900268111412102826377888401062785153175705154634333198075209313658482425180037224884761771119803032045724993235025989751076183471465950414253313475984851905383143974937617291787751883363220367004771465401556618830890121321184249275848103096224181843796432003020666395761350006635713104922786987324387916656991940339287008996705203016749255027846859040359759664634346653634988634943860021827910353211191135636091564862431489932975736124094204523770885493826321205240468498233319027458537262923839872207867593629215646697803931624921992040619826672506720217211932528854972436269104716125297134525952779182992146332408202622576864405482979692418689783996901838395456279849941439848535992443065123896461351406729253188351873729862179226372865410564644069942180354342003715711655182176013620785871819618020812105498427262114334017044836067962906558271286977902130153835639391659746501774844421379050587179298495797842304201984685239003953715185766583328465525138358792279090102739522876887708883060675710746762448814768854359181843978584808260153587546022907559771987635688802945947986270505916566533596844595503132460717812626024034988644419134069433701130321078702111834220366014135002537701828351553035744832879787068017638478512625500698542648773877237216908103453421643913218982928488746660440637632561127749979714947392942633176297509570277406665572666028516917515273657342507553231389363594939589034594967210994959278783319518204420512450968421865099402736806973663655932624401938019438969035982253519683670104992441298506177485472387032417204196721009265468332500595311645229430383148177582387241619427336233298816020867696066131853432993947988519542979513263630144545420419037778064584278747683270929951461738232102977959479538293121603606901137631240286699208447064697698870711815302232832223121224557380589100587359332795536704485105902749792604918230119890300771270474368664747829122092377887051697329754807337408062447622670327064593298329691608748841180584192042695446916844538070527497412312181714893024438825634639285937700450387072194372791970245018832867826373125303565106596710245759156099447104900576903881651742637162155229018933510777169909964921012175408472450005879907261429978568103982988530285873305483221484702141480824702463861063757406338861663548614481061255026369683161976699811758496927470229302056371980888063891590079217771229376476247256407126753821700279988373783600962744760791203064784826398621617735375836769338212472124072316041793814393682225626787289496752469664404036399626361517831686008597591738170471063982062481703705874816498954116017451568568114623103272296679199885932616896687776867123957519391316417605515828058426140047475159933429890064780683061509273942644839165174355037456072589457402725564586521607671604458386050773087293345595638115104364617334528177949951211379080007214284528927212987839154254287831923738944972704613387283695123630537281539794730165836080148583083637058737154239725563542799362929368837086514044724465301632171995395502896562168552605780009966669694430439650383290355087407192045947729645018317197262656741556596895313958377566259304710436758370859858803637617580986040964085581257441284204997218608470294739216570082670165128025770818583630416092651874224926985387405753133304584983921195359017616424733461433289854131987984557873695703497197638302898358437181298594395655905269544098118482731696628708793975359017785679500625232582087791912144151566177457882428858979018951129729363498411818078754496500759224034000319344795064577256329052012475936395656347729397825437783193597689623038233840074297692595480518683277118753405421419921355989526151767537952031405440005259640402126478498706637477457850094256399977167158650093774155086864911717693136300993127846630739680793814971743959521466994851595700229650566382641463670963598399063209513439952653692728356460691791759786357146398983764069600729897917155688254315725887919963693949175039317941078476123923461942071518569062624002958504353582995229365588171090348054404206942126481744884240801052843675713933825716102750446828708379371356919834800218037668462082972962457275264549876968508430267267007465827711367617017832338411038833557624654248240889826028185080044301074977187647740769922418035708659954747888378418025341521069671850022595526861211212706597958629933098126034120149056229770201710456722366354014370200107844816732067886928362592441103282089211051540735421587093821402175484908127563328961554610375074764974180317007630835520095878960174877274809227412919819239417190820946925554058932745259350411761887293041146324247782948633591133137523545857724733163920358227325503099933636674757771966520283355857982875849041462046404432983916751174645426904030735182476628011363900881382787598846614914339591151875277100441023445849465142923987905880092708259738104407590181994746764554858801079792483314923708192345649052782628977527377206370755185277391063130273964499684313702330021105423201564674886921261731763938023169372246282113646257302162183216039341327069219647570216210133573744462929149157561156670586419480867219414784176020590408356653687165931832255349311918208843512139037354182769886555987874132455513986786291210093061767391736593247854420681467598279348092213265084177848536022581850871934100819242523366049176237929497925850051076079860597275263465322885291319587185183931964667656585001134753095714008641782899246654382983556219201894964924015051634991252973265618205001097968953598757953395492310047943666206067391866516052822943899678725960703565753800973987763514570639848439328934659178100052066267285830575892963849904689351233891698909547413217152494867632508948929959624791797392777457960110456714382622368930696022533756885912632663389362878372717649027312280923513522050431717471175751596510310549772901917883591881302493309473634644030914187942545020935082425697995370954459864639125583199973235443815834705005078224418727949925316592344770442177384359547669170922495723613683104127251465191942722389193338469261578876729908954278307672304071803254481352310173787338447197649317800095138341696305571783644836586051576019384320280546057366354447212176432122965205796135632767469116332091593429561102395084088419825149899252880540751844349771749896838766904429214551988735971324859895328641904531067661380597089822001255525615768944285069679081623799955715184540346134290450337572107751706596796597117032260319245102431113373816604530403767208197282539011635186452154114149306509459038491877290368613422965888402972402937439017510975064358119412059541347997762396315762501377857311903747728034422362829013708755728509054505264174219171045865104757342862152863681142038908994303125147542755357771203231114472443553151679699339668331614766626091026992503122501896565215171039616272352019617227912074557120554204149475874647746996808885914474620823051122787968088113425118060918401195445106927863592195114893416687984129565367001117179496185590834522134516459540806192553115674215281590106240670632311810274041778970488451772212753023496808653223795558550472320452109252005027855249275313818278065266083606444115421321658294992261881990912773323783271536599934533523160058535169204195733645149709958420531161152030871447894523265895189936797078290293793225739641842016033226066638600399497328324403859822419168005888899726875006329987235957956323983662962788006096547257947017440853711462033769448433388599371204435408468204331694796833763596316609232561184552227349710812416115512404107083337008618218803479984395492585623650848869689763289224020496953777045183874754780303873554430326391937969939600385752106047314241132064419855719943385192691988536271835696867956242499183630278190667706009931121538849224997843070493661312191744030465272461845099104409592217240695418938767008518096720771877842559990124340883412441973593313630518401506864742605541695187610561134087625979793265402242779426650427858717890275037630721643796957319380810412237038761860768887616138662536591125672418693320886010704714446297791773987152407513721838164543287175878106508981636889701442937706221529109783622207556316678497252615509591436960957771390895220088465360928143139174596423191905335922106482570494875816141838540465221715993254437387430485063503978866147705791595721466017041483431755656376020736826670936329320039379027775917015928170930865309800304005923030202013525364125617592688426477166827684139374719641635691006394438562532006655406562730942944599042579135386879274151556473388840175362502762400053073750071257032436351750486577712547764954649364686536443768003233972605932176889250288991774237777490469375496187679067443335374758675769901057825469285046444474031949057865546456736518949133892599077123669383418105931944188795364568578126409670089505371547424577573105635384004712950692579601032629265336312866536018544033166240647243309792881742891895507556868683265115759792084556645416897355466385108587177027136421746043912467042120819959418756294003758297198075578368066045948949701110828707094524906648879550295481551025760710822333959187657466557032610966859249287464281226582405129562085225182011846557303666469169590280433792550953130705185707259806711010927120155637277325633421787136889456750736782833305504281539891019151078752759934678779482572223867541802212361056529641480079937610008341571968724405546840934035134951662381681677224185569349978137218155632959993493661809286593948454562433688325726579685557449520726334076022850066959875443079855854132209002039612057276674628333701397676005083352947040715841661073108363341142163966633368193026851391293305035953143121771610506891250701377088985119475742318053967897194626422990293192798779727881843809054507778429083424712544316261725096715834931920139350995569056855337539108304521782243865598514968359287018569132723219060982445923294644976037805627998130331376454327159622000198143082698934492827112681685986480151039215836681982899608836037075026999487397741619073456747679682823641503919665054338016024997729026682326410090292679839683555909604657770310747735882678765169359139664966739563046664260937154587590433834060067970306448894092202502980510471163806698241756254969344140332938301617293591374200027109775178758228545390807033894718952605237160250623264789519740376066442753053229674919687853022994020862994522344212455359175483888665896611437476868319402647166396634945949455781239690684539855683596634362764653893774989382592872896326177877424640621116736679186566131336471375338120710198158428087558194221831762753320724129077388127905724417966367889847994086200677108717643454814965570585738838736752557347894256018255593761254194448599618007187039316042406354233879298855971012193352894955160991782783557302306257641702377826236563727613865635658468394537409579767175870600939112605257405198938685148460573196886139979655292241766168725435450621508093370543206807839366642325209419271699192049032795364807774353220125200614044475329486019854001313990489893017978514628366428261576632243368825994003453809742359176427007011445549338671635637401697005672069490540201625221774699929652130640722048765806464774740822831636810697974721653239871367330555423070387059687938888719574793332926883612797231230577053679431331126887526121469132766420498388397443173530068306145648816689796491746053416400710597610542569669795536459392889289605284410207810087627643417454145411575297510029541460567862757709638680872083653181626105974858499724361924119407519598853084517783349706114693477420379786578486194299913298252414960344817352810870231361993525957761773223520281714286472677122552554459742593631949880342163723113182514537852061471925318686017187609201234909953606600896402764353047002852801942796236478163486716228912563438528408145196861298613016677366325494522260532328388759723405628812606032698606994012486330663454375814601549023866570292109849660778469307245076214536212663397299016604988721524227213511939347818721669600158572161205427139083861895804790259729006578388599910923850283572395715669151306714286079013541477213421719650691580705884709301083394116065280207256193592154494035334601215363659959034399418815737719498274867780134574212636865359455778018611622432278740780252541378783240298118083964030966915609805758467359580012951899100282333624225827940177470139357622367559865758557307412676400826724451005068272979245540929091374824082142544057386514023382948053736766492738762872562096606234601548824899274989002940958629653442404844135485804392547650055983571687175808221229931836474513259364407496850053734169267103616486455972205787577181760105822436896897456420710828030212479252223654537720737741087468584557986149151829935497582138029397501473227070451626056915257645518879312917037340064383979063401332848476327516412756605916891735236880200013889847813421993593943201086567283166304531515716092183450801129638794937011960996214727564164829227518179688751113903530475839674014500575635733395464360128708669124468226510020584478455802152044352895220468515430356963067133439556011686389970165255298635073118769180229831467517497319666937798305647570987999503817515960016697765634737328307505578532880227111842119723512609520155364407812147072958966689486293747112795289377531758729048578120099332152466566651854770438779892330256474544352299528961663800075457600037021669342676949363031227964627622133719484894925258839941892833524885957619602078281648078938846429159710034775703170961810160316149411577166818831274782397975568939279689997668911138358734522484912415504698753450203217685020048428801234934208845796050769850695984260939636461731478921014202098975851568052735830273944374987403937311998497313996949913869545175976764529166088719824929540896227654518558795127579953083889021267633953136463383244531061149572249178090678890998243537500213932411302838849573180076613128378253668577284451866720494719567357999817473520993233398923898290959604183840264636643519318223905423349816055945048299325198927388105026569440760348374213548304785581354565718055121215410591134729890820172119845340351474292231877604028339101787810671673536626437077847948932391248092562100797076422730503302816893406666432271672327343823430189304314036143014020609306271843351305824932321551378453125885812709636756684910737701760055099344089902957629344005393059583451069255375132436727895639837995351722801200805822294886842197554906193848345453711713490838312335376696169213843626661271397687495967622070070926594966259681221931545195743702044707869627062645380150254268961637340609506709041583288769439097153455841069661246425173534665241868896016467539763613276250876105250956956205371969732167921548328125572053911330087969861380661315223688616936398370074867722444625980777868479503446788767787586507044384639136059899396627186187455507622369168080001273244007096137566283528405874367096733344006818402697489223641358433487549938623081740929157884737192571075889919122301643602854527447040247124121779157688155818575475581712435717818322849427824348352111135211462375356061692525862027217715518688633994840319805823182839374747793870259609882071940213193611417430077272331572455915429575514598963602433468143831149029003724784157454297511992742551070452034455272899894446073016848591561729008165329742419887631710526995698360977595098234552003547909421661992289100838115552390640354116089461325760634330230765628628701494372148124596193221892389758454015980603053303543364052649953076079028232773781308767141526330279742382315314849375394547650394676239194239884871735314386131030865416843341266305350730492912864728833160214258226457483663992290946721769808550285956291832574234770282004893275599665369776449264283143272146753284050911106654490120286184319216531322354226171468503229148018105108955088940290354400762339693304265504988837851928389454815097156609118264499102181465020894851006432076079599435703506270995806743764131601014175142395027145303728005204946293967952057825957094825136382653786722729398029893840874254496572723493975908831895361770729310847303567242174419814928498869318665662801548556952343627700345603229784162010747276404362434183151587087318479634441335871709582357972289497389156532708355057612004818984044275871464811842781703441664003674038153745249307899526326453943707823984798997641483119625258523711868524413185066511061282526903398313523970450494206312223428868249622988098391438575525464722423404270662431333294891968113700863244562977294610317652871417227009601711349155793175091363662204754641859855742855696073546177302314236472019834036641282788070418363066855820074910262680704674228665099290683585376654735636735509291691027994819024769344855795284263598334392868042576249151614205345151408671776444491030386807455121400462372327325494266639524095552582147096168587366903625153268943286404736933864102738087532964799658466629711031573489515688266967830681884957918087998472110099933078331159531947644394168992458144125607920928021689897164427826097211520749649672552885478844507840007364319589103824880273621248973489502532708459648233131304216073767122963083714535418023574931038333954033573023081207408900187090011584742108180021398179806158747503964509612764582727274516334941666144178870996281340616666160853995613231282200819498708383641896255930271856899053816346301840220359738479306967394270497123740979014857089550322917724377802564049561109360356183155453810858811338578902936911372432723724167192418955366811269312488418196695199915062352324497331017513350563620368958634531744213350772556531574493185117430215476002637942975623447731046936905859621823846069030687404755627614250845931169041586761594325251619695182903881692359219877689210326082029337703687131474593550558350713615153364236899549189007568168502767569403014458203539676867632538559965168513684340262207223593110729952786763559986883662389656453383819155389620184884866924500473394340409125799139924957607168520481510446162714230927161703371875880397035261064215512589476975226369320409446000153059802804390207160462152503202626089186346453323909703030828937673564121457829215573806543802259539573139100965004886509158830060126438877603629189197036384400931503503907819666019282587912943715959770670621105902495325997415898042832441150772057672223171250486498067072258069131847124874079890565134748975169964656193733233863609326050035652898670202909288901710549405037644399705906153596414639328849246036656739012308311275975948757220708897494513785951700826076741616795156440436886053559409131015528678288077894861746522798195214231673310092860022944694472940354359114429942129290983617573589075564144965495565081227091576929010629751029439654107531273946347328422614222120635055323940281648558152820492487571518257823459135244304354620300679771559145404264185634757189281457838137983212806071419652001695393103397074745776287335061324741615306631071166672912965531933579273656318962301169832134573063044863641880147911087075382973816389199231696218713409217391361068187809917090859534815341685216172484803077797983624421120022790135277704521128111130429447395941638192542890716441566146786467184120298184102072918823848962933770476338830072036194258086809731368458993450097789618368762692612799265817407176292788840187136844407995830295309072254054118762091777109672254894784963053465841932905652878086312414888101250271249419056062341398188529028810283313236740267770177246424705787533492065328670351149344426606415845323316951278381298380221053453041924993652033642026421638618083390811664812689148047324571380800197575549067907728309666004601706212069140977005942414069217268841422780806549842857347018766432499323669897662094672223951310265716278518116176849514122216586040558317691809219800162447596709663252736907337862726886050039142037278752966424261583427322882822053362644811531454156497658583990374729708081269617422927638648146637849010702073814495391574155547474075953650631535574158229112523999541404353125463149949927085928707893294281647268635077581759212788746219180172468179485208602881749266672808184799011587501144216686774331859402097957160774950091697283962291317685723436818900909528004802066470894364392259103023065784393685264458915375639385539418222364007256402191773196714223610351340844071125285649551795418380118874718432750405460715610947553026448445979728099359122354268818216024392274778824134903788438784315768885713735677769485830702336078747198714780558050431134798288987856733783629704714677254560231735238055719635140536118397228425914406307720287290371726792622824437018512627224979763932734746561839910851526967047544297494111250095252075064299478633117666794455708101510435954762630620555774795379268987539331253350119641092078980148308353270823698720914210042123096444897596233483143685170117138272563052437412821672315132602615094141614026200893880273899682029708507850705722228180460202410275477532594120572021737125610610882259979189395494580196101635235758320019767726002139474509892384000627393981978347378407521163113575443400480017498855154604937241495751549895028748758512227404077594658419551352786067786842286514728021527679390152560926823679044294975742225376706897285012383694615888060213625414166995116730489282338421969146043910076636709650550360518255157751479802429545451469104068875899569356095169450873202109597254571052234504108013318207829874115304918324134436107151778180018867198116562221405617378015858182163136653927813413471002792159595070977193848890934267623542050686746495415514831242808243659546724987677000527168609016074478606858996438162884125410954963426452502087901937660755555618527527363966145725133592839941060672387467783982665838160328874627918341922933962640703789026595395516535535785243813639956474279691161585204797950556934184352762972694760443337112973893526946239869725912091984985079657265504539922488796142427232132607728570162468691689640286636206122434988798999387726297460105200462544556245642353010910122816372103898855859980754320534028737996409147173080300106816289754158206047774955383326360629782698088860339144503525631243629052550269640228690370838952054567364707074894763641967481279613443351071897455982990626205366826036480004462042191040572259558714039561041582667435477431559828596828762319203472161570549840672488524199784664164077213199101462923311744738631598098205675703612026037825972644250779021824968451573565304709912641507947439123877346674606102488037325060996424426578807328787648786736143577087692965522154345734476059062073692146214715593391290432950930327401823483352934588379854813276929174642042220940533361463278518556189654113476414972672158939698838587026863969350387770039323949355905344498345654363632882351655080833928983503578256479900234856756337742468421816385655635623898091428303240481055828073644776926463933872912426715139719769449007008663753726956391460270309268687655078148572868313059851969503136451354136092401876193535962496987697693226254557574950925849459959730631700099552702888144733734370966807306407563308499567713625228659209315807391354698475003219146807185380381296398268996207422290901971925991512244413701917175044466142136914342677999888748690698231667429130571867052755510595667931334235608151299250975354684551418239898231632609302328026525845630686167771341914296577216735449223374920134048208848870243217100353385021765831438558253721492555083820670985647102742962168062356369872270652555821178326468569916330828611714376303861144842315076092261631103261052741935209579343876336376385593350889047349805633028525297140599085527098779213178571844543995883785574397134244650381926356078571618154933824522055433417486297397046905458562301228560136662582204287648301037439745381241724059809056222437132397123925813778838382863841481755998426477514928969793063821026565302281633841002673628443648586326658690557701833861135168600269841820447211503709709331790719577165073871185570719246773822406616784052179203910008785292083360890913152182996199532705427369318978182805641455145510053939386554153806913145361652211641279119630116974518729005009530260512503977979880702318733196704152205165144212758964056814587901006920185889004044345918333830860861332746202856815687800053563702791840268562719852104563234941334220720236969984070445859109151878995576078390042716771783674237315957468157513553649857172403010694309994466542992587318340005782232606012931169618559871627586559857669957827544521420899573012175798916865668466954665449390214940703960126424895971108456130572539168736064678752355865150760556771507309963207996957807024556696180160648112693674631095316941544121849222451336197669077695475289320330357983312542026941580515020582090836877474740279317798502083176487677604497736774661586485727732121155509592277724034098220544067377508496364553236340260630583161202628115443510416583405467885460801491368624121020226053789413833823634148540384858470411746619181348113140886458261967679507566025186785348215092913363013558997798222052566330127779035367375730411035967206834454227726192726649767905475992257903681749043106837847455238374501115267915593408115637426255162363164082648438503970656576442478419522350112888538055730315503144864299105021093732538933367221632201146949035401417699017092286425239606634113609126016705060295039689718819072447940199181931394171435628788487566962785156794029589612334338261515766814482955836336234660292876272372876633343208570729969913486650557323506938264574499381979226438743635403390325444812156426475073460460245868266658435815937813748399914183446864732015588809989884544576682491176122757678120883732882208213950179055489367898014621463340787528619374989582323854044342493476933152579579854243547457118319889076043796497744661847636722455423973385030140788161238935627116902334079972867674634017792693843189875417264944616378184218219109216347317478229124878177818998929364019219937979105474071000300767476374039281506404270957997786993446069045486895648841686031809422591698143579358072420461677778679845054261964270754859760535404297656730942977338049257272057339911181802757046986419330545644639384984665725179092281853476041701654760147330987298228781456694576436996177829000028477735193548007453376575872358766671705527117139906462732158544200927894122293360830565366125334905783102356862772880743452317907182229385032562716329795113498069858237010200737012577752648520698324192030078639855191715418736017295209187444117039541713539603374058150754573291696270227808891912285162283894736929039284371152218363763528012627165473381180132589274493273942976458187742920253205753504600123281294377820757081082019156817663596013054775251296531529747694525940481250581639069308749142310441065389501362853034420943811324374210919079298824971416908710626725688946410010113946640281490056424961494148990356105899658660192898616842679120002212700824006024102991019821558801485364907139188420338105053506027832570387986268216632723876237690245642438217223356484502025738812761433814448001069784537228226984438275663655294060147219423709329878851877288217075748273023203198981603477986821526014241808392945493880113903576262298681217505614977443873786778863055051342120158877470015808830193318814560662529506022043890257135313284627690458927004533743330435730687494988489534009579133364789554853020269298266403327725000136617511363521916233387331324217461568745945717560458292401665358139310897072505743899693404601550714259147938386857321206927819350595273490422881282647772889110585793621966000923131037010962059819043469370510537433897613716088191996924713447583950373892711153903663490249642269442259897942336552226094080285275161263666990215193266371495449834561338895694211334925382530449567192557957210407463137923682617686687710834523506937739041163126113692283283683208109056150710868367660724325728475468903371942318392352356507007276348113623087358511497613894777244798406207431671467225453052926934709328123513185071411548455084663676747545182534691181558510552060106326311583451916538502756386450525107474440521229377485762134923511835328700244691610083000493085891363194114890499282451868973212150094549439271699329127728235737138964121495885052855612955166294769903707779939767581483754260286360478138405580372567094741322316872494559270881495620144370536981282336349044496801298425903431763156868468047356314046342996508996502278360026206822928284025373957427432261893082404996295705176914620311808157650831609892823876192038402862821736076787367644320042173962746567981884205227311896423847239810039820804143909018227163503444329975478465190216189359702940096951417920053470307844785618379032959295448811417456687804352609532824395143213129049037029952504997941172835747780180651349494116212762128722817715203398622584934544677975428512160883622500964486760027042830533063984652316563703883255501464449155426265332927464950353926405417405150819184557226976674596613657005123814274067843226203250319917235812731356657027953937547772311248844934095247181525235042632363406250584553545121499202800471559118498258001438174679946063599367778438471091358261024364896094147038082856415120965471412181477823153739571722001910425880042194338295943036787313159686285938356679547065090005809501829555216350236065129808484832367808616180329927168273773103939943688189508177684034235324770980346355792072870692844403776969768645034567508831849605943127717323934019806279003492823983656170859364144422149176863005157386750449790862061165888761678128192345051350483848682545638980809334074866453248533449375375059583085076862645506166852133402987729479254150643318684955337248665645145849052469655570775385643752476146571690952658160267717183046649593863685403494614951469163409047883975446814788250268734797170686698375467333511575909234346098285730644994317449507731886963055774021492003437430894139960706271528961295221879300902960547094890385820558920945538093854822806551183507914811278551940631951141640422786810515914080051939323329465180740416820209292902935452750809644123198062042799460949137228288124810812453286507052581382357443313127301002760007542599180153613713451232994409988313734160269065442648579191928784376790131230087245420753174183969424024934799968640794216284210464305713074786781321357927576985624709366413691293566691869954145991878880409109800929154153817476203462143026813582589585904911557291059748779847509912027005531126849520363448143026763356240442933344425709802106355025738157000571233505419925113483829966133857534792879271874492821201698965248800505321257342052187271625159407840033471094809265487454271563634460133005214482488525231506582613673092554864707790294305479476672813755083735270503985606274855097196051706188806379275272388164457302681940539786053099937880152086987085672487806939782323168624253016760514116902763662410583546659195124316902093645364109979543481833221634039444011896981043613939489863194355360770276855389832100914246138741240617395189701371911311703727535962364586381580082605464368311199626090127575190604086810308298676920808475687281614332762205890685739342131004462386666535364093892017774940089541767128767538992603330852166318972919381324229614714107070530013080045523191086193173457815175289675428988345414744522608026126263738104363754295725320266126780951618517574366788528570754611907547564748664989164121897857570644655838877937869299686118849990649691759726336276104276778853316045473177055895673148714112410650558989904236400205401186975029565972011677004552195241101464711687220488551511388831472007146110228956780086092868354272539348225501392686207132004542875810370523188490174018345301746656169388340392320483624778316577655888787039489003550169593628458888214885258760779301796852288517289709097836528418730817200046056535140501290149483650021339214612753604161067992720645770109833944422328094624975586512702431382539556527511395191556698163427627777855925087809078842398973418277649103160128827585172487574619858471017398105219396444010137385790189794482585625227502105632498544000164117061426351803647556559850168262832280004378276565422704127086733741486553749566344580929584996415329044462353502672568550569142242927742984457773650433786257252706684229700685627378693630175818444861987626959682251465611293170695274855856699161071017829130467808222405905815126761884030309207624380043216654695594756954633718986901357184073922418731183182481032113231016457664293484131790746335091832287324562263738677389216512668980814620021702875410933031209088888200714598314342928244839754883742031845710462216175931541747230834646113153415230694664508104720981651724232572458085966466621713785884685679545437566566366392771069129210728332804381684161269433295293069821831283142880639196902436735435562277225534046210485999118211088190428731933063001240710767149942594463740285129132464778793221094196905059035002827331785764492506715975693321236391468546209875346946706886331128022356204845642689412691584951557399816392032624412347705101081681250832685210648484723807768514444845730608337515430903109672117963173963366417649046992137138850979141126578754513788209252701531869227654765578038204812959167310144593033091889757003967733641529625920922278913078444909233653044407201686212632510115732292120916142660213769745326194917826630496959319880780025594075367297073167494565877408487392139343927835764669010859448532949122887944202040788648042354663541402073064952553883901659473429715109742681792766602130770771902955043123180698950772904102303051282057414050590325659908312522845791808177464437843730647605396969656906194979094133075240664194588474245099877990746964130657028608571617859617938475950458333803923699211837186041798824878780336655126773546692507053576531062568864208592503449874499664147330635229546083091447138318645157475453148193182904591159159783347135887637509629142645136026575709391412211588035315134792779781228441199094835180011261104593040223020533288716786032150968755542019824585716302492146742512833322166660079426233936221025591983362682142710740141013157642660824519054883626290250666074317446064989694641250867028772166551354136179061479921405692613420313755404624321107844792460175235426887204678024544561086759993985362068978037729608385495532916359789063928335555034271638611366036009139709033672871925926776884170270056147332682892144247838183214825377354679793486347122943605511413570209418765575248354734743970501962408224963441679522403050418227963668073349681640616826866718183272158002077971210363435616800285888371507188021971428772668413583639509959653029479401340797913406172125851037939034055900333121649784568131592338136992314705835154195000273537492985708230422793393871093348077384282980343945823284952636568895035352216975483908778966417742121683143599242351734914069019899125284632516700275856614185802601446281632098146710533697094380615637746831227710127817744150543046349375502542961819939978848888592632610251076257046202637935376328267348851255297383948801012895314632591774297105674210151475688036913332432301192405657726442988162159175942238849548023345138406218795852614060679213391862556552963941190321539105155138122979586897203049170531726505374808080824777160341404263015579510296497063709426207028305047016074035867150983121302246815525729521880645324766875187383523495538705214655912928911390614621778214784447745399335596501964280991817224434856657657541064056971003552260469661953508868868140466181830328848831239661385995192870118153691774039861080175395746028761087253859017924687279280411191980663264810091972559043183820203440277670758389575607831993154574157816704089641977938234116020485040396193298819411418276838677106460324879524868461411974882466604900495543774834980355493434218026688951613191117301647072177404854100961382887916908797518417938117968437699731132494847109851761583281365019592587473607703962783724573654722965978048261897041762079515036775144843939963709748808029350187951484494352364941188034950595118899329939195454505664720802383024657054993996063433251220284274477926428651654172555533166910293868103134660832914716017919834889883873620017041754005154770459409502758420063648030528991546163485310327047057998032601841493516264769230801502224615294449497932167043986166280270777102814404808059605518397894101585239966256909455600852260572607641818239945135296989170372150585460502912409722216016984067627733062266337807721383571072316512605718497080997224436363020280118183961999420829571026585480126614355129553241018400640242856982610102369713988103022989041846989811567445149487284160850108317642042446974783810496634569777202663514314743141571320363079661664659753446102453051213601931982431018160678378004248963558869860593959702508050593102799680135623654667200591560972457209941632621667925568392814795193862487509650878619758209168126823776550397551989174609001474832584389585814147270178264546646782323254713832138905177659780943326623148727398827249186987246043572415121679158488491579335197518714302692988157772843594273119077379651442753020716149153112418616827035459456632294691389047604671945448347344694698185120177680496218593867831391849936745122551480306680389948782841464490085943199639013134072282735604488690181891378283064399404394534480402057894766250574443819404805779391757190448274806516254046995107705607469567585398913703461173894874911253263925243848344283826652403232738410167966851101805002064915569752889446830381866790421323532518720921628741000171613272284610172406202780367098252165893383493395144253136808822606745934586986237623960257857283145666477255065769033855655247178024265947388434620742211810441302679733626166362232442216629179571281552321218088298845342207254554152593187344673967182657209870553864053621492723745821550203018716816433720519875352362213589472468140364152812488868426729456997936480734324226459696611821920956719086761605089319290416749509334381029876458429191852053061992889573936679990174503803868815800599351361670654057745984883791751226598930932623655146394588533951047327817469419132858695235202201857419451922224917603373959312318336518170623966818579773943624049415722835151886629259980683724366442076730320949499693433008150789014760694591491062469775907937202790431735297993703874077082607196315791836987752070702253358611268406934616757201090175342289367994647470139467068548941128063851850686065463717516526158146890558528129784551993679475562784166846223397476124055768470755900912442187660712515733804853962106623661499132406751706119985827618962814188406245867029788508798921052008526848722661125093287995214179109623756736982968809927845009229288608226265057014022890452735472192251187548233202173365358816930081127908259371147653388970917630305221575984881195794548371782556504734743038107078012507790516247253232197190818109759276228134005393833732361810155311194147645116946949547950626740669573932049175862690169347819618100089080159871448507762189776103761196096283500265276751319964285568487765229076062132901195094476606842292060695633695706022725208285277214365720526278577731450179931473844320026848775513810795835483605484687355173621828412174471482871064018379516451256836440680774747874617247480429243398736974484659196523993322434289953226275750960436495376753485602453304957281155511891410242065466528630805341710640728451622005039620377372685341532365779351775054054231564973950964395452055811660242825574285516406379610837787595194896866810698821882517786060090945256446130899673290436638364259222067230208999654252818927422383060942573421575567403437383031372326198235370536279825023831808528319562970182386352081584133533396761076390480826556150501742145009295909429185214143139887301982205277962305237965587849483326236679501481129220153340451353785437826350552845029922933201394504556616135388417420102660368684299431762783940276494101175006023208718302915294437420878915575769242378173543600794482888344981394633880020032439415196031637859845093950861737646148486544234490202976013010808368310270508969871547402300385575485266234155479382296752387980953938628188403165396445716724986778001704802831148853561534836123992757779267244074188383582236111021582745255413235315506014733023031837214556532955451752375829243310010218355905007815009159428423873861103076104073570882717962102542575280536239484508238908508780960755112459885585827848197090218957741610551096961988413401231925239945447192954358586201215446068116034180137814292180220325241144590230629730545487441751064476863333967165065469935777517251982656782504196827843811767236129003273804003219691218988524777640299649667063275889616743819372003101675625340102523812433865342129776354629883612839512903333768792016103402373675164379641453188207722019607583045658097780675064602756737650279053941970406149866871334210970057967878856984876496750984590434355363635194435312237913962442715636235748659336260156482492305794867210484927859990132437356597896756152430835920621220899316663701403469203936182608574098782234396055621039475076949757267226200627010621091829017618071560682057603117105442985052807681360168572948069182088139179485701214038157485466946129441472888425967825688832841930304750196606033748462690863182019256548337068265117098491212871062610205357753264652608614189707956886856549818045666707443514930160977977888639812907315710332356246450009506844682609638925947423534715499917297519591253224452141554942000304073887454786461038122837852635011880030388039392922818365342326534265913364469300012282610790861608916637684152037161004872658007132579669745600886947932949001928138264980667260406310747401805038968247201529357935230905505561082684229595831581792720070921173269940969572093329807306855435209590140245164618157932069296473106056653808922679226365562378757358564159794759917242792026188053168789893188620224209380261592459772995652679572468790980007556473291830541480263640986437427601227337008271514074167645270406048873454815226312770561058931458683555470806161722611003031405330947774878427758913333186228421248158028343917710923006928141882432422834214892492201477723379925018680310637740153158147821883162276918800228236665835669993957066979946571076266116156351491315948468088368624670007647249354216395855021422689130360378039765244481995015450268188599753065730903947037671375107174203522316387619910801361286067276592286748742956985531659470175813798011430261662327715648149460098272337120783398530027717566917532000539786956727060734095924257776725683533560539972737980952308974866810552639911882201104490065691979616484121782895393611716330805073591858552292720677856865076517172743856048621425521216700644561625450768298703186869344909012095852359111680401159178197492824524239418543092654595761996404570220904690020628094200141615987541372890510300255314036898726510931700769725059600949002326080902841433190686960366674152348576053575006680654155660577517981351684789041934664587003934707111360573602383140254010176403493395679533875073384657264677903947827637813105368903870468965131441287431993608352273369252132642556779149041916840012384891892506016379288678279038098998622268109202065863782152901470152244414309750400454850134351071665454755750654734049130683411641746501150963880645511382477808749033058801743568569811898783657139680937023383609573397120948405460652786302222125070385940258108965492346116689490980992337240240756324925014954362767977096323303042922674560693261038916988657449472972678464527186242166800733883435443335858953365138533069452347701389842969694997288459626340733849647570394471204276934735571293248733561496471870004648503222200730902989700769631476387033183024944312823574324084742669173804637664686045316372508986343556013824559105382462179007906154682021532191001830792827510643230512715777147730238214448977745639609754526184661858730394926454076305005438790743957496141469834602848915149406048461656300113035238639574936706709621621477948195057225633585377194647618000719089043560045311291129448904068618895752227597960379748026591713849410626521898049146721545277031727731622510972470689455221754462550646093823596311826187600847139058761394152247323708101683646883408429346715912594184468096698017063913656054562559204056415979653462910764850007944065233975069627318452779371447526307071625346355495194598439370380673710434057032720642126510727845130345711415400828919742219642425715972562975698380355053884176251260793918650114848445881445315223862803864881304473462136892725449393048609464673101779131242908420988636724874909016865381928786096923008462536178376518608803019767222844085820483495158480199447108838409487837053301865870710595479898371814800944036955008783585880304934975628328401129009152313213205975811126597176428275840412005623290837551358660882383334136347445655699199290288079725231222737048872061774799433457820961118478541095851037002041021624846566268842241583153858602661886088529389430999573673533750962780526762698488951061312816966981459649857407046431384946477489209208246388683270870289094860328304347210370282897656694070827510331431056533818699043957344679302714034597196737330382481724918793730413804033408522316977557436958147942771856311773034564470805565500597499578504938136236270289432620730467958426795166204915823761556818231530152403735202331335914243530518648385413994415363397668397531050790467141273718953107297431721188807040995345900108177649128585938558513671096803626013288083832454618743971705242944387134649862136186251537184997683943416898950955317241356660667096506113177421887461570850631883302781794794796931404103221236174452115049612889847516542947301574591207924665864372423887671169294412559963315999950935889620029130262973414866929297340934105395181084935222242115528438426804327501326463278638246467432962305283610407057291007581949426896213110283215843790257611392493984246941278841901435778210725610809592732056434969563575579606867950672227891474514492993685651034133035464403106022187556781118095137824935296806073382706789154265556255174882048582028730942146648684078307245160735433424511763177794516936111392278040751659246082224837766790814817545513469689117045491001158015711866889909656608655101767440783958284980968311904438543321016327423761261199725289027550622488273874474927664581835477656782891555046013672095326029732100019991051164349541096753999067081428021439052631879628030404865880829801033189439200790187724697257228776153367905851108833331572393321971710880895865297312947428034876023393467294787387509187887269243843556030954582899463630513483662831590036388837366282496832232180307296874196130697063966393844218452185279089566622209814307660852359640000345787608085305915359797331089966644307335076169890710993541645913613256323623169057209998773039709947552434983556201903286041226676043940441665597045274670238384381263782191599987776184708367187647905928542196503581288211092151525785493980714356168859585001885377574024160242098662322761455778789806244477816816627644719118171106255120725286087562472058922050203232217475126320012173306601174808192573184912404694662702174441678384011214463532941216242701759430052451436443584715312410862300654589513461631577201456801680688128121903215646034944633014970103767928286612332880734369433026366378645112365277144729463610830718648167433771939967204332165004145813718288751460136193439147941239560368900668643230922903843723147357399778896776120149693146597580486380877152725904329142411252556204059569801507765446725275559776949579332326778939323834395246298422857229512836044912101159251151839982940229662331004893874792951889870498576813379483754057492641797458293645797820699055876091716718566863592395328419145158567192840077327453324620942277067008386996751632032649517188801831500947901025950273552918194574320294043993453669865098364254800927417762444791730822925420068637817228181682827377673137595238267193459510459685327543835004746007980863837629638812263222788478241503153069522542877083257563182572652025018346450166679851621113405872056166930606511470531724068730447914629672171162087230134214944769523114114627262857355754737272660300100328513706271704407656416811268299583902914068756720821362520512933014584942918816613847220384706116560215818594702690638780290429110245774422257625416592700428044123538632642099000052995231871871679591738666587356878938077674515841848245631175526065472724683367379677757198917615709051431233701826339675313616069770624954834138602860072037196366930517734375508581761880048952264607832685111422520649372474701546471685358731235200081371290454100701745169942898336886863438772481232424302266039518658910316158641609943200792487373609668545866538884287365498132784930387292601516611262808473384641508158399362445015955665122138563467183933446095509773244315375339557482411985852162842247848585645109256876779810739930744238055185055382677940955886485202882614161410618527974675669900262268403245131627333316133678556448171478860346101156653121259421529420179785672859842495219863060224954324037680111779426713681631467339162726927455521177315700290001900101355625180478848260635570188096420257500971210694118125566261312715038366056118838519003679826535115003136328131173651928125599857997049691991797727979988290437024268302924912624294896820312546518532665624073807769393785173790834595896518160727928116919627656317617613457949722556878662442542372962800012532312090311467009608636433889980496029365236690191863038243643449750769606386970434197160958262949232361055389494879450611950717460959191828338518897537991711102705450781041016348361232014219686427313848935361876958871155220147537096841109721042077032233033289383104120865790997023964992927042902089423868839846965702236120536919504873104419918083528995869454855649148677486235799542716018723331941823892596991940414478380192538180331417351047761739858200910309607817765170196170780367722640424288803867010419722532003786903523393454388069402408638418170857156875706218696482845243021382124682062735903866556322677646067851564516916847032815585304216412330775602343456336837524365791478477279053615138012417693262079111875281179856377366689644826863382578964657704564947476315750323711122837991880742624292503100288750154570130023353379156098032491836758290051223531347804574964505318113865214632604333362280569479416417746036987494810554240640231128684276370339411134565216921853750226022879051568748980859879303897625959412889505526143517894800500728963147886489134776730831549972058039208645201363398915872552861705318346986701223893361380343534078718965841522584860768458768254988783344244408063878312395487796795142055184867909256971661234642009567210740134200764164225994338078973652464834350881112263245282320164058361562314962221577270821237622205291142811213131018307588916743532432819811660346518923269650963823054235001651876171828414661162609393520571167628506200965293995089590369899150001843994110706235337475809427253784810697489081997433063089970551850486560939429297084091278248782291108787519337480414799153951617115495976738956719634003818104244520386726102513264457134355364210246335509997862862799165477085711639249564106090783424901060237991948312048224274327143376149545330506314161963145516995135871605421495821066071093909668037710480371029598592557680620909628168007152353586486596549546036706967337876608975005784561043796425670047871226210306964696664913155039061179216275861555373511124869513380525776063676213048882512416974381030538799660062891231152046755666647946805567909810666193903845500240915688320879942160987846053836441407930873254278117504162970179667953132671400721034095573335501626295545662707995530370980404389953004150436931436176760702332772721828730697640066523758608868891371589205944325257761854668677979309315337730331371947161810667509412483365319663902236885694889176635622771123730156510623296401409825284818445226065670893396194438947708718477265562456801024797261862712169861546450551008163093020660264461871790479237247540436554735415677836974709824527979104066102021274554855572546653969897431934169500396824453631477832592220512053397987939970566210476071476348864840405697760882604685831306745979357890942528636043063248447597579335720713795981341325202550657202352656850171445233655132654748881458066462823250439401119263749274137641771593837319246264726097280667376127943139440556683137363616268193318273037168039325674109857749462398071864448079198754909862069731438256823378654191392752212398250525111268799321636714096436437478489741486253558599072827215117329835640110994386684115977990358304168311813866519137170973296245224860670298952227314438405956551282977674932958827244668089695149465574845656935920163818080751984010070283971340519951632815667920164081156943678928964592781214732130628540101636606613666150295940309847812300515978545988884750361477817671742541486584159214134351532684582672169947245941081313174495018837449987976085114557121977473985328545256785576132856388501036399194873895715949400394838267208197727968640943167436990932469442875826081522918473263270168297460469979743143795103451518108726321871879004879540575785107876965052618363130478912239761916269151821017715391541817861402189425445017905174339490667854325437869872272927632819410567409124178850859717669016404837893038885644976193379734349091559559208472984484069764779538448896974911833342784122892857267944580845582559753943827993556799419850894656081009311096119893691271896912238195377346727849959855398921810875158222947974268176885815626042099892436596841456923945162750749847220424428304155426077993181221576383577733602923455442455715484231310782280004349845971957475404708414730808014537010840964020864039709619343563775289616944078898051915486457562919641537512802817004734365829232987640296107222688537828335974607385018681113280142569263358582497321146903174732071290652558677534861633146663717507433120404944525230974422153340189203530230516828891383774653818867346019342882924286208673425655106312080433502364666866975229379118926928045494702970930941125512155860411629792794792063509066821469216384078373374328473961536988402454627503068131058307493794721802689775011754532495277455457105349548133067382404370517517715607245691167233147061705817509953167690355576922953011342129151790214437502398976618922778521709055559688316100723533331739320315515273352403663488767810017349952555495267101876088612674210753225934932651963426692164759012352228943751948288600058904004177936338350984667115037559511520481492417714688229229926333165430521021957693664403928045582515228180278073919551599002831872566231959898451737153748072619808080788227315604283748665112815894100677317949217281162519750680584162302888062925124759408213701281915467553978805919454524939149697233298675431320641511120353442968759911694011249272213747464245158011819883892041934289634324830090439904067158438222750716197883554660393236028104415565790285897162040965488958780094425968875741417097449089500303135807830721771769144029281862176981520278423385005247404422431010272583889258965568318552537562038802659538914813701324710239649688557006401038557661393372934086382695666778568834071392439872681440400440058757488876707748110952730632439492542169275125428941297837567400830647416554972361549611833685549720762087642331796077441655394844400948866339010655136140506850226100274993860957444024908328069386986849443426098710743108106493429142451408455568376573799908508224063220711603041098855234571530448712131566050291819382343065282436614153550649438789848372640218507616495459710277348713997646511013377041411196440263480278257995797131307012151405349964346477533481089459861583119916681831199114519307385044813502665690103898352700530094657324726619015036432750901599711765902555719294227851393239511340406449885691071123116460697952304991312489633416364497354718737871799345181261102394550865704662025710844073703346027931122748045490496515081966259381621340161740474788357609613045675246675770906230789711159465374219198164149808407905049023146161834875544736065613372195878191003339584432665215476886234678544705369921408478080706468330524391280044682257705278553117037785498718396508090570304770287127920638576657809972595923669629351145838393203076294577713109365866191051426787182263838668640545903042318805616013242311636952125063407374313825136936431384965810214109981622571066002058982918753804406922431963937457400670380460959471113328743471070607843649646902393099820988233070177367235585300991317995225049703875798085731361171414112107302029700810267381890959321658550378680505688858157444171203984940236872688400737887282772827277686496519030406612228639529661729295970610192239448141851459942365573204463149024415773924442045984947868678779772398293669820207660941315561827209092544535306616894822400380087999614062525213604073218648882011189005840024393450185492229280227244362488611767547420056887577782171746977080743446362138540518239656389929778584054366859652451629066706592303867918041801671851295148507013966128643663751709972136392328428850858380309691833351214833590218709468226306243441169368309362076265137028198936942774225303279787580989287974778929809929129276887158919833978544697949330384022539119774666205274870046784153552244859775730276799039418438807320494046604648389974145781806818851803871644411142103144245890016539656266035233466905989195748895681271698393361991582194051266685557620395344471072894861891507620902545600724079410181329402038966064603217132485322871256826888526983499548280894518572335728854338965378329450439341175837097382310831761282614512839623654438573894369486531874642512306863309058711853475025786718219351888997916632469325871037128005990739741087141421547913972896477270259201383562076900102628489783584452068462979141698360722692481150439930059084613966454248441208839467915183269334298121332896035372133405981331429067208589643715814993716373912653388366804497871058102523678389710276401908102234654337576801049638908159569951389855368024723341888150093023583921800572899476197914019337773422053015799785955016608113540568152279365756145963275272939986339470566164780068170988388495743633161772942717005190229727105878635037845563312018952952362313650016310439637897935545859949097912447333995714731669467425133243938705697197206772791942432162813775462034745495269148049137833375501053762687863716875184070330402240205083753233697238937637409590777816401750806249348975268229595086964739332728547739298329560744227134645322325567016688466124430197011381231285879157643493505797743350289902566255980634853173330538312719796512080103357229882226597450605442968607864045135972456483029474082333995241685272951899188240766225019567949864288435425962322595927671319212707709580472894199234606532494272674024607764619324206821494792942146263079988578547770307649430663151699912167032052995009617935761420424469139033671338267934124739307312320228112907029131974863689189236524102147630519705237461457509334017524874657741829203196741853244894224169440060176693020637335817723545994950613902502924105100143068765566422591538663186078326286253787698990029133883296463472412538013203818639966939081788251533773412487759719323130540722469172160358990136776980460671955533060241618018394548999467841434963202179944204792949786413168943766555530460262827541754573092354310477618513892923408826729315516676253114466235198199094909724940110152207120868588765431274112656637184337392119020510199805924992350817791256115872224548112577563362157587222453692212901235154306594980541638293719149282679125301515036801782147646819843036673809208766955372382653845831951568279349419993478837978298061029329113476949036473542927403663884458096551331243953624586280745865823525921029950259146886952915195766037085505470468069097719807054584161929858214836960732945418716813508555569359887161863724219567798402741418051820121586289337192135292938389582684994142567513327378016816169521081191222679623363139148757201317675074331287177478883701697640051823149875921191595458438054844204820446825936928246631878017523785628701459835210204040514742222228529524912394465878705792661190956227269728381108084979289902183075010297533573554053009125098584094221498404926879395230001113216148377081344353371551826157903647913724044486512415761950320394829316943424769385528279098930348027252088752499366127214178787527383677881368179328736826318324544347544801366629432497222523623723145409195416323066456826529452444275195054395290425946922542475193096964601937538531090468049781188543322377149785332366092087568161602506232391339330121702679394823844135102973299693980954161362605150952422207405867356000471266498371136391445977855848693323253170818629591154018679390599679493466771663121414990492952749888141868181671822667867927965345603465986382417725111552059353840881659983842003545715060885997790184555843362113875034121211744827365084114164652333812456261233380677152601754902004338551160935081904881675646180504779832023864868522521460445127686662709188624726835970435188422475901828770069682072663883829111141441838978073946085999955126349975984043795391286588046525159126053028546552288243193886437948620785093476496075847447074152721691800937120418630171555427077693762272551012496189269057429421275617074377972180452143187575038311260379926500073260079420286698336932904694122428489851774946868798038421263426963439517538209867858270633098691739174455473210007027567779353313514762688228008309709540068014181990388785634959783757053680995373859027616569856238458485442305331650460339801717593014066880422016054033459771436820217185646675126892893453438812311602795536753059448503297395235704400814856914837171167175797297027981453850828110204560630384135017572152571903548561480490644084511631786264243001447282522050061734511069507557635945869038109880779514941439290959362589098341353041297241835905489550741967775134627916161110269870776308083669811659372925101520041147182731301857865910754921807811508497345800832237738884936873489053172145923940314838214514489564759587677882268800694898797487729504219623226513874577557835203078009598290771549531575068833809968468066803486344063788872312070766578922519267074943116187363515776032897399833553918188469237437855766151258946127788670318139898944986849091623400866942216161174302345250705339621773921486548115036340141639653664354110925875752036487265617831609051814016970392552388799436768976395980307306212940280844280324764476507803007817088042158336362526529384146632881390744741553054423469524440088184791746741484187093440994249451649161377678693872059674631298341846253862456088586657738558476608596172170893647118154350403243046228244178695538736536682253019794985632110528070183432905610264859961720428752240852025157441513579475079201184599874248315818301715504582983729249902169544952596863535604164675475310633884460995705882820671594131080916413009782543590905023175692937597735091596583474360449011294221087660824486991753259274057593724152349936386410630355009792858249547959375533904682194868024485632846655528637579425392573872497466167540102873189855203750657860125529736141139803090669738121403159748378635868487596432457090288368414765167698612555591763430634755652508032110379988528755050171303496200575650567400105760577224355841657251965143331772963921204049455441304313263880113495781526217049197782523802344390372036696628857324376423565678644786036201730567254264515614893917431545795903503178085701097967977194791279964000007891408464778521598177686938784708128125668367075180840603117639717391078082292341800352431889671510505820411811105119056991727627395565556651740379076881088869528300669793450940157958731629716350567837814725536449180549719494706570614788539417269449574548527198238857630240512899504116874670672876870347536822685883307754989695764215572811322910276222396415648004908383034083138593242991629348372318720841427535688171697917901683270271816249581697791302033443983180515370563154552288923791984304250418546927085986778127564150690787629861567976200304875056214026809744457550943948023792792249235568443004946190930187425960239094607159147603993914361819929852878863045524489694838567353129981607385224629669842169662773752652136902876502293177648932174941414544312031589552779927836873629645852378102452234059586659006532423146368577730565329560997667437057650110378032550577092002755461669589130679696119471461996313658589760903180825618590075209683299138865407792537306510931679016206909596485620042913542425303845365995075166572960178267217304088767817909246108517471761080553186450093769224508851669091595631896337854785793120663852228797579612717448793923842171486018153102325768343328433421449793105996190288418057973426554636057196146789380425920279839884378119012780051939283554406059074716834253148361607066059194471988063496550399897804675366464727817524184118271214705670860426103207169746025702902936239464428362462290486472911528312315186972149081653607129961047379730181954634567757595732454733400471949875398918938231437753138195782939373439087402016833044236493073147893617866013809036350195267074693166542049121948131394966467483527097384421530242704912374659628044438548077257998678824227049751233886890484047392157105998318492228743134525444506444096140806158490576485088718473646500339464955042868854434828454972059427124589537861749607659389685275652019301362313045906076215037383879734914185970466115885560700933679580428112148909733849577382419099882208099378809625429352097616205931903047188835039385314604551867907526590233209999323678191752731272581986267303972010479961541854941306892871914246938554439978794258834890931659855515206226774860378768728807164916660228710008677697359697865137046842605266088798291773193589407915426652145013093349042855254887641479276173260160697599103236752168394246618175465056168561781091278128714354093804028122527260696322513578367412905537243471142466708782806154938564274132274921970302624474983094859231466827317150297454333276600321232927743773972295156343128625892587124893148340465526030999616431237338259148319016510412517614640814493939616977309533424058480153646932895346067332594263875293466587662460266812227901146666065461024043275918492282632530634575082165651584101162857630874595091513772897818736627324938378646130603297146543398839734445082319969898823344669249442660299080530706927891504006765470154553266208340814858375669474508153717082653764283473388850544500271804008037831835807415389946402143672228815005377681252796602295139409315183707168630857275991462946237204865014883133695436680894729442687170113994969898831880555367588912263166723798575423863039049951798424186537013093350693673097825376314611607507720842133034486321901660149621157606472810438311203091379899682523540856361414944336513046543912237358132405505394741435750891698783819192338627827470879964916432531962917406490498965567261248821281806124211570054013856609121722795060076882851708125782992584455099861195388158264672545841786459690477459098299654726180901657291848063017735722159307329574059750335287427015405635515146604420773106834482098881597712481152548969771373830189791151886522495550929568685873944482200648413264253927588238315783235084518218380586928653438563364864632791489111856478616416603139378301470992908379868337051943567454416208429320102246130787005637640985017992162053323061361344709056803403069978853612652265860880642820080326026615081067324092010382840829878451233482056188995111688814528639684897962648209277815002446089688741702092528234052628907148900211545456380774772095465414530239743441754336494131947272363740531445251658280717961380625230799897266892236639823380706274443285765155786071318362700567583214211173490571364844544147129962010335152196240613319445711934818874135842480246117063115111454566000366882917611290123971052825231755022282352924127435831435012427142799082993130859285770805265867617939810727603876726198961183322066994762513535815078696832693266947575275688110563261396800307940898750751629055311308552078856646641107167950100659826282625454188134467651841584353179205922465507229377219597293310378260166132027535728870009009844832838949015916075471240254463711800900827300649412473678744645989372146375907579107391146084480234597958995159436230930489399964582711650864847368636514552858337351415845235231959844332365611520365000196746847792677031445890220848132457649056064789505951409309586686544770152421298391282619866118570517781575651578354867683371015694376729022087145532999262854430516495997751027172850754183312766312086669641107086277324405002019236560152844464012601248397944210017768664677458596110748707410971558296976058470029836485601926902781017834535676936813420775836293818481758449584101673510877784955401870363574024722590135936898465388229666521220862582862662543145806159348531207202202909205446629520496610823797580132978080864994920199034005615206962605116361748740937069208681566602029001755697781632250449901723254308316941496289854762122301381716320661991840437506875792151768556137768514079735605867009595205768933452879927430200125519580062297511650958824634146486001447370443635042335410049340750448820382071259117035554896627111883240413380524296288643206063867529911007210988122342260950627826645074416116544118452147590846054131628392485869645085999024026382983173451292880773971275733011446175160869953096695670351819717540800332420847058367478180234574852047637901105635322228417799127426591382329849980139326905354664575683369698063132454864198516252627336383668601856205828283772412626215690858663807448201649925153769923774220455397659346477965309412074709255246948974282091960145337259370376525149063658577020064491878169552472706801876559917891326364127407853130007584959157515529506952455795374889080161199919606982971052764203829465537179490106706594709531428262461615504093257235210887378134067595693135665553070098006357148645699160762589165715852460965566685171571515263705892956172127161675989742988741954375452758038814362495686074941450720203753147639837209801162880271954586541245291311816027546169691330098882558034467120223259989395922961062023950266415025481197868371443492026100674270219594277233607963970598249984652176771520782974959731190682612715031313129813349967727485880695007425462185657135087610320379004437464254787802766169369414879483528028003981143351885734904658106811566685943243366641473046477500156616702025689115509460452271999907320075413326508684190213492120134524733516310855902596572386434174686584522439262022146002389013593317288833233960826312412860594195459321940395557016178681328421481595676777820790145775669017489282920880459857876553498087352553671457334308448043143938978282499518366327131597321538082017895982765629725414315154409052582545788385146037771996474537429317313748459290057651196472417290048161943556810451165622569965268163000100153854568891403591295156544179253321562328202032800710004220774431484562355100092869236014881682720218612733025313742168359168036999148848210210815301108675160734610879027772408334759224931514810994835252400711828864386732239122429202375081953986747856725005493884661132587836235755022076056735481740847345001612418496421823566290906894922622525061872533308719428303446824015599382138416194712613735851355383280921264207993377689618884487138102310954994434567605523299359844825006304963419042240502254763338056491391037231122751973078834347898535165006826731788354537945769128047920090791685461991214956024637472023457888522376584377957920426643877626388369065261915495364134707135838554844916003826947012565670903590426066443018650156900250168761740140920789447342323163101358406189659645086385753352463043201268534125356236971097723470971564960804391039065143193314258359099808326742532966766424272280687589383749630839103849825611777344711515344540827120293183483593306850542967871790056312831476483440687420663379998106222954676979352322693135550890911390635288311652217582662553935276953863809845589728209133925908415243595866658060824545573423549743715352176591157205960409591476997098790797957839320367708914655354126711986488781699072552137771720361419074351083555924651809336357527466263175073636765334864552650399100687858961180154233459404068030731093186183638676439101987866164981269514976087523080378278573178638372384562548458033830793904726583848210977930325790230716702349681520471780517766204973903821453134212450060086672895087191325346080477740252190219749038153895307145731946150884030277014370859223918208448216366923338330142164563809119206509182855790147276410627073520465484248583201120520233396983959458995490918743119644204625255819563228320051410820640817206720323624425630901569223605596425222815569181155974485102665201357366500478806076376631820326389134420664596454921371471482181012417113758016211473666824829275014417079961801384911964503464744409385670651484829563221543540603008101052013055220845297939290349298633826119828994232563273306732941979501953696489860192879265021809722463621582922832550887425993337830338454081833715777768537057733371818225081742017700439413782108845094037058012680551684680448186056308624685576705026391925257208281049693801644027679925202933542555720168427412971958158186120031654975405991819949047167508004253939225758573137713692499296956699047770836202911106589931385022653541679659430741776574009085575438050604156278087209370973559642535534719540905578981006115816920602271846075950628653043206166977055259161732377352526566762237548626418758859093039987234965142440392444037150949610434009677034589243529095135333207078422819679770266907644113486103134295973166103344350600482693552780160327047403043460896307427293275851863709973262529927359078094373756675601723751378065070930115474326272309902422894437095159914400300174108466121152888399869517660536660752547799630973126086981681662719913782148271908724993248846687207499400820878112249597899878368548415273673028876523695312564153853256054747413767781276547997298392659378667237157303288810266311847398500690154427574548249547556223327487851483135294505391340471277547753421904474395493197467770314844647670844035859211176154259736190805534590266110299059480548431287382194243708052956887306068922819685130267346169362692666215332641289511384811570653002183583639216680722443985048425020291930177833078446029826987215710257194971344102076570753018757379851945288459628724177521323334944377959423037554256407375294404961008709693950907897951244719781206479110647755285016133262810842323734165888016270713409817045025517615440202045451852842076764723271182068605457328214077166052511573821382905356077991706519062411567258992275006961540461006422540636383922900114611763838692335851532245532148869398576759082521242054252272673684219563558760965762242584183108914006439802231732711295035748385495451272969549797049933147530377407470463982515657479163244511616467221474946577883404502634934580730304960497897318755782946341914487069528240231373909052052751535223880237105446102090720010746563438169798842328338388643930801535708417930444113551898312512718353661803994279803086551622148131753523380776818718352875258994421791969287782590285328402612539066803457907174926080884445122820443774228164250699341949299170631434963578257495530494961283337625340922932390094848827702952796106269342591894548643882783808480191627715164259552375436408801604405324905059569122541867295454229621911864000595981396187194632418078784254404044204973791930529943168724038765999482479410109987425259709675383482099838504211354213483169224223353585280540621245278300823924746216250694995011054997849052147779061834010242034448718972717961739868743691688473321109800214628981183897422420438759089150206029211798865908183803114609090262253470518526492234089134112795021678866115912299154164748558831993390147681203709063190105998338498472131961182561765524874428473173679348797081964625696743357442609578392791422090930985551380255889389781412531465625597592773451717142192478478532620931888319589623928362814986245098869141135836284381095787454754750288866170207635114073467024668860053943394242148891068708504869280883794525040703906148770498745063281634335109033090868532202826989308335398734895957521853291647011511545387041071658271018096563369188009204428266981665596991206786698609637183948024255018932953690395876344052384732353752801422737017307380935808586671373878116230672477015559401419462144586662028437063876479761372101954362726797593543875164655492808679755693110497316084134928742328423830088962333940056571640306775650987165566052457641667368889124892173928331961795010905589406798304796354956053939027558415673631943424023175516961983114769099967814294434440546606079191225276950140305492031001259781436504735767104954535623445510635152726112419082024418672480538623779898907978006427074323794933896458863591872899628448634906161098507174494523662580242828521267348415843205845978284518959634885863028899439212587957175013160821941132397101496320129560101331378590123026425622954123624462404567553697291432474223681892338980524459649924058343771059455212283252679439023697429146021792899220662581268514038102962906144063221931173050291670451184183603787069002770144441033935158337832398951085561216979035012987084844821395398119846776448486245352654990758281527365214844647528142181029969237487518673828335464330608999684749565719521178784212267123407592709533285490835990008853327694661362890307107153921319760033758232073627024591237630801484254327131126412889127830429228410240112043435745938132936310443147522365892084804149434709908116358062360054213005963108557865741873832373493554925333344945292986147003876720235870422077168822002141840430991413962665387147788763104615295349996339430681264875649883710186513296110623636856202379001520169684722674650727628308821502039275615565874671188345168866349366590024130194801441472557675667509182268535601484575315449279400566843313923478911216590865136852642872023213108629563621841787015184695877879715464063819789110122286136259484158452726310882568668150443542860914479322307407608502050891879504237457123725945672945819825373828032127740635790036917054850378262136040126102613203358089509664996031732873469126373373699292664087767215070995291670452065376587154213728385311075115218784817911212472446819135951566373897168576784283860179914428534811559053158935810788609233909093826915144144811074278867823941761069544267566346023278770090270448090000615415074517416308969111027783962258699434746027839769488691063213244180060136124607745087731872795119592579997558091488200204290548299453766364191694262292982221791439585879589590096702568522644126150436748884664683765875057263260417836218625148413019264595304485093728178909605527417830471241320732901936440794608515293841149447224166299167997674978603587242530493212049557594514580690500635173348029081433702956640947087799002901646955492682270002951247237808459988324180751684053931320897524531750128076320680335156807606594417045557694309079378675739729598923434997822621931298740698580141185277586939502788392661510323171653207196287409053922655213651616110495570037677977603989094016711551647342968317004978595444928934684210316788580462267779861523276225308326134781963970677849564298103135567776649526100996898409663572349680895483725802306556811303368207576547840020240649971360332216190275285769032014368491570909124224758030368505631475701913985601905693815141040957150950935678146382280941360593462657892716013444799033916233399240569707127044631020472731621195865882326520645222115521495527064532233128682321173917695133326195947149732968339756221550359547020762375818915088582403783400941655025422732958348487692288657700608686640058735940601996996347273279337192630099741597259970641364410353574713032561203750880875385716175684199677908046965260713868844915393911345224587021599126495022811296176886666825049838049793814739816466967040834592916749516332488518595846610262240101813070920260197721375376945685522747565308875345386838010531607712159908981513193888071165293802979276508220327262399135119341788423930842784508727509148277930098170414699139245748561113992796621480346257231720108650669201506895694038888573932858424176325286900812900696173997034031567815117173110516024625845130975628607394120813731622040212929878079003590526208190662420849493464007419384239622477362964050919167356445846438534283327045166798998886336696362768036471572745388069495870211713039750370317420361423933270610660328959762514898528863082709723374987097614894258599509722002402157096471642212074838435980332996884002988262497536600467311914039477663605580503596670131178879965086974228731873126638861339190338394844408029458718319394279801982002139310150988945477168987974957812237640925513179278295706895996745472790772550056350844159127735853948402635211732827003139133144325987522065226931269457519696093356512072818511002262684215703643763476524246398342666713047017230805298850488946053988385077900583727891011769032279024597527346181169272464469650651671678224807639545334240793217635387138935453164422764267989957176023498634427969790165919207491917514161157550089376579486456030630512960890757130081108709753422489568396313876422108427417911649257566779711873562933688487999574960982765667310951056433627698291543864769877030482062907594901372903194378197886161380290958365579561774093938443603416345194662044201988394689921980620372533040430286275248116562308510027031329662677962397220585838809513592108668480656343945817261473084486833649540831463754918759095823858170522659105391630611200326700971783086006048080877468376738461152629966672551085563049279920475982708532654715352127288189128716684054838545334376458285321349984203041615325180446649640813477740780566494841991009179104990444449353571032875583150945902282093119489373111386373077334393416848159139412834689223311479283651248842063629230492911288015215339213969828389485911793794208729775830061379110148062903347456618148232702738072531694374518302806425770809698938385967665470244733938810449749348987148601671973273546831778554278201601561373488989927771929241396686796730534173055318130472161420212678563221925007537003531196948776065718311223527086786952585062096428680890867269800296886903521525789213199780859163943649148218494935970638131370016285909287436584877399311604958434416624568553341940948703073618704177554460910591314161093426024635685870046564586163108890283302003316253349841385257847824295462929824455758883565931284694452545369417306400715864981770709153619929535147855461118147272334027873353322406989092316406736152946771456001081022629529646439627976805692014472574873817635160053524880499816351767774148855320060069014982262469128278309960313805842705833412549557492892056094424022551820537636931140251768708232557504649790100684847032599424443782549757380532567148233626161026173384000092979527292492130186209513035751065061166875913595401825432203779873383150923690841565987602566188914818643997078326744258441453651227626752744715216254459245857891050659357387539289887444565186971799911492746434745480794864206077731679662250756383770070141636723554939020443136858202971276757266473914625125395856055048401890162444403916233792057095396482354455999833298163958303118766879460328252615051107161839851212072884659405665798148684209598788130108448821792970334193116491298147942809865953558794760254397730520200287745732142785254670942470589992046423581243451605719591600934203777430879492211759394507165936479389042207731731021696933803427009148586814726747728003774229367888543834016445493072230083504077925539020291782999758929121976764085651818185877516500428925737775676960150193896966024716256424052900361190382783572619029532478819454718226113970916234777060349738823537546149554212377966589555465569392173392366176393980654226645065334554999053787232089673753653082882021822364702949979953844364654250403624762046766108622125767578402349871242320882851829688080537526802944409905787589127258325174728092784444188229087927499268591067769287849542264216504064128839542731411970116838026155847271330909416218426122505107193929919347179575508324230252669927052995409442788776304572075686057412827661181984164562027659096329508264270349649547865117967947533769992471088697984797850752845349298882297896723355764721498698963861484148097994228111621628686287261143617990302787123741200818253674512212281110717325662160897996431321186143570251809333043803567883601931826446352307087801905553522806949368659578679257733283497294079191270227543252345150463347081583314878877950739286461044179016443887109188754126508656843487986542242114155027788822634122620254236841037120741562241701914723172497041284044835241720837937964104371655319725281396929813829920579883028842082351212164945902796531114168303386856133171832579238057870027258980010704422635633828494744874790002432854171695361456440991421385939163751444978037991530592279601090089489753537907643933449286067674059552290542593846200298047788414048180670879271154340004951828439423360674606936573334640699971117026644312610928878170580478782122180542242169412574930400346542561625577107453638910482437250748842211114749853383329683064761378966077488120270863832195093733079593320316756885392089428423583538737999814501601160120390135534293770200762359528985675607396422619078775830021059199734145182835585628874479846866465671459281068925400473805875177056555982860896142430368883653356054941852739901648766478093099265019074797316438053387647572998425580218918314726654966896088178832615289700578048754248902685354438633358053811117503972757273440865953601465792669687818986670979909492469385558119074735780645680181089613857418307225463417854102111578237219489294986242802756029044620246651891236808821600058864194752029492707987828617368164314714315260541048931926314978947010924729424685135491910595674343499430823563202997861685794338133489658764545581285914140164507551126457313834240876173201696794408998755726575081354453767090061363991829482340247287310102693562730560750780104264302071933226521356369117073057574942319702162661536325322995963133286344572895326546847465011324654611763865747733659237927990462085290151289118877102363886513258629539490069722344792013208728552483691449939969029050416610995653843758039211296908977255933146149856370149158173463057847926865133823109617041315208357298423755361347235555098534441862012174831304549000238163329860587964450282140916155144277801957346840842196430153886307536887954761514922451336607879825415339590654739190307611150139090329431880540453748882416729956905931002010852511827819733240950907828299286721996851138887711923068005876933708483983988219575810857983209969023102841787017144905284560227609600495756052875978382177631884701459713345519793281854095407377450714460029538739539934255002231737819663709112114989471349442166748096882908950188480289445483083039704654040594273997061747900798161756474595363360605546441891276304204249693275539741859912102674898761675458009946790209421489718097629780576390856946089168927182319144545566211871266526244151593771020546424627395501297918152840431412049565987943368107329125659592568266128099059969072201761421878150046406850120739253571672921733903197338321402625175201038063583925014868509716914321781876328749174419553886482429318486073499525657078331625401826702914451417453434706627076942936561921602606762630795974337845965786727228315678951580434027184930779195187823361176957483679498346018932246989785166715939929790631316641949454317964148484278795752268449097984157031063759235863296465937369616850210159895353158273963985870478217469638504679391966740322900807558694872214432116537191775865290357933194795561560972934359326255758863743773425099675565963506506331011688536738899684890504589040187751212483959127154840809284268542721932150338837730997827707063741878083709039118762187772696188612937378089678835337704903595042421720833423722798344394852373179354051242680218871608418037287722265178917650125727109529339801221189334434425879580756887291442518709565718610056155504093330376276581503275586322330250388848614163704607369403194173327534724206773076373784004323943455399621102248176155629051192084226155406120261235412148377249475875033627963956524713861787274493204084353594777038449020934632247644188878263464031301010708203468418447701091354172572931404267120698399474657600956033636914500124540248379567896170100963292089642758034040899348042981009830582150309998377169502070552410155735165146052069218224080570409839888424714014753999744711557261561938728254595685427979235026142503495507515388585801824653152641709684343972646600320826599845522116476928318357914816591148797694623076150491308186499090721037413577687625699992343514203454478312302750678275018216386090124192054145999522999908667145119553805998528417359612049291807205282337140126296714696572971381109794954429530656620884604775262212106537609927221934746646453106576199956248211019408087911194908638149274217353678118348937574096280004781575885819772727961833910602669760722995964076639531261440103463780902713974213832407383844581384363138940741817845098793406881143767445620089921216816550273313539846674491612503686462561079155268465093394830219025832833478920114918094371805025831169757074914077049343779042776919748306661155784321776339612435042215658135891384088325469018591367303167993101626600464357880876508222459017807598695112403525042321304345864825426570530881988040610691278952492726002844566470774118453979555594196086217581342936093561436051826232486520161246186891313082612943137508355434906165602466952158235857119254770171702029941131786354584433598610145593622581087230702421851520258859962094581516720394954084928559406265928673793595330157204712634416767266864385479688952498227490413326565636513839602660213580039185443053193711574448971399594245525156468478105638577993359017008202007249739870891913251257345314211243730217108011858097425696084452865029695119699172091100351247183765161380729919243454472066802740055423909266019437047040147659088308487097288760661655437010620763948492662566725754098777871323130295374275046797425284694627783559874267105334549239166009281182344759657262560777672725388062443883853139726798299217695663047778706674807148169449930275451102051169943543261031782986363572765485458429395069603095589411073532981560460934998612010859123023899497517132014426523186150328581387042764783528854799689859607206382547148361663194569233291924899810393396484121234489833972823812288190098229598666687277503332582484002978527953830143405247831322199993605135386368557201879220869968462324653303253617072267510237405877710121856056036608885241396425311302525320979064235248635412474117786631489052001988619169633730061122800256036858791752326306441137519424478450604827760397219277407108730868903563903475459825832437372809793886633731105287727843928214943633302276402760597961210685320932045674980169284069631247474911235964620744386066749991344670544678316458036677095262416740261357859965986184377248054884976274106120253704988918543326881514271699771317464770569647889770934005310729210779043568205224817871196394124804070195934175548161749156129048909413823281433596081953662468813470214452219202284168916499853169704141733657882127179262441865773031672801358662143310997410725229265090358559757626616255153540342696783843004966200753913736673047803702383458289840326412300709300546112330492017519291912182309325838081837067426462176582625704522941700666090032930321643494571830257513160855067642955146424716865193905126479805539086708825088906331488710567033321406312442823936890918568964186246658961727360307792739868106530427677686754901743782745804803029590060850973313167301300146428514036035519294730856915722578158817522663484076122660376628460086536980846696005495625664008610275904762957439933823099016311827371624956326501410354144956476725479092512246416586480557401493018180279269130438853554632825274751075896502694950204726400117592551716243011872747626212458886890729849561924079223459254610306189221165255732586250729089362830627172067559793041348883986421250223796846500780033234483082861173680361415908839455096850537770886641736036925469408129429003909546896875200489412373314145147529668707501866968887035093008322220566432511236401599582889618539133325205070733251158593301495580468935828621304702031041779681362912785882060718303861836635265191720505455932836558328163636024756312628721407508242839297606741717250219494479867105011701124542955960646500819362457595634804740080774490873361470311973440769743683411366987767280537804149311789500255099160741854400895624180113635175810472665214044485168722623441845183353006706415284778664116259009924320925952757016683530363901385720538722452053065495284438947529045453613937939726571881368367362329163606790905011056164309223007750545232635157166923809944571131733197940823782298446160822349209797846052358037328869926554728978735479278620846382126709907341332840263232221845445151740434699277976669762352107451106028367167812554059588913390049224204536572054968464276330509076713857634478639266827863939653579699345083540251007842399712693628693578257908655859259807948113515722341434757560230656196130186878773810993822572224280716329121212702541428102130223407967969208579811116827953861704245966239635662184550709953616395676014340327285088184789914251847327412585484583348753283933281529742520000136084604825459573820632333383001684204086247090858540090035777089745142246173459312415377051562389083966290446475777367844269623532641515939998960600597007381843041578267678847609806514232179316853434764476952086052621711360095155380297436268388984199950278291135801552950136382891246991303369009733669246106201343862496910909037949798883544718943495622350286032442739231306216707934092455029270460637822963204336528216109979000511908644009453478746682386491822616624670104044490510683260139611888704483008033667701252861751345585557454831014026026695961138295095118024035116658493492945445828026253406863233178466019930178027456341898447372454350878812304439840502059278308032321648373928595373534206154519590557415409475858577378431189883517561752449631912410900010390156672922196258741242497698628401526829556943610036501784347772032020899267703902760096329065443521865396747360551916658834566823304845005369127446335492179856200578834312340181258254660954451152576767679172896636913622857138131954273670451478899292266356917305998768387365790640743103060155035685327548274185753624597253517421356809812400875275827725818441348087175292122724105697684959718326012025275928742453763938584925090053397370467816185698631115291621746892001906968932927221398021949069062443270793717908964996392441265909933261623195755179542709275818542821923931033078605658556073194021740661720832516489435543057987790042387668939393243361227283229875730227360263232173176283145642522263300097400843369609160111732913365341220662856756255741403864900813044616173079994746848181722436458277818857334723063489731590018466956737074621156529999589109893250662025461867218032596501504603552341198437097351831103258583945239746342118466067776626431663376947087040995083508387464370557458800411199831125118497815778811835643031126895733622390709347841651351743837111291550435272664472776343158816587693777060497362871474703488256760008574423625583485126368452737159183744977825548688443394536997657838585972909581695334242467303628975112508363946474719069143469351680209964256615254733212056137961913686557323865706223812372270806168460827606302439490457551728993966325100668240484524878965920740783697152955017026414543671150807563783179043921271118629783247019312124815088072336170947261355300810047213413007970044362723797715275718212270194297562089634367761671103856271787064144929030879338489706470750437887405016071859637815602340558611725113270507681211006727191113784880921351014664585374496539083629391812615069002327646318397010364427063986554759989023621137906052509881506318617068459562383008841419487901808675957179367917731290516469223083407135346540330465891841297187619791730233013025134352043981602821956124643752637612770042388912457845542030282973586193855171222834095835753299739938428115767064274962159709037493558560683680156047545087497384627911535345326401576352603465833358591822630274524065117403628332277128290712816514523374365098428851937428504191639100460399630736663596231591408362567489613510538145994486853037811378615979513647216734840927984212908075124111101542467363797817070711216029238153391991357562981565314659173204968620896868304497148578667653823099420458302953495743219096327959874636854484935641675225913867051758998120845419609407711167899799608791284540404581220885434543721935739744477154239522437219385955700925453497502300279000033864340029975031540327231078405721711375434098293514032205317247461542845342110103599264929363546208725648779114489143704407905654459194167666543239108927537978632395949147047920772705848523860535706130475714329199993597118275573144471064786235582473171166757557626440989152914613564590664648979378137268383357397020623215639348379646974185272337351096996640069180624531356496193683726727625286154460931732752947100115391770232398118264489083644038187282804907365708674249735687853709607762251798273488129833299306740438834479986133619635157673986999392587505447377299078056198454290613176299113830763915987403618081131827864460662788872362948540908054143599710212799202290837210850070509952330046665546658568965872741957235922476373594804359606332520333728896377993760627649749648484398869167219671583331679219638938499256981615596657656427617744684975521578046555329010902848347028806467858218260864782882865682622308209308317961379682336830741220628660216039083877334432906878289138673782274605148591158319873539085626454504895451378830448673568588991722099473593222796379690634492252533407867325206219388529509290766437572827118840499061444221539547875683146389724081237394335559905553646846391866627675722950142638736708060279100412061118110019398427201337511651409623694265953608386711454594443666580332525885883634268018915549982074534136936993821462275499422679732244013333270404772811285611343807858800783680645045208258229113089284876137438445116541896549599493897849358575065728893894550663303046126788429627577779350831799434372986999098047830919620905063072308766334414189665615005036397051499035234832478038934960181973005279643582799559327675163399699437998051829261883638631623823198207710883621234868920666716801479475228308254450365735041265136792166794015923636469693859061025891181902205819106636707234067795736259375313918528569429193843824091105870153180936661794268833618225782473834146159876931390760350664850034599675798511863924993046523801284623344723582875673110225338896585865211780217915952601174475159855086909576220290034516665102226557409681102117324668046828613150098720865965105443449068407957300550336154645829857964797248516585106187383429301401944445846314239738440260679278886664419519433441590928626962497995605147915989507935073054126136380449484396331092821903312993167694509868842475855035958651429245576997627207768377229387533296362656366456324968652774595131848057344810772096636250050515375256698626367021805825824214559940148062610989439078417497504774851435660382992496491474241751281053009522164565211817784335904914758263666535446383430015853605057210222652355098579568295451469341476090733759600854884910839318327695972008475548682367311023770866678791338340765981023945839949824339645339650896214510837959513552056255355453158506471678030689047694486242348166317070411631320994186843917878068318053231255647941274895147124480111536397088160750798909934045037835579263673208490252333328635891591845233449566232930417925125167195149219782361707851648172171426900371930975670811400455876702864593455201780076184103704696996129484017398446372890905589302156925492474336864799350886899459934773285863735019843988731259136280032275411577439555026477573175257826111159206458547151544873679081815502010427640536831924075458800340544554192998190109756286646809348035392415758158817163535214652462184494147903361351492018910923756170143094269066897769362314774374000213196576437888426444292797278102435234619093442636560630718425587732859440269997072643188095900044176874243047718204080974554423321829498013392446031050109557172423953900032700236503620930366681528309498209866330063248782819292584718273869558930911739184916171345396888696615807454390960760611948193765616248577587644637689995748967226839735950908754573622715501691304506138021699951488122366529691057825612540864189961423865957760946054197716863980592139508242577161030966589462094412111922560239538447752319234633529153758346261277638337478848775260148502712096287773607792853547957793218930746437767956441976113535746809244503692634859510372845663620507653113359185071266275001402740592917349005708388636616967641550503217700642984329400879993276510951064541440290066279114030397934550377756700961654118996878570559907129253223356066751522320973205805653714896241884841345833867079618984751014025988522636303577514389427069846651795807899775769884698121579694957901735498392295842446048868646090205335732272046038244718246868849582998791343519522130362466768847408685951270776464742861155651983097057726020056759920145478540772584866125700854471145372379848413709104567079100513578299291867915512750059764059541708262106151080927674976263080999198780249264470138514991914630109953919671827243130094255103992517891183975236479036080998432975717697662313298120943923831724534458818348194938499998079975181062815679192094295916767688364532505427446582074260871064894373190995559644295051233596536228479028816668706888795001379203100959077905656233336380346253706142610945716509610944048614468274259602065713289432542854114678932821449665758003391506360982406760029956740365522020075254247752140751016871659552421931772274335367589632132631469987733501185962908511669950713693997712925542748469477417756497113300372434970412829734599448056597672328185785221497682309143967721034863628459053589507453963059494960409006323721389408388435091130008681979860019574391567159698997464014502121321776749431838540627330561839894193685311490691282692507444018389202836652952010652849827223127756658326616915996905917335167880000916848106079009323180401421357834546162590449251226308541418225734184118475694608501451702801353382987629758008464949525763250675454848950584911015510214636959283404367201167909506308206399104874716089701910337298694332746683038983874302252818738470035380787675397376196546450623727968282366618845611332393932094543839877058061733287730890276554722340829285748932971758879513765512138563201914556298276666357737094324243126720592745162248785409301764169969297643024252835451943161753260446968718854510660544281705531221076589466522692956445216604786139201343986047793447772925248750023982639859614346944829540559336737445429321967293349011979659573654814263032478422137069753898454258303290326873685795016713931843179823790217223106650304992215564862783233374396129786403259399153539022811874644727943885428996464332117107749907260062868820555733112590897000380383089145413296790796410608117103488196087798945519043042509466204918641154396402948783701929889518690307573204849376843341568708316093419360899465126859614675355911577312050766509272161361990662186107432439517932233134405732041446435375144497201953797133687529869435355868643318469156913969386158577101021107155426749960561139586897542931167246687002022033981532956777827871249862944637240232260439866855434144003963267488539921541316518745334873491692314071821623563842536311407181498060237569277248295347922425385318736965786156496621606652969561987144203679320448733878917024419729771325853067538071734165749218907154899709436364378002020788193532753591686340850809033555801570111134035593019835442476374867532026628603272020888617121017758744814633562094103492289705997617827637641788735542219305763165762468359577210099500253047195199237782582669593631723105496122908978037533348868637112206411592614727018176650279101603602451478724460316057751599792600171895147849297492484127011737317140663734592367291555220386138936656682404135838900418954602514639439509218173938412606035918693902821727691087067106464318213570699793912671401320528667558624935015980072002974517406635973861222459523225931913786133805432471147160055705894579193896424520333952868206781601466299992323425167827719823302165364549650959425888680793803349861556954375619312810278669898865221961775971749894715887938443480265684623327200802910859801130890473578596906903203071120067215010252138297081476808510605654551331592889556163209595144837018730120072778383635301169513569786066020314802678824312746398304817551748960670646593346712935882192240088793254682200473493810931076040838451854497109432625719195539736458709972574089665259559429938822733889797431145813343342587799377734184931207398507386373497205792879646854535238742780953987495993337603339797604357424380134042119315470218532969088554914419420532349316004861386607268375875699395838988433418977465417883093410630324144757120145592704031544400721568826023708738430952887204809086211631032214936262752862343362194630894258978734512872142097992162084834741930162714040603494488915890286420806667786882130703247258351971235217348887969880660310009221822314592769837931310332580681522565198413492033796367916707286808583061304158047749572675135764280305397955417551511961004575544151021705706004265495504327595133656287813408463091111372106966532544623946255593900430893374323775155257867119828464430864443747818911065486021349370555602883247887010387039002284305733916722675411403544768434951696099778391771487197933702595491368126688923657981011166902261401465074834333515127282203346290131726055392997027398216454915569492109154204217231139831183067300917674922621707166956361844950344726750985311655866426732903495755340450976088206152681211106442243607833378657667495179073390800529163405143211792771672232897437578223281979671689765563944654752507069097110636838469703718243379915569170141910052826138465217665018312818156452760332066823375737703083859082788093670067837829973462235946486095912685552306072908042662850291766293309727244189182464053500285241485739804405868966198588978358651167341333528880101117061276310926901128901995192181816077731540240775161952094361431681167900693808382165346558017669886450859980187415551363142232374898214049283457324013943110129227993911556674234247494903066749196207818579171019925857791648139601439510641514320455590748443864754645640660242874871535096308661667777682264700258580153797802339146534103548312238043131878035068942544908410418082093281279640625787007153332975853573399655670678393217022384012319387065285259657019155596187254739556604145900670613468438812972119148312776787769936716484643663181891774555151183062692545956515301765288590248351625434973760272502911144487972084598517228062705457225184634760236238383134871131494172725713921906504973972666783072232199715242810930034604963787546481302816006717202626621660640887923311351996559519052364935827952600844487255323911821880124473265577059938315246202499998102007491964129425724564551729892576316333484971653839208682779238008725883700856314962457335986251954898329277950685405217366337360144860837481247932796481722129300775342060791960718745591363778972877796759839424963382338393370502264578484907006727573293919032937736508975196577715234042621641737196037695835535115198102203517949855841615960903103845936795042323357029082035616064040807744646387815258263600402407956077246806434024719711033467066115829829614533671605363404872129106931450222916401368204212888502198885386976615789976445976591435433198794974686871615914053817449843465936393333873060813600122243471371671299879021650701556702374670694559582277255212361717364534595815328739430493557233942123653748463071509783632890545473453618644383123061798415693984857329984761782195647593566896483857599533509541269967483952764967049355823317902376178166225490521726914410587905158734816002925513652042466664960933625593668158460757325753939307154803528177347885076263263274004949135548767324310979411585086284119190791690490181496460474550527529715056694408596759242390894618645831001460444335583441499904307145964253633195663519045360565429096054420064181409179946022377132643407183460018220098447283094269368704043149715336439690569279781896087639514178035305555284537191121073960893352333740937727532766535129462056287251315680923874545314156824895772115374064837865835544098177173621309683229182056356831480106940202265861900056558065043535440299707007906246087137237867733620680247621712281199071554812215553316572367771851300022022638330080998260987942707248044731014813655579600940745323055221211908655334299776247692149356921822409598519056885327560049492007324622178660837023559412098147136385010979562717674318056255590207702366440493273173519925364544330565429164382859999472142850940817962156307499124229466449121497977630956089631460220574956097535461433864363604579079204976955639859931324456233248933632524087382334593505342307100659528587634599735681082347856919059408142972483150052569410499992062249715877118277724458045172198449456549320268774138017429157023000362040455725115349739092885610749293300211504493979585012626407409358593867707213346284603763586018708565360812202867394642657805732087129749570844789107854283738665231232043749980654221145789110703109088231434004031067071633633742954340263529183876190495946182149938621528178089232371889590915848507804413995884285593692018586872534734292971400229772937651448503115262771510914990745617710303647954028126796459506766291399282152904138021002628927670355385780917097870829184711310559197918994716230268362584482427951608589710850764720755945062284089351850725575301954653993639313082025543567277191559519333337917704141910570827517294009159375905321909387538924524291564105013290605933418141275124209973151070269477817278109500936928876042217130587498506999287591246790888605891909733443623994400052963782567022598680836632050130212700777998891398528807460661683833405973653913845910946498514484689752248706437521528761063168425875503501765863335356747396163623725421766694494592723037012045567030259281455723006595286418065414936348929908560053390056630356046657225515670478795313235900350759569814144093057332067665936893542906168377212102569760334560444115456627267281061080285495759882029819394579921591131563266521797011564022126688618711497843811248240778880894450486370695021215139454089474200757705576799014556522202650002913731176940421891029019728689395515243562151172768321680747675688767276164113010170376703266894154901060297267683517049046649268017922008438348158206434628428195267860062355415688167669935045659772288827076205415673250773616991600717975106715550432414732483349745414162809170676022616588953425900831174247023529079403192237711051443746260995398808784314016523180969109204211069297591100922182003427570169337863076899784782158111202628834067210250483758060197554145721948952067922662537809018501122908562049610962982056398434511172725624927236728063033620011898056490397476806149948128470581660558858882614572857918371281941125767022028474271302390281958096774415974392972894203659843016767642482472048897323127707810563056886380654921341381944103181835685178989435887853760956058182524391553461261317268900099842182821276919804649214943017281527213299573956697487009436537040855846472190196117181440433589240563867171411201847150688679919261139988196789551659992735820300807638785418916694532447365391533087250906500702764413772625744347622713520575109535589944103124996644049370401712773582977729224899071042939546753391014268019342534019902244942301303552632801454832135568568559439955091056022303502278076514811353029035121724556883709022541085085308219350472226526946283060798219737028626160207963055663746304148058434345750906282960072651580707311071474579840373513248637773714734217332627999607373464082507349638241812986420078090131618756029714573796383991576370754020704811366239827687332260256711641691997255182946043736903864856951464106498828778375712469891915878911060586069345943324250634895533641113005449041442431502425569639506558946458755073143907606562869724740154233350380650263687248407426815814807961648331718111954633138603756280149750321656594427807914202346764228643176395365047799214185941916276626793441683733920932437741715947010396045253130662888516824416367304468666082748802244069456975687609050770305274590550365714887729122828409897978466976714453770317283365615355072583412571695867715645979051237034048198687718400041923387290962901188009398003560191265296799526780862774021336024867374615858751495576185718458006995703616640211749342649491939596810112097668048583250090554089092943640313368617173961826829562006805421093276706485939319781521072824148142022341298401342063130977417212707178198962230035282849965630312854583848278360348196251229066473278571008169207208258804778873224242244768780067019546920514559471134071304720542807102390394256120799005021173353803206550532987305358573404926846688786111495464304395074091628754829528570188170720851920900349411312009066703365682811351370187490659826939998625609665556569282112543317155363328001676966449279912576132514576845817535930516788208278477190233186391484335258885849970892373802442487880981515973931369906262033703803115629882908832509897280206172248960702863294576869517119930901020912229244372471878621698621498435048695983234190021220887969500730185986717038173184381967995768262982724628391002417671812507447837961217450071002059866366829794890679946027597037230991653378659175902102166303475606873176229904969550718421785057389570210335283412502434540698135953391187262528573321264875552136598738346434638893575661759011572911825812076908383946851247232041952512573624198022780848214233302112682423003706980628479677418417118889879692197464566826768386441398724041074835411103074769751310182177891347712215573321260329347460052531459409766600145850331443321270499500430829473497829153138987215698814652840112191927962329643491523965940867121315943716753545651769415886560845294516032312757368800418779283131302324507413776016777212621451792206931273706501852895065681121753865279202245078415521377429638696495497243458087029149109220921509831468786716511615769841082128266005228259335875168197668564848625452667744465626799185213821441817701114672515808243911776186548212989839715140447095761854762746077775879829013717648791477758013669447929943779941250426450970514276419993251303954885937322275755407544147909466154205753994713406504728601051716989749679530078373565387214490649236771245716190090017701016044747170455814058957729479519097285397959234696552785180028181591930744305488210393741032479794981177702857729082597885966429581684377500788543836103617588938919216874880237231012656747867158123487961203116973831380394910119474187081461879693154730340247314346982430207636636620084513220689644298854453827863885793876091115745266443165600865219372246125173155099649872625285849932397212719251230305888605970515191067732159737121853394214137828281733278860638585773216507689123343918741771435917106922632700288274114999183466344179648802544621440543700292599019281829354416316748217122208224487754306337011120599294344984008047534774668576614992335511994392529610448253896901735208835301973194285525302068344484258061814760950296805267229050247378117943775327267114038118177915037102185641095752668608165968829701724065115745532345035869654145879870381669219407706322321542026215760192132603421705854122016134325957240566832477211543565961500730856472947890378367854424487586708333674051925202006933704133619130013710855479555363102533438986266379840570925845745400177517713841003007005737484606218989329928843713945765453135237031359127392610533033158163157429843812552242179342682035265264236735542313930412973032315486133223599340948836454231203726597005730864898520183629964514896045654247947491575252111824683639942384016731765475970409487784863863845059361194358715776374832692230546783625002141898399614664451773997630468249222264206709659702876076273783251405704256992040623049742878983082655357629313937368953940538828539462345505606313466807945353331960020034407160678984655783947360505567987100580206946796503222724848252192470635138179580927681606042306144894103360882058502643813615958054211824705508018283032188074603452018616438759859523130257582954480537228088361603818225238591498493428805718739013130708781576388769034536574502692906989236744804026688996021818887212684297508036911475592212875547212617225775962621824110371405783075824492693654349523448867727896167944514462415108976330214403510173680362793380708513070980310745205343850736266296901720519196371193444542786880093228975149465952696561473905455125397802811030428575455942380238401052504545520544453514210281148814791685998243581311405745913354321603860547786743628020312696127107321911579129634122024811553253354482868979438503919796389681002924507239025632284583342196865465590700110179258139297855962637217277320282567607641788437403136387111193042742885619472919380044547289770882180430272511749702485187589017446726390326243651214397317278057915842908672529750603111648379796707844161244685945433265963513982911778237313283694539968772196086512821840349952998455997609628327125132397419118369612958760283139843210364093145907281339848046043784310540737647380486764208947517803582379505283451444583764827928087983422112699080548508227958242002409151000691708195152518599451902792681680873493272446750907203581136146523055889473730695911728744618943733054530920714311348747986125711515467585432671062757011738143428078756073079348913511724607654258661064303930984746728984292585347742449810318500271649202505563335978497844246461345150530109528988685085651078049127718726394959910687889080127646822160867774107455386923357928442559805360075178323085362978190887376379006168919875565893568579293277788805105180444135512084128919489846681493382466665737431320544414720897609659078897105301506556919997563962904315123213320240288810738464335487300912347417606267039254986029669181096240761265461151816720214263422024409998987054675717850531114930113250715027647473252436192465594589850150616192680333137170895456619572237604280938802514025666172928959655412515709035488988470516570876345281802672567712950556020136203972671640101134534720013195178410818238184860297449492597100630248290181643776190347452885194529558436825653160541110532010293009119586431593382305835074995958688872027925643833319390629881022077164790318509742993480156747060837815504997895825427964073058469780137617268463152718695631338374317392900136125967327100437243772945858025762848575426713640933477844477038933368154443182359516802282593866584651302919795602768862908088701395751837011694582399774217551552413193590914272920781687684721466684623222551180293976893944918199454255375070730269417771242870644280230280188636515345959940871652838802775952342911244004336925332646151181306600025601531004832905851946947591254385158412016401925721011178888323361036788089693801792530981076759045237692454502127330595593292571578340359920839304466773463676394210077514374484430396173690198261191341570961403887506160981751014908344811334207505007449237283948854389060429460480985142886626572252647031536536603906474895042691703053475113155143114640730945314932829186846172692737159397477767662296278594665215433583074498236634959641174129282579810587249548230208794362131614909616734300362775945059576077147913355442227838115311792411093802249037470252506205316483195260447744315336815677470249085888170051492377687642258284494076137607541797600986890044642771236857925352967720098546532624096992855408433897237109523390886761408397418426428528311493039351706878253583390802099765372817939196810984728686091633592495018005429598180487893535460599465677591903974342599715088647647887518756559645899947082708199006665068722109512197539663729516316401820988528734760259893493672012293201024069202897042637493248111725291501612299803854353014679898073004825498094840190272627275721976597439090781765568189248541844327202141940097530913322482443118013857875618182706802956086628380530159044092775732948291405252042580455577147066691330718103010501024056615268199561432702266732568157626134629245337818222301847107154238149234894232702661586048963227174349361609489376369488238856210689993267559489886627512380284442506633588002837935902774045992395861250022635709286717451960846516947342721609756523330023469466595839792053820478676660422096264262428901975216441207127517371601560478665749843312729013766537524331803618496289708791822666827903963282789694916396660378125573919218117366334197079824723886659731120965281387198928906923081691586728211313369683660572491107401760862673830466831433413826739524715613473862578015375910588924129574168277427643748369568233819250436625048832204911344136288967966949276159747700679806124111582774406301760945881533447744701192879502936096588023230905350157678954533976359162613123052455924969892688927620601991240496709965133781038470081785678444092425620494514045420109179427713689305354685054777695699884156049178751563607372470633247641562429703139664079004402125459352518701973700051688946952729674523169973497619839938192710261733379242210000804295173851541099174829253965075503465668181642077525004165174732720822035488516239388419981759359221564438511078381012401284181911842713447877196548667112424032847630094541658439451199092963282182420126197489919764311296551848758918808365782441544556037336824619359236759631306964226108051561579314016358947806568153861921790751694540004728960550972036243918287228488004532664647911128132555350167893930029025960232669263833776675869608506242996624647555128306960195633067286145884124258303075485778477961671939695875784487622924897923764203033332544223662937924333678226329496258289647993417015793663040409018076899164585771369415721844070094065673457468448135532282625686201167038075958683312429734631745923797272292800934304330582961381246242436705265791986204806655096899231843755169091236046266420979101566157041905919234578808823229976338820151603126116964706182722150959719332368713733396024820812593401775802228996268705602244863832093534486514044280949313538464273365188165219759794244631981723668575461265799842237174427683452299528693966182984490931408926767635177368148370011724760151245410424362457201469264185227241954566144268152456401467261007688176968164045218460000533491907958408453470542362250582843469842344342930613368794952506153338336152526982306646832400741103120165776263373621806202304341521960373682610985965168310666566578729111153172315709088429912900675385387530464099339247219045615013727138590374703783712179116758903435586281251020226359873491360577953976540636495411760355934195468531508052131012095770418867091093052192449570680005255124913489531663329747841145351580535152805570546565090341845566967847731501914806772185944726417374191545243394974925985521741488909649883102412354304509744195952488468871565407119842579595048181463047108016150169589572091422837595620752133679739208040618391721474414929484791487846276034226619614149990999743876556058925754625625260915518112301079480621108014688218580358060095878106809721031684456345982030126490390387932822556956950009370769112743442373845893924095274471397172985295629119567113798999754326916567479930854749608899857298436857021575652026632419621959869149943619221994012915572048132154458259295272000587631291731097455486392696893396964924677540742385918084955181996686285164928370208824190629200997630832444595996743943252886418838347249223176370556709187538835141185697818944705450924326936742145691831681856375200368145901554630076581934906442958055968625633606877857707774242382637915825470518518908217426446795612384092585595860900083980653293998019585396689456498213641481211530549559652729173564306198752692257002001092592773268020620564003186502381540493705623021712932309599809626343236814905355796959925873161050617257061754865779326880209763035538625211146697560505022031763445937151185180901955510006205626273767132400641966023560787554817351484341476838860169497039596283676303011699938200670593179014942732791283620546687160275599349952935999727602774956860416057394987216780165310113720880340116014024861415251398082451987075639400891831612329916693857961842353683343851007667434521472372570998370031316862908429656717370488635023437160583326333033413894932179539115074737716541853854072510140751414894204416543042365806881536757152783809518347221307739492022032362918137906164145558197237884714175245883555695828095751195165236942318452923349492807540690800061103285829356886655933590105279982165130645857085632799800034109691396423913574221529718450300371427104132085516732778022658097453841446506105057156038719064810534251755694130115345214941072778696949160565181778870743703365297531323305866082477700035708148559409978009086763213783064164298692305982562752658648841547991320982060097975394027719705679135231007761518852501790906023750007153041599902653848948305165149684417903805141817724316466559321071225564159965675370706519719940899045595740568761342908352681303447831522552877442947409180390728766432642800714544713543769486313134368530679731687318256104114910259166207824559380368676663857790443734481202681104959525996495337793744040148516340023117201420893042493861251327724126229596722365731802182646598729581240498022442249745598350919615270304846062982373728690630915541120368394253404355434426977710608065977118140302023921181694452087245916777486988687007429996407373374190341639507097369958519263895068311753641842270946990493935021321266991810155032459313244119538873158517359829665412198785658201408047957188082418723117268218468707114858786957236459761617965833017465924363868041002801906377564370144368380782384096151562503386552834580401550530066242351018227009263506747545320179083161234517248535249452280272660044431060985294486874414573891475988532937426462295079175748068054036820189227040358643591236952120747894144113408551571339356110343858872881632936365830134049936251624429739406280898234087238652833105562979463783649112025013811510032630326017503013074385694417833565121631511870604921273850366591363369914863340733015884331177701141556847704858577205019366442694354660640106324826009579165032675793273428799903670405937789531211771529606538574565660554555596933481413249766253072045864539856861289500869865514072978003245427906676765656273527844554859670266222425647505779555805912217986925599945345999565719074113930377296781037614856802291504822379630080985610087743188960173203729391975803541739928342499390822676578729605596094589559446574889050611490734863129271055494031735460199044425987028739080914432405821663308512818723595119716346935332211918006378026485479770812001021319561386084447869000502429186473271840870433730674986297898381140092874200475713681996215841082302032251036047392384813884594907366802370271370092150122767889142607052527527012705623875488281319252150974971230362899398937435314564595821227287151703688084563690511437961403948640527012574643752256867315729683227011288907830044672131859647879299511976437418608921859634104868860422802653345840144010354559487970586108044624652197251271833200553535604966175892842050728835201430893439477227109488350275482638100354705246995968120695012855705681563132268183475062161533252437553052334602680644445341778382995669399528154229965720121905989819765681880114408097969033570995047919681566966968691479987298038252604659496296830806550623667382106561615449830368204249260439544044717310169303174927473127584788031612381492092319062811365195212956390390675304760889303020510986971042043522188949218764859490476881720555765345088495938517595121305252060278087795251528991265711240861605126801418591221651997258557325135794486231723833949908065138081965356915125076339122189062275670308044673835034683927952497095250386859888071171456910444698887990660966012537010839641549072058321043898043489263420291439976631112305803650360068376529671807334295453060959256266990135662057944183220671825833799318444824405660291168817382287713690336588998177560698909990269643367677448344411589693893627127894826360338330699552345046654366599618951975890584620899752408183907886098388813994765507563009658585296381300171730153265153343857982293580744628117346417757430051273243835805094585164681359234641560788017006076210578594620901377234455611618699963385494119300028876053890750418378369043017893569563779618899172376614013336893584409051541223942085164378893578504320494433420570624514531842503632016994466677636858525518285103629766102647352150215835057021993082484496280951885510019484490917340290511584506834259535847343474756064947012722561518402156762628058166130850834903940510835987590463445607878081648725514816339247681785623903334505179746874815076413013450932269851945371711605351930735137510847559208440512291285581026868691499521765997380395691843646708705584208223376455334594851828321612614681297139064069313738204751999278392091989269915801873607464019970547327918016633638282727075258033498636409641212694923792438972587770927329331925182203759508710410137834771514664374095961379753279774836959591909707268868875760570049390375097370061625185050960040836057880532204280694537041208654557459055726299166192499351041162234868502523887265334183122334324191647303003675096249585878224270246491930346765163371553481848135274063266874207710787167657377730146658498661163891952054553052684582441210071262669283218767919847790390892411033422982305717030456690331097541818986662229046994685323557527235819150412708098537469410929467402760079646926285809072614525613799262244625835583889853899350872456571225880135981300946206678167708886847833974664249722780631316339936621830712614688449803660243016030869558762344182888324070137577196017751270436403268516310933514269360458409341999513629705302481221043066982131957238282042419105584297510485140787828314042646821116730214883261849555101824901608692377205532712681084518510282378162500425746083291610238388421978289286382518834548895185871086130426922051489832903704518359079428679989119043920948901757171578554944616058527913180884253887358352053141551708119074315624127305612040163953539595254680417707148142112876906013516099364268156417055805238287968955038256715822682113098843180528851481063452506552268707816834480462391802433673202331217340912685996940214338233301123766927904552445609278624916411089966159979436145106999290930269518485329522125524618911297350737994549487428345133630745600479141465451509687102303455709148466430754251045238078692637141242398632226319174523305157741990769106847814625613855807571286491153310336512115117341067652673247075907819409013685244786170774683442123295012135065177714170411572230735174538705416661742466553118309166089802972592745599222462981541567487857539126990352393662850649715205704920312042338240521035628046715256511305459515957654168214266920771497879998419783679021583976802860791729169374060793540855495684088434195103192089369231147676923041599183972902448820891573043476741020693974303282809530211224432648341856324809797067170888675070842535199567384496744930274232296151198114684429632555027540584336566534847767400283904347340746462042101531168503071751306220032888776214657032566635694866180830351556461828030826304503543094174082707722616507334125203382607190555057388287719301505160725114214140776865936761040661474534298400646024302916379897785721154995358943448821935058057595874406312549992442324960187470719044318269863226135452739020129967730843118162300635078314987047933131908229598034684660855608996055983959079626633726995446580607697611537544732146763160489378708987780142217939913161513816463326682562947256809282185545198888699087732949628754468365302616065431664207396844198089078168088318082833346269337240092134481770730393300909441828455311409676830328523485952986915635345820343906662163487245105908711185471250597312471918936196347589326221835589307054435477944484841473021205505110203637013881935291060134120305380000120268715739782027037701101789743376605711455061542149359426242251133613466946279586205826049447869568078213433132762532834417643746646388521587798881549353641709069868755977953464538808386101635723429819508059126631808960810071345262735511154609921028442518508587105114321418546092693707641933592388821126707047062154929342858411334720783560659089448141000864279601521716897672072631808743444401521091759278857673921605952535673249296530703676756557196264408984081201940979899410104031631418241634844653754659007328169398721415674589502161948131327030180663510492071984899849389935750587647330840580733119916974924726444623635252939578696047358469441396366749162091654303365079596358479952221828202822393095358727289834482840567084550211468610123369390638987015140771668901453437399488475872439548202127665694217682974928321784880539505289776931252683317451867517607232423435798839848989464289896084903621402874362349746294822547708266937695458373832612470980512733862323597323828484098308092554570528026373115417982781060926338856104731718975241414146195941619593124893445025643021578790257546019341790245464351459183661078083570349144251460062232607066766732246345751555396619332759124036023379679807652954776372589086109570912950089894504636107619587909575569578617913229705406265907115983612878736818803274186359529453473335833306055710504858452362198705175626368221264572434065743442727225604170553782350605469043427977300852967833824468745532567923934940783904698888814255420175583339445114754802958826021867555994790971567970868355235110079218464925475390737848149979802300381613447022734562657292437746118387053515326848320534718206683198828457873685757505704916920360090453032988220068544205052041898316257960708461284751979763839581039865976299786258227277520921456611643395772130325636885149330624234625446501561286663218790996783527560946550687024031371058328959746222550938685693935150575651078670314609310931194328308090729980334016984837234933783409739982619977908676467064703144306425911048336917489319287267678435257770189343550843356228979245249136650134361168850991545768310263394467495183537776632364348283126498936109651425422811239499182414813798600119161976751090346607743812060522693333182407469911156479724463848875474610835096018620518924212546903420781844190551012098864390871176958099800146568346139072562348274815178830495670584982788112370828511506166654695083013851702519748352247465678438096028253129981741438554612804307441713403011948381292678819736033877535995642028427755893175925643278489193711433396550533688464182481280529186868544672547441454026141891988282390572200327191714335505242679027081651581410983659357816147566141137463347129768123397576491231280645815080225625687155613382818413688464167922312450361111826041425664626319332729293075479051602030383560141819736607291004020711697501223261950731780306818004365619864934843367501476041140689200003549438211669125112016387138540765007108300281393192429232157011625261079079172922503379468512146355350568621169467862865646051533059012536476338751728183219285149759499672126397102157400083790767288932821853855499081481145652756476854090182942965438763182881372916650182126129656726545793524355132630620320077734262421959382684413106400158088221671288973104194036619933124728696411269898629803440917950284382093948902258275321072770572642573075399614124049359408566134719677844044994660115574278415131181950806704539313841840079408436884962092588633304578901416349912831580359085931543751478984076547863846270371179431709587801610875453920047893087434127981196906759697231527465428171281718768781454619663901497557780307961870933201679976682188608448122107166908150435301788760102841590705326430240389247695396832024520717283200123630005172848318056809727726467574224433998807761262270810949224293163477872851931017726360165220098729516788116932824183334190341595675152402271420892257246329247021364866174759081950145164490871729824029894588810967513090128803869048261989786362350435726050272534057469335588985071785317689166274510280395252496835281744323941023701826954052412281440166568238094296473442402033735800965114821965347022850715154512993169710697252353133443998710774204503333193775841238050016065714866894608719667782465139297897026935488722992292372427126173060798440200252185180121678965965562230722495661387470595095161357764860854163860508412549087603002385084585654488381626732478914239520364537057455292870486504709269267449203144391653747082535799454455562917088745848847607128523032046028013266377695217986413233784674635325141465639580695084231238185446455952596420244610779592309909450862573379842578274092568385594094728769683899921656368787358273797663781141204978808634905814672718591714945021483339159452645393986642541725398428120992915388778515875878124797090820605524302720731324809858112971497250552051514041768526388929714520960602215940292655544707471428259323408739228140531689468529122022290905565473847258858573791024917397324358089894862613270584457662760043138363332809981643732740257610376618431092328203799435012045977235796362374375259263421660916014963979543486689017751507629054796695608304068002226861029949828278186555163665953504823335094359762682518151486817390966767411759139926479058983663929321359266175595929836946733088093993920180647580712871963869917078962909785803889605890845290918355974724033994510776159141475095325058893299503655580201550303187275307672853358238543682766140180072617192908631869439865846965871065186339276873525864050040554370703667711937877665280181739165148848702655991433757567681189487209171017768690846527714173696812941358822833721192214001422515995537897756303943968674472829969819345662188885922789733600776602533072452384906721759318915924303776535763705218458393236714274165924462768600544638890800647141678665938116410852752321934771777818067966085543841390788248262459011581503832063332435046614434725478249755261702593600210373275123300652749826333116307771895234437531816076417945472471116325529184173367218108584392078142435889604813436381370871063073794137959090598911024500608105004237382990158517849427610204185970249496119157242780543107010615367120552918568773908376194776409485304680010417190901282392682430349208642546617410125488508915568419739056509109233349947875321138158530139824307911959107110915742865256021328476603891523504676549103079741566164568921326628915985028405098493487743207112345129398073961595175453015264071075583621231351033502122189976409114207041634111944741498062645182751517501977646986570963839348982761208423401449047272509735012660001103080026242601743856844557314455303460277411730955176961715043658255553279352806659424092084005055814327426145794842855982717412770948765307266977091308000929367282924510690308571371565433722018357482199935594988993553103872701121236979984199365184056169594487115134396532081828864868671566136287537995195524682837703158208582588232654562848496311912788957538181566065232163832406256415352296306314819389466758821545254832567958810647724291019309841897468686347107152599658996988832079904163060593971807387632433183265607338770614836887068397313656052293126021143759461912800514976643489782031266340405883754058552461980600912885420981985208087026349098762913813432978183143852281700556455281100033133221981348024327227769451500006729798023260515990885908075085283897408170433445484024612862015345063702692439489126616383094137417876036499126939792094990468650679802533909316614218854085405525275833641058056926988765036454838175581766393995195939290874560759043364904953991540256026975204158556698688612332527665055388405719358254018712420259915129194801675126313289110080005552869524837327165992851103765517016734867725834542410053706225954113489571926227122115705493583462286575421963683987095740142053921190328809542432116830482412934765377763197820644600273253262457247024789786574287248125969232726500517075537912561415628153928712552045502083045387946084079234171864670752855697917251893455202240550691015798546949645091228983730683477640365630815601742559812157595173601319344330325718783462445709676043222065139029600547475766935004996310622798122174317204262489738670492476483519822764594803885858838370753924667729609301059176023200489271352971679028092431767225893696160748984536004877222954984231284519788133664802654773977832894270643709260780342617980123551414632788875866480893371300095858290608447679646397233846055381927473951983171751990571188076649964345805967674262017726737546080135949540695568719645753727757933879263709491741143511697034903783062228259637131970951124311581430947317504783600836693141313139905217767823859342304719521363194485369972404522044280832646374512439022796911221577014606763901427342970596460772759879708692890323271755594641941261755753456393091989143105895171442485923198552873850926380411588675392754170377257841365889306981010696820920385604658801598220788856488478011170812198551860807738132227225209009908034265073275363206709305440063846569169248836737625308661297577895891472726030623445448343420291374078071006705967313194933726321902639945062791245774062233253449032197271922876263496065306352061044055069888910069079893997823073793522436297619774344703447375903727268744133804098187415680706146991994783500098204130630200806294078518907459248835924486193959261832986933206062225088612768491563792396893168410796038476187573116397187217391332140637672087813561255347153371106827513327990300900395862005751407935248413957737255551642267788792425624308828688067782886935522522115913799098931145667854517413783745868253628685570727505265891314161121424258663319952886471833995678250851327636891359912550148635284521485809713103509784419410413320018037032404502131289454041827628326287134551234878229544879608591965769739808717956035010668281031504556441828697124912093762820477958567359640702172805947795069829229307043955649635128263166724641552861997471127930142197408481324785128473736216642842168732956716912225625992672901817505577862644313760882939503975104306513641090585749653955314338251549300625522144912518055652062538754464532075477300339588338492871809275050886318369679895894718536056473293897045215330765526606338376307173091590696868251475510185187685424084847353958995030902375910402769402649664016540438967599372412332087598799482452825819691861223499233875831218214320776340984717819261475204761401807779811263618552072096770568089493061216435271924817324315722095657646576911322318616968795666344133886854172237122217973392021172262177792810315235938036849009906731011083617846974298995542199833937991710730646798315824506563467696847057008892593693516985381445909716037870442728883500963574787773926893490001421170820085460949348260838111188576263196920671522648036617080334455881779181282257459776831133245043024650649072681675100818437757967971930094467494934667407412662975788618314656187918868037525772317893533354927390442006891438724824133239428342966435729654671799912622577520423957054710909323675047098961461725550577513650158109489263998944799726497072759292256955804563094271840358010040587574579652902790243495009096687104418368664573491089692033461195845722289158116981964889917435069679485766601732467165756861915598214960056522317690386617648929702370226122444936188656481384905804120266509642011381034068129367223345937794308323832580466239147278947168414964924596820624588618353648261343531641634842855398777102477974310205809157181022309698325709742083015632841560666822707515660554450729986650032491175533113416189971962588967835721252978909112767392821613102099121786569588839848306341842915572504770455762129841998826228764319024817389487928847505322586993376839747878902841950530989474610289606149709530750758820982243307759058771589362877829565568426301378130018640715399233626837715191750522755657911286685957737214297613414320124949623174209192790414570686839171041565370943786988359416943550581369548220610445328138475336879655185623008721792538545212031772553010417310158959383233966457944831238952690650467169317420503537023109650456434743185705264626619168923271781392977996983787847812397865399195014834457219227906144155421811623991182272171007274584310564353798253573459486353053264518822871216821934572154032081540808932809208090766217864931409217509842855414105396434648457351729831459237909575748895400742572912098791641223448466241545714460423434248354604211282971524271791716958580731603219459852717958025923771170660947246371601715436848336169575128491455658924095711953043784110174592850719488740106841252051807505113399620075457230364075291029929532829403790184830926653951247918203537822044551432688288477598431520431345744895250016549717984463191407263823613011307299220492800971864245914817338818653163638967248904472947317535402856855615263410400299863504925289453217135996454746396051934469033955088520695420423271667051204798030065342627253169131209592942202743527863031875077841930321417684973100558464976749899257892349865894730478350361246631402018996987072672576360129397328028154999936520605428898015778059059688115858422041222320134446423973142815713223293845531335991367980005097064055032428719089443782920607918022523299323571455167326647714942267022602569644374097102364112632674844469852073409167864827424447380844640535726016504892946994724960295926802882692386002105748570026731695962611712797235975501750551716071827732955307013456447511865528004439041250401854684485853037593325568779387160702087734552949923959476843776763717691581228970783652251346008764679926140384881075420717079455753884541113450991389584210783943054890225242312344850529577086275958709706295165265195286237770877077939396981317056044634589874208072285841173683961603780940329636521415872508202171615986721726858413323945011459173519894590824150200071426583698514697608522179260476774679074456242742970538042887829048864838447200389408191091025684149763656564672504086282230811948746064810685992596879623295670516058229036008417463740587373561452659923993392349545974088147880336266934775191058792786023641797260555838999017558136693958223658565576786232343543465360099942110024654978401054853883133651265606896771979771682285957155066584807489262945870531539762810806078077771337617181053643371886299842940023237512115882362627999782641611533706873699283940733080882189273044600538804795607703645806273174566951141940322715212378326899465155587540857105103110604247956364642498413553619574811639968754392470564474001591022237130798970530254271739954425424853251462036300389634333920670185992645620780719036807503911627064154696059692548584907886538833563973731612952383205940591736402062747003563843949198841617523740483710040219374870806414221406943680987317728653007344721536775442502113576928373261281892160665513109026862330510210882347474113144543109487835494704988082662618595980100145452489771595607542305928605630173338638799104647101985872017691509231370086272933805048086330218295992662917344834674904936951446725609777697156742786011865605700601369819769317945967874986480514457461946420461398139204040596245364272427378108718599891942764681216764754075239327372936612334320561458877481095058655607977489985420693407215790630944103791982608605842311767137747671477348770553103945216629069622696681426682077215492330125943436299733964972830442562244331442472006556920499070983755753241878097648181092533374936722766237513419482011952194832395999717424155418477890948202106650268979956478983327870953905157328803236876011912322148423074118680956316745888827890325347513478293913969471223819393107910273165603419483694649642862300012678616039959426816816113701463753304249150407186523020798602925922454730620998634315737251342743484491602799162417229937791371542624593102893406063578870442353387280752549598033595588354332216820931644379541045273753477255543857028201874628858769466417440318748363938765692853596972061830164858440958994249445475451006392035760040291681100300058606569653968131460680029121262862517763845175959310890405588453903837737895724953427799694397901940403785047956957549402466130680907070202563896843813800875418773941607883856070139340073760940817135954010363060989758779213048455493321934847303337643035601276418925089183902671190567752917328682546200362442922702323935555156405856406644711355825930962282724159796464998597833403671476471975486471412768029351322665202318331861894449816538684861699776406796070783971604883605595694220215867290597669060845217946964108491924933913411972909721238451765904373583230333487949066816496302637035065106162132500891299462615556055703752785780125954402880683237629698581441914633401778404907992695065254057949450454615357770615700293819791454811315233464637180057546750336194530152074280675001293786702462285758280546089341677779163493796093205314135616646016270352694281155875250090537034162254219501965897805782848740235903315356202492572856966257311785321756984793064855371937397671081265153398283590507336895355458663361146386469909591682275216054326559912499826617638432917003501045570261418403770245332625996780377950835450283741967916467064715327332644487178838676749549263137858109668122876564329650825552255267502976353320708382782767715145940176058278888757568026134689792816316846618879881737834019400549976453131558011954371699301789675479747510796374863753341541252589211300384332831133524767809932326605126700145781649614658388187845340789083228054228212810109238215387600518469981534659929804384073038065791804692663361707904877465320351118240601912352288734694323335021801000252290161896773812915746872765001600993316163234016640895077403006863000575224863494969489872299215454960670807108426724223704727275922530155931685290388072093396624613723671631841809553418961457907085098310812197405305363981956878182725927578850652040774547448737306863009077040638959101607177750971760417814254406800964668510769183201254051308851785678684858226145876628006455502168259590284090510823359498543193906277667265545604019815681441254999023837313340909090671187217487840438867698598844284174451351170784773567593470099033358180926282418304624394580524929279768206543910669723117069196914786081315925235698238467874985078082619057635463978733704606766896368230543919894258521795109471772348128029404036981087099205230858719876395627865140229259875620588360757988373461469863302208335118150346886976356252884806948544632273075655450817552162236409680860875808654011552146396869104511061001762551563178551312618273215686451817297791788005032541757567696439335401435933075824007830451994598544367375291977714501071705178215892282250662580622188119359544766751815193537209637502521544388196532431144156115731799620608550311176809592112070186543133660259836192705801446719880972993097467652048235466499403552905541754328376088189377008830312472934414482530505463785439554758876634985918166571113943537469312701453038192456003114226305479672570969957292540350311170064425844340699015683218172129773104462028778491951718867857951870737247912653037038068888359050906471835114879218975746868295600668060808672267438226172009933048420789811096144441446436306577610774117397213246130137653090445381574070662127942562942435243201373970655923315020905033988313135813370827045476638693902264354798183515879049264685147673881536501363674167473975984207206024305566205271929699758920792505121514375538696118280981190183848799756148214460302348475681080041882411708261800515792677101388302884755495799822222997280351581805591703696415050718663730456336682313222636958459619260988285586521446368713379755531662028723388617788529166682361208306294786915857932580702323911319902540648472486350442827826404012163265217486674436722102668030647913914074438313708027658778248653206057522369065931688854428599496384975021990543481830349810412747603977531017517769174691827094003297126025299889353836698993360694280069073165544005156600604771187850608881838261530580508093789897182643207177806696329969756552194794521614314482254011061456652272457707249777651736807224904771727543969019756838368396061977258497674238379524323363928063658089838662987377985034287121884783504459368037011524264668442093021225224814636201636807210063535693870377114507063567886938746536972573491538832105506717410101594897897714033173106336154273567971215520044347856626358300919844807939157022717946830742291625153240939613124284140939103797191181711353709832589613751218731097427515342935820709783063093443751357053503645532654288680638975734675019497840360450094609211423786010142772333567121717865048656385474808244227587314225274865676224301933175423553745592474211493002456308400851055435729109857910493550603931537481915948896621586795433228901177246570415795389463578493497987945619502053372720651120615322467976734072362240291154098643670801967310564145566883856407061410894454376568593863424639154029145824768495244893708894939476756119071508787517043931123378982789293590226112527250307609259660130168720104203908081655490229619554947985686206461166408576391935061376039983047228003291863997134414900427560768539761310571488521063233104880194179346440138113598369495573393914885472141793549313157225064723872119267801039218750440756268925998845908513773655873707411993339923157338049670469544904896406920239861055500275902269027223150979000691428933357809456433755368734071912599461318120951325519173817329654583253748935466565892455670120492442187530412973806371865238154675623597718493070902480771960497829402194857149965043384189093018336023047693895078446319151713392584375447960611900160396798974318496261382587570273462762519621456101989769545917947983445950780523696292079626724320198931216495922848255097384093030615074676409293020866391530899825965165146500489392900685345771937826098707727134213278198536595487313139813019183583379314477342246280333175789934365225948071647018292528239989397168556825911196301138868542047462613080075417644746267742506754756513077984077504602553356853810813554920829149040065041384059609436598894534498691156373223844807858183679613004612995028566672233739142317181109182170047310689248194036699454916819338084437583118063390540444844616952068232275345872688296071940729668953359709657770372272092809525710729065494204615837345721367020700872422445041895932120438959238845443394950691644511378537759706117870482346381641004737529776343638536591115712599468764364387501036898928080513394017366628817862970320698238239528945155364287185230727437379402751972589798610805732747088128244781596471958694173298166740433207398800848103772415988106571891438949771040128811501208088604801646114273567710929370609166961247980508446387104344027715388187426862247357585918002705175439899596635002620193715551043285329120928542673361249351409402754622084924308974260545857995602320545021159136629713586289011649312107544563175454884734417633334858303468278000509955681642179138881393159903036299250795090623170104699388300539808131602250674178978443005536229202577447358348193963317937240159266125639728852909111447031783221186751418544660429550831189197939409536598479785370742360469705719319357154814395131117777286005600312478304268059315492342463635772336500220852769453797617726118589409144394397052852760048205910135691546715303547141048612408873057597563636964344087756966313757803496576420282941350914596820076817029253402555519429802803143985573706586192156160723659777013016407029073985229003292291422954645409922124376467908090411267545491582574007775562590779777813092759477483866839197678254883680840916408304892990914616531069163855672806799391453956092255237862113476582707334416790257232397536437972373035906538881668948499367478765585103184766796947702661773208384391966016918708772999792224812831596943213594485533248267647114318946061314220729978787280477752414629283464009663463069598349457968785459365624785424753891265405714065869141112996204005457851574697318341942728697052163683808492056899322520952897728591341850982726139676909707527779686642511211135508911427460106462010563862797063488112610897701983497849328725346474379841657771479672111001859089030962797613548563973637245786467150404191837993653413281092477762060549140315294897024085188075516426726315788376472397313938062227055847353229348390171303222249650196153116238337606667272016749484999678135613476262316529522566386364824347736700866372377684033751548337717345120448185900606747983433851910273227720313604074205853445806439670228568581630297827579215801854634454255317016808257701921541473331638450366119865108589173461197779800351852596549161703000487087319478280055551542462385759690731277579345672349078530085153013578531974419249567475235010518879449851556785990173639006424776130860370713727316535176263010338623464830490561388512745228138398274211942499332811962851090165677372744420442051844331138438742887171410153060207082819854249361485589857232996192677967702058080838129885901836360602158990110594279136754538134708299513085532819080306224823222469799111999910834860588422468361960021462560540445920263074509316089880816182835890596667114023191006684901877585606237091118991812244374496250705954035992998210298300794503300972426061277467696404945282408243610463028807956045570312705695575667933416324295697774233284101551900845232508846678179972890083982052828572236731644657694450961953211992164859428973547794254255415290658306789235657636256833084870868583696526620761751492857795437055991500775906432731742369745193339843476806445692890345030625348985758734384196173296119356452811635136997111854660041734141306239736479626720959251612015613103103060703342969121924947962176365887432236702085389166705246416666185448891351380404470097949278573808858143371204764636155121000899511013142000702095853178010080612441347873437959929557713461713732371167204880950700970742818358519556298646689110734055287628710540512837496613819171572782297520240279449624644946598863593509480126546336489126689345365896058135734049510120507857514840838443200303940767885559265405363806374272811505609983872779156887053946416937156864863539150614093026758941159584460069066266805305163236560637994096602708586107090897961213746182872500700429164315337437493331732808986205378789154102798989482692635668520090447083644277923923772116179863172599502212678089960170476829471625815761935027107866409943327243917124422771223610048114459607797289385738193885286302605116875094828432888207798757198649023999121914681132155297615867364039306914698051017237388828734776185918672464320701610212191510897964777796148785053122897233593698255847355733575492471116863768760924207136140877034051231616798411216331269385468282187282006268233172321462099750633691388229675008242425659651848535484983170444338807415935432542018985197204558822413597127288843394123274223915495035521849446301776802520258667055758824723449441063222559905072568752537372848790353994409233660066572016954198246071334172339054493177300757368465469476371034427460962095940124299937559401809052577190245337415085875117250569178933835360165515172034431341245351314044621203443064865896310069570841865021449788563849643941121086868253835659441803741286279578320181517531337178278900158869261733515282960240579652466327064506551791455505037762900838878446082429933985365130103684516700915502196372181942614342999454220757770148780226373835373787507505132903117848506786628233833458828995572745085228304929488851981071093263578804940707270496487476284847418394767343173491732197053571612154038618983207305601853332546493294348332465038245996942191562101557618890969857589620082792677055146124649873997025383155704792295219002547846282551846333901489001321019584596420657511973073725865197851242925541958978092904081358439764378642204334961707008478784258406581663793970525366539963723300382136221758913875180731016057445675901400333951372759934788605123616477554494266007973087397000012536763914237393905455210115941204985854001586084852128923016419870490921577783143357082241663388961159138033918182005422720449240589972465427961736815848780683121742312128486918469798116434941167270503570626619442237375375224919460283745645510440788581403015448696758231345912064959223374383241840162416268461881739566399874701241631445800561381495788965764190841343844128255137865184609294465412096130978332967514643192963533497658996826297140293300550191098953030393047993861967208039090509028644578440010575781562074725759962357557027225438694600961174615088947791319014988337856878274025019657291488466484965481848963434230247961498295503310348315607999276557072343091161037965648600819947465423779722412593624724031555334529172618851791599865989503603628332638031650862925708701165219410078427894112752291350661118357526617925669466577545945195598394798615056781129736678310230746345775644941061576048015037478816453305005386411041779251189133556416634703009042766414675924000866357412114502559442214540458147565494951957659441152453407272929602733434766614603872376551642286641339774946009380702855497451854673246682975005300952418039785674030152191564015268674019558335392291811082848497811430777310665418340254234032570922215167269924606298829596937012508857638701341729521255430637258286412196178628626532241418350473119936986041031516312567358438042405402135991279092792079545777517632435869753447120119167930603449383490947066864641068573195618105347533674767647711742347172198014341081605565818319996610056126719528432919455427703139178756470530524847435689311793272765874644238493066462169965164931186183522745487700036452804175653691712225060658867140196935489547623064850277822561484870007736580985016982750178005266942377781843941632857173345273730974852358122812713682004710081881832644249685438655140286723960166090470922305913370147455803531729419522008236126169285520334082436288734969848440785139626991127572714565377713738149035631177623536523358261647002056291439894360892365698006525384121310720421849882665321576588747709354727834557257549918581928293106441916492723199362407456280516368741687840201585421315659534226294428957885250274936632876705173380192364163520159583062739404312916505039962772145865454403245924072910639566390682163364922035408431152816745128562455988430643591790760691733440902163254213784360080036087316903176912918246674129299899201802966524344346168488970857745480771881934849414059667421076490702449845550590485789803773579712033839934644169104260925147149570900402746988270704589243797993201245604082944269738980913859884487567063844699643812052584992074523351015679896882158440198523256176880672391298800670728154216854232853855066280067828933444431156193408326270099620372993289627200117947900908038936562122019578089388367049658269869313760040348916403011538334042022061967479364031073670281432273615301824374164933312677976031165345852439913678491768254403670716157445267315957664643054840685769553493010313769512931164838305892025130724539333744412566991903356702171573586707084282976762141986717398695541998659011885144243400291089821046763039477792181028181580495861075411252430839825663520407415725399179967972839025768968663188821181770363362484659011959701659410442403443675703625755450216167013360577342802118404780049704197897034230501082869107194636250066816164629282944231930451972179063926384540370022247205062123232083796408878089721827046114871079343695471080187330419772009552959805824765895349252162632809153166205669749403075429865471927298877222405672493969956483451066153929616622208896149572760335732370799352628514607334671328608888684449593050985782176585592729296103051268858881560577378001964460894721842760209854186259711574096241497818213488429678044784533475334252190221859174098702654621644573156115960062222785518556897926068225487088588568333476675147839985050558261033736668745638024981425426548605745136870318819320863925498742166892659350973140286123989624257885538201817849077591756369420520724558927602936778641281405372492734868391809774038271098570671405845420670855298926086763165182329398690382923352600200808447559747977576390027439234634450675208868889775461541656385250229285029240713883468504165869622334863878196114816624375912162715551441030238421218902493434093754229505706487633384942756795689827654238978785729111914920561701217423751593948601070255842089522056466554367244509256162393180762631708987201967440479499208708029706377887561611968528377700536445671137620123517836814786157298797438121289453183704238231037648188309416639831460425849255950655265552820239304959526668177182516375991146215694616794697145841181913162921800869649858156083681393183766340079248954950209512420247841652114265200430127842073589698574338897417893645361632246735743761682957149062392382749638650813728438472905863341308511786162661026239657696741784617160463566358595593838124853239435334336665220543307100197971038515560239147059632695453411652929941410420586224718248147609180677958219976803331321380093026142605121925692950505904141862774011123131971456936291457965133935591031381058358843549091375391164687406455158976016060102421986173500177870592785259916443966908752529346995725333909870335933011101214474953277210468779926813535309996427643600028482692746475708821056561538108094761066998890772361822114781660032118257997689788127783186069897473703137752459681696545771403785142171936908188905259816233207299727769629387816062771629919066757884814596279733612365097189047647482513516050738948223408730626833658930698941011536063268047885021239248715814783969485641250539346791385001611389633513584349899796696530048168722169742325418444204074009705096940912230365075755576917448561369524990515044121428342228919368751262067687399708507131265332175758896954070529123883670558141512220743090474045029474037474473696946249231092621139840890226460946075131935915572995779348715002269697785060985428758694430464919510188546157667837511911231555335876084136481341905722329247192244459203528101195321459863025040542006283952950920120496456690043582615167733078877727153631231755622053291018287809040111904245441064492894499162587149637188470901386871708785255734388210102051150642390900397338234622801577894803143644044317178208268372241801212065025779863743199127028893883733647934606354547802784578866771697553899851628047586104306895829213786595977765743718486650100895201291864517686316243977533181314167524983080010297577315403118233032713478880605329457384168315303214610442812726087931862287452673763805877160820842164865746166029784727694068917734058186123618109716154155147431553569032023667134473175341509264260647086427186426861222096627507741671528795911041320626001339539127623910367658350045686065778295853677319034532057094245854983750561958829975075022555319209684631235641955410498359766270732501385664938114483436649791546759505965036190531074005096998051445016268757740127429061522924426706064505841584876510657773021500426048168515813262600922226000127689747462441059009637413907950221664237011696152094585728823127105513253801552393565040336529921491254742491266808640505012575147014317253918272558777324382580520114592436345894723819876363522217771446209409389004144430688061651263589536829886146502040310739015452792025843529356307624506469176410360079442221005961250538999518023697946643800487081809581250249240901323131416757793499756603621271162596376825347770435043508812883988673731053932505040857912090095424930396742115873939444777858296099100165106326953476653998602755160122002650408977339137943676269791295540398331121906808999140411767628159293669706043935345063949132380698937911543517037235397028657110619915282265900278904432311042636503668806151081116391315712183062865621290380456476504632973299542880326428250526177896107261469060868025783500152683514792250307555858739168833814903915123393061788885572746605489327568805420172045552810020556183698449588222474092022619244115608762942785369645542591820811009902774687707474093180472663309958322192180686594195537641879598324124730592885330033528278169371820045451103216867532897350456165501935188931896220925381283050283202232131247550232876825799841418638653396944837784590861914781282432890792068811312887956953158749182162658969272424053108101953255429525436460195793291746993823300293973179659203319774729376193418890972847863462793273536120119028638816367823339164403203965320888195535259695621240996854258578049389033018184707001903720498336790629381987561754782915061726704102257147992517474926263301661553238262670642451298828271026447116554983739860217366048596875123076008262521463222479603643237860868957912918459617647318958814277573978639143261751163525525146122652306096415715535209127799077198979132283714395781874477754225640298267608900477441641902303217216938369969172311026270828950488772166362753656050706838375751569848367747137900652964180258312086815918720125592742129378030578577226420200389539730184714870810406423259825732656627319537002117142646060459884858025895015718343740305504370269739569449687871306740953388508874156233805237089540081688764226373091210595312863747504228165869735673622386776197212315608088362271283979909148707991236928193858304978540818084958013406653007604288597444279419767412874319406149542904612523858620349417489503677470197935496847812796519021816709750525074738337513967882568556286514815863166510136071793047395460353642748851891263408828956563345362815693996239016950114741103020135142736211284897457083280596185847792040758511166469567837475194908877108591043827084577459300759857244400600924714752253538658975737460050167005608485582132009923740916493607462522910317807530818647022127321706670059541906312686820923904753844631466773361280484145588967139901901110388115104749868612967918541396170743366986364038142553195710997006054455817149171185206129737567369127546724884445671358415910891790861120349358904658454054007808465482180694674845397694709490466103537758027489925224860804043751519663915612335864535263213168619129690004984201364751471707256940412105701527148159474305521593471418458676774823097208375303745075611655674772683537095076174439092831958861418973191933028576840595085755929300657619688550953207238987128927610671181898644472474009858029771568422296627019787548895260305518046212506139400918465154302080875022830258913445420935962696490094560373260626673372689872797246078248187061271805180821157124930628613662476933141216035859477002013472648180290457775676772799696744536731523379704260423735349037614406184717085964466811000736586680606101399725158542499736434353990636728839422826952431025014865794770346486228964685620670429384346440984158957943209576950674737987006960271076229438811798177884452151119196650627936725726895705233185115213882622422013941517594028166959498375501799088682297491833533008947748320736324724662086305199447100859230477771382240370576693429714028903886409372441008364722140213836139372566004828059119906880697631911019229553141446795363713635539233578036856037259852122156663023360727027389138161503531426917485973958751497063664880249317762097786740951361933689875511744225717358689016633187111724842156055491659159084972436164133498036889145105876613000607642140758733247922210548405168640723304216580023884056847986236101930019328615057502635351268648276419043944931197495576013767279413064868775967331910074905135771473426393119400064784865186453465743909571389730772951571173940870632182962258316530125505799749486735156913046857565925694050388178555992580880665395650811947736520405604724389993681255110401617748670790422655983393397606231985498096629392786683108381299348575700568333631819522338416026882307002249418845428259353056555589821320007890303844821454551884291876323343683393001584447247302884046344225594797413652518605330722435860252277549878664032407942173822965667743719938497931488120004426715141841042042009248173739838595003678677902744648753453153686508137450278796046606443547918368524808417995604233404539245083837752220234541147344503861390324400302012497648589987450681449235392409984011924926959057423804029503107220020465755254407378990495955570015697631297410663844638446856843103854648635700802295191677918307384217383365001159093498730397088057529503463508415423553541750093728093315581341840366747386745810686017045402474691351369825950087425595787450053788772205050321718592042167403845173338873575314564380441578096070484215929714051548770232053532592397206709976282608729821818177758973651318939417735133752386775247775509186123486985296769701231871021837027200894076672066645987904104405555787644997987793435320243839781968225123370483545151453039882316099000508436453504399601907965826028831216093303085585862097512172809757227826431088973015084622771590925980558419825914415045817173676278949174506806338747051817516146604374968693757951727459820326222513896763746395753769957897322122635556267599007450295577744277230988728523376144839538072389605952442683916480628432029075453150246918532481805101748597272492186917551120130918814860242776777956728624901145693652161787166508086941501321097265719680738775065858509617801912163833901333116648134205148659570864448109364090189462399656099963722776313752710509722577681597329796051140225186914478305031510503452129285199026190358955820972899847934489129005854403862134680959297230158465023326744693035822616610778400520221941833586724655534046529570063890934297324842810034391853859707686033921555936119565074593143956923183008360533164273667359859223193664662446421701982516793241899987013579286385335838569815436503405238304638972835264654672806895239932568556722838482390938062066321734851497936855955131043395892060824194423041431019751193501653228353558406369982894438996508382515018663327073926414799645180021799000061027096400521837502137797667925177013914131347149888035337840650598383404480136996919946127360997021763928373688274029450086880678792992358339255805498071406539199191302059945112975798068541110671665404993313380808866518901683703049488808784941680234309872730190112054946433081048383024296517709748634488243393321620222727529735518983308296014286845434065743274036377627824722094250288576145294221232408860033632288202608106893791918907952118662205487174578499401204731870755333082562699710361325592657089284309458367959712276756026062787361461208912542915743064917494729215815236510601338888437581746901341700666181209578620914948880554181175597485720645168749880979744838706118524581813797960120897115414679831072645158553842109977578372441968549793708024571191766010043710000898910353475566129744256037163622061282897907975081638601408080253431599521207698233092742675585741086367640776968617918856010096643225114003004038554168291202694974166125243490642455897771701484154986454639823839995383229671875500922520369063811048056907137860530797100137281785869322181885841913365811879359106938659230413433321853898549920930099650280969151766478885380364653496470363080874659967088420442096511144738341371902926721452086153376092445292312425389593874130911730840509960224799004556379708962834688026438900802726153780159447997643280745972472818937636665267390539772700025164046679156816784410409937335664644738658807374665159357851111465462668128423439031506965856049348368713030104547008094916646767199093333322489728035260090446931167775156903489480348516330514525763304438884141875317526427955935549672118795713989976807785096625683897737022611682481575739251839974449023358213404567723224483168426452159969096105616549636898695912209927318391734933921731987084837407609273662560526524352160661080117159818299739662610322724838982604996576609995258258463932860701344934218851647629584800741204001828437643458572046635407967082255008883887278285421164586483147757894866591845344673573257321851039919944907070460091462822159021458980595038301255951731942800360690089730462509746008723692291345519198559011223561023555106868404187678153392593578412021699445940410135379060614304307767825007729787825601849404594424783509222431904751068841942521720825738700185378094711380416247899823341886932968038305056784744471419781633824091041169834943532515890965472693650286319934029758686799417902941586242339470663271279611499939560056622669047521526369180791325488664722359696848755274743759611662095613403314764270782089815073657009547582671565534848786781049167201752730256099234749979883221703309570144694956654793422829112218191799885140414142740978520208365507534069614164605682973526499162043029351725703784671463548763977790844041109543680386265341545045252386202301992993831946242128597038404743604959996947680516612313682673701779643700464080859165912000903197452649051172759007924087275688876020285058247965424231514768058943874991009357793969624970827395592859361227186139487617442292039520462840120833776444228224352666823579397342270665663843847767519136363307640629024943470006282410216190546537686509270001270966200702950849700190992800920997135587700669044355064679210544618101680677254182857461126475385676623826146021692687652236143336268093111871165940828142671206159088444191458563029188078151671843218161550699923769605396161773369052306085792793660608350782156062408236964661747284904510217235712706006535013282757457757803455312445218004259052162801534847229051047982298503828384460629703778274946656170675940447873888209237502280595451785786520414505853493904413559367715912029116684747713549221913737687573083326561717158489832052056821616658182843908648285277560710319660238487997724589630155241645549110248215584876623835250330352511527268246116905966909298997492592671474884026625381493178292885070634345752651088861685113974723791960016421173441714378801850291368543629816156045302940721427864882599990803284231897323256881767589101276629650426895005284615848008603680226961491153297632447430311222197616883657080680921582721967298786727355705547587454733120500066115943505313050919581952972682589232830407847217508984184662125485483056204435642762397691676337456754479468295183080951292274307261740761631842983051313776496554957210585297958273779261389272596722146826578010975865984527893545538038388668789854139566449892733359068945943917801608937266906156344780593919922657116194783765407100464012477882784588732667268047454380234878617257366196844061249427663409800765359049532918543454214829470983240645802499633682449945659110703195518913562638573765074062403384394017443130620875222924212047929035901586034721180903993218778465442179184931443633324662956114250682209988410572963809960733277342707495195328431316872974518920730600604047603812948664925011279301562856649161840547412784219620960781227206058418135851257951871723864269926557072129966968495884068282324519226715883447948715821181555086585116153528356054041013301717819108245253388871367427876905758942858040808875877054942867735905668362748630775366050834103970864944655681686622781823936588506011791865508109877112965507805319350743433956391243864592048440252879009976059541237769522979536399321865462501882893882476049767220381473003620421678818538478653521948551077820394831910996968160075206721119090532825540258785779276182084984492368455581631367479498028315636866406699808842197372341517317215458352134169122108516142932015067689296186803495877405798350697065144921211768486125354035970234475248567727629706108085360380704988857194139163228120106149788970201073310963123780033128746126013278422383054620974344704700381808076536302588990537219868112149907266258733665885069002195001408004025879201277468229457973046963687874541309134263808416378740146603983566014178287685637679722867321537044925200477950225099567173981610756637635601933651563100844880201106106684454154114301779437901401768648520523166025712643721223875117634418219109882204092046898369119219379142943678347031093949141602281337320156796938855193684130956372812499472942045381370461987367156587020068079265115900369329572317303391657360737246481300948805705055950269935455107877806042018126142522356947060090303371906837392808591167737655634288214605219737437033162403217076349279284924659565177060220449348887417265915062268850076622390175582716727510365540797702961789878946627035645991537980405674731585617249836052430516442772760053235027243400042097370558826180807044290736100253561731500371912214953868861749878943230496937008343214018254182707291089480749811983254879430619905673377895788517477422324886323223283107226798804190068913168205475649294935665516579734397974443035929575221513894361349894695402559812416221835085201614060662041862276832692089830886338255415541576347300793243486611503510385685465764724115293545240027718232102364482705941713637747388338675673449319731879878042482075295118575088763156096098718348197779578915568124675774929029520085374734737167533236186640292143793676843987896324781288173069334715879532188086502499478139632336206204271918402906992948115304209827841633253357181162826296221604103627999668964278375643211902720290587352198907828016224533233655961843480836082502848471224557824880098290687324884147245705272998486261737356677459961096023468642331260984882261804853942645983502201962059351215003587039305288306995628581971511538161204622770815787640648477989258404627162542719748078374502817091514919390031277961512641492306733697537707020934969095089486895258908074144948558473869969583044662674298663332078994342934304741725968315512989866609738558155496562741932999854581010038741500416404507715894388908198003905074519877133970464609575319906040736672095545381947243163909545613740462823116754945627733169505291457522381316149348893791371776851317809390079600076856309393318920164548011446936867789703319860772151702991704277637811486254480267573717839995584403198385752389852750505770574562613254559952369442976377510619106881373111102622268118233157758785657383939633244657601842030928254666490363080572446904091656131397035390015843813531775093694914993210281838352592625667065443716790066099401834400088492813598482730906702684725520722357998178951910818744141938514549163833358936846253326022500530953687289024287203819047943895778666370909238655855974497516187985684191606301595024676458150567175152994545988757566330736519684265216342850230331283801474465289927517630195697636550881223746493890094908181630712356568712399615940452900766978933829378943211780732875641653434052574621409906759276749188809533193075998095156070600269732889044434727238858155053769185079063706782549635143854407422851594957668724773122242150684785594493049415357928461409606792221057495373728174579540740222454595346774587216618875018559257957226559868022657333396790650063602721209575323084044421283940828868095004774625590706164589498743102480921900288272047234306457623962184856652670737536175797875427566627090113071628220194417679315934587327120489529920155800514834244961216900209868962597569201367410889462082472177935262944542550671426986990311938541505758701625983366143820911103097606033417770594372671020115590309733225228217026641818597574730091839291629968661801368622057425951724854870505178964781442195735847769549054391607398577870554701848281267253741694894886494894461876739501110035335391771047164829919883421955089850959384661753436978945779887809042146653076955042210691963264081330747552606601181183331900263725403574397590995909212039557914264868565275090922041188876959626274989693438067518609670009550443755538969535616498454149708930443006187889599726937947988182185690155799519590299014864899503797673392832674534247345539970646186819478953407694501384938193748380165353946763105218304235064155453822413986544722763279273224594828968505713279300079635131277247386904916161813494386587150775942316985372066276469809309093418540765014014266910904102562515864901113016710952224103667521416970346251864088846426210010147493677061185443088851533371310149484289546299857411450989053600860927107286855877556997232519879961640293471303994905438128951073872017208245149517480872416325795980339061930250503473153601193635660422413420997476561561469093852231077412316892241267078525203711355840117469854535883730661265227954767941540761084771896005220858327788505806733853376105144139987682576294378784962866783217924354297066007049404119261514204352173374956474611807110620104345494801600709134405558909768941412754516151562071503951366696601383166775937093442153223804210577406127965997939904999802884416017240902802563732328980615198679907209741533093205288917320141345925783399283091845299352548093267260021006740973708309557319286993077423689484630489501780513360824030047876722658746534331287805360108898388850620948751546060880517355901525583849888987142856903681275142969594126062917720472291162726912628859656361921276751379059680759903337791151834385982990345111855849145539587634102398297573801413453916114813512524859072472729986758071995121927294689217216514367867771419092950793920271763138585310331057771718267888370999926331538866898545813065905103376254235332883485318844133162689654418575597045127535755893829363441956223132275191078346917733824937851054335456211895663754610353588277183859244182667061846649913223806796452696963542992081105104784248940891274128712169545232892506523901842463962484999827995032864761553760215351433962282699407843105681567394587415512866622744086721987097746635714697749811270695608135809218640004470655645788599809651554367684990097629501242190694330857789729446571815653628651833519695195299659166543573275272782942878959218558462663280376541272015894231292709398894426793461434153943375384292135255852681069895139922747060574321338208749587692221162752871575551266325243834673409211344296136347050456164265759761691649083154312412060754487010940948270638451078751165210920140491691264050288642111399888554472553173805237223094279812241381225932132411664314787493624217866675589141021290642392646770402691797277353357287919511362011745838462831604978160269244821267672916353662865225838359146900246293868405293986341254920763300638289044751143273771992905152805778107410815932149140082357655226812739628745959107980164112441051422635626093454574511933867536899529416111123951109932784243669902464712393341726704196544041393383242560304504297879482951333425110599243932337348186085673805558495163747696641599883108299645218649545610397931216874020709151194628612601703205468656523860973988173716450605583077315058672732552537986586288515754772013973070150646594353437825901976045673365258739566057353744957568676246313882846873730175676993781022681594800679126083623514991066424732440937738396757497710634070023064404944672600310200124524585892226125513190557256584376529273718320606259402699149347895001365813413609781421132799587660289562758406017156348689191018139992410310190297599331862628061988804820570439380977094531937412822193087370435120685504414764949532236103722162227463423203251121617970796783481531719541866264151650187216614751693520299216549597093755177367624307808508885636291063689891085143139069745333420555556710127592660337022074157811350439320766465733334796595473177732454123638178384202186702636977341683327087082748201212870828412313195498821222852284752386877813473917090738025747580450796176192342995949894095474174131454267601041308575820349964941327327809854577350717855325043014467473643802070102403569924078666304381105389964807468901371469197398538601023350056941606320126014539923993150487776113146129507699617780980680624209194886015139534731113021596707581087757323850108775381730605614542005062529849893035198706805640926164850821871578176620286813694996174624284819085920173567502243133085655290811317130258709676694952524646101729553145096694757593410906334276980322303662254761299636127581305338106002595642019149122750640009023704330284209004648857196417042789914943526395780369706965344255141256488040114166246205251885882539067458157409846378765782862183178148016029711470275821794495419812405360241293155523868068628567124121224960910401725505024120784403545635951406479142114816362122024749250218909200587948927861771210966254257589699526955334901051978709513760501653302797516373126340934876630719723024833759504298266326375683190423567287998719945503237442931931121910837825201253022295013870793652285311142714074324093847805803208339248985895651605369245796909242124097410038626846912692702350809349938337967655708268369174172419725654925882639144306744884208354183576417399208469077087657729929781522453789797565636267872019959914599905064875980550078711102580730909601490411490837759547552133412742837068611239668146916133778586696342887061833756342743466401333415807963368385441833967320494273263002303903983458738734196466780268163254169270064857069390505526148340339953226803212753258889290443649451467741575587759527271153442914586362323392308760023312067416692464490494401161744200765345139117481160678839330883446849412091119855365325362804087384129110123829237339750283023838114155038769774653538400237770141210195907885880348751768481326897740153196621175028554803335254240088664790479411697852921007113469069944167063416548859568970507272646341913193811166199661420909970089154788102658976983113995779618168081409208135672646254029131161528289528897580974985524392715827717595202398340166561275054931464628911171203870106524675982423854608979744931267724961759459499212169122623910548105600954700231045709398164190677581373526753228892683403125955194175883222245711891597821677858883291736009501462441864453229307765066282675843922274442107722017176196670930886479251377523219115048317339462464572849294928173412146639616317804998932568419404821778401787340450610845341718293245071370541173370311549666227137305787608744844244071811709912458235870776633755842208964543419391736005940297561178852047712353174866465147182565472977989863756679729219405933303860676814680159645199997160603334061927864033774967545242256129861142015669151448499039587509358680941484625034909600340433827357588168814594845616180873598426253792164202338435996055910223916497185123052526102504802613666916128597581984001458608551786006326383703569547769990693363148439719887202499704089129446368511990099400580538708352841275588280293952408035330868059309939308601661968524483166871093538542803786469023724036181640107494630629821876290354365699372917156547558968509750826975942919266515604142579115753732421219959533232650516919277334412410997812479939097056395421233026435106701618138726723992210866790866478875059652143076214595804119844402803862093729851389882183920752596111258404305735820346212549964998840476948949193464456671416512914229402896489773245763061693323790761919901957559188057000122354893469149751880034119280169639094408416507588571003863599494908124753480701439714747194731366649246837710494554901525621086618921838630246516359336679409005219872741519636538840116172543232216679974034215980147216960690594772177843345679263148152411293296077617311529987266345056254012595659206403104521404729939618793772340147904186397829776086523712408791050536161030009343704000168363728370197847261851786098040339643328817081891291430464443451074813364807757204773819400949658905462691968635061870523978279308174268385319143719967066675913363224701438007583991125770776779151857081051273891048544351223373317119532623190527868508377017727896282323333299206503370177348213235736267168695878001397354445170667925134679114135956775452034525127239980310940184912074069858359802850905250651902915404850652839717083738636715618232955244650425560228228620824215386104498571236625345159134112848781586566269927624990331799167631247321564607163404416551833354776202771825341932177210220913279217065874283380492307650524030089535857962315577049433012887840528293109686627676192289626312186304060792797716889883339532118212454399352715602773553818112482559278668120865239356272875185034622021530241999982112745078702339115468292930139142895166886445595260406862904605596748246027901154629418522579447511342074206430904323850785717856932976009489946449713386983613452252092579282087334923265890768472443928555616462819506955356229242123161863329450369733668418360534627042621403778165539894516982065657793513906355185870855221054642629631256338726772921894264455740623943005386836756577499033906179059690788931225161730958132436531621114428953434483026103484523935821482027240499744798598281359794575380325276249583228059498420024010245514618887845187989911406842309491967248153247278346803935179260760112355540256528913042053169893064009953586740638031977623899698201449974664089578810459808090111159836651995631887336997105691539728834708942194831660434112492837675069104035573600971198845752027305406074672128934797745904239820209718370596178648564875938720313478744396879267266839470546307560711307094441094871562853590842224617481053550900361779380720988613187425919735387283589602562348163936132196772301112385307781207658065853346573206295951047190635912437239937483903190546491626069409525901935788430519494710739422563055632515787637033977388952687220119735468565280969505208401013818717318045568966067947884007571828840588820456119428265087771988180116318006530992029434160119693324773721971773487188657368804406143381689349169095460311676846337167402215454826872017312911788250673787311377189845046511444312117313519579472263240804611202240577718450200797595212947107529070809027381571225823674782026780010787589208940246022068416185232751178393883417765403190121625265554852387975423897614576659300922878470370966070169583259789132416429053966071894406279041352587518001901397908413280003124712067621042410761005717635852766065877712692320242701679344403601792788370469037779006129863647305637264149920745743953435582757064767870841883437563154788426776216857214849019751256436516250325416990305625537200051498179854308765321485480193804972760819905131311097565680180212353988063829520511555639764193282143689012488755748036636705876253159460071572617251852474073105218943444736106596596753913212563227984243832698369490290060847594685916322975763250239210184857020733270258241678816201598447267018920803303689864958885160312593174651054393982051457145318019203549473955190229204469820759105390672742544979866852888334151822007574061246361908446153364650611327625194406273693364955328782402870056480247386299027944781639904167128561071814146803656165481314447332302692746452351412034791303136780313276015467090476596763179522991416819076283816481110996234249605428490504262691723504162791807866064663895390251568592301531857809987460317733750359761136963360107452658243258343408730148918450607437273754434588732563512062236135867001129941887680515510649171784691268550065326918132231471168475738899539834563189402103586813210003313668102408300560308851065264507872256951049677409467560109409434648375307565353031973810866465629561990227780354308958234078792379912570570291768337499985230687013170588221645714864335100250740449065857192574830101946568698702234599624507716588998102831387707060683541468298935195524578114852414494625903119564906520622638192252676557453053127500470320239580402166693661205553925278048576342726880072236772363444110355980287663947666083688948206160154980758726264202782401345863621450462219166025878622520814292936942056107446731371970742446867868626198149563008020980487700279060031763536607457650877434389073726244955503071874491869270999432085706854732903649337776848345713648026520062341932230315107815509043805748130727904583297664284395027680051186659690990941994997069752086797519184577570250704878040500199210307548939375257269485448996034351420951894632267909294005689125731411668514842026672778679082849222786399530143852815923889691494315236093570678232265393340883053918877906071503339230061571994338500038531779031069183065468059196887094620004003416917570782222561039220386306265633068143661980292030572728123514924186241596889391913461157051574089432506787088122386400851931995027259734774072552372576379529479054183368620195795502082449886298899580495287060533699891352780050225394664539304581353710848408418989926876506867616863612618776208169483708313600015670701902955405437199424714802782173144606042121970775622524454410149026068761533421027941369370881522051269600672223922502717515806980936227887598420871828103183277189102592039388952933605201366394617651723330356455478885851869291556818013818275901847102646350490883580596717479489901663449433574993926129938649098839904194301794234820148699359588517215214403603715523954461777873049621173361662798403211064211174634013434974450540640533376002632536564059711137815410794051145454819951917297172778581279342279859887605307680124118942735766876446068725474286112637189096891590420102110574999111088685220235629446667498956380050483879289751383657948693267797870661707601242673485318543506062530088916447925542531927458248897774939899009604258273214627593987562055863232834591176695257375267438248204759651053206374930232832955122857135677130288971953131029423772141204083202583436195022165046647160069245209130499344346997167115811566350720720805514667085570434387645568616484079633221143247389755504885728121592482491831041362376671499132930540107686756487332153102100323657694125324378565279964586648351470311297433886583664929799375129701338403444912296225684394060438971094951728545421242330662346245349859650188503758775811701921855442784940218235711689438059671421151270708525438748361026223952613147874377541788901835878727171918449256697718705306107068869770238986888923923168375859464162714292197845384411129006370830231719058329740407174852930890075216751667584221368264009727438943103548024030160104966504494904310684818656451915455491094898841322930516319637961738513493850710181616956749501813531446977990802968652912281451252817796830329647892766914280613976783029816003475719543081047283939726028632457010508634511118115205788608576092216713785163513819406099587543733494918149324560411732932014633918343906832179769748078090829664928420356958890304941157119912389520010827736626823047729297748882081611067311206405610476359875495449878207188613869705222615814591575148749529269298676529791110543220787848107592416715851797194302947459376140631517898361101713334569096493587121911804864293049388894392637376352545040328852985827578100254031984887045071623189603014483846365476559745407021341830959608712532898780135401527051895267164003630111346985701418864547948271905972769767649752830261133815779366105581025567722873464510314088092840932286838199995404660265595187567338730925390641811663220621700638698833028920188446343878469979468833985144146149752220635031466418203910494893089118203854106962381131959799813297085195234327289092544955671124363962330985504818517225957018221867429598133674405259195255427575724241751377302321980257086843649898295831448766671416683579597168326787548355897563344963642841610754638751167479018363961407758323070658319197945387701780107750927451923448529165256173527659082316932406526462830256315989876892246280255745237807060632973544495856182870750728210941519348810075721154003190392669826072739065819209228367248958228268547846584605965114311512144893323922047155633957809112464579878542445928314621361680728922213947249380086511281130610298860108687835655205235461609586499708842162909888925015187568200917455076082158028099808466127863341764540681133829053756392078949987992777396999758220760069017893692433562984065537360929405191127225326181631399755952119677284229288466847393862294721433801911820564235993424805121993495580853060175641966645675484255616139841891486041856570044197888740938568445602752395001230175731462528933014402762435187025573889439625738193148174561411078772159776781511831240660792638342824487940538450572708792997199568939459984027556367446463834698246599263305363406708424431897419991811968180418519375240542110275430043843320286630640076027817789069157718517794483919504495128575176847984746170961325546437803007665939261192056969703247170673168055381695745994444574464511789061251464011626724356095114369060714340725584879234502414633827093520442550368545316084670058621617916995866891358159431991727257701774127586224951249551925185057276479118275308928447006994993882750302979264200773185546339330366628585931599402167035407652095138515535547248287513855559773798243183457120307114138215785673141273592293633151349022347943457424531777163957901776817253703092028496635581938772610581296867733477695873765357632254270756872481422313489326216243636246958737781195018321474771465485883549941848441066116929240414645722236846109986690099175302073603479334639433800211705948520604761300751949807592977944693819906011039022472177870122190129336038064008200874309296704167186473904318389184344307574333761958816252464077441422486568922633276551204504774533317026932342773539456696995623240520747321623169987542319241576956939769907517836251091637209020864012577011589760851502934507270396894426854066033124649297375466794982844094749688245604165652912166247546098180537270582811194391135374926817885448901683569849015240824487962295169599523959114739821412280767778940689901165827827606847712208991242847206428193203351649838536830648805840338740122703612659473374827895021090341651058601009536162206718099065057441232615842130935064358041352050509913519310863342957348307661173417462127436564991220733926552041684432245748436930648507069745161738701182646911062350025834083011957849805259242371958027219197314587386787995889406651404582212395209466539609776012629415678708893932577427333032493819998546481636179152797337629164715070221441348754151806594379498450857342158292611185085082427891989157038204340856440627641125397230848315094034694248876163120814402824724968277705044548805973233165669548621053758520889647847073615290010966757698492475274320662616652700028494962137319828913597353367662946222926950082546596453155918323107700452136000036291899974820978737326344784433054750300146613807451080731170339611163468741543047788052599110306727963689560021198273144459518538749021606417132302939659087402787543777433591917869093719955152601217996279931153673906843643442601732535346540543788792553361713517433701140182365099856145117443046955242998185798491273263631346215609250503697165921114162218096863359262590712212764569750953745737640792322096141684834151455630835279647176475336950084532410475014940555283426485270495538764189611847780450579340242593648128946740036026721218083755322079602723960432196722596722286803920299393077079315681913944724776645942779438186223437747134889280320524905213720443468801437004109947993378870959554167229215594709584491335065180357556121631198710179402941434287783118830206488941004565503267604566194336228406007740770078503102882320545853804319364206631592973769542883485552435354998993472029851721956752637394509677588310782833786816811682759162256210915545925196912900578549534099694496331973406616875140328813808035498169169814621277284581003640217962755279752261905245676182030295248952373060840126008021345780977629688181667465176398738238215756592757871801702109857382151822454258075243868410650154597514047388528619489210582641548988496255953679536715610066101438254780997296913248109548729508271141385842597001621944242250634889804726020996160889365018666963427916539145598981000608073438657200500277693493795666112258022302529340943684109881344632049162541765908388198683582852264700073669017674632325756549056679468103684932907934809348293758196860199718940782103620093217467620775985402962675817483781032544619226320323375409665270846023957162357095181907669662801452103091118578128988148654066182649766099104777552783776408584796641453404288821961478289863092174483990285310963451271541377393562247189429034525677357237524230660423874472106099405659651369402453217267008677095786673922353572882496026133823223035633111574895554711369495487143168006232656151403073536700781659186741902128574558891470553651744923885050102287386648475169420640235166117229222383717578444344809623948686637674202274892153899552240484212168657510960718744197137865977015227436882461724581938611513315093567317540243096101899484467692719023551566518051881531485693909519229850985206875386395617075505519785068833895697076162743650811981837588426478716410562692089510316300045374856830464245024101960670512323117789566547311519705479582087166756076923854955629777297115130843992099721037931413326308562977938160793502411275998613606390288269000162078819833931673506622633923310646875756614573427598923921001200442063460888600793078807496420717189302011924216556709932612414788518655743268013530628655317346035558680979513921104474125521268224473937584164166986137583493032592313026799977349861200357141553196128581146474592380763126489583936899677195407226610345655711289955816328319581664227212974634456612387701471413722746765821589993803838270589138695222768674653003668912871193787113692691734720172772028689044601169470406063250050414196072876569267591399009881093805724917858750037247096855622956078494315143492098454955026673104930544650279587514762324980072305854272889234064030790156967448859683927385204963413113843447902060180755992424362692683194400038369950156527972935496662300412961740425431306734305557532146602374572630505361856871894210341122090561395592023847025486732889736100253266816624711458142109214309647416861932019105656891141544047216659896513354357523589592402352957590290926950469474229520382437974715710291248363026539155573438248495061047940010710025878203763491089754620200627355635087749300392002155222540965006573529669315402272044585697190712937061751947671732294202962598563323312314197980862165951963893493961110970108860966450191550682603343802808226188470760707676746545993776073274096965794297695497552194064659774058850201963170310874721396798881836314806931795088175219832906732991180147430029253985472874041218863384089921049259967575496026881275911748747098714153354604706286233371183553825986021897924234122035400742441767499588740229461168347312714143773863290266125109118735668185837459995617981790070199174096483421595027599072615885822716869041565873232491757049538659106316134567958876627910831188933086592004090824918765611474837505446788758691293348472339610095291045854694894405276653649944975619922739420278441225792893095220642302325214254362383043272388887209434095282331815900946871709447416403435425259122334709909891917560941577959338416591723174155045667011958426494685958244125084414886632320204742263645254848048773663717601466512153703065919690753716761658549051824413787505960738691050516206717884601421239407707268106645889733802491112216357588040081949246198038950433416100590420433447815853141018107691296978915011587808423325422354999321241471039973382645911629149177770796456985052618150924834175253305285342663747363524760634929272694131793450247939913303825363430247075627927821646062580307945470777800470285746935389117560168844861945546335178117593946157780985506265258423576366607959778355693230060829435202979562022253286484723881646268763125426758763702577266876749352812738683510225626450189380058616617885388753759094909267641239405850149676807033907358675728454422711992047444469617200521576042264503571025882319679370616796157951882039657313998388361655545537545846368742254388329309505165163734522143036877814990992106203830451594420400984428032060457606682695781527099806596413639207096347337461854752132085157272102987500958920367785082960052144724422745581556081813166598197077257873335621659170826432397465694755148298869626536411644306765368027890080858950429942462493962115173396200290217523122224173086329058744637769090511557981325143471768422278354928340986704926852269470662863169584979703080089488514029498276226114771266308762759782818059584162864663021072591675849111277179424197087525039650738656638703384513959367759129222135657857265072419688861171816809930405720261733082129884311321335914998327534710879694133175267380972475259280414501361442406271960952426991892220269438486831587036417449813627400925725344980355432697333942015549092248179164068862269490502802508442267446118895811143538637204083802012503155781876844383727491469948610517139780531805194385464844992722732546430960175130142078995017628012802112004295812922604953518812140934104947855592268318905828139805043146948296813247206543001337772825338683939509279906870061511075999639786291878843353243012566464350383235225289447904659613790415202710319164712084295335171274748338171953500287068076651443934000838356960261139737120532289416273709888890078917128182881210161145193134878165287101434573389411124359079201576758282288685997464248385989532808954041176510622915464159126204372218569503896243910537920055462452164251900509818956736751953381542610769059132517702789132897354279537944360881826847601759654853501898447248474634586642407997850978663684753154340406396982294416959328099600775081873131784599306989911113588202883441196090922017080305610357033206919207761768917159284699502275531648317414506419940732758216775616299340063050802345739451233628557172048618471623268279184124835237791491471175112665030967559754044245045104350179643881314302603236175864373596247231482650031752147571528461032016698516604172390653485248270907835076209716935762646250094742661713273908140802141306587079590997803756211529681155050689855782102792824569500322675121275540826769717788100854832056991857614645739341171684550496435271646362462229639253124568177891016757957130827465175793729579812450993603937566679238455043852255303099221314911932911689224211370178567293981385352303221330176349130180124347090175262028278771882234053651853676019598476219128026793964780336347219520413184511904985187606379140426008300978260987387551336050814320387186978834846905621859394080851243344406180446591457088371449867263549280125955735312855955067218035939874048081490351176886951594433503691548321953579228163791552545918102172314217559862150249721622004550195807803189945054550789726237348235756498249409312226954760448392886973119135874125421733779288721743222990103733023124915057884024649969948724652784173329929261466963352491248386184011299255691807929108447312625489526026009154769382899513842853975861206872775962938387440631104416854196586616204736805641808201375319489559385853547323298416234118644961994780192554800831832335319491396351546291082271161868629375676559909476000547298354056580477734435985574673533097913268380509788676892396558867165092052773164590606718978812394783364311097120089564169052035821109267814715727455799844494616456070196973637255718309777387525565598962160335168824744938825438663175195402802786375519565946436421661934072303558137256795910096180789201242341336693294510970461719705840881732494514311177258313001240181485636858389620035652890471847780522561760457033758656677925194855823162821984119971477681300040511940686502002757303511510752178846250610965602224457304010432587698182727534865722812460912462916045713232713240882559151526386083142943183065568787929543137851221634821455837630318481688473683482227223565602987062117460604528766859957893739070967505111469031068715486343666680272348681336296055527092725190741213155854003579325538303270199314553995200989149792936936373561160760463327830512353723553158027983513523678103981132043167693631670585199284594422865890352201400128196659660071367674369585081619633842531916717836782477617916173681433536191060016333837423882254150351401921138928118283195078200128342073896209019233309787499873237988366478806173407712409651550400573257119312031021850623595356656967556291585576663726019825027799327222307895795876426620554636377683430016542010126038125493521946128037501618354772408269726024612142556359505828717908686650338283153427799257525701235377262165053609972814491299795401094286442554847139513226673499155533643429305966676567133978417079039074493093127026968658131498742788161171526254878037524087920222679192398676071710541273585186463599845462791688292965641863471255145731821842532844420128381714990582777952247099051985874348626940014892544572425995466468933014533981460517861945016535286215938100209182675478057497778088718973986649055121374181423323485387064714640337593177992631766564943915619039778457950282869694517670979834207496873085899607651660472349628850355275515307547397122531285694226352297561045356314693775174111341324718863346964612783156434817737022358451641523013330924529336884914693675261420109210663035846433502270618289377313427853812835672984358411912736273394406786437275356887082074670366114479980752575974403243706087008863151092377179576247961703821502401682933911893357987560542861992697126327710482330039153173223909212972894208103236559527977667779452476967188447787130573237866002647106807899424965279841854476764510924473712576815007266034918272753674460924484601031911492419493905781141567846007059493050831277021315465996192997722105787866508239094781369087101617769436411756865318202551071796446002513207651873774470847000017134101229873111107023568965935272872809563993177092038711011885535260048935568838318753711647513359807528521391637494521297808918930205543036561412558824202607102530476006432941068613562883554737233679425229425634837024220955278850117219553542523656495536636933267948071150007815656875436896312605250356208267184654137197654548433079873705063449106248234042318526746835330389065391856797970332339521471645340571806387273347968303381327758967588479892226911617496891673254461959053926247252220988492891235617789631126933926564003962732803018165659566003446989480994855288909595842198250230117290429410447460429401530147864023000046890493069358709466780436188286878019075523901855636339687618809298319364287922924569356912288324632507158426026510871634833976594492867609827135745680739143792559727598022237059184686249687075571940853984468592393256600529937294861019650888888022318265698307546563090961929984151670786440324844006577466669538846489478371463241855469676564730635395105269022506818070580176690132427096397495864062754060644252592701182826335393768424379464291054778206114264370343686287188636500349833162095311535756414213648526286647497776308303183827308608851871011587493731096987229225377288137479058630422757546876822818395759101594950941724874738430239589657592630495782168300929018572155192381668751192063757789786958619603366614647687294073015725728515223629493890527889893655472212342045254063701390595764094608854916326661652224495592385012241225337933066527421502282357162052835693336487265297635772224284741843740700306830731419382720636416591039925737431667168427942835998694882056373205147795990931497379169940607998705592909503991509778581556700519186767145864870786274085330885583973155184187020172865013006292445369771501477753528796203502282836832162845104500685795579881167023870505424499297960344746638972484717852034240709205957735771034318599190478502433913186464273167995130026095293900018296147360420386838988173213794740249030267215513662597653933547669920576745644786547846227164751924358837891048798895867102982696388873147850476330331804281786152393837378703759310360948567919047197474373547909499166575292544034760015569082248921656135727519835280040360682090665878764616129405921697236491966519971740116736408175168198740214785337724025605024485693701511586198954027145921010623075599965351620637240606437660271430409202977011358023220010182376275416612300063414618406362320535056313484982604039191039504373599226953714316834281046202762344980069746986622610751647492080450750209735891651155206396726846253560293993957972104091220984899865860938936716457345439168228312976772038718195200255864637343626724764868837620524328407831530946878599594234836626891551432856642433712079697809973060899580149693902928358557127089684976080834340892793406411460733614332986230225199510761262134588278645738841186837831920908184475628974244403889899061880949177331356372640041674637740416413447511368966344519230975725960715064469920189987359878822704449190819681233092231372971473407640274643053655027844999204731335196178407895738215467234427196918128834167219993537292428064329829243346583435045366855386529803775303366193283625497348582145014653543247934302726340826675641088709691824292858025560067048382414905883372371496711427747150445252227805018165866598046238302923764069696141826192287872052592201628878138471603499930562964455741825846100974808998730583292644703077305224688084470675210162404427124327927773623858206933172504334151327145153421607705531846291665865847884230504983557668934618457328743743009512897492052245281131351819294531533750183273324570129464378909783772732385477701881318347842604709329392014993080146996722617293482191691007269570656810466334153029009384960592781049197503613129984632630878443551480381737003919131932091900796216539173523836017388926251807196855887577062527484192198684438308375537904552819235812795988065725566204062830849804995424392736556778690960485833512323109154793235452697320274803243253539053817114208134286121857501511196622810330956912126533240242334800211487929251784125461862022323451436021189520976610607196265442809178663109003460953513038865041952510188792310028386454580992796279280646051611524851089525226308351472484354808610199801643487548343413610357842204425281332906993961642119391449876272265725197205487398638514826307633269760026502176669536898327935239499813573588115572097650167478782597848708668265201725464478007612016209796306664566288329855606198420018670536217388458312917964921297653140457289725341469842223771577977565040575736285058013061540682487987444981224750754672007843805013319093422518925395728601690381856557991167721196028660958203879500997774143070065996471924513205158060333928497195340756231296978376858389578794030946426267906915945504122176110809614103254586228150303458590644525893534553568425579065831902671626124485879364004785681163351645281628467271054219506858746341906280174589018042318143536602300528641845398262051204496711189430705970419754268043429611361043430764562563121103967983956189130365860517686822420138185243076749467253492373448435570627007491474434029569090255742297790263868703167498685022960559798290485930068716127029900004335987047820942438019710101328996407430949197577541761841302606992239428979454985577440956438329167297847359911639447161389143205273496773636124362018190136655822710923003403897408261066616051960114079636669730568622417757332121048600505756950252625397584364435361565594866387060419725829082794833098415674439526113792269074993158364359843146242509576490246244737216933388865102681932946018696655461610044264374350505235325328558624513919575494180715167463459189197931339770052669296039629529041503104126387124419372651144487314808224900974413366881280675659649441626447051762531308971798132072237426907623068028227337881892578687928388049707534799519145290557737131801405993340250799718593560303605209336227511480615645505775015258226629250658596748781033031390045139173509304729729041980717624254580026653527246900266908986984717105818310550856185168485073744800395453379406602982535474559040440218348097866107235522286081163778436486033899387266905135820854301216429997903709294684769532421280901062052430108771269555300823519198957945824483114245150976038630752136187958458361097933385245316414085409028447888916277295699819284521160721291858029049950490235839897067315860849065461038888496730362004563343989697994337775851849902311507373230632913403303087757314599565545796271721924033028216963201799373394547842317880418417894106229667900543412604868523497658149985632680492922146321922809830023845480095542089278622123168869158174859976826243073051599774983845857669769120443112016507219164776395397986741927065911744024790044460564436196156787567753696008108533401378966444218178647418722563347660149505697263574841465267445540546281553050414085800851627653712029391257216032647462589720887130188919916231793853898591896016348921831978022489878588613982087787598463068964490050950010940159776431763226581774048669069670169144479831412750321369808145354194095358042246529485858124126056393388885866954359505792624553070598128079409617844137817692562210799949490364416757680121587637906627241823184821898441160941277947347796763397226873030154657150775304855913449563004086198913503903309019576956064586286669877022776928170999147380698311025164922809562265210633566283963643630709903181576106960219662703919192196930133945509966886030721418672802862111462222154560411661747434942788566888762730960835546524173816309584931138324666777345926146814436108349835450661376889703637741049135050847697719920058791505554942368142912281925668394183229477638038512285696261067086288833662451668783790180350759803170747641309258043183249623632968197463361764171014197668992087425763805787335951816188607800064871538896047455825144111054428069306835660791957449567908543791293323780313070381784738970875188878158584756430411953866353632091832121374229651025250484716987570721249509307269098228262104783084047583310155269171015171307556470588955142441213093859818589850131800421718185318401801318919236309345302619117349478486087970507865114456992898318894219805852676972385096113526804804104775058569937816517119275600809233756699591240435700245736950274751195272892282644462457531384000560360154952109767999534183552016664709583914827484607968443486319950837488897843701931607204512783015306348110335756515722674533477354423302367731763443959509464945469267199578896541902648334035880840377999528680470065207130799351914427471676143301488287200020040940113147771499250359864468015765765501224360134768628470214275269879203702650109328582605994015193030622102739798984232917030147762101520541355645085094520557783278082768570133702732273635200829089523257724025100769996436585918981242863068018923011679594537999164491529734071912861368974382445122006658426707244552539963775836036925748246416472601857845148517273383538227331805865428676327641920139277203319926254746741073690350414011535230573678248093589444536333973020546516564489849070954350623604195400823445398002503585754271133306505058429123317616466835577222787649986264902416327279956662118925266596075081780877444231383635162756386943014866349794173966872291723490449436722476404227212951624932401504460541066628427468556262418960009559433402558599742074095956280592343725411486567212206160576271923581026398388734457185487575214801417542355907978535220675677544351787059906007545973210982575084783756215181096446816205223868177805231457163479194491975146313727630673525597924537328301604142910871489294756401042850791117328173328440264109737113080237285565321518563083433190143153431320690665838164413598659270868662862888808620528404703694302233392431912208175896543706558580469933780640367953250306779048076419286250786966536534177150656671744900543091054094883642488732772445221576991658407285200330129670007122513575047649315944191066283535379997300673246507413696083512794021693386533237281031859573531571246642328633146437558317331090990618756975049834653711881285345223402050481799151158655971828274231953199322144630219672320649689869080984354337292823624272285452224198529525688480456550915142117045090382964445490717268754058680545115476015237480382656369106852935588811291068797084363010524761415054034220281287894626316177858184488325401446723997448339498389910897664183696142994705053204385085055877927554265817501432533972790581596456469628614314324236877138621069882725054354961876699939673807511201595925046390810540368007092248687053686506713126179281135388007218710705523209569709147736999753943875559918870580428251785040247069320856295089144019033933579611347081648632131052809172616326518379726737861997079334141996342622630867905532336062721626224007115639004224608452252650634646922387727501131519692836262880274533636100355163366932677678914084761778247745455721870206771526337147250960508506853523616519263194708789938868033361421993971445454431132276025060260252036920370538742904377068107432725832514572442661556388761046835734458642113847365176424766758409675782346361751847477540166851797976120221186594233575599766856601653613635110501102419328742622591882044315319999833583044845849541073627502209198763444055285189014888350361663720014655373252900985672315810158081153390983623732446213178556408075438201505671567698387754924902281964525007526999053004224992730185194647103357736940477868390624196350788387204836542032312248703512581415372140879077705205161502808903455000088360062928642392029126757896089672810467186923278613504463255163597697272088053098767275274008364005887581773559968214607653758273199731479474680196571817865811468279303842222569931620987480077986546135131689393225314749943701009397123460238237158597488554594379020753851646369772858937141613875990874716012273532212132822450044703465161092818887438835973209701215270589149151218496185548000402856553685231051521069510780141460033524830668916924983920640302610841424666851143758502480681910196632954723996112784426165258735205832283444450901508585997287749979504657559943066502642789937839336978453250971521943642124125204168155839623540351169078989873952148341937301347099085353235530869566396542984361432981470214601359910693624324897810524394141691671526280224809803234420796492137345338550144733397087015008845021687412734845036009294727616891916119264607745581848740871182252672284368615521023255810471351026892130053326726552788386405434177922778125631502125774283190092647065408259686582187176852263796928693332968704287659651576323469496214363607296997167080250021464595735611010598212083327138239779408328086644484132618199645116036871897462332209995301678111804259504913288747214938764955806977108844681827505260476664478035182587767755564154232630667562906672481345044477010273649910138909329627999787436184765376521712767134226549977382450139766532944420681535663585810982812569593825077390757455252950212082325598357669688855346021846787719031864771406534449284877041173809104761997766558022999408110838152150130429749690188449549710226670720269053694518880326632021539199806818694821772967581070697658157397818493445730147813666497617009011661676618999523028303482163267860090752654777007717635253789991792941161646949841362865794945951221473225584232626930757289869902316406317741259275577174181560391269012508002673214621464730722886424797879798015049875319214473016181077421417290113605911299779989408611023337698865161897171314313316612954431088025674573045749702258985793342417070537651994509217177395516752461686571319471324135202924774558431814233025160129960873600911439738212181016686759930536513492227572306582285059076780979836580729572386619358311892873906576693216552542014103670186073793468369220847189307346790923338991395916847673390493512189864594399166706407140642518964981174600379308722533249376409248580089036623392583756012384506531242096675647871982807135273096657627342529243432350604236653343812888646879661175573078046143752154276152428359580976059940304934529431058301210644191448712315280261237648012039016297492475664675232474240233795188944305406081507761158406438738242708757009834013657084685392290432562143499223833650156319165614328210792572927755303961840863946609600048646054344851274086666148527571539568949487013524578181373775869714040399874973086730040242104403553442017463692606212559565954897564962658587601853763396913138054323810080753159060018267932620100620101041813418335388628952265118492995033811676455799856514894491193798111808701024415774153723072116820883801160086226787922133540891976985650731015098957288669801931337494875671888014484339586695426062609286664416633113748536841164254226874464159286296875424586209726200412654719983297763897057122783999262574005674101969547156997026241738259932086198033330270732090030135236568401729101878819343423065686678536312662645163528591777645176663919020377943223899415934730080992708295792604959023528662279336876168431064972629599932480259042991667391725425860558093727655214400355791857602176667592942064007742445364216725711381259940630373283231596346875504118103479965910480783787105453281645000279335267544610568740345959838072971015269826238035688047004146751944487038102837774608947596069428724658236945428545061495780013628765697295110828832105086437411710361303217711096533062085148454452079022214036943643286763922842796965539952132167048252961101983116592109448759967917746531296731611466438524861082628704204040852349754475923253186208888260028085186360768093031326494115770127584217151367462277666055560752045008760656674790271111214036783253272072171934785825754606569042262858009206014616940850027990633178277452925306396722166050803106668333939491399078158923690060673002061238198792394826345426347823264183468049894393858910238857115396642136709878925313254746060024948495636478825939687681104557216108162506835734862039856176268810380971672579202667756083760722187020567818525716425037480401667255225185206312568298120579730592101971705596435400316609267076988678106261995508156194902296168099902630360824344679931004362722863027026507116789912010529587805331148259013815706673813388009359609656828333918332221516042849805043607513025373780050121185034741855372115031438655701596735485494620030151047024490052791196702519261227463350639114973837779817520672482335264966302106840335791654950506686131462016851777302857081661634053581009943155061699818187720853892930075127230561691582435870538018361768309287590838615521355021794957303165960164584925428344615205485240772740994397697209210382056878903663150377017794340207495850925334254225065655729048762864684789699344198879814040396637264653177458372577001802623753154693511509659621004234225274485171963784923017742574918480883038832823791930308180328691534541716214567065707498312274647982046526280464357997687633242472157699671077722460779450863647930612933061100014159008715814259731268384566797323704385121060056725917421459954336849691613462618779394384723343936868282004338837248566554870737869119639532876008664709789086636207726045484924686215951928407518561219028298430951540861289944960214440322771304115383978607490692553177438789873100061125030176111023799397305419170933936200718052195489988668889816830227299463770728910905940314608110799482810007789820557600216451822217569628718463555192843595218344970098078852213844033166824173902239286490310188258515671794972011118936914133281267871327676148290168116577201618702206679586359664955909812732344935713394111107817987837895497419832691600944679239771938419456216138228368171056954764430142649297193007745523149013546761831883397190010778170537313807229641800559291440112371541207501414449988070479438769069054426769680819995977298252963629432864752294255543314846736745447013775912198191954392723126789216594918290271859765189493867599175784130417308821901998774569866689986783693686987242468600265506856292672028070426678981429653918187406903473917376354530070257631021429361036658584835440466789235200977896448796086726840176412165397312451563492371396916317609703750424167811490446290802771695472544961707790269299533218933620525168941151841524979126635689230104035520473454906989047444182689344952432165093078485452145797328789246327897739194085877078148170119360982154169092487642401657998672912263290285857679837262955766583028827561634203832082935656541068613703597864261882897729725459836744984484212648227766494940470409892096403132827527938628405327470530741932723940100315886800627450865686526576785340768505270778180876810652106250877250440562877998055036701720026502540701976284870189673438028130093787217216549096170785838969530386087276451906967255460585312665934205842317703591437683044294012991051609920681274462958810010820768354675945411210044627020237376323981336092701409572342854821907725187244339393318986138820215123274952788564790551129793712190112809987018259501396151653971578385189537780339116175558459110994968443299118562054974204171825789181059312371444498558338408352375304517715954691411837389526400066167462412306488456446198023322454262674903188731638206516239689775463379306731273262141856868546874507175601234447828735802873395892487475675927961557202815060128875903076564424056011810276106909930251749346910765724917075207998045629279539331745241133744962011257627385954352798626188206387526918109261562733607069513949008135381958318815651820000837057709882949352133679536595698489476461821532123255868904650115241479735019942179983514126686924728792101732536019312981981020966471292547461380173873624508776526691858135407167323418779389858913793665150463649165292488161425635354705191084189396532501896469193877784007371768457288949934244968886820132149126243920859176673848046111745748746364227520583124877857472978270462392333427654246734688077708114134669709203050972930464849152816788963469651893334598944067712037077550911871960723072609308658617681244468061716394517766677837702578628129356030378287048977584103240158229431656184123636067102895202805192629256545172412183491728772087426460803612297693109855805129060912761788063360030272823833359797368516725820066003115685056984562138703245412531298656415331017263353813756479182387416239922151417004604574518636515167420016578730943190285764434680687222968065326112040276919645722114112111161079487938770900794183065014913037080345293590636789576335177727132585785129832816963834894918464309119264630642403374674099510001204017782117675784704871657371733009630880326068209036533708470817356382465310054896436903689937473644214957661771170319489659105178762063902230374846050214134818382460207037272256682041133561387494896106593404484021951857682400064971470793175352776430673626771406278405836948042345523247090053844370709362182387455451983020356394075779291044081328971556166617710612118117580814019669708514876974039987165868280347041475785555482212288459721159095012357033848883424718630350130595453644966814992684208047756290536184931503610474421784428821740913034878802062034889266757897861806293791825690404331890229055289603123468853904451854814446657876749992125245245682512437720906478324504313399905414084272607351332619445119155114203566455436096687152529926588570341405296326151790018081598532247655159803020211717226737340177159356627707077096697608089659106079283582096539528536539003128601374319319596748920093441516279131453746174170264023559190763530915399652823873281325467624684718354232738310352125442628080536436816255913164819515818208859839433112611396004711494715409231409261759517081563671091820719379325109923937274219043330266587301527318761612566489662785804642207850530483774683325295783612980721754219026679124346205431831091408378826599231621873243709104877426751810707064804468077757151952195960661831958403115997500037534571266546275080618205336215720540075858215443141420540721703445856730211309612858119235647857107558972164664541137570296231505124639714256031365041677167783999630577234925168810026264497494930079413725948265712500881181750414665096859007028158099028411952890633662200214653829767913282173266667072575287793527078155025786510144900291174177077922155813397329876390944254233046917142345161654823584817778948511252913885477244195146430748341990677432845339678450375369242011765600662053316824103782772301786203454609984976191358215684758179626398767231791925317029610498959082724730820092841998578315190351787579364563540719611591465303987970735503062564473735303676579435818221298737587815482163524625414477576825145603260167874402719377259206138870138759882365663834314374302921913673127477733372696111372317378071955886850344030906854646283384886193664280885790424855104627980436214635349450709725924723918255776134502884931148071673960459828229994522349242627557026433041618203593238924601973396491200854980915583722919097644144037238940966400092325839069163699242997959234608004830233264041337045456074713837947916151081556759948271102133235819712444470424494923390723211813460626498604630149899564844234701751011352972161638405938183875456193311812666654082496702510602078303940109635683054216418211567495015058832866728600477347335077938946967651564471090787413227284472912222935038276647982099194819786272097706347947952546750564890026649744012139954560165077089003160154252154493089003988418122723325208061440413989699369192379207869389741338034040656421663760585966400275038254297033961705180786641320618995330114360534414670985944940852161956562806062199464111506248420959443841588780751399337538152481604343022088540686378006517758984836244722388922777929502626902794171977350826317021762324345538915448404022239256570770549712832839624570806367371225376690478277430846264204976836152115601234944730882700592104152387068795441198896421715436769280229005984404168435496656317096570015341049486460915397164472744435700112292098592464718534327224784520014105562465019262381884389411732249931169549254903253760443905236579296059730679980308655620847192657343830903787043004119510393485746729750083743004066754057641213501059589069442808649830032846337236242749501292426418324979528027002133958314293692219740842555674960394012997083667994034538553778492173288062180935172270735033559921279076546632107600974758954667694608783508608979478624310173307928768430500954519669085579073280811798550778298730786935242553278826837196905825958859867745005283010085907751537998141619963702613030303190578270370965580439411369036304678054116633385896166424373368164968494754469909033538360371175392197932001759239038078770719453662729378482115142368368759982138732823297331903142010759875122420821432878701383197601662861497469241400380598128628817021005800413645070673994040762973938350954212136089590986692860941835199984923463333706900514195077799502327023365419654885652001208460234962769436533740279584502481637832528963546395512390408992939081690370896698788785949684612693699303347823025330009554786772349905803601479308788586574083174647765016595242188499681364012494645135982793475253750357154568191212116035797106472895331847281389576935587873312958054863158033630077173540753263467797206069725355682539638462020438377187774159181681700537693438360366325762228102232618931178494831024367409898613637423588037748037085943077036451776632921121469161001574571893645897457524216807220320460521726080360806129980146131413009386782505911215840365251788317922686545879398631905356856907244044716845754218876544542780251741205839735287030292065758966667720710822010358503353690406644101669294180943407356727745950757857495681810201573215515812519850941156356862720879931628976598788321943657411231714288948821028657815391619505145632288164073448246062320543970249194785113521778211270311361832155873728809714176335184311255525538129147901499031077548958879663600894259591182902613830735641962729133385579216426312167333596703634136801703496703761348067061343164032298680037095678066246236294103006071208513832194251305021852898211640746695194438129419123694028787596160294671863460850770736184594792271695825784364667222315498464046489855936729577099701750113122259588002572536690898399701732412919418982468398274418294120393770787749750917749173286227132781940107448669658068084620053778178841443119736101054627226020006121830896625756423362591362730887254569137221050237690580540157458806076879013127833346714528807432020022040147969509929033087289214056383029117188143426693408569477454541685825607914193870889802879100273042408627205403695586047589723098429488593144007180232895923171534741278908127770808469673496741710356975057496897383549527018746187864011541543462713274528702054514280062649380111226533470923034232650070764553956577736945434546419552730579399761430856872855060670602412316753280796934476012696183466491849424077316262882260580385529303912276457483911842642481889089594169451861252464925721740578950282570998394969054022049731024700560448628222897752855829371465082253290259524550914657273484216039115408756528632426487169454007623364166948437346075080693546001089349220985381383428849143905706750468266905135783478012896815336948847065003739651871803963282217768679996054000777289723496824365227644550181242759044235660909163800468493911419432875744145728603924747775222215258635885010102448657978015045761355397121970658171528923303482543736195821558700586678010600115815231253173714463121138303101967926193205980626698612004087080721047388719683946559059945442650051991884458236882756484868125126805667084021776846574308993498785582511212568419448718727888876213410506464040082883849136571324650087691704691882807140483063358537316769452393363022459633052777226357850021253317185714991439953238613282044645416740057550615271778675940438234741414244200015971155734951544297226004635394873397873338000271406630342295002204445519682262202340036250363493482700649088769736673850186728169890303342402357967016650615993395188332828962713319423337978635911593520082186501596958514190338237647653277920520154297652123460866233487035356306297057645302164570000729214308179240599373336205082323279179642204954586355894101174787784828695858263464634751021918511962815788934175060332154615055993752122695543410732644740563714218538678354543294723329531130454036664347059095076343888712853251871177553723415973979814627881593519531777809944548183127139868373007333759933361623488187794291593716542603187079526135244723472626219738035811199834553717553621930727151947328319402673588573609857736394130393515580809363345904347952863846588953898288567336514443475212522415896646673843387386546948596781601889584116069902788235884937106563692880019605803456218937684498005865471011594467531663195229462543656399200494638281668123038631974703128057491170931016151858555293619046969193415017263113302296107585732848859268241268171055851157743772621040905549877910033681938379244477295345769200511694234437873400660156737241054968725659753800622692848652537931425402755334719474367287029611835904910109641443165653409071962943160996322423373468415914769610197499651268278121126458042206847396246132070575981214210888618265559043502642865063908482126381703727812636359765402740236658284966412616527150106105052909018962605058839915547804721276559862684433736265984091792103255771295631605435526661383892122489835153259567711693263712120061357992883030482451123623889203888094336752486144151029488735895201426329101256156376496337334412946437974971428468963267218736752475844938599655643674157760401841807289561790817316769751180647700839165281421670350179649524201042282229779667757152494048067186070979247755486025477380041568662537477905995835773111950958297299407496949666976850743257723896285060676664695116601224570237124152115799819727682477630679053648395260175950212478158015366959859568209258257686851916436786759540681782196585757527749347358662834566058629366929133139989249556279063916390751255539237998941716543056592614528497495977323517568407671223558719085845880453210490125616960365205773596513317040699042170915541210499242206962329482414889200093538136155132506597676670391503306694324503238186278597508098522976046085580950805142620040337771661932526819977923164209478831537611985064223323756015138114892643453968445754932824313452065075042700475299397205764431107690709370857142169603099532378135872501382657767763117105762903462784133985834865043090343723334087484756226063882823843027776781452230129621061542658379969480265548988533927333568728570512675737210704364271873318371671267240548431410552028537264109546805569226343312445528335892532383358497933902941444780423579991922637145572954571751059166189700958971530041309895743612946176842686223776587157923633502529323534694239372028478106694736907528703878101852814077398266455524472156957835497364515477139722088354170150203619285229189333461093314218836750910181181621065451167040860693426078816520835790233056909706862760535415266662525162495349714010084414637906953666988754349126745021519049327995528789946439066325509695647020862036494404688636642844983286866502684537883848700542611033576755382861313927784115248437184590439434409942797705640878093233998396847919416739343445821205149914682303129435113618128858380385369322809723125377926723661673112369024255312860478018124253400452731617823046461586112830049435193762129796993634948734278110847828011876317242068097778461137613666282528103013930194210565145766182813730482780051617296155848184350814325296090285870612442103224264263310526375717426715499743044885882656542568534891039342042644430706822875227769462635526976978472429787099017672450559980531176801697922597852905885593762029487335717977465068416844250049455587118715409258674432066828118485228384947215170991705973964472509287142326841314359906640365747601897975344840936005325290666668759336973391586840648753394869765765830565352221857467933506761156770644929405473848938749563917884612592093191796239853073606570785321570502734427637084709538913680210629235446505985511888635029136661255535081250451933275948627052639098085127770387720200753744286021235705180081702404784211969762025787697607385424101137838435828622029096437963602055065176997284720290306839807126226006374567094217372513238108619651206549457018550334174700019367566609348918412094758018674371799347912750448188260455785354120723438844747342824235769904812460196689575519489402511610699229704127165712009860313244484365737519428003286867625240660783902646689033849192889488626525575992912249704916756776428399596395798830288934980940073047233574739343486510938477969022111001013705977211216122740077675972809892114846792927222532502571190973203812311092655286328704329074580197356832039967514513952685239239356120804099076754499263178548218743760106626492938041089034940723661298229655893313359004444703706851779110048943850616492857271854999251847104940953211030475980830243046283884331144755794261102818006252710476581868470678937366959970496567539766150631332302182819206181128027802236028997455127184192461182425938195321839925750942249138361609255413600751349766863055953399941316465673850978957343521478575611929177978150577252447016740788269326212593944743450667924695935711736183104975974931663831601340361908303743441051758133521506516086302926635784453220704451234582216275758775485670053848759305194818376320937912899812743416830547431282942383753401824577679093066814927684567556166467183817636500557741858590628777246058974398933271156524458780344704114034853660333141569161581908314660660431927069095744376678471702985520434562128976799415274235831798342745085135648162411975788702940949037010026677487858029911589343852012921023791359453512487160002183200153235812175402898238216012490280923918299324447861474533859750938028399153576564447871271559647549090806758291342298494472171290300017219598205900988895062306426861099340017364166170941064776201526183242202157138361184490656340175808515190216365606203649081593680689287462080125056384008596452287241924218417561054539996831190389099662301430586105132848063599115064780877578903509470066793373536271294204176728866796032195800371609134921633273662482093158140298990338833748437690626352081064638342275312729143362569120397477554369103206132250983768571630536055700505791199413379991713202973855070272089322536408206383278304366139088603890044042467367899497547467529109408706464566072089377846618908357353872672056370720461921177830893717807288394767627276215466766758867769303330086199928231507988754085001080756405351969908981380778580256691253386421271354666970963847299242376610025446708934394302964292102224398725672517545856646959383774570400044066452028422071297605994536602308820867358560528189174450307989525655920755216464517515725784300034413100867435973125422569945663965865288815537219859289909533657192066608856928879240415917798352634642654683129656971201483049681644807291827165313606989408800121014427016425608675365332758039957493197467172241113103495849921189393032074567420930626656738877664586524889699302890360699364555706230198778302146944738681679375793682672652280693156001266710578507514502558767691744240782866836170780038185241034582768037650127845502085690432418833810274605406532842480851282917192243520454423162582230130895292063357692101946301692163497870290432441901193153060387841476764538605152676917837173153093200169178781084227603108327305301971519771404016748699496768118377179314031636580019469958898368917285366193890731952831706683500598477276266692718958426261428009680883598969540562157155769787841939652464648377712246224645308773686238283672609275453307144726344153885504032372377892572305389063052196424671051217637123702187540160483712726783480972951593426492932778830687053753653900721566486117930426202398209155017453121676232047385170629677454495951459209839343104834790303185176366429902883859063271076687588950284246062079430670510015937452122602584416077263979778713077597183264692967542184619443260584561243663936442358209083400486074453623889269912641287516111872989923077530898319121939842218743920400376120834410389521377489660263462610454863812921216329904959626107183745742033259563466514300886420457689768883334005129161640986084967331598388920149157861597790742258039532083798315504539030470963451931187561839504134286951057358091146302352313369487192153149493211775579913181707282412925063273733782548199633820327555210328508252503956723942296396646671391903549723618903725234809995032389650700735334349701559584980876023448964103504116151697445194111811244085363016090809071096427296518247936881175946724556593070277890042637821661697682213967050542618868291587475144410663254965240851680252149850562257933869540616114886559449935830176208400337398826073465473703591842651769862938827807547419016806919469144068272577693876412688594763482850905749518583757642920020306490806637687845704137724214961389869424217751425858267617039573671691611635412360991885552642417877837977938806459066188168055406094833875228444295372754466079698902847316994495403047228822469944242543153687649734745946746253065654256130477412671445752329698619912346174411946026192095157972531575010939788690090661307730718416702285406938392892048515415988588658793054977526731858692002589688307002776833884736229519586973703108361430534225968649815385626384089025960652769103476954412001260950286422949759386085721445967477700609205099054048347396407316271056818578301206587378327352640149912160857273892112237716579732366444152143193692554980888142000197889190471798042669918360023368132909009508716691743930583517018073866434420358447871442417169183443425599464608605960067808076575132932844965950348413876964938284771851619275542850782705978540503261261611727132101293230526445210967170585690637231444648617566785128267796889465238006219743445027893294168530866477258146961499379789804264043404900901702704966959006299355432099686679931676073053571418841067802151384969567491846664330792489749581619380904561793304790847742183589966830877551660722345925556303953572447628719429831293617458294138701916420713788128758899994176621710617751698905202421235172444166055616979422709690169834113649871707376087247569123909936289469322200716229314622579918489902170163063460932188376161092287700314266635272916273474926544110449521357040116224533411796757490038579090463257767252781722749089698724416065409332665071586698391747922544365159576901826360180633788053240957218123627813985912809901218489239923298843889542015828220988613353244521448352773097196630260230540328715171652901493070462114738675298101656541352933832974865893135593674934155714881910458378558865197268506890298055650722741415857545731717995826726688442309795409124672861404910200794254591921656043296743875402286355573907228039670573171000074349474602244059715834209926434384328329639778867601808231997558453626423466842908978859845265507034242904859272218256208985980765027323779554030460543861404484433317796714749628385740615198481768984075885337891427156141608783598825456325741079353482788728309561449837037743138887753212763027323061769911625090980187307148707974757309970502710267424546394140631790303178545693764304303440759470827979034420969956940701925656562716080957865428607317788575151616902313867909627432843857369026061951498995292261740331612241781222402478961952692194961690881347957995138200091252697238587149362196260497433923507556661273564077685228717715896029492671833722475804443691795620312137398361545242376159134480671932922843194755534141528888315545713642618252966718026406665316527900033353694019066778260452254337558729715575905505976364019565225576439206883540659336924792853776749747468732799193069916173988742320116490134667480687231850809455920099922182829588963331021026367439670561057555544005647150797187149250526096142736381736746956955250985769217570777314724177516439933515294561832787342976122957734407262901274726178159110401073445247434917202658500747327460813142783736227640969516267682530442450580109142220286432152372626821356212365967433255337270382200607741221932516243931275744825717252520969842559209878849579617553340157097341689595091833818597009382558255393236317385714020098304525715344767043468720362888812207051341807224779214034626550507243422148798258958111088364729162657685852593449567668250771742258857259712628701397656431320905770961295601659523776202789108718500987743487342165599017545296173539225262169614104476071627185355653013580786210512704615625369363203255360266313674902008548142626483356460140007822475145590271913047274741791341951581112497949381595833311279624056303876719272728164658683168022050214472207787341950777013399086121950075968893869211659727695653991751222005480994491266042844521642381849028740744964106518160421775644931782178460392481880490241478468276831404870210208968599063717374133234607630326856972006067926233612328986490737032963165271502492977965058580831744077596599053954031057310545514439067482920762846557561842309781494390330252800293326001594369552824539461906442978213964196747064664048210033051426545794800653983127427755542548071018371445362973909284924350308399927507352692756403008180376433739629236500306965367343681721598843459967289900055801164631718072113101889500314018847683882342647641892571592260651947302681678789065690898653816181213236174375124562260092880690514560874970569417843197534395954169473115315273031926187953848250135962710121025096809448037851450445975480542547245734421467722468945166631873684514831329633467073932849622946092927182304105413935873313562415260297840153671293264110078453406170744621072802170954337568068682927812882720431237526443417334975425073123404217069896280258531288104243592892476599880446364261733123375268723412305305379565509467357889383342707432643533248531920719411322423789222105069262493964606108235377932949649210513465360635871471304153716977000451469508884372034644071790226673087464909260728638896673875118058140343233287808370610693584678253937846949221528534847136158829154728339429241335717398763990217940487012717641648640854720421738229842106705790680802467650905222201348254215589395432329472526921332312518270663977894697853086989816228665112494995214941243762146978185980508763696102019509566505534973630010724333239921103862991926856294409260453180766387781855425105030450607570762237859984109664455205341451150993849351156675657135216111540998396231842715240907747233433494062353236345889976989217629586384112432851616344789028074541522013391442580432082136362125289612967003227302305704831226752555393150959146032411320948271091119608497543509917666407051633149072270405827196678636712633513601974022699661507923818609564169819609033486570507297009316019380456925571398225277091742741141376410157158392727227455045010144040762813431400679518408377593964768370546179784340935022356477884749137878265326399002031924655812937401803855856483099372854937662328884328894993750836634063173700021154248454125147967738005756041192519347761788989550305197471174580818438725627518439448018034245065975194431912454263802705588049749778131631789578854508771742122598600477984585941081667342599765632090794422096593235200953078452303081328423513310223983318580162405466728623540783139441687809899017648444463729726580605793732382437268849809675523807759840650845009774397731115411777724592288086614547023734033824041351606764334023998305184007175127837711849658017300254189785915904092817232770174789894169515766883662510385583903309510546591492625440626821116350070891683467146485150963591687202497151611878082246505160108016686099408396465054423169644714583290882127905808736720603314143510550202657453276430978293970983971034335892352507088495471337275262832437715402432169157689226388126456666914174044759597965899976567996155445920991929079216106637983001065659499406551424186018802008013029720064961033532367943865481029681299980736144251735350013378009911401805495448812235774238813862009464838002944879114677218720076826277343271006201265317974841397803067553589838773870867893514881950215935533729884048792062748742359935361274357227505793725839741108834636544868899689128981190986615509223391272115600128375104742877317502832254467540691546420732798173579721524734453732411921342154448452735911715366666995797579609780909831020807086744830598152232888858902515955496697533000703299344681397171609744408208186497432725834794459626376524980393398437690080575279374517783574321390475849681977070795466271771604652670280875196347788936933876333643390778425307919795703277057162159922834244988876816480874365371247417083367239082716733466711739452415960863880662570076595438573967929591649511011344688451936009465507979439290238324625224196843062917032366292068217483399336722592777083524818153779451770637710330546058299310735782358290329534054508263424684933743403482767671130236342350165045299018261347032138931701024044505624616574562848150129391038945373103930492399242752987212161342559982417698651497445620776389518646213892237281094241016524647346751571993981196695148941193304724690178159995509573909598085926620480111533619230674742556410272899057571673606803889060739285062392698356307747018038271838463809478215301904674557651453158203838977817130875908262094553258577071038812085597963634766793914896153068762558479844759709550722770352826553017752320819919116161950698172516157406772406347060477091685446000150685327230294231869003339075293491651380540950797813815659709110304813344927389641349538561676973805555955638347594260501725941603029084382950540791532470448277089606583016262593977061513535408839123357475066657246257507637998403444403243866801894063251762022072402162571514834324607973711519571810900427424006560112307773004927103916106788504435751656978789714762828892199531715507147374141169816434344796761338041565203930494415445141048975674609750968146945920444785510880026582775522135518724015170825967578214576557392285838270713025316283131300176392091586822639187607204627092126078777274737283105681870311035258485711870725922939602372172473161445153304100369191283223595808578268309133674518692846706748102094727313375080029112072102520496912943465810417570967989775952435240002485012971465923452346751259541290733492432372087088671117417154815650955036662819860821337394753801475606484338473969582872426841259902952289361638178476616820140608461075422433840041024963769964805633404555408124779718567095306361525799052536286284184087156481349690109317014737151730893208493875495655165083219953515894029759597860379612153718742232119930405627565769068016695869150314674603232156310502206236730207765755744591135997514271010639708863674614062927721617045837496310446848066970239288914032998595246161940937557615717362374095523084921708939626895681701318138376203278365776039703481794025465575861564827234547593021203792156796550518358116708525843741356721925792028325732080963288837025155981561376547490760575131820373548163516202256583749703552767260244685653224466340668409834599031087343494621821736027114138846587606139050179133133569624953525212494691879614338545181744060163709130971312598612511739657693579069546780016895637919174828429011908959978739422900453194036282274866037961716077496850704293094589323919448499755431939997278386153233422128545411339403407983071018281064438661678744073924244159624566799340742455335447314419511896740371787437313482781790483243781510581895626258915738943031559010211901461732821855639970125181992229668133595593132933995183081581190601466906002260007471518495918859452046208963071299439301372640689734806098094187998956790417741747748658187782973531450336875186376444816116277051385576829744936210563955225530286916921864076118107124843102276117101621617923832511885147905898504491110615959057312698137149289854780287544353895384591047629850069075443512314565737632017774181413698559499827546738408000897920733167808507687973949205222623612802172859282600800020705979208345394801122261312581981965054959285551633402430950327617138298496349325579781149374731110051523235576259659905784069902838503711888927346962424177873268355260598863194482388849282592161726304141481514122498191744972777685873266307668830018918768067382902453322473849996965133316671845537152099300443961330334204029721516443000553219306705720028774062297671250125565883560156894224652875267714891665186754737720380658422196567194540414699738285021943863838019963042796083767272427334481300668583289126231833484932918203058882448489762490634861853905032042528975584319174004354079227373015601551616236446645424759094218771244139311545687149133201156403266632618024631428005047345785747337672331145570432170494968665303825870854403330836289158695264996839614632436488844697743140818985211277672627496945208770623805044781533804335337995544851119185296715101424273505614449560167648506187307624293377764480996013192510222055277655926894203513941659474815949849039012407395832556906449888782107709225071318188597355101601762701677721965477308553254283789520072680778104493024944593653174441416964968694192475786949321902675679040782277898064815645263499595400151494592313096122284025180905245984695005249633764003541875505065064217346811845041623104331746147270456555170842371240192047698716777363143071796008202137226776011558520002657439707331969679231696579454761891775682556008331600401365310555932929184746208272442261912546900307710935525459324974434431992811487068071164731116593842441239436938834438585218454058217322464701131780410391527431238482027962341507014511998210859741419960054944060720626685708280759209916296136784425549025607729935777649642418159527477429546430383087263485374816835992951702169213766968646430320898021566327661468999572539431545471689025136570641277719692973147692205219111984520054591263647336454503254074547975916320805136292405571233177009493279423938307391852927120910567882458418621433027629214935386054218796777452996608678130218538381036310271772152493772015227118604625431663084368762375983730863472449148084981530524865138720761386725436190112820099819897271707210859217681964834637679098314924406852731989430363152739552520761380347977383638358884876345702416543859900224731842249581863578700829849005419914481521978200840469184754697693154540340747383826800796304148576080525795129399465497698013302543852334222277698559672864663599623329746874006319199119325917428724624695738570601009870952117021440129533201923796053780210188744492050392976611968965397344308937895164081307023881917934328113202729707935207209743182841815322352215781217133439942892938602211690806228913804378218049417721677094360978331855767998165081268361497389750730939255397194688698947920898420285689782775733188694766752678383534493843531157705278495062486557143255013068583389626822443274441456956015346635930622974923147777523812910786129826149992850345732291844815735626601908494052617796251342059723093235743199745380614994968271828460647000212889745579335410974651469395351704138420166128399519021706091153788121540395706388872967152148020293872079554627178752854106716959408411856464715521226004314467838595620016610031717934221171472527794425897622184031858568391521846612843437304636976655599396708145237122660089897654974410473142569302421128973343221821167943192958914153875465690285706441099855912374924639143917415612419573441934937042854419103278813212382875095360892251368436224681897212620601847138731508844556755486541232094794139691605451795950692546958078343937704603329531491604436180581453082673760450066890211163741583880189229582883894212656753936918701605321209072481364900515871364225132516937228599320143884715404847009047710707276747205217854977940042529340470603440196005334849025744335469383563370823752855080913771302208464436768802809009152022360993725919003551157894941729569868943949174762756915393947639912191815376671800031063172590820813971727605404938935566857024722728944332374107945608722855691187192595132763781253718151198372063742136118001191762789624901339200539479817258330858327484475098576783973758762959197231049962319015920280458634042586649862398328740529808954291907523889205614876052278391022049040783486156468689009310285246955707417938345116868358445129817936026980841036395935028120965354660918238325028577614822767255412735644289541972659013127387712925297540607726748227434404658107399627931061509549647298189663071918390846509589363785739306078236209362119360392944236533626315521717054755958198312880023164504677055430564407560318631805989268252893042883173467204663432734167644943141676806297390128397619409990292973284353208501393385301966730575527836654871716131118330080607099714707391449231906033535475659607890888709588618722224751957199533949050918601351582518385705290986257331719697564713833389310064380892901907989688240608878805230267923425634876287581306724453658540582480637606754816023883589326549421257464026511058813219320222315005777359637656100013621300695061590468247246984187514630530767629986508343107060128427651032699277010678807158016025406233329744021272148636098571433480062708400270324148692295384016944298879558990983641969103051397728938027623099044681305476057723657668412964218999453430204900671153218623965376098631163676628638150167533267152956682353453925636352184868051426798706293837334463850797561954992048866127854391070131991195432148120037259657939076826520346186344388619873287562025387274981901300740768792044101312567507805074980852660543075221760193203249174254304758289291830537758234219028614636345835140660680753019537559642506030132727826061492480175796531754853947289060510431088115075809222173371327523313505391493534161728707155594326160087910888231366832641006644055545086939121204374949986015205841234174918151724917549880396083865677191494765276812300823878800988017177122893052782499438727523904513052590404912905860710165013990861652657391228124127614074213959925149521132303974289317094959753048851496992567650760958681812837929028208259831734276927339273443576065106219316199915701814153209893189704222069284720905992387172708168224467897109229483312097709289989511759514421791640385759350871688161057280712568967521306814785889116638160494132413519072153876480640446441168577384197927434616953879832447453507366156778312037379235937073970419685597122530811507818451811608870828461202445460993228324275038460862885565659369653311251961722742331958330865574848390159331280439173458833976736146628775935663808719101909591399054530517286709057632694315886573342173428259345497541146782436131261028331281268063751984526904695393539895277034687205220599923350358272174309758931480986328807251643597945873786529742574542170988477171334035259231480651846024771232399581607957021053512581972876463952345184272792305764114571895601968930326373254282171298921469773362250123827240454726516925597047714199211717378359985186542702310869872186136193693771192618738257175822474052177452813264672787856688867519384864301568124875808661177941083096518433080012291510435364256658595531971755226022172291000822152651746070598781747139268514466309301321872573878120473331738984479926566156221400569212934977571745771406423392414365645581782399273872877757308665867394351693744652899474241485858656263642617838170484082876358123294990096372307449986397930947325417648765497060342022452806360030106980698654377660284926278405191189718784943497922226758092179014745935934334277318489640561890160843766590946472544679114861672165689790423725589786542067347519659036400290420625492796024480724405425729506206466051075243159445561713574712606202612010220687655389054312901158990369349396232423270468209670375153919000371124221845887780501566045009748340255518189464635264132167271879168825943076952645663745517947944052895366982666870053325494393204327667225114559501535997642570333964155043149052992575700149239237371009754797429736653881447234844115764012467723838248322036891518494643275132404004000661288410452496081224989970571589094167791410237924969334713685489859618842513847630965931247298192200438815525145185228973522266261901858069118344836301587721789782323206244777481317462942468238363554812205172420068600918780551829096829429390050624093302382371876450305653813323283902178134097697954716516669440207664315335181378841967157566168334889741773581080248366296753398011002406136400447035549316601415308594221266916117391407986045635342420201451148163741351656051503059699632313427269523697414863142606865731334632119737327447574069552258013382567288955840483688165352911854116137547860615982975290836779742266034744922076646591977119010737009705041670934427665295400760121029177488653644956007391443343638822807648502576930032863698718386933388731410420650600827692182534021472427617077936795037807960442265411857750631578044270186052363725104121206195250898190921273776025342057853145973724315671345277379992176417421305622647303881262349817541737758383011854991069907941835164598899861583033279126870696837767693425275160410983939114586216065537352740951668204701241924449660837586786897126704910051334986550282215728065750345370969957768204187152681321432887166859253012199545065333128783255985967893592073410790641646415577650835327558789310037761850474922135832092348520515957737163421778463429744776936850808659474444748703031843672058311032411902955139723005326427826677922162266278226929335816830724415729866335379817014108593499740518225128337537185557727704125044620721610355532197479973617682712822000048881707752537007520722547065131812307343728593798716072902197920511689422841603618647322429492846732597535367219539647620918671785617684093899853503393806697397424080439822382670154048664099082111808513089149953159065705297087604705085649517243895343537378283112265892912128649373127764677761650406415261335432934332738304916427972838650115852347394775206987389643889377731997095869606391426277804818195579490739251798803833023697993634888509177616655355578975800377236021987864706086947649842453505372614114160237035436694593833046500989779025064259463964755485983443457143473864116936901553447406918308440132094393042037529087453959335936141587874834367649984351484762103764089235601637040688601092174105707589461285972031851343872846126730892709578548969110521555254049143386611823971828309769501104813642501893470105789906778730906722736827999327984321724916980055088736527397790323933459615481857979252613519937654124687460513479653814916818809589201064004053811320412570052566308529956608758310683303625754105357357118751241323566985953233831104007363142163689795275298597404906362734091826929183411828191182895130299650289450499317880407192100272991335745764340839659894654154265992622188488245816844312998889883885623766901096476848445203706419738141126212201171192732866140044122106841786807090787971369032736630215789097457010545688211400663265186299150964430063736429740881050565759151489335318370953103739636264657634337253057526101372568854271976385245561425239498281689424112042090110635440133215257290456717992490892612050580800867451257548499577966743226933560424545126403543837862512960885314755270148838801902194105155273966847461217992928952695608477766003266441054960599437897307884769190313981631036769843135084109901928522913281014865585971597721659679088834252810843003885493618547723447433429635604281232375195065404418568295204889250080029139441561715370757383816968759057835970206142284068061478351757584616809798067755790974961445735460778682882265819772563615674278247593895248579888769405880201273810756183677880291510668307325696973948469173524945965436266941765021396795496187741270275149412326842637710249914016228809066604498225090717242091555952752661591702923045469690890438784221185247097040413935168994929322097168468232476564942463331589484097765959823311864334200805181085099208642692723240443160846570383541772131842919739677828218984772488973157321846550774996856706568548117845182190504258908888426651903995811233142262960355234500384253483055866405780826242394942177812667592084412331489918513541785344128348109328457624421065183219563429098284574773400722044399328331201294454433859952903346872039451094405644654744858671081571243416406343983285225535743832567874085242443249597680971597078594284532484780452309442479360507925987566390080717572972488940030083970398515631258268841326848520335688353481124588763758238239199211099605649100175027705523689651731129452574275901924767311681782207521921319021197478949190848897354996128800397467420473296202597713034255261680377832408238856848807707170847080500822027826000749238447483655013711194065145173197382971899209510323625011376960896509673185351601956111548373407735975862324000599274378607577815834033104566267870586144125110231780571533219147010547915915648999777301634747955914557475520581858377341429653915707864980885807158786168300438407245321203723158221303289410122399947293506035799667852537441171553072696144047220247883286573797387150721207959601924381545466092656353921510352879879179912867177240790491374554916644339126958602516283584228270153737498157275660096135351880813838822471068409907003863296836602974264619086053494817549485111229002412688120703304357375700521370540502197700980100536701941952419947341971367711017068240996001567991885959016111619567021612588007715661395853746436578631302549935324761407545308397315096096147750957437450888374506221184121787306338479642370758480016952862073812966967107903005519193679763222093958453428576821159518868145505327437802770997446394599873315901913462041731488577202285240308206502595093466655824610457853794222536730668049850578623729589616846902728155906095727269865923192691216829304365587916081354398063057098397742533961875782415730916688683650200681223505615641692123320095829915595972585458741057470934084760259118782304616795926604540676262712220630965010783884375492987889244004589132250776345717401137675408035872805928656653938689189112094502179856481950068851920571376695866105514045825521460812506926090559469029992304943230590989257529223792721635149123929501762107562934052491655380250631816468644971268690986736148520652568613308898768535849174535689956597971442500524816799589839955542966083353204875833537830817304179456849206272207522922718255939432980059006532004106408794618527645254473487826685878593211546855590549331892237158043419143644067093928913448438989806756775399166990110148659712347771190374991338316861702807571423592815266191734177055171938198320219017105460639136194967758371782359046015740396244815597450921962800849478570391622832730681102676486327280511905821717981590464533389204003901138093321467709102480113412524499765255574344342630936400423005291168679498086292149401108809255818382549839736357674095280856840090183487569882818965671119657215120373700489151356742933541315944543909406347906236245202251000717505635338947190635073904332046386310225387003048938907326518582388076551614296947434604337692434809661585142513234435612401341164934812422999564568076181767791514809745266084329747847156408417752037387504086508378982737570885251457259844965092594408184282943716154001739478950014488052232366761152007497590519452635663749255807038111625604545308373548572798341960220792496176185749592685839200706541397053520124838099427659384513353003515866536443330533968851888931720187067681251597678599472168412689825503630054638397556200760036825818554357402292575233678039663466192017651789420476351473793459258210937566797654850343809893482806616980275910081464951714722769248277215467968484958048480049145470175574091204346297112362190268850019665684431954113461874312536024652780133971410859565558216792186431905144164180612675500504787989268104254264186693273331542337749347235679894096403503930418353695821542760449054471268284076911048279321959607056809993491094644057044132079073219378069846197657541563888599933875431754726821737666596378752018619164372967537971691741072965094940708655801112771640139877043219478434145140275397627172274461848354874658717269679596804018298163916184661646416209974269507724352620248408515993555796974972021795370397254518667438103682659672386852404024142759714873098212914843603230617070117790939514099638199649250285959585638076553945159177846015885814111332019982611128131141627891693315859909996661630505678710160708472948267246407285894639941293045988365791128234890432595759480072811568050326982231486469581864269107494358195069725405749836632796654156945627584189394722098017503089393422713118692527438901449762167306188099825889964609525668358412808576101735456571289229206752824833369548582826638051047291402564868919452097603070572729787136288524064607772680893659429027438261657282484003271297124689792374653090869355785144597670880089323417256148044052831138575722715650670485023066919396357171140611765261423797497672841533555162168658125928836581925042429776302646844225482674580849522464682960944565244674538020309510369593507608590909440670227051929704563751000974194154620580398643276494597365236325982784818417628290659614062625978773998368272635631362215919914087693994476052031755931852885075013465666856132196168992106660288226183498071070198477137038195912647878399552754639002135901794404188769542189891440395185264305188705026931199187698378881917903638723622625998246722213406055516219925996552052118809242127305869356724429932275780775511372397594053454185185102654479944769907815841914485941921380159278767061681229746573450364860185348320651548904618906813076416041639480373364887405748042949904064848600142113707406563643847457458718244532514125714439322626194272624048204411215599847109328673773898036487406016582401424969122741844894306229228035812041333553835092467718216475488689247835198100592817862932177747417807800130231722770386242666292790603681273117062464420388213184250597858073370877890544110175530066693636114746116657520285599353279708818941884140086831712688214790416610232447945212518891775181553601741643652981630030315418667112661789879702001748264181079186479110737147404669948854330701455167834252580534045622937262243736631515480405609609751853668387015828303017679154645732438339691885594685697774204130526646401425494749498087412866633565776978891875393944104142330805340624225474145388500053324279359978884012982625566731941852413526254911928018226352791670808766623492452810309248676394340932837757791404369836519766611322643868586449551990623272517086185993738833296045671390404888928779282372126453176762300028978406407613063693515922988687240457793107475619941696799643600957391692810889227045199227035424398325379067681042369411677244806974603140274389742752954072626183652568391723770187397952506587177616659917961466959970116144298448303759465006220745009314678910504427240769187743070144745617746910019784045874992895705377064079469513643450381734467131139611807591721244643043161132619777333493446838235601575147985214594884992593727320042590166057256794955434035010979905359584819303589282278405301869774237625431013545051267674506643900048372425691178191527515392431311529035804384580471573929896839715190105751028979640393319297000886873057256250703983007776180369521236114174854375847693960294059660719729389742759466730178208389953247964822888167048141812778360996512632929927697228836410665646573020784445113051772325492164672945286835244137519100415578773722787667164087704033069506260271551119659273968700167269141551595888782974766110761329742743236083340159499090063912002765763728107352893704999654721806991745102289050769577687304606057711684420087140412548684459206069377551811679564513551955943188883893613619029786546614990273244243886378499769562315033221617190857649958869397916619832338030802305447953481742626158273081377947427288511163572432753267105683572187159385264232785830773523840127336798293789584938042121715912416378643091046477655395305700090448160519135906438914086409674215554354414028186296216093318094110325511438256078695911182351085144913882108375943772096349028762029225198822802767873316821284698497715081772983395356929741504036924803189068742673965349999670606204501089887158355669305498370726358276005649482126691029916668189008441067489559734057092903958787792957314114646153404416175430602046542550466629832909887436900585744322920053997470931542733576910048595352644707098148652412265661891937076956023630398862193989846717355827660604705943329791324019128494503355827129621012142525464121118978801653698893618691929969255016733122933935997244889659683968622216463728712960559532584534351143487157004247652380711937371146108132122335403534707939610411424814203040070270208839391046370230240538131982400154889448343786760159639394476103966191704461525372274693620124159498121915413563530186863911731896352410392728408203027965756459119643793651537545788857834500765220272204404143941345711104290128595221988349079127415773297646202885938976621020255145510273141567019625770208967118931163072824738635693847354076193514368918466807158881152013621498132374700033269185230266705480760004592893526875608732036506253859821047726136627344520805456680874936078522897459773499404984872532249703409324170168069444162134370188338394600194837965130478379958343244470618526515165056794889728403192677362118955625555335219773394164893401000761406971978170407065273697886337489900442971081664085957936378635516089295491745727765999671609531092253299494336529640731971067378826307781998605426865673192521958075860863489620398786040317467570582567516219463075726074353225018012204312802347410637599182691598536387064094374189460062428678873591142852100726639900374690665055781739997198343676498063059700421345397678874501317388170945443774852283474870349370070230547469074541637392280075488790691504899212691760629302161190984767798607053058430539599969754633197784104161143829068170311021556588989361699460259542715476367576007387714463257941742053414985250616866430251267359714009429909570580431707242250046207255697280142404304055090254253929033183129432280715643329158052410619634215860263085734048739858544575427092212799099780713096164081450295946503359530339589663502508069702827479321145461310085594739306447949324804869012724762428060855412034806530606083395976824892668095921744574388020249997788075867126992102839684425142284730930200209273309775600465092473126749999799847250348014198296281304445467261915943405592052787603036794756693887514624229908861198357045359085258731669154335846716272016982208644334063766343667927785029598333089014886110352492153119213211523210031643028579041963281200653037013606217019718453318238756029592579261220717806165019390306639505453255886142221810348325105939236365753437988148009746110876093898412077323962352503069006693425890191826529223798298415756399720076124635587756451712706813780312060712482916623540627464638394262740036985944281331711715846604687476924746811802638155828190306188497656114387687538808151408403493778579558624930292301794525038037985388873685529615874404114866754256750829550017865817188920636333620444335087732614345897326528317514123372884113419538587841069714691899962493295994052423481182597244257761223469166692471992366222887381211366352367609320423411368962281153933669537286271777363219891943876487381221076724305204036458552683031154416713334918022036063573677676837281982484468120435697495718940575353923465849019080733601079598270047289549830349734852471824018306385756137050664125831252395558058437140816185046590422921469317394790664396419847328285838712160490153047080819900134629716872363581987989433738422192388544222546375627385908017408723803436279370776516692661703396814303000718447314412420483925287967127523778582781352750053572028969582943107359498383719274571065080515566171788468382921872531641256651964487241727973285430835606901886365582907908026723347622829632823747389811933040242899075683707112168466069462534571146422572523483375952325854001349841191009368676736066131226314973586762736274991093407690120978329139801362551560346751749733025425449711527553467840577438935887580145627360861555357933249511619181095605339903392757305827845544143309117532940415911418516269572326652649378559765003490283105164821765011205410355911677149677540542329189276251684494300297563119564315559973873512369007870984185950556146294040363250991903826736672472394373223829079282007958458469685894064469871019089397236891121675089847954753778223297446394925709202344002602000042915915893743678861139569465496341412041697320745392078688591230567789708436733442308377803710765280543997956939477792744889859977951411133683642714110514214065928050250114840693771926280498697212976319442566292835301829886504220296860560077913666306831123467453112410229020186633741881740941285746836501056614773989234670082137721576863829738360103880433598026931161508953699888259032259263184535073339360059245536119866329276795700330650020174911043216852952699646997282968499286895051482257894601302077591093361950463454511969029982096886535269764912410577770487603646258483609916608889361356951594653097516135355731582618798715689856275470665865743399000384280006179334441096319841875127854396749259442386335325765664367371117952850097955697959609793027598134397708699025287259061669352301375080053463693989778309918308720630083067047565136717822843494642911196829252375681374453906482888131613688601324944767742087469396478973002835314100337329915880308506000501794573423625824589256353334473870898769077360610212140148600002490053643378064458156223675821148846468807868522647646722911111999313715496726496383102543838438973010093244414121388564530502426099488174487737967188622332116779947800992450500215792467548006864577343920701539018304403294881850973851828364751482705676859556384480852357255130823889467783742766556812800389982475234241029893162980395730186543232956809749740416278285979923196978499830237583484841401574142700544136120314094157192287199269625392692506444641981526995916287981031004810396552153869168859679614235004884680134555289879131127789740159997371868678942657629400741903511139603683531226859460376476087432785933969004028466408756342677889149632845482518101175779185788850123013118363604094462761103023867119422871014951061110421127004422575437345585338723962351387313118379002180555647643631990358012188530850509539471193128168395220137998724227826303179442821845910240963786507427717814014206268783085857788987468687739537655613243281281741685408551902577247058418389667309657503164994356895521066987554768371156071053627961974030890634333918626901417607365727472201381781589520856139708285005986444765502179467958859431540730184788496832731071405539413361718861920486235168246965975505844037874064287623706134315998445784038221835502711208327947790454654677595901770437758882188204337834249309737743399411081633006566892053708209656130401672172884318380783485365460628356105774818119537353534199033573037635132729139822766932900972056430361057529524565314068241444564031899324842585571203028121930763867637022186711731218468598857849153549432051122882224829598590936535450638424279865426572996432340464201387407508920192638408698931766775249054277363811013808767126023485538397818057593092248878022307775538099591989577424087375447134740063656383421973853242386538977047141325466599094879844264781889720069944239314454877461264304459960570718921351541839143681800410290325272784550958788495039555640603659617222287676132116863039646886674985634743551273987005008157689926694614351314817561337218650900219119352466078285868296453612299928403400439674934728950321258531104143034115227083553645235702977855319968908211457244237847105107451170489152810849022376461695064344634037061628589698283282838431198700358008040510117161737681826346130283964693289289477166388832172366644007250741688451741990681164278897943044924710878647005012352266468880121038443178641954721745814774907338413471028536071399229782656166353842413391251262823879945209684240861580287073114347461016076958355201144610464599831265920356700791585086996448951326223609542420161960523213501394732536802258072286531919553903724696430452981776173397263074054819239988906380931484002403330807192600643260648809456079311687619690779266751949099493011592636986727784982223386127374067239316907238887475812044618448742870496803046907522839472061548024643963624344844357802764492782644903577679311036798407157956279238414175935470222581344660391699756360684128381689654806569428043316303748621118852807941248257039905323757821256183363270259223153257927347743997764970690814918302176337570039960676114003517924464867736569440089148298363990872751711049348643713565462503544188666178770473604675441272568489472392966706554291835945859696241352333265377963201371192581868988322872633855752341076518429175980911181399970164537450720472665782411746556994753063639795698132313881256044016556796329913651145206980603516203442458854581635151333998508781400955146264455513775883002263639323994773425906588939001922873697612420923338718606136025329575158263121170811801582591736448785637236788409766498503212027738496546677768544235661503923901551849797448627667110405048071167268463243447826290718143410474129695572285567190004753739698363847259015047464192812844945338738191867645521436056018431248834356234462318166959193052340967942303792837000799169375068466136852943159890129657323816762142446170706436868221819454189720746673789580780153526990304406996054869708556110922377620167566325696714712745691358807319818133529886628022014216199932821411338768365486579739973573435143566101226118794360586051347405358942438681674478539932445965158267449649722553801553575386592207566353477227674974882907816267602894649273214342090778079811127044079587699102800358942688451860836784129134632367825130753817121839932394279974919518056582802622682609415538448332030539313600480290381461324895257469964124402688831081614330148594057513433694818712487016389998948510422320426865488370564318509417810864268678089120047807003707326784204765176326410726737041833972444560606754821688470789114126185711122835126021454921718379497710682816381636789071637253898550800966874731822612217756131312967087591653434873419613420424641117131804577963935476507193728644194904716318959272267756757637123624384430814827282895218257159994535763859646899371606660127950226953552333390750104429282789863718434907373255997911554004858037741670077797010500437069763677141012406067363932486286152039049354039367664935035444158870854898458438342385395448620611958172708789710459150091246520467606069132187489946642466304598439032507937060821594944085824075096583833661021019771040303502348190558027615199779537001722673219937493811922414326384972720912278658232511690902477633732095042255090195590516906060648121692696048762334717696004280383527110187379558122442179871308088663229906570250672822869594207605437919980237780648941344765206804985824131453856593058631531578207592005874714264330632915533104186607196834893664112407319475910201862190376619887738971994900735703303618450698198828550589901769351841492649565027160271181109243458639033863368011355124295012618629436258813062939038414897155177956513018700804165394068143968752522492205556842149985837391509069668601439036282777745775641377554823418199360357808005425248810814250810511602982112826442878858088466152744159621556283862412318981324597840333856648404146329670554539847127228423837191736737305051205927998719257027583852479002497838655894855067144079735052942451298375321124859795732481877565377161557630495184406523786970826477515269080795635738223120109376106368273101565934496525968381662099985637135777893070428590191551544537487902984813935855491257432805587296972711073988249400354021711339852374663290589190562467017922160347698018543401073463604803903433577685935280863286535352721949530020870650525842817095117196417613326097736675210491089774855825521275392459641082283775570158652185365697214645682305718269171721654048091616631968976519173126752130677375047281332017701617684190704288124388947167657677116883520855982963427713882004639596173096708678343445939127972090155491452195862926998868215758125113640748077278469837316142915101351803633975117563708350662816319469917463350066331218851028657834450733430860030001544339650237873292633975116258986226511889742509095026302129958157079627946136734323431511132392286238115564986467416856680366845430471260283349422159552063062975009367678258594236420767340792061782050463675119225178562795394546244000708882282023209123090116561395915163968698586479411841146030985108197623866416111937671545370122392613592203617205943806611786716176802664856166522871769864113262237894028328781101717848923556163683539402814435469668796834025797921252567401921178498095829359557135410600634076555857880374528934667261436332455768291672372009988087408923089175276506927142553509240762190473440790770520970070032363051130054224882722586294820051363700078764041119451914560781923860473964514020687060493464498394745128574561241585059812671527928601286578647381652846791192441838631999998751536204717519547102056482409767479084455179419165223823290193269827591009301734986925935148761413866574102320538414594113289902844082864178149558299147672482437958273020348044680955326508285932426003086849189430321244419475948249249321024617326317050208936325933850966233862206463728812421815514846777867380060791171010203549723061558725128688175144465720140539148002431570947009704598676637756840306353079492839421283621875470413704757748130246715954903949910793834902059948092393301983962242771425011582762872351880437946859563604799149358142194587916324045244392418930910112790057840391665775484198760637312005517648658869328656091154188608574186607512043560099565651743101954015856827171330756706220873737645971836555635201105624750269215178449534616384355029224145704259061118557140987883874839919590805650644445054988858387916718836355405555466124758176422001348109003356105809938791379455019299980501808400511312581297539047612053966617791794457551543322757319577631618968621009624434680516396214937386211245265566151674376151837852665653294340741518519088363595710979937633641662664726994522940805651224028295702676322002486200508845113762939642909079364205924905768358597878985645817662126668260569702930997785684477656551815697859752535137614028984304474254444885263783158284848600575909161556788952796647274785218646723262156074324447938146485774759167478431264953973484398640317968100691552840298167537475800349684389703123611979778949329901296507589083358396870636228507269895509607940281842272022177194219408072165891226941455517576300177447603129723531674670347079349064122968177611271521285594412712297363774228435140805995883830912574173919450361744134617983822229705112061229813587565833554794464678354713092911951522653048106266381364790484363823673553250020032880646295375602847966635064310558167577378454145429173297777570599461315510571168789193339369757007379872230701641460140061307570490257793165506622499865201958151277060843838641076419975941035141837372156293133858731299679411346376340430390500711697642286087773838089691860916201566115977180858739968101670028453004321487163320097756708123481762281139350121636197654220370793214838286757226591668943234025053542705376401168162995389033854513425654320274329513846847803744151467417166965688017964977737678217326774056195267312837377101620699432632141699491602204633431648120431770765569911268676750002437216328197602547069221828229038960248205812927863191793143095680452532035179669107690987723585029071142299056454169731919751312909945193890437057163076381786615033232604703486389665521287491162852149425958243382100152541131097705604781079855823381570438613280037573554546084264233122437316980605964019170911524111024010010850286176728777470474382366281205507893393117695482612444604144187643017096133827247375387827081708310493848717375366054580935449029727079902509591866717182753899838236917449326907870088333614672258840256055001817114216334952635427822114433001478702112300355294372475421646730055944313846233126748812480808069772002556702431439086571222414059826889426590177256967951877123686968527853705257584825852967102002594932721447991721398378524097797641411552787198289082085095970670901331964112789954207115226391085823978953404476542261583027134560963694700780449877407562689850126790689638475416116036710397202547325291975231343048667218187412034093240022735978552607179934435822377297100737064331176781024161545954854903825747968895605379224175324848031411789547468928407395836064043039557362567963168922499333186110312336306767240846090136955888319047405496183424507388384379645757823561467552063651959889461548941947100341082431924293757436168954502123129534518278012592283613891096629922147894682395061831051585998466785068873623905266295690276394949367046191787928707018968530559858807310320495508936774802185765666557027086814298744529622711341940303052415140395843198909475359226837285396295822129859900864501406576050884068506953422935734013845027600036110446079767800701747471213352489140146095784784195869624020859601244911155868382827008933248552469355804836758191926823797344667116056911957271093209114011160740122725886863690753619379069839658560812644561202011198626417415518386569300687693712126942362893673357122347150213502030004681285731421676099069587404685324454633133181829140196542373076155407505421445553763262158664322387615597414249198345347087094812079725230567565820012120180546876954097059328664060523851832278734615066793002383969033872367503719726076282354062628177101697447577932143121435591757262843759771796775161243979743958716132708549235303468887012324353765772163796956384766257564832409676598541180315064282598503036456124738920107737674185444060969114921234247132659222271597160280023261942742458470831080111320299930253811402851129777897085428636606387360990484776332489680017887300376031273974561754470284946984601906180089708588241572769370706434402192096100252019308446340022449230856376271125816312274832797807757073306715978922531502684856706153588208499401495224420372276212737087142417511989843312829059936766578854596383051064906474433546663862038715562961511743621457549518276707443790606854413062420504878752523042935918827478152362148112086213789066347829812283910263117724968986444080453562769726688808474786307335757080078242566900832533683765604133388888059563158457168281752192006984019773760397388733557238144653806283295653779867200536886120530867156548794728896232131212286277267142600400209233952604708557861534449031918008730903375543346854884395520009346456302976963022652379984304708372275791783891314403110874258627330025982473235797279332748722686346482587737954833793709778169235172108516695615305866540900616734138695144460180140611794481846691353940338313252740157458425726931450314486629606092101261776290774154031698140095081672714613740822736413921828364901335796517412083808323777384325036910918340014061152845128776237522877588177367090200219549208522017797495428997182930079026584158298121267573649431137812680302054107016431439770707774223303954162499387846731306434055667076581346958980414956631168831769805446714847462113004802833408377108734911324631380253393113568040384523833501031174390402654575484363910431407636649378245135934420938993887578243560544761493539890394496059278808325305607229093590320907815311606416935655797535152699164173465729740263871880323882448633782500329719065862068044601116772240732152173690448465109096874144795217458788918578137701053787640680680648750755665356827741337793927029382486931742381609439808400592444547165184072648350136297715058961325231740110142047286707725046012202392043266289230314965379737741853883904351785686854261013542502678898132822638225361514666268994177060295187497402449082176288994906261996077394199768809587869145840397854755608338211313850854266831480484357279940992673872130113535605384475014344566202702300245774960392413523865220047461279240024894756819449490580991557646317864178769903202776213540320755450390339595163431926485074215069404827613578599432904983025363370805287493953639064510425311682179143981332841893833042597600854005780176971459468401706772171696488052583644863759673065874406277314902993875195908150974046973817180108385721082083992634032237386344612271921290190660934012894143047637623404125419008014419303593128413842291596652044905011073499724692274639327397830683683991564696378509151148245280521765810555338305918468864880861173324283701487204203608515371920229934276224443168535397449617180776839575657905649565478333190834570168259671201240980909775852080576014799076044340153582830267599214395719383662219681094757331812074400969688235217233856428267561473094302336855101867835732072385688783844608497844207068906615268429928447448486664943070867485845931542251907053214746343355900615809252481702023880386163101183603967987823630507091727384232109869594970844574236982294193900741238381388653915484623135429438452885598856585295971922108117489776379566137846764029121268595366943114322565233464103693542306840210022732276948544978060697645864491549945464891088521593339536914998441388947339679104432874225457772301896592805293452655357581686714460748390373805245766549089357325131181117445311874162091429753802335905331989273763020981271022789921459372532319205658779014491436580774046349712719192950717263292487700420643028637051626302239345298820812079009731114294194609022980460876091794547636391629735104020881197907122154297015949367389268649684358910726679819136468876562655590575200388600852456746094729239688715526366458804366017205396463444231491022297363708559412263444818994427498959643521656229049792099218714267405591586831349612882461561192982309007231838102548511304536242135499785338397264644689782129698439250840325948225286836323116506774783075423065286718454814585649915896142036850927896967970404419948662180028930379302236345755444599880126527591948724614151690292399996248269907186269941989263600589469766559599968164701940283976969869448429365320461907268387331980791974762335070278009895913598892634868952028739457420748653969829126515034166057819277871239089184955619808236839582617712716348838716677222663657771545771215811493905577911977723072710137903871109943645831385945822106409860244898341287117895812069480402653814354053602310199407653665733980748595046414168440629195056553810878381219876208410701314332571077065371853360351032192482583469293780668734071886245843847618452427013696259246176787166693386934937463830032784692134533799141770884702856903581078455229776925968000429216093269841500568270095274031744329615734096343699324002684505324817160839951122940911341160069682354876210540090732155170553542012961389295647891916096582543992346917537857630875752176863628505734738589428759982568480874610653504857429849495429737193107296669219630452346081962907677111964095608324231020568501216736645394208164188099858500524107824699398763205808586797684110468627556195812098155025291330524453788074290169289965778052101140027797518090149107421470827557834609853270148283850301163199550874909143533848548052910673978565345828059864100696433725970792479990472488096705664407813440600629538826867346646519451049321368561037127645505981981303981360218356203248166400199533428418112549429652664894437413667737035804736795556293716612541271841665509031503209985284703204466304903674006063701700591623238197464009017649175875373326035311049464642372143003713560993199177966066059334677020721494846164174951850405600451898285153038657363549290718186221510812763453126574855014064750304342924699104058680967617649845120937206777196811189769834004286657824098368252165095036500817528449477918572091988558374334771535643423277216194059950430142949399783823124089782736946274477744641678922135321325833249521559582556412518912515929877324732063023508482950497179062272255670042297947654491290350369066653827657079007192207300567634888661352320249342155866389077755481994546844205106162173312423023754690494278759812285398229483950668694854525199089428819038285898547290557135260767068987071777854197672543264678078477594921647251072784608701469392092703048459984606492108298127910937916861864004832041203248939030198605011756539766882844295115076338188069471437660719655033506612614798054851096494169989078055056669528998223799140443459576359994473325780025261365252354500869936677570803318460694070473682949662291193089384076294743658306484935688068327747124236528687405011907738285334947166245614398722450611582944302444412223052381571853623270977412385391175502247167785700706594838296247681980669646309332747714143807044315743043447845951785200520502525281533118144504947684335295050338815662277832515745842154159871809967747528887191364308850703035819863381792244687091105879064711919359601968290841589036176876080636898094424178798632054115235581831726527583155243492991742088895548944173427382174170932399584616321657824434644844994303491964869892064239092385864463597707475298633216579795842224368454282791167858052176486377614987719149038422156495390301686686233887570313948146546356469689914925362926613798731117962590737782672414628767377187065275385085189132408530474553010885555949129746078759484845919556099123494238117035294948571937658283314651673534656206127719606510276262983793115852278586062618265833863373565426268045876911142045632364299543059238149541002647768476942457548199486186520281344607882246433724249248024822199762110672943988498503833540994460344275465310707466959654612347659919620916790297407783246125406804458684249083039051644472572144102715542154135763798516246664866159120723956646092040059781012444325512512926001761509054583654067180445100808843584657541021831738242562143665666710185916646356672013302238538805917696469616881002662265900493791052048837866630967847118809132650611411133842552138564567094868601547674473516938198091698234775644671362217552262326437441256930848462502388563263828557014080296909580205458530379596190828651702013500333050359855784772544040453372816919026758028494739309852198495099642032814051766563960578194834710790667436429373335080355156676064348786082055001498104607216403434089533835882012542762159560802241098467771540161356042977002828175316215338719610574091558786276000781814276251012873753091602451639753849474872544313985892024449836111588161209231613672876017318910286103441110411303222474751528127083442914955893091229783155096917628372639201115041645284538032742200207485501033384894989271325287286986945532105605623980284280071669703509426082673800169706217158476025825846547873825032376016186923628328924775354707724746319219497673152513187558874175107259561928254693737984432567664604564376155478870982311923806627799799333236110487465121780216803814000622891584264273798464519512224119709538090265962445371203512178423245288245657941641521765729703068408744920308832313890364965512975478275522972045292541770598143682319588663751789218114847231888043845241276128117498618304872755812584055771386545715188203957309544769502042874448226203734000463269528455805924983096737216934673725316332644360988837071387196945018236900531819272281098065830948238257218969631007738577218669647372475985109956182842960831142477498343256997703307383561473800545677379393316604757731798193200763488225531488452006761835179943656921295395064412383895785635563463377297571026762744587811954332065888931022760348668890530406273802514735198415318556882136946329475678778288104063057410841127042939241958392287173248964495688004605596923325897485346883622301908596710463381452617099969178788284322401480104837201050310051452374160922766416836513967531065394771907125557960227768077348437708284949026761763354653422249311432846898271726299218805099282151400601455699128942646580129348633617915831524676425596218333681338811936101485359740729493958615472975890557182731277756016409817635036840663624531486354057511249078717019028431024665650468740541901844533446424794273429332412105854457304614840638868865218469524307063872413712440314715633062263820139659254759303740373344773709092455993327060790004356184552785465135881996626403474636400044569429670297431332826271780223428487720965550701169396823182168499110765011385348042594975577766343148119687886853587470231829767451618707246400935334007883803074929660067860125483584306848190479530090929734023318089949251073051731925823848024163270151056892851123121528170711432465993549172386693126283607499912154820988725603526547939338310946576259344382528089014680136837213710407857866759899905789056196725239469112312216908949606009399307724146093959698257697238519386090998408543552628487240571034785349164558769901431562291656776590914840119577210450234098321141163021176031964261162801089251319144914431155881444188433801568287775301235961622696930640222191028481360180045260506879912834939378616666193227940529881562866606224783343601772135416179964150763989221072316404359928651761327463356686178015364239198265483272908815230617725028243366101487694221488596514119193569938015451963057533781968960452928941111590185403386222099146254069252530587802503687057736886389053599906786179577417010093393812751133299486037815102087956073860121703575204322448561883774575525176672916259542841767899976051318167461663425770049432947772764185429332603889853549194827073125494978223304753299088887590538253656613117744532131426105699844064202433346860240264022338156520075720051188057547359028205346529644547781664094684615075651524715207663042546235452875056289946760841235967649368497059221115367939005109145326620631404448734829359392911283601787326014985222983053245521595604432457711256166173162137615608712637875947945174178933700445153137002623239177255099687794107531999181077984747015698883480630896872466495612560620893440370588526570417969895668886026533876024506595506656931056429758147720843941014167202941574809904762622269522802454362569085975935606154101817138737530066224189704427108413418771132763285428096531470042730152030743141370330645016592049144245255435457397898175459692846502895012952041758614589187395216109533617715819235669943309889298560778288171043792724085379580543623385303772705225486043648358445005618482301303963881254573600934185213033803704357946882406860223728389246185773753298877905978917169913090250569473025549385363996362177259600557242088447809295080859341877367441737760185731212963244347984673484886045610193040348154047966097796981207461154034206609525389369360952922984389701000341441699837166711608982849761237384367906955703390678556959194925678070498206002869609352376651099190576041925052680450451346758103388251614154507170893409938500096954389043738771710909444875423915581673080897552368874574281654315882260004179307892260499322595914586842830339438376962727906365754237022303583642876131784801557053271412211111860864696765162830588673825096619539333627989522164184809276915449178829512750502842849732310506802363354333196514177650503259945612610141604960551406916797968017783973053212689896541476360889234811053414176581886462263842349496717450433321665475552997088956812495525690437319461471556350432765988414581375252620768204088501498160235721947866168820391434773185815384062460835446672905713362415758192061579057232572606881104003229688466062506135074240333145467345084573857731502286621835640398062827717375767418907721871537815390784121631899491425456110159374725561054798537068872297504559767996382983831463842829602022737168591491925939698446398321409471270813358331551724007933023521243042558500376504110385996247404093768806129632328028927400771087795857912604892689629198223608708270169816057012592098867733159119686718627477042344341263655241116541190980079442903001239944971926086363594823513638790425829260058564808389992955133933692248397663705953198746400509930478160451938307232345249516848769800972522469672343604457380932747041382512087191815048373217664072723367727583198289266322941541581212043842570158061702634287985744373567931871130775920483488590691797520731714435406331112554877851172601637327893964134153975768045753578955851409137998814341516513560819833990493050097739271650695988672343687464274058453528442096481168206546228012840443045210832949230965783258690044044283057418131255223644550643171708083193880575677550267134088206822622022200973693182698363672282011490747529276782741598735724509099171316184963085561096162929355923035889153703446880075645270409677402727114073025099519522759199257805674089892855267182995453446264091269701123405953261231676262292414521943493329071640306073978422810575988233408164801115287520857814776355490278782080103489742012154611186556813769549018165432302972434322366971910508652807939616195479812408228091154013418512624084898197845932004906667127759260437546467621687687334325118081549972311008002461343077066560147866337577822895469499312435652195087785670362482948483245657295702595623077856964181064562055364303827463019499298755403467862611809996080255101504319907603925292513420011291916896375535320107302849481782242779058370466391694102877742948281008938848375139978871923074224638784529185161208457180267948500734584305478665872268020601573462413215718380687887851753362627817708339337013946508453606187026800098676151922754736214802367160088116102928203154975961542400681454752732985533303330949776403026415687240028231138677166592524297450009493155444800896133856249055759283492763692650158667374756036735512418181339346168193244709741036655439214282442364935821598790950486794950379330585333585515046877111802441347748138870338300595147441855920362322456743806870722376774712817988531007319845551565747990696304458812400649639954805082536318836062131387832889792553290854275669801399111122061139372013143389153856019857098446037697606000755546646953574685074088934345341069591390100521446487283609456595889824904385255154031267592306257842162374906837758433469573360464617030064971451409948091223243333298436381451241246603677149493071518831542382801918706423321356281338799402496202164468607629253655247714990201157360112631392551129065846824698137860606027191849252688596713377530948276688823864065732101847800017374446099708364057019017015624579020982605150176712636740590601981678006293192072755718088845089392307899467941146553012180408872077186809723075053140147134267564259759730904438318362715925612500680362506291406114611114253943737240659970137138460078906891513083008395452029176883132611128088615324035279595484125525908640276266667529567979180578631080258565351881518099891020445652035136726452719768837430174954566619787368082074150863364212578031750356774636353127524294002804854352717059679186706886417544874893194694501798468794021098123351462529194080926612336304666615838237826582525608043102559679261714947655398239032074526243465533913791814471031153496670865153974686344943839024534252836944949201018981656330628816602245585112241423782589963047971502401141304674368894482175718120275114684285672440093988909226666025801471501589375127965553771040343586202085768035806522436899947286678032647138280710959938082091995840208341546558476273848834196266870091759531075342218992887660232355031850809324261497275478384278159317547125109495352311594560003009128464830654248184871398954155433928258269359470185637792510502468734453596702712600031112416308905709475545347459926205598329918496572252408482454853500110906772473558263527402780085708978194255658922266490957089449126761283154541579974450758209521604488799753595302889997146917422311060973152852342738140861443801647181703170124939818089497687011664576679300020835391759798370459141749912481307240729149527940884478012130034016844975590892763117532761050556690926268293007193704549922436076871291435910107090931639099243661552101253628046845605002643515533771457950345949824797251948138294342491343359731360729079987946183481668789866213562483648246852968554458460042090285718164187652369517330610244767695026141230647038014836152584097594638775998009066817891868843755876867182146548034558953462443391743080292925419453569399056998530233798562285222404787487224656629204529234359534248861981980349846888783021472871407959639413487389539616063832880312874018567507631839174522634988438654821014951688039261249385703769461926272131514948163602840295109547138792603979751314548754105476299177329542335368943255203633554858654245624092414956296687401259825798157572161219538864641416989881284702872813964085450215473615617254680090892375595171237843477575764594255181498049665174441091409993271086393888394996696239608443871178461746472717548230104355429105189906023879828683803337118908485220734344560624581228947630557565138095409177603658667576908431490970390586043401042836320838542117066598340281605376644501038191997574982636879732648799675754809964403674007494691457698819371830208535001430695617652793191397542727325208593116926312088416497119352787193674994250245492713850065347559254206365138131535283680033044351389040315246590481518563184914252610924782967360884170923498241514136911814357458016587677941290210690551369621764646446088633051448699253681673660799971510324764756417718504230382227183882815154131748061172238738050145492867470656357694923625499463592186901159371734564572146973619064096014584167145187970957055413583034063279835104776598072137612594673777791922226955555473591098879820787743582527264700971093873323217770972348172110200903085246234783012725328724036592345695533845352283189309233546972068135717623433748623494127672418933256312471183379663024578431035219987735207193781706249995134463052388205010776078144804508540891967949778354021647228985608248407082305758286697860031087984355641689232820655163465602442378942947627638849854194376513583348380701664025889952672798705278836191228633045309384581414151755639574857930185929484323650028351772249269249057525693559857961425544120066117815105848838056670239219606402174569008981439227541435832406210323856210795961814023173418771110631206728680451956122983851913329514508261399045681437980146148184703799842758488536943731030601434877137260303668343641167350262259379193401702490397769839665044647114384836335222584322474950976500694016041524783973056937604990032056194592811932223459284823060092951191041502942644248304765098710905997211348207071249504623929636958343768876797998604189263722189672310536216442847022302521248631042422053924150651367796523429356060658387187695726810041574366849177041047773336151121703676383958999602404470248369952999384513334907088978162767484217517134845263729475364205834098718350491015391919542400087600200657175445440682656257207871857239410378527774904359323580557708685768601220716229479400752570779012062228402329131035140230934295896782484335081669246970904604130147437460690882342884863227913748745839399797147489651788810247915700494442662724903993575181708450696950879113615162079353268245606474473988937597625288294286530043255424276494740808408467543017588530712917187979277682241516201832053753894946077215293339050582582709620106739519786556828489820901357533682765604694277422340524595755620432887987342250572069320707012009909147840705770418507100464038229710748173072826774453792727149155028878337317510787408568252020949037449372615554898960728951502585073240727502206179014909883925915183240533429994240698380441608408127812951329002448644244109107756827061974175185742101978946361131058735649965042661186514846464682777748065976966436030699812890121612960110082640521863777661745597654927438975600328373381349053720570020584642592216606105539136728013390775918949595684240835601391485685405962221270625873810459039215925755570980135093772075058435260358419506749384103351938917527531652246472353027768508616500473947617483514030594370714481897515910169827488776247026163130193990231377204043753323019397763047614304661971147550771631847014373115304216463029758310480622707491881511134174946557617021116825638195353933452117517188422936620772321859264638015718690070881333963999436191991376008798563918317057407385952048352542022307665956962305768352479404694127569937627660805856979575596529064244356175513235410370519017693297707362198691785327758930881795958706933110554780989156068283601646895658702912592421058191875490118173209697855030507432638949095240976872555441626255397957602858844601646905804106178710793674719399280336098570993192998573479036722622545505902736616689361247373373285241088153949559498953154236016977949020256460139432161933285007986338232136714741025167743913790179904188984420300527086486465202433777447521787265189192048632075004533880968002649990403261618064273270597105351986448315514658654779806971160871140767149410320343834970723677441844531835693943402712232129464399451087769742937208422865163712336497698979935678923516046682566552076528575733839125271616924194779607248749752021428968031235292845882578090589132782953880135356725136864460980811650470342076779495263150331524244791209780514102623777863434911997705852438168420745708595909543929284829978537172585741128297659587497525987428011699161784704699737909398882169355604036552577684093953410631662257031048435345322545184639112326861858585040792711774704526724815020714922524897312902377750311005733495049333943100243553920990776617862259546930032707960085377892387595683202805674112239117546255383705039322186134845992735422236885148385548084847792191579497186816124715955681674329778082732198396279974329215952566986415332501139983209803825833195779588272760052258625382205878652090417548205679283504154779789310510150293972400876957357903072590407142704930831777438021571584832065424629423304459306961803026997419863210528598717362697693326669538242670071384206637699281175776467729707736920940497748647117925966009304831261186674164825523869963765275428371597946921415473307873814126775077157328982951118806905912778310054027788697682082845468043123177008478130182937497883919104225936146477280192842412596369267776300456069837828762824059683987504432401514406129586024008988271271422339512725502290979916490393878876589482640329807210982134043501200094382740194962027698611903292085911820489968279963355305544186169838746651744853154740538300007256669570330790913928381161768868216345007502040523437940521593002202738359781116275210105755444035228167504515296398784279830228254126590595548212060518373122643446820015213120130729808662957840607066236782669152226461935880707529630175095481658838517596664966227402457401030998465455128663778132375139608430926023901852338327600431501135433479798969874657646609726316451806248712503410446606523542554022521113169455871190828495411542114800282438545019040678450978050782282844640707906880882031928146840069805613929184576251363495011195066459531211008947038945350808629333894691807145340205986030899568820682082840612385268093250769038977168445096974138865342375503419060462583995994573089046567976170044367064631352961630979542914745733552213803686157890261566635210368940900628238091988924028714661365652960303146543049326584642441787558968813983688256585629241961577019014835412738123469852900316019776416985306457435315238832236334940152263772960933359348012849773491798295843568174376708235009088090230689099769614474718905835567380616472185837719023930265967461643279335729068016694355693423831412760869686238436406424917297000205405597658961208209451992378587602486759198579817367366316041587046495137714782629116156310654432981709728503111115710882488299732712418220041448757655083564425220717534893241288908450121545152562086255673102303911020109753650461398732362030147147506102702376274627834382004278349044025402358842553533639317674656001944132976677591389550646997006259148349530979996761460130241939700301872596335180179860063952481785511002128000621031118930647505872526862669349585319827925554843227691292179278812641502198106153094085641714766487295193991777606646120367289165929296661805091762415877690353471540012820735578487022641066381626621214547015649481752556063610664395093913236911808208147712854612009041764896996773845009694344328285530018534903655923377772044849542216546349441036696232964830784078668065390764818134992711099665882797059426766506526587848190186920532545786925271012463922719147688688574411298155623145431398249375654467241628244786295770298175141003941593606806103724224942545085824976042640454643957528003643016535924754665655805561893628341017252382465533322054732046386189852845494763244084081429749526441163627119946597570834424800396144167708068031415920802944496391739265990677756507891215033921903678291438392869376093458598569144087172869695573836946048609061226097872541651677690158891982008086131514481606311450599838987230706967872153525413160795727215440980644189170996497827606157495384823403271402533114354311722522694953941766915209614772876182267919373405958705077150741896820488242651792361124977577502620270130710937053412615540785516807665325681036058693683177824888293978614197750497452399833326828560343573494432432606773966348738357208222936189711897181345368057713937885083645592424406228257044714515083880560691743362473451432293846116252170327361758630931986782933880824166170827614310856978353301651903999691603280172794207689601389331741386720215257379139631918758529201657355153780985508883772870683729911226678114592283521113772712359627239597346870200641653135509100742596679361876987370765699225095996070023789798271167193853846949713203757825159782554710479020475862424044724123784915979176531561025714791839413819397304245492129827869769249608488027073176875410067503819657004802848738597595287083426565459097780893407237432571097794428376753498909349040943591955272143166876391065960638033312681666153755899762939909388288719829256654810715250406297301730280086838447160811252297283985556351799953908518245144985988026819037230060629907181501883267753101314901107909334704640699508514000650213893768579237029619589889217988777665701859418940311117201213463286040346076080792168628021802466957785609121521675690028582678846501020423020254373311736567279271267814639004868720364446141675036684483242139772905447441344367212351176523322536650182414890508582336701470359978035928565093420033808384287176397721142105836958491709564588237115212582430552360351016617051905323052158453316824427152833885838042624515869340461134640231764616673439384222668595106378866816302665672734400670407782372095050588246049492649063731501421933933593819116886335008641630350433634039851090642546268823639130663254323831004579701819320224929710339186974878668384059276502107381123778570050129317528242648081351008233181585956895031011643523201473338052294797661569188217166763939786475340114914196755593143598266084103008091466639703586430994631474624522318210587689100833259669768698086848415368583692639629543455921986458008050412810824076110724793558279298968327124107594468180480248992445591863648045784188577320909907508554466346136507088370338518712234211285892838894835456961063871644235955635070912679629432951087408375484699781089188952412134015965492763497753734655012616099301439550529512162481336609899909623192852093434017672134826538968819412110224746614751916986672183964143924629516584433208843351396371114807298324354588893538126288799714171018646904335427564344054827208053080892410423843647586468037768942199643392245012178899466286121119550499135210577132933668833189663743738553617109519654277821342957426074114416896637261203271049577701148911146047725160235842524451517047878131992837752032827746057274575580250301476811314797567219750040209318398826646478826043763310595440828382556747467324090557358832769598606695588086095184367110081610318426390947123715730162642819328048243272172611540034729672929238810000222004638107310670115396186203012754472858544005175566213607744299671512879261717812781965304974098284527945111473249657913037964611195871860463171044058305868597517207614595006234214141875517016015124260320540155335300844437741786966920020301477974805207185192994537070671328778724520868401529265077572134881026693950860749094664157058419225869581752519821960525616361889006886749695751575318700780864571435021693781283743751305213670431675168314239721865550472139135228826608989104166660245260907099645784404992007929862909697895949122638436262265728133965853712899401146298601008867577282204730796305154494921271854217852672951340698335198687173782401618350181951848658075274189297436892441663556166005445267421727132145704373440158770472890918018637799709480346689591767758649361223728094751023817079882110621696907283589062071130063336591880985774757791203087221826396458664180561011251889910548278466916689686576701351734084848371765076409338967027964380671409334660355976008816078269060493610294385114940669526518821991655175918526672714179249222654661393874037018989377741877124945112118616368055256904147721732028850972262313131688165142954330843243509032831450849730469410186373404494444753646967298348722296575105653495773662426977890034236953262566244702365773898875632398525211778285708273132411929252963047493821199277789862918997287662751128235589178257438816763551421656104617631307712537569227830656328367657743672435899233440633296140123490206983186540920702225761229088374369806404514950098268988512734579603986533417919743044192579480175374791844866613600705264708610883322121182606705816947896585304671376181999531240705939058197578838881169664016113358435969869269904659793167047999741342650530027956770725939064571643762170446900578424300311234778729880964074896177742364640920365181729928660200034100736945447479358419858313403263088777249775687914388425430442052275057743630884371338985386900743778161501961084151132939826595253727358499996037411557002236809325861439352626011404697231040898377237724541828384056761481876802169047576800406873392309844485649206918757563604798590677468727055981953303470440343739355997064202761152011238539368629184288429867412685767163782256730748237924457746380027875540811497327129437537613339347813170272995702817974014240904802253445644934244526772133462558980307952173265527970101511609271453938419211374846127371210132166720506654999486138068654465546602382128049559681157413092959972379564123088253284921526857353660833358652384989506104621333350241949856827003213860690407377957317997689635397713027587234687277538983382948719021845143787964013713840208798171480849050125412929236371367749636364893140782303353489122510745744066037489148668420869155288202930649616671326293934908002073500758112363959811240976453225133774276385206950477512796896349654630029500309041496008028032146084759546630137367638672985884607014182607100764305149562327341618698432531165371817628666876882421575681040439662620012712848849803023647232729889042187806834943691319263352205696017091814612901924138831371105868544615765090715915058970920575203649947966285667524464958149943052348257611785722083104221618471299344381206268400983349649315288726415824180821904903003181800502255506264007929397794271895425939903330080143094634313843015963683485970543133976425944799350352777649265506762553289551002071632404474616019611902554362177891522915213651120556186763125042967858409493948563936823168672412902272961321752701005307855330722027536966460035881437542737035826144496951696686870369501460780085530071782285015185346030541601271603699684914245073799980292734509693568869743728231620480887972943250440986801206259265941672215380201591830641534133684792349161254495213874589746241285501671449583572899912905670063962452778019695848106777421052630917001474371979996535600104819993578351614531655298023835988122165194712776689263873245004358519173301281549637736176323735513737039810769432396388266612213453493457636145879394219228341391669687711883683979684591038124820735931904005702513083893206612620956954351611959657791456821463571277024147283833742683085486404234637432502740205718355666805994485495564799009187051080667840110177486106950418009542563647995001748932864382005265960040862581777823032157227501705560704166953675243688981965606967040196803818837024511836561856273071802075319674541696011887058456932228197037959892900983717707957325533523463090316901365530176381946977920017682309185533489392389940209339815153146761031272925831301498364048160623619680132977501209968112030076550788681614587284019162987671905767778104824076312322361667503643749518558220977038751081833566328616121633992743441305731906833484819168926602808853428000719606274209071270626595850850239152566307822970157534685505558436640318173045246472187530800730525547996401780293842928836799490237873396909103745254196095523136578984680049350838715030022822493505274264580406998365395228590769847037286424785335455910220896597636688971544673973489384168990445224827974051427940997033158438999642660429902392283665232081537255741513238453514704793930221678456550396709629552700112173185435134393555955088565091238757197125340445027800962154360041502616871828300455372651900746155508863117608489208806872390677700119706899492776012335147914916415222774225610599413444013495145295824574753952247894900816952140287790195679423788343281962818843499464177045499279373771907218661289436930459561736524641963121545640919754956997232296874709088587997581962866364057794396863106342894364878828546754426448441778716531463383482789739951436987551017237502556049239316554167316174179958083783765674361639977026543676587480116509666688262730847748792739938574479071808437107002891918480336055022375257657330516025042713849891959258374813548821199601979469446167137970533762403337806403202916713012010988288388608126122446675988924423086024989375821941903135980407702591361977600853804883016079213408719849689001263685025802849858865936842137126387129802600413684456324824748645143450379026941321304750316501035767510910148357765033750899700491844672582499001421239910751387916805283330288317557574043769332855733717269486112447253148932387878793621826105957079904435791633660118824236827100059589671863000041093165204518637122544326445203291880424730747448137216935279204588791391306736443435972547729657743156933760467350394791157226838121990611284752977246414120844274510614151144693434907678835488231327628761278865376315735174208592052159730989543665739445519593960271274859797309856039110794614889589671065148237794136697312968166862195072749087527348908237397340862736199581412951590367280065385947527297043721059613688396179072319871661939745898344139781004888191459907600128903304735756942645790208211434557796629020976709504783528563854765694257715010639205480124600154760786820167000730161460094163353297050073298352444881900310724710299367189496933045081285516838312425037658650765436659133082289495681374574478319564854418712905776305777681680458855720817802306893639426423010621752874809642469590367625737867825224713130218286732921814450831543818049619874087497525384848218880534278373004462720793229676767621153233689782404700780222225065027573471531347200486852326293459543566440574956844962148230933555319119857739275145196709487775695704267657428284394545419042665571926787997100295771984585391423182651301232836334466274197847457279763144619524385922688933713779535781830174434107737913729642836896370643797964548401273714390281630389884583572728568940256365504219827897473815529041936035045632574231174449002002822177402648208164225134458154883373476006026417080050111829262089448822766357169077423793494443627390700540766116575431955777756115891420721434547850676159367432336800247736126931716074202125683579778909647684952884181712920646313865967405888002373623161001745804958140590613747400565789294693106168768470986418271667563572808280776000649852765374466281769301284309423562798244055350224343594916659770966782659322284693063299417454511181048118329274751001715315427999811515173865971324703085643327184222654446466602198807433480749073062129705579742401069096329852793394991393374848467613238093605302036584888988174397825294604307412132282649758975946443912029565605379314612388798398383593306360112839694453633701734272533130746011578862313620862406318715044784299550811578621022953112784972301785627226917118012659788712088491035678134980216830837480051361063668579603005667356459533616761320228270830184244389210690539477587694616052778920533630053491778810493376441370907167423171587703606013742864782704827986275139303710694455524973290329571661573022530516346245752808134878362300343287545913237395112133951343388553218728769846078931528923897969946597314678034548711955091338072454693774844570921073654410545672092465112796053354157785219324026291372514414240410262857033419543193795471070015610422303960246603088742468757016692889283305214164016839877546652466022367768831385869414507216288773786581120264083837083799377276880006665569692040788638136062412709605676199326554381996604867534039400645694301135314923867682059452624026532944119549333705345740826455835324401812345188451485851754726062906818440843070866343534685276431627183836538341737498596471930548948539669974298230281287777038766919170946127608984898187197253615886687635543739307357202196976614644180453593038575963852386020503733115163334855712567985507291816726805304238004566659925824936836361040881763526613254247449451453935771781813149604491872122195023091735158182906143239096474774483940204130460380720962630125641653440767053193619892631749364179545769004125170433743684721419293262878486818796380853460021539952023979809973388910532153719502438107115776309867185500754902036061090298136765906879356936321458912498170954365618167054076119948337931850047812362692562486052974029444854332834895314863135789997031371215830757443677690284497185801064355850474452766348274236683594169087162220628377212959298583631770527985054103982007499397578527245631971980380564649785494881033669953191849435651401991643052447650403338801516699929668564927589572040727895848989187151817530682956556723039574068614276422066136717130171796656900818908368658382262474708659755318749973054226273245289945550714990606934583928049178395770445366454526490735618735368889893155115618313403557180452533321704160069675126851850192689351475021896650719828462810140908860009961207989650647563746580300699309718729971923253511369168302275121198575427876271506282430051787798006278196014073552058337651388711158812917783792900511198648650563296850644828555572846604342529697493925371440320049959588562969289208715547208970465643385022021691357345973949466427023814830768000595921292000199134304256721184629176781330893635962387999715112548842163932237839819872442670831421084922526371954895873222630728900138977415314405377710403560935063251750447213097106166363595352917613575142469334616783059401112888778951251475903500373030168111326695375603974098092607992608008021527564859355994605651692731736659026433148890777111267601330718740752484939143070391465579856159654241566545268183528475704887653489972913129648984510971959879169694376511943302637155572606632249869601315355753904402184406188626085976182502811815293113619791213966501534982704747474799458417699381593849810478877359387071094895000667456439050884178685089925887289184577215086127944618877256578982150071607149896370756802774414115173857182089051676079204788194556489299100194128836480126136566479055975866657386223328308631541898201480333282415281558897138056049817956849632638901079410723953604975950340790017115911595178231798200702528442315052853099086361019031357941631486244909219295800405713868227679396001670625485037656289575120248023822636364098017480010654344065898375097315353229528758838218304130883767150929837648132702283276785045824115357470800413769705853806574276574423959066909723956629502719782594301109931576626507078923474120820882274997771299556303075828619210398783154613078337309488146634471204631099714446102730982868039317806999587405163149654555728265839465842264302934285787288743422943472471264392632257773956570858840656130842693737810639667300903951136636557520098498024398462060022770270788820093424468590499034680295153709442416057020830505364225378647581090937020927161658223287114638770342935491944964425606279529349221556298986834666213280225592295220998065894576148172663830772190269714228051283457432040993275653118701805248856654484398218119632513341408562132764003199736621687262353589283943598278706677841450731657186877537774665933679736896264920934044634990573748702189078240465119090332904240361253596409703004055083949570582736184905321600833579999773020616591983992116565686121238885277397064856924055347523623139369945066057258365512053640259067152903111966241299101671022260447553589532100815262712713927843869662069133678389452473518399481159548671032423626360098988058805349166155019188549993055536060014857203629443533816946400510809106769464004720314203285872779205623725145335510365049254938527688862847613228216950330367138392438094858350106451883842130670703654925538423740585566992202189386137329224096380771883996728796898497452188503107361783108100570015942073564355201668607543112976710272369664568319320359010815906836574284566614844390341654853629178135416324859490498479974865686868172243241584657650514186995076285887540443864669656256347077282140102191326660301269853405747151193989884615760974456023354398875344214828178035339441151191789809582343809706491421163845322076552991623103061825572922601117950123105948949519261975205791939565778785701414699399772921259134338584339763665204505888117437658136492066523885764363993046591924995381086493286330297246286617338165452776397151506050769484821689121401559551825771274162006687219910811416339938467061191967190963368091335113120866058352521516734931668840519879441493105290546735513461644910760062146389307940581792402154335926577627120749387757692478211278184313808630752785319807411774097102102793260750852202120872789807768067166359382728429277578343482190923077676055473230713022504009296896253453280157436088573948669275234860148939271918677972883171963333531288363108254386487895300748484169625002954774995803260146807288225900870312719657698833130775490441298048506935202374059632754963436603767380656971622573666194038857074287346638686268301229528252684858235059393724599527325429173459197073054646687986681999381598897776021677399279906546884653309935814773681181782851853870337426626679482478447913007814553937035981916574552752809077529751079642479694756485323195017292580462282879872155082252792803867881400205746845053957296751128998409100794460686410161072826177925086008031158554081135229636406916625266132495869527978082339934515608661317525129547538118768123067681451605073286780399749328288953880833980698718242664198662488083812936480137967174451096175712461415029569764252510952763878248061648149622343982540072667592334806042539767713857791050396018279049286946884911664085303788863759843190712783049674811907916149303599075225291895585912633778647898361884113230341357657098033508971707419487799069695503097836378853617145398742984611190737814560471166107188002251539883773731816842270088435174732684610656535552278140648610215701547399369103041783069856306379983022064143819876477357632738703774456814996885504605366024815688082737187586887709060223227733425773615998922892416860983022015252228046836107442755604704788378291951573922803249887323334164320908889828818232193577383842869006126691487007334469651477962830752120106113683232913478642733476955750131576026493848322276524889889510758792593965746128027635904524525180971487176214909238805354752871562089595919219018938275944070534837334380217963627080527998826455736575297142074327361993770008176376932178421782305916492067852331575060785772231417301715783293649684880689445348791453869887073393590497873600094471132623831259909011070100264090116805441022144250122337172433643684602017795626544578962693081620066809854522404984404302610796076164782587604914586501850180416301415999791623867595780248680135740554023624007165993437588406108575536781140282012045418581320499467960664844870975911864236279193334587838320442735817311624988609826320337386352742283589739397195906874684708457565966012776189865099694698792569476490665051604177161287104266187853910538250286898615964232327664815259239916860167784869376211248563068603464419563759933819806325452823167677537674110554773274412969278652558886290191486061605380315320215800839111217743111594574998716747021270767261051390991425935704497868503949694886616443970378816803186627567874050292708486685991119586199622225154469830393986103863794104826906732803613828357796691226828691804599516963292032999447446879964985938209273712286866501907956509507540809249634393040453888742328211372475069505518113629669226577887380796832406969133901939643947333632725814178405400315303660784337553092040731814920968152662883659397318939802377217216168820796514724588386777142451803127477076411439102796832213068606866450956520805423193708965864970901919213400695782844150568062313725029291508024117191857954022251257603789666316749070193506412817557119500632344668741418695382698014899839668447039300081749962447520041507353548233509635248222148194616305664789824123535611644751509436442636307362354510772064964317768163747033641562114616649790757737106706722962841029005070445948045215515789646766260501851854218378012219801905036041249767910475800127094964889970440605403476706887327693620295770629793780856119364741706211662528429288889247901132200023405150377400497508868978400847073633468592983569574883753335049421797616585470801891825344939145253639055512499217745228443032440503408915338756476381378882052425436553117522083247564232657484444732688128038055530607044059635672898921639715254922101147956564711042581366864826602010766654496813111391303758052848828937816854137955378330635452366371692063538086766172353980653908893691726841933272145919571157366455536736116577223807467783163571188993246375734084251630375554285857212084562574653500060394070186512434964314234885566143142281223073614334886208869523446093608933407777628224896230433961932456645355517401377323655138691276648114051157644938799004054639658134571361729154668104604383964658687477732028163130331543765690507446255899307479999744022404993694480713754041414011830225285734559974663123084881583310420791050957973525497473499599832457482670698074653510197508455156844924368413671542746435056934254345082507846987071885807236292086501726157605611307271759316691014953932618177736923480397778528058051336683473931037572133806281861197679175588172571515116591306089903793607504404762425212491802721170954293535030081118804823959616849145016290561690117145887621883751397199997186966496918134444326891424035961646921050728682515559484931142306104893509768905032602224356058453275221138283870204265314443781245395138118483493641992038916859141130495478031110873724338570289400676670154786104750612741611325279517084634918730209233721813991853575676565580360261061026185759381241876947179329169164519913568615186808737701400391855365709099393890249596420188766647295946499507998840465165717655238762279267349882446438309686596279751271732133208124150216655639471499011230113988108753213702101179064245115397211572449676101852799726400656396803876270152360547171040287204757117269366980704740854612908770515093391279323275410540719955438904911140912096155871224124935048591707592139662828205143790006945762931621287544499445879099433751086087567944423231111667552560820007772625242871197839879761121451005197251814163941569126185384324175122854297969103869187553093633834918648658120319275241871889448755616958055510614516570429378704421001873096888962857737017923300534666670422412321616671890018291515846433443619469787721348226694753535096231024682913306367826687902153419676821262273274778215248798931685021782147226535406339810754188258252682634958067644096482699474525389753060593993214874185047301107726988045519156019078230377584844348812355925814349273659550540398774337189142298261224135382677629533158585059114003956429414277254697022007415941800737068156544914789284054428510162243279002722275962934642797745875927622293997503991912266847159309496968138333201261515701877209708007513529094942662248730144716300525301441916278100181186380993649078361741404203942134277420401212204540845561305756746104390854596784259255575528451782754924977681787731323055934822229365596658683027888668860013839557598710615027864990982241236007087460543322933723233084383392880283452840036405004228324383866177806420385019109058760115304584637444834052564452280293189868723250959279677285354377861012294808204198366800136457310497811982394438688115678305644017580450163391385169096747085640481933690176141407289699730836834958310962580546651758909159178603809139182054776997604689452228074386806424737401450626598813899756036274735168325491314441988834447777106408227960267864496940525375670156844879392049478910698509162282406440966746285457537467269416771719983682389495124235005568802830290719229243353750726958085454116489051056506725720348985072997851054898930445299480711651565579789167584131626078206575580975115574071083625272316990148916539795112348776257685003681152958493576828510364248562544784504551309753642772455940415103266594706869258035379436706773581938017704662226878203718100797349142138410608270287745280089989380275956843152045795901494428756919151022990059998812413391417368213672089260780970781501440036236646310473840013992738283751103867744547524874484383470679006210451503634270754285941211301060505732656496642787430825182506642645533082937999456105258942377739708908300817850058832946270025202510039092849353566453604804255474709121490002847542583819812462309439370012558670716132022253268093760894835815604447403277349285160588032710420315490209421914227981730567007724813263368455084078537063692298640053663641723246689122080767267265399608761585771970445384655315399179507911024011067483079933930226791709892918460593236676623713905401987833685612022857913135200502794380026565482810635783601225502588241998247649333265850762585532956314398799944701549853169520911436569483039063100128334203055433750246564002524656572053401839512601800680833220789710081401142777571344639530978424864201281395423305424933279699374591887157138039256749826191436939846778607629617903823619840060165701806155465576833825531599481608244588054721323151363217052242126796937748120128523808311753882052000337956731382609342487004594528371312233779138106592111532831203744486679324554083742802826900359729409938933902547815727229226655904971001745047957795606922863964268105788705176104904012641532850254279084635900327602966878384711382335577113334108227104313136794416498271785495609817603736225121632737719389631351919518066346194929534696368351203475126565384408993837897308732177640874366278562934079124093726762109153667430243739635898383060979875024755630984755197173757402550937511186325310460487563164195956899550046653498003340942376395782408217406131082568157447276164868659487624623739424437989559373423230063822265769829830326925001304437329668157097836316822346219608683098078472004129487424358286306522242316821860348217292035091450019533751038947375414540164911078734476046037280512970812353717025011308858178432506030553885979860756226294143013742831057239022653282850205215698585460775473945067795990845782310882868183876965041768526009459085921788965183836607197342259655774438328561871098342140168207703109168568872854892376109593017913443916247983723047082222260798421774873586779021035185220444095923820462956745803746705254053113564615998300099863731563781049094922802486192375284092739274545985462338357403355995964147680811193020403238191017217250781686680308014773654971258860057919711721598400538149015288688692703926199928195286666488848189473038333895534279965259552465249477292315888811034402645115749242626068689027873822575892733455568255141403718116194292965263393732148503270516641071630196246130451684405879297503931521141097181931697125922235461608802832173443989337591982343417383503256430528512485264365905623151929417995850409181785994019082367833627626391500511871717543189239744368750758945373231824351557557986301576111086751736222275291343156063265489158095767673955180250133939787289754073454867295089184371539852807416942964189351749125902954773350552523342978084397819042204610419345592420720004889444847591270263146213163964386662851799842283932244056988817106446363804065672458627416803467415230099544044366862341381828834961385942451566407621293849213774180379375683079546309086515619108930171136433161963417476703820115058951955397058165804199153066964692851671235150335305124704570840697452651976329215764707868170564465083098082207630892047638452601603718142613476175241983134925180400900792314383382914727194356553597280378220660676443294499900884721232955269680185714492357522294509188140974287330859613452635235527498290581730205516372330072958630312863151952537210082845644364887079163724315901230522933937666275688181184693382515401961119368143865770872040627640271774807100914982427070128852099794398766479317580127851606704818160587067693078004749836240332665280078527522822270190790112977487518260743490399347744596288772105626141283251240398888443803903408208865456255181889790139042750978101833890098187491034464426019038385663369047613765398233292048728890727673185171717393740236851080992528528764748349776437918823859730879308498036364981198079684409011140998994558933965471200821832134563676223619085435181615276518628589664089217779699151468030437757022508697556518483807564483288303383915920910300508337682791967141654524883651483498046283834051476380998871535447153348586024412624670412864406429210831738401046759134165150208103185016825879377012469096778811925473743135107888302683680025518838682926986857956554519879994084095473123622050386401850258149522967834282119093297538827180309006111058898706607751338978777338466587649997440831380828610665819811203713489889927224898498427201149899443560882955089691048071419811143353354354924255842915144572645275344350417584997293571621124920090803787992425454861918425362754540888590539632630207466749455356950554286657483631323718712867952771484090700045670219249363780961164073057418295050375447266882457618435927012943251922348422683326011631918749924416727411535663957722587696285415497961623101021213661073468851085398275900490310025683455251732631397435542503605324338494523043267703347753780563673983136833663798462525350231475052422601587161744069416310818275707240059480601161188340702537291427783263210739406747788622639968638066298101315042665935632750955393006359002887879373937949976789572050330673322247633970236830245808100289218866313876066770854934116959170874965646476625560385995105147854921330078971549245298049705943240076262743315189003607055926113543199072715898686341275559170380154446847836964866581279098058479542684374898734343132224518056498414088024833665538407926151231379808084237659977532384894934638522964926016499732480968545656518786826910555878689793745112724806726617622861074245744367926129342016757455860937190258376604199487463672398315807908318374623328821110105023813345240747011679933930149315964287695614839250729180047991368204179318200231611722964834136588502444355518536598603729963881436395015407809348118268897890627267023859198537079475520412951971893081850900332381489376189572113951424205334483652650873173156402198126769488549010193038585622433913338999946461556324086765497362106812023999782715010418658376965541348078837826090725536341175113145545002458657261853304393840283247502209468415973906189293737606540477394321155655882883728264768064963331367590811674778890129343870074812459852152761134698889689869351659893676167051104531826594870231763097195041387404940605241980079250387360727719408907728333405217550968987674789592598084252716985525086403166848605805207030820760889684799033877665280816565085055561151885458617112788364779171551992063686757835975239271016934807950374618782968680063715535945323692590628924158716294887179120001755567163694398977382616296512529781274564573774774527146249765121673865091929810358184429501358756188691785237714204090927916561846997227378489324866082025285595211506024267618437403103421418524418292544802063733643735102544901320561060040531752771439530699806977078338271037292521737714555074352222385007978031704469770413661960795250604638060546027611222417521102653739735537707629114750437205188064787128580986662713407908870241033515339717180069513032109490562492484341798883956811350929077073554291860788954219051016709055597503780610398588635086522268976652610984006201651817122232080516993945204484347762458908739565438154899873207694922801348776157430482117526688841782632126744994857050052424897359835547616381920721652158700005141635885587491752944743429134480226106113353412426533666710798472405124046799626000327603196393251726092116262305486180523792664923948843437337804963420876414606894327337154589496198668220263496621772685497400484169350246077199583179714906152633257188767441177999433614910208547342679592245517383146907299696912447780130568057973836505332237189220027428720848339460426890912938289022737422188675982094075655753899775482930210367331435063363577192411855118171921085359002874471508712717202540166943983203534459629806046049206338005775247615986022995640081906182230168880164599678192255337382463306772166268004068855815337488727458785287811896543029350194884628872670377905527447546750941011935954803459193815501204908896872609396207581317205015410739966253598983988134867212055488325129062940168017595766500357526955562012263679909609197217345211797154071715788826719682359267426660968694395917822824933669828203172906084153599206567147513381815222785243054282651872512535233282759256692192939309561163739614197708680719274072415935772025242296055503648132620639863951809309892391652715703636904741393009290102243752782835077265475524631445931905559187610217313907795678793081311020197093958021597748573971251567332755117972921507049549501038664934764678834006393222961570227690932667015697280020522200098598328916511793533359248258576990513115507136696126811701436328096510385958867124451310780669770876795560705082355241626231170457224428896372034576413399406484850997179349088114010601795334566369835610088097124385743229619623490317961935899325358657122492241313400690732561303518742141648631326403324895578184532877670531262218800704888805220016638125519101577416445185113719833913729542952549665268992851348348491233082479589855243985699974864158661625445091048652866296895138309656358179391347741076913065449688235383389039488244246761276528419913593615911590987419102641321234005172064751481558317420124780727560973547092821622166139996869970239555372019704057836377157977755518149831576941863820332915321434138573959852411444875187575321935418015081360667743730966508289941946085884165200041556683832775637013111521942509055976578380814810868697480113575386449342281663199443634969318506801394531267601470630990975020465605858975612064772000917672426779930937697829401846013528923965235033859168210468959070085800340119630491996353311321648653241981740068035241113386396534858887713152558504927871723347499425685372528003763132233927029383048546535865988779649452410217150194239130824057821362168501937234800063599397190621431831593358450913668011571608510685041704463887118056636587289556218443830492200975629940039930920038008664974165378252053140645100900750974204386754460238089048001771353124827498265654187709563582516837329224557704868493294021362354290314070266125393225732695760866136102308063506431296491793797790205599292430587352558807702605413516477542519508084769331987716385603921238342642038805406608517380417312897061343146803660832903150720989097953316881132144347053280952908790855144366407573487958401746327243396790017471690386070249640265189289332823931478672874866350663181524732193222619971707065386306091120111436702821148492356554172751007904784613159374356618784252020048316872920473759111384404171060620256594944695053612597253729168048564570938529285871283829438543833171453838400844911172200703241424859173894096195427089302838392725176427335999767831837636309998893767836239050856383982109846614411289473046947861395922946923408611150804458608355299031794209452534956694240897584610102939070449235427897750014994706777238332011654141692745059064147244286656799672752842047974175952302934947928557146884293300828606390877034690169231722682228950920678193577803474225938129447986093615018724151667689944344561142102909834645753340432812800162013225794589922374144947960415182005586705871937390703017540024324994411016608025273572563307231131563368507218732182008397541564976100689266541823272290994573501189022455597675258429160228434660227195175195175881689872827302802358936394786373283494950610796210361791614059643960303625304073074315063075334632653604278940399503425259747335452871541769914170900569578528853645049318333067260708579352235451571216797747009804715618669910478940265833791085159485331541242425533089919182396309470339861779480148466614394328269308475439221783956472851364971304890266589494149993789124198172423316802580346328062647394656737688817669858747079053935506512379153398366821681398564207274748276945228543414354004263508150876096988848713303658457115162471795380972488904944511883426111244663551136527844689397731927180706895891076318429593287802314750819799659618104697717776297549642935999572945701871089646201757605135607408551333390506931291056779576583801294461232754512359255488555727296068509004132765940615850915837258537251206520459837327867481504858524427797898089278146395086714851234415330821751734009774023297769892031795689753253229616451500226807400714866097530547456094498252501371093941180291700222521767185566521779936444127897707923974044282672747348232930196610433193592632614188418067639750980543306721569454657604932029441030928523031395650841044246738380972147759910151630162235960053447693627425350231869439146269774436924632679311412580230674295439637287675779415128637818992351405873239553393791647910990525271040955062370446835519294318513042855464631619300676308201780869375724482951517858312702184764916688382478320234726415145135577057464851161103495191981516953395334954894654553001187895556482194667921577174471235988147057555392934268708243471201442831443143463717727536352153290921671385941718676301806413930226990601405874770941109158770547421049308417962839607085562724066886217225227199315939800018058742409880130215260068596341350177532087912067583006318904756558917257915133975431389128415474915853032451479629200808955147303988201603387998254473851986433329085571829346633581153655264141057017074230381658907470144470581938630000715922433961011915160867469916177044934427351215599828600346888511612409357883289865110676996725260127712355897706742126871103977723045477700570077759816724399474819662955851639683348063969504413857006600179220081756897274686286481142174298129763832050765980197242051196938184201652239048454375029533434833417599249009405156839936921698998983106369257986632673731607407092606769213307621835043352476095443723515315098277621635654140919992827154200658133737509842520443970362061160797245683331229631388637769536906013160540144405703981396233921513736264375223667907885866737053623213612534479256545770756471135510341011325018146320922713756188964641739464199335206538807689452727661594854581138276577988972581358917758655478955670283071225656026717066622292892598397843504715743480806713393133464546946030772903757183053465411762330759564135330702329110010886614766919113176736638492395131867988257262169483265912341862969507647220378997044082573866480576646886992613445659529933076712221718826710813164581591522242591028134216736149061149029851496508257082755837597557649868446207011575977159290093481207266683121218150101746486100436521312948931244148842589804070882211052001366587139494513377953834881095919873232980538510039804274342429118612576875475157522068775771020778544050885711228159879258770644872368171848994388719743475011895649509148701759193716007636831263191216005563073869082259134469162467382366098615007179599363962820284162417196091805372509249897255518425521368660282461696574012296035955594787803496573271517694907101289595357113997632299047267278631423694472867307102443255537308174862976242597663587495137921347882691884854939280830459281845285892621686406023003286208999716433311131387251431102553365785637855694544339636406595337228447107190044780851152781428603058778012261459019004646798344406620624760808832023972154769153302911254105144978110421581400566684199749917265008242063244646093580334980351044063546472079798897377000162734861050446222535583924119364900374050318780534790797671998693756032027288841210716938307625633992417018926656441509683870042709284898752403285920517491335967377049144591610773971092087628286957209463976279537738184947186945999291184901713779584730221534421367173753696308019898523457536327252753585953622266840946876440238608165574390224056765183101955786857651248644646628885838738687402654752991991804270983478265015957055261973381109072637923748711714113271749108919099296977644437700206757627441366871966440882670898944153717632345624586249511109282507357986420581153713594243024451479764487870147433137057852290450113847299591833299515540666086354054223633508546196200910254255668035101254823054971888144177399102179949758476055645138400818060171456284250884265734393691209638065883688660297985737516989963753785088105604583472084596196265980284149312499752824145360291513427875880327224141430474364824697123152784049033290498095286193750405317243216923717511901931874454204439441083614097028479277518203190156854589525421473481797484293798165820400187054053699990066207483081551958152638427682218733869594165972338951382233941074823409320402453620435776390917822052850627595336612080636276049045029944398869290411119347207055972683160208864865739959934001605066443840782151779791010527836296378775884856114423604658792998965482537379413351489250526527408490262096261543704096839235136479857727320092731845969932973465450064950696302819803648311842459639365414935603468865277236842238511090189296659755130077398475929642657426173861122483413756058060703868670811505032733181167299798022320507992968306778168773113722325029201461774283944618711346584618695062514183865147228652161406710720878301798541202162564233617426982651022866744272777886241783191561993697679000849101784491991644162006585980570180332949847578782461808362428956534565895396029627270394030253407597120512584651250769001052435465476534396094117671961815647110210131486608998608493562577722483954974399802044760892049717853178746811735986441699643304750993822787289868795789384738691041772985151111426809283022223692624799847800007889349736597190412775038862933789418367007986934681091202385696313891201681719198754167247517612730062630117828552960946745473819909000981572962114174341859446629127221782772023590702393813089099528023502597541967995598205978053514686560805644649409591483207799598519831854938533534092092232594645498859205438185344494670259129597639673608804290296792384292161656437972609209998129364212137591419725353690556041076913037048899701459679754002534593110931762598699199631004358519650662185154058234793126861926598527132789993777287849612324395076440086880660587599804569308355305942011432837880648493721036870963481357387953863028162224838037464251288912046513966950162603544534665070317068817639563830969209721127373214573965641162286750925796039601367235918572601445082431210218539965424577023388146794513138217105250708350403852250179773568732955402946816856339742948967832777434741567243434571235229319225174127768349141212247039286486909946506015530085354975323832031754598852042071497646741451066985956539196882693707483949408054179945228364959848110498565574837922514853220051583892485897677412037675852858383008608249571738938148618103953021271085469186087408144361554113647214319632158989870171838219986098688903738369561285146340615630715274062790621457961322911042204671094862355343311051206701541016021255300038654385025150029254632883019308425718614814786484753664111643721669909379376798432481898312594668277153278683779742769366301606777296576544381564859005234636404641431494119965061231269304386289202820930612110355425167629241435281883632736043709474436300651298327060880926956914496677885037391164662085723081125984785943952592345640283886840634176776858571531923029406572341390203960807539314621487894431431793464635464608470329256006100757386900992770374454414337085297031360978426796422248756846243418251145504327620712055993522777727240956611566008630162307551870414937831183231520587042369372913705994526271792791021858969062009183323503203332470721799125049848520210288392485957506672914079637394772148571691165380521334316065754793658461924837440749154966178675944827198793662251003211192141181758881625832469556199268531571029920768850469707155951344330198669232153673437361649555917857182900408005333073774000852445346928735911590345804207467794466533919574740114784564824669180712623533653911881227563849548226216611846635401569084729375136317411202605265782435991927805380028199682020283018395063405598431710288832047823617183493136835974774415718484022786556601686919468257341439293388595922184039716341773565185000905353261920521961814687187643378355701505866730361298110050020216201845973813561077717210759691952696295098111893160034146140989946596316955020888410968138953095393615688933478612123643094705387949668102569629189432650319556317894795666254455004881695802708302921171347629202025016024264960287626327453001481794091091862249816446287692382184046794252914998424093961862046861545179941946798323214719076128088454774595170048462116677573756371147131337241647022824140601699197913811368218465611726064333877300103395647819386042120479850880509428350800537120674948617479608301426382725143393977278177133399710548568478158399709063109897272056384210978990751669957815654091368928048856866101130851232388211839807363193785255118768031484769934441251484335164077999041374785465929462268586002364807243695032519917835827266594211564270030201355228904396636053679885572593425901808865931060234281080814548631635632089858683888117386673911685291485865214039351950721314845843142264091963210015931888499438135991351431465720518907780876605392277788125070527067486830899358950819355617201628663480287606291644587313443877351780962689240644631850727190327806175467105563458846460327970042653933181194476208895917704241395995459448162913401384640247797564323914728478218831902129358200134559167315069655455533502234414336365592655697360066640366321660837003530612677055218597514239964205058371269084341681325958655434917119498180812958021853174696775814893702496175373167788408991896322734595971901685469111798090917951570033831734528662042954987235540879917665117391565347336858350454477542882858411337430765466348832656667484073207282376192567999001389032614772178870701097855997665943276951097394123210076484111603867974586474387768587889725054655871096424097086223483344809482736296371416352720291472293786540728165699941071036252830393892463313009775973474058494378407763363885440334118073238054404518445944213668557809081267416019299198965745298306615820676131375599277272762935021546486582697595734238377068976393195903794315800809635041609036504737634533484311365598044821803658946956729770277795735310843931805548003105130483880161047267766319076124378877542095262344736837880719925872132172281232942753667652547409884757486304411719665213931390153739169240157947211058683316391999192953880826284195757256790795038809418495070021312289225035830051748541146956747790693836929431496702808238812337482430278111393594448398775261357447572538972750136833913738139950001798657277435603120353855684104910613565765240495437739930228582038096853053496272477637060989714989256321210770590864241175038993555648520370052027415094386206401268491889171628065802752365525156571792504602934755615613154644640732643408819044908394168475404996389700328013692630030641252040350603003390690013737461222834523381483148452927177667155614601368043120704608746217156131269548715342499685285590033358201430379975117990937367196093319699479843327957282344773278891912330210501737506969449490058247931993152787543114575476749145810908172453030822463495153869592965847783952275139826154813525127806870111738905918238602324775251480388454580865592409560775888617905895312870187030833377147169307438315055536916801823849629427271409015118383408040524926354257018944449237645742346679749921608017028560559556466000496362552061009418829348668936102264473155856524548163058174127630771110241702870394898347390978486802287630499012911833100345454295341098971912474396812097741942805655213522263233787137515154895879284229792566344646535471622135429353026081311136232787786711938011829491306120627723107037349498342942576740792988020157031118463515545137066276669110474787332732728008741543877831018121237948707914159165433975109997756520732656342808744173385156840537918188023559014110960426968982395188695300476264039247726009236869880924419973995349178670088953402596773731978991377832006621929769908522685199322242278018006081533854790451737276800761683721632043887368973680252411045737546525030006874349923905250071997681427062979772621696509098094949508644104759226051597421018663662489197342696803705692971511298803700921431184827605616736155869414018333715583172924887908213413225900618551916829698185761994312505461552466312797975345793210485955950349040135741638047493462981942151215958025666710423780063503547308939842609563460555315677059666348353002519734487721239527091165793185308788685858445095246788575791520703722512503431752850811011404515220689454819030730113164689578925296328939638954062613409930041583637414885985506696442741619946580245592558370408095209996762802028063897182433890158420673129017951108436752999762900721516624202117234697124904917447480666335249497154032583761545178419706246728414692815792460116526001442968469173430099858760111428468162576557630478920426628158524403433918699143929072572274973641395604637015375797440590032010135348202095975602316059507089154494218407148332796522982686987323734619649282556261935471753687186924618775588212463276678410002028834133769318386644028479060448032099811779770523711815737071310200899971505613997397453471515600965894552465754869046479677387914222184762660793873160130268050468162642245121117287117612290056842370682561652184933857115629065564975010624284308313659952292070501491966067538897848955263802873110148456974364009661679852437814375803357931638417448680932468647467006815254987795622843809186366999647228000127292425666569263342212623868547049672692881413414433670467107472195471927289413418783645261731379024524243331530576408914519568754974388575892109611899811850473408954935231775102016683438224219685895575674181753532877106876331136500735392394847317080772494787272834182877059385123729670069900631038999716567971421489849586785357983684210949683261249520945814384796318763134921180199666975249586611041085395089250409382062205552976120040665053008645732677690189692622690517520044338063659815745306184281866056105479017007976087064494687636676124194316314621792397623275531435390545609114888346062691833148755452168212067893385279083040881292367751294646194809062287265796247621486287040480635193780233774057271796161788845003721116768285359506811565781245610396986586894537172732128053505974714565915529949599864522053605316383489062161793245293669793050295454027193152805907913192318419164984285643023302361692568988750546249106529480757093726777162079182422663517750724820500250778573477774404462385645158714997895434334307949576583170911790925142061014836326502105606340740052975221187552261912472238338986682787794099498861874915052361877619005743808605189254223955480359379971479132295491560761004000173594892815429228807935862387340080714575017939493521534780278376313276418843633242952829074138231992014874051773408206917707388966143411510885015438456988164701986940389729138772453511558417474219208663502834398789924176246917095413746284804293338261521234454671882223225663568856792473785538882436247011198237439605456666894761919524165974781462854034050502154049654454711081288115503843436971684356654298332649570877820363219162624609987133811397811012787136329781579106068569858732672542322275073606158031886651164928958287493011652811228099962546600599216493026930659701116049906347132215486611228452313079943485903474905438116949411248430156218990099261654428164609389684279381727974225086643250376749163604174376842942423210569774479632565582610534082354979494409296047866859160903989775717370190946348416085777848424412001619883831699069010623631302235004754567211045592003444107386875333838021643329326574646312238227657593176811457177957494377686172314489438026131287858387012088883675317724091291654952151485685811556934869512572466817961165667454463031735210104755817020739975494528571999674909364155892467913641976214007181400240898805646126133392469165533771337330682590276795517755274439985921827010795527505066998773350400267055678954212778698928983150907525853487060376938201004198331310162868342012528753971916342233154253600960491381334646640971284243563146351118584699237077971591899902910366642703489936129773556628741079813038878839005128397017539400223814181789065213711165005522909013408850453577786927167054146404549292180072379309530903700360034550919686239258704733046808880407512050635324364151338586014869906451556134573610735599440555186182271129308789729179580469075383270140126231715891384636183289529225304766519477074645027408805699452415450765105119743244836998064360005331738365856711260013759866732072443629158770807225387619694812151576667244770229771393093147896785926368337162571911510045006392386996248558581767429139800355416406197009142264793929199481584202992475190757575467462859554611765735677762766125388148334800204135586229007078952474395543601163949779868288239879558422979455425697118402122440103677600367635967446307583425658521484685022421994061076557175116834574722488718891977228944507443500581033274848355289301186167096361623812903370887970666168389959879784365523746264798597101648747949570698202760119604091166919171328039033151314602573183010061686171030876324131911309392342166303712145253055019706353273369574160365823118008737811827518042539163978896186253491488526019592786860414464585272609601345000527861959358076027459052807735841303631573988554525998830465782602978573046798416733584291997125360660379271332253514489086148801320824972226201848069886210850196885313016006890465243174544974856453645886081626498307054592271309887580532960445947926069429702452340371062712775667837302177122923980929876167743392888737341128911212915001938782553937840775634105808265472772028456694663745362025228577326369014174263798752756709839286936421560786981160983738302110882415659238029584043262287114180811699608889157423231589388191219576680983950045757138859314106114069218479200203600451952997321589940221318643477085873962582630672510004521201538066630251678859451405984437738790795218019465674567414869700702223489636615911744176761109154631003160116125077382820733660714064451822506136602536292418634401034749627103959695827142218519489171075208073884343123482192548380966071945447001933900486995909241027018580900797665002535174437305957185335355572457796585553774341990371032338543791116999986622048626030621515312360909792549383463478469833023596665819525596320358828640649240741894990788560674945960847013961884437525153443619511985068711224095706646352366353468982747177886243717311452517323414720114451448173737172740910347957365901509273995280171695744572292052231934398378215649136362689738172401600624886706932615674420397896023449725509091777104497533497838927407110976799173248756383792297494557064664798111302086955641083600288200932937026188109802558496885012300677077503930286395803880625405286002466362255644864318233401416300965169525325829602498054873366498692485413650660799203665862510221841118914061567031916147483377434959862615686192158115587735238586065700515990693235391335289970483952707432873612856932712696798620576653565321180147080759128534049561242229812099659234663465371251085965552442942857630224590821897929728270480278154217111835542828831855386688004134038043046729169790071736929434906602617170091091652899812050130228528373463191797673478183697159789108624280271405957578668899234561912753202831429059313207643744287878136395142236559849631956851143233515994734042095176241251909074086377826405173019427993795848187761364582029862873068025386928832805120331724289353869499825278040474646458268042469473478454306492853017173086426853979161860324195481279113994955961353540624606282459148765420695281861764899012060232914377566201247182152093778428549025443306820109642518700028438989317502020406893709582625899498888404581952263305735114417656868280290693337183049837714225155318189460783624271225942179629350011504836145407763031544918661498805396741330399052548102544670994944985706586146011379676432544890509185290125716647470983242706754500439881895709984755746227466599983111451639031155272762674159962538939956119286028304686106450770089320323711931012884025950208796038838510076846048949053579533331642351002814993543267159564996950875877800118775410158696792688831121423885855263163297711193014717490994259885164913651297482584426146326655169819587701693919191695134724815695334616754977462337043941081470274999974767723832210297795070339070173732289530964925013177067192946518573857613687685516589012302556672570726025008135206589334481854174431190184202216069933827026617146156668279786599043856776040370107601863918550828814738589312772009213596343157940104762122902484601352619295175067218119957680801217530940363294222641911629673936514585130756858320875747952191934445982501819286780164428496529154342948243416462926348241060212449447481081336179582087564932526062328800536945382578609734904469766107915122641609210616968721574466033922317433047297550342488975891784306467295032980403728050555938846271300444765781199969551388492564151583677819598084689355273909529335826999421931134297459570115858579090698960009081378917349588667558835690481113148474840597425672888097420787867895431905504390811299516722139872185073295902628702473751125348964542660815981679128536858347251983120402639437566935623245746642967064700238637116179378228067026962644405017167860246881973096304154749848371467411753122798002214561151522228448133267638784329667040583497196656636382973144293983326960056913181984006680537686829669722050310768748567957818581918460377230959918870457875525864891013097955119930377170386150801466143607158182864430586153681402801563298904094288234505027295067286891463864999980214447270081208964187205168968211367985067429704412691734856993313665479890496696007679536798716965070474598494101863538731851750025510010539484857801939173716453523291850239738742301035915404968950074144386226540941474478190947712976576722070979751104747923823477508264821703124859252198733948178986660510390302057107552453205018396775889939314919537533280020377714799073026979025241226409304678355873627320315633757342968397990856923304610454261577516911173795525128491032403206315144786419287488892365124777038299733141006654228416726397652889396159669988408252233974011510986709649673112243888021099436788032234085291947143291593186620124197143868586378763910504875945997460215172204053898395518627898729691426353653445029973030093582901507953970766692523109163710902992886717146901190028328336654374387523041568155562764287500725307292203075814521286392147005013285778510101061311713133232721315864428036297136145105489388359743008470213521267990022082575039547758927127981423846090976441690672545657631190854912753892502123739938118604700482319758938606463972441376763449855782474128987567310836096610478797485879939913909189447094967496027885817309318795936370617102618325208049973243235142563645807538956015252429565496449682703109309369210792936548919799516911014052434074635473824528123639512319035612667061400498728300727430236843669950595064417731510900200605033467296266778249277690265458721619186788845294382291023250350116334659340360562959600592249436241895981094220372005141003020402936457335953030216516628587530026798274423116152579305169803022991095660068996145529083923512324477374404583242940922688208480014749395272008566690965019459791233833813780977344859941565094924100558148603503321358159147901003979759635276284102710934337631930647867353181762395471790881288356120802314524883330814323274589231506998080145287099812362365901327891011699517305023593387098786051388409020385343395156306154021431336854138285029886077209580188182716092493170085634093854736940841105671221319509423509919365630167817395944004888340843959115474217623212151372002899228466674436147444708988267710987611002426578631727636150535154143259761392253916062423846067795363533856877315504334551597742262229899489356208509434833841289136836337705812151074543152985523301613434818325884335646059996202679053815570466723062732454514497291997325610438615592774204016075947574431116944346217518370043546412370811328537331652748402884054921634289601508344797453645655843752800909181182275499109900642567660725568543915316464087332060701634578245784315232602082732292833998806634550863398914806098781375195181752811785360544808185660314057658354335937091532561187986198469587408617160686226730345924945202898833259797928164780964525958513100497242001412558211250941380003239918784537557097815231454628514594260858894649704402215740333539378550719367439785169845057806205385029366247859161662227213777468533399744668020232061980258479819385507779495808414310842104099989654165710460607429775182227781657724360002444498008675232124230210750151719561440072478339853809196812190854504028298564588392771255668191771877495501455986299244179445186681317260838475375572245161551683913891861285044198213620811857952005672400032201962662771265538836277758610187906229381601610181819796655821966089202424737060161130213158381739333239234995384118668450054581842759503517287620668577440295873612195922414999044080881614526610997443354745402450663063321521744020568734527830596498540458912829817369149889386157004059524088957895771301525290430518752331349739965052945770886074585350962694619341487665246744178645040126943494257213428088646654161184255941111234824893249075758722029772495390385281364122463267549449990019642260868902836905141052875072751598158893829282257338021444430179751285269774485956026473194172241101357329627436163700806335839636157924013264360029394981765723793639718499134685348949074189716704904153095782717222451070041661299736457174397937440017055991618186985347088781394403195722528061778813504771322641022558337353680920989343917865459776179521643427205201376289638738314730844359457789935417545050384603085129103645298784798819185862455296336943420558345332317120549291507025093776865996735416492905504637819133774575082421945948948709055110982044201120074148302871222122482714224946096372524759787197359840475809767593950425555393896783383690570825388722406963510304786376089937711674867844515387615836879386038366911523345470429129579543515891819893509511472893067327550417111718872060893094252858584438723208145013633339115542722614431213437656699535863460638846366394592709491605167869963202418344880438037885308773195762339371885669416932325230442231418231796858497401718404025574391990642604898299204836887072523612834715762187793254344590430264752007679372977300544127364907448758435606670025250353107966830452405117949092475310966173295588831279089824421164249087402183927231844455709964285378842912972027523531799459223034146487534505685083979560028622144635197200636981500677316830669436336525110749847883142237623633206870248746507599230001613210289109826673510617939634344419513156503753438216655499572837030623930882412278781191391082131786045910081963219194510581703134479511062494100207699205789967974984758726303049878815971384613361230249160979954962226912856684289454830554995732348034750562732925971154996734210020896199927342391175514394138455300637468851207542125036408083188215635336123559286984073637986318207099559460487359843600895075031975976626842731795627156308156083110122880599582226334302517624653393100387126196717494895359854716281324339928523433959292695701374919358828685861148852842697583927493977638715026077031397477950736768177925934742146174529367608860620453773260592498843560584365051021231405305989352567636375055530253611613706238457745724078437621631423620257655174586537433723359305129715675997973638921201501782863786646801221972042715434530484570456856011595742646861155872644715801250352998981599048655948841485111039030802327487448555540916629791120379759909914575174392022570988279379396457674686474930274114350206737089798858850385462771136365868817794523405015878236689093192174579810792112233968471101766700517661166492239443484190277899472952457401188832487448242391259039300581129064397386293735029691575949927102819076337278628202345636204757715235314747286515296845936092642405389577560780346320492384535026748725372462421949019053228541636399974647750059925206509420579366285047231888355441016142160884805933871106978016406613548029028711671464163268487883963965789610987969664907751316775136143801487064616381396211947890479803544677909453271924298859675375766768244266667587441133963210473949649745570900457041959789195236856125183323741549584588740598298272487060915397513644047321076554440447296356381214880122248016560988408907889199013354234800572960569786956287133346654024569320507587726267489022904471154381385496435357706066486110529455844373901060069633279292007034944092721774607029291748019845466545224680057514646924509620278305820432718850009109208766145276705850000635338787293677058416790486972787221139754218759970436832982781736625290870455200831623264869008735023073739867248004537171449379873252877739095639126149711623096707937341569050523970302880715014678658268456163561040222058771681542257477526985593648152150116522153742387100436051287273943519114832485472426221984827167474860672170167380873914044134679749225714281972516389989092537003134801936329599322389369640361698719964498676825702577346358515709798988425278153413866138614770602283401840137194328894785590708300282097785915461960234502849468503718022314169580097099684473011258682335540934106299451741694553418122687098092622994963106020156797373020925034778644555694087414677265272597555432016568304230036579070955952639200104846035723842701392020353714081803292185002432127116520734689773387821011039608877964728353136423810161255435800297931454449619087882750353747539276652351499918524913561252239135605405357984949244161214684134592369318505930370178299949960429028707386211740625140389642865521162926466112839021069450954757234650395365140906880009417043717323485184411311156924517905589211923275910288017211530652105870794797159627237806094247930410878436932634797395681449064884283413033679609023214872593194584922468957926101821524720222476002197299175805634465370668067724841555030849843505319366796114979468351866383559397497327495158031245017255025962994118816948715893467520419956423215490844026354060898461586257546284390347955068053772077523482480375057367045252702978658052612357203718358714994739360023120254360542985845661630319586028857430981101939356290570257752894377537797489417585367957095194268345830680330087879262989276129702080817818734380389149997413589525131013627876458047211546496430177294343998745457580000517782039368995971415985861127591358675344499699655225678362012738666356190526010941064255231956197977125509908459756334421394556898284658146183017840940867939758793349671834358051615764683242288992920999531350550836171006552662829722476056646238234465100056104776212676942337527279743314497491725378950451649287585316730863530310073864535966296949935223276930335299448800219571279845098856689556701424199997556188253521992342945069158673518331435971115514556508338129145371741145907423274167054550323380033255416043330708053103284720988705330645114274152570906087317104621421266982790822012825157986216891179651126318997013366250885074303921176075613724322378974698725843941901787507709017131269381004576886495422434945919848470996961915763607398740402502655519438068759576150120084929293635199627297318653684315451465207527043090699291782447171204266476569166064783579084229240058171007886859921457449934301017447652969228663468183130404557105940623085666796038281687695667086502929758742647646483598430058869594577754109599528198172535446742413601437487191600988959052067148867311219423660103790998134036218231394391228548298590952764210612863348012920155127927448766859917576931481540620318427026362434453184420118276293532027401141706272385607007171794904167605579112104648160527138789734588473899530770805156727487173658851584821838559570533771545104487346213954672162021268129049819151723939196524852572478944779424376907110505364615181505768967254841463980212739329614176891811166520997228403438372315696015410812579194083962633998988818797010784797027324286762314769426881542441785910972129709367522310693917009396343709242929045095365848724705737753097346095281691251018508914429715872918467680128347797642079405909805928528360402675418735534143981345093999804166216271666229763095145829094576414104939227237457387306790004847439996105914314045125160123535933926078399476370702568122728895513358821878999282721724245592322855549049892952471138670742248362619523402112993179632211739455477041959794221506618110217347922293467705677206473344973863218104257573128936593966475859981904373016747422568660544540836427802259509758217024124715194075611348555645910108248627129136751918164867778482147197532423595763019408405260405615636678026405802731381514394927862763400820798624802876934749996902212503471356831984853770265241116674124621405385304229226319029801766878268679262505720740723416277301320347715835043597988084013256455792277902329732225130190999091643610821170731106266091201000204933152969839009381387311771289724531067425755717304442479195188365866453337507756049096525417460712914389207866096223144779858162027655546906686380229670250575753362352519470720916278514890294256628288977124931518990478890133571741680963627515274970977351409166848241516624649411942217998215115477825136991492368605272986951672058013255309561351326003952903180234459624404425006674165320512488855253348168418094318778185997149733393422240555866935789927685678045309450467155773045538217897707264815196858062029117952030130301708552964286417204992902742403819323052094312491126707746267715591770848664963521925850224907353079369037590369482296165498658654961663936760642394873255700668852735347135164151511635731434128723948925455746219825874046817337904166303980664038155693036906944855587732079907867503021170072830863256348066209830015098542070449671467459258510573763428380213130387681119415876094627113322363898047585367276746278149921685932681434631201792207989658216537378882570189966171068778562647461198587467629542393134464821653537326344677227367580864273849416576746464068827587047261370153728687186319322475133819085354409036390957188490432984332669569922903798806961403829137043939549413108828171037264908032080317282279878657598913644288904799431826999336176006789617679836223565845414431930440700940761441453312215312745152941890314444716614313179753149819096718324573189325422757664607555458618465811722616064821650910562868739837890701811101902907971977968475358107789093015376453004566682909160251974470173657551108168889720458715926924581119536031061149350900369183739184649500656120564521237858879870045279302930597780932385073899476129837666743295451276577635887868006989244041972032496111008476675094608375344597062324260729520149019131306677020202280694102211885415374831333466085952154450465114362309088294310602290417988339151509984259301542216022486155434014551135224619161799970910272206336400288646470629180783561552353463299788247834836216372078693148414569562508690010896078385206343546690523419867111664917075960494423965591144418409657201045933598059649124289117939575044549543035573682164983659326925058959546381141795730378882101746947206270149030106182891590880678247425466901097766161208068649498800412609785147047298569199086068866246957324687097251910998368124373029134731969991863601627955059676308369531737734154768444823120316536824718217336472812537709321156765893113901588051565844993113664160478405661554514408868935535760939652552934270693838334449704809392597088683928816671773163220091928566102095078096461855591556176124314773511830257129970100086091309536918052945370215384297433714283193090985228171196050025884257353878838840797058180636747895029898535834016128320053934424753001792962925037370772545540236828952909337220402043236774615971072640764821245645580503055626520063690637277055673842163136144140183764949095359295333809165720756712859418725078002868121493341264801451643032227185838425064709061062269185207754948421010335415932412367748230065355870936815259797584223819903625147624711465440821882344225189326585683499075879722344120679161471785031338846553936273549381260327530958195643974353081095465322681766432795102775114830120527963048510366105526952852609085447134803700092777085164239798797799770008602606853601727349923347495003371499238342433888525297773555381292768211965333580065994047926830974226295242451750091649168499034422531455092218196387511379102954630002080387812252697664985236120829892614765029196093577130472360993531755153118984580511017832136763057427689643231804100532512322444549618585457128836603488936175060613269239175547601129159194171592626253720820907650193894317281537381915200267254701064348784231035210539726784384028293962614126256155049166645557420092256786588455324287678657551354066778717840829330031723175720547497385226113529547418926334888394572021748948769056980100970180025573851419504544676351528925400083320278977244774482292353248488273497269900445820914152610523944121121003387340619439464402490673982016311054011625269197847346843322604050962549229781076641169939584911892880369225305002041540797396385494029370548757893735910600388717451007758891293144718943157017864148494331326413214048951551260291710116482474000009663108290148022331109938778497781772408028823600278953598166255481264075157901665370900621265800422752743575717449765073604416851620400853727602918709185384408687218547789083586142488381684312046621301227416183202283940203115970215676632952228429595732479125662278982859613634979014335092569913184934204295420933015968468608808431245804570428909851650153199669173041036679380973791453900353778653854175290753818010673738684559398912567511169436159317630645835952250292504818333825801240622615995067433481363239373216291564431569044962963492909675175281864570337740142676538170100351639583685653586982634566721130164319557866520663487148554779447890673400967672620911556507572282725014474288530145940209957163001419627255892506443801463243091648900981435400363660286015419181741706687273382527367778425297881110158285652777029809735049974749017195180513145487971955370395612239776470886441999740230516764101179501679784678291447509340304422264243894670241761420756952436058474646465146589033756961071193425623376316609809119736388710431675070650310368599278231149892181097603121084941195518588895925237469590793856401835014753814726210073572235038921984877323320640111251163847396576316743065999197111334444885266496925047756746168534111264126325916738852235487855575690260735069299718188434401124060900076496254126306576470171024476109669003844667809223071184585111276664558557428822288589421828156993752366925674955833913254801311078605224521376041539583812365287207873371754019577327138572579887838966774161247137940142887845847993933024898588997713305579101760370867925955387720622813525266191740954396178487703817268545455771347625322312571821503368587433103262771857193946674676769047331919667442685724105410648814694342738052297722385508724456467405036091703770272691942199729583400933246686862260860575391066138947516913260815030551659263380618921256441327402740439990126632624353694178421531573623145486203397002182452250173669913538829880341143422020959701735016456782884139348188789908332412996929978896418025757405740009309918472351139498257011936408243506921387639314781454772648965914958759071904666374806834593218002424429098655676015970866300113691043491400641032878167684626560784340886094200669227192116365710889172140800279709246401331272832508770773911752170118213690445601098190969779224654466094632206806220916776748952662381987900890115921024214356942291668479012943394513766116246803960136278449897162185048188895933551680224434141663147529715703414837201273317140405101658087167345162017645213228266398919631444566171755065810569397996550278838572193675099844403872814680306659082188494144617908195736630216941551387321215416117574241510997185374491224007141696069739389723495947330086664526260651491627618224282330317929034653952544670771676797288029523803032881074613689018347650210931451887667547030861524775432447658138268365137411704481594916657350914098520983440821379997400808069477918455029853575670634430702143338057915604076557101602021731875254327742898435907197105999854119118124926624676896387298871411387219522559316720673254310659058062384575106167884418146911309805816524761164325613714646496739013372551648426083801737657577844755547355195300451893681828705290786754716122216881433211730756898080768472289630753036749967648516443629026885361273271381062767805765034872689110353091673745629217401269884629963730089952187684081068587109802461154809631127407383534339271613895179495007957285687280957723770168890312795088915094570542489847185277757761158820303708735995013465095928840157281546961785198380156046840017405930150719026054629112630328181075569872566274059828685655347959541993515846310064900343673667173232125079622010785419286983235135923982262290155172533592578890409585912366175587322221480528152225262358841823180236470498589027917551661028376646219756597838556376380998676747569388747772087116317598884641704176209026418005089719659118228938980429929479139175210450730033461243277978735072907965911061424561898840277749847453843050296742515736663346729915096847180274525361312000387586250429361778108550381681001054099452489702944796464138251956504393404219675612647723975387449602607741322975230065320997259468571642621514877277556611695716697261852598378616646991315161507486013683826759758441008972859073675698510920748415152890059573934094254557865118359830626955835756158502910086908132568388489322411164029024943820361302482345343504819244308595768273835443821811450897141127554859882174109205320609672762118455833684686255576661631121880541468853340215062826425861078708301423883746352737905560465584223081812915195448417423370627231627109581982658164789996824416543031579314726182633045291322717349298664650743977157131839406256728981308698188829274005650822406656402288801193949323598922196346984772490002502735016046423725296564827256828531959369836559182986406949713402033394750805729813495430655350813901278539609774256186399512314746768541788505886160098418736170500444005061503394742219912082511515856731079278197526250285543665770601444060272671575066262795912154532756446805230415367714509663784328657724608197262930964893783968971325264817639862522560766159131170715570305481139688304196315395602623047257040343441791160147819685752612749843098491903925567351241642481656610464259161420573992031557910382910422009510242808543066914680080594555578474876289147533181981025330118520140462199532491758294354796827355221272137885586053208639520088732628827543607632015200041978457274105007256579898540078829360995016479097173450998984621186556318670203912616907899844465559753427154355667432549858661361289349176382996553319919312321844813854899873121701032409132826778454182691406227823783084255994126339296327502787647114839880796308089518203147671178757644463768924385921640785235786682340001271852077797827575278582357519408665604586336457000248502379636573678277990803603680973331532466636048520299484272492977192970210285200605675123324571389644245757131455392664959249470881207362676127152556228397761129840759904670129403861993313885267852527741206381304451804775312632373224873658228836786228736685855483603244567132592465390934797053284487920853493144129047588135498667143570955993965708226704503952887193721318312991363391021845848862450783627730652770713889281834993381474768405614996069128646054120724479928990394118162957392167000099597645820226812734717875715300234473142299694435427536744813450445821719624364869491691135998595253925190286008831536284745416482686112266455903837950383320252939555401201903808130837729457420053352781799633950217812328061932038994512692941686735368043329440957718261401403469619409381700273405240088146474937462092048995413325288134700362680638740624571252585656207351139990031958034472811987759948358588915560997234243381066796216622947133383241867084058513173227500635457451504492191199572627037929858327993755893822954493605429834545973153869243963304685641447753620504475737078940840907605413054475796358432588019735208948331284966258863342258008201032604397818433901513776784520671593478623777051358564346546552111708530223709094577318390505556833792730982291835790021034299915565779744265914638808182124431061702957051287896993584569038156631120656251928265694776401777073435199254828104443841132165144976737543304264003199219855776475297306955128770731595101413861011534762447939095959486289877188975514935187215157872302789552161803635085718894956374226646545608506082845829024953017773971082378412731849875045214481598749582702046599377305473083651410138177283942660796067485176796201956047250023427065677004467370202316375452931863206891612192220345947885534219807919101182046193374303744373868705044790656274203112979127102808929549168584649383269322354891471046289642305565783906791624504775731810791810566201294714116827658681564500336566939099862789790986116124305914370545211933044673966091603463805494418310511879121223093207499319748120171695756110875051109634442994655019360476621182584732580633470247158918706147119335990801991713834062326733318121525374909196794970981805159412821445033144558789613139164874576969980871449241795567949854199661087375563042269479823048127310925121080066392803112095342086287497399889671210029000579633529109996198441743897403008242387948955633156937741986698392262155097547098817983172653443689013965963726446209326130823771149584786866325269404013616730313361255957219988101800425299268979658124429642427738235161298379097701013832150752649796414171010518930386856396386233613074383839430659886864408607540913368487362343944435187914937081210890094642184462760088916656353508828048422918806791509215677922610599939866266197269506334271482472389927672118094834939322832822987884488663336486674883936574620019429231328789539603262192404421635556424879588273300037962473288708075466805393792375266897457949389484544688082891757788245846520373699972932034110228255706869695253440791774989705312004605600801573563490816213695823225087831930635791830386398147387937584575465249377650013219378210231541590994249642657848581565341693840111007037383478695164169116733346458069132921172889394320855238927640877639711105071648192405642137979255663297485827217868590884042515248846938228814850213051381660169705261688236886358709723583951335200022839392193629142363472793690739554338826621223097920733536550316087782496943181113149950535009111099122983095004745511885317834772974788017841180801944718800862862239036966475114636384795714927159107725003239560654305695903872700573133063519851698174402010179814315709753780490941597205337297887134654946334711040833565136050511360525121721404429300673810803162230236737572990202811394869372209116665027979074861226131721607834695937541674050654908452264517065938988651948433815113828373028177498651836937149591535051675920922561387675682512236420053576590074172423276349216403121251643961896609056366289327335910865772234316119925173264999469188145995654378896387912030559036395220872870345215042807799833389312841073437175724286107518220564828064126940306268281754710814205576625046917217597748814561945170502411930626356662548860828547780481877158531402277726611921620633167481481236041198367922454080141728705233936357694282109332079583478087999464592928284623342129347002214032006551041048954767104032871340460155998885026549526829846100511718268771816549605262371471363920960690788069553976846543295098203251263836971595783079392535151574539427081839743587103285444815139316482889116967479571748051568066673694568359097981216717933763385727705442233350069611368581625287640890169447024382263700203260678434084013992473975189618970014225419605635477389531223625926479546152401125695064334636860719750751798479344992302896014489878965636121681822420877098995781199797865859141694205514629214842439908232313117224717754794588924365807366725804318674062276691846179575940750235639108680070285642015184345061022621272259827411558106217576983179773492025685487052296262705287617531765204725992738140279354905930705020521309075352007978910260271938229000616206213478508378432924862318461316259357093932115405562655077753058341081441429265161004751887145067411482406065413080511416881231592302539034816839077385373538547830286589592931500030956100826636705133071719711328057951278855699876231115203183181506554353297679935269262980975024639018183369405622067934689049814158522030766951634134250059042562804875677343307858332063918618863597074743579688987559425812589722206397495586032251638912618499430118848745931881666179086232947411539105542252787933503781480829018526849462618690103254997959424851065133050509884955298543260067233280103492031414101475407650846662002223791850363103705598871437940981506764442889862922728791859132745199525067832747145069136523070726344198565199539087329509821102488387415858651248234256091227085198876341398839706314158398558079208316312088790290958325508547037570287424449240085756903387588247248644339728735153693967809588584300981443159999448542416087057273561919485911802967961359470915221394202055224935135311950713533025545537768239999211650201994952028010079774329016186809795037680082454904405927763397518208220876189593480659610913503910256465567416890742930817454285756099949011253766851281785271879239027179391665012339892196333011912404035257674355997152528720446986268506945626989728790737724973463643709214801473358802754419318024593869395408073480890197299540227911606161519095709759218750843433338620412563711858453764194947650729385765105462813963631107794649301528003728142863171279434850919886182781334392213163731219794809841176833970201914532292765813207132320607015056130887888273397499441743029406482284525858854486485560183831062335290459997721696202498570921247732626279830800697298751307565378174232689698970353191902215348618360661246145765545397093740863191421186372523992634379725321308844487534037099369269642772583530608474739995312151739937908879812697339546922736035654355664098628048221757883177932323944109275334873303698324191532418386820816808340351723519981421607218630270717958680665925049895167860030668666240843758623484724968586118241072332698498516457431719855777555175316030367885793830090793246456266409725377644184289315482786835991054001169867740259059788066609828666668556602019043260600582122107503603742562384740325004570442405202004943029962121360356761106428338359051847809502811422183489018576763558906456782002087511691729722037356348137988269816154595741449971586367566185378692048409885849332882163620354400214229322952699290797577880659973350143301397675521856198495579400716133429359896438127932702918498030282001132853641890607914556928186906867657538768359201195249455492030976976414361495036674362035676859339453602365302967364140530570917486975160613624187960062793477448774178180762462389363494462775916779380474132210948359007699517299451205735221576906845281768875955616966174800942710792488887043465111344288230296602481487670052044095009242487000524707286930663032536733692622309388292637339876259363231498915570910807646628799755119325581035850217090983757953404092471638256168259461730914511321274537596452382247801302924413787241595529056282164171151451544795692556980519264875160212098949608543206317818437707179067838572905998313043936246776477694920671841277873688218665392508354075468222271540697279681054174814463532556434702770284926259453538720858414911234536119981925575875002285652407521927249259083777564661618177469642170619569292352411827315887803046296205856638348101131896386089055149947987869068685288618708145402719329255112565948380610622106666913059189878756470016570225010707218030819257697343851018858790474411242407403414188645460569260521459847794493046279613909500826443323193111526305027716764625170328091413486867238729714302234346630061093586265997798050570665408186234164111130457700735888352060824634991707399873404419107125673481710401494159716637851251841680920637022997889076969134660415714462681828210609242120675789791915651989854333317866050878424835091358028771443524481295405502900070619246172617891330974984889551809705470371942869563565735851742488718559344538072592403341923903932235257394869654234871982632008206887338164268422674420450392810817320895372225333770953271361651652906887175031518588345696231446182131679731868108096477686609634428232932399074574609608212142306694639171814264983376265812025101758491727927840033339773509521618946142802334973568445571717830700689877200538482702139462849480583388963373439770368469870659449892515252657080081162603162652084028353379150047528889116233483734643452692115237962537638118884533143058697605652389945036849553078801129385466075009379710237876445491353068940924313969040801572710961106353770430427817295082278028605615711700140582887717649711353947945613922751856378772614693613460894657990227486531947121394196382789879937565911194730618736303498567362421179519913089004905893092733510713156240647705992419037000675482341768879173346440285222061177220885788183980847870368262527655722480815629726697314457732592084072188505905474071867950204876165079846517644695720092912228877578537054930419188753154288527510682059262530975644467520295939517974003478140128075156260225750860764050549122153419037437635083332866462957654063312338195739711117175258489277822417655893036128234411261514370992147197816538019847543786587910526364992146221706579653652497319866891476302128637536340288380400775420962511863173182172351745229333161293911332643825731632985807903507210641384111557171465043832050843277393710689989284913220088394641077485138459407152554812935323837044225940943714306325970360217129902658124812671931493577322747083595157522735410317107635101592365620723810898568978739218122498548621492626771760560770003832398136117636543531750814306258721671963127298414086729816434887526191006663743316525392221818179631463997384774693513862758620700538422674402498496261943257115619400013418165702516336368183793795394450742859794297266285242088742656059572186241783874808788648251665788619579684358695781557612350312241193742397903134323649832345759862661723536471623920780701982342011855398760894411110872431030713416452907177308874483632660425467461949860751956931104021417225831086363749209983569281898662744404330408105931388968690349325530518431102121559295305881543262955183355794922168177461153847898139735903280306130314610062239478575850005311947130536338484301079069039311880389617883479434817307018545282036420909325544247880767284488106868210357546328216301272431998109371653724660183775804857762957530760735691489671161651098302788408551887354611724350611673017684539534873342514133933816037832839676849890428461728328335776645215809450665643812344382065989666540508953793780069249247472293988803029828200693607109630674511111264301276702634841877826676990098116432860257403300772441046141277372418299024216417244495243398377354494557105776884192204681593357860495620146127032025772676078511191958607301324527964145507027523590113231568836379167429333067427588069845864973385660503741502517881633579501849399442952185608101850490320302633776550911770243437459539782988829887466900157932078884238669747748198399147236221663488308193216967677377329890419259268546724015896479677624347090179286988975287238408905840012872700439615391636894843418779606137225898272844960520112678314419641045880061804952299482439375940218596858698065533497488425473989897743463594754715612148945449498895943926871414030753061031145615478898473108665800480573191487499132701365216414715870628221653006613518961298792491874961607160787732322013081491259917184724383831125269768351934502544534937371529491573671263153314607906822478327346784665452584083839776031326282110215769774325147036423122484831759969778874345760543933148334233727597742896659764416090327053735186898569193319062563384267985345661035236361367653681233882550748925589245708878929678811681726579940360228318993900322330619656238776248113963878488234131058652923302252027094389852480307378740669052398588699461074794260300944306563055646182089873428929681670568753352918218201812595000372331545140731296094856773275349441781071720142519096367460038534789704777739650167438894987504801648679942407619134883825651553139278940213582176678674944078186460554073174646776606213391401379405829287135238990899742501842750961140570668686932789137260396180167665930832049615944939969680803242750666554178822737055595175252092052918967958353737807317853834310292616715440596143481801465329903647151106511105297145955465184753700694702793756975329895791581458172796349948149215510033128251976554672315099807226773476407193187571103996684910026935569361683156883515483213920018775474901323705073630651866340260906834697191680801144212483676389390208557366675083756111277022889909693786961337024515862943035091698039596879761969510150400195806893212290578011979295214657084981699202441537002602585381656870164101864877962459625563974235896672159455259324024394942451741753153651453532106055811156223740163344022482717115112904863915999994064833419261719917195161077207180887617162796186656864571849593075340143472733261284342988772399079493685894032542155380309400645439728461813579326480058537047816877889196407710600748410011845730322945608746289100985863335160146253301617755653365787089752718185142246239072787218241118252348733652926827309958401704231295177298055642377705552100298496230356835866096731734301442451518354342098622925062496233713749847551964024786891251657844536677141420894751248571214186918511180460897517045804138403675581834495095532301683112484237757764174820854740577724967457100382450867833567871351216057227722165252617471063506106647784147404863020038807667863443426874497602448515961911000696327512423794922623596401734743979642689295856077112734496025447987213031023018292977296878845448115861586352208393021266230164112389867939723937586734776611064210914644438373191850949183331082937645913255419851780007972469188842758535842891997131777637228982265382426245497381775497386477627618190764848357174675240699110176177864131193628979993147907153323268805989593813563066504855730927708828489415768038648360692164478248565306019991979849048405439338560950072742471899558597385481273716158975679841054372744904240219081779890302278512998763732470361192789772558584476694895325101137673808978769593536013587295328686622798487058822143236390309172925568136774429090688647862563544148868275985612833407799252018775870271503870392002221802706756124224310092196291644035669804889684001504745131688232498553482250151043703063743386258412062174228342016316063947448949508907441147878304742481853909914215120684871889106754321534628635861472084306178759590452962125387896807407136472896948992204979034408599210396054038669978490495075169634850942208964098288500130917183113808571567494064037466015310503106130177255902164498152915466347401179259715971725526249715047193363798324398975484616988668221483573350002715364075759631737803405190096917843564552193442457476449036249269425290308700863976216800353256826375074892972298285717423950317188649892472402239164857977076424021236090527570001531329721786638524779683689011719890195122947073376548668478552827367568993308099781631554490567495950401825013854635496372016977028994862986977597760341768043032862247121073936970973840860305332938657320509011575080234913164448270420969014333506074688612409280061432574211928189481848305469804083649095411930671955513933892057119785793635498325855231394249968111919837909023473854862097880556865375636143985555047095400865693689008779857305933561664807350553162138033463868402015344609947150231518414833176577744639572176170250558804888886508065969683978196240036023976689181555922488962891336138432159674904173072273136170141888183670554110960031127337131556956392995400479632211205377847189953499285846974719157714418910531639962625298200477354358563661357674279950600856671467305038606769818485870783257922209275982726633621583289689311649221044604029347436824511733504851550661340937521576210745178387289028419837128840781925066583833292554328320231895371878841345467348547596707979292282849631442638821398957282126106598114882352550283892171795086568791465051959340241810663183074626003919443475095218298525657810853179919845190845584366008514492706048034132397370180500885372932467323379691085865746059777627685025012694852995881784099631032821783474206761856411945376459543872674353375678854031491038411347015944091036991613271003988951196066950980319651069918649857082608183756082929048565519309405547279705862042652153290608152557776098442819047305519889513299980685907186971868300075535319988623204699235616728887358936278520559958146593695360405370335099150255071623320934737301414566131799558440970193563096841528259625399843301740240281901215373929935446467488062127335830969641812814050614672743333503347495730968311558820436353888520868824991007914286190228438958224986177749151242118487417858794444881383061701985863383350228074127798876853516675537794559078224291549216013946458834445206073926628565200610829100959326594032311766921018087308486106729626209934461760127912677380776252146380501541127601121373147802313285380082109676551340114567939935513488862653967964601502543156412428368990691040817645175633654156047732600051093763870114008252036286334688159855705004555030347524775012815393819964001813755503015040471701804209648888358449494840096370699786162091479459712365029072185441633949695507218059177018293562639101337907946281262102071251479809761928466273303733949242545576256916963803949650702214356763405157130144598820054956122834802918423755224175944750284954397885880242634301219354314812159177374909986931790314333745961339759241537266235455269060459816744009633700152608832997836414410499659446884034632466977765674907533685586644974339989405836531528732793993972177952348275043006173351656125301795432530351125892165770758238004353808056487548738598452705163676612760680773943619693247909052909398721002918173349657247594512506097482870490977795431867488232604495477619127377369852774918751323638762041889462466190463971946967144184221609772753103782901212866243936020728413799834100412794029747539259365662543849523004025521310081375611069779089609938740524423175235193441735359188935800550420489561385302418757530998198062924167599734711944937296075806014791560678210937289425663081740116520442848234891617508541891085929513404751829751780331193875052679805172943592215731691141013325122628629768045020846600195511042292441666356296618090259824856036192086932436812685294981607449382337924676557140546093434906242648592665568228646565845765428624683556708578465752198490301680404165723010953067009468901303369024587473050713178138744530247614936380657590961529082929606808745480229371597202019758513244961428158494160760699676913918623432433411683601355569758366862237847700102523739150673150018991733172435393035511089020511644489229012994770076446218088985150410719819199186079640134409302720757643528749491973971060915786579706600501445688360022253694208087079912836626300396630797765224002000208637678705540164112453649570372893993626598012992493255784272573263202439043710348126600060683464200300244741745957671928406297991061429255929893315803220587383891215058623780198151525785905879960592596569295157368501332573743784532718727028345983249973529505004120035924472634411311639688131651223287324702507212803473622825139068797215385154154985992465114272141265570858981125508937080591790292314387145828289128584557088551655157653864236503240938415045327950925027117149043125742083970999219546892532967844664482998559230050216481413927664388532787439783920794111131339058680129544897003164867989133709536616640028201058920124575872930685354888981452279636946254963342793770856534268026031813784749924669352484676332487861167846092299704637939035827051738641288169007904676048416873424308136091151361935252875121379164568171479726652839916919127568630662212405977092645049192228482158192909722591377843582126507070313050535032177302321147720415773094366772439050752861079389105190331456380440342821457323619644313453193759007014625469994509839812561111284656629473289228848203712720039254228008363605519570233457039391611106177407929656448690068214628627466634422058063571648985528618446927272246077089342606895965267851989813795720422822477353588851454153588108542026967400688796291322122502262347920266900296317133310777888882163187760228358637527268968107049550579469094325171426268893209106933190358998295637057814557915795967794594676671549810461919867984202040487421113237110418386511809402314523834482594880317501069946337746808786478285914325024184711963141864490376748179239914129051524019432993848999673429558048433141235254572001865010909209630571641713155495464929797482477173432576607081558790719212882355557054724318220629334340631347035363053547366339458460632831274933122562507719078690835808944600535704808782575994848641383290259585813352702899466618288179392180504521350962707500356221520777093182411054490204767567110658130483551490664196468805728765057712235806301508195164217332485718808766662684334234641774672163746302152527698034624345382744754257860995053955127010948292487345878693950332233377718638678654986126823991006480382553457523448493891868325160242161745784461763885957458134838834216148759701423172817945586466697409336077158415705814409671658540112951097584113266999340327629205694157908832025542815107544928234813006541986151045901429429099045513816392482578384878986803731954834139267719646036236795302185617080650226141933590910359957219054698875861101921151600790656005816564992971597182839782638142219922275290697535037724792409422672590552779789788302997013018367535508635160990042333265116210263550827329873509478494789339697085507472274366618335550393795925758962112072446838845273274683060514017004224361752252683909302031177488744233526808069500889903340521876990768046306163933697035144450517916631764375879680357126372472310946161590624691506921125884814320253841311075376697103318098216981017364595090439373627686055909020576734755883813788907456102412471472336021946191213351521916042958833517365430062832917081094099705770022563096267547000429096991361080744380897881520618543828982509491242937098128002365663035462340670554110058882560274505887189859216874584908350334467798313253605108184809545432169100327208013305156457449472767653710464425097010726316441885154649168572994962219044317226184391109920427202184454397839677267435452252496032754843603102985764883546726859143156811114902313118318732979489963123167175314327642400848140589729648042952669990033705535729688177763731626497653365832544928335116416808959502581640130354850511767178963632226699884590912472404495646706393135843926345720978300805837680481581615902246679123079670590490897229690875972103073290019369135923172449284017325173120066571980211540924307046453173031011327764298499508855696711648248459336006185838344106795164125656260316983847633905547798754839859359383652544754821322721235229099730292934092260828566709804625708422271209201038370455481985663493829162230484942780159188960491361483227946166748798920027024699105432369969472069589340505476274162442108040574050569040565671444605576461076227637152964121331453433836138586703103513377186668999529243615224002240293481569508944862065888923181665351891422518796142411449789585733551385082776384298387615605146269557685652972108714177725305781389590046940822177953093386827901320784519844866882228920138276881351988019494076753572336817774937691282222487290384715371830421366195148078209799424262101568534516232247685661291947790743485379331113524858404314056762645376641375732765358983493985859493871373295515752380676767132825706291626853292459921821961431034493826158829765686351776048126102420521110922747149889091295113549832788983429500986306420468028640878643079726922049574752262470293408218476590210331553532768841828842633673443414241596382521296015160694854502099650071949863990924127008851687406027795051075851006985515890929174644384501119157661006100276508310069429977350504417962130998407913358748232848914179746764030687709716122158966215717036802458499886190171396276183269745886376930055567843169226141267044936686451445005116196046018167915931060254127908873232046853196697945039228600173983786847559696484748205449759129225557554961889541714703525273502089482483524793526384892832825707347081030941825857599011897641693045119555527038048594728030563175461504346883961431035730179418392657788241558296455197199512811338204741558954272154655371110913643111604867021813260655228480882451071283299717607346954732396997971907330184466741339430102679413275572318508539217617906236414557585832314424304337750100642331552157012580441575994703193803562846350903864874436900329666080437595624727464016398646437995282497181916536723984414496255808948285534007829841209160022397177650565497863807449037786951874005411231694398981321162432597148014787068026100158587558661433318654370434909048496127186371912066446523188203662987583922536018271462698427214189422841832082079149980078356353564694822259854364799137217611854420963757878149224983589677220242625512075753200542655490680216319676008131766779904052170672965016980143031095767656702510025352303192299002527769152331782255616213586407614856925032837209372802826633237168205460094409779375841790616444961873866409985452316303214815995112228581122330774973038895238263814066790373540515599684397549353029346225383353624784486925862314130180903827776739405481996661629555342390545685955827982370730219606381751287257158222379856851887202509253304831115762278235871050352561464776257097399156324904875333510659360011777381114467303908925690504826499263285826045305590546854888627941808092448545390377739388899658833784088321628786921224796448992462140865656340849614081676805049274178350394358726612991604192535597290769658604502828195402293392290793266442302075995660329159140755535374980803472748063490034548652580762846192138768216719495361638210483661421631274043026831634972949706849529613584997588921672477452847121594801682178073236327443525275166896950289029083247627372976109973752939609671234118027202296918059177715100462256769880460256835800121843639565959986684667700909536799912615026508208014170036155354302426478206955599093429632139823006800159326703580861672316615409758972865996971482386326265351889607018814625388054792202844802667657110027255989900508629460209610270871524970892740779811696849689000591033350889047207086288200978746145861747484870770322994895246346816424222242723810039525981639615349596458373670048082065460682478861476611546093265136244199346148374121506392941180587054304362081770401853585177254798479775513590477329076370514653787522851778208852279231111940444196825606782457545614210114842352191744424404047268510893045493743296489789103024357940297072455108548492109844347078144787751267160096140811757509707814515952407350880162814474204392002595318800677078098656970038842416672045452678648410582039400406876496906470444644044849933796879730035384718363752695077166349666857255956323118696507680912543720249012867421617633880899428446221171065827506185464164045856258043842237072989187174574414812015216391816734966471123979845206885433475917195879622811285538289835320505507193250201160070118150703412577826477013762992717973908063336162899234380485898720706942901989713765948174439552518594328384245546438303058312183210383128265378129665342592267680090647445846007529529821019948091528818293293344011375322231027037737672454980865782294655770055724488257919507080288431886558463711794244553871632518600836355550285540219588841903180380274904241705765714449710288709811536808623242848004072360133244886217129757500335918249797479692550265421286963175330610496008050000513177974149347407606526750440328407659570751994601156714254092794908485521517445239803240142415817867726256433756558569091354665732045383112961408463212952871068373520749213261041070699908395826556595203502291555176799352611772580067631832318547399604601545102888877110394250539304713694854488587155541300944321671148682998410670407101286554522032132785411317244665980904187553185776305062834133918376221621829941744592636410891133783102569684782799549615693473032181679774126231196497048869926774411377632292370152420541187333854695623634874058505347198395926776966741823996756252961108121094822293732719055944441546311157748603961058276712368214603090670388527871161176660119834769971573191521990872443451193005175446879761401776594269006468336917821833852537466214105907617009839477747906720357475122042508115940653474205956166086726890958293058277703179938687551204261073267034060167142888995174340644653283889285701323247356726741520503390347745382596687598520894114675179060546601226054480455435345981487212536305910049409515785230945572502315010435220212271965187767092986253304658743825663455262278742331703980600372053263835916365418841403801975503196282906548612222396112245155288933746263381714484332366449555847507042274510299598846357581727756664341868501549377342066627165847616267796954447111449266688176487466120826052709168106159834875005871353024207413841547636750823457100212700977674642019811241915382792254135006459665763037410257089682374974509689423155522367414795928471588010376940417486630524138888454412477969272540937284885825770207123712991844964918170457313916885403702422066184693447674387278969177112539701426390761141571366790285409299947175322860488146635400170787926911586926877148492873409218122533303152927154690163723687758009802160921601082393111918659679800647620509440465106784606108315497975614451223686367694459261639854170363072149978935102150569287237487459812459657173355918571370635741244998681836422034274412802188384278708264096874915755351337568651568945300582849094097480281340090819543058779649891392892879286373629879082785079515618000105179754357177786170544697310752990298515139499517161193928048955981196700299587899047072035954143224953144221223670823227537812727205428748332477850690111633951729457688958302608944378260991072215349247783405963001808867669202876607456072553091741636048338192590536658380346225803764931981027644455566268159926582341871824948537113242679413030206397100569176702460783049761866554148235171121521927652883567969057078065664167199327566957889242926093274217558725252363190728572516098331230692172096877739580733918168830105077690374789429911505317367169456124483502262332741152915359142541664935780786708120097466584427194061577634043035328212815830678422986889688134452411990988407106528244134296034556894831708687151761682948440593125075278758331061978221361316745307867005774586934409081567948528517963934477466710665855269069985086447978800157036784131662334758981608700880438981571861165894862658711352528999128561713834238658004168759293257077711640717013350474483872950463164863292453920082095620126516780505525095000091309635074415580273598727025692810182678864364775905251550286255094360958071798201602814866202743354199372354237133398876368803427466623290067222463720821229834384074051377532543161980989387195523553892905836566242371912105395669192806185702827500655510176791266090826159984936543010565449647045364671324776903065177710126935936344797155065515900614073554781861406349889200979757384365234537563891040994499749510448575818989688145635783715089635543287832187072530663031558274316280444490434215172297808839577248327278186915685340333828057918546099867965975260434519367090565358137429555179804717311218755494901137563313216037270904047490332763246073418672834117209179791971738290111828191719548328142433858500089114453549206228332241075544993514605312859367323582794029155775118501523628214773820243922385638730264606789219994741579875800017223314755660986710521405491383249323163058833929872262781634898408490618890358111876697722617024557475250349720278256300964260419827067285648925297284982857436230282219648248686504827297104859519809494327777974171849064185417388985476258412105282588456010348514269377522624108633587782998109986170868737983342314026882420620378334150680430896224922471824967138684090710142346408573160532669559448803213717397822526441545348324587529653799231129126294325966110249416964321483200909480823945041575031312732356730277676101200014218236402698624885929720125961122431666319491302635092972239533974848496388857821105371612772062389861132300343444826634378597081259300939384170985771488133327184903773014934060126418506465237628596141892633793615135741462382761025087310010818281396189968120531045213825368242978900199677066536262683278866710290312231366457677280127259532638356231528276137746298527861342841622996701925438352057725619573827328615032165059786640970484569911565859455331234825963198427912112988245445335508828773128480135338175986294788602086422622334267957845242426977992754147958186475246969066220225462924528600690421324334086542282132900992373397133612093617446502089595907982233113502424948971457567019262354015682799892681756666723174939409338270556275692451537965874389967793389590094070170846677561199843000401723919295647205469642449439138931145010218868966056729044541108730965755417346442097886435946960398860630365439746301883288655996007403117629023331693870406923432007433863736038575160496685365920659562739622540148993063313332573085297603248702323048679290125351700150679432796796935585106304550617230989661383887559890150191202442349787430658503491342798677127816054254828295473008511086013902338034604081984667674353976296207235335533626163434934843819804098631164446509015491332577202581449117062962582223235145958282206321820552214280935782045154948064061673750690346047156659230164907504505815235818253717072163227905282883541541226040346445450895018836646244340752408927138002968348014366548774671481113664733416017912517602705258671378964060855267138574324058808759536168443285667571682376533551245668919438219726794127248638168488655367001458447206066483945092903877409073984869725683344254527976432910149166165146828349655704000224697487052935908403411828758539639565540205955184300405878453871957261939074263828368612256409905379461630723167603900536013456402775744223375878501035142743354150478011861997916836446710063904789537683060931431268513939288591370233084139556674212077634149604676395054680298417352578865744348205290923288255142426794517573962248513433712333969524124896229690236387593112247435865650786251539321041933831711631039720241303631543625100558817541718691534701059608481382426685045370273876807815753722266709695187844318424829169885296108957876910311357077853804523242170238434911207633022839091830322969251115355518911013592911218948595000327487939394212891255783902181182209161743970040607466229728792809164532717601555888183379715244134277347500334343395072741678148821316564257028518790558331190086281786897899953172302233940888809962988117177221014286659405617046164510398363148929507239452616221745417734729352044820441831134689324284152857046552637167035222662046474380056041423787043854208164623342395047218800068233474335451276620894656555227759724275748505390071842175358681658797071524605036919289167378923366419195158357918278134221967123386810444416675386621645111863092716690359158467841547080034121969840181795751799429862820084814815647519418166328805510596589814407351218571933716648985520728480794493747355095332975004699766209296919021216481540199444114689387921718302025215982886934283648390742817850497885485869675949054271105736602147362133133248995477717924023471197476465803851630318236025645435201740281994283796063560884266226705604968608958575489076810379801458193597111208356122401971958327362983125414521751704227587273400609499420179050345105727385140939633344389266800247718351537468913677900549305231916562914234560890754592162091940398173165192150929007184094945968478557535324951096777918817080763422384028161405341569653326668755594535355323182718308586268484900112630866468531944093868880532975275114386145247768180357288406902726158367092533040367588184988040574363558042881866723755341744979551267813530512747982290382501006187936749531158499088299389424828164164505815510555347371613372878844975704355180289472465064669004354159275266127138701302201512660727576825071618863545602292970400732525965247559824209690913389678362775983443412453768679160019389357143946509997001226505867421065017046602313934681768274417359360431039592145257186440858487670000516368348159577811753004820160901566590364833395683379485413897218021353729524188643302890336644950113234927885498946230618005305023237922905324612046613277416185495379166631915357341019336784213098393352654672310778383758871987370064532178035775948450580901463475161874359281168197662991139205319672764850705914225548364372251150288731236119531920977702005094624926977215883474045894815516271891123485153308372471656040723100181723917251808446122602037809758894758722522909786759899668740917647384154293988453550580156597812016787458712654482060184315000559772640829599592862369836263714311206638911380593904022277176854888394182454965522523405282903504868314764923772458498558435315815000499718613118661396825547879949920285118332836057981790626597929625716843706220142267861258902505633843089459341566754655472105400942595016885544197035075882425084566210573720656687808197958668319923559911567792842958329982840196419737416343593212819688193049094630034096463359703010190106590631919501271257514977744927586949357042543638402780601524246370169036165555414517503499414516141758622958078582433952397924249963587123494918470982652061653209356106857478304121216139742495582640000727557445378853088521956101417266962702612269492768309189227673203164831158509179976302066905080410105394549849044456382323035828576973945937320794664437373032436291694293551715189013885318174935191904293240201650153732002401659897169572702738781119492810369509323567618275484152601963708498210185649738423324073623931478238821729256603735919965860075580895160001990926354149989588234933200316688899636046375801843385886110761725158443288605464788548497995458914644703787969275056924425551174804081592488204753970773377230908333325215214258714306802042475772279846410739775515692042117716497369664287294301554654195048117099932020720724669291986778850297425045717807908576076701713687716096303603952675245876012511835572656447765000564332920462051610710946179540854889564894735141568001941664271694936301284724377765961984287916047798603471072323586951095961010788735854187780317966646829911779617327970186251907511288408849334999511451094961431535829785730616909502212535342912909691180117272805379445420123675832077117629032843025153048355801731997292693970738664516603192830227856021222445233378227886795724942410379629560426934532812559195820048578124900662909805150804010572283715710118013251651717868952377866440130832491333417426131971493019126824446375930738880728205438261748159545635787365692649077779330674621961501687119130255865490913253698485204970706316928736978437995883114355876112312401661025352417375594777813571017413276697120089650905006921715083846130861391452176384973857445953205779626128505078102921969616621984227749435800423709600408358136638117436746502899444103802193669944262977675781438066429086365407815531853259452879019760437182293471787536628279529736102897807500851279642294134544166526788781071428717519641631091469034756991127073343318322780116213663294788740386072733590452077117421207061690282723285822122421679906258751891220075575378287737137956647934949624101239213570506158293559569659805219149220594147623645259362443799445165421939295819770782578925342592135597292345151250076492377666400989063219403200379513370492587429675717549356839333354776332904421080445438392008811176729266377077106841156314564676733924610944001741635251903263434063139202966190237692841105872373131750482070078401906647227922218576118745998030055443722823764182102745957403496377783385065514690619868379741656802678774454049790959533593317676684720848712432088082094812121308331509391713905204483107360869990334754860078932928448987945536892874560835422294820505713228515217925678533143738149264222788171409345837121281404541507141750369453264081771823507356700397259040708630957669305958849952106833915926145780843637359384883767969277093850093136780618438657072547267136528201872623738806693779292581397567403373620485458278522024099098008141171300738233784204245479877055791415369892725630377582179867046167548863886691969365201246903452135213347737702437627784540293678893765658979160836646250960624003981834258399053863332201466351335167400431975493781430235290859286749218493063812699473601479278156805113720480142056300234072445084711461331839104181603369629280073262963408686999071660218518322957322980575329119872895807869057623723339281982920530219642489457218889852979171537159651402246405571757319623687971743210343231164216737324553537688891490656092204868140480059506311877242942966707371011986189811400146776284889279124574222817987413435540740912993446923476841049749860414198867159294906046658250382163750428571607880470484141568661888630818640700985895359360846917545143407962386588863460844732740029788061303220591749549632791366330149818047250368525266932656930398600992284236236010928124391047589985299935686528348444092175293309377466539071994960557500127515519275366633227331536610525725892630955132229702512600188009006475676227406577931260727168405015822949485594168826080474410063298771069281610473166385484319431411532022962114116251957496680700069589216178036570046701066654734640703693439298368311656045390869987997596008002545863818947788400484054372240354089580950796664070350725593378168266894234182601103392814030385633221104888805213915226017864389221587259793881826584979608268770119029564256778993585950150838118910831573465895781122672391296091936903566676963922538591061761686343919932505163469204298891235512008416736603160080719672380520333963521461139113803002744952652725831727125168997232457623755924814808482040325894339815402987940736460883811732174969830980248702238360186396966760849146706381669678173616556169813637539217880409826322288757268537327297848220818866640777362258005655505258367436246353501599480230477038569258135333997052129086386556293761703495185219776877994953898859337751126396488288520459351949306028028627395380695096915623507709572528685376149968806850829884399290133257408642902956161612387898059535584251479891296174039156677314778221424805125478062041162183145486581707202406097587913941042311114913676903217363381888723173376240196212133518875756486917222435682963200085732840602549267038731520475533211865239346957486675046360095123005342466691130499488859027081404069303138194976838537270769228484740377356330007456302949916113763510226048470423233982493776595817793727374870585245150917349526003851288556050563832935307289512657817678771610645860110718428319291207048965087442870263568159653284193073469389858136627234326265629926210346360356900377673306318842663291395697447441643907576334507816032880056115936038984593828056579895323916632095773826723267624090143962997356730081275347736956015259667072525082186049990770506852976897772954569965968325203277039012962884304712474357344081990645263683140314142990562054358804526566639255576711450650536238289684725727121625918775244003897911467389395370340799710138621314393741506778641176458514502193019777856767493300580080715634779559498962507105641429749905319085819422698987159917134425700201519781707069366045422790686880339841196035520233852549683068415260891035936696260137568749564500085459402504716936441559252536901597114990284398229616758278462925715180881955236789481414220435914815004827130480931558336508329643630809478039416548323365496405835193613574943534618736820193394339425847926208582025211418343223360464288086760958502879085620902247132780141233199161975743683654618534550985386705789098821197722419916287530256033164018468231799108115105223871580638145375067603270239092346205078555602839981935861472857394534433319783639047071457604640202805507908455484371500349725718318362077914402338536026274596627791715462633197051357733574786915735746533462971395197617893047120728999910754626051253763699736898422125620909152868017946196316618114585519219026578750133854862337134391249457746208098280120980259776380332405702476920257420118930080926688717074315138287171428114829130504558906156350846063076210276786485487485244634012331186835711636151743404363600886142083212128156781734431681674125415960894397435461666720862934820962388137035501095319551959171785789471934001386436377922032903741085511888349002518227927769788624533776988024463437494752201973163179336754647317259810332369096412210858971911747282125740202836969347920718045321855297112335951178472935748609727627420974604845968006468630343369857910474502545412329056724883721517841550547963667113098385869681639343403036936388246705272205466344297025321848489189048344785216406303802231419048170598055396859408475084286885901114606111161065576677097929724837863951185993352372512610355084106762503429803253466620471993396919706868089941572720965105490791079378989307795196786910246772269682856647767026293141779109954529816963271871306569007796241860900313321366056977185863794761830868292588946946908351123394597067538019780852422649207953221247618099639044579202849904216346869088244069239350982546215162739581953941296500097526588210594446120625279915203528488090370977178918605417736558880595920467572469020449126169531247070840748342547397061727060347734438708856054962898900625549933286743143665434994458324695422491558440563125663670654543725105406613440130809234917772481248684587857778975017042179355904734611069122070297386373764191399200115054075687436140128204601190964055861802765623763165418018670759448332826963302995882233789152889173299854125467441322270628427419272825724592502064150078132885666816654147080345880913783822495321904456427026458983841508265385029791702752975661357206170910018345949355524518590248674140877385735344118653323733448167587227104027647537981198986443406994210131133930157027792110415137929074923633565855150158506796448899705322519457202412914151343915776074981018966079891851475080125829986823976244884148791235750520894373157965153177427884838665807610677880600472676860959791587193625862602138761926762393962265014119225879529563398411463208365792068655229480095064776719850305735030254725505518182541672334724337418130886496417966632840848232508441239407213622471646153653115993554996040310234022233442156768343534778752319361121091937642502208662707569504390153942826050113087079907378852788400988234465410861865853675945725544804572177559786594495794736690308111527254834144386221415208305283591650291355618927013180113178979073636707949562037708188861748832785679258473986517140861172805518457694646334915750318214638968240423890921457358712747652374814025883820503776619340978253904520062586011554213697650427130368243171354819401151806994957621179829121787085781248706292490419096859774781756868571351379104459183221654094410313804136721185060115157394399008045791042252305576632030924118244507837252862011015725145405586661112791808339040536392013034244165712633857049178564741426589615849651394680056719310798184876670548461327838522260090888975063637127050228352569477914048568694015632645157176268657202946194398169834404949111891788760734263433424021803109168980301107837561306345146889784531064621162622662854470727132136343307451257722364931225486635868184169610542453400950357552366497375928309561051850113324868956143121228333826908574417726122953732192677237369415023081264603771020418885090122330287321170599060454986126064324447269788651163789595267274605404374817495232024143474866951225551015397264102362143805401380024114258321520038443723787523445288193319330761909063774455668575683304049672880375337741526284015097244416349945779942776483564641113343076290765278950740576527129026680372027824908932642788129125093352076695357759556007089979137923767701500941760001177054773916802153158600362632323884830272050413474818780638662968853314852991936279186009543549677635228655078516760556510166607228746292838262051193330138560583490587315297610838149561130640617887132711558539173096039161167423494773436925984844718508504194411258910183386688533525128535647930977785844597819657785073818604559109068665279320001913775246012039825292166263337126283573454515257369400289988375344571271559673773823762123557937572679986462950581944215316123488443368658400387293373511764622048459218748589455658904918765678999850425794413229039497141297421845041143002950096083441196789576250229352072887577816619603591259243079171010439900814237838668023517896115825089392884250253587379905366557705312262488439654415364337192575722530837307955570561228429328525743029694485455546431246142198154284880137256169956912630921200903959186328343570113409725143830809283012526531797349378589107354027437802003867604113795649554884884235907136531389898996621278264838635490247941814738579270412384947901164274156378057802362027865609355039662879416568532227340396088283002556151513027631473737437032774908253498053054375839218562268749835715938757369486883774870925889320410808153847727741931279027995167107392304079045378426291961320699836493114572975978828242209796976099179262057888199424432992929788414570732570823745908240486486903052757028526402641992608434879403949446859042514970903372026352284723850669109433724787099965083083319516665632136374086400805332517293752248540987698845089991422307802756335602997455741530694975136906286607262556202769286768973423390541522565834683221546094401666007049752830528210747819442084485317579924273495708837250282982225512329666253088220147365859618205672591757104917967540371800709162656312920879552409904413413808988369500515708633321702243140469333300614114497766287483192660102202883364178056515440930560563358001079420524959878256021290640854949375902098278354937203687283097115857398822050699576702204404858009818232770008944376430699052692842381747200954625392963201176619121433150477793198088093625402988757861934773839506381333445951251536787119641621199657488101472429907604304278080317022377121431341278988494110901041351310302619603212474160248978123084313322109520799251463527356829559885482773543136582499435236910139743553564746403032853117801465661740697757357204075421840854818543998365982329910580025063690178956204991250132328217884731562706402658175085135573974547465710242929546947922602968907378713534574434616187563259280552897576857205902146822842759587952670011615991717543398638626976376995862186802454144773259907169284421144270426708584986438191361695461652038386416235539976287678982465243754793397650352332124606810738455088224689852514711328872898498517549019387744813678070780177781049460061079468622047300475139940800589723927051208536633577844230361081898217387949535206986589644967181487006483707479118457390254552562381294814815936476591981773298595449375686000077724438098495491776607017232092941524698196467731669042521313604583171232245116641433392725037308099964892268168881324857627726579416484561782387396441709792036425690572661181303311718855450398298932648736615522225287714407882284260638089777755212995944043074290278823523888750229169919004984314415889105299889299187591237326429873447062643820916699572488681325806281577611757263756475245279176157102731519685165947565350172945322071085486789447363613898372400201233089905034384351412500823368805798610361912521882019822112343455631655641950113528798983019568700698720214599106064995066819954600478843815913396706181740059302753301402612479717909051626635113920316769234192711384790884730231842848357735336075633836981638986480661497445611693904210313300657116166347910007376113016361629234579745674585445134084810060733034040179430449367589405165855907214100396600825471921815401032279097908412887933786128034881308891751105131360148114335589961777423258535757014159845797277428632881346836936695021684712708527380828237165794208661043288788356004508084927536531451670363484720302422510095214125856272304718073568585074525522685538830114231527505046566472719825524385781520849290428787431505369675891013225837478815411504783872540779272470299880127547721549065473743735665879301031382572247265711912056485107623914464283085598670606365491814027583526380757154069918200022491368152994868174590614491934983600840155414730235429079018408528330933216192969833202028370834042148258223771851754460535039291754007857673624126706871401748296664239760788209759585970800883155942922477655121871523155558354840551919833118826269283860900728176506804229314699713009236664333317371977176561049946989910099777605616752084443768092496310265280287111738613657627048053416144823632702019252703136121197799624970153182623861285934815207844380402189016914556308105784668439254735081784142089387455375500947537581753325392316637804516252068755590856713522067234819736945797189655152575997560554539400387427820592748985496614952758994080264757338234148657639452821820830495893981901068889931141753153662451601814424760048495220393645777097783131598714338009472578975456395941487750703631968627869355676168539592550748010202057324622394957807200125040113192891470869797409526909139074848717091113354652868791323360112194988311805772023615919927628965593040188112326211920387989232774007775162238884372283759166521180970444778030683472330153284568676126265975934864238441432683010473540521883760943947878520702619835500487109930597442544715514904403561170685956509966419270088658353904599182913975808763803104871520680697110052386345125928822665246710539774562317595392720270366743369080094983366566814979663114926567808889359971479876353839728997873030391579950679383340593938137151210866841223490341828911527717306408730289531298081728483706885578597985099930462810434257853493625472435801149488914681174971456660674810601198893769601162594658491364779755540678050671482433850776568619183370091580484222746646983562381099446121261060521282408962764110380817515223980751089620867559401495119267062591742617529579460416754188363123600443590930446470324727435109470294323520243264582640763073835642859509073411528304164269364702636660327428013624503594067311924148090876087365930064439116279652063580764865881402385803467159123763235224287797542312348024493112438631749279981922674118239407577731075155314475313578432083502935328925590793938710417674997843814002021537673239807577280320577556954093587066596867067684526828446151167343922145718550108809424173595914892555046526731177265646181403331004225288637676975164863210685092120398935294771807703071804337455816151118285646949180723855367862120154313065999713567667526473649375577686329913777634070949783755885374068853991407253808429657334307946378533261037090053483053069381524475479254401316645028662568935064619238756331803066048249039288079858289341267770811180975531560980786837776442575948835460095315709473404878504555047171074182979050000416505799240645011484151863564657007522566541166635070637352394871399138009261219948856807085623419691389121558157592671898448479871002224427810695017726445265908705791445284106420260828801922317442976547336236071157960265675469308961773790082937549623488536482116146043831350820583581093338888892788189725380664664733996481221441129987241231294820919346709395471185263639608619591929617084292236528213202085558656255675299440952027428728992228495601016774394562469892390056159019075601378457110453797443399020740299799352778807151291028358859620082405865034627338536730166104715303309887279378549143641637349926172491405612713326282187591006403202606466052916744006318003187684357191069455598185370772818386495845271672933520770419886536096744459142133557728510005203078455787642938577487988569355506693233806757871282069950741346273466618567161102639987408428927968880348814956310736102725981651321548737827972714093893926520801993543867931109510016651329352314610064324452414002700940946373277649206420893939132601432703615853948363809657056337191857576962510902973797640120745624343103513442428924111170779396968532848866667418477736597869608821430253285575094967853641463061991113202262117215498802316662122227278256296948929191161095724495574152911848643823422835966890214044011099779877804710796852039480224292750080811479814637322713846179921526399470980126191457810463537838758445317942650513727321108734585504069925256499996987871703215988551003633469743203245577958096817319404225011603050092200647239924314538755009912557233434613562617478494152530858576884879365388104394580944105081511799596294405598550645324982411754862264840793445274970448126618918244995694042160261588375912985401088290059336024818276400511551247439885672426662543892317331386984405037218276224034526287948995242534954160068763946489255260331566548069699742147073804738955443419313651162043513744490785695271426040383487698848077308834521226750309440387484379835526237914828958648831196932179949790379427659079433457560022108298678984224417292473219981561398304812684365308532980802098406223804001237688549814511003640424522872576116032177154354730643026510457843351004721475410654735624482330356259185510163766445941282465001202283146572024413666484615117041093103136131848027973713171092220920461888880344212982334475119395841579046521433827486967908322803282461880023205816244690535789988402528491702208532739916839580232566855957177197506874936406409593190660031951600911972628690152638635861934751405050248028810056948147207714853779103105056555049097206726614008053475746961353777372415550087382056495466747472337819177886475898956820731575077636361772495425211655771549416774564561881433660049794368541826515688602840465840720539897430225244812076160590814226747246295401725916591955278810693214320806629092558202379901738982370550170695585897018354921270823794304253635944519638901110183511080322628069443523825460642810866512973796682060502556635880426543040452836171050733910738885878951909251493135941116657235346246643204354338875511050095839093526667795860794785533453204216669999974647015391761578747590581719115915575938874169307094208793714509607615463523491916751649033691443690816252654911752845517215933866288119826833810180931266667877264990586213381912678380708046576355716181424241492966749709865946947225832356979409484632019573083855762931536443594451960364363911897628002659721539054827517964837095279417984505458266333739090697502261659951552673300334959189648045702343362358857060709916377444178255745796146420577239158040756185469121828735224075855267621506887150240544910606077750377029888443792192891479719694600693013875441442669873699352853069422511480664098004584385443932067827254173712173696652218745202149604734186847822940811700794763800384253476141289430585901932389694196197630286153507135551839461121227150165806525493845280890063991577479058070267517377373550599556705266878324790710573391766299304566836365733519411174322934145396397943418541334549601444878631351724734665414799527835714872776670754344497616476102894027355174270474207422843955196665271248668246371520575416650980812367986572226513829208069830296826047461610724165112006323430010521515415694414526929809631358938012512049318106308687490753839029837753341601007087468512704893655864633392574287636847910924370571965670925743436186734383080701763785526553109908569457663337343731586764315539857060554983850129756174461830171864540481541516507363407633689225795657593417293764972221101218935275714914408906512383366367463082961614471785260085535738211223345739238311395715539014563348286526431648250800108997334283806856007297334649116101612660196754845460871929564384527675962144331273714309152632041542466366912209103171568032125173257149119580515410615686225347142386736068270579074142400102508523350559520732439341200612418621443956528281514377316852764698313062393736838007542030733218185883094178755819724180980250390131821458459066621363171774100065879791339957102237737367212283442772771284071934450338222581413127429502594099842391157544062626771858074167865233942468647853710548090230451906526108896750437998791963849865049913569278035282621941516252481663123157689843792039698403889698204248771268596244069290079980082355572249974022419297727473589061592972076211848322383169804636724891367271141157748283619484317057431580342136047357599981444693511837710569505887832589371533465772633389157425383309361231405337071363703854064213679971788824311784901907154595068057866662176496319014126591183482648108870429993841720718296881264376528262289357410745941328361982269029936768095255223311573227443098422771657818469981209787611850149307458398088474981113883350350384713020634425539410891680927121573655818375675432493386073178866111639528638769501914414115214120732296833093893599692663183348156950095018353058438911013983788619029755174842018462438053991418191857047446146242095749088920392437331761527811822549618945442341933695155760795290605896538507416589456852890914629764859034563070736604840148153152065858054335484534400904093303911786372971845693174609257521075079975301566784619932642211362685541828998695844536697456121325668158822425733586830788914768946758057554377519305037805352500059050733307062186371905218404890003764601258816541921782897064294668388947184512233965326475625158553749136966835628826939623597187309968415306385221887743045519932234205954003071940709936405742005374986757699916283861480228130641252984796853538097439509117128690305114446678341059497131455278984732877459377505295640268751449467917555607439100467350689904454479151764289655016225589204903964913178368939764766237624617282307328280412548733544978216707554199029134177941933240369227749860033165083217375911270558659608394581274612369453511578190571197315233398507110499965634506952197490548567683669817633707758529392646904584770751394303423939100503494051082878786294396088502171490455837129506703929565440489102203263532415121822978137527189284837986548539161828575334325276935412064701091246681679618184298758196778355168219361889098349764864472319545501523174712642604196457911508840078099014192111328054901807477662824682585301362202281181160634112171452771901330891779770976188733522182682174421648542293070411785359267499141682092032079019247735338794189484885482835957426450298191710826880877021811180305792357930842836133906235447160042761944596805651665942040050179435962686092596611246406671625296543191394255544567661064144559238204420206572006252377493628353790160940890901867451227802369103561954388079062720350351666153887738852439662454159811724858769144793863834707343136740699110770187088200550282526681659167891871445348201051926555686560723380492346639337766962302067226192835068644831036193348209864976843759622223528254229481045447167679119198006687852978202727191699013866041388438966179053143575820778025486824586643621761687076104036937932970152021850793417020953840081232472937059226435661631396414765770731672295183778910284722902497250190795399201825911000562669240645362440594590705201841315874828910931471041831814867694691132128657859486737775222045445331949843754204406794226445081608503908398511036536274157567906913959110146823981798003522949222925005749018308884677778295306058813636831762307252623214314540497442652949842269594846553506550867914212542726548204806907848377108430282934715549557623703700402420877663040629688904427405322022908035555699120511453261207966184802656156198590078169598542951140228904077934092012197322694390052322727826627001618409913345054293185144517621231223718013251632398686088269206462787142456577646917027355157164051894443394828654045508542709508568272073151977194841558013826517997276821909958625877139994520368394905464371580218096871662652900492621268272289491953604086551925450964622877389926711675991926169227414231668992822153571940782625912927174386969020914796488495490947011272472688470461592904913285509369993566486765224119238342108871437735000264952595386985100392563930495566008359821601765666048423146738177541100911626617531329949290526366688432751323419976409692244476248754050294972751737016596658345831648811769921418668667194983190912462279631278091941174175450384367830466758146224569972265947869531264037915131002386159679368128704055306278210569632202586678369512167809442559585174771610978915001440902146415508351925342250000782277486408510459760242607778626185578008833267474934761934427643385922151095302066536085713090699552356334928772513104194873544954550536977654303577457659548458761936221484650561419190594587475541387577826996397608758141668683021678510774100427152621122654144061539500364839725962541671387581101516063252263765606079830756532791553721127384102276348481946874911744527494386315489724146806320276954989337648849605320721087903466934717510874459987374846170014219483700619161335362340051888106914937247407978753793259320650426775182290407757767013698130644449812529963694087939817673497603058921922591533065433507372140924288856149350058610674187262742867276240892111721840645508755272716688600193654668792813254241737319178816716794238665955240550952626054784031394380107408407695517615866079586088821708231122523854623203271535302940242611862525433811614319024332411479836961886083694270037518241734105050552722691038917113130371069924562574754921980138261547998150118839184093648307228811184069493231023634621752093541827107173835199862251680452316561162724131372289913158754064200532694440888314093785754174501771576790673101614203904928598335694635586352923244946410721015077190862797295897597956833923587435560537103987300336796039434614766692000966254876914181085867902896469756343908351762286448196650437046686072636396796887391966621926041744324437524984244986249523489718862179247289281076424583224675782360836308361260847833505937272116475433340242245029931102849202665600301729298446052007373450170610537831772526506752835878721707540703655051195430564692894744038759897585341879356257508169888034886787671725508261172535929139565628535551960304747952119400801999161887593642772825684193963974424452247644435917041481004209964267622504009496274205226494107502082888745042819907005806856543610148074801844504490410840011666900586274923144948973178221164444103749280433658396401576098463433991854284098931994002080256447426562600271776751414587369901286969173137142657345544641478444620795638730768544431332370935011125628941150227314577403959272982194131511278700710066128295495292337150356742623228138050265049970990217426010372926980948384881554234579085125172136167662619386169367803681511990504517072016388397966771733257315810197183004916490846375671045580699281783347114104384838994980858049803349512372663692984993161468147681792941233837493843178604841517315856318105720713037544221526857877811459338181841916886130051226906606741942167457441695351684307707590640600397910689847787904327772808836751167488825000565605094268034642293125762124596416668483180105122544691057017277986348947011004331461245978859201202123464764287763115239446821304991713133871140375536993812452077787995554467661573050362146351928395782890160749339993904054121065512188748802651216306427861028073038401484685635856682612969986317480357991100421955011749966019090456732587066679232465881866101361882688950923328784429997215390084351366168110251586357559452615558927486668770691644606397178870049060564139703396339240348977916226253611309193876046477514419371541900619724366786713602896130547593728971313858852097752413107298525785551210104881569124581104160064311415687472790688070108615319462523204332888104070753205401328381674562644703172191186058595905381558373541021379153463544425613840783222404083943091058048274824183177031584931876972638651107913192897539615914033557372998214809218063743565502562949316730258731554101610500272832298448037415250869649019315301306303169263270992052620549264360788371188564781354390077405695105099889836004513924834694917096207750931920210136241597176795711141040562929054547685362070657120408380536016324175860110925603254808944165925737108767256396171952248685888175582100523309822245862869780311288411489145084197816755291136672480251901399928318380471921576075777320219781691744813929553901981400703369112882471120191900384955310203227720427400721486718845517204770976484759559481180994473042577689146287240705892811388692120053123359960450472880596991397470720027882753211781990358783305725393761855621813937619030700842482155914385709896860493836374307339477205253009919250804283593418370638720905053220763915632339750387420119554703702621425606738481884124341342807722886581777473158807543058009742111520993603139463115368949491080476216364299836930330765607025460035024338494059604962817743293966411566545564955407399842610289450427793305735228426222540686548620283031507513497628602579572560202056209547814710091739766918684291809515331419647539857858137490341537456711354389007000631290676445359293746026275382923263808983672365545867533069726640787689765780314534520260971688523537273570575158592903424901551231779279789121730742393811019784571570255545832064417539069562452788321355991760781803748206743110160811257713524167769982999196120704580356943682248558166594223377828191253395886767024958916617710821714545530155364668546354127362073334880861326569105205125725761548873817349867628348367433474357514246230616490355890156501639076267577770644043008394807569382089489108318660685773214341698026448900146882352045927756325283877710883007084236204705420754969579833384070810772400968597161086276790937028885567533337977659749345665666118370059858606330664504795762637726883827664541962168098749721765748509844362602349718203159950316761914171389381409877084818396397388034022951126022827040995165063707002032410230405640223373016337977674688713327471801263071738136768164046630525540538306658421506152592009701212260336694730959469894460495037496332387453492100573745480186178519239835357970881596369805857063271042645234354483411799356689480905355649760316329594359848859063080712567213466264147902587996439922065501157918756772017388235335674974366168679826384129977897644977728203634685798934119925352985838307157176978468101487585825143647785279379855016003829756881284256662157004903738362025785471836253155835219506141658329295466638661622472072254837059670093242279741326395809871693436909441510349639215672049476736044266032568697630169582847775202577882969577452136362630407131239704170562965581152007301728123852120812005426295129904526895982244478470971773725548363268845988522122721074449544961841319226486605737648777238229266447221670188002591316375836149145416119989165708511093066777220181525703764098215099690586913843804952843088816340903998794804667975661816438768038570483948989446960171465374155138484405892691959988927602620481118260797151297586125551300661054615372490525971393688068292750031207516566413022489874842873907134955196297420962838138018601181661318988956525810836380891826557848313079696123812523468287025030403506781644061541523221641491603151535996435422249824152953191889488578701987388791664888557382452054362445729227591929218551798452510945846338049101331688081200449645747157282176785774866811912428150644379188564908988574373563257930755786166827989016535629508547210607380077349314141732599740280407984757840011119347134864848184390086314755200422361408001159291356828593792126168996231784884338626084639795782352904778877615124703886829941364455937208583888357791140676207378744924604471049897082348409148003241500346488247316304355594863464678828711163490176909837611785630933937886172025772709070286624901423627885883230264775640016224308671448434437627657475771501719034479454463675550561901498551415805578001075293755466621888131380359967038204761697955109596708726142923465849873391285795062585072495133778287335488209320468877726817171997210492201430291143843865476452526901974236089034479232886772106872211417687609882362912446953961963587230252533327651970077991777736561400889784328787411784455396003388504709898184504123990600093014432428246619086162035565221668074125591340960690334457856225537304910723608215608667243965660989374085974003950906227311032757254446249394562951805085355605413615806066917454964249311961456776774444469613853093612066897667488583986884990848899610365582176779015260396669380156954580041920544261265649949899662999009107135523094830401963586125418923903397490862738481299949741528909020268814349336661299932320469750346523996691344705202941822088876156497189159596762512795899067353502189805889815785701658087258464495374598456686004245081066834714848055690855572730189470027903944570753898744193964412395744778831228030972900552927153076482191441614771774826028758863099550906321826301311327633801364660122220607590994857428704704888612190426049267532533489234996304654241880869001371680066974070611816875151359264900664253859629950698254225381562585616452726039664746466238524847026831343738790005474328750633671397893265920527874793139512839504217913996266920354620879294721441566753102261904515760381244348749427628934569807182706121838115619331755749227305104794849063358142440297634328796803131837968140224726101785634641688258569527001260127643233178058250456221129858006368525174823608600418780212469734886463749803637916214348553554679915999481543695717394340415155222019388175701537068594368368378438222672476303030370007689303678887235824351086417013794067238430974799606991313240837173463233410177255487700491838261544958587591649747882213519211652765953199986790635124184927830873757050255658072500672919206787112378323054482519649300302041989880813753839009569224705472945794572942235824727836548746489143550170179257497379781597309608660027408501281918532254698603162957133200190500986563981361799044202611343036207934892646076507894438624157393514050295988128731690811575826012535074052725685691768465988831311443659156004756588564767592886840741462194379714779529871782328952797581299464393399509690910944915063065795990866949513375782450667625508850172920028424957997261474311528698640801695793339259348027675248269096280776410926403158879954473413840009192585363056120276625694720464730453586233160426241458600479161039913468042745488990616759695894951520970189669214637690791625601972182573942262154362367675545865795179735522159481127165322670376842570280504598841011010377613669488581410343863511414298267797426036379124446765326058589471700392693163738543265885972053778328425489511352604989740004963069621968663231739272007634573286181763512030660568084157491214300604775931035802929772130382711318033872498096380021552640666076862886273214785486682910434267013800113307562721347902076257329900825263918872373810703808312555462667159936478321485773953533186243348640087370395196018311682517848860103295235398563300416149074176157767681078604530444718190688160088615486918633786428271613828493972346636420625065912916671903054855767509860807156958927439101419892139291656219428326205062565974340384856330026290402789084932327138483604809859840191093781517856321368088102094580634479765988580629387775399178692259596125404453895887754811788326729279091018575603476703977083302999771337261376130988271521215194901192710008573028945513703715939818804319521648353422007543694910125118291442405999980303555591283842054418001195276166170794349680317602939870793107290912099725591559645056999011090181893408523886731286660239072093268485727573996860935464334669151485218482705465404331107790481290516022068147539274206654064629879831020929868292153238638822038636065757645916689327759259095012631776575846977418203446001532708280427131817181274301820658717681335731715556578804142009449067575464016070462244663285636991851890455317262687245460837255559101515870070983929618211551975020623516317884345950005519121497118387588819720975666139298227581017450724223527636553764393628128063914667307007996597871896021946149122374731579652047891558654711433226244672883785964479429154553187034029434891391494538999300527933259772910267119809006460996275504236648103753673436383982761363400804803766814766076661185548881617915860596384971390940906030582619526874915266733935368900542387072445972253724306628460462108447199798122897328859373025428207330363609838303799385421850014433071872451452503393710226738101590301039176953376429425179666932306027409581623090619203252098576046133838348477742386622724319823756028510982338446964742526496069959848442252270209210669951422384872182747697193121226603494245404538345930011514608540153669548302748821687818160953985229347356708560884263418862437587686207477196961572582803410465676089578503977116679048432559732609846371426011185798693223144579698533161752705236684515395148575567620620328900686580636422306454062590544392672274124198325454446098324706104883890474981072661369340244886537879757735783331444055452974449846994950103841544260304256926875171510798425681394726330583706300601452610689850617755566405527499595239228794859976267100718470391167467289389989201964555603766049072179392139121950666251053706541093954343981871833620726196998067262358658978629518446112458832217438394542395461563248632697955591485917725501264886287959536912907659227872542917519756673007490801712437131748227645000032654461564860024515401580677931578413855500309894279726798226734562533756242943072842557717916249430158660045241167429652669900332435178167185495182832529187268265279719616051052967411169170449020695683747648642874428239626558349692053992531698195248608956149179974761179883092187221699796422310687540694839199204634456084678009219836757144261324330697118002024736053250374330442492615598893854722793025998631194904563882790645332815054598897968215573717489043638038879793008340607076478942609445122840645315303303835837542613143886262638563553753644512330872734363348820156087280766921380914860442288511631926539292584872290401045238503220894939524964540701837133151371793650671750984534309445901297750259060186044832108484392636092282398303013971070361308793309819397225575751134625425628553585139475994024578093369856524050820963926072935436066065493060280069125364063689455223706667541351816740042527345834242529395185224563676725475835451318959973575385766990758951990942982520358878791623707448776033928886801884917161606218380832810459621664588441368805128241027309120607362907777453716610304769861482072212999106114928261582253136377987589535150913973085313540877002307949256982346579597529070306870986868115861458910341107086700306917627397133234481292737109411000119597728545875498789599851244755720048815567519113795562347371092371384217275313345915095509928471184844335123174630926341391405122562139866995549577426052445323584033174154051683864075602374062777445886110572649494046031508263455168074524619469945042436669319869433728125082947912794603672937211731558158645037180848681154246358989787751287357526796627833990572346491347516985204758622549431297570083986754698380958248731282011752989035948423288528029326823563040932779416691334083041085071491497721935643807747821769037770775803567978803728058537701472979087008406895459545665181457871440968347100970392380963579831375124123791975673616446295174144295499894458795780463987236782353556025491209095699065425899436822516831133544567261048630890948927122283784206201521209379155401882511618839443248155223879730750663659984170448633836779313796214955405647024360747511291253602036334662442723310206954627066680755412050285180833194201497638868571423645723942762876810173247216160515176436426905268222329411526507113151590895305570035556279640793422185016500081191665146475646380875907871175670727118274961016407770910532748391163253350983166217977220756542201919730464730508882507759042226759658849472577098500247976925141620274092478478305171723907986113201917960506871482459053077962622792386799982617048052798513237010621558373085231298815122058918139488901870854028108530020696354170027927978247953421380357843438785009679936415451591959444821919938073512399181151747709659996931829466710399101213969174605200673427292802162956504689379414748209031016891368860778353852602106139288603904075948590345331222680266154841503919517142779578697189802196466561022654665543390136795494934310175349172429857319699360716966424536474928514429946046579683197482477328844660672503695728061042067570651097154182571228870996249716348898765616484083871230852532804140734403965401748664756517839258247045273733956194045052859593330402401885439792562845810873646076073101066428456049351534873043220837383796524781144363877146337900719625479846661600188090573853327164913219873007405016423311975666141463330896066738082510650300062522959350308440758728981960825797461126262742336480879055926981932439029206932025630370399568285924153227214483585233917387644405640187283601358798784687241892434054263335920876823517742389579797831489084628456857110287127899930710460339951552094833863935931945275417669563466616092111250174027892548259470934175607524923334570545530034039825182382650659594042091746147058491056440122406321977495509970396454728895703470556563573119778696160257284761418230078756181117768459929855038654438295739584993686590753903125396657131801532081389725366560969830434070210642517918972513239979410981750190074281584017972795459618917429736524479814119641963446468034408306633671817666491455766079416696103105116362076422644520946994877714905307423394862313173265727217518954955048582936988572055655464224161108299002911290808882974937956642211025134479778652527123096521415672478941669805121291313891434091401399605452993903220145589218921563429287761141685280699108930851179728712966205392466306256727629924183561027492214056805977316024079809834437881397576558807721783470342588338571782395335879333903248446028348587570687217964870492533583911938856009332819905257008252451791509908329968755539344622360000354415260310213390579988029237843777265066778432525274930962037868651235260837182243399884822652007672261070734941236116683090413886377682009882621503793252558424689429091960463668542107195452480388344792089878543135708837300482006268038928755130656824837040478618176813180523679704786913737120901523520444607499915104507203370327294953570917732890777933401944923388004883298488043955354017038125082178603567444364579996364318524902620094613223845604759594933017358928365014432085226400504958105531987159522411798397164011099773430491852906415169616686396273944967429467641664405335597675698812921645872667690756793546735220645689261718155066887947799562373478557506740513079069475511518111624333356877972351506583446327467838704281086949185632811318000511713791803170964415908237163471865011496716212286132471584197392275514149049028370377790526596860631849167986271853383826568709070626953557373816891027497736264284990695670745157328557978401358610668696148572945836797314968512943294871994266766122220895357839281296756578591855479257257655805531745656057829069490717911325222177640199831091140316777230729560123692280805081131123527228290076213899779485789259088949100211314012496419063550764021594758940786570983983701454518400253883051766068964358818490106465843437053651445920201125094297303546850882362879704873173630233760524137623212718541519314947492142518965249021076419124337324831247432614883957548973663822156050238692128827684764801651670515091333734229186082454145561421514338194768222132341890569120369858708914992674805981349961288690043811085447866775664386076984328619538841984666547486279511725970024292964825441936474361588109465322756743016272833700672865829263071423055568088248161733430917923647034343654111807813101564010202676771366395458309427472379807723942650728353492855186713956917225033738548872791377233521742026886103190234915424616107469411894188411286944968033198069012148034804939978923820359429799015627402096810284239065422069354208500674650768413902491790637923096450723553672567510979868881870919884043892359046795675832137465527290247417757324001275183109769877903096805967814638314437963581717573711044146669668590589927169721781674343982264211568295653656125174660055407431477686776261972093243556870278152284062533800640057479020091669538525353422387934110264897824675990783210517514828247487900862263773037648083091634934829747105507043906447616023931404627542325744947180641951254364989923706220336009198079170657344943871176367357265257292397594446710658082777001210535838887029651117401608965459789640059352518254042397242739570002796199859529400743135486455876617819880597669360027261236818826113152700145899884162367474777038640594494228253449656229442212738897123321209539584446562941261030895654340140558167902854014486897229547234352487563902147999266569093139335654836737669511772313975858716017530090319573701811406196120984039188287106751127490356592516780182285921452316270659387790155274710361973188368044919266240846963514444426625979027013706886980783191228278747658838155559114282830690669582156348732110062882853536775109847160190629324911244290853018487544731202077514562819918507086028542044744553600225074833301811419044711742714119061116914353115720289473036072473689031201962280480381189134687937331060073225305102104793864725046121684279883002256905935933367741258148387610951806395257814588892717706156332884756904286889095162314113087434638892546056339182761706830186151386599215934398387902702577789258162949139653249289704794133219033716326059249255342411741305569811655042489491186016471832836363398031395383316296988702904368797894340242825289479833962459696072294570642785422071336778615627303027317385472429598824126085523596414012670395968641201895893186547225870483057949036735896983709131755713468400717486926140874976583295560988572689354578809989383195286813478664101675991010105633462137218336356100870290789858543454959798087905864411362711699676641643203938022839806861614523475772170566717367238196864227429511821625530243923772955552545105076387610606110915054373247002351831876734514155298701352592946211774640709250770704717893390089857309205925950114331913707893839144452976986120309493922865308140661240960403570540505559198086807949418440453138506329866765109497101101622955536320047902428901138372808893822509385357581672584858695318788306867177354738593658072982978082868119691295485139961300306191701332341908426754867059400132531966088580037321977912306504710572887301109086063134851014139302068980418447700449252508341279021882251638949739875827761841718696547203889977217179287285390556180497629160393356870202279049348639696720349433058540259880465793057279889156899494378231875661957137012172458304062186180264898846515010911942894077402006739953673759781366544591041567108605425894552750029904974139091839751825030579175631383321268599559801689429216532956240862319499257407766566040242046557817300960410419567187887081333803165651665330649981375856638116012380161852166028653716838802054006865780656318825417331092874497995038472620544581985272999644841346727479414847192732760545196015451614693068855770369212208020949413751108267332509438060933531253974198034230037345755404766541963074415892518227060109177247723271766144908594241257577781186364297793218586661834181442472977152827988857512784233706004658788704366299714896689614952481405053493423208678388722909970264692752934852529401890341049459379501360039913936218613820602927597555809259022247908357829732083812301909678383402859047438740347507539275574254154034295204874226836844967985721340158924038706423353042692624275286819116516388163152872162405814810444532991829210470480133948148086770950111426838015609065705380743522850908709737604123653862508156222398202597255076399499536866595283173633446092992126130704102093853936929961246932509131132179255224195542715735683561901075589827175063694823216056335558430401955888014485431487643806643532367853493044597487487764884021577186276170088314579273926635309655300555729775535709193300136696547519943224483589212169913662444072017363314948804630356519281344376316191451004196702589679907857105682742978568670571028759743582963318687068708267407810000122172076018079534656192891750320034169344680501365417273122159358175493989524202058945174725474755945805930964519481061908304553121773939677815075798448099941120270787308763064951619614048434389603877992838468296437791100094212403663128546101771886004646643048158410545475075260977801058679125240371325842780619641462349075551132646920444861435464983548174843951974943965187394608380875748512303688707173031773635211839067548863507723382338296622872957353134325834954265895184852580744271003192810004822507173105760942414328745994095886395422585672433251681314043956260662305042516007190779371766490993819166580761582695492834555493814057944268460611318997184211316822264075524451428542786839066350590542886666427977109665987783400585671496421083360976879175674446367182452085085957834430961527687515842978497859774603337988303523950666418122252670234026551569740146234620178724738919704880934707324820519932124827097894850068228535807872794617519780469704224506562606008059247562818408553291195939203478373545673101022812483379306011791028760692378762939673426923282899592114011977660867824857802538033472606665180098936367286136778241237550094270362600630532954155471974953669037152472619936260854344079584770675939321515479380780097325254105379303649173960870839479594267972152400914580417733552085732023452614537336234241820585760302576739586074095555866751718800939130751802836650523348629746695200516992917087499813585706473462459427075602313863167380760320410867264844983003140144420275998286185016606777855248412248721080548398290631304078593229110829325569269304650997114344975337301528797112163891182771922841304968254764885227749286363289333005582516193730066965697072699154635202360950253397550689904447887439009264999507863223765991203007910580200747382029651801726901396873020786482315631281938982730569002422498515558244902850011049868610193853418680185686267198992495168230090071878058071624084931813959885936481532933729365895942549357111745504640069826081521185906841412553597315299527115418049667958894943150088041951200601285798360970365882295133925801285021459722899517671140826109811050365496016100217394948727366178236529618694394928723585617231744722956569004213051570313040033958755710311568046360962048639993777557133427150115583413467795377096421145435539038556378614264899833454052019781037043447059234872342696233251616569311454363322542159463436688573324280378694623597532607610971756826071421921860809786968456052637827549688468170604593775049230667804221096431228283437514042676472536171400635587317502266981986671215459853057379845595278575393924687678851873195379418148332899495848384538807109062610344438370169261859371372976619803845804709255291149012494117930608531273703914834624145657364413763114225121585309404464824001125243913308066063673628868345271733983046610619637088358702838120700415978092456730066252790049922997287702012093805883915580789368975591386196759690571379430788579414540834088127460032552138352848701751754305323477670775426822365206031483689916160647071200198194340102321847047520806030778119487709297589803562140047829617090087986302690843851542584358262287055954274914049024692473773782640995975081756580662674890477122924416490333403616352438240490066892860775259462940477452635318047245949587290666337796089933718487416256558957534804587721215690671702410657912226881778476955511489317070901536798638368519961332216282267136379355142551641693956607783413564429568944105930678982826164131492628827676740382337032398282342195141950157843835091938957089092853120130134309205628400707375273148425354483107954697795359445044830779978532163652690725857374348471192169106329211030122611033721450959405975142200481397080165703299803767690861132291215294945916125736137570879640255980721380004706395516772360531739224980896777045263443196727871209286899111744496210606834243593209612339509647387861635027561693259024607750747213461238832064121660864953353438879770566228503051186654283627935997190295364665593233276526416961456691672833722030487202019380035375102093498018261771443857948564612333235357754691129164240795688494610771288185636633336902827791742945229547598749562662661388159015918973233471235521643516820926645018237051934941210478720387985433481041780441684050788265802025180863891605581437623933342535780685753189787669198798493142430051661514885133948359944373674239511690056188605995381792760376511803642924564802440070537770024722420391111649381362694816369191565838988491576527818084534354480163110996924164943872933670810285649640951796297708736089646394768181553821105419381184801883206101107704483450491732980782180971041042585126000133290549269817078376618058802364816106234250775393071238084161664581513690632624613763741385026706101320123773535861825364307925039489174301918554330144495788965193816236028386184995207607278451483357997803921893155759958418225010203675228278689660888997269629995306391111790070586036693446030816326820558148742663917733958593225496108182940876051268847902019824645280788856918833424102122853295755648538684022481709323130384282490539190286763197548410396995570664550502035787761779257863504563324464475783037895189943528166477555196194468820051154549597004563834412913594488880582795573170801643489673454506592935378453583354536832742388765722776860705310405753427670478591599339967303526575163121592649080483230544714880223217505414094109614300171277646285063661400336162437459012038323270183711943789694945599224824367942004541874492723691070085238527528256787613605193783420343031088071359118118770155457707600666388371286405966397512938398417663299451579754500424819463994457602508154029773698116676458191235504444869026529994059789895403981568887962150283897504236560969618951975572060622277690243182802146457263913443278528945753079667020975326008189408087959988454921639725713744134700906550478521963096121805146892441318034345607091504651344019758717187133314228263781210940552260607614685854175587731323407883840596647826842627927991295559807932391442660841851035148667702341930086802328029525243732298332210511426824880871552390518720544344461537283952919062240623222185370936276801783510446447326246484640915415591547635830647231684489660697065360259782995964752734216106238524319626798678636097938519418475145707046530930403052439621466645984806606013072967178694892028944856896886014513098834389024265869269432852908162849572121636177640645119028939450634742698482088361693301225543065205918013758422641647412572310497905957084862682087260814096591065302202758123600406731297735088429353779396919750855909048084219292585391744876608438249766450161170775708322391199045780164689675170609786688496977025777754558448111765963415662279926933844329421996639484786633415965738291750226307671771003668463462312188845992874817573667715715118949402236162873898685452004326136737195435262503982813397586563871799231581257586755924575626559706988090535737863907640644127199977023654295359307875259338409407153866729361326580313515914878727578543695682508828302510513152994015186176944994729297899635518647666800714018506219163176473658240924194934078588557143910280423928874342393292086763067973930195595273252273468627952696941666559283078845331637351596381472520425087953822018272417832920424041560945063312826306901232996731134242807967244854122697381303222133869462246274571560015652344451764113839837499802755722933205714387738316869926439581891521835111353665613606552253874530975547142020142582235435585066497196734035150594034773417052920568555430420744855692174389480730783638786501104643076058691988325110990958997535753558002985963356936270143188572356515672607308806087329263057525643314913358642798444831065053989089455024132854038970488031377462099080579811689363292805266562989860237823387979972265712614580014606952356422044945562453272895318276319342971877068515827841012512967205525379784780147063739501799888306088004726683952760746736627504356553651301386179097677049961811817773958192201766726326375247478441271412746678718459025600907950889971840768088815286474537132896013858512702063184451800887201718792883650639964849888097409434219119010519336172952437832546638250577824987277476469347126446282272365277975064433939583617949465148514950018505637658278591831364661142171914466743228430345965097932938165093862268096894237461779282337318079779487699996029581508732428306551162108282195089620525325605221249273091612261306489166045277400358198186354783893252664788794990632959441309700699339821814789074083072537816803179042584878101565724946858917813380727558355703216202021951783046500257781432513872091108237042343514965587439271634617172191646859911281833307115683884920092605252013164667924388576187377846618972753760344693005048286807503351784116586501532415503172474570141678749992702485016604162934210733231471389275743917106165840466301386221626218608015168899916420897338628058181201939486467259106465697044333377604265910869842490160392003670238569132984381837215237607361559166210664073805748960404264934641450409870183407080646799120866524923685007772957585821247958311559439293610301945600487065188692676654297462454217326102085561910838017751348177217550477479418537945624972855030948419228492420475977635016435601207355679658245450374280506170808247907071964629812669128585752786521047492664890846985136804404046180809097044369458471149340126539466756448709033968813339476944429348226992426958697162294722217544199050817638789800119243482988064951705631263017156704996361866187993535258518586988605117157312986721841314289104881591349337370812648154237265821721303635430208644086349866499174128133914028589865237777213663914190554257787551756793333482161786687142209598772058768729056411141661912863323052431149803944740878159270591001783910079912695950088632420181128701325189683209124513153885877430423357281328247601390391667659087187720617972601966389906709472525868490519532000796786466022220845670492477146054281207524980707728268466879906818096064226684287894861558541704425441266639979465014795740720892773107646984033710172117823434087407226212137557060124514576278541064773855695941239796495731160799878603929326712190460137059797895761583315844689647286004452722203454930663658577931804347728738198182115405098335428329516508441043888385643291183438973162512493289147687521594939434247397334527934868065825501053561651228398247174678164045196389993449716309024789780884451968543460453092499132959675051785689899598656126555375717253961722488386736737838116392997429553099954077183769981525144987049672003104204503566958973004637945010135787642639225542255786432358502808308522321819432338850597874505714506447327881549868083675089442278587617111532287813964991915304241189766650617731962152196272705037571714444396844900004724529231702903688645985996410795895629648794621279720609411995621944686100560952896377583807061514945658258207385774733865660609134841483117228846003209349545669711616888100476143553895766345533796588560996439759635728495356417802295267649702781352360425823459084568182032159786464926138868731918628285332728288884419375509250904887288477535050627134794835665109550814142571349806287911130128711441758246346633766947786179077425674965453145504531619008642053276829405880202253129704801423392706187690297778461844168337062204251086070381768017760314491226227821119391333011075715494034576766244405644626237054947033057596411978597306119781605526520575752061707949045890445446527244457860929413800971937003262416812737077344030703949469657979466825506830704801233189877786322115377434082004979527293171462356062766123192546017754607592561569777112200672455209383871757386068243899173466179031699217117257601035764225723149851509398300965642343574257473326947769210713535433396373929339901571816410197049014885822373682039570836119094605012731607864761153944698096678082252975485253354324400459116825305230089188128069722019734896015522333477121192315444540195416301796587376077672137892479280293781068385302485575105970767853901090782602606216974655754621350343874860951728465940652936117429501380337900780463128289948636191515545644109778293330987154360229982632643746383956179866137874528324043887135713543296648320479113432010746795086651302915702269060175641120609433888254971211665472695749137534341682479648677227566679529629175918522666542517139180769856525896339858452121299030668648578370841278670848419433603296676959278311883296589465364102580891042509298182438782724329863748755570208495174751576255381213031271432930041681407790749416712474937503019202571870887445480012963546549943277454714533464978654948415551097341507317542191738703469653080591685496928418943553820927678282342430605657708558038694565629518640351004046474068238007774549455569283584737045986582603544586338413127841812261955614465503162647816573389207371745136271439953184421431165822154635468020356362612475606196600421676262998256438571123059187527919836626853663858271862724384181019432279162478078809807897047653693975123311224276164386237858331676257911417427448461999741307531615504342719621323161702482534984069143598816270670016554660281238235078909677910799454907982782042204251094854852329495652385138529934842568731864723584682830855338130066726283038770752895363928896385181297906966795692141160578943512676975782059071221148233121036283866925100944529795128566838061172106089833416388383657776503355804739370266330217744807418173708086618059173029753779130732760517026381536258252593255222552445360751128840930498016895377314238731603344636152480948266875306876971472984583967979534903162919948053507484219707096049817053943093238958186009285653460446105852761877801312856092440119004731563700510496087204932730885908241575458199147254933842327247398606365040867001984252373174353896085597821416231203275833432513680786287083825422204307732673522340689482170556706604809441941751101583986061181136578724421687707849156924550196232134787197271563982857394833432418675454293865037334358949939725858822766151246847456800544759023856954043042252346429823637916682160934455574721243395219600462232333379892204868511416005005323269149419275449833817596288462203413484220685172020921219186816120549659682466389113645505739111195534207967408377531450096774288589270256818770029890961504674093240745296453088295019846822446470441523652961090511018554997559566406397529692808639375228183349040436501815431338774300293041113429008932221421593795399441804668252837066082690020278884981054493626545507242700244602944277750755627220756107761493904221612302965598260458203769195906168359715053204293322924884188491495912090470203286330926619017111451836772461409903062031428669643424689375608223623815259155509906050721743516581706292074922997977812356219270626711823126731464772748205599652767215634920614322556705962501524647207990441502911277106982578447431543930842392390590002245178479254899318903350095217121302986946614986872499638601088496209388269651827454923684126804524994324740008756045656008008504308372536708253274684008597552514240510519413701772594539620180349066489280233520699047611535901366771074184650251573758188162737396174891598376715084039677965444333633905969977275145406681066279911056142513575726223015244251824474396661000018658275247504951325988840546013348508729140467504129473712879822871590454826293178459716014294975313867100042157369235512293910758714407550543925596893926801883588029443713119810557121454035821308652925878728197095037632829557113848795950690606674415650522205531969524220423388660338967950095327844835818463305439102112284897187521357940096664824021060930975230777680408387647462661039531452813493238449052266631514240020035030271124365245273825943001970071137144929323086651100607941696894252272381757244601860749782808622994455658931898134695115805358603985628371434687296563470469375198549742669624916620990650311157241877993476592538380973658494324000399626284571942717696680510644959669914435927148564436137614013852230746765651707811071224775976992292562048890988565645048695951199003523626307885237199647322364753856368409624894174414077079510353506593698788692872636564989270466027514163228619020238858853077884799752449157554413713997955219680373407616601683067911457544223314443511029085719245047866981757153316145919760016572883011599825701330722776121863883888745219310661038672444220837107186468717172241661227929099477347396003683559107382343790361067684234164935957653267747577261492584811622467829182554695203854396564279987241997546409967947598566034093524349672520142802679319541195175323585568643902055189748865862665232462858182304740063111550593588349470806640568085525207788931935531557487074567781820487451752987180458987581721652715846231009078093248590249667380950032085682382327581350143949169918405828904690301911605240188057196429004458579038699939556207428703724637639675346116378600157903296696617004234756583732111302790672063819026942782063035524308351535802321367743176681489096294351793036375342795265752795053920844481680933030273284845665018545997227877639990789165451111592163312331674001004978114317194446788061522561039128572031884651375706683818144203902835159032088774995580939051688479090978658060197416788940333055974287404554415213182996656219496595018226878520835034495739480526685276340083434831728992563902197804877151309828035263666428336010326087887629504510333895405095799453598297037483971850579987245975057106207329444429704110582088148835589833041457151496857816617698842709561617990816128455615989211207556892007684019217414399873114911107877455737228548276195025294613027003501946767414371252968161061976442304127549175959629588842998329102051678578469066265424521795718201106287392675725302492727474876623732709048018802340886618973461097438672160829924050743735317901383344417638809940333094900429843919694141832067417542158251460246075855687566020471917400051732372846876968189873535501705266296902698433132395962405249057981817295904548269686854948665107358946130898660413855160714970907324325558332672801957400789159631515180483505940929165283709305788012490521688295556883238686075058834146724042144958082818337996166366485696767255669641058391718360219230156977618722879836689324616153902354840086766877242660653302063723779678900627253192555488011857851846901778228402842226891432983745255622628349078101175277489224651050020590353039066593864252615607825199965097830016712117330427770645499875636464190457933095443767656406015450412682811475648992963480146204956041824931210599871455866688240590851630651889004685517571983076702898164311373951402819948379188857228755254439149255671439511012669416082274751800765650935242971921508825215645952112621230006689748154834528676901722979184944627753603000821726633185389853488534001310548727585283648866883893808151472996920923054653101354022941021565852785035003692850753947368391293783374875832306893693068160105972275773474068050784238355825663542265329327991580540657835071417551042575253829106708466307682984190596764205331986906796621957527588953309814143381823914206516270801802220070185871957971478412079787920827017731958427349592745536896045024082453574976160944098718780081700993348246193022527640669326785919040638933776170058157987070744392906693907389962593367598665263070931117073053553325491650203859961685683961406321312516106655953310039281934242599832432883979605800772076389598551491288330346660304094931375099523710934599367658460750028097486448560421993679819195140638612344154025310097924050131392325113338029189079509909080393758654442444912196053029208386897302197185189166839459975345800873774743634599172051722267665887533236962598898901160866061447734872917415823370392015065047658701698270588622794988944019604513585992064586207694727779794083994179119939859508090773910018203961649153773530689885131012454179809036819932010233967485343420102699224081592416293558347093875640984677412124275752855998173321726927168064910544822427847077416832628705480091455495581817788982103135767985809466367352913615017208738427265762439648024365545711641270104907824094213440872462147924089222676087776539905646963623535331718449679132247153425454497023871186741494648487354635481823024591898784408942562445783072059114888113815063934445973544752795312572347267157995939454823997919355952553250372798202995400021292241725886474758864617211518777725211910235609590577983065946503465307990309218411614635585904510214758984032288962910031703702936134410051305488097693792087839349403916312164475175819486642971747667389243917429380335502103934779507735537640712363289098044794269353063903774314999870417918836453863007240392422439219294462396856785755176798589897812439322327247026036798946490972551027680011583357842623474751689066420778290334762999393802549889739407838947082251866863555079734153749136710331986995041759283107894338284768629224615939183610309482488674000745074778258008370159995425462685264782061630280305918951627437094447428718657286404737143230820416023820773416590281303406427657027580783684850299171307171008211941297097003374713802372799936195241238506203974970406988131597132803659281268668371510289561756183409056075154755651344940901853267923090569765362779884898190802510148997814693074084935993155329221114404222596810482067414692221664691315196460867633623589645535799832594344244199376875878809283172111548510471364431547242447626628318498557463313225035981412661499540670281334815167790277908109601722711821283896245177884108804813007173058308716411682739573047358950362291485687420607291209029293845179597921662912052752867576552316808742903138312341704597857969411654787818877671225706028322351489064553196730040940402963969450923560570007976081196681802973973934317397167768291124222229897355617090196905050062050485648751018185672819339938389704379880314482153814689143683943296533149499047040923940588469851829181740775738655359785213418544690204174839543082624777693396128472710956950164516891204005370050236700154604299683153176688111664679377983958322788400984086529442222326310159725204131027743662588682498108950260622929848254164764761563121674862135003288143687656023024120504881753236695058665158724901520641485249528446897452284943165915815560567207590515155328691899619640232368105456414520045414405302400182951659493702652345212214797207874505125559282692229896776542380732383435829171140180977163666508550094360012600618949829389409104030240385198289261246174811267101586906737736473836547438215266795625750934772048133560964264977934441492246253754185836333581750643943445482230213798250220309875952840665390863533970249118197197060050550789765105514432599159996455796946362730690157825507740299793284123434598670000760846236804113246904489308748821973994555327770397750247911454072947080576756748481812087596505889564072998675505874628214883507477846347379241245374127129939978704665141433096215330090152656382807300830339261136136248620688798140444324226472153343346107671352731999974091907701394300187326912104674010463431461935742381830646228787633654770440197464559296918885488375119962379630460810050007983181444702697726579592088692218276265824521286369511625264643971739944981607552346418811065515944608991545098882659194874750398838605801682202788561051195463569057878270551939728917999685368642470703377541955096004281170661019944251312546243493882419313432481705804603277345661851144511050501651917737604977602259572658641626399505508139342009051625526106409443919953181136820060569047387939555155882502231292526600088184862735746213611209445188628208569284748971377055880193204044559463284850235970231142312218164694618289481547582456598427887192556126335525896543751759551822946948186045287138804810339674139656662423427808367559307841361459074372306604770807296513906607535894170263454819164770491872401546268970631530172971900298860644605357183160896239770110638605242966921977191610928074356528534265141776625237009596696376491016676716188549657495298549421389005601052204984262362395284523567077704170155343219628073434212581363268240079682902271031614168708902913105940627775979993353145738571988017049672992296279639003448370144862300115702827398544429575577256689284892432705494801819243609227600036407862785129372314321364999322773812770168364615602739484715405953925525813640501440037417917172149405513164959302463408254352330404958562162336634190764406907990249353509376972169228153820154061384798465299565384804804408313513577343939823907453602422285773735116368697081274464544180163870556758692845158388797939357982265459347431351010413866153662371553829039096631574374164276901970198771302197597846660415095281289669778283147434972954027278176276333427342877462685290429793478528926223350888907388728602733448630338347593201164906939010306509604888204497219383696432821120881339727395928156520460803108755936080386522349156707284867094222022568104767104309775867061577607665923006023964117426527952558394046427116083782795251733897848408719836325793442890234835485799491243818753717750971896377813546667680846468334002944104855738012477318778215898258944698926230473373630365252847824427128638621429630191077171037878751837770835072991933362539669712664298070161182756125737445962525159810574732192009238999933765449193570857916400812637029161216937764527566181486310260561995314702660493913345925870292187326682274770237508172826884516573215333356248493595131736803372049234168993179084254098113696487772709081612219406280535599173438059282162933033294608232545296799713829348592834940293582476374236640339602663321387403474592898194931994398087705310414598844857589544514626354636510813880307540609075754130625853046471844788001504649102095695855904045769051321235772976358537506429267847967892571964297922038360102645519771056065678738185208784972907173396373727187266424701658464622853492120400224424863242074899637665998475049609000881994930115634165347139526865385534391351410541862912486054135507032806177626223906273064800126588771452418338087503256865502994957698612264537998801648644242541257859688318486518555753841669957973904867195998950115177355976160407858473650146602468883731371621252148125051254810125185085269894664992781518073341711319874912429374954187960375847105452078649065473878436339183413942580466371360835042795166149285327920943015960065350364466450226470248175754367882532229093999012142847692236050338059601469842582254347397746153621754406122265181543616254607094530758653879390934523192068350446786586814195433003084932142581204455101750004612545483358041622857536274640125377557359111914624481854133683139426487672854219599744898039696845088790306182001594221804680575775869798965707971651280523744531560569746276131628588460249425021561280479072361272924520236472423636996462870722716429019124259710370203575455583506191501645850603689115488171965322027969195138508003695989958224608914256987932649998513430154468473458282847063608947220905147265709123634122994695949727976394756583966082713370742835266089220285089815175472403806144226243354654404630078926720995179847916186109463968662131203633161529516944746313233875208298359745653442354196721747249768906700960755423781018229285934262643858715092001165174744156543838390347641937505946744363720216946057407846405144022818486479163539586462758758016059095356833421325193498083966941435643035831964473352426380889756305189754663724164846843904834560363602377414195870950689631834983602769260002676766428345623174398200617640774483785662083647364585560023224697285449506802898161941190829398289228505880308111663609226282037463520151387324540214344357086937999966239030305381452312074713615148600764815935508489442536217836924576216782754136904916348073508302737940572414159940830877030308538139515832394362991242101091457377456592001640212615329598040564633905293645779887148492413101238670027961749329635575625373404548069033802757484148949863957707111138008562626817176082765567300195034207638078816013058041103385297648282571394300005705904416313490045564759421506734665430990515755021980952515199803899004737304621279280649049788408926065880036055825887885763881730245258534152162504539870126676120480727371690765155465777830101608746643426115492072705023425493339398971458992504511332028478281659444819455426692490512768981171665995243923648746608577277396615323919426039595644887823903811294280553589768312162891620779358334030072355133608689378834932354574825287913973464222719379513973585294184745906191778085145692328332057393048297213320187366522603698889928089348512250818415140421004606896483056185764035594063400739305411879659575396880998082882400112474162028816542310005811139444311747281622742227551028227893852294257627261842344578959692475424359909563631795643395686551569301959201782805186424683541467866556036083718047067373584619167937379389984658442924418533233776030895603116941816659788942101428704026574826375363053542937994383086363976549889975666004253646386025554216014738665819923997542382297826010875332567380167674669798078411123220577763878323891879587948219694129091376233675896999693495425620056165419448370357790161337384760754985684966334661927056173971170820286077253692357151342432594231716787097890213884677699406398642494628565156923678651236836425374884635864200439030750629953873573980135064741349944349616864563604966543031277814923569351433952007111653764369594497293724628950349764045133123659785417346713985664973271642755889579944400975918031322990744589145848750390002133891774812365217821181672186063289418983722440777457270251100151520661428652776315918347291626527183155654229190030577842816750454632542924204639186079776457562176761742141050003377210534267849827484067825357649436164431578418882577039941890581895308688187033240360696610633802580437181916969361176441294260549840943766528011291305804396957711815634310760538305101517568172243156757369339712664251707721086478652920344835511963319455681123527780180700244717886234176973350123798007916035144015463647435890884861391037156989688345502129776118516082536940987275252956092663310616264951360129431784591294768105611541073220021270691096203228578760286634058084937198899348296876689493056512662205106919312096001905414157543264868583055655437608791225018874388136791931960220180453900789441998667342484352936665254218166723172368852693593141335244327573642772306856469340724468059547946476383119712784659338387032548806624643893292221157723797857895058643274282229442874795501290116322451064091682079454984600538023273619845537105284155050671753669671076819457197042293876142789340133002722862804363389225903920750704291497277926535741819859093172501922295662595009519227914116651833351619339969151536941722284145733558833646332210329029166627240302611901478821882175218930437805123457508668094242998137203277442064489776839344707025636596716525764281956336111435069455641651386924688891677136231966921366650389071087198759898568064448971316213803276912758736785479488793730258074316506719189019915786975644380610600371784956056701225237054492291851541428955443247580569315549599634231157699379823210842166433843104859341954095834855564082813057718138205817267095330765854281855207800177477305792849145992121689882229769828286287960170738310119614353542128006950715759638736090496274030510373291991573710525579724619108317116264332460228167565460753972240340792904928408057605577136505920532299940470393011792268933371264126415776139507344031939386000812658827257596011149928285584043549942962611509881764820510066938809248492164132621347608786428388719889603751571513231535918342938515457827916225600942361017057651357518159070161894764360224377387896238031524643352175884145259403776201817604656629354846956633561630012681656099545149827393920160967471269351830635581673654325975452619290072933166261091094836135805705300399348566842543869295300140823006724290714186897832656856649073304987130325312996767302327036894880367257053268667702760840520221111890590487327644084628647176970428460693516450834642444589520744545505863400291269030351362705453970015020840301941069985757909699945930970441641453000629849625747423166522605332224777117978894276682378975924921667151554601830447445480184011749314587803503906741131585164662729806606296092246686620250612957449390040901906057143997342463847163542162410830692362945896329893315497501490998767039052302421887604651052421010547700342224078549411308683974188282153995568246991690230731103207912682703057870235987532480217931878992241575840851778878200954863513061637003460419669172229404152093636132528915088942003983686574632786981522692988231874282784519622261502037538846530195530352979027885882271073754999584793609294290725205416057253160664381738329967549308694370922189334711795592436092763944089260048325090952278841810860280268052631081157666435478822885414219851486309128500106019938733906869917080620312756784202979446870149614131134085766283732507550200677262832257854390332664263491899387872350433341973396340626088095775792428529565544742402270015298363103539876314679912180370764385360663264992396177363277778162314785150675305777344242775289723985439800823658547212981752764651935367091759837955127456614358854392037042446442558741074914466455690405802920763744621991164750326833645670623124000820559833784304244367719770657210959893689986354220796974969040129271383967585976782383205615132421603669280198036225484548850883456672189551339009778795454049637203537857850936394747932380718277734474474085985332989567480718548071136213973477071040086463187556503081364970216711608627441156718216567016719503731759189936978563644966267432414669080158955660401589530278050934566007796437843115143129830736811218500002590794018235392700366101111385642190507313122035304681931752317914094593276906081261424552787549836759838149713447127162932783553678429911693229959743475354364609761309956639181329094884234682160254667347844578224380128002174045658178392875417632196747153750873985168656341542404261742062088970665785542768279507289434547104976615004037450288072872669039023602874466171560447830862128684953713087441323367280186016418934476376858010829941419545882675156754144359663626133184990245870831979213008138530394950697828736789183154499198379217844977332290612274109869308400012291066470010094457072277095475591709114863116366541582839126867972945300443660710148808838819917725949913231684582254982334248706466483178459276094821068781890309585742060028145167452039236166069898688521662973387219578689480042236573031276306825908971009857356776404738727382419242753878102651341668156314210988121593951600057783453839959721635974377650068330256485547054775425832270824590681002635250416733499411252391995018813571685273803798754115933779504628325664262358524574173842529948286202165789447126348375292030599367915166558584956621492602308460540541426093104120359984199955539027561202679587191525907276766116617506886516158843087072987461495054169877844459558855811176965912395609606991596276645585987413821894238691021892967334769160994439051616062151324022221484944004993225693465217057334964633932379319005680070805007782499749558757987933698150467477801296274172343916837741644429016348561703524091186353522848619668687554481939055871891648086587177360537548439383580709836414103588899665980739218782138574338844546349054811461994538364661463515915893929957559761185551547580720718647517584376491502267771498070388244547593741381290052316102537808022465288747743837882694913995626417372295322448375357875093041303677673611362390820137153655996066621311993052903804966660459915801829366830835115664258408952720308897548437112806222554411648416621003143121848084112880968346288947545964929236240120456522157323319760648028973792603812634875403418420933240754477925322999405112697124864637633974043051068770213828746740284506126746479883476605097055264366233992150976477393764193543084194974857604292332233737766408779651773816549784118230302911356965438359687280888421681235832290250419751625128261559657755776340461229251492822915440008969072150526311856071168518104272559488050137154919251706154060454667541144070686710316963623420474816453265257673963647927032338371686810089885557000635159774234039489327259248892758316903354254377433605143597699460556847568651162319999581952130480263463901189535099680548122082564926563911173106160732349747728349908343497589170335757354180523157788704795102416184076464792104800922598983694280825655742806058969710647321328957955347906052153779914201776382542013529538040893497987019158882451638735256112676810824349479958544584844529660307458886247485398375585765069607362714940627528140010591773576575550673624274710081416033467535625483442321732589771432859042294713396003137318261419022208236678950015666144065582374865870090758470115025393842826932400355864216966415326003389335608226895098406711537604778207864919195469935282744514983816654153192469397681140324249401159904298552478987623445547176522709308369756269453573983344342097116455023593361335346408709680117814786294219219459106143174217360387561698483378877610336721760354818844917481228768502321970142739139273757132756398838214437674429927614618023069675770949374670745722114741062074885174110278896648326224728001412871101491280982059440598719656517483790026586144390310459607619709989998015117404614384690323759089138034493892589703355571514696261394405062244277382014196198291025421656935576852763747234386837803754706657018703450274785845900938792049944991475264103270917806608848102935385016313340744996629725458551907371169374477852149040097077891118051080032811266292558009982091264849938584815170147765822472613549748936932101098446978376197231879475195612584697563804126736174520774653161459623953414719263898530311155529306737001576563788768743779496633860670897820873626698370333024578700063148525536264745385091798207260375542249688062300766244356064412253464949830402567861467584623411362019579647861967069791754792797160692132549318943055228474662056280450801667894196647638041458506979699209756347212290978195504869779274410387174101408941221764991978697868757836580932677050981844973872482544169777987273289265708984535070147622441594771938105478835245702326176469527158347881995037822078824469167610763504374594138489778204895462096677351336889535674888545805348916103058062586131658912811572883285908828848282423794995091597801533106426697488634320418479480274051740629249764981381745618669700480845187653215795336629037036534071582701555001031146014918129764926267698090460403040289194279820624261662160406135364429980360071869754966681510551191013441109285226594023838813140503550127410268427824010350041374934161284676389442996470620425229776279909397773127604031847419931587043688857479192180263143323743164314367163215848377586364061827445379512109382499729887066634276609260120189126867396888184110338472313773128300643165455933607091156690326407817840807472033402545056793241941448066865230698992166182846298921008008366307232921817435587385599716657829942151525259486560562483259477080910789169102016503168040189204078453595278382000960924406463189389957681436003757316068442858009095851648019720743523684080134005044567101525583113187813929389379192154577621135738712402074405822787265470872568008161573117510836356261198628626464610467172698584385703315983372910429123651542558708824460509075227005589729678125899464720238584194154531088027343461384130638386373990302340161037705350561581617213408947403140088163822322782725215661822116536680438371068295414894981555836301748404444816868914593916270329717860850852110331154983662972224361456292538428697478223718208656916307989457201902721934901638579592932278980077968073839830056299531253038204930791659259735913531591351857300093804422299805174703688104520771632529826532624834907937902360460220995012353127983480531828884150048516358139683342122241296406558619733701386617611981777828177283859178978531050360008147025533368459200100564134842255463232573014133666036426411382968821295152458437303923947301926812053362177572590661520877552222227581064403166482580907740321524209576078123275736045884959918077517232925900566994957037201028841723276054543556413567531261736090637895125224573613710524942355576771715862801468593539910806436743535094194583842805800167428090378982193926843712902222754791141674235196847519138567118688873202365237060032173649326860540063180501429949960933291716820270318584245973574930184357255486398462538986458482554300838640526484536981921922708211774187995916239500784173882624851798631799190140991909906829409176898255056595870657214160140098630240145993317187932736006732204781723632352884472171311421675031935490711152402827174262107184175311786360709036392712900219657083843004788528156258872012340540250316807386614788504630995205157356220341979751403839686625601816372707366745834195298606521654374448298213039280962454901757002962886604425490756072825258937184330473666644581937461029199439469099606123844398682661016461011139461723555089512965593195371535483277902431527593270356223883172385358830050822701831486884522124043695058192755330960262132701277457063828418083589563741641051394623368296756734124441434453611436095074111886143598948031990220417622625389528943146620708786247073756913686282877084259813052917679689480350283990714344546570588160798727634503157275470681855083779183200328277572078046734307269062974471204711934363966231726565579693344800552774052938816814580517672925188918575471219542682363414246362548051664583378256109241389509251567942022584556535993530821300488184287486464542704377063578800533050187258960193538184660308774909948278890479699130790289793453544567258019810083617920300570289836831644890784708895022599926043280856829282314719117000807688144509665148461955680081432858564965052385573483771114239753112990163653846472101280486544118036725651784923495994726005632141643253936725893816149599283494012042901707691400641441934931905346497791926480361191441073336253780457251321769842881970226511668969139920411511637473885604756595950123399913563666553094527524609192580403136726273797187795668226663561847556498224170566296592842863825169723561044291132380669059145328569232399360904002810665888891888602812384371309869530820844023810339798068592804265727387553076396855655710379951738091149174916225840711583565023336116051000323481682572133793879444540489226431481002288559484661233105839727284829557924346759868718652925664536897141541644029887266228005108964692621542877829980706349709182478925514034483565190750742901763193849002415897170447383341527885047950934144707891176090109533061954291313000899865370526931852105368610255742043536125487021170288334310340635945752013622389146421753282040709039594123597754024576147088071570681067292073074709149370999666356206193698427923235969989526702026046580337862498702790282249005120198675424903420491499788440882752461988854116594518578935564918729121801404552659052158718304073754837531507091519639310140932420193362598842954643310590292584548085371403185847709511028117462876178471058239853215007333067370888997712557323632502344909436634481432166219182360391259662301716448196150008941896151072513114512806387158532071152190216112022924580621604351111314500453286937489208173339149664986941855827074728971871199376931149649945913535559988881534799564071243056318772277841585724133531120698450384005200357394338144631205764936047798091618117335647326108361067442198956085380991144558521688303735111403337675454074267576626558892951412711994327978793647466152169810509919164416241749437793274741776319743635183712383692239347320546378025207170234522888779368879519169063738033210161868419364032939085908401306483330807264043896720212473293165514205366505053753827817374784790020459912329913828360922965186482027189038418476599423707166086290866553356322936371374406909105878629708525552130409753377996812366393439903599308413133279267516545795099354808021538189654670951973665315595547818982164583712884546489023189277366975026152510048285428453378525239168239718154208065751448309600212176618340988147007807579755093855934306568460417172493511145855216713777847566840177316939142716197571920588610456893112421102627563785618609408292479301944472012611652321450703949342449768982290338188366705933739370200412668451845628926961115714645036205575249042450726587111371129207200158113877277129809305893160646949564006825990923826911932015416875570691407698089072809701624728508720423684341796609903894351856665942256911117731896581310020381476288212440223897499780362694569383704556837392234673702909769132759993675110198856254152404349773319855808168331625897992813261457455773967107698241456103693106101408810750366215370712107931791371948487554979706488720858263002448966823979619139853856793009105104204061143186168701506314134998458100216298260574691290970944138840124009014125937426044279751193156574510619248615461905767623611834845219771072178661008597075212959175960533420843962556208893632539404641720542266776343282519881651208757266306539243815053864503468371460182382479141422960830556749469302782418779747876294875932376372487542096594862855091962796683789567949227327937218274405862318972650654250104045415065643707078142568483786175923314785159536356517042328841436546841830548895367790635310116974714272300570742987469487875482876861004963406593274706927118455166647457226116274747481119123739937157223836140239992791819124743851609669096820962650995000940710556864884190664313053892056499018236683625692245477413191665494472981652851735495623464619722009372669518325311913535309201052061311693604252997371034094864921247538176119474737877467924863447209316239555327230789777645848214538266067097792568224642690683784886925007339792002506848451523125333928243680646267729348060278473705024855320419044726100269929991588583055064752433891657208145459960416009521107133164945920578609349282750521866285412471687878078088825036779575935166369209367415183115776023350683280271474664161955244959548223644449435953327232111167241507252109594289144033519355653580910760908650517242026191799550323048413960457783439263146620754864424779494067552961590467148611041349503807096298701651840527190273743143595783626968311085018233413556200178315919376732663721941492979329532941747265462306028612652260268136552320040244190990064708133522315953987491081711675308585125260199218056633874239736377311538040731490539041592002990385006596209253326097816790932165390294701930213242342386302388766065324949968940136781111760052778347440942320607293470636831647460512067412626435428039257681734745993828285729479387429425597717120077215248856480016942167970971613597895588946081200343579137471006921872526873542825653412889264864039113582836381300600399300442267598343057467321576583193193171429117731147489998192552073141330519274655085896150463913182731449435235307323289906248351353193441677513347779812550162127113940121435412063293840231991546775590760999970750863063256358919299390289507482596047997431579985367064963543918671192577527985607772894294100530011865617701759188594110191443469854099234180377661040368926281210766737694584638724049910214332856952394797388223431363512063552346718197613379433711204349718716447177737323294939370196391290197842688965962018114881060132909851298374997126215161659669089416469260040091835229039321074228385316307462851814581638435537244225914701406104457261690871208211671616928784635918998968596177739419982913451413376047054288429413816715020321171455697565683091956528121181598772039358216527775088666486785231940781546932473302487647695157945059481060303964696880765810799454580523900235926598831231129312218158545899919473879530752077942555885504189600364050485944950621129601979374230592364107447552123456165484814347742447166232698931848571607076928740586735022744900189864078391931235999073058930437584401661897634029592560895804812140008786681578214343083702649112059106433550102930666021444475839101447528250008107582784578557024940967357205080299773315179581607219574836284689017662997891284285480362441322968357407047785267842835956905655701421454626548883544821796367677187868974997356708405961295787793549146823520641785771208298919174155139781274750491358231205771931424303806694479833958272901503931598747339541532168950010746847456979945776494504186700986516517068070258486675651831510589888262182182295260364512888422037736224163358613742131321791211940912970976012147067421705755600857021018322030913645308841987791162653176301411873669487398888754902022368316945134291353430273431278709533381894911241069018608706779346835484001950432807502956514741490513217987660919363279697523388238353756321514487648302851935836399590672803897901923205757809597450592303504575138295687736134321092533713164791431479441365648267980828389357391125823306026639136831677338017389332218013169565361584990915180571430137267625800572865377975973150155748951882799532708044563955322563725365610713823224606624531116239083492299959584882328003825234825576588025305578885319411396764719048147244238446140835489740130517850981804136023928426737425000860054852518210841974222322472736036545962798297421273286460223585653654438804595681996213625594193802859842097206811075114456771522067559306764823004210035623607865454259037298942684223092243421673832012284648333268488041889430386973163381526311819812863709424056792881037933319074583483472363474171061010287411454588556907980913537182022910850852223983689771772557020088905830139054408258110169621511500195472875507880546220042265186322598871165700381195410274079163877636698155188021301264096212714895387205918819428569396355338168218805126254088053350972767665603765485533467632880599827323691053873310034713720476850594879355129573582810504171140461020438672064940207492290195914197970301888305894659058862949844765241972943607785085443381580322658801313550985276447270462546192875659619132526313934386675843174350076359084406107232674125227513202080524569989044134740460960416533771665362567766313411166421459759585791607088182980377533990271441184266186097619883121251321106801559532076816336766682738404238356890067748034500584154393106776697657012329138520962641418423439782142726550634533405936910608081678157186356522296270943264769024092655746806910024003902035081906144308069173584725381524433013859807149326284793020145582331123181679718354740261583651766198838436301102327355610442114945329069589106628296825907802586179743547137570593746404943774821445025904489937818921473647550474122681575319358422385260812447278828232348032219307500045142854211745480494882558859116490518173584619901336673358188453049540582148725853067759025518056584184061434894433641687034083900814733215814778631414795779174120569448640581039299599675218748762156107609687381860242793725530378825427673186535680303571429991020593389653063645968263932949966971433532440442547362636914083500673203404484765410276688247863771377718371895744086284580085813760752871160323862126779745521726684702283320907837991006345527538220292338522128429624293727874640465572192614139980609246686268616879138248035301645505449807273268108607290812664350652926328881934979216837566717918416401588992180405362147824915382728326200000533798908185474313945948349188245960103067528496320822343452522243856998145445878717025727211352862218175841551517831615139411185294283048782281358956358831033591899961490585486543613702181042454475448238328683292651916102189364067699945413702485740807104213582544680514327783713455458668789976428913902764732902037596912359175817688978288912917381315483439009132053074865503129388248508203305653083026447411034986507360771640663584287348624178979711558499005975994627841196780866149896457925372702365870700988740773320743787124106490163637511684098910994109508092618981855677619561398068213051995117760053874582704908318196434337821910684645313929633215939787286494549988609229424758817018788750472144075234777106782002309545649479629600937841390547600536502171934339417334450800036430408533437869619382440292149449750346772849931264175532165452536280968504907210732607602226190964549424072412920627499290232237903958809480434905569979237020095374703065218281588153309587817325778434837493646744491822070328123663365296041709540429158405693701061460615567288156605152280205682367105488131776156661156771899666547942049837572660792361105983479377431537251587725515711630308864236515980946780279730589581521586418836739083939644180629791559199072223086323617478584817235128099339688382566941771498018489756717834731009625791938880523543752678427974197117888304892441038294759251307658068370918783000744127350732471384130785435203638316205748741727692014947082124065946746168067431619579988490507225601227243068499403454624726863538822868784753066824793791037216976178852417849750376588376475518280926513599993722922805149818812138255301862308595425567758725541838453496844980419644818188853655010266850941294492559831751739185031436653784441636239132423436932378565569852505186259397211921277437182110092366250187612643845619626892179775598674764835167657336819748237125319872037307676335188655382636475532743707007012935208721856419553684921265606503031467647094882921902808129856864606446704517363009975545829284388659351984131417408615092092605457715435007331627649587120574610540201418943244431830639158570419548004587395511039905051648013127995047898069004365173473248043022094830382864495386905151538416302561169755112713379758695846006424402621437043603724673456446935133824478014869103181324722838438440057305223363361795573605926426601597445043145663928155066223255982914572855833522382629765776143897338846928455223022068126337205764696099490392280279922673906276362165000279732660983634482999888747502255266647633282418167300297256541500746081585094937851539687030215998868035930221319751932625738859543445462043270894509931822955608281956563345839625789207652616304561527764531569732124033744492119509943635154588176659120125940952621071725950648087376770300587698018959851625511520608025638474375972868180646883661673914329375659160128595983149936718949530894089016413373234765042920570092573390606794589317738603100989432449728203631101027228577320231811256487601456739681380751943973557596494849012736675830212448417223804135085958396036753228738885557129408328099207741315986296490058931497557618075097169357668192810098295326653813214996232224895803019395158300928579728591575666228032838072101123763110331783140178910904486995520664971179907505318990466937880985822612340237867433385288890004033457518395192876494072251613079392207162547608890720272628685335763631230031016582970520007185176492187287352103246431050271309900693546850417641305636969500027018668770384094729855201706411022501733306197704223176398991336543273590072896747056927334338859568796169804364375789206292383344496336251931897071346583453671931846206607621711334721031863744799747674774140152004848969280834738064264626180217563304271538798768820752450696741464245532780203902267087016378316329406267919306767817365924479021820461471640851201812050740518832064024382414629868580444928228586950711930241789425925602930792976817327842659353416915104041347402150871787614325814360156538861936102051188158625001762580090976479983773593419956674492844259718362334083231648875141321370405090750530246237672147742069120493157190541482698227360831571176315380028585220105929332549052646397736140280438278310160704618261290485857090264747416533043848760249194259790235159657180959630211690532566320071291209666405517030459594414588249325120243928472174993046877467021025417245158874295959646509523867652952899187524113294657633656677927463427077177176812845899086566208192482245767837564600657263861269772911641845890899416805634515938817594879212040878622086128292951918824618389199752095125406440311223349136838234572450946592237433142587766067768548145052266250874594147244529800697267798724266598336065560759844297520820743312506167120163587278015831575210416027809874563780074606546061507261239840051341408887358860837319427781939176542983869493374326128427452551525477125936433479974862041887394266234745797624162878344517324213477113786205000347483621450173767044194916769653910676774241178789921348044512007212857291646176517114327547090161777265244132111406486188095839935527837955208088092344975317548941511533799339085695461913976885299685476999125903242342307273270954843887351200999737820877968907646338020723661712573189635199978984827021293187336430733708158513951677231626746689766345152152976368187315331114259719917269254762081985946889441065981904607652062907126442519867279642828467660174129709589163114124678331180199672802198492446128790825797728631852267289481233174666979413035328973458017964840909984727149806292193385029030507156544398690883041733828090967049955174396355194541732550975721456781409720125777255952983894471879942088948260666163208715071716079684834212645078336619376942876913209353838955975544530498583274581138729498769823234623749327225853556929410209969737119767294138148636049904790001560679770967483066169899733666970274278347028359640749328164346155709398904687413498514601763088468329567346251547567835334524892262409195250752792129044049971492057443695323893432716673145141998319515727653925100891054857897133750713430741106600167874979472424955472499535303582753080186855718433276456189602510295537526889314196875089815358175028228716123923716522176211611583289016135532988556503349775165875088656717381356465727000219688635380101290948946626608311526355027077544948621719375143525808331786813615610954064633081202168500434813308646307389867939548475891535262782762566932501258706138582286587006983815041479567713056309127475103996539583127825005993426095879180107045663035955691785440837070359442858544506994119131310619031220937492484431727719092562069452511150084833065559403527157301637502907711173562338010267374266274211589268053345913719387514368349819109322712580276309924627452375010823255645123386685279217750728245894715473554054392918517878634066918160061545911630981190444514068720163310861906626852025623699424515981804568360095807218628758267617783063730350807664004071710262975754152750207605694175614286164739916080307996297383339732840185194468425276502980299100268659096628457829290368887062051938649534514396931684220962739171805336417808698232196427826797320922689105018115085455791664538025625299269035445820642044188786424947359252220892269152430696860017692687537582996442318590963920222230879280498821942393889499001851473969263807112609371521673804752637355200641905600633526236679870334118719433052650287245422482485591161588843502003233301272669334073679583009192487652106771638229161901627561579730805849513607532669626849909475551906668125169139997962655264716737002461117041019078796763202866303048597805656833506743834051811137501599595699447151901408670005645652045877158418824810482948847174507268122784975874564822514775915934230224502619985775305238979079775474315866264717179786418297265054880201113332461407929770693572904767151606834303176685567948412855809717272820464478730593001758074632289656147922600405896016612163211792698530432625723537822392528213625605366890470297019885040870327158653360311352011986400559849173295904995307075053606820487117181167404938557662214157396786733439648315170068764271920035645765479496936298471831416868820914116121829530542552309681497300154666347949899880589521312047949324513936998120037995032992808986999929749074191819741262148955387886583125141148892753250710112904362020422972640656705276842754425895535554427567074454409450190882780854376948194732267919556480546191842278326898761503778878306780650181722477859620588810408370596555778228318935261172956093107695923431957154020665340812166514855970330342443672737486687288175678304760354151881971144696139203296795489522137024711986109199155830894617960329951285645136359449332233923364798743970681630358724696761453919764932780171987210686086375949539428199950748241503703592198983960077137991514025793139037630638731108755672976994918111623203130467203331662065667881953080466626905143814081059495153819986535209115015426606808152402323149186625288204939356067603888033396992729030680589287061432997501233853082712251792329105455145150859187838623282393596231404527606408533101585834705649689764765813866323993084252917779341979409633814956617717952276790656201538888418111476050912967658094393431542721029245326717761400675906166850997076523058442849781620077855009486478622630205310749244490695669873797703615000389375067308149237619682262185313801153499240373853405095044306452900091671541700237219824247300089501030262081920466231460084908596982769647313867006178312006603981030845722410288253122587741236401371356493951051565476837316779409171873134755885998802173638441897939390929503904094168097486751539084361396958942248494985637406370428631922395162324543579331024224074425478844730965865373076600122964487676011334345257357647934383324626427660848183464358548132658235318669811464311538867509485877956649872313229535136541742037104492454051726000157750809785566106208272423702933241913292330726692021022796756662105589627560991050536726787186676327782621087829039969373966721859231496151687496998179275674248978334810524618143559511287615420382767087514916205521158672436186660122143180168591784493072208208270221921894661219962933649755460898287649731704608272324474468795033922549299145008003156912954035465685550346627345030068294362534962453743939473106667793566778898761700066030762219155995001183617360781413672250014856931616172308565894987475244821743699821922485208982995312259595297471730776832429122263744017495403646400260057965271651186659715285521991567701160289724982597668307722639726900928227546076872226515770673862564571426615687945579283106346933914933597112860678120558268544280939577542789221345219735817859794153241499882760092755672430564742792995830449302860536954011171722077964433357733170932128294996526837338570250661730899219190486756919993268991090456556472515116770999690860620154899444765999695718090585710765335477635624115963548220776986184400436955399560216783813687544207360939699434239532039333454382791382400183255903492616963738411699621908093892749849655107105507863400967510707594996340826528472427800267801976846319034341048612051129448050838747458483901360076728857520741348182660624506642756895692443830036885158608831716432205649841833624116156634762740436933365530585637376096419417573460262125782891005965803225118198513222758955884680828137881002823713216601272808398866450550061241974523356498909628325376438463451351912597496147873511722255807085505422128752816962433927976991693141870883803284796551196890524664031535445243373672618773905059808859254152224427319176602112569894430750703894247735558168751634752768987890546776725596780043436818700899419974861410417833329083190140778666940942927378435802512401973737217457598466413114076664860408489986170643825293321249048463863634982285969277275560573428778267259428499449424143200509651428461142401224047417137998055869643653435297119890940989736278100255519834469640444099760626384779124416860480016883835588632586159470333120242736591938496561347848018671989319921356636850173829634742084498547435483332766173356477465469483201823787187203668103697192624224468543236221364711465686578552160762335535036777453762599080173692311530632020364899087034635501220324759292332063419574573033490698650020734705418698076213713608778413003269706688236188833741097407097365629883777358046794303929930932505209833872158647528545024440509311983143999618274961074456289295228648912362229877378057326846551955490155294280906253588683561225692009085590261854845046763920512008063380072558241866168972541676727796850493389260611657801700602500309129835926411073803471463530128733199578064628456199281664354087396561386399113062296524670198620604425310265269457800661594338749687191894401911909664783430374045643233282637943489873924101827220645933884978705788947854933724865620545858055926253569492260820827156941444459989265657589063503759528911841154478896512760895730604966037650295923926255430807727112820234912192052954753647217432560734727075884564667784440073979301368749542818212430345190293293477172500382564476637637711406088797631019136441990638845939258098941920069448504538704261915421952914851092037232674501818264069666873919240743842845693656114206485224163170400474494248475955393287717054168486539496651792086787909724181783058500080779094286602963423944164843598915886428776523220864198428987959002864661438638606562933917723688370754011406392650368326059746885127350382065308783335157944475504228575761499246954719069956123611417424137891846587537323812799590902609412896847327430412373229954210540025704327130054726733291306396154130921052660502999494066615902471180389473180754013671751171111001866798491038437244500127246098715872266700316711591938674294032271035477526422240152527444862161373279093342430082649299572870816249308174743937825374366055960267095763502548070441203613373015042568973385545543699507859085654735265669564970709238514189142640920189608437032041225813131241785085932250825869664884502274829326819806100134698971059359305962739695550033893563393536342014021760993256796628046232300988617475590193134924095191995418871217899624951948353019601241649966047484384219797725503585474706517356350691916321482651874701966649110371597460041704223269807469085982084357467574497438544761978966599421948088689633035040560534899212477930696608213488968775500577052496264730116399827797943630195482602230967627626297675369513560487259744060988651687344216795848517074855130956562310418330899063143376691798525645694959999198284541219585116833984367448702671286672293784957978433843616608645122317517362487314054516280486577571276903850265155281494586672258274613033537323031604108589222792037636984360832875704487859148904932179054978985033858289541015779479763768973367294342733987063738185121859061484621211748615418806474702845140090784945836126163131891743467998074024879957342184305470713790601577607618178098715299437921772510552697725471111428660581814124265352959475110972442436781145947176372029126526583700466246714191989835161633256037771765166192222106133294820570992038793813043012667558492927584093505437850074579219295969263584744075403096449452135922276431628588041411111608144920776337515175733607525017270544799799581598387135506339709249057087565256239559295591733794980960521743714899057348462914913507334392992091635810343206704071291930539319728274269861835296796990430426914668401602862761291686129573585738377578008717426800512349792754230711006631702104922656205215454556891786888908168479904439751547974741690749653848855912014259834425617823429188223497056220509269086350239717188808568843889873347084650617336942439163546910196508178831354464265415635580342907566560592239823524197832234444047094900921257281343821965184374851098083379874380933864755321034845690612385264875695702748970409973175064136694033333973475480234378669975640493551725047694837551496734823139993783996608142336939440636863008345527153551182334855860453890205208659486760628739447212799044674197057492469899041087877605622012025839289469285061761293046536774015531529506040992778692344741206387626671765333062313460635271114881902436315870826036607623761395436396515570486839270852496394731974355842417596152604285494483996921445535087745742295955554526163133785809313150395384261345077001629206266416215616811856217955182385406768708553401609335134606622720816714431648923650053943288705067968212381702092376546918846589754926354427708401545350724428488822453421828703455960786467151872437917997279473543817948936906660532373041321310068397378791998721434136034483375700142504885165425462686535387146465628344242180645139629009208305333962654645188353763556906981192419479257176195071391781910223920235134139484927001041192647742779695201647052322363724331347398079769144579643574617203723441752584943028930714437905502272227627841280621703934726066910416112650934432256838871138762255119279988259592196665188307179990457841542456635168242865784944472103206833863663838083942098615516302813739342837947322358885857744211209061052637725851186179711752719390032162914614252871217992796215547395442492455204829318616435733775304814724364397938922809678210754166831134805524057075745774864244326906035227729859370544615786423618131041675480084519565993196712380543194724229367632694826324656030625258610405071894147128448218354925797439988537377360017345544539726920564908313480737481692052057769711169983063604059023808745871611387933612325377658272689823904910070542172892805457983665609986556523309595805359919508994682109497182679945779331010928003815162550705122760204948848597719609083307524122667584803387906292662628449630283993540164080945554483002376823506728623409350584098569070109334605061633325536536007524758785877308286689851258552481650493234723514703979142742809528756277081497765819763073703403959023995090434492663984132763670015491978062200752490988483088290555758506774657900448458386386532234736553723323512830217730913417149024625127179705117955127786572492849086961948397101611555030379522773887103881967626986399209637618195092986986679870796688017222752804263033593134547906944562353935922386107039082938138936770425561938942409136238710338004419188199829959227341694865769488412218004730969026295891904175082545654693891530278840064279834841546540852219276100377757027215058393702860833100549104961737766170610008514603568173736762592419819076460919273959746865479563783295291864029970414668543310525056472042454225374944715778825743001595770300956588340892718598650530290437203663498030981764211423745602435447971111280463421380917893965294584344616431169523419650267535782706085316793860162548230606988015415284491994316004803761882333491064046021063034656333103325308256410062947182366480978744074000379197020417525729581042678051214745921572081537031058075410952993407719386250335308786158172718055588271856612973553156464077781609730403796170806400656251522926190703335435076321622434349262075458953277633681462954409493161637093567888962474828917365942002025205075340035295538412622276237044197590522620411867059881931340605549876300430907012210365685823783333545053394372002093693972070676985225051339419793601954758249118146014605666753169258451614494048690258692755372050105142220565611364588766304612649712712690578763369040229846128002777205203446726726362703493200645655614848923288191827773147792453774488054923454298802096590920653772553660486338075337934957532326660360023933360004206595617927175796156635685038668908359028961244853907898560588862584817497003584423862806332940484961575931564604063716676238492167011588267787092070130233403402861500872299557588564051206953286741929676642203752861777491480923425890542582532852731613331852056627214785372555724107516359172185600688519743677199940440672120646693892898983596592593288057280820651459705938844388183575134919865283328942456311384163711999014784738905582702592913901651592176477262293515894063611591511543447233731797412678008672564012939195883021644455463332840072595599882599036076962152377809157592319144780158763694551173644781437479840558532037318451621707284564715903059073702877433791350922043700853093542645061945545041426637310836668670147474321955141276726670081081714429139057197972403752314852385625694274017207250814908496889866907002809367063732483544482584773357224571594159884188653356690361537171729804516090453050321498928499588567422016045061089150620963924472626233493941771225048048650895415375158128047364080251113575638972942743365418893582909494418955124575700170130876896848138020101137234744036316587514661804546094071162731437024920876252754271259712290090227946100357044119528346823378739172385246413218495669718414076301445227831527732558275693192347806347496480080266513326446161856723591621930259179906418969572044109110586802564903791800056114730948149260452013762759689354013015069414843601743947516425378029224502642475889075386280494207983391098341703263196005209581964265317558272117590971408544806499617046944185023399440339258201298939827613195492582393205560204900179365449192779196405421619723012946693609336204428445025345375614240195709385553964820336723739880114040567500863316763797550947780677142395274119391930020100985257133429854351494164119013228936386423707252760759460870469091550584527067177546917315563962137286621998850495233744062641573032541703737245894989322878410112514109961718455310391050257432053890250198505102254036087665701553014081176062488693636883695711758794727315491328922608476087442538422745226797859521950254984258423654534600820705743220954103970345757419385207271667522863481971660202741618718015336138463414321278833143376762400483105264875218339038111392047555449305493984902778754998488055639085685699079614864292213878421258988318576575453213270771511562668710880127550647506056103146499873380786723607281624350297259410184708485052822265369732619283078633235814036095396968041454992240200375181016707881664487694383254616603949856575989250116080351769884928483337867216705329058781627762928505017867766323308796888779154347186230212604538060826249428182348905951711493589140799549110778307925871643959393472994543449339128928939067706596400899256026082719051149901184612027759317662413403122214180428908284356266307031704717340003450919892833810645350822081010770359568250311305034567204367532399456157525900737839955585251661022625052171496042923932572157725241960698819098231963576528565842411500956192535667545030249849118705948433121723360780094734828778894238412692341122495164602946824267279344363112465131564659990387479795385427540309654534802894406762628935924058104452197989427906914482653287108467619921113822412778074217045534640278366778300361724379909695266558323864281347702387872650896440357853862511614691444732355597578021730119133337867466411399629176173706016722165688737968706616155877769083852520862719638753675462717332198622936769162202133949977054595024014657865779032366668405314209755439625842400801895832851503005080401006070573957967471982879510134991993757414619995824578504393552059691202245530646807350340207044894734086493654290338464545969444550545676389868193893313376764512277251897995134341979243363187595648991725129762929304179690169957873002395328473943886133498968367244609892787608682422542035243326615782380790294033662817754782662344529216849804833783258310639991413138326701337624774434610227162053602066771890078821515847880182737485213833297254248080200823955473214025711360476174053651185006006367180450248967705876867344835775550222852040429346869764172167703701393416157587762394873140281923198493109768299502342073556001573728928852463822424146449730098684157637715475539422361236857484413790301844493510679137186638479790177953883018003704319444930933471675365294016070435356309786676873337694915964744369293052472328923533350667273440179461038345383251086268775858970326239514656421277115773246636624497216649861782034482929736476566455871806170408763230035771624213879957398074167780081635460710629938759102086117250524054315837615389654059069356748360523830690016960854068220487496458621113344044407938966669177643624866571750767404491936705325618469701660891155948489768258067704395312602038077524855148103698854542611753040736098997586909575459365990061311894081064429087393257968392419977689269953339397597424648495951120582293774196122236997464445984174206364965334536707899646805331288452252984859434043943098593862637060525142844984692194685145908573981543610236250566677964421149302644963407073335255602162009116957213252015645566310506179478255410903789364884919244295483538287117541705259511580337683843414748076042029749594415912818781470317277715784774705545236062694330899183743077311579308647272361238549654840547120778380063703050290462725263664914259234912387837083486554833265687571692807943609905750415334679877296804568092386692949352765163359026975225259099906260043245112536885455554922055121423433441021950592352700733917594278125345254113870666228404976457262563128398669179941877082070948603505775302154091694786333565970626130837777435039031829385335543468913651792191947135456733418645366879277265918869793539202669323044216705780478188127649912896055899567674570537502100857556823085690091316143355884824925044079464469473636380961436451702557150903883699527063590975912951360553160360525155183583407616317835553156701392784135982722608100419416877184969255472207297200606043834362112182611050129051901937199452746759778336596926656607812857446652952870141524006280758818673210088228783522779059149962347439340580795373527057434978223820872259029053083331365327781067180820158544194686639763369344556566240459736406531537397101859396739087796875030280088975471254744334411529744319595249154456685651894570000668908854542362600812584638000930894943863110342284711431856940805474080201141602536689814554162491388675497645483964975072529676461636937704118923493832732255111421787939931684196442200213802882732032905756039482386198123817217589942067523862562068215333142769831761765279632087542653093355874800408799599713270465542371316738007674704530400600679499614525519929137337265061505888106001535163166496606794026268332499125356440081993104825725255887327428157337505603013666905652858777715326986486272024614745362232778107362544348060971380435914720966621246501994328406364424796341655922423418065403591862942030223554390549586601287311430840983922640777282525700411322810138047218356610065029972616978508808129961270329000799098046518367153213704189550168004172693593734202320765084230796681647604681553942829867412648206479277138354512399574947232582781258257228398973121970436641411959838392522353120886197472732563690504067638789384284880839570002724610420735345676611263320275839441645182097032408014326869560085371348253324272774125059393752547834954013566155795817437958773702473260644393106174376568470820739246362253140885121073186974871598658536691734344148315395589411465296272293708935942095066249620312522843488431683618444193672641232888625695884115570812507456647789113303061358572148530559862686429110766230092451524729705021916647330882408881756699951349109092957036528243158468313676042662211476636890078012437300573815370026787968409086705400092326425012692561180189196853476199322983492042724324708082730838850457274160385483202912429388596851496317468129062315274438727907591471386028764174853770545754612294977376360730135591422361402655632239699595316168382228775700507800736064632451489012343830257264506743218190070399987823885041702514287695401822581244375370777623522826935887387826165542340063751215970852737271840806600832565519808804141759907162392331614336994153051063049200465620086534874968735235611843337799594123888566008007190924019054591866773537389359228144417585749838790427455530484081604460260568586950040408002504244707291204650919496845372951271427962594689253863974276862973724336714172329884219215104553609879281375871397446809122744031493457831891898882649354404269049208703608849814500413876075127638779959395787125119640570365731070259739850347890374416240156574471748280087629169316788047945578235876503827075779746986580570724633435819008388374107659653950934530606366458314852560903189123407344579094723421468196475200970127073101250816445665112060244925194898220890337857233625602311410646765673120343319196784698673619088059258593844792400304969805046741412785666600266830757701508278889628353845517389658637001852594602662758241036255887463360145020156317527816602014130166560765476724992680649589666304864764137642410531224503875737931546038322796248716759792216471139646580441704278641176502937393877202252608171551918698280605708975457637167396450529205803560926812964507629674878052122484608090668092280601317838585884182435354211504343436822471958923142071471498750944067966285945161812121188229650857254382614364797196763168009866214467493188765473181961727492392651928107968595818432587207519049079387300894705518759214525207293066392247584363314593808083249844139944253885470204757593433265720698787302510834494632771138080692302007600325657608737884687713049051277450337860949308660324777070298385131905671875105223893795375542375259904327430000076857835238485384276725202464400392245253548289377005701947394813776632054524594954336124694669010761755792549418072200043981371181689092179247793671645120296562148987571634573664445264327692649315836985545399565563532575992019064359932106146531869745788418164999341193082615455917258881714114927267789213529628392059884069583815238393666910515061145753715799346305606345940709232688055566799420672344772667134628185058196268463037875321328788834914420710798407979134670483489539822674035877037502770809097531456204029476942170680485782161725701981749399503175684757604719272213098232225306777364490292971538708099693400358083424926371879723746277978712596624286942989360479131107659074804399255049727266394460912508736141162414152847298456445036239587377566440858812583843316402569681946583546600366430472093186687744915214363105675988747882720894209402778807470212615083769416111676253525127259646921805988368822571150001004393571922001507921437138038133512471197820689044178520761239688303594754460712878553539113709844212874414971592806934216261835127312047873025495472530146288330866163180682986108072033130074082627449989482906767771370742419446371101275936121216034707693743135453481286888072033643740527149873367378707951796831921210730768271909648949579653031582891594848591020592707763171042294885642204225180832211664042972289244831549653699651528834731460350161567891198941528982476907656690772564489465077922347044552608610914171937530502140737802874704324791002018350235353123713976395897760282300041730094729451130366124939841866606563975048634524724278973307403422302256111103706534582319965108265758999276795316182701204097042379366463185115759504906256265867603031809317031776945644404346481463054089639708963249586276697410718671526890137207114743100047716101196747587322619047116590952450758317432408909932665031584525405120866875130320628012060494436745954900693376198017612086046199078039138966909271517926987200072872231431928395344362298348527053010487651099104730992172264059443524164275255151548743492001403784837952048016765475285168107958480012541345961680373944220684754936292675121500102432160864864751222069288155883937892035113371795509482582283615180194157508018484368404279642850188231847647472879340087218915565532592983900132083713728371022563837092362749762946920781681142364442448113292166711099277845727999521293093616629340902811297631613767533594266064682151889587260122613279231130086801812166164059743824211429777849041355647167162240512071568269037743391115189165955159881458257319106036875981932164587902470433546884740364003169745685853025972185686098494922496176440973673312722493300327682702771078766152920665021924520665696676186979320893364234510485654115787471512174296157727602375708690112451215942180218367992151202609743856704040141172192267817395152589561990539523351910362394210513601073844107856754484381948431570153989644307980441913259928165870407263482983453935759754621574825927110980995786897107193732544907080227033522607776446117042021575640028469118194560218154759358706514800855365741600575299434316204740961173575307088539716991898940868692350626035187178449381510344030210935806660832931819666136314847421806327795768148801733917294182468607585707180928770352573244494838650753035349859182748894496269758876291229783440483059893815585155971342926470911672685628811655120420445835827385156397295975404305292448920848759242136085943337177185267741261356620070937157557410725202849791399343050185137715089282435360729106172563751726226024468022118072211398142934426153205792694492599752296210032428072729051785034878811702257135849401866375914765646595931398899220242240236183153092439610683254145421166738689529216576494070544978481886051652142675205482523997100646277641662433919040901668456427472236538507571786526700797235601798232154962881228874858236958482696824121409190114164805478537535406534145662617074257874394409795689393338369946817130579773720011486241590546824905591691453656127975900269060402652429808726050969112754606274969621297897370927493629984946466759473358776750795005012014836845338598224457329281825840183124680632873423848293478262246228300092644714740280479983595874731532680390915093728509839847632324209182702976090860446708918183674252436249964733425797387500625011752057156293970906943628932859390608317272522481708602781993167160519632829821792108744202731289162554134360945633453784745805428889502529760057144051819647728211938814294712969571796426109241826984630672654351731718418613608585707633761736758182413417186232578176087831601933998243183677987596209167212932214774711805505593861906620944115105257567413246953133383926220219442599783014673972712824427705797333530470652060836234466734035874646577536363694295935973065448353347422293922410319607659953156177521257070690226078282177266042397444082799229433362019366904326342634007094574215127043009799085366083722331279700905915899364311590203071121790968037287161432495430407560613101318260404508098043267299424630071956936093131373557169546150478277562226788181750175446158871474133884188076273954930593138611863452180023147223758566018530979094149914667733860534253156840716678689952872704758091364302261122689683938639694771242125201083339488528091067542628190850067275083949990892055755114260912525009901497242512327866879353561144107302576144838395438115337651464821283752497932484374669148697416994598790870899859166204817961977611227786103088282881900066668788181599978125958268352589702913718121702405954320744183583921043003050186624772801022008453787985403509928654190628453640959620051493722628451670818141538829878608900092916618084184971096267643719162883921214728473609877668789928985453156494652577642732462677945100158873736298047613439431718218649627709025496539634426539402676385942312052457639947032358910150838087359613984424197399370612547727401152470759152561166928471254618972602918961545397073161159503901539624949948753461361067309733244352681991884655673730069662079449006385555665443464791945361260369736739106692957368135601243583985128212206313880526154435886460081062949250354345624525745225779365198481894144948067164224946883792899155374391079575050335383403966442018702361426044701938037923601034540161416868866382380195922065968102796529389769188865456551643795546481572752368438986319011290156259480593477338842534385621741876031655713282023420576799195493895476812820173210241443477613422452146525470753433105562092975591205512781752820702463181359421145423315131209059383332410299407142177661835112915559858438526981546052457837031109577875827264855789726277070011829271341544267765500834165469979690939765850761238269995108794605201242333456190963973449717266836408935232384969520017487930495518918251770153780758074857474310207149453647661014068282965303221923086198272385385480099023470487909897387044032224679319318171451568913583179760443275190569262309253814709235222408671971971281140443605284101126162998604467433149465987296396392489078223330340796435697810857780872551319676898012109147967650310850723373789942981977235528901932859969820457188435732011920858246604894582599570439334134439525973429606888493409700804434346646463578933184987065820372661713559958214430865862779196984035744223141304291176065378721732185237103383493463168572520640938719483567609519896224309848614333918960253865140645438368570150082459501534353068297058162335810705112192232356537896824675111478154085632017714776091893768482734133375587425399226283896250359753949678163368621036148899429453006386260568876905794147427955470594195877991194757125606800348196205879140012689827841077563931663267624391600602835205939306340853050309695756616897384381556489768330751002038410679133773845468008581071119937333461574770383519480734403076895865367546146133081657660541359966857280581875871418430658738192790233886094678252237491837837526905068469357545031937758883024308797874007877467478262838895401547510244444843670113324728696092365891009782740085056030804366337245461218657629011481058067562190237493519920222285579304007015624863592560268442106963042596622839969619059232422741225052816431614198846988697039968412639308554801870865897401163802461762634446477409913302123845826776572719670263115715277701953146354077603636356205853781088117893620001645510126956009442636990768428243911262077747605704240495846619238158238604834450921464353259700314059191040908372473957632448635326284653906023299790038425350371327512404577797175220624596659839622925750134262060977048023234719093368946386251877775423406976387998923221911939739650245050018628623622592204584239216145203164376281539497083846890488735184998524016431712180111394796176329406866979941660235920746933635910124272963562011435122733815435080467204023602829035835321041502149303392939678751994142193246010793463903871705585400567080925641429022664979938582499181483221030699731815541650706785301262617848429295483800302181594430226816166178482827136516894998650382459589807563498655314768880278262069860562320484111861370224054345694323174213075271290669693186919309129777587446558190940271552216891306886657487097975382170097129512181361163632217643503041143197393863140126544892161219592416849958554424361410288915344321859361354769667767066121475092416138690492172639808638566799903216570942234656968504585841521513397841334405623593166714708701052594184927861267030596149850645042707684260561319076735477258700137570008464295576831532170875929357124399540766406717701348681362075595239458020224021714239982386624707824315924595710675940082599306869143197288149158107661836616286234137780185655011182009425112606969422211966827736802471167036090732223972085072763153001182358189000229028013538475242065114996166381271905480878903188927725750863949239993356034135714615138316641216463590894200380544007071086757226949732660069095841934598002819245052235573769875852957119620112311986432815565704082789590949407971203983166757266395648972892473265388811309294756899212019302982049421094525672697292890512268361533633804834838634530847260618849111160062029329692005828844343331359673457877447644526753979988366714149710007352251282426481983639336373512878867252823960518743386330135719668710998317555787948604424323769855992635471297724997163839214317117481520547672963790990091931709344160417402851456152946146434770712195602614724179258432611409399618438081139467208125640232075327613734146894166291305071000552470109877498209623029457780586981058934867184977900768200029200221363189613005725599267897093198906233224837571533262782950777525317720423411377697593509539917203596969450567679773055999273963143243756206340071414908328951873726466026301628148553846114019974504673632412834087099973992267761720039201193321137185250279950341536514512203868625646816924491960508147947969271630312675369018489307881536612292713601978316054669872464844737205226965312156461605840557878171433071486716509931521228736350932473797142188856077653162529982427377864680875794646262406435904592138928308969816420318981528737648778230882410051794165544105483072487572969086036781528658170932622774111314487973195459799212455374894844174836837946095671656987083282655701663433588176899633026698634743091288861368723752885199034436650764073070819147134695647667466829786458719098308445969046716072784367078411793771038314805241019717353477336354949687298990727231714288209651484402516967272710403161915437305349336983159571732751278209095597325804122106570492627362459995729661673515315871048131655269630635930457934843589071112032081321960074247977262582809609355235068108837402721654755821594139821907221775948880123976618213223238919591033828426518820971059587976463055014767690749476753370411555935239896566067712661752913519499503271763747252293934845523812669101569633317532446099271496096502076386451061898199913014096535142683876019090975133970317390049866401526704525642643487193697739977367210439466291900791153140723710296639388957825914347380191712286208008000538015018617929303845868463805560047633404507093822701068883201847598626827650119794131668644904982725292299099482356755358174367572083763701760306631245121456557244674002939061165338889017319488962109394507215631060498823421331720693108096076331982761552837899639074425849737689196444899722430532520092722372935926149504556382704302721078168124712358851969693591877493717281000742694508752683710512441118418526817263783553425803351053660341198409888402145968648621590949524084413265055484156689176404440300463643400960210515197686676730472196890347491765111481824013284639058284797601412039920442829640460024386436536503110389979095504127154922344492860513385641676461447848271641812316146016553149403043535663710357694141285132963434780467064042320323095963318485604129451220114421292041852023880917798029438918292845124581508447676994588415790586090934594970255862436960615541822101234803123822371069332134879472610300874278707742027205103791904679487691892534965680183572885237527579021415815255770530348667825130282456598546844988012359390669355729533065607185770985025548728628743973862039822670483085524780169094121236469734481854380366106510098362460453536115785387188048711845970837161780657986788629908522298340742040472036989561829889411872373165538152602795893822119492346275195677007026079680468092612537697680217077302487754656859015080458778534698438070456496923854945343556255396101840142567549623769414825982864348605034238231851643445557332097786910426369786528480250562453915275598564198534874220223735960580147043832556687915899216846277981593651508353980168386950739814806800465161361988871827590488549320311284573432095530390970039686193799195320246098358926155400673944179545835983972534552965517297097072110358829991034412748211906837140607622683694022733247789590565725385459779857366715134698094524727098861225460527057093934813113641617785589016183062484274576994900921380893455706283007333433248472721065863730871619968777971918254360373397468270784787617617169344144305982589989088168960866200635430744101727060849906584891256479196960061375457246222716601060106770069676281999790814628668766564111493105304393165233979523543720025182232527574249338622524821165411657011195822578281103939287449410074289580093177737923339864225966889520955698673553787849243547672755524835947014584105596131897646995959304078846698066969316654282993016331920003160110728845717844630997709652752017715687914236855765312502806818987955745501036816272622345904958851429180157552779721223028550563490707696907110858814800085238098469004221824392755380319094034712760474035616401061894519035220580673373890703248009280850329134897936871937556126789297053865027154275066083633446935999951469315513479808160402121263245572525504386208226202259218113055128858628329954834067707532910258667206492676307523163113015748169342547054548134451872029956019762153077099557579028513315975541990155218504352164544204526606134665769799945294086577095240446320853216632177933363933288670614355556990409029402076342140427478402962492928139754393566162022614209776203018507496520618916084455355753378512601005760455738189440473435341510733277951701199883030045106657768170946452179510018909898359373241924456286516700556800604265863961451451705757543416744681595798842956294207867263281630273702739412832184132928847733477974066615385391415808908937656903246578156933672677208955716828742743106814447233508351038878259999455759580171115165924856653825090831642657079075530546122594316875574723185685829719051873703237781971542286257163711077946779778915644807185648190167640842633472110881191581742804373508480364420295901364681571975035315347799038132039953099343530705191994950119824908401647928202831328162502108002477743609510572933605054876570992627089961065353969883687788983428087045001986044392692326618286248027218046063944607911272234101190224529530234481483579641350979941502547249809960721725510898415666426108094336380844508648176624558591209465829439624056106863832053620034972069650470039716725471378940882361260611821322926987846318358769064832068019423881735047001842774549864978731012750590691099436119350686094843755129436950459781149515093650209317146098813135597516054417493183608440937115581912949814890038321446659748840277878665666314722770704577316748584800778764191748390688989878150812583420408095697623263484031185452046421743927245464527840623502623934983404505066752473604690270426066894859410331615827935215260187723261041173776548695876936419421453789200579455312807551703344193019517927315557015063272071166323325019388439150428329619293179709331361388271625131867986926781471171505352036722658847956635214930514845470065846529803978127430256873790249541824989586611025078615300857032577091385857615024612871966106401330468728549479738572042537983288799853477496778336773319656837439103460414373183120052156106384775582656655183925173007145370638545671288859995985836276508501512267929937783082496812551138624598457976583377727007742919366985369030429788254119846567035562922567152194262133672972720666252109180505864914359526691829148709629876552347445557362581669966595384078498104234461142382431650043865820525676740257632933017577985932311893035392962487638880187457761132958132082002979944567478306237063558691376748337468097500540931098860294473014316677706916061066456100651227823378569245846286348751637072486059409805184732016269411353928942424296958960240280425988358567248167627799049633580414644894664455540622431905749271524534256052759911394943782064569443131358991407172731094272092270156302348915438528016412399646029978019317432106238079480907708571016065118262833043318492457554986237810784506162442048742558064045226622806638666772905437929662193382621080342066224819350876783166337697793708167440786842037053167273034862361655225009349761293113470110704032895460141190903480950021044498558463543724673505446669870937175922247639851078111948620710987519085932100503590942018760013392523108191982121292959254320392849723159025421426305378683383666470834049355646483994605030197899074255072987703356465848971923975232521529958388128050397786841566581398579993320226339530205080403837504452045593530878667181957830787281982732378433710333204494055842093353890869575754300493058633004397510806430715736247390566803860026713052168371667307942202635544197831270540571595476026771120634130911479955169988677169436569299266131412214459778605379071127820404649436385178534889031702004342325721904499905763373800317230602170784768373960379499994082283880691432924004905866994379423579055008542594435272629265274708588414408629333266979733168053312273046269809916400388515226325637283999377456811168334929107249259067348468653708604240560656325314158351624662716152560494254274699489847105801018025402817322341182155364698425217164863032620221998625752000269944903246181852988399804558555354340808416200186042154471585774481459098275880269789278480657376610078911371795481842712674551927069739379851627615940756662827799025022344273412278761910809536521250648054618736212376004308435950719324971517467330969349164437545858197448167503099547971869770680222097349764739475620955654592067972351203887345862789705135182267242272981699375703173258928642850064291859088630837703539702702661139700332688950883918313493442183706858794595608153494315169622812742153548606535150601854072494075309068034043673152941325616531104297940761511304778919949360762329486491312159679193909890553888463227427406472467372109379314168995088076374781137169063289964096525971199838399843681789607245739920373717211276774115705837671598209031229454264196186666801107600254421208553091889634487724821239791836019101818976358682552071361759356649698993840688862545944161223846972286453489415590530295100847794369882902421190891087820477822676806646520959258946329439272694107883104873163290004813680321494303432690222849506971525808553453349985166725758752453584236367728133634545134027820280366447005097443526307443640184902986501831493859786532166040367823182409355287830911731876400349210388382464696388026228338033819665713663787170732506191140149379937212702676755222032505006076078725057526796776111203697726350852159544799992797164098745179154214163995805124551839743938959747559356553231490168697243749177813818435419204646630574423186457573239255953735818441808244221760813892866820550784070206446633614221694806151724455555646895506028219924798746720708019959609264969283038767937747238288580314207374359984889047298646618253281919844437772952196261732498551707617314473706963674880288275038047944726047400517042236588795102064858205254404576458508217476068433856550446255495591927662064575453225810807169597268525899907702254220771523816067080433675268849255615287801945908861292812288915266437976260744784777647887424351918569427402736212712466919480614031183882190956656472913116161123887682897836725028329815041231595609893663517989331891044834173621713303373156984659860943130382504471285892005659780268074793966271451190527848191730762876470187491927606404074160070441855780758060880575177888877790852237759408800673465836486487636628033454981443382824977864631477828264701641444577274605450451411935001711177385432400389636613442041068039047186185764024471735531939292005297978911799948742919932072146888161768526230574177530601838371487778112764138525815187895574798807290924239610661374886759542548715464573620603935775513233027693948346301207719262387436514023168592083800131251045172063892065905872684979765258903408984009510352036927944863352692110819309460990379924371504432632973248732809009184013805047800338389942764331942611311530547856320576469389605278078839312649054840153722544260409627451522133845626026280410736649732201133923549318848171034678495459239618643933836943588695654537404709272870273833044972201191253399122857155961936647098900908163949053387000073510825856007900596096013275345924455091990366054375267279637600353048039817932616609700719165790358199355855892351097000934494121363974569459190008382290672480837885733338232440441983270282899327652650475465216751016198830356333813807768503781083199794387807494320983506336569355427133218934099707951769777645954873484922793462563638452632900393369785577531333175896352762254240668337949836446272529949288013625436095699444182898716659240800014832155775829584987813908114761872956247138759570317567176825151190643141236443106088054419791435439027118043144649296489994483140651954017726062839234573276478809124480525554250468822797219964788387805662182903675309506839198530985391396003562461141784106240956878204727074505676430470372464460539205734439873551388044689663442189988933047071866245066668115328064282344392674351832219767803384894970050739667720938097789354499365167680615877192405113497429693163150382395166810692060034576675614971851361348381100003544740972324724514179055877652166735265506116295356930841179216271877701509757297799539535638256383643662858313713999114680961256475403533094993635555138873231466749174245128028755454522290390809755468133429356508466078990499323860976889988035825894454187096444340315423772541026479360878960315337203689594012424294444268920366010146668118977347904855648695119717825987058002269801872112936168084856357401818638238878072405191817890663999890373501591651799156235151630421629500264391773922599190011978685247355293985016395663967291259838512294280690599938086502304256906117898540237296872803091526486676812039633144372133162281285260175958179819020988088908985818879262336902320222352926891026352396701948032973112633780471407631428962219481712562208135586354830673784772531880202636905245826247436475556307412912088513996206125509807699846116466385819779317828089354023309214416951620516992072156522368274623196439500182104480287211307573723951583987423483464735394732375786809562199692621981866417388716369072082533770302183099843336222872189755309973223645934538376810086221107339347300496776746483680128290776104493164012202163900722326358292822971080651248958520923513660106677400749228461361806184875115439027841732596215494784096345071256871607947026225266215181022487855996267053046119723162381915254456532925459777965637800217358210892864480484472106603762131101042427388446321364722216126119279025549009619289686000021229681450301919299930693125412612590608543257214694678792193530174084893820091325380067969725722964634210260649107645131385535414163355838025257744050105660562531016781122064585150096115914754815748666100025653602638467090077315885905164555917103967341423522586879662570234785226182693384992268658363562365389686900933941681199687077950934072439088647802326270348901730979688313622146038951878233062817639696039482162960511047198752392624036179721077037021821948124284961141878216555320284916473041542932757657756616342710225498519287981924187161865833449702342845471896623077944749027785231238920524549167135715659179783676792283174924215163036886733309765283087557729868208128335589889608345520743696841875176952383712373880695928281757424961314458780837128408233686883303262757927180753146347109243532998176992134967831791633281323025973700044685936975536878252868014475906774351873554420612995001376410008517336748368822242240688549769388978274844352608363514620393099588693683248443816654431567433387771915766119710712877430251660809321883131596680182263882009777501128072997879458773410901968285860448347449462685131034163834642530534316050301519252754278680827892209148913851603136454660742887462742918393366410903074675427912354281269020040711177355856440374938019387047001969286678725277424315970034999251911378727083942542046438804074815530499071325758890886241766883027334229646416268341217785770117790335285416907608393632536153972367695114038897809777081402007076384998509539561865164348679476890257532420824442703521838019206632344064768758013341056275025208322559945985754224399698396576401641135273727326324761468597010654997696519791863138727287346468575594118571998805670421808095680439460338095597626715636133401189069247350901549890037183459895290474997775252882687924031932448375419870906879700291961717364545176293984783274372166619278626478482526116424725314412248292432941848413674159698844754010437839180501879540195729393926662295739697546620071163357195799343611313771427736191669932238381978025414675352143123618560578225936740641260821175322991116889451527179246905962108508441240253459696815339449567795620724510537649268713322012780786360465865022117392094821280697156092363438626466626770833389488512618016076999668229376682924562030916621105502461724964582927528056297642215006516604686102630283472095948479136374391368845314059735566604353334278706746150438845403659027435376464158060148056149318738652402184586217099615142429466466986727936436693371984014519363934055699677096002142026843395969744888393966832638521437028496401399747074378882598330920383911151747546451524750917718315639579890665016600278574129809261152800118473358247525868365070001904700873698286243007660635457341051776719774546084642478135896185746089539226264418714885523355788495861808552677248326623525812843402633017405023045931665580783150906002035550389474514309542238254824103978104141683404632372874388825826943447449085413521735456229667823349465019274784351738680938475957299236291243508536086555620064544951651832000263136368346311149916597350164540881059237142053968450863514286272628896872922964834834371403065851083609323549564705012337421831715089762559901968322550333419721189443099525745471841377027516179275394122361119046204095883358491337544270957086528242802047315429230355028572745672293767496551541544162278176257840393981919376356947827255627277832572835177843843695712233289030399967723336674116143639698645094325632764727234475126798442401134599196900783371810745469889691190284325028889461635950105262218957310268142769603979199955703099634264414824119625785464396779545765735265926181298090622151628359681674244849419746363069499500422701352429511951095455030928001132499319255156057799957648325593540879833135989957381410607091912098238321401175775844675852815120589110655381951699059803393248817792682270878241894379953672137345301845243968656738661085029767099292371169998293636308272615187529486508646348249191035409256126649976760448577896403579373283632918021732506099810810288782619241826746382470161166039278535799799716669261024562813331502702458633993829093231376660419610612331118333381763744939372148367569926496683011713892006782790552556835830352377618667234439317469775583592084855886573970862318893587654936205408007186766603442905676054053737329203855637305035985713916332107065116476345456489426504016883393179921970122537227714422729989593959624324675708131077606065082416846438881381058252761976100327058161112019437539396509881065087520284235789082439921787981037906629609214254620462483878213972395461808817375368535028531326091149432906439936069947246693683560155287436030877014316855152224440879301518432959922888793100649311214862856853585798608136727044224268544046194880200124799566624626373723278239785310152105928828811859501770769702024756392541553973888011446662918392498253412984181815048631483249091211808380017957242074006223446514051307571405270392017207965595720819919014564926972996647581263605100316921133922519964133255003228300880676596240467728032728209148325758656338790495178330157121307064425809462149027317944457828949096025118311273175745203459349126063950176443715501998797234644063171053263012565843212494073175498361831612944668117643442527967790886458460348268282905151012724754869361952748556196591980033653066064766720781667251090916812408855292181150210434369725864051344660164448598304040269900920138056421681553288292446510055826954011902717467215211787143336579452570084822462633584895910913902386498628121864578951546401984920623640396968143133208168750320116072539285336181968271952458179134635483820901831424808732698126331504091875107882201203072959854397975336411729458089517969088875793049478485951616998513090746155587716535847465521179948362702337666278012432794895625197109566650912699301177139287428989068874023372909407978824746527795971367636715347789954227256917198402058246738696173781080948081925063839855503860019860438404793867320105803673112462163128807089326628898694545012050420911292774929954842912865293343076528802847615501533769137638381088248872070899919588277246172166328508940147849610364588176230068286318344572386743379857163298562201369557864061043453275318545315547612140505064927430034723110307447582496015124909820564786422198030363376988642820807938923261571529326054271033946817353608691211274700591337137313351195208934973434622274346100712604593921785063204783897588022921610414316787120059593474294598817387362432568629394986812139307302136475639679024386454367004772255138997146247791341887329021320066610197383626912636171731177719092228422072271905516443594701596621103848699168226681961365980824470348372908229727873937783385055071283809054706967701102052977724155792158362442980953016752378096509662970146296952457050195275877815755037338093322283615415393062486023454327090488008781747038773844484641559893435236116035024684967939540356022147425557589895015399745585078091277189532779921888867690866926954235223767190524147122571577380315379510722119264724518602730545955631423119116856068421364939967528724874199875623558412892829806426512653880957947264724316277190625094420813787630329286820707458608748369045716864751099775343877974586972204120818139111924901683940632053421287789582437173305522888324216784577320870428114473122605258824228668110073278166970925523294448176298916969274048079146300866800571039424356320551651837847871001245271969215490932848586508535128657121679007078331776506079698879109214186396270961891255315398568877792926827056049583118713277635295648635184869199798715813824869391226587027255293875820279350049793710380978814814572167758912793519268796238238702466675864144051142186887584476417969279935562587058213645234646124436969504678578742795668158288757623854639297130476374446011823935355750340111123796130712039136651678979942065223111089228442782873165146503073943637900244498070049223020724504386205500436664938764044275332441947437669473841216552218372029825011118453959338260228514221717491674037710155764166958975322732800098663323496490260983404351850070914197978676080089461320576691874546355882106726676713210871064866973378663815613202376403817111845825364290953264391422676117007248148731218712026818808253191764580684980233239331977822197371022003419945172769258890495186680740121860414328050090113860104772317177621051534980727503365230475441216578441325231583829084691297251431310771985556202358066924082383477850884376401887374347151254431228639513344908391748822004254193772605963395810565895886803373509208612090520166332542416959806668474916573097628294518721107178429676213380767923193413215649450790262817623748527906234114120577381879167162332342338641531284776068110431134504076762482820919255543528213418240550847099848480292252712466231801257822681122987662256232889143589914734989977688596539092816887543636271476761425266865426146871339519017033327634478266486681979838628100767400174612996926051849975901163029826158594147847302261439125952751618393326278012492969612143271466318331095980236158862342916013247804596508938248993749914182663861449134915209115396029276624235884010925554749215670769241884759740516200044425363156047016243943383572096099079883389851837775951644030276916348166406423304933492744599822506496429441078219086940031089624255086052963733771576627933397926053178003639378922684782503709640493132778138335319382248131066199443098804617946160921390535674664050193284583469230834216760829312525429452888148619434744776395925583638977510845887270733877378262133219436989701665263748998963373020002427771782667034948547035717699060495967849720969981471207328667622054340939960949224529594072928027478659327613783509993429824776526607507321083970763223477887312678815515549977738511841122853311703395773207587013838510134519902112150064773577085334050653840702297938805491685417638518897968640503976223655102118537782512603228496467985354262402541798885254419612485551084525361060295605120427574152941257202709766760937080511643096212723433293973947628530529422726499649150063744488550537319569502412413947529355464252787345831066579003642073089084321217396597255729234994334387428388367857293109565612447121922151680675122263707088156958708874416996890699280702121801986566196469865542440285970767151746593724813318830001720159849463742755706556150808545202906825885708179305213454614985441700177986950074708773276827050691390441753681805569015578668813289503381336799074722489491722656952079267740720733291729995862520853706026183968511374055000044474349506296481609567286373634600324053571135039002603352761585998947437904878867912156528358532610851866781151945158835355876070436305974879559101222956384211177875630307549879636070176199946970016244267567685954098767168401551142566043406872197993515371175915201853861512152756596714075703785440930046427837718960634588561033358750559901613245574565019302118525483193987052738794633506152089057244962143216908123874814780018576543521629292301048477248617090432499606625595050657853641287658986500329973681458780155672071076630933086980889746260228715677797590642783858344446272116340630550293352538543466551494562621071881030208087056129714112660137107543157797199061555343536129255930121719351815124233900940437713216525178948773906023327604336720814998063719521068740162700788093069548410727703550370338789587389163021573526219451848584534210477363489710436334636017165368354704673755646287281166999834626380017184192268860371894753708833039194917245117485205261486109540177849569784400385871496219362424793856058636881168061048265725167253298303744793910890591038120858574224467024614400084507450043076321279221055866121759786074441081622649339660607427293238456944948055096742935648995494853249956781061675386941570043115873220235804772548494392314709818724327312397686687854008482525557792760339012939543992642603234505721149471138986251832823519745972412232070342071949161326928856273373023928021361248375706594860534462134509398111271998091274244049259572210163361854450646682119710500155130393466813354178265750180081531991949374059914320618390671904750331458982280726361654772248813012976430992979953216729019124197500589308123665588755013557579942141098997735127893197919887250899406393168971087589681370731783145979380392048722067084372083035992551167983891674208154236255911684974657736153665692612034737110586800479672369324719809357950994722423700863440799681748984999131705803717762939427783892752955972068904380509378778906308694892230845575312824653793795341239423790104160219198537965489374512814187433472871635741055608667020227884801871725877370721329790316843357315769240347245122984892252576863293429036832017522596681926785126769150027975497056898514077097870976008568800714477418546817330343181217324820496199670751923626902630643387744999136941496203379330217592577526870035884814110747337233238812433610859570463248229334839787280854139786734507963637665648823552488640305001037484379573770657373108072516490723486123521429947598111178903192609278857580520509514899679711030085011830931653638907429489862668916289944579306958510609234846242399762009380747323080456217430152834751543227538224056065589606044428644258902712084288964425773362224128565923623359681963024393034489192377318994168115375707342374025207006821546053014358732197327363959356531465916293821113685752188952875422252435459536674300884961526997026481721270409993834730850638476067877453121250569546895708445208712495055678747755916096618486686031389783353016004438085947783653632207312034471570180894941023251975414678486899842535038748093575398722097624513720982219741911327871747559246334087599184269480047760748812985280136481928834874214634489908942304012136565711482646193827900115655769480171525055448634510839866041197310171614822503929090202435835234554156110657522100175960787341312589160941739015830799641760222933726658200911964411108415399101912992349334430187716660723705394055436121810704611020536071165480119655296643605511023025476552616260304334346406782590455865446245365610653499112494493182152273197474938913263066523835983149192434837803620149995715297167591272869978943334678895076083263759034968033011249018198866873788343225143421729067259520429272006353756218809451628714915515929047460051876737336769687700267561155750599349226314471056668619712773395077168072281903116822059199154386618149380368688419898740424390023151623186909836223614395599389053681006606861215546451281277527598133696232631477644946819245486435718631876441384600830863317658745023659540968485512339005011423840228987772909436251520265187160541316878689186631718055592942230372518259552286188018511030884830111918035810029738552203752735829614608872027743441989972698548742138864791796073648938637626452963944843592059928548731130397975307645789797466433182771075645348994442126802438898459966424674754226206591465241621200600838022814314709514808886157927914758605386971685677446638196624300978448078232806353623874665040693476577887989565031846909641932260235630710255135181078772119123738621989189088920885069886636652177536499930544045395106673535184728998377462702981511886166068636850424186452461854190542050346240599842163175027957783824709103530292427602576637251022610842205705214082285325765420195544902019685852496258528849210018741108872903493644181701395358875932364065046712606643486137490775912018492541450306603387308223214909886999499611505682497312510159233863214670520140355599146198467269180071517423550735208341961613520727324205688025240143416283152504669433661229629992140946678750117935956998575017667473066719501162764267986907133132777604911339610617401228103585506349754431085898443182940054653595646850587490870858342193877159870252085055435180496593257033031749176205658445079280769241274726280011892998558326430220463556265137187564259194910174061526792994543114112730730769084048716582255089261598194200659234200979862590127885013931837043506166252598558125579118858932591713922881522819825644582388950832433477883019484579333917374851678382677848504539181017233873425292453447425586908429680315472371123640059985364302290446156512630763727212041299839631052000386949378903031917484318755588498452109235861731490188520019510423050366140030887439701103913484791864102626061928587138421704532514645994240841526976471189754234774450330297946371944805503089509485963859628194184039910187215670126733323459635254087654821730055228701269633516653288571648638780387056009224645978405769635185759287042078269354475218006073372197967839321501263580562193189509064969940860178295023200669186512976584623795170316154489488223690315580292491768567424545424600958204034071686699716223220173927751202525324300936992335890689529149020643691730880463001787964504122628260389697280206150788795569371009013587524321286295594969783667728703205113035432325292908391786579126533536910304793254906753841610966538869948711779547362698067296226068250865908413768267286467095762956089576933864841535497856711634752411584085961985201271679092189967212107915038354603700607643393228712568520161000667632589888370713018978030306054986491217653436730865447635052231379651133790410788743900967648810847985997661735075884157932824353568341954469276150927214411239077819175580413225440029079981308746996504870880292625434115794667936002499433555291349553195994133586039846593689362369833072711898872704969702647141490909300146463860631403476593553499739530698704312958894981885758342480185307225421800927327344679556766200103849988141506751013977178802303368060898952216377584204211525844573860547091406218695269059070761758295939416107013772617553835212632545852762465955553843374480981431087013716771924170774044785157582829968160111625416743188582614688406424913764326690680654980789494734084072003180240517190013887064010897474031320922310364781409174919695631387164652837249024966873549077883432220006033855789305000618920681763780833246813424535126912664581128836523635308453667368764038980792357909610317653148589929400370473454108610807238569369721252164024923408401189816918882103516962394936010595748494149506142509692909939477187383177988584049363073012505846127058563558382818826549316542242717774968079822912386260652034176142048104825018070913629780891368500631963332215055103619955626700695547318161961177229382915450498071066414224106135573428648187907232359702409546049454876102222756761593426252600247660080842314405189947710292422276610690761567966070994141771650656750115731630716701786746229997990905493954008796432837223054419559637027352519304716969377587377099527601673359103421975028969106511722832146071611670323523120267476574101914784630198218151897013765651848507802969612900306050809031267630578719878843516431528942369061790064417676976521772414019885776755032898937817604882636818650351427441437956651541189558320882936572127357177793982824049759711795447688577352159473390884319989186948703093921321450546457582797120540097343755335265059779535850499515201129219424130538708488098204982816677709654028342150061078048582739085748170486738357770505102046273540523141593741420809613712187665298760939266024403524099869265224554831558388616608485669867611873633503964528254826693293434143927265086524804891066210579764634501542907190081838473207822746401411210917398150987429337488705566348881198166748865084839746489213440548459799279496032726825673267503028813142163936583423559511946112706066587630331296256178814381617610506828772044035970026726025979730600531395257900167993744443905228418169290768950163375027489390338309481403516910484865833691981211724891153242236730300008911506091585947616751677127895130860879221574294252746079275025370584209509598054130550262623300744373650224213213350482686355392616473819541731121403005482932528291292931418057994443758190329349549628002583838960725621924537712150722204541111388074286798125137507284980582257619511683909347521667072014256914029899303259040526116264924349843130216685681775649404526766421166743414517546734405246343027814661211832590889757088782631371381857402889019212876195353411865431077147757720445405402803422223572886786100035075472616076428595310813793546122889706814804267357368146173797987686159663649804063148763075328343782220058343439870045261127793015037494031062124913137534637345290364011588756556773265942491331859120865203114974495452288847902938318718704362426827683795746666771878025121205935393928329409579766478717772249621750241983941975533151372956728592914618123013094634114072189908315669956862619049787617813680827756771220985671778449802513474171908793426150731667359506392632018219408093395518529766353276595584760774727765137295544232466232333384195545440658451392243649205162019533045981289808290049888666911081639216237271924344074794791965177528006693845781545315941724088517451448213388232237640468874130476440392826022292436739072323468835177357152499281778466793963473090783977107757849248481133837363143401426556014162518229753661366095253233344834871360742167563646473245719090977191914679258955200251333461767280803534638581066454623827404873812940965352351936039695785350752526488708198303492873878701104125096485934118604800143426624181094600736290621308894568936830141164707503349397941418224887101479021915371860408265767070882488104256121477324173368460669261218548017678427414164027264720166210180930021654891041513192485478898694435995449530530298252255507515731872639309493634174707396750645854050688354313498147104290829175450868021986131882993404696245653060461978326038306956978625803368959604458877547278342484058674625118622239146673734736509710910187677587940460036696097571040328124885570100367220962235267809573334091025539427253868676707468119950934471876724407860416955402636305645609673207823899385209852117623990029536016704215179294234695851205367279305115872552117856433153865003239146786054483237371842554495557876140575273670336928538402757982777099028900624730761398450027660158663574648102939638638716667298979437415286689470447023072045597175661696219534692553970047416236673420141079065524236133368315957311606271344637470251360037886091924121045698975108847853868265313272890879092851755579091532756380978730372991205220753157933597577352818640171345221405696436067600236744084146671598811274666370374692148744450861997670748074490492657311578326876450040690393258451749065107562574244942578687856277761799164347297879866942858502895411552838869868082491941860269210998215625719992717630198691563488230738929816736973317166538958020366473754027312510734026560727930698728772086093336149013095742711151727340262581713937686798589744855018460920323133616724750582638362453308463911765254761592643368445148427971737627324467509476467200173278532808883536017770728926496215598808483922847211642779312124451858140589443680854483908562891255435194523240128003471499644573652113517782287250694869637860092958362039016983832704956101687137385889641200575045478974039698338533893999939823770917167808367328380118823513714701223197026818907194137100837985257633251509551707565654103362478679090587068083550625998234492633144375639400243550591589003292525102673827104897559553502351213191500118120088396441210401742013471052016252166648258002187752689828780831893124047610124955273400661228994682637783363325884153729234045525660964801373454854893800020040817616148861814566354672935100900120485444996899304545102240039714260860671057353828319992104682446739252074970494596669067765599063615403489742073211172620846100270904835582437848176357125161900892916941364227249583101424580334396821380020250322076689028181892357952834552797422788865076453330629415017333879991781503365919723263826071433783507701781577076589893055888710960427202265410925313491868283420877252396010708861315993910915401486656291152573625159949007356357652157415761575698775391184485883621363542371143933907516974584690995176041090415925669114822103028631731076923221531371701758922462848580478831266005769653518776052583781182122277163606729164504005193678343336928853360751047785959743753956760112808599460025725365437537652722161899280261891046341282987163977889954300919802742433533674635555215012892985754876344285879524962145736758358113775794642897716707436381812653257988471523776543561323864479648614908272335424718189383960749553974399553214135133806199243234741045325953035736169959876935382142026023561318518464762243514305004064139430227071792554113607642740489028129963362293982805916003845014514091457036175182808634509893949141213046800020021124291035939534695101152450776282299226216211237764789206472111278639597029169848191938039793946364897614761691180416467225232052806889078785952963070969307077162863481479922064312564322818359815070495665648747871121210129660010665342093053417876322444857831041694877678510940103879329813313810881047069186973346846513345725997081661668227534134164261513007321472892155282530233662199859562655740675555445875322302877991182456211201112781698067573372954168267344789004613153716757047378701595773947512329420312741456432220207526516805017194982162116551054344018915260476500202207290143897649631879539391662243092092903379058439937185552816463140661546973355524796231524211387509431738259793847299728805357473994890751639205100600192811028809498713342649493596079423401131572567700048877653955966012738920205998314122240136375904814035396816619567320217018562969734531671695413510830567758398723414601935511169257458930953704543572490563750157552866154976000569023378289799145445279466739767480503761721751194508060472238721573172190444143694399849668328241180497559619367503092252699408435744361885852666750080224192326001413869213643715426929295347222261719485277579469231152077260070171186055510419006900867262902124184781348187604041180443731742019466227631192902856076372535687721423192827467282874680641239975618074816199166353808504865997918910261008940292611601024047098435645346772368841733760943172222343910070239965554998594201419438864408937712841736984100609644167040432838951084572458495099210282443770769276591579088310311929078959019545026879017705414092369443311735255259032423251937458691248908676147146456819509144709432047879588469491053948133654216346671370298117214842259968246073210531224919493569285084644302560213673741829668143274157667218837231499528296281443868872263518821321036695948677791025559081445422561063090485646634936513971805272736523421916529936200981851854117512752450092621924951013385575401264824493573450233657638118555942221011357781231883254677421162632953974679802165346734144443726783140177142305174240098978083359166442626617093998151545285197514081578517319420589408194908719075442210126276771324549983441411819112878802233874483236426351035811109404392296588341514077243801091322963157485046258221690246019668971668524544932314943316760225955899454334621013139424491155801652640674212974674160586085359835505554723528833659462828648772189286293661966621396490198438400458829745259107269891902138132441837892082356879230502827141024002860225808298689583477359881884663496336313685378323352777498673661158790256677534363225393737629640253821663886128285768786917198436608072346926923751088280910533134199753580020588519670540001420660721874743161220640909874899805536583127684809567808202012384719602291821853980472035657474409505294625493867314295245200647239195697701845734013858814628209757898527404995948609173213790945307333177948111024086061675924943154319677047505872127042491842864389887753475049412202194080083676372695986806556640835389766305340572617379281852286265959390429945714213958850920543696335497067053707151514478041109479804069502825606917206946539373586525665986913861607207688085791898753769631720336355604073292622053253357377551596014979580022494271028736488153657126756106472730151394994158989583478081146564074374356138870198998905275258299091889206658482239397117973561437389814824632880799759353827232629390511393208185175845309161337150031332175372072510838093524355642359657996736709098906563181831599536172762734911675379251097923640747594923849932494044224953808667192962396966001789672273754504125344150901650409620450591689719394323608055026523548236813815946928861266257211536765227474540202274310566535452624641538327790041741158856774648893693571043439152100702473869812100448264321663347679531804633608860470126212071600020161541158408880970510645234968798503303515762020697347901103416403756941244538916413872468739916065475915397971393916561575701143696324739411241134895836740206353940193247146704640946565490071563208457811939382939653768698285763784633242223653509846034206332558451767597029756333131842243281317080792211799534796289684015234173227222113713498453518849438477891429176159201743438852620678572797115460285509855331855110101012858707371760673822212954329555816393747045204340027842950725123524828198953035136661157981345475459763319952815908190223204714077695396048959066095928832711436914016377904978423487576738664118727564096407328369847204699395951737949612733822523267130310518405873500628667769755025463411412757609914405424890487447941279045700612153424041380167361011804533735459230403274659625982949635319796116934129074498513451221707164018927245150494783623518607466507266903276694789533521304892593565866964892953099967645278161385803889031886373261109458587322105197019605121191582657188496165875798927224588417272541580236998930548318046373494888848443704431321938611036808046752157353934240378166460755828153194486227131752902972021296421765520978849354120333236179669094118776607433145134855895504276325590813517059909144574728358568298586438680746571504881318738296225161493928075590587559081179351688774043903262067399649351550899450137381342380911319865525128899756492533657324807543436258458030725089662173237207639449451005145252935750449488568893607062183472184463545529449715173228951448327145296974617906427915389091821823984041843145914485368128320658132863833052962906267952382510693091212418111123202864096878269945122981412181363130214256379563097737592967207738661665411754638741506967904977134961299529518987132951240312871850398606309784480409835075545497303162599905471037372007479692158957132872466886515911012153808107220089595917685055291273464012210214060131079656122824738892458100585181861011237637376278300143337344994772854496595694326609129870592154393544352824858892262486170373283093466781447357187122272896430895827723717280816306223765516093891346633516995376537347547106320847357880073594490246053157676286829706805351307862872362091158260357254443616631301144126343152748910198233249446739097644216817578096503120961889882352598876917140732381670163669307722387879532978570776799967407825250567130033122654610167340617973656843872248380164000219507436328192815333006573705664165139864258164298327391861648017351175023996236488851489115815917140045768796141086795106570099382414476484316691745225393192791023597520958363506410599237791995976001477773159205434649758529662107761776925867019449304602008211337367724319956362223855686924767657259073962109592770417535077406670308038632506932223600393639360730701659651538621453464676657719091254992778030448040692934032908968808844064102964549225134985552570855747883567029220365669491956171755034348302107289708908456436353019775851268301439281751203012192541736924285705755735188918601113288702020211771588686454321602961564714304096046216672168920047581273822214249444055655107402563771908172618236636090363612207499083672421144075549284790644471750581812565747181808539535325725247314288372886025873320740136073991281151395352070564072064420455397809919577094049677747659534139796824856316566786275579049676676427764411325652342867320084814087914193769181993457483283331647865448660183667543960923095453841854886124032789859706091352691538643030610829541882038295851851655735879457059041985868158690066316937664443717137200146369503456570425416545616023777050788314240380401048087383543857243497921481339711844043900441485321853915460570740664759198066975742112162149785717265203095932505554552866289964958069900421480879673587727242769096438796047243339305383689953806300537297232406867658302675097145509348373528481997783705549972589186228672132935615921882523906448132457723369967019760891115468160782362662038920330665840055424135592730948969556899474565667613683049667614398333596737865987323223797444960895887990981529481632102943774058383469031442797312180121710826672734809474340465473905500582552259243295439976572480306479218542223483394051591495368606890723822880974684317770283264065296172304291089148688257696997526839091681574699024927211921064570748774969052451401447709176081600389136739176373821887773814675845310239427015519811249611967206533527160416819822745029188805690373097490447408805430846256678730503509148275279830263246738637282259966420894780091736699798359302996889170149457299582225152709678177267061957449716255038863704493716860149430586576637120033269549043065343918695803144251235055662214136780266821925414777373060701814193213329700556655964898267331084148456683459099900115679199151176508214925416688286608069463382339479934121075735463708096111567477635653828181732851793473119783053647260064554857377710150833883265113002126131120517768245367125527222527115957573614528437715626202911802363280833525616223009504153898220020783965901644378386836082058976053516341210769593324611059142473751307663271853435224003235875798766474496606309525414590149323910088413545463213840341249974566206708808043604521094551807009042053428332633269836649561013550308937960449877780939923521160086529309773638138865518239757550564136527920867558990357707228304923199433880956984254136222039554139008980803944383523720700259781662675187457757899218302237936250528256789414121433241638621429110938691288311616669409998807387718313416373656116654803796778719008435616321634046705307305102850718795619394100960110041917369781230419043293511856547208009367743646681577450887708841125252420804278595617582033158268554185267608002969383214870228580228960854028952916105101819673981592459177700859357737242155851608772099211874846982826108648895512900787960833710738966567594594857309466823507540671963115107977299217750026429582183813604252800941984299536241980615167414617342162212802731071262549539841055313688096921454353585610935753255918130082133336145646799125262681921286931812225455766010360578892257668602541824808845388643593992883835757600193955104946607216222767994947553337088673933593982470361248672078356893493525528055716040503746251777960025945798316658344079525355576256170145113082855817033935387967564217653012064487836592287590060985357092984072045322356662351551275575124734584203575082716807281332956412351914321930809333382113817774407314580281853155882429208100441684199782538930383794569530586584153356133110001316404170542712081356676344504581448347261719309511914699443706710474836591196799820524098657454177156649858127932789680763094539981129558861674479134974442854897166305669201434103370363113446606891591784974711298772163651299932316485160347533906808218269948411445086393075148894095217955026516894925369815847876925733768020447471928170575108546847583250247628548183473252576669704395192164572638601777966252822687879481098421926286239763199586973342063298039715496873978439426083873573634843040216786037538613176353547398082908444859258177881840310177836920318169598536062320141415248367496022928530593380394917338299229745839628526659656612405101979628138771454260636767585165397991962127529338660358008751854876398518532237759162203700809472594188235755754845723242520898780302718807440032239842863865506937676392626841062587750174515809302295540030657766586840572287047053660392098815974919364346873871755531056635799373845247346400909284409524117852231348912200569335908004251470101428211255693634069580089785049599109354565324137675241291263823457980212012858159840326599078031187861295564792545282920270371304836056612481468461032387264554132414553931950811848905529474854394998475524129988751166937740401357800877909720484310292824066676383587709414478462608506575871515598762473681013728690290216347579553621913836210545130373966016365160944501311686240704202173864148644800751966064454817752420391693156055915897305984188870484274829872852169199006513664284325263366330704755057095726774915969062192074048798494688682601641061949409707446655026338698869785463353097280811232705568699436021617039537734833832249429819364406696875201281171693078739421401560610644171186645120650367369955947399160487408716663163131520731292037578055898830418691509933219479400490525711336381560707108224697783955516774974627726911132135836706877555882843453481268273680801441872894917708091271217194858778088157379733043678007607117471804448840193059496637909472611427499284408852147122605586340328848494971628128079963463476270010903992250498162631705990698734911914033417323330864040759874702319816948964372803843435644776235670971961940861847928238950490261963866139007480307133842592838937503467722118302576262859831281503792670715479479794662799327853869467901723999797830792497016635465645036468002430729452054856880723897472150828526169208138568898200397593979733528177292944860624546031791365104909830492972849010454644986586660658876394509908242658479824068014653159668855896237043301545474842948789189401135697345502183560008305756378751937150860005150797926038281158426543751437986840384281172511473360215974747277464773059969597521379235739698337002408383981554720841569175689101839110216549949432047610880957785680174909660607867628051397696086331736615110258239295007545642753534204938544901441393807443347591230709505669177616154192998667931917663192728874019497717958197259051745513080870469225892031189728531270371906057145873166402634048422153206213571229004608189238312947084475288059910180536212703747455190750477635202222556001169802597238096041821293234502639564712368377156037128849807902222867995973852774804555275932846203713351411031623607956751297909151697961275533203216652736542433463873597966223521020895666319003018205601466527757433390367578523689191381857199085267778553407365614572877228687274808123400884882498534357032782213062622544925779773484883439142725978144589339992689080338659191068900565307592112100762614784800712434100693979486171767814681638893169949620161652772606214964546629175253602818301233828414446078910512718150930162724546319298559078193776005935144393200452475889727524252629101000499540932565504361504202645060324386708666755421856662058411307104375042626742231655982416456386380411756500831728794346352046077000365943226278643503414735056263326072347932937925881975243200480009732102501982458635057926701200996355689996360610621799394435110206156712139646725168165638181078464970544942551605850639520406461640978245644347127275567436389077349102140809314797147081354309625304655957188944620873114246748469298411736267833924869715597558951940953609077421278146136247483684538163377699279771617059852813374167495445371428552794217545047198926489806773059910074988002652606355521009790753348406755655951363850914370983410382701950750270035025304957372233103564200520074023320124666448059623497611746180793281649014702586102849234661581287421107955808440109093902273272368146576237866978171249868980805381684915866472593991280010340794326075862703915319115687787870521725364729827819958984568909152435978893190423474245399916018267803877919844997111778061919606146826001077159639436819329584440252464035909918720004523679405724501201841566678515268808361507585484007324590876286690189297100885929678244183543624906900095691723562855614376984500602510460063311537004240150100954740867813555852172896852435100840387897660960406764011341082479070958756174532414761431161005040793849305915395480452830395211419094263305459655298945749722553614930121262824993068232791405573849453148886639408698063007199194022525653678836791057006729264317913725088595338937061260870301577868811035212015446791103489480571046388696356201453075901385192757388259797426818529393217053543728191283438217951772195333022468080412041339752940443029272940208625338370070683703874737012644328530129555632886943493326229880411504350261972841880662588289565382295754391139705838965081849293269800121916586835821793466310773039494122527115830147486313150336664340050037779923068675130320465460524108052244149522738779524345494741599160031085885117529129895301128267934333936673469475115790481684761190501732845748469495121992149211988351997842483247749461941308084587794151069704211465924015208337602127527397202396496753248830636170440855311972853710867363374825581857550439688016998308102988879900506386466672324220363793174714750567002814414274115066049320863141180308888345949226309101463586848517504441753381218431343480121701469681781094352563973916530203038596615343589496131314784912801112602672920546841037042465148463428385585528421060732832194664358313457927558276146749021291609996259117893829639393140134314229557531838325228299923764646726490364351701697236404867133893566224226924095776746847821063916716758620178001137304197959514371928467792012983055511998510156632341264192780170037568767804135327971123612285914351023561721130590010489071810469223483430027921643821902882700271483328792702063471545450315576559361150070833908611475578963523758095550962705841734548311696299425721236372784975006661837451557623271012396756208069358041428609011001083350241874516926257663501832127751887572500853728225608855813876005500219912297259736986087181811694677544727591986260983119635731603578398562899319755651241265834715835039158588748964898467945523765657271601386582883059590812965406701655959184849965980322348512811791078865980113176660351021482355014395470006065249192183112502464083799234958129925139378111547804044706410628590358641785753000009103372997454023874336582707917020920285637711750715379980076518982932870660540211442308680966789381765401188584087583791589112341880400576411332233919706408627725729357065965978779180037253879073162724614095975271264747023107159463481054187266185576335941536326087126950624802479834468876289148038166152316405615868344516402062870688953575238611138526115604230773649202180177014449984982746423653518523290778202019004793401882045897839276323615200289996204091572256412533547610591668404299665213840151109688243400274024915325328235604351037784526137108792174591914713204279487673834507984995078034946774610715966570677062247304695454151677559000993881991812761180777846441895946765533032562614123279112668151238050102140695472504207016126957941287621136415646243286827001616020995336456697684385801352070889714473055705324182936683612970738136112973049909479957937147386795078513959195256987732200736105040307656610364422203986929665175669808827480728066650018430777381022438332409605729959017312706398015633338427524110717625581604529512951053598427838806604669514801739480786617460101869169461776368662975704909541315115969028049674525906153639191592529948927444547148812537420346218873861470925283702511668032749391449125486714339216315889574484982916268893113578579678174473612249914681294569148465331716643140172748313397880543622525896096633476809925346991366785576958580679467604897697438816070393342512555387293523785047039052605061988175325258526564263022473377250417934335135703863973794778965846494588008157198386575613683223680164490483151385229755089903389318259005201964567416642511700598952411082783924152715693041851093107943136459685345621533836567570157939796691527359331322304438972841301337583202912524348473303114134041507610282186618836384783792745950306331436105804221384024138997444948980630910182990640685000367736456444696270249452088962244250316667283487032553434548143083777683936228988149500375331103482799830286858947657411609821919653956178473721342729253224988295475361634632340498400989653003648511472287803423753510710233016790580489305893570092986945210169330206657768095881740638624289304247960530485598316151244107969508641070466207139119261399096653957960882433108190885108800315700237974920798544167018875613783074436817423681928476160554650715278269559864325271246267527398077179899117067220242318653807677621347376085767580001496266658155159653917419075310514302116839907088936716105130121453534114883722175221553065608380805075179109882163678060685730835321565662685876417467001048865672833691983008631776169928789302901505221957692052641800905049104883891361096742470177777126698115776731053522936503162021383662833327632569585397339456758509387908672394637242264400604491903599797796764244482010672284048509468510267998225529829825148693194916201047033744431769661679500791989670859245573241823126284660002319708430598730540518180218167787450932697296422013583615128453363261405827307986233038643943479839218178838921894802979477485482946036421553194960365589589052044862913782078748406574133301370149489025553159366916142733291457454491632900251245241240122077109384794069870789980374179711587972466918462063526626004819539654159781359398919283297669616566769559635743119989082738266255215738346170567547326348840287053571891081676738445861562630726729600974118951546492270217156925889010556311724861099471516131851272255979328124810642778816699153009964926082817237944506948582757678637260571808157656074012700264477647143971785154262270917627862024550464741479954058590494114854349525233291600187745861598412294785893121857532817459033534315199116649204724748576908986661659175281932811188025867145359862387831642982245616621074301809921228197187557172826205629833522836270341781762016753019351353732191050602518876109786602187809979104691770210300417480645378798387937489074356427160674418085695696861733096612483050201306164830076568233216382900170869895186098507932372024458935653847867629522626565562150111733155842629417379137738317909528922109159307556151395716597513983511871760584796662507655796170642470846165311586727143136546689590465362946202724148629009854714198573202675690809539314017139525226914219914127541518188239521244726556767572700734543638020780866529240912883655396588591561376182382179919023934853702873616615944318011604318620472484750088372993667695447049403952235530623551569314936360403393551263496680470067065929206106822030929070802113682982608060427598846001092419779590856863500582331635872785208369131284474903191007486743262534858339292918659990883897406354996686765497148894047664064303737283635932277106906503442742693233681066458999979086708606166855418951168660062742700450418389906104519881284260613651427711897430693770584931869591248461623762827142926344803387128565970076243533437026779272868615647961163651752485801661076191118373010658208211857500833102838420891420848626470659908079289843915348958731126464384327255313856500036830102152567782721486784380726384351546809785254680210949662173118618285432012395720115217998645234991685889144707209358112434783435677760728505618143793652860815946196854758445597633452197994164977337870056231412192842677995789119845516073448569797148298185586452906643161601244258879072036364511341282711054642232753074282753119321333589841761351152325235903824368658864273623862164020676233592893881885828233909461860793217914266462431254757464312137738161419766506960154986483943258322035767919412403618963637003573442911915678065533892724062012073999719759563936660265994085516073302642881664382033725372703839114477641450091182563929961734964944434556159269805448691031686552611310430870437904034632184482434078235440460440451674076434673934058201577679413017214564116784498400433485544362529332221893173341852961712672846805098295802128920793521302835745279313090090307422368413955916118491838470001716721141800449734102007549492154891756105955728885458741766999951720420103844601988320099520596972050139375679206533911985975426543103297279891306260211409896236767493103138116562060212367613447269714811637894509784576670499696167154824781083092853634585192880919900680686464778884362843954525251528291743625312850815908303778875106706399834333522649825033914695572154588134083729005806777353469157577466610624655843478829152877053492338393029021558933631287888271702215182181006427902377174804406849756433348030522281742584582261285201636729226079789344703706782590830123134351927458575019077175614966335903479826873422677968928157932709478331523418643929955756478161082368941047546704018488125337583877725510979416239534490253704930166728348239472067973843510152825105920528897434605695968284992097347908272606679425451303580032035459188151414088350208334620627918723023568795046817840462345879221427804256055594397506300224089846451016726382744052885600949050612553926384962398305036742560557363370217501222412489375463790572743124396476597693136703897357703318597401990012874604664129602400376512570247052126134344070892302117799198099788668959430930153378614634086989097890920700451890268066130047445694713070726447058323737950926614889374388793563488069913581948191986933424243531150187195499135863115672394618779029916726687075306049094138311204108704824645618945183057766573083488257699598765478671537215869957746477406357720767348155899819005852119794056200866181728571777600040079016461031241363754930195958304149771092472451947481067846870976983881664925977166475911461335596325322630564952200796082017251826538955616579933653005683768691555230777501612505932394563857248899002756803796237324461290573506841061189487901541296497903990612823812731233137959352800304160183674395414968563451256732943647181476987475042245921431739792566945085052491362901611525699982036719310209791599817727455101533357477693625805348271799538103656830141580475366530677206008457366390665753372218496102805783324134074221124862651314144912974021433357882563573562610438914797736357101818643921889453538153716870083861596474272438833750513071413686248102702219233877699120935128847469512120075179865972601828068298984813284957252357181015840109805281033262880222616002391876177008375835879133143809771211148634820791228922698517350024687081641906396619283477995139959019198377836639987427591304760781012947784106911582059540097257326705536223397550511145000047109773418125470478275029932575330383528281830040872414026639389647207062821471150628568980135108777794390597381617460220716830670273932366802974698818569329050601577910485742479613325157018307607305357155607258061696051507886802743383419784916268908623159320841002959267154270710775908749220545423616837505225019615679631516571647255097989694392326342802628777921999706054780933346395234558521966973856109546525880031938649387600527465543350859376563221183307475632605422806589115078954388080962667609646615621073365774276265762969135401675680920903492954686791090483136510368411132796129225159942980447486024516686108337056629166696135664720790329962889975714701467655134939631021671625999534428134541969462479111938494896784905936784723262046742135412376146388788296780071228966251027424344614606896458585703078048272911841631229182485927176324288676772179567208393745866367883856403935887696511019380864761984235443551597916915607804691643032827160053899930159220827876128516795427587956963008998332889769790780015641745380773514553622314381446764079253686711366813619350217152675241819186920020551657203267507589585676382313761073370812788590174558320445793640470102620367741820333368076608012929739622602882586877479824663497818391946715555800932271751670560241384948277140808952685555284821452818590733670115660191084380347520758684777295101777895410533504748162862177043841383488952786024078981537991375568768040854683097045433174328006074558624384452390646642299615788332753120387288839717413139442546887570542774615948808636687817086995197748190868385748615869222487903379237135849445564909896582658767641991717513515081340607230864214360718464441275350926418368208072895665327107884812588125849699903334181456277326495637786518473679769350626591809888374776896975292671134672271130514958517218679040565108113882368700394802593150863087717459354995684450547779076050187634506823501377529702070538312296677668247211609383526014595646085187752953689294365819710563407585805742866723451377368974548495831238368096181524490539803723403569310493890301503204547435629469389383307148226767435210587198241594789668960243737360008927606477037844563408586624035927323350872916249918161289034813268344826849416692866000952662686060092688539282743172799180131563960194402485894668193715228457827423176051653673039602396328081442238198509877377992813608935708018974534227173116294747633655040422348908809943628130820995881644034125619705903741416028431912832388384049049591035932271283189617748290158136513724159496439122044806499843067487867880062887201650673944348513201851510869649567279887347320657194857207105811642478730758585366986163688701374185076798809720353341908403642831169552360875922067722160962755416576212873069189634779988213388165030717753192804800128544151379985291350669085444910563768565600118877001022400640296153155737100299929737230568358835189042675219048428427784966809327871671630578490187201198459581401922257931553406080973789323074591237561356191019007154632196417164496180383280527281734478296441972875309557402829272995650219193343277191633711386905999398664052619801900535787013272392024450484945241237328217946117628260327364322820980371057167173018589692050133691379480904865544437590072153118014954270351957385349466088894135171993189953690879161508832951966142992199539656839959842604810343989345137384716694083524872210984543480176529864305654694197768485684906508416960971635742080128807388236856698447789774387793989466699682588329970337368578954479046228168240858644644203416165434846106206053424960714134273802525772379847100645283043066035796663533955762989366980630726849257262177032659913960293765882866929552371542503725959571771766753984173722150809185229978321524029054990787530136684246585378718959520087000321426486995632429453082229603282772299215266518289476704585716074391825196309360167707844500021513331671855767967045338705587213370188545168463541442043847984578633482166087575191505134948356665973840109689016610694429219607069409028225389913292979829275725931433119066466382994179357264477364493534106145879166981211408720647433279833968960006567151247515322902689395352708547482165531916866155775115944021539421589642503667114606340865576036634084752623469590443350707397369050339054789447852877145022415804125655121270135084573756601091930695401772184078308758375958636921826681459406029207257726867901859235638699938755588692361592121856862488894126698344418445176107585709648249422082555356999021523746612026668321489637399975751440500460049296415875474052434976925138273725274501193411653901433891186077237867228125732383982265495392316687554934143629783379200376626020882959476388699249100777036548687327631147695312460511780950640216123177506958145532183584453693274919018360959779162406512799054317013426257686175758166337785415906654547456933688304827920304255061619144439005020028992918324782515831237686088736263028642566029818954667516651853733075452000221754214633806776232934718021494760267424843310540229311365275588819893860336091791472909685209282929880021232995891196164347366680301949839171262243423924027253716098907598449190493946502380282943506352441819283510137238011276776683026721381896072244838759406282978169668628069744586128580070819915923881982715920104833694324297124026899959095830146921402634838074651522258850018037536038376358447286033747356398396371647506184447614219641220120884572108132380207768668153832327643328513400458212437252543205056647411964717100397076639409994687797429200040139667063751791157743205373425108171522588304696763867848595286889452548258644817009059221111714666638191806595639788250272612453928508263085862133020141668498844299710984893133208124972977032027631501542749485931911201526626336766163063701562969577914148437288640203412859790982343430343986552643036067010961070481037751785653504618393251882616988033628995286255066859269159293119682692865923977511573886948851819756884364580642326316059811685930679078242222395045233136864287006105997284232907387486489478612570709652408459767767511536879151888712550653840632742378260483770335055449308714700505805951801544109231729059180084747703727019765505910674290695428091768265061029523835671690189351625547380899065820819310542471313156422964760495389975990920913261350984663233220028053920952686559539112015164629089103803585001804281920866756187948455983035126147637638070194871317488547215117446922236854481736826298546908594457246759095195435262677613612382724701495462074230090190253823808068091701313734435758247470339779793064457493188152010218637730341794738588111531637547206704841053150099821862819987324975266153495950665948122599211626144964898653954013648423246564098305011562936370871791365423646065362465461973372390544986990759550647320755337814941423470852042395463071906294806883873151314965454425256074868925969761281934047708447457007411987414915851545336645584320039102482786993041931877644812225020156001129474096943737756272305712044489154004004696489455988181551884309154872779907461566451318513419287375323161217454804273565854326720527314069572087028924356607056364827424855842239788331717831131501183634665871118414400952697912543233786119058031505559249503421518307847514309119347290207905066296191442427656244326592082305071354610820327248746354213112819378872256858030503622491766159670314864677104417663924754669747815529333725437077214935816430144445582566685553382907836295835816682185393521118828328981122876791410747997548281207499376815609880259383592102784189520787802772489044703639240493908406987877797932826220132879451356211385587709605929482317109655158031520176640532736882240821518111664935171673627959238479720515601522076923727751452422550943826897350772712974313698441562989618228452563997075813936204537068272007894846258804220721018611559316276275958233304809895751196073035807082744498244108727825005996916902064662361957313130776095407604840756312846157579450391323311155028863851030603417800404645418430258609261465323495958085558511930832170251345797849439938848488747245928687429044381220729955554608503300672400524154821481453632221903510900694615798097239950895933622732632100980810382398216982904397354768336228335403614258635877219240455218823631174348359900179347881830004846453719095400852250167402593590508353781946299805630492023824533567136357077973269675607440245319041340034347136085542946860236902213773804633219203626279082869935249774646764068639896096286585363840052565928836516742241515906979159500050221275628237464955633644665852763198230942479004874396136629528931858730426716614723654331044237308250891790000742759079777888123715689026037689053014926870377280072122156745996363228162262506720829142829598260587114438715662935745396394260269081684360195408051840058759309237239963753159956494314686035229162670171515056345846493080931424560424400885538971975159224012811655930190511595509860623222269547541153661896738968202418075136913905977928884139740802963582833173745641786442158437635676263763359504150326562248230608692297369612200809220663528768662753403696234789420062682161550255639768967108732393669453439497358706418928835176533044604276614112506289656602345731104305241142445949748410405418220123209348630168306294437559381720094181697892420206105468220784859945268079698621376131525888987244210068994541656046735531371278349619861454238083433248797224656332659035801600706728955732894373283989596831307540763532396997747770841786864515411823656144367949199217423237331346828812352735685352818313829401925199162109542222397748437087070942969150884905352562625072122667969152863085784169775809533351529000699290905535489767281745551745299568340790447105824950678682752653805230562535668698717250872032099185820912299716527998252280116411898753850151150268838491340898899523468601027266868358470829854022386160173527438777050790725332665066945175568657138837346882982624777172643907709724165003376747452099807704592580959792818951276855122386006106930973457581939858321209646140398134252789577433694578463714392167532418947601841534615896640884759466856240800067519121566782148704840795421910121770626230572554904170422661122944509133109995872418618162176337937515234267478785174754195272092051914344403550659551285822547826199489329781886473275957595613631623570322275839056602630144178193202112837658860118435180680772572098530365017863414867130101594331979742243045308746074561669167213000240600350648335911494570493244113803318377350809764335299642465132751862277581642055612787273638632749147393136387117666554356784174936001897350148258145431871404180614247164369475815191749213419138864932172482388621345061920949059618614306412364232890665680991763020214986379579161134082075103919233734966964799511904392477970535401862588251358305019310517969934171764906691867052873245037636290092489583749095025488263507967602517683288687898202457388801456837101590990856342799086512778543030740173109321302516418271905854285279013301868816798837797865827830947216183656232225819436477025240114959126651909260085763762118388019055380052483836484212295826365735535273506465239934020253832343665733529631857614570889411939772890524892639976835943988818974352757525708853514827871855680821537169393045741117530393817485603102242666525075486738145127351917771027569960194053630419852183202229284375960260573564741798526579239128087317512964986746881085243774529842900682195502823176099073934227962874570563128566734862744804629987761651892059821543676111475098681440635890681304070674540975780539833220868276623837706050532013466407137398829130611788875576030812871028570137236026539520258320350257932791156976438378745144961321359337047817184988387168606191109221817235756391501677807012612394802691955902675731316410235369185379498246980814023143707263381926488102528885512513064043102734449102603721803280296051638859293143882523156666333626458752586578501559512626337727572520955941657655210576185894271517292489699318909039832529316241867745404322898462366307991148164835120174449803335246937336747969994991897259069544596541433574183992139177498889367574117894616263494239257688773568382329100672199095359620105074790940721457605551723471547345096225587162499062904868442404210227061336233640983873316136319574489594268490567365561590175403737818090761436682749362751942775859530466339733926887032515899587318353766867722015366884606811858007162967853855457252828455293700368330606344725481716440266141569318043058717713197513612211791899551534821918067108228802089346352779077301678498674554372353845176251441966150208334606452881871982597955359403206789212470259779121337526517357721271321577816084950644454869631644607216461030972059543138670625118289043671857389842345332610381981049498513216608224673286367000573023020992780225092968765377292764262781885777814718031756160047887073538090229045275064247361219499195509040511036537811334716593821389334822540158873209930330378066014628729364926507619466166878396468317133820030485470672666974198530706795489886562652604227358470735557031192128568376004922988111600954782459470031225328580486329662275123253453302978961531728811474845788237806248910993708337660754357641670884386078703518243498279470246420737148631556974888676530361378677552355721407827888239272638875913257131021741389012390781282821374690365367538969829622318705714395665284434718174995999760967221976141164004026057917749345180476563585341679126503010578751006942809428391756225421910204350090914113388190074851658181987908166211045431340392269400317321950809741122722326280245086180897642939114585608807317068970786526849485013577048836581310592431954733735468984326114805784446965218959372125770284633207249032989113627316292339596382205756969555658918229530400198700470704154458194354840206114342045564105402588017935178224569026172721271908084044568206222490866250651654285765120567411909971786033435371370757388392112528042989640548399185820399774297664249967683333894222196171223211073551760395382497150019001944832667325291296153101533065156320355934494876155279355739608648617505830914220419680422989940633692705741287776363122360952715464864977830698771585888250973188266041599557504887395271550496733275826859258540903253705946809242441211603929692371675743083728042281803399186618889599666299616585724071391532724992968566545527145503580500580831165865107943126841434849149334952678364373370487569855320327145261940280641650530218298197379400141088077938904991627048036314346070153755477781677462973096916316874124651017742858972953649840388563092313923805321113855327316055202889974645681386454648472915819463777036183512453667769977379683543959851273578408783559831751840813463398707826895503074845531951653297458881927290601505268927152653652685671144426899048570540091711089668038232601392285776102710330413228152157344531942562122223254489596388258435776118471715755555746736573048745467791135354549881293303519688236033508230154107991809972713819311311061763026526423770429925568363291426632428851100251900553217418360753899787697186752082744799473555342393864842178920171762721863027984940273455159216745861851491928273493358441017070411959615202673439138119246605439729729004571890400205720850468006425684332408745826858289989163531163139832684725224686329630026718321249508806470184312585714846824406214575819017932835088134154068484591089442343300810474231972529374660299465114432665033204735041880111031473720737748887816441085063896882832335686810073963041680753852307572339682888741775594460611938117289833516516286711021495109662363640766824629802836344115075458624025604743604830253834864747777568529641213439832847447467650668734477511625578013885820091787252006276997667015396485015800239503753192029168508060775513963846204311040611665102559443372260871304267293461544861452568174897699210577312433167254370057790256183839680342449958014442534565020861992321981012361727396205844297959045295230544690361949175720400943898267907612610648641061644605392567305159360280514418328813013358030124218136285941229119111546504352890367537390118283626131336977049135493379428437587320704324769757531494271770823248600840299762061716357765191928418898146643189291119548014498276893641867599403731184809104584567548105352337285011464680852325573483623154733013608895669871609718741577833967269824010641553097976535083085500769090951228391285264874142032654429392737580860684927021753272052219091757645975265461702494052896848625881802930290950747040412016444734715673080438310556303227516646340464195282214545005314763884730452709885323788329588776779554283717583268859045677412132201133399803325568526216353958746008125307224646453550499476139505605715707464447893832339101250630453152202277401876688982269541620638373017341193605058986440346751407317747721563827834635042669810613593996881418713706230476406587804251797462480332731125264579326322258728547815671719848344970031513841412121347293940585625000485134413940631346433024366287124582096779354425727470507137435383969785909484087152112177310624672746973960522434673068236032945175231317229654431776858022541121680577554609722945305396000530138309265569198902943503067277249909366046376236079126157557394779566395195369930917770078671616539731888466468119962407320367584084349325382392839796210177369160765168250157381866148769465482525598190641285644999734332482113135088815515250826616158756002970655114645586687646325644164644286576913765056416011575720487184422240546986996284582301378328953879472565717004895672486542241080020790083384427707529143258483700711550222475264877467758701764285039397910727192082403511308108005412763667396687555948667880054058736067661194881998075566818533239282531064038125752775961963703527376053336448848267450016198164850347561462808228388292309105133598802322897848821095059792935213783140555036984823983264055637652395606799189381280932657897536851107341483428692285198917940532405712863355073628635333335512605992785686995394244399495837374472794273080186916699407536511108055923981595447305342349455093017563219940658272800016705333663625111050342370436886280752438717936931448748274257621303481675920061767386277882096619407119559707175285272457910129461859934909556884712101808325357156004634708523566768363360429740602581634642997741427297538154558214815491483552598365067091150350591061923252498254799431839122466806036649476022763893936003652791089545547723177333966883064264628660700640649710256130240453912484671799825621975886853548391525413830768270620599631023536666276922143930089622231567361570081819171624445554933276447840216868848527519959752325079710218475295944854485228904702076913857113634191148431566548196385344397934156978315262867810235266084916111966719690138158402476070408955036668898737961412855428427463668343544091853279691944852762419555005203166596615030638803781769752032083849509693758517816797238281822899859029384809307108078475802336282975800943133573896641529118550418882257530846382557896183823513517119108082627718494199825994042600277859984015955054123809971768386135532963815078876190625308842886500679746014373028788053800415824181079837877922403511399366755628042781146521727852046402784049986970379160906989685183682062408821855258209274536764073842990451802217470754640070033680583892026849317956589539707274198990861437519118347637878712509674760572179252266831436194050447072273041099518521612683909738657803628441837959179718853058981949877600003153291431634587796548785795687270132362475198944780359037587288035831981755781740067981239980563388601364998632459121162875750383234753393923757890980768397512395907984526138911913314422982695316752228396949609587454305344421541971642913525486751701360737496985488741033560042009459078061490269209891638031733700248407174899860323329055583818644123182705912608101218851941743378740831708742109358735733221499330925659188344672093308151439624099034589813833725793084943369260226708904123913825306876959501958088248869071238488408336916406023489103778314430091328801389213334223278566816353702062948986342044840622892158643944857144394960791387984740881392436525283187045725765561054407829290576766409303832210879033582438269025023376632511159931538787937232483165344149705149453258578732325910839734814813458859160371073734155066453627776542519308338150653617182175761811935529061108891134226639207394258879432784627311432126709795304404986203512949461673378922477746029943045517931090949943949811361779600607683009559900820341503950982420754860076877948279301105503352063298656204163177040169968626744008476198625227047053342639443587140751687912254448619202236823211413735643845022258064227481809330870062133350022059592173877684746028161832699934499783459742784037929947751978928175911279954347062172122048306932612840522352619989455207431270836934601721878411089440366892402730245864561759878610345433186104921307725498266585610788818637050692447349098927220573822014440909098849323724921344031377791462515408395783222118454967265207939251606500817125685107323944327313327805008012617738871917406267910533117977290567591638982313420964411983108602185983001604619538714199627292044259023768593605010727337890021945999447132687513939237088955547394660666038256362055425386812115310300985863675959557982151037523618569910040386583230822801258152062109669320145974877683602990582036857549486322725580290744087275322418146251189418983264568468333367453141373894227052202351317788500682464946238043060884877427181339245738003916742736925715008283315007806683768506962648882818684982416088524526943699374005769886319257362664285449796320016190730420545973120499638737676513457898468803728242406385411845443826087468115179231055143251025446670460040073737231042291464343170833308496487708494382059313530899067498812947918161834809347804519716432896990339389672877530122217746194088513626338990766341071080447122296558031800214273465467495316706612649104102814284040060987160384942320918662427980019662734165091520471790759583476767227854329505329661280914035747250728272151599156422135086824563491661376265907353098577867723899200155402076547949609692570177706763334397916787737757419272890887298633476586531976711199304562435119641712116451516576645689907415578063318485883167559835806688539649612750185546538541949225189863900643301870783919841840313174947177646355170486659291885975913763414935080084919614350998316594677090479479697558650756706803761519397962165514276903547029881636827840166760165670683180299346458417833668430564251693489004443715417579853475475364069715235297973938256489148528138697928428913514529428748804261980351479292362693163410454214677272694837837495923602760868462574789370120383259650617761352111276961192138052074459031440720615796544585206977620491525851019789672819936494236875406730884965672057716881008614986303428800268659254791352471432155748152407117719420375458210770344356558132958041007021644716403436001308301572200581746926739117310313656940299682957376945047079209970366851377489542803846200347420328095314054022456700432993936211436110844649139500481693174625899527951187627582526847702134301727890099238283225148314099933390489251920406624016591800503081781353227222446450746025194350825279726204146039175014944803314149923037822330354126493235526260269899166018115265530095566003933852151489427247905475421168419926951993781866223711202388591053225034628997884294042159741866999722874105108103717071001698160544800280752574308241887413612066320522370176228968372436062008912977774827070400347343055472492932149204575039813678971287834387566785053403707390735005246858415051100646260287197457863076783790906684243138129224429025702560996229068477231705856560032498321787222914399901800056043911487992413788720551399089861974465805228494625525582319913424611301541798187545247419796966288819012099638538802254387121784517951002699647761128737170535299105636164370711956176979413864730489957399783841613339066696088982362718384605898910097896214192844021285093729429779247960902112324849947846182121713849301541490532145280846478533216703638253761095726033662654595945887422818271349594931226505360029544177031201355655155915789762186586511045643695477715653950131864774310365870655777530419634061346354340673970375327541404243241783820670609512241794174668026108152187731620894514346293805203237503146858596144258313956643679333078541539108536530927653147093556532445726112197180566077018473615086076665756015182226203301071826887294639644873898442987355339889058464081621688410121442278454316492111801953193519971880211619697465680950625061225552041280942030546305255518370368757063727359298953721810131337127889604027453926297693787437610120040152316201097690198992408015434862053268579478411437618073460396753204252448082987613984371003981417498792831948148071194929277110047727993095638980318000905609744287628334036264819971009418482492315435174651909890543992164289012321060236360191322877271593441260393111649714695921410044298383738295710974825196151394706537083479021248430143723628751906085315456559511552224279883947429607726811498214117673449820751917060503302450552198650606320260922464168676965247332147931066670922288995875703965628837364551653951087569933283824513742232012519003132343496230940681908818940073340645220786193845315927214102966731387149895882187029243129391668408644149255612384968295716711586946825278720626682343496490053227187222706856772045044765344463929515634214818403941084519391852434310116266312382146180371471044663565640903464929571489776558370594817209151029098195849765444182370425326401906865959506547765053112605362324742818342103460519052803676626045669956523600453654555546529573560407854903033726810336833641019010922416500321756934688430370137009231333635167290415305781088205650567718936085092560086345038542740460725293342475359176073260391454794611296318234225391938159216296873052469230085068774217371281691060870615060314698936369137296978500058663485804861518803399101394829696547451552467009319834917676150762251014318627161714189094037925381812617437056525339063981811028352434766655225683193237076603990560198756075179971545252066905005022832521650615111726086768119670524072761540766121879876733864266401005483684484485894688550016274413853156635818601562926361866423954083686148288731928812647846564128274352338040299880902575850779014371551128089748888758831297881709236736136602925855700319751521348157201699995403264400450791193686869353748621606428042110805922092456675643362874705809049424485814475148597608613656381308774674803368918869824182269178439489806373564079130900633665243216921098380472376093707874070645103742795508638559079737278658718445654224911223467300597346226154421724098585437029137133666809188284638115786106549403733693546811013390885011018872789390322127008893026334206393657536140815027035151587866461881593296054817162918015426265086034889373859693363572707708642443727809126230126441891478509899764080594551141474648159005866174971407371523923305711867993729626238172746337113223495811161200978028158456914391704988503359583346922114876676100623532795404808058150967275587730766946504300677787592790658100891779399707714470417187136672229811991165845355266154297030416829918286877556706084938969735600253820704434504551878551583469074926502931625097085293746817499588995125141114883741589317681049441506845254647642023140703927486153011580736601469674693490930019680486081606790535039852908675911701604305309017480356786936007609920838252043878945476635367370234991438315531277161618215256712145365814081223766312170905971363444281091325161151325348467849335211043528962742441547148062677718985081332234086142618781826317066939380277195501041971490635133898924616264041944333761300979895154371861274522324650169455222648408307350904815592627636171821828036014765989551970525858872520336531388490380751115234008961303976686747751950918816964244543050405049593099187620083627051904479464025378149588038788538420675538458274622346229002600972408158269649341849294365782908930398120074458173541539892641394886935083852943190641652772416998129392815950439382909644392066658127496224932976696521989064015894650564692741117722486626567488082977212183694674499290223287084152598475184424274825435601179649791992765565716827701521906752214632041491899770076021301243927123051337748838036940269478889150669161909013012504132495771736435636794632248032935087327963593774435928990206025114234655329405857479003818299195815854865781079366194808471862231892332980569978050633199616531985204284392708774707152665584514006809331160648695577089203865652681048965450908064280481753389097449268800015948319018593191959018652025512710673059891282944940575134149396249269169776353249794735265808176013538775639356277388915404138907485182071039136675870834490669249206689320309993693015472414268632031198057091590794989526465705858294552378461206957065564840669490189112249792026401351730894681628154232407622224580224126989396336339319101881523026746627094075874080974622955831814477234896222830834153128813749202030437511520922929414310534993460690428797203643760736595705379145681088726585029548857954346789110360329307477129200245064857094263656086813480297670658845513351376586302187255702066621449654124251915161179667560708109083321408001979090575714125944784856600410007225822637554846816480841329616712557014485228255040669856570127168910166423850699658659786323472746817931458332879452503282206186984575176138163739813708249804812459558615578980764158104809814163919525184031480894425295811796505369589962037210330718198632854523373986391469681871325314670641156337210744796644124579674790178174132714961598630942047967994870897674456521669124029379422329572837322354872105127959660967454618061874879572885017625198162274271090553833977010298693982842677625925944423937115676212122865134275598144651279808636882672878346636188406789861685875193615668533839235944792303569757389420387538413605909426841536766493419036116730052373300820110413401427628515155675082562434731787056693529726521020513256149623067277381511169381778417577885766697469662056755921201479100629361928832380934277764892154441831475021698574469244353267297397089431064213899317922717878224122771136201648877859824828445688020150891208305935532061854676733107295156488216921138707155312343923735774316936182693824259343231355705452612767238636901780616922466704458050086309414215227785048694173131718288266223584378964979951241390979877837189399170363247111634923659106096965803776648725748613100231235827934652711943148770108466039093853573647518779563810410449020223111986231982383599577923742272076256187301776982875435507263957522177324914644473280207685129195801993365280100784987473585438369685288064825580066943431991615928479613860161595023258286389703240420590188930124587748896187201754037426070888170334891890788888387261004401692522940087915986435591393469124868642574739935366472954103588144968994734019906466092295935583394153338203269140390718948022183135868600409631038207173522442332716923237932106834358958675902025084283874555066442864086176687448425216978218636148555776173740377161016856732043904323071141691824633472326467386433104909548747474568320241595549800861702748150263853893298321908120495324018517631277301184763571438229628804945860426071593382357211559553893397808087349468794470629934107325193637200610460740438344051195244484359932415078375146028159366771942184776721392686005380019336485528854065394892500465885687404744236502689769782823402282174469777881545769452961476150800480726926552266353618010777957105992499638988577158693744344729635329410678030080553211801141968190242819234425978924258863171269884792061787670743158742814099674704138439310312734586322177272666905028533736542808713088129556544508917705081100290426610169445700825042671752770634706874628619980262497270327281561208153062298744626047732346848356175521036070594224951393067341125975139008504790929312700322689003337385242128993121196618802962825483009590525152187726122502034866495391023740296433478337578044105083634280597889445047135569728076397827141609384240273502011841920109921510758265729471664283811733148887093100552681637224044610396836172337947704456954059027297754108743540586136952087952085060488531300394822831870069679453929443558286107763317430744957902444067990565357839286899103480614361973508024696320961983034941945733590767213437278176809670277579911345605030690986040360717891860811749245334797430323597359941151771081245300195461296271768619013986486143971327194800364054174194187669354266716185009424580381325510467348469683552356239928792713985025249928277130726180236521130481242316374701648368006865198096711395924042146710708246991536911866698617529568956055388082502200677117616719802283045278938890268178152506560648779398275846089236988162768691769337212396184305070960314591776908497961649289768608502179785890464336978040283142686285501212016879911438515828494403283640048497093084997679714347474581270236405758930909615701927611573807655865484441973991520658132396254327829616818884889086249423450229476687748165883569576387752135834540747236034888791169774349907143470929197784473805056257554156166184988442265298514899502201081573073423662251637031066268164521972844513869667322001520746358094312466615700483636749206552007821430909336947736745050648110973436080383734125872482231348831698894387408481004801471962485387923904181966387496777554224563503467410603564423117999975116670213063394229942464830069868938996886710997957542654644964389023542403666643726011410451785927665935511740718672859625770550472914364325261470015086646234853661138696455233057283147607170399222507058983359001779048065226577970806423433517528521369371926825699623842590134670280498928075338157100655655791312494572926772926534078185683340616415110017962053934941025112633444097269105597997521932090524148755543822869171312934212435378798117053839526903316728953236539260143775538712473491421430067071232949013541318551176095865406300639808666966770296078106273871065649507386233931840869576147338488856378738805945918232582146218778095363399793781032035460378166367410022535286843083621193600530404848912044651107836275399593860159674498041552399039835978584060489597316728218451568354321588300650762904031563166604315685440609020113860173255468185179624674723191692183535578393730805893710509122972214392363486645585790861909176238764699116193623032064589008623342539124740607943743322082702417666756648129862236899328046999368469757382412069118827815458397763243888762714785015269958023543548797335121811817246676104547788454025509459607676682559472713031849641776305496371415949607739349438579011678327297303598449490330829727820915328962332428320392957089253032224183342136140393442391218673536557867361081190898528151311920585402004007281804994621410153853754007868384795065304067594376996566124762072336406085331738851911549986634521679394981170636470275040368007875918847535491308524854907219119157741630484760689671916786330881672075031528484166931405640815607497697224146874050979208052666700816858221210554976734358300789536082339833745573276147170725702040370586665196031531259853912636742063718505869002074989672235386704195523777583467968177558719285573126198881917955787838291043131675256426404941448578269685312715959119740546414564034666461216980834666070078531292216276991262921114684101180717446682613865008020803717577231165829229147576150521233139877603904254567370938799012174170762328629179228385282773366920820052038248497635988952437200469343624267807554238251561938674912229049442471958193177428470081533587305968025342177218395648369835485447775291356926703677296823882103765198708001910429097339839122582900264103172311804997789261092924359359450976540670302783468230385792766635034372794378361657504831757001909479827347983016151253709559415017767510112244383547675354187035262420115403795921730070580293777607463192369892248903915915556457424619868829216959255801819229678795348488532158908983510062639269834534571866412700127733547186866523835125636989854074521472795805513017719382831555884610960536621838514182471459061859496117514429413932547153277694316512684391714838267731406190438694284866328679194297016649302386076684676662335908922138499738024512303951322763521969421673625160079099047969076755333702250309215555234047295846478405875835143892099227088912189422208434184849335522536245400100768445829702928901206243199081167728849712279158599063440459613743457887703001492833933251854011725204354883029652179654171890930072203472328729987277679207421769511324317451929049386463861012795432011246748812594091995476654017235884659135458741256452441505422348422248700299375588353398337478387928521906933506470107073387868963099999698588562308248959707403554309862421344972926660643307589856682463929671373581408867442153325206007464173626210070597125124363067462638517773619281918845925266316067267242891799104920363681599136418289844240150356009087653330947533442653913706190096961843642050015573142609815351042390916868334228724749806883319843720096914798305556591394516022832619942919090008033247720125616918960345082488511410819613490485296982263667077771549759680593933567718682544565588232545937560450050482727437267298727890392226826196834756087403238013062247913184136819353484102839885893104559732406157441996861575890404191521317630296142775248466719633740540102312636322465987640151929112295064971404563836053066761442410001871519463253099178301447373225428178679937771539518701188683157656383417380266339395652831508988997506692841420643715571777078785131747845416805944100193189023804051229318987150142285594185674919774460141859263569894801682429134413416572197489033467852946456434628818891140662219804549588695420102833434533302594474410854867889016257232059976161255331948606978506847506605514793111093834814546726524125014297733394817291241278422854452394384249664092486009064092022956375539175499528829256704432652822360809888980460904477475295329900543944728931250994373442423501414789356695060646083717373491720558524079448562150384184312473386984692882536799520118054674110137418772512114634319776433276982565549980199873174366428023231206741594088747041152368270604011409627562879306006149281069996593321921298292134952577003815090237561020685679497256714247351849802158532181719285513434389580068232106659524561991802541054589488439490483832631776955593524292458509995723292670370173273622533537086875087651981013431491156552085084289157751740027648814867484704461846263652445061588658530519127672099915717031597118536836714578741083183291647947257474695931267298720878694260843934763606657339878707724469503387877398941247955199546565641381104743014003731495143771087130274055010781902085712599296403512090369986571079532660745514707867973548586497272988990331677529458042897921938354873209606324667552563494230079839887699929832622395553532550838228957942109944443615231197327711191493220287585809407996407627353244675593708196768218234176063638705708273521248763542401958920864952377355879880965948085538809132555028466084968187542761740535414800610704048210574568795866161237187591434051791074140108568131079112910909771152447489364694061375225065926479301163164116221242197138604718668676396130376670170331206465925067216408227708535556567572363416207430434890761352835270591788241479449613004146829985585413719733656935822060921548896703190806967469880125751741072666322186480114600596310831066756244683215275164395732622890750096852972621241122598223786346987166454370229673067696083478946944772176608211974515288648278567903616650601014919632168485055681539931302363334437691798693554780721932933722617301370556817900991626052636838572486311642179780692835655755881746106951430007893251296045482196841680882494483799471342372225664250331536569773067695179261942391118920789845294270928850566164637232381549486011910839524695362989613953208685420452240607466607950295460846232364115141109056653629084152680814756321701045788751350823362577295854226146066084184927997544526341386346080362441052071524893660888240863318553045112513406437389954614906607983287067137201991773116874947287692596348126415957514744969304786196360276202044500686572005900945430371679106511604832028161597478537887886438766085705770198086104042875730290316563115430756428765911191125799458244522882609477207376233135312122909150982631639760499512719838140616495969380241087249837523235244096547368394543985457123718233200506641182406962744088367589516304645988317631758527846266225831055420357637854046413241247157743340224640023816378017102109788821805146372649988974330797218743577538156083605488929023549139441905052417164779157193067588467427626072894052899294457432502370937887110829538155477950801620440970473566558110205072970070209435297042742517847104852940094668365716931562083571434022730231927244858049403118128368318403866398354558299037243093003825655831726432941932545588900736007086831659244393277179955951893610294003080844820525054758467567956695456238530598368516745148901046969186583403786899031074481925119961649361469151220957989287874212981256981951226093181500360768140630031614368435178139113723003172842079932125952309202079562587579160392367074385939399647171239624099997526183889107327995774883607787352710330627203391557266783551063519867841878659590828961960618726950669515355768016051957020627870723915179387085044627289765176983331905996650928231405535190676604949678019253372133912808638426773217392955971437837831562495031057226203560055975493062516304031501979467497297323563545236795251634200573350445831378946150896932280318534060420210323760528248404817225161105287707594697150117402062191033237828819692768030871659256750430216943886518022229826536758791984312435985626997218052871841887033337468341189132413260778533557200809227739401473989574069276872888386301184374542220454116311003812093595301345210566393777887666449036201849943692358808007182279912037764857987303319837860884428304487592884918478654976184895551077073347049133892329748630534666019969084867150538367362502512350240066974514676515642136095745863775466398919427979601239040892683659609706221709473055465420048186629184167172703655851122270348439209189247788888523461007943806918223307828867725619173269035926619487142572831571326779281978846784463396395638758492128133511745065142909715168928150764490796388190749989616331176157378268514531831668577159187431876747082676009399489989271840961899322894869390684408811561781430577020376671953001368821968682998175796070296480942167528173323342506510885169618370356571860807449451726495776781306705701095592922364276493394119278022303787339687663406427251401486170008539702919081951205974000388826375729086503739469430751781428021151904459769869115248465251388451764359598242341045746955517126111008367574276904875252133879889168315340923126402444192064096239752935444380322994917403373305110019061446702889869126436665200678757653503008428786217263735273824267659912557604642070258157259694367452919006203075347857730263010777728555760484402846322507331182949317313250353356489098928376115061436420849631603605515053422516547704049174273738197379948814462051504196346702472729706865361569136063751457273432515103804791448665722812326739377096338028453212518312756793216919921970835673480090975650472605629679357499945381622315087340279433940107054477240552538311982418099031362766372342386562367510259045021873053199130063524150277240335289646268451362608993540122482404697770186976257974039704128510089280138698856697747788868070983432691923884683401838688750242009313734080449945880764386717030423693856245093549069341623565630947058546300473204889164462823172978472298686150206764615061452524911037344093124563448063889826941271468590681959184999153942530736917120142799504210165139272158813319853923104232406935062565729075266837315941357247443540476611468528325151788448542197805937023540888430012409579638131366317578463710502340413389193443609390454668193024205838802062662878879734654592997376896150978000287833536265421717462824528550151110618440574203996294878641051180729021191858534935085673817542504046684626546654587855670987031454267103331194731643409419361915314708772079169449473300340785916269262741634477911531196857763287186403346184204058185266287515153786346777631458968099874101659525254701224252261781472335042033448958257002157409170962756184683298289980046143832846388460444794336208252019254166334015912754219439732782434156105867582840932093425571177527012676509023491647862206005720022390044380340379555510201670100596741397621878899072905082780412790104199375384313672033941596049106197066199366487395172775607601329395106867913547756235123073575061370644328814091574964408749886281749340609108972248092327742727225904967969430274972600637952712220586200174670453632325429164962241662225520075031463027178615957417335027609115534309149936216837712286464381400013693920652340986711126166539856567505938112498797962776392055829719722140836951593240035064782300318113202586428729584258944302955206927959496925762251902946902427042319632532296527593001923250857748999814406663117425643779032052484829470965695441501539558313385575139499618497577715089225285009648386111156438435774494355723348072809265167035134650369462788768546772789011507499670701093790271311853714642229978930859196269105186494474151063049110725816229777215296609526306072259897034598398049551031579984327415613122518932496162565968573299051913968574804504580091852760116416707811052085405938236199559588477222692103052636481785449539019654924248603941894653343282486172187768819828989535369211993774030129523550268844212278427619787349020906036115246333208960763313622910051419132640540231579762671156689444884814171422947444691139321140826294963397843717731591699149666609008614288230988782442775329190782040138656575274630427914395829948455079221974218762014505469618957626210987998795644986484902802941594654900427652785696119076797197220367194715104625885574289802387817415352478598204421054676554484616752560862256981848097357692271543254032547806026512420060099191714896183446157980121723177904528438414804046768431750036694951895224384105412101945410195310729118395611084228438989151135323536467774337414680137094095128613134443165792798303460833195625053371080640786091685782419616588848954932030839997139205754487987463050709670647938150842627404838494827489584335850944966160750386127844178450676266689723401936262136380142874728026781727909440702429783715386697418933198355378998970323000888196917723961784040474610387987666445075505811755033336238984072459848312501113235437910679006015490820811121819535644437039112682721896455103137526552636866719743002195153409726112175544809975637925078724695885636820826957903797183117981361510366858759986530162915544455222395787804064107386887677854739082607437911081168358755465777461112158605362610556093163506211041463774300039543578282008101083792954816103640058220969497952052465397647373556250627063679518433253885035819634352419482974955899369151769776363495420366285812929322289135782676112073597886656232414183102690457330609473361829769482480414731301767993046526152197559303723861594662623827076771090205474554002596191667687958874642997318006752052674966951771115539896075771436171489319228135995478055152412373070656128572282578489290981715149625107080471612181611574267699220295914203871968259762562231075271996815338951675960669113125048499225236974668941917891035478966077254153052588144802444580028105109122955922754479791389757537299937271325296303053398329066642989815684701242908391049023584426718501285916307129384762227378724136923845469863274444169583075724118290059578768951538409007023422201884260802174348085226022863451576502122695287520741927593264978603948540737540349194119240382051325959377513983089224574873388489486315931001197208445307237470818203711254481819486624950040986969379097708727889200976508869938588383268309637731394802884522746992025602898956915661393563480498386352675673680656498069907419966023411436983463379636215814867600651717884800210270010048317564963897475627789867999520989414716824521507120403524479493375243472990179305376970825729139437137024129783431841036189991476769262938145092725954547144596534613863943332160621779856713349642326606484087003512543028509393218497143426029205638929281600329131701451991825742452800239523465371875299995618087289812803404785678773436637969877559344340919903490881089769044171076725101517363819180758492566556169314190174215022083594488073105976530696724890587360569059435365806727143793318076997795162819892944965245098768341788826442918645193552040944203506785898744432979637806811494891435163227115231112593183820981525873638635821940365948368280496309377979847438716748145273412116493022723821500525178941894754363098148548724401375252540807162529129087626626745141597580995896425982641274497141635278002715156651917088725918813980467088310933760487008426639509938391451702993760280105295499550258484240411792805610896746399483704107966414966105247567533021491043891694654272981432746166894658739646620229183479639339135523688844714183858696694492664343721421775853841959914905227160132816408162771642262442748829853868341465241161932288933040439732789053230303449977878246044088497264518958838185388360412869322854912996550737489655411950927599540356243680345442382225993677006328620519337297601423730558566099796182581912575243487020643814544701357370754916507591918314729763603295093474205373583413185806550009950605777070198718185872115077261095535052296814246862514912300346080696753577317833435417942553396026883050361957840737219890502274332277769586411601757843849739150952713635642344735841001877415525626957630299648664872875579843861880170078734795127672469756576882053421398095680591890732820324754352267445362277616902073220939296277419703145622530456134419988685412587971384686266108548280977381170700273334085384596853843462276204813621823307752011981150438717967507725692922268753725569760454317534004009699408211759051620269594952407428369920301676048062503093191385093847098955368535735004546206362857509828951320117024101336302540851840677362111610520416659036033166742738481375916707548228571990894025699792875352230390715208797766980433056686493987459313994861165230789396308867111882737268422623215776353836067249041444416968569524896444115119969157904146853455845375245374142258944812005923730065427936441347470246268566812956587456501697642860790171517036024830520413163718807415434992097146994687489185650446298846303521537449513959666515515682952388068876374491280655553872847207010938525137791872968424127785895464865644317410694429226130427663258805967865437127910733928725209651273785019447888930398339586301537537217933234300771581842529264619463454084309987264868228798238192412801370939207666865697220308701195377979514025121417239101235073467216847169664012943331911898455413015730486458664669135439352215054900290331504408663093121636612974658879166980458637032926465975650030270571989279554255313411630025321761261338778053061390782593688313146077475888160896202357673821697234030910634528229016077161996287234690185947598895829629628260133429636735992869535916814672948223823120741537173285644011719129143100971495504152683251223980619663717742472989068403539380062774567483079660505190081044508524179886195668994595590574921493083505040948724204328931272947716636394925699865635260362470996677540121080440567695433077605477404191990674270557450619959206468896735996742296334925230736183497698508529763904748586731408020868809286542825109776022630189259243303943626814289710366062117808427821862111117387046332885804559170414826574749493488699114096759691008024838472578080151587184279232882532908621053348310719335104783578158966765533961131802794277500266415907189601090533680535824511605276715348184006891177166464777630201745413292670318593102474957192311475953457845917542573501454038340843933919719930384199830108625142808548784981247616578045517793606204064379818159237662591562437527900064656437072146508186220024300089027003643677001254063563730858869183743299428942669159692010338338690425055901978025133960814036638868404575931009715505079903650985853147846623266651432564997704094520157350460172374150108009859961572612902492878114652903445841565571115352636962291935366329516602175942365525860543589966697106532286951325344857929322578582093924394132711615517805860867204156084965168463858065481436600680329620241527538730459674093079027905239828093181053853006368917005305726659553040143677200115063669245606172546793444156801421790284254751527665209814122636127645138246665885225520996835686342240163598375334869220734962971065178497920254515646532652137975536925485201251156169612453283957639527510191597220638525823086548778453276996571911400175826622457249959456257281238521318051586129911004057117820932776931492268617657199090295806419916010217657362929875945889455482481852858955459905895672524618784976435559609744729645180123767464026833231154196723888844634829316616935410638175325910841998531585115070609935325164468808746694331967810510629265579546336010606337789963183253690895027170082090099493087702664194802718022556822973173391341312251177880274826005896372631252022717280432942166240757144394440751368126292837300901187155486779234418835226885150793062532232959646167010185508532220010022319577641310892593268469893898756595959313886538127548439914627327907229701239898276529769532478371775027418241673170855149977094602675751408231178605547173453433312268439181603772458885080499071066620064252359492185340086747038472273894982536927879443759522490936359553614350696589558626560741048291722065161405869401605233627393140185352717197350042807858257625255147659686512712669893794585564421527859672757494954710322260089842158524920890853198240846746700554108885050581947270310951245619243083542227906254666897386402528456795250480109074927458872566390302077302319367428477127364240213917376193763798031041287950395562086864701363496357220522416998135280305389014809158060849044897667914984028826519960068083541275874865155551385433538804446736550242135748016627621897103283224007274521463426822511512101286585163519240417523358770958362945353978146666250671781904193622482290430217763745064109623015655058532481474847851533226919136359015831245876318737567511351186015344340051833844986981048638705178891169325518441618403661997338080674755053433791100909984600780456138468651703787431884556965943211018524916576255402991380587228671281422850862743386693076361574754068185384363205632654182193472271821935240798557421218027853483979074034022324288393002573974822646347566848747449390989564884245498242504307442154744186148532275483942400020107503453672006858252623875732112369801422489533275991119553049709603457116872135511313912014522479102515768523921177485235212969712076624205181443672573015128419404107243395635045973400867076167866266793863458957705263898586827970275755251401905809984204128571783458212440898932378829424372454770799056212264069898112377191953081473237801722246982263478631515047509154132729541363396520950047834496705276154763755901031161761869733839430969403653266117198769673372906641150811509794083935551922929534724317822179057921092934551513692798572337504949000703703664807300255747223804291608382569536287557220699267134813922358484188363191262187297877887425261057349801911314865215896272251829455862778061314738210710221964316438233887228563575202208466222730311679773020988436131759573609119951412716596530404935491053642186076982886922837752351178509756370019853483881522164663464141738601933675241698194443026105469523689020384006679683020251325844260794324553819045461393052435036226784835058629061231197543151709771493440327101625607419438749327164342785135056744931687244999286006652451349673398499396879524892852474948837186335491884495413981819214501819524385726370891994792726761932807706685102859115671020717439943310796505720919414802957318770272635142973628323878898711238089384217176025912819670659473218710025118440062358678055912630360693604774140988756412402221392961423245955813380339517942433491438852670566019117556173273953483670285472633544227691001323483863511805075486662530175278858922855146166772588188938770985840146400369520196178273594280850933750835861675098506686440667421162631470275251800063745091466021338153210464982181194104256224290811257135021612346783181976405754148064155907919831598631427361614586553952892636646195290300394109159775492010554940958802542195026705541467061801234815250942646109954337759586542893368878243897853414986426509889981637033887249637043976076449030150433386421017240803499287380951371069526338177927037122453665658822236834946528735193956625985977700365739827916713234621840048907131435923596972145442643792298180611493070459479663698327247865425811657694275585289592679985411121025793643862927181062431655268533392371396507257919493045097770752007961371014726207561088848777204349016482882915298063341259934219761598753166788364325407355590871962293543516095733500331285335916853522522383680774105782057155513467899526469375303615631923740070956603352905874319696164105795235283599377214345918116250729086817610857978695759103600890852386659593009262321738429084927059929771011692911581698562358002498030407844839169969279635604835778351755141212574090052070063588877760307641719109538494113814468827915340316815516788688141166230382070324163269509477715013257590537157024820163517448083091933583972705676018589439416899317363340184636547018562616655130419969287745839335045116888155831632208398044301099660043408975353549483127803933451149408940923675625634869138216155043999420989064934046144270438769712667970529123604801580114838863594782213226783583581091926226249485771223800824754518489636780750848308575887233509529790458831152383983111719790225636255699122487457583368870766213588106237873324139735649343539550587326213494387281307871097305190581312989592246265632550970966128155261210149985410215135361446034823390787165792922238253462280595853280260997133127359595832370504407806989724756448564321998842842399973811847934008341843142706919987719814761360398936580286290410561471086941518954985162744570348119162919982342463054466169256778533770929649698805658698627625799806413110365614487429359732241706260737008029496791615377359028882302123729357610658291731726726291943033913278410558477960502799635305711683670126738830436719884879622988447948610655441586149550852285985370147860403033390840245032345369751068272718468398946438094444350826337606473623210624885443329368327025552905713621172586653247134758844099922613347825137072410446469930775249679015520665716934636807824652355023320741797465837151333701010432865409032208311885781626867767836552824495931899419325486510106051056843789157999545450235088560247363391654943744420659973398208518353591691846487141195640742820145717381422189558651302308858838861407073019405847484440038066246933973371067013372272519570350819494890866222489237213686101582828038955609499665182514511626939865382319900453045655838254134358868860431558229759322079302120808088448700448268781156310735508167025351942895799304878899707304030709015607204684119440868519241427364496630572616694769175477154269281971820907856898389697384568569177818516696033441699265348185115465029325450372946234341241962562130285978432373574677563800481654357269670953699031029714676497765256428498572336361375316482464199476461877456851594704194572969528351390591824156865530231092280348169539299081312742797728882084764168138089722728488905125535838451093607459717528455537054349216028081176855685753371078247659753535634126683750570031984661152640842695290209266305137713151697476002413037047834841012855892634954660919408189701367547321072123670632822345423046983183664180997225243602411329714208073863167133609847001879845222069048636683814239736069268053444714245513262261388824261248376503218350682888124166885246118811956934748130866368379321541741471736502721462762207102225208399084064002558659150894914777627371848878627954339348784421132704885146940517827755002327117039100005986068207203592121848811527410971998941723771228411374365975027269416492075187475444114190458666996895349590871757896282560031900214193886682161089634114848930189663507962706965460181510003749727065328366815033358099781500131960560429402927023557133671392374957947965795597557350016149573042652188450663067553501193499009115401576599065409628208090385345635441719016471585176960076638566418552528325840486669261646701768961524484183866161459901592682066655720967920959764219921880566907842630543506739926733681072196532141147046647496046848743898092757794212477391343141091164344125853937455300365651410172723914441664509698609253014843539801928165610367833727777185942885501642202180101117032434387727917994095802002470513325473470549575929988904183637622394331737457855265554588326072133326940198739391279549037717240495794174804661634489830814205636156982891438361340737096161418598746078864617112435261812856631531984314097074789972602261582357589484830313451612327206976492983415240149870691342853416424545032220334516509266764952367724464393117578929340283021164155697186630671940759450816848434670396837888744220362585564401229964248671315294000941921552170353779546530963401962108186381100436001426247828641084952863568647733423207709191970973988594357206250244911138908555731254986714710847281218453035676708499032338998889621196510627757897265041158748030089255130265371282847117269105898230749884680874963622919868270053195486894629033623719403534212073319218272535725205094950875774637956851706647913301292018856112702593104720896476693143447473398666073364201272043536592653272263002068868140130092714144652430231088251713103948881951739870229624506637290175849622829988780434244719109985978035318093298701605154033292770355185403919849165624127256887415949162045193876269147349799247847719352896153260562955849976341685138176032286309588371616154779321559713830984789472137265147853520462959390927147078409196106362171224649876904189060031600111549397553386511599723765181998015661108815366668654185582074025736522502810316428410659135207377319487067465455930758268801604816391254847022016413616281545187268343975360385871123405906776142059349326483254775829012995279325399025916730550661342223518347220535550792748036010324699125118928759866299800607526589322042473643634963484557346662282640756890888859524243747199959722855215391915707931012292617552888758360369232965087748682194179993693155878057236597008794504265076716483723963860424183736827444116413367994437957960572883001773423277525423258637059292966092359389166676333180358977060000087172672245439784479895909608723756941660400970891011308537251736340069096458698289548923117981691138575336263832663778887274978241618249731655412819311789203125086837419632558585407938843711325160509084353528265239342057965797882748984517913698055188126761768542554350009573784076841077964647851492941220493988683970557163846230950661574541090128858736224967982460573868688119751921576329470065567686583981932904543505884889147907687893060726363109528782462488006191293450129971507530187285286962564406292954045606905549851182963033582909096041153448418621313614005010360517654631230222239098902243578340658773897796084383654900900080791612101502779432498352167552210803493337520192536873097761910896239595805973770354364379318066917626065712713032173971447668318719601471566452544935872244253927735379866343457155076220206159528522076393053181460369290882766282872302127691055134782976085029235177037259945160467720820238897454634808208549151039719717924327379280417299285591827548410950554559874500111749377254080873254275901590074777355142096683348977301680986078374283265438691309011910780403318502075246714874186317349960657598264039821563367573614382147641805745819689858612875459566979276979701422258630570989678858439809676444334210114393128651013311525928788838338587268684115596343183739516496212229075077071113749168317442860911393488440275533011124406029451269315548632287533792185030042272130113588242284154563006821068959105935075424880807679771833857187548335488544491640752259426008028509462074989862696611902798418758125071460208135178472758240889997842001070403521609711138916813488066377480905902297254518046348086564529533736047637174844853593662587325544489846423877222514012820607792499112733253272965704256422934388616454409036045830544590345599798261337173341493144305843247115495385768247321899421335472545043039454990992140063427195926476429148876364351961374274010142897049306166963137804587682162355215491768649228301176406607085917422578091664971922719163167965812109911516080305407206148070862826497609943813662846364837616702395038364458382323849590637764757786607488530394630733966893220279748592283409874802870250250664504034104334649295586145459236700091824710253122970377897208605803063338716127613782096181820645760407482392144889091178581596712570134090083258683679581453042734030773997760048281552587483220723718062241222702093938014163931924114494048923792236685705329438327333387960949476458255897818730102148077181151977239434563955005279134189088847187521929645884820797502096495169016561596199957771610132979260256347644333581656468083245524180952773387449022846538986208035093472628257271786470364772356743369143960984647685810821410440171223399318528054827808773348891119664966522028617920126822261892107401267842126135993106755695105759405001133288024375438658824477827801072112971209159263216412721631434406211240018323698644696456424086758091496152136369902738034720154697525322556530130527795757823941265585076509092241300031600460399953298303733861114242551746234308797696006667960336379280678354312071364107025016694803101558232555692120671965243343851729388310770532532523844889173450451653090999663998230537685378504582969396454017873953893281362601738080263977174137228252771900913405513680154806383346963059273896768830213314847099293449328028892182050589604586752592482240510679043042880087716453814154279018375025030135580432364913490449673474027583039010884639150260606326409947983662356314327131558566089524253012783257290050408308664797212269166089667487184797182201800047601929709267318508365657205151529895493805243870482128951710660336149346237417469077978396640720581450284180950375880716520507425177862694391024707308436212462212644652866572343918270365065769583101951629412132493636878829752613045736058697511805075114033027310298298527184570973715175919799181339583399854814800728362055290440507309407477403882071085182284343913988465558228772140633968332547134974926047352955569999921195867302551570309839051730492285191007424224834391130681971991046448417048894846973660425539834382051050823905927475317471504889442822853520826840311714486527765478340242045147646704407490859484502258789768768142556950134637356022287012760633414777024353208746542304797796253443418730560464125517912858099855232650146741677079934325917667721632849047733593247191433570413191857462984502590770137166641030887047214624138335690441436432071440360605896737252447419634475938568907290161367689444524558722165359520812200445902042237479914030183658802185985125655458442080383127046557591024744728415308323068216078453978336940306789680076256771325768067986982359945599121298228031470701007608608444705808412863914247666154047455833764707588575991722166362008826963609636099514959939178728752241651529863007313677406483985089452236344661310309006677512873526504002475695741535089737449052794642145943643673979164387891738356994201757177873578944023334623373285548963959009199618626071285310148888036005810574849969704555311039529758619669777675749182523234852424929992505673788533618086743063916241846122507227595393760037678942279255602838342395637713644438595892341636191302488497205890632259697362665624150560241242014956774939920629469884429535378015557679947525979043840178687428351958192240290633156980426672807050123176883686923271250863474104027019973792672216291844619905405045808500394013077850728928705769108169357191337729957140450403525087552405885941830233036277211372737719726616744930600700388612310170933119250289228782672632886540967881024819509060209703772042905480956503147624024850008984132941915073594749543712662043619932450699572514016240713859451620300956045622259225331213990886245196682455972324242984590229838174651560141634097093697550208465041606173031810670848690434199860887785024046671961757242307669140203922894789562340672657227486826176758457607067032525884657795548140421792418632194786877736035508791990164209530425211721927155132121789725728675506062888665559142346225222875518132575399288518654225956856896856177361687929028507758758792825954760554485608516367822705795534149400769897660154616574569449271360100513705437311801372564278817355949543544325508042031844626886914698510636445382902869460235497608142575857812737609876213116199658460551720667925667505677573443848409028942108795304520570668132933835994829880735927517515957816615585673259505882182692172582093964105948181468182303568486962198190871772612568964889117592244248337687308460547067252672373271481196570304791050357262250713718481322244021738959722988343464985382481882494857377759453766392437807197568345481202684821083345747193058930300533140139938809313079397797687904232848403083095556341643557193558793686124568132301960236726059945239874147660755899557734412739399576970907867508892981980892902602134063960357906076514190384495859029461377369551294357445522038717539603166587334699359532376652513197811219323981672934161776237611818267092156338287979494146723973761679769027216645972121305560230111904454526701118969554359031160706805283382094730559005012739422817595744582542305274780185963091904466219365255427651259991350989684767615858639306629061564829166082644380445017913975293823452562727692945246980660783824324916302019379772734614712785920979602863073281187905005283257503736390949313587833274071797135616526329955367284494849156840457175703756567355546538878165975092680145887291485976055644221838891458545407341829301969610357536309748175429141288603817408893113744109138248615174233930293678661407072773194873409104866270179292516030594829609666782830354760302859969657830460464178064107671574141937424700379529479480175169753966964173148251013776116714717531594653447954934122932579739853146508715950796393054329601540704470738327211214362873228028648676968088147384140227941797877096823760614945278729310800708952317636427237818511946350380875417888123268523013277437576675040852998762842882558389385075976835299761822415745329861955440519571804366212274546920520269640472817904307303370153405338563478907903566157369809364011331970452543302771409445108648939689052738685334324821544721642202459756222108936204978941593627226321110718089403106131359501093961471447638053244334883174316705392905000296199319404095330334381467249637546047851642580283385159764173547574310026249360416433811450241504003425592436084924966988800969651848722102133491415416900123701377122358209100264896354246503688271002631010595064539184083412656712363267122845178128799135593686054555361371006519026490149904375435643947261488662205635259637331200716890292690501334464074791908261951407865687898916119737532627179744429366165001853947041546713078577294783069533911840913971962548917577755733310277438738538593591673348825631095083715878547024195885928482055443607721119212404887225173924694975136493975883123725505362269643303631593996617665546117649230982870210530003728093482021232513427262688800311293341979317089815847892253424935459758200803848369156854074218652672826023521941854764340941118360715825874668084744492121662877570079524027823442878023822619078213564505222380210563357097981258408227542316038258042802905520606546317462261307755092331083774584356728909795633088681209459216246955430337601835721088746593058891592147213940100374867029804161639756475790943109609076958623908955563399971155289091500144827846129621626636696482025759697311621248388316761084341349591793921262836802255643547478867389896964147912934324126406425458965736828684430475403069594845849951875079552255350865683290216498057316969163065762413805291911512215567821662087023277703442502783619590731847589397280379019010001724254004347722645369896865830895826647684579117760024212656724995647985064588164100724899343987282888259870038494399654558939174182140009229781968904731090037795661007561165247486294138394477632168624304449875071676104852996025955641696539491991617336749588921096827036704113456839110085595420134311417271094554477028277561259938595062707086155713632027075890716684174966316462654191038429782670837332724895696750122157008490067900094302508955966358346447501076770931512009523406837126194509487893705895510124817658885997312901766102280400295438757204891622551326273829683872979148090031343330325522981273772029953627616663055903194015389972685174368358742660854288376093460443079279191241051909542043002271471862261119502835580348103149815711661239393898802261356509822653616965136958416283440815396116515392779300857455788582360490349424336248003576188801283467398250588620979473507000740167667382103275627553970554957462247599412214664717161811979666613772709521925786804420135726656674782957431377835704776358866408667910360502277348492788637312778331921723911498808936220930197881625244168238544335719271317840296895836976264249319681498299048119814440714868672460752940593833756541979162881510731323266346462083905692645591033930652334416833515303698910209459397573092855088508114270628023367298844803778105345871076286675546965935882390523209579131911223143408464341898686899688250453436050566808062081982004716850815475453497540718134252525976711855124942960553431374332347847309879726214909473964003694425286743097490787310253420566360747807437073335053798065838402076902240514730294169554726554518564996157167770934126055748138814543263746471139520180870907867261455201687538022898356506633685865071984472741197146703785273816964467248292961406126339460175001664879426032762711447441773177192646523563175099457041466302006183353332784562616871009057555557530423730765401722290878413905861577697658322133109220188514726344973818576165277566772620764937485293636157790933706727467376264053876348503922035490362691601735587953578820697957603367756055157738119302833813481038112083531422004262912267453709322766972770886752627012519254741854451221735281857255489032682634106179023616102512124683721757708572565170763842298461136381125636319695423485412926984281493783383800169999733229844119684369346150014809265231382547348871602293732158276723779867923772213598913899060960225244964042758555071508513056107966761730006020757695414452395313692805080964122606560905838732285744562677964771308539959576946867891754660061102122850625228266076845678417926888353275919564883799797461964957886920688715556981991512745652316399533952070010694377214446920652794618397202181013237267752759313368029479199259563669740870117834354232912501190098662775055799330625132361895336238077090630050845159755705001531765071754293280890524986359972763427045962437789981371740895213880247792123665385692054774940772388657310233487927653194416073324196619186120382414433993845783936680434293927460871704091592172855779219107135624475642452223539770385398102349208657760501239004952366795049028289061025665387078570785932431869939298041782722340762168327321258412278982829095907335421818832963220934420745915338075818274771950822995571038800425014375169595944709725656280292744643206132696499176577583080603826647709226951887117927202688807017287573035293235345859699038268434518870603347080709252374469438807520863763795263865776728117533584246956520527677745365607792978939564174789266477544482050119544130970216193927868220033599437655927218504188872697277177528337590892390094463768293143223008470358540823449939603096563738276399504977971603657056562598234827892246758119093373744327150045388033400340792596271289299247223311253815398889752159617960727969143315133567792641752520200998487289618024515688316984127533693830682063730983455940567839125299864321553060183256355626331213043840663775753520199742131322639735601202946877523623364602904558993365083496698105059788842392741326333041070979150703931974278942899886664673402532252830967487207988761312962133629708820829483573345989473511648323191144809512256301849919724299326982596003762960547671833585978212532214261939059752519865361060831071341361560781573175333296216220754498277530866989848221296658221439763372774306794287702795000462263814343994604502690566164247064043782700451109351545216992724188847726857910202143742189372557753525369412574971656393228966579445296171107726674978652539624725888348888292012939045576476950115966498114700859773188081621437574132447644087176430337199825346968921092260558709617393266271854042795235991232241998207413319437667135974413427064825412971738655029664230759882459949528600055725302849312446862289475484783926315975510956667870725594950552759374710464843948715929411629992402998169454902392825984091394333241921496656883199293779293818746067969815574934982588332026374721277518963281203203234823371170161221913761369178907750046579585614010812068907539465402108936168126991684485242157886001110650802872313872856763508648805263744440826413338955098703188902149597054528510474729645907462173290012253359160137975517229426758190245526191983158810407657461281425024140966621455610606475341436485108566140959856312979320330331183003016426899552584307050959632490781372869926840050563410133492628649136199385858726911261464413899492469111514563709256835012890251980765996910392851075065060844332676908259167582063234402622501074300895895972138122587030307405759065087933159188548469269465352027532339923539213933564253925104484947925155321454090492973746283150855332545100871421109049085419841169307621953523767738292012343277778710863626345657661551702027334313830714435312767599006744351527347460780762197919501125003608285128246399233845798279477246126208720021780539116088725083983210675411678188469871754944676748019555988152432945000498029080834184209290044126017721049757835035623444177691964383847582263193671642770292071441044278020842620850448213291437888631789007755009797809414894446638309119238145225556735184411056401085765951521654188793132327228822567524847248961015309009839887874035224087279704523343261581317857737364013807486894493272445736812415306496949711050700817606055056341226980232349955601244703219188625850379991891668101232551242683828316156161399126856705255465668995616357903960817479628239970096396331874701403885114791146144434518414910892413729648972838603620438602532956707320034365172716956703828543086955182392034275064068336975983975293518889080680461109116513973891296644213068345069576105667226514399257431836623914777574925115249528652388457352891113427474869634380022389008546628672049062046355944454009030147082319514229677291151428509933788323236837853684222346183242182603157121916810735860876665654992921996119029068479992242117457262397860758496145449071538472878452404134562523581127274465920463117798923205325470290385372992579424746744855122404390593417204547460066764345450916202813156500970453059539485454215449339898512550200741388433082433466114185517395574851301040847673745866279479439175639794288503818527336195658775338862169393317299163493311241180898482426882903408113989679124863275013730997417038962081928022778031322011830804791056811161839445448727194140899897904982657326842565471167388153313081581576138715544670685653577977708057247721809662215167360671052491129362456121195230130691534538288137089683435446733135656372250173914243913967808035049521927518729375889171650260432309083273785652591669394540248337290521779207333966082323603041945287856235367581947844217893159174834709884847837612550188059719260105567898691141550479589304423620214837832350191478725481495727930686120440622320263156723803906403171121904249961606537345852384999319372693766938419909454778267331654347923043603144897102099284176535528324462243100079306758694757876616592233218044000722199876067089414318219832481704792222416635056957288847940596720679422778579307249614314240782083585264387504840280118414490293440654227221735282629168283856693121954022817913561468211864165425642249129776273365944128348174320087635150642430231475882721035653856574915336785660488113684715733905425726458175600213460766747083210717863333875349142043370511373632529997836889754008566089791160982585158761052104016662441686812376872309810014689325013292155025526077952257719943016390492705667764530666090835497422449785048097470440839192809190553802554172045785882664727711038624149614954807628795403329041543887116167175353471591919503615596203405868374942636335454979890079898130037073888257748633869360057431118502838937105220002644782951019937052078049903115734770881012593982065116616649998612200178646735920814660517009131337994156989343866767380552050027779951635020891783525644747105429844725416301515342956310598283304113440411656276641988462517827622069376965809613782229869351809040937624035467708297430809921254276503311900766376113401418532614215869890918684542303730517417100838926425744021001677318540027205492043425031862444115287501663231230108709793370176247499006655399325879690530742464672174729040123062007349861433832618977416998558246887819748833075842214876996809678727906179414062820551661119282477197548579951279330700998584126806774587942824889218774277685042731616008858697523113421167559904080037156915597674939449492665610459500492462160895467856446784126318768832410771312232431344345680979962385708339279537790650702353726712488106321361403902399659326769578873536318397598666089810649407188178883293424716328286085861540003024069806278872314081045445113380035806591952914420078664499126844248128047453175632189678420685664007928353159793811185207133208007012092333412637886400624525519530728455093838353707724858622625267669798312213583760883320179625150453737526033356393728009039826275721871459610983961498418579971660409666185568514440991802483585382914347142079136051942268329101392858777068987209223096292582806265675778449476343436314573621011539749965210023638962892736562546370909751210026525865305959403732632870490636709667450147897330232952044586161817821252861309722513337431028048170127813116682456070050513929205929219017626834364622531384888428543684877481778706282554768873617254394263283213603806676762092382016314625216902643623159782052316909810228128075429064839557213384309742991341892263454072954837236941108899030609435657823374411117002336569592134048111959353220978169167312767791319940302149387142686686875221486632019431633329344350803064261558190672481952294627562495931168337680144215313595627082260972713683239955473842161788092348020489253416708657763892440239365469745244669574788371490054250139789827382110126693884729554984244150167834734266063585488372236633420087481150323637535370351080871682278937527989507271475184185412981384003415774227798839570310826233744632126651330051730308274882253001703910927492524727534320562575193361355908677638950209640061385284725618363175493413219841440656710076136823090744780021432264276065276973289388117811861046082607130787864657167765426328709506815817500622572900634828783933226857108172348460447689488618107437991909085989438325843266691661535859765950884361783345390733411890810631352704104837922157893950781409138403790632188705485782614069814062813172500229274845550723765489738917845050243974995746892931699979371187059813671721575517041245696320569907504574228379668176339436939532088600460019244289004990705530553547226829389340105905746602849542611346902274250163196123348863081197456844601352791729959286892942993922708290895481819687236787589305018031066278847209530852249966183340643317263409939856527159449249158120849404662801662670169884762234087065562395999517335328721626690480627859671294760967177916965108880608108241961097467814289619436606771912325899206487487023607656350895430962208460357020629675842898038519825796747168249154881947845558110605624595768147401273462308109502488311248632531203265057578219692089291573358425985878681511643367473643814471838196160818365208131173423588393038813794255168939728211829642100897613856442429165575907820617925419389105750996198812628683552406222407731214606560113764095647466082628235744498736576681715279692768628760372950092818807185633059441209525001571739098965675263382765816025354936930607635566400273012223740222626374832137941132264192511218325354898889441934747189695989488940151441906371371526556325990186025090649462247388510127944294177126987803764453802256891477249525512875954662826573895866864090974505344604801441967993588019027120103074726948167140822921723062462493789301516456307052215586549010664663200860061637417428903218020303806514654843748025753502277667181505207939770864170383855639566950301230708195637470612938258074096222352527425155647023755096978454393194840009761468653834422296360262435577333839326668654347013613150560463806020869194598728754609947622432101379414976210852224569255574080560864154529043276043057053474557943592577872403743287878752273601093642994087501172982500538918509244616233066511736738599360603905367358221544395998194699950988610448521520386475408548674165869397641305763669352656699336351351898140623720064547213876573607442975743406187700562323371555689575211105757846021545454487482594038753779644534921191946003249462575722270260552093109433859987883912910350414885396687813056830281140155994455867375188270697986502119844776540398753611678535678220964209895321922965265504537115178320658502131999277613598946826834105688671751135463827275257261949257847587194983296010783231408067318601197859015931901804497089299327207161419994547685276592195800313330904817795850798132842297676287892114121067119365801993476862465170385315659054147928572649676839237632176977191876378600039700217935226358821398513105724605420817541592551032186691113244898934988124694668623884847709205236165531432759931483220725513554394932625472457976078321056436699880732641181372547361391558841760987313711718650555009980249816325063126685378262898542604735852050390293283328716955843271743284797712655474438316173099435872167960558612235368209528007105391623051791377860286493199607258670650080874858918358332114748835683357333688647799307123122212246293030316071265782534263953127558761824528708655520105389351430674997780705170517080526371920532155820634582466203636076418629102068816910117881328722450749317581255159857847394568121060766426760706590780993390481838893207498534155441684119793460902992850188713119598757085272394791743309672456448680895590848949744412849501290117512594890840588653525293850354807302646489963143150873200060528668686252860714402945906475825115018012708576362677633099257666075058506040334553614276079328674148167118054129573943165518743679654793227109027352392226788588990823705980483866986751271045097753070671083520158309026463667286547763848009066767916344021457891131975500999076885199423894448856223708449989505552534729266012999600531911141394099066362737912884531391123607475332886024032826422615733477805697520332746420507370305929665333140378129988315910914016830641862067869111841436023375181295656046518486997057185542393526034828948191201009793553405718793965834478178823203615262304378442197951630801042359953106241464794397068680576969978875454136772343659587900115316786556008600697582009428625556432166482580542004431940967350275651547274904671529818835601198906680647562234615770913670909941277826023003321423002587619328263255735560847979794034146404165991320502226115357047135826896415751249784776876691086209753634086456799703621520204066554972441160370493872226689010480449107645882168838763876832041600956500727797979117940305165349466342059361161994264892710507192696804639902035260663045516722080515747138371145994311627106451288666605775312179586027507253246375402554024602097127566285975504283936738286778016406751436353781687468000265231297300428963319572414161613484953551867945668135252504978507235480504921044447276507680367630025168528673301537698522073930745000286586987650171201556869639865459275719191192166762202979269552812844522820044446813641094369435443150904288005841649901908021867972572743167739848214380703332221952274356677022316528232973728006844383460623428655622845005550852990609009868396345500834623902590535546979759550089018514836517403444367884092157965324191241084134074045100881002502897070955186747358194728632549322309160696402590137354766520879563951474732104095437310843987780889992616772577843767119537059012184881503318475053430860173322685328584377220840187824094736126919865144711442679264106683684743856930912664547789867992993479510529552369134325673702334039057922748899155538521361660249074399772952673744017151051178180901169918366358007709729780900933909656665797525616066780207961574600764235236244712721039273828338338096388350070465678711804071845272541537163931825874342508004543623281510207536306302795485596562576990492364681205457842885824409294499986097075118148794732666348472658283461650485798813327743337528421730189669241215398532341250510558830322583643485029552366847291854442845261711624631309368200141828445966404641289993019948415853311017358748193731311455339778305305651368708167528070791057641357472380665391761427377642627762829598666660974121039946338450388838212728588433456396394115345152831417577970101834894841415907379867211845195146662962999280951377695156908546493194498213915255184505712040264211781926351875139961303656604963660296259948246988498278058010722333149743316545872176721642040233742971127197119819373055872839283332412080800797919075192694926891219733664735093217887233125160215042033094007564145409219059121812034534732927519148084367565704075450796786116852323578062077212161505461812378798895719657848965595729730988780869456947386342200169303784951922760909260969563223691467753580112643741975002105399781284888905351203047729757533295608146229000509739710361705840274624218131379284937960474769047863022352949941149522426822676237524297763738065321241790783743792523239903270302362530372796569409070565741764598588320253396297277380550959645702788657600164650123662439428975759150869119764667822779598974229592815972861442983490086051400556871659064046402176768902280013784762400159426875166737721767325040708100429108571436443091468697187934223982863636637542014306250496218335658330211932707087440136064359725698758625958740308827724875192900671049320904504979766134570353951771342544267773786268308205213541380948066743178630819841292293520489472985232030519760297206244863235781700135176543648077392306748509336003651785486286403481895530410700009584350497782104893758564755587745994493358517625387664846409485447049591332443954376492512296946666983011167223925720988011235568988612313618186244686875254328471217199241938600603940315027073026969306686905505247916414224177062303206840743677279938041639513244337702774469195157143766420785549999453426567127645286107276537566914219186715303951389269566321291770717734873154748251379324698917890342020764927173509504064077338238742629910544702795978194136921562497900823879425318378302492425364237586748227761364995363596714783110358274826094238577011057163387616090690263529325639852861310368668531874756250325766498955649327939494755692378572717181451620196343976846856229939341629721103403699661904141674661302887300902323274890788861258104542427715010323091054174631850835729686445144934731874860919725414083747537174781090195119043335246282741787632364558086252609757785403173422133068473242908699333277184186731242669990550062749345279506668190064371079759109978636424047481103280707314052300160670477670910055339585723002592690421431347176268479342058305979016391904028705427503266400592207347438284426568601248682981230256547203156261235135322182256063731001209634268178052365772059800193965650376249341684801293837691467750169922515717435208617157020658521787619605802731946547116036200794133775395144090879597659200089059039489676606265530393552262813881013701552896728679526009661092300303023733139663277293478972839643519435339304102337168124734533560320277360675714467223532619975440585667358489054477663834328210848414836871464821571317090131378645354351384803445391446796011821174206301043920771561768631544270289218874836091917723300139925541802614438586545899478510932470063936135603327973637402293146080251990457632109434655312492142039782256291982420799438746690705191844756631643289957310615567395290386794828081091962623991662562907498245125919282367852505285674468047080280253045126796050554289067259686348282736767859364072121057241230145525274870346204093537823468152578977871788819023694400278834390303535490569173255638587519110913256191701687494107310994067055863253365364812690764845933603318278259027559948463051750641475826136973348220587048809258613235472754897035095017266633347075426495156107092444907996455370341438561633688864679267139243389127373764926706942398710813417061582214030966437171987669177174946322335481508667927430946038667502221958858697603275780917874934862111847275343490239570579121424597570361003423650043587604799923806413952560534682084741481191315981621749837257332378933343024947469027645001063078736016808960983964671639991998175044822199810167055363691157307488480265800423128697938909409220494685559049140980820367021996364345008718222685666762316439486082744676471035252322571366585600994447705609926641931869385847191095349766475460952578545176291835231134380083246321017825032552137352838459839121422309159261535397102151922284557379540604939269490715511972560736968763750112280766411061927037587514230880817817199079888585721966443505469170454564765139337549105926783625473260562047615460426612358327234603972781584470014686191650213016089766185316316084580805852820330367098332676793615293330279026129950632826032970529884215335237210599703606350096299671797753311710288404520282199339186450547693021833686744294423841154164059275946333538458290799558663914200645908654134024732190085006370496753797302702052987909539639435906309644683542723134132018218789713081034109383975570658897441306645277435110725346767494230888681850234048510259940748575045848456065862916238513685417579523533452913704829600016341346352714807330881521279586391557770251629748616496974582160702046703959227593669037157660684184851688565153302196946383415330507455917732525997647253598941872458927471312616061101999824063223145724939580584845633297371853663926204605716405276908049780538865757370448002783776046891571582814784541107838036669616857146637452668096208795093209656916413192352744168066839717108101575615095329235067578387095171866259424292058318679074805422302349849810452601691084032471181477870494277818997373737007139659198660323670626357593295005149039587440788011094253461823526586006775644880399475884270069093116150403818022862486659582021293461533753254489663089660115576871170229230062479354963514800484534872204912180307796352486652878948373052545239574650770358938015806572640420481961038380951938270381412776264572043545152098535585411814722180439445091690985430361398098807613677435997183265496797695628427788969634815345400534877853760059008435073939946399634996375149923942065689059404941698281764193048592914616844654408721720676250412920675684538285600813526356304147343416911450978976425779970661449705486726910304755207514761879980267661756712387829621698667628357655266462356542437620376407789071588852226606707467736528111378586130049682048882157097053463705952882145386268235239274916351115985585426449099388486256006216929800343404146791193763426143693821543922729285171795535180270553129314085553524444411256242874736944754630418932147927036810999656108800539302188195054600120242690100286688800477113315704675478211810956163266452364422492169919204592202166949241258951910595536707461559917300990551260166711627416287113474615671187387537408558506115973238549373199805934020046187237184698208954964611247974500752017201373109904849686510219879065270478742243246988213921281775392641912818532489300524097668734839476477908128671967863364319010455357974445252234699529787619386266642988771807714239512162888502257833728209472334034534658314478349002261509028434560958318934259472472339980360785679983908749241915619699114692961997021623633214091974472248791302896844473674422571034449875541422397644343210924445011999635038347142800297906075741985282612842303419602148580460812283073831834294400659236478282899180087364936850542707443908539359236106530414546332332498810842246016247730082537405554900634688932977937570120627724643278721049632013160240442602111241367788533886005301938075316815652303674415966404096231142402482223369083826802856828171333962114711846158125037927215118349861671276546240439095324590069022826800817021235543560266201976636548219253893038626755549602665638051728646200676305018082832717900618043973848072092701622360311699666550929686724590233646074410949686319710870770883675535272871222124343215775798265165008249748761447141364839310910966896206311948920816325682757754621517371565192154850309175303510331054156480489016115723547559886208398284999568492348447071876515775117095723195755791825875359466719204263857718296580669076478544870353506413740609356744555884273699565212018082145546120926788700966411812139311921237413694376568745356305716197622397239453578792361973991189716395355533151665263630948093633316232819887267876820737464771987646449180218752102069486521593573946486849226361756868328133982328675960286617651032657164957563758973551113507809472633932996015046817535457413523710085780458014548645727887808813702018332801134300916740742976276915327152958899823435172776767488361040958860425240169634286777631203490785283565633053392595283081676272849520128365207914865369280308631461314941277016475733825825252608339684010910506296406143132063670111044001785412553009786501671307846880693869941290479587308522435414907583836378207952332643593754772070105458991242083896537685354170250100363244514423246653846797686568927089193046530734060591808535147327122800659424914135115506862715866289798811109782025429543603730905060759942471585791146710497427479386334197126929977654602493431697428218927294461760166473407478492452170169375702414886948584065105974140801670969195963353025924650505910507755212058182311221607732493365096569314179078008159000278523234159204452188795528690242645073664520888055172888978832850636975745203558924545926749751679429739502825112696108849504300908233066135814378270447302859968426942443013207156612361222033689647890481021499268310354197556612324301993906786170908738639086065482250489384614687579089964371667469046565764470787589715045717529101936608394392060867764768470336270871269352159410374263034205072764420016961759073711445019874834054089167678399004975504359574854900382518854364007496506270185177121780670903874713366780375828561628886227604027966743560873690166698504901185559897459674499127793515145601685130065868793536830819409105639939966057424697368631329776079960280370704307791262360059307754035815195313678236779902621181456511468283951144480497027849528084403323719055654488774744078306161544734085695270731133609578569222414723989405419225673112691373210957528342525727412759834932899445478791521747665301508637084941511218168912583892401745575048479320023200599117542825404307905156079539943711526347121604152229421030780846239395581448143938865605402098013444390144139603748701271864778515121910302663340873840545104689673015076168114525695696519223178402593446121027557236522253423182675320777330485019814036786815370577342330798603045142387485560858211224188238781649836479471213454452494987233816434754706133693749969545742821276657772019694638270396117915355291534000622221585439868377591197336947615815984405450172573865097196132732411244472329135161866026901140291703153625524224937065478475839434972365828939646331906180393928189324311348031730940901246553311497371544470094830013094046357335991940046133082157811051040087631818574748268955423107534270895650902888828878218885745982563144544469349225309014971898943985188241867894958518410734448319347901148505413861735777626127976157616652023197180304449062078043735642162898575159516700774857243961964798450417905538027879444775163798731109134388715699687961856151260016691042966676804758554250295474989951064494485736858162203044388307112125840134830958957707573291835485499679536322893866575912983224375997700232079833020822273887577790935229254246186269442113223977685904026715981056574988598599005045420920878438767401541749898042004015332076904934997882691555735936993325019996747139706941115396689461987400924179105106270563189342715220915767172269199624362155814852280458745647779811367696746251830826211107858958389359729924957559672110477167309666410694015792099250405432233453286145020348700032887418622497521294064122091656042692068752634829691288000145773498139791752245135308657220880418741461634371736157854987615174058910223124512009197563579102187117301602905841863421169016905014653947766587571232343724986892374701856076914746673226244604696564251129539390841484673177827690485029308069737932181134365358294960232180346503791176653308572852201157784366843385620087941843208231194708521019164173011757025604095657912085076105453905214157576074133594098231966426470730699836515312836896286498549872994468347117361854097656597642776664783098588435309895329093613060099399164889615953973497151558294420573851909310092218923474024263264904418534627887816767247477347672387850319910306948526662726970196134681098691044848696787505358131476876642122439715399649339682013223482975733943009249626049131722366876204552046898359521242905674643776598543793210939900719565835618578743388967258939626329133105309161814677598769416843516898881659416882763904468117792310564359186380312913100766522775255517936962526608300376036076053213632464989380282806621273628456214894360006607730851215694349908856152142684169934318624702390961152962476567834761382094809713311977755741187090636866177683179229570803199971721104612013439372188638722552093575537396280478873472294879912358968648970154134627498492960434533021323393822594675814042733083253451292399265305343589861322033111495731958172447734873205480471944769783589439586702404775994384382679281215639380264343995432220730397547607440300093051882809176651612921763188924079671365167275380251564940401838604434102606778078563285621632873966593631179962221686793561903798736580271621971185063015469501595292238155371104899928596715841208571433236398913847202049712646752130986951551265101765966181148234879702305563313731690408731650879671540490252238251436233235526461682496605870946359328201297695361002243598329615232442844884294496878291140778582589418461539262518962675961688810070128962532824447892978588354404612249668070542916509071133025592647311794558882797966701439298639968976296071380390579582360015531705405732930393640136412349734774927481774236658342863067969624735483427570556397252676424838214302842422764179749241800369935826908292722375263882343253602624862902916681005644418701906092816700765408335176120994545269223443874916928224356351191280854693962797254813237531126870154423489261945964057162334700513584131994970931744238341618902616166839513057755940211217789041419801789164392895685964592377770752925510092721297101836806915233322060869083639463170683139292097140109489596398770144310945014083339957759379613247567462411333733744457561649844649553441292553290194197776833470674450057400775473671917565118733794598888505745903638194374317309465092797726621406078706422841022273830833702430701032168272380018351112601542248763253273049946976321204032084233175261632315084804941198931698885981696608328859904090907909980182950323207727910430223256177004458351867697784184257966922521687283941543915538604100679191566122937415365653623363482917894123992330827661456104393130043405237213118648493621357548001173812544408223102899302500809240987529944339681425319135495581425905979859182931854886991551527344723410037323025294840398930271204521050657925596513494363870686634085350380791795036576239718521055325077016056408633353671045091703565511844780400646861731576551125540198468890330178854955218618785771755726614705529051129566641201743118719876360835753472402546779977537904583968808969619303424866868922491338203188524957831268327803641745291332879478007877530164355039423951349269543966948712578471153413670172679148941440076428200051429947637646117919803650711347041559061116586560083585508230726395600802819986269833957347456869346655900731923241035486735743830577237798888242583944379787017939012869034758197229215380273303392716489143484096309049654972302228621278754378607238725917736171137807958864592358878525280007276598834278834910570287741494150827406556975077763713448993500182354537677317004889662244653597610393481391430143715503117132603975798447152754866641564093008314441504643646189725538299306634233170285255915553755096687738594829084042590190948758954358418500225697647114704136807411545925081737415658976127662920329063783404682094810908846058451426983425042312106657208782736616646376727886100248688131665684991444547012826718854556879515572823535681276832317641267386413192405945332776651005096999598807133633465609173069284695344161979150623271536017194878560483358481318487064410768304558155093263226376971622152662254622266791257043716414770061045918967072645467135094302673578109086535507551328599116849385893789991417542214686752022607312005672801153028440619835523180056690257753883576134595299814184753155368137605777100161309355288813077016676766519162680589356817649670758503317309524776852790711267419358391942625006333808205819278100567210077767492497730216495262086721057209806268934181253344463487263234010660121589622061897544066169474979471931534755814116969186456324862747516612861434891459424323826941858268096552223343089701537157390442983337017940325110228281958356955224658740563587504026490763666972574566288240062760901188177129672257668988153789514786123491330037125047188856847651111518407612131230568546366331616159218722265072778501197409234579795829574367833589400601692026443221838833439389886691566527072985303618761319332126116149621940592979030027370687284550600858870901120075635171658963616673266637353325515539965665267407244744825544391936420446255058067165030878614979347193450515906405453199722596638177181524666139821137861106113878893128957956180851544308892323427325967919652120973843126587032411144849331772416004490977488589685497131227464701378295080448040650697996137285897974287741918348441277934749503283586480796622751303994945185618946256254102341679636623876619761293680050149299716331899583951260780907443078971935253514875148511733214524585485787957672258691172115104230409195454988570108505858657434433976252919492478200583309514530487065417471706202244290497346914460831912742805029592474340923764909112672745762527940433895200152137891755842276958633871387719494671402879067199436846627559272447041531932919168129083178601621230988733665559121208916486516819548006609443542743752143357132752110088883728400689882377535883946304258217974622947664764131388825672750771038843758268588683902930482558370669424397264487159971567208093766102323876496705924032420778107305942396080046885690029746154112276510159747023679278246521166992856356724372830479095413726090148800157173138587298738593629923260313174550181837184754344592171175125280179588814647213171510795689528112126642620537859412227735868904152841445335921829309218423351147377724578185702097056816136454916600100428739937598966864339664672553129825797804842953012376746062351239744692193904661618587837371891357827352935120608358781337493444431171290522825633923009810842222954643342073603267126635828697777914102803742050179686137069118498044607529540400622732433285528223189332316031983542107945369921646842915083951426507488296804687777708977888546399982261377714898357319458315645239263992704845651075521269694003506254676403083728738610269904942790938836728049059983277312712394016729114472034312704972343551283113479627759133702446099374063387514240694849006195116276339639487278817944708727290231486569456286819836436370813812499990759319364619088596949800401516032579248223062610699683428565195777697565060430572796989150349459285653502026096396476748353348180725081744343281986638149001595784510644197043939416923000706696776178724044128887575234873469506325356253520590593444327790342735407288321845551774584733497857641934255900987077694477974986405433827827773230370220073613684749147175112997386033637286021539178268253191964462335060654232375938920163559823409838197224938082560115762321425508650298333426265701980824688393298032112018468072153441670880606722484753007550078197875770579975249314923339562011593285412874291901854393189651803683212846721237565412666808552041523372409138272736336176004221478678251858451240423637586960976490766711251155533551618430731710391535780268205832123554723684337271377361797925959018497708185276626188887678072219969101250351729096298336117211031660653773593604741392842707663446503203205658709041289648279142049056538125356980857271242007800020935016280075769802494920628817232317668638458235844502470521029424800189605097915144665021049778377112058331031042725081208767365043419479838479316554818348797054474652667654888998547900737893784822311409779968904806900477609746703810349748970185687768185292246788280074692136473053122987875800418502024889963751855712912443596472847307308959522332798553013490452944825073116059936805898930456718632854124299957591963659341087667354799689993910919081316294441865120095231283625208489794437331889470683389353492934810964887382210957289451460355603483715854715549728362572347709170820721361218178659396266451969801075710655053267586369790941096724134210706885817364082137205881130486240027898365042808987470862870853075919076707100221092600033275255544534776186127515704724328530859168413353738088704644374954151056966749429764819765058430412904070063742725641361803553604051529439585639810619330556812352167462884886545422162075404653447581851713834080634594793370447092927158079634274649069035804346227209451054935119664571828873700317129648047001367603717439344912526699469516856817537785952182505901885216085961921066498918025948017899651807932792956806864839100057596702818351387211604141357627016234537920947700755788596330804588633398465440555466424323985863822991489992335890759564795856891626054328636970151716873453479151419845257151616975637830520858590787909927113992283898943661234727114379166352435263847709072074443360454286814737139175674304288405970723371941564858445755511962552380570537705912431532045437650951624106115982162194556137394986472897748070575890265795142949968673071817796343177786125125376747369748070278780336697686635517474869211747356228299584792344600475951661042670208688611917023776709167688819145471032055662457697027295814714133549747898303925660974930882766148240182383636360873879739167390312284802825839466455115535282420896016180290904706450814825167745470067259645518453128917934341507015323337645607102703215076254321301992077330213145991259185890813428424285292444482074234871672437807292734743856446058885067395397112394716537141314324844756706001854433164417049872494143259710887433183806841799830864220458836976390737090231779438402916495015081288123134560392023416261380503991688717554467630382048050176112197615689382771985230118152582227837247841424980412389046316845284750903437891668718722322554144914391650514739338825365993495255455193932481228504872734463269947371146949728273200611725892238184540656879291589854486549173190601590477784979798467667909118508859262533781252831641515103501620710035163900384678879704573986401412233149074159392522506612547642031027534520471383642855041046824147347464810628280282862204444395925758405723121447270970238339094582720560167532364009956163369035303031915106743945484504831347391529678179481656600832969318246205183882735946738932845346756564776244287513949254827278871371274956635136467601058270378612351367600994634106349010484761604618955610045110907464490328905098391662048626673777785955644041420224128016903953485969766229259838948815972211295610466509697079889576824070434377427773705560535504821939750620057249468965067186020633694034267303484003035976691874324005083821363455359927054206659106364842175657791415664688889870089394480378911625949722789432546683168188218298900440729374785139242360481144123937466416157323795004682135375518731187202397415496071967837273941932987615268104011871749769682221135067753366380629850063512374966858498610762955314794001231568356178882146143733122011775533675213052020293564823590497735384630941330236272448266394783992673063574461273870303296601022291370916163265524758739781890093940429603740346838559002804668682815285389843817519741220984140161645976565240192607118270529127194069999616896928798284794920238097194787965401813777158664660545757984000535123022558534110557670875279577309358726284296965235690118241314500185253968844617136431895400015797758316004199305553215203908423245217102325484236981754212139260561354196072357372248017403322883925643556614522898801373215209358468341922171031890684429969181896373424975467460995798441853697767800471042847374733164358554014793379664583075477174845218583279230916398754744665960807597746699093271581313788213654772588316881230284313994704679171962132162067980039532028267478117398161091137551362918858046642305876167179957815163625891030891117657405918882286310837717437443453419137649395799808820380416991652381683081582682772693408011530057193426741658246843563077429067711299994791049298019841821577650548833260596814832398652611803437705053001505293592993323752209246073343980225917363164921994565878934353936405222497863236178944260825534258929608451828269610778427594921281220938376191821652926534616654231512069402105867385074340903640946039400983232430973209293614475072864208631116711110464423519843503764701689056855476983470877629817642612818449813170404740413174005696604207159069590854415743142340169138360138460827561044914187451542925056447131639875012253000552360071054376003366960628654946518818870785681194573952683866535780236061657432867988015395485328457952172086333960540443761341603378489415684211861859186319302390507180594224008917312380575735244839002822477965457077948360811498264821772101008807496041536609180544429851056707745256917409339002412188734124780028468417827430532372696509555257091649224752196715329074810490600685909146988488307293048091629247540608332287185656031342338266201197934121162058252936104122979560505963513531547996369181307621765213511351913092920195819594899709258634135335279576776714747536097933366393432566896739063475436070597479096606274851262195304175966408860009285390785961486315345379637895395616959294963290206522641281990253862368126159789692440535009377003287170551699676736353205831369306158516789646793972252067824059290780546565257313385240171593375520412069420090872010220324599006784188668851975330353829531057264735764880546186272756773395543153653216866407517162374885416737685899323239862650774929434134864237831289773875795054145922537056057267617552184529317916568215840766394709022153349833160884138199469563085711704813595698263498910669532340475250384279206388473287352638686406494486567483838700894862601670048796661701521331735555550057998515149339309512451988770040722753315748189058333035701851122389233652784638555441381209439102606798183785558644131489940352129049815428938294301842166047325961151565601470058697843795907821596340657556047604547815519487137839470707313220686541413537165979314247365063419079535053700116559617747785792746247620035970544792163273995679002570836552685215509326758105789784488607202881994839674983235482511724789436586378422294292603430325702370945390250905840308911048326583565863486957210994407727884153729605073649529658432880636708243155080752632496339447289040955648634497519898151731748442809352175112127603645937130085435470337998628491208897279833456393978876121940553063462829525925772424631778954239155879814245713489240412102194885128423248533052571305504239634085088011760718499442963954217087019632900368830871760226451651841776719602805965010011689883108933483844167691421089008238869942765752323814976791411382224358132453963363310471791102495995061629343045323615143624828456372387119289942755122201164556872392379410499923790093073468817795994909150953813669462206647260485984257701321209406649151534648911403570944604730634065210148054835163306983658914535233747114392043575821202345270177408492240853735252099186164140852906693911780131623050805593773334318511246817100214424325155978704033539498908123239452353290430723398055794151472757093591865509428836774708959912825184623495832565190700213240945787069104552158224637862415541089518651214156423206219740690647257062336402817031786840632099189470793574291888206501886947571641132074871154088201131660504148831804098420075598446455221455428230414844794583158800883960173924081738862617721218187719233920529286546760928444509295927884897264927260203857120323394244862916364931391973575813531036929263225705214572195249596975164215740605550226209577769629369249931154529022261622202758806394798904147230780449111573410275692349449642465815954959712629666264704810780468765096996609789720134216570981184906817423600071766420528919060677737424134744066083553622333005956640584608965142091171126287165658051883961715028705313552321164017831557631428683492237753543402285400567548365515405406865851372398234699035683749840685136507057508533491577612573226847647203500841146897421779751711785174892736821553295846895001858119805124910842657345204879208833677652356411594494157865094589493438642671419037365970388832013003502337762447051427705731013942094981497249966600620759779408633557748849553571452236164360505099266953787690198136592517348133588350536766967777899034164511154930722451513968742966021346433590452297910332721938498958811874077802280957471357043870543894555599158884653691167536188148408567938461203350684241591508807841501030942868451835058071731482279030071891288378943075537465851033846184229015910553639123941855535206603782098958552748435070688300155984831253118965941462752429594350953508802208061205844941013851564767424056279832193363602420534784582856417892073867670516389374557621934231101834343422783397890204456610884054211321736077264120428230148941436378439655211593921798603903393891904124678948066718152923672566038348638734585412071800297513215683582396487318694453745594593126993446732730691361318416908887071309487337477387591362637702432428844908730345291529485600816688478877804862167881507828386209367880270488984344988217974235549619235803894581208977507859647741110110717337812315838432601290652044741927074716415054369425038899945079096301884855578048615754060737235039132023313708127024562462092462150239960345773071967444508853635070843802285348131911343998724742869605042178017455793327923845747269156209200990498034646598787979095820523992609966576578952198432068283224500816314055355013563707429455504477683248991615836307137496362469495493665663075049313065888827373659222958109162809969685973437550060297999538517390037244838637920152144940266889785131637584793132056071572836855588791196481158958349629652516569471187619628818637936994925947866822169264719620124498908182236001940268625742167364616112625375478803405152282539791712631530895603282546928336407709295204866783610940193197734998455683574557007422816737855881281364800264557800674848000461522837429086144672273212922223099162715349246230141075198273497444229181597197528136680567761817367311668886051067632294896392152190321755250364690463075242361684187707974395367899347822948570710434208454553909868217870716962293671614932077623418977419404465100970232096568628684476220473469816034485539661704809091124329567943185046714674966446595423983995354055412951400263351857779246413818453440328852466019029063354794617045130440097022197915799620063092160950064820167073817216018417145040985637395928642658040763691890108465659397889475303126400713288546966003717662535482869867036425079464092621513360048712170673065064412657974274500694736774636985705198890136313021445841282167335157321347459440109860161881281201000996260201610976604765237811419000080520575565488186705006390213596851596950834649363271418175810020137739027679540156646907716078785811282146803242198826985109330239320576168545296930657194280532610510063428668406275345479988703398404718075226491351992240367811049510830977442471371960946066931638179221955790033600210849550673626833472643149753523388791587606223894338667870911393743508944608766188188567321815117107280386145023694954748407597635112281646724483768062528879126440454197739192978199110944848879552339492524247873482076658855414322651531995080215993984651720042434461707653204480858879285984502610108403218109413034886029145630024480376207038204006715276576422194885465820121185961973086395803613258920293176141272418080079833973911163101064348442195910743157531933154155429383997933237574291493142763461563649485533238972350132231740422975289777665689340668794314794770775314274189958249490543508739972336964663801505254817930067683172828274776693852067280749530444219142127007771809959444473082386589867486214160696912979166650327324919612886436860367459817692426165450643279270914729037003194298867469514100423936659847691623045808445554801082728995833327958073943577645370263574661077709046914638890382694775050588892793331680341429348323021770850732857382797046422281776850756807427023405209688883974800816909634790349717512743867910581065914970035213685254540689166725942881541675891050780760473679489372097286568727317197327151394104486553286676964519819298654144953159768056050913711612862268303147203078163522045013455129668644965982292025741378015531891174895967026976172583284435902875783932076257392446352731090451068098302559403639755890555368956513845071737787894571681061875596908762947369069343634970171868410124794563450050690225534334052096027545652085137422161387745451345025612980454932757530789573944662800055673368285860232783113657516708168648126930365149004917697742117765224745809979036732584238017012113232825964718080438776951326069589270695523297934825045519929496541804348704881982477232705822994342667839622970339030250643609710480445587806950543189411200255429163833498611317953961289954430097594110768812329456827228955905620930418790045746124916889767989197185469978784444633893700358218040557525525895655612063158154134910821557740561404151177008548826242425830773169212397934170637855437629910054875704209963927824181576588456189896374150620862941570912345228881156741836387440386731120097486650387734025963592336158672164093917179475361307294639150138332267127661922230872221301761925979453189569646013056537718150468452866759029761325717235702758639390224160987602988498434808674697263525325003270191625386818430340521659271019110420740603364672753590569846255039223010568277116525943060468880169042188100325793249389938235020228846018859162160791522546069746319080241207517802497514307653852119288842165210255928490243618186747346321500299423843328776756350409180656153717949845435474670763711740109732323289981980689630185909530472266042417758759555345225358922230161317609254863774505227525097274154450412909562483178194341946359778293193870179624536100792881326810774778186441432730905090449460273375004858945121721647008528433859845347267503338656694266658684333403513146081109581741690225984804089431355492658010528667895663434166998085338075620846293372877169392818515904019739375570124257580968242427955941625302483935963757570736395521990913840445576625171765945433979580759122425161395878092117504898576226665762830268779592252221245531215891462064261975378769423588565543386393549190583729460735107712890306086409780834222209374925476027514256147738322103355621468862769269549510613986763027291156022712691522970287603001989425003909945108614769710933748270994889479529622132294458957847213349494375205743761709295178827925857613897729605611905897103994628958103031852120465258322272789671318236363573503573466923309855527339841767755725103884570955893832984962886973661515250404527786014772751221210429269122449245528624469234121442909748422997800226015600109467752449655451178544283486372992486542208463216875829691658570029171803596164515442759562634548508657615560282083404695889241038461969537012696453265652815624347760799957027852707328173908927557251159200300242171686238394831576072430749699844796213378514219927710098044010353789592866182261955648841443442579263110492842935302222008967349408257949880754946861148834109797339679244118176336463038403704503009279726950883030543060285397534801610379928330285719882694744177017139007414710246490910142266281772630980922887623821536511087365932062845686853506591943343368700822054249227610136926964150258307292141014886362185537086964608475910367862584922052394036946332031943439578609711638517484426421380428887325526786954228518383598696557483902864254832990800863609807823298450021508446302789764642729357062268655619094265268120267990734470286911987166383316286131635059682796977778320269565380981087739173293815962842739228251874881579693531959059694656834383633262103484296142057452127641988177766086597666788343090861326345485340537688602271267033731206987491521614120358544979827744418351815867594472310888604678977516929649908450760356947793419628894233875500255897386904748015756814108853125256480049167750796363352242452859749576836150117951197598393380429223445720195976672454950748322745227971105292601259979868071223657245719036956635475077431891756896483752974877581405673015342087611949131416123133332321247805669239496441440496987734782676624024192662601433032306842802583420397755502881249113302768852637506136285585488589326881562026648366775107974829663559071586154454465381555996430745547919268998628721498703435820286065081133212234478804146645917167494221687126613008817850917537621767722086629808971475032664023450573157774078133067825639233598687589368096491613277969208198680471944661269435405742710051181119628447652735523508313394266338383558778899170041039377807155919028260213100276665229730232554405536104423628845597386889325113264546757726086891560165479721577532305090466837573472450588575663041545861533407657707701160421998325721854446881452570805582536413616139947248049949236380659772921174051314032993894192483244236165703233218663201674818998521116913762905196016138590823882525637866393679387653360797003669640048772904518884464468993440622917426287695208074446319125328326721955147569968820317572318301132460239129884366347619910781155348380952943810862434123494738314521662809834084578948468173652667748778181647257383926171991690133815233743719625152798406308674265559675292374149520559610859252044315570224353700374443847430914752621848473693242128703327137064251649036903484266380070957172983737805519174049075896922130979740946851713836494654867367087778030128365535353354392492912562173915875184466329549217934225044806478120603901983066460907080981165418999962832663560487432769181062131028969924887657289592679853121269644533589425816685387672865796228282660027208613025216049193313452275405047969381386529072271206310130475236314932745889096924571018274118082056120368158002997171192954273491387543175087630602995089030006520020927260242982811068244038105942552717323063705511358276609059271348466746323439200584550698827868616608023098471553832818402763084158005735223594883421396056924140616891753302590141558964883282198558746667624704279237429441621380876009243081516178784754170340902881736398615290000155938128130143644104628675256921694601904057248453935808297940247765579381117330511835331283542959083313041749557817528401207049437576998986846706253225643240808265254818456808312074594837371606836308980720595807795127068948746319237586313291092439895823614547665674704661728254261105436068226339938475203637018597926786825818356520159758401982376281448311572671990696765181401641797017341752785223124648808168802329108781575583071783952680634560354893180908361754411037283345398119746102288332976716692070279356218938222067968090893299666566760252940617551939986674614500160465945532341520406844664683653819347145063701006610637952152551929764636419427324819305644932349455514850886889043410393691401036399028527974963164692176186552519011235763562932550290979800211623684658266244233073177517203444176269939976069231259287820963660658678365659620428461366497634455973110290241033264195462658044340871213909621029748984906164937374800019713161741448081940562293720529106893491739879718347453784968758133275810334764505364703602715349341131797588184448514966517154023128327769940662984472170520276059314004778971081529682036922900585913028572653116229807378404730940777126537242766944549620037779665134630751704541006768519110528583417049666777085352648541517282320799023725198463000146948270341757210422114002215267393935470559358463064011994658296784068490763325736989336752870236768759171259037958261885229726636111683810870302803932415291701702451466844341808649515546341009547635391459789945145524040600621676917238849128659253316311238866882677328986209388225803388716465618588487826271104819724487563733975152185423296307987399761159146744814818291401738812765825470866514676953203916963150225067393904129738782403155857085871908739872526046631611558978211375663616215657766459559367697719418219719777270049223819453459672284830014968656722376769892634974579693471364837933204396202456683482197553626204424127959109930267763358075242865429133935687682536740951252420158282278888786935785950110062798663081433237467842855675748714063791397646828557851559101773157133585292094789975986547458065827255064946147673700807347710850838768445210123717992115820127667016651068334470460971180320111086843373796387806000078069313511488486173089136695536092529961272098502262857531424623783581619936110203162192538166313488600825897461414755613747247638760003241055457610820480557265260643513018429781477928127824831707763029725932197242726418678868599451639735884787409880504519359832879275110451910583173234280175644757853197905233427369494325925627552196147655589056988664482690440037583695045386014943979212836107569825226450862397314765656910206430616428262177221739887174327933485588457396007389026033324819155914210993078220045093083569461664049614688610408391572659744339923925154221502485590890013302874786940013643302659447292985097926021965150563973695451188471985546483823894475837978786353325489784344410404197035741838259979011897907245011592909075628028555726121031722613858945157366761031281671050390753392389444955413618308620244234367163374341898722415422550057954117647768988095914523237834405406995533395934438101256987273485048673979285558803708778649151489934419315652646916150150939802106468174564162652092219106983656788567108460108775752780547885130713690858927072723539373223805774698536757071833677971370283618314030670820757301114806832555484116426210870546667236232317452288402763406995002279697387743623450342156064016078964062667725462202922789268562352301186531090454966147756949518059712391346416515347280028025248423047556591489129815976851414223974187738094621709897411178270335433847943123528064662249840021354599801902051426673024114992712889620142033461664013111952642776574347516799040402133455688703637691520159961588972257179370362285750059052101773651261301701515504407431882327327954497996697035357273900546164017586090663107062373992038491346070947203031779930852561372675412099296693587098665490541926850867066061607732218483268114855118011684702469128468270215002175096741781480938047883753876567739070561193224943369811250034659204767917135393953744634458144048700908634615769740537605537575589619236441697306344746879194537417282298677256314101022428578569440852069852215400151142106103510571951981765386429058542396840059060887286995073560552138055387330456853444793379288150140141358711471310745400030235908305778275618444718690004418502964378360502364473273263179809638905070961842253826185702804694671212788654109451731548903364236012435114830791405837453283686002986808870445834436023860960929687144919863316820129598003174414765782881365718639281734868962965086753203163433064188734393323384947496833064142545025238420084325060551406436875395048349350557788861516866104042386525714048463638887049745518154988858111506660571070609982751197057096837926311118324563252944456073311696671832623841634197463290959604799815687839879601489432705305002084813946701065700833184438118656794289650235167397518215535319350576634432581050966491303691419224759540219677819094953566061803184187646514890222516763648707505779566057136192524582934455827788468670345484053969610544924267467597240818973002954807095237326731137543605835926591468837483094533569210837072137031910728265542882344438410007714098013429004556625416606464457018390412044136269204625710485907750202410690163562431844935803350253853305479490529222023706893868148600501718038483195524381211937937136477184507767440367820523996637956312745056303537181997826275102042261787126909897067903560349381100426007491716669317663773522595880355311760456169846053115025273865443510021270797594671239276601268785357999752328399584238474623761240340015463183302985353561137419873200784736217618251193319591645536203459535358536377841855314126205423154189014843655921433723648316699603714551005092821266729408746952166083450699291914079948972540361507779574123990127569035207755667253472557995864598923309696067423928705972640143014853431800493725710082419050616702474587560109299053692321696019997258217589510123951630155977248495667038097902027668726461848439941445579237027722160400896972484477256886646115891584349684931302383811922660788496377283203275960644657904247608580115371743474781312135418093024972335597215162866776682174718621355103540300360881237180767762197867576648160595689456451368950739617834111995807694617494164644272189860383499594409775375276453475018164209867228971678138458803067526592962882934847220189006754389964416059256360952911077543280556603102537105080898373411381267872428431964758832372037581935945585845267867723592479766629495729170862229135335531126071980967984367864630457355880290009356289579817730765075540539010693672822253011322466584394932764307949208932870815515191532532967975194347635999587722693891274589616225772977091740721683072865182194639861784161632049694768059048156015743918117414289693494629451889850288404319860198707643120821721784979016712125697340613832717426349965716755033701988303540931029370008786745339520919683863190017563047394600993551804187290340645961563448307904852666575240488556011135756206875512941614248378156563950434907754642106186781174447071569933240224140887531950228063921366357697053315811470549594533325392031362504344663596521579652017106576774122261300799888424634641475383388015706438438798192006186548705811869607496183564716252201931591240340050133884033612620320468260687268235487816087481090465975856892139438596930691232382006989592247036553028328923799163135337622018242707593052279106707100830635635445460972535729683510231795542884936575374284907009203437318577825952685001792986076545972962598878673108888808998101272821702077312429011366788504224837918456231816438064693439451973670034799878723014668742245731933745717390759362594735182243903073970692158222238182765894140038072172967782598873046780949564883626958609013670003414662026133195530466090431448923688995654888275224991578580127454493584888567304443954480318672246464495952387749163384049747386193856843322055822930868099645201563508112330209740418270811127032649405297592635262027522438515859588750935585083865081446111162613019576832965727658397004897283308937546307067427369127461818662545709800504817099699461253051910230860924116199612142183201844976332700548184000321354722051105613395134625657822403001901328740220224891615587467355254112334038916805498174633996456518681616123942873469403940603434024376568133190249035943078320908241374086741292190941257302249999845322307047401616110699822709395828210761044472181837218609468645905480806633039526955590277359361394131972611319890099876029928829850264258698457996611195077198296050190070503947779253856498218699772640843756638257435817242548047390868414312244686507645044552383094446900439652706854334507585701768473493725469064994234086201795602927699369971321216133038312334961732922960613117004455137556428624162295790055054975686401187560643599872425618189588738963102056579074610801547878256549739393741917634816443639036385481885881334426937298234397424685804198585584368907821043441866409954065885301791985463398017600241051144509728299739727331917750701243943265032267094777241483742632901342076876644874779529105763106993347441048079211854608397919668406407908149286869936009942104038991690770686135759144562116427269910433554263992783956791002497501549859080118482164915585405904830285441291053246683305922704491863590498559734483243789136466938073837636983093347188105903716894767329723040666554107593683605508751110100819332742400768281995161972977897671527086202116929528230450429444944104464605718786673771866319525918083712262187486926731670693223824121591592585875099521017303636283478551818939992083612979714275027794057656532010584344917636307018720213692075658901229445512833672770167614856166285659419337265472470481679584514986319887395604761845723364575917212422020121574423058813083589335748438005589206842540079933429794214849421127515653190821589538073125654726515407833017194506906258074152363267211710720412852993161993393754726529002083902809612398411410454823513703585350392111388302225866070186242387387403757509992129328173735666440376329844088322482081536253386564015857311481133642079037303744510853453919280621033300911381169827895368298830126797111794013499673412390643844851448713154703765139044525308626911068548305443092918666288130053839566626206819849350145463069020225398531960578121015101799412486149853290320431202736802666534167717405039353895763316683852119242319451959701713377737225366452258260661583950261757086687050894560625189692104120105180712922912287451442321734902599884909647747751133146075406327857285852872317130009432754433180749665943302484797394163301642853165952852690011839925831952810710221113187808805693407690494239072015119154945335674516419816427219400818212167466252311666480365343347374301419624168648470782426818495959365563939874380525302354036785934962825992188415440151365416954228187914542018821465491931324032904218812792282144090647364715630235185929536438811654035550226401056742302076401168976751624565964987152436277699322514394083333953406072014258088313788994829411393348743910569930994408440304370216297729388079622174226483520265407330400496517589898454418631543955812568096245937856368732433633022648761245270855560093131237574038083739785238448670417648623431670371883538894834844283304975098652643861667384173337149192823763931339999641261226980724380504051034994386850731010912811400020884659585116421619985296828602195131796823322406340879194571139702604118219584051365082902454470913278228524815743458434588106382280230255356914971228880611531537663426733320530234063966156535372009421631182411100032455530622009433510980860192674694587325442571099259050461690269296933132899376822049743809346654782813685607704473420453205641457441851608929764094318862972476452791517771980326677831218784970437851228198172316782364433556947520571147376952196116506259262033880278683726727635078477679201932355919796903303978477214670322814136703850176438058949343064957081686896503788010876049102587542138407756750353253798580641440610822676336165530377901238922269758020856679180749856009246816809376008486619641820010965636748973636364294480020423807444234500787016990175875991166457587108943508639199145365077035472215145300351578900464666521282683639283243867698101648005719806882010662420978647767846525651611876322610462271052375465112141344515776980232211196359981375289279510448778673995038401022704479762527423729569016104076110890103504902020990999425798854172330022437329751846460337532996043272410284967483108755011172642177055631380696620093456133026983917967393179347593341310376782026833282188158831118257566820568445071470452299007828997944399793629266209240252365709350097968721601821542836691938867279519761720409684763068275280414922485594313413537726389490371752468906459725364565145160782397384865891681524345635404698240017552100388148799701451578654310326761450201503233846580010103655768593882677000712048667329497118169741331052624206183158407000441318102150013640233350688360251423002202935073152859886661380646395830341374024421720065737706633144300873008137685895155500100241095361706281506794892201197153172807429354428655553920463325094378281274503391720537059739113054330485210435035235243139431372135083426905486794931522616185185391635701428142946912254817447825218570064508492291762142506332889405924898623170888376710881630811558991032472462778412349351737970568370362539463176769592712205284710084908298055535975817410144391826800190805077335292357287980119078048822983677487117857572752651538745486896159939399990970516018197323078888908192854875965912818442685366526999765115964504108531212945722294952844805542208444751316128050091193174804244715169676347009766028422403184699829675637875418194617829039307759683468756696990522580740262135670442264328194597988835745680953125802777579909122403786872519451528553026820658318673678601813339434060066298304489971185012705031173825379431406064190189167880903809130694577615071024258760531965347634892716790981983987203837876648031819561165369422051208777279283694478969429062453654811730354517999287599656361018680448354494078450885390991917721002795480549344174044610066516159700086699031717775135012990765703978151376581631958167498910778963504760992381936726412196781458564792371673395756578932264214360250955832315506523686347637908958113846019967140587791460231664457209272480441558697863550463336130777022965439777230976356794735314225043437507829869686781813809362885508994929612783418375450375540585606917723643906884695945591885480105290551061688735947961488581564779467693496920171050630331123997663560544903627995579838338644796264291537355532948030955207393794822481960341230687540511812825584087116140138730434873430740756368463683752686142207796128182374283249672455064599602662955343313673476899061028460770286353026656670118566843639808143928069846533842793122281856723696618203731146468373675047521403756252885437944901468119715547532867058209353680126887957398351603281820296606335757879435385354912985476597203069492428649462464920476922737114622367347277077741816055612464058330238587024271708017168627199586846709442861370071828921049190294975050919168567639357269197676635141277136840763710741468686597890214756505029486990004750572204708846064503255907014171697830727476795709097063080522639757604064221016006653494300289700714745382820154901723431278593736501672440382465632699781090646877838884199021931390288212241889959429769480272758459753936280556074005464039122129090640125615894598223778975590558566078422590324152210872710666203889053024799068631097651769706885946246994836884916699798518574880542279941292503851523841085262166295126228517488851678056685363900627854160891264667618630949684584770148469307048041658271476728542109512503670409309609670492803575136586573780176311198408328804824279635036504056842216893267193494503239108721687637405670591575639260321594651447839156631332238784724452931874581143869719124152698606134320379334860622412692230325493155040434705045730070410629786580482086810861442433280720369064556582977556863276046995143331001842391036760569914024459100696496504793937719476559684207153769544207234616843293397774429629533990049939428888889054249883021545796166272296228413893557662982682420096621803837758136491580027193744577796479097870647410768442561801225011481690456621040490703199948883778382734320774663935989762444889810290310647452464712328250446915619864498503797161063773988837466154214581480563192038406851363735077120145493431001210642790100668556912917944869079075605237303092193680269183222863492569762224820022593461601752098676396050175068579156694593208111062884937040679249677976440485131914335244897861604287244905969821389222122535418729799144847107642906293745268940519494411860434024870105037500329204139733855140627644809855021136036278522750858408529960992898892570682391917417515623754671454330003294540385538230102621681368431764563087821230189974509044804937688724597359750375016969637742588238275650277736349278472086909158750781431623308852886150218030573349018542398890670012411191579346867301847173366896633956272357071199407874592654436274740489219115059246249394365912405887686175098287779369051573951342003545623364929549698179685407519428725749710064273684863052847968501377202211713749474763718047748144244459591759236392023594499875724201510468238564098367655984332687076357344289118695106363818207474777497186401743590310885139008358703495294464816026886139467344687325832053562949676071570254916440651328015258857421017891894822188894921713408249421149968422364956366767540797387332924663659247735895915873616908825315445397322806667338247975242688641962691480424522042294784866468160236319442701848444875707454323550772570676409625370278301094911258678502141405052148497793497680575134974492271320811564062320928061086900794595929574353724785360876018505040325909372450544337748865140329122504738687452264153120844212644390070504337800518423459710692641610439404659257686897575717276295298424600366607448332357694567001114182144702334668463808509408468465982825192834789905590419458441913795025606701142555294094130283638671796707099470986001598027521069798277603563123947033891921569646673875042129664030040146170203980409453603328448254177253303076671887570552213351648379395226862604481992564630731278344983365532845447545833634195803318559502943978770575421685347817690008706249473652062029813954362907931200743906837924732890795756568573327900792633970279692353555182379032712415568109912405630916980779948732125637518229631984283719498960878585378998521128108065467970538565559569690347151105741151402385140166777495537378859429171008461306395544477327710840748714881863958894473084669548662750022748168756314330365844566219772365529474022273784067630137453511486526226097891280877061234426497346070785805581154189859001213032152639824344338387301240917401649853216564206231588456370618367336168432785792782741925638225217742487671968444294877032527024949812003777687225235715172938166869438222924203977963345485435321450387600020738840795892186700350964243295007042399005451013498510906457460251692583504906060469310808594183756562084084727676158871277661214823254824732260034572138007029091514481749331252317316233575502295044999455164700352774348155787415261860899322981580773602915029307057094234543187242594282426152095391021809940762526258594387289728317554172989782980182672616629323676511040127917054276851811669993261982729075803563864086706751094488301245102802298002022651693000165253823818141515477033716601145739787241907136658915073398290909241933573571767880576609087031319159705003664885982062667340253117445903551004902847771011931014023419778574648019247956295851607364837992854817208781706738862947400282652969283323005075835776469695682749187389327761179218696891129946664848863599155753796790777638983581694299890894795993987735942424043800842804588511530662952921270060453293137684310730397666826349241010847672806713929856494525271378990979558636561805703406075892152744324409283743730745704718138813685840210011014310444122282409819323524954138889613655000000939375912476632892842361797100701920537120013325544128519612361249586070040665902784971273241336477852682742575752020202892778155876498133021575076742230400436419353386953934822919213562069848604829822229896089691735802369613658333303187188137674940474980803817561736847428787786405562843767194338697849304376435228515867548177675513675876853522081694664325937048542366213726747944560081402427908556938630029968328445920860599478938853190112244111653206993881177837157167852001203972169449740506100482056436115559549461227075560842532776757348299063832308659610386480486769332486864787778517683856992977316278172804899615198614826510923790678873899337701754757730084966049105783190078174401662706259963198707314911995707050687217881129065801862235618549859412373398709183539022576602152308279643696053718321553364108192344640435808470110578885245527553075392495399419100915599063877013684956982694812380985923773336502663327185518359527561394163073042036111046551605933710855865676064866393140965103453971239873359303784707312092967510687296129389297933974132697850609391808572989723747807443193898877123985909928745645296187848350472830555763263961105982157083208152774311595354374707704793521599912256438357058511456747091920120655952852646714785834904495523445247330011127343301230491125563011760732133506774484379349064410356592498651426655694422978729627808806034761700426120180872241659846050767076317982546369474086294932853394144052420664861034095238746646353180468882623590352229517048067440092336847692593855329179528857266022957850982816923910342882464264984895464379274025023004407670575450255798549890823037272691076208178238740060223119743785968175520896544210667187722358693489588480277193942517452842115794627045347283634658832103953512521428907130726285157472870556576848828152841897986562721939135425343090593533580435944381424370797493061808969318126981288787295525828760876971509852108939362634920196374841621692655049261404829823671866436737037996808003624370461419607900068639536875163825025023096640312154320242626040863064380326623805707117986146496601368695317890783425580798534167862399084796871361176492185007334848566425688856290210765325568066438129534137135243869868338048519170970220442862158422523118072734242829285137317899870605536210936481675358855467736441875884886238891833132981455705250151533583980163711035580525107301101540576258730121820417975244886523639469357144715934466082022210016686610327358942280359311305332710663480544201187910508777298633868106622471845716707820825500438313047610528558267523997168478526573473775062608804766639856168052701823414578451528929149234219737144257273564144658364342476938277411523471766458764787754436262502745705514716806196982893302389607401623844546833322073369543796568451517087322061175298545534402366311098494788882838765271632867944958025474160753077162905869633087016053831749493934479614875640968383750097017842075183287900633318328180367477164977949303828547920618010417623594557278412736260089979120779602640603305811373430499593002427413069123326167541920161367745182583229022444620278211316958668361062922351822922481681693960755156113192449643878189970644407950705115215635357035651523498090713269968839609600216588235231983164001651822186128725006268180862850769691323620331990825860864721439097133165923961922729160001761971846597831669470061211831468638686364732761639364326195084640786958064589996470845506787658791161800068053181537293734572113104803038481663655067027682702996106775722078003159564702968005360071498953119597103316684602319510031773641064340396951413276275977088748467312109681082241487025908881043224395586340212148073053343939566963983648472035375081888190181477554521890283456559113587160424259951571690416998150029708135013161382214839697336068025493941380861426468629397465718234236679243266428621234403863116541189569592815316029321790068503922481839453485429367300527754744656814019440662196901025109192367515298812515118723503670557196512330349051768943465571806246637303789852696508753201499605991499366656400742997131584958058477404192005388465082244979828662769443042232998929422934706333329219431141985675539734320867512252300836521481971507925742918974720921965371448331382028764350684419521144242040159765827603164750551236398706662406157769234614694572448670586969511110391275812478755653736296153506837654769370541931532394784844223906349787211483628971197898213005606017007516566795589568913397181785353423154653967928810603445318366372402360113957062003269669568700721053544559002650164225943982482135130024778759358293032487806314796466949173041246634941245529359773410308993089882399266330907975725517890073662344669756804759683958346754330407840526102687720536302340543275174292371406369733039724261234234472066870059135223770675586314121092390016544168471055176708099523421793534363826544231078292383392547325668550737625169382787133001474961171318589929490945677564034512481632288248409075169659484827718743423546694487562945535694520379207854481354554917171323558523316045523924841836916631725022842055083638811457384327778340480025982491895355309261878930570404702206545650074653614051247474755625129627934194357400312821629144821004531221394609657584953887034409010235425286529953966523369204093355221081394203095698639432693083419137191766759396751721510223435646306521114254676822544478559870303899543330858325246303951492307757009895983996529766510687618765359810204213955744435022021031775006114319315247556804707214976041560345632264100851261183938663073706038482426328018953046132749538656897878118203057239488367759513100256838031596638732640713869880724465255869176530558262100711644982751906368305221855820985698627379177949490492061346382899836222534791597985046978493399986064337030483690357003119520725150775730880469924760864824043935681932895939450619254207954605581628944397179967178213059702337335760249312980234619993641703126885985519977563607311582232516088553013488383316676282515534810350247157018085261674948379696338887579366647056304443223643443229978568788416730944766189483698485512601802318125512116844775116409504328118356231074035845267464977437146504071538101777881616564219406065053897901599631069352885555893980059914456822829318320876175354550834229106825728900244827392699982078635543104938566724568971293699312637192771563675393896999709583069188166472294833700948717938846996470502150757164179975671111056826594987765485341151362348862733930177494909215290257710667559141874413577785894126144122267680583963886285055001507146918479389801548797908280700693912201282611444035532581300065384464758257280345920221041601892359414234533480070012239464371475967998357391742001038610021988491504454034623831245717779975569294667867606236359629341959749036617912247347406891125354192548311144616047553398781320897697910742094232147138654493780849957446027006375677892212054874199280671757520491205038454584582026211613128581699277244239438954607457979434675835766201220675032408190206594995026038997757414460396985979471979611557557417175873579663905206601562110108849240377860892164528541003796137610290040300332162555969931820294276395752591142627986562610011313931085750356046793794455163574649233471885502200055349443654459755523697800918990760442004397899958598066194739380217524284545759469556558049129754802190744886449895293665772867308968871294543901003164600185577923403077496827402503947244161630524413254817816059071129045474066803555425502070893691574201081766606807037072312601571516060099080957939371016058049739879635296090241858942420011624252339525822463268207156603789006383837352374432178936628365183130266629750983902184255979257518242403918975680200015165274377858675734832588611602303220196544258532698189419148239697255105509218992774372389234050346867667789921188530265775837186664575411101088464746124147812994722393522571072505105956004309873285532502539408507941214016688367433940657011460447132591882857071468700941567629381681330531944644033003745858039569569376500860751026119055408792959693528112027118468774231508007704967365637439180399471274757432788093691748284278026809791132032193386670920159028352544535695275526358346716621204240004418951846554007144046099660387300677526288422226728081072442635984556744994039353204274261050895947440720493402418389804112402801972445140522927534896882404494475239647218979592408872577504222716756029461928030465630438511869808673586284956636156285884721948866312242761716898139573310314243043975514626804048249845043287811256158696651928805209648409058782953441175132627792083032583123570564691910132903015955965714030706529452511080105424779406193246746561839971502957961017648003314959768983845514581080140683149886061116221193811397048088721220213646293648713037201420190947958222659585592211314910044788935763610734671870120082217664084156890617277715162926663510067374434154316732616284762048393963092060446192411518804924718230786673279962684085718864350323320315039784045483211794263662956546304406435381292396656314436530569015219336058443071109143641717513015204716974719166892986653247012187278672368065442767225803567349901733003944799744593376015743207393588507228171913147862479778681484728717513710637654776749897642381010049710443975165551208976811717419202302415111932890022103376126593630239546907945604768691351988437116556759818898482155055631999290257659374738839671686570003099757670702888020164180839436509238006428019456782962244150506149013855613362801226949287717433873638013113922614273714780839180846826660323308527170188854860566573150326913717765550522902261343711419677639581556614339821787693497954063749771868539517137352011301831932825950307741775528684644361481344923312001311587190239035976311536642405436181106426204730478455093908500434173155149330761427860605011432690968661206448751531647587993065665517408649854370566157736601746297538818960041694733099549999643920446978700804580181026410716472643899076271698916771451809430741657024915235180510662619893475630990024803220232546079555455866265762281336489455780467230329323115445703809012738744359382976197387294000870339849450475209412076443471440012129384293389560449201677977996134214364451918468142155030442553709615139180346989451678751886209252075802720682105331178602334234983633016680224577265774332148546914147930881761089264598808581593368371765029574626715200321976504316226845469223269213389200606446377423750194714214192358300878462833736940817291348840661035662961777643873884841114130081600929998541494884281212444117625444826956030505091344876242595846019556656747999577218937773547252084887598206956641979574868928534417692547256772615829104849853348360370386916158826321904550387469291974226599899568742214867057604036253846829621478815726710256441159976126347103868379771531811037461478777125128201612238866277080229195872209482852961930567146583682004103887899992951208197806063730254327374440336921936904966887673708962937904958976092452157613723071955357683421577494837221876293960603743311443735937800585329787415446544403321304286381000896737671439599998796995872173286628420096731025147576052093075520490537405217981609366287151714004733703183728908240932421780330152678045552111846315850853078612639652399504428204395794785338765117831379672556113381381165551655714127685999857764849679729953286607936770011277376611966282659797417905636125104331421189552774539079999269096678994007799874343876944489871234108616204982523529605097321555942516870094121646653653268623249221586573570381809736090288007273782624197162258066941520031958740258966964035448157448361848544836879799428526119810577548954437812586341658286633790988478083478643539668097546603892167677381150636091738418232123594101176953660714014605647025723942011510665900571675995839501083387884006730444147210014986109354037737550489926235466692424251549101396340208208504851529222809554621543646184289623147673941639909076130833581552395832867846056030348673419104129029227618073243080811176310837583190967332782989794819349743973566246813622673809069307090963503042367051835147911084248015410542558998099323700835427135466512825830004505252845373823343131285715601594311989070004150559192986565868519800130397984086049545023522093641412944458090300722523408672920075030798739968890747033198546119064136633429311590049409746730102054933723400654292324854634531635789788992624864828174814285865831009137974206132677827763008656622731586581482958608241001587293537536184935026945521847549621964423241567689125011513924650279880514068206393814653476328956759694544154090161927021479884466748415684111901495994754361646568359823985833380470579717865867281683050939584711092201633456614788950111382366589160312035586434858307849504197843084434527090183684369964676985214232361374505156098732849821954796048331706301665632401509386237944441805377210788242826330830498353149115176983756623648167191315613902859963530717529931111994895679965515706013792676465222510694682848624022089421700588244531020827970042181982502557413543455427304568947248157842712918406862073301892465316689464825753864196324656773518812388940480413567835885446856794766530994161816969414447666279619904533384598997532955085257907801641193736927011505192790273035084040271171185253712103081739745068125098531220664203003984466593292924610046722875695133972361764463706671528706154392923061275890793705587834755539832659181269032845138007916425149781907176580321748252507532573590321476784347777655919989534660049505318933981403345937282510648689298879943191040210977620296743737297013078814150497833399415266034675279733710379135592817239669437710186571419286651491901327766266931730857226882073896628522806121064565431636974430688938404100873303871931935309776985735436162447263245570279445881021687460783933665300553410576285575131798936908544521064265354158764364678644769213612713919724282594329113923939206505901231986643025234026219556580401859329969202899696226254021471657351958412308483558315877737441250776858956115767371186877459316737031020106503530637032534926929725645587938760768442649773982614773293466905461787903400164222486571870224038310775562818379487253784620245596496154936720649201336676797271344843936453861212586735917074051453705573515969492062648233710276779464584103382876376521326195200239498522057947547514981068090687938229394520805150098734146665732357435457914931707356995851849708858264425265473748234850221495505374494601393690095737429519820701454967396063514099844014731509979422948995653722065749806396839672764118211004802502147622740609537155656595287781127412343118831005165626027990009798239404529142680990773517905423058365417831080943103150621025747773825732605869380464576579902649667213330556287736119354677996374231061428189021945033976203275778787452663798723195622959668240876460659589526419300726642435210721959901818295626999437989429364788316317132230834089992962523288310531986854730189378135456426846421845529445748824140826771700207274403886655074573911762527131578427405681419615465606433977938669670541836123471546076076445126708894535533073724011392710035044976982855903051432469995245061699002298697448177208032841134087792761967581806178462265315251537675395014860054061086203214322488354247889643686717397941752646319910336664069374725667911899661787236462157565617974445791687889282842317113786976719900758071708895230576919319634117857715464111082866328425451909021248385433601615813495792368185648262376746688549709230992969745451718806269599473264717466917909397227074995178676475135565504131389736175696693165286508191690392123917203011984837165588271532708253883995039968443627582430292891515318749691382823799152040768273459078023312602652271696556080113613002740387611798365524213049309590297669107586021413439338101957493954867689956612101374372768599374003759295774168936200283344782183683125255402781946356975025107540944059215593175109942167677412876093725007182712944078292140755842391016993900097411913772287556983975550129889368983370708765978976161452962904153169308542341708640104886196376992672930997118813903665933678308967048079917721324157018185292793622174589214781897334454446781646605269263235746290525107756378725874905426531562647381358489989302124071592275637766169737695537280784772153909543574172540673419443552416436976903048229499853609124632912546372377502936343093778187809555096918964351333940044739336298534994906763955644953927548993952403712451883853609209924441303433247836630078100260247027381142751139699668021041343051955118297270540837361632760029713215903482376308591173062040214755962214127165669970882906476925711215143520869583051611614589764578568714401279874087282456720331634428055436151119414083545346425341421787482395382688154770188238125278073634822803339392381907472375444375186213293396074138910472060267786519385316090840162885561272759756380813875506020314658986448740865397982804556824410078825459002355760337674871331657056587580409446243964573170934901021814539380197562149490496634487517577915405549018235498399057134168441867494152102188669985291539763058921702704038819575624839825872318210171006033489777538879564166979863530650877083721471023181875769332976187050057449860936766386283501449904506435439049806465020388139557923050647362734092057257972443146819769346924388101944538111719996694519454339764439395788378374959934608698094655236310017693386237518195033710390426565784203461795147733385333892132054919093228333626828034062778658357094148891642757248087580100039200287248537558606482257210588267401299720506485734863054821076197581338533143765468562340468289943966741476497990303558803013570381778098364826113548895786932037432568499270531818230825941211788557073459217788824509684603746704135597776679544168744260737611100238988403080345877984097145056321860341652156920171183887077816622092795877924626208356372386921025274529044511344595403853865780138477107648938010291521705527256324113342148795593565697385954800820351286015346310524017185798997872860799260364829500914271691876207057890099376811885582390374845825424790170286956369576909722052503498349718388587451942099779505718144006161021711858340506818528435831831852052847235644022548596614157239423622651899182994335606044130175106445124599250030623203867312243063930857750716572117707829296040786850762924892228386954165555184211102444319563240802335275362315757423407241545535989277088429917265470210363372984667166700755633839535926369820660972408836779549331180683475151799379286776635365094878474805032921706844888048389767311183485076657346673173380475399296126100443928984166774027730924692588237292581905483423039628721422324291764053051625292069938825985234924141134018384788353907137706919917439184106761636549997674913510176705770001542518889577693174564879933811030515522542573989357850398522163037975991539204126079588109353786233920043933550559122943937708260682360002017825089868708077768012402351715913915412534926629513191274520431934954964038442012564337689004215412773228879238032076864640614946524667890123814493072212948648019369257998086215786018188601039633122723295254348729864316920576842704917993247857323241512814242113308453419149067131247401973227792281381249156247037569090308158810750811331600835362824092029344012760907000944437354374394617105957393773978357741864345600314764822813219000650623078086386643941192719589562874949466117831295947666106980791695994820071418144355228534163531048450282338147336906754099076810747542895107601282311172440978639642010652965257744956944861328324298418209158538145862422838409409959365894659176438314511781444919805804307656575159157171319291466574587823882951387852701329302711174629024947329530229413191489217508564175709799087206439435674323687369704861023249847043878755412382556582537675212262464546311435792961058704460416691720870081518645338738694228357572252592446096783872284632580690527625918840592928825730261793375418760098027177386550294005037333752659380062521477657201977885514795609564425568803171516216541423604361206036518706137142634533792516703474510947950684487789454433347503749187996156788888691408221268465404755767872077446890529633883781433623858703106523401940056279765629081864854349616979113167479754161665923424539329475386454806079752996347463694583072361614146965635836638259014904759362844839006782293749010583805204948518621583872761851130837542408697012201710763538238297069368113942750330432613077983051810418581244719702148967117908881361061967618224992539869883011624302613858536233838239671765338668137479180227386605535482193321584584614502309812663470441059022326261921455094214818863881043992328976885247808704104097795268464696870573509678819854088774560895110714599906502953062935175015516358154028864184908472924786882158824559789223947477174974376903890989401296785442805140369348157764816009143088951152677863960382025586670226065826220793125798690123765040021389311075984345238110014500016630054389098463758865479300424744879322547411071660495462763178232320406587945603804661782703416585943014520615488738457347410897454394236049112529761393898612570290132054132575937788650403503364145246992697759801771570733996981160817718208686022828731136876638961394094490417199563184929391148913845317918121551318938664080935540873094007611396890683582717379827212517353918846283973680620174104271066033583494833590078899109138831131640079837384617979580779072337872189577872042068260080669755356138240517603673662240724740773292737081941473259147563216809971181860864252137115604057824534688890334716908176390118719197207377247426809242762174044488211884125173940314605196137198292857901673267993319897480535985269717363341339687608585595478208707713332827483041617537731966516450129769323262273688281032321759347568081992817758225812385527165091938901698826928214399081115798741042272567553457753821613413674565953897348842075009686766152478480469579710498518165753827536618120972719742559497516631753990007333556793506083116778416287761155904869519374216470230737657974523491353451071345254590813339026061590487208578602673498372324896946380604408338709303209302689682601273269223169670661802850425334885745963084306789689377939505452839688110520991135652442619995418146902148036817132946540463527019399356245987987033758750543150899840557617512791576644116551914058015423927350932794480735730325318498598696916537128279342255152899908399964795937994468503397229748256669184449784403007317061498357087062544654990747144753598257953967963893157667081274257771071317671969943450360300539742487870159252376451043971377067991549141753158300399935245610614427873147706065085720774381800901121772203002928886646233344738898050681652419584222130054698056810417403215051508439347250395108736264901802902027042956149699380279633482263999586300407380564851765618553551253885757869436297431153133247786835635978950240924411269098574845261136958977664429350932820356144572885395564713012717728060742664415228009169159473889838066354626436545438464671186157512470706664891251853711045081968604160797158687838521803079616087977509605538107152131768740871927363669028363980074649453959830864987972501418108708383761502983885217168696517720419135133503535937682693115156124785940705046328313469685724216583476035878394261671729690585914455375507644734554071962094860966098894468761797097307623379669199623631341321485730041849369693581801217108115314198610926639796002909657246368416924298321809397054981892599728738502610915657789978600621724325974746755261941138880985359850038355681821870886029117740723666702306957148935893339752218161792124856340938169159438906514958633037144792624603387297995913166898780207941111293484329067013987560503894854722654368560535779506511905849091618224113850381299654275080260572557070748348154252321246098872688699690953346308086521540041605643602012171526818447324053666097246098893428735581681950619005215108914698258596041448890776410366678137558039410266827385636131137407803261075914796469791493548853518896698822489615266597462626829602841995862085660106468198720579599561595764474636784121427765630471892456542278974669056076851966609197116481744864510504575892506611525816202611621451299727508415170188693901198792465058970770566144942858539308229599025501861600798537200316375213769671880031112432674294541394697243070175888758741546207037268438891172068735736652166946794597086864546259309938360668669661571246894607667278340202150800831065154571079904112538634288652240167156691788236822344620652194782955083810277335468565012473932864272945351582705865558713591450462879328501915827284731576545051536483851882552793020283055524286719518375973911501738997821897258161720338998485135501397117481437200921854984731582173070738339476822637771881656741465348093191259108045230250954737828268549316234855320340619825639434430045772341103039847834704369312467628828436307247138742991683684890572503084713336345604379613863179364858935301643174871179235251305417382551711499679978862307815730806747586783428435737194841955826719677035234720923244212163433540924692994521055385343026588107697044918047221792828338249180980683511454772353381728866471803346621790331610446605731992730221581039209024623710577814620805002633752216996806415784483213784329887130249021419649275270524782834703481039503188120202139587302586415443712764554563960225677636707745046083649858547763622278057176474602868974886536683257718553347835065049425233355788528636113077421355106972553038693030733999887949644832747735097490371174305498746356330910022428175519553336583074598092648967263788328757947723552154820231257491415186352682034206826049679407440356772394486318654838652368346515075385852089814422068252386128782004795151231710250041764100917181723863586675513581657978378157634912523793593875116698127003357457968272353530715916768460929868170161700399294930824002590645401045065181620328238702042612084230143893046818047495799335959297055132226726880678400393312463146389981769171350786310198309366869711337328418655241852751083666441891358947899056267466145367213058523070674043421487957945621924863333759376948453973705826489165087737565256407219905724313691501745967806672174862506244258203785762593747519981875866157011472310526474550750190882626527362292074895427350987930687657305544118853804383939554846103839894829777225067620016653842813090714862115022434298499511447560262357307730988227923045697358643093436912633468538391312974778368139731191739184924133006119260852517114991293613821621187224581746780151842495359856691957460099176949278101271011694586049936116331920813092468329588905972957724238340973457618763795942770547280830354051573372353904568139516821651603564190391239722462138935852637454210962072840683494748069537637213434905442034458902450972619388234657711942142764324739951202992095071704041159372318671902828352731089705918594260865260843667572408720546395109975003832612891639060783346405503928073625934729220346867584225777505672736279740242403318955021350187408416025362381920732650482701585837383188779339187630207129215554561331582957389902504085914078012234628033655437487551445298423870782474628146467721718426840405606460041733729479929755449521430083815364783069911426536642792272819130691794831245391803012620706631539624851575360189197868054567136605766281768170997925284181118626521175956855500535539538413911104706320536418809185120458586026189961239470577231933973803176246338758103983309121038653316636719376060922221252705958151683029314978271643052783628817494676924725483620303546617304860482687609922115146450522408265184649283765090453960311066899272722531796096427395290631827008920609387602553665234266661127484039955185523934990340677516125897499658067872153612991742016465106092422696980185254706724130850885069019355559655144007319722723186137641190641265782435971992263645503889526806414091307745822788597863216042249666564371417506678210482557507576708102860047168600194266006990655318284708590182634240821371991476664885518477789702196259356227504346749244805911759992905329279968809970562560578076358921890684888562094459016855782274785044147139911925632752292086653618966037958558576269924843679540053426071408313435283831256602082185087029243898291232574935897711273206343673774863190187716209750884856116779978275316552254852938978341778547126687808003923779522944469527260239575751587302657734048866743819168388112147112661082454058134018335805970867277119780481636017926981040398063419523401199380961301637807102425509362896505193229432554282908820554209248322960918590920275359831444962373339518636110097350787185864274129322538571006489614497995922844977901015336163638520070799827539059602203883710098455824216583465801098232985477039587009050014379548098280776694796074278895586490712974208336120285250527667815044567204474900165315768347317263892927776581131078761447737215655551497114781103559705962039017851949477701044452050282332187631225726414156954310925585323258441177070586362157796369790148992280619507858621890589232652432285396971889077915581568065575966901628509512016422255141175243278494562942046309886931433291530141934609676224095878007809382423970940858827058773032552839234360108528845331152590846424315846717760482535311891114765455730916982540235149506185344828270506130150902823701232998813065984026739992058871412753691252052612483767853002254511490655377747270786681501051860884103586391084676346428642669789174973011677711633549642089973979274181276312265162932008614180600344694019097320627826002998806353368768218097872218938951763675442181623911376370308409369454490235632234874253127876330805906957404924675355826840948016512558074920865074308431339363889481679433119517675014693619060495390261271286595071782429983482638843441250266989632798015476435690501361664009134370692554767478128989328453213584613935895663096455636460603257791020100370215400279888722252080549252152021358014420403832831931428367413424657611158497273587338481805824007907185921649065262549086136089601915207899579163022371699549369951432604426264878034158704756107334789494268851062197462915979484643949359208722284845040848534044890446175217596347571496478233094361049619316180224067365091917720654976302806396189181521987568551546244908834632924653556718637989946420637457625149043512946938343270092133772538236664806297807478935032050725699610160234058174364953338425679471748342229007206723639680519976497203118300480518487074350778544299642494557344660380773014416724905361299323648035745918457779993466251133455817350393728970565709872965210351181168797252212842448575239945713685770103375939963481809934677366816189378527359030850116276674626897673200674513800646935434440929735710573036320920157726560945617102422832839395805145723485084347139559125930947299503547099951243899756302872818094040428908746163080205694559672509281693623867307803530050674284630872568484647631683453605667168213339670981217323261364191627864440573920133351104383368780173803820483454859463036992639594514548282217299146478469587042820819147283976005690438309616816485542271046190638996708597927300631857499044037770818188311676717429053010687103006030262147994325843953452723259884053684933691805228189721929620793720919292245740159934522971265694776152408905354710326120555271532490814050236355039649796045179364465198398510967906904955606774054921956729325814861776083799914920176872712401575382939009511035917918225930403184350948309021252540930379756884932399115799821291540721712004800916878258064123776369257723892543698742456259081000487552292121691853178120060004622396753915406291478308359728602887106007131412288974687668818489302857612537648552095800128241623125917396467926214842603756866597786470390218378217353256679187112034425300527212233702523118062110439182575171448833755035688970308309194447737851374491335420967391919219167975342922751401506631211804594304965178148439883606436733870792921187624074737073184164021091005266131670785933513993985419970051132148952225278011592193284385592350766641762090699122552558425865739496882143961493152166963683788555876908748640943523532918695141584958999999029918951839902053194116135921881731931844409825828289036486803771939177443830016335835275008459753523105189180461696277104023803774811140003622418280027507516562995679078289217754073352976774366570404841528905527237549243768482248816258011288956935939604223959175661938822573944358634660174309014870860144495563965572507208009355616297857711889724811201408788128759601148867772342699907168490651608183801411733954808464945839826403727429495540230190384004588838282574731496678727851803171570054098982344602759822964539647951459687879102582563971171329560197697217384560637536312694366477647642540774464933921190042222981284890676906945198638142353477751653817356749483654650135075322826497179256981786056406514232302114614815387159952533374116926137084082803580343833064551771126669352767200805887570999990469670784779623442542580467804004931577044552124443046109873252415184892550883430150381937046992772641759202540523256367313254915828201517567549926800853082365291094778816685573589967334246712563232988018674673484267412328519564288716480259796269765759276101894028169669345621873277322027549678206508263210133118369209104268158257085345514401040911106524808191283888230103723202424182462082866460531258777755547059139071833903337394061951662710479428716498050537616081556928209793003754703250070431644535926191270879112661263914117733373769979738604912644512050987024269439405361943735709121204323904950243566475657608279476325672482227039402237616988102044725244820827419382565167239809512646157389507209681619486554183866613772440210024956173555721774666950060681539331794029490511505870185953644295137776440016993207719031807591074004838999127543841531738339636680787813203411187133563467118747061464161792860671248767494019003072790309445383051178035758258574045355102036302334546299695256996503783013773365287987964500312360600906175943713172522106188902588704797384538924564252584006095341329734338140052972819855905827090656392550418105940793985320094261511043364632129331617024885135376033044578987727391536860109512731224172560575977225395152675451236585948283478864430227763948758861349911171339632266731397014473291616775534498195975908270085617198688892350982918242993222140736238933158595913626469080403853326587288424038264021242093548966593930408449097990635471335404022437089330448747759039677962367961851406605470877190250685475664067703844853555859279940286759673770544100502932825505192302819010708191929592453050926508061806642736318536757683519104561056895901896197750839811913649010793252424167390217409738310716366393438671427462262287730885351088576549823477531689489430832452220051773227252909530329768854595002501330538379528161650748887053643460965565531330983276754606901382101239544044003981758218642161454696698962207482582771515538535549787792999040695227205245337019403475208577199234394517516261050636622365874060666171100652794740340627889799945692392751054229924440444187369615941465746795881618620290453303143996134863863876915793901727791808642301092622922854131140746730554333965453103953322420023242290929460287746154787235851259781603434626233288951657268287619954104170114390461867786661960821512351590085863424284279988284347612836966624867954028578696333891713688740405346852964818395852901645222774716528137904872351966745215357009689544911715827810082231634761973285895464319492291795153103276195804278105981714193255573492887882817261841404991493929530104022889192991087764759795991912224171781317595635143317978045991521086515777477385403097931596834462726224257932726862884647754847359564774134153176970437294090157323312072814511325679177645460586229046931913592761040189515835501699444536418829535675259098672193630775593098879969891271082576524082620428792087465324733527740019847826220354095921899511484688923144744882051463344551790886691185503779076809738033163049317926339128888818758829420289383695996189245057512437244591666288814689961088491299574983076810030786679879712537220336692156770658151216904385613947832089440736486567785214674866082938283551960015539801558059562914723576143915116482545676371827420182405461405753843443327599175255936273175053085312953959192409525729148359977273281987073558032420133278508989464715639115676237330772254021807860078134388846111983567292804487007423401935932479814132943221273297845341245026852114648658618481036765080994589732378015942829794367656095971791514977540757686375643632916800661899366159965322561230111221113064602888151029471864905992460881388529107622632566261335784418760300559267116376516706183536584104571291888478933264051440006080847542389201046315022709227203769158413444960567502543143756465720077647748208759973456829598326480935997029154189541938008044879678073073066512181703073938064109483958562948803885122400630674650874292948882788504684252297472319567821203541912110759508100317881688219944272066289581139591271497094356146031512440856876882308330825975183460245839674217730466087282411084301204964936798149813922541837011001358791379748355220628492530777669761001720496818838768965470651385632973655410599003545164946898483406019798503019581636483104526453112991310191076258117745875685275822256291447713395175568318177612186577124936802273609907725128030464226906266916298214382278668727233289893418493862382610811267588524627574633836968348158041820701722443514922676164152555717692105454538616431614624433973918577809739051840422526940561841886651760328397740099593886172978719924289474060117280512065904947506215052530266128087498060927239281328188630171531248968558324690145504652549336276517756599961482854611941392084072786808706033025571333270589121701933649289487065291685941662559587146955495900744658106712292807299927960923577915340789872995770178177987758673838379045705564907740917845505184062788627719680424797015746759754314807562935199091532653216409622719041746738209848797386796877913468788031537052277858830865926745710285131378462111594575729334306029447877511108747875373352223132195798568098673240698717714114495927815953998343311833011028370781083067134237023595774336993696090175202615184745414413334842112753202662683900963869754564386397548525171586685875339144098048937240356651159980347742962176332746229606689401006997903259558789759705272030472136866148382541867219767268980841334133363534838380129372465858101013637106297843331210662718446800013972583784388393206546434567400439079663859020251913263626540701709684692405574852899263262005402341673822397436757433366649108240716126598920105224807885881211524116629424539499797305652326252586785508207286326715528548310976442185254642478435860387639169786427152706170794697794051603784414201685936659034489975370563828812270496036964402680506160378979593060387478505977108803474430839646783942431193700095929540207049684539686643223203054165977242824366672230450480516137391488143559734560711783248411054626775516585395073550185406604899171134718388334505389701504256154818861270999630048932248721632256332365626566963476677925260743123482449502712486781946673498510946041465489898599416624187423549440986917758304518956601035264532069204428864990243158536343431106316151880728539505492624964398036214968283729105553440323660594277656472943027322800120274287898998390469044623225512348381797272340398485851971712001182136464726737386976101747666249137780729551589867043690612983057986156932438079032584354886411434556052079474937798289175651060816255286536230347193301371774116002908153813596541469666436251233189818779756137918886188073755969436292897149473131408558575573976316210425818135363994648858111031804741512764557745808145329868752264154419123068437614204103105198569305624391788439838265480383404186299640412968624862660114259338996650572976988973982388988100638390617671599960579287234482777793571923908419686728792155769755575638829459169195564450689108465282917284800177962389081013795595130261772352587889112012596432605883758600274175722628945087286973043653257010749749483492186971257578290004865447310011609801392482952131837282409680158517652362458408005124274905378070098249212460067947202153113421559091910656909940967384305663110548481990407828442571029489383742529247445533480903124768032943595474237386680789934326652200054637875176503513761096853333609026060579938264957523240035499021742942576103093863920876566692002683860607758125848662872674403384805614167041478625704854157469767282227611069059512782493834361466053052892844209419117178170268540020494279204907376317349031026199372298418460258789767657738954087259303090581926489495960963365679377371010517681023699241175788126344691289562586974890684935593073841314627169102063879692448223444859725368182279776850867170153114384576300946541840118980390971763472622406783782513480619602647821689831038651752643572461555011438817673471800414095378406809142017316896275041979160031478167917042860583926465513629662831714833824554742935365872695319840729113916799207744948583816180026541639824658521913402885713245277710769540882819130454967052378416616086510694183976686444371245248072467677760028216201887592438565726145024046436713504236678200979412102891619148753772808871974392098032291017914466255087671848206192841274253100191438787689911426506897337668030119825628481207425588903084953674795886697044135871661393059486822713730098458482266849127723326015458702113527256173384747379551865407940499543538473286639039250595386034794421437309427022154576273157873696385374174212555436098207965633148121701064718633623375597329003693035101629958000632781779359638487844445684700408604775136201620868092348222840962798568178805070487228594102817911087095707266543475332003151859789707947438520571923019761402999345905278011992241501122553536475449217921264288150182155709739653650040492627994209325506842771996412217319232665547373147642894561209348603383211224093031307566996904811383335464518802928596956338991242709620849232707538351566226881269792672366183193282565460849801762273325007847711794891830162918577527720920745805615161841623256813373072226257400821154500452807942482696050054055332949059204144726142549124025367749551791631769279599601804588850407931615938393346768922034177392777124120385564235858945933076750158441316736373514782122910369188583053751864321134092805606375927850121874760223890610049604814939417682056158917621450952980798637117587861560088140920029620025399270291856174024082442634757357358675882908338151179643426697533087934348451796003216245051851177350053816307013196762035957230100639475401948252898079668070611630437186155573275477652396072571689991199470446437533160786501914202356709834441001437531964019977791505621314167300335645733868305942029317953878283059142420668837896238610878915439696829877358378356562332139020818649272090027794392674582289476890358549996038522801309897256210496860406966879642657274662158788223562586570335808941034384185037886239641753882648271224484714904218149248985396646691909579090414008968248867334462405980458956502419506261335082877482261153679058143457335873519988468007271557564003875279074357483655731328019962766467793154570795219392992614464626465665292757456265955488819948833237724316014367511249875448303978811702860957068088145110171212930545582625900543724119681396222064514342673026399289937866424186559953652392194025759426375867158895276437559086721542697427501551155909411897024191252494194183537215384773661058187233825531680545289218638214694389473088075291285195737276129579049654542469919745835678557238909880656067666986138165347810262436164907631832261989032978604815085372962170309437153760249444004704034388207987007278803672888352285166485117767960647843475416646272408312221851918413935528057818066296444927827953421095718425822202607427629425817491710374883577207827699182003510763475968085438181231120847538618600054115480718328460274986990882765819721226261469306206835257838254037948239317083101288221815645474155340564276354649173930178734787412925651032355303191098569829834831773660013723308088187015551568687464922712849732600723488641738649138530042689288228191296342133519044005879843664287132943900894445829355067550027227442192935278233587925481800688116295476408711937358185333952839126081833598318920223412614389466023498381456606105257747970097018159568083638022437540680625809101227994640039868872713053827155132415633054447614347310831247046258752739032494703692047638744531890751960589604677540404827905306218875147246989925955101410211164932090410322754577299299164066536124397740599301411533544790308533452593290039777186065690478679950517831081586597852803644169054293615915110543942199489904372430074246317172103898656267563169676287272584982268809200371104031382219550425477308489100775947650060732236974243266916576141205574708860452928191643056549649792615128634997123909567362791609855516616505715950632191335773027399818132571737124162763921057434153912544286252060127888794848070953930300656086908896254654581889114783957693200123170271293189109182188774398786461783830241465269039433714845957616180021723257143182641635493554244655503349589239537481838930348379294440408859663858442610622353868288093397824331103720359924536639623755579568302485115796691879440624620505648132999939548583001879605503703514603763363366869570978828017016922318744032025829956277996989321453464653935706919963429203521813277503262440905480725027723808523110174561531883318378934193510334643937032638743980545087761304106633908043334965405340595124754408278057870317643156790324737048550329273999213733031481789031252709144413513277346452431564362446187347063373306855603448529027923519405660872358109259615921877207144481329810721472638676537451718688236163724775596013825442919954210585320443570129280491871115692701163184944457482771734830063457499699100803543450889606811548640593021254767729382797181783471386580701314451708044489862866636583642268535890207075076770270360626978686519705855523451233994237846671858955297143173233511290896818294590422591906917635973419047177036410811313880694180410112737076777395436875241793862411470994430729205513139026002666504455045959587538708512558755660800162442302390331041369254046525483064032261336324911468358816525025344853509632843286182073005333080793926755258224977804949272535125272364558394890985135980592522474076182422740540125618376351716843087601810888142037741794576679503435864937415024427184575357967087190682052517213324076290283935665743327170403007298233118085765535500097918083578317802024353025369879301034414960630188773080413071780476236423003700440477471324329019439192254969406019351092260880865639315957037247252507022881801643689164782159632961089692062216535169655094321358517172576972528256092161599812205562512076990143123998061205690427386165679364604577877415250900585884408532623946961104288826969086593377777372316357749597266878874618118653901797475219656361364143244617711867465984855350841820676660686031854173141519302197820052768242736735517559224962100936732246754806972593915278699322113674918404527437881506444800937568081383124416452524519281563475752991777450713379866733830505431301624255426818208236543503667686060013957724551520956107962196265724123553377837718973500718733308465058468500845690270516456785651702704066914017390849832497626894449470869910604784302066721609365167941785001963679251565635557278601667600191805271292541378592851809574558001785944661292011816842919698501917599317856762536766731078600341739815002568945351683089107647918293246142777527170287179650305200035623478378635535076452431849505168025901526959934424793309057320545298966257901072438717509076567785097167656060770059233512344458628346363797059408698064160238997011468129481298126144321264901763358511498518384224727943582950305433758372439952719755513532891521267800487664219197558756109811976473742450441504778467146380323974617590557437185471189937161531699265389257782168971678795727219863443211924683562611336808448912371941149734041187501779131655517993735863623939705026809504535794588160187429092440833229247384932296452235142482310208154670173905963725983361243277743163865402229513939049025936447682210494939167026645650772981424267210341951272931916426656360007409263876578845186184939187408435641963359550467047230733533636694852416704904057050714132288739237354572081958065062634805554415394067875447140596125468266446078199278489799189426126290490251947404086011790150518668152110978050684635730659397367126818540522197815162175535993292044645066475584933010433077345865118543261904108511214435755741375553762466545519360579429417969927345746560876936641820618367053817782731171870999394454824298570387373762379142703934925264757350081657210030540375050768859490446772420675022516132545151836456654672265821805569813291938304096931128607549011195106412296165130639555352757401024488478386269883066464895337019541885870929976959520911425279880400624783539961095673578680170645852816332324201577410603735905865313997856939421948566508892977544483941251670719513401376927479622446308805981048629484723414220297556024838182526759118584716523498190323528326352950392380574621806120299886719238820125048525569039205760094794559092591738425013843773263493359933695616595092040199967654631687323729420783984735973319844858182388764140829588477178916959774590458941182669923535078610377625836006692286144174387490383468969040427481309649327984988514765741403193524364758155843784515553544283986838304793285690270165666893892674678319623650083592378666311250728833647541027564699388355454366306936844673099492059952777313429668959451274556640964729595851561211422143412273138214506986791606021828107186748548554634981420067013812619416349166901388816724224933390961250300784154572963832610581843770348335412283798668454609759313842132150144056652091058820126468495201423890523539688044400043562719918876423677520987590053435929822875929824986800335129464185026183344408270569643296981154022691066892187286647954712753350863603262598941527903747357150133800459552164135554228266214868559710759171285219034472891025814698793762539601394005297945425404249557113861117367501943456819726068765625115954361892607122387426600683991307832504426796848654473968972589623878204597788288768549168688939474089839291904950509736045670068199921931023237443971467110084338166286447177612454201711765044187050350991478183174331327736821967054671976273371722994795865933917909302128901120794561308390688616755789096425183579863022064467762817017516229802224059662271533227451895660989069789691684820735015485780993705222632104893821580308131302358286503039004420907835420380361278296766768925823396512919155082718015792275931161319746529642167406432745541802975259473482493301963207433554803403358579471974130702662395028313652342566875376624186541783828729880371780469684650416996963367286497294405181077644980347032244998301019517899011127514178960955147802549024189920689884106432408634697344906220391348337669982874198339511246237430409555964177405531241599084107236061020113318099610769957693426146318421194281821805373154639230279205608902975412629686459338661727859098309879372395823700047493405399159551361792571419698020133623148479669380931543897769746371616731142603676414371471344239766562039538294278840683083209950904009215346688306084503445065154950303750264754009979855251795934448710343444143798388104117981382533032693337757841130589644372398684936768730648492321932503778502292371349644967759520781144715874987599496695127191013422548961211251976322199680563484098133230400890182865645696640748106928488095473098082344506662744129220331485359588692319855606673831315925116073571113469116645108645465395621146563869905781192508551790027786750511830662740641191323835409540879645041396795223810634187322990629295781670561349198633677859480960078240837833835777067534998278172735868938359643179464248038626243366258184588688501597504438287739258076151123563363035466244869793711869750436080761102210027026000486851000832935850141510451532767751083144530099062166621902848899157733854235409693711499757459364911942488656151400120894004192855967240224764631776814177128887823418728024995392479598744822447901265780865630891896235101593988196935723320686402143881830770773480104228032898898741852803506704853504934284770425157484426596688276413392358323228642936957663525013329466169586848097558565093420219593508728550217684293731434860021434678185939302294459898016839727839657032033996951636258152388206070306867446804546349230554296490391730783724823741468186267805336167598492219513656014385383879438053197269068654179012537101129710550392922491348858143308747019799256302290738413972541552310818350111806265787031005574607084553065779560515858482017603015136986280919826761447164827075522100709030322024509131535873048896213330994451125172873880735091549746378364419273311663001245702853095081493635234138208175417164227741943819841975151692257649464060267343033075022455542545249321180354397411415639061887043161816783112915277338163836007564591210500590899512318377977604021655877944267773706912238536629142479984760980164060952482989669283755066399329843716417494834291215580461293134324822805538200347590684341612654932995022523492334548833630894466212694007685585182868680357437497014031220704495269397894965163022314171265595107319752934207765658183118765554756120457727769929863845427505974847165125907046007332581237704302507837783636697041000738471166479196738023914127744377682155316489997868268708370118524573801148521155799291348845704803981521058825470009860943757122255033654766642243729318372670052295121491065368407165158564681505529583135040811719118529096346741226153813738154834786190550170017906392738320580118720203976954266728545628532604682618502087798060505626665513249057131833419345759777286304728279728588404077620710471647682526610229493771300357865293711948534474075989195553873211273809868199905107517241502701155373153876807137350880544992640770578964235175149720364373806677137213996996335449449491933060504122199687633340302119447718387275014554623791196395491919611376450667424168522175055312929815001027933381565300067433711768380296870468003532462774675528877224487919219763024172059582700583013876508006012760044959804563096546101811723277380765090588656373202324196342122682571068198296215620654277735259846989613162937408195835500282899431403199871719013955229953212258131454020194286222048366701430045965342062419272865442145716503069907586704862200546863966293866195436632421235292314142221421669261944468692373704248950562745001753482791997401232641553988562866512822550546468510965186685829744558559328386165735763837947427434604355096316774661569814593591088924728841000094170702024540439033747484616157723548281154323943409382780545563970574932489607056697961455364504119160262535980936553233536125336911670690497880273522014646371983890807355368036215412026687535516033249878038504430848206185839130955220280730761012681839760754969157945568696040775681065885520045366336501150108342723962812669787296327078890967972531257557620006065399931896938492921937644542220878741781832595301717923779807285586740997429933082584488070568539562963654998047822409065949950033095114598046315825295515090362913145212583432854272769011476265478953374256763999968882650308338263145336384359104932234938228216774589786842701108384475562434435871851038711023463883623105304077600674471527634985175775065198945495288844187277996930996176154011108572495356804762187256688551795345105988400878704828165947414129057444924652579181313530535109979880241701082733985911324563173721479270683485730978482553888541338344406951657365491912016287138383667165443550571262594469216298435644930027155635689475016959382408182974435152755031632037654725960699776968681281034186807388443261039739354578735446003027951824262045407122741056681420112494525381094385660027017892737906430072552075005655371469221816861179439520547495114507160664940540052551766507649685862947106596314230571551362005414983942043457284762445852045008460661279507118407742462859328006059529190052532435069853287872451712351502399122929783190994887170939639834575162898413376561826465693376203850379610011966742829880376262565060301372521592493704335240001930920426339872210668059256069272873031371582983983378402697534942009126303003393633046277100639784348985096624421579932351498217958139093165113058717154630957048141900330321647779658169586044844528774881426453273734258388975532201906339383127830778925064526034877198484954476807636860901863203468161631502885827582195306815484828261040712692731753589957313333061472371844997896315014000496234336115256672057045351526693954476427151493493212020351777376963792009618500387243758063024326651138952104544915004604074377596556245787459407587895554245873656514737042461847617051638946520248804765291088715842455732093771882491203574355961553530562892961790329513303307139835406715980870902021894891427879796249607603234733678300626343474953220812487984977947652711636021765720904185468145868392443389181348759577470209480359948589564669875519413737739542891050451268528108270752426876288158736536746739532346588661152013972264970204695619087168331747834661468003840545028687529499095267672142479611192698642750475571963079013094106438030070895816141219424356088443380491112616848454730216456209437282895386636199248423566828102599470641696917470869748352410040020958320328399815279162408098763967699418398001285700738908514195567072660499495115628318615322054297232355408794478163636606527058168639698121254133455940406952799752098002263967707662188754586117073594446511105519822258950400769668510430841655314391703000356198949478118580685176173210176485927892781680374191339900478247164510604122526402866871245261642765198847263520915672941219440111879700437035493222889275457578935680051656847582715266303302974029895159117356436634965554815457382694553682074843652983527851888162748490973414730527756505018803178971635436861487588277945302328901708949308609472618982640543688440305569281019302545939851351347748181712245150173427674891085125254792886338858559011675786582283548171102564236960476863525389912313346658697179498391703851248100574888200262507425730882233796260032105294621526492515875426629106389459947455103589492300910258481593018895495076074333670904177905166882002397829251006381322996453037260648397996861408310996838230941588593035281685499986011003269916199115872930362753778009268176996009543044297296192191374421316905409879505010947412086429183400231003700315852923705026368976363062229966090801865803467280302368239234875209173120057424571500533447443958484341204278137915665121647606405869270608705982427783574057410752735711896533926546479480235657615099901250091623462140632098832242523726879369507815604475470765134280373051008025467114048867560734621153129545116958810356978047785320533635850341055111366177996761576013838595955878096999284469947091253217459807127343323774918761549425598856992381283777142402819213605422190950994270312656614623279945931407509479560102315491483754046284281066468283867726726237760715854590528901966212430086655584791039157587836930940509387159350587983344904650182782935963808857124738229470160183502151595315918018151833660858284931059176981793537402016141220129948392019455046638149308013676817225954309328749667524285830294819103741011776910126853583430534667094435879848509151121316266993575131078985939619436173163550724915958140158565685377421226783799191090209549871185014345582751435246755773409892211109730194640444057032823310150868353908147228745612732181702652048937718173944779410914872427611793055984613049772637089309671728598925863905528901396651488958390657445430547471297335748105328397691983721867472120022829429267569356892809271689060818221429609004504106354310200939823431237980643373867474627223908778066059036072257064494174349983007311785661399135048183209595389153601822692407084844011080542774655429038147270176592029536696556100456738825299872417061718026089325971786464211916550232074592168198266874024746287187522578742216665437109168374400194742731380990742569121615589117012043936990140373687488572406514595926580115952376735776091236069292259598087530021349756983094928218268864270048152826639474898194460671971109297720042844191472659143014400614501290233358878498648086849938505554746314483491609089709697441659013452198892732757285063115134586525649061875691366255393936163716088298595203823422890148103711944458132814316377979381460365255194114646207871229679288549694328346838898062434003925407989728197200394719120934923322998572770557333164759624642907151945736116625562742005412328598476767437954171334932647967963251385847584036392234324128080915827042257680823414100373644669935958745114735308265453211172125603787552575306761348460183036133048810251734709228997896346769388954682132408850032407869366605898893953864390561698244162032273167410421746029937863266253664493614081962997086346198808594822476955776273683992808431378197668594889557933597504262580746514146474014798101520457644333500453589502052646992963539582501793376771357309264283259845005222018639185531754734717507493039812116025331120390684279756613236919617403817505688467970663225812092914069783921282415417427128301348896009841517743549202661188080112662369511619378706884733104319094307217248639476708572382316469764904943611012809147932192744218508036686061457026309708029797941092745798737738203944180352649904456147917349778255212839078491093909792901459594881862229033162596894087309807515691388978911719928382967853501970443377807578784022127335440504183078798842021708208297314688515456389385485668480425551659785069812195648032055269160572266479469590216290096536171626932153257934357674571593037344870070710362639674020790819268245769790098904438189688207078030409762378073441875952818208005122016722189281085107349339860786389485914903527257281118178875631752838558653280347031258094023223441401948604102382249323977343011988126200574126811736956755487343364055402871779646622499474835150566336081278577558305446364193883432710295129980967068307695600869807068301825814970222574695062237566463277025551533523313315331658181969413140352974927007597360963267118249945010366578533562085477832203378785362858964374298661737501375850867598944879759004429540994123092443297099203090362579408191492802583375088457877804813143262525969619219877323310499704621686608122346724757084165089611049301936411941841429735429109562372339821941151671744883654276898551057099751194488402700805943292948532871312065402798643503591742105787166890294739954743041525241758408518759200995070897961358009808120099722387336642798221995395034000560960659652809581791190606741564457655533318763252182541314193862634712602379626466881015778507021567361959482094673031470965994487055033711264504894809393780311870253064022239133811131381375669134938465030765394409476773387698519164174965116267467483866082565812757310545959494793346528007953279335324284309239559468503326674533170352079228581207363870983164015858148847906764369588474887751052438654485084459865999017511957944160678759991520046117218872482066035307253623271680412439906764449816518033524133389721618411325164617862618298054939906911578666542222636525113895732023048186213568611602468180239691849394051756742896172087483880765702068525228560002381558988837570796363520754532413525829630482399438044383382060719977529630148604210598920547800088186109129593593704299019643953175196191648625080140897702834855211351940598988271344626913194934298211407348095481639981656425818654666350351439805553708076540424511850575718388781771621732141058612187644972047413712049144521291657715908300490573393896667448938339733603751341009519285826850759595584224213648124758118451866161059288560520702767271001313322817059168490633375376552821914297665279403543232046267556347836422696443146948699172253834548642726409036362509820479160555267489237426913064995330522351833244825504862216173662407113901975830665182067892350214547766229476960300661561567381738053834067641292326001330460187454651661777222888824007291779112622867339889494993815954874619818235676272704387426003596294397046485453324596610914417050125735058403674218615738570548496660179547998629669060216198457538046025436214739682893191276234565519482702383569095462546552466762979463543567322713935881438377773309201138518106498587011407837560360746861486121082392281837033140177251095740733690624237187130998857257638449159206527798945867607242807533603314967797321464187061291168721808236782132285145705908902882018564560445207451816220216994418094101158354932501866753038662036622101917530948252889588907159256760723075589979116843493828286291611978573863962227151289782001546826274964085860560418664696919201241438550864886325800854385142858500826727089544146447170334507226008893639584646655192363600345061394548746303543420617975583175793749010333426178158759568805663176431444159407982656621935622334833010352769527778573739247490493287214880799033917602789004431540505780381293652625139248590754610845346442786281006467280432645872875629922280878250210190180581127177742619945065862684425567026323306448584808206273704784893930289030529704115690011577274073053584948859452891183454236785919727393640544779123271273533528222268031744650761320925119140427127015849023465482961449280761394517726388141768078973505618928624270196003218786416467222312122614218904750576560712337446437616446059510735725965315597428173686231056458787148626723255882703015893994636729094998563649706153213679164983951970958073590386183352275292667146952627043754739642670468130591718253152625620017092828493124092234582652411231167507341321149174628704170736966671778859239569711876815861164918624053628117908525511541331377955315572194718804202600155498237611563394675307459169165797583624946218901989178832759547115430986117999614236110070983938891028744421343907578572746955909657030873892726830755275452612592950495570308417563271419570806978672769085989033172794967007844274080952610466422086424595767833460768994003435532676821661035247381348826591083910171297344818758707059322978667444376317232184750097447093962404218496035403237108639883498977235558180151102355362726815909300919408221861632008578698095308546369578890242282986620659952437181254294937668483374820579430458663902988932836331576458142339473634165944085719891956838802255296267516718676954973059964166810069927314159958129752901984373275207596451466133145004277053773603847469140840104761559704952880458527018797008713997565342264499078900187195745218755952727676569000967332636121736489693437945467011741254317033952220698995029562897716406603162902065267502424047067111097342032605518592426368152397175586342536713731763931428007814142822313244597571085390548696196634514808497742627376071939478889131475139218038902462992989807395250236565552266400432306018252439804121053026256037562032961313902421686508307617525599556995960605868430177304214965049347543815065280344150078089853718661850563747449309192552113105912500552106027076264564661952861908764307290374753365713998460680769644775364955280051590945770138463111224874823948571132246083580781047364668977551400204144212695522506467258467202472280861654386058670671078456177421169593412549136257558817703118096944929699801526202567377241902655415806167596468737412313171881727118731351651669642191755793094566290623382808537282815471167100628255399823202919688862371665432819097781166047685055802595657496806333250029827692181228524327713959222331475991653704782010083880126802811587735426899486438111338208600494290091474059245683365685838204827301564993990483207704789753320424581591642430668872028377822721494727561780966625253864839019202461177136145404243837571711040956429971635801309020436562619122172795502351814693474983032202226841830667137289118656593077222311193459283477581632335164081561853956167476491564494884589137679922759996079358380864947937940423953601418898693766681024485434208109798845165975125165192127915989117187826649953206853503922759724255092796147332763711963006830781693854563244688658306865734719105955694091969443308514878797237179510780069701715555269029849947720388717619384267840354769659963048123408748391357332453758737390570404208970849264906676087472588717437156249150580583712627578026839832364060970509929656364791366328193438468731947368036273885789998093826212585738786564332486454521888323644222231528410982195982927213220681671985508274313227171589979026245945257508019142762463666194318638685430201996414832210025656574662883804652621269915052312794937024453282774832771686627478493500428597353888866825957969548553356300555692343051911568553237853446802781759421903965307295923183794696732607203714882882057013220326808663805495086865723880186620420048104139084261402755956157137600355366155947325844096275209561967413520642477151248298522622117939451096467375373750942734980765940661390672285495924005542322005024546063942743446955249321784321522621755760813187991496582191840417528416402977391612577232267994036365694467510920863768846668488958281492562466704593010404916094249099285324721613532191645141617512335886212397145546245660737323605556156346233090706315475169390040840906360260540447474978083693586534248675089326548824700601508358474134237924856166054739607744537460824119993076040360664342936789439762995074001355616227472906048844608429449328822855079487173027993849609561746104222183943365979733595560187036486300887394208132158254133365074805344295032859699707846326768516358895929354606452200550255830810998814894517615136775188031353266154610578765835300725788329687545984588098390344111694554055489446688477472637433613019144236530952857473914983351689718246270503499208729750291829750169085084924574520510354913975696253103378232949429306407364858444085777106772111335282936568200221047812547665356360059339091832063260521492850532903212154832661114794653687906791408195457006956605374644018640219807592036404410970035398730907148688699378246269694738568027831370893484387172753742591640935173857660386518048462562110193640080428817984380291373725157515105953419295055019684667560381202988008197172411336651389371528403187449589618599187058532537764410902179486910648235814553927578764399878203336539580831786123048957768794539240020462098319125647970757027921622792256153383856133014123377872319695963780978841561360599411137569079417604681139369073873413878846309917422495690842817403916348468703332872286449128654405816500440296217336417654738971695715642955243730584761292018650747416741147251773744562832980008645566197013871210968011119260110890255251431548513152062235043109161905564578666618406933104539526588894149045949658120392769627358991213565007514145073606419016012354899518843281678271337979977834146161981169721644632699473082631185303235475413828033733149593300881940840309165234166120111473133898724443703748919482279607387901296871887143932813181920481480751244240407355806025082616311494413830829103965819320994324451396520544902850192345572681210197731971337211263671928377785767675524690891970682272781167214326087492548074471334411914243034768213560199517998269965043442292750501772214703114546013712795120120310320394801598279867389538639820907079438100676232828246165065816263091169390574945330203014925385878292916086698739120815590050561019154643204935321012968421569913357596857358557071210957702893041755661519096590748434242897244043385441016832935379899963706133238006003645299181802974235926586518541916419075279747783985167295156231698209065600679518463682592392030681662851534570935368343424202017308429030234203641219790794540109575041979791839426081225620799202104964586214107586491048682753285453467088017260732223733194562219903057682887798803955629982993452603061521136260259381762014173375947735663868279630153250216914675846793085172046822311267179930691808817170809637792807157325227152416077128801890575600250817635477193916855716164213749490349793365165301827369307601236042250567333429894860910547520839727779842584155286131254850410430441829647319894414424269408106479688805657358494438919558652813265886833496302483997178187545541789863592030011222502758912694445550151444817942468626675635356996962134956382485714507017447518774912776757411633310441898041721138097549447039365849125543752275713769993800200105498059968856559575660315869371796093856825144099107770066839167115019085662000691854068374499374966284105279324731942896937835218179975495502724798518718343431742789287233982978235224296576695326221827891734892455877203058734709811050203442725719616663998011010613128273568306493703930473864912614291525473413872283448281806109102755737436264711789801871069569202080932470750919518362129711174748435004117411595643909544273333486386470498785515350416724197955916596971356059331411157400530914369884119986908726638574426759947071705557570244951923716730855803135875453603457674007256937996154263437150276309156752296526639721531355356650086694111793119645045402024099497021702832776147920160562831335972667609801677065197960988685717176891809761032507086152086081742221071104225191121551685329367093548622006983848255069195007236606304242039689807163590478662171588016283942656315117290052435547649975500117849160750626434213862653804481643366473472220132315332992235905713876472200697154541480513522042717888603791602498375741118278552891887350999903977626396211742985850564017703474062639543025427915855046432167238577331371374557286191771708603241116702444232629607093190674803826013462881770196222892637788142861656990829152392740623819186857776484262284109406458998916320041978435961909207613709029008976921764498609306059021501321716307868770039027928555650062809947140016175619152758247710550814858084351767876265503204729968405329574187639618254395724455222362579220338128034322263649787527083601284148006096770190992062660906403479102622009640834832907288220990656166194674634311576354179481518422442877831935936014517569590900205895273694216551167402129159611489917882571850689772267628094853667828196094133770560910902810034134221415740750522992281046999206501807018445432691118381188283735230329392042278841846435451453355882073033635807286471915252000296172317232210663444353478642954724416837873192676169559583260604685104528142598742228537364440408806610070782884457981391479593194797935014168897131708341359472007814922158894909272604201434614316856910267730765381056374938156076201769465950184268137735828962206121837742323933901230804691721455451075052886731835665967222512589346847068627451445062245442529450105287859757377601280346983047115059472186492451384018537665073982463959044115516669826373804086055602579153602085861052792099692960798522860133303452184173499960597565878075349878082424512322094159672098843095401104887908793715157926578923033681695983088582882620657701027920934234741753534406650284607435287482536290420107377620700504440696032313030225759955434443876651155921678206798826106735834152959541673397900047852822458308263817502268583519255437480867515659121748704973303222960926188020450231738564929642475878901278420876419092082820468495790411479495825394270982975312339295955282188469811857893498387677264070695690105660208835373267122703922409857717413668232089102559355181635263167174990084574596598763718134658451225852894674096059945615583281322951912269625465555494161030510620683349622606704337543535596300587578700556531327648450933648731886626315121334217278574625738077918976300056201694193366197279426683092517757913582695855974786648999160025971078093543626550131147056096174992186772992356677400322526320145525826511005992627749513330947987169380351573629183657852503236140760880104318626687368576593060871771868769363754409006016111707687762907571000516588207366970445115591442078657250830290207104234993795104801877640671592004765864762721667512810188044542925242543143465564613667754912312950208941367563428812811727714580620102645861462178194170724396934537393205184496567932850283864472241629421786362515246130215610591753818949754028737159093241570705048565101555461149394885906892931591726505010247098688566131390195770531852542228950154387142554413589183934107228017287823123121116060340859525653379649583498334388315803069667502646955750555855935656769586249435799177548571099301642096870963223391679728653881704857795616740646582065649365000170797814454881161019085145517058234986447226109343235708224105918503343569211695614633541892787470534086635654575977774969392473992620702214958993913414619519240748506256458393117517141772289433392155202336801508079153400906270425092674799749031550400405923089429165204428918537393843975357053579140157425096650495332188495626134890178289134330447810976566300932062624703669139050808550895958179589069966532157928222074652713905373004467982170917530598062134240446932816837625256647096369933057897119714726739284766901202287448838230929866597026352636881322551207452305369533549999646406736533726926494051145669330640671702208356504726571832971977154779243416491611957027832371492926882647530367439622928697233827015987169570304153998266463277197634945306009544248383300931119512335157125361822336340086500910304930745209195037204538302942501132236808867117682242185386235085724257977353787481852893066079047240361346570037254840559652690248155403360672266540253803329430561512833242892471072832908974770955104049150993861886494619590510286650322935949367514077821774519967596116175213789553879155195925851090911423378084285735373526946951330359569542671459197851150505403842212880932045484864704106890142972433388084281903548884480619013692369101705507737101503350716565575641395004613841738837506689645494978707671081547628121457005244266468168642720708408192162735197252883186084244324124162333007641585876157132248074068799479095619888877575335245898392621532677920962148109899988185727533843793588200204218302969327551675022100552519570185244387088336455510282866558994260790510180289455773203799152273558766929778540625357726102425746299514647124649512885879827913596440969211176409156595586987651570059165809330979405674685595717520016169438079859970297180581028484558054689142823932506764654153571523264589407016718030453112757705019183826310057221359920922668361114185496000517207192891853157990625926956022997852665936928792889001513557164281099566085740781526410225188517830648700377756790816271619259950603592014281676994549510725685328309964239730942262269358769276448628532059968601249994508229861205916453497837604487278216398050097199397831776629266134962094531619844204234008280016173358801775763424182800314712295236528823156935987478516674448383783912211281873506927861520737256441929442130831960451562798473870915255534123160063946390010777428516353053170931482047095647523807622348250462307190646998803643496456955475471043916585453912425952853871749054690040516917143045976797977980270308574076904651816226264373525149842870718830050955647651065497543598436592755916281053041059083338583995074680919433739153194598133049787309868797498747660881911801963800911734400865821176706394942162305308013278888335788254778651793763325067016600982961857143747460931270153562104127860359294985361884017702179937019233873161365182558673397377394877736025377204909521216130679219362978113300151310897098170878065337896837148883433667497162675546455023882742214435314114928279250568591664926758517867342603816125551638911749752021254838291363388290070728705275038165122812436765120989503842344219353131637498327175260822900232526056940949975032484211051730359075707832598632733171086486829644320408920422154346336395450174986445323461024106850762984862598311975565549641614371195419653432527831113999257894089300766101178719797663257041241642007548508301829637154056061332230174923525935179746867217446335653420297826261293164472001693982987863409921361783389561586870090126635487223765919501846573773229319913637654038504228957752691814144566515953822952743189639978196028950095983918332684758707960012981107776515638068454552615588641521979439660269871153649288241913930601737866851005306215198106450301420912924809994716786234790595322237697660852263535057781637245175562270250253855033333059011473718509401688531088876460797028681236224896651378024249530837630436325039734605088349641156781756786480163682675629272793619838708168754908795438978597151159841188225224539291347172261644668139591307830800503543634574185908605491327001835534812789898341622856750891006123300285860482065500719648292996621516690081497168780686275918305314353671964201950370491072385286835247391124763273189261262151003140223367148553192791531472642249402110856324061137508911155995455391151638870082102018613566763405839918234138884727940816967943054846900531618876433414549608763216374855021651754598361066914204576563420023999078202331379918199989186245247442764916022291693371661164408626063006468964360420903732209441540175822552180808155220317561843760180640177021414544258994521502088418357853628302257487856689236140726289167241075855091671342727731808011023238424614882000043301780524062292998479958137430996829863566923096725231629889876600543610417562805907085713052346663966520614379011479927451119917793730195309142178694724631704307310107010421079681221466302797906324336564008979226303411183937392196155755683474258377623326157722453912403862298823431065544070979189773406400893017079364244048159178055434912734528381929460001482350801535264769080079620528619362466899108812828172015748209235846672307228161782567989855719950239123121430695369840306429422372521873358204987979864768793604296786169515650809678243951432737341889302366638603943656313467072491491362389828557921424886936508732458180968472542516061948605084133295625079941440731138157476948031932486065936151424542372653725925526127059780207005687314426011340514370457499871229503612461809616102882991776377147369135936237578614947897279129900084260909730122547344681709677169072450454885537556353770912217444026569262380182492745609072884570333062447955953646915855145563532042699004896301821740511909960374245035781532398784107391247014481727552573712958242700639513868245151613306476553740701957504853914911162941044766827562293615944189242331901552255367611865217673213441522279865016312611155319727806171859620622450556247572738716257511702339585209165189350105613345406118302596399842902740278255841853389249531002931301594734043309101781543870699415370302666924401144095120464243060414307396460492049165836992098174552560825811496732120446139432668417290199063935818663081635278757866530790984935492521168858806816377913887332888099548124723196984897578559254762353480680047283547257772735903690007323041230724030593931512885373287984861208303807266588201601371717789566401932631488479430645575477360924838593740686713041710045254126783994670065925361544542209460577817152632191126140521071967562176485308613493372631226015179820391458053956358561641500938938607717291555440171695629114273334629654391076926636808239097318682004052521530797271381385462903489673808686785234824021924245000426985033577125218984876992747901252260912542950439811715976781847069336740572326673603218561059316984858704616202935024343191132234980521294606248217228806661148819558604660213060198594975355669613914622131584365293709365185331609631280493960253618322734695822421017668602494280159959178235576054540547237440281600545767281448522390576345227410781050788834890132291811197974597941939929371867894928900562438407763848261746713823306709016086779739133742939215711226557293232323141037454316353123995508502193107267519641768713182850266012281971919451708568056657621792201403732969701324560312374348724733616191854549578107784892198472033021425500204449157503717548587643907427504354521477586855448131849716809063556951131923859455300213033985748278513685797267481368537709393532693923766350873288206337870996877149605801914703488166242265352725850985407846475578676899192882596883009764426191211535046252618223647984455256123608032498853840104358141980087529199897476493883248284729686741911698908036504943949226541829359549001599650800192503288998859518837326320926246007139354752812245055644506274025635569916520115467578967724129882596000490128210755011994828632464251515248400833526402338785401312166138034461055516956919800253501336455863971206369639885636149283481568375650860494568105517411677141914577892104198733255156901350593094547172170664965235633411684179657852879224013276391864731360269290939170977212328420110240683833678066647665826140120451316865424498780381502228354547274446004578422337002378242354188681211456697278403036110250554011407941041296107940669006343610852966535974296122225020247732822082506030415157744823382531484086721304224714428029628388905889926491813083265087952123289240621228769119348749472014416996368283325877277589350859869761576654193848613311375936738549285608572175774647916736982395574531319416238189928456051906081498471792243127359142929908865436487252876403197290908216951155859232614503746869371460656746211054282291411897933554085737129079761262996711248069333726197867148892246385336869560253324697764782882076711859577046300631881609416879280962935494109074727587646200274853378856070533714510215571663132991750423900260312385214075638832147230701083270873539207826718040784753922442842234077966335307926213986871726380473849487743617287875682653513556969515357861562328418401240454369190448760322476373204038718011062166239279814437442920267353415617077541296481970815358703474824397436639582334818490548211661022745107491641226026466529081160485029918702765610578554389382806937945429206868420346487443659644786271034765439064620819093928019708115411552603040714187829653707107542548054563443802019897790895633147747744427876621796815071718107772168758852907450697684430539246764325646198508301810320879582734005850860110438909009819903529580549924374297945410002053376451349788492635374275128768658888905370373602529826849425835182085684356416089766520588390778990380453093345198566513658088241524400749922553057888578833126516492641899773817771673690823469101530943253988037511754753009668631660483818633168495805754928074965668791687313479095212987628209372953190640747328216795029042862424323696681741567558456652032763034127048596060822666296735160037908581398301808780238778178025275414436889184998806974988811160948699827243015348375325204214730051433779131350589791335553052550132859940641570410052556600258104550622503195467475282422522152544649061657332073667067220075406270898241689649454814557186253833624469053528612585844129717494854212753988851344461446034172448902246517849322701115859910344795059818496131755224397362289178779544508834024687271981997161796694049760206231146672183051172671201879841242523324152593646287114236121020981658311195551245419933661623544635349284053401623403231409151036769284203616266363889851943694532658057060381167543397341860919463967585467961000919871854374815268885465516136127729461227138419830883406567956431314280568183066991886945660789937592864934604627192380763854755961263108562974612415423326246358877992537633693813663757085876416531978449206282980248411635119176100710612947394926258981985013374886736510429368564967106830670872181263084710180587208516476629598183897501726515679459589292807797987262822720466136033655709718232080366000492612314612532236333422254661666361295157282574853168343149664427416228921395782452813002543736080621103857138068966283564257059170298803712415681680141515398486796457935362597591929752758260720186388121421612701100858070997682868463156600456798930990346719269254295501794868041309236558104123907389577178708366280660371803541889914573566507640444537086708937305915003966652926885019124863119408555003631213403570905467670092148062429352760699968685604944214097359815671765279939895108158170016556263076506874157507905381798054351092300006351132441626787537078304079491427627672199231036302048985267794531422257543916936272988960175842345375991354604889013358473912151746769606554703928072324771986897171931374509041056699783202358880264232810915715326547790168897644461993837408648485249123729345557269958891109408266822035046984733211586210308912409345505172551719906975721602757088297463517406694607140103824156517058896474002133186216488484054077680420118811828636849718001295913569164625611867331858711063308960535276808486788532346610486660936192750566976333637427037494340280765311514278844867590084252831701218087289214352134818335699467667172572436033433282185571618802344031145051274715994472441292176380290928732449042619011226389302201251168548655579651887798729314420330663715876348909167103802405736697428678903523006647776961278312695829768487991560712069968199724547026068324744618241926041342866647227104500184676028505200093902925041095208235151296083983309110772046113535318613578729746202383210965415673275980639852391306892903466040713880817462267129609018974488588679690607884040991075985475644647909231446618823635782371210857007549255548544557779343276164746031367319474502219942747652171656461725653462236666453922211404052802312083105175648184625581367928651077945671460245513180407485233474511028980407530874544823935554879130917150813188858410370698911180434223874361278787296114018318923823774779232679350527210555154506066641644472287153178457939151390149912510906699195212036403902038403134586149210466413152800949218648680029378939271936390031172853872903784098881972413208548617390622020133927300641369021552957092249212645106209766955999115430131131052717624777394656635457438585430115082994804527963517715934383943103884297752010152148682600106474367033743478695854275620118557240575307672701786603399181715193610503153403952992655310914312997026575381557022571804836656456573209970327798477043917074015629232612326665610825054774031968227883041692549124079011255286768374965129374695292520479647128672223126638754133059046155437384154260514727435565311687525599205473647859021594645393702419905818842559264122691912528099411824610133843884373388529955633400915710828449481581838445691070263103886724601430578295713861856109200282334117140957645880871506033922808517911681511020166728756940235873667451880920574400086016254321406846755913318736168090531760152565661800174271488850010627505122523765593015023187182345318884311343780485758897492621338250224012263620151640269821785065480096778985526081605509725992179004118540847360611905692193967044467367545107906671168913298814740016972203124158493929324372877252309235288246532496618435486084212577297931448030111458170867477257337859994031089387049628620966993642398221549792858713904895822650294438270133786224272406248721487150861605515656754151812996849222045703479470950887135379540470940825656552198329752018565366994021609387719033258764595510853050842408252204394098980502743633940365465606301395498659479960876580614000426353447699193756899573694197030530283521945426826506541208766710873277232243890794067262233324285473502745106901407232308079671172203286119914987234106781610823001674524243311306295925094994015692136247595874215701315371843685696003128708540647020996585443846651477852320608889362895557932641535410084229108295678618359500840215347028817878306338387159334438570746412959217183758573008665755503625946065008708441575042459154013625657766722516888907050946176908196840371346048469511690758991428573947478981096683670457889712155691975821498749919868735177450988963980336659709567828747132711421323346863153232004576232426883175754317616961065126589840019218940446930977971788973602206989904021413942311941341657535232376737034997298288195210742895364223250991604730506019479500209066001110677944446658988208034872747646399214001498833622364277482604746489580073112628698864579681419903225038732699042005284304014304820919928854677655407149054865552346688536394982865835642656113422304258805630908770294638573103076951882505255382122290543649137092444880846171336921649715981731349759171055646743661032087587782714344771957793161907335216767655193927885439488644760414674368528257298298725638421865394676952368526860845383312738745281095667387590502932429661116991559861605205316715076348976977130599280318913169483123023807054778058199631850892367208992653894622563362209948092793617731037291542440847787500652178361296684453625541196233881456196849069586075385658532494500086554165101307685190223868651021749842220956461135213817942836203455718382634021447895184635927147519986624014220722796950689338245253522722058595393613258073534909910771133727165146258490856560438209533363814194827204988540015518238833025963296237123452784955838508377311227087894306459401007695004968310316848015684341404562481665666660550109902472293718416147142276261496824583465435593087647298214574943134910982388031604571496974813242076969702879523940187782288786153715698789979936562134952125543850081246764231366658080289908134068768114465700038541847708187052643089122079108001401599768002594628766752515248161109629517880872244946451579027935372437076160122147866128224180663094565499480589542568102066261382168698562362194385462354231635514581737705973275646108938387762266021870583125201355870240871404363569227411570062490779069282346600616474865439131360732790578959199548321319304812091320304210894566771662525794019407018520960636749628025918141405661109514569509177805672715706405201958323448972657368034780633223153141017600929725341941106519210548792814524277545715499936311251047484137457556205506936418753076940627522279992260390645683509809812256473246087148294385440465854305511897497531568676782747471012689068698873928703467544445069419385897048292397049131312461658600548362560129849780284478517089449139473623983780338282088136788890963760413232832176681328864412268028854370813907882271357500108303840960459662533882433030405738196659608002763541421979855790433417418952416352160679599936661046293372058623844024185757153084549346681196532058423732954826204059226712225792939822870722298865806182562967956207998301516011896081121169470027109474072648185804367161758601443005911900718831800828804130188601054483565758632159635723857410960908087889581508617106369708887411362326954982720857282552915765157554324671330795097423923046927304247921308916571788890379019743488927226275340480726796164020829982693383331321100244318978486092846629728719487946266097338188464166363368140263653456868135051020568321310029731953336295004934576811306608489103019511464489049110206906125569786030387641721463323201928441510884288432522134404402425189566779383698623543929257468954659991649117778344705868306929658746965307031857230148634236337858215298298348289768612344886346522760641037533314853812184432970673604632144084896933170543227602747926840729808319162779255480254312153526001554067355881280692032828181306736902793858981995811400527487771762977149745821158080840636279135503351579484740266988723031185068064125599103815808430402623010375958112260456645060800874255194427340162363270060924006916046995308183175939455031052110349089093002946355849555610319054055075973276534090473536776617875904053806782162480838209702446413551122480189008182696987227795617881131877081935108859530583396517359796804420790647442994772076687965316294078555335644386080049773176587971173157799453198563342609647249058495197105030133820514788483338642418106114939337145607994704604003634908696468457475411624416975053295661828115745807271010408941678141305014766360642601075323946950465514089960231119113850767795883231668277387592713311611683401909832197695799444683692592000361596284969889639237969524204593748538884551572717894004420762902866277130644156937874684661579148812515979127547112571159504724831189207505145826490483299902346333788475513175584254283100952871145853873917356147376216088428585008847489402616621474324867903981305224905514474525646218005691121408228194705587352438746120862192400844809525366883448992653253870766599949976125550791252083901906383395995048422511391242118990755529811920985811848367400216615211182004845456669146654585394665896950175875426351014528834302124333933819158875314336075464882836621343585813279782838916807492146676390744881331447741503526586001027560746595258877383943119756359908993013981877017262632392805489713992811398035235628415345262697751621547467107056970574229018621861457054450710936236008137866716201402231303040303136665059009328446286029517988232101422410392781308267420610998781702875866614472980985656573987871651819985529974169275641194843390976797314970627665725909244476654149573832870087963372694755473343558488463210122487870938466742185349558567062259802988403015933848028296716559196110434387310409514653656502734569197232243355527366856735579193230124128491621817544427817387829314396500507687946235897406899005883653668395017116070517435283504014223202331621785391000741991094755366887209164334632286694216594042030582792625537483123835564374051889857250566144474099598964985902245090745212428554582894950849156601375929462572196680808359582570265461171144027487799032370999557629628219207028363965565940890894735983776345354814485098838212400885079530323387767312799971681153442344027265590551017281518684390527463685837498664151034005231788387070286010271071900341218074894096526407130177401744412623119644226280967585028223389475206782842539789314868228269501692845203920733853764179286057357921631150159309255161111550899947992846888178593311379668870245309863428831181303357160887598707840681134851658854841823936606379540805968207482907797256292696200021421050645878677275283672796861313872521530208246495549808356798206633126770905239326097750651278313089800530567135843094191500021595852009046094367977029353718079591238557580677891392171326287515324777513406230632644996809628156812028207740008182560473600819940813171891604289017841183363632031268297087347318652477804138444461029056808450362620680496128617493480192200018411268567909836021474134467285090565419879042116523954211519467182211405489873800338106717540796213645588483626332846707266764575033420335520225493180045089101238283460177193463131997404861800352477926609521389046058907596906902521940947257590324824596147394234188287003243717435476643590948790117864558900778160657991078802894272450497364290881061848776262700870924454926402932844732954508005529798865777617436454511160975959198252022761182131810976167187912419382322450103195646528644289462926680602250957149629318885278391820894250386558700862599344214992253847648298253309858079472037565709494710416026486413916106247122916091354973490112213111938649731030984923708476669236822497378717139756835110019601263071446845004062462375798979649840566757185445598731213784118785023764996014744334346063562363881419073744115696610773598505938439011176156457418822350871419130065035356695351872998503340801159774107147262206167359529951601500524142762450849233439564821960444486648502318549859650974067434634549791422284931759037293705291571568739516370006844657272385095255967748091891120472405554126202611172386954827013439875287038824328096267443817408914209747175866693403791302852385027745235900625029562678632725204361685496149756174400508173877079574131799724942454963170040662905945461297009600165688825557391737805153894927820617351513488072804165431157262825118433348861421371958909264166173604334375473884847963053250315839237008227593868513320948170272190992136444590049730112371739943721900843095369565336270319429740024310235875384550241727352981246779300514511397708076431107906625367709431781418525219908432074982599978578133841298573889567607274624476187725340026064026530849947973410620157866280673054338861999775220250136459639512786628238555744315248692316764370738258514940691878221769202988987656021508517251922015990519823971939223813037948036823525569147627451382573466981994428435306911698418288361337077443018717160918521464238864162881225575401565672334584691842404066169308716028370977686692957208181012383602201047808508591612376661488748288078022448208263319468019340731274858672545301072290382112924815872292361464771416169941396540279526326719301809985471947438812828080701189480518490199341947724265287783711549062907418006189322851561888003129120526594295912269883196203463584670181691246226819090295546046177801190965291678837223643627045608815815094438469239663280184326566209041909437509737815917764439613194758198584527894488617266089253058252813665962646426380182760983218638903707494805900838051597893647372725555653891846792796201168995794626140753250244323480140142950559838305674143843450117859247692777927775112117739737255479158677096136133390581140648816634996109679397132273945411076542701675520163844112136849367663155452558300658994565517621158320060860354844005016550761742956606724195196011768723571436439876705097044676771491119363722543404404471363756837048786899354107781311699440946082444009322734950081366069436935593669129230422888771735685487404679341051917118909509083839118357184227725360004273906854261547267555789283027958639882032064480998429147016104769936652203005903345939092139693875665204102881153947482608518931171103921342709598366271333757685425441297171395858828171281843654015307750346819883517801233575490243132452042743500123277673636240385570113436146240380320976005831393784618982675369125842004274498468320325677811822642726611600739259014266338192173418188616685948683238995798419098063930877022693165559715888670674342350475174347915724758407497690183469707801306021723198881892674117662795631362689429174555795144245003424061409115773434017033699113154363654093459486359493099614725173367440036633697957727008609351968862647125716182816845146197709924692533700941637672525895588334701690889343498361113569688798838135225314798317098483956381667956230793197162678168685889210493256896578810900720438070515512120086723557474199177185216835194743833094064797254515079258449004508873974469271532958087200411501386405146791564797908267716599147806699616841402315147009708682641936740502811688741788219527425335933687422613415380239226592088167363941251987152971031856982094993373762000142964364874297832013748026401892590304438891652999883386980633215977442535360508965003545246063944675009968414854909748225070047936141649083374964540313299541593710745943497282718693055020564028191257127434163916066241936909908857463289980967745441260983426909717577421239911987551114853246649119096368880035021751379239249262673180914274174182530214161662689560263228630929796980482741744115306802848997476879188714974512072548167576211060371541190507992029399482210303254449569270114478742291511750596419994767744205592833950998865532844585513169636972649424290498599527774657411981319353234461481667635006712336600173664200879998856940666319465908497156066726430202921495249075558775377423426048892400988063110698267125316272692255414644066821189851759008605184991804951593633735963743553432732406790013217687569029795038516233490901314231585783257079029613490071569103370179368078352042353436631833755001817039767588231387674924721124336980652292222579365800993238633807404839471463049135256817042929276344456535840917540731838035927747387854903775930957986838016640671473481550266736929256559899695797076972965846742327870540482628436620196844214685894658404210272563608983036008509280482242756403771925881306028673718791756155054557867595400414814583100727672389848512704645667934584515364767801366911946369509630878725347244161727432317960694063851995875319250953751709682795394454333002251214455448606388938310249370728515936658333190426928856935638968964828675770677172518398888575361261159631803272898167731782007312227302872520713251757359737270783564175925642132428043624505001962622914365353421750328258069554164727125503371321388297149051220149957990145430884048429021388094502088784647948801440618399584012283681323503964708107202263307423744153507287877072508096691231375503459880587378075321403502999128916131791398676725621235437797183863479358597467527577596017734921457851519337508576396557061493889614064504068441457022749948270949234420327932208247434673537328158644732246783337758745375032428989593812058382249938669274990279845562391835976088548038053286808450568175674117699976796747562624005614729811933044163593024934278725614594484817929613785529507441758086270419471751746919544168780056177131023777069000311976250543824812029065373407543286183693430366243076308461236962564939334312018560294678661591052787673527731797210923080685714607783613492261358747634783645013822402731976584898469860073377781954327701478072506330621178134122435111279057868010905495284832567847986742763785016124490901928111751597849815695460193280665250764125721579629248337927956180983012287469911147911089468204884159996311794860491515322283118393033051149167131188257000888960262702143384183449282589920895573898005558454920963516482513319887016158653167636286048202215186443654406482245959037854982857745000738450745520307257673628800850574979358501739483163029734633169942073394784576736493244378987506957201793682572928500407023918318418585702048805268961516856076517399571692566390170295186844777176079684530452658891896732179338018641806633892093188770738430857094241348272436811085908298166153615127042543997980169165789955132018125043035668049128264494724098809239839635784145493465925178769689324114698136528521864728669076960449161681051897328677669649496934005837799126816691583064523595146760072784250593411922149399846098797906079643923649416806992661843424546186719457602692202201191587442073830836146276880464334903259514135369858099545665129569660030346730616884269330560197596421519934501748382705956948892780646779023930547797003846314289756244112506778231290663846132883928816033382254556509982116024716348580777198924477057661734699232008403140934580690925532999684347710931871267229766965023052339142769530504264392278701116210199391036935959943510923341263103496476458115157163884013252438953925403766613472014719374806084180052306817836006925635180803241426963381294802937512933345718699829721993223935258640082574309890736228248089028431737111526423368057581583789005924039369859325906026553336137140534905094505077895225543211967529329917095979406737597705304520739049289224049207543562019157923833491327442717030206178374432693717576525090417442919567982711126479581094683526454343168622328220036871801123253405578087200001071234818837143271946481078080357585630021634663090341190181167283431745782213247904117760202410032503566320961819825833122474053062988816644338238920690131629777576239627150464275198736278172541993297214129434917809427805108294573645428322158002871779343469560448459550672566649242110624993944923282946718505029606246133274791164211144124349483976648031088468742852666853461791928335096666291315704279242022704848189813137549708707799851445822851126198866847435682577050076191566164555677247331333334176207214220448964108339721930927834177932613571856458085755660457877417775066627784512121006761750065593659772428314093481227609113125009564936311163273031874627279383790871821070065212953406562491374183146458903747982335610604061596458994901550091251676845694262021834064073219905269702966683036335672504766798465777634911613654027975711493414908648859491990684031994049198007294531038770183051989741515869056648741649081430257580471908954198082283847502487918296891103718676963369174800637842545452734654597025616637062355356423183152552490334914621009428763847569523199594282680814207678819134303516524546563147268064055087758987988522301486958181812686783526178224033205034278985779905934670413391732349398941934765373261230473260736524462608160961387612032506051913836012443081642372349415131258118919417521934245437687890077909404082763387372233638424551450761972437905552504021427737461897629541321654152975458515923060907455259851822231104847299490803329527148059079734461710228418460980439133305559303556455259282388375048654269408875326786426508210792157298250282510788343749121393543708052952916965877122383922035823787059363064659295438136381071602912198968985585844712204506892045163642800844976142875913033655507588650727392515045412288604418644496652797355348182990452684454955033630137603857588633016825766264710798144986590854868852780051349773022060921304837248156568823338130575652772921318203101419609509315265249430762328341708886856518163615099325296940456561964188008720125826076453317377989690436422051210928000589616003318340987026739886912613268457125899471582618559438733402019126490352728746423879059080205088964849852533561823861788317307225236014656725901903612401579758011465401683455538909895184947416194091671149487168214099912233675410343290707479522955366701837054283005121390211372735624452190583611103563752917387130655782169641704021606460627175989042184850184983989922976127978206421070485104131286045635764729953717909165773869010554240824309981220284885966915617415593890860750931560482333706280919070131852017390377995129376588055187708361098379954270298551662431722414610496657484378622722552042886040273071884162840286861801543014847715074759140125171760306325646841695961263276095969767587917934269994084004893864741326579426158761123554260709573805597632333504572724462779616243580728088701404257649007685636640976536433504684051909957164746560574532547371480149099232041839148985344604830589832541829842958411775587902256481007846869394266699151352216391026403504265294533940427976929888592292986014371765144289991467075071694616530020583513148381430928303951072811735939211110863356263301160081895451865892770918444474456556851456561566028414078581251014874808823630957181051930876383745192339200497396695831589459913624608598419293746082959499629058076890070195965668788683244961926117631556558612795198946647447066727799068692228186674117226621773906480291040640349991888652677175227609198543908094533788577464809386138977288944411810205622201253610092119429552460729875945585872090509896921651809642899585376247835554449193762567285545390544630426521174424272112264023090038112636633828970758040388458861786015242866652529947148284073062877742874166045695905122279205700099834605671263535528358116574022749306594371949323042197289307308650278433288426947780505812843274746230067813301950306426861568313476793004560971985828090535411156336638677536894702929142970835697422113783733563455507308601521864123803581088094098787942228695944849673419802035209308595166284192070586930944189459967892965744265511654097547281070648872291591048692144042926931976408914389204258875651935997555278941268553122225775209448423384761805936185838842593473489267140678259599123563940333150589847168293617154728392373208271907251227150543329670172924887475483547878218011941971251016220251196454654265027712307103024565406928178332305119014619875205267326839359260153337802323357110843920832638531955886436188733148372955441255737966561271101022129070600761753372153430953322486075897118330154449552405335343811306218899470754583517961367310235752061256914994139044943940154260391825435413971279949583892871140796090262943365819111975622494049740195371730965104910126296596393324380028717520759299166780594961367520169605367390633564145036113135787376334059834882196472980080154808218502639012839166784860900932440099851664078394298449267690759088317072895305157532438799239214628907648168936517566572459785145520323965682402219886079518210402405123885991401984700033586768504115602052524535803891731524510274854137114071930588282464761826977957970756105016701698122172027954346612693184924659176712420197917330540285813233137436193215435600478116575354576537407943089599765764944686216844326109323082147120386095720791376730359810192338107231786042926245329148817875456115439188853271504557565923463801311051736757179076397984916176504438548464586631096958064681954861585835661488101751773936530250556912565713524502208354500943373445327671992072151106905709556139934113448925338617207943802855368823240974897050109897370224029111023661578240970570723366761640397999666218384195345117758289397589791868233351691745472004096400756540972656342298222271851176150607610352289898912654419095620255942469561761458349657545297428870086348649135766154035306926383888266205790482763124599800054000860637848838219009847151581426288366208806506367052554833548986426528851302515555197202797572954554044778591429731379973353356293816162586122146750082241146007567452656785865183237132700471935427356118361882529834687290805475166745984139443129729043601032836584815314832155831296756772668926111151236999162814924926870067322605163598043153629850258139652041550496947918741463900746730096522887359267954650179632565564084833996652784464605076329082083385814639992876110509349860105524099319853836140913548570986834073337433765405673017769441239376945597858442793170516336011422042587772121979471229653102204593568539528302830118621905034401921513069143535310350177055285315625778846301372852377912406179377278706769628424523465052359564212635516865835802960708405491665290181130617728590299618946623978493329080220469128737086457903922671399347981420267916404156940629204636366092744355295542248570472082012498550424805119671193693742496552760713735258515821056132469144442624991498599100621578848468446195919761800677368313753030429780552419180804648179780297012998947169504065462794611522889515730155371938677422304953695469667803781280889119343762124036819104416360244369517486676563416476233003796314890820834086604494072927854999125626666123809175182849959385107488061476010741689957393503571591202410715755958639394728111316043944950186717031398564542622596628834599695227061318827567629866742758165390115480365906158340607399126308825228115021182979609032240269630743711577173393420341009778779086242349855685560520984597764035022797006580428822742008084390620920489603783679040461122872037272919471145185309347603067572761989973285428530567352801146056477879018321280766793856921702613898642769196089266572463126197432187020313335241010938416571492145239731851753509338737483508608922737025237339495536039551100464349574901951554807404497297265381468644128385291357882834120601205605236476250602147317183843875821014805986003168522491284733978498166324203402346524071346456021185266138167492305089970174701579890332288344616045702210077382960280941771666647037384634122349160372314945854441624308572448661801895519370362102707367823415917689499167472040015827004979111573173021515747219404222431147911405607320983453427789784302699858805830569554002277513313543890918149299409387633342860357863141342472175253565872031471208684925182789464555048357886314011447739636111111828834333843670273732802081160916679497184508519619919094145716290302816757583028843339932392320259509920436064971526289470164010997082578346324189333943140782884556077442522568529639674077114142891472704051598916838589673872551065427716150432028099325379835594079400730661943883418646566304388991634878658229378435128398700524696295315278248791431463847378750835612189822417529914388679462566370806832891627216912143115124749713603028059413855159855195824148364828707688447633785598188762862700757602290756745702750723776291951719396574718976432737123506641391528019995864293248557929418492000300393443381817255505603799102720873976383729694935065810110091014013356846850653614219397717825903690908711436564560712895101463418318878327003343380048392976366257148684648794007662385838151888116469106606034301868036032843204306191547521697624665992271185248252405227424090579435843686746482541615077767730179029485018082481681574942593628336985471357394255068643827585192807202362151044331602004752322648742416409845773020532283029224534515738602297692597784060864431002844797404856289267881591682505160654599950641391731211141170729594364532801019235512763373379309949464485900367620575519628867691175714674797901468699552322923739412586914654287299551739221465642076248984771725535451638020877818992953966020870467625741631673616215822841806723648032310872522618270354039147655116411669802270398362302333513921169527231862460165320959125323138589989246564874721499826317257481281497252813603218323020767045308013386236884758708771745111399178174034714926486541079595294026211796973856641977536017422615274140469070558819839261535565891327130090479774238499487252580447097754890761183592335896661456623840474616432007948964979245642701821854656749483843967077160701680430328307536364346179004614481066722548604078046874447686496356491753064490785953023428667162221025384517615539255649309596670008563826616512657020836501919955472954328364449533495429853761974857653553174131290889772775700434399944922677225036018226446248884421288770725450673785427262212663370706278227420696998570741439598863203312355603859879666120353780604457974606931542132108121962127958015736030555659685412497917156568112780538940029902425321986694712781915710189540201630135579618411085621675731453878906252131664849801626813079024970933745921091881170167228795792835870678558394827251353765074836327182469714784902363074110383296569105193314369552623808856422269753220791425545210466490210832143923119525956285976917411831519216716042089805754753597213054895224838358119998318359739843162966028644205638969564169555033248943319124021999695320017569550673393714697183593080921248321719374686810365644143766586062542716195011924225674446632178613228350497363940874551212650503273302317089754517256620074655937848329824215305986337800868736905372901721268368885146763539680926633604720185248978996406864977568366883200705772261204784036061061133175737655641930610956862051781451203603685923738152452767039837882114845114189036710260436978625913980053457992458024795522119307572817042027065433146343105358226398341873598001094744374206300723821091636412815619312868314806339806321017277313236436930593812312254265126138930436513321525641745486474851371853843521182986177037928828222157028067163755945951193931331122631967474724990471602477324128619641481995756042521931607565487242083062168674399074185454967617006410677190646440544343448540118683551258351828741084153514298441620549024086283119093005850108602011497567165523732102141664657149420046287868285034803739351352110466802828165138114125471068279224677897840991615801264928183776234024784436239295239501786452776725959140477759125384348904803356061774943856980732152983638936594053501838225359370251412828644776063611059016651016639936678169787600002631256159941731827090787967198906942583521548104944768361462688306091955305078680018738689592758802347956785076323373731197171373150886969407734396379296232696355246588576126358033774166808360467185953762216427702344212937212938037791446428750370309932088144096246833125832452350710679706567322317139283316458904175394856132145152627354539397652096838374309944097182826367830422365004358513882584303084195027386063323590138298969323847421662599707835934837921729512757746536750102067151972706538610987435029361240053954191177010621286517953954125375286563594698822041974977300389575201127297961650090140469000916127297190196962566741749715592214460201143263949330101531824361010751678031883271830840204592394119640721641532663757083377241912482557797315225127448347452610760084883393605606673155436311751798572811892356156951199345827666876010439572291095973591308216805699630444922015448360969306286429068278951150113915012269103559762637735204735534708982571422064760891348319972698336694200312257735346247085257081217216655801800600944052062999049706978128288863519246561871084325524684977604947449903249716915294104280773846854300195784799565126251780769755947088030458091394340128646056387039819096932100289971404401241193546239581228062496636120729482981289299536143396346398227519045530993444219920681583435359874434126842937696812043894707271987843760032838346772741659997302570366806379222603720598999362196900659724277192330833920923319824230352758288183370965489727807590768210869156014883469500627148060685843045763345569191743735781112452469075658561559814190074126392453699224832479278464837538449614695716405293844600536080954576781870125827341321362738329760469949444851793604372575188944388852563231148308316883038848629808255539335793997313912965029353259733678816692881570792052794671807324504208052744751276693285950925966181651736550233263537972460709380698799650206738096139253559124183324217437372009777672227530346286025294294915920310137760728202956104031605581879396363768339850676201794596462045549542895718321565013184822519442917711845021128395866878683077378730442300547551605458537150643435191538479895296590342010183591341226775195235808525100528482108517166328185404858246223898611938206461503744588816481193974791363804862287164816842401792268831109797007145963068932082800965467228709918485189278056504591040642171169874122906433792919903146436647713671975293385663338964075643429624259297021913114829278053252435206321973518305020459348149470936292656746392933579008798749583730300809212790026754046510210483592340259924893708133594647520080810766484230983215410109029788923471702211535631445052857401481960956204519149654317144907965212257184826298129909625627738940624350565688158810506543268842625460373094459626497999428066711311048024680892229326930791655294561190587801837917028937700114037226384753025168402526611292743008912360178983223640621883956257148475585812908347750985037327349074472526545196234035509795693216833805371429630287798812590825314879816594198965044607741280248058084791465242904729596473306416511836056295142673970071833634707711910504876296775842497673994794899116058013674492308278073674394008157787063956290274379714395642685164792919608725281898442464540807375245719610113096471337639839021348170763813941602781451073071746143994704503046623601671095092347677060838602609434248605818501835524825705419668174312412915130032207252642560572380333692739863484516425954437012030389842291625786100870601587740388729937455893945846722112579510287708505081706127897906159177358466184887336502701471768448302332400081866544440900342790066213503959487564832291740331970211827631687833144727142679132190296430842266351861547863775020524108674145219584289893792412950545868352378387508736131215471377461582022913467858132067232580151015119377808526629402092572887136721791221523280367141705903612848738464661172109179733004788859177701438607708090543495254101476753569306316339445683858797065992739862223386214798814346196794136326419550398999837489308156217718992395734674975227518534688180588511171541231626993640685255435528589227754785108318818135644510204452045064551906596791544341177581936214087264336319231796035201098248529473069989682837170323629411244707729812618949395246472524105360415232553307827722424855526885826072848539606419707886031415127359404643570888273068062321424195518921464846111164231715147567199283858789056304799879119211580476761258737250096972447857508781118400035717815260180031222018507863516872849043322212565913827928154865147611323747579506289378749659005695935256716755242858563703615448611068928612766640364121349602329910409917110408516978343309761723269300475209395281699555461522725127653045774437334619298010949572613340510623532864527052319498855834677054036393954293657251785883636715252768393617158881472714467325117114666283271589593932027493123824875463790491043960371390584381448388223735677136800616650960178504220088708913650650657092142634368215331966796627959653664799525501045828558191354192529901676606705686185187622483379474606154248376656291444144026581680551900411901609543398853405148661861845679109917025048186854224528073884504921926599378505689283345469981917646432876229460611748396323832339364268709110528381073530548723052874419145841427478418424104077102338128789910320744104343172788818646922187187241987872895509061291724688114664672235716773770507138307771232446686151511749239932672005806760496795069352601937702961256438409094894370313018982931777610764799093567030597643267473308358876372592243031175154216888457187863004167087234898034954083585683174681611285347188852152147543897603085486508531999109321111926693873003087856016930630770366219058345952929335246616633399802353172799821307762174842990782051317628351648676868138387802505486478072495957934059152900018165728980793871254844531521824251686812816290855189102260174438683976930667797305642591747945400063965288318531586509943474743458807566579306252883707139558201422814972910156169379437371637636399855504265190897513661649010551748752637805392226454910997539172603578093893589475241199469558625756834494281209176764542689059741332862461238651965401964226115680726530480732120669813060987574676714592774384308812632269071518234716868499025721155465311800733958862095370277091070751561654814711412726414600867472396788936931108071715979777207572770012985638027807796924507800487164039193588844180106443010280297346669642485737654843398533042343826583956026446921052402570230270356121970171626012821309000633833995965036301770685829513225214415672863130296113403390735682217128407570426062174243023303484171917320776791015165676309686984325674790397430335721284435041613863068867607253666775708574051169405279759060452725512141251167855415899216509221393479577419319878143362054002851514797896150170927115910286978364082325524592654913722941449361113051527372384626199008726805242954968181783166194074317657030273148702220836376801784633612598520145640966535732753721102365720587100117902395782452132240227272655603738614863447711160882596173765680999389953260525803632273506725318406805132355732316502088511025512931392808690150611957167644049324919999398708062895018930346426509696195525809778724409134464531548780902049391665626482291089364405553818484809820523370557086041486281582391398422803867168952860015657053934869575800829017550200450572097964803683182574798285272764447916999524417142442615810401147768013633689775612963270876008660715409500663987510687427541409749918174973249782224031261194766793930789378379590760692979664203193641687367884726193312838220049930934225377959446449435213455036964858838277531159296033515633950859564866321363308758196318457501929588010325556512260339409360566810917079990917436414250341061682411387077795816003071934183400402067510190672329324323764148555956257511064222414174066700516876187858720484235356692533127338052744251005404510822678975850684636251333680088174642171313990001363652653676237924315454574351114832773370564276181159893634388766755088807787213506145268388263854579356258556872538439309274314027907626643813539240755344122333896431859008205535731751138756145574250706143477602960112289669482396389875578628890928808512008401471745433538971624623513970134890967241424725275633327959970697569500625681823112738692929557828233195228419422989942581340956800815048059621801546403271955732513219756795342017350930602132199494773098734130970551679751498310962845609239467870654761916096087261569498183872012852145738574926636378491692874525136703832736685042257029174563328861874991503115941673330225819563332007582368186543000015070476414056562618479212210878765619343064588856787133617093933667872034714059643204326503993005878475113485872775174328083787124416279552122443541650594575700827893665182795385539541939852548915717272431408252040969832295866461531636285709773370480998346184529995780266160131211857271779838655196472626296164934786718001970479723850625972213584194355405561656615143834383126947200063848803694327221777130756386894505302104113269922629896486447871137743160055913734545833796758513463395183022232318588014180759024126024518421059098061120005682836447075270596839113288612647719150879433346121335800388425378126480571904045380051111099784509211561005655191326151004650259565156774330642523932486928760739358043751700971097644711744764019696341583291468387277031672896762143988587806963862343994551019958821220610502277707829270607051165878645939389032197907368801985569325489717382870309008420291556632782330568951181884578956123716175875193661691716441220785963613936518716545926170669453404526674459832950615133705877680705607742034087659981776831137370456126875835994863391359828758218197975675694558694910675101402854683293547853397850602612919488317725779264310997908055322333426792960736989465853627076863734665392748056479030855980607640690415292822702334667143629471747105796017384061002408794384954168883230497511213013604331193909197338382074641502551845865341594663820692297646795495226784146972045464634666417210229418280720667264747867870749188428853210428943239910646573119286221269239283195063996791590728684953826356329644321931293029766934459953536146298358097055468193431691664133538574450513225189766912500730441142348909380349214760797612303006551071092453523812093666460326042565514794082937615501088631297199747824326577672331536761927158421117490697073947302112012435169720895265443505832984622470217400751021975993174283420125439597482772283002202247978000886345736049084997010107971537766702975813100654950463251740976861111826609344491828653496141608343526712965295304727135218042183966524122373800250104107233093502078827854095264392991662139831652831189653977136854354847801239034298395486723646649680033824471293706646813627312097487575665764187370563441039641382786540919093882541100157194135371248634874833842320825007432748183039436431468415046047640459947821500045863415250423611565048852119360255059737249341287242739822870214496574690897218108671860533365551444784657298454852896611618321841299031030726901642947824722019289208199977591788560072299759137654479608321429882773130703560971526539482665546693643095910594393824104541397610901482161130542959181400520982213008471847281437685607338854574908612641016067012271582984347536968164570539675938554566894656688006970192056157507298474251244234031819476876392495492905683095074739203633257507985046982228264371921895660504215257488432155228625077319532070155503020252505070405860959686381903157854350873731539498729808947311179068273264685212282152629728832017735079293279395564927191114173069338179196630443209931922994635828635553042618732611543856226870535496181824347222234410812110712599173277401710090903678907210489270868175395828407173187328790411015659772934224078053715834978135693207001585889830366403893196154944300394158605130956989049737381992026336353280016121215918934216855602705930597114676774282569255539184546626858811601809808829706332710131672662497558264407702624368164830260298105640197484281274842124099395245590417055975805075846474054306608219676472019565131108203462170964987993178478688495717818603901663776479806583443006591480166471472129475969443357700639649191014093181918456933811536375713404263933729207762832023356415379262749716840439177081760803444965762285923761202271439715537092859942611129908509524140934524810570111889528146790873460878410291753119930109761719780179813958498943544298195202644957657439236947747334073789048213796724603446554647474997317000933336906866817894934378653536763692037197326207555102885260676032144440769060302328864221259310595201336454530104752593388351549626588506814353649702214066249660194958999178673375782206285789779731082005269757668515675105246588349298668431240540712602610786602613762352218812768817936782218120864091809331546547096386066445131360293137075701787695716150082794183481251536679418404327803107753146656341803566215899538128598354698693424395558226025905628959375437557112631963593837423101903096458187064829502234236312426927853675515630359863811501308233796225519317038542568122953181026312953240460146910263112296997630889021177622483846111464751166016747407934942017944603800296946492634007786351404418787801339684842010384560327298073771312059447287254152285924422495975407143329668719193142943849360983965891344642904925385930622167264850136195507834912131135604718575283252699183584190050456955095894960870086838083009871761206333145252157465236397145175882254945556110112151731341979305694003862995798674529273433953180653338863044837037635105550301376790585527313937448313917200219084580524020161403449828296973521615287290179817448144405184071029349834211585241298662327483655891604395430026543304030888037992353933276344013203028035050617049925093591091416186159810589824160737927983789671390336627643742967515718826184321298252155573485876422387498342221056998365374896144120362202596293530780409375397303549309132215846080980460389189731066598200380239951326330334956711211432940063419489325443628802075572905088715976446846379351763631632134617966581933429238648395553505877303577763394354577378603514332689203345904021773271910890063176727303014426928251980026676757453660793062765979548606779721255424644900711503338629114284362118585982859376436000767935599357157628785372602425932873699940060406228170171939334021650343232869841977587992612989586332524223728469214633600207650062567719930238128538867966815237246737373493536377177304949977113371498119387259793580172268412514662071381279194378909285201936802539407766483347482133437405590198099533031133541600359774232616013600753976474903554507936064380303349152996827306084217577734404031233498801281177833306085022744234828232220002149770629256221346995241078555634929912121003556563301137151048961189186527601159928416154503339070861382378542212911262711602672401651678070733582011606740642031008225888193186836781214567125055341696399342140504522883471079721210587294928622580001566116255656491310606918861460070427827066021621851218507273919571884358359692402516485908851483288404322246224577425657043016901905194477654397625027496387006114203057291912682346865496546030863731587738270427940782567993838792579580650107427086986011768946107322287077566740321051115809809914957445280743479663673040566121340394055669210579509475600894310428935641089154607261773519337093875588619402694477428148881589649210163276448982815888420386513952786555454142903150315072200897503942525768153405402897986349756241906698210299238137338315644603522546799626117761866940575342328217518605898032849585539548833681028330628641756490657401125930477710315544766169544489143871849600218075999788252158721696904357985621711307891716511143887840812720949363953048340276580786545200595878184708228314830839648597294652149337638663906915648618824951301966420074711167907209679470839345838820924751722476706615523194758115848099764687724301518646116183872374237185694213721837006039010885544356803974494425152024636285308636235615092408788981105001644296321754621383207826424890860081338103816515327369753987127346662196114630814041360093046171950062368639647213294027943494977383678496975553024461651358675026142802593297669132577242717442378925742912481587764306299302192862713054475996418930773035375850411600684746090151600284212816768065917602201143893978162658201709100948194289325766630298239938217694464537936256986474411550454123705193017735788889686069518021330560818090489555587039756169796208894376075583470659453825573619096007463796901486600707017661876170989944934204998674862923981983077819169536296220605223831122571953742692063330566752466129167203224498837185925062904443662692386199327981992151861369769252348023994709801095977398875924449765270333826864674320369069275992104268304155665800183492683010899929461390880643120250642508004245167954800380290382953807119316569582427728987608653972523415926668309059361309795912494439214806831428725504147508613736129981463018795763644076846483237000613915469544311594496567210682124136008216583609020025374373353405463063967114669755178033788969854907163148754843959473140725876056794020008578005477859638833541869914604884516401081051099732581648512267723890829935374756234252724592347790768043049623166699823660111363549838935517770138749979200113362117217252811352906843830712342945557732440851571360652086247277459305471504557606387150413631678251959907219939846642732462973290294141866916052762675900269998423911582336675411438792234667458957281013417443352626031770189594273246750809686058697527963023832086171624307009486856550807390064746140333098002966439575351714627915172817189068855326529399949489833718780826379624297806014147215590382656427922772966354957308918347076151508916510358321552361763537436121554577162496304223851516442619196701478806312674822428390431231452134311391616115257655790748577904453021646946398473740885377152070531625562249079219050023603244449824343979501234102798730314004385417736755245249639704229681690202167247739726635055141924507809673060337074748388771761702466278132164461721093219380264795103991162615278505742328157553184887589746673324923356717533176610161566458971540537834971706841614203553088245815870180169245871009992623677468043101983324058656480926351256655854888973209425262101813907486582938717429150962731960062300048030941639264066996817288880608842802975182883019531892230904878203868821866497543462501197304299636147255583946229589700115604281599293280981206169669197074699946216863785958530030888272086781755045694105330989409923273281297598588419072249484373485014898419185908316634339900693138339454639498648739166623247057903885955929833050535565042493402783406049256773888208515327473602991215171067406773971209745394835398696430530330355247466289293981901277403971745843291985428045139577358399859034203052147357727357772991166942335349296489871418885741995216078642662868556094122787302915368033019303865928166860572868601968452469400280897345072488928796819641951290018079269821436813886964110934836765547114067316315959690650253913850283493461180135131590169950549744889856871291494091547527730453513450829319056802053166860972620345122795185697780004314830737062083042197324890821799768967048524468086374859557159171487534346686566948848963909392196036584823292491704456251458526154410544316012815267169677564178986536844578595565837747725281135697318725956192283452542695541073407671051944200141580825696847052596742164796644226623233584348744576148208355414948915305992400219636403929066926406235016108777472139229795099852989012831261836481694274084498379582972900724134343832591439045252858838280326263534117986129285780930670698339979714269467560532972930686762350121498936102451902096416505592321579618551573263508020326305261653430393937753221219818606573683199050643122556164693385853869928520857197725140831117560490409855093820617834453742200358658967709963879462002743793794626467590250744349748255411213943045428953938470659711048132589260626925467931847054502036202686309540948339530628794555435571764538472462308356732824223760347454421454567155059321221524684172790089437453859446189331978439174727959733451140756120429180720076498936963367141386732730588829684281996691246586218638460067945746562781573783658915735362025397303534358605340349291925915332370437504187118201470428668315032049463523205112423484435174971491236947741075523175695133119960326145938233695729509082987087338928368133188140109423559316523590987338830166266657532546918713205282850707128182021958646384900019524009498308127719504864821539779009367277554958722578386943449827352902640905047801547880418827686972620014961584791810211218248806549552100190912129486590649857877863566478025267799302177409556227129398345260449471973802061437861690422630679695630408881410625538789644502975651512587558844024361887399285779836267438238576425606650893413264898664477315032100725562905125684371305700142752533358656041061304293147998450120846375973818826568262020937895186798668676720306260975408008575522029112994132374341671155722643275405552520215198457771638429679124998353421996599013926981830967466414713420849651693015378732617667193182783019372881196817012021107311858434696808688373215162542704224528532328332166251166462232905737836485128602840921777043526875539600455193316461419460422780573370218765614817625792127344545369534031923994397849071532344786872732550548507881775964944699416109500365736641563166239692273194781342237731428010827498695700431669966688873270238069798241672994248404951861347077372603377274642043397833674864586286809983957622637793319755036840871983899183293708593635702744249023601225887632903080825102007338483069747942528541023125216857489378564246307820320000929241913346850767146683661695269961605142022250751831948912767694854621477925122086039594970530083832627199585630613397930336173715350671517392769318340878523850160841079988593605169017896480434330428636583296163606592793827506277637594593448056819414610481136320423231589337875174557583140533268579377845453809605805321805739262824787136278589708196909424798907913856881896874849198092720606219894497470027347366733211754133232201325328963644683008460839551864385664446352620057378141291020235334329522926377970259074543989502621980303235465130701832552785750898306877396839498559872773904140477584297040121937992136586987810918596010686822201360802504383846247960324340999872705031756378188021590803509005349847789499087172430644280137085879868471849593072203843772903681411500198792228629768395183529196858915744568032425759043180770620001448765849884021626640279247049170555929767766318717144208088313435906884135080565360044526357241103423078487055248288768609504831197499352682070673577261239491556248744938420363285297270684843261770261213362499912456312492075037783048417673011289861875151430644767699608952827791339912612680500407997510399833631862765598375523286117083698423843871359234808781998269339339760362995207844220874016514491908674599494278865149956434245219157834510314217770897413164110187377004055561886960838694939939131224985600243271857137036204828351896061253335013552200164995657851942512718203724475339036214906040426593520766393106186690408608101023001871315299767271659661408547855693581182597755420910061913830217112637561642052688502899908430023975830294818815217763927759820304626557683000796191257428762470258416590412561822127840394207168169718901861818753619021987676536253928540349872441744347615737393418967175482161665526639345027740864954680912641692177318462360507825870220076369408843392000736796245391198710552230129399485353323643902388557214165290348351622827453836600921407947125866887031985250117322719622584488394274740378311553732497380047308024868203084927477326499341213134334672087140193066323246625603353425485095037628283058311481201769123054066031406838677855074150787760889658270495042763253663229420568975729270364780134482423670930511454255282081416639079011684778683821842852201770815716661910829189478146506795537087465195213180436389910440550903042624108495130232399523727647562934887567876260564422908080232074595167850750124954281541592881773596676386654949565619520775310777776558196575736298380951038275823489378662198344997256575016034071775481994004718474846191524487084443479387407004625311218645178999952039218698061768574720386189419795795219717590984460846816697940809249074889237715468422921845067690675403746172124536716143106824149847756203164739238837771681641476499412302105730644146746244887205479672707685473489711108203727761238306765074515084723589595198887712993278440950584621650571197935693140710559888266522458552417607033039919047597768711834454416290890009402825194043624780470553170172379885490102571941663481676517085922976459932072237512860874544658373638337429742215021131935108427006497704237321852007936211843162551675568726569488893903731071075994365406222310697047292303832103992126139618757764026475573699919593272903304020705707426053827654483437976607136799308072875850892553825310169441423012168050216524807549912939621061321752258492647796318428464248650978033433918612570617951986763059930841263146930263788356835734509468940540509126412726524833739346918349903324696687430956610940704590136741275047706177855241816453315012599173624316234809274895431250587951329750536138767019446023456676353232487611719824032406790793056472767820101188878809284146466523180372507164315547743049360372247076796865624800361486494084376860322476294205785765526570975225866701697652456765508513754821939038312233386290513299398825117469276806633114435618482467579400682443528612879728023709661579314866571726882420963142639708286441155584946224378891807283542850032467979603916582099009165995308003870903551603970763870756084399969723374695345950366840621592428245895730228903349110400239346175136115532875952652569501762781305246194066208704887753492305016602086781369905530788471934426495066130865019302200051283197906554555388602575830695503859197768499714825547225697777456718887405050178975489436520520169195964891516284224601204978118791248435858345614965608020788185365678406206252634041542532081037140530855907772398783692275164670527379706205136633906118662745251420756264185014767466175325794741047594603346172088760434164849287965894655228630205494616618092794783777347827054515071352214730665784230565132916177505900859811702958784665225500704266350447951764150133815309251413570666821393386325526303752845879131085144088300328887518280995431783379851629555196589437739130459170523649824364645570664254142085869947941037865902664983473186111816338470898273923126337905280800481333183073169461567961581429053496597221465622792019734722632077294998091195959199552234490963777150709771540911656873860658055614059353161546294956499926931797729672729411271639224360948469618621885650628975726928124730191161990406873080714389918554255460203371368422094215606326431535645816180649368496287561302466399987148548919124950253182270358220658400858361964813996907354530168105513052764355444705186160783459118180118960948684714809755657969825884568522601108456761426106394500181987417312741739980775185164713814980742819226030314832742773200384124404262657658360770876184592171567613875315633111380469401380279091154245100269815047831508005296480196340791039482058512628256270847329889931698440282928034792777291618732667592651576934019110526237991470055037202268969820653599992576294844719531055405179805988230816908725684219167537503821638006704123008490714254199109060215000305594200487786879299998139454972068924288933158375821459360968416924024847874046748918665701935240617315025622722439304177777562052275091813716405348515008724548320838248284068923608843006943462240152978070708486092257003482726164249440798836993614076594830096684772236462024973093311754077751481992606996209501069695330693458226546136631936716366785517492762451359704520593972704569067714930509778688402503456574663952739730007706903757059567211833868320751552948299373953525675862565860419106729343815512106255556286688354979739003303036647929449181237040333163004924838379785031924991603279598752614031872318454514316438273984752151893541554514650799923581777229178115469308017804571532102337534980252193459825994330030276108324989153816111877235273898769364785248126125567628391812725959612435135630518227123064258780816667850049652128709151155422874115369574090751119381759329452841996355595083922819499499123958498858552408541500259232350173592314010332576451282075572877135607211859799015182970244874007871700785184114612616549692278586470633294203393646777465216857449874397532829277434430272443160414879865359638837913634283328770163990926517635109839932193544038081124838359549251547959279806495277295740628178233910394673578876468289268226346193752047608980114308821508246524406575006696802172681781055954464148348484333696353304894019794258691124342100723258347502890038976880603279649947800388061101496938832369785718871940566746524411579617530851688104200953874177104362662736159816957223232500774410785665245707153518509226562105670813864144136708602850897318167424893087198931431184168767475086366101637458698980534805472597195105163437782270552357205500850821742979513707927340795747545388905978489249114831046715664145036185181633943130793708726315652569161536016338550127520661324654209538223450823895099252069971196665315761215995996163388726021645914354286801896413777250122272131811166376349257568743917809771803287208590890361021897485945075818738756955467520945482875424394167792193965912146631770842709927411442991770489496915257301215943082489699049026615883183098848626911268612649830375088548319356060630257566313308085104234678988476098942463740784979482453556092633050040403345185578020397728211545954212813770480928080100167873106057369395428554209503078455384842227963915781665374937697561791970619389342753222909498161931515599130530835201046806789387119163932450103227743064727147992700943166389396562628141369492413551331431924285079712445185025893000511269110616783198990475242902796792569555529294436263552389327909745423569831244979780118082710739202361611086326530512467848770347340476142283218144607280979853283386871551666046086716441556989865200797536428856920648004456043125575159674531203785853261823713767334452955238124619270169026238311857203962725953584369868027218864204420400342788972107353785448185835035375547508787180664823649248725713631544189698181124266876388140700588662494446722289084788389850455341594943241213894180855632911920843556029518534570873133961846062336512568777850345892072850992777600108980300870211761099439738622236531299103082394098748826081730103737135146649278711684341882435805391600957402592556770886437407666675429312380740473779334577011176308217972826824826770687046157986598556192017954345909611142543742138543113371448190474447007314253337655921340477914392812552968085238817527354195429733710973011503530549390118708813011316620341820060044151351925005604844393491204106958828808926307481709523242796232659843462519050897431011975880025281948115397418399554959543298439088792572240088860290143788885451987154359583281986778265743656502768011426917549963069967121273304221228585555988977079758757309068274141979578585335473645568252573405161123294556355621613293444142163084174860594620981134811162755668131724071053336246651614754851895986385202104935778139011798372429132549852708682581336741448290304602408687270434033133542736718770083843399956653417351985851779695070329684063604918617480693327811013211271943878331890705960067227237832265743945902086897466040744514653653821783728223649424105439053432762447682386996345873171771919980029962619980421481524597934452464493502354351281795110873029797402282676913511476288632847680812348285370549125489577802328365714796206554936920190539777721172269612678796208763110681708531110000005745029739310475151365804518147537814367819611664533679797512686567348195689292404207365928844172077338387789818007454604017975606878970962996943885048678903691053252132075641854450452962722395896738165735143134172129197929490204231975765678997735697480104255989067102217686335200689370201451566340554431673902634400602577830253367291499472353869632042108621267140110876523392944281671973827382883242846659503185665562465316414344912263229022896521327646059673187496800178475365139113386221665595376666255043095133724680647287447602149185303983344944136141396529021706923241361891710440580801407303907268475852038841851121116243021009466271135135300374731405476767062946867296656824037622742347809624771289805183367102743874917414703100440843592629718536719715567742054620633916849992472740183104293577901482352685418707343514232314136793242176516711907824792410440209173224235456711287079060296378838683933277972744983033241707994584321906296016447811223869154213900273447677818407984201418769334851999300888781511431224070002753921747291544269345813310502996293003575646995816958394673682420294199674701807175305972200268519087174188395325842225198100295712992089959034900169328979599608157308231419118793223242571762597522257209442109060358808043670751253961919079668517924062724195597143275886948219467500801148367068318602273872239042947906145272685154339411034239332591380641218107292257775321604462884304461513349704176014976667663865692555143474930803696015697383458112174826827129365213868496085817261045494982933365830545116917798150041379989241060403415959789952011079811298333390875980973456208704988693482002400941692481438068301236344044316868603488646927201990004346680309031454396163136472784043564593604022922831023882471839091369413911126369206471517815684159253236220965409983991341226398382933702221020419134026433312535002092323926704076068138763880195692416418082317929304859429359971435268340796444638312711132267404301006412592776361855004300108412871418648625489367277079939887289300264563935927395772638957022233623995351937694479591904325517163112250385185760079224992761397917463530472656963494603615766638204882825414141425616989219651199028439524038661500825915862060577205091756619389930142699072109826323435977111676857746276125990916402942971728472057009616926695299169801436944763814205065476800995415844771134173094261342753885796090533670626396862865659691328685940632417279315473808037302977449947894477711124196424194891479310829194009176559088257928315668318870111523895675123980773527195275147701180578022487277578996345605302212485944308173139572938128962229318623701952760752834789206330085182699853142431979609212992886086419790380074437254430910271347529275990879506867799023239924634609297317962024830668662088181527404128122834745647864702789455275691953941744385657852731551552959780938743872426458040899747071861764992042183057404661730571011107195487779622757004098857719950653173619554864482229498908901710687249936906525956614201504349188486269867150999095990211354547695884693656010081225576251196280465927526772444571407770366531858104646154676088175972330920035709146599998982958575032679412216139094654866719267708625754973977671086437937871425835479883809332036121746672725401559212018066361367518241803501983751025858304101304579087999172181381412234432610628153948686876320807272163226130061069984846523072621940107407938071079741519030659438661084542906788291763409948367238968759755258826559314230678942069029372101621543296307131306199584831885283293152406582425221611612602570579944712727835044681818656685292094307236619645731909079897491031004846839443971980127545166427781464047844008484755715908569512491961394443501675993122682177164802406749084401736505817787788505210075447489996651370046484210370919114371995336737283550348956599172098836689651378446588953459757497499687912568239860127915517811949643249011095943711232680008225577604221160134415974217836594072054358775048391862245920439686445160009778429425336761838971360481823947690004669356075983405324816261160812958227483863611880140884348931298974084146432708781135872444188386617613490574458735244217611247960468223069583059501320575957008443280246485739878243934281841430436639453930350009857886931578155085382933697254242789988416683038515315485958608858614875738715606136412013582390045605175891030060150798308658504196370841123864438587950887700375285872530490731130972464573114804339357502205897079142939483242700022593914648953202611585134617132433160567926139729634911877390411191334547603366437396493912447772340320705480938694189952310837089945621894968958697047394569205858077317802244612224369038811568803178574549530497268378469618413775308971125254325995276737925674518122909880745752701914961460286575310779148278342437602401625825045660912588266176999721480858394754749985805457822581143002445496314812722836230933570380934182095033554075224408972063268791554822302845401133857491017577696797604117924892557448645226361160762645796817023527716145156550507290664396882617041590639396552316731867187828397232384997150566723486570059321769951345105911162406575209803881566259503342996320834486791633797711998302962696694836206806441557344981982786831858489358458483931536833684263038995756649168805820988963031157178261570640681332748029502409970208322690570780665153908557630915913347725454466168071938369095119742240421481570191982975398668807260774946890843074317511445646308473475535116414475845655996579558673655673455727194543726146413205183037635974612708078386330193450103235241145242673337910952050424390665298535107339897411759223624903683144319932117812298335935270367911611896884507605591497382192170652397700169625936717543586330926009146898620700263915825618904925962858116082041271062012076805744445723741040940815693045176535942558449830938779096326149833162879105500958039777055536916142319178151200473412651617580559805599193272270522048223092804451626475823174512647397601125343684804487333401128406625146931131490666792267833955516092253020026909377990198502749100015532340624157326586106656406720478994584996743072910598186835307740526779899737044007960779432620257061091488868831651823451835963979756833230365363466164731310797712492489355740030969656644544054745878498344231769435425538219504367849235424158331894322714198003918598560285725925815986138801910411750809733626348100402712065594317997982021052760606579673925501829784610106938482136515392787892210105012812079014898790991651130518551047911725030078909274798389983136928083879115132520835415368233309864622798196782247300576084780839592545621345417127958867546868055601846788482712351803945348097013725628366224602169538188319307041185535452441360856462943266805592466459419820613304215968646496851313433118014182528696764173857126691489137722364824989191123723827979975522511581221913413654654400907182998406956230786761983557221546094020327819245273823466799180749608721901379485730546668403263788246984144182218990467976651089714247243585940721763929218802019415357014506465999999077490385440477364425940032256163349287274614854646063981533355527241391783927258659539444998551512857774558956609237593755021666938073244368351259280643719092529740006652481472640576340058466168470130110594557253145621589906295371308854736005469941768663841946434529300202716198930612501679276379277223019199957650199477302786706066219605885933336701069584962482373494869414693120261119279468306957280734819315645816394949170475937105721497927960205914060313220853422422613222937875402927257508453361835791905935168629806562839116140474636391242482098774417071564292488565123034222015280375958933012973083848459941759584856482885884953602094904123133510147866104525737932042064525561560584784661634698147098541353274977215671494523659595125536699933767998460067533575908271402456102544508277649686203270683579835764159709987846030738540172723417308293346586279595259351147907671611449625748012892246484971006600935351958186052809381366674918456803950707329877994763067680952291552929219204757943971679363423623710890982179705431767103323200614989520018529369678258653386334980822912595219267375542240015597772872575672661324397500872679692073580910575307380138657385091666591985024445189139661886952710712682803952237273373468271000961939487821839123003134740657257692993242900286380716514652483552869632148379622149664652130116414987451077131216866637335574348579592051853868722807335495767325862985533032818487167032806685689845393156588875398085865636718255636367063686821442632079505834554635826620639313019661312954931593886827687080479393035065243855858347794375686945388461254729569943314581622174524867637811097834872234109694897913913059578255299060273657568597336373861518973647335884537440379990546182820114222584607126043031066258975618442199018793347379493915941284210393112479993731268362080570367583673202638894004450586769295051795906558454703273740077493511107399861778233611366257238884836858907995362296899805736050998360459032820682135668858905328766140171400303294017854427893320335747325463256221239141913199921174333895819078062832392987582151916793541898539693943625741884300628039908974617622605663716648863539880732830180929727829515825555473463068240718785947064555454686766805292146384792395875139357978559694325748393551903274494084918336723931489304756617788681275855119659668329871665338037960297009595653534840240528511322543515678199383218387253924654012985974194303775786113304172076511045079754091569335100704230924228554849946634165345353676595856412276105706946638848706941724962128931885681881454991797456679924720853810154925881375269380597057764704913478802095233883532543620795904550538671522400251690891966911833165694998406486518476489323082225595593954849493811767807945802828218100132416307946598453140823506598330894821690720574866496280412180490064373371966902159240703878957470781159852941044170136775917272656310864540354772613194139496221792231078246998319012398752709509678008763564485152714794818656025902386353003554175598028093135484721892728749939471659268432617973475297759371732156893525224739248437447951079996576187290130412299352316749801043081236234980270700385412366933684272640369526571170878323390279499396247283948319003686089096244504211149985838475890403852965724238005024074044050557401211772220558642414786979011429663231253575868960932782952838356360752054559507410595586566368158567409634236609752607813417914704609071842444115389677478072509287649145950279492516018890257920012441021850112003479469926619659281395568514511595549201930503124224371378436739581477029383103068293135806338595281683996318219083850595980971154204016887032246076429729666669540288995204072609787119832812891335595687782884983148684395564820492289001252011613047566798181309856084757720070117155366066833629807833112124387202794797958500059521427785763287624933414483509309634189991971023224912505294006577562576538610302731688058245661698035378034907555766503850884636142794055078996034946344928548198597800382239230028355037215682454708530383356679439062546768932411386651245793134294151977970056602008719546881545457435704193047251156096664905435397934423489263654964384164551718244192083560785295326092937268915191303206611775321797915224792030443080802837071996002386992182233701336996912873530689988802490114104401202628186399596841084316185543479558114640751342305503236385819964974723042314723476633616739941725824220077154242275431604981630924584894626202020731048857298345940499564788138359802192864615921939191027940355255212209666987712305167536564051188970422388801801643560537810950965819562009672827159207694398392006657065165992400176668332033227128724233132970337163005757164453663971661454779576360518594809100561232342979292106802581633880480944687919899025775181936927416632280940436951993475261053444725635251605120589890455256117604460912833138973746633580441669601295365411366030692674620653190963523112472022259783350858236723329326544394746014227574471328030801377869263112677694655337524981024727015119532399433701151062908990135819968250835871420883051133150632838896491459421323947026826536539492605013186289904474047147715190879451261729016368089101343699167936605361431525386927949904385169734410890843560744188117479632902723558032600344221699694642053880262621213909275610857444143567005507778213399475309721975222326672366796965656060094816112045390564657622094049732723379462262623203272664456175599113879402971938108338601358776895924114744818623078249547615433872557415857027738645954178820623514828229236278235405972529141674295616909408357489806626570944929526168500418088851641916738131775599842866340675070285036090827922818704277206369674847090315064895211242780051442727234846676980358754031907172351329272011721873320585418773854753672375040722240933404921392829820229358297307677836933685210230420681437695353592958874848784657660934300369828768709109224140309252807221986082650588142263283302327884104040816821126908259517779750106675596232511600988034451769308763581314690554907355251884198046702233984444128845511176891635917715665822343942078164984884546270511211819214807915586755292319210648734808591625763715180320826699282678473238425010577615674814143802393454934900272841818549119348896519552648573294368293620346572084861786012068816866483567211442725200943410835631555510311456676300460905664811668968779707151459037755623598117052078305198069059419341327674800127346780798377534591293410381654598445847068021670536055813402125859580308077936807534254476140557367872381132934337308833994498753180156708006612252232697287385356394733898699306735277789167686438116727077889806884207023184179174603176008619322942077952709686407306266337539099578926490444978527013433237883455697647325091357049601118109616409684196564685744493810414208552089682180448083955835976237373624012658086058865318942545089434223258396573331595000620709460404795083344177866964488504550487218395770390432122339415042239352904395559872487125423683228195616068658033566874391366399162055569164701838185911632333787089853112038011561351259046133190849086023353840653670762447807796416631176141167113766556564248422842187738429965255072585391698138684800178901909991777159739882088560318634883932105420323474627407127087162193140200549109405063056056261132084958209525967373503366806199042999152674365173187817196760025333785043308069639413260847435870313624104921077466648591611444542814554934547420049877939791210844748871829117708406645610044499830884775048182540090546911357585943411021165821965361674399546194819801829854556736441731933269460237596003236004085852273789953109714555866089270277480091346898293284976198728455621411633681573734249926817015056441426604864017363200926935514908694261987268162831197766802679873884987273457777208458305811781632546883237525824652549780073480674317817136998133275920719045189879947058208381641954522056289864390398872351317388315771733763697210131782994803799328423306377069237962928382366161794677621735628148276448979653212121927598671150420651068307952833645549188875295928104903574995429568463983959912706580675387498122908996848655758514041696450737138811961879458650487056425375775770919211976797684668691327551272970691836508010290045477895176899389497685410112875346386470025849323100675106479563354444839699835498512157675917058973134214750667851050696261837908407064804708947437811963107572232651013921377013957208650186619964138457644056826387855211300018333893596557283378990823308036065769629216062052246561828201651732510061568168661207983493883041284026924906951140509595404343418476665787585892509632613209293676855599391701298112619313154815474566010169332520751935733569454572104082454216155968660145926559987820545646734381641454122965200017850485850799979013312438108429500116696660050800699974873091276595915486052800785506670348762585813164735931063956285048214748496968291903648162081164376383912381177339273389281848393559517782662364082531847191800883087898346208624759269402594910712949132570925390306829865239026145248850889343431705840764701913359302495257316968194868374480213789964394152469015539395484798851360787067962786908244459299905342145660419177856458490311748728179702125290370651613579423866080515467437213384687650136006273119472923777628878976792263557134664788445535577934665082233338723858428371250855539905000860660254508625938491442861680913279003452828783678869552669493409577685970529667888345314391569625748711875613103448897684072416657616346457416390820517083792047718980403122404541800329775307896501579274184642523880912637330381409955826720194967191526859634789908132366682843147944319321663205515019695302513501539179681204566831272525358971681427614445280771769405289129849218216776151601616239590024759874760046985276515509791282183149959207102126520742316474675093204194771981050475695017707852057767681120621195290980324319596213558732818957131829285221963012192316751681748635135269222714227013445779649772182605205541610001638424504294676627567194867963810823215982506205109994291544048472104782784205025855555137647518250425925111575512315147359997012746817270073906398320813791355137784635978254347550090489709746462972217878369182840155728211940937404521958887846645180494078362568513012762831246757652302925936590860374870603566427694374506549559460684491704268609758957605223834558343333417009134935107561527052559963443651525842740701572584745406387182429682642915811466378538819063251170032609090626347071151250626639252099326060666341468941111040865543278395073088868114475731946569318475882273685683813459762537003021806479354458367198004372790393945712072626472933541127432305133927510159333607635307603499819363673611838873555941088311508836167925888466997652348744175323103872632728985810576586936666221630098098211126447914079288236649811890997431323690484668602575393860078292367047265000085404874118049853756007821664260870858255063544465554693420809019772282088460178081779813263267442130317916887045812563059456801381493207807881182695312161328240107481572446833384134484038730920681716737124189964775403598675195794377317398066769578420843104871246884218103191825393547786266254794812258463225506547920063366593409321555335524709522092441438573923209935445368572646758824783844459795651443167960862689232502726106523358813088200727478214181942965884425780493603884089670993731408221414020394312432990328128247824603875475795793088281375714494877190979370100944031747128673100790173253077643753384846560808112619680934937608141132030016246553030011862315900625781402435035096007818958255266212819316452088395733879611093809247974840642811508723872680585087104286451479491117886294228144371287629625340198805624294012943410337503780993843234114261834909948720503043718352818516431412063504823182785323962549874743050891448032248385576253937757687885304018604991028818823896788143794426506139867652035930700277166182811058667022021161102242984876009446498072924256579948796527018572544882787146730712873308754122877348088600202802024363773473577830463769097808795872472005722383680430676464082426458515723802619391382071449877351420391528677781198734332993674430354116540111417755081428289141628788035495404167993298309846466116393683857265070371690750691808332955520204898152318448502521773854634872353610939799842586091654057222663130627723122313025947636476744538986679350264318708243600268777687158846294848891783307684648029073371477666287553191079783422129355876064941296096173788240787569689767236217595945325484705259211403812442950710134768254884884311076262373633628633936791064534721767453723625718032308761616764110798519354299791045779770104005078258614118748827912757404816420079610517905684057495346585001976598290988376466632689492430872097766915247152136714538994540830142128933468651504929562477672809452937896847616563556404426052145213585744809918126368483833982128693916104944609130665721466601149552526537715232863202706485740561782515654567760187868177266632330974880730450586145404021650062192874267385340952904451253375560574789594149535029104260777712296155330799372500523748721314902229149180566789216221081898518350830615137658066091782127379730685171923356085072702031750479139836460444874783596028220782747598390357286394551860938240137702476185269093583859952581754207464489233634609125402286462658689367195010848954638373292651563297858564957218264794479417371906813383188100529367796204743810290981186619771505615692029979410269049348829285949911689689151353422964333643407361639946200010215699640347745733073383032383752335785798533519303392595037003353401125947641534244179466488579028092163335763333355830679859482325957615605402735293675885327374938605385078508481107435030417384310877730446098631123330411907078737686115687502243694651537208155947734281137402266813663237425682804901409521322991345815537289793812050221402191912682964703546863635290999849882548780955694373478337944358116103452477079753420632147102215068207371224757746910543741586141316153256318812442649043653739192568495230878597415931878375689388883836479926345469153116842180121401472723014658971809369331910546052804515561965857394587077683415248631119044552860840504359224341859711929642790465162243232995636741697335871223652449735875265483418389604363011262072926112249284194501599704691522384296233783736353641357321836874767608803678689414326946919082080455929463186188230460047718519595018944578226720581898784009695053922501435393353520698403942929635111138114802859498959678815709325884217710583588285008491629715860146605194549516681360059206877940178259729626576208410388949054932704000234493778409717696782636138101510142376412603319583537151116379129248560019423009922928022939423131067583005257646163533240733836012572312592067772981306844970758759394045007459776373002869412566061990651929084807664017092552711434452639813285567292412229351399414346482067922502458876667157805732749200155870516970902480266455201016698208947579536502168551425472968256536101039158370021545727111853706354373717605728825670057695567886949537467613716640631921014396110397538100976286263116216195261809043436284468396120781199792326320065471640778415307953232815295726747961183363309557427424643378765677552953186087452605804456520884963278445370400370567457790833513744161943536145097683262305927938206213230732677385186726959120943281035156679216179325888786538053734997007480823150896636076637325602624581517081491249608978281726382470732699004987802666828644608570344627450063458807832061411781633370428412410547003104019436045190190085330568808464732245807092400206083001589480424299711184271017717252101106729157327113287829788918194065029242633554307922256931629338838358751565801602973057848981583490609053218769362848802840676397473268562692835862195832977954081572881279353064258117637521419063199074342190468315659693805840206151654875335224853346520016432703680621974867804593534390404461523054329568819597936371172322167368571908658179512126113538412299170676186821229581566785185233917159461252733126854534632361499264174064424578244434415295018585886011807954694134776982284153507814527002137501241526333835929205298201218072141644905853399180675741772593026387596042155619205743205400821682067839773538877884563032127264666759676957322192127486104622652092678669432006435619080891120571255712285447412350567086801213931420349404032658031352220533171628484288909298131849383943944642896975213865184989693912102253882458937904164140847669593760302586067304868079113249994196899773661505240792534478438190446099368238555776091408289888400041828119617777367863419875398545377874442517967913574971433695093328533423342039026722432000917740580747902253021637645480506553836532417560683053478383349650854687569125276557488828118308810004317649687901564798734867112481020542601068352761673288621166722640869798046240043239835221025160136021883462147042690223960020007489182309541844983448149733331460751028572281258877162098393375041259056536022864087002153207439674410254707817748803066918920488739721760313051100644737493552533720938013263488207750297378221465361674289753785019911929406054419066042293820248622094736759807795272101548152007606056743398445063221321984383784460318294052109740330981213248597493006150993352045494316674619862440915724165632062587880608790511050993386809892068278088525297052560778962717493174027412624085901841518973508584413795670692082866227448098071885623442676783978606599593439502482800784613464546330875722210289566258699869954265700378173321366766871675070558091820814581042703112787597769851712706636898862372778684161038259998631569732935046853901862776605953250666968228466702150653541441539922508099962786276021287469117170219700528300905919929543344217026888400757724717933662488030561967228140459000774147327579056487569640083614511210837423489358827937111853707521218745051488192257473502090820055715114752388445344743892962883331977827040185074777950351755169961029092718531380851122658711989434281475098669125592007886317062704762432132293502619968181530446463938052051886370240621866420938436000849148829100589982032450357826481207966053834189240934603118021320555801998154790675802512322913749845820839456764076827784047960563852852321132177637980173043096973739489267229924508715456628158915630486234952570477041771073638699124729141838821714577509777899020934710117446792074136626362805035520599504703672887317147588786545748473930531460470501384561779815931395310646707709564725134533423805610591305313304234493765323867716092770441569192362532141583270847481171286686837095387858013093307562482759482952994740696976958246830581262283857915119886697870576055142918579964536289442183253505807382123134871103479603420781526120523747199223626956751368517699950731287244786020528047495546227598138354224089668183015526415256828705701711232564144475547783119986844339618512927852448945070630964808252778441424985227596530496293186281844707319722334384253322753812029984110373555943217716398838008039978422642773672232971598550701960452471193882311346731821072812640009841038541622508989646574847388854978110453197874518303838230506601135863921282983470757304924791892786418688182568816479309602635485576629211207457761475221469158891746263215150609189558893764619379305308211963997032586958382062524653811258860855241895276270666370016980786530664760050815729661988680317975952857763504944919682154891521091525609316815206086270815117199261424981248098743156564087709822791471843752828794077051125567014429002365138328970174101244462040196967074578093276503949480686707616772998499895430038895304998917149423721296996253591004168942338058358305703150252775989237963992538534754919269045626634520618194347222793913301621049148707383253393845430965213236955078194117379659585264826328481345566506950821103099403407161247362300136663577989849894331724579205845693160343139061279795638173143376806857313566725634198283304351754903923640521591609081195845895818432930884276554277973717994016754883101607538834336034246888366596417549144762359292291915955017483715986788875315208331448294350408929083466445800497577990163623976614836044325995476207906138942037322159351370901684409473727331154125457461648611135501717766837231366703010611063268729601164101575032007512217087604192490543086744140807044633530741509714318709209354605634341310109824969933342882180005138811719462347473340988775981023872822110633399702636752335993789832253255522575194858841979331445977528469648370885465397048752481085330277219056252025537668780639405962735115823346549306304599483510067208675012292987995784723192681030462446714373380153966084549246987181496316343865657352115604328191777430930295569349574948174823135198648766372672508092036798912775399285841601567438013791436664522037200706024778423491789152348206213671575446516091181864640860269919160413003379191450990322348159750188854896836926833889332368195409461331473567915767970873880613484803449683220511012035753093305778502987338893385250592881027077509801450889158060750207237619356282058654027305635399041946000668883011904519732463722046602028196063735627702172857992442426873062152699709612278501665819155354419822141087716425499190823026709657049004122960053699533203926499675395420395476546383686233753375329195410872386185915872333175749166763445679781445966920008710203050920563348214654114780671987415787554875778768600577049535115515149973364333277185919140813404271775842317623398162565175272504042661406969431508551095908446576445509881547294114914970297358017056765449329453919554087341752652590995973018807313896755041620190711318055685313670263676707861605323242463365156150995033392357174825469656948735163722902583627184406904108607151695524936868140221227373935430118912569098430049279432063613305187067957279883994059556964305675536890429342312179228166391969390882075736441171708769935798431967034296179925067983983706405964439026043269288804218775344145123415127646905572178383733686933993506074413199550925977282098666442402383630597981088300561428540803130427546664152870530558116419548071133972782000252977172154676150395596066084369063628819278017420288728637982812577084642549210386427653637769459532838511055085458435705191729386864546075623182152881464691826460048179539252084809007722041403078784160417538267189627777731336047342264378594732497339012030465336700624613517337074837511608451097969647265496762813441257114329827847127734687817110298237442839540277461292786963944001044486870447837570560208292456641507308588973453047218601517523856794688575849336459903748749529544662500143807876942596520314089861565856813698633059387548183864858864482820616633846993107838668848276328569192374079645516560172773523078065936535430022194453965053314089079463972623612805213771755969148967454141314486620725234149850922888655524262543895067137337302912878831958619585542789258887033780048068072315114282925594996498227044095441035029482306067000452667979057507611268068765202641420190693293431565341182623111950239122392586884019587183590750167504260172729087665565207765893391448215928529939453504160548089274048086579713643456910863280066066699021347080775829227656894057463543620854249045125865324249009280676688145354871914151231832616066793660604336146105052935047350481234120398268962283626588584106841052928822851618841232896571575828521926692578993278019922318834197951785413478552706713683125102525538318863290875364347500199904632280515101209241773408777054743031472180231723124134666138402140042294876434888069728602185078399310613544498966754170610036858753125264590571774485769504955748978929494954264944327141406702764380616149663759419416139522050303225158268551023741447232724853588198320766617052693925642622080086775519588765912510258907336002897403569344037940403072428298351351766944690281546795935737022325927057555318567586778818703698738219906166683368272994222917573786551080126806792271531331472709282835416155359793671996180702447635053640762593302908968882090476935141115957728689611421981751361553831792740552343676262361938623241710022856472513100599497477909203481884722869295767309546902308592970510806802463743993022346918286519121770529090338006029462082682189843472570517240009623484087792474805319809900528632786460954522269374559798953591438245301508517445881894702659184108500488717270182620012525872037007964607989195764138889510882453998579394496834992527885295181317852508977458382554264749296306727123842111326350269251738247727196957554693758959358483989265274847283881151272644412931428350191007133264265701236777331688937155653427237277291152654371601319067550447555109328262802550950518222940720025457727959439643243857299908998119369153767798570705879208671666545869811702356097673376817141174421820344995939180378135561784614468134344270810263575637830529806443850144634342742602746597303202516275659835195364219450329542172949627784849395271570375210020365901662106605975747350497712738513370453756325794434442506643309989626712825744518598451986160259797279929594904094874892056320787139128440187415821153280916554553879089206752900204375854001393804245596920369119197319869238480248827209909261401613975279830326229003058665647027634993222800776164724513636311155052384574986912815773000528203380665920846244380051273966747140872645985085986396281090530188191562468608639315071943753650143267691798397521630074536851684985518523107251207403927768790018085220571528798571466663670344407987023465006866141162962407768346653451577892162958206744180847596197301559236574329000675670818555244935881680304751719950895972356606252195349809139250854305516141510067889675249652468501118681406778103843304423108485955589278453176620396828656328313043145136304755912936859731698082343308152606092232672590586066084357986628036619637950462468329887400776145809792640496215126775870167050777883836166238518207760583368482555087361788099280982672456846950392584836929017185626427975737079498698492062575333059021259051689281719288798627669974584268229507322318313717885406963685669726140310031520501665065265446831670719758422350058836316654237222936937427490818734948225154153755114312849742458279312061072040050559461845644972249436994125616574108454368038311087003786808515416933695466470818189609024660653082609579238647891446023755563781969993175849156554095359591726699694327377542417662154518470204230557665870755071454986689578070553647940559701016322005424960398121548378462604009894547257972895680530595632453417220216401982297004750629624520431793305933530175671973156173486059290463181391247931922131220823869507187015732129149500137510717526474134456779298621092529078907062944990543852062713890109454071366025950456409523697236267087019386414432094362981096753716342421964460513429284002898907476305275843141867932911044468322164077069224654765088524182559644647924988547112641372362990067149217291056571007933317488138912709226542230691331767151777195856727312608589965360818153680165016435758095079223846377727729743277008373591632357498697892147212363073041695123454357692434300339690065979204160429847364579834544921540893495510488997067249953542764960713267254021462070997142247081436745411363537438451458260293429563544591819280697800271064153784722782637965297576779434585067885937501383320526892103333448010583520866813340481315315107282201353387954795165505370849505204929114188580024051331543649313065192000262573937483876913259242865340132111342638608766269101663940274564402314219953801946366368843099762713261217300041144698850852840817094686181269950438271843261904632884102876043763071997674651006092493545702596973441330371071864475065444394841216979841473007222463559524283933700038815160308792905866741298248826770268944433334273955388871314498382333991893324451033014467964900219275135513383160813351894147383166626168414244721847435076671442385255925160745373284019912211426072247586381575860706225202407019732298217143993484487499722412095390000627013608450699494913159271588249193429183714620272854482167691667468029247357661839447055117940248075817413053626121942529653450629576399188436936364102857468444586093117388804925789639509470461715688113783784117291333875213493444238289171656987295841161950722531699984334746834262820246083946508220368814048142771726917182596018758993690260540320315769108099240458604115166500363868262010722037527104318407380931009895941032983034179452387585182074665458159261524531136820990154788442787502950217494720027770165964790392513910010261622485926945633184974034335850316671794050971100873778572990417589527893172056850031493487418645495366702850250168970543131563212212347747920861306547038633210578735892743771946777574612395315519798457232786413069093419942309718330968116250327773896832474723870259091718218827195630804681863483568105694818848532301376054077436144240292826556053364166174610473632124992536651837718025280670926879812795969998199124999172185481619709445612460250693801033766812885652149480698525024812539932027958714010475957061050702714065490509657836361160890000323024728361309152523485508158650092666324638914023947992838735632427986695338252472374676017932677569313634818000101651271267577512771503583470966670575597602321893452453970811849445185997990201708252810363680481886238512934528354346607566788833194266275380730460935293798984854912937538753079003842438891389016731829020118674904600324721111140112505921248549818041588187450998536328675312098001202723017790499048158166391908537442188371302043485575892735771322671167151309385208422816967533722674518848530093887289013989634478844023405951243309763354174707401258459689153664131798768864418727316150972394369607350037077919855563673181483689727533383247035360884030235891189001511613607588381891687205705541410632469069706442544458043316614872940701990807628644419621716765449489532159901741603045522791987314829673856261018582642775730090166387676363239137701713273023846055940238992753654028717011345346320107024354180452733269911116862952387919114077545408240061818147994870173015926810109386562318935634818386975694954409209207913373859590870942584840332791226151999036832285043254636598194359636068760358859226589633487751447871307157082556972078610217740900836186403746914857279844970495410239305329593631733700240109619485267330383309622685613819423288159104834432866509239055732417513789469559711649348660351786051070220980531320603641955339033192396420238103281924381513268469264813353290716546540209617383295162333697084943494814512690789425153223565789743005363802113854606904868999099160410541040724887741900887511741020867583100592081472025411537277469192836644829368290713922676698785926155815616198918385301960045077722037714198381177919803347344376749238395162392260074214398118267791851693996015849368485164751140885707642037212863520637217564482329232324099402815276217595385327822546488407998485587206320272649478704041558175898430873023841943498133425213861483402047474183691649123053090957869573961054376846955721664010403905723177594023008829289562973997815856036592334123483672461480499779070840725877754430895987362807047281520086668666281348017461282008064920585678724539484858097928077479366468700284881590442287852942462822946106818779064881455740104560582437510654738064709657739300678096292480647747300591083280588738315990215789025231596849299848443152343497097282818887432077025876115584216472891837616545232187291263309948912339257766551870735921109954887962983438848873366833841915548020766501880995385102755755775944466600908712595189578422754664120350679755748191706293485838437556762624218739212817196115897510877411266326549426982847552350334247616954545905964687947377048841765873946155798342233840266114746761162379555203312602453022782940288567590914859699321344667747588233753221167890996536184587249784634284736068403628463228718742468065849108715242231201200450885720715035076941432296429385958486680132200644337995593528623354685835249986621303816454459344218299856134909915617117156093957788377176812969860671262049100574739643640091847323654496155525324779012282384661597023780582913825060288787707689546020310476065263683449164063251174129476737076288031739623786426466188668959298049123870017496136075509711485154562175131572922868174433303112856436489911831592243497961024963460392079614132412359078456946649272408723644690848036039731807007913574326870662358077500403840156923548650811652216606337406831337904094193393004381890040011911647411336578254980312302638324390483715668702407976674626226654445789396555527818368184059561435088290542645446812790915799807522583808650377952556113490895293962643275219415266015833914125617839810270106736998656336302493682420807095288253950781071145648581303965293490112779052636153130267253455463379542736491946744710943840078747208311006223274929486994709187066702912848520104130135057987778773301867395297544164628530653969555393987209294809605245147351958870929970865610198229083302630012794020288084434686524351615741935001012725643105544641691290826810392666100641500092987201690668485798686473811416925755483886663349764296296892102271036753116385116764305452016004466600918699990127997996049978201926564704704943493340142519803653987616161044187299218941108071404716585482363019566433181271781545988423489866850496599767056364364456588110304817266868948155455509606123401402166212536406593911701395912274137249260124161213093054972820917223500792213980358068581184463659220727031608852596302512978669279693459852055793497180080830996642520394165828718961535037788521246620513612647193117298349681385190075697418307398455025071822469498323414709642266459986123743095645689588823286428755203383870331353823336684584320363081890758007655683525068022838369569234007904429381353522695651709356029530005736787579698427151774666420820218151813395160573514623999158948341232400163061695515193732116174847604011483922346707232149273215784692172060026291063600081152109904081038061468802816870434286194767344994176524136075821497347313172065267210001803195113385047487806230721465436097305937802414237991768397649135318334764145123240195189013681212148818253169537872370165518951821826448393504954422356520338451049828081313108241335434035127894186216733328932222221114516715664787452193288032833907685893386608112965938665988903370718912370221274786410738052642059554144346744216473914195705343050469738015112141033541566718315425173316392392472880611990234288021561775531203632805365973377539707191700999633513110279574651417129588563603060506812199563952439219759572204004279441317874444235968168306890823054610484895110560596976200286847872729624957555295031907269396823587288297345224215302316991644212497322405272374064678710276283264128701136141568250057627875308046050926868152865875952383754989158574965360720808620454841680888687309183054211786010918268199629574810741283801242264988833320842637960236639845640367962801438671239409344642730449003663766916959026144641849164221193549038395521687056239205773307754857338277786698401456689698072525632660842608708166615115237363491504366726398181671645610591509326640619116489807366025236280527106475630940783881404193864575921994836005542602746022325637598364226993677645730842908980737859194557907320937287767393738537172583249861080855067678223514177207279021530780369398121871466415159100568269499555505180331328737353299161028005261712255556228231336640027887755105524215043230703323845276981653463150218528403878830246992080108535372674952042273527899937748848224315617647853895177587380592809376421287966450078267089529217491593576805999955329534641683199561481178470789657093828561693807724495219418837090280783260879586409088223679942472495668180385776212198047402522466639295139159699391845761340468552291781383728531188685744421784965712267093887186039175598320114688664195766288519289716470895875252264766920384824777271742160937734636676485585436047773698927921170500844528827931469815508770744989172606284233429953785196472646841290937231710716834273818213646378256400749815011910682468656100510844022979550998448529059980333472088589080282779076372229693598200709101553982709181334160721121010345872042439859880938544328632378380253926594958601354075145394268515401208950915092956961702017242888459141469443565040852442493433818438800796794649392173940107562776638521147039731916630480487802317393751663215077845095488484939530144957483387094131680646240340672274746586037637563397327859372542971489794530374260346494838973921167429373599476661744275002373241281555743613008470147802890262480505247779199220484528889763675802056695859617423102442492082116306257267962065580812039988250600802727718736849767143383037224855994170035237632977257714744951245123877913753438659735425286037664336170179061804599475467616282656746163181809623995255572842274783535785272871277214878703229355142331884797158147846909249279538377944319302044955112796844968825187354364814840190718515950221271360753735238833199133158164159266875059551303034624051636083725152309168656938576874324429611940103775307231325956085815231985651437670052659570850242178400792204285487583801815085965524585357062709983160189150639017598601710771002674731925750867786474236388292408611969167039885814334703883661997528159660820138026200272625347843216382543305592862662073436492496439947601242299737086380220883995500503560061050486387811683314423932979152343212444901254992980824333929727676256890040685886316142347606918920643953416663014670199651191076429161757916577588625407748154205707570579974047308774996049232442126572236677091984477489186516339388424483947391923296949880210120304805560826252689147992504654890890541633446593274985359788579523409351694349981637154217996664094385079382658388180283513924132401696239803461874965216577014151964332983485624802167788635537302458132169104696865808828223118614703975837645356621577409820702950271573149997397043277018809695392351161912055684837167000269062251666010639473321636303021229998744654149609164720900823013206079091400274475259268611842271720010684921002092126253106860651501801762660415427008732176631109858296019154049850025422798473662992368872518477355934275178389310876450642960819163001023924977910745381673532018545263834087916028450622087703822545279101164791921204616468118019475087014934337168015391373298115341813058812257712793489234826336045498325444089432049203095620432088930571380508912335344941277118874114184783332016129338891788615213332597711870815172449191155365573915541143335135301136874592842653531005697857244253288839269884933636306605725034900399185336391114390944361160702910790669541870231804867299247737594657577372698540985307543959719938095007438918125447898156252046319356942658559041159404548166342382748653112412245449001837042114652685581407628402668971592480862983434935820393402722479526384413834460101484696153498353226020445243295422878821348749941971487359276637130525170432363284977559300433106902981985069314484606168692746013247652625804860495423420645054453399743299142657300437937588072506961184560430815592194045030896537612752180789885465808888776112076814685861247845872672518736283499813670448642026773684648155594175201094608536942381095322746895337724130637320087474290962179119883934327833984050344036026821257998263462559527299983774587369666299744790905055327340866989110465814512082583607099618463611431133403851955857561044477541650134271522860004409048002388368799385700305619037043249385067927199799096420331416763506137433156305422313808149110622948328162995852874148271349021474542806018125615484804975198957387575026365606227231699434749699044483086747020310041923041768532819289228982395313045004397487600778258049936216312115620308501809670370218052137407034958041267620277595381840282430793911891360066221536484428218858157999777096810021935838446551970721409349557940598719006630843477412351627816011554053330520602411616034433740477350810384299894667015746866631966319641070988433259291748207441493319189074866029947853566272622602608338836317117343366723230027608810000141688177249075963929537355991579150792871080986755914331615998365201246974986876523715187651374075340135744586345260521340122977803131628893405267178985874047159782724012811543391858448407860012687724894354824134195782072339044605215492457429085517987537941887716499509309726196909765153592274964609178202804281604163253114440391068866771140141583146769563931527719855608027164790261244924732565874943713761983643241747826074603870952003827111174970388921135670786062762913062481829625142258769338883333826806613845525537957122948770554486264564307604532498147012936828930325425046943666146737705923780005734446217144205993544859555615710490041022766322840357129984024139657236174840306333891987340225460147129116264279873574361015016946359352401607101268824945774027515444547277936618196657287797129097862327804614777676447305116825763371749032972935756432106499928026054115579673830123472561474922360563179211989154823986225865857784346699212892295369702645904487069033216750699254572813941160276491558473705901975349013904051501857963794730044177908617806101949724130571810526387882989834975937768417016232008759884482172763863254229154238945892282053623389178668441969580891579019630221421522105690800250344792804156827176131798834524696101757170669494428640074666915930747218641620343383210600528012768929737440310425125012841942913951213705186283261219422770508520869001059225186205528387246872848023837673416432758708419799029717557414061485571985326314635056996954726857888799717675355348762635616484912934095926541914670390405009134654015333527823388342006531449735183288062545227483390295169063305368753596584335967969497404381019519258360324419760619917701989258832607289370052415484221729909607122115916033680689688253359294922583589792924410185667679231148277841483836164838013738092334819634894042335624386151538180337905654931944743318053716818999987727861199275081301164131004792136286748094202062474823516346446231794575627906096717064779002231751179311056308748886028634143188983544661591771252180395879471628410051948110021946920001002577101882561879760864677330044600525297958661422120099928309646199122291529371117171073517793621427127627205273890020182650919108772689509637656789905240620097609435559680262499396677702741000050761907260040333748050319614032007556864975487219655966171438252164030254357661162271232590932488990289961396865062832764146912437640784345876324069837525516842067840366333941543785304724343227760027977546401899970138092942840466055106027136555583118992919732594507566203094736733019679961967923683318744523879987325521604624028004880793242968316977830831665968589703486853083407880439387558354767684872632990680850064288511682083585484015817532723352240238698994251719210827406666435348967088216475813244546710758928794071027568929633411088422615101296776542607190868768972518667225852639890536592482952924233145283315515544542379854801216957545311698929655363917697407093121800361445884310057788953749687561185610040743092560504808865203055200330270437971681806177198003853403084082759672266174999717725288234037682759354372032732852508259986135474305455801626029534133320501473239304105722575168211310544410880179314947369578533565434261572526482970854977654651889187155725385428900660516244661735832596845908518374461381313609633849674040575439535252215670825510986580479499908926072119622980454481414366192150547632941251531910726228783678721103553089807941655978151965854984809330682265115360262596035728662137304267475949440734685903590766860679171575547373584355046057922434426524920006332697936950241815223974883947529572168859806994944123912207157165263872685020432407551736232307814619449276239335616989502469820990798287248792363461836365123919580650844719258223108738016607544585620112098510299124293643016893791249721065535318751072335367411201822951450050638289109794795258978274179291249807453178914212379764140659465473158270069822771934784208456500904197749573385326728080115410429254532179716789585867746525922432875051714897667193280628467178349629641266936638145575023612810140457083618202264676411288707825341602015251995001488494588541901606801937170490095146230477774038760290810212548625653931878003369988077206768654365067083676093950346125978211444427412374378727050359030611603534934418332778357852056468054178999684832920571937690131607099393919754937814764917064619605281056925585292728691356953376757977623800625798080949749348506247269916937363226416460985077613046188997052587739072283739166145392401335570946371501514390256302411763058946616877036146853175248218804011367893265950130824000287572165861438797459137045915142042011192506844116061161739438544355878049332533576999074857146429681367056163301131943687125990315748092844385897331242247273040504349374732822024314713945885784128290309995898072468254717860495469539967208227882333212432138361726733832707960437319291030985966212746172921406256646276549343490991187296519362002387548865327010532802879368174054700424252415312250675510311196470377218240406414127270891713131134212838375478443740701058551211776976932724158706543077202021060282827337537345979955027642002221794958190757673690893077271954634049573774877266512287936714775662311346468295561196357393074075986497023432059980204162337917095528865194424954532605468415502888693672485223940562359523079271268536221861603018134568330010930265915841572122238144163247690441691151547853479284472657987638091864440134662423353484909381176943580005662006606657597721276730033532187037300398232497071892124228120364843371988489896257866989656198025916785120379576617231456350209139561444757822679163059455354870030774005458885036439261604304057879050013192345762967034587968770821198398575140844247455578972672003011304167522734771511432608894489811684245338588158089669795033236441861785034288234050391901209303589655855092908976494642337255476125390727208625672696769653979839952015360267856668015382974948576854501106881793532570326207382530230923187309669762024798285513735411531690303559153524440877990892958358354952510781061515558511293332192997511338216667619765118522409895685951251276502139254588872887005559003494645683794113666193508992313736418919998306225477354231209741258827433790643264609171145647397060969529097276511238823364798304152878796079955740707487048068410913698415480882505891381016853413022106246600249129378580854610004305571564408077296154117426051857656946247909483344720487338795798100271499366501959398898039800562494306189973291847011359382624030802724989822444811454508087663358770055985696387368829619246109779115688766231203053233610740161186397455313340090150271374173813839779276930519312404472461584215197059231063167549116015800656898289463041653385669536863125424119207363254270909740018756561487792445839510790068444424276067765119689688853959697103462864948659497641799144147220924347684282146566340976489626919226757668793321430458055394285375240617693429197786625825442862032603528204740584795959554371085792552804538612427749366454781666042629289062422884471253769645059985762389726030070895042260402173007754844859222233620521432424940951357806526197266635235247487352172613378325863262397802386011532896107123715053727430347739890298989257254961585271353074043828948601030350196960641983021149478026956090328800841796726319445780095403584658208496151773272779776905133362147050734865882728922830285616533912833751986509944598839428466030835765203289797440417666387119420079418682594862717410784360217865192804113631486468133308442349022156650158409155243193009669592679093192239244083743445934365097844051570990498892288647845751484611694565814766696419014752329302303288955124569312910151026129575649960523330224732570957807163450639191047985094307362205742495250346890884632092073729463431054139419297064462056242100512835300076230661015833264392344535338039369511422849295729961048307311049051331304871864691087104522010827733580662617810104472453508954379696008985387435267398312545321549724192491883017687320830831532684931901932824816024973845291320322645164155911592591694112207721816616805811062089748894866229636417619981805637830169806735362698391655940561430154607284289484293817601101570398760300050887308549030981947482389253701446224192394351422599222967557167290174662707875498457927164449045236893749661606441726656250232860605281627976531306555838139610623011517551634509028374862916825098564815875168171238793971698701168198062818404989452988836003487236153828685517777063789420800019757482049724445037160141539180448958465003122101708464829188751425132017292572911890595866562861896829627282890347658093614144275806880029963013115579441292907075951849435568255524010761044407287920871944182321212024532385360205713718003957970961119165176680417766818057132069910287229875158263286239118780991506587606914766449060808356247307730800773316470147793775413898129478088265369260962840049300291617382868634309854417375494365879615272120115435523111274753121601318014774831111931306674557017835954275277786812037320514304476030345380700612309575500224033804593972089438618480153832015959532415941134891552469839055188349829298441858436973317817953356486635019365290939116745643413126544389699930784448510893173768431681713031710150746361655923095261759207686219445214541491389108693024548969762252596448492272134329586341552956807752102409783128130533555677384333918913351893473515193932770955627156547107106548064951936491214508407673550170157472179725923626601005804030037551370644597237421331975985189834326737138810325387666628956865446066276054992895663922569014556565233897406090790797674880246965147314403918522165458377271216897005484468320311207982575821498036513824076872428970026730457620364643505772477593578328245377947867178672108599348902639538342914532328662902770117156773277117677714048884828914687701957622222628924840158896130588006984494570887394955827630461471582661923419423247650672969593271109488532281253346348443131349372978931349841748203671864570537479826105309983097293332327615996106560706078242981205622145420356611245189335016269856773782421942583612303584478392071536337009157231276785667581971182377766934585654681633887935121381147095110903252004579378313301440280380492539054808045276306142261919899379115422878354169062121278786247833966537490636896428995464052925438746144105349039148895915351769335847733190191061640985335375740127647137229249215378592968407096395167415002350625531172379759775718923869289080806668232874622770958462342276944397585389770934915757276204257024473526205946659020363835929337115525770993434213317611576561654479582401662432914542218376154387455026202614093671518314575044281894016110672402800985592187295084230575247603906667987239356423892170954472238283619633332025013000247932364217197563405209120880637191396700364838811671224738591853514213263723670142108685625066220600519604143534338268327389405960300784610025224698737782490748336730777855077929032106330240124485570815064715423228261117569956719462929598960034408087725447954788654416622767507664893897804532639927070291499043631569625261376500128403972489484803857800343576040770705835142562837324847365007912893953070307432253137407512949905019894189849869012571282974133507881305490729477753137346490596314498571724566389537407089108247477323430483986623117773463996322108401961961178075093225319972092141663832670550023597337517400272329481329455203346490118283716133314835124458875411855403757394775716178892772239186139642768588503230970651563678360136909771691667389176121100912317287557185206659961161203038890488165608445952966296459420279625059264153041216928314077948490543333842844926039481749664041218951027144907287280310496339923856992761911898641330723241052600461836990554777395898884138279764481382390952811053857644077208878001190377504971397285321461541132154319065080214320101518646145466979603326893321443486527018583520692859438207925309539941718254684596040067272367435284299230968664713125457195085160659345136367569808073812499468176696715278577653970199099862184412339155402419609580438152716115396582855772536677215251673464076381492030722053902838148007575540595116462203947307454597536924751851932306498098913208767007096353537184775499745954561837897674734448656389770344819135569979947115342934357074011540736845933031176515027494063291695224564966908693247287436833801766682115459888222896943285006526611873904325041215462731827252595343413623097097178454340259120890307304761620826936161209918172385674318787920609049201779362011596272773729585821145537316672601807660908371198979184539812554177405065672837520188040659805244680219990270068569820689181623432617847148330527260606063471268084812741619993371776876579394097613246496962180884023800689271637685190852827270137253247306209467062873146732215939446260929650966836514470005325213343306376735201969506233371015820958105347322502508775112155605248110423637879235053418620674619717972703608219568798745135772502729455433145292151914691250501828757152140482926816535372620660478325715128859103349416399404798080521384898121176184893640135133334706881043991677527031983262491867879432285623112656557981535586138496082112716303914761790698951144535180094739395887971043241772478365438012380171952329785924630058284809848181314312945516872426042975669026945038327407990334034849310003472004087138174554240272027308653628056566157047051758400724067150667828157095439007035520976190471862430995361588185472230699209446412613119369957604624152229335276416139805280261873154211312334492648165988765789416181317527200466438330736220711198011562551663995878508306167748076822340703549853180557711490264737256599852784402246996417832737619929790891831663088283968713999384999476190424678965258261842277148655152590816203960748350188253600586473824111841189698778636510370081130279582042919875734942384016472052693954935563285664509653300383063035366976051277123471662636475090005899079339647330140639129258524569484605093108858408723693756307326572412694337034052754491380039886063155145748767500809629786745784972052988298326513691127859947799941913590696839185811618060109158730479828553733737445167540511621772111052458497197047312581048095733018588787336226600228446016944422225339788426374091725861327910946760532154553154843436412163351838685951072959038917362505767107889341000049095199862223873671456239345292310322002662653037329886193426193391757760220448572197461900458947937862420611385310111113019829103302758029379047511677700538246285446719800126366895469727121779520429580983382721844404576687650544508110901398132070561824548574389990668808768461771254804686940398890742384557201551118194266219220887343367254528466902124741375399737509200922644776418704490654935442230183789844489914812778647025453669702602447041479621115268514725511020060427036220670986402378351943986071929136810094949331869419814349132271674957866349837418566244821679057796321357669467781506830077371592429547486789959361583774323479637696427515616847929147523756683283762314484089851929822432147093873515090532727756310106475585721590989587231383969497080064119271097858311876471959127575760883668878722286929827564292406306160704394629012329583544762814962913224111294330789759075338878027534305105361626771764317516670852070320109491373239353343778876085432586086844009950784007953536106720557442439779286942311044639285138972355520987634644508617996545885049835665156061472514638072684367981846271775433633311580366295702278228851819966203914374904720352769154937242416276337574373568442153507256544667800838728715675563443168104737478195565813335353032084758851127641671355306310913986168380564202861632316418401271066228964663133509624891316051734736036532156203765698391759548210687699897663003837729036941850460915649221099003791141683633993838936964292930849664388221149776034414861498831772726592611310413416706374717749772748756049360447394854810203939544862758777715223791741948597300055881102094182877617411588173726350046837389731383755835524137902910181246433972868139658401441714836039030813050055916899157648300864315817524759270722829634469866740920007337950089377812750508092011002710188422287314203296804640033763641777685139980861057272718000254661645830694039270313503630966053282453917023665956120425712538464493310393778418798678835164049253297746366803594829116387364120790281639645681046213014628045845288969528521823051595429098586444868932176760271168636842034452752257543958736713746709899761379189047431212427416716593212387792276421709874534464223541884727137956155874593359575630783088203466640131612874555729750609327573491299923776093924814028520693774054182581392567863603992430901018340474093986349273314753529510815513442104381779668504066410733302530333318613308013886323345448569955087812288144469299333331321529144924354019289434076032026875064072591239920617281721523567010392566739930313331200206155223304075145043719536160589561896384970772155281895355639187441716141628185576959414071361282469119983877575486775845770981681129639669422290009245383438241820554263229278402788440118053623843632277755941573642923521903546689636359846401588418635207085323637917071433957020086314648529080116172971998382510571208847541776840899790978877923126700071417041928172043433632505745731975242109199139626821404791115653680055812637019261365684953252012110793330869999151109861918890387819994126613970575614296832317636605504178943553076982317275398006584106005437551245862290239600551005282473695220722750459089123539375588464587934661386778021141105683827615348124428299508777515104467945327589239239417526744212858157429322044756743752220793368332006563246456065693625220386660543787269500734816694843552130502522408642613434337184689823914997248216449559924659007050587093083843882991654161253412177904535045682521320864139993360895972764570682694557128963166356072851370492791763751764053009187084900194366562260518306133441773553695258445107290714455314537647699177000795270680726899108589177094516793218459142638191381384350639226624735880902121603013237892280074522414914711748544483594312751268737729077365506567029114155144032121383555402553433698386647194087553952005368678854862306702046907624167429862640154287584274796693898470071158309660150575272250836801020244908312300619486992264909205231999535326490177780343558755206698863617330958064632920272322547236596075049429150915622342203971517596549802037765666305731846697874449634507157720622534086366537301237091408871476266005543912757083918324114836532141258511839465517041999366524695070360663739811840447487841392288535089567962406155542805084305346245034170069789728409422756769996243318028392410459050565180669632881237741778309450673527053770323782135195321607675910361089437400191796659957050782846933987095920393382763422860923520855712230616980681886212957946175715179229136069306194940133769726005989871472596693244121233453930713042927133903370937239495172200070477298899293360103172512545447295670711362266550902596266417762852487810438309414490161691847613962542071199906854093997651634357082246218318706667087928328071053658042480278268062671703161466014277784479710323725753248633375888659409161997097629033177734812900407098543468415004439830243649360097453015007322446537296312060741459057031660118892064197894401045880980070566586559845152553302976482782279503619687069461696539069474609676398472405877156632218913506484082588187444792641453842244507309634887510777174863809035808180522080365403744758129065788572439764743633835555076789914635315909886906913322148281326914565686062152210748661260492619204274521938518378036666613000206455172325638202993849339970053128983705200981731499699282267583629647458740519830396426378028773098028550661017682926740662219693500414603556847039687415198964547858877657127699018173169968819530502541868084907052085931602795769651406336336082476991746804954675919050259733271744254927303529078494121178685935547596365497077044470275363515249922941237149880882746862450690322303154191423636763016686196548354439027944195830753352064076914674919638129305422466807140887046280895153547383219204802537433685419780212910963016484451977836613899228525479453163463306739062339860811475028798667091497716319991994207422713800354582912940069344368208882944645781955828107222868973330275330068893056780842240999771513892691077011366519029699860896994532830344383745366134562389076424747552905980509382215584654762633255339236131991156432532742163755250583106821164613347811127631500738422439341027821605713592204258610200270754271409229157548368473803790686320030511797031191482838668611732755337891969973381613058194731139047485618954179223690952441785843608187950378662639540073003392215915187800457259482641658550505460829856786863857460396014594903905260838903623571764786647367148812284931034593688778224325446011873025428396084231098362626393512446250761721922258458793381112728383846647545423355615889252072260569966586263132296268193797213293596785431644560034460967692118647807878135958512340109575143086127746945716990593641612548392185188132458881924631430719680856867799558541441321026477053392393719063383531165107443166922599098483236141008187322835071706435579235242412027185640192049151109055681031953001356477258053935637368573916591081209854866777119883078612894692145456157405935477164592682302572444500458551921973593199351115489589511963241406336171322095484160067911735131952746304264593866806546218584061307221643571300183943560620969147078822873266686883747172697187841612139350278320355624489662597997095223523541424756955125025409064499469590235814960154655582586594709031243382526487536988401033296500886412731072463886428151275509330311988760189137926877989649245366171179338282881462651986432182956875037450160019404344622789134293440352163908163323182922587633680487747029748419740805466248071259007035484232839987601160555343424193572353938296590582866514040446529678534650244040498213030738389639341398815992394741440687476565461980817829893621548968377919201692804958693100388137098776056053406736579068303757796380582057381193576541522298080786289268265928377208065636664478802988191484863701865495554549917389058984018518391576800372756196840540129436364810886087188871736976706625508740465300108924876403470786604210147675046968223113379410022552110092107951230485753299113493371627679010350060968090206422552528971504226680782389568572043355344147196544561843218546534916023192514151586224746762538862943679305638462640983772772721929831506651357425364765986753018476662003866463184146247383628539956556323837375479461937858828629657874437898779186057792560453299808441626263479315734791813849775918689609516184959880631022782367392557164252477734726729573217272047624505403959144400434737225932815315817663547745847143477374955350920693626143371981913423046968415726445082079163298338022219859038360718548514117363812089179418069675028222427721250864745930759408822313360959979107258483092278901980675042936314996808198734248194499738118028121474233387253002701368449700010312835275654444415294886716416511345063627841770591158228171141950728872247397317545064849571737931568999129170589223820194807187532444720214994805235119494523933327881562076278417220920636082366363882991470186875169809448360312591537539311408366955857658033503840719598362596010131702687976192479972757688759350768200066286738279227796094095051885276942451917747436862798549533226717503293771451483773624696396297238551056978111231949620428801505257274241830039077274095421054102603542556362417028236947378446222831457455798783279915850198902535802397003058767570961242666459987983007215272786255231956869904461753884867405169266096338723797688338440501092076125653841593213049622483083290671769005671818696182955360781351361678540651144244494170942080009710564430473572144767753595063517548641693843557256453517935139088486116766930907696214421865924872434162244989550961064200660371238900200015729962593120411950325749209566929237663448368832762089844345036094635328939741271180955116362001465171472546789879661092760518274057635478841817052695782918002269116470008914598236023925203553884706672906793707503340061945995175207458187586695498535769189821718079443325415315490469777624017009113758986511265572124819222932990439548292774403914813061304147409635020026891712477409853291607028450700504783977901837435946312223049715418988001723849831577978657139856461100042398378150679095218547397588649535103655968321502023767121705696053916656102765584927911957103584277164749938597042667022309381215329569351375338815632647273428213722719894709839708179239317191365467213430222427847085709648395743637504577167187309057595755391575138285458703534793826042659898125247935745400390463278138481465323262659953354592578955086338715439044158159128630680090104296684363117108457434453191140175416958029417349179826676121783964227893875463961569135041204185816809047034739214494470179891324357971448047689803883766675832247240570975223958735472941213975684269301445904556930002269403505722690664446712081848993263166683681647886240465824792049927828756766874464474118849798815665852231134199039286308813125124809300528354816791545402194097369923552376082340896381323907359970143956240186780706556681679922472009580640590848789849001489325709878619407105330226040809844635907251000842942164438987848638514597799359846988689086735292520592861982531999761839253772302146299839818048463225551933497230858459490262776801593416003704837826356668323845754128363772867167470619338210469193953560323269021564232873393092558779032618387407930778433053484467253084253964535638840376939702978003532995216053969633367559214028554585772467624773530699102859029050410471313042486463381461413660866701419673560415309110205914625086186037438472082649787656365606411866928310392286165314658201241902043902031231952636302777827987350056359390883403769762627983661274466530399015324827689123397542819202984201946515006197993163491060951931799666189241924946350375555910717263322779463617274087229977772605189906542296086732137807491956274460122049625461906174059673659468595144357713197588035221362156025632172224883239445010932179824531772730146034652446497780268351696713253310064652850421444480514091053500595231984920293473859615121934444574973394080055095908214040877880183774897829509329707482102363389658214279390581048570329625250569985076298980182922870000192864936312585194582938312065160632115988218237469772873866515649583392306202465920764913052347427576489201892948625884251498870593115699010036854107750665844489294675347630417618684750137079376578004009033540533851514338327948089575449876513818972816789833871313215142007955205559799370750772526231975398502730096927471875616291259864978317251089715800890951827411382941662662533025563113328391227987287459970270065721187715300451367107030452077452897705715337123997054835280910712774669394887521687611041637524846240975170079706688799511611566798513595758573772341483530447620036265937420908926011774205289653959676629051415883891978052615051311742871393382509916233486256228905043038333426829906638970216248028557961430816842541668416966605833308865284880041089254647643285956496339967990476372105067068127831777872101537352118024626032717909569829505251939258508422163031670059258503253678134173082586974161957660624643442637498588659602551737365674073503132101659373174489980448135964330276720149965930407487055169552734141991696087985449093873603369366928838595336588181429300827149393857995926117196019254306894132278684335490978761598949268401923052983018207363175639250530671057720396348259614934408326322303956083585685420172160364731927761345044240483239469169352190061438455333172197884787470283159897691877641982538228608680000198563699961144486567106891394651290257580060943834005426216478396365505459444166478214957071466383413083868502864601353524457777037489407894719908552862634596938528856799813490486554456004643298709385048872698800589130307345065449431365856091699650102900280585273830841896908760597441325830812389768913295780014683699450914922938064403046259112577942125103818063942761788898549223883553374877528708025072262423601497600571042265179289772033491219647106171812365593402795660771056921718650056068896473747943536082109643709173614541524763530779569366759773170974829933337940424271579125753667562239945626445792688986798662939618671270576562359514874768672198085266940631579646419653999299256007022661378888352918008578839629338815388335218922841489002931043505922989158446023573347878508650546203810255768909647236602294017444314403308076123085463054968465619520061527693348741120217589205574942749400189361997459996467903240784454925309572026964468660010462007922303699972524494148323137279122680475867782433939089495447296153984634562795743384961349533253921798407984756903522204306948539429937373818441229531120487272974847388379147939015712712366245004315720911077520031580292929984122537599176356522776045562403702643006675054129502954427960320908421032697665699493402210287025687564607213607069863207051900003254480056256776204383783642016463737854313197526131934581126081358290517007763780389192116517043814643670271472218198899171738214437322879785755076935677492297700741321672785294645798210310752375820269064891812671886397122743858573451802972201091258469561024149453518903077278646462175698303447057037129599533147147795205770499866840602036258730809199827677192572195450721513933811430476115130898436442876569454770800785139845083444098328335536644554961737636006452705173690213597041739635713669743699094828723125013825580891287662920518445130180338248219447899849578490647888774017345184507328612162119987011905071806058403390270592990117311875249624861437863285036612437722304252898255772111876217943870398836793884060701651511831741805872420116787059447755065336120185499559619730086314527669837852775042111149584738287649735684353105385649327349794131241074287656045871964111970483696922470488209501871017077551844206176733739156774103442355316480659702097528187549113514553396955242330641463822772154254907801368610056720032952206866371153167113093205786636053416355860976932078910981263937930762492153688609001648680242313461660416232879909781024375074090241850905200481685102530922803833215038249787191572438809136850061584057273811017046123309478806911287968788706821772402945604217492585147238616732397475574824092483788440360072742410653987395412553166340593155853568140771541894428066011159159659146534595647367880890719649401005693271136430198114847478189277525699763420497919080939447080963372201578772996564705092213964327942953739117285089074139962369786420427354103758067140498414952248200097021969000453705779012199291640479642297090002356952264026472161383016297789890798383111807165537921636246367527495100284422777863996426804696549167548802988440750550089791217153531269871410355647877093006224229613492450837257332804457662279172169350647209650353376151068121518841617492339187395037681906376706741271322478506316681555411294215078161141721544624689129243985524703346375873076976782613353427435951558728533517844673882017312814540485317862734745602093627481846857404961962181210550969782830349253102634502159202633666045478475760338768193151034145402179293540238520293408409715521287271046237817781418988294824417492308939893116793279232175356186712105173025280581051097960053510942581856524393359031139661928555646054263369178494072076283198852502547572398053922762887390001852660736138656972357930229090777586346289998536877332185818334576163873587401432043802472070430010361350464352352153359841415369324924902453237521211668626761771366709395232868828735252460889585680994972882570168980429425662150950797872412667354501915114772335881375399935297855828688960798590806952058140400737201805322646265209200566282529908366474262660711834284655616623446251560653115111526181207576337938498804510734667544090790128045097572882198297263545735227891695653720845644804162020868974013807323287490282521004050979659446615649815829464311338969607328766572243536868609185367468379970955591283020282216215018227019423734407614448525127234788318583998370365412697632164999361136445635069274389169801305193768737205863983918541092714771990216229622161602309673483837861762795705812096291263774839010023910131954013213827205535423493049008129277586372992751609117216973140958880918569607433673781221780197999677251146431907814379599241326550025278631850301821316953478161063603998582455810499216074762247998157872858829140709094614024888266821087359999547375951160200674663734047000509735057583245259619872045242840124838097150337038523169035694357954955056929259636611260303257274940346057079494204316150083764536275830246040367712946955101851752124909359383297353631375048194050170435769258027237092911806803329491210039059368126234090896632897074133663065586936469686832455501222259452025040267156062279652120915750283894418912681316544643150412640994198653771722997930298520601530374335689093808705189286186710159159670063515863880904496062043435852614878000125928239332207167851406331178108960328631189600384406969182259777078130001505932909681600860155650410631165394079401910051537700542931676258034710476860132223742493435168242784244556518529735350143283791745146442254158337373586288987811997481873817972124724960269420865272448241868794892657604914173611673286838606517044553095695875428559356327180293104205721677794492665043995260896165737431444479701326288960362433957620863144434893927475894020639989339777171715167173537344081901145857967466846357579351164535795755387120754964414224889815026047035467581050774404051789327395078446932973214898523878659817457182013780758279771924739488620226394378068747111491200040270566853850926023385907920840054051809652844599048232469103009283771903365476537961561937946940943104761383446443295614297010009551340802645136173340089559641639407289852672152344683911349453981645469614324269021557980534862422295332172975176582406058088666211639641549594615673415416965352468455537014823152234361141614852740803864847661382646352256726734579048491397437343289373027838410215099262628437452347845320604196614972253561293073672653669848029285037313734392785683881226118187794468159216370849689355766812922828762768975883787636631277485986084299437092052340790898163921045920126358127332279817518119359731564149152151841369218094994363478074053197030860628073662341611926623104410667127809867275197031106758117201919500427402210382786314588938071499835305095667356020846985129372295088020815964206672819360441773442450615450801117057186852163593349450690300529484167033211534031459494668594827218435944722740376098590481017042215053799546099727774790854941774857180231786699023876031138401868179187073461014693379107842155704672810220992526079098674359901102807254749068034191671609300763138736729528693540810819693364794006878133220087576705692898573347157296003972679931353063614526019702107629576162390946124069356081599496846235312788681039826584187117999565234214439292110067494241794539959886969363537727182369343291891984330051183573360452749274383224067926371135767235667703673136191569133285448871414047814478249223236179246463031816884067992955339055522704640999058288103669896302423511266867990967162125538253294979352730148688413339086919648513539367216953938481157734264924316336662298505205862957699038629029825796721530820789006028210540155415513364787745401622846166846606541363545623875773313279284893558048197618710099280622460033314757047599018459664085800819759843937125191246075958107663037573467372728304626191607697941762512435472347256474292186821584032766299293463095592330417893766312905502499595392884685156522271702936981737986307235647176455166117203002107680080989333148109759625587981230589165045962733409313489536490887250075960766397065746360674550402422031987021514514206761853250065309750612107932164352029892278880949811844394162746532710913941315595840310744183988787032209679154715870360764880245129809120660738774820383589089057714696572057246264712396944319194506792991875187904083980467741932898945959208345097736113416705076877838805674311770887611919685000269191327748767631911001090224982131985072477792935589014079612881805799461346388332025061634732086279096395003211777054964104764125557831277051880772944316993793158307979907947032810265704315604910618190946300219266279166064106475830676428859356147670013167572950695317760402967766967231090764893856618981753740990415015080041125166856776885548270151717493972416016946184004258494678095784097677760007113971307613699209673966387305817986320538175790205000522778407137668371701132293809817500832726101170957734302810307001512555075565557460490256660856141934080938686428956096297451035889588421242358922882280000432640111002785615483830136321791861803522509519303161169769439445888717328944791187981989111625840369080710784857986945275840103298099041407232342660015193434521500295261015571307704779167489949527576900609531228142858808346515586571211918877875542047007993878326093142759587364799255491643536904585011074335791137431027288707333895364738668018397985907513287305826422078796949702840065337321629677878612312263522899061233508566537547814699138662086178904632949415415309513708592818493116416895823006383643904938198756104480818948198719354371836710972105720475019391256467614041703593517053478537223131965247320648469400359914433468633771996765086930826832395529056494334344605854208101210384408854334635223574696895406079039480464253539044647843314610052027309838167697859571956536615621571188175411295866052835107179507532536876202409188192883843588580352771263475293741006914599289244686438887482095703590125016877844898667582133929137820901393482864255728260772450930580109481008861996006487131950357887814534690539263641474128107846307059996119795013638135561217923575966320107242737724344952926777598885693295465809205679067611416630832348280177681324469854354841723695679433877722788452690190830767507023204491316811416262629519504768245574371786714184586736392460926581326691926623965427530477670184149557848133830232137287465536711391406117174155523812754358557895941898023928509259136411502956474916813845659544965403102879580575506930481310801769378167563135290143871871578491569365302041569492108869485421432662374546264552388501305832378619095821863467808535057330386695528381651811869477682999508179158568838269281297371698580880829888740798318601883258916455146896072240435422372007902699618723917144050237653428943039050501645073983646163929513481844717379419904151328269761335899213781220662965889596021207141285749790649464080552478105155894179248978551075108118131470183074371678543242962524165530299996752952078973895439787682601765371453320236984772750135630316889923340437640103561596708160367970520998411142990564572022064879350319544659444779114011951911863626648755583356204286867810155335702682617992590225775801605468600397497423138655267637414278561453664901520948246606690686938701083691886005590314547163447371579197778344151715747928518530332286994936612821922403974298218218962640429805157851493270374765239595507224291464611496499771174210274988220205720287492502806097246637110176780529097962153459725574565756117036164175322412063656802783903948672321984155685320445983361834596504788013072027224115901847407804740843500476203894619347484208558262582107171437793711464176924006106052063359274043561517684325803344080356855559974110974762925519104850610305145303903234636686991447236985369051812991021145287883299983107305659041395899975350280591468011638646353836665016513552411288428287126899563972268189446856096018063860634924884395468327588779976267609290097658877477553631727304266621651950652549826767277961776544560864363560862100763715223296084363481526740891697886918785026184756760151363526652425501813599991823644919990075757719666307916123999449203314378357438169994699233072296445175416435532799670320155974675550710436898259564383495144259136120398168295297985858394832497868427158950093112048027285335436157924418871828411810638774289951446603145871894042009228010854410433756360833018736420055450724172394217031971885199479643145379999489224531278088075313061676940448568123502208533325921598757380896356853775911525789827737695052252120127047704993715542196453386887937462943080394620087538031657420808820449935539933767619473936351129626430844097694922228782953104691910257646593227649510415911684739380916955929007559243922536485531163383916470665732478818704113434785945699676122859658365837332504355719297481912416909045613314222042011434836808588815343341780975119388562152272853541539622403643288734286765942109478711735243365680404832128307282881907468719442008918317877574084426266991210136991577582200109191610886477717871162506232942016918964799964277362432041014823191703034231695742620623324543398888933043963672829796022052526776852266584926830369710483221150188336334307091000189548632207294984125270819616968467873694914837080688785684010809873440294448491482410526071065341833330929706661343615311428717382074140498409891704779782840424850441841566240314492460356090759637696598148700357629173218985482723494917216335965543790682161368087261446610797909450058645919318438235578207092786660593790698657438454801327881470016683384409983449449301459097142254832504387826609293038403069685961136093585033821512738022543736513605718704205235195703524796182120995257665776205823312980735286241213704525893983521807740694140966692889014394661707393185606830073966703530930088864959362342103964006917046147509536479221670396627148688602556766909388677833717125710548335811510854276999923607364330134790685990057100792701189357806687253041350821664152794697822031523433199413351964550114514817641295723782700461327607165645222201986678224155742377651862130354000201992622612511417560449337968699736791410816879615480163539437197572739564326686693492108019780366672648522929517495679864256153741755745565368770783699210124984422268810109910125192301346308752969343365640860952054838589863635984819849802762152961329747777589598090091735404616049506730092633215249459350404089635116739257064478747795373111885713973648203514388702814447188874903163215022363928605898797636853150263765589722176026635982321933465837459828416379295212844906539433690462798973413485853710680011181188477680599949435032795761010934810894102582185235178428697786935306643383792321033113023015153310560699840420437442219605813966076989984707692179293227140134947228951564441115513135440988654143280576969863691167560601070266695574344181818746791640613907972500743008108030406059195264979465833245296687645882376890810883215163391130870023785443313817500175556582527370422731027398032932090865293280394015345266333553114617174023758228103753002507914465584760800232385890749717661887883728988829027252849159213497820215989936411528675907643414790736208140894886348143451374844688070936043876350728757711860726981680575341632086758609691522432895038115600117612565992349784698202852208490572104759954974429691477085085989081238808172863635941421997710811975515310134172286821340846582867673993153795924707298063193862567436006197908954263244710508286774318493257000254121595951107587361773197132958187557427209663963155480975550846806709265003848146619064008721419625450161885420076132138640071078287073439138450372293637624932995864989884882018664188469176019333795773676316917356070747139259397183621578619405290308277503983680924066923831667420337252847731333432997847709545357537744188419129833971874271905377215227802247696284735325726650833236779024727812210385007967935191806280476954675640408481816392577789755256967053414079242423479138789282737176051421559959738808594066839454551020173724762970062903731695604496128826987775711102605980249321031676776460994913608788143089137651550995846969026651551319892738194272500360430338914072864549376341570090216046779579335549859176589514232960977940352136149613278487675099045183458305670631861543826498794919897878854013087568883068137186248653156203489551614928348247872017350231046787872498143677150330652197660183595976654012769030050313328927651891368808745412946817945829522181776455159930012877474350227543378907450573575724087182706999419586730569239807280084684322128541612047598269212003743887337556782831439679489549107437361052957444782366215684752870879552524084165666032059247706304782818536972299581862579817081370267168644656751145412531022852452435681662665584296630593412799602880653409367596676362064254418872481186893423161461747143076000391397096621296969010889344470822924846869584896723271361111778303036254069586109152420485545326692950087858743927726932733509601309759061764941848140846641096156411036871934385068306308129888119999855602207272963921340738788743114821025167949286320526421940182450934780420571163562469538921805850801967262664305365256863780188059058434947022294907172947712326830965989083914503697576568322666044009770022607121458728657749442835388795337722793348740882173400497836779042540395947517611338952748065059695312561290411474566505289294294556593329509825057491087917023432066088026231579810762668568041233008946356784884900836574656371592347743183041980074839431136703263689747140509849248187701997658148838373269969236629936664713475781349493671324709025143593075186687875301540249458556499946792048596388128699597477582656042141493863721016150930854020081533919509552461253919229881805409517507509351155674705238833002681802594372490835717119656613046664338683733000273818224406383381383529527780551165874074968014664256484775886146495925255222486567646816721126517164865227680907368545569568352597277207741696734142595277847507821732877571461086772124591837650156790207209991916815133944709137028140826583130059275364376013913889518139137593080899811170177703361383866127611590826926079725870867506316197721697166186785298462366016777784019563539885326025614535670643258385501559394548293773168973348531183029453896949320656848037865811005728289417056952925407379004349951442497079718391819353321896709567553679649148855183870091887039309712375196374839032324016764197997846330610251166119253855223636764419884104391061084838431274537277646095598826432255057146169699128552068942675722242200545180114900240209374813617830422589641414131819532870945856134339394328077901527623715852352605192032894003896338672239960771681871338556282974726129594739130388425667555350133604456070588169798911830895941517768858771920926970160691413961977905028033571913131899770584667720243986139796486521697109461465415659769671362171937796964777353618300644469684187047098931282626499740451125342167124923322014352216071766244983583031135938383116659762046825441150988519938841739783217574825665798145755394025071888999923973135396660574058412076063899893313024728269203552851378505360467429203121869478267635719743431214062680906501270980455056072305969603594743620245117649061481514348292650525885024189070558785697159838425259158255852989824888455057431215786626549557428704933177954675328068587523560001227950446051898321235774464641791130153852520858754202358250296785112440178420834045047167309678662463106988557348516819883563055903553968596451284702808343436754271097979996757454493495860121081145535429219242518915007067584582724028161291514397507953348644356299866465563470734013054463611664263522873149998525324502840320322492769531773281457434103082303560680521657767459265016335012883824695479489363172141780801352813301366973987495877197690591918725282507224263734499779365242517507021367001884918412306299158756164000304858206672215078272134735067287513859672943057670955936817014016719995258258863832731988309257999992453686410664463743297810757590761249221034375564403325555111457106681868365234515203983087283829734915982501261105437542408836734945656573907754464246071584945518317629593282478030241927256282370476546388093132631403431688781756759764260953364211512243599163970831276829224658335063428859297502052775234012418808451040678210595421253232468138175245256373351293824166559920463028627287017467965123236482022840370414617167324937146192670404177426075720388865920371691263720754915816932997237976459878485817851426753828205220310374384190543298497924042311295615370576234757670375834417811569496157436707744978040634491304735982413918446065834743601341242696814682917265723756777138322001329425009245075510033461816621648404589281554132100750856912374805229084535868542902941955646290420225361578720329267699382338896895922844240608542430510677954809677683688678808602721203420189669702822556769536888285119152927553647518319753172697645143922678100157719875940668184149863892355822225820607622129656141120854118342058011368359114345644567796105231683027224245537014023909045831418137403757390763632244137492465262726635586891083881061225914144314273017514106147139837821292944199398810737866650106768691641649941646846881174014936244553010726589445154452344073439342921030391647938324647199921089124781086404841556349055085695800532389591227554674850709201489176460753360844390897740224338703389685134806733564945430360297984534430169506731408149380373209807728731619512843855006358375103887741980132973051691356063593401912593371005332287777627455263275238949066485607162269375323891987717248567800314352665031999481850261284629966014721759121273745104558343361849768551858609811580588291975485880107173822140988206970553349127828207265010312231484068847729817838739052692168626786790225134174183147193823680466261573298729876602863198597379536752517840507764724788838653087311373797418533230465240755369766425333547488959221017222162588922584682866378347334980698692904085197735517835268207274587876443363568324922989680843021662208866912430583433518457796837592142539116245560817295914659471850248327461393879825574208152358948854184021498470887575934145566411629719791061565610712180745214909461594496992956989839676345731004924276486591887582909238536686127382228919101265601319699614329149910137479647528348693869950480136462360488163375919218950680931304455126376400373031507698987643904668196057853895112723705608044252759066576300899628893631363516147435203402212345288038694740739313029103390890477499207954101560611285628421775865911943292822181021224511061703954430356149439362227549441783362604154397104179263648004545311516776271122227237124084165832862149872348821860092298999994460423297703752857840695823424410965480540782712570227617477159132127659878502592573323981040471649380543338287478390345306397019277630665148955266156805173682741126414358356359940210396319687552597940211626966116174416069286016392066004366864337806558747761590903776812080531011026629319416887611770004036680228994433130850373947433432935710973267908034259156228169068142590968864740137692963536659971223379486662126241939294561832505129673925479700304704198537418711363060868611165927091224244684825901295328172104256306820698454458487840295657157513545026730338280422083725371994323484123475002010844472641382708288327048643520951731402140809532173789140630208981042753426917693628907080953274641183751003986801117158588362895089438733298803062619626383875499332805999009521835950786160908147154538839104000803423102199207980781233976828063583288703945697834140591454731698267761200123334344884601422987570227495265766535047822750025224832460041670799334518465247561622908235207159625983966596722015880214984603358571813842092648388074533371151863460946118379444875125837117547745096366133407705981426925353960052146921550581063379228647445176419325008052938595398751417588466447931521382545288320919208958907088316078785840571516679293091724705436911298050270443072843460043850753291404062565688587974278518055433552386465088825990161500283168630700810364650242795523960843292075487639295667557479717774675461085272443360194345207743216675808374286756769889690937041912288331676724067888694843498509664508930651822428405705348361673689371106723832262490341509281558721956345600531272862524857127876929431080887352009697553688807322169020018625214603528524211310045470995135246821283597262275100871840631293844597461062934859669450978948396211045113470116508798420764004462903183837057333888719013377998116696401035504310043371798065988079912815733256528893518892296446884912988477950157403845827513766288275960028072291316667865697353318194531676738871495989226874336195152194596888630056570724841370618804770718429208727496783728364884557860009947301620220788031612669915454382165968439474046481351432476679760841484902832702681928994094821241321001522139189609376654151496508857276237995490677980851684403134472599356107651126412573633606735324904705597845470239456563756088352176788134763134659543550907781803458834999138642729929263793566126809018434480287878533460662265266454775681856630489865643840759126263752613428220588573662246485127256962122100950118595691925421322904133129624455736566236054864847669206643840629346664474733571181731402912088546474787470545313276746216189774021385055448757091141688986125185093119819250135452003791384642575305857296023073099410441315365002181920659079439042252880368680598701003057202395190901633870297843221065740612601544378397221322140527173083109461167038785368634919577701786967697929591315525813766119503781420432475239350899213326014595703162412838659843284714195631744995611371335073659996663682326338686249461856935886853544437958977159279400143380801944113165561929105999106059237644252348137833485955015682320404234858331004158919308668043998941629938578148699694322025939145553575719404471710444376648117440738819916321699497449217038422359598123908671680863975924614161483593678309119481469014542740107358242549513541696183801158276136160024746411923802093384666459249633720871145617085816934741765707244484847282083686975853166430813022776739175881871429451002814799507503388908334177452630671431304773622568297209162532761162327972004858263673974144123203998003730582937928823333615935584855764334219866051940282552259523870408261043853664726366285684670170010667549184942527373933115150145125579802048947091634461016832051729547874093177968063959087059190873707301276656683629402546734320499381832198496060449092512686335172642753856551720417240099262478708546539571276826363976148843349220698845113176665172215249774520216689016031459288836351862977095945493657451274536601789047053822433484336891427709915943766903047643002907063763724935661722847423267821725763693102290854302502656653074864818730901743377588340510626447116918129407153599924292369065692201075681358153854192918769378028536700426420596744094111109538245096015897266328663113418590768216001729881926502697411214927418969250741845505716376490683070480990075803775188185588774591240050757164010223829656529986525796501045043413898529046535073858348519117780914688446717701062012483747978473129075779173825787475028079804723486057655351931354845895489105545787289806926004400078944512696717662228305821870825385034080208745540098754107959083283884581189706396239010454648722316446864356486587096050510196543019513339606377223550932341206163064913557802624910739051396697209484451730270789846449548743937386125415415384608273661431301231482023900513075969642601960521898542546856281586747451059366821321502237872436627575259221687924460391269831427100562108182568398227376324510247320207515381087905713422268146775898918590968584676243161808138228739493045239000842449883959566503893300055373364577206900841594748468410241852357426390421643774572158831670196646642278258964392012558094257743149962770660688337312804794698110140051586107156582067490792578568692950254412684216037727617826241025424319780430654866742198503556133181117819313104240469718989704670094011712136107169554807209737892853531539872876706574063605416946161625124880234909733080328250136949202852088312925088568722242153951233303445539084244007270252387430502256813413670858229950537811138928372362759008828488536847280037474228293213507843162123921930788603395113869276980216045931334206522475742742884530229737896496675647021722840975752900930468217071507344788327707012202628295057706354369386602212933852164186351702965753857851450745214582223574716108859657704620054804814800904451649404852953605314139549108585356974184922873993340011639031108473290439575931415689287919706617305439704416653842960059206096742972186491026446532814441121128919916224642234087417342116677660817274349988772804741121453562622380577529060405037316796436387553279865791053848498490216787088868917416504376267964247259559429528253338176041350598970464230453077419897378661174818028612497916219976446390174962078225527659779075872764156544120305796025205893709146282761616545237546182247655187475909106960588832449473764250127724373945605617292499321041193192908846419817621250790932033996617990712080769052158106420904850299468287996073327933399817041589484547082317789231923884087603267287469233946260573862234443651858185806727546849570849732974150303158693165032399085814645848518166644519738853794136266917113503390442720116124628242697950228704458606307469359590343048666929144762580585371261913715617495536788582739036120791752601535232447414503624939904677617168097984521810266041471646870542921022552540266264507941968688756277657111194290615794326777806812570378001650708648502087432561344392234177850077959917241244164146944662238334069986208731213688888306718469425979080923596241530989674509020852421747869506354915599935270832747094690067218960957495862835720483961419826816831509013448370614591873089528733035276899404964122185078238167696301247969076049999420418266692134284932151344901737106242712073905720084605183314739748966443311870242997801618458126479958067384765121119436894006216815487707210479959699983191550801047217404639303502199389204658350749529444444288834031306782127997586079580145754931642938527911667412626970297696770379107512509819449154417256938630690128004084400587186360272630745608025972456461615502555274796429758519476130202018455730395925788579961966443371541058130592917754510100765426753986802444778097326600244850372486261781891147443234734786594121425226990142819130490640446166826820161367477539304107329064053668523040009240501646201437744640823671982886697888066765269533738857400040872695272205402470521434864320016588450811591457941069053863496698490754714661680942270218045462297551858902855913722909599343759692168940435001573417822995285662462919393874407059802801990708642437668686064602156784161875167473050775945428744644877596423355528238020011483628007261599648308170004814243790922425467885489726197174162343082826704276806994602906496387128267723272984609382135702998526738433920215690303361518457166591266149147503645977664588879456419241028032958490030716113171747820150592350771293961616700494435337624295764788403598416802523889846076939281444880947048293841256702758385509394628946933958719030942891601337879668507240695372575706864189302233646971499868642325261719447988785914712859236234566443833167471002954184094285411912316237529160892817781212365791604109867730875764476449447229805888651332816878147725136297415604224829476674938513426066603167928923965934682212201717861346295945696181184395294264266261100765816040959683983619603480029007758110653866304074878542347623503779925619002640393873187951169061723590204548969018439766945136838922212055755878719061988285650617128984898986164940552440245454346148574049419037225809074464472486020803227877046459366139260465172068003876706106850225665336097404206846773388898704017327114134744652299408311765391586952815798834967144444099852027053827240373476765536145758136439792320107600478980509813518601418331192542498631943017703606485043324778241115772631660222774629639840116426361663765671722300033106507149623349996653237139911338497172774641212949063686425133201973449089913098951570330894378700105144920870035955284133623063142473014417305448315572056344474192110480609866532607201895866654989404144899230632443940140995968167096086319456378626097820928836450612130266999654355357939796628580226624146833172704266227537056903161305269039892905064111234601954350434855496339763107026784311271399063811417425495516650419051245269925171044335524882154701916826402117567928157153432270396941771473632651341371011859823890811333140996371766119266620241070591316144245745028648445779129242910256495013985087402329617896857726783206363657475875624824064188468209370549257153470753664400955206211747074506635119299684871861200076329392295885549095618143612514513161519400289723980423854587416573429704526344789505096251094672052856632028267336438304927143735626768226199045621900088134708392356117952524643796466798244138752361892148531632522662375527137043365255651406336586788398515076185396435147454765952689638661800318820021880978028465558648785204700183929314563950700397992725953151869359469347833094743845732585597994896138272337168045878334181231522248051536767125181832244650177550207630386709463605829816636231092247409608497680698215743254156819355324462987646423619867235157300292447893332720838388826307915452479465968529927366297928832445012554279818573215541720195532838496260423450660640170004546355610522000857515381581209740200387150396040073555527315589909427645945256089614388337930835546540820700156051305280065077503493452155596037913066339190980657678348502690070304458185163649363088897405892501472906104651731409431800325518467924874932530976982217147531452493994749502052080475806695908742136457722330183648943522970057607133530718006968398965813095101477410373755488468813477837520402721867803048947098437474950546614302589052867022919290328960023076089857011588845642738623469645131794148263780594292586339894835478210741539058368616382945335112827240635900658880789724339257504437515757999763028341790422727230359394286751366845315009164634183198553593720411171684897904361711774702856414149631397101665044396285747408629140406570315809794622185589201144135669105245345949592784189884846318122100908194163726853274616654244546608612264844087003879364129516914708106446394660096379385605699405713907012451657953146992501454892604561596909342354520349071462293727903691409234025505184110459133799231676268041247444673456643943017040324239723488582203865668798695974558295828125837649765314188681528658631134042124327804531983067943924974826973215592020991143271375127086245960656979343271403596291420533157829068888929812720876372026391429767462654749023176188880859660976949057671112009693147363343550325277016334122064541094928459420478194598488558320736657951102964896238998115103910740046405641465860222877177307792650138778423142965988227521769641579646032083068674417298207629885139174545074058717200997474165083958975097983422941799854621710127448224564785637323346774658135412344938331018749863401205997315239759269859790462012890175947315136726103912443313304360568607657257090778507870411988839453424077398607445884903152773979833676835915625569255606043121008740353265755722156590032664291369022327816406418443066034174360661229251892022650253073031072112285835554618504113276564430260862627987528369423967492664166605530673445270336447780725662981299223686433002963999563015510694530002788164108434378885409216772205089871225725337217602516536465353818049221835135491981855547230316140206692692601544384608148643426047778137685878105762570377540386457586964058763270778599999608719424834606415423338528175336910381000018110107904328918817330872874732955654192100258418771578565036003615900549770280543140464256709074845101589861631692471185130182393887721412426340944183663593308438459710934558959619665378973983916431803678357313625837316346193550543753070020866282824091827918592813257120908085780604143872064771404085184013382464322715670044155093030713246972230210314424878213755560499414758130641555240632021271872089716520604078118066076304675930502499288247160716667490877205093783990066896879827407465486637270263513055487556119363291395162202047467266643725549007499707216288998088182625272705804531293668073772528374271131949978494958331577592431007647581699034930375460393246791432083673712142927572632955996509762287439010291522076422909188066070670736936568598026589785917728758874753061003234691231435336269277435878075480991913840236707086219729350832811735129722449032267594321012530708475290890598746914933905022620506553131865504542300421621718808642218219234113674009244944003444279472015684888898854952604609438091862367917065520128265653998759516700560742111061864597199174497784514658998172313785778792044069720967486656291305458614591536905360040551472092002307017010767374701794798613245853249541970725911542622654834285854947977540284515018471854936686473585329308815117388117306240272159838421375310111661185781631916657347418065165270545362462434332257575769886402433814748569745986370045762347557321653568523805834500741139311044389053111310070598624576483748503042335893366946113064882715353105329296737170634978240434789684725277687617644598170571546882359849865393417596371421691100816092417548526728245578312815486571666900362158826367176551682298682767417291532811614082501604294162885701124493684371501038281075095316170355039543483912987511588523200003346542327508573412612603914230588662155533632703720633885251665475783979288161226206288474335655681841736934885197906455269554989764906179067341747765409663900149807015895616733824366846233389147170274765583520229227840613923337956738811110755124728638803424991051739710532891000542068236905062720449421549187157664036216429670310717531503348764035504209401665501035724302201042896035683618109135173553050861198391245263367173516583696179105599670013575763956552405640343538580714356302243682934080142569839315568277696632804522826725351943034239461578438966974300102794589368286566189325007165181146335712288718613630919789585466545593947245473994311069672515497427723772794261252492146538632517682820276021087417100882692842752929765656977492207156958355386830364992933644905538273348175561251180928596449347612905472424246706911526222968855486866424573822987027847105697537066839187860480908963847244778410619163702918965546769246519149613042951272953135534509851806426835784479769702196097361817204820681724728036232326819932120634148902723269767714569214058052603599903745290771862116955899186788788271571369515107184516406187225519300877780111609098192860938415959102434433293661923261761437081998627774006183316491238686670861914354504290932768659155006843613853953733983593503229191596889479394729334649334528842073189080128909394188963229400361909995590185874763553144242084185290434571419596148576940044171815234616099305506210339812792417132228219497326991229235349477601659623802292459713405678343240202379056161695112458704213897756680534943695064275379916561619625221908482269481018715110682896114215054363574368495240349457434651750575721682657853207224101808029213097537218213283486719218079209393196585917960517193701577583827345560314795764693118559056497350153708605046591118521757021121431967312016845319401796019050291634125232804037447908679891736327296291983539276848354768202088129689154887712193413221398338808727037476421113609025300624979431009533077307982080172553504637382953067710250907104589262545026043595043403938493896827939481114827178502177925903150640008142786999763202986025954977623684829432210019352888322125338373366276784183523954432476331938932552780191495291022337385522071272533295270464082223312406912962850753402094161731068808018440616548718799471370256307363340218790967178083921057394162897124833614420698477052339206143053243128593155012067417698570661155395970577334977516464070513437672618916450433082918268684317573138543508695422789038951716404009689689792914599267322988125864333533323004251335710726491051877406094868002978211504120275098199020169372175313670146308627540735442742133133885274109458948496723069128183344122660599255517137625002119506695265686955484629891826673788741824828388457981115071601595157333036213117523511489197210367913234803130928522535739037843573806463781268720826157063626367736654289476151018165998950962441653563281368632816908379275927005837075374198383896520752921960643237708152181502718146938511699635404986615277398469389639866827670575461890255980541666884088113490563571483532688606096972676936988079514631091923313748987267426750392386790278590749078223312680756360445450633280772061103279854535584645009980260959834019248847380770614810725649931528072963844778457063592451607837787883715118368363891628867254505711153110654601161079015777456109561591607084123343551883866132823885279905281598624426956068378640863821082027389887533968318169570673746205026412319746369951851853264948366816447665184004122531434717339255801853484917303451553762819012159576481309467932710248851173601468411110526839817867671471335991934360873465943149580258956864491438442112932911965159677513878503828690411061176936989255021457029121018657426258914772079608588052404092288516106614803302244989643618727084846241435357070589513930827200076200618596555310510688564224197409340426963905020204113227335271194350893201377382543029780739998900771129664791202052108091216206997224963101294121681760053967123378967497612203259572565255463220993766437609554377092598143641920783847611646869068850482770860965184885492089961409642655055189293713611989548666629514183626854286695284364079324916358175561844371012822960282933452722968405267231814495315853720716227559564482639278024625412055979688151054874085590534960578752589740423943763105887805961349994920648448321145615533824335120358838240223852011500695539147558734809258273026595575019501790193917815546697002293914134567769164289295330305053503610290814935514746514132650353828134441672428735768387456936435101361115155743252557288759184624481687383545573526437193417289278839824692998154522592918377762732005982123942017698644729028418828189835080385729878225302088629830573145167745240710944238530519681144394300128636422367562033558641290450307831659428481989954502650527007993929911293417024181266002390596255738483156439378392081784380716335195831550996600377471046190992968484214282704958773703466924250023174623660002627587650559660152659234163106058066705385736315405580633493622059141287396834972592362590115189827923553800193574938610079146816618670784718528952274569961751699655282254084277487548037136140031345285009446700766537380495791566092660532142269176237345272544436996428591524512105738758012791142227309742541441370904064885568775347415367293334079190456509989870749976158380682313272674505262807339383624511550582985203351980947808493667598420322687085552674623310275853651209677965217774730099247393715073138339364657938094303695961013075047007849308430514375045421914014851347894822933508389734901400118172517074872507067084648161159940223372797683733754689314527198884259822921419504941565310005745485220069092141359581307595970158285039539557792608957564685164372154998360436592603174075339264960169102844256543846320466769679061376069419797465061421910070546740149803464415785255600618137418469923898425343986295392792655267744376267405781155173646304684316051374808911059754059515040591343967105284488502627502085535321874077748319707125012085363530470363446856823761065919992134837468288932513029478663382440717795577448324049487163056702545781013689926747191807681618824284964584321650134445216500692780919756775024313479071965196045221608722204857055005706349613984064419939915080686900025383323434022745916320913684444999798174976881679500455728393303118532624162233328636468854713648456885633762671359211293660240983216473932924905444990158187713080549424940128710169472471185400368312182618158694875625731945893425303273379159559401235289987538602603224529231803220195791576477408858192441973509617759973522846071062296632586671685800531619181506511499321279888128702941243616896036812278465423346501515615069060738448384851052697231506160670415806870455344355376059278406261821534324348644024990936648554778829787983489489099769956389317718251914399861808109406417340061631909860724999096432631072037191825929121090438833666892494894286953536252982331719715378598578449941437274499649882846275895916177917349352607262077557488024648438901207504013519341363413859931641043697530590101484780134376541305081007807950008303344773800090080716286793156316403142607543856991286082017145510620317523049922795329412717857531437894147327909132252966004227578528864223896071587177223764483025638979054337309069974476875000312667700382568010558147814502023499231082849346664819096585803845886412087388146910552441433156430866338172809879339370550947917817229727705029525720527293826660517315741418903600885021003164890894569785860163427457841641283608024080604835477798909280067995785184543554181876750228495451361131074951159084080050476659481056566801871783235625979343831263138387688518935259695729783976097652659776110511858788538634676191456108010606160175035138929747494893840679291747604317389676829558438510245986139638508917831851897992572780699524600368668131962258547868210331753504811124821065843799554923781663368120374276774925304536493424394115283871338474478191239713793557602308492847685905544620923947653817297091544814800096137321885694038743660052743089845340995609137002106378302861623721774287656590445927603495919031550093897888528711089590909229614886118717861641438143586813774505044582942350389776917774981358577380664798078308357087176501286731680848400182983765354941166993910584734020263834732700818458898495706902400303933911899215516841747505459373833793990106827719475739350421032406470565752155050057552793384866341661473997037910700416434900089090144708998049095010500204934292094591140120741253177837063867452521306120941025894863448704991841335345045102360842285391518041796360692141278964568396424922995212727437891822986159738037368872807717858615320550527939793679203054288226433442698371186119923824009258223543790613062011895852183771066351577647758824845429873223401792513853828683067989900652915653723660824920981844139572027431324513665458199804491769925697006042812037952572799545238061838990294255910964406555899552190241085089654231874867652158266691256589951096871545398923660802970713448359148570426296765896573486456673693537732982141487136079561964961071915322254098288700745373642680588677980417710004854198734810558300823522682965909888294543561807538408576737086119575645430857947003648532632444955736757957592041366421487212503646908314986255823238732207397468122121177854343092186342503642576335735195826850928910810329495332194813049460633875792075473050970346836071634974361269418684841225561018423624377426679239636013946594489520797533240421868233859700574503379263907884582206876788836857683840188502184388973657522347482870117799470935212282006306473759407263213126388026850325486033615616850697637333192383069672111385911269841124201144395936027395073239736643498142485627245540415579728803704957900041024870188587403051748177190519356695286696483602211582962466901085129413743011183765497267021713364356686335521490202669443165267731797165805804241199221201263883716816571400819038072389486585379973411737929975845202397426150687793833729462668754094887914076345600390405514699706658530357998984323218450613550094819881950406679107239472304905178319886567742904839439837575721789572309203277196632180039072142525854826630202475714785933931983363523333740829262926102712135971548223784773816204939821140929113357941602646788928722354549978846329885041193651054616833861784823800392767435698492162584202943988530507214169359408599193420381656153848388456557728842183046650257260546334117585253598836644779904701257171613967362824838720612801535714818641362335364263840752262754561109781869877956141492696787924872004282945674565359749150248545504320988075695740294253345607237290382153248451192682092640044741030267932104860406777026757371812448430738534616128062777036817718330696892571196470902369282406191553900878747585046701578741113233406729793354087289778764124808809374251970293611800493499575533250218621249630025961004077630441830484522263733576087851457772936167349257875842151046892828051229140388448468699497311026345016106304870376699861882684755685656426482098065436127604169412561509530029559603934636158629393085261769982487516373762740200653210796050021342924825530293249298790820084053728166668603882265260124911612124585233330273198611402167026619892690463593467369413550445093311702390435581760361216273932648808081922193812948769782795551704712501376304646734793298562644573120858833163945315679551779076383911971401315771513089898508450630331698071609705978914062503586044933219063704194822512164665138630288567598754760744168655785097542069467421085497084649383754609606272887474850349427732429823439705743149505968033316690825075747364244173278754181777081665670564137348052647947193279906616942748741714285863717908483315334747439837277291561816104808313247735548134430562557525734890503985934296097920101738432725487167001639173846388708552148725860926480574118107461416927784424089041494497541772771746588201658283790010579112183264061967310790606460400070629288561401446132056035597608338935434632748933283407489332660604435487786683351144798813038858088488819176086570457416564145236891509882174692742933605137213310356596571753680697053741180374909644539425271854816138578308365571836977282859795181828572919640511562693906598164860937472515745999177008888418370798420331741034420940341715064170726690438147735517678398041329879705041549350503110886509072250957241923393506557114681814212290906797147428767558449325189117049381921922011956437907497132100072005429629756253986199152852669816633962989763089503725252722838492567386507379615096990656597907172290132500257292980691319579992993462292482327938418671666897010456327547788684780531433448849802577635129846351130954120525011409186979198903724222223169183803901450682529977057780839761605895518776075230519375102115853510939689242205575842702435341441670294076255601992939811220770492162263397435954309775151011150760650136645818832202726441025444436378154191239601320899405544791360067558962978828652368743187551920297553187589473562159104057561347655893707771285243534585487315075174352363876264482188007773089119708027449830472030301229815022316336468799260404264610078610599547813997464163542427549078171074242169229452875672180766135804331000330474300114980899495357153194933154265114467453455112346817747453242374293446984281477039125511839853149470358211232715491312976296766975633648352459075637598310553602642579458710635899300427999914799646057280896465193788261808603497518457846269890578561422778735200724960736334404543439798506182538487998565042096970945403830244550332010095999514894183962523080911895719322298541995245404305058461411140933501684703991958572683717640761679871448823173087831278734764584185285431603578197591358206864475279994948769775696294635437698180507359477300442563104705350246353334764138148798053080030679587279740763455929380522339388039021213330384314014003501760293046557196505338549001047240920532754154367776460710439369931560200714140859633380299112037304202043312668925666297187384830950913523034723574809697971319437625588141519311237404158603766038661279225175569908244387291871786092584730874324234799638584050836369236910206286087274064496750350361489815585918210020231388755217036330302346959998705261821945876118464795542688144877599101453331253543181646705101502496156924212993711460552672621257265865914816703466262443064455611953299527951953855851661998427409875443063572410570991918571898953689610316333832821358156514315304595044719700345622027093356754021183400765262221663529734585605806408908132402340017694115726917391515470725742708362690678223554113719280878739030034897283821679352902591516799194908001188207356557842990590827384235523751268879054377272810070225435237307216031249029568158168791985741745579468094178058544337913199017241521480449521913021542677416882162294972836303875977951099448992288040397266564836505255200263023906890649813648954047938694043226288942552878334269535630573033981476667605789555169358451035155493625441546496301154790596565010741132008243298705197441720498759875530366398018221563525177155566733660219005354401083516336696856727368414957458154491368119901167319431720443735088822814729356613337826929554359778822477545896067572582681242986434462163283295800070096172663734362503123073385970819602034482778798359850229269812126739876642935531913114045431250048561604507937850035272819501411833134973578573454219497613878195062532565862033137697226838163664499659235047638307048431732400316976897421276213459271149411983567518148957449156774580427176875605069640734062658159541180585434800985732062051013350587143428196491776183624683321422672069860987428973602381533810535806832471704803602983238941684455693507875677732622373158204683864018063079472555990701121444426850244142245302986480310136634551152274625911980456501054401388818239812747183419966358966421464310707988607911452554834213756353900341386936504950819873505845157024565677884004856770961393319670335040489068213100942565282662703881643302300370194006501014990577184576486113788865581841352628749030784896928535686328592330120820045969288639629334014500657591019458158985549270113342650553949733867262821918413888770222855625881258637248071542540679946284859022698831704408143329310459039318705325945049800183459288306365349589299650737398832398461339853243600864321615521718030030006703509023322389515261460928200297600003075849756183286934439684649368501679789020485219327898561980956894056772238139709579652728011814279342778970916523953320128021498928189622675299975204169673631053740896773993998937913725712650892131302467366216605087965348726663702821640626998957344879468072221318150196654374520654218861445868776084232753926481020499797483097707570471439884937742414419335193296038652205514440846490991581425489171374212537578050224325656045810865296744589301294972937561304825277529025360000995701189929866076370784729567729146587017546008655427984291280060814084722575654134025533874002421073146812710192163667606245696772574845307061266205276326978763934059172477496648252269103224262702024958907883282717233878791610705887784746195524058029779677164317982071474568902860539670308561918148372761408834618498979826559728885633230281896101734808391276236219299920737471558929807234491671135267893582762370871968245774311275454189643614492975548508047495668377529969337853381377896448549225590827859373329732809133409397029485355015934472972224916757858949287554199820542845537783922195465011350593000670301499855088572747043757388690731632145469497669586185321754340403363485356287872606813021062856161976725898817723864160278557734007912371768252106978328472010454841383880084528250594705408610342012751772859463510486017315697737209827978674612915279473325203231831235412012433036445187719582545308207586914510456011045439100122493524307079369991678209406579561127329191397299554301448980433590047632104534702306282481662003482452964222588636071375024000449746739431586239969854876530306517803342634108107196453080908543308693075676747497669672864389387850120428002050740943299792518898836207721090612406029236448270751449730856169632371871143544414106658354104392723296441316117134651538981298321854543273567062169705479512098554181363776894703211105427449416381164509011628711571939065842286360022572068765580308896162732640388023444264650797255369846258146860110821760080650343148081432924641935044482790680571899166372603176868050003316202819203514844927896060655204156732476085471398345866400673913155475544431003218767708123416988538565158080465253623272981872221776283592876231740392187603174981218509876443282577196049975538658967303715764354263255296146035285677886799078312796706110736168019243752049201225032441159913548829390277477554231052558406549457679269064861931887734584064961225672219963897810575874264487203573993350669373328688195123238740393887576799159382300930582926782633516745241951812362997680895823315852145682259879014304027548008433855254049492619949151279707169882662739940694371211276340530538039606132011099009586699821707733630530035244628990147197928194379449703406120246111449003930029646555188646870245034216793772837032054320641999603066449952497894437768149731147817010200829384122872676922498648797319288025402025531149534332530524335664921215645466381486082800399375379717891335147970349215948025917239858526332771344872810711677480831250018426687039384289192074647535140450021492753459295270519316707622047083956980627481781005540286655175837880990244063559793035142697737264071058058325198032264434599474161810733075808328926629942028770146088900603960842281268089363670019323557478258532415217669159130704930762334700512217822763250723428254454837329942521621257717930603203799891254846950250732015661016108727079946702660611939970847109180922877709294247567306148096904311903238142007779284833572701231186617469128902389253613449025559957378004820322372646468894418844529984378617754275924921423740124988475671199973766746271970841617965390072898918216689848963762272525207026240303414854028488135494779142092895541329189634183550855257813289168841632938771589894503469885142642073889078554504067927125987506388684485634620202716298073732969994628946019374647122652490475045089643750070308440681799800607061115136566869827011833059851394094426627797616638712300143683219454507916267169697954415789178106097560866363494170853350558533142848972988767820343476494736366962054553067531036473113287342354232055733467552420473364989334551781553334726130194708915709656497452932272365403537501256285892277955625618702156725432499345898615364870475028547742453642559721507236052397557074529038424007103547175099204820459010151756614921102089069493189475049906565048729715249630960264712851449889987242670074261741078387961023496691013487229790153141817115619815144706632368474934150386554963888572950979613396271839382766912296097027056220973160233192791462536575270692328108627480711368108163810932281040680864478585394469624161713224907967475724712734353228403280682173110832003961883643125974033758291215458779489086572662475727257134552521450599830651437815950597555944791649329752785507930789249954286210509980973340936638765773849347997746006866037945966926505317353218562654527190344811378945778593893616535242353706577561039515306254624311600254837983874439423153964034302846478813377801482150264496715799219642015841566746989207750291775001715750639903179082994002604876454580403115387181576135638476373478726284418302509413044122035595058683676156838960969705263991052170411714199802289304426742586477523697230485073068055535033474306085151710395786849716304414020229212038974920829435018487609458818684106877352515349180888916582088484276741883322208343930407938403276902691986140498862635068429458159984255817540713394959140058006291596150574071894892236341249002439717957927822918514718611193353453745800595927989518719718254088475762772134713651471319858238088358001937561660732261877560000185518453017958105536070065990486444212600082159343992063384273258980149746871680793449537033447920419355269144589391659337910520572587737622035933183672788436949025855277013378378744794596501686398682324399176803041625621817103137167228365307958689216159952267642451908584481543845967494408543351287383316749636497936261350468512422673878503909045395749394617023016663094187673295554415628782058330334243259362110432638722633790917242042391840335697652841794385629247811926350023827346411213469754418201301172145224416832077313741326818728530953864190077644360744766800043160562412099544348027706347471565079848392455187767242016324325281685441746815050704688408862954091042776321032344494637728310955225810372646451317114364168136082503410953143312662774602822772609935605678963318646635794708030345327584644195996065258944151112524452879158478098911235826513858340521117143862966641996571693149934789605379768550620769646116075997437717745288022062531758144446143558911697001060333349304987291752028197558567778491634977923114616089490580012037587849691621918983906140478076846438643544006850843246590608619221385131433924251225907310700284962562763890794137192022257322668418348928563565748743245391232442728145799682921510206719627411069354107457181131377103772758752120976489338814273043568447799862584566706156809694761255292703194837551287341165980815984544634422277365052130875307570687471181372355593061417294445123309775832609460176430802664944153829747516770180056465865275304485958018974506175404619131439179421745954891205522727197495784648956407094751525942906898534999029767793909441810629171823475039170767325679765463388248777894954521577224895384988249799552453689597474052610363659595508409715884908657004089755288075168688337931372420143573576169472548238958025741426360276058059120790582578330444939718445689703210174327878337761947695334738662275412031919626133524981981050961348500426331468236207253748903654891576330183626421401158873257553745471365901383790376458259140276394307345717635570202894456035149779015335204551819661937726844877199278205288350440395858588281253744568823976897438307433889251313589615685551683308659437866525314596154880823894102503346782207132368271324552877558380921892425958064910384512280165004997080067306739424391856885789940592179304647485453871874097020128929156378426256703345827787282106278339227412024362528059766669815413962402217435577487874855942279870646217400915082367252415262521820580070779665852916235414773546784088157574327314234933097476780547009560947011539171005890554712036349478490458616571839452812880021114906358248341261940179844087224373919511223105906692029315672568023602512776770472275479955930967110485034945747495049986558370168012691686238960538421271567211875408062513491553169585490820194093354049878695234949632546120422315092091930089344260174722078303319604940689999542358062381480288188763583754348431458425332176814360355784857952948546880122836985718719263553499175861263569237240964050618128690342066475575263302899695840072514175770628636624453788887171584966230472220946793925233167318887049529014495532365226311168785006406083447379234337945930220735166976724729006784173837619762389967662056834341915877923014616391205326601983838415029276842139457703592174879058906962917680979289229445994913036705585064142858461657461359769075489187082749846166345237448628085209133731994024675085027656190844577023711243497834631242295675512553696260542234814246760354345350813820714364477536101446010433907766983991093003659328912003506772152407250066494652996138858359034109968837325608889981085291596094937838532818630097316047911029196302873026567046265670029971054792275022914826338316820550674643923177954683224879210476120322120429696646179299630488616417221638769900759309669087657571077664941884118285784029709664461998068696995488463215902756104077080420416646566083972768075581300703980786858971337144376078952593525194200545980155334081767586015360516787739220948659353267252136233084278800300184921811468178147925346249425998088808605820566406357885065335826884961712891823783478374360537054125565731908465095016221659607277045461849470652441029620678214926838300620243968668038094381918789542734216504503542970588937588359068235165518083743673189297668503217402193760811866776751482584846906346204653731663860857917683544911130641422042388453438230567194551087844725819221102268396429860643434770688657896852598480834484284932883960956193709095697864605390024825414696288469696120742950622818268624321048502810819987618315026009413101970876180566132127649487219080930106103229680988650159242761426803045008158315289884731436587289227841646361145951951850557221627095365784444072734250429996847572178050075640423588977093987413382094298084528485365790139216245369581005406069366016532538568101445667486136869588499686628354436451884436560461236411462112568045140984991302291601351658951755293042908277858860539955218610381887426728306240681638722194737743060580638401787574497661478856646125168031550324685786040409559681878695288256382152733557858154797666248517473680448143990600845443664099754851499849427004143675908515840086924153182557990652674919859200249294279030709626041316917637250198222356886122460579257205327545434134962131814003580364832840075336601125713704913027714113824459466131128390382878117703127172133497237755714329567178449306507954298024952133170039745877888251905919485470378795359095807985306836574441618414942534811364173808958741293864803593236433445569886881150712623268213380849419317950525425648622298928486332143606326139319024717289739332422229510000540219075846374553661193257397682774760708454114001855734792783736397815718207680081508601839581842296313262985623361506936624898618757784040443373931814637635798803499718896717148779458964420857138166035241870970329847997948675576237378441128351067734371625020195526609807891847151553091241091065339549120222045292477294442493442318995333278317934314683242003223575835515997477335226355973869358823825561216605399254634681072908299379624940420922628341634956604313581535294774256992160371818843729914369455727346055226889596201523754346040598972842194096504450885029449100982086123951708311512512001415529983513960442747311367612825154336062280252271127966330744388322799826830788194651214460300026632665324995412803232087332610737308665826580035597928352354168066356109123672965296923154723811919300242629102483702001702438384893866677282411654907086214541238197846065331471997705571229592704486869576269955096168000047153695866590543526211278730594018923263782980435101255176660533102459473732300773429789114294799455228272115276057479754043455992540230073980126366417863068897961879354912927532778340948639644620840538079258234949176152640593855281045773471451825989057489144750884845749629171070072805128907050952388761776088599249790538056472930333957398513552594813660940052564137045340387180691369647641967439383853850072970673267340358557759201049862007060700273269108793550191187548465337627932208672284268029219384360005133458871615035834466719236838471726329779698323310495343270685013496312168453433783849644588373980361639266675009548287690536255698520826197220185051270666801400069065986153839047647640588297165528173820482878246963518293984196298911281870233465470188001338052252691458182466674462796720723429794352010456591657996896591719383760198826607234681949601198484128548044723955006393011093697430136859796930690128010333846072689605102967422508977982607863195085151797819028552487526736323530608091526064023113988683147836497159625407321802154273437459365823540170534441028138101959702754154199045175978389401546221040571597363540247714336834777804712410563222687816437557308873879351032289702529559792081874663819826232909311531082315749912654824474072468356842451205262987956565203451422314375680224685391339981197664473556525146548285408894293048095019547322235692487987382439331099713238816897963543362764746315373875566434420604957710892441839783307927159322746146568935754866161790575173272661823248545763804160184840797036975243691656506326994964860423921605041784150114872794461095359732091194816137378978113678822310749163290674936559034445295483287933891632056575603390735799028752750606449278555973494930501487481490733546812639886142206030204212054397842558584597453323784011106453644383008230172849965852061953973948494998169039322722375296940691556653020439683443027777723167354548071639525365365761150953252932584925355346500106970265845327530758979366199654480931710133334706136295517126286638904948158818178085441164467194205613786836963234043844038926449007506554478513179389953877731485273960840285571057856598001526064241167581395333738602537056441256940269404596377248835302550784910932785139494930089944915646975062476860281641207082212442385273652459507540300802681747033820780633138277328431025451354574575517549962448980048492348765460540972911743867236536970701634426527626187774048143904257296059302046884783733288683963248706411308153440115170573382187786656911809174835682293174465734044829561810040438548352372074171580912894771523065605499147263583187027316188105593991013395400902701897590039698316029557435384623259127305961091633021399725855525130084082789086352917973104324237534343819225274516476081695243964525928011098902673267060424840596621555682969611362361081692789588515565286431982617691566760433090335895277134384530434693923115318121715715646995365305851213986942284502691335673712526312354502311235650437847182781650621186688211418578273535912537355134685078546914235360297515555760930765243871940286034135840824268825102036734623146175796225145265079883047793859006334856279595918170394652074426566268412173342379448202641559314423973861828754790143378407903208891107737236873778673583860794336274310704376901059180331726520760048168540083315091753987716430806441002813187703568292305355545149715744416782409829139360945712846961659325584552326674357124203383469099660719897308218640174592082479028072792298409766070546463214638435837304526326236016758130582498836165046582622142547016121977165489732547362886601428383789357407593431474321545974361730932706207160741145652930329892872747529584026441211287922488226034266589321400276130643678084864777974303328227813780716238205102323159872741674275517888384070391644860101233402016348946084380059404154247912145752233389536127316773634253924436371004495717398295789080927303702699686560565734843268176672649547418868437014382248069297608666728592996227212888964114904632028026503767114184726180973152613333435874165476126146292186947136416982563631382262708518658818475358827704291240603361835765327759178330643403510708674724204665847699621671291351265326440590564061971088511600136071846853657573186723976184835398657305107673507043836217070766857119570216075617346560176296598975754182767459610290325610032761036024299485427819406997592546888838525710841587023623264729602068365849322925830387785714846318208696351847058948170636214742861275595603281903643882151368477892915678377850486729031909066947265413450712829124400639456199878333417713015357664743897158327684160350136851403600305842490728302974448402881396278264858884247082360431842970376741178928846139873395659706901412069521178722180423752568860426748629580281853491866674035661082604132915279203127579653152951586228644493117290136465253521866125467659600112900534975818857105867057501712896907397628905788450916451391782032713914587542215188814955786841481706359646136223088285120276606523394590438280660342486506557625460130707580663182067743219667190346319230351821430820077065861335976717626649128639545162671650648755238925128303229275857807202690753892044300898068631015391149383506791134462083137775404098318906426737625660169612786778867629818301141466468485358439296704770676359099656338513055535655611024539700785193452342539406083949336481391591152341116139715370035405110699924702538381358894737045386140470458478762019583740010979287630301227230669171035339699761049929479330986094826444021644105549761844656995432613607296310676875715734993175954197687218567946158340885255869811209236826217854581298970703826015042027878162007804585249724301760659240954059457502706713899523367246408297902251285792690279199800717525925384433520553329826006486504543632633638691901045702168279238755069928903890725387309052617063802128484483377101729542840313980560957511174152911165071907383885148874403010304600075561642501513044487297523565637800615783244066251039849025527879441036374386855954150242696280704919929516820222657425139300192319917568664567666244160520957190552155001639715423645061354627761465965886867320453206986991375625415374865409092549092915665998632408166192804207854587302110234051194195315383653646285358366573774754538988690450861305376449810431924612388739150411122734272127527034318108491126129999723671589536150922525457603607745611033012348383609064415040438745886407966341521898794069763170363338889597775812313438620585260140899097989396115843910689123719262926662383124778128127791495750372692159751675534171207590451667847224366029937221743834358344327985077448339766379755213839611592866598868511040801257913430481123521053236020985252296944351267662349224912396558071428389582443872884428792896072285029081468151618306803735074861531119658754520263903069210812040093206068259600739205295119269851761836644019077090152837477935058872050266411824127632207501650697098101917803585205891758472621523213213275976198375873029296626335575368752880364986156124760062593374561577013461970719846682962910336142954060945270846482727278437447801647964208785395458125251651623823603866265354126595496329596370471214126592276026044942579771299737769028068277469137166631562938462820982459471943675118185691929463255305706456692044677306757358728445716714487060500115893847412385772646547062483557824646846098052211694129375004658187911612079458043514521287166982435945683123785273628986530645445066246104715730534929233083314432917630109712761147148538381785619569255450115810542108056196352077132988982307540335379461751188773684841168865963019471995294669757384730954575520968057011794595555145137167991237053959318518508263975070883354033512035853753742985000968156843797238045570997469785103094009042988162468043104330237499437969723110328074758520373779651147921104575291355341795702742406999412962478535010872999521099355558824725337078318764857391435840140948087090757752977349526434510384738962659906925724476687874695375977807592994869668982576207188073517510738449914224501656199689586218577254250923354111765910989588586532947493360380067393906994612368180246152227259426807488082431321119484892923653280942762733174335370431593162446260556324889605558828111380920873296794626959500602145336371946165409732056152347501302931194356795084753995392181835070510578858493115748971304867072052046474515864025118094135480787048702482106235314744404209991344140295300958376539677968235359683899666125070280381377267080704973473985537734027227028870063877095950116854393878047077125579314249651784396625023855432720545702178980263207859539585856483538904693418525055541027555502166280011011963257556698959037321572136137821660269023947842861755613919188954019867897544015039942769665755466236123400680433784762206319595263788485348672498416285765215091644363270565359394666980315514585967768081750742838587157173579294052253086154853500978779944635771855994782903860365518405954101447182194656631756765171138317564000969277609736175811175434243061939898852895324376045787244349961530621138330976417054380443413600588471372505158961862833861896127770249884479283421184445530676227036193223909621038853889840202969778564978686653442034209368164958018335426873514526650667654442902961429364216954401653905868785022691165774211614296962074230694935254700831396473600324943975609393460114089098344721282725704835682138008016418525793730904013447113990960720649416627590895308070409517521792569993616969117419248495514284832940573151181649192299664193403168892981268747689169757292540354117490935382380338275367330648324470908797768887092368876541255186325143069320688756899153335450422352986590764182572575762271932119039597809704392220104921593426883213016281594353018954078514108662157547347233841032175583117405702931469645428075818844320325243594787148681888278853412535276639776563870354456053199955622773014165961380688663490121235559330123486598342101307805945053055017395980402855641485453838850596343022249926549465214925624878768890657609927184617788986709957302430739894947816652686166152234410990332398196451036867079499373757146968531413333426316603042503274199995761498556574725418877534209839051518335510589832631912180745114997566602525595327821482653812171193829391924043607724163667105368014990220927941711012858231232305510341066597870054504021082192175626092054003838406192803751141693711173118910433408689636279230446096675857660185297972907045871668395693376045089304382560224941076198670194394135516994272197077966220071459538253128200803679643859999708226000122706177460982206449550408648679765520353754244678944426853042187871575048122393155510432355999520992885458914943999357260423280674267232497458561081548278578552229008360157622441993533646156056588171967341895630898963644713978245690147676387690048140555528866811551357891489064781481293768510245435269546207365316087632088876069975978324838417084004356588796401598064281803563281928691501136210422654846112658077089954637241722425336780088384758235455224263267362507210725974119798409629190090048785857190161459074697958655661755794433830248477617502576939917720272321629805662645600285910856966991573722764997163717360224086019963564747446310607643344026270554242590493106997771090810694933350639541473449313015475206272720114559544273498174428515751444422388763207255101071566092063193238313184168665123810443548443342277424703819240256412248354456121830697709786185100654808224186003415152803704154535695201856849693696537280136369508672357173674544536739092508112557863502064922737330981277742442576294898129563751724735148692894852591798037184579759374029358258793868145188214210051305319861849833345711237541601722735400478277375492576940333144266331685626447297758651548461663352362643177162654323005915357623119522540417375350848675422634268270288319410653791806531575461098599328730107684295396405802284784955512307266887729634142199891409860463667025470282340101641260618805911576469192614265293015673116667723459763718449220785423354389437675087100396897776371343327324012251716322366139665338822877122199891689076462246054284818544362876733199134763760450260645984720839126655874003803396148419820909944431320060226042961861511762194061869944896507189182464102829793954062943357071706209239989951662398867712058890137836913101540359865256770801552249340628595910662161362030637147436178082003839986279321232582195293120432526507092013513045575766168666170697647205406021149832252577558089342661599843938939850236116288447902817335111593553449047222817663717382153015642817492346278592393592215380098851538238677945196439295963547330475091620286014818715785515064932985456368866065380498968701250120249976688009405416755129434985962046790864860777317211771296592786424519549547058922101993630764685976914707990408018815570091677170007316331543420518283112785534717128961473705284960493247263008768286061866505206935863732663329927929186372991394850419950966930210283074691653977017106314218057350758975381141146062851646551939451614290400245938816209429479313168608460806817026203739280061408009475008437867617654435855193446684801166398766929211664549064893224085659914923730435517569632676871503600062348418067088632632460707841613224671578946259508818689994924251137728790211618207611445912612889171370003149608670742425715524342911462008027192299050139748854160987597004413439108598444881488835527080747489270044458391488275345619407075369250220761448658171321453265220395427720409913297733277798144219761710253268099411304417682568729520364257868708334228203986853478169800545144321202976173339836986052587821563667871319448913559766403927153047826034785733749532264576608149187585530142819700307810645617493123683942440347239488178508051137510129782653543095558263060902071636101427199245136931832394694944034590605635208452484400336154752844102777511190710518575065304756606505280531778419242020148136968441384791802232737473007509477040709849964490309239480744309625354812435503536378870367792240873794317298388362083967467818486953249574728586026905570153509688970843767734507336298003133717944975183381839721822928833266337773599585562432741992114275155138980000625896894917230180609280899424805828917719911386969124728654011309091249688420180148061794170909674459739285097833594701169108175224866008810474044320771192600020772171528888042233467227630678577028338930708131098348432920890932212073302034056632298882860024097163895638455979981978362769177248049517542384418270639113052543955476312942007995798281889770659993316083103655887768547230321088066733643884823818459971757771171092058388028534356328639013222055432625010466375556835288371071914678040732888287970568781228340056070356588861079301401627446591444707752878819900780491346421075345589390090639708967504779268472066340525829262555461789541521240726174776360888684512518003357507880650727802934657749397651009925936940231112961622853240418630108173347900536672303350150747019447402594700677537657210794759892075758748837899205653532108345786007913548268893888431688028502050918403580859501581804578307719542933269126020159070469879124412191192709054960809083115818263754625216980406849422344191164895564753246693413479691976965301371814590413854862736942071303014046159747094706231845561369121848596665510341646641413440793657993377517599983152200706066143446184757925802166777358553852651407658801175202646165784769244534314274286626694789380490893155206117141927573953061596125193296370788890027787892213421254920593020571801276680037658229787041931253297406712439585572008282803352680367072482857203093227475554877787278459345679673318254639941571690859737542964612994995239492900440846809523894949890071046670420224798799789203517685403147867544012048225256909470842875728565028839732219095884569625210819818793935880991426780469765340654292851678501268938193901637475172232430196313059052943356854003860198948986410050005984381564481239196306660962499632348205681099048191773349503871269490163302152607752033267740551112046951908683656016163657404839665563722159723359467118062408399461926348426531832666911490081026279724413780738905578490500104816646584073458064921273413657891202939237157392305852024074621895385774603231182319293083504142007163614783286840749155448646640971040632276681327908016474563511740355914996321708234751425347372730669530834798849067905653829548997714177705123833584743275060371537224588657758057271448064557630296260748425613365681577107092250723731366046257035000471957185548420188100139063800114139948517942820425206851731077733058238031176735110573034418714749454547179913104718004149495824256996038812215776553312716722788487595504331549940215420580451636280094858795835410473470136388288816323741639160472111359474624068729377564991669619997717107466257042574955531360031616553881082969498866619942490599478264576178446037545565316201438870097827316619916674847497027146713486985311087469727571320884859040978792613595762052642108944409735373350371443880091554341756385726003064126139773112281163823401054630320388187883140853528272227082491012014082609904942194627008302440545162899648630170667079302249613678937958373513952511440004917370704922847677300706686165520550120444458720736549975326202515802654617062469560022661617041190903364839602560642334884650122759399689080555714850664677387184010953410376696182199649275141762858817369547927777636076380170870270683014253196972396499472407314270186419473779670274174609219319685348595793467779942625426403796132092887476967334010381654200373523182443049624115631343719398051751574525338989303719495989338768495313151574551552730047886757202272419671560771792397005825611294912901157782730237401282929328846588236521885159899675624613225029948204480238230380090095739443022772572536242105297312019982524389900539656121835616625746150019685567739830997553040105965052522196532565836050708681409451572578279457218545601080536510141315405827722388492933812252143149203919751303247153479408283505261050054640297141528277331601086810854371663302505428127314611139537536904598753088760043839536285509237833342254054722288972300546796209550212354310077670595721679733671483486107452279359333222580952365654493194522177450564623921196783231820383886046289257160355050930237727228684121049119914948959157799375568396634435188125119563167691856545719411269614333405798427388926566401951481609097350262177794011763277063951856584183052057081656291168003473803520056825091453888797668817416108313173413270062343298415430159753318889511950833006625805890822653111448566508071185634861753885739114629536401677850554559279971326631756047126848504830844789639393569545353202974036234067711651106821487370583644030962070035827549037919024197649669059217884631237934968977345825866036750480368178419134134776785133427077932984170248633996562163822461997075008938042680565656642711122001398175250074910164854961699131714197809610231325781067539696321809601533531080024711631022508830302934981965227462571636033677469304227892823438414816917068097530656894836544358048202410990600947002883435032576150665898323871035842952455970036655470528728308739808387213666587040011772971537972029687943124885842459835980994535998873528306363725516416874022786882863370120185927224342490001592991662089175739643237061292541939504980294212515401258817846748096775212532591843154967452741910674272856307170824972696652610262035848774867028299421453525441022214691812318113324835818531854024236576793929735275828009107786858756359948790620792591565531160783381064803921588180559903478736424322855560630716275811426194189121218167032383235867136589171275172817950458952841865003542546785250995993255379030344180177592251110447777288917610747494583135516944257326092810050366421971614144410205756097423632579610983000852415506250440324545431510949253043256013412405258905335950086794611266734861572405967894971215246955141853420749693228605677819486952854707486085072919933693320227983274104350773491588200072368432317780061063781577222213182608544907624520991049469427274520680981334246495517781777295133127050597205256573407551898952338833161073224026352231415533346270958672504448026770567743672710243771861566245431261193374853052180222910649537303649100329377545302111695039858521325172622916811018619666020413556332103159790709728686048700121318148632060571718071949425492749809531421582143977817259387192467627041758543422475641398235351120858535528871519669734375425627174738037497925228463784454782414328750599661922982768273033251394432495100851519398303318402388922112768381145846893605059128175059028665019172733177369190051213470168986253233075398057818328802992953574047113494303134155848646970889781570491547796989802366352465627200674946534576992580083530373576484387448449137401314001731767473764214971753812332296273339196543592152591015468113610619471189596864282487790506599717200710940160938181704263311259807221021339640751004634131965502753896829113934640211424758612753941894497854341343897949140341107915874393279410031740609947294367640025661336578761514248978906037004059728342773430533639841392023818858748526961639229702440270989180537560373217032056397594113699616770819923471253753683462603133965516500395705723189046141183751088059480438843368088451935107249126011547378762101639155497710074439997703842421568435357979294366301979461485096991468659871022079343603348051856002746298255862532382448409663158824163747144686818528800024285550345580392893203154630516500378670298073590979542949836289954767429143248193894640538341225680393128592697349584863699311705701983963090403233355952347493131589247378694800750300297317932787845857986544846897460702863462033038796058805072298466931326722727188875853514867178040753268908325551890664963410784687190603640662426239516111130634128752776440409000662580738570159223815467150889737006578270663233773675775920373401977011221755678096634222631440673844858329924365785307562593476007327968327922314489258105339135211293402905908027579740632242864907325642101819741465210865103067223222947206368994409693964951705949327782074343308964912460837670585498649115983757405706295175949092116159936529078784861842850403192345562821209486258564255833620101283524835671084756902660560984622682750478200679804303667213089005643432923846588946233514617036598998793356910532469205750946165175417815162765854243703734324203496985498472954696784787025664793272510619729873845061543355913556732776951279114711811874411051886383209916742111545818593306176745319619920805161611508060302101725837542798106526376367068368963182326735503914162350049684726888318292404510990931251441701051105113970259735670130961564277829801841142033889940414520538939401429389527784507439404751283879981630546481927694589890099866049643283260372670173345934426195675251132498984636231132557147283156014292103899417678583797323425858668477513534993343693852421339578151070038110341478679572898457350762390894219276798094044263994178178046477053547032278530618433426535011449499496915053082010397619504424674825359712269101015046140415403496619042080194754515746798347128403104223990771235942977710449936738031448662059001626272134683073289952459613424513258865693532596181769132938561216210700262714945311707393460296561110698061135304035996233127845327512705864628723402212543776230879403596857700995148613500686243700969912251973707910826890721695711367351177074648412168420974728874940306793682578696593910225715961557122646694362303715532078578047181544579466208750310763069585488692560512326360822855187401414986471158914840443630148679137306463483010276994819513227903849162205882583033923517652510227392622648665600010141631808854783161983921523020816917470381236485272160972281489623184234454523370331172185950270456877755314130648288165228156806831099849992871063844529206110521335700406363761577695644737888391456082256085561391348451039457193849882616088745188147171058219259563515743281635908970473884245760415502392310290061172211123247553298597359407914663869287200623355938905231617862496170926716573799428955690611818548317378711459897950417515839861661900485961685795396358042929582420851700427296849314862756791514222573051421888324566376840303168379349335381623584024074253596705957026445002892588276297203975157972284417126041357114364459731633741055557682210630744371336047940940681094578428048794311714451649588642959019769662753050090250499603829306528224040979766269594435443574399538893566598313374831059065292324929315138847360088357150853163946905968332410384612936912737640260432539802671570316324618574541304393513652944196413225982866316595840803839897135556821691956361860846776103504009404150097717843930027204934885140629331483276802912601161906463678796609800898587222002939593342160355002064588185686913835737275836792058417784601100472963778844589131919013685364395914941620273817080305730215624301290790858184382715280833741020574604296738204475555569641769357246749466500205084917654729706448976765121955965747818261575821641579432601210355159828399491204856522454382793642869775442712869831929466810176050474323403139391314044941709441471295701797203969876531249130748154415849495852809220117507653421732473696058448133486399779983342483823303717250160163730173404145079902502569250557193700985758470481085329161854056062607926434117892943175357912875457415767235107150381263488972466968055376965789264423980326324718496821431220737974383979729991345554829776756694970333759808874036162135545818899999469597850014707732845840874818349788248457027926570440665222090926773623147392574837488412855921518688238597605072777168633967753087596303250932415675593084416478521593309514273955569412467534238013053998802239959825069134649804558948566442651872936602664099081633005078862015122105828342360892945251135946159427850326707456386556531151761711467962020624087592921743772469172025550018454889815030730208202446402247028622010564010371029141230154038660803716363419003093223308957312633131929038251149692769021174431429386470918049139177914665926145451444448142196341234271388892019892476429293849358891506638141806602730273606762557939525123930612266809988872868286687629236514956943586371005883128712673018115290258420155712994064144212321867303646511087680535965291966705237183684851917000630603765648942778478668136687368224550022986710291379177791693219727885121835206649798896461332609847641655731854070181320220640847135409965812201768782400618796090570026112301311338447554841947649906626006677915471782852547644778207354315257687203204857172285980616977303405602191009061715745035766085732809768643680851586343550091872833703253940187736145792083852502944636861947026626239722468423775820777737215543234592437640175686828660478382907677743371313854152394812079206228015252896790600654145937080169209100472544148386829849835203216203302290180836891555049938747160127810558370880923442415430439330797069885624353857815870780115244344751792389435165341240103645963311392808907270222810140072422088232854006222606064791680430493958552037055078411375219953120786227555849217352907102593944128179821635006433068738046471509849741357793429541757548967318847627419220772002126933997625901636193976311270462928419809628089589938911919860608290060500016095335567025498394204011034894157045086684954026579916929005738445680670968724223721640958879120031888459839347371327010724827903022132931859323162415711089765969292794419888910293283792564939540351062139983850090424492288405577688585956304502076885829518017402344566765305572158975818493243249190749206167920993432391154132265427447795242491827689411289331854029599314190551875626615246280186613190163513622817473811278468154961395517676424808180876832353634299919092541041628995715278740916252292165110476227835989056455740307639282114488353710368731756697078990541240470442385272374547740600812058475376721222520227975935468792687731170847905535100322052337831234669353747349252781042941164752079854521108749640747366833840236858046149860561491092958406805327460232772505751199774760909446982029999137041927165476661393262256707719465509014345634298026484784264090244881633404638501226960560188521031902542176747931062292167166125995516244455840997974383053231622532981413847047994549648886088581773097124115858728742613586284212032356077274819582496702790086737766671018328554541478709208217897129644461495440734435003787974176879219481044408356581509325259886939408549235826058316094395699001208834687967201359367441634657084737095460621406505318787969573798784155090735968238255913918533109379007860658249086509553517298922896454322805524830481312229524232521790291537757608212815301708221587994656349327387777801131135479704684866383747624188109956305719715914151741104813184804348238635279907716886893498084133588920074776298226957028951913889020918295217784427602665487221045051728759153065851989697532665314761430797332457613601233217492366833483142767765073619908059630290575163686961919118199056578556855457179363583298238955089922553807728679353790083346644003017222358700854491016539469740007853075205325755777023671401917841121934558802709424154671306547573440912137598213560334459548458396317106568909284811459149010989881511833010342916596233628990996757569353004282830487234021172915239572478046987538844071477575244030926841791801242236018510035333782277490556763339128210776571593318381397453121143160915609529197523131126482504947307089810259801349471498516982735918978179175323722019012849418902805939747850974107452579159928335955888720506857672684656518496695021844987442730546684290793014476848849983163985901011826278188618723377594490633825019624267050744420922007945106533568245982793341538837327840672868915276521201812218289074453609783437372329171694858319492318881039047400262595774911202301302802289934194712461250076025804828784619932246922691583702804705841440706105347321219150598104430885503269007779819940775903391725045930079169617528879582300938049586740028424834858368230146074150771115394062958675682637336766282062488686295549083699402921184477568039823935248602366531522701414675309104915048958055512654226460342978747582403171753896920624499519719203040990304087763924793507596636210387228372633757266492005282216674423165133587962683240826392057619444037019330048764820407163247356182959745979877443385456891023588472912431909178915705248621883405424291180724040075077813935806380160647428857853726662680060022614596747304974020430720705791571390158547103538363261315468346505822871116377063246420692870229206373424962226428724994730851121349755251851302195014360504126592144672679434308896449071710492151549747179891393320903539086487161170195798736373777669746247981360328863151651427446303277998324409489340926143284918013154778633251635654407904920980209741646582718384765407940509230328086557768084668219570900548973588630621177351391667356890454506836684693820920852016223040123564198909550607520376929969380893534403074461318366937453373527555880990607263286528642099210539759184524730699794094272211067750920078538339349416447592989636259321107283792296244155003001261807102078180626374268355836975010272655025219081587490925492123023222047357766138075598364849417535838807070909926066940571684889062233420828556297552654554705563434717589850886011459481465442716557592278593719202494561681900356847986702041687664033687198629589798322142570096227631579141344718653614252305744040201673940894117139045428542896529931574762869412618926200083373891856634625248075731777749409787129912970865237428038190684391070997985446996355903082007656497987718838936451099980857744082140587405240065265378143980617649796094815312324220882209815432753474916399370545816963589348141908472693573429473437729855212930637162504243244480807345278851119382965303535488466841388397574841532416640013000670752176526398405857175346842098833222520128836106332823224446680316837767730874244205281303764172154542965247291409448882676705523195505863490465502415203002732492533240635044782183318881516601291596630730700478643569782265849289853292804256011650744905661988558842748149921496838276170610384123290706225479235335963567511288241145167613973104413595708972426072434240133374721793049083014720556251714892715915543752328019024479733316529641928773860038655419823417441138148820685634478306696986628324846130039889648657564177888134218763071726746213088944834698623568903265525299017750358493835346965443289551680308426139740601406202935246808807262849949801574346412996674623848939026153050298984214653472614766779149665682843318665076953944172128678275920431615381883798699056532030573420527201911950101198325025180704096062836196743647862586762281641822093883660247387852353662603248256124603062901378319558304311929499952374174134607141753664810320725878186254622189242917136667727854047132210578388126342985953635204743631713476265681860303137933791804356822684390400042195786475908377741547983973264109784095405254215667706622181969711468686089208456923729354322694671901256153700273500768655063792229138055321715313522193349604346705570134823989082471104805797835140032089796288064935968090903110504044112487397231549162423273143127361764130216497137889324539907491494686023074591627477768844629314745921510007635760180917307638973388615855156987092485429973595965328662216899727642355750773520178023653760222640634422368811907788495648549928236034270003737945075764294299771384520440704793734604703029291824564565045235071044868400323291014243862388987494870230537059883465764496068864180541462086515967352873967831149276459380881404210306506762827839069432025856895051858638180129497156632961602363071613703184969069757243025270678277478820230618975262158545716263150147645971891654832607640474877950343581515742431180917619205227466493166556750025556316727286719294179209021462460330840208216468595867453384293899514143458806134275963051603647593603383670788004704555650243426503456583143571503750384838105070712293593706855195330457842634318395924295811773519180926464045633295942910734917109488123783261717309253697235265873679720624899072012086115258123955518626256085072728671165993455959883685303011870901744094300454748787818750785286230162922573306632910749742671256048890657899655397901342335570410629168483523105420049649765628892377524060666386055950045748197435682791774921491801382949692416780630083688805187611573939211331215441815263079440063298574744261876309355307216311332686006433313247029550034582084279657818807247725051234323529012848318847553112647646331703655943535524539920376689876063996642117370658315381655715258977233518964031658035521197004525557893967091533895342001692933469300378740148148608381950576479178749702931427285257385220892337277977997547232139953286250374755291019490074100827077926451605317278788008497018075860864741108438542049187142429530058629767694662722250405231007493925357699334665834155995701999921911215667322433194679884980334213735591518369206428773703982955403117141807875239118066393330346600050047050800055369883474671721094375979116722584536443071798584997734211037589306581369234108738005393655635683031456658048280346428671665551095290063569657102506345601414556069935366534913896399002462999715474497562470578767143886630971076375496921610838820684462709102088730894838837699125852848545556091223243877084350327171024704812310078697815173536179424086964931892253006580673298354981464222619304067335050786296035866676510490791114888544014263822015120428947246284952221763442230439709971801150217106831317436648487871223545777235070344458670876812848722665709476790960166840144447810598406619367339811062921949412599462260756993101501479639902049775643204285805932442382108849567703934212151732179662300832268406700232745831312701148057661387605586167308276443670852734526270442461105066466747862048485911954903836280481532369057960034615479342922103438735286346361245193479686522681355205219147754346787031748253004332583782188543956098069652184565702387491845945128721181217546994241306836399319329774339456470051941856232661251223569519076271270208446682857288387471363858260556652953216178816271928640270639945952782246013459657596021020344595384631760455383996025145660185297276883819734498620520241740516005672219991155614716988054212679504252431070799626422285858786066937429832474051638711652394546178936326757584801556631029601854437395283331585948874200853842123770692317307587599980138871990531756931026841094677802072332078917063896830679673201002052671004235343590146530858764685828039797465787787996972396090234908517625820055872550272309915794866401527233579075295498124081645971947260691921159988147652067220776485601525014198484441629524084503498564234381590846621424232617502298150710030224230655848402149476602504521274531109955990409747728565069997164021394628060557103188287990160569912632935445240092073626229249633718339418698664953526832560977376349859487579046653447439863809895508961290019922769931530386126390307159465088586624507174366412940680687850325293771655985399325358507499786306358299140186719558744278812982982123213018445308046543688701017331911633825751791703662711229746168183871503104844220715892050055143850790572245874435697016684912496664326991536303008373472694039719277662323477147830099458272947604151862651160702640803976641006222352045532745846460987047100842684998399489929321610254795003192251775631423527422469034711279869378026442666230189296179990127696758365309935521490155330310755366166476462620360993472780238129578566648310171518480808965535831807551126252871184752428661918827386943767994719160247844659515410417017768442233531917915586986192229712919933725934905270866661644696946086956918867733036267388375242624197931534437837281213013825292851257824911206481983013378244272658555430317022574649293337673970316400759300074624273346335983659303061011816354615915077688341686875360585677708131835814235109318668060295024979645370666322218716783654668362036811904090215609349426724485751594006624096017125032660282452905295277109717330930183200411739184032590461634367567996125967648972589531254357736531983689236452865586793792400953186581007109290074352844978894799181470904465658271368226364112879459973773632568358074427895997133433047715489604563372290145248508152650141140768877555349634526822023688656254348581509076380285747447752682820496212491336578026327579306003151648876117967529806961844805084222715587881985027573691176437070335046041525642777336066249928713296518783816178568768777552808185652483290326336499918064832081024182772885974201324229594433819015398053290812888909581489218174903912015797578662164305385461956568507188918824200040281581123512830995890450337048812444998498087213562898861400477276737495253268669529058356022329457039708635625579854574188667237436112959169164935544092814681154114285877350712968450012806101017577544251654481289663216080019506825727641867720488337472435379209392171100835906747345014820117827206507487760124183199816378253003934147156959089494359255537152875821069505593548231775396317123365515147791853845412520416022853609512619714403796280193912241193158013318882986425891385988007624756262035960620886082781753233321902457305902583600936803970129160752556218236262992212805049458015876738706909012563726806906618937705951855893288009059834471591382156288127430780477906878175898477717744184263208279516456526052304238760502652009251173695093742484378915971396642221818497339110429081930426952246953433480014405791918813381025468920076563226770047333421069429150212525051586671066619483028420573359059374425411997731280169123844429287876994649298814236329913857650835103906479408645242303064416072813301456321405142929222918653430679126753079860959875353480233196623075008037006850406197886265246649047386539526720096524396740925365025913663481118871969408085974361280699828899644474647595778954135783847462429019689418112883569213340613968350727516768249517713195745609011440301671987463169483958822722870760308013182675337856166182834371028199829720849616609429105270524572463130565963103926645171783578988954201333441068518051152527422255640070686487624573862839263075831378900122093517620835081516666901031875404493906595580742042016233111721416915184927376256956666663111177667585726114043936566978838444347371899660193347306631916371034584025189660803296733703297433656143989550392906877165329329984401009555459904972534446085655494123409411508010690167232909558387990564258174864963023787034517457904938614147732085784550304337900658402984826228519697312920204868593666481442618671253211718298734082971950427382253874607717186227840695465351429382549641322848171191151994481957902435790705302981561473965498074135601439764108898789115570927280140578597140904996000253018927629372275898128891747443861212837909791321894172256979205201973958017531024976853301818647749493338699413837506489636030932611040371889307235400886415590499964394627185661276786810852551438258008109035290784570187339722160113461389296745775070353938276510700141406059653123216599343022250294772590489930271861713330060857884403272779126849435800021588956655299124650277386028943043737900972805512230608455188995853852309731152204128649789283213611945045182352280702564315171931370159891688653496562075370308652822275023341239743204540398211237064325160948929027478120167987164208629609480414485714978410191026940074348956717163034067318776461715343988280946255701743242666195376706987896239525275495131155185827130415398777600434834970057472819001446424934297129435965345260416595574895999277126848150009030436668625780844109932144685238206020474576458723467235550971171486981732003572886917244621758625783777894265746693466008993993410965187795789584334772609555591660071679941806111807590321870233755365417178979302178263392547347143370447960461068427456390921923636198877280883034538706611654430798595499951451081214864912092651023490814798120661222659604242755227834292098746551364372991003036021086291372694800758170545564035867925748929022271944934131551436332254724383785434795616716179235442409648573590379238113308667858280977797655950398420907086603478685202895345294282245865082957366273138129881494778260197973296953238941626955371232184622036312916211471334531114997344022087759894908377751099274580279482123651455028053821570159717846527236521155142269542561559989199190796212447560115658675629153310197986388184982683250060416789153918698336653351001661846996742009832953309936281007144983679133787717786953494335542554893375121200769225003307819375579376142281544369832474650479024433866047818480707102812771557674357471233691206792684499495952937385706158537506148973207840540680650557585286209153778921185134805520483002188174857461860633972133134195009389119114807678236944772788124989432304786418589340770027761098071545315828972177568823098316306503668142648917057223224217440444507583861649692358551310595797685169330053138372346690773616974643507530522571888476345270092987898780887414446475135058690728447916790494065490583278813537931225831218229282797301138066349200879557983200082677145783480169043527229565160560946086629956578760490510486942038187643764210578805164602457218809590708805427485198972159195686606228254524888124974002030918452834670933384788395496146307997307062914606511622401017987754758261094978374892942431732388100252239055631410765075496949899485996954362424179461556260595123780578371820301186295160616789087653425699302145905138416982916705096793370096779237060753539510487313866901011444988648748993058595410328933609378056383475544308421284727113958517248381747355339571171386370842822740883262272437984388677738417799537998056288081966839181846781669531113067316479413963431444279927512419788485444463064684938974719751508969074747072129787180473562563825765468702616878651676797896877289544959730526552357239583525843215656427322537978790817703108489334625610920825840457036256632512890416864242219474316489579438737042589017051502755715742539318696545806994538925543613526901880771521459909875640744499146299067129561191821381235456349717063000155111842916310378931947224346321645501176045965225797890083847694437438094562528973730931443237839926513270576809183230219167697062674827757000091895612765040274221343753068485054211112741131874933482657798523307698897543044878829552125984570782142551345393126043819598635699264379159661289301075029433851446823457033031380047496636621803894877253624168531109402970202667749321199684885250607350956684273218224627911680400339358895569907443237025390181203585342076792966159904964419496185826735528442370751781658670241020516849694062154133553640380031255547124270611917251126428427515178203713827595635166775208186635510281225616848849324083598722060400008330650074031674835857159001743831769728616093531305250332563895013579434886327131187801028598677565910616016927333651168755391317577947098336192780244343677529592477283710021444584609238219712044631090602011642135855130407221414489155833928728838148675598694389117825224549060727279267591078514850659352511996067909268379162232593689035766626574599479407693195733105251409570792503119849044252607217675742482990451987400817528169743435944461223793797301016723896975607060657160998375091767741916446686193026357514731542398959026555778406404909433230410013309824379021586823150730632075969196018040205263196851127846848930489804005917806703424125435757228381073959309334975815749296974381672638409636254174549443320429095631452361758297403745444168448306211084617985054479712956360582801538082756402345377748318186116817457502933020126764888050550676848990587470930640103565295784475944852797364799200828098544207556143485746936449664457681968865639842672526223731138528388012470669264454974569653608235879778364638447433583277077039147427131355197255744869190401145537468168385716150776278480604977072570695878615413812952335737808254052107216787356089336905877266010954019678119671666949880258636979638596171725517676330280570153581532416020511251885466006049260418166765631389744041833372891002686463125077611954044782224495095498945181153357304308960520732632779237982111371712260030595502004539947134662085220317268483056999851481653954983441393205885591013211331038425663274074217862704566449787325254213396232935728440469365889565066600143809155754604963887206288921956085885482562809623881694239620980561712482916931324655930340714130070640088187193780341330868174151970531805439059988662692946868052547254976650704266662642614123109663915509827933427555541779269071531474066498309259506827158450912598176314869900758571559426644743951342735159961266999872966269138548734039651031499054455847089586020653293354629868718766172373482595110460154142008128404783183065139831204672443712789246563274045675239982174358405238171695360639173026925547399409080983193306402635994640208878805007834320098150562212234757110463893033398967835791492976641446885915684275387605617658645236216011200366688154315783823260768956383264127585209760938180159910560432710349901819335165523904473889085727133654699240682048923329880596974098231795887949871977537315065210980070414517926694112536838583094915506019217129428704242755666242520250982028592578103101095749246189815944821377745732858815601486549537462086994668559435069882254499206794585445360888489559872144501899099718707845808445037015655313393211974395676007323485681284146877133468925934413461427959060899420960684179066334133621408457386972821567483938295650721217562735052439431022963463962019020606779001730733857694591986996747902825369968196858525490527633566370609313726758772702339917899392377885631316336021808573843998699443126551167825596948968459281012120220046493155588044782866887112144870054933453369255676327967517514058015290010546792297504811404875468659727324672629247189951245220862769766993365902416290192693548161827376266944142142868009995910672152704053085556218060493262648025672674890425830727766304468917960899143709565948180262914787059024943564032248732608227320547753405817130917135330646496945109398528905813240965390332965894294794384832042815002221475406967811611002607570594502961389571065840728935295712501835973363595971313262597891354106398913584861899404469292310855274776808543784556742505705768280308726391241098297797240205604804295112172399995869587755885437111141437394935740728675457573311348501752821460539395499171972695387217806558769901048683823418662257128823909903536776628244156904608865940719448736840724304861621830194535626498465556545718123596903784828725733835390081340956157261409810082812255120446468989434867621886340684152874506733467652109341505479729422766011945714132217407188167168449086179319397033257990112169079807994202312270185503240283590752163401753028124567019049076432505085091032367513228576305907258763460743643913433783799456194840591645367939343194812173161444536815887653873605212701714361816553308606098142956390228857422422922101776564909384001583744107683389113816889955040427862394132406132503850122406181422730423885550870553986042495643294790375606828746459321561373941355797785695708373210742310087048546117184966742951956905176178461036345093405725175029425694406843050979248785648376695177658241912746743981214034618018501270835391128144295983156391476262762648139181121939089815026200118911724487430081401895084422025979876954653245177478227492294812930775406011747335484858964882473967966128621253862349865723640827914704561556035774203689928457817070841517673459404920037947288930944090361359184089041906233295850392951871277448337592738481574087604531472253383693256650051013070872879776501176538076561287367258921382588801732117503596034023102639633733633624363067134952472582919967618898871952266265118080454378731493057721621921361744530326098342672559067567804810185596620117223373788079396699748665991210298442023671815060580747183230804940030359745924670247466577862569286485503421379264043092263071902076432408273486354933832205080506688035068752434587278808292466784679018804194672372784147577269457687395906502213701231160971164574819133127677407147125477675663589247816691566160182675576818631177096984566941385876656730031779265626308332134497048314681932946969648347929262668005434162297309186009830016076975745585618443942026050193338913566980620121040981046732353362643856915134727703173690400029732547021979908138939384575654960290816308977271216392044494952405208260445355362390742417956618682717918018723930371593543325390695361787815590551212259586817275187598985701698871621024078633426789133244167621162148273531811274827162761273639367308419528380766538402165126466083638193087025304974561660420431183466847929359252274135132343499376716802557350183565609204914316414548805602203067895220342382090484721541663736889152870457809245073483591043559529479171738072682578861345282071635575242933804641277541878847430932729876530198675481119121857105467435240539052247020578853568856775130175576015572318030226248620107805197318718435389419823405151916376102121789414062730130006431003525311067638948257593854172734776219679195323847061472615677491536031118094007877672756773279398184981708934143304573804418839011884239954057020574476273070501409678386936016598922650108347649059828779950809293108315992858634231635293462202106854818676926200010763803626263045936764521164894024586966246832221252277974822924791246705111781060376558360496160503722720360283202116942386613754526213094833349124567894641731612334513193409666769880260753164395676446868045785507002695153026813271713101814822995441825608882711289535466046943812331717947343737508441700780217312036242220289750203551803825235132855131664871409775776310930575261385443889299741340920227647195246581402521127989283935115903279724595710682719888387236826231673787576910773129092545052480994398420734307105726689378997247476413167104823021763216578323496381977488894888687154510875431533044272572279912982760976458426962281039241450391862014670310744124074429600303734811807113002774665817985110651220042846798523674077062514257713538338782098952576169174256077988226078463431618917978717701180507279123127461879858869693230008569853884254915474244875175626088005028636383925653449724735553829418969284917331346667042434845901255296822271804473579199337182755000914680297274940372037933313289999486792324415129768828601360183256044854443159298292461213769749781913939476885731375013057367432306115174754347411514662310573931365004628203311903098736963020764325198749244397438710165596148922328735299246205624588267486377924442376093717010013352000300447296426323782843436084540419668249315376916063981346817519475860606805068152118096095048048780945262824069475365766299922463129734577365835153583534070254010074412510482846586520733624115954148671835584063311617703101033130842532142027173120391751028401509681761234025581203395331395649928912615740540124618519285656759895209272135765227048730857465257212258155265057269549850465746848664295416226958021065201378453590806387307347445775856707782310316616801067996324522629928489580370752285419936101872357762337874149526176525586849788285915138629357011433476446912139290023290422246573722980595862663868397441657202636639769063604180644098084244825991549885702902730372775672193711175565130566368906635459562120486710663776620026859194412132426944589263098514004983277821807926761053788865608792059837868736744141323967795041717066127641308608028115786901328904149000430816926285319419863570817077754632900980490601905112797877864982039916430064459520065894240170151616860999599957911131080325044981750372012602999504732033931241770716717136599966409996225163166160864148424447230853099314570993147259201630138532866015321226234373038066982098562126445616157616409540651207800131577639643881984855139538968509567105551862929493720182286793391979334778881881815927543712773211148126064080800975221394997147401803711817846462901329325721351811323244508415500611694751471207808546270804769722781641402052422260527099760211441975606885864300746606966861490010060549434167082571937768387502385509010435487796745974048886982714559747484213600708777475593029402801619549536873739949243354981972039330178439132297717470011001177733563958352973098651849770631105028521652469868398984746432676641370119319047058886685368233811480667771209316265157748222047230430135414470432317671235689624493703515286213174536872150710720040110147434057824126331223038629906586267331666839473686121501383337292601273120484298753852893416969746751177699685198735327284047797362883714652654243994176953508074705689400622455298412313622007968211792919183046088291218460124481951108532476854986555844977156360757602193802871902247197141905843554825485860949348732768084269258599593881120939229113784320069304727800544479310066945974806198995341068323066969290529371468746988632104719814190358096539749544870775793329284192099881321646553541426357421528944907835479180423224969566179146523434914712407741472638291443442218645360954747940687348520499227712851569213580084362029707273523923418505102126831293294290959619302635022765938537283266177703151973337611887376579722446157991284688473461870558605536411412354915739878407153309411078156149077761657851888911940408445548440997434711914908384033468285023840945866755638534420479530489025134995079923738222146509335481166831376775086015779273491363099286218156407399765019672081662367509846873188628460168860669645612001445535915921002888439293729148353409366342410691146400557285034562411623942772308189358892734116978502564307315492110180537219670556508760339609181328340796636670991214282537937725200345231480476784290471793702289533668835244282422242773205457639189740763934484043264897213382190020420871353235388385189774568080051302346299949477316754981444161490717632673144104667076927819350887129521414298604764582002325575068767202614703932396884553743701163376762501345332363441137986558692167807657201586827887448683745546485859474769680257390862665707123738428312576188314722073191530477577269448291022131842483510564030797071387278893374225119775867623464424221943804798841207169310698153904986212754629811410499638982086519864323735152868951619716847067396740232601197051973553233556354293166829065958700580379884995440621167884712669243556390246190187061169562585714487353403250355423023788412630219114302022600423288311667340835757622714043216972272621898085650645862581008312553976182621847761419745868967040024876950490643289267236577287304150127980545698236689984533897036436681976863264487305501773229055045354604690282000031145471717127207776843553433968583289907313299515780626577775776961893676091823592673268840869001258089570597767716252001283572640642986835549136986871799315997250706574482444550254580088253560461720270829783089546933400700240285552909184028031866620722926825752063679332130454452043282093749951310321268724094114151787269830213779498585056451461543500115333549699692357921235128543793275254056673692033156399723724501115623382158806737128536138570709274073536866943167205269858182456691587872133813891697876695817857301390107766644871373463834174200939245303868758193781786501020520825006161256950025817812214906705020915634993997562486855754117825625187585006518304096609620131189994887803771224689061848446557232110591015204061901019748997393701881444342529962390852010199623240561924740786935514924072441474077730431336411277154966651348503922603434956921012706749859635237617299737834865686149387400722505848077343551919872190584375068728420489213932230453124242844791380965473325710858766617233128378414530121714558508693759647900618185904323511548175929663394095549056080930958271565185217009848613515188833448172438187565714130616981340603197272189937170505807920792011326832224926436971354228169793312884256712598353484839155709636209838394343393467594728057577607418383393881297650257511626250750862610080640868013635090151144303076821812109709433823846143140569717278761004760469212199524938710952165394781713620131938901652998003812327858953422043694267696633518366850985723979725257242944716182001892531917161656787112135468622140597179521653520965391099899388078259079863985027573192664445004979974491905183128398098323036804883040057242883741654415472783064921386978176100276556976404730090552173822673803955240467201338479070307432458190260651598617623656508988562160627296898297126344404813593563388248985885499554447145403605491573573043780118674257991936959489397363702722032091377863303055535980800485320476016750990973527785255728276985854051247884318608760966786243381327687411147469172246727112079948194864674425659182955884156039979901255404199924082187808519366963550226360227474996425550661266550944586101528523250015478134444665795049541620436410931159696091575191040414055618740394834936854032114178175017357615811414900560391602824750846689631562638759743165500929875322108833468560979510861974509723702061694357946830727323757821068648717663820110764905763060553338379900532807469339880535136813589057318138088004848182962510615350778578187564282875181676866335584027887303203866813207468343549248027213242762041996002090768036128813804625830207186699803653819083976570502473666289879933277983285058169727791577416467476540535153982984676672499862319003577049109233560488234187502693740528765347129003033382925326741918506320782012668004384618457496347462162642934958049584324793572429014634429281192919432702840138926606545530429607210491646426070412226737655109231913263456617891384263985839046615441708278911792940515795608248248321939282656247506042812424774722024356502635003679987209783490471096238282380601153396936625248530206505134689529195540242471129728950751833843282082106189337761606822676379109792687838496893429182982913562412380399742505416688656722885712148755978710496771036256668995084066486823898764245897220471655916379738072362491482983548513834254502526172566477303268734407312132984449550724952714315467030405966271717161252588951308057849576022038003752863992346224227265095018178388305702073690359079987376287221251416575120982376194803453945232979162557793559528002157978158889439512398388591428079529332821650657689142215745894198972649068644789297468357629470913512300707590674898752939149692999845578721403654878553478436444956692207944576232400960287812530094965950520533145212561358488977357946631236535480000574968683513750226710906390741467116380137797031753304752340062992108265700094486653123559533858443195775697429349138984515157669987015698662463022983484845650546674263968717674941693499776970929460245730988640023955685887967150129077944246376688458145202065242493437581380344044122538963027447449934659972524098609356019689746190341839371701756843041948340732096105810820277819093761780985816975144178587769512968244739188797849316850000267417796400412021410929268994674563081175187989909140143766798964289232947880879422695289076931918091404115111704452869028330396521721488182451369644049483829477621302509814710411602734867250611345839117891705278179588622552043442619037925473695683349074009814104307449421166319785932357673621693992172514392523116077287256604757273603312305140741452710937062599736479477082846082060163990175026431174413355901038410188825969001399240118068935112823151732127597867946304788309496556261416821983854814066057641790386689571169590276325649683022392566985309532683390565935908115246732134977189118659529852545970132934011560295877610742156534177651943260883372134800972793104474159414619902658468535450252369433094409606562773260122729532917649428506084366187658530232891574196434520943263217723016170431619586808820290508460373498500722016474478365328119050070352461070174584348142779304524697629934116451545700676398205960492261394543182305126115705708411281673683990912717952101404562982483808945593801968383483537160930621070180024579217136039562877967455703733027485158887177648291318503773035736968211892897841137119847787528343957478938242329359559932165378275787316012754467547600796774773362885090067061260137248554691779643284788885536116130028277109703898257334262548925145272909957631852075373783373082202931289752161787241325444781773079772940661354545074274782628431361944701838876590099537554267225981412242187870693970755663463932109734331176290662834902191204784664289779868870623023841877611001914770731183628542862618585295947271143467442199512311965792236153829481950334804156057697500045487384302167754815231838587700444382734173405786427966197654884438280551924509253202972039113084406794601266258083943298085673757574234491437537018304264560130567130111178863943555023652178897814172555372047781117717717297358076468939419086273388270795295280398548155570381740195328619093802584601587214252702962843920571215383074913786845904309063021418133166214931872503594516392688970364768244740426103796233850117159085472655986031490968990805489910617315132489570225637535067923883910003765202873212406644123621725659416351947168421879858720000848007438346833755023465017840319524704438332242222316671704652734544305526761805569237261475417198248447758616385619035027442491207606146124684927711455126537160449565623484058122425244506852646543635426197426883032054462637984977299375741591193841369836381171278565356113121128538322219269737377051925391223526493193833445079004991994320586408717576009614562109549000554509026154764678909203508727909414189318243296871237478190416976476367082804160974623974846956896654952707689434200413498238785488924809510240140899346147134342556692488314196816750259163025957062349612115493960515644861015072774960083381563386888586087802683782961208366700883253428497964829250569821703527463656447232992908924543875191465285429971556864518829175949057806676001382887757173650455714508000468144954097097177246408691860693810582701008016494558161735892494853802733290857359236954430032009822754828125926065275311300159614241073109041984384939747667543238966285450614370350510262484129132891730509325472652690929655671057968875569699873784002850136357977814681620334160144899061116567090694317165251913696024511123621034013677735639489523632240158657359576266458823837854064966120450371462965811240276030746893751226401155815283071687963971269275956422078060894031805698297133917205558899822728154904654299952092520994222822125845056691546343721001268586340542792255805281564727936004872468754027343177232544730928232270677297444558946824305446458125741122775115724795746823224142958086570538262328865690271669805687743215499767153537049896049671002865404215519944927442502522205188366240208111672821234772580158860390662360674869564827213130501935025331602732358534126000644940815192380116857675567062460292627231167613749737616371971400800657511913603038452257550929027691794401888032536681068284037657196869069516828567455248006777024936204632154275279822917971763400402670434472541034346527826558040857766923160870401887585968437419520439971956164078592168786142991555423714964827558384576575830729950480637686492321929969608277163860996415674518999594417296400356326125558471893159292843756429570570553966572008638875457468917155169032286360405153373280496673415795286108617134865365181118826640131039086770537332431839706681021115175009782664744075379703196795183680569488274335614881333776694947428883914293890959677882608913262140815196460111641491810868087473180949584174841629479739994609510608445107861562800038042218491594108131314539457857419326614968836906182544955544709465392210367331279202348271284874316482574024662999811718890424260508001049312849042861451707463099948392920892779055409020977843940789814364767969556239964118183398545125741561250139178174756284365646800934912337339274964329444743012825869975467904657798562247368677486239338441500450312620972437587263191202597321569556257925715546859046803307086172424458019070188728946660329573435281814576728543415912208349156404034243175262552232373907901293028944903606352638611463203079396185640064608702098576573106998934166146943046020420023318577454922085071563458691217351152141742892232381841832989093989241273204016862003717443834793061026342534682776153945393899014187396777452030295705992461567557677729497476889476958747857121011512013876533354345786776190412665312362712818670459632776767428119915986707242816212796334634113916972092439047889846734034907696565059227547013651779955695468848907686036822465698143132916532120358944483130139159643474951411143058916121628192473951151235897953120663054596955344165886974291074461179359359408457492494421757068275262669471453063912116422416537284668135110395008152165268085184018011060789818103280115556577927557627050379234380733267457939096368020287054823234287988576323105204181537653188632392972635845306448965923916913434410202847312878194557826379054917544585048596085390225720350703428483342565088576093699550555924287476550392352961670660244799017348952270990170367385016354182864694740338994166358669185034732473842871934583441846857062658216330993107273895024036129270149152803528778955420759078932231029514415578249230201402824480784143326156822425220864471548832259927331901988625846355338955621501632253215824901569783401272837989801534282645830272660225619698597753543008067865233842802475052660638495439144019545560233940301803777280577943822803775966739022355432939546462338083600926509839594060432439821087324766562929858750333915175659669991707831827811355386936835620200191594714146311572207888160670344465792258551476340372477235609769670913452757530368434198415803197433182410428279396689911909707685723920903604885706569403943075283412391789861360087693143661991899253812373740252837052899443617831639407188014131663685162007483337284307611045399326850219055062057783171443030066640697717876153913730415539942379074292539014364784638349918726145836883139990661682615735805893196690100261657549859810754537664116092379327994518741420824053854494638019069442164652136081106674650764048676138746330748705668275246035994082468605929992351564376495337599635820174685202494461682468581508994160920179112671867992632446301409492869894657769289728665595113612744228752932616040039618571040534352001077552063828315055581399965220617851207354099766634370480280735076454749610234569591531999918514963790394668296561579537725300586799768178162422013698441672750069570523777112843293498403805430538019398442575364756385442859440698101608346743431159124309010849471017006005333714499329583862252309996888501587409705315414095755906658042759637276780819449252587622539630633316206095075081715979656737812712759797065539395188133669069478932744750534556916987140748219077965372367960459995600130108859839432265096231316315348297317007441214353066486233120487330930801059364103848061550650540214579939140774439873057290852206417179848739150353415801503469830578567736188677476771405648153861163461697058866623357231391992276008751187352974679101596067853523640687473482821989922826729540111439398814609847001791401724167549761170883865700130480186569912916662364094873700518368019815555373558675785994937306016116794026960468399372456675096238743141960859818502185284837167100671961153866195980788240809795822359063924579371701842498188592152679421496511433119308267333123777837818603294353884458606667779914776685958799957054982601872518390553091667850990643104346759451452142682328212642808267246840445225091710767712952424572200745970652862728355144588395746289500055872881890956898385926625675532806616404032387736538189685336637254062965456305722649664097829414059193236177768229395204972767327109992544803253132958122952936822915714170155407858131873137280794291685083218195278549740962674608075666562255297678933958012090203140420341863724696358515466409722580437492737728271727580656696426688456137805266219030660136826978202421459838312431203839772651632277662162470176199994053477499596407466077968252684410131254431046789472979062628467317927867980794866703532844235391249252843459525546593746819691785336807474307632519975073872252037794484594868232168586686139599945090609399192346032849242735970266685226156423010537348573509852958744760665524595919612782956065287731954123730279936925923749017393067626430289216968125759698514948039948816458226197497850738590878282755263276543058098217387326267286229268442709214705825390581493519843089244440891559007482587936172932618570323995028885213766623073919486487859116575622282382239725986272491250302834990060437974569542610463960115785458404168194505624425708021320658892648826849356970534725571735764910904142988844938187913042197460407358855259887617294873205551543594822642349022236123666843366711403015801680611951385448937361861274272020873720260876616147690544457229106735122414332366503951800450843949115848151693924157545015053983160581716733062909068989568905134839825967610470564466621573813461385035304762066357678571561284080791064853712840232702013488425088913985555225452644213450563620971999747540542611776258988119060397682911803431396776607331749997853045515426118828650878825362447418228874315579219571924071146534788455313994447136686818241644749515917587807123200243288338210306824171536079618984207032203377850352603810537024095203900793992993273324421530682709221120642258040489278679558875531114618823792461257772027891686971850612080050183835968812192149499488476265909965233057476291564561572281687253815171610616199187532040831858905871032433849036769381718501455443873138691036606421373238493838147351651292108664233062677894094864033722067237167681701019712167277711790806504575682351390792033518420239877595211937577146382830017347770125094501437323829461128098044668293006255225567945814962181027152378767895064197641911508200235971335094108476768779967105764455336981963889310008641594857070717137808853360039137731588066127724498681319735477577135003317916089754608002323172328475442418623585662660133962887472486713235417836231889149778705206367040239510631850246775166536474656725772659933195995524446722549420542700173733202404174619721287911736213307290826853914157382658265103362290677693263796098732759150457634872683728670928630140956609950049951524927907055067630574312257707879507766383138817410117685929917241406259150792742237595040747711336203255957135665572004469361542302263930299149527558079494729987338279416060476515947424565800235501568008300586823178952251183060275985067627760541991258457826973126348260748176757611913755034024436048260636140555411749767687581810059112437612481768514745035348106485426876394279521604791011965901045631738589816676094834476715122924301810797879363969145342971270765691218336075765077842892947271443633106413096797604552197787458769842140561607380933402221588575761177297204147068440494635240486088072451702797470870871924141449380567367576920128876870099125895391159498273973012987443703856582653816541977138625463612368224741068225696339075837335986441015638954942533567887397089712009616133596280437752741375106302766290293807482237467724168398353441683281983255221078336871850655651175065268541352683708553769793159672026689606493921566397284729466925335855629392298629328013579821355231219456903534518423286911382122760952706107270578938576625059758205027082194563252292014740630803278242576587653345110860045203802125793241650668827511695776760431246520021110786953645853466485040727308732627857433188927217472431913606263613390534670722315147776063332500613057320779890000231203126103265360356256326749013121484132269092874328883994363838123142555884017290876099516005584631294530526448210857148088846103513913213356539415413293180788601171758186550220174464201015745402455630479842755445543698141793103218793761336026267997126729143455965441074546570283381279756915183721236973031371464230036216744390145704143764816125674166491695023059471190730845930646608349562830370071746905788429999961710785357991990313547492159052590947322032156836882019513753023425906526952586255694245854636364361638891734845694796711280930184796325829741381388902357677230684058499008083984841273610506086166822183595091897356965564816740732924417824112467163853273544125915165048544462538178634785544094860049088346625620578458722961490522852607049739078279031241224650314316889110349018268305048918078978195964595131366995655646922423008532954316945113791814059402668521363791606155175413282784899846381753555474956821993837884484164001380400182448879550136694195719687516242471674436980222455853362591548825096716548995936742740111104266238493284414056615145252401630147449510157497974137311252609593554845577058703620596561955715621105040841772431679719209462317368497375543106547793052118163992069923154708880493341662175249536685546850830426502311513789396023995519868832772937711769297553446363912317065213533876073193305231330213426774734089891156596637518161677092441163821925183177838058258066651377785909484152603579090104474890868003062452522037806222213458261640009602739804297183269434248511695444859088035133655202779974160186652932396404807890251158889160344346694854847313283950825880279084833217261616758507824903668956923422481476966062196442372938218402249695327409629758167654620210251182973562369168762561726873640586853214897186270506124918617401730166592329007401140205756948564209860998416105192199173150075670658046571314056485580240287875490862015844687923700506915044166356864080721937176028947278766271548545073782835359093660774085274134040073480592131774328580432962281423870999960415625244032366044715149566342164712919425224738376021667544234490673918976019042637409547696528953705367532059769731748502543699186911566349995602674686404984075591717937540458425333882137001498637460794457838866953327001325021255554422423391767081238488008172470622923105415218335817297558932758757920485130823411349386496320157887313710193327652170273177263884950905691114357187253125061836264037932988118035863848909339994261808124953773391192842018151523131231589611923674278437497094633870038350443057452516185986097531430038184222740757792192487269711322159799245783770997973344617704091432438932275265858861801665613597654030024800183282686503430213293749670252223553678192126158689061610361532864397441112696008875625116974273503050777884595259561777421837512073629435517584228335339849923282444383653611518594970759716889518402071936631466818397952508747880541405486500622609218328191955539126253328136100866521664228705818366771777228098426391712152621618329161675208522464105506187403786758239883054900110995274774870230498600821913023272676378377643043704181518955263473312140388487968144394308935951619182331375361990624001896693937362751213980376052742538348590241545395731415531459522711512674330817564641927111031329771626342504126246579831828976143309702695660317498835264704129947789509395545704647249874116529818177685805937014349589958845565311978196432243950400373884294373153393986233119025950529567875849431204604984059823839503142337754756647697855500732550441431458527247055362555220969517982683820411877941186396407219493373041238931297946271848840297656423232025650249023211155781768457773749610739510414606844825096694966462156621324367702149656637101801103169374274708375718474516814889445807323257204999134152636413106322193728286856863456905480328397312713847760026107386766565614947712260976129113003719239323108454064759959056153321767797262547431239832272925137765090983802742498441558313257713588835547216770743132417850870179828521588821810701365623884486974535028859289506186415309593544019641443652986191490491172561528553260998142348664582146736577057020034606335534463447073406557747500822238711696104467062034700971174332547601585198438931218438195702478152693776559715842731230747522752855236541415929292632861319520060077129431408205490123957331165284561009286531182808346623144451296919929098290832635708422880699991447983549258304088601183739760880437629524730798733477886460039313089265112048431432637911082685403672946826799008984469795291965900549022690326873292546037837968777980181547298261623489448542429157505541667992158672774164655130130625722255065977705239468541653357946322265155827482812455548735031554419262870899062952666377464871806682320079042783744643941319783805507335116857245281528670373710877478780521192794669638659581850548216165638066332739173339644279682614287158670995882733707427779965848090272066952600570525000483211225574351260558768743815804106592773075518616220488634288389310537074529955108486700688685509791346224331506522573125077390919474535610898974767318664437085263853297720393241812662708014831663807000909539245288745923078846287316330645655679450160973338403882067986170288188062390655429273517852668919622966370002770201577289676946756373101504279527366061397000212223972848177309047671351559958093699592646568129286668575359975673604621782461160377011768797434131537172821640956243908713576925275603567664218036945357716714194729144939781362604532314168804490190769144752942503455132615183974870220031122654928504347812977522359406771118148628486432964828330202305577459873445726272403965850179621934119977791184335499352934778227483000955567442995292800422900686161588351310690696128765692721707961852250101838579118503177137953085242951243935836065072476927974158218827184350337642188382966908624076799320274802092620510912869677766276959943911924185925052354857862201823588487121673155719739360176189101746751360094673748383938072605239744610244653429976665243972466259404563019662493962638222805718935207761857686174952120116343640865488328088135694015004012403309844934485506578329705313523276039019215644268866997569055472844791186229403830191647046054907059421658564882705413245537082605982804072800254163862496736563664210812551405932441982226542678150506657109976896802648984439931654941596609828918862998543162978497080850679840903830789486207212562549182039852175702976283644889790714419658965381982146641482911379540274867249005335037377156466364951802178240871651444856205476838464369992447803864863616043474306164638939491460032373412353445425318543139630258823218066241418650374295729233567978535780479845516897000503157891760585779033792057452315644222651148040885134706775563850038759113460525384046107488281912367316445316772718765533516716385136697380437530025132576750069749523715245669463483274092577425744507531108021923227430162440952122523350578203183224896747649788017374599329216675171629645100310601512989014591585442158792081694815386470632416327064449427429103005533923900938386263601141526598452322937529742430804870256869926741956138137857687890671751188671109316698560351347910442471205858305447586250745522121870646829774146039009267228022328201060056175239763653928506920615540300744421219731785769895954333412443190774057230196823337490786756175553452847718625816169617669134829301496282013948893365519991119342114239807320685465108763959353036707345844893073295694498086107856049884041317677582454155997319639485687728953327891262828426241593911914300237250973525253007264927186077712381403340255686680549994170282740138674415225806954819815744993441224126413331379033968390759418093406458882958839607200460990693246803103340780561180587113505817311185908189928399920275991059676033572018497729729064752434727800162103102634133773742750106386265349218604630609661637603541337418593760486987850870328370005952339529705305736689590204439538447374991725877580419372921472503459804127185961184787441824012359158080516300912439957563484439236767650816151597572645067297829111945896278997245194113318413282422694057190062589057436114487607799177728287159607262493734264852134226568644694850251642807786605949026509899568732675335856555404665598996215424931983796968788438437520978808457509502219479729450047120571630254077053703597608065507621588256344237637349284263507032516075151252255035417730767070070765217310524243662692205418605622670533083846681779644619137809634640588283077436004946382807211460979226105621550445354701983543676711956811487673797518569148398253957009209327406154670183438389139013798008038770123288850511674831630590140665040354924468044532887981343561053686143594211288956081616330734402531770248947830976138222496511618461895162108424393284647881499343198793990921921182351457050818577913267028726101434553891367193238204764474159234452948008278839975582180264637563020794459650482544086103235207732148818069875431321596481246696763735495959721480091687907787980613458839738392734161992622682454695923565993040862078763659970743343867590007565400364209624612221385746304107759172543023088277609958219954006817187016517665638394879175405262556335389876636392293654385483313535171860343252384430980061386252020453529728596904302856892427030237171758131441848516405934773839723245305846273352547326978722359888600637260001381651661274440242131590257961003478127477011382964310833064655973316114129508527723616591190294850241886786860894053761566425904235166081393834745718809207420607686207159404232718238362458470639760162201942366089164059255311368354030219307221490364514008931145832492150646069963952420945821466380949056702475919488293135847169887980523479914790695736041776359972825927116421166749394535425697673940387010142043328215153083310833987431147914490935271483608162883922375213426314498418633175576546928441558166114266125255783601697626679455463394780286456811795271564819043052447491303004751846074302933255898523333642734305777430553640961414802514438711553851809403525433914725485346241643026407851445138161277046778756223280471393891757381496384770009288893109269690246684355547277933172231562680141317310935350502869139971726733470310840165672573723336536214857989712723101708177335063080117502014229232474306870474462876025992795626379491482954462817253098561923751912135516448283490738178727136765540059674027043658549158985830409866514363947755687803562314002659803807423263497073153396315740068875061091395607438255641897963874280480754799196438349375113503329706819986133316339265381680855898678071830819824784328412527113155496111417175796078944227280276540056616561947821033829791677006859962520608950842587360025464375341073087697260638536437915651802029856818021770465007857902935589069079795620764120607267912507490959679840694489990945397953088244086676927188950751945493068251289547184375457725032388201587331014624459956334572214132621428968947146199561054092626148692989221357010468623821873548378074913124508163314244272217588962847023692371837000781858580199461579111278503919528943570855679877064889775348613267290759987428878036640881063895477783815793914365926264098003438274792289986966454003137024947952287482697735274563556071330408770535887275398069637530431226809448852564963349617554738278684669293808031578604231791459387302730576509756689740960705963047588879808308237587238974407940435947242880706365635988159566149417211586069240249569957769610481373434065851371328110426985268197478049919258176926628207624070589792043541752821832988491742738270654680014918455189502220893942880206115518512963774627713580123211175714205636180381445183083998095279868657269747489887119209536682852003874221209792556248275206927033018764744302673760082660786847266756206468400033102761087147631415696672110454661795559583336198041201471871342182783211668362064147964922692021699456442247328497837603215371789306912593652824703921250538335972577855078972952933160420579834281720926327604687807283405459321461647448041826003756171908407117549038268937402086262853775924307453830107675114246525469506368848330042698462344312189046236980965633689738766689026038149153258897721910072379981609105268865806616234028079942184442438867215464745670551047964582062939570051813846349347831478949456120909384843596251856091415040157531761972237050762703673890547430474189401417669108420802915629658352432108742870357063350559152015546632494130208515700119060724496894314755382876831445161070148961712642552995315462854314437588405795815189565061608739908164563881088634464187242919705316928165627335245397057885679531594364893589696893826919309796145155506559209544818667064002044535285373073250520102801780700703119058219440561165991283512335203433167422764507811955597927278433070062418307677045898291568460802985440279224666227399803829453762946311984816510470496631473226581243395276685080445735649377971914838494343915795631974557480029136018475753888926730587552307396514654521706377156678583274904369582295963603795650743166759605385744508698383298681867629228094060045756642051606880938519346895668634176173748225762456971832083668246499451858527817884229355402136531171725297124562842619129540258430989213606066158107267495559948836718957119670834001752819018676709788828517587260893888336831436059064624472725502849874282772086225077269402401830195505893361159421456366985218116377201757402262234516235372350399215257770577010123789054746009558095248197707444741410336386128457663471440508854946008498351592909480100775877412754803712968547500142347248094939070084591677023741446259446715245482554094829710275063302130360871734239046303175356593944657469137948461148117477702194494151419845514540426153082837747702674969635706038492346846583326723938917666610363722084192049792706067515882917093511604266224948245553863805813648642880243940426056143527566318418611733896784326984556905500850751916058091100147235916234622474445407379608514390715587453285326085469876081346192492369413478044072726345399808277248110033951417599785890914615381694895788305952314158861581481298485059589308824154527878774156752173961404311279670562161986938629089261938883512324307893927846465413262462352045180706704540049992442202484476922110608350949105864057136846613843623634654826640225056194733708982396685282214055732209759622662390542306743234367113651200846980802372389143787321489689948019277390405010903646819010271465350587971634087425719581889738322057900025751294652682671306526934520277226247897748010856254957008775489470521487030620484154656022948950066795230508594958411432005015037324251641972385260434407755425919295559492268069607109194579928092758998829177379863230412451720214609511542440154094566438016914076223532826458291376874830682484126392756966655879828135897798307908552561253328084790871293412768264199764518572315914055054594256539475122684980677761619596481691413093567775978479172609850182758179685866280837160362570214819449152823839011403854814147118152844403938121382611092320738198426795328382842032230810418061399379128159125894153376237679041658519695365511456040750876880808970808977486686552080152813212666069943586733027509683194253103232998644198952705220912108683249646198916775794207197386239732757958728831108175923684610104682756218761074083698552318299056022249451017848686886372356037665617827787031491498358754193891366705134357157288891885555362059990945806576130221416155811030152832348736842544588800176442939902156948404038338716844660464235243244369555710598771924262276824920185844615098582131855013621597341924627361320731309216456961368309420732610495109144468883857408769685602055318172269356127548855624501557072924017480305005645649010897589408719329202847793743159588306782344141329330242613076762718680783974880362115237365818023492822134310661823833529280950186005327309850445963531153104824844436692226041489248860702105714070341246563493625566495260826207400503780422116291966588849395184561269723380604292976157531508553765616511373453708147462088534274529335138429156737211206118146520129570312568579437179479105483874364593898425919214566532947126098018521456949067875897492855803283290851038102704176378353678207732244666081091444325432645556326068420083652403908454525059471156547334280045711345436091748258235372152090876681095381896900551147086293074053694056288418184186056027295448265862350687040929775061817834078864017953502704126984809138858020916428047082135639273796143608279008351112014672617232101484723074280674688699650928907319097693690978325534262571670293088055656156352734655720822515603594528890829116602844620658028411244666425678760708546000841834387193915816294028643347957416889486704171560222642997614452649864887419198270376898147355210218153869565496857060808523066249021808075546257502914674666330562585043503671191962315088416832843352662129671844108863811503706230050399083036683172580905180198902331411043428047221186414652020389789013626198155269096566130521395977450512572371111761295904540516593323686885211021324840380576021155444346932700125931574715585907888828520292065446974073150227382379669139530913972184336220714439426836137877512632988174903991877456581045371416258847281621727927179692085342907045356931138713370831860246374941863775422448354714662262895730993438552542929237263772640402404197420805908733138780295719909503624517469357863059257689534394653768032095538936538846274285023723957302638941041008590686094710226624816356137440526584903521773446041531632231078473565459730997559609325375285258312425550106802145158243412283762389276056916674257179908647358758299952534765614230933618770399539979071823832483091599616621942392973076470813765009935379652165673228803235272876075043162610714392439556461880621421342271873410591520736281044724410477761801583034336546412388665614774812051671405286904396203908371797912801121494929791007217811205361352180468501208950961061374458386677067515560231759246110126971764630465605897972809275691382163146529287740749252651985157724836905905007747075872384896586554345369542280453424729659043715133310551205083499212503580016780638597675700966065469053883360940059576654321302227718246883442765614134562038670024902994472612402951804009445387649377439433585637105064551695924205988801634523737356686029430769103283595514647422692195302771103564731911671081864184936223092128623357235541647521675243202830870275200496796417090048417193444385610857778167431233075933782973942889466055404462902514639235472509026994011266643576276888374384299659263482535379279681147032704165515892782967629003103573355909407054139132599224638362199273142364313995870564653586379698396896857589455644178289376183006238509438921573979095725200570927276474336308889801750892307670415338409402101102022170394301779955586092981418397107480378528735427820492004203976822345366094923929459959083568735326118747642478168794371302727554769379883640194267083444272300452985386963178531770307552938449478005295457545051864454718594026356908355759182552891730021680424263685199618113645174928413683737010089203923989103478147608204234980231897707426870924513595331326560258406141690178516323601995811634318377714621741427376755776487541278954256158210775207097003720970273783939939306378748716300792733977446544430629466370162866717153754574642892737962339314514171822598752263632575810580938748648072284415132000312245161366975076973869601796551169877731533247293719569425219476502157512241440382812676816095048932527710147852200661035801347581040064383558106884079140201290759720717979751957838886830303822126906087199949180380833493651402428967158677153325242213808574979484160168126119710543993002462680572145163271178599039243659670865310046973063729309056838872215731864124907783787485641894515592658475774740697471343052111150440620041436782554178777606061120464039234785292582411495501316202332690253281682206527459498712285587351086186127043174553800475723902736960003739578367146619553284938352636107091304732017754901480517299296978282393837096992854866747165974087403681359947063809469692813030695717049767689235900679081172516602085732159369911519187923729400576605776087156699466571061421526759919125496576084322389608786741658863239910786934422466201183144535691335245997819183163655603962861227228201207272347267919867612865005650130276312472581797372098955104355122300750297007337756364486295279063634436481729741470789472406046092090039326953956718022132265743352494657036715239152033555902323375076944168582116251276402543424159015213360887357272962455227324006672501720760117908322408729373307354870625054195859799694530078726070096986572096593587992980479752616804042595336332538951017436309350237721336951490182641977260636997772368567002894337819478323813515534513490801106850973554335853224318085087317935373549829215331390752829989391808925210111363685426127302783032140997751270540183943221852211094269145856861663878742216182861083214489146554859232228151037362279511333169421761758828571732571335045954698994771237668820182411177617010488324765336203584023932347101396319258555284644578124618881012869185683073339777207960026234174693524537467884770305823385410112873443526013252305976144720780962022409980862181684589506582028309973218806026788798327556841646290358833354603994290014773216847278460876581611043561793236679684289805808551559675901590367117566478648624316526175403448312301403112350367994650905464287230908959443903979572545728346483236205433618939957785589392858916036837677775839882838770075211807812365365412133042986174919093919746355339578199420425659417868330641692997153964476045220547126980215940829385074914824296404844235912771481071357266520196227244269906429430324943065465754563129107257161390132082513332442942728539572355517391100692682260058154834542391066731729582475134645320807465207931604409637407784892827977867286419544902006961744525599323826008186348247357383612288117839385018509472567246309291612085044282111298024669661341360022986166859888806159302922388970902211031383567528069329994272316648343839796721633074032404583719014412568431461675609378819173825827374524383277357867301740635545621780064453612882794275543879008169705525164854853457808604569628985157677612707014732179197186122133228127518278125617078724425328866207752561680393347718231025572404906652753534944395788812528153635648672849877480428800070713906887149341029213107733290224662755679468048715819530013163796104179245544715428758717437606007472736009091438729756523053122857046063605252576979386162367369628665231001872350110268422662578129094664061211572535750198854086380636987810160290792186939942663658815559405630828764433071313976954723070817296947165172979832015113275098561480778728983617025687640040035722547054377616884116516189860636725202819539140957368161317616734787688937690013201577873299633488671877208789098768005872413988059075558102999708377771395213768448006271434966628026458230841647723455428738776803711676841714061897487133057839402268301797395450056803468496801667608801213864193690340586197091890352623056542686659368136137785182349138955049721708869196925561763053274731926689772619021539672282217754257861369884045300934205891371660540464124265320871732492376563694315122934449586359416141906631598666410170423658645453710200422312487791096141638817291723028417946494200769660080396573012420589405380976908317337369568738639162191994971635327458267286555523399120887119660653338933888488495362585489702127459574891569771015815405410126961161703251360401246055628140560442835218398696645695872350712814684528877374703226976624625855465387201787650876055234110360444888584817365654940713092081295217267755964955931436437983925917801722050540108173803071332724563113231129194679447756001301026533448689305980873078588158722028744779748177957279699066224655303621197564747647679310849600214228917790604028611469164021826039015683719022200718891178896278636666827995167042228252078359839658402368808585066571632625845259626351303576577028495846396529370503247119224297881711823621159635507302487235409944156062203376414955971483047300105293294525699234545244908951105430848571165590112922880524100519107454706884227048873518725982879239808523377448445548406436851717024643433421011879127785256190429484162734580380356656070143096136801370493318877354849463707598471226665018190629029554816913018287696473105919031951798033195948395373440462669833405271552843826577361375982009035271784598688681243263949291417516724336242577620087343009139382851542979252048625937667209696495624114437085344579064162934862381923452266062159786597771350299733808345181166981289438654101419447309265391684987884002845342725835353613008515786600454437778180441268042603600073110420606450508831753747839672816966734186548209662559770078433858046742546234254681480547030779925711509130228622638104581822848413849543116777386657276937862905149004805827532401919318512161539116839537966160976115665326807887080323779703706073853831566241519770021265993611623801364282431410883800459669425944105164228332572749645169152134434708536364681280118351058974167854328527639341269307348633025390284223303335848287968966083021138913958303550889051345158663557687948643567137448014530559249869419357511222492466840802933924850774688063384000877260165656249254485226404588820716879502509342909090705015980348609635901177311967480579275342838077500954516713890438274798624085477911521917136095559918286844349219002482940157315272297586041250980397486350723571103702476432308839876701714465824787960212897801670278880414554090504741169619404886169948685255427475470036980643896729720773646861484126346182018800923750628922574773092296711776095561722985994992791343437719589791057938369762458039097675131980200421552618654265670277204968384443437005799127237385164318407873226539702650991642012527291641812151939398451310624762344998312411081003709372282468741657590650391681512860957644256947241826732249347718169663501741998897399622648364894057881130477935141020604444382308459374181209603865023188041027230963348349792766472700782516116769217386163612152011251143843887476975900332434032922725238879346624523986355804927737540872111920493828599314264178062238882738134688699128057404714160296564275667908753498959044818935968794524662328880712510545120322938663623301961072898670514044161421765085188646991448219781535961084553925627647427991577059108376522573892773938071534260529359046371589613196502237802852112823635324574746523359276406630970713845539366505032333445535246280543835624911948893084594491619847607333774629051681491924653935237032509825030842436041261701446139391139758025565489567383606742054313325592863821019645611531604267725654815753157483955247109877331964270447097454034613522491215239742853474093267670786346793373947489564614456865150248664687941493942808184750018934047140254115385817113685435516628742144748461675624686828827881408602917542696390089721051659148151597468936654519164058996997919196815428812048143670828048472792951697287837931295645043366093741598245323537506242765279492600921385874434248470445979641933151351057576603759172540096787738182484152090294375018058409054272564461906722039595942455345620904421693211570060567726159058352750805637333845712760867629525751403154630433135225341168318815569462100245414771969395337085603626691420451456994674778204254688153076092753175225256772686342796318268678213500657190723594953243401261417477393108441420851804655641599114679966002704797028955564214799232825391226190489393647060517211388715049281665949019210556851325819805920540985668036087909911496650344310818488060628186205596658236275706999599921579807116371395011961687522988850723575520386230978399091717056881660695053083795272137705421380587061750286655043519550858686184236466355451821172254682018057046645505660692320489926815845428098743985913224394297477388487590517179510340304736635634898943569724645373718983200129092557716564113833926167026187725785303125567417417174942194486309003738935617891125872876504007071616794945763555513476113917768431998660743904529153828142939442825579483250237559005446054787487992895040283916986880172795131163540762566230663063810506794211260709497845889246462556623267598396874613551707177714371256716522671245920433746121135860922457501497538530347814098153007899313268941844721520066779699221568558053745929507746516395692903983401497244235391782740852235565349024244987712154521729435350294335884720476731329517294475983965281697601969027399844993495446779204989991320855493343015738501320079672713042292065796099479469710047867849920668836524780626682348033245600100144479388193786496538618494638131285530319364256240284859380505233446715614413702394541774715875623940559168975960294089787812812692907155157124147595204688522275904840679360157194419052085452857849813469627230133076087515911272999581446428471543350491682508762750743475424617575094011945363492236787497968721192202715752319946134920709156782652209794676041052997322687660858431380500611535384858543226133084698225825649052786496642795360822382130773775281470151067734811947988437275219586052547517867060312472515865877424907375492609299079345751369236316256377735101267222742814924738910228564493627965705483361877878045650875413353650986389843997109840300074541913498830227829240036425031172951863535620833877197441223749609296131302113758909498305737112206849861532806611267880330217681240259963378575214006081703499189104167247365631133528894631964665334487662681643367500571313478215813416300034456361265929378187778462153631852923855414230486047245942538987683331415378169354726813356182063013467204438521553992954076365464835015358840014686708630584009633113701874503137669445024757800437684726957024203027438896081116753565558253256090129694405418564685917387420195891745613089065646492040922546499563851561912645431136179525562176080096329656569680365315857497302753623478856585405762950570461077350518640008548562411571744598481916202903906968542634868969619627737842983168443604126828019220882082418543291976326068905975136767850495290029641415163297164466940974738747721335841411708970835522084805169236257068315864665354483862448596951698915950811898907783340468845338839827550853160603946273957021462200157334890829728477921600325853125775711977722020293257442005542951737616940550906777866151394515735461687271306701279758289471958855577004662147569457084890345899515747969251243715522767577878948536234679973840458567450489378195319359765049676810744421028782441175734667711238227049549162326678651964498602175094849298207114399801276458627333483345201403285914642235051283865492823550699755970759364013482077941124587723688209205160209494632182472993121057645741441036144178168236004762804225980310418760339666534384829470127355908806104320810132027934416266964358900895706580936709169582434603606313252513789173802830855015919811396811549476328466704054659012614008821624044409857487347026621433777782586951489137526775576791478087877530178464857636210497338822910617839671387020071487143955767305663836604669732408374732698076475991947605337617186023679600732395400271842995938126315412179573722851893077139465766457333082844701987302613275684740345345569714943359533692369945781473034449805267379319286202212240212234385378533988417114906317301596955464398689620710678223571913496219011465796776592108646243612012048670526874527499820062538579768852704009764145100643573426122345278412032243606044360365974105002433375942685432623850490481584429673721949310993141587578263799122621637905832041863008001051859125755214818784854087205131378759309755809376240286703424325159513165390894500182845917599785113005154331331675450322520587695672979957970370225486120912589260202608860703560317740594656931907062945538098813356561277779620162212349078278481267933970912875333792364702001464292411957517376407449474410581314139139551580432288238379396818766354659986586855131461770578873599067248788750261249232145777641304921067335494803700187379662231755659504593588319538039715369353109411628231872643531905506518598645511110317409139991244662942100385212271196053936080732144316357183595720529371080257675257411903798078581854109749388069616722176520996082133742597864694384804959222573593632334460752442864930880472055219088037412953731209455333250556645335146188307924347913234832516884936019011363314467138147596612110740841391987483312377761640907970780486496066337270375183728317629324388953889648509744518361789614197933330760316127808759731506367933246481366735607865070543801220748558973941421680679489522797599295555313921526060751618577893070095647254347796509138335929178410130250088698003345879222059456610238716815124451149876770585488519478997280898682916815366309119373358370469683627342392642965665747371162492826495434759758563098330693790741814259973175493493180544187114971365575799673511307978455407570580647219942353543696679861192452342116510090889102905145179045185966501964869440011909397912493479294359310888773134012259200690187866593609867269398925258613507053158575591243424991407004592247183810749451438727427271962245858378636425453308482315960293244398340514462914120453318948502403667081101593345545956232909588596449177146340104966391892416038388255703605925309522221534991129439549666138047964588009970976461935848241417186852815891600099202971748827180379546485233973243480535780984892524726228941533124003395059676383783807353460558338479032864709768581921284941978116637724022855338310066555053959766584047297906672934343480874605011777351994101401700050040515612417955164367664761351979604115325294256394111334764286944946071021897271769212460615810511104030392350096685861515689315359970345172312748798374326423937210631177022158076903577932945581932927647823311629137910724300437448978488733976895828613395018655272866358786526340729292357745752533753831393620762116415974651970778007378027128872900801715979383219865753155336684641211642937004211586571829218868387419736634085401401186850002045905887630699494545506805814255289392229911215440459865480808011732869408680554006322886342507956757919202370771070944372406161097556968613814272462940828920888736665738741788054733574134387132884791771562052143775008336543488860077936249761010610441379447538006571975774910849670054027140464731085437476718613828761478091227311911648499793866016761011864888120799434267785653946478414403877952923750361789181774008048181717643314782917587258816814190628026023332914593149801965013680682466511798154698956140340236084984209871577601660647681981964722557327795381887586458238986338935197337990929050945625166793463931137630539489872689028828627149675651577891133825946994039290428251788460636598583291978568007849884670419157640346409204496813916595144685170941562950143484912941224060014341081589092987511652171414746179751517338135486400704443883282915890598337423574192275040290617928744863745683858327354295222472987301653584320792651795139265134643795245613398576183501396148162002054483739430085003978933499676433765249279567448037335082489038591843019050968753203604853982481466404565064634493397623099361039811865561164382550216256044273939078080764978456402305624151719786116650304951753313251036581165398604608393694685279645482797389122219082852943189476644790867879505015409331950653052584166318411544694056381658709227303608800014415748804298714519572793888144465010389362623448505255754140261376188343799498062070698647726081762208495664052659091183580136134237293942325511972301584535779729442974169627611063483154870679255733979746543251776141370387024360990328131436895799983615107848614316986737433221093758837231307574913726846678144674353651186899767239862941244403855734043460068204972017990069298938423307897615996373467410936257758989596991431174741307544027338739416936763920876985273047279468985887901753880278852517256849785679016939389591052586456268795930188062383716520074270511112772100995170013964164402521404503996203473471589211008124806789533820280435019491290075645010007195621192054376491193516527882108114963690096020773738949525774010683706278374820830134642155484060007111021843395683104447787980109621006277653682495214144284338848343439127938400858352044501879753692950751991576604149308810809371619566282808553661778093527614489519654777490329083621546012470447512187839259575080051224829738994294710120020578040416569934812128578210095704674323443475217890519602227087144261736284402725181956887785188797393271572731993018630475080845305211466479747560383241159018620725735851533589845378767675458820813687755720274703313636163687673415087258546530900320221439044164122620500893896104197387656093421010328248979745172236696454880021885124960361135441670669898352571275541635079792054591897851328270722333066288770623609848036577515018857457888116077442916195790106590247963023364564476038034204139340081195253616721972554158211125269771897306996349456553051011430051634316001556994838278008041622168142994237576606932228099895245045689809660266659952060112412211824516343507206765496841199217313073523978896539973404760142721458927461689057417315566189078349175911272814042052366415995525012288099036978678661805935483856166993117939188992072348579106339737787294908085092141828574883003279946229629644907209665736923296771728362513437240220297719221934885110161557804662580407001135647525389664570738962282558889250916932713039501994417167833469010940501300731519829431865463708710547587098838314893815555683837313939863379597702929226885161969520798099601378665777128664051555557314788689158120627231422119872644269530364037030188207626691474386237997273661022429400898077194462103994376625557217878348600724653880807949772304549440383498287868273111766201852810290634334746102986363518113895220150509299625022517410515286862282862033737638279585164317029036413621987999179288821410166133041492965590804144172890897317430473066738959611264846318141601094747788423586218010127764942177238119944396372237861674419204962409795276062233128162020336497051361940456010900226900708040685454506701834510166376701606791943224659015865893859894781693079492638507571426334777956043817887814367529663442649730788884531038386217755024799531058431285961396924360828369865015598423229803621624420544218103527716265384097359664896897366631748058238086912077229646937775401536365064345741788499465004887736906013188107976758276543684537531135906475552958052876524474110315537169128928856019807260110637223693934435663541382403728507964812635590744590548560635495972499782260567865264032327726754278270634245577261791355424353696281036544538801271072120996385359233724292452291475070134948184184185947571871017730980885207921315393041281789841659188067842197752802011148713220781917103198884912408653147970291941336808087960395150829997130527683964587084857418599298076246579846876938283085070474994666950270285728077709814885715295650091565236259327708232922971017420278964067679878271683457936649772174965622500035976942471335871349608652112687257805084347183209413250085573582911992405486636761378844321565765401085382547990370111604767789784348273975727861584370911739319676609847345695622949082284204013913952308663047208393765838386389000765802983294888007898143585923773982049645687600091034616630609245528039937142537583853361628039218657151861568150770798742236546887874557021929658127258574572849299248955744107004644060642860576979762568655418721851503861528448526714858265818365566420418877154424738557259043929040942717834642308692818440082819334121833654041208331796131055950181004757610906752737741684053938771807034945901972209088767800124041326972538689231336723672679370466526846146991841346811317022800140928873702898395690791409840597686310893396267350810629672979827929099956822953820983765899360084009146540901475262057569387979882616070242622493913766505719987190281234691514863005716404644317182393420856303008733861150248513717804157500516272321178400807844255033590530546335596881822682804670770165748852706211595139300462882240151093185289564635846519343130663745773869448449604735767419647336134515117829868388253331059940006296683288111851070243792106942844498465507854816592986847197779962993110157876699745190824955323672463991127819910592356806519737647519912164254488722602010995865170224653484504202392694770760455748831893904126520295992393163131085006938824674988807333638392989868378794382059876329675370650619763426180689042940460988711666389475819677193625153583763035237124833028770405102866250571066600107574494157609097644180052569483914270774060295362431662549995910889689253634926043997689602497211565964950896898481479292767655852354126164827005002438680398055916675236229647422216647104421925448562696924481651400651894972826088266747870465714038131336398609099590669257013292044125906866405971544186937992453562521472777341955177343930140239040107330695685584543517963558401838528522942264863650487188355422220602835504910227653478187782834141784459547287097597126246610857952042542155592576106510956999767653763065745300263527992801105887067940510608309808461917593126888810974615284110134363929911878343193436486466073803496561502896809822897734376958679316888362464147606612245075154151111957747108690206771470071195360222736495113544550480563004694197531599943523962292132526980845080449880401392579492469754937140657979398390704834738257337285663797418252721294901478056903949814588618592063021884756313751270004793412754709170698312493543413459831423378693851832326590691250771640497115566959609998673507571014253039248019646808670255398000634770850893161423989847544595930485917687208840420983379804433306517819433082083920733634477208028401815718880844531472044194437324772880777737227817140805070944252535790063259130357030840670738456521780923185303411288502193804024172371403300824335876319801042858015985501582709424532499298282197992303593054691091808789449753514163439647884846729574989568597079047995264895520027152892500265034804513421002280865398746564816711377345625669194789933306933385961329432720798580376602471472340488097841012494704292582482398573296687631182468723561962913307340374042693105413303662694320442916863233964654903292783338725545257569957823495000537399860327723778646239102620104514108019193913881842409682657475926199492586169584495592461933184356145880011606442055807096923970688769757031954217941886744849851617228883248160491772930545980773725049313661162507490065010530550221513977269359379605661435748926311239209940889457810469769549275442769773406021384715610146385946420394532664056523211926886480453662177942386597748039325517360651875539293908504481473233570127905534030974712058565715365356053460991979833522024470909686501905572008701519253121499717739065628170681830257575502066311450614207425069767703376398965718061653051060221475496043784417871284909494215437331001395683881260335749423243012973510252660543887232303608829091073062454252295442292501744045194652229725360849690708662008874307394177381464036356819218736310941535357625578721937637536213445014840321242299608342140854824440306291460558667078235596214758455324364597823406938804889863108727987999208450727573624227457452725974017975853233529919850285738387154798633273759633841200399428050070421326429165628278128390144078684248982593770883754971559599917101960823407529873194790230767374610001238802234629544572111589683774772193454791819711393587328206139895587708831768097025074317585479728454327434847424105324073142462570487105958063140909441807489808749927539804863373782247596758433504895856982647619725498624517222858747313777349283708591558236407381033882182978050498832823824828385821396099248983645534015833026764406432344095073192842933869988801496062037872375087262201295740872093746311419348015816307841546761314769978615441701296136264609885554852878351782340909631066267343118883873097472382784149791256437765877387575095105810287755460156418453438198290525061871423046169230340867192968733241873663661483866160662136006374602274958938659015524646777720889906472691970188460473916295917848897757099460504395969664960612571402513097791804071354783443879861444351862613212608073314082015049495871648953283297679360599904802196051783377094924607865431994276018103295042757334799614210953738978861800619976030913459619737012823265358288117941217532396344586173997633132069509094029932534903952003043455073392647387823495690906418043066414111319210139174127500766336864847328163148358448588637323786197774985252116797745364820527689008329427144166864399644812433119358800775917136814698406816492545097884327037453849267339134901201315950587807095176660821417014798105666697570317510169610259547414999990252385496967413721197095958151896848855835188947156611512097203573490640487193502155773400023334427122938059662262638007010944491735910713241158986945754382482885374272082129881713469283994491809478945470755487131441369544362216901324012133707865310518118979593120610931326357422425799053406797387104823815963955963219773238251375618281956172406094704663328378315920879205285690749573363240007422261916944572329663315198455812165153198427505912617861394762297281705966705429365793950616477251095951428528189939312583101753057241062419632533961085254787687157117463293218183676152040365151587176188926613609532079021715036799152631152737771329128689067363027301952943816052129840422280382134857210808816959878342510539859691680070646304888739452518572493558174988960420166201770540364777210233471852514971322199240528109124984819938933480403937558255971922276507056256061397026178161224099839360043660702816315080266063241548147501564017902830020554977350637572579002719689430836195965915558430554334578015140537921007317666612476526067243880488297491821822575352518626393541567812913270678696893191720056361891980714747460269996198405144710646549102619089701750154298557134893562271254748844371901975556715751357698303878880495232946278252521045524898308044510023777410330963784616618624625815095303382492456047556888255203803614618039430172641379379071764635060703928030940910307088911650340172760947162628335924277877565233504377697612555272265857929631952141030693814649935218849255983724704456326536951609200567230762742133492449569709307251543867425134076079464150048177969347832542536534241299644915886352361798309533461130791592764609602514527933145671173976352428398472935087419807897787994879807951077068553000822879002262402624213660686315330607145275655100848697295672273314773591378863967624689898214269249507132661339569942962142171989228493896188307467377927736632448898130394362337861568693636267920858713836640196416222878244920215959949947039329214838698573529294635977968564022255474621356667397654894299342874545150540313188215326556616773855502328421340819675591169499885456156289497739300711645702830397125686083531306989077348934337761172677547034629513605852710267154090067846651170789194739719160037379429143484396456118084295794704042165128708843587216929443242870041612294333819859187967365065769722615280989294437164814587966536191858842980744876177403439182508803397022996355175254564837020188405294132029213279949742061296947158089162417552609001068234604319138803918131809708328144449764027329429420944249595336865491448245164222853139094499111714528305243101089132164025339627345265219771760679691905242343859002329140747260953127710388009507267337177169800403888807212400437099039467554590058993592813586940764808393065001644279742224324475080966946263474619041628969702266683929906319483296468493177133911272770425814459871654463089805666161502437344317903310325971797497027570265209321018148858309457426042308818392857718707900011499065240806042554110746429994774984681069122791911222139596088984763670082747560556063842562347344579509157455373530471920215506058777941767488674860772663606053056496464110501924862446413047654914433818100178766342078443163058903725952788848712935514990887324737035691559620655267469725083064948121194036922214654265074225705073169792230180539673520744645151610806976619732395773919180357697172817750389266854030978451361595921915199761878983521010150385048885892412936425283130375169150294240470847786814092665425285424162115579740504279667724603045071657592096742948036704484775932649114286172920041394716406629402740573194897036513924747493800301315559573503156588182128009251357985257587535701877045488542865065213789888055705344035638482751007874046983994459696992457094657050182294056729262571503078472792157031902920195248636351902830247749578913183170622971376988270543613570443244478902970328589232252248561965764954986944477849016475826287346180058378270050636292223084836946119434615630984888415268982439395730829518040981596095561903582975035200712288499411946589436604157872877654115745056991248430253192019538300032878368384779539649884014139793838323324763188367247319211989714982834795778648396731784742651839410656290965884575557524918306369277308948502331938302070151046218003229618420520473720645372792864866601943558378767152286285887904736285935182199304916972959012631424241846413830736939422818016206071128989367263683468152984492702067427050062613246702802457310351191625572788140888641659378819394644742519497887101155084039385354186265731858403307923211575959401012157800700244140499278002020323777115351896439689428847869463175612010623687982998325241460247479290759305459609250070348168608493926842106407741739971338756885876231546891113582066561269091456027461396204403470350251901376894905637401973934364656039469227555746556454145514107297429831226524332306976129119016060592919656034400331310228893290328493324951765140685646748363228444324557499283611830117493010677421606901497223986681363966641824914762098628423459138843619083848996075864730207467854243943347547445875769389087651756907664514218823789933841801401294402137347478459313381363574570635756113146008820033802644357402375945391446062736046515374492473530836060335107668933130691706263712905538332156376048187184714602017784848302686631197471744256405522112208721003496834999734860092903489105934842956076473657741605171935018096033465828056182643900267815881845910565039974080764105098080110835668256283679823070575898588605308805542564520292664524364390120035600060027940030167386083820880786375027650716312266065811693369931280784742916013994352411994314742718012267719174562803795673051218579339610627467888498518883361103579718592043771443841033862918398366435299538415705211895078223432269204292895295668997700775467947751072571848453805204354279173834168591177796720909900830729005970382161479816250943287953606907271190349968881001382561510804820707843685358027015301046255798251522158338703209789956079498870553972285702906267156030034022129353332847983472704441650253661445133379427804722903579461897761079715117174646295309787563725993837324950767325037815870709708699356678893191259040015244991516190800944276566783593057060760941999276800102433945505625565851305458633240653777654121792568892255690000471935089446503268513296704575147387984669653916080695439932953197650946682217997839715108509421179344237529131323477323767712081161058877965558891935885576064672789693694554575162801097468618635964667271127193002824886712050359710295608029476864976253289602845745698637854588004421547404417197659495452719149347937820489115915751966511431951897298154368987477941372694166018866775728547979891992903497253231651762589043219934675465859821901462835479944742373780027315827081311198419852910175112436977143451422220539787296839642152198029630022690278624679364928032989108479530232612182462579069891502264600714166134788510178484845888354246752195598479104379029940651014167519998310866231340323171728720326327489627674324164269254045369617513396269247984306687683724921312650416505322213757894584332191221536468272279045580613407304171791754279209671588772573243990456096156102963288955578663152666075888809684580776570490353169622799976288178995094877966616311504152703009801159162912756493946037377689107561342987902890032528228532586320721760720137898658573810596774434311101034521753540288135984310718926566006866163047892977493793990581842325719530020812817605469177945166702698024361049685863930652353927694034852743946622942454575691571139037764112399304870478599618642814434077861872942122003065085845877644613490153602393094783217960948662191790204339671141654443455901874743643748015476294673282229023470127439350850036359494538367868980598243573772547573188035582370423205235429247193275602569354309832128754752092878619140958174383183642342736339741511119203452222977047578965910652601687590459093352687611453597581759843456404249554432490388695133330083128781440383093453571000621838600385326607846650117966505367327628120585838800594792049624446024554120617770518866064726214502836399302033858335338989908581357046540334575904569879727216162750989075177578533474852906055680733863199368222453560148612275566936133688486345632342200702597938782686735200974431252445402203444952098734330164110290071582757349846995036570756870575502909188145992750328947977610417187900873428770403785733557626228781611025773882639225410799533454353876584591675973304465079951497588091832743758277980480151732665986399441391430131352668111375314003539125030115377102951154715641365295293121508038989139497574238311065645394596916521192405633884260126587895648596301822839443286644833458231443835008809949146057746658327219801438960333819464974925658433906896211553603285586448349345036330300580239944896101040885986887336675595336663882268829343273977160048181417869753593821436546858289400294372082877855447283705083973813931900203401404305950426308079707729647838014745950503075203908874263786425764585741372038956793399194829903826567912319147326501241956652591283425789207722255622293113526551177722828049531919643524398020751185926031739020097480361608206207015101767669623107933621431657895601329280458516444214210390124958970462634470642792039236516936609326750560201288526760858259686899123351772759226140620950451688558039474410480095680197233088304248905566500465002387997726547589801398789860197610497844948140852593439078170506763870678946697571662899307959833278358069571297264048276285634775343700688430065630000180083951263457026562643321766391857318372090706585411707321703392293490586292682373042671931530489453091628910287590142171903195853660052121893662911737250709462650781143916427673042359128910120068413378532637685142580940313883800501437098092650712149812432413912256104214342136746619209162013215147371661103307849510320421484040525193124628599733918614121567700136468779600231358948033548646572927025461131294826848848354318904402980743940622011731471154988597539259757830747010993927273705957561201632687809842383374957094261978422728236093832243608894398385990007825879304165142315703693620992534421636455047517715938729709940838620427120651495585874638874800851608984046456724153842051289985583046888852201418857591984560431216640910474219287873294310570849861538075097327050922438209427319170442813400989302805368813732897574039451007898290825064136451370104755678784081233540290622622498558998422424305306356713480372459451179648705817290469388218605227575332704394074843055753791676966970242182795233798967212489150144352236618401224490165876353524155232151191034306967517932048140220059932404268170920394398011596916191163341290458834273127088816654624460468322394994440841028625632495104950308376005211740357908736030581513769557077909369716209065916586854309952339110099010218764193863481270017790535443442117645859163751214490268107644045999107726677704970401596512449799850050075819550250327009909923707302301099527221742638832523817341894422495790011225747684902275585227255394375610952734544778428915373085360412755012036129914880499950178592018493076656510387379976594110646594556773331369769237397946076563196950972083354299779630837857809635659638605451283011902972770108474636692079059987503951140329545036993798083669094862074835853041848377425536265416981700606170827319789108343702830767384743041912682073503120263767776583083869159271829894684109228853881599942670880233505125851915773022794789355973812323038677040118181415897595197655455781099875462260188894973486016605536162808586164098694234555537163800870596460578783400903121169196725552287855371992446053714052432996917102774988549942185777269445265593068241839657301562774008974007663972901028398326519060707250201759305302632914087008488380573296356465474504991604976957181035888506241045671689737224631321866046580061524508098825270319426706539549925724148825704301659809382418377600335873347996467150533210709152689226776795631314271646093668002338447277829765628017446787707114415398420440828095030286465907462052416958484957715994881743308953549097128425376580261995303781724820723874394350716867100250938255484404272696215277627575361031612202326601344474539146901548014010274722561299074659013301039081642816223107344009218923030301255747386175291472869583928453380455832473940511991059785012508850915595180656573095503964887008465899538323245980326874687253787544590138099986144411322520209434091749285851637843223594125577387330376503607613426475342449423984776082778367608935322048573368161733694784432239494249307553522881237586533079743317839925707102052787874239151672159787736162102481629797795058440349637696304428382796354308945753817947489242651057440672682852231502868157175056194104286342979730701851685687477915496587744263577412933099967829272975584757108754508078689066184710925774336417213600254640975559096608597600284180381415776618562263621651056223265618157806957180180034211594871012221739181543011028694980065412254888333349928870051265427677670005691877109239809145955720772059858122499636299600541739161713750959835576510622182718684836571456032137422187255940224098724833132323159335083819790695977360057368882409798206870857251902809332505035589096158787932076278397292829952148071268467727171841688294405938518774650128489246003816694239773892277112935801229413900930079307637554196103590988730799830490049431861250710374336473432071365330060524713553427834040421119122658365181769260138664783280009751522424485141146671914056720546712162436162274995708529256978205799583084896089505517976030794012455120511466821832948282185910237994697808059447236451026709815626220766802625928553629969701884375097892141001615840053599309304910826774627019592656950392192205666365811294071504826821259240506159664602649322793778480802088872996208431228716593062976231796230913828361033105404634089815401965593510934165021120003514001891088006376805877305228388250108724950460679552295190276452354039325874696087919546982679519910601160447062409638106272791785063769471013703257828048273186763119028664429736538863916142696586356747904424441136206017906363985944494832027548515817597669196491234760632341965136514738093776346384014831477442398629827325958339471479266859375719014958609835066019803208974848731929377515001036817123189084674454108834710176518583661315949951353615285622323697322957117429651045421889080408020880105034254172091852669169175519979657151518770825077362270209595161627571057337855652517817934555468335317085229231451592983299517033892533135009647782253948153906308835253870016342469519314529701591587050446500429653345125423670859107829335789025468326445314159473248510563395810116996503013900587722032339635854752960836283947684802392366209515962942806850947826297833164211011113120919611348790622198711690495328748196335421371287902681762601605735893429461983404112832457329707581236849498187513488014087523305154282809676712573346180473539930923230674475706209393238246637158066516188575926341745123642356363130672293152670988389530156741201884153737962544251270836510665143899967759281222246280531104557684849832417404917120077665605852865259582047031921913151348762305149882594335906882230291102917335260304895319683342028610216248080845292103581422970064052162745998907625031147120941247278379538820768551647035215969948042912115954020103293299926083428047603569649579883411329298682256140892980034738499631422776479403233771076491005133678307224285045989824340042131554428215442964655543304841372910102150061162504548747205686407906785769866956288484530833431035618090282241702761505726471728744101224408681782434098614889004061160702342190992249618567233637305821020288161054747499505809128534443860282909837683913542662973814876727674109008884838884549917083614820702146504699480204005331924633011335379811959886464103091591029235994180723654262719890322319276022125306041976859497800607219934212300084451022213840731135490245338533987138666831256086006167890065118264802632674084937025429007115988894883750675044782473498039135109493952322227231865012550099963919892609380276358212647007570542650911165659986932207922062565582220613487095359002398244371163836622810310472641530182769659676720243938474284024735882429517807558771365730954637700513938586757139612366243135586776170127549328095000323870679125374392640195489684670201875564688370320400508700101017336241691165842930031403024373003350699132882288144476285972376849349748079863630823322767105796457873355628891080860202037842472283924622785959100384991096131183018642736053073458350361232251758446874723250558632272123292718936683737679738652974296893527237280334436301182174962010232957544791999762824522646512352894569372878993740727766807560013867804334136054294066682202860208436788364125153640159508338713796144823676096833077060712861120992984238962170489713157391634464725787341944665548805504613026299470943037614985625431689588160572014595239175852417037155014598909515296328786764513796670668530103516027149023513558372074351469262037613967711522487462340111018291999824406147302366939003568045385976635544751911487251093158431866172184842687005094405904626276440598967175119404647529535454123026491807193550337546867074821449773012445214302306649551616201447948358006586007567334176789359566512531228421417860700101850095209842448025593663347241292110862526024862288514444200462727264989439930391565575396426130824673387148304573380244018629890605791721414699814064174396086609282664032664170999069684856556144527406578397633429483319408979470068630548597925311084413997552326899401937844027397941692267260858252352824140783724259679356633664520991619134298756747903812332991688931721815073283661165609501668185441450262715773788774867348924237092535756093608668098402653652454435198658183730257918115696865355329087641681941942486382673124925777946949947652153295331754616221307418633993007052639098913624175652270048687349842244846118513586750631311962372477061856290922622777349991113598117932407455078159805491913635553641507516950595782513364297810802963657139996929023734775427163632959683167588784210496689129911757524852953577376874388590527088810015690173425383164118650513478871580889237551408454551806072128412667593010473628522830623370806089928022226155284346926254385397807507560415372588961273881640731218016365518364881390220869900704745601171825842526412235131504440208682981211535463245913946012365861641611285206408800853470453313091288830596574351587453200765303142098996982738422187147571103358903010630930240930876123653862549053940930046558051746428820108695901795612079842466821399623983733895525019405597345626586669719867115716958571465777431540144527633919555584229989845168594217440848374653267777316000956173131512470074665414863400976758126173249505720359348168126176978081763686921757830129840011432624441455048289006360901018007544565489094740360102314542418758313593627482446710979564180203329308071584051529314994370306992230144659357061335504170600776662758650435425855694373817924815328224966949410373657410626221109069531694927280972952907115626182949928560929825861449155501407498119215240109627515075648499585632494512530740393766515778880703677018592964297206528012946201615989733105676286566035408459510995539522933553772908976620213831925086484085061102522330874040155648099605084766490078970622293579480614222344721575999666756761933902693064913536417987293073738982389035502683570165644393571839396566647590120661718448515304808536442128604131412366815697529225587927758189501660004386870355923071530781045411806594040314122306822547670716703779010314091031736218871202070022977390787501128696148714900208777826045816385596417588766448725905193517552588167449821975776847381538170240293842007550419901798190333638030492959461409355550196099832613269406671693389456603457039558327700679199410833703255813315283022256612404771864772062622399699786226148407795917190952201192156671729965171493472003210374108717755763918306355177058603952599327382052889213809413204452814109429698903366561524953280087933903553672128930675536185350882256991354411471398668341936529278198082365989749607123301199490284182628060318627950175512113607703781061951603633420147726815243565773547058623454656814707971837849658024616686187481347665298619579690167257810435241088696080464030809347098965619986290505036608244682459731309278452026787397064099914702869267876301468120915521335580636971910004002242672852063107536740202750345557033887209442351344885585135022923610846381890389811444066950551477706889301660095743655290617110220313055031472226495101196490536120272131896441766116179148406715175972782563042397203135216718224541461221797709955903328252284299991597825395879081759970309620653337840689718617593576606133608359679397667896237193920878375702428157135501721387673669805060506948408771795017373180162655205280729342420347029082501266933529324462966135800184677546111876051952193314183722151536824938129113268376594679116996349005514448829348269113221111005569370904919936053567074799913896664452957371531477853997627595438135932480078328863090283856082878265603222090239998837325496575549767681029229528466391022194264665836764770398966360315118379110487992231573720383942400729108120473777114806733740876499631340484072480543039771830858790263909731771899424249724818649018096090757077696383003017656303866211994597280740075283137734263815023777949590410221973160906751624745073171037682694108920851065291386790092317972018549187158369128856929858433521750683229035296170301310112069092469925693077489058495010434389897686489004572573182113595116643343930423230747232006823345898876317634186594576623329646183410510608398888897355964213196249387328128124154015560207489887194630744219678974621711853959097946116541947932313339126626674639656068026813251538341062828539468335625148155943611654163340740231769873899454037106516269032481780342233999917715068851204931788959536630548063680837307160468584692706981712768685367149008540627025610731061738408098977452672562332835577250368706837917191954327869490046943586437497355306357872439786010825727105868324898525384965941965814569502008086624483302097376985271105742306322723485785941221325667479501540032011017160002978282836770295221881987699417080496707007587530287755376551699786794371895772157247148878574748231177492846022824698542422585085270042464034155534601853210530579876930085505835108425902367139427964490153893274408829671977335573050284522229519712070577307959597251356184942326186205125811670334008225262724091395296073181307743355931384177387480003612730848586273123289168747720048849790171588134786220211613503214233519987146602869873956185005412853767190128926141387507858433609214972364131893691208335105528063987414546808583335321174547626689533537838656499766100556088495888351788209876811365438597661349429071717714289323629125643616009828931285742381192932634571421421341320283507122182126258711332803152878434104290724922820521163037868562409605564529929931376498889462947158174875610162578379040844557229969282205479911714934479744677796403746455109229766945581589597421588531697603476185243671033222764145579254764935482470038710193652500270754798411888509308677260978341558498718420503631282809860637379459593913893311282200941786318522170963471057816143713884353384012550082153352611973648262553192665798759575541041401325579092224404011766471947790363527955082194282181496757543091180140377644914744955517802610912323513045357297617808436698017302270788914008894953856398342475445433628279046163374917505889200231665802386308685191227622997230678516164622138942350951818082384667014001371203993407063510579979904415407024531619654793784831057943445629205167061379453156493183212668671989859946588052154729130480108105713367566114377853839619128407563792798502066747066620326680373774676840326826471273196578867953082006486484557038477991888528553374125487190245982371758438728252864856177623976497134698338566571300933411097467996869937469742291208013275012061142577868598355835781698412509266059576310001577447368556483156698775793204031660333639038841182242108036219155352055496798657395168869125720809833672225504455036007694431347806980778636163480809226002465777665866404128577416111103567092342812212357559123353298102889820244219462725414647330543590656046839292441644119594934032428953947941426327350898016647933627583237077741104692051979124583152008971615382318673804398113762273097931832479344585969004861552546325994055555943136514882142583206752945322577507688663010291197928673658564545826066814637561243277555148662964813259864873665988924617832170138767220999676056884314273650757672713211491294992477120872440637849517306218304994931913070299809657232846352267714180707659598312366585927861719652101546911987655588460907594766136376302280828103857277360408417726787233280041923617671296576553894138886390915138655826774681134873806766006850037812331321257738420654143341445198086520636438731980835154021007762665206338749177039999392584382879472224992937846743495254963828253613654661446628056692022756770050343993682594295711215524869732838235736250341520194453479917809543591962998490397247163026196819354522955799385753343590031557325278690332939723585700986927842963991927318375533151838838861928674737861778245314015764067803267307925329355868152714876119030198381443790489317953702038058828388565784725694519525938253890127634174388411011358227993151317731276348396904202025742384874483452618331816779506261116320828078398188503614475845467091806274869514951054931642647150720610038776977940349812426327448485796430016312169279739315590896596734303812899985261342495404007948083955436476292247935240315821890659008607891173985965748361006153467402389888692628682998173254528773056244700440270251682500197598314975384651162481570019485236703902988928021104024324081687083847914705719127803383028602749805794979212615852482273355954027390841878509672197000344666922968466289133079043786793288882673140670415168148468887942068260281587661836868059002579681415287370057667854660059293495447707075834872157381952601036762313687935485740071289170221790385778844532572976254652431546559602261702360556055006961526621514544807100480900851067181227059950909388066633300628166551896784635102369371876089653877072286013141432577056361387468690086835258270646567050260203952509270703296751126292974639817954618293539305698005372524672953443758804357118998845133210893412031093033010612589785115311257793750395275698576464256109127246624673934237594285155125217965126730097073577831926618253547486180626287742111246120718680898528660732096281661200076989326483017732099539699306146903255616678024930600371978512644950080418757555592996784193546373412805479125860268817367862305441542565592381840792550544854184471822608245368049124381217273280803747464383192618755897896956549841130496875598726208982904242904494241375651220718825318614319444232859033571949360608164480150555659458424636268252406659816889349601592705936614463525504550269069268969638693367119345073996426146977332914399165413242562681791079654930266758155184471543530256417735441122023857904810741574304514960303941094214178729883752628432477080364980358091053869881867114553642661396553887460214120115832075037551636679510155569513007145117995363028844367864998277161486535741622913137366051423474770170968555907739262275688043309174533787561687764158542787246047158100908939103882736215052982404900642452701310798173430325642931292013414373237069454852363879606348869834516952842173243118429289615190113269064754831586263463925748738280539145064265139769069622332208647753328493392612143989748520141583879829258088194880997999125181668213403384145098562867907390670136669908965882310178836975772724461696033035717939167383993047066687628016043533732590669104352990792894531598550954282120606092558923023351895610515535444105014583888769487329209896151621890506507623334230675838088948534640961766886800424986153836662461763814515732284602829973488591525862460155023979680135816756190552416789668657202025530776464194137076958630516548622562925855122403455087892606895775571123582254258812153205790633879293441471135115038603825280036227686234594931914029525777434992645530173254466336728212274114006036504344686788213109415386570235486224655657556263078374583341210541159974360069680604360094600323204358816380624908950727213763968296213632035253056468300450014915139436130719057989760153876983499701641532474649922205590577310479998451027852020146048073104435732598670898264790276823991075273949683781416650089734374113372263934635252384025367958091097558346367974141843592884522213656027864684656356066274827195939469329972487479033595239076083964567394699415771493384556557830800093995184917063500705892994509263915614620258531486021041388312976961530524522424962388190656430136581730046863922259897417702413773423859562967676639746351183719900272186167121956422560642987058480067628822841944688461338779723394085404383435265907060478241463950267166607115508923681952498260721849285092667201991057190839545692036472110730816095041242730038445904203184206970097651536216209537907816489766131232712519208006660763324739681489040419490163154277990438924055854603663414703254651499271849500283766318877250292545868846312578280232767069449856794970523669709861073264565911002633771747206941242255115488321618565534256169139711638952566587707544261268153248473585157607885747564706929928127393700252877318003890504795405817343042556846317467809477327777449932541099836301314607742050200284041383936845039990670447790329013706102757939630744930813923750089790476295151879392630136740518822586673947033465969189187841192491419503779908356605357386240865066199059168724563007550079652479389265937446103655794548598292838559602811022958260288087324435674529645463331728841061550400605843149289959285803639223480604735563445032313489661357757708908257791352548671558907794406276613818710870299695159932778633532960072820123602986673650396697966251486123398244819192341240963544162727204732607501343694217836619105608026886517460550156614044405711115581798449908395376392331881724990992860129107759783504381255410177227922464575871253065049343433034086342809512148113478081256556904323136785124177738214709103853637806409847100995423784099287758640930865434104269229843696941640588098521513691198617863074939428530721784804250708443427969539985171688602137292027031664388910450369290784774688000637697978843085148543040878475452518883266261449440958414561360459748164357754450960317168681478649796644467167610862944858889981741926028320816941849437460412020396727685242346305674900402072576043074963387555275610017704233708042890098574681836579847611968653296347569826002200040020535217163311968456008705908538334468550220751984936902847108650396664383986418466668534953402453734825002250290717195697946300228464437797205740516913939619863432619646841857143791039456304348875932904207502092932229893858833423263273711985164211301541967249916800751776778216858804134730624623156474647013836977254103138706752278962653773350264064958467778608514433423775294370248348579688586702893057719178455950209772132836586068011957351861539323154241822054920790687423206907038967779617075357188549109249907455742080948397439436004356203538577634686103053074193743816225384744740723860831657392838016020940047414770740206657345089164075320119412740838214391336097409563578590822022470572456729737808544916517150330210099496305395690196888367213247242880166578005966929748910542506242153650632863300794366216822481308825638276764488355401618262706512035589570849930397194049105188330469143397046779778551765946522305560107536614451408135536556817215787540092522955373308701675268314131102265697781267138095450474012110988080705897126145851748104282739547644930404871212122727074912385315948894097873104479900665637219914346863469740722403157565393079250212198438741031291882820925443818646626784159157821594335500481012093396783804685687005175776490558618719809514947243994771565340542706705041496569827871343826289494965603778544344893477052436413072933043813984737014928241303275900241418145313231066582280945803717962116965711630254926820621913187439586246914094779115950816310369274311762773153783231574644878621327328912663519259087566444558075897199052749202090393758967663288456145134919889295335427495500921056613899981849477040051849838408521839510306327026411902214960841101996318356049468637838320920729155929613476191599444339217693540251158230056562063499114605023276432173524981332454162703430206254257337623699094961994979013631595126187933241073916153584698185484918565570829117980850636808242502537929630043713725892575055896295823593673427069755354182579260797377052496193692009411077607663173138796349277592516002360673983546264607662545637779659223513345666272470673773607556625431194322271076185585145229131043682496236624765030737452992223198115122444563795626792352915048218903084244932532299020974338208610342800225313075251139310548962440278379503416253060998886190716192869416463514110880746065772773149201182871968923093986565965979558745010139676956653122276261103011223368092641679866707471530552475689520855200205856206654347366542846612664706260152530302079356859356828112299155170792165505690095467736848162399713317820663625295223905622122001466606463188327991929069765342162311233862395702517064155197031221505791625013711025431518323982576796117274029599883470978423059993019586160763474809233022938605011869865132712886043899555368081197987038912254657280538462398644932393644425865834963904999417816931779595943579715465256668411892734166499787778305641392844137500176892628920463356748205832975447909877064391787728979532832030137359107595350994820143489289767258785274072114813683715824111901823585463887691640442860957798414918394259191073956351917831588304606578006765027061024894305396212746949125700120611516133762626746920564298976755597211759134406163623801885279672971494480086309649805599680288269441205142067503627345238875614272935967013815791683029448170776840450176240862611921556161674151557993482198053735559938789276001224502651221862977538362892829012330184258184324734059122020112915219131480695360104027612036930915311396731848738639084809565452790291148822634902128244352917014501110030105870820779027169404133631319896884291397004297843767043229193255205168059578304050604533479013947206905492195578422757138427873195171446826420365691279603877464245997964092537893564135867025012452083493857739686882401610007528314372747967740744958391608648522052142845627116196762951556460093232541813001888223726076717943607335131780100541993079386975830511921108168077684159295636726132929121542515397551332375852378018059145526802151019970233324039617900988454882638231084360896440960406606898985772515864757807522400449473795033449372759651106495525024515287200680404754053850734598557183307957124828899542276220537933522757437756467562327680707024710479672202204714331917972223131228229207108879803319009858095717822435853763783528851077753681022497501121511257031592923357511598931157988209372713301859672743673526135682568529328137379354337435771811085450427949573996682727013237482409677062573367064256548669244497676790170240277150348865928045796053716884570618447537318168680441666593729109600094804644355670833368509311834577390436978590923757637270904086878053114431532460497403808199892388246197926225589201630984082213607011085614255313598681685547312513719381343888637415459156032194225479053189314159327240597831336573941217590349048924278704857807556316749284988602436302764838524547565027339727656147747474693576195059652102762673652106944497684440336398617190448043719257391347821314440038642891847472371237277296935949042821731925367756167700011332047361196751159214883780382318081193552088117460320347616269715487923960996457867224541873268373293072791402233169421721123575305194938153508226472962972461156961302238871977541896956846718493837872285337107974586968652972843259175627714092613863604472643973244920589082129002848638168375518431532283045199285168797417308552203644704431593327951448645300586226944284940616614618746842515183707913172784428156358531587211261073923221745915791760675976306710422989137461428215347196861383093788626917009929125590227104545243100642720638242632562063807160276970364680787434262609313453437448229142278016142053065954584553147644043356316154000867156351000730885737711422034847498125339758711770359335310969287257106701225676450223316750940622954869581338260978389827022620156750730597790756142968471927890306212759871726006980713429250986121745335581952177392297645776109674414797816166966408831275154916701789219506796590092186414207867259568034799066042082622822552200200969887993867884709511545078912274969737547445480599963378950930364880313954926219020824326369196472455483889503609476729151745168811323308477945772827596605745646297936461364967471781193489365300674851377250207567984300664440301382556430993784454651307889940538574103585485360156076420418188046967959673889337942954512376182399370316134675895207422598920354761573573452000504667583056935275929196248722166527074096740718049633578969739623822498495698551101242673968352515271769018626204867590526959266328676423710571653637765691450617525674716250946972211406067858279242546115979843195072441656503314997643320773232809247260053953352344796972987707460312103472282929584439919225740183647442426806679210649867324878973243293461618221395301801167671590147771489724789925721674933457739601600969496140152756115696519124566375478031087789439255865790600133168741679934964669986716887097569106501510077201926652934741400419446444049338816851265179987830429265622474652179986784117428599244256940910145458607477611819268898300346742822275576784890255284315766014079131076673497020089219080973126441014154520157796292196574379840632384460205277012263593362682754532759680279334547218321415593403641698065703418707931608535499333829055289602947059380525326830560088888107512701646900294623500648888286900469281446850553388303172242490763302807461981705306875211555275076505327420397482948558319679816281198730910957213395772668073122840796017195117706590808792611225156351296452807972177213127409702504791788805238718936520425303328911873534605082041394997967353543492027994541025895199843139321775803623924732759743724724590072369042526595420514028056339277335771784032476774858201482054620432235338949948517611141371708842536366800865488022556255192008390885710258900600949941317724310976598424158343513234991135199836610776452383717323166389629540193029405361936468825395188421352238126618922891760173706573203826565557631697438578193576831504754429145987903590449021786924643137220138841819222749920051182799952126565468453519277531723895402180790832326781785637557135541049868369688364883040269252785966348287100626770961131782104200795945748519792253436729726393217004031252925540462474892541479134977954607246567711866998020810072631421572464803238420946316968629385871871129542144167272611438780970556567835172303801977605692449249412081761522994602342441760734248990443261794270973290694152698093208331262497514786201745591726916298098750951667378849544406097090297464647941963034834681875382067912432525424718269669103516769358684061359232191355821795686244155533862445466635152017884250218744968700977831848621101858419718756430233261403715674927417533195614319482439757882636520920364159243418232574692204771559168661919383454722135869102205173745553967212941473423748570350644506644461103320855903484784189894098054617713577290841713730631160994355657598212435328316348518337989690425281991750223597068463646424434081710449122378073331694665088456227763852250189805345649596649083078805288979095007227233483026493579244801885216816172748248408416545674161489155584920616622444143229655977529726039554537937569628384668941922978653936189099992937014109803586222284698391955388981225342770664406080595161248911953459036299528462333279082749686391902773654115428763036222395994676741891993859940379846461591131114759809091095085451652882088518054184442239735636316064558406439511700423793229371459209111925002394332553238354015273359434786654309871367573762311401128864295072720460492415257792447134572933027155930797194889518102522607428128932980860041918089934397778610689608457036568795231233720061430651783407702685783932106971095063113437063053557231017795240457629894621750782414792512372434886391069376096242033019207485987011900584722087330088753270349515131034543107806728898574544111640847863661894955307857827127552515176032362855972005568377312075251656156163415835556874724341181414943634279437539868425569389765483343880028588349025882287455977174677597925908737062835281899829476751327182826760624380226490227281227658895622764068355848103501208103545071341078645353851781385712928565392622383691359964686346540731309383520586005277180725287723269080540075564570021443997765093296728868473877988550579614772084060664696630282561961649053051385313790048327665383863313358940387078154902802390200758199681419493424304445011707525324283704445911547968720719160421221656903055659368864587073996831945735650808241093961158641082758140565385847157511922564383411419601520993780692134766151493872142238406786278993041694584480788706370235359797421461386619061066405449822132257908992694360312467011958541746112541843880915168091997171436266967766398505461220270862719875578784817401867537069948696508242911531776857294050047984616623851237927437306944965651984749905927654994371497583408559444060474344886115085110699645195667530167730746588143540541022283906763982779253313246243279863014915164037546252313797787922685349843823227579632246307193086675973006198155991441318968761291981068145664038266216170841794032300952181528974507163232472444343939627776618348155113355439227119554353809591676811989484882181178121031361216204741768236791807396248918361415682910121841103791751545118331499428473959537531110073021457970180215872358739485151913405514943149804418761056868285928365364472293941340340139890222542218177018815603216459732065891377981303561177558357937453777792741300534693583418637849318698095087699203495796732085566118996558476620264305484082472084067492224540644755450447737280874344742157534198843685257980218658439192502076376223380719053482681193115782382990120332872054962383938541450677311085836402839047715671171169497259035543145824112702973088409277335933215675009046191940537612899095076215219564746157001408850829639648350218527265260229424877265013990970408515876945990640349310154352165649870756914436455181822715716508140301373009201916486129167089723567827486230994127942818193638820222798246711773919370386184589416609427348192658199418314395412746526383822341032757189395936324325033770129375279543505673806000178929933078684791463127894130245847998080299006079955531613281788708298508363692655096462275623810731077027137620197281682101626020538823445744181542195562247270045121343916785619650943224196539329337616982049832832546375106614806092782804303270522267380969336297653111221730044973306471477067352117946149729091953674975646579027079475141580332546438298085967741440461393618752139936537207014910263009207559269236582649115386444972041893165115346569321848719736435548435111117353223818890985388984129160225423627921323575216248969212756472253207352322404563776309657548406451683526382043187985999758610719719295681562032209813946375409854642189639800667592017911507145560018035343580890709549958473503000192341547124553460432597942827199181970892656095421732982600495612145294965431500490073081331046188895874987893399026929472989305358169703664815027783775208979429634812004889407880814209064667871764509780930258313419932927199222418544514808025247108981547609970382491402574419701601129259567405649933391511133546336939814380929006797150277599824750825698310328445102561377953530240819465754257487182005272754201013275837935420637573386547546235982758210377409988239598697900972606010592937377168461217362016845861746445729346243679625822225481958096369507111043306243453128754282350638045212822678063191639177973536344822466606917807483593660254466451248539396664198355058827142292909965672497851451822448338489943195676828801843243293904139341473699932242606082766140912179865756883529879894684303798950907440389650456172892876495030145392976757494150560448887998651499567579815972317007402059250950514087537527664763496269123311451248130492045965878591185056792369189811053088684588292536602775302456401580984710442848072551517750716648904045559224682743819829543694147300118833091789601732610249268133680847868177350631323136388362157785760062206650073149754636660856292415709300844414089360249381218376907269407865174808792779642807823989364308437175352445824439704728957298665204085534939425980860754968702567354889407312345704531289987604068282284206900256764103604156810589092098094384365466642725589444642435535425595056010569814445370020555141204036822375990531649292655940883399766732125069276011045576017239436246671571023900201410816900907731781898165526966123260047837304811792794077287211839467949776615739641628344295535960863469777766554396931945826324112910127451238035955873736481764648098481736338791112410051192049777503445065648396994398888594497384857853356709482807128304259129820733554320358760730621392025751013917566961857078019061302240375843945774159283264577825168220216806060892409388443255716318482269006623569485331053203565799926991957968400325418571209348835767002483595462068226828481693728089208784145239521754387200572621716294750869304870243867223226888730506704798804987373381373863082256356590591605907115070539941154808963211891117380990937074828224396563070394888077133288289884371907093203864913327097122772459790589201502579459975908758896653874965155738980511001815889503798599993304051692164196364208517757281827212099657403747988868842427450822574296151500827994360978147800213337464846082697049712596831968601408569176094655374608482286956534339611445834470573254152092095729257470999073242794470112150513265751084177683656903811726987348523797925979231688215740413539812898572742788864984765028230989369606525664254726682200533447591783584629708410349714888002672887766035684021045987178812747215599429847458474586294787249937675917885846604892451736832064721639255240606144823657735339612060633232293981001593981347955586353782860491257155827839481964680300314852486170685409155587339015856549392005097164425468213669288388887479523535868665142391285796194598652158780269930001249988154698064793537447698100842926030861832159685318937784154496633279273397274426933578880871501533929650820616661834187542494948068360762713648071073583356903260237112239507276742315715339200257712752660655503101692522212799484614350573523098923645429450070916806216539481388457483903184394669937550453448256943003255443096446828272455182641489168716010815087065962158893986465307494478629295913743415642557873525605598522796165818604075642336105858981979548809415286883627217435823189449752545218219055077699287098838362921563918360203949470901236541533431291384329899243285032811495235584006630807611108248999160052206544921877392186384964468538325622818625802544644548542856643791776873621876215640122091768728817480441329665988554025381723334345596291125730921622080314569428249755563942930088036082190842390288110306796851078467336290914314850064338240836961656068974282889337454980003125034402133648542894879503869514321500154777182410681072599415869737995099065256793375277040379391903297816967938245804335402617381619069180401584754736825595716275337140034677194568219155494652205579991288768613848407027060763053209810765804225224896574524318340320130585960519779627030843174931835707515915764364592499997149181969925698901350318875748400668208595624941671189779213302330442205637062876557567979372484683206442977617036116232405631438084333631919337386033783228947557319749184528538492840945460421124675491419485959192173376166768783208337745166649660275679363548059019056431750675277056889335262013489866910017623553909807597424692767307362417628721268461213412295567019191949261503339693813673396253798144679513657279866800410450519243716416663938049205225727108281254393135414717903730225976577700557164337354706112736332515520108501944006873139412438927863725638687363182497244966092645461159088708392976514884158294504806615483669815025555564255800201018399985005338606509009701568525932754013965670035821319388892612840509192368962601022260066095928577099763535545572714440634321874795866392689286158570249596758634656000961901804349885762055453380001056983190445787729860811709211401826731652396226861082223615070842100684411690991817413807867434152704304397020953293756996980239981908870455760926253246522985519614249677409490473714509686039533135461864743855879683269852517448680436696972289447802420020401161201039269726399544281902653474307182927938052423557239662537717267886245471502143320072645263833516075611734388244886513469041958627651256046186687399917618779119568811023098870828819630872271306457562384474503743177809764320070863145298348776310254110458815320190777182287369107071536635743478475708376271023930792389647643793263016645141926340769329824531229657036783991447682253958777316789128497545782611937030213828814107522930457784236696881276423408837451847894550352082793036712429330222980264431836256086834877556835924494418647004584247040845930498708911009361188870824654795357124058601754512585023617771857482578468334963078427082510854438729697315406223443938187750185098651541394137265339597190661828266376669365845002361342619447386793342181542798448149460103837383879169558288640042001305031391101613768251386829936688016108584902001450377678041562508983771927466278575101254865931258039343351247933126531010925849512667860316381030787246444927969301635909887305391588998715872974751894359957996812610107840842866598485268428019681846898338314296490243546470587040557934935944857111215276386559948704855717410823329213223891228648138686350786918774371330158108767449365371649811764346845575451639116320338907348317407622076846955308448341547541299149683309969899670346532889393413298662145335247248722406321107528032697251227295539882173449772318113734901860871361899319128205379413157765705502633827550288537807735859287878905354036217963931660399629848911277469429366447228900108250443837452459077641756804390233403565220151911372086927943333102910202277016795213825170278657897329176322287761754415152194455386390648116581812610997720789771981760122325656505558964105240009165934896956927709193709183474409131395044590977794224617257339361906976585708629677004405875762853066718130093479210503961534061521876061640180091253201741849141390421013974121970124348859480929396631134221578784944423570840341971468704065249278523922238607452963545518121644053374693446993178836707061283995781482338828796195428158061364690123903959963675635197442240969558440745866694813339232654481810469141416672924292925224452850629497459256270610971930407513981103916939507015658201515092028398249401517985706796982539744194288581389017896687579836577743051326228979573364636198256231364170105248566518905606463925141914877988879333753828380010301551740692163356893195202989481302234378196902520592376485219709011095497593570669979866493127655968322612958600632469322433482734295794132542331631821382451493296024067998539806347139915979126464641861230035144573323582084291970911350444720281803253719259470463948141521854849637406213099090137954123563409487443140202262014097509852701419628019584989944774194755215068489468725845145778078339494157028631811330979034554573148850630544275855405170410700564727682889074537933898223653385332355604271406664253042696735222947583370880087884627337257111024728550805831479397809715135657355655540540206059582855469839159548756088094212991852431861665828589860029904247373685116928551186240694911608867739843521540250919583251050848994908661581445078063263426880837847313660285049767201390823854694011940657650425735493210111869754783835546593362474750256675349260561688356452469083298015643613146868980806470315561952585440566636805448335064950155332372229863659887520175943803295809332628082423046820682021384044709967896174427891176254832354167111462929397734808742867889031148432681129622436637040085647682831339459282686673102325852754526177444167426470509000908738748946469991612786023718420671941391952737079346545343693829899270187055827083801809636744361405322050381507693783027381054187966840041687517986514025510623280458653301604768440841554304894264887097993160343520769920316503056112914649264090895119357180466935205855817916426345200293194792338325014091820724416998718878331823031339700747328325064925738739103915560097335561658942730157765089557898494520250898452824261568321115112937463512325529652626968611587026524871647553109784659373932380916821425220079703717288171106992462416854936697106389746404105601063010712568999896026253108096974148530897285568489289528341664033971806662561098711390306212833413062023201973867655965223679265177243310995833108553434414540477611187884632469883938051291736204426288377789768821181056168759933891753221168635569199682361391101368868568232031606602318593262826890475778638930896494154138953840984211334548581654089054365652650674795090939282385525754410819425860262385538613393538407258199106538754355965797205462776847889525949500969854493648030195842716689792183872194810202614683203048655174399537190825783102695901476637022781964769709838747726090854779815346165793706937863787932776707591168253929160889446290782895523939709335405499789744472638132492005393586109205846473875950216565440335552423398992374912242429393723477183459074032571219691034412841129704300807892574703300323105673599786585912470485938805862992624709464966788194889441505319124039158440139338591534668720941475310391347186168182611180934690395615506517607773426051323295281432917568823639605957701160858529438808788595467844114215798951797637691977132756168472051038888593543025069082179102412149061208122804162557206385555116192691786930701483479682801168967692120768139246600903345455685647773815233749060643480132358160165364709952606053829482384527335954533045142277690102276563619115294518650692570221430635424155641604888638905318968790709791079056353407753752865703341391122315308023325558096722222049280199881292656246112933556771137495345744652680235769962874766135259778887813055872560027241003320277674653984944597896855283356683810559766138187764987282078031700041125271365562660341563051295632181097991442394509330766343794803016716493469642270851237899726783331600019862243040081614099956829215863934144378632612367625185189950856243710480512551063878818038183643637570804655776463532703557961053799694043820593399894503662914069343321356042443693948304814960931191555027808611564783426113731973682061657102504112072453394268540644271619128618429436199280063734000623616483557426596180895979240408557170360764741294539871726909499751959589872506395880321583841806121464635506082696341573914030574790884183843089701610970988563284826385285802529587827249471902639002552536917777483688430958227606759871152876527933543685980499740176998271336136769706330403386487328354368957942709730569479139411239233051482050302777825292162998067907831523330913864648882553597637801662698831081543184440765844209748354455509202072618848919711205504024172422023458914332713180417555892086553484403974731242960289967627617036016661029135619012198583264066434559699671322486919013152819731343161911084595131444847580807970367773094785670811459413490231240327186270384823049654477509574823212492708270783314406887455920412752090443213484954253039161244666834678217344012399359001802297162581986445786456707482280355326965746423883939011894359294901210686828317896292121299980211723748989362418620046684429755625775569775766719171830035894652078793876135632325749509768031985449358329490287327096987468211277464975878053723926704300791957613927178823518102306750544815644584881673126092149378507600353922784485671487489520348257718290068374001525300957968890351157154359255833357476194997955443254345978215409332160573895432324251654747639235422708871644007738040727115054649884286155490483869614018344695065360225729790111326875029617270275840051448482222029218260824978973250388093472767673339441498084440105381717721250653336245457488558201210035031948103144662154107664955132636655718154075026540498289949465221116149881499720126177526396215294088539872092475495947968005205393110887300159585038744763822900609346337587673978430461421752510161713683261360384251554044809432842302955238557813940088431792597444536651614814402911167480734291229961622031431790763353834397149219308193618945149383433228917715443844217303470689187676079144706463100739816665556502961442023591924573401599936965498075581722199732883256725897170724320287009056019392885373397978784175970763615231585091892392239272934056010025260954428152454926887650315036481069364329856142005040012743120781930085220772038294937855112004158671146558493123547502840159195681156143173782023596518600549041187541932650809236881411587901406895361035038854937480052262967389623812924392693735577136853548404048451255542751046744243942724816312134364500967109778244836137448520381686956503108514305800589043306514704334644128178230021129396546624451567906764107489687333784387170304075111134961160013167290086137225243368961710393538868701273054008444201995674300141481962941030821149847135932515205424715501900943287565208004548088808115068969797091832857266498310055689566491434414073291396162249917247458735173048272481852432903326872739285298214941347112102753985866064704538097279173197910344222559549332359671159093108014873109876317441107130718663565823231971234796142964267860847991865539868930928040567184020863015866155397808652304454403053784740768533120270960169286390188054888897762669051052385487441274972187667683049642477518034169194993755246437231204174330325943116222602757689753716877096822005114230178298486402563321454912902262068275055282044691460480603393782162055733375936680661900627202083933553631316371001546649271752429630734578257283827906962818029672678739910568896237139099079857260311953301754671068610276572189590957895071396227945025895224549540238026409254265139606422554333762408207787649667385180763277601884658425148978643581958397087558646876484353193064179687494286148024600963543269893952891597415923705458748050998625473253101890597971460197080109067058083094075514376989123221018279901918602110015677129840083452306602530916937335024374298097444327091183214440117483212559189962129967240157298223086696457080754314692918735339402021742644144505527936220438547307518621364842203709468731412734520328558320348979303810367829821314326774658398555624182000447871968924043514944982299351473775555529450339052464233155999972358829913567215417127542336676995127928636282518389358250511489789425375951849748574768528064530713501152548092801172648371922249059907411312463464373164061205780461478775413537663413618100083040958974222511040567140796975951953086776532392372080591787758517877264800034212940927636219158642172944118771225786174346796582737516528361493009994023223531366321612643920303360587481975327154987620426765792507500310558044509023880178802391584888276982763899035196217078004362863921275174984345667735791482928218412055196864645195209233580663476616194987302633816145418467581893337987414755593421400609591215912589331325372107381431598249704321699045299572996436652286881396033086319991226399294504224709316372836652749927988584511745998993780480579185220949549010632507162632535643981779380024915028358958983237358812997067282171229300542600439213985547830769680563007068089278372549527932917509435591766016756956831907317308058421780669484817408311825561730193759901498861130149805580621376556294442802658189222188835862095112887316135021832879806626270164300174456419282691142367940221180828554036679983432547940254773424609012832890615686015715583560051021878506341541196045816555941748112098233487766658502062705622729572927485628421195671252564867863463494123622156441039738826675332871975212490288661093867422477409627367625963888723674394947224446950588058341048380308353127904653979405810653546359562414185200396740645785133658289369541580800438549024872143479349049323568308384120323342044078065074799754937184350158506757735464470558126550959498721508931636343035567392003636548024982228434110350379401279094096639247145930294492519541530225116685362399822476121015327705080293366872026562797531761519552585148368409804032427959618561425078066675677303028788853456548616830091246301832523962871963128975366477901075001752666630656270192876474430935061774222561069459440716770306679134467804760915217280108803287010911035730134200072514478261929040161869069794942442739567310688262940808925545060370455318990406780860076512828029830868007066170818495559368321302397829135930989632099735585946625946754313844813078624536067916746264426329783723234945481743052299194162468274839833784722366507077559802110883290412657997491733914351891379086385916780010839627869533390806603775176177303063378185169192201280868850159985944387663420616410492420545072651033913714028247638348177173939704993890380024575981882726597792290080601195414963577283411897147837617812488483170839768382556141019663211141844537881495377187663222828853764727071580397035027932924542912742095924897544571111851885306367631714010773677889515673684074567992388708108691197759282543378853862738099506142862732397339961779686193112175733189718654460857523297260984439811833070364568743523299620783451259490797694692135444777141297986714468541496143807991854995186112563485174599714072795325917499752862802517657658365016372772619149574011278151944658913498224723746697488533543569195301247287413440158752289909515572908864691394895363295870671647237740538676461270581815769512648307127864773679748398219188244954219639844175896992206386508310202055404851263608994963503501010821919477369079506305399000715841457084703632709326746819537201797332811811879597830350038594375895567178887753721331734622389872598713243713223253456903743686743281015399416810436385947762173769736064665703628500198025191261573609592808178277815266471137842248812288198168567346395243667697182185344783315607824227650394082932555407899254592560308686397773365501549212387589987350120114156832139174662652055655664192508095740667255582223593027587356721969868319938858569882646974529355893491254668803590069639236418565324253072006893717257696380034182914296174184187108295289353514301984413744660877700142547775053167837651197262927913749601250077255926085700997037638409587807105395888393888051175226111745154017893601633840922714284968962769131685720681189297326979661980700632598569715632269517712557304403254638193612750246792905794480319351909170888288431351734548370493473831672548740506552443655371256711569487878553045275790741241771018279891042278763103549788257895542596624717850729731340670109112327362049909674427766706056455895779306546069031366175086806924415840946533461342657930114692869128165868979607520512455310883877576285563417379089880831021950350309657028210137996785542813679555234421791144966844898921680420911273397548245838361198639455780536914552813520232063887529136137136793709361565653982712092993405246562858029905908461275046153032969479250034594191943429947223753774949793567985306624751564454718160642610051800216770353903997205222249875648005815101683402669083997290155558803958901083031328514433827069428373656844181529485607760997811433854762845325630788335847610607353481237186718931361297141203896411445455627928702494910301848284486968923840131919838890089578403952530008644701087323234024378514158103903030183810089271919384798578119212128184143996079566207434619355159586422697411360977589461420074354583813839196856110712300632488930300338220979590122896925412513526990797066810449885018727190011782112223527976200000924884083720219197046996518073700642187979198873180197885130687054523424497863183159210339800832773452142095922308507116339963377689745395471507753208227665515018008375689453065079963093254080398577414597709854411454876753206373211136403004054376482832184587273856158870692746145135589577308652584275512569062674723447096249217062500875596582999267365072288955020667938920915838557691289080248190280382103728919454607007929977402380357695274532854828593448084714547045057577574145464984252062655935831743195906661318911605404430818903100123774785455037684367426366726676007955622995248126375065734067177370774898357528698147299552546215695923370016299408409491506834312795584260680156735642260974268838886243177904347879112099813520425601325437979808689728073192484309083988995613845934631417686037534930386920436272950200328594901925035829898439642334993791826966771301987970505380519238836380024928840776761866521869158913361837523673477174416831900019317952552098531869786482658574071115391125189619904205777263956547741864839138757499519714163680355399361237279706528953398242663428865274274570360455763062472586026080997864153374432827736237562609778765429234565251512549079734353635503247223329747982875350760043218926313616254497402838972580884598059342290836042548013011489220349758938193401168185154215527885333837441566597585126871444886632486940633357331881202808925347727235205290662107165896065782701722423250588906647105670761326090592996555368732146697515670190234155455506779689402856347311095983171757895950598666689391226776441742617074938409575689832282393956571707258798396702674384274624808809278657049934487011139154168474568349024985530332419672668683687494065420248678455115400914281930849133071666886518095690555470702726720172417788920321235756556158486358694600148559945417817337429436899674072685119840100419607385215924356275760932489719862178604631427145544563133809601988872788893399986099428746776889689605576670229261407452509866046587617263374845013317107416554374460574670273072171930343084054784422455313972825227750096116832516984733838930429525132209030589719422512396408997733423420935353637505430855205022023731361834271237584050353441924474685699332803698052631142608310278711620428978363368257910952291350202191934689843994977626945808775266270052318995322538817804433249940002898577858704387537386674306887528273300260908533489599663030586294594940993470369386890053105785731465723804391798405048998037680878400454006267400075483384976557346858157482357534571676885088255242069780304498475849065162208174147899747744512036770256988821518982287876594607607017283377631927348708078765281798241307657436225236466882077278218712067462425953205630060859696664049072547903499931217051209531605686067359673192046821279674594033718123661637810146674421500352082296985200943809193973819262459897304559834178843683591787642230858031965354806318558740950808942558267392663516752440337774859952256291867719165140109044135694701650297094005290777490819189241835263744366283337174612164145202119628212613696971442477038438959873497133335857542860162374688134365662342661659619068389897322889304192830405750454793882281754825080943832493190525742048773214197074635322985872776712905844493610858479289544521243065184966973187621943625367067241656583173274855411019312963151978744323753560019769036190533973190179712934858729329984314661118635658915192103189227124543872646463747328490164725969172173147583966020343461920853870533424595680488935584761101740615744366658214663847758750555460397346563503650410027925083192630066501507408466502521719336690058891493619944646442587727791142717088070279026664103382494733711983545703887404639870287747048009009315885085571151773424135914841325275357818694166910945168486966075141663083510835714531105336295405541410840161878240018932722757545129306546913998238282490222298332886859206442960156116112706743324010756681140546754797155594536049387305222073036940311021497407664118108491007773212689437010643989309071618523730427873010264808438069061007225225333607136268442815875511772145314359963462938205249261575957050095088172497021416041480932526534258519810283916390099281720450575725333174312301771580896687011748570511755278790125115299168165508777760325514724698967235054061127144754824356924423824102150963974617542574023566038078494027193352946757401757417691758435205140528879642099510135088827327761589424010762400675802228153187845656282514430444702019890190708771089586598705449599848316002543169224798531407863902047384546962440259680548307809233891323702951808750993176476124337153997223627786903928451929730799898595931547996523282901874777210363473158722025049701883675945003730751999989863422765547875860474225323662686567815268330695187119721478219026211134737404179013544915298948803531619830003433157587833559439415291974963509990565347994652388086288078187356362324634083203893945786744078184803500375288210265591837666743414900128770447312358469772988184368352075084286495428835961551343033889541529343240597076997356088699296979731108827086907862953660598741162577669012613279439470038209464134801853861319582623388695449336361585626625171639724493717339167625540227336268324142508446616357043705974982790835759115493117338971576883825253983604825600075024988313306713683353069898053450334508757176123399615617786684556792823265084175620956507554918478061055023857740096573208154263784434443263418397975630658924726700502651109066609855761696903521437191234593328527879930842794392216574382172711392815733099953580347318635163870840965221314629457348603893511919431352359611704516480087065416966861107469015676739262365132328289716627209228731930615104425461034311041353168512091554652103394737595597010996221991051503476817085284941245181924461118190607896954684098312064359067529026203595935413434352581215049909384861716471060718104063059249269173174342459318449627499681453652006345959688595766155308366507049216967606374305151495997019770463959636080893015231834596656967214665425672045674585259177989345389886413803611161597413347185170110803045059554096432979706467104475719645602184906869075738223892420745455646583639896937012660420246716775297538728323342817601115661010045754984078343583523385969722041709450951383694308558507711128793113472095912424749688561256017051469965081207466339874929147943081692440948007011068018884423228909891319453592229633982390437628460929672386071978952391918660114022199032906685217981727039316275456634019175484811098501063779856176564769814009026547551193545679279390000649808623987125281884858427039656380925668339594186806045312233290526569068834611349510285915484352148352633745017370511222265450940868746628707174613304889431186266778805500150831448961686650401411231419368078067335980575557989930428451916595016842011346610847805265346810540372038867347928205019810380367810847552891516660600307093551822515035449870239040535283140541430612665242583750915279477695429097640263242773027648605721934063443622856149453417320900350182252728297805607960534668319481272160181125764848764380328509364700762781909719270842348527929010508432738778498653238963998960863376881729778053020173238929755543119465242713878501435213596442442452478468605794486518862586427207303696436689530114179333508377200106795280147640804492788412368086656301864586174856864109890779409692498559292453556490047061447438058404032446139158138615764326657111448150733886748178971458613415693278347580412897903874676334494112649718424112649306542483218789745613166372344618932366043098856738360557002811141127413123053277812769366803230692559999378101595892335963707365921613278978008567391910413369379051040254684521265765941450853294478587229832366437934796200182434285200253312917874474095141043739183943061252273684108431222528682055762606811691420667742763454199632537768357007582113034337401488503833828192288261595449021521672392006765076127707192483056326374596036143162426314015306420479454627779795376829703566150979634844877602567855507442646244864670365357820125871381163670635551056049552743857565831783838720666721601264991538617354124355514240714552646685583111800932011058682452965722151634628119663238043793369527337015844518869967862161837028787356890920522879577314229587047355949515223526900000908246184751617883683991565920886357962528031932435090912298547128689202377819736427661921046015558357264578389486590231662749330154085128772929529821752687617091641120792585917869419044429029130305579006522635201604475951534599401344882210558838044648178131344429502180690376811445389873308342762784017643691803152341155409263892537505102046668484575804319486056926718024013425596551670057935916423628798524653028727935956938827635068349839955376757671194799332379503321800123656133624360619001165100643469244908815660466154903051873031876033291155562200722593839721757759662954577801237441117265789828144514358729849661572363733754453302658645870219747249591231883942626941378393135355619897881428029507116562495177543933653325398117053945879787055782713914921155489741644887879760267420359227671470847441217953358212854081576324168043366116508507368099455075254253742818471258021988795325691306775607433136579924344051115875184815303443078267541951776724907966641882103544004501914737825657449109490334174674723326775930186905539391138521375703490310741209571706745732587023952641893086441287997334666811015204367132970258692735126008875893474429378281381848983379447583133886587227980788358833952911202328648821070148884210369925797582085767111001104649342130298610729597157642486807469350198692110898794395712455424206556250687133382691755745911472401347814749745731136248917228008965947098941668147285094183423160343096671246652500586475590669789622750014578562769827833979297159420622575389587588540403227183660613183357408883133318683002986037387953513616493495905871064647261588040654015114433975951514745625367917877819368518348498601311312939520571397116095074508837748221078222592503778005089716360691909362241786169643386065865730703408843619157390591184916112403697864024359813266502024788113259885809582496639921242907065280698245189791722730079499793330249829016922828979058145421612034417426676794899323044503119465609303409553536180336283143055789891473800019471877459805559931197953518846989054022279520134651619909780636037860386832503160009463795177779343311833762804108907932972864812073200599451964106591662357131907483057347834417203002720927452491686608575305739634238498888246252752222572863801740617919344849746663329565770849894417045783784639575063783256210405656530776618452197904629618333466575111123955342460233288871815881292537493801773653879100755720976311310364972345194001055353779401942279119923688889864950469696619645222007597257940615195691755152693910721756856441939175011183043452764360736018604383792837513700717260818572600016740877655762825824935475370342897482892021927212821389767296173476902898990911347348158006498109868907536812443467762115546143517851130732292168278854865464717122312916014335362336953826894565926098379769674372836073160545011038036368567180599394834046611059595563419693420853935769613088903256423184463248816708086526973084308301674479039015575967281074032906785448582536755777186708422434111440384690694948318293323829437853824577130615193027253472955178702105601891712629590263269563619626936529906869089456818022483039418253989417023782232623067130818196608890988482121927499051448978449262954580335355435963882524952846851651446922076764078906024650177373752285285841561651743735276238312429155264409369567252119586229178673578062773073149057142262350457612669059149767403402107750683964217478079526377664194082326535075251588486193301485510975233160086119180066772175594869179312745936422800657525523854002189500958593865543240970381800845912030920685286821361896124898705256510201282020073587133722171002512710489215247535893783629645969525019651923775054531076823132648855144163317017546648793379303873492093774128034432365563432473065079349772064118019953586819496022036283384799848455932506256019056844310010870972726612219604017446752426141146345069848383333680327030234563321081232571876174309319997394788732069683446230963901271985006199433763462916870600432370124624741756317591210922937908167308061696578218170589478068432438182980714123260679231895498029251037377220771010676778474946268741359794379678328381086643456330321986138449222381174486919262808291343622459073029718719609209332682398123823221027254438193669286460503844223066924320429121021955328139667637602678724944742092101155990043535914647170043854797259369476922521797341715907211391024688914574210958223879200320087011749743716459531635687155989169615711811556363409232752337664532713633374785920682644024735747516388983928277784076233444134408995422834011872126969277744139534811835964547568365412390690660685347719730414086826165208543487789324118465390955979974894212820743439081025239152937138043433145353784017873095591770855066489490317801260084083304932744480104136688414632808120205413108914388969066524042081474197162198937495088682553306597962028044101267648893910349168185270253109854747973702331278865033391276034274515019612649450397305795873481900133888760530211580649000282854326219898976732065957179196786728994745979894194878432920080674162810598711878508289290124702678095873027623234808264049006877072962993511936456721860185042055484840674383746709000457054614722023024616630830359986302009704555200548653284915144834173860804748142847808779369996011641513019514673018027208931188435102113437088071455280929825213046653382696016783160938906477809237874708907561508222727508623707039494109344240565085356387012299047232134954149854689370855643451005180884312027796737571134896604790657590588801313434566595925959704704064891111430429830035099004010236503418408250600022213290758992725958878844939895142913470315163538570428258117236263268942908010011001486972116662300348046214750586206002075270897581826826657334505657499366825592381704337730685731852546929656090092442178957048321520521300936694982625722498149068269351297600620177582721518055658017183204636240583958193126177608019631785976005440499714726687861768020393844534908542380559596191221617922797505728212454154330012384243643477177045138908606618815878822430659413167979582478524473339272443966675999081136137649950316800830225392448221519296745309631055627492719474706723047337685765459672721498493793996164133498558284985612407046050543095439811936499021947026039657010090867848381688721001262098081251945027041692167470827970924835404803959195055091042519778632810790885930111207167351578340918301087661130933362214244765772376736455573712803882568398925527150173414288070730427832564433459221387719410293746523882003371681853867602659181629632176888675585450751343176685277522060839527981897356643613858474149909484031839198419661839425326195637992888190623330148052448497136283802950575274069757412134270453732448468056195815361731020283811005023722557398708086200087548319903044956821783701711808606469522696036715906629406019946980467593236025204868895852070776485999257974820239800150343712602400358354083519794592062199853092941217360528632266738080219176501206048004196074467369209337502483132299984286692413173365399172587725599971220876727137648439798958934062015527950910998642957489281126410082477888737670469138914384649832209873046367607396022143394131461231332765833274477128689953390199503913025795907689732028045451288870323333023362490445763677597535647066406297866627864904664370106778005036296623998870116453704358726351668994894408916461739886252423101401846121684353858943218388360975604963546218453238053030687349887245579478978086589965332797963554272033867247117819150118248602664614588112379277220479209227001722390204095821547975452069418086403622417320153841063299857554809560511929914409256806381746531495139059841819047810697526452617255342781949545845689036532419502011800680416769398982789536552597382952517877516569773307333690756250015573338349254675240895479967407846134163675573570593456513829873806692505451331275765937248345406149797879812928970992195499336598963501257169593820256089570920011158691182953304296553692011031657882128597308315194274161716059052683175616196527611875173986699675049963933374268567412741800464233450502441093167034202787836447982307772093853229039132930389668499075464077015071421137214566521716591058493442180166255506113099025244947080279166519410529664699516946962875245552895114012311552261418030263539228950693809294271790187590552968724560263576931038634897808375423635543383279837559085877046326575726285166579373891030323889603144385682910322864924238121778431936730899333106287972813845552492267182070122007729481969408248518667613790175185866479927011404764260583906575051054088871269021341385657061047624642028101118663956043463845719291931924739183245649861223705306523858680521149997172498505346065805659739949534804026968042111882839374755696712188782181873431706558877411993041676103446524469779333065949981352710852440211744573497510178541090862776950804676351495952016000870261428657224805108306371617832170917772911772513963404283796350345844217621352524604644368930260982398937935060424628160580880791332812198850280755705766521108865401527483479253896933531188577474875059906357452822997127970431178534617530991063274277516942772291012223376018250068343954353657430183927655557275605659951443203042331072950313487968838753290506058681299420114134188701919766680544887276797576205422583554934009963957348844191368964342089677948445620647959464461337606596667894713381451220310466694292736066341588118967704599629681816109265241297955724877527315110341045588104874614334126076323855309767212804664303292179363210996501046674676800145240774131769201900098369816411219741796855715581677571275346231748262219214522390142781971702891329158031690915637452633685322880149928700278284412714754912169672473804083858030679372625575280518423999143952318467367416649701831441817296059766907493461322678977606997734178810087844092658278756990145745504334260554323060686247882553354278801175283390255901496773756638069650766246426975926432540523804987509106336906322274008204971273499954144304523510354626534651309035128237781421974978910395230629336681344688950009391408275054357691436172008603557300557866526485678174518731056831387179088475301904119532027813919912931767965726133079565918148136872582537450078289408731295838658495619805506132075573451202830906479575494167978057578365450824300835490850271019777036189076103499334476897287434296346411729613008793457901187637639899149522439577723790051459871204264227938138227327597459152875390190685259873971174132147219388411054939961412170675700007048966696015940951741037536859894305309817431227619728693026855850215419645082107999601919887166127863770293503148143205946448012485398675354297838751297312685293993325160898066510144051317801021235586610275954740791171004910830927371311315844280293209236310436050708889211762447091615384254812516340791849381876875268847942215639486831522234017866710838400370463012715208154079412934076812272685885939278815684947399822445547360169223240285352613532176485799422017332669687806201829951356607656811498784588177519139707762862197778659177900411349825995645413558651805212814525015384547755617499216286968804208297488157962819235642605259498223707739056262633082559127684923765856617769998311377931294719573632804134560768919595160046117815172025988089512261312248322343526577102754682209650583640483376858751779411975999962586830288165739621556418894899822100783625851487807536885808848264445274448002968852492161834866659052046876839290917861700522260033299970198014219473592242755439278028160679357855073154465129879191188159588226344449611924263742657923193799182868685748483574091924924488407911685826277567517898654346340062677143845002461471375613327772746875785252843582315060665643603697263945084841864988231273704370660031294238513117537501644632621623523306825935133247992350714702585743720559394345414843971890855470960016010365107804560977979832940217656418488037544912312273263640832317068913098637947565842117101679392115236445627558841271188569323998368638597181088150419426524541367659463743937150854546171100476213844409497989542972911369282983692248222363935822914323476011307625381343683932247720004740508765994981420212659870685001991637027522597149856623346133286776718260702837472657035216324658376630692078189890563735286183124013769413058666574753955905156341310118507031875794935534943293957803882354569205494767363742036191784377006886834403271222119472411318409492337270052851684043424816203353480257493394973798802602496291582921069866083452560803280618796164107120288828602201730469211093409380740811624355510126841864945242443059138403525737935931607170208534164844186292592130137744831468875850260818906093552047747234844873832646367685110306871869797406368412709633434929718314793289738239342647609949264066446024108026466280712426172704772205272789277112475019851293247994398336291405663060462547055010691433132212419162376416253693946665891658659831179641555285093989608573580307104168076848192926895067462421959182059688727305116416745304313957234792589739175154589529085514298272462396343451004525187702779499724041284064968231828151288361522626818646682162811461348427888587519434201174267725035966864947765670264123417998784422483750280553707276966405208769102648927286306750213723320029252818784459012690690908628275802994182475120975740449415270634708667914626736766984511528515761027995618212233917327902607177532763701469512333063937767480733122763249295871183647770071598435460164092170685174749567717432615862798537930318335071999607003923075534768629896552150579239960432558476979940622606455963859221492287132648199027574050195195397630482522410483727493910374153755913466481213014676944801977769483071497110670110734457616627032992969555546891971518207565870642781709819222108626069759138558533080141293522301613327312953996465033207327415599881062713552019309820113435026209703012143131297503325694217432200033433337175263921537249979677211370941838420254838303587116739348622482524506529340157302385372401975348415370497490733546888233585525772836461270203175629857946409631214150396405530083795816394763576831078422961309185780342761695520552680415251008494203309858188355390506045517491389785240113840656700406350390267403088883512102868966981342804273769646224848625225840499501401097875317312218766757444238542610749695729189056453521727511153701934815542517236156747334700098448540943533363249709532547928523281763479654297385293293128200710976140003887784730702556948942466354054452570370171863358049832885427222405640184981142955347559259729043436235893937952400695193187860011163032579828681313762586831017184833273453404180225271911136413556264194467981301498059539558938637468726619007149738166488032752177544176128309746848205372290940316215860389127498097375965028371485830817083747917822837036199613695524398866193138724871045204611103854125482744372721124026909339246595662577117315063329969726712977465078082800008268356034535495693759440521810382779866862823177785687147891756146648588023162462871838808490341425181051353189430638704425388942167871409396133617408834241353735447089534379908044238213651139791046602107080286969268989186210479491251168950946462742007459860009318475158515899497600140779042796450898185888236634999938360771172392804368939092485311829489966502456481407927050267204975693548359868420566585591453981605177364057147786302623331376191905091383950730792547310526902679754092965450783565134261113193885996983372071854481889512327407473130320824361267010964050775834803590515291501433559250449896361558523667409979284794759865632555639445457422712773548080383091097989092029621837621167687976576444954335725252903297089474176115776131951373929065520789873151711900393266826167248590002198955372464232930654157818028440165876085829708894691414854621398134910679459907921283176568985103725825746854806649362405699990701521537406620731165174346699754195446703441387409638488970306924556985681722185826181971253556233808466883479811377524066438034820482360188862201740297227125550399347875021582532053295735646560895483415722674553543830675847838882066662562212677258491036083078274710938305076619612851483497880552407827687590811176552331337609764675625752293838014055876966012515540646260993670043321758841961582462023201257089869983734968105707268826592102758504516079572399665063487951116979217022538354892878541383661082244399720869114582892390920451869884208135547729248647633525277741045856222005058337392117442953583881006505900469875050858088394524499762578505881120970052232845412403301905592746282638211212577383589414141761543893652907721122726159089391404340054730832325985776514678250656905595381385273402146710162010777593222320479007817490712292441608433221596481589244484652672562617751572412864852912901891466587587610609590215249655226746921211782247466618225283372402856855709748711743220222064704536543328039051058501843686835153963431483396574377612507595955212137343454903699971180267613557461627397866600043612240989374308627920905957715322904296836726298950205234267605906258854654024332061975447246211178400612904648152865649263458118609130599270088187553128539791214647379714698175982661321077790798850364384726243589380789984077719777068324642829655924418529209028814851812437878800869843838316744662391959360706428123608054262443398345005218906202409491364153616260983968419011115760946009769406564347046258685599805669384378669240725692218522566080514862511242603580662057011696116645571839522325293133969487613280074510292530043693659929118743100089962489794265161950489544780258790417238542050747769920365579321972983856903239465138404959421254439629012478706990382033225966862142314314558924339043503946171221377618278330039044007262506935239422392785199833200538812997092032070488689558877964909372876989151224647211973858901729585052774280706766323192370185118222356524388923921683083476126289023834447155609573484448792042706440127830511840567657917100250211295452652709845309489921159556512873036946463602011371222088142857661390254280147702211420511879085495942592773482719549569373055468033306929382262836083450663620855892208631469331358291087240536802765259306043240656048649643074764238241513583035558378296681489310916130807895126129745854775579710549108374828204508142235645664162900373756689778955106346167521085016397617831368892099235284438418559598733433807978947143061615006732021735444010326609103258471957091175860648295359761674380849461901308178197738419690168483034576014571592778335022271967365822318970778087021208900926524402437968652643811453728823670845631831148091963048859588572775021472062880352039972521207885851878311687048069438132705683860816345794647266693730300605802494774105499564116579519036831949960564995967335181970841676235098393561555905346449423812622632110194623222353908097331498753670772098461718521463580244536922967522249568750639760046298936560529009781898499423832506900970229391557781689311945764137435327750492785061799119544733605115081374467884573877384285022168764930537830638128453384062115537188957854553144866682424526514865043307228773242089337503557105280441076436808385754620917986264489482041403811073616316381874543438938414929135814722326480285853761413599112845976750287134051536548420869457050171233035922134712368575047823095041245423755453220028172692434289616966308985080688904320111236920945474131522840110898872303735646619194251462055751908383767787626280403793312092007004766635640876076198947209783668999926374427300706975860591967049406895957912223262868215729047497325825756486144778354267247838114759366598687029195135793779328839527690925021549568371156938777042707979272503530991081668164206359865685176658287272324109423459063376926845830812354971274680114842022194127119598949816958500250071514244530047676711651849955338857528834154911496232160879906632000081166539718623247285511583955630109580212681758097920535520762222991191516093348512067651511477512847198580090213249535442129525470899308425910144047571765656852231385659884350510963625674715426463390336504603950735252537858348622441017278789211134759674674570047960078686756813288573211878421218571820793235032185850613876748420686515752687852316216322184726384250381588791642139435947407838871349443194448939879993198330493915258920745239028048122869967478354691814779912194757496460776803494875559251206796150999889607618976904527966215998093025302312140085100262870158344295565093356272792900619452807689868787513380482454286854374036599117756238971328262833141414542669906142135967776215143105360630991068767336585253131483518017920743072681659277401590315857225938020600813635384748339824169628825473722634442522761338687736271706551278803121982260394396512367221140612325486407466894790330198009093350279311649476923451991711029201424850047790691294991538556714815681492878765785456179646488017004925010231171873691522754431734900212349974924638676215210958660366233376605259449615160859458583763276409896589299899613161404167854172113365181576235117279743170861330440580130923986507131072366264905820620224738028537749490645604008803958890440217174066282760090213380005572052084839858248896246165508315496449466246732841410685723977052518470248371796744079593385320874087081321738046325857591344311707630377411905985064927009965786193732430030110629800821383979276206576057259291494869137649250332554679181188711027211079513239867035406363557537891455026677454805656744150638658330284017572458385566374069579878225880524197037373320910961772191483771044776852032551070057092311897022858691734866878417559524438793722490206450380343171767996367549343020583487488018401809083044272470235010478924866412543734886162481805659990171758369073369012408112530792905934525937372081034747394908188539428158524960158710712709960110321390612705844060400281010875579706928303237690041101719012769632550243921165399197903887221471212073618229697560674946560830582822949004431514822096876708876061143371847367602901618938808782674557051600006411402029887677344331993496785432668745545427773460679282597711470123454448626697817988287275446863882721810554058799939350211792923607516490276881881066365862138451943072732089502546553489993329872240328391035295867206311182139151329449071531614163752784424668904159530670568532193845476949694786279204680595138974307938329961848252484493358704876758555695463842578964823229416251149090160416243406443966365959383182127948042776715065560592138294970688118800081975513002204463023694792639912393696805896184366209457313351949938769308826550587730013100397815484919106652643202096278668252408355955501221807134099001948881766285438712797509800708392336848699948664570759833971789079534881144268400174363859931952242520089433719759311325001372494884969342626555249164488230342504328433832876345644785638732084058822496835911184698948011320310759737080078959854147770380790534595201323262548978094518663254770815723744624029634538182607467887872174921739149821415340184054180353233554140651615390383445183675142353439009570305387641707835383809393396764881681371961796796712012406205499163280415260917081446060734984066846367445378979134576669039997509249937762389128429327411232199747391666316648795321318107129748182351628880095631334457924617504904574850351416042724475653268426099312389577583941341280119227790835000049495807144238519142818476851680982019977629703917109920089674725435195766246457839733918558872860181816768622021141359973277434326193236559558595834938504535267024718402584897967893638844239848812357345078162495123539971870505219034404809102043223938405614681868961822380385433559600305611976921822509792565088632446654837523726059333490512288974059543189678377186612996251900625442561962114694288240173113909283130023833743930129456045273523970795705816530160553122592470429390881227796707871620613468978686650238841399236481950368590013344087586138589616109392579947936045495215827396151393044262415040218179059164443773262612862197610376474214861939838900312676066514655772157371604158661078417435194769675039795611139040636307725181685547645914539353566805587580892431039900203762000084551075921943803417316932232556587776002491880505248148288213902497080900076971764675857582025501545995358500068441113887021364701246415209396331252405886586117924583609358623445697323304589378619261495874496483134137282302041993013123526849551499926573235814122734524448912521369726226577577614005971370902403064895696712880711588706915945389971183275912691596345382347725611837550987466840830525212563642207760919009180610385416600877478384873025372385586185101079510309758975694172014485748500319294860698347497897420421307949209195755232274873906892148760928817193023190970748288329736601627997660211826308704582755193295335522790132205336881050293955303669926336987047925269647677961640529033842753365487826957525390273719363375886644056397769690342818894092371808619574827325275608246115301035872232265510130672863061763119237073757712277290807838569539590092564499204634805854998329260413432531895365270501290330861107012932647798379060720313366791313716881450095462247791521337677776523463082350782144158450533327741715985153259415942192291826246971175581582068457465247367094293770628448845191241980405696574237367448786516874552088956857657006843418860770585960908871481152327402546357872092965319253601219780811718040028801572757630976732734649331758180421564486924409770050117337432209465456326215134971358866276793633316084404254071073788960476081614109954223440420474835138413570013563101116699093852767012205088585808886528481284944739499320170613319297071274624562507516911355559022368123089591037281598130721792543302139870169369031824103386778207644848279178324516198443073690225787856717622453094340711762628378624350649635047634252901616088915563069213446645084981989596487163128217306402253472490955806167495101062043781185388712224807953051950675122274472386258801528568716495633318959441448135361473298526595603459038863716783264078441976244953956890814873644508923140072231531920895620332604970573195124615768797232189811522545353581560111414972874665651103159379573810225166653244929323615785707710546347624133421673554067812418957274113172453062961438919002801620285279896723086305070447983357915963383058133507677923223318703015148675002829591247995770584439043097137049984265658897740719688148888545728826026341268830019550255056872813880929140939279001876641803150233241881434479240655680400572034720350218518857523446631306507076327834215920562226001712875483678572172798068604120168078659549362022995462512462670054528412847385545925339809512546869590987822238149040384748413615998133705668073737022869187899583037392928867760480645689300066777208488559341316491565253739803050657945252190098789053291795170898599615463641539532049957809948267127330283023003987386072262039115325945625679200335521990845536783072163122885144501587448421652775659351903142629821692604818998489754473398490391054509148317950119331921530159968008720399723156948573399639770021707884941369234453220963416584808834314344971686513168561761725057467178273818966775254289470158157779959688022642653866982832975809927952594406925826522850981147382700187649872613703094332563889992173632771384795451637938396288040301841763084377741538025319495868784757897567148897494390849657714048819716788611192319136647763869633189608832295480745245103653720610638250679943241588330296470274778030926877158808469882612792543717884954767761065344169554764445321618096395634555523085235760404004860273462930599902259204651474163261851323591126637356993208410447909360740154932644336846166099552680351572802575603792376849840453038903921752242715873373667773645413809681707034350720324103001347739597100362152974079431562390999679560602339189257463329527724831150502512117447389505259289770940502056823849327573382689814127167420654445607251892995968740984176942557200581260560192672256451936811463945609381874786948515299166643883258764543254620942827575216496386808708633299948106821494758587382990999768649551864383317833227926041503726518535956908631993247131178271833121122978153066231594876556727158736676817632897272166471235609954281401271653769369057785946625061792846765720351955886282338610573208009476429644807026675657983288035261492642353820008198357465019570608921182796128113269624147550691850073644282635060955774877399538314694023798113163082483060378213220763278262270759177961819806181871892095834825543057048783480310931545665657326903717343519330775641266963735292713677890787426963975014233817746018360221664392780892531375944964640811770155885471134214962027124754464139512674105360876684241889473968189913871417150499608454334678808117240119500915889960812834521446460682480157628022253826289738502488850958651698720896113108542637112872770475443602957944353442134635419696750689185255403873722755823181725854777235104869930429450198524918607290083200552249245991643548549501821863287578801860812233780265243695266619778493387519066555699574329708889467038398025478629104147089367247598159165960093272690749668291989905018875793678778513446090322798738844955298089677035351393381909062950800350639755990708017961076041572021575477664614763006407880572183533578909238550259990959956896186562575670849364904629064304005927009521444473958733076529742309690062836297645593641967133990129880331427293284272290715256494658597836936866179578970300773383988775642924198760109940436207820107337909857749270406001284609770562279646666178555343004767489630678421696601938357123902221331744762647045137206522360475607690497960173307402184544597596313544116602119272563618190963814192271569398985952085237818451827623978958471398252266942423437791116718542618384681847809949454812104896679175643562240743019803531205970871421466215201394981683420518690480946983584556050792068730564767071501595445246008345692483469587410140383294088313207007019033979045002292737284665744829677563327430219299608543843210058857144183680403470078037065293093858174001934993138251989767574845992718135455232305765093823232795734465562491229008322331701374683437710561509557392269627559680764742837801218257066096628900239517781810222459299845707828681107756966123295526749526799980699140805992723573260296728906145142881356833579287151586480838730842592811309025845504510932649218977226963820861511623157536756383499705769236052537741104753296029517748616884325760285079082635198053101029512752766305752029902892007251157985382686123588899726350911491902562389009139012486951298247628223530874447261009427704639329856628410841342846008576918755583551143627716557200776299758072499807912634007979804908959051013789562529769004914735527382482030176241267314762830956633118998145875878498551628708063139091586080233873618702220123917126885328207621576287478537262313006025677322225478044356092821654496766862063967509694711259839879825067905848863286557745959142840281937997139572907508387315618848921785398064641165471760818072485657179713966118387582668471912226542763341830962461226641906789716247999362284646006783348314589395333010331290449533275503875339374333327045335661524103439857998074646249754088122682790000274703133014647441094410105812446506799210692193592614098601278080702429032999016219859704221738367251440478737739369623092068780775364580000939483970577047091315230285162290559494061179519348304337679380309149388840567785552412339968790013074274950170814396829309369464982415608760460278192726609884796981061955386978777404554258455916811554264166213313846212463771105241177265738434211269492412406067943700962460759289255728265394998842259161179673727239722884743108275939330153083504214608067904943195834989771778982619998141716543179215679376280395941608927805492188065223420899034167007815494871044549857640046713389964174399623223845412635170498768395252013254212973622558906868078966621679856706668494646664309593297734591149904435553705411220562087753031204376259331801737100471485631392667281454481259886402560066636208913055317052868896017579524308120610826294043626665970886526299177944511035209011937315634551273803006465683649257782304585681663848074929154461715958123884934440003688542962098662901849495091211002955005778420984726709343701564262193565982155859344613242799320175080880726927539086630999926658087956852766031272795053375493924650184000971217422385641398749159712299223842369324821637667715983632621878299131193465776207959605279435922475948144991250612289792385226775737065813424537436640440683986848430858826663284751687300796144654845463242071461708700372579021332255438885946905632007499322047716313397556883855285530233372957127286671403470245199880674559756617906057026137032269412696202364980575558905968564386415970677281529824270160452824966568075659635101220406706762595544260299717271194748194060548912999523758164380371710131235852937403236177789193676025110210787341344681182013313926898707574706028318888926780432443640192021177613759285900814354183582412370002822764331012685165603107754939773046818589782910526388743931095740049833439939270331463310712777021046562707193621049950985906972215378994946108881458800879013839508951003593254772831941217172707606590250241652348198988436726315995622534252868783849549289262260565400473155264581455083655594354407666340879937135198875429725193469449397511156880072614379357958814702997031390918125927215423435430428550669683505907907975290027138899652724833491677649361009232417650824098073406695429373779873059986898704695580499304077781797061796889617432299683838728261643675905137407093815315164958330626264753498976525132668633257699406587277530071919230314352928902184962923083756258818268675495755491833398265224131325338238812733516312740634542822160279128859595024184758700479046510840666570265673638727752866341759540927223417693271994950153475470127378569331742628435607562366833421290475398820094353377555569964846648549139178474073045667881732966531161540807671827827614478514234726132808932448476875213999734819476103568652198345446051349667583344961222919232702916508469485712414186706279529605101322982874928774048616873987055399257017837062151602714941053789442707494737076855235506581233661764562351912118051746923300014743466532016396600640709071392189307894646966765209042098731328477988067363696427735773085639316157622101479526796589796389510541622572929059065390131782530698554469374763104463345087393927507699166723802022911759894211078070397950831986266904393175026099980986784503675779107074228715719103729273096638567148156888071732830561571962272790823297137767845919358448713448834904951654876635193700522447029039610003606359645884437977932582236304727278552785581584497565990936882032393103637555144198652111509604487439725857134676204838386767091707764618322402465866083636793601206582114165714838814787503184230123411150029654227276538488962594731088077014209134506742702636754003664863963214997578009959560626247312478326343175397747589989506000927764273893867744681997936184376079998778129698455006252713651340525746426481260896128599727276156524300080616376610001925590403316133021934200244021561317989676683703859862357200124948044721606939347679383188873549669939204244056993636300040494401427946876465203708800116977319712350142423868679612065423594014502951102528116802033851227507581132951100137756373642567179719367936688433700832650412249007663671522326240584690507917755170748104537687607692636474689833888577254146745226674375101086478169078451146951674547631104358032060519823157291821162795557364285125639822669366141397689480922208523764131482088317548262669515596460877509255183062524528851531940251698157610022686488987811808498794880700747542360481226156253667047882613711778339036506616194698768699287577122386264474835865675975574388518138902644330355452283383366183758051646870780578947441818011999410964256084375861559510107627974670873232464581675652816964882814679088185650093322764574579391329476428508723075741215960036500397975656887245962902216143425727861355922586452163862608329310280207895632875111973684006959424069419214940432986895917155585030202742542104279034303605641873078947134784481625386548922923239291568747128784142533662349717050489836733346192154927254701732684980214419159587355078635717054851977916729654912893474721754559821859287873286712177533843581137003166984678916731524094506389929365822978798801285257238914141172857595956788338645440528659691718739747431429257950107044968027690625536783300445901090342145103828372411156233287868263363548008100879549080886820931838918092918866054362403575330972940337881424263287800773352964196698818972262698453285490135087987600229256658211748483089600866775518072450955159835965582556198165811084098016459096312458347420639817358689487420818189744690163346948275169026652211014657484806916458712431027409290971497989991897859540376525102275874199192416400393956382691491147828321285690443659486629079747055912305480452558541452324812980842029420962446779328695441293966226778371491759784813005808289869226369909270606340667293275215212108452758567126051954513159844603574024293672838016273487525368708870647217681396891030084519617521776687569935952519134328481983509551381309734574937029022620246871604587491314269866336747060032494314875811696065349965156044797327315032043959075700318690146702786778328417369807371967893876631380212528299518384383048289092151780047129184160336701856479688316528690623589083273942981584633773855916384996175930290252308129066532686037146805733234418686329221253424011872226437603580588559925706459970782448706261574684235020884862072901016218796380320379041332815797554805028842715215726171838762595790912455631734953710466302218301088542522372398533636510770930694798254820491165755194044242601244188873514474492720765730470162287038107858154196737704138578430570545368615426451850892312495029966190001856237325156062225017901114152237694383455910075706220481893278925440985516357383260838765256807407540262657776911072963619207609475527143885259712536791030279504304864539526071399898954562274827386774824766628130786947865697809831792349869830113402752180987598253463258511153404594669875815810173595342368068118555022769869756862628593326395208502527462634929901227996602027409206559148871575747281723940320746827698843080559606821450032646119020321612261914418996576840815964283735351605171293582285316083445322070700962089144685383262375498613230079757315148018664988595771522228206856400377854477761129979751259329307311106873276625219445072921538244949502966166822767995133657743993064762425999395228352461213127386165147946940063748462200345530612602227557709085140323918741042930066580576944662295979704548893235309943877613703203987669425925945883625507337982648595512083992786802181730288866343711479397019960257109872011082816387173637286998333966184289403578940833977308226372972570565281091112535133083633386908805101114309153036295580436857475027499076580147964169144764762052696351146816621195231165558252390651051148040950695088320242112946019779034188193148591996774510410811475023572991575767524108585463329914112353722389185874668325475460665725667102609856437199220889926125639267590933170611383511938500367411189193911948005636708021640577395991113762364293327475307197306802348089566705163133422005794332554844395650941229802600749815061808999285606884986226331517044893980810106237309964992732666568254076420892743670475526500846839895517064807826016067699374403639098771639425368223739262387474455803184507591236401276888079743146368421867242810020877165610364609904414465107251742334045108278278767375701679504103774296161380115588203178704085685915034100934680029502637833701127935765461983246896462841266216164900852468904435026357697401557519993125653775075006186066658370942186325509553011215460085013722533381039247672428835776259378513396145887470013373965812908479906483331590942689707761023572920677362819572023947843831749896851910605356443978695092416577463312741745893745413585509639361643390675996558984290673466012143548584196672632465176999872169438697421906963579435740205154190710937258501783243454680043221980692566882436025194276007393186585828394455145933400496785811367585766220478451872950241955129349368927699545989039304189830465470095454236890948439069211298426071901672021764630813222694844341705417829507110753257251118646684716725637806068202816094447762632707277493371770616148512418713353210805646957701179708531679691628392536934082815192768840000612741888594515684899929603129340183558217789641899229525692895419911286935357292945872673629804967392180747820077150442958477436491458558821468563953846522246373961128189366857765894500030959837693336863039284680870796120199077060996088636725927248319146399055845798652806768347919387948130327384230738860461006388852775445432341605358362845025915504179953929075537648091071407263189962491921916408256017998375379685722404658782363405814683573100601828025780621424516341129769637916562040174053083155899570201841306267463836307948371815537171098824463294265248712227764635715368524541659161790205525672560680963876967382483177791361560045151032620716664700117286006420995127808208268817338506838262682307650304458061367350244850016823668729122206405299373651176131697683640067591245984743156653550682467481570091051007062728292685760178138720950848869664906074603450911343190052386085967711390525002056636571080174021527756803088434050560647109949422833056845717239971315013305015076103567882147643787649816187085172281330899707433084886296764766027690575472443211830607966607613814034557291253025087799575438366152843282945114542742827449446408727892163501751446381240446775280832353492716028335832715504586685578805596590996319808486727309783129421299599825564078440688826908165953919561486337056753377848970014093352879294556067491543025803743456078171570184457803301033806326739317292423848526914765242412065466426477581924039823184533700168138083609187574951812962737810524014749514464392574619118760597195370257134590149516587610193442590591415220040036399626321984674489896749558947656573965010199784178910395713017887125642004647448531716375438873104535594651727738887875555154922958504214666907990360998370002840445302384626063954787422789722086436535036019278471030457695573029094525450612484148250765022536339104444405011916517187707201731518562703187925846485337912825945172430056329684309979622540930356778044336309603926643838191940790590777969802549395500663672438200119593915865056676870801579581555368981735720970074071255303236460686157492923028496389943754547138221323318735161539053114082219859548779418304156759150892430207554447844005581144268895294150289182546571868796222985209846099476583545056138629603398964532250751828304508783575133359833131519505175067121070982122508206359308841783906939331228450827180473976460064954080847094728232861337947754984313179535624895121156664214744421024403261713642171154461798952626080373402243948539326400263382522949976828453459535599144291793531059672913207758502450236688907731272115091416960935334344685110541259732995758218014985697402243037605786219186975599764440000436256291210793194682379156897793914242414146892571382083594886922249851384272705765385991938231998080419168330756968684959399788265341027666172969563855960283244682119137745076025071971078440216712870690140194743449143878115322849775499597236081600609407544739329227954297817936575969832342276910646012466548524894186330798475317989627503111544568710271573997942762952165946808843121734471662003002003596056206562037203310046779020220859536918941585583103873585606968824234756283962161120315357517465103758186725407141630383913873491078759826286357091204565459127842021342639937907535150133772016016273317507017537695070802362295071979679260878772896246105959107059575683041872787810651581411507173884033590427985860553098107430842583705886646488291458189804555104320954043297894845477618589566156663337483252371450056195377249101663235474642249059941884403575743716544016756547415633280844956086046074918898378981956609555780729926248740789403352919244553520460173409386031525820973194302725160214811890698522169071724935846837204424322753015077993102647025479314369535525133669186274758918958975628032917673940488498911754816063037228654100358570814559243689635334240066529239047324607624243417833731551962590142757933214043486388702334658479395275748298948836549208339394092293907291691097227719566734555210049265066332109225462949665285370501278828750597400328728844217470842229852479920956468185011832909430607745431887276271613231478338301990476871754631554457126848171859981367975693147197904360103329529344861731465074830249977898855154190529297350487384783464253780422854672486216336658741316434557542848376953432578237699905468026989037874450274060411990221436510763962774692546903641087525438947555563510638345143520091141642039502428708343726857088974533994890553900240051624437495078868881588497571565783997412884508926990110918247381017502069028351975145783521472804701687354275058216030195623910775519320731331908657899841775023657909711046164464810568232522091548801656078476192803960635154143817612764514304861264735038502763790286435111498888653639049344769075775562073129517920208934496263696321832714413836943422191199931873257729121585395832488052359790793994833876688437954997797199061273927081446826763274387090572282547471925059492143656686108597141597482617955285201327573494385529014732135686617905492645358050207102176568881812177406650645895022947167021715019068014307865806885212393878481876459775636655770688180006876208881363651203852077678457378473121590451775847525050063469227461841590091570178477980181308430476761734318223237118376383871332544325337512186663907442751641391197679102087485636086607822341365010506088515757576509858646834710735060546002853964731820928726315302466016548614554852611097767722276933375572662369919881689664117900690947130846093381896269081203642193658306026404594429037885473870742964757328148575330105882044237226012265867497266261354194301043881760438009899394774452290434934918779868859082778085770098124047870389777175754772077650874673634284229167677776568826014564001527304938251636464734986055276502411743448317143523661171260976385323878972708104678852836302486150880397602961538569421574556242006424003427943200193611236499961819739290573216600125232413422134765456437441358479319872623427559756187604694748436533554301800763634522839485300361413226036007123746101895695865217286225352445038269627421421227379613131406670015324340678966635869314894213675709068891610807925050931738263740611398342512625430452831696155895413957135098205084769630762936871121848996614152574899494898670840584100262484396136115854379825829918029034771319916766752327381822610895156285445587144209864896442430215880697440299710265462276863824378700721667810263223166159862708644080408019544752675831758528684244379464640677831941078640762897673342734767014227160164351502869029370052781551961917998724155468460521664890469361761323368055005448600952164125364999042846072146201205732794736707038819773216547810611273664198842742323019331190509214514116705504142377423128564849118529180373214128913807524489103060533543708499916739102714301396056919637826131383961138497533062831365734739053571611123137344921857426098015062751065902528020964021664545098822636462683732870667572468022211474926948689058549817621619579537761928831276405010574089530425178398021198566129043397159850564045594194795545059048201755815326275900598311890972031144483037579042591817376235142690129882588339500392251195765149263179026215586864987213334465491029308396371190026446083186008233191321925474965046828182534753072538795696012289630053623664009238315966078927305119737663016675481321341996648719527245012317138317095131938085570359289560257891551427770210983927574005906454420234064665925364352337184834182452549855137395659083511203038131050053654613373735395450103464498998058307272199979071332166429267938985827857238411127603122100497225600485218249219933888897701200413773905976990462008864890061236171858551876500654000483777234323232434013767576395987005916469624142171739592859295202127128587877196214434785814253639520114206359109597077485133804519495861105845067482422671159928758001629464637952770790705836561063243001724484582196588400836118348498591886199756545691074831591470279057861886934782968359851088087875987888168642927054685113001759928062952376292192220072561933162477953236796161600815568393392251163342352173903253047087149904146611699788821409813507028826135780449981164372641227932901290133555911976440130502358515827344031316153932806144924432954392582040515546844581508955393931408148699711470856031387139034772857217057717884504070010336124964090104242845105883834499602174956815770314060111316503433881180547380443062351391132861298893512584705516614101399117783455265041541744775519108400759438656549826772966956452538462272942942908628663243724903750732567233943438206880170286748057494269067243731316034472258645843819308488648317815862308998758659997612909110455501489304883503683879624454695357501569805393352056881525893803482558949494069073252046707726990665365109363338503270071617007349649016133970642712214143509154205503568133587667503338638395523788240198316969925240566111689584436188549190429335896954800822274960518323691040333540465944076453578426225883409318563890606532641697727947806363174524639794983390647531939497037909251626137353325186384948082556145973089454481502278582208148640830585935915023936811607732515842163319697551600937266696242380446085945811809579573420633475579438785071127497028541314456521748559400085217776307762408112474510869575420127084675165335593516878636845680228043291688173425638493354222200540009957541445379320067756671933767095451590803659727234992029106702012133218568928653740481108045381632426398632156778773058686508665246165329195937775046951771418602284669787763577885265161501360465069334693362155427263699196792601066354657994825266429231235909582870117816248210216407831347657543380640603971673271181650938025747776713461372314584990526154694038458277985166124391302614827044927504135159145442777805464082936369552598118833689022961421237546276396227258379272629701425889305838076321825056997554784027910616662788470766066841154316291972085110733587431195468803642859214069404130149062143670353487002170781717162061019277081560241239282074115392029156275047203695945476734568743870479631742794954915838166803765521100606721410944282245986447499566229527941373813246240687389299331523543530376734730836084457818367599534231560728879291446733771492544043804903803662449968313912088944532110780335081757329556419872015172762763575852629716268689600209480966982630300680713692312274698799855853002023138400203276494930663927588375512063053770686909481359750093758630021803664135918693007929590676498519193263537473938356248649852085057848513955599790540307944382735683871043738558341836587353303386275482343171928425250174456105454162952895289531835701740598431951685739630408626050607844483865690472863760459362645036224654274964439539123610758998180691508784648380463243699841659608360648548724674062597967727723568784174336251032421737256020971268520266518200303078346725948553078630717330984858214614468012583107621680851056762645173391070177139872950669074574449391607979405492963198546316113533236625077514391868421372092130404509195909329739735922949317546126144968737175583419650938638357317953724054680369090683024803498309849447449983788479437400416891495045791099311970585250732380762598447529636491478731389029897538533396119907031430356757831010263654977889415189734743575290818518918776845701797617556406747853610180046406813741052168843994046338079218167592081213624525056186530217574546977867919449246899968172065196298574126224242724799597396834057821589044027204650174621291607412892416734191588694265044280409419249897537311693460586708012454461507861159199899332973429576105613799058166050004267143300325998228032390968597726176766513990217594143893402195091070326052041630498115173345435554774895182008729472420083503001353871443186503843696483578013407041956633554517484802295998906681874559021473275529464479172240053059224595165724765807637842251424003802803341713936976104115030176475720799709751602351334437631910704337905507401304888736116146287019794399435425741503493755481751661590479534455830463824456933224026501210331237436047083063573175452707427530858957987436217271364356677876508237225799071537580619761484103415632049170495989369896620705332138630621272201762730849550008445125063914887791430199777061975438203539986189564369526420094336788868911314389084713677196561050632288291972275074929564182449491440766490327829745620365308418248808252932067405045292790795863332597944676340861811497974003217949527653982976652591194246685870734720873305875996189659194896041240025924925241013320219532233546939736234259008561480645436042170423745605401234997452928055083006135130270196259365512456468116078191455522263510627915284001392742403720858976506290882458139726187297569932257209947676238853840701346525026438041838632775426410726172103593124531272890113956487982767315866221022284079075821285952770648461151820406026430616983556745910391195322557972588897879226580442823845999705834413299558333809894612349161947441912556894628006454416035746703283148242002712220425569677804334439328275757899044706218540601202993749324991321635864071256555906645271045997129171515346343191256552754006351472623318579151249191536456244707708731689219599875736751065291083860364120002654923279570926895653225034326152533808772315932863813223089160038530636275430583584786847834116763377959731684304351815882477290694061408187447344359527902967381257309374730136704654231585352138544103943910834788951815055481656539157937710722592530423831648096916039597531139683433214783013238300403348279983033394449669562712871845295413683884502021689486128306557292367782575832892134412635561247059359802919639318369126743950342177125167502698430436662037629254696703239012812919852347948713532621765570382858537632001853312758141832309103622819998291175500159546262813952262788012913746243016199869896103641267447108559226564024113842544901749172460423304793691478059789482028526097483340816159376317307492910254719031058222284702871836220539626510586641750621681519310264600507416086580641799553626224315235306204460074727675852453730107992040585992571168304067684828701400397854478501143989561076750562855459619091961349912055805525615301503451255608524537571274851096679620829630646995030902217686339506244519920997285426865482544486969796296798476440580674485424570900503696039524069366524421826543085128547359051284623263774073118695258650365647169704720063877017274073343981726784149181514050528778157745848356798822481396168306766680991480958617357543379786946333961338398480686082859636957278239860133288931179643785678187460077037556981047354273532892526423700011562231949346745261302347383600444891231131954821140613088967805871620518711618268303763607008856608626140492920223883465834719750759872413651281395815146016853153844860936128350404897325904107564293104653421288446680444642862056358423754436544197172648730274076849595693381326236555171781053255970993588351340429484176458181120426479824206900378189321210122780460040775069080509836327678462931238316310005723146770202995907735562059039630138713139218365640734615362331736116074618997343599910853905291948652893422274909869040118530212576084095004772430771789590035110478131744019587667013517229450091981111965865538254971740596064691582974529603033865684055914561124664672834285578473548876291834338121080612914603769238646212185217528692986502595248722398728376567817564096711416201611315830755792269674447821395193489246443830941956914449216256636370272456598141312853950507372209865557734826105436774484488938923767548267111745524534839868508792053848561174388199693199761171068369872146913830130607783239460748888567424708280796216887367639436963921637673483975335940661061725597900903355274632474552261534165953891233382836695052367960685451548260575236316971778468648854645504652653219419702878819123133673721324145660019787024522290638043371432885706418030879918795623162508204494607468239503387842293091595090380666865522038002253655653484491015811552242833171477222965888535452356273472107296580358244724302129559127285978543098573225859874409314482416927486698959587116793689280663440019824331636340671303722334727321195433124871535697822953194575121130981823109629331003666715782153984854710069142487579915822617787166018176080144141685633295932965577680330683625837094644343663737984434163374382156634061655954247406017495121602743016951562196151455010012071058084391510893418351162982971206576739177009451343494796266786870169194239586917661108027358074408077177948259524362603609326222803567139201231261692279773465776756703642551049286009152008477360695894494041698513315305984104451625436862676180152163572069553304550692122688847707480896063777197355335291734006551890974035714387549592748298430420011086382839539391390866981296651710502625585395436342979911675150677518726126270260650086961074661495126106777319381590169010079225689578796202185385863111822160584647879254004671695136917035506851083073258111100227295050772043859325031250450346341643526336367887116110606303290485272616882218692063478233453666304658805462552174841656813317165833430872398654720782483956089635241044912278177616839316137106859093852130090545061991900630154136971791812036821243624777820842703430340953601375427972475144027771877549061426828104664534629705645114902461846685780052364640068706018394236243165434223310980710169065435360391461458159865944238767916648837733138356474699175399786022929822097017946876423358894311044541828400435046808347839341684004335803058773116500101408692830035270451472891271338861489553343299775329339439143015914179757702834612178176847065700033902052664393293559518671256379822208746046622017669850721057406102463803024215505891818322018656160237636581892619940356299747897930191539632965329168786562845713338090184297417928930344437703022112924094315265642653238327017171313341909833134514733716249837258251964399999248261782821860156066468396036859412121625435597792666994230811087793780557994253470763071100993000743835310283580376864179967104258926545531322561870289561769278274634762357622308801589677423439528761449696206196678065454367472934638068043110693419811198329863524619793505218727481339363944464813615781816507079201307635151232792167248464278759071243424700718040005933772118286051879973319277837411730995360910075779580952398382808095910048408135518435841636600180343836301666479112330967498970429463000953329948187132763314332987809460083919522017685101078033744821708833559983589598354701081973501972325111119525984327425582970153650341512049711006059797624395893240505989204350886600492409739331955383275167149871501702975936643919189126697578882056759368293705556759745252219426384914476809277003075975790626302338394869628704987730019489045588525219078141701120738544780261539483425176496776836289920330470759950271033536657894984629597429536715159631114351109974784672417867970742642745807375331506298862352929203049672396660124132972334395856655893787606783684972788331320760056908152713712458016323706029702840350772367887917096659334470675800207025710292777866926798621612163995460165709019826862071241514317402019579647715913806247823992913570171728607786226692438145017925476213286998452353479077818908605230832753920744152284259503585216976111786204976293863739858202446428282697131950718769614926741819630913254885871872787256311155616953674012081965437349313543561013828419368497530204134075683423907963599511588795462264707026599904502135136327240461460127807614747371903093773727550688719288619779672532579005357498181984420010141188652782028192187643924062280664075028719136810460874739121827100477203343047755903493199300484848194333002093527796709945858955724614351186419943230468998796216705205221201093757225463895586259734015714956794739810028445146411863624299805923172974529353906623861227866223595667374880810733481038992063574203854507589881380585062384252403868604219448144464568292039588102699884974206306117407815068752596684425005896465854238701620963795289581021417569643757239461099927076379308681844360733086120474011056053902220924987664028887290062954516804373026089511207477217824381037038007593368199125403753197118898679375788580423670711657089838067499093074620373984710808159288983016409313781444506051399997344448762734976342134838747802923668772786208414375990927746113480794687984625471389478330156851883957854121257789443268804302305141155603250318919457227093975072581822819749581347859230100922359187946114288140947520367621457978083630894787209954468155836060227634447636776868042359102829904234910618782745640428961369352339280925437857617311394287211484248097898800329446847703708802726038392370745426238729304104164920496348161866343858973031144291514791673877866999391838950138980586621194359293391384709328147233440422022835225179855646845719702121090331707977951391525772161219116866972822396635495741455368876907579214970168510994706541069243685932251632724030382023092131760590489295881823363571676415737027568288364943068748071871358702591874263823953303687492063592809342518643998221247634953822799574325235553088359143767683420423493008716781519485242625973001773178349733909474220398885319490633975427982691439111405046093863494476334946849436824912228688482196833413092906886597591794243267724042964708712926797045021389553533012169362497144352463229617725736693253634040841816313123364106897716926148397609601263239998939128175924908869245573490270060071224445267829164492809342177844078178022588801028962093003845892664775567863662578432530749854199676832774678202185229150465043434233076541686853923123382309677386487854596944364067789780607391605511783353490097357541357265931429379614925309792969536242599456235628304888314489344524476650103513597024591522329897310669293816504203632647277180267254266149181409971807967432505190793996527407457879424915463648759246893190698082015549886637169773578051719442973633631800494900084220197717262182206968766021350760992806259511020052147604623802160723144802194123380269011609061316798662707366413375445635623320219113060257511396524914567658366704755146369085357685198315766340179549583763661400952807068939016424196806760518549838721576434159558093536037472118849999272057990644980594092648138771134390979994247494894393581504801275923090519799542577147024234482889928978587376784055746376630996896045994773664200490366763393666354794030334157166367584714206624588256476298179445707427936189853362533905791184972293571752786916649600711478843725956693388065368322713057877635487061956072887393212705216956204039698557927695803226661390829025784019823817483246549388753211364963944778297608333658799279518237161579612887314460361798818559586514967542686069923750304677947988490955419006394146971085409368824326794774330378940637412634293941841335560526273722506059910866057508319084209545892217418805804339756122445768663545946942661159962376963904110396136477222017831255525538659629334584033051030584428718838957997305466406245323474865325201158140127297195716511459933851225967002471660570618041358502305273775304813276069031089663097166297219913192209946646982809550131168433835603595404878142951511098902335888404831253917240783785177350688054242048755817704987428661385251427973763278322853207997444745064883167088770590914797963328227399708798603344239698482384722809710482209682817072878312984556086568689051622568390341713728081899182647691281566736806453952788331887898080985252281982919426365824324212532244742160360423222509498381225404836904761151969108102253759237277200473278904070285453875013864487365182605008155802468060457143774075546175213826788289605383465729054851349034734831022579804186487049188280944864629707403296225286444824938680374911824486226576024866365700271099628232714974424711643379447600915650431682275884695472778682916117465545353644192955609267014641589646069840684095771441334052027138906699343821240095465879033166387297095840512133710296437908910204301580543609313699598098700266423708501324748366716683704088671278052062496192704199564455106305776914110577366506461164524681706564934571831719265721934726878104813714078423359823165042923029797836385351490754370878674996526630165429149636643881749228852707698822024740832584995863137747825389089155476531326695089438738494159812438011675610305940152865492491761265952129632538225254875158261467522044912064094752790256214630710655038069461199548454050708992672620517798868486921985573710098024798960095911103768869547148758297954802005061465766334114429918077225498219867184183042078185050996443281087444917247294256193785712117809593968023492281325593461926250774597196555685367849362071825203388238911836664277452851569200358691131093334295300203054530563985415069842712660379739574214945232963638263037844395347116713832812621591161228077786889369719783720250644570732173235942938905480307947324918994009117416047926663033596566428578723741384924980833571398194417203318939090600852640682367362374023023220218661540406318367695568500534871442456799551191753845464952211563886236283907229057611996012429415941860722965635848831439097328743013219755620746170249229808946339302111518811874049959209601897703693194764861398550624312852777235211668762503849349238122616526854994800383029084984557574237475476743561657262621076749130811543041177356951140474754522072832027481869482075153674351446611822050569469870006461914024407806958763581653791828935098593016024438820805306042333383473381423587154411872864956980504611482981006153540636512903842923727146703323667570039863096709241083435166890180241694623942071202549817280113958426857157557813106368829948896632818196910108371249652471500059130156305643058413208382763146383720704670946981832204465083665795523879517482024812378300820423820399948698158922551650538517629585725634442996281741566032531231583105399137180028522841163931119951341432415824411060519743631115501529606146026910187616253950963372950737895322841573977202661656219391269162452475724523982848870183058921587975047044087100726256202326243878380535771888016317021317824357837219497702675804337265648063280923589252523104549329630021916790658110069393165685971517561962749595366500249127202006476876042968044268888594483984621774722030303130847450019252445055118876304153921905455044356163029059439911429900244222964612857283396144917452777996894581294244558871062313871564268267883136304201976486672995587543168458981635741435960148223650928563780606769972384240356804835920008363594960407874387432269260760028952025479694411702591329601565322729864226163303403147915532590295588436487243477015086379147426927855316846479997251570992937972993014312398214130143834987450165282754854969592686000704570509670040198612491038609557419088810903961251269201904850100122779123251897228981514893091023020744816526773275785024892399973133316221837124986609935448998311636517492281358185568395985765926992771931157419831026742628593891908818859522031651643210147365450704228437515793511384078129282060966816789759718407158165496848501570132780166010340435213260891088215408389957941986940318442785857993037654839194295513909757556547718714120767318312031017835171633791227087531407933420406513870454194618406250825431928476103662578462794324355613333652959052377759125063554537265134317451793272870630444346393804766570900237334220635768493714650195581687965099035665754198317475310795166076712514906398435395122010447813696162632912259088905104101950220330839397994338297491667507627502702072847983534009942274160405858391854676720451356508610288447755270034447073610018699703877247744125375628141628981994189874207396351712671861091881924137359093619564405073271779240636714441043826915005835527461908335789502279083285810865641330620627012274544440257813144028117522654784884412671708341157624051678440383071472368890049059659061764595033409240213252620081606171472273948439980205297538957548876003088372732086212642390740435407826648513525959444494078464978555645336935632320277356477748238712337935865121373085650568074578624236336000689065120275658168545547873804065455595911896871594549256018815110164749608661017017445130743287938768500452863917639388740524065002660805987852409268672069893325569912598477317011101741180216781968921928181472773842666247469714739803632108640895677306006759254405689913352094888862900729584052900501673458182900789058821992434504071738469100758794838141699518570764812171192184691315595460775736059817091280774853669996829000775016308358239193923558746017056378328595362635907950670977812273963377195290166519850309909092998014348587955912530987798299514117770478283074674354592432194309838462517551857189403825239788863646717554779332226053468360378879564877768915738113928597294464070385599166977515573585155612863765788273445881476416436111548221294353932426108098437639356674232703856671810752139122258890348265408436141490226611070944222327833932416879905706540378317360748277849959597545141014584149970237787281605302397190486547294639885759086922856912406504616367186335961864615604284243769975584371888953675722685155499395515552242246485553174868930433794061795889231233599678135856700754822930088519187659977243111794300138400239584586728557836260324813367305581898068324561802680882212901279693307521570583290661025574152296347291432829232810782453586860537663561931483474659811503396099250954317397094992259335520176032755301907736504940986044441881212731357860129928804903170001921706370415562328746518356958461227378618241273324166706952298844592436175708856053309050240445017687548395895307676446591374345281421513701985421165467902508640338493755048005041816313382247481256426289728364758345661225480118667272496299938940499744602857857190981384518201591286324220811675507423035390962483558689312024365765594273720282647645874995913331045411471504236823795079058403970405642388694478944267447775302721591282932382517769724580686682854578295496441585643552369978394875938966370524824526957215093829067607792824233178077302882481202158985241890978579058201356060132454504846792755715324104825964085311447118845040066880088835456818842832228289541148651293039628459193903641888488406438627232183846874229865505687273434209091867430991218671345336353371923980628146779784301412498809014524796055215321558171815702925698803811245871277879246866303872118702269998086739306207127122553547262558990591894913215166934919339447253530398739456201141497339301686360882419633854655539266405595131763561834286032185744404315940535383644159663019057720002736250084236032239808388447197503575737194536775820768671558366414189350386570726862191396040269736064378032754594737334533721024035509844956236466580917812905332190830598213435784591818545498423737133998000808442203361988815414691851118821154685575436222234774794628423058879221173366272450949886925815049892237832436878255313254299369483797575059442759463552274905425813251174267346831999485324003246208808008805363793691830587660595716740462518404775672043954852553633710358460394539305433194895363281135192731598615508629363979382132890986851883912458926449881384145799316339719903931949056974555732161085435378595826510318647704946145354829738348377685486576173033063944445874076261035095325633576744533193029618380747658256229349541885107199563393652146322568416695039575471161318645554409708915887623678569591219817349521586098215062357711445167202247088511383876348810066216773949699747216828286684698200355983902262585886814421413255971939815245892531558499418632460489994868899149838991000084423666178935879861733489741089848176587471638323150060605770467037950873212897054673729695832386375054508109612804245659358400816103718357867252671443043856235627073893300960608066327180578283144848112488748626217812181295498764772037705108853655676610146875699193495243481097533787149173960037739406911832040565226724164011758109879172364525964479739502859803967727655472554555179315159944041947027872747998069026882842499219125558492882200334627416528699155529995794718757791927647321743023109032096738439353440438170196203946384419618088300104635777352428807627316574689322955026246907943097382527374923464867173137014698015655962822216736596258974908408753524990514442858686790113965675181572101413001788129190147783495324768662197355924398353100226066202391850851849674731849401414953100952567183043737439789079865048630722619471598612981191416819906197458298948493207727572364732511528201776986667924221616018876982114264427259271747206579511573960354742014927510572337693215247356462138692062420210952461093671623102170893871714347457600335090921354784109122917167969077451651130338076733116918698520057315255858982972197258397102930600855670982185514177899435915459025894598212542746534755996282592468150641654130347632318445242790758302941942892581032597223742906340896197029407313193064206003535513168261325144613547428531634211797614408611289211193226018224344263390824619038657652935179862132525062276233638626851753069279320293360824510315549864274010634734159613159177600673901971845083881719277389301455682169091380130353436136641989467223203251939260722893903579880250124587554538390154391477360574052474768194677946457145241162253890091911634581442001886175467310914183100813842675552408582521565045529909390514214827712659964967594959445003284545956223616605665329468366217236971236339494318533201531523755978672052307394714309806498440898955489798086418086887208533741619495518061530827240723860667508602088474120145431705958434024318955193767159476040562361604948019453863297420574019593086883185981166181162733856321103611894346938018784043171872928616753944480914653936686129963951921496347453481157310731755216106224553827480266480585336686804179002299140127517883015056098950271522449929445354889390438493857081349231438821011014368579120149969307771652360790618941891531249655480685854585174190898023658652446827112065851762423468405523374361989283875681932581911886276462756363411369343642971381090892462102413089650855324842015008474678017637608915014881370479152070505726413047327393724263019061186036960431223062668912427633355364903878148235058555496012137071120297975587559544413550133335839365997138004792274482548445855128427582535457621294155181679978116519453060774739649699688867773670522529926636331745448098188780811922144507439130727021875083037581474977005049195754978324654800697148497531623587168940490411057377514647578005962380002463708731938175913781503042701291111017597557672453639789666775516134709308243436024902375881483141204221400269641440395263597441262981608382111299572168323239089858464024102095279975751043008583518796996834929873477218141211546084981946839455213645368273236685480923043879646258453449833412601701298499596885326370635126015313945365963956518176465185623995374431551177262511806440790661638075894217689058350637258475878427771780293029682114753711150883785647548557408403261810425757465114330120331731292793087974063553360351875448385695499830844700531301562920575110966739579831359424143097589364852976802902007142521236059550020723347818708824225687460828823637946584287591141036849640909614977564029366191071747613451819329827910816013237510586168004002498902421977308810751418222510897606710250902129154217454967645345308480546838793736284785513195442198245389868537180034772168097216138227350362436218863164111344498297512943709222679443426654609350476671718865243263932655380401217549310409664299556574276317147750917947706823065852127608543402808726307729752850041748711521300254050250818975239885801912963545638269906420107651082162248468764853621128718520843402482406640707374430675737831023258691563215067586551633795901297807477484205616630779209409099162140316913300894776950677672276243276220304988135796388001353032834921213714745554902652546149280786932816579565952629860222012561942589006967590588891509358974613469712583254660397519203969470910640867502113020204599955001943133292753547484544445939249564651518653577070433117422406527667189459415366990622266138327933229746558530677271351908166998609678841736653477497228448742486332554945070875619767472241399926887802392894216947232194152098013427604528817829370290903375427797542118302077619916356524101725644420005672626640955032067321750647063002223305139892732184566907051634573382963805420526793318656787454726851482496113281470275485873024840656499981891696602217503040880710936792276538519610654918438478874954526419692471362905114295125034098331997210942009399263444915814532395394485283875735908727970844617076547474487682005580023181724470888818920249926313654684196656871922213749914170744510676573877376006643390542287910103793750416083701431497766011329830929805584700651113410380509681036097145583170616707048616344015820118934546528969713771597144386188693267727439996372399352910659361746758323006324970634481835205835207842255851207861790036648922509189345143742229978922357105589230659860490072300222790768224697810391741610207273642840850433947846255077670295610641359012463659061092021740236866201593916409325583111496095932932341679784552167551669741679508402451645690428191892215639515171056542819175149439418201553654898424236372604804527576170352683608700974694251074044044493235648725519718764963672547331137440162060618042964008926497438133094039481758127669591847034970477528888872120237940942587358337171239229805868639913906973848243531716026257377403126099862648129627186412351545793573694221847477296647720235635052745431938045879368601552379779970182430727339155198243651836132810220738185230438557847047008718826537564677172506184105911177838733071835113739285461595565278633877995853130844826650947047140746449548082844740653734897559900741220521026194636763488554915011809214518228309865617429665502713645155395307881969576985303425979953100239546268840741076416566339859763887945333457972014005213580916028900484704816745173515434516129069451555949179257255060205831352467291962100356739299407170992852211218096809595736660978560596964281475952059988452453079989434614337287812186622575543588823928547465356807542763260789249027960249255019342277584742495081275999477143307720619464822905197214963439207441452453074025316745508577638547695111149091665007715814602679222398004473534344832466210003616320691213829570126699961830565665553846458346052131960954821443875449276452763166029547142945308082940680628094504299308536000064309745352655483156649211626633420314664910767134650930658814483995087663955429279729152914796444275693908989354675695065051049514833034006543942356216607197395871344540836911663557569335121530991043111047520083542714779911579580675273399311643271200883275874408591979908730946897556461582418683100924833758934344018287794239245571007004199446939570541443739575402413055641933862231581691993077181074887432961450402214065635941518808196398673588331523786952108890454320706166344035355770789558930034746763899550608386195620123009529796555152097326321797688085107601801184986224350007040572923569966014300188571388329741392436054681520037071003830575835136822241232926760867690880167888584770803001949967666627081273683245594391447410441533512257312551752185059588119758436528210675165630831362193256462447924294456770263864347864033810326423007542382266841678925383237717823437572909085809893588902611938988273928971434044432800254008396789017662470616017554967340386522606423449569657295934763323083015361078229306942411661122531220859577841114046123792918322812628770716489840872219169559771696381044754354443200650372987784791636404337673510149906869778803597897189900927921500298084864890785684259858785317814728059335063415340637763036529939583382791708432293254368900661922435806908073382188609093301235187291688495667579520663335530007229272476097968229533140197862414531746534600985175976723851292593335541111778053319147519847447563905569509908247182267313367879404957103752090497904660599522242308258071544192556656582218259259595524374249005579509049883865215613621939042533024126894113388672041996179200129906937182618072104745796804443128523949679394714416634954225402211926230705091210007474600097824877992255222043020498649355546147930305312660344905465271716331318556959141120461768791309943438722680857803542159875669757989140591922274312855820466190532633063348362874065415304775639031975464849019674977173908415518504045695336804466835065843651019432794919155269470414570165395254158805275999692186793639441714663735767791500555353887261685434706407434694972412915343097339230673806829695795884037525072364360837954301911144015068368807899543692857610259394123349452628345448632268956474419698658605697667224449785419190894114600332447935369652389520394235316286969142145912398571332758522444485027156750690830985701101795170976230779309772814941209173209225501500876581803691444807354878826913558960929719395694004149587300447297897062734557182816775081857630436610368837682927732111492505378355128283784110242329462580000751252401314182999970080695779994910115150858307963054155832188078727768835006904239393817934235180092788580120286835127856221934436413417545057738795220763279539097930544165296595126484646740827882257909544780942536554216950392838630811530502557479249406739271775453832946853345026714221956702824084561876025813250425282714495804492663981270641718546144334390156041901600077891846327589467821110663643395799424356957762538676516217222998675716804532357350389255239892876438047018362842735209745419420636491084108801428746341074351564411735326356157657349329326791498439882417294702831194281601429266372720250864235462009022481135799734816296311485273619433058231826645310627898879054224910856563655632238224556581031019788969985376590366194286828625136269187880488077303289425380996995729879677890628170700077537532933721001194403570563343980586060874976328435424302243267639378847896002921203371671890039815780105305351445304789953812451889126679191043623654057289352316955653149836329643186788231300078377084494096706641347728084426864706359342475120818571940992556333539032689851945541570816681130690317446451018190073237241565746895534274337593444758118407547746044372724377133710485254883978808935299303451446800129305843949196515804756586809295161887856978546375848269417883346607918395379743559562784858709515698081583977121218422450094441177447917178920338989249516996630525894911370851009408570334900768739508630678865969027400939716228261298926604117919343115205777643018817572932236719900656575837486157931952886600339491094241296429540260441851961557542669746440612441723651789756204886617855876678122893956819900337234837056267299853342709140337171672037998486600984145436962073801815043657103138156881802409970587049388695149261714195832354052863300772028313955354133111440489907306933799847125080549256731148416841422059210311974547978850005509933430163198654881894935809743629167056835346896387636814917119890997747392056495950352372006490770365363140369999301560584065512444964221204953078853016301418649363387388687578753000715864300094570333302149760375618119360631824498182996663434555681958416093178913477078893214689669081251793509544239885053880714702395518738292932610844995615714634341392398006676794625738108331240329785855632335859995043883911534270626185414539450374664675316853119452935090877672625365802587792577523658256329069013725121814947527505265353170819921950453670548414453512325997702113638744791596720949541510498949937029215917026288701199891648915106636978371997970879572918463408126269392542533604709037282221792955263951962222929994578559924619331755301240488499155370977772422546907084767834798310173129087578537145266160374242422620297071672525594939986502892217179064082984961466028254733012848136999897439123198678350135680777678552393143008272067219090446918933068311620337626155866643119937070014368433968506313229407133076454716356931462134644948622172845160239287218595831087242897701801487809125841129618547224274058594498629695523944828349131990092948928109062063766117937640550203160712226440045242629846422219169502269675211590029524934984690331386054615972220780283565677730250326355964775662960095867806411782810330495488364844444977883625911556574759508528308888514913490042592415927568370669516762861967636039916116978360898110066307342295886481929475162801460163374478330057451717180508774256509137278333450979141878194944844838604257419546810753287443299283903657449695145412752315772603323117720259354344556753527455548448237846676147905540998284477046905356382365185645233849756450111144216650035941064926983820966415614190897576827922720128200625602922441406281333082833229286245990214483893043577876603867100406274400938547332457876726670060947981682352894675198865362664890977071284495750787637214174859833912387210098333743362952476473083631338185232270086145050512187569389173324860774507719115920343243659438578468844004783881868077479682636393715353652005082680756365683788130556271619044685145817761164042594042649423980598356461212164984148677482244405243743865650439715252797136742508639156158964340286587246284801628067207717467259769127941684122699278155869262743785032657455455159801047478302859876557798916594706906157258591784070148211334054981854625382239811725332500646123497690642184183310375027717089765625156441299586603850012408781448016660201245086727192654479808137609036572160629489558953074565870141932903037445941350229695387455394048362762791750150979685482161164480873963336580358320438912217531401583122602475410678619708777029083226096064554808277961125329980432966102395298897721577172183621829154800458915310348972563535040025528137467988503307428762670789144114860011909244555085532504960460856931110884254426938443938784209333140492804005941689370903466538429052234473358277668164523381201909265869849406586771089772358996453132595592610552632817935580175380128353585849089323397516711095791466580705952992616420884605293728622647394018533788370484565529615323355901605663593187669881491246204986833783747317500926301518338189835468050303343762064598556327013097864442195276911822469707634900248484355770896842059668543680801062434859753989714815268580057915154791650594097988993428859203667791906605604712608433778833268030554716212437392844360490150389104416097308434213223235832717791146786699212845276266487877859629100623386902158128459749874624145733645796409746375596586115030482540458395558610835761397450199233613024990471288885861894254753578504303403905545920252502205499398610722040387750885311766749731043373401009028740125765897878844436057482081529478868070508693509010644625774021830456362817861629523291872892409493053249035505174891081974419644438925166624706869140096532450008588913152453578950077926609390338228739164276713276981773022499013233641524771234160249559426184291586644404937072481203133965841446973025307826919215972807908617877812166613679154260435757883842481312139114179588412661095928217628043532606300082723552851958606309932108028925188319038372380179324683040928253975666859589549869693122715062273451502138473617056428049460960054776803771648495056636857266527621175499329050538296976952138322493999456975181403555903239346248095978231960290450391495707946577938752518602966974556067787455691806115441764548718918461336176475718731591318796823147226009836054925823205233166326036961183818067096002960471039165235068861512636663744483027211965293176063405131523643618577044927042542763518264999370922927201979142455616784212759651372550206874865329989061141581855057247285793318086988041601741985141911006634880522678478966567894799165717621523356725596288770057125265174650163737071027758289390148582692771473210251160980604279345109867344224507078538601414380026177944403744308066635678415336765735792219169168622753073128872412402362673560262797548893489399499107261515575032498876424078953105503061987501215778857834565695757667094912000910855032570576567406902964652114089249459714087211131332778434346134730624036943842714515094152921037621635167256650135078570590728749381180596426696266539259463349767016275631981682102460961859742227969169306889828377438155972338367203480885574907020416868398608287331752399972345729376851190015032832927945595637053112759881730457715653599788312086176149534571883508115846529599512004980935899152917117971560805314043697732758469342434635460838153693567678114100649194098075809602926538081844732733133230383657911611488366418356939274393071940051623048944730076152017150526594509743439237698670281489138366738475558388996739647934560136430689149527188688421381249828939510866741834670296838018049582169003712410415909039214478634388504162477862544379791299470675596907127444148416714139437628259397189889675408310921775038268293411471906505774743405264791076407749099869235555191248127112736981214553355113550480707959423063182343087143188726140038225992962870929857378048417680868965051709763232036049871987107555095025760583692894515826521497106898915081271939945379331542458383885923592711276331802418659047315900520059065063061270955703729598377848127472074892372155385427246156098852582490969344635159638966100154039125335912200287972457890797161381795773383562608594128114222180726402266937787052639559644252216293893457349994870559587808931443547045943866448063746349082912677650328913667504101973863823483231265317415550545322836533784200233043033418667646523581078815559703050982808276782076667208222667394806956586814942163316804606402761390741412958076756352552070415825175076927480119739644788062369874451328316106954656655668480324738147791615488797542144476682125111516406972382317955601275048646075510535758490124241750750394593551527747068893054587082927382519633153573780312288214520350861044174264158014470389987687389550580753242781348837616270652645648313676124343574829125404166254524987214474006144752315192008693219094128241407988950042789543131741054435567763794294424675081624333181766063563420004300397303686359452494196290519857401276404664710506225455588278694131702210432840898447357309182898284524754200791415656023535448775079988520674482127079568475935522399974049891438370380627582828534957455724725739676273406672563683924914612089587630319353649978883256673410070434753567539784595983901605709283644807187742171057827082242778254468492162792140743122810517569521693928148297868973066833659524777183602115089242407395009198937526121483397975852716825378511151254512501328338640584931592266480248329183954341063905741958415248173067996705188093578519835406270654753654224284744280618842087468906807101703692803037544011547413527978603415153305461167954019239299707665813638244732821000094815802150959479106756215689117737365900430070436503376358618197870083826526019557423131404493417036014345257125175294462498016195908485517524915305773300919462579388958361398947803960832775461764202561833163969311473962501698647578725853139513542704030153052735710360295722151407279224927092862434164804910831555180859846406655011665363812030571747504088299372262158481450257601122057677867574692525112062768573380341313573387398206835650482695930184609118651328345148172804132407154841539049761053468628401455591869311666086122238098069830431726523263619884917606831836958444914430061943560571309335097158945757131716705557683520198615211833865958537942619364820545920824128794901306866407599663742625294576177530942515695767934521391089551430584580977297741105586735825894270635027406678643539464263336156317729059662285352767206436045880671960946812713573878521467546599951926598172007570714180552876846078648927458464641550871863864381526446729162360611823439834915352789470097018802478370832261817647122410461572906926332455291342453397021278092466827429095404593756255775229970043899410849906160518084033594434998982414222639327874533685405968965334450912356401296757825308086620341650229918121912106285686950336169309749195773861807601432169855107395182323877327595834526087150985716151023401033564292609826140154203753167955910619958460580863546050780313474983776615855459019397241339213337994773030139939287633536904113236219224659645033080317996629410534277631230824226241092099253398068999609515708422700643930004286074135015390436109065724868649525052443143726415712108226421663274788520626128209514016559004304826124918430233483999323806916510026864871145945718489284032116561540445542668021606021615091203567927013717452382916316889966292960016540907513597754554511780097014631191531519303662009784088461419056974465562322839876073145907033939170799233123358415982282338138011196792217266434044122203989364734600753400917029519858799011348361960792754653216623205103744109981525957045707422828842489727251919340658520190422818161197005070418954959177896861439004717429707695823243182378754762851520152256689766900094390427449086524909401065757585969313451479119376445515950265336949991962680005443278797636873351166273734997691491477384451884122282278537024011255596902463257299374971874866952641821398162760365757387883061041909285335549979877315582427845039733540101063076095547359619351426493460992090366832950039193676902309604848201574070496460938853133699218771927964677637540788868556311328881698253095588710240651758212124331039563034501169583971598291489570306585579255732935208788926058697287785603882791868048827968413964951054000470599316043602147355546018075494710726625786754450995743780459417115361753438402225843051153041255369125019033679162532229885172886440663405844382739923252386085008679150091781761244698635615304563926023095991767032640191174318496633258226698021941639107828834250151496702662252018624734998082559024112307465652889919625471195917825814470815367546335367473739878427680957592190912547553445009815067105776059034361173840530010785569912837724761756894677722051282051340010060262648514144409618188544728211685517375453843265475709181434658435375585842820693381771733757433455938593985852519757351522694079377719929741853053639878288075483179948408985183425463619581497639784874140388687320072100749557313869359942922056971830921410865676206956471304254418238091079070791395536711685637274826619465280410556914672261621451846063489151007579382505429189927104788573434226602015722597645085431207086081955295986345810601242354107947229888683217325358597418576733368027668709837261633263167122759142880376721777122403085358534483731252340011497137667213009110801705187604544089482797579137386268856839235120073253759973130904649134477475479735582048228627631428836764309216795190994912670454067348308297005571377176128761542195267893489598890782080995796361417762536958136081169008000525194851955014551787690192046554533947290256667691239959139304040557814968442406884168953908762329079864631112177307638126457264996480636663320267838810796505159611845490120724397026902982283337077135554852189567828875612458924031795531247149985309222665911340619897160892671273362828211614591956912261662583784718959883816262292638326219892105450730081164505963231113336292702269765623568452376374073296717143644092391338074204797446405235377792063894490353587172842944211288434786291258462250555099800572409941129729281209462130270147348228736941336971780179720981169210081202501904874698706987848178670585754585418616104933367556719226825109877661791655116977995593161414998536432044834666272710821950651352950004994019331748008088563363617688351388194056797542511684277702967281864328254090839342130555597667172543996169575607702856035025319270001603155754520719650403614809326183852803483306403288565669388496265609063303091168300190223473659725898402672085519945872729258235515991514041385588066220467603794133768175371890155718727215114321777859710490194570352855276026664267627007155125936816299326589854493834250511703677275280501942127288434247720337647347652551646692088550660057815268510390650893937363721659182369788890820565610966096338364991617460536621817264636756005326072530551924884125202031581436032589317175867156056136458465681121338880692580835934106284143914833591425702657829925309821900335253999604716664547405551111521262745656974118656995631923293772423658480255225718570247161341319845615806671492274507998712080217223177813477581789062590430185235197720627407803162704107846914707424543374454006240348377311399118462642027783257674127782869752441646856357080750465231222098641542268075072506296320826666713188339961599913416240284034787445455127201064877849075563846305807158209655506338876969407176313740613621539572894745747489547604917013485691810201028699165765397774828338231287012601675610326339406560133671667505516021126236189489914295820794992419340772865058563565188229866870667759321251280458041392018089816727764990053784103913102648417390651004015414499418254492742454425211198632836203490717300409992019299788454525266397376442202506402223869821680424659790083035150632371031037717510822239525679027824617461904240960028779553591051965394778402553150995147025642083749500016830791679350831012547039110850557873044889604762527589084551903622041272156236156020571258756141715634357657799243653886149074956879342157945208216892804497542203510668720497426064102646476332496773778555640140723028292718322046630648331962735163550178537955797926686987391053807435257466886076956885805567274419327275920696686817336309843901621924399017821827536153003464525757403551314381187322490512313674520758229241329887620089750016916411676684993036810157500758120440029362264734436172222572817743558510789307766452061924527388810400873949661329651045497493689147822004346044305764410192639547779640987264002464108067308826755664420381464367243616694121959405410758125548462351269401387634451205159527987838598079515573703404557739159970664073401740425465878049764636234452860461228041010571166999927569698215616051970968680332513357308061008389295358110886888338331859222341722715016796122963639781942264600728413551483234898563474264804840478096324559096471895726068093611327928632199878612100059577234564704147383864625184239428588246226356752237893427410980358585168278505110402643204680288403290606275723427656332836994419989950724420724035748106111147502848420179416602238058840902174078203764097229106312468962750908473652092805633846730929908804465834640212537355238779020665694980322457332720022415824444457457255276591849577071089073318463000308608425682844872160098868461076532964534379944628503385524008243826838568613166882605455397260480972025239214362839114557452668967091730297576758761236228711651787416654063045706880484996751939318257287162464707414334523365835004179453236988574727948134366113404360071689152907804110066684290490055314792045937144750494451642234191762498804681136353701957003720221273698201498165763409552474313177938748470885187532251615569048473138830031562894926002250134928089377010480669551235641870771476292508245424294023976603132083534219695733927678003310876121293233662023651541613370249044653939701851828629983857098713061343021726599047946057884233337099087461339956601110562587922756354337430490218857440160529271175525946260903426338878911216809505554831152097448276012131419141889304352109094297355843170993317220435000694018208864343163627791126166726702085187505358740857241306016979986403730963669577007066941243213352938516418438462665952132543668580613062049146372917557604108326092261018389849453259757811708983064952213467323342760095767183916712557028624393065979539755553699059546694631862126225105509513344155108651329563716902377881337130709517888621085211651791710016816443085540863490850184516215446928622773774363477525050372254714531115367009981257126045341241471830270359745295076804166405727498963170272262395005430564263902195320448046017689131909120908587780872476476808270232324699901637475859904749853750449664276599844945513787295032713027803667894461959211394207782118690529105596150933207173258600583519310364643521648774164754808176878859893180491931994944033837701797908600918698966802951055855583996604398956041799934792961333097702388054836268856423820459436073873776588879295941292172861865101765991135793498720647263541415044085924942700804574631774201296334510699557515985529285388361490982518453879127578428303822666711017425819257968874033170968522466299140272758473228487175251552451540297959122218930656041498130023531845343903997259115188365218980388177793634025352527595094198753958176625413851156343499825678172458644866736874342958775310230778274062281299062334162104330238500734156306685269734155754126920607571542777822607079662777160234158688964067294739662669211892737291051688917940445964102576672169979773449871061970972535977167452927265500074650887435726589448873901652360938960696854887220814033464379847143676939448047542237108626894914578600850698899519706397523747069058692357857554382168049470321191387085541602167185632524140674796237146279193591497314310431999175688793460727537083732942205394277188871005423958918870777920629361087856385414967164526148828105818968682439696853652206593890427249340439687123620981213620794956971407167417195230242244980280253265207601975462689607204721762105151404651571006499810970052768183388769679932751474485903345347851904087138628848528777550825653657816387310699252641774326923733657300850782694086374754660644495673732055545255142271441387737296817406679578815259401961535717612246842659644694628877136742924991886046588004770249071292749619999100059845039048140123284231560225182069060609692099306038428712475202346488125405840744525790488841764486470647641001513782123863167003655056890478971424417061321361268882265119012787404229555412671793044261919713843139433506796833585347388394513853354741252248530413134431323592628075103151376560959410681856723241266692293411848493314959924226014764000125079645788967383818042829056716974927094121778592881435163323232086640108110776456720191647911252986550463989923045929171315017510231772419626259034195388428154003832548086655315486510047356787805807611788720496399813914765989030780089134548419532830644054112996946112398373699091782055168582086309708464795561337948892228799684103141605408816852268226317314693406693527907244913362565354702822445862108691288655279215853849883465853019182141188098350267805206433310739155352766531674216497035422356844920740892185287918012035034403074046269945278341045966544375531595801070717818310116004301763223357241719155281009231137420969165477492308310163448095873821969122151962739429806729413600977104286933208878950242495927839993484563696474348737700808906957450181186371647893526609937080798536447265702462639048014327668511330028413827970659875303482951053192990118101719338491673228577924006723937912774590578695226825087816125094027338150834954746977305672062616186406716404206434263391493040792993213850451254495646109119051236391436004739202310532844110592012268919443223953114155113400229418627068344182313570288074449907979717302055762827368059364976569319105730291364015222774111852301870430647233565876070017948191607247559034340011696058375612847687021294845965904880144564908993319996180985958759497902701539527009237888257535535515007857201466724577454221159821090596819036582577318427847688034468414857189775891724818637325094382271717951854705259072300628050615657455780007422638083887299388088438406937883208437546757496594282028548878672957876677971930521835364216443075505760177716337493663861027381694354099760852523911625546297085458525674104893258816734164731231003169476703655709722970434539498723479701013302697953735017380048101646533993971960916861134053906589985250720501671993824051178158338327160649253691167536743031601729377183060438295277942366156784545327540698547437149647677471534399991217938352309990840831062154979173225698672962925388760714498713727634332033958825921554566091391830818253031722130560983074076141931437531926854495662668044793927673190699122375927698876088662385559913084000795833213600203869257767632030497368005425150095077710375888164306611044287098008722832801971903008708560277722339297783642086241244198472391446557358912677697810124014332388841104681109956726687939126327482256781373955075991256015368518823767128116284437097472441276709563821342467726503240151124435485225701643264396049642256208594918914881360326698222346644644374833032852735256041967218042176473637894497198507989999733973665456112824269649829183937266455933893409016292083510394229628943473265407714851426650340372341067590516785392399096902677373692642951783943217496700197006983506103682135637022749565510228777790083989270577659559197854642216447595103705780556936986737032327350868282948295574318451861089029903332339654327573215069179880478400739993246971679047466147896797011615585663133671507883006250694908124367139053782145823221593075178377319375594656436770043306074166605081788747918897508265821230306873370711134055839984589426765129500162784666966404033130587376818524676877520189641200217562463330207940479343115848961391221541774514682111163833576894821173291938055023840166766281372317163694707344489178501331645044633189242914186196697081385655145034725872216058657993492805181148365826957882000929086910999703945998995541147131815527509490709105563715089553156367829242984558580833710928381999172944097458373235390107842583228326450700879214795220832146622741254843491213252921176114425802861727058594808691600863847265991616438512336445978500233425928669139397219765260779657804621199867111160735211947051687026982100084572815753353928066969259817887465363061047835930295221468057995136777628229737153636699239278816166574420145665506549235538875625970890865676459350204120872770829725908952586792211426026782854445976868467206674849332263725187510497271647924825090266604865588765895615411820533534006052324929564509471770902520796411772024217915854619265886490521746997842282759311807919285661365385163014364730157510256776474175863881989243308070067732298135238490601293506277971457774075762433929075416108483603142998477799400307686888966345460789735066497510532974205858307043425068647643799067200129354205760325764823147504754197588589713618035454989146984309400448877131166976175219082146608962095879978252210843953240520544560649878589636468986974060948191518723748198810846495697814382229218749632473853898723099455708822566806128259229109492178346356767029812652897232720612746682945092052047835550743696104521528895133415884036984954266066808181453176189770008446619390055862762956650363969080707632540549920110253910122288505752473103867067227273404621789274464006680130155817127302671442126426662568145556067877543479075163258227197179080130872053363952951198096525526192599237028367254992706478527268405521705282100672756253634691645434184230832912571313723163713805880996749073229545687555069648196087732989449097458915331608489754651662321757962150241561801989132703147293575425656552011100208430197911884160485834429558548402456668484607586526308410401370683528230360691724178316052426739619407408318711904456012841232136225422139011599862192627582198150615432544926745137698106065932659398539205963854965505800033541903036607381543526953691595218634239987153544855853586801702927460505813553001530154944796347438671469127103032946934370259910076957100779179791484252680250659864611581727914624427810780534344234863448152577260607177387178368943456177439630421080053708541290142763872194582329878336052168279566195821889489804658291032914149988656569676179699071400632671498849067190849453464414802733409140633710237328785530557595189119781203504294609417403283410803537763823200745868629242068080264451643538944446810405276652065079914880913266704057630886012560611039605125417620368882362626939826176129527392275158076335260982655846801833229278118114004000630395784553406776918408427350806930960079884907432414752213081281208840642400296544557793929891620382128430766534702410476272282011812417346630509567217389152453272642691188390622701642353914746379088247163462098401080055223128092073123829610433961799987590006428742988397911982120711210183479531377048189294940271943242561376015409484306811973625793091593879706092595435977402297707436629608332132357611355312262477668400875682914684710497406170337407321321802762844171782506201567080412938131290823537884801605142584046218075404756463329879624191273328807378543757160045539967343511165857569016483587371869199503003816212405207183412981686060910359806224665373267760861947077869488010570809851674878026036681155569979868934040972001930224385877218660372354157072696045938552266936846035071686875465966757536390713498370572576269542926654364812195948213904465422787650025799487968787408799824689495063504316833593773829084873362454403787942745939940839212603049009150388570843962803695064469234531394219830564781535992068994824600584595199005898204860534091019271865608064720426822779670611278157082465187014016521571122738830313795814528736033056262165315009213469537958015798387168677986994777442514929077865527792308256197269550914193168196115442092100544709425097085874081435714527940731604451767373996003063050654769985528321148753234816627995542873005450790247859725962202193241788211743811806124289480021156434799144434568741904272788975373605494007410011535160386719027775978712095451415046414589979394739201660501020784335515806586348664351290564937273261009916350121797443860035402523793201647738114680628364079076285007784046441948555075169036632233167432480000801212253852074026471599903722273650600998379816384383216089168122675736908432937851729552949533688695656160921910302554945445966966336714978133419543294100859891245302819863555328467739497521822429955150490125410340843061224078145404643210804022173318673356293871549852136108214658320240482516761078201323832372935529505068172494133120362201297668550084789324935015134863119364131658548020623161868225461282266466782650506922796577782945330781082106167376004981877285622836319812458579239022903768908165499321508971266753712530079716283950368119227642813072574809964485101644950574727762233398191139579035126323941215274677310041971645568588483781098004992911783934772323767738840647884310175366210737929131000746123959400558733079881290756649353923634856618725358996552902641965498792000568677114379512634642441575498818966657605244001403109220203195852838145620346038806554584812553742517365002471182873231138337017629870760807473260973419967088565055483320639448485269707667570982044619911887599271490725289086135897265953739668404170058496201725004161509527200883721342115667791289751438299164178145963516024883300015882330605848403651346513161701576763924875033268565086773882763133849316220902133190883744560613704363472752263498765998421651858142582065299190755160986471485698897002502615521567733413900619717574023015660960589707458877065879998598423319926383216253864956710278822645120443906508644364055185898491519602211221428521538001681910002626607207644359050858669568377601827789953481519784499990692118314330538052992882657479121952533938267343324630561220976059259913769548332243408380431299245854536440651673020842482934829301489801357579385216416147748879801686402157497126994297230141085676931409592204701342862790058111134988237846441546121029694189186143761486506007341690679770287853565485806123941249757417780784381479843594699457746448893020003260187939717138462508559773927104511257873144674298149521265144279013069768388383000726796923360955881157014880359409563314507999919647907264846152147538437130151841264534052382793345337953231223172735926488727510657040353552576628733392031528124608239966600812493260549442218060978319986027007578329265667133926137203604146122492382994696600696268958874756419376135092870478846620552332936399006858249456889586151260700765552343200316727807940325004267269182307564754857925850258411798180218496034915512396753554433806725037167655545055108637874846888113721370217645947922573256430478256904226982316957770447589954432421366077950178198112151334895570934902002017648691550268732266447059193003268028713664280128419584659803839287073692312211568183163685214575767405547662387113287798749200043803007873474578971024033115009434447412499464064020244556027812827787567161212779538663406176759461969402285266503921510794736843464492651010033654602611478194899682612422510122935914583137839829337082577446227891492962448962687391092815793015697890909627644320599315130008794793767094793262643575325557527950308074910776893685572142435118269135383183690561759187580391779233776101241769689744525110273849331841185285585630273960805016092241181954468345429555692276001375145261998717002379129581666051880867431486247672777812906360914978462989966434132691001110490566492824050054067598252555939957168287054792388500685155120415168421461269205006708640732333077547252327031138081707861584334971067631880436731948780701483647624948802606661079029683798504501559851946873830588796365742348198184226335735421362519984648724367006092776221003397097015085051584746894830527936019823150398702580742482571504980048337583037805323348226997698747872866764267560920601415213082259365905101169759234856251905151107002989223225894154767526434181486175035128967339861125162597405240055581959936848586570972866788681660566585515673089090305795348397737388025487241834466984768881808442396881085105878378317216425581820962826934502827426214033604718471489651898991288753588740040143582030214098455392737491382706739945048809648198680311973536073016249843769051463538617506525948996565677276788973572254405954941326040146434952560819812670788470734342943378008436782837440193900897783154850237332215963435528938538445354572008907383036525965432506535408574433915279903942555178906461349963656415027782721396951038909280434843413317801443549642599010621983760321375698084837383364268323910962455895641625331287700971172300980650715741817960393303128810610263557137886618058438338537589286782599425303290361259027554776167185934357717927343658469700897690116210424583187998688380088354206897983874406071025264355124512844895647397962582152615280713597767950666031522429313587776795633775853670922819694647290968459361655843869161983863691385458810813437060350573416566696076983050554535823809883201520348828055996924079542721912857847147471750322730111417754708607520362345245516965021131660133993892820860309465731176372461464915933609567912718897840253897193139468226015832318483273880245820697324481862369982824917344588055907688432154787448379876086459427450918890009249549449887848331089268143818219188239833889460342970300833078594540683942692624928005361979613614878348967366163110829623562653677140775771130348646595097555736255994622800872623252355784750001410437840871294004830038987271819457126962118251103749920359812745007602679338681838883568413463062982377601931785863512410493482949903341120655370614273294021879551982728697891924505632873849510318754689855562593506718579460007805186197583031656337850100580617404008943725245247124652269435141477001805183403308001517714496218456025709454568758188997723345438171231184208541257785312895454430539035005534356431271932901616182876850767548589242681596015794258345082722007342374567183822891295122234128964570811262103723942563986980505929610729662302508923748257963541178681576294449489771643403230753170159622387555195603564616374280946160708364834605582575297650364850261105106715231455740171671382527418115842665935677824076555132506337860263787830580143043047739226886591172393598548293674821494790075889327271035700532744951629262920954794697557212366068985655411849379370673198890653241360408680657512635511202974151607465112568487228523154106657431492799020354355449785711681504155972782608564928995889285409125238914631941042703410486656360908769989489673450608160431758268122716693166663239112261414814081305973746153396411787191654533979214220641921669958871953789110843671656051236445141227254474148392970034128568436630221953910605520574146830469749880169255765991048200117593611954571629795209600719403776849500641942167721316556421368757079787619444357315930587083049844819553638726190332828999062749220344306984686027299591174827490486143425704908608797374013956039827098359007443264875719917526719537182028093397681741095238492060942157193869607980603852348073532221482531974301278327317454161427754824866149293060760499429671361456971014576171716155229560153966460645402264183708425512201669746348972773834397326169169481018198267869028339880056920511089141068311524122563373276720800320878316894783713350840532788540443709575005359029277919681778423456396139006955174613935844660543085733202999434179745051387163239597476137496722249912001764043172830283290651709390259012723247894933433711071988612407548115765888682301204265199576459260365235142487488696047370480773396447132476586223193636984149892642513229074603026349569884405194736854456158668118418209701134879186574604003833361283004576587201032220820465976699309986978088845303503207058536972948859026557415138582645139517344832817823290822471977532951977467421629348230329666661739350514640601987084641840289559471807991485655993873368743253237358480609146401394504924536760368312309241735668519865323791713109646228013516347832064613640530385565072571172285387968325460595887703047386700210283950608861365087063888016921328604358258587601458533863216381883985258652255191936847326561455707580284237542756237777790654490188164793521470764618951430697267725611288437665827736463101274553219673771686264851607402391511582059790513840043231440649200950739112248866871107063492442828412578376506630566886527583115307797845112495033149617386553423814978866340983729592173927766895346380688504922645269937358227964992653335737033306075631795121061686128788107800704318049868118404616687127135553938061436834421699769846623738848000085736169317945112286359504570857374544668089925199083336131716605488152749211238334915200747020017972713041885127527677851224647301500122795037984700261952004354283339928412789730691021498563159591622470821398343826568053587666963012882083910876871616663731576121102662849674047555225647941796897901780892809597878741352297522127010627548711548928121843341898653189375977074205911905199890198764634292250178110596001064546487272762066171475056643853830431598337562944799028964323012449125740543981230150636569888572031283298214230044090281518258203904396761308056277887308435721567946935726710253716867991927705189338655327578074801719430101449448888590650713012779894138109522886562046707746140327585077715114022241522995393494846254396987365818446169302395143111499351684340953892090875140932285572011774345771495825486521579702332217870704665103387051766281194849057665738281491593099333270624763456328831140954857180593136157680788933326645527147327070188446238997090343865711208500839769856064257478764363648416888654194013095401622624330268383054079513121371270371000636225929891908944667028596246274937994586002023595510554234229424769222360305995007551047008191346075852331164457853735087320008766701730983994152882966464077722143535395095842540937297636012238633032806500480504788962658252268148176615426149394203253187109425700159529810250109227122459388567795622252583987323026609150182815008139672603834481908840109286108585171713916252422891739243686882346778110784088341112191009977241519591724338311889406247102298768497613681084049386320125334267352242319968606569866795439655442378340496650499406596989081540979126649958422102787114925966381697936761158698474613145362954969601343338034226524413441436182422288182625939725009373562507509906850513499657168813846223170055009232302480233535927346058336314719140910380389851623799411339904076255015179585795344572548042477983053722954897123027873972775982960733126343704945174246072336545109404857122293551418055570940839834089235706954424827445181641040471227655513685121534613396375417806854507019296964237881078308963092082173203526791193576926713359744204499716594096339961288788418300027332234229340412883274921859126230425737307371505769933474751052738697217100481322706067717072947876431658241804560284760318484653237070287739245840330990672374927896943136622758223642497206959065240701466228625643882395793759240849948780625342793554289408403210723153786295008580765683778130149618079094448736672676354432231392421672295134074581090540485334134490001141408705133900166025153469749927967260422877607551085462734603111539545200605187753854578065691638223669504886421670459283290488428314081787739354969538483402079523921560359635609959542725414430382048675329536354095647509328678625880205262759818914688182442809571804545939120489653527203673764365333546082149501153367480508512450201341354693890604384243423766431628298392382094532416913054634790804466770840854407078091984984934926601282907400304044701022765374444490042474620276856288025363635574870967544786223803592816995724296319082131956918425972378255878600930611835092455389131538553360777244895685728580215891391282199986037705609740791916727497637376258731343010600951968953268933549714423173649621751787406552758669613818702962182224290488004059312336050155557591483820274314135723035635491169859314285264427826471680736274011173776016225460027233453206497092111733186707988200873164524314803833548954185013237631614816518104806557757915541215099089155225412565203265663496775298359428488638795909309154227345321373818195036060266279505240810287104936322474824707309156087028751940845786230083203323658740447263189726950988884091231217196575668294544193148967910857489009852744358473054190780391790657429088527075585683802755576741459785140589611237928228662651928818200785705637357638120941120760445600529994359940689334912926905400317077213290162438082272212348414111361418198462577418108997265723076452028199660484561637522527642744723327891633281402742863692440564795788828654779343115920683848761266715541347311620466526292307185411506112607963165366398971913637115339175426681016400334899374388564396885617625621066290750512477607930952265339077119834272519126753535891447446242103865366525825188521098657960346406843745835424770065397733306514631226651305713990390329348198155076933985328477330280585930186958144249871647514882117452728868693496867544529856724840548645147821640960860918297289447040361033084233558832173895096238976763059614037937818104061349646489441113926110268918740485056938782330467077169541356141711293172155793345365943021383550475993270209426960022527026327961768880856923138547993180558196602453689734133093365645955803750928899297909220988204975294847546227005840531547083069520353689672520752077486299244021971237955740202933865722577820026169616435566176413800226938319651034049270757675338722760859883885155290369021963250187655578504764055742335079982617179955710082618793915976165911478483220574253324818844653120122828261747801896908875860526828416436558699793303658630185243794826242571780507598299743474627586609625723338241285254021579860415310512903068277796033865351557080355253161343206978083000096730732244109156744741259786595125705403610212074589845087939630753896984630816963374556547686149175021415557330467108121266632015940906109896386763880716743076373381070629231548207314871509624341081409214635591872358326594847745758974569739973730576791809538414819035608593365990873065916321093415224908889857363927437144061395418367777585042514872826759150357773778897093584871726602497728227417804924462527599667374743531361071588454029775894855296931236370678591988330944206417467897793694770076221813228135123653272334719597415476213316296170661979575754562256425929286784886847485152189447167524493259900123210159874432237388106877767339515216487926852910534657228568645391688037694534492352242039381768415397193932958505333773838943937661433441447188210346701940298032973810036247203870904884226174525110532327712927570121073997120692323664786619850193560131280702658757387520083709445122481632202010134180368176747085027654343947767429685206557204557880285997808790477540310037113403556977833111945654424319786751090027055961638649647682584858986129198131589194981719415519368255102966927813309619615309673223611064905294382727607151089239033656946506393133213667336818927313889754667697856909251175063635324505091139069238724542413047490794106165993088237449685943541298313442414618381897071247190803241602963080656098459163904962743049041660152634006595539038675682582316969257129988748299480541583431874620645385674924055211969800335666862747667572959609889240259586301952389658386995514182385292830513432793549448024047024902630301836388071623090649618224119883867722076683514648652442532652496416833167300212301700418581242753790846751955033564956603695711004687816047265210035590690127037582367812770122613836129459136273526155457786582056371374558039465675772588662665782802106038267372412098109774493805502782953812439831312547713810060167975835239456730640900669321209588231105508187800763249260951514674157758297672277405474662250750851968554732214292912236987315280519435308328535933471490479719970314511794271918534039310455268814113266414521514171393489542998464231546820332201608691401047937390384272515561492459578591573199173716682375484854041983728569189616220565551980374110251110156139467499837027696246902159072862938080167787392507767721051794290499848406002910072215284712347968706800209438598292098877628796546451526136996427526212332926140775855287053293750303442313361033323537399534718918592811754526260965745940261238302259324816465307353960688659083318115608111019055935091588394874451307098820755357512518964835752915625013944889439730094905709107358842778995801270676377270659600308451213853113655340001051706821477129692585070627753705751339443542631230958915840722123316521517758524576011204494345728570397205084943299852001361462872605850709816050706843031230625774666620839826664170435130867953140611577129624800335272584655740298029883376570392498938522372364928293223481741208855034117081224126632541069100394026028137518205519943343976106965765858494439174598669317695653610792201196794675200161888258429598835061721871906615242483935468285244871529698415103571399721985612975911372845529616642755194931539806458793162637191436213419342995346392924859185862913887126994338660558836293386876974437028186550476321403373232209599928474207162534175386359623027426361504892909481400070094946405713760781507462928615450118438607676170063836601101294496767134342646065489891944665677925407868039194671608868574538262481010142783404648419660709785656184253635517282409327124829733080775111711350377400297055778338641037876079073656214189195567687101810091607783361538016509371814717848992568636229030051575919554497653881031174373722452866660430985869201853698756025753418983840585765236628925090740296221236298709437455048835500480538417106389233621388728677205741507404932199626498256221187354938305624864632535549627148186752443136021776675228478453981313774889346899219267319016482593341470188231622478286888818472524980268243020088369433075254008144506111512340906225515237547224684438646966627075701853855156454997868165710645521764100821667086858383980546674995199064561741779762323411436540611466796107335568906904232175040865722712001184607626478996622982829202311574898327987151716063440642483310921194503256418225497626340004173934605969151215072868911684828639315397226742180594851762780637385412073025868375981419098370344382328883027429341046646284272357026011960507803023627303627541278495723435451461003023128918670014464361936608906160906680011547808382946950508770097889180368821532593939774026295906862233591944100086400615745944309649627859313662622494358777699481988668891774925122787678128383274808064557685184412648289947556762144209032948553163190097265419720435276996445396867338979226360402631020855767054281231061982748055017943396157773121832401030513604389007544136190723456390865450619507006597372990650266738377564871428476366573941753278349015291045862261220312491718310785476217647677635988236445831040349899792475270766483788272373655966959972194738102049345181246408100171077956085965928965369910185571088572421955712083548370103536692856866115227267474159158299700252677341967358044699545984701590075813585226567069388628200233777436642237420639079764791822343500169421718217961653333281984535022833372467894454520322567523657122484255379173978345385069375105852814378249831883794924983345007786190935807703165705900399327744254414430492243341045871326160225804417200120597277679007865507402058114369032662682394766289528154247926424892369881115287667230857500093159106638036404012900966920913222328300841289595196317701031884562293001823203596477668167324123198682289772137162598733885191611167462905771782584694891295734486249530260385247131698728480488202914196940146958722320165494515877769256400857601329923507865634813367191159939699834521661337626404028935213308740146755245217361652327036030477669858306861529990283031359474065696853592151301804693995503894572672440781309985025691819123347673749573247099973121812399792939539755693558330642294484290349214340321266773822564137944885894379886300178639789777475172090582376631895901581092949606495806955590105304564763344673230731415480443884344550021271242889151708742829769366182581881391719855724828422420415953218751580627797776745047101360727208770193934615273886418308553225395202732247186373087157986485591278722715623039760886567952844076664768660605341483921744680640571607015049416554130753464357094631271874037884280054808727687884989614058440473787853969926683445628181834013072285401015722852791346073964498433341824271790794334047084139754097797826335066299323636724891998239638179927593087673687450103049082510477469276437375230978191160981908105014870166761835360832780511631853843630928942247469945873264588186304699977517437190374310487509881819025090484519405209737583685546901785403339482714557193463104749730831398547470332844828543510485992730160562034899255925505499825816960252715293496332133406817318360138167450555771875701601207746161672871841972504857038098104372573987876762118798176807937359659112778067010687504214128979501556343294258401539357528786236216101552831545731646693529942928916523444921205662913875306379397938994661150722617960538913102650550198607175432345174807274182895130584987704908224192879425405657581918188093725993868332318837219921368338540556471452920234755814017929315797772613945550685768256083604986609276213675001314368111816661118149204668173173386950943047977800627766542177392972798809510156718066789168474112641892639748458047765773874392542587851489435933562446266441987813248955664820608567491453682916614652382683855178107771163657384858572463129460924133122560189224316938884191269480450384760375075202199300272563926245426341571727003731210738339891059242584852657064461755860206750792142105586593662452635386308288828321569302530132326782759806779361112001533091833259712733171330671492060402058877990669416715932873883391916030137808620171735491045025341709738285413375706298048965515551952943954559533057606118886783200349829507934052342055980384859827264561040917755516755582302501683534416080057522472437986824345448977755463491974085981523323813110408723882131383054293523178740307031725774694968955399865591885100152287803471011310230881419561812784257651847303197939357614057840931353478975994989697892402642445310663884733056579910149853541865963888781313195212115352877201008399525224834318366932389595949905049494442003191750274240937763639311234753093541489454460531498266134148771052193034909677413185043266116832277560523863463480500219049100435880272955844051560129532817080246991814192552075701643034102420016842596644100896245718750167507651659757467563660506302353353092277090578892292995877086807219506742150407291013368037429222533947547369291404805658598684023617663206897862115200685259752179460165051440363687306007733712539270460300000487723628524826742513943077573022131797893309346890152854616375640607967837826130767807584529302137647563271556102062066528768290991711805105250553234942051763108650276608207229585400930226138287791690336859347599612044328009939943711057064735474965628364887635019324469971523344704321487983006106238883064226806588757195704689240198207111578250348994192722064216572682245155132265790168277494103354574153006024483451480766741562177864629969500474969095881792347206639734834749210379027670451309469925851718566472844467268305956958025790384783986784001689185447886333588241305266660621695340119807632879189499527616865429747700216696962574110177881370350277129343977262656728192127944299147135282273867102931575379639485820948036470297451577124242068063235114642031634837060391462835433093857708657833741402219586311801492442744531011236069754481941210945732662271739519203471859073381581350479689392538224723685828470793595278821416119338221756991665934559351597066944022987198023717076717191207504967655223578643914488596518999820819994581414009258898066609405354391759880777713686556742741665261611656303661619097550028372495862646283494639096802818062335867586640096806672933399461699504534016282304312952577360647386030474461861808979739296998805373258638893657204049041720338320416141660762278002253300906221134758840185169713974690243860827985306371821406011814214906354959646614743278336520411355132573718571015356454803681342293784556677486944330108016087160941556138850689162795279321593358199680871876052635843550077896388721842202919534014067285777896880614463492820433472350249251097993718116177223222200791250327350807636014090751607961826325257258369880812282816901521112259387967089034730301083011515999259403227418327512344221329672908655441244506197684116496250662648833381728423640682002181324700600502679527155542647320161681571160143622395361162969908637169676305427624252859565364937677167547179429591325809708529334369402500879672292005883281903306455378347000632634241015185827047817255874232743117545051105668137478029760510650267612584248792016384216815314717004536594398094901726357327546288226252027927913233435215894480497588514503323234240935544672151644121764723667370957637841511149299280328678551167491920574773985047652881212523765867113246927452977706145079084908110738365351760928569912747132202534606553511048158649568449528312887749457573396696978948991889329440652127717475678160644238097579602140925859108766680292325502109697153455703742950843852093827172823327917049133116264441583289661756687392273882237290604153604758192611683853945262693575036363508659186134786755408529127481099545547007926731960232717463660256804366502830390937943576374510527745126203029559438821575702577834203224595995624615055497283942081824490131302229795590263552448984642173043396907237694780235136881059395020427834261951494083573233672190621462482074281246249368824380806630502351936771495649415404555232270603251826102167247562222290204474363347259594314893161361764236247640052443649502695630116490086563729431236682303976752674612577237874076656131632488020262620612009885923361458364828561667615506721397631110302044605506972465031421001888792412635751405375100697498465294060641981852418202473164244364171975501528135316293876106108788806205834591005857619988751653287589141986158277192738598434135171104282495496182787538344184816367730227260764023886660741172520654582798316102315164544755620902151479679396505210248629159010559691367088312709496784388006587759115758806480089082601602090639795949290680273979066443261075301460646292650156642583614969564443507501068343260542997420747905370395008625672964663111446694693683429450497827692306567704856353848638211671788462336033560628110746653524050505739575218409090958233936086538047275273783135253778937100484413598518659770996556613381516702045892047440810127903289065508029604905583809426376126076049373605407827817476211591697335589359101281124789516614290811143137148192800405664027747014411139432271208692484588788289451330589691239970924519828757165454050348070327068716747958460129387103889992658684392130166979921589998829592654188240605824634863522261042391107341555278072131762707000160321391851889152170370655062988397672908313868917635898454362969811012850879663017658965967362364784670990247072047785567988003149221119958837286398632468622762596525384103371710535597340626588861000880558079087056352278119511350268916667991061611489229621598482500936879602179283082556908039578404786752044969576587128213451724375059541424002233688180896870690178414334700900491944591624744326654723353277717162607973320433306710102213998143652079581333677047666897364052433735927198134605578231116247292771999261673449496812799407101588953475382497421608555834453612126343125641400424766545626369350345003652097307641039995764505588820671892153349071614407681094702400114760212313495238364105655656039255180078963322474543492139141076564749772584079748919234526575450437460314355320880321578201693207374340200830171286912205584759028385372921718482968622756394441734883905258444046369991002808778301995126890127398463987565495967047152104534604339814357311621425252845815780238972236854920479110390238049483052707388116801792387079392422238196053180584338446317398241937688512084064156515229765173387618345876833093590249303306892700547154793337761706028308424052922718732315612516468129467205865580371517932266092143457395502244630813384873779370725297808638986173543332430455872928058083673793016680013682519189490107763226124444748749612116462578685364316687523373643110616443596529429746957756806286179211051096365903257735977757297671471799245437529212660895577281891985934597007608152117951784570960078232487073774385435529085405367998874387201663448262474233578852432438301243728532212362751390767753594202627548394230809827310531843247155846855489544180230614658712118426987496414635278283353283372255573895237888951488904270984606711438898922679204630403786329315422195062286021062654220371012673708547713974870927456728183119436993842828329341378190885880284249355966699874143082610996449413235212770592083622562073186477495283385557649131952096703163248624615875398923376517703282682986206729738664571014160722834839966148219989169694422637843682481111950346927972127685396584039682860755471063801838346518905580530955534763116794954813240041153012300612719427144657920011680836642968880576110837643214044407659160207203654214398985453306124899226763830698203851770165558707973994705555212927734885356993307742461781922305548073985104186941317328248328230025665032267992342592415988697442562470689063086787671754957278582415254251554549155223612533516183415696612406826987835980918655885899593897260124727782087599924507719840983564356784374540780040367838693814881136444587960666842218831579057398116690648024840450417103965286544198077610272701730399370613442410241734167315780794986081715346991907888198340571176875199528973725952304651679320610786657249708303417025186525140232094266141023417730927890937586352915512707566933146033312986853356191563614424893250170118263173268952502304330173178334891276123620890572771320845196003802839814146680557720840871336872205265859900503636745476047874575359065816924229120239275723711784330273776198276463541143101641455404255129961451859769949506084665232264705220390675215813757888599722235195512423727703434717339407985576401330976779701547752886384215888828586059780638086214739050852426994371482097884007887108629281763526702124086574072931022116474154233159650648297558216043168255798468766445747048629951603980932523148129274222159423907537324213478446164506432762021407190079438733927469885946602712467108461740918608008389282438709616971456316097638658104795286307323081513693852905194827973182741479117299097075330345479540775758960650321406162870121324596397566905405324449395722126782954230879470028092596217697180581390816590581618561637059201942945190794502715434017075559360447016240394443814720122283709089155326605447000496131408521936002859784756816410976871880890672498104592415115808626110854763190155467334296648527061356968065495363469583267130398553136053600749094029133908424564308751319019575135678245058428983839550300195710938240304856720698780095490261166297337187639400638374474428015641549442531559316678550222815224495832881650675195194664874818181359139172190375943410884576925065347426969184543336081052464983780865967599314787443748263772512671679879481599672553291647098207581693541028880682320623057476716444771336303817441546834536654009607611605526914054581295907993638885217187330007029082377542463188472548356543349135117631036549109090485256306353383776108713212041743979114170154199392922863547142532424225245949646513119626522265181317012161284226706766811816477282567735465743744934105635188643863955888997584326904766676023516219801918298340362384682780338973043832183250408195484497159902219340223859851400118362064820828044737881349264063459252102275956950610005285550483944469572059720395698513631365465211239549878645421226642450497863866442315470832996882656623568706245715630572425802995739058130012163744013074964647343580739185469140754395548921211707362420379148882779180664907518775279090864289441197849060591430222295474711179382386777402211532037060691669948848322853827168012090093686550726718866386870162471857547344485016524644472956247239350841126956143673779103797687691741773515042703997652896593941848818687292804107789358385771353756751531503540534515653257380611107975442365731092556343656691573924769604335473063129816694070804023483279042364226731070998757391388944683312967703139427360279284429745628706240571480488913031453067867950130814847425410238329739989386667951545633427600257418412773664536645072209872833307265913925682180386742195556907970267909779597036836439548515107177569432205920778443858465828702980183416015455736348993668003904902372101670810058567706003252693695377924822603307359365896848197630262949332156629536054623200753974001461621652905699142893466154695145795566901644576026810357930773864422157460100260214164578567300435687407112928070781566247217744351716950716197661079657974726935646198787861358601224268999877392105962834414530222590614018101976314320532523093756731295763674862185497104053903480970616744712991281233347538270403465598934909619201392282129525497668636666337293912222244190786433139866358386930333101792462688974603765572378440278925955498205639892142849500213909012337316239027953115211317527140263618345418578543688793706670642339182194925301085333633367915828836780310779292096833061428636920180221113808284353114986245379258930989353871739716363061296853464345282963850510721179920595480359152006722020693414729933715325087883568837338765549306265460210342559568781223729356005228121953553518705644690921660195545245275892531048644282591957876800801419532310635897114038880030183863024818321145899708614496834165234142641973497572859483708879635452554396402198072692975368400448880738406592100637939374313486280185403798589359706273121653935098302589170810927207364929559996018387901698086042929780022607622165360927689125982216131170068219814640896051314826474695394717577546149749784961010413390699694140508503292223344448821479722392510537014573547116617541172967853768219746277591281230118480960022065520139755688430287842761725231914713901964849506113961008047036310845040354086532390374470461295569089181629267993904423854781695443681662819834645009497818372171629181512425771200040757178741582057937897626469157144575925586318888487250040622449961334970290339479682442515458518030968375585041766952342314695607185209296655933936646300542616057057854169087065673604480772178527599557766192750747865695443145765068129337128279475231507909990357901547089986587740453977678004262035945513160881257614805110876571667105305479781877229381897758573964671259879271899184179394572119878593701552526153368499038639541305493725343861705105396501070918360619594753652108431135230734514063262973346938801328635333882070439241649854934249217950254498125922159302113572153911501688561847302016773170812677850518112570273829722877286873344852251269890845968147794573265343725608184592945476717209517331792954701908313668570916218256917091624984674398021305670891979037492111390004483903101269239562433872052634482557004689633110093941613773778947492304893240563422809895811877097773985984233102838243346790467527533898790627708553212189871369374772269548104370099794914400799457697956255935806137333060525037858276787546668354619220309005086051782630323603858319600374785083544256293962014635094890455053469796042976672695334416944984327707213185811335155652231707543072730986014876949559092423285783949211018981034162307753556945547455777205242385640855968819954261689131059458540282807626169330082416731026450483157010079175452133457034402612187295408690476527599488551548281734333255883182772219635017820993616197624954377688618720627496397250817952393297048504295142931347300633915977495110218524870171140935867605902927706657826358129256732784479453303261613058510200696083967371568146065763476508844041658453997185425933934436961552100018201767688380645980916587798703190738026233849183375415738427621129488645690963339815406384895389236621815741755682918109418248959139703847868518194537185371077081334657754190337360801316202862160637060785605911552055208438346234505389156767104784660739966447880291260919324777724764546656395349227792948642667391385070738485386241663112840692857351678794236727019920405084958851547084136651921417041341065328167136617983022871409088403371911878708437283583114725858036033332247569560175468729470529727044698619723965995063928397641780330365618495991751465710135942713666040105802849635463680075201228325686310709762080793856664039366030073220970907240180697616876856607170845373948570240996065641920813447366419377408221362366922801852560371536493605929473088143000499386383661731067392615120231389052129569062638302215190307777437860785663988250118592685257884329063407843253596766518541990303233674596857532409790460816637641957508600129016555689847921215949586420280532431008547831503277667263680177342540520383094158134496596909938682762499924199386260416200605741314891223743211701616159129334213842717354083859030537495317337528805939939331285299354759318202998289930287002348830995707264211057974038405384262427108810767056585809645389937540408645825059281208358619485069038299406875826875085857725603012641093039492724088389067143779229996336864099764584276682076655093525501068151020818989230609422285731396100129670457536301881838100701591401479794597383676485510929186435303536390190019851774841177826761425224781935540440196110017101628723326727282021555299667706361237617265504698205725779448975666130353977543949795118957898926089121767117848049816869715474979975905053236711897758518462999091504843203710356672741741185294669974847632840776484280573369267158000873907848882350424312448531384059597446294738789731813996902681948313073168445169708576609064868565602640037582980592804729964606200879398215349069490098153711352995169958165612023203698268534970018804882066373381469806976395546477913545197564775705055453627766281593410761984860246362811598972554903304951915758656479905129792532000121623143813352867978135461669527908816987797568375155776099572951341237445829294721041155264044242923787957456889066979508111462101154307253249387360709537092079521647039577464183293441393169488603709797137991470570968344123775208623811745129233144008823357600270430287154639645693002910571075768026050634608387180301639444979658735972252295244726902566581888918916848191889131839699026482598367992397952243607244184320642302666928269553117604176125289018283104940253581788303534987591363803150432765253389890086323222137135002323694328587385335109194574617981798127763845606247529241382620895750130087731855061734528605283497821585462759391494417188506979442320432009332643905386059204670188976088519831804077672644815754776781743312074414364386512609814013485636912439982366280910515203005297776489163793605494966195302723033010321257045127423204923409703703165666346363591360107034873842711908648697924011399294702042735357077241189418249949578285787899289385086281767103074225655480597954240149338369197104598578667282353250560227954818764410669579317536035001689565479376918255591686843254240070500008473934876208251648413774654932675124115442664944158943482518309191037391024838514484421350918102647271665040762505765841326518674715349879693325504565937885107222979289763409335498611393968723428643464213018452764270641687791116230532450771956349473149218733460696646946187184598347028337918079420379953814150417103795696462729475795478783875647745234110293264718859762284404489309538787589276750495495157981662850591537058182169578763628994033532810123109118334935385819641037020096602537976894219079268433473023614593448268600109683651951894875517474976507383014986841699727309853289225632624039174122050238749153681044098709529602700473208794693943463227764317751678047411768720297103793649520965730254109076998698361443408162922464153694766836560402169192498279911498118954260771918595783879653253897693475800868284587921702093216991894657957529539926542182160514584536604801011771926409283543824154927435737152451497827708418285531312740979634614225935358768311498450577068179566578093393066291016601870611300867967392338968513480432251596430019070683311750417296672421818518797743718121146920789548029431260561433988970302452916588346680634091345265259318882656012694397860475984243367199838655684378172293005672092988650938382560399378596736929232702840907625288415154868878580864564663973706554682204160063804248380269046908711223364462786119642257170728475457366836440865617517543752046399043931663597449088768036002157844942051809365525129797900113789776476714961287591325832072429563936087170811003186335232722739769982916016716244257671543819625947159133474036863125382711033133844411880644986785076190550757146500347108597397298314783147709821630867141888378013476040648994667074341332624271936309715088000669390809313670597817007916324874338325560785521304136359832419655292168104019515140738395764848359664429689651171245191314022357178579164118937478355610656062337734802337050155822616134931799112646652777097357365417075654839666608705310067066025017282076675542966429743550818697679814429771465051622581846039938110963826640472966749012234605696995464425511601119003810512738657260511930358219199525795302277191121465062292872315070239797815876243530778117963661955155047447903240802107239710185063415883165391326011391211451641452179213104396403427550481520820726061876661892827620226370675414482290765324329791381632820824849783261587589738465256248200339411143935765818082930044499505092171701916576522877848822833384943193025158756381232719861422722519530340176506497125527203497347635470054288074855548530976523590417260633551119411800202113297661414929601469256783353498807745048909924081418572906211534861648018956322636136747708643642599632176708253124350029173923085909734374153808542688713261933017696077244569628202003900136255363964531047457583121549614624475664071581523725065554591481652944375199356453607680642745542660945882481064163460271687941438161228773931521603782363709241388989628149465008282391750990707442931592282938139903899645467122343264198963430327040151961783669051137955352706083989798996232229612895341631632477505140513110211481029436286199480666107547631481323895012985001694412808158388663784569672264354176731958334106815812276607007620424890591730194625741033165247149751322961964942679270075708256338442146369256630690335655613398936309095051511114350478195272316228981812896529890939679558648395595992846804163115830084814536606387161142792036332099317177187654505227270763103761348947854124468615741043187687589881763036248193665452432250894608216803061159907594878744025671621197113827382356919429241650426490566580960451295618425751986189556467781469002955208041583417259669047572137082419031358946960520151126591776546750542966712171103481784247553620258006440406406039968565729964793212492211623549847970966563359506790427613504248603507937784384098999899338250192142510014516438405393051617568511577451720676422947000101497681750030342859655756518599874136388645060656955230331939520314169522276339757128104533508087089518802390138479423067198102935947718163988383304906492640870066480244675827320783224348534733616338821714174749147605789426255501688339253151453490380758422620567770025825053033434534732898670820159330926432649729392566800242363393450432347993101382250616303610412014751497129015389361929279536386272747809533213271985352994580309720404936166168639818682113723727849734451308148416039458602414832334683148280980588028510323700148335089550710686834135793667382267370354203348123861910328715685055542163812176982408501726312397516289299745669843165487440883655945811207384739175726053329339418266523560484830380113308647479536945665656342711092360559813659933496840386202266942826027650854292831218996950410375325636544383313801651813258664860030831658285843830816780548656592685069832251856338318850351828615718980642201371979791296577017644346099560455005335689210967822160328260170415432440135637861731734500322331295715580670675779591139122014893334852631913531185303220507677584223209904529303867668373380981010350279833919330856627900660169530288975785813572473627899767692678268466921152023865502789013480897137741207643383474429878324887485462089090868920899383715135240123015628795926682011390537931536037330837540815390559276969095186422827979574498216549396513900555683507673143212837966387836286349354514472757132267036259084160899270304237878631636217492458943817600541913793139267983052609433604270553617138425106995015126005600427789977565351191760675250408319380130326550850240693995341087148433988671861189233636209213770241790996798519846138769461142208658089801512717110972005157828246840607593157310173440707935218506445651181814249354039221784270621804213443592182634354961237721235232529732906028528557494624890285753685833619685256036761152040267085519573067601331474598382345332352743657575417675869658221549535173538734506996664934299255157696121022870896477615362276223352946941095992273058907056292954449849699725504361317508227672683434433962412064991581242993407188211035731202038360246774364199969274727729345371280029594131539256367289718197377585732866421778979241047272139626349139094808804323660995196946495915875763773816740747458176469119532159152255439112440113600876454921439916356703095728658841226257460549597388242090180957850416858147337469774942741310311979239324167019388619758296509887767988148820079874411498743156359374960143667757246984963813434339134860202410645897295276200542733775651730500982483679722210916081288733971728065757219967474408545978528844956041331880836298227883185410626760324692761496195202407625542857797608267346155621042433567869075714650828132096004853892878668034289187699864254974187947979516036744791536179886226104513031676264684858689442936891708510892464753773622513310263287857472628835332742143721066117546477059975424198974753923453680638258348220237375311541052295814450871508462076844220491463363655370098157503779599764369258222556396506730041366788976717272044491801987512654990072180289693935656447483737451160664025192414808204041853009177342487090930827993088060850760234933754501853038391608489299828917647287515759125293894753971115068051726355174921968346626354805087630176918734556201094939176044535110926317009403063188830415156953558810606066263189282814148608537279798927527109283952199690485187493578269144828232883051465659044815170650651683211829490286446195090714071662685126519987600387198956331083460097851132610818626679395841123271361208438000738759973695995479461850312493688435225548280405971643290239489569799158569953651165622420797960258654671323458033058418188465288959549234403938856677018176214505713889478677718497737916210178059547865244924394192003507402430731215281884537252273998335196508719212894199502174072688705192503685323221213879231626126268686056198389191842998797509245251403274695872652628467759460980455618241553679965001211229058979283927050617519865094048200347751677810957147402448136511011782396246427082091399324971755679201024465020725182701031227353257163023409214359364760768994382524795989359710314226688571709689124871990041560267448071501646120366298811074753415749173222822577633882459606090061076788938629696931468560333481971200115155563543787643052683628050715239065520738106307824692916154772557237437166534694712472360125564262442404168999589577856041236304390615070691895852256433421145905327046699515754528346531367200178431403808958042263099613444252931395755558484273831141430038600751966008804778575838466553980695996787674542655147478795087439639544622307792794470371065145059304685890889881988189455893392627453914639529888320491351677672031901218788196887850575439924498235394520739108317590173466718784032296611286799218327434625274924009125139013217552438477658973228495554860361568508757975822509759899183306713942097579624443875983115272742883641026500020966475862375725796965556314772263616195405312240965292132328384369274484486580353320953755876502186664402938664934633064333569584855285473902249840600964163879434262361226348633805937047334429885794333698938287235033933143946329457064410643487266195065606220776788371422853880845929422854197315353218764290701436689763214936919988855480305143831380917711893174026135352575299522240923826460030721752735296694871771886646095615767603392402904027364194915123669956792170873521577344772160260372206573094389756707151714525853514627192934450372928021795993487488674309589913050324453799460327573980230448614413915674590935649113011547626220002315353581062120100875609011397017988285162280930611995849485406596051755813529392199916170690945999960812953952363825182039322331366118839901997711383362124092410212367896932160471800763338437845744599770881289399494017062603364704157269929440483335069365912689899500017373460333666768231480422775698831757789991157068238327156160709192516344381559446380021606271069496902468329847453994757665036364825842720139613355561712758488920416405485088007856123268624199444663649358336749724007688422126316190360391290183097938158099209458654592461320978580554816774352616689969453585383506506062423383148631959899012764639772383583820256140930968985604505482129743959603214241472812595267720457030601093029124093437465881566783919106541332641089714106065170457895478739663537826074361631360544769049807877267436821298739834351124356914581561205340868081876016424613885761566712980113324896563772819926600483465383129820206631036567684993627113938588577913706961406674422802950852524581086853459172106444676696045334843876625150552792925848713868440982493498481316385379968088890970639171516921725455308230767742342879548375000334770485520619927411290436915318042643209863859349385977931658456734647625949324880353526160528236004990284714296364079363610689041449934332146807763106173045504759774202435806512578767957265657599842454615391141448971327750445460877909816423223585760591607567157427820905009329272526553852478576633069503078372259075628878907918116054509131690741520105457114340308739099603697630308541686500102394847227450530552515104412233934914346999761923642093800736451859280710804126248548626207886550974563516473750186512426421751972711635499718700718224184045504444881780769480520265300739970233908121793536568407652187371007694649756547079467958519709834882991991027480797548427176229536972344188679942864427468303111324947698321066186061421028907571452937862061353732095396445091098696880980517535044120469511715400672373779767689814865786827626847398413509231886515781354946815769517655468943766667510773119593180298294983171683866009916463790514907903939221471654530011056276285211465478347524669682599563616416119686346692666983186860633568664829946806171704530172569130484948971241892467566855235007086631614551251895877611690538559514055097942143035358136809353422604755454622822916885198160595197964672457277961709619922434793102136538037111190970600069421305109223795631142342072802177366406258783156507408066843520364822580612188155633209639145138803810383585084291229599121608718899557217047631543449898885831350716088847193122274130311273254918500933779504108529496219244843897045517616035704580911030864640180226837120497363894467720579562028011998685925504154029958617147074454987025429581598799737692696274048118566999937702892204956654415347219281801240612769467898684699180213653657875995728461933640026938462366360115056889337896372174404141155380738114012064057518178892755298041972853510517712645356581148244315936960946207606383853579006126397471759011555556628337009239734031953031714843161667170195676495515348850840922576483150932354971848375033737480947225999825532418377940251400777791996517583815708020883614248439268428731919278922876625279203199731022179180144467699716398227919273952367790818618363166011474041691076914180032633210659131013435483500950931065941593681223767971575257170015998789172527045128009146588399358267923474858158752517306821174990309324991018405448043564083738246688373022464495471685955933767620917675664074777965495010640061110452364376222784148762363795315519906918345904876850766714114184350580094647333071585561677426210294568636584835684517584081260153502363512764537637278622122563426384141087597661955853847021279932918230566198942383720415601618274268511390450075334505315729492961220842203782678357884882684938723513516353961114855012181449858632355371346330105390444322361221353624640215395851412662772411743795305552948291146824695793222896290387873590025796404235045331838557984225052306154831426795293326201648616674623331269787542970577451173291785774863044086743991579205566344133078008376048971780298383108034648658349734013091997496428860638915541625222329195622058144666529959676690187856762463133920933360839445202817183812215998356825681855092661628904540383960775300098769810705316553446086853659346067858400338130302318092306197582880546150310657111362751371942143085843791903573050864698700970734230534715864328822542918951112313488447440928492434181685495905798196944805754759330099231059564027488472596215340543481765551285374803510047227481026090762662806545972998441770136063005046969234284633687409388374271267722125865944886421034678851051059186891612138088561294133875424229472415441712116952290611212616259716706325645180460379320584913324107803054456442365381297979339960553123757160927190309578282401253653484027100576268233277261080649313181580786172607772490022011922673169752598094039876539643154518198285165050014482287900465700651197911307961928838121418137215130973566564527921092746971480699921154686919448446202600907921464384244060764989587881190505409494358271260806983057983828477051433356458441276114765314664328817256382670434898381482726778068756474152961844162920820972425864324264799610126679876173859468539751173248096764305705580317829835811404065757430279169613893096830691478830882997513733603439813242658335034519796144814492525231883993017933645711031267061771910520571163934800665183195348190846106529437939172233222529961512954289876631132606984842868801204182809879049499829238853826023128257270865617649389337810152630580196232143517897942262647927698684667723916150632856835561451889611216705426569353648649078336726794099915572138085831553941009523504573068708648131878271343016709250541485578977241386120241059309445300978194154036912176531266997004110911775252029886271442854819895927342902480952205526927763950699180831520198756204490280722297640506386213111860308416687433013907999044077063683089989872126413660033816630810762354900561671524046446172856865253257753314026110714852675598943378512585382487756242267942104930717326414700450980414633061864383176255316931904054623621398208382356037016579675381313943519145522166191624438217454381219727055252277848802785809655840427190754475875061930288321971517691984521681966653929126715283292651210801272972597578156628525933919973614514435212000314032319130965362037501147926336040076222509589113198363811154166625907506280621557885492967604242784832563752251202959954973720085227811674590126595640770612109000140585859064738189850147658142010409571680724770611480587494567100006109999253090469953678987246494150403643615624284143233149251882403738284640406200585934119092396349811629288187761615785636802164775770034927633494448793063128940972820875988124748895377171713807579491575284313002701300440407035506194684056078741687301084670341102733865042503867444090680196026536667298413688096174924583948925159993950526541396545693125585118190513908683103939026600748914329970715018807320911923092248800281314367033546691023675286397365553636562220705132760402456064510654352831196962640958957499383304065516030633894877549207277571009444612542887563201626525400149445495610244737575319830210281798986743773212847445364866767466310160353148886314556014776187041073167763388484022945706056290508490345079514789924085043300072560334898481427282559323973129503438129562844278987861994047676804504995380411986760720373341049525350057720686912982113962947731733980243732346281365530403473575295624715436087876081619247622395546792511660357743515888551150906039379033845559568414589395805931551629117362440472748393002061873178501295879353452696632890247031890017046608147766829690015056854163517862841830123951239733860327629264649185259733182948014926899192611590419258329493677301139525062732020428330189851383848122428059310521724425230303927703030618843745540508139631862859475538579638345723379886664763179673933670662661482075000671546848149450235151228134985484199322720474668345328164792438966059592573993677003845483020216680825179925688808867488508961007163741809296432173565034050188233985516647610175439742555914781445971448562718369968752403397471135931845362346654495300768192357418500297482761193562533957082367261786940007513088204994943102991763171681188274751385523700926761623756362039832832521131613537067706378233388961802788591276758697060293258689330027441221073396781166354053994687281194771221035022718417736225388586583751537909926788287417555595069021256154254618833740559835201046069480970338992373935663842021079585886462423448941457538344528166969209674668928343446882008031193666878088022174825435744806545560716882679859581220281304839331864597341367434476227042094343922719632687678436269478142830213897662302382384344378999809299065267604203482145453651409347517476473983951425975195486231718950770788391026580664465144342156079884574356553488080101102615545779894981052400078719606415768455087759258582994775594925610827036826008257539651031473524188426737578709762920563317928496138494954458985694081628222726384934124637857233225105585006130152801184194308514558123435409157791094885627211571666878284748989792087706931480213526683967959756890890164522042961128163399559771093434078949384592629180088431330458993815035593750478300783339050578433119695399406774203056966355433365801147958957965224966569747319217621499548341225834853527545825488661290389624072152815114929033492401549222821514453570148471780427524440783498735852840375293428828253028360016162298775487417477232344478134074699166188878630907396950394712993995735346718663593046454160453964147107971111128381603846368084905644385094777809693634632962741848637555380334878877202493903251234524840077484331596399252406293908747548976585564892266438467160335002043238150176390502411397821318823211307205306407057212312082871684785306419869117421842881095610826692286590446110373352153744800822435494074930663131303225031460803566955594741476152372657078664533433211674041569437661914457070455377792485231576735866427345077843194295157239357163554981500472411301649909586121493567707808705253130511254778463362521092032538695966970179087097835229610270844698062423121878988866035755805718130848590033591855376266931840819033474759464692135146675139105723651590979790494688265428378492637867947310505317629680105150111435306987666527581442770451401248383420690949956479443756908600960221447308784886559599825649093603781171487743554426241905707434920604171316478240765451440655170559746381656466432114180999429797868237500730246311598950742634996418776320843242934598247308862590030533085948850533717138489222895869079614491851983704062127321046942636239773342159608644989690913289302671585433990482900497689478454033369527422834133046886898061203103000964460140072600112250284494349697510773510374407365034145224557065255769616787088942327506771808644046834890952233314881552075107275798806960577748107547561974376614715293044656881353203766142157104746383687245269231204959866016054942720600240591962930344972943876323061699818069559365468213545758263670854715496414192781785771291110046490810297392956320091540601945560470209522851499198311960494486295448337872276718566464267330447459392607924416195113352793668954266271394457025947162620319682894612128422769557994898440683692770999129283738050597849960710906197797665573613233308636969834093538975774177576760523405996119998172135112749952586376159667251515180165026205931116279333289084356424708856396540473553538958336820180876550751848728946860570218736645939948578954306847319908309298022999653841036545967289081827161475055931443547237672109679668902229148230435014865617195501001259140860177926294927370555649691557919409232463138564396669720470790690398543490354393095556963648116651651063493280699151351841979588957365452740363534113645642857416607790393200870452090603413934655003365827631119401550997571925380421274414131531825341652784252056417413606026135677780696797495889496628568558976245744359544374986852386141036043949034681400861277207020814867326396136457509928192642175137702757571509749333952576727559925624731287277380720380022868415287888060363373971628383892764090637763206989774827319953867166885583036269061928178631000436339490666547413026035800256445190706810555017284389504234131173106653266144019079627555902126102143378717666657294542746200280173170197006980349452106524894027286786923354233205259664610253416387535917825829151048841929619943837918006572661329013095788672450561366776099014995464170927364498877123109126216858571430984108901589453694396655214253978430192040045777860327231755267859472940915429668603797209165879470804803436294012440922238816790362715524135106860197526641395727039780499479569602237219593398588008552419669108713916136542489624273125562542577108711775935646896000835612014380682850080958910721664431359246687892541148602797482387298899670154953617915173918956488528252552447510675964182682969821410123802266414888626139293793054229801076858273598653323019552108228762245284062558700141600488941538654587446313064768887131576344377102030381321204331245159769111519132550641815068151880309060571240082058325063486182602836220332422993826564793951151651018797072418958489030473578475166720938106098965945503561749884115840938748846007019104796498087303144945597815628681003268419048837359063049423293171496171243369200627442489173511506625364670776665194205723978145720489290621118442936876857437473953029855613585295174354015668622627538937270342005775853326811737011079327571378820661742468713790159631625976877120270038455624723777530769584425975193402380702765972296275353792408358326031074614671484038189039732705059567810601437150915419071612959216372634548482836278578009591844088386968346544890058000500988023555382832670291284293492877689928011391709640304277913472931659539135075792249447001118935755836147574451415017641007508361319783372484794688224583677727490288905704621921599502995622667034114730981234439842234157089487091171901744836281801213511863582604271008611305877673354719639720447721865912441856636272295000677029351510807174577461117359820195545291719977755499950815072645419231927673516703521730201313799271360083395216911956752396679521138045137855555685456595247383150866840843682647684450531846766609455281045962995490891207986860348181975217131013031367340158519270785098890486846467317695258353262677805798434309759130502299548613236977021302644644295731065605871350056268215388168307960775387675267974092163972314461603753318593064866759922305898610120548812245747936107088370049271963570656521618478163237097028869343338811267596099619499872800377632761242132278182895587468028696197276744055672799150709533120853423011732293231726732129500580024911995960098543860000802407456347788364004380315447882756490623789169556795538211955568492150204709815797685759813122431552704031487364696637106645933293399594715429025399112604809858069587286188622649584678865322701514799113863009855798013542642527429174366048684705977643320094314123442400255185345596252029122569952294637039447646842183813937991195879386752874937203879413821731244974371019834364066765014736346065444301716011347444695081717255901997343126854391054514477064031103664602551641276054809002147098756217976453137640354703620928799413664059461103293355339695492447085107035545853753852613155630706534970475118326750478604779670007799901360488367119315422167470540519941774275704585413273118706114378683701339327830067679204377488014606959296370572063776061461838500721434569701756183050094220378403924682658373038124221738347853562107809933970687285255604967837849905961953905395488649991486681378920697094706401008266193564994083056849335026638846616658164994674814368675372092014632268243725081299590586681818443498696686222456515682233773020116094166548331669568812935424443249332931641082884374599695741787034580661404031481810504515163608390225832181312610050210308497867166897328170265367084215989412714362016210707832421292552456912831545838670532147912481133331288047320980657320574766694816884768519429075180264442726415232888035784924454754969314060045849193361819487632542454745338586086186275994577955617009260880951739951214648377357798480615610179920737215113211730831828488066582676233721139556578640117062846622701610965743020976366649842095235099688611877226759442794948505855416658139015460114375473148160552032584101227237251295977445005989717497267405592691860645616195325818451349823207541818792335819561634322132588615731961359716066894868391902706572127563983487557557086141729741212596799225867284560887392225444212060083027731937233605027555233619250098518347679202903131690934933317214664818514147711198765335455529247309180909396073271002060061565850533390187786911042238547643928455474036992220166580178140581553045134685054805907082793768402524675078180672542129308840946294983113361593991314785671113869863859719133388117537472162470680980297776358980729795380175309817852926837370098201924107886130758358077020791188691466032850149227442758712782041989452427176415372809128343336586485674495729999746903201836175739206559394035317951810494796002647835705939889322804287367745819093397543892390103562785629652239691457308429417841219833697856365271801637625023511258279409458995477904114468309455513042954936295035566485047920368773031314799469628171891963751701953350248275351497801750887834580465765001163137755634050294032131967577175152267187399788074516786576086717139415113069599257678219088009610137459826677266681514244523127181915685391826441071318479701289357494753334474107256575315074627838007538593994477419751914448806115446148386123952477901102130488489990257568186022077463671192672224976368177467380270592033186682148950362814107098868434997345014286112047809451725885927512883481633217265323170291803860182832650000526498731804461146344232177781415115426591224511214349550954126120952382981123823574322943235830512962737918444579439697632082573305857799027230935554088325654505202894927799248208642084197231012561101360010767366298138824966449965351061379787260751465145278181192371045105448398418487298428428989102147777833101254053075076852083380267499223033951981724695466668833096344411863136264944829224702785250330738040168871358475777218839901875008241184718133670140370268386733453039857029289098107990717207065822271376280309989603808139766384522985277824291097609872722617791866748719839582523119937743832114533324221890759689312051332658131886738352046423716694962251244494948084425915578195207764705121664448334536433937434702853227941437035400161402018176797300461704239821507338578056313470258631365997175931425891510398879107088459433845992050669832090971664133893866953499535709231208928611934288686440817321572858840699068861643148043585508888516132307325699273896060316972178192760105644119093614386190900105309756662385318186100517679211873571300084944149673346456439093048603369720577064657552769287009914902027337612677077653477698958671042280631498212796640783743809713494782814943817810798742609056184680420478535461771689214451855667728477994460449234472358775424768489267935632364559043669593418974177633871847178598871723302475053586806918005173139764909328363091698887862799032923680566270562210405028196750158363936808569923302730733982658353571299924904024206682159315385427466816253163887646578678440432002502198195759865128656589519712981164246354847281079193807550590334337019342526942209567490158092412509587131131745083157733776350984361211256085732845143646879674406975009308427952883999324692840222181288593164614964479996661983726932057094494373067042714798179965972777445598548892657461058450185889208285045264378399601846087693903545428977811467989631565069198422093695326562203059061604083722856646071674090494858818339041487468589773442320140166766664327728853473036963005705474421533207246110093555402104971403134244344438380603578944314839434680832235858074322768184326169022839915431185409474988543119049857510965878632196710780035207153076431159140763095161863649754170988915575938510101051942330974431228635016388205066755232663290382481354163766855890887268211576630115588602557545964950929689850763525663063142234555191311414909793544957803373000984072900126062329507114440765268481516215735934361515424116034002297011638397529692961195670428885512258092609837625259723739732302636197974706803328828173856235407480827959613158132919431199865375355569177064869690406337192574221316522415944926113865857272645979133617327689871318737458536689343516568237596432007929457481332026920197646635262637060085365956382652007309194227510653480773559223219581192363024215539394477337921677633991440848381794982290888286031954035235633648911844296106285738411360764136428488877402403940730518894208756629922156726123457988098564472750288012926316303819848147793102508783857003855537128256251941860310910940085699574616489054484116642382207669716687139470309625701832121026099890188693343760522957850725643469011770080115662209252539451896818476571918044715592210680498439761460400307553251062352157706436931781437828820930208629437901179169865558540233295141056660976284698740355200760695548600651179645859065875531992997083476363261192392069977079335248504114285397433907355604356779155046357872403677073493024629858070002890115309521820367732071604881826758920138863364253667235963690536073431190369935188368454334408860113759835947760940626966221225952155982814896342419902525377403613333549589431245316082027332396887239839160147845047580891869087744327132685605359595122874317039060013305834975698247106411577258997832118826611926054231149584073829334558998815938560199505443822930986690937277128157057024394316324347922752082804341921434733796945350886287661212098657068096422355034356006280009220554092250639937204931083419032924647852504700142459921136067984351496071321666705588196601940733354833080875274607995715447318962554553758306060767944533370150927677447194328593989765143946685567345241731365174725652487213809269146921374425837678694411229635384725706787107141961048343659643402659111929643183007415755993148136571139797845171227555160730442815583985891181553196885715951267933038598962746859987231377463486835400715315165975160264644955445588336797244297191521648174311566415066535454192628265197225944184592428645267153476395743966914721250200746207786370651083916210105577231853926760173333135346990111119499118884729115660321820087601088313189138857687915499827750071028522335820517299408979814569860077364388817690847419128142204330804691803380736282954246476929628452694702113608298163860313925221106561244536193133306787172581410119196594900176820818830255489762252713315975655784576895688871104064807470213272435669152154317560420688236168308009316788503906081486468293359365801423951600577210486132204448379373291582021693522977113393858202211854839928365673848312368598376895687023170262780582973032036463482208620691094457849727889993276745472832001206215708203071592452388342561722737797790467323610601920217895286809672616094772575766174104730186710865132513361696005529853891170911308525103416521033346874174554771451452662222240083933520983039420492254339360927200327383934530180117819101355250171882701742526285954819011148874220632500628816478404439035043018098575018730115331754932483566265626911459289827103550357387288205932875111181789198145837848987591162877983431636708216256257999218234547434295244088196117989901290157473541639007863904825799909297711088695191433719277229140019578611198832352506595248436919429912156583963282957372602086882166685125621645722199374559932521389447405770240008761212787999157167992436440536894749185585344867171894594044628780710173444067304539953181361535349355567564134841616001871455224766344037681598451781213001864198416447773258839275849956351501418313678801417595857549304801325411844754342596457300491528863802597156360501039374197616301150244433388358977074664552469484071639472814118346367684945682889498857552684698685792289374414663531916484255179434799626182958813771327630426583829662623410753798310063295117046301459521553156065351930321817394426521513385558622505744186655054322048308200855145461394163019300324601777424522699509190898548266572166390945022611998127397051737459981705519766793366253055325908809664063998185729592354064140082630888412311899190891244656340744119537992862640622060548542100918269965196804684506044748835352973032611864995370724471671364709268686433839057030993255046339955062847283494058939645856921334778627157844450727041786286571940241123194585944692276243572693825504216841356802545350227177789150057775787139685375762501652404958920626657156995158307709849716880362894689259590243671460470264086082820559181508703621128513286567463703189434275680825891885338126712053069659953775202828974264777743097841703330134584338449699580847992153720113586416966258854091881495885388829246382751356530570058953687515125829883740998391578533525797198576504847160082520185774169360781742162798483516983942170286164139320028345558959575519423696792557713633701797829729183649890595915954719824963442050838320534845731386633221009420400070457541816611855288913479981993017800710567751290577383535855291705589724022693673758623749728655459877808122328590079117669434697758404320629267510314218602560262013354195783935830899939435428645513511402587064364644832991646656962188809572086952276135766139800454160540738460713893911945236500445056138412937862225682197419828073627672438643946464096390803983589722338145420780188529565086432361416641014200188135657366729703781902055236874330157676387420168283335807517983929009208372621988454320450116067222584815519877484383959723850259783593186858785236936975522455608630258241284621497639965312162303126788656953746624802057996395573316234953536722227619079326959285370510938643350034303201385372148375037351808545332519467474275693580815474430776779134890032849859995098290505183953928358784917226390283333424415994830975997922742432805460503941612291224306114581240775735214964875023660937176406930563888085955784861506633255726804152850203852968146253938118011122503979725298868464937461981413492538205579923586228603726803906508490326450343821220848905730063871421218081283659498233463182773912488899870860933281395227173627147029326501720273339289335451927976722986485832552409518260538014873710729191091658079934810374393049030389035076161927894470054389595724022098138564938779290416887332382601396336881060605568638557395275973002278644608934910637200289909644029506510169559965330973665704512310406453005776850317053459116556378575293539652028285555493890435514692461974554717511584535829853814054635192949408333880569732858411392470238069500733267169211188419776167423182101566555859289783461917485127156411827897115884195268125632549655198181949068344118309555960335829144512456193386707938080258244168736581320115679691713277719830711149128718174572769432829137446914863486363017528568757308322638150362488919335499428993885594905764951671251541319190827294138709672603464923039311360301246285544420579503725515967187706323404816645598482444108064311322166792321218186874511428657474603039477778098874565669952334944117213658676712995699314695141815902050241110035770696310807306551009446320751526982664395179908460992566570079474562514881063047739051132295922261097360481524062454793038929245640588202418860128301666964163374787789572658780380105825455627477454004709441570091310470837907712205428948744343529347814808589104034298558987268565407115898250539615273743185064992615842432138688194231533532322207787692304482861320675613960890203630543397495785772638439852409729264350948884077474647380724597445561996987890055474181662181817975415575815454961773775937739386747403008948917345234622569734637747463420303629085022966234632430256814239315229856661652738188684294274253274405578077657749106580379702820021081848946203918244108145095561785311112204571325729750940201222485863991416880943107153636161725078349548438442127975588646967421122414572003336969014752623730427832837094667240286730422297578448211777567870698132590545063194364368851417877401084505086365415354748500261180189533747054547142938842827235202683817369085115259823811894457441320176454321304294691305073476446280112790387073894000469256794692802432212444004391621531595054833744987188423806080779523480241623079077763321735494673197553351578957411786064620290925881832550835753949671721689073755538439338049950899549756328195750058326774174405378363253947761049068824794872570303910259587361936944765441925155191708056030113813826762152371118141511664804533258911492354454601128559946473103911826108406307084839878860538951025256722449730001282793001819962746042090545925109208536560625324183803914655020523734650883476096640693518661653753578870383741566123790926244707759634509644631680967520780551526800158847939901224930108956354704610723516641253506685053055651970959802538890619085286184019200932511688562556693638898215190772332229251262617967259805513523015984143149041902869869864311157776307474431382974534723514192894773017728581719610770143198918782703144756708189849492420336549042427779231570676127494902858291140575054984326708231743568588498285302029256831990228126075486483581614233207174677792603911623317346741946662376448420991524017718374744574927750494708037930877484042977544385999039342829832449099522700369063410598539790699461716527618212380182910882121345329028052963407952865652119287212334212522045929751968534306128213715398149613282244092115113082596053502068330414594492556556192871377143638295192847375184677148243948738990625838910312804102695417583860226510687427842478714345127631236202534907992925919328854420681882121142580178484638792642493501160621635280246747627642275481334522281736958436613248252222726010441567299632198212100398184604775273799124046988361034784981345806338835798021937147013487844361451477910191126688207922043794740211634313461489693775140387105527904329749924157624215071291207860221524787583265837538291195325896050188796148661163677436064062472120526295852156162566501363057098819000707808654868017702253586083151810123424031697585466410633779722906704920822877774625119118790931927175157096953573753720197858277064836886268893944496463957644782710531882101668456388974356173936604355251304419713258889361113809752477182473588161488116741616840684374144072508363580730221799097250973367126293457937755318503746580963992465895951873644949899383736336587997679802967070631144227760761073759053715590528558716562770007719013041703392569737876293787186911100377541449573110026502427159878496109931226354260466326173725375470114135595047939192073223799373495842136358738374266997576368453772107192001338799129976559550152084220365060974236009586181629500629304350551896835385023644715275753276905385214450008904233606067890725553710513574254241406859183533026955370575042739014803438065120209280244114400316217557784546246313430061059415935388693974187736287388384905190567090582191862462059386399790740152568934056307524078160506955760257311947189629668238391404518849944510684459855153141227569690680937701582886924717218449758197978641265722397029927504981020406451905154696144522516979905159271476557468077319777390087657605046744800639672966555376212625770145049975800678139125214821868149136097786690151833088753827131056030029652652616291397818847997132452846830023914124259228885672899753885039376421980162074988802394455682468596573082924086444837329323993850255492996744551406686471472068416084439666759941957017257324425749507322126458335773147929305944024691314159824596142810888975633549169152885978195360643312097512989861377632057400453222775754983243627439510063122011674402507219274293640061060205413845897338966669375394207108742248101554309269352508297095093707695969116973271530973792711485510926086758204243957300292442343899858190542777222080726467623090756945344521394059502284057533688614252211655560481276024343162319024793391922590994090294273826840633310210692185081413828856531228455935131822097407597310761284545678142734078361191829324370404905942284760804009797495261490614097972423300202326039676171337032442384528297444204431377770484444768448319569261879835441433780926646053138651733060935573576230772715198398042645763720832899622502855960710915356599418281658343172169736022706049994906917045531972957036897044642561089622302882442670750441283081853982371961251714272690194556611369868975883910291270004743278629344995105482222230618125535193308506569556776007812573581204604129378442514366219661598371501810450669738864436254906804878617153943419555507105495753569796284865511938048967095167805164729941750831114254481789989489968498154285726143669876341788682118367501230447458274675308637084642309629783043703375751395000586989798643846065134585599705412425461889467456139432970297466016162551183010616581330088448380354041736915309321138867140465041692530697386957558496766991349377171521116745370133740132126194482984148432910178161921150674620520229135542419874871925486475692438980232059535399879901066840107063713198970062976835910461534382707761927049993012220024797955326850698624430600101676981622977927780472109596606397541326465611436990192655598454951369659522756794596152034316215198054961696662355970728959483607158666475809640382943244160101608887968280609385834440667962518594816234609082076406992619030096799963984564189796612102380985701429032960118247704919674988401869304810418025680114472625877899091496501395619957606215766635405525835456910784734823174626584300630500863521995304648235483290283619302526012115571376776454613082843403522640291230968439784590191511294450832407666519845862564364856904132541167592119353513587432661131102609937389303681451402025217402768298220561906211208526616373748483337778611174527320863572721690183498445916888951841140577032875605664293686545833382318448341554899669044919457221992108779045536988008335221878769355837287949026268996753213996738941014028459382481896069752257000707671371973339957969717098328225552884781708059150745320649308053439194110449301560055756788345783070097027937885420883312569528538194015279478843192996726318914850644409421219315708915520263652486543307772984967299523129871708459063312237014413810997546673751693412233484445305366625059622309791746462387660949708945878574317641090705478093004637517275691114975985978889676501927041026859752786045020719046704735714136101986998224091885903000889147265199457686787452306953321175277215799674872279391711939144222038675683835615005978447814667403473486201333711534363242622130350747604301426057694635268513156149649543532429778414606803564887638028690919936732477493751219294349902827060290089260186097613841033989294753018954067614294781753605771693771913835975628536052228922390944990886360623574669020655754741315129845170648002966634692174821205762860512797569506994784249315008430808284123693170833367216011306482945937023032963979165406738123634705598828106589189257824775458147187353859409950644719329842726313530186811685652275626749280744388109984776336811048701447998622326987235850346856561190013018957873651576973070895912355174683092757369313860778047414682680057637997908455549388692108271499357551596268857142379354113086813721697471513951112381114247778078211924028904683524558875683818507095435480025999874949576358814470687441943250140052157696155228671976746207211838783918046072962712652027160567873785190682187444164805238757682395513225119114933625887889748312740041833640868262480916900946098303418758986679988201648771054621043524974839598121260522362400118744423592952705962772128676110849054616490563539475769418974400260961834652216704466273576929182701064711318409298202978190357067566303084564303376324816046421265244714255449761830346014614582994163178502976457890527628534623354554311584207122667084866950541142340966343882249238597220566923757930443761637464039382285030157380527565620582284306018283131093301983963748194293042434900774672933505854023909929047189785222209721202202233217312992654618065152511397270055952750194692620562021724894133999034410954016417367074310224807284469017785894335449738993969626262959817340776446314654910232631305613089862819284959745742379483288496490722977906237314264812667955840294730972800283865858012484552729834730590943301324268885413031791300508280697953822576879178346078075647834008325086728162119227337701813692901643525780982304433364335514844589611721307080335116296756229190580445663294588708880288358389866081715542953668634004935940253467465477595947506535653795801181759449885658794829916324326366668816507039221226245374175552251511448230621168034054453600574544315157497236219327726270513784509652287500209127052871977410701680844707665283389339827102867034803980808018999482629040554598618180691098952976178698091063083265403091245528727968066480823554571665179216066881011608473199871323173242148937490847192481880641933375882878488575642471641079086458392870491773048979410294782139694867404325003753619978449401102130107528950322309884152477326694152470563034870256831474371563595586289822291411717284800483072541470752450226692153723200772751894326563918331154565554357361123718592022192350511108029395074150779224108976592555408885289797379233170013656803128689757064609841739575847587378962600604476815585032953896029511075631008801173461393864132862693263234705757642185984498409562513901563823184064936425111026393496542367076772695242789776977726316806257866856921612124876635463153264780293684159681249998823270866069626984875507765453775375210245084632987651356723089672483359065400166748382638633839633339425514146733973185505618130221139428579309571431660156682148667146800083972553448767217722590054367588431998278846386864896591398703652032407787272882580925051807508030526539785907872397420343791941491466122840288278229374188776442394930290468288082078859600740883838278051609630900560319022288537640014205178455842657095972700865874184144737790048341937959401110525556207330789658597136134912211386091938251776046568143556383377732776376645351336548031679500631275250054676224415670481947447028344609596693344428887109660400073121163528507047519095188796027449628848951877333825827137612984100843312021416155683706115836290142923923138051177355788081505334637569602225591846778361835366023365632652776808856983295618124272122204782231644812116304912618082551999467619248831003035889023693510266014647149189244691333584824642679609934487056758978532132022985257231956230924832546520915348215671902486286330182176712516660828020633366388261361642333294723501350467563392715799527702212743628051467132700109391072314335739604607712774536798189160928146420466649007110418324359555073407177977440574742710078399054065928001267619419024009864472130522467287188052211975009546337532354400333036791781790105841158148268548817393450048257155566771540474209928480972072089015573699336781611971142662940578815693107634785524914493935425134401339264138460136034546926917440319925318285537948868070445842147862115300643177051567673477145889423373571408450429228672213935219301160897028659297080470067655864773532929297271614405136466727591711621313676661580761651265741678565740892448402287984215215197696627084213753733577521577972842034271154018883359587418586229233798079060454554818962644795899101983165860773924165606328208021840327661823509766615929179995574129862647594043421804077265373390776935602120515039753245014852427260994794022941856638433709652066130748995427247266488304409561790315184143636635685649702181253933742684221858141511389589951548262582338437420974050587384720031430021845200307699114259071469781104966163887002757377001119066971737558552750049020235299994374868613642690897236459556093482221760677457319532972224391498515309281887297764032737127784683962330414402946699140332791031830641149762981511546141413670385074213200898326129767328507569505416924498092116612151131030462263051934099985690604544908675269190869868621128835102001696110899032166358866811340195665037992161132879281503388272136228842325054792232965659093508254949674866962559939707775657109131845820191304583429734412949407275541076015730890249987810741714306583365384614555871583035282392543110494318943484584150259301938091991797754086386890263528154083906420874576409336213741365349873815936181566923547672375221425052043595489685253284536354405027138101402560252861223144527561220010105290672834883208143014247860994942827380757352545435774085956178123415847895487098980407453802844998297419163005877629716200308488421685496340343650958514017134513890751742753513788346862632977351777651460555789689842801277005755469795200889820048791537990914570517805847550435453668887921542980669663492491290354609047781554100916978047978869447475462749089035117784395155756384603218117614655389722019655701340066957842303436348924705084787412481090243165005966783538306275280475179594173801862248421392579790182248914726376421588286603932240943076595383988588725089316782219766156863958881336765055760894644869181721771894111724204636119599600072684326473010123978821927885365436553507857476491478064347158334663701130051785029922012290969018797545449981231562090776010220352481005721508858567521003609231565971451318510929250210034382881780941431450144936982875672458416928318882310275911081113543523608971562751092656547240843131159944971109116920683547479455580918012399718108568749522158268665041218004456615964269085346027708511124788576077477375329791575257946711180296055677966166942283738151244883772104259523559191959395982404630463543904540290850360446050549844061840482172105925777382289903529424390991398417354528339960314309258740783887875163929406101946856639912730880726586124075429864814916993999987461677383531214410675666450239488786821305674094150664166907119892319461526303456544321750003192060196246246557644297919533338622855354143815596704029058504827278178872735203260850348560167633850479008599410731012891893302779615297715201731089582137282075872531236828629323845727740460572780824456539099132934716887669498842174579719341147287149598891694012766482371277473937139780652341638454928566452722645150655439420527322521939337113925346743815819128460959157958968181581888920457223933703096765239251232390084254964927019995134055508303072698443097325658530433173323774217783659783162266770257214210250076052219001289535546936241809456347749254978578126078426436025974993498038387051234710385699901294750479665775014292733844719435702663223575810981140227459067522001114006307207534551423166326169686575399173288531366749995929184717365930204355918686475520754440528057021803547511021603494194803806388067104975919827963825107974906132947485313690418561046288864725903049986097065108672931408563663492410672364923547076257088077643705440544369174270567851355180300929954471352293003289118143981841479900842718578012360656987585337258319433969914734931164967477614164467931385691826655394257445921994889592533748984515900672148519718285414919269623927211470378018820398318053625989093092481840562935582089159141638292373499802523810142714860338441705679681415423055436217101896902871963493818911786021517181589315817282691928995884029144283905627546422181914417706215951901647135954471331451147148186456140151673358856575827064802513083075856721974732323941248020276397024909213953717117784457093734958080659404685521588615158689832342669124609933080914187040568662238976272101460594836934239810985750251468330920570149267528506291687035839475222442547156895652554650547961501006496060519896061443557724066868244234587137131705797843301663183974048876276082231143880765514769791229843937143140506663635043950785778097254741326582993743401366231033292105276558307165283792683069874556617696390285403880715359286311117358975657464372895903489728882899714792741794350198935135291905252437890223343554892813966145450055141403674577448292910251539979459071599346092880005711557631041009128135460035794212608800653721818661485624217181870763614017522180936696053925040366631118999439453523661155449554479711125237563679042286874893952278156257187495323198662847833647578872320176874847768640731940599148359894722658415875384415932778663260709860177873420823320228258597809229374978131833181550458785840998268831536943394190743642993628572299385722583921068559172152472932281154975009009983027067450064395115688899597775994892656151918521466027828438298894766759944069545090964033562837770138629069426296827308792203062070212900240694444315320929987463600801731328786434245607924596276561091551264447556433550493735073052232883169772973754561473178871138759497298640572595038838502694792208348460175752821065505613263478733666383721573090723620904117876365649752371190330000053079958891069810983010785890085422152051995377137445434366921833685409290611033718044239238647130075905966720577408693338235086905009105603488155373250172170107390572893442544816901740239974048285945807859952278433197129973246604724903271565431752975216253477322505172234052994552485031985307759382849270342838040536690778397239518406360568132331605900940097501760023004004777467170541303835012126645557415287829701211633707469335080346604669512668580461922591762155129540611593107735557621004387187219609698781779419739277051340312210285913952763042979897916063523770412894748742607375347617186025647888588371508358417529597547372558376827060996500256302516987394876787461489366925175888548340214680639371799178761720645940872957081093697135770728549689273770129916724540331188118462980187267185931394491840989232094972691700178473642933899259858445179716920645858916072454105437865154306653694824511491299774291434501137317865017061389606108723946748522567632058877089777623146938188491816467322122326615068756732674034704942370916954578247967101898827401630676306861667158873553825281088140522734003919096829357674839885554561808435502849289788756861809125758754334880430212192379688854535215954985639999645599890116978346382866627205940183637526195640214452326855816064870890992613675657429759693161295026322322826306961868364854141870489523748803819879702246460638618327889276623611284764224184274332830990514778864595550844003384864038502986633712664774277260621774523495641608657027464177591297970138549983081209159292978369100736078905128109530996851579727349876456872040043907504493581679418829791981219130572621275091946342298265714785450448359842094437680019996542797100696352316191281509847250034918591127369340027117642542130443886846241902334144540124468718696834251810169787974520564968783440679339597394270900787031878208526293054005860788816635290760401570170124385627608939250095072168245659324282693522739940536892477375362760883612617879685258457097767132688125192841606501189369304006066287490995712204361277317688210339929322629516246585058722045721332558222617286907638589571042808527217129864691516301880915151372324387926817996374424274076571803116745432248405758342906359021108229254409464114216074829364150101780159496595853076241876758832455657570694384946745351389898664005465124280704791456539938385561205914018654433308296594312168541171015217475153874942188738205621857554128285961771067904246078582696075767040584121012165681169439535586321335102110039289844580922921105595106842651381563548478685948717913375568090191952442596261912143672820992485544573537950119881862759786464893732698314921171510647482407068034598040139912598812298722425739108323951312690484298089124001146076259930260813611914912402974116475312109382813506522569723508343608808345033088798341809632326751717124729618710215312219699476905660306800239034996186012049092713574250482262768659066346410727298415103459275180455662119810378996078561230177421274082480123590938419261186788605573670550100930170989294577608538724788209458864571795540810460198802257592940483565949358875748093486013817617836802624185991718690990160682255826203337519716779961062368363862293062721347740158704157643397200929196364567783508494395425849369770953855977387405233900957378142629397773528228723122816310485378579843707675634540879283792032385063901377486871288367169147219252794287244099884969130412590826810272770254488171773413090104881285012362121710028048437723891119000128661288330916498111042459545279250021872211689440901673476425328072148424632436114235516421526316427253102424008495946263980107356163761823859893119708974299213178753814571447912741449234864088493260558397996863062165304881781670213472371742761993568532194186234314608565595799511466135706683856749675311053794456667543648523362078990858192809366622693813833916453972061065935078803153266259098513347705166341083256900492463791304784909773340032548941982158139415422019395776730530965310452973090590809255636361938384307397144842515042503087888576265193883801422261049439811058430777491032923167667938007458479710035837197099807678576670356480487710521964744748147072917999625512907623545040141000193334597300979029452627801036275480066331719921811807195931241676796974560103955919639150063844413633383372144151082848027113387930499131801621132568663737611672305708207227190916229968164271708665792822728845950144718224442291963498856101166480768529593785719165307952746560071701286473295788383415089238703228110890973161869926045984553089152986822569701112698970180632368912992823568905609367765225707817082803569646010091881526952882530389306680828745883977508609994203071778163526376146945082727410165432316637605235947359248172171384419052975801328019346827440742673293554012708344288728288848499939728087985457597838463439423594799231753509878607314879207767416668162835148377966149867202128682949292549374699615036021059814043268379696343172865099162925524722695309676715310860877945476368449700271602980345744633277683764372202654283299093482051272455067272178429344461723345878198968961256920968661996402344438378392497821451832516031396745627109475752217831508991404589792711343250491513995008790409374543302336737182240486679001723583981125054373196288486590851603938421257930276566471937226899374617178754774547173108979523711595243492558359351768871067484621854798567563466739880326788245007637467680564658108124971961072452754485607320130619105702502004162798259889745258134216900113084014535122914545787806807359145366909126335960092854001266774887534105601690256679904545290933258915295900360739293215117450141026659173085309902334687833240562837601143559438490975697680771570725768458925677007182537228578655895957929768668001203224228319647981466183981343558178786465468800909579991189900519690276628583257680409993259514513678444362966212332571588618193752866318344153744978501103613006719493865093319425230665200202275954931936132535474092252390297175166189147299207662652171823958111050463272229562659974037968291084050869777564040310323352657683652752243137307958172186569261042011631651313146445997749873600727451134000979010455641691717824341614448701439451699634117786635152207431051928863021602059968805768953368633793728096229957795004286669046955351355981480002519395892301125345810404312552389939689218276529404523088263896637741474521842354417140335340344460579712030243462553832663419247143221536693415056455144260606719286867923515729426122131346041262396206220483520471469726416387152600948926071276081326468866631153222544484623256438600556078643709739073717986236299547938440649850327482393436993010389822942325030615057174871331996294582245414743568655579848170210439407311653847456284026168500738221180676573206413946975788402163109065672826406226793812540017870489880098418715768143759841750368261023945130073439891041735017213088698195260292160284414499146005993127789311939396123691877587067009016612046704843025515877668675849446232566959009107589516043666208936441325921996762852444247214196663415264117428521927231906566898478646895869789600444075222747764310554211630768981796293353246013990402222394303250350389176998635480233043323764281284840065118712835657390279771833318347850754063400323242080582125835416228457791129403911677452641641569866233194544522980164785184758263062152863201003159172989186767783818093518125595419976877504658327427895908406461800940958520446112274403906640882414424755981992601272541195289493359438763383109655136262625369640308803773086596273566640459123480811886968341871737310644896531690201189695435855754882954124847296061850004452356419830887962887114803685766601663083145818675583944387182059764185821550811664430761402714577493340086246600102964360942352467840112469691536697231221371253517664281847135761745090834069958746060337136158611991913621348629624096668433705276704858502670090955544625445717300724342571658404898252722012121696918543172272406126476615540175799624345643180594830505871353028196654020520007188749813471319163160916153492169976698020127875979239443220124277987594687876437561751174666503669054053178215971170514901150107202340095374265062432923254110151223567386529936274131808128949659270920328309760536895212571064873854039170040866326095135240486563238791028839526592717541592068654503180763535260888565674512843470431066274817514856401165019841695654499157463281572078636734422461557823290922394834465321272510930277704532138528913418010208134993528507126988586418607880681850449878232901695557130326013725908003490525729353055098394461109066749438621512761081680273810851310433926816132470312643421393863394174275149595516137148294650992794691651897399406479552964047404194486722015570930335753629872470070618407650739108771927699797252651464492707096726290157673069513291698901631631573665086355348566656476888074740561407056101493904862513558576021284530148012538210473431633313933163951719543430164736420280811052397382025015815034276491820849069998707461111409234362837577024827767282886208446208027458435169538404193604320295068360168215210665846733843096075514642524087540622745259811589403997090577041642107078785775106823452427878755034300127719327351366320265235466965108086717784103077138226049225604701503760703105643348346161560137458020107491696695837351409264623718704611933837650689732547978369171568899121148991452918379296605642900470149328306811305175189704100692832999870385365485205148567909715661835791718477628219748592861559661468260583492655648798346430379675052091064116596090251252768196261556719429319232996525274764414883861065203795265607962510859380908398674479619655810160843276676738260313082247288567551256088437372606129508492015537373375546220605766211357925904272644524901169422323434604228597212257597299486700395309840429644226724225362785193718558093027936882912671029291443515302949736256802736471342814829911427644536141155182943828200574934459482984558720695260945901096719714316366196876932414914439396641639410577242735558987969733106301883625596060021818973159691442636156138251482481566322063544990833913261461345705763151852373388068403465912760628447538895095309464622654205826713674003182250184097384466579640803380535942628357282228640816601421090664692092375396714360921397088860019765165214797063049047589546570313567260136235393765975605743611713654153830131189809659332384176709685955039759127992590598186018599322678618201269548187028659635616273297972016896992081782738000474881763054845051839481306144385159691359769786837385799880924922202072969296315084081355673618648732659208094271125826473274848415900467928543885548592805899924722594945754245321711002687963571166247739170454334349721269692269207735495447155737051418877767377260829157800069196880345411097667673500818340585834890649678789098793030322530584377101450067977231754352211136697564791516223179856626162335671375394146855890378779702887652201832266713839342888418033697122293575299693799204829184773747512475093074596290316815903321622228806154167457395799963375729453666032019151218144096970994669582156215370100187307198281509692131833852723895729527199724004768301330278899999412752183597482713035081697945511746640230363894816017916599774255909698432058017344497642996417226374712301122649271681408053610266462914432342436270188518026956335667962171580806432094430651901786046165033327426025273297467514038166765159910390206444473107224291181225964124425160186255198327513979233554525154378491805158967812119219686936717457771188713657684914482942205032865017690823370702655080125535493694795653583703011143577575164698834149802983358435641202229815736741892928112490036661193821699805300603116063360523036332755032831592375200645103262936473538332913546742375117039072607586711574112928657378058503851383343113663391865718707642405176889343495855739476874203538551254110698340818465782743727283178676031136173837597614581495763715088376704048294285315172618457495838742513559248593133508618397184962778291152378429250854101280066866793310106359513857349824813814003975101619170801655991308913414140646989404227506094728160747485155511142326193156441119331817813531681553450739881235999688035626619810084119470145887908806546116851038811074484720631113058688510219831429477012364259190127647847513920762919701720296075533941249621200038703301508734280377491801051189793399201614573295247297641595363149715859850796482611119815690768057923545998384889281606584548864202270023596726862884796666802751467020888002765044464670743164482902456494266523523522168454385476235945106748759621784302040385618634844155760102351451084300246840772870445120559140223331137865651197606455047032519905586807207835684050155122999910170131728920372250031515060784607088311994811507605963772263327422950927607023550861660109365909173354037900199069143498768387053820698080198582316434520372755142733811796665353451807016684154003279413326379049382360185985146924589432386981136388574017594666629844653240025312397999827468908114659283317713455703003688934305166878599096838932667472446298672982872881255943197888133415093610473132059076399760332091613048258916071921244366427071543474341871843531968493499747689131265483518650716400819054203643594853191618332577826102020520235148020986169885427422065716356656169448516387189802633138343950747530579027627000617172210025275867191911135533903054215445200416918865727148427971946041164202469491475886572224092143532538815212595230706011315289061252393334944350138906666896656303826951764456135059446976514160170707122172152537062249704024456593549556228952817798437758429022075796971756255902877231272606186112433649632063547070428182531999419509486344875027457212104415345766723385981166606223883252575144516013474700319655802613259297911037921158792494822453058986527797854494019116695774827296225887473196885669474670814784399041270542573239768006036571022390842050858895265433840905387584094996299998327316570652712493536723440151531457333715939656858115072760743299393227282153820918772570014512041744985075263490865929234666408450434756053594998709221097556176732116834822769584166201579900694770481299563205939363490217414762259214975785142939048694913738151783828607547929549863137542625060322643905389227675898666640250396315503358140410028796770171180422302846958532279632902944081591470781241875429453314694938954765094429683265081763416458253815226006442288173643754658345350852817810106793631125883921518620036202218188120288205996427604363554069816623996491258062197171007227526161629836866420552678425410314117968162549232087333836626136905906182635310174130150558778842593759523358934428603935025346615490704090310763924366167234956148107815587352196011461144027929868279900426086099814341599025235113380745888496195414688994481601394574733212887865732779820985082792517896453435544696916354762913542780765511667481949895499285944508204923007721964885193019610458063321135838899693582538254870621142113708026535266719304213622788580847743504269645041703357728947166686341524483858827052441230947257567755156104836715945137669754200036689909606565850299831144811074804966314030941398311904902342327874821581203654513895686656471933023983000691056738471260949992740196901564239372272290069953393286818087612524206867143564916653351369005872571363860138680108650370453153373907780210274831556175126619746509574390284419780489552173063976225492011699981311261744574154294709470512930743222087373183085600958395126202719809361716266140153788552478868611495363696884446975793935599592678047725691243532027900788590474135217116799392132915599741473892482151741439750675515613201283331366559089322407169721172923587808722912070546565258162842323282662813283014955951038759249803670719237060767589224231124823616693283127168966391131862332023720160729129899625211607191030969542422403067672943131758051895919712628195398088358484966898033114953510214000180019252659233332971590351584896058663662204387837307954279874441593631015134399377054049819513596101226843746985508474072441640083592866415591742038238547841248191919191538332645300353210382887623986700374392461863518601093742999528107016964028698684891851157244458772719133452861811212171622869477836045463957632216835341074509676966414389560577328226833966422538965112547710424114102765187167375693805856388918832285890030024658410956802981390259510862723964642770089359455005991690691282790056093144067597610590422146374459032097167708544820591082248394269890880898562611835483824976169680631492686653160174129188044955775409350198679419451146997978087132012438963797156023708080756656265940650473888221995379441625444545395786041557749580234868003568706329860329146018696659735877272955089875632753596521899932117998749485791297500375194859901783305660913585359269256589638990286758473333470654675176233913661104409139941859406385162954707330575594173576388227220342818365125398192033544390699233102457604271462742094541398501859332250972014762446298629915279744438651328915301418655679034255709148136022795967770716626519666116013090097180364523649734372915255047612044611378187834881496388785622438736069622900924560611236708115938310374576942735115874476581544781948375608975121373184900690423185501690532405339315899904469533591275252225579454493993528703077640090616193282825139180773254271890401682266220174180488966646692422525138203386227809533766117876193106959228765090039358931728962041424273967186603533801502846668676676600379132352902513068995708942616736918716400304621703421393308270117660399376442696768961432462648759323926811888017725413706337459289146387898606042469995066422535822951607999565419865471750113039878861586717535157769263095288307252806869684523293171667858564174655243132312569609709672199531027532390221460905652540751684268994516276395822777582178866769534967494264401911716007675406396085197072675309232408740834596429590896373296473316406169467684568418550324277926318783038618485578537097304518966678109493290332254034416579181798877880622827008684087943804394351232412807885154360263971441911748717509740117319767753819208364657572991291827267334709848006802600872393720603799589716621179497953189801513497649467772343258725943232605291388507305275040144503482261815560140547521395452762008199481172782640300275735795744794768982389608602953373729270852407120116744277654572094888435391175786535041133958210072476059099636465024901370883662182668326418503084782759106397222130470345423227451294016640077069248511276728277682815392778771348642997946702964627579306031594851520033308269586117680448572078064398918786822819970211684751889071119217716143929696421221675142582471213635125913915602893456268096088993134860019931828315541325334529616030266715909021996310509496435856466023966030664244065554344183799941515155857832262567090310513207085600445907214473189086698162117839521817271707295295650795995551992283525196061356978178472321642913030918442017517346852543250770151976025838506590698178056619124974328828053507863579771833669010225314006636283944008096328538799198656486401191015836224284392695300135650948770255031063552840089595144219520326276487528139023603524324096997212200740949701696915491761689786445917947975061500335748309434477236137322501528687482406696333436688301793069167538762516079800220761403361169943225539660099965431189003664448524549603434148330927150269245375438063046238283218280812657685156109754543250906627910280579726271784278566996401657235265112953672767732117891639537082960105400246387496514083133748171354791079806765593351256582227432250289822507572117747314261527824956650061587428116941771431882345337124362065923931033441075929998143671445419755868512953412616947775452146965271032301733093398048392111869425021169353352828474779446123428183772916015680008868922381198780364940214453480539688303223118099988132387007782000938358849793414599676454475566994991915951252625160767211454764801150229795836747170230506724425249522668527455820608449987697352025255967024486323542988553186491291102494708825011600922652579125305068909407744652434029648107008856929940026273883422292149283054710953542798105732728563173550970834825488627635187946595750353419732398386193358849499442074682446266408972751632822294453565254402826003268576987724559833274659779825375494442319791264851515268654032488185740564451132855460777338248222483404515979614544038357998493755680876583392991981142318333250829713043702920740736917595123068399570375461119857802384683035678851261763305837097947914773155474653901038902508049792959163238703768433486650010406007958243343749650222394441106859802407194745358959071191736120149862538551967154685444374608969667701704601243494913141911746481464011249677972394600670942838401580361225242146585856441687265223991548673709429187744322890244867051557508563502498725563755071814502365261209389491308160166432007169057996642346040315692295055624610395818588339657070472693136400399665555628246745798200087810056769828373138786735763047107671462313519791824299374138167143062074493438796783097723667519704767508986681575631994105796975952237343127407554758412184774150403024447236858311297858094253600649827312945610186510383053747202596170100089323834794810209154633706783095672103688599318785202397265399417203408196586837059772463712269159371494305085688923861380349167980277524509524933041992071385793784332775131835170842670699111316437978653989394793390016487642062283642807602720809939773621233337529283489008836893542924956988006056980779297795583205269799388704030834644016792544539276272993259948976915514328691766306241391318644203342299773317489840570700787529320687317632682952894409679850110628120375910501591504552282139085606405769710902499581103262106370316170084191316028714343368044318170755191657383007372366018766671707481496403091912442772165831539258289994345788265563998618862726485215331882071470966835098998904117601512885525590593811128965111925414404186995932022815194207594285915467236109730896648871823581739936648372464144518572507228649100531319841686231145828592783894641391854915261107417283733268691993608571885427660617276582863590835851646618591512287182475314807133004292717065879911209107127177276738075927848551047355709917085483726706638911458817495640443659935578267666668695964863065154235177583335339340059397146112851963849175341103927908110462385109494550507414285266938888617889949833507410422259245408998553651943700218659022400386960875174527309956078791132886170841114460665800853985842963789329269738564551591889070971856937147109087754116942002033066192308224762197320496607735646443911590152609533880071253442405929697758431408178937948007612617686920061580137381558093453281453738205390181275955066388653595653952755591613038330630135566475747936848762429000121729813266080678575235186856271115518765705381068281434571165070773983158374408941741108708547058903714204206614127127232238032286026838491965984964857839477520276735979271106902533693615480569632069550710764245733756227656670428080139439457930987525044199901083195425089616048410918681390718340742825359725548638280607509651853919074452410822624718309121414119980839182151220417870753229531714640329231920686223200016391682343352753063641835146735363734938760965040802773119725536550052841253748400186557088637002269298065850495305245102954124419963188915314111337210031169398708903254517681242492383953394379200322785969608423336334855768203412847932731764373320393354132790577650811394024981856102538893983274883473314931347816934415267174218443764430320786962033165672015942398487739408972088691466147948999507519314848430561228125591537273964014576297440096207692317662372249073778969909929922747750814472182616829554263768921304664304705601331266456022300177419567431446023259234058930085273371191144533995425530849629263472379832075568172873145239708489968763466365951039714254798800585915149444935269039014121959097682794718340564116483510955672550413551309382221703965861385644341605134190111385419374997735181311424128904114093771758781457186664933675111122797660524118780480494526530896805116926129907248480881042351217232917906527780047935338166825568720138122469568686713345060915987083868162058695169476258411664809444233153314408132394078745226361407584027481262101383208096263497664148670029882257887744132326103529399734524635443224254089030377496641744738258169471437164663854521032552730735375553928795696874798490276609891504098013622658009761718743379736129490818356041009093304716767231008970529421964701545548000035695332562921517941249552767626061807391572281661976389601360915569014365054194977550776393853836538791519766394163543931916695070404511829161589869359170741521030595928685578666988887863051969173191448378267853658215158860156875382045227785051548624432545260314029210433989315245887257498188029952971121538420324816721437630904433903642564514878324712283588441741275365919644962343160354067365873165170884160881595313735427762863168026518404392986950591601841790988334716570420629420136443658162608971739679021154111103668775976724486377772714729633490353988886032691017325105660577589916438010541315766632837293607458039636962221264270075445617523677123245371259715738719404790914654581358029854276851393681920959939547066799920359129801922410380249281578484102747697491489457124461209821462937936679436717577300291221763512641853689463375032310711386831805964929665210278448388942718278048418569438263776077218807745968939693515167485679647854181366692212215375537260924272920740839744811302712486827800587816862221604807086114310131947810122843439750082478094124965031093556886315885445502022097653776934814020689173466842408432070993961925561726554888649488070503423444870818622274236464677822352498653205956266303405668109053681330012600208718077810310774225258042213769639432372562132921854698097532944761384527740657913300129286686681156748100365897414287093754109713946331297929385804617993111799790500994414873628541610518761051165150572320689197230698928587507754334979685745303833857203217856840312199194583193857498818995873853668273038707027886267858685286693558509102236881306100665270735860043740721016562151434221197804241297656855055967036015760141710466461697776280483968781310910259775300777061035781337828949714782392266570650851020823856402247419171765613142403025569844804810887673542728282790282025806205911623453510996603477416860008059747528317389754084906208180146460385352573388177939613406892710367965983429115675979925302805636815473211088804766997245727425315947336000589884192535384829912607628535869930385797536326999191209441576130954005210058481517454685743106546084574243109353654833626510507207142552939020715577997333933996700565793917499233457246099941136459948800599904992241886203274405626235032381538831237214547747291651535686628833687047786236741443578321137506079019974779157360435525831378080369880331506116116344213711046495600722324334053244583925402959821533270007508731099553765362655975360836629851193678012848471000698305144766883498216127494503997585397118923425574045254292445312863873723423131870140751722010542497654147761741500363536824801132019667744994126422447752891700665312923396434120673807605571149906638955183853682053207910737790857293449879536064444819166989515472564759199990172639186747502922602231263814774541164256790389827603737134527512964474473036355424353041804235292710666370784729679899399178996571714466479295533165006996737237267526612987414089175591864867480569370570576102098458947780249266582254382505842208876877586433401469453207054524297261896966613444632110227075415081535134221779147782594481475585440412199933037871418591544856668795400358636118220817425958308447586624673197452953200516918491725628670512803716332538817670070400106519662448660557769870505760142401112418765007444697471721751177854074288954174464630004002178702723189933319236640781704522673099601554573569621345399513759082880197208934595965675791350744875932700672703231254012287332936104148499797976924614578153855861236244664453368231946038894944751742083905464639081786569419228395107756413034313067671258565107596829667898846737947099333970618387469346270093118068597671034933597576323854557207022397158501945268741941169368107476169887028575207269762466787229639983045889847972049047982683194032943625248077993718090021098146974185994014955645606331110322730170369598923982650363292126587730770124701397361345055503610181670923882798343618745904639368531570417045039769237564314371548303683704719727413953150117502165443731202235694251462789518415159522620136151131363463888159921538922692431984888637398891964600768393660477157355509490769304300252636925630202929985044880535256517567446819203189481638820376945153939830055564177727606499033770701580723149352320591821191360901117897384810232057591569882304330718164898850680839447860498091401014889870808598460317497825415189647507793344447261102736509682966527372978565808039934914939376345613753708158262082518577711783057032264630739763924698963429718225639120833155470100979468966922539239185506650070217279941833519969932114244239225563778874032446338830815175905426616669913336198373847511260379264067610745921363869401105820724157377612597183038448103861102392296720740930012913931267558045199172375960042482663624029152816745153818223774773660924157169580325213087129919808054396745277797288646445367885117461884655343588682740620090679320808158661688860413021689714591452877339951101802599272293735342782791828794918213845340197101961959734051994332044386956739499335098593016409062330309330801832343597106188954913149444201052362091048385548319167835327593312435348027618674718811447868032273544628717944688325106585692419845480470328144434491300031133281664237302165283332122374476880827425833844448072775871315932596733649197054935460379334078836339556675422117097316182739186545277653014822636430400301566383664641577595604715187943556038653691362054938911643982537197563709422446918787880240026915000649106551178105046482445440213919110611573567675121236188048398326372625337317908708798529793508995026245141448998593375897989555534638058585070841864247632138919993829583265792612319810306506178492652752252997412299987191462941741862866074505842062677437011577559005970971098943451565966943114626731798466916433017114987520321944171597978221660056108124765003267480170531943982175996622561976234422691406041691336545636214865754337121938309084096385017462818646640234763214275750653621844230532107487805535996700738949437163644424852522390381230697821195420443270879747881407485885919729004015579357566048208061454207889819444927386051997677798445944570958152213550954548834053685531652597319016362286463525632114813819950610680579084266001526190480577945400820146512964265581453504354740753133528921773818570805288768622018791366598638973069630837083953505749583024606748098400450981147890371448217640055632008890974005026234223084885872185295746664975409805334852178020704869803093232195397597202415884174571322554033210153835525178643169019443809248199542103830727436349898682708385479540758290628532373189275707062269655200093667691887717524094335611530907006865709528684633187629567953476228379805335872272235151318909689144865409884265202894180444514253170150442251965544591191880026909594228060112791465410964382420900812927307603689189944035905849558022013695215215970931427758017643728226640531244149934217183935965899580391564058635672871068872040108374165589341449325298601625846675837354877539909941091856414441543188473577197901806126218727091922747784986119034840453518478402206493367825502211230061598547807709563929095347277154963558451998838413241178536901533043152394060182131284915688984481610958396879505393417036191868577427731137982715974970520242259169410594084322340499240400319201607946524299000907165139434265718136607562941345828548109183031568068975721251243054408607118938640232917950980332092290443179645157281931758188334112267088603215226505561161284823679962863957209690441147556652363352090794178306239902607623362377676491105722658791034626580331364840199883326747468502426361747989842010913447143546274807337485157426946706373453645140969855727372333125991724091369907501529079864614659592265461479164387729046836279050484508288714069365407114298251675272762761715968689373247184988560079685002965896771407715576161005144312407438501095058762243410609940161539529195087751000669825022364440237435779268414551627393060829005134109887828391587032920143406843757184300960996427590278160721534475072947561050811362273990091676962906304753784013538925524929172698547781790839815130058490491137175467638088709203699772335382419826188406716846779984740626160790567953361277791174141323692543463870695113370319542442568796630068551635055324496697827304978401733169728166021232659874658390429494367727467404203046914713538215452176461147762129120112394627268435544068018600174178346973956977076818439873576589967879041638761640607403834213988878925064575525495820882146459603882433877920574105160660630125867729761623696782247995377194909133258850587067697452900560576013143380832056877378614727640921638347755271213791299805880713565754394051631943644011307986322896201269598213502791084535786414534401272011753375499710842443662870448761588608475105800684499943999151941972975040477928110835989067770571683493891628055462305625873760155555334925204117918475533822880675094338874745107243119022514649281627712470131046483963615856703604953984169091922638173919819963085297157106966584305067189041599787132781842768788089059566553640030155080881492671709995284135113774349888223389124626021146520944560626769848359484559773879103209109495638971005324844873385312274777144337246282728825374990325457389312793181054972768162046710702883110046513581540056435260626389995027404407912077112193737719985629141459536835588833153146262332899481882314557550902985326873374677697936553942411615402328103528917832585107187825061082385366673650454674894250091059314152126135780894842268804237616252653471569540561354446629184546297262768426205494612281739749122482591713487179793273060856760830460851536181390346603965976258609832260402160065834477880663183961664171704235586783935915816229266988710316567264758581029553081689053342050422250348944082238056900043854431521889574717216054331103977728904863144360377822773677536975937107037187926135558162357079154955927824925287608796976428437745723722053240020049448768707467692655392265382411150318414351006971741160532812411537289181560909244956975562294078705679800211222790482475110369735111437817594052671658627464202998668890024713352775924539780279004367897851945918326714585897830558250877905463062963076487362465237272056650294310801077525846841849636873963862598603917607649638164316185537599386061343292851655096483591836813872733321565304778584991996447853282196214718458484719772676464363298712996008353877923592633233442895885990168048677932465728201930016988976886925865939581279383952661103709635325837055390877650232800624968553099811879367916084558482487033397562818383927596289964054999120111117032017013264743319477961337658251944105667466039315705092828623824155428069482067679062838166277740025655292092270639736801443813216443751263950837510451108019751749427346249096150160445914612279744151614802493605992755374794450730258149190666258688167559196948022660822845401747020275232867786435582475857407420124300133702690565771089917257824826930302554094990860984986132726178647758860881908368528103954255959413401699034091841961076950708667782719195579569016852667469407172835500090951048369463492918110295982528407585646552103738285636734894342884088593772329150445806477164131133012551137848635763573051915764309256989489603191295950528213010211569651778224315501250686043040786402348820060705897214287204670719988431106373536134962813005650415955085118191372002255409946032463127454750037703667666497472721470053378071538072667777495391599975784195273650328699099889010809260730226715993555386239191234446630492030175121805519507775682392411653188545395709152783016114639535642464235849405171426604154733595483708350469383272083862516673948961713940155792464065001190826438254581765843554610072673822193666387877359329928025690833106568041609757802383742495642239890049164477764252856470372404656977149173882768077801704360233224022292442345958431167527886062466254960275025710696593480465168300683499251044852098426286396993640319479342056547250964494917636214078248330187105538001140126722908191337884369887450548827209782354321273899471378065533972653804919414983290447399018477983916609216438136176165571549475775667268907430821352322343655359684316572163014192041203841141879870950242841210607434955739303202415685263624745689996130569852672658469664287050844882116180526241769825355473369208530344760702371679533373403015450512375902139310511625599514828997334115218910542524135753789127958151091250949548190175118419190283992075849037100424174850080430786749231595110994273505712433832132399967911524182659229637152429227032727282027635113976366447882865720777359487429475076501835078421476231740989793505862461855463595680874677961973323769934700973979255226407045475601479106378644377018602938129616664810705205017747333600493001192964281690682383587881145876277771232818950481784490883331040081346513890560799399764553325020818956570052262371347483717238472295589004332256107510762875361794394972789555824386488220385892076901723542334771226414867887155594669644428653006636669443514177880163721646026221035277673672543198643426284191288389957244087427551430942707912002242007893850939551219058213465569185083639037450141974482417426772905916710062727173563051070002565824306682186423546996118827826573522586219575225634553932066928018562737195746381463578365065871272673286568576968209060705377444730114157301679156325424271197999390481496099682789899650983674215226538860505116285070806166103585064148149009794544866639369238025836407622462826621761007514490983663968439173896875863064615691307905662470993555634333499309167444988770172907160961018040278344092626694798024596113784541841565157940576685103305369901512963379726799213748400279312323813810131547237416223519901680807279666342802966531050171678177181221955513232528070509339696316683262389910554220385961592504168412472094303789231362952847880569465077988760856052387161666829994737013752010080349332363942219188654278543648373003370113128680522830201817023270497355299192121608199488840032966280886121958158134270653221037667009450676558617993539358174929685378021674058279560212571844915765447013969391360195600253387667993997204862932404478074255981831431722436415428802576958393651216360158481884983420442782613499646472992812881438365411672601407642229237989740557985001720982466164963797828216984538336847431567451297908841376735024034920264324112784380742640009292332634760409282043978386140251436241441087738607153247658405386261800679236568891154068073529574788889776427013897599219022491246872718154926307449507114686591927352824409346790370986990202132647870002595398133903819051062655899859402360360548787022234648304326223778077695343749394587816027821654367880710105925028138479247579041873102783258137347078973181995609463641987893414420712977991769309300866492691243181842291548728827928372988455954587986053027344286273505830032881246779639655228990896706673824827312150869775869573074065641263001545344132580468509952068244917335680381867604143991701704190852473783592459073723766521902031173917224754382799875784063917757827152522139623251953787500955320409850090155096937537562545207135179673554871948244411036824412602078425652616868266280589886723680065522402734096322147354863954549940886713084443467944443491413206406731411857545578756903168155081332116172912891358577423797335624173083431118808802276785316167550291874057284740134553099688094833635215093911705305291570117132439094820743095780015552098512767913677337369717945646289302993566836051168833200622078015266099453012447731919427070482775862794992849761126801938398462908528754406104175637204255378022542154678492058529419350341251430275711674864671002225586571758522428069566537896234784341058739421774003049745955020297742524433880350876126126548799017108126356427804224765294893626480733654786557620695557392171121850210586835936920626863527531004493081088496725842282989903805498845404350465247866680548138737167901740396464678720906786706990119691425960042643918112687774245189720913825220636132186342092662658017443283926469040197943523802382621145261688399995007288100617422400104760698365833557534787920235244460897120570004340252784643649755866625511973552567447649790572187400830105160113359600699169845542844347822438735755123143491923460281641842478034432655357283828639000611151404670052566641375808431557143172474867879294921231179064016118829435649227849705371592826633321078851626875610556042461527622229014726169303091268433273375309760631025823845585355566921524554953375365770588549602385372393524067214383225657650579355676984338149488808602292051863333140572853814968762910024586371704399767196691367795121985808310396720748326469968143787077960719305290159238125763956418275949147850727822978962943712540240312107430187384250507900973139963812152338955908556079969811065022677476081056777445645320112666266234356938831986109679478873604299552094306408470848426981465575367872265282186598178522714025244458497819540572912669454743614624337512967626156413018903608501800739844266405611327182527621031030955953422642411448232892061184923264711067780828109558156131312058390771592282777303022165320641176215887844484053311146287825544505336782907075739968696555390444057475584788834869397753904889790217991437982220544087001987174116301080621820954168336754374805120305131694183420874427299428896432093737836998555502495278255423090776724578908005138200002801809472714788300175497170436527084611244110313212949535227537122279165616262567043536695946805892331606477797041772251203328015144322632130693080280687065851563451030522194498570525665802509783321060467578246791874068445906105853470702266554675071419093874962620417141112214017739603121870663632786084372922288535165322747228039369058268321834359602479422716365569944639574331546206675332416348033820693158916910886438128856730394870706283051072936813109060875124149932830856411634817993924524237610741589200364997720890045510529788891463268703261233284507003231728778685156051207484217641196965569326036070829899776466516358967258540050328639224239382448155631643952674009191697811542855407996634216600569233597070922191167577318344295016142805371510603892281295800358515562793322788962490786698310517039918438419158547743122610806695407856019928489848983157632159642982884209168538286984219549544173537943709875086712404709675803322709309583521055109810270609328746249243472898834965246843705408114793925045867456166034617815524133297885448766927250990619366352285414318833291366547809370359843631156425116502693299408771687871216698373398004808713739202382324563546409077820512708694207263820408491314035791476039748662560615318700935371652095851421123931337686891025877316662097453488714503060478773659839691184127547194482935509448725105188239684236427847554281137958848513627784473036513305062655748964905585225016016217900629525024046293243450061509958744068643418210581091942284012893225725289117367978481878641187867579345903456945736789881303780171994346459454823797499478487820653470245527439567891367448938805667092421194408702372373760557958247935247897855055033922703769564598137299572865673280963966193182626210325705914761011852608293421895529206022760796698034346634965386894025708193716792251524018141281618290223424519091083978708666220883531997658053002597223717804223223021244549058130631979297849190460934138245516446968454529042472596257827188783283944595597806068217350906214387595129511914374883598070857085598541138054247448047074842122410699147115261199283099116570852946039438318395728434656886384008383989105346963386643496845143285198879826222340329608163378243923226854292545029787329089085300375532439157408447240731134243051081791170075708646302102344969859680871621204397254854738168047121274537671819433509432376192541143328294959707935767577553896875208821438293540203558765160500812201699014412927292422477000394566070383261794390339491701440596476392260654556424773843668622743238157981988810116645430614647268515705848387290189624710627712516737704573144628617406451061801980050653530970073415827393465240555375949386363835556361644715497598194772840088225914311854997570983169908054175585659477930115591009453226405624680693738164713946112191107627083600512863201373232350853105407383913602528303835285709764892174423348172135388170408417348651702251767555534132846164018149592444605378771633120778516384194539970245625496864382867811631639369539471617527390791983530089479140428723982729321234621862130342574800349647933805607045828709470216644759971862378302896467880642131486894554568142818756971975579850292646042108171973441328856738166170665048770853890838405490444922319182313831637371277259498048779641396319378560793430066904999075878560474654459879452938304461874805489382225954310474688498390872418943875130800521486848541844478484875134662915429871714303104917741623211783847319332703229122459562436854564605237880927456533298970406668859546855198502770717478695277319971183943303638759756693945899256589025483698801903733882193561107337578155664689372440461507582771301048878972715782826587654979413449155892821290847073029817899428343206178113514012503979345381904470277343397023390168943869011486017620890357686949406030381870011202520939201048845308732745371136392967205445349344551716904159624704257807351166723190168859151378778588264972067456097357158499049605931425283474532949631333067601893380624939750995112895592999229373451399962106658205750536427417413316261692949101371199086974633477788054523373051085504122149946404558120847315091386375772860386871285764768756496479684525464526553393369232610266682388469919363003288583918722761447356918427402442432926488285149110462032690491646394212556476459369026292659330978978355352928848567677945323823839293481570942415557527946051596025687467712918239818194140628334139093748349408258484837238033273569570064293726260732751979964450366128737264420821112892901622515021976085237429684994710726101918942795793300272196015445192205762862232572611614126792998225547248531676328206547879228058403667868392859012273848471465362603743246946904302325147925933442913980240533948372105042241350877547090697721631972456403448856469550135453890649100366791262899385748172811864042169719984910948322420815374595393486196611068461592875246364282100414208030483167152811892144066124057535835918929214409545370670334714782704520587535437269881589933150140285240779727544736753832025579487187235730263521833226968515519669222741881010980611910121131149213058168662338379797780607610248828617792676018912949258627654961409227493037580534803948005475585089773835017167591381685947664739630309941707779055898935312000080356109983132174032743845825876908645166817137634698692275917683041479360230404798459737939487829839143482601953979321610859860146017285347587633037006248651102027506352149707324173073570494272132762792284564966110147095783625657491296241044105302511635438975816078084138433673989268840417396803141133333589063774371271239976788744275372326929814623582734621843612746536959275971556842849478838387479334472105210286853035422941404141849304778935209721214871245111407190802077008316623236404323152024902640975677969202209423258076546309387560518279586758026288245726679690457605705630747718333356700202831981519766884326710049081467087867310504958922427758400378395606767256286033962147517074476279354043623864897336688720111262651133705154216288071640103517027442382981288583329382304451290797442607687733523569056779807067076309428938279916477839930121457912831088675306355475260875630076784965836389905199652132715491156389567579357824504463650616308657955664789922188177599534268264932747607413724123433530604789654865920538706077394456510488666835895068814461251467006148173555299606874641452792125241951551169338906926257691532518290589476610247429156237583538182040658654152174428837876252716199503021822183004402070033131245213728662737016192979161160261453062232398949052932739716085719288217190101772004447842110164200472407409166117000462644561890064411765878370763966580057832119660842571573418619756775694418010678597994397308379830099382052448646890805000659555401120767213719863044013787494377314093757400204158521114824732524173498369301206412024997628797436938584831865471026422009465552622118180379769318096438854132885410650835059455588222359172224729710286194866705554285552125954461342010323988085131993532273895859210702524568014572319247878794297935984906560397983982009174497991007397613029797463975801449849608051480454507357039145368500016505264718366307174812327491573582231323624732417600121137589184011268395496828072017315880121859168147399418885563093147014081251933649462474979950383736068319131302365567397488771775282727753050769625308427320098095595836096007444160503180484331870664173307527368432662405642267495751292762832132535354473112649873256208710698957297914909157442762438155515453405328548629966943026099850371075530818734057151900597699940735314398057940806713889129814448187741995164426884294924180032117367908384766699954006605684024753312194673411385132713409737469624678040966838656237615838375628289710065822224660411576839710588861412302736481737762855344255844914949087809637676400000388625060002943392628254005514140088767157722125611285829350341460233869599072550464383901580596546836287910595860916118327778022419122459656443407431857763855868483743790191673275978199619314097187154501665372591313193916941591133811783098941985539898744127992768397533187604443733401280229614447680217154861420604509787105756252318344996421050830466633028692765737613858171948275631627981298792380380157737591189028907103264920395835559191810153501282921256202108083922685173683612398181493029586593368082072517026735226932568748065823899714701081466199338226918582958962466301383269487559859579994861363261532435561047794495950685342930010317776331287488035719962322125712381234527731602358459057194500138700169104038416444492110164764558231524641981068226659045778295752842643442319420946246006525528821586647981002796713791612068231783539932354245144855428151486520138353010379468530293165297194663619453334414307691097210045604819822367214514120541565043340705072763753378740912894944910586502065078960267967124846410035544118883295367557707523123713532136975005934314007696830413887445177088377177138140237310707023539828973633446711605712254710478176249857445797360937711820511201336217931824062654310372307545377509810940910512697244624698155067220518855019114798424944781747342134201840827632770014068538279200595682009599303704906156600153948756982110027269754098836435832697569452438196142742144941883736413445139437714399772458018896002610863152723944756838236502805896291690423490022702776160135275155075487542176877585290539171862237703989521571924271621656460847107833657810298535541214562382611367679766123058319446117943655538871366952499642164965425519816961749892490778387652383098528717464925205883827010384522260023355223713335867794412416894809250900848377657818377309789479705872536765970424422128757695996370497936422610735994279434714187128566570133780996601576322604287865063607453499077097563051402317114439601176885891017571032686369810166619305034367501508315082837839324444113063583364077340751793859697160696447790564502902054359972493863792249711901267300647198270564740400113936298013779143625440322730490731801825052686400598014600452238957338373996919514967588054920679953285118114334373337198793866178661475075392066772594041347131732309088196532111125521415125641869835970510147443479417490543931779882402187546120380805057862501764824867968262352010720699601037524954318900507289153425016529530849514504466359896772869104753474641101217178431924775252592201755507636416994672867932232914362951866228501742097629766265632648808756637293695355695425884151782822042436519359845089591453834458840384311707601660981882882598227305902293919407678937321434694106015567965287925212976807877368040499697586550737812507132702713068835688782837085891314558146768150540552258694461419674889502378017770797499973083904476116765008906137360334195887630971888301638490597815162134764869315583918788623834151162738851326629637965498066558740631372592763348154350602771588019707196688335757843343211360140169652652737181867922652114589544941273653314149070691747981691220638214346931341335931427965653431026652517694637929406132857546359722962801644254627683812211722403340110834071977324128962495176186242572072711482824221332328844227679333835560984349586746127037101410000581997445476492324089240120621291482231101002946925919730630032279448973164220320454801493318666670699731883646711343509941247235475697480966856329291874919516982483487397138063365455736345294171967876307947172663059839207016059074639737894250943549597856468481541573217109546747459045498291084105544472241788318562752100854411421213276754326575893626265009116525981471368024083357151968054854307995506592954981900755222270274354550125630123762625576078411207174749462594909077226129936287136415960355489417625226776422697218186746587598368479013222459717630013895298685616489237419824342999380566299631072351723345306540191493305006500292988785203024033079453165756298305751566077479615335205668067229536745058816554318654001857299961523560391801489738158138349541181177012162175502599698834746658868033981678982672594701686711136928236899456726793375168712813740001632782031846326279595131125968482307185125420544954816426295998055644457985740346462356549270821493598579564379992282557527046266705673269460391861505272902415836713620525389806002615383189077906490227931086437841898523130729785765978988468275566187215824659717901873603520556418196766031892479421406396703421402246011088204942658799023458922318600575085374703575173511626061403459978271676930674509227263225913662445964157011995370973637806063785969100226068125601600207631278134917075424451522721119872447779204838839503124265723264786526664381504221190056464686617788044595527543453571157706150924305235666133094368319036217701978360370488861492474099986361774167910217149711682182635367473167879217822679101153538285276727919505941754251396280216409049128955057692441781935627531568937530580611020863315733183418805470959593290661677805595668673716621316798043186696745252822236076151028957809238580799243447991145172255598978938504538534191554650103300399395908439674598809803190083352881869196228241911312578103448181116894947293986783694778214363196999590983975233969340846687830800752613075509177114399095252586280648846614121242244349877347385527891194296532120730569870683573898932382282143048817046682797686457772603489802743755176327400063309840341441687863713413682481910888902810841146410955475390315358281368559189944496296963677759470571453788417590467036338131262252323371869121111443567004231041560935332595418016107036182350605647957522678771988449993170213027790830810327633979796147005762399783099684276857624655732318475073548326707739155301774941823843438585527722623880262024959654661609103414414488245331782577057577307492973919584002929528454589628222139785451484049725947979806735343772647366838724744296307633838170144223047553082347804251087272196597451976400353800979589260149885871352334415648332613346715846022804826296943472657965550696642871207851738473842049213248596174389326672476294539152361259449814612122135414465472182283335164728353739202212078435216754016177916488312854646932079153399921903313960695726476936342658339862634467540695097308133986540027701696318030064716735096296513865147606335897850217981988929289747629830237824805580079651491975921593891466837164016025937056792271401236600645462894787320000840966705033364340789637833130541831698173834083557482406537835109543822480248772324941488939544517402431101871037358081334264083791930707276917876629684345367896910801482641922768473624037820275186581687646898072176735923007841277870786242991221539541367474394188124334462241544992916224954210742196876988616549318996766129469853937490373974134366593644716846090126142527961095928662705241672797557385215262439467408366882669295970968173062003277950447164643452583115611269633418826298387081219950765719451473384046612748340931114281076843028622982081147448549937857482617936322723901215557098848398471828323051831089089350676879583448339597811161425035307757999051488288121065940920121036867277453396021433575005591492739715997114949840228653667244289229467286684326777180080541654379737569915954593968401201965630047807288507646452177755269369211381676932372654917745182825485322454279533553583031222624817482493262832864312659440015916290271585287391437445388567052800817268840280463798477104761758390810331506919052239060134539277785388995602834749402199959144509899095587163014152049940099178480704556983649342547740440131803333053436619540375685960473979553106106547812712420413060247009466162373504166074449484740436664187083035964544432266296427358146791996485194399636881970610931896893235958040851907167560596950818786756064270944696095501112881917164142115758481902978150279842363142155827937082870210378473414587402873189728834995617489200640275390867351620749566590774290611780377681085669920485051536941791845066040635728577540014945935594779746248472327532688346353170734474010298690512567361340440422299481111352098938940638208378849976181376210243757632775581928128930868773280429846229788060743482551243911568941500569776810138936347619672983579548176186053790767064682953115006477496190961404827779176457206237077844588281611322586189736700587624921067810842994953681757067443159735562355265554955057537463222956917042739933123234853783219096534168058784186891853378239627726177299307534975064718116738070872877073910040597562158543146502806340109814530722758510933971149054644408301679396588148525399043097063635645419277124351041313369864541190256128023559051908510672904646913570056362200812614836790066303752824429441755447744854692845174374978556771842682735552222529759625086664243469736483991662431526967637980550872940337148397567922488956720742946526761886188283960888694590330341624224244526268339654271949458132579233960494316801915036855720938256494319407543193004224148866186116870713459140550360132307835326411210165822995897054246955044020927474099099542069427157534275856253174154129270641097003003548749908150979111315285116615089838680751555877321775798747305499407495779892991935816233971363854093405665588488930548462245623935453005720490593103683452057421559606958290561705896886136012955050746559150355192908181056282938445853664294382991112945546296700060064071856264452309530528583347441431766046464314120432959858524508436839056308301301065697871490012505853183751962143367052104335187392045651070846816443271520317421832079907543516684550548584551588127387947455825961853740370529450503987670141571423163511547660055482658018582306134566783518330431029294739699228061983607174269621317011188830377755292697650279548359738212923343591096811335325244348719901231523575625319707426608044359365282864407794384727497858078231710745984611923722873066311894350350416655469772348053813307352301023709559441715770981592043905687519914679222041320509877613135808776019401668155639050079924578388698863506501740542765012675668995106140987629139524481793238559863935342865147384539707146113951534965518594975625731603601281983453719627793003345392211595347781725242157868443305957386823792677638330644596446341156890249373529189444600288872811567584651878183096941692047589013710567753532994886369721055365214136358483187723355252074232377102208384478655994497660115959954610328560766160997061475651847523101106740919266357605791683444912507526582402919892120021673030179379460866237883916312840668256257102299747991894973011951493882244055538189442402835670473268134175086775869063508795144308759586901351356104100103984217770197552216960678252653645852039688912136459401870748828251056347685595499760916427778269206674333730553406988498074186788757511872579071967723029673348817309201010646311524998661116043328448806313704040137929178993483000446316224021221183079745165383470415237862461714250148535358143226479319810230280408157985492394800633507405557603484271088036015546055750089875314068169278264891737556491387036071845436445227979995432392959993522263513246773707674351661281648717418023742897625243485715931228865811885055275586499356798873097021005983646601621947671608848335407519898684392520827573788092798377784598621757725686295064320589397424393348696945191892478994880031110295918562456214246394293903664393316863099065602631630364587734341673879618145637168218350928715379144532182213233181019388226296327283831760089015264959857864376371124290656893541327688305639015868847881821028829464525842797058026387216008481857166993581134744066684842546957595597969820202925521356003533964535911957661717245516208702437158047614798527605405501700768604927716110182999010685201175074044565188367609441093119632032080306901762328381364350124875670056105927342073371553590266550369903282076865174971839458985803287771508212516166363624516500511749858429050937816397321581656403593160546517509556132755821144015196022397365286651923291703682371807116855768121270675108812392715601890753348429765774833510653283445340359117973193798769093231663970685823970607588366058440878320333559085976796749869984635795101008920859112752406410472960774790930731321701677028836436547361862774591965212040586638372432977788422860816718495712379347195048049428360132155575521734768478031482441008589022129846809108130470946283016973113224773646267340163330852350605216206385877177520216315194122644817932647379983577566927871987705631267074125118410179542774032432496065758371602767468760907362998783915380984559309437637389386912465287398524894543329536241923065360067181102543557289738010897526050505816281725108481336666852668096273988531069172318760656398928654042611357287321445878108486915177640076267903268568491728080533647381574684161281664013799640091497419324590723981462806439995514960691633621412522113935206551722250699643150542743273314014947039278214340686510739578147808548754452234445319409209073442926517585456078987736027797696249976233722839220014189345666855264330630450402980518291561128712116588416353508498427975439577777678651608059081230700427779412926326199277827716859342373242031140170323726493716527911298551983966735524624701422445792344602505595357829668636315640001019395212253379316807527399792222058677559213065433222579414956444011771576509359003520337682757143897484638067553942859101989094378008313415347175718235560712794454567289958745333825297343644000475043455483100743716194730573344896230634327484172480322888554475180796664356998178012099184247766792666439824263990980473487724188490078461015339982148522858599042164339202401946926479938651696507246144485196438728032664866704908453445090671605578712241573309747115799422753372891985406573905620893785098414395645527969821281420752973328016046244455675678105496313814171697097157266646155942496463486862735209235718724284531421106542164259690301279744583742251443128020428344445942882322188947015792370621036837304015644595863590806142800750657629699880689645734249807396568699999179470614925190767809003407959563052216799264352410747569295396723314869491563456651959873393175901217755323644635601772499318162321787986658675751905701672403106366878258382014388558248756449318055858029866649533504659815408522142442237938427907238412112521575034918961240921738887844512645741396455836180837407899822454022546415143437750943474690604129769948906173288109665305451700192006338523153909527173730035106168938377258618717425157766448139872888601857155756859387117749693306318821593760086293276620727320347719581128372497275606044580472222240934095613220899345150685249067350606997087475062926870938721403798794472835141792311529945410660513276462780203774990052334872140339997006804190724269159549488475903552360627721524394480955749457808198194133505369763413124726048423600392639561186521173403503267218218774634336777700174042617598317445631059046696492919949037144389623571919442409997025403952468494765642711874299537833394833171652388679011628507758253515920141468818583885621927654779817906765684386056861971155960262785691522710595560930778893355166973064704743314344836566698871103611875997391184999206699170412823015020522980987900408886772508001312918401315253249525929203472413488018158180376300841178324997343886448208578858983684994219067107949882538780476899444690907964760332090074607135605500510756887796960024512298566611849029178994503040059937711254802169687270016883456002481787322501940818695729693306952932388888823576094916633630646158988603029306323947110932118837382759174835691799546767139071347920173989889416390218105290430262065265289442172359694886107292371820199229937719780273675213000667342688853702410485204430434772421047208627164205988698592029093175648194638720799268885942961971839246127058610973416812103670703278544541873735439202384674021852164593738688087690599974663234721843516349018040463029018543451815565585568439352914491449991460450750751546687558598253612914532526225648476461453765776685521645831884923519467003557312526196121567168593632542784459239304278150887876716799054900771410153484202378398417189969338240063846948583328017787603377490255042357253469771281584286736797737205909236543831206193242541909624036434119078599548886080860485756688585462692762121520746657562862962936088095748512943228286406979464613638468763524907489688430972203160656696393841747272135234757606903917432396149553894459517230491493601192449264491788533112888641799154546137409623268658614968107604587631019623510791561827118817415532109409381467894570973861556055577009482705422173946880511402784133856035760317240390150636134391679950576679681112009026088898330547152944335742379770869770733893298693618331255645328782322427623950960264543225723814093107619006239151812636414702877885321357848625683234152056098154462954086793872849541040495401948689687880418715558022915676725359347322203713516730618039597075270694948669461150291526841129044495893987487523399448010811796536381618851629390461881437575384813400437487432271813359504562770376863843584093778671469838653779280700977795817576496542368436967513598021236564331764191357227364092784802050749358398358177826028617821359279863078719386854216153295199818017018938361933450059897197869292348488898812142443019724004792125286143451991055192615584560826090809403032475581646143719074278159688449745765570375021555191893806820050165577808836726772419918618733475631614352434711696330529535484162355913890148487808281437381321014327039848816978436901199753409308919943899205907817146069456843534382236497995747173339918436793819866398622582830649105869270681757143620277847530079167922998353101810151945549367568488136174027487334823603677753146594619823979239781947376409518802679525393240630173816319328361605109712587344742417070848166392395844674146481989407009041573475533155061355807104914996384292104659362475392692457590822328331550269694267152312947919360641786310884589470023872109647314263871700613208161374864591897202111791853018183145244347399644819384272889227538310177465573257321740026764564416927039060394268497177463682047999033541243046677400999525630402819133055006732424210834507875407341837961214622677972913564611934720443685469472532403580850030971425046268830970995639886364754762390643984854604522981299985494784920998452472933207321203612644352670984041288339590446931885857464373746418258707969331674633426271774169787586902780385091680956691465504612640365138006612840855935305648970050486350136071504890557059559300438744826719006071296520696172446600792088134536902470316473433507362000513249226728089152980599460946216653851716096322322937236190606828980556672157866556455844007601871972325364853688104773174471186452012910421762050818670895551853829618456957738508299515058893732214238405728964743959742632587678209682510837287296904836298165359079796222249236333566527666292592455088752105885488935191320899070595005651389984318901871394166798761663414641444177265631702499432471375001858962763721156471421275995696097041129177107054109746956827279499220585695916249252212110080589676900933704582206248374078203756073155162878031996534714793696394556017234755843264815105188133417777850842898646335762755575747434373850490111350268437099601249306061632342624855255509991342037998288233283972155081573412620906761246436339913318566660299182508417483421139893307836209662210058688735591010738176818233461696582019409721513540549786764503841877032062835206704496166233202127651916224620117897607802191743987029809968600697054985485486373179421567430909797651795887686451208463093172645713605563289523297916227771347134925666551297479766376411862658932077598798403411071453621778045747735454661808183627637236734276769141453142777882353865807867361744057580027795417337680688425689862013271898509619383429301975234022718214406646657740940647907906564457774823489955374568929341110694460070215578393757465994641737654529876394866921613293012663914879909955423632750054699119836201461286050254194538369821345429417083535319022804451903849554270816681084780439305931470382309053382403085852709215863242027454730588119657424007454866958310560722639061748844978380952152534861742752192319813866636483839847882131310783472355590585057827441243914160818714905441143491008084018849401574191915617821229811791059991665387482453415233627213633840402356265957061892829004427253187743348605905905950657937367905347667272869965687112715903869990383935521670608758405008471126290259350556425963204718267604390274513044145831607277715642685658897077885603098217051961803011475078136364943832475156661076878235047839796900726956742795639033784676694954196553007362111031426545851218340941910814875968769571115699326124874132181498710495418481459051383561286175346665885647744593909777607112589098954709012896718471365768594863273245840348768620565871853235593356626521929785924264829143847093234451508886994253570408157367514658850633368186979882108568675780270808723656847607307514333889565095687676585969974561965528477926655944207535958696588579024733731330493057117189168067565014006138879756773521865759300156975234355246444619894604711262092192295321052137740873384343686987845195087753452874862688313221465065434428436746058797071317723539496376620269271307696521377474244555114254076408263505119509868883213185551398205459196381274832026259869893138699264416759179285367652532877155590920446251100453853557138715089263153497766114855193479550389205017509559312175040713417192124921568860577952700504033118064909177663864635803064963932545822428976334892469429101512218237458504907683910847081910047829876498822384757846968417300110162111877373370010029969736177905366498396735874642550504629504301984865421402614752674728474937999792346213823182158676619910166108018210647991993723315720154065527013905979401634668599557553656735029336735036884820958262815545250524250485330717218658443422342248039931646445593993855400717766099856108706438401943331736566946817936871826884692171577211930718201399755311129865145876269338944612417555360418039315698935442619701089396120237470707550613392468519753156253773882246622738027183893015298928460429538236782593892535242853400164142397530787131042111930103820193183416756351229388876148670429371301321874789998653660197499950922136880303653866848687457034322540473678300864150566753382682011655936941085226683548687699355801457535482120732391536794615928451118338900042043509610103807714972401436630751030299887145940793326834880248085173741899860462770881786087940152086609041321743337835004784699460853808425686295869336132534407990488620928307150145287530802164262501126391666724318055976187725973063237248225090338370614105773011160725542663907919869431719491232892984956708694251206552954201319960636672261660686927143060558016511409274713519164658144158377241943322918825148359742210601764566085581893269576769649884631101078972175883295797924674781481967039492153369235749948173502159146754446792549380485657994023922406080187914646566724549639739698485162315365952370653281123745476673814874846142221373077171308587782846186280822971541690983595883278142993461122438479341155445063869030360188178421347718676586913718564940616190437953738731474009874334304153404885189633003311119379307004910013767852834710120524922189294974618132947754340083374034742285224780713546167199666766142006717181898597201775443229482547742740586401347009630345646803327107455151645240500438092460180329912971875854468662868990119511223126635562990964853633020005492084314831780647244632093381985195113964721544893399245226909256641726387093451413773328577754845673044424642019629351276931755251433212396407005677159627451227155834227274578810768621936572507568623490249389064098237429325120275229274192240981702895864744023249337273209587362059049045031717817617758917815780938105327999353518013164887817878161016941727799181386599749231015891676814077731394723079437831929397955082602142972287789226105879784725022364770527429437735915540878069184810702209832690655105264487689013096348691957848988718405765101796323219254163306475230033313273153315705051876663970497069553453428269356415681188393148880847048235994919465034963776174587936531692593425568800288018741331335299343828818762050953739803269515537384142981144444983273536679854046195230239564642094479746281786660584600179927903096524808772582261572557598576790243604285575613381174572028791830034422909257843215444777055495204224702102305933983122433421472554316465534350955239394072119437575453170078857534558455244747417226092776529664854576664257575318784856557355911045175728829876197463885199343231239290933945063719413308170904963164618397444143331318460273136844864043332196873296551930392476306582097390943422091077838544722677274338351119935357434246381308245634369213173972500187334064233292999205405195319723103186435649468934029922265044750214656735643573140059532669152332981561368503565377793164828328627881399624460952436621924180608903881260427260402817049031774812778010246791760675486816080269708387188330006172321850502291796513682754550471896109364446888688370697954623964747071574836282648975882010243963894995790963409466015756829600549666229351343738553925492561082863278827405537909396918021565694155945222723748045606751606192756156558051323190282636497764473463446052697818514610752688331237307574290257807561839204535706609549003896263865166029408085102007259904075514282296239802757486807421878996843315678375898422119937685480403011436486974857425383734146800713740042566590728780171436446015223566288564435243653860032091646400150245757879860700688302123354440825760242336589779564638689537691491431504049075231959811997894791885104126348889474200568846539484874302993644567333437884937919397299467264137426700138398322470178142478710534866035909315644369417915498153820883724110890371425932721317942495395302812318445236262811022024733292398617677421622151987454355702562413660313996568679562783917153550868335107470190987982931677551559898082604496569848329032706132827466432076113543951817608165963278988090005649057253920711252872405194127643643951437252674192323197425979439188808637110921699984435232262303710872058783155604055406496356347328188461131118409772772045746623740698368666368902423940740830185678984449494680696411906422947387510834263159002460682990535963369570993706905292079517010095438072650035360152879056169651696856637007654647889468088839665687084012604957966461423076295277312543254385086556395349142572941035786051406530383053761844290221894493465907780104191052003134498262201737187690479586106512418668083910692489498645142142481317397831775261295814071012674908157887934294145682014316017285963215662055718769235375759812132460550202907966608279173862997202943851287726813982195875384904953500920398081071149612356854430239856174477846605064382314738668473156344075367276965950473516811121060864176692661933552746938403326448872610228692527195739475736591787157521076326442093088538190654422120897768614839113526481184307977204460375338939406761455822784564884242372676493884350471525936962702834183633100414450992268501304374453196638656511394527394320096920086872729988853497494136235233855988044851660185744639629851254072829421631542781332825596001924739675615624398413132218516382027766999274218843483008603861544316367574937861065285718785757492701999861263393113919178646474880415896036213333530434063311312395835209971882789122485851303818327486765633084376658003879186636840665089666186907505855817384794941224423861902936172529575146069921158868619675945173728484491362769682071222031689032645277587118742690635111522239599716395300446401781300616458681702679873574508975695338198693887524774730863353911330364804143299104877390444163204612236956396078618341577477564557470579112463441415165212821150103444952461039158416820182875656062008042779241850782138433532531391549067393945034442841221074966726983982367587286081330336376225290744088366767175867323085316726177025824710217151384834444480596779835768921761607673536860727089141530542275091085150868644114352128633065552408224678715023025160940140516669288481385193657132054784422541421488237280017809332333948422058323767015746575422069948060273903187601621842540195354222576014374136708939250977361566947284648229028686242351606526842560385007535147683100363672188370809941206860056233885055444031324696360413670143313886889551682120690659988226324634983304684316464626059111912655593260367797144209725832143101855500583966726351103541401330811933439167124250737956540143189637142768941245807922592320748483862228738412431425027200395658544066416211519903657228041879791815640614969871474205016153277132316155078841891436932608381169564717612539913380063340172857511055927564742037486459162271806486607206889551477340985777529756374908849494961904785573303335675484201524286967862224537358434233159102489009349227765212734599983465904739848236812767225537368109237405691602568472878482768888638422407491315178103905922764089462705215021021814804403759550638549347778569219525208750187592135996632357156916383611767894582528656961202767854233736053300233929532153259055447882521336609923669004106625217171505723758374942992980506516988093322637649499345768243971774482369533863797651617255191755088629895420153539937267059413794342306201272475678386872455009821577740842906958691183963600360740097220037711905491243475504622435399051323858893269636192422573300440791303820746893118415686729534492948111002979857793176668219910906456556942169740836973567353168511314266637458170855681154896720702507422078883526268885149144113699428600597934505757311723338820820268135546047271721874860112303859820317337156280860992083113103847090307494781233756796351390830941111133762971787391707966610632276220410182247950524831045862596780449487434865762323718079984666569168289178946754215246603936978582866546989675198034498816334484688819865175369642309439546687756366129288647039747821865972202679174924672959141070759035102004403411160058181174547103921675707832035230747917749586430107753401867867571338866702206500950691276209411748265678043196968336551447559542605366217049258976724851998668473772217080759691297924922324766286267716059291535534388993520710736499399100627525192174977606062011266893935683044858948733884497898879691479762685981761616861009234348430776955981729179417834722436380566040081766719615683704059617882463743650804702787648828846777476710386649008739573193643732305110699312622014838189971615669819720606258852875495017532586049625341259563548737534119328662565646301524976441827589610846605690919210459901841804230998260041610472058147687299946283924244024743480741727267886317502866080131963369147908535489405927264460779829670075969899982089584826742828732283291122486909680917645723299006750700066099448951854378159831165539355318652396100222071711129265396238614066568416401626644090558958512996591806133219945153595540536318369044541023859942527654268080074615867304499601647717722799487557497470299462313549922195583897940275395626098904604360141116343046647941921231866974963276276880408025869165258191030219070869078452115519620340032910054672683651726190840151549309487387674636955178903922701906894828074436225969603451466509023519538051042679301428517084099749881118044740350510204972808411224254830442485556353510967399652585870146694020614902977916134778859094434522926265625764483959547409648546245523550500649517901672527819976928382842248576937778968621185780666820764421396642281145103798063868056673597902445624751688965444481856632735965826056149897933707906331159712418608414082749699759845055613062532855132496375141064456125586847239675520670404191514603386080271989972519554476729815619592202288586336543036740902196002174138152793963928016675009793592657795938994254173382369061150433081464945933805188199211441804771783057988156462284529751211560603212428267432186142878392693315701211186461723164583959504656777510843510772907061138265451193135988444752039495096819466449399333713356814289830521373457880256005376118497430966494526150080152648780959389490142177113810378303567685797016722573935324993470306699166349654107568898212043670551280027075584670025231108276795150306835091240888990819466578683236230231836572100465307210322798609860380028986455176887820658411814537182142928764605484583304047289210060315865892849245576058324231462219835902989517313338739392752061196009819567650493352574333185925614355590742190269107449371764887631202398354088802691548564291703042332471192823825316693064515852526904750045048303154583865851754037774725443363606970316768538800583943720310974592140353768244109928878908701738574946950614121345502850457097211526050924229703392268153517189548051364557454726193029264541574728959319342453881256698766908632058817452152959905074831626715733299160353864758985383421150071641715756981270069339870488525196671755126896417074824339499282250851027406466177615038876496042920338643793017319090196557671270542062779430027747147186176327032333155209070751022454605112088921603200254608395598196343196997321547435340496146846853270428008856379665741871101053525155677012470476357809055364945365368092861362571511077818529546964848877239986601652395272109261294235028699119684661892212154741791129486682740888430309737063319902533332299726863346283452563849960724113148142956147189985023454008992001426870983292474863447870028768114718825573467699164863706633804282756573945978419983338937436237869768990930319668866567550522680193510905051542588039232757156520816633281576253808694862048873427944807165890001580544237098413210171185102971936703721086799882502480623854311906396248043726811975276159799714853886097541163235618177406834740620749908307389012918116230296821991339709310813391474743644883571399999745513235187800738784690582900067263062958833087179981923412399150339342839353952990335255663634393929335062252667499871605479203643863959401230028284265379013227928341342187444310124128921558613914468648623227666028969362446502525559799885440232758683620472147529249471897521015145056840512336556309958868869397049811948395781617932063174129044463588076334060487893313505677501343184573384935937820461648338445592878128118983669929808347392649874845551586013598521449829154249722504847702252570532838778842006801814949278004575608182654089177659318024748376042069389312560624348162888425565154732004263517348969991383378549546441570970313972600231025678911082026838684018525428844949004608302966117651419735127173850702574489006092423831727681341920756737171698761558281343326266551092820120305969767848897658659108887559695519058614326462783171047220751913691700465109553077336227936541235305115465143124969089625589714182684023442394704676009267818972628680677149989225673310334581633771086107770849381810999170218465216152694360010162323697310417317623348806316636184113912785654256238275488278364144120827498057353957103781263882539583249828316890125567712173436691811821715497939263194041981908405447258419273945932609339318612461923923323910060969745918058393873066310202985874347315220881625983069140912515358274114395529606769200662686560102317938454104902143207459629217063586798752437738963508908053062902211342162474474466600973447598181091091487271285807199311299515563872596689683836421437125248890255743169690588469998460444063555050675953143754023253477137643593872797963034618330613389173606308809649050555876902759645306142818051207336043411608864082981006772631915896897159561083716355423264244117567739100988717553804077893570971630642568484526234102532456056669714121676166146462729498840628323907230959520276790188881096866456535517086628073589800406036057603828389340691970013224265291896264544611961762853337774034437477606991920941848346900861303921382348937718856521710634879001390471743344194928392275806906075230121578444188149656109299644693119826077005561826916734324187739113902807164459886917841796216790892421904520877791218032426247660251006680488598683118119454248577097913564461259242994993650049142955942395204526646192807138912855627390298280704413617404753400683742444432224212864765451343713321885911037264390703757489942810805481349635323861249723318934461112749377729134076834350173889087529917385534267814867827100797848422639824142118467515973179239681596719948140188107816257143683907917645613883883935638283095031167184168232547698084710612049917140294108807563347381114319750201602666315749915290086116332666402152382730694130574147872786671525148293149412857488178607495431990339644578845320335261436030556706843977035945117522694541395001185832589519369988592659947868748396175104068414998236129570232852048267298589128915481567182417790010790950703851355201930473166022705654059974952310053725153402908612066880220579098561980061095549607525527567538023971911793283671209125520645407695713632240777995429940180957464758512551145229111499566873447331838745239325937906666159401869491420963265354442881221972039169066794616998238791410981172125968865474025308846734926448471316879991734459712112925890849848766114290750151623212919776451510686983489734011607970335049708203880609655684013745529473342151360682549202147304107699585907834657472686694411766163832307272798817791607005686143415683576251532877126683781195717143973293097628691678464236530422391137717739214167411875079481899674495635645758705375763210272464161703853465244773712080077135411879021744818684299892841098854586195422944555625763940171695528310968923622673993805644947594945319418079298705566828024161191271775764649097654912993691831339987473706702520278776967640140088967550319622453743796023988345066666566067626307741287254049354323925196366138952920383050528945461828150048054426096375895163237350616984047486892719428457072871716384916634603430383793839134139672884937186282778390925243238785438680755758338917820215050022532098400676210231457716063754888016730915424150498038407869992448664178032335361840877929660545652004424450642310789053000382334036720653080918356772650018706302751317795082403689140102001551567549598550136005151553100344418091945622068716874060300241927873450431846330467924394722751259547858861430183845357371442071222070880642958096051659891332795096747508349390218770576401304411817981661411312723840873280044109873658415656830575726324762505114194072504626903935465044529069305380320232505400879635239943796522742013212439346171955694428198024231254203658360950495607865083536452358726974356560479915833602635003237516121847532318127169767856280688576485663845549571778052114057221682517747217958067258347606690845932263159097797909216231616112745612589894444409319255039699091274596149301866256785458239311316444985305458722808225421559385902666306987427106939952134017231713116697784176115780137165806036900172158089404145097479798349861880981141021602894682934899779850060098405500267906199182786048886820566038328181164555530391299441291862201195478563100738473932559753725295531314692408104799807468017570414808816307725110206711693358310782330298886271011108595629372043799704625008690490169818859017820526760603411724606233860080251975686924561908488151856731179851057158057553114009616616089467853912119853398717548520063078070503639114093452731739838818849887576327924929105817387544094381786689174600668696271368436571001958668030197039363185950455241835583377643269585029503401931487928442610237070761449560345598611120541732958806370561394541011263158536169821484181017305424175090504905606474793002448511825356177782358860776300881335902038532107395744648910265948736523013527816274420715224981302211804927026683537613577642786943203506284580980915111097632593592299279778795450307489413207595675815865595987978925677837550270707273142228026717508608608175929498319161527891943029311931763495687672664787423365971397859257535312653197688832798953105119349496118885091729705934025075993855452933066294617356222341220754356088337592468548100059314716557438427624843103101974082001064019890124358532829479889115202267403394939963088910769561950300150618490557271989964827045922687591610285382835954746100004222029325395048938536704755716053010135202960311772900170357972547986740675720524685725994724173727439225979433193471869600895588328213830555188322422024832103447692473684429134060676307321184991489039397859601390645181436815278777677242601120301425166341752190187875513498449780076472414039656366345270162623209613471883394480190798639458059827085602423360715268971207111025186914174753722186060365645516686583060613793291969687488062249666155269916534313245663890794566283915129224561911813374064270720986194406548580423068423730328758481237583360972992195287161377551072343680528964632538229613787569640324451106296594708235627831266033119432602278171580116215480067801041463749484529626553104842533756247213657539231100321183193392844886506096148413820159067530107146896465984556429927624733710482652392792938445028470461505922481096006499215982817160153958604254673676761201874289485122410559069171149023569997462067966703194683262896131387214159174622042528485501623710781797752637378693590782092279766299112994212904117676480337550981172076760113726713011945750223071334873630016629173505307333364017306826001894248096216683098090513571876643336408449659343733117182728081095326716033240801139916214979923920725911222018197577159292250480541061937883576477094888623737364940617684245774600415636784825496509373151567485141482900640184967020923655511889233882922235736843191346527767656395071023047430581178480209654208165996386446807695690331706262237809852388821626867366571323301086752110176225107612856140163544635825355751716924225827238846079352354887652014274805784303476800178826841803188377207608435593194609965629586410592639683537037747631689719430313453576748579987890538889678547899128669702351710478230828772500290350971651810145392757813023999849859617667331633084580561328589143983873683494733858024903171357241937702790383972686535945055358557755016468984609635116283875651049308165332377846808021226437884524196069985301442864214078731720385687994393962359177383489957038843858938256522696394355237899715109800963129117168554146355327607629170654949211266860778979345523252484536958159487783819352626543656939224877258379524820492297921645888783940144515295599599418899841179189975840243911047353336471354263537145057967003013355850042798123846939608106839051303606963111141688730763092285967341730338890873033233013632053689097954458217641870925319046651653553450865866502063629987889643761134139311053878188979688071528741997890418291809884172344254977235484575711016589760133628149074502863039314827699879844006428781060560585843985464390674487832938321521426437780662906855900241894830118981455165662448896619633162195343109706300830258967842422079821041756586241954130033514175988257781205509239041291096203179673567769083428536665278148293306223019487234348596718529190587045058642882899087712516488077956532485043385675340993377674950705637322806094218597218880123653177185833574257750291989720127863261610563333698930758415090031100118492142539403954790428959528402583128798366568921021802097922073155398860039816405988489263653734772976098277923183114959878959941707594895738363459052764115556726004847522501952114592355329063163100945173754785073488774351472953387528336541805388897343088633592778491975479258900006039025139226108553249771498058842553695619021704739519036178739749486165994872342227304366994894765178901773222594692378277795321921343154365182761553743314341705596526381709244460866486957768925453751265065767905615530335848285206508006024250144789928425893000291242580138022273286055853407083244199361993412753951936608522602589169038215180393542978941228152526643634688082472607082917910903853292870327333268703292951358937711590445036229624351797399313710537755659256621906564379923169043944079214584820007758978050630418336019784568684496764131219707653868024597874092701446623896572439920369646115633909267232967646466477218428526781311835054923479895174793671163564140119210171092612044508730551552961495496462683306842749537442296570973763164685516408843552234993265838129683848634856084578220115458554735715366567721497810285407723911965130250766468464353339069565553751260599883061402994902229464219284479542148084369195310331458500847669427676980707484627620269337337865937593149886660201489147469598856188304943688265450461235737865359445264177378990323281426910502668674777373283781563943794259179128468235145591273970016336929761502405652936025713753178322175577304537677291155174321084237096201975925088317402557710091487773406795409865399808199124315693983351143137186962044580423336671629943952594264697353268370701475376008047993165471422338024577438203456448567135750165905531591886031357839384421531146178123610004490162999161473433289258013521061654544951419597425312547113311727857817317407199104293241539646281092456440898752872966448530724716800472955532641818680746564706923142623980654162796243456840748588297079131713152184527169201591487661026587403005063216793347725277599311006641437826321478883155853879385333558341845040071509998271429069479349843179203069631084652271716821441189733529092798653251114009670931266713703115094328272750253376993840159116766149817533847341301306896814914963552709291602284607859180171826129607731316805195521576409004475561388580679661377289388423289916731774199902594056538698978258105040446609401085182110096847154648573091175328162134296828316393596696490193240802765045970971457255698677549226249741588492456115339563849200887990292472928610251007823852502952296141184553458848439144419851667498678029501920538868697974440573849389599359366880741093374994980858277314276290846179638052363642553412737842213823218646100845000060486865259451664842322520364248717451711991056729242173018287431970146028825608736224234673603530793517172996669544162303597424011536915917149251391347222785129218124815826698949507687328914332222954300710832606493573519082823639762452936360788942182936035491605796510294359617361918594402130727094989734293576429676320828209558770115466185286971668130014789989769247034503977329282502749095083676462055002459825764692070270581326616857383300378642772197205437041820708487797152749128969571079286656407557743401902461969822188440287735815887734524977972064518914209014197221418717522248904181477002005954386460154673322057882128797857023504437273639509158571815311145781871985520058747857016507837059238626676657504315653016918397035788251857975444194837718955046244030572023959718955295699400950420862735597339063915150244337260095489709314954330325856657641080606185429332917874023877241604794999033284589513090672304880327340932052405961536892141912463633175421555444145083246829791548548203346674304511653044699948538732839588534355238190362699427290580517952663684844112343394985284312759593681276408783229371620725194493831488324934847052770354744965969761264132687103697761878399821197175150587412298816561034070297560742853232740181023953002544847448382219660271553319622881315542326290051247397447321719916977571716040138944110259693195763985585547288544980633586490878614934668613001855959877094829052630766906118447739812491393066442816649644870074192219925130909929393514836982284996361176294843550088757972063716802529480908314799367711833153335496221531787379329667693495856337122677117953788980779687303860309742589097754237997374192631201788348559524928220980169977234300061930151331353133023914681828156532152231999705276600799692614317658946175222110777355257104487197846920672882370318618189994631518134240127889444096212467333069419708809750236909876734261838183436039709687945237414838025254092852422090513813502330303837697017547438106096184157978977323433874453877718909825387009638728351895124492445107538715307734208354806728847367490686443296193377509627928567675847195415981894549014878845507355991063027557145334490174450945213309310804150623108531748340190012101482106786909657220738421277097709120257764424419472265485080201585396327982365398321064565997872078470474480147452280033381010840613236525055980862880044894853964825641363693946925257472920956772519713700952893884304341941637759016889024964629248026995736076985994587588334264169396114244502575769765602931928801185504996579676175841269157404652354148296176467493533036752021263413876289972586489912165719870257791249214004688344761882777488021330271322546519141179507666545981526306482950383582112368961956991488878735064018135900124419026895514221701305347211221377779560359512567985024402342754467649386008823465922875391270270081545231933560833998014715878093400557894564761505280141686112075532204354921534942292144744647511499006136400209958712418981765928384772432859369460782602347604461903645664607999583397955290958134995869157955580053850805734834353940175558465885132149462261230647261993480641806205967694174326045457597016351582549655799789898541737076988122467947347906906080472361881054470045075329025086722376170228183585632746483647076032849182123686835070069569845194293200827854452322441736979319949101341139845802336188679239529012791848238653045840440414804156585943384264520034482278770094658195446199948583345399377174205996354477237917190249737279825183447896024680025995575285043932364092952514931741807160913279715691012760558454832171325754477978967099867551983758909319976358362643546279784765186603968930255940767863722236949306901231628248800497988481867726380809485879482484754712568191058366046476814757077573095133520926640388878135360852806389820374804308318558517419180635709740155232030324300104180064336857841736851506401631259201028101774247317394325035288974452591507365968736854333010033968268489873138746259076169020454275598019510138385005876556564731088201353471699817841250831711474801292249088823448430757833295074322362626103350039319574688736502454730782386507916381282883008865885062326911791852248253979245548472713743208979068737733003990630294966478425789764802367950887588075901153203677283413625908363726366464754822415379335879428095923260813559998972289517427236770573700589028428785383180773851741390832379296902116086425076094434066039641491148231522722766157994238209229412793962887528277942486655237464766574917271006040905023492676477996473358084444397814577363468743966088787835643475420419234275294820896299730742616853405955914502245296908444059712359779777158996555706706269653561699572221285008965128061207400426877429752226924385838258725337552477774692144982843525911028518195310859404070304953584909438800091988632980048633549109902917187495295893525086732585370877159268559700047728850086549034871506374418656252824642404367719402543776129177790629302650900895472467439229679662532426305560899270344293522742983036454227177845303783218925556556535501784725366041198573366280380691745716771526552995125740157546219864520700618923593892361279561498431805380717530594988792543772716394732753489379044852210935728261843930738511543951141895192207039280793279020784283687418148226933731792086342706778044926104080853963081204249420884665636087238503557311565743473475189222752893545025811413588429514089432672459827376841793209166610736041048735682645642895476322844457093430497532764730294183579979325658629033231014017085373569515901717653042865969972964240706059890325875487533842052614321431170273886765138542227368670564528839536594870853640096079205631828846976722958495310621548460381633468410388897166395880616124191570172896210695284783994344472346377025490126471749215012979940214376001296159760050659494177524610263562163224017902186097528110280480324950546292423791786241861282571202830945028175858126450776352869064843296349231022520597446367708482528678469328572639909957051215422079220689648782513586884231158711494991055000732710971832970913541493981151156606244564310009822841237659096524843289105605156870821902699449221206769717613961119892577977779102751286051665743444944328144002275886818177049697583153893592390493995692024402305324088280329558406224709412437962343656152074176492799176547033283601921270842254924472177934520678458014323955003792081602243943165511819100805021225430786471196547492428046395781082793862157576453649129904882095329855186410650675960591584619130285506299937574234355069247155760555882433070943904843366620163717123675990733840195409844904486248673636515334149999704899920030501268996023093758880035122170836566996137003724370028855374030408337144727482493358470643646804883225301560964586788129427785592970192913232319091826454344726157949537682106971638005046570132355571048273050569653202583709270520675007584457747307737380889444943128355360955240161983341156790225542082372875068160162518968740283483440621113419027069851960441080768069497735011042662068843805828359302182992642921716862206143006274884921767585799016857237152189239785322352053153279011327700641729548581155925888736018907047339308901368052728759457288593277625391907841870389670793344187548832344583414940564687342280449264184218397484968744559964815818841824926641607334100097786606214745560836844046097961565729920017395316013030498684904523901418548790005813721765350576370808384650225650615818683388720465341414518606036458721092698011290635590359748383980270653731211315033640207124474380188021247729136271995370468141363960390958888289772359607762425826561411311115279979506424161983988806982463169567597135919404135544159661035081335070607243936558543061989683657629463067318805702848083314821615589863156643443578138213203795599427617262226438955002087159323736710890734848701885940794322865279045441341589874673670075645354092915731471599262469305529986920213538906333926015756843577179771385635490946962128041082207800280528005958650067492626128328674133262771513671785817105076249769480311928974051958587440832603478072032870908370020345649115537882024758027172212929176317992047345904619942336653616108932493268334958820243181766589864142048840677468586926836304745208595095991948544062844918887951191761302315089186456720523670600054721815000223246729311005545813933726311955947719960012881486788578172277181792623184187726987225201678000027230777141572481627674346400060525911621254722839691214817307563366510801130278178442252880784875166046398218529223444457216942906829184489992342507903970780983728366056621587948670744653543083463540807455344930096541884332381158828103758307493187235221356169892197997402454275456599954016314205273549851434014604323256520727846396523994248180569570592086541752688467850476175343321692028433282640564639713764703471180108168613892473676575858665312788049161806547722891451384885919137222128271708941178013749183761116740071120304947186561247135576885408270851960858992748966570927092989671847886686080741821944218820975423360393019693219801760283778270217907246071748896280829868412949261012271845153438040554853190500116961118124753222862190028957664047325412524047896998076542660405961522271091249333539823693071124268154139893397494193020527553913178415521283602434500829391598206942417879567051980568510019471437471869500003249109001511816420195174936417406651842265757628025460699638896264870397131171949432736424555531750766534680640069801753717428745659144019956391227966703034551984733744399240312198870802050002233447087487487697162761687486094247428932560196604141293206659122860091450492852657342767321968153625512214336962725567682702197291085402224236999748399545955555031859689226215547910883425634379748017737971979009292259227202624562975878995067126199332474230196206796655827178046786425172276005498706448586060577960604420648371543931364004727173651040636750931152055705117272172505898136684263357484130191563134604454111617319676849312444356151503649498560341904702243345132218166436404459041587592448211771921981180744676013673390372703586623265827464008179400973649126325201025698666344175216509562208177978166910580010365593718171372424522700968512464101878314536751456626581280584728122503593053678314459308623548396732477218832740055395001208780026613454405424425817032263208024514694200050815222170360021520320691510078949485081723834823299751878684856746795975638532065289528082766933260129420348258442186168742001098631477332860273592751588332011334363035455184154728389017603873242265638921519625528669235166909522216670351771608235885392701839551887221641676152865975145072638465649138842068145512144286385867638439228661598649469585041781801289090220073049151311365539368459454378789923963306546039024584353576995987072124455200080529549527880023424046336164960568088510453673626609641335468720119524233234496420626720116619007656462554590597387287581060244168221067425481750997108449748875408133105759678348574830926864622334554794406041275912429183980804380344588799132586678341956483273694619716830643988215602825559760880254653423816147097427858336522684307280108990443824256152726208036070644192297437220002582171549154090511027915278461731359221195482884437705922623425787230219163985880704060768918553084151604394022113586915797122576098373833763258808911105159421615921805888746897968644740809977183477433086780046301690365855242095098923868499130231936100031226259607053324501133495450651467305897129145678328834840699948987858919281285174462266616692361470565449367688744943057291045910946164078887517453355863746434908920413842418048785103016797024166583599518043089376387839631928727756343814650359375110289084233785625287298175626270983903673575889922442370005257142779405175091185656624620351962897720375180737073970964560657265660331978309773132571952948889121050851797069142348208735542934331266243547089283658764929412972649862927777561567279345673595493250904914482632212987414723482484426882067494894526038838399328355571661565433931772851623794287560671248355420690644282627415039927816524748840581392494811871652212781365678951421213503000309850391371784663438076968419373478788891447243161762752997434373426764432570557366099054651953116115633397379153075037552788065691771133532386785208166685532032255769287545994210195703213137628524921031556659621351282940535125774023822327752056133346143129570496900428694139900450322207450814365530844390734062203249254679613824096103243957294592048064935749484814945819868837724325303042260149536162930085638200987859828388923446838193306193121854331137935753231164153143441171484783514891791703153933349409063043295186696742762416280887969481585807327384608449949025805565116415816595189666300064431404652959884948213966310812186240039105168760625697611263326550590751066959319145341810838150298630505100764857500039463459107132335858242856422628267877574647772153210928767558456836550379500678752359403010223419352721177597091514436764848892771907136890423714953353386651541415646207020085233250996467020831240420439639970767017101554194346573007469983710524200471267014786575938371099769536613941452277532279284109785760691116399607227770543897014021057446576001970917629052852720550538746104104424699564016765654933367917674376870355403411314161589280138368810365031144146321479454512192065094466467117685438914024916099042814480265839006067094306922822630282855980252633758613546265375204499753218656223304926511818504405070521702428363476441524851561026522075837229341607141684321116905957327425370762630278759328099790858588884360932383938255327571223782293664056319693331614579381610700527388890400479724817071591366725059673762162226876775684108495446218795705202176250789022687123748555946813342459334068096019907402654872674454352110642190527956624251304577587309958294833342084407772544275823920854484646856422621208819402521895263829415811154304133379755610174686176926675494940285303567103654729648190249643402734467393520981825513302074507005086768937732147826770870182853369831520595895352781265685212799912575860070250697456060650514812784596576492765014247276652133125269066941083894873357716816172991405335658000005276534980866222389737181966682165114138602091281050861779229914753774299283168290826192038916467693954238249708027402169086855441779584651213740257272179044442500296182551602592049878430510238697089582906882379081922487209637316923579294271511575026853367592697680911085690149629794131810497472557449268553170727810512567066604230537234266063389803803935289980692938089532714669845933534452462156480693740057690263261469527632862863998770649853783990114319187502793101630757877931513309030734514575951061236997119928508523092514677427221693626860190989301065077800394027586005490549046716436113266554515345998349657142525278916217631497560425931006027830574196607456340591095089422551221180254109408235762275002221217346495637068177146890239960050132527669174292743361040101344392142471913776035514619462063527084332782494840244053845723718961975526680520959956245738416525313311651722081368506642192036971802136745072932883333883692404424778115523113242504872260923241961107651220744192453806722032548524107121897377350997840381895365511339359052110163884546198623479356899058606807774003081968633106025762936646514755009892999413789309029063222907935000325485026656542369606303549505836934915454675439526138883147905103499593164185411277253025429483495323569936048299324950139633967890723421378973885182794659185198887945469216184484342866693506412326480971848741979908080292401563712060153386389344592419342859670496456138322026450895512932058995075971908300634527280989338329488309724608657296230329609273243069523078434965096945854997743498167746860465694226112201903192088812235572207124243280155037283108514815621098466992633486944482009814465789896081762618030572801928535780853381894964665608947958335562155703074192232119929190537876017466769580724766937361339858149575198540493456292248218136302125706693391167962559110483681740956636218697467880816353800050649477770666613620587645181057149002185198650246781843095501611844613012071590967679005340868011816406274064819972993694096857027206692471932232409528836461903294271757166989032980933747133628182979562084662774151682969404686396124272818679631695847657113484480617341480641498620751723440017821874444502647075863171666623697509574162450783229513594133809006028637504515682101883150395587553817987041914963548112772743872669088707266247364390940767461664552550365342748017232489073014196372309299134081822933061485880000263656509214451514138977402808615642251122737644210655044179750361145318941676291631930146043001846848811942922990781653474918409212151818876031747033643078327844770223163321198410834252482967442178327118349096646652737631755790033577978064083986017636563396954245369538799892780085250074243898406504632671190345563569303405175522882981072859810950781832756046923123934585785527874920357665444077957700516972278457124661740862385520686243714405125574117203795473579522557167881747961295511320412598019964233601299044115196505573620231459952423102411900261476239816295456004907889777250269486771922283748726324694656196922406749931008229079928448643880487820126458280511942592277605126072911902670462408311194140247760270147787112384649448177745185102278800494894485145298074570435795989036078252856127462174882533479781989041135976668122054995351183307643231239662868852182344015246317803815723306938888425997854732969972408639664919069819382597401356154855301145720306512473305511724838653347040825298923801571167254909367189226752382839830130701980783526701311815989570184805563542995659451310184389432741370930253950435068292015200318530062842779261545585468287676781566377347691343021230005208456246086169514387839164950120651110159430126801362226121449274401675809688860155241631988230577183500283073885534552654980286008460653010001695312836119336842568355595535360900723504780097594775550092188144074983375946509786526584564720948930499354084603605797710865592719118879383391765142158217568714197493916871011572946861036827966711697487471943524225178435417515337239812379202641507704840733635775272308597421365489115953772360974280528973732423487142350186971593127593245760826787675551376574011630285815739449161556767126855091032520411118607040692185281612390318496807658271328302816445338307849543967350267421725773661551535186128274541461875100323104910496512050931462218451416718923370573246475478483088256910920425937686873621364186231051769117711091707512483391450522281169584318233224110323763626635847426311378336349838195533198153623095438927708039228584794322709873459186218231806089847924560926578684088201132575590757851739562180927105415312424439540239345709415870559932742922054336990093269029412466847114607874302859561426979881620297490578700056530959247997257535496665738179563320670678020326101382086270879830454102483400388404221706811526816974988075836352351958515972725021927866071875909999615235390992730222304918433610316083314688627070761275320198890333778186172000137224574220140685062704758920716894918484218362682270051016913342705877654289255471132886834081458052182209996764455523819084723936676105773302925499346948221678598017278772204610849034216600405724583699922837930721565987767470215318702553786856957531652354727974148084707199947012973318598441595114877477718484814108846562254962961371599198545296802438316167090538351246563354291428651133633185758040255310795030460568612196256383091559425901737422830981510272107399619066067370664630939436170548911513723829142811652903400200854917749955034265707132773064769746348039998526351864290805232809723481644641600340068178478166371538964245513080299407018417776426764696967265498435634522722952735411957671906282386732653516981961380602405996375962231676356860708616942395589861386550449986623497114576430436694089734965175521023475048280890766053224758713226612600650112707525245265042003706140639939775848988823149640599807351467360047371555783284252807176324322839899612718629776277832790610873829464384818340949319411095910440895701038573188760413375052631115820234398428176058825119793198988919783358405652836571375646965762584457500210138062184047586388314927997160513333329470970887382190395045111519577590183173566533528978920434205975899965765124934559218787354543764362816928090361462609357445170458845902016417045392541140705366161380082581325486170527579972161855666213264002109367898864182286708951984901159336977804146156623539984725076923948892536911232460808752527841632068646593373846588017720825065572323949892314583837179243046156697855333933064869459798244140602208599611677392773241229089939404776391314847368215323623956977594623812318487445694948311455205734194296960026858248808095601985259096749035112080693611169075666294459458687781439833891321204887875957474390148867629696472170547389512833376925946166820631904099592356227461804425445717892791858331652507802152921560047432306075955656843007662613467057396555923292465607951416164550079268852397868704663429111773921487886809650659551195768690110738174546782763174952805598477083870072939295891369898489273344692947123128694380748482995407548335066067863318859366168511010982488550471731901335848295425830010486712579039522217527721624253684518449150969373841910304923393524086565434779606109025875743596360833603061454379507043610144026174078347823328158419337194076562588691998167505291775942205836925552655946179437711942283232045861880555318667291942520109728721064677274886769363743778534335455283802882918682342512946896117094850174547596189849430486171102537361171028934574706175244884978053356520145002156263294433093915881581370016872761296996878267926212315443075435789657873451897367180557026465990607999265005950981766554894128672165966400807028526323713497443886998782917134714413129415206603078138753018186674854192678287820500633554188683689352242581648206668316529788094902723408678080779767083727421241805008559301317289589298839546523555585327577615163118360802258553018157211589922541363678068315494950331932203469568649876326361125432754261239428528193077323060734602203144524613623133272968472482945131190191771271074297391005668124500876778473960319778329363337840140810439983249300880606727068632895776690511761636986317380279850026516010060735280497916773546815210381210231681112043485756199890279883703655460854447667380171166135320931249700580513405638898684770468414500478562456681239751538055842137211550551959049825634572700079976933733972716053098258905460736048513275025932104668431863685857180155763787193274965983139684276120159365236037814858994529755208119620846926434864259582548591332611563557195224522377789650503944166249952590619172661199656691040067260873257405633028479072382230729496204337480334748361622202506778106304447098279767547743820295503422879579178907000941335128934255488024835646944523485439958880920206711370191577194801306137384057999367451271924480371334830024685182207133278673861322522369973245919003197524670106773136401515251413643772148185295090331221471836472833758726949901086560751973095316922378170479832909942444736256706807412420131347096104018941601312134116313289765841736856349794260299019690166196383760257147269234131598018550754361000076630688349814608466992175594349620688896858914973093403595476296219137666797747921884753988676833183288185654647947214525290120898426846111371009732737833409571515461256629834475028134963105313709096217895504589380342316457448546921854614088418280653586004913991674650303561899494132265255096291492695206063662642789095418819167298632759534711223930666840721407749417191849360256714736752025038932348848741176277462044534403071664128065460548247715230112729774349467923984278839910814369134400056681328655857598367609098672395663197134418897192860868477573205320986955406204890095868548699010081445781148462855167131656499218384346387350546834992782253715962965652559908605322834436917369754901202528645290973671411092401368567810551057858501126550189038758093880002276323306982049093953971086639497309109495035660566906340532411934246519468849761184799334299078011519800483554805401136556338999606328990559764181130833562061155829804779209576428110260200592459040019472191241570011369267224052502237911318473213166916848990278056974795015886957937607491277746844851478384534922448198576975289990153155031346092996187804040048187343439500680156842927095780763733554152050447374872049083710924610913112724188858358461627842217047946111086738668921155583141389873027129836418088979341059431386029868659854164017156320699196554256739137560006171914867223759439154054784922169101848853843699373524501164796036426628546163701285314869812173138996851633050401543890019131559423346288535610795423648610880189361880510994779456347540181364906828064460078226428440267974737790557087251903656213128649087819017681209436814372917825162079281385716976684259591481193492787877800696713899583469794071048524352587062707036156964607664036318584217446829697379795408819280521325533826844264539807843186394320332139671206153165754643977681885614069871995682978651464694079132413540830399110682990897580231324082954510076222890726105339410370448702868762023173832063014410020488084576527788427460475224511185199421228021796525618474752741434928053747330053701465892363144722428344730222813353512572634493657297290812333381266988576317730668055249057576036575610024697876693574356727797671995839493856076190490125378679517517812547736229382992105812750606749591829925800146440437504100878231912014898197199588229782693518909445108993843018994212046802245061072125722859692541963640149806731601866729187687761896411895112672394353648280251042493350926063439791865266730121587871070272083910212129256273790597845554359031300355254841415241089132336846812114316293437842974485427855173723246091917942380880092076052202415336579260844880426763901444159516803557896363998252908302814895879589144806853802801738359674426547138888883374231365190147549675066297359702664469190161648752434893586313042946720155856894899290984527013929075614994918598736701155207458859973439898573523689152482537755416490608305347950229932453751687575345696435160088997819684373062213879667848661614243426719079498354293085205523651193198580356187178590294481984690503360229361474329970764772620517259015714862939885508545064909393794526294333116920043411152444664425865669477368812364254002489889352805662520850937199237723375527053764811492322642486424482701131286626829699929665803472369305023777652346167773071325218534185883076792217222540931077949330272734353088390432064477152072562725970974600519524575188390462401394622233276360677088290436932852979734484751303919344123836144592407667199560894493070027464204732593023969120460117708945719660615616762167295633921012151164315249504720426998507721630145310924187935236436695089520836736744293025213669800609199185826183115854260286997994431959967727057205298780460754624497354606361988802739392701237940324494913923740900727678577868735910277749664155826218639313480359485307826419237243700422280891698084640670572735977906440366099857085987937166667932596739940468903914411852205909590467918825285479784036254163947327775014894397776242756085356111583928836327341962480292666447154860825726939910618660966689497315197779468357952324007227091628462689218850946509200409780211634690401155604528281002220277601116958010338827908237540205062506352143291283098917304907595180350823094028759784870046987773449111773076365360802106796169330296587361558265373158506964967620240873103509523876013223878408537062858869443676627998544086766385740725152204767357349380822528731587355096910276595143511457247197412658571076157033705629348770151135899394081179467673415213113381788243462798523872635533341467706706975530933545181136431824585507017555835548642291398136908370699844178471134988632649345182140176720384320114889318730757043160068054475437662474901680810986651289012094038240504025681922448256535478558638915951057222949932212820262880209251877206554401120767668680782571994574378105990374499949113561518818028480675182721942338775084549665302787475892070134723615500393249890272072618668906400988870618097940551010727724361086709634337471424449854725072675014019529409925824675156263130746191126592166750538446985807222110563276287866489884183014178132921219659145545123205646086940594148461875440808409019085992482829773478817357777666951829918489112634142146722621762512892290801987250004920425921033841256926427762764867193535219207905972321055268122104428480651866654826812975130936347634878613140461072760067732302152453848166018888038577465651992154568882605799734292061665548049912932971649805438595860310839178257395779651756839555140841789478882327610060985944237257508872916656633355062873468993657093467799772841498573111168378543945055379093366431234178057714442657571255337479944220223857253590086827725300342837667315040368218977074990529970371246156157471717999787895805102340963904365023174605931828594649959199863949117905059145613661681012968937339911814940213052008631264133665744412450942439564295540341953638265887176305979610763764551597821925693239779253233707930067906917626345896608532731440811204831563413547792820366277176285284567521154375184013699494347796204640384037937316955893548501291281101492824415251660208840490306609911269051974463946422135560146746479782593374358007711219475358938831543848813510135490373169275429605465296571441959687554431641596232358470054938261403146263343705922211195169204143762162000794887086465483364390775407356196758750368730041096735793757231841464150029775078511192795326500275783200160096931866959994652109604235867485697226973936035729296047523421759252639071399005796190424215835675700102853920108618686773521998747967403238318963707186978794137766766313383599210491939097368386054540458966591139649381959610996660496786010341235339260763008485666624804685980529389867741968734129516637882625097086988139901634059119130255935182273980054719090137246183532780825826768056603827323858953528512372145232738420965863730505553569223044603356464817016468008852723825344563539114830162770149483785239640704861581868371215203972907767877402980799239397972881384690555458943599897766398375752736627953302899809053513922407420416075410036481659441377215561102898260425221585337810569610733167398136915422890389173240848272827331983362146718746677751388269051556745403402174974249831641110955006741336951232375797481153962387477623139334127208057768623861878471612116981966087058731600839005324824272010119637788345868423695629330692213748645428228321212535665457110927404816239086060417858524537999401119470792635323327663033081590622577175574706828254436075613224852023521205075061395063717802858992965603330278561443423133941815655374383918455910310729969677390120724603545466133788404739039165131616111699192618720425626624245112927115597859224447282354548372396449852151254086831180251820583104228828824635241135769055719465561321655184399273737866395421809318230268750989597982623642635535185847615812986199374907738123784162969465729998981437286705734270598773859518188126566634805449094555405884037551382961672979756081322110060267184821971762357023897221885138957283714196453109057206539005755548543525886603484140281155181493628987789914936127746440834918870209569850025726526999337394195980741004979155771507952715777834718423035415347425395326386161331016304447711922456872439492404941009605499205191261654622465647934549409118429671319576029713634626941028798118629291407518923795615320713261797898834490333296437550693285733072010262821138841326279659267060050197759538036210015120481771667836151538219877185702673881454486056672713676427194331763389085385230934750809636565331944668723219067579685129341463532029514328972286422658941110207097663377767763492415500634086902281985607267527921985825483851730449282997571107302381820762192084688575345839676173572226503231004860279862329835707413477787276151540364172158889534560538435447995882945612570645926153917682682091960123618094298379639727823762598669299429695926705368812562730626926010492724156676985809715050557956920808152136785711275190966118534137622387602528233491982013413940787611478791145560549299571511520573447834626819967886431965104083510733563331403527179892878327126816635098383587699930738653848140165961038584797898317153330776312337460323931657231703567599513365396069351043836633273488243817411342111388794439701288529700270841455023918330928859500134153261630474452676630334898768722129222631513216699370517289855467796124572738381138827874890166109104237093058777228565242710147335937706093510826380572639809293027821959347406694202182608093092068188265882128905294242627786195975564612224754911382585224006340992618656965219689929251981286264754403074398970933807025039956077929838813776334501138500105229051250448289010699132568782937505362019410982729083129940643580123419897683411980220395451457797139254855487385390055919494484098858910150366416773212485345392139706810009092497511207276102049618311275473380657363195595625038145680001520651117390995273557312564162517148590752415175345770301440479304417941687544299696642573570641926944570666079556537726213093760970172814771340387258071339426515472614450897137204802654815372895977097142276739343114031234076243844022683786128319548241412544427869254532578616735445163400341808268217021948774198690998418456480928034637199641371300148404595491266453140448807669117293103013866867098108978438380705975125430418230451776619094349397554671579388089033829957748046749048246000582750381119239553423126740695309396329869424694629343354505986615257268247620479799080015863414807980795385959940976442835136288430378045678042009204972750353100169091109372674885530342647825649167880966399601792535476927472921312652155526331004965928207577887849053941704105359284950658606277916140586247526775366608438413344590697562735954851780832995594300055355165461592708178492690622670022442110065553476550479664306819254268852128466498766535646585884853536447862173368120986436701901517784918346888660734802792936129151568973927987549256285212005710529213626650969732162608921930934064381825876142564637181165299276899427864281496471756480708201472338966567259582005426924389221389859327949464727137991624776382988590148783252460231220273351504526336964808470076617045412352334448039288983270175029824206321477651903275071059688672822590121702340673487726085289670294136762078272276698539263557490052117079731683093994287022973956137452636071508441121678991218805155136924101277065625905465017747605487078881414543538492490627567216108283864078429514386842100560022659309954552514811484975449532054601049090549938801078481880342499243783219659423745951987868548960026672623713553468190334470910931265906499781137799278887331051617810096100158882781052470181209670772495392587591561402874096690980943397261503760280252470874542520189659472602955136903232676578273692395507134514707477896724574114357111562422890271459719180272706048376029963989753539305373672106937917745614038466261306825906132063028642805865657523787522307222711006110539443673522407632174623887998102913982332084137177291808714452232244702940166597544690891326963708820757224953064169514177791847598582778882040226387055154336231073172355807686678201707231259140878021282151356258756313997114589869301285941027307961845980963035522579498688064055279442127775391472060860286937516710566374165031176595394107004722189468402929147907646078488200674663639319561128204512310383394405563287893006795008609637336537066878569256138074870769493828648551758451685537582658810951795956043623030693079188238551656661322516411680835142302376951144908853769158379068013974510979654878488232098193218523193358074393490835443213705232673354920789895411729938878412084895514970790585436497558130061683237332598685227992714305920109037864642959302044825705254778493290221056352335944509164171604782460059496682452926654092662963912531372116729323027075190050221685288618267454883273629789325573480172144362996577111081495902298108975190007527387005290496120208419824059468001739072512984300808828577097195401340889598254299881324177596018404692960287393895527106169558463731762304440656161732875469493925011169635314368625164747503694435314067108898075438864933664979060136677782469871873190431651813209486115425685982755172066400050279899880384240321523594223305940473333085683223241544988410983367334618967931703091166616102218977515978901867644619415987992277835856801397765010171424284634216932408425831134882015737499999789670578417025997810919419853756512956006727888773630585367085086904582137366037136643956940845551777040625993866184321060839572732298397114421669024379517654591920439568016093569566576979034008401469385956245789855208081890966880160591232592258493887272374952193255009823434128351230574580809519160353358824840441741349796974617593247665317731758907700302980812891999631540629483360194906126945527318716258310656339745037412054360883560322738797586982431534530134244145239779981904671220074808103713212293385088703758365623224800233176548151591693345859224836276523915328683280390338428468170562996990899252368664183144217780415249517548240639801597132301314062343497161576693353290109321499137960625680698965602206932339165167320105850828487911994179316280750143948630146492575233999203735394136469018684260302631284704070978988941770020191100610118852447397785658197950413480992792065194038574717174340558039267155350207031320831974244933902809425919113573318037772770686277471089784818085114628496096826490067864034057217467909813683212631757141941023725990116975202189935952633110305827701815292813086643993958530010116883516892594109931772182989635794475234919710024379974316722778825464541404055480252582370726268597674394909345143996464104404964543798661992631387908023220215521320250342422123308746711524152987027400861678872171660012455664072406558442226624315139433573268766356160049804421254484956073894083446783523680443908208574260477037773702965684582892614845372808924999447566169419027727767364832520974864817302831326151820782042990082957259871400870871385202805142796666725047207536732997722815763656857758460010567269880092472625281890449010420869164760411248584692666865777024385141638792065971027231084763874263741153249777775401732044333042583176422113968230106789595957098682873550495204354927612202016033823207578690734758274264692099979939523954106808085939554132820672260360498614612904886041508271808934611867924613582030033208140009402434784111305585103588111750101365380072797163956432888600590321804853139361329849314379124121551305850219475902712844932488649563590330797605094045264432051629007815303694776998773922333322547212246331574597110742771256101693004659749093248756067602893555040277826916946917984731849451982037890260323881809688458843042869686658574144295942147354739978890405155059816427026365765551723134069384517469197621392759513799875643549005042839491128169694559033216636730107018876467031399653391015084179442048473936821720570237948202668194670153764907845223252917921300979063377423004939113401624105074046516571399764752436540117807905895468692603023670029406101744122204893891490951634733538410415878964719436280022338160031104116986965033080557852811966244395331914599086655850192494756711691939955920222186188482632901781612028644293265490177316656799733039202327830835690802086077007407641915203828390746209290808963209942842671126480604589009104982160550338804965761728370961313870698049740432166106832631127016389960523936811028488201001787286622868822866069693284589561026531729798910546817488634949572115364327878043894894124670220878097126482224842468200964943097588464713394279598724647570628018409840826936091408425604602901895467734837512261395136030318186091020334872939302345749256087590636969610695387136661077669182230268621370262683092818102150909768517625368099798038189534063757120859006379545018237530817063850613048590679076457808144032639259166306285823851769468088328482755160287866573770512980917807435165177183860278906195743217264432322472108469686745041000152895780368050812464234091551491313482474504346705928136977012472315460972458853641155242010177767961874566890414368443494873755520519326656651754303665921639759811326136281911625525576284957889297034625056001493595105193405880922731711859627041412655031917386534505031697509430005261332665021869198084346570725493894160877515396335853711772035356759034085635446675124761494629142353402208442096975392022619693738307516816045331371119655817172087351904796449903894577544899087272249899471951952077070985872842724983739135163328931573685926972944180465063550493943259728383073950791397525832165751018484896033403973731319654196432257841217938057023513577396158010605080339086811906333529651658171900472807475136844758243452341869047384897931502694846384079799482434662490618925728299739999490951419891413994834093861156899590292018851823968985118132740777186367335603215206741211355496466341459383904287360864021495001495219466707368811273830707033938742112675267912059635905630586020932408346414989021991822585872193948972950671548344709195504365981928454507784677467650706613888579813665188678520515712651668482128932457968752698877596029760569247321756845573981265602021348530403878368189462459310899838757339165636274956154223212638380303261006575255760100693415607912796640526248950559809053898790573923465691244073445074863723428517495466665398866110822344597035235575747732407425032878744384773208305961477350253088141864780657001192836137112951347138124671550726459322845754367804675522990205251664995566355685288205228328650993992724951886431677159482855373669273942107351669408914007734633656166340612042610699522859484063423371303972247762225776301943792257779184547416070015658048449942972416718750860691129100213991831815487369150251402790088380645454419873126185550369237023944714607342735566445526195284500297341185349600840986265839717827577857811482057645308080330470738026856141343274227138469247572999942316869131638390155919221622226362325272425335209162005333877248198513819796604504059124528633110253936756596355127848483610245292159883860493684507148192066526973083199170061892942274478628073870786750474514309613858706789321230607881721922403645732216481722522641496868204598842492452664915329270959120746269102320887427065991137063639737413396266754196502789836493703338693885953610857614914570621497042510662484954970923413552114522205231672014710249585545921653309813674872384388228252991115611555963232261014904984804986263037570214720610739833950577763298648810557860873833731956715859921726869051470241667027517479001060429757922018290289455474916643116357553826676455740745510177467701470135549960528976284915674659283669993116198597082540570176650165036284627028447011815792823559998735680592095684633517062446290852504892400094404015839898091041016014226211316367555636575449928181787381197570320512670654934737719809886136546184996877099325945338291701561628843863043190593705541096790783383278394588759864695120626866126105480363261238254751049727364553372545134256012816146476453818086092251183434477167233418680386015261459969496203781264706741467179234510075328247841879489990543323653233689119533525084578230746613099044320226025854480129324283552074633761467844356174883591484373735116774445578078536758863031682922051215123839453055726784599287097658059393525167478170959030178749876741070618333405015879386161194519303905108125622566271918005342523712464101083955042782510045883276484104591880246856778560730710179465323888357967035543456531707914932068788143907132168093674795549656645542930301637529753900625480173417466067023410869443319618887421254851666333532602480139035596488279695599051345826205672900505242667512763400755688349251407874876365087235252825998260111520552057643022492226339046205689836076856452467409749483156475277937287816402438056294819373522647664982000669762838214880323423169501614846723662808711563613058168206001959896818281491948181730921637549659893179001947149282024499411481259527366098215594682106991286045358029358279241999311451733888135950015549191053789121939963564372861451869804127228886892928789611683262046391785724445367683234194298170143675070019511813584823684127344277591127214279649739745892119482576773738720725881829565234134277816776126259593763438931873527608484796310580076131806271683304798852722765730618884717040112173704553227755715091219159355588180378185781406159746306026126330465169188219195100040591998934577143067988464449246426868128192436379223615342510080221211424538752639713572535382512152317951802790198464679282955177949847764609405949583814646212996040921398339318940731389406136630602389647721532587673416334548882929457132081361813628174251763896693279742505249668092741123699711675907880917938513667542761440731234035111155386629807312532660224889373085716373236128770448264646231954824310138721744192793989586254531898578942616402868124804671531698579221467567920912560971232864812478364507509675791963810106290091568196063573551645097578350413349052141577361293034251089488894724940447620708353544458183590244524701386169719882826021706372774157926141262296283652226041735534045617010109268791396651486127072905017228964673373130311539978994260544956977009020645767275481485951997943109035399942526202580554597662769425861374149655515401848431140761637605244840280132805739264711989464475762931357341969111994193125180362944756452350692423090991826060055444144156214875237045024260351853914632139516420368818447834843264116319555950838555933264915619673406953956122450544257792616189462449517060290102738026571611804006764772478604838040613733100977908279267662636073680671856644808130113570560007799584069322109088925334984455569747864661071329692454739783238749348704086493871201923207693956654387590172636785543470183511189784175496613240498506043179743906272061014801019010651218275586162258931311161575537560972767109175925202901081023496562770414628039306193473200390036983993644260264098007304983510344300295900222762625989343729638359634196155500578727172015090014331057460403830420067776233093159868249443319731779308402494487265899786635520769160526874046991051999795770912409790948669174885383096994248956242828502450770651372587802100415892008686771503869631944282342502273330541709673185041765110575815985868565081288799007520579399647605621381426027881129031150838421065597460206207989513705997195897296196480107153178026023694781622388323872605721903433270336837776129434026693685833965165389947876078660526923582057277597688035067527684572206012992041768424635642746208541947834793903726606583698120642242951017935714560534403645172658795010172921608486436478547239954105182769348310158250080801539712718130273031237172943895014579829482752188525820458183042933250196998611839701618294654673189472051714131030890828712537425179804540003010065298632795697281255879188059254064487802024416232487659767120139211384149248449796352538089583423360270828842169888158316976028041320835534012364623769392495774296857696849109098965940133736410749643812293787693783429579950529413557893209283173000159948091353190269507456874008381915209488894359553921838129386646874795956890067018872973018409536371455438688167087415780273691929567750524897727405043530211860107011371719980641434362142469844501929233257744118913612970509333400612282760560675636254262993325110855574490895914397862528439136350168038847369917996314207379312119521492492235934131269025230756794044335895125743136718752643771886266547839574835042724306027840454500036667365073705323628183593239146453675255046797863943538226593704352848930630594478851087674270928546080767551647932634191918332884691034695056226429182091568819875188455847204521603891444712746341544957537292042227704310753741586709258261174172747122163236742761750145460185902899283645942043905546892749755831007542565736161484575488495159528082087712848998386246836569269709671241163842032962354422101695041220196247026235842990182903818692969034380036763362851084396274948423114993699905015648114502662149773634055247656090910580875319340918815728122691166091700425538160374356990200843212217444145096544286678798749801332391378259674830551823139010448451241409354222652829531441114206623590921251595893899878258994694811911230704570831079436537746846945771026816724450935057354517170926228905887724890263649180095521834323133716625330162653989615531710928661315073398124003859707833547979824655920653313139965714609216348867111118605193203271207797923445775892621020218358409105951081048930248631500609995222638255360965943553031549508691881218494297255614066783540450943174926403754308745062236268916863896380457700555318060468969245845505206465984353569083325277040557901483012426044425063522989211091060867618003677023149891404483222430326213361294624463116979976000081744637830579617522668478192939050917575398595945728122138913601250733508285548997948324147243357005864864755175028249412401235779211531726917267614506584845082061911913472591949618994664829497065002235437743906571877172521122515717321151133220860833480454283806378497720775833489455399331284770675507101273537461935131383594296658597801991263405542200168879343570039018188583257274589313075946039506534765171291778840996309869237558056408812047206067890698974203460991856744058690842882278800445358590822630223907694997534097921286166616838724873947806195186195012226985215518494162935848897427933678893141996325154186486168961397068924327124025138421594899678644306993068159823559622525058506143712199146155187928984344768214916865212689813372554032698507658293196477723389139058428084327155438287133472156490286257480723487630689231348170500685108164571963087402301649363304480313350148850249648844631668577808523978676571333595590641918962425814425752154751004160135108193162994671668632199902292157196862856515202810825666391612702503131696108395937771276971547656575303724237358224709238444662549103017643662528024826481645868590747475591614624727691298186115990209477111940937880037804958585218994136902055583648123029093352924356243616836243970257508260002117816314752312509138338669170711922617156639026749758225698320798609221712745530005987598215224980208485349163750767484930358701744061748931097534347078348405943282957966369633723956482010433065620546661857227160692724570949386748019192471460898824623816773818276741605273066332031005277623730267925198339835836843200574494247005997286625952069903674806183641784130091145916349618554401072703798374436936769094188457693923136283365015869047901578135368478920320598629108181805942690503500492514007630802408423202748880884035174209088529852929481772094690323967813546243645930850282318368093232236919320885324027563910238858420285792661664393315659646352293529182436915442609421872572112210863217021007624984248949544725411703969780953642062118430018866967044398682105499450232910685663202871497817728554887424681685296483658122790170064248040584957500887109840654785875341391369273863513608995787479486689400133632596379520952556323927759635389511438690032915687681405886772650452798215908810259877565388811348636234972696187158490778197353861346358114347663953171027562666724804110681004163853638894452939786253431332661947921212780279871020813913565900352335408027130340150282904847450332836342060567378516122646236914869248870745960251760301949892668027000358693364215854868287591682690759229258409389700584684645873955992101301680823472384888622677567616991408802892229705339686099532599104461017408948956128647802803102252124120734291120166995969407834029222791580158896770357055625303800762444403072715782456902334306455754795877642222983724260431386653433639126033268004019744009017353993005281247687143716171516908002282734510519631488197142512696224331465833588967796403792149749615425332724088473382255330692298064500115876828863271330478683864139315415081764131395190604539706764710220640810195009657878878481271353407949755347439231583817777129431138358553408848640679312302656776497293196092418501958155290365870821063849751666460747601926029086514284579679648506157190836137871179049579270323601445882902333802274516782682373517967530094740868393124780885929586716680293587997071578975638084181350132263226828373492738640808799588963347548905640661962845246675582300579811670790114283483373959829167149390367733478939195763070649556147863772109447071624878309847494089740082461480321534572751237538008249633152693668397785942301843695424261760286143474836185128458433658312876730351784315128602688693911495553251476848011622639326240538971595264571736122828347253013492465567151363629644652523565004909753542707855528236952350829431831069351197978106290888024912687226393987014416246041775470423805954339953530875600959885490433909660051498353966013191001319116060246669152861526649885295310872141617256679671964854955359656370311531606777572338675953205876011274547598000148329977777766921413461896123440778731007258698546444989123439559458584977140789941571802277670548972541230373660046479153872288270678928900166013035455729295543820863026523588744807431768598608500384137908468377068821476618727035398410471384428789892678608381690266018747304161053059463378787839092348766620098406809000206558846511708026608410390187774147889670356894012160245816157008450935268714344716368881216184566359199466379059379254058734187234242475349117844012773086317162171001810269976503040778253587167650844923228137887300030313236910489319162543131187835331930521694298299614675765153321432614485842753536402181888924306723683616017310079119498314109671550692406725076783424366644311465884505402933156435543502972019442443011937814001762378577687568719183364659496659457219351481462349481380696347776454624845421304739566570584919519978092650136507260047758575933169625280793883506532889416898614751648816878004945442000997974711777897644123034075465351683875533238910406695299318921846073188544737014705142670655451223618804754028869075217008722457256749029928760988619089306254677800703280107799204130715130123153943689637391416343592169257372890708692251797431491796705981073459171218800210241507213804592128893792166906935782084512373527709851323222960970301777215875916498355688417530916320039771544268860364571409361728584011701568617972977046050148744379707356418757776487901253639485933659422571802825128675455047702495036106140475969055704332389647871959065451340286900242415802325822524420715504516454727132574428963898009504224097599264733519459750330998502990185724532597965129916165290074845991023284456860823955480281262369615823615629637089607691701176278211979903002824327237867536931619392704632314106307009556645088021524161472903315210153636919659567361528401957346577006732786317782516183865658762843685016238060191616566757745594593533583099618111676144416194500544820778994801068689340480903333407463515527241831973872006575655188609867842908630847058876366662419531304728331108077717804557278598515434938783204660790981982976942979175354966860478828582493284595046795563125628512863552184215955034034426355962355804987606327558433714831043680238454293541057318820267557734278376786666118414148485691821426199433809337501342797402770998957989511944268276234064767066537978414531757594291255918850628596484507153183209550533674061345992686631343575746638683068182822795230613372273170291763728847085600090862619304039385958978865479754491985091606274284875817770748195411284485869192110882677441253679897327908145588155671703353267652982366548621004000340056997060410241633021693130096777672465370773843325894047596973572031021688264840733771530312059004110094365597581733911904776220625692214234123188647002295301014719224637385171860329191057613131730029895093720179328898983633552764278663427529254031433579833772895843565843247400706553864298839334166017590027437115198389999897236514518941880841713081077705066682411804217601892828040752056858125342302118108967722145206113336869839511474925514432177184147148902313556859852985235523189218509914459822208742780361733414331217310576985751491550621460647423393100583596114935363304295501761880519600557173871428713668278699306602812861546551898420577334107898484124669613972751429133817135996702663440321615527372950770578797780223478210675770589754702931927910241300736308395403891261830201107664392476612616148343689138841747473615196888989792038312188204841149586948461168370165319456710914255664627529426956750163956295492341150655611614378891877095462789545445952840140227077546953343040360631112972713683591970251077991599410055411615439564959133915389703866990130684860453985966213481272714872757256994389022812205943741291745319991532661718272985781130238319341060382666170588321174740423320104767593317064774530800922837299183207515508698895049563363217012066593587346798822476770002859041364401939419522159689660492823422631695079432007537556420180525314325072514663281521754605302946002182277071839665448132374266630661722016090978250000584767167676079135522166781959223691942952382597147458533728062731385150397139678925458516240221779698222668488639453105704830760747417502300993557234379790167625499347879679799172995105569731273571190935098930156753053642806990101494901724660422058564132711526534409238860320797565306692034100415178198923218600360732226021095168906455438422218751428110066392615553782661950487191270142449870655753485236736092468115605381816975649149517972573384078290318522832735644713921376256184440988104597087269462720619862373640330695467590464629032200361830341973904210078757637395576990061145441580384676351133999488057894242829816975444362170692758106448099885098843261007185325828686950566643239650939140686655419320128905495228394102210567169867034141652550260483283794340579878348916237020441930891840283362809762475849631689998256267162280877287944958804331598825423442599556434676198461563835913921615396945463566701252030271551388771297399439709607564246725714950618900215286796395070335133636390231936988930161206089609034502475812029354676535427333930927238576647662153863290457271273820986884487802374437288008633702653389211551278223951762614523850606453388920177450774184815948794792216352728374059621756124750535623888120686804509451510110444828561819014513468844823321944948156466512826486000834462712289870454626471585749759701097733416669801501734384386406317659128193278450411503727753637870001611653893795190746534451126334174596904453895730833032358370058756424904689218506729659503149569303872413356102527540344705710563715526632444111101232544826308196700036703917924502743241207157815313378536297719428836954910123002312670531940113643436391331981226378276777069933487122389678360179034270920725682908343068737600600558373495464348034182266827379231478699557475259454909109770081597059082540463531521157789970450878884333501569263898032669470436998375781615177240579147558481788901494555225935156690690491555745637230984018296601036389558209133610459548833591460317570460388028874045163469252474351892857609256870175338645577005415183570687431992922072393320727593156495422909203494983168658105486009883111952135912612668306924914421884303858052171496480976115315451388882685343949967070954567576937798846466798518165380973904513554476496898470189805574620067268988803221070347750828621303244819775319757815559677910091538609525959318332390653418606505212079600195092477467105927022500337960212252088695223768126694914449544740427748573746399031608034067766855204521780652373182577003724378871296309726663831980887520544547664347809803983585650129689174352001522017990674282977909986172254292107572340956797044106421512034009531362322771991909391941576056285435533314360881080809390918401997494544353583279271042311313269427251904274258440446489178977887418450440773898393678868206966436253914107321427046233985504615317923648259057662882534397224536070643075258710011426486885943020485007794262430885622138799821102125468644820168599279361368497442394841832332243551739233866797892173967079865993612681503546829475715187656536307067858411818847444320205686535313218957289752882662124085694063476634428123892062068379516993391406460988479733222280089082924645898400951108987848139175300644391189162290587025003508628565679023719855630961824553122140101559757089175824821382886887260308020506654429257985323337724450443235061782812757938794541197569232566228019072724084474534626905394028040391303620904524475286715417193134961054472977750425698728632721819261154191233537373572557147844112252930894891580177738071367001939773038176513458173383633805763010054594365559969879977879472043388583181294375679489894109919361072344768500579929602584340531546228103335568009777864708084459702324243793177176522974924044265752819910854581177456431714694595441246364827243784693820596204376124455862077871964526818030773846670099999131256599286771044543724621951455995905625305978968370663453170869641078859527491835283556505094166105929212459575226326513936669113945958855683364183076892348123495425109287743194728880221231486550153584956945670152112448413642564745871612275789234352238542173212235961962501627555658816058525813157886126530879852022001087831075206663222714795327585861539648386156875378605836713818300225150994635078164708924431325901319318235247640415351925769109107311942915325567242038052894566457258523969935005384076672654209423124712505870748485156713251575218132391648994998958735617095693378767826114249601880887265336236017757510063527532893133147544581487334270805938174490413626454043809258020014231508466928790561481450792871335162497219714841251640198685074751081787388938445621978951986917518202206354770966399742849927121258384890245370452395994784676573244673015496232490028112828010685751463852368881389455916598388451576424105281018042128588511640211108185853221938162930366062458569998144985728154514822272899332903426338526951768124560680418903746522431178531698026550666205204968804127579349942278782893966028237289003601424160894129603998498716891662886311000070618882584519101014921104026489209634411142527829632975691642650385120568660889128263749053749063851336920778769367319426729639318902503908469630131783274178894609281262417479414905463728950558913792619462349347919630814152806000236598951901893683615539296270304588463083810898944277171411435704759485599422277845891723791206045257973963859164524377034734237726557171789483318149004102248003070337051945980931881195404856477325388595999366896321502634079607145317444556560263417981497398253667316571224951680785372469413631741447739797966103045082738174889287738660341461250362043793579846011773182926122568797921477616243226021140550656259216513460866584646637068612290633011723228359501878568954745477550932094855596997189722080031057091757965347846715316834043693574513224932999602317432608330232477895366777517287395505477983846916164164335813712945216615123228512849498088217412880200903871107332264625770630724082966117576778158661517151848837972425035154921966119678168046714482907321143963676186112446920978437420382245623892197892330675099331971824713681533330680305111656014644717225615264002994176843380572954344946109071662461565781809074265267124745230762496494052479704694036564660416406169980204262299600911732344504112879830117435760292608611666396198051203891762718515881344597832112649603422062218173482887939383022629442046089216805303070128777207587800181897870764008256631698972164243036590856051863905077746481290733525554478529918624179061432593582116454533872429606523369778069496056689498992574607381863083816444107274154238062649752447607897777013122312215394030469754044361369580447252160846666540833502930528160474310573334599373268490061134252066107094206455426526026507970316077725234784672101837033516994662089287273727968538548816190948567969419589536910672305670050509665857137753618367395475590804032215284554622074105198648931458894293173032792451697457226849247070828283442903768586646875468163035340277469162569741056962413763504509412172530811944130011741089113939773701452799612863161836209133383108131462160229830054145129169805266955096697088471003733227056980185919467832271861430349606729784306642417389052933848804032418552122589985898632295682105360774579531318997855392558388375454484370827234547014852164784703829864077533696780263363009901826388595855100067141616209080142608809467471341713257640594338016542076603062714060433253183324517227728408001696591668310701665047727510068888714782592272657176376787951195899980711220256224182218784209309125393188401006773619792317893562591055125122847730575310187882855743848540725383986734197011478966616446587216907644120890982131278475344561395347721888882848294421326421931500267269323500649014963875102624326389976914518377982527750245802147037730326791638987142186487044430549379037938670014524750415843297827358458336731661743816250459731141599961409502672527244412342255809463948936744062148793960494865040749305142912177972992868745286946215487087159977978323970731118687170119350563205164305163141284415449203139977733145285625449757063612182065285765995323308887307157082430080041486592155930537507477452259483788213231210283577524493532760486361970553712314999617343251622605163411603414698250886091268283224649386732241644399252056089533419655000158798446272411399380302037256377598532794318096419410744278822712068293785994097177984933400380885237830672130432443429955757884781656134066323471008482540570013032631109096664086954634326470211898814321618817030846942901540873268732534649775914931183290075347893158728417755267308275721904364151863108936808489051345288545280930175184681747751022302573533465568832379872638482185007118234977720601105597427008309586643972700760482788805281455964082766051773744002981748666557117310052434076936350488149673865132419324606823073072648239797723305474826890985370432786367087336833226343716055122565214074293599665363283033925387535362776646646954712676468197038063228966882250755267294198346896822922494671421294353769722567434010350704685284257274156416987317712711224170398394336543877611814050108120815211382392143491813705453457270074741807321245996488553868111851609447552590010137029418902229172277754108882834148259690571089502278916269179525175547529168659670524855635701548899777356260527583888396031336088034446789186785950759886582192541588364289787661677064476024115405716696373079716227990782885158728934454623865828172025542695464477594277254269079536484638446156842050638510581254628938910148383639723438868675597674812276691059676528741497601609924509589933222706098569146966135673431467722373886395476091936931593137973895741188273442905620777102051369639157485324798806398476902735557301130632043691603598965741851666323224892521890182937559649864962172723411230587190542912178387018053375292582561554355120886878473955647774656225857365322983311717972839184683343661950966541660364431806680811322135147530561311313204288297459330797616214042994950756384813230511895015846916309286036663438586475711766686639392162587802681633998072659210209267495868639666000424354339341902585145281279877229229426278868416215163999092686889341974395886640625026491460900026169551138381002350353868688219181623685851261032341374638071460518238923514865839221925626024142231788868874731709900157838344758590114662526814244780633867385271284259036958445055891421801260162691666488726079605025695944239245890693306615281499046999812967064082587264327658468803685416664455263036292306792674801479276740707110053558561432141721994907634125965029625798185818861715943797000118010073271875254220638969358618467579796150203723466232538936373966545447232301986466896498814858493741291113441521038505499055720409252552574786375206301255060354393881943915733424165155345588231641945222094032296468874841899468253764017083351869211995986631249323074591258767834758437779110538039889055198551044332972485623350381683326841703903746162085860914093901554392455899419464790043020209531395216600097106529071994615613705032288573154957220060997470482813126947742700730399860059507153900368965038421494929306647320750623477589600378430580770879610322390730846472784336607323295578900785500984125071810413335472150101656980753425437822611893424905814837853776152993000727713289796178234736193275111226297760542479572841527350927913859153809701934599068707932264408529734196995745870746976863252770083879400738414775518173407049986673647331896848896173678984115354665502564188807667670214797793107470385384883746017605737322992790044328133960139510631328132592208180706921561668395877596203019008868986058667828257768254514328859813463077766786842137715555069515668137672661944733616061299862556759150476202027861630854807679850628270342273755331960524782689135439149377216234943817258886378449725614549374121368763753733518626134605057500341420475983353219480380046445150241179228951889041323027494644229284413589857193730087791286752387860610751903814580508282173458848572003167773780684676909923186990529803876650314641719705875945327216445341374134814824769069038862645458125250935317785919540137789946631146760874680951756473833792625499491030398146024131978597188635487315048413276974479098916171451110670764468290127357877731864058551869416981558472279792398618461430852832207179910802729863465447843101726609992291321427329928963695081372678040856197661088831067671593459713710654943416899455580332148932784737415986681025165659558095452229997002314636469928927227634193355494505681443071973672973330193618691609449958451263036359075283650026960974127972193581038784467225092834483454605434849748358667375181917283630073552817144242523137060896532037626688115752632881897104992902141198168860865492933410388532206802423037752175348685085921001041207464191289863588391185076406237119431022592890686499243218336044743901455014083456965753081005378901372028241540594594410738317451552583441441784732481507268284075023291271712509238677779252286671992274668315864162651837019093563446190329086812481614375338626850099790952049513068234743584678259256181250668640888282445774431611097328907942871420641235243958197470123844777867779774206769409459352963030072686397305595025703523607047549141168076739084411798519654435953785385358324566519955181092282584096222875453360790362043285214061965148355386395656572263708169924142270765246417677172348867688124302767609069427387296897301521423336001600029256756832644898072454072156328372146720606556728107547335774499841004645513098973089699400544297097014968424742420233600126284174577741666445149984392086910594740383723982316542798063574076172785080225303787960534522365915159695407805158785715503671143428264891834159102140644408557712365044429949676767223504750505611853256747619300406111120969425121358395707682414188618375743244077127718315773568337149458449381048181892829074683681843437244363055181934575516662579694440865536647146910057412914279897394638599576694465965702817940363007678666691362261196129322913471240879125187116224328352140828011696741942508481023900938479291794390187010102881449372413098530746274662292872288177964834650214621653687478390844620185077871697143384608998867213569075010881418438184893564043124091717441287705242651111784068360914759545815612127483094567730518756581581973373240098160757346549718202153340717545374464857867682836337455160403349102463227783683779403726430186465621311874939863824430356467995534290844887395473313936367060899388088852973705340719655565484561157189316063265305288153817954556313251027480645496350637209608814604931670515992316639074932374446969486665404961936239314109202263094249219495808045203158183055583776719962422280860846345724467067819054743529249711828565742173993100018198545395250702765209487263376218746760579152523153489006542913224518480478173135794015440861209024464064332573145268059701521635308555167487650677284518148816528302260587555206980777042293018900457233332173327817386851943412304572217183953746168313784620033855160592368470445522391065891166147217885631825796473619359672924537160070297892694041925009778072276621232004020380321808801492389887481920056923411026160779574033392553344965402121061711268039851391159079991070946972842493877912091731116489752451169550166205122909563080092309443240532519308495974925228275626604839024504613585101626400334856955730635721287635338487392060118170185317328258014611928357458853319910945353625852411366194197140388573197202127529881483214633783911730751022314089454489969960321394806617007191566474494116618556406462536594598552789096186005521425952141246296055935020679997188873785489339170983507616080267612198781720602213187950845516171673030367719699284100917614100976892035055644657101897845069797253503132766920677764109062142676389374485024480723942233061417883980172397912241839090026628978288633957066052978386089370093075758051907382582979196819841700911511288428398904114414645039292985808467563751805746362991564513649521094869722010526444298233229761291393929963882493785864332710370409829566680694575199329851809127025026459913344924202769703409563752825810994942876334081152478745408745509802983144788435564991086694380400029333983794390865941042829186963863752105182168745312887816166386065259107819182112899518441778681031003596612854330597300625571599679425387734519432887347294661088177894640484584339274583060234465852917168216036668330299688023547400582634502084819142435786967651916439811429949475313900299019412504919833247162151362403009209163222249627627659233880119033388340503278269996520841106925111373464602562582525822525413274500836470921741706451135544772372792778409135235239998457846540746023413090954422348887039302163566829904896043283310740478768258955688023032292621492953632900507227777073072211441151214202875652428469950228326278279546229263938674958977107083865728967927121602668621008384924463663949446824020233345436216008414158707635641512346830786838329757632525411674815518418689669901310474741354821979859176684271012578535941156960774338886773913204275395577017111933384864253982985335444585232922047870252286872921356314632922923621354360070701903470651795325197005982021436749260975918001471791307249373319187627119022227854718032232499548258884224722563280954723803300682024957261701472450425069869916216734121326913559001156125733171546026075861956357157990846085880376303247882998188485565568770875008571264087040441793830639715647074112674125450342835518455849897345655501108554838663349266166145311589479222349280655605927092013480477734354285331405456045194452393906596852285482319964197178396695135202621065758747505282435782656477278867699743913077008856029587336375339192067142157691241164547615454281903583042254422802641187204381248127907110109991234216147801099595704053811366590767878875612350167951974777440488557687033822472367700343200636229040350762567657987857966992634487127237622120244953219082726217738986054646155422473211630098427454900908416336004524981454073237849569669213273999877741613600190469481980299631933527744258710450608487126622457460260983341923545161262122808954019316418116431583921501718129339996102368019984332661544879357683393566064176220712360014586537986509081397835737844911080230684394057953487563402709474054540167412923804552884586613451097723245231212056671749599738095428433794574997345362433846787360481316850436609293362593053662313620212770683395305798725053936553054020978156988074937086917359845669102330682284907062709417968256913853906536317291036057650574540726340170683098032257756895059750578906333500693455164858454027628606121984406162645554327488975199100784763581377438120515412124429139203672054594476894288599420450380188604205869879203363025847416936305342182916588096466507240358969680583046121890322442789468365688767381701212812358091260664787364560505061376594762494684443619513663607699206097398911671267705153303644513147993620591901784924482865753287374876157215761461857068753092848802800422510145922928352923297940145282828321225865810979659251315351236780781921350709738289931706434809653603343864238100052230682231571372152697048419499355843010647843370309347256853549711498366947823088533929891998086355317669413486238905822837390769747027039192579262851274591471465707581428138362381522515831434278910808446022908845864866752793285116689343027388672385592082164492430781114274959574390217679688801307706068514049604927249336105936357721425089924282307778984173400525226846033179998611656892545312784570588499928558790409344395878038884745823473829730962161509902224570560208636968496653220912213711417053672290870505713086497483878734211333559294648370097799974681444659149342568941337532690841165961638716185949513650925991741767741629515263462303864972501743562296835405362658535202658978232622430416530653613053811603459404826723054678762924692704520049585856145998580615875342272174480067675416235111659363665504353799025302274593328161316407357412585493292683568176753215574575161561414305844854810021445602965074839456770090465644042089913858437496107363260631472935038891916533429686188483007087161916109805274469120553992957676541306559697341663550038883162675681851343164141332940603843754702747404182406881302172614447793221524414418196548025966844080802897371586471612655277437364809820859816201333029630267579718212691076886537040927125811304865447252774753871167277761724708384981738265657174496786371532649918729498249289003587702223605673351410198459033775868281895600545319351434834190730444825097010907046580615546077343426625078910732688067395246962083451173248399170316143054506844627744686306801690160699476818291970683436082329295644881498258457653957791739188652640470120688984867635432828273361726016586563284865865675141014367738287399846092284236127684674643959580223115497391084153457740087402389216948165593637100995856810278939502250657369012612480490244471443173748425221585519607714181267123466879107439049231918747160358547221854835257131691954785042599628047108062377253709291965710833989857401051162019197273750687839088726844479247955183236358503771397116418152863154563458399611432228086961140901014283262541961764295672449434334203796382630659429142369962203357075074657869377179099647092660728029957364597885054976086725506721667712838814332053166282529420342882861477295579555800348990514573547969459224928785493121682138344708959410576009157997042304662376771319311786087652513969719019110128508271661404183642661905589223215751820419108283900576648657723668373908577936016243805193627088042798503411454027072094979012270592312174500757751775931468762522203714457100417303752247975093131052244491160027422329809500105131004166533269160953420110256182462526437568414307981062357332354656515434209898194662521147224885110967884251864902830644643076953023090522415295752672641463325087362345013319933779956953023246096644611835690961494734410949788583418933414607876245161352353088390904601804037934155099883752130424360422262662445945701572093291078930485029668946076043363260490644141832565485401386676947229159168373994188165625374359091514879700805436910691115267502644338378509730993006415459311997267535006260875372745419505576558927572273634984626590520474442193973276956478579925372584379499023867357811236870477493369163675581540859547283638903369460841372440376997748077422568720803161739964674484885756779158341338213139505341418308698714527215829489511348754344830564304906074288434808816952543139727473405820632235721838170803070614990671865956823617114899502336699605945748881472273033263534579621566321912125800168141774965641204216649068450949328700284123236507787165054481869328272167622408470811787462780929911351375534253778313692809609911750569901939415417543392875988037906374035598565350721574429399867269468627063755918084151549308932552342712635746840166883822911734333692336589910744507631410882715274676934568619637518226003963382905564278990278951844771202132485529305581528367228022073991644482984915262251858736761100206279286575910879428878710954455727814198856535617934905323662804672452203603313081802507683551218981161731725713944155323445958650434792607982693399858591192624357176237133664292537888257378878420314455895736978413716037666134060086118124727129043607641953809598294534605740173844819304165913027619929500532931532821130209954228336404270386874636700313323514854451943766265559513926496410778537874914999069630867260496821455139102127476612331734440007800719086874958749061978980084310194084268475554771275342311709812313627276239952390853188131975660067508467162016548837599413791762223191709744854048036715196730328885723450623169966955446192815285827563530969679769734482111487402715338706562438476012593184987083001720069321538697413516435714672200018704463973763131664240142638598974164669040594526029161746380155951952197000265806892900390975652129457968690681621803467929021891775255536908687710774904002975857279268803954240293097508766943177347304484318805255430872092590939478515346921378061703624937932537308264243281264596842741652719775296797479435116822422620931315006124729575665816630744048538259698733780593005630489917537354327973761703053550932969548076814814482337664673950198653401019877068679819442097018809253763348360487740582949906214713015120589023084858429430825982311447683751058478658770206668496249803871930362433874371943517618942098608815467648602155820332785764901663850297981402138217275423753929320176637850778963946581318353848974376013230849551903433964620582907763170512325628341317743578863084820855559123801652701892182456955504812129487169616061045398909842649490858873906737473433777894089113288416255777091570495039356020228729002917531778214622699519161296122256601163241348981863261211168097161073417073878067775356062517958459440417422337011230866320080562568397944048182619344855493276973895945877210983197074768157423282440060125928570171506544539072693166328769405936383188143388855529458503194458312332338237227063467102017311286115623608350127738007312786473126478161444698714154930567995565443792173202761658537733928118184069382001832278146692432473481233635135296063840785591731043461618099733798852546474987739928788706676559430876210202623735130929903813933858810685508949721722206037248487945273736767351551390219618284107773220250002078555156139534400870872051707411958694046918990361462749292706680378933450372769098213055834581572219141969339411976743559804164550380018314093204906783959047767321124486428247830046486043431621150848353339400622900888562890219772653759108085569402698862338061593461192283356111504339387272864974513135650793169380931227360616328241744489332605481423372782817668620411433581518631859532430431684025109587472593750378188958253618865222203746745950551614483974331422492457622313190538862398313040546327528835016457606871708563987780652862829134142027652478954046136082439934890737841617008898423508060783505854404173759480170751435957046626774539021642567494734547709867048490811467130045635652797260696558504385113443866784073394686268337221942945548447083619761030561338842281409796965958784056064358536011838292362326885216977153601993184912752020362325553765555835048758216460894769089314253191277191730445523277819683479957467229158977244254853913254162066018621781479496145040308177518437342188010793352864033119321225745840127630938275729765483645598004492519020150989997233261957489666932192954167845899290974042247070668033267252140491145694300154028783255271057951456589923395129347263487901686865169854079394121300589793186529463512904234615397451384221921474571989625913316735484600132992026912889110291891150118972956670498757147230606349839556749639952437248740749250566161186259699890881591761837472749703520038643184197493145309723304437174134025279695017629650599107513890281804725289688221986229897466327624567660234994210476969485889234103598630301735940872514743164332943482644117937026983015466615013006312241060632059128032169396432194367486044026035215772505872050784853966433363871917290643399541093964423302305123241507520591109845423364251180496574509775402063822402515380924568080238681447548101222672339609777618574885621199454252231688649413621327788310487638683696358361116989587831648597469007010938415123779701510556025491430114048226230854809469698416947032206859454074133439156702959439486637602718279978177809862099843154258023481367796847964537723544264833043677786900360369009325756320817180521796188106784215757418945114441897254657912177207774145806859398906211372170036380643068224053742746295933199817119191992435335045894231990958183381905443228923125338990204231821499694510428166404981089149606223530545245803422513294596762979629968362812970750550055999876476753151791754012855568004365658180477719058350207888516257653530253265047033261218974209584276163406195793100876836787955566947803765737369694652198793891058393745658339340270022759640653507388321887922071192202487853268726058946969956640695632843414640712541751704900076595512601289583945387036434247125976466973640823451625114139356000652502280278727999087510361123677002334596679819393579985463429635701136705799395398328851267101465413568911328017569472096647184386567030954529694301987978733099682636254560471911299070525883130887975049071315718284358348361649991169401606334229791180409632058311829164290266476362730482063699033870683566292308740135593255391624074859634822349135135706103328880260466169460386576961779570274100780106342137381067462812424857732257325699588937172571818788892291228606631140873891377569037487161834972966720989221278059569894937291172842132679344324902750401325884544828458777800442063754874078341443846040806356871343295201053691870026859614018567348371020702053061757368877059755827651708777457556114620910662348055939868156186353085250962689227394528259087369808425802630595263096221463183617203907423078847128575187919970749304992713897061644615604454053168948833050913045199169269271549724145743033361164146090012187471051480756477011696580610124500021961263585034699509403585448283096106841929132239600259138984780959399254710888381394067912188301152724338311564854630046620591045454522148271482880213924287313023943104056908577802891549065537569983505941539847988141224146186998374330954789687985611227109015079968241759897581452946881752323146967526082580065508552255258372693297455714775515031407108458444441949222129665698268406623419342460505413959569785467747957251632371578958507656485802877244997085539990704672382012720171871109070457057205265956790396046977009372882172506734333496160988334429136095494082210494026965935181713515016389599757714845064771750295829025939201102882044221578077705241502593336291935110336895311522501962677467232614010408163823584843987551607454961838161552158040658185846305744968440674858159266796444981753379556690041297263126330696114736079036457547619473825787295177540359633026170982690719996760836665535829401755223802486242923944293203416152727385759033306871075237491980857805909744088352115732836432121305860111312147383984811415238606174717572144285419086948491860345896050271870734686163106612896742530510918875119177582757464600992993207380974872018803573712151784485239707223858045652082677467829707280244226647164552722263211093180245253765381010111041886271709624259146948565255220809891470064531179878666216206235775607914515181159938891569691224831732397430046282705278227060997250451777358861939173077800288697618630279174372229321400709827054179571512337504300419819463418658147361763436210287597030193230556186408290882269090664683015235294450288228205694036598364039258775716354961472885895246596543991479987451751923990514549746838331622279949231482013064264283206220826055439857471457195306465700995553064935281901976771508490712077578665297309631397060081266772247628983292443806965307247882070131034264424128683125145088157524522467956509486727759871814297457765281813575442290251192681353479593659595782955376472461649364142411034511516455543300220620177134855171910285497418468631534153808414335204095756251446443814936975634116150287513172046534585055850305325393752234508300741418743706697678119476960329033419764194555372177749542859604641415634121113494834043487955601115094413424840675295794667664939838790558926639714358586848129253453349751582590365741629346895336755603320149118605926527852538568176717193167204589779317471160187506226137435927884810419947612367295180119323239047415961418851463219766267304423324725017488153350176079367500964644486581949230894293525064388820359518074704629320356848038869831192333848175439768641617689211062686540285713987918408503631315218770197946980478923625826314538965456577293085288820547996530571142770145462977312982762470020198589069779256160067938412266747610271644009453198262866960614619639102022330830108622769231503481382174428913989785295969756940837820628870132804265307768017635614208871393049645482767133738858999948800719286981361811161952719894454372463637061990901643851832074301293897946037091667732195959491305953427987200488355349800696154789276144979455013393205558600274687880336154906136131517039552139007858189621388470390865510760490471941308847350494988118732413687947160474511860318694181282195426221977579592362071307998523913362123222250665617947233828798752992250112657691210130569937459338350658815339817743946798482094595142630071500896240087249626319161223942452377995578768969913678904865498744619150831237862148793038203598519404152099287743742744808557242931509550477643953433356539738028577604180463207181599272737882689476334826727187887632406366482292390357335745856779130611929665026107750121742056287262650675626688579481224596899328093171083319718994366207729435551896455034925470227087591162067983656680172951575140116510863559480602137854636516651776755367013185187105869271744434794958701054989736788602960476007735050838848882256317796825321392252653123783075492481987267891006644996109824638839587891440538339757113762768668012148498109944696901480987943594863765505454297409858615413291888619684011806919627020264093878967939438736413804706342507146553723656229295189256073320616494881011586594031120779093069909904222642203533969968583619755733212397412531448667394805223182989279504268451264089934518106595158271807760672953002229512880675702538608665359748004736303081345169809972899137882184040260335548550125227135324054860221673261375143496185258041005736620273521003154202752615949891751987489718897547170779009206489179226457025971325853478861694919289407507785730661440376026308253743445096234913582978604208554549288209995226817401438922275142195018697075298561355485880758901162942586320427976269708998707473236659290800579614777528727623629837023938268498862132074397063875686066807662869579091244445483697562947361322539020961554353168681675467739133742994547773962859862525387954439002688082485577213799698438646815317877060863129282841231504256983794095343650132625809424176896664951020595404259395097250970736769403173438907053532302264400782351728629785857205663444341524154722515359612396379283350704025272124894628733094472838427935382190963492680165768410074831602520544020636735921497667313082689588682320878208643161227569107844104221587809393263494968872059672713310981665748616939212985383644822947081374634682182149668490058477085402958595419089320222467803568456871421059665710843725178909285479517472030510034397661276597200006982900638480562822799504801197446266519240732236324196427053791039655571393251499587650673883398074262525035767954503391343434432404999495907380031156486101629094797317181994556728413974615948727954854891342862327597913580110112958461258865189817948228563182832131452358648068551305577621466066354091548364236653005541602639862907749840935383295530792635799779959631682317517308645266794208594241964857883915914175902683809081460299461057292712886690248901041435538103082539232427415038089255315261559155748301529655568854610632784565689914181792186564813543145494656410687419957207020632399634941889814875827322188786598849617124713840989984678939602629902175856682786744540805479708008016235907744134119168455659368528056571593429495156618242751718088810113537318837713980394544038432234327567847008900023228629055034057198526009898956331303463035762277046468044472275815479330329266316406926787421954916253134865022566749325279281930369336892657671812390598222103373595994640219183643528109256536771027359730678848999604271331534114278536710581581402798068484324092265018965162657832912417156257567700200934017978830447854700139442327468518919294021320927526550110009275927757667574222811360398289662750484867060813308019987156980651160386575304584016278133188711915614238881346158308378320911487209815774107433933699876864972006984540417773539450409533453901259927469815435776130307909724643381098184278488273117554580888139584482597315859021047670580240170618993083145115252123886530131016202134634540554036555763652204621481556634729128463146143604488333262598530207797620275005614755252186439032855060292197220356399362441904235187428438857959941488879652363049623501902113416452783869592700124966868597260698183525551388373934307417733214648504315974827967524881810699738895983617061298364148621867623019924849904551001789986020332514211298404980690486292483772415513387131208934293623306254165878565395709968435304067242269230007628337328677451545580168785233592187865754374732232180121052300243223175817796102691716439352811215548212803888030798521012375077846123611844695142017636797358672542629995416604501274310286705194203728843606758383388330780154192263785751683520786896570412691707407622748489729204638961883278004847687218765523798717699923513694430356353269701267208631142102316355326382904078250218251440509425574157353588494019073198096514069434661925547796892219558143560659517420586770685241566477743646474551720521684942882171618578242357727687109629396318717661702470995248709139892761710793042963740206589432594396553106939356549174415022800936310924435555416291485936521068504870231155197243753726620439985575560507561283326075668024058266707955565749806023896608157640475290481624228459252353562020068979504588633710671574391667052807631345660366336755331430677891994774321689465489768907687177435372750449037913623153628402242752391995554860775856661286396157746939470600040351235699619868891704263233301505149260600717992785034825477456085550501460363541683046510918551459705778838609907154751174696321296188965403790797620781253654433090753521054443730309841827721197003979156522350061969131717703294097151702301217579722351728185380645305664042635037898514968193338010046560611119779445424978095615309021151653728126094711484269643006933457545811885934507595995235658450478553895436539671808126403677431585961800076787192328536446238606219925442206131370211118387687530450721971282703105084991576631157859783440430998351754899930610645212195175604808842301002826649292492643508075181328811505371109351266091163658208767842005591473255316701463699022797180725129723693241767878684184177988866855936874184914403681272941228278746145253816857245740346154474794497785556281956750280216336988731439216852767618538394822275383249959969374775182071866814319034956286905534663865024168187765077631369592065570016542733246324635597111326380271985545426619343825224075264557478329654888934606486246276292767604514479836278892583446564352332387881931955591230941009148062887742981889803999485799005207401173152621066422573808344349324100008657455002549045363599317096343245016480374310727264480244809782251497258235977302108106184842367235402845723849225928414083090559985752894238719465321262030950013767361742995655472246344615070366440721483539027216624726330252370085605059478243978735968199389720587796525455057652247499449345446384766285159656424270158282771202437907310130428635156050504526277184671280420165496876563279537740889893918821135241012324423000214164965984737978934785568795761096908652471597243641311746417697133659306553983371929136039626293740962223111144937580253634479537406472099970136259200455216003909142367408611759118639488655052215456541659371012031260731158455258595992584704256894052429749290505341956727394548509197759671885364822969908974606468461313597078483845394137490542586613515806360143118028820726107689395272863917204901811066670376311990038996571787885932652312555040174514339055986749014531901394758422118353999429444012005162025651965028682972063391321121515908478928080189509529223015984903979766606993286690075973103539744796441934802989625254626211854016457334818993383894028808112334375425059459115228969809649863617041047115435445586999113353511425990911845894282188636750198077251529702818999242922312924180306966534135069888974118464594164408223998331130045389875918716333984444330534756457069465442796454194453591651194720875630711269302948624195709510623888520179394039943153213817879468289020910940105058661104450518499625720805967588516439475470802717028032341954315310627677789732326207576917623218091611652061553304705290654029443814664574952698099434880474135479485534777809896971689529829329861674708846849823112080514626647901155030548092301283593171012111146415391152681166899942895284124933907982093503992914781662931638743099321249692815733092505972658764611002924733174613597702794229355541953407969571660172421521428239751390867873349972104906900756842071633516958912053466582689965260491759714453961963901561133047443058868213675321342547731370207545015973901435868118583108669679941866319750417246866225518734287614627634717684666225849263490972240023942043751762003157898728000579602975041265684529010631118724105563342716114604679363623763784099086971463350256941973729092617409187354456439675627008482922042448928613555796928446145184390514909388538006164722051204026321852166164744863284131173456130066772533992026312962418575456854629890735553777410701418163986715560985635717877717379741907724347195153995398730388137523968836208353501517521002720876010851459852120157374299973353864979582015043524162420545319470173407596796251072604942996416913470780488210523079225841685147219796675703551704030602765168310216883554705284542088321159496532276351217060152441845747546564551025343838540081932951256624800520739103567492273714105818501665398321386450906175074560461629876911819114518666954941028020914506604163566828337894403623589233101033693992319232973450058204017801386110782210145986367436985545883577781161635354800806283398444569967687955866353265897131240778685570935346713125997920174820650986385949155332922159652070324385564164313360876814171548746243470042762559223296786937299009040812189525021109805908154256745267391318881732294233338942952538414473660335650472506743938769449300733168960855166916184582687395872855995285382667972938047033679292331376254549250179406017117044060741789547151827543602030708142114095853501086598472414030666703938176295633991570413912150326575475487397379402875114354184043421121053583611755045110957766635183169522828903088206195653572944709248470683022491741789450961951496918052404266443742186243494901743328344947662248660455880538920838109585171250766298675049009233240068410837834226318137411398855029708322329362844259837180519304723672202253916394588372264347933649672326368305914205454013775170445723322960984931379665400414627758186960117873170052872142012497006586644750946068379215519121672112502414534719841926632786548435601693439242909673382822045663795416254703824570717611694634379416296426172913519064297051065501269985350010581301212152789294772894185662532225474992023254113077798552627924060564847590752841985610845591095979009215344393868149285898932664794972088246575101765983156280526869784311827724418297407167138426641374449461659817969720417041622088770103956875583744659684704011902254412341242972889130066247729347561154958574525767178097911936088575160899818076149886158481727623016382075041071743526378844074028001937729769794084204158298540194146137048875029172109251308212537235948148070482711188926579227413892706571285374500392326158050397838095823427412406717884465581296711907233516567961123970206797190820614378803985943109611025216207905416041654533368185958365844134241887356512048022936639707327878469840878614345609582234000361613387232192473450030901547042997662311689571637789679921500307842060684440323812750775118356110822856240027265032888463844532978407591766363950328351478074388889417702999130319139520598342750885869917180176429546151847794486924072375206853874992654010837198531887367286564029808759063550063791582762162096141461191602616773527419662459678265235541622693214264663928946675028808082865689870094771894272684595369230288725213250928246719244417738283827287228293105283389526465858035779176897622419459331910219045019351652767569212458832192162386686279505021298198378612075672095560995282541136328262260978422175524824542900444235616657574964745261658031449426259280941178897786690127070655589795244470046544009514004687756977016160310085049706125166144804884270113422738505065722005674369601466846860778683270123415128102196083067370133947901390066634717579638985669576264069803348547121137696295753285380335646461412478308791860502876448885474185482123464198446233724827783838407552437673963487136671558091170983902422208959260137207411539123769142540827497401377584438707916594582898229936821363863822795540046236929918595111465572579060460292733712289184007793569127650825138158110840384966711655321391364019038712188479450133848771118466875104577448571572941256916691580597861366100773715990279761324326138322032972456145101609100765524162089554568697896296621692059818196344769165755888764355956331228078912459946501043241044741600145946893628694495376846735824333225352291638515540517323476628879787135854443247539116725441037576130958442466100260634436327638367073967416281333778446267804729941715584106126705929413136940531989942837584563566887687648097254542495507157835666061822809275906308108264037114273168142005516678020431917523583814946141034414956277585878718850877884518222704879076307047557744636108658166227683410493093159026059584474300765389794724173689306725538445856044477294758893535484440155287313391622092742655310372587327807299307438549471503700896191247471036504952880552314584358260653170595598731285643548358846114390710518150637859940603430361506446936751820280952610960991071312340765475989319060188975643381675949687374795984139796201282738101060544273497551455859517471679139341751140321974185432512549685549730661723000503839132697717779099714239290456290463687681957872815222159267493554366503106887015839006815855613103057109451804291572902985858358597406697197928858453419515123599348451361098060486927089292770647276849466252688420181759660404643007643098219429936184807987210657001884731029897774429185531149866185675607025246750618918576315301498694563028405087730561613133036427319879826505165314177020516197374427565182241645610013246621827465631903678470092226921121011077686501926200542624559004241397572780644940383373113202058147447811067881867419919350383461460460441209444327403862065436800397113250706383857657215657472067205588467264420965391026087476849048015493486181774434579839812980060234888351603131919387438814103782029466535453850046877660914613565171420039890758131594783418016215051699365483603507206237326128434717779698743773093721685622676873912694129803741210321519998188305070649794539765137917360738869298936909856888569355502633009120414430735535447496954393203462466472522437113727565848344253961528805027326554185777010032776458988922060294682940745077962125376711200003584863591771080081161770533183457154411920748437432082663752838939449752131061821657217172542989136488997719828844178259299355822859237951960317414298478340875974006804283841407152840359519195437058921864902696411761832220506922552352200758713723150186510539253607939129231911910171567508300056978229635718421516153721605389572608536481666747296381249922003603199035709145100330520552043366389614469739548768882230023054554362391736362353918696551619890687278312746085842365827993413903751680615751953375514779206851733407377764087243371524519694623495028316009409869321343663880785779538867723338716907948948541653173702923201595574763626048363680037458817794964330006743274448039921272246958630497567941507567885540818512228081142502798826233872719892337247811617469275597307002092861757368111819765304655661484573358649087202416367645161467246805305767411748192517644012191486680994876878118867663447928136889675745863510448531428794294163505724323888373180445840360484933337839048868637280490578913655929130616530512772761205556316467803190121724733201449016910451684088163361872796391658600672715077668825276603756388062194506785679366551771056259700416723032988763815510021658333964537503910126566657070590490123387690666920788258413986078060077224308500882608122392165633186650493424982497742420723323688650539465437247971743860893909386107889027405800788812909486780932270451335844162274294605355444939937615260987720481015972872388528687817711667939340220730450440578553562824944272749098075514090633658137876386077467756438191184350808967752065912492603800234956504077818285351512153430904936793957457059239745931234444303786529345645794142345246352055131456001050691146527076128972804005407323836433784513831105966936092760554792690635375596934843496805638818308454258308800697353540241489528299280278056749033841537512739411291231512486104086170460402906130976231809035850509369609513355455173191300466514575056100862821386525655643666015461883325246716036283020558948585121073583524199489972061145674986924890390536233057530915597386684845102369908094261096452217546098007104373642749348493761746396300993477424727550035191016222407869280616738399288665463744191446403210645018000304566105823205263464981726470742716187335390369380215478748588843622091320927446873544054163471484167426857788520830469339680774136660841292279013270350283442562327719609468938049590118917853058298286428829308492010350572116541025904486288930807488051163990573053568473400353647704059111979778766836418332320613387592104959087706770067155676008850190416306797915261147387803911959891091467218426633931689424843890993545854528624427541531884679321319196145052999163975726634379558261724153208986609524607808870713608466395730097630990870377915871175103388003603268680581546124762960778544279627096287964708363222435117448854435482929308546028197579805156085684011718360207352201399429386426101886703517278818199233214496739580362855188959881135741564541607049051525151615350038425682811803056426900161392041090121833204434287792926601593299352912568335972359256506432320112630107879130273464662491258606266579854511805651765182008355683537115829710506671199202258026236699281222711348021396664787033923302977758850023625821641126461501889583269373919405424209732161197609694589457275309980332866534212740957053141566283633066785340231347756354866157763881159624243676175513702267023320804926406642327206891097475760873498779684316971114998049660265962944264066459292965568446999492509101958907955871147851768283768144260225971983644933681248073115119753625057418027585715709366126721256616600901372015156624409903910759372560260003110014193668481605183202010301705462459028217092355221430750810193703208832195603974293756573283781324939324939263131828234224527938941536097131658920142187480787510187577269551115864407186814471393804841232759624448183450813774699477384658866155774204258580766250152746371521673823505422021220194962287649641126398307555003638472664901327100578073266991243655682537160945568031663008071431714259830345603515213180756191558706935229402924467822078248574241780870255740706627096092232544855711102217395682499666594979351035751160212519007447189107458844212145829174003676361245813860145070573832418682051364813668575385890580586666092509470278085187258284489958224497227458094869091907910137195766979592352725544300277085172748240766609964544089274967726906383015861342153326034148973120522297760217511739127238454824609345994698970570839609992453083196430076070849748994837435021199634250617122492836560413529562920624627920067564199410388492993923431278164399750487898612862063090421950328282642648699226990608735864999599123876433909122785337640387360716426158239882269732704439586618885209251983446600119963697401054364297943446019791463951345299774495174482052381571980508980268218076506007993822931032848225141792465830305613330356905804844952478067859713291734960799363726373044441501103669615750122306030833414456319102264172771190526435325444505057623401124645362572947640523406940552905439422065216611812695137712553872289624065962931178268538558660435364626334402547799172917659148639791352270330729040657068864961326006907503137673431146757439558100504263685115136371186921373900016502155890317518821791061270637054571936606068552270962903446440534159577270572733592175635295655783880082319726879739604127746821552809475980491550384494441680067972428213717059165976966541612598646569988725845309687832686819631658951553888866204728860436997539426868478128847075968995180130489866532159372754699330407685781328222205794511667263445747241003595671568439029234960601659552812705642157936789974701123102805021860943238860091162710786333679834867320412405117394148872407264003722476061343191975602002777239508532676069040111784111175570361558692461057262407726843750007505799374586277393823600115861499366446882020781120275105553418627599365724970158049686819406427689983015801485159945697795307295509235641777477866364785519105516969799872236166631466333557162853341414676741214482551271933307830911008238618847457663512398736755498228288489182575367656532433073191817820628738793301856654829233761063292546360707140527523359101306834958186170755365490240980446540143242379272890445800297479688094773284712642400827928301360122890711463685232767739114778638189123740122072742362240503880735998211840058252130012679083182057787537391444336098322176555530309117240138693077625367678608169614473318932241444359343692233513833699429745188197435882325339708855617130278994852479904622597719193253445065112581294424606895489185476088081717116101210468656119167450900685363836867361465777556635210559374579089623735609237666277021214041848502122351395616007529752456880125260272694960281840185554414922907130027701547500339202563989045377941532839876069547943746632163613035760518193755373174884074832960421821861631089265942474578636910518692801137425048597094467270456938291827517948240462989074984055267802131230864566422773060326097776571753044382287789363517964328211828451078119631256899858486977057076758176436531761255728490498322490976522831472490636840236882419223635964842219981676340139931052414648202347069497236568857601924514837579956260388325664833159712237869199715889027204369550514477217839847118345829421847515948435477259142074634140430733903203757322103456548039728236513823663188607519410932866482909191067693593393636646922458820701346157431547874900634387456250659153930344893139748609750257561702390348870036371329601550821374632682065315763985240267737874267868031549706847633969415203095302829883622258074772990977387487566267621554340676852744803515258436074368024558471442684239154682838012410016838914496394664836622050267193557321384669732126554689977301439830614571469583636898499761948675226038438094400486827534084691567258349931089590646669358820972600358242467854555606020616694079361124451681492286800694014125130112387292966650392069028576436990830763089129941842952548323170003033215236469128099630613154140678777385963571744210075765953659188777254221126944399491940830650305077620621066733521829826181027205677021908861589336478044226375073880918332960661341973486263963962112619969227824549980701953657072385255925036615045809529010746559844940512292649260192903375172890230867566415195279603430568024109333605475062069034629261924323646817372059210588093396945918453595879368651488101334922585987137945527072927172962453766179635950183266048490782622949826472720160480885048075238395320021957298010298050073502493703976651701609691591621990268706688931450037557785169574671421765177989848148065963099045716038425703187908080188787475193261254646058206924256911669389236936985134430216456316037732176209995904758604647693158813780275662778466046180791649875066171259532880169181136617256530994954883157125308276363777085618276332122574290111440820543583536111896627462796028861528143846962186791872745331733032235798643436402660562409441729281538539074470142714453144749309048299291551808718797813067557320540315806410559917502280249093013693225224267821174850183220518976914844247344367470554037692320088411655286443990415708354711753205844588352582120789306706582985329812999293678288041850847431888236488853121461290350059566122818504517808622171634773012177737559795907251554125266434556551286484371610539806071382453908345584451936961385122201631222539225707687529147132552787858581511298976493069190166513188555247859486594054748603074395100370634953291826449241083637684844470603249627694648048904619141537909218616709905510466365279534122747862332156395294922120949360891093169101116838239142308949606221205338063934306973763723208438551365697381302436434173358882173850343294163561780864271274298321037815228675993630169851709993144421972707690208385162532836333985159480656209926333830282704940946551820111986427075340308752665100212948477038733157361036391616198104059515816453754572611044968157813189066130515291852023712936136225702864259713043924786590084845766944187072196745909805652234061106451449947078053476956348811140575738283844920411477274087222472409646675812472168776219555679540167365736393326314667355244971933538681243613463515138774890247714684566186045928655777557264069600676228569533334325842629042012134487882187201965253385409610684719472333441317956350086267510896558942829308969659457814243156615771597059400395871947038101178862867880487934466783345541080820964851128460301620707698888133867049994574776742025600335726348442768492719548756668817276555190098412166026787678631608341669538520196835624226125878961661313771421236959727783106266372856567546618248028185424751481701023567411088854125584466725407991651120229906457060068238154107605970001950909836296219426267240115633245162692757285446871878073873621412900413627962005085403513827573265392655284435210121887822553459212686559400311075146308520725993404248107808494033298900532662075478042734656260581463145780928050130710621745920989192865437781763760351769319717386001412185968406752276350042765855478129053732203543113343769661414498239105547895475602225872202042559620524392012193515010932754416502668516848046579348097317441839027087273070489402182385769872368169563340668461454506777000080245116052280451761242797084939032433506083387098083854520353683341556217294911591119489357632087783629575830534282925231743930898172222414919152848908109458870364391120848659899419602932017823279029477411586662391770149839784414593656360078637660000340852148947772073442788892313106124886910053754317252033315446567711362968556322734843105154300437544071443764027968372547298213706596343205674098493587611018367892441337175601827480160139635329823443587653185804912100746863776009130499750837374504955421820871551323626666454180556185731923843751827917131500072103277311376304667634738349117763258669340776459215410146989198822874808805521858995426679385397921863807005771360532897017842516536065292173919684914960716638046205311393353053017670252949539374896362750241508298547152087669215945762511122447817244211935982965676696543471225612051239959182543021964663152409729463717730548662263201268294968122968696502433829470569831260125854604537820767493180639309045348314152526481126187289789008150078163136155585506618125876779767549520121699144304454334977523652959056775881516983663996466669048014870910556797638803947431530376633759900263787280105362741475028004694220521593344598387597725479677126933456207139012837842673529654795164863923441106752272227831626394704092868916560947609513455681267113244676770082495839471829613614467696436190335212261132457621787962806248936976957650258244497112511793407285856648003822227424961963446102271948401899509378557945825197333122656136220901501627280230455091068823322027718235327667400204856522699006274301271937734836490808964736060087367149581124225696082401870023575298509728347921571265095853914060549110936311348307988077292126162444374850217401526453280916674268442539421241702162066037669839423706966393774757474740115820207917986891466918663681508236797694372669303186099595092598586880782122376513083403345835939156068694712948059036964742448176298338253867392166900043983244068330878804839043342544798076074787849734515032749931255541784628441125255612532800884475163578451908052983717300741987543125865295458591010180947092363509400594252368307474892747833220528598861314465163994611819611135831641354869530126829846885136711142357635753289515812303454028186046325192857990662423097491608779415845086917984364560773358000461757381830997625304851227320456076434286414071050581777394281455734849905904585728818155657715830035652831373767073364817522472533409831917404008278245182639294909524143143248555704734307250602281967613884852714312980755782487930713744357806710874542657087444101169361569774880241353492727725779609126179135238412565693415629115074372836779522425737149837870836678480644561885217191191566926105576596929286745736131127706694477778087424652887174452604885012187894981677774871570678918030659211853547067525393551504933510621083126120730413198965031918922864250734416352363559605993935397102917568125425234397806019147577821195206917112466166260427035117785149856314819711802122024422766997555125495490088164847609893648635524577077516851364367534626640061460509694853888661294360883942121677470064670553747555585145442925392932917622031934693220289586470539296983660483568780387972052355895821061842656057634869321400678728726876225148224894516490314321797414571016258049411980698937106650555539321743275699877915100904694584616259202190094936880002708406854068828431806030169902334934225814316543410210374189300901871576326489562344579573365831824215156009031369285970360637755085760627284879124872791137534398986439294166925487035481323775941341982820292173856916217763485728144506096219341895300606975888135082109173751468102090607760318382721156636780337199441623776052534969879821779085470864808009047599689352790960735558187631140860821716332623643607274547201293177952349578911104341012772649739583611122877777275472989250958057392829807855895294345728836847102125012990950497754602554056163461969340287387843561515245626999553259562909765691341381294956282448339883860745669526550813173546460132487851532441836903520235192529978290398777920352980061046547634762468117125581398906640016182229903905783909175298313330634885827039080870774545819277007900498468922151880721532581852445301212719283863222548025466159701453641763096619103970415027467160231423586929056438980786296065030978505671946275395897654974343607621268981273590660976593002389338512321711451061659936944238196405336384576275651283797893941870701625447194546686431527045616585328151029229934510919223833176399509455003121033550243705151540943013151977509103249610162838291953263302944302060419678192145972563324573067806380787712132802524959565040036879120500853071601359301459985601272237267900384461891467802632337786280268178584766612599518760812622002745367247095005035674204360404801546195913734143253881517566602073847596950797983275135131706885090623633983770200261350123392251830012960594897650288860398630819006133839179171998237502603051260240696386605476446105989366654653417362071780226644654559311659387128657293544094089991626225200782045081015081532835406429516226560743457099519171074162889531992080434901596634151833106502004513518767237926253068898801630106227812325165586067503384075203241264688520627427767219407001836091475466678032761630653224957498343535063203517008970054917925644856290518849845112121030612826447087857853414039330423015961402655742415611294227154447443787322505768379990392652258332969888985731602181635496265699457504616511273071651841085450019688174753988073249366912521836148831653926566630899399713332914276532602065256111020351537152510043614234763510021317429453118562825560521303228601012313755439986001215981841019087258447928859688278364677846632505184523642490804969274558701280779225837774237622550258262773254558166112359000371342720582643094849064024233571172777907572088306050989265719245712854088440316333615222595573069128407395803250679742361608671687548022690304045015612362573729710851577659983782045108114040764662489452918486531857378036436534173365621438122973873824506258698899707245434404558840591581747436003920929294517424886322046576090800279816881086073706598790940905387635639721221107627633608781301237586145428380881455576946461878442819390192219403568781686342950337458346759287776634622984281055319259974898050371870571248777256493334521293684595147347076836661965181918476286906625408014245595589714386343110703524470561808538145761398798868322148931868524918968456497341615774240860172322850715121857262616408791012818949217967599327914995110876588593304880637731474852464505763230145418654531536125111214561459392466142162071166346959046628036263246748980218042007809317079318347957949269340423875322491546178525857197319333393396747796234602638079457801228515647566762485772337377463674757108582054600260864635416875509879425099271245760586006874787739672337969501536789423392312163632340005028501825124063279855067721237273388124291180501929799787919761192203468411795202282876618550499568752409627011714498439902232122182869917269775021207433954240563881578136849023855544657772283355681857818394181175802646709452322611524567206714635480826443820963789023515303028936226852963052403040249703237093345462899966800182150607437468981449910839782600368450832245288850301704804891913687826811333236155881274421308593437966471526843219518953827713593761670389715505824445768169312200146660478044220453785758770444796337896416673094772304321130027742940904810817769755473841656456222624576795451833120952339871797308523576352216504601845233622978902525107728360032616422042664626058749360579416079919672475975509072467036986722106102265714897308076261058134368519326018994559847542360433269960059969026898794418283346205476464635664820154489681771080847414985197938229300786536577835402886246752275352567812963446232290165915365169149561609300034302262763950567889231075786681470977508832844719572513572433681863471533950470119524138672152150085025471190574885722510742767073817327076795935065209945750439038010709900652160410344224190717430671517654896621246554875417605908840246101141944297834226170849521638555111490198558194538656913943766220856373556230326006389153231773294599397895473679700852898261737118603239729257946846123553784036082059122305058604857316541999344136250206302539944424960663264892796687242801240911990805987353542929462282012739363171846796630816774727635691547283506603155007641324156677306979224733482112367290038806710719225324548441257468120592015029613544866241924192865208455293369298702712003613369130228005092355513542943838892401253392695875387445647139908764089710954461244577157266341249243979730457480120190077850148440427414653236959763926783671173579088070311287297827788138175887151802266454628921432288519125640822867542213444204389869165678915458173720887390350063411870915700684936587592592531498030342449039155296363759657698159642039642437726066614476951822151504815316181373428685457809621420791970802324250653141542017089095919921357147691783128242273855996499004028417161472135551825408419969434510924718054292535449343794006402532736451120628743812557138799166309376502439716461284469833952065970136315325204202729863888072911085183505261876453142408221144887691989586906011661177303746600451366790813854112448804287499867560710715065372549870964998137511683170571366211441668369539689653476578603225133657920690464473618733516065814977338836179412597250448537559757352433234010185991911187504946754583535392474238847126067443253055229909362862177754095478609840656316273849950880302532713570041358171683368023502224016353013084811799606578478468504954478676873756592095060131214390740759861582114110098175148239895995843092918269795621554912745517420723573299246747180011043009155040538271080688161782245595489927641491440038486449194563749858147314454267392811894356339386880298895310483470702226002468373604892404638511234442031091894917467809370483075094361260726000263021900274691159052069029033273707578251083956000826044223950983521472860153387375862776646928923535305417300621167465267503644490599460340103678451123513757425653546531503586289187955275786073909648514151978032824881526289815317723113161364955358259663953460902702415044947668713979082857561281740400961639164475918499509369793026406818805926596896002753936932827214124197672816201498851932358648585777259343631444162196098402252968710067013307475149913728162743150480635332290103268141825763119393264576925738344361354489986071109626154780932301250751204656923303459030934619244707062907762671435554009216314308216014066528661244454156102299544902187826891607775753840388851328899085321989825011241878200162010826212533795216630613036685474698181077343193425156995066912783738902020845967278710967609327998479080168420293475078179114386828450174652349544757515429467002707586333058270795677627670093642664443561701691748097775061312205989934225599357818333313536159451910275336598889120586125571060174546501995499805862596642450899309302187626174268637906329040435366654820738916075776596534514624143733820238809946115408268307087188695376143394956436925023894629886068985419887078398630852655437710967373543395492908524896290403618697943483420016385376772569519248325965258970820928912820413359874796134484201205770018011617203290866082396271587714898954482265572995559366193402231094291235685700560504462732406565144874171958850893516639954100042470479259396068907447530350877011862653165854662064227733784278425310125696832211932569321568107440239913037196864850690823343207853960389608220722147996671944247507412471493383383699642015091767102610137290804581340861672889923079995029518250008790942242172287452535245084143570426937281511927062457987413354028259154782163783170497390952480322736901549498301218143243698236311113883591783660472423015650885101295924476132569212101526130870377221136355186010496312840105068411192917911541558383878769006069934462659707620253607180936014665808069701912769701657463079215043038175239042964768965174746710252330331361015088251790817036114900738602457586347297504790597158974523266837948589769133584517705586750892758362240752922877818014504864506321762882017583166281899857766592839058157006975440371749338197751455474397712696983444409982750492467955263223212707689256458816310504872875019909145048008971299753833690914304411690653640243014280187128370565396286877748082673287686667348811074537795257422426093680492391431557317297832630191918761525841349792113660543753542767988467984978620071302453962394180546598828238295000865087994574497253923328286597168631314530442651745139061561797295193165688150110935018010768034540101753351423789242663033132963315503601994035527440808357556657515113241834717395016073988525413437818571787049707905757575402634205608602257568969052740369097358348680543401087516688732085799337524783800707608429352067324617108653606388965715890560753194966034286626468231813322157168684646466298477322428349385268623001150275194783732671309185593954408624098128492937649329579887071216502327650736864822481235307590094515883050483878635847322953483250663264573734550525465517743880941752517596999055742860697694086780933925898669149949084110860892040489337927327555850420004767645963822140458619674410272079827182091106375237826856380057386293182313446751669498877866544327177455417688090356996495892461723813299577612700163439852255190994082393837407363840288058604092873592140704569672587102765148917226028137482149518599037770643165383580437927358212745796680342047982716098603446071449712265346117457272262469067846991142697841966744048034718640355578291165666024023888620742298910581274667988702801444512818883013389276034106236143900015530937522129448056210390977374647289771177873617315302827527562930638987211528535917260435868077815086832922752474876481991096454813641986974656896080589258951562037387474176986292454284395848710017066831535053387333886297568022472417493121971363805272393296926371320186207687811890097827057433383105420953977681023447088608928588268690696143434211431232141711114681590617866040485716709502287474948846152910513797584832178928653832765404908009710787283160825421633355546851965689940124418530244626141893782338950178375784295868485794517728633081636433776376798554793746460965510918425607954638206107709760377802268103810326942450548161979400387869452170761106742600798636221608120431821685320725510488559015739268635501130591664725764051800803503536583263894783670681857807685917935372662379534529489956286132664528257131058140268293743147682797414667920048281971994970430320233923440968861752006843971211281663872566243035449325579674446474551982807213101997162172073380888218818111827801167855015309522719592153463032330134365443974438650164155580671366678557624524132046079740572994021588082717284538068079527704921872400458364511678112884749212235319548900912167761564789064410058711878156668112154583218567140155099756842394058217507335774848684840687863290821855305633778365653216160044297296025194879490682321104089724407939097971964745329601242207521789707038728390149274209340258511667424301486958446360931086449727560703937392411007201829482245893713789564922104744970865716742554036756152175200250227491586771612419911899802495428867155108166171247285068179207547532436561596147700515278367403462915100275475240957150695878160160908459325127982472594573172338102632088530098866233951549564435104293533241558914081785612067501061974760006907276886634071168360159735678979486900995405496934249506676319165999695147412771956368978664704296637750428996668102236570029618967521336799375112160375306500805537362454479591791048698702613156471998204448691163732315468819059013463486140890311495024337115834751586351096337182717667087327886087010105434684601894107438972224579380163914184865633422035910759439281140265876036538177010836796262899122430751767604227868911097197473288211016258993978869361158840413318283351614138946453165069391865508318576097278881670137549827076257427028926321912717236047947778505104213476408057827849118199249072217152258096874389992733041101661054582939856128671234216113048160358594984759160502347750449841089398615440290406819670135761265339161490897794454211208502840072268844159381090002588985721545903144908896103102822797503751667026489678185234553389357206510953972740271745833945874089812239538078318274502047527533868373584864748939100145929310633427320534064659753705506801055073509322508474818696080644149745498048820334987503540619161754417291360468831079338949920129164559771740908623196875363691518909349009413712766988842124898493967904257669434468775602711771340977880292223757145465793729404018667091038753922292622143428421079703574520514095758845565616174656986782029103391984804405842172098691077324352812342688009602008241178741420803776386185136081702800990116843571205573468656361450093036377243587116884263793633056195063203066978491973327469336596481936893899008944296458457659520550717992954285937233666960658840847537891375002124992023449460029125301000883433640424813350122935842724360632500426258033757122546676695216564451332505953923540895286846663662574444767366144757093110037740281310227372787044844454359210101622564041911116331460771743262786145788239447876847888633585517134342010627207323106391454000998654156250098441853624680543630800263759433623636166545415066187117396531068140911088881517259435654499231511032014798324232725928379021642498855465719650315956529348747581239742459650005533659304392593701603506586428602062327790158521638407230652257108488252339297165048741562917679212425559928514242677479037613695100069331260020926020341389413960370240380091528452885437650169456767726527169988611433438789904322414449753305276624667717213463101797267139018692441472509730747749015992402258581352062311295986827163971596660788593058036664811651477627746704997280956933977100075941721781004357331706048310274691868922227805326309786639848454292318878186366072180175104198890844901723561056892405135192109831025192401086564774673718745414402150003714580538241365912229380853548290855091606612062440374655798467782836884514988214740279368084546090156558468953932804784675681117774570151584708476917108790791178105336395646030660634547793713754462652064661728603331635289534024034580053993683968636476588156237268249324129393454356936430362012697028702353253485092046585929691981842458544940867473210320529087778115491876228073807215538755676021654727599772303305384839711483998364601624881984348371064553580693464985518166309733789381014667859270769431841154956224868622910601008749953864767779978145419358633754842763817975411197331777158122390276482047242898391132119646845944099749713043337688223617558387103748420925347425957871857422743416349295640098206768229923600877087411954128904306813330070212438941230591254272399063020963390524960017054314689725417952056678062303554898210298548797624569953992347010632454575117257074847525800107217876890382850063830302564520804774877639413158785730208744815965844839145432927957966806161340042605153451821581973789098046993676571814681338470660226670556628367509896533051904368065627893688224345561118298755922962041293021445176764921987001751802689965102282110665920291796350796532181908210702945471257056323600101188865849947201445884536289278911974973083364330679296796193834004244787991612420008960821639074962990490686134801709270450266494339497127633350325427393992165244525301666335095796901216793231103846320748250613589428944321112554734693545570161797302578788691363213029496390300343954066216800393146607400648090577545975350268697718098095929422692103996317965244300088523530387300237038923911810801591036431746030398645922054145817406556045958873500965298354786706508967397108443323164827240234936395764410700028978771865965161046816328014581986670861782655037918505068940169457152508758788061896097941326784168468681408847201700511569660646262575978637045568182431866469782171368743782427624845007233387730770155567624674682693984716847640010158771570485953504104430441973120424331725691929127375235154013232857234337194412414001432208689677677202929554870791801126198117259216661140920786131483407522617551170869349557226465326684107595946563881253861771584892314730743707176445463141435100853616295929431201903387777331480965397562981201389631386637454006793422484643386272097970732625665484462490097116481351495642250664666041510947655852795889525213877188075963427244101064853287676199771513011773376157766486038053734222639296146040946390245095658360305250714069541689108288725257277270762510577555383420119238359763101898193894862197794025195360431212698739101039372094784844881610241102186555658441080090606579463274653914263056172658889277440739987006479581874737128065847883190165262916817403418502258410820067353749617777082517480871081321365337680527428506694353533944169127971214858897099666858264603924241893803738110548925204081272836426350148056001435754208402126220575478604324834963207399370418152572668854998051661362888487072737474862668938001101178032499911378233380769414831158448960787527936693850010754830987563237577249039917942580662040989651664558697464900995617123824658527298566928362390677543839829600812328772167495979737996458306969246585730652799651540229464516297546783997487614398962510990163251292199869835971154719697227987151444941645314978529500198214018676726490164105294761715006323389163162904718299602879355261707725784852288239164025429076209950438775634010497216173903379178952523170676798987611632414004129454291026826499188235664574021301028697524781179197540004732805350961185106328425753559246426614956632051671451051418591599609999802726148537609378546840858820468117312961758044332627468647528856268845667169751201104239258826655493912404951172499246321835137500299256820734038213952968939541013135202332420950542347914253024056300313388484894511964004830998544087371613497873160314123680551776127341231195750777357967931054559253782470683973775767063999633905378473206780739268349711393928011899480969665680433343498375113070852474588287030359136537922557597790048583984654454077428541777452611748618110600728819916735084280027721953941136206883628487321824194882481010872235190304959640392017103636402498687604876155488887634578553059918890900576136552745252573005165786517411901222715594340445675869953670920905474844043915879383859008173078933695107470738302233510442524785248157843424151052956442490773419021237612748202739497676377569792069694027851006494110049165584120260362150431749579033757896024669154883123419272546918179637672900546324097761902667371589135787508327410207081226493364594502545576943741769590981863308311626954244800544009156518230696238616477783877585634828921790973486566702760948277932548099845513396742236884106269333484667500712316448675636190820952053926734180508865884840504710433350593766743828736855650280811843187343103725445023948217547672975866820296837829194401303049389594944440977980499535652856861623092962574800529710200776590978963658400443042282218578708499639685164245308793158637327676193678058408711808301535397698389907055729039140049298825987912028728265398261417449912381075505093082005456458990274818034273240259398273987529075381299930314686426601766612999982676032096103623062120079401787676680154271199916184173331954855762580165383211390979116782629306941124395762398250059346375131554421187043813514982511746341394791196538388412359784370262433845612084838323743368810614112000329861622683866614500188949031149977544197914891962190715762958798412942583438755915672595346271134065582206591226771448776246534077322461184920946814106081569635617435013792164549596594312323804859471731066309138503370929301872175509599318781880510342729297273661947943632405983101532889734125748250765487219104402831651024587403158255268016652006516672564469440299475493672420003173874019270145226835759806802698287088454366949991456640734394446048528076314149289664863784762102796069211350910411226378839603335152828671003783111755056730124579673060694693804676233198367203401264305252807465997348659581707954476634043434707965494593344980894252584250355979706770986735062012115616046331671337684908297930782047740239841922788134486852428699833048149040414491926677513243610815947102697341861528504974118832331285811784811938177316904108199327008068143267364180821540334440108470940593880801144987070489169160240675838423240899081777540425173332944725083159010440610916276353789841856234739918664244427461852594723248452036949391128565007486168884765192092192850157834841413819838308461812728578660182871039781900198400813018774833449064152538617433637814763035555573827927022944948396877761721368734444047124743017041098496031327447866168504826564304638578904041782154677902520015212780590383412581776097065350405521766989642693334442400802540552790887228723624396313021062444695507097698481371127711432471992785100801774491019589118152010597712744145380973482962290046309310186206472094637822696190898552301393916698571803351246069023955579220814547981854019549748864093264724113254382384843258990960163962497281302240731906386271424658916106391251575958316582866860000061480193069429694402463182452210182279832817517620864772162230770134953939640435642400991349247335758203673251709453586205302065199082980294890540504629914732076592612070350652268937383700987762151842713276348230708138067535140847417088248623884449650704042685384491767103578332976125510162716615093264102418205296274288627344106456814821648369720598842005123101780271864413641627051785924673460328075902051656174400958082910252218419937414762047742988198270361454207919923917015910841587216963575313409691199522163523622611319012277150440835998736939727956801145778006531241690817584868092316249095797754286274091299610928848859597663045245236449064606229222641664921262170745410331952375140591196043562989485750938648374818667095173739046195066765428625503985359478796343344231748501657348815846207631624577655066019191330595237059431232754723431600231724137473699656832655462428960829733566342154278371289526066317118859084862897496930028233555828446064093678869992461407746062166632399233622147492760836116270872558812296900177419842534476846501115052924094207624265537724686721277655387782980666436821141612177951215779067315921848112976379723259695377185492523443916193152361020896409814724447189096775021242224045818416608272263245648265373102755859853312340462691482953904597425433872829439674096944390878230231425895329413556680975640450821588684490454596675549974800324448172099293267403878696449909405008954736059855904419296718925758195701851960939919053453362115078782943358711675686131322559941266830568619113348010849660503733316733048339179262481991205011045144592502189814956360044991384841610253425463525418205243268968585083289819093256649418982977697118733564602521683862174329986964176274454474666952417784271146368971591305647605860393742182534776716099648710138929215868071909888362664872740621407433208203346549667530667336399249268317486689630647327597989470913664166840587660756965481258692032403695638892365936705189195443972441357944908462882445472707054275067204922672559624303978333441736947807005903176938698404421548617477895048723588252264464118983992355390808218755458697360332429968239327273452151852171174138396915108132394098319636809747337283421195045661233272932800612722353483666842302338684167150552601446035669760789304615261003572459838360708343567431369925506547683379745731817653531302801666786079648170236057420504708320660974714748783285692559861940472353695031719880093237298344878214684520151531284301504642157828253460211351673771594878449549482956432380590274558872568673383566690912476831131909812252865392065039721981875054834859615470830842606422159880713394435007043779330230333067027200708868233514657471909360484424422028979583811724511759344747161951725834388736362490279215702662304990996203387219411161683722931140753308691036062643682161963527845630771435164705176949553602302956717494158207824014996600948679318214127972882920606401714510904196004477938012971369999770629974949505832393564840247481398995345737587898736521809191913499705989581305614325912007976304461311027229850321992614005669799229943122684736961454067944362049873793328271895142336214772397403199130913929678029151300466208028453753168400334143764296666248828758872187621403809939392430966889905514248194438098930935526262596081813440739360095877541199233977483449941776943455768324826829766432837873961854662616915832054423357639930963311559670702983133618363687598537252831697334637266986801850389582073168537136385236532197741843135531642063787243034903626199383802298372528746153942281775212275861658705150860164835220936946521578130267577476113223544219508936160469453734204675930096683846454562315064403228290402822685810426866077610575483268116503212843662208850209222157776725821348683255396019636373943150715958117363575098402831830740649170141687879241315156676629743195964522343267206651684452955989920087194420173791070680857847760587012572169911242217540644164761269591025452856117492919187344993180253019482709901078331334681651775552734724803042836336233197246005216838753594422258909461124720644979362823761787181294707440633915274379304415373622002201981636726888862895189794118423714036934600651453853623297390573700411961635129151787983639285287025828312952305623483445508344296020138794618513889072989804284829034276775509348176767227286942177593570669123340938004046052087404404447619844894372107817465096263039205377580487114496122562158551044461078929918295651775171626723581670570556802538485177242760718875888975244626687779503967258381021909751223118296046535053360822448026035249119292026745342703544031777094285639712841754931087748661454405188833474529473615982773870318398130203012016596658275942183786852040004219864669204584664815124616080906499203626761669727931129123087605083008828582325675115389961184079391220635313441027842799198387473950850731243462493694190898324285064685673433985069416770429741219210560483327477876119828415300226387521749845645052548787219935243060967072200747798589533256373056750718488025566670997887915383284623184900423181327273423194060812388127282542034509089608514945421374794886912639686427277044286232903588604384025693348067621528573246571325612465547896836912926374107411795903450806853027638613107251247500608959500726289114327550607178664758739666667482182089946168730752996047442614817357178074695773995073484060091707812820358777246304471369175213005668020943161355467497466452861183990401106024896859780321066192394768572006999457978764268032311247299445322331232538487936594618745563991737548587211917300800359747380409960737962947882309836936260014696065666606831558227963928328093839922348743588120859828157018988790601660740590604939399943993757931093660460499118047273622724247194148893068059408058895825962008581607463379613655023862024403577572769156903851228032883030055528252374428886185100735335229360045025500130244338311586838363671657748618274448830485466055623715704140428843524813603518815736606732286186152805165159746155899765481478413842958783009330150650994946624422707346452973339629962027554504602775027824511613709964841831473009284442719657050444301057540820895398718218606125814413839932926602414954074274854796149314227676784686153469188071441537931720287095930403231752460391500480619346401620272499993331113026330023225368469554201134042908410223367051054086998029183838421146008991833760372746011799799432891879924783951228073624705176084736138384771548204599549467626069381409354013283853896271123729100371625732494974232709551728579324287907904217960470533408220036146979658794190595487480691909565867357767996890478995214492073246267194346936725819434505154126380232653322755164117551502324848260030788939140123407736784863369158639895779686752372576497927316536479614435240264881195426420703131333159209225647745500755946266951080783427923034520698470478689678066571439877136048666196887574183414396278986217516925047663303955886275694624780912182590607260842682910960628347368605277993284810875351603454945296376268057382027803798848384726442273454136200495585221343148312002451541406972003847080523768265457416357700031177047930875345531676307285943573317127035729556917044829363931712061735633587689485872753738423210638485691764005940481457989683575533516588540711309788932906107069838004989292708273400490306276873215003677469629584033022335747836663594355197476518349103516745778286762153430047196682402799265180867130235351170099566802454412515331016188956324197514816756788479094563813875166630321562624642084066727569173077494931917460630259113169465369261386868050780730345349548536555440231466768148232087574452119991173947665424573152442960659583859574318607811482285128516068508726811328123279615648064302166044752400241375483146659683165540810068053417208224533592118826880024437303792662734315849179935525936895249383502695396051645362456011781699254096911877813392479714274832736043784152544203411281447974123388022933366727325032334445420538034793028468083278755510165240016116851852230776159686629857011810591126733006474768172428810225741357147351413489473528136630165087021541619077613865589495577158554662042792168087404074355318226429782754215189845673459180352822525428179297908368011551019479743635942103214320819427247753826362951363109469897988454806970147340449001175801372635552387976601150086719340063215174641852544421885950184572359334357057800428162156853518738435332713497867354078917755966880426505336154687462630099887729379485573698444133716543666510671272902462157476867169261366908935525932558591497062722897334343818799401036501873752957083239719188116022187257946608642642328862451242886164473615688339382989435091301331517153007251203374091010625768855639392349526466357734413139129870406699509285574324895365932785074151264727520237440356345606535269610706078784746734909788308825104794226335669241383766667133545642116431075750093724395951891461489304406451639949106362801285936760083935991029799155764146063638402606866103898502542743155287302291008267377250516144281472574589131163378232025130563662596867983145936606269587889778132364023272328738306769312231461297868834126126864683947505632389451749702848980792615659325896678553471658871563685930757300208011307957114559051442528485091679839104110890743045269195870768733754612665691505690902246618018759326511766525075639643061957781769832858053615440722383364758171798794847776664357577163633740865899216497205435727298130728613054865444163778373826150354728016841664235069308738362477914582568904513576678203435518932773941020522296658042012426526270599689376044314211197071612179344858265149578457786991188986087261014930436323757225074629902658719961476127872802807213957749530334654656154516957845128236064339078812762868019063720840040131806821777708571940393635170493028714736526608583974690588388112669926380503573612325209275396499799568950192890189222448641110719273801172242922901435915469269037638234668545391215018411823315946109906671446318783787220539307537627734501219547944323521947259927015365449128746918451874503883175134655331462653550741340110846308559269450214955679440716865592311159614547002454466031698390812624863196476978526789714832427315336725826494707818196608433102958415709506251476959664954858341368517819816960963911077214343468248249312896672221418650724101064104581320815138624733141722606824697757940092828381538769254914636940892436597426696322164638648942323643269719000373737010956594780122960547975912692722962387454251583231654742167160980595861189322470040719082589506359825480261492552645558013436092980772640070057991011805652389987796821589955245157367361872571458939062100450118214875382768059438189870592554446994142979780212104805459571399492976376014627520593611821185928424190745449791860184143097748406799978176464736388612423516680755298515692272489866188120842859086741629233423394557070891210847204551977939479309031592466745451603961181775673693146323445580641120537551603703296637159850634259305073996250778479267491917037365112668996148091307825669001645621043226381357958649456720762030125413281068976280255364592878126490808805391265167122150595291039133209946673076234514026833222657102949510549809339640895114537652450219202058660341617772019034090450523296797931673130090814036935271510416813639342837541663906185619156068329795365626454672032806517929910551110162530845691751647827004882743200555589395869812606590104636346215726649669805370752419954702269327655499080276364550944202123546697313786617448414665425269159385412219210399764183079882281800161049441506971164229780165310927666638079195098021004628287691923129536175176639819330740343915771709174046738245120988001697950463651356840418646587974588237418038378603939688975071630812712630664915397235943063827820221167449042584392821062730476873520734526821512784738748573940224896935631768239380784311478189202580639117345274714134936351514655788335610429249481565701543911106591552744862275073503812458912469220825944174477704766809431975302981770917429371814160112971358340807047466719878905391538127351769257038655792532094848463814552868890281193283555671492347501794909347339557646609628624117714080539136893745026188044639791754747725811727655934738311875402822301028175997444685033054943886015660256048786529606169050908708653261779828689203521048535453004991668909487524286128266100250291075737392684954199345239175276927038602135195292747468887497874277178633555007850328424417928310287794338472677574247973386111289785960490557400922848833936180127734822347284803956370393957409964884428388819212989274052258906305860891364894447105128787629006512399804214294716792019133018042057450248797666724406778851414781641215889995215840898538869139730721613682184937482674683951073361049456837697500704700392611846525834955298816237475986678317879466341750106513629642428239600097012352022163906761645537596067310585530097786664501549056880288769495192984487693554872344448810469805937467039426334001166179038175642852776602977183120909499945752380376174808297536809877933685780931490363912196730957746492801586550414842583531915671406025037155170922627168400327944870742114958660023304774598956922197585239569987828920210412819963924343641022316320652846739725501204205203809546734768815702766364419335828938107552431023318001271420547617027217138935225347324771837033514201386289809595259073814291556568699914608987133375731688213687138716274709011723776872241261994204539056089112773381238550228087739942460605557293573227804900077848328320096887963217590475761174966112646136775642961713093209750737760749039386083213684982470537075580016628037771649903439718264630417808827171631748252462514969488691650717607602591565094860370307479376717603753640330838072383833720178052012162318647209792172895289615769502227708549399774401745050636967981224591556711573314675644931063144265700009745677296626371894651189514003284566346708649554665740084294257479845607454678412611579327159116639662422255541366690772786730746785658921976514279913958798156026737886744287615412622925630665239412523029901265098081473844239782392126001205272665581844622784809636582816965150895474284831864769857758888972016667936992857186770508851936055526063080854019760451078544750287007607205400739641463375013047711237536810962946136496579347144524141892976994056135367600144384092182231403900483402551061676957601056333038474749134837881156405907136758877399254669826868390908224191374999252504804998872260819010834227140093610358733810265493934047000206401595811639256044604300788421568770367792869210952987532235228431102103046662732896198042406168386031525305182671841642163143013874759515466087619612107205350430124669063082456870681524879501786234678920675086080132099771053198694529894966689511921140744875096595216101535483717449550221253534221779383157227028194472643356287035802161176431919730184966967758236404363253411762318792916610761841727296371771001351081524533011729037205616839293642934575375542566396005540936570717282571512391169089160974213184326117105044448377578849429818899163262351905030251940238076509865705838998430313387656647480495357030869954525288571151012418341325053817327489665933690505609595609720487473427186628902491875377060227711801894401452235474990542426435239172766764603309916140000936556433305636446809463852482302960433329487317313915093521230506293426731227982812429940401526240583296299031386951427970543796753944918101634489837500461674265106364597633529303409590311462156361361485865875304229263407255469528676827063555005084419353073810357894534097287667702607488955374042338315898639288787813633241881918193132958719174966870669912673930271415499342447126317184773981338838428184116203241577919274046612438637173896267210476834723536830508599614032928775467339048681738515778648214736953594724231032804128212235638640030897173915352530974708890144981716395075320902390450311753485108111473285510982114192795423258927930281118821262654578314549883325416014629572675022000151366635358330646753683894104795772603372967660378664040288124609935592661299867625231108160154876270134554764268293034415274506648786253538169754646732164340263605111145738333677183453925193178090460348163215853358534728903279374145139412041123367162192454197200579564446330314438617303137200284971438120491064326359273045451097106712153190638030020748628926043486932492496002757570682570044300431372956109536313695661655129096749795504522359770729502928008322708156292835463831632726085096362143369606178608863472983724695859928945051017647164862986745170013638971142703949441688272689230069630946035442962423742715882949107433625343292899486221187759569235677495741888726218386660195576424574887143647333522129594497195382533678167993046236390267386408551865889916870528289926969002348830620661178814190972853459958828838467686705332873681274877181571183766051781552611821588152323357833557797356328494858078526156420820094218599542040658199269740401479342613213577757842836201514100680149310542128910828179624199187877880361240687581122956818642527834428718865210831991685164097732607285545005144814456885241701969679676181050622927713805955268908669215817633142737260294527310811601397986828400115166643656541664172052158281861635861178809787768408062854361327340998570847899086547384045228717790332972205990913505016140571778345023914921793153974804911253405629186971920318713019007330446124608981459234965291624919663135285035952366655537794145335760569332575212003067965932776612947156039495011507077177075978128641381536270395305984695849085546517638538999541173531180441938582802264919762015124225247957681252141436834076125411367050698465260406116926087047715257854569741328035268571071556628152446635816139542186862455365128165046300402558363961260025365975216473969951226578894255480142810845499976324551264658429972181055098228430235742891774584582141377197792897305241366382181813458736151756849495991713552300906085308347375798711448909538722301592911576457335344079265808231788265470236188644391849955892905539778504220808908524349915752184085308077350262219913993522075497048390306473308176711169799577683890074944537628083530629204201408880436396873713519593048794891716955584122436146080017923423465007082969403966422283996414998583527679604079545779905398942086876450936644247516727107839024639412123773225060997970574608395109369742410029577897134066577153944615343011950430959825889866674277296460093121811221021297243888810879287058648433883664017462812919592513356720913698212890101232653128090259289852946906724049669860477691793912536994178557416680784228835584337699431012064515452772117273263864074265360707056213219444753035585508802587025211388729361497026780292580130576966016209969516056299553402537357355611670590627513340173702032370106871278949458978016908509162085648219191403223397228359929270155432610348339426603323781302809547801480296923013205365581220882263143768431992915425713314972271253484190719332647052421666983360785239840006857355493225040185712013633678434560364027080717940677815740081463356635216191840498245015483831990630525368710617938536063180615971375571172853365034510852482632213708092473332787627013704568365619319282662828690801296072778831696741351846552143032398783431616867269697386290038702816036109435378529543065795607755274400503222312950573907073944101958720747599717917841209294852564737719858364398097773985493982078080022918743486762199165592069018889166195819965461056913364936119529475185976978249659228376238404092130977515299428975549977314418887558028772005296939444513173262647822961535516107336177759174788636595046355463500467362885962285550415937692230212044576538664500079539825355381066603373229724175267521694824668923932332307817373093161559416072060992724039157201801869622388320947273175206774599706462458091561960911134321347314564489043981292537593527656107209247850082146533362753708549305559894876412761493797853660028061659418170146121272675065534128459292346413114503761326131944444506555040531858282724883823337209460157259316891603722378680828065730459865160662412949210223644387449387421966473514958294917025768931664718398745094880499147501155201326055392172579169226595862661974476779079343728851715417040705749140007316436695524866355781733218160187764100229804878327614795608501947384820920087564436528453825738145144052554495315333249690755600173622518188032476678727231163695634462883497041914948169343738917917038458500174699752491714973428278986703622455467035837086373856844701834148746923785572954462086210777960086014236996806726950831946974259052989313881252403112666165518144497841791430566620623539454044630079970622093443528682032063407717047883471005144189477107470053994958326830326386872655964428439270776938081419503477494660496980646058197440083886185676854393598205784111286161334065819122600143961291465031972120153731812902424732261395955805257628011582097881752790584704891128709451142815111809507242875819076510787551958853540563264739566241437527904244023634804598791325541031788442492579184632359676464853900296813411713888877290573828516670305594929166954720164990501167690340953326774757406028633403103662398145928768311697484736634773396339583983562849723639604174787201099729353637792605555044026534195484616721336311925185741800693325098963523629275808790437946469728516999672397206340019360616016874700254618895548949166412496251568863910881016029524385051845679412383839416763030907430546530196210477785361861007936058447674685730319452380023486963271656317812003532581232788625092162652294420583688703685900679309632948656601185640770932416057244041403973419719958247779259195703480052146298332712473922400858027723264512285985306144495235656390414408321666225953777867697501310245998690939465909234343963844546315037370086616848696182279855583765145410602312732267153281914854574706232173638902949954091486853301934285944954284899488291819796330599206923516001119139827177048205890720390269028589591277320590386601317378468367438392545252780881396229994282698957133887707480651287359349167507900815599332740796048668296657897793189592400962397741774645480959691736356147299848368824817590224908163743013056383354528953352069762504786864551460528362510645695294551708428210158888341481604295790234501652427583006951293354788552482819927489366762087024653098768736910987158553198068399117863159945450208270628896267408289307253352602627015716161857098018990338802407804035696658479197122040817576595246685628327465420758289449613422522115350469078828907602485691260994699198391733001236522020694707726337388977322235521577165559003323695136438819667139796640294207912812628005267325127162911812671015466772989342287950646274997342624126790360500777695435180326179943905317539829536843332173877259068595114345164878619012726006817834911533239894877361034249426098656635567549372720792652366031788666831266641710523392264753373133956049514195211024428950279690183659760552363773313836212994616842766653745530242243011929975783953630979537759176418654632469286654200902298410219485029672268643835755046040287446999760553457360822126267286136369088020801239724871300257479298681304993387567467425144574014786572527408799851434161333055166348564163988091176343652137389257166843525214769509521388012667452874067155565139108363601690823916956346521078928032414722517700186129816116165604100454524351397254443586114509486991185585247970242678087168042190311715884332400655251161108723145148285600497193297290835553411852067773646222163336448500416646167967993322695749289693776926043676668830367140176896349954236782013509309756015012808162649752651080168291241522452165641631672484520414505185383923285509794311528886397118460123382992656116130493050546297758841726045219418476327347011999937218284184741413221586659674971082948831432815556211111224044326782209598655328262845128227941173500970603947348851272563319396892753408066995352900147152500245909697296302955588279400966317563805850364966634533314474867414759790415432587564221694467843273067213963407759959778397722209153811398787667985210073837673551415744474461718824019542792111606696653478626377791208093358203128430694283541417020107368327447356918052629910610059987967992406902641170966046463137452184363573626852123046408475508843800817127477204867464725916785193155749073457360186235258180756594095658608955861441291390394824223606886273959489456720469155434504490626891734149671015452828525430943705993423136447865551534285349954558890850242314395884139740594409000455536772040102405495893961514321538142625650851182304717675694400981508586282665432228618748488148429551234037884356682902807014212491446471821611880187999526600386190365848740084850800474231881326439226520231368000033119988783674241607208817345248049318276868882175856545294211332612689077915131574002659965320203578164314060278001419891220005847254809277871033832697905719774941348644433208765946107210410374734119116997303989017635070469229972788611280404113929656995140237115323090637993318007883911011264300404491833592716085582428836046939266900301095999101071572907938551214297835198634250190079821110825312625168671063190104475487783762200442821382093303650001215242271718035358838041777459657951795962342837548621228996639056471488738723505179999077570298036599688614215950474982052390367461402454661372023153685569993759608605052334560338404565224966229078802112402856721536795560713728270516274995846014298859493695299025087748988986333585727636834300070876431983610058963862118424202833092872130199745452094250530052992530329813352495094292689201621468491462152095956284945779622652507591985102061048699723457296763162153413667374726865669917155140059785666546093319433495453169076705105378363624957184311387088033118670275579583096270763194108852811922983426590862219123615099567227268724909089674331464961100908124350745958396337945205112792010141860102124266662140657673711266995351313239679352119587177286470726952654282843996525157288835479609937474767939894810826384389763678543377680409106282612406132681746506666969159342870509781901842473506173775589431427740170119560525168273910998444866683548393156763122417910513023455630299848673372624607616345899535561225367317099195919060145109556733864388368747291799418089870858922817625179681837635566785079006972203021370337751648276639641699582597465496127160571112291073768047813429717719601648704336892319318915945564718596827087496892688492387678359941866689489442193376822257429471499279543573117233435015551156420887537415819934185704704958329496885584584235393232754390548475387074009322945781360400613160298018707210204997782857708731381607213808601038123105082816927740169435700279975350937805734936715000088068024629623448726743642710838756185377849364447505107419085653499210583887155924714378446940234233781783315789697164476342629020005957378180394382044975252790494304916288271824119049324158286976872078719193800981807028729547683757044859348991866910659949451379335011236309774522112442131752381252821028239835071341713864048379291262420084814251426803401709164156581743128366415701441898213392404648344605336324915971414279327604568582711681940687129304116816410297820202229400298272434997669503189099226696457184415237996131589944584455460813918305364566737693055625494918424901885695503798313054282599532183037179865041451959961369089276501021082484803035879196889677946019415636446349416016029076309234792929138496050016175612453322465850727384959947465167631990622740134003313766217279836163286555709240545971150690983961955316185624609667304650752716533023948790991811517032433492476640520642117464354243252847554038766464905426364547951981131536702827431124467463910272293194005041208294936882046390469203037968330300298276129740445470828211753670271471902162646460715486139285243258281735903269176195188037809955199897830017587035254985148361463326382918726734175957375325116854127612884094379985342337741801400989929519619179261793900529276860753151685058853628549901203412659697068936734598425710308110056707853951066785231391093320410654422436240539036189196759987489028999262998020854384413574528046840762806282074799459172520083684230405057544002347407093400735956963614682445906784551203517801838994854684524387401492033830762113505334845392192573258242026102415926535765440207195532350012744251563343870378976389669847722997358862967594431187147226947824334964891634546218490594788767547132893207208705684565624169550616396865528873448118403198824036469223194969223822997410965666260793637562138477234015385157577456004668239581897086575607841144024445049537242871877347333297453895321456806504402873065043023231120441828946208280456043802888434464661925238627334237474713774404754185244211968039452526720120489940854673255811730426285141932175220543417472425712499633620604289859367938156914842265161858894619537473708025376712285913476535580439652074067368076731954705448876007829821806302721980524282384986300173824104135718578367117646098162220112427955442291871183742239913182260127921297570542975341445763410132201622509793785112708636220932414923267100092872449842692708730883806930164221442665535425710701698504403280556320946834840760309672470487802492687651337988314524762777380804250310607661841523970945760203775029971545159979500299148291343755617600800133535376906277957533469901444353548372249077265272065416121502243299504497297255967926960597742916102561260873164814217502729626694821857934184648281473600450443521099042455971086730279300856760504175834538527725767470076030843140857474630273192502268910452405359871637860220041086979900491961359960799514476236859993523890608933725163133365355407925426831219510421398947681673257295241582545585136120211668717630668186211859213224206322241305046934434664075688087544138600726456134871023331023847299211282250327949977926250010051251514887935934949958482839517222585097411521284144071941764959404332159163259674645744268640912798386383925209873474412673793039896839281261664264452350159956534297115580754908779789750802270044887935908346118085148303823278925914919157602997239934829121597126628568273329573028449229682992904145876503483081915854810464640215171092948290312847995902412542444255818482744248524184608458809869460232531135511141675134104409274451893222890347384805301823470885068530355009717532679950869259537555795324026470550272625994300956214537548617094589650404931353564944662546822415137463118001549069849450043547978137658385956614951993228896915416763312033105082238999626605006914427447850265800168148228312094906447176358071713765838674516176195944949045959575433818519484200734034166559813434405152091618869754907130155021494430177721317081712193462503614097121095373995372904253879875979129487674671645540507646702972327423913653774055194768188351433278616799037997566382442699159195515922874575036902333603832466499587297353538768403854036201737182933831403482539896217071933947174311324334990030219102012058782393241095378239268600248938386434287434884869568484717014399443258595549741240643815580237638538641032792343453855751550656571720059142228603102756936592585532130272994591739104445530526659206216088181438094369035611308863700783124039585001975498632153451449685910657067152735144699786081306792319850785979684132532225973031976535458315260371989675455085179254084206547080342614837253014712450654985467962541571853797811687165914001639741114285413453222142875602622833663114711533527340723129371129721660914293536607600570063660210796625649595760287320137714150776410577095978795208954622908919051695348011265258415064231394032494969170316316492380555422573617913597580130893060991626892708758364576075946324467001669127950568637108813050487375532747768376154327832497436761656646462101880599212785467378777128618846442077150725946576773705585115286877462773793401695713264012834162673181754846149169657180749009614762040181308781909318940595072112521769434030230476159957053211257438795761748516154692935197449201615075321976630149986292824721468702030796997938693479386147068794464897532527392434307101963282500660437949649671079144527028657087501336578509972201071974734596654683329563536919613512101330573658031407952079991850455251880589513704550596728678460545605573385518686388417555317516786837467712501011689611738133878916129218257941775285219615752203698037563850326485011522315172145439026217883749848852527210572428719193247839329164526474997345052177029260340042593443053930545897146530182505979658525914996174881049036950479566698878767595124954310621453902967128694512619746472206780749378416951037086446526313684191800461499221139231038049665019549037988576296373130077523826552416699310774828453712517165299333793756868285920878049531807348172137911417143319086732026716787372194935584706382731935929442349849611937583892602345943686821832556304355401049785617663366824536840995851043485694789549107310057272440713421465419028877672813493933862269515592966194418804098271737145917687719029311755199486305712118825033297175052312216347023766648915732690220291871200304119658522029557630662069311372929328805687599921691552385129327160071015538542337741399419265974391950186236808721617494127350041925366038989169236019535712660779764080370578156047935790419110471517826996674507321468648358838332174420717614497469985850085877103515113505199081501577306563726971689147956105789400926885888452753669301425560237353177131630807515830869197987497859016311562089520439985794948654919830463698465213611892619433572142638230920425572402338778496216630347332856085589975834723488890633860856863789228734401236856467554859473979244101222485077730667430100830661573598676027868997163545748210812687031361155033897891009909058905830704187242806549467122302465408171210825050598847928822886110064411478867413884421833463439043629517185229166367198262333881008419080659099589699464071115524550530363148564006518890769320174172201561062846769636470034738352034180932221782304471123073406849076404110717427967313960159344002864561815707655145734498459459170020903732713438329695192942505019168415264443319398358840917115988123770988798842778861263530908248966248606066759726495360999805901088711967001575465239713913971992231585772742546349109082011692161454141685887208054973472507359132618806131504526411590961910707024593348712828966927182173311369416265306340624338026338357838522262146180063847648950125637883426248395686247179077143739222576524030389902359138291224646688817991006893418034876838332657873933651984331661040581016615782346300268489120908554247865208930800047224139405207791009835606540142574920327947701559273698449433685336176174972644775346796217051427496435771989452525515550064992737119004958362617072313903224641505548701615493199554335084083614899474100750454720901542136423138647530440475722922214270558288763795367649687222303215345013801839590314004258722916970254558606835640523544904757943392485331527805818859539644134252429412989786955314307248954991926054250549087974022990013875399546470417837793510085879985700827185049069107848824028560579753913529789318041126020781450695218519380360415251768009483252075804648353794151563310994065242340634282240932488048220153275796555059656825214399741427578015882536857756337970710751533842509436317896115217849078076620344101798292033205896952861645859193811792400044171831298709194058336396890171243876892165801568219736656088579048315307796835245223875475819898896938476261324457889821518264012957802517687781964982811765871919607525081671139035420210039224400789256522459805771302173714454916012904797896467509681889438925805703405305414181875215455635447538545263937634086861219655059597101054738715629084556100378220564021964998073786837808695494019758642513514867005456120027641607690967879890775145219718479387633646311827454387603940603270531159020846883003634081695612571717543321239107590848276618979497417902469565945686475560988016812932928910011974385442055724875481779165176220612304146931334385411438833450555645886206704639411013240293072675945586369573738220359215855569861575523576277891623933377330286021012318248037909815409807659679653843010099346922404032969266558202083407984809085983052285078977901500542720575614501573691577340865711508583326598924217108070135866495813558984536339982615917816522419747186571829791421449869725741069471924465485092785886866131071166985816808313325997816952226755801393214723816857105037837650966050443777526029636867897688142407227717411401049283510605202227648745004033338501196524967389315690736456383633403999901184936069695393743438270534549656565917960084960272950141568316548197850095514130476257448488181951692159251672825337752216203777702047472010693886621007790005178354758814257761391701854415972897173718545120206959054305014013182614424655933933160597917693894886997195587446387315171116666239973924679474028049664126799635495955547449111310940523586568939315428283846799000533297057021649431998566002169420978874716521270276163775887986830465257784587168621769915647034088458966208583021119435637524901493410168688721433064904651083646581868321823280867896934150091258607061163284609049881935555327237087780718093954593434677474338433820808110157511284668953175437607831543309596259501904548332011897501837760959823097405631887861380984213870755850118495760505960346722835269061460071301207453443672845838534971597416589893880559947105585191347362235111093205009469947348849277028916232505501066448920802412444906610994492692056773450025882044677183037721301319519674882862521623161259266768260710152920663762114560665280548524703298254354477254690434373127761660081530894960112318697944214833469244911427442393501863330994388227131786368112147976789446305024944122739926424589511359501356463346792079886599565343911382478151172262073590853389924606864276302347602032319859659181771188657205887570392042843787157261417737578598505432815523498248694382948873755184175682595162259387527315968465093995420616428829464840787693439887056738578929767991259203428995461843161222586522403021585512212945564949063432181359152112531235139946158194834124007352878734015573536206679100271523743989877320623465171470632839609074456682323107188405906556124500262746769767182005745228310900020885950936393865173686365676111831102955902459020687777928710635060066316037391871927086825271846115328881568359609823101463119877844666587290799639149115586902259012205236793391817135080694198433043297354199081603505038780079875483566257026258913906533197072407083350436660660356788269950128777930299737072650982890118341621703900669879128318031495232874125199011208033180952721356847523198965244386152287548673888600185158779701642024495444399712826891023776843602047002783454088529839182474342372685711360295873182414264861540213156643647966251867736201388563486836773850077784017320944947615435092450273341034931621939153768235849981441472281701846006859999828731816683780044809594500685878350663812099923278841462441341676783565392658072689791239195078361059461515349919639577428991557744867916623429536773725760389276528887051939794669023050444824147086130289140022297435939495607872994460943630972753406774459378455201827623419246488070914827682820806063590844125006068276520239638623206303020893312196174179532611771447413887688758143600123975362738882686118580447281185522452408422398168163050501154814140323368292899743903162998364096028900469191204171988654644268401253335731735284399382693372540249947135341415849944225212494078762880331134282456618032527623472417084735967501704714740039152126533363948805626393099102724335429921592775141006993676377041305395657359404033111586370218471332706453722085760272751990217298440805251153093720251939076244124035106670810554921007578739223191461903626935200955658326117395442338713438282616999189835760238518452844336219076948646147798407355966227691574608880422742472638211353327554065292085130554932165447658484799612107504286883892797026417653951372497923591215308219077569316584159580548790306772987469869314314975915351209590741646568788049114907555542928964999794317946814138877435403321257752894833872632017444710185058232384725939872650368107194364654869137746941441388293594635363885903878074997489570031283789390013856163573996226918123819755726441573755482737245979032775458635038387198962131321686817947323431596099863906531008158340877582574214876096474750190232727436848867830970747112380152719463100044298139323420832497716249440936412816658357169207096856262542228597173223319731640259131785222393327440816552126361398744441504213233914990012490449996357734196494481399487930266484581747587327007112633062037806643269209429439600566214762885771428472966515439106274658196502116200503450465252107443644424525215400684942620375873997176361551551149559829315620327306631747591096621857861338819748312616815139447134236551419651741692645160501197311674675307733439278130198690795141475025199218907790438126136413071962714817976793865931929872246609579977074460735226165067946545529786716192735166161769470927776971862420115785930624725475143165498604310412744637167693896270817813641589455997524976334324790906670954778163071698111149747726301059788602282304085329971151878116721040578484967748409130870333839225172543519443551638321738401463135119643964080318666023723696812689369346147481931676866153729821754737338405299686448039335268356456654517235158260574033686988933709326426905572985411639329809822627041272613425308807430156453079665286516109488308799061623025902956196158019675152868380296297452736731006016245898350681144343125708373873646472610425132662902443379079534494678625727645284661334877959372167401527026056453555516240475220845860323945330852933391890877984247816476162740883643550552329279095713274202861377781034111338680667508487394668408629052928427202800702767425727335637681896786617361746050778529864380884275237848588240511040330536542254862482250370298759134078259628205951820714136212830644844652975361152751544143931750441283025651062409329176529915168009122575398244975368824701982750857041693553939588092262012196995610787056119057675189477791333239570212992767104819125253770611902664468048294785635281645987040163678548494140984740090081105318898357960142383566339966025328286512491037767098097605195899294825140471373486330044950532054230603592157356084444877715045187172925052278093450114478313235051622038690998121079527807721686968316835077801409333540644682358831733008690182572639547434069093337645920174950634959542981945684734750589816070537560518466238315704075668580374556863661326797286940937585686991116615784420677365745223562924782529332374391261710541652769638785803796154732741541515874586995222679169041441184532287577584330353499778275491069935688000745222852723836390702416805140513672987970812988068325927387143722284665360937064651959285442711598910383777276654975630861546278582033789987477788904194109831034295715507581138879227751514965348031364087468130271878020051676630336118614567092779972483583861450397224670196664476058239468245612725697639666181189762940653116137308149448115431890206060401750290996323197301584023595311104442264799111029544045813508716868544458608858431835711295331721882470907719585414684342907279494858339576654022529335471138687719453382680128301199231679452831763392950325570013724258615045090832410331684502992745983723365468872200206998815164509757248326909730065741182177912947082559624233234745893098110282018922178831313288212770775530091026609364762633075758113363917641400681235286101621296919797824371746856305875646022755128741307529668634793852980638294832526889934116392023681409561912336751107123812727259350070724191698905973432269181881162050989066490435871862688157933420345121189835606783563705045203318213521374370424725268376991905827718864937988229780081839003322538827446859426068031141039251846810375210421880842155359417091561971620815443355238949902471834255474433002353623353445811123736687097547395444987462504260955751092339978124682240332303484491447018440197209552147337921395171253850669863213378088672884430722937296128849240552622601459870843342213602941336160426161524918851943522112385539228221716681805737479332939680450341347312693625042249620968373612866948412965836108395910925860068072078948256363887788997169912121004356639360452218016914626504871347857431367656162005923000817081234922030307936898681650590841835653462072366648970899171591141113146990190518008113178456850549811775092552324538620373640532120585644367007465189977530592112817755950616519502957909799999741374627558778745448042724077481268513763063418948714567384186740016443771842442203016565834327790040302739377690759558621907042161717783875196727801281808180925517094892142555105024615282402196035873980010923825322992985900722587849451129239837257173816439757715793900443660963276906355096217251270933178679475677891349779854250250348308630425783662992278392394242638547365816977487639300872271243871067551646110368300397072390237623085128203222277074140908978586591772073920873784363665243655751049206037445858378409404033925190263914535522555149516800511010720271010485387179968002052375187220517069635132321939309952710219611166528950930830352456937392780060716413828462396344209636049079870742259932378244739259142644259935030179482114915843566835300853818245102611326576822715662372028207321910157623344848625123717981974884996796938581245668675579984220841890604690418747643361738819082975848010367485129656196242796631073712917417690986377740877014782018907196239536964663762466999540795286568953510339565647554237863378534480712143378377924384016359351186328495392415987078879282226788038071687025913423232281574890467969343586314768819656916040108989933743790213970544063352832295521992009265189593525396435621670290315589402587133519477233881332868342499392165737419022655183486413984762463065390665640017783573190212907888269543884622665481115100870730952193030930234762100665875797894452338597876330708749512157430432813993621077916109783875364701768772215958347605066509659797811704268100129530745815386608829042797491100208546060454560712221125466237159757928895001943902114898145988194830872315477159242979583167578245667969912805358574287558084193830831920199904276845164884570831666049199447606593787938194757478427039736053130283448642943919444216070378938354367019606356288628794545020555503347273249816447465374869049937623964009591218155005584763651277929085941974933719745370174376713701560816836473804646023761406003098566549822315651518144636895844481985171344439587443804696491016905408244792583232477979964397678194561317225046024393394441301707127509308567583841715344735882309782255847142561483795946227210427308081267087211006975698164899822438582374958342128716761752040342541916948802080413629279058326013606424995011645855787566406514025983140314620700536822282309699112363503838341356395636635071636021222115548247923840886772964226410022990791253135526330663627559931068107913228167973287555571984564189343190434182601267042847005187115725247978779459240768003325298696366207308585658404070411246321608773589406925592022877735583555860787494763131835094865706185357407898695645725777527836439300160512930293321528896568521568582029665663421647307739991826212928983074977744956892293851808345084124953049267826242747521384871457011713227553063410246177708070698937806058018987320785268152942248003607668224051085825775669078620206988410534943363551263903998169430749867407121962766371111268994991372411016524482861605484262072006843091328108565966904401758043536521294777232858800259488002165238347501003733399491865677337446725455824311082634519876525804125143454430060562263146641855307908213990164593318001576831693258685181583320552839898543220568306331894757767019325277047053887492149955043568141549028719248028580965670495934522728849325737046785490015843039693177650237361486682273844812455981155181563817979837905559991460712685333364164772363249889098681174059508549608705448361435335104462473571569155686327140660365221839048962784152722352867332004118349082813474292671601330041151052234645151584650908065917705074538925606898774397437704070183959814656011805238215727366390769422737140506769590764990224393464470985805470561852002350193505803292513157008893030273810822204876135374861148589756356154593026683864516570094212722530234001699694290412538075806253763709987942741621347859878812916465245066345815914211209264140886557178440468280775785883883009694695963134124904715925607972556308835661271604404531951454526564089533097451745828996153786505307596936033407969295957622329507347589841898170650501183223094380009861772145818883998650594174791250433484187294918727966533753909500069428916230806741612695854050491638146326505863528320438645790158081681148332372909323499630296035513684914626446329587696669696255076113750423490988360771610325078856074091316335302617946810353727657469123803373818420724563918292952540377659342742066466275167872814149672156317877825618789249897099791945001339408660525796508815318421900530448921515814939980296252636317102685895711793270346905724348904248600303318169717820737372290462580498942038752574882920317801962031083234559628907245679351847272370730298759803834177039163471026099923672417856255597996196209728378151684254808758764064596745238238417995729794828962203825274913863197154212897002135194841950409389093082158924706074931303905825176273004195761360389521113490104886869195786872846389169891003567489437912521816458541962309589532227423689254285923111907704324771730417926013295586725996209106690923248925419524559336065118742334198934551333890061874978920871556258926023267248635451161336376340414475891968960776540647380056176084207495458240929766993583609316198979476599221975426501438921406687029767896818637539358893513557892051028276578760193663727588172890741258507294752450261380069645679193240952396424711680535765461028248759668263052771233456401377281390858029728165549232983821884524225476908004060925102801321573693318871752252766623588480297933982018173563040660711007022825283060687347512144367034534676999881581611301874977124737788657175745946395170053713504623204385406195142875935793995916247722534296101084076301821095065311974939666461579986456016252556604723241940624322328874723773648471123824426544711209273949162967561983117545344800888577620170276612272682016609587456751132516282097532538529923844854612230723490021901793023664084893492547098425746999951237517928226712001580757258814923648020125811426858290968241764424638656565267460287351855017531285765316621265991665396433070246256203678738760102392907668672783052897433343960720321740103738667940287163078456898826363405812507334565651139571769004107735221320845150985088072368585893114860116164767441956416499507942534439725720350818005607297455648699551430104155009415398121191349870809848597189902689298583950934913546081802096662073357504260081769580595541630758751455138347050350559316849131481809126603514267266471183023267160681885957266541051626660965216585376219839924309905494036462966004037486796990185882929001349660090933410745906596248997190699266170562880964087839310609362746273768749237752861161959921091883857892577554615687206302013902637548268169090158928168113406805832333690210119502625253767461335796186674159851564852335772127954708693068170430518367414033704560442943924267727010486470295005563763009510164406763839128916541192554445756262316657440028535127162540497079057484210562939001665765039146810839384991730441452667415833760713867621789020335634995902670368405718551487401319428016642671283561663543918132943123466200258241531607370436394173304718073374771056728389545579589733777951839518852009718634706807279819823075532551323560895796192614856186616065708851387962268050247852134231938486205460930697189934822405047301974866907897716257814714712698858493200473969653648950242153424668108573327680018420728181322436780355795293221418769979598532572230908036097637762459089321299005036754174796328229772523340552978515879066419817384176553199557687897683237078353640593394603783499380318040570889282087998384603793225937133217329583720773417317708114908351972697862449566471364154225284852349564168285396111608542610248041145070338069178104407449256633495272114878466934120871627427962412273162385663027798415232732403239835822536412007940050668055723811757016728000951084351463201991165055068492350900166840715914633773785958210806792759422493827901857066436306579354853777004355357968485228251746184909784028984296182543346784715464450672184914374197140527238463672171730735658550106813302678366705852412874579171423895306840068163609925988751834430754633434962500120660599557665652192352901086910944557425134059156272244007790301780133920081460598619901619771367325075125869333647241388991146220589740831765600432891133041986589631608211224706711890809117493383962817551821623369199564154452274453566503828664717568190405023407923580423921621367708424964888213704791315439698824635640715269308984280213707048057611057140409562432619983959303758259825885422454924795755182307648441677454333161730671013434045923642198838679119293720234221710593862603582375004845056169059050797123241205053567272205530486052827182979161996093785072437929781739874844992862440224693303614153362887436985233408063251850838749335610473763236952854451498970204150817095854976807330111714065395748540120430411406650080861151037574221249991836610877813571057012318750426256647164384016166808712408206667379095219696278740595551889906300562119891634479039866562271822636549633231403224228527990963455765592290853628261255469375712075899060276684483026012957132260683886894686164617900619796850229334216329658623147978963104440285604142098224433169970917560705140632496065305634028120657941490062123955411562313708941716356540314578276108446800185000192542373798198398318708897837572984438164247785468994135576117431648755692083475965106087856993771310905317623490289397723304229036802603272738412901129419686709971567671351224936194852017238615724261125187963092622327791824017982472617485144218915773282753812654242461425252855544453006200508250751800673663447803063775726191098150921082281667060194057854474866975296375506843849305086428117365488581921363761051032484636522830920469018254623461018888612170343808358377407362742155237429278538158156989561382367817239291972583230057083698900599423040360313074647898082015599980801328096441000414522387609073165292356118276739450675833519301148049116663383528102603641871322423161252836805730552519859284919091499464314086427209497522512876381662552533159199304451666218559453926072402108721845355721827646835721601914842559226830980343402556349951343133800556245489364523485074202350862833033031575361614252097458171646638328747957261451822692258208542718251763244690485058145580075240027225015027531653679989997132787121887679685647092964420456100582530147068670698060391556939744497731505284969921124003239396411629063123852034417283374395358908435355559068980481603646207348687840838156942593205171734429063070809835524813285459715943525016163162098188489737240944549904514083651992272071341995089604913025578940690631525114104744780592279219521784614594261224217282471159643586840279717070153139416804427158746138756904007257935062587881010031173651461022413023662166067058225836273305769433748766610423857091990241099893738311659734119556568323067391063130114442395971397560740271423699237025100649281765165827835267509602775420181341155229761006213192409253327256413529789234751070622786702198799561587805707070994368256579740893622667208398118241458319543142498107719987781379571932448858168821470007697534141899914711588272160291781122636941444984207701681811297090730095770454195891276034886991988109799830019339755710805189841976614792548373245443831568546496864529047256869925802933499218835552482931652004597201907103513957756656907752963706191805934889495366804064474621863217879307607407726827603461585117419777727584175427743841377546455728595003194257530713800379487023424561097018091455588209151452078130796337394321899685699178577843051635858299078109229589883796656130073945611208476354959271122930149835922735839870003299300504244702015661247686218843748752560488868062588721888166169478104777614130926282482435686933580499867567688669250804818222641230183405570711747560815066038348015470806314377820959916858060456444384672112069518839027709174960817445572738062792070390743955962923674222088857049159187256455916122243796874348958357041264352148985088746813011004065021212778762846759452225789745796356008354802600794138666868710347145954522979722664463123334054226721162281166998126442461169781208383565904890968962946450751832015242166443827943733396872927695483157586926020673976905647077729918923124201427624286851148309016871217663566861172661447260702092324895030901057309689156859934656021657889610160268735895376708741558810113360088076156855857522019739778130130327159803737466991500614429066135381912088361657584953943283946965037192758965346541576331921463856363671772229484665142503226723038879225952631292460236007169638416764086221809772629636277743106147757366543975878689383354341618481962994808390464804205107864429265256404665974147359834314899664376109871045172623423362446272988544443499565953789662909320401293187981264570637026075382850533976714684301693264325651934423398994567913259413731607767701602942035303560436922825820729777938198207499929800891978750892051991699845017525301379329282077453704842489993702505987293859799302646799367671117716722518198789703733914761281730958020738782420788987605200324045782200617260724124818911605185115732521078118468518565324186720032717808509375402255014192369866448651317032312938970810460702052674208174038530927904176728284411966201120928154832510740054660269373330151027645142796399008022160781950432260327316745618722124529621504035355830580444037561758234090249002232904747364222683947045754657269827139768902926472961986812412593600953927124836197124419957491126461988496772116357785316833326155323420235570007337300976447979040079476412000906186120471362799270127015625780394519393951406665969455906128732987116053152752336267758111885053433288315219026446453843132653256677596400093820685695680825497956780725251188254910650833187927934484741957870451427423409863943947892868152039892053195610089310008106796862970276501522730830607210974386128025955231421216301029308581374040108885951622531051810137804154468670584651623078033439336603214633899076889229550766859482887653657508880333388363451298977878905083775593397147283979276576101648339097850903194112656424926664819280489923810614946763380892048714845813693848731236422753495310256159459511940031581585299631086687459863681205539846494802540749315469764735345042169775185745963260579468491033661742364518875294048908045592799906492777488712671172716660114273639510846901254281490971885981344947314627158787116369783375785707725065983417674178765674275867518760927073395606931881077592300113070117632379833831291442171428749960720024624572662416406747815304022836667052931132314851711617676068275855444505839926683440329415497284667021327383399205463966046625085724904553536663542825337938721170134994129951539347032464259508222243807611930504680445990600399179215745272530913371860946178067358966490682945440856188940469863290521807108592144792839733666793902990271344423028647295109066276077521161287322796345844177624599047323500965188733929454753540558805624588607647994739399222176309354091248283805777766712281108182674650284467728236499479196309011525354465108896265245638770128003918383601797927425692517668399507800580190367437349271636337697690293651230573842579531146603191787156328825346294842080014403717588556191556729125373298222800325206658938885823041066512099032401384279531401559673095562834119895398343588702999819421853451489653896406954523896464201360222076757914389393608404728532708465481621996773280304037591677038683860904645581923933561243666342550983221181224459557956976393339118794805301108579006428072077745478629479848975916143688713326125574632426033751078820784926649815724135288482953617604672182246087418792264734243654518473731619122506601791651182874078231218353820035935793862723489739847481120977670550608991461932566950714155198238224348440850058585967379715216944906297973246488511602155379067601127469049722880313236880969245725537602472509049960380769740626353167385832746248638765957654888398026678034438468860907778085834433516214740640952977108183948981182893852562323395408199461596772125132826973640593058154198034489312878275776021096564249376459864728479555487508845870748388313776225860008140842617451157497358654345674984934454929634235466267508699705307174175665981652097248649607589134020077216889577930144600899530373939242260707360875923682300824424475083695122406680980372114906756138751874397607733108973157356100221026006441748299169248393606874409645643453430499894932997901603393673396187946986552032153818053558919105165059283867411482642508401575748875987122643449991846581371568325685242706948385906142131886224880550163197244483463554305424490848142995509399672724307949321869722552028016227058226518192192317285227320423884926944175651935908479055317908253975300647088957872593339903085131327967025499924872939702899342213915543701523600650354532550849965692309301320548542786444588347585373525216648876277606789270688602198867369972028660235273838600490705893686978724363837413268127975474475079422401883693862486429826225022395794447387343963463312332947116693010246173654848469876861707133878901887381265092508707628428664847215044185074562590202994263142991107621582563252499100229644931336088365766234517944617590313164995738598403346830302692084454784776988508513543238626849147707781685668792057255473381059245197064202658972157067507617318542130040300398072233159146551823689701728830646606894846307554748182382278178506550372774670523369122581195091394123749038626155713421557390363363515441941329251361831180830384430041504804630668239075887374982569935517463933087733080904395178732091034503802505356563343067825979654103246240830084199026356227428502631852448396273775476564531861522986917463312914572028596357662556482402537099561891324227442762776414698747501130632737001564064126935186396325350213055158976444930244215532667761248724559783381063708464698100097227644068692762825404366209096163678927208383566924466839385599452049374987384820933609727591613231664211773379638828637294158972653835310791043765981957875557087739893276918037872930256515719449246778593414376750824963059986774484970171679188310647298084314446432317388530728944802464756009862902160843320096421637722890638357868421020482713850680066001726620663217427922387483897619755328832709195852463937311537254056347054447550690496970630018796436884202335772339175350460372873511744503252991812295877044003854349657709282484005224288375717001545567292060696446353394839141023592253815950803396463847502173806965837640812148206472458175474076206697389810862658051163042431369960610109879907120711232174383399868314765621988750931632496709325861557248377902767609320844885681740585185636346291994399683827370034369650761820391697011290647808714484474757465205216263296517090917120530173449091549829899891109881050475551425254762732556807839492735029746975260892724701075773497896653138297634627500311520878666792194857911654774636694897376137091355007511175941040908781468403188484713236404163077860890026153455887429331067264777712793323316732283769022658954506294221811429217121583348634167244606953120495411160701102602264219495562619716377697865911381556278967837948275186101698826910783443043813056261721709762916543549211684680199636857080491188986901078466341842129551610989993625187464702208055316543776452053488213031372349829018909532764228980916923851727267025412255563616546502387626230927728977907893654374865615528367210023228260420459813554296709018622402034947048915662964182316081381360738084519413727609566618559920461665397281604159986034018291598511741995097551447281127344923196120805963848840143497112408625341082468010559754371437569222371595949304397968673525191122623825480076877366042961492265170913740304001934680452195628068532466025433099603389288295522524519548066745375888204648896319518575602738007044466806202153148317677624239873344390803213141502882239421313058509231261619668929953730735000489808463996504903501467916195779316100368111729208819649571252606294101297661928870391074502822556990596116987254925738202010503758562892624143294665450260805871302957112155179050580945763051306895876171750892319811091126390250444511516872261931095917300418456402999982482238811923996509890237121101421758915835652773923039686174284456856038263523484413741196452941525431111527918479927200166087983362685968923159136963581554040445884963752694819879144313635605168425895236107482839216553914935433488061365794458895939904823925120140255572753375719239198535793559364453357737067798897261473330503919226852178831380904124862195233256651090196471987537292868267102487976198967484298084214989081061149719119804545639706760248426677721357642230589018206883213025342633833167449867567532303941850785023892742848483616995208083415551216132968795884093229377199434300443475140825548014924138303915860835230219751663376018846211162333979116803348044315989401165458047558924307235152216919750287725256833965688229348393549524286068333787497124361268437751643747570121225213197307639917034379216085888434805305289957295269827653174956310585822532921567361080187171770121269569673728960787567442616516042207966926375664120180367112621415301233813763639841816241262293842281014270919226554091822532456320086500277769931062930910477849364976554299390006976827005556159253738710785064230255693375685958115831259181612707906513719346048884436682330516911157072065363746571105905696678362589337458235290415258369442111433901859521458017565444217280561975068132209647360745233572383314299949345965959591325735431617400678938147114358229031043295477146624924989937282384291469821247989449714381629118819738589543517116546426370495242085858793344201179450154978808216272343901450156415741844316917063194939006117388979689811679976045100987815966443842286886100339502076963752384827517106368583846811721196198627407120523085936694592556562561138602840909933223268129678904701797078893750790155190963181072009501709086910582073086261214338693587633082431960799397574868736624873772373778997449393082050654904657276999727436374083455554280344124829520843317261703856903643340818250006455249559796079828605174348410369012846091105499985651451181455956278268068994080749706352245415264772322309829894400793939736264181635255274590256880297635311464731677667037974892728973836190725724674900081929246946203232817746295125240159921595143540659808321237066631798758488009008076599511490610222403427230431049655958700417234115464052658755421730869038075703378231713920964144895903313544787180672790165784086742825915141536976954413176417858135402412714369641208761172056501307899431048820350290292386494421905911011299371110212976337080001717279185825502348617259343287186460012663572840005683711399401385692693502518282451227338847519296445693943730173179251753976278128326448798370803862881055495415014945982702355840225416550627497420204712749849508635812609898621185221803143719619055709359951966556658005864545874913891843230354610538317136321389810161466855863048156693352293247519348687699728363839432555445225251399840033719024836186769517747645833802187825573610120668067389261952800796519149808367122572065518967194712341977907918296190126086068404241964807989751821961108115374138227782579403483778522098523426549565965403755924573929188009131689654445660591441912550146392412120277774566232867781946168849803817356277627971529633602326573658166609083748288314687462836055298883034427688965258372329232816205919922848702922982131416315428008254629976214879136560276684506971390613571558513045163396064175800003235709943140430293844943752803324419430923796231006557466567881614175383180243690707988239994090553521633274445573206867572137667103624650040789854426431143138459707023134973110643082741439753706007401349320099448717513417425619235945179790722646762331899900960059452712332891220127096667987908082319683670350894365274268900756629498491732023372366242572467415854225592476632048602406439839014910673030807232182528744183067178078290620856915530552699221361163715407207810563598095397512270331859163016077456356469475445096648821086519353816609030650930319112821538960813448998891804106448574746905352178635540848052933995687947623528601293802823707401682962930282545005468885584409923542354507291413167051812689807970182800249928538545475659938017401504910907968118469847864973973094653353378986174587334609557113658990024121796736763332055386985212549641694225961726425760800156274578165671314961508364478140893018461239136113440452322891087642203104735391623387799751119642727590475890450849436346526289246833990777938292012775522859455564136903246336694077600244574554047424781459746392610915278856100738958836745418623508672697041264613991015091999925975511124759260479844668686841962098360574575655835757743433218090268900227402843874013276268993463649697161035896464202331273668987137062135824285230015507740407475169551366136087812598824844346537327108721389640734259795073740882492839140709711503289479984219087673489112551817589437843075189187407494308496340281760930608671368657839525070393262829101608312653767472531332035122454210938757030854538766211244388162276790883128426310474658644072063836963654122150792144222579846291410254931458231916717569978679994088668884037427975901448939025901789257922637700237783559519823098656794593217073793910405127413838206549302730122853021829638136871942218038300892007794889216279203964247269532929620928782894303090419748178373298646723323737673476345057794533987235488470849471833994452035176365913508010606821295139870514036809549869996580787094828095093970137966663676345823560000937051701472048046785124158579415493600104079862516493764961679370297171680921241828242366378306592957898744103224261004845258711454700276496060111320347783331862654967001211227539750059605821298802149386793015606013227426904563934827822781872509218191515623763445429949069613803708849605726623053635313537903676880614121512046959724233930335776228184133226386160410848970282132936647715484952931204567920231212703031223604992603482726418499417725427938082870381423080401675732198772535026448064147602838289105676479784618059665743171161413184949348338701282036474259640878955549539501572562530836627560934422822078729710856214625309924053994654207112523774110469330372857099851178666792877890022017025959077225398451001528112761520299392762007947746029146472411641410748145311463383044911395212017444556631448997099144557103528745384130507277632389829918013105101477846496055707031074110436385698390903327849888492244889998167738486271742446468530546758948399091673861733626991607703733303229654591249957910293145675776020070455551253448192595248016132192493072943633683994560332834484075917591623261897139458181624615454315493975828904854605211596690359707098103786787362406052428557963214045411018363075553104047457734253720534802307429398597464125535261742259358602165602680516753747026314890596969021466877258112685003605929518073090276192808524715922215643731965396790207463574739639191248435382049119821065547220680238546767967033753942862587198337305925022156998659960664613259997486097983923726047195388633960932294049737601291894233073048089206546410866320271661801063352336093624755718378442219940367453153237482430199040771829316636084273668458149076070885428338153008107351329552198772821703552300674237823269300818310754983561156497496475570929105826656876534239778251462888216258651569750923334162877984074946744593378363728351099170542356374082826249274497108050367808714137096356701043371249644904900475278050183376898636070083271715981738719927959302851464451620430163914932578943678810859844538333630966484494714957168440034935315816440796857482015050626419581318543014097224998511872160266660299846160066679364535579730856595488612283004445540783647540329356145909257515756112119754113536805856169595516352130546108247492580901398051562226085813007363944466344520343272304691194637424216310814784914877048455033162341232527117093507017960039709607108081498845494791032923079669676308563344202326288166916351792874977269494964860085301867673926215922460373923715276925491202821892650023535891873824381710806210171050810778822423798275459169076576460316563210028260199352958898381491166462591731090593294798105412443638929253526581950075906018168016836976742819206946502720159182182237883549402411019407724684230379631757790380425152673007259134626084868921206101800013954679803026007921421697991276732036578176306648238257635593051803544007353977170395280849941713552000850709756581683063229117319616831255043049269644149641693750909494963908276686400665805986953315177783357482067789258545793825795071289739455628023642393698754511240712409500443289192942057363310017002393331425336515275229021108407404439970226233854930997857017596019918130708222901502894115928158832476864308556185033905438733111329139272307023046302352916878243957538851632592796246209060565793676479094511516904963799247531237567334560756515166979160543485597549804416698911505839213195317217468132238987744311224328515742221262124389023819819780245461102999500530216310790960203161491347221120446453593407332447838871325112501446161134492120135646857027345322808257314929136730918715394974923425384050983869421176508542741987509323610632277364006468302085878296474942467226321305416912724682135795726091867257516622629496774123570672693239487548888820549934301816770780062988867856093781236366173234790252439461761508588490594193066361295190979771672375190103601708262445651220134572838544091357264179367899232428396201644397446551012160145580602235115615491810537687985334350308577704949173875903930737655453135721076918540463035266063951868241862331773392082595731233173635202624280839005940147912012304163410384955537680407547566242200970894785433646355016253040383455670299384457574250334530384937492785531896035297334433539675926669104111317074947143430609396529586242755476686999262485171884247767504830278833649440933675459616482204679079462066589980548646631019584863473192804080450592783117211171406920403964693705821523219185177255794640465560757376672300243988929360951309469423470542460032622048384251702233641392114597849457391024286350512357243059738969097417831284046247647468847213160214038705543948495902408091049603648681710885622408471850690992427496522391029480586816929735194089152699340655034606766236434511979834505853968296444977936189688644609790694511920371350504970839832606074956779240798064532167975216408080844852906109243742205309668382190848771851886276878804934136228566906008700567902013596315461404274718712169486276885760063307544662580067109236918617024320299393301892434856667906630718842980941277664094950886022270459205855344730020335695116638491879573206409543573883107212921168331064832889342886194554786382268340022258748596737055065707657918082118561904725161568886549099898833153268913136283482866267531073322227888716544190100150420513412907160710405903316093099381991039215277200190815480253661729523352512274077711123039628509664874881110827233777478981128990940744664975551048739893396744835709233328475931866332596107043572101256777162557437942201637624336044576778060352504501980388884022508027347415081727923407702769624105565175595825222230469306730219156611089590329759514303468569847118416311364462723442875142748358867781358327679392967627455647401143891422707592202315031906877633991591572080708899707744639294118021302155425846287655883783854571726315902824611048257277958603747693760632567097645955837701453875703009374591443858920867984777356974426524711044693214246978324761681120802340237895419501347480546002934611787093722807758899808388872817534788197284766498130836078399938792673559519116526888326480131755441295969529217606545523325075532950098000733684470615263142696900401768594510544121631822959849023838745561610851689513453039805859954614398949099022926377662327039299977720969864454668833317827788825661563234012653038702174169083394178363473533960970860957345532559417758362407263854683590667832914105940002156011612079563113216190236718994679024122510987070558242352760569350728766974094474184288380962562988301408135317526072393210318104091051224956306821110147475655503596544591876004474860697271398929404357866110445880871580307278012648123836048629254127813792384280609624159997712107645530072436184761862029981678085074190582248618745172109814858443551349827674459079198767016076729616922071128679463753674608774753832291962212683657858140633279455299648449077881733889223697537530823895616516348094965465293517738961749440280643401215919572406176147903774485030720384254172925493684660443827168190837091822466420165910707993621984342901102551767023072188187390828116973887654114073550954949188962388513739453364449138873701443381094796597077092417090478045049561899646057432698735363482643993476672642975384526714681394451141024595588755317351642708415188937154072026372807969701825809495899525922215143823024697815145050031372952783537048048360572985720308884470138151252944526098327221840597725734298715775743114887579856108169279299239552830105490087593462511211944722111383957342855396690582340716660507670594098201199829022750376363055854221653978338103146298007476638172236222996578771593134178237570544288734507112130798928146678559268873523674553391157377677891144949341298185525101077671897020509345122847713489785328393566047836889210319720015833639429540550872692336040458266636820622461739086953036003852551871213553812760867128160460855157316780556174783133539038461348644983528278827429597810821798972029028505442929178311673520207932492219136779060381502089723147220012413145867536245201383708909301159020858709963336894221776492643204358254581307212953076259586015312244977275491612579692078127146112999127259142994548748208784406282306604793452676642748753690050394257892600159724857177686532122481177950980045696593010216049169510119400611593926248209708761276352204315654765305889495534204314068289565885521078782042825602732420291715370454277537147694253127562904479236904593679898561209665153757114061308640435666647170141773907082435789725974407321807405355964981495136360278035603140544972175566126365834029835207159039178946984897869764954715689260413334835014902478603475902484680444260044988426961019388041370965049848077525921957844164223398784679814075140134805658024889765105210897787408212966302073765790121615776774439930841733889817769771399642499413095026964741775781449251808610369277300300206078849162205844409221389043569799404363990017419554793965199572356182466536108838928037199153293922586459919514808161773112630031766126148418003512950379294337675322508314363738780062009539897464718984072445992168517369687161911783430147008679196412098669340141012770713395313867923478940194811165118235998411220912342028000026561126105690889304763075581856034258147664038465109789499873566423970928481941967223482070520885978582814409886178183903757457306615368389084135380414686430649131437285366133683646957938455763857265259821418770072149703065092884460129933958189662485520762417802205289529201882765642072747775070280883113675603624367084554013978057670438195567646767872053276307650789489685441357363384909964280966785222785759543696106383569267675678142579254058683440248973163211723086342629679620184465874477523291652536427741880360507011054318706705335026292019780007882513002298828778229885270882944121286165056153228293041976239685767335142461278211859307478543971697645326775154206522442570554654167610290628038901234249519532786189896262498574479245377015396044081548201439028333715545286195559460480711063277975809264365337282264354407706897285469619736237090201627314645333145389359835045437186984013380686330344452682108050571738173252779871187269707207599754641134702061335228868056557722769979460896199968292163688310955462790214660819533344595081281939257239436331055885158291382252296585294397952028304071105955912238586328798200858525019070282306856148938402797206767144715711572788971976730091955583902433212686975103264958565091803208198373727478775388947970338734569237216537451793425333729666031998927264285793718873217474523616787762855031049960046826696686536906683194374154444734690462747362291301531648940793983940438537874067058573729993388289438817079427920790035216565739665427422411307043578807751523714911163289054388175267900401178783351865579979733470114225706238723612055620342588004621821791445418204733491075302352353747117188592467018823866767361375162533419400054798604464880548902700841938468382983228577360960306311812062211070060649432183418044502834484576103096499156191936204128706757616946675035313313704720906782208076509141714639697339109011890517784980741518951505925564018156089229232614196543914781712169723370029099656512008010183009778371623236579881419163708437931918719359362415422959151479214974896612770739386342580083729130438716209163416950655232575310083300360498912395769016877587343939814193782169428270960600833878826861165556272659798518414335433004298550897622976361321149062175590821405354151496077233265509216554609422201945678454205053928193133604481855263800315560573551441248975933715932349016332997041460792765393427378340742143956552729740579443104376871776025228739788700830473714711752489188807785367641149696428206326547305926159827836077462071712912480449988016913598309251504195221711437406379364444712766192008924612357659321296840357780527082559637056681786805076644062109004741331849255482165712593212438078618977578196276835663640478788603618190490222314349866574582123161663632111188504020412218321786995619765179239968281933673653088384418325820884316689490675206685957521900779966927593395759277375521951300530860785710935627965468315633953486978551173892659347418098508175110321915596632120390745567398367389757362857327882926258726031292567848796486604434808583038657935359255518804379869760493208523079985209267455493169833647936249431251464701765620421549045955092130477074869931288533334747300358129021200136790115939018238069110927065305560016821864337259218177740050643640791092893917937078080750123718878916066725774826472360262092532717138669894742379334593714615491660976884552703769667602377836162833560596854429304317588837329975425863213428061159533096045530020982974546556604621675911308888374653420317656729345235648881435384972966287530915697481764996085030578989076340883916004678513204500500859711508339199416211949687597382696537789960694168394885251400244139972159359741984025065289336207383882466830968533951706656011962417465722526360023705524829567590121559903623108182245118894223094105456877354767766738647812848203480175124391959490405320491481709389052552678939983409800812352932938123562685958040378302266871333126579061899322941062884861431775619680313744832124833923635791588597617351269997438007186525240166452897834747506967007597561969738378368434792927070248352039170833566870372335226440773848008899107661965760311907546377741899514923769505553219046201117972811602963836571504781414223154628005988376946562202980633464160629503521331445782700619495421198845929728052263290955530654220354184278957472579915411774311112532373673500586639669575335579433370938533490258042462707663624006579428600168335857197500759272285820217912340669214238121189426716223155544294040591596491593951136615161368604949754004322123507564721812900440355039253653207490260994981281640521551451594111700496817662363630505907690379767328987301654821076766000818931135740813080247300219107717649807617495773308934275655594953971093560381826585700210844241955713423253093911411946682666889507487728115747810535289765479451149307770682294314185370084650697719527738656154409425760610254909814174937065932632995723040676735473428798865194297226773755386615385609292301880839684309883950327876178451399747396456878505218998229174306248599687661416872364943749010547693305902627461567912281311289817250557351932840069040012257875468026272618550961821237106757677495127767815904652138061494489726886699042899010346427594039593321789824862987915771152222016662042965170891318056105512256277217995462150839375292861963194026695689541654855789965066080806918464187771365417607628777702001084254677859867254080389065964335515160198104529294706539151993984493648681904540709324750330530034123966820840109413341446134310302251553101372064710285437833494314398328266154788630871504443613121298888461468864317196969934775256278773859843533206125987755326608990995671986385439293812872514182583463525338840103879561156322316984177200963217712018896121060672361113688182998552297483326070077431012184075723556477697802490342844888658602550847590051684845809592876965446179378626389838211755476810732232114047573959625744118838353569796133529233251768529984521509058737464587376658585442405775366676240287388924323337416866526992246172498821969340603517361903854368150986883143373065381266112510682511079158602522930875705684927689264193163741177291890649895019938422987990405778040338803720536754806053837836571057249628170911986183939951167702980553899780242521551658400738857140681191734150684981986230822997018441968908844049156535229137250688169719838827966316202619570563285279480198299487303266696646816977027594840791499088820081693901125839108036699869413234235420551061724729835421297612825664303905064628745368872974053107136460168030091762154234622988903276047920487054802831763438952468677781545449467855987581323960335186436391202266845156775147754671766743376219330935084809131319908572805299823272774203693984446098440441209927022369311518377541887714081164330418779647147580023077170316959733617620554354385307052032326261810844373828919610658474745848927636477723681791652488350207730801167923834150902751320593441681150428363616120770314523787767663492219228137537984414496744414422148475165549033558742269620348786092352218146763584420328701551536056225004792948386606366039260857594949026926335334658712073827818655007404885569782256318395680055626552385982781287498978165994185000137526502571026945165082158219676122989774629183273266429529989798161335968787591551096076526112498077600806289993534296628563217033094929346974693271867169018178262711366030689436493900907721280504814574809198751422311583309410104204607336487977451328729123669909951174911520484174635853136177204415419679642563018848476799336842746537227112212233806433623804455364557558661089982219687403898611573993687921186913250102179630137839045330394071736434289534876297431494736945073335594717059859426033911015774508293269709414504645237544516897376333960732542689063434384104081774334467955580542144499337021888516151067083345334107262965852806924953105532849555090159141726470378018123736378534793315578038918081294452881644566818082858755759325179456421213358687100120432124878183125820475959589910012839909987105340646230335183057027869188285387873930183743648162116402031691680698887619013524471531584612206594096406519359197019657455216557116648835199512593832820542876815535528232916548534244765660172993669817896792394723157410334986333917947583169414648655452274054311879986105110796514719696425247767153633946786972539420736491211618061157402063887582031500189696584128056548047429415946603089341761632039417167900062826206991823453577280631142152220908060577138220194466802732745065193011464391250995600138010003457661859013990876188293804155045055531179411816981438441741847926515136254272019735801590663202966766255658449716538649498298803747821288677394719409739253437488136397174184075584127777765347846772335564268618352857177606429626842221545044201360471932450801492304626782172313047909998306052282358419126286720515728932959058681926225235642057062790984179821688722293087937664189459707487623826877905101030998570196634020583096582706924666163192547478193407194392384895600598555197988819508250215251059477935034521900335374216126759305370499522913243698644722276859205893588179399850846902060553912518456397311272474856037366119216837576745681972792399545651217963156448697811411771619057984474363807784665876109007453324089369868627441905992499044246054152028335737157398379218359477804310622094740468141226679684892014166067655497757792012797981855401120399077487730486549023792531305492981414713392894962377220722702422270406918215634068470524127550865858304329706282567336751352540932442942408635048509187895638053216368882149521420280998190858696316431356711753487542532315581684627694684484498837448659687975386815879209512123735856329625680205962841650013617898824405268580271514446688130202411770781248724296396417082701423656498844843040612624454782078510526843652679094580626483737927927006534028019945576501583571346576509198746738555042464594177769865864572938658623453191476707084466941012867150194313273444368501442974398327585161680750809881945010010487236605944675650079027383666704708555636626724791791900631191591895064476970367932052519060346855179078641931912298530727260987665037505188659295344179596289583337726356397410564421390172932350626637913439535776573514114833578054491259465457811534543104063145396258647256575580967295730152725789619639044799671339451196960485387202347380421287265292830299671149777821685323673909408462321755673727030637496611668390547700551993003420067377933051315195802808599441828286549287892923240510318287399788295731665614812932240479542890401102844274450008917794509659838644640659608078067707553775208614666992634097046364067497933777357625346694288550039266311179433576642285785880414324861946954967327014070814075185298936380883143633393698359606962468144258464704077057825612521455240780593062169077814409809325718323354712198271194280993773991924594797107067084321128961871334890721858831425254989570035733437114146978899840578336935806209263462865110780059956031114111598895538207457759586379289947003881135108126077573164425049933028975406907364153154663910967512524396034010321394129397062174525443004166414778169108179159225138142383849648785888681029532995034977153299996976639079285988266491711305779965647762170819547306181984386336263139746154102019328452167704129316720545114475059510912907207395826184161556084460616638439705289294714475965300637752376892026011253065683059499923200596351602770614374788060411569612388206342748438058785117177048946500558667364175014253012585384888581769751929831253034003119738592632180576418891088188173450712965119468936316298942838226171572229893422032400117342003461242821660539951901661041350995931560350214270221841690626145719040466140882306913435422438817691682980250606682463550687908316426917482018019524786100580304779603519894814633262377665778797032803496336797763865387056268807116195801511177214306285003663358019448366981752419091587844008561531227914174860220692315154118898027419851812322020412132857815661565130850311849217605090088538390364773559595433809509804937157128020602755321506827045964418709444537193690799094802024097199427655798596324986292226043152857214478724069274375410118012432657723393138095051612294444413214818717992846096751584011185275937245490688665015427248513420309264328927617300192535155987125309958909620144466220307517384757210762661421985354578654788247931981534528207059935356532228126031837121216199953897272612536753955909356468014799324698029896552524531653456700093801207156386288208295408672872003426075176451923101484624049032025401354217405601431985488078737433425580822448392826359175968037695256343596198576045119560979762349557030862260763677289728709552112558632510893942989120570753934647577276070347005259274603902179282302271696870587301439082067422036637605757349614816046821081985700884874359203578998037875162494764731049294259837690209804524597428154138737693313645349624299073805424910547010590726874990075744121138204868252357879074957394418008606242434324789031163863884142549537799499068749121806771696010550329711060016343567956635391398241480773487375854461761069939800179462876790703444766086560956116501922380989988598530398436348060742408097532532382493844260726284228836120780666859215597470705515038834429785373879834674693489845143620695321877641664302560811987114728601894741341590954676632144999742931455857847023815290707336608477590205161542633834702565131195437272803095259731524142139090855639525669902905078728052860046309296341730581917489549102780979524333217982435231867922855570021008066915216136413781476756864941570192017689132029839235763277839973262415176433058988609224873052198622366364500163056438804530945990086847667660693319642527389982198431161936693051910430029261264479072376375015060003817927865218198254928454619708279786145465962316069219219704083966003808117562638042093503521295990149924002556847467392946655597597402207058667009810505263903735502999966929605662226870537103007698427231169017768222248572301518173645750413028240802980974241592644100938958182544013980958432766913145088857323816772001036123304490162702053902482219653992751360073539494911556380341914852629981979286269772162180298594969384112083733770939338955977588032533093687057214599982496258495275846303560536767726567241000997951503232860211976308668771083075241183588311353914259874112559317259557902995253913512554829873865620486596058794504311420887401773368044017133952606164249900408589975691888436302705134448224878751951964078915347987342157188867603388226661816761357571487568604316917799033934782811555390103030059668112324987835472029194952169612754963024268316768862244321892232074794421018075527721690352503660593065825390621269565902683600819368633464522176661572091851777509208422718503019400762931729207371662991309173499613072811783081944491905743088180494535324579881456741858359128018279357511791947816506087069038231719396910518980256385470327413112326093922091314035145227851816493383873814457385800884024569503947378234456758518799266167052921209711186438760775912043355760428704293641847674863317718819008973995860892925544715977690357913313102942627876045544040166226104044526883850139393734527737033936667134737655915950688008163485274941894020404592010774531602761070418094407990290172779768915839974285988955952337134022508938178552385493387076447099268493460189231641470480416083372032854637134145706676148846976363398682420326028046145904397229844309274201051258278264619527002829657670334712309363755771550112480559674183395810373813142027893812732422072329587975907198957454130423709687551961149861884227931066680333911663833126318601473769255704113682035508939392153440676200717304203425744523514276873439680350249017519984864840014260206962954490752881606299115824638693056839318980945911601823745344016481700976300440197614085623442513723628310820833294787181838419151709937772975239991721457304062453681131260255372426296359595208375286299501798599708493884439629066158176113172879677656112351464369318643297428562664325126318506484911146793532295465897329969453022749488790298547013300023176448795651924258549695977828465929677341132192849590157294179873238181852429297906235052106095642360879341573721230935805153059688008172418930297790667173526097457272979514729909595395152783589658956075221812213885373725286416962881744651830180512276117374180395614079595683787737470643856311105464584689630960069897910520853777619991149407225051237191560158398456550873020916604306270802767491036673765294970956082745455971774595793343431482582716344714880887249408360669500637515244813208821251843345081308445437573980261204308085080710273931263241121412009484569554129813744320701086322571135391993959926085149273297614934322172226633969633183436354783316248719135758071540120225322152660371165786950689354739637392399926328519582537294884524109190948935484271666673656609741445828224269923369815526416724870099896526488030984373459863785929244699391130898968895566336481753700835920557918508335906977908895388480344129047479813625718622480784708646085298274346817658520715693209780532878890647621919522541710146847731231743930422324081057056381173061371568173691624861888934982781090575089172331093558815526401495655923303897020395663722077465319207489326099906166327613260628500362370737581733597802572565701330154525438389113460185273040383155858822129637925528420390479631340636310290320670086199534406323480603892327737778190008645355500734025847248370624661569385222698242574301178422709407386025677056134942662100718037918646879242596748304397487666773433314137763046986708288570394416543066453206220755233271228247256258368003258375962909302936255356550839477160546669037992524703362638491441689653017962627301156730895804121276710037589525322652110358085663353957974826126979651484465341823464505517233394130109256863756250366096330322635545049853661879017051727724650715456351157234982133623650311497844446216492020435360927798487250950492633510816689961885014207259604939942819897087906774921433321668873562236836031304553483356103659124416778402935921276926625302007867152651369408609269539236419199681937455018333788441513672303898607233829079539820055454852780239994654493757891465431210852904477721885430583707723430979003586346215345598331891948436359834856484307171695073495101845216918934649934704000742217285757568269837708698574692326746599846303720534200852413747590566971779899316434968574539238423468132544160353701430523410525676944653663165066307174914269736739605674113201913021341817114806072851809969833278057331666600731452450716896713250060909900798499363699257591709959326054787809750277873653500846241480308358907790797810609966401756170622393107503123053467677990608395762811445281906738526706667165660351358309840251300510891711421235784016328769556912051700619182849640036278686323683573061698810912722962887278797239748348604114378513981781430011459599099999244661039841245587666919313398592290379169907668967101141371804468252057715792685802431525196600144492985476926809169933500852245176603293718384220269907420969808761219522692729895499901566227893474654280421336826690104844394188741945889479015609350983118590742559765971573206743305323886422143140631599531369471055401318187805464030504822476436886229601858850561635723651584193723982431214314200332104175561899732319192157373586925067819074805453820763291786033247927582792822681387981186888729041161654321984084982307691473910457850652850906956605219842848264947511063408493279459287147227135642006366384636797597669623026003207170190908271987263469674333520397649251160070407081350898940597317045724360449284189024984982490016764473012834620607071579133710309054456982806837190105318048379179262180456081891602796273458115023422742517701987014930503317477265815383254022320422640307442121880152990085725875430761652385267054822191765819275014411222592444771614327443697370564846331274208858761737282592936588274947621103982539754617746379265561267776467876605330028629717014158478168453610959831895337720687520668069193880106623780811911016166383849927648765449669622330255713178480117733941475629050059148012285165893405475749448958816389070094995507775496438186769818280947566305427153022216545029369960293983096670667934216391329932308254166544052992712587200197422379258327485684901699102163891623211364336507451568499702649475192667816697887944133095730956906765276287418810006276156182968673711573908234388532112378047289046275372520822274784408612560041229310500783620978917162267779279792574072696720041910000035085862422851287760140787521183182747227892219906904939414770801840637250876552844509048027098533495136774809450296880941963063188024069717546769328974618884884786652482774613273251809639224160247063957546056332775189183861206026242369582813507256167075457376453486123642675563911329519891631765900282458838080949111286891911559217302672724492293206038564271763135377629681997526770538399068761727461526374736818453247441525582984569797475154310704517884769366515015227666947965569344765497945310254066698300971385071673410513853623530300984744788007280162409874352036557250744644813997029574134569536018478841352093538469441752171893160379171468697028385464844890450150564088249243724811336759798102202151410944836745225217485100916411164694194543365468731725123369031814487611184686384818854286977629713532989554019075545818456260794207494588789204955093850710566008757285383458349583659353666973800394739784553672241406876254662781637108803372382209349069211151858088620611821584689606950199200203531957289093792682292529488200710131740739281306056697478664566566190810501739989905986112966207615164346878864131785878064961746725953080137783809396013414921289313133989052676371611384662217678587060045702075373192295271128345819938264486220009647138901934294051022419382335403986554240491576053767558223352843243130917941147150406058843720226906205836899857074179584117550197637738373577634887081102925456903532287230339710554986150957052046958986831187880853609477236087459379837407249212942160805298508064063287277267614069410891668142732995141897051474923709625992476368231140203228508058990874975184836426609903621102940535758381906322525188381894680499928798177326116721976032548369471663998061923851723847568227111785638556736125022614253505510544455818334212233695580297948360889054333577131789745752775617090320955698004157598507722035497131886614329896568442528460761255312342380924112663789277462703077206920195458972395306170980368243227554960063212751987879573459717209180912408044850146882459097018467726349347422134377217770547562879616444587364281314079680401423319404333230981653876317279238528990145364718350686703086897078716260068605114705327289143278591230146679636559365586360929208781743499990362115872964325587422821153891858992737490203696764595195815259432628968003153024953781531277133994992767547374505049022452539746141276371403944748271895868551219767491890834445225392377326289821089083454613456694675936309295126134788007664946004850702858837124353927518546688773348628523779503192065425780268461953788957481361602368891702455472835183120894604513703150882240699663553536229951490101735957368497652368736716985596630603102344237190758135254245982659257378224940299198977689511564034365974614786475196845836502532116390175897908178597336924648541539511494086792052223305616405540085466478177552921382120657825844244911145954864726180173144295331858772734828653431796140671428759370670016865821982488402398616098160601878010972412810125314895185052594703887004583022083592965175521284382124460790387197553340354336015220126672804916032284035660002809755102522650596038434372022564833174716919543522029568669618789086330905834181621726998801348713207955399716833522651812967799598821204539658903193482000422222488010754532301410034610993522300495323312555651153270545554389732025223110293638699573922290735704424877932377346773541761195529322552425652716257670500935406692236385959062304987893965223204744489842181532988461432283676682219631545252404901448849348530336515240740883324347186058733641713198024476078391181982566659201104320574410186464193075308990186489087772495953750250538596877407975060218520482697687186542538308396550473729098382009891198855776912713081650764909879240414055566263290583640385460839018934339943716674250899894081671027969458202350421206614834991019248496452381363131560149778760973952222124397731672024566002420085440648874050166770547263281928829303539891595522325907282439910246216009549409759701710751715794569057420910011825211180171289219066076436006353614707100232752206768683677428212122547676699675482206441100157960050041339745800592799665711550043277450432572942804607837446315456496923226910758163480888266467559507510740336035258119551807626549584382646515898768802445076491555949718948847482426585996311533514101164361076822900142777406307327037410402739083611578976575073522171459183360040113792728283013391563712953893480323869323252435014127101337933175005117230282307757372958115164697065207694126285650717706333617730204733016036077635864530818671659134601660684469089289545325450676026908690258487417918590294502296307469387624898031386424827448897108181421925277193416873926674828651475700171132376918083399830333266366536784881983541626941068740884523032799008820879739297784483732354202534979021975588643083702538234917179148147053797681812581193175313452321575565382328159728400170174079403653715763207022169814836460285123023690754173879330093842190439042607202709401901869842074755874094078865113781480964746539785723561238725735971459692997043557680895951280744606698325699487309627123257456582177258863791759974616007927053538981451612789494575333893806494634295690518683349180902659853897636914042980299290117969463894350624358123413531944979785318961060004618624770247010537309031792216842174694941574221516372095518496941629863202189045685539760873644133029561940518654033976590484896926289030456439737771314155747668323151789236805621871307732580180786320957611151626640102324322142683061772637957731443351418264162924135705949366092277870678167198106058540505339562547011252656186133559959020668962973110811901030784118892886449039652534342251268115315672942880823224489937541530696137799101141071119695801849988254291370123043402615328675731149930821304908102898618313150966666675080649739992912602531125129242927509359235577259298866134300744398641633725291091230212924499972433664227981930752553342953869269352036382185963099444755458148754643041546598823980527561072589595144564443204345331280436068291502515122312358090601334745757661491687625779094161959470309400564243455103785850236537746746360049200134228898153743171752990819799532304659648827767215148555492617360680239534179923364175984611378725944573328935920715898529543247020014583818376543879039511889569331949062249113005524736725304930245237217602619534066754607046870821927736992235747144032958330127623675014836306689356301003243475868049436129181724664415373683278509217353764122852421934597544031475847702965827189876323232708416644633382825019719495240131388407887126986274783473565036965316326305041572229541277793869355037593676376906547277473813139066673669568355680034651095808380387502362140753301419835269425677507993556721923047676954133492444758511999770531121177929478804653992033502217441120626020997624875687810770490904235943514844799544850874013549338662184250888270424244097041598468646856471893792386696790053395083409937874545394450382468883204763192978992922144837567010641280814098829322650860296257848111511315241764363507162553518896504505873737425727459872540209306562824273264243148986334322344783340546870460834111719471472699051401150792994576769616522813602309830258576547683011778373721596104633171120154237838257095104555918347833193502493980035149013829890104652762512231062727711323331130739740115724392272086711308809703539642778406719495701285557769690080525298310335799423168868326723689325953528663606316338202927024441413734814212770207374043764567145946907156765535725574978450387587485401707643439087573489833175419274714335364046153667858978256094899180592881363804789999092821385167698114486790834066077065251018021985074778780578661550833858579330710404833513327178534569104582781296791274980765046446796980333711760511291877033673987793122572368881258072927648941334197193319799179788170595793454603862241451768157671727755676328094038652975455017730191003600997929690825638223452158981510341121965506662198753427301141478896010145781849110330176741853993086851259947880825809424500165969816236265778618574131113305337532325720131847350373384951818496737247556939504145088762851074702292161418143994559375212515380439338036986335753817124218193487114035367554984456841507005264383863555677725209833435669243516744313760108144659050377582469563912396379679534260361540406821273684621011511598944824917873634776474987712470750253189166031332114887067675375482879074756090107727548650786613757166976077531969679992077732203496681946872076338701277436727773864862795675162050198627945206452424478649974634007842138823998821725774188571316125133155227213057355117082371600492225036404882912530350767925936464824312673883559296666814944895604713667951086201178124195902876348466362614303294984495513394873164468596261970574175070485645149704710844603405301988051393197162201857068956602832926936868394012887093044457862719300054472575831249531320783601581355421734982756694275592525719615714117780985299633338288961127342111101556945684674815660348464225341539710337185757937142372744487127345836343735869923076602292153012820598126904639252357707749288856233560922444400640087899011631369523894440367035138173943175392682635306556108661212957607152572179167018250088529175347154093306614111755588036260228694212502161407751380055015804843990917606222233089644763024396117050245261110358465521896594111904058400246972664832889017794299751874912691738691983276193380110050977484910067221900804210685362185428965605185198443939791822893242922149228307481327399756097838566616405935040830288682879803934809974533649103940022279200196715007517538809070763379076142337823808567875078569270540777158569187921200716599945181130243393590285344188334136027783003136905079636089699860973720282781659873386654146990328742047835261341700168517305921194930007762708652840765186065183275148323446938484560476219510381583180530741273925793717318286140056537804437005975333554404112031539442005602428187882360647341925269640436449223145329603160864402392050073881712757341885170423132703518565565606437637951478355414727749302013487272670113865514450967527115796376356362954391937411497296085705806701353909464916124328768787450404700961807846249252172089819818441713522926775498320891674603188715127884828853010951298412306804001806169315644697293522926146432551872427633109369632807839770618799853761159034550087890686071558954610311744612271073877542689561148791624154097016538649636244952685387137154171155559277988525879802472765771610173851027952635247414835875706951760299866478529684402350464142652796937939200318681091617300573358278351185814785877966136874249708725740490715663216940857818602807490765803904278094040194955023085539746423092490068890588605841878167648260624989385912830219537833561243603261565492354712874913318548204142752809722514767861391419873382466511650409106845469592233906168312381282303843634634572500637366287002482043461629869497691845755959978254920848369414158017765233415428045878883980351770752713697090559882774876002271556452654827449505539865111435386075943627297198013818637534111877374312063139912931570385135747475894143022542502492683067560137189166973444584960321022526438812806803238774621523606477522248318391573794227719463315485971983345178836165018692679224690010067256176116353480259692150405754589243282014414409837493853729688433502185739789769390841867032289277811914174517012640672144689850533398188962364663860357540984554303349971152866233299074437002221670376574910517762430862809375267415340728724747258357621117775575616432808014443066927743837255074801074441614650612224760280918640424389980507837656320086591024085321649009836224110708407840742713272997275481893905913473674650549048666212937218635246511491743504638307020007472774745491952930116252465008211880726391329012626112329662851274985013018753144687811184884130016943597251194390550110273148518023302832717013458495899839291900459536620564819386530468393609428238769071721912302131856620145617485946305635329012749826878248657089557234974145693415994093036709313851687781755205477495851860953654172420244273847258228230711357942756597268840404581647923937055342829942504746280384367839933677842833373588573192813667804646582469217854023612092957292321520757740025766664230790734334747495797362354820752504154788767249693201345968578145569515812407816384051071777660535335899470096819503217086209575568405343766966574447017187681422281574298577460492670206258233170165901720540858829157173301469883229990232634974163002981576617784719501048184582399461319679492694662429843766736694471688283123409461426218546715674826401050899839749383888558978342747016439295195444218130076020423017591169086096284892662442270244833845260400522644529647243451714420238233158912281217523619061674409373051138720698436756754228082710239510509361480991536162867707201250306363704900821321471387490363683266667741808164378709992886112798435275826083202222914726521307178878204119204312597062605100349382868770802635696457730238751411766057787707925789169777354995599343645397512859459306792778923951287873719462407219029227318090311177216241224066135550786335290770475905817314527366745976205091692630330314630525413013025837393221164062912648693532112794550116695673840580196304881325220372359384126177456801499014433436050902445353511894942362232683287765655659090430581879779690360199999508901822271813208867211659997170232213162366735843517963557854503313579086137682718407743768782883664547573485088622257632941792701478844626193097770804605246580852226765676793217668124182238458549923575262096107982151323267819714348407821100251912140279196506673178581372410301174997034088873750544270993752752469463224418562445600688331038122632099843127131990575745051775522646536126049005598897586766980587617270970973818531818083261956937191049961115031568321989308222365384683589517676202120445683825532898142898029631335376662663233473478128731102249626672853260239812660073387278524171837794737994546787462716537553880454936080292195056817299848873475193696609420354963653686501019209109302158558153952917951928907304203708405213277558837098252254682632209406959734750417039018200111594720656043366655926844941444676175990632650255688284446516393018095190759482764931547345750665887080445610793701885958215999426166853378045499700164667417451391660649002207254807365080077930024054528440996030061564768066402400173281190274327368496924044528848469872387681616235720834864234113798305165654452450126572256542601443197701723118235808840119522712692881287357830894339688085854772619826130811660381244731704488302082837383905188152042306953376307351259389116716341426072653889837582983542229375425701103507306935572035010669990281130187566392363010076603991938367437229064340004162492722375778497370777205776417581309100240368902836928567357021267955496465770108977029267479036268140927887926100144481308614472108953437545879345213003895608843814431089794240837552415131109038739059982736196647491672858894354399822486564639422802951166103920097846737557983577027186973244255086863914719772723960568990494488172102247308773613075800296268217567069507099137052994439139644831094120596283963405136122460744618360010441062317641453158326219631797173253508007345357155133403834642654164052284710568073806521854621673720853543701720852957055707900813556086398044112034766474497292245436395601272907235430117826806010099308141462660158460725089712871909154415196764131403337707467790278685997789226240785356189276277875782547116138403316721114136351880888989648438105876802660651436514086357143340176385178972139821363576204993421617503800843968335567541632497384170118285677113225063454259044767058472731679713974203445666876659720622962651975544864505303199649852253035030046300072378289461178826132340812973167554506688673273556132677318184208752222236851568079390340680798554602160767749636799710504523549465278151462379807244238198604292215718286672302043068658740504357624935306391447930351885181856343111288453425780853492925745802816349742978180402190214080304950740629152761553630325698246897826741154216065562851735450631660243050030384199607363890429637379283041911819108771900666202050675265582009280616672457025279245380316061848830774048031114916358164539841180623125866145955664557217406286813784130613648488299738624763306595405222388377331748470326890385535609663258045177175823194579462449153278884647525410037455956535184778328140695496327822881189035753391607529015607017747972019085119535882539694803030591356446455525435308946481615390582010439057518610961274962967056954808706612803119393476878380617425972313997950960334002211149459869407186956822316908793399091310220908763983952206010256297211787823614631423279114755217792345110849638497295737596253922739250174298427657907476151714172028783579829675847286192367180634413573721438633501317785391059645950695554106157410214307513043008153570889235267055865497775731244671382513855823720425144512984160726624160818936017575784585044719868273955194889287780235419306539397741677364695546633951847230394737878583200205681190650559184347004863391451303158712498775980555773449718389186014936076620478150822841875199447197212266102644060048084926626814640267419553795855241798739515770972654663208438960857607099707345452827914857426621023659372234090146614063179590276677829303905330500150174453594641568317654269318733026608567698530551556958264702858652201236456675388419839365141387549581463915844839876753391193917241695845240766447378251497495810140987726975713517658348122409929092692538074825223047853396365586137707378556117349708246893717396234491453635764794787987524107245751998122882040880626229554091101228068166914842228814106635043614374386793837290592500047675063966219821998357902439472967209690851652657858020146474218054613918465294781468041603053664352518263366949613121232322140218234789429943030003155186741005679812049561953706757338260973632643853606586726020298602587104562571334257963593551439959550039439587310492815578229908052060134287397913325255421701288754632638384361065603592089045884632812574183924275924740319774358982648287701759068817956967006610355907589198634335790692186911378970849429085191733151207934185800073407152332476290038552235059647590122676808959365862074854025382419486411545478250328137639944354094823610546655635847065179582042982153727313551558810792425587243127911079311817219086792345160009104819181030025817843845355104817335851271152793525838683492307973877193453650003709094577374880357672784928123489194338613521424296705021101946468039944510615614817172307708808226550850093001486824016378223757952636704275184669283800654937803520436883000093093645725355846007164324808353649504093799792688243122331477727645914213951939581942055876664196736361258908550195970065672803238402996956600595728060033606132752294590047569004367739205080175431776773908793219677085992340304183821779486124819488513136918995885031364663237413043376887652995656275416817121983511637794265688535617615553452722985263503970139594031175181821944470280983589569712602024324884344448811336606897748755028950418480891316046304647913595561131651721765848418882262340853057569860595418424251204959484884735624872378833356336359756919149690504736654321770076437292150979801373429490000856503975335892255695905653982070069455297659214480075665385280288099298978322726246271331763195764891440214839697696865067950175827594391906899164763172784978518122710322528775963328064375079249824927469551536276777411468067582255854197008443649626919151839842127933795813640539273312692532641403879768818053710993372752776614349678870257747291060829428188485743705346512729961530596654986485896821204108711731478253440937084788616372967220383801424532501102265806860925967352012461082374686358890556699631621812676323020281827440922066898769858858199296220027055895865850203105056823336453599361946788566597732403673976227938184654123719648812349586134376448666915246801066014068514808597952971056432094459793902797663972889083186709230510615776021381184370135976456283506809570215889725493048913225242604417838788748103139696885993309503593064858828496119386217214592205599583325934741531795285236764413387435012958924880747481687764171308491790917696037803323674358650444218081290885116285322208076105424978749855095554930194043016221032985041593156415956206300319475070185863577537786473178528325373160353053156421523284405467859851292280376856601575534549395860026452220336024526410983704794396112468132770591648505150626392406550821784351589628805626386523750677769230354738107275524317355413176136608995986345446613239205217910551188683946379709853513036202400798220034587043734603998446908552274019764710836078800607293610157782327392773167976289130124676382553594752831587388884600480606887799860386790526441738640626751720405208301204502778186351271192299806186084859769187886954978696876959750090829418957077982480179210000891318153123467348172145361086765291965930165408160683177035311604814097589130783614260178955190402289124956627288500181406459254282481249252332740916389588174571701358523188178681437001029278479303234166597540235289303896005469769299697672734139124651201127023565575772899211246776021861908116983722705677879694381473717571405441111745357908663226598631498622336706043347513442682196768967800345292618866643979519081616236229552579638385785452773327074568530028138418185148057820970676591664736229914202853460004574019500031397667651332841605509517340050472615914323214631646599482001367867627579354259286544838260249973742599575302666783978669004529130541761967212952170966311244189970724179968360939818183751161211112938000109594290086275995692907666124148495194171109140245624451982174936565675664228820439598070006705746540429119768080126223786725066675922890899377241587325640962630263636313397593850455761624732102387952542856590054696426490521211627825772016532871924327276337066591269502163367200456573864976154657813408869785967702501650539547418759940971508930277803389247435689142872868522784635843639948168792851726084655180997068956603257331046991023864522200881883425935233221287007548821300733353639427803374294365647443221058725612032220716352244868384427267586830994608488682301505196517266364594439326028269273017612163938621750977658218751171268342017024322904713896662752554463460951503884938647706071927745576452077906894250041890177515352010951434709626666525509354930597320114673755502571274693713215855064713179490663419644325654843733594424418119550624163084634726203914311454884362680534182042040472214831751873878883768257989859488124795797686149185959303639770740300630765873258772227050980451888535014991329236967110329744963715251065182569464867132205792753342789796096883157080311196999369119063161871825397582580703352728959074682781187731789725549610167404062376337198265775580002570932625902024215807954177105016422905427405398712257338254463463679055367131022465624039377747593071557645951033485575435330594303008438833956701953664202801480876372313966145939175172669837205441557398637587127164342684295596449950397640456564765395696879066705906059913777038966126513879291289758998207189089080570008721730161661674017007344440680925142345060703280792845185201553221044899730571060640216451842405238190526641741581221003734193713251671090604568320049030555479452407838021546325277269689684847539572457828632510372430876886559043376337988329544000414503270027221156193476530062809763717294472475382908845297153502339177316768782695092837947197400922738139610069127204616548362300841751900262771791077712383442943053550318241573073537484665560705452605825437056443768430171743946905034874006461326908645897662809912797907208556885521352269199807262257954484727301572798419038559886452553157685999897694167098992466142152501964397529368821372465240943694387034567077261680883654910345901186178445275249303933243400136209787804821355667583536986609632171145773325697331058671510476315133825977750604843552011216796487337783158110173159545248153772994369835802103525844523191091457411213727657599414280288527110123986712755419828585006086513590725013892599753177239813532502357904267695336980871075277910129678928779699208433651165022835018256893947374076514341901551359695318281625341321167174170826871776666071104821711696911249804241443095742475128557100339683063780692622094084462728333815809059247256487942074438733649991205935830762634507677912940905183218708679713514239356411600841980421943035240054208643014691740762974935902956893766000531391847397515326777238144185764111884266321263537722743254361341838245941149668745578533709195813315760685577150019501664741568022595539582171623371956910691888273179271953638953369610328944475261063128120105441993915819602067931576476142300311032651197218398994605415801301143499788942833977460825189426427749174772304694704701336537466912172675914398623670446718767179466223347904687480606636540319390129075897341861647291886937477196679984226626164603236803106491170566859027580911507739897969827369799724990998845043762890750648623757530573008559973382893779221450845779195216658003095656650430470817912423413792164445669203304011460710768746434867968220626098567673391585397188243097548942917499629980029606599867244207777735403139930956411661295094264231312382322795386949069687455265407375413454230043934986024264744209271713604484159334253453375891610680014547464616609093347112635661812956896776420142611415536872501571370637153802831450459115239560368077078143926663345290591169989128469336815919382397039488496657907349468523836687004724218923365282200835029435393749531410968105450803269033210955955494421134117977864744089267423406785808422045783300705425494568444233865911394778962497256802005375125891522409321455004494449035329648704728273591007875429057125838377726053587406854890936276287961177038651077377781605496230750970440006436749245579972205829549556710275673738982755050814066069698374703373015300934035191913393051785073904134844378060511497979472369348332103005540337747249001720809038773543793885144190416068758327466040146579210948311975945984093587216318712782386763508316492605871829615620525442554009014602692030729068014913678986266885006546582420770854313543127704764167704678415022735945613226797596068166245203053023375407818794219751815330535784724913931281850145867797978405280391518703350477932102794595003599156505840394103738119236966359151787634726936881608943743644223471071123224691978374254901049074300633461199338153743320040204346177465114930996060363940685910572296780637214464901741290087530262931359979304689672108537051737655150764215116001853594359177934989486790164568783869749508393890116504227781488856291027901501309381583811016756346919250758501586476198144192837332335979325324671792527888831820002888834589410516023609377872071568223641306430310543766480161490707822802950919784871906984421646564449882924892400468442440543473992121089850054009468374581458805753029489709278182102056313686159546809541399492703295327901431142087093523653224317433510427692395094216861102537373652804610144439193574265558133559633629279207075327481877208992345938835429238751096277923920165533513403650610689581853536082493147017470448911631136980622684581908465595381136209797990711277842200172496386313248459730624122843871195065119669951575717466845033283062736282496899602541126087435088927950254983272414691914018058616115141082536276144027837425753026004404135274423343723543546407893809670442508076275898331875813598148718342029668028284445868159697774713839239093558288088574089739115433062196331038573066834387878049291140926224440677551138037971588338464108533975217470387684849704039280628784665216857932834645242855648459429608620806009954831253231946624343300368823533663894880940664435853864851676821048266460500472877179452453293878518117709560738988269767051988531091355756317790212373573190379539557056955575213491695541487499020058827994788121362210047124879710359819337776281886734811717832575676380942028434292459062865132227900457433759224485078836964574780525724409472135423755211747289400510721308755022610224641748021536489995060419221802981060039371221467471118661941825247595099873101284536508571669794099979311386390943295634590631329731599642217631490054328681793133079406337531379071546487255748034703358693331589053398947398981243104634175068524950063608022115608050279135310146477087772536852207002700658273774075954417987791809566739369719968081294953049035823205496931852015433042371029216318423494291758119187446981747735209295602704373430631593880070889174594665283592491664452031839312513120974424004136926724254894641657534269010634000890368895545324452846453746025481430169757807466559221436934092077228337617685657301983037736142157357828991158073375649886468158330218300438379399049326898396131064510009575178982000872310346454299132659073745991781100173541551386921505637175723068382518823982338006691653084776143385631922691607638122281377479968721630877350016381858782529538946827616957244399926990874838844745290934545433380938830654734977772861289383227892852307353892645023073173935973698533976835776355289048906378841687817713771925308799764948425229267083245808478231200081700080526246522248262920129577842284984237761893163007686983708413358227177455875154242918182112945920428313341385397683802373297706075671422540783584913211991647381056234060576465128938186462187547212364697056565855032459635617876158877780764269220529670301311657890389486278809369352493494322518429013772218972572777085285369899412961444153650250213759237210552749290600855762980529165949061170570689865407759108858371672402053517188962943868737684839307663990944686637790242214392244630372921863951111209211362016150452409729190266730669384248029740454987402676977965320017684557007607429760158044843290970557464745741496395546627729321225816975538442097358264815138708848509538966685300828261845956999054040301688159195908906975630339041445656093478897311784743058176792529880593219160049999370142519449048094237629144424207407351942974355877676076672662748540699340008121494777736601343946425948988634314659160080469512152094914707744552199242749632659160600197837395362822936669742952715870554063573190324406836558631741799665104518240647392524219806013412711314560696538212157703788032213212192244414949225793632543316062234536645303159087069251875135495768750955185827367654161974292513337891703935882248141042257530509028109840556393479297609570927361801554172107330938652588817496071950082335333429433007665096872382893721385911056930378426334253992781461535579905052354613776529627913847288923517787746451590676468371202910989353688554167337333856227949832256389116353355714083381416928473665033051375608503239198876869631899028605820370350185505458709618250345932310811327967237555597136258644909798905577759139112851671723504030040249613561265407877262877436329083449115993197590422817145757206612510485650615295290777654748146560849844120646194847588183155698870312456002503146162862274008112874774639935507133961228926452801563127755028098623930217106141248757153709187749304270975289858094128831590261779259346990949222175261666674082478034779021169756836969480461109923156066384042958604352944968482752307712595332009893862469999149638651987897067572552282882683443810231650373501641115595216147883915724552350513148296127998164625431545906654090516104871492822020094326339404626880187286884551834035926242925630094484952106514562846232955393796437509408813156126993395662563686060613515793621582718343467586077018595434317725128905234195188661406138536075595283124746952331464056211503360745468215728815154998993869617540733531985335106674797919883085787066869442419758284098507930799652883362879539586743360073226854295236734790512279163045528702418335617202766495385198908042431709750113291801615879435334806114241355370986792148693750424717853326533733665301779077432286217867205925720213065046903397963954781418132746076975038848178501644867803235592729012423697711128017559300132143934410158447030000703656563398323578048635426450104816509184432667146110303776851473696819932267413791445258124342620534751154162756333314041807036779162018520068883751028275910922998268826473690174206853125228575651925913030718539104560616244807065343220492533377302226507988941784828665354304775605214577985073743075326033039840221668872433516758412022612516201378886165915952970582184499795977506224503406883744435855583677833867525163094959277557291739164611514621581907290463277673163292059336736028090496168783575082264919626806204603864747377727874675614081252355579494499444876879745150826371026940795546003689094158648075094368559860028046180090109169703776644093678951492537091758440278609897483012640935274634412508133616215240124766352393705780214655396032693931356960878418771383746251496752721110437221333125769196613665848772210780798412493812320603091925087630259845539529799459049610930063856700201632463725674979238781620556400723890605597627506216784469304434728798331910906300467055323122378375049132880618149592410132784870028421667674842949748257067979430245321345094907323636351180010409002014628283487683519259248629560030619269083334779038827735215028819157879015569348186075630923999008000024016558924161749294443893358067516701396324577956910590375117431087180916827006968917899681102511259086987673767873932815132764467673264418268659246788137956450752483219981184574288856351160802601328225106706809908352425114127714916071464037561844523806549855613240916443729431944288284667077585246151115229079133156787747984578513637377330340482574892301012001871318492985409775260162502405652633548457094415646255334133874937620460282108234170854077544341185586936383331898159809852576405693694339794398266453772053968291403125129052898088375861383733395345236851848187410952796366697542357069878571324935933117978462329646757337442568629171816473072448408261412230810154599267539285130449746708277889798406116705669492060806977160854387093019245286293864131057167407913140859674137769069495891960049322882889129347994032903752861036945250902142972454280754581332614949090827220328917733186568571420332078858578069575848926443449155759817468062444352542071138873334560043930642695681761905756375183878837182702887932656781027462245102664981533635562983261178979808706580642540500357636519049120344165669152271472322412611764958128991851259217574069188147471164461388781899761424637561802975533609224000344994146086096937728448760144465855764266376859692179331151895156091009225976317527474452050250966425706325613745225895875886335203419660555547988231987936307892170559105910429752633620112143770060278624304926228724293783022796098531726980030271143598194797566934828398501177351396668947308895335137464620241393962460748355914824094201431750079226555203383682204814293849692343959192791417723187112316442143481424411786149018872260462833599566700172037209210222983623822490021381052766653129901730278898632454036709208885586165860634883812598503792272249929476290816304234844082452963455934977330241224341501787878935647250334412524330192676290831797312354717963000757179080054824779343860517364444080697866351668975801875642666072102837747260923309742573190724134883776013328027142910965093262991739931000744728415824061860463056488587445975677103726688916101094338742428150048427757759775422059341774371502016656555790965644585081597275679558633722287656936664612459000961908900208468510889715580594515868211246326446885366959775575947981720942042469514939787620871926227745711031512143129797420985984213170066748990465198366436721591746236109338568302438431029103926133865807064252279880555025663016841733617373010481968458155802590912728858376951981320068041884359031695206098972527195643393792655517756217429668236393502488816299514018763700447509242820681806909889550065373389487027249867092746001879063367680666146686074573370357661984372168457236416570533666122823816046894090557384791330476135548257610375258465139211351845899695609553409055653289132745719814541519739540641630803571328759623094307345976372648132892262969785089239875893150352458788372183561500901810992599710616111544510548190395048015334319570770418612221333925970848760652361391882057505370490700170933704233968134460750518411861926984094115892079996249622386585832284119457507811334472865356232677621480330769058037310604410518182708492104507477607369847574057656148172894140481698673364940407883014952320928698000103892299564217666712812332932860252756595827382346392009342387170840418517444949480596341128525959513808966772399423117661227496360123808893942028646194319131108978963082826693551773799509546963934776636122941013385538537461476562687310877152987525227235702559187227043247458992272375302708595970147273304497137678910202955399258127830563706641394873267886096784619983464413921008381559227393672614405133358646106091814856462643065161269985828999868925855039403288466050386936484608258420269533737165360414319871425613877785745481134783324008806169772647475556542710567690219668189466251449214111176944590222863464890778863550137017575646964913495807136004813247234253169960988125526353097319912421665887009104017612518179037543975383034927933812471619136503556199823067639753132943660913617081245720269740083103389138187086422027136250941782821578192062491756265458808743306939716653129749929011133336692799451097561487843036157730722885738066755764229462175167665806724883354216782426498985248009047926311040763789686702889434089574714761219077066835944572786109681084718233006529804514902658685114758644287433833751147069743122155575527755686209906047477127208769856413873003579471229921462585444085073942559756933820300511330753401104337170735978532713824481301470512991948384826135659824588942507027082027122076363701849765512863609466639045896640416300526029069507365705238370267730057668795003359593030554331729943240152346845580764275380669846532747373583389768677340040825437955890671129366049863905865889026396596742701112323915594154054585965811148868336311620576486352138482069084157077758197803700911252486777089675141764244159998186509793661823339811225460055212226523021964339979734437584989789555952977618209676803719324946711333760770987987856262384730037056207979032632074105867972024465363098960073543338532731496358143563918507107481614059567494477245386053773782757001442791771347652782787573327483411296057944987913952181216844120173627514532915535782807933978428096030806975725262118319569602621928944227459564673919025494827774027698860777383018315324559321323990372793412055703374630235107657762158514221483761636506220621610604675903799478675016244990409891998929918695718618339152710374271741755624587395786927954392899121790853311756139624484501084088334785157751319458194383118569093865807982765454762628948473507257549433296008823362715404617115050101122802001915899329716685730852941227466340187930659920104123126377137745234724464469367141182472661629607107887071535854322520259804654873985182509145299292692934872658988949972059363621229618521592971074050353714541691277578726988496510938544100465258215250663213152588400024299468607290392967904287748906692308435032582738546133721058643188480986289110501252189520167373029928293367910530625660066882436903413145661341785016170950260908974477097564681233661462806894228803329897857315069889405807058995462209584949405791784120855331851301697312923819278075543977134309366593006898850911023983463592250429106058771018529650709270854818046994652407308010428325401277567931236296567478995548798757588914941108546687729038945954925417620659548047057914121998926296883759754003994272163307787491218144439646061371581774472054689003761816576862246113834354642340320376274388627252653527779382515587844349399690520886932213173799350981555162453357710052674730232560487162893672359267436537960662087035127453749775109236052572304126421102415665255527970743310537588110287011829858842912954017838901914615805964301115404500247640013184928521655522057119592670739724722705350092314321516267515883939812390618691209882350346051477156966153395710199669861706960065343210406693676605990435038994665415271852223588939701346770058263727325751294155566391032824732445907839919358749766248334549836824810598972545717616157224887437839593287909834572463054961046300131372131657679109566505783381472969909503161090624962531654144367603793123509086368659112979105181387478950457839639391500977647087368379247900617897815582492461617921768259087991575381333722170426274104813591079661243670322083620799265095453692769935118015495364617691604953092360014561070348596684995752775710246625959187864917695251818117766517147383028715943410003629138723234553738436120916157779633854218790237109548543671754102912790919896981467973566445956286873054076926634043754495677763235472945350013062008195259768544237737369646956097585831088818975235141795661611166211312538101957943271109840635751474672347285233139481916285672496715136265737709606809545402901126002310664932470286534927302936391682871984072034120594264323695410363886476650006532243783190811161341394886633826087505079590677238309399283671654487629452691050202329044250285356153927919176634567075253905948624366477404724212579474491446301065560827506861563856896998803598278979119484599573468848592451547356176040705918935378761640562384279698708664935714041074320983053590863938080644574931038581617623447676234763773655302330945300538640689131509680551212604070858479921347443418375914718131330174920926309205572671409619978583890270218580488759939730263656717875636458544705881575617017881902836551347597004101116915037236758943280268846760459974612204761169349948276989388585867161507568668491313862403737563130847138851182346141674869599839876643261875780956132395620061012752967315226670110345081555891807246872457009713655967248483571049424575007870681312159970899475606538132608959797590264233128313720590562241698262727511350845703681634233641101076661757292388912528449781433259108894877895900821682590896931024207464405425048338515401537828981475884168592470260582136517453644207572027796606326570348754183718777718789978923860107224570578208905317884728183844214779267817138859809951023465487836209770031607330643366436648377368080929679098933211136089378842135219188223791398953019511892349219078290828256360502528739212863059825827707280648979520162869441380446123110031797927355611257280210591288828728914933989631640053272614739671353168479718515199382942936968430486327386528477521505609147116368120289340161075827792988808362137059734041534343620934039787092463602419317710753250454444037979402550987191321256107141762946544713437596608359979945303501026573614946298058479288089002043086365143459132599603282835263310947185740568816270432394055511806635602120740101862696975303319438097566668013197219076372558246348222699838914608126843618337517166640761236180363238435340318949103877647464695232307773865887157113077046423278784224266824087921335744272427252939962823324013698278078083572591445769910757813521308192736592192684609635659102906226597734610633274250628850969451880943359603150711420221276275539365289784011069377242278360410848265848942407763619000301636599343591373225767700528386785320061883825722225740821525884508307559005701385043863129685023871205767244906948182044734759460222160825637452320055606070031066770415703620478646938406568134934726395068329184418776806357869193804577227347188886955230535226287374778093482520777084526796258220391408798559884287051411619463956585669454157390821852838057151417025504937127055088142712572017918570166138627836442057795276314195615539313426584684769086463727172580266583042984681088770999677950318259948502230942336905793348698521554639853057435460025887464515366278059974660819076766626545981909694868105454772359843943612487434981431095718883306168462684335576196513301291944087317518911450189235491443923060469180058085047659823209066593142514489594173791355860301310948542140747930307668860892568491334358537354219013160637119495215700292966277917672480792818884744205877600075954842140746107873751097586185382562299892646781784005431918556945761178218569936766102627950929592634148254454698600291063760581877136920115069860882244694611674636082748720517806516038179517926128104076542485852779576933791909668705553924361980404566028210155744241970495220180849977012654922370039359227112349813160835398552808869427278817302652472058073026806012943123079439486905610766738238466039643215398606929309648050665546432592110359587956458307695960650791749376299018625814575377600129154696570806597893144616916897051014527942328132617282260099600606054555396202892216407061618528797654742589553928510927780253201746229089684430875870019832699643347877340541109409406372377996543625464812095250593551125616085812453762746920056128881944772760007828084393472040025742936648538106881646377468180981215767599742085986469713175879157228537049268212059298696803519559468149808846770217424094904437543801644897682649540355372964558485471146516774747117791087310354766579960656333727346817498096138544283395003815070742717489736281753339769656838483579385404335548997603424162238443830309913580231683781282681929700783575854004366718011640483017979058034894140980049094341548964693503768779566253705175893976137386786460429994877414407753506306090423064487346368430532207855724837384265598164065925294016003650705366429743358488647402389457709150217890623365599992419685419807050357432843766806046238404642278221847934846206209996031684528795735724835066649036192071330650904681684873719783996329181053183878508889131005792614620415118130033835741378810308542933239177286689964967871680729456372057684298453438331360045181328209718029855838787780307937151380738972127676014304162570135387791432634524665198848800170899913586201428022093425283789964979049443246198951082548962264530461529429592427962874543286545671316464251365984239200876671499948689704625484084732971507704626851857504845530250131012634502983043580100375442974278684190110724825897886122654116104664496110733840355646962121174507376707294152389143421607563887725963479308936381255701540059871837510580195817017313013077807663153305704738172747290424306009967634001623173638595666644935028529890412644623006730897249553009305035668703856221959045173765149166332099774493644956956317544028332368358155986632314476404226074165565226502532023246280880236118193166112552793992209421684611702169063939197852217464527250250718772106732911502310555919738313837364105397884152283654429448889656881360477312750642505457421982616192620384217565514562250805616375690108069762884524936357513730973838941716688985812357819123539741254064942265327238299235317640201631587521898171132451781010367943583325022971512903794985608956222922793770547521829111831749010415059087992193396707223878062228723996948113278760900977996087353645123529491900250760297395811168893712047804680056059702360614356859367860202600871715301628541753868512561194162054307842259826993461905544068027553577553698280920262230356277373971452814331725442888457380819413883877917005162079364304099539208935216353929321157070861392718928859980891202436690548733193262606484028449425406436161639111511784204218179330757790112465683546673409088100803034180158692993822382254216579060885698807676197494896792071428369834044754723878453328396784045553325924425407842678513742722333284482003713691792203892645348470333937758723001041390729339531455917991915683772314575001688832053262836932909855515041271769441032309812068136361517131657201057011065527267995362830141056509654836239129336248501221501831727148057671482480493836754075886369625091510261983773841409083418780321901159599849244657295756334404675123907612869101183933685132777416473155576914528618039875033106462758807614511031328613328058656456683817765687630965927570527277832198020834367661868313810825280802607217610289891957535754274967918920599385400765848630432737906960087912474510042261038936354474302736673304120620790136299601154436693073400526881994716792977254432799126706259400205636190410327083069852605169911767583850829116452406005886025463592057577719049796327081168174165318692647668026230193255193104527698407640070716189970238863353088800053498120961167363800983587436651314786665921083738896026009461202530408222838215959128168517769848748016239893773122892286300809744252173495303459060623257995828550708292420241300295980928597217082399619883524372374988394238566796215066108133263695345985267273454197543019724897377308216440657515460069759230913637476243671641242724154023589243802387953068743678306871564192341246128484404271665581411446659424559170431161318072991704304289165663425063783262315768205691884316613992753076066850585166680065686200389907233770626345072862431794492126730541166630431480525835606872250053740347184449345593856727025858767558455734630836889829066947964753224577928007287656573337863062195920655610599356330438333599160830267777714690562236765484999910152477186522953515506622502607749893032993736568022243414085753504881649605280327945452823742863010320098771827616709537909352604420625708637727196294388446018301150374439880845787186393931391021931209397217910026414570211308186950557528005389664319287312015415717997223416589023877865485164559270474091914074550697193089028583125986733510633505715299812033322892085505389087917127672494268062164803411575898263949568620936597917010660680222848630118620751184936795039682869882373189181023385945603381180774100636577649269070588708665644374164941101957199660618737452610656731522689167435881906799699781159789418729149087362242805764941205803301649038676603991587477487304197852967431813954523382796990668322777557217120756649250187927581033954740167068449020839483720138349887010876111850886584768904401863718115220742219801723775417081924752015566366482026816346158675891147644996690666955736845448637980837123326284752781885656530325315078306130622659124700993502723407470595845899997519825683125704134602187875137310124003466820336763397062184067884904628204227657815243666303095416989082984297829081659570859243803617164463940507313647890427890100652735763653001624689541053138976096107440611674602956280623428427200781308753843104046242340883625857247211108410282160188369779769354973008196773524067648263013593964909687709999164385782877587076953761598207427873566594119973582727236954521248253252518475434060930627282713044368929627183162802567975725641084605963596589586194306594727690762342512171973412139971134350999152294721736243417008321947241810755654579251886566556336429088194896467345938211139725311130512951493906568541588227538891867278672740208982853433362396401198261884864606730886254307537582209266365868538551491161499010824446111900311355256339788127802318128792638384730725739597559485707954425331332462777311563227789383894863637606409720067800209923979496789862683634190850629543954036033226524937964148699458133415811249314016558409931308454227723537591676388648826190620575930318468192192486931248549977047467493752903253178337851740539954304898686745087404189428363143588326436953703891581819802513386056868557350720672777990535417160407938471801051006142905358800061246202503293749483133980244587792474029235229470552638089928760455353446294230262444000951243483738234168440767378895642642303371754773754102498663688491834679249144790179452279125033692640009506846280781893438797251381389224740664277180844583223642766192094869853247235823119589319976996340685109381831936132029984074333681652244090340470974231124906096744426437821324798017787803398298795012601114162938960007990035829310841495719723859214941566555730530234557221201139268441444720092381945544333991148402309885712379880812446178627525617612268022610836908770111763563504310524149212442493886685976333718603479901945259281776619420297841412954098289981408964649751031047191331691275363986314907247691703628767256902032383776512072064619040452763487943619345687449152578208987272670316088607273827838754666835960852821287203270680635948597682278708496066154785808124358676060428616743976717181440498841271277769848395179506504223658975705553167419110910758310195486692674178610203129622523214282873070059711040694561569729360681903924191719718561359095414459059392236197509712527446564693952356895136366309123788319271138569160525718141248840358611472937291773189497635010589479502007574426610071029073780924407599651608962042429248522198434690306162266461004266920982100123036790576269954657571097206737441308519116186490597014627814074252172861133848845814770956567296614695214854319148857620109128070334580536979119951300855375407358456985267711988365747693965354325255432543065263023566992672994919066306854601837025576171799944195809459494918064379997271837691212580407990305488990251041638177501628036476040030981526206952265734909368234948790459179769833355568440869856979863818610024871147410322834804494914459677981131773080974258987691813859243728800435635849303886363624058283971337726911502881138244733566905054829545110025984856141510047883621480755285793984720623348513126798918420069393168697408548923071790772129693051639016710482883904855182365286951545727131421357804639969490519204438246442790202047143466272946331025462310474216391772809409822091850009941926765072481066343846632111715653817310107865471079841248239049543688599319838642866877998462087500962155650883510398816777776932761783502321143200890735558456041550033436797335910143753232841725579368361417627519847432099020882092634482180642413874054382817740426223086315628120192819862873375572693722743197736243544932289466722654566250048296968701290414612484075938940136458985603689142529827516364551407362552948940773321526065012258723399152755547924964011924835997496395879801725041633743390139661746822190134483658479878335894685476671775392915536905839519181850786688385808318216429649004481061133540233688415459494014392431415699151333964151811462775275532003707967193255591424491517528693257109876363502531862864618319470190969090433636951716046509862504872301768833719904796866885757928242971371410669358038816747424800947511484121503260680475589344273406608136069493256637232878364279522895514770068621354790034577844259474207714104541731733576998691334198205109076365259860353508137914541794679437662863919481197002360754461220260661222472692236441883299388129598089985439487818225350413645259758216562148737699063378180509164243194639097440144503506069218627765879510310365210098666560857729149053438621532142289262568902605621049224843378847950614476369789906388786821734894185654562007006215846361251581955654568233836099030604898492343092695087790187330399320940122382442149599840356453503191186013165496168324823489611621058890500953957734085761709384214598938882566585139751378099403676751146871251368972159353166929927523937848339245957570596623548297248270423629381722552622188384271880735845571962962266682186314381241648535476499904815580739930519045876513200298351319029287606306013588289767182912746587722316804020057895927908165049281057868682636049311611708228797113999039662733109335829758011496218701449696159688564531833296575279137496939295829491852731116540098153564040510461962499821304215861157668246456770950638713646262491711069052041614630608548663187773644630020763922658997270908225714557236295919231989093528006874239864166866349812517052479597135316512058132791908743854362493183428865880408359428521864590464938195791414203725063112563314151601993225107518644014161466437706842438358753876538175936902569784253585094214629396131957356416034418044265762383558666556570230793734887527290764466057647838709802531544132699073346856346096451114008200978207161553326607814797910231174835420818473381769481600739321006921727147515812784024822849555148375445402027713841154867057093635471233384986916920008836320725129595003578754773040093831260500467884630825873156525063106588558910876047695886492968254642915416704961520246713985257427284517975068465703920416371468456618240990273177761140084844733823946132143865411368837943193929225594243528279440616960678532908969834604793309560195241534284529795026992758975674358448997705785450848363963162001249368389249787412782754125025928760911164686484572866369159765882784790897303862553456803367074536854813188075821697335944010265885751271011055525831178598024229927059165361525431678887766508837929006254524683618577034376747568738606081478649106894435902156553655722308356407370434679539408079426110947769868776336389521242945069614884664318047657522772622251842688230909501878474646743730999953896315360248212281462874673124821954834252439898285794130964538654551851254455023178354669979479963638320856135764422654140475444181578860649380981181307899355681778926941761855649898931835875136927092950501202034708543081532227220130020434610194448741547770670751369094828873674221865737782542406103992780677129340168397932971727116507135482020916987442550843655699180717051186045642923739576717479550848426581998603168889079161139885097799118003645965604822525536391621159129270582183217265251400137830397003886882757305123357256161978461463245550150833714584941589569340029048058640543774461464612213640744554195403850647853168702814625477306325593246592277488187703660524647548722047052138242754554320636022805932207106906391644301685192133156035255624411459053978399800345901343369592693140781169055548806998206070648585675801688594673712875311838397637068309787870651081246234947530341858706761804296221985651870852439374262460422518112964714421033590059857371250172550124245146537228247342034439610080161689346272250512582339520138866293387560487300136519531005646943362552738011140741204117812707852539514145422139395018110282404768258832348143963213589062830600747257772374256484377380766799125531247012164961777705216246784108786624937290925693410814835276669136147614885805416691079521503419800908156038404390611977484308330852838083123515480027566470032371533519543067062340707129741779399148003746420160473311849128580348377673400391515260029933893820365577092709550757708909509244898310584877721744567135311174502657258602215290655078076848752439105282405062408360867329855833447354381716843558306685744873108077912903642975364617938952541683968997296015397751967436011715101939508474581009462648336049613726816695703680244094585082711943154742554060333874087367752001787349083500344369466473061548079464259478605548992758759248447795007575306987747936859625957362559225913606251548275037371350132084381507907066731090474257229997962700175529437847925007296633856701932875209567634393729496450740660119082292671496446622683660247524843988964809355899402001200621643126487232912892665961044368975641889074622313448253574746118039944178058012331677720132575999737727872391155036056634861644576510849409512445722393194696953211073002193931582922299496730042348918558600934750884933662597424099091406581394558511287487183895568253304623619107304352667906939049296091258758415295178437137613753900046505351375618935767277889397565524290139803021248197030028044896072451656925340333942352729157141957422861961507607264672148104183968802064867392968233888876816007097819552227462644502287255025840454328814155755527585120770768150432111328501636024318047331625022205520565827761841313385500669667285959414566332156586442812127842598780118698158838881666855301698131774472958513547421768321471077467328191634678257489205214216722036205324089341894545311627234059191303687971796279093764665860158911421624167874809558676870605152937822514068287252480141947516455625968385008815693432724304678954432601273431614496591115635218685190499792424680547278194731150131451985276348572367376856355712609083464833820110360654703339612814349124844940057486386029677053875449798343323365944452590373146193479968907710905451833222878555244422283612383062576774936103025169179691859929907951792370428156205500025179059540390450938749063283277428605119781061889195564001900524185332099978584725098374372613799074892054482674856427576459005670947402314821417096918211924013443133294564495955741768362613142938726471055885236053450959789891890259487987421608618794986719127507377561077850410655131934452961138237522204473549934414713620474929155223544497116027271104208696577818347380598346345970252414993898809209994456950084676136734817418051834071666428565896796500820000103854804571434878273614878481506685878284481759121883626844479513951810351915962489194002571956256292496711072711853784562643511192042716525393262449662435835386534005480000772224835584560045304565776051161697836147538871461289236922039468735180593510379637564997170148104045095135382645181593976125506262367493990043965105176143910008546875521734232735303585467175974858318398504189863650337807367464081591415831718545675298640536770422462204228676914082067840800013573724155396130395718953155181554034799076505533592596869074654314299717449396553718052887045419785857073588711134886309301824969498393234141815152198241187985322206881261287915269797709678020624076845344431286208606005861279304658272857313209384353650939748930787012471191797065206054164069971585516370171291191378948088198884819966136828419271694991450226789074212546670197632077419886192496855540549492858499773808566093907876483230990119821025009580567385181623498944205546276714564797396319331907893809557575628970109878017416344698049343296628823828316176308984514641830036397770872610812153904368599942140909954129356741516530846440141152266880762176966745409035472313560865615012254932312081539043561523724147957590905930797247647534759624800212536678531355497601700755141938057471921465699492671905942268277561211168881916106617085288218869306472220994253277937173734963690449617281132396369883784248201743662312227369327877586009804511804406233784684723092910800567810897403994400048248648925897059117606060264868135846528749784776115573922167283946443757186532247700290411996669385362174766493504186038216923472161462293481394512735350595650821599243229860080150691700633276366329537802312758259884237738594660127802033118190082770015560819082602405329279485900126599735326610878661794959017511093686158233530147799891664861730780820611961725995513586494372573355205827356705489592268285482341405579821900666145966252402292524806147242317463159117071837756365533255629396218040429746627561743932457917835490571987806288953778185071683078657147595880594841419527913367025198681889097908350329573547368182607230514740807426529513497008106049008097950073443244121278474837098115521825098713020281092704897080952849809019519910107713568104546688848232636796096089093717645684833812789009986684314545545285985165984028657567014338684811742467344553219778991648875492029909126691934911288097995474240732557042062799876559636813729301611415057600254972506225635699084780773852833018212244380570644476612547590612423730569696375529768438874626781016771050985127371123793240976952589561810432347084966039187921118390735325829625450997062345000423438267478893283385553959828939890102167834991764600468621958567497050390695109666159217855893162697813131791251926017260406833487962026860896594726199106011097377336897496365794541937659902199949140616165795648171503167628919175353352952304907214795946810663233912280509131639401142851507550621364837220488690503937863695613485341365970607599281876056922377407511753114383702115236321247957152865087910569938937579626852099733697084645729477134171093680977830104215474540777509523429922589700792807675495465445432239876141604113964804553507263418930452462122400460517826108128615292023751680056374707197772699612533166411833881320536812455369177586671449879298725453612674416544116869649115478712689213811240432277608969147257315479405278914247931073487560293755328107495511673625692103008248272648696760009491804576791190001004499854873949475598991931923271908845394129417325725961590428401966615862764642769953280952091340957433905130875787078603292755104351826220282073169383521915376245663967128841917586332434138584530637279212991377929857130078754511614979517108363473112883783135511645228745918623346088667993944212150722515844087884645002293151397095301204413042734457340196080829009208534931664934856069582605672211794160050384896283357390429665773247100592024209944315884938383871872594009041599047189889440188136292385107011705124925875323872035614248705636021770838765352247166338020077181399742290105650265394177908702258838010446864360325154596228540250262021658390235929651560081371058228424801521410219191512064814832558789378021912769358484086827337371623613293969036555846526038981046381984032227544748106208795632139000384652898607097933334213547651391254258569070646287792610593375835264839446197893569833454850183156590691431690975582258188223847742792073057388911931036235167885731324608484764334682001669959620650304879013785681198818497898286267474386713779298602245820662807040937989551309036129928016762399339593307543442249972646751418330858370722789730109111736774259808629839896894997246060986889183662489682780075101849229990986874598934414853684069385328941066008580817650295016704942915591470422899591765594030810429741738753175778976915629098151141364283088584948621780734642034589570938063562458780959635282433785822620691469693396159522732761119524516373551682212728597810273967287777021773425145827652381665942955842004214727188303973444872794445836941171435649780803905068248350820127618773034535014136988734371281066667894207912848202522452313850443747916274858363446381847168471777333442662250699584423067966965486883196287289746161873105860236604900961727738395340588333331143591159648614842662764999690842693387932050987216646931642585525167490573302582393220478931339502707872748850949236279570674397236578814692401232685037742290191360073498470192817714076784040813515920308513806019689392197979791086338227715590380157361728601844193875510159970832869088622806601706480390097517718580831414540193977360236722475367701582464518304584184822627543412784444135810623482768609384693942244510393708496748785488198857922557820851309231402486184405020566901714841856235890134370044684232759979927377939079743746250726627224538963873571552294499588178508371088624734048555324469849704733177073223560570280492755869369956641004219047556475915601693659161532296180993120371034754806477399413180087317088242967651025256982292475166112834223412847388308616450896995389092398111186914173190751682980168415435087050618650654460180068593097489150614897322755456230376353270502286476552332454918536910115699678744692884445353805989625261378371518155955910219262376011665881999558730919892671101415542923441596106865026273493872076243351142277944128697614452260710901838845263360002332174292888337752612479340718745145096665354674270202045136886328834355653219145109730948268098009546722811124913678357450426764721473461497477514696998013866136086885792387851369216121624029620195008364478644163217876170428341310524984046505629926075145270825604088231603203597731733607146790705691440928023787277288239541700523776314365734495690937042041167962655877804079390447990645166405477548740583476305471143119253728416242408616458968295498987749251606388063029815427153263422009659504837341456632718724148429388644119641091689904969922139548873119425204688033940209779415064317789853533094245164692527706229024396329471979738784835243340217172811731194859292495717268996873824676239472698004139435945646187887547177396938547144945265358260277303038004767821697082173243883886124134282452652422975492864447451414641093913384206848644837710316774584241877150910531138722636130063903911776468217707307316819140989336780930774143201594460785923663067028669871275673653902397625348116440499660587096331650695008521694169416269008204435676283460531644930334099738731311911028222793483289535299458300706570567529388782401619177950352622804092593503953228556341963207529646981016386501433920760776182713142287519590470176499482933914483362547695838759408561263827303527023886221745852146312077273051568462555508418858269911444834150308653845368788745972373647647633588379848757032983938219712046264158327554316145060786263267197632633840352149661667710496426269809416284886761320145540646210428579352226172161934443171999077334039750567136760595093634097979160824923705658452715269823128619527148392119180578342340371749236723280178095990580018836782987884189385871333279775193080850112882280877068065115666454229349086590582393657036550704163489468177655284415488055357686103072791396214058389799561310997109735894873744633920494634167837030329332885529314556959132819182371974984617360952164241277439769796958398917749093456673739172891558311043192217570885158031818009951514931602419933170693585417436252099524828942946823266898615966492450970883874943751298505088407697763298130686092223974348383991384374994461959826802845484376575033377041331666989583793489533542639844271195258142209399044935638813264517966582766704959191368493093997206432177938717447231802071699711419183104030082544365937776433047955944323280843202253829964628888196273825854886243369832796893295892575086180135449387025833695869161911535816779557379504837353020373617235281906791308301411739451413170587172358741708367279483664101133333125100091726624809018603273071572466504140206603825714182423553102119671037852132958619395200729295842635721126248901413746799991347945194199824024381849219246813787167005931943266082730831007852610876389906170124515477298605859150488925333909910418844748148384200919930297546183430211336063836045427759565302149510693196965541276687637364755738670289630172214941914384027056573845154465620763870651144266960880828442453894634627038294044342463607699590986481343103280163147288125044604576289293415493681597558470560285656908718979747680737574128630370922927900128266362697544315308249942886515157119399249965861200765200600679908147564259802284310456479550069633468244758888343620097001325619579125065972185488345798105722844764224682504453064103385388671846405693598745674452006297022433481721487266650067208272584840167829362289890930946352408785152919973723729990462708943402513893738308911427422407143770712998909950767633818729913349762113302090130383742004885325555282818162191672674749712227625744699355223722147481571472062331944480166246435666310676803780247697754752590398994128116018248257425403848830301969705346253439570544352124662723467265584335357131921039869778308403658054674372618771519021422800092399497718163092531212956872268271276234828757957489178827853685951846892906408955528089853448302316077454089374576011561268494817255087336810049058882545575426983235856276798953635985310916703432354086935749748996323836402707079135511457015685196255805057209402358420194817745291182701247330273576625479251034567181294355053101424756167859388202440301227886012854718363961257489738810848107298000501713250848624450714853657617353169564983063811400816870827433410436548143455104821767962337629602497018828823189658588776088818138388040036083299531531442764169911435039734490429748318511428306551514658439992776921635809646987226957539114155436832937390146915078265091113803314071642210485090522796547069404122604163142675368230527503913037020890597812703096617291683154739173393759144391346822486086690772533894838559644569392039765363865521197556944206746881507931567623395524350839766836795546997731580982875784029949876201840739836656287554918700818754207685093280320157371410886645172171797269502158602200220054928240346046192403049451691916529087542871582005118894031797178830530220113511628438839074920474901995338489752956468897554738507118578126441052166406466373696425335522950764380590061900736801389083536743990461324613203417189624329894011454020050343847016147600659523024584605095544859769484508627169255521680270559710622076946622682752019648871960200680060510550560937326957326245320972217043785111937803319218407006585626718338215666417552608224248572812019333214575159239150581553201128178185523108436722461995694793460216142780047934109375839548478348330500728079081687776513198387405867850760877756505671758220380136151771367122104099232429263576803094467686850369197554752610556138018931404922278062724618302505259545579154353991393492890459695607371679462471066003667885038534780065382222280866418775792614777178748778303459772004393997883636690074472183187363763252995411566269094046221262229507897561364242906550700146428609424417949971089910853481997060577382166074101625875290448726294814239061566226903694748509947163730269278563632977639114621696479705278367140259009973424990133566691875147220994771576092851895580616526998964461696620856414789269794489016781163472551182563587564175762965526261493853647208496712726539573555712495131468053806951042999746083174740945891350839008370934285341039874710908186500216126501600323291904726327920017791995421209563960544297428589988373918986906550794535761021579494660055092396362829133024460466741800925233270157268221751828126539110875279883696374798125337592120092559202885804626703385424942418790320815746795032137862744291782774503182980891038796018199473417696297343370516013661167834047701489755568008538894016394398568713370552205141432722895507766876723528649204195044514485448321397607721175692506749044080118083082701846909188874343293984010070498453103704756291198773402475955939469225261708077331162773931440965248162766155192706639534466489630832596652463791654138448779432401826360518605290669974721690346619574632724739087722111491271333863409671259610948334815541220957035913054787910069388449949405397351053223482657958496448622625540272141222833636805755707281512850600401602649136447798690649642438331003984116142108264815371397418074348398065246251525310429307154603581441779167852015213309313832130011567527264464885615366893272507374205094862486883705591948366604378598743438241324480440925848749592404250766475324060437020253898182369805851425118312246698538041543401340111014143144916901054559295390386717692358874836299845810440174183869880953483354117353886337718732258286608246525019526197270610844331718226659196962297302366856818983566239377590967006935018084285430163679402463421833107054881728096852671511924465292149121741313766294248278301840366388790081744180788716469650770169328110482087972404733396832160677026276022108821822980138731598423510900706094290882243289392907353268501511623812819288210853019030761734305991066988762087740311460405843146334068959769493222541575453306628692830912078957805269263701638534397288853097819058154103314697718421817292732305010500560130254340269389787992351515223508860754667377734568861163636477381598124990440199515505486657420669873470068373940909231974647410852079106141713968440689806056064804602973157757119621169240138790569477398278094209338661870516779058200926121461994207298853070229535200110105567934823773285088187651756982667220621938210619124586073124731666274680313337744936838182733040912332456244192126685619408837369323554631634504320286545813614246113165711383052559750129791267107119926070760874902884714318287679336391279259968421008578222328813968819556856431652118124303921022208040709261360426899458016958759583977546001832491560424369248402280682593782277072510852933538214171568273452060144511954635561875796017595245542567433381734513721396861125760788304267280637988879673455584106864154659185461887853851775369437125958704730339164453245316569361230018043452774552175044492194481090622845209437108753808598188834089725893284740751628587281297142355840663506488105605421024053199234437221028194884336769124207222352097685238619554866824408410198057888678582374904939730102304238187969043224281766131017724132409481831416987443820354030818060457652965667578083256613195577669311229275799396468833607702492675065343599524778574492269501794566710635964632072285859402554140351734935488333298657994282553559540872527296582225130021315422129454228368001540936991749524179309661840718678065266180903167495764190691638015135096504108137931646253892852187916762076031384418841367785798527476541864617796826885019942316787609937307355327776795731026858187777582103125520861611056197960077375655355999488976819170777218974181606736721243364169547658973232402398146918544493607962268082834991046330815171918376412292343356543508766691879978271004772877526534274269096639439998578476122798627625430430287678764205102550272000086249868733312666132662136395104465710438638171469398893129329685807615520818713011181344802948304331697798812126040543455218988772697091163024704613392855558134913380170759324412506846667085397391130078981445422581955256751980651293028355212699619026047524820335989295582916574435066913865566708011060461821940414285205556014938385006900572495141854333969633522549702547836785570509727184932471071537520609934512698727881752524265055154371966859991791173552653835365250963423982304236151978193873833699009137346238656047134215510722047978177126617109503027658361466778097299916533962795106841897517579351335972882095538662821923414518397302034123608867141267332011603220015264880914479936394748646018668507564288383803317368382780350415961628478595395005854036105509238736310372804051229450410125354413957685244645985498600299728330589419801968570630346416090787735211385425583751600773246443559130018251496394177569168289345789437900970492536879722678165986503018295869195094974141634111228535356370480046124948730439855341959567512778602802547906639609761007081221561838786259392986025252613327501225989919876624689867648803569789654828677634498378932357574090260766845620529366284638431557443788481151596569478293599526817951791216398998302649593248513221231359165264953847477830133208904853417846434801126710496649721680804089833664492745089906485155731658143935744668236135716990614903744249936959418425372066628997850503101973707705954438356383199935705627634693270699610990491747322348940499780324335786096724299150068623707869948869907546039055195512755336402963491737223170464059783775653496530523485318498692773944058223265574059952189709728517445234669909538840944914768447162447956335966380681627340130201043069038656197518683723004315201976715439102181932232413185562959251939376090734303954219585052101263078162045160136810458834016680824286079794305405140232986404994785184248041852136562217261784425973624557372069062948887443910354476285976795741762834367929724575826702075362449976667727342733543724790146355691252184836688521502637038309919041581396086095114157977168406724483517890770236487045705339632512327172660574081401978662880570711120337790794167863962540342530279621266051878766587411067243944819837355835358492813320677554263412853097688549833028125604759500168438093304261955478429767097731930419754211405025951300004818490373623525443081630636861893214168267145147166222452795060644992812290502445004260048755546825024616391518492785925177306000191502053424619878758803460154482747424346640856860417328916800649650697306856149373915334318494543456317073299418378889911129972098416605587242573398654594345623119425977457877006875943737492644180237839293179475846861399728020659120091193600531662765236970775155102146557306050336736939752754386940247203340075663141532386696690519919238512617687503740822501091164867489962210381095426865389464428330239838377160597822314249119908983183406228711735970625930480591245206181935690524893778983943784319072377596512427086331170657516679121010803407911719357236638508555093614055803734701105558805854388253994813630290142086817444684362561190173272405802294869743808541940599742040924704679807827707052560042093071902318953035606026973993492222585954171871821074170517314072686644158195694285991017242919461745869735540750198351091661675815671669192179180512741738421853986253568904925184270482801013373625642627330703940312693953693880711346452671283151665031401724803272349222963158394519314997976301373382310247592415289775880424300560479510990996531127936377386534734493403619575431557705951775437217029112590663845287853192698684847786423320384035164178440253355091419921787017854520037919577950613232533117451682516060376733762040466250427502550417074105939120681507822876818939280577348211986754239538840417086501518692162737020470148525525357753582854813574452726204957856208535677067159660820275594838072907100745375542576080585433780726067965662749660031037230630464851006562842624471352965588450738128403440007129049891848258371617865169877855430797008667813587838651074588069623699902573735983075521152296523218701160209655149033146822513486566471623174700496862556655846417834285904580727167643904511628855897088162092841098793224127863823342019820444885974707121121753890536903073824327101580952828939865471811728623329574315667663828696135150693238078108648869984684493362043564094538072838581231146540152280047578918994843549540550253769760066769944480357382145275843141068064974500103261330084589608829796709334227528880244813174430602857613288292215463770266428828148280238899227355503990418149746755875573041706698375552984374125146260124062198966389201205843324777561422258713589868011630070967546346181123877511376339215318747727382687257826476231754558308460596233975939485292582599846141208416802149416476410275942348676673095808486726853921011334598929072563552057447580127912056682342839383994090119928757122278114900783582776450919716999875586870717552230670521698584158314294656362621584926342388002484721105398054906884885468159537155328227409655121007228543258292971856723110065435710846610139535417761939131928667582914488589606248983263780653453251439802881481521241145117199523445175550350788828875673100772638229906861730769216074783386606014221579526373382029435311872193331778265087397160821949400368432449994430220700841814251203526465183471496495330420711732940651056453794373581110115904178883661880379725260085891675219482494172311541787292739051787378229185078531416375565894516298276482423588663023046603633041030133948139562091934712433089921978214979462608877623613672259217519023245271251308503445327373033390463098750768476279138151712290727337717146002952772123525144415459369649941884892805328051248086053805962171420879835591208589626615585566038736132152308143556132587490231283004296112166464534768635991057233482956540741448259214040306962933951979288727476407461196940484520008550039509499185577753477286508640698735730164093200162319511705195616059489285518476286000620667076580982915644212558773064028818437364390786153716189148879279429002793843821798163015024518633321506219247736747341676262672648408356572564341972544471548512409676813432722320865124018674022864947290466275924364860649073392386456845365915799888687505051054288118511749566922425713783413542344150648358604716904229634466418434576978748602221258663035834144118474593426391855792837034425498129532432320238477293816876158069641764273426500449830845248531219891828201306937537188384114762145136653310031331226581362377495092987379208628576139083863026281722228254386728936812250721639762475040597996515714881382164142046190354806526993680945576008517913641173078790436642548216260514316343159138812573272559879630314392396048506120541608270105241410701938029102557849844979596488373010022994729484005968279285014631977304262655969795079848775957142795198682128261891597197600960680023850563967048833719494753772845223710872406661181959232726647509097284811675795557484996324141639186823967054605543155960370649671072775876950831957057621410436158964323566218678486517485560052728664023965922366923221702914250376013563559074067321720576547284966856006662163272519332035305171318761624385221015674907356832375636158848348214715256254927794944046830857140739361269695576880002707234875325364655162663532302483026624531749263565615570651980143735938022431691982100106288914420637890286991942750339908777905220275500859906856455180405849013600669825621553297482394229366193111316635605774880174298942994886403174031063629670009919699372800106554345456110358358548158239903520006120529590955982681602286820426463595341455375561763243430224818996841638383141577896537301962217359133380030564629049759013433656021822289368961880464802034381363845354090273120306978234832561734987171116433036993773982015298518372400301014471513152988664747126363923326644891174693008435291700318196654257117572732814165851063146522372607120387734628476667888804422523190352519936587955148548514964061460366172254334441564479934370913191261181523723381616923016904150071632060093246199354420494429775667843662552021533124001425310637973743310293192488047423851705335864489069920695992531217195779555849578176007132823087394455409821621871622813537400041170130319946416257525977469645664275815506084301233458995185572015425988373198706654541155568418922401594120835745607246812099351549884322004238395838174692468708012879963074307640465322059094994383914956718581707334056968568726061130969093908529825146608220492257039220288933425789157931688458166772717201363040997615696101368894194274973625070753007760163554294253664350457772893178907849073382281444705914259836491553063464704419342240536265532568213413068763770601800591405446772064724997522534804163222830509462925587943698007882184132429247138197874173751505187601641451293038255803589745009551421420539123398532690402093040471709639040088247122075350634194341024653382040997192169578092945085373881955596685189207064254561579622319956093550231741434192474553665298759556277693133924356607263992115407083149720154226232757336256516546931022423447892356925373078635416166752168943434925765409293194808652356495093884318735518644155240497403232729609559168745461679166077108758058499357683830033140800294062469038348706797739663662041134761906232371691457262633687429042762110534815857577003795684077294320494833480061535293642389275861476853844435768755257655236969236816343417858965587654710938708691883697134316333835828064097933757520996896655401436963328751413974498756816563574084380748745907083798046847040517721347993879649900033154065793175615232272725584003069923398883403287430342612829533589213419506138541952375567620554385378546973702549539192066614005689579012772164512961055418495404809607396530698787625299058403292106522083014729211253446642719374178785211992354926960341330760198312030724297059600785041361560856897054409377141982283812346829645901232993903457528578352471771659242929594986251525547405513791768777990639356954412584260176693116916627202062927897140498000064205298434891218126500297093849117727739084485224302640941893216999830945420730385513327198979460449466362651635576565818747268952558401806304817000359466127135430771507365757954024579806136567972400087369047043840128689251815619690683664101109404704607608902246203840106369875640945453967073386209357451000317764887420070895273512225797492754596472183997848141011916363395077139601797346161634862414481607792583050255255494568851302179095571093059006740304275574915165249220944326500116100470843144293333853766809542336683660207175387788131446409732096682974975346954542812068836518718538578718398802230651503951692541167193146009620742558425578725744617620524844785234468634566051063421477468598936675426958308735477280862648015868986780690463087183451795648664024477403944961312033756884321132428752611331873218387689342464921794941631768876666684631918512869751589219336748942977934881341572125845720999614279634222725691362511375059092490613265066580722360148539572724072428620762897574473790895845724662118606315146254789032220220049686906257060419914976987306186677747687204339646742115087940026816650490218651730823024599683428968871742173227478307303097183426049724745348996274162005692993650643839616335295432075993183280774319681840062479783212307543063492775034256174298357011802292028857972156463735033634252590528091392272259469475678321699637413510107346937294248464797059321222400787532281517702409996465706591122062123511557013533735360787264950429105425652486740870467585255586020246429035276465039801821872596186293816198589576892174566009662241752641009953327415558389273474822988374867686706183944075515270952894091561813781935974436110699770455517836740103359609789803158584391368078427901959048559937165217441444795096882314560506562618763085992480610196031930978929466202417401380329131182277803975674085630928572672766962404518104665223956856320255173342589965800237169834322445987038945790298359391226032991036170725916660975663419807483740457822041703430205243282787115947714224142282810000222324796952765361025564709503034896366216146210112362717050561657695935953407168607486504149485994938094884130960084825437021882067160002741496373758406029099127112654661884276273614012852497316919578918203299985618688200753880203255250646566928985768598071127558674692143027683670177458480366469202673962680904072724646828234347752338316477114517705207795939242070988209135601699100727746896005786317959238549583758776125451516889677952673752257964010943195958227638143737212932655329130880789248696189467930718116714766939357031006734408454604313442863096824144331595611172050980041276896810541465779611046381486346920867254878476412667577438860822481790853286605384548289678088690343922678098375261576431927403248443703980315261778222945246989219858130731757623317230029996592735671646719128562247063165574591700292929061497138484599763827246947667374182139074127270599724524277633985183641163573698297886109447892975774508735754884071976545810276720234281406732160270410406285886428835071737800496035050997953811168356890304506606077222473568545430748399105698248863538090726175035384296080986215822120755248757175801067267631174010801670429116090399679506671081780771372052468320180906098613066452094514234648648474393531531674774979162500893604003067977272630283516505121377898351209275283327141650351336231913424580033045009815219605933060580098960725156222781090379241284889783162234331847334461443164153741545491145168642796437090713789880806045954914317318360834290827450848719994643105503500620939754667640798483196287085313846705923572266404195204221516509600331814540499683730842125536373569560445433546913131806325612165662074544018740975442389171775300758753864122715194145720708318752200093840780712832478320153301296140775243639945126391285320168537639235816115435746708667066937406098606545809185527484477743853623290610243197905818349407094976828518266644253490985470694085152331662468709611787617590739802595657565490136505047913629719060040023631516336776083748296371482857154991210017001660141349137611173133680048779034267683434734099489137317069792584697828350264470246425299318148257475314327423097799164813151217048434381901843026091319677433761944030928665119925288112247939068308411564385293849093786561647316036800471295279124484670508449940106359459035728176376890453952592181796191029971535426215801466811556464775634227722618877514410960630441696012759316870809935175315506459258373524661516336120376494565097095466701160939386033698191065162458633167894456592765449304046621117812056875871502783145708656418422483368183294388966188573769102355582306115787918971758084708856706744851038645959650285266308736241221210421776059092274716526680582949946488326134381214217367891279429664941910887291226126229646471471045453317241821564289890716800372267149305666666177049006207568539126237368892527053017661630012205459070804121213764908160081662915924843139595407662971811312446156831598089760126112741480557516360011025667843526191278548955249133241205927794044959998638095363677923857853111231212068510928299459729634027462010164519259223776669892977413976208026116111397440564546173848264189724836734931901034799378658815323366862880629563476981080851435021407204411356475210760101922232679517889335388629747493228284582738199321313205524953688359505888077011126715467644406931319665850447399181103172887257778502566380225608656027938959595678642546161812030259083227135144545556187832560617071065831718505468680573671225408688680372976166389072314661916160291272597142622053805486961051117766829524105128831987822643624274848061299697375758249635091532573343592720635775565524732731899054831934023635024535197601475730408007045733349086639044099599860791442244418427769658961360714974720484939830352869012268445226151756441213989332005585694733043273732596787070388992780165907536698944074314025623377261873515749682858304519228130634279547280235319302220817886855319505253358492239732820397347491498152568295483747429615611207538813688246290652990733071772053604746412329316835458299693229889448493781067014554923740640887974342291081432849868897879154560174343955671202292103160952414263404400517497105869091058854588982727123507023078693936923151494359252219606299957428202321406674855835856545958295246131408001781200408343501698070730340954872647103652848442700178831607061030240957270822033948892796650679433458334787343735095647020484167752513324749152339227092763294981846037658132610868015399324235082152082048232942684700030763577046582204489455125294435545984716700402025422724197890523089692167707705881089539621115220809576146198840125109406413841474375180644276022642873323613071605506113651901564713946884648198692992758686674231545403982069055219198895546933114554490873375707847140432690672174941481025300261518344006485902013256519661580028426796554719690010532901338913858430718053466402642469106939504158786233834412078061055351673535664236629459359994434581164660228211094514142572275115753510117948777344603317091177251082431146623811533346402397854697440777261807899168320467009423884963049275127364543504699120926679651603183980235405607577952812656423675744976978477901257774465640234525915527034470096690772774706561590802950238346555463291096740992030385824191039988804803679018411290381469618054941524717611162698761834864120680251590891384754071437688409121362775878789791670908633201783447089309312979902953553729485737815042881158408913210935653361218519317495616047314896551998478469140023167925995589532250968620767068109859823008610136951249480873029896301289726085613598656412409575773019731101241388930606938155082133904941406406886231193524578716968473783061118585647668040098970359691593743142921565440030375582187244950007548523854352068025107229161768588604008200726873994863333861785263301112310760035778740558910926516967305054920147095988995516850219180316957547944804079059033575547058569538933988739197186366875460993641581015568124392522030888453242828636403058290451218444363929582845428917205873586739147573502193450362661187413222731747057745656638378159019018432389667092819928339685534225565794374657101618706999164673527615526649300879467458573528715477630036912653643508543033882498350620728759860498236404363203495977441952625242318903657025037245675957791268402533452785963466292894725205008527049230054777283889632580151001193322859093995096761967329770423241088906240351193228034160465009837925258551643053900148449260554115453121081880213973628170655244763987552862329568487483497862771947323653880564625662665373977751220413271243483400655676255019114643252403368455187550965228731671779190458939447289498053588887608722825351958845134048350645554060237723272646782026100228152778053446114959808210154075411447702593336160051917462052226260244129883238227873685490873490326875475616761156781150739155031685366414819720387422536773306221877258721339184530974960934725409941087310141994528411218300770319255608372388153272669447601803498672026485582378497000671810122473432570026582989380639111063250700005269145468980679087749968292763675877265442312054680498161632337811479935138814777812185990691406910713283579303387625523100747758075843189027394307966170362603587548354473686626076784516065158040804040101851193677046351595564276200194160831911600150341777115131812966538241356123345079123353977262581931459982564220714219237476214388873361297937231808579268743449148979907906642848411747061048867783049894584707175692749089193812181795206023171496354843533767456578823000985745561582438068301164467370825262251084592066245064384410310935842264652773548492658649343130149788460928298689648712380579219194868167387664767866184694020064928588591073679854386937693264356475868376734436785939300446519407560321326928662414410549602068329212769527111839594887701072355685330463988200782286819627711038674422380108567709067837872900855175347214918559200961803310669212894509257852296372279575586562751481885620735222980941505126201104219442351142957173187341483321717234455034783556808950412491487749420629633689757923622152315776095261895676980790772652695687438797191244539223750460818968378811854931081403577607572678437205981558354966859566633868894357691241322676983697273814620732146436215591032436325562597363046916574473594386751218983201145562797079603284358434306536195179056556408269551479768858266120898645634148394932510488630873653265065831566751100022451932723522029181543064083555948188980664104791796117516458836840177743618095172476908332145050399318708490747682600009900484771486185238590571203829650961204128780419029319554465415563493085330404869535545279870744661889751905099492878139065444609516647742548578401353940009470487290918715199017939929051553777207660918744667629600436139257064416701666815940664473718489817209299075162607112870857381480486759320880947584068004113456810917948187642644177593366065744470331756946780979084948388220340356324629088881099619809417265731129656513535068313398586284583892476312922001614163701319748076454928982611415710399177047930825290118658778872304532089389321491302633961705958729504119393373051874447846887475719739904512493061921715691990922838035371515463337749095291479066166744566361799238414033156314376701031745521548577514793249077962041364798554609131123677900034876492280104534542932522000986588315286938024593560343916830764451519996760077202069275351620155431292533252659835855215913300387076083071926850116462469300583509320123616271889176471410138892903575839865696580433101574333428690034457318187502512174224831652527636630612826176203415376802361711673386006691142823235258405068916863744813838149809865169856821692452303534794347779959070502062887451950849558712823235429974467714400283979092977555352853168544548308185342611594768131000146661854687059874865005571828693650170113133353526913399759472261497095848869358698753256462996953716600478310234980411045513743166247484411094997976681520271088057148170850283230596562931179895193099269841589166692566287250944917763310102406134405032864975699517161712191888019893815153113838401878885518282533366251037511395334588730986735065294875207636116306604395582825998728566454354762798128283679729286961271097178724500028671346672864606071646078454133786211463282976906923279930943374495538522634459058417742815033542290356058941009270080844530699794256196417783204078766961975647385544272883716060455619238534635510825543900589775989950497913449515254729529682071434853244643976068913792165902981822790734962582701386414875868125465017693297892748223548953879574772814376387050452307559682160181753438517491545904379454595504996442642385510403694361991598162994739112457427822842710695885296745705457233868854607254090296186073158080411202721939549459098674276643466310504480968483686759268046479093936303479324662805163942635001832549676721770063668386034682359416531826440647802170687561492193722851666838588321992763880898046934223404765788106901043934451063350046920029690121723876637669144845309863773250294991212509673594939662617054507933846179925447544412746263065132803229615321142931659968539752441466782191748399002246838349944842115388560175059264384141660266212261641412074405732488249937462998247947135150703680165326411271459277660322306731434834731988715464769110689826822032143263751224067196793501642983107877246555274010786581795604589144356616590383621410511209709551353361882737142669283327452808960234273492235018718122479493366743708986045363699198529464273140414647013374775387696355741612757048308447192354858654780721400081892231110440146574519733688063017823710841002728553686057218434141095213687707685364508638538425595188184203281370052224722914662436433374819618334481944595225919763285805503021848845552393472967813727398189659775842472247412783300224464316590473930375137940458393728879264360478403239427681580764551907278915776752835918454254837334020680316103622494678343099021974095799591057888119024717846121796362141242027781726764573852460955944284773176224441579683295969792374842592902145388867383764040787917524281602929175444646117585410546474331599788276886765430568508340508310678412514062865612663772552489503882279194142724832007840192973855176631905581805661359369552548663522369518305230481881047379955566218626684232159753962274699998830824108314349364890374306238044310232549528581103446640265683056921013461234838785038343833356091584010838735025159790709187230934069428613347949008714085003685186437434072591072027081393811228237048167848221412760933473265029814110498519076285601807931082329196428207572019717432398311317475733946790614594711858198903349959056529919110885172008357546470491457969983187957895365331743572970266859604300617028200489929261277356294232040129283378591593921227963535406169788889334191891104764448532966096896146619992255454723039559284008861921242350742501345180191331428405573572395998354889991638205295650201795721983146705566801383082076250024289924151291256789002044514998099212787320207156486058788261774935416459908124315479986913615817102587698163055453580255899867164485790142687716197573136156805268622825744667544794432297325883284806939874053299140890146988395394630733020165557490210772535146666510278560405976579685761242156469363866618235679469872040289865517103943947089999054124964090889881393926914438615083260038014299886996844488008605199981168329910637224416258875705880269450831879858322120498992443233915242174480179428373586498158000362959909748286460660564008722471797777164191406572979208611250265201136094654221779181923824075473483489605474293926498062777090803268269923345208326221311813875882525616660983003021242736487944626414267936553918624492594052884852437133890912582421023860402403612253468443754308109913444458058741373921192994792507665411832456306123351470351947628494050343799939991181047733925286831430110733477410056711314476358397554384379157742583227367546040559307031186270234709128170298680308564150011375342096469244656161414814631674976956641278667526418032372114646359674707908710956364875717536680765590059403267496317515477173090615327266041102017297858875603122998512134272638961653788394780613423787736751885083513792357933225636756640514700003803414131584321633048323114078107028024048022172597623302416734657135318757527938574062476619102827003314960493325762209408609282358943352764549758590105094210698793535099359472905547937008015211589141044912412608054955782567712733560728985121788859984795000959996513970622622555286668110244514758397748926603136344955796082524311479710233066362942288963964581749067246064467438423670160924412508344062916224386938213259184820510137228198835231006007635558776068482224315731558717524875193679201078408895438730854668163260867569481259857793557330549867735212461878366198569052871546197070444842664080477847778097361961172656921714556656986364139168132926999055636243594372871307330259200351001133705761566486652581709424691703678488043087859190397611691103851899484288790092810366026572563333499299374906153580053547900159422871118644109659910877782022087606821977465427666228925076545521528605060793970515372109608400248776725419192040556937763646156512243068084018505541568266350727962656593244267686210504661100214407480679484797887476321418162542775324168685509433733521373038327487470341395121176065003035941599973702042035367461194800307666339741754527508310447666048740598451994581907194715508501698736323732953531053417795016551202399471599680742491397483589633471131934831787022297858263897153489397934128948378396281451065540653807550126763797087093733077223478972900567134168812248538723692107697290892292932123486629636041310470597821453815857534888707860716980871735597072384728042026643715002652148669266237390701404453699238976502786267810796476197271430597333675451719751716437185776963740148694896710562779512863850858750201803363276866623880604091387421529614051726486003751799075948407959852170775964217580673632621197890595098660739360180406950626067722536774895053930820134204114111218313436915241983019784443439350498079321740823397135818210687802919217118611667106529705518379960706201876280968656000086819236152177249035449212695851275435063728414729393167124899153634899684776291538181639925501873289568868933352036624894807420298764846810722994518760415366904904244465256906434776602302356028384744726099795068066852577944232797897400237625232355373690653445892014169769370788035004629005232627106538766417038746467843758506872941052193676875689522331647399994318709843761207108496028333315992506193109090472252197474420330309267650095629674492309523486436234781589019128675383243582526540972787387125805252770341571156215727966542289676590637177345982834827974516323940557359173725403116063555090722448008968784770501471633060459065815724060952837597498304292418217704480503303884969204079336943961076937795878034529108243505979044429472042663911076268185780086876156888610190981048569128928881598444722799519903937478418718478622368174315039560864779216563910519419215056504308290673000462389944816863744486033204293225391840653077365735268790938615728751577370024736015090871138067144856968834443249651978474383131592203754179093101591160819767869427808700282729321013852963345325701832559311717310067654535429595697587582509056178439095298443996331357650038754963308941876933410484812448534297269265845895684621806042297393745945415739527922200039447834795776280323084073027346506968074193722094845381689821449010209741273404975310438029192361782548779622616141628930047406999008174179361656707253124802205817165146887494757756588463135031897211471909491292499003423879857332903717299918536478473913717127454361493315239319404861913604654562903260928451138368019850354436808302203495639264169895843837990163885653464293120696703046440570356449755707873481275723096703492340109651117095202916664246617346423018599088963746847632087070482920829862598970753561191749326201882347158314855255961424359768397301508069107756687910066551413169099297983526021224725241560682303904253250094490129896670694429553165309121912030115383860831149554182821564938843057481345734768304539938995770128253939971142391951126431807108524072302931490904594549038210661550540620696783219863651654981602175898621908919129081960977188628042001990644458155398664348700707860575351597685505210128994660728337553808638395226618874627952801654276211985548056456996002694565879235912017220122835050522942513854682185800367248152486758394156954010922790736374153490566144489296390636710944290629753655041060043369589628045272638648065172058840653942936495387940758848842185091095137690383855772894337076195638343326990566630277774082515031596269256544567090466294670164254468314282418101951654157310177291138623986154751074756623737299321157258485993924233811687714992054774741076670701582627966137426190552940509249778414024029861804132268527093561026141396249023531421000819156169367506238779198567829179630382932663199525288816358512200943938967193252133740473744957070174497299606819042799508983052652202487008432211482930320938906265708439502828570393189818023975543536084219040364631836278030698224760291038598247862483972490052116367669020923731339764116117046865260223504045016555005187058260148066634787643865475705189859428958151201568708156659860069041406501642446318088747076679842069223632856173229701984663191139676550208817480172894527090794006152186003563008309236402371818329594512192096869869596916991107563065286489815574025333389047030696173279974596391340741699695189284333710579743049068950544014405800699786518121430321813032328656550622982573688917667318461964318745333864332998336035231430881066739921970339013308933824797972849773454492383723906121928036180649097915440086269998393549284234013222457923108679076389097388950570860409187194672850553529049644048215537619554100982862408580391178181872793544344367091905172575812380453446544707260405538598900150647444214353876212639339128473196510213651079933614939546958937170018434955533822235268699311981492009676494923862542926586588801213299369677259710195034607258596211366659111940606194648648229915137533313794652211484279224794156438547951782135823109756509341320447735253756398018597431136376341600909868772493344410200477648794043937091397175371726693870062135309510278519723219802303745272350893005041517933327577492056352634084005644086227848245776005895977321398565683673569508643308052680217728177877501788028911671412028862650809513683157685539246024101288079185816701288710646707603095185083526979198642209468465692351929055693140518201309428327721618038100048582578160423988170816464707277319052941417294011545620675512994853282741053482846840456849342485972363626316898917356088426783964641972336644987455707442090150760400425417094789527350426312033253047819509458880145336936701381528186859127429696274751801346384431614573519580286005918535409509856328596055664080333004404896456181853157009443570123725280254931860397422506846197127982622800553473701935122574200811916126934507472404284853628646198420318214075531089149908222026572261079007192375631992186488168017722448247642575594228793388619363048342222571473059012056262947565246276461049217309074670162071451024513814338768880218243655827551886771675601849755630762002281847249381694475590386076713148888211265857244393503913909839185140409934540274423274880909493796116509332651350573149236096989422282383719245934961528882206240476200377621963990204016711551043384856843603570537872885758922545524941008278738079633470365903722314717568558425782888725463775369946327065699691813602640502577002041251380915930651136135414617861929312949899225209442010768554751802930166538226155777583595917173475890479791548644968750176646007155543249029457577683230739351780951695540809900673770342486394825785353601076515053694657511301661602093629224058647546209319573443104816379129650730040969710431932823147615653257640191461021774167923377488286019202954478621782565302682732442373840933623300247606191570621517285296092707037378375449430552943550798170075854517121174835142565344905747829805729364776312625046415867818720999072305826764082746417026490221998376357320576232838621696058217905569219970436223589796178058428294390179418307586180022012108069320980980860755649371388750685901081612763826747154473592702496191711171982645159342355958219978977130259183063449472616306663353490378820826767297150974384218529089451321054378387453683857028873811255066621532583816607360684585525916356437206561900302567973432998213167943144039501049744946215416611224118125808216824583177087818809970843303908103562021403255711579013227632559064530515858005592188312307951879848792947783670942465737095239264241638610856613586998408409441728756029907792442695084436798380212819801319394936357292692320873846106124274587352420364541371471317609861604267714402977749106130487878343428408689886355392471130510073240500090677330507844357426224931545461089027131422186278406020543670050829022307572467933208076058296904982805761488490259976807192362924351115144577585976939247593487569498221859078224357019603207640377334583464996610321837247500004481256266601491614616647542207039962797404886393047407947010469334658443143747837415914926162893116082580615066062581752154846397825484759528475723620393817369356587020054948789512091993302504682868586446797301407018678258686918872440423842556586782760830985704360336611730490875646088180518134074784767236731619142532601692859806666406790975999363649554624084009174776595188271788154832860825108802872182373197022921560943139751865952795399830891184518866259347449415660148844832622785981498527302528663962361680652367278384689660692044286246336275883760829520065211784851164641555830361314573815104282039982485922601561880291533096266225364483553738359834266999846182998778479146027339919952209660219119560460967977474018188502154821524723625801241926829107421785511707881793793990253439862701081022919471218579470022552568570770053810031589416633993580839489305340799228840492026596497433781937451267333767440719889676707777008938809298182728213744678464958829456663073999010313154108526963069433115752664977175518158317944879687967887256697584036048842371744951302417091647329229565642564757645530664977220292606416419646251960683112006529234341030283668913237138974274508153893029371075243744357695341035228509992904059812939665378469750911512378614951284406418505227566562573063338426921482902805971766187600680869953039626274270586416870948750325328850875252262677903693152101951968789738542005110235002134657860334408718038157053561607323195239032134400373056600827736207181855778715660071757206882436247492484516104605749566309888223156077724649924791131099398884519452627397470821220891206877149726488288218687238206070832779832617012254659837859198580133569901570456845608630731106935794880647033885937047459605167693787733588935318485287513101859646844250279814541188652441019491338829591115252801037925377118099755746897370457207275575434264072699274760730113067805397339917592049804786962095568767991945204419822815893931871020886651317121001022567709967499893405573859862802062250640159961764929616633972777156960924750762636195411822960236379943396065274196516404820874191941168490355728228477348492075962752661365531942958294744775263744636440305469159266899762131844800447118747374687894189946347115556259337667321860297216602472801295266769399836148500495998806919226085538105830138904803961669251943447633285101481530539737222247738074311994073295780278702239433615668252228695556212275789726793954714848201861824579223836545230166066256142520931748924787007911002139625670696370288321331732530772050258769403489801638926869365947954898569871434941054701350346687957605309741783574186995495506830667776137514501389300907558625799959021285257056156200694237311633532267438727737008895150480140697951322695000350106370543942906189162063845552193189855879547923717913147809815082323633002628106037917311226240101149289490359154406222433362597216796153956898259960909718782259569389145910363080099640678008941888912953988575461187279263267127965907161592364777216943144892415272519545883310628561888787493845388219986240919993705699847606136572984943773230793941922049151853907107221833889386484400457157363137141404136515982929082243444946096684875369421846262336336933365312127466393909352214785620623281084717344775986264449817442302589273705532543736184674499590773918819456819033289545892856191608034351786445024787467344813864577005284803597730904772466355785922193069802175413958407245317580008251089637858004662362107272840939821598219104450306445540365303534740491019767364545731907767925402389947268850401135768769231553202229107950497144676139459235765247452755675258401006150355064567303608460608476780943129591357640521438950319081941685227840067976757391258764442885188122688433855085550737480615438911596265049477379180470276787089596406267651866914949016169750959244306271754889510642574417898561119264125603343694620136231538904908601013905367870564343546710327194444696282858202138928730403340410209535706375017157285675309972532624556603701212850684024112629908812169015542395422450851878403987881985032168258243350130615905468053379825661786939789264207560802162995136601553579760448010339919796041205139899825204677104257100520644424002686674222085026480578763670999288727510555220196234317617482659159843461850704824594216621335953593910928985995124719226334057055597600060710355072437042958387907965554067023996227701911219468460673723394640175487476808324956654544575541791153799305022980149287680004076905891716614832760963744915193192549184581943642185066257303238306780840526862930412329993562220415563115582460832317304441890582286304546085335680298804435188884097283809481562285001266143608317341394424282800209200039688127188752916282174417170995245692547869467684758553972314155938324137799970466199658678629938836685733195203482759677731685355312228092716150293267623242287951076931972690043428601907678038022400110954908996100957019200586022962258556562076716464054390034777767787981949128268018915895558567527818379562183836307465038881179792998553594632163244049470484762342289479035365391632094071505840503094938532794874389136947919373583256898262962689656879699655479435297376118565481987458351274393815117353205771877075684184639582218064414271926139735823563609848543480455412579543350687264564101325412844109326049173859081288143584723049229270496713166845974372314565481741195381877170751898747325480161895038828716054704424145216361033861553765049029969137080211629415536815906330778137465706133269861443338821695370067843114400856638494558962244148458035053925011672952215183611712277928300038345787909799285859798814998769102935085212824703740458227757768161948182634506852576675690920169103381592246370493686844617991920296909346573816618246864455763011293684561229945741673221122301026515986200905397093797827513322313702981766807779172739685732548841942275421487630573240676334475313889237012104642355284075255891430621366234659109457469194442959134262583062002309690346807792809865160353145748552701067664840062637889045529321068388336532257346357320170918107593083991317031974002488926922021319323395803234249477921417154832539044098468284350418244617293270324190144590123921273834881999107563521058221247211915919538983882575061879270254029624117489524419795187090555671271366755451064947111362822148434517169909079237004181230785463901427626457687872201296576995469182887406847784654668218224966898072615923638815748795385518814181636495991818622737130067150155543149479792815496065575484157768250410892384878404491679937070793973467689477084161584670403909728206632838368556094908263426396019423986926172476622878986823224160552949431260611014832653530082181848199097474734077302786173517966737124991725259960400035863801036300489010845849492904167495612330353747982290768003119186045124652555490728753061546614038501381343171897797050407790090052992983999094120345531366274053533177255437071488818078523858008563979907049482328195137516838542518841743401906238657259319498724321695210889587457773143053650416001597162901737148949160221450743112977477842739921194387681165377357061777079567995141127514884558114140864037170063800489432366551674381210867803714420512250347164957684963171023435241449368467904661331844742360572724145745761866409214487875168364068349079444839563912160860004818962303360736995480406637114531068507820392534111811013869445352417919853627904102470869396770649414976161111705844287867187551239315418241969931101880982257766816404442666633456367988622390729771135350393221829686571087392058727660877454995771620586949439791759533261804999033010518515010969676663845796383861541754030869376997394153654358694397041029954761469513794837457931934682987698259508052172335689282450769929477927710785981441234842137048445913718690253705271252472146057259059040837817449381754118531036468419100493476997343517376639365091281744337619286181675161421418736582176040264169973435200774905730216700433908275451533410252729056144925470258938969326113895864076365335828818715656635024450703512714351233276173571080195836610348658371089703352286893670277152310312907071991280674868045236367472222276228596532790815845701923447611702648815534909770839612025342234322761470796879300518540036591639102169588654246064863700318132939040626163130391144197246300690432629997873092657024812517556134300942806488438639901868707312033238186261864410688429692349513532398550078388847857653608925851572827708932675026484915026061372053477038928654184942717323196907777088040661043958921074632741317715387142975672885687526541656998001299716176820123652611506247719049113847744184659014994060457117129815769279255248811944244619523704632942278494213695088714617488678581256303619882238695820631749101521815234098703899093173303998619627984488645170055596728824432066507110403619040212817931531378284853003534961350974178499924036088681697246696878761036118503002734134821501201108143153942343033092273643029556134497509045045835953400640945438828244992584010981210892877956357548752840432105786125698468661705992665424479259051085377545809444485150124911257172826996951104213802386735077595951496714922226207307559218515854389283625835109186153572936458232188731177786917153897223736504064471720002911744321409340284881006901577395845583353146177466720977447767785013590748569921659631980039064760374835145595511039849827034530000939316864934060477498477895266801729940065139404101869770505957039994128276587627950444176649966580166371172541086730257785564921678099225840545327258765006309101220809414153340156198353419604710630457778355722802180370126261044498396351595306899997387886335734477454446057704481116221235231433490218580790444482596668541622251152520573070523820838415501250831567836847574613218178482752062846670998511020436213726789229366915937182891195349784504137965621158456077671619077762345871339392888017763897685264505798912500066200023634171679672430919237379317238846065695636562272662767994227772928145580837133042794262020482039142743591152114424759836707339867391603403724258738071493932124571324810516544023397557390808462847430307417235524776351852383173163316704195736187448174050139355207688827777831774120357876016938022823731786674038206167503441696050746532943957276151295971685710278382636557681239090003577519383541600452189196781039333066703824177407362518666254913072740249047220757970668953461368465981087025491114616830696620875411648104795300427689689381284376754532943065256058287699335888199356269974974116732081790228932320720769336922147055356704593676077652592972037983364543189854736383335234096396815366086552305928521896092937383522898678756826150950331003375187899713373988076008006915370132351274883954545163981583333318123669183478007071403607946829420031070012326007195875934650037601488556217053248080808198052719021494833116620028891068419368376870910172418228041786307088565232569469087352570680714210445056526195354339333731952911397439775320453383014202559991219443966361456596310292297775102779882566158349374878866027653810479439598079152177202860620431486258238231883447881178467576514350712386935204161882227991551365683472644442519492855934848355916603611368997504969561308499605434213297742625518510595464769276787822131606002470607801961502138727885853974712463666278460091261103414444878280444489353175503946947626792697006990045603065406780830024284659276357478592791514257020283772867404027214300553285500032616492682131163580823095286599212575804523790092276088960318412904239646099741564255751931048143678994083934304306161486690284734095341136409419708036819617825166641050558148361726012540764487070452807772643856151342208077781972689095356929011660917224384102344203430449601687853832218726040004620835800611369805798148100722696710089885944248303191176012555210838198411761064497580083060779630037811619684942780000486303066926925454193721481226454696892842649334538541229208902916729638621922434279679815734142368226874944326428477049460702836489875041056232573373005158251152129693236793313527797071786041298436308035328520372452439653706448997768730410771088988310474151050408577420248758478520253393438836719030521478197114297477318241712007179250568135856439640999678205916635388105606247709778406013198506738062492790511790133845957983285375020241975636437764120060397178196887513320213549057313494743231645817010095113377263780320760445768361929818480149091086280761985052658669018473442461395319302850530678328586016851273586263215424637279857721731649801717781841581261727352844629273653211896219208788759562118920170706156620955835148277263312119685303486980592343036087165737204907816752160938257975069123503845309856409355986076996211461747295868134838761702105041736744552977711130891974490351707526964443124634983524608074633033562501088189069051191826071216626530817174423017728420349133496291673867526431505863088058617345597175250334360800669155729758760990251190793023118379127941930325579868877112675415718110756385352047584190662464342420366317348058495003827642730219172969559552471690793227977942402144701826915071603656516326421863533415971711812132129882313405669784445262954488195844760736384661396986743343379471259532511315216717145007485310390809106906338137148072672327852269927175833478919133569448011834793122529604095398882828388219941333935316639234397439281325825148437688009494800361680606120078242555055920882611237537880386031053354916499128115090982398921917388818922991026786992770289131987486795949209864047827876019950431110113973048659121176629143453011237396232573383270231267196989833229012048493604689072520211703470638649792340652354051264295479047304635311160690739561959566406018188090750051476792903380668967956956950993500650170615332060035393410843320958779251587070667632039224339512709987455686279841689597523642183187301581166604094630425085308250406444620872911223019831119143121461437210461264343182503050815230839026323070984993619921654166044291713418834751221488566883802766938994803390885519578812985634479363871198119969366153876351965870793985593524330794711703565959865751612557242849726586740021250361548691144393073438850491094486597039884688593360322786303189098735798196348614549761312139125272238924609854716095360141140006466068246133729332840432882364778012398687095169107533793320284132917385439610526070255354301170844239680558064004886126458176472116158342696588042674495780073913881858149748682223312016494290025157796527972053463184154569675915718635815717094658452472326094355296702647708355645866366121308158029937420070408822906994041065766759186706696751792537786692516390512678589131638286242496778303188229524330289265158311465255936879240486926473105951443297362395272645330023017064254476538742888511616743554606579869427600435424137462404614197917673514926707306336834381825186016603991056723822912873942614147009551945661675570229925706224111648771002683222865457716509911852227973392727757413792691630768924131655765684847156695942596049544112127213590692318364044568405826892372668233847321173681903891116043827458436643482270451957371797099571379062353917936893137356068520578874710864475625702416767765922309729774211692334222861435187342728433996243648226924304079106332890042427515225407494114124160832350742271754195294580899538574083039383143030954719379411325358880895102928610503870988873959640571306177474911908074068468744509355750493879060886065483668632675236675693570805176771652685291756118291073890583031697108643066771228162175705118563295910093213340063590419953082804920836144088065861921690331343966726629110357468523043248695192503851731811474926490938636688262352665476647993814068483533679257165982694033565959104350454565601270354917930694980504498112827953168272622753762650581421231347344941454254036730673097102893361476349894688415437245855345871696575863102218591745243986838870389776483921063401522495916771235874321949801972189757461387070924191992042804347024258036449340325316178504867828851295553705685345700559411636223083915418499829023500770018693745297283263014890264281427454585355637703194879873454047573488066101006141916245705800908646079067784066978304852825888792100285297494986157968159025991268311168472257011008052907356930259974938051611446905150337359607349442806563460737822077775510699709372641089767329499261711292395288506295643538453592215803495327097311886061157158607087492058294262869673652266071057961823822954843797192336409382977946105416777668842904687056024083420344180104046835749973350070847319989252870507559293022458402750967062936273192629135288037829867502241765068111024080907746327603971619009248329334055152524526123534518804963799846678513146096075884363456498876898761373643856341329020752672965749763615719455779432563293034403611621440341328982488708151399790989665356601221770540760742245432676749010766785023929806860977363722943679561886198514971557544860257975597067418614171757658588689982286555787918636336197107871502185542542688552734554781499181270016160508201732871422276679125908650386470250758425455146328545496121277016474196103134074413292442595095220871664728597044425523032158015595935806041815592406110259067170768899773154906766129310269023937972239984528166865991030041753906572021366776621155429627292171622907467880649473665173052446819807524909979243038229187979435583177629902294369104232845632929278523534588732324129865114775063886581260394745512726096021609126707533438056484298792028125745463231460537676759450154932157863467480566823438572472281577823146831492447706011172341082828800316285602282151874746664588766978584059154087563853381617546997506255401170178313987727586271898155201428258970969951549033386640957732389478526506072086342038896040419556755666026043905299940510745126479182364842952871879298158353236574008182434312960377660638787800604796669754862902323017476306317484341358503707619269045158751986739313643743425127804372947046155174519047482089537924954295208737715210137859759824406114916840916746759768040294022862102568068475414139231204961491849733523623732808531447973805264211387785081362902005151391917836394212688233332573962902362129988221553388991001649932358270260675950562230413620780868284414364108640347467292527632016535070010760092650902182022821986127452977570306732870159127270409311351525290052001590603233169516204888387306691299642178794048514121646375741337450464405956812717561498110141499416027681073318802249654449593354272969637599687143999755391773520911892045810277091593436046351474431800673008390774341490581001174832458788339522860485533139898411774284627909709008736073570396879028958958290711046477745876920033010142288625714628873028389184983017142857984689778395515599492475549590278041010387664439737672877886433520870078999761754589181139894801093520545778828420995936347596225129427554538049797487718702631898197225330024669945408772196781262302224610675113371169560922615059854223561455555783783499958151047572999304231169572110753595111295590215407691875202211099586341290285995611440226778768660510771928174130621489223545097823300278728039003948854501596270230107446968140381292677567073248725479402300681990902347646794988253610051697352497091721033517408766826393630319427686532510611117844368183765199487020769550890645173241601297188558988359137895588649675926278848745490422730220754630345792910317044169435981821696759683412992849616345875726208235218679641931930100859578372983699802813133482115417594787962594725692004131713885415908165764101227030693575889098809950797747458067240313707527207240448914894995501714679911437212519287355020253994399217856703804134751751099030467843562639837031675804526348990406856223013397398604071596181437097473094171255770140061396229836796198097008955541400356764751663090178160701498298906765680856981970070902546713914600931652792577853674560036542862563933339521111355528224048034434794015321792625044729189360517512138333129487229920792324447360237524383602888190806523958793754059016836228680356514122951317990467612512751048253103750434559391056587705909806039873541553608023360212399847394605813151535091697637950730949160439859629095108214350221895002858217298398347569763132269375470137311697875840786514879418378366305844950563126613819396703901071058530296435830379766615906799388233769602390093540877812599897965326011994519780888009879916249003341179287009049764135620770239239572484273471229167559910221800087751998008342732878872849458343706861254962289402569890265963055996072551698622348650476839381551392518736569838536881774236896387778682941941634112739363721329515857197731406494373988539743094523169801894180555641868524410830858629004846861097357431916752949400973573443504775124755113776736911572442613475131534101859977007291473851646117263310471437363497730568179593816570205565728391502589905281762193226294147279729189593224832308706452763989832230208663965011484830783366759080996419177193475101699928887782394658212896214018827826963499587118082542952544448394131864384172369734540820817668659097725796728309428340829582081476486328813254638587942472610258320857448467169234154669501289774811122328177975689749680281047831251314800620178035219038336051295814171633106538844686544655198706983395155623029726138150124817551931853632726560383527013422709348962181401290857474882910673565021868019037967815422259943357281472854041006949715583484487553720595927831599736245634892527764950654978174576493911635547285072419536495485429621330316623833997823745558152717839123725540679352452277693737186358487853194931058973591322685122715828820036793943981893719104387740082319293188249296656111596578261371469034222026342946383231594608154706197453309810670349685320549055184630734650275966664679836427506447741353064361879598287567226335044970198955892959139538613363176166008625472824987377359889506013861884234516904665988303590756783279236019355791276887427638993083010179779877849451514262929841533383941266734093177080523599123850313855465914466879792643606591473788789065782934825307709614159410796679476393765975810069166385397212824369670911659321509584465510317709841404669712192587872153837004996381653585117201999213188724256539791126282547123861198721863467655643578833615298621920730281580777417403454056445875213633337983907747888933342758017031540891080535929223592017926807297303379233200740082854988752588708213249108435719282985293297166475976204850535302042923914962677236201910496809629687275534595279434405348997998963150674121284014511621784275030790640117942849262890702664211443393638148781290577639864485994938561127279591464786209606057709926015415182531006347808042411906337355685899966272817893093951823453101103985033173622380497612956018016146481999713888049915229496963227437894611206789598720507438188934722223378949245122539219443593386126150715357974259480435223660735083335903096855915450178838206350704131264552188945476081671964398945853080505408607327682385181880885202296824918391396600347505673035672533173613018151473302430893975314089017359567608731431394526863836007009759434928551254006548979985593125748895782078834032924494952668712016395168624078856654295957291821567711757517456248116547144960606526789849666703581408629026203206808923668391299981634132995874561890402166250245514900438895892144090957555678791374358346767865944696317957661742371119327078563431855699464045333532175677371621088949759899979382212429921973738159314927022040776427298137072365620845181501060477655907254720089025243887496991651069541390277168447683809298185144101714125363298810175673038870084862518955579799719510253739520750048462193114950917537007526078360987471234235271750932470090253587764072753181586019745122208164822670055372855702210363832702839763340718650414342592774423713391464822111784815296387635693744352856216333745834399529585106731481400551784951614168613931045473131850119971051058477356334752585298681150167626477984581089210117867668421901962874764788794717301486490309583797342030649145158998292888931815466541759345289283467090031976629055591664212868407024429635823646938839762356219735632167023077379523625338309022084040016798494778441541008569583099088423988508149826058184073653769300451381875527678848416718781485646943435758078057853801549396558265620145036078406569624849567775798996984943535427704813947818174861711938085083885099897297262921803863251202056181456965284767882434985395660616848983040436688033333516508556616767983066950339608441893175078366474301092109382414980396350420851727424297108530459373857138887483231714342367476257168395910098592150297301688348904898172984475704449194330446473686964216516674412644913005068928926146592134908002960039790952961888468017931976626410660351868608142226192921651945314608664606438182768864535364111423877942135639853609451402404835751346405165733727881612675369594253479025123840048646652383429708758468418484729523580620388175937186768224284649459589626869006834747301584970140739654605389774613347120294582196992127553789170759508250166744815154383870153375051561611191572798746865982096221278561989323792805519609038358876268038572751291311731513899762444867338623490432970548776549469641191067984601293008325344692211616219970044429897391839554095171889926209474643640668465369958235872941202116917217291718390625590882661372106464023627185641728212133434312720842974730234880014651257737375597130450947958238622230067274793386173286860758936049347006717289451677446585585105094094780459368944170524349479960559646629595411309273816869620593306328929728210130190179336803744237534220961211007886611495457917320112283896355730424939146222232853727051836943743889113254702747687616893882739436537411991244804544851191570144735903829568867052268226719855381249534384250596026724732364200843244499957007790087952476688022991694408403758728278573558935925495134000858284617050969482048809902660338967412956982289306158891056308313068409233082393747576262367918207666973031290903865748075100631850898163092197638751485370198470925441747257909710991668373693393049369171772678891296545610625066185126991803131866704278331070526070916536101066275164392253403047742310916248959180225485049674348690287587456486485834091442966875916535975413061539464103606551998267905246706861882944732139011393497826070432454504505748021355140480270441897250198412533787522546929769557803231826134027697354653359512815316552460327170932360252748627363837407620071091317375754780040276109493501905839256504726870530033021349870472200747694164045742922569514574698987472221897899676260350023643976602405956835190401433110600329412807414582275765833032631947907267455981367812772797242559225357866570331514920046355290681109769058707106003743849138519476876164245579990447435755212026520665690315090233560482193223100207301024084797551613560962948800603010195791348581012461741807528855831325827962284223614087390941679741602385520255396360767468724111313757817833196682007063476760099602141613590899518237765575207516722578073645733426873550619479945103496826592738770508635045609408532303892276732223711548370039732343054169639586849222404819718778727828438976398394831547502565493797369968334356891148732575461022027057334926246095637613356289221441189429849698723769376656531655422414526488254321653731077392486877370031871908717073368441204489874083261335355602269714975677085885871610070111704980970963006776081388917817345503990364498276916120658960773814257671796736204472152130200759788934396489235041295242261914522373715529965997034572177592867544897800707813527219630201338569222938916536005106764476082200728363569213462130260971856156053935183060576862618500801388922053012048819959000344918452791869228949001996714566260942780813132956928682727434911534284665058461899325174106637501574499602330729686556625635104830238731726798874112661548193377402501061766520989678915604904733460704191432923664495957649075311867680455127792297343462672987894836712871179233807921778266325866917782728892114618494844094432440211074675809642192468496810468941334697218201543546994808505081946544614364857277557302130479494806136623819829114872734153692319184445568558164721569442193586554203268394051172853180079948105445937193843739184036925444447648927738872883762042497875009600687677122683122972005150281637089347779655351056228736635807191602009219705237566142366903340862885822758325183771348206532250405029686084679553263775840602454405370606660952971035452381793532041096303723742325759262658302139840724937057119144857456126333558934806828803156134811629143508928600873947159403807638440254687805384369826729942828316347944240749378789332921605632668071185063664648633601750797813003930823710284176257575706021330400497413715531511830032141921586067260453018322224964453564861954628085677369281674399385083446652873893242942603555004963534652859862355945172520185758974564015584509289691784247626111943869935274494813018042038656002314913184187585899547372994135698253430302911741632957449359090499992027692889567842010007952920796668572252260001523735282344851348153274944798672198790323824493063421053402345607977180348293560675916573310355407230466298880503402411770767190214549746454255088206753778973817294635617477778566348092356135888096164502488151655232380072440558138541962749578147407407840352408319632425469709259081835173730977531039867581427722194741321925532410832071409120200741707750127531732640377013250414622782336407906086563987292394412333806074129899756211292576049345152748231701445174772119266978011009383706474596538831062277459738224381406443899537349494747226672483745784199863240032249626988370572482104237817569428677984157340730842508414168787019833015217575617118919583032239842692268595941401201879940696387270189488070682962602812618880436495287361805023739927408781683638116347501446944145906767904967692598455449501053976932505054272615431444240988099263172563046238911312403642071844149460442311239709993345192859911877229277485664381178207192361820639641560897566810761688102805457868219782884077853701139163114178959347927297491960474998872884101197481210871217327923193225302935249826061883778357254436178260876538055581504141752541453470052213147275579341709634909447795023180301117211427618902906043980089627318778720704223395495658705384877332678632079221481699564062375729035990576595253041600736410789262087533224474353594598470292812947159963398135994214735286361248317192818179030609119253227629201563513074372334659381487360684106004523555460107244747425628799918415564997781070697660848451242966368738080988773356052942546582421956483738123986233865094920148807991240543743437069297872620010514227163902588662980015622283477383344244877364996798092832286068524820253789435738318764771322707943344294606657757562986027030001744329899641320818126029497479889567768399841163305746205224907451420191400148895553838713662659409671781287718863866331756719981537298280637654915292599431853033399867607434546592427494482125120915791633547841777805834322531209562126284584989971955770645262029490035557031669453182342212797825377946204431588215365366475175110684985747972717914424022256252728785428512453087853954867217016926959794362745497813880761035693159421866149699233958014205814705413844002944908158145599675304044306403478733482358364559898181785791571118410011088829127695638630746384640709437477294598938787722541740127309163122953749138854115852651920103134420221032694336808936878538932241345680075320117734704925293823376117586978408911786255103571076185623762974785884820918810722463415687349696284083023148528902258392404496348055541638347701660862344869112435425271281817648460307671092388691454936116250197395241437440964181767587706127620811046610223841421206568889732132677538710577474601446869290786503217408724195962836406759813297900614567242583446091325578173729331380385438031622417353046684504400948811516593855623681250817032900249606585761651889557559077268818133877042014717846766038657022553750795154790186993130998950517067982249434176712528257570229112175752992209384007524972362913564129921127215568524021731605397449028877714761796228806371678402057041192648784471464189548642603315140334122433047799391460789187066365640484813766111779997290308370342655389534712181810991338048045644984310338764556746450440462964801895514465411087905975288925344395427994768507764523855395770750152998689382259171839829791143092132447929094352212775556280867517763458242729018516122232548087226917219372091750193721317581724730932740267223773571206954889035274007950769346851529425130081239133330242239427184316099708237542085962984497697697301793193025335531375787443083131156810198973129298034031355526176947511589609362985664127657921166283555513121516394507684981157177195506643689182351681062012184065258828955042702337437810430691795533342437741768376991073751275577454012578286093298772501322190817413927001856962174011643116278276273288746570704589155007979573224973053929460717199139399939089678715880341369173514748119495761109018898813179151339942696624579040456687460972821740363495655605299161327837628536748797808120045728506832861833410709109031620524316270288106407109492636049390555270576136701795837034136309539327144269701691108005921112458112468965444032381154631331337730361699600466070593816768068264294671092416926268581617013735571170417205252637767704231296600542052745335791615693615610894283091125414689273015170200717853172363339418872131156552518485880267251811856037153450889084575698839631111285641689921098150646034516043331579861509845627954511918369797507892153864571066761054961613385104031277288892963371538053715482106823614644232181148274714822141585901243082122738829543401565794824794245939040322865735103579193080465744881303427064349477148169799530983754884066634656988287499446453674633565356788471715356929362603587083168542261156947644723906641368393931353352815520930676107334124215247447963561736587227651136039556209423035572287371089317062169614673099085092932281906187325446614093241261486205879856869338586829439457724571298233931259062590290123702950873521204919878068987141836260797796070568492654731014297308475261820848217531687762577592505642789816777091145998705607823297201139151453452324581459134605644489629612284703079883488816790126309526340206914362043330844903092772587804476515017970684395477674478680281329468152885850965874318266657604744217673335561739662611248573016527119195780684299404560756492341721415180963376166522225727113272025099333651348426900840056407285098092044202404612967014008648913173714810266689130167962517523346609456320445076693028229184229368816693761415486492981499466463306627449028776496231991292315525507428899199215132070398769775441307612784797541034615175242879343786208244716468652231900057003269309206740236374221732483383034692653733831802959477166593710635213904407018250591474969943427278748811221424324557872625963118402961916852079622097205711074048685860005389150880459957833062217345783086551370289345239027748300110157520731769694076384134845791853306862340843130788280194679728420885884823854363521408632235369047803172702136351059720900855718585523495589686631341591770468192160652431182651134706864484868532293394400481475945655409659750754670899619059022691981591252376849490693204111082839850837078188692516753535760977113980134501999949855044109579053872919211230031104771536134384989022270408548121713674861741111572483830204247057006454091483008601362014634300049309351025173197213777241669018355444518205597564854355757326736847140916802500661034746922014029443569988033109198529142707206904020314273966405150113476249743790227544880127095638008470373658303456578187705125422478724606570240855290047008606406494952721651697203930558405256602739612234077809958646966029420483168355299569745535960843495221580970989019080035369202267260862245738357063455367156527822001339401130459799810935012489350278030099883536046910828384789036495835523397189802973082561870201681597245932778059414064184555137069018218500091652126774156513435246144409131523423100202220673256703653716591869342980905118256935707052615978565827258783112880651843434687043557761074337189961046733500228832203787156077377090724151185517748257542144849956896527830816927090614106732127189074412294443378176905527587507224609733356431029106785829540381303469950759653341794426199831738259951302526565788457233021297347458013087566613003897700519961400320136257379918782545012213662549965384625104615581439905371411821552067425196506034329784655184398201931927295632921593163109225140336569711015478159255029867302362359617501735844439149144318452622927603018669976501375429086336325293072933869084664975804746259027354504553421004585580640312952152064302526123896883823800468910323731787225982724508344394207843458087650101507540195335141070199780997772742921467159465467267695798881450880297785610276076643241177469627861172974371323199223123107190309298339531246005302956571416619204136067260951715887537599475576793808783831580255312888811087992014479170338058809076128493323986644458989908062065069603207069173243173297270403573042454489945271451661658835591228882993827717975408186784226058886228926873254646780202068627966480084069110030913885549015994454354188820542423360988132725514213531047993341438250709431129804420865201975616179651831799345011406812796582561517900836398245064493403823800427115601825177473870925665603104157064130558536740175957498035969515175339581961608776274781085549865767133725484687192880217912268472042735702810785318550985506095782409286502912069172675742959172708138761966531585566233497994578371416014160339345740789389865383586170398912858895483800523707694857481788734179770115927937955596347779893145522763206672584037282919058171527426655752111086366435302549797912550362556605473064984890836047853631090254743020908880374437297136564894712942907830394035869486684983380140014571366345541744500599868956892088807146120790495019265794800311332506135675492351590151759461656004903866004610730839846168273466899136317700176052207811676489340688828981261885734713444437898654876109403680747909828144472570274798571022487786159178649658499853840211279483240267348890431487304803811488851646271562586264083862209345798528546198908771038480810183077151518253905019219294569002238650630339611488190053965916944766557400282809139534339047581412343402075241640094774556348238111904849953336780976546736875272797354116198448213435675620565358167208938756361039616345106793473801566777077202983474010392628193236802118119720509624121658683551426404916062148943064042383433325459725560520100258919927415063561934171706933768157054369220602351341894206452892769396038553737954451679238875927744831034567849272410690360537133925325996808647808593810725840082376764655315905621807457678802647929146133379673643564962912770859455116804071973070741572480157158046560210310745074392587700385555573576806779297916587979144905593622437681456580881895124433995020030898915888611212605015164112242908400968321088710311961742374029605078111278158906282702415420441392787962943041401553365174392099493526300965062002675251240047655296795186009443287161725188816741407839342271155755351187795168064983485931843856186027994931693346399973554495295421721617756500824799355979758750034101393566775316123542828948113498222762283328683584625185716440791025775121432468762019652441061547429830698157628007686400756566474535467237832805549907714822430974351374668529408800775471698025207785452589746563336237245967762982326769001117968429624270068683561533246601387176997878889003189181295071614868646037333820975624041347744525942234446744279817918712065738783688403331773201747271685969559784687579426718701816274927538577047978525367805944621557009778783929878793306438978055373521503774835682491592225715139793609858057614722654456289190133522883219388426971641071457310667293191245003952628766217171639084252352172670511062360518477425701661673117859424661855955699003678662251581402922817716797452612520853892720931751251767384509985332615220797097694864659451222280368121053756980603980928572143652072811572158422937841968647135056206546440291026471888776225414907411340038120519466752434681786589588511135451327946985985991085631360283961386436743573896611560999555957202197243364810423770675200751123806131609320825989033422851645046086235602973844456351787010617921367586193557409067725548519581058601513003477130734348145170513613555596316780733598171501611650575194621365984860118612988448990650736057558141801356321885457857534500121715410565339860668899943119502226398451399160047306314922937290876949113396844649746006955430198755050680228965221503048681932441438631725720688409634666977962722612467103266285302373668493555858310062528693779546392400566877357806290824954456012088148095089908837379298767373374671353637885274487700871713348896990223788853250674694073263992432913224035488463256975925226383409569005114610995416908034296065702661963342157603296868083417277470276606289000212417436730814411494281452284310216560064166526754970791816056085025850266141110993565309655068032176940332146381779520437679658337498711662140508318394109295046446214328383076167640708675877675161692225171015851701463179135678616164222853991400298977583995487176874690987146841691089079527183078558675526532038405604870831395843809239302497128470060302369034582150981650835136482133850296396872193105573029104656135353187716878105042906934568626978084525991672215136807184173277260305943289390814175673212051387145271046098942482238166827943946125059264391943766273885837642847687896359187103400033119172165400494605159581728114865281601800551666445629208187570577431674475979248576632893551770975514110034375489168001895811842142244408926794892411562918523288923907105654553187798595226486893351211798638626744342856073996493217017481509880013766679595239994694767872655497890442411350825395940421627008239958185799647132662767069147240456547583698176756874027721925812349925512912716055507497500060105908025739302029702828885912358158648581542860376511898650834635911568263586167414567119812024665251194513159712064214546523996111120133499527456499528582581963021347879485451166764508652763839163689579439206722031531996954098533055928932264319070051439991045840850119350345782648432586001212280273841850279776735560440030345053627030140487593347539333667567968404587987572339516729306062146931263708445721852774597315981886021619419366878468281047455877419181855241587428265323444899067209125682677417045239696709480483844743726169039045708197673881605219604920911454465490293727135685441125701956696210494170459363230320217009645180304315481800355040125236846289978254871695595701507208121452846516003761607134835646305935942699068882218722067590585043361692869381714762476219053741128130650303478048968937547298362639048517940411255848009597815574577528761895011110944549206114434738341434115131385519819551631137808467543612866127743376446572171858352343720235804586098910034411600714059189187757876948753942099488821821553962225735217874726664591191390717482572522883242192829429242210840306869528394795401865089263081866610312396530554027401341288985691177464997534194824526786169819867825565709897496091785229515892794695955281842041717614325883085291738427576867255402881262206866672817667491864434488679558364420292111545755125421690762037701777219562163906072534160164743032149535667663484580362197292970805940872255280858766798953375254864408416061734425443821456538879227757671337702067453428919281609909586980362603630728812217967189159694739340720268174753488671987023330790782666790818377173885682719415762318492443571728002475597126756362506634180110104936566988343648112429796198846493877151471605637205547965165769180943210360061070418048975200239499771422929565486210096334424225890118363868696332244115055777815196737022142404064457106879943662053133584479328813765087962467966478304849177595484391511422272579201078003990587730835642640160042094666266510292894953864274617001284656909359235852130606959655674409097814257675402685441983817915650757021652058841887844159801706807063899986098359946050828153477951292308614745320009093351621064331814776514617393905340117330085478465169419099757747851939637880140855197311733355194696978794193716667328657363675345960981875953867053663865357812834350324361487088999278224455242827620085145204629600844723422052467505200136324803597699153791404131868673327724147058798784793775759502593305317672457762026059935174523187168084731179225903077299630664710748678768520049021879633705620438837696103371412526666095914555991508962032960988397175992330124574225755023404632475734169983826816460771539931658748944694844032967281533393972428228184838156694710479925864278331309091719541462253076614107418506417417929772340042816499905604507676796808487481922911332350750356172923513708349472420199753394865807983482222120836931562654559719997280041587531962322333400865708488310288864436189089937103092690617523439298193048058126687596560798984928030830861177484990910614871711016703962390631299639994557775557581781238631528636699227456012508888003130958430638807648819300281531428203431272643693735660586070978806750429057881661630954155912289300130586441149753004806979200404956186936241662094633803365834025155152362843987509581332011031630977716750413443191066341529854943340644721973332117944903478367244249657742257330990550270307658131714634175806641912075270961310740202864125487816562332678197722987522917278933698964319228704826374926694645047687813448921068584231010294459407757516963213734452695287624453020533248010188074870809980916887870668753508922940012617510169851500518338834335605437102894547881322524794941210343055983479633944916204878210238524575747230918278337755281933785666682376691696444273503455972114862032674786214561377000119779710202431097564169262534245736301758253549190179616910131318139830510533988798457285484006395718607625550953160352331823845629503678774707478066744567746857231839592332743207391667027358284931396535532606633921040775910952025224149531111830174047771366273440706514842762447393090591171559482423833943567693240613573233496363078504977593764882198885796751942210182169613780492552606826272189599900987228896857574248027812204157609042878647423542677909896047898407990004812312317878907865584437666281819259008804023592461406704196939592975544404185497847463260600690018879408568174456756184300951414616857647716227539877879286104703354837613761364102373628857897816296846058704171902003041063478733347540001825359447442674310472542532322402917072017385039620760176010148915272279453399657662946665822395940335358330177108131608860323926323271964416931725639413431094585392327504338275746115671324048206775556691084785067685900406201413060004162525893213715684462986687039516490730932598310472189043111898432511103598570132180834901933801281883482377086311509606828073210859353652136623003049852819595723825314202892473124162603315664892075791515725086919817520751867821013357214511778674586828675677432277887102974852361101552883101673438471558796763430289942524949917393341565582809850929733960168093071825511561475785284750622053158151440563416792315740210983681725077341869992436400910591581458124868421348127187888527105912768647386842227948979317741934394227498128284725440492240120721906916898224421674604597480115788998563357264607727833313560088122778100789497733363884522350766853331397179217998128506648236078204852838454620920135094210208400734425484847949979463966095302017108406275829230265040887034950144132601691579133158220926985961340549161071295045878634683056602943694859615453835745640214319716659494385633421779466285752796101162326009078040969924927440055368871948603688520389354673959617138406789218820772193727363702792765901142800043102148983611668758123855043136082157160572167473143350606945319864199688085563415036093000622367289014580634885535954617520119812135906756009741988838963354683881578244497603601389755716286244733104104898398145876517227221574878916108307339801507067185176831137745883640907194233129816147279984066575227105222002908472479590526449367286212952525808283241982593426910015371513678435598687579570539071356977936672927808607227466051215551941112869407579357666671829682205942229747746218556522059979269431405109996240895984753141842537825877518719628266611328202902961868249724827347111318689891157233429121173236923585722077441836161878320391453548764170689256940696132460769725730750020709040321827240141300875308461047518685790547386612704124342055910663993554936957175224466213742169925117517345034859224551783359757013848103728152348933124217686636183471412575325903825405197805909685612027453231619997816889924381798653527663115200610929247980900486014094414101110168388240627910436507859697771301281789249480137380574162828304553858101349109068331060415871522821416049068055065757444441470992709863576712712941942799766698828179711495607032909421695018177746718935914677763870416410202093141321087317796004655455492449081852834453548503208240300596523251231889570413309685104862543147933842562045375489726794964340075377274399195237902044947484339843023281871695164666440756093425315355419062452731482984525080493408691193446356831817393794641057204251291371858755296572019462256198341748830393456589452711427317403495262655986310226473744037350775290286346019661423219278935950053631988194754461968011229016852525267052590269130785197921855517434423785748934626501380065794850181614597895129981861795437802845276084999122506294336400209226263397722838330965303521610468290266439273621986175821446213984174010967727388873487203227957254307240450226235872034909376244144601556677990987191174007934873490046163802645439400488174496250743978247004680916225783012520772037264908536589615715189223477338989211393623244806822758487650208172187224266696003055838621306111551313253840622352248839610008431716022562726262559048553487926252879227199453920857976272936249330709823031908911260065187922968790991212636679490557825293899676240822989956159251220037372200376540645202995498978542315992817152103464213473449021905751143132303347499948905736620557557649664156401276759751501389811595483884367413053375150923265236488036284205789844054724162838621478361985139374956097934744789947572103794261897825792275085571592457386151001428866700634464136063598961908578312014580700648502412205773392927262268628676631863882620711848021300618103869478158384723658409546289217052671837667926287672950673335961607880182020447971876614474748147648363325199915600505138380391742280621494080739961877341071221012595842737109763520834966266537649921476411123508101472218986556427176992569563316991294516544915018369256527273954169256608888795680927557051825088672817928704443584816842023048447331708257819666421861717640135489756019014777626337149922728525942569772902464188851844512457721781469466026314996073241634418436580536421951096012657165702671755957415853742464549905614673755522648837512320948291652285325266211920575531319671822672629979062345518206729825457567694203674279201002697183783415132620806391749255815946125801094246817372851449436212077145253473780469027826421779485531976645059409590602858095450673736665464935927164035221167869784766119333024612369759944745332007714119331568002274269492874139894255788530516233127420437305226322742676967910095117071407918062505234247922910273382106673606149823875246663343127996452321650115168291588421745660064192004816798544636981483832565384309179892064547319270617555885667374327539111950327988464061671213725290649768135408863527773395276831501731537439489659785329485130026879952395155359799621768442805901551553652769959741522880891843459264241195115938074017163718502541900630310099027665007596833808334881012165181098748869641657907130886381639151281903705901656689709873487171299457809917367124100881458877560829611205292932532688786079029285231108037297490900566925968642859727683383692422237779184528148468906859075090670516354585449017858196806235870190082073164676022428691390299240344696608476050810467526998556810373800325248605802118878335111254323704389663324037346856412515850349174613088359847363246161812917485529060570468362781613673677909090600388747894783175741848418460837947174395124986254653136144862943552268778563193193165460517172295393614062322151309246757696226008958276595636139684763495393256741911799434214804020370112604853532369384124390973150659853348233984396892503634538190382859343991060597907045379318959357279441571818156126607202513237813369713371716675253023047318371532080942983014364461932370517657643410646106832112359920271216788606419039546695889077971573677387767746185082601007893151534566791140656222364255798914326243328016087165851273763052724567513064165808480864208479296414220128716182480849510263296310692442679598315446666076379676151630413441983598150992360882905563229600036987587855103154154966485878440367004037893962810408895268245340327894548180432835164715154152553977779837265102271972201887333025630395611741064676923378799277876241404459649302976308301633034531852651923515490541664258011399222742080044098363169910672745011606866102530731298575920481886038273838595823130751674470842588888202755236490210572731905239490457678498549776992850382019799085384863285812575191359403341938273382704024379312198513708250287982407086599147049391569396167349169734747142678442995824903395375915756729968244407224777986774643041998190221045786935371330438269182954577172803594609889714307751093086629539514406437486910360083038587829710557244772003214371852379424984682676756943994672515261956963002358684907451374973683277300226876338575554548275122037714389013985056201014342990187602022588656858220476989388258442405527501481045017835217817712625629275332690944372971147997891394966898207043052863261174796099679998514069190058298840690554832446531908701514008960142574226311259571202317241802662041755249471565092860913300919625965232724372413553303755923601212671040564911385287608110381297295996023377550716389726499750681015018927069111741902688130575217681410024439605311376576238264446210625024223679010457132671115466968480880506907046211873473127161992365610649512963429388042431875508852286952364336781612690691648038044103304090513135010965842490361912924355045957562185582323588087450125546925303845192092875227228899564789966635705658658820239470682100374912768851917979568801500500750821766098283683987743464294273776902837771643891964835487500978510092408752775364442938762378221217305270013518091220284769087394446270655026487758990559609797890578998230751387754156374288886775758550092916996347387919990570516371110657500073492794977399950979595544082375034840031677178559527948531737259933618761058254634569208553792234249203429946392824836041775269274937826528857043041818297942980491848724211881793309471448202497031950998472028951874444026588233340620313017908225542602297104037281281264395553154324349837833509351865433145686948921811200228597765817563166830831244853449387002611599500806033973161320727286705862489555564654887533252559852800975007237293820444115711096100745960747557586959776560549742367568355167077732967155972423953238160320037539581299690625167543812757479175000520787262312575791166384867012862904248839091256603027577355791742041173794576463864638876916012777554696736625740443391417633963986014252856350253928037776101391625431101405087419890914380170633606792121933946964759293319475330728450315505049020566684261050085468773867466329076290199243180488317670537049379187293140430409517755660379180689631550382270296345477782342892796084624138457008711083600516109693147224388482050207905384572934867368486685677727003087833366944973638798055836774586644422799550954356216274945829706090077744939028740805617745162608064509210806638912569398599976204996226980939657436398236688157128084438520828867869163620807153127024703486124390484450119913672926140803586327804977882840200580350234491199042951800930075341447353375413773377241615335592595925878379343500989132955671732150399342635897997673225766937230460265721832553372030454956731314151515036390818593299851102800047579332384377536188074464211391456709473744831211398985367124716220185171562112379164245505215372580441106233193161573234723184453283481450838049763985868895442848030912201616302776639966710725399539994885408406299868350919575608967377458212087518787956889472301121694870293821776312345407826218977530714467794667046860483243805786377980148491020428111222263520819743915898984101951904670808838084823206277730199812871075158406279816137225262497808768339079530472550124884630294270449402029603210054157986922123138911368098189402361923448842211210378450423437756141353064354111698297256182075997900970217215578061514079928047346266586042654999748647281652521838217046216684263983069446484664541600873018562418259416943723832878139413112441888325118634268214434819937959994016508067814973388742021416003856711803336701301460753956231840071085394974756480615514185163942874273782235636843194605506393585566239798297441749757021282028321779048244580475034306097996873303370082012140287734655670276415769852304617813486410908182851086865879819249833161071679370055240577217938237671075992309780709497020111323721921583021520056341803062275824063871907715702963317390817634394416879318854275642683947395172805294350210597947905498615060039830735500270077330483028381770170998954600257010107794073925453499014142179663319407959003825506715851257230945148509778565537581070457761007780199315623772866161035588250646843212583564050983458097568787595026201796735713076821427745560027440332193463214727010596843225734573227841375012453607058549039045910184480304706294608657494088878354762142172180967730579204687640176919861084302563361384604613709709979565869811648940105269855274529470490045025003245128612497461440562929296140496380591028653344501374994178761424747025106321840646086329667941762964333435275285249688060238445035561081395564936474156819752598991501745004754975139159211396382447552730690072451728059364079729103360110048602535967528032481235042895456446693362667587553456882412847962013326718382739416512045710886697519737730507481728414684790810506360102395660436282759937501446040021558664377443799333035401818976205013446851103984946531251324267144066477985976793568946557509801401361658236679852025361159899898268987503731658299486419696135355981413468212128209110998428872014183354373863199418938789060173976307539356187281330906765980291108034529675489597520214137243956108324507010257740839456297607036789892010129229921793034047963995575087582965811739025284690654939974023821131548553147842230577294924099800840687737089079003202171594297773231999284366567788695809778132022302597594346641423530411642343118477662676338922705579404297557497794457361069902191866165561411775264386438653017031038728354267400569026125488884286459485358203955832667847847888319058560937157337481220240589571137114734574726573869323713225049611110423398074237410509506704749950112621123526214939301723139787675519050685689619536500051979839345303542973754679081271323747502248763783712059707418104059825821783508071620847903409582968770756174004636526173798220234892263098206769111071092580766108547104604335897304717553242853683347367746800041428085468837418907252501208428582275702428505057761230765356465142467065386119031478244224680823246024563265520683687372650613863209674643707924802748714919362766777425468289843654488353360275781399295817075486563702658806262804366475898003260269000015861169818247426841760199382404267358429556905888491182580428634303332634353604460781531514235963296347064245713383918734671008465969054745224202058910576926011263876197229030969597690769664396612088610646271548985073462289918599732674183264269177410307054425482668511162898263788250274007550969989053165746941650898511997155262995043877421538486719480630763403389207488335611720299024106756034974050140555092208379319620272393360613573274373204378642550956194838802050058018471792537231035928665756001998471336504810310524734395696702116411979161133332404143351396314388803961475800872729671597429894490521255467323603006375342704696877717810185284501185899804545401122845310587906784338724985912632757210267506142467660658860347982629142189540512051501642457737469311587513370767675126416398951099860392586949584732081255019303138982684208310248436466522147200854540826191442971370873554524680148780762309016968188696228798924021334215670122691381130648882166410814556221470654853807834728860357988595294856930160628113490023768272979160929826084676712494178853955741002201736546247524444350128508084811371763460581125766208059993516308637986368462371497090063804668286017511682942465890388122661500246143922209066928667330569588875845152090349791163771974527343682926430372331393947250218347106672781043742804614706495558208265156994657273665811506890686090858225629298765297013357221181370688689587003727179940031961882124187126823071598686368384129960906571829049388590070086155212795088437532829847910854230486785877587620693968570306139353639325764686877657148570327354127831054902687038876555319176921242530325622672298597906070611468103751693365682935849966245919284791379832342971640705983899334844680413994724360041030426059264399920057804779759153481555786304017788892681256270608860463568904476990185521389598735844541492501360939986424773219468631693522046749977988644564644440762587486935461281271909921482509553838788350165016828517129496274061595703926353689055341053743573191902960070513999496901887899112538653023555474976209876730340777600947321139461836646801388844948419207896342068500545586907619523687482128759930928759638416351515224618668264514556432817825411200364017213236545752854416141444684556948271827201518478954016089914952187618408512843957663531672611773215253483638750393998329880948747417600835609679283663224908307695429114925018501206130170816250457468988242527160474960337835840803654540694831218023467807753816425023423036271121345301058366785450225416041461589803970661015005945695524167482391893549841848781813215449599896031740307917507072035569499309714679403622867469738443204617528811178418421278689091994588966885555938230323645193509354453781862063407213799615571952007228088501908179514388114427201379864217136834267515227928316656692232321803368445051122134369064652754575286238862189896165564330074891678652255062134091330170574310834238778531202019810111321044239175628243354307009511465733939820182446556711228755285416498003643529226116480298214781894028105723850836438053652086565009976093686652371273522961083310467644579542679623516491518105076102036137476950453722476198448392588100858955758890051326712847542377590024179283068996108651784002641783910096479128837917194286254208628490457102763996784953117212864497374253561523990908738722861380716006466357512752436664186481010657639002606785397033994241848646548843052589199467909060302250192437373500227024559682929799986373601637775063726650978986000233308435609389435633549484385604197401060637132180532972140369634328814114591884218142538616309878866606291563064085894771925090605712482210345914137598973629802607307927883729613098382375095058453245542825374375513814000109078060689564782499735740673150530111232008210311770937662043032124789575391214839969071904211998834115016266003652309255515795833645686184826809843891554467530004651956768373627190281774285133231281160108534210058675224474598481326024052846610245104265814361918593570571760430414817319364911196626954044406614343786320629296767661954820233977078231804960043657826087458063328644937558331618028370172664529744616402838082551530875402089505668856479594423889133754744103794170765747307297128606290900788201557493542412494470247179994604526951893663961958409883337544474180875562627091265272957458600807658669128553810142079657054503241821832007734604398127455525146672749591029661343987236606811161322973634156841169460843482789596061425045744397681561725227522442420990297002445535296404721535457899754179184675485278467676805116285785760970473915401212444223121588157298087826795124147753540992239707072287386349867211826049301610599157705559070441196222814013421379916982750482537872917798292771760999177696396703110463615043479836879983911628786789905160884141385496873896297442225389298260464874435473358375388798496205549632396035928239309084032123080463382317021271347431399832524620818199140589617202606932397314835994314648758212376555195716142367157578120029745986206508991162402945432236606477248024289489549528307885042820983318819783806250540021703966526211734420754453781293492484319132920988882288740694438633254906415401376107085784493099532632836482185850584170115676282496668367219676657062109095426247437952758781091510623812114261307221734004380110347383145168053294659235859324191752986749505206053176242766037157214394230182078346224533007001390055198887166578186069790105765130274592484619067761392049492208248855925005487091013224516259058344901164113449390722227445371443790375354781840451000759375551409699183080348372400046212205067261341331238605056147514165719240312279737430431970901662000462504345231601692691632126597874933601976644785256003224982355353904194948596626706816858940602301120058298724582783567400771319212486857201459475341687502760021018006567819749957694309063457239138070339319684691305627746414903912298936111663247002757737337286220457674112052063786004000436734210812157978432535134792275950177822467507383210849608974482625450633918904781262924888497952625425157750893029322567604900094659102331311204786309921365752688885370049735593954793018451559186349796559305343466006598996929660546715754090437421718340771364577685981465472207307505428607453504082001973682921269616255818280532615649877997762803356159508924394196906097698474534874915780022626891132074390755869100039148693589940386891432368496895148565844698917018438485808662130980731258116703028867088671655120562391092668506208427066680472619733487829018817991372236007090088660656220733214151718659365308252170726326852817770253057928730688037809571900826244338080631213866922335496658639834952930751101941359492968308808057817513381538079576044719496667655376492969627625871642026708897419547253304761698846908948567326715651718144020310329076420101817994947770000629867277490584808709948762271781401401274070145111693044856484186189311426746687624419736510224713290888402473286535063967292536939058734242160162692002231547105185983260399886064974088261183151473738809375605519487114785345958299564098585538074916020308149777759939121367153371113745135865593080767706427202874875910473365749134944171455704459502434586844676768605628701812583356571335176822013922462750640438022492389217512173186760100719030976070083692236674298147346615924848214932855041132129163342023969012732029400208518270033235073015924091322139189134576993876183822593778098252782201479819081249217195836096427750221021620792974988850733054850706036211762507921854383664316051403772141565155892975061937851511086955655292793674040711335000670004630992957016485592303216547284801625666465525025566912807339987051539421909686781576286658624560736925609259325063332328036435861972531558922618606681480067744600085081016580842123939951604490291636562739984593409094674099804323481285462192696783993577108901147464860859024214493675768190254751910724620484864663643508372286241413541759020576085067765878757744357518126598167614282933601964680830075480937836232806535332687543150380685897368326615843941325333991453832407629076624695880551279854663032766384262493213625031939094214851345490401774626746901757988488164636238238293929189414555071620146773136999689921025908599577762387431364216357302639368143006621930564492807880663292904076866428891814248460505143303687893411168539182911047860179852384636886537753061878030336485628070285866897690749169827476268336149422324804345332407969883901478888677045145263143479004758071363592914221253278799622511237856481169522973640945412717445526491053874645529310856480167413762951049976889994822699224906294215070213430383548901081752125923828262678567741912290038827403973921955359706945984001854724602516403277136251629675517537842682048443702440781629500217998544138426204285535092019549092566777438615755882666327916158061687664293778305967251323574786597045659910123043565887474959762914697686217775006121942926400599130782477228699470017263233840005004389524712765048691762155561606117214654272356421074080560432405076486772821448186692658185528628520266541713580009416412304347568874501183372086153300017274622402870219844913039574133900007653133527684420477760952957703279434024949702043581741065716816834072014389532180596730080920760592374518393109183502865959431503638371237482062379758330626279547625861642192052973609116604618946076103439336322014898168166956894394794768155976316504167896287324382697781581471908044419411282040757097725438097482986892194977075255914143198922200584527077316127172792458508070044900546670456571779693988098774933657317082269503901479240466581234479093673372918319437878217500258573585368020371023336865252860547373013077339939215458314648583122249499398151113057241104128427722974657031831063219834530154633557008892579290679123963734698793651293919511807122544858442118840342068640919686860156559161708559707916655713001674443686318396544860019125927381564989792388254925931001156022045721442953604977186054645204717579120605627178666516363541347948813666468039063630088868335748679364371133486142553605204810284390392196007500269977996473604851811227525230419163277789955530935598186724459587182038058114944369464079248617521878076404931220125052880155025837990348476938677367815682438497990783968626197498712602009017660087995317844558900922330508624309998926464092391291479424662352755845961268500145643721635655771034896582219305055667664808449547365574367175618377245196743959456520027712506433213073895264629482390071512370981280412494355944611485210338956993813599045476924379762800553092955383439333001979582945667687742771069905076989643662426248839947723128028517948754235368588944619425622141542888056837304893793891163955387597259986830127422740077206429935458336097471494741980780729376830759478558294419335454970565091946447138569803521538290313594250296008765349852076832941605896112604206495899069203869005345376754223409286126992665375143706765366548298420512105530649469146178343375428065004220758530921692560818965464321128056330056012100591951758234381234668372963351425654449948620767032500550639392008956907061543061596176431008442408347459918951663032803772212372089868298466439682265275792160440544909996363509807936000278449366667945523071128479095503882354777137142492702911267244732352643965464678811246023919406694127054342676798969152107007730448318755730989933844066785359518324212054210252398189887720682863895028102092680930650881884824497743713538657506239830673671413646723996517972358336558769044589144046487447174213176296843052960940886526471924001310603018821223416674088417283800563407024987666962371390559413221689097303357041337608571255882445494922448129062395621350429036290281254598168145591289350334090633901751975710047115629134949090115441505882650835730205372881467548218155198449598813454500618081247429197330002603410903524013253557673178666809286049388420006792591722378292767478709938787312245351826062660583769771252634075503512146068017582597989569432532308032517023390937704230398108350825494521410298861854053036128078977751615789327914690676754518325171854206665370698744635149721730864999965836952362755831184841474073836815110572890741935719573752083634516210010864884635533239354715529538301510362528747838583404375585503477291644851180699206330534041810611080964681047009464756965377499333643537425081398237784965889738840455372567767122925765845650620802889439401453611299564001278110762651079943768521828256539471645130454095157922061753890667117316261648361358947591109713571135118771091180652877470070241728483779710237891524195786819534567422317626226102117198208932145769651727141688606291964080992465881859827113818992043017787592026541254506691914730461532769644637431080640187125481449212358024387705970124247702471971812347470219344551860507931418000502135825950809697657858401937016967180199654082742064215204043567118742360745810209299081015015450893659713786491596883273911994754302753567753800322075456510193054929959608991698489968842118610964229151883949001811658239519605049349687472757522252911353825240750007148952678301834450567051738270397203896943759260287121408392601338795015416105112923589989529879405736630155282264197859414232669540959649687716099561945683683939254008048396405116952647217481692562539662817387204364081397102205898192472717868869581249691047347553558043104712528382892698136369315627328431529681803753254644551240351427843618482113012249833361664700679897613485608957962943224210162700519965110216693868985504952753913794552617664110988177331721046166850863835409024354542886396324997144744617891585676667822312032755420014754478626955012894727422501886668514016051058134232883811112446348289316920573458483691808305543914829313358740586682070802908511504723750181031218900235815331151060923183278945987307336947574983752026943420175948166841538425538883969323257737085278880273386856759321708338916821271220702139674779978872549361047821448822981492109237766582076641505959211510840598400593185691404591423577953011541677135427254846003698101262360058730861697110969651296541164022166691788893253412912829106460084185467145994893607493946354858745004566445219316920583720251332806970483585762744475597922016320759807581781896333780582955961129332754400921320813976008731517531404709551170425919049064459680695528661329098017141559558309261041595931010686209879431206003038956223485128291839943657763280343700758507407187077930430388765784697901751434930150887755347837846902318329672523747004089873306074181699975833910791124086277114664268841978224248351291026360596551966146429331786035601529485092086890789192418291609271076864520508850022113964216476356015794394082478531920351329922688292805168796199961886124182198163797755270509516290084099303881908000277549179426954606419516658585444522824089206356782621095336516016462764341058206547027035413310097817316299615723754011998678942298194294803307491534210282326148778220847903839866686234016660299301478856116142030317325281554766780063886976768991207147709563511329570180735689227128587093016686832554040952911402174611267024000434086426485508111455749623128355005405299568582234203058851433884738707780436678949524946287379467666898130301889305298549213340776080714764114427287079187250999286369319939359267245195254465892201909152841050849388941780312381118430289900823680153730986179670041496309753155895286780589408377546205756464072563783056980404562048439224378402118331917932761670998670347422751993416989033122203762749725952487806413669003697215264703493901882440853955284722713991891658972670513554376757403212674072699457013708448954794393084283171518320948799389969502875686218748069145316967950617776737666695331007723652358725541948881653647324456632531655388650016178426397631579843775046669285147258002698965802414854069010062891968531245004969613970346979951135344536920451035655275654522300809732685649029906808486608990502240833662594641554671296027475821376096568521471844573822892003232878853236105326469638074475529542071721110644147026719639251314457966234705588794413823880677874427540220318312368522195535163718303465844952827351073904491949648464477963914947251196294115425605493988657698288927901283465663980305595562107881775632063984545349379718416386747806020125452251121352588349721836088187701370031888152942758067392063398282149127884083878793472792544628964046406748456197455510127195051588959912186359240374814957728743905979639624403357278151894795100783532774843075929894873893057370403876332395591993012492247026069073848671805160834973847070580155364292462250378391742936736944826087044341055499421170467081966018801663223881639383293212309507140998381405722275216294073390219539683708151889719576146274820855358469028234622333311177421939839381129887788205213178808798695442976722849404847297748782051087552644059884594599382774330297814744337778239921956174896216309277577104063953423237413184290611951461876494114576758446746675037034385078145568314574018264076297909446961227350987544841885172226390272554389484496221651625869867381248375837404729391490483408645796242111677993507791729703234199785992030571289697020316641110901197585567348365820794602163263828841743221588191929140022077714736643654512849840280599942540267034613975679602304655950492963850161427827566325944324203775972817525644483012595459399171404258176660447744165867361734815193128104720343111595327150387797837322010947619773972662663269508731264371783752496557834870549286988242972835424282652448190938332908461403077923884786834923386038959962160002595971098471126647374777777326727840414799114198931347839100854229425715145937509840460628320043257342763119080006891565319567608953735582835369091421752781019039067000796200807178582688946302691146474175012844138742320851467797538910147733675613026786827461363023106490632947902522015498779299807534212195467251658266361799094867468626149919319380597937213345123446099164748409913031349281329434320816133969200971085955094177454416082069315104766301819490687407706307505475765826925766735390886133792322237178417020201388719730634692486472579252468336336390141820085125737060160073091102066575986769711868804745957201555864322889056844327565912250367380345814865967770452104160618096063504802700431638630780177326268933604426896563237371054227641126853900504491517918845451003198551696952422587184214528986883828082031570462387402089736790014954609725028665803470989462570358579349070038313242351593729564523664197408163991721761172287679032356419361347078855554707536688557933583646278254184617736433233689694915424281318788774818425261001525144546084403682357877144050379313952948216127640009064143841326743748801154968791776926018069959988136874685380551213385458089462503359045306222085544326455417476901432288653746313047389657341275488598085469647559578486769551979482796192684092208963534748427993868016533708198715216199663366987807383275608666770001699127367243503641634907361439172641710298471471796901112223393020354701134603167880488181374450371381015367497571138267045485612969562338426442427061287651104494105139604229462031902733591332323635593389796046063039414876773071676121788541287412395850189031903457449155725192686283816836785726801008444165208332627188756093488497851326609346751858909924896448936359296121276487320542315902939891014776200203538662220229778552996892487953446305345943116199114896659829333472750066395890994925158809366064191752597007668810329870262953236902098888194442850204020952396656494343813722271044271548550159351926388441562731359004293606831362019283675429988870826224193467201133700836713241339946402213068042313612629336610345195567528368534836026864151134281157929142076438128591630426546549212873847702583426324425074785595935002056880277162952659924178349392690823525837855937674107413997424446911779047380234710651821350359970956176150445997776420652844063666189633018843527077708723100016534613821313308429517953420071253961496545386616019124637542430454744867128839325324108532239080556252926215384819389298190023308370177492619415289332880260674048771253522429396395298960992588402541146294237315324988244265115467282734900404093238489846922234368783262357003846038036804628780838699591634135465899626766391286289751763810669149140172512558111028725110680067431683148869660691302445663979094773832228464615428365983498190413271169185120336727953230140717611621948124396378432058393732425661573152251100529703109472598588302153300000128183671689736850542085569291978362685218194320221040293877642922983915868622225133030581999837299978960107561634375396277622094233745661107588094897919630466735158968907170165126107080567247142557065128960995398932713543818466953787504191784535671315045056992416925797125643489998786786804587529024575976285515566574515597864932247449743951073722260304924792806274380028719582680571833916108954289797970535765108294211297192558717306657520762020283257057402864939454562524787519880602972732211070927177894508329032325439524176184395167400913605611872674327773220054487838880672391597073443392152975044022419621631013612397187901884214415034022480497640311012529785048983976763293121521442249681308632098760035331798395792355370055539075876587120738781676233935928604434727165038317673075069851446506122247773863066358886041586911060119568400925029617028811125190978121083304933652751274980713616505939400355546475539792471059912550714489118209229873726623414805068443854190320535530567870202692597740298100657375967168401558984405150478668845073551087505613634346074885765539293997710638574342840971848461794495130970318625691433415810519188095685970951476930617226292850612220570004063169368947466188015062480424857758654989069212235744704053563111912077997298376265121882146027432294990784640424514145253519610946004502368265832424871786401196351939598521277852598824295894179300968219884221833632563494965685626255066410962502887903974792945709456310939364855137427337073584776934153766695366833012699295241130817994130519904016786638822886384558626254877300203005009670241617646884866263175219995150340932611716782159687910546290120257856986219214345651122138039340167060743327937956264302936869782690667371361881269288155637971926379524855870891716862925069396868177850027273162514999859446027462215648391076207903465790701134754889606541465922512276121590043979470425283786670438057673712357915249144916664168248000788334413841175133553104878086121978176487098490065673649921745731744405065257601544605069909497692984064403124667040289781142540428640402423986481230764206916182437661765228397218335291429988749877091761380653487556049802252851281877663832389363455224204982700764326590196441488917910415690421035790186884521323428119009116917774683020508816756235273459737714176355187851925611660176236487762841161370522602756751786380775538328001171380988564049023600481309710653419621209446386413981520393110418976681557891860209244959909573155477276562676676176615332195985028585717149899168148642273013774830886781470841439445515310750711174371482120856420708527277464637940628180164580083200569877053999520136038010699132212123220071318747106367710722915282555705875222189771163326968677802189243726733366140618991834141415552045565909502928266365694212292913064387178980700343352317719778225981474624008458119449938958628594036704605522911992689327487891009686220182510973880921943222921169142895757271043801115575347874677793324123693845596520561754867836109763282265662580704937985434691656785732214900044964344717618099603468998978535653731677672171380070873636560386222993666375250412405731843175524911691389752453954825885623916928736381716804720558667925262080038342521427419259896561359722509320721919216181252804431155418639495962445910822560754112654056268863168665987249474302083714253220908290264450688189712402331620653795458460876068511616147548811975236959972030968099143980901970648983098491338526790205671926409709990457353037315746300672068126503591342074246660548866496102701348176433828110500840384971988455414416576819425826576540716477825639718900445764145573373803768171447257915245735955306482970616360983998998290433152083104633309246829010772286049235037721782760461976428875515420628687795972845869703419162663567220106314908684577938787362743975688578368789809773870815525401684068044023638007225514246420194530780684807834183081128383848535916614681449484286158399827203576402654801598198891728327716757105521649815888006311516229039804716869624966834936518039314133541342263118903510003222721490528897125112001785593097885234183870356695544490064417586508908437991758046513656785223803005946304423011722563412716231149815591291983851776846701493700810148340617977844380720379904507352995435896008037393778974665654191322088308631843570621466625829897102242378351538783900225946062862391098345298642938331088303841690316139640113003437930475221383966999778240917614495415952652491447905935673455469849600761724399165772421171235569701241498281629111144759192762266468572190618761285227081339550507485202074412360823196837636257314958992951008953612780717861059995649545033505457898767197125317145026567746454147353662306993645785933378299170958718157499272611328032177437820064534526097776517678469861250888892062717230206214042283905371337429926497274581825555124879104261664377725424330947925033925257243708204642048722060254811909786369951679583308234520237189310803673983303334364891777176793736621435492541145510966184258720973877564696867949443167170696580757850861273132113329852863678476920300262744342418079780146185905239594793270741584159208645696877974241185060944162637326405228524839681383625279764129417294561873123660348065123017608051600252054262501556628040650428767626730594941980803815255948106826655472054856319054075006699407018935911341564085703527924554018157215429916581984963026096098259788277598069908309397134075429494126594064330465840935850367823899510826732855563671014575671489068727545609858419413402666990230209834764982183277177408455849589698798940812392995510468752060868060998068248976439736078475754644506953657745508547858001811779966217562814000524502429970085450506141857526482934762395576651655975588593323468792041009054190098101690066591474438775673632939716860368219934607013368405863329528756463620554642034202234590073090884807751934248809663053946995784355528927431498742309098471251597707875957622882230239989759648253683642913179063186362070739343457611719947523704540749343295180511603926021812020795279378897460342712025483162408497844548007280747555770772710157164175268643406074797295595689081549299100894847517083723723108381698883084476539798923706285401425813465375502927462853278823921603078402100731893956048610204868991434622704821649295452273676553567692662314939243353375553010396473720946821876985077982699673535342249968206393270777905862487760421117359722389217925702318419660560034921915894726887008679964660806040847474132791510736068997620414454378757529441007845798181806728421749690364307395858425296801830571484047807586697841840892954944726228259231906960900426491975761129259864318483066369040266630685318901866119863013397709838375371472217923082009932789126928295622775276954245985745001744937486927044489485998652250349152405391573868995222437117615266290236451869978340983932419694579428183001653057196799290080210533683955871603043619631649161932731656151273983631400710331721302970103374628156764452323861760657477580414156310613287737744526896836677564190414515304888339932075640110902541607603014521015138259778045167985219753283063167047306664784095214052539078889463519595926179172149442422298936696181769316981704860712657505682700173533592429895714890619836387436348993769570359847429864264378200308035080854518843083665003688509466474535268563406341304675437882635760107672529575155846333431280417366118595815822870259509501597388735152610683044077428723641827624234915805622769109643027740392407606142062044266774118895258895964024542579593355609082052034659323956496239841512057185050591174130552982021988083608031765551967515079842961827297445874235093350957976207423630909113163345026075974073511956517139069070750522550722525231242742525880603297359771898210781667370820884704526094339725268382672935875906307591024410185425829457930988626887403119966475054537843841520516513801697243043241652135695846642950449975198894505567638638021477891308821604892975564368118716726882474998624220471616729530803034454699116826824615649999406269925738338577858983377738395295393128028355654126750276012281070599473128613026364227775118829955010478271030001684359070751922645342457577263405343159353645847856778191563508650830663203531327421232901205661126300038482874871341876815997556024670289006415674086352862541196111530774015897121945796387414785181599104861718128128201205378399415225534578163645988637628511481495257104464990831814778143735613050767855967304763091114842240574565994433953538070231898782829577918558695080004095519434351763476766464907533142364911217736465776012774994405314438119955729888592795409805601098836976455650416674536557023864602708955423262455759754507965276590841071578920375595823232825647822941472462084694312929070466351526800892477915912383269838111631947587224468084778137160773231022459888989096496688964369567093775809590561027400078536710412127113031299405543121576672369000982924717145507509233590494039928127009187349469166787634168110359145811267170540230446047184400194205815604511466013041125445253560487637808485964280347406282477951410806374272156639425686793565309451739743372078901220273187635712235421818147541229280113751901596584503060331436739264620127665698476998399553872403618068278482013328477704213610757595694967095333458479624428521509652989760381115678908929697750306450643709245522499677784873951915150808299406532947154605834013454228514301283886729793771594374828484043702500450102714161052031073982800281221139081102140081534269340384671948890255013435621418809627337977571150352425112302840168432320414786804728851639750962416623521979404578812362690347180085866266127024564199339924304768393500929769715909848278407651051879753631325426700887539588390048600876924666116025341486638512307447199107351631233340544614076449554873375282954918340303453592082713961810095398029063462100934303951753742883649572191552261351413948041065265226177653797834296471453963830734577705700746996510165274047008163405523056684005868549425266178190990955439080788462464421176848599143238104653550757962806972022624102150597471140847919366227847855033579061798615041572044160724087902198690733600838701209227948495364256950598423285887163650797504943121555130616048219233614372266200020794633098185117023867307423146633250333211076762163236992485074519765728709494439207695750891411024084271748975889521398287544529841026806172642105870289027968101947251571001194477402736896056335308766391433861101553091153879789770055497914860137139142988772823096092248957952672381562016345010737355450963842681569191171303267497394200964000128715399070221318151403191317625597837168165515630554481639079119553105189480763813028570872862135242258765202764310811932585608651261853076757260945976022665533881715763840165416626111170053141622845393471185903325724073195393246607168062716117524075382568374477368405522761329966250933084028381837081003111855428722017534313320715927689609469857632866357264861130133212200665236537501679730148643978332558424987958625005486195271411701533599748160154257099508946724353227743984249483533688478612075188833671269353209500367756344300513779583293767317757776268484790201238595926223204916867231111615273770439150929675834222739665287583284235816475549747025498740063995606156518922287355825263104565240756430999974288091671795379083665663855493218771022271949132879865719412963583347325843817886706235985074002921689951727687105767800015273665763606809374082820089261002350159389338183764976321882728623868646919860861943288778568640886983632702844889213658865132653076418805889508992880185075446296893465204489573975737240089164702994664344417465410713645257827317796917457005954477263287876818971152833556729889463674671693602782638326503546597751118554786587698322049175523757736769593008591156846634083472176918360084045126699869281051033639595779973154935912340360692881862797775728235564696572814199738659186643203864676445202086496544400513566827292945431900013772227782900029317896582153448095913654973986558295878477242450732896624590342312958346711995379194908017092976633835932414910371788477334955123073553220603320651645273148939923970619676642200982155973687890180430577785757023301898753829139486670034575238624526058133041117044315255449570972772030855708982363121382925024899876903586539586029764200274079539775055221637138854820805531019331167908563739617103170044107922610186693589327382539007579714262588020445098382982283790991969794501363703782253117678953723773707537277579752347660961456587950714377989122109687957269317658654677346656467695105792985814551538252136094484926762954914851753632263014686174214173159647496213581983069270340277876228690869782980506428460668237450153037737781396961549290755803563322049967126957397569971660651924553707154531045933513255434454008312008557305528574022654201833463015332429876402751220649541907761487086681997773096569954705352318835192007414603170597476085934268622690964434685837466481654321957129220567869158699428735027913952291399982574084496316089883446270764970117061739994748629946911738906624673534325812410277238999390510910057493395062706784943884421174711842401629610879121996447814726833180353581801386651801968549095029319373436115515671673315010879835331969429968110406406581281554645904514327635826593712808750228923167334516810565373138935906193454149085754175480062349313374229959447673902526120758432710637422855960838006053749084749643743477301570246975886261131891797096929323585943183951070735399958287060398256128661754042245797061586678746566860504399302605300494994207895196642522068995272723815254612207037723983742420265661342724913801602791063886042061617646099108677055767673220472056229388766915799538273347666179927803227734554152733123688497860316460792549876085480824252846259081842468911129055792670616903117256480687636929085811249438264818917148573625453331396440630880080388762257008438428120331203178619755311005327489817329637876054124604859203258168943164868501487907067787219933074535551411340885517951365220619841638818151489463850799196452174805012438552396648097743810475560712334648893989759951536153328724635070625845627928961001692106641667573650396475689723736276710470542720646200028510048363443891064537047259081917913306746735102690378943881589596938653757214674826288899110382778881537429689574807844080067746834929808148448667796725428791193487035622016960724886963914005452702848862429408695841875667682837600970375870694402701317334836197217273059565830893237476889857597400676270448942181881391204291207765802943910529045465976829039325037187277163936451168999237345364613677676986119561842072645318022658101266095770176174798698180174690119650796933610517658116878187898306985388622557157612489280257791085146058255845236933193904962996122385397162597406648922274842668424863712889003676450450851649745477638245685738547190713716701174526307177689009233043495826677770982176114541110690640972676031818340210057078459389101100495399068610653217486207789410652569725848936002266496679716804586331020813087599390521270632744731055478754191196141687932278444095973566144691452533589901295528602272773063547722377450931369926316717150493409173237233961450637421925252694583720710629307621283319600924380068023145551220751035342982596556768255025286253319518729907912145402851715540062908184894060064940963381001581002853636948683745836659149539470173486877361049569797637065688350617452338802254686633469210980894035654627224555437038215783447532375449093287768604139533821624482204728261660714403152161975723383911008467530272385202578093605542612361229739571632830193109676777898432254172337606306119509511512372976277545750662563047759712037935743604990261439524285462274251898548297400217504887321127534258437077833864252401597656118430417196038871137053675597415518800915444486910524906781302346670222786789289901461727896111377897721574864924442955626469906250987389901315902345817416938293499826710003726990170322769969628790846016448887751575490441710381216169857395600291134980010330726940055908977841017169869832594343369668771268070028154307510749291009321521635299455122372836339152063856784319886838591526893977271699769142901010960825711985843591147669755838572609809544732085984256998653664052993590278544179046106615733406196007767955052953458575912328613564693143467005461704733130082086735442077332092699655144795837850430283640988252505214873250057169819138929543831444102677995969742584198948788757207474794277894195068202691247734530936036726863640814682386571742528486565017698928038846135957233375646379432994366415601558164929751941347036279868102575782897521856469143490259529134858314391734365219911197918823402571973330498020818436591850476408093869249540301745438757651825564380998266610039216641222157378576703940065830468025431293158821196429055737493255912112343172708371732497977405933578617589190028457952315248222365731881908652883061955825264065584105503859764394213745449497347378983250780221171656278569589472837253025871364576723415942274696627937282807579083222629882520294734627522837607238468624493574466558805650873813546004402303690060846027712498416157252619629049631361676221147613684720076399401134462620043593127027292531958309525611992940225266987222404944272454508365280024141924315600089174880843177758915663382384410910202786430439137390586424104687891687717860221437809266050256443640236530313844478893314892667761033355435761728473786950385355695911059194525593997799047970761871582135341697291933859027390985933972630913561985575233999113789607983143041039381251881684523440104495059079071907185164741146258379216646563873882548077401722773804077773402215324536045916389444647386178768489454625168173278265680969531197191509280253020344660910086682677647812824829585825692723695094580548022850122292329053506371715199129210939857404206205151103809239456949274752281552080495816001853827009060838819372815118270373105650025450036200980671842933722664792061167964776648027316641008625874560342071423019951786638786377056039835878246603341726793701354852193555615773637333440087858854480294056869948615239498148846381362745584729214097856788324825816037537396814189236427743874091581928326462629947837709229629428463982302245747125407719193212762845292246934504199055256170065408320638873147294142885660889989283385505326828433082982699151768438563489177233117084276876842309061553431825687466639477057934134246449911257426617020262844400391814985850588535204045583434525147799723803170385244979104344790407933145998888939243210462021110013823011474484207298288411714036050085707011697054224036140803942626156661110037688330365908522258192881090633634972293547871113122903861858896476955028632452547988933810664834596357563565487409578845501239383836802311942204493767841957892506659327270093617870645851478821579990155677093275501290825685061243348336933873578012499743021170414239017171080077576790872716980423881371960416383947270379004141453385780662712897244537400469208718716693445625410546715840348389538700403761279921343974886206055856133404246662629039854224531791671100935425886917190957408404960460304852219608377843603883611939279063974209634410075460464898700026219482526884787625128762302847666495481103150818922975543843154577502665364350313842190674632103829083307485319431222633329675087505391807474802970445967403324226165397815831351927049504507623501089199267328977189903631355881674481064147248190907770476572411068791930378757405164633604200200853622182871250416613754851261509136986606699760065938879575688342862216046840481135900693710434699340759253695536277547532186780582214627119207316991450005959843733028000852097552454066988360237643211073902909050552292148866891925228783705574455413701464683169858682097551930058837393601767042756637733679146493674610465243086499693128642905334868698046863085220770156931793092361410418850942945783546169940241514794862948445114792381459004940405117428883472730893628273111026839905056582166222165627785148493263613591071914529891726032393138855034022305867084690976161419301106735075810599221726331572585366432378481679282876907344688562533647945853508281902136536900693270153943506623330252517516877649381307120800586407935551828634151860823069525428683097335564214614472533400587618299622083549485728621385300328377533603584775376022175536782151588240555007692378926218198548343096873672054773034656110394303242373763921399822247213677418270005163277475199262368454444581981391714695511420024188132593437845891447643816287015753518911616327619142375661273262838932876779839686183698425520826425044644136162122346652641793782373089950483908378174361596950517735315188442567228099928569557277766070943953597897771877750040359476296445674764974825841719971703072113698595679963496834529085465212370684791628105144871503060408577023336723653503130571704399867163920375431878322669419801576307665645605160939814627113997711572284012138150274736388735683585287334563462457447772285950514031405314441418674308875143505238531701225661605266801321372327103681364094942493181240317652654154498856909953588394159089516809607373998458990742797365084851331783465034996708287357233880163657971161949882096298513885313956602073886856874429760519700002976481559391909188567047029223457746820358925593868917104087483121004962370457593639799430055513781110094298591946541096095618938796273740181047299917507800795339711837242624845884328950510494710000562402841924295292997550061576299403358023716526766430543574478065833040049038216084507882082397830447162574957443069685199237767044172492724097377080068991831986972539026926191181646301745740850764503150523537012025474448021378536580294545973088033539696951432416524044370002420252228727943743656127799647676607291332288923319636820062102417887477608359411247757191399363096434578360382288262241100198593096354113883639257607678090351309911076032368575781823223598800261634563586250881508881325645250416192066176760283120785245947271134876828112686282649352362078003130438982022336102846704904876526053242691460160684587009262103248821245514203266643106092563506559389918447750480503224667191380296493607475680130020086221669815172791218838636835810725285338973058399433267654132022929095185759723180363579451342863453056799082048777103572103639813618547402502787495568390908947625307843772142599237152938538740103123018725118935054883654684870523494964923733617869646944808832060926332712976245841038384180104150850185260264030681090024906575027431590055353207513114455614372029106504445014304550158260819869152213762203185493586418632461297602695433509467165128459125313994775669033239186251163931167825924321825069805261348775977724679357361092084618915218642322896205478823491734528999501178981612273962843355591750152951967186141373278244673128568590372748537492508927393056501236367120742992781448175749451387481148520956819333608081385734717303785069461587605357247466003539989913818143939486975419607914758827775619221793013836766458177075451840478698636879046148414081683260212012279455951394753476635928704330676559171480083116653816834117082626239897563835250479437052725528289596207482250310402793433326871885705723911359517529076977193280960549324161998028099336783002257926102361608289825042760269005194742784316695778619089213961137355011910808549280646481599314561183361671223389829857835508888696361415196470456870869972645738780106791492111372617386903160364346955578767932111667095817788669535496190575065817620643543133275115455022573196092141363268328863322784232943387096150297248032438792014662903788281845847057026297787480879857896143026715702011926615931491473335414578934590042475825295087638398576409252591978453073021770451280251738387237729910228745078567589154365460310338059502064037906473914390926987553377065110492848889239955146759534985324739274045152672167566099539700380064945679665662611409922129760491619999652488380248856967839352653590771303075794516803871134707112401552185661456094786948694590350570177669447350646410293586326200993599256455033008063138908162126732919820080505502348227303603160905672453915720680593158748156153686238861768330627957961409060765342006890062281159480240044326668235397046574354811686840239009370444658144513685644219355357052877589370091281547554778232830491123924735783713652472021894096412878142165448994915500827234707284597161575813988278109799871769344879744636579872430532818093040177949536989612006173420109167262481146241790228795317377835619779524119958288550414051845857896372947239260886300025860930739496951010133134401111938221174762053578560902459812744406596161958820983688504998795384208450782811542965642814391510523278093704165310278754768922971707468257849765174942337843260625725075510035618392229635473469682088442290324171776112573591271155305171398283023909123702149842469924572658213754788781501923626406412059022064987726987082531215169764129768909796990233761193205350435409065398472399783464622239794438815194376592658880648186634259757432692426904997218826593009936948209146411627341823437857886146409877256696130362893298028883248141362842796874601578735483416600761271465496973964308671790070848059774789591749517742970681428926626005109100928428940359136181425849748118586662374527647251932762774148046201149552893937239427731661470261509484776153596116729569877626798289046939201346071613392643232308351472949407601474762041097928251279832559455695358665392063055524982580190611060780606837297455031253716854471954732777228033012552569769170581554199479964462905009704193679835501215867435390379986945935744954426463448406754363577626649334082266810034089975356012039309781917571518157069311216334574802948882493786086750130986634423389719190983510394678463323812505168104150801029763437963646406014412657638998846484399407323371626447457225515332132902576318431781686087372174266450760374858147893807777865740242552145678718611649443661340091239434630842853614841017249251732527438415135268509391801693568710524306699643788172525762928657125333736426860737052838327360926852546964723469709399823833656038913360240767174937034123643367847923165037217770982574942401718274290795985510906960720890942417328994501945416658712120740011266226010871885135718382457412139000386824626844085566744169468651188207493885630434606835347446655558368029720286946374872849845160057580603882562087419731351662201677729141268059647740680969098308120596613884105326758807945759759524568162126345685695786175402751606427604861210869809669656010477080661671757653183976255527742851860640856419791836087981379315999028784479029778687538030761622087096994902975360632221350422131461552962346931455638211910012019509531886859729167709025988582886830161541530902207216610291744687084290283510940738978835131758189048522411127244265019681300846611128450366243031608767850505860347079304564657791024136867193543238510010086782422402169955227393213965326399765912165459297597935650485523064637475917791897508642828246298953259976519487166756021336665110923144721699222685616445604711780447779261137479726959725300982659681581833129550715246802138963136781839078393290016481045235322361078599554063780647036907059470165219218139466201803586275066916474058250405534240097485515792052634353908806699855493201500971295171365315101518215942543295986405182785450171468043462773264106754771486112961908986103519456218791662794009455476383511463456973420314408385333211504877934821521384996873078286050310284755576633819586878490272789244250627904465226320406425994811626279895419932715288786593016373323419366942857291112606328128013814145020877213321589045663311506295707859192263444725539182523726744868941682748758321209201101489313619337593235423353359767762023806947031566688675602299688528042694435300736833167735668374558033578390555627422729252030500162775611610336055746099881732600379761531457024040500805952084498687105686935311362092150046466139174183896803894770974794469200336087794246920186880609389071622148076551856663655723032660591860389347502818166443181672601163437579410999505695034679463392784112380303159102383633502242946003753096561291568875157270274733106330445671594119738536799589448076099297186185606638259310433303376132144797266230926457219632791063215889117525413913720909168899369892846714720372995987691089444330754376593424281675472092121423337527799029115545174206943415031346145471264492115328464581752415475433999749860866354223632298384445085266500960479282572398548603038093414266815962957082030405913622058648490827240092535536819473841683109247941518325796001014131582646689878005132673512378363324188188793015926182793969287698086292374120550227864315611858853458860455719002448530539816175195798099461197652021054047721931562678749721384552897624340717518352705689400713961433481805156905343405645760333092035943614159756937820873919625061561820024264386209163935658814149110142220100658999805286688219187244618114038097811745729417345733279211255126494000227685757329262810553150751594266483775680125879554984495748764859716516627679502581289545654635509921413495367839675309201764440802394445038344663175500477390072620494375035959609074733954513383101478195606780282923019792551751044249649606342425225825948331252062876399180950955498785010379186912644552249829887502547607978492332500751312887626288320541769660964331372173892208682054173553054509166153414543725345882992597912869557749408084792528357898960022206831490093101587285282893678516520331394629663965948229865583800099105245883938686188654278916543563262653479483243779196659024186773132195546531867750594470431990929802282066223329280044684886436326550012020628186312193269624761275606579081517979173639801001048803777921263326112766897660185694108021938932999523691033479129162093695986581090195211253125461737734580556673546234742198074740159056363340453595114942320014391563827908569068398542940987579626135658437987835860477700510136537483849600666927562114075098422249126762706447605377474964811581486544946966556225735441231958856087385370215591370392433254898150520805239335396707413428937856874882349641110108851888265470781795182402908571449196270012562991727272529182876364515858973328408610625834350654035501562983110113999914320607235376627882130669118962595861311498393336051258616935826427714180474330823889844764838001510410951782581029625964691085845796865631341389326264726612125714292769935861281432405622699941698555917654871340164112625810074734419336286095218796520913360623598934906524936144997042229663069656610312251786106429943575787514964798468911241489478756177344336287952535705543308023083229501097798067715545145901012247072427303530688630652903048398611364218184407903754202874898760471501964565358389665134629951571319488235479768179243279185789636973814284103461077019456286069856137260450575734927213606438780698900096088639142020716136708999620331610286792820530294772875438546174092230046234164974905316254695554308703941589233010391976803384550499484885981996777438462704756358969998701016065652656504733379282977183778150949794946331350093470215814942892353240494829428992180529164931157268539621383416575542428904631825040275752483519550887683556890119228455011748475126550479488687027595910083003138309508315138331586996691151158916539729926044857245903491802744578819890451821312316402110414359199344906363178229965474402611806483143613036483636961590108111962477213051523860571473197494031256828006456779892791599984915178586814495569426430484100044628557840262275467151142785681537938247459987492479393593651859980058687665794699120402287446069855854524377007551620966778922708918120612172236485865582555796652750130415112689235886721774453558513422564066455906862247743977752101405765026664511519704793753655984235032685195517523240583803649508849353532299059309893073256296726639389931949764605336977801021070910497161167171655613107553497540311850440116925966364049556175253859612980535684833719417396150535025753476337655269245649702225935063426648157209317306499966680693412300565097808890858262027677086754130252043746294545912519600334139597623230636714560209525041502741889910018149838299186430861703235160328384299376566129517249353212247883774819615967197949746711459048202620800900242210463405448795237609608360522271449095391866471493010071907319059038622731673575866236805864957384872759029398816936857416652329384370638076083221017961822264125333727907425318495294591662178932549406193468914851285178287710081528658390915975824179421144217199287715531569952684925466762535091916671143316546021311216200010444915209052448302560798033762399465104302544555222975089155655276510974583643119074775290917069656966608278408980027976495499052315834976745566504677930397308605961041863738430112527802828869340928154583547709686266542050184062145583110529333761759164400666112672445173097279736386111965881000553583435420535717760969206975157254271855582058084867052684082231638022023665110759346582570671644476463033305523866184769659476757848826386941323824977852474775272133729607621249442574147040953163723403037344108883687978937623204872254897728068226161094052042743324142927926695424006855997494187282913396949941137049531871717594440257273258359785256463401073705737831198990041296099325691382771973141116688396410978430421701009047666727406878144028758092608510545740064460464749683669813742415912314837539132410997339576064967871490590889835458133285587940192932025559444769299580987744457927126798073703086796813723722089177290096857281208992304655993520313449447643078650184807772896319498271397118901327599092572641152494944454217785028418045145894901264426429632103118103157649996538012042350180975769113419840307669469183444136658460973239306485176429247545894322162272262999695300885074064291290417867632666650642181432746560936420869506205517441524862452416428057080073818484669927982059875328813063603680968594249144474385819493735975757386668728155493190028183555427097803186383849871120676561660191066633803050506141874577464330645316536509403888881241023207185642011692108119962991862356616752828592393664511796756630742734177117790326194598496113578721798983090341244503934792125636152235345945636157693914007885928486904975486499212775885673860238240548088360214481040746042059755873257898733569024403747254750429589516366064572851275592094407016243867414132996534639579361981792941160442706207773162406003346640905675424570669440485887733745985719044819174295033418503544933203797451720519240290052794465815570363394230033426978519478162313687639776507124060233604134930626069682727848335022190094397875658814822800579865091343147773565052803045591879992434203281872431006457203148829077169387450428510628905922821580920972652533186673795024977762245692040818999014569562531485107068835140240857635766887814572407646405286594140302171244821390529556024373776103601920059039070184839693826941534303290096342299040785157984914380974317104884498352154504181870249728101627582415667139240483918757284470507945080570083897131665368218350699382344822582925992738037111902454402256629789731387274995209154073091387373424428394253340749044551620686220244214807198991535561018178036487470416138117592095409489012897369272716025407395704621048004418247633088587317861446758289779066331463694070351893186815215757045175197572844779106715206154767490804351842888352620748161509654033776012329189272153958994868273655523557119596276053461225541370919908897821918641009741297415877845282914547972576955412170621122623853040681603859618316305240888013847716601334909889547234270956048257477933606000584655575843431324307701514907295168781963589015832337737051521382685416241793398633874493203281262487716361274791070796850152191040083645060659735255487787922733325883610982355623765466408703167803702285835593332795229588446257101349256155055578216925002543160419611875197069198821269936488218711777712782039794690565306478350513294285018194747515463325149739369096209800453859412264389253479694531811530471235878097539045726407521965517650149531194087249260391852459663306729396058382576768523469770005395717418820955210850759555469258489197259880473946623767961783037236308253612845113765549261642154306822398713808322725137721901828824089761968900951951429825353969709209696618523433178406533273960358150463745308409998035622327519230644693484413598408721033884334040054463614389134039400456172456712199410892804367741495284689634895772462844514885708798877710670073395441546935232785511347251728330812491334506042120087357142379297452504544817149428860064477482667107664156216299383675123086409048938995606690444484544310585836745886424292465267355212619391672765564634710834034196356522736040737740878484430507364448015096294799683804768096307734447316980170768279870158594541495093165776303542158533656406126443339491745360325563316595245112961692767333360160436555308756229865998399154575593639307029464617999239861579070392983669688321015317818931325738770433322469945568836319518372341906292807944207673914913812932472983212908615021023897467079341058904419965336853415423533677282287661167126012295182187494354548329076244290355425773510466649166215402368254596216836943501982708189695730471925787363883316640871605735244110096608464617781005669969053549172354278188864195328504370556640253313557773729469335704960444150390921603916744220574954971563572711333123894936628228774712143399714901477041491596522288636997056333732560460101349451142255010552808482174697354813337939807319953675244339365776497206123189383114246394126241993244148770471354506104887186598625553856124711260699704207490307895371943702754410985016494693713698775809049942516393743062694845918847955844566336021080984145788933382403903947799307592822812038273830265446027791596668201903951557718485952094923294609324872535360471337533577766979431025962680582645153960154893314036776094654072526550555388615900236926512802160283728432590552281821075487125913383189562055782087485346160584748320245848701017744777264162618418001701182436396369445683842494547650995491625140769460800065073766598287128000667112059832424801474079970788590322737699733748777836277524578880532874033252955035630065177539481177147573493744974196167468563702639718283777520741581427984574080138810777397207254879224035940336621870366873778666983442285239095241475120793107179984189005188769681140510066448680611194414888509646876536702602138125594690749605463981829503560154550263304245921063598574304180494790399378471138618335031297097086541200094590793962248897285246204860563501175019837206957736940422010230011138030554446773600242575206529049952926287240854842547815613491225402949003621705604871186302811318907526422136888059819073106188535486774500873562742571180928256746286328458206449901142014245729336585923463719302899305122419660774601075847100788423359054340178817712404579294638829161907453429484023118407213512274928794668880002201016283682593682089843268737893042052548300513715203500538339071743727049632994598494574591638595897741805463263456567548268616136519564567255400039514713339485542196892643656027602859353048944552814346404436638410634086757204245383615648868567908418556314554118484352682174153772723287581811341007747046501870968372775632829175466439271665279203554534480262286746570017507726652119906673837526250466200098828723264250342953771098146566750047792346418012396390417192360540074141167884851499568828622627896037805050724767926792270890580296264834986159391525570440271426313193259803794551024511399274465008864177311457755393125656780015252958341227628408074956654623308115085817221644917797940403110574466319750688879070152129488267611224373129070003541344698959521857351919354911324601723302733708101787946595217261689777546025888699232519378108013334293300723604562841663628041485711517435270871993381773206769355172486815566005205321922453079135128662259659566926697481465119012523077624110254734644996654159160853870118535083815896834414638994138019222184035542609805469329559828128589897889036310261123886529269179493446121338612665570964890104190125526262036375746910593312908224420219302325854575106897018290622789859940205142137034599557281873814838375941375008513516995661175334007581269719869879365548311954136662428884549080243722654767937761599015689336894836025385657009033711632590026180232564122099712409087860187292007297162046282815694233517584221394570153117687650459344244932795239565324613235692228071761353454401771992004458940827307043597206890444270827053312939695987904157372439060103091716670573817703278658153989922759037682488544128872818615992362656206525969988325828631533171202530178296263996211848701032642868685854622207008405673178124696733321671691960717608942965198371929744837727726448363802836219125981638584789749656562697985610222769287616535994697196559492048758157755116039043014064862462035302026224666782298033677824004601066255763827633278010063426489609546379639385957079988466896798475350930965744893443050689669553784708298353521521909884940672017490453066925510331580052361096125738841988350170195518391942079237516177174921730118562326798873573008556432862627816491822916919959039339360837155609178833330726517622135197496964656742324706876119794021731385051921870896393149491211750436507278142448669555147153914549149991146999738805035843973413947000548871578920721762721619539529470674818132032301236462099669317163637022333449544266429016419668434352445204078370345362903043016130132613449226054177722115486674163704617264111770631697471002582855866436226270103810083176922046180093797825809076684314010658254970449371014639988561361171507590021076489267342680844060838006667960515311642787116563550197617194757078042433279888138338965041215064497420846882641944443497193311404134265380217447352519116454148446860067557305255703530927622699275248518793131565263545255599812140327541625521281713443031396569037652659211960959511643425762245305115481399637827304481352404743264245771026444789044134737272706154022856654131983174441378950468419820105857114444652719077471923798144937557788088631033119477676512496472426395676309675442088062541095260019144863878492880628233794432852672685283196889326235424464271046620175389026452993382606511312486403501218437735484065121403688317119945016707549394480910845565293597363375846574500117714545968859258389748545952439632548528360617745627132661182073799736724924803083223888523888126528601861380419966840257103914066021438481712899416171908049322763478348705146765707113560622621158259214316302865887446528063075474458392046341987883051834452416428392828906044554875645979795995739186723205886673698265116754806913366689940879923554614613280572028444054202758264599523822946567804752484461949756484597357913755800039089888171375329519306177096322931203184186869216187444031054404485913496219967207289328311588024121330344632073277039112385742281947899715807610823106993727770451344137968669268507962236822787511132428349516521717846714543705711401507556124777493200245338681182450182403043378122761787991876650973205747653757678329648351807944545414774600992128592589428675666563749275628824142488558287710438503647896394320498695638807379803529916797047912433451344340913671831257417958115244498612360307352547494151968994386649678705211034062847672665883217962056504153655559781568955321754682326261645695008281788807471293944959466802031021286881315602105020909941644618193476213044443848543419913863454423470696343082180741166077612440237712691510581086390888304254781215926235689738862482665628878169839610393082005778564587169602142549527707404236371015158118000390740841414730926439156051495883084330255789169874509697293970959641404271963849553377341020902902252244167271818248765436312496820135009681388586316583530906683146663063477919054869618549538231023054240501394988163627084401562346576791792981863509277485569947785411544439532416597781373043854537019261324597420545469061712477261565294011958257463539020290106854870855703870852670645768626096768607984777620949654242871914565553964743211543058901571773072105565117525357434355779981390154341071750132194576059783912351248052270139588973514147549887631084225516380223779445897189853177639553082339916469348780669757728177582185810035609903034056617400113088470627588221991177577927329275903417090121545104344325495262682923270814079613435580557590501024112816757173887148904705351988780972617438823135562272258113289108058483864935586244861302860244467067667893441373665378442764820456048056073745578176121546083329202363114545243649384156465707445099792965462611538984790512857383599885481620702576162524964668460167423458739962587991306480836583215630302152919087226510871104422408063329066204790295379102646639388552135247430955327349319306125157510490205310771585167446842261369996986211443064093934332208373777636699963017321437438840650097374379509362457488627414547283475437253035270234923587436292826639023043938309919577969924401780933996559362495579849759838745799924601451622685364249576210800875711418672539154751812493343201420040049070231696010902207066840815139210601172754304884512064890958519381004882477479170696091230490509230834083628925835171607040799954515797760880754345397510590358729650070715057015273973195925354724815001352220895162106320468095807433543817279529771946056005398273475042109411971909044174173357787048536729752218876937274195845436777621023998974812670166994793414839062656835170686149100383073331111766790738104221864756441776837155137897590766549880031308477974466827622141675898452924075536625544577732895415346385991652434882330190431113368005885023278180160532942388022527756778862951441235172628387087414086263136311816815466391128851831769271565298666403907884071597978092888523422397466833900263467702481853005526811531689431452401025239362807438933595682439872306668075050779600340356767697311934174917077524945063635351597542742036206422766997985585490843043625456971961054194106348818626333338349934270137549055755051526201143740759517158608780478612633284929982328613326115726856472196202096731013895827794668502267733167286032576223293740967896836000753522483420312750921944608725908366902439056623585735801875661491916477206119846216320381270146257649165936081680179667830970573513779305154960681051079092672570550167618226058187409423085017712493406752308001606741491466737552461217864872323399123463306143304146929536418078723024191656990350106861790986128353179943100409161181955586987083563849051863883881419365192003801123653289771019819378710425928623083077173541798507254212028424745522219848308877034198763089988097683279068404491399278439001077357837424135663294066312013735066043876569445949499207988393353029864393964219307582425560764195956599274023918848503864725760472809554093694610762865218232913761441995454956832115198701287903334655792382153850487805549419547585922127605569433498152111734463982093981388187552862485366536154484625842232211303838438223087925972726509477268528120157524946435299075457063327722013911898903987240670609154917826010649668128440577888911320388947616005475030967861320113452104004425050750924342094743637501906589361297778815170931622888728559596900611682945055868445429659701157124809611757270535300482218024902057025495880179253774115864921392409732074430907149531249077519788825939465796152247121875062285445123896967262359778784225471024502136928785919895459181253635335486021864464861251982491153488699576115149373064934843713794369752648505407111197540842355465733253273501455808092314802586172588748259830463850128207113193695817556297891312062227139367625147926900730944634758672340235150923508186778699149866051410212288495037382426292695010703592814472943128465027986723614970235482868002157478364894885125804143117652986684036979058556136444020409136515223017206444093605355479163832092889453758487856559736495300816660681156386275247614639910131813477468552563251675708139778344698819462605351794759153631666871948547289628678345677751653623999309700711105502290708690795511715692507990404976902659236562204983820350087330185519840359113212576617229955521737531804771540502482399578196053731388536507273181561006608898731432698814163815436841615916732975608182033549877424047919610176509624205727005998654477325475629488242885322912683892793664106512779677763183855359448583343523034424521664435171867200611766297336216676684216310733671673608460331978043207902257110514259753077452249197727397562412378534149628069998379750012573117153814800722033917775035503442121745448655396619605457080175351312453932651024647990032113985351881698864004293697228258032820039823030632176619976728262405352115942573302312796604167266744189086626757550792841136401496673188379818122469378654663531285264208994023046628162363488968723860824226317631231782953050407006269279927418427732966383583648361858150059218527860989182551490184271323269866418470804090244247309586135590000741769419812248882189845420751249675850686573323131407133253628940437844157300490762497879681560249903525634757632628942012960390240277067660023656413502750355210085164942596754867404475415911848510636037919752368885372928452162845040619635226004198360918931151151372534413839600884721122934523565528687199541535448020620701156126036151178144050822228754100665289078642374835108138311664746305709858163776680431993113540969632878590373503331144527583428171337134167514791506522646418067370888348210282916493079160503594738922401137349662956487438192034773523190926923589784804919330447189869783071930742345641323101823722937143963813560317766296701355574562888437899785038431607817805300906440250412584956359844202982250559436466444050592669313807979527775970458428710317474726763017330447437552805894049558884416154024927660024936295571500004018829655819493987340489848148877731585011942530564618416774829743752604840574332760078193124394471042952175477225623528194323090182725542844467996201117482240769461619481217880282715088001105103704280265787892454515249563241955890953434019852807400556990843679295773634120497309874942656166215254141250982153473650203523464098122218222637074368987117226678740495474742415541927831524434549374314403840921896964820904093097073531550850040070026038625835559570505673664438616685264412539047297443688805310046262144365941573388079895824119782325230781644215977296660743323489492634184013965216383997256261309765317086955346837974320892057363488765918124977720746755115451109602865808545012316492873414610783786539463294774214423396318916387264291390488047877200134262600483558039043902252880081904591238858704606835582351312576051168445406171565998496129067747692410841902641485551752255867505119119055983180531814582497564155186402305562418262493933868073700486721053752494747233006247171590466417426406381360222969856803231484646500143758556530487822074582115388938467571018915472286630571698288278774548665582098581489819145638620321417332932506534697224310241166141128346630449093460929944970876201018130096207840956414716863682129497203405095254640733858773421719036955904894869337386126965341234939939176201795216074612113722312107582343590689511154702884454508147902761248053212575925243100199444276035831398850975895857509881351749866536622619150319992224372821432822965580452995231156243325369501013932961344283528427688119010126397687558535388166413412046071046455142091122628534271505803540805472099983890988626613519168561344603054806697790167963326716621255747685841806078125577514832855875177157337532345423237453091197899200928416822987200995073500991335219271281770873935052981263631911022389987825098269091343702778997463623008044462322854121158880164118573567677927890905450710412870876983786902481915506963341422071313444183777399696155069064843875449925672762452103969760199556971372176642075084995673672488263107058583836313756474987543902576212928177901523964367737161513246189044116101020654101197284370725558269980105249195801147213008146721808741413156326156719129786097663972671237924971758140899985142801578423541623962199712989217225281967782599825237498187213294758320433667980897639830372579609622514115166141987145813456091191967667057748304762805347725696348199675630850415019052171830915610090564294237746116154548428639472799801430404701273893309370829846307482086950969108244894735715253142975926392828241424301594120584042343583571567245515454591582185375133732417974371515852281445086139361522064639813295641804039658488907658364724101031071264952372872854091331444436928258028643248941979562448423819074923888388026376235124395733696238656361702211061580371607606706869844516904316097855113217930973500453368789911746864491839968814929096411536469359829969881205320839214944813510252209181006703537819340952597268265548876176287180498134473560234736470145221731629841244570281177035783548288208895609102313587915018131333380897349060517280486493602115380577203278778226391814516572813444116211815398041467993438546119657916363208101367433883429529026196492225632668688396313385077792386150974724311103847766681546987074536410443649766963783316289338453809509766959430723091805978578455965186010067255028119734945840184827165450146143080289822944228286021472473083645078145542103944115618890806018352906033457262093927955231166195778617161274934509454571475292595708289768528603690945627427796979231560764454631824402739346603141638644929540760047351148925011290362756960079739497663599648789191685977111102795076140429912819861438613640658519086737908466782183000920150991296248245912071973836235455735285269027644660283836995150142518353935430880500701988205107976851588084651132353344664008139815002151030137261143612038286800686857085670284370273639157493794474085172472988334615755516434636274634322915363774979262817156706168522102242186116374154041028910482019310136630073285841840444676597542585984180454874061812695526551165943286320103468860832581156696042705818025808603005152796583895291997227944732899035399559422452504958676277188130313203771857680608640907060800540661523275857744295889067948741204645493498331396073671055613482062399665535583356698728880656274407624724075465059660166178415197968051506697472098630553613152754860958659751107550611484138538968864168825758072179864846351593369665224517804788973309420291684447916746866905275868343906235503754956792917245470463450205190105320186377502878822710679137928775416926313285839065444855186100535065173706819116761759402506546592420414694109059030083543335185782264139212751977260625212389592985079402009209345753114657389216464529010337892690617594388959987324874514516201360888637105504505476060209130291399652205421516035724792640212790053942715520444552542665566821190240258498764420405940729649607024725863497168986490764714020166235855884783240988431114710807816718661510382325678454967476245549905165041972899899424602140456903635018234944755893056129688583467574257661857478858594283013181452197720791049742681199078095219850449999066503617377229769254629487230002402174317551824933368421834539998832735123797241088666766873395397798671599156929388451682067273861950278428107360583487361987169724465131599438237468838419774441672209438426945213187149892931173333713396209384700517760793561494046670910432724169635941727096156295686697592716810797672965230565888887694942229787512540409691061516054372351356820094623054638998104903704863474036448934370676450192760393041026988055601196719952314873443816368334109832424559726077741508043468441739839083224601681952846232355755876262867064167101579759515937231141796373621864418088058216001402148243048913074721526408166456821880386675380221252626060557832522118225255779491285800073453990023495170694639832602934096158435244612727092561821547100568582995819082570146895421715527250672349641896819153084651690975500405538425489161605440477590587282320302681482963692280210389173414150373038929076974756286452690801102004673318472534902053106624814391741768848159836064160338712239051989622009752158159504008294046907239472622539683658562884970365874200864735555124272063564074970472135505354148253417936492128319238380897593783105226699384893776485695668050311778866085494596514107904562424073189084181547541931573881467300440763867374238719923918678392283927470055097543852854288517582049878653005591104496473465782533511631352402064144982797134420684816564809909062805199364651915409973019265235913419388952031851532466586266936896537167312921816224355427376035173017900856086399691298259319357898586994311018077803288353334637619343756546131325479044317731469710520411576696453821781207927720319392939091135547021804648977532430112018906825985362801745085530975602325959718567816718740918222203209910474599219031819630144644766582353109341634412338449432857904791311671740056163426390171341167538482547633332719112739107553089711494829517796535000510479171573722380083934082369586613509044979235682441632284686398484009727608064771257173287732058639533486501139872439829910175342837367071386315207248884017457118261758055907719653423769266770582414206804701070653514772594213136209650034893384578459050176202446057849447997217711008064448118441699653707820023741302143955948011929032702242164949779304472234503516108314482211829694881715044873235398090930517520773914935409532117733384775423027439679613564453323295064773328854955719537983461231990596855390739433520295276453562042717507101337294865270884564094234183005067777674138803739003005551517649190007410179799610662463206018519953959573396453218746470053615239260180917663082092433951197086840768467356495277743034954739746180712112333922958445276271920629821834481856189185797370384637428213230964119888077971068755436053680187332972895983800506116852312183732548272595807201991121128998012366136327671639592674092398145078376029384794083846043286830761642760107431139457021968259706138348377417658695228268901331892974919707326726029473553135057751920100062101219942002115633479844817116470472802294284827083526693100897289910439935309664234517439561436461991495405512255681450558268289048644518578366966154521470738525698010693529219049615391517264986236184626809697438086217664035187446161760967681008309476492534423218525582046493153224575260845875378603144359657417278704441716407705809047080408587808385317640464038902443220896331652635737145976062560760734474932944882912290669123267757637420219672859193774486179227861584544153448857096203418987441929430622195398708669885528718857580518717549416050021548991239128431506166116890222531686628967678784741904627874428971314578093128083470935021067822613197431876942358090302863712891692370992601677508511378417689169218741697923633436670433555163611277078596008590865859487776529333064053295673740948191866362948756350171308286648437048789344453712916393804468849257143957793275487164060194096213560992372336895633461826544036148469360305159449105486245281942295370835468800398330785592184623586314366343512329155794527286940823700198547583450089099740637681793149801143250827190952532357978473928587871057583318983777268950881577313986802162685076175850354947922149525654038544638309069706265398784492395384692764573128601093923456422071321530478632287016478990996595582107404501582151138289215336123563711676273991359584342447807032880792741075968824019148878070644142555127487731433408977057810233645801541698957663188758395054310030252955070624940390922458771087365568254579876320577146855111882356051043890668497643392767229959636914185589511267527849261191194722491872743261230607959812346952667309307672971732609550685705935480649851346537873190477813351505719755403484352264561044330771525969317479482116285380626063298969161988100242059896597646652398153168495580654261079724427396575833994061985532972507549532550111863002675309034803692928807552340003231870036904694514020920505749655910582550174999222540361228643225973093246594165035393082871421124863007285906804209730220218153531808768534542434041558180909957921275963228365299309378759809280224797443526612999430657498448468728889271022943912136898649914710723475699418872760816960271115091844877896754196167210236208834618812066997198987128475199171041497585403239038589136082517393495307067783129825829866775719960299558116889790881929421654317297879249966815596025218585138160559000831374399084474195037206203597173084152197967754471355103797277521591168705540311968751270091429649104919227702399160882435829590796680510290601438666214636050554979120722357361002213859571654948625516186925030429446858482017424121669280853820005164677047454850034260191522740333309427477987471780502972856882808012839665745465721195913944842188591102916304822214589751799538603857294989819279950909548064185230160294191183989838377953745054834044408261579017257254175840731275239200137464136642239590999904630961832229875255886657616814306493025478963449110373521085173930864109827665992410969144901736499986298201643055058105239162091879398730816579933257802808474649544103057294839810142479761645526652244349722023964337226213819382502919489098185841251981142948842249191420308926189872285305604122330812223499678326524248553065693618976352584723406293069709613553547598852285911667481322393166987514285214401796780737695994187728998974335385405608871260022006471187735640388942997998471516374661917857145566196481058995826314323449136016009875872675712045862529541062510205400053167817215079970546479388041987291485367165514503891600696488337597592665361469651583021898481191645162073035205716834697283507940678029449924475803690334839350085124517028165145740289163690925704471265408352857050768759145541502528275980779517325207140674274496352595199900177091451527492897662840104505751144733225589363387587773787428138127546984062930867930577517998916006571850955794954961746780055886737253915724117807247599292798833903021730011048837253098112755352362778395524259172068367612914027253017078575461691197792039294247796038708239199502480018211977553778205459323437858300080651844895511106681389152534873000350540751357296689432497623374907861202275485459038661168204166755847629037936545714018669301687227356407545111520743033653654150770773133114124016781927430707530493995236668592730904338802157188670609489907440000798249080377819068976200514299996485112718088161223596955219741021851506844883776022202667669624478885027307297392225330558534552854024331398321150181687304987063053897001215285557255158123372988030772038043304418521779324470918264268407819472875923026247930888209080356457750350007175167362219312082889353390423075758202314455479132540881927108782483735074139233364353618858256157414356490928465677951632492108714486205178997681682369292992892205461025153901798098586213942932619395106033314142372007213919068142688531871612893108325555123296483260818342996163757078998282120437750839338663177411572269395444145315041125829754317273371658564731388809720579009829713807561412875795389459830016545571031192592537512599931288177980976149891732303368893556752395413874120687093720113188889961902079113554895089163313896433472931256103809225015937475864816953792605961462479167641957774174232754346880204132984515529210185471819488652555953570252364092400851345385888168172193144861056115767712019792930769551495630536545393225088171519714137372600877622436855504755550570590428078929738793137724796694017668857668684584420342723794010127928358491702308463031755144333636507124318599130567542043646879565941050924708745623559258516524453701727893526790886926575217738319820703358780986737708769679436746808567119444573601020761222870630084483918338315034969899757532994128040205289641895520502385834482391436107167298628119534602956123333239735994897359433874981531829517631653896369789404163359360001605716864168695691071881846496194293596936164700439715292327862881604158573700097274374151832586218978154401480428779710434785350176416591291011781163213351346390326185361945140445549672247310010731291941206057399428547529892372217684257119953989624948919830125632091376075970814560014242605548464427321595918072671139517124188889665693585494857640732352963342036888309239773695317029769261694381753730791672310852394912669555926730064110589033412945934161052324014747292653394181671168739528008231709466963399909297356277095852684828841613279754340656963280364567356844225450190188824256076993905431144621745579475413585482606422082610914433593101138280238619814365123850762669505529914539553505456775811432408485557200780813704455559981346441759292492548992837574094708215447612739612683352769750371784626290275110461726585796829251558924724522811318147805942851398797923778454092838368475781109044160988345172689257828891709155236093162571212189658723364762984749230209605526166838576936822846278578722094473106505921349138968526061618383947202233570410583205981871613240990164422707275403120207758956906018509099724392757114852292787008342980847330310667257707756112438877255236968663330361812503797176372636698210181724979122182108341975309926869019189801700843575153031638504838462386077818831574983041221562655942950764885402887554999752763640061966485298584115735730587205651240928894643120536689676219785894546313606067275057697730840605433796774234114631323859008474345518772370686270836598680803343129665493771634094671109081328328204791281247137818538894420976484802994231647227474213397913888625937641092845983424802057926816899890841741940067659508623475312221711391997170027486582036588485510885068115934652284229846854435349986933539525367798966734055141686405422566434753961066787463443482234902154040325346562778041299921587743191212975070387619624790924075658136167293270757689385915017475258113519689776477350913636497964860374106841534565628517723162229343292469305458293466183811883552643903780551511547798296696046739240084942441316627741622384541529476987036764522927692330765118959281312844208219063291022460774294712148076897664418074213688577569581909764752071888979253491736365615267453876905981222209465693886045616849744996476850052011866752003335599953821481808284074182626273461949336229114834282008778062054830517188125826156501110341193328682686542110695743551217770277243385854065537732441268560617631716432596870988572656692566970433792970937703097966994080643413328322205686619676959784695006800585951598458414411268946799433143316801660706976993608590884473706965621599371983140731691751406287467965879835390430135082562319153115764620752324419264944536903173350153080102721491418596538051380514508359619443145150002735404270508772766272402579726552097502064655328171316193702497005872149954180451991234213817575161802972888892649142560364201113372988537761102287748957673477808827761620540913285591756440379923558624511517606496512226093582774589448231169488148378205053823268705008749832319343666335397323646609685597437417996387324084846603484126364082019191663737053497320063756879840506204042953442743944349824259777476837475324046059018342639899119954448937360813275508352958499763099859319789836133853598633562623173770349746842022596919985669989195320450539716217063285098391981104698585351545312875988263560861828772430398572771130659497427706258786472210299345489388251165249002262093679133083926620288485654390737113934365647780359663028882444911886290104782366342752396282451453887803246065351520858506415308739129329733220122234114411979856767785326108405702718985800501956244684663965259368209055515162270482640988796377896620181254261160220113977022870858564847612078928421279456260020296599047252897044021129974794378678284422494529714150169462282994468747540950576873785205519713929971643408510655766359230764467988163800650749501100656379089394892025323795404794828251499352284792570511051727966390429560218667900959200056199694451233054305606728732266187595085854446065681019084127534004867826686508158448116523344611688490328683834326954688216794774100756707391847970714804876226415288459896877663752179011010142526480011043846452676085056945398149974429086917186415403805675111807574208111231788196165695419866071416311438480921774679691081596099285483022954479269019771448497992173374955269541930680035641918999830102678644048228564683590102914344735342290174408595687422749902425056618588528501637025504058939695371003925762505645145041836813054633562876947637065556823891979896489745271739629354068232620652949744420938050224547503635727094166475579620880117805555452670478610722061487621174229890694418989041781525448201538268262520017844015104116393203253560239775265200623937592312341145880280894831903454668442213001211323147155137876060131273576292289146532513039059243027273370267053422063451065231065955668632549486184046631581749118222066651663819148781695990042170118995486769663521331522454263063289769213746300462184113573634286576148029252487964395002678673379736868450634514951633150093908641266410694540187961799501571848516983368757908251327828109527638070467238266749426012228384251747230845629208736827666124009481922072609175548575287644379505637154355888824549621836409373598661763345446024888263420716793180177793516217162015022125883685487457751655071875574185554186018993878332859040424866444990241454534547656524194993094681524568326749607242949160491544712702394497312463034306196736178834562562209015137175704268030127826919663555501112579852626967493594274781233357118386730271603324855140459547902464346115224088533345588506189614838148627240648469228137789881665221682648517826612726470759449527425486766363386405012344214986023296859459717083893546089851428034282899509277786142737504139180136733356816446069519766041376769607689342347039125173111986849231230595801326310697719102045038511928620502300975370797158326465124540634112207094248157200436424019466305566410367191009818921393814653320522322322747371691881208700710759650816526927568213007887750413912715904052397727024038802959223863741301111070713302252781391255229098047106687768926266541855243238739312454947897089734222130747931249788053613502142727255463576648540090148200306959954729332370485995918243270292172864705435210858936094210394209455039195427355929509820031004713598514368411414945534690597910486818765724059428058240775292731245460563675478233736212830141809867994624228879311201315648566613102337065635923698099390650186126591083655117226965238613715244129457579007749450795804273167963477793112625345911350813116418085918123222458539265816755172608978865864368684030499338240628919800989336008513891405857708548774076654901629432834113648243019130992453866289605131704829647026826344419211491152326240394139810627123219350705301196582857065080082325390344847959945159201199366811898408916450445466050915280808682551517291052937966338467667595943353375379798719944958034812293516267943673330418523643165561488008056774664153404051964844920538779107450145057721475992638308577714131435120302188213652307292357594966196947578794690452357960922756006900791418802221516188426728527671965578978348596728925597125712097711988418690069613516939688224547233375632962519193627358769497459075380066399999700715789693362633809242987452280870248264461473853704924740406203275970347038342474119529056500532893750233332034648247822719502499136351697299034125529728743206618696510413278231348011551135149208894779194607377931207113388223259900716743612700004157630056811103207028749172757479230557273903085113022636134136688107757963379852052221673154938856324517903014768939017927034869753473573624301827529668119709203242561344487786499895375743829120055080741453251420399874731531658115721942332295162636912609066737800097559577753915300230976251739302417396618333565774650458405151758710450946225176298057552274317172840018317213318873948868374767782129524221595931265596654813368367538257882203004872935119833587165214180211538457591149375442529716008350454511838912409897521136784869559774144115582746059555013442866335200882666632734202628291965998639157753616213474066038989905072274022140206131993985152271362157370064343498543816927485166339779995725726771924416825401539439119095375109825360700902313600122834894530892855242369858857586665352097154203664675032442188655182369861046301697686196914166745819438448750764078277396833539084870154532664361818567063624726936044689305799059287557424078121363840005186800013262383167622928319588176196945968257814737457498754847092636477948800127082282301481387028653064546548774865744943791419213689954926404039659256098920999811626864958304362565780631495150772024864582827095486240534500088524265430277099405053398968059365635613435865361319309276908351827136424099974652024556474167146244107969491738215047406281261850427982156711232396394254941429239856551772848717858782768575208778622367809584211475137056073371271668816684830573732037885231589203766007583420039392877080241618759149783430994212753580381740009364292482778211809002779953516157980332625770218891070799066323726609254246385531714709166790037267304600414352247123859066113072456441626719027397703373315024816392029366126071025833383676770111910413754154629782132731591523639449259151760751684474042678795213908890004421815281682307234008304021675918663325822652214814222245931372939428321783802345372281831008976830465192279598454715456082553196492706348227215230344493594556131911927024723880295793919618395506080849495459245190431328322963407055277940918937024953466380757112701703552893614168098289155748794303285400369255428955737944001902500489734991379121216512573895076344829031985472204265831383136125235822953080556287560965645588641046561883809405787904338081818311345535891440139184451764874054945386146740429600995171025445429640257107140792789501558094148606739739366128180669407875932205483584111209079783985213817944386977117923349606626112721654241280544170516782398426689171167851538787792650144088190368048159294346654007513375537116953811757215407615323620528938685458265180328544663608314259822137909080841766181709874738708355511193459644471461837821955298466567092154223751078494357989222426109964075804157202034568992637016031461191624503427480805974813226926591772756147524220813421317378904310793199796808808344728025145641032999181509438553651222739867263947312206133754372835639761585539803065135970646102662239324531520306910742204097981842049411846426030409362851322929713456060153935679600056547266227516954261872444265072864015597177625363684379881094387126774345317723228080362370881422476895767135734962976560055465240806391960035071281022818958945065896497550765847251901545748410350242740160790478612465725570419387686384309018768935509004773993731599618135741237279583705970807507437673903721866556067968431127541217943370138795945663807425602502700206675142120697953202036200886914783453271315447629085575438856582584874468817504067109188212139166598119723559629990876201516071836896218563873006409253476310300808026106765232452987679519379684289068781636372082999442394859178627186234393938870531198144291826501239891953970796400857711190837766317240807925169872302988468282820655901678250473615484788340187228174514341742182900610235807654013934746096960882823791660631612709535903946641761758072282731021215076925289002998535064660679192026974648414580437471472094196081585149859299912816755348032892139306980933707056452031574356788447801171102532546379837829295462550966779130282838392135796171799517160704233638491620888379898547817668887460991869959062915104353826204203859762801456805337270830527654311041831181929610048679486677845894321609760835660696220022674898020183424725200706691547573455269412670399863673675369718254763356028462186005682377687258066945650398446487747559965728511025616355206075713846909043429365632396720356854885774215015147770803867889748820292773312340395750837467450025266199432322363135049062912317506694956404159031619605108280847059480482033284477817635206403165069876453533058223295743418450903151536020642167485907711457108264694066377957332937698596346574449238734115827923324834246635551407861400200719231346850169123367201223470646428328779470546282456930108316238740805276314397170883447051895384257272507797048594472725815274062239551620470840733387275157731915168128833288803486420148980950048471617699242602133364502580190298772348378808194417697353185709018654800317253351177997879094214927335707862685878506224165227956177632097371962840090239438238585603597795040636023862625584462667008196985242330808328846746633179079823592952574623974174081740919840059929126212765008898110501568041839470748276534586253460550925816064439468961644284469776901347198708162174987953318936298129673327111746745807445018316292373066147516995880231299036816922912556368319809354644878283236800410585805501689769395648543117158738811081257282494869571424570271026830661530167590114113275256731242633848484786692594770329920951489332819460147764277068769622282252829685115259284215659436883907942750386432306538067461853875840261028071093306602749414258350823151025322302582613484646083172893779146288927917093242910870241087028611795293576133785850986324298984949278953364550685698191178913805655529796363812216072732761766553823892666479050451858291210667527915640111768297751549717132839321514911265446319197843420729455148042152925614523568255345024879482296681793273388496536669529837678509941361857148681335401143829265940462862637278725564702938763791858695646170673478239026039897870653597058143976245561415528798972730188364650376863764866025272913368336931186553716762555057494348293888051644520715724855942895251035328984772744488565541996349667999404215491069906794786398241671216534240904771486153719533247158272145559570524088623424135879514544593753680302246092493238333196020343640942140671158860016611492022636390672955728344663939824272092554832973728712699683732789217520138148610189874807666343030999130000784513779011223611579049871244258880388033404615035894620160377205539307882681615696047760747842512308395876180327767512251050503121425301548247536080199694660271584431494047651847757249898285322883606895284770048376146271612995425374795679015041961618195521507767517858421101559439430263492682364884579446280587419712199751902645469127076825088195120044026491875667629901783610271712189242959788357638741448630765331825498071986347069124916801202004925543892231027902353850102290875646441007081344002658009231770233498629683453256582073502792507596741563812949077454940139283093147855116099078187684115633156245679156358274071869015561133328335929721287293473516455312270016996228213391163141055508563200697580846995050289032974906493851956640242197887281512979434264529261316531818055383822218530024788169016650072348833216336576870536447726452345107620889412091818461108787419878728038144656620742900333971976669127033443318046675611769472208384002783866881614800155034377445882263367008706610939573481729855182919667048289101156969139907447559889751550138451084380206237902982193480866897932691098346276723589405654437600810564328443529504946732207670065713070496448428566488127555019167169163581412919337066260200540621535973592016033715842266334629053747840730494391124466263240335379868925203078660477430616156804255159597760259448663858646700171374050516909126156333904016282633253189028147903252038135294507116020498173725130863216598779027618774957897155485565943410863926907870082078547327585691492861955108920430562496624138360759228826826525986563676664456836047324202330681861814177839572765597829972509029450721974656330925742660728481325164967051716521242317844540919874667278636087505888347908463919295478113017849335543841179951030973799841658665312260142076840880423993701028253406046570942767644394123410368273919619034236293387250699503560237212571189355886306144500369610453146804755393970618828060858599215690278675896496872150157057711919766853444898789811778776181658414387879811266270910387468992934058913705451347870044639979714386034913202427430458134854107226996299341780189164298959545513556594988852154882571462808385881487841157470355603762870259338342178485848861866599076245157363125754901913752004167601218512626990715136706239490736285264438311730651353740923836694234980200435545067955165199997050383873885324698600804430150062335294620502651414725500525970156956325471330311251705475675840767625558255188699764581022477283656582210012608736846266898443432349097198343091110909277626775798305622929701797569212183526568068482205327857951648688434917115208217329824447048320453048706780747361774200518911997751553978938125670439429215285039780879226755411134072663670286258447528739820618732979014314347951103061647401476269593653808706329085913898984976641544153231302367736584145216352477124670287973728069279574405124201341370528070607549841327468934591811059983571836160063666774605918218247139120657610761787460640235853520066714513349439768450785667121986638977887733991362247502280993341894177354493480820008386573565004508871734871693618795162576596835612341070085014163375034888942850310991311554766519894257395844866927290935277506173912340154731956766570425824027566546344669806833337064810124225369471139485563926385031152473386567719511416819586146131683277714246423418593441468957489679144012838960722700559445672016968150653363684288807143851491828810337630980092735358420562944437249523070619682597868405471905739326370196661464421179150457292335245642435632870097187972852284907051471369943713185741504752309574967569467895203089344238201488329243014378063782129230247140019607560725891675048312096415101894613646964156799975055309726817430659467118787233689832257661638209087212152297137402667975187574338693289927827019384977659333031043856885543029662949582955754506093287779077203671880844420242138213125615837008290526306743762767062402431015001760258305014507661850476554862757395851126203011351148093292002846793688581196976433879759631127855728291693698193925568276406110210622256171594832938316943688919281981373127158787746558896507253818554163055525037201114943506580583001900472371838285843346892064664735087087897733863996173956798180235772054511235715941305918867167620898826008496267921328985590768776078121312855960109262789247943868582869707453330534564604130319837855864238336802141003147032060353713362528906910029427717247491503426543332754919470012743021968138897773423982372174205431264227662811717157859808647332145836974492245995148049481184051101870721439539971353389751864922352648232794141970433299188019009385048691985712940042957467278270801020158648205314170844921849555048700602171034468215548551649509404657328171185756553026892871752233947361339714743389513600691356754472230426917957554106845366628171716960329621547891329610250182830733794316032453968739581667790944270815241612683918988994887320138839339043528778324311175999446352976344165743782129697820486443390400311277118462759204801186144460270426998270642891642319879258201680381982746403058659930210821526182231423411826299152030094242772679228052665285528366752923080748185251669694990087550879520646475101142102657270396267353017721158643417596630349572813072272693934674537804764513378798211219031755716398350632579719337388294856804989820518748382191367575464704050073051519818078506705658604782232060180087884574451932316893081831562169422276956866844101074039141277355062794908144787869823209338474892976500009906695806368935005070953071959064358061866804744361495357969950560306956640717641631428475340510899038004912824895544113170968314897508943160591545174840653210147574211553670677376137950814174034798444740092450495535920684227398990984013871638058750753672034210491971436539411353835867791280927485116968583762224130579314154952172262903829823097662421902152874560761148706493196770842652489941800550298966391705141732204166029567777471865573771992131019870423512170415438159262924992059032336582122541249785291136906914684878384815419670438733692765811907933051580256294096438244087326448725363636181000970283740279435315454834189123007349725551443795529235455738987762211494046490628759054325569839534800673220570983379881283508978856620571871715706759684388211421909264555383752536520042393635184215836027174674774420000625011608524651317262537700687034689342810012117281044524899826609362863225343668480147551707262613855323881798936107839958825898729623137367180430771492721561721894146050977857934913849228390227670715230851321337203573113821223709419976294277673777873170257629069128334982087252049835893186674242434633665093391596289234886312697266806832837405148950861709484056793449549022632666287689319835774451521396051837536397479877533724589264051816653353807346097421453157432559302387150356188024438122346264498802928221561921676622388072460407191071126757511589520834458366294862978743985934740544373110187693869261385940885079682086310791011274469035839799535348793075777051733565553095400646128166781167199286602056272532819543266340563973506583981574075124604274899734576926569485269273112664910424920137988289951839035742828887103968353600810919681006085413638975166111731706398413049959702114719616036633880406207461960225252758565304231579098874075455851628692721334471243983674827931814853240311621561695367763313684410649095724853468252227606594789305089297970805553179656437579480144792120858987236114424346660056826904407186060389313395796040969605703357113540083164574022223640663347075099150299864919161941990124131994188136396087111445950562071471308018974926802037467911614793024134959257814821889587354360493481192429302700818533015183563747524629452526289197919169882205511698292136465739336854580413491274177536057728919885151880265714506323315354581156464450887400592507799155331748822426995008216462211849924774995596785352148012337267048764459916442524569752893254370095000289775431237549164391053504143843160069958415499201900469566239309463008845582200455168311796989010240558920700952941586272178166827390082172176545733094333273778180953309645371088794628388180392113786933831042162716000581082774301604449289273565804122996874638976355252504359525270596612607241041415364566141924056491376459041770695894993859485371549011258301499736173132931445986957372640736649888716407352867466898460829707407304236289862976978666897829852402640534105477482698291609803680631305234497435764004063821133855836676617019737656395806990770044557510523657599076279512410326995148283847389504823454845065898541216008699990525920561166673248009758544774296750994283059594889889679348482847032559567054375430275915090248854051950366138534518021159095557253671594398284359620073897009012948141770968033339399660027750819044146417442870710979236152541650960334867593185110745900383794781622955941780607132710416094450641076885440666437235449450075250554569256084466444302719856712954189900498827234030629788477077701509833411509560382937057441044984167587313177943207175107565418187002246093766840751668596845726411904373570619665312490426697639110836375343595708314163918919573901556215541583219496564519398599307040965357688120907909428614162413988840215420971905333119907722325547840211222933841624070379126671709494372873250063143519413964081571329389449652610001993271390593728893716363107299270604196320332863589130392256507146982902179692942003852577357075014693773738509048883002535362120098068163519495379508133659448797162635321682222149517237315386553990054406928633182191547807085658147061630740407527929154244179633659760272234930196567234675171698908826704036548817894082281499844646191582878673045946691386862194231456002043448486080454272739882404276384402443821373052532374694275356219761996964272785688042404665308261657582134898683010047385406623069953322361994895942063702537871731346260819417635729368997373245312747070416927017256578275232264582295410816493551579585483889219020716136852402079374082521171097870529933382225380957615213158486725853706391345937117499721252646322775126996135594535103187152132724359623533701578643916344687637066276704603510466671986321946071691339094197651997027635741598630138202607764369373642303456883988881752903888979491455844769953520820917168308514579583011746048460733133836316264986598104232968548960921375430123494875966535365853160502572674303323247802126901172666213176269941627602194899613959923407363802238254134057326968966479836416836292660970342922489326626282530152400753537848748685680971548772278739477560389905247634527491096686025891982561282618811366291707684363582512992317329888853960182649098721120913187879197125273658226394211416922587667418533786414619093742929353807568021392373330614421371681974322273472144529233701283578953119951196134710961407073682090719672355925374441332572770801179568845619891398050268393167942328902863069997318408586227493991047121470238486951595022945420417580561917145969707393688450344220086819529226449233662402616483643447061948241951344298364905797147287962434779238920562597508286427876511703479921938442586940394879619007258061233678447525824146307150117844761084993864200847748610886364751365055174523124693761547789447483916203083094695589171750264179761695438760079758907201625165783247258245457036232247474810619463744782663049336428691957432420580355736620880778377744539153798175269488425466768387716829902073984957854815214035918987517525315222264353632391366875503953645388244707022109930787617411686438457294482078164690769821845087448665286403713804905920602243846300447427434068327515981234997013864398554109947344081657060375888784878696127138766341125086957413389268557573131590729500392149626174907729516729544120843010036268579869141549856887886271725252487491240897461528520247296378456913892571012887324467127154606039586956468054024731998036712414010508805068569906229972386559538830941328989732166976805890814065496682741710831197049078790502871937215315040047020194004742072072898028853745890102752167954352912146253975103568629766845434234065088268645386260409077310588472016708693159529895741324467684151333402123073834830976929723005431309881229621041709277718307307906910786538275404285032685230053163398177810951692978072398246191243138655658808213242271302306696626861166702789347046215101433394229967226877634154697936739709774856850680107909308660290068523739230730976418848545162297900879903673327972416088269860617582104116784372919320177135097360538830038670366937291901101611385345377768294779398212733478216278448939401541156109484438363913432606834118272729751811922851932831279623488234085377184177213704268728534053411783833658383449565708342657672238560613524248436524357166935204157283173787322400231625114102370616749412399153069872403917413904660530750530667657309985360878156103885469734568340940929305370867010673186246648800320198254020729756633126045678879549759006750996450936635962563459046442878411456403982027818652369887916800159339217274521993596256138043316222619065360510636031127454043588559602894383329343239930390669939191451547992041225884504020936187659764925685495394398791819149648715208408933928286847795701339363149359294610191134376074588109590371876053758688165610170028651298687964974299022017525706459029170430481090664805307155757738403578525250711332895010674140417264724753507229511265758217877150427275270939923705352169417544858385862205330098070407156609774326819188031304627668985492629434958888943887580384639457663759004090439604953170355236348439585007078316777275934305407195007292326647509035191545787584671818110697262844391562304284846431322079055011230849860491358623724071800751777979647172172150268138417272191912388737209840971259957139609531424102382687606227373288143199665684239325677018387833431287657086950404750578398921450968480240522827037364490177579164703756897866213363557396272152380889084948779508201468565510011030355560954017843354934405341768319382101348076188164393937158682246616621151044305476840907007633437464397182317561204644842005767427019264908961931233058494640946409982776619870688609325116345035265110036739283003842209554768040175907482219698911471244834774293748314502074940642662107149009645658713328015067758128530305436654867630018546735905376497293222559373779598012804648590248305506575483996732472815616754704118742380703801033033720074788099319339011388057196279371081481052623555561920221108817769009120271161295310703682378532084422627019601479266115531893103869816480098869237058334594672755986833114641764083087427280448504105543662313817531922896248432277629050651938979435527941901440165166253855293037940257720333489434153461699930684639651915140751908651647962871739597879901017798494234929568941219462141696380275321571105045823938548146287546633080666978833381236638935718354132169606130493143466326908563862586188338604339865008204677141002846807314189236201988575106772454519577291652715407943259141231277577424462446827434033763022794693227101995255633640346133324067728695323303804385380789359061724097680860473682551068613326848036901888926138122981012694306218097317086442029327358488264762362538026001133225992065957841689519714342261132926153795392521453846055721745912318756052349270851776385954637328218343296175914000326404776857582647716805844086189607924417580913276801124897529564700167823689896798692896352201623960712720355106814721252748886350632588829917093473386775557670339733994804041712751208744674399923611170723774212023333484198907415202540709738571239095979746054755847693009502805089143867570490639510291131300727520798634461287160841154678444581650544041070473890604032395139594233289955279331288797571347182189108331034200535674414599068173000457354010738242486174055245297735635100139127273349926025682735710629572780927170639190397158378063446963608296387735387633758414859888187855811335681086679787706266317715704764212354689917847412299319948260088550096730170893438923230596157424052241604983715906948898005937089467588729626358607295519331652990989210995650197772647935395116681248058553037583482249277831435394567593257440330555853456591403764873132192900220015326860676988304074037123443045806205766341628275653986790728194365309852999395303147729506634390016340985728170274227563208884449334921909055289433709397989296939577896035765936126938194932561728091663676656928662462466035285601473119951621590348083054416450098720821604024258457646288279868942753937525040628051292772412241483921595196252473965557801584495450456920878778375656018724602266742267143655490976951391831273135934783627348760992742847495700047498776221985685873166795655684673995061285810043466391917870990298183957639406361689885804832681876757856744142156429494008021163050328921214363661248672615389238815166289931916397168569698281854139455611508588144106955650255289690632232608531718604101966507502989648148679788955132183522527748442448923083031895779805535359211501490236639076713423808641610504061663868377056415254847382238462527178844489529282045738280529339393305726130101665039083488061192083825084305947636342062863318655215160101141897535244301921555025650155291938061947221919009046309487572811555463974057360665536063281560343089572946638089528887817243395329802033817491702028824304612152325394761482913504960866723780960051072176160963754674304963170742138956158161334531072029848895105337272738573684142922632458305699497505203474103416277523774335093447690081312237775855761363013931260023266837529476347140334080199469665804144882250340663414694162800444800817724430912291393886570624827663210944940103272815194211301845534768094739331380467143298933411885428424787302826674106921556095900891291287397693012891175341960249319085477045889912093934816344013967792443618753723215537029501194206954037894042026372896231114645649248249978357981129465855659079012630374470181086814271965007593825246040288247240678481196150307801824660230509098061262291304650238467963320395848028317269649759304481989356172586298436151848356182263581526933428368074671275471110522783506511746460749276979330024311341230249094117051657422644867283417003699051370226590892809117143074852156454494851030015491570407643733873220437369937244602254805374740082413654942798672625554805999240912712084310076533463060926930080369823755576524823705124716392657056821243705216717842668070298899145714360002581115329005338824504443994031493154503870150071756700134484279733526261378732662789145343722610074966232859090055093473079108574892072876609918727437887337094624908707531644539512559080377317381458541284235169592402623398025967274984847021372383191258068374991501633313236823963482419451120061427831199695229053056970759562446197172270093908546363763195233932591351883604004859099953186292826821234421628699621466980158406554914380649742020397366842673583319888919020579842706885289012939281862255279551641710008182259875613992967888807362529117275090337658846450595228002838033442877587659598897325899478980191923256161952983653950970762584184208890373079018876317883394568253389307228067091170228622382913521099421499044892305617552509242082675505452794277525229907373364296560913588917331437078057663272733895073675721889891047819704509914353709204615971552732503803943595260524149247374241302073220375735922458638906801203775773588382544292910296041713707675244448544432722408547667236053900536292431490086447298771380344307792008945463621756835510106329303910308358533686228698108613239876952083417000057168126085003366387579397323310285609423227020029085621609071100285535305936818744241143606607919429351961086425532010386164495981309608607545975449169800415702415340527264889370348126642723308376574998013909140542161311300154288761439515692751704041926287411363536250617246454076346218621812808672150864543800880787910184228907530456011072200162005845776297813163377234342444855006878440784682041679707021454935231874203482834183900860540725411139900836694003996316633722525039601698662047079465088972241621815630836436050660141946937575251216210372668661929394560326584892033771500045033706772227739549610980235604037711733040261621854027802355536904889536899758046597863282131994956690957000065651021526742730586445464850397458881105611869247753582253203250167177086614871240485873194892859073124927044382534046857320600110627597827978384330604936641956080380952691794839425511931832920211580331293455875916899500077807533464601356238654645941240578510096487288041099329402998461530559738132307870571436158378877085856693884884262330534485143634220819925517846557588670339973530592538480815574511062648001705997608520272622637901545251563932235371043247385849496037351795961405139918077098927197001285517905025842458334834006145078844167256948595423989739046011844008947704058988353253574414388807879064801521346109536789117219733452095242110140949681720255813896690210705107472409519516099092059322792849520374418246615286917306652405751061980348571026548739988723789610836833328002019449617433087470087404371672254384618010026652893985889558399073952052314709612435408832394203162090782329733859785010672386255674414139069917359301485245295177000052574197198242543578215164908397290332249471902930254225446683040516486426891076067972432877256528123719887768776123444997433105459528999095557704824968472120941346644794244362431840918094103090412768437377370994419109577397513954672089340439063609468817573614383691353089238347454477487991918892703746840503885936387220306736754258722177193141553570829748100323048401540165137129768574306963652672241431327517916212368779354785648609695815290964020770693332620859710631012558002554965817755218082456628352134159969380748471999046803267095742142523300516758500324679249107717636470952809274228352278586125217204899839218091318316893760778338363488485791749161187289775592583535164780087724758636583398307417600889867769190431274663152872899493592732588468238427504610217389914054369201223113995851762784205746245406403501641180672002920151750451516353101362398170247310088395201686611737849819315755908654439002560680822944511165388853373699243890686840386417876512356521965678502050477714182245116347934366938652515567200679114401649309413748125511613196158017802487184358605108395201714457536155036990530019702831601209477355013480628900789371594961150984287627122084243658093266696361527642322621365850254085631633066040084196863057832456063395123715142241271142987146889707505188410386909760746196323676168757371416183051967150177297740123297863681579454606303482144852193826901719598397874116389977566023105409613386809300751548458009223457644549899344403247495521835525035024475807262869733635361753466253933209292387009221206728723872004547947186315761616803388726460524179613142969130127503026082099032245721563354396040356492883163252360152553797538225206894732456860241903009947759549757228868529034923742004198921668131870569283286053730604690217611761942100931861223729962193494984166276042623294875077018105581461856676811011156881823831204902236478120782786792613494394432825064807935039128270728699448698190623428157003387333792533866239006398286307164107853331320020436423286958061593682129541817884334112504819103701212107940050474105595362063499601387422499121772987281935563587520191253348291920995577321783748270667908408530062684404665710245987126258932448566242077385816781901901785750649568576321278196633410229626357379810988673207555123671216101267648147426664501572361126661836836207265419985341612116789429673042661412833054630241702733863891796148139481240902186245052904174789305793250876706821818393574897746532999347952454331886244985353299881650856947806828373604720785173109440565787358844656868986588827957502919925801121373923900761461998141895241790500063707510731619680748474986190290553983494709644901489145515137582559369111797054576614520975918010113048202510558371015272079220506476568693558509528990129000968810875249530881083682891579046255192242990494035471870037209216388784783551760266996209848301314640426147827011017514659153821160353721116824924081697393246071913182388109645111926832409936615353318188284902457547787357093904227441969877639475031205273093255582673245163783287096626164706486496211823739484229686483699742695475943640365065153170762290563303170004939113798902886337363123397887317869281338453655528854547701710518864154670976288857416242706232533334449977184584486911079781840110276024781117874050861463356474975162573226125050453367016897185989017532121155276160797955565103647780753870417022174898222803483139625743057024104577098071585677982954650474624271124954123721823293544126977693218116183066056985995286584681079051901634891901073613988315138419966084194568264787135016206864089805903733487264865052144020615979366928112955032852553447485537953005497328277783020645992557919440620537650892576567773965479435907370322551014297315538202707749523749191802613495905071175995876257119021030761052471996811231413797007160634207122008650896278766217122395833514715027799852155754899564410480684826446274512132443178994467765525795468278168062737171766539493689031645156922054218328973239246242124019141904177920529617719336133170129380757499099625438656484422400518402010626354886403756068312022106450922158038665059533369457253485297563537752109377039411760886397526696220777808057422422050256715671056785837296809916582925197737633386832483358055459458210671283876600820499775467839534380901036236176806653349613165462879563525932367728703708577214491694686442417428127522329985289150654548476823834334007417088159457659334274437048290779545813926234243385387659916159264291675272358299611742852769331276874345928595239975219879457996654825218823825346222289666491671464470604318817469695489878141312627836969334439664643487771500299859510221783538570468899320820188088960646973207180945572052289356682773674740075896964819984522219518221333336337842100636657748958267497850718958495594717978097647033513150106461018160789963729416029058723032568302634331858558722851242743114410134672397662365947661480125918302068130921071634615014815984009013479820030590695461489584390500625480358116728080742775369851298969821951774293214688135242791772870335457695793609094142518348877248746304573696351995700700916603381817536977722532136951381121315738695826151691958998786799656170240538745934025251869268189902028748803727180376520003800226513007851512045855436102814825185684657480260522129899481655712194808397465757232784120862660877529473185528751525500477498186830375021992505406938247675584552321843230951426868460836457483943111052584383207324059218201267612281202822663468463021506583764370126541324545221044256081679462258541672037678506058345590756755610624528319225684725660153034969625628439586732866521369100863602268406744210355733154260822005772151815803826359731857206534263637944694603117421585523446716033872998469855872130961105474467286012140016766212577625219708413748042859592172530607268047087330869813800200089183321548895129423152520819855190717916097065922447694279393301196017300890143903081399022538740179505437210334764681859797722573505555123336182702937914194644242373151725598052314023047813016898224942098252377547573949393332653121089562377033581728726550509353267214756884724680923646240706254359415404868956660146224081895673014222530713819599042757357775652373998056138859129848802520895236813982390752477169976326209801427987417341505317832351087435287024102110587911022995472111624597337752001208694696468299910043205824172904731035528710981291054997830691924706129340400889918904443463334252283530971706546230568043379462118947383672633110094717013955800042555752391341911392222013880594686871657387042253887306050928844033746590737589329943303671096452813324024251892462037604257703222243314582486984665361841568031763425423156657058887359530429460904507541476429876993932597745579225302133945040431541982109132025580302433512329968072703385362096430006778619573028873654128135648171093205763141589455430085197986415065881076921110722030158476878134491698805140315368478321796719190108945080138676557778453572254569150900766641886062929733067775611587606470727278936821457785399083794742412163700179216904932797269577937762020567470383012107205880233970676842660621802475207677603966777217730905268201303708544211460596295475252365402103280792459790188203390532068532200759679453250753317867339493768926560702047350966659948389184850581696110729951981736129182221260406326856085006835537428974640948473195888313139324951355272950963728012319313299689181770367089764370599251448780552063985427931272311647393461028480258162797379461821804164871219326371952263916558500277135322706953481536332989951380232028680806293234523362858374705522133391593614565525552324831637359847436248577469918703431036026168458335680637018122813669534364055802738972841177947536122979475547430533784354690803238956152909919728921158939395316160734583372349306530183080347955415942362737191339749956047685934815370016469012930197818982793855597007518730119558918730108857265551907672874408923017231045305866268936668775118497737288908422172830382686315230516785274675919203915787173248364315891816163346062884642458376681959908387243428848314176029597575858473094086091658615735659349891715469728447027513797228330664171695163214620193509710545522577514369711658328805117256569482437646680636260834312199150829848932446470897056675271226804735136207321355178735135623180620843947839141069645431809091946368228411939551270021015688950467393382747284423744978397640374321840119153767753648053008116357614299448966415275320114990289437620148283102545328948872673850408222859973971182437990999037690632228644841276475698177448720310453133142578680476561089939725853288465885280640225333194211345595763948007271122500291714077098847956245832445077864322397921668716586601244894698859467162809595743858275011208446427976599262266723553323848762188354824064026391217940057932704812809684040199975434902109222983097810181043026271425321515409119545587489609866519273244838962313244145553316338859757658925741445734920635161369589273132768932082196195083599487453039178995973228158919453124736723370943391483932439152660120715081721523785240843543665862495124921520022201414477923209797309201516265111658568751782254354071112360293947687401639416569301174697741490160827902893475055179912858921012137190226377774663111477739494510349419300664178145517598019705153199421535459009223462076806190821780078104052183250246460608457148079091738837383957968771382277567490255431652997455624691797334580215900975002634605895931974107032398787492398923417176740740011524611331385346892750652042156639859209153541584205196361611388421981330913712780116020934080374593769773801814926729384086102606370682809144574308961295770767751405170164358777130389998345808976697764945834563020947723457536610951505506880049191432138174588091077679939444066554773885095762180585842431844972463539580855176216384557532836964791781171963027517499679687574345449617659234913301791802887300616650622064185284261054236186930608862873318634052181162950424770307347644393833220030102682692708257632293943814551744764112576098651793090773062531394876279415896358104262422992001928168265312218841971887947583735528674424850262020177750268080197800381644774640010003514609555595309899113477335469144854340266741038913091012891165760611910710060032945784768199977772845029898351033314423965989007410689172731386175380688535744203243770783394056396069868827260440538875103594136890375710705323301117882457798675020467627089516926226215195616551959434886348622906908920031102698429260591680060008992791086129315067034014798490896399148939669572091354885255597970429637908632133109500298974180886322197110884575166014479881978430220474653608157315780360018633914771846061864193628313047638188766492968423770689660349240669424086871736662673014624195090373911244783180452583144395083475913079442126600713996650812337451844029895627916778349897237164221898341786480670111478039889557751093092364448530540523073755685193837709922163138931343890194687484221707610700344511526984926445683227500484603004380584042794021135699522936949464791666849156078801428350952019964745795201854501950242534612214268757711520016657145786424644872685022719255852223928475440084808297090365603849732306279866894752410647029192392370915000111876186691415110139971717302037989726239725553753417206893040868096397596370886280239659069273895039535687833586160319926207728904893030480694529002028880778368683226141301856804560408869124851619638938636714052281644479971685656206020754524192259887154658511563958553975075296146305562027138982557756421017582497255691367709750117351695333479899899666246183585116141937681965111383857975958020886051856111906405481622345693116092334813524599439369344416501455893982341472970347343334259328141789730060609442178404933295159305176373260494679992772528714629095725021764249322821081075411602715224685561632289682493159296696033104611878838332148742421155431390027738267345155959714605334524446918553932868623583938997537220196573012019461028978709021996597233322299412731322110265909921560006242879877672353912105487221468157473618668592070376844916514094264271929810468219110855146568049902631628571291702374602887838919625050785000355558045822704241856905247898451720784348425294459940016133890677663039336609731467500696484966667088504239768721690058134824442335616610799901854150630567772875751228554799858108310276387234420835385822052277581868635149912825068506761843091896803853486157618755637432185268751039191077867005115862440543410573397379327259696357157224796825249294973164690475914393135535742293661856657359529719902229122451135493575737672397685708059629410462575749482879024084025416480951450513388268766525408956445320016351991717684767686686033531672979989695416089635148414433527950938825507363118614287591754992982039827638830531005794504929950893392405330072550976438024046591828500763398628295316861598828972174569418274342041841266233597784076002484162587901661483964447031374937699677099845713585308985869674397591715662988313952672815964839802856235387477019233360926504256922401455510279168613281001824399746324655439661826747307708632239889912395807989507259525999359821324931287217572964077754657982382813476966813404635312748451671276482429087159418645791862584055554573084102256764089741406812710436937873739330395620738695914582227684037947040499162248747823537631209975110729266171395945957083085507646220382628975695605407368493820199965165939509555384544444499259610459513047361304241805001825283162997195714200433408490954985667021147163465597788881084003614073474095298585637120612504237976048153106120442228691710372487501413923676646705280434566397267081161853912716713977710071171749789755098738503630360100158254041784351689566102209328781920248407290531730858855942203598160085862495012719654668198329714448050973967014850022842208601924842154918867935618057742674692850642209849914353295822989061838928939896638747905927866073935877233081500531292258802536399134228601437180109498158339914995623260435440322474964635823866839082739414478957794840598599006100025085007248099928002918761550793331050672299841972507312910208312839585841536942422068832449116019862468169747980540282774724124142665513658439373806860538491947200677908571893306204950426978778404189879767729786696370335833261758920980567207481026836702782641903900375430834435887480387597261131003131523255612276037102927531537343545576946472657941015673188186950399442274288246962819261173073816625615971593799232526961657015449694384661720649906977665490666200781369666009436787984448699019378067027424268869129778939979156511998571060493191340560224131561010230223271893619414739107959126698400130864424949356513186561073938326627201023172605541419135176197770532645877578840611935686272910617457722015289417215275367952258507831381609334223131556384433962219998536653849048337785450766837073436966589962594549381287667471600381879553986150710460381341455422137908312824709025954599637765526822853227757625803051707427721700874700198749746186100634011799730666942046021942786071657159939970147456135685878185766319565456637336446586684044885818970692944883549072974258079507712211419413561044141217737609309394480269209120794562477956967429532279940447376317137216451737305011347296671817837928677906818761100524163262507566679631307672304630736096013286141080233228811689700053494356371511241822025331347625865155921095785685668949055562785791070048770994397368211169489413290480814699618095417136964964494671668141450185448699372720368900625947242255437193673904252362238418135867214068303804893317604032944923378276040675049618550152084639072124835273747000515073733512024742195873261100256551625178443897207299895994256659779439604004536621458669747089786459568273097351433098802895002543488309507559694454933533103699622159122236135928457949717638361486639314424246939750853323270964475036541202488007759797512569167436430869283794359109608874210809260485939942677380807727328637462364029511675339974885512434569949813570984143930927702189655320346401591951786948955969981228962996699451644885007147941945694034544244171728429434802761944158020760739938189337208504238701492229881305127871012742766019522873641572527762582868568392205808572838384975010707893431690413479520652495103419283367148766585424169056231420793154703970447448716915478156861308648298502987209058853291587069122574972339651196506445331147038476213096886743549460646145279708733523417823730460557129222581791756273993656283011861813837823858000219122166942542177037507371488801448734019179552530969326356685172368780683737747864244729476285215384576897833306807360936360294661538593339671083556214554406871609526148938150867778865350236140229659738712557093069388572834389924739739106336897537398433047110439438253366012055528830293699032279650829254014463413217356338787957072102207262351463439626752262817540441561699218059162776485128226856437087021999527004849782180701949863823758914839577336590245525397209237789934812052774855455219125235900497088185603626856823552410936336816337243042865600525540846684926821296764146571785483691138889309328707129921442208237063000925874601010725799544360196284248315351910150552892162894881532682863604574981634418219717015807463232282902274301744215293116886026963745019763607271560690933923519990363843826712116371000300806591434357328901579787292427149744512392655957204600856162967507419734226789273178556448409320573440690759295210387028316024174135638228844228387295405723895917401957030383281881606498397529981592525093979603900782991103375655382477178624627379332794701804888960664263450931873897554713537220335749533902269468913310862984011209458972758440064850668401976105188403222093325338350132174802125787147640659232558118597025902603528102517361543954856230821563367988848084454719281540907342296339756738101461058108002606805425098792483987947751894817374587086977687035728341248302855046355879764587719464331012975763235962446918892219977794621116609033384856647726846737627350544017727094605718264902568124943436008605979892915271125860585817909544961145474349721238107397295855416216913647034631290429873158074878668596334294100289937313292030260220694529522300192310404663381860534582672443669058040218708429241399979478481692329204414254295270002859060385645693317716392436096593309977541258926484189552816682700139404939165883855513276922814743844013046547663861350088330812901579257918882912921462504218969826897247978580519084090064861193455642936861116827555658981518648486120498586470910557783076720984462141645395557932723194198817600173232050156806933051080860526681110395054217851772016221772327660219854527604737905891945073294901379804465336419443342585666311052424508397726159945726174393651339151081326676136702569565545061261795726876768594435698403033133965613652129707115414733910030329309107421010941563303262481947794422260601074457556364510458460629610569690303227290501491597190206187587134904388685943713591687310043957291183931036344432775502410936383899385166394461338975286074021992717290368620395999256565858657968656340323103161912205994996707520980829117565501164796642282619349405050372392880995432193474621307931887769150670406154009117116869126082637561176042650027075449296339881427668850941062117240856232300331092390378853269268703281740722118722154061617404063735355795643287123689191458962279957523281797179223111796993997434229389995696687859483737542549575309163667582398905404024041786307605721584931279203458889001827019911255186563169275619799014805392842517593811869266406504614827355455767984153172928471300399519043190414134408747958031752236766533299567340664280877467934977820503462535523236512603585812040014035344787951120593482790172653491194354674710013776807683195784119688520081786074487724973094325590046118238580853653941605047327834735124484963570244036407513811949415438376601544112895379371381323930820425300304373692262226899365233570113377191019123050871607059393853208533211721954166942268745773619633568124751587953346162683917510196303983789064634746119149017266746543675310159289689896437923856101647440551107475859598624818511599990917468842767436213592563307324013940107346156602092648959354770006548636857611007314784100444027914342701278512289499586579040338722001932930126372155422285792602776303046303821910505823812739087319337658576075234517702269878943989366245186137937137633816768948064115974710652073989242964701286430196030888529897003906893037168838417552688716896754843253954451349371023851411675302236542811778637463598974959028504981961159183040455863577415524211847895698587217084277338386453364442152919673359452187507615261082375918512588169935149035562937129209458896283150431471374078003084405822814372703257557254662946610530859269543031304639033644140650484160494743992408187577882094590962978486018924138125632786627821252671113242134948490765071894088801381809358002498907788787890677308741569538624792723573923376331447013004064097332029672108152920644683206650937635862277020874369140680715661566796388746817515413795764752579007910193431422733574190512811653302158071211351324671239813239598949006300529487925658630514886168647542005410878817983529651677508767935031380090723341925928107328122463983087512764007095026290200002487242814759144290065617026650222773967375898948484594361590319983964189536766079700659925198675060081409215947542681156715021630335005430465944532400251664949276276399174702976191711312777758522600576188108786670666976361926170021102286462588647211138226847475977558068447346190029009334008110347645566565433256455871392762336759538654811923436184376332950023167576100325442419369226174104862625601248554258762813101839241407828119370409614684547479269015853344193090124984770622328414982500632970318079537576454505450345187783555165444850809096697953563694559248691114665956472886115822440802732325303090524856928533782393897128994453940651600712111113334054554278691233755246735504736803967061103688214252481650703677596255661774558182088217820894748560144626973124184067816414942452939346564168344757890914350922393520442349466397648933852871692047000461037015626327289844108785566112763030308333718519751065434145151990916585461614391793183773523026430926161068463260396649036740620862656541669522823395452584587523398539359043283375695664664675562450775677090147917261749982793615096621337984650095524397430570196878599587233441181137153128480605362109423378289251160399049198013817586103593303411713950186064990741170602985522529991313873194719203297527055039106559443669240251246323820160736074647593612934006973278292150779644712706622518525474982048807189162938248490785840610191178096560224679594178267605147819732256506553498172618532324789736642779603159936068538658033177339171551834412902864324636877105330680315125933141884110524001113882453335476427546993690868666533779724061562973135875192722045216506590157787678119132943375120020843610867552257294666336174990424924918565585803056496830775283525061414207234548639991235032674656407207151576901147253845383724328641313164775858130221367395743544799172355956274875587854867057548435125986291621515432621042052978329211272967828019765349897750497687260895142102671448087941801258623806571348623197810991001270640650273356812475015410338344916634408389754605253510709479857307339786364701783230584323459170183826756902986524205074457788852394912363956140860882876435786391916488771460756364261118219503813385615114161237702175993650056134831853015925414689529418473759800022891617084044116005876784957568058909959404588198111856596828753707424593809312948276941035196498638278625136350296707133465692762160430887353117533960629748101507423967834165694535817827421639708662237281523258049791426879170168820838075746673246302118264523547981262207958549459662447120275210533066545535708487637581303234416256095597877076593795427218786749899580432892641439784426186427722478293135601671333543637766560558594556931907756182883165752863046454999694054190854237924500300297518415982194807031092702948976424244816430697356986555185245501004237156821055914560962572847918096189717398611187337114550167719319729036488249650020342416653775860943467623108494048220949288615842666345387848401657640340171655473924405669067465952385958263647655637967949505034422104857522817925483186400905211345361493133779257082837653065163259165209136384302450653036411431643921540370700698671310981151891976059239125452582190987425147733889139213219461881235086968551141782956536460686448038361005710567860919090646381610222414817538661374243656891256709670047962052098413920031119230665531780587677580752181412604412296748453995755138517043095014496510738259760901072087986591839050637378854420784221037421724297941224417947197276193629683407910241841976168489851314434131447343381724507365712171534329010033307993074350900774003570419850961114320218977528419034379599380149144273128569425354006416177458939744526029557911004527913147108326629619562461179332916863041903169935048357095556951679566142854478545779526879481676168560691785469073039442621373592604429190895045695701451691574507845078036812195660409120904112517831723971854895567027176286580856629985821052369189518594014149490604742261917330569628193303383707591373848390047787743016862131104482574806011976002799724421384227128772533865287582797381367689510417625317054433709388977446645167286165414757549412701042187080961333572088553776122113307666394329958900521166108200288725883915018143709308030458465985548511682960620521019117265960747640262320179876776026362471694797051707438624548032412151286685412836754070841246879947778714058527844739442380990331620149956950754541859961135772950185369541413189287650303211296207762849160815738725248513042849107733629471846709852956573985130641162369753724656092280608493236211844874153589904882804603042907512784687724592186534394081027378201298602718150936643933836583671538736146265227102029327460320454330394125353218778832570469101634174120329415831403925463980877437823848701450007109913273536742544379280238200422416805861364792948527582150398205200663741510251587367297294660193230771297064472394708427119116610720063100071384930574325330509524369399832063479468632150842402515041113260244506237058217290464364850882432860080875206828541010335288769295805065024033894455001211537136046405878156601773699677526647599110470189394765187396615718273195305442628502095115569023504348105308573472238378232842770825800436204381335933485889457991041791294350632439276956275697041095922465184743419421771216493327249845010650975945324884535810589658506625677426007551390611654298390897534236985628849189483015349175059453965639140889777572922746992320778866616338909786788632431348428269862803618896777122703945389525073879603919434155634949933220950489025700949019763727205438284898912350381945834826300658149534212868961558248320222162677191106642293055851520773173160366289326201778189535616658625863889183961196547767452588407942421824489597948848914073153546695386785261031468193151234713472602340758355072794333087546438375191284827919659155874198995082906541782754892574234533405935334452654493028264559780734551456491480067287863311255949326366844263330551938367295851999082035426519446248657273718831952041836260754317806382084256411206031956053369739100697214715971785675987052194978324973218549177454524082679290217273954603811714324437977414661180469050309040545012728728805163326931828383169704451081981859598097351609547319057468847217997480025302660999786919075616426801600053866288329884654673425889002049756087010659197399599132457306708892057103337410984216089824175878013620595725774103072856384663465020404089716854487121551145088403673005777919241440021920707524338816789448484895166634497243899846887575489887125330851108116114996704138891449930591566340511988973718985365263349991663307334953526332902090818909983537582656456960651052575174503095176661451230905810257955838365016359400373675710297880413769743742567206839341861780265481696432088831267886349345998248470589022822456635165161517644117873799220760954634197478281516090160184485617570203268934650414431638941530358611213452241480608543353274062335300926742246614613087989015169510753432944422586435413834328821448571701807506248405303777396329436798492810450562834762062621615678896862922710812228097001707805510655701518307044204580858104559218952549180664744626371295087927685413082571394015967619411895817792745382748381022069468853421659094601921830889160452863866372840466094811995832725716146251535872518379411583284913762358192805678200977460512878973050933687855810300060083049646304046142615993120542206185030072491645760458837114452796821664252142337557371121293569917665430918671544437548195661910875606263838721784403685579353311184600292230288269237262296280479262321269968840127717543276482367046386901087228922772069219657144755722630628132423372190303193737533670444736718629495569843000176090152639998418417631919270744407882906567168168272618537092161322196800899197615670484135875936206851588850316824773726854848334656516457864701349870888305295147715190662678485826833239811671277068078668778175470977360562950304759593472279494868758570862303140681898199025625276156832226560772783550832338710532154292902716718425303702648309362180235840690419493736452815129778614421964546854292794804933597276038944581964197132454588924681462179209070464382986309466532516986486345931293558394700475188906911651062818551117608912312201209089736983917634606452134723310002858598570666934653484078708847763790505083721179329215212737694464465210042522505382339369065389731574829345281811365243883660578905922701111968343529078425092084111910950285050395667949867451683435550793099165598301104546352231675826748334435652974070123897225254621690228114536398913215650792710375604600363194744675599032454632997442679305937770786424189308595192880368741400051944781746764055231262967206348186739749567926649624991388532396552929709576385062844281079257044294042429730510193276251518037611581340870661142345269912848738479797948028853148136598603671165021415127772776628266929302538055553694895628915505809361488164948349920512336960086372258349119540041078659945114321883072926508498041971767570208366165943916956777130324463210128148719983291616755778017091301536530307518069161471860838254625067629824845989072869925891594700636056975905346027537039136337794933932628020402797407231453163951236513972027254043614270644934165043333913722145809942807201797096676909701427185995517832236829885117266184782504429530845300207379034448528354582040808613878812788063453664006511858300392502374327694026010547330219846724190562190583080742088587353958108862848544357187223454520914975864066927914551694148030201434369644569088920787827991817191318503016826977770900042062457892262753972506136378712995226592056287133506969865675736244553542532206669402352184624789233111998296549891250703091654747988858240898864041790137735083804200636211713228438470188998693542278754920787700111278370813919217090764835629258153406943156281717393652636003199084722967369625098418556615767528548909025419100627750473575587537134226293680758834465849211366894266312205596349755298385048175932864059883069050485914623298309795152095111088697900052443552217044303800880526211736997687594375606062194154080088446191339621875158089116547507993158704681195197597088945013418853511165694309819507409421227054670721053464627394146092259009939426103184314370307720680713441748591244883664699054251911301076993846950409777286230926421423461433221783512558807109486820756596961840196577915365180885949521973491932457114716340419710539510192210305872664519363185097782162338394544978748480969422531060123925671511854415471303524372013298239217992300899002144330641659682519151046626511099062764272933692681396926043687374675114505509439197600424853314850310353414098345720920069736842128986378647073355365668460557856926581033416012575719181502500814344234637267922406246326568629028489267559405471777627067939660779465016469084329315843285423022471353173937863839800957127483965984635691784800288241185189137791138324329412504153103368467092545531606135449178273842482442939588582765643663235782732813575840051793475783356666715174678325154709511923499952925051022030623428357269991076266038679249493411408591951678577370994596149252267214226548350272994204710963027989132390222115311332291340438147122379945888675496893340256600049271280072695346092210850262445077967121488410137965010407394415998731398962284120024316483263111131095899334586408636613078767933609239944631710255609764137965302054766305981134577720726923993308404076482900869638974084304730799882906119966784790524654340659768588301010149483837362143644701063743734086723870206469637268453237184638887904236982513125460221018157626951105629277569240612833868397624544843087488860042688308839231654121274250524481699062233827344194237952124258912335998228230255742333836694615883971831189491547440049117569785470661397716641670113567861579540608298980687910298060608163228334114414962097172028848953795919892409402359624345202074381234860069427156864304126779180969741752039374500742791572677719325511152597029677141960822442323313681405254937507195956666236059124991068222844902169589524409254120174721724120492822132976704907174761841380082217179706099575569352121598566680235417497248404994657880295966440498373708076268785243017849686595817683197795250835687635012270563869330366667460830262423524471388142470336411321218818763073438906290444793569960947429354142301082979889577429369498986360675048113882250028815047291670337924994866266440631175572047461100132337464359124341577045565622502166630867430977169143435322298831614180151929717976648869781009014634856617404578199890369598063115118522842298747860372598103383116762896608768918820766517556851350763122357277399799094420333257441651860795918414753680826695226500443526047941200823767781539225776709997090541799654869354066630091944555774902505383456144763015470632409210714759667629902710893269955326785461762675356265308187197030866996472692102219390452519867856407729553383793648340146043138554513031434380935926404916567697247639093912488564380544370329223046975091478984130188012334591640191882046609087127932356011994748042421804205722216265260615913682838246178216072823711742701358993339454735635598816857004581230648578985383331014121578955834941584624499864477365727795606135595532415702010510837824790983745892667710012144722299339937497524571228349151514949803866721577653602733380174596823907209295903158180437990869530023136573476715953929718634084063109421948931008813597277231191591250242179256360280756061983028932023461776909768420481518646873900051630351294865581122324171129835126365169130607035577309583133836052381091734750164486739366036843664387341115695445900991699505399002550014075756887888401563612370278192368506911421096173975111452814762959574298780737095739745374009074717579490300562972345173371833299541903928986121374909945271783098279017509809928048193053476288564844160318237497773177845549523047614754348422743321853948820165386695188910008317656041724054259998975766529982054633656247546246975191013660283583502691969808460944554155371496317824545207195600288536226249942884113972559761512690449767775118459802886054898279137422147077544537977292971060401545350249074972680759430935532309011716690805171823734401228355988686762124013878986327364701838680025311198837276276534507166514887701604231572185233829832813840854478444300816819487999116727626568233995012915286583589755131034382287015201594823546665640230757631459641587238883785157035669994292865766913095399014753350711437666485602331794155110521195904606189030985717825184807201308491114227944245252734287284340575882098824530151227727280934399429320029647507154170397477828037597883840036228743910338631935451864375782893763365578005582229296215602888022748249720334884249238533120242286405704846466406492828456796486415827626901486991755452524177618903235425211696962325554413534171359300823236876659731983362414700940546227399969832850800426892270818847292689899366157864732676984998688869081064778563322164423539529462678395535326275728809334476054304411031306136866276805479736938933038777257522278239295894732964903731253675716042913429108509888768522735941319379168932969219670955620081629033769591996094416671848164666799962505884412389952589429610987900240181336203675410086448603268568389035823317186408667590072633810637347804821668839533303110775953341964651546915780237619367756576912463372684739324300871175362286841438453446702194141753567563808720390121663981270227977274543158041674777544523771978772380841860258244465376646464884125925626175316326228572425893710327165564859528978620957105888786205181596707642908833248517190379732302876912283418295236347607833236158648167998055114602176001865156647657795217794069151138167134013447010425478305446913573928549720207130840775379047968180664503933070595602479370224895481066903648665639461135637358872593422450565536903353892483563900694682042770884968738318287041688788361533712544022767825935727689193901511700935594241434152259942970088046595833649505995886405169898698414028378078959118097509493555634204667378451592526037205081988859577358348514185150584347643739783163860534524852532429159391934586459136007416904848120101253393498444388733441775400511250989280743729516311900539200409792428404170182579264232750137546451555496331615318429886300417559114137617508701794662306564555268076207232582258920374546900754909015451722469664531884161164274689630057569187891278350214820943132862313936374742796385791753612297216372473960310773532170620011068366213834378273332365987866510679572942020221729361449731821042839707344778216051619394799894036497838717584624611139540735568001360451685681571562713619977182982763805949300903978745658768386610212985952409022579302922267530602481685603783879962461287849349621469166303828567744951570820825735058775563722048971931097769777316454420403839468366402925854998495430076727455015813617145459164147325570043345592560166297124173933389397853721748848401006027787196397673289085258398804343315413815619497623591632500757786164773923223567363211959197993884127850061595102914543745531141352863571291190029559743306997750910053132601075319564266245903874559719082572367699802373029682175467359591712027463974760259747008532540627185710970080902193245750380679833779685727631120514031987580534252873035895824706075329586192835355801293300219843271537071176354103218553183276423825780962959322370760976647529375138239814944940436305636147789747828430654917088968545205590683586926612164916533355241952430008901417433179214211378230318012356996360102154032116043969535177205002846588635503251899172505414197596572813163820909221280395508735074483089440376101118937174856948653517742096703976696664032690973985596582148341716773129290486942956599787587910869472300328498087813554586312650009957203763063326155190083569506433882843127900924128488381175550250740738595712504265234660853170202028220667304437799426372868806703731891483920877131771441714799398962083789386737183286305838568202808722953075205092411968567786582844291856277898148315898851712800239623589179257189840886144482410686107256477589603992419526375133991979921925104168671074039294116402678499620659463314683533935354435137377867721382672679887049990964586968103193171039527784683460929583861434077065587064370776396641373442773815003369667695048361216512219127988830507189208900362450039171845312306816174504562585884913694426559512772855448010994435520770672580811305815195487961944423213622580611323658856130278488897411396774730433522626896664197631051092156883451765427565232855076841969106796158798242828962045053712789595814008593553331912014689270776848847711927223023861399959941366168065063831807317621546529001276876802060981919286613170842884316841048506131479342462885145238685222652515640638292385152339430311904030618577986044306900595056953432592685198180677030178748756984726022779872358547039882087583696165040186058237411111262740860491916985178927941673210413222628747835182615875996069677133079486933357080096780641717553635552555634996358091353304105489995970765806398642046546590233770432050551338792646153699050226160494012533077697761535879641964704341969390685546829527003091535754677185261108744890745268532939652098533847727319063771736803485621243539259305526794280883489561305711315931117979356699789312141541150768905329531733496894758197969129855839540739474225955010654530368836907592786784683450226626286111264852088078049919206707525655612021335419673217654338687658326980485087093948201199199857090103628034339423711764683144911322177075816367350948606197191340424808233121670336676435569095663663479036683332470360387101154730797681674955128639015289311558009798521451382904836379485278724188891348823865025609100761438221983326608063965224498634573443046731817086614481184582404860362214158461817089315418046553509712359942482142763708376456255273532891098530659204533750814048991736755479877774076657078756934152143891378636698678817652261327129025893881488550589862344734138243205997357208538513454823486347883640638589844112081387042701575109407372475730000153077526757299598276943034449630903089354486721751804706065224162030125178365232013500112448435596434064948790602813727925027465134544550768139686877741223128673306518057049262883765742865496209406954133926965143283043562251344707726465875261394570944850480078230811537004672671426880100730222416292129014903985914783434930583185151684289382520095695939737571707491292602454873884252162439163046337428313361051432984857014104895086067243559519645549524555487750311764448422544179320814098215498855931823573420247442079885066287399849966606376370352077856628344915919678811249705067304384664150539928430110955076216173807007808633206711570760960424330893988309536535663243068477742109627954240202515516108912200091424609160628293882482882449481444383229349528866262571591488086692404612031263633494405415392603143040793327278319652120571518500693546861174097913934920301513458052410740921049021804139344791392434144021391072846523705776230934240705819483499049262335130807741587340571928303157183380249894468634822393592784991462756972096881282717428990963163596726203553441865175117521789143213532201923139152385589787382508484490279532882468712505821612118502357093954571252803883968018387936317142234013108320571057009478259916037608842293457298238744600097739256977091883291174121279727051905170458648241298095114295041177269491753951189863801246397714289769318430466364311740111281831400348621846212223183166719580666309501616531593244414487713577287886314654156139286621776630472016238756772849536517915921960087001014829480307607578510922582878726892909136091788655720552044526996608038863632928615183822499027806388747888677172401306981060286972005219266432395084218835908621282655962978482737406930374108599956676302738426140678306332548748366931911285442966287624726007490710011169100999111646149462843228597438191807946393784892425608728295051636473716423903735488982346888053962892869533289670740425982647187643029297568776321861569627665861022347117931652339524542702959283687609139147090959046823657609339926379278094917979436327925642799511369197620280677250421614060240025550297048493897688332867578619360330327810452657987849344999012811745689830538520895690225208783853206270437829711399859658474226285871513624869331402270724800664004952783484759896330185981520554413612395300962964542634690871439154099843769987743077736202592428432151863386650016043645266029731768216728089610582167415290050950160222869599069080628072367304810734629801193312721338600910724536782892271182949487054901242054805262895097539018069868805932962666265324542948473434532371223052423572464665251829696160427793927867439148304733592266685913797184267992441994740051998836686616293767585627560296910268998207921483068413750658707505650024823230638602198583459314838839840555674465308744429600890582293758746389841621562871177848961967041489462904524860736200109930659205284682461658165801513338865479662790696856790142232628547535583937095604493315838744181450908678033838914641764276057030371760563490777371916215817947164732338512176152637791074732040907084890464253134036725478953044022283108896855391276745622870076678536719010980366861874389482751730233611893543155155163414980460903793654338257787603943235959770037066576766688757301315080474727744579668626539962461183550362068876758433179073444669376711647974847633893556148057614521208849291559168813592264837345201279633815244571612930448146203529467045781334746411116777824146951735184541328761048297707241791926475940448687950777097990446797379732906734936771170946211078090545435527531292127311037304015907047790247295057695391462886049010017553431634140484580846459939025829187752498781839581806297087057179129440200074428182151894631273879818276405844316921180140107068301335948731682907858522707281858324969417925678844478772488347484879955725739345701767580889829359394063979384119742379362781792194165904676815763890868215618029587465354583930164593226958534330652463955780057443653211269458698840824811537196450553002302631584408508063969711368950732499375797352483255489984132522696543369241522195423066921592038237126828079354428035291337910860601687476588856727176068415088302659570926039767112831788081364531857874431386834535713452545707612815168539467941820690983123381722339987031551795837157155139404524586994700404909990148887747900046384575241698057611216720236439938907075763821862311672630831496848572615633035776247373269671311461271681888768346252944429811176879299979798521058421360395962488958910573605162958690626077573858034582505048493267455520026847619413315168897953936088328195015689621977571601356829812266548758833063352785939689442215749561478478756674293769377749839207336866334023687624186296012354088088891079015615695373706673239363911804978556618814354574544833186044156797358388645328248864067204265263586279718192010140908165487850447348094147881702099525013183813307743853795947856497697716523854182175689724604631841396155428293526162698682367265813214276435580798049328812224024613254566475865977164191392198665394463178439848723793305837365810926197799412863714327115494583870347461847662753794148287042184586622811943542650923746524333560705116375333133070613161309285966280108791768870068954688744764257659697845549552549429932244476054285682830100378873692707285716699076768366354916057500855543432310100392086591796196122193435989147653016475717257389179601423878241598809271574796373069072517395719205277704324923235052250542202042462465271489077799571113734306172354534118927345045860202701986905968036641986742678912935387935271026135874240974645769070530547686517727802170267288166162685531367032571292606742858669299183113874595830425844748948693531146747443430190569515614660368372255200514567163658953003955137669697064987640381335556337607597717917796655819809760479678915840972992550054498699699085020494870000789413357250811703801651387889757844800797244984131066072992513769233143371277082312387953828926707099753271894424524915083807707539564467242221420780931438594894491940151336213070321843133814915209634883960286774599047428291254630411133879798236223641845192925572535444929160862905217533783894731026245842438355833707329989884436259698480272656369224214642588192019144649337285138550829022682144048348334870406788102787560095409363720862732004410701035211925655804738247221648617283468018835883790775450432983317540012312224616734800829668229410093701396880568169438836487816292355482464065428640472502664540865712216336522719119125029021889323252286232777938631072716861149257448400105612070136183271016222148689661944730906890188392549182451157551296355155494494237769046756989091783368763689530044449233453699470971511605226661203946740697072282967906519251436508541163198874522263727555653974948750276996329528286134292962228853418056913335126977193985598075413719080021436502644324385499992208385721974331080004817920793074462276759134167194955160513856329484929430932468763666069959135025831552688075119050852737711866921670534913919091853851029871746664810588092427943107836154904258390884154776589441312995465626414191255802761766873756230560998157017296262219850296058687169987778363348056515948167936057230618450639479979455257904421099278574122170687422006194251261360868510634257719946670582663102918606835900992853700629637879713731783094452741699166008241651531663541408662795400376201141738751171385756468776735691615180754157105520677458523964205750716007556421930420400476449762137089637257414559449636497195721569582047009276041670228031469811175817818885941476012414953295106452704552191972073732257306688713218198071393587938084251970935637030245922295674231699125749642766439223383787129340171347121595247981792626173415495244154072466885481893329273430095469236781622648585153838987323195022731763090723078300750628988962746313303503993201722856917127756123372203886231971152875631770360097692692761982993952754838090057744886585137524055756384760829617090080793153325736834765453182817527932375949919380304219352266286111508733417496680714592358266965241700032437259110685891205978620661207874792971954173050341595012166381328394747784521234937883007368225795268238362124186678602153449302581933118083122512547353273633092365876031474489035529825261485411576174484288465050799447486010928121160178773108688474794812055421766566038811555353261834139202132751773863701643260638225612915815757167160956529865805270797270223980075306898975189146668418762890507197574182229221635866764334562241554947124251291813753365114755294687963544114445021875939101082290422610168238693844085397564808294654877209149107454615360592494606883470612038881790938028801105760672047280466754866772511363212306430093241185093100667615087530080006617821761894284030005708733123942333549573650855493279921878574562501482970864446783826126840308956459625275777293397173043173128213171845262653780214551756899781282481162072047563827134225514727398678039514023728418218818399886863950839134255833553064894095744161204429735379009575160777167774350335646717206786890896463262208681499185959766292618292101297415130470579320040968725628737810446090402058679367627566137998000634873353502059632076285271586076499819912589859713924516449057615216819170665814266098664279000791411892361370288120123993725791431759890473346094191261563006557093182080435270448602834951931396422466931739802512505062794916555623855382128997980947270792595634138773815156101837396799849284546868895608744559958985868355002842981611123703931223931995455816251970095236730662046984653372573111859183549143798212493514453531393647116191425654876646484456468334081731700264584665311749159335087392884534378089337699040550219116980591526335403273264281338865612366087142061866217918372682329941950406039879709359419611357202119396105324560615926198534323913587892074611737464673071782331943710472384107067530649913758333877341226730311116975879444609142228114540082442636760906468107565816227676790326065895127243632302502448455191130285004054330148442727440072548242943714900515329956474520795287203275064049686950701579189872147643086157346296071729017338627751744413145367422550301035626060236684409844890311818040509753968440642907596282780179018094873909898213515478053887001994840365410466664221382366456264500633072142222139791181182275006325965064726597081198773971317831510661786996089503567628625184178487857482909389625379848716398245629445713282498574628357189901014618054343272308936375563441246584375741139391001443575806861534183295816940729799727020779543490735027193596316902390559587114968014425965757097621772433753469269757696657372252709623566284601650740599488819264738528939392052076469003848070768003136878572708164596502476162349981883015556425908632732608797009715246721115299142515427813857901306176402626131395278913606461928993503629177235136092782226553521285284534967731350597460070544460367143516823136673963411874942933404116052592942526670170696184602999179038101659631191853822821813028405418928438806080354834439574354774030134042507045414453703848516309324896195386620798911610932198378055831956690886678937940313006813988579234674641686236209195332003365376126415022023253754131244241660850383342403646137060562167535864915015477615285872407529336022014911965391486604098923950200989543722965826677860152687416616328101147885469744599202076458107543329822450878719919658530376761878937937872469279880540752639173997212328881443149317852326972004596490621819300712979103902533911534715030414947700013204919073905544817726128003163353842843710823330493445470419699202115972782195152259931531192117708907256318210212840312231761523338850404216031290140589256862225991996283666230280059349435848310191038501260089074814249325901162518125375803800948449187039764799347297025486566888794669233211598616489510902724037199729607987088687057861830970629209451924650137839141169658118524112197556021513878825642525757838362642590472587098411837527155656409081780498466477238925199978911821389530641752035741846267337807392026462254268317676046079358679612099100130496565706599990897355535548339708975691326490323224769139387551518762554050892766856910932544920135663546122326886557564547098855024400224307202667977925072953841252265546926572602261344599884612293744159165676565223317938856375630671475704187129617411375208300159173208162527358653113523202964386443946344613668272439193926539759397156588596575344497747952102664679029502866934518258637292173485906799705667289424647324777858597970195769468302978263076688731185317720398777395161817386736088801508109372513463613089434018049851961631387470992631234645464499593950912678977900714650142628793551692773430981251204455544026581575844887695813174312361552436195618413972107732504843183418008462468976173236475885782449287131311763146530688092177180540786373602053719199643715791518483962172439037497335165753609254210228496585558907806383793117534087394135807882070642020562529109896001513442027917648744855072995418757789816319949947754127553481408009224021023957075829227112016866498254402340430761347560728816596684136571989734670516835325898542772703069398688495542993759519846681485178718118469370025931386610586124734172871801639210346765196191644031250793598584239293582674161448095130729975319605531566641099158204103889332253500731287844061854807587523377300477834752877144946256107283722404724374377854375855144645904942429504461789383749262444686583755954603966685960311813892511004391377701062948546553689340601659991301402896483521771932445909705130757087337165414458397270528067137321102632681905810919728979808175315931087701480938363583069369539635870014764382732550330942955594147158015769609885064522779637425489490259006600343049941552954002736735666848664324437031852035075229979456947398487040967869044335136312910573814084228118603351343448416515738311838945683172705801517113474680449757036597272251394648966277561914693393385840958437522420830145769879942487695819228651129843810428131114766978412309935809129884273574423907779313084258453117915904875357998756269255053782041843648739708085710239069990762719835377230849689477462272901518398322177990651184732823192539441046198210040818741724552177850942605390612538216002699577404082366111258712949421339547887073539755323279474596619065422484925491778541457682003830411607417830696303806847742476335367408203888329451418195600242971374971398936568965541567605697724685513896581596571982219327354204727800673581607821225068741306836504222503574441741923661193117748879590587337170235270057918213758443832108336103779640858023616103591759216762369393684246070688448817240352471466437038305404750282477228658330327468641531929819670911291118112206606865144810436350357110805093612859808465498046340693941852080048810078180068213894634155458721963988991384689462141733191785280923400751315245293724968961180444050016370510066975309392616677670744147947041443516570894863568639677852570263798250528112310947192120324520223756372294473525617480083233957780712579863223351468933125383791736047359942577420608453722656139379350996552023410284391452423030147932893980753666094067503018964363714710957744246758679037924102528019394546504053547253802495610417600675558189837293582169848406163501670276640252954067317993262040921908659803666812502974143695842248184720546797357452485790689047603274973486961726267006757652919650124116268504537611375323336112557968563141596112286415829095046342650813617441619400446634549513846681205260589400990808470446785785227169259398858143740829739314841214565957810565942664888159104321830725949280205550019861397733582528932624340122669979288759390251893499940742606441635146547705919846632355554652989594673830401105811961636707595447598050698187794641046400656250814030626059369265282262147612165947060496925080432912275296226115716648980822450848198209265721668520482752055843197078126297935223744705783569433675509271266540473517916701716511647913277754077069179313035807284746758952167078266248382138420101420737784716880926203272311278660233241966361233494606937450188702785122114060535470715626951883506841652762283362366503141375723457171313822923863547801400539032483472476426845290961708085651348887037074301943597004097853031962138540120930568902220109449481854765882229822438997169220899729375310799859798566434226089197304822422680005871704861829081526556505054171068339725786406783418475915852783160788681524143543125790202955461789835632992273137942749975769008827818007924491749850568554952243458353001655850518345831393612571621949343419941023699305173351508372397679020558162081189023083043963530081635328151970770351542585613477869188194226147969026949487831915097591997938049965063452482519869959206428734022088779960045874014553059194312843631420326190527560857493973164498315896257080248878778200303590223859096046541352085354275658596646694570623436612588996042931970884080670628534018703285130659080619136710443899077261450651844540395554788969400340507492096288543479745216701712363436572170548390450983578341223141074025440090869678376564489395236447360904440663304627813758199054877853506688527793853350856504106599521610097275389461224534379423903369387704839330800404250303709235808087618308038893614319422151762195373613431348090481415454915791262981349591691337871957252027526841489051843068292176097428257134457793417168329407633893522152781286405096454790505553361215737929616349325119143432375151738639809857937523447044167169389346542985770347930652293606271409264878294851660519159575817360632177842049816088433867266508317519217699855625438584110561539528033204903427851936303820180739428694582387651127021577842603931503699997507174797677008594126103109349285732777169211202631183905079678826976319281174820573984554032553820298102458097760299583921381980792177587734159077478112859997052357522277674374451300519406222454944895893463763606252006154707464787868191448724214862367243608272895175004497007458888885192793429162203236603828902652154226455785596596855899168307731515661262002233421111108801610532182901219865958654916636456923488500363693891553723716113039832560257440374151449269938960395008764235049337945829420016233147280016991698650057270401290390188382229106426159503001478543437291405351507123868879386167591600791249360764416547354098725289429786024991280137310409443993081259435485593200959823786606135341102061423935670374741603768256382378752571921979912960672997423070521755874495264536011525234980960576308675230740503395731732093069408849824510346236208892133891646321903639463044520678429301005452264149462964593777468339678811366006971701559334666585908811370171868386488820181558573729218543357047711653084228888000415337782073220112523004288826234694596939079851884824807692629140804756877342335174614181792271752548011955818645589677141439611242479522289661584826156571711587156198848683849782490156444849352497896816057784793088693628420291311645502682957059114852332001399699038943083515280935467742824585770309385104793393444287057679491269574107084801914305650882650013706661756533618822378644954125491903053895835929967014073861324548403287109186396606587703790910259804994971131488027529456507958420242396827140880649825724683250504826768348466520653615859270865121500542218137226552304071947458943766372253734958521696170309773801178895203616276824125894434048072167446680224140508918336983205846553678183404355416543351503274598149106004939686476669041133206863003726311493953008766959078426511497825432142763901996487337447434210215864073986020841041322365264508341981607396412822243800877353811072026029698526220105373801127390479910779516101796888326366767069913572448078638913992816045216903108729745292385295657306311404324256889635704061833176285510062006647863543165443096137393367094682682336016226637293897202817089731388674734880185075047150747410251972810668927052489428251027669650444428748775686976412770106608763564628825478674476415854011613088862187535706613370606431128590835671960425237637024849977207162277656448972360213458117892140310024633708142406573780491042657324698730983506401536456296921377780292939265442573737991908668503343624465014303312716511743999856022138270927519640947121324086781977726091592252630908212703366580215720516635400250127807385372738396305882638557825880328488410755410747597517777235610835231360900199723963033165918559342261112816212762294453117651391079479517416177952975635662608795766428595757083436891754215788065806570281034739707708650523048426956017131661268165831162676459109568329804700547890714352723534568170820780920770410324890768986053319216143138928182628998017784391336323055487214034140278727737086189298437557821595198049896195006801504651656998369566120716740235791137897859049157206142510672862941708932172445559231506388079393987579356111358407351450863447026189768627605383362747716039587971603210629957932915818092583283403314750130719666990680305854156768352788086719447291750665039720122111177133861030629230358643957803004843293128163897876947366710208290154601447930010654485907530120475845581880029903213574489761372016267530696682024642559786807858003413972087105243106903186924596102252866570763755277993918511364693076273832688424441997845842191666469438976199138645885466323448764062888284634929175361595100293784410167384425880642787027793585751298233266358663238757059236400883185338133747418866971792921380888958516397372694968136959150546845490421232614963046454088735234889941474312126137678772335260866617943407211196946704554398386229096817445926747733497257871159262880889867149255859638584542684734401741175180089879567044447350616700410693504259352613059564706501862615594013987215846402420856654431900360708588052926950236046345219799230572884428282595375243879245842976445556425227572503104694851676674076084010840394199479224903950979095352947613770708760293286484269269965776974509784958448702507628203535828222307916034338985983651129117461498714070438637422249790307863176782113990542628378578016267165894740784238864215369492077257362731949001089668185588717698014386376027667608872991851954862582645232445665028505934964143841312927881118438103024077728622601694768603298228777021854385570577177930279160062751715873458555328826766109273613239579588561380314230000671980207505805415928683195370848454595934489650741986180180723924508817694396850223413944122963961734340278338363472374267525347012293339059251701084359246104787270550552461627484747401125342835407849618571887541761263921513979880758532202970047372065379742528385156836404112258697896483680311452643803400562015376927808667244005805837222326852125166123428973549668249325361034918519050003471357939480728531005371690207477934948822341815007311765318369975980221391148892946821452737341374459675420256386580441967043956396374611713725705012228569827217812033688982641701641991682009455553856509741350483585392516156402953490794297666077157585743620276779331996984175892992634797944095479599410853235673862032205459103233644019912311925832181713798008165363559085325459041008494812200887068515887853183995359093906267220602034763437147189066983514678986474683305971033699450076331545551335117096557245848155587362631769378840031282122943897823369776321249382101853667894552875477025137430650662762812366040275984096691052239920941311234941703076448518245520969235140735398056613948782766798657986986991822114301573151562802518273572191212012280767373206675756529376422506664991001793739034678994950340267219501949550143924293261819534227699202574087297388816708403873950083909607325332030557763074642736795511778613952386229884227044317388554614785979718525615897146464398663734762653649727586535394174746045146407816372845054313749260491705356723675739309584957764361977578885904944754832091549321372698585204204081992254753777809769201840558188738469286896845879768024998481997578754314128698849771405403118215085269005353219128030190681156919000297475626566083720056338887786583378257701416238278254978634491569808136574842141463550102849732224532708111889125081348857376586892963186464286533831985245120889113257497046582284616825861736877680944766170914523985854268666163481393959261344736371712362485414014296593564251669715052004319506151507385112979603594463486340318613456880687689643409806047382479534358865342649910570976243381796858120512197454895361043434910453181365906704867827959706259251229503503813479959746005597306766830625629858678091610177377868204522674189478452741853449738425500494027878639977179710977378837971075041847168669094440783924787276117851314972693612481207621288802474056781052288275017408374714609116683951958242205073089896555459574064716455728181733320460962017261503044477356505364546079733291333943658250023235390908524301620531498043133421320175577762419834186569151968428213059970709856466657998016767410675559645892524760615350434799060049700683944702744614571624726985735930010189004941054673954411516527422602977916303277671605660175146137969194187289091911284739808461969105363161052929221627664174254698520084497108954090796770862509473284402291647337829450821903365892320505498013548748153998515077730048478831110663651548230040330234904409593013666126838327722962342521619873892997651088411197999547144374692003098037815387404801089916670095951635352353827271650259490059550130620308911994311837947031408302086420441123789888538785164853467802376252680547266026222308098449336400384827438270889678467731966659262062017759526879833065613990149558225237862871778379751056591874187679561148898674049366919671711895353601524149993344760905760335028570906088540651585558634319605118363917140160645750935477762684396427729611773595634793403741463670618651528993313404364014246659947581377822062417607960042571549274941315382097269016626164111446544927552118172264329150959994606540329396133203309072991391997962533923763359306704327252790388072600233594305966969286863939454199084576054660028183694685898972775958620075793913756078879264843328311970908664861992082898956497879661981171149151046354005072520383740589745442825457499187571406013786088560062070238893575991827958304389598826984351224429538323383837818442519575159186054843662286255297542050701319298098057369934430659166024076009590994768193434364367761007197499759082294465535180750565929677332518414941704253495956813338949473480972094074132445150209929243282507385544549997578021857034420151500420807344713128520706557869310750304709652062001033405554960772181618270323009209162080138944790743734270968220403605700592129370348450976426090093117039121745384928780349593451502418576049392410031997254839397633939126505342077431115700226154884070691981083025074635694571245899158072816409752512071466317049478425617813928909976619079553481761848863000307770274173429323886400774290916692800737707743491801313322651086367243379188898657679869847095508051378368478383840979646279272073541109524164409593841182597093604661486412302679769565730704648553467763815970522784343820502169154997971426325121287242950081539656181650476541705983549283584608875710070875040403717289847043632752353048392052443152653093521975092269546623303688670023025341457815446774429482566779429298192205338269636229862270462101729763201444067916527062972966256525390239296522034860317906238128464611429750080359268589766041685327038741068523474598464831228488855214122084192141750329765731930721720699692732884730773037798948161866025635141247469392400878749236210805390220636675508649101541361427672055699777375869674250521209209402538939795581055017210305406368013484446152454936980290958613149268202700112136644670222411318794374167501165957939030567448406963123139480522576943765001183108764157862360622887187673951809735348834856662656658183831988414252771427969680719587370389371702930379864895755994660954656582646407315299084870973692569256260651766711222268400322522347400800975146871879898581879342256027858402183677197170853880626353484484273142689744975517458364261596297340269914400353685563619987560897507347195324856074502897782735094749588266991851606709712033684291570415066306173899837704743015000217606721032644815117802736872162824486157238350062258584889400691526783908323732373184126344445821295036595544229452668847899455765809091581444873593577787547878659339528650576326046087774766071985416127540164720337266168450665136138344241690307231002494350192739066607256081131867876388013584692900042821231271441548554737518083959279914854368316336616327454853406910853629748192853066019939658392525859070473719956993623576613606797796479650954164741155203324830692963945498706653454912786742567890312011319536248889385430767180103117870461442695705774476507299649124964908511427139200194239312699928023083395828768871657395203191454043001351623860620351747015508288707155122274896129623682142388953105383225676080800532955582309348565872393140131982878899301944677245308681869935603710874345250595478834939727606722614619582434052253620581116271430273133017044005119183805941536355216764663228038827057499606668554394772779756168460243792569499044782696522563287594311216558838606422470737551190016856153901578182797233954445273395541992507397318484459736452963081327162796812807761542364751476820554581715461312211353026224316864431007066835312907824774540683903999049643154836692422337667800475236341323777246306277559398533515955006559353344428172105407083584176096313013398234849760612926072993069876463173186291455237490160012175437889118976286621753380743787637166668995440692591222580020717246421313283027931308689866766997933385547132645299758800709347978475448092499875772669261193586151662224266474613874289864597520528574295113521102555778909102731468199439330288194929880195311623414633337577181926746431568667837056020192965900165546024143706407011221068916966494749837211280377339995660347595600987224151493838495001098378561130624360646118879222168271376104556011696287660285694811289102158793033187849303674192261208966978367605217209103217395379963516738136355543706975220011575558242547728371502947398749060127929295109286086858026954297790135989796456769276305743742665730802290458655031354369960643422295103385999741765331029009900584765138237104352194992014704883600790893623448129796155409908005469677024058016028499833082105937121123908459441119452791493101346091842545265379434610404790801795936559818617954832586805204001392531374097322884219023926745170370372587707511306653738112129969313426303211619796947641347582833916041388079795045774358933875026415525585231784632863266598162147334036770906959129052291169011384485680324974051412696611298781567014676608510824404195574034529771895041145779277364988090380626174246864925169974304567776602661134338045737325249527106111691890187036460743141813140036074350307649459597177336702914189827755425774028626976906462304262489793596341756088571330832251395799679813318419520755428954531874968405371676504206166865352856238799807019081176016893472310877949826545256337061608829046191222171681501595267935210299301153788574889172610987125819417755746493621869840757852907556830692763325993198099589530729950417172483966263786233863037615758580706973690442637571368232997340446874107893407349407953219082679281330102777202313118983585387556974840612198884682987907804121511993750137654110871465688299737578717878078668381451074200635701361433126612597522604731031650348762506107451525850612462115218009187625111769259383369044156399278411127239065966000728584680571333133811541559074930359929096346168717037616491606856230449351996800989783174221950384352072631408122372067451465408721973828706713302320323800124575955082158476760494472693050799168772770093122537812384410643895601388286456925604382081433591819768889996550876751921929625673630868252194087461642031991169404341766135994392449311412839520367502222899645006933737947542245471193254989428499982956809981407472401010150721021933608153601490312743986804422565589065623217198930048674710735801237461622297260852163181881971421749374049825168135451255317996666384655978932125119812999555571744243431111714778740850898752521181140297169630777197829825085110638757217727738423740299647198420642911459794299683597032512380835341095904071793938631147649219182232447579854400824362009408065635997374225424363809140518931442963778373687726789572349673956017380872388979314395206311609844554251994835581275878644048723825273302012654128214912337715052358263553867493516333419483910193208330684360977473125956242179597040872190497435047551362489376374556092313520954023471697040450848009226821436744462238577526664514160837316314644268301482880756910239745435770449913042267962101565341039885904918255484272001131892235103471128528875500621809062122605776909508273149840209367396649298226794137528427254453689344169783407087512624894529412312784813678767737783713208503738921910598775218865169148611154841908255693337519807827746880100255002018596020913609062802915872047439979233617110455322202117169178567287201626743558113202054641255327749225703429564839982124325263252165734637262847912883272538371075860102173487031364859001020373727115111374007915154509639355825524827007016357562991260087228849805398443079847931649864759846780649847819879021791100631694121787648201297696848897326481246968726271963842619355138422532576755623879600560322792559843229066024249096939728160487930066396059790004573924382611625020799319318327315829338712732815576794795085155368959227233092483210203581896012279441102184963842976900173502949380976649740280335407417189451730217975686506619481447583061927094079694229554769101362980599756762436828692193117059830875664845433677630458371661384108001247118275368928303178082490687200149621355150836724332696945811108713818771756315446388338457363496317824062040718434702353972655873208212260053742398787125477175100894553396239007068018997224244362077647405571556478292415180465340042722318047158657565313500854580695992296106203578992471561870606634852801572059419706963382675995700490735606211793124033438113410674889038546822454759557473530439675183161832424013140367509805766894806736733810066545534923153160767977879540699405216583674261293404305813516136858611453349023519962707454239073599105084239814793483189997158323771162638998814608865228756671812451138197299592863745119674148192486637703374549749702692235467194571673417010008450910964946428221534934480444502702914494794410908303690184959479541687531939790900316442049241879780499901720756226555370800655589115475601568467460351958271546723197560239668514189067209396936291461806002697331917264650782779290304847591829459403833014232305193048546904319162547127325698469130851673025903928724590860166493985024660470739542443247415599907943061545114647682834123740776614049375309159652117568062550806618565540993021853511075702074153061340969866011512536345915856316499506109915467793807033924649149658158501499835681023776638598268395348253251122130159858904098393709745275069017127770901219352816680447749393653571665147414632447426369103339850668771769543720124835562503561200350573021337314240849901598155329194624223394732335125297015597796604957969270230559232162966153295622651603570270204602587575925700287502565216525666646002448154559896852492812103642984812378420287132586156299525591523477878550148487875551552482513720622655659584519384807778051457304923314657972786280365539114789046944401411229687291460023480871761455276387541452801552856278132333716010264986846636472085528887636651664753708305517509180002588609700369034411207782083654806398289324736402249269219000659949183825457091141728075739714984872454840757367687064592108374752500349094547163329279865660358234891935124630546171238286777261285095858835697613906456334321991437308025458352060531395711145697212827601658002144646266046768332831585978852461351428991008804672726961608224877204121737249125198146530799421143109059167857951312009758382598153295702267735734857199819872053022229661408574727560564799707738994118944183703804503848145694201224121620979179406833200103799377915350197107902105000914355312146812598060377795417156055100955482880131152274092731587325816077039949336968515079840039875475714853584156687483189812016884199432973326274785224537134083009623472544718051376923741405248907784996814056279641535593791876779675714216252372189896963430708683670983691868673086551891982203393245703779423120494675966609778807592065726503469706470130317104008346818453361600972645067407956298561127737221366267393885985451979572471292250610741908907738253259306756178093275890361184774778154976513885783445265182205181976073244684259490739550201328417208185310206060508496737564616691674137703357797772585203173140045222492141947760098686650264189188298898911075433718693904011034223598523614682284639611244496505865534319094037007938736588869534066213181914463055687011677122077648721696297371966790104956661603508689287736558765557203000359396593480874529461083838979090744651965590009790743717387350548385619046477145067299710239654080372529158717140813868278347494873940608276197242035139463611935512939103676192175445841221579174451339710175786743218732269221942974669366446145669087326728133499299203724072519335548199898039146270806723581202691325417958123482892344216377332711629515470323162385292381872328684840048589503259359619614423696052963651649845490885207478989339121365184402718623678336694934943075516398234766171587864621760001975850805308274005398358539442658066275880482913565326324156553555321120614159298851903176671149727121601255969816941211586161886802580998305267906460590148786037139666242709029214863784669603688303189913101580129579831897544878697491887973937216115253105864008210323810135574997073949704523719276374365751986253773708108039602754049290188199325257210542878406917527007169035656441048278435723458801411754274429541503168749382163974675354998277043324245882160441506284967992256595544839307052581202946243426663111278507966001556444138537249646768405816639809663879185184848390666145974851512485952368604446751487561786027795244296076105565518803548009591381779910108223964249472525309866589377656890533514870162868155560932849244662159745550479051430078431352429207207177452669695744395214513605300088556358764843082702528629849992944436077060020899976562832087223978040406618907021578989878887135763033386036374617664391728630318744680898330310429001994179456262188829093725030263907572109743785203287928130695677050138430320297230845750670066760506225144340033490822870545636635421255900845886729248388768958208668483341077997422084916306507877579358721198390667316838700422151604249980025104206241444790916644589006116468185605722858546139167919607570104077666109731919188211648549584528853404938973359043723026869117855501092904920715217442447302224801177589193312224040933112869114061062572653377165115831879260590818819313037460793874779909985674096236098068226927056711561340637948197117200607359972014629926599527080814536147619901250888784803685545354161927933504156753081959442038393001522201749813613946858962908995008058188665272035603657839538553820780259532722220883998478230211239658807796587666112298872393592284666879842242261122278322206072586262768367413747826061282163798386692973809562192564456675204539355111775958616197968609286053915455132218160887204414482867034598367984231893556021206409550250204478691432281582762863856321085642925454985077208395120229193188623391782611316091955656627347599460205803626158633275124006593394154663081243970599780023244002603028655873825334902381215035359852959833932082425319446337648246917699213990432275113837357700824400146285785646452138702748824754920674341248204232018044764007350403282375646401485750886981694337148523847524399997304535646196215186004469984232921030776580086559573330227145492239729308995976240417639988827175141311733544346089360494594400407007805147228512684447095126608725710857501860476032663621891781364714870527504310334796841281721801813830862435199899451943242650332173364115578096155724029629305996943683911844469887508047104096559727459201709418482215503206523038087336432265993622680053959702451152224126167347958630659028319044979141639957052822284399728549557929840059883020520971254487517538829655089686734112622551644085827294602845446804737645114167793128263181116218361033676920983740594756681619046257732845436399562819152956307394798463374022783870655678986675273854221767750042501998596663930772330674780460465462640432752889156383816499300487662588339635924305147121222535870503084599833612343557770413543125886989490475264421811644310460136773682851187861474520970887735982271471797049045375876590144310950233416800387315990405973298671415445684438094248202916460503740637234462231160717593368133574168229498167036625570043446089990639319955809583525711712068938654363202052239292855205712924619864001528992142310360876250684377331797511424937979438250146411886293592390017468736795952664142405477187200933268329201376153678356452957734279955559367987329244234597129255534036888831840226620730284760229426255146261143808766251703237363901511033718443252900754897346300030130143249565779572932260357372365362330705975681557674786368469623805145215026736589343752239147587519748554607237240456892267071205960540735441418157233739315778426972776603948322711674579774196452599853865610210301670535351797585893846013016780545826467831669894657937448578666970073312295540967924464356524848765978350770441644364451641757652745556831826540611706098322906228446944715937837086381059088576158758896263919033503916576798357960448537509944827003054615339175331985873628823206358435452529634409159990741221940098826810970952312739714095495804921367208141476979719250573437617718965262860928965194060755109931992283672458085510350749910187023067278012601254874242025408813446841230219559973882208274309896050662781458346408767995692076094225020118952793292629102585822871818176824633468235318258793829661032962014215537109667292186352354237651629075982369537688224305708694100135124721058390666471756862702101594243968996664572001240218280689394703076103472142114975775815538214197651052527235395125397045232830323144423722865672817896018024785477478681493387862172082510284409850808328736266902192379772032951083595235151331225398819440087407306687103418448245797652104315045000193371486982350990339653606668559347131605033648735997072412788965297529169757111107804295600826280717568395343699552889935676086568863788389820865314346651094007920387577154558808629299370584450938722996265627213603847726964328070516840141248048650358359960591205079635577322574009243168434324594611944770882838372987819589945949949815926863925809156087840736195923371536394880168752469551547671096878596921217457492717163560093565004822093590597944337897653300283679392522845260464237564527116973575043350128776278573277957860583670732189332134355662084374388903580412829693659223066619053137238314480994141841296349866020092545687142259634442482879807148064692296013300111183307209621389756912286229499216749297616129592331485022768375593764308461489734251015499330795431471346110015396200438752039362650702232521342835124740196998344449536422086652473529752704668642436998536647585416237840120641304795492305836647229859954391858624119657970838630901692252005419403309586665415727005875867822289107030356964908297095844934642304688618073288649941017785346861518416828782012407075302215157301022229351089110136039514117865518487319570476778890128816860661016913947642542234105399095729375514869605053860408681909848406819969006549653950794577259718862951208644646469138637668687460354678443981239026357327258846599497838641938768846198632596301181988800565101228694816431048191316891120686452695830033737865800550974797489483014994045327360348382551610265002044831185624908269552272630072723153895820215929521781704482513355887330896889662218894770099480676057490359027086386026217971245036363854374360620243373511283014310092017463357749169501277532800490028403408705509944249970328915730589070951212379861508179456067922449211518120787154581532238649588357572242079495579118105128013809764268247419404471996127335946245852571582831663392469282414032142722303700666892881313497554726865780520939011022356414981512696054888187732588082871960933997111444576606423942745499900756489067518216427354135007840133400584631269832664399805335708553415453899242004520654468419945124033468254145521586049440297319348872584325190598215944329786372969268035060915033109637866704336382402416181194812073830625965114597015257714819118059828496797555821713503265353197928982974328056240713202624993113499022388617637326795394686971620774826635752514707174282569392962563952502472967159848838091806937208170561474969322855442037932886185762112605965648181238456706518185430534049831953765107834926835545838739865612825774994137349185404934863310410610540700019678264637665183503426185886375897573902081363874794477922278609457852502132966974224564536809101581574959927836657616624159137138681859430859385628677747048716577743782536903979037860819753260524557854389709467216711629717473198507847747979665726516693558963422681700113723957338318754985766605653068219489260459523559220325619071764163394324917962777887868753020960023246397808350610057221499202173348766097882480876674826917480611282058415129614777897680685583344776187446334153956807743316572066576796148484296254605909210426824521477927123565174143539875362365102614036206176838331079496914511896244083943857680428510896498784430989186674148536606847370210934459666472233754597486491679392960301082595333170947580050921229161839271745979976452098988320241956873957283328986197172672517443426005776409506661856272549964103993738533714947459759891880751580931232365591245321598809547490181795045934053888418160691603969069681306160171914999236719201839187547857521958934933427380977877253595683183827667282719304726191469211752122237861858820239998750055609719673112047180576274479299567478194764541410938769898830285548159005600580387626415797344370409595628034584267234735686165665882477987949054708980144705724489963842224260726576720533519582749950682437789695700627500143092762241221559925632781994495442592750717986723818347132054944809180336355633990457037210157278480291058928047874533491799756798740777161544251296902448022920083410399825947615851693982220063198919718375762381186366841715330047105358800910666430774715648829105704109589335366996804090017085185042689976826962621038258775844446167196024947565516143486776696606119548916019102145029881530362172829695626358958254916955494104428992696215218214519962214211718170212998139863492734077929422136650298401204541194189098376081994943986110470059875960060517400937850976084465590528045037340203792579570227743066152669943213918904203482851862814431000807096470118317277557191589743149620445910766919185273718413879586836293124763474485737936634028429219260402762395876810517414098141571757403651079927378010353476275390343217509186932936067216726897033909707714020090166594373992199752517303351090290039770002118090654968129858052829378356344343029868330341948494766335562202909056743077017381568141256953514074306149544081191752794077792738662567812378252739525343568366533762994821804178214884381534326525749479542202169745456353103129702231888312745321955032787403660683469887158142705064586019507757438032918520227198533960953435048780398388262616752629324310760160353833811189621309763902999354387330244099246288342883801141021359426279897723183221916028710285761700938014588801771073117767957652615152044960941329846524323812322648642177866038356963018379184364187956783806202260425531606414594512949800304648207358727128537589106492144267028127844567439154416258192668807870737465464499771255266273935441689606586213359800920876667067048754785264909176994322675070854663136985102060020638129308931765919963680118659096660442927417481362504665599747816721084493710270828858770292502148682518435503254098350648204606381953391235169801535405623522745050470423580579810041158517537300359984354544709317151596465354261367660700288863570367938306335508981824252196488732264385763239489230513702706319667231099166020877784430623131501315295131693773773283980524623604667430903722572741685461020495238321765646469826562009181486228795802752168745584847423805776630376862819914279934289928719866411315732404128350589450035308448793466442550113203994515723227507394048048587353909342612392547505177419453826363677625865850241524606119490117060602027703510358010163820302553581041966797864502675567077848597420176627449318946443373139614054589507600305373563597225971175136608237093979726889903937253479330417859565131674086428423678889833875850358077541123436502384682348996080342517463306149962109971180283768862953154574959493551543824609643014308942518964756379474699374369622463607611372647813673564239628130694363039955795677820998592741512334967563194923198805934788309983514066955733399307080464726854264850198881919923089703207875401796658194311833256406623359335798001938284924186749123866812325926692311919510341629711100055672445181474235839228356729154827972812042855062376389064918366546311503257600618217475235572336617220950296944328240269605652818903501770018982613813942972120288279354609916798704390449396466176201097524193768912041190993675015265539101544517822800577601597774386899640038891823320168191584249489411007611654504153235298754906558290005542342907352607058394218487971185784319495912756616916674167791034062986572431369158315756381835233581185909669863195028166140758393538385207084738914936329103578429868558726533189643657936034829591702833915680515006215821169345297404438555656067270741398434582484902145173869895601549668872341426571229824934813262708512513869112804520886593946967023879352285558256958079425471640124576714163626211781879839139975675595973584585243121787963809327975146056125030961948055445586242199318813778071732424361205413870760164030715403357542062834708672229393325343374666140304450788693156531183351805180390704859992885546310536059202936410186862930017532010839303505463232361859112859466611379371059141874067800212070110499408309374049978093621387151654841271976689474469316932220142792830010378077888804969817207441737335722608816925187432649110517377240022038479595734049132883859376150807118510629819202233405858763057148877328321112472014882226096528802494214591032846036055234439409243752705297036491788898750346894283173785836050634749584808723213246256295107852970237556284296269297789985597634765710924032416339019320207720402465803974104306175413164966428245874316479907007157692001765138533141099320974484836917409448653721108668304607252905498294888777353211110690034532493599666649545112960760575771634574684997923043776143294295105795743512011904494735814286527724152878423470358656940474812142248428870674080690869906607860793883261029581985713851033787295340065896743973878311786620719655441241618286526077617070922437577933645147354647556372246916678307288577075260302849141290601109135753454260028128173873548438766326467279132751621838890100237280677712760358779569089780389815666584406159225411947565522305770722520270786751742771716582237629554136742446416592034064286874089370671723215220569572340326279155086128091301766978176570367792387512592007445490762936533504689334506055506199499790384130220979279790204197513537933317206774667234182851398385086835098864493831887848471155730562380016818043128371418308935873017677409363743139059061089016842486215276258136521237978167281565381361706160208540318203479368142848141362977895409302840173695315162576306307517621148436720704223297325567835301187302479276161723622894013360402341636770465269417096804728158582354911186290020829729551898176308539671505816946523760566096643236552745368255729048870245582760734025858890792771680463708405080223866154096951762321844024567150424084306330985808821315102854956103892576690081627668523876942808411187816538323705734586357293841714712024085461662191878052726816266432848329748183779520336608587441072800796259428466746733430160349542793643704249745121872649940574367513560507034890263765009727051415660871331425472111353464632159060675779910816771755379567342484922956989428955666258397369951822392466955303366140791939982892405463696666153025223211375289522742496314939367623291499418393050671088895972270394991756595077179803182368940687883606065978128315439473338216175332079075998473938484569078935370714989617540492425388224542771256912762126453956322028347358830928835505786627071748502032342594837122244039098949130593605100802404595908335426468420412263173468382004488580245060945060806200387818535395535398841165278777805453351365574303475914856037682759451919098466434760949462614905799711426390242530525160262718585105490950853721438019871811638574101839619464997870911571073487669925034495730538248204001016342703674034849967086271321097051780412146509833983591775916374630353886836661465082170068741405495335870880990090357192933302918645782147703283856900866405046755939545822717612802817171209837402121859027811184671171535978977983640503305459755652966055559053730845604632692459310614320484303129759872204872316576668181036451075055266116093949187928857345485014076883617747992754441622718887396942817319895730410588546653012582619851971544710752160393906055621859140170775377404415431623719421979073504189021911891351618194295768753472739935415852245873615607751888916241386571446527907653862869851174696637756271332703327702330726517696125176913809484736781810336371444298060448665051088742758076605911590014333042928654859161123846293198872016212023997121995300572322547232892398386523528090430199548459029205239744418641093863342032896962364791160863806526913616625239333028871805849738822102375748854763010764348543139513861429567272740770988290823623149386653597218008924858326784685017822636083727382297230989508817629030935278146151882809419141446341300719947030485037895309612331728668355805149468713087810498645180125312432167328639116975157687629220428259612145244893134736773421312089245106396971528358080497827416841253621719572699237785731989634558092927695101695146722788603908279105808361799688275907205181804083479821660384450310074919545563389759319088565866810730668972126725969359997224832651067467912713056478073502984577096713535232026073609942471556158333732612324714792690885375341793830680024359538848510059179601000516357428628612794470937272989131025937696769764708488288737779451529125043331617391074766078536372350057316054524158891840270405254477652629046933210781264422124225069752335118134102460337487364476278423200589022059068259679919895541119653867325875658988151126758994195177351067304988826768945802520036654846941824619415014566471020229803908986905413315957410435275623791482783275802693491656211411233712314848685891809322439663808834988808868379162353534287704578575816019355117861842812687864889781726224964607934002699569201760629783104563012437796074779291863479437379252819887191454319797822892877551502451575474348856795781229611369085900196950316999062340931890939667602356582647617660265524251074933523846206918580813309918196349130035308176494527023914963260133041778043040838549687686529189635000518016614557554719109678033689282224355014848781089354827314853728626747762570585826867062065719469765451544009896584084031010199987058058999537897666053070409201518434287182525594796581412254853591957422741021873638619684546073719072445044477594301932099907345846497990897398157554288890908919338431711353459348443920936144011369426377220890257877507874612284764592843534557640007983444594664483743466936056302089327384638367631315220301870216891074907128770564935384318649743334605688861910385705283392777158981376304362039046625470969994225795779653347384972479224186236118143850880830001517982935800493287298020354995633560247883826772537299698487288485953853289372151519311745087689998231130392440763468080491918011274475806235997840849922485326163839015812305070510871681764447345750442225678420777518179638274972836615732129786127797525148687424924386622425900925170985618627939951246233977207002535580769487123969206670605888111006329758230113633660688216417358702690917965884161948123406286420514227633672450071932213269300171633541023833389979451906709658062773269959840336134772822732418005587430724563309101666573892634118038620427899192449195033312657610686101171130373123254100440713602478610816128508898946100846852262278281579195932364351465975552627520117423336677882359646593532816826785211993860712811932007953164515799255695286856621738876175769087444782945231839957596305335266520303846180873744109204879167500700145536190892964097005774525065398267744919159778789144117399698425751526533281173457436836899321476603411446264753135918741442091201648076547914735738417779590140986261352157642317800180166671929141090713712392974076360906484649596066552004262375978540050902076351193865147543124023769952054314898910110239500049029538124915252525918462969047662589615621267666384369113027430998687050479620314918194431703202918973893418570961681631876492617545633522185863177583959062015671316787130502055440417415537158458642249754270874257978401847766955111499864613291594201209525454237121845599753853402124708171358980907255998587203449547907183026867207118754155771210352616217683999907232839899002910523552221125645020734911072942319616079394169104873844387593787942149458499816060463130538931423296554604089292143140808447830553657802179648813751764311814032324018795574262843803076340978541976404046638450264891483135388877408253100447236840087734690016571481792952065379465403505875954735553832502084708685618880466811675226742005358430368973968238723512576335879024632954826836007810029497723451735136725696968437731969604260602613723045272330834638532708460877016417139734902758012972286901832071807341088653330211008259230271845610696810423108828841966571873528950629082467976334896273666802333084705679327903859134832991302502101121385384848122915123846896053099796479580401682018980684259213540440397529345918786286102653503894602004687989444445336784277224339551272615224491432651086173789890399979559151390764519309755452312057671821808298612504687961981218248787387557091944400849106028896419386708246667473086645938560284835935864344821652962398826055951605007530332894868948400545108244790755035946595935354372118379522875358951892752965886031399979002574797585513085941255259997449525772135023759890912371185883823868215540818933602775398488752160541088079168126431793008672972667668299326382562475259262302411233662236161419792757228765062951440196531237868267369708481943675908981255173090105567646294552071704996325458339905755956405352902439101177533141669915712425393245935369638505287684225037332419957420304447236550481680923459708914009513941672965133592462889798212936462850952808904493780974046984715613351508230741352429883963697718427186148681650656710438859252091962202308951747870218440730659471004553668106825415141335118726432707354991753133698669474515321017682449345270656894015118562060052790802247172052432625534863888772953672427681041269998473802521517890605338944236179087288162574575463123032827091207245626552167697276923158735294580013720812580877446971790990248277818555397944305159469502835418931792839256293389206293766428112910156690697050512680011764288741085128741526619100608864947567984869415825946097501884678737449391408548582352784261764351073422698360564074585574262443121058600672042482075079760127422353484066173521599000847770798834964212601310965403818595028223691820603612056351468145148751094332668452180931255715871045186202578126998531562881796282587732788615280949484654373596923755507898861650898263740068046212481539843969193279129235222309229869076364734690423128788606061694512518386556757418567408360429813065174105091696146249432379638904446643371135508768013419610673105576508805032099742168681792840282302604002672729703299888059500497506372358991238962649259739776524480316806503288908355312721059760842211745865643210613152827464280511854854321689904767564592878273183233452882948413192764567971126649435173126127840389711043168838206902768177735390307451512956164282381531411076498277744604688629736829252949248738465431744159327498649450660738771480083672713262951065211497563041858120007499883697803161945191075075493847349017536311605769636412931452880889031763268737311484927878718305307683825555103266464122535957801119384099955720302820253004598182721102640621740695326892731812568283961907374081400675056898268282420965664994378379786828143244676590773832612890733925294578212900021335408273368247083678545978119763413137021739871162267423219583059122664908127937321826321145582171093687149827038803325345708397634785592256083349747821818648299696646908654017509765990851247545650079092049422174057688491070085249170833096984170348868532314334593197007383175560315700608823780838490724010748738024463035043653746752933766845644483811856532948584653955173075766091931604099469125915798128982979192567886092838884704731181699189054257682708554691877760180712162392847795860314228653284384803612468559006713436906179462970763473404922011332697209764323063284405052115490344004241203282483735940610668760976809313963981002553412835434508236923158013154171966244896294023193001719199789953200743691444339290587179712283616125966327770763509663729618300488268078108290953548181171438236379825305779483011533201111769999002076708683205750521028405358621588699567100162502998348514184419453258608754114782534803368686624940301254908593731159039012203064435755342248618527112736086005111246119432366021931557674026705753706350127705270886623417436188783289804348600914062421911572674361988226206051045542788092414751880623511912356996722207006268632624417167675122039873990408410702448256929664510559865608027484534434745223896519719890868658095773745511621602121266987647063961017568507085464546298989568698313374120174874058079390017751947696588340275500986211274065959841824964869157669627723844723569159074871908224931739247327629865832716728809628148666694220542269703037394133117724209575848015397455994482251056828224746516493665044615734806501009685400768355430432860365785832773283770340796320857068325026530515022300345299401176842440785810362492673534043933981955853452199476816304757487027814359497004087179661718288524614786482305063179445292320181117369652848555823655624668472601740520090666796868441522861555883077608321080113174611844891046410482893754058759404696361440650501160297707138243439262733414512049777532920003584128082523454010772212140692458673814664678370923939743243926033106865905239873512601220708000220195100716606617162186210672578267386305272419072206578605212226276676984402114287587939977995763973268450771291502360355410401566041645122867090474496216480953712508356182696816723409234901106581928982087232694069057749467232087348983356931008412891378208049630093225768339285421241855591113458549758923307772234436013334395265421420719527976481049176517045700504874812903154406570428613701669111617097646459089822317922158742056929311808253933764057285705860747826013372805796770154692312750128067483895513209018664405125633578153930956862012109913947129714042459987294099739629409176044395420711738149187033452458408099223150937675788808255939964439353013429025534113170998466114120471299665117200681636119641134903541947403795503383839610541925482842757888849338515857913869957859082394053642177243297870345061792726647739234291637247624147306024521243808924020853494567645612104214351066806146765099907253622149863312418970718318472581252969856846411429389642786320905793612516364047798497459105569179188701779100153004018158167990248076493442706011244098584153251177412608947253061042823703125619647913198652996771635042839667882875459846051845495000146975053155923502294218083015376867672628584898320729317635026417851125953724468592960653255637781676701147454954489850834966319154620712944590746028692226648634966533880310394059892932299027592577896192274428476195627378250003715432618168741914148196487216380070241759312500830288287141525902224937441505919041914094160551999866068124524404019068592609406495363834310164026565096988801157499059422167803872042767275107698835340389366675097033450714191442323132045133226959303552239577966950934988056737798244136523709354342461551577598804005126187432416229246500105141509657800394118058316976003834705108373275759769499130879451862821894482438387471236988410490321790766325916246774367870961958072368874940895299566254833310374793437381018362472265779912018110630012811406810831895330215855923190610464693912895330130926147467794819811155516556277067228293747048876636848213465127808010547811774159001880396177587564525527777154115233588428766953445715163069274722604631306709733495844563548039491679237893293638879309606881852868825006578418333298291523217299896750333202747975247157853565954857565752851211021132944595541501632596617515621144103342570870241632280801884174043346304443128367592030315443435513297805912238292955445791437953396800987254266795136978252782484568646762890242725125621367190904697082896442398755528815330373308975689185046176240583434165573623015481247191143830070743977000032875840045799062662220029089811934227612984558924116648005507203330259638228835671925783070224027446611797063215459696764960447257540239844549183648879809318573620822013304042987132085476546002352970262233656851442662483698709543895046965000931323917123059768444627672715278799340966952456393492042023412602400076990407912783200155271668577705958750786447718441804967178270749136460884901866526609575640400841108465528631453312153561714385459932878324469296050305386244461265009252995596809474336485143952744805844007877650000391164579321586710198225349855963739773117364692078690025703376133674716570608463028274633363641311738940771334575850620745606590758047856633429438030324742900799487568623468229710966560015144359842846122295387456501117845741177086745902081557135339283795742236231339222278275104397948650203364881933375669336371821557980897144634755238198926813396143624042680209026882915793743353228648370354787287894260661507453250956718532798601707166318451885787813562100632583934143814241058644344832714939786133072697012272801048593300803405063398832408085489922090227456336603238141034281208401856065282108744624953584410553399286994841008609748043488310872623042767070886665070921006077671092410274420066461925047024488999936390515789113857910632016992843987885199021608352800283453279127212071593325594086657402278191341749736237469591615884484242289925243125032919675105116123329589034852805338599040143659791711586341363019551670502361671980264537831181398625299107843438692462019428146758716126790448353733129636273418724294830979770063621418458028623873484461591915675073579636037827648554190402124705718350068530851540796109146452594254570488755382776540898173970199302667076393984687913301930868234611386971735294996297686640451825391950764042685395410651418121130816952079915764760648201477833906325738285774819713304699073619056931458331799535795898938362002845599825344058971657526036232247690275821168860427492001057161295681103268359451046671400123556326359796632120874640932714807695048866204823453524696100125973914537741940454860472738918317353824220920981535743836983632354606726942994939869940022465452870336677452600311805318206651576369170449308857090734038341885733697914556259953336553585928027143563677579497319894345510686365378394884767270993084809791550478079569066518292719855867687013107122327596671399843095095966705979528954457415828750044945250206906609315609560993295863279424322330386343146268590883808878172989691029889414148234568632141402005396114540651793697066768114109790157119602212209458234668202667359166839842855533765151384179373142984785253086437873093337680669369723955522278491672430547875081075224179739173307918497358474945028511550113560897905929690935428472094096576445684372991158235428489292379208036880568591000510827671405927114233034226549030147416376308158027824301520253899939128896198509094453542333397152080191360880163199472011735375196722230153567935688418719659678294905140395460019678579355029895172332409655587619245113612407138286883910094930975502177772942877844208696883080163817214554797467697657966760692098679013907334307055038880196215565462712476624886043964468635559628139711695170024885116441093345335127022239909312486988732646187536457144544432088598240448362213328700641011141224829541657408312360860340077781581959807455397526020358391818282373060857265740577135462211361879765045571636369915979035223094819662718542931692368224346345483596420908844832427689440053210128214582137326111732715616284374747643256083804387210109966698326772018416948629889201662464195183610454973583105153778686498240376697470307790228121973533531526107756075737026694398945494021114288687293535029633681836702314257519517109396147499163374858579506813361906596070992795446392760775581459651496633805551935231754947045675569182390792471691827229284147802929897819568814252549413091637687427860531809323114146425449219329042143368316299680575400677900142198823551392822329549670910347538932792895963632741584730083073285733721087317508121928426603623964769403232402070422465576528999275372246890940992655967874193614233380854252960747245271282141124212426642448121462125984812749368900282939722089131435784317872865759237386777447609910799588615381139524135585200307004181317699221906544281416318309920352767643566483867965446787388740250565010951021345124703147867295307602273166419715281432439069738229523019474151795456930998403629786021559989731287857633385456310244608400106765069438131222007766720078444569955892511005097471282247879450245011507392148169783984528727999491537524026515618775531757111910936985562070201156990800305024077848055737682387468171753013772147808950711210307314856394498829966044894457576031971295867744866426335893454542424108864760436093501938914406428320783549035517037550634187914380661554067580297600790470930350883363761679664715211180110077531692416198571393530342494323531439688721963238328012836368084126507242616009369749732541220009501594358921708542113267308195392799943728673258995967725505764232841308910671232326796989330208593505838811489976334987366364615586175173006520509811569199540147688605921498480313515082298731872346208416476388870218323339097030659950828947145144409547220313677840960761438800339373995485628739963535864071893776687841488028330706991186765857098818085526175246576360845324368999398151366903495476234779208621967234542542550548947058631984904810917206069656835960878807003299355850948784087640917965055917220764720469249854304529982340300988330639137802477683089509559181135197671694186081636867560261028937455035194173376554013527618667073646391149845004580508207241741376691357374167341654917133147865689708731564092417670573510681462924433934570168734513593441182109565462070203453343181389233637817025499962705586245003412913385903133791308790840493114518339863014805302306101712111895461929827252984300211052018402080431562220357312424563082037009190535925408038353162357858126341211833326679149444665313868183246999314320536937377499375848836739377267555024774246576344417713235129966175062562995371271489301935360049726295470139588560123565511481927775211452791953015106430327121704375976581558314907149398191244458886327433213831876246280329509923877483269608811566758847565627588706037223941427064534180470363164046219659913570940306678872520379745674126158165383104113425677770839544910667519324135012920598836599023813160466414003807419601457317116494648347020944937988107515884067895293439723840274112457911383453572061385516944691330393598344718465950804874063553136920346576591562508741414077346856764109823956010637527252155783843535207225708086484157495213035981232541397013911038375428729689266490060888207396460177240720744543131394992703771161498985725850748010729411005686799313174207469493831343411585028912025467576629786267342340488532901146822621953183115995571609604045996984677114348892655449788426506951497253782142994479437077841265205936398628915597377013839787385825361290543129035178639444812681627334977612029808855124919564916536976945635154425669916819379057843297843303388165549640339913669775814065935262613039840335207361352904883734871853849929262394219190089823648776918908279461437805324464933403367587542325103009532713143472059424512086836230535438968467413699148416979140306861854095082897880971124320553456932806855948524959114632943191933230748377256017748657912721340069158775684787477458060841195649196889326308235085675843098267637306287917976661271334534247441908479173669896725256530504549629648003900821352488998205799313725855864370520026175572863608474464891419234822764974405496848739166285995704552848353117314112517885469810782507435563435992905790903596473237042710228511292729426814339884441108344591749895099271913637792769236373463534916568244136116192624100175825897006592368039462506350312417297704593010239771279330531094692171515087303927967183872965883120714555297020094229423325332147916268779785730240982167027390979564359230799204843263587817814146784083662673014306603128183970548110292185483688186391111193561972796055440623988224274798222074152107671873488561939777598620489613301006560158938921368656428798312267046446112000325814485017937474120342070330268275981163354690643832038329442207328294368751995580391170692490780085724824953998104816174559648528570139017186684947190349763060694495447960751307472896282638229209074211447954586865214413091500664073476752934117035172181344263970222987654692010563115893468970351712165267940593747614303212738279301630928195526958103849621885976161502958959937444717324232247765343192905252734776901206373064295219454833618194037609608105990171711995376844369315437574437354132240680448094276765177325502088824334759218729776541925090670136244317735486616698506070841206706196131001297984005541618464661215307604642987624478076024927559498572273210697683055464306716045514063207864770765470809034867088078134993181639681345135174269700902157699424400118149307312329268499521704283922993567859644563487918921563773077269476884233306047518466332689296608958649140850920113277827605223070780407100089329688578075612460099721807636004150970347397541498030735043687859938969032511504925244609844584854849143331910044695244822980997416802498836439272312691920207668392021401052896515462689351347018436420228419112812383136798975119788264141317664305878746480404801061904888031624680818137801470214072361701174760264859198640842841189031258524635581584137687809478216162389491447150612477472236643840368993182487412514783267437047413014081408559246673074705039458014460215757709386246230075542478290324582786286229189957339207647789696585856733793789821919928311289325377257050593950262441914734594304317818154228218086994369086121617552590863528620453131482689483680537011313766479228497683852121445935736416539723913315207579921667952623368037299238298384235413822418734235020851945078435411325027064144735741582573966401506979296263853944360839432017958264437111451766465295079678721373359060765561768003065826566109259829118383736200001301068602925062220051953704312052698655612571690105636042274578883185256247947248729579770918332631924625069106445048924427486511485308771152165281748585695058570424588629272273471951642636299780647755062409201833220933990447825729154262860419662309420902267028390352451307843739568250505936539672388654349557470389627894168218276097028145156873506732667690200234097361210165202370020850764160360666936586406564194006276180178741542902322045204069566359502365538475817858387315382762249738733101782665446885341057168385366731977430408967169559529949602507817972597561942453667388832058857399382084725075675548042076262297249676904562336813452597627952600808674963713977866706379385936743219472554859159777241163058806711309637896993115943372440774809993896669651162094024788586213469589699025307006316847345300287653640583947511089838619148716166770934200951833357257593378206126001301606239765604759776542902353808169297292491915359233210754614947700238319180950278145653076376265417523795312014660100032701834183973801517129067970306492750576146701495171096752591275153410378665518963715685220268898138981414800699454689386012240241870740917654376284784679100090625350934932720498610770230502429327411260141978688722202184841727064053740650123182676876394053088223187082752319738445729390286896443504747564556994651600863302911140880108709622547558415388046311223166392032858412070176380922201794568810392027747867047793601886138561910475976750509428797580144020917420612049820525401338599152110016844580728308827712302226912139738013788714491839154860233556152484875640870059501412991225072105040556718060032215493216680571777213435854267679094767553504698080848920759046140077364884272618834661742105339959747906772453241564971974230198868701474916053291080432946310129490396445601273252733021082948436502479643899159667524342134156261197847084621612927545870399313302972675488254420991342731377907859507311970309463453135698680162526228735988079236088130863428024407216531288862151899544024959382734589826546898185823312029677761220287498748222755075909057079605638354376453964260443860015591601428120617831048676911688201460151031667946504066718564462561792119091608496960781256798773093343841643183102762673782864956836389707973012522057005730166703760245314876151177760475137099317461664766027450690979879018034322379988159526672808346495666295868709950523694171845406819164539810601307533642105741504566270664747279177311234729575680947951486579962632680252602302945338257046492893728110533755844975017213210586412638233063996332213165034476829642909380953295201092802144879337817555306339341168146260007277926162566109619857947495924018773576444340024497687758212724445898164359734124509090442079076030625090899879811495940635991273159371833731368491701222533098904721478141171238685134766749658193497098552738144719164569765976536185307684835648541690997649490500152444050116168358117869195711186230997481027618430908058511481444983075033997662743785892612201529949044699897263075653338240733514954420102514455628931636272639679602770494726590248134983780483583240414317755625811259158696383517885379396627608225527300373426090697979538626732531759492793602182051226738518285431688399010861443071180780911755244983762041625744000376404721958860645976580061010109135102429980406574258729087592667781053846962543632777990349292064143779738203564186976087188169229188408874882172645776783792730997330290153677103737950529688826870949960643710711934699720677638020217537671732692075420171402952747536220900845511394812281491976310046124340282040622117777964739929741985116355924270116428665216880635544184075824521594807511346053435816861059153569809409460874484310650366910024738666750390377257326863977716347758442201429678551117028745283946439031108993041064764130185758732996911732000532558950213985345980869612767999891947118063347861088188613514265232219423791361484468261492181965419401026044433431832304678211259171609198988476161884163164974525799375313754750756267706441138565110627166087810912084230001157130214527898308209452861916143756241003356557698654915083057824446808733658071097177705906764910869064566666807766205538725267598072200676655831819831019524626692823277111936900589441575564750014928458953847288035092648939145055715645523280502011533032129044458845106057807291867544856284050545570717757054395797938097327906536741311627902356040357064188461312434009795034555357540210747240809906442703972639600276514076396142781028484203214616697634134932838375081961268343738870577835006626074509887550341484535115369832561256011461948418130569684925549954069146287960861842890818372671330555253797640078926386709237366295677170715910627017374807567665524635390361327447272268462446134215414097964926856175853552671152621994091847301189316382523670119179847115492209253552143892741196748829732043837725829642605460964287755768785045541209374439919476289389442837846321872453969520768093528672799139967623186695635807229913692766850711535715953869743120887566307781586932363925642298701820729631025191078026157582399554847473330701408039460808033054391308141760794744676000635767960198808050520817153733892136798401900557383544451286857591154368987433099067489972436260910330643752494469443078437653185757526758955321722234636213712944173715400788326578536556625292991535995949870238759828621812929843567751877825299621436085267782896441297522819412485763318555491359694509465651078767315987770990689092718584611249256078082925947922042082301276980400334423367697478868725597615086876883244651596246644586340449923294951555346577504913158990766395725763864225556680506997402833380679344641468421510426164072333521984521654643666329338104814303397655190433319351557742475832076049925918953445307346919484953474672804273942545720433128100707230392405127214167898803567722060537725914174989860973849500812395708468458532746945054113558814597560389557816300691217208805019517534077988220487478894292996317074090158967659093448019499370922055334389704761835166000099139322248307587326816283364270959044159146343988103018189758088566876250339569261826305622653315861297750984033015222361750871010976093646018401753038053143662931682100894727105130237076066596457730997500413763823951114513192329917433851393067427048422770196483663835003564291140705085788151261725737028363956664239908977651659122358632296698862524953959534301411331123934979108758509798915588095660558823618756717129752282931978164711761675558848146753053188581803192968620536998076082689266629366057880327205575483876671196191050006864728477503873235287287135865310008995196611681284194541502093335768850518413484751201362038917789526583103403158297490562930214158927689183301317623580057508467932263589436325126215688455686917574371731183020657870468451688212202749462605758268127314102241561908012436522449661424681860352123452474008634131416450653884949352208069870942916018626862597604282886213256444444864961704170377655040145390942378084484751900658800070099223989018335454071127260257983761634369015976292563231360480868861175888941605491419331193697576614210830596698377573616221723025364175332316233825755628404175551603720194946639484527362985539281612192248211213144938649780505495669911846465550244370559516738040129732914628141536549028688914129133986067949696502403349058598022218517191807892106431470638823673427449643353849399177550615653728185470991475746725457711438042593758837817484380062580691476730850037918096874492010575220294263247031552662563586331800515096719092554648136993708096880964310199126685881487985722826162528834949197446509413236748851500242810100679194297276636349208423714552797931453631653978460194805322752584701962670113418781666485479254724659193665738217559588298575118786587818911816630111553942684187869241958102774372809528736224898754460205857121780139606240971751887475468303708482814951283651734248688881433002351470724582597861070037006787432886157400967539710099687757775494077890970002160966814619751195622514881287593292667396986044582159767408176995535797183323520145332907672118707533247133472205707609053440691672821272154417574000590416218477330692011615460425913018135036264998005991963469240758855200527103792090214900033367422522826379341135166195727559399556235343733825340012182719125426229191566306027471067475977903214059904756122048432583449066246671308930445316993514574642830389224195148061096020545436040482555127892842486284018213303604766423898899726118791669000988557365156630290248536627658967072241502924403020909304852975593905284173889348741951381793578135971765286575554196734301086184818917749185614328529257234046051203287866674996967881519834907520307210637826320376752633278391620839416982268325495546392194046445618288579193577416056044599569487696309535782837843195491186068883562031058992885398194303046736659029059938268064865716156623728758831560051861149718819218875374881130161422818048056359254812223944891980475212883763426797936898287218978211433250868500006083691459181735190635035839188665855567342043924593287273008801302602947617121129349474708077748266207628223681657277380964563542450346847879523787892608157293590275219826452310662505243428778992942260876412306331270650965730274287244468421997361853234594294267236507550239793388686318286013537895059707981771729070455478415884264836103996409081983972860026447152110906724975303310422368076778691657984040012924900275926615089051779869693512977894295339830478862614376413757208760300577653503359456500721386571343491731364031590436346822157930781941373818128587599165875186660521874778200868806966391717936522756721280611563646800739604004807997279086036603291644483038004395136716482584895494121463626956799719628313858856155140851680108980394718437068360601097549864689296406146854245482859587264866453511475808295873753309889709627484804049535714082346912771713582565356798656144181728600544522387177317777375563379601597194162984923514770738006388943646655814326717263542036945833850725850083892069973190258915633007442865807207330152591462660952405702255085406226665032637438714189934626612707609725236077111692400825845666693453863553195581711249678673559269811086115257419178668962172635128214373746184174771488599346806203664010511212215066199735945333931459299425561252116712470009856428239030638297708075863220982201347684065268370616429085605440201960509772923405509102539461431408284702888664153027112533693616881271141494360692677790227203530477313719462227732939253352180817214391577372270479644041104993629681060049263365891322277172799854469925029056910912469813981631750209702400095093159023337715595118188253670476397330797732792833434557866671093916497847665821680935354567393369583182344064678573259076641047319429660786284113954873123667900797751174820939919967523898710096520626405637152159094914115671466087101548702236108235939573099336971858832007286622969476841346567696979139761450788076465828309548825275771458991254003052265785992181521125863408939219921258146028226460052260559085988423099496476677296006001670233620338820593316262874501618968493589254985015078859703329864492711264021761096192122065638722061663296955318288231213960278196267490633344562145034746022991258467660277025437452378567311032396346516453835542251034738020928448571087973903186468163242092628405120716822778419689701983815201443483438477613321392914379012791693856255138956326708449899287959400273045981030252823609289618530644701123271820231292968078869745475046802279419448456784763865646159530497851475193235283023329407440574394620818180393080605278913530423349198379436867629612280996775639372297676091706971215058136657837996212113626480695716512470238868674857136018272532756460217247984436026353972197691853878095760135789287787891763483535977972393504523842980783568803141306784269068516325685577821037321327273094437350806719645708062888872173708657933577855304096306934898127134777997763789928816924154204368975400605929256688592501716651863726871249604284505070402867329950687968113200012872323674721290361125223439592938104182390240143364491769214758778096121246717650283725842715572821532037528307812821636304770398697363493546572491408144425503584489841266377535744970130787911014365524070812735057010120062224903115549806847719122665403964024371212970618459227595860827807067330476924253718418809321242042634884410300505308245602835755517741378768443347650874475954974584650140136243225517286476628306316453389914508263799069808019925287814749351956776673770372051602175057837513911268625136132580810486268407568307776130595646240756975510162784822030310611995810325557153736048775357506537939356437580583486073354780176195527581298454950886585070183908581965164642569759850466657580083004208098790456071160240604316007359254843378778441172263935431225152373535039306772338037819324521877062494772266600242965809509603907382895084355203626110478331688307480991672636074756225377651938778682237480419915411082522594639152396036367736887763060464132780619732685423368054663541224844250034292407546253725124625649230542258164749030207025354426507007475633820421186405793243005918784045453116210963524347187694758734603923027903524553352684077041210090310103064339169422922224401651974762037869859978790978978566935827854824446091184371818203122956424039966674954844005221748773737071871194927761802104201182920859151010403824861346154430871484938223144290066660677747650595809176447472683209589466287570773809401940191152305387351010799871894216582825006258211021836387308195661569771822781169013886415833775485527572987725655405503058995088244498813720291148521902584906080962830138095165762793000316886158940125645400332149423041569820031549912445176204641907027665808882248187253117106941766199800953265773234651495129909829959255238827206006862961517434600626410901595757428075609599505999134712549148526424836427147466648313422749160803075475087904439981474962589000659557051326213147283795299730829330856227256211735615526300546994253887989615728555796975273013168597875008709173532782725190089035233210126247218939518934180550435414357559926691358974461457561799968827898769540665384863975476078635631397910015776844383207955271375656082603122328129006312994134902654406549462004842233249677256194431963676822932995178709131800585947485039697292578073750516280016292790493358247628981708187097475058924560359735156191472611202747128326370803171960790310877631163043097040004900442904578283110235381263849716674312948855800875376772402184148704459973119405591214936938830455183162887470931999277579196755793130800031823741993727209470208369080255338882025029844553376727416619104481719630855283163832627756993402812395566901959246460717632337852879849784217176792114715234188163209011944962352104268876327984637208338224474151834584040848431455017252307926387764221106926016194826847152344682514455320816954236078360428659006336160462956753727788205398767209408829855707179547984037043669973941704605067377886690270142627917228490332114239462068491639917599289599458019189187325013531651862650960386983145211775759324174325244602930709852110026063805985464987105612004451124340615368336316144261138066812039377253094670314847780196089915094913230893554683544930182350807695067620724373381977483997785433565849627500992106992576606400943976928227812457287019329263243417838905581539792079136331854734542790643365317228645818865525210184120753816715672334310738116129347703326761886288806813700072697873823065262839236772313088679746196458005437494139563525897744170981402037071868712188471679757997202723683983586043667088836629400290593666924338213863925516008925531899680923201625478485138793679200811325956594910644597151474012554568050317704437890969123672873603181006811216073907051965677880318532927018512868066190216189495588979730878915097249464679903296695251005905150402136155899087646646105871914925747767002585315697434313932211585644932374067767714137911326049638388282165945470996932701142793081129999524799156152564596305746826731225124890164536998049412785946388056666149562560951336118392315101586136004362806575627338774099162265672882568803119493782817838803035612583258460155102314411110388707354721115425186946894649196428106871259836748067308253100961435986160840195688916644112154908041154269560433668197834965600549409055442973123936907595415479557988242109839302569683891900529917475763229063904902028529921277024366834398077824980568896071960167076913501253021867505622648011098992426600589556079066699435545343067067724963396545006776443381356936899746031985368489646509768232905597264944812628337368763590582260761230901466452884477352720137562777403829505971322415009694983022116093083469139281028866144115697724881279119487400738253460116472708918550269992762751637192924530911155154192559061162852931175997135467148155447011617580336343738743280225723267767269142610872134847106784802081812520746591179926739813510966580785108536250286868142595782908873513924303310373153149754146726641077298296865410980542320814376197565997627645497796378566883916517430453960401205614191525612150324748735618887968104558970900411648114770794264554650687033078118778663171909939379124123103208509788669218147682559167656175916672193245846589300131409007399677970443336071948902263402126371978104999069411373434511725321128364557044210344005214681086600674097465324058850030184475711167942633445388205908359547482724658270875665750695823323158726941845503442243244711489897529801201025751913889790936403108364966087924033630595445605702599836547819917770520580603043801531873661120123452597077704993158518360638325085337525945768785285590639447028514356125209490960517946689733325508381146039313066855241810877641771654792623090922748633060602282559073176611044826535989872080864722719719675331833074893643233561298777858430941631224632650116912999163079815438981954753794255658959345728321610975994460916999828434393099263153391008931032003427269691500907448682674067106081843794807835390174011553829354810100759921557976741667564624434704571583447918622745843815760414379943350460087705289506817769788352645204555943361566944131089283656218203070626040036647664155522768544139249277502150603801345328343964542412065313444401482567957510432593299800531516277743344895074832404664315711515287601625055545373497017041887786042528251843983119580155954656937330413241138040441735707280394469221212503986510231750341666192519997724196010207997951846353016643277005515255612728931357096003736129255366031538512457261531469928466064044379891890210699862292694763302888380219987072484795383060476911124056774861076047828007649063081270634320226512548315691913635366125128850985452696783838429662291028636266555927500403828418600420225504476580441527461657358561652661005389931385850769500189372206465456312930424483243236865507227810599005502785285754627376674067862963574867426520648453950245866299835049501963291077795672913000041574601817790786542810549152819043222197841625007426339578069377471326643239025411253182353153215675261481297360600248259573952235432082240911323535513871362436013327043427458688806805168563880212713213462197583006793166789924568331934738747176028404209725461499554144884425377832075218056848321323090982941720203414777395095766533668038707649971013384180463933770312583385157385520808144750091798847438171944229118289909233969097538561108362653235570711850616864338864276625739463563007954383248185719230592129628653595115705780539585255885028428197153092459402361015391209681169825105270609634641185707218599614117812864574634429852212430544817347594544305159642393363798957505732150303299533187529644610875451940753784729724788505426357944917820333325385184699270252869093632143556368681864457335115305044319991247172502269790263164366687286577564151621457726114827126286347357548254364666591906013265931325602037823463815667349191030707918296699178681943760655207660643487093867024190205741265092904042348628884753174744346824718784732442896738760501540663123569151745027387919317597335689115240371180386364746860974031304672587601710128362223688951579453210228016198614175244569304334374371101066994697360759637453239042220032329706326022098403276959346178139161346345195810901662347742567547297917886744936604663116112383055497134480572332384014581766701518855490170562010581023174058574507010633851851493339310964028479249257701196343169890128739902219076046991602552096092220217470909488552908473699590659597511241657600943597567096114020325001916397604049667835537142355932673991637687402021853391480951015486809222804109195603826505191681639928628809116800817158347381194017644063681063484102365509883241166443066880726436338200149201950547465153286177529471994028054135115108951908993577246202204262405579091169098169597455951298186629031810109022488851073148506504837676277965091132945496181886496592868232629293203952626226149679992761248790098145303081765514338622336886968113716751177807848788268618112825796800231228094357664578921459375303901875272132949327061099199560681608952653424161642929606699692972408702247071365916580494497822523893377952607864658766276255788306252573342183866875868125880823675889790915056771972280517566349885552474155342347034697678245241430240712330182588940456965145787590427590956442746383243951559065999171853387302258318863354167927659392005791315108208373667283888549731067804693070184717992624810091471533831963074012952429770854889410860416286822247117019782785777886642326900411349074830312835700422810352165095425446247558258517245690488686164230645280580928687777656574537784144159054566277480808106234299716246538772389119286596547524126874711443148456044310336132077662330542709126342327338547665572696345501323645789530619199531978372335924780458475700446024762817917903639392177675991059750181185916970589220266548300855101579074232670878904833821332207935970001565356453420470707129046309401905912308531619042815205581255850249392819113897862853911887207300404123958301655764297619615377714766629848984880894249255727546484411444001643769695508148409809272682996940700475495063102430753381616215833512394495150821282647427242870223175005893441896689460448109453019810651735691907036940297189653806182989031713682317216875082580467284248789107499189567048196414045520826421369946457730795538881864192305879418948393416217498488882730099053868981258581619780891350482524037355474354910493980009324156811922071336156220395774586538992962473009671804803210057723447942832040899682573490886142602669394430196256678053716475659835714908663620897701057011204214494475111574442616731852062246342806367461532867799693459329535953062215169199333986588514189420889068255464286463686038867065381826984704977045692252093674394189633044262905735198504788717815274191687069641837952766948722604666986488592787844148239147372038650348663530767856335712707638209470288447548513307934045046312231553277321282210907843995253992799602558839901604145162487836594086742491794568818081257535059370809488491720604503384643340843247236999218785271607666351330483741259590352392273902872572344625253178763460145344625998597123941570758083630358965295167301056021148731922560593388029064448984168433889951265445017338126201235540550868232833993732478766463745030139871760161176092964889030636085562611479602418573602242859339480559034799651181527927253208544699881369350682667371784434865566203330106219697940785058609149549848309836238013712362801594950726085968656094215714593012318925780285542312102777222761961005271928515351359781397716238419487308307682341752242348896110858388419537952579816701845645491601638551846364199687302653977267237643643639512996454801201950702504896271296001727208210748669929341722135925504881692449143200543488266649703327181155540465552001228833152357256254155298108324474612873187495949555227047406754291890986458857177353513550398804619285984669693642878567587208257625358903440714449896965991789144089683758747512025777478722908128057315936259074587820466675031706639127695263024881016448080276395326785342193734783389985638155133705789502630707792691541612127769622832219431139118945793266554347292714037894058963513005626919203714312235873506995024140110531801845606455140733803022943746670403923377590063075195245861752481964242358744920005535470534809041656776951317967084864800570119061495476744929462500344407384793800134643537821667443975502792892485901331285685552290064582021021091343062774183914987779004306947371203053641517045716653801518892671264540755015316097829844315831019957334658579268675805202712863719364455301319357149915274315515328815585142330287934603628863416492486763993627265921069285674280948099162254893326824704326345606792084665672238879888443485052408427337222445883750526310925620864504018204101942135756852834792308680985341551424228464496068378826933814958264439052798660738783836730583567035890611656572380297001489151360164353913355715679268591696847204505651672396766728335568989993916591569569381435785054608568416307858713113242567477386722459223063156360940203696634098794595740630167637741185910133862373376236638167226106407851129163704500696541443328795859280392534118399276925524887089438446885488723406954623317492096223310554620909434210842416926067407770477530052598945836482167607225858743940075038576723194246801147457490081511144506475400044206329267629242672598710464849074951940154421918007691338027863795545496709061930576401866727892119477739491202733391246397824968873623366670670493265665322629774243666758556451435161338188535842233042766187448192703657229561807633657801197132122211054557982883631694817208743887506301224635047626156732439878058599222619931610326526956029470049455251008918105615617768623203376281617478644656534050107371069509779383639558183396875528224482232580654601792560345480038607463923138610255856428131536339775070596222469787335859016546034053939703166364337547339611228726374362554155719304492560052138229937323084060917423104138105716534220737566591050366580594559704230353255616403968803923067658426874627072254706354126175533402126630295292451917817293162262002571450438236000947215261138667276385821073420019925350784825356554583012469352602775209224672137871937034382859503593429189679430579039176359715424445584612601141909608919503989286418563225953815017625670510737483769300268017482916860190354087051950819422850187109620724884131283213893344248416748216838878375263874099072837630804676399625690307744764898473332960722757608114229786442959621564844518067785997157371685610186035991425875282352476916781466211425991396391531082669372760346321931364364762942266786709068773964750582292089290931398939662605467262080869374590762239791705396756245088341286553408277030082027535197160555652810344023448769199961122338969019826031116415606493326857939787461596062268317305171397565043609065237468862440766394510926686799085243655014952608416369665492525160260827236365006412622439850523259277675179319901199477367467713441668910060809301895431670410235291461280515234032786265919256875301840775339275015197379652552686322692401194109566085414984724955470295014326867770470376385545038828680240485574128024059452514259699441084585976501310612950866444010585792349648969373708640507417923791601050477627030184484542245170440491166612208714918390774662973810335701447070575631035133598788065080535711216263391675982642188054166478123492141436146617279843525060828845601479020647233947704648212613936864913214261389723683515695121493200517437801895765464167397551888340596319821370605442766165078122423854958383494192650320741771136788736841228155116082986829547676761054075440045937327672109880727639570690533447698106635806797661677503814373673665578261858864678008349850208952594585713557378343722506115841637168330562685186815013919526992638300540054334993652250830646125573979442554675980250130577532973354474295366154942008988262049523278635757681373196776462770147979260237105598923903212522973643647316336312349205739249570999404538379425004212928567718734692327814866627797268028091825954336258721222724833037122663806407759925886570355227080806036184792847651214568959932735230355860301819610179146776242911100671874023754665593235053199506649670507452346114632665000810453077571849863646227607311191274271336937180571487140246133731816961271343775173521454060690599593700123792023004012504224300429957707995173819911429030003162427297694150104199786787340642321575160609666143619634164037908375250112099429707914804675015304154334625652700697894428149250539850116860804451010934083053592584567533640034774004182197787092759334548462504343497806428140676217655115018217217304859583128301307019951303267727985588856787845231978043865195707439373790690886909673950149833720141529507406256332029431403343480419063577892868993992418523300070101741602264906122564326800340333436489787588348549764122646142326054142781538335068410191733655206114445604855818326579979564566051276043162585987324545623168128184569337132530653565131346799352210166543340425544194831255546590519842701133096076478083612806961439733661190957101523477151360643430673379850100365821349399397204517118915569101640161415211210638492692551363063708361673738889963570565719602753593169180974948124602739304270986041164439977173795764934745889049376212653845173474555033662367973111108430673576330594506658630709079449613847430778724569420383757744747271851343441857153581022917561736041555664677835459155637900118951192601697193154287507113436711660862905425378394697999792298010327968429799324269855025585402835601110732298991714429059636191276175129878412323753708886148610008333647494203227599568155086061939737112714334906826338930979767367533241950587749533751672964327224649067096232344380015185577567469475068552957888336313766353851239133913813482587349347049420226680630672912042095104935606407862355734345502330357577962806042515028613997756240967724173666020198925134605430178598948290119012105008452952159875388980406255695429165283484012384028215109532423814685668542356024101351030941097347417033464478058429764997966838498246750848505954966205625551264787754562777576513530876327974869487172795843640705109070299599743913486750972583196407627344106840774031685062633845719181037674348118310986048741544474132381561478749309699775216265080091659103296820215675287008774952791923057810348114092354349810237776858884572890748682183108174735584007955873487626246833128800833405326519510433524647442314994857390033213123571932821856701477392349929022379233486271094045885107521761352674806605194384247412584650824444101863326197725141615193920711878153458444396378834586613403902372484871372098006647787057760798018350057775006178068130043998992722521812187221404708570048718926514367419550201846513689872082699019881469375731470387894864282288483348310947728513723967534665303101234284156953987844709889108531631944002896759929173372690343874552440513323013864457053961627856736628147344655388871843905854090168637240603544817472352722204492978121252444350477401359494748347743929811845888643995139523948230964275762900136286789863633156204780733029445801810649763339250754958715316582980173398336109820305774419790635252155409013237007051833564537075168675605909070567629216942755464556410417949971733283354750379087347893406721282879351247918535706173471038125882984930834272590006504762840079118975017886200999379703877940057357687185731868937451899759013819360819956192081793477715848586820358984754514296231677650584418547960894117987489312261840598715755824767066052634260433324304464659698496302463430414814777633290972435397398641192528009706509429359025752351774587710788053548713097546718693381568505793707127105070313186891103877524584912936917741680076438726098335053222287143877888564201846578199951299740378166935136238957480207525466271425848461714796780585754193125220303931423194351580475152449029753599562022415373223119544110587999799913675101828914172301086961742831332809777070154164241890793060373024837342337057667752274130100829528993543802271128945627486511485112494723708628920953349151285670321029789302913698918944650703993418595280717852660773617812182259107774826340937850168906297680619339389058782261115727406427504802708344034606625846768249734258290817108805979565559757142523988510740931508595835935419644064755928640168309981460964179458783909879420078222315145767874218487942289986860817621633254375694591535438056669709601313258351721355404093808339654695209442925776840834030816168429540704099696992525779150285580639433601435858144620514907514057239194119472817323009118061663273625835339789642667868639655624765143662086390227774157447687545974707071161602131805717799100622649700492394418664698063447828519865048753180439988429950053294260915909269284469067066409915301548252141014407311523995717138446463534855297514424931843039052378582960398240658401580375746000183753777665561976673259902823918299194805609883803250388399324585044076385075550514639790291688572127937194773706261742421753165832258046062262702990569425645615014455404004382447994471190396460986778764487030082796371127359206094736904245196365682242910812290790265479613082604955921166528007829660338671003393119193394740534095346377161692097550124754992440091758903315225492213956978424256748996822660401465877305024220167626639081567445195442272205219442118414957278475169192103835331512028473221035902306413654743887790824380826337135142648894951040620840391706609737633498828793847709507232873944773985008575135019347505460424402934591254810177488580504547914446182033689110139152966345556912146204022624585393134282654844249655497091485410794519067415345465212247994346274220965546691807075745782826203061955870697174224447861558062775091953693166105922920405154254820031060883085591605552672532003425964086003038666858640835906169046285768945963061503085510135604852656099150842364064304745362100374918094979692270327434169005665767715896967151572068871798243064882516197642741942190515980084549478917167048318336723397007050991709200645586130134527389413335144408659601112282728680302172627472886661532602815332719724666359487318774428721267051270123635264264080839915518802803033103837444207414225731636468647602121890379733996852836034693352980172981090131809213586064348521820230920975484054202396130562944689946351767145831850825402717744906764045582359300456600662408676983659610359112842127796941697005797346783838076079107953716842914839795042315901191004459296377113115347408844705234284219524413278251542384907188340772691118954542733632893261998449097029220397304718666832231887151505916452353067998336060034102093299563389615721913369768668741355073740250737582898382471242004615758651964270953908617468153049255363488382129683274687316509444514891649500088216842489008265927572567433517192274598915784445895579182328996541575272174832360782683693127970213699511686446818413164943634271666616849872064375911384120030820284530619836299658689858063264165633737834308018590083003660617706741309588886149874606700880071603869427107318031619968559752323129779102599001807118047735019393461203195669901278942349598269098468917041459612576071783962753635971801942363647083361533911029911517685828456100602996266325692650321608694757092397913470647451258767924766630195941946989409261712878067520140607656344474843650097421361296897361289626628866126136835776591646444316599021649241338285007328966442972392300623160452899658813297574582635571781918126211562851939763521294234114659276849999379375521360666689938225951426036889663844974171919079789149389257488457381928232327401402250339111955839452490630753913603808467058922476581403706463524986893135630109082402383647326941451774347669365975208383496514405419505923231427078026328369665887415377541152955649849359958612645632792452848490066969929307810831988356415489525814653779800689324382530593548979122542107868310750781500852260781017546505981863823880694714249543683464903768840136751079095659464197544690048748638516338617193897890579343088666897944673794098753808345932749617461243915767741375847630132095305678483004603641899536024416211714164764100565112462754928277615324322230938056338172388677300640180013569978241282662630125221358175025344105063888651999538748147098201226853873056236888205331916906227694120595053740182981500899763126810059168325778957281393572184770784425297645667775822488128594656573779865596604765973481247645710206732531440476278379978549488113459661419693950957132890494119991423978305997087336155410183806044222709201146406800829921785333217461862098131725080084527492569257855686457639935321892659796768244717933335447457518493017424626159794993895304572305470853047615337589928068753668864051137540438994072096064043381606054693267206351972945692569599933359664145187946815933050104893606457872109153954203492405718326681225007417002669280166133907276563467226187371111232288028324348356154770486477582092288653016697907641899961993356847684761026403269864493492765031109395172005214722727288407386503772262779029940969684723757906506091242228737224455882359852880680185568825471167797145745222743808078180862189235412499342301683581064228478596045619531279706059488504175843031906665878883535191548509242917348896113894908289989942976193694045391149486762669863818913313563899631461358910108006404786236378909246784780327476155129424482384485045128514381831190231674760634929423536488068286656265088405280507557516998566903811376483154488426819386209391994260418104340900113378796355107065544810480298147922617337949534997638156073222253104847090525158878764154089688599036926342703027478745232324644705638489956988072569783224855151040389792888410140447105600902032401681886076605780923140091072467109919960075535494119773605306379057662724217507147882859302102245869130445518991302246450274390659124748054888286822014531400489187817130034746283824749302681269458881515102637032918712303920327426073596775527111845381562802897017320244484160044873742279362765704931399691838102514368009808122245497127261203991278389761110341350014650456161286633460234906371134471311637931875881243416306257515175192948263036710030424162511724207925992947890437106227300355239545740721902736990970925936758140674611060583123699802085472272449935229441602320872330140581324535198227763600048126306230001389956934043647311571746656105014031927056189804556693320836135955235295468824905040891709541146311037454402052001811917695651049971573888484221062735687098876887414324697495858504323958007705472707514065159989149121890901235062712895750362306169595018601544609735269023573568056742560387790929196790330181160251524394813598459608819694889077799655034729963183987383643389433368896182292011308388510540296308943399653991874163810742046985560148777590335856797589073446978052458484008380490930561113580587603766117713633282390947105416700846111625818764655339923941262198053933775376296385382943847324948301975585773949696293769048232855948209451313342147203817772144435708782455724293590339461644404556435763715386770377223385837837414726034888768513178088418246938126758854409164132870125521560781811633730431825705837092812852576622155472662004012249836244841560806691228143571408442476948200833652269025642161320918555955810023507029615454274098371858209573801260172634941030542073876662154678156416145872048794191906733663404378336576073376931594869650664412508330643803119432631735199312938552153853699646037494709724625273893508484673415952323300133368382601955716050485156880112498231889409209792799506613242211697621597184579014091822864360825018203025512292168118095027196440879660021601108584057987508553831678016814290783367236242873061810988736370513416785062563758864410863915976382403151410476472630239078938495938981961936423282472844776787325166914809173359975398551583805180008295343841050071643241118638570162007842424462941079533983843001506684467503553184216957862848395056828895521313586379752330727748030978048464009014175709676518535794996692334150956937596940737142997200527950593179863596833020944735982279672043615718458062701222097191751866395285189161220190298051510692477097860232651470578119988608529228361796997019586423433669855423899977736532446028223298396360461791169813403733754635325652483128740201193512085262758542955956612211805230492566348771011118283810795285776245441787874595830056645324073457794900497348427358153132221346957016101475353984593724321217125164020484307013001498131787781044299820698199132965143366336428410462626546908689398749876442195935856765025082031087690227474823646664335316351676193820949776668707776951400357619972035224460766087374437820164334813936390483869003202565123837446823441840567566757697853892212069768866388559772349886555482232633421615080734004475927784629792282698218854555473387433706466558494779545083781713736598000102388943856783258712303040676777455897392121360564851789993037981095159117549851215012479059964912529791788936089334686253706475889185454111854932613638155850535838435767362371258113772744946156069629554850239924112611553667775184062639237659188286257778010672250835336042851911237466134499298975151002186859218950711228879623323845957637876131929583596400821256440138846283834066876197894490300813946927235997299971748684628183065741387388267569390828692199929245498049897998921070800246097063121864266676321214659062681342475267891545207291016460772467763683713693230714807793041443326562878000075060895693585269645812600533879232779885394569294727086236062478521089741158131767648151153018630857495220176567124127426313258505682629468248780928817613254742492153948367677048547045897271499132962269087495169990064499800729956502535427895596701603345534903789844173517571325021403651314292313035614273910189895383124473692239923723272281888080759050184454008075211579622134596590326493961334996292235880160730020894636890939009114661930851592058555752801348655397948898126893506656264065101504243569772132327410679178174014478229648697628940307521794407092768008222406606409058615138816357324737886068146178104760341723352875640540782884252867699816669499128512364391148096558022055704055362085818298090997714743991135840121758971659395573461362187481578253815230732827907164343233148939885044869215349019644899222299988585481702555405711151843179238926516068002415895038186680819797284265200530019354476775888865545675452378457453945516621425594290823441491129963304141496456915578046821155785996225292739043412342872051222824851750882156997362381300562543508773142432399600023204297195383881380692503317986884553689843193458686864790094250306256611651504363688040177627957298355593838064958353428875287374460335894510074871973607010720766043029890851597456276402053147337768912331011313450255808658919855174813774329611806397672824199713964583728819485759097688515188138503938776210288207834101338485142288798432055645043211918753495894446816096623100224301673805855435762076418427631323168649159670667993274838827974357572617328933877457139658160564518462792170872058075245637002033662528185534232921935369213340155745712064637349438304868888788206336140454386562670097558578714879795727534592512960623496858269330166774477398932638521668084134107219263346753074763014703614311291231925846732808864082788573700705259591971717769462770275659895329372533909013739838387852724652926864618616400159831932824399108630702760950356031439740467608305413484474065942687068231341039926819517537961049055217595433596784347206339192398005496531097054909167057223514033211996918103738604081368798687228600078896593168844433944057807839790116522240563192395446690003589938648263551339031197911030573186189411580388843321313611574709801776663923560450260376445884198959853471869217190825334669836322915418838435804263502456653180195454168017855712291572221474607082597569555310736017568497339520682031474735722709928790580172871816728656366299284884397173786416184164006314363652633948818024761499141340977343668228462225668331670825779876116086033711432495506642989575224232654301859098228218801848978769414631447456351210306918479301092971945886050030751082188709309663551730259808120487631556697050511802905332700289130928492263919636141586954211922655323616314773994625141740481510021153387342664283403104708354820379955534504701847818045977990640442114655990535453329293816824526821909345082737487724074960997401419384329512811165894397022683976289612277760290985762955878953143431943835164999550097286266925453847168531550759228935630510746363424765717148620047713252628108426589942794118229312449077935324931489493796176016430008323733756712482366952386106391412575775184154963247404967985525512487072275874438627671508645811226668948340662816266242938111060519431049359863719584385073720458242343924011454128542827178033263278330173431620434541739798533082368638833679125489233716181495899529172348023666937912908085412919935390336605988911170365284980173144487342029626774838823464925673984942583585639774326845079396382069024546202258660833427245811899807565970863696696912499324675849756687520160531470042805800849140797172484652947174937319553446182188975590303239893089123358139875463304612796466003428362850858831592570400285263621705421650908659604669880219751615363717149989316018919954915819369015292839270137822729867119501590639841204490325063256278152588506286284891074248216737588430303702252230237802459947997055932764628290151596816602786190735273008190985051701848915127930680482052338682612798391897314265045559242411856781714027754296619938322967074171904239019090319095667840406286032859241986248745810325270025559011682532748880573915961300533562986794685064382944419944850954158970565871874673614576106310877566855612618131932863861131930317242035991683490534920489089864722625119990938875999658523874748215201518226637941945992031862373519439459942042464183758302121423340788348712711050366589193464803381410358147338663570160360698111373872526249874852634455782102995750169286083801460562489491096520290558724273642012841385222885562181478096336819130526709942687090873624737937369648679604269207106150091964269830291659789580670451384023968527724057254507419112683153234543671971476408089492849809450136581699714372748044101360267877061185197434551457641213005322533796057460288658372354455241014824477203062374738207510313696674622328399059508448613422463253567324717297675171161673266103728460499984451992076766883871294130792823640701350510544057149536165981196884706887202467809896357995997897370757071699693920861695347048870309940491457729832726392474894290896284688538519033267874016638842279893819838468633153585871252909039777304540587216228455396730497519071163840134843174282517516207064371048562021320211515621484864748747799146296041455914832236344771135406575426407332499312694949532645412167681479597926896004120884786590758643032912024777382427799816713303101935420449891062423931226637301425192319379897106748119228931939078124542711125133995385540024696674450272018028271335938233464601507634959656286176645450045510784899935260912284052827484306759186152776163230570893647755767454297157973771984109527480667938127560875919103104897816955265974749599987773663652213470069377214258590709631848259434837018608836642899512565386680977685283842756615397148527314375907360840516880532872006319185231550597301120471890654967263206809008176086834252390279612262093243890671305022028505909076683515202761217557466378413933472559216628985368191617699946367698826653262594339011682288718551321134696799310522152245996550653686602865245602504323819078802295583102510281826141460868226286993301181298721850403589312502883066675789487133273290580116553132239443079264339471277390438933897303710075888430665775726055689977917911763416148290974871832739367525493396280971653566340120857419364409884138247493984591380500026201403480915843813893737331553427864996911880652012710708904901044678595787190979996310109988942846038722764122032038818256847914180469819891984753529264912823483653567877414722235871553694888212722586161341043759951139689431959545113692391276993346957639163402673778312685416096412012069579436412398692509232383829530916565049933020603118489748090165733406781646385743694972276973480082366446837142221539657544705529077558089117201781340083653579264415388162564297477690791162902909574981490362374183539453766127766022297068555232914747244304743811397315579132301950716210514625588154413739836339046858944901183506149452633890306501929497846566112813990233487672298771239349453662884380003560616834027115913073141916028090934361452660326638864442508332765583416581170897988869738299759006537210617939918742044494086697326721610511703732148905402033240687053186425722109185377125076215934150017496583241309355828880174018920358301236867402915014916812222343543977762805123504265389981801143188886185641656211640251186458563198036324861701050352396149464842953347438039398100624829490300642326077307872279113504019511779273395534300380566497046589453028061761091819985844877367474441395339415098773362255487042146471839393764598498851868445437672940858587008208744641854854681713654612527382279276177141364798826951434903263745015136932895514402905144774809809890519338288956678808198005477411434660519777303061754938977666459643143457576995741383479805999612705556563127975662608653941205379493479309602730115422293091292960521183925614958722043183726293301863804382495046552195588031227465638501480953058094392049398744299290119941623724078060465384121847672928909114222057667943929656322845621865585929078956035762048261122364894523325606737692907935546025721807626135934217204470599323755667106321009697613438941825965366423458566091218745841505937008426966468303846809622255225174305092408871515058556254411304315313819653090272610470993187721936942947178635451276479525155599698541051785162910736213875524906846863126930634831734076061889008956952960367834617477220955471916861531329114686427581432366219150062894678984798794211121445316538021497117693917563935084441902568754366621050915333667913227177655481759835807240313942261315846996784116900069359822088606414937800168770161119964450090570686408294295634952771846077792836888665922534527842757163035125300330162554319559576609222626894177466568803417427467071502264145899341813479366842231609466140585089212113147508177904787827023917170117129048372241687695383317459980030426420126563791565955480895505921800669339476407457457979960095959132602694660734179182966748435944840785246861636025114378838976471784807106541887546581491412866541941054922132681088154710902351239801925410095271070693437851050054834279810284399447515600448680437441256751757474100689585951869841611355747502757302994998703675093162763068810578906452485140718228632977008734553708493856317414435172969126763281238286634690644947925953001643368025799628456200320062932692086300386949673853749906808708993969914894575967989841259908476903006461519099358873130365730024934050008894531205838923163652993219824531480220054403095543274382921076295124087486511096306362907612281362316781552739488006589152961447456424039733336876625582200267349053689050817415613179156967403324179453836580718673228818845062377257504246475625327207981475257957767986125404212404640181773136932379155017682696977060334027498005777122088851718238330476079221578965745437568363477561961341838406840069444831109020929599827970244731095013948907083172199927188474202524895595029114486381891645105359817952023676641170238316442980103644897530478025494444030685819668358794771473106653521823416727790518101840262700118860077930688439365226520023681726183010656675626766511544124471630049628116172888772088093590830235497328623651641331574184412009483336419708565542060111902357357547565217151886949317021086183141841639754504474618718920990095249071917549032737432659642379193998181976182923344485807932138696894829716293236567379083525822865883705651155717976853903300992861231372095684192193455927970191904991006216838250822712168367143841802672867347774282552727636536153831472114659083703348247125782479824174628020411698686172720870928241062811648911881570666619052609670463659205199872039914622475979954907922785204452584236190864769554930793049750388898920653372462594890467405204706085041727355791818781043002836309756936036550162744311449284572712801116310377066461639704344548416783658479227668184860429177599961564156541287372016930469735709478403309395638784922817163056397924010850478578295127374199224023956090962355206377283880503746153104803811090503182363162261703920064997349035361635338340983815771333569402093852044802381220475922975894225706208237056023851500842806068624447890059413463194211005995388350114049284915224828761321362721466775758805050898019451444334451315868336181608372079900211191026502293376885555631334062155514549798744092729713563531462271494919670550851408523234417359408055018783996301481157726212729142980360211361624456741427124228697899583197624074281967594608514118140346338663179328552007280086091672877149205026450644154257429139145969026024940337043634225215466756961570686259770335902428656206226838464049954644295603491597012858778958509536710884971775254898831837854125356378836209120273335905925521791119463721194134829465474596318300683164691415288762489389387550425215714906737916447025521657322780824041118745413728315209821958285135010672578232429779011841479118492519298160339242761377633408675596691039826023088438463867303015761594178935685992398829856778586186033417821529356241053141206460000886687292445231489896915860026336418227968210147052057473560509638886166003139883022477362277150850120151103632272511280614004174948559748363665527930335769067069914355166831609661322845836566250597823921644680108198728044232916115234851850032557698415495333863686260833926999934891740555542558237437971657267373554694383414796717371725009434997816115060785790783462478412414810039811212427422747037251535558742427250601734818323246651578883072978353046503918057490155891359914185002757857533338516612157939218474406254817619905445689504952264790074661872997793437215185783257543173782609911348047439508719578905788541091696412672527679193594452184726095778502542987515984468969006321245776426603298699121894398901376464941257687064379620482492234543239320646138548348817683653539816770043047975161359688253252094825740534805694132585063701999817309080718015339470664394694433123157991977576542642541939068963133824302976950141861226931507602184597846604580410497646334505213089024037067406719248678710599447120383297270774140713338790952260965675339183083504270112479943963278674670386885161138296592347238119672112809389215091816810121445312865359970181822826981095814665822945378229772557531836648700082906749652632890399913065113922673860316253296464563993344634578907300676765197622165125350887973922361761237208521110633912483660038135481260977263688681547376097101017195821676393313906907443925310398245538159283734551046723240725899918225392441734678829585382361233108692350155284272298818548494365658294760466357721627596480982262407392352069853265072742154928743124808906641282480016150317998024435109039337436418725228894340341343483159017599480950566249478545128160180076250484212472267367587949691655915600292042184173771843856924628520764905482145899304534897259995549267509735148240808957876092837018819917566135350937465673784199692213367050026281893539764428427348320643520608166973426360536959610926480276114193661111943510425508536056943068031989930429333776112910148685331320881866424254605493579539083135088655680830180043311488585448900901567555057796143606063964141693455321762882938910979222016679396386481877814762697435310381125152343665872534882565706796577743853445152040745920098672715980312041913120769301825333196511998324172669387209925489486829128790741190425771156763021591093593011710896373708558513297497463092791418437491688274718966954637758270776175558278490020364963464773730245296071376799222276261075352903062671153352510393010700190462713380237953349559557336232940663391107959358950704533947062495647565389711767237917772623132611988705702429012691471725196932916861459340620147676090164423310543064241543321893672385283001922398940827239674444201618573728124659340468254511815630210256243093309558287661033200645448372052028500520573297223294518203902962491092849107080386684668897243609613531323088542063852079554933320746204694927377349374360236956762949544629762408761054524237341487206670890459560784900920983229597619897667405088347849233749448873281643300393024431859492364998041567786913691654639530936140056335020042952063121548154772661980069901880398909183529753927075677861365014294044706318915860802722462820485763211359258745740818945316273637056531809721885647111305676956596409645380251928318280113993213344564889055665145174054238172481289879159475194281106789117812154331328609096891310196151634412895958323312732288360831190173239072754795144494600374643246117296713576918726384293116086802487850292014382369033407314554635598471111752230773194356642686520759677104466817643345394177580404211879300096191564999693143086602981736580470775916735936537488824283455200622489333786452007732281777310027879204978274305409074695514191395958341389270135546464854153824126824499347541011855455482118366582310367874563299427754654970854832872213692762628893662890476937496905181879790119143284015315544102028669394937993237281427925258694237778239585615604803065435837478563025643502329851652671657125255264895949454979133220727753508793476398370093857413785682899581639357908572124194166896874788310913605461020622603132234681462721958429337964659751035726474597450128389799657381673131727830914319049886386946351283776398243390904267970377241272039311930371872404683138497074820334488983884788986163478810058262419454477584039959927391774574702467309905101730630033977936746364094624142714229097960064222663929132294948930046143736799106349659953262109095472193662650059304689423782245832390876234162065840842226399314783643609552462535184311533573168550588877379888136752193482717670336453739307912077437458842755491484302038424052132505678962779409515472676293869636981099793960795505063856280251455315755402275233860735117591888552322250814319674376746611329726879216825346566838256801751263772912660493058207736068572560740593308166376114395053897138852380815303185439391200938832892346855478435470057647138736248883728024908156982057155040011454457194472478458628361641950182320748488723191610861250376391331420365643603790280213871585851985305157063751810850109933309114764031132136345938193898795442607127307039407433810255104513514984844849644016407140421611134438400068926068250181180534034399367372747401657506768503385611159860571070138059667927231198098481900967602162229189723646629769735628787224631669080190615569052685409241065920040590762173245082026544343636794252570180728597900215022209918584035053034623869210315695206549008569038946515268934883531304974197605704200174261938879644628392279404905023757508741052978229213755659018200913875906511483023948361363603822290930344420402621496740193372762755681367362747246705215060210771675257497781716729016902066070949319299668872906265391388172875533865638674986855694530423619855694277130471410362344844998650313926150286047944288813141311470468493855900793210923702203119797615870945061834469570200663385113874288438634503100452917740184534542492798674965680514795689765440377063673215372714015220549562353579754219932049109720470890491368025693540407517830522198726440075985075332338360216829089139845657000870625290905177876419328491116235488900340991411008903594855161684201527472605714174945895307893492181926610008390808471589841377197550378044559860965689624123636613512817858209606317153370410342104761542758015175639154908119572507562304585053577851384696500878956735855825160529180654796292433750777233544415924893958691190764778291221237751791410319990853325859889775848313495718902789992020719785904952006980860864758283619878861269148136059035092098828813998813627333466577083104956912819568716930077515582678688748997345053853010398970056117487627270534365249983754275771577606519300632503012666954120910811957027849560563917902055699485901556847050969123104560467423670749597999178048337513451437207319593337774956807765209968684809178936596641453936357355121677367795267298083690926294507611533890308394780145924825666090207801366811667479395112858659738448197684412040239122364404831641368901040707536191938347367087773107753279840092916962615804944231761331601800538611709300593366759302369284546342014395094816140543949459274596346114158252850576979893775849970607474330080359768789253118095057024886260769123134507559125848563250104752951670283265952235392658902684639109906934043423770265748677209052131362293620815752559822146355612368804816915983778840489681786086325189381308023311678651427252935059174587703811223513238404731727327194320390858607049260511004784886407344465635082538194516388926234104558964168570612707778075388084277843446841822595712480741301822528236933615565683553258018804291913832384958082463447033769189846233811169474103577661013407799187465590762608661193667527180145746465635967854792340780334515271060914777267003153132612911621719604609922595672492307332293529144304920705158633612135565742212645619342382085108447928992743293393024677029742677157368172931341932069799518350188112432606345323305617565337610029902925814032502035633658095953317315559155256627628699353700636302028267855840772192493441497736138226701645420193963888500118308486484483580255512686951255637768758830501415526126013774328383345970669711761784315790310811833043738263592794539382258187405030445222577320758677546735013509522228361244512405609999568446895155689915792473036416817611024042464680342677809515871870546720240290659200487408894371971132675539824973644614006283780657440520500594209150125687249273268837183248267664016675424625373100618404576079974041437845454208374264867586025743874575894543255555140776945040626204818463809451636694066534055067167613024715710268348530034097782163883762499028846187553693331643322799192091582292259208359857029726768586269315929082284363148167455986398600955655620620854242254730876273358481311039450503013990715952769219185589120658259217629285588779873108564540053594364990463931763426442058053709084055720858344157987383074356805033377852749048898216865848524966406955948315443291903510620162787930720320582782113835286441074355386436162332958304157933656036572089442030443484429289798967420903585644162716801985369721426441206202873231595238741413123374817516775425646014783950997838320474204045949258836342069088686791112546197766235546300625594702458458076280576446831290435191885291078100375140695026277061589570540098610746255745895508939606526846892924693875026909075454429637754700341948004467908172116958444758087927673733649092603039001371934495504987042269915504139441221397144007538301517362615725896643876238389927133670744711524111337456178044397080435625960922476119726670835139875674527429337686257359228827989011598547840696590756096998159167395068556961526376435835410310702764929614497203096647507196343547705895107202091239673819730093998397226450178591651312384711056416197162993389881639295472006401389030943833778586610463099634085464136403897082033742483074479045358494107993161808454242599691931617657271587424395278645609024196607166989540855082887572084650265282856208142982880252095620450260111371031867229403316737673443970187661936097198381846518678842441312838625790912495304723498092885140563419002191984086356077276025430317703419950902644861108804887197239724321772072461460910740544588334525979325954785374627941528584044532952860916199583230401553679646130067824924645723508901519335264890433213400963223001272681098514777588801470509452867542396246765415966381757402854191380876160452583176797020059591631464297635802934639398833294030664799168914229426732539098306235728249912521901824774499280301954460048157645665176775969927485884797036125350635307271481358842298048569926890339199385446562774174639705033710549110794744856559229722394722811942538734183400284674796298397535248600867616483709191935057420149256609083637302303636545094159576745729211228159688607370239281390668622591071860886437879243052450020378059528106062057880451872431740642185762621803265509285896534537726551176738639398670647553377184212781098247723002414409683803495608049389062176915029941209479094960594813789700733157146913665786350361616758843361467072593815991453797286476117192678447308536787523746386268076644661032024834371120225046461759567763193932321290704292762764679107472049583381920401509865916531470813184688582407616335029352473100512144817047959402119169178186402581776190386265483513984981752642965586674942719778978144528898150185012813728095287576415982631199373594670983948431887952823511094486804201957553459443333379564377889239867137758240110938903892709522573866787782694303954683496334788808476671919122390171578633488605646714211836619444747094913222001506567212200481645564287038630820364538745383204751012880236100533346319724801915596390026788582938927776217595878991377899724888220613793729813258220998210608552978836896276420149621611104209138243764366668606091557617966319810139343423499975757006402905431825816873651055421304484392504050883896002423267249141708372241029119554767537862504262508671503068288023018636977649358948303562448749565857793165640443604800358876469230629233864291247361088179974151469660674131363842211807030309238674151513409911030765031129808022370321526221081259860281053691826322573810981296158123164815729012972520960214615820063792091168829508268186036031100406804056196446051274479089478856903577096341998329447296619113213458533087217374282153908416757558063774674734181939448058387162826738891271618999174622177520493958993040577593295494771054332441028872615203440289668355046340195448139593135482686528010664066495122317915138946320844294309876633896392686507359114183328128377470902069781137508803838348492611627217226883176115036302941554828591176289273857779015297594046779022683899726092677131576491716155831119410070627993106838896278421127403218063288991249911551885513502317899255082970719820767001795874299916968250462483465518840876963666476043276748051597316834067615672540875482797400200939662481595057880839472316006114000554886666299932563326277108535797587939903126579717910852028596298460096656304651459141192017558898061698487363400591264907537417099500149950701914349796304867337259340096174340511799589558761236674345773594078549547368837892538441826605424239477521996760038503857216192705284114253564307302062972988566100102154767032704109328027125005752174944740184697208967339368705834397865613055735876657147952927939240910144723952374755651332156134211926534445767909801696455294059900157878302849089486201996827472517234180421888994935841641438969778464085600953753997708649451943681863870121049198034842481203509262918629452490549795251692186503952014431422108077406446235796773100633749001871866044076822629106383189702285953595165899661030085322534247679117684250128942533067896306978859031782463122346299419528445082342513509724783250982321514056695931441340714199269026231646898497203411058990011642178405114540765567966769137288742770592855312331091364266870109711741934678549430924131214573118551017729811181148449974299666153106814256690704366935761665784652394122906486661573759545561014029152570821993374457720589773887795629619166113526965005278252921963753141957452727059516660087162000651590891707232318993799930364135376869879546371049950188685403698334769789627566606278126210400671894275859799669596897901429219369166631602360063784529753116407400065829487209671718614767209759406804501458088521902797944753315636255396601660884893030802049049940882221875356132464377532585882216947139797644814194884687345943504927385498169222084253433741268578879739285465587403905254017571794151988647903699277424200918771766136259992097998533398840562242689397251143140933762541433285746472120392743445550446494244080800103822778371577719337136303707359054075043714558726743498176428029452183428363499905717174181245227731527108264377325971188242455015355771049814709318529452012897561049417491174422994416961035445145025289893292868289791448985030607428457137270435157846408141695129118173797925056182058708064076043766738444036315149852468695946653287568787868729891235302881951222313170951199305210413060374804004441536490337150780161450894043039990774493155888185660804337701862669219851027768921810972580697623067836762413770916109202304752623088842065705942543565462544930436520917156448639444148760408657613331620049738894507952635162812081768793270456555912109335936141596226422334856231300785506796452613086142968427034622212264977182921901863014707311989088801140027752315765811689777082588320224605047343302337223013133517164611887752204713006378878028776041705915916658679868674232618279276050485799268453199073910450153629933897675712031779591460167655965741644826684632818800163119156108852214127487493108731126461638058547675471633467982903151910081370407293514870283302349875311095903570967441984722815993516934208116639778989967820665851378678234854915825583015687828989960265592644002206511870542306346416717666148253394631753742076309910793292553427552308569612992396739866986380175658384583547488129522555128846783287927013769675778667416733820687328829499239365508975401642465594722280106432896680868640724027334160059988867511347676248918075153477091074270624273053534545695350693511966508852907198445823337286604016901014943594020331039299371200514116781927977457312398208865111533762017598601611057486745767365247416283935280062047644394253232045287942105339648538925360868241731102347030522728952912551553149865419138784024361634782958982930404480901062588434128646503855987697738157868425609833476845792233489880389217793994513034558986692124735814699108668933514253748312446001090139772930490047602433716582206687268327041661840576400406982453846419396289260990208809651106446849750221259105757261251864352397937585859761413353297323233150888348871885838073693797060093867972444001447198654165498260473909522241121581579003183322788556711769370129327599566284474599951415369352531561251131284618631839727651157304014522930110843071670917789604595146148248084556010418440593933298880916725219410855390786681254202729916154524691456953037243248353784024384286570952863918818830890958649831712211761945241825943149940405401541496561150067076465280025586755503266760638667218914896885623807945328522344545971376981794900343036891602625344864656483911772953929448398623433243145651266274673679808190656033534032233374059098170896105185072101239010268488948984204588020424846899342114461295932249792816120733273152242767046232496627877025010680511806841667109142529516896540233845307774269153361997968898398077915180603240353459816669662426718267597268617156445070319292784663033076212028066951673536941783462055241848682789720356353555426492331383564833033024320946428188635976252577708576105031601314953202910865734892640657328650084600408245278145521485323725943053711657067660717722697790883731429364081892947153580057411334231253673411856428407167390238363556910770812630269697001130566879487970256027344429888123046836166457274790831017650150931519243842027114932751523771636226355058534450270550667839512566975751229036162514916781761369132499967637033358833902515973582380550784079860618225657168593276189443965627825788617508539093978809563369500144002107913846409737645148845156086189010729752644797100640211094083455208759299725470735259474356171741103617502193062456678723537703322821848655211646490229563012678607067766239411172005859764579157105047132153784276235566391881241517671476580676615659580557822555711442022025148429100700137275082769327648869154299180850896612081076454600613035200900598557208006808314687246758162984982622751029718491845310687008851817011216736475977805336621107672287552920564259201057543114788283080349483038829340329124093231794953702085079533382867351826564599547469214985047389774543665989496243395918389556855804764963989608689712807060589426430578756478597513189577809752618983837279554347199563989207784688869072149041376725541378484176150677931288479565493699293813877693711299692263409688138140522578347509321939406200926544974679659382232324821459308635015438263108253256805578797490314683241832990495343573012618922991485191091082996808699651002994767579894455676410062904706678996582853408850332887001893930791224201255244355064360081813993728075432601105333211215206325491915560686845590164177186668685888791869160746624943923429547093377590767990903585138653703579720930474635893823237918834890377046573633985559055026907450885149614124517193209991132644728171225920636562434490160839615176714226637651440613723743190482538390361961883642121935234763641411040506239108459062863188004530272940204744954284182937427304237098155779690025831286973116762088090942565393253947136098188990223315013238284988761382940189675685653237574441038430039677947445112450330100950927155597161338839707722195883867727822915138862387226256353934437056066885456297075481269150172015291858925158089869489110980784689680791237682795911417936452933740936572909426023030717212849911240313664854584440602711485332351303479358443219731228178618502637425647668342277105739687007112232216472401105915292791568936893355117346046868694795548722331080260954846393282668091284954328578749144446550246091187898977600840966673260490609072314732343004805951175285420350100769396589242962359370122205416371567923434915398119596678734765800475106585600683525908037473634265248621426405496805572476669495742310263827391254071015723385055359344639162416760692905492769544051579852662496094807175109101862223073592233309492305822504432369685394783397710589759759140030690951400611331902285768376486326498981732540885623687316664237220031498649409825227500814811017182070262162434242174255533350226084632629467341908734002023769524959824236882910078178634677379106622932649844160769316149390954964908558788516573274883521491898986732383494416949604773918985111149007491561680371784934670156744539466735763243356027290186189433142635108104773037208188683966129681994440787888805844940613826397745900404500394670917384044289212936079338071581993887938343690150824099091679561128823964222554156594565397532593489156178073255383004958930743249150844310911375280967918092339203632408367773151223911621653078784554490301787249192247290815176658701614143539580904358361989825235349245843675320017419887605280940135772707136645554197914970913756814950307987542231256086021531751122173599483669028608497171483996503192833023159134714785709816109255334176492254650688514277299655324576830814649244742096089620884443905996063226399899694148763347654926290472166759999129687684015576243554236987073930441151882183966785229742191059000860709607762071923803396011551451137466774144520836758821719242935995974004133718776091852864725312575507170255243851324820623155394487992040444467281749376827556067669855282873441689413767716506945690432077558327330105301369540411970639451681575029986663528907833959215768456098352748922285725447649390769372441507830081172345399121624540522777363167450903200282171525664966916708238738309637114124706868558823315266641929230406025475942660093894482878935771305610863957259583220233315255039231147190623161244990201742641686926336863906615429222393309063171285565493806746216009502972238704349780008377939552063781382252445194029964472589592075367320518857321077087866422663917906285862010468562066527214978241971478164072988641050996317214858846579152564517906213655145917283151524533099139484152354958955137997351183788363834286719102181329069652514384779501032298121973418097189558377205461006490419664543501444111455555332764358005344696314806222586531362639683826221242261368416196945714491488764688139045237352380900108874186984263638104651736691066621433800256077355874436489448488585031538358174640431620823153258745253293873867829177493050415466660566314667928820446950948293428253173718574274875707669809501255429407497392057829712577401324434430804255938838689945226447148500238092413576557788752536690797474231395752483552458883493605470842519757116449305054017120714206251344235395114297280341049520999911784521114540161173025053816819047031823626251092346974527388266095358924088465073878822413639948375673580906436328045364601860730915352252561745528272084536879683703004523086564909470546878120655388721987078653124435272285219324444506802282619154100327817822950294928654178883256979320079988553124290805856481410592813610635659826036184358642943849230951374612251763436365661415709016894569522810414049434508480260539350161080450167677786455239139014489491125924773815477762519553577622963494935456210474975272734122936432012438373532758033180686064931968146921649055123295977100867394565894077150703041242895885155379903001750554721421857504132084117035610917363889727160239463130829613170373410677988001191957395152161829237851190849133048607556294351379132595405090210002088125800549737563382250101248563576141037300784986734596807966602252291190247740343960214073793439714794892374329074478839084986154010191610572598536064170558962617318972462255929185974792515592575352228925861765136169247910922489115514788275090968832012833041831378398450116911930215143753717037559855274214596133183650833197106928956277418826230559762346841012721907613070797499401510555056845317749336146706191180193340329547422325187590610682915413564316155282825921321769763259187870545571518116367786463476542460723380129681118645209396967750698769503705704835200418649099709825697063988842858098060425529168608962057102259083574704058679279615029689228893905539668915213505682223732135250509376045471028514836261634898751990572633930046318735718115492206920912251354392622925106949062311174164335906669230451077116596542120459756841631128606405997803802327708504445373159781598587962269136623646026010990587039246678214784549622551316056139994476299497902388162382195012442704556405636114253579509561466718255999536624803875562511942935070324291485448139672272018251556775383646372041676120671757189097815472061646067921252294023275422854942735339354626344937117432780195625744224039112387095066390747460425909836533497973181672034608697585107155981499511364950426132829682106691606393299842260082096579813913612121798295693925264047556858629111465143621738010758907280159305036272538688290592504568907715542728204179692068456895023929800958339649362275911139124179412161808958016521841830013315518398752426489867852579775840142559281409818366091192944316984047467532101088468282781423571117962891980711758992056250384362978376384288915261734420304780863809392201285170793980726859819493738908151216655290651125134522104229643364227227105694579935028174383460322066195902679410919193828171836340090034118912850922470254060765320176920731459927805631907056572897890551299691822949898097687399924115236644347369033916711013381970129479623442710640736337579191402559238855394790730246351827256848032875689269120892452635664254296249751019577662898669366509836329623386794953668960212529160268593855945593380285517436463386326400411605459880958779649698354094748583276487552151337880062676607973319166705936739956704035155755071738627297939452217508849918019107442469466000728143465186848117480383240089621031224702189111598178194751047871572586345181313394062883472924544220466441904600060817472542302901775726253616623024780659588152711758053801173208794243817940457308657746621798833901329338319621558486222258915711764292545757643730304029738739157153335452164377429807460147427578749561951937042421106485950163114258327325057198316063608245948042782764408885159383439542550260261965948569758992263750796241522694277830009499348466964285604578215088611703738656041286321899827753722008946272489581916913518331431156815594043384999093777140258294746157651968783309240147471293788589970390010217337873583829028474159021935661697621702200202596288890569620048132396211157371663439106372091561656171426608589497210206829499131391598700368993630906425267486599301870427214160600404482116493979379096586803967387008236594451679957950324100984949455927458103397514486534681863231723887093643098528613939708337737980475026463054333906526874780791177398723297919291831692579232173616692521202096217202262628680702377615282311931302329933104759317292854237164832201120989945124046740109044370028716153702745073553341437458275345849751108272618002859376239173423597114527438946667348821725522360434237325308435031762887694619921680951054443699434572457204621021431114167249230364937688603427610716835480452639270314222539019950920187827680491056102979080503870720472171031685829015820090066605565248168538323138625327516540565735838941970668461557110660096705975631388391089502044427835913416700405691871143431128368973890888095997019868147374725760928448317729327414076416495200918267243991322099667034933020769659056443589238184336360181919580731414972159233047990948774285691055817792648062217272256845726320148590969910692016793972331441930929479439453612440904643755968224717456566888332950778229339012921070088908743690396605913918439116100340885237420863184549532975626695633995287226863836073203511037713718260153416905686761787363710577743389197041875023401563570263353196150168818345468906530416114736499330658038508783142241839560027816900331720387418388486242680580213983807261538603399367705922265740123263368669526964296539301291021110025537414587286318478896015834550761691632349089257144643593070921834176591397446757073967925135858977225433284278213012849110287349876693816155845497012109066947337156757843485320981426532766144057480700078601239790878044739066960962420066673168533064592361884205533897243993278074450676335686338472487793177450437401814616680728039836913233181928012031263067169414206934620629482337860783613820881405701399605599564584065124759467342554478144853062894570467597940449179739561422357770849416552912500407311873819480630897102289335652680020813505624021982281666040694613215271855873661795783517727932527933569428892941355527777124658458459289671993465677441037631640434609120540720603434405376626462921490013035380612879145566821065340834267007847245135143188790047943051690704804338830395791992185757333045295242101896077936051406679441702797663895558540632294361693706652044283923558827409336888413958426832838179430092016860680287851512840741901370835632641753843189061228819983412724016375793639854610762280475250074465020580408644066475958592809135020407340457350968238334207159932724900308928583410716057541273010891764235351799718246913085815543755373378259873356911456166266327766800179796821590588777136655378979703941699127047476077649024584307446372439919117466779666031140609834085114017468432371334228675188124966673505688287851676912117805140868719879051586793920976965568502647679939669877130669037781325996630327075247861738670970164510371272717639725558508265678274947318595538569885098356755423095666882847513028721698038542505920269994452524256992344106645966214153974923228000239763128295487187327959769641480790744121529395219509311910018891696246524414282244621020361343545401736058394768655653578299411192288305606134638740887401798100954688618206507873938698874360147714641146504981971326724235338698103761277412501006529909488268265276571002403732914321987207109788907811331367272383871475489430727290503175869957078414872734241364681833777896810409459466146541931007729803547240445416410290530181148286630265181710883270193042478329937195639266024851414295943545065636999402973525049189347717384813757583110585300041348375545186301553851146410317408806425084197284673864052453021425856855488253320465116920618384837410238416664615508124559191337652426242324242678201418343979186950148227023390914625261335754105604401405203031176821208665173930894903528036750565885716075787001242492089985369089716122569812791344030444205806747970070482439209406161935892457085763952574395103205138765977069990574857668898711340186569577087961268952307452741137273257104266481750242561741973011998767214293494993543775915241618655747250844613442168681013600382279171181639233168103319136765699727973689419571073010698716537009926194896535347533890227500186097950771195508317537453021280201898378696222740199193642047335716159191634715564844927194059033142739158465339278336191477540452666404452877078198749287444241737588979552167111381851879501781567165208472377971708504071293529794919680438282759969698854366678247095724412927572921910407936644436683804443912648846142422592581259729049042108600599237584220414205187090428970272802695828113301096238949640153606621197505289873688429121729986649261835775379515516273150628115236030086743294665387404988157057112236392881337745279836239318257854346784834399402959733399566021787754202695374190787131070447192132102269565324789270794798877170135664320951842583789211802561975661674986411644109076212641464966441530895189846191151511463536394092702308382835867724512879129457864906524509754637407350497262144231055287289942691598640788696049506171968267989255556165097016650394195373143395496658474484388558526000341733435805889279610044541177427917830227665087574077295003325519539426983634203827802192195363950655476012521754226154583919729862234028979808942653262103147190296736430993749950647128044171769891629338054636249433995349778227204131180351258550720097501265563481922446544916958354376103029065615539257104307559345697366060048964352864160313263996569247159127650223682886052992281850134088616760445198606581101505909271271584286185423046444577595589905555670289052413428355710264007861906055301205902050692469309822188427905908633826405089441755973691160981424245586318862172411986511721594526866184603276677749034666773139463769912886068869218523084442475985198884316574861691547336705203986523060613524367502939362096331369570734139576341164558232125725824007745465630545282181492423685883774373519022515933401932058493123009199386168534931588250844795843634114630280646442987327588038831837990832991739881129160789449119691641567995200286526798343687418845239208719175107511767624743287277978463193005137872183479558958933812066101113618171580650542274275082472894828168479322923894763148431109224270940662637298692633365851518011415992402509519189196006199096168050029537312242557420540461875867581748187340055148058903000761352476195030563481642203736915815727638408726490416256274854970807705074284746040884864120523466001300016837170831581311622869436571349509535514285688201690848056421443736462930793324595996991257378119995678808313929881889386179350335264579278844070548958499238461399465398831077334943404809739514608908989408119291571848880473227770837643143284959445710545576531503272924890757975590973795609972918494504329402938276963527495381998263711916600292767598113671142715465024890037153175776228623648148724188377811973632956060086906738435692571653076171900519184518153210673919286423480513752610769590526351508058082793688779640510501764805903576200822915763730969119480303632373160153532391854947364513670105048016213827010417756729171254836809811348999853636910806268209349882306241258575972176341187605563759832656533242115562222689876120223025865761095046974660483277918194308254368776117611232687292792573828265348907672142344090204920565927162812069651882029595207409628181282714963740860500849831263488701184108545686612793985627287414987374695442220472854314021691442881270660960550256475847577693809866792762436451166507114632880087284107153751032470142634832603767964040198001313177920283263803644108475935914536769053887096666899496579508576521370141931088046786490467936959009874504469273449705159228619950055255323997785110728718834684345775990800923330809123084267851652792123188341516578738359979549250444165338189569909991976360126313222099019710507852636233419080033735875054994145043485914254451313967825566412936881361910953819893941913769909935700278041597440466995524849565828841449619422151084909749534927398542151192388694813782527505324908398613898311088887830986813080175548721391230742241678080169949326186980205827916253069119851069741318082107771132822472137590184181904201254549359478666600145021599558398967614812541516041686446593476355572685366626512304006297881499202210999417087267917915199171181461354917085434104227265105589513563849301035902008774796806542923658048326883127792415910514353931259858251937999741771710176509178500520589735691757865549874174557338579816901874550553315365157332205473952737821337020139750168155319053676294429008881306815341750164051841479887936618749507858374116548395246420966042580573052859464969159284422132160994608651382951014034431463663668685715981647655300732859718534832978815095646232358889575551350127196085064884392726640158477948824231257717039889286236627968463371273983419268385140137669133594857040424252471700547331020075047595570530037475958135344191064333077982205319017443441557632842486772937839645187592650081492932237750109711757956495289879301472738258688342174489920270092655605310803088279035817698038722555881917995944358020801027188080729806490573983396907565579259488376716453349894895494598320512458048395144137442079380026576531296842309413712803832011238188010681771361719152828049955968334157214084479548670412602273955725611278030885643493387424587192255079380188493319628716438703783266316520737375376321943597079604692644926040837191961593147741404017977594740502630776904455937511922193610458907552324260651863987402869575456800951809959628716888862799960845473329838462851395851053148925639698829947108028923380601476684704520831233969561849013185969393927408138374746841410950549100232804639013898757893499731687579925032555569261404410574002056647003389379516060670593636150776931607312273396906620819856615303288157984928880695292756732265203272323490595541080865760661299816779656934954333935592498140754555688784934993268425543572463396341798019138555294617369297780270989640841138919247027083961470739700895693037322469816943268508226347444505904440048468106358172388358485246729518082945016163879442660055364351490705594176005507724082804846836492656352267953013307789164611118793069950316540671899363687765507667373583761951082360765096328048505650127200323113182422692857627248686768910059759557795873927401481387524863329450400444789334143299800267141125419332357306100017945635419070006798186229689968461205590910887481015708217802358029070710436481953339890316997282739107349042206910385510450656495497418474268459712635513913507152379719703176396817109740548912424446427690109465808361620041836771386507889629877416631562340209318438963449306033955907748403390338370062877394150792474688795406250789351441280783395333075689159556306895282993034623228827000899378324991262899122298112552139219529757178641060921305354733100453538366876627462355594490394667033948329595988796535918996030588912241361403283367336360955564330118278382846603320988753298067690541000741592513187186254442754966778280983960785034380277826166903634054631076907463538403927308658002799548203376235887733974183987951432940233339839794293200243010887764771953361410961626697566299156054500618941112536551700610745997370490678413100952061909188889558499187041180727756182910740645028280618662563201010535346026606554623523612484894345585321438939118601643130565978740063056794805887450474794630927789146318722390369646103745840493324512472601888733874376680860537564008073749336330816173531298562160496269163257541774261506521118363758741618147624140007250420906416625630116334321447837853420723038055829488654706580474390106096533065791256759240525148892175014437290114444869926450679109933938931759619208740058261474877555415243224817813601909181191474640227129277970937258838699858484138173768416722839531098873007099001555041991255624898899089483187232518204487902632386972759511109556188765399494289780004189405867010280387007786681259366353146660364631723708906544688739401089816122268561458808790081610219269413120030174026976983628882219213910589754080316177277850670525130540003378051718324300878762788860625588616969772953852561495859874234000629897805968089192047102762057041643707007658359607389110911926013639172940970469880785194721935816131767223803841715515585760332313735773543467009448737840496490508923151410271591659880435645914428074574390938664719869194870714395836972204312227651191616979108788782803623078964875053519573203639539350512722477516541682938248278535031386955635301150125602755380606071929976322657421262771559883956750944115410287140491806391194513801379616210051523988792399391191173066370105956324525383081053842857763138229382687762077231310262832791329073691358083896274158537011446638510424871973809702523603827867274062120643642882856987419472064123781712273732218128805509747881180641962348523661845100713940905844665232693596629698716543874460423635495097871727931196790555690546672397731822048150060838386715967315706018629175694070530578732665970785234966467634838371199689834166781149915762807771432686306968146945331249992924091561944840527191807203711853426914406754197252745765144210998352217142906060961975410805619946198452469966229733191295042002230629658115828574958281676096553852031859145342301516512667338568993466325396141572185304161522017632751289939779922983051358281431512274765711962318654468399603385334608618718736504161824560437990578867911107871356117040328205465524163199387968820913096484795567173943467699768731963086117659339626031853307302220837912898720873755213793021606857288335799665611608880474504889860682884708122582328295893030362596589262461515276889577853853055260427457328373669305527707420950974455416119480260799390917888613326818144571301929073688134099401932690813107048500638587717039707940636511303278575621176035489751145369435498500167043790418313379609370391785284080373756579247308003324791863097391723284168376647766133016188054088158021178717290900094151484978282609573747908657613533100910001766510208980446192615706053352091514244506463116138957331550387127492588326035838627390625012780312388844304980483675354893860631674994379971963497926149489437104957486782979575172857628112148973704161984929477271879154340090641266189396864847594619031483824777277172431155590159154678996779291926245278553743442380427670046458622526938717306438441275738902522679434990960346095489008431092384527952453765574946566924668241294262939936798413909952065122854089090973659693486879043863938453405137185188310421652897109683797294239732457190788817983122556322073864866893380274299412197655162244349152987774337446265424795113722040762613835005465742437408775900498852812108740240697610802871909745555618487931599315041209408583842042479106027868561490829396629862704100357149093572794010938257692974919369257077459544206899879033473191848223009008718521456464532376870006302638479632453864518729232285185655554671419830734681028032311422204216275606603641821085051556263680107078140102598640249535906792818815720170129036901979055056169679694157147666629775156572113047552663107293152455280603073889617092499840600157181977401662910550245636035991919077808383313448783523723780763381978517868663632399702758521998311402950941055564765983421127310669652031695357615869572632551687133727389261767686993876021190914588870904552904633463244647445728814991122221967674195176941503658851514743140301568189901523253095028333171351082213978722354087647730150526136035508099416138079877392046738021917979085391893126888175200915791989054854385684440331651280929098317945332365973060518220395894768735283877551041803953094919001510231504974733661319446553414707591804269143386876423795443657914038673464680065091078677295254201948302304258474772593241221378862077114635919747475486400260681477184065383040058477930506772166494759313654621808022536665928775430335014362339313627699155253828262274418496031876447178335885459427552085764277968385124628274339630201899854717904844580990991554419047723567908012951948661055480232418341237987338999728155144979354323723428660869512103226103485840204876592191667221921304242287543388615981549692760301666720312592528781834976320062264120211979937594150849673955285605836959672848960167195512090452785709771489793827609681333665507139973903601751720567593570666577364135518231607014987868903169375715648442485736072083273645158849246382671729875712674039091065052630088162474601284769313941423587707881892916135340179433952141379844768707572014267377546469547422558346209478324066729160864647709122391395919775034240825262224699970012526024026379934239169278091542154527329333863743302278268954986083786693960611951781905359986916838559145852111579986664738399797044760617883221115030651239359259705923577932162093096067208649624570390557985230338668076574809285173806630792211978175316474234920420770043446339445181545622111230233442173058401121026066279439463184016946088098469591945903091159216274620907802087912030993257976430644833397808194959385324876720749004705074646715110031127780842708873652614452507144703073486948055327943047374056485329890294637581882909212085841540188922812572007796070313864641279453830300164751698445648471123687983178336647048873527979667366060894750626930450849145909790017423807158743709519469551032564634552400758412257498113333399812338484524153914895874870970238184575688374313595446719581963720667517216751033171197359943717363023578934208712552991687317869527019333009569703951673121230480250998238295655525918784804156958043489702774614170301236891310228803038570488468600211034635912247178490067800785536059302599799142417449212889848751579798683352759172737700162104898304700383128628523429289740482313969587340485178826493304588165421850857302328238624459500121379152158990230594148610376111082226295561522055984421957408939500609709826372910380948149980851565352666425987381502049807796466568867468614223760087048895100884552738816173631987533130690571160719615165215437133083453068166618938614683251001619959436567532577327980652261918417576019452004016322628997970765797934223221495032916750096210842203900980599043885856723092943982764718208224636519147272100261364457216080101638649682577173227263025481868817545922922786274189401193540819202847836576380198237845201715403513570421281397505533604546252064560578470967323290317092215757890540481400879734545757036243474069208276368195295619184620256397088813493166865497416503900865989267403721975127194327828031604384395169531175970648668800056801260155664219158229405274808355386308308924180934129216827551153499172907298658457496604740246081999152206025501967448718931721500392806033597711893764758706329376745127421623849305333351315714910058562461479232700019841338634405436343049594643784253075435389516481269219032394589643878683294840580715980250663939738916720788513522387009839900652358524159021578078623058007457368057963089627997002931471543852135142079610388569580099228977264984035612845854205370110914683645454903302404513506021695031071820447666153616278784469302270403183101206561327713453357811802245525756337444155796152726167870153875600207091075385501869910096964191594969973554650423189772563022669293681501385660252147740581924642130184156390282092611077993480205837001035085627835931061814963391060982013878067208612518229401326076132384549971665445543806034217348146194050559232407281795062892207221397625532278630450891986894186894410292983302666743189003013734148230780763355749613773125022896263694669836033318566512248873219377799771703483960761364186474852635013038996604788841026319579367181523522326673332760910859437754557702221447813507942299094079613343168490287432659466772066599856464037215392058565302311930737361572450091607107703533427489849342600726918130738357207193612234002262425799492932960250911490871526315889270789015571132899466396959818682525745924568692065555519147984985684312893230866814125448255052620987820804879926501185501465732545167165843353081526541625552725725037349187255128615778390546020869053074789625569036385730385395460875289955451907864847671146532669526854539476279541795742238749257987371378315030168606113494973287750433670490018599027349567408548866193410118849197031946428647670547278987105754028771643628640958244422025307323425564767931662785293076461230589859038971911937674032933958533686606769949849792343797394876717871714790040786928316210503253118651735420685375930205626764009328704677031283464472402229823802043156739163905837114849744334728107527667237757432654340351898774647274052497637804758926672032711979870119217726532686330912384691579587833487799241176039745446368759292761748853137642354454075903196929296103246370399437095842334587579884464964872608853521515759431887801719945186901312749785962064683841393184518487107463734251962421070483317154965437546425189233678319534711632543754933676854900265399005295931551491510315537722727814750506390724834423660102342541453878836811448817659689704167023719884396466256232047785412998871954717071514346746575503569405928225919885877872965208927947056956979772061044991729512511765745963902437191844944119580294178884311301331146277267951885694604913140236187708772997739095657840972904498505901270974135192644050176336001103129518688420896628904428539340217917940893581288802950998816042202132042023828694944012484802869007007112181906915250564332254736018493887937489302732895436015864959655431112323368470248823924809321088828292978576024275905725547600573597026996757686059516871695241721029570196577315534305129320209570953312753363528994661117396742333105384523370618541731633563340744791107423753957386039040075196043384457645843267424875082613789410920910554697118160313553144018252307930158215188397681249863801767462542608339186455155490093928999458358095773435825551204862282584581394629160975900982237840140090001919019918424504226932427146714636797778647490302299749505153021580698635796476114074703627350739432028948826025183029954996358150332426324999539470853594553433792736120163421297424294418922390450961833799763660927342606809194002194967000733365793059595296779179938140785143996921989049569288818073304600423506548738279003681011118322733099016349071588148432504379554452988285004801869657777923014108725743143970565020383138149610149979965241856549275429428727438677865704837327444178218882849662846767173160968507485290129674686429104640379911419288727047893675737508060904948834452874699880025071103204511226637804139555038134248163285724121980504864310579294830839905102555544451947215904947704443014323161335490791379806606044566314681437202519523259907689117775370763970842157356780725106591663488993912799767365141024752752848893359757908566412773996945400238559851213983325090131998327609389926059880399926288777211364509320696537607146861266196494677241742082723797670038972520978861188380660558705147166187070016702942808178149951305886105756355781169249853918807126725275853436604657088297636433905933023897274018756057751896517246084096592120823356164625955103619267029466319350829007406027668977767277225838341462966004728233785759161688584338487514032450394612611923502076054557499569155381423289907065779422843590575817999336978802675328579371687797132740001993557683909933464583986075273883203189018732650377406808031854199044554631584152397350457831837024627735447984567759784991190186143644715486563138413298857553140466430376412745397041539627042985140312559093787050156079630500445660517430936431564278932694766195162101514232701894639775674652812330505865167514763740191998024437648740140862294607001995458219806918278749777601650183410100393205257349997620176763581778368804048357034490258422402940299408902882332578217096544827533411636683179878130182697196584665088783453634434699870093042556004986331778849173961113409981079896680269076268817579065993395889592228451046840836105550450732490424949641730284931112775973131740470283765969161200485395811136754105147376290667582249592454791512255105369085639309984587494078418595812984535460869330053923604092059327636424698835403654663570877892810338427594480192501023969544000821528092551853873521811972441406259999973862586220172626246371385884933934993519761018433801356264674376969806192149872168303222284521110113793740543451789294941689310042058377769611557349233662954806167270752365323312105005815568498147006325470338599616544894418340420213368904196030016496873307162057807942659271315621807168226929888629518410003131509955954538648230148364155616495422663282468705488461051083953584220324966865159502800262337677658333718800341251617940996998147609794905875363973366529017479117968522725862182573554746461395386629172124250355628833357317465672859048631194784864768887481269992477810435692551566227232063598765425749232934013432014149367575686654807884590956472648104610359558231928785772353182805919089472923948096842385166217007304641434363970722785343661722451233623284750948575620650989597890776581478857616793876491269099614552189018062471383058528440651888824910329783832176775450705440357472536995995132785422736728141962220646652814592792332889510168238288057047440482135664779045424869985639152838875734533694675115748664489292790077347286464623710930887259527927864076264236583713371503224731808000464197041895331757564897147557591831003786405126462811348674930244665031239662046872896162505883874747622062706261806559366961065283608917421154346443862356442545189960013208710979338953417931745463688566642947359768443502244631413255499830560099052694998451731607960620880476529381209086653914098065853279952957945677007388895264713612978790260290551246881819549466416012217270794083911640410712159182953000651396626388219194816955999507630112587383050349784517996414487487624685436824535076592596860360939037713771458201592126605599323836449106128102709283850491684753488340751972434388310362508891705843705751148323594142148718394858815063331071106001260270547607874815003660676189342115845375726618843975991712340838715901601975012960244146555408612344996200849680606204528952191642463417653314304155258462982816702910539433655191224935031854820036750263649582460986602818729504807361539239642463892919932543791899284756981575317754470549124227329131668729353480264282499674940127410916827678620067228084363362925502009946383518217122574966953936338787972547535077708972192893154581063320791206181420939203353664116151167942031486963193155146828325421286725927426550602641244257340311973707030789713811124536329059057312735986574995903426945184216597431331655775476066738071442147809064744501907743617724808727727294806394900339828480076804675702457621652358529671773438665862676414395990507483942206970302154402448201094074420687287343922453237194481973778348193767926374919269176390660264790839597117886786878939616347055438537570540558053247473436998847992616842678000853528419905805715599319400161914459127985680717157329507455600791371340296769741736113362711840952779692537221296125135966055168034791733709140259906341177188691617676828359638605201718809473876407105832850924988937426801290674232423145019118621140236989275506677173330756377641073355858873209280560295996770234926244954246878362885159721881018435223235410481655920220860336750727947047739946057787249224015072982107417772239403217184200719157731646632794362587920193441318358691694470964810676077939372289670837172044396096019988053337086445719124037883985808020125727731509614787835337685270647722456310960896156059274513942966483292355369484763142128233813586362604080180309924094708883886759317800862428358996716360390814449994837613346632297058087206527119587593534981602073387917882761008822516737390536809339611776616276068177600920162030162668824671926542193312942148337239796567813640056390536370569893514900062045132392700444574407640933922077084071393582716898733520386098685588916978494673757837900522048939112078082390766918152844175426845386120768903940489500207274067143026652170143170806988283817570054819850392213387848719681830293765733189964089151931637818143688763455584261092668564398232196372924840961973178618613263349492289014207851307706084672732651038978346910538156488115754648885070594237530928131544059109019954243761424968051942600007375122766552279778825028871853145947112944834098898182591800823788033573724565855769748788700462977727383535926591076191528680598404491701870126538461085091243192262575864787950411241259119640283766807671100227836429988924585176457420944454249227801733741200174624652664045375355060107149310816162999792068840193114896602542865714707764493019980210042876929512971240135335075283799760651958476698999123911896108362772851206462343421802976345014723267397659599429312594328315154866813735809543424098235838384617227629660102373102352338559515284426262597317624165774542687483777108389801580458972750745299895214498674686808311639845338186377359956039097344894946806297524855704484964904362387446797174990737946726416659126416798678511531793526113092585217819667401739832902062456385909383328856870615045457087626889074677757012654536637826511631251893779077673284294081120234746500555399662882757579391973250660082569852984733861900376857522144377007461715925860922514570105215398211153379392958720907236382333707887658857359192121130682212757271719778785616287197841862968373200012836012074038699067638895005066258104132139124500705788236176618628737954841562777478501499207755082484109320116396602105204613305038253526379665039025901441898882090941195284282956165971478224568737348724727781442642313033571319303727689823608370999055335378600063070053871456666044055292163929012268154449350138462862456765207081219512967236621451001976393792822608576924388207790911409040871220348061981877640965728067017283236735119760168705430241999890100693968853012520452831662079765208512168310465827820874845629824925624866426859666911558251435480231337723041354914079789679708236713675845164436345470611497667488360312174617616745287828238306354297389968362897662633147489748401289850129198388149481974424528099976573929393503539948019185104036327408668242143088325199612695627235705464403971607088901681006454675038176684664575536204566940861003583363429516750174018697999625161970573562470821171775492827000845365986910415031960784205681032939667054442979112490731200141558028837799864428142427144382035335452944468540359491297168011410672063687786756663370989148549110717095679389802642760509211372012767154411531309278234254593628700375128090590114558513878524507724382158178939768896500069602086527966883157868884264861797020775206833382782437995380773396545289138558252701837048846246751647994761878256175859604114146907660095594769976769026157918026033035768011839708809534085026184099812641070259917538403637362020784184958530216905659239434435436319966671300807177736338913665587840994141585278157852159976245635491945418405805886479446898845875839710992304924860298954879476708515411583793447193548444934680794059249407006658188541312637507065681558569530370751691049575484975471392296640346088831703473234657717632096072773419103023263129390384198116777287955351560036945011708262905411025092685725583346954743349857374523414255722531155898451186153950457447565878245736725736970525986659868564723035323289715625060057414717543431881051542126892560155454859790321820120185635996051711406458176273245050428691546541990480429190428580720572211628482610872238217993040285861547529404335778167128420093212927395392385255659820051731214651583214123492011999967145874182375971767433506598821155227167751615963741248997579946686526312371048874291124763212133323565634115128158884432012939104519941315841795515214763839562735939210878484052006842941667179830679705447353474653121575413950252429825277250563586631837573912983118027760596349004088000722823056720953593095854028013300875146886849016976695256808778977949543790348010963241126795755240630683985908952925852526564859053127882883678399370552494193991174026511611358794357178818668187876454947353963614516377049158791452590244608057513327072709845149979218661918375923690379059202426552436019090149324838280884847594065678589324230080452742644671520368689886906138389538506073084815339356206388492212303870547453228440681278463516189743455653200632293476496337214467042023739131866633925192409883764401010629374558969005343151742582202054289687045631700155545655027922330878292058911246098296228654520344078600460106034301938233092906081743405256809418635077764012788539484131788686123623830760906557585505253355869500811648738332331292912445790944249239692923223683895300380109642473011124719491560352058650251050831721641229454962857604322753238064456968293345836423527076149323962375961936556112425501133244205900584054268297219528336612725501628881481149314637866589891864844487278316107307420081277000621969654880932850251394617151004549587947559624470434059538922190369439468941831231074843815129083028916467023313545516618466306895219300590188213473868994713899603297913738397993566516636834956019395867592045291112550613423459009560228567719957474976460879868555976811596749630517472896353999949803914607032036260249897736029050918402137798091098214022683041247597619417088294089741295273399067900890446936329483172836737621727257491195931378207432837487068569204143177145276532924231535703945143608420068491566781268741925832950370662247019736016464433986422961659989264812695252855828793503870225118759736126237519219857975960618419949187735993792773862397784759514318802890444609014447449291668586960728812806620292300438538042678023277635575889318115005186731316580298266511359959702677528756657166308816612017460433084691601559796205570552250334614294835546082812317355394194044067197894986292250925227745685925233300585986177830214082673642880875634421932341271155286287188906954069134802053895249755786519272724769601637365773550278346805397742735484859445124620706001564371096862925093889597635228617104798714803953834671157579919035479734562811264877968051501074410329597523503132624934314101269220385522216141974929454927381928614635533435035313916921979789100821400946474909647835243873393573625189953718067146107812085205206019023979200673209726635638669928783435790822932404642553515428510287159356098818813103492109173291567453127232010330259118019119130846372493730233952173789614174359150312485913648757444603377689197896815071352010409137346766662694552301662544463840351992014638627208180509697377005883012928277503028260571206800683770833354541790429066518857326607206421921836912128733574870108973487547141591704440222217536172999618236781701327572885896539657068761517075414117259279970163620720111692124003507714436351701496346730798020859055621783211100614902309721295084423472045529058839980691385252001117286373038928731913506178689979954841781586653928466484534193230485265003129478635452866563809439792240096998724854814516156664766001481077539957202394290702050419371340006709335301506013867047105652885064841222681285754704101348955529651766794559089308827603086830297554099862032775761167904527655408316956472434824476633473720254175314894494137516081771801170953170774034331409436357567107437693309403758302492189407571518461779813726290486855548542007270936915691927354522073620482705921579361199471914143050989777003745185349589242861430907842901546624656683150792295880350583888406415668634475321560158571751214969926792498843679155418303723345309142635634124482415353008075075884067625960433605989831256358102643882174955257998691163319840079036009290219201593816440668307989519626510910199472873412072869086511022092091388186650544177954421451110140107385019151536320656909514928006737240885325787669993480398469235945575306424483265676317135451501710373886034681079099994187794614977664008460360210774431377123701902777215670424150019684180020774457423950777140538591675476761210175157806072093148725964330223840879708183830696085972524918014070311580441717171917523247333499603399065444965332357092121501597333674812911468730546881070690887935969979472217680647601878208547103053354714285548693959349218411049339621609581107116102732580923443809308928281514228569859795877224325053178550458874509246029158775480042659201558670057373069291088259877649548636125352296167912681067008914586042286027497663304273905541062952544331895048476834660975088938417706238833220617167288061475107471122719742520657822560710931951147681659263966682800622715194972115430285363490523331578109003253058747055798403177551848105850370006626006795660046330305615910680071514783039763756694830809292738335956851679338897617195096492078001978666140559428948146360383188572591943548522707130360359307283513486007987098432213875417869264704484063611647236264977081959527880986129381492645822526301655750109938924995941515267926018737410336974775620086804325054131043796088343848861841956989466832661640916172279897972867581371559597449527060623969631509501165788205646134835399833775734915642665683748680054432228544284821179850645134151192762223704394694907276700348479403537791398126474674152554441545634519662993191683249094010744841044218083742684966070193166115976729408344503079357850262142772882215490006844862530207878073805066299506607267040078156172652013083859284633759813373679530417533776253339356953379900261027351791908045868836006661931822624359236169140092347662085294467065612270193826652938005565270329620861957838385179540259020460434154701083977618695848008721246506514873715350176411447842662091356134253351163009278586288750401835689463759086513307890568939386978827090063791901079100201895191170690130459839747664302747601268763217328382736883063345377773922843051142460313357514529284963204506246732097890689282895367758085278267704855510459090533106635441993085611237665210075240465397130391816367986862184538324561252516029423695769111744432058524712062066930552194562851367426613487522115288094250085518208257598700392996326466841999114480139165771986315359711479136866402393527594327837509861731094257940337001743214105076274410633343873440953366145290451937996894517312779512986186612250942036090033002306657226325108838745557743352845201881376541094722525987563985586024228318236116841956648086181268979640152691683312423317310005966610089185587840881771470819081478524720573395621713890135356878511664833663987025388345115970202545373886690625757679211042493516759162286830525328230288981341942733268061093039133919789861648323363944245186788265552341274875692615216656374919083630889726124039960734860461408932700022593356160959857459228901478600250555113137067401662085605492122403728208076072130045580367402331431020004223077426720088405482791700099382836994362347384252582758486388176284325797178817841376704415195062496345809775903720294563558967160487992435357427429176238702787985694791400282318879786549568621829867121943605980182347362820728498431418851254631876103256995329591371765134360721833688031950840013671504690859637627370180082096308645354833439300168706734770541737117636538100871870039648683479273318374702097027293382955562084466875276857056912316773920970562128774239423032397972454193029336773308040545117610257796207278567365087160720449178709503780191205735121997842787581812957927029829686885147098168714422158191671978553663857813464223006337024737394094615862139310580539345814141074717918469636772344834011937653913984053521483196542962388219035704918027899430783804663200677032020397801387228577910696357738344830305266048727766606003908085785509173381412343850305861489067476881310472895714639870561807684441571139203388410851239425410880476584022580978919280000226126120664529066188702508308493532738394896655105735379920374992109025351877757988465335121992395247064474003935481826309172480553289489310366467830718270072757953252003181242084631596001712027312039550219100855440271686428604897973493374062632465633402076425203974107839877771338801851637811012608118857634159853194644549607834042351131961049097949581201262796904307077732761840657985786565880059332541929311516944009250907629539441489968869492759541798599533242795142611075249187183309241089482915157949498167650319771818278924509141422065353341908294606166556700823683898933229830899637750427275585404355480694221235145962051382117387359912705836915440731573715344137507502898207152073648912563666089992733282573253321671977813654375641840835190298872608928675718418931760207246746096248692238765861256306669693884536036839466576613780219271130703780072580780635396690889717213133245825324319544402071953936179734113108033682909133055965552609611676818197524234712057501124831254260963172746467057896397811371151053255969341486779702714938977796303211024226574032020111055948661897119724253004453603040317833999743017255771290208272978190932126379768936487264490311056538622445490269349487740652880456129102220939172865589614482836481027242674429086760984606532111512758915499922406055006065031397196121800347300388220818202734423985453744679813171442882601564671246060361039777597772682600982396031209768492031567306968951629184483499458208752993367175296098051127396526411551411748591779283053880917787608738739472652749948087343589022131847558501844766327428136253669916884369649801734989640404586183920402204606424458647156475897306490786066499618202941690479273826903357316929231512700021035755731087414039094647531077587943276089212073363012876674635724826382152496431002769304852486032082645725126878176173570159309767054579408967189865743514169620431864411308073799174730408871073479940670827662895528837808554255723339691514279679868848718954870492835310229890620823967987001841866524170756126587373940526412474181207081360694791726140172363475494102025012061623884580217442033336384187740594478070621028196369605665713499177481539694751765222656704106836000077159405142040736233589392666208106131073375421294759876624428247316801470861873610743305079410154097452362552846278677484443470095911045526900007357727551222956831599554773173627817354413623334508853485005899495199953713550387882022425260488743127069587596429039354515017909251889339328458314516395143464629130372627344828059507207309947384287576246285970771377421803196013003382960312978574848664313926752273866270564496589266075553018542157708091758847988037876729827540921808561568398650913096008377709952424445207319108157849848156384758223216705353731453253118132249223189064721094872646532234518171798269886976498802773006463783263785648841416989615940658207189500003651493385466971688200518067246751065710823747312614390914843232703722662847863207057575151015015971428807276284763741674810144033712994908255553653544159646440994393920760504584835559976086235974360766160479858864125311024199462179771809978867820673454790172832611170800239792839963397942500712521366378317846174481520354402267037987023208798284800497470008409046475363210708322458023087449825777196894396229873230150583101026874222008185331392136645016898995255564572962935942910698015953925365165468552964708624986838259430362729224200346552098842267170192990377150636286718486193989081313111961596743000816326775616533942058219402415971440650367691529181107421064160262996018947309238835867760677314298956443054713980465395186736574483841363507275709702178967983409336280170820013692121735209475375547165937877015080418477602099105488593954394245889649499897571024066239348458830718441971915309794673058242634893595295847971768098534549588309393631723981945352559936091278343255612420334253633673187521267402310301924442462113125990473527427404009916680893096367049867681323755944976494230066120528216662019702665165889967888765744149319356855809230340966787073061182930023374926266056964332343185803470511805624012816365980120861976131245098679566527022843868516195428527292467604695061169705595422295224374933104185017459686477197031137139834655777261833347466486152365443659054614818531299981369467836571924098987862559478363997110820267017370080564873520108157751440883289315513963718673360347751374953447474539029700244603942040292142637028074831635007066576734396381031155036267244391792951980819121608335227858734223703457749859409503326221963283530153124064909441375094052615770200462605131004362751105634706766978823582431920264226213333160750271519847630986766910498558524252076264182224545121504824718810787828231623928146680184422730017843601240601911504115719110801187175311015440112109814674837451130239112341921251629159042754802446703846047115804094669996786144231196986804559457685465551559168109862757347273702291481031344060262676450380145255618812287954734502698796228818717708837472657026250913076108032935708430391464138062569328097974365108907220420704912854400485021003251954991916144058137513562637206580304571262673625492922456365968967566189235821287094303571330693895417025797747134759616710271089742572186659323295233762460820141060102016387771010940886156761918824450807876390652232969156752199532167289490431408938362144270496867035236519374277659838658319339287780431825995467761351401281074246996373173499709902597902676697726015410602672919866369424766547998867748979101882500804523652789122063765481531202597071420933919151185333728877304098888840098693047199839960754973018278435189479535283651813661138443289401844839207782198150096943692928547737067264343501620554769571112738160145473455062987186875649541730933508462364839899377499793498390437860057317891383767514706308962399284337203311280132788816225401484464807881851694782988189082827527603724421741650962987579771116515349132604359596996003487837432352208922682197269262746678023114454245226525159806223532957206955664664981694813704420823667807768507933681517144757822019400375689947912842163580256027248112789196742637183642034930045718566050523900931656475268900905253560361629836077040612126440152481716310462963885962099599833216513235407865616065024445813485648808855623867716044105476036660240524164066924760523251915045595648660037396444335680663927318727287231670200420685722052106877676403163698109416910941128130670886029163045390598688907805518169902693628690086896986169902551618156025779616202080566403530929590762361808229628712849080631983524158140104104029293007968656083080850876866148215101061372749098997734489274189692236089049457328535606632666895491671971303381934621893033064367561324157800627039053647625117934327994699977622080359596648128475637897746470118472898517927870857723840525583511935044417804120590248651717616576419127631056632943880424187744802610513689318729385689997039393828620307618581807913546366446998747822923028715618222317033134620795987928222153194306772929476551185894493009669903952851082704337192495254181635475095468646338973347680505290255022271091692657894956303576824914716716494521066643310663996696486214812633954737192815585615345273039833593161949247030605125866622271087358354791744246532899096898044712073158328833712680191457689184888906021135612063713831118478568313744249121283847798618088373839656054609069100069841290751245836540308880917722850560312107103260839375998310587650805991936209333921118508481633426778216469205916320196701394066863825964287834337201778331745136463124093106765303287496714883871847564391927013946285126221440150306211694148751791491050643802480717429633850711129822217593718330964500805485503929491539023093013926796655127857825764128231121115899181841457979749868511634740124103791902977819085041269923338784588842608155031830479186355144284020179951675953941926534209968574843049548103829771992221133928607930202224567131800432329668831132207714232048181566231376966375110068646046299629485807368334800956751941299550614350742290772981481906836528974351515577050301296414441811437581681881234817754174415552897639162207047214761704131379191555608604171452832264407982381448266919136993281105979910950467648202096216637334504327747784278628204293029852967135540925567948915764710909872386135685068663063466482244590261454789051917329270653210662104217603837639174702753026017169419731304666650018329036809279666796915007213190323520625129734849416041383975956144565094288306354624781989608096519935195623090644198399519399720742326728738576958427112576526757651681853483056368026569392633325153312684588775489130444252200899933747753554840663845638607971011931131655833241864448129380835162623446346717925179058633861054265486710617444142506669536279494831967885066984855886795493418377838816750717890538304668751528170813105526813848319800000687400142918093667698825562729015946735067577870184616033322005131157856930056108995851552886651480742442310547400215319576859723822938908410916394010432413285003028335353009141402128862342751993756207839029727013270383937004805791882980928338503186739263340872504530626168908471706451524802107250737679956389462925818844199517773947793531045746448013883733602803478930303462836371801240893762470355285399789253272994410439293567132116022263020319069223864595166642998616964963023852491839138002043091467624524106959109195200420244933858846415796335619268644349202309746852565831539022765093062067366381497027182751720297775083460021294468765667906325020710422252411261670483022263274922736791409544441175856702271569446397568527318301813136269332859294791072118115799628026447688106238886198477871579370724396907381245397383984977905208519748929746922726039574436050817222677147502562852339362671906456220357931427739956407716399282762257891721356617376130019059789963165515452632929504267022332990048511316385708277951391336343018573729901975664376817603599832985401465481549246965421685961930459889597151080760211542482702926547731890600791813842246222229449791055764058104190762086038306759214535007420404063258806752419128956375576226109746306163775617304974397045119924651356390492706486051334053357092146604433830418527077341187074211898386725322273493622460943749461364108802153861223530110362056627451274090979310736766587748373897599638486293481992798542674084086314584696822282228870939555947806990662248741293948117519427771366598184435931099290994492636928789477678635199138461747576697564503362836556854387037718147759286277496795062250472468684437421480522345596225281831777714922436076422537943810948451102689112995385902282049788366823310367997615189543899373966203392890374725169385794043881481355640953998978352935653085521672843508528840784884536849471935117681852601864206344011446923605261452641361076469529047363057561942430694740690316149624022031402040649597821551928863409911381168160993506909684918619259098519175909223997702713595205408690905943056455414663453952856410884154590043870727359910089546411062080059991529113365091747210761213508739023172375257257223216926657039220277314559796124465517129307130772491758787930487914344694510610676384151468164949375138111988542694722527527599127215584401145066082625579185202088031203774745210591566851131930613933508865395251760225062517234059061898707122313276768805385389278128317999516101200545504699105330945293150592168183970128569874664996148163352389826156565785763516059067467306188814158700906622325500441440948030871426088874425269203657427785238361096734776146297619741481595121226827780657294003286934962213657861345705802746683501505427073516288156556978322727272729973290358177074621000059546824713680518682955451027392868570736058981105453495661136894055062825827533533614968801549843012846551407878506510451962425498968339667435108268623519420927986400779629095954329366328942583743238597936407628883332370607628219082727761477037918926863999542905730390340722462824361141644364665806642767907624258104078563699027914330420910597918132869434897258200675870843736772198087662575328277157552773268260858460346613237530063078123657893433131158921654912247593106274540588261042272347973251244006868097683877922216640704423960885458986604613093422036000192024979492815276527339697527862639927071869317471828489897521368680418540213569368622663276101607613857274237203119346627149499670989178794390000529999887708058655029874837966165669225318713599638492469109099376212058021340872729108374265573598165111642013605072135739431059457742348859469358034397187429904052510280654161949130642014913205231427860002190366322882410522711177669418538310243237544703103451179537233496130579124390794141721326064491455928114894311507006467271153144634085506410131408866954725861977718941857225850741978879135230911303682944536529039721582571820284644900249088547939016930778175228675949393296951834918036361700422152282002799672831618745498484090812144866628830276913133470664103378364355324818628937363163662522112647157349500817143431435505505339259037832140792215308283215762550635964465109718977914672379690878715164981547920455147085292792156454936882118196914949085424155968855397342759569690660499595399843069489254660877945154741997817655645309704425825724508041079496070410120607706207687610356290127068484269683049202610481092389939090182078236995176366448551147340821034217733402706651399118991401513204678845828543716872584664344184093832986750873972148616971380184663078891347040558995371487574827899366420887491145514424722557356350265418563615310945455031303007322015099671998231805322020669899471566534284328977099573668517111453349644574546780457928995658134231594272508695139294356902659614946044834265660870598326157506182222492754598044906385151970993081536372713268112600989274167202885011889280568918307648773138949735515947048395027014555460887028708677640270498204160538819140791368664639120878048087727198347343973072053971024172942494094181467920922706597701844987333737491536557391181847562174658447989703476959413433108742719015950378490045252940799810159591705901448747722627586359882397016808051559110177775856753532896900441537679902394824162203895918199912443657949362233589315011003773619141437928506034041931367144375350753419210612258733407005020054986140842843508685412423558308800400217361550093166912854608568982914901261553231232221031179453814287270137029753044233263761732781177188821333383307810557261320500278729128332977050700426135569706142757266476735591927684578420411783408979542301689842717089580267568740655288937402645102132568547281504839895185556602809814150672435760115698523258455595021732495449391337332098120008290994784991534459448095019208624516782522776801399981131126112100634475871984249430872247466133380696620524499338074377295919055469310337048304882561087800397472254903538612795199725677073246010698345913356994153809778745614482533678459377750271494246776136404246702178635016122367877025374024921424817815810773589390866420937796988506351150994566886814505705783022173120919298892239445624164678892549663430729088616433981571691763605998769681352308796263483077346970949029007137711319713451278733053926026509504031596168522291948010743550389052738347398310934183273113044909885375106852958789977905811625610106874604117570918071850228625692126255684414902960521168963304392039633775001593886768670825841243727785263110864234695389816695533980820258412125727586458476493039967591097030020715591001448542327650652126998153313617541152301726111666186832230743424119677546859318282676053265042159001665881024770915111018535590919150132747155096485242863232769768114607133483454144985108984095663880960437541825402179741170304104768976015315809150742062789086467355374901721546323408628198781228642857678979939257735995125855313767232957588656053058440750899651050245725828590716401832708288700447202489395314413487693497381121787551118975323701441062491473562518989608180931889420775229487808843808105282310020328013496653330017794043413914322305696886319359496742892008096877576428151041974197904479861807504059095765251849067059388312119599826002112511625435848601279562873988493059084819933023571748379452996353407017256526526686415799608450828920061167123853570021088386435471238057109526387415411071192509330126312460648032524687961776533252436804651240259168722905364059251663474661265086887364051454542426777796587090465701247266193825119332106646093631699425359756350866585307085491463476881886853201899585776552774090491010391680000314656312208867266542799572194319473646042346776806660308150594798469137935758016829256390689343377346731743476692467398241431603039230123955283935467851693084664060947001499343424038255421970849045280310791370832428574106193300443341775421912923803324620090435078561632789344090482729743961899566462648313277632930846719414111373671328873942698518578344897233385601632321370263478806116808413170016003892235058566763164914574658006796136410255824078030090177589559602953116070923706187658723180653043503594611451012512426812037944404712285194598533550801602778299715644272123930660006577653225370863946588363102430901774332837294357534256560288370652745070145867939663086050826149338780382169395569831269972268633448744594794488009967464962473590491096095365441392551940403922983053771622276407335173055744575707101362182369933580802414462409309177672428926467719014155777862566708229748320341920025025405544515495217666209468757456065117451013265260104441881753442595980059613053223663571816520010531326194915387126795286109790032178729856918363678490599874478207395322039093099976076883099532684613491145198024234921766894623078973776722536470472269561063716753178953583953588231180905598204661606743560841764161688640466469588556119037883620978331788283067339092928543086421523197173626622260102149144799541946181954787541824998472935895817124737943967907750273325148160515509108885471640853549486515008515596458861060059927164691825654497886599334009479914276467748592189976887196488977678541680649862266476383236781254056449590779225323924692917073988943261476136123069750441805575507541265443428144592921350459937691808822353647745841719910791707199490698148306885183232386834063929617070498782379249980713759129839192430864640702391845035289993016473767093511482523739033655074515688266303428720858648508082689769720817764955505794604727448895532838555065129953980533804213882015464082502308707572342168149736549826054215247587570201328788924048549458155517199238415412621031256501820560867728973620173453935938863676936191562599841603247973210934079546817668589992470357603226332162045196641506937547569861333293712213165739758375391470304168714535101395838988495383413405617279652674713288784238306593021887548142555461700931599030255277714870795853562132125184277050710595404783402690572151951652942734221640227511638691869596688674890235551579946260717762081578675411830057522218765763603713571330638615000839995953218360158433109763097479232961433971145587557955795808901258172254960596693612101332221832272348485124807979933431138744978400090484050743429596722390257569704283931829763144337147508745527437285582959779758476352963960908488539649136794853574282788646842704673386693146857141143488912720972576314167904263519379612154243113161770070252628850121281014547609402741969208881664135116924890563840383930181813712066348247287318997232493355346938779570449791521677047147229350875859094303854041224114234701613118116914184712675804741421482945962850448149409367954873632138534581373894639814965604407109715611481054080778838598694510287532143804529911736471701591713492612137468285074724152820591792556322359064529518729347432262749354067733350259277792575910069379716707238741702393848373030324552684968628183499337089887323279140449465914750501030768378106459265679763057855998539931858936504699028262522375953992042178481377270325399537763886724244989391968339551985488370118728897578161873223281521422066305600910566744151853636791484583293317541180106014801165161344659780724748216309484124961664597360787635067237032404326255058775298057731619777138236982108951376818979088884820646921317703755341732558396688456092581924411819363550964119516668050911659754271862752732388547024002200971366027338416602016276906113049584817939942144636293373913034352071675703621418160681349876644661839271374282094464976525083095456544073972342982648435772310023971197647074935436864857452846255808953131316813551856741486660727122400649651997424405984412700704413650479786777403747351815309552219535758062585584721287939559810495365856334726438565429807151393363878301319254993207630468523599115495848646746000316835157060794492435261934279893545853037235262504945002948066945669702758449597751013936685360576368274923364067305914061135951163525412473940709536068880619696168005761389325041536724296207280213949990551665894029400970080224770668521020232965795035278926974763962987731120759825028545782528636099901799591721467835381856668288322265634070015520098960628388891009362245945086293769747961575941486602708879448264081131708307492264672714533277171423406476302299057835520418705897074636448793999442395169699515393788474888445594040173192425632718588813697252387491214402923714335964119248383949546068476456772936168508791907640692212290035831351891274735216184859471792744026583582867031471277919810106479614654444263160879055113865027288214600927947572565479733989106129708964874026423009490673718153155393492031740622018488138696289249615470247306878881832295251890789131334803497622042509919643930913622191500175131021972373374183641222157014458431308156182571901195803292706980696226538058347082462645562258731382437423318575534420022750971293686821605336961137632428389405665985262624775471373027365930472441169449274422711808296026510353775287515880518858160552686755699681085689429162192808262869714315853488252519608484866990327349632854222996995816770874822064442387204088678819942536245961182307383450284979713485930363627352625811654331802381071232800692023100450415610330997880588522521541830862901897424200183982155095724005956210427320868335197965392219206586512066935007713700411700178417730561047764287882903387946930300999643943274656724597506447294041822911369507345536319834282023732193058968204204525047119744730155936500964634818751321243410006910455328153146847730499852070413234593878713791283711223361658724321362682874463314443335601648867453230384537200030404357951961481307833573877123950418667155306232800933164893823301984878041174038476107925583119278890580573490373366472514717742353640606271338660351245760489591642939100388347305355251848392271538999243026864203822820796518472079951111197448328848541451517401894269966165652725975522973469996038765006703125644356115094649636777928076015170480813326873059805781697253223829619040592532803502247398933672005695028383032622966925794988346654261999040407979776832665898306884872050625997459955971409647263454322439526873071466781275761051555573685440702155300727500787707361560575737500919411447752350466198031003379309730264321970627662013868374167971387023170736326856144081445264436887279514620307819443793601571870004587276299729635013846726467428338713010540896670250418876941755206378845694088201924776899134950200531781693917185928916343686698338882249713911412936065942926652189774494294098496455881313026317694441262902009534320239796589419757980166309834693313351174196622184367825480124766866426244143128658353007026314366737357651165020417068199394428395867752789454242392357852888651748234038472600455772710880913354017626374545279747503391427142708399563382224662057883217252110399205534247959010289725188414469538637636932648365044878769905668569922895592578922048144792897111908594934328741734883850504454882007312214303046550640053495502889536471604356887442585930847223603025285610450361747407439060102735147868421476049620090414304644349780686987107450817516365277372309835579540731349868621823149450277584607009703397387488252450015385978140918713694778478021394732363831907833012670348918335666496662564377688740691407220619199158626253199280880080031139252605638778169472277024289982656230166990945631391041789442600142982251413649741428245236626114032035147573769614004156063300023343345454565134199056978996946094722045682712365293033718634895849278069537984568852296261696892750864013168298482976501803695851489526375648719588951486182499316144011109338807569154042187044481677101525753459059004503489240890705908306833571644202780313788923501228792981319293613804767805004796135662594963707659371885521385671050775584184857877205598714418025705788220443051014741447553893471606377202208776394047759844360969341581517588748541495510848327526575846620429603909626792474521567103728264226607466717872332335473044314750864655076525409230593132183634886064005583670424227297747791501471402576305009990815905857399506655792157861576607459858855070215285309886158039700423358792406528725577726200938967204262873792965843066801862119890865827581022235925245727057442395971018311185236275212667211929216687549029136802914114563855790116409162102025370639240642322658437817758773396950072771107037780062556007732435407917088704350679889784767648924920668844293056371154438099168719041265111900796288282669345489280940141935153584650155216898341100578066223034231630953306520384537629406327154104942826665766975548860226142488210513065818926164642635420479146341866261162038253120549101004099294210362011126057887541571228243306584143283247404465754303038878813146934414679489926277664395675481322304374161079398800958434747540418316936617588312101161384396101997522990416762175785025183964526304970551458625382317496462238281009677690383641872205486529626641902383654870220369149460452287143866604863164089556922996230506735103910501086202705312164800137788134942473159601407666526068144953380105010510595209066265388045346047193572963573158980718440750139365159023709248317249312271338636885878619458973920913040760183255071500652525381916533332978346856919402744072168049545250193749907772647400242445302614380473838220560232782707745566371416431535490030328803879643469256031443237548805110410837338346663694230552997061100405542809013197373110080949129110485989343911255407175794250079064461494169002405748037837724813732612291425983156032425930256861268294088287265845484380071130953129235546977802799365155950414748462305935360945745564225598863587468267689447260445827932314913213620535955108559065229839332216167224735362864270769320164432150073214099951403048668364440633300875389643091916091419533252767387857674384156441896309765165426959214771771256643787895354290122656292665130197506361079451687450267418956041892937925971378663010366784795821823051971965477879441114838529595490909085799957523526264965947196701687979944780610918527343505129851588945530817920853654383949537200573758571780364989430746627823753615870611312814484215775604883298903931877215081493832035968608042737921186185859355519927914711939936843938300712933096573631169077720850462877647824940594815833815466657315989115909776771812725201031137494827978680207378537434946530047475459262902498249968607803486306761748684937210196693745122638425563561598803256353414874061900352774789702314041939712150140443391836875598867681562775309070868081920814812485493801675968860471199965497795837739160809252390429180199310805822287083385379095656290447528659676747575673908831854062425868342103736790566980909496736239400704759147099264104127217866433137584308217465902355237089729389994969319891968292426863373296849130753204567711929605476132176820427859701093811145652264140824744924629600518712958067042443649503854676281581630707167620136235721535598095180623473052812690211328388012466638653085993839230489074794555099106431382764477655844382869963910379999199532938732298238612240141218903931261801795854602661173369833891177250549977547031987297914148677149389778437419888381206829967479161781728296756713401892681835746242594543338469842447698670095356134470717318963842993016461571585484342321597888678383506737189302416499809162543958626352684125769944374415357710902072010819345371658834979677021222947597481800991913294728895225376255167797850051034378599394368522641810852409007351728307361112199050855644050538914527140192639982367019814194895538401210342054946841174668650803554897714888204489974687399928689379397765700358398808495470685916787128401977155169255322315026112575679962612980293828270235795150823847830184132781896760620097546957701392295462424966183630033876861136651605916173686552830402885885913031155420760166925484972395081809650219650095877941708314159694937774681352180332050202073552746255112836826789965091834580855736320297326550903182250329639955900957773427129868690042511510088807890898242216122861002136969640719258495288253429131452762988008149585193358279308255666177577954724124821789256773228803823988434292096281434057165814769931733397949069464857472067691395210680819065434771838046750383401618352839783705598303389375063081267860071461148577820879095700604461234302316675843444826996272595199113632138322360918790528034560317621124761088330811247190563318248254568658738332020503903373447704528653307443182532184524908939411121953034990441221033239706304568372164919432774503699481571700440404666668119376011510598953291049681117041953475417327533042378972998351767170375939300720136666326693791661353921551615176730019559511004216593915502565820409677805693210274116509955219301978573891726306101507756130203171477516525764001822215708681437236058326352546127526591508134811040057083591039301064655314313331867130600595841368845763846957871199105886390726181243424820149062256090094478775278876132980842168579099178706383707132959526899881597055675153522180793314886773674564516584147400632154020844207699182994743247532884893803348826687794740694157825185163703923284713619743812459276537344617254752102051399066349865831125791838260191876554216938474807617352028006714214792333960310240053750060774327081968882256930594290381303570997603378956603556442013502582346834316680066841406155624537425554988307742723039901127034552848153084266839117625897346946053106379967797759325738704144953479804198878775092476994583317150938989463432613327598999632015199044955661610589108101908516977790681002893419266117606259721331057610275452858071803915240480606900976791425875846061108810700923966317399605793508885257735510935740266468611057975093179761535508774234169550964887775798158429139577281064283087179920381796542754957793868071950506121945302119932048375856726045264523415107625090968759227676790770219115731892837761006894299427306178647531429347595583753233710677953598965411096203843478657397914272622629589244568617549187209540398966129814840763323878017352076760858120751185759812391010841257643367744534310163329273786480583113969393156407020886670890011236348846643708533289377550865683595269666527186544573981432898555065564804147043663927261478934932501806799816990824647654284021382781474602562354726091877009116544294288426939273937874183556906463624304374113977419359319162864951804973370891098955019338826658371754816952871099179608462725756378143443110551025892761873883974920949887766916787470570971901231117668869369461206907261591322569457194550840992039646306810964459275901474837371531241388855597560473983169386193082905649913577722683411196189959013047297172027794942158354720389760352968494130201469486443687385090962633942882614196918322757005226581290000782893796406886348964833391333837518679931383552620949362978876337434495774190905813394280042758461451956839690161689699278260127702255391105246240640085932174479852950275875166461503294697404891833574222675451766168783568250336726662912802523471651075301507555676097351195092533992198386728340305507489725209295517481166469156871734841304155404349515872286547169313353093126043576477096797151744071681818431610371654658830952483638046916804885808361485390910070924319143929515789631049858638691615562251119156853198464982987211846126636164884362592977029329081853056380582863642295077222649826628263852691461861913778663692212240802706300558983901028702616336278783734083676461007802972679338550263439862792922167874094703203304221022780537595161035527139378781100217664888559571651081744963832161433039970961204502655278336918770585453535238318160867401669010126552782404816544488887318813163282269178352393903215153449226393925618585783147427546432604517581607193657455167638043842900509732249465383551136646736626465047788123757730990875165002439426790222858082916105837842606998218466283246135040474732666633483479486778816836003402317069200867769490407218095192389453212199107844663287206543115364131225036551558905453075584355052366470300103102319561028446746248725663853015895871771193633787244223788739779631170022486301126595235844119949416034679350717378099101609113972515101103077378428253592574658737904908542673469657565068657131363936250683476365840024644127093992809793039936725499744276194589801357306119242855089675960615148202200126096827610797228066106942183787243556312049132108896148442987824785048736736794339132527875817910521467792037767400790457496638666489038693281080407742648420486721534736483307679253055047267929592322716636756301873583262911247985144942480886870183632296590884864082244623280811447170215370483855836867709973802946074141731769174873892279121206223767551742064031575385670588045889528441202921418928171870636748926350926674316566857710806264373700769469115382759745888002134413893890294075915123313844269814336124522372919645451502140425540000007529879505564979126080977843863328620852161412091020225864475818176299013832174016072830411118006288234947835816560904908460988045112798174747845718769165834532163413490541134911168752158295768622080380293187017975070306169368867141599010153981706654141843772374885559906937354989233045971890892167748227018588093522211080945622816142851440998797046551053563846191602657490907904627935029383467935651376266159669699000309493929765190400507279322507170250328718916712066652667464436590002084151821389111203160523133535821920247226738472840267740510665489244732515998855689331038985129629224597101861400087095399776707124568700502843533174300207825752350699641419864762724168287928552000947660730789194212903930324575794567716498462911389606027330516744395837531553050501719054948710452192398323065428788868539598483802450938249345174892890412927508795095213943728536208991277267478734922479082372322196424682224687892741287145617703302765062820507086657024466358932731413769234957081392529469229625610505261095374546609250150767158981081899975553296414946739837429719850139158390761973623892378484746632741818278079257975319766519877979204670695508559792513158236549145553953673474924535195524099346885419571597376614559093125886655333474073840130783606948608895345190062651516533299055287223078211028003130769001029944068173667486592521324986316113228291220444608539925640891811319574477723828353704843716569601545120094119601283237426877838554265676141793086504935682426573484433305986639028274389706482366912153863291760589353245583206478892935935094612215635184938667447917091337569790720689278083607917061573852090581872913406197224884224564136889337340291405864677724828046163491208179422467685133556300664735612468958563512823137737963888853239738302867829746111419769391126510204753394791641521419840488428110375440805570902149631817312192920907408923222327206811410228569229511480989238554951556991911638017747633844103934104406189270289009636095357435191579624022802465678095943610110260166634112436899234278749584811671834982220047200833377365502176003073223863589332963954691112499623238633578160023161491215486860750285529535867173901671688411267663827514591616533699124770287218166780352894268713431233534994547738589802858818537563685370715382171282256496983028307229396519894727054531965307783763520996943270730357185542605680588920401068883424651939236700173277918923243851160601092308693858004986270067954718837775312710060434597222938259717588471692316124740896904633533991903983343166355830197391891301725986884379144978265488083485525279297283298073730948896667859211823223454098966527722809640790125645667780051164244746986003782288095743889712950298289778298431381849291532732686980931199502275306782681548170753972197448126650358230584860099830162231510288686144253796115224004593507579893566810536695435761514879064721897735722521383130611924254333583212311401769659937480045309255655777740722522702010565306784534923270705130742132456084909647402915129266520633443654641285114723243310231774086507248425430124578346150281734570238730111357190634813886870762442877725714431337532665387264463042266119765642358764569329664869627204816825430033160391754844657231444022674229871098262451291646744404469676884764021287156306692392977568939112477274588381315021779337203529685136242071763006704000591401972246774921777308393211617931993247361061471982107656839748709752126691062973034130545874214110904211358425701502545860661761158653879300444427993928533977262846224996177559897134511822955399439826745274496879891433087933405687505946903949396414624870877877181027825985570159818710244146471411237809105175937814349010905326810049855362955348769638858301140810835594844398991243210474658208600582379050446775099597913693775079811259693995529797883149333369962909493768916605478693876379225769872314088862551235835332475574960010616261601621572124975976388391473821795078080593915924319700802254471954269527635511815247916230663809628848024095760832670328294024967320531910754489009560835499468372535039326619576698146031952179374596452093470345116563435744214121292891359001670261351842597317409024121192720463505151205433285816729463848309747093975798042168189243453110846509861664389672089913541163706158046144738969689729582398973192974880962734524784242545949032291741929611812312619959897154100057354675865712424569415063033559851853386398821204826366847419590909661412694345655639774130137646482896504439976953305883301218316854186659092865633391589354452047189982976862373539339745602684595059464515645795245556534205543866580835419863511388773063498136030049304098468683007497448886818169333787511134281554645300431246810844841607309407077369133222616854872968155271098775738180978549373480831176094451493695356014031368029633592310187229030802674136766314988258382818600741744148914155256795571654501780698514471539196875938074141402938906124809415598935847569360666613814921402345495605223286011448826816031187161760974242604147287541819278654562254318943371260924173841080344556991869907375891275581587720433747064793407942495765310783150569087051492410028173954296026259376613117903329709621691589572333260386420501167660519250973824484956718303812014210505668054175431407734846538243022308844157116855723243908511983342097694964463089074958399848758309394641161673654353565563882010782557596883003135298599093156282398266252579682773360018770988825245741076363967883748524318888236911076447080325799445824485161244769395579950014653935589017480764444327128832356874706849791820701285727228230281565167066343223865069857588712249005787418655000769008331884998533598851455172871027792907802586127738570957790902054196592000507922669902540422200503875935518707863780190608499797567052680317829594612949811941779124283253330302509543870128580836227327461657205749890068451641505063660250473717158434304376080346173588636203306739487706135361697214595241715687957207423070956339370793158776910589215997782455982980813222987197782410010213044277769935179860259842884564465037185812447209786300918441410953800589489254681244015521450761860331101294820935869265646937831409811758152097400410534943010867148862381874444383077714389406895800697285185994879309943501396688403076378640796144653120553684322684594190943894114099564410034585604510702095981827093056051101254657094020017153501422049592413121544000918270705518591536707641918350083922267599409234903503757977092553077522541937407238793420422555972196682099430195522695867579020515219458999313889474237688664303586777776110275414937957259211327230910496433019988234791457964549708883136857831045348382271452876387500551815258751774608525646204972748107629590329119011677568424308861131252411000661180134127838246142534104144119047015384892546331366655712651744825345970295315130037837438066644697598332882457381806116995773518258168462786194811378347153928487275079766664902807426333858107242824345940209636725786882537574310130762453840132520583181508680599713726365118409830977212326173559533417053735125473475337132615951385913614790453773433930293081312490724115864764112576790524849059186334881372736997593156717490967433515032494561405028465747041156367725629156726492784714501233365948556744461084408819866147476311772735988629695590153084625291752845223672092281594248746594296839493697649473841935470828506042039776707381612694910348392064881378588230868153442061814602883441432246052792818371932128666116305141703179576560613893601452250276857685225175257937415148844055514284764689635553082127356720729276711554602724285282258324353371786117267056702604760085293117233424740108967209386237305229545177550340884506669112038023832515356262435646477543945011805896684673840106352672043614756544406533907321989081428784346894469105050725641446130333928044750199595267042986611786381923526913422200178808935353094695328805429374540615522452176132266295610932467576684198103998593701840846694533548902839378342644553054624965236315905698948921950337634661445071851485261337446140758283783653229536713220333764613677225552290812569375447655049317726013642652080185189944695963835791048281916412632285423374198756711118825092591143664144436951269182295519684667503839271350405377264447969650279035515119622521845808592718204638227202682029149354639472607869533444717585870667317755305038400305054737249432225281976133928982192583004473202047442496590444461106244964447095550316024679683045097869573990084264045890431715941170498020337377517279214508394474854279289466645458898943010904924040637526720699276587046929596735326720517132626232002511945453022616643181264731912329925391723006749907450182900425975161591864155352449041222415622963188876136069405144570249028210811281530943014408879231386277055339071811608400985011974665520428408100133979112978055434213926182923114978432028718929628290364192363442912689620631182993717612026353072856958442376998226206842864704686075841242914621930867120235957271922152519462706881132531892771591177128748759038588697242930035256675762133914526664887739659373492343364118961609198322079146823539056565434405101034165408803434029569628292409210778471999128551424969852911453179124378549128327530689442508144654451156665895031703839121416603319011122155626445705019831955751479967070207171971596280229370739311887492349542227269366570106638740276758648179795805173701694112101851620546200938118250458226295181587230819914090845109145913626950454751383818805128968619575279940760497952969438299068889875309146274601400473749259596923844093614301465753562489472304568854500617235751890472623794354603537549601574691175208215634421638241567513384593312844289634318044596226233343278556341173620833456758548288359243234155092400862783607323884528304517936692972161136972374031830919149507999817474730938457389520461589696764259175788652388308320075152302358659927737123688535137194809818626205073341392188246371939986297588252400243270275593427510012722069373221082936497707458866617248809998644293027238031324671886757938294250732320545673610102536878195323249825512515822129061542784084014946551316345497668799747911830293015375143833788684100875271422948687845576277655644004571060490460667915443249773641320297126605683384744227292226339366864648677049588192804420916867586431116095716183497335016689927765284354673544086168300384593000842234354493319756001656297004648149279706236760433305253093951153931347781517880278135283249049977631606453545399295031498265299895948318893395281613182911288883768965928853708897692898721448275817021470712773078367837604430501121858407005459318058192201429788602957990704062669472140336420580710301731326487172403307946931868710226851805897681296653738705616343374057309710355098094302142177159019773794653660685143367790300941984270961989742986334060154506776204505983398571800958162312818105173412832124513128199016202371442000719291792267760153955940274824674833737531016239353302926169397881802695846944842526510004633985118679633591602921300617490882686514167287215406693303682210121799348018201656440277870306933924763885620420139341217661753875158085053674132821175183658783431155040231157761823399829786170963765018421695041869735720275411607280399247144540391564443434011884782063882932604364671339660615227962404071424585294291481555122660652521486267741546403015261469625600386319784681310600879080665117040754379024050744695672186587060133090533389480635075861502391156804177358583207738070264423062623629756886489822640357031596587780009977186168689801530870904738556595722075406184987433421330986402704379034963501887774923123967047397605714563093994078855653480124067915007860830639703437177115201563914387114460901222086927506512433550598959365989089674431764161464314895611019801967193859268247264915353336231010885610859440752139199787150232356873490109513675399886615529413113351142472445918595047244301194053034941378162174188274136300791253491810998985169454730625091370024560367906833488025853901864575776049704143979754210328824342214565547322820450521383488113664384463450031545567363271400747226293234557572269590571472957931937863960704754833705480894081229082152335530276622069787395858909748580207086132573402997809702458358466133250114589569965569787064212857436879013134270954006736315545150741860806368016082115129928592388014106100755821114623669880262611543045276189706191507636870574610856537091146944628921933495585216602651965257174674905468169467915509416039797084065569845456453899329694304192971999168638434493041421068628331796450558536458332606781225426737236591637348071643120510442742455475914722682112899401665629040476075580273221069149109600598870503993157826397745082793564636633355140194728470728632793214083595725982192028218753584757861018758698821244031123994606565176158510448041594807235764918256516944656907889117734016180837293267588862032391902290886842722584374341881549104423571040544358089115069125121836840087109457390243442642165609182686621055625256681136682674273268968910550641671766171937671107811478805117597911121962160016872010204217888160632299507662112293826409587416275730584021810890811328247572693881230712193913291114294098005930292648263812377440043609374480257274013794932372425389629438083305979281228657160009292266559544805178532413767804619875679403171587647235983275787451435213125138273105081147604506428052237073688654854419126572102030689248404432326901464569294018921210061450301483617803010038710750790242049434507037835205543218879495915580184719669184466862072960462006657615096025763600871574816899464861079210576592516130853342141665891556237670498697680867842150467622002343036473266502136531063693664281012102184706911599550246214742198602608815004032809405114014470725034316874042888568472652821502766088783572846748657085347479438891602576897506438476018047642567032204212299015116058301081360849624224888100565486804048287460247907449634757842329314110803865407827310622821312157748317973729320325037509757986738569051528209458368455248582221321692947419093919086821680844512502756516124974212628583052754272899218737505830904681520658067980475142782045025110002952637817432395567054113435678137015540506240273193381500794635848026760052095725566023661564532831147481291999035933586673861361598959609804931178674282743187635068419780822811792287156422191123041937211595010839866321558503133139541572269642876299584253858362213956181107345427652782234683164085898851572068746545372426331210006653368625813767662949140554917892333896731533342430296050818918403354545841945505577585264602771130523191463603714421412376044108301816799757071935975059171591315568448627908016427850877804165700228952445664831885577509089263832681916928292718929652970979760006519840443438517590998183809127810207959238428765736007268419690498742520583255230195572162770218214857697948067719343424733679620092577251880490341970670934612248114430134886993081137216496892037235813052233553402750732046624266319005489544430152092204578608675064312078477900539431009054042603543462982459788201672257397807559086899523206774782058477560544789494441836741841941232396052952787304219465554365310152439123499476587155052175887852124266585817532965148981440834841620260279712529519207929474053196004015645077212211758076135501248750157839097684455318765613903493074661601600917446487387174996489300687294918546283210362600191386932941610120097303289549863514500807996770051993890422629049560534734938664398590236244058711604487878967527331553739694723322719459415453381201474805557507536436310221694261777691750366655175745529226348018979718754108151392731579835026614913642697774807783108379386007852127189793983619646708891382381452152947591931103710959674442810346850461244029941724585975779200942788696679740555948856841128016254778987580289412083355170963353476155631112487944705934903589187002945994810560541947820966521791320650758882850608710152085223106914120061076986681833210267768975999370931279537706080810985909392360707602211982245456187018925859206624743256411780215331821041887006698812725202336349883030875832301584950318976468350492962583586037718241536542685524937223368353646919342980204459599456600690015533845204090171036505674917788373957947220475186975467136901658351999798785187095639250504826645644537678888273154874287108659284602506095906337864881493458896176183320762864371338048212108859740879669015681165560972222402038072587834079062062172547212312518171454617848411395438657096169157363054110205180669580610402532737488104716624447559876289681229084528155714915241369884598384865762419879723058854841992661705990422528739264574932564374643373899376881965280107185649059049504240540937235807905391394322934649008692441023174903269570654435270524151746538195419668844047834467201324142732615041844598042415744512246104432018184896230819265554050204763318563194013563568737591684416675573246368386100791753218019941814456105849813147692239733142840863035440692864639159533842974057306702135572762398423528282786280103011489173485572462602482075025289654218662088792835047472851696967827676996289604228583666513403753300858513888244792771367142140774455041871778669707480893528953056195118973434578456968425045411168730711775199118147271067569554562095644055183406410990542912445684367770214845476550613149698964585294335653765639155350773576833271786266448895432669476729200769758101174749116690986473798895113696882652661713449221652710206187348110103468894955688831041327935315572104150876875405675195284961614789683265829387657555034747781493120869219030767065013390490303109729612314107524354526539048588233569644854839750834459912761387678516466718762990618504456641601943639102042177806910530235547238728686195243426474845223132068014444428264777354988049500204935423830986625916996579044090491154748621216548436049105279420445646100303129697099419077453161373557536752783767701168731083617439746276899186862130672518170073454520998918941605624184292925240283458891266171185508866604145043674436063454416975178638647060706298179750851365066337954490853238904704719759857656683874847472525477788709529694735660691050714717462082618312813801197616316436931162692694578884120031836031813492036000748729302409569064815605517062594574295472659749174630868961449910834934914640312409581098140491369207713662650286987601718801574397091015208403723144319358600603107048728343428444936555583369123771602252451935339271380976198364074865926473111990928464277866173679243534270781370900070753769091706452721896066871969788408063205586073873093591256290714157630731921934280117701056068655293292669798979212307144827754785582973415684535931332236456156854489951603075207848854352157720888314443505569978404492289769114616437965251442928762769269252320059012636514428032707628566794207896847573131426608342476005369487954994920664514427644416944960821019352850907127202364289631252130529424574802701622845953768121485578224885327178518577992473571125000851105149852472239558753808813480512597896598953005494163605885749460374035497010014558049902351014741333722723209420982444187816298935068669346933253658188632011164359537724242542329337833223184526759890733029653461466127450266516555945615364852319336836161961167712028666924347285574559934491178524965190604538449426187252567546670365661166224333773102946250141692131548791869357577595536137158138834020821439393947709776139040420534397985113608951777884493418159481085022528973446605355908075601115702465280043804054175963027757668202563040553952616966741809706227861929854735482869218670282453426960925745485237888079740122727090490960729015623398245345814446627379368296366572144046118268021162855477545599762279708481766751542440326355957642902494684572765246775786213525407618305627046888952415560865173732173447732698228211583959625216669575979233393517699064027061303569784882300981197365158386727991169299417573599360842631205351169948619922112485461160029286056818938386614021015265123132882143355688304444376775690851691275243275710582558439349543309791205572703512894609965666654413665271091601716386438653123286473093596889448910732130761886773362986149866805921007174147314474032918590867812954848418148702046745453199035611895764206318959356689397389475064480512568059523677810912172578149636639380447424347330316749918464462300434836797409370604761323727242699598201280784122105034822669675458797665587631236288861069491495462736077500769309585959903134705245406228347507649325413586625858127543744946761311180247262593644123274734211469893537385138591164248308571917665709010000178129177056773514624937439497227038373629979022461346414753222593191420547987473858992089430404701184336410930564565770927831411376162745191964036032947887971516605959874912418989120518979289604392786756857296209232096865113381956513996578630429713533655604610057580123707798464592744828916502058735277604126975587417915928920138807525671671406918005037629405130724724705438892964086979256205579362047588121947269645457637686428567191433350709586150631963084983676249056236952004742454473042268909593020429416926329801003067412792783230148372122464515621472569076986409232603520139712890807482716070436444760293366960427435128133845156477670409088279851923030318304542383672212711156778576564607061336442236520530358401502534884551388190863349097182873754305541866272400612773995694965068744893893898527782794814650091985536756239797676541897869847893679421156085066815500627512087619180189876880682456185868836741895738010722061995008033408668926317659251762611557768198265292654839593286788830727150577711661952591102044275580205550048848829700467933523677486896708699457590195162777218832466387611660052773162219436834988165514731045841545061709696825305177463280970084576268632189678729558730897256120168139035200143829949187524569618917320381376308569306510593716317485573351470070930946672195668421903567413985331006288455674097585967954738276438337560284663305431017151401836947211813723168770582845556443965876693137113086311369631542068947421846434389716796699357242511446421351855875910541023970189974674619304181141417862288989707315550103558621186300399111299626161890601878619569494200263747264678560561992552380820877705956101984664371163032239824513332324247152841627149923331666231963323969265426959797363726369235746192476447950169432688503838616524623766968340438496095252174393782274470820589347022191940059097009956714184105228782642695495275225763831158099326402860934363628779674108079626441378548114829357892247833212731558274651397389121231504142981904036413722387400203105605464099580379590499462522345059313064426103187964524138869239987858152720409285090352118316355103394607741709021453961313456156433994080985441403692114571275897584970536995151281344783232200228358827462898468926666049948856181126100122723972887672353048574452214605570296935045838820765996623848734895870310949439637178168690081600805094106252373675542203871597982316568471556714054193735136005353591497128463328334101141674958066929725014476980314252691397170927706217793042498435503182062069171109328947508099561411506034038965552706137624133874343479863981091868198865895002749318545828557350476445352177994925589555427830231805961445047678746761680243668504024328654350654477241631531534139254161069481675907996498778681987603825906244153886913434477350708014156867011941404368470777854242520088037838933612637631644187960083179872134550062732809855111715038744172615498800313826595709729222767523382250170297306930124130575512595307523303835144912327493894070565100210310205779081342814861786538456360379269761336770490086334610689999506597155045846594298419644025202898070991975181911569377511343601060817076411546372613485240947994254165171797894269729957648220809699143448743924038882429124481607724866745198848818084786139612693769300923349346339168085059988774046975246817120308128452891492158915457231212758240704292636761242948589994223965176509431552764505660442080346681086052538594693371282136748718737669062544055514123634709794928564631204073388084185479961080564261210634141672366384316291684431410385898777371136878268461925035314966469651128340743324568291176701709640684353953354433773308000146514882779687443183253064703366136770208679228415436752024024211170279278887951469186618742387845870082217761085256527772929700095443655393513078449880326980941735952682443482952016288354729814737135472653264462788377085329969936762408879743686500469638680660597816149551392414640626416939806342802212592513984580109787377915332272578450305520734231108853838921625226534613693179555077225560303359481830232619608830134655880079160260595184180831102025964770845424032440801157507882649468865988155782462983624807779545473371612991267752535488578897452744780633067161434194396543024789418724865134234118154447933643344133550646919921708973981478239942076501967102178299099604849163556623230572930506371416006719634437618548332463245622339591319370342792639461455509287875506350010747804327366134518121200011515255153659044759919262645488429528993595429514754529641826872883963420653608672532971999418415792366932107937199320283928047343282065867526773476307897787920598038592519284483719756729349791303692101553818445061814673020171274638051240249815963055445937196280912463224699751431355770737501472094357967494045247306701127885878839691651254561626732998867463861254602815561388007875579222448775833993077819615639632658716256285895238128819507321328661329112520429492698919438798554518100855831489965213965912117088215086720893612660917213778279305533500021898167280480897717477608090024028133745813229500982076369735822507592978066957907273947420661621629689591046379847006269286032089295328176764940930200626014840783446454366393443251831496865244339505540764192438108397600823292646139266861992680819070231093432914391022871136065954233987453793755247391592216525418374939712775931306809786631598094727169716724510422587895685504899873531858858561349301919299288221492152256397548044144226445335840055352174849974612525551310795963657610539981369262923363608931655182498855013974225344635708146369625561859036440977053558153490076647116375219471971339931397248215060404728277767173989016321852615317942101879902541121937698166988036997209728746556439984044816165101118715215878390012356280944872756801018046976569089108461695917828699254918946235265077619686585038558458479213461599428309051686117554570787895512698625237554264434056101724734700162637699293560050069423008576527426741065644538524111338429257763108177174175616224549700334584245104897376514680755392713125620156133115289832963949183451997307386694411961606875124609458324608698336519587121155157925236019951503580239572286053709392587574136623609635715219345475341030768805374820952670899242682967911333125620858403305567985774301008745045004425010523092369149155195668666100718432786859036473174136074466531650520375564748776156835333705830123764851153053020627152650019755537384184644250284170501215887041690066797471861800647955248135069631572569689133316569976080339374940003420841411262080146094628723626708709567839098728168557477381133370184738740634809969394259362982288766392092182948490251216792893214918686172149165362040394981850694605792583926390987485725184140410311017931633912135651820753962710995706637649701451767611786808605320998648417277212958733441552934579448869347676462958257301272992059002751433747070355696037016971978621438887708981609170779421982111890720937157495777194484764492857923480775023514385078265817250089976885585087754885315470800804413886512049723725574503678693161599497054487389878648815998444655143514739644965515863746815385648121482716120769258312844035468420661010302772103195989048309213730514312814673722060620590049415612264824493928637157069778928277099531715578290851230589417785573334868444684340897806489527899493401230456565432273996956325480399894186383260071887122501051988286264217279019149649215628541267796357693033881545104022794941423545644607253159593326275426897532564749766989206475337326264336057222782243675023620702344396516747425952905357500648276907162938808479226876694067267904620917575796580633674821209760983867059035516382132009736594837173801832663382537297153945355277388637074969970321833381162080031332446159493656416016274804376772954516159244085795698028163336258461478632993695724086870865566347467828144120827194864010417654969767920146444030750554849103279716765706643137115420930048317721512220676567172785184365917933936148756792820344209196815029398541863720222635727690877223977378090438535120736601497879334420069180486990975613299796476769192233171766435041025499365481685425558174101701882584578347870075834420725148607379160782082607296159518687745007964943124008571190366118274898652597120860605936027957245065052793942767919967743032662089515586540019829736617751583814610919063103204414937215816928388398912535021206177156270513457507505336691525960699774803222494042572599553493517706121909397313324663829235944227139919094505960676321617441868466340003538906759818156169737973646398318909210258327222501159540868160986343453093600838119132886618594381442257476338141217123367749497570164883019349640541746727967388597128497271321232605210435489275408555326189928689443204212674785395953763511308202544565898346273277484253498391866078286474565527422262688565822510034890488011178853922764298131957898569006972512325843832787719064886586660888546988552415588259053453514862847969050717791318412584480439116961781308000901684676537600758342468278039144574346576265274258815972850074166780559769719512437271588574975266718343386102465311967991349164112155267882971278747263019040161616786926680139225578214383249027095334190533949635627164260818893625057743818313726209932449611221379178645674195654372639934173928274156947517706307051703862568333257238171388560108313509126872731510401417327120379688330713956425730775172219660224518800713900476108753616769817105398184417968320630394268706465089017508663392845454885395584442661017471891866199407593129914739883953607131111288130113799880958486916878058706929139366814550417403177327757213126266407921705477731365659252855887071520284200798181829789743574527409032595495074585057440737697926109206085466823701818147613088098684120883786353488952459145109237925688234606609228772780899471473690160369161301806239183132766232843033711819920641265744414406533489102990622361075940492440772769517178085371740975810141130974423037660092852647960182834519172414660817076628492363356436949539077020694276141995520992481867757599253224585529741272291529503361950684669247731088157165556794614845403131639095503224236670438107517715881480098913321172451361894810049209679872834165449677019674823575406956291725275392667094408439108221241890977285574246130725539356292802319268671772907158750658411232596298295873242193317731697652374987290686979169032011168259665656982259121304643528572800474622605753434986586099098629181572377111508613708090166877023386041691863960475126166687710391754530675741007004205427967964310811575208099745563796931160992128499705955216291753302795072933001750088391409117053623054148588478950926444741721183283563795843348294869062668093950695750339352217576130796813428623117550556691089317225908365916069719795480742443700485773757559953872937828832294846428582730986981817625687283072848868292118638109852922313984839763460653776461991397495292919441043209166118504442846832963889995717309447983719380726744455821587530624953572225973160090051747045865192820219938339172151270873379241956574873831856135997446727166986477078666816184505611493556983968881159664246780822666179804300121568309732343910045455322027997207425904998043143357800703197494962291618128650871841646819405053337783801980854654232829206552690320086659359932671556018569438000071946302096709246889698803273027189005691576132088494858532961800174711213396952917081995762189688347732199004825723499653401398539289457748839588698167125118115448553792472699221530663904830053368967844217554252438257690494185845526065917826754947141432128364883781903976321551280685097028378066043639138270383124321204949173380206136713234531865976932337797763221808379570500740308705039097545760061716869647378368072150340773726090785063189645862213770375055955878154671780596696048081575812656640963596682123050005951008279662640604493604404750198489923794528430041428938075368068377240853542574907016887804341277310749049150874561619571719962322208689138115951374837832867667057406174495537082748929294889036489145283482163643209954039042458574553207115565160563468946114949984216570412110489557303233643851309202021736591322068863066717281208957402735533323472789094905128026231115563241932515297800230807324643564575399022904836744719550707433157538005779078682550362473548950111249851489070933922105638840991250874000613045360352034557696619432340858883940116883834816867369696496320627236245682438013970150393947091329872554908924253789008919801386374191313036810906359855856510685879840260448055863428577077525644402846777824398386678634995652670181455598138074651734982777358816466483225437519530403611817115723677773655348543591102305117474790859205395732228469272015071359574791087267621286851268989111615846123182941413173965549638234239487347210558626217929256710763585741507735631308570871927858928986731729034776360645402521565020631939475566376564315233681275610133446971110795019388371421256483694877551834060433734554895182888256915793869493677425819713861390844341573995885265238294005324078492797315197789125343321741497147772333024224771439238170088569592408869083418228464675364389860076943059419097173096593436241664468457268305718157463644544815378090016583845225109919532749001342181980075553917286498347075630066101137388357881023449104288698601416443408867172360714083778849788871027139476934383866014316703367880808461958387795309344931865702230305435425293878687369268177601458772582512913292769341023321746749024511921516658928602443440695051926639105856127910808422520629180642426938941211896235654555594764619204859110069313596835070047507862892317316570381843845695329149518612412402692093196582950152735697170274982357959011678157660596015925394459357567751060296918246011961086164913977366232755526416653913062507960164666696135605550186315399390080952979847714270025401394982265908701743670814676387854860468983266507624024768448649792976908237596014189800644550624779656352554035244191333760870368278085915386564291703454152978390121351484502328798453224862141238788211595083283268462875440098358084353735720254573437223127775953081542492722597768756010530714416336087236498250301904948321137564902807308192663946023233658051163042810648840370795562381273033208472179867751388330076179934815958693905131380994747694373497156052469960107481506835497649749277454094566382546269893977682297854217341853593503610981030327096106685422435910251411501997759981310230873718603821553874567188879381485537185824964776539426682641672575267543609863973473297120664579090970852977485923130155246100180985332190107606296801831807176929494416429374106924504318076245151568059161067309614848166502176194046919619856425313016841869809989168641194274619781243534237033536599076262055889745193165869128072543370739967595357300598920718850827118281081095354200060392598056142579410563360116639834887366082151322774808589797654467946951213419718070060502905007088593600305012755247502655187558171460668268850361513760052492539906776733677425374043955304597562176593238430972841146829273270673836847097978108905646807403186908276961591606750082353465423846145570892233594025398652175685499268507567218470896004134354760986282183600825280210644494028296726507321266667795942756013497191528407172284144126351054274511606267977710393406928156320488214450978942288177113569805693463151432551045446810906460171064856034258701872796125066782417212231551896951689666387333551056254076162455784620459658015982376015022394300177553142369441140251766301443423771765024047613863179180913663811005151732512622228752590394492561139214256642812339141403299977811901355270115491972230766563223982960301699383891379610294037155078075470956122543537350955340871726222025314005005494347059757515566076224000000026248409437744354411011282146605072982148214404684480699947325911293365554592750718097065846529864279865410138217700342649731719592761884326925031209463128266680348312471108154153370467246257550108026110080260124102838589005958349395551057004834155742786503341570219560703681254736222542317073996905690520322709615399260204381352538803421549139139822674311146982701574281974143491235030226905529752265299633665753841095956001145001387392265415862243144825690575178678837939253747255412736796145464071240491883615413811715136897655793571751144479069969858798532054717568391514705097846655418503227777877594463699183857404969650308756557294057741775449736334279921215930856587004634285491901160716381092484111694396687684562809699227342318552160177325915813281899546952616091505009672366814029081540835621153191848794106996949488396815211258813826075563268483729100439619204949320051953511986939937098857776964110927209428092450742610076126138245297120929469786157487265025919042392947768127433166106444183019339713759338219608234186700812926429089940923625505473684736338931361190323259660530140628250619975212778775442442654678355782787956413409157941730688472436510159524034398255847711808945554197777558288935586566945547745407491921210757239570346616124606398633375537294844395459445772648895421897542468943711606812680690603914832328913376452544047792273693043044445889759412600908907798543144667853315151987305345438769078345192966239925696864850318823381739720730349689993488805800664819105571953908965040707108904994120462599037999736493293867789129095271087497951356369655803916929439137646792332103585692375408195529914915927648306309712425916844705706684362637369940730798967968444189318896828020853373066491098918168068505136132540618175341898034695418163558810661842724060005701752950747823666700346917374972279023370264984139352749762327624157922701173034906063426388102147057381505895119973341361403395723011011179949217414367424316976140282353981208575038404721124942543636945417846492526622531809595976111364099442081029522951022917215441233352607090198061210376152823507595948280102659478299474768569427731674866905745028022602013953206531414688366193266210048433171622689777298947058154316444066972838459224903155943807317458087340878378029231921013180204555165423282143684527539469127877857798514526909211183282931079349525579200972329095598805983208411419862637096442256311805579976615364591861959396412613341748740149194403287959438902985067745988384403021226188390372644873063602655237560873147223698295286522146482624557738378103765806925683136461164747514245546204452492176771853058970537293547001100363347879466600124749973962614559413774068394577878337683491856287438974775821142773909879633649482405679965235757437252065195485772087140562300722906179364518618713404931004611024207539952456035060495223737621433251889959958389477811547761842864832694005625875672333343125969348076714145714190025020301069335252530635392060289975811117982130195935257310346615117677028027181188258492955997583078038593686166083346687832511220977076216828113302965970570663346101199141980311429092443333954689932474757021366659477095143562254929431882307323945270960979649763864949419878408590725451069973785048040445397434903465670886146126728341584720665257346861854308952328630609011978154999401583178867511328349845397964907285070345693551124454775675002751398021529368917215522902657710168845085849950288586770789051225193413887035125913970439204001363002581753162817186487553850686951223117388056391070739318679469373857144173052869270979138913092717726020843123196065270773488771682784748746809201136641784377565294313305999654394023947887890061390972606417748477678996942234579959030965017599603458179267794802460433239491227265083029841919487692752341581101000250318372054684890375105488487325431265469918016829618316260054522366889339751562599602396717488103312572264886520281758026594591162809784552358069406476911543013359780668446086756740174571006782071907340371573647447673862342974144916007270444730158078723066985009203914995099147668337415680801849813686744401514055268131571157438926136327573215503494852587259969382000425198592960567408415578173985475646157544588543284912617714867906857202714618834825679933753839886148546991034336216283363793407769601171255548469357049394964913578091017860842691316715109266055204322820050696308927635035325377810905321910205564964998740779549468292294335360682502545134941743775856762775731527426935156635640772806712128352715512144007115448189141228796944705493333583372120002305464862294241288501584111732494292264898745895891673409017610011324378423474956103722357492992735162818550236831874620300392102787528344891458278461198988294332383206967824372842624937352728605442636767374135315975370367837832472993290979375495073668224431361532121443300101513377377400654521669014079810088897372775829684617519363600317488228941501642670739606276566608682994568690263084837603776352062568685804404348347219429306834189124914948719623585943463993187925868087161242600966374806038190022980579010576404234268338684414634653100321628492515422672798166452442257163924777779099847458576006308081422593652449167077969721623874520934529232899620706787310311398347744524619768466434647860309047604305516899489617951820639327995469799957561826949455097171817509677592745004967396510581591490782315453994463241024158689436952916610224665942402802604112951184128630119803424306671652048243398284688752044813471108386345185099699297667468284342174346878147153401643066600739942285120131519799224913947516338616642503177254237203149373560229277434065251091566694742249222325826443636496424552512818449404311385206934249368753599804083591267300492416196293505597448650879076863391221084787871505615957570470309734731075019680988135956600220350359816459263906231142682749894845930589356160458706141635146476660924200862741491461980203674417394487821124220656546332040433610826739596399835203378577158810069814696021439411296946327012132056797294901877414307652604517326654031273536491271853233927733930091569503404204724708816014223890808819814010789316545710355847140109626606269330785752577497973300199073241167873526429137784243447437062962165102227412980252609608565163870212746043392210538375669980299032597056452806263005745962139726453931745865731553964207437518271905864716968388604661937461816662754949936528174088164913726760142421765138140195808469446155513238951569841957375896710711156802973207283117538523674472364641022436443252043204888718199206638399826910248136640064036678029270880610745773609135985273097964743618249868558853187207827175917190781239808530390308068002077559557539237021895549580184061421582965056767874857449152221955420785986390414802320305571998132043495379534692392797659352745862129116081301017301206546949347092366320361151343005556540740780845081719698049703626111212697864259067124389069275305666141634580068251297086027754820816473646635287616028520244499425164191443223542354966478765488408974086316697538206240381755141688926788020740976397596089392818825433884732701890118106209708437027907923930474968933935242634068600294934462031464713656355462637710193883310307682348724341845551596592855535892666932352073375378976820934843134680955736072173656809991464362029691446682347263780406995927691445833284551360506878138002129161219902868112475288291434021280518240335059060561364422734571602644757205123603900920085291043448328210361521649374919866001219513809941364291517785376053238337038495684591184346573644146166970224739149534517180462098264909990828209166715434164354988873203866958178283137831755362400851292747954894135803371602506066380077463978171424844555926922718860022840669222995661355680141609195876087360049473833286634266812510816085408547073022159449010607153631078649379166736392861019220928020809418061848775929092134996761892874382163440646320753794386589233321043965152046141784935425341801689868143835525272126699836753748391696459740888960980634917552208538796121969595640608237622327502850372452955122156834616726311930782935515812236268821820971832779889616036759155125178123623185487456107606982464016131182565511330652743086425224085526487080439648272142179010067959074413827488976010315459401246794265636655917527595095698214676994638525367191756666465005462154687146155927482668449447433172596414462376950303707174689961551469513223417985914906520873357090902564732875013398857017414254775483335432193899027007403989205825782166259827196049296916040051830566376012337599204068199229083039993267848584522962419762439990718260659312738102582620244745903311512666726815457527589050835702461338528029843392173445908700475920602570033130899742511190939473278898420845495363204913396358545204881010531670724353926775182693876000597841605135729068519971936640372922591125841561144716264635031290319824749209439436372999656192134948008738300428143702444754422621256154223466984693700752365749853432128213397600482168525685676831607889188654192422566494304628428193181532445530369881192877463830183390953184242172369387775147447541992835661762360322031489830515224377994495978057970163448963802372209236154064492071982492757433290409323413590021137245627290324843449042854067165073269032224658816907540936406654023076013712685113244660376995017706995493052809239442739460719029513770069029916321122950309916991312725306873573574344700206677285423828107914648849345634996167479705857779759493268135837438385491058277964667479650466368994398778297177300888523281333698456820894927815118144898036175484366587652221280024918118356829804675084748939872300386867542265984954731466113587272567224116034130273634023127961377865640660192000526738444447957479680891231860002592339515698396805257354546347568078218246411140686936206794004613723970252028046348357696710847363039650770200198732695347263214547675127600426492156629130679439518238187924189192670597913531401035461902831719608780331663823814888298334809179402843617209767850745301074545627696658104096620112686018171464222965579327189188642629065983885266392944314358659886315781217659915190138515631217929655349962791524110165155348930749298122891882907174400717883291743974461917378489858137462250943803868801271255997931360919951320016849244126854200493380028486910314141201808282342163552091287545089700346933118520191642646885742782778588686206525533648542551686325207030298307855458471633341729372139214935582943277132127878657062862277485096895787880025903415969924093470282209209556886189635626179086732237591421599781163121730429120504644237555954525033644841408432474298158652053546500616753296868878907494091181643215985704251921281165170014654944428315573456605276632946077247370881155941709187886033403022587176718006803709250256517179999236473723615244346222849514863947025594181607230481855040570448352376244211495982645929733547039659090835008047982366400331044196561228861282797677307269956307528569987390031505043656076630032915185374872529870989805802029947077991948925569074634658168510631192759272048030817496563928860020789479307205626109751342845519982422770434172121927515826615019985623579023710343841218490002376045166193637819384649516186153972507149418675355290733475062074006562985958115593140728388973895652268662850597079790995219811512353327148672622272640370966322789682775461937300883151844094278935002770157168303446980421865806069527038414970438017636515647882037035140417951401189591321976676148792951187692344940423254466204297739003805259362884036689817673515901047412376273864125408119041816422850352487851887014630354612185193698037951810161176867586882928680633826920201247996637733569400391928061892567430017147953037770873063738095017286795631162583631630505407044043455918941025123815002701314744380080185917053333387610596934311953816279774993221427584657045627341709314007867916110272465291617676010709832510790667131240882329620298350448244792524565261958260774953162984500724765188353519140435796568160556579512652747058746772139536467497919852868234038392167278326866135192205617846435497504518904837691271476038292793840827250781092742103497423047011932490993206825352493189710843562645084464541218050076362808178011433778764393592202078333447406694142359684040362747474101339945774475080841321504226352471971763818191370944119410415388463126798988978346818345458089852320814211688017734906251355312953040408011005228825431214833882797626687498993983359098517541000252535636166927031705209693274094820239546242005551581538844559972216344785649106878698354584359905558985325384493064949764894548377042365967801264606582935308526107729622517044562851099546992069273425095125534467257623718259927039452148007794255476516739873624089973287888612351967032840235389707636007831547395338281420759079439692909391378863700735603533948923374689014347841451364591220618239372469315969347373763446847468978861603795251205521880627778755739001604981779142830082690159318657161676890060256166550860085187744057816353972339111919212005982293801709601815710937577842538611801828051636161334492787853653197980486844053929337797201116671673168901236917635804698262543198675017437746388798729370098271874211354470223185095454150260696354920325637888538188155262542565168622845005874091442672182119774055252802029197898559589580974457046784560955141230166673635703657367964699481929729670707609042796189138391467837565137147996982249787924676876648902773241587342668918522928106756376838387901011027304959415970807529590158818307831744407595252016434622600453467328510357045336811389108302448343372675879677927187998684494623443972245076934924713687844286610495839845527882284691472795652597820561448432019519824366365651449808862447814771507310862741860660617294288481310778465209481979705176250112153425164637591544167991354549456242057652313542116664791851047003793270981045315170686139180103854429599421164668023124587694361913124803373829319391880693810131951509208782232583616675478679868920093065334619197487448200325714145812291463221657401161283220868965881683852694419306026761806378860971811608391527497842912167839023782432516100008872828145275363536353695348550282625447654284170380463297516202844659159594026849076512089037071675584063584460623157959588954328642494960493469888886675434433461891133620986825737241781768305764371115056422341181607284947393248888346270602477420976931620466698976626267018067001354801344680827351589733662822486811483325283708064421791277033360743585214830477431344923292241667131604576829870827676317826474323824451692834174451779865019108424184011006566433784203628224747902831222988030716722518835304334533099002533847492050658667988885145162071875458878840389973356051404342473121771047271459694166754880888118105428093608385655495703113410440989195891599956090071730813471131507690808420661344455690470947956230210447031523595537121198627278987145236748694267221996353063539135110299708255194767880418920314398481954281624392831658959411341215044452917637924152755946075145040241028608960317273183853082138551932516653463497538939482813984907733630566480486545153397718806346030514801117552193261349677269617457280756387119145163575591271621166673463471908383542326559944233141795557314805564985265212324296717585808975377411343415028018457438793639089450973125971364859397073436123240124696758494834110285233723333725977015460154659557975982999837890294179664886678350837611118409137974502343745052981783435826777233386438782941700910914686571799034627032990699126152629494617838189692812361856161692916491292229302871403379079202389997460606705938760742516893952473033468079521357196657078720388989375829867202323419450711066389240078428405954989373764247677666056854562165404825326800179458202651862593855576379357255180382180801594050859156596401196185405801820332040243903628808927920532831643521883237385593843523225094868997274480980218947168454417883399733207283584845721599422081640282067905115560837883216395319618043056044411416496589493682285709100827804172678335520747019614127693350739757817056590699985474014265729024882490555102883642054465651201290540747819574324038243258324872155853509012904953055152980206072148718159912655522994386335624183005747900615864872152553864760414706020210367881608825695664527195533742254835306135767355435937766306728978516218243268990187545931861717770741573226383779912907668485630015894532589051869046914796642466638894588529588059401824738666401668517945441238156562377405282926771201967007549172000353943278005407900498653475352992230493070967676881230965999818984929276323980906564969279906245298682087332902232854912197456712631226242952693716005908304587192684273152756189899743975164734467687864568312996740308405584556876423637943821045108994650798161328602609726928287497127083859042367538460442036835834744509341607890994448075095662163825740825989581230539590472751800901283822393865646913732853080382755853618553499370355258972442559557196120624546165094171718175765696589527853668784358183565032931951158926384035188441260316701574056093088321392587214966703128498747090709288739099387662354376520866885284014400474035225765241895019074847810303939376501986179366093222510659104166609829041524872656261512130331182783993984318366705916718113296894660875085305123302349890320998461092158792457470467201389024580107429705210015676839610174756244716153257499240206977790940436318491940589790371272734761048705983936973332894531458678023819532790130762509116451002570395395509051336669154819725312584121891610520320649421351083007840639192861758228140244201925878023510516839913343535153293718910232129477987141697544084345309770056665969235240689063037372419326832690905416830489919614171427357916844576562553680393652769462948046154536590098137503190565157595072771493758269529072907026895481642761003986154627653553778201015259819379142202667331297258954875175950501764216683338420754854401426661634796338985070598312974538906479708811843009823852627689127242434478484017060973494685930959281679918384205364508066693657235927485911272907814110596600515912113809403595548078936712972631103401037297781202777602220297063174088898223500700187582319785031518388585016227522307679874383974646662841753994500600289078011903131607512976075164071099759850947555730581557082726008744486778477799930303534220328714736419519832614886341211660890746033567687314193262655048074448954464910123560317979993738871689388118562768175862412403581148105598550280216598692504790461924586572350685470920698892085613130647200120491278355269053497342980823783472505733737035592682372298937869897221400424505398286017322098152469532000432194271073262534355304843837791996119528858658641473734079378004601567051233033825213327496335796313544783601950886153908942904160104540421098089769201211903441781138320513030047018348175831672832528552595168281629607223781462225117581812883397941722153651251703374079264363000325385109090171680853408747743500965588286003358407095887714083670099478792165386612231036382443693919128505812621250748125483392686771719556266574986524538503663330593023697730535095636812169045966855148508536369882944497274956401022322755238899885265148183305401430311347919545074089766415060857218345979624590801741777155191219220524622454754958696045224549466726013684491816060665064397817553709622579321355657105585027480366909326408729957296434077412068819748396398701828051944402649596474877114473141093976602121519115695607498109138830697141881986831345595517976141609390923362552123530597834922180389612135101883700342001825556305780417103406127686097875829475262466388051812251744087017475125789185955511095693367033027565968993422880268902891768081259522087023064172345141772367234182425248493709427407449609221238581123491156347021838324449547275145860156540545310044746497475952302641488959554634729947684820174264047902933371379051236208089423107388767907377199315782343953270421847814141021793225744388322542515534720188029260549281384071481121084098951101409079363589144542241140944450019495663893760778515496861156735902349311033649527543008465657036716819476692669674534626839367472425917881081541027465845698578411703844786281367483070793595963016150325460120120463780038666672595500157292893796817376387668362900019067690886657845370545738352104016701381996687894856361153995559679173790096886913610028624990994062888593047628668980413686652253061377725151955971206866360643400762933975357433553288228804659010969028335030924759803543321021936064359686048858797148603348277832851535514052872050630380661512552872749656303743285269385474464362945296104686867030496482830042625872860342651272466435361226006094635293538978190387059980074587959869119326620807354870413047220605576889247433883833500579470772306441162460093868620859111291753650131201849745142906023582847962871313853853485005451011341208947402262985323969480850276583181344387447607466796862451879520280879072337251891996526053753999602174658559993217028353647368695225201682664837975689546684257783785855618721697180314958923429447323443608643887506771689955400254343885931335269464238275010825866072840199873210095231436961420173895366731751729335900405980938053990003507428309098213830527333661825383483788414672743866502009178560414276972913214850237069821822359650177764541496025533603316472491205246496295264855478411739122087672883158764064787869496531351072657412083352880721495205038969271733420097737401689871928088073068743986435245883831895958687709548253921483454961426667229346128723925046151296134879194264903253809850173692134276816601201400270300326966616355485526086156695173999542445441843947368270333165801652022104264543773457458612120357293403428782627558085421260413085049107727701788528209436501641044353214232065404346496733402900442090314168938815891937768991781526929171598489129748132157589317143862991871987569804836362487663376169858055977776022997386816693201942834787003689074398543696227378069837810892233619193536939401749715418506089131536895360953465597686165225100717047541802597221466410564651026572360488590619894270877993270158715036084723534687401916130024917909691173050732748574909977679238262424345403752701960411526790535944962111393984781823032056366135085942291081928944969494191568778913699768185188287002001240428258970416498476175727395283343719702006741701180632053632750197514871448224853042011042167521521023556678195167641888461013527782583369027477403754804423137169954512968214183856221860683384636711011965902932319716495433261193948452895101209541802186910832852682639237942572455153302013994552990559013792824195309758452460093796215650933560052674697731859404310172688224278374608587422903481357577673241556917311622691142660137796408800470954336044550335256113805167060737705334093329042766093366720942438268510048425720479535640933717305966057235263495543224034050246008717489248818407921913550771743896504364545184588364818975482743699179031146487557468580091396100729338805340456007398251744237784633335538007918942367904285546452501698002953660197239274958983693991016233998836941300147885067323089200497859950595850837058392827423853473907870977769282003801441606198735851924245606149813349220292078917532793307725953189491625375322175627320512742568121432099144511239855214767528966574195676248745063343260259299989597534985279230840630075108720457788166779867098888888822233724195314340441299354934659051294708623487425549354478842106094683400165953314334400226891235391217734356097838159891761144928727576384080412989565818023319329482955236823459332641849590638696273500377210533010857679676159925216807139412941185722355429641870413655768425130086896380280149519793531677566049905412091266593315064024237276823997246140817926142822880938906011948385001040755258804835370644393418556701568170375132765485212833165948213878882345766127741946243245877883029352309111020135541213599695937742839464858716458887708895126145550074631500044962531344956974781906108570514419337646553850657546439181895109107920487891973382276927350652349495161607443239913772778616770607803854229450420677564842574478915585018325268501683660822686626445507004784917304313292798264387127151558763100221264773594591663937393026523081985690430399410115195716016649210455084049636347123651743272025109532739819222592883394231051083104388717118604167919191671121365222456355493792909908414054644254751189381312319149110576668752165206097479304719062263173766565724902838926527018283015753635188954593325466738469963132508169298426557540709998521545272125866571008344882485355931017935090009733254293850817787522359508370730077664426047638099678709793828940083876072109077289686146582127141238203754610870260623191916280503342463204859411664695000141465239204146274911772635927714037334162399421012469583700830042468854789976361529323829418277825730004796509739358134010210437118434266018125843412712848342148122815056490192216066203823889401379386526367355495449518887733768511875925131380530906657329017479509948712855222058839551259495785031090300594016496969847597116447338494541875639097208708736272823768275062048985406577290494953609148599323022275983660489066723570022427434618994240169449488927701519164960137728817673517296294257364006744214668166528643865117995981644582159503209146284119415618187604217205790736317746592302352796582750549874179971834055782315828678405483273002158345288117238847458923156594594070871225387373872519470460465740361548315240054853839213701330958306030541426354872675311717197374979225501060977177370442701514632985448228034437239859336222090224402778152987307833093658422040628199597469744636400726080714220315567582143508163527036687621738404269600249570871019274801043153990407992855518584014656281048564815517673439772310895081582908689996152622165163996131967299205882542950556843352913269306356952221815148827395424138402196342159589649768246369006783462435894203976221674715964101263522020535405048977438785913414178188031347063788264092694966959061351254988448793857325701768003538981422895556385017329226419754647779048386086665153704860367233268993617989515186537656305109538846962803921070220422904329803058802507531764464519027740900457576705870909248051423437361063276652561692371936284765577274901660621251434132795053970535233561445175170318987946860753213001001698885429374841858367659740019294638616992812644942343399570138962591759025037594068270139140318845020180557045301589906084868773498380145324948047641446339129433300522567718838789526276796330665100739795251424305205536895185191698429507415712652101598366256280100429947345942908091902344216257231602498344729729693332457892384654649190134397797507878943767293006341602147580451101895228344100740329517061709025161784198785707766182843773921487054140050443671985378699611838822408677623316355355804261042799434492888069134286704997391305788720772068547188274125884849794243355449030211875668197255951475431113141066606916239178602086052633514404867489952870571630073939776687099653225195679917923018720817424267603308391451896979314625396527639830607795741331128172641132837672646983890399317014725907750711313405146376925782787015673303456201388630649508949676425925590769741394060150776269144838275267384830515527890281228900012419422798321965157191406789411851696155537106638564027791831043884927388447875181629116907830326420158275202714466572250588730861636040151850562964970198660643405918296517589341538208140417033770306295512626569282216117491788989835069129635699693201528686926557788824635610486495823345554981302125110018436651585562432064656355745052007722795353361466480915552760103129036883008837849299971226111289122883333108252460519607129693957563129180631794014720516261273311585655969160082497848346362178627811263205570087775458970234314337894014316374580465912324849613636028557176227053834179536887110710340134456412055946577048961860595231574534865394975015574986998558564399600242421643887546059295583151084481526971071907251352841392413674479489535619414058099269250507028376226922105253304176951074650355887750225280305070500002693777086382232142415079792429821017715243423369791801258890223134459569533392043807091173582523462986570052074607942644630475282063292297231561607038371560410131974434721067717654394553530696103704908354549386352620454242853368947497484738979047979643704438247481616462219172251244351637392741649378761293603315335543972242386962172525506510307859285335701827870066685557320018768756538914693070658294795575775797194198566811072902995813291800609504236603089576632524787263758251126834337431324734266756110118888591732733449929342046906929081986300865620975384079416671360565105210448942264323338611735528194907814902943159290880757566422648221853140707147044887854975563130062149613462250815016555720229835386601700691379691927575609349582669983803349581901592583420302438710863815881444837421394579906106036006122265803741903541094714868012780150180207103424202217656599621535127470279247847922001746827008267331120665189109712891866434176395686392768671167308342484846389433571931983354794314946983648994453861545360779459085159111038073010849103479714973668118678057862122300518442770541693094745336561450637875397847265544500615404219402058902776865832728588737288677493084248820428520664072669050345886893605097035258144540357890897379689684045587249360442261723771639876356753009645489079872780373440802920273686915390944239893570590779199398292448744397880571258744780505160557003686365933902265982370128671597827455877752000658844309831975114806931006952164705338261924924955885831753077407763091606801832457058545097291833231131519937256350605695014413369045315794378650306660394899217110245364027532103870490909047641413008601358778214870608473248435799522415725279899222976215929989478824060892534511954065865659380629461586958918058043350255345814729504426622558804324447406277109935372656878328662552073356853518956486526895090956502300077250308403657803407440669585929375855619990270338916013783249278634717250850587915397026172934162790644868807036646613765414776024637691162380061658359893946140339739928888672010299712659657354152443311329835405690859278708389688029025377063926196978722336259991232342121925713718563268160235075615072806276488429253791077216848109529443255589766244867782307675976222479004771566765254989519757551884687062369834152345231880956857981349926621122333618727839846814379372718227431848052362101489185716718697197288184086442766924908235019607561918372686856081421075769162923184004754715346612212278600513780539116451025147193690690658764464888653870510146366139910049275426206684324534531149821670880215452797151799137383654408025145446756726507510097087329809609684085733811129976115756389592868204097352493708658547579367060600800454688716389602189171092178406800930682604459798341043787245476397504379058407650499727985580019786687109048758771836896841990139472751365316774822662219278175457946690075579794196525997927080064760797588518378890341484664743537680896468752172503531654463700435831328522520470862614533391517454626554873089334610535427810504644737195673911782784208758455107079678865207128220750095331294177906151240802620797684496038576471339398040891211675031237966407751085102289065282403682578465008417993188723591719323342840213791733077560244432364858850722520160329158430465883809936538798653126567246678786210664267956316661876038640239078384342519457455049467103990844572146403076316537953672349785751075999977611529981261823472056257337414428141364372864514075032662074519532693883907159988176307038955776339928636501242921028496694335254109614689379914029513776242903640891802441695334872337915862145210194799515083146991147590344886012614709012070437575501495881443198591444297731179106509999031214567177056026854829576331558429197288561630953073728084985476558556651459603613600154574662066385822118146770347410155117195639201256384472995658519333774758780956568159047446988584376984071011042825655918233510739587390511211122510202638214030372869214700665910825968734550254978141089656189131808530266014953727224301601853438726512691606942936773639029345183791130368463136405328515745159645698709284734511448867615906180166013241544371493787616266187440584590143788675702496566075876395994921698334536160356659981569651985678302086202359079126191618761487367937346158273851521994687706331572013067304764908041700064157652579644048367817923362680327955980799845697476388973876306613771040699384116274948591792387264850321981841030882637705978360032308463440230748214589129329551460458008186183958930720623254785783944530911453964525666294335226606060455641936546987405526602902862859441052041881449388189928892896165067079245112506940456430593060525097817888900310654407041740460281909006281242132803325839083088900140378745027206985427791647273515251854204484760921421705697309494225421515776877208562526602001678404685557217744888160244214191463115285390069830285281535107032265357784976656437518781111486232573322551564866899461622516344463886699729830479937693721264362109505378324749277549695675851297315314774148323505207876493971546429720254730499647940010954594754633374428179736039662778675052928163568651902954076747787125784420689820884510924266287450806447365563767052647826384285477848706483304302821122301559972118549430974485384393257558366439470386457396320721360587116450589193424204963743407317961852188739086484308859852991051375572520739565860381954572789659520265452186675605417824425557594049890757276754656258935291613694649672338010948997598464949384311761637131899643103911588444558921746441267408374435701961969903885561841001866336121432197665154954505074282366493676586057285802579339833773257533968457264638737652525423294010762305170282802695762969843561405057057845996788187228153841742390823418241661333748126884336079869444518178672470539747210445915336194265597071688703714710193930824795313362338693337850114112596428361022550269432845345687441646897427634540699965637940337036605546143025952954796599541491851685310583210398111211440893022957563601282342780909465915840976689872948638936053070157776865872485966820575290111363302170888209481048797091476329551039945359826282209211859926202679808282906270699409360147759240357720177211666584793217388159406256503373257469118324550527862173558248943435340007377224648222357554604674124118639768816362460866725203782573823021455447049302656948440992283816131644809795598334353672481918572245991070469936909260699021986457700168767976167275526276849643662690698052368291286147331636242769588045062421197523470321404196063323025807994394991177962173283942250343745975011212191342741323177862522456906630687637199050623751243953341128908741061899028612619644788854454515106659296511073934482600660992688700419395808993496601218185871826557738570539728427106994307152495704258063966061294426068176743990053121956318428040955291345056144902148186245420714904357813960261846460290485620608805587224702252125048949172251362283381897015425477539859435687778103637140251147163943747014061573971149411077813955547733191806973525229244599557426197219026565281288205551313735839194091481302476245544864912018515201077176169261485622568790976403221335760779400195559718382022757238762234075006318286492170597457752150424323415786831803163801221442570635829553937861435944344811792299464955421989485388526772315421286064154271292097464085409691141113710456768112723415653070004359770335057146775090753936023610814034040211085479795614800961492235074627525352986690863733302191183661394400323028031322894306957450094042154438243102738094967757876128691407227935402667005222956304387615330035209558383825654491623548879616740938588794400748059925524072497348166588671233371904051324952414351462774434311540469935344248231015811857868351690902220520352164426360056971037722711703169840869809031309133941980855612388696051994493390171975391328567888121892948260897063137006136978239556742324509275267566737831757471961497552589153153926880313985599600652530255325526354407913425557942190459857380851969152692177548758147387306481920905118858073837632866583149178498030806402045723025759697964395383252354246624462556920607482862994441052357177947702451023958122056872039371460009946253941938922002954692276634717424122465599665118193621316606178349182421458301114000834270957969628381874387658242604109196065612748751783720341552119160249221485320688065142451283435310406146729502345825656169578352642890843335973620207851546974735039740976745194274110908982522367444668365389400802181325392346924973885885805317911955519843752615999745783230419973317367949798821959716732252732325914882140879530005760630122629655235480588547971629174461508445373853912655086058682507554679710830996008230753746294625168403678354153514652246891411112688493433482229307710150305645561334207870201562449977889533729328859962766479773941467377048604214474477277900358418799126554279388344534676814851021276856889058617591922330472424105817871803469141883109883805645909618357925279441083595096747376185562920627987095639741931050212276656146717394970711411484667507440344782936665987524991241728840254260617516922845640296995506522777604675805183892646607513302832976505774596440400537477777223023822528146352918446903735601376718320959053699318375628177209634629464625904353939164621630912467672232794727843555485932019194299712722852238036098108418006084759549163141300208294138572071382326997784762180762552193921135453917790637672083672683845218903722557346075662229122433299124797188243870225213928865267344135919795247698708472614385689295489180817506148303244918907054663071365141247718832233024838008978643703405910738987901477521386200441394864051794695803703696165261461430147510803350840593882628059879659888392186365172330129683201081408829577680421624170518379212074607810565012942097118726063717812085099560069044078546419550206901230876075159299221510318821559751715114596626371787505332192581099884775552712971996713463398853048272726767205960156918219565921840145029689321481069898314773142143315212384939767039061827747429043755400062188587794654909572067009991595608669186061490348877884643004304660150157664905683302769539522878467778487185178878763119410124233881436773916396220618335499848932743229264239132985115444753663525620548869518070023524909600788339045422187020927769204823952906741671322862064882005641759681808032085942051858162784232999806829883486288849122801751608363262334139863234601752498003041142968520294225921746120535801262067900444127095997445455921568455226848299093810526461360085224949628638818858858575394332265300697287871072062989845416461770731558686483883912235085581980057102897372547355186189142939302440349726747491591735452600589490395883066912228991558413868302509707165556459965005196981716012481119260405846786639731131233684856587424163060404825932089116270961206654974513842380406904526459837106385121387815545355382245017566814018690847367761626692320338807804998286645919408231185275893048814305372061800711051792770909364731238477171836050470670370547077686620313218117140805340706352582794758242543667085661703664858044779453568390131947508849725207767415857887055100580834666322195529573638558363270541078793887952246289685900767373169449754582095556444296006752611462101390085024953775577294555742987898988359719921630616058968205821778809301872083049426947203571504253769911862390895979612046170792009832623833109618079002146314729549191180104019903569390121686075470802900437977670203355996506608654721359215719920243396141510800684791574977737804481637971661696117532042392678183690342924655058125477835793769423546683186738240448903690408518949761640892424452880781697970014030555507222402575732333010608487208959726145030841493851556713918060602045198863229427992467364910820177412811573551289068281666117309413839190867936812068481394774833574402251357633303171638742320480840771115695832309475880491200591402639034026968538139180675605805770783910115419148844425464835144327680082867967125446931710709058224552784790640350371251275437948924528892272977847892034820687107555746858386796225357527684080047414737869862676277387732191371812585374444267012755711952987509456473529523853553637353493743829491990984566705926205971222881742208433063687831695423325365169099551702854713504314297036215038029935332331062752309463039171377212661207089885213340718395973331355624176101367185484056402165381373737922539114309427551294692786659316221366947460649210927228598710800552091627470612520955415556269729509796957925868736558527898458064243057047848863183771096387541398975840794960554051259688371308252725596346326940680290876988552787597745720123394600591974887948603319359723908440666835069342504781026686361802792126023397022124950233394603094349607332151154348205375773287996992954229870074425466621054255342069025851122786639674152265623664082720499727554363233581057957894381077193884795486849648226261333431556735081979970072528783602883739415101277206154594333300811589391675824977579360763202883201781467735278377718687915464408343109942705661086019148933299195448211478059206047329467310127731352826690052708490169921451639964925480653455149263248668177048981332684926797041747457666424245852387945465729163623216913250413752004708892729957858895290751972172913519264021709162522030550727205236404894651420807037811923397667758638637588851781678285207054641224718278416269712486095558528706493950241093786658913528272757741070093886522082277575350733873485699298560618840264857651138315971691935674021913707794229680158005184163873589697637122145275910197446334137865510816895477324498776564159612720245186351776858454376157877258881643491097911460469117122855177695642027198720944821271201121899115694349941679155095251728434214928734153369638720876241768052594323250138247889055697248705331452873962246399675032633353106214708325886816637570570672413087218584386985218613974264989556876442644386573603649272781399118755919150700084875298648163013265477770857026102679958287440002863957888627365107475594508773857380461475865701959758318649740566870335281738419945032315840068250873678314653753483904799877116644240916660839116751885851902772562874255518437319708041921497079273028918172137441873199416232688497437363895950164465131644297294058314310596011651369772643015497970743037755935279727728930463258962235360741126751813059391136150555507359212362082771477478346482042005188113289721709187639548702513125596127368150827533899305457627060968476593861143054136171397517174546229859750941727289127156625753519684725890250206134732937372426379753276528750007727112171896302953879694006124412790967238910613139982486561967428368280574377637992917805788810014916962078485574078928053486050858626978638643752903899618412919864836376776695688140845818672565632466498497646636398971093839956812624219089593778916627298098859164705260409897003367268441926106278106322566880319422483886166919665643841965472636911426881422061251475450336980786234880800169703439467749115871513921401258936075092453370950578828586671338388906717701544613762017785276398936034486235908230907284760372242746486211929106000304661313641724021914456094595846758508935736831346381411695705597419796524479867671953487292654302026739214772512283351606353780518394625740323636137431528892781994680451995132685660547530398754990578866398818227363946310698453974439341107312698288223045237556475589605703302745790163338354941838467232518607403721662209143342903868507348681484510918005680260376501953284594443565950444699023848861235082641710330961424489148343853570611543299429296964650016108388920169563760363321876543763583717722104076659211812984207160697527165454381972952008295968786325490304184519112847450222840918222669094794908635421777500806989318889008960892038807695389807434028221322739006144773638482753437959973505915909318212630347620345437395472384107237069458715892649634180499413644873830933488826929512083265478584762277095292025121740139233708148807699485742472125206137306624833936512657657372176148029443315221224586344950297124423942747875614687248169099715998579235050964268210161224564778640114622703613809461250403546290879819688341075585037608036508724814965201590214193158542031399368258420179731794685739351868313202243557900583799718474863436846473785056312151048325854303010069355097566134268550973750486738377654469037978376331877435314013961909982362093372241292527513704727942845277901239071144769670809964320944624450975331103200738896515314403785660370375619310605196568240375908832608756146123047074237228215426851441124220438385078767473217846459048271647446258032713106951587124680500542817415331890987304410142494845328446151638437315497605004103726703608392452443734395076018917700621530933908995715272418722325191461320945910429203336281462690482537165148134633141710211016332864264018094663501199878274617732849492346634407600229679760863421316288327539710758984106495194737311650647414040428854741287444639979877048495655180019638943832446428425577018930338095420399303348427382359535931330081060251757146806841957952886362089360173667994725614448558676945248564319980123080930641925176672686608500864027764366204734069914255535234956736924656514334063866660673617198123436083241256815631228354427535459705354923493229376571101108665454747072987109531217979305510932405965888980744604625867083776469915877229959178628533501618134110152292610430216954587532702424053415749628854810413974731349967912109592443063404341525443329728690364780833953725310742362537886296483366407059097546716649365489881386831083449088340172944735727030614985093202358607121718036882949909103736455711437635490043419089126766843021632049966439418028787967304026054240373538414897823092438475943066997793533480116861621794096617942539266878185025553833214664149688187124135570012011818435705052497224923644235132012359145959154537842072249555264833867604131343207700120328977255411473780511688111482407195479487265475352054039535089732430432590812368418647323095377545386567087615042705165392542886624260039551610909679306794845227139874814802080238990292554382707905345227111230107148538795801456999472372180194502205738657887320838431424946309370070891307433341553303836560601518236792193759853470291666869444832355677882929545741384133283091971556236383717685540444853732008324043761313705345785065759319776915335422382897382840904968237682176486543025738641037063656142861195833540227548519981583626587877316427112997169598667512504275644911815627333759710263979914018926167426860934311298652008356825721891806802144928341376627200243492504723118699811684501752473784400285164558630830338549459706577263230216818984562923931430063245278145347550194012454471796946064795423488436505348844241484096934831711485501220200028926982851452597541614811015091334423489792159522171094541340881991098725561560507402056002073292140885446877952894785993517288785978511105635816600134997566623667031213059085950221614300808028251874258053634097273333066955134979541297723386020922861112827020952359953306093767102757847512573962653114415764614752306427951669570017518958292984019696105815153575376564618023023045580735527649114474121632552056147508845744828056484527479014919740593647865791428915386957536680418843958530213741710127000028577986691353220651420779489178762178353643089329832921929735372106068940503083519215126274832213272288961837708728676544002975186879154293059249996015823883181067604190611696458701181688561687955752704944619696441637765959806752290535946861356487209426074235694531792699711967252826528044027219873028047212423659546599795120655666425208195061513302980492684158656731457222391882773208525321965790201860488697747609603462030570434842243169693303935886380801638268946152803218529488312632346487035562524062786470386657067110098667808040284135774293819050648098591355178280696010216423261412995498113850415115509692122884584753528356219909567631731629881663471581489603787459555381420404129175634024252680356162923202104893595865880534213912379301886185421669466152723854616439707467037690515705196237628839297366977448912440023093550960390608171601730004377296511415980508026102046732583173705983329039693133721331917751303333570336426502902530818068564137117867691019160116669706813064441750171308425364950041073342395807436330410043269938303711949085432302963617819590510431773180064060529689633906297334703849315506375268652593748167363188215867973911469361726078291935020528803053280234531514013543906383490980613586063993555441320678139157404088623301988783077863010467737482018022316610952976834338937799001094270377504203100047400078489287452044490575932846476852487302960699023128612847426909029795378492787096368573923281598153593923783471173491042820586824808618545114394025224262490270802648464211868078686560751079886418695208492361341847045199819691745782096140907105439720021489288729272733820388830946243747874378866493117128571532613538327187654889579144478245593003404433085922533625270782379969306914592011606585268334359970950513782764051656831438340616322247245815037768546986785502510753270449652670916521536260018823642853830274322755493854944365516201357002771787079974693978308906249501304050325757500718585315488055686413502840801221610102692016467583098029860018293448119232744352616957880974202661445338132074364477158707564354112649166199590116706124023184225095445260933889744388915409302390986094749641077463024474150078082493700159994634771248721170340299665693190235124519134325852823900856478744165495757346837688915814491602948497587391046189238862429149106103194611524668045364808898304835672009687099898177829776251384174102507044431770742405433422257333470313931321421453250016870819554486939557546541913941748353082946314917477546720546712321494052243033842734966148498472417085656425550380791978825212409888235510765675585790228354057395681749261773183609126338163211928555555660320786548486311232518681408465212076893007669641823429846928941807624857943869800341672515787185904565634617563699679077714852719188634259405092320281061479604039125090643437081149528588809819552850820880505104961914890855888525471741726658938341536009045831037282876024730401355379705170628668444521906541226176122416166133874476690931727127090907131018550953238652623948806815471302102204521863846074990005368461296555009263195978961051703029226463681973797633826804480125957832510291357729421350536752330758179444373530210392357659307022502829489208588774480840987617586766385325201909660633883207355250162117519804362888823843914029186861221161454949788891312518172159042344483301983917071328904198125617989994289760808185897071707922205670184853556521989831482382376093397928658742596208068172323999252669899100999749511864317855552742584990434485443330753050454416415687258384247024280722954020539720580494734271594438008807540043545839598753626556086812925850492416890341814222063223883619077864855697401824868022290831408138770165403768999456628687907273847196998707490140517969534334551328548619877977424283468127932193977064024610729733810747234368773647153556381803264241153503665685988292889376643079078490840655854836817321871076868841391225396885013021414611392138741456940570234298875812984839415440111173726189059585409175764118767783932178754814693373364529183998829117307029147722289669348423799252874099524123424407711298666763989991477166780261052864654949665983336894819353745575549122404140264805963566841190515514644065344028740854372260748976321214972208481222747175479835684773399405064503408751375039082358094356673570366099519211492020013083953044633185802239222244459078264731110427534282864325679311807112559299230260547739098121643993924367784799047617766632592720428415909366676939388380317483969327980997373230685168225486716164361212581522268204487801476490835522899867741931168766752877639893421828748198424558477025903676745634277615251333509483656491545615472907535991342691573857958148330806146101648724011635964531581121145522454834816946005151540972446826152978334577871022626412924674651807239275720708573277666095009246341018405440916658738150347255478793600159515725349389455206402296741635643701225623136207326007782847388759966108827433402019503577313590787623365628902996906777216049153567109201236765080044067992382560068984850764896633649230881902152714127054866312854668393490810830238277899004887390994599571120470436522170051700287109001910721625423398640528281888941302681470752604820328305144906959381216957877821931231744581026604453588911476626838509999215922352353862648345218068234561439508516799674158384210038242061485533062656652896029155893453146760021260339963148117097623202424335264929944677101539350954852822777054817390994037156215417351362979825239148528452415351370583296177867684289020064923234820796636331041496760376699354915620414244766323152446406692323559511380094621696458100284372621570317477426594172314669811214331009180022019465176116521717033831594097029055997441354639070962036105508707276649148526278010298327496171597965024227246514441552330856802920180823640303257271985058651983377330091502902442023313808865855479673041630362158191939370129570633809469723646100357946517750156035147200176703566192894554642900814232065389957340400753308468249426652110954138528379632540975878555274227089013925728592115974564475190237686537220749619329528984272243590515409472951780827095695893395424809000252929516283637111616414619974942234153133500381343323936857395407482573837161349875876959775116910859324826718355566633384059401250411917722309447178720471115322671584015759577497080705150729575891956519725313696865687087751741461576481703215540040538929462137417053619658964152854632439544346326609329947507911579793650985656628978502594344303772300033149281823798262940450019019283563939325214090661332574113297102176793247989001928477761425300847033623987836849378745340448620487986588006001690730613952382608619600672651443514144264656868987363435023129996439492648094535816326932568791493942291762220983200595595828391050010997977263249602825443258185393465348274665273457952421014684289380870400811745653018580822735388466666557056371033686494369769992367214413026986362684765412490063380927303365966392260587685858607539091782596565369368287693212866724840283901566639321168692486555148947360956745555694997123236616048684195110676128332570931565463341495948047077037827620508919169054420860441136581735888183593965178503143266243118426556137493302701728071795173407604754804039699144001730454469147201872615115161882877255552871545548809363468053060698603366158870454764732492237387274336847176760539405060585950049730928176538548886047770872333942256816395912757174615547931195627858578866846809686442474901133844321149786294683998126163908063230646303709947591785417097984588176851333587562267286304622741799193604520950416852428992271819300968193693401315645916310886849202231353091627511482558469276681409169297111296187543570765964942823088810137911084742847912152580517036891017661410126735377548606179285412867796433980816921764917316674542321488125964811683607969514814541813020953853607914758181701679989401372666657357194713793812334896651632233561893477161231284884963486605293527166161848800713452458598824767343777117030175558790718924560619924302329091722113446017097485269010840677213747967755375919675711682651452257167508589714498359690164890305870312276104742540590709190020002230216322747334448727747222997203169551481591328442596480672039520382607512487914682150895327787217308134952666693768102176337760317577276877956488373246918841962526960764972111653305169495109117856744398628573781989635020235430400205346706258601064663873046706947056982874872335277703979562518331373006191515610981561620375215031063128362202482124440103464497617396073475753094165421343466032970856505293290793048381409180304114327769949323816153445935715778772791665331989939690731679595755959008134027535461093331831028399899222320449653835368136732556853579915437875994094165702343428566276789630891643613062194865024953898983915621144679896841895930777867129277621750282257918102005850837365030683606645394654661042643933234746100096021219468751216055647114379331662927822831685024351728231485151845141790285552901481075669861332269293932250225488927978397596934928729852956993550659165954103614598037006530380603852235838552579450970399607076424646294971699550474065897465143904244330947586910364413524380559996112179248858199678157449097736245308070385136096274773959094242713524277659160250152982163488562317960963316974711013549506469641301736870991139160425147312182730390528797703220404643951012730054689099819623551424706284785321141514332277834661999878306242163045560288037876049813825454953393589453936637441985350921734763022161370015477947153784151149554495985085244599475827864792206103473177688517234720787677264759669624599908744669831149813763260145543334278152382836699834342030403295168594068863146998433109878931058700677953177437637953034957453853753615507650204382322456570858816613161694562449592825634164748108412683892052060057950880126128389446521356280382355871748462269568334915010969510694298506712831061148020564867289534292286094842390191140854276081648679328820447373039868076802545771604448391883049595642234626834759206809410920024015248306222779807982415965250909052606685781729575031870477866061443286870334108073722394305702570825514350781526865106974071937470886245750640565926255225867258225336042423846208646875380000852033528446407217330573545506293062424740803799264846948749277821789931933533709191282821317737105638764247593895111930761377092228364869895390988901423890805906914968439552264333129094486813136394659020806011298671863536127952553697509186232062555759076724796246572318303466387969838269341565608799107244194354491544832114348769759208320930431778020120936754976432205304998871158851018773553415934864058388582134198606981983383924812052597773944629451217675622100736501654619145116202679749746636155526521711668135622199007409988850826868888075859033389045655872157930445589907866844386957527504304475510907952577410733446002774530016868947168863934554754211086698598362696852728821611774555834617231302050902792767805505107620177862641414991307051363075611924535489521083236100674531236580051402762962979577773278621548037225575063471916464360882412354817853011666883699618490823562428287355296053945571732477317413452966371630187100994107501085699255930351524284914574088367069150574192200565146384533392368588306862102328501520011731430317741857821019671309414003964680991857824222515017276992710322120380497290287220341411546877917325569938000944481597162598292934517805672010091742742997122484816923549049330257203933568998264873445532273831363413927376278778095506399540997657105002107953866951591833803293293301122400266189738992692057370871582507757779073589720644086905267363834266884805639023177606269973289460094743636776750463930589705919544199597365311511818200726779847951178976650642481750152878810419044050635081610165113565712544257318064444812508660258999328147314491687784644150095416653751675683385235995499721894407477090934778202082159114566649956219861231553594108235944617334771189214069895328879827141315674616714373475438221219194846822797936127124599918145670763138210514405491037896335221172041758415592563882311611598651175553212655212135919163481139442632523299836521658920220034266623461786369509538649135343878914231141090565048647485345732169323787857442598339922216872371678077433708587920962024670521571630955130133342042679867000294775764017025631000664972168271240645184015906675828089334000421041031234950316916843299420173433040789118362532727713108529800651609039469472914304380281752202425723979982290307235480768797144422591778072415912996968502958203258037529036742787054835758708160548584247198233936402885042997160976262254892978900027106904355508954609861103491518566508571268317142521937491368829871663347651223738625828067949184581631033959158978686279461889943611021393686037381951976424223177108236834050641146545012954772839518919077814641208046363622030216875301510173761547506476627343963752051067444765159031088059773187488128319978170828653000673870389815905796799179329957423176645080025594585289584265348763175862431180351444701462547649431105700366443133658841347376305605917260077646956161731342736778909456985628280940274779266611321091655464142589891563683369773864214219303347633646047755827608377477558069439134662002879000170120701506822755614621440308129271558946747143221592049763244321269851436918917607385677308673799068223016157479294218389342573759624493190062767518996933597840471227348039579832636537390628327510276423031018493430776056589900917548587083787386718135582302934906715753940741991768043293183447765333130923519614355604514763371199130348004768088970339391817431192522477437060052116099216490397873274253810276291982985722172247538069611122634976339191139416026632944816282236359533803630502969140580356498944661814506136470814468985320266540213885274700274664421463720545450510564408534970151735178139864914137924210558825525221295549753340589220460755020977963174045634433579940911565074156996588303739161090375691098201954626726526935902641881227417830866071178371298680184680183765016811209823006485473953859298154179263436261804291550002455895295878837645272212908206517923498849737233470033336378543815950188034648232492229205093067629170145985792184717369449677694478015022659562382644781669659493049145051744278344976766553456941534358264053181632116918452878274927445649507507682513868365735635342370351639375766797323209945323997958825196295392491032108308924321173969213777327127890489782163245560460697817374338268463557440669893419530159513455599038862494909903659808843732445288676452210618776864916794506219118641068929827772254776176810138976328187357770211190000933986935318445456069291303246224971813263207534107205395983497120465398264977369619007064715619218076551839465864808253192033811537132910770501022482940898554643029390399609766953084715206761838874964589866476258273300142151876314199247995265942438596286289712823508764661662217579136882389569088072303372475457759808213819745946369387761596080849980899941542998475448656702743352738774027211561931498372097850544117650465651628123252516494884304288352049671186382347823666114324220184764253081727031974879847569947350260995041553329948239765559179062104058354386758671501145104331227917965876624814185417552579241542731775558259617144376907278564462788033601780114754266677098764489606545296326907920657032931583473673013637179587219554468389680956098737570067969499724425213826048185229307218726291550350693875677741784727285584858788305091463854623475607955551157102867963036774183917800705574408198418588255059140111850736787267708668932785752566052618188559949502812896207880093825347004759759172531107529724779173798656103983119003814169998627727096324811868319737341681512819472565180270209405945830478302366769550254975546624962215507877254854278279534918580677242791994526614438052378071684041453943998762258326221629484227620787799791557463949688649470314464951720761964265836970323372603257590132414874949403318211555839510729781271190551878063451294445730708096492589073508738778713513804923659212351223502972865552452310685463674590858342592177321823357803529747157095392531349678616287313533212788935294954137932780232468964130589532926954644033361578155297458294153419506486714755067104639777473123531367743774320892320071375484581501551592202051574855376384723631505519538192825182453781725661389678293719577680236681109610027688573971108662281944672359432539310144927020409653805233965029314838171097417348716672576708213927067832719790172176399071647596755422886845692788429652362600242577088328202751736878682200911947810257811174561930649372911425402281606525245910549923047994314711811196880430129502305609399586182289093855582129960130888737708107462355775739940979727509602017840204193552543932285648807999661588089757312376633849361641766635784655043444563172531261661732213088347630247818336425421725686040271437950661983796504804051415607348740125687519270369764579455082798390765519752165933004952760291475598422488411852809327228408865912152319759336874759871492459077279102008839290651982409266768245875413474965449167396865866042122644339571084719470354597657574213763910940683502030230508711514936291420420253702388077385509657815074201621646666060799594491794160730142191285073102443709955726057242928010807051699686411620569469040120551539604504843996794925849133657849612579151297226032045239886392538365448650862186477873972823598360445073133075861183643829842822568078968952156772431840598296227910712850208829015490622783148278146426119838552673492043559826616242933908361419780646623238222530748401328001978771836360038235522251408480972006892185955118252466027268958263787381707796412559551575581306562553510041346398309370507185223838747559455582380509664938382814519419770944854661846854356770417352820475027791708362175259032126169051711486416559132952970088951986966685406405690619923021581557005664500847095838105293137978252545271999399724972693734372739217819243652222223275117495559188750730834450731676880831716502533214413260080565316304482891742643725417929488911136513149781188682605230999482961027603227309585321981157952183334925140055065351072518340099528462288525612252093977181772004400152510238592442765723827010011748930008061722991733213790023255426908395070860439284744673881199489386839960675537913988504237157071832272447887115516490870111325225508166623513980911036366336980100434870293636654668661764622835468571727068631919759168925516423815071598704214621025153961917047312946634942044453632324793177090084735643078063995012857042205526269461549704748064466737541022355144496880742218775711570479519118021554565246400350333005972239973949704582330190022231322371528580655941751311629233578149238907173662657795628218825572671641373930283538689888672859224627280960461307795734356723812530332967712860755072503458141329595102724934651384471073534261867686308826786970861118786679184947784390248784371385786322086850544830798055499399343781802493944503621991736478532939823762302708156489375308041901967379459678466758908512474261437117883724321196043571353895968768574579979598770299605834259544599562424915745406032204587271251282782502388331910880113503317291089706366174274337148714529997800376492808914353094997869830231117979915615187303469007294739622929919753253374113429797924457030345906513396939514945953382747668252033120782895272423262111899551322729685355593770358165981071067339778380723710806464641682143281543384934263097618550458095205669400363105372286311341888686179303363687219660924486643238511293705923916308610866330551866453022388384806211672017876223833980171084576533872631745760813818311215154806249237876270070471811768159529565719668494777309174737757486481849742208958265946776769426590779939576285792461399345251033586741602560760652011160796965846905194923669794500399372807341887249745049968004279393564680127991732186193927893258039475716742332524804299075915418933564325887824674860972940023346337734027612623904882779938176066729526032713147529832926165940839371762091394418662783568177866544499532280684689470421307813108557723819544664046670188044036374079052219136804637366222776489273537625309688803790052203906185084475516202997493595673464033616362281604733247999522359161173578426356025167307442817012304762840019183076175376765337852184447979347037902366461738746285780214450339870976318854341341531587382757513350159845573289545640679644652265303968009470011583907226210851278651653553476888519270406461771248221616740647190724376758656774405213383917654871424273122633897404158464504023912623641498228789874536168515004523168888792172915771906566416758314104810024534513164110336611432147662363335227147517106328117323249813004601704706537811569797338853418991627505666857355311546692241804184674190388239762747874899341043904778959852710030325178086446622391815475101638963192309497286355397319619384684741618069161156168874933392720402643261681703013092174307889631856993463562172434159067180708620485733213773870297031696661626754662445216311656279804699876921366185532005271042768621520663338990719631038975874390307890721862650670056119761258326343810098255855160460755444099031636735845304224830373587778987296973579592155419919480586034761167268064363037276914408330573634232443153328478313018435839291501603248270896451157991401345820178627010531480194703363858149545098486497944690094908410875350109744698863598594853184176951951773924503396737306057125380312853486018944287261924868975800579146118615091081272506592468681749967393850037803653539183608313397511562267173032415072070726441855466311189736302085231563605878806470088741997399473814307326253365992083405573444892779702767162011501302624168854842292313022121547410747467959948075904460387903696369375667854498606850945143034353195496357465520913472856668611912029971552070835668915555279492441858225097539850721091234716770952713383205389407469989334139789069881521687689488572947429235943172483796560595645616430763834292600950029628037809803083750899498200454479170859979997973781751559047451982830955790721547549184795004186777328392414382064771859624705384301548576029011303183558088302464451769261212046734035154801253514584418758392234956219585286613890500114675872074769913645798819626854052589078517137921415635154664343725263090772793405730110095073566370149421080850107244604734950052331551026935032644876961266526563378770003018162814356531797552794999765013368335060996499583211057621100944411228734652905050595386279198834890814646289338625920286256415664990881607631208168867212291745169297728454157617018302433257021728234727703642636639662169134541879880481823691300535012019352580555420882101753253457174247092158054247943422033473771811557455275288377539888324982707021817811310656345423510206454200949618626018093139118041632715572784961565974559653633201215180170096228676488643254062894590094064269904387841883765023078603961217858737617390709085620953542884628093220657743075565058924183792376156893558911888532177317590738767213649235414334061890686164475342633766322834443377486419033264731349529252608680720014075071601754631651886056177777801320783944831352231058338277535290152940743554664229035892346346780217226194873989806925988067534523310788039071387840024806044671714969427225376302190780614131900070308434493192207068967490449795012059258300395182493046208268742202931901710524096682150118351694044310786822089659013682377494610301849960853262378889413903821535171515069526296891302545018966014499843555041543156866852051203037641894609621854012924461582371650811195038979148452068261049975558860784636979749097176670835215812245536884281663325083420155849859050939563753455233868544438204885566579823051138698989247031994921517966016973784559410598336382440054892519382645537922711015170363558268997353093213075274691627522702654142041787719692561037319715752497939005367656956508559696920594412745493746211128147993167062884842729726553508602300662120187231716935371856285282617513773470044851743152958741828379368099161507475012437829777117392698588727535860418161696387688350443712446893409092201209144969996600260665112232038130525983621243112607781326123949691912311306290649463000019690416760561687625194731300772539370491009354955484160457208181353545735736104974298934592746690427388610094402935445540777138851241357654381388869748743725667409676399507222423453847835425887470713358035168152596229940572137426195076805003536081081280209145765399098967540785321165088291218191039574864842069224084593948948172127705806631833459317242579031516387572467668253012006582929406492359181911268007675382511206177044145227246291124992753074995076254452250749915768516498615778887798774922804458903495497703248381425155240478703725732741521158392798049743120869621072232900894278786206060538089519401827267464450282549173955188544677558491785562225512143660422340572019577409037378535407281462601358752293497419320915036080573628109027037838496642136513267603566595768981824671815937568049324135650663542911498367354048791447116562165847686668454399835045782057023241072624712238865516988134758536307931044548660645424795029858113610671377303703055469724345510406244540751007081553543524783439187447762957754623288468713288119611590341235892078024947209243610421880694634342432488515414566951170752554385730824999937926202364304662845501242888825364387975043781634167712717321214325059181632863824913829802309352969911440877086277324213059410648117802668052382489633585524055136688588907592669402896271411759871730823042717783659254680250148604940743893669514156333042801203465168161590159541971359856964063630296864346823353885729815362432971377588711938065996207764589513070016248792611163763608293799608675995659800384735410048435419011209715893507741652757934938963087530168079906129084612323519975459156069344335475777695884289723457727077689400829015322068716381314625244360113363211973621364863854227474147022989090400032292394833628928168619543485174347331433903906455928060929745029870978670801736524596219725620389835068700376802154992065430836504099089984283177380990185779847523617331895440645105574433105282997550941073703680867683543480863703624420504030326409486853978999192023636656716334602080270162728784022700735034950929230571511299502666348519282525264602778758781422946349710814993016744052654814416788881696531761321417541502194285283528978904523296148093744831680329361360697434816835408576573669948380178323395999780742496448021823547659302011710257025428174882243650625324259303518831419022144702221582671824705250205454411113783393322096957698503011868228230682347338261148373271634786265966010856455799024630955488279310517920302634589723940045683589724328026755258492966312137243212038753435166328762481094089085933680651060884606932504787525858019133225301656562630171275926603771362980466023896720555899199979442548557610262266185775854625130297451842888205118218326163290542668571995377415652546420458773424291194267903832316224738524236834141312642439316832677762362542753445950967561472140673068949051904873555265292017155986695265976050074927529604021265758217236901815933612517178825314657782273676263010795783708947440320098418213853014318702895899891474602504166053743545604638368403162080874262807653066427840058372133166327232712150563997896242162126949888672329369344371555369688125339104466234993115905268781027665983745187854961928103956177605917457243507054046332310907925270332719523325727482945705007795623847833174139844331903760451165107072849761532817721939822031515175063744922941759276050335225645148638121362525353332898215189692057657336743621251234417624474499359236730535511019984314117612283720321556174958368451760306062101106029213070794835918672030928412964172949669645133117628789951901583653139475387620459675057354328811763867310737895791649810435503582269276101137416254048580908633350547445613658048920322140778531479852430507739756012599985580905159129705513505131428100795529050195519514377840382643186973650516051244690487582695625311694733711763621036199970876166880738252799144543226401282896464417197937031027848090478115523986805957372038891588069812887706547140521715551759343326739153828157713429057528667090013480378113327687294247308447440521569382046379912551536084090785484768456749549458914504621546262540148206868634530969371537803826026182887073390139787015683456430668325594718168295575137499749626609279351075090879443353665681533973426504319762822557188194549849397432013260482495732641173191760128542179488688549461610734596156534395363003206112504960140553475003981115143227858785423021510115297519838699516120830939980438459687747833052641494265117030718090400159718585366609111918945705805409579139576913764772198015612215442253839994898759804410275582554169668499726239219037340626748619787099068765102410861203825135477762232727739736321391624698459269555500129600255280651744750472451888970737391355801137228128825913178758207669466936981566400430460357113667368250522063106067886472390129207410760036685874370397588757298703380636077325507531833203983720238745674040254905747287283970454646711105318736128273585947078895295286673417751057436004267356116176995021872066856650099481155414909887119241164542187820669018980888029205067610240472511440296464342821076529331706054103014325451755494492211334841785366024271997120065777500564679506289859402378534578680758636560549179319194678392960646559709668242665769247735109684094018747247974526839910682394055304483842822247203437797103076928532897838872038238754674444169795254297796611552613972086354873664770027049099928389914480611852944959897835917090155415413039551827707350965077227052558974983047587694667945473263793358811217127268855972173320746832332766109321349699839483692099924045686720901822404574443888046477869088629744952412256963170270105285966644366671525801151500261634503017683871168798244961350508249431117105475274782379829137260417973282656060078736608003826065457065191708710427771491573228584995436401923926386118238904011617013330897992024082019890121877658426714422405729832111011694067034547418846542002807493660060361471471646478529071678048400217342644608547535201316059628109656109490870206660369746305566425547298916809129846333394790845569127441732959099819006302976296379952932463311891611930744303700213646541358795837451935444606074700671659847459328819591865717434744767310344826956463342443381427566171687186781342256745255879595450960083985310008173235307900171821316898473053795317511854232688988227517995477448576917134735373422556697006674622761531245448640221258303511426493873352946790842556094692006995886502291793980599157139858841050634931211418091771823404269382696551018485022470653191616349288192028049935311585961019997436325341950269426703435346263242885548208386534255282082190457729450296617274637576162099809413615135836782712527320645768081472760636387603490875760710767291005174336634509019312222277010094987354858577334611956189841842243919572134910551795926237926263623948529802300264178003800711784854865120477493924891012268749920693519691085360331679531707123076966634815400267701377719505502707944989798858944190101775775682452008633551486055050542639136422437865490320041030269986230917123744615736725922498870465601575986265769744874756798461286277755189814686148887974702673620429991110629203788989064915304375320591049646127644690039029846656734773818193959160288924437559945636851002056853916202142504026527548967911057032878638934977357138747359248819222687136881733653453370204848639071388736975098160319168967009305483535349866249879303105640176276284506868716328006843258162718556095791070440732835211738257882701390188270378614439219237673537112060836854455713970145406087599891698017336604084287058542999374920161643857436624299870862375620170318955045526142160769070604410840156367458049153001712840118768500009186396043890004453280823002121311724732653737393878831906177284628444570764414804321442440129225205178160772706880456249494044329284767034061523640295781803971155206819111949305140748402676561785812159459252006140360290329134469692893914368232996809681038330426941524051549323287703523668349911320121720281867702024453999742710139707725402258647028949104812645093186257508747392343285653821864204699973523319495026320384089007024182486379352905556275235275981513330031427707465780324098548507437691000853195513173910004856849667090330390346141661014060548648509316079140377081487406442657247248278482211375601219476954854077281794593658597139469235641383411436205078037134909842558074119946165571084196557229450345584331907958574551638542741060910309620809748917962072796902179534901232931493059912060307558447903512956417377455254255210923549443095128088908572257720633938254175588825014615713119358439709601290515506346090602115660289854391067151101399936384955744946626670036468257287336466310173715597990653257999624093878871474533474030735089281521913101351087488884028676968705853850331285369722794155446031921668301671189571280954013525772271276833739925117533868083071381811702192299723372427071473648829549176716777632358298882307088678435763172300461423473573505461828175282271151636952514729421107338614304412314297604557436262465095457156040523798459664922367777217895188023164193745123025524913953890857617592044531379970263401103113050818791969639765484397612858916628409495673006675042669273658756296385282625110771660373547326585009722325641809693199892785643813782304311889091273055136289553814190427699596946676732476984083265693199551420762031563877020232471482302337573296074603950889457092271069654135824999594459992802559399239759529719207689674825156858404175820156335768932247943186687249997354386908083802846826770449375930261983808925344166800756573881503515112848060841025265983251742797771866557144521990781040399238907653688553413282855349771292323715458757822452000797711533656731462284982107521405978900605263619440922110357789206963135653989866623461278929483231628150371714243349088052857695605541107345180886481416900666703786476769736469684440865245765271016778634764822439588587516718029262488956213121026476447270530776374136006722923512234544249351183198358043536862895531125305815383614822276865264354545229808676770871307563930286738635047360183364227706988621657243016543565289445118802271822395705029689593510552360845557478362826135225908939153741646915988215055215812402762865224081443776667765436942584112839540604633104193810661471724808611774093698110199528240165005890435677816989498099938064312482546171661260784670876876472134762485453320774611509171372629487382495956420890461878467867510906908619641293693072039320555918491377662294050504563922627646901692797059598097547786184678161243690308158235529107987854998340620218654266823109795936310521626198491220246254496457931708749146769398975156591942862118296034936130997804876479725794585098595252397317525960700990967369220659904762669198862539767530757672786240298680619444860781872600034133794139860886395087806450250423999530519065342884437539910184509293686587581888936200144556148906414346319211765180682466762619717407593554437896424503342640976597285328481472936397583293729229225713385498351986426323365983461550096006768775640580113986170328976314080784784990685701079197293625802326704761713890542083459338160382232666398382818814902937565976499335487334791375296546927545928709832528397855255158521892672417236268927051951579829966685213882595223900123430348125173216225693381523865624182318435213190865615528717472428340530940645130674594118662848985721365231676238646957148417861495322450559880444419337489997891882607311212681091527599610796580568757743822126159416560920763697239065577736177203654698386443135556019061061901503675136329002870532863657626163493037944853565024145215325405974252565529619597502886886829128137215405753433018563669917842020861062526061623580237607980594900141082148592967538664694700230621707112463071428802867946162121764405612827295585671123674338658882415207009459669113209001705436829646136546698711381986415747888907201111569754655978457200206896092870141493206062579398609059010811426810642946374034312904042330403169842789921176089949253959234261754579516711033020911967090698807161083882960185534709619376800145981513484451800531955205048244168040424380580979686632386279380501805024373939123965095209670659467561621154808534394983443502909945303366124164998883529861624033754491128332114922177640258528881935148749341685008866205254309323120669889667628447003472210004684234762600045800470946781674219583187480974113545302326687777966049231768087404189167612292177880855216022863134848880893375379723690338740492899982954761738172643971235370486824936246979912507408361282772215573704706367756313582927255932572401533672374226607636138564097046358819764340016019587840865062592568399956636568315278784237179095676092618406920175218928588478342176417821048034255810726164047489300022277302478293822355259965177385279627446950292221483911088600224573189362337041729295191735913563303112127558854267724217688143023234893638319207692645980832316540763000870357601793272349174464470735062626796421234375634760529801684948698025208018904500190782132793122549724996761303982328580425096700096305737549957987478739830249253409857419548643461237993504857943773425117233189940779558911690490805671217288138322866596981973156184043417356203982212010780198384569781576997387841434494999861687180241803599117462329963059262598912412962972786502171108081204728308209845881242293248436537455204142584133529475040014134152485626136249506578423321452975019496475083016113523567031326094896665264895052096035144312863327047200315432687719477205899297948712726097391898839007438959488064173355334457017693193058629373656701985461449305462918618073718383390705145831252918884233709175685458991806341703035269045824132865956417293547330290097221457357789971763861676905048999900423183368373588999033939005076109320716359320080478228111960218731561905542333030435001646961274754787003791935726358921574026462090770552888714029222942693568467358295766405411767586421981613747303340035478515380562945797928644906923161336684584352337294061696792110674049970819251161756698670344823466236685592139006287928529770993569957896457647439975564745410630916212701701576408626872978653677990046375727558564741253370425767441415269602837182527156965717268635041528447738317768854820564822545908265062663464635815315259991377197057730464398668273547084574152663374785967843986081427700655215944224780414844373057737447426797461109839177116999876595917971224127223366556265234132759655477311017252958419786645484495184379503552591012279195427603490406463490296174271693098500197125905469101992468056779249387248158356593373189415758146760909004075823325742508562758793570655927779812229186386283214316771753475923643325515576760189950331830407672736821037362545126796706544003696041273044549270429156390835228175271273618525915203129327821986851663328110846724268232555653906057192120602413502394791204115522724450113695991941539099114311647718335255924057984830449528674077149216268757727378441146067166896359189144078092430954809644792756150478511119932301071327152985225758366695695461455044620822229077931768796480838497815827337010411531580176335187210584465800905953757270327026962819231777277509188997621011137054898040555350503916311637704182933464007902530416629630909384387196887786645020025830465536488032956648824782261144994690762453806099482258284881911883942000121635152946449032081399989300583354397714593129887223690139264497651111367351642361993899149873820171470311824600933092683808624522227300292695018655393743970963828887281314396461433939089037645771253153101585835395195705234375701380796661056182905923141719042881958137954849958404599279013911633291161804166906766520469326880973322458570336054148676799679804297850920720021356945211547758949420741416197802268147834767770563393332339821033389812434455005923678818068049140630002626649806988875732066742343968827515374569812033897651985913704060982720585163867441836633197209128559983854538542348508800415060371430680047295462932468298800457210935903102740820346280522905228510299305248149697261812498203897199046753269493677602313929999298601753283482010428485017050585909326327311879645076258965636678502158234355947642371771487182332666666976617535936067344113121108711973736310601857826656397207338382309214900953774012507598952649629675670631146435730374248517633306647109881289331003001140783031516043783648713474900856475761964385115529624013307445429199867813892360560176455485559078835161220892769198974016033415399242687636637926501900518286692952839479256035136799830677827723023380458675013681273873730662901612918567387374456668568620060402331600536891325198951110098201624940770633103122353115692221357672549139722986526121175024827445703069863591267330358915812030691960670779308378666538967175700853505498113203090853671889079940233919612836480199831420650146760571849821495736436522644448650120750431736924667533222316580313637407003109551059763670277666214175061587849818587398487928360474299415635321829684331976645075043118600253900768901249255882613038587141592440289034048978144142859542932692451264647547642520666856319022222829017463568567134857575486691521890613058677505724542368256527336292003962953560065651785698455399985538080477628705711819441719708609827565899181223489371828226746613310680743551874382485299399968655152771328284853280769167461950706015539295188259682462892435407311557457154229179445430314440534961008222111777383992258707832466060423351396274285838310432212098923873624173422770068356434610192471158425957890434562925936058229505661542624314409825770349025720536648693591073845314700612506196036814422919632324213956039299759282760922676391228237074179611099903791899433718151331407960024496713266497545344974984590873749978698759441283163724903582661306847401371037019269317556369972455259897731240895555809098578110681112532194473797449428971903735599988525664114621640605856412999188924511808243421800307365398058121536026292109972786067094222754618005193990777683178345710465639888667276440655134413042781679072622738736944750579931093762642560102797363722329767904458175029250908450692676822515598490009384717392249247084775408400972399903670969340843738383536650442257679613238548062840886535812691845097751109963498362356798422053677076727844711536925251320029125140369223903737815612733133340679892069524237936787722737156948364179481927028068048626279126077931359753537314217913662874587892704048518313522348256405038440054485991690743203778545143776413135316324005279949707751754455606468925173395600782889114078164481293222635750624754681300567877519691185712678300700449920767876426324739537092633063029214206199301764189158755683447445899654432650462363108941636264724761178145989024494653568047434011968328621250352769212091797991125405710746514513258939169962533850561742865512044634479436229879312802291003210234655225841876756862177503679030125933447644755237218079912887931445210112151895643804336232626122280049443477037052025806638759486271780137668570231819461243199478381566947089336749719017437873461037937829168563057621320220918531530079534581042109358235990415439735433908064458333909300369956160284099105645193826212082941523922830550743818429795846104182943675387460371489318625632783542684474309658506769429819839379015521942604108544498683719526730715193272695038403691561692968579253633329295668734871978780412796769492441473560118923977698373123996516290210171796173583616719833859432225300334388868713503806078204143543058065048143643450845855913159290804433628802131121928344272608853332528346669310276757397965940432714207828270066450931849285533427482400026714386368404514074165297327453732446073937147767341128622122396302960193878273406252496957935406138665551487817821878242389205287304957671776724342645438934564665962686770179561815744971234845989247941501122114938629810294262200794052978155582094394092191149813940144778531864060335556847977004637898894028986798461119024400430969189993792892088895744635320054019113665249818113035170315304604738207416438210444460211835182840012082860029283441069752965079325687515406447259665922175090436274139909793269363003132425848910025136045009387889426271286999975691086058757547831216645822139673424734835707199724661275607985165190989070402951498500212206036764841312417989494386316622612221689791642427739075911756357145972665020162586304038198778478061378737915330574858563101358625651293888560812934212413516744341458190441949873445424809660327469924726325366759071807053307531557284220959238795088489441419060787151341215306184048677195415002082972495616482406387740244242796988164912667367533245364735007973442528618130602830571860092050425042745890026510940824213934595461251184848709794538381853760906844655365646511299921407606390015146033366725459683842676372370470688400099758079113202767477265952157779158135455201068688501962822214979699352711311225321588582088149568872498527342719793743595045055596780671588383711865571196823775420692823536495018899714156853876513091481982240184361954068419293167532882301881726499161485168560798890348409005323220539906646855274944177009447199092234996325495264386570068076349903218599318290140644177318817279074014370978283002799696355096004792040227208853298141450607006411380541099017858506255426581667855204005610852566426845744369954358376245060951451978636904030433476479570814849444620003721246722027460168004383483951317025127393077046639388072333233274354063951442257993414068019221443170948773169519614797601925968104563674213053229258583212398992589465549861754378516460613636816891329279464960773828732251516655276352624717453935465061218682807677645729425460576986279179321797380075330213952136748285246039749957713726208045679101918134464637536770660958596513181787621399931703565565723409991503913789292932812684690204968923194510812462776149223243372414915721411380435250925945638950982007659305924947050530086264648848854755315388612559004230707618284153115534825295659131216661914478361974407186899834722768437202140183867153149632188762115461319183969999441064028739736628494379484309275240548662070608747415504636068220035805254517057947210383813093593891637609061752950533864437222087101810849473667567169038377062905371639483333217384488649234814714275924913749874270393137453643061228242466438272241961861610007420630070460957463005650644626625530733390111117438499663399371826370937469413655424106446289870905254962529918036590662549868811374467830247356590122308713811148582273609393181079660520975677946862769653731957387774306143399665776231237906614777117722510500003058557906250744992382313712506820955549684833679261617628765884017049260834648309898917303323519011674413989786264142615235368011186000635523650882489646448196705852257471317798049241356462230826565402770384644658306215116769171440564634949026130549234613414059855930068246050630858150830429161172622016340619275261939877850753101924248543392564126360745043732362265347827813849918175807124207164388458247817153636388184284465803837306597772818022984702597345851020755176327749859025938702467710286073907227504624646312452782988349222930222260549005205567783888446853847649846352349030919747558741172439218742972589642301542896735237831046856314425223105127250988760968374558177637909131510059115191934004454655888737435847289222022015645771814443498385206819927978520363283677959007225729572935326301380823881831422443211874271577370055872024932687583352886715941378465635488246205719873673134042173080976779728713212582268486370372918099874761690251431943276860417622875073240970880741872883667203998950427202557181511778499016494851494965977966251954337040978271546509218879680941253956151365896456214554640501487248103582668778658536457062727844645461505909501539906256524618680255427772338101243518336822435990878573459477568028628127966405899699737149278396062768823116717082899718452184496101883769112367043311130937324644133629642211500521507385774249598999482892342286692879544612882769587618908970634964015080481729300962512314462849557407240292753809196915038199674416908210112927039367846339230697439574922774255480803347404954745585856288630442808460007297435021856959663091213116803111273401551524612746370936107486154889298513616060437025768931017361075381729421570812109187845170192682446271295929662705759505742014304775626534412722099725627824287324267892650411799430997002416850388564941063726940874872951527495306449741557573311466811442120873611549423856987056256250878459914563588996698178803680163025034595226039395910120935127865088303563903681363500103676127094847256908743615045734301531985619596560016201554456353615231318912372909000539883202372401948644671406084471651924152229239109817528625978257194126499917386209292310186268271089243241133383017241262341120780537037577309755592469101251539280484679547058832632641293570071847376288051518558348276707244998112871163183725529074699249491902922326979186533967686809211301083012772185803611855147032854969726829144242838834245049081473466772952023364603256496851071853883775811139722594841639135316721472962571444062837728342708645282640239991907994120919651860812715577093797374570375779290335424452487387184847852866304959030703913534989650713464976069151137789697228240620973986318659630660791625785962025712588831042701781775006586474451340095848469539683358512836174966057771339700570348721894228529201166007420224921817121684724457884967753436508309888022077447822561523755706246907027804761473033338150135849773642100993934540506541612155168836521880945168007686603941307653838818297847587787056851379378990257745969672891499166011749503758030352209221240348310211955406946113349748210741624923016305680808316626810039591507440321180074583752253997707505929052554176464190751523285969913541953178931375780469906495092943946450041942149664446531469074206247196605446799445167137109026799875433416068611880931836491468828516381224443743998616013396637062238154140840231565955373311046497195336875171591083004665554205896712434791484172988377896381171604109710566728657361182951663848050101176547393467524636335989913930353632284504548647535750294304958354385789800207512405675120564946110653969339414611365949541336604275162782897610275230846064404585551178620465915064680358839988175719096504368721630521748861065674592918700868061673147500432847641009434568016689551860713737740743283096026804459957208912302061922898338614810804391294460270937210385044192598595511439183194411233812386987193142924605921698270822710875211598396763559826044093739245952183915280914775505292171566621002791792364823657436596082759278097577873771802270535191028340881246410231867831340788476463144950308309500733270557668395708669388808971501198194289172816955723797922829795661313426244334541441095693570686339919587661942362955767082504281995634124531428510795299377272299349837906845035827464642682373291145433642571020378553730244401709022691646119533690591257699486868456164118376042448766740951074881674284800976218596415018053236497246098228619592698242470123538392175596062911400247975878336776576486668166749340012890257962685706925487544566734008903732251554796611407044097863490554190378060124181128720583023028675931193192973084398168894402738821979708765245491011013382296463756510042468354401730327159839800957394268539604371898390888330862294932653208880437498104328385419398382241914107896113670126276026308671016832234127596159477626487198869510350493625769681940033685349474540629910143236914541009551027928611925098539670525569341096880488767764351680161420288153434120456544169997102070592205959969313319033206958827129122240014412382990707154947920946377928906506228541934258119754614975218409640284098821087373291417058713608298069479744056356454732877312318188977804311100330071149642513735074989421500232088007977720706849536471347854706514091872406905740959246351285193979469503140357705247157222655263565581992769148758166442031875885078312444124067586410059645961745884760109262436921053809255790619996558658643558246998237776755782128625703350549886999462818662081147230299163327921479312234518722753949653037584402032850659369602478761194581090458878405403730656213633356762425551523458799889289904000191692063803182742794141886595992845253225996455346187097043448899483097565536520725975332326992498466684454175180002904475472445206416326984899671011488243905779015603196333657538768530266585592198075598790050246273918240300338527534444007276832182418730855584936861621357968442705958134197826226974048378077569307226681744753753971911626329562928781421116378390694646789242082867493393730562901412251919706710992012911908120640587533141986276224361981134387318850110319192178802084928400581199602725311261419899966661580493866454349595355830061413395927294029403086362942110810573986038559509169279163030750196140359684992968986178343449900063357805146915711856943557986457052383698486754441640312437052419320551032294354746412818627740561350104549834878344902514103759387853102881779456757555369282013772246334934263971591239010963773139004495387339492281457069397763120234657903947523878396387919760471163935880687331208004274651791296998166223246446565054776377225237897362314800170554774016584900518290982812167191823482094819680485705542437618347186326070990893117797317808328182070043524318203829044388293404916096503305766883526695093590228375843966546951427892416222015506806145861783595709255972621329021297281599030354311555069140598138163098645093855837790478179042766335647464152621551243832550797728554476120937980937768427351958382745754862216217805870285570356032489705690481139687309501764514872331554342971909311368451865709987066581696526732118966519497896975376913742954061869004921191224083780197829811393937352709398583643433351789004190639226577224147583437586503629345835071552219307942503771490146446810930147375434738793920244189734021473962981939450840414257601143717335076759933988839846470120952508368904853819946113771010012503310766900396095226688039287694459190233881093825737034190701742512943705438805068990730525977391708679416812888629092568546664269826385113619256758220179285016672503546298769514457799825730517258611203105208646313201165955594836308375573727916761086886155607118687230405539405233026014133332091290293702979226445820747686960973186678850077964133610920866336384056591153267738812774595025845094219411800355564340179002516114318433695984281535065150346358335887481228796314282958815734530703339046260343252532282945125324657428291649325698976870480271361084311257080286981579143586814840635186887907524642199448908248576017760949496716757091023822134729876831940524608108890580070222814493747567476298827058594024853946952458928306011792302312786971505693435946579332295390231152768984561109206066272464363477552237806049721215353886668218747680377147955753785631537547630078466449918465804821625268363060341209051931833682429105602722624112782884833652006210174846030802119204081169536758094912326118099803253574016473599769750644732173466840915628753323361942552426027851901810851091537768556245568338723514789766632382611474760097389691488828914657556457842753244103695171328153059868653464330034908142329761837855072167234306435966846581767427406372913881862010365174929441184542172645888173645333054475265606501604294253930417700333996019417506233999192442130325414821245516905354189787471559249988721146844694263006606272947343948253405466528829328108651281244147978064058246222255456657034728310445304342634697221782086910267508454849664161809405526050930607635562099016570663972392657872681489776021747061416194451157192905392363679659313961671620513102786886723259610796453462974865094611681668495096724970962567167359737576328080036933749804038192338295643408368129579524930763078164188325361607786109566194267192364584293022729347825077612580892665411740147652115916573121591639086227902146472733678207970372839229917526294765672892608974869399910180790482515832332102697699436297053910299657669543214797895403729283265300774576127867688526981469054162289299865133373237306252405760348680458266502114117397250183487513289183109969818381194412460259489242195443211252187287086039814539776316301955589957755387446383210995979037184100993754827928098075586936483481074536443226600411219971818522910751762018664278191651052436334714753574441078666945178183289372672214807552564906920037093021929928857709276360635255448159151143028738444651791359535797187963098542503194521756443550539291974778131344413831562507187632483086730990657554668792367427583647432325182875919240972625577208261995320066383989581001160490571779234422749024362416026636921094533429260145960462474745776307040360806635977008722930934553908670415594449034018202761956125717195474149592302436482547982813604070659772671219536210068841282387272866064808814077192340111792894485481170321125086306808407389278841407378811638531710765977059660001114992657544402214136866234002720366803713957859954846049551716055653926510859112082736662631129612974731754178681671208371869222013817198984657987160712559372593513639868186216288905198891333022160772737061491599511599601469745840360530343459176967526619825275016748407591118766249478134977478091631845558711002141325027419411005025253569155571586754678182435491444275395202805052906309334586960732002162833272305067973066438896897466324066068655858450350679255980765170468268936345415443423108522065306095874000881122225767624079256937265523109800965125692430667211886481849773356649354855479189368634684529412139791224121788859668741324904009024619063549398036087991079648624116463052591842097594944521315840063971719003513430754381646274245995014975656521828350810670335948676316246716308602952007407509955815171856692293260282861779791529300280097124292825545371992511297993501953874156621717695624626626196524469515858809453044477726761530425311438079616045945773136893251627539464643918482229674099591430752604885235272482615328391090190601885759260749579610887294527282814614740425065577029857257715981630961210899684541545259785131395029923982801571366939683737100748326705869013831002023597759475789142380394689813536421489847579662052550850365230447185491451144876373360433203268024392823201013019237811254192324647010493446859770790069946615170120546985629168184677353104771326052478727450764477267755902440290828163602823234083622660290095708056537610117749695467282034687095702753344360870763995038067413140134942703190285036796940614520214157310208949785241242472441616163201862750463929917492468863248459066572855662789940874150241704136225463031722909505260514818086753220084834845682313585693673055682121919541713994176995396584744325094627002289013009686978761278619468708628950709558716963549074210090920960408950594167500964256809082256345042228479387309056864020955035945439856006678431624792779953997643729666440889369716147567665351689559668637887782193240935559842721451550708099653948398247585488746665513502052651715518353432948772776242333159286639913653912315919525103169185418031637173521975867540498487892645729921468273000562295633527510742827736421283023439581700004926270103288899826386864341510636905331925666381250587685983602989152993196111674171240452143419372772525223480104016838160289676695709744974728974836523420976688716156244157464673318816576936342865102304997732046288407328346034772457202405502658037067062925145577609990799845904198804976064239966665815812339111987071542717807977053875284698035640616926853147814227060676264398880615537142181403190865248441511030039433809286325156167886296065440475068879056575885430422491945292287265928002121524288653572218806433992874253597896906869650754264433578291345791493087789658844378580351755571241354390248384416518090642298242145705006763102118808096763720249401386024304534024800367453422845894657846341945500566889256041752651712599355991875481111492244794034226636325659692160935044094528647673736997308373058353645469633881634015690078775868223865449613201477514870511091349542172425727395364890420529953618977324624052428779322054447301408771560082522326101919312253658476311289751851981969190121964738594777699915721904031809564400621773774732968332963105676813863607726517412021579056065701571834992869744072001991899503578590829507597589944525198470495570262737180980251375909279381351575069096107444184486954547146435810451523990308963555925118476515992295789545280973123645133784127594278590134816393233108145242906158707798462218659677951644435766771608677326949396026062494130869808824500243567692220408941893831443361560775671469489717810513545937065530149924427395253787334673675168938219253424916168620966396570574922250394458169635489842447065153092564848976261908958180337855392549364258275514245997539102990299237127961327721034531454768415311192715680226483373123327683708523851267392648730891287916158789760938423121979823800165449974501990366172981035190830516449876062642331046389432210489206333686421854021073010030693026523379521498967114524476554988323376533637408301644693730087081717847180395738404579157722308382367455079289179471879832570027355137806539516161312785221518485455930018795375104014448439147232637303397655786384874037279163152657630395151268455728336322743386683856112832225282878709865347349523302674855498941362787222209212285971095677094910922917348822737872193230438702714867762049159386043844576378798741226935052694235286360310921411610636537528056538928337210228399269736195795071798366321275396458481620175515485384013507496467443629203311383544834335137803058530870368686842826170587497185200636221074821663906618674626668777139242829432378111094802340568870323047041375613943670017861541546908461482193529723757153428540535520427245085272289121850806351216298597260980025642933638144855823597160497896266983964788109510581588177039168202557920493905990814948130757605990820382467375484325116981838786256573465133317057642132211085010821809868932969554039298720245736038963255729044745620336669380079875638635315891653266174518216130512006626048008980931450189370924794920926835512767157471932454923504762832524500433921533526425463618298786363754248278818973511987236096550450534652017491293190476910813793781313472174210729884541566673244036746819195911552810972191925837291544865029867081003397898585431038735367809000237770045126583816938148891793517624949540370075618585359683412337350335938211845100821117131758943528633825396420354641150638998962935047398638668433184490427657306584809285696046491664789297267134157309454316530998799261629031832461130704200503521520746683095419466397293055246778023879863842989718095494708358105401332881654322450784740272614922754520728296203616340965447968120138577972108643311004832031144190205637114783268237465305030496275494791344451141759792032661958776325697595006610914684185957067864593333720810044414096448793980695745901451657724482384018272567012970013707945421082044833233617723204430513084961357260491215397936279155107607233325256475659198145472927397685905748752622729864223130101069983683472582283395874627138496694674057246249157510707966069911786977455365824022536332029323453584611291557622002887490035194870622172540018123634498906161909433214662834036821098561960952279548440509762551575926323149665712416984695733368038306889928276850959698080207081911387960411600714321751899962470540213938576539229055028653738157027307374267787885439978663741020401198939199555757783686233623592423041586306988649658860843106364074199670125542487980235895110091858116755246942052320487229616705617549293537540129710252408200195097899553547190602759985642207781639953463532351708700904808831136076044631934309720003855903423251501462145843029265312681752339596339351498112347170387305989515699871745034049309568899703246180901090810442248717917352734179746519954994402102416799550380867453245638914283298692248291786954110493097060871704742333550137022780799014735718031033797222915348674398475667585822302008764906803648718051618278534303679066729523547690166853423204275301605523560836403051723364805882495203718075162461344428309229739043857052764876308024865502245019454220981614453677322382567819865171773502315094766920656910357819026985058163906742425828839700175408972564348109960949640518372249447897315851862268626799393373156143026542957243025846173379076284485382877792098536726014582915752047294300956779505244963972068466566985227135707652849649108996262346126707454830765656300900459527280770193381526743462895161290918854785668599798672280477747585340687625053849309226878352762697409245605112225507517165026053113884787585024081918546280856891808316114076006023055623637719181668856648872188271733744379983161348860268142800492897231899597156159887200293833980964308697155239310326583192915408546410669532757410735239304679214126958631246238356443823350704576378361519670368691970440799934461833770099243759012007523689141651459244299513323684034436345068799392755794022379528935798262740389720871675750171429675977834947184214571217254937230444768464354785565089049311760153969278718088614221127957125347290202111384179704716056156898456389492548829630670108510805663989002239260493205138740847479203818133539617640369810910746361300558634011688191961562992658140432149639831959794616944942163377952038422720976603399037945024282919087545784170025564110501891242195535583192267733110576871017423911495813344268186774766136371779336859609474956399236865615393626604063474830540795501250135347775485125554665679812096675327875666812510192630657143332324151686375762326728475534707299597816132557541386624117596922968704079212858353379886112397189494362401864818355401066565059070692657240888760246607658434367535300625461808297321167042609989283256917244071005413434643693108838527614740583526369517107660371264368211043763664874011316008395587979512956657180876890327934507355656721661202190576803884657323983549313280529065468895777210293181028692134243851315310418963195883399964419286732872738785463046882247120379362805516016103601708282037330231821668442298645541923045378902891808506289076013676620755925082635341661104651863962297929048982105730945979097755707232903083522012625319650031544368851922379032924291572175550681726965971166294973656048868885350819303823074128678831488262053754960314161980683089593873283594178791037768009542951187528536235387771197210921275207362717827878063447720158735984537467998058416120977484453795473460456309343096527211965373724738535706028359801677964317288896989184314867465607501212691285960686641010595184672349429672708944700289874769105987260750474241827700473412634419446884429186111660006389536589476519330621487632410591525128051072640370306573040205561286789306187224824127565708047240355458661508387960696064350653439988664118780458551892217639418278433316486486490842570119058509692850990135333768165257422646809575720585381423766289491457210040015117056616834530636235613941643202518296800086778206165107999762000452230173905513114933890342935377028899752899656971750338468661294216140377645188059622787674450345534537235878507292397341385863173386934470072973133601591125346690865339236995035572571256285729636315393685801639023499230698058269885103538913933750780718789284296399606239873536425983937086257660902548616963761656890787241653113776058606657407167898829213589796404688099217232775498571458136446743887772606122538239157697248978882808501827917243276839063252304054678390193830357624094657505852753846628380197772910200111419270746190316356091979862269636026771330830897775497570396234025381972193561427695376180676139815119659626523878476203571223533176713983855121388768932182821618841346905392548464620772524405451640522151508850091169468366213703044574762279802258977590766029115021684687572683588975041263185295133406771925572077624650314969434420870968554117157240645262544027268056634439739490120027910450052594112771668567788322937679033974245898961660522178172955479582819337230006145004090440107437065707613054179809097596144055992303259902746833344790019677735418222646311765535219337040320067851124233357852303255619473025141278053753149537629909947828687532549452023875051221321080771206257644830002182528454207594819246808335907716405657752235564726244842554764186497810375337546856475205041676254050253350029161387013243979934262101512651499051919852636535731310975766206783686800683437192528647695441149740576914237592363635487962362192449257901258074585542396338271441439358839261462218953419049838852157494769066886746366614492290523608188057389135315037611476552839213436326404403624660015247447830586059059993943749315352787716252809451556474758767905087220946487069004193871765595357398420506346037280078570446067056166745741284294937723231016803345358505745799433047137339459259580055317168817435767358104001424239116847428181347019395789629638432365824668741589620081242093373990132741539710617435844330689684034041977591042432361197382446416852223316213099911480061545827437894247470852718254244937839061647670165537354305358518083394950540274052133357721742492439443847727010886659575635695364394000794723758075639981728295056577803960901945830429884858939277461087935089829371300459445364332121406522440376313945401893611751564759061480209566833813688139637051837002957941358139774913769899707895739215549074227668756001772991887130049024048270226910222496706227451298126016505620246566942811048253274088328317364155846017366928345216743492333787795406799128511666123965926250095357873813326135951222790525985817346870450167725308690350879310106733307455669686298330511991679693738079960537100919586915396831184221755430712425954137310806639257924094495037316775834964202942409245686205056282889992770036170941062079601644400950090351131681863185054271574266407462793956759754266461714729551878568833827371618631372432420306460411627998711916230214025010266355607787218975391884789863496172679684560163936833261955108283075743425013596063480783429349541245401453182915207075839349249250989943090115655520247181283106208678402983943304565294402223641988908301418304281534778085978987320777157932687426327968184925578189197751259866769676855193243388152257069337861495420607649058789114048048494073014743683551640051707493843929825640240168888904881749384200713403289881659673841482424687858337443504159344088335907548083082862044521506450455063629081503277522273502450339859203095806505629583595014529890048477130146075328854929794417258734379008471934654622643256576145564859187193873851964630434636585712856220063815768944952624476066503568198083919194262880866699524777172954273462994661293406244972164787444852447945906560514321448808995901044149664911137533423334406214621725561767915042388310867545215615320780020216913777155407409197372626923467237442920100821572838416538552376350099779918395704106130895571278647715804340422971413197650079317803151368880642108699298442699806575092133515368228884765718025490283648539118025710342156018620256064646337538431109803404394437995722153418977111166412079524623797905553719352626019098128636998623147033675096123412182641439195686759013313650113149298694889479245285074589659060968541850414162338161190374091946695427403245547778856552474517163179107279008946241545605728256366951453667010839000800640637252568214292503438008135740532292785214987032414918564954128980469311225467416252548719096708982313462745057840289921702998174036830635784639830709205713289403490913201442827147514471904687965040246594094790497529157033182122466976688508741890171506181580562904883178804727522637667857004346485554979909880162902673639261918054638682268168665724001849438560718981560674482622711835232998222445571453476077262987121548305701509056600847678496923417327957975591231119733263907522279996171839691902547557588741685506245813158957454383225552742773305511119724379969690897619742403729173993667161786448010362399711438283838032854093023407727103861620882899845557739436795650793003461299732566426139004177112893168976087329922255917911000609347372917260422710676689230473302356859726857249797985778010003280441035791228199666398900182654321464900981416872113899145608790148964483237799097688889952502331580637516015274432117494687367806527260762833526250961619028517912231780311050191946258737924073042601431557742342955007629202588249178197370929075128219071682661552274857991365649938021095241538328710682278836344324240301974477866440526422543820667574606551335832504662555109982756222404858212737088899132537560050615110623899729148784156328669975274095123956343914585451052780880885188303808183818897128088248973035531784812633481624537250066951380526626130766383429470204431213778467164630219852032622884484200114184891547317732966190284025367061652711663723246422429638907932101572694943312314872741421993173285818702128407286246826823963351735729677380352943089912844931573725998173346885945152550920060226614624656194616761161427911532845659001476138069576872402407134515780569025514640264687863741348185809202264270677188689995669865324617493363529515203176344344287421958288782636224620644528735601228613912547618200523728440670452303826237017914921990898608050700126716903606795784521616857031734767682799593388543639042853162981712977339028865251963801604946495021784853134218430886629060793290194450153391941484214636111137062384118674659131429202837418236668869862101528791869199330137636221201664705833653517324289716475280061827771573065509346023753279510511897166399983106827301166309059645780579055695488102210036552907555947734609668658010205412746519770369950134203027395369509521535055595401360880509591522323618237315069957754681466131501963876518580241496610521675516745186047412640831200202891875321399884640779623620197441425866901431287326322159003509942430808386540842800814946442707490400168453057435568293494669642145175600278391426665348617934319546189392867185369113906781215287125855233002378667016130806904573289495236459388601397695876979400605520822788077394393092246553428251862814387592410636698226336535085838924781561748657541921674389643006413975097635111916522867991389805349217106163539216296190393402986202167039844825906504230305819197081398015865451486743408649535704373636175130653925798291468616424428758157058263970896509416486127053285874885325931811544354366752774561914670972055709720521256493210139270756552041038108486287818293529432016516407902542449869963000942070917197944556425532857844144133567535856880728401594995059742553663450976555330424582715348015887458247809368983985102385960374608244070436914947400846529003656724642279478004247538347515015073710431456555528295698988944820251930587031477988897306313010078662258675624148374744645715664881966976329959833060092221597144029107853626503104622886340615090409466300843715963609197515146434915705646430866734650358123512277690180172632269649845969005385904877058087245238504655399193535029386944306405039474590967645970252366426634870475636738577918089945219109574203369710863870624162612469092296111117817392617164587343446702548407649982406251168488078293421059964787196795371322606544282908113169190711500376116683647034569794351525376928312946374835689318418102826007658006813548721920057630026601623528615615605718628977851765373110745868918227009360965913411415568490793728265389566667319782892256474088970100100503253976719314339028468050568451739114127340703113555916458393620535240509044096706049308588077939088963085474906655296380392529693840852198475383826921952836972353397851949523706414390039153885596297919910582593873111407467139975335228558976911813299262340620630485658321100176693741169119284424109561666808144618481962332460293101366551047438768186912662083255439418365849119669783146220106670419760376055213332334373517529007603190152206480118870137303453854939582194321447881050167571540792561512645680716129890984263753033711979376300286266737347586388495852083938500845027663970668833926213801355306151540049483493538875094702122298710158868441884247391394091540625966165620946790349690688856049032587911263976620932221944355676502767556999130933306809459529259949978836581712967716977714385684929237156451315137358931540267547459560926438488810128617176270031925439922422890818199479438426987899340507261749776927915088519444650671381004440817358381052726240303310240060603991472451243479446995273678343601681755595277374433070467323437169669612533457437104893502537446985494541880307574022371554587304435437220669784960071809091070301815038731998915660038624592962577582773680920235931503377341698745739099166583697581085656822619790389266577100742643603578326778094785448689595178532328697988268845846035546496383603376361436456603830170234958934392398073831009597506365226677777126089315235637704813210254667572751323483182860486453044486350648872401846651761457338470770330776875364033822524143346774327168196095843145941770297005669825014360629461237769598326153586147588684685854960494621506808937291255488781259638569172056423408672820490869720307970984167542838494422302594200722834744907352964213177039142591304733044019191100214011945596275474491740381763961590463821835307765983404632169560982635762816605853888644837584970765940035890779375411919044224846634579092455239351710171071848290706182554177297696899256484784078274888475820157973477387642432568699883182625995179232135214753803905309748711153017039004874559972286295887719008344260916376078256198878146380108394870005593315788478925725243345480649634967801988866946714199231092266580866955696692599352175130863176193927435183118947597160329744354146138467979203873169655734952607598154526921077318487705573251023443301824172074941504979209298536645096403817642729866041295726792627904512975759615862693912964036949429160975821302682569499508837020272716526814165864745701496955805957853317445642361272324820980466238366791412409199871871048558439287303028480548577907662008547290494048076917184398381201425778448171460578474394823051349958088528714078819484922315727462925338120846058366496053906841859613691093142197415100252339864244329222251838005932662565216783458983319021389492253542105430952386414423269414797621956741143421311607313978535796376855234200523307509788000662040201959030089157424414032402449543671789607919867043109737248850598039482674946959032621135617974291172257867897950580816534209322354293870995858033103830534732178759276347441230993691242617244651701040399722527890752664444126321484642058516374284448578750287882220655889364541778417819788625244101090427103251465405688911238033188215216274980247506315227499995780781724967446259569523728924400444602097309680966273133654861464618399134954908710879036351990428338139856558899300894919319304560623741250884642454629399546851353502719236171571053217935000699728503693331200188729062389701295014549699829670545509656742541838317650049926741333254108314178141626020805674836597307528619107099137626746027210304607536636545492973841208154905203705728540900756960474645378271154360946763004090969835123243436784960649774941886278073748848440337281108667253198335853005551412803510528452525436617517963037665701870627614245568343978316408575281486014822973435555682567843651480884475593221956364341095949732838980126561909227448692747852332491724067312583459448410099422016615757392244318546060964484895447642774370362583731971516910762616872026302835747765739218448262281893849457574287810401755726626857180415613359647633769954137947450809950104079566106515673516321254624752763528624438822269374087343645837055247209933431236632237657544063767094594250147710885792456362026449122592984469623956846000354536672204639353618881147082758674667679636863509787230190485295894314528693609933538335903896745727654932139180034894959209890717477251012794414183020181717226511196181677533428095585018937845480202834548189815807008948368928713112440277937756735888620431473966153654124301439788017967412468440593554876788060134052684213665549180836587439562482354803937098090608832073094014480499015259903776725111463278257202834057059478620819169541724072742140632956421874652580422987796409143983702229455046465997358910831889956745799870503357608371589706260385475550790413428231785798682454853826981098076722613023047118234210295055461906125230878497488670272441963924655100221147318553396612143078596254670587013972220202637219062329936724701380662521768678748384668189191645846615415555370716082660290321345283874930473135275701439609592308743771628009416645260924392276304550939678475194076429905186534215789445950254235398377812242462523156238602791753866679671588108279729043725833545841953472768044416386485379704568082888807876056523988754516553674676858267472751658405870897991762728450515060398545734480666031480329846568129649372465299600091121459301731525241510802309892687377053023423465354887433079227160585391824389531438548941832734849044496454037172439147237533633581609258807124363211155172623207306138013829742121775472192769156018407897736566039622026528511074280755834256673670970177279696755340807973750381580726179373339023705360274161842888226686470046223492746222301005370393760275399750779588573816229765022144352464058454765249850358139975576624344007426772757825025294895212805780810002867011979151708025746057258768406080194839583928776070267694998733866333244367262387561925598098822239895913341159557272001475651344979171287028257288726441345267318412197605762878747669190005011332116510416871728023164002721700255835014480812060215239869651972155698251780637465518838862747441284769284842615281675528494748480972975868212978510365901985420698845663438651655718555925499990612760756871986549088506817098701538578064461647916807676786987141036278120687286595739629864797673788053118961653024899022136123140956764577631177045639800232230158488398970834895920035142863973342936831138842845818925336142616969474077071535190085725661448121029231101770821642217240373511415561552396005894596072855023631372496516744937419700992884529697866945995895977653807986022267320678452648805243320742009291799229475173120457348922866198145159939606509220946563370017742930465125017564823020467981250330649693784734435468748586584231552657481909198887350926239318248999649932588004740968480245670007864827372319290742882161479497264445921066508263886980995791272702984584483663946515639581200176479298934988259048692350948136375164567622750036272171639202487451422947357193486306916361777025597202691868085774342299815390676035462035002469778895331885733295050951913935401015684497762644736940690240199686085934894599087820808896979958373436974190045182139501712337865736592091095290495338795592965831833093409654721726212144325209729001046775992608872898561004693525212120130268224600530379395487341405605321387325054471571525589193897093819740023076692230245380028686092794711765815709804667014450922159170526867693673948543811561709149758247557164142793608801464068089617315606890296332151618671999629319752921473659542879551684780183025200234848481126460484314012353729990984835924323857812443186920060953651484243976800276391249603073467429829470446216978192701883710052173844252182577796147382150191628740367937942812107319781294370885334772650885588136194491300331655108872841982915992615584842052828975683003103741154302701331073804173753560796424907422620508029921002935265734344904924221051896463632185196898892087470798714052133115380750514875132972193528908890206816662817330663624738902211224306413859034420755882407212491508448733583591487586194726777099904162069640199405578089284478569088133479758579348912700443385624920996738180311824867117523943855496061551939503714419953819118703357301602472495368605841968903231450508080597692499764920963835453836507517016128648125093748139590788419539628293793825697303631291980936757264923740662660226323032129737315629868376276969092079259104763229230139076242064070584499336208359757434251069451045517382666702833514828636682157369802028706506568237217596121876562181758853119358071708337316397260101423635526454792675912931486055673980449783090618671455335264398183687452532324089764315571828089586230922562961602337471156548355059179110204512152905801591442132038294029501785954908219765571537947758097834215226558390823510754934559177896858597381786062311469138177656828160605193148731070535497230085970667482410244766118880094527263176151488917871484119720068859301476906682045111849607990401190275659237838171467555967657947091688839427335825868343520762331210911568338394101251517831103405356024597617623192477736811826459979051085851510014771562894570090833206883857133277424127348477782287553137322823217033092249653030980211351168874352147144259013000664746506141878481483373352857715158508057501493048270697249874812900159156566344751032038743859791558276103608727504575899205052531847386266319328120363901657793460368098392861239945629646330088178352669988499844630871871720149395912207065871759559711349912539578876273728289522365597772373805504299217814261477791311104763786592484891880964768243546046811975585371566995375773933990883064938572852959847847216407744483098796350811039094269797116730479716056134890964796449633234659935109012659619735300131848490246555874840916665718663010013636718008803795608060772738906371636451600224998160061505872169027171242572844716825014602042766453277633709184027507950960391218081936938891606551618420242576291152296127000886018126400877088682375975771481600210938569390083829957475490707975243749154789170049510209322701511255924201942244050537712370945527985987718242029410982020772638561366022095819720676760399560601904463386309614701090858514986358389849044416612318249169200529895253110069437947015809351006721837632166752015133896359116107671410684229330126101617104024380255121424582410702752260329542913857630265663266315100360684328621551639826224830101387553799222936946826124254421842038914869328592557001202217424399947570259346349383793452797243648392642200274529280084727523295490891104838998060573610584200903289543961612768977773785889696950199547916560704100000536565648240578552433181261562420064740746872422495758998415753905259166589313768340036519188234592214745172220522121087682986330015259508771560093523756379800002234932122389855586627978445063341741505720375333692924771029318990937145081037448041611555855484539279008811903121706133582497701907905065328918390667270705855570547103423835354382897121105771023987441805975782907677554550395042335163891090268338455360106307902871846235605219748014182157037473271605679722423693251407338036283893863633257356165080453151380579053969156683601981977203904634856668099794222413548734610140233499350282639416369244076377046521251609576412825932550183668169491405940935931820198956095735823218488500976434918772202879232874664651780403307629237822132181726690179793609406842509465200530926896107530802852023226177672096147729804774926914336286631161039856295071239745542829795645206616412406396857322154332183308588981054555611398262435162152007148720470312431168571201325712409304367150683122688379343440490070596157037848595848151900625314571899576133058316222095433583470287800214504375102497149571825684800155318666312844411132654533945158618243484172063337467883313571191125139660250150135589387143274601011864353067036979118924423450166404753325707657000485490318041682942629667885159643340230132609354467977003252268228356776309566066577336437878714702769627130768628086864592639732128633889378173239596937110138745692769048057892657032089951918249208683825592561330439800877243109922800611987374707683441569532892221758381846848373704318162987524850117055880805160744109467820202766818953387740876719536746809632841263610477960585527785270724818242755680636342497569771996774738237989136616972483020126134852349411656197229144938489213155836831813592157661463951338430490522506379770973170058751891822206101618889383510252568584705179552781294220571579529458200166591238217554391519753765606631407205099532020709540632945980634506563996960317663137567766651259762181156387800805388994889153523665564298374426311934291106142668184597466481795995029426465342909308194977129432155769261941937217666374187350224237262124627102108860630877688518465321945527238400754186966400788456008591955782023884193555044064863732630469464598405893481951986453620081394693571104331142428362556077609169860232835076367303616371489343175363013944239163477106811358665859829049910479102704598808118261157428900169010397395846004265802437213126829514122773490555526548017565716733681821034273551340351845917889421347743346852523611567607001292854847637975279973583814358148713381953506866460728723762970200725903744221515892885664103365386374246198714546347963861294809023237659683755228052172584104236623049209890922590691029248337971159280010820887489170585028410633672660655995370014894846979000379214996314334568662844634366868110758444129133701247490481475634938747323103012555277669580467480191065145608369667350256073003668417457568133600061419445518953787138331335411127138841518080868871889112688296379333664283094744946588108501735340598036434179840728235551936576626615113971644772513112646990414025992290715570975391990816118484387805626635634859628951921590262228501835815027593967918587107024845669315777707790076671722138992265411667891031533086370515555029539947938755671466025591394531349013200465551709033962186488564237798308722448022076865918584017818628855424505421407219890734308603718627029620660136580877859805113005404628450196737925680535379615150715760191671736297991365425933489277406863762726939428077128660899928553735620974985874597847278712528155086994163154745305634022296582948543625707386092613403239161438969192549580467006047759619660997204354957120837091252726806057434000774236720499559139233263230347387709107892754907098632924905884197424810984741471518349370431348810493245854088179161060839875718788302517812248999849230539276010589518114681725869670843121240059608616061106576937857159882103095731801516625073417610872937844335500772460778453171532125166269099689113431509911056188817968533665259938430229200624254586546660186394661481888641873470564530970258688905935447878741175468123654476971068827403098796882463235710135994742740133027865655892615938354066653544349973774176809794652479711777875709216570234252121377767911165096836693648114302178993580174889156266174857408656765066727652553539468576758374476942461057820612732524151260851509853729886708261044052103956738053817335588840057346530177103149113588151961955123871779913780877245841841829023439023209088317336526808922256125574293977494062924325967201257730190519469605805784592822236905551455131095871279905757411493193459678602657670055289763127516562000434287421521367489074436357317869451555716186649296241015342026437287015700670024198025231172257642096125731949895105785081326602452996603171856325898053249653112304972272444223986646159889014302277390209861961220700738236555299066548057016865687171373977410238153863952879212119274433538862296580854975056527493063073637062528584748232963436396614031488951604357898382791711049936935853208408738056682230119252852319393801486492149901248841408637834159815730295198232658722802479802973407458023060258864641962690348904006429440142817068283328328000208196649313095014155965727109534978985713326227440127735185327433000289027250628349595608122648893484009130711878831635670027239476455534227581054986698117031511920893340286010942896937483193981749538092167363447613699448236598989435939398412181863923104206939572980162125590414657660384326366243859633858273969169740265467487959204136392895422861564948694225721559715486232507025888488617596561119476828733456086635078383291052562448208822437616427380158230789459916318506120827317408126829904303973905777125777974930845926756490086862763894998372330849101567163154793627224946577500866693952891551908435840873533924513287296678549762087612258475085866225075368193646475365840209803384300790798503450347168800301721767215519059648942694071653966287437865241593083369107113910798137459230433314565168556076040045552173398702840540645283100842248181743113654109069524039718719215789541810193784301093704732812936821764230345244114587533133357035515794816515280262706603403224165793420691104695750833294781824074941508533134868962217355793146567166067633202191302449851546822034799230143706378194569243132032183323638645253889785170885362935180215931747927880887859272492959909608632368508113923131780652053501680438160691999595455637872015933381521670737382473156456231192543557043167751003287939599143709837872491616463046590461422803163024029591267641716680540207076890282322559004728432459799804772312205595599802547562938529305046611137150723137868637771827661542999996714843525615231352333357138123892118547709519936472285995160424429474177413262418974752651672280916484977743135581139612890207663847759549929721225667804980183495125161929313620152377553256526427495794346125142761687564531508624162918750063552009398573121330534473613689377330790020557457584692514086758669181592535777871701339318817588569331587693559922097333202263714691891653392128978376961655181712501331272780637181538118286028751983339589996889908716280283193067363125547389715904521202876532086150599478790255604729870925907620865853747085181800453043069528433876664891636237960523292360504464904847631069885285253883063469431321572872606058258911652332720699337247632152829456223574134687562668408131199474180037170898885613237664799105804800343425704230687569814010894186563216305188142994684810794567723264334235603404574159400238507502091535349287974346731208476444687578707163583676780398351214377158288206138269449744561137873688821778902368292161774123087020105939453547132551321286473390561297275019056202605160486104140238500207483590637372086148140737701295964632534975672236589385279699069407108808221384233725992617151516477653594270090170266217252612497094021406680811308492986758858484727844203741390087210823259656944187572997720609934692391390117941014572680214346122754000531246305039289269663147527398390427544719605851250461999657468899715593891437962380361233871874840561566489107949001911613681912494133827816698628525687271339332319973887854679280930639288531581212899445261408254828880615063315554513278032547600892688074244250977826566366172370691965332951935661882591973654837230249555307785930391951820954248024125461963349337000409924384467757416515139754474389985828336023258989967639704406652612824262232995934428741754368905930634965402860428518063387075835481850082075657967061075421055862628989151989797199544760827464634615020356234786362042533611510177254489148428848399653280687611745485922160102078794307679834984285366069697065465513660092466534902341181457345358152454307637386267969682278585278370659633910169552570240573274129534461463554944315879321992891852947544193879510636918874663797635380899629962917674701032500018212988897231087942532978963057067329360304052178983694105172370923999074371554497150418223340779487436412217635737134859189442303789479921238646550047784394940282607201807145538649391487355053750345489670302667627465413118593633647721523315054387698550440007783075893072919451647769116119352716978127573592093911083038044218817075542958742482504430468434407268520121250265003499367176234361415088732075584732272895191958679925363693117771691273906046046498430014718262909102220142155970875854259661425226520062713867989676276707203163065094791351341528827709976759099308173608802012102647247246422434305306404664747292249180800479765014360729012819076991219700803751994173707243473069895623374634449204742764709290259985679465937049334921528010267492455405457032076113203735958643388683770621675963813316278070187876750442835596644293927582282614997531091167549779447248149331509398134589929530487204018262954740806774569521665923628812156945736248115271293806537808136681965819719681334489116368656093815951806640460192338075055431269425908509496859500917562335660327271977756283274710589468730124649898710741739684910919187014139937239446933864065701245953073907002779472142649049029571050056100148249178705010203014130912261304201064010352461955860238968595833108680590802107400954483429495917251731060683762219799835234107568043557483634315814639301753620207583510867634317070308950640296417472491016058130393729716054554377002526828582674868088842802181380034100782362539229379145858058115051584470601127771860748776918980324046193603481315499643834283235289810657956066304838601478189714512785873790410707034106678043530760213967810016695976593389010453364777433772986187167032222215481332076661442974986484391057330886461592069139040417001060399069088916232362520519860023259672544572684943931642211501826391135900189193741392667294197928701919388318846721860268235104637396808328028581758306110541753582827505756776200767783820616384056931748762635537726061869566724191967771641738365554275209328999751195560513151048656606113003143968567039071167353934526022393006097616530915266419824120054751431864678782180680883213278478860428694933491317908217974263079418603269303897750588299710516912936452178876511963995366294306064721830999594350108698275282524905538010995219903603319345934259636900051301474114059005348493088080802128999804405387715063075158631637604996841709930225522793132174997032805635948435114772438916412270060754792566046871183282231485703251954422717057629306754302413735565679712610027182871543897609032775275338580773346413173871206414362434325598549508105924324272473127914567388593667090059077397446982443136136470299552066579683385970159932577364440595171325552710592959850636607399101766509055568384225818619000357694755544615855170735282537172490460410551475339133013409310365582044321495916405683395144022018740920546658985623261375001259877786712028999410814265607199242920025439890366214968883995157680613410242143502567199154135481278578489568689029403942369069180852333612919501998874067461913640114217636207469147015827380800397508121838819480143236136404512033615206424070102119278859280053746097525042097596572289389719272155808902825609902288011713926867432906200065701742076256619216723481258323020829387321116310355164061686333822939428825660035398509573753891364506666658032025933262897538218241016829660750879818638131112685252019973020940148361418625498235563780868279372708813245820600999918232988979051231001232498935499443874342772812459565399134734469904533427261450823492996881509586204987537245224015095345492522263878455200763966182249206749784680551864679596210736425865032738698828488543366474336312753630158000036676862581167056374270894556125271850895123351099217870892153585584433200737091745792475387741273356568658998194551304046084856982903973401053485979381262300243300699748993208634388409711489384186385366545372551736086031476753543898662100931771408414754084740290236901709161601658609096973421508729514112738608816939001597422551989474522274976201514784127065388649111731319403856004265184270984928742659532895774446247870435468876335306815502161146954567331073723905150966803174353392741574376024444528528256407735533896225959158295327173873039468531781770660013693098765581195312233901633992236091052006819924752233268030025229545428366720061491544143165165273877625743728416740110111453674005885300731748735382000522635177230682476499028287632947880553795761858072876543473214844973919579478177676798363625691755608639033015537910906773533146045266031787291159534856480815953868450732087051083804494914761508594007787640979473341931702401112834050635922048364897792057677835246685489702883682695750186286013112604682527217867111419739911877069951065438212930027586995476949524633487750805005638752844109213712097454263657786874754834389716840529192502025531222177877752677488551402535009898332178032155655857038747879374358797612693832504438811371831493144938375096346218085789124907243001612991395049614026732657047153161692594464952129643013468763927720313187431531248071751783348145897294545595335637285854272471246438563060283481270861513111889193918532388777697111340553505078410735802334358404261818981322730991529874147668003207873360239774462700383296786523337383249845835915282449013344189009534148327581682720406977775474570624027301336029360578301959645096186371292654558506317040605381970455265415906267228356104903158063037863263107054868291586862065557573464476436053857430523637804995868178886918633902420921720506329475350049290610353450179456279251218366888157561110466990842292934460522754433529530999823213196511510997238598601577811777576939475144497854524642645165342372336758317678567688725970531069343692981994230067354257960324651166681191492469514850119062818139803703815746812736914043255731402065151463522900337656619801908662313069724763264207011761198329031966359145166529864369485476585279507442044862448960738085717928296357281073874985517515679883563634911576177030000762685453344391180737698638045311831707214347338782755536809219513809256168132753840859504863087037140558640194882472887221896946350025196285632298911912185137476598638697267921072118587443917417794765852916678567309622651104392327178296330258379506568361457541745226137627057550502206457884072031427305049200565925148095436405358170820922570950257927367139271937938296594292504642478318962215927424537758408658212357499809580009630792048195643782178422588943553955262017643414577218086521189906664772925172589119096113306547165483116732251371795622978431661520021430866150427047618032251741723430576043074212239148514747529867871959989765331240903015692263870564395003215833799562667140208156785292717219453628368395001175747099906535365942169688426327646257655282499775726393691257465319269311201444779249451869674196608342492003468945046302284516207778000300490725970077771171959922656126376314262413864793997282017741169061351427351502570798257757174855149197352961913871236727267439138573769018568735281822837018437825300184229158686939768823014668584228854863081415923311641489881128883256997879257516058160567268072098088144650015003939355572248345901226620316622473687142663589452170554246768064444351271375442156576284183562119729699048458399583097817112413880996129351234196417417187777335225326559017147526102281669546022210170119062556944355790744819005011206287166688528208805067495685906563248446737273261655874225666647899392900882080112115981484501268174944356092699938622188128010210758033871197799717109304463930850739070793738377716211572965859044260800561245974791407426518659698685328096341976158981951902312989797168898383562396429079190069904080113888168205674051307787757810306015202027118164296143345100136815950669581825764105825724882114286184337379544861068318570735658715385492319143544006837564310263443516690056556396591200003183446892655172225754407956348819960703200748650053527888332209768586201337744458333650845510502977143849955898183939654495386423821547767701247235491307783730175938092807532386871133785187075762464239347072798340307173869648732037017935893047768114351523077341218456623642699610017385537808855686466170448178388643388917371538077340545431856554993951304132388175888874454322266074469070880202366647424663800925120798723127779025964229547906152841763878996589210075927520826470636847766819171873245067878285351155730321590965913593893181454735145071112415441282365455076856744428439826735609529843760611616946167004893634017373293221245839990428974948042628098478855879242216403443931360297027611650460442782659597769422163261776275518824891743552782032909408965084079356898762242214683064654624860260840133762791466127512379379842616330762612834296853167733474756609371318364368659256116689024433143688180717070780099529623340415402655065991416051606313075849252931372275453000605853241977145077816407943008733358982253009680243425212723488460276740011978956881742203640288396120012461355736911137126322797065437394478002388883589038445902770010435001363553419379178210129792298996231414471548115925097389166769893923717294489111646803914140144619327770805256932393645531242401800027733254436552371488432427678734770623971083938291295964299327548295007968077499510731353071506346744143816689203981770374208864036701836211396262043282808672878394505555727623900377680893100934382715607591522594873019326880018652261785012097271756104961718902114675453915423672454313770491116839466124900777126916270536598956613636129873915037978583130959912827535909390828724656295428468283883013413956418628959015258335742315229315780827896765349144607112085797901292648017101551165107387645527491741040944439991491402375546792456935639206191196572487356071116552540117789926887076834255793947799713486555026680225907861839668823574414982183232630463165515958317988095976068913975857584358800387906289245120847408987777804633396559912794202472433994204423717959798615576008818194692631803547004829229145143769162056716930130505821266509451671479135368934713403617325404002723032999060365874241572360704096595752215084131144147504273020473877638813227966860441398545245832032774276757856867108880412496261445301463380600683535754101111324124823850333281016411285691041854314910062789129915743525475726871641955614802315948286352114481033359070601948953744851977765570448170216028799186603665866880476597483637879243860765737606533373597096503490777206601627591831678529120096168929141300932812015733182088284889787551406972553389474706883991775256665971043564050892759041575320765337293552861351232646853849418077690045313819363915436074784626873007872392136128217107204627847916030588930735150046347575368553982103421596865606965534300481742537895844244749140716307369295172229236966216335529772112780225718058592970111258989371055965583994663860618021347095352106200414536547440991533080325403940467873410844852836822146799826209926094033181595341317654999002221432109967464138800776421561490066840728563660940830185570376106624987728366283641139420103836704988373672495455990902547626705562326579370580109057537311813863587238723354372747036298910446187284823630285548228761941619249859866661869215297691533110135704820312465585979884416745341467459784783497628853430674340477826582775448652419793422031962920825170108483189316237041801667041756832769535528078833820384840428034604209247835433940188427799679305534343624405735554057781959101166430948118968757139702045564696446646969563232447379095646921815949884083558094889430781100887118214570497627562528627509259282174741999067387672542183727522409092210139779523890103534140857041443304781580523354871840758655187694928079654221021134113201982851086927889189228416905452237318206262823598758785159095234493869482938457437823993625768414483451275452767786682507301931459585262973524309060008702115734088967430487788604406618611609816673545924239364883707450374378374647067340895722304889457037291459234775879873015417559540361665571496291222060458132978460478884741046117869930531829758278019688033401763273811466407564044075320180115842833908980591076135871342579189801467503221187710475301298839538222586736286822366964505259977211489345940559255082529135122745624361880785848908802364750417221145577400184156137859388844600498786940294490208708015230935338066664118315241065004293232574173560587342863521876348124991134445948734442507530398722960581509920243126678914650653011269631075738623664516394569077810390491638899652485926470450223512927260089923538863114851210664983355189014414198925409072965336622690431417270962889343106342783549087631080797458110236141373266909750877016469983151311852130615618771014542007993120436752423315956287422319717618540709313737084509524556540604216162653763055857437409135024490932525822690803202100242538689144127102917892954940264876092639975529121682584189334333800943706844933028350417411579729130828157686431325202833601158492950366976889502893859066518948779274709398687128553199019884739689585333847958304178810718487603367120286896416993347291060767405029774124868877176090442527998755684669916819357686381087495914445569923486713404829794434901363993217348546734946652325439423544441054795732975520039589613125322611766551184943611539059551719445569710159806985643209665406686879482830914865619094044967805958415981567474414753457001662856184496618645792079399420752554583039745471102853426080525929468786284668271389098447583457947333275889514025318110237328278555302765005197207488869220138054753224020441614881186670351509936677846378351453948608565414312866793546659779947244617597296263844950694939087782545999151903857979340671151270441433439199164412091442769365310349707577855883916604005740545804444838521522707966884391907597906712879454058716069641460179395089135772584767409365639525810324071375364414522663013782237938400541778076576777273350110570558416320654753971477663646252370927202298051130457489938172267528727824445556732074446621984855186714407583315911585527314366851092243402163352326042422189389889569122423836306633921119896456924593284482106886226819809133377123509056712026589567353535034096239601263180091217484909907529021238575048191134353813640344039215891019517873309267946782523102087335984121631456584699488334201258502413201600328000241862733059005817550795824780648455011978409716830761106421955206656564855757430181205239791620380496225456553295062191395802369073852033378213329048700123757090819610722395104280897207454078487252951082506769474688538110326715250804939805303542937730145357721892446582956722725039158580742838278108112714305662583058185702419265230749715213412139223527851641654435629385751738940675226030159153836994392830858553460408383151232903649958254950827142877890770127747354710832926513757426548804660885337613212295962613889101084392153701379817662818504977100067682551469947953516551216173889532988917869276909289703763155644567448911680664329906326775800550947907599197004991346940161367767267220029796379293322577983455266188560929559841039636367290757759965060428495820664994026533470345012758142963116027873284040460183959157161014634470154447757568681277471213063419062309676105461228899372316682088120554691177824895824881450852688831028879279443753756498212473364742747478132342723734390738888789196725367001122037332916529128077108996178399012588300465513645318635821089955341816299321365089026333770776448819239128293177973470790580306687635886130738228761466383236110575134291445305421173986170284543487178892970396815202645440142109697250469202059352035541025138988272014383294432755607767925569395514268662516523987043245671328296342650704840908349150762291330458543880320888552727989359401207369945633495930994362929017811473257539544809496814040275339142037241980180882651343987707129633260072274914647819931954143746810987541556618849221433120268930013045607981182251469935152355051777897725442419367476900403526952286137308697456748775856001479233802789783669202401504295512459131645074696538399096313095758804897637906408284383840774664665751632025924953482881549761864466267100426926551152900145101790297355334055239041246763466979179058406240096571395463237678129708021839727065735544930328030958209886919197194252027608282167909574676138217014615069558210350075328121657919489895002228120556692674628692219373234170851075741661927742633763767727227822514661216802879614850019823898676833076389663391017280047256936813983061321773258219675566320642229416388979421803071461558574592881627851748740065479088496348283237645698125518398226051691865798049223724900182932357898347891533552829194725920536826132755259516790833856345083765020171444332919749263940000335189935791008920692431358459792123276495983887902844933158630406177691218545975002514425778760330861294222970554133239514063033309449015151622108939589451354449515284500443541058622254460918836728331975660263934111716321378586759201654257024304818866524790263674986403730845188823744345035421085878166098674486672970522057416420217655109582558166313326570851603354783830999449963860713047892131748325297280467868666811458681386675294006322276972782505279702473587720125213620887470973005565675958959982006201167481233444869313830425929316108840764396764300240137917662147617603130212771569522358033010593203283449583788110283540267317044698256393942483094118111985849668016061763236322740423878307819631680828857566646300314997615490386963027521122832906094320573775974608729315043377434871486797898913238303533925993994893124005755474401463721117111061814527021158696627434395129293269962479326564948170583646114382169384213908681290821662101766713692967905252520597412864651450320108484515791474870659010405248535375658581960845378078659124013277530186034788765825893212614507914938365333467936967081338380511980124607114496642968345526489714499583548398109293951874114815657399873138784767241152403037991466188721815496977690309658413582049668577688775404429335660809104846115566670970135136275231176714104531981171899852576958413797634065663951881837865079640302588910495542963129306696035990342802893518538697544348262751123188553810240979814955036525847848424345849688249893968921765133328628954407793367676066889527948202948336530290569809809622212245327372278170517510433970005988798991049325590306236698904575230889691820079033652030902818637800022913122720479758768246505177668259303668166383530023514233561047595399667855999439265027825693767646362378661293181836935982248119065390719139758507856174788395200174585742135134787026472639088649134519720752839781768942043264502616496092693883486288742400713736682240469898362488479190243888565069583829413596619799756347363803226939869427691301015080407020971944549785380420033856654509229955589975949074677142543146909459636475055345054416972600957635021817286905895892172002321576958115685171773974848732254177933827154550675587450190937816267999143385910690432736209883365738018770473065375020231122409041180260816849878242327276558654022154450134331335537323975499115159135905388026254461284533361240284367662066327807958272166740480352096902069846695541365722769128444696918210500957206880232386419914940449941231004843371318647235583789711427867737139146915919763681525067569419002355799998467496769322408936466916687636012994314385346352562990033363155408319678463163069174698115362168287014283305755188282870950650188832540733115116535432210396025669497711747601248075616577799586269700726831174322275031654102847465861739182986032560594805459430181275572032967735555556601330534122336499692868704169194023692414026461705283194907323138981804806974845060236988213133440435515145820015871887408727331083025841357584786611848324552280429842554611351114739612223612175853124759978471863826176582280950359652959513079249261136342002865167585295902036314561931131399434859448683950533951773251351965229994141297410352294976073278539173179092328424172020792921887346581469050243049346618551481271590482942020116329866453328129809012398963098884144843608423169663536876384297497968330242026060773683471968118335526606666026989678864776986874392943359866399890035539197933853879548048416257682112683994951863040242496254360752881337127829369048983272037640940283000113407860146609707053549977507100528794955709778559075274383384208148440162364293180285022058003738070619014619853141194862196687820891424269119196853288939634936472729377347288421413359769604937588916624832433406936097885456716798090196106263730769070497069311726175428362475698026753897751313271040476639559574132825109354547342830473967673025348295710550185261256670012739591115812029900132158191304753472945825694010457466984931812393613028722679854824008070712178880812895903837938250353301365164568443601649210066730629638378159511001377153719680158988251716312708438291260343549835424654463967511280754132694400594152875878096801496731972713379688622505225756804879462760694370365415919243600738720680903693108087166671451730404872673951016088718855409607630110533963905410938524566617087111500088172994061364138171032952397766823154111457933365041049529330766700256041165517797514292236962702524426026372858948450853559084731735612857428969104017527919572326169011614076982782489898050455935586820060620544068915597531307354203363080963503162723815082542220835692324449267749438428005419756720028593403102690255281180317815887953773116387481214525189882441229258323060829713008084182856611973844126438364042172446359283347298441290817601461277926430302663940731671643844913475670311165222739880852433367393512942773593288495258677559551318666889581976338486454338190505272563812092083788019922473645244762160381506592251935722226799087680082204725266473460905375287148411119515354075492619873528207244520375133224749225984084449965616242472750828775278600797448885283253321906495306357628986005648632307863451361637102249978936103560564989674764373412924253328096921031703691437147596047961334875610243603742116417723373534085778810730619852068676840538075347858808558421671148826477739647830030270973388298640169312516556598946936602181047850850228710724882634138524345733674493536453985935601873120795708244878223396003228357661757912712917071021807838433025574359527467576727600059679855523972123216241597765750158785040635295744321291561602392685707179311386717419905500730835107888201211786595135641280708516572488591368604829275344296507920929034456187532711787317394490700852900995483044445957080223834560092846903993747543295711070316465092830130994235888352092721388652537131465564942604861505547249506647500317374405451061132496814070071873064842876557059692805791708933344210866261995839479884321450261672403925055230564825464858298868901808120109568344123861517179496513829470739111808701876307626828449098897169532084369174241397263946156430837104976826906083465255058267496019166283846014208582764594276203330205370870825133048181822777795259344595826441883744925860651842200409501589697799971736000801175584374745888988157724263097175595957970226433202365576653807490668966659274880089888109804308249804818644692080905240106914760325319382964972594373539628420838776099979347960814542558345815976030517346877050275596679614675592714226930929035170202084300366026010814015095904849334973850965824511092403879744495018607549940141828554968118227711964985109562339585069160997051208864709395006841322324668980594116253863815695668674491383567268495007803199028839974407732306151924125401259558539554352302192843194122869483069097829099471109160809760745269391803381626332746257292975231925603936386573822237557752981946915065620558105249144121800016617231349071313681416436972515995304407142813105096372073152588060508739481900619667197855032726319660617185975320561435990454488239729654425388333947722159715669505884571470416354042565332951906407924170492221200522953796284690013131994748280516627730925320371754314339918845081880591479910172672340261181019615873120736961736059242067763096305322305791939289126799339851513455344407751852309356099333796225884740464029213252980820400463201599951676043247145639808264989114914904243829670208897770045293068783298402458888595667335130160033815423151062812555528961501871178422713863369344345576865090333975723063729388986920393830825204168910544119654938764351750927227224059250531403091087491725667921287408890114572794119113461898751285858589478501208682633759745874704235552072897247756964124331784034530118660516172691786097311363475382758403210534455248739002422840729189098548210634208675808529713787918608965785610967611895392499496572671207002808302142166983575799355523025226146080206172664590967860338114501427214721860945624467141413719090665934349694662124807852054393402228118363973573972137344160779086894125608956005082763151627863105290433248498167732517070229877970027682806636597972567249387080813871578536933109406647559911322053240738138130130682944077421147887732658962365933353233142206355768357294767754771247086469622417459708622727626340114047781069526888065732809285220458133304614693942406234752931737459913285061648680690881709801017824658358386547276869438474870062734029021414362110346442024270490242526593548637134781585307706403029391194433239336472861709665997275502955020009037445059532364456488651148215913717257947886715259754379202648749648263260447370158347372389696866551482746078012335146534345713738225828524720023294631708397249181193141153789790683784911360802848736693381982696848135514747191204127734362868964416872854000424561464738750390114803590434134820396321071181195385019658844132557873515778808042796971830467416944091625070693473299097570253677700862039877586345724550800949606416805593636929995734783086682489793136328071400672646747316463679691250530554937309753692660885850779829916523090233684380562712046425748394009136863602773415709070195661174585864112863203185389857052849187574283348492136172403096134687209156467593169537431208891411219907008506763129619112148154200242919163322406014041473970488295682499186664437317988901609608743485942569721732308844602615732900258619108315062014492689905921006450319080931368047908313064115832391478535595270201100182149635410584598330193550651168766305256076490533582950572065536406195564889453048281698592741429109789749046502554875500695685842356523078894622498951188932706432299975579868342125019514961239757845182398975994409012316642922730987346162946916379647464278916035115004735865914891588491603260798456074325588004607577394186321103741393433722421123090418542531142662103115384086134007684928801414062248260319585002167063122784951027990260592895069920939560979366528769236868378916087393824713562698324732474732525813505364029985903243209465258197254656215612261247469369800159068467896169634982234206349539206070897724679598994429469684053516178933716983410120366883136412980671001076186306129789598676002109704397138488300108914827385329085681279783230103207018833445191878886954080147828985342547509750076965869752521323548196655177728104552479206810286370140037732140867489240746924428194652884716931823756997615801028469076149324782344831652914676018715851353896717758927140597469631984392784475365338173115684353137465430198542869195824732541413619372434948587612270371970978236364317216259339017466618968501766381366638913525117942373390819430897799762353314846209388435289749210933960607863531819120898831378599397462353168842356329131356437639621550952123256315947092964127966854594717929462107001047502038397238833217023964300803980608241286978722178119117264527469663475130460093187770703548296602586933343344217559786339635016473739257749303810718879879210141494662630960795093245080271323535541260051190901447933398364625823922037661193303041993187856745619218844525175108818627071802001338073007116880840880851196518702831766659930958176811876971053518348815863931633950895883551565432136012391612439835014266257695054972328978823396688461042206123319731278330732143287308148239287914355843494444700095076953094619047351625607210674823807415998907327579061723673804931931926103432719173629355423176842742711940477892289267522768915902104188310736185391305309694499858800909229841095289881646671048568018624120437148283812714711848775684869785568505179308065788214570847584301809993680525281465469025199609335532273601471752947421280908120421481205643195704831346082104818497112006700755786314375060546774459665288147988993614218890444115225994081782493506890505481308224436794609249369892862595641753639233326107105517344460623210322076680555542814664778793364673642561563653534103908959533897404847684547733052039507583676786032981765149503444646611542807764035797457527997752988606103742481548020533497502577452117390885770018915627942145619794884211019779525452689937649748141851679627342742089961828991086552761033708190143737025584896565945350207048561070578604394578120876271604644976736664201666201415951203594881352665299880478034987081023490397896187244738249296688873566332927837130804527604895918181476179295609432211507744894509590322438311427997130652905031496480571866720084974882686431586177240235598153667223025883865280032555103074229540934379491481061958600213615390623831829024900896186959221518122730893976025078491494105820418333917640431813973323088130695970178706046434723930968001398295177993494695269898836821631887236843482221073117871283731993627817251470981997501300156901966577421674995235163622470736061992469198794904075851164610433120228466532062074806708116297729092258258588757594415424487675643408634723174792518137274213762952738963690970956665859967999786171001773702222340670938285027339699370386217597279586084100303813016921175080420112713206003426149703287666022483619235179001664756905210716583742619450596324380551829094006078779755689147228918588815376365956269132159605124283366179102144324621971356865736752919886747606577145669372025309666297431430694386776988241814274298625922471812115282702138688544530789843324757663811998037423117841720655172111505649950528102013635216906620062986923309497398197906526073120286613822212254858459370901698417584485622727871928027459359935859775078615291520925340161604036447723371647780551938591215229350650658809608212547509296649655862446255066567646163869844977497187680688597146779060245275348364947061284189174574906612694870250070388649214768919783319557760510422223986225116571800197205944577722550186199316966144441117668252526795346473210054734695436272452626329023086437854760581824324111772894318168042007938638298781074816437524796628651510621396114234433786972430673129898506334477284194463422371956445036820073635176502687258854959015049291295828541093730950008811257882427353285083178333440742534995426958346997014150545715643108158670556372862398833339563550817476479021406824790609659358761675608673453249161804000931220612676287811138373250848351671831388434386401851632049503419886730861396103987620104628131981564163475232940259456437567928194418176072136559277966481930582487437044747354421384260480071793538298860454397139593371596056756056260000046989959929479062854765118120651114554902952845144003195046539086085443964533265822413404413001806683109172176252856392668653630474504904647309289477851750452395217673008919735092714509542187627112892271842789708710789394691518669967382863744499930282578727806842916053654748504896882243487929004553199466066048049212483582383851274728650602578979963302648542900676417420906792453009971769565641140279082492445089882987773427313078941150757884168367536956026664886466963408287924032964647059845122385883974443514642914359496079143594133467656728377297832263136009927482259811013753322332113751819537702627448535820873181899327788797128698527953377635041680571392870240016058317843043502362598825907545532032066311074824827649487904494964001736115236090150819595363350056070342565253699055077703786876319804071025992912041774841489982210142573157515374595128087176757387259709171897131989821131822295730936368475752054136711999948101134192894170100801976628952626151966137618766942161216965918490003634493269737128168792961355316204400213258549663348978424384923068558825104219964302458545618805287211086623524864932092771261177283268252629505649256277887083488488616173170314740336026478140992403223719112572220702588310570178299677084273902978559811574214479492862388815563140922459788638076868467220949121789702448750771373140967964696122676175485095521666218197297688483684951252063611795102803430960484913054116767121559942484429497671666054486429548169169118860550401914488084805193756040972997855282949692976334098979740472039629926027536949947061809989942588172788854907204151232329531541993317053411673470878872441676898049594624648631964925429906047744497724460194627657393928712768898853008757298300302802158967584121457416262878558055606058717742545103937769355022696027693631679372130023150605506051570492351064545109528830115069344017998839889420139531608648516223362810537273649130328623123529788921009912426132564564418049362152204158494784903410022280071307920989807069208557491022033770361900096706674444794441416611635007408596207102772847016899315533547161217124863318036088559083277333143744212937971400254441380528925318358550647241426152369952136356561598556829495292716153976537011228739113831101921513878006685169224650452204456113158620557950769789722633234228159047157500753441676144815693829541777033664671754995852409366194034070161094364888780790527271463379288894752210536867933886879460101524430625040602770519804679155070962386666880594296738874930638119314014895619009009560007731301418482549432531675045027038470586300960103022347166688159237848146656300398608131199931254356869193320668195755141196527752676350716238465966414918061615484055780169534160777560438063214319484369766428311007890692076748732177930529262458528882178885278685916235739243960950540023575216959378508516883142202171818770542584448068366896901229343441414594545318965309188822764957779824271133341786762730309267519854296988068343318218043596798326897620568218297755039402685327966623881698817734833802634991494325094764220017976980288008717748877517660307221703325878929396245430307390747162492298151896457069943124926360674320032019142708983915531435473660440948688914067832329508295196064566401983208833067745252556811391096925992441454842069757236735866279846207421199053233255759568037484601526113448376682414131658927494836191380015818694015630858813822262181842617496101191102306619283673769224170862844819942474511664588088463245352627389368367291144357784100209350598796563580301709364227223370692959176126467564221399907321080373360397698412445854215664515753239406998058674717488735092971868275800357689810231467435183173775304269954954560376231228663933974696143227540878611254312717640229438830525370366549540188699445841578197443102533485328405834900014703931386285414093071861312430989336905863864860869060702509144940261111549267625347557262275450238749328112760603309097920785097827421504774904552590900494078878077990071487200359896306918075418741690738900099793979862729099922200913064830539186745869578848262344297252571686399195976971980349525796854136676152615728481680362631527916381874247683422179493383787443909258398354678908428932615240179822839555841522088165756578810157351215481100708716500239717165928485619912137177134744871766964418388425880135737474894508973133195829238026310639845928276138350269289500550517412487367556739120387698148591774513122152658983727402058139710727021421829321139046584624755641011640474659151145329919508559444781573257205573204428364658831701531263671854142273730700449684228377121915433321128940133666901464485371779626653404710059644555761663649034270348454491158057384777462764249297221395320210421814821608645873128609188799897298101772716688350451556154704326674798655070207609981911825965582420946624108123514230543994618863453356287099317086086204678334906136650180324796887898420171409914097209114809340353272520110743733955150320728382840997228079641524124438296673085386733734098970251622775163353117912246231324502502451201229350951042383266634835616987291294591067680652778682346322943708959254569897587639956913828362104041460558266625766743561211946524809113720180191145233781667003660212877318825245091959740294512288069035256239684065597796795331438244329298018113552001504283605602779211132097735923069718110205822991690820732967410972725511896744438287807289646848019027087336877739579232065685024400983641037209206973713066197933609289591344476777438558328524743983494014059243577288775912745610719963348253083009685006543166595820528536339658070034967671045896709248059574808387642882112956287187772965374476343833532434423451244794978265138122950252725002557660426666900022696904428999145956424329281541653109817168152864623365390292077937708232365734515298154037455530656039038787097076206953272889934520831429083603111777058220692650069809264908576267868870690551328614782468637642994900363550096698752985918265562618267742549007221469341779787467651250627057491308595308597380127918615382990067943272284397970600753809547255970803833347317483993039958238163814256770959105033610595182763724651866441568649759419622466031517172887958967488585298675227450158400940558228235485610522409145928368589603646762474739254258735995445278118343725630077588388035062686493938507605542179901436124778729226213320214503888912777052839043353858074390592420235901058568602639430838606328950119932643576607977270392774434003292620025348540993942246182340855329520807213293668002426004833254782936601587763065620296584989340191915309517070140204442679469404156028701167320141782480407188169046194341136397105790154553056578992333689983210795036902570445421937170938381920333806700108073670710250571189186456152297439828005547189832521317024892573263446191096087680227282340214331670704277236559188769701096168524037545258726048590757584875510583597505580549705592934439227014889917144244270629215297122349627701977310568690653853674348195917979139058746229828061592973573992041633364256968267374463273255206522168668787760868090970156516293159902148576397170835662075312955864333289766762770255443306345253325958295180140999932889135930975002516611224276967426625473383389284285622113660326755231458076071787450694952787223352495391758811366468677217187515540479922624917327497190701997199110006093416510210475053838403374729533304715438193237447628334233512418047739353971483200538715932544895332072004932449942613049448758737586009848081885545853111176259486552234234969135400838979659263277888396742718092708685876764582512993347779360199229892874967034803349349243200400096627621834066228913918378601910259857075638506802430052123184032875843994663153145642666978107479384967679086249686619617716538467047790879164607535269060397359371572863953309648588763031731032217014826842160657877030941555753660098539699301288119272495070174043200530728311410898743288147431092539958816131210756712748502954741814945103692876730428612997322064177314215831249851942910705497180316126867900653128111087792707065479212116918067202817603394708292784487637230966424438797315369753455404879606865888844183782707709292111351149911572449674532009160380894086363928662405795084940522535508080430757202532429667520620252693656512203788044339469652747970253869491722130941960160535370773276104493316955830874097300846857190365921851778193832659936300034938588594773679488031813254741136690952107838125378631400081378895528665243890525170342071731270892647613402334130373930322343295689083964468540068981227517709933206242253812290240384345408212974838770040744784224656157338046475651453183616638558738745973098671779623965316375801056158621223923782502862769816904198644990205802000951924188658854758205514506171545164895757364940353345968963727504627147065314354772985651262353487152111080796219697610933319462728127870050131530137669261421717193443197676745875060920461642340948679748154137268523574292565682378663814287714529089627784163629420589280038427482227945042139075310019301664606610482697882556409459306833850339583449143768184749773292370874462080864696197461604640352514396601429839232768352785502162371018734490679918228175032978197233093076878356238253219493876603615249887326199851710652754804210145329613209689186389524439346514701226920881110221705313680765012983537065472254265478431585514932244316632413586344163764253708364523585235695897899921514995979954041489255333864277334151706870018294065262670688690806671531261816165311241422621393437483202418994668727831397601636717012089620037204113679801979704914335900421830680094440444489362757097329712258434436040761451182768787433733376640151086296140363891767301928637730654027312583625581730651524889776632913757508618310282595256428029789443474555173192681188981764552303865632857680144613778893268015973221132556895695143869332754223113913684213451467810807595969084162543175690042101804080438089894850532471694748861316794804154575858934636794322288848428765158327075573887344241865263902935405922687621684114185488160638605742996158173667488774493645489920429149037998440988322908257377147477060859443343418875278174117639919189729360456451844780971109554894309389113498760270238405664274638613525392624057151138334258192529199741694623303585590386914702977786356087002025453151939685851302721897811707098528417651292981797817096124122404197282207750542941463584500442238278947360175583666224056885506507960709906459568346625162904369340438869474929459140607094840252135277978287389000369200335123670914378343560925708164567489516962831085007611087826580720509558126038820845307738851876485406624086832853556512712331298261383924647662030645357062396159673154264977304425675850503741282201874884933519549837483400481261896544990180897831414429815612101439387254338304655270889244053022295897252828875833733358004855473633054843287469298134695633427172086964676486047373126484692224516088109922850251618087758844775197504547724251081647583701401288391774001498560539313736465592753638528801379862402070327299630509310874755188981204534401407725673973428220772311559830872291931520477153397557443838307077618410810439200268461361075527049482134567279160737862964221922926704142580176246990555582975290522615959100583515560367731772225496003769853134898678027292612782854279605946256460057880204762918536269471301720633914093752794734874892655517826125884131370232363091314772834866206975869674565670100927808858062059760519943294286592880740014862923199686195367452296863095637567781093038114466457447815713162600580746782010516068781294908545357362990996052181583864791688058598346328949267810078395668530644205584688834565426461264234764385810759263281133772345451731792630257974483412563043043547990593545034102396088642951803024799162702348905556536511544829234252979664406255146174246083824192756246999045677205034691176249005274633770235384684739561309070555684804488224684769248697590112628987368686493956490082421737155103155168639514847996272899845542644898433757784170383816349571007968578689895786469620175048763791410838823061669479202654470061560442105420399813546069434596392906962693730006692272083465294745866220356110118890323823300697909487738307145755396126962042864548536403954349707376479764746727924488681460882265530113561048154110307220180256912502130651318939346186538060832554777533948277978105114562919825969811508850904235210295368926883598313361645069980532106322940421148997352292551587552829412208726468419647404142090226465090676576596728824139433397211973282708652195964083931777565707417505784267547334702832669936783860766021684756388990621109996324922294790787615924141336670426791479273404128093469827587095453693597328322615964284942984114835578114905750582369878305260670161170444459472158343277887292029815407884871294274862755152313453536901671493476300349230490853564189802796657555178671790560582388379321714303217170001190141584175024128978613400495938239964466160520800170523036958800769987278372999955418172345715641841328142753711229200566011864470533256634881462638718029041936474955754924065769175195947420145963687107247895224277314740711483524071859150478558190556573856245947598921456727878797561431115287858633791227811421344506264379186647440285602308314113367707088722631014249306245827040355879797515561104023232014621687028458401861058609678844250485034952215282649018796734014798585054976446258811584089962578910820847589579351092175578703758455938049125673909044077851580441440048594414167851174144577744021228111211000006355938189119709505898274611131813439983559177900359118531247881612633527110696270112616928713131841622095843382604074312809208343763164336222647328866564856360176428577575516365940685605520807973285057882029510264974350530017942523554418608059843210363078228390970760638046397965998090228591905826478181055668111538517818908318968772769206250626979524205394114590628897188834571792185806397613782272734902129201362046022667751982883055106426646223629180988891666443299911385091491058508842194751549255439691358852729327287782249074127509015812835855557166180172154014528026663222257349254178537299412448938838467081378641518640575196560008464407714154186022037049035348749809778349237001832838626427116640208480054746547486992013482977354384429752378023885631496072050832353155608881593474586703500834120227038966591588820669443923870178551457674135103906311093573015937413329121722212419914945159630869162716557609864132118227632539972986535597842033310036182487659632728527009380837359940067787967319223009281110125419075814050234445915093137717512272011720942914963325661446373454015462432741798763594848544790037527452613748317396567014277590572986304415317922240605981326004128412284678784215547114000114573271783876790483945133006797529073142132492504714197715746609108785769109465537895491676377393375230932045151524412397340712735716356546453187486186389303408811076223897209943114595555533545610100973949752000881967927032165424150411903398229608799752838662483446814092677300641021927602486304349648703324542632619865181927595703598515055834295363921850522187826315350035701705422831935828942541037003643434742301414027423487829710847518462917138296123817280254528825816821353300479843030846951478746741827380025594586647959988375835085727027980582569462029836433039217392883220446456508122101708360235018742063413970297310964369150305520222401337795154583192560968557462456777902527059945601066398340508002115542798475602591862493381498382700820910503346085751436912527595748619807961052294798633799737746862711954678288136700847342562439912058778422853318473186823669077514419519762419963649708749477787846508421050336668857099566432453468607210037970156006485990868384435423890561744453924384422566164370300662919768221051895959479118828607214662429853231329585464455079207195608763015482271564541799223639399674084457923336098272962174284985894862229692995471870152363158879498062931240506194092075207633901349962598576731398500709082017615649496269736523629871935183894189258833255659398888954253187569243175093492496722518926830932348928677190823131611420408398913706172207849600234333757129143517797276141011241728891126116535140615991896578785441763251389735926137164831511543488618581213070949800102521432807030088658682796874930674748084023813994229663736984085594186516901053936121967129772868521271099592973690483553456547111329044805679621530892440626242679397667923884180670705269784090978113446513387514257345813695231369859438189565433995761899613615900730858636212749082022401331480110602441080886825881368560524657696196978993609323212278314945251242484113631576942602101047417541067939795539898528974082980954863914184100237378810288697531770965303584567693105492686285315523972254569144053983843541145485973993787631985173546652107255288415111933898991836542183851008531320062715277181881993155702566306540797168921074499178685115650463818681408111453715993537851885547098909372168483402027382396494011075444594475111135631414288228960039039871839113967922022039504468309599720340542780514832704419441297792490292142263354747080381342207921340598621241946473961723807072509509833467642418064553279521035255657365099296368977145840793109088508651830262534511954454391074755779540888560539530834198581782434530873837201636088768541521196894340746811924581469497143672777686379582129718400132707164840822089671480879850909997057341756215015842422208092981964689302593311524731161272491280084083271891409144459510519787277590710227996997047644492573343407229203037395095922422203743421986617952768361238680940188119085878476620632571727438311331985186760114785538303903749206044075590295073523126139816026118477096855999398479871528919336198165161261064064372240151573397595141006126253082443231067830092227707207556604527584488658974960577859814590405548347179409633541886189158887855984294665164829809859758126746675694540488595288178212520796824465355304366777783411107404582640150004123599982397136207169677990771536406215293225665283142346739332400750146770720442138437882514928096662569260027486348510478080709063156140881359701005169667978612199709542392157358359812988637419386172915591617609511849103870727057761088495263254955613346839424785126466083708213071094499479561501937616174827988610686317527832796406535359130251241558099258603883803259600284371181493368392600192712047214372310303046460230740739312956859530070526978160281496917966791188501766598155144629422804665172321891532522909714778667045581503260645930765408259261573890199477616110194205020761230231112219540536806440860221656720694048826473209257435954429321894556626307274899599199460798119909136892894974821703369787194163449367755049115181949223849018246710238820663899513939753119356745579696282479911346086392586247662129255050545884517933242512457685256086796161486564974746790532052953138681955528227349740242385817759446941212143463122358395992412641748615253359821218253910985727691667124243618493692870350407660934889562784137687617671329537575810355534571602228158398673384492589111970425029709511325235687863478809697647707645176202065791136037163808177037341066664703906368388231080458474211174088273822241815799325345714164930429333720138915344895125320238672474413935342687051096783374039483725137411471563435420055016986489173869499791057027888631812552614400531572356513205580028285833607251719449063944880026632136872535956775023713140306372995765229954334138245940075748948452392179368028556797806312881456393842356796760807960066050015067496920377139543057561732355992634799718257361622986765033001235972833979592917210688741542461739261954222401805157211895723172849700214357640476536489197634642853042928602500558735271637001186400997995051891368900298077586494624962388009813767369237785247833750355734601424217641134525347860316676262577409445549190769064673110267172350732758339013560159286568719047743725822866301585976343422980788891936453508695857010292278763715204554613919573735953018316679702530140649467781488362902360318589195747013609889401559673432963438812846946946709611116470262229546353767111236653622877072498397070645045305845400780044847290381366883823075983633930894634126675274877431679116437259245241933469818463659857201996221873948344175528517533973695388462785639107880441019246017136216407914221830924826209553513694917902801109072954265480882372762715121559313282505751184153564047636536322870315099513921548357720017038898759298934786977896104353982117175141643987841022115386316779307302951147891979154952446195148443110110815134888606561314379674293721338411889816678593909364079272164433449309488777629270273485688098200771820034679112030711658351290849411426500455186638708655613032275568808199832765790684655099540258834549267356033295479188484760279189154525875952303457494592089496681140995629279233616251365810654614715369606169959657462800866884541203714378682201958593244782250364563591524176929241444590615693160954575235641325947005953240109683336572265248224605021359300997304723950182249927742672011811451379250267543144593562787764065197206170900775662298173089327977220057575733039906157701725407715115101540492246107247651277601067689036509335883352155009880183686157251512593533163796818136790468816414701231973849161482881254650587565433653607221189476016222811721050467241094496877990671074314434712508263172261892092510542509003732352802392798494097085704287292215928733100518421453314317311921539926550989565625346909652286302010751986333481720504592379040462133710960074886539657517945428398625930734091423753563646005234720468789370364971435388671898941446447466394895525974636285011914523838524243381023130392491784490800721678857601274562928651681525159459799648505795257243526151939816329847399573169115313582805794209011145367129026038383422101807364587775599706872811648854281683234485584454653209378505373244403780454532960984278585307479115311340308378964678061036065341364464222303657629170081172594836902145116743072885094005702106851963404267098732628511839453345318727329364825795722833519442662186161015133544331864642252344263396381023936955795353821368101440096511381481262591929844811174739081012465209474443075061827348763069521006506089119442222289756489634954683035566999239571552910014043145048731719074109636247659628090388439406957291904147934226466728853784543436378815201215278456921699438604359073628181313381762575427573533746862974518169891748389475874900831920709613993912399015778988863990002123188815932735621653577044261703445290839806758222021471181736501961241847539518586816181953550331156954836053642816393304516599154719667016143241265505482856656382202328361768711035856462655675398313172605924206394590444755362721185091322444383624580024048052641992236486015132962965452238674530711062637050688508292404076917386532037844904019527061523976356857997803033787346964137011882394216200289721977828451449441282556281930138535701400423668227725350211210401202227230201044494399993921683051716215812788754965251658650064726993611940180259951831188656261934445314924732630261514868680427450649835816874167217987340807619575755648683567587510623271494140374828359352902255847578776437647425747013260985807645158384802485201769526226453579316137169956669863310541923886598680596128865832306724082062227723089008399566055358426511119160445963690719556755270604893070279946939784028332568691568288290363381223592404767430770573685652823176028852962278292651305493982113827947613906181046412183532445383205699680775351680078439983135223678820444631564507789367574493991781843954304618669675007576278102946115158524427955136602481530266483387636695855332490067276678171326968628262900992786498061854133841602098362987445158974274202009807992009370149458057746681541923345265436083278233828619837815076207278508813087115826156252153275357402128657930782341979057525673257330176942233336004064688657126238734332384093987258965268107937457833903520973579006701406620479915696783677353830106192840856253452480915858687241007187731306876921968224069589949866077708373703219962322877137535149064223180347705743895894569609636241850508609628112924215354264097242094198054041792565772583016022276167833606281647442742442517764505006903302165104499415370112704347379505594006659096444989338362789632393312777504869856153798745563303843391761394858384718906001317455936197228198887868321692639773006631485405445669067228006264933779667625484070364687972285014062179823706949756235914515467648509004716316984237409641018573414028500610222061692438295205367815738453713715376530425627498848206620690149062630181458354285584037382637331052259375405158824642102882156744453689528195996144482393270757079419468770568260004006145956992268591197443233281856100229323368878989414137719615001262038902932428162180288199991972294783680817150163033334816837177569358528895009336597904710503893986191608793809681853786240189233794078897640271261897786709239234227022701728123653879405770063945017426864508533554865382230289551879872803318024295765629199697158477581228088940179197646135925784825883319469135219138566156221112071452223632440518855094320108972440087246969322370545251848383753571050114602652349072892573234192372197799969534109143707398165268857105018968142543612691823120036232193349872521002236132130746127752709193327820863229004980318753488661336906896985155938352924012285799176143321226045274294607360989331275153783425452743399057886013144958156568743249555184287233373232627918057034025561114447540616730789260681598707528520862030476898492925470840864079108829457192432480537629847410222628263098055886695177386981215319247738791883299410236463622512195709716197308960408191049356809478895162633510852833311531938894960922356582295860224378031155396511939987327293427246344179874810948497751645781353885054472129052030997749115281404791331404388845919617879795990648252327062103681981678130850790054532256295591387437883607281280950947919863293953803489024138753580606135279348242015261738028666814623182393569271893972364048149093669625594480395975552522404086004957635398743872410221192058891902835513845931133319448268035607914774408401648145798279667415743126173964660268601223262290841833896449997961843812828361479442964237800037168937913694399002704054619468396416934528550349710258927369850502211823316601938274001823476788297974842028758806691325946800149272164473950708542941957220725370942842042076724126299402321936376194185432509710096140669197250241046821297031898643968906855654894090794259248430683938495331825473557039837448218753235012902571455107320994898378256201544148210003424644845236005202695299811048672493373688765377633709493848199342249939269847808272348458869476695780508081399139474336438398016088419990984332448950150631937862172798535934345344179535920656649888841664521125012897811952442214358805976267955493979623922602165158600229993000544219168732032360911078662629523931702541051748697821477135693811998843501544716357521146983925890333010115412055813382642190670269026710604578675504698174791987486672548295319441121104757962481787589538872051124362014617773850269057303257430826169434515897844316955150020600622186121165747278787282983724869427700367178732238567180622960793006852543152915286714199686794124078319666151505729602695200677038550019140994963433798819620522314607981289099650100781401696705658315818247504857265283859773050988994972231479397113673359747224647750005328660605973607730461748127682336317559442180180296316264367030344586015711281387595361028387565245244545785474361422349110314749745781401947131146088313579414771838368641018230700353750084385038057974261910558560504544364934756033463457456438228264666122379352919742435013459426434420314060111849770572217475958230233596851711527833630423854659042824282702402568023233841572843656868595886702577197069359204084178374479686074542479239065439862682921208533411190172167998232929002495034973924262458391613987562294956320375179439539830823922168747357637067526607150299838409562204258639415185765112370487125230248702838414741302689148512909019698576330569641295502005501384166363389560168935505806647236103697367571307792469898468754776559860414053490410340874818274025327093663767406260921024372369013553854284978631695519537962158340895662502025551476750618458853769943532972420049202576790022219279288703296557558249820405471888699275179857313714159008351050867495144819853634034932772365783327047336529834934323760206528995134621985356243461398719175765969137761582938071068198335793671028163862716480781775299896475515124561207723363108963258507385477041891024708820318002739498050896145901093430575787512061782796266535406393013002408808536997574275422408380568639977398609469134396224437989958825351716728784313104289462835865680301549549930768596526723853486732714499024201320420239829627807768726639379224012531285637991056790378775186539644311033170188548403396621239060700695259249199799422445748240951480983875680368912975606511185408687623494399273155477931150944228255764312076886127488458068891288491375976994350926612818880629076029864791419396784607861405082096249342276559301663632107785297951086953498429028991893225631678624962183418958006527866679329997043218646048171658188155787688088549663096881915122770321517148841663585721837294220506748021656393978830609732173907978266502709544025811789406309721546033587160898150657737192656698547870311911272824873250978944581025207769633812275020360887280943508347093425854630212047834214820937323748541951527584478148078941321584151352932245744734962335346708883380421738172576298872316312797551496378440695819438095453990364654496393887803637258188343318606340389218533542347553463703231912598425805893917822942855099379576059822301420328840168224485119915542974013471451281353130550485994800586762099211997757443084043044257835866122000186078482952189779506213458730344793010800154853450107788033480589898070889178299949067992067981045157914694041626359566447361978520308423070554540884125761949034287446323807962711973168934548242074099575833046438539070941537629958918001704718893430133291711695202761430640775529627591015705456033935384826548150153435823398204796277951663359428409975445890430918809674352090441697422919913484751997444292701421769111233049639300291091390280352071731449490905106301096585738409112035314237248714351198466906800066492332543480433844735174901215247845722593781685311409320611408975214098295238616605685449509929126955351162629431243044400414224869613123062810425811952703526222715052777843482002553389228860311667849391363242016969260354884120850580478384912236181481773116354498911480425060031543317926831104626661295489383232731127634301542203063702125335238910030516990788522544625833854252100373705898584332248391454741811547890007887848323204785438584118608300231632616162579416713740515404213936327427854996997897525256699583601894572801839078764445675426516866079852073425962097832744712491351265939486518777264704396377627166802851619932800072496294848272152741234307413160349882807662554806842342759287633758693500507573398739245208777913858054653723643604356927539924361002151229805507135608869655948855571784866952152512019647626298795464365840082928857735303102651531066104481739321330721629771177350683939784962897683993729615635530096927344545152839645084400568523096345419828663480405485096126292344177595486787701678396278851713321961817455265507436620117641007689162248799649489956757355811917429630504534992139486434964608893791932076423118179250725935411655302900105021587469173042049572387644487495291307526071328837975021028795113713901460836091311521236282237061383505976930216909021303244095535646918222717766452098194020724124402753854551211335172934794484045020439087679801125667930638624587245276066567235762111808415076525168469290739369320380197512174856363578298443178604743737809677429934121879587573276595126564150934759887536177072771859695994809549172712755839025790645601971899280825938204214426980736408638634705611575391870285167934088642094149431416050834788748280472548998977216886852818019001922213284098404723663975891807026903046930037876554459597169438387218088707917121474126455269945180768613993668781399118759205029730312720384102266444990874365828774160835271330211822879534802927164671613466853201990030502530208902033879550087056332996195491233655462173800069440735728418826303679871790383500264755237878052116838325330813500531865247773977536209364602942368473027775533859932180077320275659560220931344262849757207819251174923854390107572947135290715010767395771398328255344216956268009460860114489568540628684680001782112732969511255445071006909061284242664621767879919701521833296693983657931456927599639415810456059201103169641699633839436941062721343823512281824401979431900869063334712035104409610340597897487161485255013915838747034172153356467856259524173409007779942979065393161770187260687268462067430799806902222953187727448553180447075921225731421195769380911541600102663133811050393790954354949042776733194129103812554393383946590409646393677597243023894844532151000585479708375238896860397133523219642184784600639247754406679377975449884626310205731286802235232230768098963087973250657544484214967085798373974731166162201117494733007760006087607497367018413258589426832110810772856940764953462514865418534698179086676121906778633560169196567758984251151384483657170721586766663319917411480868289184629472561445488372957244080519226944049203522292088066596318133252817543003605694201385466183773657561899562319266951765393498445283781805739270236363376764724360425254696875320146347451036380229330328301301134591232195665119130849209738518675816485346083494901304090442265529314654802783778631271303958435126084806282978039597118166233078146432781009820347340903650976870419234236631501808010656338855707509231883055540283994586833237785638876108971274607754317104404848751888737545908038461336271619401237556298584902893047972763039727463766846449818623426139637899351419217020821531453171757482163485777349961001073697422071013801320883357848324093673167188209601656563611165320831311448593185199066555218281637223906469060344156881017086983778589731408254227788711369396361028766886540413513198111784458940503961700472002872116110610252418995281440483834674482531724997102618109062052169973319441096484448109989371875469123086941616300044655319855969649700764978226458355220959901303757914714438513227089071319927017231972152781387611722293674593949245959873423881949192579569511183328047247817947426606656995243586516734831643828407746644492634465170386200803935374589391098071591379770486278098321130801628089440525008355329459427775609057862307348246561103373290502423660351401405373042619151702063739941032081368785222875590129511994854826858912086179147724096848299060706535786912235476686283760758420168078999278341135432233271706586499234645001656413896570978050809327919545998607017633689359207253243865853110911664903092300348810734546702428623807068471792263623141382674987765260811517997178626790910051215119764339105080205292609573739847967127350558648761928575587540082011878664916077335972653850813831924131237628202244809378939173689137341128922255944892822904748634097263068557367346030352165062152457014280524753999225412791486369447889228438644410738814912255921197718120312182157368533730561374565257551377984264876875775404242810320276730090487931285220149446836095929815063858670534408285473455379738746108316775942092146083161622291838310229764176357735733203134834450646813511943066635600871118535644917467370295527462192532845716023091821231212786104416241349175818480210981475241628338393912905746985682059319960228182233645292672444843109520127778650245824125525020931578171053472704804856781930850287691191373872140189483972526073992478574388487096721502469331076163883054693595724301046029266096020584743661536076959298884839234357695070294262217289742054543811527974388725820489623851417117962537910273747765323968942370229380616869860883426562571960166157449202796544311415578313919257120860024168634261925292377460938434614380085230069605997976061081588084868275065879242233223969858947577708592013749144657041290804791971238751368009006535913977593847046889351481241923347275442499509083121331555817257170925721152384070403070943020917625297871018366816288550114961574650520646474202029913417487965188392576251688908824699771281012170344290596536100036753001700444961408924611051698129978415307758344238155659375098806395269878742431406300883209812260646748605181036081695023579951369925337483636186134498958420759128931377684511588975232794477201443465091983389195322592474390186344224603102005265784916586911699440684057374405033723564195126466216516082847056788240518243293182085334367239263584000943610328208759635747110103959945558879515330281386394468223636124916381945572068956558425260971103951818243078003948552444318837043039297397846697672088807641418985561455927002099365454350769498974551621087936657956768536571349311900843267663098028584987470305138591786812233964131006696499038830614423260679991424659890330130031525678723172268931937494562338020187526840473642103411508787777001656577085777673773568683366694460884535372611272686664511153527789458883567728074616450759334210945326434888802772459788817053843067923335122206470960109560155236022124098694205430082293164889293581043949995077469525926231483629204913811238869688326081639126277861656834176949643865591779611110705680350826875259376101011812224504427693966039580582651147136045827687981942448129096652978353868938782135190577727399415689779043274480951048791067468769482344665756324483956842343606006227401354750972345430997834120873408197244134851053024590810460208538546541492717260587917292571091163470599154710878757159062008477671176270904711705642557188259341015760306479133086941634886622702086322838699910688263247524868644521448697699111560523730112754683495685200487188054129006999565587948285596383896611637502398036454695428931871085543384980721581236877892370068144210882171943610476751717603655975897155303077975078991131205005846751368204319783900178040681847866925643488570650803415531341830873539808685985646231515536318498968760637675536522548606113997298621501915912756218234891315205071462082540797094033875893205643480005042913150743748486599742166503207505334019311657558985976076089628089842785086607925385196685257713220055182246217672305341086826163478553340937213364038851449675590371085876963099050931353539067032582372510594564640177680911524959326872409687718509892120131832634108835417808258820779078428534478666193597687932955215678417229794115657486090316012975235222033425223520775295542771316994776995627244297947763126879035360902643241881303786348748633713968960930628070056011619286977799225611815289173838382860578879098604341454946740287486632895386222691088699408500539110026685673050971778903860643928934145702780885849428265966755861037795010777285245017160071152239208369078231226792247259707889508711707976669935501889329067403941438271497112864326669329174774230986629870636769334910380139344804562728519033043514199175541562949688643222503246915955715603714965076877909978807025741681614598528943597264401323002578724900163505724983602436202696040194660067192916147883067469399644869879533360640736430800663499569226921960352197157153103738473875239631287645023341193933168332465126794456990685915216293077372397942366338990942014686607291497446338145923457944220585937155450205414500136224485642164681371851459809387237933126820070878984864722511483040859540397412166858148696083577845389989260175353247288045214142426429460023102871499721841055375096175963331302890084379654462611437701170110264049847046816058577717169340133447806803353814403965399653149981820383196583584417350505208781281220280735386872778305418938078941807738338438718079872720529468197944680963586068812864444448713726579057828414092735306651880017879213523056978834842656608132181117529209417600522787684008009415831123048391198610101916071242834893966629281587539561107808209106218445228184310969200611174396214320192332875025014957763219456375743995517484052976140946884141640867122047053535769876245520088638131460531335870422674078483420158524812940316257988879914115424530799852642556125627200206197582942274724955659846567784911299930033874066458194752927578990797323515932262986176690804436933634194502309060239116510836057185643233990316324723209708992453326849574393378641936693251476115601938771918922836850893133219039979576118181408569119234863544915363040381407987899766122811389438058544204589167847459386154153819064101636543046211582940692238602078251126335215450308103610905180437730205976948455692995852320577996386722154998703911425580760414145717343772779696110345235195296775667469347035862365994093744530956570227964580248985350413430896710059147296064208056626592625292587373770766376324980850271291591427997325702117614241256810331795367113705120409651954439015630104640569016570219563399582221871668278554672081030390577915530794481277061042092572814788451202586402183305274157077300005779133660301228473044254540792091163423353312605182904185375612388290038285048574023280312956504831176964828747107705930949592017079597561523482451667750945213493682617073521103098221851258032374653635545949905272861507888447040801894725558969546134355923665814219882249285010365421467654940350536189010537348950856264394836672227656354839923290137553814616912567543983765843966924017203296864455594267229921346265620558259896534199327040265443825986146602088433802706589980888357682199868972281819316931628215332822562909839736978159599586062285366622424596678104899771453035262831463842188771822546454315918773659328713548464827667925974475824036507074134759224986592266405030692889671548492616291603430059383030835192188617911793128853331309637493533549114809203356106980171835430339370071133612284379164987017545872111182145422106080666086773108220407573439118548644348292131271180986642029860822056781696912881780715285564825139166533250295732946249116050748964496928250935121757974202474592423298333598059891780798598005124142615727818405463120787231834423753762573097700928397916402584125534626864127805542014040355660656146944983497885875822937099513784493052361755760370777071084959788845592200648307621417301392165305990027161208735290281047333854569416287311071857823397950182515282587272933673726853118581062297101354559412555091945438415141428458443886571654295750008105886361408144423055165399191008259370809422704300042645867225174928476738151115476863718351662402701719154108139241122553245604279364346413745866463937145178979415153970032756851169571916164805599934947757819758616699769579352403424854653648870078876439329151620436267575692425576493557978442659247377281675446613678631744732295244133210279381764314103188819846491749943376119549869437722436908743984737164707629926518338009367211787090355790039114994233902472789853884369337559286004617020894732546902608478533016806076083521125917305798449604927025246633803410516804617428571976183709354011213685182252750536593053016803405971397949466834738423736358816779088478829930775908862540057157009177371599142135721203999414773168834625871908138167423478702512210712145259478960427988928556190350835670170525860533685992987923459166691859034182566230662680570467206366790101366899573540209022299776095080455734174220547834764047691812846606671641950450132466798151990868734049627126892050092824748211209111065761999079225927985873163440556713271454532720642231622534289513945820098307901547375266373723280683054383331718214537624310312629627300184178299248277908015581287895177472732948402021186059190686817879703677663625031508694351133910749678796567284827739013045160534063033671361334596804478944858617583070852076785715296442475339873476658800366498650728414385875261669879088240204176194748867429245384360107656316706358241519590824312966571758979710166812482711258337604693748674820023577186413993043836032808832236632625583199930063817286535148720655151216787175812391240670892984458250860299585156083604326682408004904650322642309013583577285362578714794702273516495000654629301671919515960787182534090785441252901274036634797251883338845162634085662868718926371800396892031493468075364281604754935822991158101982471982596091716199297513844156450838555449082336357589451035674853807149182172302996386923397415891310041121393511657765297370888937945972539665467758736617784420876814696799509819251890909518196099750344918086353187096856306805424156375663200536904598705178472898129505949857092300158035813195931055723125385559477604958227755747235085042826516201131718894138221163696707256978209656647291699053770534005482049632919921261708280596200257791427740214112257545137043417087715460373588768686646699087429547599662249239339858279722881018119572593824541953050786684170278637676428899661450090700612041987622170668395731786132795034103199395710829605704982957201659889545734458855471024351435594966914002414346845670769440583935600622392360980463359398896900908457915379646788748333870183496717187974213936041997284573684948065487784102751638921127855118954536577478105163452677821298887547858558864213108016519241376197463368598216741097198945246703438876892894894783202931796217341696924010262625121132604287006349258782748544249504426790396272130244203966792422296662450651372842008482212450454506518977303322281405739094712859761509782169452743000235510012266176671420854704628345839601884812646332655115195100692790912314817803448811096421886590094782779585155724217781478474795222646393809028861514321645012605783296254711056936374485038050141013586999327749187374352574495325949918842103971948926559731218127024670630043985062974334561030722405250499914534825718947914584855027008320842091751153707986336773500637836951445423015747608436501980740466914714627524448172995328476846614033093385904819676422091272044629148571438604531400784679891595773673306267408921783284409733105474203638305241580936465921426757856878067228248890240210670210823938127428435273422739083661455229981769719904765717633340402025722754725637054764162038773466174938118514537090517341055554853729666533660403768606141427455166748059412931482722436243092950770613809931407361024405243466308984004052532986183201315351243935512106904526005377145204798906561719074203620018746248586312706577680153419396468664566836439628887743065020061493070202572420946443387847630762351831678897766858472077931950369799609759882328641843978401890974171054717445586196582606878030948283534032336805202664101660769612077776866093658815349745277742911607648292912792690359537548029567165259455344440381343322356330947505863831300836645521493390613545544301888936156114237102356723926477419793806142118302297779282328662497670039787761215135715503823876836040858832193646098265256955840369415521214774960094099121563162640218701798870232637974957829060631744031384358626379205599653188827826769878760941860349247523067472913626969659199385992475231563461553801741951055277314855225333218244874228283647580421058054063355997097868219627346562351759937958990873746879100784905139245602305485067213489370659223687214769973916132096559409561213879405845526369956616731193236575861975277984618922784513589320622139735111670393829409736371982203226836019042871629822044000814565964320419357541556322285551219581888769615781896287861759594219545939675521879370707822376597091567562517856247955387999809507067819817192796576389302486925136053423769833235413408873551204811975970731130974361362807036117632292115432102109300543577488316244162455666843733708738390437321564245241377428420757480589431593712403914273972839518146606679009682154289694932227365975296414518268487156820084552731674286155255153249028202909680864722416114950296499014622654221323507304443362894064529975067957709054505292529132286778878374486349360823688486527165912857370697837154650075851763024952583549527242285305445361936955277131365492815243876793080590627181382200975467763950828326093154216395108106776661235345066734185891469052929951801118042536814838901034215743904932508373596145612184200585720491967363090697745439407680769790265543447208813387905082834766786991072372753440152867890751269931777289537204893442628384629550240601877653010642799025733604597345135563529401980328650778025374029204998833669764790539425780235854746901808599559859002045729336505440975734445388350231489528312394004391440068225729490033503676070828084397022350018392520604583360926564695933564678272875301088563827469541385855237229413646181632444726142376270039077171107077210871793386470080722600629581680819528145181549086632152223444045611248289101186681480290412807873962463630695109312068604423636083098392480841084556154425509691343318477919910161986818916402903755606918737248518276178954347874873452057921540005212685011455109390861405185104818720833101722690869968099426413945809634279890534094947074827354902909713532023284648131518036921112116305887240638256751674209268563120544175623840075778397045814010252519203722092612723440084205893232620084791838602890332568639038751859301884827481781261527035467177708556967551344036792259731767598872428360699930428569703118058828520447380929156650174929339156532009250800022082324929684876374813039749859974152544545453132289364442292391778924946824851240365716376244466142208898509492752700079201822745539520343107429579860150496262984091531663855499871533252389303221129239937822330619249393861899000661619386949177395923747250549151931554023362919238914334922355425553257672213212441310590365687658024808606780297953543640878864229250829060768689784035695026551899263897289797693157742992061873316716656261785239403303272159582503377759249758099267799027936326129202937103055406960730453664991208427898723779207322242543416716359472148123370803630256854010993846933528377162712784754112556400996793724783405967994894213780245446806675605832685962958959932706587133789115370979344586441934729008067064405874073375518998380404308852613737298952117233936460098814709528812230446728455390992503862882691703664713221869061723984063541050805658005749084666241487650585728437699863243968236718468741297022988900313451803022606245488141125178352987789515027075051929109175954679512472937563612867922977206381428875167989815986417766615547202380850033853320235270072341283858066224089662671365717674195950415393453130934731371078487821493495828326920347506673964077491338732758311246585593603739763706106599301381366756588972306478718843270351115188356496246929952678851351105391939793041261849851050139378640022555782748582547186349570380853587656427956285285475641730512288772695151989551178734512211144764191230973296633990789767088116601114822228730118775673804462883579433285764302599961912682810763207365501809447650754084090019369490951210041570664491142701064270618683536394601515299922094542174456294793721373163855953188749657303532122222518242731420101384294918950657229839661371135506122876425704151741171886990008495645938032946196865674489461994126862039234271399983811604932411606994540713621462150768178726510942261568148491918916554519961297658839640178517702819480131923976807819404147229376944028767437063231553720812983784723758663708701653784950155631406587682921145972516376458368041880094857362889380370492760714810398939278308984855910183032278131455255396753425819263640858058689673591708744410799923617177369675936287219825859990104289040791569605921233587911993906244972459393263618141422668144281097782570121897887129301340277579629798653680613246180234585835330178469145441762254625062670257115563463780803351217272658124527538121872643862605068083090379169891491590515008389032816085302479717632725396487857811507139958847844167909455280146499494447802077675873624798722118262449978756228001303076515577660091161087416303277252380302805383693244867923794795874436372656664969731131311391585565870904876284046600950757810698665101108001873047152920984567410689798523240220113623882760456432932709896007702286076269900931274757124797177286051489555723142908140057734903069749599931199290723499871457753656138210116481373718009998701125335031865349802079182086936335207993313387185429632755518719615710423363058053087485461890537274346058483839454091361742447418082220835282455281462109931264922919742382793650310163746048705294797012981858087565996258265604276243007584194394814863854437097123075476071951462147586270876499171181068890987916434999870966270310137162227713812083877559628608130546240582618159360242964166994222591526550973032125360720488351148467337832130277894424797385669101583012723723460055246505387611737945901884740107101531687937466435195427471812685547024693270147837101334333292984444393280150748081277098817523292455830589682233820206765868656950989320381449430528790967565078165342533278424233524418488313005380044823116321113556935809527932216885775759593476654562226493650312617371831344960783071766370996633577306962007509520708924082463486218268706390976036754430351571978661837280944907480127010598099073644512238650311622163833248840807309137537088083220098978940637283285962654276357320820933718032433798859398812724008011882909960141174959659199172023686323633277403895891765164890332513615078716210292218260807882684342121624234641280636074921852100582320881562336427772172647540591746884437177696789514072444530707051869329816608905336333663251610828453786338804140500198731087940423439400963973479675675649104660427744703373847349906184345534850799085564458240709655183084304104412171024438355364843220878344217764594022396457097348654112123592202710437101699039384823264484722846178852979657936696077329686869947967579980894567571476649479404147020869360117971416429551920428942083422329829995479288383272143613713042161079204191877294885936005320776101320895601149450970412689285201217981441687633180089264101623520299409660297023916269455927056852877025515449392024334648658834571605713577185940573838481135620643397076398377496182621644373079674870338749480585819544673902584374454943529345174981661044049850850007443223568561468114497788167431757083166872357929364904656182946177351429063465931785516306244519766351626383618357016438589096485549962853436980156195431806399800568016307143162493340165787280425884751413783567441010215101074389470226088325948864784711776635697447879256228604778944370932341170553154942521575761404000557302245093355836321348095788638072704348962129385367208627631072908855971763971846144878300293227151637142401778548402859113702154099158867107577744006074567184995320090456670797467458307595574754478970232000254809990505814909316095991128002507879159906444372686250642818565602832807673568279927430027564434832760639453647941674094838725548792069822399421748318572122275399642528995998922717689870504709933057961883458219453126784358386343008064982704924010362994225955668868623995505390948821509097486518272777330141232711198231436920494261300302936996064476153208172491640446576350698943978242750102897922012360372248115085911369430108196805659835157261845166974626907600856591895355287146633299105380275972755667489154023127149264809472739374720148691669298632000036752002371181239153993547491802784603851081475133653765771581845823168354324543404022213734977310545017989158362805657690804457969496565556082880183350457141013188794629265579780850001435832904606246659446330337091458671842482756755765151035245098884510568083958649063752734355498523653606725201823625411379141289114938591609842923362899989238063094688520981073796717426461870226829174350402727092610535864041746199915379860628948871088413203332792776746947767055850951570506903579131169573082048581818237566735284393348953576958928508274695728300802581602845887530607794016177050712852264782719975216457000426857074338168392146366895908098858419442779147664336065860006444551685554041884588587400638397775850352939293663295028024321733762982438804636697596813882303011656871395881440360241706229503778519323099630296061293338934103534895329257358510328284908218454624399205383660223464358690315059684687770000536316138250875654157872123801381639271577058995479187624016022758815553463618245982937920466175645467543940509458774983476570794979640438439526423946854823539288195514509741299984297356825323422122891150806604082081029008319158410140194100695089132440387227772353656819345902349630631407412105673349522620595785590782873283959187477383209327555066309834281097047051246490304171597047596418837635668497691058548476471328203742798091183887064544283499027133408284272465447330681824369872681746988966919866814560384493938875248035402913222170319185154180382070201371845410491216036779001230034648204190004043053751220155379695823233530380295832340802701849996827746842287485590364524807620083142815704837399114746360788812312382883584395240091371507952418271597950590377544672064848465462067187278316976734613954098562643070408684949699798454616930026064268076825139844810230112309023880037528162964693892993362651512878584482990164282609273105618194766657478730586278734125982258378300071132812031667731485498185568590942791445309522806913997612958683905138502365169394273575506825378667863641769711127837749321418161433670867003798541274741564429328668862749302552068537402353277698454070540560680827283036135688970977530363405031558593196721773042366351443681988297660795422691534485313295799231432329355514669777183959361925510783312007932922789563195887604668670304792589236047536040750891564097080329539305982481324705869130887452792627579400199384037645457198675744934451977467991739822875519854755678410036991219925998894494366866068547379885375439258289821880454801590419635070027135641304216209202000920197237826325971024868846517391554545614485178713556367921061513852703274983008616447010350039222294237536403978541145511311667454181318670447310353703823617794665340440048656943784931478273570210376572496083241811198266478903343930738605317820381244029043611313578190308926374983747597031610340480187066025014972405658315276409984930094768623973799015983085582805842896118588427164878234237263619572432115463580476141006256648373353799828878643118562924057242850403885135413528666371442909233173613443094105910546586386955191708624280844292059341239810887938397681220520821696285526845553416380790353217793567748765481368337687159803853902309382506321054578236758066681832964959856175649420234485967077665924696026052409701590806990858330452271304719357174375469619076094387327812455637886992723664777387460458584366032901045330412277286246586918216155850465180462503278311828274630420152024363783840670299427425884919579394644326979598502314341714977217914636380419145193814682432524323876192680656523574882991493645162928191290474770263602536852491946099299515198357476376244497803700544793824358526122722774156887931117892076693845730263170202730089975639206753833472244661894210918151935074570504209296261125993327626709432422317777583021017766338122111062431305903767335930715838710010071917738835001854705173359040016061430490788496037716255073309413071016822538122657271854467781753221921604623580883776645232060553796930861977010653469568804325349270952521125591629075710612675903257239363824565625573290795800697610243569468609507522557770414538605688574206738335297575553697823839444404308985698565776600250764808808644709708588274012218355174969718128779931303750445329666039105487259914079647693558728632514103790191781855866025578115727991145949312550983312299609162775256937044541516086972548979580721925724504923357599723252602170783861231738092389610560385463354211062194229449186242740032087800771415732330669974805465531956507158499645080089626339609476819371150780031857722775984529532616929621847065595710379524315312296835318948271047149669178697215004240814144359407734061611029952925043849938866961056254067516003949409423693893893625472588107604081055218243942676309554737249006956319471405048252797028589248914344221501659975508859596318003244631129572976002148420694139298213429508229795829501504979029358364758312952225964099681644742567099750787887540208199633432262471268613895087440021792694882511657779124326686551670071529688626043243016217455835475411047247496847229195407878052920741671831388007063472008803712693456916559928923927896224402654348450524609612361147661930506110423611440050678392929877197596712103599586560182651746438076099332918157986842742876070433153423497359444685897570091837499279810135682505296406221230678404204767786725934435832106806585831389620189705031565891463492958898031008688573906630511988412747617227992877186552320851623865903433566825309943641522794346574882197124150657556782164527562275705838445504819405277701384247168456372299484694604283332891887054655471721720781810471599222656597220521129503798331692438040850491073030956437003032223167363566230280702572830308045014926641222961119567458990261683715283426135272402900149674192321019392852707880414736654184913356236808046700652575923896270470435088661863977706135615868508073211105641197623146839450466586958357915453519008115872034609366577109844182506900410176826185473591495676438182103164640765050432099659593529733247699917320115284451485329978678821882805112601220356230640768389351857850681695678494980953420143622781391123922993684283073630909806004469089099043390400285315184704476057645784445835605427391752370695233259365997607615870173445429506866668020446021673564386322029204022136254029789300016372621330599048735794077244305575666786335373573455151192434124638243352084624301971903326823167411532814960016129348765102777881297661423130936424761087396923848176842922448289848194088575354021843399484999655796638922914616832974481091436552862844599870210996378952720321449271051323931375468612983612396303435208031410169627003331924329194647504336436072421016539626242878030394894928172705033337577664089133803551495602772717322961211281335788521823820060410716584308181536293317930256156549728456678133944456661842865294563084259881905307699745937848637542628043728377031098846111490552704451000962540744670939506409825152863978584558451460752911443782798317106703621086879184436764706594637342312027441274242377227314552392677103150329614896707675636038137830160159124779558694927775714304244938885556702813220072952516231872453160831203278124126899041649863294968885253959380721922842356850162098199041581967507758889833479532568815715625295198355241760375654783466040963346833054545512481161117445144872841261514365403823699522577521296890191036893574457033077089946586639817563124550190407220492198938171900286837613905446952974148339790927521759847950422462352522459625807324079210563399864564688387312943690026935273304440799707826627567318057406667200174882141168770109543934545314263338785050342522970910600229319002096394012897312216959510551133643593824177549276818339916683312782658551273830371262009698388044234236187156190828053473823842832365981651051833668900933609878835995626085179975460842023560262592391887119210098993744766803380656631149356936811386899212636130563988503885672012231456350292857292624890567926078330117882922818945611767349555463918632835867824368504982934773840169528101275530747425197679778318192002716371588846172462986906655940101634305450824650361814037511425784535913853441552354575286484988162587102568558555978156204477363595266968196378393022569153330612885544888288161924029740506005675431080488239577478892144747358968302495664880251784346790535811953232252499572460436938956587303075010673326578529486799969578161484213127127481600622210214877005140197925238126036765231330427243773060980712955239627301782034714992044359839275038556344295293140377684523361101939964772784236050544390167869245736247761479065736255581994075702509986139725698766828116212874632594976332552282986962128497643325731781817538115704435109572399756862704379861323958324977717075683518745269528815749391102296026040660543897472231882109822231378147362453726873004150454902207553089190450027928623093844284679505393751204981105152346484834975256054297209721101976621922136546888345855686806095480694154821835036536207999935373760838985899712444099961911750530279102795248841163025737531373176963737564978405661806381198576092028277412476622591050294985314108549347033564023222398054248989195437311962471831003951645553056537520858109553562827057238731571590580691393364762314000651774053422669559501702009446014185351479675258693607283115834409845650934065408484531464623988300938443610390505273834823253897877676473505552421232500207149140323982811443146619791412880266036144786626898365012863076365573348993809042490477998144545435886980514641790386508891835104891867738804129687930719473718185491556921782065898156960904900644331644575373137944646297228207914174815574264370056591692654041617829792171849222856811401709413192357207188930559640638087906319190606515790277308236157565689893226274011407185435758313731506486443654748941071154230796382766756970264711414769724659300826443163421782441712071051541556629900448170235231050458810973804616778523743811893219984136596817364445262100531226941980928362082988849374942975106159657321256670910374838743578094454921407306344322742807128938371173464852239768568941102564429838127213910306637911271639758719717067290890980749559482912621815330675075442504004127282090322726227926087849680969377375735615610240527332807435479042453006677476244952991891448247069167730085273673954584328705855610007903523653653274209371114349572643352824115492322782646875586906119594729499362929724018240519127249296399610165430750711450312586384881560963293859973814577859637473695655715355575178187125985094406964217426788559901740873317527723300755368642529780216530789966684028418044991513959804709275726204859455506654479549860909691116357660616402433132341635059582870219434047776665859995245632259590835362875452895981855425221747658363723655122542907576908309274084516862312535876106030549340679241285392391371366761317104917214842678708276853551836868298362001869490013876049341687907189500535317564774399070343193695178835385675348278989963904283153667719317236820505418476231903960688910098271691808762548453387862622714937496917996258139727598182717244546632341390847613174666507344553579682248298579067915596794216124098320269569240190863624864003349380637300917810757767928656037980231506044627620625072213600330719769576065763352341448058780321921261763666362794233172302176062090920979363929364581860996715177711826361735890449690099886030586672647774940238195471301298383056369214528454169730184744596661942433845220441117262893911400116118506188874471503391237316957818503524175201839311183315335003869924441922334992987260686376026073894912215636874898606190263838639967168315293815649321889251459411301833801516360504539875660564688397861321569458353823665411824497357512652346654917069860843438738839104607231291265932687924970782744109516019972482033825761651456552137698868082069603578844732867344240073872016632866314188361391255695379591437020004532391409349755763813197393922792778181607764605902840853569587500478294107133543996020336440689555951671177657519512407544018469706037308318435404596760730059856975714562195380555932280182059419559671132299473856744314842090604458327640620391837390313922931254933712827125687695139808394609862560932968251970119884248721689854883155105476794023980860214104880590751278840525464757112774833671439985005153452550045905073546872200757393506809859168921801309028073093393327052302671876999029011816769647479082507464423726094296581723685196369454291431104875719390828960986892945677087325824572669334790925652807895719676475218521189360445936806478973771424636377648627143112200193491919999373245041046644324400629000765321424367504274951447313564747577435287331405093804920689595096823386638126510822801782341190423534474025982133586503902502663308244567422981552658742471596153941508086826753751797546574035292014079583410124142173575139080768487836115253615502117529901854751483039916825984009737681896176046281002826236843297113205653016914725971475306045290400695848218876587808822036931539440392961427513363603893466234460315653769266845934604603071491380171742812504300857604494786773534593058288558081646085264747175829411628027313485858250372257757704499162640824393512859928854567311686638309162121537769187246984493469136966074611379692699756888534987939564838342380602865597106030782342218704372476072890514392846723598443289525269821648236240654380439261614614895431017453816240120382717734848548044312669272093614507963316310496487424941271163498982002323876412982682880247483341829545626104481683395388753733281567464840426770492997715133485914584643185987451585847260575564782127512338995885087598989108710210047438441799591072359189407328292393414003781711783955475049263872180551691388385229499902015874970291373617622331541463291830360793177587778571664162536246471057365826140506493527888586121234824268419100685817294896001610393124880744871517198699747576707860325402250875776120530920475380233950531666647198516260170896558736488678035350824709150005288115973366580893393483371160303310515895433239731526235618604976315635954122221422454545150643893965421541502009632168962944147845619148789039157133836879063147151209432960577941484612436691732642922570089255088240457194068067136996465567174688152744936602358564239576603768799075399260096902743224858996569308489471033877224164383855269144847435993412138232953012201631146203213779776736733574761532136670227780140654077563923222329850766595805459051352358622211536318383710983083057033359824583352197626504462515815751597902810104015767894490842512437158160641799852386858800012883285532282630506647101544402716867078905639041599098276962155515937564386926402403134256389704289209555145655323535976366160045837062070141349121380081546427649675877064246691651893845968247637339203496332292320295778986998083111344321700301175523228118946681780521483269799143059373519432250289625001175007405786116912321317614462191000193784972634982641023321063529721221460614171051615046015071524880344902859922675323951387757041658423118150782144839091267701487649996073890554500591801432514477657230107149795927448632432913888457747576289061427999523002184807736285274538291612847737982473537698685533696466142305987469311733814248188282712467830772934127416219326542873573406486257232312028339976125299075630679457534472523085600015208668378839846391780678074098073793386331148492765512531046417679792600782214854919455775657292602824201024150426010682948618293571176518959064977052095179801899054007959018118737197027713646604200368264948351195396975806109864027270885966266669117043341108111666432970686030970611103281704599629845709005802124094789792501940251354574708643916942522749678559388289605708902913816379380622121362883341107144447212405034478694713301867881389958396261098438894997921449297762609722473735799266768805814554080901721806033190266744572912761613164980532557800931574458040202992447308800378119555899853875167137859385487572726669826245214113595364196611498703410760932856442765629960500694603939436990960533905360292402262597169329259681972549300770387908840340700007318909472015174072506447649363114932712785417596166008246582628291520307687228233711966677480078654794323490677700479370169056047477134803734078826946611268262965431756948685228728037262387741701065395953136876364992908162430714382669644741271656618981479626074015367341789271269607146449072782282528726354424968274070228564125584907690993788295875058649617205598618639172769654294904691163240684019805689288981476571872084158225625696843088168707626081391119345634135109332252154133126447928832360663473461655501744224506659012813886508860201850105888402841579560018211103888766419697086441973026548920061228961577845422861849162726059081454970582488406568327177358122566988239424436424932577112399172108082038875319326344676602524221045327245188364596411069264401868859741991162407492864894834524077108421116951020640809273710098080597917940148152200897056140680309295745533940397176677338685371393899090030084878204208238645285230736028287971199130227900003131347605390886523293208590445921589046021967286209816287098042636705161010048520548740332662166094825542668118691440086549442250117681159814435004486891902354157052737282615011629797294116713452733314413668469268027163336963114869310301399944303412177318524826365317821487877087172818097542754188002166191752506282388455688221554312724603417809347828297062254524323845250491158600715972003971055616511014535130829831934859899195218837952098821516040215047158835385414254765185755093920269571406790423399895794779999059115308455611163003185451744420192588835099763110024565638920477370066940513233463571928525640562199098727125720825379813048654388844580365758001641610033683883700448428588230187547540312296699948455116608647412720187382876619689941250437565570610464056488007708088600737729191819295436771442969124438157303069957463176999636395416017260485862340282605074894299376365357049341426888280967889384059908815348286158782709927272369013630451674504933585078464862470419771882111367930884493924205519871973156578663172122669401773145327778389814347652651876931089559147841007721883084834051188588222615146442293844163976339400197309650280921492120695971595897758891234348957332641304103549742531445300378671969244708277581518384084446981699019908261533327093640226577813668403042242509335236191779907880410764155276163854524261699061891918625925879190809117115906864905998268578095748373213314006470644819729368652093759968358254277236654010647898965128324556353674284862860967910489400466163589671561781013929451487478989948309447144639281544239068804847151251229576490674611124215808652813358757375015945125171670142129741344762885362088341618675383789578677564691785362477995192335759983298231706059760179664995569712235766679290946137738256571141816067923640998024581824994068382536494481314111606556197946257834731754211615201432000321637510835313336109709512164203836654840997605942741634194310533816596762372932301361856341408957254299590803340197585176742799321500753963313372315096738849793147728313820430603282951973569079508901328381435753787569616083131600170192926584057984439370170194438786941739635702431761503537978170188882025609785004706414252074325883209389068839472651500191124799219121513795009761336105169228714020536356178097643386424138546718456656681559481723638801552497969616123560340336537641010943977029696624005331080226851383243583640416562759982248996053572134518327905818664566485073272486586057527068098683309106114197559950789003328771103632703795409313827125880206179798719304758544786489504407639362274084730131793555266997157789966698732243221602303674353845773269840585808906313462662886950648377764922509214836227523731016030028814902738628934322709253750985028433923466395784121415801055232252473095272760633988388165584993268722578502384552944774589410790724033266221538654462544021277099363850152908830229869418509201300614729458956956823607440571485666731256327746894297363644625098427199599673061789956518902640735420036443875620844883972316215268521677366069253513984237939066357132702359667927933624452897943944195888401535552632813869199893045191055418666925144734287485793859111110823358184601769083276759404322958247581369911838143368296714163750130450481433011347722780897360335102787858699290828236169126880892704003931194463849595788603536676018733294605339053331228513835566265367028437871437671392351778909498211353580607804438399158266433619877808787345051189970088522745780952831709356491511119007903376550992318842639586897124500315855299720715848972223196155493349897039241681087603863524426813853325576299781925543248292247035239992636591035581568576309900565397226802487126185877876206586616678584180283454802459521558252391965604336773504537165681698063865211090779344798296429433302603493387844158152017375483364583433863417373380485388537707798523027344195516514300054027138443553605539703937417258844102096560979040193035325708535766519585695084428817554631174174549060471019046493551911706919044066927251516381679221903523899452461115675015231496277635401522962323283125185278690860488147121356790822337211292809724937483367476729880247587278872047008202470742272579512895932616541740403883406717946905722353382387359924996651447158415034331837221577206549661089950937308427529244595307499288140425627915327468978679140413859892026822559113417576284763364831485956102846075193297440661451997011675665866075996398532624382045513628842849139118460089121680503613814936334911170507560773963025500283492911570899044532387118362284870269558821837863307449153443939560096847638973165115032670532568167885170618891513925375918442017928834904377619773496332239049548156439734514414525887603204163552316397718879531829096437580886928203431218666746417053056582444960666072915965953033624179021612812444264226410089055902818447283910538038922399145357003691322998012801374166891182633466967902261686612322223048760715097049076409084062846571197965562999435341142021682417327673060560915930592238974865854072773461458192771821416292264693006844031175962836432877548165034777983343434778330009686673867960892245824131069082178028395495162611896507818698657360866247039470758271160250202058023153563684588086984551264620267938605242090721502013822646346659253972779955236770294625517776093657500983470260962609573303134745803216855837650064650321126035082611742917163075086966735621671215858494029361574478461730422226333401239136559035652264560208417359656408711091735123172023506201829533797135152896073693266822196868528381839160994995624274076958665397782058328263863029544773548176736312167139871798884748326263519227005572301965668222489944922825311524077489506092900327983062415227955365573972061395307791998658490690919341403342275944498949988202776636669799087990368075524156211358402680022700806682539089080250643289716897350099660441139275007444341397140684341497224655109994722019965791158512117273656685867325944580398606508143467488691873349390028902084216023139566951233176355343998778394260198788413392625901740763363370836452477184903731059796089661287602352123205604667190061337651823595888612914099304988872181573515879211152709764376472213260452158990211418529755314226481311026928361198338314645773138276455721002865214081891939836150453745079310773234515868193296420464785182733717195090675032299051221486170415578112331683225703171783236684763516671010500398386074443046851964808454420400042043872832486069622181067308554535252372243964833589605097875543697772926023361023257606979904872394028106931458078357210625444533530699152477977405840780204961185403578957277473592563066265716747347696570499242151697708256678236064483883194764532595911248476223284537784348963062779889834932334647976718639149442972469453486760194547653945668006828859927137284946560147157561491715180749609776573344888246574449688478194951083283679485171676172708350939910114832320507002626525387964982613674570480765311703857934013342976145160375625164753030005604329104211690497106060390739685461061170800294227782339723969720410849609519457287678464474467415660241752878993874456371188077296842272314763670773886226964538649774042459810605810375791354032836426852285207667054040977002908940701676800281226201005254537154294464203666561736896956204045928817878188133884669941944391555589061275178597830813704574726148863980198967752818668213505032101540997685229641229213953868458590035784957683669937287862718576926669990822751848095199084877470984274672838028698465089829691420998005296791630648266430622173905214121025590071752654772283096265402625307949400378405297299021611761025672831264650498323651536651813415214282073571533213284926384070023401654999268072726305161326669607264858359400281110726755797379718083692142126223903377024454200503554252485529979633422481105929801179861128333378292045961383112744773600030893356665254993639147142703548529031253116412798072564603689201168083960583828499398023782016832998529104416681979543172450805588044465871003471018335453701941956603590222149884499135249312938008530912581197798992788140850197881100313029914959433196250484017856283097496971269634470357544584162418053428998580665010604626424090122309219910952895934653296546859109609857888363436461016624694392761647461376614125884539784589953522209586628937680081908173972354090224926115774394987297874873608381139236715733133422404707818504537591356757171425898995573515140372582944931641226831870085181460031482452687575888620035914250754396230012647904432336763944540746981561932892633560964519620130466569701593713348921439414196265764621156915048519912239385590526175280966185823544956814645426286981312181447199974438851275551182634787220722233239443288532857664708853182969872280010725569232002611310836532992051562234026743434822460231047018859795702202109710575174838928511235524119065143235926031589271848132721607328837458257421729500602576844715620153543269099158139897861914683957231972527259013418525485996353044093923756029318670397389011986866074414825042738361733066414910831982365666309293531187692399581921658835180312130573115722834932718007124440041737609438399974983500439633795947528765006772735947580162750247114817692900312124135060535382470267874636221671312814757151598271995970139293939198283026330003639271032651713692622963588475801651790274769212419165613068393827853424750581234903534910017787252202548467413897943051111914228906500990249796257116012089960975235365036551153304391956417533729682178556934528735482833493563465626907573010548626754557183794922836296404498977861376056331644560419028596925266957897144463812921029428678380954997788373320863486303124597166794367226376697039880861932648733220409150024355635219154646192421600024167501780145367176313107270865904678423069238534215202719014531303880881330454781658616627520243397936386713721530356122364946414364390222488323933186575147950258945720805488464289581994039553324706495461758648115263030881047697574887036889011739580134528485854292964805103868719656556975238230274340713165396575118300083211377174525867882511419357804981631246469895109324883528149518907094249663555699609401640857864360683917225431584065484837561015047308319256473594958767122989503830142920482027609783261654149186895609476631081688729736867658698195400582786627230703863756969244109635151839675929233293252565227198365408129857270510216182102164869503140785905825106093351723106753839241218746354617652639326717121030058588377628813694062012392820541983797409894655996069081249889183788783525460233049278355251583228742211076753298050295595687404871941455987049743807662813059975210151207097434179370334842259483663510435404491506682822726146739429195058599352254673298586600783140942253905647198129128943658305662979171114253959191298830872074083292890942929452444987182448749543358403017192375622200610950663255546929763881196927048844949492986781208585008222413305103321638087195018337397023033369834447097725183329898283983704470891991279401585330732760923468701329252176286867536429124792684738869571167433897352614501617802857786210470209619812604359647008100441764288923814447238175444558355536813344778406738381635027987073317296012491638050773873325384666976865504226903309912893692287135832287180609123156576332457841606147930348490320286515715332561763215953414308920932709443244494421305878701117304753460775671790078568601241707597483588231538162929088147895881028560704915620551657729417922228406667869437007314607864190413560240095463332350396863201629927530448390526930206970153000442369846034442347965577686318537103685590836780223675650501409835702682906530860240404383861237850335830600540912352593444114015989174918697096189248410512858221769350532439471081488640441288461793996774638421383681114303185255015538827670746503592886047694542657516803906309631230633370955485312749418887460021859035200081028456656052606897430280472724010843447669229509450180011989120972599889543027958181052680842783770849210326701505266894510326426467372047338971434815302769331833053567401389323900244923768061518384639402091598931102796186016707191894924511606904696898429958143028648515016340518559532624507957034236787502183970985920235501959560427830478274291406174654047664500643600205104586657988035505094894304426634446342341110575798689118585702803525350691033428492865469962463295109461387481634422112436132818371407205291049110556918951719984929444191192780531108967597262227014650732051742177894534146798419022499536129044105723993018875305315296503940602176960031947991334985763802424390308186114165533461056807463076352412393588323284436091747926701567111885963193783924193793998474675371715375880516442405136885933706236950251749396689533113565007769975400536693689914834486096642923291450310797875372962860730718291952732719551233266882304157463226144504080861047745740892353591434700120643955785656422115980132913672743329351952620066796948901998617215718998599503699117470162768566244264647448003215785797926217304554129541900441754442069632558480167748852561443547369146200552317321454682771565988584561401236948935556766795690317467328008040314342482784184368982678695032592844714116984726371068633642960033894431722611219978236867165231086840709808358953560901933943067330839236353913106025125381819046162004452642526807844044600580957090561316738327193344150829218806207372048868244160202856136898620417893938589157076989097876419074121992301062262675411026664089342383393487119415503995676864498189028546191051257047600049730055524368400017828687925348752646751097093604392874019802385294638231575797186405769329877571644956574660973373729341162971811139749769645086987422407460377449154198481758198471771546869061901491256136769866060469857678130450743319877460347924812400992871647085912758765676699471147468602863383455333685731633624603354106652344138163040984166974376013427016768475868000846723289754472067427410602580846542140650307433359811025351683383509283259794755736690684421410653132520218313010400860224832079426496077969523118183954980984635171969919078360705893741406136385581860728709770429025682741739552089082271665993200043459567257246025231247293992678792918198194508272828728055399903912988049153873625253871457458062564436971797770655380019859164706810109833185641431765072878526548064507944699343043773164408693483417787377066816529512445759199382913464186046719911781998441989657892611298203372840219798553540627019039220875449843541818823428158196770717873657336405217779235994764444468153796098817994793178151134766795418261192054443718488688862813545226528147383383692492500970938937181005694539640613903321916717153619833253890871433108090754738740428496045387388180301474328176854721999422284592580358784509600523226536832255413215014961643870645938911800834637649197787287103876551445410354853081887622918178284587125517669752258823427383468576037319381673402920815133482684755719815834028981482527437142071330224744115739531327844219603797579732683740714853077101160914015923533694421919027943360690573247315509785861946847177307239091234822243691803272023724955491569505552133721543245707293838045058491873747232440420218061600663241410384782859999352851014218426210826743141454937114911379808961211057742789388016526695216092467301883880137948058770573447854774702724738153795542268742625918854518408837968854715542754621768835765818700693632539797651019879163108669868526721412980489381603088139170292417550211147702995351131305605989125209157215400281022087720071595277451682138515969236134865191655024672651318936049207912956335013388813559568588864303564979220464974307693819782404846330092302936797743096685267252074780033854210697557562090481517250461417481068643802177565500398226176436748454168894958009356202168254470041386056362601670886481559430595389375819697638948142522918400114662048936998427572821871990370172613548320790310707446501793555511499828521663047316973351620501261859088498644620063656627921223989894931754109964837028385547099109710193170953566100402096004194409900172547767694368748875159916636702928664039279275992166435971730043978680949457573532329031390434281771891738433039218848287388263098592260465671744715611235695160582581018374765687909118717438142649184478061356844869236294793907466656619022810389941169168460450322026586510660527289709842104048254113551780176016956671630354528529166501856223420093541990297008688217564319756867400129710244888243875997695210812473225406032287913881736702052613982956253419553199691249670806413579813549800136505991597230497329885405872137408949466116661708358763141101752257371318674286869752989543629811213533566107557563932130754042623796587634836673626494941556368477861944332844258540038345331490280644780745457494218293718632414510871524053357279988930730456820833396790058707928106019817589675099883372916918446380066539261864355760492615000655069063269784089759053218947465500701920132128352419569067834072060432192950417236288208881183227290659117696952490559100128354235978947142037258516311751449747930971732475414009235699316447234141509826529638119559251874327726336851151544515388724619374940756132336907604897132914004975045443966848887729453604965193949718848185449996776926542188112913461208091819799213356262357597318242716734412576996805121492660725091589137626371629890208788943513289263665356399348413037586855225961052310161930667322212565687965359530226369466653918872065838167610995315460238160769260236069340429923845321661173396095422608884265610340540888627696881698544613999099852445912064022673218243553891260569060635305972467865157271711151578391295687497203767342179393624608461391349753691642649175603558620189224946074522038803540685451241841369050953164819150663256250337441180395466319925099829919978744690939687953775367518124240430362665631289298930232804260630061626191847619613626406630557256508957534906475835597542070003527062456416612998290968196857414502264877377379860191067152711473639456927195124028034313535340249959081245158600074845449578052916383966654911552078325072093750881016339800900359055050068599755495562252575611813290393864362215091452484813501207911523793948658047181754414906649674296601745247083589672444968386323428600170316212786444757346315430910878766001821297119927360401759043283537555994012477934079661392340804298630611389159738693928263594694903091482485857424152043675365716635902969109172178077305273901293030316711016563328882895639961973783639372046486997362408225794908162156291659264432708866701791165977144701014664439396439878669556771203628524444246120149994989805405766689876248283284902052150392456769722601506013515381873492426451733715347676703570366647007765416289514583910854910656518726620537082196441626555187336074597681125556077587494940009427727546771528510447302490598402678463446435565857949100384889819502913910957938339780064412674321804457479174588089747759142825969138025603199492260354846955271351149295750724491937610632101234925528984427071019695016344463594874838233706940199324893919146031420328520374812748082772059238329527970637284659553841330272782116441461179788457692548210857357032499132257451444937139927668477472194070017737842130043584806104054628406241402371169543698441152906568275891482335569156848163048230044474785743536476777962386561292673611684391616499854810850523921036399408067703146107276893108521523783366114077936987261575121288208618695666254396094257209026469537594725849513274704960062725349500180608774865780133158776095169120449203250752400399615879757946753965399218236984860986436077559249389428658520602458832565034006841667976191049632833619533612739961058019178771040295333158951332682513411095033688054118005137670985227080979665910254433409384993648305016083719296482894098285165673887845737131217300687613930678577531076099843087721260841682879887508642350267830987336862956655014760391575516676611699917805053811762413876263903398710243814060312345831765543632657181016620320708989870213336035200474181598078643046129061962314867183567314367537981249511645716287007335981541616379703709580939340183407418314812167518539360097526790754745017410346171264540782121243949386526902860694509350766831059765792494581253191778994134972945554120091588210089643528950553093030980127372795525458581595008230216069459032377049645283092024843219617872148651754979616159339051671276970429917669063986553426197855903176131781510964672070182825683140183282187127245028513166623283235686344020178393912769580434009498239068154773994607740862566853803916734953585535211326275860150384033356486773674868532003354604553794095143888039022697411809748194856223352338084578580425201383596362504837868118722036271034749701841278075017956264364917037250116876028511087006637961566404516451386202101295645504736673285403471817293915236869277337601906616372622796531772956155475972971126167332317299387955307403561677146151722037988435388802038787562701618508665029820834557147523849847744915931925681903870824143507760318591402219583306569903289383253600156252933559724901786067931873669473364999799073396587224448799681803653568639639880556738181549662870551890608468692213622122527946869524405383645066625501578053289560212867987979508028586724561016185015765228426328171726208075459995028633876582237726728069927898344627875354138310409159642220903518619459604760591123210802456391201932710241473804576332602448473801228775078043207005407352947649646965140162478715704162738045274783845586164932969051456917643661174976922208488044318162809986772916293270212540999850605713971356492081472337420097441050051528529108990100199370705950160172978828824463362581869678767339990148502275359811507901329521698398033227569640243427266550541452540998060089671198485699880279404896048858669950443830924418056580671074877446464567898732743193462651454145501395650549735088369603354978530232569362342622590936180248544890934906089186285153831782853518519065350732708557881636073664837440044653484303034109712745847872857225007306662296584900772558188280622849820608855645520976351594289231541671025302427901849310983986353562980344429830287954084626545782219166657459346967528980071879081937992322786772420005806916897589142433681983456830721314935980124520463139457545057371012180770324315766125286661019415087291353245510411261510041891715390244295797347984059697320626427656532908966726173476858247816649814312970159823104565572699359582391780396238056707794064335919871274352656281209107755902043831951167753809378158934810194296509785637031948482946615046076482941628971856870093408139549482153367240765920518482315867405032541320892123737095465368744326509906977199848552816079136445575078806025681034247269424913460146215770290536058641258406647316853256381457153414386781884654950969586941736817679594866104965962591638586641499448440855060314710382906051398596732811191692675223824697428830227439505558072583658452745162868413666576565703203328724948959287355930205052816073880001094613728574978895081576069753013881693177686549899085692731953750593537053259060841832961958829305348516937309122168492376741336911108953615556341039125517651165547269343544844319936010411532618811252245690854988900103742301928816453255521785215675271985689740772304688516746705228566982271286742536556226561866108950295802977493894924503649059463435814565189813941255110798991879761832530948308547338402134784410226535047015909663411721395964049903695311863510529137479424913039606307660113366090098363425479145605506452598123305050271863182163683166612756618653243960650653892589304298575003322426373650696594041964411908918367566373533951645465852333010029450842101024976276810735293399161369514288894310868897334428856088547580488844510677884700314193051907093882512052415320057136365188235261882789718829323847335827392089495689282525104400720619059126761453275524121457049115978402277140570636006732864567842278716033146443480150099370358578453757203826367237066889437007323771110374191961985995102380610274148521753370839756231694080694854791702512529296292275032790013717660784093121476448470263365843557195827820060743420682903834755005290693913793809375727471465193465615090871954473514412442232020153856123434170840913805144990117828089859285847141231600701251032854549811799143076601744383555841358297128753102860645142837714538018403849482687578759839031249284341576814703027326692843675394223291648173470205654809827882625001520948169040866026755949240495718594655691855487336836835681985638812363968405368941095927533476342567186925064818653812737760820309394359040322748473224545011309428550773917826772557057579546171935561836834038587865336660253107934406966387518208501885919257928534387669079699143117701062560445527379632635065040543319118546571564275029338222562494215087650549517689689981880112117631118899459417617757765814764429744406801172786826307944079160209217808042864046460311554433178223155857988943189841409846017246649865737500838926603712294195765816246524000240463980974629880685287628140077144704532508503092519332529316776612951611447694762185076920960999197528626631416657839832503528638016584756830779735787813460029664593348947896967021240946164543354048150207311491217479066641251106379034499257750959745569850017490785662819222821677785801736482486607045146173238611656947139669394489546170519144705142765817632703781514124984243746757103341011779403632819007112447204151529422563936399327948372717133189089614059124679785151089029928193212877061900054269511534554360262085785040893434560401174411515282228617181807990361446434617744781500155616011331088649741278273704617068618336800359659898291802875729809386986829384564621883588810042154463035649226042188189219333473448009128513811663392779674600540117331281176331489388672208596187235044622521970683807298915382109562748751993219971986438806911081291895128679795960898016037380864402046202482080667481399671016508091830905990518622189498166084878110607913502257981968404853177879011797220976259469590345369610095873373759065037524340711551740130030973483870934997967180906122350044620861167698189627052368558517778764278424179958421150630792484954253582419708541659888177397564294495315466575955902027449229873992848520216162601638661605245339660985020915955913171217476048739690575211115093418249780760533323258855679313154017665933311971705829471321569157840213832020557216094677113632156905805540125498032697805506809583817003196316475913917175414277352828527864731100718259445887630934915383586025203484670891870344388285132007789154575241940167877208400403971689533076120030996573762790258035070622055562910705464092709094609397343772752230654704347800134530671216042974909561269615050321635222982423066921825495501979695749735472778459579050753891625939946022178714677348433610706475248107860676369929225359373977321968971862369858789799334121530195870405138385806780609079107181732471260955685487131098614066910281151350579977175453672115092381679825603318274629363708385699110322970236598648344901234332950461133092225952186578697931401987984691097454513941447714694158932390944638649669289627924766572349032301824001522603413290446566233423161449813911064003586311016965301049351575056991268335721336285808626132304854241621739039517560423325784949385553985144654385320253059640615223304469951748772500371457655173575671927251894668939941038865814589493543731306006710520069640405474540028602444858060214095337399520660954534478528737021745090520927703954488699028071313590295387399177087500468810342509147133893236929663103180092296605176634741423910581109967501186554605753225767585562240875393198237398167804503781943096434364120029332765034286115940981764107157015651813816154776649438982446822136328825614098344116149061181763052361667862923029698882103415453261697452194791615272982589995858935989656590918957055407687393546416974970146717672830383175166242721317024850599019968948779087868279646581904823793210362762861654320452452149385450035525855537524323342910545160528174545588219420533597581137148591167011928973649690065867550783458742791334066528864592313289035165317963165130590187479914362541118146744287084100228012263582201287891113415677208970828723586457987508707483712655424436209783171711986100788070150051954845753022030491774991271011978314043500788267461181721776965421940511964219399952169668279148876280197310935253754168206278758221032554374445934113014654560271848691538241672595381198287173235003881496592871666203053137942158557506266410257333495197607472507105747761984684992049842409616934732680559292956267728980641739638465311253558841935966976159660991162667203412575281841947955526763201768406998610533989119511061142116988543401839994601604379836256927276821969973071835877451946480930202796459359697061737143226756285942825812458966839998893064461778015191951310459397533514932149589403725173412066702525344606700420183829386347188574301948835699701615546772667302817682467838924169679613754904711828297792995723266875893148449787010264006898763907852146866666101654568490534671965437723334680913541368145319880404779105934911932462811414652950278592862213010762828543663579342771024084379915297710776218405742233680749277474045554567217835603045641975779151572350163472325855944808556791732808449635677668143354229316045304606554428370615988623845968999595935016783752262973410098426909314200415696464432937739370935691362294577792986852463133607879632434508690952504663170160312238579180949799931568123765912757064005060632791619377157946856758641609671212823453021022069351462848576390299897597557480477973016395594738166758641668212245132059206049839732073188478486230388190466131527798289334894945877391629675190932706000864073361189116952217924849341735670755338935025156686743244979106630387896403573831798086010555884537474337529861618627376462608156711104149256325079593341560928402495092129264749049776574938009085943416552797280863880513748873838180007446274708061623282365752761915028817784858054346080809121625678139720686026565465148914123990334219905526000363045144454604221624558312963222967232720914568954696897715273148835874488569159984668659198011397742185714187699727516551483980974278840484858800498086228803231258680238148081454435704253255994694951400171695267857458991163269406382231200301856484623494808566817202209599114755680232339535581700815692547298723662649284298145056649657028897831598981973391225897582522147910660720302170696383824426486574633150068895020978792489839879160729145642683142011248460651073005921332610867255078663990231794756193669495904461017528054851409306883253564203557686488948465271172577460786678114069256886432711273843425584950446340476583685671702376424733312166807528613147446603911120664770314975596500416498695511201172642806373291957118648027619814482906485797174447437622097789044464090292319583260771799492916553322027658384074336099817362215591126334267089639564374236653523586075625976319298844929192649494698295010632726187595948431117345856722356648293897750485275126713735971349850735931885847416284583521480775049903694394341790609390561221661111280623383228219783900772290606832356813834840230710882909215954144640904707207492530187451438718986206265394022233544112616911512012877658333619377278116697925364807700390258733619570589597682200531479002618701713781630999718122373384703059948055928545232572132608311211090470278341962378078441750532546344925666515995934068909540238450855198666477159636871634673091626679546920168665518852736728197201700280821744587549124379591383721320577460369353119348794088020068743846373987200802861349215409371470939924464421496279680159433311749350103095683110208825575483466533283234058626395521744261513238139640631098825126303510942207883229456527731201661694123535766895825808672408610018383840651220781240788117827174893955972590667544076933339090327451144128203473284409570383924937457838061626107842250582402786721315872015076899526637482569803710778875790691165298961073220712647173415824518238503314156832084734748054341146471391622003325423338529669238758089408100105043211944073831638672068596679721946799122328301432564397550930465755007886941298476116786075196427723524411847676910253866069464855053430254292833387322103047635398947302827114360330864990253177173429652447052787870353213904027917523096986756382281611296654000792733967778253060557795505210377050531112078475593960195975719486069841557518223047840574636558357913479448765941921170448542233819682621943987702530131624390969405213486230629068051664508461678294502708016322929925401033109753347983596526329191412944191528689560869247038918945397225254657918505115902449886211273263200807251458727137108725560406788029195565743284509118497881790107979145409229129340249457813651413239437748668460672700526468272578378101225554585482815778799694090482282507175967050856813567707482548903244314604305211320904672351919679833657452876296619975651488301936193285520813479485980396365972366627157960879059989599348185066620946206695880553820201208969064493603661704998922855883527219444129217625948633156719027274643109598820368671577664345388630520587749427345729994091222015563758465710198579641841805619484892689044790800863000835596304418839325583994414542453127023688771960215159855976433389849245816628270940216646347785707717273661504200332894693603032703926382651735157084315118245219523346558832053928001180739534943520779088894829433046751751840480040991071396019426517013289719214741856507436217498712469855368270387630631256600685465282267093469985316490886329855743177562686291257030412406822231949721751715396909288882167572687534439653177625223576083972556861505688948343761555853945694761195732640835576810398744162081510783972221201946703292462085694083020408249056490393203590271965147903012941504913175971642821042286250090704753734612186456355909615182589801291506371211383114945622219322383750479848774061450531221270712986033935900211323003761103870354383270244624464685278157619226339679228188903200475259246636285303892326891673015524623630312749107234242688976350295166220281638742674981444987530587194593562494162111649527961310080929317650065396467421409322453821926360126572650977091134787782473059575539033746183937554075033299741695522457721311976041966092026275299735131095578794316981800679925132774463628239185867646058614426318077108263259485790205620846339207519046107074001654027635481451087186613212306793081705287326518364994371459308280389445414459886143130833453486651269705547246442593300832327828134120809984976274507795265557204295505489965345852844517114992553971411000827298645269625472603176951674500951479401003732517673519255993958932547125594823286695113892304923703532687186440362277165296405880853330540636491310200259216465136381044252856861499189180990816656074666349410569199858899810536510005654074027634999802934285702901950544329271101849276329756899112192501282890696343590389837260072738722134292105871409770815957556802765745273922555144989271244529318769123280558827435233274184242509270460608859336390555252685157466757612399070761874648819070351191300750418757004480858829903241409837715884211377885636061513486324664464206805894730323498714287803985646059523931851294015592892972192273009968578536457179710729237282992308814485529294702567521279884832233127491971127519516197494790189971051551202188604019229305515191444898171064426998677308209955398259505175924164250076853556797816368668269305399381001604526189422464264406952959116100827160171220251884421639859195124745390550125508354916790741956064200287399853232492541048114479359030603270984324497984538613927638357223140479291355517526669764635138746763539411468800773391765365982377019902685315829557153602729485147593733406441438925268672192311650345089721733623408011890071909582305129551558201424532866083720844045697863292878443043806862077176365883994938361193668462273399738435497532071245967213889912216086827925707565856454114302466409597979287664149086188776469569957251828550186932456638992228036616888255046169749730274881637755955628570008681709462886119241214122443239238007382783356974110676012585447395626284942209448310769215959255767689800381455586343740861496402715196875171039546530986370527194221372473357396020408747336818355713546914577440315584139065849139244144646713017335024376139645352779738334060324376985073243265322362454232663583903460452113567151654908639759053031826072020001401293575245676538896017887803642131542721276816686571634679579429452202824553378730383952909959008679613105704564025861304062526643520612868514625695714180225495590998353640116238771948380745052468263883897862719061528294452154869625680381604952936467123473437443228883181045710774875981193225014144181401449093990559056244108491084420581731227539702219620793284371431044467057682089692639272694893419297040806598267480859023191590679728593856827210140939548100875701292958748938904114147016168676599690774982407058363886479811712218823334733490640128433687024464094541503107180165806630188344708840392652178393005699125180149485984078721290502827276004552821881387730578366105398711785727419935459131792142095649305569075082062390259555219369964015401355038942351907597829804479054900775041623968426271004582170121246819149379367647697775364133497379537065971846785974156424916436812085348592837796123852081188716951869303602194860106660205019946253119264921015152583571680463375482485819048635553779437380121109759428823896308423539067852400639046368833900349843143602944622214003728286056205546943967374462683498949546913901597380679692785777311779313363495915654288044840852966101443927150790048217711408148765921600670504415410630989409324293579721932475973711453875657259781301420398229456351632120567927522094258044979570402445946322991490797073027306498909934228047482586049586844347672461066017559866998677039550259800801561252345707391284594785880539873500436241353480674345442006733466054725447597710324773026016507525719263385236358786819614999327558638961781047631136566057956416668015749965407179798202781644061492259181815901153946935273639632556836542423776132092721754260344804343956752600023203847212177276057108010215506628990825837696571014341890626643840487751506109166234820825367176745025276291075063101286191972455388537214670277946548574384135358110959223680316486862695033507138861271832688267953276701976020151003075750330654475967160254921358506317138345814569971678307651535318370984207191682034702086010227971484486254364158645482339553315322750595672779932927416468474670075976427132385098038190392588605260680361005313178746333072231527980397450480713201955258398158062599180798466164359584859142421026547371922831090418058280271450904600322339964463314038503537681775113302053798701107368120354922310777250450174172631837121252034426466281628710364957447635336213990545796312348059270767170092147710136357182368325594286142209535765820860354106992616772318631105382778615131577323902874072212693279251894756414271730429272597285955625045202445263470945834831369696634962967373029730766471598027776895546110779055858461618968497942228232270921169609132250491429185122139149573475938749715729892433925413109827816623900042095944197612697769989398243139514903319189707541387708456945273433936151108328874997274556003730270471339667172700356494440389620907010364352646590887835799460631093228625107502548098369737459347812237882677652612984079090168806039344530900571661916994380158920264826475810085700951545104986346107699341101767856761049430522756174841865629910040824786158258506390875509496277938312579724887824763544136007047575466075570532685262945353606831454680318806887645260504564959886655369190837217213947323752161956865186099341097004465063498628852776725494915237092912208391757219009247748164381499506742597724580888516873705857079942301845302634254271817576729236409326166195014318251090251933954384302858684834088150102724585441168597673298317703503644018158055579446564447833665880599385942736928875052556239182533308241354830117313566567451345664070215721420314982766670422682992670431731525713403079598317176950913580081463175086460530029272596862693540676016888045938199384022789526219784276153365003692316285060424928333549192285308580274026858834868682878848822733392120503809128904462095091077309142534419398634452242127668243852393948047335988642424390084273036895504156261686685347583636117604003715956007618886115723312899209679669229258519209906217863216279276041999275325311861647937507559863431874342640643523881860134993139414998307339206093665492067904844230933010306704068392797068095052222020097185741226994685899088130119993688550304380360696512376920781306723045467114848302727709600289416580125902472878531178150226662687322024427435668362149758549515263707814246809606160645556843845702026959483822197407365910424004216326583975253122705314623056860629148591452559877335104517923452331239253204844870365424879088316488377645323982940952723698269460693298176930798348398481378414856331988611646312089071636332082614671702586185081901297288081878712478738676985680451243907620619305558704790846113675873497787792084785791646409520470303526307993408146357985460894669433725813144594299260252595897057555241415038219318179746044570318241999580386890473828658161351863318950149404794671711747642030128840107421436021509163183172620190433795474591956011630197060757071337646433466500343963689914787995089163490211168107128964255549532006404402141225668611629411611539514935386320695452219886622982338668191382650117086081760058620889300004726662309355206079824245202229433438435945761171766035905972095943726226472596256385817981599035934318950878591542001839667258405005904076563373027960360965094397531873013850245585971677223523681056961511451587803574613604422193094127685816972369653611903570292797197575493083847965328544881623474797845395748079409707959068401135427627429372003326097917418641206871367647225510288507305014906861400969876227071056864130577920576206342047315572922929940310664493020186776251899552666394228730181242928963574111888615673429623699646827121325704781832852820192236224850803870451162366904841978112403800966612595725391227443866657752170242024943484789543611847736026125607426310704579079629962445282700342798842887200693686557367416836561020418968692341888651243715786890590773749739437536954421774235230766945241333905583143659905044576918492868820964340299092727940903040525097692495569091133633290725637730628091261798026096521526827045207482963584253872812222688813435799124623111121721189473071839264144948880598810238858942538569846497434491561089045584702076081614440565155619405415881423728639531257832596696139887297594801947347547461351230967372072760561693992478212099509370207252970203394228304684992558574970602270032254654472158422923173939761465971385516611256869764290334280982564115520117698801998844395052463379789354615034437278014721329114648140648866237468706408232272295776157427080073446504399387626522022825534324341583245399119079395789975391718927779513537017995087145723130076318897034843198167184994818750304056302988875023337261387077761484757174916110693988253442094032624170847424545498469445872777836823384371797576717303485421578603946324199522531234117665562079239724844941784309499722820157274775014684225361594588417709714110330445096437113680546277857176373994792068164609426817819488249608135833343127918434311744262550579418661121652014939988266906031610013430214323774420333341054561645177028620165556308174430761739582115951931528753310832341463514493716008669697154362141409887854612560186178647013544540219251815878003087709838175552575660992922202298109514221989607580805700258846010491788002493924046891235684518759054979139503889425419023028712259748895549087314263809406218665416826570888840259051713479320454862716859122993688830488911062940114303668240718401425174430154420954910521574451747008014239492214154719040105710861354964195638148437203793247951652436038326074780612363478513617018774623930398713627543004234334029685968718706261717579151737329743020264317155319969443749225974132126305738841185372580876717537980413657833820294873172820323391416780125863444598220901136090542665385383724107956449507237964513703224255765246123941575830174199312390418096324399035966073310842629375778226354927491019479478495297315223843748789096423937726243255112538682209493840236656601424767347775953199714306522847820844957916046788981401279666451985539774413074297158723586978121912537225449001690726082194909629883214491736389711148703204741253738408996832520821060119703405383547393758504132273851638010015054248630972381059696462001836658721939053885373947285171832287486285400312959942271125502038990922677273677925385606799446486136324225105414637517228562455411473263207121072675647555248100156857635587118822591607211316280160686631733791725295693608326585863237606414035067211471375140360889394967490908848732415980008565346415005285573653668719155957403789318610063087975723229727291968972768048238019910250197463615591585091884467775777375442249386725567860279187415126834480942170512196713425237693145341269110582914423931686670226846960395522698472381758375049511207527048024632231502520984501372104388596489454877164172456291846424237343179107899922498912605186693531574949999851508834247393692040937003159769997076646458799022528070133100079842932886908485805920490982919829692566104035994194083887127094599681023611940755754803684187793142150280111598979225586164405269582615329105506328357293429092618784019690598378574243815648473164793439482178199797204806641789130578739363609602396929865668774118762441726749893675373095909879341884213430695798312553877942881405456545561332201323586536966457894551544638140901609163978673235833751518624242288420342727368177160717420482630281212170294989664039434412743847390340668922833124831293777358994432597254867851192088448908265675352510818364287655348071635258809015642062179112343032629244443814571932823154062327442072586853773533646174333790428264712094105048036643558833668256886591219515239068106766815334936290393389957443643251512110855342914234607190216937808005769483928635093642971535594706907159753130517761677032198920128031818322886429242218704170968388599790441775811632528385124445516388541799591469362705730391542539853489908632191688714546505412741499279458728274477395340055904873151838650514598342636020948836319240129869677458931223725166239578743219497043855523008830999145647551101277403560149037744311398291139519037757049521229492526901317338576941734955000822098019516338692805564734236133912034764264530193867047602918334592916658008662412820157448592700416859895109074646076238020042393193446325311152626775755294545635508833427972378530921871322273344349689567746288286348576272566410218351072253414231176277527483374386257584562909864793538415984127867964725574781210968010619223789123289900191055641679631227032461389263210719931398355290961322957607463379294848048852382714512926854479414793158953694606979965751172914420833685928745896015031302312310398671385370009350352169686912897708571649334529791778063842995659290036398638275128892972677820571863794399653592056065844893958414938961798003297801074456590698501711379698681739745376006995801207710473970441234500587809867303886646079977314670400734630215465758047482510973894766674845773673613413090752574981761943939704665969704166747371856787557546884355160875833329480811037991934371337694530116820066303480735345902523586512132837097137845911496086287001830049562388369056193200495306434440837712276743420863057372694205869695256483245998938200343661422742359381150980561980377616649891471435616192699226281656758194674038048798752807614571098195933829764777567837896632078613253355902966208832555279683492667375569360723926488781904459487958005728261327579407253652609210299728421582686102679910616167644494445304576496945467462708525389986060462110464045681063635563168313198009185516988877592057985955841597804021585846921331341058727837624277606122421602874569927668945925999253988495932817239439165415121584747399023081415807058925456746739808810989696787672730607695102024786449137137706287346394097509273592001153917252107877610072247339921366758015192015534996411921385028595177356132955761111118551926888847804037518621038644868159624481892108868571474399945010730705870032678026389173836125163479870663071789657664235612541965326456149857888345479465319560602081978064365091755993049374467913736882010418089783305593086915634186914069355190693063945330502046037285241094983627153717940391203698300546849843292524756169302610953401130221775499561720805580664678222255497077084232291893091592882976519103400231598097207896746128469313810474150781702736786568381618421278083595228472358331989317006883183847103426856315269007005530399378157605430586901411153685205747383557450393902690440578406446032820145452777662296803684040588020500308036225130088701418951225857303501745421223872733304862118559584036850100973061398256581862538395185729357836825242652134115913091367155242234871548120362932073039946434994476431093608302469308339954375719296576494751001323119116909787806444728045177199681389050504751480893463604877913518300596729766300425331033837963879030588231143596180407156893194724401709721934702103788788939866289422843912630785632207082961310950927386804295393042106478087406758277091311688736661664988790244516256766924058820532890183562501362098771530734794674168632251268394326088649826787945298998085869896237364303664137129020230840729039672683038502599944912378258684527099349119535949427048825377314546683616042363612980085656705677887453090011798713752700255534024723034106003596463946934185932645516353982004187019528477724927777053065753114702102843504874211520934384495621818935566745662379241770371561795059191140349322419625386722043300586955284339325431458298422160226323422904669612308071996832610594452457285939239782380866232144927712683531172083953193304938546248068965891004766452565405186348762659695889031827229828195440903957851959197718951460422703096264262706605272167858682149216314428102727568746965899023303259829285755934670979821438214002674243586273903082354203291663755654644957575055591779097018207541001016172656083199795453162222367504437553586959379418129180881946186566898082890042569044033449832651824989504542657731352850487429159217102581185610441239255317953008815723153076631385619059216618037834509808737503808530783689564301718568767833965767916138840119749693035044502004446633707185928545553013008483276217429018380009955878684193615418941159388401362334532045034536332538478346079849026704802643723513831715287868901353106830608611235760530708731894317532901509362478310677981225340036159697485041235530032503496424578945174494475118598621227455384895185478817123482085854030506909974267125050803142374490366059057934987850216919426222798495273127774840401144479742442842992767654963003372677138840471999373511904060682734156191645630134459107832578249828488258050398072067154860445905900791587689612408523378375630571786573845450601519535383650870368357216697838698444446979146896647600788038056279162827096411662446943677655806315329536847021779397562252890038201920455882310982900842090839048788675081966183665845442122289006052561084041324584241175592154022675490646466908336055112107912062858827947256546964505482228695791871169691390393126685055219602592352387236032009791440123237995386768371913653598196972325047240879091172036978105016363692508465705273820298403188025813738210389140783290764996049256916579157108713772839347244332402357363644191913994073045608116711748918339402237560168285900414946841411339453061584651884694340823534628608715687077080438145933875748288126019214238801788013413766818197728597163942627374368280402253058129956418827269740086551052697414237264130558457870279287026918299405040707596847748017710350659355705009515700225213507121664704831476998674804592128823920186461933685708615876908059868068951467405406339907248147577484665130911928481774204699290992205564825234193307542382474237059081706068764517275144731721803749723567442856221776972604403334070053830104911857938432404765857161106055847586255809813188463630555513672862243782989641501696046982920219466702099772255222357565620644054910205910526073259624956354691496728908661821645225564379324487640170439103117837424549898814257753473075351128762089193212014217240245048247209940910064526894654146321940098773982540336061844985397997208074061291913526823243307074379321443917707279979889795924431055658109266355510579348822679263551756339246206976457998576450128049311194910830357356760056922510240339585673290448824359037721563818023446625808810561634026688699716577259512979882972781745853163472054386118659503182913274292597948448446423497545192650837179613554550933331387235949742552419596024307350084161110529620858300586193873006708068748485922723008648961173130414369623273706701542204994418478198199304662658470394058589009939647120879408395308507309167347973745352191494758839430676208937281014335786738557580943613237596729970631587024142453072068759351140301990973877020507570445206208174909375170969858006152737835380670249081439143609984817356637230069930453992756017128315708847811719602900318206335015595019066205578756226080647727857621077073155289967653046655427789639622650994808475951386759890043752350304911266207361392281334143655292661805020167380804824984319300865550720700474717650800421193732736733985422672169665228054087992850788014524189387869254937988920791896129839151210582866695350136344401981249737987995944777715341233819566802449969489309352661754548972461492935355955898017043551611721961211940852905757923612396054750345475133905817166807420880499088934074437170722412276624609689026722968638997448708063320306451747935733626455965429610744306762680535154510420885435367785242636823301761007585905868528435080010899525821719133485261772788288015263599438202780871591779109694917361533900364369924531215689076272396328326843039860497879010865564354093134252211535234995104795020578547405895144521370918248216123948361233887923744999388804503285033488642928441326832220050072946490665553271868154101053835114171591985487701231671334910211944928731428026372294182555760762952752402151380569068688863441402543356638968250191893364725922882644666115410563708579320225990208052887176267667151854045467799009687766436778042819219459122786628324719208689202736757773729473579944823242872116898523410754251610869461058909307747389562999775396690075397637556496299195729639308590137557766893573430490570473669628190276879626733454147214391871740157118690717008982472741149472074897588292075422045146345037229723919800902348722358555038690629399680514481979181567540934104023034835695439875990095717331666893078292800897434521484498367756612461997603429026338518630877629395702439909175804274985959262158646065591142763414934097872809290037907145535938065060718760030619019092310174223649870407330580919727487298498279098231779880959018278862013740598355856354609336492825999543724503699211320613169917141649802605281784368881306442580784396984532800938664008054614769482812153048114115208621819237851159368917714720999409955260242501356541200612181395170726900270628117859308994123087766461400995092100159873062834926886926014438632503585423394835772317965454817953366042067410631266456143378736613191986008660299382759660968787773182468049225123865250698701015473049667572103774154472749737126111509349036652967017043026485135206451826993452648834797097941195084016732985186955858298859255762825572120513973589649728356278366320873223886615576858693229288526221727341832544378027786276896194891133927245214656771488240647636564962044865551246462621890013200406395640223929755258464607802783791799076656672673120645922053142877521207914828676686337913999007969691402532317848434879502262922211518257322198141954429629003107574060574270774634602948905749695025684483806192742154783734386838048978646761628115603566723598115211220219669048383613761721170775353707587097437352327666519785400932987529954512912611160085025306376511321870770656764400255087549358523839552273073940962884669388460310365504411819023867159258333287381320241969950814009604888497279905061695716392415414639973778042497304472116560688552648929556546860053397955601293349327762496065582556007165861447162697599310911628494994650939400429567336517671495161714025602720401826759961709682628811631696866365087638117291258202479936937552288837186269356922309024642191862676861779407327168876223564787887487547439751204641384757585051916427783208986276705638856908255889324740597943124228469434744100927906469284576071178183221970225807215171531475454024078613485978372060976890109835025656382765784050810056047943370450255747592712960437027249375336589596752216161493648046965291344999097819535646723859721338564928126018187095473439725580409028948469605764952677827591717391816826052377042997339127303599995673924373073808186669118180235564287172310348652533211849701338803551971202188970099251483132936267405039497665842085282468598700416651698297687024386472326472279571265561852390389478722037630948989531092529881426341676595235725195399054221504561241203159863434197967294730827119529597800642151099721355794049168865207266081450601854596666919879759888852522609717771696116056041926759386326661468062056313436686382269824552207761897686548589930978843681001511196212071449073435685854643682540784012316104150124228803578571578424897146132224940904810485357733459556511086272337512590413883902171217459730480136749978850627971481151917124417767016349749423804012663795744539736129938017102129783735539272671674706335246608735341826288589434739268214625058799713667778131032503458601125997734755545839289961057497546228440911293728548158942716205318542738816874348853287191986912118820597123324004995680155428793697133441834110611140313265651268610820284890532294353422807270602665642315666438338493091677781747530946438426406209696176547780111775989767984703822762587644929293618386673749390150193677847144372904352264262665648805137916209967802763924404491039323634154623687823411262472498200228193540692782817834551668537505781122712619541692087063941454938257340573635476698436903480120181924461265405224887347177631275525982033127003904220827635764450998320690386913476736136825367592407546207440918515458873665707903086487441479307945015680573008510463265687245977765383685670742055122522642812110621067113445149454592023335595444091812073287925959790421265727271658061010763429576252316557041200206406430748139573634289226914274501912056091586135764155460680291581877716609008244466296053792530433662160659186807103267970689514519772101035074175231364373722672540735606235139019021928659799850939630745295972299498326580210490122888440545076374252737071881669739290408778775730708143943381136473470796440545341217140229117072130334369999515687182858107657701769364960729897320951269575740664098956344186952653268387042377845248271860372535422068406841270634474518531480205384620394681737476183842680938657849022863670890131044798347690053375315079072494927520019638094790650190316331036771732560727913131952787928183418373616262328695740447386719686115283771971836967471072716965659394790515368542147623655329154084643389034479659527400864418992183981555677305063926202657956518745866770896136051866691107006341805803107343790204533192429032267516399760042725951584677662087797400697515770168273356973842614627661411786226971579207971242406748723021635093919133243680326227606171183502840239461396814974616216989744002214253929270046710555394252894450925138707648051491865833257871434564014139565502294417784823079308969339047604595712968478589520498333574495222000674938960338291826346702429060186522213369505512303800359075454537915528923241602759343233549545710567502563393259993966709056755543475100098145651710657075973752487750306974614374183507048910295439948085950997437100798880223368869083116321366135421689328061533709842318544190304154356665737499214192894389975036531447563094235539690620446148324307550403308290971980374007210967765106807488456353655604460207840936673307804343704712842130167609346998664433461188571973713587107497603456721875581348957537216863268265665877951590293904794226698185226857163788436919942499511782311995733623254445299676250977426566053714490790369614847339496471723317229101808943330992704699083137601902397531630060681020351248402226878617587809812713851426429166278477560840064886973857900434623034927721609164711803309279069709570075164604464727677605469084670740023389672800406330229184126766387363901509798069112715539635877262802652612706538932895013660744776295904364495567552194136087281648056045820296878024444522978276595088150225662238291354535021945283108499399872942502105944482143917573387423183015648318260303756260908887247531630911045143968721653242866954969255508186207928107086605828946582752300237104977918337996826610332109319083378801589748548902776876921472685478888892937545600399869224478829419598876926927565131950273019919937886322589942426792821520351957168187114785899587039669272392222912710738022213030123657597989508288068049129180696414898005438750153055276377804430451070861083985266832449414991890136577462247556741237392124016324700375601213990079222688490023873599514848411894667899794609518716167551346779334125294599334067226417585486902814826389874661370765127635061307259223853463013003455001090107344470855175711088838231325472250557327928325086634189773029458825912771681767104946785617208851525361833595133867388033339853653251702115070714025743680758737015434379444605367614396631910777427420367175490901149057688733104467445747989732758042112965629545516009088303927451308178896090372858903402206410779599274562376196538952659702815307571519660446120495388785198731740638481075114406812044529689440632025590216326046048949787845751152453190030360471486707739212870346434850810596258572840920134356698205266847167973928609209076974636428052294147024008148304017933846497723807421892339220691497759335705931603210613027560291837445804547690038259520168095887507208374060585437960377825059665816094941255329662401231836963234471621307686654184735064560236751102422967936249456614701987829735158993985359181423429256327632530129416205048840193085172285801818176908249191687626219545715198051380187610252620474777849933586603689438531747716873966583930706743731673148763829290935230079077748604365352661742703100090879506924663160493298280491140064983945183798394597576911736619912137607359009395988073999839632532750182346148954202791660640247172436680739303240616247567477514369351985060617425624024604506622486882059283905127856521163284982643941630572511122987325953338222768392061377489810342950769032902278398671851402208927989774044572629070185042443071954153017115208806076718159439056638541481640659401637748100801366059380345334975551318793125273931798255346297660638842339322372913559462206065477722132062667340560104946927250015454263704411281780781414711246159904787296977875541819958190654324566085998846987547665942010060280596846997147464580452203167394116934019091411404783982539308545858286284188865589500555475585995731033662905141181970589944744286025387840910093882055750269830810749633789498107324079665183644731352182614609331551059870509476283507412120953378999561583028611102630653411967607050779942312620633892206774324663465655138648399804763477266340794329313180027508522956397086244707814092485915646071432395377236333620779763737914385286323477490823143168821510240623240601256773836279151673312382221774279865080824906885281805425947163293166397414099055637483071161069559237912675757135894114917782996998808947863194563492165046751151444596692910519404710358951365405166409201975991613813169162796756463691197995095178456377456927297516480221941745923820903611605734819013253562440703007387481704656617333468468681301567954261617527083199828065962521552697100266239428878247282602536326584836055012090717373004845770710263673025828310095606066198415578870402931273953671419723959358456914906005305864285147115900051570232541944495127737341645331229944918250232675917352413236527114831938108760811785315481903168247296612807600129750195066382668242506347508741874998962425622913886706650470962935328248577928344119287830644555237274949168823492857403054824996425513758122935557800393826492867587717119937294255388148859679256277929533658252001166276830037580132417279000248817230430870361673362143596101260879606743213874780720240754410222041773299800103226755955629213883776499730929656721801893664359722709714836964243631721343054162932649157574481610000047530223786325219125017779147494710738098782386540286989862589687710294185060124114296739419675629485443220013635502513106214128475663572108768127814321610447084471940957368600544022552271266890559062959415800604215852952596630637451833937050683605179998735644293129079303324794099597412711858913351058756825256824633895799805472316424626962777474364699815709311802327277908702174668209890291219932000417799383243535413340750330258501939583745476070686126025202279731431511898091979461504600433969163638219956641594819986595659455869109991033534526995938852001776015186989275533898397240289361988713566110245098491724236359936852660000782331411782291690737847161777850897892515239971556308539146339779882824159789919080369216718359211645027645097393889678788309582645956153890397990979783024585549135630464648572247904988133001761141028149034340875637736344645123932635063931259199663933100147701172023016396537550932741670351887087916844284019614255902481657238212176464521717779029886599344865298738180573807750338741672889121659896482849128021782884574460025120812722154819380699292079990508283850486791808133994371815280154495981423940738726619898803163306168431028688026895447350032307907377531720587864381983464897802551573951188517835518364795517727097807598229722675380378888093836509663601521645366337125629211988970714181836328522766251930725859645696333279942062850419090475784158529183852567657103283107770451547358206462539541304256446561658310634529511895375483701638768189389073094496633769494277223721517610179364481469251349023074329803767603095292165383523223959051684132496019532781101359680157687809632157114427897470758097796780394448347879058296627628551208500534400816758362591138112201394309823642418032958475202246767076573566921180714039082669611736022858022186178487541884577281791026643517423796433262056615845453071526925715860406167203381354895249514992396506645539010541506423738288578220952650498239588213777544938484700847237558523345362882829333227799912811343616019716847864090881064778688608734551644671428975259406241924015944247853873214511225712127225922600431293783206474163272412998170215055261350098660531645070050188049383241335179556404663853778878525957943201461766923973184897653183137370282600408839593448181701458101525401985625595188810856173160343030049423582962067349537442048198676511544584406927364625523433275869011216414983641990464721339587289963238643406708093713981635940680312528502725192317277316174198423848620116209410424426463371383548620286624881387038872893828132765635179443880035859761259087920204387146059997647292584725334374422101925319552212228376712785292143393069619243873784795384354701708480519469278505289121516611807983612293727384830095914642157731517326008919752709091234735878229037942034020781710970461217752762080514679645844625739244543153995806249177784898818561577564104793857295630429619537186145986831278959728864423819410863562907044045757608331856296863875853858090886045461480902875400552924743467347137421537755118378850376982980198134031983565419404741764595503901667646965435798481210898480858678025153133237759665740577628385940317680187878870316338625610267925389800045975518745676991278470793278421426160114457618604675107502784112793491303638174088054028510871951978155901052222341061283108409460148449139700730103612618601477566037763980006051893096426357482577655335138206053881049663331126974876616446232807198781514652499281940067377966819711581160962705800043668727674865514021045735436885923091071593988811086831570165130476627709771471774566829384827050164662580705036565210176761728066044543662014586266677198604887628333146429415412753491571780874447690040171265956691190544320322747416097303153485721221820866435887774777330934341466170111693577054082856110365055191920906241352942606799024652006960221888879753269819874500304511891972882273065296030273759749484522119870164994157949513307611798364027362194087979178208225560719405326710468003409081478764257653187858397505995842041440368433601477595362674234439812070031553990104690597577170494639445643055772736842643282334661535534784222042552434466360087265623493166814862809977046560442243592362978187706755333924233767099018805044236387568815951522456872220761717661932733548589531882014579480424068737231060758223601596670887019606310322710701895211865483298814132269526008480576580610592700009708451334147279573431828399991213627906073966740566532170055733226811438641590202469471488500420380146987459363522679967286685336710370171378890294814942300428261430599561513563966871950497769693402781815750519319492539429403781253123017045378692517453645714551275486668631527533356139137469583351418648806191982664545107166281935676998971241576397394333267155242525452736198599176271366425658875316467238237343453865156914731750685474542769344240814805025309486400665799774234212448410219418609664564666191075825230364569141144101188087960281333842230841143657995572338967189170445592480806715574605161912207874174772053232768488602910352052566298239388500522844233700138257216070581512367077175034134597845324448063135225167840319653325450992797771675447846778710133617527113780952511997666673414700862045923941908563782882264379903870599387985175874978402247052093048840775996273930113401193122996163612028064288608430254725777513043179639663330934695489196827707657035004780262835960249649326333799583631036389729201412595917046377250203025927526211225934031529448884055765487087558006463932248065683902073672914128828166380241590145378022514557570832587323251486806007801942358688937669825120301575430061752819102372606590460254060670482692075663841581868914005548178977479643081248332911958552879936210095766746913754615648886245222252204442137990173814833660762331757078714294009100212062655592035383011597195790808222781488315893999021181691394277663280886646755263318090048986201708114695313253185570525786567827624506915806488303473110023746738439947925705194940218632540905423981899936130397040038524098043997830912659323197742119137375554606205160799893038059115368377225490851119276410966279932889502770727371138763464786064620684710773775490052712336572906033257130806593206662518212251092445490021867577440341939902925191220766328052616860945602076683487181759075072131197357566839261702494834508969715387476977689527894084459354712322403906467761957927788798906122241124673188065244752385276858102540788259136305809626346565937810093450214509096439990096534692953223423050673985269949990564911322688052392570719702677504080601997255734840992653013603054862016536243695182008088709313867367226492586360468435005137637495033947725360089552174916363067878719021436963835018221566039665135646633599342147892012531768883394033364777756176989480297576500123891508227814545552815907555069957413097766937952760282769067783029303147232295885420765800241515356312658357291994421543245495801618099763296401712063740993856708117096655576667647458557826140908081747646472845304027123309737296344091212544320868259148464801337920414243687196533516154648825933650680422577414555681781152121468346026494563584678811749668183833705474003883875872642380106790892499373758216182263248665119834093194700894931299656979243741111717856844569167009042638236384911926187992390664208169823875133059351869588687452546015077794956992096605495639773163423885126594640735994918022225929206914613569221530000049847047442616300966220354862364378773387990085654838303784795055884241434984396697271174469656790893459824078728099330851662051262412597022348987758146069775769657126056598959435545143461988436709505836418257009402293393864876713047274775096897046728490500922117701307504994061566219110612512288314075049017836499526850537327925734555294105356558075205432593983086727808611409364996456358910929355342832254348199043573509211506264368590604173769490423579999075750441888394290189494965262498412581761412138068298455569226027847878424455479467476908251744493294771623080527019178999361056786942974043255070721780135627712510650090603413006128759048460439527930868921415939231412624744549480613674582238435857626236684000878431963340227263085400177539800118951044463532525586605815539516731883732198681876797755143380790852513032793731314614401102016863163392613901194525198145501849106796877682673714081903815259784323381540509698343155656211110714912618437990956587326340248412361738049824980110959939222439839115547641927615023733956813053429660665881016221455193896716564911803088779184080979913911431521758171938610974932223787690938593581682679991272693888191032317310869726087128800912962191816891537013823294717258088226286959756878683010290376480373031991123326897584799775520303101910727703949396644320648996700489830628716616400763096697277428592545163040098308456657412187645210084029024498209206203917882162434627802591939230629887325984106713015002766525277117697873002097107912466965566324753597728400746507467749313015094827314867918171160442071127311315731217936272217280857077478391402819594891529851249757435066299224120893475251172323246818272045393856846826260263557932688945850835740915999281450493528076349126867069087449262582222700559766262403904122988591375563732481287460044753915421755501813739824244813070332001963305612858303098797654307643948018020254725824810607546983052074938093901780642651177354346320681613671672979798317183514339042712318141838272311831677970893616757887073502997511280580401149670456089781914113220907472812075033303278728422170431758036918400519773041541678492382568207544693797096934977799458013272798665352068018116787265580699606256677205500439109876129752322216831123201926918760296641997735565482761660212931763094940487764296324734335652276903871469890992797877624702878661583501570116654386766046568545635397549296072597473958914199074593009614697359798559325913672238004092655930014379118617968040199784431881508547822030572028534528434481178825477700997672019570282210090536568849880989518670252324525883649360086410971299880080291104648900958391830945224448872231250030466802311862285611688191751037713150814689690982078887781095642678853644712678205103508007857581726461025534058866467773256829798013606150542537757769866771864559295131244435345836297271218579229466626728936207014886853312849992151382046829420464111106374486701531271514792543354396427005155327283898645956671400905845860077055679354077733254625529956238106287703451707105175351207209557281188486200082762395046736968877653429265663534086475474129002074695763166725746131321331710378024466598675588012991795583914111478910432962962198996488315475212467870987981441015168214499860174902352760959839207232889546700115990335014569317805176577316536833116775099655361443452261958383729166615240758538743607497263392389258349380766929775343915476607689579059023275753558362491365424208572606205245671306660382441602060775360955065734559809719372118145370786825891434421483659085354731601444149297755083239534337292363948682955597419335050030623515197394897641788754270201435857958716854389857769007270611907806783172201789322878697837689620278993229386321543805950784543962841069918230216144593425091434309450639288082743406318005659464954547607690737754356600900009578305214767456479846264231310456813293102549335718308706877841159523414516638749596681404309486648190284997602648163007364650077134839616995376573038395674364462686662459753415356252862818176277369485280622686879862501988433339350787037711189993191451338287965002857839022887190753342205578094673344695936073638694254289525469733620398202620602044766971107007065572807620742823218235027207501873073864950197078091228635022617890036366564172880958533744488686780149785812442563083109487152719702098290698681591795370397161764831403184276538459412250098276718187853440125085062853360208386732115832842496842974674318180837680137286625895680293312666215493501596380202705058040235904717318054745344024896121161962514503017730696342623317362415045486468265351297959471363800314677520536592841345478213426905764324227919831713178765667197851103559432444305830602025979638353541395998672271993469585657320627146253014031269411686185661022807522235031321127561685266972977021484444428216731227030293388333208875702907799796927733850967984322911841589885245676201229483894447446943184527968534128900886353898490874585179286852188668303839662083916589213815822419224756978082974848148897896107943508984724059126669127235400852864201153469466171273774622080443514193718735290315174753705580223314173835528610552038965189070056023305798822904622766723428282422206428191187476375384682189877775739515601260736963808905323874177485038451827102958627120177491400848623058172825530473154553710555878153022226895641341467929188095066562063837741475660055976211698826032977611672959793293572344170194503693633030905412579998485920357074793254953914630206337300495397503852183874472984654669679417022954164123573711903644205049584160160010734518360070328035517132146582168188927332275638689483609370130058714135309357334016214863855950191208560958762238486690210258315849565486708890614563912341257219212371342977573687946014126905241773821740498621135579624742594620082000898948483842801046712168417966816383471501509594658310907897575871856276445508382664548484915799558908504581320764782539253356441749017913255236982596726130527703688979005055876338853141359557175876649951756863103793724725493436285658409171866133343390688673970537525708520013639486421287294301188213839282006421871107256223251380215002766539617922018956589611705097919712980275838339591476671131691289506934596980267558591004819947402157616255393036065058171363763384184425640794817798115924714316952252833250757497034066659481681896652269062553096721826893758851634427844681605244928050253075891037399017872599052309275149682473054162618254567172356395223532354361324444797992505108231636735861545311203276906800224601054480081123232059078420864530345101139779213755733005634628606450580090508018460230264366291653441577534699804702693367482679176027164676738339456409464874049941447201762473239083280368146455823721955579913847092163682923477924584345409316065307851225614305671729968849924441317243352834172454668332815606729596239959892811993950723055810009847608014264836252414008336018175777983082828429131249148441872248335475061873537197142520526372975088429695597282380724273984910616124821515853253601659810906043963226164583703063840903162704191713172172191833069666961812738447476947132005436952259454341876518912211464293014318226643669465133119139032287339410127980999845707273812583629067353959277840179123164713709700937320054107877919728923521238796647178019469946967514232894527780153624922898555329932053379519199680513682148408709500667500261409110023692992644983614752679992200286884112379432785210993526482633996262127998770519036193936368976465772000759638973623060017675462738504872594505840696226307345657671702421804700885623243454864049332489179118265221273764292139519009293703753746851323830643319313513172625482697312512938648832328785529255083113185941453425105999948845407560914151026458768438081830780167643962774079596597661133595922674712689625641128331736929820006886449278980339465707993542922573885175312970863894327516961546969826983871354108222619198799375029587650588019033155871622350267754380100605376787414481811310567863039365107309485754397807441099499907243740405056663964442977673813704644244893642173483112088296641848645243863472520653929804218535824745561172257255173797096715725465777212659896828117427976040203509282008892498918049364157691392349187729605187093500747683054151457369311471038351768277960565179741990455135927471779898736233482950905602650284347408128541249474938806675962741073356414665853071761461187970129359386110891222737777944746326829145714201056167452142964881687705239420194054065935069964758563517879623600156572557426482905391497473881249077771922423946093464676184303790885648727608945412784350690384823421303128982034118568079048856682125136418126831904231501488418116382699775891117953778384113102568757475674258086185276432666029871743949756856528913214668373738500819556381551832735084186042763766473008050181124742975670920040616402393069243568877588828021936016697475292955889651026262792582901151827076825950247471437452785001706239851002783390011880734929154149943178454392330792788283300483826953187645160550666633441866226225477819958364631233328782382665099557974151737331005252824158692230354746404093444791130531681382535223096521977065972376717310324800357419238959447461741287630014770159027836610393832463971535611438327157666237612193203584877709970783005125985264001786290053048220348383153964397944470723739492773109182483350313973276635245075836261219441408576564894554734596266532987344448235428902963792282209505839532673021290667058730364834085140290184737895357457968079654280818557896446400594501634162928070144460437766921715123330254653609710434801189773502063460903266389438540013995259742323281718327671420863146112205299076804339701411372746929801764913505414666482654032897908009889295735324101869370202733536849758658494243467185841948441350280895132341439984175071433520055422515053326716761308075760117879165013481885291616906860702051852830843128853033850559320848499606583935132980693892489465479029679246884965835076478091903884945543268274105610764898915169985666992196665338347781900425936382917872078950796049572716558809587817508224480586186076352889082330315264153635569668621014678742500658533473472222395976648417514411201129820996489276059768594683421325119063906628401109439171555167737588600271301150691929735332709091966469538186228488322441333802195306893807205179779241673192094179741464473047344435560771988247475872067955892766434449766350554753145638961392926770858141239343347956808469727292364802184364540793198883029492131845986034489200092160780662499591621629370070101892462255186836425971313261295264256110314667170832042032682342254188667949611237056001325965119477674457260687828449990229247817557361973041231859268139935232740351935328046653936153585768126717275661549548912681069578788870545324749644288340918467224170133372278867308465412419433273782405355455860334929893791187681444486796803938313255788864164418069286909512760831553113638072377264955769922223282388059564224365478211521077496811716704676746899910409115650357528532307389596749489628973326276404546267092189861675715438538269366967247632185409161589281953308859903184763946178779636516482245335522228849821891315829389116927053547966758316831712024133308406933728612678167489108896760853672472085726937352060111546617733155167289499383860338154484125149993184007999078020993103975472603696799881606139316438921450818366927403407789769292520033098851575525541986467808077827256909487027339366590731821477432340759486743457217100430260839460636969281415978675468544005323875426351671199745123235110167238091568253143412190867502421970306989368721373265938017938148033534601519494356970032352419384699669741040303304261708289042011394941426372912030560197575883658896598464075309200551083517387721534347589392730328341209110926476851753204727627634375651667006575274094660846321612597401354063559307845345090265603775327506112712056148281437921088874404527900160949794345168172410615077565305040516041565217533838927127398991807464464959053307789701340957006010779737500556436175637942529858799923092284345196382544895402813136286240547625151713021134125114387230905060149899823098429734117482942930166537371982217242164116136572047364721588108669220120950835743132209129331397342327485115795967504865051405095271977197941620555736367249720265022718759747598199864015527663505453105243165722293561857097755328841035724916101847248245268644934892498287042546274646115800327587668518002996707533185058350393869814817828461744836229511131018122811359451699314397984389768998388214517198618851063619306321752844372971775986296755162191013807537020628434448061673122588708638855498672001836032314267021455171730644639052883994287947248545062267993297729406020659789415405254080987265602797273663830279342547923291524168950047121003303553298546263481305973807352128507875254810717340025143772145370155181084518200816700068835159548565641816170261033547327927586341530931316180730739997228301727068150282000933051691631182258500805127404976360134002702521809257242478652138156861299097523693840530884893002456461225687306766082835851049471090473223799177500345196714766268958601357758574731821948721661915883949127858047894759083847914651465470323933684449720563143561326070010809471614158998255970627668801780557491791689052440821249030843222250711999306902315283006002369692438116535122763132475823631569764965996395908662524908092147301507502168411946331615802803323161221207898627062877153796965844190542464054304988669574015648314527454794422432115270393408116704815338491226309364592682754897586856695605639036303723008090962436170535243155976388323325405214251732421808861207361400061491436411104523196946228066138278460713636499632529250358878977655970380243789761120119801305934532449335032026948721107681934905754655603979532250968053106840305682407847734125395767004967960431780156483106660317270981579606133988123197873099049182987974287516242630618571475586984297918262547462518332416152919917942235597767114144597624496748853286466318953333788429100477301652869356728002737090300284367003430581929238158232882666448584061004292298031428683534454832160515028540402102645535330388202617583608956847145826431859831360009921678941403264538501550463394165862697072237298455846426644422244712444970834326960359243893240632444404795425746355129423051766010853574334291480152507939075946974156487191763799466971845710382013607833814762440389578525575897588082797955674570607345916910139550019716219069597674626119721764591689187944471567665323669723341681612666432775598546366646213220727380181756951120653364754380565345353168470102846503883410602705570807975973268028739377312899105862413015217876558362049467119929116501936207562976395584623047289632862060878475196862669564886850912676505731258786637724647660168258766818501755342664017296331778645997294758255119250087119653975438572663853809611747742764079852824101596587488897811786335259434603920476575721049288026509779340709107211730816119058551916084634044867651170498436040435121894353425658957017565381048562275172227763234369581650164683808818029330644551014609172999211062770379356802859583087990303887052465460965804397058346524580757040850368543451560632815268885571136483710243760186455323687815848094215577698056938882940789525950708072899309233314966947080270720049076034842666402864549135910274689013812400866987345701665073514225050143665927052651449116688502574576435540851883715219508463777517134695805012644846593032980848143527132192487295956345944295157459408738536419851028196288569821546786245668465657411466232288001012464415344107550101922036015592420646133688748228374743341141591002773445290557869736658477920291840370673848037169858369731667601779381334085804589944743244940956671387030796535304613288452910166022568666144222274185420030397092256474955245589576047343760812883500715792777654288183876603929886351328451962988791022963767712103217572785208251821217098436924512221890181869962312701896562276619377271107358184963316884131307510275342820586443746245599126748300018765127429905744064739561907861691864879438632813826151075526011766135951064279254284416209671661319988257306827428746083437588791320374743316221871488919951344779275615024781855786477355187583714923183097125880703021641309365056183203426811923299807554914140854078049716769164119907813132004751067611460846543693616138825588446694223351788890799800037497931210687692891969536690038122139247933693801632170756154441399942349700737686843724176535079769421575592970005771125238239786938714841590285130861737077429166534279651284433346745831338858690053526537575014848198167126970636980139801876846693858136680591614004616204168803688744378027432221172958376130188268731383685820437851193256089920736236109676655637338601739946300022329261279438104813692352694912504090490330359040914751501805281080277973161890715998796304637805598459759797425955281665373915338083277637311609710032055853493227812205958145078441631629098208186466179005653026005259304573418592070675768340668830565716187987279640500842750920645429537587543185997344182936882968526862004243667539137597758731883322468658669450935549606940812669863780455642880512189148354292581528825307905318607515320402848670195860278862955056860901371635068261681378565209197096986247781615102626492151698902085834681051421323587296541669064153380183059258930724794978093903808250114415022603978900317486353263329667559531614654064404686310108902106223320801541431241971077379296985771195523888138045845850288524121028586077411371881870269715608846939919295333574194631187799361941606190400044246480547132192267259801314032923113542471199213807048644567902189490438532529683737562037652913594749447251368003794951146369291670367884575979175178502628080680097907653861198263484837817289969767231752589142476402505393823821155003577901190194501674607025731991342434796012195681013142662812327539400015880701017142310181803840848969365077395895620177864882153548516147556238476396793670722669711445400231224244037900982366573227954256004544491488160074737105607605239310023665414435450877206280336025308649719369257157642853527024465394575272897031794404567991306403923087054698540743381916879649688191017800474659970229259204441522106921558882024262373525111148621347317915178533596983446304241179413687486693938991382074587805138321592377101779037647368393865715997235950823569810681907927660221867524895422102139850283381329281850462696370201408110805465018352032293663968242429863183408088613624208768745690570020656650759853374720823020364352461569053460102905098935691283268033849605718849368402126506883698061604850775173344560837183674272949857308315835863725771998250488326447544281194366457708145307706064786735912122805761466369128604481492482984596015912803373861043582304132745531516268775474095008170578112112320026816998513065055577133384370515393428994449761097546157105559595749477901688975667836568770565311408349108750118744873386286882983560652577288374181928643200796970910054558298570502755523428013437068446328843857879664997538684312689822235526582503383152618396954025160871226325345349791083581828359801635408957919606474700298153976464082135410291724916666396653806954755859797290202442435977796040233697010111626036620731828580876562340030801840399701874028281456503541306778189095621374413202776210477213835063899760149464115657238071973471646508404111467647200077571511365129452626420514250709932103885091300743674472326471490630871440674165506878940710520630798628779898884101226138345085145317204904222171385552696688999370123733730997030084471078340130635853831721883895380087796234105324401215801479971345618947252839999424527154785142500551015249342698538291179603679556915192733327734279512410798998870218347282770655095148968363996447384890990848371334518225057964041248993109005174233959663514846893741982440706668874776332135384272698748062006868756259087025874405200303639525406777999365601924977645475006946945875868019009915143137548582635909295453051523784608325823392089903527754670294936004790562685768581963876703945040238182375975959288996908067188102011854067025635638277767937542168010313177188450574918498243895419918953862111001739287102478719683901466945964143253714781371066853050208340895062279380796819295398087736157935717516123196305762717701290763669110816123816656037108931138520619500377690425014182414499453751581514376153956985932208473148886803726173863479125787423851512291386023016477376606743178405769781581424453939647360720862832514373462266300584940809608291384989077979994380012792635047263308000937127803358857695244199262334747935485782673801159057510443188452476285006760177856196706085477974816593643946601815943725615038929332376684288292344375077154373252001006096036081535497834015434430025135262749663377624256838048373906397823365314735657022614425546667402657605097290072836390480839973048626187308003933894780959835744024330857015991087958595411675439047762429773788282436269445076882555196857648748209275115133708941869650718029089395772841358054510679578028916214727210542143534683082612528073938519817027673794835795944800119175292004375615745117489493571778196760905393694914795357342681668378820230784135491574821667750509123178933284305371375024883831120190783787347283559691952083684732605312552770736285449614872122617758047458993182082380328344400277445809265534121279683449884533290691347297403607720251464638077691577024852103717247107980475233782678819503779432611596515740515591238522918858911100891908171090173744495089056158019018254854821276548866137581028506307356488368183559192321224586264911865649361500972660636198424177321543273313729687445931651566857581524663342868153833442929902795484526662471344512791487703338291849570091889941209319164021757136525094686427125772209687591812231575380622901881666284871121819912254929863079624299152266227934085704407613995305570724692408910950308176933668757490363494318365058386160374642774418917376693125062402093724971973931639500010267695574212649680655332191276185124999638509875115227606230932846728762309349867346622186883562085392412573394179075280637103518969493924827922769915319206265200921716749166050988993456206964249376430426859618290188712373650311398049006840042858611976651205036308572772278406788607628853297181101702646563160631589722331820099921419223102570829039989892617388820706323859306976233295748636826654260248964684618071990090116152892206177577729470074778466111833400870366102488570299663109000741166227895214065986025514340256979556938744382198745804500665886243652671289227869129961247405389066892306088123188728612394617059750874981983399623916417322217005147875145739599278590340524033198400424175526551934386946823001291445332135067558374823902899945257699630645219823968487643177544060672727256694067005682939964779131222278893945098940173575468040988861740323404308242916693642273695701311641940424442563319866724560694587130947785010184232434335720067833633314349030302409506293000589224844031303584222325315482275628560442247485818874014135610537181282493130865924276313437003605764594490118284785260819845065838690397272416128056305179519991935530351746706085142155248123559059381838287533965288285821936992873198913762339695691698348506015049647231854029580555173636662434264703398523671782826535582779385424897095532062819318650901695886763304188533841477396632735045026998186058676053359964308663079928774099971614564820371714736806932993104555376329548276669515986101716254080955437612505272928008141233083833229130028509000801245167798342389707889215604805401051627754546778382209832936241667543535850476248054471512193428909742937001343579672157700979801280781971118260450815159091546419069813475270137255689379912444927710387746330248862444925849819447171454575452462840024603299285627217077687606278761209503489163065467825377643003625157677262503423402476689307353862612318136826885814077232285065627327937831287450444504869384026706790852853548848170019885968834496153455183364959009870458543422688347072373522533433152591844730711640723104965747834466014495035691386101757051043145357258998627511886373970729550191403980333347264427668195195091835782346303493954846182614142968376264979075872116330854385220923310857167822159396150619289711866287792762315639651463710831053743998133038200264870976099959007119670810243406337765849917083048602244954845583683564326227505984035918940261925288816494257259945700311128399648672530532009675024636787680745395081078182269717862299896704722079315632678436118012475048346701429116576393875478602466947533700069011704761333869897210880284585587507560258326618980140720515618573113946242192458637438953768751632577322296880870113048971488008581693044159955841218815311713987726475032987667932797792698489717249364636186388956084411624783768035260156491081747357219443686702462118017508369266389483072168351773773047985078169146889501807934396539885474294230866116215835397699476152912545856989878566567902703713626866749617383332623872530023712156383970100139377059402171532920118380012505183335829139619184717411498948830264230663199832128218337180861393615133539519683692213953671383686553830902197377908302784857053166600623333900642835884969265133722861460143037767923661790245309512606992085823669627183637881839882119284792302391451306804029322806773411967447945818735881392204208827854068572760385051027568005953095545109990376648628423363020590290545228846940366378060655939920453107174326723688568391141945594414992371028638048736192134678071959036992289899798884009492596488491827565216834562526018999536894356510617275240425314513137687448970662235305350367793321143077375742250810099527512914682572199800114730288420310616439261050402737643571083461729133428930067893611179914990885467860061316303393164813841519567202701914726235600583089811449899677534870323994734146590442453205182807544889390742567050525119221585421567305024972987483572925072153858737575735354600607942801503946187284879008897243619037148261448516835729249361942138206880026223073376168109188451564356531170066963567660049262765702181718848309005979370589152773407671342066121992095226477099282579404587255487812523406641696005386207052818266180337808674563961367540832470162545302992448323130539648053523795488504253922242492474093755636647633217249970371096276657679308177027553907839930781841470431883798224785791971810516802466593031407457382430820523270546682296769603763377192503307525250633415947407505687995119572396397613316835579957369951786579475885299949684747835103067100557111095530907962698921560430940202993847607453109969194216369192551799253229783793582601287242478647348213723221562963830469732166026358028394342311550832592538859825027662080058876985444128989983648412725563671659493796441503023238965502734932272421201459669667794350106824066862176273924764425675869289703960838292797094995214826734390972395077759717089427843386252366949785117046914467309269047426027763694723498276992367106051268962180652965005875553145429028431884852137054942304440973651961390670440423015170205622711130297379472392796859123989860150917549025897915452665018547819304093308649239066186874998195754860442087246436898000114869600058243627934183139983140613895412680272852859786842699795798870293590600997807550878612985812370996476871591644435867002273775225577961275711909623130315756720657634551730280813179780184236092676992178435610790234097170035250213721697794226322634135216453895875927930311176086486619819317274234354740663601040169462085947219431853487468367289652821593027291564680950713589490366653486890641476874548358901817266603768894192867087276267775663850768955866346350829954051973082041103630581139875702136920251067502971742576494889431953845881901806327102471529905385410817528294007459918592167806829526028768177879904373836143148707668425146840113176335292823416833727302972021381034371641402330323066364462690520361838144942422927743572001393944029638200790444670631639644087220608555184376619734656680027939590118002406721018688969758913066978738024567858543144416409759578806310954860571889172263164132520392590543785126187598412263787686040065507739806575670315436001346737385616705996036929137402869566362627020707199894281050095018929201355516109371529150030705679843203765951164235052142822867198337253616648078187454214742236431332457445648998050060863277351929675119337324513149417537822639179609711346943022335114068199483546200166702911446972490794228414241958934302112141255520245324783217828855417277646007971002221511071911252151444895427125993557675669348157121074672112490061077144038885125924217094100239501212275350894193285928264868252174638167441704955799116631903901477826506975536829400671341041474237182682645494878691028132973362083399409673036380769396390828802186003531455656769134511772707376059684267164647557837963935011732277965886812955867346488268941716778305296464473013977831632880509057962374780606075829290918909512196722931252268007641344214086859247010795521394392297581156038989544543269479971282490303569304573719422717977121637433306563190429299016331920252696119780420783298425523301572255207817982890189200672010452544972228074359817254501883294033255024873563139505425026946073339914417498655478075051889167556105311546535004918678531119896616654872016379980738081943732256889639188150635582742444888719265881615735165481039215416388312382140810891188500097882692496423377811993450586678742300105583513407430856524374941647388484347497345592989734461244517370991014803626464038263140840137862596967541195022573800134823735740991628493949022129893038465952997829016712250723809097253263183217162993937696072273236286635416187028914561124683123068817836254415671508642565137889399983224544698918193315229025165302849800392424000413613418350604726764813704277510175214874324152123845578891998674687331651131089695910329093594016864924692331849959556257080804638033872274924426602142817452691280738140110848328381046888872162377704809860487653285562308629773076363656300450010352735545054801390464966741766156318584423124177551996867193580746450333265550547333658574906982994699681853267871474618616247024093164447454221805996787415308365601948018814126122909827020693421016980747605437375639312910744627600293600258216966095748124729051891280939993634208859670076690253906066404552553338521970794523279698366640412191445924556151604741681499164550703249328573053795331684659824374349217923712545871944679103633109210118188103054077792201487134162369420250927755589880511904157003018652144253564171261833372050153280120537563615861732014285675287312680668927889489024952549649025442563040812532505999104110076818691869133146389807128276129897496882182148804564229208385107388344187256214065860280448312514100580843445791057362013959753694291597510216648698741580896674268799974696159614199850763717027503548952360659601529874755277704239608604926331911354522692316812725165899654306857592112563014505633515748438439417185291969443242772539302213463059559916741367098846141608674191233912477526765274250146350691904545889355388026157069276458390585218156905691015421946021641029772079938750837951290946106157481459529133861560121364677219531920366660297419572976192307443398190915778236996560635606526691021054015921103708141888853631511144377523233269138136321915410726531810983498514936313339854703118958689174502720315704563336280922826126837917121953899381536459619272101378654542047046410275318667902480461248854280944257605190665917382630823411552863082985880661642658147518702564659031964250519723937067176067417358164524878311808276694674785951690780849629950943155252550685941692336821312733890716571921967207200958977662010583166412958469676452633325078536604694303297401512361038552463078325826639216133051743170939312426495872117254076113729906536347935358974002209411463318961590951380413947060747751373066737082893654626870487801890244202787103962125685363308984018615226847851440975903624702670268462886461649792515545980857022745333281530519870456347827023281131923347684599175734408115232496152323699135117241021203286102249416534760546061196203955696135621432705699581624836217600632020115985252262443342551716103336234427043790412937896496043174567516017793091031857840494767891487295357220042926873533602091662860317686018677998254385433408136670424288773970370497876199887001876782764359273947400867204835640031193970275684161305963345841692217781285597498464078116797930061813316543450250549329327232144051587900581875506962763185869737712674994184845327339776557394069791396614777582584603052405953318835246781292147310587623104436439599089301839694743831235802493018888248390591891174880966829589843915243649115803789909839931469682056600147393455411974618808888346356908010242952981172041534084194199316153588575858561439530989208699169820217153470566671355688425145202410488749518978130819845280519949272436953560928151475950847139691541017246848602482971323735134576862160666298920354648918701020623305343253963298107606392421957128596253518449641787287270921401206852442161968790821375278574719843980022195071378542400262156606504975499336518501343046333941714984829588511234189200714813822608049784773175319186243656794155983065980110015608820650645491201240829696890360599457252662754063143852353272339374926037702662415227786895613803450157591723130613794846084667161986934750181766912095024068585172683637137797257203225065464465968649628412466143685671812109320533332521461445025035900007375662067799156099387611469749371077453013617647425534789244521117836854256618445017309140950338049748952515380703453507062821302660121662862192288530784951313794260730184648618773593532986645598168405067174001802128488386071451875524303359495490547695246822433109854079781786616276467285085416952613257080888332628988624134784918842477849850553928163659347906610067962860113767668148173628806933311752900966165920534145430353990243198270668809930107752835293367217728112172340045996324412044991839151439293469450175173201260535028073213864507982919931833636015282407238550859814396268049951898409132476520459630994590847815685881553481737653318989017461912845707239710807842506324492376415881242742475256031111576090740358812865589258443215446590938813947841832257851486308481535404324098219112597046214390046510733725990678095001294983092391702176248114113588682088788363525089639726454469252344933235521898444553009811158032659426642336039122014531953448033381058889893444127342938856236922572324391834769752460981298953894169666234451380033928941111769636120829016143486886441479979304569676447300533716279620795550396806094153692648059933708583499345962373199703196648533295681585162429836559030684421680289071868135974549196085083561536604725366224619527315354513161524620354046530990406242865956395150351482388262032824897514373889315796803866013807755258388277105925896720328310585951681144532464557676288698633774257087954034063366227007583584769091672809731900261242558882819622828536119635538378006874032707972707359503149955748783676477152275913687200210066331438530716313165693408522886140894039333970611299642108733021261837525692557095789213526367510185630874108012010966470098676063344312064028909168627528799967285874363765537617186509560055050762566049783664845745312525263986008035518801202244958220450369037440718333452936939545197579105522003593875605102035956362583009313876974507666950699878644851515914637822657953780987252729200534022829885230019455446414076798759892668928633616306606284752270116658060433287065386549306931650576811918436000468004780780455838798423077571127558189222997545433477821433882000145065420422586499029924255677735881137618041833427291952130759539858282734820271920917040826262328347155305985580760318009221571451880058179618224385123269773841887962883878236041179525600855629499235768660750999868093948515146435933239258797759289952612047635662490699532476241046263222902903990693061643363819768325452769225948927547480199493392642321345922380887401283747707723547517598085924412823886639952673889109565280281282832026540421102242818224997968627335907570120453933345894782672652297829125419768142241557815425427476969554115342416327758411756869719330425719321627866696786792715682679549375349870016323410991323132951844920264540565793446334914887260082756111184952944839130001088377300962796470655945372894798231809400786156776385125793296619859250734330179902802959967488359596169595960218413239116396904737964546235343028513301428275473969413620174014142677195160300037835944456623515399675774201400585460953874034271078849420911304617670347490619689979726485038008742514395629566007735439834930341017874789046332164155835343206983781609228809001329847798523429185026463450009291696416549471404747931174298318251269647698118287433876655169013536307660886695188677551185237697727856547592899762375210002533044311115475514079200692415691999720364705795924117767186133444844392920736423539471739562649407288481360135094827921838647806011429815285665764187625889537418523250904020814939081738534414319847627994235398581065550458531435907175432104411142094809954983300540500574439264342532249090587242062105234294047892095777821039308497304407630379166692486086105502969479567853782496283212382942557609552600219509134378454927726986032326133363163283679254245181892451883717967799991426700120866282097332351267748289772009962873837338769259746772846543315627887381350129071756800896663162447766634104587038386342877548242138861984390583597671883308767293213327119173214045616253102304484599429486119499530815698689654908380782548387983189413633443970958775314181506979062774814170069183770811366751659162350654436012785233906091343554772752670344465404102723865398126441214115825089161607425264348853869700571301652293730683973732259907423993741761274294006723437099505759562112238424573661440439187947630873268930785710132402600033197686281675167466243432887489833121443873147002108621803332147971587303640485052783985619567613219894962927039141264416283198617309772129853248452288968668980519347042577669149307127416823388845759401765958576240398948186078620446252266029976742873356644712042754313597411099225743448404481374792454517601024694318387285937508801461279691579600177409077213188613888888972496116390487167700064657781801828410196691459121610004093902790196488879956853698830417626741594073921400134513154684554425998236635318108111508907563282462649096820909905885048315120415231891624287337348420462138415891265172574326919015288558606045690261689470023999960692532616651709353854778677360798332752364471302341265458647250566237397704582275215279925849918395233389843737102943444594114128201098742171753499912837433772944190708720602725819803343311675187008820261281930926019421355067160458719559109409884720419547486790151893916870707454915976330072377723955402650733385524178522880309575401646829096851717697959277455319205455004521797107395902927023773951774197170758055101986994965157395197914556273994732975714379794358478581534693894804314832257314203769138027104644883972754678639077981171901876482954706038673826972313331464957192760012781243149132785677247236906990341317860390930600760353775537340050430186448698565017100929022346595153958561885777133018839986943348373180874448610169645940773529160229230032788859140288547853332806170947741838831335672381098288659970126562367661925321244741664522859203843857507850588998991494685121483895710990832352060030985841711350682972702780149444548568959905571502207431714381773344507298225665208077061753989564188539988018379661695926614635486377519190693441855120174074350432793840055872749575622078767155286665674635536841281345893496037738795702728316922002589468668827135675789911095972850252363695463167888870850167890809392725444518287969054268038254250960138950925047557973442506225449963640920704885472319128882702431560677339130449037532275733639622794062256149131240542763325181227469513240073965181656021692499841297423840480513596259007305948713545458621529878925804363510068493891795459486052652395866014327613785838378232300417087221843349935585162496011573961035543671906422080167374565658499333376213781598016929792474260191636232019229380956133701914606316362657396346675692234910091866889338990790952824412479170002906169561698631156677320207407147839230186814175670547234039040820337778718246428498030016715583094168159996818007586045881519891750185711967805221002738015714765149613672587350303015155387999671999137066131743085976006202800527506907475502558460830413733096316952271600860054158097677972743627429982596300599404098185627259793002024051152499749610026147781331508371893968786021961667905512154094611199094386323647891166096762811647547789747441899220316939949788581055043655122612766962197035143476785619023055397750170853873663435339744275030919882118377045049578284422681612926334524080150066428050414172061024507205597997719403875275126773256611853066496608842342371735205807246136672056198281375417018165862320216498599878819367523407008962108721453375170320763622595005244024761778714736662169486105860269488299657602793278985912042957431520482015918421732878621408160290677651835515109439007376927096871531486185998471948728973861140723438781911539068382779308406615465830458125842585097827888877478024828358323698994102180840963671010073390912460316725128658632131106248999582092518524118187903052554943148134244508400167868075337947793254755551193744802584531866575565136187622252833845267881535172115347898105253082971385352714217342219907018862842055244656297623582916998098686551446626927902692116011116944596269748187882730215047989913730172015980071095712688086064228425835194680385399175838609564809396118224657869943497739138682399473747137102034564933784829803880814942049059132621104438666795989424139317859301803648030033120993581640141351098602348883027793153877464707683048219577547545974327337144022594393830069653888894522196028222141419052068229915964591566506100594383964978899739114494458709734311745156316027680780905824884125284870805161902952057249316886826903829664270508613574348770644854787189207067847923170019329438963673442565094708093154501340354437822482942878276112895455287413215124537141570871702360096141823521643828898738983790269834940105614374223379605269326904539557226032067389809564967599835314783536769988890234418736401332203338338841207768535301438482096484995389150874560959658865259673507781098920707410958754116021100689636343985360643629270470691517503755427906061911063456239449424706303124200116284760262434347441033846801354282328488042793853656402246917963772710566494433740573100267625183740010820053350462015636211522200536092396121355216616382070393712572873393181387292189487326040169450320475429806118529197178633477172904111774490369450187052925382388093341874611780530312752644410145982641193038774230454720715353067703584477022135345433047135505320350610787746817984440356409888325694384919580480169059743337679855921994816286034961002268697567534412795126325123806850643872217714709837762158911708013158732284681314836786948988513826279196920397214254302359338513956932842741362364687226261131195541043231847351056655398535434022267683400957394968123904400341080934748910429818890641177715345193168978106839432699810792327156353916972211485532209078653470487083749802351904795492641810658325322550832979030291911234027604370677815020699141068868482562221805504380384662203727308925248378482822349732946082551039072908815025848788474375806010915348337319265072851494256898094923490774779389335942509954236205509776186326510198421353238830997065038927846619406857686448196072767513010191653263247913900463570483782055358598762368372363168443513377252132966906025485388092406875240447249749751794841028145882712123910580500292454913054699397263756531118432826490025884888761426709275247357449398492684789894204680360188948011107917775832681904274725359519090951910068819298930188237517933625274561747967356384620974100217761479417073568653758318217997146975390311176964243942395047061750328084185169451341663941422150160930135505495098512757097382463570824702426453582875868776658407418843885622799904851035153354488792700031111350773544708708091204763673425509595962162787012998028861682866543393812205080628590145818085824868854970104227810799347070494112635791035187872146405032627469644585125930833269867583073437700701452758595717757322861507149564800044864850714489032902597116095502401660326626877375052944192119128457161709115098240655735921953895986991056978920459585752255324521115360211010310380245978777828061106275146538076248507532911804228208801286724571820053069483265006253925994934238387796658049548015204598842165310424270227786360296466399791154036932078327540357364575275318643164372182982136068290817116839203829524697288251008887867269724241771860711897705560725655966409895514931169100866391929649904257250602400257855178916885654698213967489551512920679930303795889238008170047516117559214111404634445835554778021378987160993394543720616042626681698758182147660164372154796819819293434141013340224028604858649498732125044216923184823480859930632667284783811717389319048288606835177336810364467932031262563992724243908061954906835814868523295155967946541211762789746113528801849527482661054740848547882388681113531406243563748022697687267530486671774392524946475553606888981065002212952647861853831617519707606066856295381117849376170852241537965994319961219241023237690640679089450632433276525811150440358462549674078206788710704419852268200909395811235507569412106344562439260646925086523680794292949991525378554893126593464590754846549890654492480188997278047976888956953214545216026622995836685909211080535406375997173013733956457429573317236344592042167672365132348142628563503827567586486602345233198530641448478960454946008726668496358801419679587683381155321869530969601277473124820554430382481700093978064091189079169349493535561141316028198901304125769821272813869358645370583385638513355651351919246404921138655530331516984517291997722973570871956621032596234613855143290097820175264983665863014306513730463656098500400815895249857981853465215361337995728032326440427083955621149713871461122309903979471716640474783904845778972104648693567037016735920621429596594207170581594437214302477409814363146553405411521444739719078011536266983899202405122051501300632748688753608243304403700691276262185471103052503433677865714991963889642201750314706357455812764694271558691864917944855885843556302352055276277325836508481962691627456501080646627412335540663779808001615774837267609161990568017013588444232445739308017806541275790997828872243602743419158064817343099116212075405977434459059292954445807506046303774207948271613594524061112513049212850706853730626812788224496616124859175546094446298633328256622390827030136130241204748069737789267392430627635892232884872171118098988754416342297702246037588692220849610205397970669156747534672050953488527749667741271037722965937540548122321322102506365860764296392373199468232459352986348119528459126647854245122815903065249645085066940227786449871836665852841764053544317285572808516967325556276434041225242957295210405581547628472088744098572208692344239719325949092435826925070249267397084405462495817696181666924262983287515640567908744433851074085014345497349271327150501707432630913225838779467240753011614679437894253227549562699835307178611303320818136004325755494373157926430164809474195693200904071458459953177376038408670128495475214849553461774786699739724039705939941796350108369135082260006854955889645283924961610565177784609158616987382115599011386500887537528135161561701571482172892429299518872773089460575126904075861416727803681204829816811300459414439211060107941854058250940264847246907114460484025615344741455784623643801561785691311198159117938984994536782782518894270154964268797295268848945540581385211639624279876790070101468865186778201297098092197461560084149002743589170089084109575336959022276660638571610564877979395699639424585807148132302875410350657117332692943871488373295515694382391920379131650955541810325712439136366845359511495755662869657926327170665657424401158313393380542020615304347825971437480007298225203198750728264146939209120021501096936304302797598218883899011177058216677008647398504781433974895459907383860818708693951252862520388998780654268783115813562750953029075330837261861856071873855086625189882724681399106721014340052574803203544915355655106638970288972152372098602004480051625758832415862618392253748099229725453029303952174459269555202784758651198136936157964579957278252717085893822044713972880474415617504953624492936035487555695322548818295120367225087519900860360839686880926362320433307126289579096317565900060453825368338158508801634323246124966379810821736826262877296356480925033007322260204691945389882045499942799738568461025540212657636078091018829374570314228894709563927159363965370069797765065244997692258249354216505128105835071801503839258805980840200254151547887394166295225628364692403610268912075629609456323307062736465109633643813311577299878628801135194283254061997630706972362195955821699781826823998994477353107895596323825227399406724379527328945830248891845822845240298560958830492292343977693355798187251852421698532969002135164274482893134453675603840691611034413555044930630057141969880838774871874127914385507951147520576349909651146316469602570945826033936852693035201927001490880539937152615539483430521229566593884876386008962288088145856674768828695265435490917500266639772439491404273983200046069868169580772532934206187305946860720665223521779483476403250476211844101334411048289452513951594704215771630503657189285896808062844108244955827736600355770479470828873442492146187217074048645267611572915833542145824308188791982273131889885861684090316913290217023401104765394026243164053435242745393766675885737802100759157774790977062538211789185535717478183368125540875618374624407782740772153128082955592370467993416326371531976965101901111819469927491038034992016211471418050373000991975482753416703898420925362329577604572295405363196829161837852060038898391956480547461393326027044253332129263803954866817970415730030302875235185589719796532711711882926762620466579314056490700862765631040258511037812670651711469232299120563477200767070459562695059819533061705438298188901559554506451120057206913802761408679308809326723631766327857879824033965769845871663218224799933229548132719727541707328145852093303782005845510296624366916936714686240186571786410636343333825058665802324242904718131955954792555551657351795856106449726247100942864852401233998432121992546031345532799471013218860780697489871927492674137182238738215214807322619619568544119662368631320760221352729469439321589920335033316862286014506726176053971578924781802309673665752226911805598450514837896895104283111381771243278561191947826359309492798840440913619698426064352157894586432833292899422831723640576727519346694080128771640772605819367321879214001210277635183841276568688233396831316715914363819982734036588290058821502974266133057865442680787280338550237263298733118391685209318702173618872930222923699391178974346014214184792954688591432948706396152411378435163612042641843973379244739219654410113350970083767641901440032592238898953449918473003882479497221185826583127634877607316998377171306140134488492285551919472004275355867998702902193817175922986651507257920665445221966521885844726094225477358720273003880838626583838585073320988792002273086477246371194628749713797316412727646865163072224054760951523418198813705359481587527136884567604754193045070950652064955078200344224790885900032683888868006036301342839606297915930681071393765775187406779416719235084929425418543638074321132854917098825415888446527730531408207842976155582760899610827125517276751289989709883306875713208942539497377550028206937240544208605952816694131566996588610401553539403810556752874390633185797110575287860249919162555567634295601827903039412006132818004807001545205449044215645460678596465412650832418308945470306962332629778815195572886784492670777582016166244929882939596070237368210106929268301997835769055100624293205012302123122172107094404580283658074855421533082850317365609070409377907157994063176188701095524503324798684770847495340022780944183329742233466587910599258712310387497745906055283187367980471879934626293633974065080665582895970316723043332543091243276986040702429243491324169336347056710230139071657964979589539157135507795101146601810297463056948785558887307037528082729667378622995950885405532726264832074154845351961960389611618313800379409537486435331350127457275080221793348835328266979942526336935913332358385110518625504523559381769983112630886257586584442674423923339215180436626512533947246486011624206383650695296026430244974857243286475031588431985570765403643769999545456369611604267314637102164814611938724443088860010795110866668812640141451083653750566401643597212681154496725615474742742368315264934769420045586357506368675706434967012370444040653294383574079597698649097593254620891768259602518049955115066435228323399813949197640984419209274906731542847210828409288213147290254153487955859096480526865667207585079447384638193971533589491830340234190957086857884261088273432766268573944680297669862678368750869864110473341665478323171099162148903499618609691549290223228393811593964966979947780895133210313816091365818918512148158277391564303507311549664287349184191486059831586078350688314290807362999629260766191974413504131221919736285819988415619546452768639421131319988112665306153840769114116984525631185500495910083714345054801984527063927223082831966879513045720531772076442023550235715016796165879405899817906024944302922561431362244269170697584787655943599806842305372911026760175114989517756467453241870207564091763075986753484945849019305216154609656327659599088644275223460078548498885488593182071389567404591682281516612419403611537294129258860559331907133710976866740294146734543067104520768408230178569580271992673312005925307476026071967806587392185542311104583246787361366220912895527159563270114109510412803844818988412486403135329071708151501934113144468291158732369145035292221813248590810023563754765398911048081687675474162422090001204152560416890340103100327097212541487323999009123098057615180569765741634145289228974763867986788112841535920038853056438213188390718935531835819712939769945236001830575388484484196789969573043304716060680813642714468375110136049948952416635612743922253781043972213185753082127022893220295556655144106137585488293789685487643461756237696960970097679273467460958057693800568144281692185137106111567146666955325006234668539111414624571924070386450977450731944659692509918972585807262365877036363125827746852219794855619434394297121171408657055829727211501646216028313299279933884361191924196999940945111622085692432091421570838874583112179390363560825393190464405372996787738881634974993719102847538683611563548688281482118871388927014613395570424891564766593633747132170571360724575903355304438859234872765542790530738927553290919121889607685878422413985094044289266957860314620173108284428788715680072483800252705513647690512660609467671256817269502577271910871018899586778133352231201350927377079297911065447627161530311757536396204342854005462923569629279610029020556354993352201874035376419706824641238525438111571598794553612424996292070767089544095924103243612000036352559155171693565963866650214194484225370226470404952443897502484891815309076784376018014612661196722198865145848962163706630068334687682038882732597186913733919872785056116359415660412074987724675764365319035605065789817461108687500000183114900906024658435053570461401762924099670647860614480909811285067596860544171109895916652719067303731963049925438326298662251641772306319726879677701128626605890281143339056745248604662610073697198328497837071270243337214401864765127395452567785726873917116810894257603968580255060681229571335925864638463623324767125150506366390397383060147487134968716507195741376126438663132837661775870317011490363195640475330451419874243775823294058939978851791195148486183758163080373218083943350674974261921673227498582103148329882183799843256689419670846003908998452421686168237812309482985542285868959966593670094691645787647495120431111208081935979830181312704144352399430506480149688541272625229112644041239106829010262055447702394081688691248155412312857641595949752837610421924916952763853550581080647253567658683280207895496603611897815743892262051286590410833961580256046298293075354941031444585182994938137567905767459212239833425296555292163019928878300424076568048000524976631543154974158694408412191006835338565964539694931898631739033256473833647866864963411833326715738558648134678271573744308270129081018995164645860807206287343479964171208060374203414816323844228705004075321384120414264599868275062106968603137449830821928050290898232150235149051942921664049923773313102211348793214247994777504836796941665630285616109690095661751885827680327055728979534950025597681969871593561866836460299772063279992085717066259297826479425751404154985955006591145212176965002296372400381472046513134888438385472496454888353020887976362755411209193812150040707342005195803656670550233488472585248222244458915771741965579163908443396977086189928357401840376115128260777884063497844739009552213290543468432048230177761860048907027119781442677528353723799152391704330949566855382064419902110539581484476788779473957815223466701857711548947317316966031778959102919700435494949326777558203920600358595186154280443949095711196609125657245441481003105256566256049163706249034868359150912678882652751764453692204985524329196806846545181587575000475463831904504696480084644920413551826069958395603940845290392587328123669262413800943260646474718914471672543896122647216930617574639570604668178858146888886289978372540082134658422243693651431196334926870025977300681412291205199419004107109491323146003572999749461506812107442265256083821271478092241015155922328474051410021002537896145576977967378496555110945079024840658122990167396494878085033261168091061599948963398775364857132172289380576335228073938536301864371684470569440315817306709771744874511036609760427185893361590822033586616592573186969846218529860182097289930386851667353819025349017839412731148502391198040713196662625004961455632210878259449407149837890263072018147530668893119212838214843790504058651615360095403076893133222522608544742975472325729628599051413364237012246743258962934944827324650397403687842432854626069646202002223416207532740254047922675274838569723162696865498782300163168771435397723737200947731612270900302739012782091451270172500749251083576554136379024774526986717967398674813297236834591136141892201405529519935986095909958570094572739268104126884306415669655179836935426818791028647567575157365034768463741467058126668128409697229536821368635240279581221226576605018902843484929768138455955726499583425836166367325406101699646526965866075601878548462086547675513523388411512711914167020590997091866415993588689663043174410883751863706139454870529289704882983235155408766138719999547188323806999663380668363538173895798478458431142964013510016886297420454281235862698801270129483576324309924356570206549218164891543247019723836238380151843072683245789989806332477083092661987345522693074593500294027689929083011742409273951441594781500404327478225830699969863166293572571767518889490098921264969416556930220967504628689767205678335803728327396768929009709142062357521468567267895293625315184136502090892019673527701679288708639014834864221608554224599401895487618844229120908445411588657299414044688793782201721467817535947719325459514857973304508528746032617622295366744519182231784279157395222049278992399672843951266822924336436489456668554565811595858689060307198013462146028140816241729199909597697449693332750237394141020947389250075522818177692537310815133886987886190133054064367043012551532116729119351472649822714503801656563352651140804343676143810711740814841601741250216998924399539068378858013757148736163465760521789782546167579519584543118272400356679297140093926935053927781667584733814960112681738215663000488948466115088318044416989691644379304778887129443443654667727574663321344030893358363395434245906571849380482607975491524445016585819685049014419048597284515117816182235199969239920855056763280574397173755885880629845084595756862483688559167790325392373669292306137616889013563258034823969337857777943390213390768493453436363287584878793250690776378217598301862538319259157457352655653869403524251083549358093928327899592027415367298676870670186855723614892969166643534746119114866385508466556763471430549152226826068519875129424257197665109197513912929448344574090555997750202577223806119529946707928922459631504251053217088858585489647770885556403128191797745323744281844002366685699900020875996798237414303205201279394460945519488728151469574183456119020519243288335379485684879341297429062858155801505823492357858144573444822151753365861843188762612237216868292413286887982846971593623872807123212443546874431129379372714726791405376696784074836241639845647509362860880680056064189616186673805261038658475491045407366605467460301972020789265768567892712099384352536943164318161821149336364611056402314852771333752901350599932013373053834092680152473649087467496090280335869903679586365025272911293275821573183019851022566239747837620539714968072800980094503133544725629792419752739599887446055347579513026312105541919816858008689786886786857495237038868707003379448013493728393516315631317530325122983160969543641218034174179601661930676902270271623463211157002773052692754308518168777184541512916960034947685751070368502447755807224632975895858214381540110091195964009392905279257640638932494718228812844527938004879613107877381614119581876021944149834441229718788731923292416113595620097428538684485461226340546964498690944925916658047832943147894104259055087086235664182274259642475423728068040684493444145561788757919962295439467839692352405602291628847489129583033112071311493188306480492851175106202642063361868597756373910723199739631386771861395749274243256249194974070985799329758778442561624143177480700491767783200599405264434185365609460523214931886834037258030302521124289977429364830779874213946185902035461171560655733203790909284834972267728300038798623661604889036709211380395796856417414332664709800044764537234214147462223431505744973099223472384461256562668876925001576909736803865836123590603898599386665901363621314609621309541896565380714209814735309637389054126623564392786762420274677461309270523521165703234401526767005766014318867229592609762075012909131263779334476567838197463329924495412736580089270744662318195029318865364955687893765434764406384902479960833668072619525455337440334799171109861177189169577531492698522445235877157890907228872250025222809216591543495456142218505457644601925619687731115884401167395065259593926478278353558789608096037444969231075499579884202146792652665852024661422179518192753730114607680793788592570690000966289740337633945850392581020285447755989477724096021763792570734216866901141895009639472799822292910526542093389368521792103070870910004323083130520194550923692079350388040144660285824541518402078666210526732278380515395509555055117836602632074917932077500456290805183141239998526843022919886982512071838297064440652957222398648324359006631862169094798121287055986011047380507305370864884893863630211407775819145150849727993198818894866315314685992848511411745767798781566529458139369044475720562178673533637816941412680816792289887177231551784029735140542325242298196014048844771196952314760902158436643065332924704795049220338222502235696881426419101641223271649135049947918896506388200874420122887104184097377746036032314422082626030220352298091914167678386590931296564641279029410242263639121605981845830620197002889673947420259945130254207969056077419024825158958317020777761506379143435110678747279498731470000691332017886342232481958627445308898887980435979024484623719816861177345499600208042742280274215286376864096340421296475060733185298938478324621327113973948539985846884138843840853960612615868010581985534234414900800279123572665961617424563227874819594919137726633573285727558403951860477444381779663724149144558212792186129774467307416598394793715250643957944979761668344217684180139877832664416156094737825265425178155269407942519889371164298429090777706145498181550063176681300660533420863967163772413221902472315278298869880149796473252732773439514774183615081229957772006295120490050134408164007565415886945587105887215070746023907940179987477754372837621936961788260528832950833462380562540470420776046438295388303622795148249568442355612128874451244852681752861835832615084313690017230274488780425907251119314584007996805601189182179870096011506400288708898568364128232336133212195864986346851067552171684710103221707742990577375619571221247389215736083661491142809464635910824438240643680691732115428497480321820691528116972232591105117610052741314237692394762170445453452624028742997378077716166820918244558027901123073980942792852558951093545443916125408775256347571951593185734813957215689668042658855516470264294338608928032285556876534077247311733783198775413320657604738465751934425629405902517137281906205671115112840131988333006689869448576348033478539890919836762944129883267010974858515618502383146450155025216649002005736815246869204865247036023537219510664714065582292428919978791587095442010708823190412564536444390808872657547984933717045860417861203745688599876468509964810138719173085722386171528378766470811654838558924321729673763380800820420716845006461797957280164932540782337237802488968553616867292598212270562529653655857979582788995858977855050642450823750782143188631959895946842905390638074535077305681646691642192225774713671988509842700389302538462869384736646283040489006635213897627632779475755544415104071770330848447807897395952514725582565709810648724446533496422299776072006614811393149002457481884618667791790902577212671339103886584024005289117768402486846749097781786557486424300875683643446477834677634607702847754759017769018247612970689986119137384189839762261443376207631322117313269351757647312479161770484941600122755666058690117980327477983824325560902946983145229886239233598675546607553041620066217528306422306486832453114723649158566827247942999340289661869341768902297670716240740020656176747568305141033498600645897881115976944477133287955390428825011251964014506751274754319300489109390627127014467803103928074336059791775302636342804745442034051468158012466713900726271391490758812179462414372315843728103299800138751198725060298612198905021826656654534584521046031258463136462479459763736474292103540676820150346758025503294309277800766222684476084146167818782315294957479771334421160188371694527527879251736039657960215618552982827293742873313663880193778872620327874585783030675909026107857319293265289794201586577031049356750225022218039091117546160138371592296487191719098731077085791546388147140243515035707497040822917977603602566995749965931213960417785671614669358198841690871144398039199923590900513436245209983998496774811408544836422662569329814110929804279761399336215902544932216468445572579410838934902112537083083152737233577998555227109956934472520365300927640495000438590806457967350525662114605240093711214251086223015515045447160730967182309354410109536538694112949441962952456733965171171397313114068932792556047098774727216318470073868871710906168038944047261560440355799511270990991775813065254453383321702995531245389275692345991606587335410290157682820086521753681937774206276401629003719108507008211754314779724028827233950595665818032151126212746260264508003501668563631831704720324034819695289046960838576484145188931711756254249424135051839961316659728389845349323749260520695663051932063964049522721890427053726168973636873954181500257173303204309825372325108772207733262171910681818681576273160454345523188041080605618964961281338363037809442582851393063774845392736599958473185880214350495490950934667758019150252028590003579690097218454316322666428813860623982334765772420839348200583988983300241359858547973819574819402802610526483291301156654393387066877258855160035465331832871402203568489318613492287094814359943757495141837478620103024694423817283437216491095843723392383107030711621585977282246022469721335977253911614249877110812592851708464434420340861642140726440498553441139946762401142146566792905950909431073793554173712413735643129535438591267905240748977030929922788266729100398507901072210739660970782721800766878173310147754678113308930960180673673646381065043526798036914301773992735856077404696878552363016559329669036503442650876025939339157746681206108781899940223303317283953052933301011372385487428026858825106314969094857652395541170083632208702349830088760878102571654722973025472726087342080288035015851738149091702450850683539012369698976886629475199380780844168261859259697221415935991530762427551454262352405386849999728569804484659184565526997508635922969627457422240760234095617971841648720235423562379437410476421271429974062313103649237572842977571629357327083115228987220245080965386840710326378677300953064124066130071728281503262935774873304638886551122793006815783785418460612998595473869536023767309844337174224081330914306137110734634416237277202374460753322596304466324980695521361306322284536219073367754541782065728772779264427842882162464577256441280274986535584103537609055488797380009725384706125215492238757745064644165055249072351330451422533525709389881708540610169934509620572665290090856904055510778586821335206131110900743192897280584481806285643540632061662864303646563973432635875849817335888724303809726725876003149228747465609784262698482187550502439170363615937577040144348519684572412160289144554825458847340082992891785943446634979710487581669490533724364877430942287245709132160709481700162524265298602512208382453631880804008904859824106527189001057074163438200692969855084124859205351697504369669434131348278765121905438508424463641886504516003031315684360289157924927104013306166640882342686664048676114772012128719011838689148919490141686213983363648274007244244803117502152086666928387589065916219222570137917255400051826780813003183187052984961051311163098641065817385874920641189195032470985463019567735010374842289515593651129989643560906680860199185508612587053207985095041465731467058270443095048460542309739666207990975877865015580902858702401167273019258209656242974164135760867915301247893773072704042448161321688299841993938656140753088559661659408276855810447944652938483302008076285502652948942099924882673242998141307954624927774291446616645394388778871635988437367834430889284337439188833389820048712620464744899721626062711220652613575824706296556868877163768732460058670782689632316964334088711480507467869776316943264571254824266589722184016922194270432067903315444558489193826766427999693195101432631629898615818891321903290882740889576618003803568949233901019581421052968011217797327422958807705682198279702181321780100606345412974515154439584495388274678502036819281659321697451198021292162509001810914686888519326496276027868052318155798349263615917976448295883123048418647968441193592204963279130141243604298332396876955252399708834769504519416647401878690322767918428445166155040543875945683309382765930573243916815267661406409824767890848299645680007048593262683205759652926599820189023287418350197566684158255224646269740236181321774804421562121175790945537893101496177438739177663822456358352048914734024441690426172161030161028997101472395160815231338786942781098076069136683712109759780292464926746699158144135703748398728326353425637131497469129987158275315647432725331305702447935712139477908188299153081276886766560926031237291711427600717378405742001194922744292574774180692161362166189377394881920229388360166222641806141140467076946447115133737018807579991711678651807541879211535728520310040603331687911845652489781697475922681764158482182007523003912541603734722200980457538906474154108692164743514209541923869260869506009167372328382848834708890428199420485307436165765329522499561310515921717802955564442952974146867034952587740801063408295775306363752435744108513441601006608170419642777897829017231640089089469067899073043931198729281109804983019237369562660356062432960847583584881219304072347458202834445973982599153256573417729720830780930826395216850998687363844608192136450493007447040225592757918779178980429016886495427007954749389098446504509794905006571478249434544512890415212278854587786872079023365502806972955020436223202102245625717947305028638983536605335489654541846960388822524503261475187286778348190638060401757459803855553430595705222093436058904345827782642943963571910169523209755659352108703207484065289831409879293202075640183839421508634477281967199688898157870288716004148802163482540892514674667857135163533288487988278203096114497361399231035892627844816854170549662914888818783088060004215560089840564493171704597150817847662367358788653436941760740055808895039112321222874482321011901808165411570003194119716181405267353499392509125038416984521826485721838746196053324800197175420610117640060590676559112717679933555380662779362724387551254305313563046879862894481298556098649806913779088916056618385586684168218804113181864924013616810249583100028900013290670431676344936142587147438816891276180984467447880988849168221933955607590211507078540375001962324251845175133344499674455527488442830350530420989260360338601681095066798483454562806903421487370659894254487431351193123892646223889114297658271063645485136625084608750563284118574194391424948888177057069655291231264775271973282782208195573244601164251773494255300770628152548637319464926301902116686309903194456504906112511298005932394404146414710676493253664914848412850471782652607289392432736947887261090244691584981460890455640267835575045432913882456491948322809080360207446223048129958943199199288641651853595224519832579206792673252107349785437377237999190630413353906795583411181975932535078606128191966148684839407992765780001680661036013959383887690179911079689981983381062394223879815149338138106841631788495438984985514147950207439272456073729578775939129213818856567117265335415811106711964703103321768617424753863006889029375959599271980469374581055746378881436548225482619846459897688160282032736633051455623698697787194127539196335638237779044672146091268078899231866428618098591035509628256318725562416275674368488465316694387427269367148474468733802893368089800193834231140539447425972814806336036441054623969571586664086480833941263846367698948047073263980113242543184794377954285569304764358105071779392780150120911941884963921402126319298836720073238401571187264908126404899819740654157386503002647073992505515618880983393448127925472291365559767981328384631735285562537946794272373660703516285026026170111076089819045109345789340948594481292445822105943508960063389457252453726618632695879210990525004702481127603791446167790792006226389298798677400436408784775110298783233038108881499126761923670698508729648962217295542807315033216295366201790285635353190617822451815590757716191090500168182938649997680646765821287388257991866880556856786808776852144700455889411633288205715112165436731642311315931052702731107629647733630239435761959250231510992331599873763260322638769806121621916817168274353346143011720023856594641719807100121054265869216214719975981230167731798245643322361891187530818576489663904927089733446875864051751553504364843349237318989249344600947422316601540751107595132398655802807373974545865770777241153695955306209947933920003602480943238000727752886544065775958111500719336823760793573715204709818211657571949566318397919059688472750005924305356176910676425064353247630880178494778062305686507523725176508562088205974540511496308557640599735005224714974065604645704675438591685970301530320316878837935729652190832743276116961454876234493436483117889194724285555031640375517916231155528235529948578171848023316457467546365802958341552170346893551498544073573207915631489652713313250244719915531629644634179591570591459025719333723649495967218778053824363605108421810110237988105925604746456368950915216663132198814300522098061367475660109762214113879548826075444311913910339473801843257953123274362122446221635431325570356742540901282796791146337969513727288277351920113068071255410561064782383811708495637422163170000041324239397699668100155956976373881884562564966123319735070728467453649379082453337236837898985611382542284578110028985046406473695308685116998270139483541445517115986505572796065056830229852015666800361846367375333339139200464289122872993511080450590232993469316928513614932810066470846057563263894895516388710058078112616198636771976370988722991722689030570242113324900032311189820687149353545934413731855111431914498676243341351651827202118522724544565248828390374787365660762622054257265076904589550184533855710703805920048853996281404100938768954307637101944482275630763063634062344380604780025086424880297521184969955467463060631832173902757797009837176734381055989959463453861143645825233911282486880376227983016580375853869650315139290632065466047806140130735542628750804166020880819208150381254440340258475995056613117473245696124933117868004106469702629445341585339509698620895896748022629798874978901609502807447250585038700204767437933141613713871997701702001594062409390361200068162273706028275764453928231583074675866027658550731067548478932369765881188877760650544650746791300266144664020563342364072347491962431803371657885253053438584703086547454953433660013354056164937933367007740948713072285664536313942227415289127023417171528692690725113367306248194749984429869731471350200035376356875581135802808362967776487555384580934059559741596033846964914557474813787062476682810289444037933809430802484827844186985305862820640108607457581255716255405175004833720820855904388600394416202666251257408775406002320622294951720131279634889418597505507928853406224087156590997285106016698149897780203590614605900103769633958258505352299617746543587606527223456724830885737633940695037994415870446229328341094755683206015924207844571707412644542277078578555954131726122209307317801799034143705017446819405813638877691228725325343319389051882998467125095013157431587966722928124248735281000166570331026780321262389069595157207011547196856500239120235483376185366673691497841611293206888476945438538876579802205184493678201851327276795635585619355587143630267917350701083235553776393052917238641658060921235118890217184562551341579409116301447759369423407157446148723023496254755536056880207832048443619362829582956365647726287918708152927778432215359245939665473028905275964684790554896785040826764040655985441513470208458648464953974462002085198968154525726088939617245146648086004531264113338302252483795430081859889659074593300278737287433184073362136047788853880627260227724193587254205525141660490101260443839035888688222575984772325350229022384924912072891531241910252881932986828667143662039185613560280008905991169098604401646723586439969356690516473526367031850716452517322551728833809423234140778446115020225235616745442811043162317998057422507352856261307558042436334754735709179545726034450598224925012228240320262808132996108497314301744643934318865677269593358730951479419024137037532085780713908646588584324187172495896497395878936742525552891494280264558576309755291255181354834327190444201896948858492990835033089917447547614119349172502010299784604854840083315700641047116565767954023834219557401180796069109238313623566555396701358997791135107423318286890370162512439811888238037299980503862039431927348640269361322590662339480725339652516442507276518406279467533871278113182906246797629177022023004903460172934344222324877222764353116541873981291142797809430315761762763075390045634944287849744270774974787044353659460577358317318054000409169695977669235080011991288274209389057180125990151427495095307596278148214980188305467753615208364241624967818350388267000940395171820199721115526384394775122980901635093213729482878163028317158057936880607408783185770551337902380922769547321247115955956137691113243030157620147208015239215022748711711646789377649345606639433782420865040489386301693062167099846141915397604586781883282691322166982853736805830249261898119703626294518789581602606051531451816668131649523068260654617407312027984917340800190670478555044979472976258810778290789408086000712206719421814464800026372974522133235544393782079953532958116773964622930552356600517678329422506446246938710187895475894493125067877960082021138078122429054148429305050778402976778187562957488820896131339301704203754227067551997317007766652930806557812965492044348620126355526002300040157932748501478680090859838223515549186000029360579864908805017929878252773179703562146694290640246124190122286424281660174997608804423953225389150972896642237371873109510993103655803178154967944902668497611977490879994060428404628939983615465825684471130926386800118934857778598985137554752130767156840830026847425421697592081863238020609401213170334362660751898145205024337653992206883512216736172995213958243535855651437395676426810968198117211715223039036270390260912526387434885148176917278004988425755522702456342991289978123169670803579566599904299764981110618224067359819324570701473417934489653753656869058541019176861228125668359614008278793439527700282693158585167614985635763400236405754349620604770345481610246658195964515711210640252346819765147013287236197367030287893398451594483999095546487127285264122929387016217971685610389582185564665869508712484526495616876443617249143815759981850440761757383707486951607113547368548909448402627399105771253225604279552665298888889084031531761991217355674150289151978334595217327072977044596269666559131076987184913046087397271475338912175596883283098604423589531588351349323593807826904205781323983507500054259935015315327176598609373920988925055811912445246289482210538529887748466233196264488508429327371826704827950842718892002850147062942901593303239815098069336201441492221355773811323199740631283013534411947501129080647945080812263073285152869462311613243579200937496107719434240450056941053042490564468283725652715749915209413601814401851036155988876308756300314515625482515099406300974172871482559805530028411364542221421438240023499012884422941523542694115348757004675319313687345316756154596286380350104279129109164899374676195733954603369288760241837917949949177983859527139695561714998981680442622071816043828264957276460803526285190824613328056972804621680728948307228243902693450408713028623121167578487957488707487356628060381649905168226937939587082502750861055219348513704930289734017097084369757202016724610391821106971405241412104869834640344604339425820822124678165446303009592881209983035718511421954113554543963397137946872847264962764272353823672588974095870087545156692488930370430812650864669343883642775199782165682027908857013683470338510989261246727783214373919678992131779057519775244283896058446067755539108981076407214473997244503130193103987680337416337004853316017773590104734588509600384890412816137569958622013392763546807281530939579581550855106759693616043880826946669604181728736554178534548349416835943607052034796229933539131941361505671040450623449245277596533386712569490958156294469522989601794606545600114452154122531495324152802591547149234862344840729466185270636149020344300995150747494621656302577192298270454802174317112847253472391813455631926524461488304077762646048078093663636339586465134610843626068874290884197448758057472653909690267332268343382949994163095820434415894433864704245651484280492954781593728109757075210327454051700697032004787066951394742197808160755941884019632020103778690262921629356409480653440169675672572437066112180784567383423460973431280338369436357222472476327185229751710501468870359152440795857192754818357319922745982787415330822755770423019092010673095383676518638853045321466274200041868428202602049289326437600833409443801918245764928080512928604072087484833538625910905432500198540370225916287642480193110450832627475085307558682280681539021504200254401767583907054881519457317523098495088521642133318733343629587072594846683669652271298789183694333953315324810985069294847029511988697546929262585060331471381230600841856852276845044487861466154894789577749907803523897361064141629241522198575348340932069282689577807465504552662513959372613991129550886149675652607661315113272522324347905854963971590300579343936406616444321887734520008901868895977896671090893686311058324623553177756024767388586874520950935281592461398036108899122417555174126506120480404331080449472010916376549452024672850611438527314699353416653108751419488857230798815729617485557286676042310701485858893078945029889870080185970608165677476553354734648578275829616139489444469384274574734956159689288907971033768654481412882844175334199190411276618390787075868407258243302524157111835019944795796716042670087051969701387409638125485685872873091320803282011759566940231235687311095312492165821500134190784206586495250581879485314782291187105787056054632639713362112451103137211867849687210536242806758354591454360365144879341614861252807225592245398607720604326506962897293077594918439415774613919767489447840340800765245570049967010497589231729054634697878575881151896506459452982330476316191594550944012919336520088188927668660302174249885783950420624610139208413433647162113553221982407301863556025596722104890969197207649496446025214350944836943732069652092545994963616821221959607549749781461840763572715570628504437117822390502983234016240937419943350918628314087233596568216424032747494340411875519937989807973419346960230646218665569500897204661979095377847154750469436477021863200553739905499276422381728685481993861440350968820663336576579552638333881878221255622827373817668606791056966671576360717542336868655773533671545102512767551817354547251290047296407820153206886099994585889278039028623016162277915777461830083731507648802211665545184386293014599077849659075606965783420853093581390339945884333435203636515463947196940696397103880897470119599236707026473005766183449854298419384341134946115404949962804852644376240815512020288408218987475655363867014957180320428441255569154120011884331557702874000388075385502984978051466002718852155680075900265334237131129801884454193667813565090729286387397246884032256242324571671251365517130755029306762863880620514053263976663434578819546929677778787073616711101144422606319155915277488944526973750707084273032204510565559983835767110110450843285065951859127695836131220890709798661800800815011129408950539066848334675766573083484512388493791887945956865910246872442078654708422396392880893710739048595244446739457796911294796329260727367118402913152490268189691307592026551622808656140275029247279756727196308669679297576779906049784467921454018314072072763053649793067969460563805569114143821051035660428260170771720614604254354401163258047032143654832996898567792469961009593642877531701666577231807722460424646841200327448427813816247393009742212632260456090706384368268373293936769267530889900140062853553170368571287354301897378045205875765158930882132351330962543537336210829796680958486449121415308233444857667876885389005323317819695822747541026400762527180501695951530175207764827654183091887860604263321408976959669207838469696367054348461835957045844720376400764792188594868857163992511748395071898139958724577625916464808647860651145878570268155107794598124727934402030968782484038543762633068982166417178082354321334300029955582112997197091740804504098729589805119574802537696231873701606571628064831629114028819101461309247203087672517822677735155807837112226889812050082007308942722883233806980252325393910408016099969793801026775184142344595955942937401960792425428190487933700023853167849904868031296835652918646975846887726717784258700012364006662960444835330125429670596922215081079776734814291207218091860859338260915318810938729086000490602528295278908194228762867881787942300141093017026008068964385751230984354897976418691146605981425752673020652664178386787573981063080926040664647243315718046311777568601365361779641182062611181296709309135354478502194615814675592845115316339728869984896408227543410886289974753306396483709406980432858599670080750620357507409723327189529495207482758480313059839764660412243950700689053970595803064559380766147657842655947546946768728495035651003467357126815646997810224758424391985157307898864286816336286865861212388314595548503799994261692079998917617710754027875887032070321134744991586409545515723415425173650471304445669754949608010786944380779596959855903996591791315240312539091715805281917504403860095629668774404480486505751446494003833201890019325640522076291845188469307106672687636111688285427725337545742560087692618189201081608517781956332565588036876433221700442119768180009331804684752358003707003433552664911217204381485176489901168445391003579321249771730242312402513859362874606226201109914774149280996106321652573704389810539257702311021596117065235731593075289443882700824013813932855587118119761975081103862167041939469307092622429782855750737513223420950816139697076949452486804422844452674148631963716682975664015108621004133798767426467423712173817860586804173846143377037410275738230915433814817602833193705853338137070344804111660149360714452287451023150411673563215720740094154824789962936809091320576782884226192576774355361199413883570682316682469129885525449907580792872354041719758881324865137128438983073179581479769510376010586476100974597118182589914665664121903274735618923452785719045901393837059053549559397209957270911342798500850907209227814601174575436879400621869604581645037405863177579782468954745716452893445653791893592459716041782975354522662142879218088066513181779220224761500625350690019390661065090504615943582040364476346850247682432400675497857679701473651655802461559603291975952037562677901784520655752269232434620468752694104022738592303006003893784717032568677111289778186195621159892407832391823166319415451788880933320925115351545766281976175477878481042109427390999146146987979138487206857714153841489105495447078771112927536825996140699832655738797247286581711877594015523718007231677633570258248619123576192253025003337601948912075408328149313695752995510588441799466096671137487767629335225320954654097312679747964201648515588741352863672991772347812489685276371089192599604537283994186210625633665133616985482427534120890425206512829627167231452383783452612893858727161651949259944309126230514437332170111523798033573766737284535274660374101456178679771400576142719328546518285651732981373753433243298505228748951526965041857297033675392086261094172275362393194940395235720396631562149076200729788184529716656651683705202351607341156530295251150680115367267203391477878208325498324448851677106415008899748684706974662886031366269321953083586057833686847350159935496828650653141572679417270697372575108519992958999250789819376756667559620073227087246642462411077168119979047160706398399861862378641035919715081137364760145923881833168292298649503668207487754201212065543686974891179962851474583111840937782067847741977585253693296876645594156291780437650288741068788617215191560420111577660629861340207578956599633563992575054129607896988320011522694132961979710618536428707483806014882620790402860512995588524651078910120281265308846764371533729945066537484980186109324992609254596032885754797566610751918998994895648303940574267725786997686843558954199326920490397428919281410607832233372015358316229782918173913737444935937855125406787839756353452609005297450158172362290314467532249084861939935665439674782278873856859946483729649638487576038871768026155124320674176897006076878553710715943709078406803446099624941125285373895226469472167338886963700842283935410227175120552602462917809751832309961773738093893057238472063623105506527040107180933364868420817369483665831365838649629569808055678001463559917367154330589505584099367288319886116992095706232673348895599349609181838856413217717586595497448284579319087202568778120589085772770149093687609025831599681260281232601607753123735200055610234883720501013456703777958951824435558733867949951994609649106166313927846028631033900511145921528400965074715720831544159591088015429025732658147257896875320655833559459741518859824275546224316372454250749241021021158906574438412973834436104611639636575988430261938904065871222125545342543164249513706814238393226461941898666317597027919099544538001547948958507565310022612734908773763730862595454769592190286010108898746795050163053456610748356294784175212551526991033776182709784618273477170749946790404115242751564599600011994529912387267486360536052111072169765432373730524833973693989538102760794274352009689402733673128172418044866339641443225949591308822241532682782997138903976389299548053461164685554916589366417509860772330457354031888649746302044203230382529630886844548873748006662638097746444248914998829693716590638376747532694999351776192963747455254620462378325715922446498749805751621776421528362290105477938216268090621009995557885276319993464008783941988956306807878745551381285522831307935953147250340458360818850427745742964978204911044350351970069852984259400559087736233122369893669376495531374797047158010905936992174274382793728329446107057564893450784539284412797501897607323261355159288339701050952006286380325053636348133517485204847433399352474132659298163294004498745249110113409999791587568719831070252876621981485632467915966946775589031267465411169195068964737767241573230624215290003883299431803943547668728464345738128323933163792779737168983248534103677902728416242562483296061476977961259307264664399553979434973762971331620325366150777052237693943595827565467941859897511780209713960622121137975466121349554917606714515519689999213770890410682088213262604067591384509731149356411450441394002594590623393153643713300852439485783001294262690447351971279193897944631566881752292098571657085327031385589740866299331808242671377918362860425516403790987581875427385822398965297852503685420823445294241078717706274073868489214794559206432275042002426884946143621911047441597612327114753937725847383044087840513703737341355444602315286086482935403328606532752899692225904882486829264684874654762485881913559578570629904031113340028764845724871440926086727121392484504672684654907142790276512903976104412751735916511921532260662219483296366026693246727343829171497584861943444660308528556730377308706728382269443655627474620643886199997737761229805880611692351831293977399139049589762299938698406260173383731828902207993853228885086558372662845678180129037739558831440444508053902200235482260053174711128345696279852574547563337763265143837089841605270425239790911592593183085616073719720215342222717421981995191383024382150322635999654634014179054416235215576450933261733123912868858600059002153894015826735975152267595294155978120446766102068693780844393079547748925842165455217248273108344384877883955122165522334410652911656911992680815217541892794422006151136704401963305356073256428078833294393947060318458130671707153251148372480246927443850780606510675404133217922347875790583359367594929490482303906638916442646123740421295303459320228110864604003069688134920961922621927824166518658703403147563439110171992721613080713760830031276430409085588537276074321815327032375680430136610431671952307934180169964682879622581168591385684398273060741534542066444518180389484877756891904946385881133031926277231500368708064944765097867327641142349347756028718335954579726017049559256711131193899100021072725907130525399819587452137750151503355142137572786864469143188921042879803590679799633371392155692092471009655617093069490958235705843749520275208035518253032153608217358459652424447686834061749377045296810644453506567892320859846788766384454523815721814744360171116145164292646725932331243545556558554936692477121043912399162986606401776077243256917290317784572174486868148650094324322703403473700231797849280335264565574542376319693762316872492037135526373765305042147425221913838040464664799599300706202620454392891137436980572872782861158831037541748229964617619208749340418496785909730808949811609713330921765940944258175588126081935978045385752401331145058813730115984127235006425726236889405023552411439564499427274909591199335181216759756666500733146017975092954303076182194247454090098893358277215318118361527498716606729520699579480594825121526301096337064380708289198225034547618681426112743248330471285913098152163043342926520561350478246570049584013216498905512016586188408098162063403060176776948830461753073260483569681980719657023034464144778105177182425776696750391203586072689544697518508338354149183608028223731016527342676215840632870437132700022566033862097573805707775502950474277332905432589303250854931753460055935682153173337437641091617607958066972738890856745742074761481196485238822753171240653087243466503199539500968679479352880154626005832333212099097992948015478814141109009328967181882724528781989778780907921268524282365868381410546443664000423635896523496838946745120535743383019755042369830922204444168688996487668238505184973316757179235232384312217556797539595285303805773770922702531258338679272278093445896715745992148164927567892035371560525906602447094008732197761268614850327119499566566465553595015449369415944015568768355908881220626641492014732332153108383024449576734587446741009668804460869781337032628042894078608944630286157280069338314537449358332847233251727348905808981462187310079100474314831125949354920038646022522739252437988467633756712949120386126805379155925115458449139095123452988373037262167915763322694240556335937334009698271836318523639578858806972688263326990404248950753179974940369531144915784879274144559713920558701013621866437882623846745953902241918891062764537264741149133723354893103661043705453184712412284809565743357533782846860193218199266811134927650214901256610591886114934059114859565049292636161549698151299042274343411084623917336987263615118816166235892751205321193719268911035574605336540382140747286932459157735051032657731599432094821960547102271086463193951921355320671219186489506191842449782247398977407835540616499135196252038565461164391231228331500638993499854083098030847008989431272571990514862999322208100797985049906201512340847904835084837107187044769029102788326438371188133129018667151604004085905161920862589265738114515886124829399672519962822889712329771853893435534827749658716497661168942012903714578993429212432511367509033399100461857027719487973077697831448976870399307746151012287424765125266646907423930757269888711765643988032293509270182511636283637064419477097555414479461075948330819880970451133689066384340634890142307211457082326649902832009251863443550992954794368235673045504334661680624526255838072956283589157627143044226304998215045608974383734704470734055967682593981985459405908909087214078688755303992609649686026761502699244203971003791042143848927843591433942763156975084480442367455129443486315090983977351772920341061247112057236415360310105441192677657913680203124826808607329008568531900650956163772725112328084254645505024602459185672487334542226596490988979737000103656380967252088526828971031635571503758305669610135059857215527037075805725366250780611836206899747752927087029278949975652560125174522439211191066944617185150676429702609298982132101469305035799780992735134142670797466789498710343588133736143405400466912711440439430991912756440790314986331478699808132746048770395823558064290347505718637690055884671851180869477514841472808657966848397440540912246080616139947860384564027038385358344534314809511523103522082457139964014071601647743033940247464187460504366431855184788187744217648634012906878999258592246965163342672728053564411754802254141526764313428772661003847962583429683889672039778127558991013910563778159470331405920031160278503824170322760964561841150968696812752482754375773785712194696520689828387877158185498633892350022244311635839265933690474114404434508257816068446563815227614302631673434671738763256505821282890656106482947649220221290382052700158843051656387865968693890271318781059280833114643400097386763086862445912098079087863555538529388886623187895741966478019054809039075826875965162686739005744907588582114916167873931052805338231968536815193951945909929057596276472188844743509322081502197980634079986761663973893885853937422876580736605297421937308103307611309002225336495094401920513678952246612476159357291686291248154977481432228955806565931667782708023638748750113233566128966163013081408481112904021014961414315108554440712782149577313386636662437621910975838240578523932500551283819639745022362761275113637935689863845404245456383105877627587437351168102315700706463385469515159921453464796439144579763341061575765652916521308330259421572895326157387509013675322223057591460129697975273606444694994979384860561740255081986948551776123088320378118280684562750026495307293355065838320769321435445624362077894942056165022209181071899826588801204655576437633465786899236044296349362265082174181019380066612658651404006058295979167138989481910762039551968786752723685830291224697854837717319675203866679832900159739865820518005805741515121362666459555398689247475657892874398118897433996807319070285988650621234244646350002957578328379078485459035911005069804985288005298668030951562495661751691898582094168135191194675975040173576639164348110828908739654212577197070600970426529476409444173898822913507248499336106078234860778609016244691268775131614325259896638948801620332774420699981974808554979248261642806837714994077587214615807459150573613720513984254318174395747562076666667461452810839847108760142182600582179130381885844863751110274562246773701452506024750638223150855377965856045280621888157628023122800028594255853443972158409195360379634317533601117967822829376232010458461396671133752928933890977315877163845368186047293929240467543743429910169070289313099224686325896707489172076833327475196077380591313787970137280948499619674300000765001779330559021338392406708869215774090567925629986583584655732793895134596623228963995700913729724271468480603002069239020576083677168945091101643095447742979946832928065424068908786494090236365564820537823042331873285145250720167417937793424244380686174088184637437484359094565395592690512735560759934761015887330855621338826809456781839639263514383719698106846452711976343997515177666863157312161003675934437583994022600211866285502566836412598843206766041143585246858785628934883799221789557495630753575781779538623980547149465951422199375687819688979719799731637994044319355853604930649082140992202789487545387901588560822796579381319185898188971499727011889041908621391629108415849420859490707963716480117589041711133786501749768091264963133707578689157664669928786135061957737205924633829121708719898260820564067270148799254218398440787167687180513556424274389939773963411993817887157265149918315555177107071107546342332314554584449491811579404625719379414140981434016508360602479471731131601955462733865329603009934915067003563534705065177663121109577823726718572710181542773762486490950843935995307782132445935770247983951962530618319516152858516458795157623502008592751820615557404438053355572673449586044542067804257598960808744026496964810195480997120548919615818177842493005256324718688845691350037290847250968522649750399985472005649171030303336899014561297147733452081318360125641899693864054237619285858652047694313607686575248537647974173242566096554398930221747665777735897625863485180338324080019330754220921044397318057916339481603447478493548198150722588113071408484211940114115266900177115290815160494134255513287584639863878017088208248779388878106441436741791749133835781043221186730121542012984757556594592219438852342055025779530372152484094673058934369490482147568488559972464104771560551546677325231418903088076737296843080060835330133995769737557118914181539041278067211985497815832078673690064504312220359226167521555923646082191312787652491616610314167457168458764651093020630538046164240312315089182814209441531127739955521650836718823933762461869937462175199111297690910520002046546037196239820122982006792704751342139957916090489113878377568797301376822647559976314931387610852214943276224730614834651855676842138555526069083956406356799375343927689105558500411183261966078808417781485519641860884217462580414434028825779892379743032196027513793889316551479630564270255113449301592535433214784110837997983933889006300266644946531296881415383142580846512108471286265542429705392465359248216568144889060505282403966961703879764612174656823257389460880167784418005617873830061642779693085068938001763894941910158085495692470310718140177198794177880292016706898350154618755603699800245566339942068598733327924242960087528231655601318653602351112947529643563432343406673346323797230018508458769407042781893697948231932682822193700242257612991347711921062022827006742732053063590259383996773907346557471909839057974395236922346584250784497241216558901724625876709778753477314561840936941790550796995890429552441331935253762736234480690928980570215411418220417083555313337800111905450619799799122798568589547069786879148147495300582664384051876486508083718275719549712352202982781706216358575717598628343724778029390294621909437621782670528966025780642784174681381321110022393495392093951341983306739233465815877936335207780285501019747931849292384556571982529432066378003829015955420723369171130008926218807733347939336410388700420982344025427822530626616295813593490838131046825477128827747392717711821764408622030575465193184594947055590718752971903963760215529394565323440621879252441101999604777970239973265194637180265598404889846752423598129032919558757266899553915579236272699829887317291287038949216058218153079848106242982360210762417385104325516517343697816816467814811529880277226591116792932341327641068525451766811556001497797300719736820974535945052749246013952015681083051467375743081449578705402278350644910266189509098533114464749940493023802503536123300665953374767609647225379651409121031150097911059951748887380785354255243602511991555449667991433086334261222023985426561862741602182229623960471165585525180262515627132199293149353294164786085105244606887275504635230543097007747094186500069363889263653461237311536867573840900609828560844788304245938135797052569758091713940532380347240629502342222618695825996969093537224985939126320175483793728899004056141902193799686464580624641901665027796960370010722745177679234541290244705452024695801328332117106449647614830299195930984608060948191129054439422320367901061496211528267369691061739186160587979987202358967556038454015547113480512612964705524392405260327121603858258980970160556135219201250663905748610562105970613593151339796380108789227798306096578036010519930743778748965075704773134630636587594035807791488045732221531290338302256077075391429316121389993752524913365352772707598066975665084503485223055389238580178313191713792046346852439214865804107225808560297717329887808924265872913280624034517080877871065708882721614414356494229698146231773688322313135476322642723887851001282976770615814958869044469508482518647681209154552411644068719306379598889017158541025486140232707832805302183039089429110855511821092292788283394243390146514204145056542149572230587670074197895219794599260286684885072294701295114440990653287418188588221184976887186552851128530330053488999849139443062177347104642737905985793708745610346509252002501639908432251001273429773697513408641927137624755503787239872303595216464216621375988144696616367375518725394425893078261244599362962797527436776689418339229238778752134002717645701141076545955253830078242509657475034167740847540841075148872954530936707634246055753043088080909478211922165372175114997351255224036884109986335444097101540097529248504547515446426411475443219539365174965521573998310521412720951001448359743789589870586422842787639620692868139548203882185532513033420722808444412412946817428791066706005891456249348405195737831248340774165157842713187651268449019528398670197253989402941287739851450260235375129882567632439765269624022511096987936837053970918465338200244370176660154466248570554431572658669780468346514356356135520460194605444962820236574672562719126433432800822525928256588862303192185506006878494229000181546407406844493708048512887185112439137086486403271100159572742715540636793368001092512446625708179021393465097725329996773352899283107294196441335006142502218083559196653262291721998688799428428227851828711193333946902639165522073651587769752653217048152594015230041658552108606569566677059325369855876120771590447869737140355598071591670916632938257492976505963466378794072979591853375738141106466041312050367497678754540018779548947007094790235457043041308088451300412311768203592181603719593450336972186574621711741425197528012206233842163843419701125814801458935843264444809930726608340162640763892259567991225225387705324752125436833998059972020708116902202799362829628665356807791026126445907787194801997119148363901559011948306404578754361224796301218126131232111790540429241001531609559565191014556319635668789061267531113104633832016165109837847912337942548041903256920478579599889525175892074540209796111619817684925153478398765713727586031099648512785479334078553962174949776652250612144013348183647648674388203271771066618985369992234629101717225522261366818280051181172307523385626600502475117606338119504312739077704388667323360115979453005598595667605218529848867113222672706830072673237672282798728793745591275923860497153106699445133313343054147193215376064598712885566446444304613860481134995811897362403006806967536936271033056265228919292481010632386342606706086288803390642893103767289430267913866466542150507052045697627991420292111733304964602993690401539811710839344905102711631494896925301587156797149915704466319327994570580527254726829301705546792411008167345585006922627662858484298789644487761436454939333313623616533645596192349047527052040778622060697326931895832916503216360057151394018767563512873399377545513832834444130456524757141477310925096422948436964894223539196005915679209889685414583452268301700022254662081262413649626678892563882735371824844386812858216751547882959079352197090914765741727237694097175385041440114017292943689810134356411079589992948434224346311453024588935135127681720607013987955412692462367073576667238268199276074605045588275039573308851620963898303950204958924154649634496027252477797719295907902971423366473072218938765767450017882296015810343378908387099308058375601410963124597248098492807393366661101311459752250987303590790765469271051998079161806808956480586204652780872213606285137812075971701471524561700865994408748455075137855238262553362370677423852969646840917228115567165431731150053498300974939151604819890552136758736751626954954011017697114539359251199315415908029440191276276205567314920284768770467415359423281635289550194800838791375801243076257121582480798708242806675528514661925000576192654577163877778278336720621020522206200634265565752033590258569973394072820862243096113276554869229534140076177048700104023798721282575565561242398532408458454309804978537557440092045699248051885502240354731910178913688062159395676691978433597010274877352408933647922231453246535573164913432660957369263581445107961675270112748643746182808653231505626919659809040068596718358554013051828968093640435053457141131897923877387446987449396111206374938452930273225248039975783595692284363164191808355279055618356260581816308095765343563591354881026243536935781401290332673862784850183080150422946527075823996826677323486167944808230207044158552315357042691581436271062962658274744071429348727676636858167514309787165841778425671155562313048185870875306009937577214081806854545856068012221175454819271885208885335779029449012718523251588059714618638529457163935090179829474682377532015323199950937969750620526955666221005862035976723690140085508838848243868117845243875637476744275878742814373379355975826405244727137216076386323717731252877076299086424321066236272011526793281402289248098442382826164328257354013163449946267427040032868597873839728468167155677125567065631411948119241068140436180928909135492903016273711329545965367229998553917778228304383752809308839154940063945854734226263844127133900407795769855915800233119712685589818408166235751333847753633531812653530214016155941941952495481524526582153403129728092488996007231509804235394776942532662355951144904402346430752339601669251114683624840053864090024634723233418904299343450147403056226582398328947529252363507728669388619090433874175394098670717631664849653807078932055460539509307313395639583578328408277727005077248268431392068862144237745770900615723594367501002174405915727240344729093800735585064488842006189800002637166504818381213525507437515183839755684177607781784430136617532313334540330062503476465111074089454240091178865290235680804351455312921226735991489089114056739893213676271454476066619904506678921386062794960112410733513791143928281050488075554665438220370253372732711008639255027249869781976940061854084632087772473069286470887441930772860331414287483076040585429610347351686609283100020114561922701070064719749807700605866342381810369217149900939942023975855859795253472291948703530718156993757083259427327941035033158918731225653045047439424908663647033706119503062679068289870535483797002168472944180262012044412029632905244018603555061659624414027983515255772384838769182939654475250340535740792000417304617678206681317503004675429941843429451442373371870079810180932779198395554484292704209995973402549222678477293585491566246452810567826970312065260743512108243195329386690622547726956868518810027402137450584620508449171556631501072483240362217827867594374040075735923404611504497500340890851915488913741638525240459114318269933739628284097279815210160246015080985252711515882616151694293047225454805680254089875872080322768741390928648513778921316870131803733108045252678803547095180907251199784522255210832984535416830701810152892411546732597862463911403327508043366874963251248834607962313648742255828818927664913080425227253971986692499692632147028787352825722025064091202392618981184825307820563597884888578042346392024899932232619382456873421279152620213915097498906926198147369787669137970462913425081881514071008747285596196057920559198648181519730501398789857017386040729346521011293248830361326942931122344143086293225293881149454749009738052122360384205010827834012990103964504034674386899073281900982662632510089760460206956807554825170476367232099653465711837144112875512928161143690031403835693202352018924172706693505973627440870941898235772028218797975795024819811689132150344671882945879657866861809091513490579480790690102854512409590804500571691619225261032470642769911868141078242885537393484079256788004421972009958229600520344509463456977529871150806310746267853801866163158080137992340822102953727455992656371881905146127198995057131777990898652337679152584790270163895363137425607822782752334823517706387843293075359788395429986919703182369371245740669513949949301933990964526810103159596510215034161926853069323185994199176203996954338680001355638117008059475362719972509352433835398152499462693630440104396792805616656277818733347688361923644790431228620324640542026311620974649451163715586272067891671613247288887868999195747055531473161932519363390945002079302677391986389283724365227362670592567324537745689418664165777811455676172564854509952016128757011966255983678268182589975183207614011791441114059961470999501476965379943409564137480196742344157422213879142741328929984029898940396652276709776598650088183755283557106224712609747773511763374023459267270504677289459913681401805827347138897654071625321251706120341545358800106857983932276425710549255281438406062847950687288071678952284674186887447189409544875394651054745724934894898575080038131095756287309113461398768650056042911268577353680056976622463577233229201489949669218681203863318775438443335550103059820801357221535415773650358975827173851176225253248987697891215169039606850952386822765432548129667125359288395941007994758132556115278841796995542381151174544825768988946815885955136286772492138933977605221537060642932726544398682731758021069324079596323354519736114390698665124424163095787134905967897594531997448452319952897956544449657779094421177005266636158214045539335995449519269318250084913476116751609067555848214954982572506131892516858505883293569448448897835998733100832188138928416401375275480916960263670016740245366180134073677506540471401752007166826830433783050707268056022388744269602250600302324188240982364435656862211282041065282946316888180158672881759562701223534699987243989405591768060299230804810339168538615426779543569586099505902558481676103789770077404684093814509758630347485941648020326588238004742755696493103344772026421823080979520231001145850789223768888126025956265155333794535108130835644491646876745632787147790983310060525609087681406264348599767966223193911603187989808794249587627645593310365318087287906568560750198708238039027890051703946332599045768353672915239147121375062779584632685277894000428165027030467727104518362626605794341637462761283061008813455574786542969490175275887900338377910407504782168671041769928584960892609298165587303096118637019884231684242793923040790945967624806615896005511966343181105628976968293026567147882157013738593543121022208726650308874385728656777944027733852632990280689181215385191222389962022722504296117483995635047144861421858941572701917246908417306779474435998382203528741562581220236204314464796891413971319968927897978429351586935220587687850664342781793518783974723273722324795594560521540010471468335135682082726892711828002540663368184543267092202355421509395804544549344023808521406159497651620434585221046820049161441757728436690340385625774229476051575978925663521931917459389425488637682186884547551206694813344042514698797566356629253614531257864674382271683092193696661287884815181363118883048640363384731233243782849583336296580408492697494919104670966126170113889967991031141208536183099658332998206762154562630541463710970109411649177833185095435561156996500988543350045399387889130526125453723345751032176249269691637338043406934500450260254665443472057086419701613518169557166876864329502144627550885415800634850253969121771250412104608436420704211249413690909278042339271708857478095336417615739912473977601977902889589048729430683977001025397672876258424071900733154311311172760720794819617814146857380793197015522582683155811888804400741113639323631905745042053609082210885865955184409879685484406319526120725787233793663333110271078809508177524086563223519307598212445061196056985654436177272335940209002319576269685441221315472991623350013324917423008497365217064064609790229160234745812811870693766580772024030427440145350479058516868977202970800517159857921432296412378262472469005969344168865380562445325650454849861975056387648882846915811710560011568834685225055292591140917809262727786806220668161910872765323842198456547637506402470881791544553818479359362821305588075245559143004636235192469131413438167695879901642788904829445431492434864895211520934204945704741488950291802878956191193920096772786211568859087392251148221813076125502248024269034968156455104735821669365393935727043796186774372602545660136113476728467505469016349463672991488364618178355957651293100408123811805692446236455184019090460968585529150372407816250317226756279238850486988632605926669666417310498370677495730303403632172941228473281751920106977523305776400083871200797761056206943513529002687202878676890360204252574310003529141418674651145274925372165352320895434151372502055491539941798863135073102179418958040189535598731152075282263343223789935957364453331733146227840847810015660685222736625096519681470159975495008390230141624014083096318598329754586440981883089524689737403813869238636274186163132628707407234107145942160331727784117865441794538408390818214218967076977238716602584254652973846152595792538539137534427223743246629818381337465374365817972756817300530516340350453803559917789078246162303685245820395268320358266704104652534853091437166661781910303085420215898069665919821269262788779313182236497787432162410590210769516933087305045844413247054601278342235285817597059075964198690985741031601355202294604580607059072625865984353121436850923759230495853871618760511879329124954938857509222653910185957054658516379215068215616542148108447082683977068665483059131745530217109386785177018396167593726467088785320617490428289110366577071826509608831910713734149692815882658917109646292282026298476372468504679840438320563612016017847582508428320412349280231967189152079930968090895546664106579515045042308511312040094236869218317759667186793934457109254964197592174101838206763297569304745902119180798321874505644197563322265352937650490503317258870756735041200583546641277295694534511393834694488013899813454976825853117216839745011194684911705691772613061935667374168080760655354351399052273127277618454904114937596718608552486596514971775865805355172082325135851059320204627540886041804916022219087057568512662213673973876659538594809054959581649475019966540395699968542250550440180707464375434600174207499501388146153199980737116487477021079620218835092461806175397974215607716491625353591984930107257523770633411244630966844628460618494533587770873977504856590604954644621556151189421128168922401630645866727149271360332929438291553298225876520887423096217921782618708532635822066678057891358188075678050739719339651499784638926826858955578842223312901140418185854726184815126961531863970464645712325503579146824433905240981703622606758634775963598790748969688682504613611431578718783171348115684409730076200305700443664516085867674381919845862360178727050198537294984696353897796003655462695135636227390815060147627237409074181759352207619719215918469303730518950678102612819853575729492321498303415796092848491659416581195716333423145731021285651422605964446055457446041468029919443505076935512229537921282449871936346362623543846724838222950121762130116626549688318469597058975962489827509058512377268920699634113135849378677836749893127713570389616224093820333822786279308394269443257452379799781663321891524083715806142018788803717465177752700016740678847499491997211617337636266911499888946943705156958153960942360247096116632598801171222484012540954479784030493853111050789575320100543762807073481842719305683684528516987134946590583380045627826585834669343722705667003817075097702004469874124106404344903793672402327479724351946508283030536435328892479993606276369279199873483591582580505536882309774729119208492540831528744443797960908636024404974866217426451119921888646780103092759824763705157696651943086118248927314625867285053228472041997302554616878997574245702370223946305251239465242890952422138056778885630528313751062042601472108424539311131037435410400527027453369746305583487675314757762771131783969408997153690341373260286416456807286958470029760315116484474788663502273280825559059274040708222711623404176983919558483947313457707373002049650692671610732929649757658552876531317093814176919892704759677655154620722229138573336236120190636775017756440985474585229056551667157884918638504136623560814651268092054767165645116579448510038115207440129453348497910048162538419969897138469790901034049077558645497243856296420735269364964445155522259602693522630702654661151691817760778630051237343705285130421720823355727346028652662166628064554502231298876707194228494671700009062816038457879882476507884085536836549827455056974294054419347363049731019496775454386035056181618116532554800906035304233640874105041992708789054543843617385143912755014780856011968607530958757759564693861818024785804199791556006842353134928816049726239112202210875354948234289100209567567194915615226979856483177060272139063575147245472175953366245262769536303304156956073472881964132298929392748925778482012670127212145436224299081709338306121459999612538144353129367116352016198451778514735467863644298356669884419296073503674160124363778213898712944283519740329865657726559127745021125640929153557081754157390888352666218022929618032036304297203983349507323181140637733126871555611895932506368300510177793567879835025233324726386369275503398027758050764460903301892572066052757197998511811332453133708973139281075560415693583330731567528628086214228499674069925721875667362198264038891984762900222639343156654644662170834206694894208157904187915680088744602950867988040620703581556424929296950491941828064425258060881737982497961067265522253740262570325606971179322402051613688179732511647941464278756467764666880184939435519303580224946042666228936926097397454259676763919353601907221733273094499891220537747999219848462240628557408848374120442628842747460336120347723479992476371868650674272374089916550874387389564387218285774324858286386973351330469668344460983730213036109685733701644149332930707168431466696565785678296278650203595596761817197106239410473389808946349752781753605028614014117966866160700681123581323666749280380034552000225376208502441198511769971430186153622360033766380180698169418248909436594752029012532710333142647686571912047223519992523230023827178978129609226415543952462205246443425532657129300116442267896848103186313342306281506075759722497997153545042178392845486697109620012969597262730128316838086563579484832494818197664059321794306671369453890062793070610262046851108187246858565554080423208717121429419152294453922768234054875285086405347352711041245373987615269030511488819500132861975338133685553500115510479581279385266552625970103968742160765464541479848204270035606590326914970929433222073482889302685430603182367961286759950097762046211158724684940266004993767395374800628622752532040818577863487802331621233773646022662700049516297045049137983821335769581013986581111843358685694747461973212788689465076290280940330252043532729861512527019198239361385016469904074007974938566627289032388213875216643069768032213459260736482129796941369531369221669120008739453462831442776236485679478788408685005496718907697019857636038104832054358262256566270191592436926474228366257681553730378514873630118551630152376397115175998700947863791934060184017676621775264640246027430026920167514840433309019415509877015600677040183723808110060382193617202831991114972650145931246686170082883290551957807396313312467747028036856078257156198065877128743512791694040371688084017292650112269044673162003214059194937665468409107447086567349332146514199835442892802272368984697831589294946831653530003802883913742196110074986308435876108427000226451459565312618670035351977604071747327642524815089405573677358746374698485486736190688910101355253460033155847652063599839206824837997809473686831363251852387211759665311380752990910041359787387635674933366673206405776791384268930690066699603818936591741339161701982094390899398418522828830744039747093362200877858114460671659117261982453113292334306311873971846838955557735610514230986167267512504109758852117491068705013498955968532848426960640646775198701458417127670237409769667543933624400316434044603938864085780352981423521615428069724999540529298721918664274643914761828611430976220764940928912967266074913604176602321991019530297742819669289254472493277855213711911416380751737677766231814021016848926731010764893720387670247162993485632350044036943429067906477359052302763052027935230404061377056208651074660300910157654737478369814409598399523915620808136926919214526521856796387037195353903794279915963182526771182331892217531720123753582502209053945346166631835645989274099411125573649304817746008552383291707222460321463360732333003272193229178782821293699522165575856362297336220674809719942797843321116675959307974665874068670837913145450632116441543851113462142269142103172873113325860855968485794950141872947979246845512439240587425478838217413637377991595507303751845692088475202643783628016807391612611481141736304391570704481553358110118836541175442114809173770339801992443139752748250730761200710562942430585854091358639265146959846077170613367174883197558721493093441118337010392043885999360053713647772006205936898339078477501341876544219442123795697351473452539106565739438233068863917211709687306210562171719140813472186892094962810302190025844666261908830363423479139098309627458573183170405599346514415863540447805725028852598806064937173624067447148492575893400178520408455398776668128979957686219570629946180008183570629252507197979311133220715834613295497523362361322765657022684788569632976005788147231192156558184250641421311257145632124851134597659001344444281968076100765754289298598249937542080176936103057188478254974485686165873957106520477084244762542690727701613121717488966515423445756693324906271059849643449344473533587355828419208348757049862755782714157666311201066420035609958090002407307451038232327684383179767177932485934692398757093779620433346604142215797700607884823891699209292342622986738555582772734547863059885198702039911247369044691286901624163270245872370270038793027812750690549624044587066567055928522526766106967450047669686718909460364849825522982591827277999170806083379879984076999428943141213715090448981324311120730778595851619996780700627186335733143745561203579659369154204522880728177661532062699081297140419097532997318385947044214191973735469592173023420908604312611351820220007084987211078510947597324016792355487901703037670644129819231198611323797089651955559051723555222423226156632289497268573787329197343858787888181580350945012279059607029938842619598089302376196905839087134585998839569177024586774864185612051016698678705479106274229148345733191080874569747886546505577183674931425694406502827830828915293890512182760721863428743388913097685298652156125757717800862382337618086856194037221763019531671702515010444709020986462099605615903692978395385641573456486854760012735947629335372816714032513686525762836984730415804713288381707995562906479818105258025018069821438826743199937611715468497012893707164337029993685761673925437904358312866281311606244541228098832399063398078141692016893760015372030681204739227166497822969870464944410435827316299632386828416990241487424512202603618567145629013043153724594019833781958473994201943540364214717109360183186313676667767571613323077452138664428192764157338741422435328583190902087471129544839709746451831840344061569965428577100570269326612198236453062746840784042663615496097705044392253899739342070966814371002045602562955244075092086566510313923650484992159180029213468801000650547822690812594772115020753586264000077743098069019265844508085614778578264821725937516269023379029173038922986153153138894708652333573155131797805532906551166801495006654596620704682274143830534091077811152105149625537365048248368076917504872562682237577121730210783095079853784310223114189006441562020435963609756838183318190279065549512769927558876187598584806191313261889889741158448456754026808638158707980697791935918897623303835772757999711923729638865215561593368437558100602944221271121246332874734911298321064511435399007815481163683925090445150432720983054178708868580709334578988063900902855137500616474570647282630697112685601113628235733275662301261886906256022788518380470398084513234842299557096261213120683750963077885125904565853190431062203407184960589983518787433454560844796704716051245149435797412127284618921256331242279436114738140918109026734416330607427854966868985805258797387124045989846492319583942785610077928918466882042476808808104121779608158252878727652748481478166071482640545528489210348133965061859979748716263462253485078635633138502189514927959924788666280576467973351124231803028147838482362058247314095004026382848758314351495371963859440119160190123593758996420860478169702788899585572166069110248120009773709722281315745150546777666216141157769360453925604372553862313189748902485057504014152406104155436978136994640041216191347037185761359947333701100623933973632169158234819524978342871001540938737750568901859472669962209321943234273674690353093706531047605917505266644550162313465360757407862317025135773048648230213118034821331773238457115216368497049361105992332702852736812614883012717120921637976027386831128373356772566329409983212565584401388520700676582780902654270253168125571505039224383248864944182192124983788328677020017208248433580752837714748985533045253924216274031805604842748311457742554662139514994537341079801645171595874359830513010352041776648593149872898220418118349453323071997257667512623803784319382502692895431765608073242818024624110129324720929451384711482973168556194177344431259590429113465021855655516804682606241077842152004071508740678534217538749717790074385036733639271994394141565373550740726867405516478513017246962981400604778126630940180334274511957527075768981324202441918658239899139924786822345887244954619841367461166061820795850053691445928090131652512877884214822620472997498214942642672966444902373212569036898132006909348724489162638438290037435694336828508209053759134368560098752242460911705140503470268662984345316380264912423718345964468333828652812542295156211190103559438592660042062817049349089084749626730996498543666366207771511701975742263765368212514023623438549717250179156776809642167910093549842520581258598482181583625052214695266487088931741492638978954185369935532118049527259538980846856543499433633647802880417139818457411132325947053050745326517868673766585638508656950232179808710375884915894885320745575060815384738110021468644997568354398130618733648341600425194822917361799347092127674996199245684567404390658112114262373862784678719177044954182231617094925895672558951128173315373438624442337045703889690615759895483977743802960839921779293542775624748455935202941812464181758354511970907103289598584937002713727021467275148119300502604018560056864992167019916417528311603196882607727605328578642010115810492452932116950407721465161083950281584483944807578462897003015210673568075241591254131695177345747541663599009564008371552484741853845637652790971959069367367253938708439527070166678027661723491051524333826501410987606097660022294793251509190334022453100248662967426741726054590087375086273452615764927149549538740125051575003475612387298135532718867137869078409452171399196456028309839138454611685657055771517762667395894787569600972494466252956345127329986266038819896664630458179631609580563423446696940949141176983504228732400054142683144205818923030669352056871650525508088639589236764046166849267636188495240907328188980790557478836028095670237342542407406796778985145078468443309802065952889206140537080827098696515124879347894741872384710852125921287767138032639971769596911168339650006183242702067517136187902203366070610337244405107667263773750522897922511260257450221964780026792320814309976757304413514488897554402420652952177681844917024421592842394313638882381140094930892926595277673770194227844593330148547543426485906166563212644159138184893589402055475463550944202067743613676112038717739068216134529834029258015632526045594352155186912417921262870410689328999327402812353654846296487630349379908276243542778264709850332395521283922547826447141544239640489630291506894468505545654696788103989030366018086725550623533970249168182512929224859424203384352203316801388793378326058945064418765899852296098674442262396704215814382968834568601504321633458719197161281222698238848438391905156904500231095590518673518262148872248915326991429776437181809493782873092775320377342311133974567422897664393455337142936169506211492047745419919816253174558456695480794188941067849089596129262224186879610271335456611468466681325926073929495520836750186615872784329052202548541007605393325724052199861300476123158723788128965142544373140527076707813601937349238363297065814423935698321201590754311011715753297231926503550105013397335934700672615151652255150511246007981111939833698838318995362989734591299869264797424371220748037992092054518642114342963311270608117913461664191270130311170372495504305884148903937217827185303337423659181948385493723890985870693175036760246990770431697538932427123937886555303092664696490951840206897517790531147581501250568902461223700354177787104766141043589918728138219873855834688371280440296028106760491985166563329384740782666834711454556073896395175053537314819514469549396404856641427998571406480703139332143904957119419004276643126933009186067305312205868369048925665780548955769397148653770416002038639013220939631585978640621751270283448375815540056418866605800259956593364076940312293750103557689038399192652504201957656671914943434116499256881481875971370270916749239815171380407119811697121211106508960053713946543684481222452654681026963259016993545387614889455208616265264375085924113600096457675554678798567716793747765256695657674841566636893197526585383243929778725479652358016176864296197849660059398902026619094461993483146839890260106392169313047746125248109079247408128011810393864119347140230125548083470806837290810632593286037662103774471170163443201874540008105790568039628875245290020024535909750791404984182770627846276013385787952692847660393383962565954647990477976914557445583194081429003476129254845131288508365593878312818675115423953439558654512618148321670483327712086226638917665413619396521046041788404773765240480778882082650659545251527652168745059526735699762158251543644861794933605078825124021741410107046264071456042781796350468267381575075935079847095656251697938597243562176007436136231406493084076834548641433644191986208813604770989425546109221847391784031421299799951445491152706986477909709548840017443641042856010546598506072005191002292817888184739055767985869841593401294097075537761079645002851505374606312803224792093327966700471816792331302933672915385792108997103284947741151181035385847986183990023941532592879481874827861597047023629666837482040433053710559031733588814006747395550294777715138074502264464859341335561576248784711012802894334803397375025516891039378490253879271938035623484523691061552330889871117123613564422443854706156728478546104710772912649333412022290286206028420000428800076265037323562039254693642606942880620095423431198977160523339945435823549622583935991485912171445609123959431098289562271555768955879351913532946760589730737749114870376684706322645306786849626150371438899201666173444679043139308514261071071177020104158073190618953159398040752747023049072847857741741516296063976179955320704395007824869505085714524935149755204676417431007541353849848047013813865922848049124024029343277000024873968075533405921897779495642875185941524312722407175472240546316868139302839088494734812610030986013055998493170407591465743685991407043807178430051709076468522447719176302800532968254123538791511836136298780092650549138644730580149018616718826922166631847806866331236322833500373375627968911923905370256378851599370100242177296218771466098609629309140905470674498887098400118805698187058349824271239194973288211700720874280794604939668241666501886088388465710487155252418418157414772032879989536108132950612501413963387500188381085007374512017632134485425363998599504719252626597272186596620080619003426980519939936016637380994063507789551592169333444485585072794380149470890323782418357332866156790486025545160437385221685823595643139810948444713122437841252840087701319858504581648529954152404217210163498916353072577548833916043874549211254072880061531889494010275443160202068848599222611368262491550372290716135700758031817991450935128483201933475829054015775022501054564508442091349934038929379712313100462451189508696937701449866846260055914015684265480115536518277307175209789533684639171328954174679098726295717635802658240816631138404876257289417530609244771498999242539181845206685548383277760264787160353997685469342222896189132925832924913668938223780511518361062372368057359987044372288934840362168946899450867581704808330840078959176529598520315589915084624299548668425420820788957730611164774237706448381398751558122821814711853376192841258399089359856873121668611889073591667493679540486140657515723908943426645470792832494946181274865110018479580738661656569170060179578657436766770328449922084693811067352243291447188023206278252787517203528369709362347395858374311637631610441378815893983544925232314549675301262109125603982479491085192527582446584867398826132760888001478147639035868287195536692433423572092162058604904487985895529278967390276868442912908895019058035824035776705781138788371518848727717674604206606884528365171066591749134354803446743113532439713853769410813865147026184601266935014248155399192763379108430597326239082695128160132133464122277263274587037887683207953542859907660296563989724246075378306794878158797553464625913700175636850276649363267600146341427214868598273956640260731014490311658204177928452251642341514916490625354834968126557307138591119780431007365366174425120437597326545266843578020495152596879962827579587327279072475829867991623531507326967932093446628964517099202394467463306733987818028347845082790814540524768122380472780587712066864610679816359291543699020674288296106265694037884015758516623716830684589136053259621205729523001317218610477300688933927451613038941036336222679013074558543609948053320190218936238786831897549066494504368328598407823652013832045137678910085343569087781724578720204724478734969618089708503070558611336899844621804595629839023734357046287721119299730522568243059455470002896870564765935026010333266922840575240429509872182030843911083051825225854405480417119932498792816446314185179808928035329816708303837401514309165900034087761994291210061680029208743510984430339589616967027211574750119440793616763025156500549551520358077195155103016873324669290104676450839711111408754840099459908072740560759105027290019994070472371918610265444383113687952400364790306120567234814958542574957950759604022898987005939761217647879541736448463597743296194769974043050230023402230749519770636538077140649232026616054076638457693348327571863520036929484187240974546182061107224444297704670816351144127906310074790666976248339145796476594696071773142372588981354059618614089465961123400109213804637548562714543270712932553858106637006809762644179561497214559414690882307064748773694700521607111534012418853569470397410116870928324437580673748015873831350340179715234337781309425012594862802315000792986000904152392077051434594848325221582680663158379717356519199777580504378902563639095197365584364999785666197704466659801964337641652438829147583432815721605586289614854442759877689696446616443055482934510123497480487481556016425598577372378435676825104873697043701390954940809028898510327705003154964428347213881319163948656389073339965059139943440062683116291111338330956754182860724761759860374551496486268251359839045302535533533815979763700590991158836663710231912893601037041776917731017720915836561607518511745591085312469011387958240861086525065055989754079757429962817356083214241386503173707945582512760537918827556087572908118323361280533186526542233506923686150840106191503962794026663187208444777387350078430729265409772602710596413282867951499232652346451074522615864418161268690652670324780800591062773509769121137729563859801503761358303649933258763070966652197240267806203062477878431448050832477081442755987387254092053312642017002783866964190224342836418540703807924914010884386381864332292924939592302196539823827134409253656840129835224834946909651689738961493680196597720155765125792387704061739256281603915225178079293356754046782741310975945458939647158400659631071588855673257252822507275783096687130033196920336183698285646853748920772434616469826988317422115681030227004258451694076353070884626119107808486510740276152368800811826167579470331885902011453128061552821739123741146855520044440651251165719723154224783831078144401263527249024742672808278008317543269857337278073499082063377438627872540339335917312868890355301411704081445644189844942771474947656767170412507347700474126614063755485918954852053794378850372215806844302067522542466759313464005425438585680430744801065785265504520116033144919736265280256785448216679336433022772325775848683892594761337624035426976916869678710060545853327870958204934490336277939625704209233749628402370311394569264039973506251140245214155392773153888022047394056888319138956656417415055120617630887713783044290789127748068146864398745383461299522707381827268587767305460066674381932287042116728259779770292871400972135466271753594170345928861188919605757135762217642383867649768972663205588778002865215737965742975287842263705250249249173114296227102269181523750311826248841297508121371423072766323618596256563363048407810447026453013334268152857833973581931384209608924882131474268393412844461986041257770571162241773620198996472154481104826018493359466972949251334842247009852846617580688592705486188899433486864698374820719196454186420195831849213077606401611816419007296577874204635027425757066201088250423526992444786593400596022859296646916993002830441025383696695484272918091033848926421639744833152278995164763384864587835335072060623261224982856721107561049318117221034387634332076510964902792294524375673893068861304365098698850101475507463657436134414570086729058646250622364088351769829000270288074457897960564219561921194295054896031798198827128050484051074574171100388004663273760100823099762073395589634691380994647721136693887982410102137005843107511908106988042050541554087970387524880194950355634822031920767916744210263738337954922828437275224292658370703114044961678891201889785069704453622382584993645593101014046254122365926191766222435715046210093485958571868926530388634287904222598548428389745743865173780191947260349189164913480785930152122795031462906618343332546921879112589831545814027286544092420824925422514995787493728198162189286657867064407995156256318474604069527767105031901051121139170786635030518151850186306051253239677516553899420624072965927276938587847230654087446393317273229423141572872629580145907863940454807584482141173240461736231595977801840132874514722610595798970082640949841614253354654797836778086310579711977634938170358919531418963324257255458412662606570059242085539574056390370485173544812830242188767862653602414783790534319496761421569734527088313704860386003149392572186005621463514294349599899659897037135850747269320576840236787894402356970004476428576318137252450082322513965521490149283050009393643712394003439686584471334476975457629498207243285095037956791930465277749712211424727315649456300368334170696672989917506561471207176602043272777772744592265484759749421565539832602794758460713390766549324145933722529281042690211870170311912534672686146512382935115557848509959418522320708644490935082739587672253332960172299347646134472531687725710898550084586811972631945387328687033736676675178348883811810749298019021929142034083429298556097820140016939792262877824494632787590317056939293357207357884145350329241761693759615692581359939495960545804021159156661512166258609975363101733680815697236350927933040287294349319536209361184967912479768518885557576438356131545078621668109635671392103945971085734596373098242220302026392100279295476367699245752939454054798103110137004047980727406750712316694990025845465938442789115427755941435995406084021983825987622980139777361711493954748932173355370612645048932764352519623136211612808900137049273505088043022412945132459986990157292968326575942588782444073247221986683863200193980187478963945600935327318996580440296544358673980468253307943128217827386360876506331291185253927452192383843288053067917059396677789065692208399016359760014977621147009511812080810055205692242201237128491517655892206940483757153582252798099497544761625078123122431002872994716426243217740410973097153766477539943901641009209212561908256558609867053405746479861722536583245823050917391367793773028234349487207411550461728592031425012346716941654699747061851913791441285148488671799909017759103021839231111405035838251272378997902419035577161667545101220324994281134710918147824480397716248625650409442837004190769393070002819516139958060749156489032699918872502240520754136217126183834173263834383267724677133902929685339493051389279627825038693562729870321612039643814377069311326449727619366462074622984088158053892581738240957769097788887912380793491677794482900397730401248919060417047764605906156717577016078975702631552213991910160630980535062530690380977049627416815815300024112689062152861946387157149632569033141572121042338699193928440297584634849013799720966734171612880055274251638311007318540091834939471114044881390403523185567036430943768259439313450149810861248103954100423808759510888181872906563983016687697770572237893302643935858962052856011682638467423926638835648115310130896088510563309297065220113840932948293478770938555032851343968642022815254800848072292106301461374095878573864395991917639017661751998735344040096049024571655357418980898557141254699362857202889020646847790815724237738053682747003201978124793213185246929193669773263343794072393829374117878626599124825076361935131995098578133500153880754766180506282451162991388379699553403719177551075058334568999046826138420758479308226717015699934687372387507454205148639549520960888615065923583613721838108054136093123366496060831887894589105685458536733380340936029901032337766624426010847509300574462810714369869268628387821308996231751539444749042166322243871937385659251232760957879558536745075145468943796180108015749272939961557340921484923124309134630151048558876187743253132475257046406049889610890325261088990572735592997988495777194238314004086203331407112814425307204307896274087708008700054021793537249869879920866110042769056228686251741491892703223889097076297562057251752459440873973715855152691953708727857987642148628285008440593493285836276321426587879231039090737167614742332562973671354124018031420899561089937709937334246110061974682480924394574472368295617525932838868619910507247462130398199667622054610794292571667349224793964972323868142231490564627619238988660569242829688839136583274240827696795110713704174637069790575488663647601900277896775259599865503523871342504728970758260505925694325300029207238907323717167175087899016659097202585377214751463438216893135860053468623397019216585406216001816526804619366254570225872191651544382425526849890167646651076433424673129430698502780619396173611015845453892390655607490739837751587606746680214765740356527121670234836674147997787324474079150042792802549957251095633816372313304097285339783674911260638395984562994603768014881235543008063184686903414004195156246324187558378289136953326178408321400010363645588943818500966821462252715339662780140336712659852650938552719450814165614770035357155372489498714111267748614791631213838423125844267989017381711027714420632174400897708427357064302906150611599402120080161796135212802064584250886556582784291026604664691803885683043087447197232433575655995820324171702431230116170994837594777006522020542148432252590912951600133259811488271240165452825872914251324916555951330273775300687682894812415113011093341242400136502366450628534559344304821965483330906178181946179936705544903447538177580010707858736452200724783340365784305526795433810608966090346140823395139984276606986595228575118892559498206463520644086025469059754086439474909423328644475268033347189561401319892254471698850987464374085135820780579894153190983568410956040339433085774765541859860054406772326108938990826645455382325443561032691046064179953919190411990479962865411456616933183313466484389341327869731783111466176958206484605258310643682352996347255162300241021548424337864978705029781832131268779778351068970507590733581849187008532784547751748817190871287441873603374616654482010127177930788649227095230685749244522242898460871370719918882595667670813098139612493877126990243437371721729616241893054015418043220391910705886601076506767484016931134006324507013491788273486049305389713699595513729009228814764565895525760174415673906877655924814370555562770238301610909063851041485406506909342888916650331727198016179682533432616739047307214959549250441921528183184323486314998303674300977089977245874451297767854113506615338252829647507482035217800450024790089144267354622684154781491033460065701641267605891180063709514685814392879133394661961428175893029839176809727803979285147802460639636444466825809967407897972199973597479633474566432937471679396363702675024654439418632858097355390909948953985059263450532890930893220085847336176258457840667582463730007774216497161019470627298065125824235961665712415155781224774513124226487074980686239677641090960451039790893584714562055442963684196525224105853919327461219497539219078028935977301905099828686719117797527258650366576054597239200220526116588912947332075509137390129612589279640126385266586269209013394320527187116818478824176523069762322576319761490714690909744941008421924616472855416509719724144305450336426389836369283228482135102890915433449363202913676872385844852719760303770696592623569925723463641857850971900282181575726912446441403968276309917295815071430427976872433631624253175634165997018115037735598720159886077798714019956030330681829163666432499576305754584909024795834581193183398649654756842302855856915821198612340687254580013121745769138829538243214403257723971167464540314358626067276683978499774175357227416781350554270539232252442148586648617150652893998994876461111010896655874152030456129987398672590153433880705764815351769994530507990238687876880343349236502925657880105727786501759046834201077345682620462314037468639713639949077304775769451446216782312550390585974034914442100615305003029577695877577944062338346541453987346363632158649329254294017607377193296934972961244932841722169826199326071167919983145021133110284947335807290739145396697463239934709072115288751710029498812970137228412230681467952899016931237110321671763344942312362777221923104090481329867415860228179140243453044966456176682561736732615235306037585573749249449652037073040359275354439927104872007076077495588723012700702276913858654150070267686165381795390816140228947819755117563191708395729846829776995919462734964933571535812929306176526044934897723637676402611292064276587974701412698880678606829964875244769469077403351094898087925354702419097762842805648428833843145201756591439986002763618239469308104174372200532960462713407434996730941175052079346240401322799802490407199377984278136942160380579742174918314990614651372299821720206396471381989869048715001504692081597947411988156809994392931867708479065330996654031231188101833030506417907283577226591928432876635843414702543526597380365800952401636181963371091076444153632258695651538740281490865731482152044105765911907472841420899365497696520924356069407890854208715903979932352503380850259036871802948966363260404056981033037399096747950844252624698500055243221223986246421504703685426781780706706933068446522942037253474364855034300683724297815765883504125767439746463697944339463252881359901298661626198551818601962081652978078606107187983648487934217023537938850556626433421930361278159414557338170680475772346762126717621257889691944563683445349434151793490302730128553064979195138718634117767947975276860203349286140125836502554892182270390399447531869780087659367190393362688100457806703090272286942910651897835563626922779845251567321566563706445859442855272984181494841626532975318371829492676365823088176886027116399860118546965210612645578588353982198397673436530558085315254675169773719353561089012288981130390254730868107429281219134872425318888639460165168241630017211220536405841501671779894946095917203234904898260735490176034063759560439905986942166433564088990399041874873359612287822459814964300355752773928276711454267926127536208966536048648957876666093494789394187685802068298803494709011894070079552849000685397350593330742947301839620313319810218267048467712403136569398055886307096502885919418074509425919557201781831342712888635435693344607029146368603306123071141611381851081600534459974627680979742370944732570338191409793270910439211598063986366599324312497512848457829055330995956071761040999956094981476950770619607603663607845082963635342715610019033442776680760253046970337928129913641940232595385498136722446906578386837512986607450221526179613115595246574345592337793226965196734187340481154834757591473943292221653583748000200280655963127186541659547284487508335197984142246142285023300472017357849496838653071027432862502127501195272560697234287435679945274407546043154065648295131032353354320331150551548632649269329228413064813889634166801723459400415165704462944451602537695471760986403224875657375053396339204524382624944827409094246657421181808843899049468935392928557071970553194434391031279338545093610333582559331986940122210371830563175864820302351640662088560758164682874576086013729811318382211566213674033750374447377990701332915310384750073536695698986458738631798358596248464214452725047116489596475488342535976141798748384532686430412245585206569061627861694439220762115056933525976836320507862203960003460208901700249874877935954391431112317529383122354693089526394785616075162304153298466929586523508833144514426493650937206479998740310262083227997363594218966491150669979780079920854513426311839091762003223648131908924763066783011771160056781201988961655435045934458130018498362943549782638862545784903725313978738790131768192866049193072354990565459840474774690331748483805346945661593233508590466103284166798233853670091230665852387217126441097143226702121683763256982348486923534875430279382950683358966284221441902076827563543730002074892827079058717267772534325093596546603559846255365414012994122344508379437961563174194924652035598606515846411021842003428640854727426901588615575324343263133798927566775783741368644580267424036892446418594512410570991816056731501635215376032656087143926522791329896185709472107558748178530144577052910811239335099167342696363738788079620154581133099449850167387226730819048156691502073419889682021311176894005957079396007266961766270749470213308240386852939161461531289062399365235556942681509100459648027899751701445180949015151076488301256521095523201678245035115525670354088712693997918163216795490335117274290539017337987389590778528803691548394295723132977532014813543244642231587303509553664495195967940034133624308552359710611586884191618737860785548879491264118693366681803627706424340033063213449015822751695824069672412456287657038808587644310106742131328722120475978283037120080018532486638828889868083311637699772382710751080598950213703225162360848157602981144340261902639812851597447300229030261169392760583612357739873896369762539091167098382246851165933377647139686917563933530495140442251577134978111996652617436062771381217315280001982111674207978784772367274047290421381593808972383892210612685982381753896377849154113704467716770395749375609623712606392887837006977235132507406404434349383500642954572467731469752391563062800208786390412058236310053715527747808117883197154408750838903152942295704974689976932163458003798016554753112418252518077378374961356970852188253418373419961318984542994226586007622965028831771965982687007317727361308937971823415324233255929161795174799392896975403730585176862238973870440282408509204685195520681941963758944951086751092677832741045649750405309199888346005686129374900607262271125932896034595377783892727704687120413537259726819694128690415125671815956394491770708817630328006121028242742998802250897173539717435532357439652817835380117974382996838619288116442556200398972027828039411691064345323187031527184482789947704701926361212847166569433527350278459584180346976324352953261664796208753119776336007808380047057221875252586972492699550271646875521577219610769408002115787259111385222877368709779517864707863004781546992624914162376298212704326185105077166617314250336422067282634833244949531677584355457441028221873067996411746089280597673022822878059463960437792518709608873543871322096763741384441618221989135623754010369897837428902845837951117762048108335154241914872948534132202158375822786079528409524932271997635497286334719079551597980317502907770279531927913535316469250450428296111726814693531903750347200243576801062834745023946111010796867848033193107397795505698475779394460553216902008434838547141361180873941059024518004146464146717217231423625811030240783167882888204143012838351221368585295128682056625602293371143458233210527803029466122532524958978464816283837488776197192390742980072605321878082639118218550307832131538722310351760536516336269633102991421565425094910261078833361933602534740909168328301437872553923687760119776855174494205153093311849232802425392704872128918523798881247273059098575531102696516331247219293746278690858563165707610582704997943923085174054369517345038159969244845157681377361466276850448336506430782124051495903539053953052055943457474100681743020330287786902557184710168878911076959055324969830260375911247167394795227858782010631660642458181481016113887447805957640685507018033001367782999032961468969167304396921873350445747709892321320204083372080985449816258316619110430054393781210128064247559743471643211831137475788224310585684045436672133073104776052301743031565150007350089275871082276273329458691360326544113904994814263205046299735360899175020477697635656380029079410435329565082485836985656471054027263740464675950004571555490881181203104641237684255911901024532714862728272435273934108273616877758838165068373676591566476283172478261547675581771384636479183363765030085995112043699588488422901150373154774741834418026047135474519917621284742708823638418996164617132267811962955938944332922039339244437175101698488626402332042720970926726482073775276951445220659022814337086694517113869575988789994416985732610817344957641928687003162816667490098167728062530387951248302687002864001651777727248441769037973853236102590094754176247178326684556559746344006575711514378887107025051735228115950089793977354003266067522093843861164721798020526516893926929793242567117634995685901732689193218265954434760709117679887875324425960183271501930500516946161493308000963189863446824188228747697452655877009204202422423749421141021095630028927104839981306101756254030964881453894156317990798783780228520486506915066461767241000395606577450824994563097202126324107873988799861458246195963826366705358069184408631092526658848331540887527536741324657597257423061209240647418759092389469471243709538674133730422568384313992769657003049823325645663089709729040770589676607041749608230419427398180318209116767159811806667085774613359654668523536725421394523932882081200584433408852664408557018086636241180473259404406211119111438373794199811371663028626186048068029869195834398502562718556619495892976959845880644529289911178761301644372626721986390019077980370315474244537143225054561965387196503187952737811643704228118288217520899274055073328172095352726084351813642231972639826692699706588769963041138429390138178295946474952898163596295202851361962227731386689627075395108374955803558332864886170874309996099022716730336490212202352967070884593422752281476518336962614960379049887805299300816167598099268157380676375170977906227304581474893164776007635351569343940652013926301023812857108369202410805386605560932574972508497859464853758945949649091775639910605011636660123936188107012759149823399535446302319554790374360096337627224229028845004427816721187124051443941686784691632481422189517997204165309690728752233361239248666991312799066263624347500126446837359751791760172868952399809673738044578906489492867710820854692308641761753512285986989657979062834061494984973009458279222379937550518574218075431054671150159481351514320473487462809171818171492642491073929100157516720507723363170161438166537363240380828046372478463236367609853786450477941891575669818465362722314833456419616175725010880267556673566934410703426824803299755382972932081876056623787871477966488680308547443543408271021854679708756832375101225935485615791702470595301899334812550726340986479523457446864629455103695226270511816119952460987738218810096434955335642504231085599198569831592316769880176999537068717558914322835559731655253923142318814642045246835719808848189694235194601057966284111585464198451330390690448426688499794117468729069569820636916945306902290152895287072690716536412086301941126361684306077933233554750172594230919078803758000234725497175979856276888014499176724766680445359258307920027201801427052045627712220285268603293831839325505744542387622647718651553238757308801851667327456049788606353282487359258637156445250936213591972847247847034652721331964258322822924719574604853394988520102175330087771522722425719530250040957521812533561445355534520958668642900371263784487965176946081272984247738128215593851721288749758154813005932676385367631359044271269296437518607839506309782094521020489914510409888664932203853791738855165742535231178958660323982268755641575490803414905474547303337490833888234616354838342831013403537362183634582353448094095485938229434167202808300350175117271085254006381887666088210003689046358603922849172431623040107280735465256559949552117470678196526078739724119093137148327095318343011183808961945001855434425098660319618805111140777312922727322220707161940230896630565263153986069971368657123111885032129586078049318117227892135516052869134865337843826105577890482529480935784827018029410448527984000646555596299437878459475059060415535376419492694445511133947841532329955799337715458680835864361908151552701676037755312432671801552524947390804115799175138140800218819550407387546747064807615426518702506334611034767340822713185230309164100268871660098476419983237945206120743205764077963207519127299561657543282047290387257909548269315866546572766657798030679227430764651806557668945056247667716983061085281622837670389425324569476266625868901933518989241628643384852976403677817471175189270260515770870571318533796815695740311579193288586573723355448589527322801235580157724752352998708842709971822706704202719304066098845639722180976610968125176646093592971309975193744109761869986567481945806829161736453234441328979939965092673000522816288616166212644456573123102393540625089508494133941984091095693514039541288443958552072147471450889813547475829048781236622306181438192539388912096197207596456761185109245969279774872744184091330005022538510406644340431822855771194285707830512826500661661189939784839418627922493895924102424045874732578401236725616139667509267518859519991246309067630420661032422678738670368865297907292047057659379062079885020649629942055343450941987007796271182491532618244324436262124000018599904765411908491323714152782773506979632695349127655453624813577456247447719534658412485236373955949123704460248081599385187553636688859841848613879784472328927341974296824319059928486613891997634612167736317935486672197095741780769028976532747887740285059532106609725346145828357734906972027147573629099589571722984301890753118374127737226410583157075868862196571950156294299131190583641962018983769209769217458565569017914874572378022660937833853866287976788906617360810509313589613801878842145384739670695524707023601663732601795223432501344946043884849316317319056649867699256886369335669885785418260095675714220871598354034618629591314886176314313195912308174175112253709231165444606204931839240942114712027026756103738458258088865997107035577274902497646040120593587521249819625533773023274676403977348383182135817005901100625405200582897189581816768292512026060494455038223461731427806197233628210293682091764142515732025273839585899467855870592003449829050304194081143342337166099599415398202460268524952171331897694348930339507839245174255343308903996490952598730822224572285700753254163726885884193143986155510155545266842187495413627025342594910033338227357111628630039577763243308520012723008675415139110206661459013181315423535409693870833899741834555785098787162478633860037367439994506107367849283905569060361356269402499613064829262013471521898272982551563965884283495537381122728478180267896365364448647955292179188505341153702392247525483714056780159123328193529054095320282586223989557773052267236283091100348025811312387278080017305498805712156983896478208583169722883793660113585340900898098247763304912642330015160301631614598374771340800124114243120421672487698100133268541856280739293281132323576619845325854074814798424334033018019217808964030506277493008529473195666207003515625321340043195564836703397885326044097048946735672982823366276925822079531893176890197902245123888353963111260497178936673369750801216454776282495435739644280775129880205362820979440217083318523377820555942983714442766493569772351887601696315747768918978709533045481617676968581382607228933273274097128626043024427530819225328281147223652369471201802841911956615127961274863856073443453231251217632324008793316487231066246476307561286350640275923367878440852176378038413300371069327727079638238962784438906772247221086368782529084644234391772468058200810156182827146956114362173130670135747062697071739012660623030884218457105189883752774679579195259210344568814496401680720969268308037289541982942194723560797426503145863347695753039493805594722014594786336102008112144486214134300038611809269055906508741639232060512926388838027938680255832940558052066950532273848243192753465912114412435316416969395836019428052330015099349325852074316781972235967715507281793382439538432653641019020882662654412159070793419032014484106681900166675287078216879023391913791457479354242869506629411328863762723780233454062202181050766645078792013116427585380867761261514419529559382888478909911221988647618732131172694766240550905552699861691360642272977137297639225910914783397974935986397932473932198697069116440489975192631970268566957202076988672516533766123619650494174722854638002740436552081007239601904780847438332124819387308601868375251243270159978786338897747437871819617523641735439997343566809378390258409656874428074294956047132813074236619825922945130449264470527420081137274150727712210902080937796742453047118294970500089111951959417222426971215473728381826438500916205146954554672112348364690209199764019072235166063828311001920405010130031356065455137678204111104979954648371325170522093678540923209726781707113479837613527034540325096380924015182382117058521025306354625413625559203126447026247217422026317829377255480443036953832044787423252910861068884676898271515888718552307935908507609507552733840084672741077646236393600968636424576906425621768928882452402982177794446173697514632561530041590381088150667398873058033786737053641644483363656053993248606263172760721956082487516202195919215971271015490605567087485392467610348834431482709327389690481552331547376094496251510302379566962376974037797322399801990873643437263922502314481853589313049442380378515385384189024446242900682650147675458454653608601132928358353213454377611580842347012168847578442294974445038998638869413299155757557962642415590014459409316432231578826246173119194356078247770404659382893938147992211487495107280577769281779246844680765096764729668266818687880579162821525028680615892755494025264255936887857764251330467204814944074229349806229388749730046972440337722522907481041213825231093592758199016039721495785863475299558338192757047725422945857840459493326327336204428218035746116778548630190536510731064709329768211036530257026810144429419671708003802414493073917585102429122511263606517679097087807109308579487482561405267057469047092541323234342984819353343284366409118591964818438541771711522852306231192969778141310491321670564952592718622508615637006064343991618757389725786708509884544757681255935820119554044762332688898593071923019307130439641753658318968143676835252576521939479410230662294492268594716786666021170928179314760202166673155853884308819321589962382822549778957825167145045408414615486556076256921512132668417856458448451878376780044168664987531153007440195756740731428679037026922430516157239560656173745010669238818811861437296928701649818726009885559396439712785147438018436789012015810788543920462646887653187701148848129798956391859916302449164020331555198787737494545632497803982279106175387250230863204462716958393629400581351400046942554494684471598023315374042424180908263449153122312209107760104059671953102885709905006519864676423482771270883910542049095078316664423056158811428077846926066133879532368124288343531132082405653079055193991189647656069111049538499478661000510883050867976506203521941671529406155129734937601300733671348275024191938811965709124666108776995065309231413571273855443036121762045263290684369743790361672583611238425887699562240876138533682439697433069923211091379953917070631210384357209445788719573048181127115599388127483827728735882236946768390631235412149406957317061609313754244725364242468914942643681161273862972589808353500073734058616227850774853724333036320508887837629580356434389636865712798442801020658795949535960324364383174673823179269356298988618042466326037404679485870061191291438024403311078098601770059690828491592003616759889540168411004888046817407782931182836157396189978460697488839569869535769191961126833758174457618500923365403730560617005519000809906099800514098375031884176214201590466994946282410784734136612050846120548952031131220537362375146609843432052296820855743134424315856761271249837504968573984053369374873749916287715756872515927148257382457925254353755490188432095605998164223787005547887568470197394761841114940144116591678014859885921519862409760087251872741972148033533795758815176029569317183539503067493677039692994685921934157538193827756381597500725976111660061467551875054259172896193424133412785567387800646601110719783684437192088894383226551924381168210891307022648789893599576453626157101162961155175453495505080285150208771893621385624183171106007374630465074561533646813088744779327403850125883326949853407870457187022934098519561380856574417971677274683375820136254053461275116701586211465966581565990353075527114673860525730926062894310664270084550259196887381996328486447603471040788094783658422504507251313856224042318673235776298669786684526580126639816536309330325016526761183559121074535768020701199064713850044677904126799705495999891679942265700920349951583706209188875069829131526485009959808318279400798777090407341787152477574434808073674751442009812144889445207366596364962790705933179422408103564879370438486213819432049453138702943003142467931955344169613848044955326972315180128248186530449998577490333387447362924061861062791430884389530242732660146281203516632909579009866728458124860741071695231108929410563835387138340477521107024581206106285149131443326364124205173001810213906466972985180412589101149135656308320888910083457861354550371057303400946968777030589721277500012307971110851751037676350158428573943856544584464705143830411215066817400950918433955592008605639428431345296733756953598298084118192125574002421417409786369041076524505371229765123962021922062728629258756365002657542705767442193528615867410986912938571914820593619026466131359504741001734442609331342092295613476888405836892833778354357400037544049821778294125530073036183321193513465469455282954116247862223799383017187158870199006598553219114188222009927848103312139882068640401545573572899298455838888283079798381411924160145172491475289987044982653800122028583932214047737780917592371379549014073645380666386621386595539289297216392117843602328149920985801553501104580776124573050164559984532838386536957302161974968371630494771674547974838884000863594063701188513911686304462504939416917330051221470964882997819344782740053160944039830494653451465701019947061546506153487925838135409793224502281115721045202295315335732269228086174762910617132214602739754297738283620351297176096382596627650855319942797280267088953475860016994679955134512300499765890019793555637742809522244336132864729894142353669471092145956633811295129592246148262399885896045744266270599623760348604869088320225623694505501168658535655322834134473521609776721143818098210145325412123832222597747376255859087436382670850292222199873975929050668707415979433904790478696910683886438129222031478884724717749093692574593055019397066410886067817141884042597508574631102729278874328742871280291048937604765393603644256918162237676321142599117412067592718282113086868409845874251572784661215811104612225319020367476059703779068044990045970681929896821992374345657684507117493568231016995102943668811114148013046048429008478310785467880611418710084004430144102408535774343289467399588380626384995903764187261803769864192015018275986769988861484422655444898339180555172482455407615359739090941179412627516312495920585681034713477866858595968025068778032274670203158629551259113494204076985194400854252394709888877478749122816302082175260350837460186075473354664929025050392319510332723908958737185891511621744939679448506679720806424523683043584048910423312556881333781571325154122387540241468383898863663213243134178892136626355611061598699784355174933012984820800153610858948855950138725988323985523407696294768325608028839052596478073877318764953471040928973771598923130244696974085171357854600128831493524256052394047584099881502781884706632027846821461629992968071807891067003869481343871068249334730163068069608563077565342385314155194423511684918366165015536059590980105095643991755467095443019143705865267653209872940915248592767916379006891839246657869389288452511237261968634301964549800808826192253081394775015621578131385521049994355675587479225084579963118418645587738098625808024664162293828214357322730779406441243962044453867587781743011924668978299392080117033939646436831670164040602309085061716977360071804067138899218734383350710783727830222529947925537479815248953890362665843972187744070704237223360221691108009686959707180395882786637659004755852474091979073313008770524992448979111222442659664096847111834809120974074010754827949400495919471565775123642935375750693805650230904904454771108699050678077524283475746909392623497141967307327122992508924225696974266255139093318914815671747047873387559927803858040783184451354253572889439135091616198839190953999250812011694110690990988990617849503302230433580162014122198475913200820595940517609313383429686120384426982588634800270296291131492174874577963123553454047185480951174868767389922525628296575096536188542171698755249831816498328954935258068899341049591090767305413808914187542043239223236358233896244129750464687508235951253750001224002913837351777251505964030350754333503311486468827437761709153604711465586348906467550116584746444252696832534722380154545611027012911182581678627518182928394115216831017508882304273189084107654301456036305607223604913588265162880790622886291046058995771965956324458510172744842758435895610462095099400650883433210288913230961922187255593631109364711474426482207212576463877397729149962943660373689256962450649238392540535849282317501647986911453304947885804314413379282048210055593273070475590243423070304072440260761235781247246013230113327580362463838916566613653751728986374194923429477341662136213582943364086537830533124426380186912563485677256531095062426250435635174772580598026791136954204705501220561900242368142532859298588980809149792988383746328643322593681050767349894032132605663070928640941691193735469789142513895045155932123936962071375250160116602786904473131695327049616202757531394427661079971792838815222611405168928221162409575204109387235111653125170442054277516772452491910776060297234514222370639292937772845987862379472036742271616640189931460319657205740869470042149026489097658854310400388942518510600120712899221530799553302855847208538298381806256507024801121777284710161095662138211894170036560019753341541641436652932753705473772622346016865127418153021210532689300166079781401995360563279707288993711062907732220116474216505619904868397058750865147472593652149018845928752326140359090723049345630671026249266181993436568869787965220342352666878290807593564555453758894019705556683593997315106981927526375294582323038782738809206037416592880340578520025795384505937658452789096706562487689711693566962364095421774601264045513925454201119975918605821058750697156245110732813591809388494974858441883489793951751779693344436650281628653355328896587319672522493356160870051213544783654187997797091273343200852717257959186532251084439698976031813505109484185425186041850946941784254074223991807421128543606206293597386405898805362057586433525610019764300830320769551619834059798782096706684792119908544004449415598582092364173768041743165970975106866093005184638985405018517908589860704070272833503430895636471076612140561089912036559819685959891246165162801034759203860851137343367222922979515904225235588602122016288152696319932320558171817943423347135578026832938660279510606296964382915612917761755121425345613025747496079627472675239934936409626651350375647065332692042562703812013569808643380685343932557347343680660873054514848528454231776472946395837423396395368870191212319076278439316860581619750454628663978259909905775388225011239624077072300979451299983876809129246709065597288214712956652176918358573369901591607428602435353947742007579976240880823538651880069413960752844596874771012976172847244159083798451433191618361920372642493485629495434486511556640533787890209413161658670289388645680586799422282684644973489181847545611869743058273100171532536925850350470409424124892236233296294360708198557922134784253527892020731901952729790868263728552432334616664489811649379676232870626844591952560586994095754458995801084241857522173420244968105169143480642580827187981894988855648474485662198405136179881306425998504561765358495826046755927405393308478000121474618161672279540370047657573157494787760446977077995199507415346433077161672400578244091037698849811749087978000644855731681242150016968868825658625163851662587085865914784739542670503539752974888860870986869293928529939073573449517619840791819109813955413360470083535240442324834682330914914394023845820783696851881495632274198209328446651878661210667813093949702081161050713176940611756387644963343261532318454100601553615910699794558311947009786229707311385783555487439649921144432922366589134054767911389626743683649742440601259497887842426175884458600502123589570714223808131958930982730147881351815774456812641378343491598715742771407731664973313466144477659692887862773848577648556383238834458446715997188616871986270218276981020705119515783670501935584346262770375295196885987104115205915438203145037194938179643128519808200192798216945648982461622586111553707131480331134206016442579799621367754748863613884850047483810258188104515582212181113429089012062507563576830248454546327893846122841589413072461332613556021782043388127782641947759592218411390565011654055083157267475904766807617796118181577694419508019624038015747522313363898197752772331663259708668442362214628468118440609081973634561897770875368768618359193858504792137894704806453797333383234771060767178679679615658306424359367030698335656925997412392830177846154895872592572996967164940141572959839595364776490541209050670432929034866381541957621852778740792543472905474571808953549097592716496524688880473402437623846498481087930663790676251056644246816475087248772028532647537228333453350245377559341436063424830184979420897051478880501299069246482888597232255400343189692409762120900962540778211115918969244763290985226045527910020203317078238905096325255492819088696731279170110951042972583858506175595469130413423845555198349763542686704070522578874093396124246511383496458603501987621158382605225297959112096354779138862031660530611466139014140513199065606728887131098616337721399681135870559306729024620396262019939413339986150552691009669594554806172236287248661987894156889144290127093380605891889950725009256446480929591258138317084052234644883938199710761979732497926494979790234197967428584551212897499940120772672492225704744772068825668638726850935160705327661373291513454289340947866508312423943629218343527953125618164055005271925370088416887789805232772484685724152671818972209342836362787070841510580921974370107602734377480629079515839023371927654646461840473297486448571711761601571852696173647064686416154721695390434623343152598592474832819165389619650327804249062407253153498746057505896486439152566101348250855827985333927712847064750182626231526186334235232861721508354280241293477486218199561432068648301444682314579611641093013337720452972413940469365504130865543492775029427344080814095829803822461614559900685262755758459293698073394597894186299288923235619375761575419670023118362612062552186703251318659235069734146729054988632356537179425330893848116139258652488506604052892451822280795486480566487992762590201171020549505153006987901013221969672590765137354944802271313841913643140753254517024400859753789185105183669385814366100301155988828336386733312890616051331281443795150609183877513509786261746475204910592720341068985822745750726438540224238854976256801915728446773159753556298532833659250986901112770854363501582986017419143128783786235888669966268661190212150408461894604200726507807840140008928022339772585888033514428617783634962644110784523346698494988158072294844551668766421867529434582105432844519681558836686562562230097382016573279420217854809799068857903941488110251232888665428100085129440655880565665718160124832121064927140658335169293454291005599469866731788766656744263199772386365696621383087838528867376283173940597877411469259002079285707055657214738244999911491136058096137304326630298919741368816093135617961787780710875856246493596001347312140340023026979785358053594991269291499109750183829589545021149496515938953804653808500840787212075339183171152671709188157046178516735249145469217272678164507627701564465401036711227848680526535199014442901387345099194679389913221935120279481762528341221833140966193650930788618806260243959107195783509751813781038533863756087837064266282884963889185566334296937205806819345544872933188778933169667335622772129959917265771176612513340952946701536450700702988222155356425974190361484495773163372972167912330682884414626605562574780130393571492012243117320683514921034423332608616093301125270983359225727621108205110992206881536445038825753725833999891286705042049748881271248529483293126698254403978759268681589015163751835810810535688275621250335496648770556409507251624561094968044645548538176133001112954617422444572578317621287954051563459510603166901173745009201017199247125364407610987228166842087134629257622320522604229750547477229867168602842453813257705153113405346723819578720220567984409698375323445258478003427647326702703418271169912415979284871527790685546361598146469602058944278026723829785217821955656875162425994183075840764347360187721165492186835000745192228184293762430332694177134503794247429108581585426523861603800956356913385782811380355065026073218294315226428647542523724920216977771828330694849938769403191521953324506845577696224447997359724986390092260501794166610637074923145877227795253246511931459376119326345808112246205102818799977028616950082338053491579819963743488315742425032414083710487872817652851994941864578676904548435386936150275291345637440426849417734463429328280755248979300138558729641453360995679113015601345834037714720128527701022000767549245127192659499304224433227641227411223621722870078431489203218270336336515892838069205380475707058835699220013357374168689725540759070217579101548813451586410204988242784981804833680718058558120806651819747874454157711808303441656514175703614620069506301430266231793777973373599768153392330920344081145142703372144639127658728120931998181306385293049168335922374169660181302599256985813360187259631174928235257091850928394669503819108407085266962161906984083511524123311852508514674510934470060608962101274086482811620712476018001824820394269640884030703036542274670754252462153626173165196419651527860671265004226097317944821176694086646985209961551344428491987771313212264714249902844286826248046315453885862744864179146830913249122347267291984077224379006325776439575980042953209160291091549055400683684114085614553339810805231513378762121698729669759909219200775517049274920914437850654162638653364066267811435754451551548840703207759301975476459213829300897161519645232567075119962780355070802938500789777043813282291058485161696714565417802896097062292283217925800623922806642471403149448588474491511031640097682635865093144822196595354380874526023479706849744341083573797324143695807721628336993710349250243969565223595474497372730969798890610254538248351456462302105747330392755256935780020118326362121895074500850329257146081917919970778632168956807531238661586544724688314793677259746255679109246253844921859345526024980255401937461609544770372723786021234343701781529398169261246932001805078458818752166812806591843074117732475235115931670333222351014752834057704110025937102151362216132415394159827139459767121183279098031420641777628883370211061352146918805723627878172323323879803144780168516268378605591631207684848687738156141334875110572191180859608541859275834344820183472589442151124890396741548382246022803799729626920141515875017570368464623768279906068557717414041355880157409624473051097270974908992826503852463701963614849882469725866818035834469686788437173250478018304394122964272370944999065541162669590195317551383772103979430187954298237295255803450607465889287140319958475961244681529514960295035277721064679734481172336170839451990746405907832412778101740074714667567403569022806976253268997021858165561714795029142634778771123486436645234067288670725635105585250196702385627285131323266137673738823705147154526446898443586496580459483029483105699224876903771043470575901647969305484734537702355627193936681479124784770179802126544586350806592467987580556812191385427672065949398470678879050329622887230084686556773655653114550794115610571880215257223343355980565448943843751431662342556468426288785998037349320537297068641347574231193538119267211542625689491477013878227502903645841126868818000841143946254815596510789087706102957007036506056609159807577681376181633310343147219052760252908228981802877568253175573238238335503425137090999785085968964984248427918972047590997219573165276591144067695951786237065418645672538841164554801132395236511187001588107231723841127819656358931941466259952931563631992807939845937053393432007168412183059588915471085925481453290632042144344639111825685063431914234478947615228965011107448840057065851156216106414029184250864934600497475555757461148853743646743193182558956030323704838887579721445195083931671145411859258773460832516791859843319333142671368349929116958662512200862013751052418211244712495873772149755446865327278319117053526093252270096288993287287149590395765368263059711317527529362562035302048170556043063318333075508131883262602998415551235038040877465487655943994011288956688219243812285874337560622207593182318943830573610622530621292465192154597214900796954573834682206453190298603350534523179190470879410797672197026313844424429700943842046347535418396565172309306093587307783306965780164927206466060208311359918340901713297866646002685982951949330579192953891612524973328725377302672694400768792778387570319997399280888220290842201291377168091450619850725711170574214145421088384139495958942112110886302008762208606093588428180152715957588280060816363148878480145201066146154585369171465359286372025183519446282754919671869123240923669081631211520359568695735108202714695871112800061298855258152028102022521733725789730624169527090465980515599970684228651690934199209627151953540872554052316333685046549797206101048142993571804549448500617255504440850491825338898191057020525598509558351731877485164477470597723248819035146386447832125318487926343006871878680382948941160153387136693731961761254388765332825375235410120759418254599888230119536644304578040861499718983383198280610205926431966081800212038832405027791472172716731506566677373267753680548886151046804122951492760725137957775776925527748744132220015797284611984377799267844194263902246290476149563297891721066434266579205022608511690914807673679212479699218978739800322834180635397532456939251541634438676710685189321385416526874578499820534346702015789686198694373283503043780612390816096321169372204216253506414928931726167053966914153434408982981920839395249381061588628009230562358500488104255174969099634514254028679756514125362238363628484642396673182267037212976109220205695446570148942069368134234244223805750664169091653741998009363957514860436740255340594675400391752344040145690836618471954439971889326261919729877120581017077547994141454927156176969655003445950228773964164677971056342688658268249000309624989134006383081728369204323766396722668700158541508433091324538365725455467785278953787077638610441451189620809113126950129464900073564316526632851238164463565620134140395877991579583231641078077666959493079056739956911115539152933069791208344919906180401882858058377772182379528283220761076994560599788520458201800244862876558475083371514760462767353029798353523781651741792565625817231328059968783388133381362623000949602292490120226641546447102291688051935835839192662310397735662764047026124679497898391988786129618113409473763633493925785039089550058454328421293237902957667190512266225329658155889608966852891650209937269657467828750079679400838270124097341354660929440006345637995835586148070970551556266462848525344041984278407975047372598027518393490595149358313312674259579579300171866747937798795645771219877087304167579362818966308240764569559459010086503407171095915468632641824296826033026035435157471890287132668121085208578731378966162285572109952501848482180264490448203569520100478385272457029597846610640585166328246517253035509761223938552260023119371603269144472713942952452904828977548075779753459256059083302532639387491977376619561246779223658843103785284448615124356144286933688937916361260104741705042832623743840476134698137697360034295740332007026972183209829918633891050521379798538529907701245081364638464453417209125995689130931293908780589851608574651445181092996271370027197088437564428027185158035242012236929393003221217985155790089709849894214866209901394520123103099841581940658732823277831506884503248710398198953647977095741049248796322833907027547024440949263026178389477702962269667239550991698112782798591158208737016855962003697512342052500408673839078541467701554724610278848609908985042338034433316503452528574667483379751701472626318752942763720275756274586950347439788025095160423143756622071317220245407056767982696432881651315826941793552915479027975199445053740126695490855859070047439194560762248801250164624977676869692851395106044515269351620406280719892343660890264672132633950245369194452918814508787558531246110696713538878515455157923793148268198961919549128218866572752210804656188496836091118174689049945227508377191883867672932982817085832639630533428893151727741677487814856352300871990738999535121542110956559597765068527569190543389116896072826935658003010736038018124773209376646113864557313451650450092621544378506351421681341187695274125791971132392674810301904287082694492310140334801736831572788321337548394952814863316462120753120700682181850200185475966538501202982631835528584334852185207096486430352941721486386027521396113033586423221249308044473586634883961734365547651835958442865154012812319052838760543610414208882253112106015251764729894433950730261523877409868273503411867525608855238522847220956640429720452405626873587974875990845090197940839866348393750710496422010632775561869435691605752118779576299212673097385325618973285729004930463962184373632361484547298476232726501780141603763922356101618307929310828556011556198364764676626584336223433922274237276555334642795778747824559349428018019101559080070390974804580337605088585874930375455874973631482298536852380619692985706408118847344600889485947851789061989184339149738562107783455951909101196817032448959551408749477689886243653642272397013711791656045543587791319001522797635254875675901487720742935770340028096221260261058757995646264831069466868672263453073775457119302240284206397375433868867698718507831423875046333309518564868557717091025783734019965131409985242938476035810090581689573762625170880051417200461469625125737353672049658775868412891692601460849213284431697195559766652935814399305236456063333526771801714744711260901570957299344275206433953288329511295616706464448955077683607249766264168097723403808034998391702071146645631272219960570738262223894474089258014992951840399878534605077961342269391189587483369856875324492655295857937555581899029658679163156658918608768177469948323563455040012980019111354182133075296050441115804817555000709091313082151795601549391077199976615599564064626312454936513801990875223326390223323879985890374743313333157372379864526405287014031559698819058126269706047868922180116649102213342864224596330704803341406958959877464644865205733458798060739373096136475474845206668716655836188572405747116590773253997140136624017265392670703113587820193893579491929074546059893672872023856662354085493365884239094511844188948410639825887173751904204957269440839822380993379884315282036116830420065354829854221313619937802635926693310995230773727595258629279950113962338144488091073255594463624598325295396446327928702909301981466954807693515230893833785094178178104587541998468239949220481352439602756995981874005919093262100258015059601613436052223985484688782718866713315819495719011567519644917614582463125685727583978553391366086258077582840914960389924486293213327923182176374820674194861155691069683915371294052369344317164842221025083570373551248665585264190161654665665865572278131438269940454254464410585773945014466975949908375497918715515362975932458702608188852518601356288255973010696570785058276933696431559276232684685318743321712468383447312762471201678282284699024675973383146585086886165011426113035793871756339746585105245806359958886566619411129586590412081098687785540811833331537034241078841251702438844633201723661591613505221979090587081409289702240355611463157575169942121727950162350488178795290152113450884383931086252252710762875982054592976874804142799706347575873982932792400725744748390062890903116760768226666702761789846840090346768063929169394142653226009429956882184911418887547584855303045464777010197165320268218749217901917109076953467319055289872115992603627534625005680408469478065501535671765708615011926112583175911019633829852152646829766435477176285453341217783451465523533241118648610052812263351476341773676990038771725658024666824040424769204190038761069571362784426055579464015464299539342118784176175276585348314149948912712282386970319994826089128607811328181914455256200206693650717841939932083238962465590990067396453734920336154921693404511264863580344593455118803932895269861511485554240407628318843755133892016125992547903149748972280654917103325186150134404711501835928485912306773802679135006096194852345218146026576780686531955883245437630985501727290894394957111657808397084569857006345092088430429188475054911796207162450837116078081032477165693608650134915525543942065589507280980521855160813503572844862305474679263928957726273171347976097883228718008972226257888568729916837383158799999072497527637788677038434629877111764292600195363682061340706274330219425336757801009262205151277334192608207485418612117677638938433438846718744823891044555818243331762980903139930854517172069805004912743812872819556209496639567570287474593167312686636143638860208278253301931511782460746029688724224809563504792716194952682980012443055317697463332101304417432186574111103864360923234793047866065640664856021297954312709719096320419006806080913322649529376192126227004123833545247618228935023218803339701335233400559945677042765596520820663780354557536475036390560899771863133585829929446695948597319258082357345710224437515844550769271275896831457545068693274961191910102683497714818267668756539671224255267727973783460768695320409276615499413553684131288363997363866511272862947774313120115801459251415630969895330244274233839191286215864694077715943085134614128510777148183787625659571955181085989031497905098441504520204256904771401589531444299960084220510598507799354155037776167324596832924753308293498030247994368652041613481234060678226909939781430939051729721310137595267072750295411505327416156982978352207987885994941745339613513492331099373080053768996594745253685989831900860346085968611646283449882981501859546672742108583767043508532145132585680034676880402064364945343563332956954680358712160341948425517919834478507547752689963032979416915674675069164219449735646776395053436804819011831322390282384130313263674760894628754001811318483738794230784488487275263254112846988961471733530584478068704423222048270448377104652046543743794009115503115333937381395016648794275582482746889105361898631058342047264203275450865273393058108734528726161182939176371770890717699705089376815775478690192591396053022636535527283723829278254151387135490545671172915548117617480843343626967679919955675066775075665400188652084806581850871620748574261204622646497234475178464223530383454270011158534662880493591083845688428044789794748937381337072524698986739733005587684127942677655538347113929794081589048424724171294285553964218530870249540810380897619513262040434073506480465205546090019484317348293025685283444936826414764447991610358999225005931335581718932790300329290192838798588680374780369338214145807073876109246437637660601584157727026630617569057974765769887244194854204141962033318006857969943680176468565056738109500635016013244938202446403513356362323829372678143690996326444920297132768746099217811023349867184548453319133733646590664808452187433478323541439921544554406229623603435750429610290784259540081250330637483969317120991174878513057284125800854724543198127418847292034721749664114361862483580786809334024481625685921241346067179918984382695781598793123564609597887692575980960498401555225080142139964997076308690159017992211954615602264553615546886777051859997330973445395171358695527192247189579614245705579818903970001522463679452397871811634992215338146312344271238762533932555721724985161569449141728073065694038073245337275377247936656525107868153298301348208530695117412741285427955271411947872777452807380407484338612155440544137929618775892025262975667251122211003513167699691619746545121854594426437636481360381997975616470057746958077394243987220746315719783420938533750837684803352464135759030216575356455668389495626162734082513626272191345997560569521752882755526264206808010670224386758072078571851335224928705219157379193965585217806509385717301073589005530066828112244345048230869855544230500687115716818211551413603212179678205717710395326789724190011005967404501795912717901255656341117819066966469849257012941319924235019861834902974197597996189792320524248573941897352882499335216910661790741925949034093058870588328203489269928118039204741908439987882289562454806314667627147432851518983143734086544220602633524001638759176618884078830326746622621044007013221298663879097977485873425691454128213205247002106814501550169440230518722891854622802972023705067479185073458651631609710732622671856721617235013862890922413540661456303822561162109006956373288767488334718619918240425029472132147390996882637104731398576108684581624465143341173829613731324437069041146747867101118763106203041455282079399269243912302180998822319490454521999783904222781974109499091585391506397901218084296497627880588352102994922644586844228073101042818081310765734903650143824794916792275482649077780084230574503234432644446955254748506934469974290853655553974089785372201148589289512844804557556317269703603903912949774141636837718642232978624391779821038473791710247864229065239928413279714558559113623496156038185300096303836378612707256870318037093155603472803543816230329071903366936382946419527075917121916999561780771962414854060713738409754909966077969081620291512671570552140402038667652693908834894384302519309325109979584309893801132360119095130195595726962643915901375087283181668268635492736696571610566788818861411576038159309939819051833502268739511399355848555948991193868826818739949438798583689972890680178103919480191254256406826338237692901688287812614536214547326442476667333263299063211800624078884171360430845328982448066834884751532987018708455544062381605542146043470563235431218568950212243878255433109457415669494498736976823741631211655360884306397489772145073600308389615418547032134397287835592214456227026026038394900312946830775176701248190852916251875009608656335536390179913467528042495186723802168140548751423066319119482815535792235401288669504893680437680091896297779130251070086019201981888830434137764253528365271986325428073422766824217278021451407238946944005611357425623211847799220572237259209707702065283387710872845007705938803948238571413690908763046514881193647404396693584691731795186877602818319246518644085018165389360169187483314738168910046117086595108740132384158672076291225734054763720284741183845147313521640631408806161769407541542756272709604153863744296188254815446057741597905380366908482429540526689348379943014160881558555154481890223429838852366968541081349424891422593554614111445090396701450065832841579803677975868376433069038948176944634617447417869955149677160704870907025414423294971646848109258105504742009565826651534153380206519840594031280357969270104614695734764619283227733906378909527191208664833768949872160757557514926594643182608429654214701627637661632841516719884700384507403415319900507081841131759832605401390353776726978552671407480992391456201528398985343161606538716108242016272611291404842810410211998723006144868707499314985464251452007095831695640861520296129547212111936931981961569756427123099142489860348423183935202203853816481584071005586369987560944454378489155488596865518866685221328468928746780480173449490082581094654928439226631450215769866694883213598798061221868056372222452244945559878111963429588443099029677912898115914744623863725249570870429505410473322255199664808500938449467477136638832435025501056845052092717670638593810487738261284941948478582469793721712391405623256024834597424383022432195028054998796373434020334830449448775245108163060560808884296461313803062793630452536995390775208737703358650759452958862871702305549188800688286885827311332805491813516307235612908332275894599053867710422399449197868706910442842447968809203373944254369463162182417386197996766681344429582312298520323089670165334934880051916547250070914700620973041098492544236009338532035847421123118296585193967796935699629399565076681666587388886184597786171930962870149975139358335094762678692792856699878565698516484874871221299806818649900389726452120145233281065817244141377473003465475692804914765328904923278730857580584420231173626091861532998991665678782376239679220922204744448522520569740082198672520654038482148197750457280451082020516546598686892023473633032321164877662610297626664315674858345280712698554308575892050646660538008356173791025328012815938784103465729120646046390229084111695747296894544728615153475683885212308078430472715705356881860816432976513009561952002454413165288275823249305693029536033364894480318733779147211149027557919103982206195395845088436006306373666702106236680991505490794452965696747943311041852951708983710554255095352456997129924735108973466133498292946896490694940416157793265843697770177342953873409840133572958059187727744279453770763272798769959334677751214360265899964166245186910339113785304006646859189318568717918992580793009375578361536462885250252549742508920286809767025573297619599484474012891601615699403560188573366148964714040700989567530437450917976330881263430019717072412618688774136243566670236995369696656129821781087643754498062758428477545852701600828566092729944923447828829327399881210863754228507974599129214282302429055834569447498036549478603320642488540335118187342879133131118709819264926013882997425448617198352887627009309584375825452207750377260257326697792450736466890290668326333481161490880129957289148657813746739442059419854925060862413822267713889214141071397113349037685595483000351907436166187779513436889981814525369518153869189858864277476683158625670568206227600365269208666534395699402241819387173628324904877985382161298068251050062376696309591915411505571345366150087328992664965582062710280091012858255319703065091370132056260238982997479427940749675751102237289202390727139078554474612053796449447202810222933043723073825378195714120547162074251123778026574383819484577217202580098936676983537409785033284860164156783569413547486125124200284922526068683422486167139885848680040894345831311551309050656441571159706318424368616319734054047372412749078508464570375009424315339460908916392202868808202051094003000459371283245297567528942966176192890777623311424242257832135429531096512397407828203790288315118969744402355757515710234954288077841385431374031918512488712877503043273105953842975509794355845775809373676457927852017817792509346277450234115204859217414956915243762778860240107533858694663969977034892483239175051148480024507559362832607488448805061900771414633112220333424778960465492964268746442942013313710646076437220496177998893945510238086551820645621174842320606920676892359654287856104293869370258890192392006267490043425958266752038241868253165827361995382449513610829176823564438117419273681994756988122725807692105464502475908071990889479861770415218486665183839925038942773442108498189152055187566493959050529827673588935032171465645412817822745049559218426592353184098364997337130862099629824301302637624958806674781495862760779646985862638453341737835503406763345461662652405776591337548900147081134173150229788947703960905501053570621853560994165201242747999630515611971622456948624168957056391458282487498717169805333040034817669340858762384261792816101942574221529508313570834587025317998580885859706045600501353267004337934746623340692720886940825487315664302098213813299188007788796830334148051876848327103344195159655201595001418697780277717097143151795813413162362429909348296957950403571531790810570561795633723230494326617368146561606328207534031146534177607601497215831753067295895163767570682338530965659364885780039396880219598899332217317852295404875416284782460146983491736005575777065583944922890898970844680865755034309889877311425259380781511934252410495627322155188732659410657851551252757951122824672213767537266484160190810685762824369536098280750141393146618001224371561588079624723101192391420602062590759722831873937621405175453754784292857173226380344236332085627218984219373587274970661289878997259388178306215007960403415195805290374657584064916275583828134882066166076220188655597823230818329372449939787682515716973304979089374982121870809652008048213833667760065819470427329874586452740451935021166540132149102720679328916705111665927728225971000489045589891970976227509687791776021809488958653917280849189134992071562598786782741745848658920869747292890810785490513631424785374587737849425404849750721115936474290358879407242351147444195563488559475272878061470442309539378761200110825772871260458565777807319253916002482813687114774817844880602169493778939466293825339348455959883515845188200196603409624585980520566850792522765867136961343005330606403733910166367599005860067904200931038603669973322999224421062805290528779076957075718532210455760702836452085779607970160382273366953046603051779577811110660536413244447263825922002631768338663739493723029948963542193424883207851980097130124323162823301475105284015028569951855932051682137700031774025475023397620095035172000525594099134525627612880656144316811188375293985739344889638961372701115926908182759733359323528577286947055776136237788575606278418478717628260613261725143853869510350708979677493343295328685307437889367825038761559298369842685193994603167784286141717948317938495158603049875842311757708020151429126305865090353076727387048493001144646500724951992426391170938312582539790438298119835765275392684946110813205761497533539173903581890215579736650475244094909918214716761594882964790803475897453916593770954975313495854085957980759922592949753684492635344084645305249056759171517427581515656667825802270500434713969195726461318775883795585463111124709697300561541746849079928329846481445402122298909017161995122094604268781988433346637052674715822728592665470238340329534023864703996490478833002878513869361964755107824859676904161402015308863516972354072797963498120673250616570693733035128482915218061502098884250126006453892104789722849016802089283447468124500403440987545457404235512801621649474501871608584094283219425914256471725457534809986739542686593055518046213522208282617403484419825766742258729128125521091944993390684178950952371385269283477213437246042588779972210696761629588572012709011657531220567821826020713468311947436304078095561215805449538768329483521179237878886162396115435035332546206779839910983524055929952206406046308584605759607843170037214836404506965770814314936030958307084133702513704502904348100516492957597543658545730339179315208059012930830035793680504305790091225548677480376159521676054923503143662160947772966241093659912180392919177846126544047943073201347775662684568017672991636186303307346527088751084671448332416784329036244808046183503274988563444952609421331423313269930394448615178269412476243084626968218991469381800072812732277723688267970968588951505319973333623238567177601246905277724500993770034868460379685331702026146430380219018985895261405900126367268025891843673096793034610900459019355167742671819839498278020486997727856300762572033478805978526861286549088739560828920900179784415813819864442052593671161600422726202056134206345074970370162301856376639928325205160924177034818748064825823919696642252006029590128516100706168839913455344793467536842436022829381145397278578775923619806177186062071612722178208304925439206617937380285540643941709242078057927032547375082269581870299738429807209545239844037877569913797782080570650835145765147321857909895231814913295749630424098453676613823051724379570973608519645679634936915763850253596663712720405547497905561384411981854113213655177198652563659194927506352393757203673987608439120762310932652725797981217184853936665053504528955361232094171649002167607929956068758029489849906804362281367646917320434725218649573849069890745361734163788559802541553536153432843465745768778546118881704336108042811435357679038112071501261556645607921741737957568712167237916846493853146303904010434491478407589259880586202409500823982004173798343052365473647599845430888990977319759993923930113613502040288420655055971129848309174244852788644559322915862533564737041291599133556505049361924148572433583280082946058441098099649811348419776257887063353009067634319016428676243771985929583898148019327993429745049597734744802811395944184809214261303489472810542707149807813113685713765078424334452928945108123973022194728188999447609371182118669168981430687669944488962308633432511107931212189984324395755344105798429830435315810160540261717991292270011824756874250418991522729855326801045739982744395242697820055465700064598512326903965499489172982339084716180738490747778335501745839639979077030760947516034088228080259116795048453311129162416800326324741079629998335658430095917695869653935673170650504037657160384096929934619906333174247208251291978853014750473406857478355899736700532818253411008229311179674715122183616882360590218224142103171924338045888432339097759781525997367141445473624032340091086579923178993831755269485950567183513966275070804158843173541574733564512113586332006108703157824632309879699195854017114902139576664608577455354988681701992241419508391226222013378872869801112278888314525953858606303294375632953720650575290139528688321336516687494095734719183658895388624793532774647869850014919316736810253200668303592233608185443285898964954766982123247549875121843500527477333737992660877636942464265279898936134236030294404357917183541937480504465994462999051977824471039366917672940905607587857065355781545482380680138541615832006514175830152067756744883108567168188728680245628445427747069719698590694881774210330054387032055377604952189159574437183416978553004603452773709343124733611216731342382295027558784254713977682695570335592883694531539361894754476948104655405302167942980062778708217835238685353832083126707279828614673298152475095619633101147405635626509218682373313213508727148343762013555283012198003946765500402372601178490454039934974250384505941363558573407782685889386533709650709071144612597782849669863815794036331877494704128096515408774552297503473644347516232578065545972367923486161859821611899368232437782302601126642754887275515401306390984796499132088725936692040732546636777900448371535487266091412979154707277243054228891673799437089175974893367927457012184934459417594849054465232970765285415245930337349745233424475889215104184612111577964315834309508916326313738404534282644877112355122539120074745282859004708750753755462045870634492382993010800264359320843795086322219775314840927155245158023479303336072110174410523812744627010713840868266946701615418302453502885752573501764099709583765885235547143672848871931065072031050660209399947435393834058354591595393169421453641083045580249576510982285689528051536622706321253058153116065145604648171396498555580474664821889003748423013901796106998605683167571272873995304831883786070304397351639263462360932613371738841876646388568651809761789777231550155208324866932573732984012964158488062555671202654062378425206663782673000364435930580539965314764370592447850781176800010916945639560406993077207664954486813030049824668798056633419433711248490808274031700570734296447551058112522080721333415437766322454971777089920973480051286528559886148545016469121276671532756113889390547881123052673135270708343001542430847210767835045321643298127926778411497524184272085822676706279605633113522025905165877411528906268364294808146459556016201413703214575932755577976962495666367409722294626342121355116147089545460783483324162058918080744451111676191716147578450085687850139362401501492581622089852329512694792841903109206111272184011750875786754615291381940803390988018506667592820478495364155748013161506118021376274399764975393460013604016416028203627064949503331853959508739093902282982199064562906793623412708280665300573132974394502597921666800069371951842827309950363623633626751437942846990106034280595965011741489846096423726910057408961051247261151501125688736708947631075374814459354464452048973089286719491890032798907231266949772286026768724168469384752896058525260884029929765830737141401276487252693967760605642980689504465258650202053046057993510489272888520205142650982565496242664403359928925738029608688720745243399127481417314566575426091575527807102238113164242991700679737756434230470976796714338198151667824738454714778026004176748761445166062101326887141735617465634160111821890226623983605432689301893337584236072385131001245951876519662660395154533721924867663458457941885115958287166503394264109642787512294350046349498398156882652333064951549219761503182305660846520644388179320916072218287136645665901345664629458372283708808334289182645824408680762582688770291180733926685751064311467413340588134968972323438432101122580483783655019874228245510284076706360951714349703302705477885499783385229919116254188130835314229704225318401738280436290608148542564351226354818634287467321846074402402183916569145389661893129349034557408912598701462539833499626590106119109243525560965520231523921349477838330662557460759047932727191609370353626327849817311091072979899954739295395698375848126846161979569416879802791008536789795988115442210800208898628535851972088506498345881065468157691188296439799318072574266151068702194901363411400834334875938575245647383572649782332600044935598683303121709914812982265946663313578925967282753066217922508332686065098047425868724703280445683910774265108526972669336640843820022491685956487589496411063625273391336354834971253141809013960613480784641889991664959199701837615926558083218029527116755871602496378162537535764913663299271416983091429788997663562075561877254990695873744301759551703009554669519638887725513374330785432265336668824180023622728421860389407567111375837569034421616605708480683988257831140018148891339899934672945865495139825880277673449070090868823748325740835466839680130168126529107098971695127479864102283565758173625109463617213527514950335023063391098138040569928733575114701459042438187038768548252246844114733848665296366481138609462539053469355155927315448970373030270814236945527814964072166381915102312234214892054633923360004692927580336620913782377006895132561560054889824984848596229120915358385551849746164839699002886827107003136969416853769516213698871647846408811553432103885336634107296907700144769315858692785836642150443343030697736911661599466539959538901156387165384858534914003946861230895976393219344990174855562268967991815453101088710512683481574436952202965402460045475331158830925464684378109904066991603118957579766343564858195191767177293980203485122266281417035450245026619034212463706673210580768880789496346261122867180941592660100018609614065241323386581593159909160911233881459137583312132807037727087294540417850421089107671449673425860470102169288739012195166461727949761584735612033147566501130493998400979082570310136486707958732412473561965130386900042319285301387479766166421950369806985562331893682480866897089621288766122982708036215141128623484668926324537355034420737260568656491551761518638961028714504969175688231097338216356005353384825332378325321450378827441660944851218674877865814795484642056873719139849946622035449905565662592712390927559260002027025583718932803268910967522446844828698700371809306251387400392713151147774420697912203587131639266835747287423259819464054524137890036006282054973935971991029375501695886573759583643005070809358911298191548287758200328594304028002764722285342952599112379099502919866424944270209951197906917609307185230004415164704200611009634461782869889887182417418605081242135364873305685811220737605853644010538812465492668148573258871876282294548243233701481584119764735864667388581910589884180896582322594451396111533399143665478283641649882427287222571027728449430499123389910792933529184160450505133391631970218552774393974097484056681685926868205563159215898375872446299056074184785067168733647868986695228030943939760946552516310171242366016931095221002884477703600783740924831942288256883782572742782216555987183165731904306163940706403185549360063502320468615703614437544746128904285286294962120273783292132864115450341299396880746318740859749215560608240716239598712360838830331823350896556484532065622891987338198619126539694794336402867764868022350556269187739810766254579934728962323132231123964456633616612518360167668998546946308840381860838664810441088884235727141590211558180737052796308724089038011505279496969380839031959307265521698497052258355833359828288836001732759418802366059458244479772647538361265654482134876174351020228397180595123313088921695894413108455866186938080644592795439057879268661135546238340434637207484113406476864297432732934548804824871694904709403549231593262142180302124086477643718072106566270855311678464263018372405428048923748275200812330732801875600455695920419686525568358035620761912197633462592388453370748035541236289890423626778340844495971093164072481384143247140887717612125341565925316671435998077468069349015187320002420886881501346424670116739908858098566827971034699850622246809955887887554638028741074554242325001923827363999920988945347713352084134875711379871618286672060696122443806931469891104109087896181463160488455092824867577088654904992313162879755904506563580975777638882085941171814583503795340288484529769733370750915023338370934250972466916622397923828976846556120741169671076758887543825646860766130700952810614816191257960808968278855699169289970724904998279924881353308101171705492817560989081980840389504150636701279473817818039036088921624347158354588333081785501756262706468200713544171055079821319131224498773399296054399257531004863763407945250531088273339869208660314719308540437897915865346316982888302152831811357032026630831395175254910455481390004925710581508333190453525316794774916591843013605564017601090072217166240535245790706578076192375389194875265419147169516777934630505541374525300299686114843163724944873122364068831164060234467303344312780462750887447285925081726347657086680676433529052495227766068168431208559145509508155489396503443705357432849358926792782679725134220370562195816882052447895910913722672452045026365416692373651104242396607056615108857509615094834096350637144083491245654609240889194565731617165429743543841513061389912100415023808861328430495482004745220551059478185579392101211643061674344476780358073531738491962009991677827615441991761047479850533307038805427037137059814127670737178596756140783360126133894622585818953835970387738762397896693423810405494290566463548400375304640495698820418138339143311390195136641180404178358519097883135105661660242425634957778223225676147843008965182996746190617645935431202784318568305319579646370607741573589802197669632077637836800216623446316375530704616194377022498719703659466373720140986166456931428888951500133602607640308127168116267064653411699931990355700036606547928731620045435931369160639299770184080147028740101868881673332019061126804827381693381568837011737199793111021918498208460115566022391407487208676931207807134127568289236292904809630872171208701945509345541333988413935310982389108471670262815284886057021809600713909707570036640077909056279837679259475651515073218699156227617778197891273778631525931907328042783893930994281724155443425215304894924709881675686166133656026607884479165734351422560647689313203566830290966887488939609831070040134836398664122557926733159328112136374741764127693523674445102943190205354937386922646742243173643287890472677668153300625457732639433920065997634559015993469441272605614316059461213147472510146258976366592243071461358821302451744062890183046850439780019662957851823871011293181683354205344923434913481019251542837733086776412076579942677339447078676711734128350768981533855582610219664370535595292817916165788136290256829507202301034047442577422681108840459221441337723210535131557127466457134119108787625708117603536033531007333924472549620606672469256325622832685978783239410087579076034148953671624270029670525108955578309228564683519097196203432235178972092406693335877610137464957998725984344764383542559925502263680851962230348683891905067191381913971844111460687647536764705996288368323597120644369812541863093286227562070587416091342295842178219103751995399442693073077524702965718888920894755890624967828366554181616921804170701101602605245484116126488132868964534349861226743440391098553599531775408506318580933504373147888476490188297844486651902415586157799014362067362425441138391118254186043095966006568324203079183769738525358003539888695683328220380289797773557813087925175217990358950005442871015035494643867243519739746250121561797277794352512892007645773316379982146423119805972690160869446189964940828015035600603179688301267793753403511321502445532892886188167856377802541336473435765956174711206338660682914393684074790479698677913977933060057008313644779490967833883854190609127168026961872189262335903882293224408956686224989707207312238261741100261752021993003018724428590671914987727183318011906143351497747419255607909707675147286335693181220888128410655454136825400343192750083114778554790533999697392333318962003720780940582214684545700333121891812966934391398343470360825115561785758510088906412576408922953401346713067284636870191959163800267045675227032539293075072108730379207122372936990721538984242800357107826954696599135931167484708562510579236921472072177906437110936564892206847078305520106838383769645540794126726458089093938139045580318857339466251449797753328057186842542523773384885324183911986711261471981552238246247054118475285695790509928545249125666793354097649447242384005822915580516652908889131593354728302208516479326089252359372651322982409406396748870723342367933812359669328620466486138177290770992810999429789816043105653864161077543716644444314212948444672101914772649122913657411853913203029150771294233899331770103311367206096852833480047192973015856915372984592257515398178539312990815700972581571967508853494107443345533219509623594909310789266641920642432331985109854363934793283480057239840239041441385826730737549058869420136695203574830757278244274050881960587244533265504978299446042184499021532290614867763226307907576945894957385017722573195351283369504789805802382001786056613850702173204801917520161430166814924757583098049582703135353079891854891968306403160619761026695723306423837614464880467772403526401831448075046272200709825429142485122967241190885760818127643167768747894994563106501831042890341632129934729315719921714568385001772153927192340179494976019992567193403237580937040315674590209333980463167268411055685639171128137899348110105107240623198670410564934863105911845037518714550026911706021767979396600804869092934495703908529127556826703235561167455688314818146757672051532672970775050249135236440319634570588794104196164425424043793971940987098357401639274153597170224563394795645215271389552561984260433607528648175158333304580076119031949628999648407532625859112528661768640998004849437306756269628464248100078129688240013615102032131078418645271005585616121548907246852082661483532122139612602923911795869632309273193543629829833266709272891933206469468580074698347709302223660146949075971954000996088770515904582882320061623847828533387073495881730285351628443528022466289371154231495160570349912985321254531328096973784563450519239707107962179371464423157039143338298418366172122638700358893535346608861949315266553213236651515629408906769718575478168076393387080970839657006781049459696673649506936891738694605455258914402885293566149369665685412278933096433226016849102580906865915217657990795027218222747046987897575855464234609462853622530995371954788759618110166879035540455415879494271823499241002824973700130039154286206830373220756335199427762982841303874808825817020788536467185244848830196884502383757507423619192963115789073667132701093132661732492047667770544291314908860715404043564313001696638531536021437943435722960740410555698678930476022526950814391367460384481519488287667605833962954180391748342301142927719232845218765161315690330113374525813193290159862459488601416095791181281331189432709903464098910177391076564385343112975389660962226801807976822347970462970964000919613604406092587326997073582796405842586968376941402635012317466124521204203920416786074689133640414253477791767363700716337663444049219732951214191160946993480597517016024032914070370112767659670770264271499794547390085453269639878068637046533684770547058143201901692317535655090921384979816950692201148123837869263801830226405405791296930788196312161453407751187840309277797848883050218165081364960071610081766469428145020954623543300233604909709324311196127606336243941080787812305063974932214678657804481930078276942572639123817565094840816618923422936821756678864488488719310247669947103451673023032457389878341105903011316598579202941106043044911840181845731768890707531614651028455678452221711625691774240457531356795381112641385800061723265691946409784772138863586713397988237271375047050905371253186865974841749084648941290140738668331113878872701976075122829075184703671654345541363034183600971270886852867332839880992336054620590604182556110569679699255743319187329557760423719806546782269154002281694944118690217552072081749962514792641623170921750550268405535759005027475111982186690526622221725149516870915410894572559636097621363890330727023741352606021928352447310444647519730485326573600672574732443977340768493720770962825593216827406345308393992618618514765335490671685706674024794513626212669713992386047103427530960318342694256438700804495158359947143878598083885530547179422510568289729522424358016035732700067683318725012497050602557957183076496875740594690480592655863607425015061085230718577123936674317445454026594641894721299181923373589517787191851560285699876361752602502039063935066227206973833736181265550609723132725239144831440672872437604798151181204318574778634162617078378064215070821065984766247154195568684553470020949984825952652473634121302461016888416140053770426879456983017296682400609617813205967482311505267355859343232535874350231478778135841421176466797850580298247562155937460628622823845008855507343242077387802498531572128241970692972264651224512358886205981883650451691452812483082308952505792657913039551885184402589049713762536813282368515511193557192439698713101920190362312440749678566647495021446987541666493981483678654923737648304434071446641323466131968995105527243760113026336166294944691111554290556146943586417152392392944107609894044554029524311681891666495252252233784330505593175662381277377974181300030296154122770952428195371105784397369319968766291192789625514466865016040521695899788157777456758316355296062483981384781840743356550376266283818680529532635999147274360247739154365340149205174223355016796596196592653067621754879959035082966514461782713870860436192070800864950043764866684190737774457777237643251538497050243735798709860947486803706028353628987278743970187862610888345119331981656216991679949371667232107472373212689025050576728801066046912225957553761373876052495094828159295638640203840550829523089893891703627002545480644025822089492960905685336833679385543963608107371096907473030325274475079820541925649381983220950933201697917777398770488550183479041155972167822787176399436061495583130515463713886850888874220330100847149408942775692413744523504258165369643890167406495391322093984880381932942080552824007429118205848553906780781375011889466961904804342926385025384986851118845110122381937606754322511798962189073321336665291727436779399612701799849075587329357035508590685400753152024314784509998595266647688296612714865168875610338266238601570043099471053926132589698772711097531258644263554172110823874742039899939977536377152991980249061005771413785824487128311734999147955516519940800271768274986968510185401893837404891607000477320042277513773888367007625450856065937532966587708887430344605377205156362384524177597349056194247905526591419692072656509120171997405889929673150937208442312848255744360185341317651460511273200141852591442025009830349694056329489731819307585421413851891062870917536062449118477263146051218640898114130755384436521812819809307003451324541482736355599736225484861897301808109622544915690362794689109238749827202905736519699875119216431693533914621940324277709865269548345078089848866094669480707023667781321691035074804026250128679519246681851328557589345737293975582295771791377295653589002820713669947487970807254590941591331713571280607423206995457252864219007725496068843221804674624504032578754703436315018374986646299955313163883594353097152428170731410125337726351874127164908124797180579533512650872184371721196198873864627526674349751312002531665101235999280940990194157387447093279994573203917074162897972502067624982576283591079886028248117969675659903938124391051752108085317529532536149530645302282602669718019202719867643182966313753281550017206621643142805380300963062094263589923455272213215999679974260674544244589144753112179356804081221623512802927374631150097663300085996255740824139531146585120304575081522863483410662008098629370225912824887073847666525912474639364191636390735264850065319731418818341823526915425015802722616961834645464725940255994835197906300446799805994293157635386827422887570924500145117127643286804666625046897356194869984565517127285634584895328818099896596328384939066188993026271006467145453550656949088449914931111736648248158651829932899266154830288021821301806048362311509540529207100819245015640375438384690893791383629545458098706592050504277422727326555753491556067481629737806397527776902146792458839074378829173640683904206785710744808377210475703671009916312292772960062504721033354376191615832404912079545393138085810134110769793561850415501313123912491327640617513785109149691472397402453732062932303816965475576242308939606186795105134531075225675611968112383436800844337749559951711058737172123432577677272915913738154345565706971352901671528510063827221065708506629051806119711564923932826837041061057670368589539811569685951715919598098187225247367979158001948000027079581347894017278402478555689497857987942604118519526963794509687467623759633550463202784980785928222709862853129257100286834780993943652206616537377505610489989317373984076737636206834129539733592354255740837103925506397583901580843928185815237015441259620908511846463361462151610948686386472049065156178475479705102978178008971949089070791036772821474891567309508064466329945446496290238000978934149371849708295717324985076683628522434182822585355473818694303574921242827028905565003119297683726780235345214686930077729085465490140781904685709463621875831619314432211741237535831789594487719594328611628508697675441880197112344981387277056266831833075841805969890095953102335779607056515529948922754846646203607679227142290338652165455570852854115089180303585811615158335582951365255693435198837653136734329272566253734680802046645773595707992484151623405916212458983068723410440655477921970343999632835596821692801774231402607670382468138822057195620257067494571492726106319027503464919719878880985462470541966507804981175157693660672038841459620619517810335666112051528694786226705338477622606557281439403889466762093037037772522593515205406068791811275392314291749272352941499773838473771558465594116042366904469534798525199123407791941168726627832544743445773313430416331388481525177613734773191048276445658414907343070101568461611675157580906637939972279449934549384664494150380868699167488646451037321621235646936843051175929049596511597296785247279724895396392111971342129766430565043619864501703817768138777707204958648025034721672288278585553161793843902048344218442727411582837946509323822281159955792429497651273844702999224859920684617237312079440064140799672274275404326933715732911515758092882213548929502421291680989935506990563334771258411067801031904608147749913440633821086679395359084605050334024496468144617647759353110406681683765071222028075872418632966185055992183198132234642087287149447763494465167978714499341754349955154490033685355806321083843291632842931348577037644158019199435173003215362227786753011361242632055500831485784263828312712092542354611667319839040708318338653782944567015375830631966239609070437678707479490810522277460672810268996148598515259372978736417523944346055722794969690931504362101985294934128712903291668766800406593964688500965383811062157692546727307570244274210482703704273557935928456675749256480717823479568409648911651120172839542123806176391942575506980069313111295943742091863972472790274737623814706412669713969021672199454926134768703067876442616754094957571816817883790258160511656992669998388567197467177284768004145996469102022110764862530638880756719193437369642080009438024524773540971815702272730070207134554869716955252057548980594944174106362494666976325191952150274181492102713707200371362292012062590290728106785926130672484091955712844171098102833967031935031402986591689420951702643728423051305217902482324584884526045438696240376072001721852100710777934755737996686784569033977391382257164941474021400824624165059537068213406536812496530197334287682898274960448803359758188935487023609834475163519474192497477536898318317412525230352499400831928578041090841118679518517383232960897352230747777714792173765128796912853854343367875406759665923146386624853421477421406559708601513990733030814529650955626692676558356466626991909861257797130053806680762747367043814048541643279608196049648774954578251247988056486904160636254808651985472723735226720409536478808660851475848260568552911170683887181957746038021865743152989931033561468921277793977761976874124296155867785837647642945060927259728537455791024983344563161208011252298828600703628479390527174807500751795997318756752068151199266804632177775391085901796069643188406283458940774590296053766978441641748931052839546094704262128100879648275147379076901652207789778240711795403003932668461731326327892480423048542962482617128151875086146683191920565178730947176723083868154995610930272086306207462784780425856434731132504067480774214946167120419831090802091682780472536458909218574626027186175997946768221187389820946060826869187890469220409938907533056193873238346247333052457132436411472771783560054120174476047805374589728171134294516154411098907425145234914048448754081957066252594776596311366070019563800047140165980478330018912927369378209206948665615830627997353123882960626518556313720356609494971608694306749253227431799456490017091253262507435741908895690192861612203297354264345080596840273753700310710615160408688236726657244240434478579239955697052073417321647989801440302980669081580780698785774803450898872614725342696011207937167616627952482094964444892007959249701928917177329110914497076560631307958636301893152265416282693642565799467884259714421990956738122002801462237598750457944868106515703286668535605084964850877743370136007936698356576402949966860220399728111216065546065277578398486516904742471263925795836465124619230557376313946731546557429423581346039576758418610887002815224707376815197902917122099272628682361871007340064181818825748242831537074210948222479092019495255720991388729040315713854437836669664044937594415269107222267609528113308104120724171992721074624785195054402422532673177964988885700791880067365255376563603888946757440921512066830021401324955290668212398672692106547894899026097487374815911078698479515571067872656214116005158810059014779066473791934471309643448561289724564924651932090991339459969913285590960898679320207535245805244947881056977642274453556411816318084739440721214254341382297801333209920990317091443815829198826555842256971345600547449990524366794276994361150835921662574022387640605032826089539540938752539271991126978706169103382886501223521045458703457560686296117653925497565664266992868306582012109174114764289317777387519136625431232753812562413578145915990526536377962907675496116916249828857940466027325942310756676045680516558094916595252096334314195379135513278502272760111870906683359778400709519279217689365365292316584617500033559556690845370251619453536991708378077406566703814077199422723757425483647396899904535054163965671575099320705343705716502997618400643876418247163431765866525250465879121846066160424772200366149996168377605286907361735040620865839078264426683346239573176736030943603315909174510271679595121710332552011809142726992921527975479079225339132972287569971990550523883830199743115482741272879673719120248031784435601199538865701654524140429410850936056728138787729279210003655342940898744716821890349003146489674383905829007165425657295641234795199001151739630028562844695622712002265029557716379275348660047875163577784721093510670673493156646707434487336470326384337922571734931222147614547018416545423984688780044492647474119059496964916988576040957644590364382833811263712548553137095778552248354883330099387573513578375577626178727308225237443994133169636714984566449487212716603202432157548593992077970452004448830785417730300332124447559325916749625080205516269585380897095091415971539778339810186179026491403329315194008841230902840471567326610616142166629361088865006871301317487365221053712164497457237419301506663692668408960521036767913351231629643271644925660981982238358086167919326248407346095494090682129228060048309521511241589898496761580500310396492672622740526792608412604693138341818473531515850684085425552845127378562320415057406716146561512194081307105553285340460885868223399638744322140046889133775915259077639304021389718599546323742534823649142581273903356639121501617832323555919036513462781001240686479344423725403688576867092654411235893574944908514233592114650141230809598512261594314239440511383313393560040306870794690593937035413053554669961832853129285533794200588737929865244108550462372410055223074091544805928559647540626492784630532963711286126464478419726147841801314794887221930816947963828727236843746798565524311787286620979628834402044034091471380397921535001859229893193737618222671109183616088764929157606901718049803883169473330602219458414787650866865859786379639547279479483710158185181205431206330388342368897193216927143005650299900305552062585846494130040919912589020177241725653697696752161650875074688130667396843125585139943426456784149488953953493113459587958800049026013793605360677672995465561759317385651674102403269615428018990384491611831494809794172260285890647382646883906967845355517313476114511760263677733343178583266405539615746884979586076969729224308299197612389941737258123590579410151442766617613213966621416849801022916503684583767907651501454337284129186154478006833643411676142802037150926343280195829547528559732675667962117452193361274428259618830049348795794270951426242045083048439053972971165980469530520399606192401050127390552991658881680271830948328018887993624410498986565851025464714464496493342240521234166228488586315435150797016580029438591279552745202909139823756663591212784473949598380782331169578527004134738299514190761562778175620481028574662951637542839193406546847854874041373885060339630280071115730253783027936080854098005526695451485758158920412397739327619029922403351215186690735946377544311952166390106427594217842538736556800194871315809269261344084763013495631285093847851444684631684351511102231551455121389898730472890643059611350614485298722166053245179469475157990597131111936865849888076033718285343650656957270988917191095815091339434297549584037729913584197158376074275655788735152779136955606571303674168298672549489846383410740120365893031823242044250634536635280573571629966181435832859652182121608120337770708535877276615546196728300200942543252432355456379683569416141908686226147060561060297411459371100497576327722461682290171912589696343872617088000925506149295242928324201371927357919221412248842629448438804503383849311479040135317308182466083239391938598758661913863238251316157552983412840942852628817325892071534025645786046385623554832974586501719011173348558649722856860734221730974182124463301055515361713693675952292583057550564095183625775438442409843852140726708004647144433518955887952824684446359934530217254335057852215175986257008753923805875280940173945009111676679121035927602300357300370026031263823158812689197317352858669128213430283008189391158222137332162468313967790355003770678345877733043266141383161428221600573043760510562505402980364167694794834761663450370048797457591511143918587680397494856486419117033835636589427852152482157769936382029322971218230057952280557324019195222746776974160062580984175878588298287278757900938415857315155774872883606290544838353586154508352934376428440725527075018405356379422429704685564902518789711193221419952937002079079092126650054405718329047771326654809910428438378355001865794093679026300567499356420871364058986424253456957886138907957357165188102643621590984395806252877413502382948817469906453866472787868240232789921711825478341566297279381710497913062962712123915026426499508043376631824125327722782927774536717231805479805864226974434171541452028969625776005563891843563571948049308151191149883042390463226761893332237730584692663003636582983706936082681714939479812552794280446088365947112469717404891286511364409181615952438722110285547824450702688692579366740303570972158830718872739323483617305664235913551985619574336155045070097661450298751777194926065817134214867462041766314483427107619971823976027243853802403625078072283977428324917628408665378703924755513398166337009561586089656004736110626960861972013076185527527602527427857858315653883657259458324010364003324210611715783681304784852550873835981803861915540752060783767705427408367745178994822101180997008475067767456748732428796200954144499643298329923777511297567239875184036681987607488617111760139280292403986412314148782590930571495141523550714974892439832511285652866972412889330019188560336600152770143984569478472376906575185539606180227052403293843447212713905090135126025239611928484471130370755440479637627422733979362636007112294252441236310944741729643099103720582396480544712782281965465237719596252828267007337442239617672205139611587653399491166356860066594710512004376919223643428811786346740332648655855342234548463558681874416523937864102341426945318625715712497609991525563247839953486083339581560982385735739275395413536542045905543687624732464176148558899093067004235962147596391903712762526642493256911295346209252042587379500775834585020214868916875230363381977312475142227678300666255837509493372710586643476645146849922340102762867851345578794913070711920220167621591109163691052802865213847983177677074891227879907840658241713650958850503146724238063891489721288560164261032093973623306571451615313692372316129232221194382001994168484333645125899485826145738668377657804392275231121212127701783048348065947007899888974180439793184278353536172508875750888140266034731334568457084694736503662131363236375568882077897744903906995388021067709595223437146723044028230945696303819806175114227129255382749509216731030560972150072751600346776681224989613863542946325217546078000414949863394198235806964209121989362940158560915713954047929878727857624054260918282877416535081212495582128462906020016888647634038093120080892936945092615037215632134803584362309816346568537744472740597407913536998475480619905613550066162596955717588661250176345816230975816479407285358264103206510140325827085745329083948474469875375266716119412476941828023052796888357195899001286506496871313491916978603906372261664031694905492315671946902043440206688634923621643029194067022276533189765884209766553952879946862675615290937323182389867227148292507305059244725417728507382806364444627284004961261482839974075660289312091320853887411860106465064310443465050411508280158781356187708136811999195264220728336095286575953738266455683381609726313041014793147409443969973013312791022746015919838146534101312331836786584357857823076406801917992033029294706472689586737261024118005639994809434613047183237986048768053461631257601278910484361186129944700430838116914926031237823097605740033052075737645022556200736962582111686287721137007038346766613644069556202359609543191301847928322637663989171808470584387618840131219205285230567874516761917419119003046653184605448627229483063045544376272192869146343839080471500220684004141997071272994854346089732346402200283887625457752350797511731269412348388704933872188454515542967670477980014204201244923129676212829027313595434938620816129159329328104913254851670917742305742606050490768508644709236009593956395404147414221934066322029478121986080966759735848209752524332355215988391370780184458180664812652427770029903181772436330030068184681617059276266666852047057475382660787830017073348660372494790369372797066610639441219939915879935219294281239005013111942085880710179619657500720116900543325589397227212335241354523261585037676120549914452865603519739066121235850692269431750897535917975203259172784947750768276765911155104825712882357708995653520585609478100578029619605396856235496308410278682943961300716354720988990850829314449531492201001027336272370415086992444842483534476566957672611000156277553514016783402182490282677218865302335590429850881945078606909277271506057982817854593459973405498242185057706034729026132008819233402461252721083431004370957955813718425678120884034200601902328942685022249504833729060165695093966190970954148507989848780017744186873280671623856298733817807648284903274954653344231285098687649067754513900571026991953775497314467100470903880346587719574072484701285189537898679613919552338255736048046470344537346791229012403243207330468419427889720685823757971191620973799743237362212120498820620634950761263883902959670533194136335276922561437973013686247028058710662896400860248903133974898784571200425269851924257299792813325117352450743771063013939704229945008744647360854814408601669610897310238227692382149534890455845783848677333706018241775047893603334392271403869347518651521837295839199100327447807734354568986846699449115708625386714111626043172790821983336915956348428410552064536189442245426140577738819539631665414312950696961251103582856849051547281305953785169898336566787096247761447444231932054552067655528424968704921032604945460221555915565140027429957650118398100315276135976203932768336108884604561566010526333936167057058959594097439051354478896377605584929027111637094968114693864660677776203201888339084112751241814064737353033486610384445369047019311837779288820573269590128549667966035222312545421505633525522570873059476709722893664299117410993299262972898963849315124808768901552887632141157538416588585252172733198654178376172542237942807234520477416444942939280291203624412046071006085096558722759352638650436597206291195472464810082038936905668343965141966224837847718566906371427689269823061824078325696923095148781905248417565640817765923024769833352924553804407351138974073120102724399239090823271305379721510188564574723500039198208645062568226935243625115641705480735011752877608987704283061893004692018055959551418625601016822864964403651266040552653736272107166012515635685784518089912561307346175697186776169004807395924152123361906388603886943235432612562457055993384332625288321220943443778838713309740409453879315710715286540301303974611564379778101709022609377531498468601806362758482912162811106378886213842556170095374782173832515909207161449338195845168613069866395003865420100231603683672953202852524166534788585941511704916249373571769613357621131165275962119213361366009748891569168489484297695071530388378249801920485268245301204682508192551511715264148742202813181888888043119068684060547531127072959045253995281866558658608072882760776328620256303461076889591621254468170328437089620733671346732118975296932922781322882455526846743226057140742215502922253796117628706634114526231226400927180281794094115693011532021234343913775313607094042506296076755561426963657059744941181737220085982795609532244155161731946159632964818871075591300710298722122770879499534199168701229628503174291371488098840560163266826371747302281754601590874367047944751840615943239913735937276087575081939513993905676378753092844201769032849788327340231366358800896467477372497385298971106853684027508109519315337749941879696953536535428726750272481330974259976620917552826368546417639528977935398316841366593756737653270691132454674893077042209663426521417718876533969767102825915887517718787135078001707088529372991246602064043283186995051745961002328904447419656353215969872947426680408829410364779149181383483980078991566116527804612363459208912399031709557445119421879324109504439125439142597477085444947498030110036095915168956167240923633572378438181576100467964648047147889388281785050938816725865707373377715168825376611551247632765289371317364649704496930886664035300556570187018117949789281576315505250746169525686616636689549879447701798476008486497881480712671038425730526696276127282956365980656797353125441782214604357826977221424623325657684212162075657035283997482037753011369013801122251858294906572130472279839081251497354935549949751512367915072206248683001834698450870414857756020119416031788319321351006650104834144142792930656329160157283018625553622603422463341239026314338336787550821589573266545537956552189432479790230838233752267346380364618631194808664663905466315363059950543866343334014265882213461939891724446567526351019125374626751496019135792910673262614413436297271380452547283387619348527519808397532797033072982534295641465367899194080797279586308141941047886746993001881355743839157491574453828356738314498561946303496756586964293763486161404340909720840401182716471403309589535046539438936384216305577772721714251524566693803510697176887916849490250123076575992140060246886394880452039822546266053475690600223467820683923225237253595169841200974950020499824907289930908358949446667889504323876880188692599404644770642128268424727590785241906494897052970237553112663437828218609328488876661961629182651235145787828866256594947030134483402477117979602617537766681152728998854015867111000204440011379581292511634664353571969605612087982456040326968698112878099152103373534131450500135886186704336188848619758948352142390129520378014515761378688869133571713611013044408003067088600665081999778963961687422888307410514828712060085685939909231490604194264220628520758389456609542735738383933039902006519552964475241819078261477670634276708550005758171419336727158194878649988567221700098522751047527015359392891665496923764564015279039489812441179582202163577207856164677383495623968736035124751685483585522188394815764591693550919696467261101076879137297167056512288053347585078844932729927055865517315579181293916296537789226529408562600394207409297016066791211779396187775305096423184511885290937734213756773228271641460679997710345362829562678658266266271074800334199435781213023384958992925473339754752314456614392753016027842821453483743037090502732557411814363245907902069868928876390526208731958045058441786251444146571632798836539324687472043190541841744112753099198363647151563130770053085974737843186268601157760173666503357461347703598647180130546475752427427836121736750786578582263460160884329080659241250309394410376935479443900645085016315881717774155583759422038901835614884910031509340934618241170033800495838175406285890824416585422901457956489153966974568014262564968169249399990755432071025951372120395349738763059014211204945938545648631197060944364783010691779912308834111331976268969846598502080342870687414423970846558484265945830557389844451536978512121004227595453691183528126241401004770042215581354921190736277214373630007600852249266399096961269732116170911296012411897502583082405673425906178712564982271226873268710403866115972044883847728952479302175729180387160448060418240091281445059558375076390144569627936182014846428097461994853958237333530528167776965430993671520475088367562539222213307898458099662596520079547228213230238425781103946248968426695080542314955149316555159082150731722266798359622522738896339019737563474074622230654409394735972658763052965615156222842248370550849141318850577829764397736587497626757881968158365684066044813477694599596319287414814403120807154328646731600809519629247853225144836775291337730285873702029499266786247368624320025008822748527119133904163984917443744520964174618168142466745777740687878936888515618731838317662341674685251332079616506137516051997110975518817888518147999586196938495507673172264497064550544463101512518139847094837849147887840166473790617621581964186063668665839660254355173062066782375229537105956154006089404704413201156790742607619224772626447868238703855599684931655976455376327578339275205106825999810866746326114890568263256180611935889243722939321832295231717351915150591840626923252466745908240992653756429029995156023307572177152459421533742786729682092122875710734200042977648753581662642078560264637125579843718594235020839712521702416331754063783306219017093968253095102904136189927263421142127544647511559699563693391161334790236265078567964555302825785305338689831691428752863474695454063336401785213497074001989367815700696870429201862387619872505525053530252407959349939871377113970064205078181713692644805716360986497255824753423479138513867301456720089289707480954912925331621622012941609336662182556748599945571821460962451575919303840218278039426698812244630339406244359626678493426626513451159060898577975905925159530174840227526950891386374409225336946979741030520138171574851265989228388044004573193566077182495772148542660791270016505597555206289065031202663394433758910707082879240229975083248801380861404711384506568056395358340639888532375854943482438009892144779989464240784110516875457357488708477581497698226920733657846008672812481082374847315184771216012971678350472010328091347723922955508293650990783850232095811133570618564473906169118907002666926486352166519020482679410254670333902682531822398333348837130202782576232490585982170769815492613453993963181873153329222363492071041537233441382692191549299072185574402171646266356222556747573799841615139480798191989216356001962755470828356998853706980941672714911778159442588286302461510309298598426742051645779829260689674790133574213121592178067391621651371456204703743363465082331812822790375537309874468283349761729616441626480017589532055268785698130968179728153889296719552632695890325279248346625876679299071779226042377907182242380132409007526335927786829306384964442231356233998515522029187002200531625634091682493980751365136813217562094804391761528026553216730766294673581733322263733791998872737608154595674386569088327647345267547218280668491442498121883598989609221603467328386767872414788642111633373569179112114774010239549550000334595212562521065752655041628893313773934693486358086395248523781467290496603471561231279094942752269680853983841538160993674705811130436526918422213843740730353831262025734916462168472874172347414322361715531651188133935448599991016628354871149617097674453609909761859346144046262767982467071803012087026404313373742357759546394262705549792679572984447060466680006070129840170621977403584608483347209124176817627048444497723082687764865282414629303294048362127992499944675157045205446277335058920941448181814038360730721880280327928692541432859725546029160755882561593562498755758768191609111897447511776090101622272888492006588924916709777699573989700822006453532203413542771368093298789173509525927001366732631738084065060354559873470557623780729250791716234502918622032051998229675411381314203264059335868200396586604936213554066256181133218916378969934636434966820288069115193834543281475535152836308330794208859370265548372687476486850767812125141533099385934427980074248502960045972311038945567450718832553562864322333737751655584125008160562391315301206637637241672120606487724131439319529653256414642208738308396891457133143887988003275138219128089887164218270983424738502186621594446075955748685587441191853215430301975601450598641095279147420131106430814243996536440652595835089524213520546841267826870338404647325289689555844056748009491085200157406899091668032215328879889387084190081471447900052509004839689581875383644502141658334547402069614113624924354048100948593864608415730575398009884324194779917003665348739641716969565277037987586622600557636614743978011652914186372671722484127869440869249300941887001083018931014880800895672568284506075122104193491892053366445603650838735145696235464026101210868868714559253078779916012395383692598534721733798602377772849416890080509356432687414483409267765231214172758125793628360371925782815247096564814549145214673958765418396026819623705800297014128880331514864883685734549736032076882959965406346821109757956634314373713101709478616194272295639790069669803747846056121361017605417910469767950653401196426497763415796935399483136727026772569831664825811938609967029777769195482170019580371038002102965661903993980435191708799146736903474045214749660826717509709940289680846817024877884373225645065583160990392177406294999396648437895745395983136163991380912428866900467166167114010516658476439288678382800454921650113455248456785484594636651030619875302356854747670247024429983634683309853185813614577953189295402551881920886603259950357379392508031436618707450247208162762239249700294686178969418043021923811233717650515841416025962423553363223989714528044433117404712885114841248689337319830055664090872787998163432032228163309290445073126167929594192819632010734689361165652528347954253540990374484793343187772134670172272773315056527334473561588763967355524110177734392230547008244741167591710112355328326282901300472511732561414055712258573897415229753087676572115935222348037052686584849117012672876407049345241211702781495755672757873504733228148914591845537186361715018690592774749331238999548782621937343990184806586417277652282341806943109747969262799813972905214322145420408324412362419138226788718962321622114471838860401219919585490913959042446066878378310979289308466486273821143483790354945441426437761727416310752554430958168560264405136819345866011418402750586002875306604144439597608512271713526291288443995925622250216618824892432153446306172612075882741687847199783674964519485775246807086689755347901436891387226821867266757961566313488962147417672480253093578494103769900820400473508962679106269778438454440971088878752670875419277820463140335140590257767045582110912635443711459178251570362947850242513089029528769318405513496113837722215750326848250300516197756591921919179104292299899366295043805527989014380927591445877802734692897619968808861003473064814890409154818455512917424028879200918641623439994747869667155190126094864287762806239196442433846344602083470046844010526853432942703183216403261583318357705040820451028555311826746842784896507128414922385952364248402524764094891980800312877860982050088390036246615266855678370450866424184953399485177789661185909247723209771923840624865757664956256698215376457287985378071731959236904751719527107417906327805632593324442905156921046674677131557483489201569970750060867375885811206866426881007774376137646550230910664716683606194964763171182679550293367034447005903250728875171587558170745246530167227076654764613992232617466802899923057635693228016012400603121634041296876096265915186538463971064361423669108121131328979547407586619708762286397580104723753635896076605002083432913438156853453075220454011598758202538030640608133133578982248707869262741457557740784715302648242545972626776029336609038561455598089834213246083218866812574500202108483036804271456308286751905139537638400750286430414005635203974695691992307592200991689135991022288801643646225652538861903725384822900185808105252938523446975283310092594787808291951671149263072992966413382098186175231219884061917226375580469921513153911860753929697957039223125587299374498414620061090133819324271622742703508700027651886049756761660933206257554183012189171576346928603915535234187320392564176480530684305271241549327000314223766787176662989609176988324842333734763435191448480413716983007618611385016692644689325525478752135918504004496582680062760108146653144652978583038822891548845810677704334866002832182631939985348657771114828401863111526602942856896639423319651615918043893322282027520519226725512888569063420415519233903550034644272116421520479371217978878749091491841550174072464217156643491114757275583796413829296544140595118505735949049002162082674380038513792166101894423229915273269151268575309655417366709871508916272822595285562680512213676237104442847917405204540701877839655817910669474382345360796023588722420316108134163311228449094646841588913552297914668775393818108326885620895520349839732060798465155074754062919913731997000377251716245474901856692679466996443723325718369398865195014880232563124450709324639632303188627207510539235817279210423747331438819766038990006336551200021795640720022650342937860165729670112677395968575797261162030514229670674750872359140594854758449740696990214532903697497759828225399329535994989137847179652595822111214438454677811785417532358478097289826577445228563255578670065371931220525856726634523492024548522509436858869018671664165537611376542680698753895285093194445423555535201629553251889299246601456565076459006002720401905760814021421235388626040435280972606632789158445836135196211448882692028182555203596479267496217706011491466996273854236394425491182149876545433115496682035208636872498041887921652480155772688765854943663795554007404061584011507061882868548736345961449824605259213622625072365962372938764609655375380807562923258842535048911064379307980795724784933400377167851020380762888633219885540957606298264595156064410292297209629546863179993442155265853434697054791375807351372865042197889312262517779192087324213093922563299336005751530950777151683285430292237029370382488443070564899392467836194310744258757259386692581846114856517465459233827914761149600141391590901264826739848473925326834310091076378473115486929423518452739540557168742426853004570726384818887754250006173311154435027366084699072914355080410156834760603688046907205612677544699269385514673437913859993698896727784956191253033589532909522269722242465773978166557377930890427367998562049921936960728970927279928641288755983022410530427022496853978618705275819065806283282078540053038072329594639687461728848109559079242278137238324604694918588014326237132270427698316782999509387994668430745033203056537142244895904495933215149884836338962830418531287723749113854226342881420092659996017399800809655731710856933513500597623753209004171600241877348266910554351136691005516556598822977061196649944016182548424015676134048458371409948348478291909615831359325082371357873004400315669806885224248249634027470416984063503249478558426203904651917068383384758579696596546894743586328840091999174008296205438293710563084234363196413898337041850861434095417657334305462789009340673293212248832494530916052447035583044266069358708796592071122821460590766349603100376747923566509893860311392699944881585465505588575243037652419536827341857352457048212824178929507399365574143525644247863385434830148375629547832594319358017752099059524073486373017164438388784790328109537437251020863289140836932358959736479823287668733119328527280360131890089482391986690200060631240748209930698682254691767210540882872941808206830866912080253991012501173647073429325404339775418003350774973031206037413758407611273029255626196125561955974347608679795047649027207176849121534183282613736509379496229544450018789272606926553332079350575052275612062782221699399091715043681084255651037292929359731341967948204056941832363303076250858531287192023347640944688751735913617424719546745695895431852254091505549619147262848169055076262792028834248043307452045879660311930867130597506166126674812904880385546590391366721937938119621675846836998970092639437729756714704119298991624173585186286217923863689934926050338270075443179318301932962720433416979094913616333970250652018603185882230913999492430401558223446243149739263142579942868098280857709426420667756931388297124216269409948114425901651645404899662793483983171138632684292834791274299574719630050378780986533682214664802295041706005120585873811236938816335168261770255501043493614139970474366406626361300903717432659790135222770703245155024505067962332082283224903616605509926785522531575882623687440115009116342847189639828714341201935607377887801213161071271308698548619576312189742063976319525592476337191441499816843482583083999864193525317049769417324374464961702496604163285776713474327691211159098346640678340729573858269057648256292211594899543088942263701772874100569789873350730875981242543566722899437559267869129071771216583834035917356056137357403266739874098982127029184176148712351132883612610901388202024854878209692772851035698545859002010933388627522222378271090581111971174246288176222411748318709660723490727444317135626104844715994021117120936229425496736639187347683878133745596881984631187626527043728957783793538609259081587611840561356039140784369943748247108530859961344519760155963054345544979685794748812873861263244152464326977940114001344851665359314757011435760511852222013005095829590904173063836747839688126511404777597780892045136746739763584442568868620480295630206856253770204985277017167926469186218620032251882294798729983768311389689444663931858555788643213253853856290379801413658566394756637118642546051269480807593147543087190553475707892985702968377548903737125347045851424373320302919667584779224009569770601326418737204454253763765641195760802520151365335746538192050498391881110709073324001580357903043517340685677175398110116678274188174382947794736401448025285438953570859767923765266914358116545745972829472118686967085603518091029916606054096073881839426769251601552012982638565870090510323383042018444680156231294315971072928214669989374048111193862976373843982830635276414678803219073267914946466243144507830944860895236235628076074972963649155735402407234360430095337297009654057385316754898510640165695828394383822860368144336349257742340699688595147389610148102806360433986397647008302061898196846522213237206668981252051782983600877218527006076352688032223067474028804929963480235996888738287302416897082675310282073720317706349511316935265262751773740044960838540656224054658809006550900952599322934783985111605270611910364831106766088739954051002062788376342434485402375880400852126507748072759673261892106602865569997928310400339699697629554223250245192412704385359107256934397650027498307403572724228409120926621579699968481194707723846610688737855955212416085866860044085491675087670829367086758243139654060041545214058451109907390791803232205755830334725482898115901171478137531639789932785153110158112730651072044750636513788490273040738329246906419942065073978464536014342137693370018688338704310019388460590015520176417024124524678000813441662732442682702836355065365525381585229815352631642112562191805261646155940482660413956944595927079572473415311176139381161796853408322870070088754800604051949994806286387510025115133044357852617824680697255988517305697321975831746841816982096245766321946054403353745777968385338912137013341455969124696162292875386999347934829150302298561804003175637730743370763906537371572534769498397060174787494457971860280015471516400340915964077919551391915445472935324214105533206460392078780175197321597980729007515447864417724547620617616644128056329860566216243845816997147850039602174436470215403597603857242750908773847917467419847311581415644270003713624602918175195149656179779479463301522238304516321268928371576226060922144053940263084311314632114379324133192136387028770534421238472029135454436637848246102645184267925765438218040507629271501833103419187220681523258313675616942648219037786988473619480680305644694107271010639737645581458882267160059147935999734963379800647602054015913725119144696743996739523561560116526425681950449745450505303885321341466470670757630426409300776978154421138910275746811084621689300327455445879260849591585441728135990259935500098881051712529528219506557844469143767162512502838595238449210279991634066777533554793783984964866518137653665471708773281718646379207680358906328433670621432695352540625014537519202369388113521607855836019165230271898837771979959321449777972268395018554982231278266270849989636847181298693864976396046255353696591021684308830554230897254626972907976486693647819837300140475454507693791346800317514874103147887189247983833674798375305737006810412497659550309964328658752105563758928151964995615791014653604432247272974323707135589642944618173731955408174696906914215403925526547369620336491148203457130994295515039453666250827221400898468899710827101846508357607393816809836918855516549566232799444582685314222384748403101196744860423111934955098439689244766598973130831343376067105041998311386006374307246513124495698429820281883808450159979393561056687877300656818821967509209864567911438075472945519498016776274215621139784520946267945722159248995153511081719011840471359074149102576448409633228411920416875593777527222556413545142090230005741252226063502298360091538897073306521987137398673893582232512005444576900888867295251735373862467135137063903020775144454890606958465060084478728544894305671302064753490525987494061964101911444207502568265488085266846072432979888755738034902648839864384847158740933838118310143703256832468271628483819652834960223889171505221729858464234621989739878509847784662976897155121376402002235853080027885108802734202252342263152611231638045809592488757997736083021099514476982347965698133303978282539679696067591273416032239753763218967375357749698990238909287445521839808795013758968870856823813812798206774275692129916340035391411141485630560561983147331483396075408391347244077841745801319802853493069789565317037167449604013385167240970175913708387021996718484125904706339380035176276575452395636949214329985393709710603887701231277904612587465403817294609815090006010357444805437767372494477832718372992502992875465877343755827619456176923439826355231979145270921918916738749881628398336992227569171345571289095145329896199160416656197612679395649735155075514038673444631254618470834086574480201313731525552595063282668811878799546892453946862828991087013102082732564464288798974038023073104321345839568495230045360657668026869844508644095729088443298201775488518931392694066399367627356914255474798030152729277382350804995163858568347014404480711588393151239962668613738174532454881386406280525588731415610523213756555425432292116603873976502390729365210747812286244767863453908160275252774721975167469553372926095141686962449449427507407044178247183349454884326560580529690103179011410714587013190599320485901961445449344927974346368645229173593653926710818624884655112828470748931768755465759446756126107593933730854342446341120159536170987859315885917572564925315500616620856728928009622847649675632833406070727558507248500283967076468605458240516559934086419602893080254659793636016677190278579746819736709797814405435297259468723986119742406825471696227873262861914403154440682352804778663371489820507800029833021612584188778500216559881365893947348799760754985077704979289963287207682224201461864038351089575165321282524760484797792102357292116910343518342547286112590934302002501654972008897043309908857831731659201891845372977826274548932005545154701294662430660896829045377981656097783989787445871722433309640457469266214643219956295360367193262228540125096101584207191298601762283950829635380661147857996243971865593162585808159305055205599095886185898048221903536743935182273428901160413024562939448621953603940658323231408758874658267300013581732900291472555328215471304241114933276613484139936791563618426233466353574206890090107611041078289433562795920731443706371516178161736320510986260888441047273196609515525160980514539261491863190524993035846910505031114819515751893992398302359235842489092285418057401075504236309476766131385389283087702987846184556016196289754828152251692587028240008519850556940969916588494257545814520930596279074030999549414754198050163606100608423222039703829915557137901999011822548819658031833730847839096427249770114443813093647607152086238673667912300188663225269228670367534672665506674390971102188765259349156929723294193475855075178265377814303104413114305778317660036998845235936649450954338814917024026687827167829756740052677018894996737622152935106715158086522330989469877486465910973825808699436665241595463473127842050295467427948583813113025307552373259592546484886487859235498810901048431466779115804264811148719460627829679101335879959159211577932222546573582466741983454218971815043109264192804119932726172107280374881109660466818679385480093489346436354223711975026451479912191260908302814466441520976862198163713271430904344264548090323467774416677129860436097301174011300153885982584416651980733457292020023844049253350945739677749193862610121447803326379438632437896908601884627029447869470435594580591123248426625000122093362852862746303704879043807424097064523208260993448837192982294153688785910119859820551525150989313043225511700704182113887681033856481218216912257463846338992190857500546061128480417192654821072938891722863584971737768403437685468964904300191112945373396396153179781383943546378529426695047957776335524304361777335060195208052979582839333873950821556948505527332181006763587160413738100306806186797363023929275469214907004709971505738929937072111810742598891675979017240099722266998690443747108050284826115584186648415599812954935184639658426406792461187175095570868183821557250815072310050853015036864891465684942344299478951130825519097550732277570438938564946621663210692466511476571609088033832625860575039182915803111892590448268805882381571945310956435942932986477896326659798087593175317932941053972593716929350538002616602750286129705491259302801975789342647789938535359044792633974114500085420679098714943217025908836868664735853191290625598037941941394620022506617638901837563482793317030888086202077429457926142692586875704251402515846013529634515790129083488129086528767955840288235764321920799843505615946671574098836749618718102290934054176864033670296406031274958596823267756785862622112148863967407910418626389063488141876075911024284851843029066443953207772236079159155375657438854946850523085265116986065303152589805564844845220524563610623761234035912918728786918107773240648476400567285732804157228063928151513895806047257280567780739827164700542294215440821217412150769264382923591841451976138655779782352362119458001792975020839669638314532001251793081699974631737391225615516408643107456820922362985766952164703867235948133895138561385185595989583502267756708349540053740426185894318080945552524281391104496572195357979656973020899284323309114111064280436700343688066539001455259823083870682467904935844728133344195232021797755431001242049052749386976343486196546474771432383820165986573669129406833458974882335576305056528689828782356974159780994286236522555044657200083379332811596657263572919971720896830359332245988181560280243530001638900431814603467558432779811587647129429456821081186225499469939692409570866895362097255969419967251996092805825219462954045308850317105170134546836634578064151288822993486538276474111526595902792858160539487810363343886431138156715241403563617205617008467732449011199168295734969312454611614874189514761726505177201684515769863994406128197204014263042389734076076224316324561893675522663012987746617303560164637453663717705996294087755806178614638728962861834748128181131530623767043723278105735260948357425125605620243300678214021670354912992690565498313407333359717428696036459047749159933186549913942739819272741020578047884523209830796330752006254013045641501445144384121272331935104355806448969430013921855687403914755408987550833073186727617116602785252678779798033508827037335893659146783855746576093466987012576991547576721608259551775060678541599845848238844304730880981870562885982081866585052984521119441120580433420838054568408489568464611025246419406492054246913598253173391530814959679590442752280409647031901825572854946223451390478501210868402094332407018067261938586167158347210674071185925965905209203227114990275749594825944900502752173618881655234613211271610185054707759642048946908591492457270955890263763944936427067956209451485738213275873034359470035929063146703861097959066376999425611989654390055566272283073444354913461529661048657161771305248969494883367579987148686886003384962125007113651500949436303179152388652437469446968612754246692746590009494415418921152246633450448613800129440725885466642218249739612816171709993199359716369889202135148473103936001115397195109979672107937828638300132511915490827313115124096995991664338310384509272470244015562247863604968747838405092284847856963906435865451095857879347523877762571396021841247315753127148762000220900548065456736790046483960519916522692544583109675473343710061522277027623235393021837860478606013806241221374281036861627468615285362324564752590502871287026711849742989696605176154841346302836003729428663908557478006841194981218794579226669947443386388037588777024427870696586266425997187980968101010823570571083006600625264912191213146956694539157989877553521817058871760037524253817941432252540314622340929606223559433098619702724662668780652069244184672496553932076223356500742419839922142511720302754680344217949138820726930492151203877825377235483957656605776921646651463057863208166921373810392422207125974117441804121908119147576191870307668780132313797582219411610548265967092107781058809072192548478692840146734693932130378112681475608508423196722573861820081861515085161617854717870970552823197240579214693333116784745771292757548841921918882039905985287042064442740829736643795778992088507490906996689745076595906062920051644620169728094823927198103269622370739425508645910760807801892055986477452502290164956430931327577637189257442934723041839814102062671477146325838527739527648383099074278172362210471985843634995920780476449644100077635267541812587751522812238450563355059300522012429606829017526222800077573814653934029931567565973521563768309551600118706766717469213841308187694387056581590057887622522435929600264831337201696227131623711135527839953364379623038247998513258876221164650551737125021672507029264635460695613849431845171713872865530943045402284439634584751479870270032235491634360879207590185921847110519336071885377353652163925401135531638809871812133005646444898621443582531097944797092277093144854921100035492855048041919124624585424704779156274394658085857030288155784510871817511303777767593152360370456498337242487939408259776997866705463885997281977332072416479431619052173230084698626548199052306480878206456770383978834598927931748595805194985054989010132754544455431160639605599556686132799130529801787027234238811162913959152397501382879600640467923645056595248505160918843016577825398133563921380021960490998714788968568132699094925622394115209263680743303843537918048602633450846694735765734917088931073130317240634455650149603871244598905483497230567015965736576166458582692147517160526316321314121486368443345242590712668831800377054501967100197202340069674741906915038950505640697868006236712316407366279126218600817820549032436420840033116997135346998944678423192332366475596523665706674473915675481681524495430998788314396683144900270175294222802249168344535696511475030219908688526470650250678560838320611087482892240711136968840602505096094829502925203200051690228793666321044734462642272746981974649489125756941289662658756431869644055640645843626902848432616178587834763101118607418163663803435180878845355957180502063304786795402426461325329738496625622416298910121882402018412263204443360563770475442652068096836717684552955481426471794233249272446060863419815208542077159787670802461687253903129693108544199215506458378802663552518816261217918204855013336843364096416839675053350936961125280555090532866323062360070662156230357326753286109008256382958061392574614074586774194959584176942564082444743472663459586858028751693243899434210412471291563271003811186453631904644317437912291993620212336125974160240292896852973245563297465051215012648150695208188205828082253086578924273293261211183702527525259043862609144089962256231005001977421085101453845559623990799779967351746218740289056365440147936093149290259573832568784300628071001614713689161425889854551736179916435204023664903597089391866022184069895121281975822245724523898025361393572086159662232835749511212921748801909153519655093127394096730171596856782312020160965495771733160675413345656272181871961154629918558435222173218067126180432580538488158523213624968843594492609486637192431033391664473106241765267226883438590778086171548259015838399911873953242265458930483659389932175425935386237071714003432691262452013843351850254780604387058228678654198589946188416846142318857994616770151474773775982992961287082937618878435067326065691403490970837105987874151707237334662735595511079377820079056848424420325447350453645619749667170847181161110423610428208743651448639345468083537668520397405085634054145966453180853098376644869453660487316270511770898394634333401018509478669206486044988649427473225428243411078276017449060407911757579610828589112198695178314027914467868726265297653163090303336847788285965702981934865164349146837065683394363339030660837103479044468785496960924693747552393147240380865747009509116598208711890461307404252695808533092762479459962223746682446895822045540875020179668442111843526367085809113026631329351424640401004509851317251031196109525936397732339994566921380072664712641494822678605674547864292427921954717566262560967143364641241675344092259506334746360803851584750207183493008084080101738617053622804459874472858732026896042271929808803030634145514912503865510094914730319763290064326076858456084349856788643494306544423756241682902885915367507015956096234754978868704953873092963033194101149856315789284940326992984590998415397791120794968257341910351287931726761598134403787580515771352258929219828315691067184896810281728626507662039825591466481530889575475136689834375513184263125073686797245797141915415353800934163793244320706334785165580474626694097726963309306534169323208813640834035317824877834383136935884095065679026979136728107346969188091102280135877162300576831955736530219547860119235597027982703692685688489354018427161470552579234416131081234758113593722771548745353266687113782486744361861050680162710270229452915688250462302225632533165240414737562019783902550216955226750739868306219139408794044177525316318934475153977999493486717033589094402360031104474162741331043497421777896635533490246509776422035659122950074754566450774065707152613799036886063048767581764385043051675329013019735559704844356388532222585994118454698223346394958384146529550850553864715841626488056117396582467417134884451696599536990223876406747548667926672293785624317790529595796129413291893073247040745511941654181463286726237001650102965045072354103006856749608289262608153759343232884399058883981626968029951542498122472203035376211405645794818293013872130565942397850490626322655101047532769029924530678935582494179030269326950734873376516222619513927254705125182011854380867429175619987716861060407066150694182399599564073348437793804464338632055323131251744371675032330489435797819904931437213670103709558498366216626908488838925320935075050273339163237623131586064010352373843122468261819677686596327346242197973929449662383520020107074432002598865779413668176282957124659110773086703090360369599161869996077921535415694711740146648871250737630168822048699973754100249291290703125985413178648350493578316656587389219504630706346354934240988204535554026145074464715094527075957248941392549686728849565688321196156364376315246674706759275703502142568479465874849364998034006774382040793934641058316816665374478436337837520245067261355978086747115762220736102736964619626100127564194938269876545241043244692179452263251069628529094507254071614278915379563493910107363358700625243630979670324391778923471268824861743795489451703910737818776995572792372453622974278636948874693141116186359568148593266727307856013559059465919765586674041982657627549967347497566289746878057433126531317040014652382378308748425468436880545771431132591316290688054602624834102691011770392862177607759282080726579243908966751614823109718873949460707564718185688833726236891614671085279208634433106130312016567774395699384951014246626457086492501355934108201336374214150322201192569888222221812597195307474793055316504805555303061248456923497511600930989359316347983003798238221769492488663987965889589593049478392070865685890540719367039059297016429187946465332747810164556678594787112378011558590125375012139810115158793321280837604900813419697813397588846848935668922577630203269258105857499298448990956450092221285627298427464250882791262822995687125735853959201612598659802501083626402340828654749891722027827984465219370630856622519729761244217339217176003199192943142169587746858357295449753012843273306915582992394293213270772102878322779358484530855840564686351064197915632038566451250303463801511843642412754396135460136163057230952121650510408248720948907859335671034294086281875830446699529413060992950608107002909071100296615581435110520400970689945972339061141366519604987166690615031594434383996594880458875896887476592692678983666445646279092904770548098075758890341657453338906271851101029191997198821150585157729813956807231422233945992982132930363735828422766462253248044849996929682152743558896652548251691786965304939655177670266050577967693012548996603861685979069580139900091556479554198260421371796125174078526410206491243926699270675602008942466697934707131299730180341735017095377095948964555014271125435616669604974392566199548751948542320544534915451133078573880673082317062735991982655936697922877714945748068216024648805420639120672929733329872596094025691410095646270149529090583002619522114379631301195201977619301712924681250309259870670286109347857005397016920327688049905111065828572469268165608131490939794190761273271939091796139655664870377995507758799959867515027951506498307239275738000140903427674648203564354711762678205062642800233186151153120062252349126948219431559411743785356653071049779744135688126584310459469901235407298461208757146177685358666825844435744748047395738358526118762255348558099097089439416305445325148293732991446456721505214312006541427199836832076233326888578900007182100332693470958855396594983409736692735822377959354627906034697441225810078236083511588170206191071675213406114849977846121195131379163457630089614867011294721891355153858324967113341728718321911106353897414195756228460775872566020533502289397191478207188170578338589075352692369337148334534984210488819625958710755451356017207496002814195078912315639999078786000381736460791066100273649209720645609977846897411653713753641401769465456091553675407109920271983983612674980831775761310301308218318654435940584129327686556914165502736156953026177500154008247423458087273164830189599215352146784685274795939337085009326440911261305600898605655632123484998694160317050131064154368188252877524759824061513919087292269200949565344174536418656051386758839950505957568714106904231435245384904915219239847723483976044544859268882263464698149367158892540771487115009493921086393230911462532449448084843943144741625488765120274209548119363767538919517907498469738275090536353456607390775172005242382553213876527902945219929786409035447027366323358103589607680577574905757415272698388146670733304570221763965961623959804836463947914718178639330476215512217461303961469197649407643448005456351879888598005260106048298652716436240987440284530100323838154767800027328559329950727946056253662004643981774914078968791278125381402802984218488583274917541432728684911599642607586073657329931042238780438220551525930497397443876088651250667445258307196994014837506558320746672894719312886690203457771612170509341988999927439928495961912167867800841949924629911128750748982206480939492577719996640997129080590874075771663948983405323329925040223488024137426657604983394106359776208349185461955390479396594907450778892306541507836387605111962032170374705353512459074820880279692727324942259219517241764728898127920621583587297552061799003507168302220884684415563490701665042964329737739690526635461372831581113756202037532103252267552171857829489991785838572861823254270771612683732608103950806904455513818078827688626626628109606265684484432551294618977771155724427337066723866287467189433538385053894376485179507229391199024306689588799959794093625151952461769338145159689363841670108355702404954712669266111078629370425787413147465723037492848353047042625652732013651695748558325157960283393460800951829475497736981289774005586384683737812061829097065719463897675398355891306505044465580016621332454956561929091795981321845835619576642144984582401011371260447584558385282903105664636543114364443785315001633800319068593237815183324510613239190147988452808341461191047317465964758208177123962175231062687414253443303696918684788601625090118174830415535490598514494966674075272868824469521773979404918964352392756774269508122194584490652653970181958171139415859818748754135811094173674761593161208759121277662298045120208341854547019732445727660841756604711728824908366012021003218395187860376851618770285294549040229275015619159939230582619970567205801902403700725983151160454767040099568866796593989700777643869346904530663075415506110657379163266361623661587083463868395481826724226848565884664713478987847472561122393465983998780406738090911513804231473616483205645295999377369418920290504308336006748888021623673384364616505957281106736886302363844107733500745085235432380710433531230631123176564903605921160568881746012203046190596485814111265657456042642950425031202075695648422576539891080266226485511016310141203027783799421287813174089819349458547155094798580768424565502561965713288676495688202886868268819659908727007603519334689893669553550219068431997503466605877570915123110738814369354818064032572145814680085588115170921850263116210717725540849088758601193059704746898445832493596439780521382907742630836310794517389355402446115554700405763132065403209948575177001376940483822062026509202888082951487928834120802874952854105534782598495266563067835939740774269998888079555366342996398929484953090763465389466851038061272392789545429628929329249775398121422153173376563720036185747453614699524126280064736662596072286132326432058554683909111815090657987859818029913566901272015695028425662567850401830748440976540066903459613806811138626446178206840184998381516648579845009573493052721568191400010135458449317768111948627614842524440698262512187590718835169064450675853831681366888733610185114531042345821893716611864551057600109354378491885325304776261387873265340153501544548260548909473198863163361568592616089054159204805558472858473618522783509585266635351698709388746291065143248442818818401231245105847859939361722650130075747071016201594958390245147085249844947278317419072634810632623088355426012391718580738005208545307061657505455617597842600264542850091547404252738323867017285819814191086960252081698335878164730289250485119739406741637904526445138732173386206315506360702888336727023422626037672347340800581648631662700977286622319814747370219125674147190946539520263647488042257822560781958860030049133765955055609756374936612999042012043098060688511404104255675193313858738960009347443935660258948086400514772035600518492832235550150489599861328201134930402064581842026589245024974010562125326179630545596356522306273420459947927642404321033034861129754184577951084223236262418080559944656427440863390462933056205472115237308602351837436303355527391478410316778995380747353430766734295412452266982041911159412609692708803753920000922117032371863356588828398489858757883537235002306973596665759319128227680907680666514241559256604244637859531558297296818429340572229321183867570773311327359879627345263250295232776223999345109293694292237962599338282101933668580273159468591179788524333814015750536762273497859610507941954877316168135131659501772346845813669236351406391873190737748161294102151254432582465145557490329760011806674998014904058843387179234160169394823277004991630397051704334791533636620616655488585400689762815770970247504557657685103197811511477190151139184301956519732815117023406849656216198882442409760618983268635356309635029125908289152806247848319095691119995341561175450432388697467550266520348791796999416289570957755538692039308728997549831923064974717018015963083502574728197263648908939463434914825594421173021592368034097896908960094319437280993131658940846284507870730471253083901397745341724202299678484792672978340935413992065852607207593445451373775819981673111198501372471536885628567087320739909207673557419370137669391731231185017021789045730813689204686475897524516889769295790671944996163487471341332550138507986075490074144483453537425576801113779835556683773427149017809203845113751814655022674240321669576038894835364293244150146703736375637613118260611952689768618908640929328182432844445587418636126653673860234903200964186395223181647410100356958302467399256314188262005872749946524724516977027268766999869956284877259570426380932497107138395653352018012094801079086745859481937627304548039254731197335680437687744932220032614622121088111256244135788894242177455205149342828172270819147943344393382742153519342271851433283633620299049727407799636508241147907703471708624230027835241744222250043457567008801132796056682347216062650958316890732436507247610663726662395481651184441968191007316651118116617896027309323450227396432100280688394463461122328215138868262141429956078510704479524702167132045476266577476668916643365592332658250665849797655222861031976405478879846712439333376690033234957504026516336248813327659735575476867663259149609278973297516827397811204147631726671240594820380184804539701078792854734073627825156482969189793826942048652120126258582759822612363267258310261440260354167413982399185613139218773147228288319925080128443794832792316531248496378626714445507153932813270200940951465927907437691760591775809607940174012889660184262651891378693780655313227787438019767488547971675764222278814999270457343816225120919287969338208788884643356611629609713948453849049937820671820937983781784347562667428943874342195206350258173050089339627432206512202146835796537065845310035531932845217576375816633207481203187174504493796378298704585767104687264710406363582785147424443384638705057449988580349613493430659887233952543270118403242102172003001654281662577865960104584549198273423345902060447971881536857154545416502516623629355035226746221014181703825858512668567714618834977764726312425972318937598121357337348168496026034290084630142209296921769207531910005960001966759438942780829805617199655293651571678704132386180933779922191158695024283191009383130923019183142116611848576685605545202684954064199046123304343997459418247134974334772598743033118226700321369362723899664494871533034162954755418472074399392026657013010328486262373019102443597078587113537890012898725645169926233649702764993153668496318897478609886651218852407683250802389947129105561303253916856601053681472581714139934653058678137043690340927624019669622725647322535528014775526999948438138987696155801307830329675768021426458795997048782173984714401281707149423204672056616824793505689567579333483060415408242581768856808281364103776113587758846656272895890096010711427555058972591565038315923957958802855845431836559028230513957727982968245074762860709299751065599740825254112768253835323260342343568743981516864677111020710534444973748512440618598554157939005559037081301716090660316351703710965649356681495904355689654085875999405352642127805864113302672425805934080587142512151229022021006781480230551392628831545729258434497417562189131458612359596559783814458306350762054063240005475233328597054688963581277035334771618223255689306532422200989392886251929474542600387391133064200947231208932282760807920995086369367824613647144456831786572835323389663307349726764468456614478988925464319179673852463357651330943563520199769737893090765449228916769833981030703107768734362910051410875033169621393781273605534343387814187734959340932929895091865007955663858971215708516807476698986929652528559046273044378234881104826739298164013093338127077854337571580146864838287646702278790408684632556709872638922024664588253670469985351160324360452517665828772766314507896741451246760899165709917551533532817524591809954510224371395689839487245810933027022255222222353619285491884787059459584676153366634722365532947442985556848485905733131339435638339253541409974429202730388167090619752676846098966242604627373178707152986576589193788193324070408512587273108198652176525831906103476463704026421329191224232085213970560390316562213263873954767785533830678564195129838790968203977569213576395738043286769630124699370424408263682631247385897800929146936913020565115023300611615878827946576378123260889516275239482720306321977663669475561524343419541224923840752662028326609080520893543300940134626253430328973682133167734196999650908054330533952925739541123569138320086236333488798915813049048415932948873156883983937935936089974711886978484546180787949985860775321108338968342663187517658926884642192391743801159558039094463713647314929961816715785998493322216134859256475918697465017625362691599333483432820462191661351637010057411868514286625271729750510155895115992393401896948948655800322042054179058548174855322089770527621179879427558003901730216280909163420315522246068594932787842441188423405754768277415419671903233233109807326283815172324637890596092432913794082441451595183967915378391512642735128887902620656721655868962534742734458477400234578688310431463647420880123385662035081357760690442871325157554162708496311933874692780893634875356015662168785203065472829673792007693366027089885419038365410786570955625411735389164575403857832584930681039947650800935271086593434990320188269198606527559791735104053576270288585287571898371023796969283697904433995839428590151736892644790862391577929997411145627017576684254991548389265946487257815971652266075387229981853285263172923578694842486293529577283907326776558057290620113209092503626333321922512771308973850321241825529818809576481610064555174425563101301438984896462189900797189805810343943362490756068943114008508156423895796560152016607826464800523641800099365395286429882185175974393542172700495296956048885936334221212106261908649669751861620965194325308717670723295231816749330998882523700318564274976239521290800729420029583284907065562941150156605854504488927208161649329745326410144022918574574935820166291882187786007767259544721915653111849918294562105230536170247565569043909749077872472303350982240773188765818277410896777123323573226468600742644783372265175209218218965793483900414138980969755995176137566024313115135914198093910489435284689942404507054696161557370251020963596656065458059494132907501043837222255378290388128067767828005162266782140786742612945787865627076345337110708311885816234855604432084967429477022016031210071260683362129644749933808173950186672890856559601385855914047809019719338104865904845616605532889373324755831489924562906000291010903612687438390332715548267120411398271086434363405681492353811679667747445506300494866155299766448215117069444239906296897506715457876666947081699243685856649256828249818260635429385131191542740635089345073238094502645859807811256965243806560769192194641977776869566179612454870197352216387891024443091210018720887721003417734093779075621734911195087670850727685697854355178548824301669583321834563363416284162302886117709855300845010381037730238435771559957919246405084214053787750911189461170041016902288346128274444293825221516702855410651387225474838370314297450178844256582698806026079845161610556250201987884464234809735755584633665338698886438342554200443543843333441341501993674323642470149841193991631723374181000902296141816845400146224078447612279491150954820854057225244775029776254412041783087439085907429401996130549688099377483555546634322143349559489081546023706458626097599830211823309792985202366800278794894593740729598396434557059078509029683582779906449901132400753361342949755701143065884308205879040792966579429098665030646200828707740952245289409600027323790334971360657065687032526296052804822979958023277016206002384063983941645020748148801928913475313729191353448235356901783994537585204218938008252390573121021501096048448285040927794077827200248425823576150622473706531790659052031283035338012903743106878408940195516368786613253258011214176817267222031483007196115150837139256191470567719282033515801066651307981914924009452511836363108335879492597043501678248634722949975291387684025664062033663179877406144371663693530856946867504162588163042408084271411780119456387018086693846240591056004674434449759824493256870745124583292410584274097536308394465439908911742154207289923155486520363358962413933443423717501122230814968655511472441610891019707852538451727345937956868229791468366675476791075334789468529840688008796070195275328161670684114375859278423961383293346372618225136722757239936043730994205668100092748073072069828060280932002160989851729934243655602298192318156654817690161813078941775178213623226272023737080024623327839842111168616775718355394273045883255475762322289266130557283565734082220385568885402894196479185659008537641462554433905311958519726127064481457762774746705000122051407859377150835895282277812222416582097421576854161379888962545039654129786387658481041007899817643821547900538125543519450649526913247954583889760282912734861293146753741550317777141596578208710014107078298661346720716888416831414945513035630545483892353997248101633300559837286411102599500743458143404465804867463234632623553177354714887789798123466431356238049700136301684818625359811942193766750076175118222524883771796746473266956816503617767924519123769895786993916376658334652022355327136219145983203579327666915159010308398259606894008676774438465691964064617987371955248574213042994921687850134891719461542538917267244910595023040471831044575847772145120228760032858795121412179436464941813836858963446536681168618895987965231673552849881958204720025837305071106693239338889172740395059464865265253989543114219048872287806447335037303383695597710535782723825163919282229841677781062837966675632982650720266954840441488914247178056270004569922361875526471971902330705747340209310549714020136770044591400038439265778335625268855421432775137764501884628143662470460663343744520340333892856836939024916153337725320241310150342492511690822397228269061509486097353499583259294954481131393744654026055363879793368570938003437909156503688503473717233053169641261622078114029262913286624011043249844918493740776745113622150621032009330923457894686504752715072518347648192790329695061552224075116199743485331362044553980626063218676714575147492146519468168692858510760280835234794699217782376769254274116696968821638753953369625320300144264483557357795345488076671813110740855430814041595663821537988885332486635615305088717940993092691664494258966909595781892798664976943938248210552361471275089211935889022266160031991210009604887636199616450133720916650316754249139495115809362516689076908904368131795765853552862642017680189137928721773980906243831438750134654876079575336783410406096560817650623798878343604945736137618572928608420484822174209241105026369812563431680142292094034028335608735714622133320496798135398184970907834402787487112868842674407949709145309752463679829582022955890188191581493805455397402183893597241985002716850507073454721384990761063728661915204632251435223973822679132966134563234109800287071107253562357260917454273632989632605598903160187627262349761601521673210820462103093397044252186465145280258417349689162700862526584072349203354816238226065238133627342561377629655705614928340330401086029803702703940264883462960087300128320813824461003013313548416086277561925514782103556928375810756527233997163685513135325997253898817154927730872956030766667384366426083159712177442749010766478947973654985116673416623733047838147746960234201181445531456543688228955513904259291136110665189384670003006556949214708410092798812033048859960882829988181359531230130380074989468078864391889376224816853834882919283107660993726847074874586839700129934114722323074661476091930786823138079323705683315463013499045426099343166554664144232790073499327301165017770757606316942805771031580991001012361122819997299670385058837353157932818283892716945479986330368205677407610852678929773835085332421837519546228893712501052796129136627542263537585940004122450542986390165418826564221101712264882328882659851614339614084812905566804182537020836891759436555771272655780673709206152025716674439198067079406356445623757457967251616715341295613211718534873516989330584359321805996528835569394217011780403749961025535726161588241339933099933619780133863180794787121559236391178900256961566309575523739430786322024411536196496047134549931039236386584674124365468158809259161093428276231337613920184196625457520699242207631127150350672575861185830544985789669629260828050469931891157702175904027203405959236775664826362816220360740947957582320103919295983524834287909250661160832947660479511140086622601005583511510247961509018852509268098225303840813426194446145102350832157058063134637517328974025706567004594951784859771795490527209468974994031367515960392730691417597227432728101153764782871288141426632745228215254625441604755543221664370926067336931929303892619931771099586162441935281834794535896813740853099107315213763380415614366556721849237928909787250801937521383233797779460559630097237758094499932998323493204221676020232020410117856998528755960495877298525607533429565610504754267537398648546507208309103113597344041120656070523774660708653553210218614660044793056258843664248309466208613090465517445244356251352224289468840644706040660508835153088473706740618523241075135322747058177677227948271856941072058520484021596014005368949104756297526840835711051899292367780247921294168348791895904628977899068229756452225134381624499420366406192685952762418543204548916590857322024006606258291505433307282880955880643306154289458618498529186833572834190344533991872214200904628908545443773479957310661394575117578891691365036233408140398216061806555934691920553147447813119167185842370050145927498716500803658627408123802430943008678895604433663360686049716941628243122947434120129435773347887449872412998306489692765640797791318267976212033112942139516924216528185328226446216739833255006390060557528323839846010893810767553327295813992942379505261855407093124961158148983565362571483527182676660496129225271001999585112820642481493663632246124593567828061423452406175393019031670526027669645290297856186167628001057611593957415682499268409441907134711865778132099884894752638764264242352666873676748743562131891749532363736423170536151035846268231065980648550803807390886794810670724483576612030557805962234705438795941081786512018629432787110458192249056748315254987084804702787630633136557411720480346734046217240656722252261355328307612236024614357380255520759772027928167910684832209461318381477266682294924990483144161655672558706847572377802181830865371105266195758180658823571275508733606905926683598860819652828268653302146244954016146365584359447698350701520468500267010267368214235327554995242936000198568445606731008188679715407088057257615986446394674530746236660684814737528583367394192215614089909805510931263051057011487382019259959325880180151868434510045088610257836851095139167266522105286535851088862366043910209597090402009259759030610314944302342778065316295327415231164827415004335818607975340515732171799010104324200837766676194223035990128511384067722565504196964480827019517082972579581598734358915965072139072996583724159810424749276948260120901566890187311459660199626312169928708574530765363740292487516215063934626215573884706256060556393965278580907717128357115429143345626816643485465593107996268835451355041521774327074560898154809934676851231840253508292538449225157792465923099114492254047283497698594229964426065342359247573762668294831976496484283769418735556138478038350030987163667303047602422477652829603768824951030455249542660305220181356252715791961021358076573596235286662238405917575299972772299601266660543511299043786888606307266183438238455215474522267514088049122495016288831507592674127072476276949480026853147559974113114187027162089747655995118057739878552802859846972959625032201167433416211312794184003403123530066869804882779671126062977521447337950168370172565152796109073736438784918951564989026637705297574061313580372908557974000358288520912160519484131133482380481288576647077304356731090626565295065151813650925982809092722802605500677289450195556923137693950661860482739306461324991293370921790507690840399957138591274606022385380301473732207663736564493156882620727933189480192400815837694880687564025225716841800495270736347671349512267039908752337781564083689138691898015153783806442140565985458347373556534083137901482896812545296447657869526838190074061042416222209652077122892694817639254516975474461377858290143022955555567553600727063452597203423884937003182684799638538211118436834094196244150702899704099484556219471378756946494533634598032540151117217103361565561485434345428861740152758520688600378089042299045407457334075142739346598181786798810033713375161362695166497988865511191773039642948070047554538712308791509488542256300244939912784090078161384241488782933793941726106097480874474888906395690949068761239526442988804618886709667305089270005722136912226219997156274039994472206939205936630011210770773008096592587290822245520918538068719390340445130323759261636816084437913738022262270113506435811842690630981132805671435218408503675100769745888251469193407675325052792333572045156029628390721807081823187499455388056886321096256320977918910509118513776775054517343916023236440904022278703306073205383323864337635322378860249766257919701855214244945862625316768474404564191611989075469806488443224640513150548588471747657741346071720843148909011987125841232319192602261681587241886811873021985344806161155192143461988800678189964490722202240656295694159178361812376831995201040462569707341739131002974969081236533112958804395127092693309404500383365106347491384623938739990947817904038467097994205559273836878384776972256622903552211945149594164851516092761676127813820947971753862942650308480171207850725225018245771445363782689254027814059377544321139869240273548919355840104247312605831025348523297879019493678479071877623437568588507436172076612689973336607236547846108212127045509261359005528530147808777199320340223763237831953457494240274732166639690432783013685854458425281302227699079082293866819579200149280353187498978967468024882207497093394187764717433192980591881398038339382833679035506389966789755391724685089460071272726921008486217732456945538062961835260535835605642524827595987897177212235029622228235763926518103469096291129391190629962126789537834996139346387547584122632993288473702864371201457022536944204508093908266429301040599568808699084594130496212248975666881578865396411623708753547014977933651326931886557835764638904030811133341881214507146697787326297678383075988912551985680638528146365699566445072210598686385565307289052518927047006127831980429215245344886336157287094563406526505816600725816438163376119662606609550143021342583434422412083864076479606472195297621878596857843028090037595100114735619680572562364408059975760055404114411327332116909498733845221893577034438277304013265153785632480571158194400370112044980689737358503293581104022893717179627390540704685039780743404180680496185337166207385581399554766899221743230779889758732875536910438507600894222349587634151608046725614329463274022801453053746539776162234275672169643264584493768552024668713474972334032229570738348539916968133251905711251870462659338454384374901728715568399425581591193985245098159896661781442942920207520000618371918877019303514951148759234551877510893168991110667798399350752908979782323789439687843291267428518849473544089881487152151680295495391676085945667797069426770321293058515822983919839414026743346871150887443320541789556065499678411560531552441963375937357517661686315863413400504156539276806478196692743225636002879741860150355589621024920923294153703519724460993578406292419630257814093822889812249237893562309946710750987758392950243352865308808573103029883251549421298589182427613633256196915693537909222668577602821014747888551952002809100807158266865693586308287141942121845274703315572564270794636513824389683138884898106057572125388987477092294655213509232079960850399384019422773376051036936865016451418675577679541694378374757034066368777222980443652424213963902397686933732897610340613746385698006199749893468323387373321847645771117050871355969621356700449382427292117689119441149631438246547449570090639944613795804515241871251633444618914404408465433050765981668177586973450839243489128204368711830164390838489560080662102349784164887371905852839646761257768686585047501486345041002091838580416133761433092069641291881019101634533628370763694086105431055489218045818983869713073621873480706246241926310149945641483518991749953871653735272005746311351531435213927011582393235100246820860729503237465973604347595671013647630088459345399428975119536713036857614996206949611112528737711975433286245827605482102225232029548925639482290881772265351184207725479578502843791885581945209933895860612532770374756886420930069263109306934729565337433240088791600530510833102738544535501353227999668481198178182426180587255361629955257066582936660560060164849786687564864516793559926391297397316397777332664548872920855927071353875151748150361245782373683096133413901695416903216562618317973212268345851659126199851890698219094196666795807210266740100951733485385318034644679844122072967348879255433391710130306534529033410245990565070335524826789740391496069289121799397851862389784502923012740464636418225182835555606227166424468076948955581008549147848454542921971427854693643519775002739308272789194621817355642633564760056252994964882771934529550627092647640173958617030835287567123779852763228360089405432490960929925828742257541592024528285547387403098294902358639408998772649017294997993426635742079923039632201449100209409258799518212671240385293605064941526007454532073575529355893912113267107839710989169428101177417095342536879372248149511340937757744382664913893700118271412491195071114018632051266229816715881894895392429454531629850227376503252378727909117429752705676185635288553760864809981696899889574503800114911583742224539872147824062448723119993674589287049846070554921070783095571748123891679433107967941069340202188752936404024065646480010183146768555321474966754978347639386411256788716488706597696638057652895390072080562767091793191343828889556952778979484473767834159670980606341919606584713368234712063514677734348401304908240076481062749185412763536484438533466536635483338635493073546497131590527995797127309297864833230767241796328421760789786073300134939772332069852453634326651117337742814984625678576553734960528693854320252921636142378139186831688448453987124568963141063715022317213013954055474332665645582643667682376425315785402148639407490165979311251956874374176713417063851261656103399796366368768647200494361467208886041564986298767645730034082665697392714738732865801463057810177347284264202213079971257283850226952724094653301801233464374331560644225117856624755617862952093308019034561427935153407858433683782612503101679369420901581253557552888633590512766142310116851803840362359385795840537610086199469660475246455266838106582668415260192118524772281879855827249916582090115572898145458088929829613297760409144422169545074396739251728391429315810794551659215240830773539847070042613646737098433039533728750982713194375314404946697171856091297002622627928568660497429187655961601433220284255282489072614305425927620175755126786093660730892806500155116263833634748154876142633666596163239507050066888908997566833318540639136962029211368568915353227705805294070445326089872901164149124903459399694300075852643324275411433944728284328838968901880082738791364735735514079329113379630222295859891959972812577091368068618680310542806808558847284144668245513455602552924611721972285749266112404506097905580633524791123436363378177741896420143314340193573072679884446769083752023246500313675809588633954460276895082537225920363577720200977077192195884590194135512409720547015675415257706614335407283939114247752540236241410485135460508100114823656124345851282331646893193717526272892604068769864040876362858783542297248992596316073652553363325667875603714529571593915500242668256452998824498620831224590331475129588978767038794275821496512149896966001921891869742160136575710056980538666819877182237954974202334071045250162975491289462633525627894156024260117553681302563997111436748145045611714015229094807863199824929781747811767380258814487696498419291868843389921494942735663287551651156897796247259949081497167906402916150176232240067193478715281818849316976262808260706919667078560307829788832601294685929961208110190581996279585009234355961413771830722898228054314761018899274348952835732626711948349301399183114425399336727129430925277274890684922736581263151519932798998948309662392411318605552469792047756879640948815985104059938102186275916737270095712484013226743073684417518638129287795180485890391631143187195645209108729561024272452712231805764781903763665819585879522037507142849974670971288189503169868152345219414867715410433318649508536082852982591853075611769632456782941766840371123568493572427412596876017835979065922423227470903263645457821316615269446560614782360648987024673073791443937444793233188981385801768566569730121609173562194503985298777964691219209916392429156017613481538680152575301094128266015028920463334706889327387718732919261087477342279183124328753860498882947425090581590671026231732170065350307496464663840695327371548416686579467831361413113035926999723775656817844476598387201599957984536145296684298153798360097908275579074343514173084420600658865353037921072331787805398059082755611481445069010029531680453783083057262231486685844456679817396593785552700915673771527765556061971390802380456976398263421337652569133729706239044311230366477914574357226239811890050008829533193348905334810321432067582398164093788888126482804805941422242678610655743084964268573296032459079380689545924851044892596156455791886352390689367477731421190636375698026751208243755529998320481094969431841055335044466515324238799328939809401828422849417532385229489988736224921851594467820352548887537084186768802275952390459472945296591677287001560181868058395742864234197122578964588922310640588596174029854344053192182972086441254363035861873252139096081830062283674473026444797158093638324485444106379741491110890704089457558751425159315741270619329531332582904610712714796142756809146141553823210859539660238749300901753357820375042562971115221900381092308692564914357959079764072353853563881105444440726818590030681332019513161602692695024256832734631012784771401497246586300514513195993510023500692544493508636212328670738704671886201909043717256512579323862802806153368530677333135990553013839097634320435242402570437862832989415241486337359705400198397603229189162780139429697127185073477495474910456408067109304123411074727952111169060257722262756915859460845629306043470681378594534149917307371677179121259809645377864902563291504605222193438317868625512764979937226964584249272190446390735523508028848636519808915984916681556715010013729283642076939551786436884881730859180313476002508005027969751030509271561399126934213850802311079028427940666607869560849709694848287983583308410944572736650401708689227275144290094593812367530942652217291450952666381344239176815117834543133365949030971134464107006892581988515888196985857935854931829382399626094996390741291379906117475076069294137188789665638773202797614376242737420736506155638079653365941432329706180767115229188777064957047082173366511218446491557433986719255131642411960538108862276654999506203075442272229655389185907491490660760840289027230307417352926324872460136601024570865037318842321945885023398825111527577485052930388454022927236328750986069230989706855593441996577421875639916892396265193165391659095568129056727535923004127682983265949031717959770887102158241963897041048615006303800245645982345923654912339951086046349752971212285500795107050293301624750943545530767011380938515980790796274812173044913920713521413645299514255445687749119193099480209900769508114585341367868225502799071114644102463238745863908608588900893537346223732501008522784341000615487457236457161639782402433932893798146291033168772999606829526387258897128005029113770806047550483188064483153632863413440458836368602029735843473799266377176017184135932501126533863218290236054356583584890728408631975499777581981599270695509055899676632908273095691154772365495203715318050867443202849239987597979519489150824127543606552542539010137502687963256008270474161256857212620819975285725631107455526959944778383675591796098457326008327785987627122310030109436890179815740054074463065262838391610571807794634797040435167071893464896949702482717537816705521543894367764593397915608051246629245402343629113750130696111987881533533814359469086130060335446283210649955362000877830546776408773572682868381834341960410698525195154753971158723681505579360200572626272432598513553030711496628359192191588982328116455287815338124754930363808944817402567037763387474365910822695953799266221247068960556853765753775742493649641725280989949143404548818601735133833016168233451196539886064173249212191989936224788796159250007543100175595553431347598366678074535165201739839275421217557742943751861912218718333059375237590010578416903429641450268038657269397961781647499339387852378901886992053484631751611368240638015193880537244720929160833507675453545625747837255728856414097659251687519943356808406561893376415420450026381854675981010265751556193341534227914342930889807691378803672984230075900364758243127864202216206437449332219452569447903829287948461386294230945641342943270548457813584265668429377986508951307951033332415184159358219827170087000272963290870842766863442004573804500252604230670694512421113127717836057724678737004588106799273375682587647057581291105892472853438460447369463354548999830029961440385496513714516276156153322818165733680417831327901881279532025112092289737062754847752416481203175606502061235459754365033150268513473899063450082567313318362039546678725737790951113659077195866372008154442495461726089639318324160939258486083721349580102294858744141404160007744458888556110339698590147220100288675041630232168120934337779882770104409509099566952093572072289835477701045846549807098233250533900648239776198225989810824066637945060040110748402450685671619117560862638052497139632767257509146482213772183601053145656501792748099679789432058374582390042382526393513627514089554501783404825947700251526844572714838712097290450334466499806112219639026265323297219932062500821653192911054356915538956929025537034319339931884912093776914241666746709700319360414804206059601666267718142927824401207959447114601355041973262219677651595184045685515540514205485888331013026760286695978051966146713161969135929046061189502513489089592298014157234868532706411216135399873204066807660067763166017636997085246247146670523010362753700498737156923786716503194397985879837102293894517899844195271630121373335048960218252998675547351987617870543861757452138823112850294871111315719328578341310408424065484400087838280304728034221892894771605241422532421171659868519790287486508235129135047983457476874982738783956106181858573497184469217100011513397439584047162136992516768080176856819537817531139111889078166025534404484419895978297150514531735477840041669946697887826313018628774971904181039011373628887105167724788250800660969305222859020815823194717434991734026000156316473508730060447358580693087668890195178008621669462376853705686034153692921020616028324399719451543088665764697489043128702436302469641400196288249265647574215298746761407899358712379928660536205591443216597284805547157669789304622019860880503759707786144469647469550236641801390777223323148037616336248778563708095710174719763126317057554544589591134013341156477765667927842161958689195905104201946516443336798454835143504500189086004728037297089070370318300566797667193602118750600663355348854801162231312970557790912457396902409099319911396177567529113583441949745402870930336607767843602472461569512190763365266841813204836406382486748724806829027132471922079799379505386123214751237627389533770111117789928874102993437941161923878736412898493400112804554112387607688555261061270887990850927479823258779877737470065191723756868532047958866625567394514847190566010873722110546133198484028989713360712997834974169834144675344384274317718181655141141262686339345252570375812406471950969717400906685751413869144829840165157103415915529714256643274708768643095927925590992752864806208853136087834232846120663419013141274008239160569005205923824487819871457051602666010936929780030436139745920672486602437469281990766990122930090328545416447042836772673598648813590186121817919102147982806491993279206952138261932427246822621501029156060862587206229064909703631179217247590376476271294825761051315381237497388813672481666844411766019946270332196289483114577945934897852403399081526319737845589931251013470800398478821854482620898825887774062247627742268150701022934601795677528203791538268259441091642882398442146804578452188537698136423210033140887784575415635612896787566156847623638162552134809267994407172990772191288486981979217558415273656894322959767965903354318061199186113533928641446372367406790930044071862780654314991613786389733933130836348810326595840923010320924159687336605914100757373659374155494834780501854912650506033841450801255743581034254902863261816159867448020597739814086520886472381978600160523129121373182356550864699618339077882794186103113509794241500164579232449225183996416479180621406549388589790729059696044086654565636356799843423218768714937473245211410590738477681274421400672380739592240660600126239368314324853028834909139473862069778321144288256501657409441418059382986429350317852298753862658057366588565591072404777741924285885701412315507831287059204450023856368017012283194833570055692819822331458188395615681345093274066134121608383677739986929493988824858841802318761536792144094750369447762032748978018862724969802107995503805009395283923016849224522486898011824012888593907525884536741714932623416003799439286300137942935880135952767364350298681324410464005835424295339452011899853944849763608392312746677094967321840178785071829473293586443911578049965257165261204640806287873323053788477258131498782069523665014406734456625850067316570793291745902433688647857719784573401056473473009706924251149360447735271554793050379854844022500921928571249133849694579259367171328427131921747385213969131061329185378719562100620274040306337970569512221171980978293537185510659728974480117844008377697673331010683877362274821067784396890783138647265838432676682257151232045117254369167156259258372216519373245617396121341967428122911762263325891072862468178890629353898702894696226103774362473012237780506043513275743218067465514548381183635827978152207471696308753143640522568697492632449048360381110218560653482668986432669674138191653929524898663710052005896504197011709313465573339551565644717448868108929245798372487222938013126538130864253663584553250661568698021330381475855849194276720324849183707669376518865715870151641164083078006323698211053300025569403992659473800834902847377891560005619837988813942922758778123299888226265198722620420860384029641067962092312374861811923585540970536448769453823591109209979021377324886619324134497132082146535425216592483927969688821044021040269194950071415485109493434269840391368541676954272679699940541766574122638554644403333329705806710843377617327120578366205281169773928548322501161407146688713015795049168561376299038777693580709900433603051110919958213277319709264334317410537563030043485544802398141473216766445425735630920359359117116217164134268706119791308519614417042554395608118247952580537455751719948504437568238499412940065406289175591174758990599008195436885812441661398746320169494953689700049445003696313473131829321593384382560368151579354490296982019265357917105288714712040875894260831439387946693878159340103037679288597388393583206282772616495160383550838748236345643827996962198749080355327190009304385368366448449865618161976533580438045770516859422636697330031026667106939833913984483203237585272588778754255270561548020201956393900217485136658839458280405873503793807362126515278365076478481260281269067032630042149877891767297005663781805115186073868872921668499840448783481455058132169443401273972818925527493629887790548917866328833154197678464114438758190441912112885539753013468121433999887030291689696102460433613433062797267630506632294613139094007904276427446597980750561817790908364163567596590042802403308309967704819749069185395074039692559338263519426139467289937875097475751459530777019759355304843290474207436666323188576199984007589123724902564225717583815987164655561279235013471186767895832891091175049557505998167597347875316897355058796148650343689701249408912685424832307590451561623577573134166181206416495012079207817182380291048104512704144078932561351934223222292310399760314357347744876758738895742267183613354584426543290812429266961613099266375350071998813412766838841028621752570537643290775512806142536544565486802701323965420406756775423015321316693162343029168302931662866215112316662700263774280547831391439501807046782567482734582256812288074129248544994425339385134061017457780215335347572424460871393806478308658480037231205933446193661060222277497795908814608762178148671941804989283233762603185725042457419390122625292779044243339466391651716809108694413630124691057494632467987957679672042609680491309341411970206836020558037614266490584660257911551580196316152336227925943701577710071449593310115107347092809102678875095847536527811274115614231317139042125956549933109912976921586694779471599529329601859069285896946134191705606219035772984447457988260364399072837653685089896232168538874861125151103386189420375372622902789559268654340542147302518353698257845934683272243131300069318600291273232961022772452806321908109855460109183337183441579596272732855028341080559836361208961594809275502266526938536962699331671559575637123758895633342807350335015224783603983660351914869364085268047220797098137439593786963859582760641740758785640025677016706644604625864434392588334759912254542716454852991913785971815985925268589667622048625227155683218024664041875310175220892727530467601422280510989715329031946998399571909117836306248125283279895493378835682196373535780852794681827928789169295060234269072108435526977394930283637308747530689396768221760813216911584755395204858269008170056482929336821470388949969059607089467785068461561408357984135008668272857924900162341204942164878407464228668213677394590492949165485354481591433659445938314239817546365478440448013433721691531033666211960549353794318513379606596085152993692340792484004904767260098358922049704325642773663310555846464340358346560773484670876901117401939372922891700672633270689534476901370408040604628061381885890896579908706784263017135546231054020702448150799936615427130425203704186435716786756619796026941659712405592767262464527452426996659241994462662472594736743743031988673027655683719583095407107284074004963805311198603910007371352986983838934721285249409755496646312021084254982055591193570386593781678901824429170662374056968041065850411390514172129360233119548236230620355008567680691064579725717870604655678575352379202999810549201983528467433840503457398975629925581540239187317639268413088461533858408741216023231944725969753411126424451148211114124862808647781833586314147439649070879406729791084870903161266450737959628436981537070334282407234945634050151351665897457071852224095468546590195100593401541698131254302817209383309266692534846896922628309896387383648948264158420626835159441692980663142878922172492578600305450151038750316777029629059257013191585129059093178714796318838466593729124239015992095979653357736178011898951073605650109356814556582613678119630533400544135133696236747132550048157108436338897804422795911680692185187019909508024075696656598310141540295089097521724236388450085811534872498605528035009390907386441338250423021879272922967862687005114111675615759678730612682889217938717408954182235502337283754444445285339679170088291268520188834778642783305889526263320222324821250451311609331045464476970870217071719888676450300903796037349818533639847716011985555294374814898289133356854435796296867557404192815632440283657836474514885811543923832698970576642464852512457654143800084842552192323466981247076353407033084519982730625239942797992782462060104862278185054029707880910574238157470692648930953499466078450760895015791757851071006269196902814892202832483455803449801630465594619638717269124147789027655462809026300160508820360833874202874458196768611593411013259172335522640990581124676277724916581696083635901487139349057019693454303810771248720358926242061352129001749471168959070070656515727435788963113076443845928662872722785968549999366384382227718126985859663831392062996433815049815862475016870242584416074429233496288659728453715288339624915158777439722139338299330566296655980194643636542481842589720589395407596302946586451990262683650041553316678138876330332182838182394252747344973424587144420605010514825551995190150934822161859518966326305719827749920313284749371466541994981952316707326106910524270047676041169141888867861562428639102002040224622354001080555338128400682967376851989436400980333033023161284504236635161489950414176546328290310764771524437587787523726004299209432432541743467116553568819112210206192412388012157428271453991121049945337594984176712860650580499487066492245499523471533353679354212124568463891601442995923730580951717816580733836820726060776905934546944793517554105370514489173825044146816187675397877586102164018378667739323523015608353361924810473720854139865638606105568558897667417534883494396534675380394597754107963550835878872168203253352065851963135725943087670837285451560425926115105216090045551638365085371967132468339809259073689747277593649370279571146042643505949684609263799312485620236418044152849030076106532302074292203831106362195532693331750551597544463240216694542537878578246558445231901489372532047965017267206806803892992155137538144596370395445523792450557722629297817588724765336857143709026966237459014332328622470581023554518151982282382028122830933123266600206924791952376636023918025229867872289452855825289697242432289083365987755225109753645516782329456560368401717326994747813404066122778190993748039514223779038237021895987160028392527057372011437196151546638506163174340219807936402799532133890924024321123693597789508578083101023891697860449788490521537114717568569128155969626916528988013514386947251767643844054882994680795488979620758515157338693784694266573477247560359056971146681060608686886952364466691035459203760851878126552206567787572096508708307987373539710383056984925274105266914894748648944820616423102927583638591122072670363388255175782486219061680041766979943448711698803521741692954161618291545465411132845553928035587009782678211653090967641137090930644354751203621094779069817068554565468102697553064565321059702141914623171294105630955103663100183132051053000257371638692883306218488282452655377527637928830894711331592362767703095965548465036658153798638512632897717809177766971945055071634980857105320376992801499145861344891143985327151664432661258360046186794739659318591058262565581906991306095214672035382293161490703204797631746859454801994643577603779808203217386617265687002660429902797838686321888011430239633209101567958612715928263665277476438139870275321542429718009789314074990889619125988442475874228419453181402879691169068354301418364997684400389767069261003553010434904235102521915337815970843221503680026476101739681883686429362582648272096632532707746485977692400324668028401068783217402538604862833720992237133733371793502383856656018747908261036740442625187965697316396087232898004145921259370903420063354543803489448729432976338982148078522017094463304323630096890450507209983682141460591019804281989871801076464927907581814061064602926865401373127373206187812304739487420124677424543964506763637932719071372436639166259820846379661004305774624864222779529724353361282120342620909602630419598587514863741791236767337726823382145018488136780215346508509443796411239442922011976468763567278153920680010845620414038223064452163733881539150819899253084935619005473275657942460539864273938136955722677112853290137815522027877363490010082466408293634398334943421090647063174185377627182052494793036603277572231156762105673003022068765237054856304378241682541655253399470226472433938033592709559922059397580143893382955797292909375097193672024499617327298649672896743508713633658635928502616999473610203739888018377979233361665656980700343112118423758654628634354108352026620512104896270306268985645103311460287171982385631846816528698632185939576365899359872169054843305180104192389390203262172234175994569642001995831898995728065294816799072980493797074455523727427456427481681663433741548847136859676719982423372140516659026643066806396721405217718490133609255027027183299480713311133043125704523018792802033735996460880468458870966749950522232255096747884714211999177949622119679532500352241422828834714728095848283379595443216342183483967153171791269245539838679528660328333060078221710052573318973847817463687616756719088535335185974085110779426009094708401428678669635539081976814373509311599493821712988982992966223976608149564698073404888796412192136344175151912510597551691014172779718326405413636135708539507817531492511236344352849716409474080047521102974528328964914495821613210707322922393838582481227262446125935573063179234467934518502017961303252237485190482955127297977834448368612730353606031707780226538701158135086722748435649697520950041441015853948689302358127988006086428393727901513715278478673882750534571656567443668601687007645318315417780636626168297056564299135883172625936139360633508579408575715640423321130088898074326336561991298431701111234386471753600721183215099229490228145754617526967583159469416606440200612327304390494232809189163755011620005121033848328361129708014502147974522498708212513707408378378236088477883708561945740468656318253941618811260184704178984981113810560002955527098423544159841551243777433988276274600045014975185946559477428216098284343495658086215257365644119991970973164396651438708661225965034496242185670672314871627247557606987433181230273454006729246840205191669782950931390733076753473058828231288926517445459473050042650953269812316666523752911277460941131609238782072402634076570886270781421404267614248127334875676130799330496103294519524708356444449155122267638346808494296868711171834602559998032777393376727648032590530207911320654693971373524243897496044222976938295425993946412834823581403971346320707241330671074154611977898473919088902163393218387628848683359644531740928691986724265238147024871420728329558993045525186909805204251005271554071679481807894161924500384042498846792536207669284464885539635178487406583999493171073908867172622448657023632884361220323368517495069937820001502174016775713563901051076060651843565355341486996888656816698751773742958972390186530301356979414227680690647941393683530175063957809426375368928231950327580024992485282636654382769928480326428268200519921337127035158757381586620426808269876266658292604430079912607813083643137883433112076991882013619107786782733529093490886705445446098270639801994939677817766575160125779843133420096625282989227221832395543389802799842717067733960442972096872076554068396043833364747462559180865236803446917591919238310070418874262292555767942510781316403997929302651173802204692095795935023836545032791042710505747596118032944644022743898837218311835404185277294950915940216091275150544570911645018905155288895386812975173300506748767713797074500397513717544000049489042479407920085079786482405733436207618440319098943466521295233945727427994313044469083569853052021725572295656075584566695977302121622548263054402428864213698239459389845532571176175292056891920536307252721140603243352995577128561344017120954592105288123142769490405906590691778944044228435300143012556780221480328943030290468493902758048127195603805783154141113322681731571886232275523435441919491308098821349564335716257148493784092684040331352839696119898192981093037505518759606125389843406326331301830049393790065940292035499429661269612653094264143618680908891205300366410057359696537346685810551863666806516293685465466556463458198760379514592963023155310683481187705611484860046685928925086575497560438105432351914304996735335341959755674586466232133782444554003089039206653395984482296211181294968269103918710066052491586628767485875786031150140754503226707815247031338572600775472233127684469167880698217157731082758781380461990516020117847365227801294137152996946885546440763358966750060105067241041984938809224930224385576661561845274629769295653400661497221815601248130892533909143509956119109724391041424113670959819922226047215516524598192363492011076803382474484079930919177914816605489606866132433120530006532481275938516603540886439729673604344475604940467679808201072405037935448157505326752914463977991091323974077358718855298868898979986734345966846788341303396357649392475715722274109468830810206708987246416245944355028409972740950711405181292481570849041666766880214135950112043188628481370937967570329022096402026838949989652875155642660943178274151991329762737470731159308884522081904812869512527195222856637862788630325031811458002515604776521209354707074119203361121472840149722785785295067964994772172287240676062078777269079885324253725108195693221949843329033861493675152321806354349137156556084109024202591717527112017800342794103297553932293787299045962371793937872129444589850787241641695669733440477927892986427729792541084109498380496024746409635100445810503422263945157964062536175217791922594587929488523991537272188303416689731775562314699371194922898872037836627556361290296402006814544764869021488137507648984486667768739606080425975018721074333374976273702184007298683486286016890155158700760653734071441452459963095338221152035554299137550073476999200364723451299023127601635620015923667199468141028998666048497544469808885759526142202403480647522435332293618384458768230358359977086447461823960295170140708099965333838256098494285141102593661452178752291041744783525693691517298284053514480443082413028149142205745004870844697817937543327245154840944311603275436061127390637615530753137323589603332207277143169894202814730658604443695192089499989676350297684299079405113584033034881439937084927514981356771488194247302066755885045693910916527854562736160068507449158870142162696314994877893660825903361713529933087678479882606328170644391240067436203116317234221624164036663187144027282681859227515047477913046194646912415479280045151562511918555234543501785899355706590587362625618225701654755785681601910190184453032511837910058121568552649209335380757110669989851306747907976683031693111743786672118825933753585231714208852724289057331131439787288021082154295952912079100933881965403037191772737720769838490414219887565266492488712635905245536763951600954885159789202111942043058086383633311863507557096145970334024240000354174873053287591662636249160395761296091687233109613035699642885665611199062281803776840163174207205422801178063709070522856838831912416190242222442930460909863920254233683066747678431787029339167130818471635469622869625056546814324641747137220903830411462229778715755937506612403962351862466628535901345317959133908790084249028424173314952158446844154806605830083888075668841651771725414114622770260956342653203576340447253285320243456309730783709822734528565204891365813296975475303486966009448515157586521057043557189245665560632543628564497262522331637384558394826184031078000403968820297542604500546177968175599104150210073386060860836913904740168481720161312728067961612984317021056217272810447813930804152140044583039101437504855621471826939298347147856104718848425931251882148274847875044293683092204327314214482827643442513367818636845694790021870363831484173596774065049633253654432735251926287139636116480441328094888443312726757016035059979538570576718315575851920515729494484820123800743373769604599967053488558070666222694779770980115178078697616179657568874049820425016406723507942755231610349325993756698548781958651799972052994577215762456745952079562256510197901890559589497450437028250582852058838259189114890029321968454657681406672759271507301390884740835820853510825048965342875256812053444297808179283563882601980230793961903732762329500502179564344613924898413821020265159096858668815132717305490877448856737202411963521766935177505565645940934848310669408331406434361310280731684134997158111270480252165195858388799202169986156405514241802746266885935548720014920525695965518146068971529824382037203371408762748861927591808471962870413617276549647698778158740934097456034060550273273433520263637239322189346748937433921819885874301869542910424882618711329512697977404136665741597886903697593631566550447643456881338216763287935521937439447587054904578612134927479031730190049028678543528314669956837981145401163176909186204072239321592420819253863122681626120738985272008793737281568261243781297314866022200441232205235310547553234002027086163105179025857888763792517175024866830972018060370079075781831209483529811889492993168352051865424279097013353321652308171230432216421155501759191579550932794795039176137619448225323394683078691701939557972454997072741165111873510999403049184543658996365673827455489419316987460940631169625238510016282723487042609893272147442457701342458393879122839692035560129631657486360781793197185417669048438145782311323619907881902705442436584589599066466430048466648479000195565286433371854236613602507352860674798135240797969560301416299455104518676610856622081889805135927420209059810897071603259712457368000137594497645825699251950261591598727654562316111436706847420973114120640813230934557719700388897332141713482391518071279375905023644459513136481607182058526575245789964095729758904973804493351753343511696275874155424057296532539843988400412174000135511313399016036129886625104581334571231779408886802046796314318052585993810089808302222097338927866723167745994474028920632242205688643512920138193717688395071069749067286265907821717415673695046504284677620239279721198357921867292048214135110186461540818956411880734530355469861551809599607886465703039639831834918507240750531466105431218481375026425749471635995876409633198368957498952203802459726522272818559272941133623642571376731288799693645504245263960350436270523053331399054522868899927512715620217708835887413038087480134156592561187529123868950022073841979958758377192604436005497006013693963798997091298184045225264689101220378870495208282224719897391172370310793768751874920647812164407455057301559117569482689396949781249645174308633829674422630250386431342314926737522449257055885620692544911307419140425623581108616657457274635913301271104571498823485498749412847294308227679460173154819384035867800557398489732400754133100685066840420505901213881893637320068124176324923007915366715089950805902170490045674462480411822315025948539725213768648198739844109580010774863867747200197005579644325978934658494026109801164709834727545151133527217097497974432251064944081634948749213669339683917113711678311731222504514718604869142591916343214248782741348387213549348454829104313564542974885285429563550397432249317174990333452153566048054152976266433251902788551756349372017422462670143582575455401982384977306826246933181144350579495918030824947954974814803936788197600046109641989666559431451605589413268830578375929742764364844904842153386176263966554060845957440754006483379239266285955170447974375180243450925700297706695304012526869953422976436039560846892966007323955409874279987958511502018305561959645542371309277522208280208942102318442659927178493736447966043600375809788074909849689266130883262631130784984671239553485237681527481645567166443691688585994187570294334344584292495531530631260113594316781839544768336148182279792394212108865756634479992331496491811456514034540826469888930497710580435133990503224949081546611873672033428553842443432559140965478460068069436268625008635079806321587567421424338590989892900886006960751102289907956342804126734089689598509270372199607381752115933503488961966616282260738460392089560633597183463026060883167595570429814313080536579698749495431819685740589959476372363399511616805841205427829153800881024322053487107900398249771305869338408426921610215357477266478244490813393530343363955935765174346652221176386072581558808952382732826627170176978303497271638443536238558678245115831525610768887221910419202092216237262502120680594230583129183978304681116671041522969971270537528248476170542440049042695426129590155774282341626634238811624151375173158276592757787726505721096739525148368295726461393424595751959514158108153481800913264678269089859278977914083269203122723393897687113581100736528403243693004822906037987908145073187109726664163476701045510409702049062580459943498797332115890258561924875435902538870994526493453033376182857464111767170291661560947155861617169656988364833182618589697341050610894397248496445596513972878358978093998614463804195537477616055553011689428555444883771782646968894151684191406252897174602585322323790340471986131119004730970574987813242466885306774504906460870736095321586026805579470588087196535578839815692864186613778692834661210514576087221199073349902102091535307674242408742822328407120805394167634649619671717449090176011517927040637115167153888448549834914270982145789254492311701853949903839637898474481153434973170847476012921800628645457645728132996196231975189576853286942852942753391032917313676062611437980224884646033815505680798779965441870167991146880406312484841297656343009287027281605372294146835007071681404330207834520466749175001638339072304621726993647697270368254066829577213121764433824557226431390458814384224336807364315288561870134824132732487708287497326093473782903061320607715462031565411910668908185487197013911363067854261861370633062994042360750579371879410139373512193066522708794634875501595610197861440540861553409978458252749587453131266136541017784294889998796309310768350267286531543650254993879936653157299072169309662743959974467076688796482038421482843808968128602792107183164196728079980469608281914928052824448764222992126571639075666765832494716224713571046612902215058136365251061684487898990926833176283086791000771632773526511738511745687131551575472441026376214188284952254425452572803744899569252496981538026511684727149257296412855756315158747511378596172193328206880026445836789876615010982486410651965199287389390513208427284004933485082661718290475836419206643286873798066419325823339040900406161113997824238801891932522687162097646891668575476980968146230020592091467786163590737633287829120887362504400340380483970558381099530583251465129105096469753812793743976609043756842555936364050896219415689498991996250112932722157187337617126277955466112867229049657681161659711579179659123127935923510158443417021158069441012056410151648285609781300859489267689027954799153396520372532676297643848224955281414471992545556267480818896336252284545267739654273323654191587975740789009835565514353868943929979967066955971557055372684610126582061329318356292015554215012677759909759911871492429854130453712690703561297081333551153518939437616404966521638013708844577314630591573921158346893464606714046378137387451413020076049046215303041417552812106742096283656823779314498803280034421532003132700815980673380809958289512931345431569652626180026491754547013285083798015691749280867363682143910404337072476764143766177322113364410461404370764361631543881164296237051383620670707231346901645786420256694864782918960649974370417310803648803898914434177352341208182704549959720457621263664368829647477125247407551219468296348056685660756515912958211009856800417315063609276654618293532961800875738671319518674758529567906753303606615623065885282193150415333255885768526723400124548222330715173432820363199764745545205961295906215493615391091464282833005703016090387535638761621843042473245048373328809824422513187623571597314284753379624371466272127532535919913259087753778702910608763074678507008644455147701066421416968590898095108599823170517434464200262973652835882997323734464424178022239697919181848798811285690805219483590791174924980992806835363998617314611604621165723474983968463523463694724523557490832122060106813613073184310693581390664353519369651340148915315092356714968012466276619951386453273203002767264271795375701356682313421413767736318361712829844736988567480391296075711627666607404169250176865218363933614203384250867406753775059205980820669392684807547138757520516628936650765697977223128077041556810960564611256846085291337216998535149619201783422707700639055989787843408835727055097781065298353399645694334648961911179040375554026517314383582936612670611093083355033017396947163881947424645437202899840195210520190076328337628380611672252717611098432641007363282131120315180142940586143086844322078471976903434128811214228471580444389116922392779622813149753172413925820637627604785841554689707928449030241151271615619378375419116517355328806655369870787479476477168802663545454940180867374784007257754529580205676866815934828275178896353865222122297973500855545728044468795553607215396896493187031706037435250291600017522030399569227542370272563591964477379800764848729385736998477086545609899506773457319182227232517871863663533071916005791547987171680781694552847404983607115250329277065404819351471143462311078099548244188229500922842078262987691350284919846370490799201825941579643360021968492765743969357636594037267644678298670932439317839448151469009247002333978879441337862297809248823384054233363322722934058387000130815805221993618063384403399907120043635563437145348164291049988139839119464619489406197050708617138350232828127753761386891274995323385126351367989791350242967402921534732649663945440546382295485924699007307002770301322800624156433942633460388160818539472938913118953187445503142429408922361712774620327299870406278473851285794382022849403483937897562953180986811834595223634164296332893379280340790096783959284395684768593949999588634060620537886876931401004569778677677663197050317951083562318417641629118793713475742204025231970627520265620770921506208755441357080817869389097463573920207092628938628285911826066414077382582341473847648137304135610307995327697542106954433956493628644702233972691574176897411869749371468221766994444758339454518076246257495850944755006504131022737718364578578119169724590777688427564957493347726805036758881816277688269474293483645396471749644045935223312512043210850339214777073656997308849749054167923721489922793513344666029473165677522370687308956020922368243021200851051517818447907810770589772553453315668609261635864910335081115803471212696152103701874343289917272353569742179561260010076564227540104644835344720973279070261307237169344776340286753293597581504301143305655152566240896993228140113403708557904202593777178255795391276569772911464252654510800139238080020796614580965749617526373847688528936793941774623502593039466648787586428146182303566560040022844311440380084134107514663428760794623318305386479569443274610258409787851917248783851815774701537581337918865957925961522687690294714464691304578302358874698356338568260282887095028544718891723747146016068568352556818214190400564835785239453892439939167208017021073313158620987843671417337798444389529513404542589815129567077320446503390620124591320426341648929963945179669392212484592458114307068609478713762629035846445673412004412246769031916105133991906866739943842344469996181742058293415993045485337986439813272162162527678870591725746295100266974808871098359357538393029517915567831065691715671227289880427297685604943432630753746402492599692473557185623542005115720472585931957906203132964494371281914266986841833179971834389800513811466968519945882746018732127213411680819144046772976525249336956198747486654987102177311828279428311837913983470887665757769562519256972460333181870575185591182224172652442594120068575962082424956506930098344175236939232416898913116138473999476164992624729520973322423673059728772936397058144943212833922562533597514708995437083468672673538290807905394984543700933533915440721327598747260767570430354982484140343028677610587173478102808815475812912519777103359415503667809164602615818443251798587201375656020778977731770858890343001321819771700244117264388465096108653219780654003725509118313783603003488180103996178064020217119421256118066070876496659892095165273626384969290496223448880465098155650985819788355475343673803019467035498402138950455458303723967618037556797839901900709627658859183093660510912374996218051108514473871357027167973713777481605803041963240026642453286708534848660808727213721132594592114873805487277800424008427136865870502145164778770432430917088328366899618008092345713848787206394948857789729801183081218553425728052375898253957854807347457110019632182051646742012804391049708257762379905353661007112808298331559020030406002539040501100642161913707219154676126570749140702128346630613231287308728900467073069728094304890849664655755012797018826268634818876994167273345139295722257836241957611356844829815467068499002231319450064171551209507366257543346692484549703795719142063645625538298744893676472600948134568148788349046153168076268318994072176689937782801453521408686421099599806492819707765041835697895791713565748067248359876196275505172325493916187491747285897855521616132347206240570058463554348845577373666643510699734398008424913192601202806179620584682789288121683064814321328351019772181155904304298894830346168564603627076070779943512735444008211306174468055280005157600537045775628533750827639192451893473694812438686922867915209371679820284038235988189380339698574250501374179816393068026883861871314536994534959808709323522953556935130595701089401354829806433457951214330502428401624988401720945755938599071549937999028868685970383040693200935320556778011972281740389434065163919667340448243924714561226966209122002216056217875559084540785785687996813505386266468177562643571328357000572343088413107700539683114927411117237123338446125310174051036143177492480008323158937968829861693315811838503339807246025709990164571860931166341259563850159500428966106411456163733158191609271647378088589775273854487648141980314315348237518779649573376708205090981112769192740579157782454443950245078551328706922793961107245553645296841360088692253901899700346615187025707293086589215058568409402281018299528594328707329409523254546480588168330317565855817773293670080910583416368131863072148230961354364100124970134216428819890590835164270860835988259752912056652025995303605190850634022997931242006379146352327949399616855855779119314276910982671637780259218411013200492503174273588227752064255413519826707574768382516515392946442874520769467689241229534324162367064624145155747792909307258943547432822035886408931982238518759408669484575536037537074914869078084072305813450623567895096170498251470895886559026820898203107971211586520023363243684398566605464655719037184565867184436257368671889879973060866711484378652650666022014085643604379910223979332378827527915908378425091127550644229826010427138255321177149200142287863129616053717999285145419885525446761512911940857618734699006024885293222264552721054714412975012618847467209153611284120256332759813863839937109617267068135307834023249157465649059490423951849045578347401632105909029253398069384057426091239324932108338894888840717801011311171079083389629915470746829569033231316665672838379369830800467667518690460421468313005056807477281347931003586445758811602154302063902625516826059656516723895152297217034624859918213866203395516502150059531719571439075628393427072864936695922179369067920586015070375345870722153182616626859109872827842037112525110091502970806372937731486197557090504026380991151913613254544366612118112613968158827983013490044779772717426884888879629361679006243017864342079260832063649215806752540519598216833741976987232318937601340309427896485645535266374500330780277179737133074565651329733435412835787009596558937320539193833337421527358541324242146751806867014244627192753662355642874423284859644457506387608193535380509817341819893329420699159756773279542688304263636648418848324125802946097168020989330893685768294443403466674763304579197866113011512959155327445839577152791767911511912891905218903837836273485461835051305293581690692451486878157128383509655274813610009466759821168142511949622789195790512051616861025024338178410752904014674147141687874626820760849239533769904786509157081184324619336728250437506726438775504867605220252035791275063146458446734512479105644021802459667191871536547182008820207061654635380906731734756187371129971522653038505525739480858663897572899198849344992966290653497340532666199247241163205149098813556848848128102264226631063173198803747918735806886636939199500076700458397760180239886339825505365861531332858523536594173313204649112529377736699185215766657097923369534278051215527773556418942400410004636166176487428314149494800863782980677868176468210049425230321916572398168197436429769719620007390799377382898009834793762358263985187623196822071691761084963063272265903732017271560200686918344494036935231116012842827594354590159886306514703792507181008728897148713672057457369829024934013961557252015374211145168167867872737820139443123380384161801014550822028226577704364081580518761914482349861953849555006317797350839653330568246274398048848261121666112918232035055189868574112977498760830638531503890439619373793661657142194728407822958582570455490687630858888468720588956229618561980443134026094133257954381983325892222734164965993075316284126386803313426202352747521985500958455183727153483568660778058300466604678297980825204011331961219926567270211231383275174042852566989932278667969405896585830840929394722299217554913037292255990113971084463094627751163197853257200775541114551678809256762298806677209529162772174179600643436418985633073020405300858093725438458195031430513624321283660401188906986463246178296861239520756146771589401162127003425562099344430439372553735843446668914456643496170889306754165254439037672085822289112534663599708812804968797626902702872440765069190813634641503180477306601783391976633514361993916648531323560987212594477242098202472908906196776274873360400751362431427472095709357932452188383748724212985130781895252102399618589121233795828751563330865616436097474074941886379813902585860170107784343928151920401606624832077156151919669526316106909211790274053108962731475634346997913135139937849604782647802260391522988308533668288505412055721798282799549351061428397765505611989704581358050621268370585036769059694258632717574443894302322637028313078148849779668702640921910998471194111966579792011038950133057608521375732566696432598500055402840098566825497375383897800483360282297162330148577284524007618105455724997285402780592905387784203091014357966983196840120313854483224368848624217765578760332004674674075750293463601013734503022573056942925350726342055259152421277240443646148331671190610136272665601075259636762653000778300930490690016293835038970927958074858801851958283316941221115295013903512322958706084541416631101118168504210067751694058377330876315990642747202016967681561459832367294166692354256145700035798122194267681434469844298621266920565626218916679352656485320703451119650416842080700519443839768097703259451795911363862470064515000802807302533782270127078285407248871310843268591290687850107947506367010498367563091775224783708837322358434084009699195155343996864006932238894761225009292857684792657473978662718934223863717757741460090814188688301533037432190003760215350832418806013048969905956457640978854669717839931356064894182402331600183980272882884958345247041312608797760946023553028165757451449541887188165077644296212747033886086675076358254699211832331472864284056289963247171482143122549540685689354813236669250665115593779302772743555593352390405985116644167392405319359869876783653696217319932900352126743656817000898244079147208585409035418337474322336603785909088349252345550337429649204415796745773758546239730694927003414840347606346895202086876038859657137496435902489152075348156681137649696490813534534903434542514034934725861939637477120661680332424973343163221636289777796021131338125614628812668750331056140279395110596113554471297312799130922256306901563511262205871441557987800890507855175674765463893007846483047324976184667027147013478993523929238286526243352759692458336920963145194759648388980561171046169268555524394644597691416978721742135060068587354912098144675420885341635212588464145614365695485410471261343653690962259124543453282662545342116613267572913544274543248847913536530329791139825983766628673082253003092186692609262269439866525035360404801045137858373713190457048628856876720329296581494274141771984596776201507844885146124398996845537184589478871998296573108932760617493473864510977190205739269886339340311622556014595873610007130922942894093913164631549812537710925823154068981171135802374206082682780796366128723984997415190836204718669468805898332104117503047571327912735082217240353993516158333256872927038526157897322341961525038125429014311189688362296006346735438771511535362395842556563043967743043898210933312766197786021074342183217426226110603892422639347983323933071161739584984058621386896676830458311581537769508602458025620147020092277976160742547215621659835075400107460290383934290705372459092640436077609641943420134359607322921619747104307342319851328218560719069382044763055977045863576647666339669662397123029948102722897268722412339127120180811089475179475431179165627505221034485322043957844132173316844440599877308630165130256014787042640379577425949265217748275427329007655508322980579388049500492405622244148833644461444260817675840983378357106502750241443528661327691834803317483215044415294563655682990549756424780813969576046779542118940723188574191484217726762299001481704651347239358989300403348430197503339154795347016344169439881681663014631535497023171925132336709141289578988811200862215535189407588124412131306297117521629622768554098247208572449711252968497108938655325225562635184908907273523975991437463488120668043990955418919874897814795408710705595024485894532391827837000922040514160349062919687263589553939333351422387062632745076947563582159144431653800674395739840955215445305103287650063221586715021926441626269882289787010761712318438609388730050770450972468712988281520931675478026531618003549913471010878471497950972664957498748645598482652663419337893271655515179615408883611573902443127677924276205629641998312496158623740016175038289364586296560145639186559781775525937313153141155554619335402651616739228119280905139492611541189793470612689702364234214604741973353763780036672730363668858331333899312669289111231258905588144472525492666369247497640104662471050693222307238465511397734407025089872837619038662044668326337741736034370923149622701507536086145224753275765160423976525286482007947675331959261185524790857280679216328733656686240071165992727935615732651742347917678933509336668089102632896342228285098966906811641066142568731491834301950372150187776625022741053638818775662467787336646863840057413938129958693394186457011248553348550870496757133966928790029710042666284751880030332258078829747999239970875084908838438859365692503938133922553374306381803961413716472143545760192052683063116024144287865544477802229929676607634599250347286408252317227728960297666530292284676512541676361702587194641876207499713957942069273152658597092211750552003348416460877336440058098633127567751645431866803323244985185468554672135927892612299800719374269514009195093097230255819735107573459071564018698819703797614564797399811846565711301791794702957890328491433735858294244876503202917307223798609390245125451446567465645251264712328313556227080074590522115879382889186118838447134750472360151735079532026620258392559335360803924133637180924790906620511761757796243992742195522350575889885375899512660616293584894020172372706136774128336356036963871757278871016513101235953016690765164679751793380763477269525476135776012285483683794785142540349653812239075528641478144344152746702318740583632947994657192756092834052173210039985386230583667005058322054320632423610690426322165933899784509016888023627740773158646106385858702153454341355135054127027858939517447119882229261570734629653084146395959681444389731840476472346609774463069677928099390243717337158376285802762339753102063000118155404724715164610720670816898916273532164268541016178301337074031826365080319352235224212616455536038239330259914841250275598440616588145698692355405820242041180524228863761068179072418106534062195242770575740933532664985753658688068199871590496393024527357895966157547448366635340110829068390371725680762453815374523335938946582092057554946363307312501147226144770660884679758948232851685622736922859392579361831405086395125478675667618746058601159912361472265723761579368954953432046596610589520745867758858972596727574745126259415355865601845988642902166359842616341394345737772963105571067364955638617608973579231646678067008101641501859017422645690227840152569557417505233834528203757413155735630725454638842124089693104784282824767461439777266729851397732591753700612342484052653235991641278680990458368726310823048921992449318471004990207097086231999467241396395322743594870761470358644936988755424275279515100161400870100548355859539058484302475892180677331915630785728106124068911595258910866770917341522620482775637124771403603234801396860736814774343907454406007212699617590692625762868615638356716854250642151343678904924795827862816613944961916137672881917828758563888482270737242040946525665683400998717844238268135227780286171757438980807870151858102431595194638309344117464535996627499599544031257476216057234464527963156294854361465773187683236844977501555594268746197679686928007008762847120001738908031072309092691460405892666146120319194755700714879619380149826283184791325312554131354877330680326445274304142330820192175051207058377571062558289412870149577301642557712230125190301116749899324105379957630290547637747265474604592663820768078752074404226276836675937927651298515203029855084953448289058080923106179208368279996422732550138600540470089181946991199768577302774677593415943752910471069741387928450981787476520649631188424412691623119275933080744071926034680643795115637313296735964311459332625906340991045160967768593950807837590717088335433939299333740794302382485369500753337713137960093260429010220652246628227839815578053329471104083979401288139161751552511355658284715210670269288685665721946716059291352051294689584753659099206005767971331182999681250174255230963458788400682328551498720789547008955665877916688684428207112721151991548195160711065209288441702886191295656150531436889021616565117581076370594309931309472776905372601436774234237584952578277756357324420533341052845980612174900143195916968652938544423886487218719482342320571661006097614805925123466752681673650451638489634968183522651221714572385470055672562639822891286937804256154087044543631358420413894238678966864174756437671286901371438155222941210542768043621994945901229458302746414658023568155310728776286973938240999332494513748578640293079569007662678141098920596364820736677026633326830677749108694061772199291278030553869425136862576176693515039776435905908919964892808597468649974079748057600748396801190598630550358091572889128780284435563591573573627287274188743716657461868984500689094261438986684074597470123375022119374968546591960351196484271560169567688227758229596963202127004454311311028818548421113008219918052425749029038445644339103784174520904299600913911890058002840465979716157361131937496929541852161457041233925194431008901495947709166260983339973701963624341679954960166928671504423797996551987486636794082812678105294211403668433827315129310006440696163760371841792496870341633396783914368093735424823470091744808024663888086983030951963646767928092231051534530079083327437324862257599189058190588931463710120572571118420663639599862854201460662946519610899160564660064783639510132553318497255853532027509022499958638417595085354054245448776137524469897889940577266664458556386247178570363046374125350551169092852502810712511584484632788948634631483264540603363753751195372681206607077866469764732757111274231324302872225050262738583469817264122182483320270248694493001129730408820091536879542579599804402001440125448098866151281355248303902295364125830324059151666343206908256473173438959090313290554184192242944383217999528140928394123063463690197583705109520062173018618759414632784119790320627620867525361901889593899561679423662898590657760040340639628177350847143363732194839856441207135844320222269302067419347496652134436091276808098458160646066018186715539143924312711755912174312838801943763918834098625331799272800890054820583706775309966578836940720959558773613202255872575260664232200066059375159210938145041661269146939268773308487689749068830217177994121227603387849888833590389091088495602293008027010658731800089292210721889634169860089101980325801232443518521663627414918576140987979635059894900068909488728735379304616935062678296431397456022221160145920056717599612545338560244419911478892693047138615022597161814286771791243906003430464989563921791731795303521671517090098091097550802866557610665355181958538583154098635158354863111486680784721022816779363124272208252011537241050484979767090760612951760089905197165913413236924834343032644324042860334246049327055103315984696969189497225467031749651371389910340819744496750389568418437163789232085042077283005453370518416118662504445982763055678349155721366571791539106832490790158112290458845154762973356049929883936241350280920673078432786490230058216209640923470469314121435730981627346794248483294549651314827605952300536324929488625848790413817497970795796162312551832271198301074596331490030390916091617964020370032488089118837328094968144291559192033713795438656507165556918081954056261096454289551324826495655046073045217932747413943614045003645214528663568630576710767609519020356445181868907839501601829740606310449408248489570076201372739574436816287100778068249056296490230229246538054268913033545715011007592405493591313762506448434740697514120591992614180706068370108058280180998279335632160581553816049780460067558467709560349272832484097916985997278236574126313460310518481370496254610526484715146367264829466268109610130976833522420886688622629102973516353106893393939951854017476188903746196291985300119292830857975443770536509873804950743338615244637585754964674887140064830118312935405778525594495848840773950977730838365341935391986934673643007398569401995319334799854792549304008078373128429839017185508864766538558840069803308388792407616106816177726280928744846640013996701616638371719984227598583361512680208177980480920490437397930798417219173857863147530202809010505304532526637395581768317371896213818426210822830524853122240907952790095597066415675958614887273898362778837555677091270445803332480501034738576996969825117020623539744733686188687184346594666778090963807224532751899775964755092726916035150122185603462509799246430525327642400222489139943228190598759261640155321348320077141741189307490494965276070754967021234836965929533149407001538719991760228717345717352715559668519653316705357602781529614745607002827419486966822847090147218553498873823742966149043791492249918101514164139457286052466956018685563552206586503101576808282115435057651204727912825353943566700815409082738362534026202660912507592831772892976972455031887066224724327053143996139041256705015801224308953901748721873314587128904064332881973693581693756465295769784227708786689061731438290085482450237357455411616003159189113642486651327559380600957061945033761807813851141655702130298411178796375295420987487700952811309371594718787678797743753747011275375270707610006253090607117209249983111709738445494558572196575558302907167442810429093905765947697506189813452929699547144392445351033260688576009918440161835261744040141931098739492981075975214833188542969169239108243466225761610990304470520265425791029747473880760706501359511078499445781951126261387243414699935504076810392459978052244402229414664065340616464548460489051019429610590287668086598046068987665275868490182681694117480490175561936365232888199551054437034351206144371709341761806849923261732335383273966808971008337583811818762555619175864606990104782664759367081085172005224073734107051839198662859241983729917792168636739695688060995752492798694343240614132468483299046600605648769021795500459274962428206881521764871133786060795698627074187527497177005150652433843646535246542717316990648172419312220811214067050217301048956354189319483742032136204015816644056589512849374621888663075377403092607258038461623740651090312296265982858204596693863999661676706941771253057324397284033460211559643753014489620717528634176106424195175523068703778909891078325017338032039971290372441212776821597677175866451799410979989036480968588085518877063912038185471542793499348802810965415407771833590106435054868470111119048384196339392877162229023317171246112749489775265544333904977610375756762028894787416987403714297031149324305294587034398663534731396008706265495998969188178683028693046697180133338460684933726931471767621478494997452758916362197222629275516728050857688649184440669247623236213492228338896394956874764494503507977334511672374636077923240849928858997802081687602092224093064294510818436886900602747527267904179029894438420896229581720506265081480124559303402946575868001398590871952963573687881744204641250799017214538593328722430553668183075228878973902655070198018675911375894385215402191721536480252997953667444430339681385241155875392128687368139553788338654237256764659440945245628914293283091720055119779388324858004950218200341292506241965396986723072181880328153544397076385339970335948520066735457940512800916222699082374598735906096457791719673635648393026270911702344183787030170404182968691729824916588456438286235575688782463449791129918436319074128572044819436955642247419821628065139392382414378835918888867838926836805815196642255723804044775795956185540514002835481173913578096024984533689004811056566610691025506665510832983778844638134351073746397654463697077480493887793076252046715762260817791458799198266903335984884317421801274591246339737231335913733215315871206343331159178568468441728253777130179224667569375650991672852156687267547024616158375651780825758744411111320598286349685039062401204526629053532915731437144489172981740999342907186227457429933689094771585625593859149424376177650484697635258901923946812125154189203184096435590124289857949094797679928784978921071063703438035929374227732262995534297370279118522421952821210040806824444302818573557794528652003554791410950519010023022431731632603587018680139879466792010524088983321522332866352269130363090012421283237805382390105605220328609561817855958406420062539796380038302372664279536261612035921288646268635100290969772887498446552857316137354892244267385576875077885887898850992705238123534386597831491973575717587022256467529816191348292211653428405495520579014019367037558109335114175782087479603800977562179042954955410058920492231447064261691319077546345791230957796190657084001156256895259924295697074826185609823469733944282664561491211078733205034856129492084551829737839204048991379330715147086990138914575142015201100386819535208443232721057181097841501077306549068999649230015447789956662845046918404114663293323061948901893567349558959431836338211072647956220074126348034315585850640736280556771628087374199980000857299968400960119425705730533017589946152807542986326029505540377105448450500425069697185246115791481337630786937312168665251822451064075888980288484978273422445477528745653701010696886024471500191284266775955983892540122048519203498859826889841189601471506572745164743841631099689623490115279702867315123877285138003162146661819010205957037029746051552027882275963055240137116814874571354873330998345140372770095798969854917444584187135580245465899072197314367959551402517400236531022294443343689448598996152736801166193228766031342299500331662006143730444611212668782017969609813812076604853262544717201898587565039316703429530966803922168291667980616983307324026794370180474086720962252464224397475235158233726807052418879714892927096264077216030459750211663331198797710850289287140404980214965610854166001539853080099635020135283261171107162714978082440881133685936308203734418620550580306032951727933843965717980939273194442852802653525385076286767811391629045536259782301323693937455985517418273201025315409688566718680036696609378019745687836324220866602111075465477838552489330831141760331798978068798383932790278610844904484876889886775444747289698641218449267701940077741866339559914928827390068929445900428199053438885733044065524425627866486045012740505689107159694265678858412435740620500993365627061575175626231089698637145039044563622754810996097532404549507567543059212920303307571455985750146251361750501818057644979236252764129265738667686200916352316359386073373117580794718856595752164022254537067390606560000894865552673005975549265563208506888270141074763968004758628011509176171127127265175697526409136550676533372722933232137020817161937886704104685245367385425569265426144702617616491690881133995423141840505524172875864495055573699859392469675742443652573263074327805453155650961713804440060697999330796249643173693711388450709672818944614527621798892188499553816871370738096957278017951191187860683097810158467105356673253079428312685320001655768899237669775729392204165896005810908719607824938151151585374892926478260389851045477929940708728633219748727858826877644635608118832815854536811474228224254775074910290010405550048305475114262780072600336794457364564139875083789775927754745113055341159933547499592513105977469929059241040290030325579748197395312282090934063855792980268284247853194389522549249502448419346116199448074345077922608202485045351797741788399769822460495238313919716923288733206948546453303703936736130137937859978575008949067306443594693409151295645296655425433639918561234994182838444388956571440028482854243734789764110728390093910609576103276835986864247929506612339691672078694154159873170254936177482965906495766095046517882418308143101516076620416057363238845430826554356649909404171309307694592475868636105504101488635764061243471746909997073549678662542565667709670098027352762180528026021677347151716110144328575400735297206582144576397178268031513371855247031767698344557914669481782634221311617847382414176510990596619814902931832423827824458710569365730470266311528355215459952244064368126524277055927892263909906541184062329944745817216914679171636344689068328490040684467390309303543646787609159447770939596571335427989800792250303416705071525617665483540421899145342743343989597314069845026000895529634855596378479810455633564265448899532329913545299042622744499018584641318223463161935477639092269277473011292392475518868195031325731373421990023840438580480043882568961632964989763487073845429090889107864248342963385261379130872864838137615902963956391489785558579865869724678114280664787815068648107200475286909594913871716232190222340095315670563245967004251406582290108639624070116748780019740636652956896369858611127708560733433278400276661964208663486552363127239054693625589184016387865052956743520566975263487164785408199628703959513903052143163519502862045178333462839131470406212909946675952900424638572581921320382838590258259603698854374272747405324200911664353750305984472051194177685039279684136735898162080600485121989109197493485574353365666330592240636563264017883629750178852447689715997229648741049763056569592580484972519089708371348206681378332871916680871253300818803648502430444310858204461492726851639931430857358423563637540524562358790019452027105656231191107858100360147542101975768501890296793965024043401433447280558545337749890135258683329587039485552260268612057831836079031744465296724984656834552723841145237242714561862662611817871732043778668016591207669565711848653900253607499170002824296433955785764715530484218308634361362696706022347318555618005011943668020288029928060968289325464691564807792949383255824951740025217544272630817956097741473384630077526300100947117303169975381104008390463460721233939181589006170681624644804221731953750958623753134701999046659308282051750985436642332451604464988590911798823783508709026093090666902183340047623148301275034378845391868383114692268344796043781691882722624457774011223995785669633944710382146092895284954871080444118901745226028024835325459213809373655401467576042732049510751380129556541096933667746337814269655561911137500318761128103398425618162597074243650942181075791860207259272992672985138698284409500042887671289179471916988600907637752454301501422826135167263751589969186001387260249155763882979010229343772705796779776268895653220863167906656361051891916374680343651010800623415215286942066708011304350465934074849293652082856153533461369012191965232483127238320850490420211649091797156116762007676203929726896039982023442172416158197919777960482258965548372032381677661304227762685069034731617255524301372761295419158831852314855244742086523078636648373918535459167832805235767849867064008034196114759473467342371633262873036698276261843257826764620831953053049469463425213755221497603690451098823322408793151611664284868377157801177692982028263866420361302253015063196536424459088539500616133752968893859545703053741701542371955720700152053955474914578995980281724678387831170855355762312506024861829772048443600987312015173541468950479652038934264928786877874989686108163214940352918371104853535489572131045091136857693062411044006036065920509400554399746394182525576426970218222258486324825868646244809975031178007684998077085712354787115409830184392095129939951754967795952200445395144814668315793305878777081486757237707716901229457658786777858291655029654001079620429532368499420106452952738474000425824705743547732736997861599842011594191129984770911438949618556112839931999941204233785859492328410136445275842459096858352672493303872720504890033334757879683609319396641031049479135878273043656943851898771772831826697125334173582514662217599827064155290100935871348718026707817747054960133320196461341271921340600166707691673392308848539154050089886401475425402404512009231208276924587208859014916782384882805276754155926964693413135269461247160164021986145794823384260569562759573620099027049117687014318005919988958219044459492494912841015341326475572415852091821792614425567527633391899127288301952817888422597092883261106372112963477453098093083952497683418324977616637755361454673932029639114619381844834660840359794093075448276942840392559224485502540228680885055497572101183374750229028087792535451379521981261862138892911890477766621515571279121568629969399822399409369682831218199015160109914991675458694035657352388394748459389577227035749237415436543661404824117461123043900018280864108260915406455479527158195071913860900386973831032516558025182508425938541829256874328701759086944475591488472435985755599766668792252452966954434085647913475226069887041553909235638239367021728769418999431909140376356269522513535182412118814854439138604720264291067474981327997737454520057593994582879002753049012258986147830063821342736324294121870468063182774327226209247646651516839964731687246530223195846829732901045187832029687946451066772234113404326566666910964279865169201672679772580016029973280716751508496770083926779005536952100070973527651323877275183019780813206187047619855471194723794459970390650079747382160516369208210266113350473736945307384549455997781138421449913984338590715757559512356115651671240448088358276399468712061366005383877844487549783576461284281833690122310214666330212115429126352363260971176198907971106894561523540127600802559148276117236671707713123678326624779193723006205373893225361315224331937972880086268826106763925360970270388445278411023533884948861487098042446246357790166308035760407656366050675731805835748599349005594246078613529885571437094864790850271248463936961498670779898245572929135391119487722612907532277687884534256897251684705552695270356382894901994257666361033582118407030057943935554691161444270211714900113382372331616335337336577582917711312191080789076075326773816566113508045186193783219254257259250863533369861251833553216318348536907399666485143891337992338264619173874751439988291627791812661144681623415707595460190602649696117929748549160893210244380918835406378886707538675640742947939291980537513911149445096074861411086939555480308700010572463094685435458733334312612444714701901224528831669256871930286137329226356054007337357520059346575390485384588340502903616986121466109691106725300192026268195529046799525584047868320727759926912577962793145791518506793117162160462948622219310625860106276066700033489565330174045186306829001047688899086651358673633215501643518479147338570214363897970630706597334587087348501190393309602671045207504896178440897365755951224380198877535663302915900387995204685369450688282674155447702613271447934105782222165585199124363208110888221502085499179544978811581334341145897540904926534560521062125980404928691760178591843627773440273043567637619421154139575910509029351061916497290348218207860369698776673823747572659092251534943606153221320053868834110069006722854924149845235430584532813538857627699642684867058085397058831132289387982615241622234266651947398526140492358158727884973503000783387809576158016778223511220867362701300048017548766097597822175634381499866090979754862405854191289586711854539340432173325598741611711367990732281095595610255671709654635163381157057344980184401197922512039245093456695145152741653541708861192138428808858697654102405305289485638309442309656131367700874325972111980164235180421069426607018321369228726450761620681090636965919163746979107370634974662999847236275141352081641942156319991745405862586074445429211068238576842241780004837688800129518938289288297179755893982349173638444050830104687074862401673510536945466890711731393787454742847696782920942468426936525047219420573355043633541349084677534163917023719700076179039200095261057169419510466047455096371592195711314709226369404777589332315450938457510711612436326864613782389460653573646367573128961987701293910500809881230444241865626004515560180813934272674149164592463651919236338463248894856414679309726635033822560108055866358863868101165914978125388621898750996166578204417397363440546106575092928841550420404000324799514108237198180685701068852130245767495216827541210322279836521059587233441828835447156295424957569971809536226725374068292670260638446155769048564732558400269227084055981886410197052781469687558598572719156060307819005548128812645654761215735054302012203635037166040187492212187184833271069150300319057611093352704452933052217056106085518637372133608108938085129298519026174390108817011348943132438975969136989417765110419806089682822855400635699795067771431310898682860366410934734757673612219810426118753503609829157903730201829743056562093532280650832267515844148207612994734528800911033900428650850831530906369364408287081891598995627473691175928663163472441963776463986184233247014754405417023360594371214826637012071068814103099200795215362337356334947970244746022846712167004895537753289452784945173182698009111691056378307711678853250619976828452153464898863835682148010764518781029328186729409497536995031162206883226700257328596154222048417560230504368560148449801642729864423416006565773622364240288443800166940696948543090934819637270651395717751629279208615297445153156041007876002286268525661832005916224454037294476601476059117651890535830787583861507427741112570662639072959710727472043045996889435520421978937046672265128498939281155078159459897749502613501253861991658897075256051579456660126988526712021487890497951538916080820276978449801007873103186415248779125193189222379572010373764816390402785445026365200776057095762100933177912726244122946368906858641709485101885188194292156391069613366656303785046975195616725906126068564245488200110858695766163333617556423660275552472397457249933234834939772595842939408527202357999349299215221469214188330857916047607118150211961415837267983576031513080504154490582932699218214088965469043514563791223536712159467319130827006596056526783923920387399793087931082388155507450556885847209849603145020836539741156251604681654910020550493267999485977861344572244848720505227858185221139667881010253134990860230369649620839833416458250186077662845743399508374741811860148901462508165982482967079121123643292798739165511910906900757401455996016731284021061216967262131881098813057557937207719337298577203348273546653107086760996096780241389136655796417615080495828730844086199316444583507836231416256371413930612423019899578064537413783916382038045746244562943252555453762315026677960211952170585668860143651829807202023845004769662541627195525168719330959320042801824862819194415161900633548091383163762977165037329773229668834229802393594285821287064831707942693358680800195920733753867330220968184680345817618687986293971110098364313800761254533063782870880120836410080854941934688213362335756355133901299199765254857580544971530400430929222475993436760784461179448961113486341938259984979612265341168579876060887654114598843595499117567264111843916619722290067817687181951193301358974096890742116567431758963787246533001820327281232601669776347044028038514354631725164026074228754349539512402121898601192073270296470309826638624524972795850835301386463203101494356240573878988786572864392280350706923905529651855750525858634503678338445638248667073882001677108789432774041443980573797853354714592060248786645714184419985372808148678295977216902787927010291586528791773450471951690102300839229010875181195957657002069852675009912128951880121228641144746525620174643417934725731932337755483113683410735633819893383093977864730933090838415982747874137532583122534721840713768198563498854527636070414745589953032401750082710749509962478923961082073343520686091547292217807907289220730680116969113052610563764137930923260246958919427868750969129045765766909912159334642263001771949311791028264017269528749904959966001809249376165224409454991687997689445438705255354878860397914672999608344482219805142891713303963595663436400745245263775306475800439820725391748641202621603826096946255498662354626918711816902863375577651624931029970031059285269390128237400607077991541160316690691782008805345953690325483578326951340800948141219200845218677464965238608171520651198826364549882192235743302268099237725562951919398375108179932144633486657344999957227325916007128447731617335504943823016745672194105127147103848411766977287270005324768797720370432407240267615139432418982146505960161787688621927428374830494982681114875087297941428407355967076991583960595688190686744751016638952604823567868699052982733576424088872794041050697252310441366872268959845226036302770258099210768748231628561802308650986862153675664323502739406898548955863277241715281275265932585902464267124430642205452658153434759235970932911388170549883428183387273785958478757415755240089053553792660433459310388715068854471726630277731572361033984460008375696648408269916585221421685157103374544708195675091165995515675194953401577166946998120149510744297627253050331414937575704658535370505890840593701450806961466475728000043685023116221614589530583685337291502272052717994947510321346935192436671892257981066284033519989801490720124959966577463510044587876386601135893610756052495705915842715664265854489645193611033325496603263459147859823851923623479885386306077091845256183231875788306221952068224450725535094178762956934802857017582913927509318837276843260571944607985515589831488551301784255760405595462937994341966670801751255347623140033255314519853397377576237203988630324325736031904456719277523597503571480828822122246080890149916720984746243207332545750205943411669347180619495261726915811330770442458962752625001456991642971782709551510386697813811762179930713084021613273194867872858211347674011852310410937095408506262539859281599587291028136623493624821933028294823437344800286131107977270876701861542491718134173454943297321604899438480449739664055453976495656012425737166066523752118006909915114986201748209207152059615457445453050784845783770547600892368114064954747769995145181082583121899277483460361904438009654027655843913457770661799952031058713076590482883188996558872244561239550185390990301269503315244754375026142242619100996223046464615593198188124541687574380140250927571042805794571535883004426441413030086939030615809821357463641013627385122335219526928797512063619055661872875554116710911389807860551868736048604218971640337225838582090186325386743887392023876624351857361709919349567278291255664827538231007694065115882597667991897470720752426774446933894478606773301982028651818998755739170931755854603325931125190355923419430362823991710392886912533754315676402092796194501779130809525760737850104385301562093340943927097446806594515245827979037632933110229977230444712242471234656294239933619970833857149372083874666018067875033742418254257154754149358570510176051644602226699310451767173305101364572009099857037712626816800888894045226897115893481013995606629907454255336466950236690120394242950287534109024331959172451301381629821960368565710614820503760454430144773025133697719610853973347197509477784251629812765307873136976898347862527724523009436226762415791334600461144669950287571202411936272825768438465157224061926730687726862824448671390827862979362693306895059072055280987708554240745878523823427514493571882406273383965713767714717769588597940703566680204344313748257604825828458159008199480374885700350716854882639414373262320784099393658230191495824405645742287082842291982409831101479710562630317280179712397800512452562232102809023274973501211584845232536954541287031999041881329645394334553508666665255641983039235405298540426884600584950367489648614822546253901226058859151402512937107270338133883868956213384990565361149826989938007540639638529598008975492631771069006054709649661881746934308377388441373310417892252160359256267176214802923576242964999100598292053457778630895794401741992312137763948262681639765128359362092125561570634357443853966578029177995779450781193601498053229849661870248069901645063578616887509678436462528980362537190818663117815603031735239186948303080171156285250173934417286087667484437770452663811379826214874296728656999305292279966592219166104833380114226256280109530695792727614649842149142707991417255683124421919563729237291123526617944486852600389156002772830965442617426091856986957787672171472666257743866153643023091734057895776633620012537839505777764608985293812690445672148044520241071997490338916600831366317408157391717771840930413651520136967807010503258254420129103210613835703618687999273982446572665865773757214678707832380243944609716280292074117379712176265304800924319955350813229928859295086971290358822339966678198777074183142736912299400407251635712302829123583142697630483168654211717863606153141884928406611409987778468462032776735897217799783018753132640899740668924136542571517977226452870052680827431626676558492796962991921686082287324551769963293775965633373177240424290806940373409909237585488019573714416048728408842047484550262683188999676813320985184479305604106195797538177314411891987542517267902824150882262900462491246214745829331870193693630425610851925487800184207489482521249712377821741321556437593482066165391733111910088259347619787338236140653601436183275557611948604835249825158233100670521658512403287815114815914416050310797767353648766320719756729343294754470470091952801165694201399335572133488054512884989656350938742397750245237327442951917209417436207557477726436126619839468909955735378243513235469817771372971769130117008736307185078284503121320962490287871264329184228231467359358296951650476316022325336031939036731458698604736571476307100392557673387376327784204677454878005345062195267683084916205069455237960603051816110421346663827640340111243268102646357690060688435104745716876892160420768034667375383655065581167691467266585407322585647909132074254482068532080125975605801032711975546920136925414322321623411695202796733665148599464033845790705183222781877954803494227752441773877750545476147133201793448534142917577430611776206285124301161589908363849958886958435207519211045759050013623381002094985433924532105803122749146900969525127389257317649691119271536873987917791493131226463866969953794675307455345182825620149037515752673650319554346456675774784684770230165499134332274240687508373930572655977139234994914282554864219455933826256522829973423536177829740040546252326556895748865305692766906333060638880506906879665491645005010328076757806103332061597875201395848603722886618499239613783772427311463803858655721709062365900904087292627522289453962801636534694802877053442303760276020224124089257396408061378807815138156609081829334968849089240428477802093971637704346956333713862214956672814612016799687941773167610437103298781615223175524785521811166474990107487371882878055592633156773024909841704584597719865739667958617295230889910082814859451559878623756556059376906296506066624642046831793995128827754537851355378693498162131462810551089618769165028241311693210748624999281336320489100318186331763163064426576063684555689952773521181292386637367490162368090541739555075989055731438393271386465836834274661350479028962460865884750680519420502260536094086482925319579145201430450916610552104135425912507282024775284776213572914201933341921204964772038925748115204149267979602195317256607638189715443548995756668412568622585737205468390216441019006673248142149464361367729968412399428674166808064242606124271122544807819586137198584684859503621397912388105755799980418301945955568213837225934484757709302758551454791212241481236696288494747602247929635396757478791471184700671787196096293767568385015687687018990923512894967785704944877619266699542144333778719060531115027642600139355187585852377153329324264032184263367377754096851492316784286044611519825555916723590546816280168532762038313784034946065412552954742617532059492233138272606495693780800452903650036695025741518679985955170851125767142523551540221581537864988021722486420656196161533206931333741485425238592078810919717907622570059447643981512317889325380002303879535682701588567165216831780307037276505947958725119000654927013903669412600805606995600169883849290451085739478700008103102536953520131642207807934471960915363455756077722865884592651971388169267131767886254965736484244871104485142065809614445843995125821532259780921625341216368354015854289203700299733667643990309079650653050861056726690682324697969647442998687546308356964520280639477030682804007625586286956071349023219134937091416444021789223135236648545917603586449454720184428340675320201719329870065098899075938695216303559870466083821111576644780835511058144078896710187148882870769183871283620327105167284837297655022143385588757511798628402721348456414570802742360262150617041855228430339694718159704826152804508697377799433286764973633834808563955808509598516386238472517942208978599937308937215614540875349224823177318249795134703735526156121174681344850595062779355511654005451330259041012210012888329215680888442802670329072588202986062771470666638617785675402343787048222059539322426291805902827792637776970320278161476735999178099182345491660963698459080038253852751595325224716838192127149754981972410620437867978763177659033107048689048065297169022782596689167720780167925921993207603288083095392317851642701192769768628283216065927581769053156249949632970254319124524219679467172398061800424268835211102474980755861008890898613181070787713552409525001826495217383576080098412834384122541134828533916968370455478126938906339822405099486681355333410399835383638874670923515908559487647807760091355414839904737087747919484734959187278568623967123546302706143931412934500649485500574289161210379854573099584481971062700942429463723001782513943165799789517624792349086667434685319828383434301537020140777248534655404545297976712227429823055008068798135785114508674948701013612118115704978646381521198659905158247372223725820521135812768686703611449697690391362393056857190724564229634394108350716042474437635893686915734161151383441299343326421321159183310159978501885004715412938877502054144602906414673388122697704119341545483921869190890550835700232330849503047649533611708102635895259202540736182597310438579703239262516778278235951281592929861310785543063730489910576475717916074872066002171930914741848827891364143566856178514058372818419259815638908637550429311269547386170422321869546422217165023641411202170780926468304122409187843317528198387419030690720766026189831443862146949900257190126990939397081705579844143185115066131928904720258462438750542144408456655394713142615271140276112111313037618597009618925364625499265772255892851030456511331075681356616360219362106460878386032133001815577332077183757883904671977363580606358578446287622962878614700997313385876292340975595204127574460127597157456243845221256509045383596826531082046286926938877786024058186085683975292231415082862075543259564544181557848805712357019734385302196515168462523491845403335266943031861020221931363014439120127541131557580530702669918474776992148572956178709283903357243863566018734528029195713032972512521814810264756822223156365792454747648354414748311490398604231695862625972792051085503646204980666881058418258482334050787723026046349000419796632620556247777143180491108410184015906870834934812517696018089464493260503197425478600871804787913017115726889907690932589692463942348857634589748432484120555805637583252268930470130613850866076745991728291331403371957583510409259944503438816405041546932398677611625825972049532035917436117314783530814905498473262247753049142050504867245858870674796933967990588527363408683005912004720250265220119509794942613908918570308164960712211007960435394102284015504541779917988843284107429117489254012451183561987829513130078764272918445220398348224391418049414419699767951679630901629190663968323238961016850034770312702778108508919643276726568933651346563583208396752100678253002986305364930621383172364565432085549888523714852386289309836483377863320274291466235555854423172036696367918626511417772013619032719357050831809396916005285973098563409376360241538567000686655915333118904436619097315111797373383784015635860902378534913348142141916799215037722001200434186350282680551748030991605679293566239137188383997626978091693153591430461070348652515747603263402350938414028986992522328150050669823864267672441423558266260102919421537270383156311497263857191585883208561521153699619502335261912370886103753047790789400179117290734440179997389645868189314324102311291914567426962107552406536562822467180582656231980939103246093599786328535074073003723879274341329228797128638553930483524882249397079224556175787557565902404842893280842582486721719618985017953749331330573319603847032771538805367806398128433334908901511718261165180072772542092043980105703342797635070515341016989290517253283100904203409358459868857286489506800640695434043976522519094185413288617155931989464160032391071738047751825797075299607723939511823958899571508186173832059499272175890735746404903223109690572663287260373982539691276216710869645058927147904660246141056556764438222102010166523411162722986674246481286576250188158558809902674161969309888105099145061961040802389256345023467429990972261057141607780270742988663412536403736060878491218129799452401540530566972513584383805352498848938812491620015462291720024015523156130392301903812759714693127940548922502085076661038036722269536573308587020239592287691662575171737704426966097414669131459626330987883823555050530371277228341133609519948338067556383514518097617457359239823334640271789686988122415100827364166248106654684615548445409764763445468183995127206776669224524350595651299863610098450941983633600917831989818548138194098197432686186036585842471928389993134329609493880476697270738281936536480706073522693043902940275529734992800238204883936250758201843690181411415832559279246286863213892802858974229567868440045570390098099835202345439369262679343409782378973268663624172409673291245624049545747952690296434102658250380250614944246783513975871144285178012853111594515814160381991428657433696817858454424453641945542147882214563038385408890478556920726369709358887421943439018813521436173772917935377851532376561627388298780951248195094992781019292757099591023241972173370286427595971447476439452897020435222505845330624743122294846626137499220525421651235092915419230167279162519829727185156130958036704175092138845436414631524233156039476990785142842198958729664401302763907924213448709036968463333857267928373731007750026906046246184226939371739724788886737902816797881115378013471178872106297697909697976532328989965626584979974638163932212637043970889678851534381751853141023837227242306887737388784166255541425242893522534872157953111997639701307948747170518795128831421739014360732930245218864780235583687941838460704898331531025949124372078205443379941155623609697453716899481042348299409364950686906699736740137218807599217537091471784476452368296070775510379433508334090016997818310703492943876417144027033241179182337791347831370627915816375236514972563043037547222452544851250102846867782675577432706001586798838841894677291091136284326990930438637267571002818262629354007594207585752728918425096248594175938755270152948589639440288165809900692242554384055242059461666489358080558666340562113325948388668616271591113344857329159682131812780359508954036720257918242336698873002825757387807812752105854954566172251613968879877032809811088223137495632340597151386042213512379561010466752295878059764954836788199457577995089950163523180405031331183232655995883704567002658843237001108687893850356603172772846225367386310161893063608838538262116790301702057088124726835176258539687251723681784009603340216540440245356720036681609878793129856829502851555653255032107648599082356711822853876703884503212954980571311074609322754670775610989949422742367605841014290189834656266937165655078571638012450577037360177822923277110346987519358988293514742899279537346061220067678027899215884204729000832467211023035245283254433530387678595729442980101705859626081699939616201388828519651348548647164550859535086693514053274810090847297202063222580424794186225144972915953830841228984186790507213372592025364958427500864007948078175948338601049848299137942412439539683168369080164274997099745501188842574714916651986875855746909925390618674588652929973336732379160081214349380220626726701600091957201793515298118420083606702465328092826829302939940877583944334753943400470678576928974209516328898544373433308302825853370179732103721782271238109369153780400173646615027312677909812502238315231796960645758562641079830187674290792975005035271759711041081288602759298484612402641767797118692084622436062311038215472952806713140947532701977100611443638583271043684123444532584770971222684283986004434735899900320055575091397183019125124450506184858605937477411344955828913888390598371852221449827617933372596734959542959591465853047422043581032701688902927379143548972586526389921453796552476297830638878948531095274954296628606520593478798934042046747288613459680862998558536160054506833061349313478378304648833665697901748290345477270144948051431669439639368003507530295683577576822761717638125359698221089414989540213710545570397210521104729027864374477146265708135981104295829581381423121396392434789219991400817777909364697789348929714038849237766803015045676495052282088072803445183407138029821110203084891934590915191246232921529947485213947047375335378578433756326602635926700116210442250353947988331634706103820475367114073694701606780917250528494518290679509635147699798747370132244022055089610762690615886512426887250305600474612444595270781519068777527955440444782392430872518425391880260701138938998187081408075055330823494568512899522069338915889716661712892571104261716557933374832523526163010059901179519628554738994705593223575829945828953451654252658064573248492818832091604631395958759241734391041618856747962623543780517445554218324200489118067621949477218946116857974602126266674694943165590693044841144519259615918007768224419608586734707616258035334061349776813730169498386127166943405262400338718741723066362297070674091524063647105386094559077086060134958169050406253668846236927201281690559160256226472054876739943082279107024914057146729463072074165328944433912043392843344751286068141873457801125316069198209556320239955844330477199085793847322344426013583697691156754101810419662901638641700183216587104047785422050345677002722715764355602682148395134199159091760625056270475303369572806785691975948697804389894702814589217885451883549799480779521620633808505435876376264806664681459072571869362338000814852486793412648666224554071912987647806470463214491907884875778060972801236463083965489877124344330051192778937977693443787447220985582495409584997031007266762739701366164334125246157568805101545579994383504536422017980268010876160065540931759150186061848438818949692204863016753841920779842914302226563945921980797167536701032206095510976549597977723581870126832213624760447831967725567220934729713043242860937580067123500404004860006910425940410975478068256760766110144806272674160249009506922081403345970997607406366856242435515135331586410139366892069656224459471559262887654699829006985875235190911760646837069672709615840240558932065932676807452567713950570569511801577577720420321071870126824490648965170264165670116449261900619453852450829105475601101837513298234155755925629089168048201494920483914376240804491868185778876395003085635000235412792959649728576244003384043459119153894009496309467154173270144405186502783440443164533230194960850866027174261500808654220860037177048778651264487599881884374434907166381913710053213510005735045695704703886471369247432225748263996307644420470543072758900217200604411239810665869688538906638749505527961963236064194398460733955647393945272520993202846869297695372176238510823556504027000553663316064935628437061052624790835584704822611194680628045725375423383384764702378848431710379871931262483641895437182081157383781384285937573924508290078356042474846247976164644596772266506013230410964040130059778430193741398583117501644863528767581680110503447973278677706193838505081807292136744561320474785916864089142602274000285549206782831281081476209683943095360865396552806729782408575429875594537628923632516996588823921277288758593435039935712088883918484293661656986237187319490736474613882971203046314668064520317687791399751440660717799577865855993284684126451016390612872216091210842678760103080425208292390721616111814759085895869388058444397822168180591482349382143412844794304318436329107224340037967683404054975010443944871644865047143628280687643216501206391268746820521361017754893471215734913673834893932003632797977933141155199233016198015116962479673580379327490422032412645445957965314550780774135669789862628277773184326650509105177731775291162073744989290800104546786002832255839168908822765231500647754691376002496910473081535844670941867246095940123578293448183061910926110996461501589839604806386595649426290032859747800458498985466117834716210549507855765329453756522262307424389096195204156327850742704614358482154571363494472308251975659283328309479732607864557730277744230785336574194139611687739619439406120785993637110670845410339456083483348800437319661208588849111754707404858284716792909159383615834130978708481274110022218807050307656847650636838457367771751975684628987208696372271479326817575250079304967424016420684527282309146451889400579033299888491599656471863841748146902435487866770030801350168501457552154450899357465136430452258686962676147232696913742564640536080022583490337856906436345933464628078870052530496349735635136484341643835944197155290184187045997190003034627399580013091766818953176464512059091571441433642409512122111303253471317958579824678069949162678333510569033778035971317810560133775415087550261640590394263216442433489659691587384983348889234243391107928133181131417492275093402622999725550193272540266742983734954670790414560055074135654823858230651668639316221457342588260171928895933495171582354444331937631889676396560288255405315533483836963310300655083335830930434691193446264681420465911313827028705401929405620932069086965749262817712035794411741217307362732359373777173073135730990187878072987152972826440440257324530851183554939002639582617187099681505863766856559377767212695466642603644766144169295621183099438758704255021928110764262550850471830550958878522957702603707683062974752311829481931429762986625952228882767159133091354652485562687992628566269771918784304700977642220659896410374969044654383248727553167260061432586176143520836209486741336105070361074443430479803505697051647589260186509512262166853294410120590517347702306941671448227849783790025282421066871811723238415411707937403421068972056864173545380305362906238191238850954999514679620404959893336768405220376231260105670699577067220054037494222942714892634708603997888841724440484569194925608430402095473205337150620641654530677280740389403937647462456009158959634228385116898629373991682572050495212453512497338067869298371100706395879982566796350711911508474813427299944779728660200047300443302999429269610842300838712135316746239788593855859345002206064468373652146409262587660446834607112280322187068190896733513905226957631971465227892943065298039275444446241084153761349990424371064599778141389975295872758410815525077751278097537818777734825287289599094881725760505057904668845952961431959873004454362954903983346219570986217696768633656608330771103907172489309788747829089047080433133135446892633833042507099441490910508829938830612867369890374712723210051803508812354755144914820783906821332190169612684463107477714193249307013562194088636125632791735775915222043910144242143709878611682718613344066998731031318608526237443346783994447149873916906322242192126267497261707999942699235439433283142512761722236514133285079520859112872484161553234831708425621637996031887484503764776207126072323840573820367389538907766280835919547628648122437639546558295567950832740720215704970858535901053832549091800426407109537207542851866890736577651413469137471937705637133358750659348435193058536970824101344466521061251901229449713077464009027856670978551296496419848810522260114379647622060126009707040640844512690404468473614117134078801938961720921749659414316010019731627136421313965689799363435795282369047832323178865830373414051358774509538456477533749219328026964054649792738893684701193661019230415893163850748182755482405631602344445187230208284075461305229810031234027292968970128401197840041412671419544395989326562861992861153160285440607276004518775133973544762753276245213018733499057057571152381655275839972377416518854251779416756288397024391806119986437922550441502458927807567234077641482301918311759024393925164816332163724520351905658077449678159820151315984157976862883885931258816380251448206921150820638649826239062220195270198315060635539004328128393981320128906463826388936834261453297166683275327990491785752120931724842784985731422946357622124501080671499709821105164983634077986293562617552943068069597146264704029788305495025027889018340860082383829471034426248689454715494956923776478984318091727526938433588534838548868440203491548633559261797562624105250172734380183019624891825166292780657151957292239549079455760325090099304607808967744913122885195667839476050497003208331345949051481056856671987384397532756976970682043866778672197229272810298804268057296542364948761124705941489402434888107080789070639924209696566039150947704305936341455124757955921505195158057320705850155611161893252556731364284666886524467686716949363564249207840894596249098033553352475151404847676365956864501208899923091930197077096312198163781367461888087785808222737073969370568013525458665676871452258260671775355668684070641984975401598243152246639862939967399710927784783672311482686320320926563167274574401963936645455648270330588394373925264172375184973317371030063724811025085455191236889830153591505376154043017050510223041351771210151557323139657123839720478869397682949468905712075352390054038350777689243153356566986100597427094106130472163048132218325319122999878373533874353203952947205402166670357329197298318591384378868220754175384585124426608124175140406916646524059623270286450615767463511056753967759404367559918748470468384508141217614989336185704412709169619170771204461861051485047856957124759868592356907704932029079619564025391819126412496700273641021079516613903519713693696423701696465808168082949742530337435835994431855116186846641785573182508609549032698911155311452308335156300382870382915102066350818676845579136058866637611447553711789156260584060684885027863336179947359411049851075985022405606149584848220423984338942511248364124484100197560949189185282422489058151733395228666750246197729904489562067754886944912528127394709553705173781197091764179232187137339042620030694443239354827769764040281969959006667169866399446830529825242916697640519618970998247572611601226848289886655476846930027710903986173627075662549635828730151658731541439559604930757224862008318312129938907666073400782522730381594269152135957318911888531354928389102592595861979681758194496211254613958003869436885146772121533747747576851873999113191906982145739943238676697738323773714631781010065609467210773767669193159689769566907093676264924646847698738767085748823005259759936852449708788375604523043034278190758674997303805479654126731048977399625934688958523169120993629553743162455716907350378379210875240398037301410660273526241542151008987741644607893970851670265724460843670342725993238785836536837257039717154133052184082196043810347637422209801920444932192941281991936138588978110302183381930366378909967192395218856125491981378428588869716354944583583983401465601802296315333164295754236425875093737272493438680157195062290189060878343600233451120941785668971439215179412307095500629779403262443683780201770560244984743393835167662760354869612588694043707515245175649565935773155656277334635324055764924574078688760359230052348864383218866597256145358690317089453555345077795826748008027076598986118081154694038312358716602321172920729658088306412371501077194807792705307460109188199830525062383211004087013868364029345642164418106988340386865257381390393682900769383987874643486838305227446051586911800976840239542273839735565858398901329820590986130518969522773451002022742696508593233815403529763662773619311752871375790696775847253627356777411906620202511997875035419875841934176557499602591487767589068956188350814835473370653178085650283081957086161717530966996439665893472968580413328933085765456670108758641940186627031630847269431799879368712730981751612606211564213844744618891550841922549606398516034978339897049577379101141020467830691212436307202965643498198155322563565267237425487874124614257134367792397154228213082279588418638527799942354475429370753138255936455187880952449592332128943633081721477996979611632293503988304970473474942133774735531081319122470843693818492204602417224926179355726905165117350513439633558552908267505277189732527459052537395811923796704419903394804440159581547261776466472958504055886205483217874095385652983987833882368411861560792356767074951813767596077219391613239926424088200196836491237002263191286941327566880324907817389669558566935630235619264600063230851354034341032488960217121769545391828993622678248326274028129102947005456660098546266043922426623608803440530059724019852669364529168332516058442919522300968764366714249476964376841500631385482044616305169575527789139382575040982054563428511616941654853422557962572768440407975512273840561285489912740784802351894496620182218149473840718631183318194113995592935339215182557912022620235731499673692685139782032462589642071711925496659028018408211191173149718329659801908959315195397309510302619387125039676393190259990606759394428665944644456361634272122285975936389470524568081454292143934655985098147482666631439326497756127188958206918083373665088445401545804679350595066604696965250394993837405568845010781288973342336046631279879061523025461947780314377975340173278101858452456566932908821161833592243314746074003789116475645411630057236832347759737962295056585631847333947809010820348160160654356711769271246136092422322401862438607648906184852227661783928612197029402039406172688101454012366311347813177601898175044704065607455495557350454341386082728433417917305806997690366374051515644034423126530284617456966651802058883956269922040376456340021834319017155363758305995370439813757496067649644323855239699103913007058121243138613306570987165134569425550293603245148642070867640135410228629623405976781590593313922007133822910575706153172366445308078220655259110253703269895001542979811603865204602885965545501058362830791808469782626465628756487658719422733926564276467554186935365366692378730313515329220818514995141465742328603002820844495601206862065947284646023812623109550695249016819957684820435230895799857981206974887941003791891569587344355150365946775705307034727086462776223740177723682101663393252428010588751018620999283939048522695738875464779744035379283698439363459252438037747244150013201119891669981514498339942487562122570913035814511238475348194988150962744811160644749036134378831105817456491610082755342053391123718578653643040394774350774257543250148312960211211079947859338409240883001219391995830927424259067502987403194539523927813636347450112811104068126776053306358746601548858012241505318358104422087796845205735863909448507677250767781313351116353382352756184709146845038182529888127661627137256694450675729218082837587687575749820213060572827243867016114423387360688669782780311277723849884950205760473312243774196452921967775681817107966373172089540216948644990024998595904896765519179697855520138969245836732850552682922553177055756850973491803190431808411273795842023088300521900383058859977994482927434414827913595159752918297084893978887693968508595023036214206911509934053660619587004076932972280455573166916054623866582986474988209258943700193971521596281919418664953294685347239500619242333913040331644699042768495739580969122672772580479264491360206209040566203794258849361619183773685930149809841120677563078077084423903614456396048667618092302237329894596438480747479605732112799074079650762875567164908219345409772053784006680426605233083687362795037841095651005468882149226481454847154534541648869718644050465368658168491766756901936120543585405339285538766101011970266724344297350882219751469176649367642928448036313834202311162252827664127250306048888276229062071955864264534667504845705652388977862964918238865949594933067785845783813419468784326911070317323844737072064376974238404050783927686561780623221598444757582742644116801244717529634232882737079398108831067167427442253079340377720472371318292300820100000529668017551725247063817238292763394069082427519913439504100707655028766399924013661475558726496442626761473452099997590414275374394815133820639378678754038372472168134170138371397265113669007982929435431628280657889895083556406334293713120166468156835235647360385480610508537541173314252081273416994218162649068104696100687813523003009002244038422807272170579805197794237268868095830401577493326470301416355202109478234164968203412211174231042038323955920625428610710949836010298463692390078951565584195991370425287932821789177754624889894623808849623453246323581361111791446113373313951435109159585230527824843139321761077737068021360221497904772793457282264439332769735276322821682141318603130783617049145534074014510132116035656027781528507363728767437010817383849811577559579144659446841017876528877408064590107972831082521280634642859586135572573098274769673657365993672621223357696416393542470673487169222406029891427391182310297404056423633020834462400328920170326553059498256164698572736862894181299435063892461414392808601842467016345986828726802509555729445057691577069264833419772148649918954195744657865590141188263763705370231239896368585086492846766311373017666120405767172854238785846415599964744639645790084496112822646612384558169918578111321756635934880622051473028266243276542282062581474397520231366958681863279110450962829311501688802564293276839651104738321639875883222702361119284329999248657114036920107613775132822514825213033643020225561183963033268073158191598486349267130488970880251274447679693581760741487275413994474566717693046039593055872452734093210919034859967896604766943043570790158329132164274219280347639051971659258191532368911948566372482784165710978475794197020126573868164067407637962079063702528231742374429076318072142825152343562411279186506465708121584948338237394831657572150894250639179619698947870807340522687644868281644273987104019707880138282368327962496834057109643022266174364484397551329097095147226770402981279315824641137763098778602332320226661560286158991103149998842609245854788562935050966866229397298376636945614330995993667523082730228128226005883343452088811689677286835282933054502984791049211938027384787223632234296056270999425096829451445399340953684920607459349507880053485039828377357903415367607007358314633546472868361904360401265145691169621223827440433002635873966379087161735845141895045960094911436724377812628992276860212633798427722262245231168815430966316460709922600529195994508713938718313586256806217413966389388583554864788556119596692858865906655102376115202445195945999181588522636673623591041837663293949930196509300003378369546018535546190146513951918001907626585526335284298055508520568152803225666072399660465366094226338331866931765278977572467439108547231170853831854782386469303959205693922589105879844250963974175878519554645449551894885229913440350251885708342075445752319766100845993158126819072480856121129717766599843732601974597762594906864334479637662987350671605563166822276596648653847662431146638486084278108806838700666962411499264715223393714254999213773343625435137000882482812599626552844220204555472016221266229527651396280770749544203500810474794868406064571204756259082482288886745454992582946671773161685344340431328098498797098281185868420979673301401603213141207792207308883370207351523960840989933809050274363565904994358377955423440683576052009326574708569387907459391726402374402040418778284748216376639228218359515578557421498799256936085697846647843377247737567024710610677665617626547399006398516748762134821444328850821102671492854357066789389981159940199788538952713155910116138999349798633571448385634787208723316176425017004911148502341721693263888325746082074485713574113942063559572160816827132872595141659805558469514979134273883891851486746387342979122787544468157708965904656653641878867318567561223280231597347775559328086902666254922094009842824650088822953141907540166304381065794325667124649184113921028413968399456492643320151562866528597026166430893988761399316018316271790499595986779420888802515448629214620484279247091884117841591695245198099445429158565510531484590801415478615774187324250792525741786798409875588587085319685539940059062094299168399717994059825529343232412824528173726848283525401465790168656761051068619593553245328117995349185788307405026309190597021603109369757791727177456282655684058985738947296850969615418989215516869531278068820700176585994588766974657257434524119856859883039477233864347051614177900006596478205365462895101599793515404070679044144183331916198754054001710817714702384487359964371068110647335378585551704626616957914400139133953089133758106585673964053489844442670749614164331314106339533267028906399718822846276861728469767184574994758849562320616406762857942612580199814747698083702181688772339867846638684357698366727508878159090924671191444632683827753047023961266657194164834757348473141557929027364148892879283809601321150925501398047242254735176154622829776932603665701877491989255577684111690817973324580687283678829025244207463537366368858109021136800714472446796827464931873773620858635697645617684762229353539452536880039169292378208886916856897851695316348851206531831857609932982032383567354685478297811693282780506417009419504341700485830404229709855959610648048265950581642285654566904302209748812261729965930198920010214853893379714023713375450596283215237357830480467302127576694017824392535845461632570148290521837693603786449467586033263201005522777358844739723389988755698471070955959327126423632140193266376350338831960406342178278780652236158426987744057774733601669808619528930475670558075101037867665050650147945086908216672883525822062169381378247712730438964339261564225096342152436374565916283585774111383099059799321375461886416966107787839215881078621583817797344062617886913782551273822243154742141367430405836100710876351876463775204118201020565607740062013290084846272106866497499617629001653567818309241218217262286814255577387439264432648193899473841787246059036696677294682036588576724889769748829142610478158210389601140460622790834628276297054245766401994675892780953373041101816662937313068439624269835253289542984675606356980547141738934959713712917569610995068648103416500722872101147857231503678900684899737105820996605429806285958560410728210599200747569358507913665511605827190399064789510366828365574600924373212802922260201208548992850318284644172658130267713373512183595833304567787803371028712099191786260305159990475554186504239231458133514300998420784124370736772942119314669505613671016104642343518815412287047231156195077427888365768750717887472826011014179857089765819134940978114832567201401189761650830706837291279073033476047864569875508605859261835214483305524296174242357662514771276180356041741399000033206684901572816227270295199766506048784218210802500127450490896757803653361141520768352227712119279247639459252908945790716952836609457489487005602881268665961731490276729926754888060920922047705486456946462897111250347375997171030072870399034074102686277151564653306511016729069774310136543396794139149456950335036554191219763316508146682210109065478986707632213885862229076702958812882333284206983197823381807861736580829732292536490444542176057398041019614263053624447018500337295879444146522097510315212055114151592849727204061234687292413318368188230459693379352871535590840294692174554821852674888174703758558597773527769073338102350489391701437440116899881043082330722293179892725385791268845501100974812445287042760503371534912139390125604497050141572280160461386677805014672550740902143377814119759611853637700945588887974897099028034367779752016007774712770915816956921908946175827352141136364559397251440394340268087425647622192899510586693908143623187825619601841942429738782379528389820630318689482506445378743605110483770797239127865787369544225066408825599399020691313012938546557479989362466892413064592182676147630665129043385098034278408118438190284369390375187484688837527804541067899195680208250609953570315414838834835729561751548108053344060898291031898624837511799907438268259165134853928460920157707905891963646672918825022262111741409163649542947696869157084266629032874859337705949171926216989159709953538385271066642355874565427908235498666664700860079573931686581294481629972212218826539107014413454819511165848819121847221267358061589665617712334748847059570508757087766585589428934725543588394934001645319190473425446074660417104929336450100878251604547442552888892267164918580872301815777428245881701512846390810689786535129081592900994840079486177307913446877966340867073544163120275837233045181793502626995031794579466260318709378470657006719502193229557636011902923788291795248807659131664761262718556408282726300231709037935996963705774896513313015542292210134441228788442347190049772304435293796213631373758807547821177963987419967079964986699886575009531781092906660867260700553309568797585689401785767118879290309982463526379226096061990305439677515607909047728708698573606527752377835832218225985967788806703466557071597113003263722571436532704932133109386327284364723237515992198766333003760966033755174914465116466694510261224491716539209961431322982934559040186009860198403363426385083981895097622294730710741619522182843939882573862914766783687730309496993934802877914758729397881727126896832017980040381733014033764820062964055197787412784379950657929134655136141273785776635283134660612049803175387939661298871537095330718482106284312021578097379454367061716474935087399272325477067783989136267785173757002667671429939773572271488706962432594100735274746705540291156270815503907559223112943391433908256598560317349692946108601361955797197220572220225779235730787021693422361462022658910258410539688254383009964720445156413662220620814306626306279977690554436114739388285215846064039857004838782137185456410583917883407839915380019957993131834664549976461039790499827944618574079094550548166578402185160889235824464252328149794771037566016281964978800298267356432883634778265230562292834099212511487323707162059917723727435152630091940155513791320987100377963525808236714430437264568607743655203963642911264885232966970977593509010478358347815225659874270348554176644730365957285870726928788045084910023687086624578324292374834231640157148782896348592156845775633590953256651006610296142061104107652939454617706952547130215982117983558810090615467357917097077555051115770658660300386515007949279904223303786462367013772224604537342403912996470918600888207711723937672667411612888645692003889751782158224455015850866363324938358781683332706265332001354628962101174154240904139238434430160983620353500125256315857043518779320548973990989361196573201289714752083281464481611473681599156576477533311213986914944608117797858729835697317163054700040752250018573444804885422148033662997031851720562110704394585148156605729702187463814928450186448184308113128233464128432675035564366992891698449265692884378022846017043252998276194243913315201820289415064640283710157240539892392075307076073768787319017360880868312696766171752697892498781775103883820729713802906385911054533920784844006510627866481674686690586901629600928758007910449164138903464228204633460243399630429589941020670495007220569747761898342777336347379585649458599139793402025155391587280796278054813505783570777107370408906649805867076456846701494518142000454954544332707428089600986430035710301186102562094607237921111095885671901917910404553977449264554476407177371701634074235971187441756597894258232443535922986800290606238732566471088407187859278291110810229164919535270998834828340905206510101903002745214492322658088704406198062818665747077890306739337716097410315918154343644793149002122110103411450506811738615083440893943703630710082484536566811590665740793705825833191122696946905866585579411689174368692206691652278498209855052172109851409119732590836763629284976806063571822253800630001179779714849121718566123259359165739914792925454493784917750860212728797986695296882072337863569377943614215521785529075791082132245018376525524508261672982341513309510062394310496893028898295584750967455774698044953502805548825903355736592226469261095126610148022361558645233833704533075708657557264387281887141719762690196533073681743401154972856063558642807630356170505039504021612449177444043527117752357238688089231836446286539553552290612608779014235168325413728906713451175616337692236160652425330762796528362758283131239613745442014190117615520033582552894717242580709219594556345746673423351658087944954995703672613396767139723933183869959803818893400761090463095149487744950326488095055158954256607584467882208629768543955426530018756513231377508060682851068732046740169287338727440918871117651655893180698006522399395951557660922843211467678493083106946444225361758145825442033839657991816004348859453898873194105812005268609657884801301464365284511507252417530224904703454309754067021285188226731269986499591816661931768601277656817424210421842121187060607898433641334269532154876215860105963813638812294014888875990183678025140101376267400159831787220926786860108619761638996550226457368489071565855866184900600527323303406690851857254536241820820133226409741188550545228304490261174970684526614381017829018864990381004762645403560199107645221648221273658887857231985376282369759903506879011184921760910195840131193969884715473651806128760086095709040755921812688885357400385178325726687400489223207301538354629695261653849182271909481478868322614689178338424808793160966033112858180340980503368714106756648950071648808154577263409713846870845496071460865573813412924662972485531944430536648706272465104743903341126183927110812095527420056704577991170626631290143235641523241738687343439053047516945406889144497735521433559499319892623320960941894778741605935912475793416139553035167061339532840014778794992059635643025875109604754097932701114486376961113714339436474814077484524727615677790574968072176476448245179285403929674337182701360992683743056579198455469493988335015923773404839953523763937693513200614918475437228990648119969424184112838074926264673605862682936360055529107817545997615541961096416106794420807368929354416338271901814065557748559595149768012521648285438773353738079191998687836790438605545310712077908173586450953729889900324544517617735269147749861747943948612209759400503005777250597346438522299205440430350362373005137682223094371148868225604362738079533019739591768718542948615804290560518767941731670738576006574495108691770224746258434059360996139429296628591057961992609817590484742833349550194327497280770268832399322060027819274136778244152973070992585018171153114684872495438305857996647865100141785713719837649048144416094742214211179498980269776877263475169624809009811258073574125970857781828135951612895035905305599278392320320224675198589918783379563820029199262745236594262209293180098426476179928542425503809611958483175692531155337024874575631420010089741540657459311302199388698300194253054373424923181712049196776933492405613787079980432440476167505128311767370875062113071445386169404967190853748624817052558061420800684220453185638953779158763559891974835051148401560538572318888155048819525584610033387913132798661114957083432115179261573927067258005909814575721710870624914090759376208902067011517147108816220231820235531671930034415090431022609541888050024430817120947156740722553399625516411386924037641023101167694676297769650706280866330571117973311683456664238704655808761721574116009477080138563987733494932077189270832550747269325837198897481861351673846398955051507658187134721318640712904705042963360729715399342365994152635781083259262836145726732744245494720156872193467137643043208357715447623144329778967425441708929295601098666902349244549799221155198844207194505405754334327925969400100513114273781153501514459050584417749853197369321723739775312517583173976029248999255972604061767951356578059366549370722235616692719681381445698308951581481493907961970271879401031546917360066485902208443937051055073887930051669980065023329538915178019389892433631367343188259151899263610249502111197017279929117744864314159075932062536328838889060316654055245872197014368202761889137296242703895936282159822024015318626685066373893870151983399250401398241310366496421088307120446551733351152738801144445039493017974865763715905464895240169435938228791515134907878566056977714014123291830449469196099263087428273871684939598238966277207931807743962625369721378548821612615798325464927157226712082945864914950569511974097450149746480241149140336884670415972100255313307241055830545038589702413923325881039448738668874765909875722285998805708941475930629868918929847280195171176784472640302523765416009762148795025889729457563653057392090986014341317249318618672776629302762716891938674115474925429248848432656199759113604437675314348293403300035330185200969256853722023319522506971210237953631954244801928742715201343619011890408572392811080065359539957673136325560856579186234955992383405238162125559079448734177190430086170868177432270220740986345803574297937838507049925138707377902899886468554086309371265753620023193066249273039725380852497385513737075037728229132647456654649774365612266530303996858200618449512607878170657351919382560939796121533959121378024942377022745111799544282557890412593313187971336262493413854187791022748431111246905773611705777737969865384915791629706144106391625218916897854535802736666566316092980305890469772452985941821199666131250828919241533077947109918157099500848342840709791386885748523480194480583284922461964769787234035430835515062006914077734121862046310658659537004196185861354674669595631857305736549960372589467742571141479287456869876717759711194417219330875162389273122882785705953592165042225752724826297371403605156387047549772811764994368713719282700943185611571441766839153963032531519087907226829955906407292648033934204953098204379030172299073832997122555254917564789125873434012804049466268598373232439686090256925225358054153395679297780110278859150929841794729345477672636379666991112424980584279006806965140083939763385095761034563944091354526376099303983506753734823875607187408199945870960191894209138917316075336381780304247729529636820597334951555497007412779387643294910075598892326703253387377518482074584721663293380114744843028476849082571695543704756169393143548513499280128787704641179450311546112755963601194881738690267458139002748747954544750915125406305030338532014464658617535069180103412859318569266661739230375589598393012512437042006607954988490625826227253396072802845374796278495814040862138371890972987596467409968079268122489617764471369092558330923892788990566468976077528776681371294618457322420267984630025362673091412774062871191833397008055366313890075210883336175422069274465223189573301096779106145643126447409300756867519927547297133578659770561355982393822870971269414515032804370675361670386882531038207581196180942395607291297066781583668865704251542414895811147570913980772135102188559823009557123295190430109241447244331435887363464328243519406077613960121855548090207234353129446156967083586939770015824136717360335447492997306959651296703488616836748122906570785174751431959067690027488792804791247710087074114162993632824182996353478082149851831277067966414045040925853850307634018594068430051422367170050918578633259659611852956679222168121441620933363399024081114548909876662698805699136020116800561769514038653385044000222287668904993790533875570975374621500933895197337940974373194328609454961928055005718991468362870700146338903345939241609108694466061434625043983564478785901931653675005219805269213397594162580285731528930465927018350057358468865533681937235212070845924971525330956632500403514757521705734547686180307762507203580071865271163010216532880310536734252790175638970044455722869663745326573657010544610790189029387594032137198255493121238891669664721126962906505031162593074023584602739083824293884547811122227292233336334600942843642697637590911910708880438758181354013836844916562849245597986128801253268951545327410081583887532986290548398816433890242430899974204710946802179149216742656741512767868520345493663688965457303573412610385145148886628813297518971275111835388872995312788562096044095107096631086132985495539609076881014065218877261377601400660214241614321723905689154583045089103302630522707347539391652619244431369617976223722800472619748681539371751154178845309548845824307814985034075265955608597948872153576441805449783830696456209745997699740112846456829242273828340488039879223084846537785770256143814635004084798669206492841103264497685311982485309743360114275366850309507713802434659755088961232715674159629476618159407622841225870828505103159259381453873032562114415656863866342235287942125893396500579723387274566119328457995532982486800301236050256223683441598227051354648148301018502339834904558759257904624509437283623028137935712035628863733661481856925216647045639725392644267372053540314466932286856104893817994386916867366482401418144636771056492137493089195572469386706461699592014480555332215033238422064305353366639954543164106482874346626950798634314849721149325849540201423284868815874943690071188234780692630139299617525335798109759580091907420101236826158337708409681794765882525806895589123556831414288635919008343844536451708531253598180575102756878420907823973051073565988579506236252779158022281101232913874150196444701635539503721894700041588097056636113519498588681704583767794923279569436995701834450856929910076905902739124709234548502277753955060088641480695666162762788443608832738576134668287032790660149752657134308392870852486147195062038315946644234434963450931778124545813887167806364919293229207579246233692364548980035474290429883060879739099534323577987402989366557378877406031380142181321496407252204210258350626573318511634429482345683589492210342991462973690609704012066707736504978717099878469278385115406470739476614657669182127625715822180460471844960755921646843144003049140491065514388017325009906910791726437081582604201883561554687998089290267028772730788558524174893810122634943240432016720693074629282455653862139727151386572835036462468888818421459036540162145821934534033662930226648590270402363961498019540924176922406741237737864152205137164447306878325546481301073486612980287835241396078141952704446629988212987752233849343347186608836677093779199550195430444114871268280039809202019725817664441309270335615766639773433189098088057941619245410973831471888740021303805550183517954213638561338878914386944277068493186522830536460088088606238005002230192938471650134019750347078565625801354265713206395141016124567655938956787616315891254885654023087093708401862267032659869339598050189044760767194594154367267070297585135757281086677967428937895556773443857279979346120471345180210477308551626013714815522960215384268085707735425390328605759181543856750306971369279377485650498678435065647792243796079017755342968020034850802805473548467210695872156160627223260816061042805082777203162594599890583419823964230449136211641530272322941613083946325196380074038439935682055441023726334295799276126303425286146102384640531232993956055435330746669220023384915804189449810311399999932214027403579619532342949142820936815605453341807664403820363000534219953230005848232536585194361408365438212379067281459395632010746809042495483968626851778367949694010461719833739154291809527539180188944691755761851083398373920375646160649361630069134455228351669337115983191957149760696530681294391718168715389101730926638507906929849771776547890367480464367606068880736570051607791429104877866652543688559732461605461242073196497857660140691241952464464111841953461225008478743465896931971725853155980655096862905840593147719814138532134257660512946357891459446880058567851226436984366148807398187657482717569414164361219484212935358489743699543570640292807046531984094744296237349199850973655259192909859163157497065811645327652934144691263196037563622678641962078901441713909011374611101280719683577260088161695981218220749679508230383326398046519672659098652896969006642395703324953520044010899789887280270466275806919134957101495261592914162740319965350541465154268310436666749908562887518671643318372289679575928080604829331275304106086784954155646134652786141300187103408174033336230868929601209016827078152721248333578531140101049330757538856008733333260225492061784153635058531683196279403736715239886911952846121495823814857110503793182995072388255061178564947778202003731153818014238816740377369252446904587732485720058517534322005840114100024034105540831970778967401059650427356204613449129355632862050402403093235112337696547666118234622882974264357996145472075875610854863872110819683167644738605194608307485637524877181699065395678156777822399724863873023230582016074629742622680932762256196305772082417646145324576562966409483516169923787157932633493500272142277680174685882434488474422387610227014665254178400386407671811849450955339307965094376165801871011773027840092273949905277066766373494721963433634560093966791152964549976521145101991276411540507831408307035056244599126084111310510461882253020766284818929424461568157260778061019814338338045506479816679478328209834389381755554788714628467882557146753163504622095405228933644786156498073992542448830519749548068549641798592146046194573236389925517062515779668574790327448314610359302051948546038111193407025099536927555135143694607440977776479973458391071787791918433823722815865387456276630348775796580765981992054623551029388853782105235304301134726512476160003952155618368627440738427432888761329007893552259097551187131017310891605344086128712210367449883583850631953618558327049804090615406291408890385706415356551278092512499517929259029933341494569353727275590784740701299803802482974894339015861466280066233783958807778637407484407989723164618544563806007771786782419677215411292190099856363756254583213238548105346273850848442513508062234421002800664232723530853286655645146127568679839709866274328403731923448554367398446038195068679600793575549652593782539935776395440295492073898851952552729747837703356423030342045118950681214924431775076533034616857309658077956943174687876442794619480197998314797699961342872737698073970815254547864155340658676945343746295557408453574429757550968676397901046454962868931807844557078062655562683515979187027492324268828322651677407400791920018225069330967386940437240425004970210880911281288610689167122722343059407184596750686330177587642597299725489179813292000273453530492298518816250899648879567753472662203611854261426789663482324546806106746469114098860288640841381031045472999176806537161080005833962411627393997993621767980922042684059853647757573435913065291711882592118437321120061944750438816132451011519717630895069374032012588500127184839180116627837467130891308431974693116185732613953405263323181874505283316480347191523327478483526601741483351646829902332853338454593250800617408893798335017441082478948601536062807442252568192977612082467437394420409882300741428480909213769793282704959867108195708199580395665579841387179280016922705989834546291880289082532695234605110644235368975085397270154941879460973413562045780434870971345517700347426867761666112471407228474371671338226811636894007920180509236324757251721948092591676145916366461517825638639676631488184707763792568402101591318327663775878755817729071815312737792977057249792750577093075753062046784758338042062927305553538943077985727277848159195291893533357898413317318776922172149975355208429656821845792083365051741273735610204046863968474605956050858473403833588447567468845571785726694954172011108269215903016028526935648451359537041667137762436056474435749651020000831450330703002297746364237429519247831152385157174759465333699500198301672433335015043031224477696497929346960270402477587374547989544650177993229911243136986378386302538215175552160697762592310222609071563409682384868261950013132503796800903227542246026137377848574789862835909523989926844662751956393082796263529198934111209567277688502590394063713975897144111461715589645186694885783893906460843506114299810668040607338490602050176923387734856103535132924070603417118170861671105599058722042269471187089107210277384277002765803217356426040292913002022656242874944385856951601777654394188720452164674106148801795749175061044547212738811746834886887885367958508475208853476638104779852055685788912064433593886557933463785299858419900862321893457520614973962161623213117842202376317823632455491114231007356124761079895942663368568872369569051546310127908574608774864983548714533562688641878604373534759620814415943915382616884233412064058598776199993057882410248208745664884196914490834479004415527813454992057539124471623234647184911838008398223435716061366226647735834491907026903385957023296473623297839513963137684755297618288683155840241505282835858122170953108341786134128681151265400826096891128731071859699287220168579481828516387606627639007353628023320544086375566847457367466301144875495054855552991065020603997230579863406870835828634423011072283116224015994592983277225327588791628212975150893993988517926164276510360933210898804103069030066137540723097442891383206652420403599285518631145987489419961954969767173548872219509239115076607361017887009865452687534039827732186371709292529792602552397117063552412660330277414375424856898511054823105310036546354641281325285458031254707407647708242869872534601725076258813880587617280931387973396332215951886515623877028266933257821195349023531096898572601620443034336481933655066436505688154246924732491923137915746883619686727240660108370535884047434079338645162639084452411271579626181914814196821283789692099152281269938739167669438972435914795137783313126993486325908672440835454978118320383007257914673314939452202865899906285324683987581131613837385063786074931522359101571386189216723627295391110174661322750840436960865686721273331813329914869252833867458839666411812049465017732378172414254414711041729374356084782912627028233605139692703666946214260750441610864678934389859504496917602172554598265118099984357636546745881551316984730128774402611333820245216608839513597526694143170902284421477464437406039604887999484849265030939061790573400827662460361644527125523291626505138693973069299623694199070846440460256032350949168477139615990090627980150518126231664342527648230270709099630062461897078416920074646724519228216663637291179112646863544896432019151617303023279243125700835714124406398968519705117929238060385575009383803599998350213505287938628001320293964265029490426566540372398648659899218598327572105578268288589655513093177112878351271549349239170780304790271386563282639804205079221477761571260060799314088752502853939129960578436447879128586901350059460677031712337038577053105566521299337303185396289112604476107460761222461980890313043108607745648457893829246327602094016065804741705492124882203488579721902995506343198143189647397266812407564698369530361620895698290807863187441564232711117487001488450737119974211058993719244679418080661228290046241731660867252624249324856611395996903010140016582075136204717672602247439173468537195697613602875096149874138599274391763460142728750254888475798627678051897992313553718732408127979627369024558866318229331548789401393598131831535140206330853008358478296929870548451611354356699821567349109825639478051456456992071081881927086981034485517921633760972350175947193021486467648362177675036734074232149090729828029357968951359253600079593047447343632237466707567290649165228683520895010771700424376521683732259978399819499939574849006766719465274933036770355658641633384774423089512298088781915611756376617341867412990370341712782418974670608547274502063855543083320298907310995656645468705993222896909172435894118997411713674149100224316276651717098198688430897874015289031418005156091203063999666006947986680891469722538606472088770296786320805968435774975023076635345797544588890099427662397431419357446050406348976230304943046946657378673930232447369782701589863314533400136662233579518041215872138193907416897595813558343312570284602452028257614077846090141915933654162866182492193448807667106719132845831595531020290575455795956694386549397451589687735247567613838218018974647616345594255549342859281224613214291824997620270345379207636735307130245209996628376204852146084854794241919323822551879365126263384462426887231946813184674178196248344148713312002240550198305392054469241363237026328516665250371627512773722379969233776640462777772583620906104946460158319771132205218437327031410000665213788958363108919222369144206507008011200344360873556836773775708421085792044671222332886927222996165430288903036984661806150952635416996077255063757734625099805990545110286044760378147602495952446601456793084904252040277179645825496622759782656897745501775206919899400970700022656973410301595973361890147263292251700220890888513211786368972747105686465192399454174810594416154056030344219742018182316485037681620721130311288607805331641986664527820089466767707890598411010739283409092929532676251990234362258420962761519066134269698834910405791039519455138993884781051022935075865368951560275692898321291679600306278264324318655470986740868555076334359725855552704273125528618542569064280460159309237751867433324022117543571108741581247733698832995121428814484154503000762329256398667275590840741824950211081634304067766749796997878992466224320099115145609705859050639783912716021583364977450834559203796873262417334770019631679681476064662246272303657924457572676955877839025217449161400424888288795970158221116338925607678558987292638802303937531743210257118812753461871946026251190657110240699335365955297504023691916810113699400043977240695029277403960054986466741561878234413817669617786821759432990020515443069944576475094164295818117889881001637007208654820864521782914153537150271025282637768166626746901065931511341155615963380678194970729703909844217931026210602358577167124865893765675032713693092055766142708426763589470787195796285510676009142901025617379535608579904253768851897109550832134894991585864750310673478925502068327108050870711501710951616063721392071801875047512996104536851776783532450436509779699678924373404663335294432662218704913256198429069144690802753110567448158479850278348619639531461459432259226955712264476992001663432826564209578154251586075838837635759800542919941769297778215638837379798103452854427747135901516430984111761635548483722363140582049275059940622370968544089754275374917721139243035394121436715917029521162979354809854680444041004833126046646959622299212673081154592021183578260200626077194179427002157355677743372836404977836748279135924994411337304096785129935881877225611849306608441875389503230825819128354519875284548127966131708156256944887414055864307317519206605087489993288882242990634865655367247744516533536279936420996197372459053226384203743135329482497106174166196015561312369965817459954976093951833309068981232312469879972066408793050547602544355312268138225314220526384441280251468622808637427691633154869023917157280364315073629351161619899855031834939005451496329919723863097817856251868196496287288203797920958675193587267889998520311123020020985533062033095331820795338304864703712764602565598206361350072888533313442155566445048988284057277672489208431687290721051448965080720799167021917365232494735731443004218235455220827969841103656140444930304943055972896944591017832519220385760934470522516481902114961957770133267505092064954113431469448585586689887477916070205897015954884789362258917984153785943008685215545623058905776351259371776836123083156435222419917331510548884419273755740850058915490962517013270436089252080553341601934620326502369276462325796608090315464651854931992726835466124524740610963733141058893290881408177535420984850701617747434340864085205366370900562993656622436517814821635028499733305453781933511719656212355465804806817671117594814523323265856419688876189175030522755122346492782604153484463850016938853213986464794610060601052405350195500382221500166173973103332284820705277284035382372178983504905184254844885497696997360447054629722548853329352624028376831628016697012769442591509784547532502952939783111038439992785925891615082205232378124245896739982457419067855082765524111207855296160110004585971267503822289769143743269148591637529324611695290787580737272090186131486662524203128094585069739013144391586305911202028677826581139783505057474569362722218515522122121709929807812515679386273711226768158162222090535356218012520365697487202688637338817994329011648543068617909535886715338286694805848837877900016853699310921091659543964554372457471142003256673781408368528028208356544816423502615984244176887842589014713514905463140330012225570836769144472587537504246161885318002126636009045992267804441059848208720637971322444702629696835819069016451707447914341110054711843191333879771480128854422413930486858761421078406502166791357526816071431926930896081981748957252722405295052859052382801609554369881509228422367820078900723062785316360664437721215908378175235866159134019901146517435732833035471182301896596408637293247311505883147417225567602889169170750646109190366849698212700358311257527667608261769453284920492768306647564524419619272834850116593596173979056643833445265952821160745302164243695957772566457723223156757648160693597974250743555523357802033162178157182867013064698245218798336684344590407804090790601247765310516321675272336355298081528154716951276914847502951553110916045819541250432170808056452087627705062339981177812080064846341956301376984190268933078508999412013752395077282320796259910574424864059432345353150454413119575462340032301103771297783318911011918884130732843950255373611761064653817763982575893321407536713684561973567659461623475602431109279669199058366725952805636634415111414620057173750883215426489338018230808552466912681621887730222979875296681862102056045237251525697373895297331411487500053090284741605062234154311267752722805909926738721051875406905766069826876559033759050818853683297094585065856727471342561749781605246176738505491582006470718678719107365173871068286633634963568760939814995384395189713369812906213185843132653146257073671181704034990531330313403058899020395686805778658526261523376462641736156844433511622826148551749711803196889677427302405607680359451948654417277587455579896577848375653455437239101075531522566673813855480389338223117292727213075755875471088979978403998640917585149341242635925811344688488258996595063524246126171372108189889557805831640135225877291923150343165147015672643656886165022213303271552921029119465862316743615519508648895377702394811832217174901772763459410325686349839051859056932564553694901132351559179827861914229049432006312967323827071925484160555138675363894744237609263403538053900919517246237549842778521683580447936467488700248411946212793445219170832710377070208689108131907530374046276846923276890805174000017246464177245148581446103390894476818614737658975436661727747274407452285553451135976819420860643572570029809532135587101614859448097016552605048918698676767027082053845488088377558764216465444870280716089689216965714874717994551259165128470306900790143126481264454053689744845606843845645952910676480336169679607988168976559561182624965218537966057792817166906134912369684766030492426981449297203932152608272251692342820801801728192083279567777825736349335176764653094030609459566028152411530367849900713155926559434456518851322916819539203076159998565919406920129573720773612434041848228186051352096774767079346965192766922143284052721378121879849396348118274980550747763192284252647719648077058663852378623977716807292453517086281181628559283962242976672942754623324133132837314621684236098345310345682497190589700931900229929644738331822712085119389137215242282919589574542392637503215192479976468670737640517516534757658564556068716326724244591168072008606411943297934365200417326904410931810941582988603655122233911509171165190858430843471921891239387853867394685417694372840133618512002363835925542052123475483206303772111277562518137518042621458264279331240623682495535874352819299877751502571276577601718519535230712134814124289278893858932353113317420861701097084058155327948540489941172623234573021466902490669234821344039139016168782524643753832086773648535128660079762149828750317842854953161107695256419386734309446437748557669401241137473032552164739613939913700034416331145062285010927395741921769751056861041772746296882094143827502787741164016592723946983563847632291270540207653536161005866066930331347682186402190342230255189457038911686617494179491514888622040876039651529042534217674340594066739392511409785246084568033153304339522896980109722320733907965788858936088245695115985911329564510515823447882501487571401893536843675467554074961798741673260618553827016482572154107749366283161357610673683570526708588549630916296873034360003273520735748433815062864870294714200833087845686489686754933066637828006178581906231995777386635678386963534731387932732498747885369637633690573310629693743214472559266224394200123000642137348647493235467407064811391700347685772471207859712809530137035753027865258837055536771950066959971116268352462774588320914995412621593071780610200846618964731433350890029620318423223625751633259181889384577116216876423000688399903300695444229058638412730192750553582736712859066493116428951307878536773386747400664439397454389154084156694313888104465933099237682063880803138935683542018463777751627961692283963161433887086156335327536552134851835625362693921353256129952164824623609106025484117220129018408615779247916189480244846555763155615826126999902341528793503611622385442515762898216859934925194915253739962952622653561000788847890882065482297630184756575769127389283453675682023254475563211865201846471714804347488190494386795527232408990041276525783435096187858354578333953977340656630391260076770432621254101920641332705606877402877550596171874528520351485850344371026864558099354301808034527317459857146550745462760335111320059537199125253486054064515060259286153061901496476156083603502797733530691927743485226041334758652946543473535047075578608435347159702094308247079284518553859696761966229655730426841364685147612540008268695819895810462601771933949916247377430606860444922620679640591419716794250234994859844895733820491072206031645346998533113458701067189975235471763030078681028160683865290010919407686121458732743306453032473926453798313672348030505452474647920086812860872341216657381063965766325776357437731121382140800201363260889043599372119430481417801343854277583557933426088983573499713996917253222661501339882851851194935263934768725089907479075020934587125728284975493628834411891983430027656683316526979478938218095338068199479103773230653723122118443961736180155163732650325090434147603541795883902214247058855541607335414606186071859828543171911657512731771701142331021945517470777413536370282105390251403682168414022307786934383031076467967685622992794296913730399272451604955843888732769250643101205881613430802913259998664830560397931865908808399539989207295283465079934834584488679894524976233098255702163724921082296589204282330863862988397493584980381855729113971685502644844281743858354507017890535436381057194898314047598640301891021131028800240391497346200244779161128936387488719402722158275999035715708184519677212358684129664970512463898240890290036327086557685303028081354429278695973541863912497188763242740995876552884727337034479609481194513943517698053982347754446887327860487582438669408220658013933651361579607796804173661129726270001289706506820149429488098964596040809462073775250208826155944926500273703182343113685508679430006607604619845987382911390486082997640266034667945676555177677249912100759312161822740177240692721968370011047152510251412655739406440006410949715797299056668690738112637930997217797768500678922048756186227459218043245755582240893488166083342470567220830095255096329461517010323377187034400970290364801224782091552111834476159732720417362588834213113442565927410991738932845501316975552620678008075130789632782219801622173466951250575327399329292667140968203093541876846570216596103540088070817890433767028758667948416012572261807756832473495921089814261825503106130547546868387617842423839827114524604150708982132458712006069511745682577757232311922642064974103941632034944230463115709831184136087015642148882070453977508366696460201012542398073115256496830649946986617574219415912818318836249928787554832946987171738578368820818113985265936758082835928125605338325622016592439508620150692185307203788580353356580206826028580919452943237577667013671284081546471276136884335058134333538524001656679630632531033541920117910831043847679056215712769229897228546160697984772495295949219877942282689969161757308205149627728794170513301506655946202318393965019641948619407816124277481597233585367674403301418299005399356926055409029865628440623311271748311707902172268954338146183848917271418483136311109023020925377610324446408609786398384276673178787477420367993003876345749068132285495874922209894238857932558881344169582942127769579458140919236400289407624621676480609315839308138461709923161527047940916303080746872647427372879935877140526740568392322581378216537858759946820880206783909253212028413495596568213957327678329521361808588402320498215720856889689512101312947492692452514587283724909116707928032981282944613658821619977917152811386177709074447950129333803393697296712556594784411817500058139468587461980896354004653150780820949633161904691889930781922800372611350936823053207125953462532288555002876862424163803607603360149347806213921981893826506160604944576055635285904717812896650571650580886860248395026501875895350734750153182458833510513121664878796355624728816667720184123616141360713015374743608023663969692282173702899012931283830328183842903284966677945033403955518602568285135151401044881216508895904282839927913725224590325766004806935349764591108666218203880238845869421484699204126502591660085721606202199243641741275848899289684132437618915237878444930463906548589020498041906053879019438158540173635860952575788438985170017519017553534604199221591174544100766361430981575022521105639688684887701689660902532347522267272606306775808627962210287196443138405451085424647813614319216487979279787910603214926565598622143836145418606290926440697825573700177927549846189356095316823461907426141021058550562433728242990631903858428602796625289443091950154138580877383271157343522882032528436254617081855259628425777474733662832506846231209018355354229861658699686140637003176609693769155384689699581166609312617219705979518765502915319315607631286986380166069719875933477206130986429987717969131748823050408407211292551258315633444453274583159735988988714004122809001419181259380471161734609899649341147586321352947630530665383873665067839056256848765023742104559756377700752512522898640451975399623465314504939881595682815717960607995189210695283393977287481596778325786678960504696246028360982696099595325913420797661720292386270330820553776966155233387432967921469809637277031997353436899645031877608569443734555324011806393199088840924618223940073121593644913358265869179010300324389372497709055979992616019362598233538341398253158405062827523541443722731515021731995177381227997952031502804235756807116698831832404724035856202074154761754715988307257415092117963467017227992925308914348588502689053683480910243383058830382233224084092415544174806697678502923984921338706108515671505620521697876509837898045694719046394295830779442292875783466059392061938410165556162023314308896991870611662603077993001422970788384449024030148115106743519870525286889821914367765331787564609731647414353940888815219276629254719628179048818420266899700325337069728722896225012521416387245464080135232742499556128143228751154457555955338224917295794222464621550386919731056203453835706383685615250912391112804106729859556009823438105562254736228467943542329151413015181915918194016539186753610244709780229138222995442067080556035107254068537640017823526306802653705015488011728343452535056365869177317981503415470872045625127741257751520027637079226375483310959539320937959947342939664247647247039474391863583630546616492516518678050987231035572660536522395914504335308397957071166950439060172473164601224130548365469317671743826803244670767969350022673989243801394067918143254815474584360225506181961428009450629316998222321939932415301384082781272397130526546014704758561743242961132476027861493859351090648942516618458982831384776771972442622315154653555524293522046230417524165138160573477285715414752005043545842436000901401390803724066835934749472616647145929072673884355495804830859676843482175673028874103757133637931466456371474286233056150737224701837009764092913926531803724200329138848780064096115578242344406790644858323833648974093579813722412246222719076868318714494213925665981040393967139718604982323879221983277506514917099905886033101088056277754463445143357172828217667083218804822063337444287612017934400940718521996672410330288502318577325502263537100957673846071930129034008768322945032130775029709508218372791920013936011883541378381441706538184896244293885579926257381128750413325433505215162635144459745924932025079212655480203858205085258182740724140814418600790245121827062056059888235658833000682932732680602489533333627120504421543642505353088722075696895229413068473105415363545685739328910475677751592049518376319276448743089456780480591995219878475532709645556689257752484227175348955565896561126636975612244039424810947039880821921699275196459070162626287134995220849900207590126897057880648378215215091701725411495942032300856857197711399637265623299278501702279604841940410267097316293532587127372485363748122763822671991365902530029914702062486747462241578909624789401742257850787837829531858129287487667857511331098841859342673828284026466641638556718140899983607484545835086718676021252314667547083251333470230913540148424492791175679379448933475380932201832551106980021424896431052503139290685788786300708534821745113459426023345885966420253744181331251191202487648032989774872708645940116906712380683456105568408035147999019695526286301986248432909991130981289525721572556704235069996767594616984347010668285455615050582780094919562598128344561600929545792107118762000181047087308722974040672725711056334242754969108153782452908602708677842674756125580643651878210075280115347323649780192837064570973698297690037023275757998541538255572488410115573250304847594202201019104146805502143883779728157185446978332534367747897263111239736118834871056795865005398394196556760852148608289723375732228455597590938848198737885105172188677654703217577764710260992064750367986411257453695464968219708145859753349883983532418040480831233785072289744186843182820020725210786723062117636558969852094691263191509980281301135435888863504281611165001653510637697096327605792188917955215616353083961945922061121874704182042120203077723596295816918642846678495433651565765450333936392242106938137417530628911364662699385731505162082950815777956311199534761928684929003290279107249156633963605188301127210904474147919192474824917418848576824460558352650967142477161862933087732102122342344473944326571989725147557828025307029615751441041162430993958805453015361985052933748862519699616218351766490260719257323021861792410402787113881814327804684310817840080446367382900216022780595462866469653269306753875194480956207324035489987850502132669487176660378268898237723354759105156325480464756926174575958345990175654756539997751339234643241178769208554537887943004314496421444434668794677396467555082879539362260554527198193906582225844609677697229500091936224459141272979744952838136502342012925710623965682198467117449107247765479535208864765972393690254455089354787498463102134401813984372916543603908679459774025821956457331998156388690008950937320515892932460212819635204470684796394492993610186027349476362247690813187150402319789940204845469794594182573088673895352348484098912175146152996227966762866524864806100503210055154373511032751383408046189327621895159010427679015657691112904901502487232401561067712787459937463354745112358082258439109600246562575452204606732188688860103424295186760907392875519348294192199467238477706772720605775260507961047284440637531188150187037792419472782330054984131873831550043128300830782574627265138692328073693995809580893876045499426538507398963528429809570345567582009941331695263227775384992749127209010360549662753606452057250666580679088721740590265299213547690587723886350607017638440135355206036495863198583042847946191308118244782166962056353305432182199328032995442035958956814652603047022908562608742942242206104446604491257837324017861504713422310336910816400799011978886682409514701666603384122132639208245892461803102260064640641752783881713770939403995536853083475600407151569416801108532854723421247702922726631144558104637279644521791436269437334027087224687588291072236145710374187729007386908067446705384680161011229451327778907498816443318441487086244622525623383118320687968591114450247918720367661157603915391468410070087168134430561936467220838966828969046831843583383957609680688524230371386446471279174146480162124983749362159302865199720876395985247373121634130611553667948532231243136666602418771609267860936679925377366899047709171882429723211076477805727192041554218264567670086068799270958954108926872894273416755695263640062889253945089540595181864051679898518679760193486503399987009741974067665021087072902918441479885071581994204830747025366030678603594479509930545212455014659085674254467649480312801446058879878319244832958395461162610738487857284738030095829106251356183588152216979872305042840204389135296793090736958584779578923678352444602811148860816727918525895523367984770329282133623597011139984564838535502520668376421618120827900191788644204095884185607679238231159473326958349452406132607350373533520734095319420090840839206584951788456680342499605123522308493239831592720854602662758809642903327037766659547257110037550300359527751811909163451086832914824388042179844659906311796675309192176277960561625884698901346415915800026021439766200451004877227848565221249081310459041532117644735421509976982889037107941200379389945014522659036575180179730318433523342010433360833219041115403356637932876679232959943908902844174586345661639312730649818101918130546519321334523410284674919724365822402470657852893482259904477191894387061857717042724827614453924119955682184700741847512833046043046532603879312402463851287901259433859490145996023145324229396445627632558400987733406296695266647263446336257049870845471443743246554003414370589284252026760733517475555568359865465104780530790958758417347107676168394887894400883447545111131136692762989942928513720676196251280161200761650418513015780268924313417293652139706600392181227567640003347344885290610293313963391388587941936338481473144692782978504322940023519888568307363898937171765624412221549370754922644006554550194249693968036567262183223055423281301118457589260973710380855608470879848528072906737856611905052436847519312535989058436037709945676858549018958899190190762776884764906358349469428977783028224267551262292901244888559256524837505293086463014059990987883457838139815725800450742961603058352500160144805449902659800901077419623938967517479250577099817087544900594404381263928384081028094724280483357559738531163430294074017856422618554139622540962643597372525057104466133826664078767989739645762003419562271480646578847212490398607788940184879186176310021761586730538931330807543623262177314872603229629495154554414531459700231434923768616625710387599922557575617668635785113675366708918840125430993047724062360626325600760756248752978200890650305831264466546279083146287023305143778395311091527107429934288910886081585530018584960753539326205091777012689674369017010351534903659198613308611382554688921017973756885776237851563237814695387123093245988846631309349211646589731107356874063160048088411825220118152028225216823985420749834592997270364987371118962065898445079976860743341359782583330026459796428423177319380963448869100419584873743997124622613862440484294234338023398201493361360528567992888121413050089335495231099985687124648676890654788308562681537970823625739675977357178301673355268953313950082272813894959722572687531201931376745966694059790220855760713368838839889139513117773334907621640909002848778684915634576887142148713966378811278010039200041310027663054272019091229204712986808487494377722507816745946366884300607780188720471130521403411533484550629045625713488717128729800122136901813573794612164623291767987275436034725874650529457533704739278908036946069646876082294965587117598779671841344529277977275857075612823979325415390420394499414169172624224437148952139312786875773345863513604918948718071321771075531150989249598591066339969520971295619724821419698791656761354487245701850816609906366303397731173294700186011443949570493655824605692802372350357345996753471656222808934204687189203424693253166672431110775241161508781048799385606150271713380506519888477018756830664991543999885810082760169797709975372084669960273380950985223195413492695710889284364311344457280188746788143651255665308413906941220364368853809458124005669610569476310218151913437034038226954072622882899131279227740048284768285127190464114405782542928459377386281998765335411674032174741220550552121861589997973936067674087485283847776566358035661318447748738993936808956431214877238527863729721208877410975341778705098282413763696729828862720308596551713385273257552529485828157835047985050448697353668100366149561737413132533722000610284421127369117246084859633416518118591105604848593648431147450992767305429932192339498786556113871973255227954359114970619305368583949105397625515722023565028597400247565518011997045351208987002381424070415528511943095283793119409284059548642859186655568171352597099700419677711349631241335980582339281655907303277199327295996316474247792972208230915979741349772186894435497383309903870010722319104649868534730510199453766340669526144840963775173975216930162895955086702276179630151139561656367012189189076214173175121732125603199418312946666581554397910287859460116956880842656132650312382143718636634277636312956554470872212595590982480080618532844942686623588577428094975097503063361761976291596292290758221027871536925636006830313043630913742480757160321568109896012054568233034251420411066583114493287325134462246880498105226956139209923095654530113536355007383752948763782823064335706224649604195923904550303831733300140799559620719824909766481098219049766122721653391182045013891628534750417125727036685604944813326276409797134874000144527058170213749852374909415642338926337220834913831238256503008386922046290836145550640733025418904975844769190883080812741828364443235510282234981758574820853391502256973672775285104776860051597195758786762167280127748882292476805794064831780109419216886257411316459816907851793074220414387391218873469364420117659054714229310145899599655754618553322716122388730998285348491519329542335191593676562505325468944270540898212642296648255958301999864488519626425542431038951946364003156035971592830035576260590836619540438438000194156885192941059121153719100875099717412899281888203714227624423136597467280887179837322749003080029226790620790096896817617128535556555188712112538824130687388821741941606325457538859869848357078850497309967202015866709393054242378118017556994478523070318349696646694992971294881167002882267267454924554315219528196757426533529971190567609652246335600796015900986684875706704414915356594921085299144583823141894044518828836602569482443496583883870092688011045455172514091449655582385571772072293097496629300750448178897606089197660237525723918206209981795736987267779636647501507018237234601515056780982529454702093263505522983996906718885175572537093319650219165767592071804744669506852995262047372451673259042469825008123635440007733839752462791762003268450474577836054834585960899105221786535643148201967693087158252425057002250395365538230871940694221150603316102449309110683544528510392311347046015211171324175752465114710196337843552732726738500223448739872855488842940413817545032118211181866075017474005853864815764668101584135475403925522264758449290333934319625656496883310126324951846528990682494477489869179182871835901079966849412767628812616586682105222399841272859206146488698382926916541784384340205507753478577239829737598227799040254155004435042249330114637603867036705014201955925897519255646593239723215571655274824321196046314619074541544077777207881368259642763506145349514464635869852654110508541889580443574916378983806897723544577760387738638860872289538716085942296865454599812885642462866398965495773899457173572663742154682864407543666567434294016938663167037152816462117767183910614526367177172841919963375345291510778242584216770299176420402214822461057781700726469620860365308184482079535518024777834580633310358071503344651660428660405313993507176304453458479388031978435440492366404138504280104779654554780762338461550348091444008306441381570717784573437769052543454199793543525800524613064220702106965481234628765822756789695844442491167224052368773090576647671138653772709616685357825416578941044034137009848554326058096805834392411032344877242268788599045259865614880372218920692419295104380337613569227305517047911141670801447035310368167425068131937854959762302587377793948323098772121748381833030590011112935075462598385444801504270298060481627702743533629517672686782184134053924646435912965516214777774269007712015191017311420649066087233972791826872674171620281041805025610188979564008483793851832801730410739089008722261072974108443308602600180213127945513911832140036048370006308335752178188506928200504795194723179299803525222576739012980433548622848636445087345772244332931636231202370713993015386269560871268946565602950032897886906381483473797555712627867994800759755854101962933752207392987161392886471345865699132214922721366074915348422809732728169118400484232777475838035554688611709547819993102130602811382673930209116637994629925040711363271151516551665846156482977131702835217633083545047062608458786911889527251345248814623108545084231951163402373031201088228349672966365154860584066450434858030482149570347284902270081230071692021369510881738076783718611875276742345502624808424522900786064111161238043127493798635280263470155917643819407277387725205103366680723719066484752327021406819342274447123499121945605759252815098772287680608508701835863632270791698474830928859974629263554821918823116561477055521173560642125085366527570863372998967250452861091975746669442188485541711680371165997790825572645519104966132656695382544251721666525972871476177516258354228200834372041122515002199081067932438033446234048253552432171338126078891118117888333475627163553159725377650431462341874682767163594220390523275878864477903821378260736047412419661171156236213662696246030806423904409086372855334428942402509943573573986904950909586581653444760761108739774736790697404484685464441283277459664361445100934396977545159416756381536611517892858468760218389661815567364808610628209502806148477892309556598406550064050838360408120049657940059935112832139711208766071996227167434227241561814978798667583390082965938443272546501566026437726506740623365797669925461024678852239385245749123399140327203099209054800169274487913016987085676293748090122897709288922699607699751530179586494509740243781340845859283716707658183953534964198893432552269299266487627884140492042874192871307786974650759149913585260032509439122217061708874179461918218032423001604194848330860455015540930231668308436402001935503768188873401161092670428451346041295760248334297179738625306069054948242528935434136600093149750447553601463225432066203971568781332123381329942648672320421336387754866035694226989925538191314320143820281902984134337217816066986610120103913359218183213453584136873459897709123305215588228878051358313622103671270799462619832978036140291866769393461922870416040414173453847836406014495047227332884524644927075297505306497705659955733965466145092279944143451948077561523602023616282590163561018053959877683189171702402711710834599411139350925967474506432169728814657142317023160868462784236567454363000811366498945794581160169267199399676660417646682949992297933181337779578956140652998606904471868487461859861050390176527571575716384944306571364827737734964202756167980550720808770709520500326328851370407779596988051953474545733284470455207784205325559518326737702520867752734599020069036396499137349371854297640255326346838444433479510108462884657249360031304000267339525753569069443314412185654863462553304146029312430866428290020660815688645432081095217754603171557628428517252666799315779525017800488041267931180147515855865798438698930810342289777284138426673606205582246283838259792513260403569685123714304422765589788396501372387399154133536915019489213661480794684759414627188333952192458801683071780112765887083280528490316739856115615652517493125960989398057656788330304693247766202486914374634821777941632397344892127230534566444963947394006626846083631967617157899931023834923134930700415681917087404718220539009252715194135431695930007878485753121445755158512478465737073093363388313019086415947094225920141832919005939279185944080483965013296213165663433586606775419727843269615839874662230956193803664451601747829960929593937715920443861215674811327082988076479784954653488763235060872667320223776472268635475926407703534659618468266455902985812047798553499477298368812438087050571372940377009728469254937572254763988397923526145370137995391345282968747256701928431060266102313423970976347794785966362012633305818822077142653140261829227423829424786427586006283741478066651454516831799794999114082631505617896458950331185531278573523996237113258236838352971494827200666103445105158244363778677324015459460687080729379328595472840985967943230614033545129473809962451589551947628980327661329374260200344671972651014831307212032185684734867610525748948865917563777185011900840325592094358409494870779752102112817654834280182513261570247039465495931849973112229402775741110131326698345765938463210041697827657055474807013198304515009943414728765203481102593230689092189440492628744573194453330662422311329552220933542703193229196912725305441764008293806750999730772086587821417089471742875524420538603016447338990617803533262830092413287470855048436495320180921482073180636786019359085342910665122440661434387899146993578109187606974282255148018145810941750195066766522612320922018760363700296498247343335137952369354353139078427207412606074154214075448826547848017366047361612149818925733361125468118314954033836365649888578910336865880252351767742872347340525778937528082710125398316836430739772544633882640376571499863754156157749068633947108289273514971707132383796410632509722117194389477827387790064932289267651440733728259373513897080086033970598260753535200735281882869720024945727315246689379135963643363093498191163294070799692828874206628129027400333110845614404164428342032200073212575654429164213343468355572465586837399794358992596511625837493451550920162992803661561013037295803306643426793072502982269682508183171521399839416146025656993176034072262524281164722316321061642855920169703612129012841654169358043899225749056326062118066533085894708535189442166367640229499300322607989647111923474216047411589370499827213827987867162038328532420290476254039183248919869595804303790528895945433532219825904486394877783331547680152436373034609101651692228847291210491473921625196527036843720006854455721168600969680713849694552720176823564315197233977571887645927488323475172735182857595175391917186392318682380815069068334574275671885765639449885805293045961322512399646069762557006893788563989871580805408213224162635491166076103555971868797675334442985581629790486678166308498456464506113328520055068871641744018468166442478766480377206703068458043139063000895384656886651620856771187636912479135760647536754649829290739334519224560621888592286485460740706367306169992056212987101201560680836984644382488813011218254029422792335775025257779439999089289502531291770889434112196142432591688628354687541485673149607093749533200118271144563412496536894671257452965580212948246534278313051262481419735989391402998207423570289487143258092764922529419647176548269054131602801990020367996910913523456140062210032347611991763860059484830396598670893359959611374888922175968573239843859709603399920816275044540084072963043500367442208763027647276174487755860043252771068980332066599953150529844405979857417584591640656576907832807861190888569392031809039450642965852352582511841165165930899039517602601047466435400477443620420939223555237366650062093211818328201247731093989017547412523823300718404184091188187474772582773557216774590600826857644056089228035712404716832743687021207763691823242914453715509208544567575965831423984607754310582720164870169877473138095227415438029681773886542787938089072664304357493070794840349736542114706828272678497492934045494543549657109737276489274099770713599984018076798253959476223000089852052698267783051247201338369510995128288947979593813714446986175135109609365365747150726651975485325086332603209754000532104846077762456360242691507143521988953167073311295370548972411630497995399523813885666949379288052913647555629765725082897893696813430420136928843147099231094379952095236942690712619381327801702374059967136843739023018954282160992348949497542180055907752625224618220859936262859158846871785561779973041351832048479780586834124223271940342426516078291513297370514063850548411486278825475566836811003765570758734594905379150514861429363670689816675843637499188398353915145254240166811353945399160321210339604001845891151289711722965229780266055324526570446271897136800900172129673793882027071293091714439016518053867905671662686764287360545018444411659920750916323833618666058566167563873478015881304276253830186987633378187266622256315325770887683935896197463973761772092672580957440229691574329131354016849701769349527040350065279759543448405906283144491319530619079489365377740157022559594761673324683029144167503427071554915320787486172563345921198596165475331042653040332325823936850654331087040951426854591814811336876681394414805195961133595804073018599385337835424399064434979594270633759916059698305976917283816231175218051428363341447451599989340334243651944625550017124844150672028619776921986832040450379016951227924309020528655734387291527271990825631773263995316236906607019076383478985625866696691393148045827980371360727916168849594672393938220649132674227252577979808581337094064512483487369972634264513002701486198441722755177527500398392012661595293717369051793946728873560347963471662513581203486738288410076687288303267384096468864248451617629812918482231511260121188996273483822711614100716526115407422700858925417543887996432806772965343774522142269029839674408628839781007353138897043156288669696221260275153117568906020663208452238550461376495116351347398169131324253923401058644671764934852822157689981705449743622628191208306680000600411562689250317326067584642313825860077662146979052644285493661033862742334730898280765393019585165942370261303350319269678643930799273051715007180440759234228901119092732872371033147701480111198229059139259860568701945469082060261709783482946546232524733734253309636285374813361144548867922132251571265798990422719464940233609848996805461765883954662977997148697345233788509226329496992787791295229410361962217346991424781415380392582660930705426884646464440300788769946573415344169098436803637319536056801394925358497334430077764775274739526748403880383698782363531659326495473911361362795625248328022668074491022101196955853618871122309170127730033678905201441161476958741471933831666050892243816086052337975835744315414801441605591308298144421850353843555853025327249533065137214198320431726386356474375574081339345004062153139046276001681625538362818403608346240333964182221846531476433857307055607792517645905853236180149152558906406914839694395299971932244720920600294954508801979060294500286626614740166847518710252232310972994135669008557132479540960180722857637943315355489497232557705230470757853843793561482820318116250835890022333410864346494287047171702703867399575038842360058344016532111341239332824385162429626445979254144966159068830803903126450309487050951060391501673170476048208814365192590685996677494336169480410913814319329935158477604235389800168584961910351668228287398051407890401663461359258410621839463158981958791578961741130567664064947425339765011794900598345865383152808988265872106939306567225277963338290810212915330007594129623047191737442796856042151969389551505379049112575623908885171996200819451905257374253946546201270253436189860166928260148065817411041708340699836600891622343608027717586165558902624430447526383138406539981256200369662368931622462974330178055407683370607280246478158535926698472974716267914292774530382040732012834312247203780975608570815102009271677246025670765946869053882647867540210303774988430835640620774016055017631399328643578250612959647880547827362134136951623962019144809344254906838247256828311768841871397963416277311289501420223640589263302614845742897634298786631084095198200625975868585312694425357930578163634178775186260749784039067756979611962553753489299692882982245090040481194296335567874897381431008781309135686349407823317445201769585127157379324927523145685915020656990331313609155407440761564536145742345907554595831438889222656503598515801989064066287678838327214906254866703888617272531492471809991349785090244530474388477017445619270999819576143691830995636593031285704117697727034739453490819148171294464432039543277365739148589638260763447136164114313609751253197278220623136707270622813331576415310352901652951922748756489685214425780666472170381747698587286645527070628321767158347562670208737179385818567492841669370399981008656350934556011398561226714400189786368906381227181389017669322058102065682335475762525757077724712502005297516945243752209344307056270073887929113248169429291528874386697916636651079350774436946705494560485722333534148672203114526496838343394880743435729114611478492987598879800147094982382889937307598067194805898812767199931970647659720663199064024932204443494217058424332243457745233186244977382529557104716901608320889729267970313023754664156134581173573189593257043618287977876435588420049715109539583201040006478786141898570456114622061590187326902072526386756563027804725971181985043337769388056087433007230762807912547229036192954081535366221581818302811452235647903695515950393030634573012902801668853707652959843564015836269231627781670252895839184090739438490303142873635637534822911874893126871853848165830167654930875609941141417342266679948535404013975386344068672368321940557189192489713052893060596482453341954482479851890821946175008193238781179502744803111780579592398800534332746110782796134384611543446997915681505685082905349420137459857529932752229712405051363958432437021642939745373070764954980396861150532352266122641523038505743908446261112297634748725517774250098910227716604205052403894349254544351143136639161489092500044563326253789526126375737679413577128242233516100244568276736499519792656525081630629948662618827291837160142016344755057112143352281268974007858229955253948424714860821167034534162069181154754706416284228248695193655742164012688625744063394044725976841180355407181119751897968666189709493714109956197741673213319991785812322749568136479341969252508036980292817798147805028912304057972742597104385280161391079728739685461449509669078934239415937012353079460234693834897822573966980322122996371859069592536267950719647196937331477683809524759562818009196812550112162073824470474955199840688504703468041862304770685774300028023072374064859871008489366174618229610206860060847247612186587947011841674832023660563424197427219295339659236480434132062952815753838066320657133209995829942353191101490337485288265375157721967389772600525734290256561448803324398186489668306614565927480933849265895696288745352109668817537349554158335572606753504761475706122716707572553242776357386488381391525538407996824330534662518228704848544870653275826580548598609754568856507838962549260051561680900762851764197275503774801133449131733902917716496665009953459304338743694395468577174189312881773466866891538366228762775488789120953722602516774026726465101205765665623643352733291977875259142080775063075180284199505817341090969227472307991742033087934057004666174357110328752411868123253291651045674549192182280209806768719325041257595312036858767696811486163306695423487035890820582425914590279145249625182652698797550265596330163856590107443771227951215637887476145922822567350394928102411171557131687058454846753442414369614376107246738411159820523818675151452547012143443605597023697118399047919266255295243140707401735822845975212264423890029475610583223968475593673343777874711219930035491859516223433273323985721745502014465859598935617012162734940353692907882268489527174691559708777992908389732660708944650237300363589082531356164973584527810295054531662951925353200473607590608993494101653966991022598142620518287713722072796844016548467899990190581182786918880724423397171553906378350212432700572118928361430845359322065098188650267171325265067052381284250665004286369217487942514250612054351823116010759232513631172619558534815716073368667407614560199533537294091143898720501249130635781221475759546180400256213746828435999411940246078379558588918350676242724740255760767761671363561788993499557172015257878003234421171751969593624934712290674493184338161779984261385335126646977922604126737494143069687516604175435170936303625776419789909067459501746192446424715369476115522069599372361435582809634373560868942567358902540511088056907553079137839678497782464083494844316542919881502055806526898543898434615810140775561777187939552478713530690457085655946886178182815481222161252055655226867864138058359826986894491118718950840680044456693365180888209514248983016374966348005510270356040112627245637286299367624579629477100760930038392142358983433605082364793864280575321751718687250540217457274519285141165514066676294680928860519415083578474381450414514206985282785251854419192340442398066665645010800914171489876358764787203280215909048298115121340683483482037882949940485778451570738283840167259651365724708598710175299240221067104273769933436787064151908382154154407714814890012890259489104113598645160386957853875253390668005023556362733392905648573663295895114704799335192096921299010857189453318583750437423086278195108146570091976141698431007105369261005721392803540570578093950193867197147114172432224798403755867421896841663882552130903328047229574972088084736407622520625101881406115983449828992430871364151521799487101520720737168723280411069961988577217905845710317285221328917000130043413953789212174436136807933801918339465001474962144820481598531515583850391687339677838014242261136306923466919986066223030379008940087182458073382312434723790923738952856649397722005373971220726074984915642436400052488180910743422832661417832089373359469875810090993239848103871652903754501263486094640392375858481489963037293304514990869358969703169471925388398904661262456908730980713427852808419295819674775414184353246266670624891146518261906810695946210219820416032917064967767173741008589085251690588504005036025982464602223326439726428723824835273160692033812784332499937167581618642745708220472235277807342817305015022782691727888964623943146615208347704561861732608066105895950396725941900420628391515708859465913124572430492370032090884781539299558789973962365150467749479013163156820218177677517884320129175026824133353742689600581212137837757193768700875688463237639145050531274263610723385070658904331341239473332441187762722847470682586151607810556002704489305772883663783643818863199085140630641555744804631500279017472581505170206903028562532821392327896023550282533038132006800608707179140072894368218735078085468242866314041159993427660319931180632329262838302552279558376524983273784611948749808584538532994535455482163536843587340090609949577723838183185793101167064623251360595162479432410622315246666481715880285399698166778736034013966772733122530700274284186731011115856852798793960634536869872378200622229926195002424145975612796056408840151947693263035130036089665906698673977188545497785813880603865532307824605013026016563050912417931825440854117968583804874494938526869862532843068858119475519417306851231900409755533926643297905429176398877985393109464799988911040488398317998245264946003747174047002382092858597790828674331845653014729637849337947561523547760596022274368707156786191191379620523604197406480437951794923861988522851512877665730740463220303493816328102062019404096623413069473883052220055880066534184850327639009426472279971495300240316987607543589830955632020499349976157544140687443148024126602433997836681083815755296109037064481699161364266367158950051096666760314732679230000121483246750237457232970285266789447123073381274634334207020444056796025062853414633303840416233038365394791534175524184098820276071331506526232548463437831972724959754853003936116999732661867097356416912497749787477110939622512333669257228502571359368754786562471658406594612747192230586305288270755682312492594405944702532688006493939204142965023940564812803570450444157705642650360661767209814946455700443214268474315740332260311811273759645482177267314007243188423057171548106922556436938786783720898512251620471209715694445248751843360920313062917420679410688484888843151834390050647637774693938102254093228666295599914139603597473222560067404734384566977808772252408272032200095889810897856837027573634982038524972690924288510901477708229987301939095596921789291940047534226946096616058466387748616722199377750106080988463707524352016375434311521842145073025553454640513703634002465287285238327354386302764865610599206407126114570215229993239148255476825621776796623501698950450076619690211497457157649904362039845892573384228504433613107170621041104975080717934008351477854141332305866570545026979419290847486936646342863284327637725907883195232064606211505218877874521701028375303443792834807025633447957331334011418735654746536093912193075226117155244763589878839788623077704822558235230989992542741259227048974378249574170572630769870595682431172449160807730911324934121755065897458522475341195191061574806008373767322659380274083999656360821975130958443613935019757855793186547469570626875388704948366455784738563253248870891456967866686406452035116783229117828065465878804873991180430601863337793521589289838929125913255104414844955804684644758951931724196046263104499114565940985982814889639845408568370220527503086821747483373062907504143093103228174106163298569499416151146928129950359909231906369257164225266199770861889417527310498541612096275946077378722898528593008605227408371487916941918349723603353287948558745851848177022468280384260336937410123197310046880511908170434875365249441682685365156141410205798850676396169830811805987134950315927372738523718215231648421334786412007928467186161072759512656003395405247440111249004398010639972336910142782958856167428581139482192946650952416924447852601351023923321281459470846877113617013575817060826894384142811313362702955487929613147412034883069096738485249535688460964666284905055063972275119956413121506728772904801833207557946208592927609084327161269482225383861733274947862440629442164910361948371527991133462526451900880048768495928351183485185078081682258391777264690921437155315824199238697870606476357374893070698339757157572193916613298886296901901063232633144283521952393385158808676093070846043214819013565598745443464244926957058538420062571369210054023013335943963451528694921712909335892599233128155975467967832057583869199978011214547081424072917397387737308873885522558123102046153887068253383512757580720547058036917047257882623662684410016754678642117911002491576473798896177311074718429000116311614216064165271093747198066118128582715346716594188137220685719975347138677020449025621079628174070261933379647765255179958505421657326846592607479189001680239888180769797443555810181854975297017083349304353747879191311635285992565748348922540331027347237305663364483053855359030404344580025813093672736503277162174039276757455863291547415537103654907969717037013110225732370335490785608335102081457507019087905348183902281542328814764661373070152608838210422972433785256299235790567895443810953923219585127305406551621875596449805603663071178336970721366151729711293069524170449495365462947755343468655853488447952091123944644320178583686087671254389205224233359612904903775782231833469735926388436068157775955501066206233756120837157745885089436106502700046094792694276017401648078917751670160036146301378137995863289185205070830030304172989555347743641114414150941242023261117742599826593920137537351215443753553972127817847943043470184748042519949731587387024360490892013100402078123429622592644358054672263617480088687177910561952941641455671604283661371333442060504251498726682554383191219235799405030928710729266523864298496305646119797675229203697079092241656040889879132776753609801102185671422145473746291419126992582959156813157273195544287759198084793528220368627917301917301805264087030878407133654609058210091357549055651615100299481619508447293948520479719790858660170133915808270545437739250938473749749764866326309624835288200032855798251195929182571241065958323868441090385642550085506278604376795836401849267151212449942842491555095858216417561033787797302591891944314848975783634984614339113901077148933040172167239717645701151428202814930270302453818885701860084628729507593395246013506230385219798854525499679624521376333517800010806075500913001844824125320031285465038335903488601856990227951938644635372454547076298065162121983479777636432087373688613228562716656914408871422232028393233323164833311843190261246958726439799906596503618714566453125240472629821368918236114931358048940118201122883801175368113383258340127214317489476214751704142893799688930192025013195977070822972953532392129787220936697872805974373217123476102406810741570356821903503104028763403131465638695103091998092024772474521673249490148377977868834353386961460060061435162601848110780408174116165439192881163468027070090045853539364553076357757955637720665707812388138531926409352293826255248102272491704310242394651900076981058414693848795099021223717908448096423793843830126072496931853583341677657677131560468148509081947947280740997641738365514095724601840533674827212274724744095079407380869386941703125953860470386300747131351427001249919360864248927984407308899125109428531480753486889263880704027375452643170277048028730396978371528146729380458205845192892353571339916280116450411306743064387545936808454872217510667380934681112958558842682201644083837363483891695071133751061726262494861576024193948894228976690370488825958297350642241544421361506591619127609733303379750714111709966234491000130755922924763030811649779600888787178998296074635794300595355325287766183350258784123315253182653200698896938446883027627698854661038646597162549253401245161311255478531976921824855735116985898475409542886496810782258298367919047558019524786746614678840169449971198170339014961835526735590144532350504603355559235362214970944728195248174993761560812238664317771145759215271460616025011106193139285160750050221205129177017799624065850180607718530218002438137459841432006449308058723930727211790454591654472894371956663269599799706128169673415638493567156765474715248088531345879554678886672528031139633703981947735321552852317151264514315194674475059036818509867369207796549798124251963917441001196165421024029954380716640331933569015950148118448249621684627281345623461493211668365426134645823410649501054931868411310908964752891161892216340998744707501102137370963276678100665529425167991400157896325551478860813449672254808868462781534609381863549202336877224782309340920071891215444591372315645610070220359521238942074188807042706709519912944195551586950907047791373115100154907645601770114478177434764438619457427323459504630040753565853413826687926022095498365706222052219407903022131524083879166001235027996656400513466061455556197849077789619806434983164083170074998904522682765950088189696248556961192481637385099442717804127922628599443154567864372301098366012181840642912757363866697413563136365417374791044601203989220548282866910049295683167156723420051068856483465172192534286355816272495496010301405705609271053442385367953135572668671916397587684585270381105691332131849142049277407149573782341744877859786832279757559745897107029916195901983330097389929331135141870399444921419354005960325359095818940238907589567171804347231166840403282854212380251756869412005571764186303130304814314604291157308437687872396412733304774702473324874384365468988509174898165782774103546756085340574582988916035313640697603570937526744488336539551705943829258833916095148951082762279323544667112955359626724117501130000649482429967960533617327618584805395376757357435849184113577931539506123337955151177254004048706049460783082655617973344096710055454953102196393912266858202138913837574095500725952663524224221313925090582246675987125439326063793895232368791264951524782217454096729548049872921777106898271962513038745012865836080267661958457485228403183725726751731139379424833906001020442477579133167001464608848248727306229897930618682898014165380022933154423004307120273518747604667482477449417430515217525653830725157016910614384624565265048209210151583807729247561930002635097543020046337468200726821925432362096004649321943415347140414834917178831648480084077760526757477627964802849184291592853646538688087243187394720376191012270331254428141083722697597694661136812578651396919687291591034400040908988757243163974658713044075916267885217683969620046209082906919556960136459940583293511864424092081050501900151912646607770226939701323340482397184972893505746486668071176284036605837396610119051328635836531044922712239133805941319853146528610044771946585379483186896263863291918994247334121918719717713771633667160952889553825948264557254050766467361449407872209992856151569561008277695892945520332675716623134251913522054865421673849533103044778988214128807118092395375378111683099115385143352074802770629546087434830814742005972035500530268851190606024417355251526737082464164440370284047046853985257852839919266667890912080483351320216535105891942382609076805874411981670959287196516904604713254005754228621827550679095781987698623673818129829450938465251008429585412915868860364563686047741624166086056341154134715129737151217926079247910709507025240290775521012315455111780612300372839237067087753085823376033265673703924426723624702199875574928917383229234858014555795857029486210338436102021690576754960976212792776707460923266409969017419707582663845542812548676441310646012869132156219082203906325279710797426437662188862796204886288750971637809597873358123937665807058406424983019589057164623817213671710221686208725937994680611744154854855134184327042412406481740424760245621047313004508986091584587454533729895266359956272620451359487020663525617929583859696114367042437934167868139896147201499563592034012779542239871095465074182041384242708694288392224451934881939434743314359710815242036197167472352447285283786600956044291463599892240643686574411897743534435298743538420126212712140622886764378805974955714596819241332859477675349313532187099795623829510571477888057338715923206776405648792122363357592274846494199371640792584177466329589847586012689234136436338727866119365868246977528771532938165738976571961360777900198397006844648544333384721077502784132118880156614966516802709205310588381429227010053891358329781557915405275603920336422540976114558862766494470302081170758125325432211750064306511191036023189291404332450510675215385194354961444475951985240744231125725867289146988789898733618435703942857879153942607563743343880920768857367190365613118551648694964317480517641348639025867669402219809024504707258521244752582918660132043097353626954086407766771966403952704531900067411516361600301096506486558474685665246117953882143569030359669468138326429205983240996703851974343084377294039252840039908388284500680677570996200299973515000585345823376573238751955777922235511429127496854995024901704239073638786528913311473019551481968269167620528303026399634677357945966949279077959919260555846919704658208160310035884370149032829424348228079258846663632249895211845728144710722239791064213066587715779135511057693501918446639806614505714332041961784343137753316612378824729554760675188959702477902726235356335420057003084166130725436436539260841337968251963479603527371024638733467785380459076344819815097296534067080989415011506864649768467079041855082546823296830731647731658209491672570451899076941440015049709440057343975678150858959142644861384953724541799991826916836580388840290739498043912935082311134758861837853039303367437315005026216921399771782850869838141911418212187835909468796687362369294091044745948480251163855349702518183690612429465408678842138498291748338864302888682975180507918711920518394806770638583274017463866129470893473707103105568260307848941578661161868399536161695692340235666444252550120116617693371981891112341806887955821570614914541969857810784233903833487460236807446313959539813915700429693985794747709366307182441755544705725965511811333945749485230928800026760855230483468618773110336969018334993639831759799370320289346504043640141936494465161780391807232496900615795401876777294963180439923632172526665639433451462043431539453972168053780221589359838341707912129076784537126189226203861749447872235578384204510547914393616060601532558118651869049284202130977884914533282228764904546153880949648825553179092058034878160357959869204018933665661969961644513126733678845096783947941319114877327081115694693860332894198838080607656106768898183206040548689891535306826676615177244394659307905534322133700832290223626925101087932234471177365693957502415907283604676928621666681499670871625800792812181659321267359171910403842107031283459540318606716006894516239510977381129597836198553196334663116035460023418785243909540066143854764997912193048052948219153699590650456480106459244919530763939286015800406199849835152920395291202150665394985205727886670250865226046636764485878828690363083759682909017060637188947475768142514328615300800562608027856830954665305983621968098096385745817056979639130464977634687453582267512921299930204326369958968086559448112183336813996079650720219885684468032892251735911840305778006097727236120801079571371001582311430722122215852280779905506563155527402805371204231824927844442001336610990680367537624411799113108386747818947833916987784106212303178469093713385709413510960840627509621549962301436472352538196346868765243293139774917939140412228780890390393568924399061647151900409288947064734634611430123009020710545231309010899307812578234812199121826167488726278435302085523646526982794204267130709284801852858056198438068635330240048135070895468456554089721711002060464197798693147031660395723151592396657216947461132291926719352972719061353045498020683435969588957171318919551837946592583191635669187703881811680110022552453074268201245381931026524944767835148627831004312253384410506457668399204025930560333702867501279913673885142254797494431891263604064505198528537661257429082797982970590894970506340243147498122593063036669589807470723022684771343445980372538682678107424420288728429300914564190371136475303595280246943272356476545070911751937763859099616829854594790284738219143254591706138067042756485299152046125658268120220339846668615156844121636756015468801195126764027328764086364685744063564608434595377480875340387688768189951453742370528334395446708622358412095215903696375746730600735439274628313136420452312933977048409706383837980194280485387604880155090603324650442036894565964321942677100941039247637693454711088537215373116383706318767657559407378610843899653976185183663782160492173098017731371740187926914983483030764327167181554463855143344628506405193678439301110141700362208841076611513147739116965610643138398994197724282138799225505876362189870081229099924603813857478265915086150228546941382543567132658063593370055609916821136620514061874228571388441762821845398624484948300493979533463635001640295399902988057726660319436482433718747488033152223726777257951406133990992296590709637713526609798293921030211473826164993911991803255195380439301975561863472261376880063705637583692961434256630933812277151299398585375282165820814038153341532305506603502313576136486484855221852439685239471895302723524226429448857646156028147034307213641136146124936095626669561975100438150323675954014237202826240611353409717196059374850025783263182657168154491301693077012096407730112402629361082482540696765516043787104386042091601839264274257625874464975317232864998386852119730738987494543721307573015256159351108456421184095932214504343233808042485016995821153390059594293388499431020342704463312076662528120913011979979752358177827000480929839075193558896193629641455805718270041827957089073320819430474971592812235602666482180887034366765077176655042335019587095320720324359874988266205440419418830644585093205334669673686282352692540228084503323525002290608533100386782432279914772591318096970629479733081728709402294794416255728755707935337103903600312499008159135341988581466781521304836273246119425227311884299819234366165278495453655812145595582813157866169528985364553225246942622645754709034276737867673875475754562351944606112867293921387596119843637192071956876307973022702285396698506880135075672132593762609722167899619623207141324826033394514982847894885716487365644228680344747231516644446472364111182365784052713935522170456336952935524680446618783678706498127290743632856582433790541451785363119699456586254697682943983607493153039366420850264607800308084917660863537859449950899843521912806641373647190495256983693333564067098921359332501446123603221549711831112098549855568101269814378621743453248348749894961414866065284362446396683987113395816880840239154333895961653274897627842899761561735942330980434423120710972584585577422460326264195611333174098960620750203483307838471198924356626552683230908522052222124836073831098552242424369355483569544001636286144183881615191808304175078543581477236139307038720417882181211341921193150645388120837903161167711824821216040038505981709587356239398661452735758820277471111345760167707233375632862790213797124890786749846193312732987741016302709158690784015572173074709645213551830368359656273183373189394572153605731370218511755746804379660597688821724835963138913352273269369582179299192546404110279905630997627303898676758655895258404326988108351484006468778739935363488433928459938696655330155305235913842238183613880025486134267152800176557429162670998138927386603672160570140644561174753775816215051201176730819207162510820555594159118651075758660938218462563680659623551560647248614974430752670140580564511747697966409765687275237148239717944161576812516300126315957957304312970046518202926927756637903180634087598993937638390832354389974033570868111033034270315477449142046378941166898972452219365117316979850397754460062404231560693749590769506527947015696003035837816226604941449911306735610141091066677247299213690905372887561782260085101447453587780723337566264757770214326450412975548462737220203752264233813583137465287706215907214782668114324638393277988589318925942023990574927865845913360326841437568167001875978075553107802297661893980972543162284002359536891066441095026457594739959009602459670358513740359598716799425543638736609722447596193210609959539815446122681165045115927641614558896573038957956709220187087264146596395244930115340920648657469818017641674004283334782820070987113127934695877289805140610121570312188454240964491809551919703821263493734888967667995739560198113245078421155167671505391530087708615719352874406672749124165447976756543055829193055144984142911996573182690576440626931840279906109342263654457007540615572955151491908494197106333343619779354741468592134676455163820844039528106726000069070717809835787341089365732986705377327676389415793693200066147903315013786155856408129734120514694838224898040397031654139699244524626702459545074107880196628637259193555464308307371234166547333553331134798753043352893589305933350324854221947439398707168941556055821159306016836327786202206428939416308434201825415014166903418071544116622110950048187937049170755029162233237018301581228320036375691961786673247659004165982961746146592386153350595838421325792813307337687183295344266410710040283387462478980197635431229382371985460904749814682045305289630131556083822593316006348678622260220752596330296861084775089330612599503708371653021539888077590271434673947788878843402705360527101890973795846584865944535591188638037314855902911573686786781983918827757785919802867795160641360595939969051718713254766813855968399908221450579669909007673097818932614744358250233224401579299500537794092520583319271412128798660652326271513107350755830658904972869720026992284173192738782980452234081181931796764655179202018579726695646521293039091750692741382686066259669631212093646943796529280360803290117341740856325707160114204058110158957953672202351547475234216364957405566650930215142128820286062988297686472854152082843706830257674106734848287192685433656674526925168333943598748062759607442552218391175780574893352489231137700386854835677904075064218031504384603652899181196083178909141116692080079006923539879497380698748821760059973533219390921825670861441669498805191566946794104872634738802390135263686187384221702850684279852301943502670675050210312881931130172482287446084515353701481681863784410268334125826047635141605634572075633908665797574992641915067798435286314978897358104484802038770184777850832103123722161777880081200315477492182746784633523625680596266169519462816554793668356852171873921021318356732622238265093460327179907683722991759955570485625675210840857907083644710493177878608716032264816468854221744720002799303233655288597349840778142977170637876876501911050677464432229911344612003247785585401440009660903537951731440732427665642690662987334546973004943693282474104745753188220730364730161003408703606507679625897758330258324685442693103171913663992510794489643711188506804226689120572345002515920163839970925798727365001145868671428625025928388743893240315889499825382705925289958216028006140410406752099240707101868093489715662788755552411189100207464701940876900486298630031395080327664994605172421310316443893910750977134021172934576257198175366759070806373262528764512095647682415167029231952266920155601539619999979092125886740820655502608409930252101181307069284012141961835199231060695282324357737346433040893877181343681664190521621320493554315071831670839836555237892359302949600441481284856177345601538044560502642141723632290625912501418181137266857859544050579864095376965329205953830525866412665332182229459929993388976156821146721000604862982050819339858470425380002181837786142786145123804168781859693211642908892279046479041787019260355194536792915485294997530540966294128085936714439566184482003939176922093313890911016197632670898375860370429316555126586790840888166335217014374428705740716012976586271091595144137382451448367356684975018291966956259433643507322671620733094996926199434177925133892614160197438604440807238119005627755657705684173588901669829887254448677922880230389689798829557819515737831846942821499644080790099792688942028115097103570869614677677393176309228943342935633801117894876594161408301226108432619512679100413241543596422180235148322521979790954210263906447385761766677481272406900723356327717679309373734071017992321920001362298136317588155607040778363454363290834347675299208465569829223096129295659215848515880768315083864626563762313897003132116228716085120670959294338223080778458548913439708620752591366980696125141214275628351866516999816709125040469429172178967827058672591534742157684776070688467611372574354183897179647993153179728728431528327325401416772117949790777457032886889800195628712731678218082943155770239202209486936788008016458697717985185646380411328679044414633062487321049257909923225969897829738787511814233389390017186341977961339760858451166557877648167476076728123039998596024673435776898162586348905795920921291140354278329162290746414985631803363296129412848102772333574157047820896855388752172859546650364653222240475493027958050845776496211760975053826204761396497859277981180431915385752973621250494581217605856734422846058097366833993489363967853061465857041096640725895373203814526463506137037634540900846383112930265688388627463050234248111706790520015231040264785357639007995670275242401816882449848933030231044966263818654403074966331155808146038508603731613373620840416435405322505319431670564766575388846665341999079126433026873996329927428546373435432765308295799761183543177453268398336861201716218046560488131360429927819948279680959988117430305126890612292555795311153737973577353280413248226750042212353520237932597017888735418114040033739161575293725146987379416641308753583177885485529594284703401018631510222880526434558932701928261308479992561075559531899796084228364179235033676157377058000678752725603166182015382385273809366460731212981605447306881767384301151475544315655024773982234403149633492342644968462088762795894742164195428603946729682402633163573645917512285217057826476329640934153278454675516712742454956756227493172845594664564732130501147760223336793437607495837499175524877246689028321350042313309904894822663690203564909151861348544043743172474569804886456578681986469915958229671342805089899444077119624437411504612847045261810822874481549505101673262849775928757658378924777109290170124608451185276821028636607974912351124338761992182889681334298735467010649493908075627179349599139152414955826873373988731690714026303575182198469457533860466849557895627699299886981195715859878525640000171048812381541980614120854515771278405249794142703973096102816330472437196813238871238081719094397883031062758131480371070565096300103930348313000554089923993758341317809500953466066488441828548204124037854955093946321701075684061902595131403896294322082437995757133922031087063284758811412682175369506704222874823429132467283691974958603557330435872947309146317264789799804087355275399427633082566581027108671741998884125781672156899717138378909823177257986797427322370675723620727893805315358069704946568561158162861618852817854441838674655631404633509929557505567731159694217068953657292703766386270470149668978734633963135666613932536566788057980328449505252217340681790311434786249657897625551694459614267424803299987410314241702048394718937492506722567375751800800875098630184057058207364797451806650684208069960978553520872160010876392570468784141821350527325460398524222098161564659616333507973543763472764197037104010277685339256486816771121738026607883359963460843464014118948772188118614115975554295630942572932272679354252600062974892060570512900743969609156744197562965979322882918913218714881057804618271244431065941585214188901255968944015292469313177845170091444345765130079732374696727385007661846387649102685648158603851591660438805438437656671215714605682984928628410465151724216001026131711973152698589935508819095430250026601084436663724231940008459594827274864737531362598142007266029981334717380179239832033839601794075228282466259905033676747629692290389032678217982198424918928173611885830292775284078405724153359085092074122940005668879270587511630077153166131120338942738682913572029889731174551281024249119176151666428926646401974573345063986594126087084019155976899431279058910732522301482403191051092783099623028161921802643487745011537441428536693610666532678194875826141263154480337510085174735706988270747845229266881896173170021755258293358464558925511666392203532765525958676979092300007084792942104134397362203194504174989821373447812779922469453093457872024141914926604288881165054416854781017103192018040105595812281903432676103757387905493168515531135902914425411961959674080338256188659001143605024991548494632267305026406633439586431852516628497676509975666315084148365135270878797217769361235598393083384062904236626357156980647992364394307796306364807397382860258139220518977256462620164515169506389438222851105976133917405407423643888869536155074578688541907960961502250753418069524215995764805674342188544284020773021025691745423008524875534934190312572767745933419315086012706702062585506179291534951627957898698191368284817184591914162797838378538582213282478384498017648837247571838784893199098728763285970820774103835255884809337978325732371388393786228387542224214557594155659221704846681463878490905274590836668443648183478276955622471776459307121622129555255777316630983667545386369078214716260808206651896136457106993900163167804645337732059437906330218086722090334650100573524406685388383477028102886435519996207628039135380710830503950497148869549265409629035792638597563429413783197698759528318546496399541935737044046931375885398236387531298304792217813588419859533029689303934587389143500695973939442189969015889538270153850265649809979540244257134284229399768018909550816729387736858176795218012900323951574303871816083721751164164914497402932924407799276984180672365373032304147913245168604601825566708982639887915563799661110549328349842001532766443429510504070894517100031628009582009525853629713406080932780083367479313666362461186660720593630762906909990903822352211420746360151137028585141399231209570078893809067603716894408386922748069402253164665569761568687883031520673468232152915047842903068287979912226421624056808908297711069202307044897317516769670557447546076999311659758431996088167699510420366618254935584153564542323478284651967549532588105517769242339721193039496218036946906675718294085286359120962323870800479681631317016238859044394811873181492123137750441382104482261901968764147091185476823702668773323164663774953599786586224741221361400357092169856432697871848499289541144288871978326687958147864983272923170251967113763858086232351156699720803666619335738074942207031233586685395956286440782462686366365745649867919909069953460979007367053530965168921802460668362835562001476129697603388502246217840270258509405473160819581986057552288941164428873186435833207928622743398389125933060294024078632008257061152231001922416155736944356594848818761020252605303630686219146848645293744336644921656866539040480636152166870182368207748866092067228946561703687550871483247751903071396809298447279665373427735121650598519460498888199822048520653282773075971325551602156764305209993726724502469165263152969447947867819734074688804616889883941776113449866306133269100737587082692709112218130042490477333668351201445019251874406503796955582071012426905778614505598923453407457690749282489367970623837800101502830652092753320344595310548385603142599547999075034342895310931882518975581920030525950574316388295314153023234494535795045836987101925593469792879922892532897113634434320890318441349418437078203801300628049606366799786473900918732083777715466272160757039926701803868388091302278670234145255402214469006818099212040182903742509249782333552879770881801515247435581382806249482705083431751835983022102082999142480290969881998325994127608221209220263140300071376971791645688123208121628347537713505066206830969358961025083109226218285689288416704199551188995580696179876878175124033756762798590654899799428226338665470537900272649916759238187281994323943202474539533149220500558875860103015839203214448562841691435964263317152482081365338714380394948820549650577492397692146796801746685572796163221742260793662001385035525827170405187383465868940755297138587123365731260763601089040985916780852462080542310402708153318057281783694376450395387754584667890127895640264772889882371892619188417691529696599856408162840666648572632930008939630226831969191920072988929075845164209062455775966921476105855402209624687104643564838396497004888142502940764860283137217832379857939763724034087519446107217710496815556579159491011045087024486891856566716061463490922763326633840678474142898156986075322631260632656488628515247473900075872780019467633258640922994838096735630550929126055507584503942922445461801220292268405615061285072522479007050132974055680656875825769338162704553757343896649758801461635540582445295986143024497257119128413260244400850122724074705133684889536121479826120724293783910618088564820394106639299668988454013155176060633788088138221348775244587019134213619091176686526173505476175851112042027650321256695042400995203699892393512559493366060068534599840394025009672574243450145631423993420158816200802114092602895315898815050455062625518240302639693036374204388447441366782518816622623740277161636950395637138676544594060659574233458039003361827876663809581793346398464891533690147393344010369846600901381240636565565394087243893441703735909691571017521894635696096310914092288009045277611855753453178154706204805420143406288936888833010725326996974420119360926220188930124814064731289140106640850641139569814560945376636933584389909593470482820775234618459600304483559185281955502693656365084984537317962017656500460281346922575198591176976043514491516300200370677323963884283773009732397963628713635270479438580177349345933130313152752921633247286858228194411257962717620399079967517197913538947368377711165134568662060430879331730225440710411583032594310112406174137987479281678235610411912401023583494485467681464739112378280068523056102750709604448286828659086964617009574753176838686157436193753799419800254829019577585733259397336539698655930818619094636167496644962548356806380381873062884983156269104407596850458713393408182413940510865426554233228386407136206631384652652403429636607281087595030781718344958109982376838502757570710873472129546475028068348401102415181150540341456230822621308827661447166048081210490537077104815711134795286799911128070587156395753015401651894136796027577827747359293831799179140425532756919570074337485434611579565440204593606398381972503817569140066369730838952610845126413781410925017540292184184102906395720841424584867808243503585842043222010883797195549049669415926072544885246966292660159276616664080235606999091309170102726538460674126263156024785264574388409060491930519787683544733826319660643421084685862327040608601517750942822613935436076004813644247775161445782474759239571598428733356261268097317311176828572698520249549961955952159053116319713732018962393035599000270477617728193405685989038824702084259948332255214066920942138362589918466786408063502010240043714302847599443246139872959344143865195186895460727747646871774777621979885097412910927408326102696364376691294305514239075158021385970797249894309822077492273208718997261274222051827654137548962019004529495409792493524922731304350038082712146263274280303227228289098572646301239555429494410182446826178485367630987881473026063879449325707744488957206236481998962130780381753992045528639696017424291289264195663423829381362972804261576740764655981768056431069939791811331961235957896651954587187781150533025423907124191047584661403098732489524301753302698930047902704040365430912522962781347154076454002263856061634523616014108498514065627592693551728254202039042734430473567514773370534418114911434580711191578067763805568365348270624912635593803395429095395878944862156224096377133859876220240652312627403004147370286969535571275470492179926512909560838991103726728917306121781822735784745782710414647303741178219566917189097672418703876952863466378502042043033560681052934016247512276881263220220752563826028700764681706144931476668998085272033748329369441203430048716489709022315861795118845504282927881890375410835665830150710283536043245844071122580921736307676289292390688342124848247800510324399475149565491040620030131810934505702582400135595158638942908762328156171304281573513879755027304229245587282242126063111674188602219223572988371764820212008600407085519045109278158057937611325539413172309983017615607239291153182484407816845116957895588814098185376502480356690888959162802584666875824703162970142387118550091309541781741373444386608933221376600063106556453137678139936162820530829772061247820298909681754423894240890438855795256060806622451125872683026995203447393594585756101302789772511702202010874286224118262802029162421917214495096116610138471394296243707523057011897182082246934973014398761251942178133838619593722655516043806676402989274448552604723828631847588172000701046440465945708343275593766323281972673037545361823533333897178935574969396866201319017421798733716170911655137639771161333321083355378738347770847373498631936505538315447176732414240309012347883234290479300963043417159834026688750164863698907601481344233695979319344187062099379389655678235864465235249518004984200856989162549964450060568159952978100819706169390640823856678690858158323735314965315990525684146022862322895959121745632484519613424946958018940246131980383241782068183734671762129294255911798167271824751073129385855430074702699036857447362482673982904086819774972223288427087952029814535156344095673957588078594701794619486503612645696711446848631161000375012053572903528415188868685853062761553288021037055717213357987907344153824363327543429259173116771342739052180270397515797263898359629643355136253646646532555662715289919027962846514405477627233525511125351300123471058914197954061680983015990381733663409915423945737868955965840237346040148891650077230559599243717579494873959507721195235961602862446727074441190772269920944778842784829521540782814527725339165961369094873072535762022949204285923125455219687119921550463296442556960890364416000308864341920861256580004807994412747055473227224774631104184809880840669840786236259225430622088273559650033650053552615084930196031954049131072343000797920571409534161153410676650501017346957314405258976721837576887782207260919132593817185062512677577089417975630410458162939972234683678515427279140790027755427863361510900700375170190873834376415655435899442077477105843905187405163587578268370683502104751342816379579723645523771491146997622518926597488759709503250333237880463053494125481358708460668716847709902534299621331536429231721483384875724551778856994760202491141204187599723141270551558710911079348287103274826922936167287956850257462416146965549882649548413276523709709593068423146195767834142796151166634667219063172400375878343646199938163830449662706468459663539201986936186650090601359042725892613773839699136379822447962694324345493957620521158621137650872152881748911431929300937034078727989955924155223061986676525373216005692000613272499885194168064342853677916446878225274730463425160844927925853958851027286733549536014385939839400271113069357927417217068498750797172668023403511518873329713835613137225560283056169776730580878446115784308571324327581699197722251044748226681300099611603218249584895705728310126344931060915230800635904337053504286647704070294272629439893952124696101387693478475463375713383677709762639412169302546664410091875644662815649675407204012715969052890467149198689761219510249343319668722522847814687925593027854731693265800327664533579107795915480926782159910112096591475159094144416527364181885441991701334520718458072892396724526104748410843385630920427950152792376254961893171894150073481817759537945264331806294280890141205897104786707163772533936501660639898536415103832846801097120363581981125694952304717199379547297450642263600992952472944440659246703321253305774797027291274640966436712944086214134947302826562598586352448774480337099631283106444007398979896146974525985218148397579666396827435909667199184918440809324934027225536845306050978298018717901810850968792051089411132612098799935070149862371976297575734988128696911406049998046383803004836023279268723321908892348499095511070189304050503658846684273679330619272450332168975517335951584965842615314876443116818636906801708016835659266231377193191884724395113543497231113517880109601708759779688133134405501770536499974612454843972127659595328177743376343813380044290175403823894611095703604197854536116579990924258958943243427947543827810271179746256518427904145294624255836011796181468216777546789792408894378470766080518713025301596332819719879426450703074368308961478496468427417258000757605619305203092312327192339924634185459040646759858290232717401965568233379448991997876860226714493066342932909732056643162828696126437072131537904238823940447894388620248874672717797773425807371940849339531498859100605891093347741050103292652356810123470144026419314811200281137663562878733192101081976403496011955308389820111244749195194526470509513191664677852437990956376964932911182557918866409224019788956391336140770823116976936999626966601917576400828698626834939426464213566450286829101195843056940808186016313640702160346745782326755622055534067248377799584826288780573030961070995184342360428048032270758053952586755021854795253748504982319522504439674051273436723172000295984986532494566230333410619913975101584339688150038894319392616370054420053111222264161625418439756594637428153200518147608051395195941631752314549926650766232896351398200672605128008575611315872717667332116209914488259401370915600341477954437840390078854258129079422993662574067903321871680511942883949985029688539376208468535582658617842050108137545268174491376076522693115091917982638299557095869416042484052214740538925321362190267804266552770128941060364352879362226073479685936913272631471189326680071273839821964879007940101395649053533771356056134086162325142546396604642830110489402635686669987438128186204004209000239954778744524577913748088576710583209188586880946682192426804566991479356825015569216593199039063583564936468655790327724577763894135005372348774993353611109304731582767722715250308127745486891043686513687416194939566759828563380180352594722592808412175557746305083642523518303517413036470054312216749165488815492082471542414367317540381639660175167411833170040246969329562463786753087415462257823830532734633517247368100981814407451340704869609954569929875355961156766459493644804654543275457652711591531932869747232216346203386690664545642333903516968526861057737781295243377085446241236016321185500045438942605600869247433915460205377581641109524557387481412516356802054188214909500216770881682261937995991175054600262729738284040336401115020246526279260411239993283440965371673742480131227993618089656007386671943347641860956323991451764865948470801937542646241373099565587235589852441081590220846798456510527982703035095425878364747719469749269791812949124842544153169411867933337847103961532171734062875940313622206728724050387492009969972479651250655622916380037675948963075416313278579020717185079688057755154992679275140477077811696670380572322010608726979611146644174728432243178229150009016489963198564202595575196890019818518242454912100241799998907128551574681839035894980461219153092754381569632335163220493110617090340423380373931654648071622706720867035009698643339572677379711881142461835994982340472587753407354974612506749922777438380739079248519610975730841953089905026269573430264978043074537859447811726748005969927512164147114534330562250483996418105314598338027335439306261691224931268568401968631073186203951014264379684487747151484798429862104126062299147728136524290019585053613765869312581226824011025811738376991711626934994241498749090260511733155908394668883800697074645624585278429694289514518877891992898848723713976419621759484139343143800990798587891633558754457682801419899649865590880555733688784464435868490537296135261150002792561716927331175389976029259412311335502884750703977985627509916367753971870198099258452118584843024881176881591604699912261094312503384114329547883006593692948198301403231948890440110484633167789316666267328831639167326217456828559589998045064423494444226059674091684858253909791542292359782669224714589423395883916816238633334669810305185070070872057106055738537837036728492626063179674246275708636367714357988927998598303391900124568899554294975729539571973876524029314392345153296726037440273882062387683693325293387879502828225529459081803065764256560050273009615614295441393815275610781547597510475772649878455167798740978602483971237260282533184523862814050475748726818904049928247988191987921506753832067527788739422162092929577979486257989907884970995318706126763359400950931965253404218011079835020895008600018592561277860798274563349471995396916638242154145411117783293175418829380762638994796052750312850509183505550037346075785398341094098424767387951417564741855537055617754037494644409968208660653958961064602504240521246610456480167541610597519378257442350064718202142339798666035753035594934740861519669526803442302597206349440957204471679793372608559337167961404696055464543708961928480465311747934017783706406518155872881772657300297395965879617068795799285789821028080996065208222239779822129765244044338937739509818088601819891641449996480748756184154576943523362166990134557676065996110617658081588693118078774657338850569036576924087070821127024216664205153386181395108137573312975218725278820666410043849847269836622440269526261846981379562465706524487684530977525679516357754273385082041315651788077110517118057764307128972514747786709394627063439811971890171400523808674983447017524131466034596802800301664998053939085570032747396569800016675892959775545309784510935719457749435497912015735498482829890651603067245189184122454702000627810413145008409978999302589990914974960291543925700855797273072560598383686695812291602667169319596197393410719506877502774154586787528332417529909233152906761935323207623089958301938032611599396713167806602891235174008849302461534319251701527599726575774702101655215726317392727705743742595946390899486740473267574991177152288745507593866980459972761867302421940930150832868424943222180047412301116030041919363807722645343341292892242923151780571621049664285610889567503906670141787720676380107807862909800938210124829277665569551557322158017468125596795191388902597022294619827074908867764823192410430376148638661664370772282578737323798752187551479192719598988359509181045189175845907861806366879796063338962038099275840905151478010920531722242259702314170073187478771287201086264776239977039629698490327093690757382827632331645226103559670712667520865436270296468818986753594104053065018451794040113478145067604479377426417104204800168389428230413785038730509948878113288727815113486716629950899979876739817753965846801896728434012489116642616110658820296968310819697960372588508756327720507312608248048442024929032410826599999586264144466005298543491194774970921958265433245161232104136958870102172242610011727606693519421513988412400121027236967055629634464727171199638889418801015875856987295634204325384377825714520014769658109975045050230642600447867511312716209777708454812959675108781539648663817936228010126553126632556226582807368542850402861985064339451775714658843682129973053542776141281093399372347367057663153841295668859053139463371434518570953923478411895695434550516910189686141122341626748510100786094242489595556249027542015989582413749780997570453824145792343908021607673078733986613615448803098336279640055419344242575463459047330843418126226050886781402031621969404287305001626838023317291974281429194219209881742564477531398784900536655408950516933318262223935356770729914059049484373914444865889797413170669670410620956043876638522167082500761531432014920923010118582307493491930741688652439049548779465113022139291396047584520882006232127827256567792922273012115749241704614059618250587993043454530198828516788261725249277361288641271701685389960880767490119366565536905785383263306197106755549731782535717160048075420917954611618147151700007370288696368445829674385586254976268344018130681474717458388413253194674555090303880353773812817247501573174262747524186606005152734910362720676575979188596060760097435278284098576307987870904704868753424726931754189372927762478298814990058325301318050727183989604415027166751809461932823709161840489483983649337447384119559477207917941776767112631544859255909723981989343826538335144914792485722849498413740105364462516046342284237443029848078291313317832905944663227648817113422105755281590749899295259410577061128584594820214529862511397597492723631674538423649461491816880748905450924236504285768167069520478028578889661240557542038090905685393590627105845078135532016248631739024821159714378478288896416966353440856970352170709540841114041282484418937922339293924224052350167844635346279902850300793371010488155188140856142690618091532003666469104514869145334515238976705187442331902815332444697686199488396981584647845239502037007741528176274019985641926899082572195424254430601025777705601184521344594228606260931417508996839643169874722998050733678219669409117461483430739742996357899410454638025625889500362369196311483342284895542437183809863508646005823298243786761786474381235512872363604300437984546562493994219546695380316544621881802877491085437497003385636962261883474130094590101228321027213524667186984957978751850964235759219769678806010091536166249893092705153105633484465254051952798376805633802918507539789347263647397525190675445220057334244028142041763774749829705598824014227768942382055121009575999943632646752975004236003688490572092344918435582621627385152521902877427042240080645102071126767237686008078253733571675024020442942126838843242082216043603053686293058338473664250443022284298618262879698039804902443195455839696403204798398332423269471605628423426716414663173848212391550806267772273563900443885240448697909524273712254848974138526368257734530790029777150659073124996236186179814332024268266861495308469334619302849464647426467943702054042823677382643927213920980488562910790152081434237214571909024184444564963594561482715408017502622680088933044467308387565403708858900781732662227331419927639161095803525863096628237459731372569697933669360357173111019613331232370010774899983792862054607391251216980460126194939031409501598971750856787820076077439680485777246094577719949890647510247682058326734034022980298602578588029879670479222721444289492664003659505098283947470983586819024714575996743573683575121211803072985858076096485138030399131055880023731270277886192624187130458586131463601535745780240745881456400680025651713798912205716026819966320303625601873749997657590003973023652266457223450301499566050264120679730569430290429522664528903265335464221531978454899346799296510254582856769615007601242093854059425858496410267643640398903150468097065567337317256615928378592073799963897854127643055354148934233898825633623105158846936052631827250891388158090948973002023691409808398408787440170554198605536959598424228843930936152649247179843656176770395438504007264557046046818649540503757990896998589625148409817771820722197349035951733786427469773139723039008540252421145360081451437221204272806335998678479880051508523647874380365479827420632032639969687695956596313421525960338542815002140166203008919887696039192946350763782974598075466561130378249030785604587262331725158374940634249761635631405635912854832307079578922702080789325896725116661171370326938286399315247205120132713669760823330352966162710186799634948309772327567646105409665420811788564891172314823653198765251688438160441107097322090281155316614201204772721960158311068152844470067906552545834411614869354408838061652278991577845857296040084053501623388386448302003063522024376339072452799364701066553548445955846220066032860878815326894262748168767347615557284088954947290189892884696754875935581711787376685671771294728687365313815864752270573504734129681864278229268643700839817113145754858757837560913201675460320249711615099718360636801111310298331901138755668454851265033894106600041924038669427537797696471928614347292014382638234286908815777896691961275856938060644237461267726131970191859331772255013971711259271590536091695148586412969614649684906808119652963376971517575915701554992534414172919809951150332290492629584381962386304087840455612231482095756685802813128770609627126396291995414981984355766315853893184762405705365467324957151490056122411342262168155141390901150807155113594960592663497944604176794947230889659914336047454234054101454511272650481404079252833772377246740985046469357415406746352684783558761395725607523240756569105456111616426331539987798600577409033134058214132804752675573911211310803867246155896086946180679751695217303378024355714738222281077129533711598840529383699476464395950394648521534045241590607302416065586290610355187072819277474991783846052883609272330612194225870167825161699224373399242433152722949790534894958359605905088500140240365270358496262531930212419184530674656841750181434436515190761636863827967031434617683615451245946508607181750877147895483375764472669006920353997519313309223953146199253114946574882882590540299481738860970355254490572918720516354172612697273607363315170561426027990983091373561349043282875478329881530040293935613670103273880551583972924760856584570143855947192895986445538611735368589027633541516241278561841942472009381440401312895929692839915476783454303522260257583143960396018601514288170758901994352558325561147285822830394544460407381951763215958586160458300798831615105379808682218557600883849441294049757438107435004845087519613392317705467086044623268146142498384419138019809664350923611527727135644700098256016903286368658683710383277847460793151812418501931606494718097939554333308983832783061818719708262760940903377415195113833801815921527075154650431959938445223131968790108747968071977489133671038186476360116541840533886943651683323241500967861304087040026649007071872004023408686213071339579396929261825795865435357119758983535063024914685956652435607465351044548314823434908807498541596662074349441287638941326501212626185332056477384520796847673092399641830801153966799315277262281537670661243379766449117757293031620459229024806122162367791134975930245282574007142081158907680476575006434730408494513954768395774275417444413090758130268098780162884486541766230679758298001042373382651962239284068521745761151035226215174453742193489535657164325164166445431506641584853042988680795845041270250661128209754825665483576913479781914920301587373420306414563245392632981391223738029028004579039226874238043702393502973066578646987101914347853446333316859747238360019148606874497668115957461402951854286907854189537496173972373945956687661706157777726464545188999632523380015114739905973099886219700141212701143662812940669718860691962234669513273213190977706113764830951413919987045304073681000486031014540958887198237103981581039808247272756581367980411305260769804647900932942130222078351438938928888567707481552947467662037118323211186763287241098674058948484252858712051634424911051672292212855206387443371499168910305426253243577347795974952303733551265991931032945845382624447336348388770015286142884531685433716000802884543271628019660102571620977909064326661886328144758954009980789000762509714189628566617992445335283986952028008882799748132421889919127472954430716226112772932701020087277579476446314209220693323720388330314946981771974071045219912160623909307547503556466569842296619601739904793972919948436566725220702146967817554424029450882810760680191248501548726390566083678365274346860462002391090066252523965488911911340656613130824302924735074608250924689656008319796034152623997449552762815524605843822287262750938625034923306132881974912656532067641714534588987876133829089253013349715898579185886374043511068874076927637766880151060783551949206829569277422361576365306405865526221160413019994662877268149200658892168748577164771463044035478527174886007726359532517311105280075053620152184454729971182384783590089703288961602529624252274728514352023379799855897736251668651289121501158924120235231872037865088116880150825444263889159691278083728543794830856214309995093999090815762198659887566405279328323209160081847496795931363873782671500672014733675409478621459239686791354426350043734563444469210918427258637930941443373265178135483280722997884744979849006139907702474580201221420668776096204504563365154860510563654968498348175171843761518117675304494659336974051454685047979190880853631342808569499083794916522077684740517140043031994473699852626756153579401603229672921214411697966540173497425658971262645297052873684132713750286757305928949904541499434768403409482368459480145645929919948290292573932980994765812949668425634077489304460002596137545552630781665070943950975971088194240255144302367625054569413053917307140515717364856682072319697859856684264222104099341218118990056105421968667818493678939680510780425488851834535643911621152121022153849677620265910127578217204065450665746747563940202707435236582240041224471526745408328834031868405738415021449449202830672070405591405950661475429949488409060507707961718729208824415990255114733925561345323224321613153371655867467306194086600227488187534652668235677464241169341602003624969103004518706212918393740600059288016677521504979216534245955952578654961618172289692574696303202214615304336576866548614372053910812844606240779484104115390567196551095031576258340886054365650374852601196750774137037897661785726937508846693565812332899042313464542837949353638194899906041723210608644656198167768961135971797936603307956137394090219341793474132478891690629956934353091560731867410044839562854922746170740421521932040422017151549649988237553497566802992931472418008220297805810769234000201498566606415566589097167469133240306213096496604807325914141153361785076349116762049524341168317002011529560192280657717100109385839455061720087453701992595299600028065151695667538342128245360925401592349652384914868061082273213750912930072724406641064120213110220234501252824453559529094993685866913458330203733747775566810656483994009071017816184814204242255258097675232026597872505058116074779893489632677917880687894963962408274882380179052545945071088512611681606128849199987926094770569458631064016265742411385612382530118475279261166589277478604467197887929164577603228333113419669780131961313866374143810442671411570953328682335972769632612457030190732352009005673205265861845099774452674933266957161430450294244441916027248009285522222717696107747169757399631099761266582369052168671831303879844940760505071718822082893594689160050032911917046997517765583136850155336851471382086124069088436396318165267256330526617821003564024369088036124514681329360080435946272684844913054497250470673135437581715993785362642376480661847351695636889743438386023918715635036738897533101604500645254130544032008231221402193114133857496531428030505891777778337811471788436151287885134397195485253740446863097994788105960447948470513069325625249206876092133265133665238229547881268581114290761469919575960921262375846969224547985033813794614572164531879203982040985531665772611835347659584496358676829760730657053861512867642101075148191303335623905209335705491083181142698444442638276273506598643013895743877902639880861984050921989659909918271231157938418189252855881521132187569888579282495991771001969263149982727504149353325197415365607559437291551663371804820205283255218012765413746754757013503808410671385104822490674439612951282605326875661498421268025774537893293004600306978489826601371819710382544188987366575512868109296848879389144790651588262896071050045425915951089719275362492664745062763272591814730896061958528188766397319909254036240296600602409561880370112649331271921197476586544449188391317056854967714426142823904976771579825076400030507341876183098313094580061607326280962991224864319689130603362458056285873242971766591537505910406774862565081161709269765546082179006830298962642112215374597095230668455372996744178538168229334688806901609721306093658132720483303535961414352819921775667247117666609865123868321211877227488749083162955354728542541197631954005339959836873280710327486501181303961548604762475672947307088927857276011328444793754537359460329423541486078359739182587664248240548518492653943712439604607864880202786502737547976611722561952846734053945224766155117431585209735073946167911770824592436875290466827615259174962359826901907341024336063440404047641719214107762778147439984201781261164380483783566982799891577077254876391390219672688590426030798628787205186764070711368928751782286258724477946758044979296994757193276160248979222083152791151257781109471631542941425188866267758242771205324256518306844575570492432670204220089281755781694909914753029864858027314104021711240897635660837014585099288221092634576058717172484202838284274417571080252639264050646037913109414015122537390023554194759105830821365402557640286570183946877448284095380996127940980427537103955418050047866516250723111477039401363170346392310786832690198248652909632903526050778981875461835842019624881277689286356706822266025209376831884346812724502886096984948503993157472683079996002041697934003709498972095720633928929129991540204834016581652306996256055125709350448216958903828631114953578505538483353847362748302117255102555721813400032171687904588898756331453734119620227065352752611947704472505278810095776098403598073868629311645430466114547830359227511721922747608303409625206764605887818666407065179644945877970168315914617328662387183305787624513861006236989987792964772889037713319183659927789949377310829560388935899821974585404077667044250363291516780361978641987344589707110269443232000044289493673761844009184484026869873046832720163215080460293624859035244903137465717278720936093744475737443747090433549265928402320734865679341605026824690060290062956448027953627822446135732456277113633414976074673057470003728672001839469915691183753484907518518305374011155438546139342576715661724048785671203396830376499945032107648895904978178000409772837394458645669490170557322101704817271922063349022758938805943867771699840565931494957140895087210526273970715627740591141570899232724975743227590021945919324204656026905554196287576724505287087041898381535070609511365148066480979137716992053697898598688648957819409156493913452412119659175415051572765355983469472280046606780082505493885392473229117516794358532224988708048803847715191358700035003241452453188500621566367457448825304278252124343255616822411763889529610049576529078448596857991329831927088407220751515820659518554740304863041146686381812485012728901155485431271963103706743061542015930380238032843077634668045355622027638710630571019482888652216140370506575282876801291896429433569532096803101554092180785504165587921762317657034690498620376810976444823965316652560872973746637036114950653666882724730729066966885384669753177489305882919672999855663335534251737516819683236320185722732201476428571459000942682311145803057277461909780381865009023833320576385791884104184194883098045401376925071750630421083839406548498611648782274007716741357960177341375720023660986148563559187857057148990131852676385924434854107321797037002895521337462167563906341292731503877747624657938740201325105784504823973387946734224763897693522076271926643718605158941031462900126008863811637546986770873262653661958952928535383540927565759115590465486537469119113382677680809251751457934683071593872472497869381161838293136680678325849091456059762034742933978274398521647585589343974082023580588802600415381350766563199057336653382702595350906681286116541123662817985710456310887928674029027862491881311863922173668964762354013478320782168875590115871250630669427770103394589428514388177507337067947108791287691272388689764223752618393617522553589626326319450210697551146389516217296912158203080839662789630538123253478918591054164240637674999044880809466992609833201860160362807895533608384786430095788712110331082261088698211130022776600235680274862131775520896734818711751784346505687737519780359800381269791814709137032428284650632314497609691264246481313834527628192567823326244373027387619719432719429146618845562318201984885864830870314653592412622024850265078738562577052214923632251956960898490966704731272726349302942673643515984417524000133598071982687585099674751887254750478395179865153318592917658100934808390180378887026096121445614395494593586879925550091753409655795677477555992762658989510746150920285934623824555429566868573477356883308870586792288226141495745353650585338514239524185228306157659484085767772572145684904701489306969249535457576733547721027640724453304002072551365242883659597491841143741841517088172217376743114701928301641231151398996044138635021743492686662658460454778637144804051105955857156652840417431506098416946230342527611304990536866880068404583685877631501587862200666178445865250378550990711883538588357819936460842002005772459332462564525849681558374905994647588130471020780533917463022250416767777425834696548562195853724857046617318764897409646700153423364332595984923384158965557790909478851316972507087363206446507301574889850488428472660582471879023793598087066951804114937449332819245652215882131848988966566873780515303281981572478068937782091430210113561152606248767192625055911005542172154202973363244270901547431507818829311071671649936787680985150926831962541560448398204949745022711763690976403043178137371717875578593675224193681848111040839742328172653238686436268855199133317841826292888690616655517805165795858627419949428020309076600501987502931206502417165123929770371846534367544773964997044101783768992358074369579915493956578991816026395660542335302316136406580091568691408724999340105946898750447874217903615107247520688424864768667728930339983891873887178032358891979259816032863691349981537767418535670600661707562241510778445128318531943615111934704524310492615376307971259455977609598824477647278162928664694786093307559830740358562116294730788081073571566213952067465667190509978437132621698694930453724903611381738821788595851345258824307206907620213889973168477883951494792234629938743532264590276433977467126532807858165946359442287224340725983522165753673979448874840957789683304709799905521061072426020150102432868806362866585547738858057077371551511072744978876577832839571680210999723783679189289465021539338762535311888925352944832648739104860224745586652911874658631710813289305280278933529830853041843928609610176258914926541701102762351269158575572592179464649617942931882168801811280045499228227411215605936453399537631599117918456433185820761430784376602226173721105273214954635656881270750061859277780011503901414797941129145243394987715808416450298073110965485416871094108879707390235184789068240194726904686672341468280680841976358597078111760674101942143125995590182862397748730821610845610104007310514358168365488932133245491273283477954301303823230551186976681833379824781501548279907489756113938736514816725509517822265596195538954736289677446775570441692020756407538375948983652345592072771047255376335782682959269127637920596511607631496685871987585998197781839530754833788480258006786369783282900045610076089005498216755953531465009735835102138638369629804211838770978033038877252451248700226547248842711687975897972769843994108005976515269789818392945185212881984827624665867485026068717691800799900437754099992375843805743417804144886598014167973975281479044701031506243789071321529315486878126888322585369146558139822228784800178076436631873289158558500017051302189475341448833312248984336742406589125600477243148460245815094874984101394059536839904176859532845406464310908293549500622255534204338358503057569794783571398812989890419285645722077619644196733177138405520782966151645539042930761158810126749669825299711048605888463452789460117895787522945354771352968231298240357680997165471049760130456740532163094856995466630709282224468529473497760040995220148343629666051721290261570055631505259288695983582621034985542570930969667552913935963329655690391807105585532184817018977544914012121347351789072270859546931264185154259273350967249622478649320804336857299262007136697004602015555808848508597207163386890365601024026364481291554191807496405453012695753888038596471904462594041473409687124210236273322753070591328143037481793668021466414373380374393173965463716659519281372119471678197575467492703908669226094307057688768280359931228768999850680116249496905720534528004659375179366897824573026795633545716808841054072344166715776955677689168784432349292774039959804135676466867924552908192775483478359352280415999192942007309007284598005745075804005743822981212740774923348595130392194539648408807676828762161789075509410827679841011209808314971757807809776553379577956550337459173075518674571505204406387311892686502659160747765040361689674304629355403393844949599772202750194431123665416590479606512000556364251037971663144053918965978574461452112909768414339829935245444185416020183105871740663565668828050937083210106988670387398550299178613816512323368995617175879121216629218042026093439467000867392477916789420074826725891540919639376824386494682496404556445664944014650975358113139361060105189556933808024458178293754674904131096531974424223097123443490218340594500307651175973988998731234160264577708810270953608607234327359198784838032362209585720977144239184946288196988297507848803949493830026846488109406214012827274596233577542208670992920315773962235725652701758359792999478646720669175059991034420089434424849773693121504363671365461386624709744444148200904912984054734081194598421096953473772347721044263796793380087686904381556862622658808238653918876668400896054633519897327166620334732447203205403612930651006584687466540432611327463687053701987100885647821324696910844506302322109719522653141341429144857961683430399408529010128130409174329687660738151781796078959726343469190568095349271538704520989022887246994976137652739551155934607410771555434393502201971574682734614920545507079662597569494622521777581040328184310990957503332473330057525846838916885047031736191222796062555491982240283186597678807129106423925880383388703688051442406381513415713173636425105542080211280231517068416030431079708057412368055807374317232534113322642561439070805776163170519749212151422575705361057963489592387459790795591846031474814479639163074546570545154851052258550474440910537378201960898278203788923239471576621109049840130350847747577139320352616020799755985753756781379171005434499085126276989707292497970465079031554826783373734985244237383643219418437480639544629390664762273775390736405017393609439462591423067126910292005193637944404579981794978591121619750975406429056784473702723558530399365535833060827718904706097118361059334997688833419263347997063314029449356818650083887465444142146321431998642069628358585958983604706777533249999045463443690527226950989198401307521439007318448109791513915880507576104868023433683219787185660517432002749533465161131308204666648877194932751244308014170493547996298412889529767450077076410705814832424013435619946307075003907645864018609880693730653677774256830035924635190635922208903817243382763967697021917353306609721523340981251305626702431680088307916253898444238170200699765174813556958439545954699636474802059365118325895133194052222594693571308937872300852499600104246922265009316315404834225591716272126930202192267284329535979845580296368724398122857218234082660395976161812445959810084912289907054539718206601139747736461518298242556548615523844591949039137172945829970606525838178252911160415539965030835833637935725228779778300781089491694440613951776224174114502819281510628827518390815718897365021803730294693249756934267066472532754317879069639840398397998644318317131232271997913885267399933729088508635581820844848741739403829011794816090083713855154472066083148232770298185799131192243257785916645464511963090117569162998928967347286290419377774100019192853853980727628240124622492895392804313145647900255099440782601334784641441404078139343398144525459050746609629506526072475806306081850955045481765559117128322185390640301277647657574323351278988520831346480514000232440493644883180316419615088686769996821327688052835697125786045692947589962293622176194416555662336818574695882071676302669200119601661650958100570660295541091908342855236743966613372550459212797441033073231886119560185676987246266217945539808322788830223242492470071592101580412686648631738351232567301336226027606832007296627934583267044080324828431641196061792152984879328489931599168815488920355026954796878311961331841568361833430370712604432961625979252147866059372789891720915893942631566615629609962691128065730942703961106946139180568517594355546495334473185169096904082305016814724712030378508102617307669386754090475931425647294605578549682941177014619403448131086853922805301057059816290054978216015809516258623592831977766158603220617941273032448258354904875603625853220767656312306426044970864557237363350557636447409544486551454279360269904445050768011947643917451875302356215418404857666747024053413025498770272536864952513230954642587941953412796932526681917502969865821718479258579580415470569451244820462149681488328591778327847659347039829306281721527303418473476749196801243517548121651336512088048234118915500802229046120974187512932989956008845615689366068796789317810037281706270482372298281910733948050787342617345629958220339948377082356608167877761136619503227196020578431347667729200878778525668863984947405075007989615288219574653037370943789925261293806689986084482880266135771950620934251923166286096098782560701702297521046703636052034642273884069243737272351460540524497525102259615128794559740387458722420127219507364668907630332446761912957268285740357704768726642834848936473890313416007329207890845771174046941715871481937535439587198760977580184416034127648875025172796077340955795513051222521942110705076020816518766598543178817909093363195483885249308859985368052675891892993943571743335016105764233742644228581730651577304456621893035148782312788311222464240804367918373660049899461430432448733658181564617726799788717904566887566574581102635959654786999233446035609294850651154582820213327198378879017963014172769106629756455401209336252999854669024292581940816007982532507038590875065779628647877538402641797780863176554275913578669672754909091936628256148126786999877045774809661960196141479136659603692707770255618726707669999298175098207234091637798499906988439479006744574763002451405663865427224011202236167978583033924118526075605454955088100200204995616612434555349262666339821295297554645496811054587847531382661630791487589572842625304286152876493285226220425260487335377187008027373353742427317882113148047076309230430519010503668318542708129952869751502790767353525799589656632922155495613124502558859526485066198762561004056736654442336829702262848410039900772591398905646534171129881519150589284525942740402274786213862543106847819621621858037068947087942943966099312062755612539150930773174958217810086231076145467794989154039816979210729068836645420741064611468823150102686747861364402280793177759107263927806875532865669699510816804816595802734353973742328497067655057058203370395618672912822763560619919950992863033381984349551657873750464527286720277790991035067767579979223993542728142705133368016108999273502748316455319764950938397796087281413373903527632248733770540357430944331234637016594119526687883953173587451587995186852902730398312227010738728075599569013387700783137365439089992436112561099929713779266515637620080834893531630187142858712677150747151030114964901339641335055420225546144338604069809604735534199436436418855458845233505641971229722386152280899842895756417176316998054411880255840053128719367887867768902928421246928266076125569836213083847020082577669611712392308979590094401362720421288017458857257806834787521684485025011657326477160851129155330274858107966535924847702556820079525087408382702257685828879313610913649947855312552214370435129676902316202916896143978889695510057110937178907856588399852072335566675805890370739851421622582086384802362045588054253730403732758248020707915584848985098165430218255555166147938911463923393574898070744612629811568025770640904479861302502722900283239410097026046434444648953254517678101651733859040822176115285767946093201228516657680568155063907987973556404298745424815300939049681191883479016021504667831101831359471081638848166565167658019340869750334443919798626167931330139109871036736684535295437552834394922564822562883699125204821860314386402471200104133143471046427764663272313049618045351567589471063338697786391734135739084194195510066806774082059823408488831355352661077894399154959615630650157330089925732888826968356113105693622509534263807646128678060651145808705596409089917024496718795990474608298339470180932030434699697901656861587405130697467304702914743706660863016982864219788450384992526515362241626865322270447649418646074145283714714780970510025590845355869332047760055396601663431039583610294464798470649249645528346535670466237608553295253488745649689388850796301141704068087233743180773011575187100334902084689518792108070935598578583266552161761720773657917835407386608500522082030818084846591318843758552085463807048836006544119955996694256061511858980095626113556347393815858420398625644965270927195358706470047249730611468680830363492879779824053742209201851943590020787540269822640255522972415988313860199203214741757310920381406127485077313263443056150206604538342779708215107833024782610938569131115726293134932865463618819755843284704042651974741749704784734570055666398613165407509521252310603481775374885255092886709748951573140019000665140979547892458551753020862695921260383993824489027800732386616835056560125367893036656119755891830141919424777119784183861096648693973420763138604906111066476470003528279461760641651489055971415810558773198156068976428243841853428247332498922195565196754897749536290505625531099429490595448355012952673366055800455471199167201440968393664591659150290115470656776093346717316405744910896431543555644010933318335269827415001178064988767767489156738573023234864837041844904636993295624997509557140721765797463890255473227895935989813172407368631470734748418664272569258951015018524662121976586506914498853976471786129572690810253390652171636140207443535582541341926622306062797005369904590253255930314144623746579857147989884943917941809140893891284229164109522549327111505216351414199323001282242992152249082660784300498553353744267979921598351000006970418932864575000574548072856153491922822546810922058078561847599502153299799601376968853420573655235536006542036348544459152367572129248529389712855738598861046143477422422946078446169316357885172439597122097603660679987302005617618311081449227652912038957870925816825944631383088311831231890510908567322872210461579224911120012379545373792656639585352016836829367450434590715631161467626828071643258814465770622432450935896640917463823932772814242386378873093343071542996311259736073537027198813577149723426623863217978321072202659366059976999643284991397513432266281693693008884584567327002992898314540097601506496019142661655172872234647865869807127015835580221397027261057626184003558500302199226250028458722504402610768138089456770771920713622177152027483727029166253461572073274143833436181775418988980159974136408524880603059531063052839831226985879313354843252356397902178075808658127955457555278404597200396203039361212632984755425683179295472113445857511919095507015684941854614075615132597361220189551961754513951859858443250825947848466705924390117044003091758466008281195226696661594956462075160315956239725056547828922082629623988699076302577434178065484461998338577772810040784479239917420152232171053124364937132137907925773179956149963854051516459829500231663846092020069084512906761803202372159301188637217373813487247910462048327676033032026685043755324454864196465847704803547001629530986885439048784896631439539534108564619495363642243806750049849930209674323363144316322856872858586696342077199170474806148035236895835917027757459140310541596892096175154602592183701299754442162323347005794919019930424977015869001135479982792002986391080530581258578312697890757916646594216671049396712367555763201959001542109514264158961488852423973463023315529088003985741664273017262340906655828044027302164920146572936995779599536694401738406208995069590330151393237335028342780304820515966013757111194531909274211991470285557021976292468267033762243106260577841847612501871461125761216507301954995381723572896551471812137751794183877942842674777894436553518064731112758529030658234424599265075983927297955325703869613127489240597081650081645607291814497609632904850204173575408236948814132770016931812424680539049341476149927931230486391678696727356795259437924666985679434243878424202795593470446105998757391231872358668991705491582091889086172741169018552811802796015873718057268938572807371318513182675884463348240417969047294146360980419774593995506328488279145899880158452595950252563547618666061413312649378518076760184046119835602119527154023595343976836861224711995605025229690029777718894938214561512429129253960480999933693211307614138179376315120903671148031236360500975273722784675032390355338376247874098486603583152127056162772526218718582884637504737327601832579279944042949654530590362586630218929276442107308067456160373542494602251995322636363959085053228004740919124809715329992051957313785338442019633907381445621177729185419595137279626735547547744972949792645635991357502661301217402456624832305868615100467089459353141615360920150962293841082693826691367818059358292659203630318316027592837683893206348451062658198061596499707592861112880582372328920763886528876047017683105964332576528748392448906783236906875777347203684869231054378157025097056695623754945214382219156644666341058926145933419950627444293162309137125005345353474874345532829621191875799182659790969462009387936105009355828129271626531328602358802176645581593785738237860242621815457036594156448792024326616279902735285035057727320770788987902242372296194885917601386647770450781421891309111876694495111335032323002558559552143478736920521861243629716229925705485631876168180052363493286235270895882234630582262032610789405253006357366172929290695274031144944219875167440756709994094060523107877256366439624425330436828692342893056891985010614781471103925428041744645877874068665702301359492185061392970049022094540770585108274787254338020367814943589412819327951698685562627799091152247803380828459608187845542570852121023201208857502069661969595726253473238368224171329049326945384731000631027047184573693323040820334875487753144152953576803096664921620545308157086888417998218128659475616114635968668998982970504409455723860439599019327923404033501735813964791878454212048810637546107201321721819720117214894910606298279847785582970925523184777400740028677875811567966668195285890500563227006538145328969422220315778005418987245026426536475541179300312920840431803451683678240279215235052515563202111801461724287981756247271179417586843173266983810175022599504349299790011524910580163809558663539360301201553788334659582628031032886329326458107855077370181023462323671555858230838299863224192663124207971930881616053653232393222360346342195513567987621706804269927631519864256830589333848125459027564276251051266170593345470189763470056252774820217813368802069691120019762088847533539907775326770990596849236326038805077784051610212422302819603345923704926575357995018212568715499713587200168882302898316789040219979523195358269125954108118909192888641203422545850513895696860835833078104176166593760035964773315469705158665969306935875488341019965805586474583924992578459604869713314450250269278725972185925392329117370617639309426878338592013692507697518640391145225404451929615830390691342497390039150882082832047487669851878294921568626647489560083228639835716445338026732471376467797497031955809102026058270377798201477524413665594124200806215320052946446101654364868598932317158782583659849254076687883133532456375179669572211748982033439387452287433366188568965303211124820531357232916281567893763131479682536641717588129608975711914897867494899853595626252729255451317548740564039041693910041144640765046292502868208772357092005825139950152058110314136406276803301250029476475049687416084924624843927165187943380989570545593940538217117751231557156808612928210334023304034837433621674933829880552152239137425447233327601003890003790238338072328645429324124408273383013133588717048447733429777123074137300026621608528015707899356063624292908044454404292714860678481780813393434380105210854759118062110514875271697274220749717389480392863139464180355601559331960619497405798663249422823899926807161571535313809020474265113508929789677879563747247721654339022698943343931380439478836427785500197159087010349493133995889064295862481115241436380075928191893143961935579058559085072964820754357491821103155218643450942381964490506561701746325408597124270863210374155536563335162837295897012206312279120977845171871322513163578431192204837028164911107684281186880916208562492203943059397843956704117347587291191298057039432439581949281686201978937536904230397985335862802477515788543121978460455389557216913367672098649885192956481896283063406755045881643782918622614366714544645660803718237160500557746662623216687460583008555482573281623372825913935228862647871921768994624126924417955137186706374737604351741409588140310781504253371697896622020512437333044754543411290367698570159681110424613088543280997417410012774522779648726596677061198215622612632473702675004138123258455937838625985980316231172649645364497835175700908658428275587673546031112794482224604956843966172348448114676041143630264903144088811581156758312977714185821740842647369658164945518436061248498320988652650597626959840799916797260876189733871532943437602811793806105422766769895998737968784727597901757897737316156017874502537669650581055881964985707163339412149431191393585279974209286343020486505010946970563760947810907805542106585244496999394505404735015495902451049020635086565488038972337895402022024727668147854050088459443808606603791299825331233015655457900553361731547092109692988474251920470338335868268898724933782230354672771106538031813872600507561696724209356905711096973559722440080826026634563705579183513421408804497922203163301663417447829301050312116492513809079149262487357551121696296581537880997448894959540754660765255412200924585390262676440967362994673035116290727918688377376517653447402697875901410789593871663009526935244680883580633148799795890184796235670545820894957599112612301657108224982498398443353744928701516700383932966518759374072241166739631761162213360951519292341518837512843200882519033513611143036091984677123024881931664562491874701982246732551615509917904610152264269280721916118384232008747361373035512997642340304950107216480136730950167909216281830129032405691804582781141076169071650400357546990930293666323058450820069356838386276647928244155826386743550223612739480908247924698546482910294166415754938649148670020514082802845644291299123710599544171909170477123374564099000866470125815192562789529976014137182311172517171689410937025479493257340709692273826844881422314614347593727137589044972032805783207095912123383791107257919144330529775587226654847379925790533737673477261151441206335014492518172577166065618945834217021809249946609055155581482760914130896230575179363732034962590436915216559567105328155690795831639884586112370178325551430723853595208618208092578028174371933402419115476628220421013321811235149945993136550861878517853978756662485030397088089357477506775583271343827223543110868536543903065994298402531685459420469675983753152863392431884862152958371066680266440040080107139866094443603755910946778630613863803951492445378538905922616959371724846802280216034511849677593751660561959609725267189057839891679654415375257984796808071673213782959126625339464765556208180149935791709405975941459169692862004937365777913581741354216527390738043171895365984917838866913395614252907075106042929864597612916924936939305900968548994313402680341477649940327112122419984476196908918157183176951267650593799451941008412575109866918524449047532465696095320682100936139536989456973572945134899742222025503762937325066203713174830377650770077152919926327417313526283250120581864361194208337541084330459270710315597930744260945615129167612865694205965383396737035650306726232450396849431316082082674270069038768017873530264032844557738237809674641944922874128024315133132311292610083394758918934869065376291705507597666206601737815532756360563324197847635245624497958270741415426231013100752507911308064618475016401212183892311850281661244533678025374626237434236992627235233417913272292181969313120054545033803307488827539224978634255869953356817330132744497185883634007294616138626951624843838940564715278956305309471493732234093095007694807495084779216830828087269025310428975088944431437538181558197517675330746374945416033572043342418954091309197018012553287843518979561318594841270733535579835869275058219245117990451448684291018638063359304534333767793683625631397549829119025921387117298133131970647921994830315521594611276532023941999304832674301707272554700012789329465425361296889815342294395589008835309738878181615944842064424325003654609592270769554314506409370696658396350208091052460605610130173214582035080928733232704053452591360292721519319292873145467663747194199889965919311959818326672958257718655801058331325691027937013487389210744935809185571512498465166627253064736511875395052818925844908795739126705468588448555073750313604316108013573954990858644472821676898119443667527599540340803569190313848948094498403257186986928529388992030593394636391349699023410065723396048111228935506710342273754853989589614300753827334765098196007622386968865643954098383240482600754337149197429278344608042456305391611796775355252552478114005179150673358294163798149683761245601745372357798160133222087642671561692507565230881339713920513515369128607705013840818582409378512390766516462160926292686288817509678666905181576729368105480019265529591217163302538554919968306637405009416989087972706013046038676066237969047468681709039498986125060740253727323421061283594885341700394640952777257055003468679721234472201930970953055145663239621649455701854812498848425825691911662568029386160518169418766112185492248022373805342017765533933414942880758117211067526843930810365162103399601279646656773687755517195421578229894767680385409405107148001382768669262180732577086652585979077432809527418699647030988414961924268205490507265314793854343602094791888540454946504399225367263122107089018154609959895863877994148349671234288639366749027068259628070705644150393044874839946000268901398680134029062938070255536345269884605629871582699815329396671087458982341158182520648752577742798266232463570968873053100078053718764789671671114432150239543794642321701234543266897400755010731851212752250113154900866288492546281806717522149287959707941323254443844836103770261343569555194995644028530535968047894406576745570856891302805988854149270127712951047321583811048681025963087709964762327378793029420027738386387054545920004017650349732585084433657303481799130669771635909907974434948350033070548531850227790090138070448953469924377759187280115186294640675022659329346248108974198107244907393718555280519116584826991588225828270331651875399643614452032099010096794689593617730966043520332981836418399517915096409414607046999810375515153463937889079188632972787352085847573528477212382841673704568224802646784790651747338530321226701260643018537068850727218448806097441863858348795902052549960647134753102666696026339064124884280356186253832188004399835603539743245896322361219874854985341908836818266634866220951997902096345818049263116721728886334766883425003967709110433442211327475375642583876653671855484983537189481364611427348054194970700750179793322846052097354242982984431646990338526162035446606321438285186074214745063078898833018580454262344871658956504555225581610780734283629768727260466593454786076669951101841732271709738089210964076065867596709175853036303567471561944727768554629554080145220131887880999787807988989197367509346993163905280997917068415160182324032975103266983643160068573705348161724063568489838795442158374205182485147254478282356541491790605615375258252813228373498090446755338209017481854969242835559321207586843416765735207677655446661190182258633906733571300274832113328570985469788487538097076776874188527089084087018094450456097610980449795393963474810617508960305368710094586456949786641278702385864619076195692824839319978821125540764058385250008013592521005125799625647692863641443965838178260742340954736991331697414374250032971959806187680897534502980916106973146737042701594397090483874493788935049372183372694382601996722680509623514064247829995492310570767169316449219383101467076304615110218538026180132525480948461892117151498650196483929533875112592666559317541046999810795362455145468319073345885381664200592791931256082371262693591714329107698256378193816540182726340993242988544214171087570176813149059658369205494867910168990102552679834855990032074941541426578132513337852270783714629515001301431579180220917633231419668287083218066464724681395010880489796306542428240677012544937327895010428431678441397772450909275057067769429332962960660699814346897435809038929556169877993783064533282353983237100360615129902499232730237188406704812115480995941809346751979370577072188884985665349187968391141490161759603399816632708439602425508863971071854368479845991529608687816895777368311529978140330883206965427346269442942021725338063060224190497539660289535598279800981784441251930096662877171583047079275637705356773465534682919793506414641208494020911319146039253208966882800255030088161697184618816037805214759893588555881686959612895809285102194594726097668602261630507915358252260754271974843138471565270943504471847942054254420169853414728487134573001011350919799275628306389741059636195715320370265049082052365962974568905214447036657705334934991216018744950012163254583220384886334141712158379814079275858776164778817817626840899211396287361393328459569031993527332830547749143237651952078091263711448810618246924144815681429130904038147557575645449747086669166920092155007320306677538259368656914464468490297129491539010789211568770975875628565175903693435548804378028683542672937170904315294247508318660728147403371269939789627822067742859260567326776639026895515531867286470644116491480846725966215507246133263147109089802358922958023656349078076057398757130143228271719776862047799129065539020642992934942362475260278591864593387299651732296194425051903555865228279776141705026108026600271997598026335704632557515694921573503121946040450039350608768158680670276789164676165079978499727284430837126943249120763334330679376799986680735172089776977250917292844604377495890298417806952363092313313320153921897401650054857688172207726804066285994093845140979706488996663899921208376938786676820548951935152251091293857363665846610036769158695204378237774551149461604084569243711822972192224930242006854089480741522433025789190852985826974922879158776404942066488727645315400910987654895568590203862685790857193874642770021618196218609230090916555288115927688712148605291212338248602553177198820820108601392929231968910157570072754991974832018629914780909237555743145542932301692868676489009182886949387686182071806004284286684050214766440430322756401871041522592577625237706484716701736884109941817660245508268531657151212282312772669644063531865894548854040076267325254364599668349992570717251810230605624387199014060773008743530245683147179539737351946226390406682347877108835954551688882358133807666849038281023097064763369005218693797550591435883542986237655971620226360319876486134716156895722661305013785373793978305804074694970049513404019393363464793270187388815239039617133781253176097670608354683928125511674992144019331998853713502795414382931397781722652917066580280277834203484190448212592624540889559312117400290007302083698657793524505855395136502431800497665748171055492345562892592486674413918376951155822686191939083396388900931501789382553082105324798017633159422975318444269711450788313697354715783575479061517614446299836233631379004709182076913151862772973930965743101377129389643911815115753335345692196787743653141878285733748513839938529223701346537650888620566148046907561785471952642312238288274211088865928103754471487826613267954595995370344916916573965493752264151292453800984691247341161282102042049133472774653611981009176941815778751849210318893931611495373594601185417299015191662720289050158183117720096962820415275661335269981500156430092748865791995063678314707018095398908137014270042363179669770613055696820877617897389947008635661439390657508688186929804299713150539877384993537448473204047627481073850646735736767634698155579908535978412797106509640532492307625633815395754284018717962033867239073482887695733127952668381495668167763216789999329578819372223686157012588802503146731159127165007774606218223103708476543742059765522659245224766519613502474775313784218746047997265119691268727695579983103180383766764746078773447529816056156122428071704129429200944528427852707103650081246427977409424107785575301995107577255143558074145058442561576379397709593734776760141874444072950898880217231324669948960404315578008736416191138830685406594956964098977085800461436018317272559824728303480133013921882036514671605770245434674573335997177825170580080055394397613441440129162531031979656966209123685471300204738121129144710891875733005300765933053381253159794533428273961593973370333322516655599375894453632106547094871831964271741708924549285428274330639584770770313345529625101701294218127425156084190406781534169155797504285512776218683315165481469487979647474660885945566138860922144615983557368852386027419529349288436409513016793551602461389451354742622849644642016022874389979315820358761520320778390562578128685997166607289176518689278740887723738066887771003721868001494071713876724588187222548637480120249876877536595015062858525642164189712622797324691543414180467071487652181075849867723458393551287609997253930886603490737138563305735099302719597564831272252823301168701207844099237385052673158220328602335850465403930959960587248587886277059983107971909674285273309673770108882396967969028776759046433576648741069555537145226823027441164634443737407546518744049738008703672858358114670579381680935663274598272407834435806900242909716863960580322142414031475802048816566431122129190497413780155894119128675720399469118185452271236806720097475055763831295669215368122920404825793090621907367129180694406934596966483495839074206875206150993564755449631728207474765672470251974353144343296162599043881129929106995496696392049737751276267415579794033269904920489610020932771414902424339615559658898521817237985132059415621887160122804312746486264063082628240680949761131122297674197964355594392850916671711493117926940831333851439846257482283175984476110232432390045668401007784599649952039312292713552265692115251593671228087340826491140851446569274179281235813388278040485259756938571463633574671588469910742388862666466526972667323318966920036401045149979570467241759537342647478559076117900636372415513671443356376321686882953310969257900330558644791065040436324616309837264825923050838045731010126679578126752487841896559006610389391878011230432362967602753214198476010386262969314866515562477301282612529039250482716718323689245697497200281060439984625919105473148822406469151631316778533239657548754779341612054885186970202834450419405744672166460336429699881475402358683348272875023896763098570927815136798369886433419622779293540179695862971347329273108574621663811376917911429051749171202285884975742798957871311109369126368238358092133765013249054746547475377544882506816525042017169145001847311158014153057739211064904187386713426983482692095767093427448452035698459175422012866502067367454712781530791765798951749289253722196479804303047024328539572917147424859376132403586197603450988274177028586508686622074427961098716814740918447120817026356844803093450772955458654394588562579443440971890832199603387526328398823060817354385980499766378380107403964412659484969584471511986914095146403915819666590091680664786988553421481270244950595514321751064447322155518160972870873457608550008893955978570849825609552818458460235267393256138001657104166993314144069099634832651220024898238765323513572680080510884094205422203897789834647759870262162972910574520202661062872938007782068321388440040684861255021543658806204777668501840828143036264261519615522542324322510088680913322566494601930403045221523054309221486398309252795653404568025950770445846605569469028803150835786629870579018242863121357937139202988886485334770565737645071751045179083863027945528819981855820816647240369177535696148978044910288895855772929928874304001282341301861774199554871863769009800689574155418009565639484282177312460480260118538332461688416761805428449842813171678580022691718068879798732132543353981638423523494630313568599744703347629797730123079704509444445660475064079329671248288441724451974289980923699374228987149675354897043342735593689004234586277258003531459230376041507520829987853218744064135607222605167755248874367913735501084770687321760806911393377882051360335996458059559872437247428273223855671724703411453507513942021236164192069626466281653953222923423439566930965778395668389440901625771598054981755804711681302306665382184942744420698284759528625187089317503488833548198880887299889674197092170750633133087454135080335969074350247148195675671375049132644931699363402031568014350805790465818369279362069603537219979960793924608578066891090959574232808311005061869443887987683162169115027976881120500456140603301773718382585784842297619689083307975148047159587798903176476292367537315611161631769773255118047703121361230740221479002623311284818282124643197439444905108434120510867279198474899248814072719999306830974088790649391947295957487725252094253054591694331735748873638789811796040264266424003084820459538589393482958732336164996601687261507150934776780240439626740243323982698765647800782281861967257517662987621590052249573680703870341902209036552358752238045416285607876169763984036195827654313122086096616255401076891362059203780034048139980797874546156729194449195478428421065692579668505957039293652203832713319124969892956422531827600116302311390921125752594601573906304661669249192851746124989054965503801855613638997983143233930671258862761680342889548632472115670154928715136387556878959988172868889732393265815561455887278891865887369026821684417243285532713266288700710402281038901891309684863799526538722706811357897587113709095978152054602191925766871092335071063787993806387923515650876748950723164938295370015728152424276692463510450402860858628672520405170551016558555165417913874316643000326125302008140948531935105109379480096124661087974238797683840934325693477764957202180971194961934123952331366053804057751783058576181429010982818289471768596571370287083179636030343321906016192944479158552956120627817358017679216452000196876784252069477680292601812160789153906496808962831977016369942084459889719305051148425696005906352192972006763678729007820821685457222304099099048748502809350878156988821331976669371060148642129169335283066828964572963596239089206922383040609785439010319540076103917992116274011200207133738821725341426253511188074379523014252621505933836147029867024020343055907807933889367687268467808848814206704881850987872491831585425166018017384044499509121172354121145272832503671194077980975146184740462075212893650203539009824215246028259941178951457994018309988007647189269234934180562476520095513729947838585550590587490203777891730023401597513904347847134900267763718696357153059396249918991298124069630608451735109620043935161808399992493151057975065416580281389440179580234992183475956864660238196515187109395674952570756285455604519614707769106165739377748487446908050872032743040683248865769598262880080251725424175492999985455605519852563432477220278463099554180448577889262960133583431938973332187957529303993619827289805045888206860790349515395680509032990259746503700417260953175512219466059640755840244246435231872818152921041388719587896023290559997643127185636497288642822808090121420731945722963644972848253652228966374561025082119705563855530401584048123331510932961279532540186587322953901800126994243582546163496187506369520474643207997266379431916631218403378384817266587934331380478475514841691358909460500135666796526261545729520023598131636624477693618682295135496165784967350037031409429510653579711744079046959519107284982433319648401842639033987111621915580546295300870878736911522020322757683159629061412097338834135642063823316758363694900031879490683040023468211979307356407432192107600340349336811627873097964941447030311406526602925259580774888358403280866523943256690488303835073994990716632337706635469829543464853809170477823821403258440496152616834567369229909754194663253595397327777209003820833439144000824457073460856318408226876847456044897789790843614658798935571911729721585846347236003121970418946457760746934774351417403260652216609648659245310997583943193393587070664457945856843899828056342733358044520481390658392151540362203242005035613479293830845731395952270158980829468804630298613417726709468090706355030956753218703157621809635952848210683796932161959625079467536198660787774610940844106070348525158963764636005595989346826494393562451855274498950125405718044469330090579988197800776194728735888274435580896932701578509918055323902709832355835921643520748215123758457425700734716949387870438546204336836163612555351272327699397606807781248890629795871831919987759425524326319353700266109826857196051708632443039786768240732157955268529183600539582691224731276884384687582001881078793159828357848821211793230109688474983558168249491665305283061274127271393016906089507780200594527802418628184913372594770252456457747803782524215556207892581835585106230258492530343410385198201737245240034565895065339878558919878226756559466285426996336524804087934120080462589349953874279567692339034246416510595262266362386805665349741953940336812071938164694490860621323042661447166913004416269160114135914721859207948452512761620618663148678311266855368897668709615463110015903503570326724624684079333313150502529676571964831667029990658594239727963613494462205124349736038236244313980217569024404167288607086451845156312581717469727108027234161616302570323816504185570621787902504520621624286101553067226532723590090029263788452790500398547757461866333452601359319381740053047423198314788032219481525612415489783484280595796623009251467718276498413243006726799851492860800435352238572176692489980541862792548040346268139775869221719604342730032605939684808346446519779099385348842686746953881814794827292813265045723384708779519637241403860788311685727733680625231347034140889744530631862687588044751711721069626388986928370821722485322813227576169488076053710820748309621742437389452183794908217619235739251410299738331824155670472901728644913858681856342605899110451811453365573297719702431863266402594942978819459042077599443633539203720818901663431957779986810719772764992419656467723603911938697015198398238325792560442850824093773616388233030551720769524518537539243072841644855138465529368897423632224826210023770501066899596526937150008130121952861895912654832209571242047081357890737217649406855066052897240739961869760718873774832884114807591162433545782764245000630719426152589021239432328010941565683561891777719530995837713607709133895025628106639557442663607314569653118846949802425948037832381585283131554121504352666191103956119376829916801570521351131175055455166037712485255838109021665676585447236394218390223275465495333100713371908946639354837507245308584630358758458782762153084187049618367415342300395821936090535877979590971132307235525759132618638327047457613447542959652555349169387182285765111463776092525520424264202318337589557862025380472490026353864530274911041648105628076874710299051818108235706675478315698551203110731455692946650747204948081801440330267408160097414677742004852441527053334573115542421533358394447610198143742161708820279068848563026625202651114948885242181908904145158118290644525996302643822558597779655108341585986928520471568777684216825582092487957313748809769004252128585868606846414803869914734291237366108994023600620317624382293053663306081195442316511843798601152219591152269796490408066790633276203145683629622172882409292853363968210411206688763066074194454003801494095637069145340070139380330566071151603869139377230785703657775820656841095535247307960500869520497815536804370200801183003949501403201950017715877999300612785870221714221572609856738406844776841934447626190691607969242217308574487849476082731575345802789020637133250824956986503409221276588136793963554401282480155419148336252703549941327190918144024357288988223906435226615224212583993615608456601752866449570196698287377376430001510681435532395393541720502268996527917658489132252858068346731365279841429091979901099445880509817659737196845521829829622765957412899325518841229994065390027188478505276165270562274865273780963660398355861168406082410254655324578109726396314589035538213553431234141864979437178361146583332488587078613425585094580108812962650848025081695781570082418882624118385482953924623517374358435696876679032666710238432397041961673848121004660755784988913799555841916004170553300952380241972068159728522553649210698139763363533901849270370342228188276883588822261727768730390580894221931938450941403458222976523536409958495778598952757094860526145994774240047062029557522766003467492065228912429755269160786473049559991555502498532801921534128111552065412040933075362416496640702286448124236258689744299778818743749654659021767227006735007646258978911628879327367406617265304196627819524422009548249429107403293114431065303791821227994805348236701125630157698180778575040236568321556869501031710988428359701572106613127081758873017746614760772231908612733817068823118305429846611428828312290005310883409625976857109426984482936768583273220291656714570247649015123031640815531800989154880824345236165019158321784531403818240005346550336598424439092935685548007643617289701515506276237052785060116193863536281318932852747315714946083892977864087635035786320485693993505125117720612548424660554429283976401606567570393084984465653510934297835458503288325311241893359255315941456209147728826116090860039331538631328670506301306709486444953045508148524110253926557758757727721649246783016076171387630720257308984670172903773770342058961540918362748943567483365402964816398887344917479443450554553122286897298805889957761727801430367808091174007945007398215751685969990372226087207065382768682895856005836621197000304065994583329779463311851844204406177887531108918275635294881984404948161263339117185160996624719673844094538192321966653069242420050953236297599645600027567480277206983796807123277387119304329987184020460511487985637348222639263201581831886818504373390563116864906573219855401344702705648239469725308832648880916992164875236609499575332468453881353106867085075357982306398906032620213672765492737495853403222177716121127305903467928380444524760709849054331255297736073924935788115278237583941824105408571462055534499607329830701746183747859937303534783950073925631480185625885869552365651255303862442757517931607676492321297209686668911930297871970056381235486064929356776854114177621398451740172292543474639596120937117962280795436843702171259824381190288101762057066257552776348198503842894195019318352715969540259586270032060105793636185075600501992865966167703260318845921139881159684080478673253042417248283216410398795677866404327857102831935121913078825643428073111183133241824062401909361892864266489419119832734575802634370993573116419597559824010355173519824003589941562390724311689180935993120104689591271151105464024319691563671149424429151494136640125065932856763880815317424569347696029113218768134309640310319827857893109176376234189688089521017284150365646810468863523090011559833261081053563281337984215439179600225951873628863263427509747806354343865306918754294231554274397066728537794397165778116863732468410959378138184018058702858302807979610862989390178106773235816487459283315085627956921402061450005241278337481303115519381506564821383716611697009360013999603389931177891973321256406610716532393031538663345808569336085216134604196600818699946850346665928464190254450852964893538824198173331640902036506717756879962770162708498883820486200259014526564827282490573691168351340594182193551549359356316479478781131845234692653132390142043169950328423348662170712517007486835879886028517919052658163205236024468291338316138795726973915458152285798304906238392318125833436009061936719552753708740543994381671756283177187882720598947415802233251342503898811925003737758668880963347867165565387454844613049768215620961028871247338860160275905266108246402102122705989251944919404286611832761693715072001508651431860223941192969107059168209964745265224885387544346307016455796927140856896616637318236394220683666374313021097551020007810668278179641949769889383408938298953816887963386846968615050019576052359577256800734785381930781151601935639972905447365639660311670380810907497560025082794294846776824550950847899181148968711102255873445005002174040709507605467292215020163801205298088895739487495503600815314264611532699451586069657104909095814836971053660206013107783349400199772876626546426862323305302018328058346754669214733415960724996699747218669373007178343538808758220120967759812725923448536605054019770135617169187976046411907965580613037456786740008822961088457543077038754663729855323522651626700820533669929282210845723425938070758364786512448989886932488936563147982728674393929615806363217894763697658005926605068231743261722290348654107599038526902159062278257413479731309560327001704282252951289039646891667869538753916057827170588833539338568438516703588676011437302770581413583736464227732863845204840823434922262491488573137951064691316437524821075759805787386447368697399366039890277108953136643139515441663422466256149112534569425501471818890031757929196709623073959160904156656839119656818181414533288670221134476545114365219011773101356532789461582614607552862228882515495222733889263074777710260005522855816953828647750979064945566389982680859586374213666192165507365643993876485955083980698238830080557405295402775942510753700201767104310928694471739956074625959522023688390180253388769479226623697827107000968285189778381702447184660976265533379513191571973785654034066359875930644908317062847203110067507877036876271148929803969263641464257586172851953101909932988925158234573761769722897691640949505322750831207713029542878546197672994145205189623279128495367850209879029515255746081760430504798896749483303997178541529755147029191991242070659658639657235178894399359152036332017896223931676907893564493039333729260383544444883190349257200822386424199659949675061560158665389391168086623435725863046970512212759091312990745788121074143285295767395699456353401451272116923294275535185880896949033003129038313994791318118134694130407815035818903101704241197016109203431293572378189587401242113047157894170602617584042001166590868528661474950344706942753078762726601828518749216497171605864027847283480549176735781379197628707347275090210211904207460962669695958290434185817207174106303073091215223526740762577251191623293845930475906036122941047491565909239352048963599008767168177784770031474970684677653674249822105120067788088513567970167558252573712315960423792176825838526001841708785124125814687261759372131883413723469931737489584649618069651180163083711076667873829881669679817137760353113133348964697273229031647829943457719673189311231920758745172035181437968266882083207134466769002394384650928722386544809385994175172490880297151618779326351192563634643103275871570510754898238605277360110460280440999180759143484521909178794988585549864976270390068542920710579235221314377590550480611425006581278611752400126159478271276499389183294201772854624819302673057103693973993215564200070996014019089765731724716516820047861803485830185467212830403038991291481672785985139944829872774841203433710408549691719046360491423981632822351490751781573290631430809005648773528863562197179873622852185455537266139460423529609558926864186891978863173120502032245579726251720886074769430701940491223502224868874786172736961468832688402847774687718040267394928129750616117283181422568521722274920175438455180756659621038760524342065872645372958720873552822061433491209921956157459436154839795614082743786413096025979425065042937203329547136375989433874846658120351253620652891525541825458514496345206911634797993359645446178387144752684332487347511751484433361755375082432736953948153768287143560425705390143868787100750369945533462597246692464650707655011644347220409737392138692246156075095605047898640723907006840167645687628625503140756224922318315055488017769158183406735377629853427396831011599363465627732188368909354051092949190060434350324855663134305035872937463449086191787800500339097826814051760311617815110218536253940225384735435881442437109335319969042632481482272805525736200390300259053580650884894183012871714087447410814298747846672636636671527471679600388485311392737890006213033811379628819818828591690041778146865227201037930287505380325336363327448899529680275818961583116950921807480348910884948692363404333401902799198409104898338915503656569404496557315238696522565285997742438209534701366438184341641085497941954940308147782693061915375635212140388633419799233242207413611579274278557461356624747014019719984234037282919919404824179872541697544728186053152066546314072710574502138032895515881721017574548009608258451287940309458859486103241096332564472948708113553418758528382053326930308978143992527846280898966728573935715384580649789717379061818424762437406191667707676691418238489775541183509515836797951205289196037423024591050753219388749321557175277038947886868445118150027812191155155872342257993735123786496150229798233499146840576303027410497915488007214184841314496839719703326042168567207891684362695782364587072222969900499355061380049372015416296044176186569963762437664213390565059498733357845792984767319503283745857380157462943700324851289044749718410701242332268792993790002286131743505241136062799949986960282029692975949166892998310826649337805184245987155496781860543521581287799290065026557099396984818737944457890115492988543613178107973962662747782881154113532814751336520310351574668625345232739782260281555872107974727008950132938943516143731565360934925678706885429551562244803739502971820937616517179106574481801543120882825042129219121088607579267944522089248209053650399457501794489206307649427725134325448622488119102690319205750088316327761924125458367498823483932838906695566575873981003285418910389218345036587983808178562481907158928622965767490433902943419329361467777834980602615371442059660860370149519255598553518492100066381997780398862558554010805246093209457102895116271241809977433283681546027763455620686401477974984031690027361750240714501583339566562707299935957530308262376442214096952399101363755396688207507538896659108659490940939298115510933754749220903671403801348219700878916379182303165321785287144116115139230499286854775311090554692824466819411470494539400160651977099224509729947014244295650087427559398559439305669122754774688169142786848923410033009981843362218024115358308350856694418702646470013912310557432849445380420779592402516291868807924493815522117000223381396534177262722980606631191277779511241837479234707728596330805417823108180042230910904831123730432728731656250730377407524321601633297093412718724906133217444938165640470867041679558959668279478760719385919066596739137290523503255883005138189271224903791729062039645065373354612604433806399087507132951730154771630586339340862174078712797602863840273235936802585322619904580908283130213453988264665865357013142692188371789648672302955478763164030197422506751420821176104463851066265168082180319398228685811815807324412627690015787759158953590458151792029468152535916911488268090859264603183735394281588493691248155041123100012696649357707757617345923889635177474762788920464336328947952872495588197509196901381026479035328484733631188028682215919577241802460726014305115553407782850052777323585950506215768837499621455093871062291834189725407590641114509715656757588821551990249935112024679871279256244120654278854315281110596437710711018520764755158660338067714186583992738449580243332278101160735664392188055738214899183581723242695367419938572523567532862211151075839204674636445122594437116549731967525339382893437125863142942442131978093246476258991474250732517735131395827270232144044029727376697976894136855805839827736787038098795365077326406619262047989087214777026219207944860807151020786206919257948508823251340198701062269761591031883187867184203522781817616258452177090405883318145000256197783682060072129481386749161004461503900536000349051469838780306353993146003676428913943131544072978495406352986464708224855241665371773488627090385176790790706877454648331561780066241706986332667207395964858481996480143895260182490282607236251424410570820323453939935534918857302848001809885231246634772507673625879136854788226892989962874425977083103811613714251998707331889443041137492643881503251454746330184919798253021006689452153751271414839294893453828565233478369355680795964625187604511782284121059235082247543609956819798803133474087870369420126999019177172131902707203313657010436114454168280258414851595805562343332429191328587756711343371086016075339633159309733939385949623210148977427521263166828238110911374858787490991745416965987989578442975781902591695627947899645487273392104134945714292725532133597215383405932595576889840801967586765489251131664846295898374705464029769782244819276372630342558992891330490627091457571683769114928888325703930018558775292671057605794449525551158127023844826569046274878032220290564229717650878094509775335929590667827959234097027062982108444313958834074650842034227903089054276459893240902079999773710820753392938073302633944825659206540253905961042029706432204630033360386080609084180828945138597500715495597707690762188741724499381050764443313612552605376347644558904918650833546608453645974584928965302194989417202555240275456439308577388731617367391476391459831134625089487490827018981133832497453540616796725506089985604649941817292125357317389618240246893378487786290041054901251443295140501071088727679983251494710875519989504652642614524695496897738625275361244328726624908044749807750019072955102052173254059358168256792435210368212858093340125329401647105973616257270550989021584663623293798792031714954539985146612375159890893501453278432145559305631170644708427303596399673851670564330784837464953438890198273190329913492875951844274859725903698192122425835773573461368685049840234617937547002895086935312296270630099037391054880147261582925233349254210802584047166498295373374894025731299177644343969782886229985218729719795451885518994580306861015391802829949445603837374822013157567594362619497101964289531032929206616681253153187066808831657429802304260080001897592542504964030380545473739172141115823045343876646111800130913700413585293812948867517428948214256060683403937844367905968222217605900016385138943287954221548568561594907900297125383028986677746437267835038822702103431809702868894763903369485883641610231509712972871608404258132397176878666826586912079151483853931447191958850557962460383550506320370342324132471062262385227559328329217964748451659860736016922960694575697506599669207366009662528151522626958344264449751539842459961804481290565165254328512084793850746792339045260483166431750281719042576146065790314221801754807549371237707614291197430730943327069507109680894540476026766949858643254081241123423666271913703514198322133855564454036746089144431991688334003304195615650407197896253508584831609167926880351656124184055814163391707483672697035202468470324884089341688620678573069988879486081295060073264119071526748870263479390134977349017699213983106416825842902862607352251078641635510715817139829223384633831292821186677455363997635389035434015193510939256382150500697946014621743352347640645572641698442124503461316416870753348236715046732426693604093272233199056622531191295551233375630406288936190903573937814933639102753441795330206843432770372358936665314701575418389941745395704089212680399256355304757306093804112621692996957547577641179560824828910981657013246286996531907834635516301193324492333850736545745655578429180542858058889278449862449064991725356933006678759760186493283331831178115813526667054177803514630446234731344325366906055928636384153486796470060867359997507492438591213630403589049619643289699635221483340897232887436148721624036933794103824837359116791830612004307641969378566659906057298324170219913524268653776421628164467389938018234907475916870719019972974636770235198127769096897009046900654640364124979095840815255606202682199963533992334710119463591211359177433576725393037195864991070409195823263120573141828543746734344067741392903157160921568504965598214375856133246597578435630041762955192002929695207645092054367734216955952450989757522573100291243939766717301231858858210917545971013055379768160433846957245814768635409139389519726181914707786018225838906537733062155335085641662294069031706685816314664644033589015564363476188611977217916902187044630553583112232072212310083004693038426334837740613950429150469173435819830915704848803347191045454051617561709743301625653467184040466310859846715655760214998347162482531486362216208084133310036018871000614853072119331649186306102783602374579417734558774330911173213826083188464920148232724851966999305885987574281750662443441636810054547637516229315792448186714245875752271834345102675525561139666583825799511223301636506676700494400925242154023311065818883904208290738553057402179910975110201362869912856289937357368159836673168638249343275621410818574566972999925865877506011180064537951360248743878497729252555461035791290678502840581037413204846171444040672309841182239277008504757926566791382005087606427522876547561107398889471751044617612636632796024131811448849646035752628329930862480391574852723588690369845179866069565001914609330309542939334665209799028398570271474314455174635803586035880109223419532071083949013586552817187554004373846787814202468503619787476171088609831973206623741408908013430063318814225718778171589455404668302485659408487445792905524692256491191689085691839355893590751331356169448517364286612715304769361031052376535069886318485603688328004456940296477397216999892123486565714754926534727249928521261076947587683548262590096874347157334590447846358041050061034887486281528444908958920414329780697534226814167334004245115829545699118421974026820826667665507147992918616165949350842396606892953323271482984644008908541969787058740970152745810375614165986533144145057744841103535250167913317477311652001032269060958545380476753577352356091413399768327244312671835444084118239123105878827468075785868531525698631095022653238840333344744521469649310366113296078015379339644313668088958971065437313006953980353650295329126634425149507433548167775348183373833458972867128533845255000485014500984551258789054904413060537000653121643511411814627259706522214877809523101583869586725070944105086234204491437909619872403167207612669699549485387880188163912676070168116804423633721457759173038546721842363745222504788137492743439010633977611811723447622875707824149190635202310504665356146933402518939691374222187494527470064578158118379772682718272175116200482589980483070682648352104773584793902418711507668032241485130450319662798782315767328346244531739247184073653868235223674831800895904341616087119743756220106722078458656088987949395987224381355166934100900569650487304060291685943988830530433614661951689942816420223302010748513911039428373687577247737617651105698160425662976711401817943501619574253292537334588964363555036363946371633356106373788998786153455647210420864395946937307037018285344991954595828877229115337299973801923500818787401070221567780250168771705894332305777325129833553411842811371322902021235942910137482699400878649994292205293011031733512602223840952549294782135281298901297282423319937250969402433109477607306029453433372593082423814374307086952225609785335299639789279898464682897897613349066050794453197489396537465203743480012947174179562618081056277222603207306118736243930804458972034811299978953269684075748856396184301975363259502934505695977622847214813283924660119203699702598310811141033758907762525220782548662650419950301010070403932754418210326275027226074066577124957693331570656146673028722512559732956794569715590266244619438559428766785122826865229357732844675221073114497025271114490834156363843691442463071840583045549797191147586497161760169175872367266782755371930401805834783611570049808661463123071013398930305303247219955787925882912483979604977074191881952949554200149729678487400562240094153708243570412632240256159825225579181702823810473350003241630468053141289763361860837056739804702690045223219188537722187283368492796378242223560193814879539948668550763452796827747821703562881773578096885376687849720018020780241968166867259798543450290152887143190003091371758574416858671066722431692317736359007039565892282345410685028616669205310292472910354602055024401854899053214690982866481223536816219251196840768330168608458517884079425088205675113666645527243193945406286298898987634037999345262370009790631791660517564164864773716126013726595271460143088688258724748299287131684362900931072794945752744622113001677773459307521127967685202287664069024941214040724839732502985017338167583233873639159428114209068126593512576692231939116476406697998918790217404185560016617670397772215979227856576556719309449437637961333127734023741022436964497047682451718482257463982151204200528687849242509383657512803805421946008387184875739960208609233399333505482274839258009527461115092828680637911896057965518514468485799862999588600055295017730401709683156297895476897137478684666501258806907633203459766473830972128089082147792613420502855371607776802227232000115031132913540719107331522935857200246391788323323759861737974568317768994260521130015417308624535215476679441499022884709392822036232656900218076543052377163562804577906257930970101010948659729381803856154784359670431159186659461038168916191403914669723154962846830771616411654230465570774207394425150610897694759238402819813929782226183027369136304858060700840785385774591292147295726216502169521238970428163031312825846000929597904687626004714793603231797015134377872015754544081666652073084424697521792603860779689462194418528727311454182956442245228014025101400955059190515194439735469748783591471361466784897121151875136562919368160744589729725308106905987606193059988016508359092800348341309914676075429088843366613999450001320233966005175573963644217686977056458185933990709204398754567893098273246892117045300781789078220534466665644251372746304445962470936832650471185393791807237200119834184121038844552202438051235066595776598643170221577137233758435637439098807482190065424134366015398814582762658226206056367670747569444426348696642013095901039237271051565412410936581097357271308020451792616171326677855183593173436438321585787277788597336866934812379649529658224446559918477249389052910631100073142723576596716054678468724769415304967330143418580482949074140365128580833312964791884020277793041347893777304631640885647089027960132903238466454048177072448682214375480306446637772203204357501109708131000966972445013635441763844087797364660729341058159820153721611264910823413330529603732195917227669787952459496949938768758775120195315814873857889861898689305481715828776361196988109445492260841550560764577171398264939185772257887908122508350321360145169650299153048717654047243125753217366066594044001527557112027034977976606858501647687555290720473201525014902991664169684447783062148163907280683632046519232791075260982781181228648993611581160136317853680540471237024296362092262336958331064296105536626648740366048554954144026272102280258706162181979925322872963910082268096522766369221132753177979263604502522586452986302147049639123767222223096378282791764212825510421235698699132819297433719551291046044015572945000308928222459797667181000708988064334895182506920187385765075458617297721613677817228169772327001313281499097508938578089252549084322827253935511010938107594278696782881172764510507664075806700354677422020305542052129786198184558662699947553008014762397436131167292307808653235084240657506018874770174112545573374986790479412055160689090348482728561356539553809843685954801286995144035245835111806779865006192194450375586311275169211839398143150053980562038396590935838361002331717462880851341319499456416923113018598458396330340218777594694879721485433623422606695650514174394091396100167906903996827135558977485977238620002882174041706694846045550610495732711412095214799955733288893595884806182175824774309811480516927246661116111552812867396757966679661337967653662800930423412557943152819344140245176184382318977683390388178968118658997111487811452201798047556762823397392871958751894793354985996356838988547188680040782053542071003469695071357522149062783039533025179617809919254419864072871300802245666188267044418752520168533784533152999969200176289519576929234664571103129357987483467165558728450201524589524409680921719683539378252339201478861541255808797883100245734272070756254983150164393287339232597317877878267299120276115449198868417992274799041832271876672824679637856346546283185647995007832523862047126787387766073209851119113625780434112389338066865388805470267667027674651026262281823768794990239304724558750629586546774806856158652951614100201917260700420815950233674855243610556670936628432085411518259146426819440958056926965782461851104847640822294743708979770378490894594774158629897502125362926933463084387275251791385362280224379958700572195476673140226895928761796962885646643257047506046020059753297764060726361809214900912030529173787614970097089023686397315148901928842983732378426837141943474042952613411252659770329397525875748710809690325216309210369723230485033292528601377824477686411322806645260430101870280055911360407870554025149628250312313235714383481910426385570815091891215060703086798125392372271354309702384006795630527932422259036758679936677045653452597046579377835190584695990521552493512734485237252648144176779846368949931312151147084916592278269620782243502130531917745554989177160053649247801961109677014277182170225561967111263001562931331216031231655779052013150357570043490119350655886124308908297041740116254158071032832300200020529516512231574620013085959069341050017377817506104458623830806120823531221744811965340855256600042071295532337633764814685276056029647124603188722428178006063852071689517728130928491420624672499423155031966953763442260234076470569654492365842653668488685202348376329898516066129543063776686002675884737826289904018783636940619021557765508431035716847807344791926162299630678203364398612233592604867664884365897733296928759126108441171632826069940599401699763714659954199505739495357300234363899661746502409869928949266559060689212463828762151483072662519230172167826338978623765955004779855143427311433779147501326457878484069685888435462891821048538450086055890123417292568316568667693534915384413253981966575050979391497113993043163847099059899724430222892845302775591601567262107508943603692515429614033437732017214703598361953756366124634469653136443792260528592080681770657869893036458446150329609508302880140183678806978360469217943178030824489861605793676043142024011872945009814501628871217939006441611467945916334411163407308622483642206588097035940761545192957679024590851937574247936197874729491371237637284041632106310930209392905690511440610789999963020956608596078362756773199962730834016295694375457486361001578673196172991326468358697487996077977723351640678187347122150194116958739610547450065565001102216922061012787261224084193246717843654468994958605434273388547909442093582471595188955606359503874414332505990136487272832525036933132257375213063365964481310526277192987937356732979615363131876225474391666229944386522435360401531900846561118343859135781632200287548422336808640571149367404271924110895095849586537470281231675346718129435481386044819227321609713535783467486825070421810269039288093703129945296971141667888341952428333376499018516773922734239263950664232456491681460426027768777791086160612211830863957603327826431161853521389804596824893776422568396775435623225379966833401860760241263269214134519455351793975012565939925376185800895788393433776796080509834003450461308136763490998151233762516871504408636542444540867112977500600929004111416831680434715638541053291002044736756089228823581282546802841388955407352932251157079949188355836263807017944548115405309203733427814943767839768659698313831331920065089697879448338677248282277716071626563469038893809493454224384402915370425536568949540056663534785753356704153905003959464049963321773603286381059456794776140002499382342772587216350291118837695295529259436413810860463081545153382603517649742500719246195859524215461079469186893659480069383761258272175050696226579012477204792602232406559773534972318238395380277557554173733243005618273685669042684866792641565541070915237174000739488742203323728067648702559676156595685176576238945184699758657016590427347014961005876391021320535212835241724611997100777114463575179309485730504034584057498707442347598233679913366729676150321139293367461087226325293747767924643446305404712667117673993137270565015333440989135187575855676391627531956294720386391008690324350482259957305266079257446536094094413935695042550731941497168751173500142753582017038036660895153501481351525120361225714473919504193697021940659435819552982500824204347921853679781138864855364111169429097215213503049195779357364651643140593466560693028401046329738980810917715100268096780422710866135518841721719625111199462707417532902904117042352849420278074083249199016914227470607804224328629552719851200844198306373894627774650993152837198765045857706765977627888168826212895574552136849609301147004748840932889358217473866954476361352307671036787608124166516755342973593201559043748657491930307135421401908655064055699628256122021444288083835498424946562272437247922212406324814157210123285077436150838657039394608354878108342402880763558085727469586432487317698287120935032899897213054363517379369604927346937983943595426831099923242082064955788670282840946785331521517985002987224825375304253596601201186485570787869063760383599409696296534046506573955856187084572973323253530737865319207074664099366710040012767699599962549063648358878994507738558518410306196925841294148663136665182218426180595677622627048076801714614684371690922108724458996240032102297881617896309450287458282437247468609981700622312723148717907717774015052111343036331343540504556739163828337882320138627177034707212601270966387313331705987755500649235264829162766560764984572339259247559085689166705445338330041481965705552302413042046376288051621834739884452629968249156654315198417235641960986326184359051931925446094328962233537353078910057403208366317735413375208938948606855580303204932369882332368604905953561566734124272129871701252436725961607527072194887638339121294204510016036241754018935833781971815246204837875626773746260303815592243479150044421971938671219733110555212375882663576482667088248590589975717377746464185338295404117153696578378412806764207061590668289630021643079573661896299956831957858990600247543487243451164477282953614207919543367611722269020032138335970959614950728018252676519780754328806111643901274795336219038760991091312059383110039943728946689584280218621439795375697650254787951943219126710022008765908529166580027276376581294458048606300441896593775448017350677782013119851740208848434208722432744367890558917363895893593062654294014807932477149554066060668942410078201700726979294656332252239647092058998517810785883476327225110930132242943958023448669052400893252342421738213939292534202919623572313002956309717588850713985593142232151033214706164276974633391991699922755445189386067429407040176990447578437093899951631114129110335630641652792258503940275324793351858359015541527827099885410602861519321916230841858466972260246811520397035278900287171807491822691186223169767776285076585487949005538459929815979790438464718968209605659147748393418198036342549599844637928758914574298064396361946788059597200598341111844445155451956796748532092271026940395130682642972486897542342387388122654671209535645331589082990194265744036189404886109273397559469864429760730711626270365474059142650437537264510668840062352384141789366419671599017726328717373926888634516849987804024335660081509375468995478296073871918756008915958884212208930340108554376403033581816749842674318292708883184145896705589368758319534278717012722723084250213406634000973668528989336180902642960840377115032800621785282790774134269463162199846807641839132167350335287307028057583402981346217426927643097075594696662021641859344586484028767990764193594584069842585648568233398030881673388241500567224836111871235055478519145174366755283375645138131110284413125290971190417466953910566710218897314482589630173263561919110092254087940935416445804711146595528461731500801412493133234091832111171757427408036964421029786490842313283032558768336301959878489779509774380991327816305193504013838985583327888006496379511394112257722238904382068590995678068459699200845227594376678011504767964570877396528919670146325050218181257437724329654084927136506641274208446262640342155035869618902314289427991417913797599382932789401220558529261293324074712109220204302929303464240064042243298805175997261936121016845828437654888602830083164852867759583608619424952605494737814604677094954564337248065059406967877632821915080945190202575053615659104891571876694830147716865299639098694398056142658641626496116927303877399459096703222369495781606876212937431670846325019025350935275254599473438121327298278227408540858120116127177753257230882180885550936900490334558853157183857388434672365756007460257821112725884952071522665482812445295734803517447595248487986204647833032707791584899855759281416492834246628129478527201122700224935330447464936036679777718190721561753386701264137411148236963190479129665533185020482575494864954564994803237804520847905761341188538168258769985723413696808967895407254566807686379964294572069428823384498760397725658861647825635827798056013368708584560668827609517463621690223952971037643382321087368679647260010681456969674254180227304657356449588664111811388963784046382973517287386663696585892198926440925525135084261759344950153746364390366907373528344145381922910003978820674640361962389376798240179241387992923420079809734837382067315343636460896412735837707352879230740814122717461547810717831076639358303378825203005681434676349947209408585765009741734603412691690095713641865514345345738670028703362036310248077673159106211672954914854807495605790772442281171767016017628478738955484807937175796116220798823660326016344345779762623976041138427450074758282053913753233788213117502245710916325783233840636792835363514204359668079935845693881106880617181030275833359653057895803611708833387939300998850970722045331628221192486835555036734417895652298523027712517225745770492714512971727693676484190503665360880647529573533024525913858807640461448511961021412136305020549563866903667585096621446743529308450486892473101098298657902641605789232654466248097473872003516794211377691278253162960842380398000106061392861956470776689941664236648273852781321052544953289561721387169961479706420959856058874131051624686704743330057482258606732479676791163846035220847510261163044153881076371173843367090261749470775036807994176933546022176273379946583839475083125250612578681294965078397908012267664610969622020506269459129636201631160714517769184826839033172718412310269970360619910339250046615917024839947237647152133340189863222591030858142075605444333649024216234830121199179614587224013448166159965800423426252836134184606043095105343226297418951741259303340982982654367446679165148469506791398477518130562085531112925066766333226014895145543204955803899832280689414594472696839255724801857277466561056631064853990846489698843833889111264993093800084207127054934950469224904962166514469367296119036301394227192336456761133896871978932284538391490165297171602201818073164953926411189449561043271728309720295869994606450854945924650139024218999014380749112377612740296980646162833775620033093819488096581199427695280352514160821750858017229975209583765399801271616768870206558871738077288977971273068741672971138634695673466335185066340329855544276748978081143983964446406401568955284983200029321120975623978538402929186743955128229092343124263230224735815524649001674304668281707674454547599705055429960028609938423455610756557328455599948945492779690442612105881393754864439201075770587693723504132041617059579325130407696222883038523425926590371281793235288408400992562937004625483087372811758398882415737919480079941068167815186906143953825498504125375957306261946616578616406231860051183793218145382477819928379933947986310402333698355234874498706311156641705589341708729738581037624397645490397781887887559200018542549825330089440005139470257219278938420595038270751440042537895109043835079375074172455107362743948827113898368832092316266595394237318323135622907735542708653080367851109920207899347463486083930785566593046650031682525214022527532953598894871430244845982083396709936939478968287335262343357849994500014923566241388719274025172694152765949059125726436885240626328325721448652900548063346671226172582477952524448804027909202590915854453095388059390191814567808895644622079687861277169335747790440528907111003381833277341012559295176860587004524564869893200786897763267287736325064330440092909102919142354273606303006078249508430168928533571699983643945750251110882394474528573094172982658677404005556185647608758456891026829513220843971222443387750187853184527133572773997984897585977640143004282822977283585270417437357822011064597940861131594729114760022926256793823205185974473012936438926954756441078636224745071146592086476502217022590212139556175067455931259583312045281789177403822209186551290576693314360474864533071451336182915294927894058302068581648338939513843779382489636876784896130641364876087602923254625052828363650645619605865711719684349263319143296253023299827652389995844802502520573689551284514445406524823242733231775734215596036444544013541680539780461549258153169860906844105274027044323293502867191855664791273451466677571121428679540376264197476378136062937446018720753416016162132157232751064501502956061837298303043449743117221641190090316066094291607619980321080546782663065123440486666287177310984865146939653922002456323680858587363960382411183369171699160098728529486687276721146458704808544940821375708183569154890609229487707384466291059944764225862459364941752160401500046436077384441126453622719732851130671931154728051580927718297365562413103768841319742814343116009212595189313304988092559450556276175097779586100641251344518462100406060680246231931962373779179834489228284136869888076935520435526028141931440465325927957393011443826610335994204415927127983354037356582688757023933534678902288932609101619025781511476738105877765391686903217731800458870378973800949595910582956041124660648295773712243014033499036211007001286504531414435333616279239430027835934883204081667353992960928684719593051554447763117603365940280752308141251084458175414054158265412333525537911723551972885229649551384314554119572608904340350709298664445284498688508272429755539780022083406798804532120337317884994123717514279065448451866586123357286755320175054366479432693532112430651441132696973770779537594364267949992889713571989734206361630056166363316810534529386741269576084169342613708232371413084970137983334334754395173900079570438343275062384700991295279636283219900573810451089186434762132472494752787778578725086804605426710331346710817779544952955538727163905199694780907764295018564363015248248698219327078962847952964435505195709441356753129392953251216861051305016976627623680531218892518633349725756402049480577516081251979552951072319506838443463745227117946474886440268374180992022590315232298803488213597265818058381542672971488617801607843089506228907083265091014314223586324570240227933628101214648588645007561960227950553257067085146587077784971166951389877841887744801021297920317481827385314430759240457117634746481557760964193137574228226830707100412793677178773668317901830451664742551219497017018373077805332462962724565020217706042247396775021378802944307762152296551560856646710753319458021635018830525234513258117177806668832907642919026224064911913814634982577552402707503025629703183968660403289569211747885070184016333769389598858706469246055806780625997867342751246236830775556320570075425028403845315845344358872547599614505779603557119177091582304723810669652211138468950579262145037361303364717310842638480827020212637532737048010691822537873854695666143847892876098409843792311240012575085539391132742147431003374913166992432383035287219004459040097208658737140639199772955373162599257252595710416223292876401028428438011963609252304335061770263022522608775881086099759769068711419878670202236749833922276094006365257819162734588697906702646359841926931483394385812951633162696533535089677178502074712444082024033571968268228801570892242685584406428041711835443067859037552345494617641147525125175715619222382566240744244624519238414324063921652214686827300403383010722918843025004842846268093525952501651538865840890183654969584252888874279540777257727066592348023480775210270012055693423348844758833818249441395893359563840387011339268336814177544163888952762531285291591019906407706862070331894202988981710223124299827188328201936869339922786499897686892106597828723328574019723442306836062619495536785418905882028769402929528376005782931676273335418829718086189874369231992066060493623566373692140884470844675030843154928449258281583725227393557040130379782067352803504833856458912944721652062184883859818046233713977380951041982818289578304810117863128552195539751038939235507068966901486222687731235032361366628921400156842953153005276762857498752772245872279298004533340248514891456186027689078818847610823822732302814922617374734870597111295252643655289819178371256221482546687641716703020671991357211681145562021634021201395708150946831746621889712563157479643510042096087391597360996382812944724505976735319872445285704042826858506759109868278305356383063530192432527414449917164252684739702205566544404690328782559276432504278990791114919867982037253900716963888091112114084730361276580638897304469487913581203970217078708090731998489665818967497118318741557409094906311725153768629676123194881538158586551991464168293763540754183826973002269813750236456352985986369645599049334819251627145945392475404729627635967373222299670494006071121772411174191316601164350886590918253129696320975693531393521999240619598475771893273636255121410122695992041603587594770880215622160579034513236948567296004601689434787980531497773339701121830999648192085475581833316954775784739909768958896369354579716414770975198899773913865839292498647606145948211941040299502478749530663707255741497602380793645736792044323554917993114520008153218868383303477980302610242946166939316908414770127286097339647782194633510824965599100953228623422505566254924033311785982239361252903681733878743752475981282199690777420718499420861401285843189695064146945612707613193752574110862662757684837626919636726530694264010491004464740119380407657442406897525381949019142667226078315412819768480706625802094734946152322447778134503804974981305543320890175703326546178539147209963615351160897900492011817037386542273373288600378322365531987861752374611824211521654658881796178636638231857021380224724565238518732077414641119876796137987861548920804183168759279810187293474966425475879623194611022465499718389814605745920790020766838653594084867800223242351298919310949166183163309103877330860064249533501059299736189241876622787051036694000364211924272213393701193687911461111420404624963853864840458397136502358640975878856822864299449573776691026548759049953202407286340479138283794426127813631346840575524031076215283498474874082050042552686293469621914847730306013169521002983969572361582386204209155710693850773314692404306401953915148419105200030906032546983135492325288794302086320994982219195315923211379016680288977255789711167855714936334708645102406035625736484291759703638125303145662653488855299911813296286926667898530018273194750696824164203015066770316991347628656649243650617168313995822323067881409204613970634751147653954530299920315209260570822286302542189527971758941392724135447002073719461669244929119902857020070786069237550198616155535868733775071656309184119140290200715207386962771550711708122570828704315121833061026825513520377453355636110608099561131482321570060488622480789487458667843204156584282521796491562227517087325411736096560948880553924364158824267644850936026691806905711468791770770769472138895230228931774136362546538200275394678192281505032744880026181151013750643157663148155133680135112772570949220628541154560773575429567050512825738416378502780396815809133902161290611682869936462889145296158677358984761117951232471022125976125118035434648907163954513354518366344910780930241609527657012421310077939662889173008098158578264753674653154088506540567872000608738959673867820296365419898303679256416202091377546465413083416986287220487125858207579270890914355219152044169333802155844819882103459017769412365637879638370464878193273277213505480806829646998824895775410247718183170704781923301048677267854529675666334414455116060442652812340217095078126040151155217949611016230690330210806797991284241741352380465862508969990163199778404772691947592859117127838227428325233173773895493386303556758025078488637724315698241403036531363949525432079497939061897312760743810062527592074477128387546936848392962198624188842160410065353950227345209407932939787804470791890967083441222123662416521103964439874564607303347174304311406203852187233476179497878605570993265601332805011863108892696485647678286618970666032249661036351222438464772858090404841548396138218237655423919761294751817358195764111465532231954767617179248542365945395450592176856421693214802168090545455717467549447342293959375955657203758515706619343554486134490148329997491474519060343985394302922673695392000638453153071805680460315309614607450828272719652908892471303952585978001346260111961548947588931801021234828317518671410642908099517018492172836055534480752382398806846702887378109919489582127723327220882292267363501382046237311430886839667750311600926170250966299284537482658807059814829130788476038688408204316400266028175187254318082425032624860200366996206715862619523026131578134086732838620712766006923854187593426423589155108137891165690382261978888342505195686205088713915469031020233801516524247585913628086040409192263123334073988475194879962150696226254601381815487232674077645793771588495879955954853399594916465210655390505306119418811856662535336183333237402156202379451835966274156557514076250759294990435551224796381888373061106666870864046026272045962795924917259659803879859970508838448738809656377557327697305492801485335109429940734992884111039313969158113709064373539277916655386715767582349920140739870980249398904565603182228644068256516970163686012726800126066958554507816286219947418381047253372358335528644028496128457160875683125517101806151538613541742455112721486140117451441980736051912279929249366302478864817122856712151204295967000582675588660632980810532014595143385441473196755395285513199163248914287055942775443829649928709166228258358836486359359546927727184621150348105022073422565057455946080569559401219206831806149672193066718713370669866788992178254542847867405237042136324793048945924527845216617435776595004187121425218166079377668289151104127841926762965476389321143863475117497044413608026221469998997820595474032630431650697714580788149232748822711226083966128602655881062760613764626927534472541372146047274484388665094395622890330673667932577256219883777433431287513738003165268368582362990544544825642481528517011140472995698876480664471661279986514275970638859728712410992183723951296643547162038088398057711542249733175586435979527340120376372244388561958662579769258519394327972063938764458516642147737633033610565706327068609626980785167295201166713538608460452199295543249114667767677352105580490279088273296058550917875234572961468041552738984800638798273136357507424535758285028478662090140717886759354286951665338226509871009203179201820004680905861452404714068790320903187144697073636496980293209997031164635699916873993661851622276529743847006852083747974545281243932852914162935034352686554293312717188051532733125600294513160165507400635231755623415262474911216363769339691809963170124380762945347271771870637899920180714205067888683240894963376316660330087498743681085228324231156457549275951308141734593584026612843359141455676752686709974985287936751179038215852871601157759073518640924886239632702092464875898145893870623210375118970628868215330936866798458688770950021946457081872981021396263802294690698766875714485420565891605593191933814346942633991797856908540745240784656946550744524997158745519343191409099485215620606960102588384791985223745917111162911237747679508159170707015392280953958247694832816766416369357913200953676920712247655428388401921067947132772134542662134062489443346182093326909088108610194859180527915570583756013953701298653765621622746708893813551401656574763651114490267331764939936809745066487189918442810490878630643291250082985259194652645274473032846488736779399318534059746557806508295029055716661674309846662190490024589507127863884341196439834343245691192003171659183103997816101272057180671831174607166842469557818982660654228105586471590927298873468694836684128689211124916096678202294647206283987289263029058314980812438713662031791289868911039450587002159117880365223990558012380631739385332859517095434149786161998372903803377462888514237252991460396160113420161515637072437125117460669270468541163901778539090029834063085496800917734402577305059131575859849224592268158723104529994282752111426490822234656316549412195928644923084737427014841468084101864135241318909429548723915842277202582233987860579887475674302500915275033479381090945222999970217701077833798824764540518445392118472557122509441075790242227999010022823896826937158173374861212466075269443894504852205326773648440781872794504886919644567555368737068020726864207266961968442543426867521984899060549632292249806458378781437093021167546099676930426668302377037872952257592570022713305511161662002436825902922964838190745055556748034554477547666303981266477042698059420619017186993740285710974051222812071233798378271123455138922771749177526369847269101679169788579757114676964523527035186336625249432018059833479695052392677026914001243501926308101613820450153845225129584216944298815088429110847792477029618184516316008419909791311388665796982409581267430590960904723814110846640794172577186811842129861450363643669771978594132322742967869355516503958053940364063400694741841945960934119136296777428286931536399126501213766273176771219933657370116502582206335848782552843630735159868842944007423136642398904146325036415390222729077199070418107217068823424224080240558297668491147644303759882980818297967046370429137811907847601670818248091283604024645547803803293987498783372158755185836406607007609777004611559362772605880782279834398675981113307172187569268781491329553296257945464662113457804275374655146742010225347966663496901326878536950220193448968965984263709815432917260613209932558647490730130480359136148219564714196266776184771359673508241560658609775210275598424944638644898858051252647278792979037690744057446194957678239358884396977318537484576709124236786767456823508438828277696673514258538836315169840604847571125789625494733686513177242632736623305260212144086018728608102522660656377569398282165756545822280127483011082755598599954414043872729138511986543224511217044258721080483237735116540755167554793096716294287170223860327772320089571458277128235056223023189695272886752000919106832739687184845259815231912212970317258453700768248210658627876385400640832045985143222272405459642962325458647962377594064454545915266673401730058078241603081688492359635434001138535077870479696721669981450261925479985088367911069825892307139044414307635505676793188966613120874785303000281177485233997909366268195111270623254926925670406624233174207708464221576896215622973134220892197636298321158154738992029515939737215016052496766598263492285509147353409557063756034556917595901565023936392154125329676648750220584132167519550007626173120742865627611546200229233271711279013313618097630586760260187267787759869792675697705158972123050200494853081044085855207740943887603722302575384134119779596341386832590500797040839850616536699390293368043290924566657668925548024930196833354293559017448884149475349906574931808431710554500513165123228525399484472487810517521258451666783336882916542960158808348187842951778731579252284404372386893416359837148243867389218567337627984844841820885825429643340686754903790214413023637985844178837061171211538600270768121338285693457781049602845424916500096106281633666995292012934941955914545044450617663157152540515021831395713035362223952490599778322400325014531410553284395834431207999207050370623402019513463695387499812682258781710688126816164665155627866776598227742913054771002470583636205825616815261521050898017220276563154042087356059976640276033526898124198798093217355191454474635012160222788271361415690030719480980381676939904177816757296442127766646179979364763783676691409882517536407143926269333884682704302190446286834653525278577298999056005273578534301276132707830560788215867388262297325202723771006778035501547355449368979122630332258015540434636784172479536669660984396509472711272794332564755134658976089496016212292409023559721071451644188993561161147818734384447362820586361445974644509232470864244152433162522706661755218682336833035928562152787877558366515627857960413354993917292499663015119735026016347826474373158998166825001034638330622068822981147814280359045578211845510550274955475851244506820522013719854409091592482035165021725626277664098675734256100543799371464834416279182664783740544082478682077804201146391674408814530135351499344938915350789948684379382049130881203082091191967872785269230182709233712096582423263471658990406119229828894080588573978612023125292062479859778044301039429253967480936789463212179076781165878304079893506438544129885000461722836977478736182093104135637398487714130220576231773154858709791897435023154072739534665817128338313415467482464491591893596224897886081495668565191026012992206816532347824119315776633931985524740517805640752848707861055281597217127666358248079629508827294953422647954847901464684965392990019005674439448961159252386871264662634961396536994618568047020454936776086368324519403843681289584141589351674276276105004673746243442442543368958891084445685119389326188313081573789759093418651970272491644107678660122798137201415981133163457020771299938962440998224922116108237824057952120199589205913018725963725335471626307768135675245183208666660069868415716326195432888401499775980147825851661113651452965129004921629028698006637925375260816648005846425770435125545550008551452888174510704116094850833318910128768765943515141111154885674014319617794624895930050543634704792513626151095537130015982178851859317341106943272029109046227471826885366146550986919136864511963653615935333676736453200856779671895305142611734937174465470774393214409786624960586102295221445114739499106246902320706709586735890131348449727990563106930410669310448614986949022358712075355938216040180358013053008139696902699124157848954791469262857058591976171161390600590583052483566819416175664479867433413038313424399243893013338497575567776240960573158548249922832250368175398282233270084039551338564889726493665122880832885341070656099907989016198693412408060549182714932593995373035730693761051890403691806781775291054248547333724925972533676819413940392361301609106113461026510496425949357336932394176582270067491315951613799487895579113845722430943123651323454525478020456421248960992098952244916067656441332057589929032116574887516711375911418600948680307388554664548900818076447128844189115238594059273221759618851530465115412233316905621734314462293436335560035338975771233128156249539550011520789177932940535254334140932793544515669967522274345759784764754061024072271725543787471376022217187126350017632461911435879963828624231749439460515235691920272985298455495177547487375281473654630172695286417984725224440289719059108647301057869003360775733001934440385097972343095479196281206445912624209908319220757558396020061526477690923488299831781856604712799697545402546983243584852761188216561708699748629113700534914905942593154837146307386508542207068090694488119724058430145252044840590985850973884321487503253401560699750984791286053166804396317464274005160296981241148122024623897120548697928095035667520990014466001123765423672554108090974436382328440116230830466797654059037047107776138571795779717966746665429026837020965324968887597268925000521133766051838785442711901376479277431342632201376765602891756903825603628069778674020616462899751901150617728473649620446086912295312890014272714500911718508709694237526500543023563372981179535660304543729344925736734741887689299457352030003505096944911677552345567152816758582581957375601121439280042341223910031338694540811845667744382488807310591792428915100931936171610228215443028418477725276221353550722254817568082713200720331226058609960215958149442529124819546026359310625021000122338695539198794343685307314974263941941845963415041170313912128504238306656999020620791193286071022295094739165220749889256161396562732432622841658104968286555951971488279008413284206345899355066289453837160568304954922377120336694989662981233373790961144977402792433644768126537475911338861492929584924462986595808327970668728523621330340425951150174146684826021727099069845165532998915776717575798996600785927381408583734244305677062389660445549861314332560755237849093574502517278118938312631146951891865504105709227469175809661905205209021838200156065409295337083981572970172156785297610106566235243128007435239122044336363499470935339120580063576856989443103141406997979283209709113358251306330842822334141338196476373717832054745041783500907128428946012296323830180542981840617533565988507301260118762953506486440341823035749043366488881199961157313590382489296566214418421576373259656301221175326498109959368736747432203188282926332517170543107050690425149704556243785440912753700175722488065559536589688870992412144205840426576704707434236793961281543224945630707445667266810343233429714663853914341288121124305880342641670924383453082232560819815000723793424931038765703550650231455387617710718493727132437779339251525535485360567751834442917815937065304180974930359913008860202255823343309285718752926639227298836711361954951112998567274658824249395925759462378362810403092637008425745214089694656541538243800408816831934098152152779339010482694009670692017165068116929394119681005418214088265507022639056608635695683696405722514361967867824306789740064662711844367920704387874756354007886006084752477162999724771617241912286732305326201145390388173049311657373171129520982772305562742806521572913851800679295454062826099515565828924018420668876514191340595360563578905294120341232121164346532979489289811156241467408577855244493962267466314842949297350245411109038895516983469716734127637506461391609426769378585852176955092578001360888854806972219834084426989504419262122857022053112840311139981061139266424235091840146679307938190924551294060123748259756448156546291012272246861622199442486012957757119172465840270963285381648979169868070712731100561352425218419857789299945798899953167738792675590632377791231705565689560808141210056034222476273222056228001224745146611928322045012936284993560944730341546941685343795101030201414651591868865719087791200111938848147935137188797109936211337958309567292686909012912564117772059728519699991789030162015684823080970354023737949031331497676144434843025294016227030336772710489153670306193727132043864871999813870777929783751734616687340064104391381256162392057049061131370563212334540989459611231424538376294941635852111167013974365813436882654593425777503480164011244175750586810613964968917677593188983941503448617149700313944730523959491102461983544096424112586244182878555106581750530405138517202862957121340636659317038473172285997411050382798402492072084031820525850279899199192985212920007998548267149257402019861230250128792381191205593984159039047576105443051474304725613157662790040384543268039275807715223378858012936071193803110808545770001285355319510536503217767420809522860735100961461635580333237257894078955931234610527482114068222070425700107405766810763339147638290012616298414847316775901406228936272774287623329254771870802624102676470505139213463468620609363760616027672780268203287661767776947063479102271105591653954005490579779560714578272985021996597852549054404409462922268713710609253039638635984579853420796200353675084196452365138487135030522164653058973397980070355671569689177942995352002502430639476328765206167336958183352718735613050070362438591957326517312236130499694116145671315384107679060264917915177868725724422245023337706971010650447673618323057606834963645181165627999893627949288502577310949277092240991402428268885141537494583530232396571628739052858557076368206641629596707577827310742860849076938086111260081369654384899642594442547906411172546103954538124665632597014001707187459568123867200173989166535097446098553017937206531693356518075109091775663987867316375051859666933412811267743963883593465876021558179751504499373618941564350471870529962525757559157259480538978751507299501686414324652419822279668713600156225250071493999032761894359465411413120740053985472026373157869448525740475006070390371274280117576496157383199533996770810664697415191733709477721415454912151430391769754794349749706745432281373800501285160047204253823744532800170826658682883748058969404003023288809891046483448473150005684805641528916706470084311668921230682661040566623067028371999458984953433317075649561348906979319339641509018335186360812370788818947444149284570612836660199471598608638571691356305223870029595674157516593099111727957983879386753478861813451692696179138879671305404023912785200915502843733823179063083952767656114416209638235235967618660845362656091452591683775137647566421544945660107642276063605334661971688134869293189672295956155880465594313559914548923395384987849341486962410080274577612484368556204948169961857626519378746327124732990075698731352714131945741875356836229577201653072392658475534994045564635422071841766068409336644809383815745265620777833479899602856466945550940633482401523930900370497465753794141235809165880968813302403735995762835672742096783802965645139317837988110845229971983112892364537846824416289383620231218255423303712059648806889242286371418618779902235735882717001420964350956804417791749450964649365955618192518333194517000329118232844510722584205651917987696778820088477995006163085262419561321626184919623751502435840536130656912822629609939433598340089748514517486213121741276309431451096465562444052962166014326330952247114917510028557929635396503999294898805786723385109382067823811247609261605818764132844262825180012884914423464459537185553203503147429492104874053311385768431447391928028173079476734456408276813813070501659632479583822413172630736223075214559315180262818350592928902660970486313694220401412529863980783733266907009372136918470157031462722364934829257858042194515397675018429144451757154337934697234714120870997083352917322360811445314640057949485224329156262258749038836258041922686810488974909694002379048670425892119337173051178624187578464262202091136498635846273084556878937326179282891098190441573648748387033773115411880726504822212633515120150255790458996274341637228701455032324430612641796010104017024378743435573529930608253427288968233282839412231664659856685791810746937938199568708859664294747264843500270588702735190563260890257645296606991281373174118079590282846700482451788840913509162005928782808298417219316566791193403521473398836216213279787205868949398135033673819703131322148874133564793394390684086282263346189262252826532512969338098570967585520050254616978670706110182307777517333620108450368766527830882544510006562779049452927123291641361879908514980433690221069011131472678489826504625375482646977258328445696894388968414191690978272246643670662271718023985695088658593839750571880588876073717308565240000233364838674813118599852940469508744305934424109461064058095681570347037231516943696241930311559037355469933656590883166586761734256518758514797520029972278493029775366643128788513647982937685948836292270383542843523080765875966860136178158741318787960047570204637046127284093542499448981912450320462681683822425166539094389974972734385272137868983343226049665314529828902596795642424294514180669394750010786336513586408490184582811104931675014621906601173522822943038997907072642348022176737726511720407207276147997675539778010058381604264823268198453085950668984571036517658812475576169118190496863918476879898096899611798457539659192399868850230006851762194376227306097942613049306817616180777172277352663302755782898983913248553783171521795003343340719979273100062259579348165785105561094319756096964398670367710494456869603026022060076214583032500526950528107432686631908754931686758565977262261825002423147277488919360051060944605086111863198232341550863465678051649902041442543635083947287292731423393310003068866080438958282737732949932499853575454178785367719704670491212710310284663977375030096919496182438544957456872861746505599670861650673027590212636460437510460768219210210189070116888668269151838643931239262845807326419562173968423940075373437333091539584741970309041561214368698949777716813551100652654434433255643096958677278314854119329735355276707195047486694802937024236007032898563796626549407737643085844555782534655627132269938517758866861146296390245660225071304132425647570978242728288167991714732250416238204097555803958239043773262971880300488919908465135756372537250036015651033810886983102735412586275235039816742318467861009435226017178269218817714578427247371668775386408697761827509754143019308603790572317435563537142518038737994283294005147386775674567174094440705254127315318294965488878950726824980385173929061259378080152399376787093351906260607182012705267109654766853155568927468766553514672735458972520909063115942714617638656509511643439995400362312115498427041147418165149711581358105392044937509695390474868241717950728768231312983102122958116739101558102315286072128981047394990941332265402996173952525319945703498484319686921577205188016177040765045766365274438156292129059319317802408329208398304746833562466199981193428558093737303762587418866778064605584551980050751311643327895844299570040960001289641397434661800376168502655353407496765943583953621889280428749658308564830040462770932924939764594683628432498019118626328104202219072928416716284488379861419228504752711510881367142950450108298604984398288538678219790197346726559264180218842701756036656574579431645407003647734748699850874100205602107908430595248128488352147098793436220908577972154627986247873734074848245576442409034652589738913915630538681430727958511862148487046359522352305783406254763845672987738977327220255829439050784478130611475660734824349776512120226197721505494359200701173586997339820796948071446086802061985027188284193000246118229143376530419679814072420462285549263927439240443513727491285016783344679818722950508910780851380955967657509812173008867365206657925126011324881019806948310284768328328766794514799480220403993577977974670553394353087617139974602396306083731897525219528388992757986156899944048015714230564922934797003689720343569075895756711012359758033173916629343609106419221091047313196841769199708639473889657525512131507877342188627035291242674666731373954408092081128620882103048981464421987125755629618342575146680681286658373265401365687459460680157054942428227060957644832957894297280688633566938271329227232867796512175962603210315075357372769233682559595705301921560955312080414706709253582264238394648769441979731008668166626142273345576944058315645550264952802907814802136735826068205224838152829506570430836215542409231113178303303101909642072646821091543503756892534902438863483166869948770436568175633382300397503263417191024004184849413176421884798871013631504164447106849585172806592623721170198659515908462927579398565788959873367322553939020347613538478810004682758447936427675543557441815593659309080873179814594226757021426333716133977940406412396925166671533653412168694834491251372562159405696318778282128081572980579626581565919112451283573630520036374801675263488303941075074696548553266765225365137397551304892448468192500169316293551625535868607902120969838244858993152369672610291623267288373274273978620982772846876254409993370587344759188230742329414265434876721543491539699928228201626996244437233983009494646685892936630107186862879205873522397666791425782326606409224046484518892752300939327123493119935964424587018687085938209661373935681204352735222996414332730339304683418463311985911389758180371849290493377642886936542871907697285331534373359190049658701017971311871369599742460308615868805221328082222374538707710548704728463835889680731148106019808581408009099895073148994760827486391498230389643641349355582026555917236929216344434831955440863564518441020370732341568340188180755636183535136105580006711836153099978713657861030267679119793449436051609270021767261265432399175676097870884828944122302777769391181038082406237600154238471751718029703021385809457920619560391668373227616754043291054025467282405244773736698124474758857622337145710673166427574227034781552772658612158468382954075044465359157440661933888531781064355277543025890978269102227710864862831601059124893821533280020032997914766002523727757842326365925046513348058137177954852760492321393971209872232949515496326474823577920332153741874559614330991141770248317646588413920230942164911784704257214805538824752017520418467612436399182822588392277571558916286247283491529426757979950969127296336531721230599900129587630921985851433170108349759980787358395277982628536082357729795475996429921412750499845539144994621398761314202370376227380150325851663423700564505062837693306226877273295757499014302376208166841551738078611168254079044798331211414111411329571981272829104566453370492270770216970922004095957976836655947931003046680396758665007290779929044730520059490306882967626753959122488681559895251981561203698009445795015739467558708009130999635269092411548835616027020398660117652904569957113619813672027895752060666768178757785160039220084723576856020945989714526390391054769367665506375421449354699926300547252148014170165178085251367596068292882632720648541735576313563311522404842883174143534384066354114077610383145052443860127099316119118200717804673987913216251175333819948370811683748749590661462143073130956330643597624911346290827943629871496551383574090259278782735233119228283323512563055166464601760004807723530102557578370164681373191561872307117744444063553740785568395653420339779045655722634378962208009936392012797939980230580602005687445737892373081339983411279018338399693507565826998206254411742971081068770756787299671657316124017656858831992323512427284094470876412912112585671367443838491157979750413161689900869730962098564738239541958227866768808588491888977380065394366278403118831289235899628312006748125651715561092868778425872160672996639668962396054002006274274752332873493891232269406585578057163128244139389200811914185312611845387854089852624205633237862425801281352628022912023943668486425449378241617551786418877888708636450494375872826188474733222551325560563347944980170452176163153280838308389884643279170435096540076488979300005518335665535658063264599748142109275836352431868799467770319912289731518865055062800364793014612443767191201497287951881325620079771912593967402609091965538490299021769605767805433695228374193092844752479313390614111101491202082946776249993647986137935017792720493813910276407236418608968458471610321077058808928364796313049887870516729230328573970251355901547589159359980381603680187197526212010213561182343451786891369081367456530327117612699922616329501699825344566581553610608835153366836557434170422017864184011050301419855091199864013854115714518799567813691797598535363055008607678972481606673102389128155419886730296608045269073432964959461498288801685062899661713193211241338239872150651612748375581110496414565047495396457805403937733662958005591220122302492330625678209473352259197286798709788330914451826175373172112333600788883948466434590352714476502254599339194821576630908784700707875304248282616011588552697000753824473034798391327911832028351676242925964556730488824278354784878852589338484205897479337739270086684524321832397526296486688343503323726525798744204624871792950849072286302622489486656313355115305606882460094549239782336163681782333964619786608755287047926058542586419350594979743658645895305656460295649183407930749157804754125304164086757686786490345404662810031456642371533471795751524848748416213998905775317470352886489289695650192643284311563734315880974124671225977693021286006095695675776683139216048056857144096373280032318067482491511862198613631644319904766360267489783985397139698762237488218544298560968188469091310440547939243668261229613462292649718002478795177368153571775017620059938865913368649043555846406777932213360485224129246040041669507102836785454498902820591887894782501947633614983903395564187807214637855135097197189885629486432656176833525519477372131605944738507649612648733451415100700398750675049417388810548245640996167044592183641245758509464702803661025246482727085120618301706782142291194507531841210971399252193154071157419790920138158331344139541721750943280127164062555548631729203678665278174425031754373298905622733906277700815629242649930090202286661402030554214110685419924874254358665104319558195088956263884973123538437337895922750505843471520017795906285781847528803345411787135227704391148252065867336677674990470420331447141832980829642609747001046942542671314379539098252779746738580105812966093779487598752133672196173562982855626510813317228935683219817792828272256087797627903934625104092899994265714354213253089868727325206262435654990893227016885280920803365168378789520971631859983696486534240013170799409561408142007645288018133437669462413475621337435952815661318079751940767157830880308738005493390506035332498066441461547354265651851050212257379036982642243721486896540396960286257878407609232406818948020036891437245402925439488586609960818430417252594995159812474049735459610639922014438834257950807617345351251134712095633384737197147397249191506787548577491406549347764724312999986142124459227395099241044025584094517745821393512186259503386519778422942650926359020842246428306182298722156560909278572510697130713076298795935038312021114613018082558737322791449730479127015609183384500728738333335773226009926095704428604220214761625996293329778761203508168994694778788905029171661642093262625246148060016808378834560327993219412231513582262093396093973655029003415873924600202231825098720634589701724329013604123396789586836786553352242342917753093850471159174820079305413295807951948851312054453122012306511132262947080567445122217414245360510493675821788248685803084116203852500934842589404110722840212539659865307298825981029461568195107438424304992790653015898522574961390278622238080351089795726166359975309773638966711218994692681944975553608885336805894572091470819878118921452017854548066736592908179608747882874163818253201081265437294839143577481196356617769069234710054092426532651473300864275584225586203492245094413823845247457567798857152637517850562462983067370731438314491021678590878316565968574225659071861590044074927778713524783986411113949759158092579456801177282413356894384883959444798625278811870951680699718129332657535800879203312698168955706890229893614207705589362017769440504248554151841312284401195150734501769926070898428716642097168264976118491292720558915392621827415958262517063252041143770662604784190920376812210314431263730872914334613654003811353480393131629005065937476562733961676316644772347419228244009375651948955976284476804662817285388556146440205079481386228196736149842521127915563054157099922632622723293169220723611488767450280527031864662438806933307554794708769083810546587060303012414929370283336664293031903900661850249734271762299437131874721040884428803683326259878706261512253171026046301304210500657576867311202778676175508212217612212046980292888700719813032933465678852985578308389689048809502705206733004668458373759386137680440554559671361731883192211118539548855338589639134959261852640915560179631413894109848881920350787066953796880319683609128638950260789120432045632962966526454045922702238845221833368977317178115757042093587377639880446408524720638412018230815294618888042913143476201626962435662919925811922022793758460759901116786149216577449542451308420944978597525595489699935160613929331587706784382317505951609230101537032235606760860214560956290338531496788625922053391131017162783666669129810154963772182000262061535701586556643652998503842347458034257131824681206074553429642733439376091736745837969667793149549293403572275856442316772758485875353346302860236187631469829114585565097356890730725821873595086837642035666847694831561783399469387997214722200193407502716024280895553175192444443413598905634615325355117359271965172239712679812483876184938108111239397910103779938777856872152748108791594158682384698093364590253940371639207932452537757236597455563920879403076054951748814776845160704953808789138783036663689793886651281191628352351295504872307369874516805593519505519873234978316493347513731458953036762011563468983133351850494374936154485078851215338837973283856094349274525468134364906878337436092450893667967806569979711792029621114512055748998485398284459305869098293666914530019699329341396695251108321382039717485511757123805355295290023324296459099731799334528938514348722087742054963651804177080106595509965760671467059133259147884533372780580171724439426473741546022096612456836248562993124974081807716553541695732152175284376369841229917786073725060603089891264043763669945834624835059234353885323180431157876353733024426280462191886482977054250289077365632081524170975576584691420995915134481639843763926519477868113726602801403950540436138679201890681474201022985431271270916307866084638165884891759137807482160912493103402780943446546463487144746646175453603281758419967822156702100028010201376481755640743795776693386378059840642852626016655031637821606911318054764546069806480688835913910867947105280856131361760601893242854087158600110291314229100939907099767457947444069206801952148634428237663320532123767443211806884118573911284549531640695037578131019103665597315580505147786254155445936609766221008500035680677897847939580902467770354130751571305123568939208261347750531283901703666273810431064756033006020085843485687228615238389824436283049121231282158432693612086075384569787635130347644300567038784264837065971561705531094750555636611961373708794366679959933871607778895415024910477420217568277404101713343211657718790192201975102068784108440326439449993051666361268590151838191323164200556640134403061346284330767072561037145976277012020282097619712123311392576138145869251424170148247643991838825263541046286940889986851804002328059268191135422141142202115967137831558222411289987568802135167772807488266206954661068930873381433968972604490867739431135027415589805876716610386142026748735195896349394000833144837948110380668636980220947194055357067299479082540979985489003824791110746388206061830732502390181731146666017701641234404029426254350756990489094149622273099072617944323000609771925604826978367585518158104452623990824517665785134780510816546599162129275655519019089065110510693208216053994088074848329841840243417543070763466160093005925162923771676547219904790836834802449092843260365260259938960107546469921848861549237245679769356668301496289102482107471778541457030796895586442235472399428845347034327141698740190385709142057790332381991680912432031355173002840092240921578953722030419980625474482914392543627315697669464513797722675629210072754175459299468580511878820616210774870921218360745076492504902661831331708115130462770132414520624889044517602321387873428293924548076207405968105964251047082097170529874938202165767553524611050091231837730927621602971413741201891411461748365752041313850186098564593619090077815435940177068578229910914600688467306583418940052210559446721805727579545361508445576731345235990462157342696006191477370537737437091150671786264341807687595482134941680271281643161352183712083061817331790565464281427507333586596012927864143559194447381973955497987035209156329193534165659911535568012301924903967168378895959920234386059655773066598830872907992750517272744329599537661513622675658250870443039713803628379821106885843107346300423226591258740758806822296358926768756879938331154113016888078346281873866822191374422965742472273308375520863386727457955545506985594173293656231696749100032179471771684336184616951075987198295364478494235769353594946318366908516885152846302308454707864781255157240478017465604294035371587914107608198304851365315060649502351259677178863020757812316447342804443758601637707598264786641192845072010830476668262425234785622668479380575578421582233189608061891031385376847487792361845387496944939940485986784348881931358163593164596108981925540444117761214866197870818061132863950281025613842956637426199655895220889356835211556568841885133630054826801480474861060415139350482235574439712574409871240255811084893893465871242336552465428700863248590798649657806630693584653632254618932978240433951409620516782494177183646069837854402825485936278599873489995937643774036206937214744479092436022322889916885017009529353205087928231421653214110702498370657189754737825239390915361227278798267747027275951675585308239304308728729956241887837688010028009034476429330198235337668961211396769403319251306908224446259900899671943647398730394342937483880385265463152471870028849778249931939665255630685045791054953852168791848510763725432045894490983592114013469788171268129286966652826892015691713017294975154774369110544241984869524233829280256473487084078800676571669067054319039261533807974408650693110972253859636888879599394872000211660923890683815002261779378332462999038720414634124008376655221347613761064763440212222398623486926528251333826395761289952019484997740346705162172502943508242476168066098697688892528244234400783092826515433651978137938869904582203541736419536813290727504244343658077977140325501022251009416819613301489560723783520631430040034530319434491473595325261016623495581801841170153740625568034737460896858217387410822873634704866192089065833267972340818519428787389634238720211153338858378891458683679975923383362200197904821511952414079356033541743760671092435376948998229516132445786335191711644984593503774623033317819274763598811877348434987377697427980145300236244539101955453647338476124323575384401426330967245079305920864530727342970878985285782359551761267935608213825767232820643154712879071567077187356747935813162045770180101702948568214803162057865674827249862543074952118898276161645167989635862967228398436720464038211981073815452913965631303518835011349486635403924536631043933693592373894757532450985686605656581395893537026512135150928583034049646058819770051508810610795143200802277257883992512783153893389008755037335891420401446012557526315700846510795944375413941502313881465713110273949435965244257379982060016094873547686092547430747655925088545829518128485182194046976984689121076964862725660209831688701902455457511144661220163559562390307709602680180312197329468039691405107235172990127551781734521322009551175713696632742189220828598508613091557707594856861530574120382590752651972234707742195370630482363156300495980356082010610287268179486176984841481820958247516647844521992737789330329862120779326328613421877108240019883824868482093778381736956215742366810467536009323884442483998471883885415992693464240012577497789923538000731189083593173733847392747756700846392549470013189510469515302434931393568474573233524630977507589708868607494305114538244852669966099174045825805100875356933666662084146531747005124997064412898239288006948620242904625334869529844543063576513639854932116336809300210861878155590246023786834161594332221879000031877716168957774042111530510323865533162382529593562729562393031304156229841968449514848513668137553875538543506466437708503071406725749241253580191294685290596754420024705620403207181874091667192628728371392915598216658619943724796631667098388740211073104383555860583143217821180272265210581296925283170646600952099176674398298472952291529071826220861121704377165170341440344002820240605098418116332703915138727841965344004975099758401430871071870954846760606872598007585012289898047983418432087671730540509927897220974169613291095150778439562914307386871456847245088040845900110651485970554148347803920069731063082055378912853344483547487481300072153053141417469633231162672458327930184220387423765476796691059483196793961131755510945362659135878331968642254568890471190539631847642755644203580445868783160540892158720847311341875256004336039739516562210766162256941035867765359952329986029279991629531729904679720200536778982137374777178670067148609777600848112479031816364979857600417924385961060487397360784776759513981858108400164642185316742154485989298365894787148941090539083560262722283407632595434147177439495408579597579459551427253679744829863082754819563984033662121564094354257188173240441278225922972537470612814915258579737911061944060865306589398547846079972413515116958793431123765460522571688279728785638239392060654611235944305637827740456949171286509857742903668160647442115806756334600135616156444441532557426421448587387594079563325723205777552924504598715534048361377634195108700721254746567330743537612584385443855659660639862594103355771357132549873830518551336032065662158899496116135399553025566550432940596575218212162128430890516224405415464459045331520459497637579769579331885399071556359360302765462848017639002370418880839938128724780169324681311434471546183781845851919609067429530779998685186961607722535881611773207764035228810753303048342620868216158530799082268848280228245477607980601136906017190697583370127593115299632652654940664616376727841345838078572475399400871477791535504355396897759146448693635647411935622099477528401903257079475889817637691416587005503650815927973209340939857696876362231158363315729106556409230694859145015269222887516933277739189380174813017473481002987550668758251034007345395087261875441228903209924390475350490791767235589813670492737150520458630724463954182013985061903824451799500529532139031879594447708892428182949641881406964024041920699836504732429006907270963052092591543565321930916866145430289359107316476842613343366137793323305624694111502423150945177292657922460814607064929116887527174003659740420474253964850591403830158795028919238934725293285659489902110531472298172398373930787498107933909994824944069616580194451085076030448654227523993158414809733443713779735735146056969484630484929624192107181053276228596829914090345654379013084053502933119145007497257126172902440864821105871203208140965624426094400763918279489820435855244580998758725578677238650617551781027422820234761635129985416756767760414209298960094765586564569752700949284975398836387591226660933182842060587764229805682240081208004542376109544239280965855362999084891496109476664676309235719799093291225514865020914598395153584582744583423736889631205602455873782772212270320506663548421549386078482442214168131305043852515363458864847277693599187835402301151245295462638722845452544263220120497189895903845299025877957659185058925480359766297259377724853461402975628375120365726480067000568390042184833503027039114712398234694108471729985585354462994882462359906669818519775775867549233902322351847306814899326161153872804857261637913557260616502370437577466896763105126456617417809791550291112653354142366216152594457162353029272545198680428327359902023392031886879418545031663534313383066806839283204219299867953984345998549610187645296844798543875744540669942037845959666144232289942649104679398048320104318867377196562258868481786494450059840895701481911962599242196050622004511548309009418567965999636686718190136389462072361011363727114233615887938557818102682198804946384709458352968004465348167866950480079802471697211513057060409363361683363636364050580357772565501279829671909332545941892841682359228072718014103318938214133688814788966559302725570115027014283808517759980130881617192714281735701812532644918562296808857897924753301876753311783563523016512913341146942165383168400103256817356728808369789670830755478677551045933156532253173595153257001989514602624673675362802466369416165087782876890146791297864234973289091275862593127377125072072353189812593687867851099371052497710053876558317223420410519622614026855000694974546683146596974989910554254490704391079838218601453177986267889300573128020443708207162901799013700955108958733755573185166980700334061069988052020076518615920422400112112918859481700627178359694619215621539469126890081256312738902892199008740822610708376057962414601161854338138820177984253995311424247025105076111087745167742531033665740542121292209110514819214672561812667818885180710149854330937649029057601969942269945621064889416784446315614783788654285619876833677411347971392591572771461841545812747518201094360759190920747430864588397137037732081427032391160117453750026391439659225049342509964142801532248033675325207692836143621319392630863840501006960848382454753454852244675303681914335059522552028233535662891782194575664571659833471413870916204069502892611098019331507342713743184812776220393355104485901809954528272290126406969746241015680200828527809849980399004726897696025814277002475232027561092297478890048698991047873663413806560876015900562041394246423948003833320925122111678179989868181880034807967850355248308907663102570608189638296594039910228578395927679691701192348183092100194409370585816418144416171577558280956546814279213632326008973679694326393258622415493249499150824620380595870874496149835433167543413169570521797691993697397999200798585392030075099412727831863104984853877995729027256206396821959084192751552312433075818192115989221036754711576463015909253978575805327368852164666751115672012450092123200040979275216270510816629789088401209213121743283984152013854882662246709916506378622206481898216898591282597220074418059968481470858592630406341240285921764664935731469513696154204651964226550831502579170927228617109740026529322341245476892231618088372374885676000204955328449681288175625740436377230870600239797167290339492582206879367516019339494987790783612816490886497187090885412343573174581438208836728775283999878625841035193927507844887403132320105364637100533173424376759170787639637446804908169946537440924508619516048394554431801054205478085129676345639152561901634640470680959676724323114027585765776039386957871524199027946755521889701796454708909838562376996763601466971827717845088056733867942708260443864331077659581602094178171491531255275390359148476419332293034911330014561859478850330361571682178635687857984973148184318766870138564591007025902341932352130952601506975434264330132944285146685399311673390384438356165066333279964924468129324196257352678753487182918117820680793877853720706365326503757125745206881322521953557659248879683791493802379314213513196107826904922721420429305378616592283771825770010626344868064219864925732145048789913859769066578571550284831349639239297855834950978295482188311531709620983085033648693609496631856177907038367812721401565074769973381484059835709237601976417112993039969248693504207275290131004575112051749676586200658926822928441498096022737852217544123177138929575447550452002620190880885682859295959566417335364579844456615888595621131979183526762505152205796273049141039913917804582630119742351539583370824709274435607032595973242225131941316709789963206199239201192688286478233391064686283399398057522514393048534398712906987628559816325067323504457564490392966741260073311704289754616444216149958372140194096049300596573100702232744980179896355670444524167357842593268737747658258646596389132737493119256162327953105396025718298948253591691745681489893276020877464845440575461013758365287402483399904976372231419340418259356897594173717447774265902581401271737413367576553217114262554580205714188308107071593862681862486467688948652080528502440305209089791321126266975504353862022244969926809307723710741621383426582682066285173302079769769837968856873774699276369778679999594523131440246462596527537428107966709373651594273273617761615571326551893314807841930105348554271440219784092445231714011625916165711394847088948840891704006396277222354050077447219899503007531538036289157225969580348360815090734445910637296008948305903306047162536892963476942654864808340987169643078151637690563470726205614092371237801237638596792320164695912201666011054891290178340399549258826827598919562787828063239066569660327271973880457091146917074663097951187994684126221742993283755598932115251224455105989750940684152843238659719840656544040674404249982047400168381757499728669010401295261686612865346736762191880282944879205998681547858997684421010406321943519507811609609815528128760918761218683189382839544526295169110596088609298749118075513909758933694913106298131197763228589966890766063013065583811290678565028469263602725993438803785110905112543795530957506171183393990996373600842764715023899836035990773285166189572944052844783150528370983370536397553574460206364156083989252957948924204023351417652172686309640091755527541569327955627643412073739609923654317048004853541114045761816580572249371082521702194522740764370617231026952725782486283307219851983648330671625716538707165550516023462873657936822475583112738045198049689665200692670436722883176856105910655703838690238385173571366829793189747576069486909231536985245193338475174528759728508685732292655595401707671483277200685162930941561889062914307385611918672013649786333891048174850406526476047846286609868058619573055544789155772451297796774318138565222219943438191748335260510503806811101107115819704827551122859398299622798657699862446483172603401117136459728605518490988345730864628485135017292669942379278771037191072586872403144275379253654581335124564335681773312301214780843401871546169730550175755799078899763974432956937521804027110654563760199225851377068880378169406970168398893041919624236988713813719394746744383676046761097402124812305863916107262802965985526757262246443634962875118214170190221649798574441741086365007026942106952018596850158941854645994348969890074441631142655052722366406656854950392684234929626584248222568778242838302488577202206554142486745652912261818831554784131041905051873909670424400114747270685677204610770710209546560424160960144180826010428112720708428079893174404950227431566211734284483188531674433392562044908523714751705347268997046395901174983392891303123592810621056385602027226888820508367235893375257477922753591116575493368500557987023207249375827485216282115554442096138307711965443568452816989261728543056465423887604008956768135034703107118463396026788500557821615755098387843610164179910459178215985665729299590913599464167677575643933210814286450525309159719422195264452375527373852179495190189084248747773518693346153571434017058935770515671915324244392008880448579264233409323167353285847611987382437443378930531772155701382476958237951380428227221961207338400444631493044520642643997468725056335568840810053354306701050226810298849451206480093011277813742705182607329939886887088387108187267346995855174169493219746427873631731455679981951689828354028198876307271150698162528881386582653593614643622353256474150628225355667592281148065938303936282202082372190704661036733479817594582648590964496946921361256736834233986045946759088909317572740023669232690469617884297386374532138756208611484235026600203789350357158175274032769142370015691704648956043957296973771407042671761330851652906102599365569363161133711860887224751144417876925770275552492776906461316880629911610771981413772401181791362059395283464643055659649241980609228845320662309057620091266924184947903581238429809606934770964948428596566000469180264830669151333142830415155324963021198492286258215848810474514826689470618866518619159987931010172685025046344306585213099053810539834124872621247461118757538380676622417683291211416605597663736024466646591372222540753282648277185700128995083858423820508698700160180919147452302477158419701243120526701458694573766873010397654470177149893720255930861790078362355554511552840533253950479516721803671488533769215632991000565760182253293274414908118072136196198348235779632467235944462348665130806724254265701287198131588218448641329345615667605030118026329268054307022971509545907807084939967148407428551624287518450125900573880566047748797449311781756130055340099039261428521533711765932326717359472067468291770257772170797502353110091465161874304258298686170635911183536305350359749426942977961613966395275140902336176425070191546321462668236107190968660378522341357365792526470832838423971160023478584681644841571051730220196944689929163200342591874553493869846537105190040540339028599608671257945849895980185425844780200081369409809428158042442659884334017346415675112157130105594604738061546260293148279389154601690150333830410538368877975338398199594217969383784333285855181407486610944343935459081596660925184349840152332457128236088944361911092087030737022495144605421943231878595375123349237136952167564367946381241162165253775056418328385092146716847746450317135361835647745879660965029108865113516170828303691623733378551960722169013719872517084124116333262060455790477413500682975370678517748679102326081419289199348435045631007237559793467704016276158438569069539131428417917922251834213360623689245666222528447702813731920708533739985442623048918272065537120712138754844085157515564895271721207927617049344056457671993449848104837427318313174632504039345957663521299983309573826652726478539738093658957840557843849154443335205889838853039772261546600737090667060208603955927091061115614792472750208790093341400719622994096428556511503093076390990336472891858883090241103038505549649364682099666877753634375935348084800713969683964143094728054045175179937480514502067219883119001064874865247192971455389615661168210611043738236260209751970999408329897071482443391273646944908916802009266339090729103399907165133599264200202602354631230033207543094948779969515424584275851799351826729365564040302942530060330787619421689436490327552543574954267053972516862839485952376481114534210919810881346394783811729449625583098538586842914791224221447305720883664636711648500949154416756279057732127571754879860596593874711808601993066276533118198809169612423456027788693921531135661905080137401328285527008244583304727133473537320479091566140037905674052518827185249491220810459470607528354527146788640761576642710744578743045935264140752058889301958673155631216476659687687088745887024022879272745101769072838725720148184566798781632654608999530145553956306783616122044588975017320454761419573586153691564215881014422958980946167578441969061610025218532577655800483556619337402458837408036989903825756310913256115096287780963027006743730015491040325039572967361000106809739278845615311385743133336709147398149918689027432304247809191710346398595743792716870988460766621166469979175697723361194243949548545656355461320690517497543364284911725318617676230688714389828078494165034540113439696149178242295681052032282212924677085080297637227540027346271764316520871985618008107117365672838354862438139690064316337554241238715728722455074930624394142432158083016329791940932909823415902206474738005857619587842887317678487243970403774068192348994438418575719631918472810218208631259366928856902746086932753247096215497487092731424783598768478980448716241777145135029429361611890960790190989076465775529908768029385859466348014263928940847792778431962935048041806536075246623003782221740072277029475227257539938992490275533199119713616077127324906519499031864231134522246523583851709913284011904270846160837756615177222153683468458986521982770562985080255242122655093550694711548956283960852693861011213123472540898846944289453781618638605761043848786893056560748563511332268205324280993963501067067461995368827907829462998708481400434976448601509749836040645290110938669293297192242382216866715633523432715418687921432313215959676470969207620845311310335460654161356311591681538554050242413748074292201014783412990750868040072602132907391857081472478589211324634292085637060641019612853198888987118582231472933928906754493635853378589034673447058777501216259416756123599644244922134868507681402672031312167699871444980099905102565737277422136487942853617179640887339331818498613573712404464774178282559003728103121057733210477862894655659941750016323795604646384646189371233787149702766731865757241031318446863974534748416123490556446139032658156173292125330655763655460474816016297404960437262673199447323387318576425722287104088602505368501990023618303329869356779023199168702769512887270612344572136884411987363489279559089653535023157466507011198333927912720949466605902480526993218646988625910641723632946082010655175851322664591758376511361684736458698574194686467712177135900688294183101017234733420265564285399220817738753572497016994956207808874633442504105750145316871743552062483910453813265426580684356575547446161765329932044647369782594406186989893621498617408830578572016670547341170816925113391489169676086627971493091363975932088627242406116630278294084832365018904202998100019106144746536042360705607470472403101752033250247149735293064604018906710492431234205512847039047081139926226657188034415847402897877165081161457492076678416235201491673853334803548572328806741451269692689819183849679460993575142949543849008223178726218609008227348090742359277070131816793127542558973448560045024925168410763802445147736182424911504742562445255223678371077656863541279591646975366858935898875110264921472760813588489530892769126869392139585269449245296313698457817262503549111647206797750129589378968141496941190394026468537115323626940175572479785494235892904486229114040464158964238215428188190529960972511426187954533141879444128420787550013498176792615332403783792697819702171303413220156640796747019967768868936281795553125590583459453176518524141182985931444964520389300677224079302467163504253388208222258370271054490916866305398418924522890997924665870281177568608638200659919870846912636441775157397765226470601043045275819547273252473968503092624425701359389200788341839983570312669259412825884745337569702483556939070500619866341862905574840737844613689304582258472227045823542938556903006218676820150216147134181748802466169781702273451345324398796874685851484834260830359000231511759561780542672390337546303396652078040997921022426840372194819835540736370007354864051522117042618915761819475386199464012309351262462295827789741038124506862363281293553002973420287049740374523131649459204562572306304682480488795161904346780004955038245917144276662444207879127989636577276956695586510475769562733010268155578785523726077729461679690297463772192589961855873937581186470261856242994686367519364817941256715006674246119833106140239357397201379729042118063310100132662341894632170111513818358560629868015827871622114722442790976461370387160064308535336884349988502787447956537906097790647575623452050083988104079947158565870092808198327346242654587916547451135058084179153379124776495824672415463802170453036218701671865952803106408324823929578692904052006111842643362325702882988204075959036251484691331848166429694859830084824105379219793776737157093781471017888269974666019918331687054096636582362123744650554066673051655268076636527020248334955939815023451237086636408984868245432083905933500084143460249994319976428891212763761732013194945134588322942178833433835746930824487362517990382956880014213460462296336115825303917971420169332570078791508034005621770479141325074977185952693007940916921887868009518751898348556639666830805020949456571458928835757967692419137723742094650365927240605530680141130468720953167456962683284067643467438921659575797049764926281481806311853746669780183606144610411254846725663142058878962113678661578946618819632853511888042871410275414442066215774096252187634298763731250432609262568574094243269831060115295495760622554501842793245805544363649847303108517358241601694552456632278199501793749410621980590447817880036512223796624500363098140949822977584148456010167050457195332693273145615949747172370893638588207505717844827970008503144712644383317461955404488518590493233273301601576417458950812267564880000107182596468096003096798506883924177004401752615247277147236249016401613998978227638189248271924387475459632109494502863440305472297128308890127828459566861363250726965598323101347372990281324137642217030078008498890411119764020617127015612431531669573999178142309632674346620762710371250700497738037652138988053397794098399441341376917497607382604297589689568990362090260248422538138778701144733660663793041713720117675853347310906822072659803960465749809987585564444213455740152143247300241068255871256253938001182919986650101830270498443206578378903012990691498929964725882039774769641879714292168790294936148301013181959849768663565854175789375654986767180659242906717058892123671584531201261965636772757314255045357998297232339584607376661188199709334274753248266066446507602565297972417988857849392986519304677966883999661854777807544310756677128758119869837168271907675758306459460400563474883383958240438697371670093053095523925808157059346353514401971525119984140367184634301408853082135220725723383914245203967494857608471189189007104706598514179095235972568655260970000909043170863940748422968912823740511900180557627166878279064729666299220664998075295202985687092462530815234792662439668067881683543984663873623951445492058579350911384878578221954824113983736141844488217771543451218249026920216657838367052348679901231863175905779159841826655657883609575275405405221075036493641542863646830351476612515256475800237157279946319457634639782759781532827807532999528627308751171903597895731158629856245976317382416664620314984962436202319936607506861612878305882807475825434897853612667681847640163352458916907780248005077417781539875531363303128301437484601867924711075276860155704887263600619002704976815403121472850198134845225729938591265951774423164244100320588852046780536100429005274430179852074400428677273757505675202250665277925494791859765346979506683628870054287332384688985680342275718214668483269320839323497910014948512700634194068624511698462579325054771036338156784673742146775980948095433200645940507027961232684191603693843076089377889560789527945080248321710345039785308919643501575635719759802838474709673065434683872504718308152302352410075453964318165580358040672246443296108148955595385774742004871796313977333604371293501216810713110920231853996077933480740541037848292941999002608318447404246706602003649016366967906431643540670974903694361628615732401955456046959871424493131822303145205188774783850792893743755652426283024463220208346550740796583443305199591016030507859756320279041193997187796552009396503273107828753558536705388692108275558737926498185124691455225766711493796670484038980364028501175949317993216262529853608017958758333794982707632410482817684460902520148651668961680805388131050631359955391318297311147329738640802587716585957432641538006071494027927016265784894844859881055922255657776736425236576388056310140980956776550302427282698258196256126369811303333332310125093409463453452150082793642595527236789572905454861897191023218798471095139161297202884284720093878316257825281999533306710393232979301966455640000350675140513091884721860700129475766073819567138959364830010434980128290512169264006067640233894068039939248101673801760330518057937119550915380251135566738833654748189867850589478100151341284959007857634876097258616668261126198571812689732378319038548486429123755960170513111222650815689674872463001545712203930356893302223131322256814089252576341823748429331603246198218699831561393804012953534311235648186452249665240542355887863878672802421891601574700406596970763272611067905749095941955505600399933300346495833438573916854114556315998225908521996505807970104770378633108286289123883352328380288694501673041831951832350972890412621815965339833523463098791882715374731995473228518252071833640150513470250231434830569827988263019810482782022052209897607834896613404746675824408606053852773821949796165303289846054042079975916076866737276782769197140771619795700612669052644089563426437502433841561000594416865031664525173186242564840137506482739206605555156105662036641915039093436506642214720389971956126632275555707643813896547680018824829814137926101815192458611102664908888484168868903828830132260054772151898816008189014349914747551675878627833650732392704093884454488699035828595053129597442009448412900250746238194424871066442011557062765013958710318605018098625425569829194114351374483132128726481803631411839528868665671328818678318518294220854388186902138460557612865903666130792142586206002129973250245609024058986322250832670485377466753193366726401941403790659114660710834292488191000109809416740230321496666434790277022016272027736218059757344801419917896277473385938195076256710984870286730092183257679887651083224693624421491346858362853763544746112005701413363673226337200008754080152349290106603603914570356340796804584073477358198797723833506610284191553987100351275453184144836357518143985340927749494388184293972882320578566690906551477974566594483029529122198222553806899571647773902353489774354284425275424940864242503636516630739948914878809236432385156805399519063799626446617695229856517128507233409275671440153482163270979363397982567755181994048927708089183200806958740135043553819510303117425277787098351494547742612531470841455978142914749081796104929893265079391177284747375428954446698359214208679466564159961012816243539050714829311677009045999188786925194841231281070437294030696828800857960152238329170196549008378407533566679067410743962000173389547458525157897556305881549269789368685145691199443075495959509795594026320980617033835285981033023317073364569807714012186729163010390212893707973454714246719932544983275522015798645813297777701709779047349110069139529513335329876768623295898019819710728254994163677786294206286434360364155767747643310743421911913161303508624307352801881668631346891425769895578645569659069422843734631537011421646248492019390390207913670325902142018404797065182828165384540508758655937613202243305305983331537282643446382758396204845517596115495431753646709217389263429433393521966787150333016795560586969145457338563479043318174576867445760003421362034293373316920700180154009124531717448291443277253589216413329730398207500081915897173144025473056907765379502000343383009255617709924449366962418889413121506171602626589795815428908837820149424690290966511410571601586591811375136895587359983068177653703078340954536698352429831661221538463104940812142386200303914625556085862079011044757798621637541585391780038608594113556764838381130222256903793080792838780726105344532813341421438690960021743701730228687757744059110991418051138169590750616352593706891878707366623269336908761987422964681951816670825782983310625933030620011104275064469417672373366402801598486221802846678354727544177199773765169195995835973214670920936922485457931487486245937427852213813527311163075878566155847434182305622425513941826182418468863633884747075869866507492701072211590076128153340049530942300456837617408537082340153202783416349877291415137967806602178566701696540314540131618881130968201751042259357248311276206722284958571041011278279054887523430788665930165341171255529990642212320019273504808361237501567748246652612684671463985853576707877423948135629425826727928134302464424966765705623498019261461893109478831621278422495788671134788814782477543998804053617041109660695436026108820701257137634606912213226836305703313784562681564375781758060352403341719596070149760733326054594901900472988192502895943444362070933343404244739281288041742254394328692480564954916150994534079277924757046973692596643963572483599463694438124947850614323317300914048689538906256119779767012940136002522470209835465699487735214206486279450518482245753295594920593189459849680172578433245956771167541846122509146212103140324957665054615636221928864082250523759874068417869708775377405815216275110032076113277194646518242792980272947948560219329583166666021282620369503547020222418153559781696771028390209623605796756446636945062438529367342394516948752813319831838579906533896367171185459856074854880877411890316885988411839519487372730655447090449398059167169501832237543633936488670906889063304110612715601311435123671622533654270749310481301545423745685116110996659317837226699782992539461235329683523625881957726888409150181776644762390082142032062804357400484828912573037876601446341091623954346444513836803891024069428469654784730746206251353430765957496110904062530883718129472260139343267939708121658801971285055172797379662397240670383215408212918527025504581934893989750389217711427885150893182297388802645450237319534673400642606893495409663377136425236127993107860197153612265193552574538289732441255176962697909098135573791500247397589750677123087453380420108730781618854767943536994111775182048079269920784134751283324122203734669993645835076533897169307324434059544811898331077425386327242843889762615410465014961318560903683433667933591997906198093914566598073617788643597916396305274875490065536557376708176637999674277468329116000632732066837459726644075972345643733298171765640292408958694873003191288464190374725405063190271871557209962384011308260472855624955524652664085908534301333782426625215832441489258416872879445120217895624787465269257368884455265384769604183281810583550151887409327862569461389880037126710847977642608963952401316864556253629119808397129673433458615244202985123243384174591800530056865712650548772296573172730818071734869009266319707782054415849955840101830960455637402914080572475026420547153385186432725070756003064825827199857786189206636397000819306084887353879601482868808380405400042724800812724073844563333801338914914925639376352354320245855422468754142083894260857166817994373020572431653691243122279632440506233016307380281343378316033123948909248416368234551174555078121263311592347687162622588580179729207390631483822420980368842228617294133554065935254374813330081861964861801862109670078049603116001938977600257997504044907073826731597816970854740943020303059151029051353321332707669171642725899366660106513644401534628396702642835615941828895600683465830681989653099451926321636343652522727529745386293652927374078024295060748278929807453410191040960501889777489571695470826632215182822649670955526128311963412090903213824708578067228986806229589888753505177260477890525621526975931144073308324332440635299894155165883266068334557997900275146082072226800361605680666801028585414774415562438073316328619212255819713258800117177633092457483505588280685206018129910518616055366399870271174591751555634462156356940514237315444500393057721572140288205853187631869894678298764129638985818734594384483795435469533603334466203297883256552319061334460230669323561852955640206418290265117026992890901269350738317247635606342453374340618780869893430143005970135583784748623742349509386111134411488107469997235401537279643345559765466771366627274231828599238030169952622051586230178557840777698998209358074332606839211789983006914654869720224309143958703201017233979947080546162598619566867584452661262608091489633802585627402083984310439981352012367874293615342855239957433533742623158277073352404926162040427829352480079945081386306793400374263909933047444624920348722897262442325406338229637174308580091702851692515507393591920462831990361575967905957390672143101550704087960297750849592656795274986954672591154265678833116519578808595436912554098321803482054334307770824513002793095373583278417872602637769659759166964142599722657482938641167153400310281811186103015850350172872974347382204353610834742957897813207915963700398314132418729558049803105824075484423368834781837017435226916909344822011076669866265867915933466709767162672520244846349376302482485172990684761731416536494561257473137371334604602596173926733497192401351694149510882338236109466640723764603376450006801649558158276016213722327556399000279636969051635155034059169600852853918438567017839981661207700337857027765467528477097692989949305475895836749478563089160931044392883516916299838057441544481080523143342769481859546133563180435739541717169784594859747021302026781753984143449057048229376267413501641643749392453803223753403178796956809784830543512929961825452969745125006877798031409091291655022347980016800595326799602379440813921159441967044954612656535355673800220398286606386031820251995684384303670888832046831783295316736732189185604953420288295651611784434522591231324215103790448534312338648037045667737247687577539831391873211915113718620961552667113447371395795271407330665870617804688619666765983004178163006370179458552622576959858262682290062213777050064132551967774555899402302078889978193243655434797466301963315310569910889731763669569469479436919941087072942652744776413592574758772434520129286225591873055465282398156272799255513229446207027863868123639264030874673898091943652514671718682112656331196122539017402347782938882281947739449298684502771465343791423543000898446540962395763952863360803426382272827413806959406706354795603946215618259531371416852313853382785795201143143094212470628607703823798228949662967952777492280934118627037050345784470425966120316859895961427388343770823704486597182593628174985099719649265110140305563729753550199688581848219171751777104171396606309213764954142855665200576639042509582823138076948324259693422671890840417501048071786291742978622363363295469867941999865935773795173385619860509862182487113970687303580539332842779563350073538988959970112754617949193784240502217659003494012058574668809918290692366487624018082654523675948348439639398303977044298317829206741928240704202619292525299444887550560002336957876814991869370184975393768739794953023494272989060280690992981754024265023113252531820931577555903238506400029533031008540818398068895539889468715780538022785272928711595663402889993981926558852590099301585699394083035077067370867047392558870421127645503008053542334960833794559680014165104100511186610957481615770025004086974357130713175723831885679933001726646422635483539185468251471569491592549654094578886029655602399465945929073667018190611587318675519848477326960084248464899485658299021391248137223180731055118559157345198926640284686413524886621902788030731010572171594204833279478561050706142356727207662089621266627307451455477084090865450762976250187673694698860101996054232511472613377476696353607089922298210864371732256453900043938802311210914462727561836395571216489363533842204556829077869746092961249544415654687175597425657676469779183249089425857867520143717996546683575941758788790524650905242120226858546144725181635733583907474008900892653186924691066445830615894240219406995161560912874651635390226969262035686840184028796834170065550710543303468381889579084964697298335960187372998520983910594894393512110340462076959535434265273457025285128073499562523385293460567201783806264317868494327583821866089241751390141622336604462740638916200576406636907104863742911152494981319803222961202843534049473132390566851281982672702509631799805566168285199495367602524872192516351329404865374031402275186098928503488608632897059799367940230660633770252824478560934814080395904256465829809190222047009208382955226904902880059665237716914656052792521833071923181116573595520734005872193932262303591234062993211081917276574474876545152430459731906718601602606894096141930211443587970268427328598356689776348954401441663889619989166498859259213705755749405662748254739188239044118365545099026406434108792910836481817633877783978184089262624001515847030105850805941027206251424330571670941021282002829035627983273368278908713470026864986462736822262163895105174407285063938624347040138337004917345430842038808486205185817576690314714980991683274119605475965519861493426906457014763432164061139623768276469496132703533776970803125400069577315097238758665345102478943029927709363238477025038312040833283071384039307100156207406227345383004093005101752567787918628329687307847261691988898487303015864588011070156068347057915877397756432097356561502633287996168271352838884809200665490785350568176088391211539796765747311993144237070394824895108722547261961137333887286342115493578796535903369187341435739281922324681228705236479476131848288034277202789459006777790093823400745761403118863794313197819834114644129026238900602527680800948268993938567406453164703225417845157286438376907594294510587237447481293443749976365542853214258243298249915657179004686115681179103947941903835205448837489489866352723078083777745163608708396310876240746321094608430842860786956289219805935547511981914483445156436285331449125847133138385471830200482966314693276902625574177120559662137380212649385868998538554199770009475724369597392099160974259835329809357530941584223163343346130228164435709276588588112092834114521296265764035234377541032606980746609432394453257123641603284258682052042000377194616900330063224490857532041099308901562163754854973099072266431900179491848370759964584639326958606143011722364670531195241031944567980065973808499300504400984650700155808260722404533339255141028240303747421102795332167516652769543295758650120130272394672555884523601315934015555931558159388269803720790394112911795892364967708034190493562744759748239935193156851869349585201333995414742800569850480115579877717158229719839360847275610796663030903809279785839063156752702983018650455714555686157259638926735864601785148318220581891541303883475695172547086975588806043136684231959109100767620501611459546108738517859209390612761209570699425874143230418908786999536493762685895118716726861612479746115176949288347380893452701521531167522117901905270564808495502226353062136145902256724813280665950612640737862978305300768162402627452691582164817136164464032101583048895228003031225284669547416718683071082175643185380204208587866907755573224116902684486589937627588799434600561054218707850959781350457030625947813143466441361530995438242841451147006283302468835443251184560665222124889782729229500132358393893500294498479387050984789995175514927813584072297737168997055266171088826163354573976161336024865813950092515535069283602052223797541457545697003199255025375495774113612524354829987614742327853904783127519382468268353654809532642637644013189269264358679619233633411676936536829126204965694751684831410429550400357588744729173199601655293758366047300553343457402675546248390298951719357665210119898892075593116044684931120986307957131790710318892631742457118390267410774557462906745605753915608797389323375554556922064543964853012148328991786991287019379987546897116490034908469045910293280975422321147214027449637126575802839663491762168378345818752163004259453466476628334224919119094642800707439556377929466069432605044186272091848654633137288317916319545684219728883119900742329611483245324542965482337090653189205207341331367781884797201399703856413391100699571250170322820874879966547734448431228964455627836797384283613646670030077654259203916593223941649232713130183432977592550017340768068810218919249724751847798678826282961430141173524065850747906295574686484798437470880301905051435749803355977549302816752410940801675671593680124844227560203337143140281265672721665767751167739711730502559669421741647493354042650306878418807415070801114265936211177906031706235181385495506986473811162620238653099655194640146716679717757425474200784498824926487405021887157982365232057329034973756259728797159015157267158277167826165680136350805315181327573779915055786756859610909683383905396708910743088847007722131978314110397764109484612437455318428281875674911976965237917772740835668673518877205811389521630921435807174107568177213542556760372994020967831556565805743600226164520045869735712307833352035446404480578271578678047721001978722179079503315923552636722761374962903479263922834001651281749359172303483347712652658226287795504497847915757858080265835720341635793546033003276522790819298812559968365609820384325186978688352594978374608732450467317320160829581508744854439001300108511788109155717017284738425674866420626522153707244104950733927207652687168415966557639196366143319669047610976042012657458441041325554912430204154600223123609995229996472596274509096699121078740835342506095677323106709056338557771162754119057430808879630708089989963047988385239791746897710380254350894583723523454498194504139861961525103472815409783039637908491003332242351202758291127914748823808704794914529316166332141571359186444766362821265873658342422278685818309761723636543147919059535959308361747206948770716543894169783824722048626505207189191399508201837906544250085412858275484904675641466893848465457334648197438135660928035968187903372555047628750920234213655711190321152392805336774741020963552036156838000407968088955495656745113105156321963026504819945039788623228228398250261001500553923950812589961941736018711581037958695805957057704214208171147198402634627938618491011688701357817867329578724623678684117898118717819403506226734979089218161664664300946228471831060621748495587775354866604516069693812876324393844168887470365587540209048733144197773162335502470654667291410943786140214828328888442851743345534820016254958896640892499834789477291183924080854138905053518348905430877256474012573991170185958602931268150351408313113318598830739601039857290375967297829118028061144837361819348174933645919230839935258736344961526567015775245688249219267154996919437920761481847276976146525915337502836740491839249684133068191315837107012951869221577797462816240249036779163393615481716291528643966201287633036969779663470661896718847047122049986560273258376769931585620210342507356221846470924368657842298931808199880564225944336889310808796768093384009114974705430115709328126018819342568681223275606652582416376054315054952397458333787944521443688780287330693567996710503913722339307935982838383353820363821199750205815415661902383630554742069892127218459446493162324303243554107188105073853125791461069381157950222474125118358006087160929100383519736060182991491612218250879272804690273583463806290052518115611308058677916579947980544648428955351502010732649793244535292458357089440244514894366586916476203782311513006835120037180742083537152621497118274203665683857596998642106699391208757640336294157808271761611088394838319804911886027128205014890424553865929997118503515886145790538475379444932649848090628978556001728055911229259006536732953999449310937031962393467246365964760823498990675648223394752240637255585877285048194991497268223506367828290141554132483914865408022645819707799508731641099918767761613031507122693616795213857936709918240154681668405082768582695711122720940872075312831807786465975503495040740762739430863611045056145839630735977477357900800013309638403738256346482890886831413921365262343299392756031151485605927905458217380788224162553481406827253600483666086563629741133487009535244641707278758446222133520464804290579855588480218064453366948969132624282807848139728865050258803986680886259154120662200564331319525226732548963684596709787303595387076098326403169892678715184596174730822252014335487971143240210487484414387491654191850235826665698216703822017318834556650239549032658628980197990298560933983656863732668727288837097300441209802034422591337100517464017976744752467602619407563778816865011620577573807673403689481923785752026868468314336095466933017652301163857167600499768443828869761251588706029145706832644976081497386674928116801159467363035032246009513492843786213544574197578881216855255482027964619168148832084663848755570372033742058543873201501941305538994519058975383295227443208569363869741753180952552457069517449573443344046794110727929836145718637037865824866864988005276283941355646635848350700320660700466678770049723454163352665038172651418107610968037600478387680742359372368152640156115360732068446748222539602324616156527291268547976606472561989078476746459723965784074306804897123060133996656125892134888180275739290363223326121225706669389452888592348747421454771689704246368595173567855644101152636541631033653160270778344039991103408861057098304186608946052205859420184208243172371301647582855976993126553597930142459323929333229678606070218821344461207780628075603636727773740886336052388743294162016869307366599949328677514982163009614390166039525241515730698918435653820488247900040284987391339278744598605305808642762543811633617808626369869502445798504200641191587844430858405259167528354881508913910640560345965381220427307011673499370821257805771864606302635463578150757471020674891594814015096894143769361132925073807474229752408556101765286240184915635385170799645543115991342328775268460177965426809786428613033561210724551048681030430298596577943037034656778990933530615049987699682980347619186753900043359606872960884790042542467228654417401645352484009293236800856262955666675325440516897715768950704447596091053153521812034997289478072833560686059520530805787299305009185268017374499968242168983437075148165049249781280046738526963075207678342898015325300274668640691369504810313358663846328338928087068576590249106242138758691664458743721418260098821700407439934487293220179589672292372104882900081465784113493502397840910748208483588806944713366273137509888188833130594257639932332052350559138031812329755753931964242810095201788339178951257928090934404207646953995472245243835180703833455866700831818800772753685027325842102154592418156715786089607564003053892035563436853130860527694056099168501048878148955059187259393979226319712013952392843850065259215721870463101767628441927729389836968235909102147476513315040916156655042084576283146477749263303814180593377729280225324919712635990669594044501905169440372302607215471235941623261203996284208730552670374026782281983400613403147257046524532818846821995766040098083885233741349386433928375999517126510271542695202720562132062120410566826774387208803966383643965583167037715499894993592282710010386151703533540890263005397102654390093087568422458971275934138700061257096606304555962127827552040419527601974232658037044156684462550816620940132774904850366496112690012718823120478535223414320691890542473827477939442714951095541608353532411938547456378653122036309093812368728698490799131693268270710609462903712595522176606498615314001934933446082711585895852169422250126317212301094753557588390449458144910560845288014701646916970781635488380679124077629748189353798377144711504169292505212271677602604436924804303150526812398650949724174101985138766345200569808556123251486748385007649770485598651770597291230275495646672485082556222947939161807702795911612511391246521365683019148581406913469135949675983613197694663582523135507014877162455182282779938536791508214958391438519587728419560806275025824611429933315432680552519065941456120810844786516783489158536493849010162883569408536395238624512409631267804772237569385328068927890200700747376942796339383942644974577823780093655783170234185318926554265408818548621958640400131995180942262911399057078061590629234294672284876000713717785344088681344147605301813322906275466267520330862508902530042084604696135435434511343532703946156950272595339652806919621437801239881178709194841226158727420361507917366631005648141676105147966860924155994903773860346223840283934519635000305768738475789310330956650325286063297973385441407456290350130101163876874167961680134889685813421836073146755412120912938698113816359825902419296770614818081046014862212213006902725572566560625291724392339912865192235873333594167689740887825709588274850662247641605967474247610172228335157794584295027918907115602213154269993133010910345066006409329829982598347851385865188000965382133626882260585425142035147032197898176913959448242896403041264765862227960880580455942199648729592844133849417906857160338556161041691405703979466425305816578332678284506232437630784811347780828702463451681615822902112037554302382586625109885904979235458774298481347579100148219324420023563291971117616012989882567689493993342981594244710397081377439883126240150157231663135782906944209181965909832662001713386101717426846578801836267827947528989281710705517011764706696727967356586406110727384277685561543126154308579944674986465475472905473833196076318075708675470616607926679589141758975451351458583040099059425441309657520839360982662572399393918706089540610537244654211692945505299876837352501193284940715079852654345674175103630821221368971799783772584269244365272754265632365970639199285515523287430688761707493755188052655802656757126709885823259990433909109429570404557410667508805438886896549748394660781303372038002449167398121851118820085318471436592709815575269384378796797181999153411419804370035842560812807997836630878565186302532094928192595828085734615574337253808169453965153101782491494305340785076696420561381182496294722601787905915691833384593526786900044406409331539348739305539961234676361411926179811549349000510334768985894921873016659289384986684056044833479660142679933026519596956945019403043371010162761066581422398800951434355863454032402955097993580760617008555956905666556949660497973777002911863814972520873043745464077534391819586519211464481759462149918218233854605024337951040620915843985420494174819367168696072488439696900972401962602964588123439935053747369797609137506366536889496769613542905360907183831121735309265376913725006591283351096950022760127505469366852172467102925021919640226772010725040962778794787624560977815782350152719416343171006332426338306236915320779872754185145680371524470572844564275351096945625497082227712001310029271168860131290296103029221668127158941695454152407243587986167068426428628486658574941651568733991784159066016819027085061800196108959619685991680394070532977654591507864850111225514100452628002211810574427665070228453850228708965191296594410114324725208531894015886901062715252598949250246190043151461609825541665892576645135038959336984308208815565041801093596486608810709645892029992535372410744875928742334654798469561631456663336284133581677914860078981505439058201846865340262229978752943273209050081334644220226199097379746333546777887993611835869365027773893766328499020112415380503881241264961660239415088782486117721701252186312695227653661520683945517413712094538573007480040711964199012238736763358006725090323345806809130842318600118012890633049654498188069978600145021790557606574654675316591907121997799151449424226135790293156959389389317438495649589471843682004006860443606328499501534146171259075699036971737578118768425713291874992534182672066392954375312968503088187077407394149960511497612494715705142327699423848103576152206898431416016930876578842826842938110572398131610893433534116623386536525622972491707699615740072186996575704815816186650572634318709080943852458414113356149560292440320914120016194251407325600295119161011673644586278184931515703791755054603592167311364357597502236457314968034852661443696846092177008808932881461649209879657932160817199961994429650756082673871291416938437980662655120467494750704992997198544982336780876246270948209731697726356150443228833881932713428814640247282856390032295659412789090986703719399835223714981761901093314343072117122849271399889689682930884735817021584386246383263216950045606872096096439579514930500707401183248618354925119607694133831375203417703005280421825002860085520250012034578465452746393023433377985653949155802568078776410951472310201426671141700835751423658659496674393975116878009274963912476389096382477541675120422417938332546860115484810474043328499597950886681742965600058368924760388753708105589168091928503908130095123422375507600731424630717199064796855125462634529986089430548192700345856717281769048002171115915032896151435343555889275514025674589274565027895588079279029549780883903109110433669558479704907739167286271899511906862719607992970492753893731331348555340114351268270089754189385738133872591358772921203219702797468099039549864850211678209260022592032805116252258626125904526811503273426548427959810146577658635634349076197140305691259086525037977161235048863274651746591405205271143070904279293315586747141149904871774686564796228232685637766540845304007070683172212489794932173013402129745389856852638704417948978453914906958036069953823454598595661496852359338719744978015971082129565344258996204934199097541397484638016264512663693724158132670644717273133116267971762454290101388953686604733566184465033498865521131489285146972016655369213094862008202527096689967771588109995697490914193001524147100036400210613586274778791830906066165612808051335208643527189023574008928499524024333286398115872131921608357189663326763113322497923223858057070651281771190242374352836778209559129434093104514321074273252409662861651949899244328839420536582247920433051869641176564096516979085324308532631155516902860848405849499177852087381143586454242148793114167833755558104201761554370207544031150613511229239948788757320975271673515221947857338225002818959499956476103068136958147594100486483177393073193691144234371017590887594708090199616886352506773621965130400570935013566102943873411561905730082548015878779878815072092512752982486395174683791497664592990192315613093071484692322227436403736656162928709415432476243994185621832323344556218231288697721256449966276410396716687541304644684299319925767572394184135245948000111822803817400210488727606218527106026245234031636496445325521753038982931800061194524327969946335015859851051525386681120052448664447886581386072413194158231024429561444359641194938113910444692282091767548382818032660027358562115482281425651927733364171730313953484611831890356190449521459401942095116036795468556701465682325150835174750550080108757055927217338391879624208873686077346838878881987169729414832453862526602451761388110611434022467497770447495275083836931578228952057427958578097035967351245671343059918918169954285595870273146655864200827310024773653873751010116258436432372636666707338388835783607358289417318086194630490038326174617547530276455166335624136732252737135637709236666971691984312136359576927218608957451947819594877515650437269146455321300782195396020354955508543698008020240171901609803137662152724951215500147111955947437221320520676150514452590157133081496786071406652824871048870225469362645503289645262220004064419571982018452202189177532184850751986459946096598038749110068549438656203931888192557056703430207811363648739326739800239904656536274706748904678441824991957266964660972105825195952390195401462211838123343301331924210396019262097656305906725839245212728393232933784010033340817796595677777986521111562544442933185092298553825989542199737768761162914807185492360513775395667794260083309403252900820832806373511493497897189515230959726632055389584284359532525016881192745664119727478893385173991248154885101403947024100518636462867566939120804429345809826946227679441231288812999578328980960533839933930526741544968348777605568658893729936061742841631647139931041363588994059326824443787251980480806526397801938545680754720876529247462002635840836165632582587381672040190790922646622199354312313648971637044648302605747228625719377260560420094182829634166934953940222093469307376596965603002283149712246106313995103449309488461235536031107121197523049372220648896430871856814669900993005842741588540468990228891625320703480087935322885176532627386263627093526940058528471899213182187743596576047693778807986911219840846135382728654136453643444423358541728723325322105403017212931410323528070236679507458541622724985097235631415069079139758212372044849010783443629822286955906084397164205106633102516293715196123031561766372759194390916210266592226312104277455000546175813734291553116645781137025011787026460421410250986364281584342722989887026534831324645117820304000719255654185308223524094756475323858263283426732038625059396367785373561943857197603173583204538518769509755590393997173473455142265567454459412033158785559770639698734805420342205945131724841953608868771373187970383314264555025965251515956696511808176534690269526463118770648976009165239174305362651233669148370469901818635207230697644625699757134129980767949957428175318558119922800401894246524779909820098706812685280510325702782235475118778174343735414748050744630351956722645434633083980710874773592698995252588014831973104791347238639155104769824866671930189516371377811167185309051583018380407383483505815276889191862669952612175978923111182029808493619383651148398856570265750938023877641822954513459249462384609811094174307925700082066806646724881913273605833888179012410954462940422485073638090704271345244267522532477155941490586645048116335185356421085673760792928459104987268783291621101719294447784013169435165273102908371924039735131397537223107120531420477663952302825836833748744583191617511886073803083960550268764506679448919798469961119242183032986876982695788405504590013101297426375269370302611821044368029919007484039533748340960293661690443935570068450192619578173713481675910820019815901614031220569854457907262015286188333539657279893084263082007410713905776229010438457123596958889365457264001198941778461565750742532743872722765302450061044215174618981817021324909599426403792341278335012273237399342841502480925172706704268057345316682643504269986411074163117461395291370570148661380286070899676211729126002741222946343301667575638877989921248594379570808962802243731659426958149517339103616581632793993624289810121151357881831931635451360178379152208263574280725767227150718561476378886325746275451808140125693403598974048362036432483984684134769960193334086025148456070866748375248974614444749682187934585101624498131829661253581323181249136240427047945638194842233362969237764948252042229325251448245933080918415708700328813962945156431653728378748719703621950274232599738756944105981736681283976213289483409052460070930684126139696999652160744865713563117492224279494320706111425807524113792916756431822263282052902132841106386195263030022780942882012399491375216938483135047289064808958790194998504342852598853696331301702063056616945858072361016468941979535628226219390105386237904073121835146545060948634900442903012494081361194383667858280503911703470874400827918023582711885049078840037294353401342237114123584855424261167219531587378934784111117938871509958310429996830069710232587412466991353512028292578818741923810106385055226262640826930832881708919125322164590168061609216052844138231237743771789722223347711987541381227019530415164008879153279991500382454150041564263430242623644239534642059808427749578270252277067523892524033900378068151451066283617306218291740049843276046573743043845877282835389637328182982887158062360845015557646408054150494094271712511912000635475592855508587023050624597478549644574396546714344549645571175995644334156958382790416406634668082572530438120354086459459528024538676848264320952296936308820516746663013791953748031346052415997060347595611927333155886613983311479306742009121298369744443184944529669234656811545791163035468242785717825054033878077895987005489828425925904040692502637262096522588295795649212586420557696427200860320040215009754523203884004216275044803591821948842096855725709628769477261388595312048713144473722975080680902689399820995398336754756218308412437409264634236696790460437394450271459939998740015611955886524767034099771073697336666573143264130852176904694320407085641921207911835088759029106581147597608940764599692540042344478211835012805166415854765187026124371931873993249945793495487447164982966263980170796694113082759661967099956741119212085813479924217693301416106015503998842016236250983865979338443317831610677176288970940976005755660038069502542475118538015912638099034159068671559402052793189813529307334029294538392250676741297236395631215700475278255516635020713796134259766500677651634686808974589901566033986415183166801205693697444682098545233489756886091054691946017547854466797167930777966771234385862841105048316071464663276511318094094716261583523108155939448809034634021066936854259351845622112152103220477423578826929325266962704763604648060583441244739098006649848697244681996015887486136991250884816408066718131562578664156191372139436491878690859511484186002780230601793687047713209011038895019687020238508140912820748681477742011981535946068251024790372842385197116420079120384240026427843311937080754912306567576401524356699094978180248820865368069304637369657134917191116987598084794056908276987472034696332883649738074139848140882086949837215120415609361739329338128269093052035079638802082534358344271772658029667001052135525473930060990175884358840412963730974302583275921948038017375244562443519882035093288424150853213789171107523339180328134032649827625397156104232640647621970710305534783398913261208491485899376002467148095356746451014871314511236911993486477915239321006695395549682625459609633889845443339911983202386080593755938961090659781961349251165810115294727616447566163315925804263057491693266524308036940437271757133333058561909086498748299812872258154480555155727780660804390916315349642705678041953385999902908357564978562668664005649131111214531797478524145001251927687087747353264281971951363496370843447167730677979648339531201503442444361301165617397957993913433027811933376753387403061159168119084144228653600077641525892267793942905088840794933433528288709418752307399124356509276492221288156569974556800979022948962994080757337082699570700662207349491349485423832740018242849760608822533137703834503145583422390617620774253650869757639254422244896419892832990971320317746669137063027235655124287712653587922178217376372647470186475281065397829958955493494951528541869138289391457306453653883887818942354416490181815323216292314782055860270725701409635600742623043625363410489014061578893687197117703370781334159829633774064452627391264573715963743760702996689978194918816663704488400701081942830196056587294377147863963931323947889336097826942440006129368890293932192682037734861398505715140529989154459845175746233877503827049926781782320619098857874645768673212522581309491623859774904635700943371179235839826773644527199590232557505869514504728749243761633990240546704050188314325015294014110222910524366850258745239634173538258691335318373474725521006582474733095272155979431517138721353115130668656195316823273069500876320834513736775244741920294024073571981649957915052422832281207217754569246146983668264504671917084046627052759664733046814909414242205877998456349497537281391178851454237542940997044230316103120414158334033968478034858680346406765426414372035700827907756889002769714620066516164806476314308977697071765138977662464074501703289593063141308985248039666270977853976507952375085812388889377635128701254356870814988357617578689109163970273359908671579916634018527742584169725365561996331236989764109121663645555013708640688729489458813891502636803923458098772147541616288838437237378439836891848281230631666492913885830766038178064270499138869736623975149657599902828612250400966923458645376900279467528291601601583053636619312425582292044072794211797607382330263278205266101480406805505813240176755127145693450414184801637992207292291249839480029678822889838809304734950804374832722443887863561937187837109881526230372064387004854981375336495685007795984212561056328254354936702867141112317739758441519868155115174436823937441979832272048925161125346899547928640483653573480639451104455775453389847876969087718861438690575010631018446530022233316584084999409941226721801038829842536987587919672529058663698391649909921870724583439952171928470194527798410891614786539944977479825511567420180900544491931430388647400806093356946325841063376112211183061290659473107635077985951189716258647037085321558433812606566858379675973332685810752909574830462663483358547698580709243738134776408214566003982688563375477931633403176641400989043028263631840644667255850116689409495370205218857916827892118675530959507389437282611501713434315570972446598030471633397127505382269905903615651180699079301098542748831917048918097369861253395457879794225946736490123223747530594895787446204962467258011212454637297148003600718865146412023146330408525250958586773403320906447643320109314211150860060174562857611359697324905435528692400086023210135697101403910723598319088156019592082325085825659335732268788306049430700542828921939252744642040710714982345051748632309387438014955480182554103213131173447388960905925338348753332619820675796516149890753169222768493426970247330598518217420725744415440924928083133636397316691568772714052333784913797429392201119821682108275067857293258610477819008226581907229813497231204478696534012163616185959231830993893474718706914885224103109321223294581469951036503613345511845121978587094212127438262989700783461227726028611290343285984548852135531086442406419383503204487540182444373956657693405902595324982950285792682876226924606524785965620610616906180057462037366673000502276708757498224861376706212376621551409994680479722698440796766846648521989877215396048684359875086732825375135081223496836137936507224652809822660473109983464337637382369977629552581201546449241742843358327837903695542833543846197021314376441227302279815332266778889452730087674300427548995413903119811128498491487399930519900177359224102504743676798941677793705311624036020640530887273507861030490294064549711469159876613848046241713687698117423881609388391000497221373067762475691867956356047485128600731648683851777882489086614080852763448981774667647509106532618710835214074042921007006715924285773577466078389768242763809967426910053104146925689015206140715352306684214173982631269667504587052928758013022358112479224054764313059402558205503581915626834163208926747748018774942300136469844661972529398786752903521587797943752201885574115303246500651479560647609650085019241831170884052814142400192045622656056917119290850201993821607488449100564223528200129504329588367547517736275284655081439391799274770984873083665245980194519674746105320779952638824840791215959728601310312994914436302368161777961573199272138586814498058564370735444130626152063736767261922658006647697540836994044770607150266785696335240847144882640680983035388316378466009095505179366266887656131523260204070174240035344875027495671142650534850337677816240798632479447981517726565122569757952952809612569402286517578625798212115143646646392965645295515242757299161970695624578294203274519876072762577289137070948191107246333253486231344601552287623475237895310812461882872387978155914505554191346119335106485109128679445451394525852025816087571571703765281088084797485789838335691915855172000200712603683796807701294316244712542086225316489938213426520467701514320260576631261295512676129196635020880954115942169727647386490490283360857913078632106991199129454507793384971116340335259884988605644620988035410865647950455889083329229369258500469470594421656176143565770792835838308400579070733556516172507571748226107788962835776754430768998635952784614486316648677809266926920564952904614611956146006792597433880553574303682285397961692399273474182625782592528941659265420311157742781019797135472658806501545078432379290387326435294660351215889180164310423037158426627334156448153008704059020549399972853168778679796898477959778582676859365755606278955647012488573732002772279463900539203944053768140261500538852316690783738954121455769073894457835429367867522240714643174278120319759343364270665059872428063318681945141643263604898601336776030225485270328873463764788362872748849772034484997926698413690884324166171083399052314670529515832450925325986653755983710143743976496039703210487207642137763884461147952199194757311009335990609537882264206223120647470982404988676008841299341936307345013486141729778672659067907720481885754198881593154814924615733664286173180920023601826324552353527552919625148113701081747175268477058976424950557818805692881584200763884321235817476531417540240625772852224537908013634469711001805888084858583100913123955145944590269913500192813777186593538538358332949546513447759013245275645766401826660649062291816781824773888667634100607555339640970475088673601943474780516446589549416300731615762725427652657638215998901069190925722903018719634001339103230225399070239990703144691463395440228479004808045584369302908804851796309955968588595708114482278364094322439996349719229971189872971980233971409653651975158082002397828634256380556737235398330793586001377445618596273539235878081921134339852012190973532890615957599070702793235972151239667118101718849786258526234723006353532076795594019853629413271593949933823495396582180633143249486887018439180206660065567919098312853361403974857790693214207584551320739895387839313109861590751055193717633865905227581069680778280604717400601916122639447639537562910970725078003993646517750181130924556491232888807303281728756963096883964750506389651608475209391420587061657739439030924229723211094313060695795169821559089598956081364037927466113474913949212799064709064598897431336071469319097562776132394264156458039790773416053995657135899970245311549399638591598702414959531753480649573466638362198122320775423673868368953375586650572259607870848119930605942186994348409224352276176361145433136690517955179632544908431593491207736017339527910404883431060379844488781481771103360608977473892728907266939036817988362931057380030523387912118249184998733940445263423571034018586667224785940112685138324212767367448758763028715337689736086713805244533378197470385165055118910150720001398371875819342904986353691285594945747089646448770295390583222114731268897128508962379661606346880051951424790732773147002458084719743744881871539303682002839441909777355547386150708071730601949327290315940934510615934047188930161681675181853431102404400028535853387096700754410746117006935106768433838167187099308107252203759394637303799905431329849651881338225526214264373055331297879058513134325953053075388865794648969337632690633599822183035827488534476312479403030675518317476593461141425311048636769255780188944447371195019993565219716799960403821583005474922119323289095431342979594833113178912008821073557234031008184522161933779108493837386893459931030186901907517574267189231871093157817096246585512346068570679349128276422261232351250509051050785045759538371740151326011580552508274580269616914759466486309007939439452496695560059069074658935925919944142728658416156869797606987948358135428844906993707660726331178336036619150746945710033485947435699696396132540736437346709241127711466873486615946422709905676564964988127846893649097439114572660183327065060279213162040272569248920002349666617365936807809823460194838543358642776413834737652994757306939067387070700199785032600298546472483930596768664768451706234058343642892967064529007572459890370414238850175570290875938432211477207398706751967775224372638914927671349481921604432124514706426655853292463078865283294534716485752652010942516706374337984944022654686464907020389167336589795974227684405918867464770961975771004537578503090653173463825973468728093118193990778687077876016487349139888097206560419926566581225172123173181257742885122751086889139412830438044197512481468969351563509240050717662862966133707558945725969176156719438864730811389769265232652016812292903181989806442967006665750521806734495106478563680664959101839094049779552400286613623656423619395920840279266566328906636268657841217127229267456294466706801170015998844888045812633648266298461668879507704054750680055408386604447311256134225814018132598854844177184132516782107599953195951205831918566992843400197570699201586129438576786902531781887321945480395273258074409530531906842289115571977047375806872626969783295872313382036208114230454848580999787348915286944952909598628456950772348004785455336723129122145096401678853759875617976239032885540915750510091276008436651804603567862771674534459756270549295894931653076268036143990265930632036553232891823603418436252565363530742921523056801307774293886537191067430919273533556169191838997952176694469048967274510235283007959443146206946209971629980503812236626283242467162361302323155608351631388285274062556856087371124802681956515492567308325852423337225229306388004210887598578516077446372731011892585473690166468454512570782269351803120632975476892071038913913820937737585062620168894894723650992933472133943844518393951310871341425971726462071916479047108408433376554533629202490890243528189692280081722163974120017233893848668587696620166964946844779649527946520252222062883156898618711403644597674801674659762269024939206474444211200666186487844158534893703308259739873741754528710220479176489618247883413329306353956241842677875150549444717637836741142687256003332079247137488939712719032625440087436311343135528133841013765892225072045376689279779747772155575845879716613887252980248569864371547643004768776164957608767061888850764319086807124197949499095715623290056098929563690483824758065511406325355821782188128693408931750224821292847708521037495832485431564879809760331019415927309331664555552982905688004577777350019146032270028266908435512325340683942638575757502801311893655719049448209143753481043656968800372096656930408301669336678999741067582382224972894408919819303870872212509455365219437290787250040524276522134984394435903950721521768284287395166869163810586138693813381443216670768031126811744889322882337350576180686034433560918155773230550584387018659861935450932295863293249946692122317574654041678993125247871487390974986054467635279109788785490412685072620600699264873109412717026831769030618886404918979446347368071780590842276275163531079337309898499557358109960381013983156498094796138366463568484181071552587885674448991026277672003151741245696624464790410130099438251516029883997754939210064966916400591513197132654114329185568770603927022916080005782682922151593729053090165140329722286496999002763692370728943059216405015379794122411515817598278934539857868167957021494335269070735106736131433950764421907812582502345694943450830485716068703254877116605511289496341046343630121775073363252694939731489387524947992533452687449753704646445420081620226768995264439328697060646961715699454379998532964166361854687214846226122551295560370619121421691305291710684538257911226159096695332438784649180278817534380568325599469386136092125694767245598884313951178733325362013913546930860083570229170519493684965885196144736661197796583675623003479864913092986526101055733459498087395076121086964324606401208498942557934388678702585807259801877996547165101401107585747072442685864254771973106838836884203395699240762342486654466394516668987355995583654081334294774773631701267601486187480475901671996873805020201890949876724383521382755049327837867067329152139010430211109261254145324962465151369370291321553115677525154524120776091039871037460029042444523855928201977535620750341145167537050557437722054804120786594347365084148465685787365310431510763254076345744383594828307911001522763143910079339917267981412252838247394687131292663448302126923239350535336514415013602384315813593785249894509609127896880037927826100539488729320118257337378189629194001627113344140546258187761032822337048137842609058750072202768750455191748713002014240437092214966434112326582043117559290098245308062961339275274525965522086358166654133359826437635141876895288823794240370203565207998417229216892421956692424833167741207062291983920488630321087328412983012623473936927155642143526875200984935675253630001620483973937682166556063333887030258737526007443166175615434092583877441672880151585524006816937299475414580084223456213854159233812413060392219462466371671033628245553118160250393275811491903966608706391357222674326012724429529513620490550469420663161358014289207319959425515322670488382852637869833362359834977213060873863570196500483824266708585282310107723571240815576926358015793407391083718145446566681644385806957338553234304334139767852436719441342942427507664834354343160806130760190636906786887126078506149892560813687624741062527877222115231525304915278733429142517804407233864974950100755190877389607540395343678789449504961400729871398931920629996858125446621866993127777331159246204536609463989248115522835813945483022130456956931733214651991242219586490152369007301421903600011753787098971945818360449291315853434271170807894945862469477042760503927432684691276996737727048275640961377022551914770767419150533927256931916615279475348933900267058887156893123760100269888994954039173531805983729099265206887452279046827271517167270964635741783743169060908947525058249828369418179422372500585202656026822028642402164339083435163165212516500901104622340165731099284573867092531412062238250859363802387720324041651833832271417257158082920439075603180135075111408839378769527218571644341055598269174081673074047987517098312212711458283140855199743132960341690213927356003782529686692975998260290033028997056404466830210654413680970635304698004207281956661782917556354715281966184515638950015267889483959491426528600992097326376389624307705547021189570076305798701117361455601562467706549020217079791234554861440849385526795002310844861113120630670231592569412148668040693026803652530657980033445055592913309125533024699920726477957318033070741246175116819772683421742372254268837500326310539826208961641943290141976197159652387763487177406862060084338520748859457374365391952829433652203125493125420811040954323731871741156332779065797601262625010763794550655045884778078259963634392324969449936240061516783057955071377407678585643570732819664860176705140970172900951166019274116652381165890143145745526169780468748006526373733599121843910471018301628451736226546126456619249931697762687039783101406517031408594203380903284924626206588957914662976038866062370222742008017901690339306253249928457870597860000098536654845807592853782883594862088357423298102769274456428085744356092447186320818286184184358215004137248165191504027588800689676827001394085337509830691044430870890801381881665746959278174322278865596634477385138622214404909928282477120528760912732301906877295123898138830920702283838482934809580194269982923021343114749574023501889070896591529778033167649137135429210578884053370896319383111275067128228464212796387900620677812709198884153498800864757743878024163813831237619254388687408515318951414191055022448718141556005722453185208672111390342186770885914986712689229638407603834460034547704910212155187019718006184151049084410595038520373531818797059080112207361312540142026975334368244610395608464382193839865577614940308060164638258151853398005296972691789876559856879610254810908131780138555220933730663530456330588225233485328387484962979228966239532900706990953693570037945289355501370704527046793034871724920913519544809605877786001330043526482365953181829271868903741979686620532551601063149895251372146873066797089981365399591529814152827284196552236779171441356942335306747347215987003833744175384309548640431079762860211767727888324894624986843773140235297117430915573382108393331880391097013281904570942616295231091447625330931819027691539890151385539042241074461145182455743015732653362672650961474170545402312549659275021260553773671563208412832656700235033957663841832226672582820110399521955385427851694798764414936322628934776359280926201337905885365565931748334729028683295669781179517736733841786763877892732093793027992168394887301427107143992691956617810736355930829558618139262640861268771430265449405308473670549770517970174858133335202277596639786037939230614984729592142116655527692161457522675511309296795449941185150927527167045428265448586818571664897151175315741699687050786017690767822575630524896083484790713125840064687394878270963598445056185331617169358644043925475997236833078244617063933378313678068200228902456874051170582888457451324428429322952260936772249474455999453715639856725498219228267622954391608581975873684458731416646226619465642446442395719114149948464386479364399409731329124258650209179412134950187445516961515392182235449689678000022926229988252356175164414996208128530435786720410195328606581711144135208676494880828028357186106683866940917181050549781092437837191080557733212745139246821469044697561419009894771784857438688445250835957642456511160010434424675403010107745773482758203239260834138202182450052948456520869223971836028120156485264905839710985953494196424673009760656307621695524935999337430461507954923218986036080963312613778198944353280484379640142288465882802179382536654568252949516054948088661773332033671300890709024262261203898484715414187676621182391133329475492308708508873196099679466092090339895485083950890451788444709822420982306386583664381316834096398251876331353607833162815510566915559506236436946967200242128777260628237665537128280992991814046569700420799802289521716676774960385401770539976612435896794231554817024358606974173804943389124930501415473172937655030173757483961715257200608118780873877344326115350290414466530850576943116005516305815254508551207196629562048977181777346097505228389240129136844725854539228511914537395541373970447459229554136558344283945848606545795268742294386189423895999467307090904044307232782106928276256534157501717183144900905797485087727850184025114113777654737003351651889460941634971046175147324225756722991620807783636360380468878771111000914744455447348910701780624225039813637594978619888033914503358215954175231693707412139022338689751300897923899837890700261601838909600409340165763255714098292917691904659410323373950192788427481586084778281160758580375684673580618455195400324242793792007008235749350308071778910142989488209342869664009331818973375758503516040005705301427807127571770976035382434972870215090203385317527046368613686929360247174293210933400215077062277510905160436653186052814455792619075642880195013153042424531329024346478069444475860943039982814346122477823953973587338749450042486396870704192442943757537732889413464688780646567015822472066036939758367389278125652924484730298769484286895147669810940596121583158362204553080543774853748112610315341921656243757153671266026688602171705726488475221482713959003757038644047879138327945880416645845678972045478257425028155363115164275499137670967333838948318918135393557967056789728671173153245488935811792818051804472526932053041834157131615489593158263101376221115456439414021426194239029672078243528698178921182233604139081829673273074044021841139468453438802954545106596041872292720478576214580173194610388698675871751107909488156557947805411612553884718076762852005067676959962611664569789207115789538484784312094671366545109864854275444730536571152016732749386748073855928813892787412477214830024606982086177196441879954484853650825045913709495477411425917988129977066898568313988488630063605629944874494760989664732641774858086702294635421642881997502722415690740780793606133751611039200341733494535952076902646957332407464533041949709815016215434244949601209143336111247854146548099034506542068878228570377491411421439526800328930301268508867510523695511323749539704486473792798257829391978921819321550127894483610944881692327812690169555005370239523652121380717484622468017105798642092649951410968824529576286249898386982054685804225368700745401652583077470512003807285586139970898858864105364691197022799634492783801386123859706269081204038074060975113138349615758425452512599730152600649240445898452550535472308700334842476904251067885022252602985588560172977846827933102935683051342677787794937731678161738201144501775721944781671221702650879360222577383654843229398177195221653942568942470821125827433992369990481589770784651973243564056260585501906148363461316149823083699143494875786370236296690238161010393776024258788899341048404675748117577581813531359255528943879749093571971848248755328193226715850549260875446693426069130003914323008961671086886557516861260186837387390827260195150507505653482824469457353495037146467427848812719607152437601604674272951082208190225646125620805276826238488106249773201136453195242608426878449293019103427972488657166637921478321656314359788217119774072549077376693330727302954775555455802972156807802547816776387862752705805693467382134905669414674273177637426301918556593644594078766702695023708207654134766406840364780324599958859419204776719276232394552627327681660743170454387078919729445569881463209123116776654824769875048042747492342331223394582657216221109329261981954938985796769165832604694883612129518308828483690839985923104669065238037421378783568774323238338173751163243348073705464479532945041931672504109133080736161337985076054064675583118744717137945437954322391417507537688584817113352317867480239922780813571365144434734680344095045797524345036295958305980052921569908176779836449421347098168367724631293225704218149774739194583726658382682277223710058862029759845463926435595011107444352607630327763797004825862261016510091864214449549685090620837100178105530771413272846336195544109054000516727333782098897497421668312510417464147688241205411135742562790785715333511225276292184308270911592246962575747273506820538402227062841030741547452760991542152997584503655124751972732828693163560402861085098031935526100716878134032501202580172308939531787206548994512515470179525601236996192068117847139284449755680277370967378443908815162795750827460534605159793330359628571233909803526299404786372498268704140395359973088017932277683293551559491747230854933415660993853397832620520947596633715641915886053564065219751615260347307294556357828971159852111383139227098283792111431927380822587667762286995231404620578491772800587546505008060255292910061357986256610093422167107947103686976675125310665454601245967756039481795695340437824846798516727733519525206740185266751071940929223812612594901114761140153619332693851883768282853165551195644072798792889524378106980759919738641478481850758235853951442920501129768218786820779576972578567919260064921468493397130049038805082394663000944701031183936626089549761262105840376218291703240322607793914826099350305079336003258293711786603791480917858916401932771057766090701606515155737296422235232160538602735279738828649889787842430853611068908864026093541653533226228278100223176199982896790462934603434618946133258638465567113604401542605365603080929100955448672775460088122072344028782341562350446757774841005996140923411545584411252800991413517093401521992304486710552574401625647718556654562973697858123936996922467878855677865028241388032902580977161201058949795967551827970224716342158247684348908348164830747717083270583123765854790214764005911510285609243330259947662482417591393209452278480687934815456097005623567672605400638266766091563245738815224723401828866249924885222554376199465420456159076431301289173653988259654937223786554729102217132114770507049100814732954088082479368632030303460165826730923079094372054184744422986462281830691277443940135167369918646688228312650252522460655763396074431381981560864119293851228734616593674602026936947730222685596803600969158191248550701612951625004961330712638864581961034826020461745695574558236424870217190402354012323254097910115901334529169619570966038376182946870570605746993866606945497684780437679444904109415509539704932723682234016710155903667286393097848290810593061114299322505020565486238021639227446819711153238727322219484190119779049651784544656638116043427457671046761937658692125671882451527790837774387705646683007085433484369522338391697408982074570322496026068028250315266580310214440598062722742791037019526980340170301888552026707966669100677470951136028391511099225957054240627646765566972061162214650981846851292357963898035658731510883867092006653840375276060269653317847220361066988957338428510074214540997951505432047803440085408204920635800535993643241906207581834922517317917740265354392802611846318484953330214159549523266708528272311609548130338162225805647218061058240228711351731427786077203874062867830455416187735679662031090480730409464695087595605989165916248154530477995308505338524202241959056332862927967034256584214138999364741814000885686660899044820054603789754951416552555589582741900014208829051466306900979585911461532949534637393100930100828078447157722488425817445170454391576959326078828914379925220671858627084371371624250631422381300195711734475066119060838201760498792712349420308479372695633092982263022151264369447835599149810196934188608375883029607749856525744270233052003021022506117588139803744773210818382084156472085162297327289019189165639052373662874317402096858453714421507644039716021005428435324915796487749418374587712172728836070932483693253059388420453108205163740199123012673106080298170946701333026450411472352342950490770187702910802579505858814579411310002013850319992181846310920760555778770767402299973177443530808423162731922306831609304065813957551629232384790510135534757334813325689395462626876557085269858571763843766042845578963700654601442508597293437099189788597167794330477173505429871713308718460003232471151348716178253828564345932727345318798166571531883492368547625510343032716475799282450055327616410312178305678873630516466078420488357489304130461311759210514489630934803368678548919169766517018914762668755124150786049555893966434683956192096104255316445564456589174350150339113940782451144091904893079744093925166958346017923119895989852759465775669493878967694166697458048869407967757864835385090475957529602511771714146284994805247710122905978165318818852657900114941790518213448424969447130771610099764105922312973454140985457114079126206990146151369660735851562717580035980358050594418656112662954763588378410210212984896890367025227026171195462293286533037720659187706745177064114445381842019001608774028587364635050000575909803058635063370618748908788231118098241618507925045561890665485319908335794959492154532191118299058734379987333270771093881914849567586938694398674573024968676050616008943346968370680176070978677902565813417111588253387693547050264647043404980358149740197288193057287607080752461820491801917805055708752393967185007084113794801515869188595502850177924535080122844629145045730410958941662290586696782831597113719431378705811800603826928763131035079164285140517521493379290366698467935249782479567078952530603904054844000404833464070320947042453528320879558810145355587071004655025624934262106442750896660468041240662676042747733816781430033453142273569702835780363939177411698173929729839960192647099499708534930458475746803594043391621035686671421768501508358550948113649932693161617323801399241809802989690783001760730069593251717676732142747215257162202536606507789666824484520470919650463181128605961642378317213628400534744892539387610169927106845602152821833167833571073311989040703264682615464742678376905629915866908893520282534533249470766418364319141523506081366641662036929027981138318828173066392394649770896500331540921253684309232962283900430108615649928923561232234333164274407271260154757215392842025969508616207716246785738020370364000139923986187786497752625924609981314197032353652986485085243538095622931649362206915904417874055833569854416922488846857661092884423783630514013288942180705225222237183191643697538663193472958016480250582040255702661530528886745943593841451821321551243852921275807678738472654304210453990282382330974865750206610434817082199931630860741943924502264177645565806662321959356218399022749007562825195164274602842130512829802566422027820391996579962816552036516115151782015611876625720961634324116472704063377539391446676659105679372031164018843987913524459007925114010312268696357981713923019085550294757773823671420955698821017817510914694827396534703823621410083254123012398180272597287927950656857517856182562806870073374106389988485891172139607477381807008058013242615394910157227464956493349402069489361013454381428709280761340773306100527238184790628472101669638012930475665639539293713771927638923005491150795086103399192270880900063430580880156383448195838695770759088298576208973414161006527450679727941051014812356263108272649208502487033585714476690779141520942596015155580161553312343058155538444499952153620877813123975465839114193163633531875383146594714116073319332502303789679922230076891778434885295583906446079786829591957632606524127889237804755397816639978276882695990923370071180166257371807121844428114388123132820743354598310479361502497085116574122989194269014043318298455890287822558850039960118335054121557664858446467579590337403367913244816234651567387505081515913117216147477220977907871568450993878241346703835431113250486292710906309294701240826857483896141206090491502843418991510480050222659150941905814410812678810659278581407800557124577043194753241835743735945427270145924031553611902660163828319377027834052514727187331951286723469834170516189421052271295664235578964780792147557604889704060233905946100545727997622760140776947382000740575782080153437434333509109129750419062080028698618444769916565983566835880524436474506464541797078948171986728208041378759284145081746311189410310119601972133078405388104425741931398118635762153264171718649634835989088130937177549598696838173921379581937121112456829950001707113974498238560924306212196608273791652524145030741511160312895572175593888653765909954650037225487437795302723246228272564903510567642374058052805890037130073492085142837251187700985863921346322044723141250893967747133866959652280980844783521286050315290860318391063902518962523513605407099875596792435064197172838495643739036313970919895833863219713825087418628751519948275477319138880091057099618468372070689042607947079152094997710975156837089865546050137296603534502107664110013678918373342906352508496444120885313686149815039008446356464754778046799636935974139368851262204066092565046634279031187985911350969098722854809814172185695955938568243961997896296695505436723706894169330948414508088215980253247063594648568209562820090962430582441083224252375400901801123711118702569178923471197698224696420585628908676858800700611802776755548409898439329106086379116806483792315049838176719702767598608473922307767324696496105874610566284254128299169594755470095761950523211053428926994753722962822181207953377621736154777266056746618751228167523718234830750402843651753061942492070670885744345356330187772537466705160415591544946636989564087899787628136738995416104257498357824612097482173641047698276332225240566843318460478123228670944746001450130849371517281184299145689021901594244245486435300508807871847739523664555511777904536656082783320875484839329827127262083137414367698949367024675591065916427499464747322516631645232928056360739552177037408805711709715262763799534579821081606567871661136429308617420396204434086083949241514484040639350338660414615062862071444713283029778882467945342099034632335579210465627886273702784973594858684374255351201193214684629991375865343034131104721299805678468029165965427299925477498207899189852312163844704660203290777783206282639574756563023215368928861599182429297658243218356790628843355236448067808884330150182813965504506477195101295656634241722236039545064172137324121608215220093195580697354402719762807716638116657353561859170808022511723367221750664490479071354730952933498583093005033772835373748554593475031368230787670268151604598887773995662697795182681074456375928007798869639142299906744613442317251321092446706567359564299030770547070947167250157625243355115598062594502510808859717314866096061895892637281730679347373952374190368283784571243561077768975079523278252671283305569867835205687443636748450364308426968539622621095373277345442275167050190443630056860362711289260086001026529869173918815605805398007108527992214456117073699113838683429183407224803716761733267919653043828637373354219021243477359873091519823223637371066467512871908955411875000300407855137789478864550476609028757974438461940009721163104882779369870303215131774808591075978716916731473193959120132699166554698477103576273674495487260458565444975319867742304585921659884510665022712972587197673336862426815974397845297908971165260572117919019026046647675652710469377884153551593463690599700310914042663004848401811547973639872135629477523259164592071216513015930145936828969975127446501769813581170587316339576590168143509495125084394909388378464468180326211072305699883148029930093071532337309882653701815896264951354775961392268658589606459878340601740963207343771659645677766688828758121297125214507379446591638909379616705535800953701568450736071208505077989638086043959241673325004338243769500102417528608715960740614867173002451774504069562232666590731743557947941155387721804255728455199849693371215440739821984235165558629158083144085065469775625881310289654189058482556885521444476446975012409504954693405803055603220053162689482187901676673665272552787860438943458881645285386705369086840271951093921855270905592242251603603997778967192631069554724440595948457602153717353305548918969812856683717238556130419862381827810009338692630039879801579977193710971012152990192716417851964954965864799875742606040210063441582882576388867923883115162902683975122477875203300135092122886268319604926026609639306170923557565635197209350613554975278001630090398773618545069351088484700769354088134491253599935799060834117839805454156688588451423793706036712900009333257044268088189590187895173464108028588554753884060805560470312784585667935684238711067163932357754497102214070280679308567378635457064449078938017322920537924382530742932202224638368871622876615125214812055315532317102445097053459127956446789397363586831820115490390624483124487283776274100607862369710299200574399807191712684766994144111927667657516248045923268630922386316175923785674526676156075433706553434631992818753839064169749360806817061901138149327145143448089716806163628725447018198590382070123033236862074022462767544519730003866226432769985748902746073698471229289898055228848106194198877189001697148441184188993869484218935079265692121911906191623610942473021981979387139042258686396549242957596519554570752944483427448327905756509504760347358880586198328716180176338379829006121084782478602632991493890876378685363421158774302350445878462525890925433274382864882381939114981337500901632399367125891627148068818949733775591635462105566803359163913170005975723814930682545768621509518885908406302501800209726416175971696742452227871279473136036103233960785137790885583301768554853647345759426435886864604124404097621644848864492798871744689082731497627502919325077706406557682566680197095826916943402587389319099607282546951050528232142605331006665620235720455187835205034608333307139591759478229414195684453704804576767331783713008809690354442515047248048798734379183313008036670566093745307310203367325420794635996763362376875335545291321973630155898639801912024409418470493423525639750934397734434651305847526932907615307801675570797815154702746802897623696947865336758365888105026520870966466604629542907676860659588618020418823395921479951204811634368966342102438767071654867816308612121208142999436198309123180954478848830127039989540419560667075935436225370927332316962312739064645492952545020083592811330196284173052136309721973047004010935330160512792592246674280762185833629384796532874456842308660683500126576442775457812328225475795113709065576036909768570516589075579798699984065493353696478575549276156268216056965195583703687257191033530115253860004597608846785205007496473462264937667207114694036153516471810614445157471177098747504241770706919363285070877464875251699160897399425493915256528148316721787383353929951889497457433870310259781055842474985394526252556484343353238916872817271326114293852798848431106717225535716270490305919398631487507215862811902178552852700422840810087285940603566864560341237996200382373637288955616751221119313870591273317031900076483310555351135395718054561780300613246166067384575889997051113147272705498208784574150046653772046708791059252038533259157437270619173576131913358926038332619248886166512880336608260729809340014925666966803380733027998630729331690727855221791164833770089883365025942746094115748035780084231195496736593526549630599476935771125040608744167110936971572432228989629534126360329446324233718186581707732565232115994274378667737263054055625016993810172801745222850612972583722838301354844746955781049854069162443579403456829350363970850547678532706196481455895249037796004393173156572420174605314916523630742893430637511903913501811837373434676902611472029353617262880449005408020145598932668714212675140890800478303188682421784666643414573035524989066583855412273662814333219455668026443394797123264024175732471742792312243682687164403991467767092828473909724673696601938510244160893059051407164389340114554946062031845192672642553885788259586449201834673186719581990558948284414556165500998628562732905120746598889391345303973465949198206976876958614699670563506879615027312230599863603349890054240805637357257039280700925408757147482885557180534452665083623671730825747156613043669303128772688184023520213281982301013591868906840962707252650782433444860757711180111582080079998818202725204121970554762829198857487366424868671810578313380918161620546959523626132956516256454761789451880839306655869620865939361739385814741817063564133530341595431743469511002219939586350554205171005056170429776987702770599223629346709564386103619732443314579173573960390399019051608888692678814050605586303927503476434996130661920321412648670675394862171735913639443926146123042754703406228180409720952488701155011386724278490441720742109713718632635750832949129675007569594807529497944398707028134397770788613648863266522973998232247046572890936644026516384839056501753360176547853623375963102714006448143835917818027909573893887935553988366468787777235205194206516827274228521095862051569848413888550323872664986809351270479160634558249775749088873477846192440200619532288989011977986866755637122635244929376089431651849146183550293280015487058676380318824719519344725041002266368516939872206832023424094647296231897068573662736890134070815087628090957916222502383934801560381698835803514901720104311392828097953286660164613528007552846737156970285633089924476610894989943709767851934647668440790597862517447519997056906896167026844747558612089178668960119176187423170618846649223647596410505349619415490123228196717589240864153174255065697235651588140538317660148043509614097342668180159662842628932234260430289212855157483844745836951618759798223566767537860529180427557208128460690044454161416137730815863003384143596619970192632315830490247324050435991569195532109922035860041207744904166679634296056530824203700013852934947586391189801906992724334664543083253625018441927045485316224904506472271139880495593113767722092700133672460701727636686174162453129818117360687473595191685621545662606364103606852753399116899599453026299515212807592840785239829538141904842984787821225996167869960705967801683306809772747230379984333126256086820459095091123863023979521262638728495551362693507538187581404924783818961425530703581974558682763333025374333443413826685497676652319175306074074109937426413189793292536795028961129391182661193124937633704897079116225774109731171955794902657915875487880671177623216275087313684549550575706338278773765267605060517055183077436938424125735152858558010379631047523888577248005450642356697758381636276561527906788848408246675271652966430421823901228636187146955254705878165642421555958950479956170201152352345320097237430246816387439688436114868971355146125432973939072239311486225688546732197512728829848289014339670058138967626167705467475463104307926830237745046881785588651125115882357771497504529575673623082096888914402772753238602225788358217089710747550008798997807991516132012744395198715901481400378143027323300327601051750209124207777430991857952665758117756395683311760682453072082443874758370413521318247679311083275712451049316303448920105717961586212521168664104966291317404588924722988753675917219732902743703592228648515225586874501842559645524768987132187210970756579777142975686888289774007095574071353977355417200865123183386663497749934431198951785663634036052484995979620862459105833667358805396394678419007900072308163595964924703571132616991067653220725716115191518221545646150337336579395581978640153340243134909233878212188851020400057981385114128194358472976340519989646527813855916476027607656494958085917645942122869001241605577039298322111117554558491024362211869476251617773191672887008540550097595489980700022192661157226323483096782385172850727075222228645016155096373399926773960684815803146698767061915607068340144446513165573959682034782400089590751880848856236090886263456163311797989077536546459258060230708527678831822423940069843249505790488793020108378393132370889825879294293119067743969985689664527167689109316653011235186960757454078087218733616233122290286787342867119429621501909380835869484329437003075572208135836687640814846712904799305534585892094075880680826203801253812573905349630861914780175883835648865150653783183106519551687597310876012952159206101076555902078254469195861642516423310867080190132829478556091811261489151497682272411039250875534108197769829316997031280015096826512919320102658856315825569597344609420550251341690675937353857039185533764377431680592265415770257777111056328697407628823672916053741919575606105187697247565316357373947662412655171383497370087684455532142929748476542009638961131393862752562164654202396281088716467436700671272887754256114535129453461423400084194968920837765177603063749029064886567612734167499552687838871267889930524969528263575872835168996032461759640708776599187912518064994211192116086519753484070166728057722723467772225556538596045244405959222154293880342572466933734297682183739476865176430676268272936421091058367006379783785102840625473581601321223592930052916471566444275400468108322167036114456081259512230892814748646922559123579771428873856220420981832067727307232704016868519018776426769662869901517558813986127561108686305660379153652591327111549810757077988068262276292807183592192429489119938108413345728226643125168443514341901637095648243442167671246162291283232960900162775038217873638987709512043782114241320103707030910083550764345173630876204213303426477889046751297813544239389604731187974793846490493591858712239587333589994839322138598467389906658765631504436209088974019448216978817764889465975914565417097057871868647649493182389106841580495715895228172006200303031746596894046722179245312131252425337079426707620341539092183352385371533884605585242227748344103204648452784433068187454134536693516964595348775394222401926767134135914464043289594713529710892669364300867716665157017132043945656703206752859793884831532178806622089485486162486707843253419024078306693017883762110456792713646680475041875924938217609551615277506067584154066300899986004491948498719055617953051071172651168048593278781666098360540611220153811618676058853272082616743704000022769165895054376297895423279282615686663685800004483210397487875744537966449122390684207409414021094026655432424115574071556106159659085350960223475818647159026815052191736860901183089761673749461317515786295520537036009852354564944775812817772487452322695133951189392222970435442535967695052924470816545319845377146667149969822038353115260695225838706274328301812568274659545258368244644707729493677338605787027737416159913195092567153822970263099741318223011770001299167766974099370509077542610059630739471725439441320087530437585324743291283494605146975109182450635428351517043308190813345015042245867734404445401517669601426124723109843573224066184168508401394287369393545597947424975823717363658093804220963662802032752613255226634182831291040044199204533773367170240672619537405324068699583885740533397084154989750848932170967165652911388436700388149790432208358045512603322876114204734743564191722051052473517887126774693788022030117698891892327730250560637238844654643514428209418373003282341653072633955967512724956245599130274405184499140370811094660282602719969291627569360834094642635805309290340192391774520000163819732995420138711429056943029319117834627399834936292175490276715392961243586728828678852080953536853819029893055057585178547190027330274886629685746552896555526318857579303376064756296414937784696389817798150043589680973488341417668863957447844651707138229847852837527212424917448654849952566742344300974299423346080940289694358978193346218062844574847948803507832778320444460627353264572686162529673258272878149513838151197743079821991056078351557039445300079657328217253727917671353992150080154498010274842919171650464021457673503180388671095928862142704133449781685013467037899247420544862850277552636656102891397352062224517855253646492856538898344132690944878918992051043951808335644683920542336686311263521515710380205976939729531999739540598206411204236508201089211722981097805747913922414052094015734516316680218085604585090011108756909837974341906618027798037701870795226788526329434589426077705627250852030754511679846326095598937006430849666718073780859141219893501455463555104129416217696075746515297871217465419211453511082876521635879663436173313201956850913957998200081141996143418998715915717802336680449991049992570511359854270107827834284488966235808328263258992811736723110853146552248584822495303236599350097442989239879506896335111415651811276432502245947159590988426051638885524108021341180071218102963493188461438545022294256277206122197044952425854714299721466721197822530363757524464949327340552965373407742666284024486317303133522019208986131048748668561163830188447123080612366991414988024588557293676348176603687717441338660744978529570457564057315654808298342784424754205370604166720001295360159370621902980597516075277036405397330620147091601676197881511112717314370963737582530265529537796475585408434916654483047029565527063518851992859481700606129924191379008631000362775528624042240291039559838297901417887887427740910044465557789013202846614202463647063833058852220244926926626208893820867732046915478187685681260654072415399231740717700296043147473484741598660007220902681179156516119296252471731898284641007904365487873783553020784716430163620203572940511686839196011357671397508628026254344375700665467789227482661012667490153908748757563132756011546380027357084526922975153782585612851856394379724734182410675330300268845541650843496273455870575025638022289351933293829565556764811841750264225455601557223929236350952221840609387393588734846786418041231825636730988692009391906966280764958272272954163646126257637296436189123490360664284919871661741300081579654423338687903134790317904644831658188145824016304218469294156902091679686604478079309978451473112317603610938569875006647227743713445052694496607516671951126408033862296374143406804240859857114663574268006437921598268430494556422870576803855769861301463640707525465413349328041684356760802573264059654239987858459341797478652183921278570679177254968817007000800228442783054938747447577574770768022496610710921450536488627515686562853846855394750120528506828906709701461816270080007965117263417935919437729368521730510971897587324471550921599427393595772756060529922251239628998425941956399661967147501819929380065040215567193385752644269964156091043784525295733502071622557297113249387599873074037030787853533423801028929003519559188473243428518399684021251291111098236709663311777878886080700901277231969437467473241571778875154749284814478134224818040785100795272071984888708069396827177543378075346501861005236917834414477977091774108287086221219828414362615453114890238665880331338187684240189705148862524183544980638136628991298638959327328375914454584525633933827427936856468552822650777336597876799120569837985193936774683601402295982643027333258648986685215973269369844438229070290187222808203863896790571927455419801091718656278477844311909653040734441062906003155220917872957751380579415300157679616426956664818954604694065678137048201764427801382518478828452976492993930208777371845462356508114042929501235288027337443677196186485824010590658148348718854447705821827738721827571595236170800637949618911652902304372927659262404344705241613089445703906411626793079621402248406888561790294481673005401557407627473063462709344090813836030454384191731941320330484459728889899212925097980764116290980243754749389719749020974013616426579812430650936649817466605513843156688922770374617557828553389700446651972097349614935571771314530671798013626056147271700807435441588351611252364692566161100437653453930617767836553456136727553064813865874849746498962265279204514799024147002105786615661912618496192630113523148916426814435563415475181937546119873679308799227636650492842200921061836009723207229881374148127294595146844726059412063632578746369563616129902920520565467396744905861826696779234024751096396454335047076423376283089611624877471983041215999560411654445567743087219241002869742904946143066583232461270074193293629261538744687893414400173928685205048146091400305550686801302689748490159273451891110899533275309100161266012797157524028935614606061825430107786220760017952484227185645060771779947129916371682239511216199071908501482414375532615514292485604418426150538850401282951119636507855545341748453435258591423521530039284697577589177600212698423310685952159996445958386514417147131866552934799331465449388521901860573712117506886310558756491967473993099126084656004753877403335154709734828720243532412519362455334082812380351634150849164251136884752317071931044646237939300915636290754502681207602199765087013736974408382523668110812456062290762895610901810277589270612113718798950677394872014874526133579905980598742749200464580414705606113924907801305019605473563245247024659567811068001776591894938881779576840042262627440168522472270997306740770001354058247830372945948668460018031051797122992806328000092318344663835027539049935665584671400647967502125249549537262665001116575693026771344294749415000325786458202622047577159090262607227238700658162895463511656702512309499201425246818073495695736758533896481862330460717285088555205821282020478367503520760790596475254373864916982584570532308078144797645234398615525340743923270668690916393713547326837828111071802657938258549238469758403492151091727634705255727017646763464956779307656877438849363021402070543009075118104780974239603758479636729558702130443698399376874103099433079521583416818435629780317732925472328506600812123401910603555122449140254291151509702036893191881179677161472670766994833995910703706385632830529205385841512319965501560625103738481537222552068335672034404295027637015730695468370465025694657540785073279923018795504864076782840295004015069445531835847496281173844662975131896482583671471768985756712840780219990810019873022361938200697219260223324763478892049745831351913179159423648423505843772766072635886330500916720196881847156443836561823695453974423179751196802963802905830146781078780597560395606065186785125959192320570450204541469371697797425834534746593500061695100477140144093312307632442708986947333986261418814678281316870972289453383587415042921557423175116858928831557243696462959474471798251424597015378623940775728730577998028926200329736094864772142646833638748371976744028350878136433802277524423761779162599710041125320682298906258108879595771143112187801503107138518921204453094368692156599404110365571820651555111232338614519395312884309989766725820729827361922144022261042782526866579328168415250749731905299278488573530819713262391238647379365986571216530208753081185318246270351036952883448713754966471575949233135788921031686765543863688105537346024112238909548030201609652596637970956984118116115377814251224320333891947328929545600994213448973651800885636090292203405383014355816855575570963773356517807970898751145772483157832568396936225799729551870858954581597635952725123007138036830519131737864200657881145350523415277810151635971298784850010062241729965488825034126917844602627222806778290068748522070951041992296248294809853456033342356991931466447896140545734477278004516173459204032541468675060758289715242700165449439755399810712237162834052653358283829066596101998231598237893318512119420099530763009971399151357475190875001197549917386731666439925616903966444546529901025306755586383277172413044356639802636516120841011905668694110725487138088229987870240972798304449537124509498909749391839121967927538537880536637837109791940706737030678213318690175909511838455447030042866159940608791872114848377247797888234443384531402138568803489509414031626349586389425011708951159117374308203610798430841228902643137356494212205511103817949475593069740409966716371390702065467180237904874065808879738362219357570187625705940483092008093168395375429278916476040119869195253938038235864431798610269477090030453277426223226974142279307482477514664057657208114328375166596971040337935065847786849850582636656691557588273269356324898259769386926989205686816939270106865355698188994222952301889681202828026092784473815043122117816170546631265337370524328881597611328974433003980443683423531927658106121405990088210712406432847040934393129287514591604845230158804585068822886439194565641419319973119178373255632549643170857760318195576509274472501963632288046969428298994344080416238232770852029205094863578883294865518656294254521478744462634952305652598382144539895235592616708925975367964084913638554399410174571598926897798175704064863545794984133769842763977572119648837083483767376485838592154153687553241331793229306600132460181290417411692943783375184472264817162649842551335126230799106755731607012502596359567156182606922775030330343847006623170009586161647025985944361002755596340325265756603904276913252269620409194060010646079473021336287453589759058140571859821548064458762417219463411891416414155767433792342456593006997573791671235808750187888632708578969000300708359245905331062832071942818048228903212445992100861190713767287425396037293682505764590726660506874410596831740595675981955981142573430590651974648111143872042806761184596341793641104811018232663054222990453961282763547944834453250936577228167087684644480211550483179683834878075644655933920108150863802380630017562713116783534027644227926496275496079942650655953932435846926710684172340952400575082892687676810602722530444199780568310159046407708237880574396837316939272861979480297563743820258081854335837554111970346931724073230649341108788326857643004405322886082103238206230358987689747427728319101776223084426744534527488796013315470486888352030083788224584866514905769904323868058418562557184886023078961670236798401997090650177947717803353587178969564441807915024199031929917851743254310073097525993722406923163937645449831353262752180358691184172767466179194128255104415288906580199515686027848061979749589322055380525654359933349412524334522696835605316636353545079155865653422183039590696917170875912016205497069005455907917292861346548840024004525499324477439348783789763111420514577582565401325137759902991438789750994487273592076959661028301268060103543371119376848111187264667647552372507319323857821480620294864867205884089991101648854298920702550534916384824149650702794704612981005980741036116185173092015764529158871672702042942384093886763087393505412994065779959256750553203519310893645710741621800101098708169054011111311719537513909790293544344270897980591215379914132421019983121657909095003781458220531083869608878516419070536655040956111011832955587152082454826649135058668364751803286868934106453043175732734809756128098577223464531852743158276999693346480416489440008938359056590424175894881060075691386637422830755551595163678361589064689253256735563586591814368206320494359594246228338675521787724735137446736638637357358394174375662456236053942652392032286487269879623892981700163085556191268988944193571208097500390225069651101178321491402815065618439828291700548704472709427733827722721272437406808292021118236106905340235632568391934602289679984733761956991577962679459215691573098000606193157118052802410711052004246272555267241630374677443084938766033547962524109891062607131172211768181766240548800161564053940436359581469371317091335952881816574886188779844111235698724611486267907585630220812728803858251101028435466144034322492209702114247574329141349848934613915219357795145855273640771120228370895622072695292625907873323365583801806259447560234817165191167992312096078376796043143840454045099421297554428957871697422311260445788844641126335739384562600775668310231811218910939617156253476658227685744403062737437067707690924738109357886923110816459930101483001494427807968038921912505158137492252736695227727861491577999137847575610179540887253370897042141017632371892690295889888074052473591621464104598523256139010183675927941100135680567176099104126582426522523492515162731813996132226273766707632031769494143288635088126060162160849669311916044447099769398222536337626038219870263025048076076640909365231424636572124326841287781987741348878459438398602020406465182480928629452267606525229656116154214595431734506871325877434427546109534740535121798047044705982729577193971104289032709301417464568269144547913789421337815626231929173910457962646405603936097295754666378685426954515081871611792329239298649098273308889312577088637747108044466159107999337288210961626547173494025684040124966782829123975430505534793019876458027909538915588128615029725241614531599009422453986280624790144313933219350743386205795072289342006018194763281505567833989687023971888469795632121208758512061471582825784663992200398199193311126187413933299099785102449679226801099469900708374580526234829944301804984966215751651747317176439613858229886373060912967768951386475746206274643775501082448423317283106416055068336049927830388124278879129388768193862008078824278370787617214591091645241825312183086748307165492042295886245797970099085654754481974913810932786439797931144043529942751821284164782091804567572895527987099958503058742409604435699102242392124151805675216745774615385746409478585483697771814675851860544219520308022199127360329946699961584562685122766805061684405066670058701235699355114496672542240282483756008116947018693430508978406747475956046853435194427307970262446936782248299186486489671871801183464464441709826076377892862144068724397525063626513371707466945688187623464933685685606480947804024249258950947464397639320600210615913457383175849524040561651159652482095758978099154527296130913429402388029510964099669644387635414863838024637623769267430730715633927481186009588910505862133567493672626125720754667284476085151544936680767125494741967282759129720991046404747953998817134474035892400613450509843875130796567771771388770573157046481074295900005411904897606544212358405862576211721507092021772883982970616625142855566048052343405944661549554240145758094627488089430177320942739722155663267903668416145527762096756378053993774040356554871926031084691367521861465446732402013893983564276330673090135737816235243572974000523808860111731831013422871974620438280199459724843630569377213714778264813640971116090217665977428825139278417741733648883501928426773369202738587695950994460789406468488233346435501857692980405824418300029038117943889081591586898957664914569106085136834433754729332822458260519237202993544604944902788153898124281019899255630428511813179304890369912430339338330257382447050986656754414535642097492058301526343431993402772481379859338439433051655437058877783714362051781472582902242722142102405658481598999168136089218155256954436661962971843405024120102243881703631566512689987636599854344811933429927953115663318944403715946079936759648451178806492184908437497848722576924740687875727790132930399790021483991294461728399993472985644862592651496955563707799140409304280740346054909374722374052624376933716249662953019523139353000706714976634807979628318246392923659913217440988624574956693087010626981256576128872109026166808793567419918653398736910922035330267727408734594557203352961040143616024648997499292016785991602978081351632181794249511625835441259063710446046905009672016719081577281778926011509417685295363788312730490307206124253575682834987565238598208456010915577203274432611205608822624188423697449120259467383199679828399496629992910949679771320248752960965918543334887636211224232638043228308529675972723539779345428385778160638875655420141286639408819471628293960437514608955812493799717090033638820482080578593870763070649512670744607434468712348618110956491687402811587359451888667328132241168088026147877144205192206169786844452030671891032176041448717266901084965190796064595598093515138298711287779422496278433741529457861724005509990263883628993467503255647185592169413304116146693545079017835360412045833516418423841733881743502519090997795885174937996073023974289497739564837363443834213390600205427052633422054110697970706883340289786603502686299831212948030661598253692624621856386144491422891554513677065870985469751584892346332612162091804893493389883893925018520267037519984636326268959612426301285918231387533078294673554009265006416916645470868519779383613537766885361950563406119247486492327261427011318298692536831440316412005038628670816221490701579773544244890235221511028043886953954572739972566908379854631632060431589528586570403870867793581626122697041484304728805928634770424848189191517816742876190544755443582904029083995053475417222908565865465525137155762992261536775101135517429298039607689486898843363998906237920990159269610818464049535529626523011845796864539191926577199703067156714383689252419751566448595829123770658019234247794381097344321884748003972150374253014655117793567006903418579327117934921101872875164510869077937161524140748225346565822132415967892367684622251939618240000870611132436641439620767865059320387898466939401136601446421384327463358575798307519460577629603653901957248238185536760035934580928361917476753774814524715249150797271335772491445204385418381170632107496059048234607701696289518175470154662149965216988538624543506159554935727746374083461933998173161123716720069781229675178140474576231828666780885388891240743547480315521396888116282605343853742993212974960794870508445443618504397732620261086960800949747411029558566010354463742089143515415174233080673377404870312636118325889346078915496738141446273608759242220229480683086622810819408535374579750435414475512882316022957328635395302787188820648461835612628433556068687561471411957223199736329842692009397498534459745079894152463650307703948722768814128641309680434946574089780687852009313823848564798413339790524404828097454696443565261613844248616191714844503438892958045562768699749378700065708486368498239858240485849797283349984526967017556846887916707986278176624356952280968615503063931723984729295057326149189950513084574368304077825443778440843918322286975274474592596199348598814787655810596970512495470995989794062279445918787670527600585749613277754480746203515115716073972966308188593337660960537117014207949989735097681839683379773134796780279446881373147462759557648502442815669938397822330043996505976167549002357188810980908155742916848167681406584650477407526622536337609385110486826663918754855721460288106025420004872468102015522715598669120789320776250910511164877831222302552091695065030942948204364994846628045910762822583750606055544233719256271867369162337526025468145507168325930656471968473874287577417013245291213601844121636060654849365099310021386720337504098757559054074434748848268643482987608616300350358970572655692424075522476413266761645555788253913631226004668265364866758291451388929264317812303570370207584426348850632319708040866032015552299717083594723511840042466035038090656837804692661925819655224431556830945014540664239472243508280707752064669223213502438058101274070770822159235913872925149643508225289013803474338451478319439401619707235694508739084683464998884964751171648350271492882898743071962330048500586339332938788820700999546602251996181560774197409321062163683063558387318897336627958639815120438573349524504419987149976692646090693625821365692391628330259429103359258886165911377643127279337315056091025635941696714032296016395240756400565013281303153031302880787143100877504231449380796647181308599266562004207400460389583021833929301413847616102646626438150371658387046144187641003017323240119133349404188305747485795736383583354033513658064428300571999135456335227578672541862495673392239429664649736483475433802852733085255450875719129664206707022122083706430587928385504498896313091899055184150951982715710502738841506803191260830433642008641827543493642578985663799981193665332037279954420999861259262360918173463440406046437227405217240158278655345406765446726153185243223505436767140126880674192494501980632726110233493280141078436667770806077123615220591192651127112615160756794385001608264943563666798951978357921451625783137210029160801425212048957390104856405646148689389367186917758353305476320522478413164484245991733177443173096992899786936078950645913552264208118519495289408055449283832518067216247019158926851443126628488167568793583574974476829583670307173856554111576989118399955700872286949464265394753981639663994703408759589049608701246931639489679397377709796989700157182216072982108699011333414152880133923459825395151079144189567944107586730433330179915730324239831119272910261516499547008465825297274499258475768217081257297026956708904050010013156345942937515432970937693022093953294300670006889645966987832180496767603212948004623782798002754151219499592226438087510277313815019476637591130173449032987920513476610042892531049725113507943972901865139253673810783546692543622194777144783829709426962974015574745565189240450118839238676647114217884800801421134029582635479832282123101932068726197591171213659804791940778786115230195084795761440653277465516155562233014176668332193736547733179838757368783010934304671338793169100012099616808444652107258925474362532179012319583643311982720926606308599123058896712161668309540824865856798015898100768714147337825192413598925484974784232242554761184423233767002670551409513417192593378499112157934989056391832684405867431990294709586609230053617077776490888440851697462930503006749858080187714669517290957269096464256675295104041706235178218399048895922243625862891991020233127700808944231222069391995024498782038831954250494320539731253349315941135692539229882917185519742060454713218902389583432021129481392023597690056180355931209296443739155688433739153305625161365615414205735413970971851391073463508769863889525202417319370897155381853778977234074825233190047303715195229646330342579709002581188026600399840880976142274350508763281656837710521600906482112201796119671802503762157548118346531190249877137869310321315904108574293630285969379413375326492711826709769087816377360882890262589294001150132653194335427521133321343590048101742471051106545075419365794511360787474705766581846133708046027912198870721359970530691034282429268465352445163512405015884254162414921145594699546133893241647120410990757032172267989240509537959994271317659304378335076847032336383393328756024081933046380118339898285731212597126347437195303939780524289608916548839899703280688529167742849276647339622950093874235913620359245641955321472535058065158345939583394917896126691985456080084820794454081825885501134020759772897585125048323581990915653565228558102265574531228343389746660845258788059335377774019263389295981506518064987022170324846941484051036855589297674356089619009247199011230180703477290345023386544885799049194616932420930742871836578550535841299732796632066580433248890209149376859202628719249621449934984394557207405074885513384784167028378950283975027003744396380958412408254411067192192865229914341707906302249219174345999560430263190266706034702677966060028015370719347738088551593565860940721418259807315235724404760568198817550251217467435153903276590270640093498211492473881130288444494787832872178610494872932416906228355813815219000211780528795179771976272869414426320438157495269112918355914923886347783795222641593118077283436777196887619183422765433637578896091243941500392212864591095537119911558171732280653876926092419750125538740796141886424719757261887780934084874271768413080544167788148715677409682065300463791185504366064734463992841142010379285001900065500914500028920662920004697944867089691050558808391626154877193397393379374517434192323173752488738030440129508110642766448034789768966046624896299109874210763927506379787730673350631328984538515088939333877646347894158992383731950079032142239135585562075287443326766510157741765046729408714294240736624521059213426629401672069627022388939038999418002335784459398006906332652793639572933274041751135624513453560554205176040644188702683577615087619296004035791449900296371946969093564355657261128459217376790798987722989746187445419700676256028203692785179564514778906229536916917388770320640975028053466617149138926604889848137985103375147368366636249874506995615781684547559880743799415288075382700663089487995631131383320181156357329718151424287411486253331687788678782765600011627145142101933665365295138311209703565316525147060701116212543299452790343353069735580248316243167370645341875494778266400340979236206573992004679539018933902769767933615673462125684020460738567071094187595206225216191295861534275719112107358453959312679433261345294080968146879855965605159825155807403094972225611770806837298165755631588386244009388769733765534886455971116303073126661962342508332589279259436829163544970602648314012251107492641722813727221042166300245247932322066805869556366878143525220976727214782856178088838027746576140796645099644861721371325835985222573442483357373818323205977835351879175543308002905172751205777309733234409862018960889337384973873515189790512556853217020370841848288665389867646320403354761401747031064241301275758102872823609172159539234723549056214283849748474226220183650611474928144015867944008832828591639978140109157086103059257304283305730452770565547832545713425582788054489315223313327413380605730971739753222469445749771393715660152878223033453826212038207580539312640127846346341709861970326353284330505564917348441200317445452844746587169543175229359970499471303221606765267859326392155571707423335849348043108529171984965895030998728847025699414431123098939587580946348689853765003652576514533667655107145033814122066810421998571853712702796976005819475648576224915839989087969616934099741844840705405804990538298488743237100719764406994971900068528874034531224996010139261438900030677168546703507003679611160407000379478762932768158892098680819240546341821362123714054149905050120644149899660278459801096742368280916018403384653157685962337668410070018407153761262505995976360971733640105260814298433975174247779994019136684655308534495030283974619747748882120013505243209706702203957057596455049417943809799567178047677949399102464169426604276624218664302562738016221477128956958422873276014566527361258452571840127615929497872137465418555562866764286319855874435520680837680268124412416260373263146063619466144866116647419221325339709462612881861981907504054677211043772382354190608315370166042906161498974228631108950082869561638616769345701832335529786203180698231244644283883327434249178072671090972226165950432297951590014389787295893161081320535081034377268817414589542178452135413228044897016451389981154623258191391857813474257486810017369642620687529831379904134781540042330540198490673212716964914097072787746386557651802763262355615794394249469569105560334689039694345064169901939372056772731488430046971019466333282689555059663538213138066064812557026630869101338538537814055018082557594928017286803678455540863893310323604963426256827478262597432692330764287238610436294840100091102892572820188437354347229552257468852697823881024246620742455034868948781928889703694571186568942705887082200312489555891149772723751238314547610770048750493429786020941955879362172253907319391588492509290489102443650117474820072561906284841932732170097578693473086190479493912485763055647433439573449617045837740824916247822937611765479776786334095200992855101094942961041528293380419925619117387101134839593126304562597035538957298296912699778360214678844515977796328810557422983603062865142598153488097517487226827315997533119914451005903650567279806916067328374325058155064248980947370646050002731180185042229779504055840264547733678841811645719089017986459701038033736178930418438994599321215662421237285222426400120176362110045055952147979503269359278749573351939834544542542115033829777347265997860878208870989084617838292383275490105653897936032080350509983278072630920062021090258242668371698957905284028003229324574428651038047271265198954533312551463388643372400746621033364976883676202342905975630231879638213094305215871631931692165550620850613768553033236140196929404772565677608014574217483135384379962666538899198348504531912150473600602275848101278725843674510222748489675465436079694479478627925881170970659132709828219881087625208962421250970185700109565523896993468888157577137267492364698814603873459234909722969682314678110776279316571087939511369449587202765528644545706137084251562515801157155933840499454122997376867782883818236733915675948984517517671904979209343915124517936831586815434155006064113265799151284143903435615707744559711751228469870875286296124318328960468485503866254460753977807735433182567946680106093142028990742666092149423505518949731143274554482346221204512367354402691669308748382657054613902951720443683621522144868404228935769320949499743521703000678232937651443340273828889121653189295331245615832211489596396308809168894463529549404046078308266478271520083118838695746353082158629844143413761045045925509220914774038053589772749809067778184969729061000822504719040167674277726963687900589540320668064092758697801037376049761332759300220659159930070082193820709895917889777314987648166211582180081524954550443201773265981325698358122688989312488317708747935819200645867815123906786810684908543490276805305734408379026190630987707335284686230638097931384652276336833514344750778051852666980141542110367707067018479948089433487671638320317330100476071903201829562338157651553015308512552418773890557389248508260777702957922947430106858714323103172239571588411609039598744617142528709482925526933397331789704373735961774808046082511237534735698735810031669555753749651470621139914365032284869884440095792148592291552563478253697946937116635398651417407243119302133454145600945554066077140740150886190661857634491789200776877971441614767319398352438700065062034939609297234096244435846235475854108361523565102288473908364234525748817112486486963636242036398721687094747385694469866047096338871241015654162355291548951326130884457596252966450340476584364161183461374156114211765889683865222840602363143666893268634978017901150918812208675602170326924027831780081784906421900317574892794364013185594725860001470544188917666889860077997925418529016455476720300361067012071084162762452119052342741030104233393575213652696566842943938276841988344123227474893987234992453019527105240924088493946193797904032357523842025776546954090121623184410422395516960940139209851739898219953446942591829991386765870575005092534495719992192690480381840670401003044273285637667436548991710957248924369330620809580061981998731893930697554464984277453956064805934105140468675045797494801059004740486395429342046538809894834848027595884742304282568033176885642714029863645035979044915743249860854336850621641803586115059147186986003238808505553843287824160781186053928504117977548537726921741119199967280548196239837087333743349076440826307467894883297504112363589369627880685066192231174968864882839389316231541032873098126143834431365780548911592333868353355844156107756226922376290194049517148732255335952882570337129381852149702567626621954634809871154784770774452209716474096300126740766735818531248754625510270596819529015885923943556638988948496190048492766262048622973549895399721410959695719536813190815852514650963798956022913031530184602832927594002049537896756719834503680229440737447155559992037465302547740699625524617652468844922350445380821481902554130304546111412420790026927530395596298943325277764471123637068831964274523379556064187638721277689987988643966498331579962573019241467025078538486203062750602312898090423884117683441439062694602601825372769252880425465991938908794790555624523012080958344260302438643925029641822247583635880137783055606089347102605763322481180145096011701746153696396562200076537922055646852548089500726629065237478259621223596727849189172365257248270416321374120862322785681533855518034161381764951549790355759955640806525708840595216602463766324356059775798594333706442359188214664642642908586989204037975911876641456961058850762585723336141031448667297638250014283913370122227984535842376606086968307899820430712656006541268173156910593062133512273857122783922671366723923544176105060127689886157174947024361196536842325568376653399330393919933164988496336707103596489536331951535404624949927529310382281992929307934808562712074764468702130253296535747124222407460281506461573137457664023666563708507460113432269527448613872417400659404807123276817495577432550063322063988221384424203303826121278762570653123713471154927458987478159084162973740790131214648654866944869021100493493947058330097050440615164884308216001017114415887923200167746125725356803326860552166833236647931858429325939419697745591600370795347428728666901924234076032729530775866491897762581937006344197545562609235538609366676987370286608875936411867854824465274182368579603337837321382864380010498281481229308365604483641341196870062746305804559307361338749977344358359282008831696009164513149395706192695264594297562105544205233290911170016997066617624092615850654611501583768984995884112550966415645449582977512107051230635518460626304722950622885743138500216927427014292208684757028813902099338687072824015657747542499422725226157912394728922477457626131869841092645008501599527953761558470027760084009878599369353588216959996665590028933030609286943486317733166624801157863438453618911745502650326141042418242827648565793592201908289681386361555790448115977999121623226537156832800514085463746317839418411182724444166678616012392976249187391976442816245531678798429658794532559222503589364590616465248997826301526330826257992703529195529299363870002045242229984196939388686095654430008439909674706957014429313500892397714106991465283973187042708836538298385319683856131088230436044428445040835508395733482449341256753751269565355971600848685973760970354346120423763769128158212594377866762556061195486474584265408231301709596751605808345305539252836471543595854245323146975058031426852488867721426661553906961983992432466489063300339524864881364462152852704143016715420899802922136360807048875322998684783945399157176433098139943769722830418381010900607135989429413903432962101486944587021514233278756197239955442023224288654702004666325732108907248235091517815821662973115658495443558063038436784770726668876239100595986180996936313851632548513411259474835188074725705891401255937888052993400067329307245279797545035747537316685041994971865219966832645303975730375593343518921167515109488409335607297297658819634735399460119824531270085182539441253758289816018086156650626634963938568381883892879565210570677907164993711488297560302890277869445600522017978536559424559340742224833054556075809578514687761489076416346466625787408601349147524599534541612210551230314232395532284919362821256847933590406483953498304904903091132626438489417012270057216016889678027974898400331757473725715436289007985025785496713609674306208864905211961163227590757710328184859485626985031898871702899749679887014698824644757159798259357338134125150988474725247722443200675046954727021299794833304685670452990497049906673756468715600433596594423441765855010068131663968637797253037863707344383267124473623876828192817287425978908688311854595051186353854990311145697618952354293834368767570266789145497580404842319064552503548214742172216574313402095640052139142244316783115178532856443772463975102244573522351489392510759267997930277471963944360485150742151988119097217280793196914370119551038177644970835561676581261320640282619581060798041721724375541294822175121087872042452894644201053220916604218195398101314580144097564008847034791242696919150117618266407031447641926793823563260026923406063623339459285622582990079629585219432904290689815614324749904202646780232039824517956945425143184997874024474625453034522766316028313224615946039974185812304192003043622431381640400983087138012834064181578620402921295268091261712781560458372510015848580232733509588495587656205330689416801552868187333413503858548493683378549624027966120306004611884963514480515270283518928981942173485761192288694423992793766434909367465429249537848556637570231860612275774879291075409905234604073287830323256090629746346561033429379245911543979114732999085363074772279582854988635824992849060395636592332136829679855217732631791383841455890593359355259106511475971105193298833921026849474293472646210307255297145909439529984034652109185795028432427426804172718209422381835109044093873210353277973681353692554371197468324691565603204350145739453775624839402181437925250683491132514223419825511587787320770398004470984650894503706849268931312889073702200620874362369838321901228327703947083205874454751249860366246195325626752592890388311843389733175574982000682215155901132484894513098744305893237631021357449132129419228704907460265419797604546861722865108547046594253675940944153142522229123643233502199414529603348953854898705310323880043542054674517423743064704545041967249717820206530058674177034651122859225184673282193245871851901048518301884766566480811670183575081582617554301029047091845992514792372548112800515922871582231225172716297932059283480957513898567602324487575530572340772488575487591521541071966725351605866490465836980716281590588639367819218193908710451848509598364425287233128198794109483078008346107787896010589659841760958008712273110280432075834449923099106125136146602539500589507929406298740053206440920129463858707216499158799600355062702052835568891321466783350690587490309751407504439866251815604401393198457914385425181581125127273972409056621905656751372603498805138779707677208826059695945584143092402997504683077966931236103547219149098388467081350434695851231698471332067018610670384589390537477307571756058570917249391562032755523314176137182475102706752921011444238362190083767670868476256418258052692023758866909116420794016604031974183535536629333037562367870279586322409468065571311521447971862539775438246449053852226788160868644440490871339958687865957959548391016886490108556936801833876281148310554324190538975645958816132679699397556646974815300110725376754645139725082500783912782222351321394354850464345258708062573011646915349597845114377021026863415934288949582549079041919032958019281596534581164180709895553095165326392021082603055715849699979090923006667189547773990925296312144430463771940607909878938376428291971764336869539463815812101358229249288928110820598550456199461767887299068495170884252522858434705641952594310980036977754762040968101390881996184394073621731715009911062539479051941538845475922149754362146528059631502700012449661441161681957781437153494299535728971444333772580944385422300614215123578405591620919305044091895469989918560929212137710621759843700029957182140511601174500724451969541808296748261357373317843520111423294726000627658918134533239783388063540428902416687190353004507998818053434025561638259650507497486430736792961606307376523701926489190671797694270524569824081597826355195551282215314004568462054459728083381111466264508232678805299731630671992273545084530083219483145231249943829956066503115087997655285944746747343167997770327285389399638456370984358616766634092101835018205036291574504539163668888811875705457086770158302920501777719862882475600058220526069405775127386135721667457813281023729665924225530441211002389490764841397654015359943135449579691485447956934209880932581781214118078528558356989239125350220301518209312873247328408843017879439149203605068136205715948201726315875119801126082829140209465853041317596585748430918471497848085655351952733247923622903379326167005815645335899455044777617776433287922792782381583155149450600306271008540792893671857173614846293900657143880348943488084734174605728380284159513760021240563408454371333248882748278849221176360903663925681556124970199722187465269240383543791133313904424362209949419143657261374171319780030622929167482811803309228264039074017366869184627962075512729466075153055287355510796919318771090424821795397734648490051689472828718590375699427283081291474580763696212258664610726717515607524750909788496672057864307723027730150563044884421526977338107223756470925118363396322490354407376674491842834411922430417208133132856553847233184244443238324832607263265979786455729767351671133365649330671159472343149528349164901707549735657934162977211808334877780843182894260879171083492887984378258246761915538407488151633429365517170532983554180495007373437567928819885346606617149636704193458646495172825216401004049344894095153261581268863886155883557056788936549894812981601789495090125116403720247717194577068702321687426178418932263930699707712063751905285837821592861141756983212411607001599661373791339441603340978271360917874473436868448073713463441638597258371373214488387113280372468906462166573420238812409085374591287244514605973363281834121619456665841598225123501594232930313128526396005744861045723323043869302561684108482338574269064684792231529472233223661263379413524243962545679977803992094576829393739546313820666020116620826090264254964625150733067735875338207445481863936587149966289255496776723195757944136723400327996716686149419695781131359406215813978916699074985895970442471978791038227372037833084798758957868818422990848891556821948275964005386890027278729677877809533106771810758800609491243699682233934945847781339253827538566431052582708972595456564780421438398113431281840238829750013823696564444225963316694287557985050081101584425863654006595055877083788083795755524072728227225027151858854225732741080944300434984219838829372974371275412521590862814082017528437195321726313820743240908422588114580045822561081319260615891904145156416625410866722430281812592631944058535658986144792691631569926312593550170316859613576239708402157170836812344490031003934803898054014179978876664326748410169704045549288589382231198738912015000343470042300660438578867296370590839782604986714921235788236080777511769273288800896121729418824563475797059693371750423948798455068540675434084993152950837008571248490996690163600104383233593697550583836112310102441034487381224491301465759381134357826221251438481537992530883082228264923869622212103943358419771573940447778083267696361994374402711661468736885200096272519043064716562539932529758776632641133642600000736667504690045599759324706609634863362767724063734222270237892325393482546639601446558987519530942160284697472457556944925527413183331321020123870911565494896251467425311614773123521262353482553534688010509072555897258806552368233630804918191575659871140254642661773189781746071617903560596258902012360344517626939177016133598182066332413368937983919956456191016809000318947536051091812621277856791965279298216040508754232246512077508057454611349111386201925213385017131782409672846820579583576948248248571305719043932893856421458953302886323974922324026791288655975810262749661250753112268762809172168562474570830400448744714141877001834943399058814242192770328624785993713196707453870748521270341636735156288133769327867750719012181065280869081037448938234726278203694611752744479017595760980337323199491776333367851455360218883911059114092060130967147773693191780553691902468820223025800504549975348458316345111421483975053585118535404844326570720182353645008132782875261743159595176023533636746279716251928662024961818767050964009682430862026404865327902143993219679279991813251648661929198698444413440008888611568154281724180731339020311275948556366873946907334254863438145857627335409094482905547107084994535880226242125765444230981539251132201018014349880195913238469808903955106933082840104503960286590449982699239211479154192957653671768323479918882095464106984298568417823336173515761673559473303177287264447080329701868901608807977096588493444279071340979953814275025142200328811482997875765538340418259924433094671276449482189584543584692446168943809852007715573276399284125195556390411900052490516958708214812025077986123334741783188699872421610962564942630847093227220009395591620897161281603641029307601662981143744231361920425945559906573097631045230482806997237149633538089249189936212095467500217749663986917892286825131270131973891390060762126915803125269589358590785136144547114965294698230983372342678706153695685477918890999800640445708444342051135327320522312300975472849382785469026618813373660921011212108902964169387193512863821561780066705244636446640209530850786556858013401864288590650895890375237787667047102366514635983878658907949760959775109262182524634048386173921741973775689957971454658993970716657887357676604653765860139822520371307633658095110501068142107500819778714512018847992665804710043506124978575467456705964419064116750907875357566302542730152625994339646394498722529931424469420495527095676118990243646861052377304146175240391502822383312103337368931657905809162780695452536204514905280879223377122590618143783148522069593586959658543348019501873687926275026433865401986553490008944572029281262073605680790167033295393816025649654921991894339364335082597478666461622697721699533530724510198530033674746371176451217435668847593685327787985029235557250885508746436196377205375611055718769526660505494420325781651380433839550148887416926665170239701335985220499132927921227735239486288289839517609444466177953406727117770037958104063674094448423645448681807062236450711468749951437874949405517833158693764733563101506406072257838066459706553174834583017887292307781122720001403106917151336220631575960972424172120491317520170951369940455243264114333479808522218070446417432091529944393390453679455108981340768455626644326183149149433243391943227370061504738777785282184009130705966700801187397662873398099531349985798113488697437396178083409561926024532550587009567053492636128955926947014540681047796220398819954666070000390056682939783559116306327273263594350420962971129664072639420143435969375396042716398222566975267398929127440013665939451329061863584154249368581032191799474102669869469284393029716969374688652998010706419007882243009591902926860881750582631667983424922574418063909104003659069424164260301474137457263489827951186512709925849345321117383006988571567940978753128613481809599458941699284834972292763497913587646064818293807304776420174753443073226410508238473018323611528456580905521707468006346320922490450695915129489330550651781596968156529572747387374506188674994781535392021281886390367102102276723884699621078008097291828575059681804729136265048875032525979141036126789715254978050387267931960550607549089455149020386214222318025921025996419950962876098596790050499865859942398272630068779663162042161675297730160306833181842301904180993068408102994243505332072155413547483627282632718428286046034880547734039527753340313681069696622840843467539729237702986050994701771804286062503035416630130389240680489205195762296077351101738462236095388119251776367521993564704240543759744867927056585923803839686373377405770496260092185398539737062835531535634904704005864520711899830704214525386758184018913875375102746626912723098470034185937907826565658670150656414404401696818019598678842032449802516532386768769195323204619953989317927596669221909283308301933700916100370858856512402894962354534634676265180078125804224767723203726236574050828328934358216417359859109936069089599917304123615584110205517327796439092977270194657980056087580749181598189831997262382330617560448366231538696033448112361860527252639272382463605063624609951924823715515283801228722562741740665180234910282004094091258901342650082815010943691474868413301415577021745220263204977713808167384136562556884938877590196312146364513165002043782646045993647907268932056692765041706706605115936905167971199060848320503958139762351692783863766072543908163755899755457390807299981926465169755987950700279845814167194953663288653259831536349186219361138188918609796321777956688259974223448918579551003163996402007274756520788406368457156163487867738863019992055047357379777887730629861736471612201626972075966335587491866467031246626342200552040744809482770375198472837082110493892870418264252912721481167092921443528622265552127434790370074962992365895957644383265258252341572426589316156301664967425038085577416003763532084891163264302653786516953331325954096215383088498122147224257826134682162098018599396933434167996773758230654401124383490284641466184010236904041333849784124847023174648251990704264951134037697096484009030173924660338693864476915244602752982761127357313348252315875076270068819158068001570215274249672417323321207926350107233739165753348663376960985948510591046536586362787189002887321169352734766415912059304166351686140696317381413331097962070243131686021187532390179559899249028804628115946586695549276046391879917560852310051871756853673648402200534601509681517283544559028858586488105736092161235007754241807831703285001027713828066950975993380689545395015324428689026178212867445059746519776934733923373765341053395637205335793273195589506667532476576770378157301458342793946141313396311233634299990870849905301868834100518546949583235212989611609043397245415572384787551543945796995123314278005311261402337238598464555599865471603536160270673221320649184045320417268338530901179801622620737699579612013107766006032875093129404232627583556664268242662293343227797223403556555061768489136239000835723830313013582298649638467108334992567630994899043211241170143595387248890118353173642072178972094527324244503840642715157823426788422912223847487617609193918907132796920268916711226444517794891820100051294502893449645396220027251842485950838515233320694454211123227942867690956771495112409268588696047235719231484857502393348791758667745190595472420497329249972592125506643223112693777747715698896999485298294525605584429502834024537942703126345740831914573683734026237597947928707097240314808439890518659378381933637192317497600495285151350935017736703045841541453819814715493832380067808193191015514739243386811150713583525327148360272303288893467930491120068733094154923353095257902201783520450936568411770656953684444425193423427564580394516356160274149057228535141414731698714674054749551288548414747662382266076528759251403100972456185580188548299746894794413798651557461192079813063639995188449160704199860062066923613670152475608709877829639585399521714935863313429482553309047394956760822643834642737365454797063040075545160239387589208199706999367190242970474335997315592921999807499045408711919155690703127959336693653212560993587255753813474779573856681380361706329515323365438526274291338067002725783577455533781687533193759439231659950329536602005273763184837642153105622948002019593086000747892710645069789172327650733501306300959455991166507699542161025935132974906768822751323044236057472857143210572616142425055280567642733179523737075231765501713413851615994068210615892232922412671609013079987333065346026799214691360273319907958453575289727813064511209441684678371500377913377703944879996684884372628768275807363413978288058744620707177544521669907693148586894436386072397843269176897152837540791440282594189987122929602002376743433063673619040163750739519041750716570797275029611726272890272692701250278639116086918882500477109059718946936119627109466279599478450192469290725365591163209687106129901874040694286282834253888814765961609918222116372156379271530389923292660688274692411054782403297147316066509445054221238021291954193677454923430320826079757029961825511066263858068854892015664221129409628451467464718807673850765396457759467341117648710611873831907791797755343107608042187574710907581645399076255320130724025597216819200181381323132658546972102539620761712723454155776408487685638781658987226383039092059327742073852380168662795019395257408626863728701421767863474087877226064596806049905645237449536966588805636065335186046637110421709022281606898604155461045386891926112933639216680424973187391758482135951774895239381355129590208556208675810466288159750619618297403933095826763058985454837614089754147532560992570834179476604243312511785130834484388496764949876337144387562845502300213226532375692804656006708916375216370652538871512710092490059400344018595831971972240937959551924135194335605182497395959969937791783332977255742427546763187672479514130007167268499609419547245249898259542996440945050993427205996285250892213029679561887371119363132827220330355521191657101259808212917010074842078562868781656432339939665530304525449892984056290983441077365375070664079002819885670890144371963576658863108556723743556141837116656753868241996044240128495643685157748006018754402181607347768123576145416130995437686692342345678339735241384373606831616412317970051384257786559860305961701404368890899445994550069916953424575182997367227927652581824716396755318024391350170444995610116105958165892485168722870362702881397272879935377020724463441781710630106229945471823357738047033177520572275128102868751943495805476338950299035997351410665306654278632261959847569308450959013990615794650855001471373113376736863363761967655601268424035551721243381103595770466838706897300138450634005558833507913453839882700138220913760110365117984177855205232635671975920705720494874216453137524055223391305090441260134777193455033408529680637093017707282571532429627681205599456358509906930203197754170961150997318921585475719401012699675869893596092245675533946453219665399192086332447145730136038342550708601640559741170203345681150607357433362819211486532751794760701754021856925120243091624662915507128261991418861617712938783447365796439243076295501855605731076555122123077284462553334505319082379236254332364809165625613226991257563426141725552569051112452518950078958418863828714036023253889834917668029683205036878115270656538074781266393184509162700663117297636469715393873660710417386889598596855919349819393151705154642255464828705738312257731918516564205572890520649172781628475964395704467581530199145508270637011467300077170436160144122336475128136366547855993699808209423318098135537461566323642227900561400896651070839054488263948645074960109034581580137309105140482096945318825452062009016045812636615996245370475442435174732116385793257215459767766458852512956305651755190497936552554158907160012922589279863907164135473698070917993935531059459299010496762606155342612270678508187726699802302801655660051357013508261261457855296137180372931322110655164076289384989210854024355611769002327183987002056896896666948942498617659587189399468046978397509151666446566675229002969848524382281968731883963633181513066698164879011306937738642801919648114026901875245213770278360984684694724817371373742997416230763528254277175404546580225673526930250752195933224616237052605191305202019353149772305863333269467870960293583408861617242496622334151117884889309442710797550744512165936305697702006822145157361306658305783305020095923946004131585972455398426573216660043865438979010320956768379139283278188072635770583242998802968875812580868321140626628495266854252835960982223901460370600615537090756368285346802427183393174394311433707458165144848780231553973259133918236064479669528559551625434647796291047938723244904566684621757846824410511876517963189184439654410523657316834935475013899852190294361819016205077766766945043353531161390699495728449790056127747699769245067006436098293963282735154657412714146012848596692862202554594318572396235175422892900722682188704691831194010748451722261076062547259488321215561333533060132220091281957733039883442315974170675641955932647436675579818501404346007804024735646458232094980044838540757606474084637264354166116037613466729074753707605188594396351473688306867135766531424902493785771466867553879027922059846272103722802870823340762251313633063977899593474318285025583850874523956864883966558698496984794114437700040852217684497919750075728867363182687509677994642918352813618895258269119491915235294006365988477597001954910551210470123417476487100763749898404716201047882475886001546929041855745568475338168304547863246605014809597761091126027141666456732005742903580644849387131703400804690687834751755988099741266304165492271568821650962437379906214276932879046705020627518956816339445075301546938243156446884647360135072117754417905356030689725971352593474636089461578515135763873634860937075563226165917956782013625600941925621556887979394008737944451560420926747811607016110438532317465565945902708581320961739070633768051577960143241212918094057537162922151770978050186379475652069646306631266243444285537212826718333976146468878157505836113703334836134962388001429444297511384280363531038010936242154438885843661987565762236626108965963795691850815850608357292829467004496671525480837791767200819410972037669589800396418941615118462992910398196006296968695606067038584218450239188025309606351810793389476352781179043855155804390490566317686488723668240584683292437429723956046694943516667098446412999400541646152679167118928067717164487387957993658738019876214848932282117063546421783337505003366929958163339385734255205053157936538679436515811111592326583767253452247215957238919182745920393974064370721111191449599051446065222316272142515517167715966125098525098630667275832551282735687718742336221914951885318025463938889645422655019866721990134757354137794087092540092648766867582893796498552181739853179991128797599299224167444541659744661870623776177755711017601899127456580064683161572376914648727467773943113641642954447396847207306904487843150738433381692745864316052539077656011134710047118211283707670968799835315536772530757390307629548076420444304043339571050217032083938233114772575917845781129976530135305858261915618009095196124044890276423484257030969445806413500008476902760975696322274614014172669456171786931543698532615973907514325998539839072590377864548580187239273584771933858628399054761864369272133857343010449271604328653476847527551240276619395725538912718960414946992096592492940989607704538456025958516248992226082614017857253277821591948329908730297795703944026321033268561950697496289274353792328197785119986947154894073576370035657577731911740609229547029345187184628319851735155728344321230927545088076026764609025636076533838658981802393073121741909553903747081937493129468925608854547166348901279741709686033685884152432258616756477281418846288782530483410667349643961631318019193178293887723067193643734418693499894440211875639900551550792127597834386669656704571940219701873674026775706265033916029698466016507921709252688481339807198549583854309347211334573978693940250658303678356287065223103268279249292493333497220682170352395952044773416995271872129734535492290726508619467750369438406234954348935626743248510438727700583674004801427301086310732266156898502652062122904138499818547195038368594781204072283758252012473951214683027595001625758186423808181641912363246243430610524487596111677264634838784334360122378726162097559559146043354020283119412964478758609945729375743616819002449160232003665341680251776365859583307929888601057347358965596851527121781357152592151781480675176957000845336534384310332215210920752448037568804051681325697645133849740418109970003944714881750647900212625396616266680961666353307414937947666606837246163726168262040363297805648463146837505302727988649201763778098556492952409690650616235287285163511155084670203290185624520978626797467100434771797839951817010871722426711051954150041688349894841924415348063010874008906535605860127438850465580083736522493500502755184808213829975979554527514091208070674240143780526383161880481488591377796984632060367600580593165610003906144808372051310793397279341369864927301711983685373916304570215080017514024571943029754670913999505258386238828144987183760835632688674490941393534591478425354384420492441202553671187494972737784370366861939051461073450669067450855514663561436515471693894490717045535189272801796462642640504971309774918316628843651003211338327413846010375591449443108642463515777697990771583665212676501166705570126623432166904940271955816298520149699218577161327267790945957986227082050624919689217506690387950310399479808489610406067852276531018993099343940379094876045265988248459010154199251456738550573057235473439991495139186687784118705945240104767138774678153535294595285111423017853013879475152132964531604809654535340508503914463154690940666433704182944876857368368187244661366874748543220215294825638741794960743120739539845049889594009753963989504487871801981622662167639409510343603109045389792457543173143535720304852856983871606277634803080007432479182980078548468306646020553270993445834946784786729421466986124081673879756501849460126062918730564018992398944532309186101822220407713682107386115138233380420297359068219313550288665057916417102283281941072845430742509807627882243280858498409147488405369375243814976371335384071973506016000635895954531926232646103389406091574137137622347659257922003216591290939764637479777960051096714375808043250385835779790093866171592362200086890594747891511052354766794061544381720212749084123975388834660620476028364716951328668040552461765252851712997204071976533474996747750087986437335975536619121354491299193087165315257021151488490618673862239562268724569408877941006282898433222065213581451987052638849230166238002769997723380500488025069817095558235580985892912071080841142452698552498962540439519057330277823466089427539036094211102791156646029158601736336223117083449047907220378657846255924265526848538339885408767807947395810720243706375181246153526124759713342142500116176783924238261131738762700533242278943969318975540017026200591870759843452107820848761392160341680565718631625709661594423395843776929613050128425822883701623911841956125453737318362081999392094229054383805745691099369478840090066066045803780266285170141722538713890045052198559168950955416941048585159996138434804185702072744532250371904996483846828744420102753968854527299929662516030246928332973680949666615243469632686070656814140251312012829181776406934604642890272197268446957286777861050449004513387734943091037664782934771688355585699185718244359164587387816032650522746624464652688046921398606995729717819095959531926272177009302791774909978981485756467578550514567165288195135106120675981972082974137068995933227878062905693043302717527360497737276361551162098132969437474139615505617941698053048293743487668887120782226482747194002268659379594331844087851745873876797395522653865357334024459161353779146044477108335902629465894025543137621530957519693603775838924641125930134576256227572005857982164320123690754502440802015938142238409121522627277168070191995729659962486607497993609928019856543238932466867075210702647917945711846320633317372301275715173035946099563743910848904797171822218966522459891353320595041900150318451341947440110313461095671542334257640071825426973743805124917642565253281432429082239321492909992610692155525664019801739146911314148572102662353578761412807221288438657083728527034567220834778417382646057129017268901972266856156224257887350873624196838171134777351455668478224321160380165996470583458420299443804047213465609993509830102899697349259273173706187142633171118058898547299199938256313295079277736765010177126246279959516926536369594600855497766111156029633691881861486275481468231172256966533478946301284541208415265991072770110555548162396768260455297254254287218359131623687894290640746391300859674400344064933696736943387643996105290580267041985622967811526515582671127426466192234396098567261159611416821837506013367183960050050414574229890922287051441416617149575320842310635493959443972752768972023788749307516323950669986870561898278858703399522006770228152581317550128276462826546388922731441379056292864144800227195164926748896332993262085160003471709160802522597845973682978181461741056762411647748129551406918631068918010185906661829426583859218657601686902144734922298435715990846808513102167787838202442699199154769896796047145443854079431797270164306845443478992114457553741188733997861733448409581255936582909839766834198719787220581142374806821031846258862210112419869018373764581824702780510012298831225857286281739713642222143234050235747406907409540451706374062808647666832424181127630446949561686633928167508700684486878484909822201147702363391319646997578905364310725918185454107252507839352172971761816376420194342119206945635662438489547255059390371953503987220322594974185152852892567915822774206829254791901380509786359895882523803275907013673672696488285191403206247024143529306274358005137314414432893932958622439101541229753371358398172948104893848296840591644326709881053351025945838014518669163262945446222480676523918147474770041994329301036343017768329197396512105111352611103351392343645505642853273791214386117888088257236728337844175103173113207082633695624827624873788692879148929057999031817007519864183805122583408040217897852607943510189789253992561553441767651832598269021246557172524068882529624693832650140576028926162835324001467541606950791137552775884330365987470310400695520893795412019226236319058541298682461060008498131602146151027560631981245861239146212248568689071468160983986377441037380436119360093278754445144088089400333855747347984411382376323079839627159216471327908357698951735955483587459103971346694121897746638813154149183297110102067681385438138815858871600202699636701379307563271938692379938039278733271890393316463591435836203772015403963878944195105625905489294710961923466405208332216439812103903526734251063354649605037702743669938850076598741354685344119907137366703496486783412078932203537270967322259833991088693878626256260303793763042282744172801911086663345939502240532038861392782782444599301914459535776743647351677425589012214937130042712112645875533378773022654093885993023888446634092327620336359336508757983526231656278375567225744301671992012653908764386989925942557154721093298708086945449332769621748693772294622625742662202715382842854191251522600707973628260699918292742015430092124658523462526532626941175122495850150476393507956815221561160229676555788738456842038687882316827592610762442486599794620722565767772567493689487323852078112614738515628823713231560567002661871036683612214500189780197788722804395985037774873614143566507452253992601938282677549511489922395485669006978868262624108501708198035701771796249170318526185486297062729334782447733613855319009339522186814275579203892983794019931035032452084735950406489110754081898565273934384197206433837166476282658136917143163992509401279981097137244040438181288374916669131620744989520112509583052324811375989720524046843494166117004792318399833747420432768125267291887943209737284635794864597327284881868920537456632150867079025163853900717539851577813731551146457815041652040344741698784496928099493771365793893950305440227831958866934592930634750238140118149079318619202664605813960625651056649139701809044718144582560457455982418201990197857825984679867947178640800784335010090569895392171674440564489334676319845652583572579305710515084074361361600385051505437098629991238136338437179311365105650258877122468852560476994321243137669986992793785726554374054576472152201969552803141202077456623597789091077277199852680658025668178114008003860520134108430171570194941485502609208321081605243894327688699431643741696587184879613791317390642699636151676836589618653785786137257524852353975352097836782458605435912095928847095835880931175512935803184628521960614413812003016179940876814477922796159429073925268121402210512422153669647860418931710099676152144794418086112042693920130094244059300538802756707546908409960839489834132039139142464733375157572597804129973292375174558017086078504460828609530760388403749917443403937834938584538164844016059398391238774872896755691246666130349977780002107665129364588784404240582988593010229602069881463174938788991850173881476274431651285877536810867144456956168134713218667791440850368831602770088389468118351992406444576472822313845964300765410540598908532493988651972908753974639667970522415215172044765665460098199465868987191727155374029831521558358162629792546107324063604642108685004676982319862575748230656528910511090858204339278886912209316874201048110711296817931674996340627444899324764019471792518011269789524647772139766712655413127731428679569694676320757716457783297039636859393965940810589009355268639634753742704736282885851406121509877523754788765624328265406893534716176428120986354817309055499922032718353141778126392152949917445187488584633504209433040842181299990435089501475200934287708668055066816528124979711035695123826347154635637325279169503525176172644141617345562208980042824788914462890579505947549843937867287134341462557533219886472889910641956110184923141674622677526947917692492012495050461288932688939517787206707015138068009189690794864751522970918653077826272984445670700397213094757951692393383075508234694669030716189959785868914085199409722508499247169948295104994698584753124510063402740472248989652524546596293890826215529499192620363344136414910542035153000776436526164442080731009191728964803679719320759926842694295848345621946350221304368218184619902329742781954624692877467550306435759187949204767985329765162107579733588625251691856643922337947088041686879001379826321317177395774994198512923725284198865889392081343448511681099210265404225885373810517932055219418181203894511629210739097114249013867021818401009537361093301971956944084633946019209824239225252890412321198076742724531879232344366411874904119219653788643843766132386441268535460968449760070867764766239249587172500029271793513797281922897124037058611413430061919528483079029909807501093238856554725100035581743718291958936167079667115175484572732724430913521873067764768530638695527965690562728156233729011398816684297153755259763072506610038179732284158719181578317239112913803476411629799498578939937206270868140329191135157733043155125505341318830757830327128567928520386204299468865442018876996385111046212093147627504957749612176124835981009079782507427083834576680360379308540127814592051187892581600783063847969770115593815737298258128070790740447574894761898946691787812540967481966145580732672111528411715989481521794553663762523176378966902914787307809318138963953689249301692759004287821970735336810888072997823882579786209228423185849894859676991822126133060210715718616746139871197121724445135897222587895407477352300530682807732060227776071393164588712847485302915698453374037783426050071592667634321043588710419188405119155947458531328543813602534693331880491190243437894912878084687422272804675096904222564965022771987719736885246101688049114162086045326960751940988792938639241737750530563801436182259948418704837124485069114663753647800111354342720912041248512051913422397454187936366464321047070812585600770388439110169897245002452819256505463167303301646688373366920171639713980101580566739595168253597495931801649398295582668679886175713200724441883206671974813483360591051727500485916504844835445196826604624324657012339397375637713021157455661309635016616292970945480778378458657057423607386931153891013784301259479203597275997898505106990568033305011169042275996839643670442329667070863741272439063255680909985188593895204973564193127006429160425949821755462230764248567840318485172993857917696207623771973693558043606197848588890814938047789853522421636773703329707859257091394959250386842346072777790575407659019768073938579303749609240697621118059633165214862788026232121515350994550003770057431007722250842144553282953062318338710801192983050195047148272539847286863440101241601519882114449070286021276058779917593434644639820502324598084298587037054582724835235704682578134811960723299639466469518051610234373240371000205681807097960653066027569759743753680943482691230621039163582903150140713718463364539975404418975281817817853507525321536110142748416221279275438516513826652212026484804930433175899949173577465447399474889379406756007083785220018079583776685860577834837022109671389215975344809560393183834640978402643673967461869223412638753303116690455202534803968021265368123183805147283968351472086456131530675785750449309663587843141970411317760735240240960566574712228872116803030920226628663366036174863221174783757335192689446776928551861988461828184779492998591678591154277661461224879205581592210449081838726623637440478672734074285808558378277205920165480419568083383447354188095956280786420667232163300774118662565086721981181793874626904896839318551456788710250120954437173575682362026090900355009614476909063124983719390886601277961468440396613111153765275666684573882195751589239530141951168405763254055143357898291899014560085698199322920164445249735890358396190237555651777661428772597160020131780187362382956750116028144420166291529309691539419528666985527682999722531083763944837254459620798180548392588824773982358779733284250262761244943067764432622262365613417687369631177808417162969592350314658278423809026219000746647048598425147436570647271341634388259564321310602638635787277191943826540023959544754400202089694404800368155879973628293756083508182772104113765956174192838575983096141043697895729733845635701167455434204500933773035090736061483694483379039913862334330019981765605446598945539434428462007187878362854702256858923167640435591435535902285667991617240039884009119882538060826206295803098119083006588788467695652984846142335737216800083664462864804605027942420154994394028439359882969961177819259655709694611166647332484683745055290956164458299448237247122569985788006803998276286340545258359407830022948251012140451137779451740410333964474040565690129487470417379945440376362044572770720424900667288824564888387983967154377005856688241072409870207548964278101413668638584233139465764316458415270105041598345006045635116887170736631382314643012828667852560811655756234626564412575211226975400050184825561438933650060272581491616856307925734504781030589561752894420558253707386759890916588687593580704238213831294289133162420452238945932810176079830466307238624696605015347536772720711541088519747591030025186200301465306834490129251364035115227579606855317809262090287312574229105741085454133676682303523908691209038118149704297277195955320428493930570149758305820369042025158048238418114127045833535068286565458620193727546140866966127144802106067544090744709946661877242583803907327772260943112012153966272910655648655692116836596864960955695139656573924335142868644519439734662985446982093738938565172674446177817559030393979407625957190506877840814800665667647185797819840241831803066267995980743064495690678792156095778742889934439241976687218192554073081832152328179642421859328401919123282959073455868617578449134439186429923763109412642827592507926410891761075085985988227051111599352472277324349813592650677521910818842358885082490505914066890250766343991084081874564871626018673630672717486503070534145871372691783779532816970510111403139953728657674893559001426008610386838281972732653593382506801850378707389688601866724232504310156588936153224637451645999498619157092071669186397072979530705004546267937077669537662331517019357029202668443894121926087171735233715735111647880947383610711591413444942447359295398429857252276825733576594177362421141886105253231409363273502701113697308568340850465320521547284376203070390200662652745151970910541100513167972792627490281360478185318881341562843036685187808574898490916970261634372362580471964583057236766092399893324188265784482110308004146160240780319615616272035238748013570940486123708615999312690935501241557016967916761512476655393552804251295404868360562700313309250471614297784868424985970494983921490675429401843120432128603727710818641601887782916001890352194224687932926017949502830931456113071140748032239039817387920249414797536835766815851162731532847819907259717678272681627917831994839528405406976962496132898425735991920301934736940690652011887808008134527735415792251991054741002540587339081194533280002635422696280026870268565549688369983737388468446824414874016715449952945041997774643216956108301679254174938067305877740575689667345383324379562079769113983838374982800546467955069851933633522345170224159831781010238272146741242344385128804161741060545091112027584111960708041160733007269869779865022455502699644273931904484039264266324286620757833370510846640929407165190087291276368883363539032732726519462854745197043609594750313240487386680127675713175638760155745444478412689864315265812004708578053899964106593400098260572162529084937281667321068851230397973302823824145556221871722789838083512229762134524393272404479687821020810008225879442126494037016650757528084075089874109069707841160729808372675604210735127137685374169251229789155998094735968393117690498027866913744098208819942748776483522157712992711812373570258036567901609760558547720221173678644983679071767096015130437505537557007312294149986935895577423136926714544736615262559969912770447977447143697633617420476799631084734074815235094707796567087358384016871371801942164182092221233278831255477049519554909585381716870952532802336281840284829760905359909179944062379405135926090510395311652034487271235364350405330567496720327751292674337416765581765144492631067240819747967117454974785932826225146610489977790071756193701506159000008493839583185516702989977951664337614927782676082494470561427149135144054124653032415430887775892367736883425147169575278322998364835227563213164852626245219973707130389079507711873417578869958833580328865525551238957426258429433649891404309196836054068297213510124438680163671624556853300371452303803994747576385705698524765184502060392247618159975040194313720433518063711784202147376487618913554320054855262074471334333380771964164939935258468488372943971692401820593094361709300476548535302363070338034451574215017605459688262277219521848786857958671518164936400866574354081710774941694724315454502902054528905752300190520208668858044115576054767034966807029063445900240310953338791461401659293430714875852549267510966945706712397731380424797830500199988692830094160714630688492973146746551963006963671688369173297681372471826564797369275657391233804180762361281135906595820762182070735425792865780984741338696880192057671393026120705020781515773271420835335063146178865486345030365476904955592583025367325459239502653418202186889037982231256313727348613926802422575037470718129648405840848558330230764739078912571003362452259948853462752351617359797636974160185831148264497945192913807604852055416351621825440462701364376520764918826183145018684112578784852072166040726662338750316297635815021252430888311699087610570401309950674247791979813751075819704143914303521120614986530611963253344901888472858252903423307601109531942948372878762594000853192138334030404650583496950986870152895744547725002406664288023367220673731408843809350711391540262830680980418443078995496927001701049085077931393424563635976854464739217538841134108797309773794334932260233363235003572318621714088175306310123695451789655854569731320531603638903363406817310799136343027375985902328000528883847184294712102226190213707322112140192893854949799369080038111043171991125352137396007333848686407072413506690779099618899366996689399109171748470838809416816663775424997738915266354885629288025683795627390960816081602197324673931117641914008426846789064791851044026103569517536417701315562302792092115776886949081866514473886010447718635858903768953957634145337622197099195978047971487615381881906377936249306014886434337447584397235587714607520758516564092560192049753687931036213368592513677505186529323326012300355900806641494102689839324377958791946850919802710881739899309177731540022211626833515552715040581046556146040857107304911648713970826245874230564642751573069893288868105002078532322934219484050859894834155859177482774393888766517222747478417937158652391818333472876752243685006456723945569233444877072819946183914893075074331941118972305439136235041803014182986931291439566918757150579226426291532214954054662440054420430588518491942918340067913918931540477766452831650157672973978281858229767359329071286070936335017901224296363035109771967232495306116796825990293150949468375863785798522954686064537313564282527655638941602633816031422125486745310043328654810965462113461328177584330863572354414889171287158518552822084444182867956156372529418696227975517333815020726654721104066832034969855604478189964807551456875356641343668517647592595670951289035711561443272431607203560228945700001073817848764270046982949163854261154412966756035328122349017196044613148593278226195351614249856334796064598950352119819908210942106701003881913946300425154329216560044863195954502869440082207718383661081011715532729466977063585516517623893172507285365973838414858221714556810672165307769479196446013472523766718100675511632338556818854713174451679218096403276412934656700015726604078006720252646994661029711804302109648022295493243488943505761713375632024235893579279031302420183648660962022825052946717998428871783369867796759256335947076686527214700175232440885145154195817649636250078165193901997670884530898346247944733255099654895908163322880226395081171783834876476698246108541521550790225947478710235268963108995194620699956126454188525608418095969698115967615754358012811746108022493871532511388011185639378987846854315357944340787158708616555426437924802908919264349648269032006600391968915712811946879629432466604138820632394126167060890611239247633000918843215270915144314746918015498136600897391570963003705529827447832948739655448133022606460136275845117968841855725115597150107794186176114059124493590602116399368491030437031861232540547704607707007187003389236021260314152960982898247128246899163068181669961875149166068549523345166101995262957425505312627236774797244297933591928854910344809339445671533545249851127367513105692263494445395453537005562123669064396253126925720867554497090999959609351728153961342572890876835013642460714961461865317940865025480878927651610165588548289991974828060460676691012448275405565144283856388761504029080864816707264395403204328723017063868442008538624757254823513295917172500607711190868559993006417466909385970995935288045156923827316370498369244705645381814236795928516258605584851399100570620273645859381931005422041290719247347758073850436110481432125289622006997148481326749191638639090038872003738596405307802444921457700093951851847327931060070483682566093285391693370243447700058153385910943730148534193221069907021767122886506839035060654416776294931689646890205890159918568435383392472304816431933709174211983743576449352835565528121155574218091498040569497895833260156431089779244710949890627504979385352703247001245259838890400324443273942707733156031812749388010456278971366421666235179669923694473653885869454681984010635464048693643327074576167885870159693499925739336329539618524311631650120394336243153434989362908828186327700986565095225914400004986040012715367871821780036817061936505494012669952252878676731830876750563238440307824251244804277126501369318586315174051758191704018896838281656742262944879978642544480379609930433379469480406918360465673440559403942210594882297327013014133097573530909022526990639427634897881238769267238010462398911777305636420327517162458053939157204704814699724784350218786859313710951100057908367254732373500714226826490276441971966015404158822555543690747833351623897103306091273770034561501800856696757755381527677784886987364993636286725375514864860252462984395827198768306374759069540211236974711496280517839221295869564764525273581274241739585528356033531843650746092903884498638507865778338827027284887004708967779078794488211017003312824760127789643276130872152109123641380760832421209865837941627231957908529908627226000744916526248329255331825118408053088543383474256570621490047835989014852596241475239114127573469006109352495120736108099437458850503219287645951924872025515167839680898728602450584032460150532970740530012498971775747063213649001730232059010321711990081491580767637628004114751438403856477648232157994492968034815459006858722164200056521169710615663272095955656530543926342893822219756019628842350129695402833548481543956185508947639217074388060024099191477817975270987569583924303057004751720509466057810427756309892261060341601886188811252349865317477495900712490153374601245993624099907176689243932091183701083996196439964093543858379441511681535878357680205276079275750758847927815788604476558443036697545657760601782547839217019683180383379367955118208442611552775817237558159244584788617072608267268018594812019267888239139626622175377880946072807742525141403246235666452403564979037763959600220771215894804040053380316197434892628278583748046776249549327805608104691754591100209450667440335903063301806776680250365520837241144902625212521369821873311056926749734987185804052827505532593787000580912785695659720013818343078934418978818490423595802916377487117816645265889717977620449244921998542686824239712227110064000941815800933096863844300255019703590355920933171676605588863858484951384322776984759222455553562641088943013271936009313466272780546248939699338556973853642978327148579920464770864138107447307004948198492316859021115619627909195341542893713232958855768780302359055815667088347231974432039770450338253854744874018653449642927243167262021722047454492951975199652382907109529137117883604326103450652273765624571498667860981731700975575563895914183176026471552534231057983495769009807237694687809378798232202573847463177481904588751737509860586538711400276195003480565670309551150986960918661190931502196499036877224689169801817412242263618485670796742758793003252764481006838615227156668915900240170506987364419851516256603553742596114061283548910651975464990028936779876681346179266234965942801728107390562247694658793481486525754943452210313220063668902062472420775315336453523263415605962304660540727242782559850532393045724581696769624088862292910374465843321034366236250081433613935137693883029824954576170974468304272722159433322805833260567998116129362902924310733572953226526158532234151716291213674770909399921890897452124310896721307858531182714660683562927622691326138223445786330001410761927571369954292690448418256709422475394759759897960493935037545312729182235982753737674318114735417947070353561345546841812941883099758495990510233110404279665498689298175226056490969226394906759765235456193304149336643068193404979868450388771251992994049470116979745236702319819337336841113473236235561661399132059870249601612121132204362367455445985653224564445489365926913658004730671691812418722291938231253889341280856457516974508783146917660388501615358041095327450204750032396837321304108194238658419186921371790254770838699283070102199799089269734904470629426052835489053396586510139376409026691589591023079085560797148132660193915039275129838127503690111606498251554455112046485553006323587392316197620021310756850810143380373303749300429550129357451625678304351495702846926343862893745127772960318087788988469116629394228419030216947678500910691189077769697481697732465945529401140823582200990857172587751575145115534087036626939815268519642696703249403862092230303591997195770704037986792667318919560136072267779967744882739029203482435103424980215869526384228318663361374546425399482463200928843886553134506862186369297777719686644183824295573625492523128465288015132405077577835500995868691554415347156459386875441602056577201131987576005889797047578566935859449743618370937505783060118915169189792305429361191099339794378617317606794755846159828101041445577480613568777182335934268733314013356173240673184626189123293652907466573264315059027339500186844206895511399359525201321332550472777767886520642609537799211247296692640216071359306936644285358815255696584402491081147172908972225545315587119338864541071869737151468229543354998221513881847295015300106994774582072397561878044581736802130853684040430540502771235164519456394162580710936974477271438602098932054465343614956824778850267230447326339533138449438179104572366449572027446890000167689365318022999975500258116884144967472257649153990276901764530815671527007292607104994383949106225403576441981406874526210057315937646858611617743913189150442220870641661165311596896612960098711907089042067255819471009580028673891585189572108222019935053172638464150515439221730450004274406547055958710107192619395713852488311848265338582592462927507224303492970160290659851631884380774032882335946730672561832747766097321933528796249132798423816262757765182223160627688983664326569276903665477770416294515418400264854236254675610437311396643551839069854959692224872895203417172699532951611255396193905411145058624629054227117163914122444647914659010457949674366631764254923558206168282978298313682299883965141953082375028603053778345868220012805427115738727124994565021985801971001417616822136001574364626160447513326904772230168044832632062160771627490512611726104174021075246703613852776689568174445154109594001821812087181621237794735727896395265661140755616198971326119955258816295063149179033624586803284984997319772185785040297216900217151132754947388660521652083089003145746650304249734978929225044226354040993644905613107570192837185008058075706382933495948532185773152514025903292095175133672401810461593443614253025025420786194416122610409773806650166962632853416176211180635300904667706906206686287764119855618076883721420364878439252493718850505862900529880191610861118445071208874716735774816068368769633615439146302600347294895767810617832326846581264577889188916710455800854899505979814163896635129010380188370503135513923318146975789354642063921536188512294356024875147228800724813389494134049794294121218275570210194590220588476270515174483256016996062190121600377802165918892603085289915985667309419678121572334238595290362395095010861342457476363965343213436258097163435127767901082521328043742688494830884264433244397729386110384650780646291123023530613711234229847931056161174280055157669673865067758446089694186124480922985179820562556726684330782981956773587592662993487300225575555019007057076229197078312490376021987639108657345960055117778788855560680087611925429717181680581905790880777184817185149607741909883373192271289394512510572298881744586193921218703952084923870521598954060560502305850910049915679307406896208710010569314352355794230271310593393159984290108571370654528084345594337044075375115833752335928099188916543224409366556874920498261631429161689021086719094096265566963555426927591519870151013485670731562758410424849780072388163681100165730225794504942180437739224738622188416908600139651457102754616693019003285204358020895581478951526798592017720092732893917905326855628553981414527468189259095404839638985635101771566303875194974355928310186328309020845873226532640371052400151859753114126970941965235957074007424298911403126380460671437178180983591863969216613436053684419723631130283115871472835239440812648813865777694585745733890931444932981588631813652978527000224001729694211596589005903624865150891344926106683968167376717953180432529770385416645054130352487316012242049669003587959534597515087669213871372122806403931061637611234760706404567457679675323738662689484276629877376813348560402538689757053708908706384636682087842029291354246689361631383989008385537444182868346572087632319077413876967690596580720778527905426986163074600809822796253740227716911562268094072748759827723320899282995868868398756117461245378765559520091929117577407497202703699148622116927999537423307452465229447866817731860085768737763846650942935086275824596030957889295554763034506598166584754090959238053927397331250902487293891944553348394141162881719417688207955187082977288154274214956643863409833593552907177686993461613280830074458091241805266310548760547359299010448791306702468232068931694275172272812955451909931115157521600363832941919684368994756715433979766702913977523363873834916208399983646831519306798477168032703845297385996908681197263014788600199524413727408647294485433640091607086575016277789540644647651817708414998614457215723089083059574105639478268882945642881823377425410231488987056643229179722051037378446427928626949743421477711811867053288847601448376501156655389160416181428909284543536928098510079486495420248243825433055758786982487280487427774013911537032591317047394939463158942417540858577035122204030532879282659122707310025470126124395793702082637134524477286759937205969113291070173195171812034969043847116386190446272588698280770280826403561815132927675764057649084401588273104137881001458000630355082798926653030316128882292145919092784225065941403923241082764047754800743712967204520923933119137256038998221232057789669143117292756637255846816609500805143617023322188469347705206351495599908595054745794273352304108357873078914857838142555939895263281964175248841126052285689074322018198551690243799796088085227140198086469452005883605443040609909501021998424884248944731120290404190508353409199077247708660347459813081377888414840953594185475956658957170755199680887227443645111050446505121409441670670463575451528854669395037285998301670563703889410116168364416110175273285820473550828039768547274671121868062674454964406971135754036603373242589720473999023753704413732428056362356463718222057808205859058194879311155481466161271644219784199632659485684692435993758104554695631831132186235593350113080805868181177881064599941843316411222863336297532376884658998244236478615214845557554154879509592794121388115079616403487006940362648425627726028941074979703481401579867661274960210821710048665077970496083627872355909661384387879337455453647615122939789709678606288871013845604107886610711638459449577600156894823470127058152463082030402932616952974244341460178470604507888570416051637417730948692581516318417592737293394591215800187558364675679005315698908396587461787110944542120620510843043898819730192374011237774693634784133284290741921840482188428914776430876592095247495261440697142304734867589346708896929164354006230404852785673979204344952633755037396804786812408195466938992234440073244298480204366809118242396077037072789555887346317881082207156919693376906018067283572705123821047009200118159762999882147688707841493479019845861513424171984471867324509183485635160500851249969705393179762745014473733189017316604306757719542466675997398337925759362292222608467006643944398416446691704542255844752962962065953897520275843221648141503669366998099528325014837703778275578694846878078826458761114429783521290161928670281988029469907388647939506693047425692520511992636085381139191449783490136130899973086754726826326488266236630571827943294991666084356905665743395556374032623253069264406637873270424337750567831214154862661178171984023447276769646647137035475061656501719872289508307267039130344090392121996482025682292331821157190601086488272171200496176192668300157490800619473847863251543498717954912357236206778679145994868433117831352369438595216868396502243789810471505003262488644682727891462519783068677442880967203566701148976739908956762407789499100756318812571296391739710802500155959666038971609528907856088546237876920858565904503642781334309110569326206323840581276348119311443817885388317766200683721481240604734219893662002961021753021030646766246526816247420648360829383224167670104983087750641197930017009503964909913425786617067609014554777761250364222408080793124680259215750093575897029862473227474287275460847586327311529207419064147263123250693739814370759208430536667745405540115728541841990179096812060259146256626785577290032891359405402722126265018779353382017747892619397566904958606150957455306492216870605914492460527496424635217386088137105889349981260431462948224009302275221635030926217217355563690523530060704717936396130739707796401531799748660612105538872630688667907947824234179767109808311956162045723206220830881640542832185328562730754585202847490855522799368462752939036519683894464096436815568004846009246944401836153844897558898403811681940564428942857154749060316164531995637395475796434324804053107052063763480088917349320180829846126774635288144846721997268541789093902953063331989781276149896277308427343413776690389273423400105634270188130179676114077371405615089485935243619167101427757942312990443010399061796248917597790778916998744409906165041765125888394067068179905094703270038036656909383674524598954455958628230279562946274019904555293430730319077371399846775463232564653987101784339066127693927115712831114841147242033896567331795838222242876886227546642583779552752375281504671753789586175261389167610694890285492838046690444221809209599564980417877532007284593733735657345335461220560291803923513330632379307201017197537470320901293923913094852534660742263620048111507279105204228096739375914281880253968466652078817178187584729609368607789550629433423422339885974972508434407229220706945825722518847017455903130642268456169136672580794447217762420896798117858691502747540827104576225845548736694041927444168759000224251631946484483175378773780881848791482864573829656601872239569566423462601913223154242218578676932989805356592666531688768055928487149256104400677628677558137398641656888241996617298961628954182250894863584138486098403033180462945818608691735128935233175273939037798003770387121690509454713274236738181486343203566234575143373691603809457698973080275596749885004849135342216020508738340459867796916074282191176214317195190371380119155576993860010159993839548759109988116747691680997160663541776096923780473452457818276694756531760571029402845529542092848810652976290982180421908093517982577076172128955303126247421308114163859982602688128520931211519404112434848105918443872012174097219334188335996536408565143465075474635542882829161742841898438335980367729888982564592028764622929270701815806322657608140208256521667611516576882055210982371465642251037853263559438760938172380209985370241822350832293945328223904980767859210278506763388659866970484247130518325353949743399930477612078659147399265609090075655814859457853597213436983488864223716165614335132615720193372792939219690734285458266728492319907035073414288020727960091829472517008978294909697598288183448520836710973039833224716905041676003124143464985462141512711593032282329818972650499328260754159410518888292077321771500873244790158727375803503482723480879130583120028702960793766530322460259128380566712772163591502239302438609744488987906653431904318761646468267770502190737058043219955283693208557549343361705329703156216277854717010860573165038525907172424713233727629977160958788156856031021566020497268010582343627644768754779523756698852741180760434308143673644042570488929863862604570595081681334034727513179086644093564701658262802823995254738280249925639461216880659251806575185839950865294355307309266835664626957457848304272085013025969815758390139121753337533792054217639165412048560450206979755703020279295827174193740976744094511689331938165459184635593947569930327523260228267977308392195607904621642030991516071546852494961523523634460993027679276055671629063065803179721647100357273376741661944783847600328667463421005045994906695374165424428216358430952728129914358982663183551309330127909662469863878881388486114557853581455061593675318342079729188133626434057318910047634333928991132353330084241257667234164305453088624956377953951164436815954561567771147318098173212884892595188051100079015415146328438959071369587626438772588278164889631029159406356792853467055399501150620204401334801537406944234613119976061606409625331306195575742362902628783084046305394588889646260088763762305472030847640603874627759283145490834409821801043708538389836230416814109530295551957512886454677696718617429910285210411151332482085077304499605438170909997105495217355453137059068838290461258198583416599410362652885388425263638070570297802618507095786015590396142209108615528360263728899847422889445397932539123303287466756072587131102306405394907679415648950013748250850447631525122097413311118782211036066120040790266901139231448154424580823228116607361266652580641027548399538981670145490111182678331866129342949112117902608897267469450083186326464426107133303121184883543699200886401006719499558771756916004531380966973575690141477460652846325473376440375674585629219916659157713274231785068621824724570793470748727004081486141226591568907484096359169743930250114031029086334116912373691849624499920832214565586911946600837553966070337074069323948415580907358079319077415982956079760153231806205474267886367475843430457319653506799953927530850515795166806173512731923754588204174170557817877756261522336800106191994958213828337885786057240460254270585141437388547584789741748251202859708813688681694225580986175625897580904416719948317771331572260417331098116406709311309164656508302672554756968684008020656784490195005438454421610219362181349119903111750674891645313843185886326584168685807264615795453677310004746434756235097705460658949944056939032826945205609398264335833501599979129393631573194623568622571408616212936726082813635724111610789734150315948575595815640317268679856979445203582381176036463442584523529988993004855261689005623547285182842675100869681331890046587513720402212168391770550081018531153182394907178570567968185592200944768908842625358472807695589113947210317756471423408475853641481485999071484357901879641216350997560266401407146918082003240098625440599231870234133171258976859454835965444887528334891483858051100827428734117414322928307104950049503311847074688323634469095447900725102790466718257230682733392129573899381129327817108384540463702439863147868851186008978717328305046352944291362643119796532544190919620764739406499275983062610035896199686237937064369600608157343105560416665298778402287011231437561339535249013647053074323187170428194530600616601155597534617696527174396741244215829136203188835910479379248669176027133177977189818298559338241470779355902310590821013776876506621716639364116950952054547015335032366433572024507946380819812282011273421387900552011172849384644623622957589074549280386972380926968668732252414016546470647860937534195853426858057701703754354296553465610088819830939070771619766009880285877402059959116238711954550852910443216141566154402923583221435960883822497586963769017752853665425134864831692161436500214622947204495880493540960190799381638043937852929871764429887559087289613878244614428388947333713954536682965081893764132396032418971864869460685512611316724517810449076434276629916145139155462638830488659421611941125226436881713817984590649905364035472138790430160582916242351243958475408675501564083579380527374472983059947761232952135391866481841104822076149587933480866764429159591991874873596939522470411325601927311205624885372927371477547397870722822519076721595268542235610942726945920285907247115955421683113796525609782952653888005065793077513980569942365749618307893454699721384162453152505946280820834093147010630695036207379199941478033344452677735704566630244914224946095998848272941332295225193021861601555453959077487593423755179503796464319097498181478795518708593691846698689314607384619695431936763682649688520232714327269460073960255666995660296489757287253172436736886886456248552156606561297481689551627881794289209182190649375674140101846768417751786112166532620832166765722889225599149642162636662990852193460205845256486119119629542688310767736804396297514244766197930674766940467400605179227840742024829690160047506723069893942013526502743278916792711859616023602848598426368975161320389534537892089837844970015503236584407378777583068604108935368785799778225248114037785665115552058677879899131228724036405540307235232838531349625325202612556544039263457654633878010753614619845254104625576532794458904814370276450553865914407317930023898804810325568008828377503469083665555355141980720374995133694567339228161509732341903498755248223636306521234207344985551539572017380764318983030192457716286141814725370018477998822306741034380246415705421276599541297046679987325043589303958262343928182994415251684032822449952893963646462513547298459215192401834437236015830586931346493566487745786530061380270526587770800629557652668809796230796656616220235353995375761765457660895603441678891265126259078946477606559526503092183258024071051427634973874219442238065412872472303347401838980962440772291373626069248544518029200721221578525212060358997205881452772025667726192034634311124648330211836539465746225632077610184778375764088082753093120504458980317547783929209048702336584932146382178240485384431326222833042251236398888326538258105218576632608007662934360794979591117028417694779615496905681467167654692605456884642971372104132188694532138143170712692149221483728640054915229055406634565819535115027685647938340734745455268938359647555837350061350039571752884097702520046934207783400961142263911816584631185172824372650910852122818107657348567057228162172569358236925536264872866809095400609816362671057386546301864684075550551703477728124683333823133114254471724193635710620941170529234534642565084372573646237405943448636290512924063269776326622034859843967555704358119484315855982872489755412358227120265561854801622201308356039500724864389021911497902782801821708519175141340033704842774599201546261235016257474846543059447226989032317563799989456288993638523823418914854938405179699494823545401719644123482127275114238412939538477853048775945768503576557010954111555332803149863240538125904635375415257943405158296438180296877366248040749509266132811762487669923025990533393958690031762551492012496654475956663358585732237920546611682048531015215893896858409432898466283010090685724021233992743327041916002434498760017149004857006575237574946647806193470032160718361480087905145278460937871495466529703722690493140056233537371523159879246897384940299116466945423614443810092995305387933315317793443574163717959673029995357266266976402588201732574352501377826567173429968056787282611387019078124303036125388790521283967083710858040772581617014909149319069938674002919177130208817248946429647904479263905520891476125939198414665015047629870251034253104741133428146627426216740669358290242974476661392546622360025941111865003639523590093268050951707129055209527459456037485642876411732356023465282833013779685835557944679978411004230447285802401140941202558057753632324931252039435950065735275152154931740340992551765041511022373593072567779396639131849817913085739312990799970709877455626746263107021942953962113251069424914987281820490335675825652040058485491152152208344014981303604568898041788697314958674288345900949373808503029298368805151489096939719094574368921524132082182743907397952450543166112402274211067430182965657012834581000418211274152235106656156183015875870761569008983171910280465151299975558117838418046140491813277085479911848140043478208135051916529709779734871314080164997124897656015616281221003895629979217370029014125987531267857833666457166467312682425305548320309249277622229847842578224519183030083496092137454841028583527009348911990734508969678245741420367531979105702192724880977085825867200664886075093007637008959743986454025701456861178125608451291589615363347517009806964839568180684817893777652809623036977034716114453377433864332944522903516250473858969654973745035099145980063632928936537648983171223735463457651389648354145610430488182869035577005358347645358962005330973943749021150902806244587345546124034171734744757944864754689317702866220305271036459170605643189532546141174348500463796201655729356346141314351599730741325941946865349996427229020579404446153783604112181264112408406315211601058526757889145258926077287626237359148624975738794105289748029505685530259853418984712712317438999511053464096099261433941862674824222827354228359336678938681801052016412000045428149858895912983566309777181397929260987642354410824337379494402451892546560698903004844115024282407343658382303076012133922803049311506841678472106679723767777059587475572682107951746463200904183152941524928585927798223134174586864506051842593534415202383029626608346818052390780171263922449075116922260502304516573568926596983930058894985014644046916528643827206910339019762427882439377048842022306715692521286263564951078597078305645262052600372816961360780889687581653170059892976298757493036585199651300079064313092597094664160728142780714584183863837626791464485065991641667120052565264381756522838161951191958682631472624289896836716229449817429277495237362913034907425041346708369052309968995113416561123369893371045101762744207561923479625975630598217066766216417404859873753999103030680276123922150447577423742064237808727939339358820565808850280853412078051683689301871153626782877269833987996678954499107849815723709502331301654097947468987809181882273821687781316363312061461989125742603268241730052419445419771874518938074570766320200284393495709110570113399731141453447771393086832636599965008313704629811162289030833126295835688219386985563657995539714947559612698761003003254763717296060878134005334376822022048779583757932500082575399045509609251902289801766835355425746148639706055989516329036467198735901450448253071938035508773774322133155342777866432268329941897880439219866381955109292534872013454385115707650300599609042481196125460089525052425519290508944574490237366574608006958150064807150075475325795628801124641546595712907766548933983597637226039616551252490765687119380370481692980903267338041635123811408197961950745430937154700643967128075382439650436585725152468202493618787928488139801001510083098044487031385518750323855191552561666831282155477165898734655205720291468881253964141644491567446117691597598327410835819338262862669909749763468068949542831692405438001107577848944546261178750915461364449138321043525027486781383657942753319187803691731385540390257201337642120694123615729161275237281810940350405443101306097188596068037483367590578465688141071594950871475956721876362049139996775222827981565910339639470664492381632338067310620856766459796515835821978038475867062061045699717796535538827441389467761879255626615189574177803153302225713527306073194300571011668598918807660632787339709720949393023649928224820972786150759474640700138039411935532512337057320425328582183912548975364155009988436564506838244442550643046245149221023246749923289871031695815541735618243702030851101005032063013775658599246381368600064760416570856414429214856758501720454672972164276712769428598524867277735544905474978240960005442117369183495947094460873889861310233178950305621795818154780506835075576872790700491558188514652527744334542485244769417953768950103899302989585024853907807700819578063933451922849650633990991545779682966501477409450869289454229403921553962303238390601186252753764068755954598084266661964968942400132007440341803876439252088903076037297891524764696172342469463846223301023604963594721307955802116890236865581667841103355566640825161850213199252702755929526631041526200547911449688393959964951009960259512529050180263236425711774158796406033154813146974384428094581014107510027277677942679476810680592602316202660421039915794080936701508826737872161032989954716247624883074355797315685010222976824749082360364653547274908352856282935267598655587254063832111110627569526759158369701566795389978342472773206321026719453015961894433793059865009287062948825294273849563580925817882350776851014147857532639114137064627912783827646683780912676452818827660458603041189375077621168706680987009733771020633236923686336104259731376188422577196055549636816944698544883251610874764692641272900619462022066358426059195589124409649678615607084431124842725525226981041953664723036098963007196558107074241007133840416971045856395293825002895660030203378643553418628189374944698585283280663966903662026150386726093512631528421810827404574586127051828563946591979786548027324690894114644754594206913006200862738957788597298414333939135119895341983590292358330889910673404962515037784549884594419611590597644805029807036565021256079689398381267329291774777431800481402434922652677173075144738268294564106395726009024611424289034469263508361987329028825295546559499042348805603989385160308848085355757670107214837946231439314657565541732288767804039816938245615813870965414536422330400526996935028422062030300492686467802884825922266414347695901853550946701674550630850589699435574259187120074686471377500339046320108806546824293593979679259000518073946300523932416557370898466925602497573097703214056389232338844263741675971260945787258242314202028579147791502254540587972799719468487342769804129341835159425610830486754981870707509986250190030807828426297662846252540913640372640271409569261718337967995988005333434236062976095250119799786572650852610212000567134832440816175466780886137360725633214550549047315640049764028533743751083223019786342849362402012039762055714218577499754247875684026846844149673675214082032363079871134885590236696305548529751941534730900961948691028715838471316072467077517609440418369918662418834321326831939137342107205371081438558300526069075821934728738562109277057006084580077331729218623296053224523471567259670295338567347012042318084400470394861664325227873635831341812273699198839976119167392718585702645183737468555598428064515368624170179592958060527882149567688367609962143891832243938241600295053772100316365467795417829427099539456376675875536936600936160595041175196044622565648402183886037685258139742739454596408745559876348586682574692003830457408957953732301643235635356773807813512483199220395286995528593175434784568952139565661580695568674969366776867340111832229833447282601475870646850513094736730380471149391271143132833059373915957279002244329083223080376609922092230789122934352776017685410050551237491832012446753980940741213323373244816432198180988959885437341880464541515769297444931050238638032222784534678734155158524193826563424866420035207681165712106476830489148792846374572801118935157448083329757591995576296646583196783629334921771866043686112795338378699723522396491677670467873438647728001455987436376231458650051363416902778890690427972518596528755924981192111838371826689528293009798276093130653257258482987729630373233454604230680230200575861812945682100595550183919325317269168353381600084212311685784300813641965341772445380406935913955840551019416640478856050273519845948192889001049147757990836433979319815376022484561782515504897407010013225395186333551878246638102704291427456333715335273657208898350549945599531121237319954282606532040838142231702387943127592312192011611318993428225475752154130743243153232505208294123035125910259368553470610923333025161581142087937360731490395126988737148054946538365217751765160409790511938227092088152514002238446998290517160328978806654755851706500297287202934496946016963569495901597659387077055602968627161627165954343347245896854214839139771838989696505571157271814419897649669745331703537468551132970948849219165784405666187928715129000591585959828713612386380570112582039695257971490779324430816794743519782216976788577917786512205551034191929260329242521631157517491641948535065396201527862134370531301557844518429746178901322584972226320864753915637429797771449874119876177140196962402438114156457109816506103853558544835433416585993375762098472000901845464781606766288421057328260820582627187938727766297737738285796663105007741027165445189567724563519724531836721191983440094496363707873566881342859512717660059752143381248362011314178502261061443217265907758859464107340443169966622510241707294976824943270132086568212733218218611457784583793417569052558504835291252583998142252863727277921905558953104838949439931845172734604500921450460613565788632515111957547588271277157453736268311782101299327991553572902449869871589319872426736173496046289660141204915610704782364965221977378975314638845226707040182584759647768638465228226375051048486670832744616323229992123813911443769139521157687876379194276475832864939144354648750702697368097655436110384655777887744501860707304818989553077461995334144378895029774615513335172358415662055993848810119402980258394898371398274675723076643689638606283229749929797614916223037720201396625074553056892213171700582650082566039575276085523287211015365238550413673670092583355500098898523894910138741780032134155572373768772619951639713875186729676473787512181540092825179183174103524918088707645223267722858373976852425610854319761934818650234298374373014398380547503829391895398677656482245829786934511420781798797705475352223801722148933417422155680296534591381563587620199297140586538974465709556110471001107210858341261143493829233101706144190592718085907046293615870167105675956103817024077957386511596583646854632388514464062006291234305637186571308967897175924103827164876872338449459073803888267755056952730255918498917230511632620142568942063943557871416059441715603618526621164784645521177506655527836455192243183398403045108113289607680983662321888105561868578956383072605754187388128239012009197622717197378988696965693447375598427430988324141014679205872143429649309730038983441597195273546861615164236361513917652803019919294133725694945427354240106603326468060758721744324733854127437892267720700752171386760337795902764841691265418565023577625385215078589283171948694643484808936050811626976498805523381376141704482247565448255910701792647786858545052519926516999204915167393859329500303054055575458250383966623529685944864171752381310804201781524596701570334415261541044485755810404045605663689015912796437908635517385563260604539062493484449638093790628872687365739186026746729285741739406498084262580446244191498532243390805783284327652982426156541503370090482553986680257768414817571367854894797395281958732628344242632135189427837800423040384917469503028863620583505655174459948591202288384109079344212906358043069666379592872183212380601606604764640462082177812806848755662644272832624883991190190655534998569703706270026026370826135807784302187733437780931400746853028838638151784336787650124299740505013070416073655980031609972560593386882316172419411208605667504943765984393646585438769673640569473381462890109847626855987732673433395616615399233069409520529764124619102637233477127488752463614720755323110454456798173752059127222469790318534064829434328716554155286284902186507020036442608697401713810657263712813290757956252404024853976100084261235695458098377159508213820585409314939961781064598763398888545956682019914636904798668876782347894420094412349955446830271453117862546877798071045049605855541653043280430303551349070436313598702312930687723984557037475681792258785237277261704701543110720914844561293053590489983763262575532077523024692394971158056253491155246356287720886572464610786421484752545268223543626623950538796415177048293777328066758634039942716615853250446223934524103475467253909810583008481659434604698754784353812992535688336525656742431076916202026398889434461897964780327155115970460702083007502360832480783356008254418314600522636896812788873077335604631333527388208084599272907597486065486553222301669809306282217527293626661558320748787230185375496192541766736551870607513816298064081869291100555182905694042992379244580347980306187153639480586723235506821658256014203279413291776848467220131976869461184446513724930048630628363510588952773597185473383122114608387744927317970532062377717166798035400425238579003553523096878935625400237717220277227406103166312958556269039689545799760760263408483137334975348897879410117822980849237814190481675180186513961263494281914430978315522261490255368267055766851723370828934248146352398456915372948074743487109958570913173969451837349577661478127278076835794975059510452158486451147319125557572285066503746701689714706466610893065780790974118607668621182847645254578684298147934019613270818091256697113132200163410704003012616970125238669115899658595154546705111001342291473147217501868052648313688858677566433561820000803148474430542035149496489279972365841566872757078512140331128231848786452381728816997102854099450181126086975181731282419651719388038035331696331660946688125113180348748135111253307648490153846759145805956719178256607335516486859592781287499550412314736902912933028111092025649375835984760692981401681471272478230824726184771140240506964527661971990901858612611774500825754121575185261315044031984871215731161614655131954427148706962142083663640424766097340113399181404873360172611829001876195736908531602019992205389140984188804862228618170092946423350174277067813272786027952623344555356563111332898938999193241193244504176108521267368426655565452377376933207167921796757997952363679585654989461929733608657529926956946121824557115260186762938077524728072420634657796135347685935193228448799285061274267778823538295265204471049156202709538580761558158465763490234403683621346310595126321257287279516962226891192048565242142660593281475253474577744926094355050059198017236359529227823184493831632631551015684248645916857994787767718542748033665133190488593998331645247789446225391656575765850900747999727609900587617700520996792778002571655209671320140566199751904128369380341308320496218754112944581992904046172810275038409438429942999667840013728402186914874141725984008458176858383769020923524458125683896743434609204622451334538584873539649285050256184099902170236797254383021873795846484103926158428978922024595333661577157624036955915289808323576622288077075362292101513657858940301933821903956446821767892909615652244177235678790572316142602147698702164796084005760492673376405832799841454476399395886879274270666573196956507050166093736650643030776757072126245267397512845008777294145022895140991770294683966648639765019541225684335005944725893535900054408818327089302077352126852900952687880117908658101226760091246832718542319773938592259285849127773263215401479024475509736587786445340934061609860174529001377759689849308880908742183786342655932556967207744344487867187338191197182884456950904131951007114778614846018892242492790155200979146272792543447245516187774040878319776081883327565549654972021747819854268075054809827560624955962481570608703239165486031041496944946832623453588361745469213822926436633987431803732711118350120356283591053602092886239163176262429435220757913052386255523217665122092725003392258376276683699349807471749809226858427433006085297044594722338333575229616274708344832803347956034864183502186151537783419784429230120909732674925170308109400184421674098927585160288651549077399871243057461163659512358463904408599289561159269497108240118872370362164660220710714495616541694063713227370630627206915076855408956885458348057692797074474180528229995362316934699010781898049572930523981175262194902179175295009509038794074974387224948511509005949513053946586649126073688620802545526546900812153531599885387445761819048242437784417025214890969885423223117239725478333926892322491473163462199253462870225374403004884938652457340568102129206058417822357213648909729219834052383281519175882826120202957978885687888344253598615336491057529106837637097343293839681391137644422882054185770062123034601242655457760228084588551534808044770603243157302738954538562914095425223098429618579795695358485353196531858264034651889826983268341124429637961119513132619035266982260586810398056246598766835407789879166849431441738645094321774829160344544059998174318316305085719590944109471711397277024681917572204131655282759768117110665970695317047992674299905864420170459239373082238337343462581444339570076627213208243639762631073158037002536916837357263009763725165789272528558877910856781371974001204685399107440845408459436660731871317346361545902421101036689832498829333285851549988226794756450112076613718320503428865670373176224004806085348417509455830352439712356090565693650514244966151932112702589956031363694223622777544126988124827373690924621995398402425433229612181131565833413587224351058760631137029088678190388111857346831371522329863762865412477501758713980435418338619519598191255033849770009551607188427120665530242181092839809391345319221807775997384130818342429060042189392548765357585990512579788018804149036718832233997179570766021823936098953129336399484501012097175184192435095185635988775652296710555787750387894229313860834752386437111156593837977240209297362147500375963834042041922918845211759156340638919143649232652129195328638403851211932463969848912886998894305379031936683585653058422416887156822276408426454644495412149116977127991013164668251997453826783367011273535556627895764119682843734962930287420882960552426288131242336459469757835582013309093873797859902503136340700421030399041129564940724491067288726208226473039325167830044719787353040714375976871084981458883749883949637905924941957219819223866783916075599537454569864849876726736511402040162496547982794084867856131425099155147973440983074097621105775920754876255355725425013492030346051419489515974070525875826063452798822639537825106789936528879272562288460926458980683388291481183140343316561417506587264731499838252215099776474853673212621259909707539401685610293639185003602898927317270668996120423852774577993129110050323105731466669782914430692134129823810866094875430923014541417416568599205877739808994375198993567754913816460664433620073118155724310028571578963405961661023556335790732450662285890808220321150612754771290841511170189129060703003994266391672501046225970688955574663157540684880278973439431532020586029802345732684912065814750983119530671910019305208443881797007309271469622113296782924440673910523432601889803485663126210176362794736793818608764276004117542418687303568424607001730117086656256878703515154691855240453823996801013788644389913918233801038973461045879981973468368303240506160224480748894828721289454656122083481190087721801524586952667048380695405704603002281670771077118489242455669378529281434471284760231263118707014747265114518905004412417034537183870660986917849121717409844863652298405472250115588316782659680774973122620568717160982241015064385624116429624969687285150115447708554102655921460403196736302390432802048450168807657871951230692892066281913696066788180180472857768344362316751172440597866636976533113982418896274013099229526023677287647450704994979024566193249040666487598913517327956572403395409886036011417324804133443110676918527508584233037176387556825085899920237286872391347362836844359808493594912137436829371694807888226396073485046896080178286218770082902194222002708234997607321049145392927562458716733928333776677609687624431216343452766543059380956766386994302331877495707386906673369597498367483486029914103071770878962801914241795618257260909588384956461840739302174192439443843205281016420715524569782507844481204003791366341218389692667791823026972968000393911983654211338696796104716208676336018698316056675760088357208597986677248391711877152158334502790244585994249356170684559838689576623518970275802514884580831227498192801406983120063046269675550845134540499875359004012922730983202182171454144020175553135384179348837259092785200375195175322932329909839789630844291428097579957421443262834436368050683564485844177486705588037178285576903040893331517676085106814443338945614502586676890049703701696785351741532011167243752028225735258145300141850482392198140285445815212021417424564420495147685398355956785322404346409740969924973729942520309683696933599906330571644096509666325227972222859205973166536664399483036040327532561021794353889263785101309144183420385380677032682964202511594898641362397206001679259923364980098131076917640765804460754824522309583861148552327120559169368816389773603305212999786059443835085952931323325363294919141388655671245418740909112625042360976857307039644071379496451978099107165786773905158317994508707300690060871444336549769384327639680862889539063185466147813475508753332586503362564305242434537046791368800114431127730484865642925806811557581855092840678555934907044605500909290189155342125092646446548984158069559492735572178070015325339888335391716435774924933536997930422398330864807295957708788664498312500881643818054178396327572844846182074812458583210690421278745436759930066762017125445678588758093736033056011398832123045233326676911810341604208438529910538695848630132347454646134570400456880501437976143800686770377713422654519256092156135787264464869301831339927607422929101063146967096483648926226628896845664688162630460480725332598227913328534634666375541282664978326404354749653970520879183237774555537166904255409217438567233901292289417951556434091620634235027175360827197119392668046037526487455828436763165430784871652606743685051947291071143440286771800403946468132816901364066922672707404115640224124738070642708364227657616434039329016006482178314127714684775665639148429848318782358263103809129029086391947725990887345480529410566247504492826813633196194167967251811960075498623347800001158413591092838313507022666267414062374923187353998577281887735382960008221896132403127316215206282103860925933981184588429868901053032381890888918264074194472552847110194405558733454986551924312903355469623145103699843747896449354348052174360070773013377939185943700657094341256250360817009995777536699717845340787108776577326866583262332294715287065967136647014279975624697590082024154167233882781576120383901321059151898256193756583965016926242172340928909013871957660198746728046965563889864741542542551207030346401596372732828415369982935876041246192217610736508294005576276744077056386839376172677139602960280083542775680437855650461180060928817027736536074216279083315653077517906723333081490014611271355606591985716837537707212833930456964493601719285260129396135286229405896931624273209909454922026217650605408268933296197815110192189410131320251813082930823001173776996092940023023765354099734273023908193796642882017132057808904206950989193770313564614745821620251097965397545841113860800654015893434225805902603039205067290675551690063694608981285950935462421080854434629677138584456597678561477833589340698791700159531885017436613398640640310448760926686108285731739052128229902465660272637392045864635240337479778452772685163996825303602671041802281062449701979810414998021359767969043055373969493529988548342203293061446416665561609627111285956252523483628837409338681429916113205677592060843407609255822765024993819461474820914232966363105838544900197657874355057032147764045248174581624168997829974984053280770142289732357534875973327815410063246992151276337304978443244239926205911688083061624843284132248520836709430492726037638589115440951520286240612245086988686078645585171761206273567859008382696677991846265652320795135362495380037771418111727253897063687668806300792901839346342181961440293822759883907421253332029103196363641832908754346952873372063650512695228581302161717302802466647633812280409921897028564326529167161518392296558568315667636125039575226940175215627283788457682318882595621408343699939065613824390059300173748456486963351023325821029947992614798731135832644351647459157746935922872493615484906184047968137293855200509647323445868360792878763555689527533828972522982382411997651441111939512709263808015468802979479574596921024076669390979679184580209460609324259418411935331394917301709620427075162705383509930057079781323680358204567323247073802612542956247874372571840212544564149615193005980873395800957173847726330304646863550675907790211103434508104060165451944929505724796040231161763687040764022471434068120964960080798801210724682079704921101191366047455032593971975948534655971064239970332631145032468806859160884923113614577342074862441982365466155542761320082378384645575202742071258413683595523212800594987178910401450417611879313845509069440721305863163075796065282224565594625520533641290241684774842748435646975029884808560765379273771693422825515902463875737415722616697066511071013974505881189597376573674087807908569194549073130785376449560787897553669552433977580009772628412468224650106870823288894297252923106886516164443224532217926107480227473461251563788220129879793128439978155546507115313901971169620208534241365250982484224684249240043844817331921857676535965506273649783905538516076426180385867965681733116783783094445160721548354128635146966846094836979429402036633205439735812997991959620634160215361503912896334826190484700705142131329751906189254736993588081385840203829766629797131681782360557567649065399825019684797584582035508010659767762270792445974853631176739935480525389725749591554010058378770212706923736632275894632391928786493449095587979149027626212232429053633354407455109091980466329557095372138339821035021629005575140936981841591217469648383799919440346064430913836613383107933178711903389524519929713840423429936684849540690410287129598448861939926781883145125213912016227945373837131201008850975608581907096344404420737552948975292459643045875192223523822432980584271056958140434364322263767101853272836786055832921962066265186791653623668142142840097278305561155923596261704281308566022192713193136848704336572585370401882942398128369478086207009634106987963088385758814733976963324418696000699353109454767034092100259737252904651662494184342959593238646874031217685570579093172321792089326522542601528147117431618536574862638357394214194514062836061571615205981832159731920285310481764814215806547071121033752903176042607612777466238772367290680992686984165599394097405737852943192611307995648363116256488135992397779752860099897802466404754270407116725093412183764262530071475120675790346067271629742108341622141122494421809138980919071985534058530710565157991953699283015985782505869445718583240112428716961114144446153729807755068079304208439724938083542068945581967147337379726360508714033716723084836373465674534132562295359706880787722488056741610399400835911408220874370422847052288016327531839695054029625982008548341403904466292764663045322496147018494654094932647939389576505068706960014973310006964105900934524658812163909070956322574658828828749296987681642300454469500070010629719478621955912136315972334890318416096350228741445146436265512746679959543561504271043245233253837615995350824670449452503473840277259477970413215863199478250662700531842763083903405776090109063435311397408459856064210446463319637486483816513217585947747745003484321822518298255418179433521525383600661623606604269383497665739453730212318051251827491273921151957028082967860177510767566710010705882826483651926291605879739852726267224566589817422207381107741999545158379102435846988447891690516334535090402407981643648948073738912200285039112977874711553351139422001279830587715574039902167268541115059777524367556270593585768747744238081709457497365787602728110398600206901648603378691747477822520451017119479855680587491822561615259768342769914056929926634692669081617368103878471842930770165171020427613181440499973651180717709202916522922022938656692696948147653765519880937483050398475426620653313138765106433666601798830721990491014886427896618384979154501075486267984705084721975099654639633426404137406474605996716175218347636684881015661222109887684926727231578817071841333997284174123665915321376610515987198918638271414121837965810024368726378410711437431923297993700745579534800792327305239503627119487859683157778606596496100075024518375294673234077628131678547002889808585048074092570160612816607804882407802553259632045274840511194450496496327519400262810090314546323021714345833083659309439781401523377021992673982281929408745486694567412628901296854069510928309539260534978445872352498042807702612118313208211322686745680520888140922314298142327615723050623880770490077219435906061912078601301393091503602742111436293342143217562916785525168613940380180780019076370572931869194163367141069638536065962068938985860674888639713794965253483076334124416771743568490155587004095618872731315615606416911233976738739692576593472175582298973162434764469457318498106821872381725092859672878700341946822605786514707818249849754516861031579006391759148535869600341171810034151096731427658386136485952041257509827926113736625176928507036771541703087153993259365511978096999980405041611030149314435386265098289847445370360462556746062724048684648941511505827931056017267880839889471001914879623291827157591904916222367767037549037945078151367483870033157221688010260699251334763645366992282950889168810457566056734128222138314035619894085142643264957110783009712745030984531188245069783930394008956060354551890952413231779333607730725949010033616437264677480476259932017684300779421588815589975691238564337015828729914777030609443336706666753531045692381226058732481736887512443247923482404306707380201270740830888733850382700124661832131521654687416498172396121375976059679575601481951943887343341225796456219079262459380930571463585012141814894607864415749384748586513886517167597840600992640036863703809360008032553626478467776157296710238502763741867403439413460245229817324397068596674798126617511388798560784007808645388303359419475098262099453637517161970457258230006711292593578347426935143215171854343117875590425437332028816527591773952944746552770129481756357359779519974115301739722539267491242388840190497750911669697884847129961799652682632845370223402980967295518411864932487414993223101308630737490776787068535544373976953341613111672887416969518802015008987075512926308280216789174031780992563272530686906138076710212926277035640060684174169625858526533696683978538994998614587229957949459462271589348758341767360989665523615830265589900814139418737890193485031916462708991762997462613555773826231406432613038361219919348988174174936069628062710654951418139224525857902553247223625257947609327252965184129690340237472180203695371670959850889598467235822725422039873776277236839410796532401486803148199952556502855713150122130537284976261289823328601046492489345434174531991835737480487817847507070771310352084207844520362532354599203969318181040543813748511556467824219006184815253990041755514038111890145003942617651724784214969783834874924890551924872507103539547716764433896919568972617095589171378153209138392829527823787780472561199930039198890263437112077440125219428030746856620949843476999719947573391686060134099286646881230421532144276104819154025368528331978297169642058414539885010957383891368014965228141698249750404271622522502969995371048095495123228306307791884275269196926932535187224888789503120112212571667148536113792228221985146624673726881533595911044266898267114705007186166379743849384493997256902878833107953209060044203150654066513611043075484674424848152689387811511825235935396168244221760131178818050378969862906014134541975842856715877326213981454495787484961474077144985715626706935787345074567892818772474639482134493731404895370266971269893515163288665253492283893815812357062932344933823148217270106472747739649648752271168411109660951951027772089811407814632862962237477698831228879595520811063410874157053593348183022097834818964052139673608454685434381434781425271045549854309536600220002048897145437188401504504289438338152721596189215739000719111021064842769759760542582352791844314469038882533332160896239847512925970944465082950575162248047318038489385967674366591492449261839976650569168963625792960998831478703239890899028831312638396893010030484408325972222724791546427809210804724433222967741632180423513044763407233622577260285174192350912873238364087850631129973601748895790845095951161289811378146156862849300495654522619521989637328216369861846700506562660999470316594690949201445049499388709353525209441274090696541491508882124381841952476436778853864104170821122326522683594283373432381167449013189170554612858804821920526300615712953275231774452514453171055823350269781143496241294694338913513818930414704065182604144881893251421737849922511771054874253344988077916441849214706133214274231162529373620040746016643790607028365636956601027938303235667991246424929966442144416430625400799817364554208701283481465774434661996436468463309219857275068677497422864492028529933140957859512005155083721851274940968937944928052522310497118556140848114205105125496607539039352116908423074112374474982024682384543637270291786383114138814488047711786305223114423863178193437412127626449415990100699082912405753928780418538453963494570936987196282048519170100237898296408947762079727333654649953371092262833824025152550266473953856124200364902848928163534793618916840554841005372014380124439497805558493525126288023447361308527210705322008956395170322810022110913388140220834050950370047336141121328503932208554452882173326372793653937396245435584806322823344196841904455765770151433539097754593880173128544755573521381843676657123047211272622146088087850886661070001589995104518614975877428642802055850334593102439711198756295060453422521872509431965677496517834413793139002239379788298558826663675822209026630503170469597720606671782411288761392015444793734065524124948092278747157242370139690008195578996338709843391269985002096301264559851780909365375378963259389794085191623311770612942003493386954366645066953341051598953572880863703868790425614741080096334681686037733691333696044035539838721848387001301415698886961884163212305415123591806178099496131551595364031223606749377319797680730708397904083638995640061484967217755737062659815313837960081511528003741096145886599845077688322708740975165872465382289525856516321930300834948314879791140910223772901266344866016034424506552247934640102256661001110064888757318600923843923866131183666745926238180255614062900689039209160308537852295401433545919119510519925250161382238756410632442730485170861475034089789363775040712563960584113384741036954587574196459202728329769525743276458201511033106651674267721174125715629199787369160519364895321755487430840885610175806603810042585898446299196296259052239626924303945095842100112969950545383938511554530537815583157011053347348962020152483077436542490226048896846951565643702131438606453532691763171274744564952498247448193131456919851461771917469731958436170579076385310232917749666236238639462953931735505728799411673275591630781747603943194348757590096534685020198263966388000609509721258829704215986369975473616958987619503479568938358871557101219739428311892319714681010224653546455741354086316278871079362279187585714809249610012978035239571971178783187564977004530344296026275771926697837851964089969398456398544829629665128348912100971066334702685807264267185864398833375219732738671625394393313042754669175564762056703641850925643057666397628103089735519244120828097845068607856586628549645429661285562564219337654808642435186444220301735339877870438114778280501936265831202524911807376816756848107524623363163358409940990140724907392106875402681137671755135080504035622173620279570062734561040445848919772311613167511470091090369136565037810070566385220999893851204125906270251350072490339621444117214941972027416805992133368689573211346984368892439458635127099165347324367445197373525977229972901685315313086810642211337718252685670712477509548040377659960486054936957988732888836949923395352267435310347903467311223694324127223752033096217198128892309462076804095975045063270175301399843676464493120420281795496837385986420557479853718190157491858240238855791462473656023415167857620937940065878888503351581621733386200374490941493523042396083122104704263136106203387665815244683029133746956334586320683349893863502038056609162299977910354459415681293105614498771002558958688211597379326507618064646014574185277934804302868640853501181706797073787772647873035525608507976130861805568665577763368275290923291573594841187849607142534369007419871023733321461553916615681388605065126235151117959218830045989030752072841205974553890281625909957686999223582752963239410531144721265855429972998509708321719604503116203299141216997711266674796029050977568412220304214173754447569193720313587048575697386093374553002903025115192163573449567864798935613118494981479001220395723774474066919763902603145419064930167912218759201954785182321490160960594247640258556849082280713212619867512850861330929895710444010506375066774545530325670220787047868967876340885743031242857129649229544163244985396228425104636355286370766700840776865690389799998142637524272514758823374779987243630162745352375041185774105448426025899492870776161372154155134785308984778617793604641983550531500120610995155994783192060811423785548861525173893821584707407788026314039536300414052141594223047254581898235469470851633456873650611434644155876105903487165985561964486090879859564455565160493238045330164120129266210698789264735585767151539950264463709456307197905098871904191556446368691403854922863523789448425800287420193143471896896501250615174619732470933909633166222878649809802269403400804696297612260388866544846615098326597680269500828442518835246564134978318857660001991950226692532897477117549105653132649849661242858864936305242464429890867496492753947061208649811368437996368681680855609465753396407437916135472399630026286211369622270897644267419502428824122945257394558878497277729177458976795357995292761967983069605167070202171023518214323129249397033452614185799740285132074256000790039640160446224476489474953456580149474653152611531701644821692978592262946947943927992012091648040341582556299962959422906797989216857616385123932781331128952825908862469284024932774171025007732121115662193163951206745656099828466911555823611491596652894709121187657916154312747350753295257427668302126090624820491860232485040307998157511487111878838341189424418348615314586269788809074247041338563342836215480917347478820049049365279747292521199708115076596195568531580079667961943802454049586391151500827796999785344615935006653993823575769674427318564651466029841556881321334735412873426737718980804228708774861917591455612548573797470684805760209284966007106445321467899846187169675357670514278891597607374214490853915914998832382584689868087134730964061577277872103215358541899621103292432977678507742568671694025020295602918036590623442837781251996242329589932639982818666280908187359594266615551039275933250904073032222471599568890924619493349580968484294891530725102016553971254749646038929718554304674063620224591178856959675594024737494466052244955165584226124227151321797758865295364847817394558555819671415522359323695191403839616093753567518834246160677257961127927829000194215276908182374788616075074642001103194155118855889359662368812215302747288605710692216535172771860688218318929581110681757854892360735276679068498403605147314975260779669170561972442108976259031276705105985208654448505764698139530881107900860117068888771252856750513011940872866013553662491789200580619373473077041992215013501100067816082379879724652006370478687337455219309345315753749088550978492370857696242150055824784844259520371192459612379518774123163819431925774201446712340005734288075991332998553733064182604759029210105520813092208260263426688485655863847813647058432360509732774119891532219684535324813197750723387105570752063344966683886561552583810665019330985422477894225320977150727702811369498172100180774632118366350745562135804400409341671774675008642641694898277859298151600726047418968909720688861482319993045401196869733394899965170864414621240034135732562472224024345890472812195842236489995186127815249995231175841539185429238282046761071813362764389336038395431732336859235112548194771933617875371744824433189083227640040054302823331829630489866007350218520926540702336912371949277796706478278713629152057955481577537162555723857308117244734265470035945566694999699586961470775261393071705455564791206779393204770727656787292470400477714931294520627034322650067766020988216696590712775227146207606698051568346238126881441302240372617923907187779519444377660481192900053408671788994604280983131149041814241466298228405893567407470392231819820363778567757910926288529366705164232266795919769937958428980137944275896536822626200389452824476428059297267259875816493448811246644618036130944085635940130543447130558571820835884203077578792371790455018588961414939827109384906286621649971382661740062703174359478035405555100184084333249667774294061547201604561732984975210578159472987278855023877730844915858320915602636479860476179729814325386035091963609748219647687578378319957080296909493816936359049959745434301114545606887275471353819118735063664422531276116781346652949777258672433385609080279395739761131122359234427774584552909374137834560166860443550971088426620698183719271653803981029909851197857740270374433257498060680640765356639847489217422006798364100125695516561706976259598208484335939931268984866752408217313088726905418607304757108479338036905819771545242034321036623499595201591163342941672197153178035868893809789885830444106540817812476310579527437437109151
